diff -Nrcpad gcc-15.2.0/.editorconfig gcc-16.1.0-RC-20260423/.editorconfig
*** gcc-15.2.0/.editorconfig	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/.editorconfig	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,150 ----
+ # Copyright 2025 Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ # This file helps editors auto-configure whitespace settings.
+ #
+ # See here for more information about the format and editor support:
+ #
+ #   https://editorconfig.org/
+ 
+ # This file is common to the GCC and GDB/Binutils projects.  If you
+ # update one, please sync it with the other.
+ 
+ # top-most EditorConfig file
+ root = true
+ 
+ [*]
+ end_of_line = lf
+ insert_final_newline = true
+ tab_width = 8
+ 
+ # EditorConfig files
+ [.editorconfig]
+ charset = utf-8
+ trim_trailing_whitespace = true
+ 
+ # Makefile
+ [{Makefile,*.mk,*.am}*]
+ indent_style = tab
+ indent_size = 8
+ trim_trailing_whitespace = true
+ 
+ # ChangeLogs
+ [ChangeLog*]
+ indent_style = tab
+ indent_size = 8
+ trim_trailing_whitespace = true
+ charset = utf-8
+ 
+ # C/C++
+ [*.{c,h,cc}]
+ charset = utf-8
+ indent_style = tab
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # GCC .def files.  These are generally C fragments that get included
+ # one or more times
+ [gcc/**.def]
+ charset = utf-8
+ indent_style = tab
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Texinfo files
+ [*.texi]
+ charset = utf-8
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Expect / TCL
+ [*.{exp,tcl}]
+ indent_style = tab
+ indent_size = 4
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Python
+ [*.py]
+ indent_style = space
+ indent_size = 4
+ trim_trailing_whitespace = true
+ 
+ # Assembler
+ [*.{s,S,asm}]
+ indent_style = tab
+ indent_size = 8
+ trim_trailing_whitespace = true
+ 
+ # GCC Machine description files
+ [gcc/config/**.md]
+ indent_style = tab
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Awk
+ [*.awk]
+ indent_style = tab
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Autoconf
+ [*.{ac,m4}]
+ indent_style = tab
+ indent_size = 2
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Shell scripts
+ [*.sh]
+ indent_style = tab
+ indent_size = 4
+ tab_width = 8
+ trim_trailing_whitespace = true
+ 
+ # Ada
+ [*.ad[bs]]
+ indent_style = space
+ indent_size = 3
+ trim_trailing_whitespace = true
+ 
+ # D
+ [*.d]
+ indent_style = space
+ indent_size = 4
+ trim_trailing_whitespace = true
+ 
+ # Go
+ [*.go]
+ indent_style = tab
+ indent_size = 8
+ trim_trailing_whitespace = true
+ 
+ # Fortran
+ [*.[Ff]90]
+ indent_style = space
+ indent_size = 2
+ trim_trailing_whitespace = true
+ 
+ # Cobol
+ [*.cbl]
+ indent_style = space
+ indent_size = 2
+ trim_trailing_whitespace = true
diff -Nrcpad gcc-15.2.0/.forgejo/workflows/build-containers.yaml gcc-16.1.0-RC-20260423/.forgejo/workflows/build-containers.yaml
*** gcc-15.2.0/.forgejo/workflows/build-containers.yaml	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/.forgejo/workflows/build-containers.yaml	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,55 ----
+ on:
+ #  push:
+ #    branches:
+ #      - trunk
+ #    # run on changes to any file for ci containers or to this file
+ #    paths:
+ #      - .forgejo/workflows/build-containers.yaml
+ #      - 'contrib/ci-containers/**/*'
+   # similar for pull requests
+   pull_request:
+     types: [opened, synchronize, reopened]
+     paths:
+       - .forgejo/workflows/build-containers.yaml
+       - 'contrib/ci-containers/**/*'
+ 
+ jobs:
+   containers:
+     runs-on: sourceware-runner
+     container:
+       image: fedora:latest
+       env:
+         # the default overlayfs doesn't work when running on docker, which uses overlayfs
+         STORAGE_DRIVER: vfs
+         # we can't run containers in docker, so use a chroot to build the image
+         BUILDAH_ISOLATION: chroot
+     steps:
+       - name: install dependencies
+         run: |
+           dnf -y --setopt=install_weak_deps=False install buildah git nodejs
+ 
+       # Checkout sources
+       - uses: actions/checkout@v4
+ 
+       - name: build containers
+         run: |
+           echo "Building containers from contrib/ci-containers"
+           for DIR in ./contrib/ci-containers/*
+           do
+             ! [ -d "$DIR" ] &&  continue
+             CONTAINER="$(basename "$DIR")"
+             if [ "$FORGEJO_EVENT_NAME" = pull_request ]; then
+               # branch name in lowercase, replace non-alphanumerics with '-', and remove leading and trailling '-'
+               TAG="$(echo "$FORGEJO_HEAD_REF" | sed -e 's/\(.*\)/\L\1/' -e 's/[^[:alnum:]-]/-/g' -e 's/^-\+//;s/-\+$//')"
+             else
+               # branch name
+               TAG="$FORGEJO_REF_NAME"
+             fi
+             echo "Building $CONTAINER with tag $TAG"
+             ./contrib/ci-containers/build-image.sh -d "$DIR" -t "$TAG" -- --network=host
+             echo "Built $CONTAINER:$TAG should push it somewhere"
+             buildah images --json "$CONTAINER:$TAG"
+             echo "Removing container image from localhost"
+             buildah rmi "$CONTAINER:$TAG"
+             buildah rmi --prune
+           done
diff -Nrcpad gcc-15.2.0/.forgejo/workflows/format-checks.yaml gcc-16.1.0-RC-20260423/.forgejo/workflows/format-checks.yaml
*** gcc-15.2.0/.forgejo/workflows/format-checks.yaml	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/.forgejo/workflows/format-checks.yaml	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,49 ----
+ on:
+   pull_request:
+     types: [opened, synchronize, reopened]
+ 
+ jobs:
+   format-checks:
+     runs-on: sourceware-runner
+     outputs:
+       styleoutput: ${{ steps.check_gnu_style.outputs.styleresult }}
+       verifyoutput: ${{ steps.gcc_verify.outputs.verifyresult }}
+     steps:
+       - name: install dependencies
+         run: |
+           echo "Installing node.js"
+           apt-get update
+           apt-get install -qq -y nodejs git python3 python3-git python3-termcolor python3-unidiff
+ 
+       # Checkout GCC sources, request an history depth of 100,
+       # hopefully sufficient for all patch series (the default is 1)
+       - uses: actions/checkout@v4
+         with:
+           fetch-depth: 100
+ 
+       - name: check GNU style
+         id: check_gnu_style
+         continue-on-error: true
+         run: |
+           echo "Running check_GNU_style.py"
+           git fetch origin ${FORGEJO_BASE_REF}:${FORGEJO_BASE_REF}
+           for sha in $(git rev-list ${FORGEJO_BASE_REF}..${FORGEJO_SHA})
+           do
+             echo "Checking GNU style for $sha"
+             git show $sha | ./contrib/check_GNU_style.py -
+           done
+           echo "styleresult=pass" | tee -a $FORGEJO_OUTPUT
+ 
+       - name: gcc-verify
+         id: gcc_verify
+         continue-on-error: true
+         run: |
+           echo "Running gcc-verify check"
+           ./contrib/gcc-changelog/git_check_commit.py ${FORGEJO_BASE_REF}..${FORGEJO_SHA}
+           echo "verifyresult=pass" | tee -a $FORGEJO_OUTPUT
+ 
+       - name: final-result
+         run: |
+           echo "Computing final result"
+           test "${{ steps.check_gnu_style.outputs.styleresult }}" = "pass"
+           test "${{ steps.gcc_verify.outputs.verifyresult }}" = "pass"
diff -Nrcpad gcc-15.2.0/.gitignore gcc-16.1.0-RC-20260423/.gitignore
*** gcc-15.2.0/.gitignore	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/.gitignore	Thu Apr 23 11:07:32 2026
*************** stamp-*
*** 71,76 ****
  /gmp*
  /isl*
  /gettext*
- 
- # ADDITIONS from GCCRS front-end
- libgrust/*/target/
--- 71,73 ----
diff -Nrcpad gcc-15.2.0/ChangeLog gcc-16.1.0-RC-20260423/ChangeLog
*** gcc-15.2.0/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,15 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 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*,
--- 1,403 ----
! 2026-04-01  David Faust  <david.faust@oracle.com>
  
! 	* MAINTAINERS: Add my bugzilla account.
  
! 2026-04-01  David Faust  <david.faust@oracle.com>
  
! 	* MAINTAINERS: Update Qing Zhao email address.
  
! 2026-03-17  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	* MAINTAINERS: Add myself to write after approval and DCO.
! 
! 2026-02-27  Christophe Lyon  <christophe.lyon@arm.com>
! 
! 	* .forgejo/workflows/sanity-checks.yaml: Rename testjob to
! 	format-checks. Rename file to ...
! 	* .forgejo/workflows/format-checks.yaml: ... this.
! 
! 2026-02-18  Maciej W. Rozycki  <macro@orcam.me.uk>
! 
! 	* configure.ac <amdgcn-*-*> (noconfigdirs): Add `ld' and `gas'.
! 	* configure: Regenerate.
! 
! 2026-02-05  Iain Buclaw  <ibuclaw@gdcproject.org>
! 
! 	PR d/116975
! 	* Makefile.in: Regenerate.
! 	* Makefile.tpl (STAGE[+id+]_GDCFLAGS): New.
! 	(STAGE2_GDCFLAGS): Add -fno-checking.
! 	(STAGE3_GDCFLAGS): Add -fchecking=1.
! 	(BASE_FLAGS_TO_PASS): Pass STAGE[+id+]_GDCFLAGS down.
! 	(configure-stage[+id+]-[+prefix+][+module+]): Set GDCFLAGS for all gcc
! 	module stages.
! 	(all-stage[+id+]-[+prefix+][+module+]): Likewise.
! 
! 2026-02-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* Makefile.tpl (STAGE1_CONFIGURE_FLAGS, STAGE2_CONFIGURE_FLAGS,
! 	STAGEprofile_CONFIGURE_FLAGS): Append --disable-libstdcxx-pch if
! 	target-libstdc++-v3-bootstrap.
! 	* Makefile.in: Regenerate.
! 
! 2026-01-22  Alejandro Colomar  <alx@kernel.org>
! 
! 	* MAINTAINERS: Add myself to Write After Approval and DCO
! 
! 2026-01-19  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
! 
! 	* configure: Regenerate.
! 	* configure.ac: Deprecate -m31.
! 
! 2026-01-14  Vineet Gupta  <vineet.gupta@linux.dev>
! 
! 	* MAINTAINERS: Update to my linux.dev email.
! 
! 2026-01-14  Jason Merrill  <jason@redhat.com>
! 
! 	* MAINTAINERS: Update Paolo Carlini email address.
! 
! 2026-01-14  Daniel Barboza  <daniel.barboza@oss.qualcomm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2026-01-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR ada/123490
! 	* config-ml.in: Restore ml_subdir being empty instead of /.
! 	for the primary multilib.
! 
! 2026-01-09  Ben Boeckel  <ben.boeckel@kitware.com>
! 
! 	* config-ml.in: Replace gcc-bugs@ with bug reporting link.
! 	* symlink-tree: Replace gcc-bugs@ with bug reporting link.
! 
! 2026-01-08  Aleksandar Rakic  <aleksandar.rakic@htecgroup.com>
! 
! 	* config-ml.in: Use with_multi_buildlist to build multidirs.
! 	Skip configuration for subdir returned by
! 	--print-multi-directory.
! 	* configure: Regenerate.
! 	* configure.ac: Source target-specific configuration fragment
! 	for GCC. Pass through with_multi_buildlist to host and target.
! 
! 2026-01-08  Karl Meakin  <karl.meakin@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2026-01-08  Pietro Monteiro  <pietro@sociotechnical.xyz>
! 
! 	* .forgejo/workflows/build-containers.yaml: New file.
! 
! 2026-01-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* MAINTAINERS: Add myself as global reviewer.
! 
! 2026-01-06  supers1ngular  <supers1ngular@baylibre.com>
! 
! 	* MAINTAINERS: Add my bugzilla account.
! 
! 2026-01-05  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Put <jeffrey.law@oss.qualcomm.com> before
! 	<jeffreyalaw@gmail.com>.
! 
! 2025-12-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* Makefile.def (flags_to_pass): Rename GA68, GA68FLAGS,
! 	GA68_FOR_TARGET, GA68FLAGS_FOR_TARGET to A68, A68FLAGS,
! 	A68_FOR_TARGET and A68FLAGS_FOR_TARGET.
! 	* Makefile.tpl: Use A68, A68FLAGS, A68_FOR_BUILD and
! 	A68_FOR_TARGET rather than GA68, GA68FLAGS, GA68_FOR_BUILD and
! 	GA68_FOR_TARGET.
! 	* Makefile.in: Regenerate.
! 	* configure.ac: Set A68_FOR_BUILD rather than GA68_FOR_BUILD, and
! 	invoke ACX_PROG_A68 rather than ACX_PROG_GA68.
! 	Subst A68_FOR_BUILD rather than GA68_FOR_BUILD.
! 	Subst A68 and A68FLAGS rather than GA68 and GA68FLAGS.
! 	Set A68_FOR_TARGET rather than GA68_FOR_TARGET.
! 	* configure: Regenerate.
! 	* config-ml.in: Handle A68FLAGS and define A68 in sub-configures.
! 
! 2025-12-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* libtool.m4: Cherry-pick libtool commit
! 	9196966580f6853a31187a7a3c7e7ff36ef08982.
! 
! 2025-12-19  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR bootstrap/12407
! 	* configure.ac: Add feature to parsing of --enable-languages so that
! 	a language can be disabled by prefixing it with a caret.
! 	* configure: Regenerate.
! 
! 2025-12-17  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* MAINTAINERS: Use my oss.qualcomm.com address.
! 
! 2025-12-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* MAINTAINERS: Add myself to DCO section.
! 
! 2025-12-12  Pietro Monteiro  <pietro@sociotechnical.xyz>
! 
! 	* MAINTAINERS: add myself to write after approval
! 
! 2025-12-11  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* MAINTAINERS: Update entries for contributors formerly at
! 	Ventana Microsystems to refer to Qualcomm instead.
! 
! 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
! 
! 	* MAINTAINERS: add myself to write after approval
! 
! 2025-12-11  Pengxuan Zheng  <pengxuan.zheng@oss.qualcomm.com>
! 
! 	* MAINTAINERS (Pengxuan Zheng): Update email address.
! 
! 2025-12-08  Nathan Myers  <ncm@cantrip.org>
! 
! 	* MAINTAINERS: add ncm
! 
! 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* MAINTAINERS: Add Algol 68 subsystems.
! 	* SECURITY.txt: add libga68 to list of libraries.
! 
! 2025-11-20  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
! 
! 	* MAINTAINERS:  Add myself in forge integration maintainers
! 
! 2025-11-20  Josef Melcr  <josef.melcr@suse.com>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2025-11-20  Arsen Arsenović  <aarsenovic@baylibre.com>
! 
! 	* MAINTAINERS: Update my email.
! 
! 2025-11-19  Martin Liska  <martin.liska@hey.com>
! 
! 	* MAINTAINERS: Add myself to write after approval (DSO).
! 
! 2025-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* configure.ac (md_exec_prefix): Don't set on Solaris.
! 	* configure: Regenerate.
! 
! 2025-11-03  Sam James  <sam@gentoo.org>
! 
! 	* configure: Regenerate.
! 
! 2025-10-30  Robin Dapp  <rdapp@ventanamicro.com>
! 
! 	* MAINTAINERS: Add myself to reviewers/maintainers.
! 
! 2025-10-28  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* .editorconfig: Explicitly set tab_width whenever a
! 	config rule has indent_style = tab and indent_size != 8.
! 
! 2025-10-28  Artemiy Volkov  <artemiy.volkov@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-10-27  Jennifer Schmitz  <jschmitz@nvidia.com>
! 
! 	* MAINTAINERS: Change email address.
! 
! 2025-10-24  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	PR driver/81358
! 	* Makefile.tpl: Move generation of dependencies for libatomic out
! 	of loop over 'target_modules'.
! 	* Makefile.in: Regenerate.
! 
! 2025-10-22  Josef Melcr  <jmelcr02@gmail.com>
! 
! 	* MAINTAINERS: Update my contact information.
! 
! 2025-10-20  Tamar Christina  <tamar.christina@arm.com>
! 
! 	* MAINTAINERS (Various Maintainers): Add myself for the vectorizer.
! 
! 2025-10-20  Christophe Lyon  <christophe.lyon@linaro.org>
! 
! 	* .forgejo/workflows/sanity-checks.yaml: New file.
! 
! 2025-10-20  Richard Biener  <rguenther@suse.de>
! 
! 	* MAINTAINERS (auto-vectorizer): Change attribution to
! 	vectorizer (+ tree-if-conv).
! 
! 2025-10-15  Basil Milanich  <bmilanich@gmail.com>
! 
! 	* Makefile.tpl (distclean): Remove extraenous semicolon.
! 	* Makefile.in: Rebuilt.
! 
! 2025-10-11  Ben Boeckel  <ben.boeckel@kitware.com>
! 
! 	* config-ml.in: Update patch email address.
! 	* symlink-tree: Ditto.
! 
! 2025-10-09  Prathamesh Kulkarni  <prathameshk@nvidia.com>
! 	    Matthew Malcolmson  <mmalcolmson@nvidia.com>
! 
! 	PR driver/81358
! 	* Makefile.def: Add no_atomic=true for libraries that don't depend on
! 	libatomic.
! 	* Makefile.tpl: Export TARGET_CONFIGDIRS and create rule to
! 	add dependencies for libatomic.
! 	* configure.ac: Add libatomic to bootstrap_target_libs.
! 	* Makefile.in: Regenerate.
! 	* configure: Regenerate.
! 
! 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* Makefile.in: Regenerated.
! 	* configure: Likewise.
! 	* Makefile.tpl: Synced from binutils-gdb.
! 	* configure.ac: Likewise.
! 	* libtool.m4: Likewise.
! 
! 2025-10-01  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* .editorconfig: Unify the GCC and GDB/binutils root config.
! 
! 2025-09-23  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* .editorconfig: Fix glob patterns.
! 
! 2025-09-22  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* .editorconfig: New file.
! 
! 2025-09-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
! 
! 	* MAINTAINERS (Reviewers): Add myself for the aarch64 port.
! 
! 2025-09-03  Alice Carlotti  <alice.carlotti@arm.com>
! 
! 	* MAINTAINERS: Add myself as an aarch64 port reviewer.
! 
! 2025-08-28  Yuao Ma  <c8ef@outlook.com>
! 
! 	* MAINTAINERS: add myself to write after approval
! 
! 2025-08-21  Richard Sandiford  <rdsandiford@googlemail.com>
! 
! 	* MAINTAINERS: Update my email address and stand down as AArch64
! 	maintainer.
! 
! 2025-08-18  Spencer Abson  <spencer.abson@student.manchester.ac.uk>
! 
! 	* MAINTAINERS: Update my email address.
! 
! 2025-08-17  Filip Kastl  <fkastl@suse.cz>
! 
! 	* MAINTAINERS: Switch around Andrew Pinski's entries in
! 	Contributing under DCO.
! 
! 2025-08-16  Mikael Pettersson  <mikpelinux@gmail.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-08-14  Avinash Jayakar  <avinashd@linux.ibm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-08-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* MAINTAINERS (Andrew Pinski): Update email address.
! 
! 2025-08-07  Pengfei Li  <Pengfei.Li2@arm.com>
! 
! 	* MAINTAINERS: Add myself.
! 
! 2025-08-05  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	* .gitignore: Remove 'libgrust/*/target/'.
! 
! 2025-08-01  Luis Machado  <luis.machado.foss@gmail.com>
! 
! 	* MAINTAINERS: Update my e-mail address.
! 
! 2025-07-22  Patrick Palka  <ppalka@redhat.com>
! 
! 	* MAINTAINERS: Add myself as C++ front end reviewer.
! 
! 2025-07-07  Tamar Christina  <tamar.christina@arm.com>
! 
! 	* MAINTAINERS: Add myself to AArch64 pot.
! 
! 2025-07-04  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	* MAINTAINERS: Replace tabs with spaces.
! 
! 2025-07-04  Alex Coplan  <alex.coplan@arm.com>
! 
! 	* MAINTAINERS (Reviewers): Add myself for the aarch64 port.
! 
! 2025-07-03  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	* MAINTAINERS: Add myself as an aarch64 port reviewer.
! 
! 2025-06-22  Nicolas Boulenguez  <nicolas@debian.org>
! 
! 	PR ada/120106
! 	* Makefile.tpl: Add GNATMAKE_FOR_BUILD to {HOST,BASE_TARGET}_EXPORTS
! 	* Makefile.in: Regenerate.
! 	* configure.ac: Set the default and substitute the variable.
! 	* configure: Regenerate.
! 
! 2025-06-09  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
! 
! 	* configure.ac: Special case cpu_type for x86_64.
! 	* configure: Regenerate.
! 
! 2025-06-09  Peter Bergner  <bergner@tenstorrent.com>
! 
! 	* MAINTAINERS: Update my email address and add myself to DCO.
! 
! 2025-05-28  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
! 
! 	* Makefile.def: Fix typo in cpu_type
! 	* Makefile.tpl: Add cpu_type
! 
! 2025-05-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
! 
! 	* Makefile.def: AUTO_PROFILE based on cpu_type.
! 	* Makefile.in: Likewise.
! 	* configure: Regenerate.
! 	* configure.ac: Set autofdo_target.
! 
! 2025-05-23  Kishan Parmar  <kishan@linux.ibm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-05-23  Dhruv Chawla  <dhruvc@nvidia.com>
! 
! 	* MAINTAINERS: Add myself to write after approval and DCO.
! 
! 2025-05-21  Stephanos Ioannidis  <root@stephanos.io>
! 
! 	* configure.ac: Always add pre-installed heades to search path.
! 	* configure: Regenerate.
! 
! 2025-05-16  Spencer Abson  <spencer.abson@arm.com>
! 
! 	* MAINTAINERS: Add myself to write after approval.
! 
! 2025-05-14  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* MAINTAINERS: Marcus Shawcroft has resigned from the project.
! 
! 2025-04-28  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 
! 	* MAINTAINERS (kcy): Add gcc.gnu.org username.
! 
! 2025-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* configure.ac: Restrict cobol to aarch64-*-linux*,
diff -Nrcpad gcc-15.2.0/INSTALL/binaries.html gcc-16.1.0-RC-20260423/INSTALL/binaries.html
*** gcc-15.2.0/INSTALL/binaries.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/binaries.html	Thu Apr 23 11:07:48 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Binaries</title>
  
  <meta name="description" content="Installing GCC: Binaries">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
! div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,39 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! ul.mark-bullet {list-style-type: disc}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: Binaries</h1>
  
  
  
--- 41,46 ----
*************** ul.no-bullet {list-style: none}
*** 88,95 ****
  
  
  
! <a name="index-Binaries"></a>
! <a name="index-Installing-GCC_003a-Binaries"></a>
  
  <p>We are often asked about pre-compiled versions of GCC.  While we cannot
  provide these for all platforms, below you&rsquo;ll find links to binaries for
--- 67,74 ----
  
  
  
! <a class="index-entry-id" id="index-Binaries"></a>
! <a class="index-entry-id" id="index-Installing-GCC_003a-Binaries"></a>
  
  <p>We are often asked about pre-compiled versions of GCC.  While we cannot
  provide these for all platforms, below you&rsquo;ll find links to binaries for
*************** reasons.
*** 100,137 ****
  support them.  If you have any problems installing them, please
  contact their makers.
  </p>
! <ul>
! <li> AIX:
! <ul>
! <li> <a href="http://www.perzl.org/aix/">AIX Open Source Packages (AIX5L AIX 6.1
  AIX 7.1)</a>.
  </li></ul>
  
! </li><li> DOS&mdash;<a href="http://www.delorie.com/djgpp/">DJGPP</a>.
  
! </li><li> macOS:
! <ul>
! <li> The <a href="https://brew.sh">Homebrew</a> package manager;
! </li><li> <a href="https://www.macports.org">MacPorts</a>.
  </li></ul>
  
! </li><li> Microsoft Windows:
! <ul>
! <li> The <a href="https://sourceware.org/cygwin/">Cygwin</a> project;
! </li><li> The <a href="https://osdn.net/projects/mingw/">MinGW</a> and
! <a href="https://www.mingw-w64.org/">mingw-w64</a> projects.
  </li></ul>
  
! </li><li> <a href="http://www.openpkg.org/">OpenPKG</a> offers binaries for quite a
  number of platforms.
  
! </li><li> The <a href="https://gcc.gnu.org/wiki/GFortranBinaries">GFortran Wiki</a> has
  links to GNU Fortran binaries for several platforms.
  </li></ul>
  
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 79,115 ----
  support them.  If you have any problems installing them, please
  contact their makers.
  </p>
! <ul class="itemize mark-bullet">
! <li>AIX:
! <ul class="itemize mark-bullet">
! <li><a class="uref" href="http://www.perzl.org/aix/">AIX Open Source Packages (AIX5L AIX 6.1
  AIX 7.1)</a>.
  </li></ul>
  
! </li><li>DOS&mdash;<a class="uref" href="https://www.delorie.com/djgpp/">DJGPP</a>.
  
! </li><li>macOS:
! <ul class="itemize mark-bullet">
! <li>The <a class="uref" href="https://brew.sh">Homebrew</a> package manager;
! </li><li><a class="uref" href="https://www.macports.org">MacPorts</a>.
  </li></ul>
  
! </li><li>Microsoft Windows:
! <ul class="itemize mark-bullet">
! <li>The <a class="uref" href="https://sourceware.org/cygwin/">Cygwin</a> project;
! </li><li>the <a class="uref" href="https://www.mingw-w64.org/">mingw-w64</a> project.
  </li></ul>
  
! </li><li><a class="uref" href="http://www.openpkg.org/">OpenPKG</a> offers binaries for quite a
  number of platforms.
  
! </li><li>The <a class="uref" href="https://gcc.gnu.org/wiki/GFortranBinaries">GFortran Wiki</a> has
  links to GNU Fortran binaries for several platforms.
  </li></ul>
  
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/build.html gcc-16.1.0-RC-20260423/INSTALL/build.html
*** gcc-15.2.0/INSTALL/build.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/build.html	Thu Apr 23 11:07:47 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Building</title>
  
  <meta name="description" content="Installing GCC: Building">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,42 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
  div.example {margin-left: 3.2em}
! span:hover a.copiable-link {visibility: visible}
! ul.mark-bullet {list-style-type: disc}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: Building</h1>
  
  
  
--- 44,49 ----
*************** ul.no-bullet {list-style: none}
*** 85,97 ****
  
  
  
! <a name="index-Installing-GCC_003a-Building"></a>
  
  <p>Now that GCC is configured, you are ready to build the compiler and
  runtime libraries.
  </p>
  <p>Some commands executed when making the compiler may fail (return a
! nonzero status) and be ignored by <code>make</code>.  These failures, which
  are often due to files that were not found, are expected, and can safely
  be ignored.
  </p>
--- 67,79 ----
  
  
  
! <a class="index-entry-id" id="index-Installing-GCC_003a-Building"></a>
  
  <p>Now that GCC is configured, you are ready to build the compiler and
  runtime libraries.
  </p>
  <p>Some commands executed when making the compiler may fail (return a
! nonzero status) and be ignored by <code class="command">make</code>.  These failures, which
  are often due to files that were not found, are expected, and can safely
  be ignored.
  </p>
*************** Unless you are a GCC developer, you can
*** 100,109 ****
  unless they cause compilation to fail.  Developers should attempt to fix
  any warnings encountered, however they can temporarily continue past
  warnings-as-errors by specifying the configure flag
! <samp>--disable-werror</samp>.
  </p>
  <p>On certain old systems, defining certain environment variables such as
! <code>CC</code> can interfere with the functioning of <code>make</code>.
  </p>
  <p>If you encounter seemingly strange errors when trying to build the
  compiler in a directory other than the source directory, it could be
--- 82,91 ----
  unless they cause compilation to fail.  Developers should attempt to fix
  any warnings encountered, however they can temporarily continue past
  warnings-as-errors by specifying the configure flag
! <samp class="option">--disable-werror</samp>.
  </p>
  <p>On certain old systems, defining certain environment variables such as
! <code class="env">CC</code> can interfere with the functioning of <code class="command">make</code>.
  </p>
  <p>If you encounter seemingly strange errors when trying to build the
  compiler in a directory other than the source directory, it could be
*************** because you have previously configured t
*** 111,127 ****
  directory.  Make sure you have done all the necessary preparations.
  </p>
  <p>If you build GCC on a BSD system using a directory stored in an old System
! V file system, problems may occur in running <code>fixincludes</code> if the
  System V file system doesn&rsquo;t support symbolic links.  These problems
! result in a failure to fix the declaration of <code>size_t</code> in
! <samp>sys/types.h</samp>.  If you find that <code>size_t</code> is a signed type and
  that type mismatches occur, this could be the cause.
  </p>
  <p>The solution is not to use such a directory for building GCC.
  </p>
  <p>Similarly, when building from the source repository or snapshots, or if you modify
! <samp>*.l</samp> files, you need the Flex lexical analyzer generator
! installed.  If you do not modify <samp>*.l</samp> files, releases contain
  the Flex-generated files and you do not need Flex installed to build
  them.  There is still one Flex-based lexical analyzer (part of the
  build machinery, not of GCC itself) that is used even if you only
--- 93,109 ----
  directory.  Make sure you have done all the necessary preparations.
  </p>
  <p>If you build GCC on a BSD system using a directory stored in an old System
! V file system, problems may occur in running <code class="command">fixincludes</code> if the
  System V file system doesn&rsquo;t support symbolic links.  These problems
! result in a failure to fix the declaration of <code class="code">size_t</code> in
! <samp class="file">sys/types.h</samp>.  If you find that <code class="code">size_t</code> is a signed type and
  that type mismatches occur, this could be the cause.
  </p>
  <p>The solution is not to use such a directory for building GCC.
  </p>
  <p>Similarly, when building from the source repository or snapshots, or if you modify
! <samp class="file">*.l</samp> files, you need the Flex lexical analyzer generator
! installed.  If you do not modify <samp class="file">*.l</samp> files, releases contain
  the Flex-generated files and you do not need Flex installed to build
  them.  There is still one Flex-based lexical analyzer (part of the
  build machinery, not of GCC itself) that is used even if you only
*************** documentation, you need version 4.7 or l
*** 132,354 ****
  want Info documentation to be regenerated.  Releases contain Info
  documentation pre-built for the unmodified documentation in the release.
  </p>
! <a name="Building-a-native-compiler"></a>
! <h3 class="section">Building a native compiler</h3>
  
  <p>For a native build, the default configuration is to perform
! a 3-stage bootstrap of the compiler when &lsquo;<samp>make</samp>&rsquo; is invoked.
  This will build the entire GCC system and ensure that it compiles
! itself correctly.  It can be disabled with the <samp>--disable-bootstrap</samp>
! parameter to &lsquo;<samp>configure</samp>&rsquo;, but bootstrapping is suggested because
  the compiler will be tested more completely and could also have
  better performance.
  </p>
  <p>The bootstrapping process will complete the following steps:
  </p>
! <ul>
! <li> Build tools necessary to build the compiler.
  
! </li><li> Perform a 3-stage bootstrap of the compiler.  This includes building
  three times the target tools for use by the compiler such as binutils
  (bfd, binutils, gas, gprof, ld, and opcodes) if they have been
  individually linked or moved into the top level GCC source tree before
  configuring.
  
! </li><li> Perform a comparison test of the stage2 and stage3 compilers.
  
! </li><li> Build runtime libraries using the stage3 compiler from the previous step.
  
  </li></ul>
  
! <p>If you are short on disk space you might consider &lsquo;<samp>make
  bootstrap-lean</samp>&rsquo; instead.  The sequence of compilation is the
  same described above, but object files from the stage1 and
  stage2 of the 3-stage bootstrap of the compiler are deleted as
  soon as they are no longer needed.
  </p>
  <p>If you wish to use non-default GCC flags when compiling the stage2
! and stage3 compilers, set <code>BOOT_CFLAGS</code> on the command line when
! doing &lsquo;<samp>make</samp>&rsquo;.  For example, if you want to save additional space
  during the bootstrap and in the final installation as well, you can
  build the compiler binaries without debugging information as in the
  following example.  This will save roughly 40% of disk space both for
  the bootstrap and the final installation.  (Libraries will still contain
  debugging information.)
  </p>
! <div class="smallexample">
! <pre class="smallexample">make BOOT_CFLAGS='-O' bootstrap
  </pre></div>
  
! <p>You can place non-default optimization flags into <code>BOOT_CFLAGS</code>; they
! are less well tested here than the default of &lsquo;<samp>-g -O2</samp>&rsquo;, but should
  still work.  In a few cases, you may find that you need to specify special
! flags such as <samp>-msoft-float</samp> here to complete the bootstrap; or,
  if the native compiler miscompiles the stage1 compiler, you may need
! to work around this, by choosing <code>BOOT_CFLAGS</code> to avoid the parts
! of the stage1 compiler that were miscompiled, or by using &lsquo;<samp>make
  bootstrap4</samp>&rsquo; to increase the number of stages of bootstrap.
  </p>
! <p><code>BOOT_CFLAGS</code> does not apply to bootstrapped target libraries.
  Since these are always compiled with the compiler currently being
! bootstrapped, you can use <code>CFLAGS_FOR_TARGET</code> to modify their
  compilation flags, as for non-bootstrapped target libraries.
  Again, if the native compiler miscompiles the stage1 compiler, you may
  need to work around this by avoiding non-working parts of the stage1
! compiler.  Use <code>STAGE1_TFLAGS</code> to this end.
  </p>
! <p>If you used the flag <samp>--enable-languages=&hellip;</samp> to restrict
  the compilers to be built, only those you&rsquo;ve actually enabled will be
  built.  This will of course only build those runtime libraries, for
  which the particular compiler has been built.  Please note,
! that re-defining <code>LANGUAGES</code> when calling &lsquo;<samp>make</samp>&rsquo;
! <strong>does not</strong> work anymore!
  </p>
  <p>If the comparison of stage2 and stage3 fails, this normally indicates
  that the stage2 compiler has compiled GCC incorrectly, and is therefore
  a potentially serious bug which you should investigate and report.  (On
  a few systems, meaningful comparison of object files is impossible; they
  always appear &ldquo;different&rdquo;.  If you encounter this problem, you will
! need to disable comparison in the <samp>Makefile</samp>.)
  </p>
  <p>If you do not want to bootstrap your compiler, you can configure with
! <samp>--disable-bootstrap</samp>.  In particular cases, you may want to
  bootstrap your compiler even if the target system is not the same as
  the one you are building on: for example, you could build a
! <code>powerpc-unknown-linux-gnu</code> toolchain on a
! <code>powerpc64-unknown-linux-gnu</code> host.  In this case, pass
! <samp>--enable-bootstrap</samp> to the configure script.
  </p>
! <p><code>BUILD_CONFIG</code> can be used to bring in additional customization
  to the build.  It can be set to a whitespace-separated list of names.
! For each such <code>NAME</code>, top-level <samp>config/<code>NAME</code>.mk</samp> will
! be included by the top-level <samp>Makefile</samp>, bringing in any settings
! it contains.  The default <code>BUILD_CONFIG</code> can be set using the
! configure option <samp>--with-build-config=<code>NAME</code>...</samp>.  Some
  examples of supported build configurations are:
  </p>
! <dl compact="compact">
! <dt>&lsquo;<samp>bootstrap-O1</samp>&rsquo;</dt>
! <dd><p>Removes any <samp>-O</samp>-started option from <code>BOOT_CFLAGS</code>, and adds
! <samp>-O1</samp> to it.  &lsquo;<samp>BUILD_CONFIG=bootstrap-O1</samp>&rsquo; is equivalent to
! &lsquo;<samp>BOOT_CFLAGS='-g -O1'</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-O3</samp>&rsquo;</dt>
! <dt>&lsquo;<samp>bootstrap-Og</samp>&rsquo;</dt>
! <dd><p>Analogous to <code>bootstrap-O1</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto</samp>&rsquo;</dt>
  <dd><p>Enables Link-Time Optimization for host tools during bootstrapping.
! &lsquo;<samp>BUILD_CONFIG=bootstrap-lto</samp>&rsquo; is equivalent to adding
! <samp>-flto</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option assumes that the host
  supports the linker plugin (e.g. GNU ld version 2.21 or later or GNU gold
  version 2.21 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto-noplugin</samp>&rsquo;</dt>
! <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
! hosts that do not support the linker plugin.  Without the linker plugin 
! static libraries are not compiled with link-time optimizations.  Since 
! the GCC middle end and back end are in <samp>libbackend.a</samp> this means
  that only the front end is actually LTO optimized.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-lto-lean</samp>&rsquo;</dt>
! <dd><p>This option is similar to <code>bootstrap-lto</code>, but is intended for
  faster build by only using LTO in the final bootstrap stage.
! With &lsquo;<samp>make profiledbootstrap</samp>&rsquo; the LTO frontend
  is trained only on generator files.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug</samp>&rsquo;</dt>
  <dd><p>Verifies that the compiler generates the same executable code, whether
  or not it is asked to emit debug information.  To this end, this
  option builds stage2 host programs without debug information, and uses
! <samp>contrib/compare-debug</samp> to compare them with the stripped stage3
! object files.  If <code>BOOT_CFLAGS</code> is overridden so as to not enable
  debug information, stage2 will have it, and stage3 won&rsquo;t.  This option
  is enabled by default when GCC bootstrapping is enabled, if
! <code>strip</code> can turn object files compiled with and without debug
  info into identical object files.  In addition to better test
  coverage, this option makes default bootstraps faster and leaner.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-big</samp>&rsquo;</dt>
  <dd><p>Rather than comparing stripped object files, as in
! <code>bootstrap-debug</code>, this option saves internal compiler dumps
  during stage2 and stage3 and compares them as well, which helps catch
  additional potential problems, but at a great cost in terms of disk
! space.  It can be specified in addition to &lsquo;<samp>bootstrap-debug</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-lean</samp>&rsquo;</dt>
! <dd><p>This option saves disk space compared with <code>bootstrap-debug-big</code>,
  but at the expense of some recompilation.  Instead of saving the dumps
  of stage2 and stage3 until the final compare, it uses
! <samp>-fcompare-debug</samp> to generate, compare and remove the dumps
  during stage3, repeating the compilation that already took place in
  stage2, whose dumps were not saved.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-lib</samp>&rsquo;</dt>
  <dd><p>This option tests executable code invariance over debug information
! generation on target libraries, just like <code>bootstrap-debug-lean</code>
  tests it on host programs.  It builds stage3 libraries with
! <samp>-fcompare-debug</samp>, and it can be used along with any of the
! <code>bootstrap-debug</code> options above.
  </p>
! <p>There aren&rsquo;t <code>-lean</code> or <code>-big</code> counterparts to this option
  because most libraries are only build in stage3, so bootstrap compares
  would not get significant coverage.  Moreover, the few libraries built
  in stage2 are used in stage3 host programs, so we wouldn&rsquo;t want to
  compile stage2 libraries with different options for comparison purposes.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-debug-ckovw</samp>&rsquo;</dt>
  <dd><p>Arranges for error messages to be issued if the compiler built on any
! stage is run without the option <samp>-fcompare-debug</samp>.  This is
! useful to verify the full <samp>-fcompare-debug</samp> testing coverage.  It
! must be used along with <code>bootstrap-debug-lean</code> and
! <code>bootstrap-debug-lib</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-cet</samp>&rsquo;</dt>
  <dd><p>This option enables Intel CET for host tools during bootstrapping.
! &lsquo;<samp>BUILD_CONFIG=bootstrap-cet</samp>&rsquo; is equivalent to adding
! <samp>-fcf-protection</samp> to &lsquo;<samp>BOOT_CFLAGS</samp>&rsquo;.  This option
  assumes that the host supports Intel CET (e.g. GNU assembler version
  2.30 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-time</samp>&rsquo;</dt>
  <dd><p>Arranges for the run time of each program started by the GCC driver,
! built in any stage, to be logged to <samp>time.log</samp>, in the top level of
  the build tree.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-asan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using Address Sanitization in order to catch invalid memory
  accesses within the GCC code.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-hwasan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using HWAddress Sanitization in order to catch invalid
  memory accesses within the GCC code.  This option is only available on AArch64
  systems that are running Linux kernel version 5.4 or later.
  </p>
  </dd>
! <dt>&lsquo;<samp>bootstrap-ubsan</samp>&rsquo;</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>
  
! <a name="Building-a-cross-compiler"></a>
! <h3 class="section">Building a cross compiler</h3>
  
  <p>When building a cross compiler, it is not generally possible to do a
  3-stage bootstrap of the compiler.  This makes for an interesting problem
--- 114,352 ----
  want Info documentation to be regenerated.  Releases contain Info
  documentation pre-built for the unmodified documentation in the release.
  </p>
! <div class="section-level-extent" id="Building-a-native-compiler">
! <h3 class="section"><span>Building a native compiler<a class="copiable-link" href="#Building-a-native-compiler"> &para;</a></span></h3>
  
  <p>For a native build, the default configuration is to perform
! a 3-stage bootstrap of the compiler when &lsquo;<samp class="samp">make</samp>&rsquo; is invoked.
  This will build the entire GCC system and ensure that it compiles
! itself correctly.  It can be disabled with the <samp class="option">--disable-bootstrap</samp>
! parameter to &lsquo;<samp class="samp">configure</samp>&rsquo;, but bootstrapping is suggested because
  the compiler will be tested more completely and could also have
  better performance.
  </p>
  <p>The bootstrapping process will complete the following steps:
  </p>
! <ul class="itemize mark-bullet">
! <li>Build tools necessary to build the compiler.
  
! </li><li>Perform a 3-stage bootstrap of the compiler.  This includes building
  three times the target tools for use by the compiler such as binutils
  (bfd, binutils, gas, gprof, ld, and opcodes) if they have been
  individually linked or moved into the top level GCC source tree before
  configuring.
  
! </li><li>Perform a comparison test of the stage2 and stage3 compilers.
  
! </li><li>Build runtime libraries using the stage3 compiler from the previous step.
  
  </li></ul>
  
! <p>If you are short on disk space you might consider &lsquo;<samp class="samp">make
  bootstrap-lean</samp>&rsquo; instead.  The sequence of compilation is the
  same described above, but object files from the stage1 and
  stage2 of the 3-stage bootstrap of the compiler are deleted as
  soon as they are no longer needed.
  </p>
  <p>If you wish to use non-default GCC flags when compiling the stage2
! and stage3 compilers, set <code class="code">BOOT_CFLAGS</code> on the command line when
! doing &lsquo;<samp class="samp">make</samp>&rsquo;.  For example, if you want to save additional space
  during the bootstrap and in the final installation as well, you can
  build the compiler binaries without debugging information as in the
  following example.  This will save roughly 40% of disk space both for
  the bootstrap and the final installation.  (Libraries will still contain
  debugging information.)
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make BOOT_CFLAGS='-O' bootstrap
  </pre></div>
  
! <p>You can place non-default optimization flags into <code class="code">BOOT_CFLAGS</code>; they
! are less well tested here than the default of &lsquo;<samp class="samp">-g -O2</samp>&rsquo;, but should
  still work.  In a few cases, you may find that you need to specify special
! flags such as <samp class="option">-msoft-float</samp> here to complete the bootstrap; or,
  if the native compiler miscompiles the stage1 compiler, you may need
! to work around this, by choosing <code class="code">BOOT_CFLAGS</code> to avoid the parts
! of the stage1 compiler that were miscompiled, or by using &lsquo;<samp class="samp">make
  bootstrap4</samp>&rsquo; to increase the number of stages of bootstrap.
  </p>
! <p><code class="code">BOOT_CFLAGS</code> does not apply to bootstrapped target libraries.
  Since these are always compiled with the compiler currently being
! bootstrapped, you can use <code class="code">CFLAGS_FOR_TARGET</code> to modify their
  compilation flags, as for non-bootstrapped target libraries.
  Again, if the native compiler miscompiles the stage1 compiler, you may
  need to work around this by avoiding non-working parts of the stage1
! compiler.  Use <code class="code">STAGE1_TFLAGS</code> to this end.
  </p>
! <p>You can use <code class="code">STAGE1_CFLAGS</code> to set the flags passed to the host compiler
! when building the stage1 compiler.  The default is to pass <samp class="option">-g</samp>, but when
! the host compiler is GCC, this results in a non-optimized build of the stage1
! compiler.  You can speed up the bootstrap by using &lsquo;<samp class="samp">STAGE1_CFLAGS='-O2'</samp>&rsquo;
! at the increased risk of miscompiling the stage1 compiler when the host
! compiler is buggy.
! </p>
! <p>If you used the flag <samp class="option">--enable-languages=&hellip;</samp> to restrict
  the compilers to be built, only those you&rsquo;ve actually enabled will be
  built.  This will of course only build those runtime libraries, for
  which the particular compiler has been built.  Please note,
! that re-defining <code class="env">LANGUAGES</code> when calling &lsquo;<samp class="samp">make</samp>&rsquo;
! <strong class="strong">does not</strong> work anymore!
  </p>
  <p>If the comparison of stage2 and stage3 fails, this normally indicates
  that the stage2 compiler has compiled GCC incorrectly, and is therefore
  a potentially serious bug which you should investigate and report.  (On
  a few systems, meaningful comparison of object files is impossible; they
  always appear &ldquo;different&rdquo;.  If you encounter this problem, you will
! need to disable comparison in the <samp class="file">Makefile</samp>.)
  </p>
  <p>If you do not want to bootstrap your compiler, you can configure with
! <samp class="option">--disable-bootstrap</samp>.  In particular cases, you may want to
  bootstrap your compiler even if the target system is not the same as
  the one you are building on: for example, you could build a
! <code class="code">powerpc-unknown-linux-gnu</code> toolchain on a
! <code class="code">powerpc64-unknown-linux-gnu</code> host.  In this case, pass
! <samp class="option">--enable-bootstrap</samp> to the configure script.
  </p>
! <p><code class="code">BUILD_CONFIG</code> can be used to bring in additional customization
  to the build.  It can be set to a whitespace-separated list of names.
! For each such <code class="code">NAME</code>, top-level <samp class="file">config/<code class="code">NAME</code>.mk</samp> will
! be included by the top-level <samp class="file">Makefile</samp>, bringing in any settings
! it contains.  The default <code class="code">BUILD_CONFIG</code> can be set using the
! configure option <samp class="option">--with-build-config=<code class="code">NAME</code>...</samp>.  Some
  examples of supported build configurations are:
  </p>
! <dl class="table">
! <dt>&lsquo;<samp class="samp">bootstrap-O1</samp>&rsquo;</dt>
! <dd><p>Removes any <samp class="option">-O</samp>-started option from <code class="code">BOOT_CFLAGS</code>, and adds
! <samp class="option">-O1</samp> to it.  &lsquo;<samp class="samp">BUILD_CONFIG=bootstrap-O1</samp>&rsquo; is equivalent to
! &lsquo;<samp class="samp">BOOT_CFLAGS='-g -O1'</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-O3</samp>&rsquo;</dt>
! <dt>&lsquo;<samp class="samp">bootstrap-Og</samp>&rsquo;</dt>
! <dd><p>Analogous to <code class="code">bootstrap-O1</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-native</samp>&rsquo;</dt>
! <dt>&lsquo;<samp class="samp">bootstrap-native</samp>&rsquo;</dt>
! <dd><p>Optimize the compiler code for the build host, if supported by the
! architecture. Note this only affects the compiler, not the targeted
! code. If you want the later, choose options suitable to the target you
! are looking for. For example &lsquo;<samp class="samp">--with-cpu</samp>&rsquo; would be a good starting point.
! </p>
! </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-lto</samp>&rsquo;</dt>
  <dd><p>Enables Link-Time Optimization for host tools during bootstrapping.
! &lsquo;<samp class="samp">BUILD_CONFIG=bootstrap-lto</samp>&rsquo; is equivalent to adding
! <samp class="option">-flto</samp> to &lsquo;<samp class="samp">BOOT_CFLAGS</samp>&rsquo;.  This option assumes that the host
  supports the linker plugin (e.g. GNU ld version 2.21 or later or GNU gold
  version 2.21 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-lto-noplugin</samp>&rsquo;</dt>
! <dd><p>This option is similar to <code class="code">bootstrap-lto</code>, but is intended for
! hosts that do not support the linker plugin.  Without the linker plugin
! static libraries are not compiled with link-time optimizations.  Since
! the GCC middle end and back end are in <samp class="file">libbackend.a</samp> this means
  that only the front end is actually LTO optimized.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-lto-lean</samp>&rsquo;</dt>
! <dd><p>This option is similar to <code class="code">bootstrap-lto</code>, but is intended for
  faster build by only using LTO in the final bootstrap stage.
! With &lsquo;<samp class="samp">make profiledbootstrap</samp>&rsquo; the LTO frontend
  is trained only on generator files.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-debug</samp>&rsquo;</dt>
  <dd><p>Verifies that the compiler generates the same executable code, whether
  or not it is asked to emit debug information.  To this end, this
  option builds stage2 host programs without debug information, and uses
! <samp class="file">contrib/compare-debug</samp> to compare them with the stripped stage3
! object files.  If <code class="code">BOOT_CFLAGS</code> is overridden so as to not enable
  debug information, stage2 will have it, and stage3 won&rsquo;t.  This option
  is enabled by default when GCC bootstrapping is enabled, if
! <code class="code">strip</code> can turn object files compiled with and without debug
  info into identical object files.  In addition to better test
  coverage, this option makes default bootstraps faster and leaner.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-debug-big</samp>&rsquo;</dt>
  <dd><p>Rather than comparing stripped object files, as in
! <code class="code">bootstrap-debug</code>, this option saves internal compiler dumps
  during stage2 and stage3 and compares them as well, which helps catch
  additional potential problems, but at a great cost in terms of disk
! space.  It can be specified in addition to &lsquo;<samp class="samp">bootstrap-debug</samp>&rsquo;.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-debug-lean</samp>&rsquo;</dt>
! <dd><p>This option saves disk space compared with <code class="code">bootstrap-debug-big</code>,
  but at the expense of some recompilation.  Instead of saving the dumps
  of stage2 and stage3 until the final compare, it uses
! <samp class="option">-fcompare-debug</samp> to generate, compare and remove the dumps
  during stage3, repeating the compilation that already took place in
  stage2, whose dumps were not saved.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-debug-lib</samp>&rsquo;</dt>
  <dd><p>This option tests executable code invariance over debug information
! generation on target libraries, just like <code class="code">bootstrap-debug-lean</code>
  tests it on host programs.  It builds stage3 libraries with
! <samp class="option">-fcompare-debug</samp>, and it can be used along with any of the
! <code class="code">bootstrap-debug</code> options above.
  </p>
! <p>There aren&rsquo;t <code class="code">-lean</code> or <code class="code">-big</code> counterparts to this option
  because most libraries are only build in stage3, so bootstrap compares
  would not get significant coverage.  Moreover, the few libraries built
  in stage2 are used in stage3 host programs, so we wouldn&rsquo;t want to
  compile stage2 libraries with different options for comparison purposes.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-debug-ckovw</samp>&rsquo;</dt>
  <dd><p>Arranges for error messages to be issued if the compiler built on any
! stage is run without the option <samp class="option">-fcompare-debug</samp>.  This is
! useful to verify the full <samp class="option">-fcompare-debug</samp> testing coverage.  It
! must be used along with <code class="code">bootstrap-debug-lean</code> and
! <code class="code">bootstrap-debug-lib</code>.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-cet</samp>&rsquo;</dt>
  <dd><p>This option enables Intel CET for host tools during bootstrapping.
! &lsquo;<samp class="samp">BUILD_CONFIG=bootstrap-cet</samp>&rsquo; is equivalent to adding
! <samp class="option">-fcf-protection</samp> to &lsquo;<samp class="samp">BOOT_CFLAGS</samp>&rsquo;.  This option
  assumes that the host supports Intel CET (e.g. GNU assembler version
  2.30 or later).
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-time</samp>&rsquo;</dt>
  <dd><p>Arranges for the run time of each program started by the GCC driver,
! built in any stage, to be logged to <samp class="file">time.log</samp>, in the top level of
  the build tree.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-asan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using Address Sanitization in order to catch invalid memory
  accesses within the GCC code.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-hwasan</samp>&rsquo;</dt>
  <dd><p>Compiles GCC itself using HWAddress Sanitization in order to catch invalid
  memory accesses within the GCC code.  This option is only available on AArch64
  systems that are running Linux kernel version 5.4 or later.
  </p>
  </dd>
! <dt>&lsquo;<samp class="samp">bootstrap-ubsan</samp>&rsquo;</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 class="code">UBSAN_OPTIONS</code> can be set to change this, like
! &lsquo;<samp class="samp">UBSAN_OPTIONS='abort_on_error=1:halt_on_error=1:print_summary=1:print_stacktrace=1'</samp>&rsquo;.
  </p>
  </dd>
  </dl>
  
! </div>
! <div class="section-level-extent" id="Building-a-cross-compiler">
! <h3 class="section"><span>Building a cross compiler<a class="copiable-link" href="#Building-a-cross-compiler"> &para;</a></span></h3>
  
  <p>When building a cross compiler, it is not generally possible to do a
  3-stage bootstrap of the compiler.  This makes for an interesting problem
*************** cross compiler.  The installed native co
*** 360,404 ****
  2.95 or later.
  </p>
  <p>Assuming you have already installed a native copy of GCC and configured
! your cross compiler, issue the command <code>make</code>, which performs the
  following steps:
  </p>
! <ul>
! <li> Build host tools necessary to build the compiler.
  
! </li><li> Build target tools for use by the compiler such as binutils (bfd,
  binutils, gas, gprof, ld, and opcodes)
  if they have been individually linked or moved into the top level GCC source
  tree before configuring.
  
! </li><li> Build the compiler (single stage only).
  
! </li><li> Build runtime libraries using the compiler from the previous step.
  </li></ul>
  
  <p>Note that if an error occurs in any step the make process will exit.
  </p>
! <p>If you are not building GNU binutils in the same source tree as GCC,
  you will need a cross-assembler and cross-linker installed before
  configuring GCC.  Put them in the directory
! <samp><var>prefix</var>/<var>target</var>/bin</samp>.  Here is a table of the tools
  you should put in this directory:
  </p>
! <dl compact="compact">
! <dt><samp>as</samp></dt>
  <dd><p>This should be the cross-assembler.
  </p>
  </dd>
! <dt><samp>ld</samp></dt>
  <dd><p>This should be the cross-linker.
  </p>
  </dd>
! <dt><samp>ar</samp></dt>
  <dd><p>This should be the cross-archiver: a program which can manipulate
  archive files (linker libraries) in the target machine&rsquo;s format.
  </p>
  </dd>
! <dt><samp>ranlib</samp></dt>
  <dd><p>This should be a program to construct a symbol table in an archive file.
  </p></dd>
  </dl>
--- 358,402 ----
  2.95 or later.
  </p>
  <p>Assuming you have already installed a native copy of GCC and configured
! your cross compiler, issue the command <code class="command">make</code>, which performs the
  following steps:
  </p>
! <ul class="itemize mark-bullet">
! <li>Build host tools necessary to build the compiler.
  
! </li><li>Build target tools for use by the compiler such as binutils (bfd,
  binutils, gas, gprof, ld, and opcodes)
  if they have been individually linked or moved into the top level GCC source
  tree before configuring.
  
! </li><li>Build the compiler (single stage only).
  
! </li><li>Build runtime libraries using the compiler from the previous step.
  </li></ul>
  
  <p>Note that if an error occurs in any step the make process will exit.
  </p>
! <p>If you are not building GNU Binutils in the same source tree as GCC,
  you will need a cross-assembler and cross-linker installed before
  configuring GCC.  Put them in the directory
! <samp class="file"><var class="var">prefix</var>/<var class="var">target</var>/bin</samp>.  Here is a table of the tools
  you should put in this directory:
  </p>
! <dl class="table">
! <dt><samp class="file">as</samp></dt>
  <dd><p>This should be the cross-assembler.
  </p>
  </dd>
! <dt><samp class="file">ld</samp></dt>
  <dd><p>This should be the cross-linker.
  </p>
  </dd>
! <dt><samp class="file">ar</samp></dt>
  <dd><p>This should be the cross-archiver: a program which can manipulate
  archive files (linker libraries) in the target machine&rsquo;s format.
  </p>
  </dd>
! <dt><samp class="file">ranlib</samp></dt>
  <dd><p>This should be a program to construct a symbol table in an archive file.
  </p></dd>
  </dl>
*************** and copy or link them to the proper plac
*** 408,414 ****
  find them when run later.
  </p>
  <p>The easiest way to provide these files is to build the Binutils package.
! Configure it with the same <samp>--host</samp> and <samp>--target</samp>
  options that you use for configuring GCC, then build and install
  them.  They install their executables automatically into the proper
  directory.  Alas, they do not support all the targets that GCC
--- 406,412 ----
  find them when run later.
  </p>
  <p>The easiest way to provide these files is to build the Binutils package.
! Configure it with the same <samp class="option">--host</samp> and <samp class="option">--target</samp>
  options that you use for configuring GCC, then build and install
  them.  They install their executables automatically into the proper
  directory.  Alas, they do not support all the targets that GCC
*************** supports.
*** 417,475 ****
  <p>If you are not building a C library in the same source tree as GCC,
  you should also provide the target libraries and headers before
  configuring GCC, specifying the directories with
! <samp>--with-sysroot</samp> or <samp>--with-headers</samp> and
! <samp>--with-libs</samp>.  Many targets also require &ldquo;start files&rdquo; such
! as <samp>crt0.o</samp> and
! <samp>crtn.o</samp> which are linked into each executable.  There may be several
! alternatives for <samp>crt0.o</samp>, for use with profiling or other
  compilation options.  Check your target&rsquo;s definition of
! <code>STARTFILE_SPEC</code> to find out what start files it uses.
  </p>
! <a name="Building-in-parallel"></a>
! <h3 class="section">Building in parallel</h3>
  
  <p>GNU Make 3.80 and above, which is necessary to build GCC, support
! building in parallel.  To activate this, you can use &lsquo;<samp>make -j 2</samp>&rsquo;
! instead of &lsquo;<samp>make</samp>&rsquo;.  You can also specify a bigger number, and
  in most cases using a value greater than the number of processors in
  your machine will result in fewer and shorter I/O latency hits, thus
  improving overall throughput; this is especially true for slow drives
  and network filesystems.
  </p>
! <a name="Building-the-Ada-compiler"></a>
! <h3 class="section">Building the Ada compiler</h3>
  
! <p><a href="prerequisites.html#GNAT-prerequisite">GNAT prerequisites</a>.
  </p>
! <a name="Building-the-D-compiler"></a>
! <h3 class="section">Building the D compiler</h3>
  
! <p><a href="prerequisites.html#GDC-prerequisite">GDC prerequisites</a>.
  </p>
! <a name="Building-with-profile-feedback"></a>
! <h3 class="section">Building with profile feedback</h3>
  
  <p>It is possible to use profile feedback to optimize the compiler itself.  This
  should result in a faster compiler binary.  Experiments done on x86 using gcc
  3.3 showed approximately 7 percent speedup on compiling C programs.  To
! bootstrap the compiler with profile feedback, use <code>make profiledbootstrap</code>.
  </p>
! <p>When &lsquo;<samp>make profiledbootstrap</samp>&rsquo; is run, it will first build a <code>stage1</code>
! compiler.  This compiler is used to build a <code>stageprofile</code> compiler
  instrumented to collect execution counts of instruction and branch
! probabilities.  Training run is done by building <code>stagetrain</code>
! compiler.  Finally a <code>stagefeedback</code> compiler is built
  using the information collected.
  </p>
  <p>Unlike standard bootstrap, several additional restrictions apply.  The
! compiler used to build <code>stage1</code> needs to support a 64-bit integral type.
  It is recommended to only use GCC for this.
  </p>
  <p>On Linux/x86_64 hosts with some restrictions (no virtualization) it is
! also possible to do autofdo build with &lsquo;<samp>make
  autoprofiledbootstrap</samp>&rsquo;. This uses Linux perf to sample branches in the
  binary and then rebuild it with feedback derived from the profile.
! Linux perf and the <code>autofdo</code> toolkit needs to be installed for
  this.
  </p>
  <p>Only the profile from the current build is used, so when an error
--- 415,477 ----
  <p>If you are not building a C library in the same source tree as GCC,
  you should also provide the target libraries and headers before
  configuring GCC, specifying the directories with
! <samp class="option">--with-sysroot</samp> or <samp class="option">--with-headers</samp> and
! <samp class="option">--with-libs</samp>.  Many targets also require &ldquo;start files&rdquo; such
! as <samp class="file">crt0.o</samp> and
! <samp class="file">crtn.o</samp> which are linked into each executable.  There may be several
! alternatives for <samp class="file">crt0.o</samp>, for use with profiling or other
  compilation options.  Check your target&rsquo;s definition of
! <code class="code">STARTFILE_SPEC</code> to find out what start files it uses.
  </p>
! </div>
! <div class="section-level-extent" id="Building-in-parallel">
! <h3 class="section"><span>Building in parallel<a class="copiable-link" href="#Building-in-parallel"> &para;</a></span></h3>
  
  <p>GNU Make 3.80 and above, which is necessary to build GCC, support
! building in parallel.  To activate this, you can use &lsquo;<samp class="samp">make -j 2</samp>&rsquo;
! instead of &lsquo;<samp class="samp">make</samp>&rsquo;.  You can also specify a bigger number, and
  in most cases using a value greater than the number of processors in
  your machine will result in fewer and shorter I/O latency hits, thus
  improving overall throughput; this is especially true for slow drives
  and network filesystems.
  </p>
! </div>
! <div class="section-level-extent" id="Building-the-Ada-compiler">
! <h3 class="section"><span>Building the Ada compiler<a class="copiable-link" href="#Building-the-Ada-compiler"> &para;</a></span></h3>
  
! <p><a class="uref" href="prerequisites.html#GNAT-prerequisite">GNAT prerequisites</a>.
  </p>
! </div>
! <div class="section-level-extent" id="Building-the-D-compiler">
! <h3 class="section"><span>Building the D compiler<a class="copiable-link" href="#Building-the-D-compiler"> &para;</a></span></h3>
  
! <p><a class="uref" href="prerequisites.html#GDC-prerequisite">GDC prerequisites</a>.
  </p>
! </div>
! <div class="section-level-extent" id="Building-with-profile-feedback">
! <h3 class="section"><span>Building with profile feedback<a class="copiable-link" href="#Building-with-profile-feedback"> &para;</a></span></h3>
  
  <p>It is possible to use profile feedback to optimize the compiler itself.  This
  should result in a faster compiler binary.  Experiments done on x86 using gcc
  3.3 showed approximately 7 percent speedup on compiling C programs.  To
! bootstrap the compiler with profile feedback, use <code class="code">make profiledbootstrap</code>.
  </p>
! <p>When &lsquo;<samp class="samp">make profiledbootstrap</samp>&rsquo; is run, it will first build a <code class="code">stage1</code>
! compiler.  This compiler is used to build a <code class="code">stageprofile</code> compiler
  instrumented to collect execution counts of instruction and branch
! probabilities.  Training run is done by building <code class="code">stagetrain</code>
! compiler.  Finally a <code class="code">stagefeedback</code> compiler is built
  using the information collected.
  </p>
  <p>Unlike standard bootstrap, several additional restrictions apply.  The
! compiler used to build <code class="code">stage1</code> needs to support a 64-bit integral type.
  It is recommended to only use GCC for this.
  </p>
  <p>On Linux/x86_64 hosts with some restrictions (no virtualization) it is
! also possible to do autofdo build with &lsquo;<samp class="samp">make
  autoprofiledbootstrap</samp>&rsquo;. This uses Linux perf to sample branches in the
  binary and then rebuild it with feedback derived from the profile.
! Linux perf and the <code class="code">autofdo</code> toolkit needs to be installed for
  this.
  </p>
  <p>Only the profile from the current build is used, so when an error
*************** the code quality may be much worse.
*** 478,484 ****
  </p>
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 480,486 ----
  </p>
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
*************** the code quality may be much worse.
*** 486,492 ****
  
  
  
! <hr>
  
  
  
--- 488,494 ----
  
  
  
! </div>
  
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/configure.html gcc-16.1.0-RC-20260423/INSTALL/configure.html
*** gcc-15.2.0/INSTALL/configure.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/configure.html	Thu Apr 23 11:07:47 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Configuration</title>
  
  <meta name="description" content="Installing GCC: Configuration">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,43 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
  div.example {margin-left: 3.2em}
! span:hover a.copiable-link {visibility: visible}
! ul.mark-bullet {list-style-type: disc}
! ul.mark-minus {list-style-type: "\2212"}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: Configuration</h1>
  
  
  
--- 45,50 ----
*************** ul.no-bullet {list-style: none}
*** 84,159 ****
  
  
  
! <a name="index-Configuration"></a>
! <a name="index-Installing-GCC_003a-Configuration"></a>
  
  <p>Like most GNU software, GCC must be configured before it can be built.
  This document describes the recommended configuration procedure
  for both native and cross targets.
  </p>
! <p>We use <var>srcdir</var> to refer to the toplevel source directory for
! GCC; we use <var>objdir</var> to refer to the toplevel build/object directory.
  </p>
! <p>If you obtained the sources by cloning the repository, <var>srcdir</var>
! must refer to the top <samp>gcc</samp> directory, the one where the
! <samp>MAINTAINERS</samp> file can be found, and not its <samp>gcc</samp>
  subdirectory, otherwise the build will fail.
  </p>
! <p>If either <var>srcdir</var> or <var>objdir</var> is located on an automounted NFS
! file system, the shell&rsquo;s built-in <code>pwd</code> command will return
  temporary pathnames.  Using these can lead to various sorts of build
! problems.  To avoid this issue, set the <code>PWDCMD</code> environment
! variable to an automounter-aware <code>pwd</code> command, e.g.,
! <code>pawd</code> or &lsquo;<samp>amq -w</samp>&rsquo;, during the configuration and build
  phases.
  </p>
! <p>First, we <strong>highly</strong> recommend that GCC be built into a
! separate directory from the sources which does <strong>not</strong> reside
  within the source tree.  This is how we generally build GCC; building
! where <var>objdir</var> is a subdirectory of <var>srcdir</var> should work as well;
! building where <var>objdir</var> == <var>srcdir</var> is unsupported.
  </p>
  <p>If you have previously built GCC in the same directory for a
! different target machine, do &lsquo;<samp>make distclean</samp>&rsquo; to delete all files
! that might be invalid.  One of the files this deletes is <samp>Makefile</samp>;
! if &lsquo;<samp>make distclean</samp>&rsquo; complains that <samp>Makefile</samp> does not exist
  or issues a message like &ldquo;don&rsquo;t know how to make distclean&rdquo; it probably
  means that the directory is already suitably clean.  However, with the
! recommended method of building in a separate <var>objdir</var>, you should
! simply use a different <var>objdir</var> for each target.
  </p>
! <p>Second, when configuring a native system, either <code>cc</code> or
! <code>gcc</code> must be in your path or you must set <code>CC</code> in
  your environment before running configure.  Otherwise the configuration
  scripts may fail.
  </p>
  
  <p>To configure GCC:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% mkdir <var>objdir</var>
! % cd <var>objdir</var>
! % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
  </pre></div>
  
! <a name="Distributor-options"></a>
! <h3 class="heading">Distributor options</h3>
  
  <p>If you will be distributing binary versions of GCC, with modifications
  to the source code, you should use the options described in this
  section to make clear that your version contains modifications.
  </p>
! <dl compact="compact">
! <dt><code>--with-pkgversion=<var>version</var></code></dt>
  <dd><p>Specify a string that identifies your package.  You may wish
  to include a build number or build date.  This version string will be
! included in the output of <code>gcc --version</code>.  This suffix does
! not replace the default version string, only the &lsquo;<samp>GCC</samp>&rsquo; part.
  </p>
! <p>The default value is &lsquo;<samp>GCC</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-bugurl=<var>url</var></code></dt>
  <dd><p>Specify the URL that users should visit if they wish to report a bug.
  You are of course welcome to forward bugs reported to you to the FSF,
  if you determine that they are not bugs in your modifications.
--- 67,141 ----
  
  
  
! <a class="index-entry-id" id="index-Configuration"></a>
! <a class="index-entry-id" id="index-Installing-GCC_003a-Configuration"></a>
  
  <p>Like most GNU software, GCC must be configured before it can be built.
  This document describes the recommended configuration procedure
  for both native and cross targets.
  </p>
! <p>We use <var class="var">srcdir</var> to refer to the toplevel source directory for
! GCC; we use <var class="var">objdir</var> to refer to the toplevel build/object directory.
  </p>
! <p>If you obtained the sources by cloning the repository, <var class="var">srcdir</var>
! must refer to the top <samp class="file">gcc</samp> directory, the one where the
! <samp class="file">MAINTAINERS</samp> file can be found, and not its <samp class="file">gcc</samp>
  subdirectory, otherwise the build will fail.
  </p>
! <p>If either <var class="var">srcdir</var> or <var class="var">objdir</var> is located on an automounted NFS
! file system, the shell&rsquo;s built-in <code class="command">pwd</code> command will return
  temporary pathnames.  Using these can lead to various sorts of build
! problems.  To avoid this issue, set the <code class="env">PWDCMD</code> environment
! variable to an automounter-aware <code class="command">pwd</code> command, e.g.,
! <code class="command">pawd</code> or &lsquo;<samp class="samp">amq -w</samp>&rsquo;, during the configuration and build
  phases.
  </p>
! <p>First, we <strong class="strong">highly</strong> recommend that GCC be built into a
! separate directory from the sources which does <strong class="strong">not</strong> reside
  within the source tree.  This is how we generally build GCC; building
! where <var class="var">objdir</var> is a subdirectory of <var class="var">srcdir</var> should work as well;
! building where <var class="var">objdir</var> == <var class="var">srcdir</var> is unsupported.
  </p>
  <p>If you have previously built GCC in the same directory for a
! different target machine, do &lsquo;<samp class="samp">make distclean</samp>&rsquo; to delete all files
! that might be invalid.  One of the files this deletes is <samp class="file">Makefile</samp>;
! if &lsquo;<samp class="samp">make distclean</samp>&rsquo; complains that <samp class="file">Makefile</samp> does not exist
  or issues a message like &ldquo;don&rsquo;t know how to make distclean&rdquo; it probably
  means that the directory is already suitably clean.  However, with the
! recommended method of building in a separate <var class="var">objdir</var>, you should
! simply use a different <var class="var">objdir</var> for each target.
  </p>
! <p>Second, when configuring a native system, either <code class="command">cc</code> or
! <code class="command">gcc</code> must be in your path or you must set <code class="env">CC</code> in
  your environment before running configure.  Otherwise the configuration
  scripts may fail.
  </p>
  
  <p>To configure GCC:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">% mkdir <var class="var">objdir</var>
! % cd <var class="var">objdir</var>
! % <var class="var">srcdir</var>/configure [<var class="var">options</var>] [<var class="var">target</var>]
  </pre></div>
  
! <h3 class="heading" id="Distributor-options"><span>Distributor options<a class="copiable-link" href="#Distributor-options"> &para;</a></span></h3>
  
  <p>If you will be distributing binary versions of GCC, with modifications
  to the source code, you should use the options described in this
  section to make clear that your version contains modifications.
  </p>
! <dl class="table">
! <dt><code class="code">--with-pkgversion=<var class="var">version</var></code></dt>
  <dd><p>Specify a string that identifies your package.  You may wish
  to include a build number or build date.  This version string will be
! included in the output of <code class="command">gcc --version</code>.  This suffix does
! not replace the default version string, only the &lsquo;<samp class="samp">GCC</samp>&rsquo; part.
  </p>
! <p>The default value is &lsquo;<samp class="samp">GCC</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--with-bugurl=<var class="var">url</var></code></dt>
  <dd><p>Specify the URL that users should visit if they wish to report a bug.
  You are of course welcome to forward bugs reported to you to the FSF,
  if you determine that they are not bugs in your modifications.
*************** if you determine that they are not bugs
*** 161,223 ****
  <p>The default value refers to the FSF&rsquo;s GCC bug tracker.
  </p>
  </dd>
! <dt><code>--with-documentation-root-url=<var>url</var></code></dt>
! <dd><p>Specify the URL root that contains GCC option documentation.  The <var>url</var>
! should end with a <code>/</code> character.
  </p>
! <p>The default value is <a href="https://gcc.gnu.org/onlinedocs/">https://gcc.gnu.org/onlinedocs/</a>
  on the GCC main development trunk.  On release branches, the default
! is <code>https://gcc.gnu.org/onlinedocs/gcc-<var>major</var>.<var>minor</var>.0/</code>.
  </p>
  </dd>
! <dt><code>--with-changes-root-url=<var>url</var></code></dt>
  <dd><p>Specify the URL root that contains information about changes in GCC
! releases like <code>gcc-<var>version</var>/changes.html</code>.
! The <var>url</var> should end with a <code>/</code> character.
  </p>
! <p>The default value is <a href="https://gcc.gnu.org/">https://gcc.gnu.org/</a>.
  </p>
  </dd>
  </dl>
  
! <a name="Host_002c-Build-and-Target-specification"></a>
! <h3 class="heading">Host, Build and Target specification</h3>
  
  <p>Specify the host, build and target machine configurations.  You do this
! when you run the <samp>configure</samp> script.
  </p>
! <p>The <em>build</em> machine is the system which you are using, the
! <em>host</em> machine is the system where you want to run the resulting
! compiler (normally the build machine), and the <em>target</em> machine is
  the system for which you want the compiler to generate code.
  </p>
  <p>If you are building a compiler to produce code for the machine it runs
  on (a native compiler), you normally do not need to specify any operands
! to <samp>configure</samp>; it will try to guess the type of machine you are on
  and use that as the build, host and target machines.  So you don&rsquo;t need
  to specify a configuration when building a native compiler unless
! <samp>configure</samp> cannot figure out what your configuration is or guesses
  wrong.
  </p>
! <p>In those cases, specify the build machine&rsquo;s <em>configuration name</em>
! with the <samp>--host</samp> option; the host and target will default to be
  the same as the host machine.
  </p>
  <p>Here is an example:
  </p>
! <div class="smallexample">
! <pre class="smallexample">./configure --host=x86_64-pc-linux-gnu
  </pre></div>
  
  <p>A configuration name may be canonical or it may be more or less
! abbreviated (<samp>config.sub</samp> script produces canonical versions).
  </p>
  <p>A canonical configuration name has three parts, separated by dashes.
! It looks like this: &lsquo;<samp><var>cpu</var>-<var>company</var>-<var>system</var></samp>&rsquo;.
  </p>
  <p>Here are the possible CPU types:
  </p>
! <blockquote>
  <p>aarch64, aarch64_be, alpha, alpha64, amdgcn, arc, arceb, arm, armeb, avr, bfin,
  bpf, cris, csky, epiphany, fido, fr30, frv, ft32, h8300, hppa, hppa2.0,
  hppa64, i486, i686, ia64, iq2000, lm32, loongarch64, m32c, m32r, m32rle, m68k,
--- 143,204 ----
  <p>The default value refers to the FSF&rsquo;s GCC bug tracker.
  </p>
  </dd>
! <dt><code class="code">--with-documentation-root-url=<var class="var">url</var></code></dt>
! <dd><p>Specify the URL root that contains GCC option documentation.  The <var class="var">url</var>
! should end with a <code class="code">/</code> character.
  </p>
! <p>The default value is <a class="uref" href="https://gcc.gnu.org/onlinedocs/">https://gcc.gnu.org/onlinedocs/</a>
  on the GCC main development trunk.  On release branches, the default
! is <code class="code">https://gcc.gnu.org/onlinedocs/gcc-<var class="var">major</var>.<var class="var">minor</var>.0/</code>.
  </p>
  </dd>
! <dt><code class="code">--with-changes-root-url=<var class="var">url</var></code></dt>
  <dd><p>Specify the URL root that contains information about changes in GCC
! releases like <code class="code">gcc-<var class="var">version</var>/changes.html</code>.
! The <var class="var">url</var> should end with a <code class="code">/</code> character.
  </p>
! <p>The default value is <a class="uref" href="https://gcc.gnu.org/">https://gcc.gnu.org/</a>.
  </p>
  </dd>
  </dl>
  
! <h3 class="heading" id="Host_002c-Build-and-Target-specification"><span>Host, Build and Target specification<a class="copiable-link" href="#Host_002c-Build-and-Target-specification"> &para;</a></span></h3>
  
  <p>Specify the host, build and target machine configurations.  You do this
! when you run the <samp class="file">configure</samp> script.
  </p>
! <p>The <em class="dfn">build</em> machine is the system which you are using, the
! <em class="dfn">host</em> machine is the system where you want to run the resulting
! compiler (normally the build machine), and the <em class="dfn">target</em> machine is
  the system for which you want the compiler to generate code.
  </p>
  <p>If you are building a compiler to produce code for the machine it runs
  on (a native compiler), you normally do not need to specify any operands
! to <samp class="file">configure</samp>; it will try to guess the type of machine you are on
  and use that as the build, host and target machines.  So you don&rsquo;t need
  to specify a configuration when building a native compiler unless
! <samp class="file">configure</samp> cannot figure out what your configuration is or guesses
  wrong.
  </p>
! <p>In those cases, specify the build machine&rsquo;s <em class="dfn">configuration name</em>
! with the <samp class="option">--host</samp> option; the host and target will default to be
  the same as the host machine.
  </p>
  <p>Here is an example:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">./configure --host=x86_64-pc-linux-gnu
  </pre></div>
  
  <p>A configuration name may be canonical or it may be more or less
! abbreviated (<samp class="file">config.sub</samp> script produces canonical versions).
  </p>
  <p>A canonical configuration name has three parts, separated by dashes.
! It looks like this: &lsquo;<samp class="samp"><var class="var">cpu</var>-<var class="var">company</var>-<var class="var">system</var></samp>&rsquo;.
  </p>
  <p>Here are the possible CPU types:
  </p>
! <blockquote class="quotation">
  <p>aarch64, aarch64_be, alpha, alpha64, amdgcn, arc, arceb, arm, armeb, avr, bfin,
  bpf, cris, csky, epiphany, fido, fr30, frv, ft32, h8300, hppa, hppa2.0,
  hppa64, i486, i686, ia64, iq2000, lm32, loongarch64, m32c, m32r, m32rle, m68k,
*************** v850e, v850e1, vax, visium, x86_64, xsto
*** 232,389 ****
  
  <p>Here is a list of system types:
  </p>
! <blockquote>
! <p>aix<var>version</var>, amdhsa, aout, cygwin, darwin<var>version</var>,
  eabi, eabialtivec, eabisim, eabisimaltivec, elf, elf32,
! elfbare, elfoabi, freebsd<var>version</var>, gnu, hpux, hpux<var>version</var>,
  kfreebsd-gnu, kopensolaris-gnu, linux-androideabi, linux-gnu,
  linux-gnu_altivec, linux-musl, linux-uclibc, lynxos, mingw32, mingw32crt,
! mmixware, msdosdjgpp, netbsd, netbsdelf<var>version</var>, nto-qnx, openbsd,
! rtems, solaris<var>version</var>, symbianelf, tpf, uclinux, uclinux_eabi, vms,
  vxworks, vxworksae, vxworksmils
  </p></blockquote>
  
! <a name="Options-specification"></a>
! <h3 class="heading">Options specification</h3>
  
! <p>Use <var>options</var> to override several configure time options for
! GCC.  A list of supported <var>options</var> follows; &lsquo;<samp>configure
  --help</samp>&rsquo; may list other options, but those not listed below may not
  work and should not normally be used.
  </p>
! <p>Note that each <samp>--enable</samp> option has a corresponding
! <samp>--disable</samp> option and that each <samp>--with</samp> option has a
! corresponding <samp>--without</samp> option.
  </p>
! <dl compact="compact">
! <dt><code>--prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
! <samp>/usr/local</samp>.
  </p>
! <p>We <strong>highly</strong> recommend against <var>dirname</var> being the same or a
! subdirectory of <var>objdir</var> or vice versa.  If specifying a directory
  beneath a user&rsquo;s home directory tree, some shells will not expand
! <var>dirname</var> correctly if it contains the &lsquo;<samp>~</samp>&rsquo; metacharacter; use
! <code>$HOME</code> instead.
  </p>
! <p>The following standard <code>autoconf</code> options are supported.  Normally you
  should not need to use these options.
! </p><dl compact="compact">
! <dt><code>--exec-prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the toplevel installation directory for architecture-dependent
! files.  The default is <samp><var>prefix</var></samp>.
  </p>
  </dd>
! <dt><code>--bindir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for the executables called by users
! (such as <code>gcc</code> and <code>g++</code>).  The default is
! <samp><var>exec-prefix</var>/bin</samp>.
  </p>
  </dd>
! <dt><code>--libdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for object code libraries and
! internal data files of GCC.  The default is <samp><var>exec-prefix</var>/lib</samp>.
  </p>
  </dd>
! <dt><code>--libexecdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for internal executables of GCC.
! The default is <samp><var>exec-prefix</var>/libexec</samp>.
  </p>
  </dd>
! <dt><code>--with-slibdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for the shared libgcc library.  The
! default is <samp><var>libdir</var></samp>.
  </p>
  </dd>
! <dt><code>--datarootdir=<var>dirname</var></code></dt>
  <dd><p>Specify the root of the directory tree for read-only architecture-independent
! data files referenced by GCC.  The default is <samp><var>prefix</var>/share</samp>.
  </p>
  </dd>
! <dt><code>--infodir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation in info format.
! The default is <samp><var>datarootdir</var>/info</samp>.
  </p>
  </dd>
! <dt><code>--datadir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for some architecture-independent
! data files referenced by GCC.  The default is <samp><var>datarootdir</var></samp>.
  </p>
  </dd>
! <dt><code>--docdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation files (other
! than Info) for GCC.  The default is <samp><var>datarootdir</var>/doc</samp>.
  </p>
  </dd>
! <dt><code>--htmldir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for HTML documentation files.
! The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><code>--pdfdir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for PDF documentation files.
! The default is <samp><var>docdir</var></samp>.
  </p>
  </dd>
! <dt><code>--mandir=<var>dirname</var></code></dt>
  <dd><p>Specify the installation directory for manual pages.  The default is
! <samp><var>datarootdir</var>/man</samp>.  (Note that the manual pages are only extracts
  from the full GCC manuals, which are provided in Texinfo format.  The manpages
  are derived by an automatic conversion process from parts of the full
  manual.)
  </p>
  </dd>
! <dt><code>--with-gxx-include-dir=<var>dirname</var></code></dt>
  <dd><p>Specify
  the installation directory for G++ header files.  The default depends
  on other configuration options, and differs between cross and native
  configurations.
  </p>
  </dd>
! <dt><code>--with-specs=<var>specs</var></code></dt>
  <dd><p>Specify additional command line driver SPECS.
  This can be useful if you need to turn on a non-standard feature by
  default without modifying the compiler&rsquo;s source code, for instance
! <samp>--with-specs=%{!fcommon:%{!fno-common:-fno-common}}</samp>.
! See &ldquo;Spec Files&rdquo; in the main manual
! </p>
! </dd>
  </dl>
  
  </dd>
! <dt><code>--program-prefix=<var>prefix</var></code></dt>
  <dd><p>GCC supports some transformations of the names of its programs when
! installing them.  This option prepends <var>prefix</var> to the names of
! programs to install in <var>bindir</var> (see above).  For example, specifying
! <samp>--program-prefix=foo-</samp> would result in &lsquo;<samp>gcc</samp>&rsquo;
! being installed as <samp>/usr/local/bin/foo-gcc</samp>.
  </p>
  </dd>
! <dt><code>--program-suffix=<var>suffix</var></code></dt>
! <dd><p>Appends <var>suffix</var> to the names of programs to install in <var>bindir</var>
! (see above).  For example, specifying <samp>--program-suffix=-3.1</samp>
! would result in &lsquo;<samp>gcc</samp>&rsquo; being installed as
! <samp>/usr/local/bin/gcc-3.1</samp>.
  </p>
  </dd>
! <dt><code>--program-transform-name=<var>pattern</var></code></dt>
! <dd><p>Applies the &lsquo;<samp>sed</samp>&rsquo; script <var>pattern</var> to be applied to the names
! of programs to install in <var>bindir</var> (see above).  <var>pattern</var> has to
! consist of one or more basic &lsquo;<samp>sed</samp>&rsquo; editing commands, separated by
! semicolons.  For example, if you want the &lsquo;<samp>gcc</samp>&rsquo; program name to be
! transformed to the installed program <samp>/usr/local/bin/myowngcc</samp> and
! the &lsquo;<samp>g++</samp>&rsquo; program name to be transformed to
! <samp>/usr/local/bin/gspecial++</samp> without changing other program names,
  you could use the pattern
! <samp>--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'</samp>
  to achieve this effect.
  </p>
  <p>All three options can be combined and used together, resulting in more
! complex conversion patterns.  As a basic rule, <var>prefix</var> (and
! <var>suffix</var>) are prepended (appended) before further transformations
! can happen with a special transformation script <var>pattern</var>.
  </p>
  <p>As currently implemented, this option only takes effect for native
  builds; cross compiler binaries&rsquo; names are not transformed even when a
--- 213,368 ----
  
  <p>Here is a list of system types:
  </p>
! <blockquote class="quotation">
! <p>aix<var class="var">version</var>, amdhsa, aout, cygwin, darwin<var class="var">version</var>,
  eabi, eabialtivec, eabisim, eabisimaltivec, elf, elf32,
! elfbare, elfoabi, freebsd<var class="var">version</var>, gnu, hpux, hpux<var class="var">version</var>,
  kfreebsd-gnu, kopensolaris-gnu, linux-androideabi, linux-gnu,
  linux-gnu_altivec, linux-musl, linux-uclibc, lynxos, mingw32, mingw32crt,
! mmixware, msdosdjgpp, netbsd, netbsdelf<var class="var">version</var>, nto-qnx, openbsd,
! rtems, solaris<var class="var">version</var>, symbianelf, tpf, uclinux, uclinux_eabi, vms,
  vxworks, vxworksae, vxworksmils
  </p></blockquote>
  
! <h3 class="heading" id="Options-specification"><span>Options specification<a class="copiable-link" href="#Options-specification"> &para;</a></span></h3>
  
! <p>Use <var class="var">options</var> to override several configure time options for
! GCC.  A list of supported <var class="var">options</var> follows; &lsquo;<samp class="samp">configure
  --help</samp>&rsquo; may list other options, but those not listed below may not
  work and should not normally be used.
  </p>
! <p>Note that each <samp class="option">--enable</samp> option has a corresponding
! <samp class="option">--disable</samp> option and that each <samp class="option">--with</samp> option has a
! corresponding <samp class="option">--without</samp> option.
  </p>
! <dl class="table">
! <dt><code class="code">--prefix=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the toplevel installation
  directory.  This is the recommended way to install the tools into a directory
  other than the default.  The toplevel installation directory defaults to
! <samp class="file">/usr/local</samp>.
  </p>
! <p>We <strong class="strong">highly</strong> recommend against <var class="var">dirname</var> being the same or a
! subdirectory of <var class="var">objdir</var> or vice versa.  If specifying a directory
  beneath a user&rsquo;s home directory tree, some shells will not expand
! <var class="var">dirname</var> correctly if it contains the &lsquo;<samp class="samp">~</samp>&rsquo; metacharacter; use
! <code class="env">$HOME</code> instead.
  </p>
! <p>The following standard <code class="command">autoconf</code> options are supported.  Normally you
  should not need to use these options.
! </p><dl class="table">
! <dt><code class="code">--exec-prefix=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the toplevel installation directory for architecture-dependent
! files.  The default is <samp class="file"><var class="var">prefix</var></samp>.
  </p>
  </dd>
! <dt><code class="code">--bindir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for the executables called by users
! (such as <code class="command">gcc</code> and <code class="command">g++</code>).  The default is
! <samp class="file"><var class="var">exec-prefix</var>/bin</samp>.
  </p>
  </dd>
! <dt><code class="code">--libdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for object code libraries and
! internal data files of GCC.  The default is <samp class="file"><var class="var">exec-prefix</var>/lib</samp>.
  </p>
  </dd>
! <dt><code class="code">--libexecdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for internal executables of GCC.
! The default is <samp class="file"><var class="var">exec-prefix</var>/libexec</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-slibdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for the shared libgcc library.  The
! default is <samp class="file"><var class="var">libdir</var></samp>.
  </p>
  </dd>
! <dt><code class="code">--datarootdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the root of the directory tree for read-only architecture-independent
! data files referenced by GCC.  The default is <samp class="file"><var class="var">prefix</var>/share</samp>.
  </p>
  </dd>
! <dt><code class="code">--infodir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation in info format.
! The default is <samp class="file"><var class="var">datarootdir</var>/info</samp>.
  </p>
  </dd>
! <dt><code class="code">--datadir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for some architecture-independent
! data files referenced by GCC.  The default is <samp class="file"><var class="var">datarootdir</var></samp>.
  </p>
  </dd>
! <dt><code class="code">--docdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for documentation files (other
! than Info) for GCC.  The default is <samp class="file"><var class="var">datarootdir</var>/doc</samp>.
  </p>
  </dd>
! <dt><code class="code">--htmldir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for HTML documentation files.
! The default is <samp class="file"><var class="var">docdir</var></samp>.
  </p>
  </dd>
! <dt><code class="code">--pdfdir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for PDF documentation files.
! The default is <samp class="file"><var class="var">docdir</var></samp>.
  </p>
  </dd>
! <dt><code class="code">--mandir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the installation directory for manual pages.  The default is
! <samp class="file"><var class="var">datarootdir</var>/man</samp>.  (Note that the manual pages are only extracts
  from the full GCC manuals, which are provided in Texinfo format.  The manpages
  are derived by an automatic conversion process from parts of the full
  manual.)
  </p>
  </dd>
! <dt><code class="code">--with-gxx-include-dir=<var class="var">dirname</var></code></dt>
  <dd><p>Specify
  the installation directory for G++ header files.  The default depends
  on other configuration options, and differs between cross and native
  configurations.
  </p>
  </dd>
! <dt><code class="code">--with-specs=<var class="var">specs</var></code></dt>
  <dd><p>Specify additional command line driver SPECS.
  This can be useful if you need to turn on a non-standard feature by
  default without modifying the compiler&rsquo;s source code, for instance
! <samp class="option">--with-specs=%{!fcommon:%{!fno-common:-fno-common}}</samp>.
! See &ldquo;Spec Files&rdquo; in the GCC Internals manual.
! </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">--program-prefix=<var class="var">prefix</var></code></dt>
  <dd><p>GCC supports some transformations of the names of its programs when
! installing them.  This option prepends <var class="var">prefix</var> to the names of
! programs to install in <var class="var">bindir</var> (see above).  For example, specifying
! <samp class="option">--program-prefix=foo-</samp> would result in &lsquo;<samp class="samp">gcc</samp>&rsquo;
! being installed as <samp class="file">/usr/local/bin/foo-gcc</samp>.
  </p>
  </dd>
! <dt><code class="code">--program-suffix=<var class="var">suffix</var></code></dt>
! <dd><p>Appends <var class="var">suffix</var> to the names of programs to install in <var class="var">bindir</var>
! (see above).  For example, specifying <samp class="option">--program-suffix=-3.1</samp>
! would result in &lsquo;<samp class="samp">gcc</samp>&rsquo; being installed as
! <samp class="file">/usr/local/bin/gcc-3.1</samp>.
  </p>
  </dd>
! <dt><code class="code">--program-transform-name=<var class="var">pattern</var></code></dt>
! <dd><p>Applies the &lsquo;<samp class="samp">sed</samp>&rsquo; script <var class="var">pattern</var> to be applied to the names
! of programs to install in <var class="var">bindir</var> (see above).  <var class="var">pattern</var> has to
! consist of one or more basic &lsquo;<samp class="samp">sed</samp>&rsquo; editing commands, separated by
! semicolons.  For example, if you want the &lsquo;<samp class="samp">gcc</samp>&rsquo; program name to be
! transformed to the installed program <samp class="file">/usr/local/bin/myowngcc</samp> and
! the &lsquo;<samp class="samp">g++</samp>&rsquo; program name to be transformed to
! <samp class="file">/usr/local/bin/gspecial++</samp> without changing other program names,
  you could use the pattern
! <samp class="option">--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'</samp>
  to achieve this effect.
  </p>
  <p>All three options can be combined and used together, resulting in more
! complex conversion patterns.  As a basic rule, <var class="var">prefix</var> (and
! <var class="var">suffix</var>) are prepended (appended) before further transformations
! can happen with a special transformation script <var class="var">pattern</var>.
  </p>
  <p>As currently implemented, this option only takes effect for native
  builds; cross compiler binaries&rsquo; names are not transformed even when a
*************** transformation is explicitly asked for b
*** 391,428 ****
  </p>
  <p>For native builds, some of the installed programs are also installed
  with the target alias in front of their name, as in
! &lsquo;<samp>i686-pc-linux-gnu-gcc</samp>&rsquo;.  All of the above transformations happen
  before the target alias is prepended to the name&mdash;so, specifying
! <samp>--program-prefix=foo-</samp> and <samp>program-suffix=-3.1</samp>, the
  resulting binary would be installed as
! <samp>/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1</samp>.
  </p>
  <p>As a last shortcoming, none of the installed Ada programs are
  transformed yet, which will be fixed in some time.
  </p>
  </dd>
! <dt><code>--with-local-prefix=<var>dirname</var></code></dt>
  <dd><p>Specify the
  installation directory for local include files.  The default is
! <samp>/usr/local</samp>.  Specify this option if you want the compiler to
! search directory <samp><var>dirname</var>/include</samp> for locally installed
! header files <em>instead</em> of <samp>/usr/local/include</samp>.
  </p>
! <p>You should specify <samp>--with-local-prefix</samp> <strong>only</strong> if your
! site has a different convention (not <samp>/usr/local</samp>) for where to put
  site-specific files.
  </p>
! <p>The default value for <samp>--with-local-prefix</samp> is <samp>/usr/local</samp>
! regardless of the value of <samp>--prefix</samp>.  Specifying
! <samp>--prefix</samp> has no effect on which directory GCC searches for
  local header files.  This may seem counterintuitive, but actually it is
  logical.
  </p>
! <p>The purpose of <samp>--prefix</samp> is to specify where to <em>install
! GCC</em>.  The local header files in <samp>/usr/local/include</samp>&mdash;if you put
  any in that directory&mdash;are not part of GCC.  They are part of other
  programs&mdash;perhaps many others.  (GCC installs its own header files in
! another directory which is based on the <samp>--prefix</samp> value.)
  </p>
  <p>Both the local-prefix include directory and the GCC-prefix include
  directory are part of GCC&rsquo;s &ldquo;system include&rdquo; directories.  Although these
--- 370,407 ----
  </p>
  <p>For native builds, some of the installed programs are also installed
  with the target alias in front of their name, as in
! &lsquo;<samp class="samp">i686-pc-linux-gnu-gcc</samp>&rsquo;.  All of the above transformations happen
  before the target alias is prepended to the name&mdash;so, specifying
! <samp class="option">--program-prefix=foo-</samp> and <samp class="option">program-suffix=-3.1</samp>, the
  resulting binary would be installed as
! <samp class="file">/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1</samp>.
  </p>
  <p>As a last shortcoming, none of the installed Ada programs are
  transformed yet, which will be fixed in some time.
  </p>
  </dd>
! <dt><code class="code">--with-local-prefix=<var class="var">dirname</var></code></dt>
  <dd><p>Specify the
  installation directory for local include files.  The default is
! <samp class="file">/usr/local</samp>.  Specify this option if you want the compiler to
! search directory <samp class="file"><var class="var">dirname</var>/include</samp> for locally installed
! header files <em class="emph">instead</em> of <samp class="file">/usr/local/include</samp>.
  </p>
! <p>You should specify <samp class="option">--with-local-prefix</samp> <strong class="strong">only</strong> if your
! site has a different convention (not <samp class="file">/usr/local</samp>) for where to put
  site-specific files.
  </p>
! <p>The default value for <samp class="option">--with-local-prefix</samp> is <samp class="file">/usr/local</samp>
! regardless of the value of <samp class="option">--prefix</samp>.  Specifying
! <samp class="option">--prefix</samp> has no effect on which directory GCC searches for
  local header files.  This may seem counterintuitive, but actually it is
  logical.
  </p>
! <p>The purpose of <samp class="option">--prefix</samp> is to specify where to <em class="emph">install
! GCC</em>.  The local header files in <samp class="file">/usr/local/include</samp>&mdash;if you put
  any in that directory&mdash;are not part of GCC.  They are part of other
  programs&mdash;perhaps many others.  (GCC installs its own header files in
! another directory which is based on the <samp class="option">--prefix</samp> value.)
  </p>
  <p>Both the local-prefix include directory and the GCC-prefix include
  directory are part of GCC&rsquo;s &ldquo;system include&rdquo; directories.  Although these
*************** local-prefix include directory is search
*** 432,472 ****
  include directory.  Another characteristic of system include directories
  is that pedantic warnings are turned off for headers in these directories.
  </p>
! <p>Some autoconf macros add <samp>-I <var>directory</var></samp> options to the
  compiler command line, to ensure that directories containing installed
! packages&rsquo; headers are searched.  When <var>directory</var> is one of GCC&rsquo;s
  system include directories, GCC will ignore the option so that system
  directories continue to be processed in the correct order.  This
  may result in a search order different from what was specified but the
  directory will still be searched.
  </p>
  <p>GCC automatically searches for ordinary libraries using
! <code>GCC_EXEC_PREFIX</code>.  Thus, when the same installation prefix is
  used for both GCC and packages, GCC will automatically search for
  both headers and libraries.  This provides a configuration that is
  easy to use.  GCC behaves in a manner similar to that when it is
! installed as a system compiler in <samp>/usr</samp>.
  </p>
  <p>Sites that need to install multiple versions of GCC may not want to
  use the above simple configuration.  It is possible to use the
! <samp>--program-prefix</samp>, <samp>--program-suffix</samp> and
! <samp>--program-transform-name</samp> options to install multiple versions
  into a single directory, but it may be simpler to use different prefixes
! and the <samp>--with-local-prefix</samp> option to specify the location of the
  site-specific files for each version.  It will then be necessary for
  users to specify explicitly the location of local site libraries
! (e.g., with <code>LIBRARY_PATH</code>).
  </p>
! <p>The same value can be used for both <samp>--with-local-prefix</samp> and
! <samp>--prefix</samp> provided it is not <samp>/usr</samp>.  This can be used
! to avoid the default search of <samp>/usr/local/include</samp>.
  </p>
! <p><strong>Do not</strong> specify <samp>/usr</samp> as the <samp>--with-local-prefix</samp>!
! The directory you use for <samp>--with-local-prefix</samp> <strong>must not</strong>
  contain any of the system&rsquo;s standard header files.  If it did contain
  them, certain programs would be miscompiled (including GNU Emacs, on
  certain targets), because this would override and nullify the header
! file corrections made by the <code>fixincludes</code> script.
  </p>
  <p>Indications are that people who use this option use it based on mistaken
  ideas of what it is for.  People use it as if it specified where to
--- 411,451 ----
  include directory.  Another characteristic of system include directories
  is that pedantic warnings are turned off for headers in these directories.
  </p>
! <p>Some autoconf macros add <samp class="option">-I <var class="var">directory</var></samp> options to the
  compiler command line, to ensure that directories containing installed
! packages&rsquo; headers are searched.  When <var class="var">directory</var> is one of GCC&rsquo;s
  system include directories, GCC will ignore the option so that system
  directories continue to be processed in the correct order.  This
  may result in a search order different from what was specified but the
  directory will still be searched.
  </p>
  <p>GCC automatically searches for ordinary libraries using
! <code class="env">GCC_EXEC_PREFIX</code>.  Thus, when the same installation prefix is
  used for both GCC and packages, GCC will automatically search for
  both headers and libraries.  This provides a configuration that is
  easy to use.  GCC behaves in a manner similar to that when it is
! installed as a system compiler in <samp class="file">/usr</samp>.
  </p>
  <p>Sites that need to install multiple versions of GCC may not want to
  use the above simple configuration.  It is possible to use the
! <samp class="option">--program-prefix</samp>, <samp class="option">--program-suffix</samp> and
! <samp class="option">--program-transform-name</samp> options to install multiple versions
  into a single directory, but it may be simpler to use different prefixes
! and the <samp class="option">--with-local-prefix</samp> option to specify the location of the
  site-specific files for each version.  It will then be necessary for
  users to specify explicitly the location of local site libraries
! (e.g., with <code class="env">LIBRARY_PATH</code>).
  </p>
! <p>The same value can be used for both <samp class="option">--with-local-prefix</samp> and
! <samp class="option">--prefix</samp> provided it is not <samp class="file">/usr</samp>.  This can be used
! to avoid the default search of <samp class="file">/usr/local/include</samp>.
  </p>
! <p><strong class="strong">Do not</strong> specify <samp class="file">/usr</samp> as the <samp class="option">--with-local-prefix</samp>!
! The directory you use for <samp class="option">--with-local-prefix</samp> <strong class="strong">must not</strong>
  contain any of the system&rsquo;s standard header files.  If it did contain
  them, certain programs would be miscompiled (including GNU Emacs, on
  certain targets), because this would override and nullify the header
! file corrections made by the <code class="command">fixincludes</code> script.
  </p>
  <p>Indications are that people who use this option use it based on mistaken
  ideas of what it is for.  People use it as if it specified where to
*************** install part of GCC.  Perhaps they make
*** 474,494 ****
  installing GCC creates the directory.
  </p>
  </dd>
! <dt><code>--with-gcc-major-version-only</code></dt>
  <dd><p>Specifies that GCC should use only the major number rather than
! <var>major</var>.<var>minor</var>.<var>patchlevel</var> in filesystem paths.
  </p>
  </dd>
! <dt><code>--with-native-system-header-dir=<var>dirname</var></code></dt>
! <dd><p>Specifies that <var>dirname</var> is the directory that contains native system
! header files, rather than <samp>/usr/include</samp>.  This option is most useful
  if you are creating a compiler that should be isolated from the system
  as much as possible.  It is most commonly used with the
! <samp>--with-sysroot</samp> option and will cause GCC to search
! <var>dirname</var> inside the system root specified by that option.
  </p>
  </dd>
! <dt><code>--enable-shared[=<var>package</var>[,&hellip;]]</code></dt>
  <dd><p>Build shared versions of libraries, if shared libraries are supported on
  the target platform.  Unlike GCC 2.95.x and earlier, shared libraries
  are enabled by default on all platforms that support shared libraries.
--- 453,473 ----
  installing GCC creates the directory.
  </p>
  </dd>
! <dt><code class="code">--with-gcc-major-version-only</code></dt>
  <dd><p>Specifies that GCC should use only the major number rather than
! <var class="var">major</var>.<var class="var">minor</var>.<var class="var">patchlevel</var> in filesystem paths.
  </p>
  </dd>
! <dt><code class="code">--with-native-system-header-dir=<var class="var">dirname</var></code></dt>
! <dd><p>Specifies that <var class="var">dirname</var> is the directory that contains native system
! header files, rather than <samp class="file">/usr/include</samp>.  This option is most useful
  if you are creating a compiler that should be isolated from the system
  as much as possible.  It is most commonly used with the
! <samp class="option">--with-sysroot</samp> option and will cause GCC to search
! <var class="var">dirname</var> inside the system root specified by that option.
  </p>
  </dd>
! <dt><code class="code">--enable-shared[=<var class="var">package</var>[,&hellip;]]</code></dt>
  <dd><p>Build shared versions of libraries, if shared libraries are supported on
  the target platform.  Unlike GCC 2.95.x and earlier, shared libraries
  are enabled by default on all platforms that support shared libraries.
*************** are enabled by default on all platforms
*** 496,645 ****
  <p>If a list of packages is given as an argument, build shared libraries
  only for the listed packages.  For other packages, only static libraries
  will be built.  Package names currently recognized in the GCC tree are
! &lsquo;<samp>libgcc</samp>&rsquo; (also known as &lsquo;<samp>gcc</samp>&rsquo;), &lsquo;<samp>libstdc++</samp>&rsquo; (not
! &lsquo;<samp>libstdc++-v3</samp>&rsquo;), &lsquo;<samp>libffi</samp>&rsquo;, &lsquo;<samp>zlib</samp>&rsquo;, &lsquo;<samp>boehm-gc</samp>&rsquo;,
! &lsquo;<samp>ada</samp>&rsquo;, &lsquo;<samp>libada</samp>&rsquo;, &lsquo;<samp>libgo</samp>&rsquo;, &lsquo;<samp>libobjc</samp>&rsquo;, and &lsquo;<samp>libphobos</samp>&rsquo;.
! Note &lsquo;<samp>libiberty</samp>&rsquo; does not support shared libraries at all.
  </p>
! <p>Use <samp>--disable-shared</samp> to build only static libraries.  Note that
! <samp>--disable-shared</samp> does not accept a list of package names as
! argument, only <samp>--enable-shared</samp> does.
  </p>
! <p>Contrast with <samp>--enable-host-shared</samp>, which affects <em>host</em>
  code.
  </p>
  </dd>
! <dt><code>--enable-host-shared</code></dt>
! <dd><p>Specify that the <em>host</em> code should be built into position-independent
! machine code (with <samp>-fPIC</samp>), allowing it to be used within shared
  libraries, but yielding a slightly slower compiler.
  </p>
  <p>This option is required when building the libgccjit.so library.
  </p>
! <p>Contrast with <samp>--enable-shared</samp>, which affects <em>target</em>
  libraries.
  </p>
  </dd>
! <dt><code>--enable-versioned-jit</code></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><code>--enable-host-pie</code></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 faster than
! <samp>--enable-host-shared</samp>).  Position-independent executables are loaded
  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>
  </dd>
! <dt><code>--enable-host-bind-now</code></dt>
! <dd><p>Specify that the <em>host</em> executables should be linked with the option
! <samp>-Wl,-z,now</samp>, which means that the dynamic linker will resolve all
  symbols when the executables are started, and that in turn allows RELRO to
  mark the GOT read-only, resulting in better security.
  </p>
  </dd>
! <dt><code><a name="with-gnu-as"></a>--with-gnu-as</code></dt>
  <dd><p>Specify that the compiler should assume that the
  assembler it finds is the GNU assembler.  However, this does not modify
  the rules to find an assembler and will result in confusion if the
  assembler found is not actually the GNU assembler.  (Confusion may also
  result if the compiler finds the GNU assembler but has not been
! configured with <samp>--with-gnu-as</samp>.)  If you have more than one
  assembler installed on your system, you may want to use this option in
! connection with <samp>--with-as=<var>pathname</var></samp> or
! <samp>--with-build-time-tools=<var>pathname</var></samp>.
  </p>
  <p>The following systems are the only ones where it makes a difference
  whether you use the GNU assembler.  On any other system,
! <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>
  
  </dd>
! <dt><code><a name="with-as"></a>--with-as=<var>pathname</var></code></dt>
  <dd><p>Specify that the compiler should use the assembler pointed to by
! <var>pathname</var>, rather than the one found by the standard rules to find
  an assembler, which are:
! </p><ul>
! <li> Unless GCC is being built with a cross compiler, check the
! <samp><var>libexec</var>/gcc/<var>target</var>/<var>version</var></samp> directory.
! <var>libexec</var> defaults to <samp><var>exec-prefix</var>/libexec</samp>;
! <var>exec-prefix</var> defaults to <var>prefix</var>, which
! defaults to <samp>/usr/local</samp> unless overridden by the
! <samp>--prefix=<var>pathname</var></samp> switch described above.  <var>target</var>
! is the target system triple, such as &lsquo;<samp>sparc-sun-solaris2.11</samp>&rsquo;, and
! <var>version</var> denotes the GCC version, such as 3.0.
  
! </li><li> If the target system is the same that you are building on, check
  operating system specific directories.
  
! </li><li> Check in the <code>PATH</code> for a tool whose name is prefixed by the
  target system triple.
  
! </li><li> Check in the <code>PATH</code> for a tool whose name is not prefixed by the
  target system triple, if the host and target system triple are
  the same (in other words, we use a host tool if it can be used for
  the target as well).
  </li></ul>
  
! <p>You may want to use <samp>--with-as</samp> if no assembler
  is installed in the directories listed above, or if you have multiple
  assemblers installed and want to choose one that is not found by the
  above rules.
  </p>
  </dd>
! <dt><code><a name="with-gnu-ld"></a>--with-gnu-ld</code></dt>
! <dd><p>Same as <a href="#with-gnu-as"><samp>--with-gnu-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code>--with-ld=<var>pathname</var></code></dt>
! <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code>--with-dsymutil=<var>pathname</var></code></dt>
! <dd><p>Same as <a href="#with-as"><samp>--with-as</samp></a>
  but for the debug linker (only used on Darwin platforms so far).
  </p>
  </dd>
! <dt><code>--with-tls=<var>dialect</var></code></dt>
! <dd><p>Specify the default TLS dialect, for systems were there is a choice.
! For ARM targets, possible values for <var>dialect</var> are <code>gnu</code> or
! <code>gnu2</code>, which select between the original GNU dialect and the GNU TLS
  descriptor-based dialect.
! For RISC-V targets, possible values for <var>dialect</var> are <code>trad</code> or
! <code>desc</code>, which select between the traditional GNU dialect and the GNU TLS
  descriptor-based dialect.
  </p>
  </dd>
! <dt><code>--enable-multiarch</code></dt>
  <dd><p>Specify whether to enable or disable multiarch support.  The default is
  to check for glibc start files in a multiarch location, and enable it
  if the files are found.  The auto detection is enabled for native builds,
! and for cross builds configured with <samp>--with-sysroot</samp>, and without
! <samp>--with-native-system-header-dir</samp>.
  More documentation about multiarch can be found at
! <a href="https://wiki.debian.org/Multiarch">https://wiki.debian.org/Multiarch</a>.
  </p>
  </dd>
! <dt><code>--enable-sjlj-exceptions</code></dt>
! <dd><p>Force use of the <code>setjmp</code>/<code>longjmp</code>-based scheme for exceptions.
! &lsquo;<samp>configure</samp>&rsquo; ordinarily picks the correct value based on the platform.
  Only use this option if you are sure you need a different setting.
  </p>
  </dd>
! <dt><code>--enable-vtable-verify</code></dt>
  <dd><p>Specify whether to enable or disable the vtable verification feature.
  Enabling this feature causes libstdc++ to be built with its virtual calls
  in verifiable mode.  This means that, when linked with libvtv, every
--- 475,632 ----
  <p>If a list of packages is given as an argument, build shared libraries
  only for the listed packages.  For other packages, only static libraries
  will be built.  Package names currently recognized in the GCC tree are
! &lsquo;<samp class="samp">libgcc</samp>&rsquo; (also known as &lsquo;<samp class="samp">gcc</samp>&rsquo;), &lsquo;<samp class="samp">libstdc++</samp>&rsquo; (not
! &lsquo;<samp class="samp">libstdc++-v3</samp>&rsquo;), &lsquo;<samp class="samp">libffi</samp>&rsquo;, &lsquo;<samp class="samp">zlib</samp>&rsquo;, &lsquo;<samp class="samp">boehm-gc</samp>&rsquo;,
! &lsquo;<samp class="samp">ada</samp>&rsquo;, &lsquo;<samp class="samp">libada</samp>&rsquo;, &lsquo;<samp class="samp">libgo</samp>&rsquo;, &lsquo;<samp class="samp">libobjc</samp>&rsquo;, and &lsquo;<samp class="samp">libphobos</samp>&rsquo;.
! Note &lsquo;<samp class="samp">libiberty</samp>&rsquo; does not support shared libraries at all.
  </p>
! <p>Use <samp class="option">--disable-shared</samp> to build only static libraries.  Note that
! <samp class="option">--disable-shared</samp> does not accept a list of package names as
! argument, only <samp class="option">--enable-shared</samp> does.
  </p>
! <p>Contrast with <samp class="option">--enable-host-shared</samp>, which affects <em class="emph">host</em>
  code.
  </p>
  </dd>
! <dt><code class="code">--enable-host-shared</code></dt>
! <dd><p>Specify that the <em class="emph">host</em> code should be built into position-independent
! machine code (with <samp class="option">-fPIC</samp>), allowing it to be used within shared
  libraries, but yielding a slightly slower compiler.
  </p>
  <p>This option is required when building the libgccjit.so library.
  </p>
! <p>Contrast with <samp class="option">--enable-shared</samp>, which affects <em class="emph">target</em>
  libraries.
  </p>
  </dd>
! <dt><code class="code">--enable-versioned-jit</code></dt>
! <dd><p>Specify that the &lsquo;<samp class="samp">libgccjit</samp>&rsquo; library is built with a soname matching
  the GCC major version.
  </p>
  </dd>
! <dt><code class="code">--enable-host-pie</code></dt>
! <dd><p>Specify that the <em class="emph">host</em> executables should be built into
! position-independent executables (with <samp class="option">-fPIE</samp> and <samp class="option">-pie</samp>),
  yielding a slightly slower compiler (but faster than
! <samp class="option">--enable-host-shared</samp>).  Position-independent executables are loaded
  at random addresses each time they are executed, therefore provide additional
  protection against Return Oriented Programming (ROP) attacks.
  </p>
! <p><samp class="option">--enable-host-pie</samp> may be used with <samp class="option">--enable-host-shared</samp>,
! in which case <samp class="option">-fPIC</samp> is used when compiling, and <samp class="option">-pie</samp> when
  linking.
  </p>
  </dd>
! <dt><code class="code">--enable-host-bind-now</code></dt>
! <dd><p>Specify that the <em class="emph">host</em> executables should be linked with the option
! <samp class="option">-Wl,-z,now</samp>, which means that the dynamic linker will resolve all
  symbols when the executables are started, and that in turn allows RELRO to
  mark the GOT read-only, resulting in better security.
  </p>
  </dd>
! <dt><code class="code"><a class="anchor" id="with-gnu-as"></a>--with-gnu-as</code></dt>
  <dd><p>Specify that the compiler should assume that the
  assembler it finds is the GNU assembler.  However, this does not modify
  the rules to find an assembler and will result in confusion if the
  assembler found is not actually the GNU assembler.  (Confusion may also
  result if the compiler finds the GNU assembler but has not been
! configured with <samp class="option">--with-gnu-as</samp>.)  If you have more than one
  assembler installed on your system, you may want to use this option in
! connection with <samp class="option">--with-as=<var class="var">pathname</var></samp> or
! <samp class="option">--with-build-time-tools=<var class="var">pathname</var></samp>.
  </p>
  <p>The following systems are the only ones where it makes a difference
  whether you use the GNU assembler.  On any other system,
! <samp class="option">--with-gnu-as</samp> has no effect.
  </p>
! <ul class="itemize mark-bullet">
! <li>&lsquo;<samp class="samp">hppa*-<var class="var">any</var>-<var class="var">any</var></samp>&rsquo;
! </li><li>&lsquo;<samp class="samp">*-*-solaris2.11</samp>&rsquo;
  </li></ul>
  
  </dd>
! <dt><code class="code"><a class="anchor" id="with-as"></a>--with-as=<var class="var">pathname</var></code></dt>
  <dd><p>Specify that the compiler should use the assembler pointed to by
! <var class="var">pathname</var>, rather than the one found by the standard rules to find
  an assembler, which are:
! </p><ul class="itemize mark-bullet">
! <li>Unless GCC is being built with a cross compiler, check the
! <samp class="file"><var class="var">libexec</var>/gcc/<var class="var">target</var>/<var class="var">version</var></samp> directory.
! <var class="var">libexec</var> defaults to <samp class="file"><var class="var">exec-prefix</var>/libexec</samp>;
! <var class="var">exec-prefix</var> defaults to <var class="var">prefix</var>, which
! defaults to <samp class="file">/usr/local</samp> unless overridden by the
! <samp class="option">--prefix=<var class="var">pathname</var></samp> switch described above.  <var class="var">target</var>
! is the target system triple, such as &lsquo;<samp class="samp">sparc-sun-solaris2.11</samp>&rsquo;, and
! <var class="var">version</var> denotes the GCC version, such as 3.0.
  
! </li><li>If the target system is the same that you are building on, check
  operating system specific directories.
  
! </li><li>Check in the <code class="env">PATH</code> for a tool whose name is prefixed by the
  target system triple.
  
! </li><li>Check in the <code class="env">PATH</code> for a tool whose name is not prefixed by the
  target system triple, if the host and target system triple are
  the same (in other words, we use a host tool if it can be used for
  the target as well).
  </li></ul>
  
! <p>You may want to use <samp class="option">--with-as</samp> if no assembler
  is installed in the directories listed above, or if you have multiple
  assemblers installed and want to choose one that is not found by the
  above rules.
  </p>
  </dd>
! <dt><code class="code"><a class="anchor" id="with-gnu-ld"></a>--with-gnu-ld</code></dt>
! <dd><p>Same as <a class="uref" href="#with-gnu-as"><samp class="option">--with-gnu-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code class="code">--with-ld=<var class="var">pathname</var></code></dt>
! <dd><p>Same as <a class="uref" href="#with-as"><samp class="option">--with-as</samp></a>
  but for the linker.
  </p>
  </dd>
! <dt><code class="code">--with-dsymutil=<var class="var">pathname</var></code></dt>
! <dd><p>Same as <a class="uref" href="#with-as"><samp class="option">--with-as</samp></a>
  but for the debug linker (only used on Darwin platforms so far).
  </p>
  </dd>
! <dt><code class="code">--with-windres=<var class="var">pathname</var></code></dt>
! <dd><p>Same as <a class="uref" href="#with-as"><samp class="option">--with-as</samp></a>
! but for the Windows resource compiler.
! </p>
! </dd>
! <dt><code class="code">--with-tls=<var class="var">dialect</var></code></dt>
! <dd><p>Specify the default TLS dialect, for systems where there is a choice.
! For ARM targets, possible values for <var class="var">dialect</var> are <code class="code">gnu</code> or
! <code class="code">gnu2</code>, which select between the original GNU dialect and the GNU TLS
  descriptor-based dialect.
! For RISC-V targets, possible values for <var class="var">dialect</var> are <code class="code">trad</code> or
! <code class="code">desc</code>, which select between the traditional GNU dialect and the GNU TLS
! descriptor-based dialect.
! For i386, x86-64 targets, possible values for <var class="var">dialect</var> are <code class="code">gnu</code> or
! <code class="code">gnu2</code>, which select between the original GNU dialect and the GNU TLS
  descriptor-based dialect.
  </p>
  </dd>
! <dt><code class="code">--enable-multiarch</code></dt>
  <dd><p>Specify whether to enable or disable multiarch support.  The default is
  to check for glibc start files in a multiarch location, and enable it
  if the files are found.  The auto detection is enabled for native builds,
! and for cross builds configured with <samp class="option">--with-sysroot</samp>, and without
! <samp class="option">--with-native-system-header-dir</samp>.
  More documentation about multiarch can be found at
! <a class="uref" href="https://wiki.debian.org/Multiarch">https://wiki.debian.org/Multiarch</a>.
  </p>
  </dd>
! <dt><code class="code">--enable-sjlj-exceptions</code></dt>
! <dd><p>Force use of the <code class="code">setjmp</code>/<code class="code">longjmp</code>-based scheme for exceptions.
! &lsquo;<samp class="samp">configure</samp>&rsquo; ordinarily picks the correct value based on the platform.
  Only use this option if you are sure you need a different setting.
  </p>
  </dd>
! <dt><code class="code">--enable-vtable-verify</code></dt>
  <dd><p>Specify whether to enable or disable the vtable verification feature.
  Enabling this feature causes libstdc++ to be built with its virtual calls
  in verifiable mode.  This means that, when linked with libvtv, every
*************** call will be made before actually making
*** 648,702 ****
  the verifier will call stub functions (in libstdc++ itself) and do nothing.
  If vtable verification is disabled, then libstdc++ is not built with its
  virtual calls in verifiable mode at all.  However the libvtv library will
! still be built (see <samp>--disable-libvtv</samp> to turn off building libvtv).
! <samp>--disable-vtable-verify</samp> is the default.
  </p>
  </dd>
! <dt><code>--enable-libgdiagnostics</code></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><code>--disable-gcov</code></dt>
  <dd><p>Specify that the run-time library used for coverage analysis
  and associated host tools should not be built.
  </p>
  </dd>
! <dt><code>--disable-multilib</code></dt>
  <dd><p>Specify that multiple target
  libraries to support different target variants, calling
  conventions, etc. should not be built.  The default is to build a
  predefined set of them.
  </p>
  <p>Some targets provide finer-grained control over which multilibs are built
! (e.g., <samp>--disable-softfloat</samp>):
! </p><dl compact="compact">
! <dt><code>arm-*-*</code></dt>
  <dd><p>fpu, 26bit, underscore, interwork, biendian, nofmult.
  </p>
  </dd>
! <dt><code>m68*-*-*</code></dt>
  <dd><p>softfloat, m68881, m68000, m68020.
  </p>
  </dd>
! <dt><code>mips*-*-*</code></dt>
  <dd><p>single-float, biendian, softfloat.
  </p>
  </dd>
! <dt><code>msp430-*-*</code></dt>
  <dd><p>no-exceptions
  </p>
  </dd>
! <dt><code>powerpc*-*-*, rs6000*-*-*</code></dt>
  <dd><p>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
  sysv, aix.
  </p>
--- 635,689 ----
  the verifier will call stub functions (in libstdc++ itself) and do nothing.
  If vtable verification is disabled, then libstdc++ is not built with its
  virtual calls in verifiable mode at all.  However the libvtv library will
! still be built (see <samp class="option">--disable-libvtv</samp> to turn off building libvtv).
! <samp class="option">--disable-vtable-verify</samp> is the default.
  </p>
  </dd>
! <dt><code class="code">--enable-libgdiagnostics</code></dt>
! <dd><p>Specify whether to build <code class="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 class="option">--enable-host-shared</samp> on non-Windows hosts.
  </p>
! <p>This option also enables <code class="code">sarif-replay</code>, a command-line tool for
! viewing <a class="uref" href="https://sarif.info/">SARIF files</a>.  <code class="code">sarif-replay</code> takes
! one or more <code class="code">.sarif</code> files as input and attempts to replay any
! diagnostics within them to stderr (via <code class="code">libgdiagnostics</code>) in the style
  of GCC&rsquo;s diagnostics.
  </p>
  </dd>
! <dt><code class="code">--disable-gcov</code></dt>
  <dd><p>Specify that the run-time library used for coverage analysis
  and associated host tools should not be built.
  </p>
  </dd>
! <dt><code class="code">--disable-multilib</code></dt>
  <dd><p>Specify that multiple target
  libraries to support different target variants, calling
  conventions, etc. should not be built.  The default is to build a
  predefined set of them.
  </p>
  <p>Some targets provide finer-grained control over which multilibs are built
! (e.g., <samp class="option">--disable-softfloat</samp>):
! </p><dl class="table">
! <dt><code class="code">arm-*-*</code></dt>
  <dd><p>fpu, 26bit, underscore, interwork, biendian, nofmult.
  </p>
  </dd>
! <dt><code class="code">m68*-*-*</code></dt>
  <dd><p>softfloat, m68881, m68000, m68020.
  </p>
  </dd>
! <dt><code class="code">mips*-*-*</code></dt>
  <dd><p>single-float, biendian, softfloat.
  </p>
  </dd>
! <dt><code class="code">msp430-*-*</code></dt>
  <dd><p>no-exceptions
  </p>
  </dd>
! <dt><code class="code">powerpc*-*-*, rs6000*-*-*</code></dt>
  <dd><p>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
  sysv, aix.
  </p>
*************** sysv, aix.
*** 704,927 ****
  </dl>
  
  </dd>
! <dt><code><a name="with-multilib-list"></a>--with-multilib-list=<var>list</var></code></dt>
! <dt><code>--without-multilib-list</code></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><code>aarch64*-*-*</code></dt>
! <dd><p><var>list</var> is a comma separated list of <code>ilp32</code>, and <code>lp64</code>
  to enable ILP32 and LP64 run-time libraries, respectively.  If
! <var>list</var> is empty, then there will be no multilibs and only the
! default run-time library will be built.  If <var>list</var> is
! <code>default</code> or &ndash;with-multilib-list= is not specified, then the
  default set of libraries is selected based on the value of
! <samp>--target</samp>.
  </p>
  </dd>
! <dt><code>amdgcn*-*-*</code></dt>
! <dd><p><var>list</var> is a comma separated list of ISA names (allowed values:
! <code>gfx900</code>, <code>gfx902</code>, <code>gfx904</code>, <code>gfx906</code>, <code>gfx908</code>,
! <code>gfx909</code>, <code>gfx90a</code>, <code>gfx90c</code>, <code>gfx9-generic</code>,
! <code>gfx1030</code>, <code>gfx1031</code>, <code>gfx1032</code>, <code>gfx1033</code>,
! <code>gfx1034</code>, <code>gfx1035</code>, <code>gfx1036</code>, <code>gfx10-3-generic</code>,
! <code>gfx1100</code>, <code>gfx1101</code>, <code>gfx1102</code>, <code>gfx1103</code>,
! <code>gfx1150</code>, <code>gfx1151</code>, <code>gfx1152</code>, <code>gfx1153</code>,
! <code>gfx11-generic</code>).  It ought not include the name of the default
! ISA, specified via <samp>--with-arch</samp>.  If <var>list</var> is empty, then there
  will be no multilibs and only the default run-time library will be built.  If
! <var>list</var> is <code>default</code> or <samp>--with-multilib-list=</samp> is not
  specified, then the default set of libraries is selected.
  </p>
  </dd>
! <dt><code>arm*-*-*</code></dt>
! <dd><p><var>list</var> is a comma separated list of <code>aprofile</code> and
! <code>rmprofile</code> to build multilibs for A or R and M architecture
  profiles respectively.  Note that, due to some limitation of the current
! multilib framework, using the combined <code>aprofile,rmprofile</code>
  multilibs selects in some cases a less optimal multilib than when using
  the multilib profile for the architecture targetted.  The special value
! <code>default</code> is also accepted and is equivalent to omitting the
  option, i.e., only the default run-time library will be enabled.
  </p>
! <p><var>list</var> may instead contain <code>@name</code>, to use the multilib
! configuration Makefile fragment <samp>name</samp> in <samp>gcc/config/arm</samp> in
  the source tree (it is part of the corresponding sources, after all).
  It is recommended, but not required, that files used for this purpose to
! be named starting with <samp>t-ml-</samp>, to make their intended purpose
  self-evident, in line with GCC conventions.  Such files enable custom,
  user-chosen multilib lists to be configured.  Whether multiple such
  files can be used together depends on the contents of the supplied
! files.  See <samp>gcc/config/arm/t-multilib</samp> and its supplementary
! <samp>gcc/config/arm/t-*profile</samp> files for an example of what such
  Makefile fragments might look like for this version of GCC.  The macros
  expected to be defined in these fragments are not stable across GCC
! releases, so make sure they define the <code>MULTILIB</code>-related macros
  expected by the version of GCC you are building.
  See &ldquo;Target Makefile Fragments&rdquo; in the internals manual.
  </p>
  <p>The table below gives the combination of ISAs, architectures, FPUs and
  floating-point ABIs for which multilibs are built for each predefined
  profile.  The union of these options is considered when specifying both
! <code>aprofile</code> and <code>rmprofile</code>.
  </p>
! <table>
! <tr><td width="15%">Option</td><td width="28%">aprofile</td><td width="30%">rmprofile</td></tr>
! <tr><td width="15%">ISAs</td><td width="28%"><code>-marm</code> and <code>-mthumb</code></td><td width="30%"><code>-mthumb</code></td></tr>
  <tr><td width="15%">Architectures<br><br><br><br><br><br></td><td width="28%">default architecture<br>
! <code>-march=armv7-a</code><br>
! <code>-march=armv7ve</code><br>
! <code>-march=armv8-a</code><br><br><br></td><td width="30%">default architecture<br>
! <code>-march=armv6s-m</code><br>
! <code>-march=armv7-m</code><br>
! <code>-march=armv7e-m</code><br>
! <code>-march=armv8-m.base</code><br>
! <code>-march=armv8-m.main</code><br>
! <code>-march=armv7</code></td></tr>
  <tr><td width="15%">FPUs<br><br><br><br><br></td><td width="28%">none<br>
! <code>-mfpu=vfpv3-d16</code><br>
! <code>-mfpu=neon</code><br>
! <code>-mfpu=vfpv4-d16</code><br>
! <code>-mfpu=neon-vfpv4</code><br>
! <code>-mfpu=neon-fp-armv8</code></td><td width="30%">none<br>
! <code>-mfpu=vfpv3-d16</code><br>
! <code>-mfpu=fpv4-sp-d16</code><br>
! <code>-mfpu=fpv5-sp-d16</code><br>
! <code>-mfpu=fpv5-d16</code><br></td></tr>
! <tr><td width="15%">floating-point ABIs<br><br></td><td width="28%"><code>-mfloat-abi=soft</code><br>
! <code>-mfloat-abi=softfp</code><br>
! <code>-mfloat-abi=hard</code></td><td width="30%"><code>-mfloat-abi=soft</code><br>
! <code>-mfloat-abi=softfp</code><br>
! <code>-mfloat-abi=hard</code></td></tr>
  </table>
  
  </dd>
! <dt><code>loongarch*-*-*</code></dt>
! <dd><p><var>list</var> is a comma-separated list, with each of the element starting with
! the following ABI identifiers: <code>lp64d[/base]</code> <code>lp64f[/base]</code>
! <code>lp64d[/base]</code> (the <code>/base</code> suffix may be omitted)
  to enable their respective run-time libraries.
  </p>
! <p>A suffix <code>[/<var>arch</var>][/<var>option</var>/&hellip;]</code> may follow immediately
  after the ABI identifier to customize the compiler options for building the
! given set of libraries.  <var>arch</var> denotes the architecture name recognized
! by the <samp>-march=<var>arch</var></samp> compiler option, which acts as a basic target
! ISA configuration that can be adjusted using the subsequent <var>option</var>
! suffixes, where each <var>option</var> is a compiler option without a leading dash
  (&rsquo;-&rsquo;).
  </p>
  <p>If no such suffix is present for a given multilib variant, the
! configured value of <samp>--with-multilib-default</samp> is appended as a default
! suffix.  If <samp>--with-multilib-default</samp> is not given, the default build
! option <samp>-march=abi-default</samp> is applied when building the variants
  without a suffix.
  </p>
! <p>As a special case, <code>fixed</code> may be used in the position of <var>arch</var>,
  which means using the architecture configured with
! <samp>--with-arch=<var>arch</var></samp>, or its default value (e.g. <code>loongarch64</code>
! for <code>loongarch64-*</code> targets).
  </p>
! <p>If <var>list</var> is empty or <code>default</code>, or if <samp>--with-multilib-list</samp>
  is not specified, then only the default variant of the libraries are built,
  where the default ABI is implied by the configured target triplet.
  </p>
  </dd>
! <dt><code>nvptx-*</code></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><code>riscv*-*-*</code></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
! specified architecture and ABI pair.  If <code>--with-multilib-list</code> is not
  given, then a default set of multilibs is selected based on the value of
! <samp>--target</samp>.  This is usually a large set of multilibs.
  </p>
  </dd>
! <dt><code>sh*-*-*</code></dt>
! <dd><p><var>list</var> is a comma separated list of CPU names.  These must be of the
! form <code>sh*</code> or <code>m*</code> (in which case they match the compiler option
  for that processor).  The list should not contain any endian options -
! these are handled by <samp>--with-endian</samp>.
  </p>
! <p>If <var>list</var> is empty, then there will be no multilibs for extra
  processors.  The multilib for the secondary endian remains enabled.
  </p>
! <p>As a special case, if an entry in the list starts with a <code>!</code>
  (exclamation point), then it is added to the list of excluded multilibs.
! Entries of this sort should be compatible with &lsquo;<samp>MULTILIB_EXCLUDES</samp>&rsquo;
! (once the leading <code>!</code> has been stripped).
  </p>
! <p>If <samp>--with-multilib-list</samp> is not given, then a default set of
! multilibs is selected based on the value of <samp>--target</samp>.  This is
  usually the complete set of libraries, but some targets imply a more
  specialized subset.
  </p>
  <p>Example 1: to configure a compiler for SH4A only, but supporting both
  endians, with little endian being the default:
! </p><div class="smallexample">
! <pre class="smallexample">--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  </pre></div>
  
  <p>Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with
  only little endian SH4AL:
! </p><div class="smallexample">
! <pre class="smallexample">--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  </pre></div>
  
  </dd>
! <dt><code>x86-64-*-linux*</code></dt>
! <dd><p><var>list</var> is a comma separated list of <code>m32</code>, <code>m64</code> and
! <code>mx32</code> to enable 32-bit, 64-bit and x32 run-time libraries,
! respectively.  If <var>list</var> is empty, then there will be no multilibs
  and only the default run-time library will be enabled.
  </p>
! <p>If <samp>--with-multilib-list</samp> is not given, then only 32-bit and
  64-bit run-time libraries will be enabled.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--with-multilib-default</code></dt>
  <dd><p>On LoongArch targets, set the default build options for enabled multilibs
  without build options appended to their corresponding
! <samp>--with-multilib-list</samp> items.  The format of this value is
! <code>[/<var>arch</var>][/<var>option</var>/&hellip;]</code>, where <var>arch</var> is an
! architecture name recognized by <samp>-march=<var>arch</var></samp> compiler option,
! and subsequent <var>option</var> suffixes are compiler options minus a leading
  dash (&rsquo;-&rsquo;).
  </p>
! <p>Multiple <var>option</var>s may appear consecutively while <var>arch</var> may only
! appear in the beginning or be omitted (which means <samp>-march=abi-default</samp>
  is applied when building the libraries).
  </p>
  </dd>
! <dt><code>--with-strict-align-lib</code></dt>
! <dd><p>On LoongArch targets, build all enabled multilibs with <samp>-mstrict-align</samp>
  (Not enabled by default).
  </p>
  </dd>
! <dt><code>--with-multilib-generator=<var>config</var></code></dt>
! <dd><p>Specify what multilibs to build.  <var>config</var> is a semicolon separated list of
  values, possibly consisting of a single value.  Currently only implemented
  for riscv*-*-elf*.  The accepted values and meanings are given below.
  </p>
--- 691,915 ----
  </dl>
  
  </dd>
! <dt><code class="code"><a class="anchor" id="with-multilib-list"></a>--with-multilib-list=<var class="var">list</var></code></dt>
! <dt><code class="code">--without-multilib-list</code></dt>
! <dd><p>Specify what multilibs to build.  <var class="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 class="table">
! <dt><code class="code">aarch64*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a comma separated list of <code class="code">ilp32</code>, and <code class="code">lp64</code>
  to enable ILP32 and LP64 run-time libraries, respectively.  If
! <var class="var">list</var> is empty, then there will be no multilibs and only the
! default run-time library will be built.  If <var class="var">list</var> is
! <code class="code">default</code> or &ndash;with-multilib-list= is not specified, then the
  default set of libraries is selected based on the value of
! <samp class="option">--target</samp>.
  </p>
  </dd>
! <dt><code class="code">amdgcn*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a comma separated list of ISA names (allowed values:
! <code class="code">gfx900</code>, <code class="code">gfx902</code>, <code class="code">gfx904</code>, <code class="code">gfx906</code>, <code class="code">gfx908</code>,
! <code class="code">gfx909</code>, <code class="code">gfx90a</code>, <code class="code">gfx90c</code>, <code class="code">gfx942</code>, <code class="code">gfx950</code>,
! <code class="code">gfx9-generic</code>, <code class="code">gfx9-4-generic</code>, <code class="code">gfx1030</code>, <code class="code">gfx1031</code>,
! <code class="code">gfx1032</code>, <code class="code">gfx1033</code>, <code class="code">gfx1034</code>, <code class="code">gfx1035</code>, <code class="code">gfx1036</code>,
! <code class="code">gfx10-3-generic</code>, <code class="code">gfx1100</code>, <code class="code">gfx1101</code>, <code class="code">gfx1102</code>,
! <code class="code">gfx1103</code>, <code class="code">gfx1150</code>, <code class="code">gfx1151</code>, <code class="code">gfx1152</code>, <code class="code">gfx1153</code>,
! <code class="code">gfx11-generic</code>).  It ought not include the name of the default
! ISA, specified via <samp class="option">--with-arch</samp>.  If <var class="var">list</var> is empty, then there
  will be no multilibs and only the default run-time library will be built.  If
! <var class="var">list</var> is <code class="code">default</code> or <samp class="option">--with-multilib-list=</samp> is not
  specified, then the default set of libraries is selected.
  </p>
  </dd>
! <dt><code class="code">arm*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a comma separated list of <code class="code">aprofile</code> and
! <code class="code">rmprofile</code> to build multilibs for A or R and M architecture
  profiles respectively.  Note that, due to some limitation of the current
! multilib framework, using the combined <code class="code">aprofile,rmprofile</code>
  multilibs selects in some cases a less optimal multilib than when using
  the multilib profile for the architecture targetted.  The special value
! <code class="code">default</code> is also accepted and is equivalent to omitting the
  option, i.e., only the default run-time library will be enabled.
  </p>
! <p><var class="var">list</var> may instead contain <code class="code">@name</code>, to use the multilib
! configuration Makefile fragment <samp class="file">name</samp> in <samp class="file">gcc/config/arm</samp> in
  the source tree (it is part of the corresponding sources, after all).
  It is recommended, but not required, that files used for this purpose to
! be named starting with <samp class="file">t-ml-</samp>, to make their intended purpose
  self-evident, in line with GCC conventions.  Such files enable custom,
  user-chosen multilib lists to be configured.  Whether multiple such
  files can be used together depends on the contents of the supplied
! files.  See <samp class="file">gcc/config/arm/t-multilib</samp> and its supplementary
! <samp class="file">gcc/config/arm/t-*profile</samp> files for an example of what such
  Makefile fragments might look like for this version of GCC.  The macros
  expected to be defined in these fragments are not stable across GCC
! releases, so make sure they define the <code class="code">MULTILIB</code>-related macros
  expected by the version of GCC you are building.
  See &ldquo;Target Makefile Fragments&rdquo; in the internals manual.
  </p>
  <p>The table below gives the combination of ISAs, architectures, FPUs and
  floating-point ABIs for which multilibs are built for each predefined
  profile.  The union of these options is considered when specifying both
! <code class="code">aprofile</code> and <code class="code">rmprofile</code>.
  </p>
! <table class="multitable">
! <tbody><tr><td width="15%">Option</td><td width="28%">aprofile</td><td width="30%">rmprofile</td></tr>
! <tr><td width="15%">ISAs</td><td width="28%"><code class="code">-marm</code> and <code class="code">-mthumb</code></td><td width="30%"><code class="code">-mthumb</code></td></tr>
  <tr><td width="15%">Architectures<br><br><br><br><br><br></td><td width="28%">default architecture<br>
! <code class="code">-march=armv7-a</code><br>
! <code class="code">-march=armv7ve</code><br>
! <code class="code">-march=armv8-a</code><br><br><br></td><td width="30%">default architecture<br>
! <code class="code">-march=armv6s-m</code><br>
! <code class="code">-march=armv7-m</code><br>
! <code class="code">-march=armv7e-m</code><br>
! <code class="code">-march=armv8-m.base</code><br>
! <code class="code">-march=armv8-m.main</code><br>
! <code class="code">-march=armv7</code></td></tr>
  <tr><td width="15%">FPUs<br><br><br><br><br></td><td width="28%">none<br>
! <code class="code">-mfpu=vfpv3-d16</code><br>
! <code class="code">-mfpu=neon</code><br>
! <code class="code">-mfpu=vfpv4-d16</code><br>
! <code class="code">-mfpu=neon-vfpv4</code><br>
! <code class="code">-mfpu=neon-fp-armv8</code></td><td width="30%">none<br>
! <code class="code">-mfpu=vfpv3-d16</code><br>
! <code class="code">-mfpu=fpv4-sp-d16</code><br>
! <code class="code">-mfpu=fpv5-sp-d16</code><br>
! <code class="code">-mfpu=fpv5-d16</code><br></td></tr>
! <tr><td width="15%">floating-point ABIs<br><br></td><td width="28%"><code class="code">-mfloat-abi=soft</code><br>
! <code class="code">-mfloat-abi=softfp</code><br>
! <code class="code">-mfloat-abi=hard</code></td><td width="30%"><code class="code">-mfloat-abi=soft</code><br>
! <code class="code">-mfloat-abi=softfp</code><br>
! <code class="code">-mfloat-abi=hard</code></td></tr>
! </tbody>
  </table>
  
  </dd>
! <dt><code class="code">loongarch*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a comma-separated list, with each of the element starting with
! the following ABI identifiers: <code class="code">lp64d[/base]</code> <code class="code">lp64f[/base]</code>
! <code class="code">lp64d[/base]</code> (the <code class="code">/base</code> suffix may be omitted)
  to enable their respective run-time libraries.
  </p>
! <p>A suffix <code class="code">[/<var class="var">arch</var>][/<var class="var">option</var>/&hellip;]</code> may follow immediately
  after the ABI identifier to customize the compiler options for building the
! given set of libraries.  <var class="var">arch</var> denotes the architecture name recognized
! by the <samp class="option">-march=<var class="var">arch</var></samp> compiler option, which acts as a basic target
! ISA configuration that can be adjusted using the subsequent <var class="var">option</var>
! suffixes, where each <var class="var">option</var> is a compiler option without a leading dash
  (&rsquo;-&rsquo;).
  </p>
  <p>If no such suffix is present for a given multilib variant, the
! configured value of <samp class="option">--with-multilib-default</samp> is appended as a default
! suffix.  If <samp class="option">--with-multilib-default</samp> is not given, the default build
! option <samp class="option">-march=abi-default</samp> is applied when building the variants
  without a suffix.
  </p>
! <p>As a special case, <code class="code">fixed</code> may be used in the position of <var class="var">arch</var>,
  which means using the architecture configured with
! <samp class="option">--with-arch=<var class="var">arch</var></samp>, or its default value (e.g. <code class="code">loongarch64</code>
! for <code class="code">loongarch64-*</code> targets).
  </p>
! <p>If <var class="var">list</var> is empty or <code class="code">default</code>, or if <samp class="option">--with-multilib-list</samp>
  is not specified, then only the default variant of the libraries are built,
  where the default ABI is implied by the configured target triplet.
  </p>
  </dd>
! <dt><code class="code">nvptx-*</code></dt>
  <dd><p>The target libraries corresponding to the default value of the
! <samp class="option">-march</samp> option are always built,
  see
! <a class="uref" href="specific.html#nvptx-x-none">host/target specific installation notes</a>.
! If <var class="var">list</var> is empty, &lsquo;<samp class="samp">no</samp>&rsquo;, or <samp class="option">--without-multilib-list</samp>
  is specified, then no additional multilibs are built.
! Otherwise, <var class="var">list</var> is a comma separated list specifying which
  multilibs to build.
! List items are either &lsquo;<samp class="samp">sm_SM</samp>&rsquo;, or &lsquo;<samp class="samp">default</samp>&rsquo;, which is a
! placeholder specifying a default set of multilibs: &lsquo;<samp class="samp">sm_52</samp>&rsquo;.
  Any duplicates are filtered out.
! If <samp class="option">--with-multilib-list</samp> is not specified, then
! <samp class="option">--with-multilib-list=default</samp> is assumed.
! For &lsquo;<samp class="samp">sm_30</samp>&rsquo;, &lsquo;<samp class="samp">sm_35</samp>&rsquo; target libraries, <samp class="option">-mptx-3.1</samp>
  sub-variants are additionally built.
  </p>
  </dd>
! <dt><code class="code">riscv*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a single ABI name.  The target architecture must be either
! <code class="code">rv32gc</code> or <code class="code">rv64gc</code>.  This will build a single multilib for the
! specified architecture and ABI pair.  If <code class="code">--with-multilib-list</code> is not
  given, then a default set of multilibs is selected based on the value of
! <samp class="option">--target</samp>.  This is usually a large set of multilibs.
  </p>
  </dd>
! <dt><code class="code">sh*-*-*</code></dt>
! <dd><p><var class="var">list</var> is a comma separated list of CPU names.  These must be of the
! form <code class="code">sh*</code> or <code class="code">m*</code> (in which case they match the compiler option
  for that processor).  The list should not contain any endian options -
! these are handled by <samp class="option">--with-endian</samp>.
  </p>
! <p>If <var class="var">list</var> is empty, then there will be no multilibs for extra
  processors.  The multilib for the secondary endian remains enabled.
  </p>
! <p>As a special case, if an entry in the list starts with a <code class="code">!</code>
  (exclamation point), then it is added to the list of excluded multilibs.
! Entries of this sort should be compatible with &lsquo;<samp class="samp">MULTILIB_EXCLUDES</samp>&rsquo;
! (once the leading <code class="code">!</code> has been stripped).
  </p>
! <p>If <samp class="option">--with-multilib-list</samp> is not given, then a default set of
! multilibs is selected based on the value of <samp class="option">--target</samp>.  This is
  usually the complete set of libraries, but some targets imply a more
  specialized subset.
  </p>
  <p>Example 1: to configure a compiler for SH4A only, but supporting both
  endians, with little endian being the default:
! </p><div class="example smallexample">
! <pre class="example-preformatted">--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  </pre></div>
  
  <p>Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with
  only little endian SH4AL:
! </p><div class="example smallexample">
! <pre class="example-preformatted">--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  </pre></div>
  
  </dd>
! <dt><code class="code">x86-64-*-linux*</code></dt>
! <dd><p><var class="var">list</var> is a comma separated list of <code class="code">m32</code>, <code class="code">m64</code> and
! <code class="code">mx32</code> to enable 32-bit, 64-bit and x32 run-time libraries,
! respectively.  If <var class="var">list</var> is empty, then there will be no multilibs
  and only the default run-time library will be enabled.
  </p>
! <p>If <samp class="option">--with-multilib-list</samp> is not given, then only 32-bit and
  64-bit run-time libraries will be enabled.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">--with-multilib-default</code></dt>
  <dd><p>On LoongArch targets, set the default build options for enabled multilibs
  without build options appended to their corresponding
! <samp class="option">--with-multilib-list</samp> items.  The format of this value is
! <code class="code">[/<var class="var">arch</var>][/<var class="var">option</var>/&hellip;]</code>, where <var class="var">arch</var> is an
! architecture name recognized by <samp class="option">-march=<var class="var">arch</var></samp> compiler option,
! and subsequent <var class="var">option</var> suffixes are compiler options minus a leading
  dash (&rsquo;-&rsquo;).
  </p>
! <p>Multiple <var class="var">option</var>s may appear consecutively while <var class="var">arch</var> may only
! appear in the beginning or be omitted (which means <samp class="option">-march=abi-default</samp>
  is applied when building the libraries).
  </p>
  </dd>
! <dt><code class="code">--with-strict-align-lib</code></dt>
! <dd><p>On LoongArch targets, build all enabled multilibs with <samp class="option">-mstrict-align</samp>
  (Not enabled by default).
  </p>
  </dd>
! <dt><code class="code">--with-multilib-generator=<var class="var">config</var></code></dt>
! <dd><p>Specify what multilibs to build.  <var class="var">config</var> is a semicolon separated list of
  values, possibly consisting of a single value.  Currently only implemented
  for riscv*-*-elf*.  The accepted values and meanings are given below.
  </p>
*************** for riscv*-*-elf*.  The accepted values
*** 929,1001 ****
  <p>Every config is constructed with four components: architecture string, ABI,
  reuse rule with architecture string and reuse rule with sub-extension.
  </p>
! <p>Example 1: Add multi-lib suppport for rv32i with ilp32.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32--
  </pre></div>
  
! <p>Example 2: Add multi-lib suppport for rv32i with ilp32 and rv32imafd with ilp32.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32--;rv32imafd-ilp32--
  </pre></div>
  
! <p>Example 3: Add multi-lib suppport for rv32i with ilp32; rv32im with ilp32 and
  rv32ic with ilp32 will reuse this multi-lib set.
! </p><div class="smallexample">
! <pre class="smallexample">rv32i-ilp32-rv32im-c
  </pre></div>
  
! <p>Example 4: Add multi-lib suppport for rv64ima with lp64; rv64imaf with lp64,
  rv64imac with lp64 and rv64imafc with lp64 will reuse this multi-lib set.
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--f,c,fc
  </pre></div>
  
! <p><samp>--with-multilib-generator</samp> have an optional configuration argument
! <samp>--cmodel=val</samp> for code model, this option will expand with other
! config options, <var>val</var> is a comma separated list of possible code model,
  currently we support medlow and medany.
  </p>
! <p>Example 5: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--;--cmodel=medlow
  </pre></div>
  
! <p>Example 6: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and
  medlow code model; rv64ima with lp64 and medany code model
! </p><div class="smallexample">
! <pre class="smallexample">rv64ima-lp64--;--cmodel=medlow,medany
  </pre></div>
  
  </dd>
! <dt><code>--with-endian=<var>endians</var></code></dt>
  <dd><p>Specify what endians to use.
  Currently only implemented for sh*-*-*.
  </p>
! <p><var>endians</var> may be one of the following:
! </p><dl compact="compact">
! <dt><code>big</code></dt>
  <dd><p>Use big endian exclusively.
  </p></dd>
! <dt><code>little</code></dt>
  <dd><p>Use little endian exclusively.
  </p></dd>
! <dt><code>big,little</code></dt>
  <dd><p>Use big endian by default.  Provide a multilib for little endian.
  </p></dd>
! <dt><code>little,big</code></dt>
  <dd><p>Use little endian by default.  Provide a multilib for big endian.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--with-cmodel=<var>cmodel</var></code></dt>
  <dd><p>Specify what code model to use by default.
! Currently only implemented for riscv*-*-*.
  </p>
  </dd>
! <dt><code>--enable-threads</code></dt>
  <dd><p>Specify that the target
  supports threads.  This affects the Objective-C compiler and runtime
  library, and exception handling for other languages like C++.
--- 917,1014 ----
  <p>Every config is constructed with four components: architecture string, ABI,
  reuse rule with architecture string and reuse rule with sub-extension.
  </p>
! <p>Example 1: Add multi-lib support for rv32i with ilp32.
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv32i-ilp32--
  </pre></div>
  
! <p>Example 2: Add multi-lib support for rv32i with ilp32 and rv32imafd with ilp32.
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv32i-ilp32--;rv32imafd-ilp32--
  </pre></div>
  
! <p>Example 3: Add multi-lib support for rv32i with ilp32; rv32im with ilp32 and
  rv32ic with ilp32 will reuse this multi-lib set.
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv32i-ilp32-rv32im-c
  </pre></div>
  
! <p>Example 4: Add multi-lib support for rv64ima with lp64; rv64imaf with lp64,
  rv64imac with lp64 and rv64imafc with lp64 will reuse this multi-lib set.
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv64ima-lp64--f,c,fc
  </pre></div>
  
! <p><samp class="option">--with-multilib-generator</samp> have an optional configuration argument
! <samp class="option">--cmodel=val</samp> for code model, this option will expand with other
! config options, <var class="var">val</var> is a comma separated list of possible code model,
  currently we support medlow and medany.
  </p>
! <p>Example 5: Add multi-lib support for rv64ima with lp64; rv64ima with lp64 and
  medlow code model
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv64ima-lp64--;--cmodel=medlow
  </pre></div>
  
! <p>Example 6: Add multi-lib support for rv64ima with lp64; rv64ima with lp64 and
  medlow code model; rv64ima with lp64 and medany code model
! </p><div class="example smallexample">
! <pre class="example-preformatted">rv64ima-lp64--;--cmodel=medlow,medany
  </pre></div>
  
  </dd>
! <dt><code class="code">--with-multi-buildlist=<var class="var">file</var></code></dt>
! <dd><p>Specify a file containing a list of multilib directories to build.
! </p>
! <p>Each line in the file should contain a single multilib directory name,
! as printed by <code class="code">gcc --print-multi-lib</code>.  Only the listed directories
! will be built and installed.
! </p>
! <p>This option is useful for reducing build time and binary size by
! excluding unnecessary multilib variants.  It is especially beneficial
! for embedded targets or vendor-specific toolchains.
! </p>
! <p>Example file contents:
! </p>
! <div class="example smallexample">
! <pre class="example-preformatted">mips-r6-hard/lib
! mips-r6-soft/lib32
! mipsel-r6-hard/lib64
! </pre></div>
! 
! <p>This option is target-independent and can be used with any architecture
! that supports multilibs.  It is passed to both host and target
! configuration stages and used during fixed includes installation and
! multilib directory generation.
! </p>
! </dd>
! <dt><code class="code">--with-endian=<var class="var">endians</var></code></dt>
  <dd><p>Specify what endians to use.
  Currently only implemented for sh*-*-*.
  </p>
! <p><var class="var">endians</var> may be one of the following:
! </p><dl class="table">
! <dt><code class="code">big</code></dt>
  <dd><p>Use big endian exclusively.
  </p></dd>
! <dt><code class="code">little</code></dt>
  <dd><p>Use little endian exclusively.
  </p></dd>
! <dt><code class="code">big,little</code></dt>
  <dd><p>Use big endian by default.  Provide a multilib for little endian.
  </p></dd>
! <dt><code class="code">little,big</code></dt>
  <dd><p>Use little endian by default.  Provide a multilib for big endian.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">--with-cmodel=<var class="var">cmodel</var></code></dt>
  <dd><p>Specify what code model to use by default.
! Currently only implemented for loongarch*-*-* and riscv*-*-*.
  </p>
  </dd>
! <dt><code class="code">--enable-threads</code></dt>
  <dd><p>Specify that the target
  supports threads.  This affects the Objective-C compiler and runtime
  library, and exception handling for other languages like C++.
*************** On some systems, this is the default.
*** 1004,1143 ****
  <p>In general, the best (and, in many cases, the only known) threading
  model available will be configured for use.  Beware that on some
  systems, GCC has not been taught what threading models are generally
! available for the system.  In this case, <samp>--enable-threads</samp> is an
! alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code>--disable-threads</code></dt>
  <dd><p>Specify that threading support should be disabled for the system.
! This is an alias for <samp>--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code>--enable-threads=<var>lib</var></code></dt>
  <dd><p>Specify that
! <var>lib</var> is the thread support library.  This affects the Objective-C
  compiler and runtime library, and exception handling for other languages
! like C++.  The possibilities for <var>lib</var> are:
  </p>
! <dl compact="compact">
! <dt><code>aix</code></dt>
  <dd><p>AIX thread support.
  </p></dd>
! <dt><code>dce</code></dt>
  <dd><p>DCE thread support.
  </p></dd>
! <dt><code>lynx</code></dt>
  <dd><p>LynxOS thread support.
  </p></dd>
! <dt><code>mipssde</code></dt>
  <dd><p>MIPS SDE thread support.
  </p></dd>
! <dt><code>no</code></dt>
! <dd><p>This is an alias for &lsquo;<samp>single</samp>&rsquo;.
  </p></dd>
! <dt><code>posix</code></dt>
  <dd><p>Generic POSIX/Unix98 thread support.
  </p></dd>
! <dt><code>rtems</code></dt>
  <dd><p>RTEMS thread support.
  </p></dd>
! <dt><code>single</code></dt>
  <dd><p>Disable thread support, should work for all platforms.
  </p></dd>
! <dt><code>tpf</code></dt>
  <dd><p>TPF thread support.
  </p></dd>
! <dt><code>vxworks</code></dt>
  <dd><p>VxWorks thread support.
  </p></dd>
! <dt><code>win32</code></dt>
  <dd><p>Microsoft Win32 API thread support.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--enable-tls</code></dt>
  <dd><p>Specify that the target supports TLS (Thread Local Storage).  Usually
  configure can correctly determine if TLS is supported.  In cases where
  it guesses incorrectly, TLS can be explicitly enabled or disabled with
! <samp>--enable-tls</samp> or <samp>--disable-tls</samp>.  This can happen if
  the assembler supports TLS but the C library does not, or if the
  assumptions made by the configure test are incorrect.
  </p>
  </dd>
! <dt><code>--disable-tls</code></dt>
  <dd><p>Specify that the target does not support TLS.
! This is an alias for <samp>--enable-tls=no</samp>.
  </p>
  </dd>
! <dt><code>--disable-tm-clone-registry</code></dt>
  <dd><p>Disable TM clone registry in libgcc. It is enabled in libgcc by default.
  This option helps to reduce code size for embedded targets which do
  not use transactional memory.
  </p>
  </dd>
! <dt><code>--with-cpu=<var>cpu</var></code></dt>
! <dt><code>--with-cpu-32=<var>cpu</var></code></dt>
! <dt><code>--with-cpu-64=<var>cpu</var></code></dt>
  <dd><p>Specify which cpu variant the compiler should generate code for by default.
! <var>cpu</var> will be used as the default value of the <samp>-mcpu=</samp> switch.
  This option is only supported on some targets, including ARC, ARM, i386, M68k,
! PowerPC, and SPARC.  It is mandatory for ARC.  The <samp>--with-cpu-32</samp> and
! <samp>--with-cpu-64</samp> options specify separate default CPUs for
! 32-bit and 64-bit modes; these options are only supported for aarch64, i386,
! x86-64, PowerPC, and SPARC.
  </p>
  </dd>
! <dt><code>--with-schedule=<var>cpu</var></code></dt>
! <dt><code>--with-arch=<var>cpu</var></code></dt>
! <dt><code>--with-arch-32=<var>cpu</var></code></dt>
! <dt><code>--with-arch-64=<var>cpu</var></code></dt>
! <dt><code>--with-tune=<var>cpu</var></code></dt>
! <dt><code>--with-tune-32=<var>cpu</var></code></dt>
! <dt><code>--with-tune-64=<var>cpu</var></code></dt>
! <dt><code>--with-abi=<var>abi</var></code></dt>
! <dt><code>--with-fpu=<var>type</var></code></dt>
! <dt><code>--with-float=<var>type</var></code></dt>
! <dt><code>--with-simd=<var>type</var></code></dt>
! <dd><p>These configure options provide default values for the <samp>-mschedule=</samp>,
! <samp>-march=</samp>, <samp>-mtune=</samp>, <samp>-mabi=</samp>, and <samp>-mfpu=</samp>
! options and for <samp>-mhard-float</samp> or <samp>-msoft-float</samp>.  As with
! <samp>--with-cpu</samp>, which switches will be accepted and acceptable values
  of the arguments depend on the target.
  </p>
  </dd>
! <dt><code>--with-mode=<var>mode</var></code></dt>
! <dd><p>Specify if the compiler should default to <samp>-marm</samp> or <samp>-mthumb</samp>.
  This option is only supported on ARM targets.
  </p>
  </dd>
! <dt><code>--with-stack-offset=<var>num</var></code></dt>
! <dd><p>This option sets the default for the -mstack-offset=<var>num</var> option,
  and will thus generally also control the setting of this option for
  libraries.  This option is only supported on Epiphany targets.
  </p>
  </dd>
! <dt><code>--with-fpmath=<var>isa</var></code></dt>
! <dd><p>This options sets <samp>-mfpmath=sse</samp> by default and specifies the default
! ISA for floating-point arithmetics.  You can select either &lsquo;<samp>sse</samp>&rsquo; which
! enables <samp>-msse2</samp> or &lsquo;<samp>avx</samp>&rsquo; which enables <samp>-mavx</samp> by default.
  This option is only supported on i386 and x86-64 targets.
  </p>
  </dd>
! <dt><code>--with-fp-32=<var>mode</var></code></dt>
! <dd><p>On MIPS targets, set the default value for the <samp>-mfp</samp> option when using
! the o32 ABI.  The possibilities for <var>mode</var> are:
! </p><dl compact="compact">
! <dt><code>32</code></dt>
! <dd><p>Use the o32 FP32 ABI extension, as with the <samp>-mfp32</samp> command-line
  option.
  </p></dd>
! <dt><code>xx</code></dt>
! <dd><p>Use the o32 FPXX ABI extension, as with the <samp>-mfpxx</samp> command-line
  option.
  </p></dd>
! <dt><code>64</code></dt>
! <dd><p>Use the o32 FP64 ABI extension, as with the <samp>-mfp64</samp> command-line
  option.
  </p></dd>
  </dl>
--- 1017,1156 ----
  <p>In general, the best (and, in many cases, the only known) threading
  model available will be configured for use.  Beware that on some
  systems, GCC has not been taught what threading models are generally
! available for the system.  In this case, <samp class="option">--enable-threads</samp> is an
! alias for <samp class="option">--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code class="code">--disable-threads</code></dt>
  <dd><p>Specify that threading support should be disabled for the system.
! This is an alias for <samp class="option">--enable-threads=single</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-threads=<var class="var">lib</var></code></dt>
  <dd><p>Specify that
! <var class="var">lib</var> is the thread support library.  This affects the Objective-C
  compiler and runtime library, and exception handling for other languages
! like C++.  The possibilities for <var class="var">lib</var> are:
  </p>
! <dl class="table">
! <dt><code class="code">aix</code></dt>
  <dd><p>AIX thread support.
  </p></dd>
! <dt><code class="code">dce</code></dt>
  <dd><p>DCE thread support.
  </p></dd>
! <dt><code class="code">lynx</code></dt>
  <dd><p>LynxOS thread support.
  </p></dd>
! <dt><code class="code">mipssde</code></dt>
  <dd><p>MIPS SDE thread support.
  </p></dd>
! <dt><code class="code">no</code></dt>
! <dd><p>This is an alias for &lsquo;<samp class="samp">single</samp>&rsquo;.
  </p></dd>
! <dt><code class="code">posix</code></dt>
  <dd><p>Generic POSIX/Unix98 thread support.
  </p></dd>
! <dt><code class="code">rtems</code></dt>
  <dd><p>RTEMS thread support.
  </p></dd>
! <dt><code class="code">single</code></dt>
  <dd><p>Disable thread support, should work for all platforms.
  </p></dd>
! <dt><code class="code">tpf</code></dt>
  <dd><p>TPF thread support.
  </p></dd>
! <dt><code class="code">vxworks</code></dt>
  <dd><p>VxWorks thread support.
  </p></dd>
! <dt><code class="code">win32</code></dt>
  <dd><p>Microsoft Win32 API thread support.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">--enable-tls</code></dt>
  <dd><p>Specify that the target supports TLS (Thread Local Storage).  Usually
  configure can correctly determine if TLS is supported.  In cases where
  it guesses incorrectly, TLS can be explicitly enabled or disabled with
! <samp class="option">--enable-tls</samp> or <samp class="option">--disable-tls</samp>.  This can happen if
  the assembler supports TLS but the C library does not, or if the
  assumptions made by the configure test are incorrect.
  </p>
  </dd>
! <dt><code class="code">--disable-tls</code></dt>
  <dd><p>Specify that the target does not support TLS.
! This is an alias for <samp class="option">--enable-tls=no</samp>.
  </p>
  </dd>
! <dt><code class="code">--disable-tm-clone-registry</code></dt>
  <dd><p>Disable TM clone registry in libgcc. It is enabled in libgcc by default.
  This option helps to reduce code size for embedded targets which do
  not use transactional memory.
  </p>
  </dd>
! <dt><code class="code">--with-cpu=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-cpu-32=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-cpu-64=<var class="var">cpu</var></code></dt>
  <dd><p>Specify which cpu variant the compiler should generate code for by default.
! <var class="var">cpu</var> will be used as the default value of the <samp class="option">-mcpu=</samp> switch.
  This option is only supported on some targets, including ARC, ARM, i386, M68k,
! PowerPC, RISC-V, and SPARC.  It is mandatory for ARC.  The
! <samp class="option">--with-cpu-32</samp> and <samp class="option">--with-cpu-64</samp> options specify separate
! default CPUs for 32-bit and 64-bit modes; these options are only supported for
! aarch64, i386, x86-64, PowerPC, and SPARC.
  </p>
  </dd>
! <dt><code class="code">--with-schedule=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-arch=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-arch-32=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-arch-64=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-tune=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-tune-32=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-tune-64=<var class="var">cpu</var></code></dt>
! <dt><code class="code">--with-abi=<var class="var">abi</var></code></dt>
! <dt><code class="code">--with-fpu=<var class="var">type</var></code></dt>
! <dt><code class="code">--with-float=<var class="var">type</var></code></dt>
! <dt><code class="code">--with-simd=<var class="var">type</var></code></dt>
! <dd><p>These configure options provide default values for the <samp class="option">-mschedule=</samp>,
! <samp class="option">-march=</samp>, <samp class="option">-mtune=</samp>, <samp class="option">-mabi=</samp>, and <samp class="option">-mfpu=</samp>
! options and for <samp class="option">-mhard-float</samp> or <samp class="option">-msoft-float</samp>.  As with
! <samp class="option">--with-cpu</samp>, which switches will be accepted and acceptable values
  of the arguments depend on the target.
  </p>
  </dd>
! <dt><code class="code">--with-mode=<var class="var">mode</var></code></dt>
! <dd><p>Specify if the compiler should default to <samp class="option">-marm</samp> or <samp class="option">-mthumb</samp>.
  This option is only supported on ARM targets.
  </p>
  </dd>
! <dt><code class="code">--with-stack-offset=<var class="var">num</var></code></dt>
! <dd><p>This option sets the default for the -mstack-offset=<var class="var">num</var> option,
  and will thus generally also control the setting of this option for
  libraries.  This option is only supported on Epiphany targets.
  </p>
  </dd>
! <dt><code class="code">--with-fpmath=<var class="var">isa</var></code></dt>
! <dd><p>This options sets <samp class="option">-mfpmath=sse</samp> by default and specifies the default
! ISA for floating-point arithmetic.  You can select either &lsquo;<samp class="samp">sse</samp>&rsquo; which
! enables <samp class="option">-msse2</samp> or &lsquo;<samp class="samp">avx</samp>&rsquo; which enables <samp class="option">-mavx</samp> by default.
  This option is only supported on i386 and x86-64 targets.
  </p>
  </dd>
! <dt><code class="code">--with-fp-32=<var class="var">mode</var></code></dt>
! <dd><p>On MIPS targets, set the default value for the <samp class="option">-mfp</samp> option when using
! the o32 ABI.  The possibilities for <var class="var">mode</var> are:
! </p><dl class="table">
! <dt><code class="code">32</code></dt>
! <dd><p>Use the o32 FP32 ABI extension, as with the <samp class="option">-mfp32</samp> command-line
  option.
  </p></dd>
! <dt><code class="code">xx</code></dt>
! <dd><p>Use the o32 FPXX ABI extension, as with the <samp class="option">-mfpxx</samp> command-line
  option.
  </p></dd>
! <dt><code class="code">64</code></dt>
! <dd><p>Use the o32 FP64 ABI extension, as with the <samp class="option">-mfp64</samp> command-line
  option.
  </p></dd>
  </dl>
*************** option.
*** 1145,1211 ****
  FP32 ABI extension.
  </p>
  </dd>
! <dt><code>--with-odd-spreg-32</code></dt>
! <dd><p>On MIPS targets, set the <samp>-modd-spreg</samp> option by default when using
  the o32 ABI.
  </p>
  </dd>
! <dt><code>--without-odd-spreg-32</code></dt>
! <dd><p>On MIPS targets, set the <samp>-mno-odd-spreg</samp> option by default when using
  the o32 ABI.  This is normally used in conjunction with
! <samp>--with-fp-32=64</samp> in order to target the o32 FP64A ABI extension.
  </p>
  </dd>
! <dt><code>--with-nan=<var>encoding</var></code></dt>
  <dd><p>On MIPS targets, set the default encoding convention to use for the
  special not-a-number (NaN) IEEE 754 floating-point data.  The
! possibilities for <var>encoding</var> are:
! </p><dl compact="compact">
! <dt><code>legacy</code></dt>
! <dd><p>Use the legacy encoding, as with the <samp>-mnan=legacy</samp> command-line
  option.
  </p></dd>
! <dt><code>2008</code></dt>
! <dd><p>Use the 754-2008 encoding, as with the <samp>-mnan=2008</samp> command-line
  option.
  </p></dd>
  </dl>
  <p>To use this configuration option you must have an assembler version
! installed that supports the <samp>-mnan=</samp> command-line option too.
  In the absence of this configuration option the default convention is
! the legacy encoding, as when neither of the <samp>-mnan=2008</samp> and
! <samp>-mnan=legacy</samp> command-line options has been used.
  </p>
  </dd>
! <dt><code>--with-divide=<var>type</var></code></dt>
  <dd><p>Specify how the compiler should generate code for checking for
  division by zero.  This option is only supported on the MIPS target.
! The possibilities for <var>type</var> are:
! </p><dl compact="compact">
! <dt><code>traps</code></dt>
  <dd><p>Division by zero checks use conditional traps (this is the default on
  systems that support conditional traps).
  </p></dd>
! <dt><code>breaks</code></dt>
  <dd><p>Division by zero checks use the break instruction.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>--with-compact-branches=<var>policy</var></code></dt>
  <dd><p>Specify how the compiler should generate branch instructions.
  This option is only supported on the MIPS target.
! The possibilities for <var>type</var> are:
! </p><dl compact="compact">
! <dt><code>optimal</code></dt>
  <dd><p>Cause a delay slot branch to be used if one is available in the
  current ISA and the delay slot is successfully filled. If the delay slot
  is not filled, a compact branch will be chosen if one is available.
  </p></dd>
! <dt><code>never</code></dt>
  <dd><p>Ensures that compact branch instructions will never be generated.
  </p></dd>
! <dt><code>always</code></dt>
  <dd><p>Ensures that a compact branch instruction will be generated if available.
  If a compact branch instruction is not available,
  a delay slot form of the branch will be used instead.
--- 1158,1224 ----
  FP32 ABI extension.
  </p>
  </dd>
! <dt><code class="code">--with-odd-spreg-32</code></dt>
! <dd><p>On MIPS targets, set the <samp class="option">-modd-spreg</samp> option by default when using
  the o32 ABI.
  </p>
  </dd>
! <dt><code class="code">--without-odd-spreg-32</code></dt>
! <dd><p>On MIPS targets, set the <samp class="option">-mno-odd-spreg</samp> option by default when using
  the o32 ABI.  This is normally used in conjunction with
! <samp class="option">--with-fp-32=64</samp> in order to target the o32 FP64A ABI extension.
  </p>
  </dd>
! <dt><code class="code">--with-nan=<var class="var">encoding</var></code></dt>
  <dd><p>On MIPS targets, set the default encoding convention to use for the
  special not-a-number (NaN) IEEE 754 floating-point data.  The
! possibilities for <var class="var">encoding</var> are:
! </p><dl class="table">
! <dt><code class="code">legacy</code></dt>
! <dd><p>Use the legacy encoding, as with the <samp class="option">-mnan=legacy</samp> command-line
  option.
  </p></dd>
! <dt><code class="code">2008</code></dt>
! <dd><p>Use the 754-2008 encoding, as with the <samp class="option">-mnan=2008</samp> command-line
  option.
  </p></dd>
  </dl>
  <p>To use this configuration option you must have an assembler version
! installed that supports the <samp class="option">-mnan=</samp> command-line option too.
  In the absence of this configuration option the default convention is
! the legacy encoding, as when neither of the <samp class="option">-mnan=2008</samp> and
! <samp class="option">-mnan=legacy</samp> command-line options has been used.
  </p>
  </dd>
! <dt><code class="code">--with-divide=<var class="var">type</var></code></dt>
  <dd><p>Specify how the compiler should generate code for checking for
  division by zero.  This option is only supported on the MIPS target.
! The possibilities for <var class="var">type</var> are:
! </p><dl class="table">
! <dt><code class="code">traps</code></dt>
  <dd><p>Division by zero checks use conditional traps (this is the default on
  systems that support conditional traps).
  </p></dd>
! <dt><code class="code">breaks</code></dt>
  <dd><p>Division by zero checks use the break instruction.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">--with-compact-branches=<var class="var">policy</var></code></dt>
  <dd><p>Specify how the compiler should generate branch instructions.
  This option is only supported on the MIPS target.
! The possibilities for <var class="var">type</var> are:
! </p><dl class="table">
! <dt><code class="code">optimal</code></dt>
  <dd><p>Cause a delay slot branch to be used if one is available in the
  current ISA and the delay slot is successfully filled. If the delay slot
  is not filled, a compact branch will be chosen if one is available.
  </p></dd>
! <dt><code class="code">never</code></dt>
  <dd><p>Ensures that compact branch instructions will never be generated.
  </p></dd>
! <dt><code class="code">always</code></dt>
  <dd><p>Ensures that a compact branch instruction will be generated if available.
  If a compact branch instruction is not available,
  a delay slot form of the branch will be used instead.
*************** For pre-R6/microMIPS/MIPS16, this option
*** 1216,1251 ****
  
  
  </dd>
! <dt><code>--with-llsc</code></dt>
! <dd><p>On MIPS targets, make <samp>-mllsc</samp> the default when no
! <samp>-mno-llsc</samp> option is passed.  This is the default for
  Linux-based targets, as the kernel will emulate them if the ISA does
  not provide them.
  </p>
  </dd>
! <dt><code>--without-llsc</code></dt>
! <dd><p>On MIPS targets, make <samp>-mno-llsc</samp> the default when no
! <samp>-mllsc</samp> option is passed.
  </p>
  </dd>
! <dt><code>--with-synci</code></dt>
! <dd><p>On MIPS targets, make <samp>-msynci</samp> the default when no
! <samp>-mno-synci</samp> option is passed.
  </p>
  </dd>
! <dt><code>--without-synci</code></dt>
! <dd><p>On MIPS targets, make <samp>-mno-synci</samp> the default when no
! <samp>-msynci</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--with-lxc1-sxc1</code></dt>
! <dd><p>On MIPS targets, make <samp>-mlxc1-sxc1</samp> the default when no
! <samp>-mno-lxc1-sxc1</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--without-lxc1-sxc1</code></dt>
! <dd><p>On MIPS targets, make <samp>-mno-lxc1-sxc1</samp> the default when no
! <samp>-mlxc1-sxc1</samp> option is passed.  The indexed load/store
  instructions are not directly a problem but can lead to unexpected
  behaviour when deployed in an application intended for a 32-bit address
  space but run on a 64-bit processor.  The issue is seen because all
--- 1229,1264 ----
  
  
  </dd>
! <dt><code class="code">--with-llsc</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mllsc</samp> the default when no
! <samp class="option">-mno-llsc</samp> option is passed.  This is the default for
  Linux-based targets, as the kernel will emulate them if the ISA does
  not provide them.
  </p>
  </dd>
! <dt><code class="code">--without-llsc</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mno-llsc</samp> the default when no
! <samp class="option">-mllsc</samp> option is passed.
  </p>
  </dd>
! <dt><code class="code">--with-synci</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-msynci</samp> the default when no
! <samp class="option">-mno-synci</samp> option is passed.
  </p>
  </dd>
! <dt><code class="code">--without-synci</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mno-synci</samp> the default when no
! <samp class="option">-msynci</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code class="code">--with-lxc1-sxc1</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mlxc1-sxc1</samp> the default when no
! <samp class="option">-mno-lxc1-sxc1</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code class="code">--without-lxc1-sxc1</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mno-lxc1-sxc1</samp> the default when no
! <samp class="option">-mlxc1-sxc1</samp> option is passed.  The indexed load/store
  instructions are not directly a problem but can lead to unexpected
  behaviour when deployed in an application intended for a 32-bit address
  space but run on a 64-bit processor.  The issue is seen because all
*************** known MIPS 64-bit Linux kernels execute
*** 1253,1272 ****
  with 64-bit addressing enabled which affects the overflow behaviour
  of the indexed addressing mode.  GCC will assume that ordinary
  32-bit arithmetic overflow behaviour is the same whether performed
! as an <code>addu</code> instruction or as part of the address calculation
! in <code>lwxc1</code> type instructions.  This assumption holds true in a
  pure 32-bit environment and can hold true in a 64-bit environment if
  the address space is accurately set to be 32-bit for o32 and n32.
  </p>
  </dd>
! <dt><code>--with-madd4</code></dt>
! <dd><p>On MIPS targets, make <samp>-mmadd4</samp> the default when no
! <samp>-mno-madd4</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code>--without-madd4</code></dt>
! <dd><p>On MIPS targets, make <samp>-mno-madd4</samp> the default when no
! <samp>-mmadd4</samp> option is passed.  The <code>madd4</code> instruction
  family can be problematic when targeting a combination of cores that
  implement these instructions differently.  There are two known cores
  that implement these as fused operations instead of unfused (where
--- 1266,1285 ----
  with 64-bit addressing enabled which affects the overflow behaviour
  of the indexed addressing mode.  GCC will assume that ordinary
  32-bit arithmetic overflow behaviour is the same whether performed
! as an <code class="code">addu</code> instruction or as part of the address calculation
! in <code class="code">lwxc1</code> type instructions.  This assumption holds true in a
  pure 32-bit environment and can hold true in a 64-bit environment if
  the address space is accurately set to be 32-bit for o32 and n32.
  </p>
  </dd>
! <dt><code class="code">--with-madd4</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mmadd4</samp> the default when no
! <samp class="option">-mno-madd4</samp> option is passed.  This is the default.
  </p>
  </dd>
! <dt><code class="code">--without-madd4</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mno-madd4</samp> the default when no
! <samp class="option">-mmadd4</samp> option is passed.  The <code class="code">madd4</code> instruction
  family can be problematic when targeting a combination of cores that
  implement these instructions differently.  There are two known cores
  that implement these as fused operations instead of unfused (where
*************** only way to ensure compatible code is ge
*** 1275,1367 ****
  a performance penalty.
  </p>
  </dd>
! <dt><code>--with-msa</code></dt>
! <dd><p>On MIPS targets, make <samp>-mmsa</samp> the default when no
! <samp>-mno-msa</samp> option is passed.
  </p>
  </dd>
! <dt><code>--without-msa</code></dt>
! <dd><p>On MIPS targets, make <samp>-mno-msa</samp> the default when no
! <samp>-mmsa</samp> option is passed. This is the default.
  </p>
  </dd>
! <dt><code>--with-mips-plt</code></dt>
  <dd><p>On MIPS targets, make use of copy relocations and PLTs.
  These features are extensions to the traditional
! SVR4-based MIPS ABIs and require support from GNU binutils
  and the runtime C library.
  </p>
  </dd>
! <dt><code>--with-stack-clash-protection-guard-size=<var>size</var></code></dt>
  <dd><p>On certain targets this option sets the default stack clash protection guard
! size as a power of two in bytes.  On AArch64 <var>size</var> is required to be either
  12 (4KB) or 16 (64KB).
  </p>
  </dd>
! <dt><code>--with-isa-spec=<var>ISA-spec-string</var></code></dt>
  <dd><p>On RISC-V targets specify the default version of the RISC-V Unprivileged
  (formerly User-Level) ISA specification to produce code conforming to.
! The possibilities for <var>ISA-spec-string</var> are:
! </p><dl compact="compact">
! <dt><code>2.2</code></dt>
  <dd><p>Produce code conforming to version 2.2.
  </p></dd>
! <dt><code>20190608</code></dt>
  <dd><p>Produce code conforming to version 20190608.
  </p></dd>
! <dt><code>20191213</code></dt>
  <dd><p>Produce code conforming to version 20191213.
  </p></dd>
  </dl>
  <p>In the absence of this configuration option the default version is 20191213.
  </p>
  </dd>
! <dt><code>--enable-__cxa_atexit</code></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><code>--enable-gnu-indirect-function</code></dt>
! <dd><p>Define if you want to enable the <code>ifunc</code> attribute.  This option is
  currently only available on systems with GNU libc on certain targets.
  </p>
  </dd>
! <dt><code>--enable-target-optspace</code></dt>
  <dd><p>Specify that target
  libraries should be optimized for code space instead of code speed.
  This is the default for the m32r platform.
  </p>
  </dd>
! <dt><code>--with-cpp-install-dir=<var>dirname</var></code></dt>
! <dd><p>Specify that the user visible <code>cpp</code> program should be installed
! in <samp><var>prefix</var>/<var>dirname</var>/cpp</samp>, in addition to <var>bindir</var>.
  </p>
  </dd>
! <dt><code>--enable-comdat</code></dt>
  <dd><p>Enable COMDAT group support.  This is primarily used to override the
  automatically detected value.
  </p>
  </dd>
! <dt><code>--enable-initfini-array</code></dt>
! <dd><p>Force the use of sections <code>.init_array</code> and <code>.fini_array</code>
! (instead of <code>.init</code> and <code>.fini</code>) for constructors and
! destructors.  Option <samp>--disable-initfini-array</samp> has the
  opposite effect.  If neither option is specified, the configure script
! will try to guess whether the <code>.init_array</code> and
! <code>.fini_array</code> sections are supported and, if they are, use them.
  </p>
  </dd>
! <dt><code>--enable-link-mutex</code></dt>
  <dd><p>When building GCC, use a mutex to avoid linking the compilers for
  multiple languages at the same time, to avoid thrashing on build
  systems with limited free memory.  The default is not to use such a mutex.
  </p>
  </dd>
! <dt><code>--enable-link-serialization</code></dt>
  <dd><p>When building GCC, use make dependencies to serialize linking the compilers for
  multiple languages, to avoid thrashing on build
  systems with limited free memory.  The default is not to add such
--- 1288,1380 ----
  a performance penalty.
  </p>
  </dd>
! <dt><code class="code">--with-msa</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mmsa</samp> the default when no
! <samp class="option">-mno-msa</samp> option is passed.
  </p>
  </dd>
! <dt><code class="code">--without-msa</code></dt>
! <dd><p>On MIPS targets, make <samp class="option">-mno-msa</samp> the default when no
! <samp class="option">-mmsa</samp> option is passed. This is the default.
  </p>
  </dd>
! <dt><code class="code">--with-mips-plt</code></dt>
  <dd><p>On MIPS targets, make use of copy relocations and PLTs.
  These features are extensions to the traditional
! SVR4-based MIPS ABIs and require support from GNU Binutils
  and the runtime C library.
  </p>
  </dd>
! <dt><code class="code">--with-stack-clash-protection-guard-size=<var class="var">size</var></code></dt>
  <dd><p>On certain targets this option sets the default stack clash protection guard
! size as a power of two in bytes.  On AArch64 <var class="var">size</var> is required to be either
  12 (4KB) or 16 (64KB).
  </p>
  </dd>
! <dt><code class="code">--with-isa-spec=<var class="var">ISA-spec-string</var></code></dt>
  <dd><p>On RISC-V targets specify the default version of the RISC-V Unprivileged
  (formerly User-Level) ISA specification to produce code conforming to.
! The possibilities for <var class="var">ISA-spec-string</var> are:
! </p><dl class="table">
! <dt><code class="code">2.2</code></dt>
  <dd><p>Produce code conforming to version 2.2.
  </p></dd>
! <dt><code class="code">20190608</code></dt>
  <dd><p>Produce code conforming to version 20190608.
  </p></dd>
! <dt><code class="code">20191213</code></dt>
  <dd><p>Produce code conforming to version 20191213.
  </p></dd>
  </dl>
  <p>In the absence of this configuration option the default version is 20191213.
  </p>
  </dd>
! <dt><code class="code">--enable-__cxa_atexit</code></dt>
! <dd><p>Define if you want to use <code class="code">__cxa_atexit</code>, rather than <code class="code">atexit</code>,
! to register C++ destructors for local statics and global objects.
  This is essential for fully standards-compliant handling of
! destructors, but requires <code class="code">__cxa_atexit</code> in libc.  This option is
  currently only available on systems with GNU libc.  When enabled, this
! will cause <samp class="option">-fuse-cxa-atexit</samp> to be passed by default.
  </p>
  </dd>
! <dt><code class="code">--enable-gnu-indirect-function</code></dt>
! <dd><p>Define if you want to enable the <code class="code">ifunc</code> attribute.  This option is
  currently only available on systems with GNU libc on certain targets.
  </p>
  </dd>
! <dt><code class="code">--enable-target-optspace</code></dt>
  <dd><p>Specify that target
  libraries should be optimized for code space instead of code speed.
  This is the default for the m32r platform.
  </p>
  </dd>
! <dt><code class="code">--with-cpp-install-dir=<var class="var">dirname</var></code></dt>
! <dd><p>Specify that the user visible <code class="command">cpp</code> program should be installed
! in <samp class="file"><var class="var">prefix</var>/<var class="var">dirname</var>/cpp</samp>, in addition to <var class="var">bindir</var>.
  </p>
  </dd>
! <dt><code class="code">--enable-comdat</code></dt>
  <dd><p>Enable COMDAT group support.  This is primarily used to override the
  automatically detected value.
  </p>
  </dd>
! <dt><code class="code">--enable-initfini-array</code></dt>
! <dd><p>Force the use of sections <code class="code">.init_array</code> and <code class="code">.fini_array</code>
! (instead of <code class="code">.init</code> and <code class="code">.fini</code>) for constructors and
! destructors.  Option <samp class="option">--disable-initfini-array</samp> has the
  opposite effect.  If neither option is specified, the configure script
! will try to guess whether the <code class="code">.init_array</code> and
! <code class="code">.fini_array</code> sections are supported and, if they are, use them.
  </p>
  </dd>
! <dt><code class="code">--enable-link-mutex</code></dt>
  <dd><p>When building GCC, use a mutex to avoid linking the compilers for
  multiple languages at the same time, to avoid thrashing on build
  systems with limited free memory.  The default is not to use such a mutex.
  </p>
  </dd>
! <dt><code class="code">--enable-link-serialization</code></dt>
  <dd><p>When building GCC, use make dependencies to serialize linking the compilers for
  multiple languages, to avoid thrashing on build
  systems with limited free memory.  The default is not to add such
*************** compilers concurrently.  If the argument
*** 1370,1402 ****
  that number of concurrent link processes for the large binaries.
  </p>
  </dd>
! <dt><code>--enable-maintainer-mode</code></dt>
  <dd><p>The build rules that regenerate the Autoconf and Automake output files as
! well as the GCC master message catalog <samp>gcc.pot</samp> are normally
  disabled.  This is because it can only be rebuilt if the complete source
  tree is present.  If you have changed the sources and want to rebuild the
! catalog, configuring with <samp>--enable-maintainer-mode</samp> will enable
! this.  Note that you need a recent version of the <code>gettext</code> tools
  to do so.
  </p>
  </dd>
! <dt><code>--disable-bootstrap</code></dt>
  <dd><p>For a native build, the default configuration is to perform
! a 3-stage bootstrap of the compiler when &lsquo;<samp>make</samp>&rsquo; is invoked,
  testing that GCC can compile itself correctly.  If you want to disable
! this process, you can configure with <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--enable-bootstrap</code></dt>
  <dd><p>In special cases, you may want to perform a 3-stage build
  even if the target and host triplets are different.
  This is possible when the host can run code compiled for
  the target (e.g. host is i686-linux, target is i486-linux).
  Starting from GCC 4.2, to do this you have to configure explicitly
! with <samp>--enable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--enable-generated-files-in-srcdir</code></dt>
  <dd><p>Neither the .c and .h files that are generated from Bison and flex nor the
  info manuals and man pages that are built from the .texi files are present
  in the repository development tree.  When building GCC from that development tree,
--- 1383,1415 ----
  that number of concurrent link processes for the large binaries.
  </p>
  </dd>
! <dt><code class="code">--enable-maintainer-mode</code></dt>
  <dd><p>The build rules that regenerate the Autoconf and Automake output files as
! well as the GCC master message catalog <samp class="file">gcc.pot</samp> are normally
  disabled.  This is because it can only be rebuilt if the complete source
  tree is present.  If you have changed the sources and want to rebuild the
! catalog, configuring with <samp class="option">--enable-maintainer-mode</samp> will enable
! this.  Note that you need a recent version of the <code class="code">gettext</code> tools
  to do so.
  </p>
  </dd>
! <dt><code class="code">--disable-bootstrap</code></dt>
  <dd><p>For a native build, the default configuration is to perform
! a 3-stage bootstrap of the compiler when &lsquo;<samp class="samp">make</samp>&rsquo; is invoked,
  testing that GCC can compile itself correctly.  If you want to disable
! this process, you can configure with <samp class="option">--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-bootstrap</code></dt>
  <dd><p>In special cases, you may want to perform a 3-stage build
  even if the target and host triplets are different.
  This is possible when the host can run code compiled for
  the target (e.g. host is i686-linux, target is i486-linux).
  Starting from GCC 4.2, to do this you have to configure explicitly
! with <samp class="option">--enable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-generated-files-in-srcdir</code></dt>
  <dd><p>Neither the .c and .h files that are generated from Bison and flex nor the
  info manuals and man pages that are built from the .texi files are present
  in the repository development tree.  When building GCC from that development tree,
*************** or from one of our snapshots, those gene
*** 1404,1643 ****
  build directory, which allows for the source to be in a readonly
  directory.
  </p>
! <p>If you configure with <samp>--enable-generated-files-in-srcdir</samp> then those
  generated files will go into the source directory.  This is mainly intended
  for generating release or prerelease tarballs of the GCC sources, since it
  is not a requirement that the users of source releases to have flex, Bison,
  or makeinfo.
  </p>
  </dd>
! <dt><code>--enable-version-specific-runtime-libs</code></dt>
  <dd><p>Specify
  that runtime libraries should be installed in the compiler specific
! subdirectory (<samp><var>libdir</var>/gcc</samp>) rather than the usual places.  In
! addition, &lsquo;<samp>libstdc++</samp>&rsquo;&rsquo;s include files will be installed into
! <samp><var>libdir</var></samp> unless you overruled it by using
! <samp>--with-gxx-include-dir=<var>dirname</var></samp>.  Using this option is
  particularly useful if you intend to use several versions of GCC in
! parallel.  The default is &lsquo;<samp>yes</samp>&rsquo; for &lsquo;<samp>libada</samp>&rsquo;, and &lsquo;<samp>no</samp>&rsquo; for
  the remaining libraries.
  </p>
  </dd>
! <dt><code>--with-darwin-extra-rpath</code></dt>
  <dd><p>This is provided to allow distributions to add a single additional
  runpath on Darwin / macOS systems. This allows for cases where the
  installed GCC library directories are then symlinked to a common
  directory outside of the GCC installation.
  </p>
  </dd>
! <dt><code><a name="WithAixSoname"></a>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;, &lsquo;<samp>svr4</samp>&rsquo; or &lsquo;<samp>both</samp>&rsquo;</code></dt>
! <dd><p>Traditional AIX shared library versioning (versioned <code>Shared Object</code>
! files as members of unversioned <code>Archive Library</code> files named
! &lsquo;<samp>lib.a</samp>&rsquo;) causes numerous headaches for package managers. However,
! <code>Import Files</code> as members of <code>Archive Library</code> files allow for
! <strong>filename-based versioning</strong> of shared libraries as seen on Linux/SVR4,
  where this is called the &quot;SONAME&quot;. But as they prevent static linking,
! <code>Import Files</code> may be used with <code>Runtime Linking</code> only, where the
! linker does search for &lsquo;<samp>libNAME.so</samp>&rsquo; before &lsquo;<samp>libNAME.a</samp>&rsquo; library
! filenames with the &lsquo;<samp>-lNAME</samp>&rsquo; linker flag.
  </p>
! <a name="AixLdCommand"></a><p>For detailed information please refer to the AIX
! <a href="https://www.ibm.com/support/knowledgecenter/search/%22the%20ld%20command%2C%20also%20called%20the%20linkage%20editor%20or%20binder%22">ld
  Command</a> reference.
  </p>
  <p>As long as shared library creation is enabled, upon:
! </p><dl compact="compact">
! <dt><code>--with-aix-soname=aix</code></dt>
! <dt><code>--with-aix-soname=both</code></dt>
! <dd><p>A (traditional AIX) <code>Shared Archive Library</code> file is created:
!  </p><ul>
! <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
!   </li><li> with the <code>Shared Object</code> file as archive member named
!   &lsquo;<samp>libNAME.so.V</samp>&rsquo; (except for &lsquo;<samp>libgcc_s</samp>&rsquo;, where the <code>Shared
!   Object</code> file is named &lsquo;<samp>shr.o</samp>&rsquo; for backwards compatibility), which
!   <ul class="no-bullet">
! <li>- is used for runtime loading from inside the &lsquo;<samp>libNAME.a</samp>&rsquo; file
!    </li><li>- is used for dynamic loading via
!    <code>dlopen(&quot;libNAME.a(libNAME.so.V)&quot;, RTLD_MEMBER)</code>
!    </li><li>- is used for shared linking
!    </li><li>- is used for static linking, so no separate <code>Static Archive
     Library</code> file is needed
    </li></ul>
  </li></ul>
  </dd>
! <dt><code>--with-aix-soname=both</code></dt>
! <dt><code>--with-aix-soname=svr4</code></dt>
! <dd><p>A (second) <code>Shared Archive Library</code> file is created:
!  </p><ul>
! <li> using the &lsquo;<samp>libNAME.so.V</samp>&rsquo; filename scheme
!  </li><li> with the <code>Shared Object</code> file as archive member named
!  &lsquo;<samp>shr.o</samp>&rsquo;, which
!   <ul class="no-bullet">
! <li>- is created with the <code>-G linker flag</code>
!    </li><li>- has the <code>F_LOADONLY</code> flag set
!    </li><li>- is used for runtime loading from inside the &lsquo;<samp>libNAME.so.V</samp>&rsquo; file
!    </li><li>- is used for dynamic loading via <code>dlopen(&quot;libNAME.so.V(shr.o)&quot;,
     RTLD_MEMBER)</code>
    </li></ul>
! </li><li> with the <code>Import File</code> as archive member named &lsquo;<samp>shr.imp</samp>&rsquo;,
   which
!   <ul class="no-bullet">
! <li>- refers to &lsquo;<samp>libNAME.so.V(shr.o)</samp>&rsquo; as the &quot;SONAME&quot;, to be recorded
!    in the <code>Loader Section</code> of subsequent binaries
!    </li><li>- indicates whether &lsquo;<samp>libNAME.so.V(shr.o)</samp>&rsquo; is 32 or 64 bit
!    </li><li>- lists all the public symbols exported by &lsquo;<samp>lib.so.V(shr.o)</samp>&rsquo;,
!    eventually decorated with the <code>&lsquo;<samp>weak</samp>&rsquo; Keyword</code>
!    </li><li>- is necessary for shared linking against &lsquo;<samp>lib.so.V(shr.o)</samp>&rsquo;
     </li></ul>
  </li></ul>
! <p>A symbolic link using the &lsquo;<samp>libNAME.so</samp>&rsquo; filename scheme is created:
!   </p><ul>
! <li> pointing to the &lsquo;<samp>libNAME.so.V</samp>&rsquo; <code>Shared Archive Library</code> file
!   </li><li> to permit the <code>ld Command</code> to find &lsquo;<samp>lib.so.V(shr.imp)</samp>&rsquo; via
!   the &lsquo;<samp>-lNAME</samp>&rsquo; argument (requires <code>Runtime Linking</code> to be enabled)
!   </li><li> to permit dynamic loading of &lsquo;<samp>lib.so.V(shr.o)</samp>&rsquo; without the need
!   to specify the version number via <code>dlopen(&quot;libNAME.so(shr.o)&quot;,
    RTLD_MEMBER)</code>
    </li></ul>
  </dd>
  </dl>
  
  <p>As long as static library creation is enabled, upon:
! </p><dl compact="compact">
! <dt><code>--with-aix-soname=svr4</code></dt>
! <dd><p>A <code>Static Archive Library</code> is created:
!  </p><ul>
! <li> using the &lsquo;<samp>libNAME.a</samp>&rsquo; filename scheme
!  </li><li> with all the <code>Static Object</code> files as archive members, which
!   <ul class="no-bullet">
! <li>- are used for static linking
    </li></ul>
  </li></ul>
  </dd>
  </dl>
  
! <p>While the aix-soname=&lsquo;<samp>svr4</samp>&rsquo; option does not create <code>Shared Object</code>
! files as members of unversioned <code>Archive Library</code> files any more, package
  managers still are responsible to
! <a href="./specific.html#TransferAixShobj">transfer</a> <code>Shared Object</code> files
! found as member of a previously installed unversioned <code>Archive Library</code>
! file into the newly installed <code>Archive Library</code> file with the same
  filename.
  </p>
! <p><em>WARNING:</em> Creating <code>Shared Object</code> files with <code>Runtime Linking</code>
! enabled may bloat the TOC, eventually leading to <code>TOC overflow</code> errors,
! requiring the use of either the <samp>-Wl,-bbigtoc</samp> linker flag (seen to
! break with the <code>GDB</code> debugger) or some of the TOC-related compiler flags,
  see &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual.
  </p>
! <p><samp>--with-aix-soname</samp> is currently supported by &lsquo;<samp>libgcc_s</samp>&rsquo; only, so
  this option is still experimental and not for normal use yet.
  </p>
! <p>Default is the traditional behavior <samp>--with-aix-soname=&lsquo;<samp>aix</samp>&rsquo;</samp>.
  </p>
  </dd>
! <dt><code>--enable-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that only a particular subset of compilers and
  their runtime libraries should be built.  For a list of valid values for
! <var>langN</var> you can issue the following command in the
! <samp>gcc</samp> directory of your GCC source tree:<br>
! </p><div class="smallexample">
! <pre class="smallexample">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
! <code>all</code> is specified, then all available languages are built.  An
! exception is <code>jit</code> language, which requires
! <samp>--enable-host-shared</samp> to be included with <code>all</code>.
  </p>
  </dd>
! <dt><code>--enable-stage1-languages=<var>lang1</var>,<var>lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that a particular subset of compilers and their runtime
  libraries should be built with the system C compiler during stage 1 of
  the bootstrap process, rather than only in later stages with the
  bootstrapped C compiler.  The list of valid values is the same as for
! <samp>--enable-languages</samp>, and the option <code>all</code> will select all
! of the languages enabled by <samp>--enable-languages</samp>.  This option is
  primarily useful for GCC development; for instance, when a development
  version of the compiler cannot bootstrap due to compiler bugs, or when
  one is debugging front ends other than the C front end.  When this
  option is used, one can then build the target libraries for the
! specified languages with the stage-1 compiler by using <code>make
  stage1-bubble all-target</code>, or run the testsuite on the stage-1 compiler
! for the specified languages using <code>make stage1-start check-gcc</code>.
  </p>
  </dd>
! <dt><code>--disable-libada</code></dt>
  <dd><p>Specify that the run-time libraries and tools used by GNAT should not
  be built.  This can be useful for debugging, or for compatibility with
  previous Ada build procedures, when it was required to explicitly
! do a &lsquo;<samp>make -C gcc gnatlib_and_tools</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--disable-libgm2</code></dt>
  <dd><p>Specify that the run-time libraries and tools used by Modula-2 should not
  be built.  This can be useful for debugging.
  </p>
  </dd>
! <dt><code>--disable-libsanitizer</code></dt>
  <dd><p>Specify that the run-time libraries for the various sanitizers should
  not be built.
  </p>
  </dd>
! <dt><code>--disable-libssp</code></dt>
  <dd><p>Specify that the run-time libraries for stack smashing protection
  should not be built or linked against.  On many targets library support
  is provided by the C library instead.
  </p>
  </dd>
! <dt><code>--disable-libquadmath</code></dt>
  <dd><p>Specify that the GCC quad-precision math library should not be built.
  On some systems, the library is required to be linkable when building
! the Fortran front end, unless <samp>--disable-libquadmath-support</samp>
  is used.
  </p>
  </dd>
! <dt><code>--disable-libquadmath-support</code></dt>
! <dd><p>Specify that the Fortran front end and <code>libgfortran</code> do not add
! support for <code>libquadmath</code> on systems supporting it.
  </p>
  </dd>
! <dt><code>--disable-libgomp</code></dt>
  <dd><p>Specify that the GNU Offloading and Multi Processing Runtime Library
  should not be built.
  </p>
  </dd>
! <dt><code>--disable-libvtv</code></dt>
  <dd><p>Specify that the run-time libraries used by vtable verification
  should not be built.
  </p>
  </dd>
! <dt><code>--with-dwarf2</code></dt>
  <dd><p>Specify that the compiler should
  use DWARF debugging information as the default; the exact
  DWARF version that is the default is target-specific.
  </p>
  </dd>
! <dt><code>--with-advance-toolchain=<var>at</var></code></dt>
  <dd><p>On 64-bit PowerPC Linux systems, configure the compiler to use the
  header files, library files, and the dynamic linker from the Advance
! Toolchain release <var>at</var> instead of the default versions that are
  provided by the Linux distribution.  In general, this option is
  intended for the developers of GCC, and it is not intended for general
  use.
  </p>
  </dd>
! <dt><code>--enable-targets=all</code></dt>
! <dt><code>--enable-targets=<var>target_list</var></code></dt>
  <dd><p>Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
  These are compilers that are able to generate either 64-bit or 32-bit
  code.  Typically, the corresponding 32-bit target, e.g.
--- 1417,1666 ----
  build directory, which allows for the source to be in a readonly
  directory.
  </p>
! <p>If you configure with <samp class="option">--enable-generated-files-in-srcdir</samp> then those
  generated files will go into the source directory.  This is mainly intended
  for generating release or prerelease tarballs of the GCC sources, since it
  is not a requirement that the users of source releases to have flex, Bison,
  or makeinfo.
  </p>
  </dd>
! <dt><code class="code">--enable-version-specific-runtime-libs</code></dt>
  <dd><p>Specify
  that runtime libraries should be installed in the compiler specific
! subdirectory (<samp class="file"><var class="var">libdir</var>/gcc</samp>) rather than the usual places.  In
! addition, &lsquo;<samp class="samp">libstdc++</samp>&rsquo;&rsquo;s include files will be installed into
! <samp class="file"><var class="var">libdir</var></samp> unless you overruled it by using
! <samp class="option">--with-gxx-include-dir=<var class="var">dirname</var></samp>.  Using this option is
  particularly useful if you intend to use several versions of GCC in
! parallel.  The default is &lsquo;<samp class="samp">yes</samp>&rsquo; for &lsquo;<samp class="samp">libada</samp>&rsquo;, and &lsquo;<samp class="samp">no</samp>&rsquo; for
  the remaining libraries.
  </p>
  </dd>
! <dt><code class="code">--with-darwin-extra-rpath</code></dt>
  <dd><p>This is provided to allow distributions to add a single additional
  runpath on Darwin / macOS systems. This allows for cases where the
  installed GCC library directories are then symlinked to a common
  directory outside of the GCC installation.
  </p>
  </dd>
! <dt><code class="code"><a class="anchor" id="WithAixSoname"></a>--with-aix-soname=&lsquo;<samp class="samp">aix</samp>&rsquo;, &lsquo;<samp class="samp">svr4</samp>&rsquo; or &lsquo;<samp class="samp">both</samp>&rsquo;</code></dt>
! <dd><p>Traditional AIX shared library versioning (versioned <code class="code">Shared Object</code>
! files as members of unversioned <code class="code">Archive Library</code> files named
! &lsquo;<samp class="samp">lib.a</samp>&rsquo;) causes numerous headaches for package managers. However,
! <code class="code">Import Files</code> as members of <code class="code">Archive Library</code> files allow for
! <strong class="strong">filename-based versioning</strong> of shared libraries as seen on Linux/SVR4,
  where this is called the &quot;SONAME&quot;. But as they prevent static linking,
! <code class="code">Import Files</code> may be used with <code class="code">Runtime Linking</code> only, where the
! linker does search for &lsquo;<samp class="samp">libNAME.so</samp>&rsquo; before &lsquo;<samp class="samp">libNAME.a</samp>&rsquo; library
! filenames with the &lsquo;<samp class="samp">-lNAME</samp>&rsquo; linker flag.
  </p>
! <a class="anchor" id="AixLdCommand"></a><p>For detailed information please refer to the AIX
! <a class="uref" href="https://www.ibm.com/support/knowledgecenter/search/%22the%20ld%20command%2C%20also%20called%20the%20linkage%20editor%20or%20binder%22">ld
  Command</a> reference.
  </p>
  <p>As long as shared library creation is enabled, upon:
! </p><dl class="table">
! <dt><code class="code">--with-aix-soname=aix</code></dt>
! <dt><code class="code">--with-aix-soname=both</code></dt>
! <dd><p>A (traditional AIX) <code class="code">Shared Archive Library</code> file is created:
!  </p><ul class="itemize mark-bullet">
! <li>using the &lsquo;<samp class="samp">libNAME.a</samp>&rsquo; filename scheme
!   </li><li>with the <code class="code">Shared Object</code> file as archive member named
!   &lsquo;<samp class="samp">libNAME.so.V</samp>&rsquo; (except for &lsquo;<samp class="samp">libgcc_s</samp>&rsquo;, where the <code class="code">Shared
!   Object</code> file is named &lsquo;<samp class="samp">shr.o</samp>&rsquo; for backwards compatibility), which
!   <ul class="itemize mark-minus">
! <li>is used for runtime loading from inside the &lsquo;<samp class="samp">libNAME.a</samp>&rsquo; file
!    </li><li>is used for dynamic loading via
!    <code class="code">dlopen(&quot;libNAME.a(libNAME.so.V)&quot;, RTLD_MEMBER)</code>
!    </li><li>is used for shared linking
!    </li><li>is used for static linking, so no separate <code class="code">Static Archive
     Library</code> file is needed
    </li></ul>
  </li></ul>
  </dd>
! <dt><code class="code">--with-aix-soname=both</code></dt>
! <dt><code class="code">--with-aix-soname=svr4</code></dt>
! <dd><p>A (second) <code class="code">Shared Archive Library</code> file is created:
!  </p><ul class="itemize mark-bullet">
! <li>using the &lsquo;<samp class="samp">libNAME.so.V</samp>&rsquo; filename scheme
!  </li><li>with the <code class="code">Shared Object</code> file as archive member named
!  &lsquo;<samp class="samp">shr.o</samp>&rsquo;, which
!   <ul class="itemize mark-minus">
! <li>is created with the <code class="code">-G linker flag</code>
!    </li><li>has the <code class="code">F_LOADONLY</code> flag set
!    </li><li>is used for runtime loading from inside the &lsquo;<samp class="samp">libNAME.so.V</samp>&rsquo; file
!    </li><li>is used for dynamic loading via <code class="code">dlopen(&quot;libNAME.so.V(shr.o)&quot;,
     RTLD_MEMBER)</code>
    </li></ul>
! </li><li>with the <code class="code">Import File</code> as archive member named &lsquo;<samp class="samp">shr.imp</samp>&rsquo;,
   which
!   <ul class="itemize mark-minus">
! <li>refers to &lsquo;<samp class="samp">libNAME.so.V(shr.o)</samp>&rsquo; as the &quot;SONAME&quot;, to be recorded
!    in the <code class="code">Loader Section</code> of subsequent binaries
!    </li><li>indicates whether &lsquo;<samp class="samp">libNAME.so.V(shr.o)</samp>&rsquo; is 32 or 64 bit
!    </li><li>lists all the public symbols exported by &lsquo;<samp class="samp">lib.so.V(shr.o)</samp>&rsquo;,
!    eventually decorated with the <code class="code">&lsquo;<samp class="samp">weak</samp>&rsquo; Keyword</code>
!    </li><li>is necessary for shared linking against &lsquo;<samp class="samp">lib.so.V(shr.o)</samp>&rsquo;
     </li></ul>
  </li></ul>
! <p>A symbolic link using the &lsquo;<samp class="samp">libNAME.so</samp>&rsquo; filename scheme is created:
!   </p><ul class="itemize mark-bullet">
! <li>pointing to the &lsquo;<samp class="samp">libNAME.so.V</samp>&rsquo; <code class="code">Shared Archive Library</code> file
!   </li><li>to permit the <code class="code">ld Command</code> to find &lsquo;<samp class="samp">lib.so.V(shr.imp)</samp>&rsquo; via
!   the &lsquo;<samp class="samp">-lNAME</samp>&rsquo; argument (requires <code class="code">Runtime Linking</code> to be enabled)
!   </li><li>to permit dynamic loading of &lsquo;<samp class="samp">lib.so.V(shr.o)</samp>&rsquo; without the need
!   to specify the version number via <code class="code">dlopen(&quot;libNAME.so(shr.o)&quot;,
    RTLD_MEMBER)</code>
    </li></ul>
  </dd>
  </dl>
  
  <p>As long as static library creation is enabled, upon:
! </p><dl class="table">
! <dt><code class="code">--with-aix-soname=svr4</code></dt>
! <dd><p>A <code class="code">Static Archive Library</code> is created:
!  </p><ul class="itemize mark-bullet">
! <li>using the &lsquo;<samp class="samp">libNAME.a</samp>&rsquo; filename scheme
!  </li><li>with all the <code class="code">Static Object</code> files as archive members, which
!   <ul class="itemize mark-minus">
! <li>are used for static linking
    </li></ul>
  </li></ul>
  </dd>
  </dl>
  
! <p>While the aix-soname=&lsquo;<samp class="samp">svr4</samp>&rsquo; option does not create <code class="code">Shared Object</code>
! files as members of unversioned <code class="code">Archive Library</code> files any more, package
  managers still are responsible to
! <a class="uref" href="./specific.html#TransferAixShobj">transfer</a> <code class="code">Shared Object</code> files
! found as member of a previously installed unversioned <code class="code">Archive Library</code>
! file into the newly installed <code class="code">Archive Library</code> file with the same
  filename.
  </p>
! <p><em class="emph">WARNING:</em> Creating <code class="code">Shared Object</code> files with <code class="code">Runtime Linking</code>
! enabled may bloat the TOC, eventually leading to <code class="code">TOC overflow</code> errors,
! requiring the use of either the <samp class="option">-Wl,-bbigtoc</samp> linker flag (seen to
! break with the <code class="code">GDB</code> debugger) or some of the TOC-related compiler flags,
  see &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual.
  </p>
! <p><samp class="option">--with-aix-soname</samp> is currently supported by &lsquo;<samp class="samp">libgcc_s</samp>&rsquo; only, so
  this option is still experimental and not for normal use yet.
  </p>
! <p>Default is the traditional behavior <samp class="option">--with-aix-soname=&lsquo;<samp class="samp">aix</samp>&rsquo;</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-languages=[^]<var class="var">lang1</var>,[^]<var class="var">lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that only a particular subset of compilers and
  their runtime libraries should be built.  For a list of valid values for
! <var class="var">langN</var> you can issue the following command in the
! <samp class="file">gcc</samp> directory of your GCC source tree:<br>
! </p><div class="example smallexample">
! <pre class="example-preformatted">grep ^language= */config-lang.in
  </pre></div>
  <p>Currently, you can use any of the following:
! <code class="code">all</code>, <code class="code">default</code>, <code class="code">ada</code>, <code class="code">algol68</code>, <code class="code">c</code>, <code class="code">c++</code>,
! <code class="code">cobol</code>, <code class="code">d</code>, <code class="code">fortran</code>, <code class="code">go</code>, <code class="code">jit</code>,
! <code class="code">lto</code>, <code class="code">m2</code>, <code class="code">objc</code>, <code class="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 class="code">default</code>, then the
! default languages available in the <samp class="file">gcc</samp> sub-tree will be configured.
! Algol 68, 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 class="option">--enable-lto</samp> is
  enabled by default.  The other languages are default languages.  If
! <code class="code">all</code> is specified, then all available languages are built.  An
! exception is the <code class="code">jit</code> language, which requires
! <samp class="option">--enable-host-shared</samp> to be included with <code class="code">all</code>.
! </p>
! <p>If a language name is prefixed with a caret, such as
! &lsquo;<samp class="samp">--enable-languages=all,^obj-c++</samp>&rsquo;, then that language will
! not be built.  This is most useful when combined with <code class="code">all</code> or
! <code class="code">default</code>.  A language disabled in this way will be disabled even
! if it is also included without the leading caret earlier or later in
! the argument to <samp class="option">--enable-languages</samp>.  An attempt to disable a
! language that is a prerequisite for an enabled language&mdash;(whether
! the latter language was enabled explicitly, or implicitly via the
! <code class="code">default</code> or <code class="code">all</code> directives)&mdash;is invalid.
  </p>
  </dd>
! <dt><code class="code">--enable-stage1-languages=<var class="var">lang1</var>,<var class="var">lang2</var>,&hellip;</code></dt>
  <dd><p>Specify that a particular subset of compilers and their runtime
  libraries should be built with the system C compiler during stage 1 of
  the bootstrap process, rather than only in later stages with the
  bootstrapped C compiler.  The list of valid values is the same as for
! <samp class="option">--enable-languages</samp>, and the option <code class="code">all</code> will select all
! of the languages enabled by <samp class="option">--enable-languages</samp>.  This option is
  primarily useful for GCC development; for instance, when a development
  version of the compiler cannot bootstrap due to compiler bugs, or when
  one is debugging front ends other than the C front end.  When this
  option is used, one can then build the target libraries for the
! specified languages with the stage-1 compiler by using <code class="command">make
  stage1-bubble all-target</code>, or run the testsuite on the stage-1 compiler
! for the specified languages using <code class="command">make stage1-start check-gcc</code>.
  </p>
  </dd>
! <dt><code class="code">--disable-libada</code></dt>
  <dd><p>Specify that the run-time libraries and tools used by GNAT should not
  be built.  This can be useful for debugging, or for compatibility with
  previous Ada build procedures, when it was required to explicitly
! do a &lsquo;<samp class="samp">make -C gcc gnatlib_and_tools</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--disable-libgm2</code></dt>
  <dd><p>Specify that the run-time libraries and tools used by Modula-2 should not
  be built.  This can be useful for debugging.
  </p>
  </dd>
! <dt><code class="code">--disable-libsanitizer</code></dt>
  <dd><p>Specify that the run-time libraries for the various sanitizers should
  not be built.
  </p>
  </dd>
! <dt><code class="code">--disable-libssp</code></dt>
  <dd><p>Specify that the run-time libraries for stack smashing protection
  should not be built or linked against.  On many targets library support
  is provided by the C library instead.
  </p>
  </dd>
! <dt><code class="code">--disable-libquadmath</code></dt>
  <dd><p>Specify that the GCC quad-precision math library should not be built.
  On some systems, the library is required to be linkable when building
! the Fortran front end, unless <samp class="option">--disable-libquadmath-support</samp>
  is used.
  </p>
  </dd>
! <dt><code class="code">--disable-libquadmath-support</code></dt>
! <dd><p>Specify that the Fortran front end and <code class="code">libgfortran</code> do not add
! support for <code class="code">libquadmath</code> on systems supporting it.
  </p>
  </dd>
! <dt><code class="code">--disable-libgomp</code></dt>
  <dd><p>Specify that the GNU Offloading and Multi Processing Runtime Library
  should not be built.
  </p>
  </dd>
! <dt><code class="code">--disable-libvtv</code></dt>
  <dd><p>Specify that the run-time libraries used by vtable verification
  should not be built.
  </p>
  </dd>
! <dt><code class="code">--with-dwarf2</code></dt>
  <dd><p>Specify that the compiler should
  use DWARF debugging information as the default; the exact
  DWARF version that is the default is target-specific.
  </p>
  </dd>
! <dt><code class="code">--with-advance-toolchain=<var class="var">at</var></code></dt>
  <dd><p>On 64-bit PowerPC Linux systems, configure the compiler to use the
  header files, library files, and the dynamic linker from the Advance
! Toolchain release <var class="var">at</var> instead of the default versions that are
  provided by the Linux distribution.  In general, this option is
  intended for the developers of GCC, and it is not intended for general
  use.
  </p>
  </dd>
! <dt><code class="code">--enable-targets=all</code></dt>
! <dt><code class="code">--enable-targets=<var class="var">target_list</var></code></dt>
  <dd><p>Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
  These are compilers that are able to generate either 64-bit or 32-bit
  code.  Typically, the corresponding 32-bit target, e.g.
*************** Currently, this option only affects spar
*** 1651,1825 ****
  mips-linux and s390-linux.
  </p>
  </dd>
! <dt><code>--enable-default-pie</code></dt>
! <dd><p>Turn on <samp>-fPIE</samp> and <samp>-pie</samp> by default.
  </p>
  </dd>
! <dt><code>--enable-secureplt</code></dt>
! <dd><p>This option enables <samp>-msecure-plt</samp> by default for powerpc-linux.
  See &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code>--enable-default-ssp</code></dt>
! <dd><p>Turn on <samp>-fstack-protector-strong</samp> by default.
  </p>
  </dd>
! <dt><code>--enable-cld</code></dt>
! <dd><p>This option enables <samp>-mcld</samp> by default for 32-bit x86 targets.
  See &ldquo;i386 and x86-64 Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code>--enable-large-address-aware</code></dt>
! <dd><p>The <samp>--enable-large-address-aware</samp> option arranges for MinGW
! executables to be linked using the <samp>--large-address-aware</samp>
  option, that enables the use of more than 2GB of memory.  If GCC is
  configured with this option, its effects can be reversed by passing the
! <samp>-Wl,--disable-large-address-aware</samp> option to the so-configured
  compiler driver.
  </p>
  </dd>
! <dt><code>--enable-win32-registry</code></dt>
! <dt><code>--enable-win32-registry=<var>key</var></code></dt>
! <dt><code>--disable-win32-registry</code></dt>
! <dd><p>The <samp>--enable-win32-registry</samp> option enables Microsoft Windows-hosted GCC
  to look up installations paths in the registry using the following key:
  </p>
! <div class="smallexample">
! <pre class="smallexample"><code>HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<var>key</var></code>
  </pre></div>
  
! <p><var>key</var> defaults to GCC version number, and can be overridden by the
! <samp>--enable-win32-registry=<var>key</var></samp> option.  Vendors and distributors
  who use custom installers are encouraged to provide a different key,
  perhaps one comprised of vendor name and GCC version number, to
  avoid conflict with existing installations.  This feature is enabled
! by default, and can be disabled by <samp>--disable-win32-registry</samp>
  option.  This option has no effect on the other hosts.
  </p>
  </dd>
! <dt><code>--nfp</code></dt>
  <dd><p>Specify that the machine does not have a floating point unit.  This
! option only applies to &lsquo;<samp>m68k-sun-sunos<var>n</var></samp>&rsquo;.  On any other
! system, <samp>--nfp</samp> has no effect.
  </p>
  </dd>
! <dt><code>--enable-werror</code></dt>
! <dt><code>--disable-werror</code></dt>
! <dt><code>--enable-werror=yes</code></dt>
! <dt><code>--enable-werror=no</code></dt>
  <dd><p>When you specify this option, it controls whether certain files in the
! compiler are built with <samp>-Werror</samp> in bootstrap stage2 and later.
! If you don&rsquo;t specify it, <samp>-Werror</samp> is turned on for the main
  development trunk.  However it defaults to off for release branches and
! final releases.  The specific files which get <samp>-Werror</samp> are
  controlled by the Makefiles.
  </p>
  </dd>
! <dt><code>--enable-checking</code></dt>
! <dt><code>--disable-checking</code></dt>
! <dt><code>--enable-checking=<var>list</var></code></dt>
  <dd><p>This option controls performing internal consistency checks in the compiler.
  It does not change the generated code, but adds error checking of the
  requested complexity.  This slows down the compiler and may only work
  properly if you are building the compiler with GCC.
  </p>
  <p>When the option is not specified, the active set of checks depends on context.
! Namely, bootstrap stage 1 defaults to &lsquo;<samp>--enable-checking=yes</samp>&rsquo;, builds
  from release branches or release archives default to
! &lsquo;<samp>--enable-checking=release</samp>&rsquo;, and otherwise
! &lsquo;<samp>--enable-checking=yes,extra</samp>&rsquo; is used.  When the option is
! specified without a <var>list</var>, the result is the same as
! &lsquo;<samp>--enable-checking=yes</samp>&rsquo;.  Likewise, &lsquo;<samp>--disable-checking</samp>&rsquo; is
! equivalent to &lsquo;<samp>--enable-checking=no</samp>&rsquo;.
  </p>
! <p>The categories of checks available in <var>list</var> are &lsquo;<samp>yes</samp>&rsquo; (most common
! checks &lsquo;<samp>assert,misc,gc,gimple,rtlflag,runtime,tree,types</samp>&rsquo;), &lsquo;<samp>no</samp>&rsquo;
! (no checks at all), &lsquo;<samp>all</samp>&rsquo; (all but &lsquo;<samp>valgrind</samp>&rsquo;), &lsquo;<samp>release</samp>&rsquo;
! (cheapest checks &lsquo;<samp>assert,runtime</samp>&rsquo;) or &lsquo;<samp>none</samp>&rsquo; (same as &lsquo;<samp>no</samp>&rsquo;).
! &lsquo;<samp>release</samp>&rsquo; checks are always on and to disable them
! &lsquo;<samp>--disable-checking</samp>&rsquo; or &lsquo;<samp>--enable-checking=no[,&lt;other checks&gt;]</samp>&rsquo;
  must be explicitly requested.  Disabling assertions makes the compiler and
  runtime slightly faster but increases the risk of undetected internal errors
  causing wrong code to be generated.
  </p>
! <p>Individual checks can be enabled with these flags: &lsquo;<samp>assert</samp>&rsquo;, &lsquo;<samp>df</samp>&rsquo;,
! &lsquo;<samp>extra</samp>&rsquo;, &lsquo;<samp>fold</samp>&rsquo;, &lsquo;<samp>gc</samp>&rsquo;, &lsquo;<samp>gcac</samp>&rsquo;, &lsquo;<samp>gimple</samp>&rsquo;,
! &lsquo;<samp>misc</samp>&rsquo;, &lsquo;<samp>rtl</samp>&rsquo;, &lsquo;<samp>rtlflag</samp>&rsquo;, &lsquo;<samp>runtime</samp>&rsquo;, &lsquo;<samp>tree</samp>&rsquo;,
! &lsquo;<samp>types</samp>&rsquo; and &lsquo;<samp>valgrind</samp>&rsquo;.  &lsquo;<samp>extra</samp>&rsquo; extends &lsquo;<samp>misc</samp>&rsquo;
  checking with extra checks that might affect code generation and should
  therefore not differ between stage1 and later stages in bootstrap.
  </p>
! <p>The &lsquo;<samp>valgrind</samp>&rsquo; check requires the external <code>valgrind</code> simulator,
! available from <a href="https://valgrind.org">https://valgrind.org</a>.  The &lsquo;<samp>rtl</samp>&rsquo; checks are
! expensive and the &lsquo;<samp>df</samp>&rsquo;, &lsquo;<samp>gcac</samp>&rsquo; and &lsquo;<samp>valgrind</samp>&rsquo; checks are very
  expensive.
  </p>
  </dd>
! <dt><code>--disable-stage1-checking</code></dt>
! <dt><code>--enable-stage1-checking</code></dt>
! <dt><code>--enable-stage1-checking=<var>list</var></code></dt>
! <dd><p>This option affects only bootstrap build.  If no <samp>--enable-checking</samp>
! option is specified the stage1 compiler is built with &lsquo;<samp>yes</samp>&rsquo; checking
  enabled, otherwise the stage1 checking flags are the same as specified by
! <samp>--enable-checking</samp>.  To build the stage1 compiler with
! different checking options use <samp>--enable-stage1-checking</samp>.
! The list of checking options is the same as for <samp>--enable-checking</samp>.
  If your system is too slow or too small to bootstrap a released compiler
! with checking for stage1 enabled, you can use &lsquo;<samp>--disable-stage1-checking</samp>&rsquo;
  to disable checking for the stage1 compiler.
  </p>
  </dd>
! <dt><code>--enable-coverage</code></dt>
! <dt><code>--enable-coverage=<var>level</var></code></dt>
  <dd><p>With this option, the compiler is built to collect self coverage
  information, every time it is run.  This is for internal development
  purposes, and only works when the compiler is being built with gcc.  The
! <var>level</var> argument controls whether the compiler is built optimized or
! not, values are &lsquo;<samp>opt</samp>&rsquo; and &lsquo;<samp>noopt</samp>&rsquo;.  For coverage analysis you
  want to disable optimization, for performance analysis you want to
  enable optimization.  When coverage is enabled, the default level is
  without optimization.
  </p>
  </dd>
! <dt><code>--enable-gather-detailed-mem-stats</code></dt>
  <dd><p>When this option is specified more detailed information on memory
  allocation is gathered.  This information is printed when using
! <samp>-fmem-report</samp>.
  </p>
  </dd>
! <dt><code>--enable-valgrind-annotations</code></dt>
  <dd><p>Mark selected memory related operations in the compiler when run under
  valgrind to suppress false positives.
  </p>
  </dd>
! <dt><code>--enable-nls</code></dt>
! <dt><code>--disable-nls</code></dt>
! <dd><p>The <samp>--enable-nls</samp> option enables Native Language Support (NLS),
  which lets GCC output diagnostics in languages other than American
  English.  Native Language Support is enabled by default if not doing a
! canadian cross build.  The <samp>--disable-nls</samp> option disables NLS.
  </p>
  <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>
! <dt><code>--with-libintl-prefix=<var>dir</var></code></dt>
! <dt><code>--without-libintl-prefix</code></dt>
! <dd><p>Searches for libintl in <samp><var>dir</var>/include</samp> and
! <samp><var>dir</var>/lib</samp>, or disables manual searching for it, letting the
  linker handle it.
  </p>
  </dd>
! <dt><code>--with-libintl-type=<var>type</var></code></dt>
  <dd><p>Specifies the type of library to search for when looking for libintl.
! <var>type</var> can be one of <code>auto</code>, <code>static</code> or <code>shared</code>.
  </p>
! <a name="with-included-gettext"></a></dd>
! <dt><code>--with-included-gettext</code></dt>
! <dd><p>Only available if <samp>gettext</samp> is present in the source tree.
  </p>
  <p>Forces the gettext tree to be configured to build and use a new static
  libintl, overriding the system libintl.  Results in GCC being built
--- 1674,1848 ----
  mips-linux and s390-linux.
  </p>
  </dd>
! <dt><code class="code">--enable-default-pie</code></dt>
! <dd><p>Turn on <samp class="option">-fPIE</samp> and <samp class="option">-pie</samp> by default.
  </p>
  </dd>
! <dt><code class="code">--enable-secureplt</code></dt>
! <dd><p>This option enables <samp class="option">-msecure-plt</samp> by default for powerpc-linux.
  See &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code class="code">--enable-default-ssp</code></dt>
! <dd><p>Turn on <samp class="option">-fstack-protector-strong</samp> by default.
  </p>
  </dd>
! <dt><code class="code">--enable-cld</code></dt>
! <dd><p>This option enables <samp class="option">-mcld</samp> by default for 32-bit x86 targets.
  See &ldquo;i386 and x86-64 Options&rdquo; in the main manual
  </p>
  </dd>
! <dt><code class="code">--enable-large-address-aware</code></dt>
! <dd><p>The <samp class="option">--enable-large-address-aware</samp> option arranges for MinGW
! executables to be linked using the <samp class="option">--large-address-aware</samp>
  option, that enables the use of more than 2GB of memory.  If GCC is
  configured with this option, its effects can be reversed by passing the
! <samp class="option">-Wl,--disable-large-address-aware</samp> option to the so-configured
  compiler driver.
  </p>
  </dd>
! <dt><code class="code">--enable-win32-registry</code></dt>
! <dt><code class="code">--enable-win32-registry=<var class="var">key</var></code></dt>
! <dt><code class="code">--disable-win32-registry</code></dt>
! <dd><p>The <samp class="option">--enable-win32-registry</samp> option enables Microsoft Windows-hosted GCC
  to look up installations paths in the registry using the following key:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted"><code class="code">HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<var class="var">key</var></code>
  </pre></div>
  
! <p><var class="var">key</var> defaults to GCC version number, and can be overridden by the
! <samp class="option">--enable-win32-registry=<var class="var">key</var></samp> option.  Vendors and distributors
  who use custom installers are encouraged to provide a different key,
  perhaps one comprised of vendor name and GCC version number, to
  avoid conflict with existing installations.  This feature is enabled
! by default, and can be disabled by <samp class="option">--disable-win32-registry</samp>
  option.  This option has no effect on the other hosts.
  </p>
  </dd>
! <dt><code class="code">--nfp</code></dt>
  <dd><p>Specify that the machine does not have a floating point unit.  This
! option only applies to &lsquo;<samp class="samp">m68k-sun-sunos<var class="var">n</var></samp>&rsquo;.  On any other
! system, <samp class="option">--nfp</samp> has no effect.
  </p>
  </dd>
! <dt><code class="code">--enable-werror</code></dt>
! <dt><code class="code">--disable-werror</code></dt>
! <dt><code class="code">--enable-werror=yes</code></dt>
! <dt><code class="code">--enable-werror=no</code></dt>
  <dd><p>When you specify this option, it controls whether certain files in the
! compiler are built with <samp class="option">-Werror</samp> in bootstrap stage2 and later.
! If you don&rsquo;t specify it, <samp class="option">-Werror</samp> is turned on for the main
  development trunk.  However it defaults to off for release branches and
! final releases.  The specific files which get <samp class="option">-Werror</samp> are
  controlled by the Makefiles.
  </p>
  </dd>
! <dt><code class="code">--enable-checking</code></dt>
! <dt><code class="code">--disable-checking</code></dt>
! <dt><code class="code">--enable-checking=<var class="var">list</var></code></dt>
  <dd><p>This option controls performing internal consistency checks in the compiler.
  It does not change the generated code, but adds error checking of the
  requested complexity.  This slows down the compiler and may only work
  properly if you are building the compiler with GCC.
  </p>
  <p>When the option is not specified, the active set of checks depends on context.
! Namely, bootstrap stage 1 defaults to &lsquo;<samp class="samp">--enable-checking=yes</samp>&rsquo;, builds
  from release branches or release archives default to
! &lsquo;<samp class="samp">--enable-checking=release</samp>&rsquo;, and otherwise
! &lsquo;<samp class="samp">--enable-checking=yes,extra</samp>&rsquo; is used.  When the option is
! specified without a <var class="var">list</var>, the result is the same as
! &lsquo;<samp class="samp">--enable-checking=yes</samp>&rsquo;.  Likewise, &lsquo;<samp class="samp">--disable-checking</samp>&rsquo; is
! equivalent to &lsquo;<samp class="samp">--enable-checking=no</samp>&rsquo;.
  </p>
! <p>The categories of checks available in <var class="var">list</var> are &lsquo;<samp class="samp">yes</samp>&rsquo; (most common
! checks &lsquo;<samp class="samp">assert,misc,gc,gimple,rtlflag,runtime,tree,types</samp>&rsquo;), &lsquo;<samp class="samp">no</samp>&rsquo;
! (no checks at all), &lsquo;<samp class="samp">all</samp>&rsquo; (all but &lsquo;<samp class="samp">valgrind</samp>&rsquo;), &lsquo;<samp class="samp">release</samp>&rsquo;
! (cheapest checks &lsquo;<samp class="samp">assert,runtime</samp>&rsquo;) or &lsquo;<samp class="samp">none</samp>&rsquo; (same as &lsquo;<samp class="samp">no</samp>&rsquo;).
! &lsquo;<samp class="samp">release</samp>&rsquo; checks are always on and to disable them
! &lsquo;<samp class="samp">--disable-checking</samp>&rsquo; or &lsquo;<samp class="samp">--enable-checking=no[,&lt;other checks&gt;]</samp>&rsquo;
  must be explicitly requested.  Disabling assertions makes the compiler and
  runtime slightly faster but increases the risk of undetected internal errors
  causing wrong code to be generated.
  </p>
! <p>Individual checks can be enabled with these flags: &lsquo;<samp class="samp">assert</samp>&rsquo;, &lsquo;<samp class="samp">df</samp>&rsquo;,
! &lsquo;<samp class="samp">extra</samp>&rsquo;, &lsquo;<samp class="samp">fold</samp>&rsquo;, &lsquo;<samp class="samp">gc</samp>&rsquo;, &lsquo;<samp class="samp">gcac</samp>&rsquo;, &lsquo;<samp class="samp">gimple</samp>&rsquo;,
! &lsquo;<samp class="samp">misc</samp>&rsquo;, &lsquo;<samp class="samp">rtl</samp>&rsquo;, &lsquo;<samp class="samp">rtlflag</samp>&rsquo;, &lsquo;<samp class="samp">runtime</samp>&rsquo;, &lsquo;<samp class="samp">tree</samp>&rsquo;,
! &lsquo;<samp class="samp">types</samp>&rsquo; and &lsquo;<samp class="samp">valgrind</samp>&rsquo;.  &lsquo;<samp class="samp">extra</samp>&rsquo; extends &lsquo;<samp class="samp">misc</samp>&rsquo;
  checking with extra checks that might affect code generation and should
  therefore not differ between stage1 and later stages in bootstrap.
  </p>
! <p>The &lsquo;<samp class="samp">valgrind</samp>&rsquo; check requires the external <code class="command">valgrind</code> simulator,
! available from <a class="uref" href="https://valgrind.org">https://valgrind.org</a>.  The &lsquo;<samp class="samp">rtl</samp>&rsquo; checks are
! expensive and the &lsquo;<samp class="samp">df</samp>&rsquo;, &lsquo;<samp class="samp">gcac</samp>&rsquo; and &lsquo;<samp class="samp">valgrind</samp>&rsquo; checks are very
  expensive.
  </p>
  </dd>
! <dt><code class="code">--disable-stage1-checking</code></dt>
! <dt><code class="code">--enable-stage1-checking</code></dt>
! <dt><code class="code">--enable-stage1-checking=<var class="var">list</var></code></dt>
! <dd><p>This option affects only bootstrap build.  If no <samp class="option">--enable-checking</samp>
! option is specified the stage1 compiler is built with &lsquo;<samp class="samp">yes</samp>&rsquo; checking
  enabled, otherwise the stage1 checking flags are the same as specified by
! <samp class="option">--enable-checking</samp>.  To build the stage1 compiler with
! different checking options use <samp class="option">--enable-stage1-checking</samp>.
! The list of checking options is the same as for <samp class="option">--enable-checking</samp>.
  If your system is too slow or too small to bootstrap a released compiler
! with checking for stage1 enabled, you can use &lsquo;<samp class="samp">--disable-stage1-checking</samp>&rsquo;
  to disable checking for the stage1 compiler.
  </p>
  </dd>
! <dt><code class="code">--enable-coverage</code></dt>
! <dt><code class="code">--enable-coverage=<var class="var">level</var></code></dt>
  <dd><p>With this option, the compiler is built to collect self coverage
  information, every time it is run.  This is for internal development
  purposes, and only works when the compiler is being built with gcc.  The
! <var class="var">level</var> argument controls whether the compiler is built optimized or
! not, values are &lsquo;<samp class="samp">opt</samp>&rsquo; and &lsquo;<samp class="samp">noopt</samp>&rsquo;.  For coverage analysis you
  want to disable optimization, for performance analysis you want to
  enable optimization.  When coverage is enabled, the default level is
  without optimization.
  </p>
  </dd>
! <dt><code class="code">--enable-gather-detailed-mem-stats</code></dt>
  <dd><p>When this option is specified more detailed information on memory
  allocation is gathered.  This information is printed when using
! <samp class="option">-fmem-report</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-valgrind-annotations</code></dt>
  <dd><p>Mark selected memory related operations in the compiler when run under
  valgrind to suppress false positives.
  </p>
  </dd>
! <dt><code class="code">--enable-nls</code></dt>
! <dt><code class="code">--disable-nls</code></dt>
! <dd><p>The <samp class="option">--enable-nls</samp> option enables Native Language Support (NLS),
  which lets GCC output diagnostics in languages other than American
  English.  Native Language Support is enabled by default if not doing a
! canadian cross build.  The <samp class="option">--disable-nls</samp> option disables NLS.
  </p>
  <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 class="xref" href="#with-included-gettext">&ndash;with-included-gettext</a>, for more
  information on the conditions required to get gettext support.
  </p>
  </dd>
! <dt><code class="code">--with-libintl-prefix=<var class="var">dir</var></code></dt>
! <dt><code class="code">--without-libintl-prefix</code></dt>
! <dd><p>Searches for libintl in <samp class="file"><var class="var">dir</var>/include</samp> and
! <samp class="file"><var class="var">dir</var>/lib</samp>, or disables manual searching for it, letting the
  linker handle it.
  </p>
  </dd>
! <dt><code class="code">--with-libintl-type=<var class="var">type</var></code></dt>
  <dd><p>Specifies the type of library to search for when looking for libintl.
! <var class="var">type</var> can be one of <code class="code">auto</code>, <code class="code">static</code> or <code class="code">shared</code>.
  </p>
! <a class="anchor" id="with-included-gettext"></a></dd>
! <dt><code class="code">--with-included-gettext</code></dt>
! <dd><p>Only available if <samp class="file">gettext</samp> is present in the source tree.
  </p>
  <p>Forces the gettext tree to be configured to build and use a new static
  libintl, overriding the system libintl.  Results in GCC being built
*************** against the newly built libintl rather t
*** 1829,1837 ****
  to get gettext routines from.  The following table is a summary of the
  possible options:
  </p>
! <table>
! <thead><tr><th width="12%">GNU gettext present in sources</th><th width="12%">libintl installed on the system</th><th width="12%"><code>gettext</code> present in libc</th><th width="20%"><code>--with-included-gettext</code></th><th width="44%">Effects on localization</th></tr></thead>
! <tr><td width="12%">No</td><td width="12%">No</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">No localization</td></tr>
  <tr><td width="12%">No</td><td width="12%">No</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libc gettext</td></tr>
  <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
  <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
--- 1852,1860 ----
  to get gettext routines from.  The following table is a summary of the
  possible options:
  </p>
! <table class="multitable">
! <thead><tr><th width="12%">GNU gettext present in sources</th><th width="12%">libintl installed on the system</th><th width="12%"><code class="code">gettext</code> present in libc</th><th width="20%"><code class="code">--with-included-gettext</code></th><th width="44%">Effects on localization</th></tr></thead>
! <tbody><tr><td width="12%">No</td><td width="12%">No</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">No localization</td></tr>
  <tr><td width="12%">No</td><td width="12%">No</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libc gettext</td></tr>
  <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
  <tr><td width="12%">No</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">(ignored)</td><td width="44%">Localized, libintl</td></tr>
*************** possible options:
*** 1843,1865 ****
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">No</td><td width="44%">Localized, libintl</td></tr>
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
  </table>
  
  </dd>
! <dt><code>--with-catgets</code></dt>
! <dd><p>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
! inferior <code>catgets</code> interface, the GCC build procedure normally
! ignores <code>catgets</code> and instead uses GCC&rsquo;s copy of the GNU
! <code>gettext</code> library.  The <samp>--with-catgets</samp> option causes the
! build procedure to use the host&rsquo;s <code>catgets</code> in this situation.
  </p>
  </dd>
! <dt><code>--with-libiconv-prefix=<var>dir</var></code></dt>
! <dd><p>Search for libiconv header files in <samp><var>dir</var>/include</samp> and
! libiconv library files in <samp><var>dir</var>/lib</samp>.
  </p>
  </dd>
! <dt><code>--enable-obsolete</code></dt>
  <dd><p>Enable configuration for an obsoleted system.  If you attempt to
  configure GCC for a system (build, host, or target) which has been
  obsoleted, and you do not specify this flag, configure will halt with an
--- 1866,1889 ----
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">No</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">No</td><td width="44%">Localized, libintl</td></tr>
  <tr><td width="12%">Yes</td><td width="12%">Yes</td><td width="12%">Yes</td><td width="20%">Yes</td><td width="44%">Localized, new, static libintl</td></tr>
+ </tbody>
  </table>
  
  </dd>
! <dt><code class="code">--with-catgets</code></dt>
! <dd><p>If NLS is enabled, and if the host lacks <code class="code">gettext</code> but has the
! inferior <code class="code">catgets</code> interface, the GCC build procedure normally
! ignores <code class="code">catgets</code> and instead uses GCC&rsquo;s copy of the GNU
! <code class="code">gettext</code> library.  The <samp class="option">--with-catgets</samp> option causes the
! build procedure to use the host&rsquo;s <code class="code">catgets</code> in this situation.
  </p>
  </dd>
! <dt><code class="code">--with-libiconv-prefix=<var class="var">dir</var></code></dt>
! <dd><p>Search for libiconv header files in <samp class="file"><var class="var">dir</var>/include</samp> and
! libiconv library files in <samp class="file"><var class="var">dir</var>/lib</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-obsolete</code></dt>
  <dd><p>Enable configuration for an obsoleted system.  If you attempt to
  configure GCC for a system (build, host, or target) which has been
  obsoleted, and you do not specify this flag, configure will halt with an
*************** is removed entirely in the next major re
*** 1870,1976 ****
  forward to maintain the port.
  </p>
  </dd>
! <dt><code>--enable-decimal-float</code></dt>
! <dt><code>--enable-decimal-float=yes</code></dt>
! <dt><code>--enable-decimal-float=no</code></dt>
! <dt><code>--enable-decimal-float=bid</code></dt>
! <dt><code>--enable-decimal-float=dpd</code></dt>
! <dt><code>--disable-decimal-float</code></dt>
  <dd><p>Enable (or disable) support for the C decimal floating point extension
  that is in the IEEE 754-2008 standard.  This is enabled by default
  only on AArch64, PowerPC, i386, and x86_64 GNU/Linux systems.  Other
  systems may also support it, but require the user to specifically
  enable it.  You can optionally control which decimal floating point
! format is used (either &lsquo;<samp>bid</samp>&rsquo; or &lsquo;<samp>dpd</samp>&rsquo;).  The &lsquo;<samp>bid</samp>&rsquo;
  (binary integer decimal) format is default on AArch64, i386 and x86_64
! systems, and the &lsquo;<samp>dpd</samp>&rsquo; (densely packed decimal) format is default
  on PowerPC systems.
  </p>
  </dd>
! <dt><code>--enable-fixed-point</code></dt>
! <dt><code>--disable-fixed-point</code></dt>
  <dd><p>Enable (or disable) support for C fixed-point arithmetic.
  This option is enabled by default for some targets (such as MIPS) which
  have hardware-support for fixed-point operations.  On other targets, you
  may enable this option manually.
  </p>
  </dd>
! <dt><code>--with-long-double-128</code></dt>
! <dd><p>Specify if <code>long double</code> type should be 128-bit by default on selected
! GNU/Linux architectures.  If using <code>--without-long-double-128</code>,
! <code>long double</code> will be by default 64-bit, the same as <code>double</code> type.
  When neither of these configure options are used, the default will be
! 128-bit <code>long double</code> when built against GNU C Library 2.4 and later,
! 64-bit <code>long double</code> otherwise.
  </p>
  </dd>
! <dt><code>--with-long-double-format=ibm</code></dt>
! <dt><code>--with-long-double-format=ieee</code></dt>
! <dd><p>Specify whether <code>long double</code> uses the IBM extended double format
  or the IEEE 128-bit floating point format on PowerPC Linux systems.
  This configuration switch will only work on little endian PowerPC
  Linux systems and on big endian 64-bit systems where the default cpu
! is at least power7 (i.e. <samp>--with-cpu=power7</samp>,
! <samp>--with-cpu=power8</samp>, or <samp>--with-cpu=power9</samp> is used).
  </p>
! <p>If you use the <samp>--with-long-double-64</samp> configuration option,
! the <samp>--with-long-double-format=ibm</samp> and
! <samp>--with-long-double-format=ieee</samp> options are ignored.
  </p>
! <p>The default <code>long double</code> format is to use IBM extended double.
  Until all of the libraries are converted to use IEEE 128-bit floating
  point, it is not recommended to use
! <samp>--with-long-double-format=ieee</samp>.
  </p>
  </dd>
! <dt><code>--enable-fdpic</code></dt>
  <dd><p>On SH Linux systems, generate ELF FDPIC code.
  </p>
  </dd>
! <dt><code>--with-gmp=<var>pathname</var></code></dt>
! <dt><code>--with-gmp-include=<var>pathname</var></code></dt>
! <dt><code>--with-gmp-lib=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr-include=<var>pathname</var></code></dt>
! <dt><code>--with-mpfr-lib=<var>pathname</var></code></dt>
! <dt><code>--with-mpc=<var>pathname</var></code></dt>
! <dt><code>--with-mpc-include=<var>pathname</var></code></dt>
! <dt><code>--with-mpc-lib=<var>pathname</var></code></dt>
  <dd><p>If you want to build GCC but do not have the GMP library, the MPFR
  library and/or the MPC library installed in a standard location and
  do not have their sources present in the GCC source tree then you
  can explicitly specify the directory where they are installed
! (&lsquo;<samp>--with-gmp=<var>gmpinstalldir</var></samp>&rsquo;,
! &lsquo;<samp>--with-mpfr=<var>mpfrinstalldir</var></samp>&rsquo;,
! &lsquo;<samp>--with-mpc=<var>mpcinstalldir</var></samp>&rsquo;).  The
! <samp>--with-gmp=<var>gmpinstalldir</var></samp> option is shorthand for
! <samp>--with-gmp-lib=<var>gmpinstalldir</var>/lib</samp> and
! <samp>--with-gmp-include=<var>gmpinstalldir</var>/include</samp>.  Likewise the
! <samp>--with-mpfr=<var>mpfrinstalldir</var></samp> option is shorthand for
! <samp>--with-mpfr-lib=<var>mpfrinstalldir</var>/lib</samp> and
! <samp>--with-mpfr-include=<var>mpfrinstalldir</var>/include</samp>, also the
! <samp>--with-mpc=<var>mpcinstalldir</var></samp> option is shorthand for
! <samp>--with-mpc-lib=<var>mpcinstalldir</var>/lib</samp> and
! <samp>--with-mpc-include=<var>mpcinstalldir</var>/include</samp>.  If these
  shorthand assumptions are not correct, you can use the explicit
  include and lib options directly.  You might also need to ensure the
  shared libraries can be found by the dynamic linker when building and
  using GCC, for example by setting the runtime shared library path
! variable (<code>LD_LIBRARY_PATH</code> on GNU/Linux and Solaris systems).
  </p>
  <p>These flags are applicable to the host platform only.  When building
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code>--with-isl=<var>pathname</var></code></dt>
! <dt><code>--with-isl-include=<var>pathname</var></code></dt>
! <dt><code>--with-isl-lib=<var>pathname</var></code></dt>
  <dd><p>If you do not have the isl library installed in a standard location and you
  want to build GCC, you can explicitly specify the directory where it is
! installed (&lsquo;<samp>--with-isl=<var>islinstalldir</var></samp>&rsquo;). The
! <samp>--with-isl=<var>islinstalldir</var></samp> option is shorthand for
! <samp>--with-isl-lib=<var>islinstalldir</var>/lib</samp> and
! <samp>--with-isl-include=<var>islinstalldir</var>/include</samp>. If this
  shorthand assumption is not correct, you can use the explicit
  include and lib options directly.
  </p>
--- 1894,2000 ----
  forward to maintain the port.
  </p>
  </dd>
! <dt><code class="code">--enable-decimal-float</code></dt>
! <dt><code class="code">--enable-decimal-float=yes</code></dt>
! <dt><code class="code">--enable-decimal-float=no</code></dt>
! <dt><code class="code">--enable-decimal-float=bid</code></dt>
! <dt><code class="code">--enable-decimal-float=dpd</code></dt>
! <dt><code class="code">--disable-decimal-float</code></dt>
  <dd><p>Enable (or disable) support for the C decimal floating point extension
  that is in the IEEE 754-2008 standard.  This is enabled by default
  only on AArch64, PowerPC, i386, and x86_64 GNU/Linux systems.  Other
  systems may also support it, but require the user to specifically
  enable it.  You can optionally control which decimal floating point
! format is used (either &lsquo;<samp class="samp">bid</samp>&rsquo; or &lsquo;<samp class="samp">dpd</samp>&rsquo;).  The &lsquo;<samp class="samp">bid</samp>&rsquo;
  (binary integer decimal) format is default on AArch64, i386 and x86_64
! systems, and the &lsquo;<samp class="samp">dpd</samp>&rsquo; (densely packed decimal) format is default
  on PowerPC systems.
  </p>
  </dd>
! <dt><code class="code">--enable-fixed-point</code></dt>
! <dt><code class="code">--disable-fixed-point</code></dt>
  <dd><p>Enable (or disable) support for C fixed-point arithmetic.
  This option is enabled by default for some targets (such as MIPS) which
  have hardware-support for fixed-point operations.  On other targets, you
  may enable this option manually.
  </p>
  </dd>
! <dt><code class="code">--with-long-double-128</code></dt>
! <dd><p>Specify if <code class="code">long double</code> type should be 128-bit by default on selected
! GNU/Linux architectures.  If using <code class="code">--without-long-double-128</code>,
! <code class="code">long double</code> will be by default 64-bit, the same as <code class="code">double</code> type.
  When neither of these configure options are used, the default will be
! 128-bit <code class="code">long double</code> when built against GNU C Library 2.4 and later,
! 64-bit <code class="code">long double</code> otherwise.
  </p>
  </dd>
! <dt><code class="code">--with-long-double-format=ibm</code></dt>
! <dt><code class="code">--with-long-double-format=ieee</code></dt>
! <dd><p>Specify whether <code class="code">long double</code> uses the IBM extended double format
  or the IEEE 128-bit floating point format on PowerPC Linux systems.
  This configuration switch will only work on little endian PowerPC
  Linux systems and on big endian 64-bit systems where the default cpu
! is at least power7 (i.e. <samp class="option">--with-cpu=power7</samp>,
! <samp class="option">--with-cpu=power8</samp>, or <samp class="option">--with-cpu=power9</samp> is used).
  </p>
! <p>If you use the <samp class="option">--with-long-double-64</samp> configuration option,
! the <samp class="option">--with-long-double-format=ibm</samp> and
! <samp class="option">--with-long-double-format=ieee</samp> options are ignored.
  </p>
! <p>The default <code class="code">long double</code> format is to use IBM extended double.
  Until all of the libraries are converted to use IEEE 128-bit floating
  point, it is not recommended to use
! <samp class="option">--with-long-double-format=ieee</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-fdpic</code></dt>
  <dd><p>On SH Linux systems, generate ELF FDPIC code.
  </p>
  </dd>
! <dt><code class="code">--with-gmp=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-gmp-include=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-gmp-lib=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpfr=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpfr-include=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpfr-lib=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpc=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpc-include=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-mpc-lib=<var class="var">pathname</var></code></dt>
  <dd><p>If you want to build GCC but do not have the GMP library, the MPFR
  library and/or the MPC library installed in a standard location and
  do not have their sources present in the GCC source tree then you
  can explicitly specify the directory where they are installed
! (&lsquo;<samp class="samp">--with-gmp=<var class="var">gmpinstalldir</var></samp>&rsquo;,
! &lsquo;<samp class="samp">--with-mpfr=<var class="var">mpfrinstalldir</var></samp>&rsquo;,
! &lsquo;<samp class="samp">--with-mpc=<var class="var">mpcinstalldir</var></samp>&rsquo;).  The
! <samp class="option">--with-gmp=<var class="var">gmpinstalldir</var></samp> option is shorthand for
! <samp class="option">--with-gmp-lib=<var class="var">gmpinstalldir</var>/lib</samp> and
! <samp class="option">--with-gmp-include=<var class="var">gmpinstalldir</var>/include</samp>.  Likewise the
! <samp class="option">--with-mpfr=<var class="var">mpfrinstalldir</var></samp> option is shorthand for
! <samp class="option">--with-mpfr-lib=<var class="var">mpfrinstalldir</var>/lib</samp> and
! <samp class="option">--with-mpfr-include=<var class="var">mpfrinstalldir</var>/include</samp>, also the
! <samp class="option">--with-mpc=<var class="var">mpcinstalldir</var></samp> option is shorthand for
! <samp class="option">--with-mpc-lib=<var class="var">mpcinstalldir</var>/lib</samp> and
! <samp class="option">--with-mpc-include=<var class="var">mpcinstalldir</var>/include</samp>.  If these
  shorthand assumptions are not correct, you can use the explicit
  include and lib options directly.  You might also need to ensure the
  shared libraries can be found by the dynamic linker when building and
  using GCC, for example by setting the runtime shared library path
! variable (<code class="env">LD_LIBRARY_PATH</code> on GNU/Linux and Solaris systems).
  </p>
  <p>These flags are applicable to the host platform only.  When building
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code class="code">--with-isl=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-isl-include=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-isl-lib=<var class="var">pathname</var></code></dt>
  <dd><p>If you do not have the isl library installed in a standard location and you
  want to build GCC, you can explicitly specify the directory where it is
! installed (&lsquo;<samp class="samp">--with-isl=<var class="var">islinstalldir</var></samp>&rsquo;). The
! <samp class="option">--with-isl=<var class="var">islinstalldir</var></samp> option is shorthand for
! <samp class="option">--with-isl-lib=<var class="var">islinstalldir</var>/lib</samp> and
! <samp class="option">--with-isl-include=<var class="var">islinstalldir</var>/include</samp>. If this
  shorthand assumption is not correct, you can use the explicit
  include and lib options directly.
  </p>
*************** include and lib options directly.
*** 1978,2104 ****
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code>--with-stage1-ldflags=<var>flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 1 of GCC.  These are also used when linking GCC if configured with
! <samp>--disable-bootstrap</samp>.  If <samp>--with-stage1-libs</samp> is not set to a
! value, then the default is &lsquo;<samp>-static-libstdc++ -static-libgcc</samp>&rsquo;, if
  supported.
  </p>
  </dd>
! <dt><code>--with-stage1-libs=<var>libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 1
  of GCC.  These are also used when linking GCC if configured with
! <samp>--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code>--with-boot-ldflags=<var>flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 2 and later when bootstrapping GCC.  If &ndash;with-boot-libs
  is not is set to a value, then the default is
! &lsquo;<samp>-static-libstdc++ -static-libgcc</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-boot-libs=<var>libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 2
  and later when bootstrapping GCC.
  </p>
  </dd>
! <dt><code>--with-debug-prefix-map=<var>map</var></code></dt>
! <dd><p>Convert source directory names using <samp>-fdebug-prefix-map</samp> when
! building runtime libraries.  &lsquo;<samp><var>map</var></samp>&rsquo; is a space-separated
! list of maps of the form &lsquo;<samp><var>old</var>=<var>new</var></samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--enable-linker-build-id</code></dt>
! <dd><p>Tells GCC to pass <samp>--build-id</samp> option to the linker for all final
! links (links performed without the <samp>-r</samp> or <samp>--relocatable</samp>
  option), if the linker supports it.  If you specify
! <samp>--enable-linker-build-id</samp>, but your linker does not
! support <samp>--build-id</samp> option, a warning is issued and the
! <samp>--enable-linker-build-id</samp> option is ignored.  The default is off.
  </p>
  </dd>
! <dt><code>--with-linker-hash-style=<var>choice</var></code></dt>
! <dd><p>Tells GCC to pass <samp>--hash-style=<var>choice</var></samp> option to the
! linker for all final links. <var>choice</var> can be one of
! &lsquo;<samp>sysv</samp>&rsquo;, &lsquo;<samp>gnu</samp>&rsquo;, and &lsquo;<samp>both</samp>&rsquo; where &lsquo;<samp>sysv</samp>&rsquo; is the default.
  </p>
  </dd>
! <dt><code>--enable-gnu-unique-object</code></dt>
! <dt><code>--disable-gnu-unique-object</code></dt>
  <dd><p>Tells GCC to use the gnu_unique_object relocation for C++ template
  static data members and inline function local statics.  Enabled by
  default for a toolchain with an assembler that accepts it and
  GLIBC 2.11 or above, otherwise disabled.
  </p>
  </dd>
! <dt><code>--with-diagnostics-color=<var>choice</var></code></dt>
! <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-color=</samp>
! option (if not used explicitly on the command line).  <var>choice</var>
! can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
! where &lsquo;<samp>auto</samp>&rsquo; is the default.  &lsquo;<samp>auto-if-env</samp>&rsquo; makes
! <samp>-fdiagnostics-color=auto</samp> the default if <code>GCC_COLORS</code>
  is present and non-empty in the environment of the compiler, and
! <samp>-fdiagnostics-color=never</samp> otherwise.
  </p>
  </dd>
! <dt><code>--with-diagnostics-urls=<var>choice</var></code></dt>
! <dd><p>Tells GCC to use <var>choice</var> as the default for <samp>-fdiagnostics-urls=</samp>
! option (if not used explicitly on the command line).  <var>choice</var>
! can be one of &lsquo;<samp>never</samp>&rsquo;, &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>always</samp>&rsquo;, and &lsquo;<samp>auto-if-env</samp>&rsquo;
! where &lsquo;<samp>auto</samp>&rsquo; is the default.  &lsquo;<samp>auto-if-env</samp>&rsquo; makes
! <samp>-fdiagnostics-urls=auto</samp> the default if <code>GCC_URLS</code>
! or <code>TERM_URLS</code> is present and non-empty in the environment of the
! compiler, and <samp>-fdiagnostics-urls=never</samp> otherwise.
  </p>
  </dd>
! <dt><code>--enable-lto</code></dt>
! <dt><code>--disable-lto</code></dt>
  <dd><p>Enable support for link-time optimization (LTO).  This is enabled by
! default, and may be disabled using <samp>--disable-lto</samp>.
  </p>
  </dd>
! <dt><code>--enable-linker-plugin-configure-flags=FLAGS</code></dt>
! <dt><code>--enable-linker-plugin-flags=FLAGS</code></dt>
  <dd><p>By default, linker plugins (such as the LTO plugin) are built for the
  host system architecture.  For the case that the linker has a
  different (but run-time compatible) architecture, these flags can be
  specified to build plugins that are compatible to the linker.  For
  example, if you are building GCC for a 64-bit x86_64
! (&lsquo;<samp>x86_64-pc-linux-gnu</samp>&rsquo;) host system, but have a 32-bit x86
! GNU/Linux (&lsquo;<samp>i686-pc-linux-gnu</samp>&rsquo;) linker executable (which is
  executable on the former system), you can configure GCC as follows for
  getting compatible linker plugins:
  </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure \
      --host=x86_64-pc-linux-gnu \
      --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
      --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
  </pre></div>
  
  </dd>
! <dt><code>--with-plugin-ld=<var>pathname</var></code></dt>
  <dd><p>Enable an alternate linker to be used at link-time optimization (LTO)
! link time when <samp>-fuse-linker-plugin</samp> is enabled.
  This linker should have plugin support such as gold starting with
  version 2.20 or GNU ld starting with version 2.21.
! See <samp>-fuse-linker-plugin</samp> for details.
  </p>
  </dd>
! <dt><code>--enable-canonical-system-headers</code></dt>
! <dt><code>--disable-canonical-system-headers</code></dt>
! <dd><p>Enable system header path canonicalization for <samp>libcpp</samp>.  This can
  produce shorter header file paths in diagnostics and dependency output
  files, but these changed header paths may conflict with some compilation
  environments.  Enabled by default, and may be disabled using
! <samp>--disable-canonical-system-headers</samp>.
  </p>
  </dd>
! <dt><code>--with-glibc-version=<var>major</var>.<var>minor</var></code></dt>
  <dd><p>Tell GCC that when the GNU C Library (glibc) is used on the target it
! will be version <var>major</var>.<var>minor</var> or later.  Normally this can
  be detected from the C library&rsquo;s header files, but this option may be
  needed when bootstrapping a cross toolchain without the header files
  available for building the initial bootstrap compiler.
--- 2002,2128 ----
  a cross compiler, they will not be used to configure target libraries.
  </p>
  </dd>
! <dt><code class="code">--with-stage1-ldflags=<var class="var">flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 1 of GCC.  These are also used when linking GCC if configured with
! <samp class="option">--disable-bootstrap</samp>.  If <samp class="option">--with-stage1-libs</samp> is not set to a
! value, then the default is &lsquo;<samp class="samp">-static-libstdc++ -static-libgcc</samp>&rsquo;, if
  supported.
  </p>
  </dd>
! <dt><code class="code">--with-stage1-libs=<var class="var">libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 1
  of GCC.  These are also used when linking GCC if configured with
! <samp class="option">--disable-bootstrap</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-boot-ldflags=<var class="var">flags</var></code></dt>
  <dd><p>This option may be used to set linker flags to be used when linking
  stage 2 and later when bootstrapping GCC.  If &ndash;with-boot-libs
  is not is set to a value, then the default is
! &lsquo;<samp class="samp">-static-libstdc++ -static-libgcc</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--with-boot-libs=<var class="var">libs</var></code></dt>
  <dd><p>This option may be used to set libraries to be used when linking stage 2
  and later when bootstrapping GCC.
  </p>
  </dd>
! <dt><code class="code">--with-debug-prefix-map=<var class="var">map</var></code></dt>
! <dd><p>Convert source directory names using <samp class="option">-fdebug-prefix-map</samp> when
! building runtime libraries.  &lsquo;<samp class="samp"><var class="var">map</var></samp>&rsquo; is a space-separated
! list of maps of the form &lsquo;<samp class="samp"><var class="var">old</var>=<var class="var">new</var></samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--enable-linker-build-id</code></dt>
! <dd><p>Tells GCC to pass <samp class="option">--build-id</samp> option to the linker for all final
! links (links performed without the <samp class="option">-r</samp> or <samp class="option">--relocatable</samp>
  option), if the linker supports it.  If you specify
! <samp class="option">--enable-linker-build-id</samp>, but your linker does not
! support <samp class="option">--build-id</samp> option, a warning is issued and the
! <samp class="option">--enable-linker-build-id</samp> option is ignored.  The default is off.
  </p>
  </dd>
! <dt><code class="code">--with-linker-hash-style=<var class="var">choice</var></code></dt>
! <dd><p>Tells GCC to pass <samp class="option">--hash-style=<var class="var">choice</var></samp> option to the
! linker for all final links. <var class="var">choice</var> can be one of
! &lsquo;<samp class="samp">sysv</samp>&rsquo;, &lsquo;<samp class="samp">gnu</samp>&rsquo;, and &lsquo;<samp class="samp">both</samp>&rsquo; where &lsquo;<samp class="samp">sysv</samp>&rsquo; is the default.
  </p>
  </dd>
! <dt><code class="code">--enable-gnu-unique-object</code></dt>
! <dt><code class="code">--disable-gnu-unique-object</code></dt>
  <dd><p>Tells GCC to use the gnu_unique_object relocation for C++ template
  static data members and inline function local statics.  Enabled by
  default for a toolchain with an assembler that accepts it and
  GLIBC 2.11 or above, otherwise disabled.
  </p>
  </dd>
! <dt><code class="code">--with-diagnostics-color=<var class="var">choice</var></code></dt>
! <dd><p>Tells GCC to use <var class="var">choice</var> as the default for <samp class="option">-fdiagnostics-color=</samp>
! option (if not used explicitly on the command line).  <var class="var">choice</var>
! can be one of &lsquo;<samp class="samp">never</samp>&rsquo;, &lsquo;<samp class="samp">auto</samp>&rsquo;, &lsquo;<samp class="samp">always</samp>&rsquo;, and &lsquo;<samp class="samp">auto-if-env</samp>&rsquo;
! where &lsquo;<samp class="samp">auto</samp>&rsquo; is the default.  &lsquo;<samp class="samp">auto-if-env</samp>&rsquo; makes
! <samp class="option">-fdiagnostics-color=auto</samp> the default if <code class="env">GCC_COLORS</code>
  is present and non-empty in the environment of the compiler, and
! <samp class="option">-fdiagnostics-color=never</samp> otherwise.
  </p>
  </dd>
! <dt><code class="code">--with-diagnostics-urls=<var class="var">choice</var></code></dt>
! <dd><p>Tells GCC to use <var class="var">choice</var> as the default for <samp class="option">-fdiagnostics-urls=</samp>
! option (if not used explicitly on the command line).  <var class="var">choice</var>
! can be one of &lsquo;<samp class="samp">never</samp>&rsquo;, &lsquo;<samp class="samp">auto</samp>&rsquo;, &lsquo;<samp class="samp">always</samp>&rsquo;, and &lsquo;<samp class="samp">auto-if-env</samp>&rsquo;
! where &lsquo;<samp class="samp">auto</samp>&rsquo; is the default.  &lsquo;<samp class="samp">auto-if-env</samp>&rsquo; makes
! <samp class="option">-fdiagnostics-urls=auto</samp> the default if <code class="env">GCC_URLS</code>
! or <code class="env">TERM_URLS</code> is present and non-empty in the environment of the
! compiler, and <samp class="option">-fdiagnostics-urls=never</samp> otherwise.
  </p>
  </dd>
! <dt><code class="code">--enable-lto</code></dt>
! <dt><code class="code">--disable-lto</code></dt>
  <dd><p>Enable support for link-time optimization (LTO).  This is enabled by
! default, and may be disabled using <samp class="option">--disable-lto</samp>.
  </p>
  </dd>
! <dt><code class="code">--enable-linker-plugin-configure-flags=FLAGS</code></dt>
! <dt><code class="code">--enable-linker-plugin-flags=FLAGS</code></dt>
  <dd><p>By default, linker plugins (such as the LTO plugin) are built for the
  host system architecture.  For the case that the linker has a
  different (but run-time compatible) architecture, these flags can be
  specified to build plugins that are compatible to the linker.  For
  example, if you are building GCC for a 64-bit x86_64
! (&lsquo;<samp class="samp">x86_64-pc-linux-gnu</samp>&rsquo;) host system, but have a 32-bit x86
! GNU/Linux (&lsquo;<samp class="samp">i686-pc-linux-gnu</samp>&rsquo;) linker executable (which is
  executable on the former system), you can configure GCC as follows for
  getting compatible linker plugins:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">% <var class="var">srcdir</var>/configure \
      --host=x86_64-pc-linux-gnu \
      --enable-linker-plugin-configure-flags=--host=i686-pc-linux-gnu \
      --enable-linker-plugin-flags='CC=gcc\ -m32\ -Wl,-rpath,[...]/i686-pc-linux-gnu/lib'
  </pre></div>
  
  </dd>
! <dt><code class="code">--with-plugin-ld=<var class="var">pathname</var></code></dt>
  <dd><p>Enable an alternate linker to be used at link-time optimization (LTO)
! link time when <samp class="option">-fuse-linker-plugin</samp> is enabled.
  This linker should have plugin support such as gold starting with
  version 2.20 or GNU ld starting with version 2.21.
! See <samp class="option">-fuse-linker-plugin</samp> for details.
  </p>
  </dd>
! <dt><code class="code">--enable-canonical-system-headers</code></dt>
! <dt><code class="code">--disable-canonical-system-headers</code></dt>
! <dd><p>Enable system header path canonicalization for <samp class="file">libcpp</samp>.  This can
  produce shorter header file paths in diagnostics and dependency output
  files, but these changed header paths may conflict with some compilation
  environments.  Enabled by default, and may be disabled using
! <samp class="option">--disable-canonical-system-headers</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-glibc-version=<var class="var">major</var>.<var class="var">minor</var></code></dt>
  <dd><p>Tell GCC that when the GNU C Library (glibc) is used on the target it
! will be version <var class="var">major</var>.<var class="var">minor</var> or later.  Normally this can
  be detected from the C library&rsquo;s header files, but this option may be
  needed when bootstrapping a cross toolchain without the header files
  available for building the initial bootstrap compiler.
*************** However, such configurations may not wor
*** 2109,2131 ****
  configuration in GCC is on a per-multilib basis.
  </p>
  </dd>
! <dt><code>--enable-as-accelerator-for=<var>target</var></code></dt>
! <dd><p>Build as offload target compiler. Specify offload host triple by <var>target</var>.
  </p>
  </dd>
! <dt><code>--enable-offload-targets=<var>target1</var>[=<var>path1</var>],&hellip;,<var>targetN</var>[=<var>pathN</var>]</code></dt>
! <dd><p>Enable offloading to targets <var>target1</var>, &hellip;, <var>targetN</var>.
  Offload compilers are expected to be already installed.  Default search
! path for them is <samp><var>exec-prefix</var></samp>, but it can be changed by
! specifying paths <var>path1</var>, &hellip;, <var>pathN</var>.
  </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure \
      --enable-offload-targets=amdgcn-amdhsa,nvptx-none
  </pre></div>
  
  </dd>
! <dt><code>--enable-offload-defaulted</code></dt>
  <dd>
  <p>Tell GCC that configured but not installed offload compilers and libgomp
  plugins are silently ignored.  Useful for distribution compilers where
--- 2133,2155 ----
  configuration in GCC is on a per-multilib basis.
  </p>
  </dd>
! <dt><code class="code">--enable-as-accelerator-for=<var class="var">target</var></code></dt>
! <dd><p>Build as offload target compiler. Specify offload host triple by <var class="var">target</var>.
  </p>
  </dd>
! <dt><code class="code">--enable-offload-targets=<var class="var">target1</var>[=<var class="var">path1</var>],&hellip;,<var class="var">targetN</var>[=<var class="var">pathN</var>]</code></dt>
! <dd><p>Enable offloading to targets <var class="var">target1</var>, &hellip;, <var class="var">targetN</var>.
  Offload compilers are expected to be already installed.  Default search
! path for them is <samp class="file"><var class="var">exec-prefix</var></samp>, but it can be changed by
! specifying paths <var class="var">path1</var>, &hellip;, <var class="var">pathN</var>.
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">% <var class="var">srcdir</var>/configure \
      --enable-offload-targets=amdgcn-amdhsa,nvptx-none
  </pre></div>
  
  </dd>
! <dt><code class="code">--enable-offload-defaulted</code></dt>
  <dd>
  <p>Tell GCC that configured but not installed offload compilers and libgomp
  plugins are silently ignored.  Useful for distribution compilers where
*************** of those optional packages should determ
*** 2134,2154 ****
  target set rather than the GCC configure-time selection.
  </p>
  </dd>
! <dt><code>--enable-cet</code></dt>
! <dt><code>--disable-cet</code></dt>
  <dd><p>Enable building target run-time libraries with control-flow
! instrumentation, see <samp>-fcf-protection</samp> option.  When
! <code>--enable-cet</code> is specified target libraries are configured
! to add <samp>-fcf-protection</samp> and, if needed, other target
  specific options to a set of building options.
  </p>
! <p><code>--enable-cet=auto</code> is default.  CET is enabled on Linux/x86 if
! target binutils supports <code>Intel CET</code> instructions and disabled
  otherwise.  In this case, the target libraries are configured to get
! additional <samp>-fcf-protection</samp> option.
  </p>
  </dd>
! <dt><code>--with-riscv-attribute=&lsquo;<samp>yes</samp>&rsquo;, &lsquo;<samp>no</samp>&rsquo; or &lsquo;<samp>default</samp>&rsquo;</code></dt>
  <dd><p>Generate RISC-V attribute by default, in order to record extra build
  information in object.
  </p>
--- 2158,2190 ----
  target set rather than the GCC configure-time selection.
  </p>
  </dd>
! <dt><code class="code">--enable-cet</code></dt>
! <dt><code class="code">--disable-cet</code></dt>
  <dd><p>Enable building target run-time libraries with control-flow
! instrumentation, see <samp class="option">-fcf-protection</samp> option.  When
! <code class="code">--enable-cet</code> is specified target libraries are configured
! to add <samp class="option">-fcf-protection</samp> and, if needed, other target
  specific options to a set of building options.
  </p>
! <p><code class="code">--enable-cet=auto</code> is default.  CET is enabled on Linux/x86 if
! target binutils supports <code class="code">Intel CET</code> instructions and disabled
  otherwise.  In this case, the target libraries are configured to get
! additional <samp class="option">-fcf-protection</samp> option.
  </p>
  </dd>
! <dt><code class="code">--enable-x86-64-mfentry</code></dt>
! <dt><code class="code">--disable-x86-64-mfentry</code></dt>
! <dd><p>Enable <samp class="option">-mfentry</samp> by default on x86-64 to put the profiling
! counter call, <code class="code">__fentry__</code>, before the prologue so that <samp class="option">-pg</samp>
! can be used with <samp class="option">-fshrink-wrap</samp> which is enabled at <samp class="option">-O1</samp>.
! This configure option is 64-bit only because <code class="code">__fentry__</code> doesn&rsquo;t
! support PIC in 32-bit mode.
! </p>
! <p><samp class="option">--enable-x86-64-mfentry=auto</samp> is default.  <samp class="option">-mfentry</samp> is
! enabled on Linux/x86-64 by default.
! </p>
! </dd>
! <dt><code class="code">--with-riscv-attribute=&lsquo;<samp class="samp">yes</samp>&rsquo;, &lsquo;<samp class="samp">no</samp>&rsquo; or &lsquo;<samp class="samp">default</samp>&rsquo;</code></dt>
  <dd><p>Generate RISC-V attribute by default, in order to record extra build
  information in object.
  </p>
*************** information in object.
*** 2156,2166 ****
  target if target binutils supported.
  </p>
  </dd>
! <dt><code>--enable-s390-excess-float-precision</code></dt>
! <dt><code>--disable-s390-excess-float-precision</code></dt>
  <dd><p>On s390(x) targets, enable treatment of float expressions with double precision
! when in standards-compliant mode (e.g., when <code>--std=c99</code> or
! <code>-fexcess-precision=standard</code> are given).
  </p>
  <p>For a native build and cross compiles that have target headers, the option&rsquo;s
  default is derived from glibc&rsquo;s behavior. When glibc clamps float_t to double,
--- 2192,2202 ----
  target if target binutils supported.
  </p>
  </dd>
! <dt><code class="code">--enable-s390-excess-float-precision</code></dt>
! <dt><code class="code">--disable-s390-excess-float-precision</code></dt>
  <dd><p>On s390(x) targets, enable treatment of float expressions with double precision
! when in standards-compliant mode (e.g., when <code class="code">--std=c99</code> or
! <code class="code">-fexcess-precision=standard</code> are given).
  </p>
  <p>For a native build and cross compiles that have target headers, the option&rsquo;s
  default is derived from glibc&rsquo;s behavior. When glibc clamps float_t to double,
*************** GCC follows and enables the option. For
*** 2168,2182 ****
  disabled.
  </p>
  </dd>
! <dt><code>--with-zstd=<var>pathname</var></code></dt>
! <dt><code>--with-zstd-include=<var>pathname</var></code></dt>
! <dt><code>--with-zstd-lib=<var>pathname</var></code></dt>
! <dd><p>If you do not have the <code>zstd</code> library installed in a standard
  location and you want to build GCC, you can explicitly specify the
! directory where it is installed (&lsquo;<samp>--with-zstd=<var>zstdinstalldir</var></samp>&rsquo;).
! The <samp>--with-zstd=<var>zstdinstalldir</var></samp> option is shorthand for
! <samp>--with-zstd-lib=<var>zstdinstalldir</var>/lib</samp> and
! <samp>--with-zstd-include=<var>zstdinstalldir</var>/include</samp>. If this
  shorthand assumption is not correct, you can use the explicit
  include and lib options directly.
  </p>
--- 2204,2218 ----
  disabled.
  </p>
  </dd>
! <dt><code class="code">--with-zstd=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-zstd-include=<var class="var">pathname</var></code></dt>
! <dt><code class="code">--with-zstd-lib=<var class="var">pathname</var></code></dt>
! <dd><p>If you do not have the <code class="code">zstd</code> library installed in a standard
  location and you want to build GCC, you can explicitly specify the
! directory where it is installed (&lsquo;<samp class="samp">--with-zstd=<var class="var">zstdinstalldir</var></samp>&rsquo;).
! The <samp class="option">--with-zstd=<var class="var">zstdinstalldir</var></samp> option is shorthand for
! <samp class="option">--with-zstd-lib=<var class="var">zstdinstalldir</var>/lib</samp> and
! <samp class="option">--with-zstd-include=<var class="var">zstdinstalldir</var>/include</samp>. If this
  shorthand assumption is not correct, you can use the explicit
  include and lib options directly.
  </p>
*************** a cross compiler, they will not be used
*** 2185,2491 ****
  </p></dd>
  </dl>
  
! <a name="Cross-Compiler-Specific-Options"></a>
! <h4 class="subheading">Cross-Compiler-Specific Options</h4>
  <p>The following options only apply to building cross compilers.
  </p>
! <dl compact="compact">
! <dt><code>--with-toolexeclibdir=<var>dir</var></code></dt>
  <dd><p>Specify the installation directory for libraries built with a cross compiler.
! The default is <samp>${gcc_tooldir}/lib</samp>.
  </p>
  </dd>
! <dt><code>--with-sysroot</code></dt>
! <dt><code>--with-sysroot=<var>dir</var></code></dt>
! <dd><p>Tells GCC to consider <var>dir</var> as the root of a tree that contains
  (a subset of) the root filesystem of the target operating system.
  Target system headers, libraries and run-time object files will be
  searched for in there.  More specifically, this acts as if
! <samp>--sysroot=<var>dir</var></samp> was added to the default options of the built
  compiler.  The specified directory is not copied into the
! install tree, unlike the options <samp>--with-headers</samp> and
! <samp>--with-libs</samp> that this option obsoletes.  The default value,
! in case <samp>--with-sysroot</samp> is not given an argument, is
! <samp>${gcc_tooldir}/sys-root</samp>.  If the specified directory is a
! subdirectory of <samp>${exec_prefix}</samp>, then it will be found relative to
  the GCC binaries if the installation tree is moved.
  </p>
  <p>This option affects the system root for the compiler used to build
  target libraries (which runs on the build system) and the compiler newly
! installed with <code>make install</code>; it does not affect the compiler which is
  used to build GCC itself.
  </p>
! <p>If you specify the <samp>--with-native-system-header-dir=<var>dirname</var></samp>
! option then the compiler will search that directory within <var>dirname</var> for
! native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><code>--with-build-sysroot</code></dt>
! <dt><code>--with-build-sysroot=<var>dir</var></code></dt>
! <dd><p>Tells GCC to consider <var>dir</var> as the system root (see
! <samp>--with-sysroot</samp>) while building target libraries, instead of
! the directory specified with <samp>--with-sysroot</samp>.  This option is
! only useful when you are already using <samp>--with-sysroot</samp>.  You
! can use <samp>--with-build-sysroot</samp> when you are configuring with
! <samp>--prefix</samp> set to a directory that is different from the one in
  which you are installing GCC and your target libraries.
  </p>
  <p>This option affects the system root for the compiler used to build
  target libraries (which runs on the build system); it does not affect
  the compiler which is used to build GCC itself.
  </p>
! <p>If you specify the <samp>--with-native-system-header-dir=<var>dirname</var></samp>
! option then the compiler will search that directory within <var>dirname</var> for
! native system headers rather than the default <samp>/usr/include</samp>.
  </p>
  </dd>
! <dt><code>--with-headers</code></dt>
! <dt><code>--with-headers=<var>dir</var></code></dt>
! <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies that target headers are available when building a cross compiler.
! The <var>dir</var> argument specifies a directory which has the target include
! files.  These include files will be copied into the <samp>gcc</samp> install
! directory.  <em>This option with the <var>dir</var> argument is required</em> when
! building a cross compiler, if <samp><var>prefix</var>/<var>target</var>/sys-include</samp>
! doesn&rsquo;t pre-exist.  If <samp><var>prefix</var>/<var>target</var>/sys-include</samp> does
! pre-exist, the <var>dir</var> argument may be omitted.  <code>fixincludes</code>
  will be run on these files to make them compatible with GCC.
  </p>
  </dd>
! <dt><code>--without-headers</code></dt>
  <dd><p>Tells GCC not use any target headers from a libc when building a cross
  compiler.  When crossing to GNU/Linux, you need the headers so GCC
  can build the exception handling for libgcc.
  </p>
  </dd>
! <dt><code>--with-libs</code></dt>
! <dt><code>--with-libs=&quot;<var>dir1</var> <var>dir2</var> &hellip; <var>dirN</var>&quot;</code></dt>
! <dd><p>Deprecated in favor of <samp>--with-sysroot</samp>.
  Specifies a list of directories which contain the target runtime
! libraries.  These libraries will be copied into the <samp>gcc</samp> install
  directory.  If the directory list is omitted, this option has no
  effect.
  </p>
  </dd>
! <dt><code>--with-newlib</code></dt>
! <dd><p>Specifies that &lsquo;<samp>newlib</samp>&rsquo; is
! being used as the target C library.  This causes <code>__eprintf</code> to be
! omitted from <samp>libgcc.a</samp> on the assumption that it will be provided by
! &lsquo;<samp>newlib</samp>&rsquo;.
  </p>
  <a name="avr"></a>
  </dd>
! <dt><code>--with-avrlibc</code></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>
! <dt><code>--with-double={32|64|32,64|64,32}</code></dt>
! <dt><code>--with-long-double={32|64|32,64|64,32|double}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
! Specify the default layout available for the C/C++ &lsquo;<samp>double</samp>&rsquo;
! and &lsquo;<samp>long double</samp>&rsquo; type, respectively. The following rules apply:
! </p><ul>
! <li> The first value after the &lsquo;<samp>=</samp>&rsquo; specifies the default layout (in bits)
! of the type and also the default for the <samp>-mdouble=</samp> resp.
! <samp>-mlong-double=</samp> compiler option.
! </li><li> If more than one value is specified, respective multilib variants are
! available, and  <samp>-mdouble=</samp> resp. <samp>-mlong-double=</samp> acts
  as a multilib option.
! </li><li> If <samp>--with-long-double=double</samp> is specified, &lsquo;<samp>double</samp>&rsquo; and
! &lsquo;<samp>long double</samp>&rsquo; will have the same layout.
! </li><li> The defaults are <samp>--with-long-double=64,32</samp> and
! <samp>--with-double=32,64</samp>.  The default &lsquo;<samp>double</samp>&rsquo; layout imposed by
  the latter is compatible with older versions of the compiler that implement
! &lsquo;<samp>double</samp>&rsquo; as a 32-bit type, which does not comply to the language standard.
  </li></ul>
! <p>Not all combinations of <samp>--with-double=</samp> and
! <samp>--with-long-double=</samp> are valid.  For example, the combination
! <samp>--with-double=32,64</samp> <samp>--with-long-double=32</samp> will be
  rejected because the first option specifies the availability of
! multilibs for &lsquo;<samp>double</samp>&rsquo;, whereas the second option implies
! that &lsquo;<samp>long double</samp>&rsquo; &mdash; and hence also &lsquo;<samp>double</samp>&rsquo; &mdash; is always
  32&nbsp;bits wide.
  </p>
  </dd>
! <dt><code>--with-double-comparison={tristate|bool|libf7}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify what result format is returned by library functions that
! compare 64-bit floating point values (<code>DFmode</code>).
! The GCC default is &lsquo;<samp>tristate</samp>&rsquo;.  If the floating point
! implementation returns a boolean instead, set it to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-libf7={libgcc|math|math-symbols|no}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify to which degree code from LibF7 is included in libgcc.
  LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation
! written in C and (inline) assembly. &lsquo;<samp>libgcc</samp>&rsquo; adds support
  for functions that one would usually expect in libgcc like double addition,
! double comparisons and double conversions. &lsquo;<samp>math</samp>&rsquo; also adds routines
! that one would expect in <samp>libm.a</samp>, but with <code>__</code> (two underscores)
! prepended to the symbol names as specified by <samp>math.h</samp>.
! &lsquo;<samp>math-symbols</samp>&rsquo; also defines weak aliases for the functions
! declared in <samp>math.h</samp>.  However, <code>--with-libf7</code> won&rsquo;t
! install no <samp>math.h</samp> header file whatsoever, this file must come
! from elsewhere.  This option sets <samp>--with-double-comparison</samp>
! to &lsquo;<samp>bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-nds32-lib=<var>library</var></code></dt>
! <dd><p>Specifies that <var>library</var> setting is used for building <samp>libgcc.a</samp>.
! Currently, the valid <var>library</var> is &lsquo;<samp>newlib</samp>&rsquo; or &lsquo;<samp>mculib</samp>&rsquo;.
  This option is only supported for the NDS32 target.
  </p>
  </dd>
! <dt><code>--with-build-time-tools=<var>dir</var></code></dt>
  <dd><p>Specifies where to find the set of target tools (assembler, linker, etc.)
  that will be used while building GCC itself.  This option can be useful
  if the directory layouts are different between the system you are building
  GCC on, and the system where you will deploy it.
  </p>
! <p>For example, on an &lsquo;<samp>ia64-hp-hpux</samp>&rsquo; system, you may have the GNU
! assembler and linker in <samp>/usr/bin</samp>, and the native tools in a
  different path, and build a toolchain that expects to find the
! native tools in <samp>/usr/bin</samp>.
  </p>
! <p>When you use this option, you should ensure that <var>dir</var> includes
! <code>ar</code>, <code>as</code>, <code>ld</code>, <code>nm</code>,
! <code>ranlib</code> and <code>strip</code> if necessary, and possibly
! <code>objdump</code>.  Otherwise, GCC may use an inconsistent set of
  tools.
  </p></dd>
  </dl>
  
! <a name="Overriding-configure-test-results"></a>
! <h4 class="subsubheading">Overriding <code>configure</code> test results</h4>
  
  <p>Sometimes, it might be necessary to override the result of some
! <code>configure</code> test, for example in order to ease porting to a new
! system or work around a bug in a test.  The toplevel <code>configure</code>
  script provides three variables for this:
  </p>
! <dl compact="compact">
! <dd>
! <a name="index-build_005fconfigargs"></a>
! </dd>
! <dt><code>build_configargs</code></dt>
! <dd><p>The contents of this variable is passed to all build <code>configure</code>
  scripts.
  </p>
- <a name="index-host_005fconfigargs"></a>
  </dd>
! <dt><code>host_configargs</code></dt>
! <dd><p>The contents of this variable is passed to all host <code>configure</code>
  scripts.
  </p>
- <a name="index-target_005fconfigargs"></a>
  </dd>
! <dt><code>target_configargs</code></dt>
! <dd><p>The contents of this variable is passed to all target <code>configure</code>
  scripts.
  </p>
  </dd>
  </dl>
  
! <p>In order to avoid shell and <code>make</code> quoting issues for complex
! overrides, you can pass a setting for <code>CONFIG_SITE</code> and set
  variables in the site file.
  </p>
! <a name="Objective-C-Specific-Options"></a>
! <h4 class="subheading">Objective-C-Specific Options</h4>
  
  <p>The following options apply to the build of the Objective-C runtime library.
  </p>
! <dl compact="compact">
! <dt><code>--enable-objc-gc</code></dt>
  <dd><p>Specify that an additional variant of the GNU Objective-C runtime library
  is built, using an external build of the Boehm-Demers-Weiser garbage
! collector (<a href="https://www.hboehm.info/gc/">https://www.hboehm.info/gc/</a>).  This library needs to be
  available for each multilib variant, unless configured with
! <samp>--enable-objc-gc=&lsquo;<samp>auto</samp>&rsquo;</samp> in which case the build of the
  additional runtime library is skipped when not available and the build
  continues.
  </p>
  </dd>
! <dt><code>--with-target-bdw-gc=<var>list</var></code></dt>
! <dt><code>--with-target-bdw-gc-include=<var>list</var></code></dt>
! <dt><code>--with-target-bdw-gc-lib=<var>list</var></code></dt>
  <dd><p>Specify search directories for the garbage collector header files and
! libraries. <var>list</var> is a comma separated list of key value pairs of the
! form &lsquo;<samp><var>multilibdir</var>=<var>path</var></samp>&rsquo;, where the default multilib key
! is named as &lsquo;<samp>.</samp>&rsquo; (dot), or is omitted (e.g.
! &lsquo;<samp>--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32</samp>&rsquo;).
  </p>
! <p>The options <samp>--with-target-bdw-gc-include</samp> and
! <samp>--with-target-bdw-gc-lib</samp> must always be specified together
  for each multilib variant and they take precedence over
! <samp>--with-target-bdw-gc</samp>.  If <samp>--with-target-bdw-gc-include</samp>
  is missing values for a multilib, then the value for the default
! multilib is used (e.g. &lsquo;<samp>--with-target-bdw-gc-include=/opt/bdw-gc/include</samp>&rsquo;
! &lsquo;<samp>--with-target-bdw-gc-lib=/opt/bdw-gc/lib64,32=/opt-bdw-gc/lib32</samp>&rsquo;).
  If none of these options are specified, the library is assumed in
  default locations.
  </p></dd>
  </dl>
  
! <a name="D-Specific-Options"></a>
! <h4 class="subheading">D-Specific Options</h4>
  
  <p>The following options apply to the build of the D runtime library.
  </p>
! <dl compact="compact">
! <dt><code>--enable-libphobos-checking</code></dt>
! <dt><code>--disable-libphobos-checking</code></dt>
! <dt><code>--enable-libphobos-checking=<var>list</var></code></dt>
  <dd><p>This option controls whether run-time checks and contracts are compiled into
  the D runtime library.  When the option is not specified, the library is built
! with &lsquo;<samp>release</samp>&rsquo; checking.  When the option is specified without a
! <var>list</var>, the result is the same as &lsquo;<samp>--enable-libphobos-checking=yes</samp>&rsquo;.
! Likewise, &lsquo;<samp>--disable-libphobos-checking</samp>&rsquo; is equivalent to
! &lsquo;<samp>--enable-libphobos-checking=no</samp>&rsquo;.
  </p>
! <p>The categories of checks available in <var>list</var> are &lsquo;<samp>yes</samp>&rsquo; (compiles
! libphobos with <samp>-fno-release</samp>), &lsquo;<samp>no</samp>&rsquo; (compiles libphobos with
! <samp>-frelease</samp>), &lsquo;<samp>all</samp>&rsquo; (same as &lsquo;<samp>yes</samp>&rsquo;), &lsquo;<samp>none</samp>&rsquo; or
! &lsquo;<samp>release</samp>&rsquo; (same as &lsquo;<samp>no</samp>&rsquo;).
  </p>
! <p>Individual checks available in <var>list</var> are &lsquo;<samp>assert</samp>&rsquo; (compiles libphobos
! with an extra option <samp>-fassert</samp>).
  </p>
  </dd>
! <dt><code>--with-libphobos-druntime-only</code></dt>
! <dt><code>--with-libphobos-druntime-only=<var>choice</var></code></dt>
  <dd><p>Specify whether to build only the core D runtime library (druntime), or both
  the core and standard library (phobos) into libphobos.  This is useful for
  targets that have full support in druntime, but no or incomplete support
! in phobos.  <var>choice</var> can be one of &lsquo;<samp>auto</samp>&rsquo;, &lsquo;<samp>yes</samp>&rsquo;, and &lsquo;<samp>no</samp>&rsquo;
! where &lsquo;<samp>auto</samp>&rsquo; is the default.
  </p>
! <p>When the option is not specified, the default choice &lsquo;<samp>auto</samp>&rsquo; means that it
  is inferred whether the target has support for the phobos standard library.
! When the option is specified without a <var>choice</var>,  the result is the same as
! &lsquo;<samp>--with-libphobos-druntime-only=yes</samp>&rsquo;.
  </p>
  </dd>
! <dt><code>--with-target-system-zlib</code></dt>
! <dd><p>Use installed &lsquo;<samp>zlib</samp>&rsquo; rather than that included with GCC.  This needs
  to be available for each multilib variant, unless configured with
! <samp>--with-target-system-zlib=&lsquo;<samp>auto</samp>&rsquo;</samp> in which case the GCC&nbsp;included
! &lsquo;<samp>zlib</samp>&rsquo; is only used when the system installed library is not available.
  </p></dd>
  </dl>
  
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 2221,2581 ----
  </p></dd>
  </dl>
  
! <h4 class="subheading" id="Cross-Compiler-Specific-Options"><span>Cross-Compiler-Specific Options<a class="copiable-link" href="#Cross-Compiler-Specific-Options"> &para;</a></span></h4>
  <p>The following options only apply to building cross compilers.
  </p>
! <dl class="table">
! <dt><code class="code">--with-toolexeclibdir=<var class="var">dir</var></code></dt>
  <dd><p>Specify the installation directory for libraries built with a cross compiler.
! The default is <samp class="option">${gcc_tooldir}/lib</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-sysroot</code></dt>
! <dt><code class="code">--with-sysroot=<var class="var">dir</var></code></dt>
! <dd><p>Tells GCC to consider <var class="var">dir</var> as the root of a tree that contains
  (a subset of) the root filesystem of the target operating system.
  Target system headers, libraries and run-time object files will be
  searched for in there.  More specifically, this acts as if
! <samp class="option">--sysroot=<var class="var">dir</var></samp> was added to the default options of the built
  compiler.  The specified directory is not copied into the
! install tree, unlike the options <samp class="option">--with-headers</samp> and
! <samp class="option">--with-libs</samp> that this option obsoletes.  The default value,
! in case <samp class="option">--with-sysroot</samp> is not given an argument, is
! <samp class="option">${gcc_tooldir}/sys-root</samp>.  If the specified directory is a
! subdirectory of <samp class="option">${exec_prefix}</samp>, then it will be found relative to
  the GCC binaries if the installation tree is moved.
  </p>
  <p>This option affects the system root for the compiler used to build
  target libraries (which runs on the build system) and the compiler newly
! installed with <code class="code">make install</code>; it does not affect the compiler which is
  used to build GCC itself.
  </p>
! <p>If you specify the <samp class="option">--with-native-system-header-dir=<var class="var">dirname</var></samp>
! option then the compiler will search that directory within <var class="var">dirname</var> for
! native system headers rather than the default <samp class="file">/usr/include</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-build-sysroot</code></dt>
! <dt><code class="code">--with-build-sysroot=<var class="var">dir</var></code></dt>
! <dd><p>Tells GCC to consider <var class="var">dir</var> as the system root (see
! <samp class="option">--with-sysroot</samp>) while building target libraries, instead of
! the directory specified with <samp class="option">--with-sysroot</samp>.  This option is
! only useful when you are already using <samp class="option">--with-sysroot</samp>.  You
! can use <samp class="option">--with-build-sysroot</samp> when you are configuring with
! <samp class="option">--prefix</samp> set to a directory that is different from the one in
  which you are installing GCC and your target libraries.
  </p>
  <p>This option affects the system root for the compiler used to build
  target libraries (which runs on the build system); it does not affect
  the compiler which is used to build GCC itself.
  </p>
! <p>If you specify the <samp class="option">--with-native-system-header-dir=<var class="var">dirname</var></samp>
! option then the compiler will search that directory within <var class="var">dirname</var> for
! native system headers rather than the default <samp class="file">/usr/include</samp>.
  </p>
  </dd>
! <dt><code class="code">--with-headers</code></dt>
! <dt><code class="code">--with-headers=<var class="var">dir</var></code></dt>
! <dd><p>Deprecated in favor of <samp class="option">--with-sysroot</samp>.
  Specifies that target headers are available when building a cross compiler.
! The <var class="var">dir</var> argument specifies a directory which has the target include
! files.  These include files will be copied into the <samp class="file">gcc</samp> install
! directory.  <em class="emph">This option with the <var class="var">dir</var> argument is required</em> when
! building a cross compiler, if <samp class="file"><var class="var">prefix</var>/<var class="var">target</var>/sys-include</samp>
! doesn&rsquo;t pre-exist.  If <samp class="file"><var class="var">prefix</var>/<var class="var">target</var>/sys-include</samp> does
! pre-exist, the <var class="var">dir</var> argument may be omitted.  <code class="command">fixincludes</code>
  will be run on these files to make them compatible with GCC.
  </p>
  </dd>
! <dt><code class="code">--without-headers</code></dt>
  <dd><p>Tells GCC not use any target headers from a libc when building a cross
  compiler.  When crossing to GNU/Linux, you need the headers so GCC
  can build the exception handling for libgcc.
  </p>
  </dd>
! <dt><code class="code">--with-libs</code></dt>
! <dt><code class="code">--with-libs=&quot;<var class="var">dir1</var> <var class="var">dir2</var> &hellip; <var class="var">dirN</var>&quot;</code></dt>
! <dd><p>Deprecated in favor of <samp class="option">--with-sysroot</samp>.
  Specifies a list of directories which contain the target runtime
! libraries.  These libraries will be copied into the <samp class="file">gcc</samp> install
  directory.  If the directory list is omitted, this option has no
  effect.
  </p>
  </dd>
! <dt><code class="code">--with-newlib</code></dt>
! <dd><p>Specifies that &lsquo;<samp class="samp">newlib</samp>&rsquo; is
! being used as the target C library.  This causes <code class="code">__eprintf</code> to be
! omitted from <samp class="file">libgcc.a</samp> on the assumption that it will be provided by
! &lsquo;<samp class="samp">newlib</samp>&rsquo;.
  </p>
  <a name="avr"></a>
  </dd>
! <dt><code class="code">--with-avrlibc</code></dt>
  <dd><p>Only supported for the AVR target. Specifies that
! <a class="uref" 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 class="code">__addsf3</code> to be omitted from <samp class="file">libgcc.a</samp> on
! the assumption that it will be provided by <samp class="file">libm.a</samp>.  For more
! technical details, cf. <a class="uref" 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>
! <dt><code class="code">--with-double={32|64|32,64|64,32}</code></dt>
! <dt><code class="code">--with-long-double={32|64|32,64|64,32|double}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
! Specify the default layout available for the C/C++ &lsquo;<samp class="samp">double</samp>&rsquo;
! and &lsquo;<samp class="samp">long double</samp>&rsquo; type, respectively. The following rules apply:
! </p><ul class="itemize mark-bullet">
! <li>The first value after the &lsquo;<samp class="samp">=</samp>&rsquo; specifies the default layout (in bits)
! of the type and also the default for the <samp class="option">-mdouble=</samp> resp.
! <samp class="option">-mlong-double=</samp> compiler option.
! </li><li>If more than one value is specified, respective multilib variants are
! available, and  <samp class="option">-mdouble=</samp> resp. <samp class="option">-mlong-double=</samp> acts
  as a multilib option.
! </li><li>If <samp class="option">--with-long-double=double</samp> is specified, &lsquo;<samp class="samp">double</samp>&rsquo; and
! &lsquo;<samp class="samp">long double</samp>&rsquo; will have the same layout.
! </li><li>The defaults are <samp class="option">--with-long-double=64,32</samp> and
! <samp class="option">--with-double=32,64</samp>.  The default &lsquo;<samp class="samp">double</samp>&rsquo; layout imposed by
  the latter is compatible with older versions of the compiler that implement
! &lsquo;<samp class="samp">double</samp>&rsquo; as a 32-bit type, which does not comply to the language standard.
  </li></ul>
! <p>Not all combinations of <samp class="option">--with-double=</samp> and
! <samp class="option">--with-long-double=</samp> are valid.  For example, the combination
! <samp class="option">--with-double=32,64</samp> <samp class="option">--with-long-double=32</samp> will be
  rejected because the first option specifies the availability of
! multilibs for &lsquo;<samp class="samp">double</samp>&rsquo;, whereas the second option implies
! that &lsquo;<samp class="samp">long double</samp>&rsquo; &mdash; and hence also &lsquo;<samp class="samp">double</samp>&rsquo; &mdash; is always
  32&nbsp;bits wide.
  </p>
  </dd>
! <dt><code class="code">--with-double-comparison={tristate|bool|libf7}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify what result format is returned by library functions that
! compare 64-bit floating point values (<code class="code">DFmode</code>).
! The GCC default is &lsquo;<samp class="samp">tristate</samp>&rsquo;.  If the floating point
! implementation returns a boolean instead, set it to &lsquo;<samp class="samp">bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--with-libf7={libgcc|math|math-symbols|no}</code></dt>
  <dd><p>Only supported for the AVR target since version&nbsp;10.
  Specify to which degree code from LibF7 is included in libgcc.
  LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation
! written in C and (inline) assembly. &lsquo;<samp class="samp">libgcc</samp>&rsquo; adds support
  for functions that one would usually expect in libgcc like double addition,
! double comparisons and double conversions. &lsquo;<samp class="samp">math</samp>&rsquo; also adds routines
! that one would expect in <samp class="file">libm.a</samp>, but with <code class="code">__</code> (two underscores)
! prepended to the symbol names as specified by <samp class="file">math.h</samp>.
! &lsquo;<samp class="samp">math-symbols</samp>&rsquo; also defines weak aliases for the functions
! declared in <samp class="file">math.h</samp>.  However, <code class="code">--with-libf7</code> won&rsquo;t
! install no <samp class="file">math.h</samp> header file whatsoever, this file must come
! from elsewhere.  This option sets <samp class="option">--with-double-comparison</samp>
! to &lsquo;<samp class="samp">bool</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--with-nds32-lib=<var class="var">library</var></code></dt>
! <dd><p>Specifies that <var class="var">library</var> setting is used for building <samp class="file">libgcc.a</samp>.
! Currently, the valid <var class="var">library</var> is &lsquo;<samp class="samp">newlib</samp>&rsquo; or &lsquo;<samp class="samp">mculib</samp>&rsquo;.
  This option is only supported for the NDS32 target.
  </p>
  </dd>
! <dt><code class="code">--with-build-time-tools=<var class="var">dir</var></code></dt>
  <dd><p>Specifies where to find the set of target tools (assembler, linker, etc.)
  that will be used while building GCC itself.  This option can be useful
  if the directory layouts are different between the system you are building
  GCC on, and the system where you will deploy it.
  </p>
! <p>For example, on an &lsquo;<samp class="samp">ia64-hp-hpux</samp>&rsquo; system, you may have the GNU
! assembler and linker in <samp class="file">/usr/bin</samp>, and the native tools in a
  different path, and build a toolchain that expects to find the
! native tools in <samp class="file">/usr/bin</samp>.
  </p>
! <p>When you use this option, you should ensure that <var class="var">dir</var> includes
! <code class="command">ar</code>, <code class="command">as</code>, <code class="command">ld</code>, <code class="command">nm</code>,
! <code class="command">ranlib</code> and <code class="command">strip</code> if necessary, and possibly
! <code class="command">objdump</code>.  Otherwise, GCC may use an inconsistent set of
  tools.
  </p></dd>
  </dl>
  
! <h4 class="subsubheading" id="Overriding-configure-test-results"><span>Overriding <code class="command">configure</code> test results<a class="copiable-link" href="#Overriding-configure-test-results"> &para;</a></span></h4>
  
  <p>Sometimes, it might be necessary to override the result of some
! <code class="command">configure</code> test, for example in order to ease porting to a new
! system or work around a bug in a test.  The toplevel <code class="command">configure</code>
  script provides three variables for this:
  </p>
! <dl class="table">
! <dt><a id="index-build_005fconfigargs"></a><span><code class="code">build_configargs</code><a class="copiable-link" href="#index-build_005fconfigargs"> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all build <code class="command">configure</code>
  scripts.
  </p>
  </dd>
! <dt><a id="index-host_005fconfigargs"></a><span><code class="code">host_configargs</code><a class="copiable-link" href="#index-host_005fconfigargs"> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all host <code class="command">configure</code>
  scripts.
  </p>
  </dd>
! <dt><a id="index-target_005fconfigargs"></a><span><code class="code">target_configargs</code><a class="copiable-link" href="#index-target_005fconfigargs"> &para;</a></span></dt>
! <dd><p>The contents of this variable is passed to all target <code class="command">configure</code>
  scripts.
  </p>
  </dd>
  </dl>
  
! <p>In order to avoid shell and <code class="command">make</code> quoting issues for complex
! overrides, you can pass a setting for <code class="env">CONFIG_SITE</code> and set
  variables in the site file.
  </p>
! <h4 class="subheading" id="Algol-68-Specific-Options"><span>Algol 68-Specific Options<a class="copiable-link" href="#Algol-68-Specific-Options"> &para;</a></span></h4>
! 
! <p>The following options apply to the build of the Algol 68 runtime library.
! </p>
! <dl class="table">
! <dt><code class="code">--enable-algol68-gc</code></dt>
! <dd><p>Specify that an additional variant of the GNU Algol 68 runtime library
! is built, using an external build of the Boehm-Demers-Weiser garbage
! collector (<a class="uref" href="https://www.hboehm.info/gc/">https://www.hboehm.info/gc/</a>).
! </p>
! <p>This library needs to be available for each multilib variant, unless
! configured with <samp class="option">--enable-algol68-gc=&lsquo;<samp class="samp">auto</samp>&rsquo;</samp> in which case
! the build of the additional runtime library is skipped when not
! available and the build continues.
! </p>
! </dd>
! <dt><code class="code">--with-target-bdw-gc=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-bdw-gc-include=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-bdw-gc-lib=<var class="var">list</var></code></dt>
! <dd><p>Specify search directories for the garbage collector header files and
! libraries. <var class="var">list</var> is a comma separated list of key value pairs of the
! form &lsquo;<samp class="samp"><var class="var">multilibdir</var>=<var class="var">path</var></samp>&rsquo;, where the default multilib key
! is named as &lsquo;<samp class="samp">.</samp>&rsquo; (dot), or is omitted (e.g.
! &lsquo;<samp class="samp">--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32</samp>&rsquo;).
! </p>
! <p>The options <samp class="option">--with-target-bdw-gc-include</samp> and
! <samp class="option">--with-target-bdw-gc-lib</samp> must always be specified together
! for each multilib variant and they take precedence over
! <samp class="option">--with-target-bdw-gc</samp>.  If <samp class="option">--with-target-bdw-gc-include</samp>
! is missing values for a multilib, then the value for the default
! multilib is used (e.g. &lsquo;<samp class="samp">--with-target-bdw-gc-include=/opt/bdw-gc/include</samp>&rsquo;
! &lsquo;<samp class="samp">--with-target-bdw-gc-lib=/opt/bdw-gc/lib64,32=/opt-bdw-gc/lib32</samp>&rsquo;).
! If none of these options are specified, the library is assumed in
! default locations.
! </p></dd>
! </dl>
! 
! <h4 class="subheading" id="Objective-C-Specific-Options"><span>Objective-C-Specific Options<a class="copiable-link" href="#Objective-C-Specific-Options"> &para;</a></span></h4>
  
  <p>The following options apply to the build of the Objective-C runtime library.
  </p>
! <dl class="table">
! <dt><code class="code">--enable-objc-gc</code></dt>
  <dd><p>Specify that an additional variant of the GNU Objective-C runtime library
  is built, using an external build of the Boehm-Demers-Weiser garbage
! collector (<a class="uref" href="https://www.hboehm.info/gc/">https://www.hboehm.info/gc/</a>).  This library needs to be
  available for each multilib variant, unless configured with
! <samp class="option">--enable-objc-gc=&lsquo;<samp class="samp">auto</samp>&rsquo;</samp> in which case the build of the
  additional runtime library is skipped when not available and the build
  continues.
  </p>
  </dd>
! <dt><code class="code">--with-target-bdw-gc=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-bdw-gc-include=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-bdw-gc-lib=<var class="var">list</var></code></dt>
  <dd><p>Specify search directories for the garbage collector header files and
! libraries. <var class="var">list</var> is a comma separated list of key value pairs of the
! form &lsquo;<samp class="samp"><var class="var">multilibdir</var>=<var class="var">path</var></samp>&rsquo;, where the default multilib key
! is named as &lsquo;<samp class="samp">.</samp>&rsquo; (dot), or is omitted (e.g.
! &lsquo;<samp class="samp">--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32</samp>&rsquo;).
  </p>
! <p>The options <samp class="option">--with-target-bdw-gc-include</samp> and
! <samp class="option">--with-target-bdw-gc-lib</samp> must always be specified together
  for each multilib variant and they take precedence over
! <samp class="option">--with-target-bdw-gc</samp>.  If <samp class="option">--with-target-bdw-gc-include</samp>
  is missing values for a multilib, then the value for the default
! multilib is used (e.g. &lsquo;<samp class="samp">--with-target-bdw-gc-include=/opt/bdw-gc/include</samp>&rsquo;
! &lsquo;<samp class="samp">--with-target-bdw-gc-lib=/opt/bdw-gc/lib64,32=/opt-bdw-gc/lib32</samp>&rsquo;).
  If none of these options are specified, the library is assumed in
  default locations.
  </p></dd>
  </dl>
  
! <h4 class="subheading" id="D-Specific-Options"><span>D-Specific Options<a class="copiable-link" href="#D-Specific-Options"> &para;</a></span></h4>
  
  <p>The following options apply to the build of the D runtime library.
  </p>
! <dl class="table">
! <dt><code class="code">--enable-libphobos-checking</code></dt>
! <dt><code class="code">--disable-libphobos-checking</code></dt>
! <dt><code class="code">--enable-libphobos-checking=<var class="var">list</var></code></dt>
  <dd><p>This option controls whether run-time checks and contracts are compiled into
  the D runtime library.  When the option is not specified, the library is built
! with &lsquo;<samp class="samp">release</samp>&rsquo; checking.  When the option is specified without a
! <var class="var">list</var>, the result is the same as &lsquo;<samp class="samp">--enable-libphobos-checking=yes</samp>&rsquo;.
! Likewise, &lsquo;<samp class="samp">--disable-libphobos-checking</samp>&rsquo; is equivalent to
! &lsquo;<samp class="samp">--enable-libphobos-checking=no</samp>&rsquo;.
  </p>
! <p>The categories of checks available in <var class="var">list</var> are &lsquo;<samp class="samp">yes</samp>&rsquo; (compiles
! libphobos with <samp class="option">-fno-release</samp>), &lsquo;<samp class="samp">no</samp>&rsquo; (compiles libphobos with
! <samp class="option">-frelease</samp>), &lsquo;<samp class="samp">all</samp>&rsquo; (same as &lsquo;<samp class="samp">yes</samp>&rsquo;), &lsquo;<samp class="samp">none</samp>&rsquo; or
! &lsquo;<samp class="samp">release</samp>&rsquo; (same as &lsquo;<samp class="samp">no</samp>&rsquo;).
  </p>
! <p>Individual checks available in <var class="var">list</var> are &lsquo;<samp class="samp">assert</samp>&rsquo; (compiles libphobos
! with an extra option <samp class="option">-fassert</samp>).
  </p>
  </dd>
! <dt><code class="code">--with-libphobos-druntime-only</code></dt>
! <dt><code class="code">--with-libphobos-druntime-only=<var class="var">choice</var></code></dt>
  <dd><p>Specify whether to build only the core D runtime library (druntime), or both
  the core and standard library (phobos) into libphobos.  This is useful for
  targets that have full support in druntime, but no or incomplete support
! in phobos.  <var class="var">choice</var> can be one of &lsquo;<samp class="samp">auto</samp>&rsquo;, &lsquo;<samp class="samp">yes</samp>&rsquo;, and &lsquo;<samp class="samp">no</samp>&rsquo;
! where &lsquo;<samp class="samp">auto</samp>&rsquo; is the default.
  </p>
! <p>When the option is not specified, the default choice &lsquo;<samp class="samp">auto</samp>&rsquo; means that it
  is inferred whether the target has support for the phobos standard library.
! When the option is specified without a <var class="var">choice</var>,  the result is the same as
! &lsquo;<samp class="samp">--with-libphobos-druntime-only=yes</samp>&rsquo;.
  </p>
  </dd>
! <dt><code class="code">--with-target-system-zlib</code></dt>
! <dd><p>Use installed &lsquo;<samp class="samp">zlib</samp>&rsquo; rather than that included with GCC.  This needs
  to be available for each multilib variant, unless configured with
! <samp class="option">--with-target-system-zlib=&lsquo;<samp class="samp">auto</samp>&rsquo;</samp> in which case the GCC&nbsp;included
! &lsquo;<samp class="samp">zlib</samp>&rsquo; is only used when the system installed library is not available.
! </p></dd>
! </dl>
! 
! <h4 class="subheading" id="COBOL-Specific-Options"><span>COBOL-Specific Options<a class="copiable-link" href="#COBOL-Specific-Options"> &para;</a></span></h4>
! 
! <p>The following options apply to the build of the COBOL runtime library.
! </p>
! <dl class="table">
! <dt><code class="code">--with-target-libxml2=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-libxml2-include=<var class="var">list</var></code></dt>
! <dt><code class="code">--with-target-libxml2-lib=<var class="var">list</var></code></dt>
! <dd><p>Specify search directories for the libxml2 header files and
! libraries.  <var class="var">list</var> is a comma separated list of key value pairs of the
! form &lsquo;<samp class="samp"><var class="var">multilibdir</var>=<var class="var">path</var></samp>&rsquo;, where the default multilib key
! is named as &lsquo;<samp class="samp">.</samp>&rsquo; (dot), or is omitted (e.g.
! &lsquo;<samp class="samp">--with-target-libxml2=/opt/libxml2,32=/opt-libxml2-32</samp>&rsquo;).
! </p>
! <p>The options <samp class="option">--with-target-libxml2-include</samp> and
! <samp class="option">--with-target-libxml2-lib</samp> must always be specified together
! for each multilib variant and they take precedence over
! <samp class="option">--with-target-libxml2</samp>.  If <samp class="option">--with-target-libxml2-include</samp>
! is missing values for a multilib, then the value for the default
! multilib is used (e.g. &lsquo;<samp class="samp">--with-target-libxml2-include=/opt/libxml2/include</samp>&rsquo;
! &lsquo;<samp class="samp">--with-target-libxml2-lib=/opt/libxml2/lib64,32=/opt-libxml2/lib32</samp>&rsquo;).
! If none of these options are specified, the library is assumed in
! default locations.
  </p></dd>
  </dl>
  
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/download.html gcc-16.1.0-RC-20260423/INSTALL/download.html
*** gcc-15.2.0/INSTALL/download.html	Fri Aug  8 06:52:56 2025
--- gcc-16.1.0-RC-20260423/INSTALL/download.html	Thu Apr 23 11:07:46 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Downloading GCC</title>
  
  <meta name="description" content="Downloading GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,67 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
! <style type="text/css">
! <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
! div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
! -->
! </style>
  
  
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Downloading GCC</h1>
  
  
  
--- 29,41 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
! <meta name="viewport" content="width=device-width,initial-scale=1">
! 
  
  
  </head>
  
  <body lang="en">
  
  
  
*************** ul.no-bullet {list-style: none}
*** 83,126 ****
  
  
  
! <a name="index-Downloading-GCC"></a>
! <a name="index-Downloading-the-Source"></a>
  
! <p>GCC is distributed via <a href="https://gcc.gnu.org/git.html">git</a> and via
! HTTPS as tarballs compressed with <code>gzip</code> or <code>bzip2</code>.
  </p>
! <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
  OS), unpack the binutils distribution either in the same directory or
  a separate one.  In the latter case, add symbolic links to any
  components of the binutils you intend to build alongside the compiler
! (<samp>bfd</samp>, <samp>binutils</samp>, <samp>gas</samp>, <samp>gprof</samp>, <samp>ld</samp>,
! <samp>opcodes</samp>, &hellip;) to the directory containing the GCC sources.
  </p>
  <p>Likewise the GMP, MPFR, MPC and Gettext libraries can be automatically
  built together with GCC.  You may simply run the
! <code>contrib/download_prerequisites</code> script in the GCC source directory
  to set up everything.
  Otherwise unpack the GMP, MPFR, MPC and/or Gettext source
  distributions in the directory containing the GCC sources and rename
! their directories to <samp>gmp</samp>, <samp>mpfr</samp>, <samp>mpc</samp> and
! <samp>gettext</samp>, respectively (or use symbolic links with the same name).
  </p>
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 57,101 ----
  
  
  
! <a class="index-entry-id" id="index-Downloading-GCC"></a>
! <a class="index-entry-id" id="index-Downloading-the-Source"></a>
  
! <p>GCC is distributed via <a class="uref" href="https://gcc.gnu.org/git.html">git</a> and via
! HTTPS as tarballs compressed with <code class="command">gzip</code> or <code class="command">bzip2</code>.
  </p>
! <p>Please refer to the <a class="uref" 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, Modula-2 (GCC 13
! and later) and Algol 68 (GCC 16 and later, experimental) compilers, as
! well as runtime libraries for C++, Objective-C, COBOL, Fortran and
! Algol 68.  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
  OS), unpack the binutils distribution either in the same directory or
  a separate one.  In the latter case, add symbolic links to any
  components of the binutils you intend to build alongside the compiler
! (<samp class="file">bfd</samp>, <samp class="file">binutils</samp>, <samp class="file">gas</samp>, <samp class="file">gprof</samp>, <samp class="file">ld</samp>,
! <samp class="file">opcodes</samp>, &hellip;) to the directory containing the GCC sources.
  </p>
  <p>Likewise the GMP, MPFR, MPC and Gettext libraries can be automatically
  built together with GCC.  You may simply run the
! <code class="command">contrib/download_prerequisites</code> script in the GCC source directory
  to set up everything.
  Otherwise unpack the GMP, MPFR, MPC and/or Gettext source
  distributions in the directory containing the GCC sources and rename
! their directories to <samp class="file">gmp</samp>, <samp class="file">mpfr</samp>, <samp class="file">mpc</samp> and
! <samp class="file">gettext</samp>, respectively (or use symbolic links with the same name).
  </p>
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/finalinstall.html gcc-16.1.0-RC-20260423/INSTALL/finalinstall.html
*** gcc-15.2.0/INSTALL/finalinstall.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/finalinstall.html	Thu Apr 23 11:07:47 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Final installation</title>
  
  <meta name="description" content="Installing GCC: Final installation">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
- a.summary-letter {text-decoration: none}
- blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
- div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
- kbd {font-style: oblique}
- pre.display {font-family: inherit}
- pre.format {font-family: inherit}
- pre.menu-comment {font-family: serif}
- pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
- span.nolinebreak {white-space: nowrap}
- span.roman {font-family: initial; font-weight: normal}
- span.sansserif {font-family: sans-serif; font-weight: normal}
- ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,39 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
  div.example {margin-left: 3.2em}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: Final installation</h1>
  
  
  
--- 41,46 ----
*************** ul.no-bullet {list-style: none}
*** 89,96 ****
  
  
  <p>Now that GCC has been built (and optionally tested), you can install it with
! </p><div class="smallexample">
! <pre class="smallexample">cd <var>objdir</var> &amp;&amp; make install
  </pre></div>
  
  <p>We strongly recommend to install into a target directory where there is
--- 68,75 ----
  
  
  <p>Now that GCC has been built (and optionally tested), you can install it with
! </p><div class="example smallexample">
! <pre class="example-preformatted">cd <var class="var">objdir</var> &amp;&amp; make install
  </pre></div>
  
  <p>We strongly recommend to install into a target directory where there is
*************** depend on this debugging information (ca
*** 100,165 ****
  instance).
  </p>
  <p>That step completes the installation of GCC; user level binaries can
! be found in <samp><var>prefix</var>/bin</samp> where <var>prefix</var> is the value
! you specified with the <samp>--prefix</samp> to configure (or
! <samp>/usr/local</samp> by default).  (If you specified <samp>--bindir</samp>,
  that directory will be used instead; otherwise, if you specified
! <samp>--exec-prefix</samp>, <samp><var>exec-prefix</var>/bin</samp> will be used.)
  Headers for the C++ library are installed in
! <samp><var>prefix</var>/include</samp>; libraries in <samp><var>libdir</var></samp>
! (normally <samp><var>prefix</var>/lib</samp>); internal parts of the compiler in
! <samp><var>libdir</var>/gcc</samp> and <samp><var>libexecdir</var>/gcc</samp>; documentation
! in info format in <samp><var>infodir</var></samp> (normally
! <samp><var>prefix</var>/info</samp>).
  </p>
  <p>When installing cross-compilers, GCC&rsquo;s executables
! are not only installed into <samp><var>bindir</var></samp>, that
! is, <samp><var>exec-prefix</var>/bin</samp>, but additionally into
! <samp><var>exec-prefix</var>/<var>target-alias</var>/bin</samp>, if that directory
! exists.  Typically, such <em>tooldirs</em> hold target-specific
  binutils, including assembler and linker.
  </p>
! <p>Installation into a temporary staging area or into a <code>chroot</code>
  jail can be achieved with the command
  </p>
! <div class="smallexample">
! <pre class="smallexample">make DESTDIR=<var>path-to-rootdir</var> install
  </pre></div>
  
! <p>where <var>path-to-rootdir</var> is the absolute path of
  a directory relative to which all installation paths will be
! interpreted.  Note that the directory specified by <code>DESTDIR</code>
  need not exist yet; it will be created if necessary.
  </p>
! <p>There is a subtle point with tooldirs and <code>DESTDIR</code>:
  If you relocate a cross-compiler installation with
! e.g. &lsquo;<samp>DESTDIR=<var>rootdir</var></samp>&rsquo;, then the directory
! <samp><var>rootdir</var>/<var>exec-prefix</var>/<var>target-alias</var>/bin</samp> will
  be filled with duplicated GCC executables only if it already exists,
  it will not be created otherwise.  This is regarded as a feature,
  not as a bug, because it gives slightly more control to the packagers
! using the <code>DESTDIR</code> feature.
  </p>
  <p>You can install stripped programs and libraries with
  </p>
! <div class="smallexample">
! <pre class="smallexample">make install-strip
  </pre></div>
  
  <p>By default, only the man pages and info-format GCC documentation
  are built and installed.  If you want to generate the GCC manuals in
  other formats, use commands like
  </p>
! <div class="smallexample">
! <pre class="smallexample">make dvi
  make pdf
  make html
  </pre></div>
  
  <p>to build the manuals in the corresponding formats, and
  </p>
! <div class="smallexample">
! <pre class="smallexample">make install-dvi
  make install-pdf
  make install-html
  </pre></div>
--- 79,144 ----
  instance).
  </p>
  <p>That step completes the installation of GCC; user level binaries can
! be found in <samp class="file"><var class="var">prefix</var>/bin</samp> where <var class="var">prefix</var> is the value
! you specified with the <samp class="option">--prefix</samp> to configure (or
! <samp class="file">/usr/local</samp> by default).  (If you specified <samp class="option">--bindir</samp>,
  that directory will be used instead; otherwise, if you specified
! <samp class="option">--exec-prefix</samp>, <samp class="file"><var class="var">exec-prefix</var>/bin</samp> will be used.)
  Headers for the C++ library are installed in
! <samp class="file"><var class="var">prefix</var>/include</samp>; libraries in <samp class="file"><var class="var">libdir</var></samp>
! (normally <samp class="file"><var class="var">prefix</var>/lib</samp>); internal parts of the compiler in
! <samp class="file"><var class="var">libdir</var>/gcc</samp> and <samp class="file"><var class="var">libexecdir</var>/gcc</samp>; documentation
! in info format in <samp class="file"><var class="var">infodir</var></samp> (normally
! <samp class="file"><var class="var">prefix</var>/info</samp>).
  </p>
  <p>When installing cross-compilers, GCC&rsquo;s executables
! are not only installed into <samp class="file"><var class="var">bindir</var></samp>, that
! is, <samp class="file"><var class="var">exec-prefix</var>/bin</samp>, but additionally into
! <samp class="file"><var class="var">exec-prefix</var>/<var class="var">target-alias</var>/bin</samp>, if that directory
! exists.  Typically, such <em class="dfn">tooldirs</em> hold target-specific
  binutils, including assembler and linker.
  </p>
! <p>Installation into a temporary staging area or into a <code class="command">chroot</code>
  jail can be achieved with the command
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make DESTDIR=<var class="var">path-to-rootdir</var> install
  </pre></div>
  
! <p>where <var class="var">path-to-rootdir</var> is the absolute path of
  a directory relative to which all installation paths will be
! interpreted.  Note that the directory specified by <code class="code">DESTDIR</code>
  need not exist yet; it will be created if necessary.
  </p>
! <p>There is a subtle point with tooldirs and <code class="code">DESTDIR</code>:
  If you relocate a cross-compiler installation with
! e.g. &lsquo;<samp class="samp">DESTDIR=<var class="var">rootdir</var></samp>&rsquo;, then the directory
! <samp class="file"><var class="var">rootdir</var>/<var class="var">exec-prefix</var>/<var class="var">target-alias</var>/bin</samp> will
  be filled with duplicated GCC executables only if it already exists,
  it will not be created otherwise.  This is regarded as a feature,
  not as a bug, because it gives slightly more control to the packagers
! using the <code class="code">DESTDIR</code> feature.
  </p>
  <p>You can install stripped programs and libraries with
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make install-strip
  </pre></div>
  
  <p>By default, only the man pages and info-format GCC documentation
  are built and installed.  If you want to generate the GCC manuals in
  other formats, use commands like
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make dvi
  make pdf
  make html
  </pre></div>
  
  <p>to build the manuals in the corresponding formats, and
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make install-dvi
  make install-pdf
  make install-html
  </pre></div>
*************** make install-html
*** 167,186 ****
  <p>to install them.
  Alternatively, there are prebuilt online versions of the manuals for
  released versions of GCC on
! <a href="https://gcc.gnu.org/onlinedocs/">the GCC web site</a>.
  </p>
  <p>If you built GCC yourself we would like to know if the
! <a href="specific.html">host/target specific installation notes</a>
  didn&rsquo;t include your host/target information or if that information is
  incomplete or out of date.  Send a note to
! <a href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> detailing how the information should be changed.
  </p>
  <p>If you find a bug, please report it following the
! <a href="../bugs/">bug reporting guidelines</a>.
  </p>
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 146,165 ----
  <p>to install them.
  Alternatively, there are prebuilt online versions of the manuals for
  released versions of GCC on
! <a class="uref" href="https://gcc.gnu.org/onlinedocs/">the GCC web site</a>.
  </p>
  <p>If you built GCC yourself we would like to know if the
! <a class="uref" href="specific.html">host/target specific installation notes</a>
  didn&rsquo;t include your host/target information or if that information is
  incomplete or out of date.  Send a note to
! <a class="email" href="mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org</a> detailing how the information should be changed.
  </p>
  <p>If you find a bug, please report it following the
! <a class="uref" href="../bugs/">bug reporting guidelines</a>.
  </p>
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/gfdl.html gcc-16.1.0-RC-20260423/INSTALL/gfdl.html
*** gcc-15.2.0/INSTALL/gfdl.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/gfdl.html	Thu Apr 23 11:07:48 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: GNU Free Documentation License</title>
  
  <meta name="description" content="Installing GCC: GNU Free Documentation License">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,44 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
! div.center {text-align:center}
  div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! pre.display-preformatted {font-family: inherit}
! span:hover a.copiable-link {visibility: visible}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: GNU Free Documentation License</h1>
  
  
  
--- 46,51 ----
*************** ul.no-bullet {list-style: none}
*** 92,113 ****
  
  <h1 align="center">Installing GCC: GNU Free Documentation License</h1>
  
! <a name="index-FDL_002c-GNU-Free-Documentation-License"></a>
! <div align="center">Version 1.3, 3 November 2008
  </div>
  <div class="display">
! <pre class="display">Copyright &copy; 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
! <a href="https://www.fsf.org">https://www.fsf.org</a>
  
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
  </pre></div>
  
! <ol start="0">
  <li> PREAMBLE
  
  <p>The purpose of this License is to make a manual, textbook, or other
! functional and useful document <em>free</em> in the sense of freedom: to
  assure everyone the effective freedom to copy and redistribute it,
  with or without modifying it, either commercially or noncommercially.
  Secondarily, this License preserves for the author and publisher a way
--- 76,97 ----
  
  <h1 align="center">Installing GCC: GNU Free Documentation License</h1>
  
! <a class="index-entry-id" id="index-FDL_002c-GNU-Free-Documentation-License"></a>
! <div class="center">Version 1.3, 3 November 2008
  </div>
  <div class="display">
! <pre class="display-preformatted">Copyright &copy; 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
! <a class="uref" href="https://www.fsf.org">https://www.fsf.org</a>
  
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
  </pre></div>
  
! <ol class="enumerate" start="0">
  <li> PREAMBLE
  
  <p>The purpose of this License is to make a manual, textbook, or other
! functional and useful document <em class="dfn">free</em> in the sense of freedom: to
  assure everyone the effective freedom to copy and redistribute it,
  with or without modifying it, either commercially or noncommercially.
  Secondarily, this License preserves for the author and publisher a way
*************** An image format is not Transparent if us
*** 181,196 ****
  of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
  </p>
  <p>Examples of suitable formats for Transparent copies include plain
! <small>ASCII</small> without markup, Texinfo input format, LaTeX input
! format, <acronym>SGML</acronym> or <acronym>XML</acronym> using a publicly available
! <acronym>DTD</acronym>, and standard-conforming simple <acronym>HTML</acronym>,
! PostScript or <acronym>PDF</acronym> designed for human modification.  Examples
! of transparent image formats include <acronym>PNG</acronym>, <acronym>XCF</acronym> and
! <acronym>JPG</acronym>.  Opaque formats include proprietary formats that can be
! read and edited only by proprietary word processors, <acronym>SGML</acronym> or
! <acronym>XML</acronym> for which the <acronym>DTD</acronym> and/or processing tools are
! not generally available, and the machine-generated <acronym>HTML</acronym>,
! PostScript or <acronym>PDF</acronym> produced by some word processors for
  output purposes only.
  </p>
  <p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
--- 165,180 ----
  of text.  A copy that is not &ldquo;Transparent&rdquo; is called &ldquo;Opaque&rdquo;.
  </p>
  <p>Examples of suitable formats for Transparent copies include plain
! <small class="sc">ASCII</small> without markup, Texinfo input format, LaTeX input
! format, <abbr class="acronym">SGML</abbr> or <abbr class="acronym">XML</abbr> using a publicly available
! <abbr class="acronym">DTD</abbr>, and standard-conforming simple <abbr class="acronym">HTML</abbr>,
! PostScript or <abbr class="acronym">PDF</abbr> designed for human modification.  Examples
! of transparent image formats include <abbr class="acronym">PNG</abbr>, <abbr class="acronym">XCF</abbr> and
! <abbr class="acronym">JPG</abbr>.  Opaque formats include proprietary formats that can be
! read and edited only by proprietary word processors, <abbr class="acronym">SGML</abbr> or
! <abbr class="acronym">XML</abbr> for which the <abbr class="acronym">DTD</abbr> and/or processing tools are
! not generally available, and the machine-generated <abbr class="acronym">HTML</abbr>,
! PostScript or <abbr class="acronym">PDF</abbr> produced by some word processors for
  output purposes only.
  </p>
  <p>The &ldquo;Title Page&rdquo; means, for a printed book, the title page itself,
*************** Version filling the role of the Document
*** 279,285 ****
  and modification of the Modified Version to whoever possesses a copy
  of it.  In addition, you must do these things in the Modified Version:
  </p>
! <ol type="A" start="1">
  <li> Use in the Title Page (and on the covers, if any) a title distinct
  from that of the Document, and from those of previous versions
  (which should, if there were any, be listed in the History section
--- 263,269 ----
  and modification of the Modified Version to whoever possesses a copy
  of it.  In addition, you must do these things in the Modified Version:
  </p>
! <ol class="enumerate" type="A" start="1">
  <li> Use in the Title Page (and on the covers, if any) a title distinct
  from that of the Document, and from those of previous versions
  (which should, if there were any, be listed in the History section
*************** not give you any rights to use it.
*** 479,485 ****
  of the GNU Free Documentation License from time to time.  Such new
  versions will be similar in spirit to the present version, but may
  differ in detail to address new problems or concerns.  See
! <a href="https://www.gnu.org/copyleft/">https://www.gnu.org/copyleft/</a>.
  </p>
  <p>Each version of the License is given a distinguishing version number.
  If the Document specifies that a particular numbered version of this
--- 463,469 ----
  of the GNU Free Documentation License from time to time.  Such new
  versions will be similar in spirit to the present version, but may
  differ in detail to address new problems or concerns.  See
! <a class="uref" href="https://www.gnu.org/copyleft/">https://www.gnu.org/copyleft/</a>.
  </p>
  <p>Each version of the License is given a distinguishing version number.
  If the Document specifies that a particular numbered version of this
*************** provided the MMC is eligible for relicen
*** 525,555 ****
  </p>
  </li></ol>
  
! <a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a>
! <h3 class="unnumberedsec">ADDENDUM: How to use this License for your documents</h3>
  
  <p>To use this License in a document you have written, include a copy of
  the License in the document and put the following copyright and
  license notices just after the title page:
  </p>
! <div class="smallexample">
! <pre class="smallexample">  Copyright (C)  <var>year</var>  <var>your name</var>.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
    Texts.  A copy of the license is included in the section entitled ``GNU
    Free Documentation License''.
! </pre></div>
  
  <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
  replace the &ldquo;with...Texts.&rdquo; line with this:
  </p>
! <div class="smallexample">
! <pre class="smallexample">    with the Invariant Sections being <var>list their titles</var>, with
!     the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts
!     being <var>list</var>.
! </pre></div>
  
  <p>If you have Invariant Sections without Cover Texts, or some other
  combination of the three, merge those two alternatives to suit the
--- 509,539 ----
  </p>
  </li></ol>
  
! <div class="unnumberedsec-level-extent" id="ADDENDUM_003a-How-to-use-this-License-for-your-documents">
! <h3 class="unnumberedsec"><span>ADDENDUM: How to use this License for your documents<a class="copiable-link" href="#ADDENDUM_003a-How-to-use-this-License-for-your-documents"> &para;</a></span></h3>
  
  <p>To use this License in a document you have written, include a copy of
  the License in the document and put the following copyright and
  license notices just after the title page:
  </p>
! <div class="example smallexample">
! <div class="group"><pre class="example-preformatted">  Copyright (C)  <var class="var">year</var>  <var class="var">your name</var>.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
    Texts.  A copy of the license is included in the section entitled ``GNU
    Free Documentation License''.
! </pre></div></div>
  
  <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
  replace the &ldquo;with...Texts.&rdquo; line with this:
  </p>
! <div class="example smallexample">
! <div class="group"><pre class="example-preformatted">    with the Invariant Sections being <var class="var">list their titles</var>, with
!     the Front-Cover Texts being <var class="var">list</var>, and with the Back-Cover Texts
!     being <var class="var">list</var>.
! </pre></div></div>
  
  <p>If you have Invariant Sections without Cover Texts, or some other
  combination of the three, merge those two alternatives to suit the
*************** to permit their use in free software.
*** 563,572 ****
  
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
! <hr>
  
  
  
--- 547,556 ----
  
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
! </div>
  
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/index.html gcc-16.1.0-RC-20260423/INSTALL/index.html
*** gcc-15.2.0/INSTALL/index.html	Fri Aug  8 06:52:56 2025
--- gcc-16.1.0-RC-20260423/INSTALL/index.html	Thu Apr 23 11:07:45 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC</title>
  
  <meta name="description" content="Installing GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,67 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
! <style type="text/css">
! <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
! div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
! -->
! </style>
  
  
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC</h1>
  
  
  
--- 29,41 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
! <meta name="viewport" content="width=device-width,initial-scale=1">
! 
  
  
  </head>
  
  <body lang="en">
  
  
  
*************** ul.no-bullet {list-style: none}
*** 83,89 ****
  
  
  <p>The latest version of this document is always available at
! <a href="https://gcc.gnu.org/install/">https://gcc.gnu.org/install/</a>.
  It refers to the current development sources, instructions for
  specific released versions are included with the sources.
  </p>
--- 57,63 ----
  
  
  <p>The latest version of this document is always available at
! <a class="uref" href="https://gcc.gnu.org/install/">https://gcc.gnu.org/install/</a>.
  It refers to the current development sources, instructions for
  specific released versions are included with the sources.
  </p>
*************** as detailing some target specific instal
*** 94,116 ****
  with their own installation instructions.  This document supersedes all
  package-specific installation instructions.
  </p>
! <p><em>Before</em> starting the build/install procedure please check the
! <a href="specific.html">host/target specific installation notes</a>.
  We recommend you browse the entire generic installation instructions before
  you proceed.
  </p>
  <p>The installation procedure itself is broken into five steps.
  </p>
! <ol>
! <li> <a href="prerequisites.html">Prerequisites</a>
! </li><li> <a href="download.html">Downloading the source</a>
! </li><li> <a href="configure.html">Configuration</a>
! </li><li> <a href="build.html">Building</a>
! </li><li> <a href="test.html">Testing</a> (optional)
! </li><li> <a href="finalinstall.html">Final install</a>
  </li></ol>
  
! <p>Please note that GCC does not support &lsquo;<samp>make uninstall</samp>&rsquo; and probably
  won&rsquo;t do so in the near future as this would open a can of worms.  Instead,
  we suggest that you install GCC into a directory of its own and simply
  remove that directory when you do not need that specific version of GCC
--- 68,90 ----
  with their own installation instructions.  This document supersedes all
  package-specific installation instructions.
  </p>
! <p><em class="emph">Before</em> starting the build/install procedure please check the
! <a class="uref" href="specific.html">host/target specific installation notes</a>.
  We recommend you browse the entire generic installation instructions before
  you proceed.
  </p>
  <p>The installation procedure itself is broken into five steps.
  </p>
! <ol class="enumerate">
! <li> <a class="uref" href="prerequisites.html">Prerequisites</a>
! </li><li> <a class="uref" href="download.html">Downloading the source</a>
! </li><li> <a class="uref" href="configure.html">Configuration</a>
! </li><li> <a class="uref" href="build.html">Building</a>
! </li><li> <a class="uref" href="test.html">Testing</a> (optional)
! </li><li> <a class="uref" href="finalinstall.html">Final install</a>
  </li></ol>
  
! <p>Please note that GCC does not support &lsquo;<samp class="samp">make uninstall</samp>&rsquo; and probably
  won&rsquo;t do so in the near future as this would open a can of worms.  Instead,
  we suggest that you install GCC into a directory of its own and simply
  remove that directory when you do not need that specific version of GCC
*************** more binaries exist that use them.
*** 119,134 ****
  </p>
  <hr />
  <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
  any later version published by the Free Software Foundation; with no
  Invariant Sections, the Front-Cover texts being (a) (see below), and
  with the Back-Cover Texts being (b) (see below).  A copy of the
! license is included in the section entitled &ldquo;<a href="./gfdl.html">GNU
  Free Documentation License</a>&rdquo;.
  </p>
  <p>(a) The FSF&rsquo;s Front-Cover Text is:
--- 93,108 ----
  </p>
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
! <p>Copyright &copy; 1988-2026 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
  any later version published by the Free Software Foundation; with no
  Invariant Sections, the Front-Cover texts being (a) (see below), and
  with the Back-Cover Texts being (b) (see below).  A copy of the
! license is included in the section entitled &ldquo;<a class="uref" href="./gfdl.html">GNU
  Free Documentation License</a>&rdquo;.
  </p>
  <p>(a) The FSF&rsquo;s Front-Cover Text is:
*************** Free Documentation License</a>&rdquo;.
*** 144,150 ****
  
  
  
- 
  
  
  
--- 118,123 ----
diff -Nrcpad gcc-15.2.0/INSTALL/prerequisites.html gcc-16.1.0-RC-20260423/INSTALL/prerequisites.html
*** gcc-15.2.0/INSTALL/prerequisites.html	Fri Aug  8 06:52:56 2025
--- gcc-16.1.0-RC-20260423/INSTALL/prerequisites.html	Thu Apr 23 11:07:46 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Prerequisites for GCC</title>
  
  <meta name="description" content="Prerequisites for GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
! div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,40 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
! span:hover a.copiable-link {visibility: visible}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Prerequisites for GCC</h1>
  
  
  
--- 42,47 ----
*************** ul.no-bullet {list-style: none}
*** 82,96 ****
  
  
  
! <a name="index-Prerequisites"></a>
  
  <p>GCC requires that various tools and packages be available for use in the
  build procedure.  Modifying GCC sources requires additional tools
  described below.
  </p>
! <a name="Tools_002fpackages-necessary-for-building-GCC"></a>
! <h3 class="heading">Tools/packages necessary for building GCC</h3>
! <dl compact="compact">
  <dt>ISO C++14 compiler</dt>
  <dd><p>Necessary to bootstrap GCC.  GCC 5.4 or newer has sufficient support
  for used C++14 features.
--- 62,75 ----
  
  
  
! <a class="index-entry-id" id="index-Prerequisites"></a>
  
  <p>GCC requires that various tools and packages be available for use in the
  build procedure.  Modifying GCC sources requires additional tools
  described below.
  </p>
! <h3 class="heading" id="Tools_002fpackages-necessary-for-building-GCC"><span>Tools/packages necessary for building GCC<a class="copiable-link" href="#Tools_002fpackages-necessary-for-building-GCC"> &para;</a></span></h3>
! <dl class="table">
  <dt>ISO C++14 compiler</dt>
  <dd><p>Necessary to bootstrap GCC.  GCC 5.4 or newer has sufficient support
  for used C++14 features.
*************** compiler, and versions prior to 4.8 allo
*** 101,109 ****
  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
--- 80,87 ----
  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 D
! compiler, 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
*************** frontends other than C might use GCC ext
*** 117,146 ****
  for all target variants for which target libraries will be built (and not
  only the variant of the host C++ compiler).
  </p>
! <p>This affects the popular &lsquo;<samp>x86_64-pc-linux-gnu</samp>&rsquo; platform (among
! other multilib targets), for which 64-bit (&lsquo;<samp>x86_64</samp>&rsquo;) and 32-bit
! (&lsquo;<samp>i386</samp>&rsquo;) libc headers are usually packaged separately. If you do a
! build of a native compiler on &lsquo;<samp>x86_64-pc-linux-gnu</samp>&rsquo;, make sure you
  either have the 32-bit libc developer package properly installed (the exact
  name of the package depends on your distro) or you must build GCC as a
  64-bit only compiler by configuring with the option
! <samp>--disable-multilib</samp>.  Otherwise, you may encounter an error such as
! &lsquo;<samp>fatal error: gnu/stubs-32.h: No such file</samp>&rsquo;
  </p>
  </dd>
  <dt>Python</dt>
! <dd><p>If you configure a RISC-V compiler with the option <samp>--with-arch</samp> and
  the specified architecture string is non-canonical, then you will need
! <code>python</code> installed on the build system.
  </p>
  </dd>
! <dt><a name="GNAT-prerequisite"></a>GNAT</dt>
  <dd>
  <p>In order to build GNAT, the Ada compiler, you need a working GNAT
! compiler (GCC version 5.1 or later).
  </p>
! <p>This includes GNAT tools such as <code>gnatmake</code> and
! <code>gnatlink</code>, since the Ada front end is written in Ada and
  uses some GNAT-specific extensions.
  </p>
  <p>In order to build a cross compiler, it is strongly recommended to install
--- 95,124 ----
  for all target variants for which target libraries will be built (and not
  only the variant of the host C++ compiler).
  </p>
! <p>This affects the popular &lsquo;<samp class="samp">x86_64-pc-linux-gnu</samp>&rsquo; platform (among
! other multilib targets), for which 64-bit (&lsquo;<samp class="samp">x86_64</samp>&rsquo;) and 32-bit
! (&lsquo;<samp class="samp">i386</samp>&rsquo;) libc headers are usually packaged separately. If you do a
! build of a native compiler on &lsquo;<samp class="samp">x86_64-pc-linux-gnu</samp>&rsquo;, make sure you
  either have the 32-bit libc developer package properly installed (the exact
  name of the package depends on your distro) or you must build GCC as a
  64-bit only compiler by configuring with the option
! <samp class="option">--disable-multilib</samp>.  Otherwise, you may encounter an error such as
! &lsquo;<samp class="samp">fatal error: gnu/stubs-32.h: No such file</samp>&rsquo;
  </p>
  </dd>
  <dt>Python</dt>
! <dd><p>If you configure a RISC-V compiler with the option <samp class="option">--with-arch</samp> and
  the specified architecture string is non-canonical, then you will need
! <code class="command">python</code> installed on the build system.
  </p>
  </dd>
! <dt><a class="anchor" id="GNAT-prerequisite"></a>GNAT</dt>
  <dd>
  <p>In order to build GNAT, the Ada compiler, you need a working GNAT
! compiler (GCC version 5.4 or later).
  </p>
! <p>This includes GNAT tools such as <code class="command">gnatmake</code> and
! <code class="command">gnatlink</code>, since the Ada front end is written in Ada and
  uses some GNAT-specific extensions.
  </p>
  <p>In order to build a cross compiler, it is strongly recommended to install
*************** build.
*** 153,171 ****
  GNAT. More recent versions of GNAT than the version built are not guaranteed
  to work and will often fail during the build with compilation errors.
  </p>
! <p>Note that <code>configure</code> does not test whether the GNAT installation works
  and has a sufficiently recent version; if too old a GNAT version is
! installed and <samp>--enable-languages=ada</samp> is used, the build will fail.
  </p>
! <p><code>ADA_INCLUDE_PATH</code> and <code>ADA_OBJECT_PATH</code> environment variables
  must not be set when building the Ada compiler, the Ada tools, or the
  Ada runtime libraries. You can check that your build environment is clean
! by verifying that &lsquo;<samp>gnatls -v</samp>&rsquo; lists only one explicit path in each
  section.
  </p>
- <a name="index-cobol"></a>
  </dd>
! <dt><a name="GCOBOL-prerequisite"></a>GCOBOL</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
--- 131,148 ----
  GNAT. More recent versions of GNAT than the version built are not guaranteed
  to work and will often fail during the build with compilation errors.
  </p>
! <p>Note that <code class="command">configure</code> does not test whether the GNAT installation works
  and has a sufficiently recent version; if too old a GNAT version is
! installed and <samp class="option">--enable-languages=ada</samp> is used, the build will fail.
  </p>
! <p><code class="env">ADA_INCLUDE_PATH</code> and <code class="env">ADA_OBJECT_PATH</code> environment variables
  must not be set when building the Ada compiler, the Ada tools, or the
  Ada runtime libraries. You can check that your build environment is clean
! by verifying that &lsquo;<samp class="samp">gnatls -v</samp>&rsquo; lists only one explicit path in each
  section.
  </p>
  </dd>
! <dt><a id="index-cobol"></a><span><a class="anchor" id="GCOBOL-prerequisite"></a>GCOBOL<a class="copiable-link" href="#index-cobol"> &para;</a></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
*************** released on 2017-05-06.
*** 175,204 ****
  <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>
! <dt><a name="index-_005f_005fint128"></a>Data type: <strong>__int128</strong></dt>
! </dl>
! <p>meaning <code>16 == sizeof(long long int)</code>.
! For floating point, gcobol uses
! </p><dl>
! <dt><a name="index-_005fFloat128"></a>Data type: <strong>_Float128</strong></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><a name="GDC-prerequisite"></a>GDC</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
--- 152,176 ----
  <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 class="uref" href="https://mandoc.bsd.lv">https://mandoc.bsd.lv</a>.
! </p>
! <p>The COBOL runtime library. libgcobol, requires libxml2 2.9 or later.
! It implements support for <code class="code">XML PARSE</code>.
  </p>
  <p>Because ISO COBOL defines strict requirements for numerical precision,
! gcobol computes with 128-bit operands.  This requirement applies to
! both host and target. For integers, gcobol requires the platform to
! support the GCC <code class="code">__int128</code> type.  For floating point it uses
! <code class="code">_Float128</code> or similar.
  </p>
  <p>gcobol has so far been tested on two architectures only: x86_64 and
  aarch64 with little-endian encoding.
  </p>
  </dd>
! <dt><a class="anchor" id="GDC-prerequisite"></a>GDC</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 class="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
*************** recent versions of GDC than the version
*** 209,234 ****
  will often fail during the build with compilation errors relating to
  deprecations or removed features.
  </p>
! <p>Note that <code>configure</code> does not test whether the GDC installation works
  and has a sufficiently recent version.  Though the implementation of the D
  front end does not make use of any GDC-specific extensions, or novel features
  of the D language, if too old a GDC version is installed and
! <samp>--enable-languages=d</samp> is used, the build will fail.
  </p>
! <p>On some targets, &lsquo;<samp>libphobos</samp>&rsquo; isn&rsquo;t enabled by default, but compiles
! and works if <samp>--enable-libphobos</samp> is used.  Specifics are
  documented for affected targets.
  </p>
  </dd>
! <dt><a name="GM2-prerequisite"></a>GM2</dt>
  <dd>
  <p>Python3 is required if you want to build the complete Modula-2
! documentation including the target <code>SYSTEM</code> definition module.
  If Python3 is unavailable Modula-2 documentation will include a target
  independent version of the SYSTEM modules.
  </p>
  </dd>
! <dt><a name="gccrs-prerequisite"></a>gccrs</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
--- 181,206 ----
  will often fail during the build with compilation errors relating to
  deprecations or removed features.
  </p>
! <p>Note that <code class="command">configure</code> does not test whether the GDC installation works
  and has a sufficiently recent version.  Though the implementation of the D
  front end does not make use of any GDC-specific extensions, or novel features
  of the D language, if too old a GDC version is installed and
! <samp class="option">--enable-languages=d</samp> is used, the build will fail.
  </p>
! <p>On some targets, &lsquo;<samp class="samp">libphobos</samp>&rsquo; isn&rsquo;t enabled by default, but compiles
! and works if <samp class="option">--enable-libphobos</samp> is used.  Specifics are
  documented for affected targets.
  </p>
  </dd>
! <dt><a class="anchor" id="GM2-prerequisite"></a>GM2</dt>
  <dd>
  <p>Python3 is required if you want to build the complete Modula-2
! documentation including the target <code class="code">SYSTEM</code> definition module.
  If Python3 is unavailable Modula-2 documentation will include a target
  independent version of the SYSTEM modules.
  </p>
  </dd>
! <dt><a class="anchor" id="gccrs-prerequisite"></a>gccrs</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 ve
*** 237,256 ****
  </dd>
  <dt>A &ldquo;working&rdquo; POSIX compatible shell, or GNU bash</dt>
  <dd>
! <p>Necessary when running <code>configure</code> because some
! <code>/bin/sh</code> shells have bugs and may crash when configuring the
! target libraries.  In other cases, <code>/bin/sh</code> or <code>ksh</code>
  have disastrous corner-case performance problems.  This
! can cause target <code>configure</code> runs to literally take days to
  complete in some cases.
  </p>
! <p>So on some platforms <code>/bin/ksh</code> is sufficient, on others it
  isn&rsquo;t.  See the host/target specific instructions for your platform, or
! use <code>bash</code> to be sure.  Then set <code>CONFIG_SHELL</code> in your
  environment to your &ldquo;good&rdquo; shell prior to running
! <code>configure</code>/<code>make</code>.
  </p>
! <p><code>zsh</code> is not a fully compliant POSIX shell and will not
  work when configuring GCC.
  </p>
  </dd>
--- 209,228 ----
  </dd>
  <dt>A &ldquo;working&rdquo; POSIX compatible shell, or GNU bash</dt>
  <dd>
! <p>Necessary when running <code class="command">configure</code> because some
! <code class="command">/bin/sh</code> shells have bugs and may crash when configuring the
! target libraries.  In other cases, <code class="command">/bin/sh</code> or <code class="command">ksh</code>
  have disastrous corner-case performance problems.  This
! can cause target <code class="command">configure</code> runs to literally take days to
  complete in some cases.
  </p>
! <p>So on some platforms <code class="command">/bin/ksh</code> is sufficient, on others it
  isn&rsquo;t.  See the host/target specific instructions for your platform, or
! use <code class="command">bash</code> to be sure.  Then set <code class="env">CONFIG_SHELL</code> in your
  environment to your &ldquo;good&rdquo; shell prior to running
! <code class="command">configure</code>/<code class="command">make</code>.
  </p>
! <p><code class="command">zsh</code> is not a fully compliant POSIX shell and will not
  work when configuring GCC.
  </p>
  </dd>
*************** work when configuring GCC.
*** 265,271 ****
  If in doubt, use a recent GNU awk version.
  </p>
  </dd>
! <dt>GNU binutils</dt>
  <dd>
  <p>Necessary in some circumstances, optional in others.  See the
  host/target specific instructions for your platform for the exact
--- 237,243 ----
  If in doubt, use a recent GNU awk version.
  </p>
  </dd>
! <dt>GNU Binutils</dt>
  <dd>
  <p>Necessary in some circumstances, optional in others.  See the
  host/target specific instructions for your platform for the exact
*************** with GNU libtool that includes doing a b
*** 276,284 ****
  </p>
  </dd>
  <dt>gzip version 1.2.4 (or later) or</dt>
! <dt>bzip2 version 1.0.2 (or later)</dt>
  <dd>
! <p>Necessary to uncompress GCC <code>tar</code> files when source code is
  obtained via HTTPS mirror sites.
  </p>
  </dd>
--- 248,256 ----
  </p>
  </dd>
  <dt>gzip version 1.2.4 (or later) or</dt>
! <dt>xz version 5.0 (or later)</dt>
  <dd>
! <p>Necessary to uncompress GCC <code class="command">tar</code> files when source code is
  obtained via HTTPS mirror sites.
  </p>
  </dd>
*************** obtained via HTTPS mirror sites.
*** 290,317 ****
  <dt>GNU tar version 1.14 (or later)</dt>
  <dd>
  <p>Necessary (only on some platforms) to untar the source code.  Many
! systems&rsquo; <code>tar</code> programs will also work, only try GNU
! <code>tar</code> if you have problems.
  </p>
  </dd>
  <dt>Perl version 5.6.1 (or later)</dt>
  <dd>
! <p>Necessary when targeting Darwin, building &lsquo;<samp>libstdc++</samp>&rsquo;,
! and not using <samp>--disable-symvers</samp>.
! Necessary when targeting Solaris with Solaris <code>ld</code> and not using
! <samp>--disable-symvers</samp>.
  </p>
! <p>Necessary when regenerating <samp>Makefile</samp> dependencies in libiberty.
! Necessary when regenerating <samp>libiberty/functions.texi</samp>.
  Necessary when generating manpages from Texinfo manuals.
  Used by various scripts to generate some files included in the source
  repository (mainly Unicode-related and rarely changing) from source
  tables.
  </p>
! <p>Used by <code>automake</code>.
  </p>
! <p>If available, enables parallel testing of &lsquo;<samp>libgomp</samp>&rsquo; in case that
! <code>flock</code> is not available.
  </p>
  </dd>
  </dl>
--- 262,289 ----
  <dt>GNU tar version 1.14 (or later)</dt>
  <dd>
  <p>Necessary (only on some platforms) to untar the source code.  Many
! systems&rsquo; <code class="command">tar</code> programs will also work, only try GNU
! <code class="command">tar</code> if you have problems.
  </p>
  </dd>
  <dt>Perl version 5.6.1 (or later)</dt>
  <dd>
! <p>Necessary when targeting Darwin, building &lsquo;<samp class="samp">libstdc++</samp>&rsquo;,
! and not using <samp class="option">--disable-symvers</samp>.
! Necessary when targeting Solaris with Solaris <code class="command">ld</code> and not using
! <samp class="option">--disable-symvers</samp>.
  </p>
! <p>Necessary when regenerating <samp class="file">Makefile</samp> dependencies in libiberty.
! Necessary when regenerating <samp class="file">libiberty/functions.texi</samp>.
  Necessary when generating manpages from Texinfo manuals.
  Used by various scripts to generate some files included in the source
  repository (mainly Unicode-related and rarely changing) from source
  tables.
  </p>
! <p>Used by <code class="command">automake</code>.
  </p>
! <p>If available, enables parallel testing of &lsquo;<samp class="samp">libgomp</samp>&rsquo; in case that
! <code class="command">flock</code> is not available.
  </p>
  </dd>
  </dl>
*************** newer versions, though.  If your OS vend
*** 325,340 ****
  support libraries then using those packages may be the simplest way to
  install the libraries.
  </p>
! <dl compact="compact">
  <dt>GNU Multiple Precision Library (GMP) version 4.3.2 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a href="https://gmplib.org/">https://gmplib.org/</a>.  If a GMP source distribution is found in a
! subdirectory of your GCC sources named <samp>gmp</samp>, it will be built
  together with GCC.  Alternatively, if GMP is already installed but it
  is not in your library search path, you will have to configure with the
! <samp>--with-gmp</samp> configure option.  See also <samp>--with-gmp-lib</samp>
! and <samp>--with-gmp-include</samp>.
  The in-tree build is only supported with the GMP version that
  download_prerequisites installs.
  </p>
--- 297,312 ----
  support libraries then using those packages may be the simplest way to
  install the libraries.
  </p>
! <dl class="table">
  <dt>GNU Multiple Precision Library (GMP) version 4.3.2 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a class="uref" href="https://gmplib.org/">https://gmplib.org/</a>.  If a GMP source distribution is found in a
! subdirectory of your GCC sources named <samp class="file">gmp</samp>, it will be built
  together with GCC.  Alternatively, if GMP is already installed but it
  is not in your library search path, you will have to configure with the
! <samp class="option">--with-gmp</samp> configure option.  See also <samp class="option">--with-gmp-lib</samp>
! and <samp class="option">--with-gmp-include</samp>.
  The in-tree build is only supported with the GMP version that
  download_prerequisites installs.
  </p>
*************** download_prerequisites installs.
*** 342,353 ****
  <dt>MPFR Library version 3.1.0 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a href="https://www.mpfr.org">https://www.mpfr.org</a>.  If an MPFR source distribution is found
! in a subdirectory of your GCC sources named <samp>mpfr</samp>, it will be
  built together with GCC.  Alternatively, if MPFR is already installed
  but it is not in your default library search path, the
! <samp>--with-mpfr</samp> configure option should be used.  See also
! <samp>--with-mpfr-lib</samp> and <samp>--with-mpfr-include</samp>.
  The in-tree build is only supported with the MPFR version that
  download_prerequisites installs.
  </p>
--- 314,325 ----
  <dt>MPFR Library version 3.1.0 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a class="uref" href="https://www.mpfr.org">https://www.mpfr.org</a>.  If an MPFR source distribution is found
! in a subdirectory of your GCC sources named <samp class="file">mpfr</samp>, it will be
  built together with GCC.  Alternatively, if MPFR is already installed
  but it is not in your default library search path, the
! <samp class="option">--with-mpfr</samp> configure option should be used.  See also
! <samp class="option">--with-mpfr-lib</samp> and <samp class="option">--with-mpfr-include</samp>.
  The in-tree build is only supported with the MPFR version that
  download_prerequisites installs.
  </p>
*************** download_prerequisites installs.
*** 355,366 ****
  <dt>MPC Library version 1.0.1 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a href="https://www.multiprecision.org/mpc/">https://www.multiprecision.org/mpc/</a>.  If an MPC source distribution
! is found in a subdirectory of your GCC sources named <samp>mpc</samp>, it
  will be built together with GCC.  Alternatively, if MPC is already
  installed but it is not in your default library search path, the
! <samp>--with-mpc</samp> configure option should be used.  See also
! <samp>--with-mpc-lib</samp> and <samp>--with-mpc-include</samp>.
  The in-tree build is only supported with the MPC version that
  download_prerequisites installs.
  </p>
--- 327,338 ----
  <dt>MPC Library version 1.0.1 (or later)</dt>
  <dd>
  <p>Necessary to build GCC.  It can be downloaded from
! <a class="uref" href="https://www.multiprecision.org/mpc/">https://www.multiprecision.org/mpc/</a>.  If an MPC source distribution
! is found in a subdirectory of your GCC sources named <samp class="file">mpc</samp>, it
  will be built together with GCC.  Alternatively, if MPC is already
  installed but it is not in your default library search path, the
! <samp class="option">--with-mpc</samp> configure option should be used.  See also
! <samp class="option">--with-mpc-lib</samp> and <samp class="option">--with-mpc-include</samp>.
  The in-tree build is only supported with the MPC version that
  download_prerequisites installs.
  </p>
*************** download_prerequisites installs.
*** 368,377 ****
  <dt>isl Library version 0.15 or later.</dt>
  <dd>
  <p>Necessary to build GCC with the Graphite loop optimizations.
! It can be downloaded from <a href="https://gcc.gnu.org/pub/gcc/infrastructure/">https://gcc.gnu.org/pub/gcc/infrastructure/</a>.
  If an isl source distribution is found
! in a subdirectory of your GCC sources named <samp>isl</samp>, it will be
! built together with GCC.  Alternatively, the <samp>--with-isl</samp> configure
  option should be used if isl is not installed in your default library
  search path.
  </p>
--- 340,349 ----
  <dt>isl Library version 0.15 or later.</dt>
  <dd>
  <p>Necessary to build GCC with the Graphite loop optimizations.
! It can be downloaded from <a class="uref" href="https://gcc.gnu.org/pub/gcc/infrastructure/">https://gcc.gnu.org/pub/gcc/infrastructure/</a>.
  If an isl source distribution is found
! in a subdirectory of your GCC sources named <samp class="file">isl</samp>, it will be
! built together with GCC.  Alternatively, the <samp class="option">--with-isl</samp> configure
  option should be used if isl is not installed in your default library
  search path.
  </p>
*************** search path.
*** 380,386 ****
  <dd>
  <p>Necessary to build GCC with zstd compression used for LTO bytecode.
  The library is searched in your default library patch search.
! Alternatively, the <samp>--with-zstd</samp> configure option should be used.
  </p>
  </dd>
  <dt>Python3 modules</dt>
--- 352,358 ----
  <dd>
  <p>Necessary to build GCC with zstd compression used for LTO bytecode.
  The library is searched in your default library patch search.
! Alternatively, the <samp class="option">--with-zstd</samp> configure option should be used.
  </p>
  </dd>
  <dt>Python3 modules</dt>
*************** Alternatively, the <samp>--with-zstd</sa
*** 388,426 ****
  <p>The complete list of Python3 modules broken down by GCC subcomponent
  is shown below:
  </p>
! <dl compact="compact">
  <dt>internal debugging in gdbhooks</dt>
! <dd><p><code>gdb</code>, <code>gdb.printing</code>, <code>gdb.types</code>,
! <code>os.path</code>, <code>re</code>, <code>sys</code> and <code>tempfile</code>,
  </p>
  </dd>
  <dt>g++ testsuite</dt>
! <dd><p><code>gcov</code>, <code>gzip</code>, <code>json</code>, <code>os</code> and <code>pytest</code>.
  </p>
  </dd>
  <dt>SARIF testsuite</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>c++ cxx api generation</dt>
! <dd><p><code>csv</code>, <code>os</code>, <code>sys</code> and <code>time</code>.
  </p>
  </dd>
  <dt>modula-2 documentation</dt>
! <dd><p><code>argparse</code>, <code>os</code>, <code>pathlib</code>, <code>shutil</code> and
! <code>sys</code>.
  </p>
  </dd>
  <dt>git developer tools</dt>
! <dd><p><code>os</code> and <code>sys</code>.
  </p>
  </dd>
  <dt>ada documentation</dt>
! <dd><p><code>latex_elements</code>, <code>os</code>, <code>pygments</code>, <code>re</code>,
! <code>sys</code> and <code>time</code>.
  </p></dd>
  </dl>
  
--- 360,398 ----
  <p>The complete list of Python3 modules broken down by GCC subcomponent
  is shown below:
  </p>
! <dl class="table">
  <dt>internal debugging in gdbhooks</dt>
! <dd><p><code class="code">gdb</code>, <code class="code">gdb.printing</code>, <code class="code">gdb.types</code>,
! <code class="code">os.path</code>, <code class="code">re</code>, <code class="code">sys</code> and <code class="code">tempfile</code>,
  </p>
  </dd>
  <dt>g++ testsuite</dt>
! <dd><p><code class="code">gcov</code>, <code class="code">gzip</code>, <code class="code">json</code>, <code class="code">os</code> and <code class="code">pytest</code>.
  </p>
  </dd>
  <dt>SARIF testsuite</dt>
! <dd><p>Tests of SARIF output will use the <code class="code">check-jsonschema</code> program from
! the <code class="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>c++ cxx api generation</dt>
! <dd><p><code class="code">csv</code>, <code class="code">os</code>, <code class="code">sys</code> and <code class="code">time</code>.
  </p>
  </dd>
  <dt>modula-2 documentation</dt>
! <dd><p><code class="code">argparse</code>, <code class="code">os</code>, <code class="code">pathlib</code>, <code class="code">shutil</code> and
! <code class="code">sys</code>.
  </p>
  </dd>
  <dt>git developer tools</dt>
! <dd><p><code class="code">os</code> and <code class="code">sys</code>.
  </p>
  </dd>
  <dt>ada documentation</dt>
! <dd><p><code class="code">latex_elements</code>, <code class="code">os</code>, <code class="code">pygments</code>, <code class="code">re</code>,
! <code class="code">sys</code> and <code class="code">time</code>.
  </p></dd>
  </dl>
  
*************** tests are skipped.
*** 428,436 ****
  <dt>GNU gettext</dt>
  <dd>
  <p>Necessary to build GCC with internationalization support via
! <samp>--enable-nls</samp>.  It can be downloaded from
! <a href="https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</a>. If a GNU gettext distribution
! is found in a subdirectory of your GCC sources named <samp>gettext</samp>, it
  will be built together with GCC, unless present in the system (either in
  libc or as a stand-alone library).
  </p>
--- 400,408 ----
  <dt>GNU gettext</dt>
  <dd>
  <p>Necessary to build GCC with internationalization support via
! <samp class="option">--enable-nls</samp>.  It can be downloaded from
! <a class="uref" href="https://www.gnu.org/software/gettext/">https://www.gnu.org/software/gettext/</a>. If a GNU gettext distribution
! is found in a subdirectory of your GCC sources named <samp class="file">gettext</samp>, it
  will be built together with GCC, unless present in the system (either in
  libc or as a stand-alone library).
  </p>
*************** libc or as a stand-alone library).
*** 439,462 ****
  </dd>
  </dl>
  
! <a name="Tools_002fpackages-necessary-for-modifying-GCC"></a>
! <h3 class="heading">Tools/packages necessary for modifying GCC</h3>
! <dl compact="compact">
  <dt>autoconf version 2.69</dt>
  <dt>GNU m4 version 1.4.6 (or later)</dt>
  <dd>
! <p>Necessary when modifying <samp>configure.ac</samp>, <samp>aclocal.m4</samp>, etc.
! to regenerate <samp>configure</samp> and <samp>config.in</samp> files.
  </p>
  </dd>
  <dt>automake version 1.15.1</dt>
  <dd>
! <p>Necessary when modifying a <samp>Makefile.am</samp> file to regenerate its
! associated <samp>Makefile.in</samp>.
  </p>
! <p>Much of GCC does not use automake, so directly edit the <samp>Makefile.in</samp>
! file.  Specifically this applies to the <samp>gcc</samp>, <samp>intl</samp>,
! <samp>libcpp</samp>, <samp>libiberty</samp>, <samp>libobjc</samp> directories as well
  as any of their subdirectories.
  </p>
  <p>For directories that use automake, GCC requires the latest release in
--- 411,433 ----
  </dd>
  </dl>
  
! <h3 class="heading" id="Tools_002fpackages-necessary-for-modifying-GCC"><span>Tools/packages necessary for modifying GCC<a class="copiable-link" href="#Tools_002fpackages-necessary-for-modifying-GCC"> &para;</a></span></h3>
! <dl class="table">
  <dt>autoconf version 2.69</dt>
  <dt>GNU m4 version 1.4.6 (or later)</dt>
  <dd>
! <p>Necessary when modifying <samp class="file">configure.ac</samp>, <samp class="file">aclocal.m4</samp>, etc.
! to regenerate <samp class="file">configure</samp> and <samp class="file">config.in</samp> files.
  </p>
  </dd>
  <dt>automake version 1.15.1</dt>
  <dd>
! <p>Necessary when modifying a <samp class="file">Makefile.am</samp> file to regenerate its
! associated <samp class="file">Makefile.in</samp>.
  </p>
! <p>Much of GCC does not use automake, so directly edit the <samp class="file">Makefile.in</samp>
! file.  Specifically this applies to the <samp class="file">gcc</samp>, <samp class="file">intl</samp>,
! <samp class="file">libcpp</samp>, <samp class="file">libiberty</samp>, <samp class="file">libobjc</samp> directories as well
  as any of their subdirectories.
  </p>
  <p>For directories that use automake, GCC requires the latest release in
*************** to the latest released version.
*** 467,480 ****
  </dd>
  <dt>gettext version 0.14.5 (or later)</dt>
  <dd>
! <p>Needed to regenerate <samp>gcc.pot</samp>.
  </p>
  </dd>
  <dt>gperf version 2.7.2 (or later)</dt>
  <dd>
! <p>Necessary when modifying <code>gperf</code> input files, e.g.
! <samp>gcc/cp/cfns.gperf</samp> to regenerate its associated header file, e.g.
! <samp>gcc/cp/cfns.h</samp>.
  </p>
  </dd>
  <dt>DejaGnu version 1.5.3 (or later)</dt>
--- 438,451 ----
  </dd>
  <dt>gettext version 0.14.5 (or later)</dt>
  <dd>
! <p>Needed to regenerate <samp class="file">gcc.pot</samp>.
  </p>
  </dd>
  <dt>gperf version 2.7.2 (or later)</dt>
  <dd>
! <p>Necessary when modifying <code class="command">gperf</code> input files, e.g.
! <samp class="file">gcc/cp/cfns.gperf</samp> to regenerate its associated header file, e.g.
! <samp class="file">gcc/cp/cfns.h</samp>.
  </p>
  </dd>
  <dt>DejaGnu version 1.5.3 (or later)</dt>
*************** details.
*** 488,507 ****
  <dt>autogen version 5.5.4 (or later) and</dt>
  <dt>guile version 1.4.1 (or later)</dt>
  <dd>
! <p>Necessary to regenerate <samp>fixinc/fixincl.x</samp> from
! <samp>fixinc/inclhack.def</samp> and <samp>fixinc/*.tpl</samp>.
  </p>
! <p>Necessary to run &lsquo;<samp>make check</samp>&rsquo; for <samp>fixinc</samp>.
  </p>
! <p>Necessary to regenerate the top level <samp>Makefile.in</samp> file from
! <samp>Makefile.tpl</samp> and <samp>Makefile.def</samp>.
  </p>
! <p>Necessary to regenerate the <samp>bits/version.h</samp> header for libstdc++.
  </p>
  </dd>
  <dt>Flex version 2.5.4 (or later)</dt>
  <dd>
! <p>Necessary when modifying <samp>*.l</samp> files.
  </p>
  <p>Necessary to build GCC during development because the generated output
  files are not included in the version-controlled source repository.
--- 459,478 ----
  <dt>autogen version 5.5.4 (or later) and</dt>
  <dt>guile version 1.4.1 (or later)</dt>
  <dd>
! <p>Necessary to regenerate <samp class="file">fixinc/fixincl.x</samp> from
! <samp class="file">fixinc/inclhack.def</samp> and <samp class="file">fixinc/*.tpl</samp>.
  </p>
! <p>Necessary to run &lsquo;<samp class="samp">make check</samp>&rsquo; for <samp class="file">fixinc</samp>.
  </p>
! <p>Necessary to regenerate the top level <samp class="file">Makefile.in</samp> file from
! <samp class="file">Makefile.tpl</samp> and <samp class="file">Makefile.def</samp>.
  </p>
! <p>Necessary to regenerate the <samp class="file">bits/version.h</samp> header for libstdc++.
  </p>
  </dd>
  <dt>Flex version 2.5.4 (or later)</dt>
  <dd>
! <p>Necessary when modifying <samp class="file">*.l</samp> files.
  </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.
*** 510,516 ****
  </dd>
  <dt>Bison version 3.5.1 or later (but not 3.8.0)</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.
--- 481,487 ----
  </dd>
  <dt>Bison version 3.5.1 or later (but not 3.8.0)</dt>
  <dd>
! <p>Necessary when modifying <samp class="file">*.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.
*** 519,530 ****
  </dd>
  <dt>Texinfo version 4.7 (or later)</dt>
  <dd>
! <p>Necessary for running <code>makeinfo</code> when modifying <samp>*.texi</samp>
  files to test your changes.
  </p>
! <p>Necessary for running <code>make dvi</code>, <code>make pdf</code>,
! or <code>make html</code> to create formatted documentation.  Texinfo version
! 4.8 or later is required for <code>make pdf</code>.
  </p>
  <p>Necessary to build GCC documentation in info format during development
  because the generated output files are not included in the repository.
--- 490,501 ----
  </dd>
  <dt>Texinfo version 4.7 (or later)</dt>
  <dd>
! <p>Necessary for running <code class="command">makeinfo</code> when modifying <samp class="file">*.texi</samp>
  files to test your changes.
  </p>
! <p>Necessary for running <code class="command">make dvi</code>, <code class="command">make pdf</code>,
! or <code class="command">make html</code> to create formatted documentation.  Texinfo version
! 4.8 or later is required for <code class="command">make pdf</code>.
  </p>
  <p>Necessary to build GCC documentation in info format during development
  because the generated output files are not included in the repository.
*************** building the documentation without error
*** 538,555 ****
  install a newer release to get the best appearance and usability of
  the generated manuals.
  </p>
  </dd>
  <dt>TeX (any working version)</dt>
  <dd>
! <p>Necessary for running <code>texi2dvi</code> and <code>texi2pdf</code>, which
! are used when running <code>make dvi</code> or <code>make pdf</code> to create
  DVI or PDF files, respectively.
  </p>
  </dd>
  <dt>Sphinx version 1.0 (or later)</dt>
  <dd>
! <p>Necessary to regenerate <samp>jit/docs/_build/texinfo</samp> from the <samp>.rst</samp>
! files in the directories below <samp>jit/docs</samp>.
  </p>
  </dd>
  <dt>git (any version)</dt>
--- 509,529 ----
  install a newer release to get the best appearance and usability of
  the generated manuals.
  </p>
+ <p>Also note that Texinfo older than version 7.1 may throw incorrect build
+ warnings, though the generated documentation is correct.
+ </p>
  </dd>
  <dt>TeX (any working version)</dt>
  <dd>
! <p>Necessary for running <code class="command">texi2dvi</code> and <code class="command">texi2pdf</code>, which
! are used when running <code class="command">make dvi</code> or <code class="command">make pdf</code> to create
  DVI or PDF files, respectively.
  </p>
  </dd>
  <dt>Sphinx version 1.0 (or later)</dt>
  <dd>
! <p>Necessary to regenerate <samp class="file">jit/docs/_build/texinfo</samp> from the <samp class="file">.rst</samp>
! files in the directories below <samp class="file">jit/docs</samp>.
  </p>
  </dd>
  <dt>git (any version)</dt>
*************** snapshots of the development sources are
*** 566,572 ****
  </dd>
  <dt>patch version 2.5.4 (or later)</dt>
  <dd>
! <p>Necessary when applying patches, created with <code>diff</code>, to one&rsquo;s
  own sources.
  </p>
  </dd>
--- 540,546 ----
  </dd>
  <dt>patch version 2.5.4 (or later)</dt>
  <dd>
! <p>Necessary when applying patches, created with <code class="command">diff</code>, to one&rsquo;s
  own sources.
  </p>
  </dd>
*************** own sources.
*** 574,580 ****
  
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 548,554 ----
  
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/specific.html gcc-16.1.0-RC-20260423/INSTALL/specific.html
*** gcc-15.2.0/INSTALL/specific.html	Fri Aug  8 06:52:56 2025
--- gcc-16.1.0-RC-20260423/INSTALL/specific.html	Thu Apr 23 11:07:46 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Host/Target specific installation notes for GCC</title>
  
  <meta name="description" content="Host/Target specific installation notes for GCC">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,42 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
  div.example {margin-left: 3.2em}
! span:hover a.copiable-link {visibility: visible}
! ul.mark-bullet {list-style-type: disc}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Host/Target specific installation notes for GCC</h1>
  
  
  
--- 44,49 ----
*************** ul.no-bullet {list-style: none}
*** 89,343 ****
  
  
  
! <a name="index-Specific"></a>
! <a name="index-Specific-installation-notes"></a>
! <a name="index-Target-specific-installation"></a>
! <a name="index-Host-specific-installation"></a>
! <a name="index-Target-specific-installation-notes"></a>
  
! <p>Please read this document carefully <em>before</em> installing the
  GNU Compiler Collection on your machine.
  </p>
! <p>Note that this list of install notes is <em>not</em> a list of supported
  hosts or targets.  Not all supported hosts and targets are listed
  here, only the ones that require host-specific or target-specific
! information have to. 
  </p>
! <ul>
! <li> <a href="#aarch64-x-x">aarch64*-*-*</a>
! </li><li> <a href="#amdgcn-x-amdhsa">amdgcn-*-amdhsa</a>
! </li><li> <a href="#amd64-x-solaris2">amd64-*-solaris2*</a>
! </li><li> <a href="#arc-x-elf32">arc-*-elf32</a>
! </li><li> <a href="#arc-linux-uclibc">arc-linux-uclibc</a>
! </li><li> <a href="#arm-x-eabi">arm-*-eabi</a>
! </li><li> <a href="#avr">avr</a>
! </li><li> <a href="#bfin">Blackfin</a>
! </li><li> <a href="#cris">cris</a>
! </li><li> <a href="#dos">DOS</a>
! </li><li> <a href="#epiphany-x-elf">epiphany-*-elf</a>
! </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>
! </li><li> <a href="#ia64-x-linux">ia64-*-linux</a>
! </li><li> <a href="#ia64-x-hpux">ia64-*-hpux*</a>
! </li><li> <a href="#x-ibm-aix">*-ibm-aix*</a>
! </li><li> <a href="#iq2000-x-elf">iq2000-*-elf</a>
! </li><li> <a href="#loongarch">loongarch</a>
! </li><li> <a href="#lm32-x-elf">lm32-*-elf</a>
! </li><li> <a href="#lm32-x-uclinux">lm32-*-uclinux</a>
! </li><li> <a href="#m32c-x-elf">m32c-*-elf</a>
! </li><li> <a href="#m32r-x-elf">m32r-*-elf</a>
! </li><li> <a href="#m68k-x-x">m68k-*-*</a>
! </li><li> <a href="#m68k-x-uclinux">m68k-*-uclinux</a>
! </li><li> <a href="#microblaze-x-elf">microblaze-*-elf</a>
! </li><li> <a href="#mips-x-x">mips-*-*</a>
! </li><li> <a href="#moxie-x-elf">moxie-*-elf</a>
! </li><li> <a href="#msp430-x-elf">msp430-*-elf</a>
! </li><li> <a href="#nds32le-x-elf">nds32le-*-elf</a>
! </li><li> <a href="#nds32be-x-elf">nds32be-*-elf</a>
! </li><li> <a href="#nvptx-x-none">nvptx-*-none</a>
! </li><li> <a href="#or1k-x-elf">or1k-*-elf</a>
! </li><li> <a href="#or1k-x-linux">or1k-*-linux</a>
! </li><li> <a href="#powerpc-x-x">powerpc*-*-*</a>
! </li><li> <a href="#powerpc-x-darwin">powerpc-*-darwin*</a>
! </li><li> <a href="#powerpc-x-elf">powerpc-*-elf</a>
! </li><li> <a href="#powerpc-x-linux-gnu">powerpc*-*-linux-gnu*</a>
! </li><li> <a href="#powerpc-x-netbsd">powerpc-*-netbsd*</a>
! </li><li> <a href="#powerpc-x-eabisim">powerpc-*-eabisim</a>
! </li><li> <a href="#powerpc-x-eabi">powerpc-*-eabi</a>
! </li><li> <a href="#powerpcle-x-elf">powerpcle-*-elf</a>
! </li><li> <a href="#powerpcle-x-eabisim">powerpcle-*-eabisim</a>
! </li><li> <a href="#powerpcle-x-eabi">powerpcle-*-eabi</a>
! </li><li> <a href="#riscv32-x-elf">riscv32-*-elf</a>
! </li><li> <a href="#riscv32-x-linux">riscv32-*-linux</a>
! </li><li> <a href="#riscv64-x-elf">riscv64-*-elf</a>
! </li><li> <a href="#riscv64-x-linux">riscv64-*-linux</a>
! </li><li> <a href="#rl78-x-elf">rl78-*-elf</a>
! </li><li> <a href="#rx-x-elf">rx-*-elf</a>
! </li><li> <a href="#s390-x-linux">s390-*-linux*</a>
! </li><li> <a href="#s390x-x-linux">s390x-*-linux*</a>
! </li><li> <a href="#s390x-ibm-tpf">s390x-ibm-tpf*</a>
! </li><li> <a href="#x-x-solaris2">*-*-solaris2*</a>
! </li><li> <a href="#sparc-x-x">sparc*-*-*</a>
! </li><li> <a href="#sparc-sun-solaris2">sparc-sun-solaris2*</a>
! </li><li> <a href="#sparc-x-linux">sparc-*-linux*</a>
! </li><li> <a href="#sparc64-x-solaris2">sparc64-*-solaris2*</a>
! </li><li> <a href="#sparcv9-x-solaris2">sparcv9-*-solaris2*</a>
! </li><li> <a href="#c6x-x-x">c6x-*-*</a>
! </li><li> <a href="#visium-x-elf">visium-*-elf</a>
! </li><li> <a href="#x-x-vxworks">*-*-vxworks*</a>
! </li><li> <a href="#x86-64-x-x">x86_64-*-*, amd64-*-*</a>
! </li><li> <a href="#x86-64-x-solaris2">x86_64-*-solaris2*</a>
! </li><li> <a href="#xtensa-x-elf">xtensa*-*-elf</a>
! </li><li> <a href="#xtensa-x-linux">xtensa*-*-linux*</a>
! </li><li> <a href="#windows">Microsoft Windows</a>
! </li><li> <a href="#x-x-cygwin">*-*-cygwin</a>
! </li><li> <a href="#x-x-mingw32">*-*-mingw32</a>
! </li><li> <a href="#os2">OS/2</a>
! </li><li> <a href="#older">Older systems</a>
  </li></ul>
  
! <ul>
! <li> <a href="#elf">all ELF targets</a> (SVR4, Solaris, etc.)
  </li></ul>
  
  
  <!-- -------- host/target specific issues start here ---------------- -->
  <hr />
! <a name="aarch64-x-x"></a><a name="aarch64*-*-*"></a>
! <h3 class="heading">aarch64*-*-*</h3>
  <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
  default and can be explicitly disabled during compilation by passing the
! <samp>-mno-fix-cortex-a53-835769</samp> option.  Conversely,
! <samp>--disable-fix-cortex-a53-835769</samp> will disable the workaround by
  default.  The workaround is disabled by default if neither of
! <samp>--enable-fix-cortex-a53-835769</samp> or
! <samp>--disable-fix-cortex-a53-835769</samp> is given at configure time.
  </p>
  <p>To enable a workaround for the Cortex-A53 erratum number 843419 by default
  (for all CPUs regardless of -mcpu option given) at configure time use the
! <samp>--enable-fix-cortex-a53-843419</samp> option.  This workaround is applied at
  link time.  Enabling the workaround will cause GCC to pass the relevant option
  to the linker.  It can be explicitly disabled during compilation by passing the
! <samp>-mno-fix-cortex-a53-843419</samp> option.  Conversely,
! <samp>--disable-fix-cortex-a53-843419</samp> will disable the workaround by default.
  The workaround is disabled by default if neither of
! <samp>--enable-fix-cortex-a53-843419</samp> or
! <samp>--disable-fix-cortex-a53-843419</samp> is given at configure time.
  </p>
  <p>To enable Branch Target Identification Mechanism and Return Address Signing by
! default at configure time use the <samp>--enable-standard-branch-protection</samp>
! option.  This is equivalent to having <samp>-mbranch-protection=standard</samp>
  during compilation.  This can be explicitly disabled during compilation by
! passing the <samp>-mbranch-protection=none</samp> option which turns off all
  types of branch protections.  Conversely,
! <samp>--disable-standard-branch-protection</samp> will disable both the
  protections by default.  This mechanism is turned off by default if neither
  of the options are given at configure time.
  </p>
  <hr />
! <a name="amd64-x-solaris2"></a><a name="amd64-*-solaris2*"></a>
! <h3 class="heading">amd64-*-solaris2*</h3>
! <p>This is a synonym for &lsquo;<samp>x86_64-*-solaris2*</samp>&rsquo;.
! </p>
! <hr />
! <a name="amdgcn-x-amdhsa"></a><a name="amdgcn-*-amdhsa"></a>
! <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 />
! <a name="arc-x-elf32"></a><a name="arc-*-elf32"></a>
! <h3 class="heading">arc-*-elf32</h3>
  
! <p>Use &lsquo;<samp>configure --target=arc-elf32 --with-cpu=<var>cpu</var> --enable-languages=&quot;c,c++&quot;</samp>&rsquo;
! to configure GCC, with <var>cpu</var> being one of &lsquo;<samp>arc600</samp>&rsquo;, &lsquo;<samp>arc601</samp>&rsquo;,
! or &lsquo;<samp>arc700</samp>&rsquo;.
  </p>
  <hr />
! <a name="arc-linux-uclibc"></a><a name="arc-linux-uclibc-1"></a>
! <h3 class="heading">arc-linux-uclibc</h3>
  
! <p>Use &lsquo;<samp>configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages=&quot;c,c++&quot;</samp>&rsquo; to configure GCC.
  </p>
  <hr />
! <a name="arm-x-eabi"></a><a name="arm-*-eabi"></a>
! <h3 class="heading">arm-*-eabi</h3>
  <p>ARM-family processors.
  </p>
  <p>Building the Ada frontend commonly fails (an infinite loop executing
! <code>xsinfo</code>) if the host compiler is GNAT 4.8.  Host compilers built from the
  GNAT 4.6, 4.9 or 5 release branches are known to succeed.
  </p>
  <hr />
! <a name="avr"></a><a name="avr-1"></a>
! <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 />
! <a name="bfin"></a><a name="Blackfin"></a>
! <h3 class="heading">Blackfin</h3>
  <p>The Blackfin processor, an Analog Devices DSP.
  See &ldquo;Blackfin Options&rdquo; in the main manual
  </p>
  <p>More information, and a version of binutils with support for this processor,
! are available at <a href="https://sourceforge.net/projects/adi-toolchain/">https://sourceforge.net/projects/adi-toolchain/</a>.
  </p>
  <hr />
! <a name="cris"></a><a name="CRIS"></a>
! <h3 class="heading">CRIS</h3>
  <p>CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for
  example the ETRAX series.  These are used in embedded applications.
  </p>
  <p>See &ldquo;CRIS Options&rdquo; in the main manual
  for a list of CRIS-specific options.
  </p>
! <p>Use &lsquo;<samp>configure --target=cris-elf</samp>&rsquo; to configure GCC&nbsp;for building
  a cross-compiler for CRIS.
  <hr />
! <a name="dos"></a></p><a name="DOS"></a>
! <h3 class="heading">DOS</h3>
! <p>Please have a look at the <a href="binaries.html">binaries page</a>.
  </p>
  <p>You cannot install GCC by itself on MSDOS; it will not compile under
  any MSDOS compiler except itself.  You need to get the complete
--- 71,310 ----
  
  
  
! <a class="index-entry-id" id="index-Specific"></a>
! <a class="index-entry-id" id="index-Specific-installation-notes"></a>
! <a class="index-entry-id" id="index-Target-specific-installation"></a>
! <a class="index-entry-id" id="index-Host-specific-installation"></a>
! <a class="index-entry-id" id="index-Target-specific-installation-notes"></a>
  
! <p>Please read this document carefully <em class="emph">before</em> installing the
  GNU Compiler Collection on your machine.
  </p>
! <p>Note that this list of install notes is <em class="emph">not</em> a list of supported
  hosts or targets.  Not all supported hosts and targets are listed
  here, only the ones that require host-specific or target-specific
! information have to.
  </p>
! <ul class="itemize mark-bullet">
! <li><a class="uref" href="#aarch64-x-x">aarch64*-*-*</a>
! </li><li><a class="uref" href="#amdgcn-x-amdhsa">amdgcn-*-amdhsa</a>
! </li><li><a class="uref" href="#arc-x-elf32">arc-*-elf32</a>
! </li><li><a class="uref" href="#arc-linux-uclibc">arc-linux-uclibc</a>
! </li><li><a class="uref" href="#arm-x-eabi">arm-*-eabi</a>
! </li><li><a class="uref" href="#avr">avr</a>
! </li><li><a class="uref" href="#bfin">Blackfin</a>
! </li><li><a class="uref" href="#cris">cris</a>
! </li><li><a class="uref" href="#dos">DOS</a>
! </li><li><a class="uref" href="#epiphany-x-elf">epiphany-*-elf</a>
! </li><li><a class="uref" href="#ft32-x-elf">ft32-*-elf</a>
! </li><li><a class="uref" href="#x-x-freebsd">*-*-freebsd*</a>
! </li><li><a class="uref" href="#h8300-hms">h8300-hms</a>
! </li><li><a class="uref" href="#hppa-x-linux">hppa-*-linux</a>
! </li><li><a class="uref" href="#hppa64-hp-hpux11">hppa64-hp-hpux11*</a>
! </li><li><a class="uref" href="#x-x-linux-gnu">*-*-linux-gnu</a>
! </li><li><a class="uref" href="#ix86-x-linux">i?86-*-linux*</a>
! </li><li><a class="uref" href="#ia64-x-linux">ia64-*-linux</a>
! </li><li><a class="uref" href="#ia64-x-hpux">ia64-*-hpux*</a>
! </li><li><a class="uref" href="#x-ibm-aix">*-ibm-aix*</a>
! </li><li><a class="uref" href="#iq2000-x-elf">iq2000-*-elf</a>
! </li><li><a class="uref" href="#loongarch">loongarch</a>
! </li><li><a class="uref" href="#lm32-x-elf">lm32-*-elf</a>
! </li><li><a class="uref" href="#lm32-x-uclinux">lm32-*-uclinux</a>
! </li><li><a class="uref" href="#m32c-x-elf">m32c-*-elf</a>
! </li><li><a class="uref" href="#m32r-x-elf">m32r-*-elf</a>
! </li><li><a class="uref" href="#m68k-x-x">m68k-*-*</a>
! </li><li><a class="uref" href="#m68k-x-uclinux">m68k-*-uclinux</a>
! </li><li><a class="uref" href="#microblaze-x-elf">microblaze-*-elf</a>
! </li><li><a class="uref" href="#mips-x-x">mips-*-*</a>
! </li><li><a class="uref" href="#moxie-x-elf">moxie-*-elf</a>
! </li><li><a class="uref" href="#msp430-x-elf">msp430-*-elf</a>
! </li><li><a class="uref" href="#nds32le-x-elf">nds32le-*-elf</a>
! </li><li><a class="uref" href="#nds32be-x-elf">nds32be-*-elf</a>
! </li><li><a class="uref" href="#nvptx-x-none">nvptx-*-none</a>
! </li><li><a class="uref" href="#or1k-x-elf">or1k-*-elf</a>
! </li><li><a class="uref" href="#or1k-x-linux">or1k-*-linux</a>
! </li><li><a class="uref" href="#powerpc-x-x">powerpc*-*-*</a>
! </li><li><a class="uref" href="#powerpc-x-darwin">powerpc-*-darwin*</a>
! </li><li><a class="uref" href="#powerpc-x-elf">powerpc-*-elf</a>
! </li><li><a class="uref" href="#powerpc-x-linux-gnu">powerpc*-*-linux-gnu*</a>
! </li><li><a class="uref" href="#powerpc-x-netbsd">powerpc-*-netbsd*</a>
! </li><li><a class="uref" href="#powerpc-x-eabisim">powerpc-*-eabisim</a>
! </li><li><a class="uref" href="#powerpc-x-eabi">powerpc-*-eabi</a>
! </li><li><a class="uref" href="#powerpcle-x-elf">powerpcle-*-elf</a>
! </li><li><a class="uref" href="#powerpcle-x-eabisim">powerpcle-*-eabisim</a>
! </li><li><a class="uref" href="#powerpcle-x-eabi">powerpcle-*-eabi</a>
! </li><li><a class="uref" href="#riscv32-x-elf">riscv32-*-elf</a>
! </li><li><a class="uref" href="#riscv32-x-linux">riscv32-*-linux</a>
! </li><li><a class="uref" href="#riscv64-x-elf">riscv64-*-elf</a>
! </li><li><a class="uref" href="#riscv64-x-linux">riscv64-*-linux</a>
! </li><li><a class="uref" href="#rl78-x-elf">rl78-*-elf</a>
! </li><li><a class="uref" href="#rx-x-elf">rx-*-elf</a>
! </li><li><a class="uref" href="#s390-x-linux">s390-*-linux*</a>
! </li><li><a class="uref" href="#s390x-x-linux">s390x-*-linux*</a>
! </li><li><a class="uref" href="#s390x-ibm-tpf">s390x-ibm-tpf*</a>
! </li><li><a class="uref" href="#x-x-solaris2">*-*-solaris2*</a>
! </li><li><a class="uref" href="#sparc-x-x">sparc*-*-*</a>
! </li><li><a class="uref" href="#sparc-x-linux">sparc-*-linux*</a>
! </li><li><a class="uref" href="#c6x-x-x">c6x-*-*</a>
! </li><li><a class="uref" href="#visium-x-elf">visium-*-elf</a>
! </li><li><a class="uref" href="#x-x-vxworks">*-*-vxworks*</a>
! </li><li><a class="uref" href="#x86-64-x-x">x86_64-*-*, amd64-*-*</a>
! </li><li><a class="uref" href="#xtensa-x-elf">xtensa*-*-elf</a>
! </li><li><a class="uref" href="#xtensa-x-linux">xtensa*-*-linux*</a>
! </li><li><a class="uref" href="#windows">Microsoft Windows</a>
! </li><li><a class="uref" href="#x-x-cygwin">*-*-cygwin</a>
! </li><li><a class="uref" href="#x-x-mingw32">*-*-mingw32</a>
! </li><li><a class="uref" href="#os2">OS/2</a>
! </li><li><a class="uref" href="#older">Older systems</a>
  </li></ul>
  
! <ul class="itemize mark-bullet">
! <li><a class="uref" href="#elf">all ELF targets</a> (SVR4, Solaris, etc.)
  </li></ul>
  
  
  <!-- -------- host/target specific issues start here ---------------- -->
  <hr />
! <a class="anchor" id="aarch64-x-x"></a><h3 class="heading" id="aarch64*-*-*"><span>aarch64*-*-*<a class="copiable-link" href="#aarch64*-*-*"> &para;</a></span></h3>
  <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 class="option">--enable-fix-cortex-a53-835769</samp> option.  This will enable the fix by
  default and can be explicitly disabled during compilation by passing the
! <samp class="option">-mno-fix-cortex-a53-835769</samp> option.  Conversely,
! <samp class="option">--disable-fix-cortex-a53-835769</samp> will disable the workaround by
  default.  The workaround is disabled by default if neither of
! <samp class="option">--enable-fix-cortex-a53-835769</samp> or
! <samp class="option">--disable-fix-cortex-a53-835769</samp> is given at configure time.
  </p>
  <p>To enable a workaround for the Cortex-A53 erratum number 843419 by default
  (for all CPUs regardless of -mcpu option given) at configure time use the
! <samp class="option">--enable-fix-cortex-a53-843419</samp> option.  This workaround is applied at
  link time.  Enabling the workaround will cause GCC to pass the relevant option
  to the linker.  It can be explicitly disabled during compilation by passing the
! <samp class="option">-mno-fix-cortex-a53-843419</samp> option.  Conversely,
! <samp class="option">--disable-fix-cortex-a53-843419</samp> will disable the workaround by default.
  The workaround is disabled by default if neither of
! <samp class="option">--enable-fix-cortex-a53-843419</samp> or
! <samp class="option">--disable-fix-cortex-a53-843419</samp> is given at configure time.
  </p>
  <p>To enable Branch Target Identification Mechanism and Return Address Signing by
! default at configure time use the <samp class="option">--enable-standard-branch-protection</samp>
! option.  This is equivalent to having <samp class="option">-mbranch-protection=standard</samp>
  during compilation.  This can be explicitly disabled during compilation by
! passing the <samp class="option">-mbranch-protection=none</samp> option which turns off all
  types of branch protections.  Conversely,
! <samp class="option">--disable-standard-branch-protection</samp> will disable both the
  protections by default.  This mechanism is turned off by default if neither
  of the options are given at configure time.
  </p>
  <hr />
! <a class="anchor" id="amdgcn-x-amdhsa"></a><h3 class="heading" id="amdgcn-*-amdhsa"><span>amdgcn-*-amdhsa<a class="copiable-link" href="#amdgcn-*-amdhsa"> &para;</a></span></h3>
  <p>AMD GCN GPU target.
  </p>
  <p>Instead of GNU Binutils, you need to install LLVM and copy
! <samp class="file">bin/llvm-mc</samp> to <samp class="file">amdgcn-amdhsa/bin/as</samp>,
! <samp class="file">bin/lld</samp> to <samp class="file">amdgcn-amdhsa/bin/ld</samp>,
! <samp class="file">bin/llvm-objdump</samp> to <samp class="file">amdgcn-amdhsa/bin/objdump</samp>,
! <samp class="file">bin/llvm-nm</samp> to <samp class="file">amdgcn-amdhsa/bin/nm</samp>, and
! <samp class="file">bin/llvm-ar</samp> to both <samp class="file">bin/amdgcn-amdhsa-ar</samp> and
! <samp class="file">bin/amdgcn-amdhsa-ranlib</samp>.  The LLVM version is required for the
! assembler (llvm-mc) and linker (lld); however, for the others, the respective
! GNU Binutils counterpart can be used instead.  While all mentioned programs are
! required when building GCC, the installed GCC compiler only needs the assembler
! and linker; <code class="code">nm</code>, <code class="code">ar</code>, and <code class="code">ranlib</code> are required when installing
! <code class="code">gcc-nm</code>, <code class="code">gcc-ar</code>, and <code class="code">gcc-ranlib</code>.
  </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 class="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 class="code">gfx908</code>, <code class="code">gfx90a</code>,
! <code class="code">gfx9-generic</code>, <code class="code">gfx9-4-generic</code>, <code class="code">gfx10-3-generic</code>, and
! <code class="code">gfx11-generic</code>, which covers all supported archs.  The default multilib
! configuration requires LLVM 20 or newer.  LLVM 13.0.1 or LLVM 14 can be used by
! specifying a <code class="code">--with-multilib-list=</code> that only lists GFX9 or GFX10-3
! devices, while LLVM 15 is required for GFX 11 device and <code class="code">gfx1036</code>.
! At least LLVM 16 is required for <code class="code">gfx1150</code> and <code class="code">gfx1151</code>,
! LLVM 18 for <code class="code">gfx942</code>, LLVM 19 for the generic <code class="code">gfx9-generic</code>,
! <code class="code">gfx10-3-generic</code>, and <code class="code">gfx11-generic</code> targets and for <code class="code">gfx1152</code>,
! while LLVM 20 is required for <code class="code">gfx950</code>, <code class="code">gfx1153</code>, and
! <code class="code">gfx9-4-generic</code>.
  </p>
  <p>The supported ISA architectures are listed in the GCC manual. The generic
! ISA targets <code class="code">gfx9-generic</code>, <code class="code">gfx10-3-generic</code>, and
! <code class="code">gfx11-generic</code> reduce the number of required multilibs but note
! that <code class="code">gfx9-generic</code> does not include <code class="code">gfx908</code> or <code class="code">gfx90a</code>,
  that linking specific ISA code with generic code is currently not supported,
! and that only ROCm 6.4.0 or newer is able to execute generic code.
  </p>
! <p>Use Newlib (4.6.0 or newer).
  </p>
  <p>To run the binaries, install the HSA Runtime from the
! <a class="uref" href="https://rocm.docs.amd.com/">ROCm Platform</a>, and use
! <samp class="file">libexec/gcc/amdhsa-amdhsa/<var class="var">version</var>/gcn-run</samp> to launch them
  on the GPU.
  </p>
  <hr />
! <a class="anchor" id="arc-x-elf32"></a><h3 class="heading" id="arc-*-elf32"><span>arc-*-elf32<a class="copiable-link" href="#arc-*-elf32"> &para;</a></span></h3>
  
! <p>Use &lsquo;<samp class="samp">configure --target=arc-elf32 --with-cpu=<var class="var">cpu</var> --enable-languages=&quot;c,c++&quot;</samp>&rsquo;
! to configure GCC, with <var class="var">cpu</var> being one of &lsquo;<samp class="samp">arc600</samp>&rsquo;, &lsquo;<samp class="samp">arc601</samp>&rsquo;,
! or &lsquo;<samp class="samp">arc700</samp>&rsquo;.
  </p>
  <hr />
! <a class="anchor" id="arc-linux-uclibc"></a><h3 class="heading" id="arc-linux-uclibc-1"><span>arc-linux-uclibc<a class="copiable-link" href="#arc-linux-uclibc-1"> &para;</a></span></h3>
  
! <p>Use &lsquo;<samp class="samp">configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages=&quot;c,c++&quot;</samp>&rsquo; to configure GCC.
  </p>
  <hr />
! <a class="anchor" id="arm-x-eabi"></a><h3 class="heading" id="arm-*-eabi"><span>arm-*-eabi<a class="copiable-link" href="#arm-*-eabi"> &para;</a></span></h3>
  <p>ARM-family processors.
  </p>
  <p>Building the Ada frontend commonly fails (an infinite loop executing
! <code class="code">xsinfo</code>) if the host compiler is GNAT 4.8.  Host compilers built from the
  GNAT 4.6, 4.9 or 5 release branches are known to succeed.
  </p>
  <hr />
! <a class="anchor" id="avr"></a><h3 class="heading" id="avr-1"><span>avr<a class="copiable-link" href="#avr-1"> &para;</a></span></h3>
  <p>AVR 8-bit microcontrollers.  These are used in embedded
  applications.  There are no standard Unix configurations.
! See <a class="uref" 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 class="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 class="itemize mark-bullet">
! <li><a class="uref" 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 class="uref" 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 />
! <a class="anchor" id="bfin"></a><h3 class="heading" id="Blackfin"><span>Blackfin<a class="copiable-link" href="#Blackfin"> &para;</a></span></h3>
  <p>The Blackfin processor, an Analog Devices DSP.
  See &ldquo;Blackfin Options&rdquo; in the main manual
  </p>
  <p>More information, and a version of binutils with support for this processor,
! are available at <a class="uref" href="https://sourceforge.net/projects/adi-toolchain/">https://sourceforge.net/projects/adi-toolchain/</a>.
  </p>
  <hr />
! <a class="anchor" id="cris"></a><h3 class="heading" id="CRIS"><span>CRIS<a class="copiable-link" href="#CRIS"> &para;</a></span></h3>
  <p>CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for
  example the ETRAX series.  These are used in embedded applications.
  </p>
  <p>See &ldquo;CRIS Options&rdquo; in the main manual
  for a list of CRIS-specific options.
  </p>
! <p>Use &lsquo;<samp class="samp">configure --target=cris-elf</samp>&rsquo; to configure GCC&nbsp;for building
  a cross-compiler for CRIS.
  <hr />
! <a class="anchor" id="dos"></a></p><h3 class="heading" id="DOS"><span>DOS<a class="copiable-link" href="#DOS"> &para;</a></span></h3>
! <p>Please have a look at the <a class="uref" href="binaries.html">binaries page</a>.
  </p>
  <p>You cannot install GCC by itself on MSDOS; it will not compile under
  any MSDOS compiler except itself.  You need to get the complete
*************** compilation package DJGPP, which include
*** 345,399 ****
  and includes all the necessary compilation tools and libraries.
  </p>
  <hr />
! <a name="epiphany-x-elf"></a><a name="epiphany-*-elf"></a>
! <h3 class="heading">epiphany-*-elf</h3>
  <p>Adapteva Epiphany.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="x-x-freebsd"></a><a name="g_t*-*-freebsd*"></a>
! <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
  known to enable additional features and improve overall testsuite
  results.
  </p>
  <p>Ada and D (or rather their respective libraries) are broken on
  FreeBSD/i386. This also affects building 32-bit libraries on
! FreeBSD/amd64, so configure with <samp>--disable-multilib</samp>
  there in case you are building one of these front ends.
  </p>
  <p>Go (or rather libgo) is generally broken on FreeBSD.
  </p>
  <hr />
! <a name="ft32-x-elf"></a><a name="ft32-*-elf"></a>
! <h3 class="heading">ft32-*-elf</h3>
  <p>The FT32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="h8300-hms"></a><a name="h8300-hms-1"></a>
! <h3 class="heading">h8300-hms</h3>
  <p>Renesas H8/300 series of processors.
  </p>
  <hr />
! <a name="hppa64-hp-hpux11"></a><a name="hppa64-hp-hpux11*"></a>
! <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.
--- 312,361 ----
  and includes all the necessary compilation tools and libraries.
  </p>
  <hr />
! <a class="anchor" id="epiphany-x-elf"></a><h3 class="heading" id="epiphany-*-elf"><span>epiphany-*-elf<a class="copiable-link" href="#epiphany-*-elf"> &para;</a></span></h3>
  <p>Adapteva Epiphany.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="x-x-freebsd"></a><h3 class="heading" id="g_t*-*-freebsd*"><span>*-*-freebsd*<a class="copiable-link" href="#g_t*-*-freebsd*"> &para;</a></span></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 class="file">devel/binutils</samp> port. This also has been
  known to enable additional features and improve overall testsuite
  results.
  </p>
  <p>Ada and D (or rather their respective libraries) are broken on
  FreeBSD/i386. This also affects building 32-bit libraries on
! FreeBSD/amd64, so configure with <samp class="option">--disable-multilib</samp>
  there in case you are building one of these front ends.
  </p>
  <p>Go (or rather libgo) is generally broken on FreeBSD.
  </p>
  <hr />
! <a class="anchor" id="ft32-x-elf"></a><h3 class="heading" id="ft32-*-elf"><span>ft32-*-elf<a class="copiable-link" href="#ft32-*-elf"> &para;</a></span></h3>
  <p>The FT32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="h8300-hms"></a><h3 class="heading" id="h8300-hms-1"><span>h8300-hms<a class="copiable-link" href="#h8300-hms-1"> &para;</a></span></h3>
  <p>Renesas H8/300 series of processors.
  </p>
  <hr />
! <a class="anchor" id="hppa64-hp-hpux11"></a><h3 class="heading" id="hppa64-hp-hpux11*"><span>hppa64-hp-hpux11*<a class="copiable-link" href="#hppa64-hp-hpux11*"> &para;</a></span></h3>
! <p>Only the 64-bit &lsquo;<samp class="samp">hppa</samp>&rsquo; target is supported on HP-UX.  Support
! for 32-bit &lsquo;<samp class="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 class="uref" href="./configure.html#with-gnu-as"><samp class="option">--with-gnu-as</samp></a> and
! <samp class="option">--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 class="option">--with-ld=&hellip;</samp> option.
  </p>
! <p>The DCE thread library is not supported, so <samp class="option">--enable-threads=dce</samp>
  does not work.
  </p>
  <p>Currently, there are no precompiled binaries for 64-bit HP-UX.
*************** Then, the GCC distribution can be built.
*** 403,456 ****
  to the many dependencies.
  </p>
  <hr />
! <a name="x-x-linux-gnu"></a><a name="g_t*-*-linux-gnu"></a>
! <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 />
! <a name="ix86-x-linux"></a><a name="i_003f86-*-linux*"></a>
! <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 />
! <a name="ix86-x-solaris2"></a><a name="i_003f86-*-solaris2*"></a>
! <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;.
  </p>
  <hr />
! <a name="ia64-x-linux"></a><a name="ia64-*-linux"></a>
! <h3 class="heading">ia64-*-linux</h3>
  <p>IA-64 processor (also known as IPF, or Itanium Processor Family)
  running GNU/Linux.
  </p>
  <p>If you are using the installed system libunwind library with
! <samp>--with-system-libunwind</samp>, then you must use libunwind 0.98 or
  later.
  </p>
  <hr />
! <a name="ia64-x-hpux"></a><a name="ia64-*-hpux*"></a>
! <h3 class="heading">ia64-*-hpux*</h3>
  <p>Building GCC on this target requires the GNU Assembler.  The bundled HP
  assembler will not work.  To prevent GCC from using the wrong assembler,
! the option <samp>--with-gnu-as</samp> may be necessary.
  </p>
  <hr />
  <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
! <a name="x-ibm-aix"></a><a name="g_t*-ibm-aix*"></a>
! <h3 class="heading">*-ibm-aix*</h3>
  <p>Support for AIX version 3 and older was discontinued in GCC 3.4.
  Support for AIX version 4.2 and older was discontinued in GCC 4.5.
  </p>
  <p>&ldquo;out of memory&rdquo; bootstrap failures may indicate a problem with
  process resource limits (ulimit).  Hard limits are configured in the
! <samp>/etc/security/limits</samp> system configuration file.
  </p>
  <p>GCC 4.9 and above require a C++ compiler for bootstrap.  IBM VAC++ / xlC
  cannot bootstrap GCC.  xlc can bootstrap an older version of GCC and
--- 365,405 ----
  to the many dependencies.
  </p>
  <hr />
! <a class="anchor" id="x-x-linux-gnu"></a><h3 class="heading" id="g_t*-*-linux-gnu"><span>*-*-linux-gnu<a class="copiable-link" href="#g_t*-*-linux-gnu"> &para;</a></span></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 />
! <a class="anchor" id="ix86-x-linux"></a><h3 class="heading" id="i_003f86-*-linux*"><span>i?86-*-linux*<a class="copiable-link" href="#i_003f86-*-linux*"> &para;</a></span></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 class="uref" href="https://www.bitwizard.nl/sig11/">www.bitwizard.nl</a>.
  </p>
  <hr />
! <a class="anchor" id="ia64-x-linux"></a><h3 class="heading" id="ia64-*-linux"><span>ia64-*-linux<a class="copiable-link" href="#ia64-*-linux"> &para;</a></span></h3>
  <p>IA-64 processor (also known as IPF, or Itanium Processor Family)
  running GNU/Linux.
  </p>
  <p>If you are using the installed system libunwind library with
! <samp class="option">--with-system-libunwind</samp>, then you must use libunwind 0.98 or
  later.
  </p>
  <hr />
! <a class="anchor" id="ia64-x-hpux"></a><h3 class="heading" id="ia64-*-hpux*"><span>ia64-*-hpux*<a class="copiable-link" href="#ia64-*-hpux*"> &para;</a></span></h3>
  <p>Building GCC on this target requires the GNU Assembler.  The bundled HP
  assembler will not work.  To prevent GCC from using the wrong assembler,
! the option <samp class="option">--with-gnu-as</samp> may be necessary.
  </p>
  <hr />
  <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
! <a class="anchor" id="x-ibm-aix"></a><h3 class="heading" id="g_t*-ibm-aix*"><span>*-ibm-aix*<a class="copiable-link" href="#g_t*-ibm-aix*"> &para;</a></span></h3>
  <p>Support for AIX version 3 and older was discontinued in GCC 3.4.
  Support for AIX version 4.2 and older was discontinued in GCC 4.5.
  </p>
  <p>&ldquo;out of memory&rdquo; bootstrap failures may indicate a problem with
  process resource limits (ulimit).  Hard limits are configured in the
! <samp class="file">/etc/security/limits</samp> system configuration file.
  </p>
  <p>GCC 4.9 and above require a C++ compiler for bootstrap.  IBM VAC++ / xlC
  cannot bootstrap GCC.  xlc can bootstrap an older version of GCC and
*************** G++ can bootstrap recent releases of GCC
*** 459,468 ****
  <p>GCC can bootstrap with recent versions of IBM XLC, but bootstrapping
  with an earlier release of GCC is recommended.  Bootstrapping with XLC
  requires a larger data segment, which can be enabled through the
! <var>LDR_CNTRL</var> environment variable, e.g.,
  </p>
! <div class="smallexample">
! <pre class="smallexample">% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  </pre></div>
  
--- 408,417 ----
  <p>GCC can bootstrap with recent versions of IBM XLC, but bootstrapping
  with an earlier release of GCC is recommended.  Bootstrapping with XLC
  requires a larger data segment, which can be enabled through the
! <var class="var">LDR_CNTRL</var> environment variable, e.g.,
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  </pre></div>
  
*************** sources.  One may delete GCC&rsquo;s &ld
*** 471,504 ****
  with a version of GCC built for an earlier release of AIX.
  </p>
  <p>To speed up the configuration phases of bootstrapping and installing GCC,
! one may use GNU Bash instead of AIX <code>/bin/sh</code>, e.g.,
  </p>
! <div class="smallexample">
! <pre class="smallexample">% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  </pre></div>
  
! <p>and then proceed as described in <a href="build.html">the build
  instructions</a>, where we strongly recommend specifying an absolute path
! to invoke <var>srcdir</var>/configure.
  </p>
  <p>Because GCC on AIX is built as a 32-bit executable by default,
  (although it can generate 64-bit programs) the GMP and MPFR libraries
  required by gfortran must be 32-bit libraries.  Building GMP and MPFR
  as static archive libraries works better than shared libraries.
  </p>
! <p>Errors involving <code>alloca</code> when building GCC generally are due
! to an incorrect definition of <code>CC</code> in the Makefile or mixing files
  compiled with the native C compiler and GCC.  During the stage1 phase of
! the build, the native AIX compiler <strong>must</strong> be invoked as <code>cc</code>
! (not <code>xlc</code>).  Once <code>configure</code> has been informed of
! <code>xlc</code>, one needs to use &lsquo;<samp>make distclean</samp>&rsquo; to remove the
! configure cache files and ensure that <code>CC</code> environment variable
! does not provide a definition that will confuse <code>configure</code>.
  If this error occurs during stage2 or later, then the problem most likely
  is the version of Make (see above).
  </p>
! <p>The native <code>as</code> and <code>ld</code> are recommended for
  bootstrapping on AIX.  The GNU Assembler, GNU Linker, and GNU
  Binutils version 2.20 is the minimum level that supports bootstrap on
  AIX 5.  The GNU Assembler has not been updated to support AIX 6&nbsp;or
--- 420,453 ----
  with a version of GCC built for an earlier release of AIX.
  </p>
  <p>To speed up the configuration phases of bootstrapping and installing GCC,
! one may use GNU Bash instead of AIX <code class="command">/bin/sh</code>, e.g.,
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  </pre></div>
  
! <p>and then proceed as described in <a class="uref" href="build.html">the build
  instructions</a>, where we strongly recommend specifying an absolute path
! to invoke <var class="var">srcdir</var>/configure.
  </p>
  <p>Because GCC on AIX is built as a 32-bit executable by default,
  (although it can generate 64-bit programs) the GMP and MPFR libraries
  required by gfortran must be 32-bit libraries.  Building GMP and MPFR
  as static archive libraries works better than shared libraries.
  </p>
! <p>Errors involving <code class="code">alloca</code> when building GCC generally are due
! to an incorrect definition of <code class="code">CC</code> in the Makefile or mixing files
  compiled with the native C compiler and GCC.  During the stage1 phase of
! the build, the native AIX compiler <strong class="strong">must</strong> be invoked as <code class="command">cc</code>
! (not <code class="command">xlc</code>).  Once <code class="command">configure</code> has been informed of
! <code class="command">xlc</code>, one needs to use &lsquo;<samp class="samp">make distclean</samp>&rsquo; to remove the
! configure cache files and ensure that <code class="env">CC</code> environment variable
! does not provide a definition that will confuse <code class="command">configure</code>.
  If this error occurs during stage2 or later, then the problem most likely
  is the version of Make (see above).
  </p>
! <p>The native <code class="command">as</code> and <code class="command">ld</code> are recommended for
  bootstrapping on AIX.  The GNU Assembler, GNU Linker, and GNU
  Binutils version 2.20 is the minimum level that supports bootstrap on
  AIX 5.  The GNU Assembler has not been updated to support AIX 6&nbsp;or
*************** IZ98477 for AIX 5.3 TL11 and IZ98134 for
*** 519,561 ****
  AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6,
  AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix.
  </p>
! <p>Building <samp>libstdc++.a</samp> requires a fix for an AIX Assembler bug
  APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).  It also requires a
  fix for another AIX Assembler bug and a co-dependent AIX Archiver fix
  referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
  </p>
! <a name="TransferAixShobj"></a><p>&lsquo;<samp>libstdc++</samp>&rsquo; in GCC 3.4 increments the major version number of the
! shared object and GCC installation places the <samp>libstdc++.a</samp>
  shared library in a common location which will overwrite the and GCC
  3.3 version of the shared library.  Applications either need to be
  re-linked against the new shared library or the GCC 3.1 and GCC 3.3
! versions of the &lsquo;<samp>libstdc++</samp>&rsquo; shared object needs to be available
! to the AIX runtime loader.  The GCC 3.1 &lsquo;<samp>libstdc++.so.4</samp>&rsquo;, if
! present, and GCC 3.3 &lsquo;<samp>libstdc++.so.5</samp>&rsquo; shared objects can be
  installed for runtime dynamic loading using the following steps to set
! the &lsquo;<samp>F_LOADONLY</samp>&rsquo; flag in the shared object for <em>each</em>
! multilib <samp>libstdc++.a</samp> installed:
  </p>
  <p>Extract the shared objects from the currently installed
! <samp>libstdc++.a</samp> archive:
! </p><div class="smallexample">
! <pre class="smallexample">% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
! <p>Enable the &lsquo;<samp>F_LOADONLY</samp>&rsquo; flag so that the shared object will be
  available for runtime dynamic loading, but not linking:
! </p><div class="smallexample">
! <pre class="smallexample">% strip -e libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Archive the runtime-only shared object in the GCC 3.4
! <samp>libstdc++.a</samp> archive:
! </p><div class="smallexample">
! <pre class="smallexample">% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Eventually, the
! <a href="./configure.html#WithAixSoname"><samp>--with-aix-soname=svr4</samp></a>
  configure option may drop the need for this procedure for libraries that
  support it.
  </p>
--- 468,510 ----
  AIX 5.3 TL12 SP5, AIX 6.1 TL04 SP11, AIX 6.1 TL05 SP7, AIX 6.1 TL06 SP6,
  AIX 6.1 TL07 and AIX 7.1 TL01 should include the fix.
  </p>
! <p>Building <samp class="file">libstdc++.a</samp> requires a fix for an AIX Assembler bug
  APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).  It also requires a
  fix for another AIX Assembler bug and a co-dependent AIX Archiver fix
  referenced as APAR IY53606 (AIX 5.2) or as APAR IY54774 (AIX 5.1)
  </p>
! <a class="anchor" id="TransferAixShobj"></a><p>&lsquo;<samp class="samp">libstdc++</samp>&rsquo; in GCC 3.4 increments the major version number of the
! shared object and GCC installation places the <samp class="file">libstdc++.a</samp>
  shared library in a common location which will overwrite the and GCC
  3.3 version of the shared library.  Applications either need to be
  re-linked against the new shared library or the GCC 3.1 and GCC 3.3
! versions of the &lsquo;<samp class="samp">libstdc++</samp>&rsquo; shared object needs to be available
! to the AIX runtime loader.  The GCC 3.1 &lsquo;<samp class="samp">libstdc++.so.4</samp>&rsquo;, if
! present, and GCC 3.3 &lsquo;<samp class="samp">libstdc++.so.5</samp>&rsquo; shared objects can be
  installed for runtime dynamic loading using the following steps to set
! the &lsquo;<samp class="samp">F_LOADONLY</samp>&rsquo; flag in the shared object for <em class="emph">each</em>
! multilib <samp class="file">libstdc++.a</samp> installed:
  </p>
  <p>Extract the shared objects from the currently installed
! <samp class="file">libstdc++.a</samp> archive:
! </p><div class="example smallexample">
! <pre class="example-preformatted">% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
! <p>Enable the &lsquo;<samp class="samp">F_LOADONLY</samp>&rsquo; flag so that the shared object will be
  available for runtime dynamic loading, but not linking:
! </p><div class="example smallexample">
! <pre class="example-preformatted">% strip -e libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Archive the runtime-only shared object in the GCC 3.4
! <samp class="file">libstdc++.a</samp> archive:
! </p><div class="example smallexample">
! <pre class="example-preformatted">% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  </pre></div>
  
  <p>Eventually, the
! <a class="uref" href="./configure.html#WithAixSoname"><samp class="option">--with-aix-soname=svr4</samp></a>
  configure option may drop the need for this procedure for libraries that
  support it.
  </p>
*************** executable.
*** 571,583 ****
  to parse archive libraries did not handle the new format correctly.
  These routines are used by GCC and result in error messages during
  linking such as &ldquo;not a COFF file&rdquo;.  The version of the routines shipped
! with AIX 4.3.1 should work for a 32-bit environment.  The <samp>-g</samp>
  option of the archive command may be used to create archives of 32-bit
  objects using the original &ldquo;small format&rdquo;.  A correct version of the
  routines is shipped with AIX 4.3.2 and above.
  </p>
  <p>Some versions of the AIX binder (linker) can fail with a relocation
! 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.
--- 520,532 ----
  to parse archive libraries did not handle the new format correctly.
  These routines are used by GCC and result in error messages during
  linking such as &ldquo;not a COFF file&rdquo;.  The version of the routines shipped
! with AIX 4.3.1 should work for a 32-bit environment.  The <samp class="option">-g</samp>
  option of the archive command may be used to create archives of 32-bit
  objects using the original &ldquo;small format&rdquo;.  A correct version of the
  routines is shipped with AIX 4.3.2 and above.
  </p>
  <p>Some versions of the AIX binder (linker) can fail with a relocation
! overflow severe error when the <samp class="option">-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.
*************** AIX 4.3.1 and above.
*** 594,712 ****
  </p>
  <p>AIX provides National Language Support (NLS).  Compilers and assemblers
  use NLS to support locale-specific representations of various data
! formats including floating-point numbers (e.g., &lsquo;<samp>.</samp>&rsquo;  vs &lsquo;<samp>,</samp>&rsquo; for
  separating decimal fractions).  There have been problems reported where
  GCC does not produce the same floating-point formats that the assembler
! expects.  If one encounters this problem, set the <code>LANG</code>
! environment variable to &lsquo;<samp>C</samp>&rsquo; or &lsquo;<samp>En_US</samp>&rsquo;.
  </p>
! <p>A default can be specified with the <samp>-mcpu=<var>cpu_type</var></samp>
! switch and using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
  <hr />
! <a name="iq2000-x-elf"></a><a name="iq2000-*-elf"></a>
! <h3 class="heading">iq2000-*-elf</h3>
  <p>Vitesse IQ2000 processors.  These are used in embedded
  applications.  There are no standard Unix configurations.
  </p>
  <hr />
! <a name="lm32-x-elf"></a><a name="lm32-*-elf"></a>
! <h3 class="heading">lm32-*-elf</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="lm32-x-uclinux"></a><a name="lm32-*-uclinux"></a>
! <h3 class="heading">lm32-*-uclinux</h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems running uClinux.
  </p>
  <hr />
! <a name="loongarch"></a><a name="LoongArch"></a>
! <h3 class="heading">LoongArch</h3>
  <p>LoongArch processor.
  The following LoongArch targets are available:
! </p><dl compact="compact">
! <dt><code>loongarch64-linux-gnu*</code></dt>
  <dd><p>LoongArch processor running GNU/Linux.  This target triplet may be coupled
  with a small set of possible suffixes to identify their default ABI type:
! </p><dl compact="compact">
! <dt><code>f64</code></dt>
! <dd><p>Uses <code>lp64d/base</code> ABI by default.
  </p></dd>
! <dt><code>f32</code></dt>
! <dd><p>Uses <code>lp64f/base</code> ABI by default.
  </p></dd>
! <dt><code>sf</code></dt>
! <dd><p>Uses <code>lp64s/base</code> ABI by default.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code>loongarch64-linux-gnu</code></dt>
! <dd><p>Same as <code>loongarch64-linux-gnuf64</code> for legacy support.
  </p></dd>
  </dl>
  
  <p>More information about LoongArch can be found at
! <a href="https://github.com/loongson/LoongArch-Documentation">https://github.com/loongson/LoongArch-Documentation</a>.
  </p>
  <hr />
! <a name="m32c-x-elf"></a><a name="m32c-*-elf"></a>
! <h3 class="heading">m32c-*-elf</h3>
  <p>Renesas M32C processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="m32r-x-elf"></a><a name="m32r-*-elf"></a>
! <h3 class="heading">m32r-*-elf</h3>
  <p>Renesas M32R processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="m68k-x-x"></a><a name="m68k-*-*"></a>
! <h3 class="heading">m68k-*-*</h3>
  <p>By default,
! &lsquo;<samp>m68k-*-elf*</samp>&rsquo;, &lsquo;<samp>m68k-*-rtems</samp>&rsquo;,  &lsquo;<samp>m68k-*-uclinux</samp>&rsquo; and
! &lsquo;<samp>m68k-*-linux</samp>&rsquo;
  build libraries for both M680x0 and ColdFire processors.  If you only
  need the M680x0 libraries, you can omit the ColdFire ones by passing
! <samp>--with-arch=m68k</samp> to <code>configure</code>.  Alternatively, you
! can omit the M680x0 libraries by passing <samp>--with-arch=cf</samp> to
! <code>configure</code>.  These targets default to 5206 or 5475 code as
  appropriate for the target system when
! configured with <samp>--with-arch=cf</samp> and 68020 code otherwise.
  </p>
! <p>The &lsquo;<samp>m68k-*-netbsd</samp>&rsquo; and
! &lsquo;<samp>m68k-*-openbsd</samp>&rsquo; targets also support the <samp>--with-arch</samp>
  option.  They will generate ColdFire CFV4e code when configured with
! <samp>--with-arch=cf</samp> and 68020 code otherwise.
  </p>
  <p>You can override the default processors listed above by configuring
! with <samp>--with-cpu=<var>target</var></samp>.  This <var>target</var> can either
! be a <samp>-mcpu</samp> argument or one of the following values:
! &lsquo;<samp>m68000</samp>&rsquo;, &lsquo;<samp>m68010</samp>&rsquo;, &lsquo;<samp>m68020</samp>&rsquo;, &lsquo;<samp>m68030</samp>&rsquo;,
! &lsquo;<samp>m68040</samp>&rsquo;, &lsquo;<samp>m68060</samp>&rsquo;, &lsquo;<samp>m68020-40</samp>&rsquo; and &lsquo;<samp>m68020-60</samp>&rsquo;.
  </p>
  <p>GCC requires at least binutils version 2.17 on these targets.
  </p>
  <hr />
! <a name="m68k-x-uclinux"></a><a name="m68k-*-uclinux"></a>
! <h3 class="heading">m68k-*-uclinux</h3>
  <p>GCC 4.3 changed the uClinux configuration so that it uses the
! &lsquo;<samp>m68k-linux-gnu</samp>&rsquo; ABI rather than the &lsquo;<samp>m68k-elf</samp>&rsquo; ABI.
  It also added improved support for C++ and flat shared libraries,
  both of which were ABI changes.
  </p>
  <hr />
! <a name="microblaze-x-elf"></a><a name="microblaze-*-elf"></a>
! <h3 class="heading">microblaze-*-elf</h3>
  <p>Xilinx MicroBlaze processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="mips-x-x"></a><a name="mips-*-*"></a>
! <h3 class="heading">mips-*-*</h3>
  <p>If on a MIPS system you get an error message saying &ldquo;does not have gp
  sections for all it&rsquo;s [sic] sectons [sic]&rdquo;, don&rsquo;t worry about it.  This
  happens whenever you use GAS with the MIPS linker, but there is not
--- 543,651 ----
  </p>
  <p>AIX provides National Language Support (NLS).  Compilers and assemblers
  use NLS to support locale-specific representations of various data
! formats including floating-point numbers (e.g., &lsquo;<samp class="samp">.</samp>&rsquo;  vs &lsquo;<samp class="samp">,</samp>&rsquo; for
  separating decimal fractions).  There have been problems reported where
  GCC does not produce the same floating-point formats that the assembler
! expects.  If one encounters this problem, set the <code class="env">LANG</code>
! environment variable to &lsquo;<samp class="samp">C</samp>&rsquo; or &lsquo;<samp class="samp">En_US</samp>&rsquo;.
  </p>
! <p>A default can be specified with the <samp class="option">-mcpu=<var class="var">cpu_type</var></samp>
! switch and using the configure option <samp class="option">--with-cpu-<var class="var">cpu_type</var></samp>.
  </p>
  <hr />
! <a class="anchor" id="iq2000-x-elf"></a><h3 class="heading" id="iq2000-*-elf"><span>iq2000-*-elf<a class="copiable-link" href="#iq2000-*-elf"> &para;</a></span></h3>
  <p>Vitesse IQ2000 processors.  These are used in embedded
  applications.  There are no standard Unix configurations.
  </p>
  <hr />
! <a class="anchor" id="lm32-x-elf"></a><h3 class="heading" id="lm32-*-elf"><span>lm32-*-elf<a class="copiable-link" href="#lm32-*-elf"> &para;</a></span></h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="lm32-x-uclinux"></a><h3 class="heading" id="lm32-*-uclinux"><span>lm32-*-uclinux<a class="copiable-link" href="#lm32-*-uclinux"> &para;</a></span></h3>
  <p>Lattice Mico32 processor.
  This configuration is intended for embedded systems running uClinux.
  </p>
  <hr />
! <a class="anchor" id="loongarch"></a><h3 class="heading" id="LoongArch"><span>LoongArch<a class="copiable-link" href="#LoongArch"> &para;</a></span></h3>
  <p>LoongArch processor.
  The following LoongArch targets are available:
! </p><dl class="table">
! <dt><code class="code">loongarch64-linux-gnu*</code></dt>
  <dd><p>LoongArch processor running GNU/Linux.  This target triplet may be coupled
  with a small set of possible suffixes to identify their default ABI type:
! </p><dl class="table">
! <dt><code class="code">f64</code></dt>
! <dd><p>Uses <code class="code">lp64d/base</code> ABI by default.
  </p></dd>
! <dt><code class="code">f32</code></dt>
! <dd><p>Uses <code class="code">lp64f/base</code> ABI by default.
  </p></dd>
! <dt><code class="code">sf</code></dt>
! <dd><p>Uses <code class="code">lp64s/base</code> ABI by default.
  </p></dd>
  </dl>
  
  </dd>
! <dt><code class="code">loongarch64-linux-gnu</code></dt>
! <dd><p>Same as <code class="code">loongarch64-linux-gnuf64</code> for legacy support.
  </p></dd>
  </dl>
  
  <p>More information about LoongArch can be found at
! <a class="uref" href="https://github.com/loongson/LoongArch-Documentation">https://github.com/loongson/LoongArch-Documentation</a>.
  </p>
  <hr />
! <a class="anchor" id="m32c-x-elf"></a><h3 class="heading" id="m32c-*-elf"><span>m32c-*-elf<a class="copiable-link" href="#m32c-*-elf"> &para;</a></span></h3>
  <p>Renesas M32C processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="m32r-x-elf"></a><h3 class="heading" id="m32r-*-elf"><span>m32r-*-elf<a class="copiable-link" href="#m32r-*-elf"> &para;</a></span></h3>
  <p>Renesas M32R processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="m68k-x-x"></a><h3 class="heading" id="m68k-*-*"><span>m68k-*-*<a class="copiable-link" href="#m68k-*-*"> &para;</a></span></h3>
  <p>By default,
! &lsquo;<samp class="samp">m68k-*-elf*</samp>&rsquo;, &lsquo;<samp class="samp">m68k-*-rtems</samp>&rsquo;,  &lsquo;<samp class="samp">m68k-*-uclinux</samp>&rsquo; and
! &lsquo;<samp class="samp">m68k-*-linux</samp>&rsquo;
  build libraries for both M680x0 and ColdFire processors.  If you only
  need the M680x0 libraries, you can omit the ColdFire ones by passing
! <samp class="option">--with-arch=m68k</samp> to <code class="command">configure</code>.  Alternatively, you
! can omit the M680x0 libraries by passing <samp class="option">--with-arch=cf</samp> to
! <code class="command">configure</code>.  These targets default to 5206 or 5475 code as
  appropriate for the target system when
! configured with <samp class="option">--with-arch=cf</samp> and 68020 code otherwise.
  </p>
! <p>The &lsquo;<samp class="samp">m68k-*-netbsd</samp>&rsquo; and
! &lsquo;<samp class="samp">m68k-*-openbsd</samp>&rsquo; targets also support the <samp class="option">--with-arch</samp>
  option.  They will generate ColdFire CFV4e code when configured with
! <samp class="option">--with-arch=cf</samp> and 68020 code otherwise.
  </p>
  <p>You can override the default processors listed above by configuring
! with <samp class="option">--with-cpu=<var class="var">target</var></samp>.  This <var class="var">target</var> can either
! be a <samp class="option">-mcpu</samp> argument or one of the following values:
! &lsquo;<samp class="samp">m68000</samp>&rsquo;, &lsquo;<samp class="samp">m68010</samp>&rsquo;, &lsquo;<samp class="samp">m68020</samp>&rsquo;, &lsquo;<samp class="samp">m68030</samp>&rsquo;,
! &lsquo;<samp class="samp">m68040</samp>&rsquo;, &lsquo;<samp class="samp">m68060</samp>&rsquo;, &lsquo;<samp class="samp">m68020-40</samp>&rsquo; and &lsquo;<samp class="samp">m68020-60</samp>&rsquo;.
  </p>
  <p>GCC requires at least binutils version 2.17 on these targets.
  </p>
  <hr />
! <a class="anchor" id="m68k-x-uclinux"></a><h3 class="heading" id="m68k-*-uclinux"><span>m68k-*-uclinux<a class="copiable-link" href="#m68k-*-uclinux"> &para;</a></span></h3>
  <p>GCC 4.3 changed the uClinux configuration so that it uses the
! &lsquo;<samp class="samp">m68k-linux-gnu</samp>&rsquo; ABI rather than the &lsquo;<samp class="samp">m68k-elf</samp>&rsquo; ABI.
  It also added improved support for C++ and flat shared libraries,
  both of which were ABI changes.
  </p>
  <hr />
! <a class="anchor" id="microblaze-x-elf"></a><h3 class="heading" id="microblaze-*-elf"><span>microblaze-*-elf<a class="copiable-link" href="#microblaze-*-elf"> &para;</a></span></h3>
  <p>Xilinx MicroBlaze processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="mips-x-x"></a><h3 class="heading" id="mips-*-*"><span>mips-*-*<a class="copiable-link" href="#mips-*-*"> &para;</a></span></h3>
  <p>If on a MIPS system you get an error message saying &ldquo;does not have gp
  sections for all it&rsquo;s [sic] sectons [sic]&rdquo;, don&rsquo;t worry about it.  This
  happens whenever you use GAS with the MIPS linker, but there is not
*************** optional, and there should not be a warn
*** 718,1023 ****
  </p>
  <p>The libstdc++ atomic locking routines for MIPS targets requires MIPS II
  and later.  A patch went in just after the GCC 3.3 release to
! make &lsquo;<samp>mips*-*-*</samp>&rsquo; use the generic implementation instead.  You can also
! configure for &lsquo;<samp>mipsel-elf</samp>&rsquo; as a workaround.  The
! &lsquo;<samp>mips*-*-linux*</samp>&rsquo; target continues to use the MIPS II routines.  More
  work on this is expected in future releases.
  </p>
  
! <p>The built-in <code>__sync_*</code> functions are available on MIPS II and
! later systems and others that support the &lsquo;<samp>ll</samp>&rsquo;, &lsquo;<samp>sc</samp>&rsquo; and
! &lsquo;<samp>sync</samp>&rsquo; instructions.  This can be overridden by passing
! <samp>--with-llsc</samp> or <samp>--without-llsc</samp> when configuring GCC.
  Since the Linux kernel emulates these instructions if they are
! missing, the default for &lsquo;<samp>mips*-*-linux*</samp>&rsquo; targets is
! <samp>--with-llsc</samp>.  The <samp>--with-llsc</samp> and
! <samp>--without-llsc</samp> configure options may be overridden at compile
! time by passing the <samp>-mllsc</samp> or <samp>-mno-llsc</samp> options to
  the compiler.
  </p>
  <p>MIPS systems check for division by zero (unless
! <samp>-mno-check-zero-division</samp> is passed to the compiler) by
  generating either a conditional trap or a break instruction.  Using
  trap results in smaller code, but is only supported on MIPS II and
  later.  Also, some versions of the Linux kernel have a bug that
! prevents trap from generating the proper signal (<code>SIGFPE</code>).  To enable
! the use of break, use the <samp>--with-divide=breaks</samp>
! <code>configure</code> option when configuring GCC.  The default is to
  use traps on systems that support them.
  </p>
  <hr />
! <a name="moxie-x-elf"></a><a name="moxie-*-elf"></a>
! <h3 class="heading">moxie-*-elf</h3>
  <p>The moxie processor.
  </p>
  <hr />
! <a name="msp430-x-elf"></a><a name="msp430-*-elf*"></a>
! <h3 class="heading">msp430-*-elf*</h3>
  <p>TI MSP430 processor.
  This configuration is intended for embedded systems.
  </p>
! <p>&lsquo;<samp>msp430-*-elf</samp>&rsquo; is the standard configuration with most GCC
  features enabled by default.
  </p>
! <p>&lsquo;<samp>msp430-*-elfbare</samp>&rsquo; is tuned for a bare-metal environment, and disables
  features related to shared libraries and other functionality not used for
  this device.  This reduces code and data usage of the GCC libraries, resulting
  in a minimal run-time environment by default.
  </p>
  <p>Features disabled by default include:
! </p><ul>
! <li> transactional memory
! </li><li> __cxa_atexit
  </li></ul>
  
  <hr />
! <a name="nds32le-x-elf"></a><a name="nds32le-*-elf"></a>
! <h3 class="heading">nds32le-*-elf</h3>
  <p>Andes NDS32 target in little endian mode.
  </p>
  <hr />
! <a name="nds32be-x-elf"></a><a name="nds32be-*-elf"></a>
! <h3 class="heading">nds32be-*-elf</h3>
  <p>Andes NDS32 target in big endian mode.
  </p>
  <hr />
! <a name="nvptx-x-none"></a><a name="nvptx-*-none"></a>
! <h3 class="heading">nvptx-*-none</h3>
  <p>Nvidia PTX target.
  </p>
! <p>Instead of GNU binutils, you will need to install
! <a href="https://github.com/SourceryTools/nvptx-tools">nvptx-tools</a>.
  Tell GCC where to find it:
! <samp>--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin</samp>.
  </p>
  <p>You will need newlib 4.3.0 or later.  It can be
  automatically built together with GCC.  For this, add a symbolic link
! to nvptx-newlib&rsquo;s <samp>newlib</samp> directory to the directory containing
  the GCC sources.
  </p>
! <p>Use the <samp>--disable-sjlj-exceptions</samp> and
! <samp>--enable-newlib-io-long-long</samp> options when configuring.
  </p>
! <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 />
! <a name="or1k-x-elf"></a><a name="or1k-*-elf"></a>
! <h3 class="heading">or1k-*-elf</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="or1k-x-linux"></a><a name="or1k-*-linux"></a>
! <h3 class="heading">or1k-*-linux</h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  </p>
  <hr />
! <a name="powerpc-x-x"></a><a name="powerpc-*-*"></a>
! <h3 class="heading">powerpc-*-*</h3>
! <p>You can specify a default version for the <samp>-mcpu=<var>cpu_type</var></samp>
! switch by using the configure option <samp>--with-cpu-<var>cpu_type</var></samp>.
  </p>
! <p>You will need GNU binutils 2.20 or newer.
  </p>
  <hr />
! <a name="powerpc-x-darwin"></a><a name="powerpc-*-darwin*"></a>
! <h3 class="heading">powerpc-*-darwin*</h3>
  <p>PowerPC running Darwin (Mac OS X kernel).
  </p>
  <p>Pre-installed versions of Mac OS X may not include any developer tools,
  meaning that you will not be able to build GCC from source.  Tool
  binaries are available at
! <a href="https://opensource.apple.com">https://opensource.apple.com</a>.
  </p>
  <p>This version of GCC requires at least cctools-590.36.  The
  cctools-590.36 package referenced from
! <a href="https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html">https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html</a> will not work
  on systems older than 10.3.9 (aka darwin7.9.0).
  </p>
  <hr />
! <a name="powerpc-x-elf"></a><a name="powerpc-*-elf"></a>
! <h3 class="heading">powerpc-*-elf</h3>
  <p>PowerPC system in big endian mode, running System V.4.
  </p>
  <hr />
! <a name="powerpc-x-linux-gnu"></a><a name="powerpc*-*-linux-gnu*"></a>
! <h3 class="heading">powerpc*-*-linux-gnu*</h3>
  <p>PowerPC system in big endian mode running Linux.
  </p>
  <hr />
! <a name="powerpc-x-netbsd"></a><a name="powerpc-*-netbsd*"></a>
! <h3 class="heading">powerpc-*-netbsd*</h3>
  <p>PowerPC system in big endian mode running NetBSD.
  </p>
  <hr />
! <a name="powerpc-x-eabisim"></a><a name="powerpc-*-eabisim"></a>
! <h3 class="heading">powerpc-*-eabisim</h3>
  <p>Embedded PowerPC system in big endian mode for use in running under the
  PSIM simulator.
  </p>
  <hr />
! <a name="powerpc-x-eabi"></a><a name="powerpc-*-eabi"></a>
! <h3 class="heading">powerpc-*-eabi</h3>
  <p>Embedded PowerPC system in big endian mode.
  </p>
  <hr />
! <a name="powerpcle-x-elf"></a><a name="powerpcle-*-elf"></a>
! <h3 class="heading">powerpcle-*-elf</h3>
  <p>PowerPC system in little endian mode, running System V.4.
  </p>
  <hr />
! <a name="powerpcle-x-eabisim"></a><a name="powerpcle-*-eabisim"></a>
! <h3 class="heading">powerpcle-*-eabisim</h3>
  <p>Embedded PowerPC system in little endian mode for use in running under
  the PSIM simulator.
  </p>
  <hr />
! <a name="powerpcle-x-eabi"></a><a name="powerpcle-*-eabi"></a>
! <h3 class="heading">powerpcle-*-eabi</h3>
  <p>Embedded PowerPC system in little endian mode.
  </p>
  <hr />
! <a name="rl78-x-elf"></a><a name="rl78-*-elf"></a>
! <h3 class="heading">rl78-*-elf</h3>
  <p>The Renesas RL78 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="riscv32-x-elf"></a><a name="riscv32-*-elf"></a>
! <h3 class="heading">riscv32-*-elf</h3>
  <p>The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv32-x-linux"></a><a name="riscv32-*-linux"></a>
! <h3 class="heading">riscv32-*-linux</h3>
  <p>The RISC-V RV32 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv64-x-elf"></a><a name="riscv64-*-elf"></a>
! <h3 class="heading">riscv64-*-elf</h3>
  <p>The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="riscv64-x-linux"></a><a name="riscv64-*-linux"></a>
! <h3 class="heading">riscv64-*-linux</h3>
  <p>The RISC-V RV64 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.30 release.
  </p>
  <hr />
! <a name="rx-x-elf"></a><a name="rx-*-elf"></a>
! <h3 class="heading">rx-*-elf</h3>
  <p>The Renesas RX processor.
  </p>
  <hr />
! <a name="s390-x-linux"></a><a name="s390-*-linux*"></a>
! <h3 class="heading">s390-*-linux*</h3>
  <p>S/390 system running GNU/Linux for S/390.
  </p>
  <hr />
! <a name="s390x-x-linux"></a><a name="s390x-*-linux*"></a>
! <h3 class="heading">s390x-*-linux*</h3>
  <p>zSeries system (64-bit) running GNU/Linux for zSeries.
  </p>
  <hr />
! <a name="s390x-ibm-tpf"></a><a name="s390x-ibm-tpf*"></a>
! <h3 class="heading">s390x-ibm-tpf*</h3>
  <p>zSeries system (64-bit) running TPF.  This platform is
  supported as cross-compilation target only.
  </p>
  <hr />
! <a name="x-x-solaris2"></a><a name="g_t*-*-solaris2*"></a>
! <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.
  </p>
! <p>Trying to use the compatibility tools in <samp>/usr/ucb</samp>, from the
! <code>compatibility/ucb</code> package, to install GCC has been observed to
! cause trouble.  The fix is to remove <samp>/usr/ucb</samp> from your
! <code>PATH</code>.
  </p>
! <p>The build process works more smoothly with the legacy Solaris tools so,
! if you have <samp>/usr/xpg4/bin</samp> in your <code>PATH</code>, we recommend that
! you place <samp>/usr/bin</samp> before <samp>/usr/xpg4/bin</samp> for the duration
! of the build.
  </p>
! <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
! <samp>--without-gnu-ld --with-ld=/usr/bin/ld</samp> to guarantee the
! right linker is found irrespective of the user&rsquo;s <code>PATH</code>.
  </p>
! <p>Note that your mileage may vary if you use a combination of the GNU
! tools and the Solaris tools: while the combination GNU <code>as</code> and
! Solaris <code>ld</code> works well, the reverse combination Solaris
! <code>as</code> with GNU <code>ld</code> may fail to build or cause memory
! corruption at runtime in some cases for C++ programs.
  </p>
! <p>To enable symbol versioning in &lsquo;<samp>libstdc++</samp>&rsquo; and other runtime
! libraries with the Solaris linker, you need to have any version of GNU
! <code>c++filt</code>, which is part of GNU binutils.  Symbol versioning
! will be disabled if no appropriate version is found.  Solaris
! <code>c++filt</code> from the Solaris Studio compilers does <em>not</em>
! 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
! needed.  That library wasn&rsquo;t built by default in GCC 9&ndash;11 on SPARC, or
! on x86 when the Solaris assembler is used, but can be enabled by
! configuring with <samp>--enable-libphobos</samp>.  Also, GDC 9.4.0 is
! 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 />
! <a name="sparc-x-x"></a><a name="sparc*-*-*"></a>
! <h3 class="heading">sparc*-*-*</h3>
  <p>This section contains general configuration information for all
  SPARC-based platforms.  In addition to reading this section, please
  read all other sections that match your target.
--- 657,966 ----
  </p>
  <p>The libstdc++ atomic locking routines for MIPS targets requires MIPS II
  and later.  A patch went in just after the GCC 3.3 release to
! make &lsquo;<samp class="samp">mips*-*-*</samp>&rsquo; use the generic implementation instead.  You can also
! configure for &lsquo;<samp class="samp">mipsel-elf</samp>&rsquo; as a workaround.  The
! &lsquo;<samp class="samp">mips*-*-linux*</samp>&rsquo; target continues to use the MIPS II routines.  More
  work on this is expected in future releases.
  </p>
  
! <p>The built-in <code class="code">__sync_*</code> functions are available on MIPS II and
! later systems and others that support the &lsquo;<samp class="samp">ll</samp>&rsquo;, &lsquo;<samp class="samp">sc</samp>&rsquo; and
! &lsquo;<samp class="samp">sync</samp>&rsquo; instructions.  This can be overridden by passing
! <samp class="option">--with-llsc</samp> or <samp class="option">--without-llsc</samp> when configuring GCC.
  Since the Linux kernel emulates these instructions if they are
! missing, the default for &lsquo;<samp class="samp">mips*-*-linux*</samp>&rsquo; targets is
! <samp class="option">--with-llsc</samp>.  The <samp class="option">--with-llsc</samp> and
! <samp class="option">--without-llsc</samp> configure options may be overridden at compile
! time by passing the <samp class="option">-mllsc</samp> or <samp class="option">-mno-llsc</samp> options to
  the compiler.
  </p>
  <p>MIPS systems check for division by zero (unless
! <samp class="option">-mno-check-zero-division</samp> is passed to the compiler) by
  generating either a conditional trap or a break instruction.  Using
  trap results in smaller code, but is only supported on MIPS II and
  later.  Also, some versions of the Linux kernel have a bug that
! prevents trap from generating the proper signal (<code class="code">SIGFPE</code>).  To enable
! the use of break, use the <samp class="option">--with-divide=breaks</samp>
! <code class="command">configure</code> option when configuring GCC.  The default is to
  use traps on systems that support them.
  </p>
  <hr />
! <a class="anchor" id="moxie-x-elf"></a><h3 class="heading" id="moxie-*-elf"><span>moxie-*-elf<a class="copiable-link" href="#moxie-*-elf"> &para;</a></span></h3>
  <p>The moxie processor.
  </p>
  <hr />
! <a class="anchor" id="msp430-x-elf"></a><h3 class="heading" id="msp430-*-elf*"><span>msp430-*-elf*<a class="copiable-link" href="#msp430-*-elf*"> &para;</a></span></h3>
  <p>TI MSP430 processor.
  This configuration is intended for embedded systems.
  </p>
! <p>&lsquo;<samp class="samp">msp430-*-elf</samp>&rsquo; is the standard configuration with most GCC
  features enabled by default.
  </p>
! <p>&lsquo;<samp class="samp">msp430-*-elfbare</samp>&rsquo; is tuned for a bare-metal environment, and disables
  features related to shared libraries and other functionality not used for
  this device.  This reduces code and data usage of the GCC libraries, resulting
  in a minimal run-time environment by default.
  </p>
  <p>Features disabled by default include:
! </p><ul class="itemize mark-bullet">
! <li>transactional memory
! </li><li>__cxa_atexit
  </li></ul>
  
  <hr />
! <a class="anchor" id="nds32le-x-elf"></a><h3 class="heading" id="nds32le-*-elf"><span>nds32le-*-elf<a class="copiable-link" href="#nds32le-*-elf"> &para;</a></span></h3>
  <p>Andes NDS32 target in little endian mode.
  </p>
  <hr />
! <a class="anchor" id="nds32be-x-elf"></a><h3 class="heading" id="nds32be-*-elf"><span>nds32be-*-elf<a class="copiable-link" href="#nds32be-*-elf"> &para;</a></span></h3>
  <p>Andes NDS32 target in big endian mode.
  </p>
  <hr />
! <a class="anchor" id="nvptx-x-none"></a><h3 class="heading" id="nvptx-*-none"><span>nvptx-*-none<a class="copiable-link" href="#nvptx-*-none"> &para;</a></span></h3>
  <p>Nvidia PTX target.
  </p>
! <p>Instead of GNU Binutils, you will need to install
! <a class="uref" href="https://github.com/SourceryTools/nvptx-tools">nvptx-tools</a>.
  Tell GCC where to find it:
! <samp class="option">--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin</samp>.
  </p>
  <p>You will need newlib 4.3.0 or later.  It can be
  automatically built together with GCC.  For this, add a symbolic link
! to nvptx-newlib&rsquo;s <samp class="file">newlib</samp> directory to the directory containing
  the GCC sources.
  </p>
! <p>Use the <samp class="option">--disable-sjlj-exceptions</samp> and
! <samp class="option">--enable-newlib-io-long-long</samp> options when configuring.
  </p>
! <p>The <samp class="option">--with-arch</samp> option may be specified to override the
! default value for the <samp class="option">-march</samp> option, and to also build
  corresponding target libraries.
! The default is <samp class="option">--with-arch=sm_52</samp>.
  </p>
! <p>For example, if <samp class="option">--with-arch=sm_70</samp> is specified,
! code generation defaults to <samp class="option">-march=sm_70</samp> and
  corresponding target libraries are built, in addition to those
! mandated by <samp class="option">--with-multilib-list</samp>, if any,
  see
! <a class="uref" href="configure.html#with-multilib-list"><samp class="option">--with-multilib-list</samp></a>.
  </p>
  <hr />
! <a class="anchor" id="or1k-x-elf"></a><h3 class="heading" id="or1k-*-elf"><span>or1k-*-elf<a class="copiable-link" href="#or1k-*-elf"> &para;</a></span></h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="or1k-x-linux"></a><h3 class="heading" id="or1k-*-linux"><span>or1k-*-linux<a class="copiable-link" href="#or1k-*-linux"> &para;</a></span></h3>
  <p>The OpenRISC 1000 32-bit processor with delay slots.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-x"></a><h3 class="heading" id="powerpc-*-*"><span>powerpc-*-*<a class="copiable-link" href="#powerpc-*-*"> &para;</a></span></h3>
! <p>You can specify a default version for the <samp class="option">-mcpu=<var class="var">cpu_type</var></samp>
! switch by using the configure option <samp class="option">--with-cpu-<var class="var">cpu_type</var></samp>.
  </p>
! <p>You will need GNU Binutils 2.20 or newer.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-darwin"></a><h3 class="heading" id="powerpc-*-darwin*"><span>powerpc-*-darwin*<a class="copiable-link" href="#powerpc-*-darwin*"> &para;</a></span></h3>
  <p>PowerPC running Darwin (Mac OS X kernel).
  </p>
  <p>Pre-installed versions of Mac OS X may not include any developer tools,
  meaning that you will not be able to build GCC from source.  Tool
  binaries are available at
! <a class="uref" href="https://opensource.apple.com">https://opensource.apple.com</a>.
  </p>
  <p>This version of GCC requires at least cctools-590.36.  The
  cctools-590.36 package referenced from
! <a class="uref" href="https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html">https://gcc.gnu.org/ml/gcc/2006-03/msg00507.html</a> will not work
  on systems older than 10.3.9 (aka darwin7.9.0).
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-elf"></a><h3 class="heading" id="powerpc-*-elf"><span>powerpc-*-elf<a class="copiable-link" href="#powerpc-*-elf"> &para;</a></span></h3>
  <p>PowerPC system in big endian mode, running System V.4.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-linux-gnu"></a><h3 class="heading" id="powerpc*-*-linux-gnu*"><span>powerpc*-*-linux-gnu*<a class="copiable-link" href="#powerpc*-*-linux-gnu*"> &para;</a></span></h3>
  <p>PowerPC system in big endian mode running Linux.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-netbsd"></a><h3 class="heading" id="powerpc-*-netbsd*"><span>powerpc-*-netbsd*<a class="copiable-link" href="#powerpc-*-netbsd*"> &para;</a></span></h3>
  <p>PowerPC system in big endian mode running NetBSD.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-eabisim"></a><h3 class="heading" id="powerpc-*-eabisim"><span>powerpc-*-eabisim<a class="copiable-link" href="#powerpc-*-eabisim"> &para;</a></span></h3>
  <p>Embedded PowerPC system in big endian mode for use in running under the
  PSIM simulator.
  </p>
  <hr />
! <a class="anchor" id="powerpc-x-eabi"></a><h3 class="heading" id="powerpc-*-eabi"><span>powerpc-*-eabi<a class="copiable-link" href="#powerpc-*-eabi"> &para;</a></span></h3>
  <p>Embedded PowerPC system in big endian mode.
  </p>
  <hr />
! <a class="anchor" id="powerpcle-x-elf"></a><h3 class="heading" id="powerpcle-*-elf"><span>powerpcle-*-elf<a class="copiable-link" href="#powerpcle-*-elf"> &para;</a></span></h3>
  <p>PowerPC system in little endian mode, running System V.4.
  </p>
  <hr />
! <a class="anchor" id="powerpcle-x-eabisim"></a><h3 class="heading" id="powerpcle-*-eabisim"><span>powerpcle-*-eabisim<a class="copiable-link" href="#powerpcle-*-eabisim"> &para;</a></span></h3>
  <p>Embedded PowerPC system in little endian mode for use in running under
  the PSIM simulator.
  </p>
  <hr />
! <a class="anchor" id="powerpcle-x-eabi"></a><h3 class="heading" id="powerpcle-*-eabi"><span>powerpcle-*-eabi<a class="copiable-link" href="#powerpcle-*-eabi"> &para;</a></span></h3>
  <p>Embedded PowerPC system in little endian mode.
  </p>
  <hr />
! <a class="anchor" id="rl78-x-elf"></a><h3 class="heading" id="rl78-*-elf"><span>rl78-*-elf<a class="copiable-link" href="#rl78-*-elf"> &para;</a></span></h3>
  <p>The Renesas RL78 processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="riscv32-x-elf"></a><h3 class="heading" id="riscv32-*-elf"><span>riscv32-*-elf<a class="copiable-link" href="#riscv32-*-elf"> &para;</a></span></h3>
  <p>The RISC-V RV32 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  </p>
  <hr />
! <a class="anchor" id="riscv32-x-linux"></a><h3 class="heading" id="riscv32-*-linux"><span>riscv32-*-linux<a class="copiable-link" href="#riscv32-*-linux"> &para;</a></span></h3>
  <p>The RISC-V RV32 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  </p>
  <hr />
! <a class="anchor" id="riscv64-x-elf"></a><h3 class="heading" id="riscv64-*-elf"><span>riscv64-*-elf<a class="copiable-link" href="#riscv64-*-elf"> &para;</a></span></h3>
  <p>The RISC-V RV64 instruction set.
  This configuration is intended for embedded systems.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  </p>
  <hr />
! <a class="anchor" id="riscv64-x-linux"></a><h3 class="heading" id="riscv64-*-linux"><span>riscv64-*-linux<a class="copiable-link" href="#riscv64-*-linux"> &para;</a></span></h3>
  <p>The RISC-V RV64 instruction set running GNU/Linux.
! This (and all other RISC-V) targets require the binutils 2.40 release.
  </p>
  <hr />
! <a class="anchor" id="rx-x-elf"></a><h3 class="heading" id="rx-*-elf"><span>rx-*-elf<a class="copiable-link" href="#rx-*-elf"> &para;</a></span></h3>
  <p>The Renesas RX processor.
  </p>
  <hr />
! <a class="anchor" id="s390-x-linux"></a><h3 class="heading" id="s390-*-linux*"><span>s390-*-linux*<a class="copiable-link" href="#s390-*-linux*"> &para;</a></span></h3>
  <p>S/390 system running GNU/Linux for S/390.
  </p>
  <hr />
! <a class="anchor" id="s390x-x-linux"></a><h3 class="heading" id="s390x-*-linux*"><span>s390x-*-linux*<a class="copiable-link" href="#s390x-*-linux*"> &para;</a></span></h3>
  <p>zSeries system (64-bit) running GNU/Linux for zSeries.
  </p>
  <hr />
! <a class="anchor" id="s390x-ibm-tpf"></a><h3 class="heading" id="s390x-ibm-tpf*"><span>s390x-ibm-tpf*<a class="copiable-link" href="#s390x-ibm-tpf*"> &para;</a></span></h3>
  <p>zSeries system (64-bit) running TPF.  This platform is
  supported as cross-compilation target only.
  </p>
  <hr />
! <a class="anchor" id="x-x-solaris2"></a><h3 class="heading" id="g_t*-*-solaris2*"><span>*-*-solaris2*<a class="copiable-link" href="#g_t*-*-solaris2*"> &para;</a></span></h3>
! <p>GCC only supports Solaris 11.4.  Support for Solaris 11.3 and earlier
! has been removed in GCC 15.  Support for Solaris 10 has been removed
! in GCC 10.
  </p>
! <p>Solaris 11.4 bundles several versions of GCC installed in parallel.
! They can be found in <samp class="file">/usr/gcc/<var class="var">majorvers</var></samp>, with the default
! in <samp class="file">/usr/bin</samp>. The exact set depends on the update installed.  It
! includes a subset of the available languages: since SRU 39 this
! consists of C, C++, Objective-C, Ada, Fortran, and Go.
  </p>
! <p>In order to build the GNU Ada compiler, GNAT, a working GNAT is
! needed.
  </p>
! <p>In order to build the GNU D compiler, GDC, a working GDC is needed
! which isn&rsquo;t included with the bundled GCC.  At least GDC 11.5.0 is
! required on both SPARC and x86.  However, the &lsquo;<samp class="samp">libphobos</samp>&rsquo; library
! wasn&rsquo;t built by default in GCC 11 on SPARC, or on x86 when the Solaris
! assembler is used, but can be enabled by configuring with
! <samp class="option">--enable-libphobos</samp>.
  </p>
! <p>You need to install the <code class="code">system/header</code>, <code class="code">system/linker</code>, and
! <code class="code">developer/assembler</code> packages.
  </p>
! <p>The build process works more smoothly with the GNU tools, so place
! <samp class="file">/usr/gnu/bin</samp> before <samp class="file">/usr/bin</samp> in your <code class="env">PATH</code>.
  </p>
! <p>Unlike other systems, without special options a bi-arch compiler is
! built.  There are both 32-bit configurations which can also generate
! 64-bit code with the <samp class="option">-m64</samp> switch, and 64-bit configurations
! capable of 32-bit code generation with <samp class="option">-m32</samp>.
  </p>
! <p>In both cases, the build compiler must match the target configuration.
! Configure with &lsquo;<samp class="samp">CC='gcc -m32' CXX='g++ -m32' GDC='gdc -m32'</samp>&rsquo; for
! a 32-bit target, or <samp class="option">-m64</samp> for a 64-bit target.  The target
! must always be specified explicitly with <samp class="option">--build=<var class="var">target</var></samp>
! because <samp class="file">config.guess</samp> misdetects the situation, which can cause
! build failures.
  </p>
! <p>Use the following targets as appropriate:
  </p>
! <dl class="table">
! <dt>32-bit-default Solaris/x86</dt>
! <dd><p>&lsquo;<samp class="samp">i386-pc-solaris2.11</samp>&rsquo;
! </p></dd>
! <dt>64-bit-default Solaris/x86</dt>
! <dd><p>&lsquo;<samp class="samp">amd64-pc-solaris2.11</samp>&rsquo; or &lsquo;<samp class="samp">x86_64-pc-solaris2.11</samp>&rsquo;
! </p></dd>
! <dt>32-bit-default Solaris/SPARC</dt>
! <dd><p>&lsquo;<samp class="samp">sparc-sun-solaris2.11</samp>&rsquo;
! </p></dd>
! <dt>64-bit-default Solaris/SPARC</dt>
! <dd><p>&lsquo;<samp class="samp">sparcv9-sun-solaris2.11</samp>&rsquo; or &lsquo;<samp class="samp">sparc64-sun-solaris2.11</samp>&rsquo;
! </p></dd>
! </dl>
! 
! <p>GCC can use both the native Solaris assembler and linker and those
! from GNU Binutils, with 3 supported combinations.  One of those needs
! to be selected when configuring GCC.
  </p>
! <ul class="itemize mark-bullet">
! <li>Solaris <code class="command">as</code> and <code class="command">ld</code>
! </li><li>GNU <code class="command">as</code> and Solaris <code class="command">ld</code>
! </li><li>GNU <code class="command">as</code> and <code class="command">ld</code>
! </li></ul>
! 
! <p>However, the combination of Solaris <code class="command">as</code> and GNU <code class="command">ld</code>
! is broken and should be avoided.
  </p>
! <p>Solaris 11.4 includes GNU Binutils 2.30.1 or newer.  This is the
! minimum supported version.  Either the bundled version or newer ones
! are known to work well.  When building a 32-bit-default version of GCC
! with either or both GNU <code class="command">as</code> or GNU <code class="command">ld</code>, GNU Binutils
! must be built separately as 32-bit executables.
! </p>
! <p>Both the GNU assembler (in <samp class="file">/usr/bin/gas</samp> and
! <samp class="file">/usr/gnu/bin/as</samp>) and the Solaris assembler (in
! <samp class="file">/usr/bin/as</samp>) work well.  Solaris <code class="command">as</code> has support for
! for hardware capabilities, while GNU <code class="command">as</code> supports newer x86
! ISAs.  With GNU <code class="command">as</code>, the binaries produced are smaller than
! the ones produced using Solaris <code class="command">as</code>; this difference can be
! quite significant for binaries containing debugging information.
! </p>
! <p>For linking, the Solaris linker (in <samp class="file">/usr/bin/ld</samp>) is preferred.
! The GNU linker (in <samp class="file">/usr/bin/gld</samp> and <samp class="file">/usr/gnu/bin/ld</samp>)
! works, too.  However, it generally lacks platform specific features.
! To use the LTO linker plugin (<samp class="option">-fuse-linker-plugin</samp>) with GNU
! <code class="command">ld</code> in a 32-bit-default configuration, GNU Binutils
! <em class="emph">must</em> be configured with <samp class="option">--enable-largefile</samp>.
! </p>
! <p>We <em class="emph">strongly</em> recommend to specify both the assembler and linker
! with the <code class="command">configure</code> options <samp class="option">--with-as=<var class="var">pathname</var></samp>
! and <samp class="option">--with-ld=<var class="var">pathname</var></samp> to guarantee the right tool is
! found irrespective of the user&rsquo;s <code class="env">PATH</code>.
! </p>
! <p>To enable symbol versioning in &lsquo;<samp class="samp">libstdc++</samp>&rsquo; and other runtime
! libraries with the Solaris linker, you need to have GNU
! <code class="command">c++filt</code>, which is part of GNU Binutils.  Symbol versioning
! will be disabled if no appropriate version is found.  Solaris
! <code class="command">c++filt</code> from the Solaris Studio compilers does <em class="emph">not</em>
! work.
  </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 />
! <a class="anchor" id="sparc-x-x"></a><h3 class="heading" id="sparc*-*-*"><span>sparc*-*-*<a class="copiable-link" href="#sparc*-*-*"> &para;</a></span></h3>
  <p>This section contains general configuration information for all
  SPARC-based platforms.  In addition to reading this section, please
  read all other sections that match your target.
*************** read all other sections that match your
*** 1026,1099 ****
  library and the MPC library are known to be miscompiled by earlier
  versions of GCC on these platforms.  We therefore recommend the use
  of the exact versions of these libraries listed as minimal versions
! in <a href="prerequisites.html">the prerequisites</a>.
! </p>
! <hr />
! <a name="sparc-sun-solaris2"></a><a name="sparc-sun-solaris2*"></a>
! <h3 class="heading">sparc-sun-solaris2*</h3>
! <p>When GCC is configured to use GNU binutils 2.14 or later, the binaries
! produced are smaller than the ones produced using Solaris native tools;
! this difference is quite significant for binaries containing debugging
! information.
! </p>
! <p>Starting with Solaris 7, the operating system is capable of executing
! 64-bit SPARC V9 binaries.  GCC 3.1 and later properly supports
! this; the <samp>-m64</samp> option enables 64-bit code generation.
! </p>
! <p>When configuring the GNU Multiple Precision Library (GMP), the MPFR
! library or the MPC library on Solaris, the canonical target triplet must
! be specified as the <code>build</code> parameter on the <code>configure</code>
! line.  This target triplet can be obtained by invoking
! <code>./config.guess</code> in the toplevel source directory of GCC (and
! not that of GMP or MPFR or MPC).  For example:
! </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure --build=sparc-sun-solaris2.11 --prefix=<var>dirname</var>
! </pre></div>
! 
! <hr />
! <a name="sparc-x-linux"></a><a name="sparc-*-linux*"></a>
! <h3 class="heading">sparc-*-linux*</h3>
! 
! <hr />
! <a name="sparc64-x-solaris2"></a><a name="sparc64-*-solaris2*"></a>
! <h3 class="heading">sparc64-*-solaris2*</h3>
! <p>This is a synonym for &lsquo;<samp>sparcv9-*-solaris2*</samp>&rsquo;.
  </p>
  <hr />
! <a name="sparcv9-x-solaris2"></a><a name="sparcv9-*-solaris2*"></a>
! <h3 class="heading">sparcv9-*-solaris2*</h3>
! 
! <p>When configuring a 64-bit-default GCC on Solaris/SPARC, you must use a
! build compiler that generates 64-bit code, either by default or by
! specifying &lsquo;<samp>CC='gcc -m64' CXX='g++ -m64' GDC='gdc -m64'</samp>&rsquo; to <code>configure</code>.
! Additionally, you <em>must</em> pass <samp>--build=sparcv9-sun-solaris2.11</samp>
! or <samp>--build=sparc64-sun-solaris2.11</samp> because <samp>config.guess</samp>
! misdetects this situation, which can cause build failures.
! </p>
! <p>When configuring the GNU Multiple Precision Library (GMP), the MPFR
! library or the MPC library, the canonical target triplet must be specified
! as the <code>build</code> parameter on the <code>configure</code> line.  For example:
! </p>
! <div class="smallexample">
! <pre class="smallexample">% <var>srcdir</var>/configure --build=sparcv9-sun-solaris2.11 --prefix=<var>dirname</var>
! </pre></div>
  
  <hr />
! <a name="c6x-x-x"></a><a name="c6x-*-*"></a>
! <h3 class="heading">c6x-*-*</h3>
  <p>The C6X family of processors. This port requires binutils 2.22 or newer.
  </p>
  <hr />
! <a name="visium-x-elf"></a><a name="visium-*-elf"></a>
! <h3 class="heading">visium-*-elf</h3>
  <p>CDS VISIUMcore processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a name="x-x-vxworks"></a><a name="g_t*-*-vxworks*"></a>
! <h3 class="heading">*-*-vxworks*</h3>
! <p>Support for VxWorks is in flux.  At present GCC supports <em>only</em> the
  very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
  We welcome patches for other architectures supported by VxWorks 5.5.
  Support for VxWorks AE would also be welcome; we believe this is merely
--- 969,991 ----
  library and the MPC library are known to be miscompiled by earlier
  versions of GCC on these platforms.  We therefore recommend the use
  of the exact versions of these libraries listed as minimal versions
! in <a class="uref" href="prerequisites.html">the prerequisites</a>.
  </p>
  <hr />
! <a class="anchor" id="sparc-x-linux"></a><h3 class="heading" id="sparc-*-linux*"><span>sparc-*-linux*<a class="copiable-link" href="#sparc-*-linux*"> &para;</a></span></h3>
  
  <hr />
! <a class="anchor" id="c6x-x-x"></a><h3 class="heading" id="c6x-*-*"><span>c6x-*-*<a class="copiable-link" href="#c6x-*-*"> &para;</a></span></h3>
  <p>The C6X family of processors. This port requires binutils 2.22 or newer.
  </p>
  <hr />
! <a class="anchor" id="visium-x-elf"></a><h3 class="heading" id="visium-*-elf"><span>visium-*-elf<a class="copiable-link" href="#visium-*-elf"> &para;</a></span></h3>
  <p>CDS VISIUMcore processor.
  This configuration is intended for embedded systems.
  </p>
  <hr />
! <a class="anchor" id="x-x-vxworks"></a><h3 class="heading" id="g_t*-*-vxworks*"><span>*-*-vxworks*<a class="copiable-link" href="#g_t*-*-vxworks*"> &para;</a></span></h3>
! <p>Support for VxWorks is in flux.  At present GCC supports <em class="emph">only</em> the
  very recent VxWorks 5.5 (aka Tornado 2.2) release, and only on PowerPC.
  We welcome patches for other architectures supported by VxWorks 5.5.
  Support for VxWorks AE would also be welcome; we believe this is merely
*************** not interested in supporting older, a.ou
*** 1102,1216 ****
  VxWorks in GCC 3.
  </p>
  <p>VxWorks comes with an older version of GCC installed in
! <samp><var>$WIND_BASE</var>/host</samp>; we recommend you do not overwrite it.
! Choose an installation <var>prefix</var> entirely outside <var>$WIND_BASE</var>.
! Before running <code>configure</code>, create the directories <samp><var>prefix</var></samp>
! and <samp><var>prefix</var>/bin</samp>.  Link or copy the appropriate assembler,
! linker, etc. into <samp><var>prefix</var>/bin</samp>, and set your <var>PATH</var> to
! include that directory while running both <code>configure</code> and
! <code>make</code>.
  </p>
! <p>You must give <code>configure</code> the
! <samp>--with-headers=<var>$WIND_BASE</var>/target/h</samp> switch so that it can
  find the VxWorks system headers.  Since VxWorks is a cross compilation
! target only, you must also specify <samp>--target=<var>target</var></samp>.
! <code>configure</code> will attempt to create the directory
! <samp><var>prefix</var>/<var>target</var>/sys-include</samp> and copy files into it;
! make sure the user running <code>configure</code> has sufficient privilege
  to do so.
  </p>
  <p>GCC&rsquo;s exception handling runtime requires a special &ldquo;configlette&rdquo;
! module, <samp>contrib/gthr_supp_vxw_5x.c</samp>.  Follow the instructions in
  that file to add the module to your kernel build.  (Future versions of
  VxWorks will incorporate this module.)
  </p>
  <hr />
! <a name="x86-64-x-x"></a><a name="x86_005f64-*-*_002c-amd64-*-*"></a>
! <h3 class="heading">x86_64-*-*, amd64-*-*</h3>
  <p>GCC supports the x86-64 architecture implemented by the AMD64 processor
  (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
  On GNU/Linux the default is a bi-arch compiler which is able to generate
! both 64-bit x86-64 and 32-bit x86 code (via the <samp>-m32</samp> switch).
! </p>
! <hr />
! <a name="x86-64-x-solaris2"></a><a name="x86_005f64-*-solaris2*"></a>
! <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
! can generate 32-bit code with <samp>-m32</samp>.  To configure and build
! this way, you have to provide all support libraries like <samp>libgmp</samp>
! as 64-bit code, configure with <samp>--target=x86_64-pc-solaris2.11</samp>
! and &lsquo;<samp>CC=gcc -m64</samp>&rsquo;.
  </p>
  <hr />
! <a name="xtensa-x-elf"></a><a name="xtensa*-*-elf"></a>
! <h3 class="heading">xtensa*-*-elf</h3>
  <p>This target is intended for embedded Xtensa systems using the
! &lsquo;<samp>newlib</samp>&rsquo; C library.  It uses ELF but does not support shared
  objects.  Designed-defined instructions specified via the
  Tensilica Instruction Extension (TIE) language are only supported
  through inline assembly.
  </p>
  <p>The Xtensa configuration information must be specified prior to
! building GCC.  The <samp>include/xtensa-config.h</samp> header
  file contains the configuration information.  If you created your
  own Xtensa configuration with the Xtensa Processor Generator, the
  downloaded files include a customized copy of this header file,
  which you can use to replace the default header file.
  </p>
  <hr />
! <a name="xtensa-x-linux"></a><a name="xtensa*-*-linux*"></a>
! <h3 class="heading">xtensa*-*-linux*</h3>
  <p>This target is for Xtensa systems running GNU/Linux.  It supports ELF
  shared objects and the GNU C library (glibc).  It also generates
  position-independent code (PIC) regardless of whether the
! <samp>-fpic</samp> or <samp>-fPIC</samp> options are used.  In other
  respects, this target is the same as the
! <a href="#xtensa*-*-elf">&lsquo;<samp>xtensa*-*-elf</samp>&rsquo;</a> target.
  </p>
  <hr />
! <a name="windows"></a><a name="Microsoft-Windows"></a>
! <h3 class="heading">Microsoft Windows</h3>
  
! <a name="Intel-16-bit-versions"></a>
! <h4 class="subheading">Intel 16-bit versions</h4>
! <p>The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not
! supported.
! </p>
! <p>However, the 32-bit port has limited support for Microsoft
! Windows 3.11 in the Win32s environment, as a target only.  See below.
! </p>
! <a name="Intel-32-bit-versions"></a>
! <h4 class="subheading">Intel 32-bit versions</h4>
  <p>The 32-bit versions of Windows, including Windows 95, Windows NT, Windows
  XP, and Windows Vista, are supported by several different target
  platforms.  These targets differ in which Windows subsystem they target
  and which C libraries are used.
  </p>
! <ul>
! <li> Cygwin <a href="#x-x-cygwin">*-*-cygwin</a>: Cygwin provides a user-space
  Linux API emulation layer in the Win32 subsystem.
! </li><li> MinGW <a href="#x-x-mingw32">*-*-mingw32</a>: MinGW is a native GCC port for
  the Win32 subsystem that provides a subset of POSIX.
! </li><li> MKS i386-pc-mks: NuTCracker from MKS.  See
! <a href="https://www.mkssoftware.com">https://www.mkssoftware.com</a> for more information.
  </li></ul>
  
! <a name="Intel-64-bit-versions"></a>
! <h4 class="subheading">Intel 64-bit versions</h4>
  <p>GCC contains support for x86-64 using the mingw-w64
! runtime library, available from <a href="https://www.mingw-w64.org/downloads/">https://www.mingw-w64.org/downloads/</a>.
  This library should be used with the target triple x86_64-pc-mingw32.
  </p>
! <a name="Windows-CE"></a>
! <h4 class="subheading">Windows CE</h4>
  <p>Windows CE is supported as a target only on Hitachi
  SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
  </p>
! <a name="Other-Windows-Platforms"></a>
! <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.
--- 994,1080 ----
  VxWorks in GCC 3.
  </p>
  <p>VxWorks comes with an older version of GCC installed in
! <samp class="file"><var class="var">$WIND_BASE</var>/host</samp>; we recommend you do not overwrite it.
! Choose an installation <var class="var">prefix</var> entirely outside <var class="var">$WIND_BASE</var>.
! Before running <code class="command">configure</code>, create the directories <samp class="file"><var class="var">prefix</var></samp>
! and <samp class="file"><var class="var">prefix</var>/bin</samp>.  Link or copy the appropriate assembler,
! linker, etc. into <samp class="file"><var class="var">prefix</var>/bin</samp>, and set your <var class="var">PATH</var> to
! include that directory while running both <code class="command">configure</code> and
! <code class="command">make</code>.
  </p>
! <p>You must give <code class="command">configure</code> the
! <samp class="option">--with-headers=<var class="var">$WIND_BASE</var>/target/h</samp> switch so that it can
  find the VxWorks system headers.  Since VxWorks is a cross compilation
! target only, you must also specify <samp class="option">--target=<var class="var">target</var></samp>.
! <code class="command">configure</code> will attempt to create the directory
! <samp class="file"><var class="var">prefix</var>/<var class="var">target</var>/sys-include</samp> and copy files into it;
! make sure the user running <code class="command">configure</code> has sufficient privilege
  to do so.
  </p>
  <p>GCC&rsquo;s exception handling runtime requires a special &ldquo;configlette&rdquo;
! module, <samp class="file">contrib/gthr_supp_vxw_5x.c</samp>.  Follow the instructions in
  that file to add the module to your kernel build.  (Future versions of
  VxWorks will incorporate this module.)
  </p>
  <hr />
! <a class="anchor" id="x86-64-x-x"></a><h3 class="heading" id="x86_005f64-*-*_002c-amd64-*-*"><span>x86_64-*-*, amd64-*-*<a class="copiable-link" href="#x86_005f64-*-*_002c-amd64-*-*"> &para;</a></span></h3>
  <p>GCC supports the x86-64 architecture implemented by the AMD64 processor
  (amd64-*-* is an alias for x86_64-*-*) on GNU/Linux, FreeBSD and NetBSD.
  On GNU/Linux the default is a bi-arch compiler which is able to generate
! both 64-bit x86-64 and 32-bit x86 code (via the <samp class="option">-m32</samp> switch).
  </p>
  <hr />
! <a class="anchor" id="xtensa-x-elf"></a><h3 class="heading" id="xtensa*-*-elf"><span>xtensa*-*-elf<a class="copiable-link" href="#xtensa*-*-elf"> &para;</a></span></h3>
  <p>This target is intended for embedded Xtensa systems using the
! &lsquo;<samp class="samp">newlib</samp>&rsquo; C library.  It uses ELF but does not support shared
  objects.  Designed-defined instructions specified via the
  Tensilica Instruction Extension (TIE) language are only supported
  through inline assembly.
  </p>
  <p>The Xtensa configuration information must be specified prior to
! building GCC.  The <samp class="file">include/xtensa-config.h</samp> header
  file contains the configuration information.  If you created your
  own Xtensa configuration with the Xtensa Processor Generator, the
  downloaded files include a customized copy of this header file,
  which you can use to replace the default header file.
  </p>
  <hr />
! <a class="anchor" id="xtensa-x-linux"></a><h3 class="heading" id="xtensa*-*-linux*"><span>xtensa*-*-linux*<a class="copiable-link" href="#xtensa*-*-linux*"> &para;</a></span></h3>
  <p>This target is for Xtensa systems running GNU/Linux.  It supports ELF
  shared objects and the GNU C library (glibc).  It also generates
  position-independent code (PIC) regardless of whether the
! <samp class="option">-fpic</samp> or <samp class="option">-fPIC</samp> options are used.  In other
  respects, this target is the same as the
! <a class="uref" href="#xtensa*-*-elf">&lsquo;<samp class="samp">xtensa*-*-elf</samp>&rsquo;</a> target.
  </p>
  <hr />
! <a class="anchor" id="windows"></a><h3 class="heading" id="Microsoft-Windows"><span>Microsoft Windows<a class="copiable-link" href="#Microsoft-Windows"> &para;</a></span></h3>
  
! <h4 class="subheading" id="Intel-32-bit-versions"><span>Intel 32-bit versions<a class="copiable-link" href="#Intel-32-bit-versions"> &para;</a></span></h4>
  <p>The 32-bit versions of Windows, including Windows 95, Windows NT, Windows
  XP, and Windows Vista, are supported by several different target
  platforms.  These targets differ in which Windows subsystem they target
  and which C libraries are used.
  </p>
! <ul class="itemize mark-bullet">
! <li>Cygwin <a class="uref" href="#x-x-cygwin">*-*-cygwin</a>: Cygwin provides a user-space
  Linux API emulation layer in the Win32 subsystem.
! </li><li>MinGW <a class="uref" href="#x-x-mingw32">*-*-mingw32</a>: MinGW is a native GCC port for
  the Win32 subsystem that provides a subset of POSIX.
! </li><li>MKS i386-pc-mks: NuTCracker from MKS.  See
! <a class="uref" href="https://www.mkssoftware.com">https://www.mkssoftware.com</a> for more information.
  </li></ul>
  
! <h4 class="subheading" id="Intel-64-bit-versions"><span>Intel 64-bit versions<a class="copiable-link" href="#Intel-64-bit-versions"> &para;</a></span></h4>
  <p>GCC contains support for x86-64 using the mingw-w64
! runtime library, available from <a class="uref" href="https://www.mingw-w64.org/downloads/">https://www.mingw-w64.org/downloads/</a>.
  This library should be used with the target triple x86_64-pc-mingw32.
  </p>
! <h4 class="subheading" id="Windows-CE"><span>Windows CE<a class="copiable-link" href="#Windows-CE"> &para;</a></span></h4>
  <p>Windows CE is supported as a target only on Hitachi
  SuperH (sh-wince-pe), and MIPS (mips-wince-pe).
  </p>
! <h4 class="subheading" id="Other-Windows-Platforms"><span>Other Windows Platforms<a class="copiable-link" href="#Other-Windows-Platforms"> &para;</a></span></h4>
  <p>GCC no longer supports Windows NT on the Alpha or PowerPC.
  </p>
  <p>GCC no longer supports the Windows POSIX subsystem.
*************** SuperH (sh-wince-pe), and MIPS (mips-win
*** 1220,1229 ****
  <p>UWIN support has been removed due to a lack of maintenance.
  </p>
  <hr />
! <a name="x-x-cygwin"></a><a name="g_t*-*-cygwin"></a>
! <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.
--- 1084,1092 ----
  <p>UWIN support has been removed due to a lack of maintenance.
  </p>
  <hr />
! <a class="anchor" id="x-x-cygwin"></a><h3 class="heading" id="g_t*-*-cygwin"><span>*-*-cygwin<a class="copiable-link" href="#g_t*-*-cygwin"> &para;</a></span></h3>
  <p>Ports of GCC are included with the
! <a class="uref" 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.
*************** with Microsoft&rsquo;s C++ compiler and
*** 1231,1249 ****
  <p>The Cygwin native compiler can be configured to target any 32-bit x86
  cpu architecture desired; the default is i686-pc-cygwin.  It should be
  used with as up-to-date a version of binutils as possible; use either
! the latest official GNU binutils release in the Cygwin distribution,
  or version 2.20 or above if building your own.
  </p>
  <hr />
! <a name="x-x-mingw32"></a><a name="g_t*-*-mingw32"></a>
! <h3 class="heading">*-*-mingw32</h3>
  <p>GCC will build with and support only MinGW runtime 3.12 and later.
  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>
  <hr />
! <a name="older"></a><a name="Older-systems"></a>
! <h3 class="heading">Older systems</h3>
  <p>GCC contains support files for many older (1980s and early
  1990s) Unix variants.  For the most part, support for these systems
  has not been deliberately removed, but it has not been maintained for
--- 1094,1110 ----
  <p>The Cygwin native compiler can be configured to target any 32-bit x86
  cpu architecture desired; the default is i686-pc-cygwin.  It should be
  used with as up-to-date a version of binutils as possible; use either
! the latest official GNU Binutils release in the Cygwin distribution,
  or version 2.20 or above if building your own.
  </p>
  <hr />
! <a class="anchor" id="x-x-mingw32"></a><h3 class="heading" id="g_t*-*-mingw32"><span>*-*-mingw32<a class="copiable-link" href="#g_t*-*-mingw32"> &para;</a></span></h3>
  <p>GCC will build with and support only MinGW runtime 3.12 and later.
  Earlier versions of headers are incompatible with the new default semantics
! of <code class="code">extern inline</code> in <code class="code">-std=c99</code> and <code class="code">-std=gnu99</code> modes.
  </p>
  <hr />
! <a class="anchor" id="older"></a><h3 class="heading" id="Older-systems"><span>Older systems<a class="copiable-link" href="#Older-systems"> &para;</a></span></h3>
  <p>GCC contains support files for many older (1980s and early
  1990s) Unix variants.  For the most part, support for these systems
  has not been deliberately removed, but it has not been maintained for
*************** several years and may suffer from bitrot
*** 1251,1257 ****
  </p>
  <p>Starting with GCC 3.1, each release has a list of &ldquo;obsoleted&rdquo; systems.
  Support for these systems is still present in that release, but
! <code>configure</code> will fail unless the <samp>--enable-obsolete</samp>
  option is given.  Unless a maintainer steps forward, support for these
  systems will be removed from the next release of GCC.
  </p>
--- 1112,1118 ----
  </p>
  <p>Starting with GCC 3.1, each release has a list of &ldquo;obsoleted&rdquo; systems.
  Support for these systems is still present in that release, but
! <code class="command">configure</code> will fail unless the <samp class="option">--enable-obsolete</samp>
  option is given.  Unless a maintainer steps forward, support for these
  systems will be removed from the next release of GCC.
  </p>
*************** bring GCC up on such a system, if still
*** 1262,1270 ****
  require first installing an old version of GCC which did work on that
  system, and using it to compile a more recent GCC, to avoid bugs in the
  vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
! <samp>old-releases</samp> directory on the <a href="../mirrors.html">GCC mirror
  sites</a>.  Header bugs may generally be avoided using
! <code>fixincludes</code>, but bugs or deficiencies in libraries and the
  operating system may still cause problems.
  </p>
  <p>Support for older systems as targets for cross-compilation is less
--- 1123,1131 ----
  require first installing an old version of GCC which did work on that
  system, and using it to compile a more recent GCC, to avoid bugs in the
  vendor compiler.  Old releases of GCC 1 and GCC 2 are available in the
! <samp class="file">old-releases</samp> directory on the <a class="uref" href="../mirrors.html">GCC mirror
  sites</a>.  Header bugs may generally be avoided using
! <code class="command">fixincludes</code>, but bugs or deficiencies in libraries and the
  operating system may still cause problems.
  </p>
  <p>Support for older systems as targets for cross-compilation is less
*************** problematic than support for them as hos
*** 1272,1278 ****
  wishes to make such a target work again (including resurrecting any of
  the targets that never worked with GCC 2, starting from the last
  version before they were removed), patches
! <a href="../contribute.html">following the usual requirements</a> would be
  likely to be accepted, since they should not affect the support for more
  modern targets.
  </p>
--- 1133,1139 ----
  wishes to make such a target work again (including resurrecting any of
  the targets that never worked with GCC 2, starting from the last
  version before they were removed), patches
! <a class="uref" href="../contribute.html">following the usual requirements</a> would be
  likely to be accepted, since they should not affect the support for more
  modern targets.
  </p>
*************** about GCC on such systems (which may no
*** 1282,1298 ****
  current GCC) is to be found in the GCC texinfo manual.
  </p>
  <hr />
! <a name="elf"></a><a name="all-ELF-targets-_0028SVR4_002c-Solaris_002c-etc_002e_0029"></a>
! <h3 class="heading">all ELF targets (SVR4, Solaris, etc.)</h3>
  <p>C++ support is significantly better on ELF targets if you use the
! <a href="./configure.html#with-gnu-ld">GNU linker</a>; duplicate copies of
  inlines, vtables and template instantiations will be discarded
  automatically.
  </p>
  
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
--- 1143,1158 ----
  current GCC) is to be found in the GCC texinfo manual.
  </p>
  <hr />
! <a class="anchor" id="elf"></a><h3 class="heading" id="all-ELF-targets-_0028SVR4_002c-Solaris_002c-etc_002e_0029"><span>all ELF targets (SVR4, Solaris, etc.)<a class="copiable-link" href="#all-ELF-targets-_0028SVR4_002c-Solaris_002c-etc_002e_0029"> &para;</a></span></h3>
  <p>C++ support is significantly better on ELF targets if you use the
! <a class="uref" href="./configure.html#with-gnu-ld">GNU linker</a>; duplicate copies of
  inlines, vtables and template instantiations will be discarded
  automatically.
  </p>
  
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
diff -Nrcpad gcc-15.2.0/INSTALL/test.html gcc-16.1.0-RC-20260423/INSTALL/test.html
*** gcc-15.2.0/INSTALL/test.html	Fri Aug  8 06:52:57 2025
--- gcc-16.1.0-RC-20260423/INSTALL/test.html	Thu Apr 23 11:07:47 2026
***************
*** 1,6 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
! <!-- 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
--- 1,9 ----
! <!DOCTYPE html>
  <html>
! <!-- Created by GNU Texinfo 7.2, https://www.gnu.org/software/texinfo/ -->
! <head>
! <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
! <!-- Copyright © 1988-2026 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
*************** A GNU Manual
*** 19,27 ****
  You have freedom to copy and modify this GNU Manual, like GNU
       software.  Copies published by the Free Software Foundation raise
       funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Installing GCC: Testing</title>
  
  <meta name="description" content="Installing GCC: Testing">
--- 22,27 ----
*************** You have freedom to copy and modify this
*** 29,59 ****
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
  <style type="text/css">
  <!--
! a.summary-letter {text-decoration: none}
! blockquote.indentedblock {margin-right: 0em}
! blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
! blockquote.smallquotation {font-size: smaller}
! div.display {margin-left: 3.2em}
  div.example {margin-left: 3.2em}
! div.lisp {margin-left: 3.2em}
! div.smalldisplay {margin-left: 3.2em}
! div.smallexample {margin-left: 3.2em}
! div.smalllisp {margin-left: 3.2em}
! kbd {font-style: oblique}
! pre.display {font-family: inherit}
! pre.format {font-family: inherit}
! pre.menu-comment {font-family: serif}
! pre.menu-preformatted {font-family: serif}
! pre.smalldisplay {font-family: inherit; font-size: smaller}
! pre.smallexample {font-size: smaller}
! pre.smallformat {font-family: inherit; font-size: smaller}
! pre.smalllisp {font-size: smaller}
! span.nolinebreak {white-space: nowrap}
! span.roman {font-family: initial; font-weight: normal}
! span.sansserif {font-family: sans-serif; font-weight: normal}
! ul.no-bullet {list-style: none}
  -->
  </style>
  
--- 29,42 ----
  <meta name="resource-type" content="document">
  <meta name="distribution" content="global">
  <meta name="Generator" content="makeinfo">
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ 
  <style type="text/css">
  <!--
! a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
  div.example {margin-left: 3.2em}
! span:hover a.copiable-link {visibility: visible}
! ul.mark-bullet {list-style-type: disc}
  -->
  </style>
  
*************** ul.no-bullet {list-style: none}
*** 61,67 ****
  </head>
  
  <body lang="en">
- <h1 class="settitle" align="center">Installing GCC: Testing</h1>
  
  
  
--- 44,49 ----
*************** ul.no-bullet {list-style: none}
*** 86,118 ****
  
  
  
! <a name="index-Testing"></a>
! <a name="index-Installing-GCC_003a-Testing"></a>
! <a name="index-Testsuite"></a>
  
  <p>Before you install GCC, we encourage you to run the testsuites and to
  compare your results with results from a similar configuration that have
  been submitted to the
! <a href="https://gcc.gnu.org/ml/gcc-testresults/">gcc-testresults mailing list</a>.
  This step is optional and may require you to download additional software,
  but it can give you confidence in your new GCC installation or point out
  problems before you install and start using your new GCC.
  </p>
! <p>First, you must have <a href="download.html">downloaded the testsuites</a>.
  These are included in the source tarball.
  </p>
  <p>Second, you must have the testing tools installed.  This includes
! <a href="https://www.gnu.org/software/dejagnu/">DejaGnu</a>, Tcl, and Expect;
  the DejaGnu site has links to these.
  Some optional tests also require Python3 and pytest module.
  </p>
! <p>If the directories where <code>runtest</code> and <code>expect</code> were
! installed are not in the <code>PATH</code>, you may need to set the following
  environment variables appropriately, as in the following example (which
! assumes that DejaGnu has been installed under <samp>/usr/local</samp>):
  </p>
! <div class="smallexample">
! <pre class="smallexample">TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  </pre></div>
  
--- 68,100 ----
  
  
  
! <a class="index-entry-id" id="index-Testing"></a>
! <a class="index-entry-id" id="index-Installing-GCC_003a-Testing"></a>
! <a class="index-entry-id" id="index-Testsuite"></a>
  
  <p>Before you install GCC, we encourage you to run the testsuites and to
  compare your results with results from a similar configuration that have
  been submitted to the
! <a class="uref" href="https://gcc.gnu.org/ml/gcc-testresults/">gcc-testresults mailing list</a>.
  This step is optional and may require you to download additional software,
  but it can give you confidence in your new GCC installation or point out
  problems before you install and start using your new GCC.
  </p>
! <p>First, you must have <a class="uref" href="download.html">downloaded the testsuites</a>.
  These are included in the source tarball.
  </p>
  <p>Second, you must have the testing tools installed.  This includes
! <a class="uref" href="https://www.gnu.org/software/dejagnu/">DejaGnu</a>, Tcl, and Expect;
  the DejaGnu site has links to these.
  Some optional tests also require Python3 and pytest module.
  </p>
! <p>If the directories where <code class="command">runtest</code> and <code class="command">expect</code> were
! installed are not in the <code class="env">PATH</code>, you may need to set the following
  environment variables appropriately, as in the following example (which
! assumes that DejaGnu has been installed under <samp class="file">/usr/local</samp>):
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  </pre></div>
  
*************** portability in the DejaGnu code.)
*** 122,213 ****
  </p>
  
  <p>Finally, you can run the testsuite (which may take a long time):
! </p><div class="smallexample">
! <pre class="smallexample">cd <var>objdir</var>; make -k check
  </pre></div>
  
  <p>This will test various components of GCC, such as compiler
  front ends and runtime libraries.  While running the testsuite, DejaGnu
  might emit some harmless messages resembling
! &lsquo;<samp>WARNING: Couldn't find the global config file.</samp>&rsquo; or
! &lsquo;<samp>WARNING: Couldn't find tool init file</samp>&rsquo; that can be ignored.
  </p>
  <p>If you are testing a cross-compiler, you may want to run the testsuite
! on a simulator as described at <a href="https://gcc.gnu.org/simtest-howto.html">https://gcc.gnu.org/simtest-howto.html</a>.
  </p>
! <a name="How-can-you-run-the-testsuite-on-selected-tests_003f"></a>
! <h3 class="section">How can you run the testsuite on selected tests?</h3>
  
  <p>In order to run sets of tests selectively, there are targets
! &lsquo;<samp>make check-gcc</samp>&rsquo; and language specific &lsquo;<samp>make check-c</samp>&rsquo;,
! &lsquo;<samp>make check-c++</samp>&rsquo;, &lsquo;<samp>make check-d</samp>&rsquo; &lsquo;<samp>make check-fortran</samp>&rsquo;,
! &lsquo;<samp>make check-ada</samp>&rsquo;, &lsquo;<samp>make check-m2</samp>&rsquo;, &lsquo;<samp>make check-objc</samp>&rsquo;,
! &lsquo;<samp>make check-obj-c++</samp>&rsquo;, &lsquo;<samp>make check-lto</samp>&rsquo; in the <samp>gcc</samp>
  subdirectory of the object directory.  You can also just run
! &lsquo;<samp>make check</samp>&rsquo; in a subdirectory of the object directory.
  </p>
  
! <p>A more selective way to just run all <code>gcc</code> execute tests in the
  testsuite is to use
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-gcc RUNTESTFLAGS=&quot;execute.exp <var>other-options</var>&quot;
  </pre></div>
  
! <p>Likewise, in order to run only the <code>g++</code> &ldquo;old-deja&rdquo; tests in
! the testsuite with filenames matching &lsquo;<samp>9805*</samp>&rsquo;, you would use
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805* <var>other-options</var>&quot;
  </pre></div>
  
! <p>The file-matching expression following <var>filename</var><code>.exp=</code> is treated
  as a series of whitespace-delimited glob expressions so that multiple patterns
  may be passed, although any whitespace must either be escaped or surrounded by
  single quotes if multiple expressions are desired. For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805*\ virtual2.c <var>other-options</var>&quot;
! make check-g++ RUNTESTFLAGS=&quot;'old-deja.exp=9805* virtual2.c' <var>other-options</var>&quot;
  </pre></div>
  
! <p>The <samp>*.exp</samp> files are located in the testsuite directories of the GCC
! source, the most important ones being <samp>compile.exp</samp>,
! <samp>execute.exp</samp>, <samp>dg.exp</samp> and <samp>old-deja.exp</samp>.
! To get a list of the possible <samp>*.exp</samp> files, pipe the
! output of &lsquo;<samp>make check</samp>&rsquo; into a file and look at the
! &lsquo;<samp>Running &hellip;  .exp</samp>&rsquo; lines.
  </p>
! <a name="Passing-options-and-running-multiple-testsuites"></a>
! <h3 class="section">Passing options and running multiple testsuites</h3>
  
  <p>You can pass multiple options to the testsuite using the
! &lsquo;<samp>--target_board</samp>&rsquo; option of DejaGNU, either passed as part of
! &lsquo;<samp>RUNTESTFLAGS</samp>&rsquo;, or directly to <code>runtest</code> if you prefer to
  work outside the makefiles.  For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make check-g++ RUNTESTFLAGS=&quot;--target_board=unix/-O3/-fmerge-constants&quot;
  </pre></div>
  
! <p>will run the standard <code>g++</code> testsuites (&ldquo;unix&rdquo; is the target name
  for a standard native testsuite situation), passing
! &lsquo;<samp>-O3 -fmerge-constants</samp>&rsquo; to the compiler on every test, i.e.,
  slashes separate options.
  </p>
  <p>You can run the testsuites multiple times using combinations of options
  with a syntax similar to the brace expansion of popular shells:
  </p>
! <div class="smallexample">
! <pre class="smallexample">&hellip;&quot;--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}&quot;
  </pre></div>
  
  <p>(Note the empty option caused by the trailing comma in the final group.)
! The following will run each testsuite eight times using the &lsquo;<samp>arm-sim</samp>&rsquo;
  target, as if you had specified all possible combinations yourself:
  </p>
! <div class="smallexample">
! <pre class="smallexample">--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
--- 104,196 ----
  </p>
  
  <p>Finally, you can run the testsuite (which may take a long time):
! </p><div class="example smallexample">
! <pre class="example-preformatted">cd <var class="var">objdir</var>; make -k check
  </pre></div>
  
  <p>This will test various components of GCC, such as compiler
  front ends and runtime libraries.  While running the testsuite, DejaGnu
  might emit some harmless messages resembling
! &lsquo;<samp class="samp">WARNING: Couldn't find the global config file.</samp>&rsquo; or
! &lsquo;<samp class="samp">WARNING: Couldn't find tool init file</samp>&rsquo; that can be ignored.
  </p>
  <p>If you are testing a cross-compiler, you may want to run the testsuite
! on a simulator as described at <a class="uref" href="https://gcc.gnu.org/simtest-howto.html">https://gcc.gnu.org/simtest-howto.html</a>.
  </p>
! <div class="section-level-extent" id="How-can-you-run-the-testsuite-on-selected-tests_003f">
! <h3 class="section"><span>How can you run the testsuite on selected tests?<a class="copiable-link" href="#How-can-you-run-the-testsuite-on-selected-tests_003f"> &para;</a></span></h3>
  
  <p>In order to run sets of tests selectively, there are targets
! &lsquo;<samp class="samp">make check-gcc</samp>&rsquo; and language specific &lsquo;<samp class="samp">make check-c</samp>&rsquo;,
! &lsquo;<samp class="samp">make check-c++</samp>&rsquo;, &lsquo;<samp class="samp">make check-d</samp>&rsquo; &lsquo;<samp class="samp">make check-fortran</samp>&rsquo;,
! &lsquo;<samp class="samp">make check-ada</samp>&rsquo;, &lsquo;<samp class="samp">make check-m2</samp>&rsquo;, &lsquo;<samp class="samp">make check-objc</samp>&rsquo;,
! &lsquo;<samp class="samp">make check-obj-c++</samp>&rsquo;, &lsquo;<samp class="samp">make check-lto</samp>&rsquo; in the <samp class="file">gcc</samp>
  subdirectory of the object directory.  You can also just run
! &lsquo;<samp class="samp">make check</samp>&rsquo; in a subdirectory of the object directory.
  </p>
  
! <p>A more selective way to just run all <code class="command">gcc</code> execute tests in the
  testsuite is to use
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make check-gcc RUNTESTFLAGS=&quot;execute.exp <var class="var">other-options</var>&quot;
  </pre></div>
  
! <p>Likewise, in order to run only the <code class="command">g++</code> &ldquo;old-deja&rdquo; tests in
! the testsuite with filenames matching &lsquo;<samp class="samp">9805*</samp>&rsquo;, you would use
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805* <var class="var">other-options</var>&quot;
  </pre></div>
  
! <p>The file-matching expression following <var class="var">filename</var><code class="command">.exp=</code> is treated
  as a series of whitespace-delimited glob expressions so that multiple patterns
  may be passed, although any whitespace must either be escaped or surrounded by
  single quotes if multiple expressions are desired. For example,
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make check-g++ RUNTESTFLAGS=&quot;old-deja.exp=9805*\ virtual2.c <var class="var">other-options</var>&quot;
! make check-g++ RUNTESTFLAGS=&quot;'old-deja.exp=9805* virtual2.c' <var class="var">other-options</var>&quot;
  </pre></div>
  
! <p>The <samp class="file">*.exp</samp> files are located in the testsuite directories of the GCC
! source, the most important ones being <samp class="file">compile.exp</samp>,
! <samp class="file">execute.exp</samp>, <samp class="file">dg.exp</samp> and <samp class="file">old-deja.exp</samp>.
! To get a list of the possible <samp class="file">*.exp</samp> files, pipe the
! output of &lsquo;<samp class="samp">make check</samp>&rsquo; into a file and look at the
! &lsquo;<samp class="samp">Running &hellip;  .exp</samp>&rsquo; lines.
  </p>
! </div>
! <div class="section-level-extent" id="Passing-options-and-running-multiple-testsuites">
! <h3 class="section"><span>Passing options and running multiple testsuites<a class="copiable-link" href="#Passing-options-and-running-multiple-testsuites"> &para;</a></span></h3>
  
  <p>You can pass multiple options to the testsuite using the
! &lsquo;<samp class="samp">--target_board</samp>&rsquo; option of DejaGNU, either passed as part of
! &lsquo;<samp class="samp">RUNTESTFLAGS</samp>&rsquo;, or directly to <code class="command">runtest</code> if you prefer to
  work outside the makefiles.  For example,
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make check-g++ RUNTESTFLAGS=&quot;--target_board=unix/-O3/-fmerge-constants&quot;
  </pre></div>
  
! <p>will run the standard <code class="command">g++</code> testsuites (&ldquo;unix&rdquo; is the target name
  for a standard native testsuite situation), passing
! &lsquo;<samp class="samp">-O3 -fmerge-constants</samp>&rsquo; to the compiler on every test, i.e.,
  slashes separate options.
  </p>
  <p>You can run the testsuites multiple times using combinations of options
  with a syntax similar to the brace expansion of popular shells:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">...&quot;--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}&quot;
  </pre></div>
  
  <p>(Note the empty option caused by the trailing comma in the final group.)
! The following will run each testsuite eight times using the &lsquo;<samp class="samp">arm-sim</samp>&rsquo;
  target, as if you had specified all possible combinations yourself:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
*************** target, as if you had specified all poss
*** 220,271 ****
  <p>They can be combined as many times as you wish, in arbitrary ways.  This
  list:
  </p>
! <div class="smallexample">
! <pre class="smallexample">&hellip;&quot;--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}&quot;
  </pre></div>
  
! <p>will generate four combinations, all involving &lsquo;<samp>-Wextra</samp>&rsquo;.
  </p>
  <p>The disadvantage to this method is that the testsuites are run in serial,
  which is a waste on multiprocessor systems.  For users with GNU Make and
  a shell which performs brace expansion, you can run the testsuites in
! parallel by having the shell perform the combinations and <code>make</code>
! do the parallel runs.  Instead of using &lsquo;<samp>--target_board</samp>&rsquo;, use a
  special makefile target:
  </p>
! <div class="smallexample">
! <pre class="smallexample">make -j<var>N</var> check-<var>testsuite</var>//<var>test-target</var>/<var>option1</var>/<var>option2</var>/&hellip;
  </pre></div>
  
  <p>For example,
  </p>
! <div class="smallexample">
! <pre class="smallexample">make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  </pre></div>
  
  <p>will run three concurrent &ldquo;make-gcc&rdquo; testsuites, eventually testing all
  ten combinations as described above.  Note that this is currently only
! supported in the <samp>gcc</samp> subdirectory.  (To see how this works, try
! typing <code>echo</code> before the example given here.)
  </p>
  
! <a name="How-to-interpret-test-results"></a>
! <h3 class="section">How to interpret test results</h3>
  
! <p>The result of running the testsuite are various <samp>*.sum</samp> and <samp>*.log</samp>
! files in the testsuite subdirectories.  The <samp>*.log</samp> files contain a
  detailed log of the compiler invocations and the corresponding
! results, the <samp>*.sum</samp> files summarize the results.  These summaries
  contain status codes for all tests:
  </p>
! <ul>
! <li> PASS: the test passed as expected
! </li><li> XPASS: the test unexpectedly passed
! </li><li> FAIL: the test unexpectedly failed
! </li><li> XFAIL: the test failed as expected
! </li><li> UNSUPPORTED: the test is not supported on this platform
! </li><li> ERROR: the testsuite detected an error
! </li><li> WARNING: the testsuite detected a possible problem
  </li></ul>
  
  <p>It is normal for some tests to report unexpected failures.  At the
--- 203,255 ----
  <p>They can be combined as many times as you wish, in arbitrary ways.  This
  list:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">...&quot;--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}&quot;
  </pre></div>
  
! <p>will generate four combinations, all involving &lsquo;<samp class="samp">-Wextra</samp>&rsquo;.
  </p>
  <p>The disadvantage to this method is that the testsuites are run in serial,
  which is a waste on multiprocessor systems.  For users with GNU Make and
  a shell which performs brace expansion, you can run the testsuites in
! parallel by having the shell perform the combinations and <code class="command">make</code>
! do the parallel runs.  Instead of using &lsquo;<samp class="samp">--target_board</samp>&rsquo;, use a
  special makefile target:
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make -j<var class="var">N</var> check-<var class="var">testsuite</var>//<var class="var">test-target</var>/<var class="var">option1</var>/<var class="var">option2</var>/...
  </pre></div>
  
  <p>For example,
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted">make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  </pre></div>
  
  <p>will run three concurrent &ldquo;make-gcc&rdquo; testsuites, eventually testing all
  ten combinations as described above.  Note that this is currently only
! supported in the <samp class="file">gcc</samp> subdirectory.  (To see how this works, try
! typing <code class="command">echo</code> before the example given here.)
  </p>
  
! </div>
! <div class="section-level-extent" id="How-to-interpret-test-results">
! <h3 class="section"><span>How to interpret test results<a class="copiable-link" href="#How-to-interpret-test-results"> &para;</a></span></h3>
  
! <p>The result of running the testsuite are various <samp class="file">*.sum</samp> and <samp class="file">*.log</samp>
! files in the testsuite subdirectories.  The <samp class="file">*.log</samp> files contain a
  detailed log of the compiler invocations and the corresponding
! results, the <samp class="file">*.sum</samp> files summarize the results.  These summaries
  contain status codes for all tests:
  </p>
! <ul class="itemize mark-bullet">
! <li>PASS: the test passed as expected
! </li><li>XPASS: the test unexpectedly passed
! </li><li>FAIL: the test unexpectedly failed
! </li><li>XFAIL: the test failed as expected
! </li><li>UNSUPPORTED: the test is not supported on this platform
! </li><li>ERROR: the testsuite detected an error
! </li><li>WARNING: the testsuite detected a possible problem
  </li></ul>
  
  <p>It is normal for some tests to report unexpected failures.  At the
*************** over whether or not a test is expected t
*** 274,292 ****
  be fixed in future releases.
  </p>
  
! <a name="Submitting-test-results"></a>
! <h3 class="section">Submitting test results</h3>
  
  <p>If you want to report the results to the GCC project, use the
! <samp>contrib/test_summary</samp> shell script.  Start it in the <var>objdir</var> with
  </p>
! <div class="smallexample">
! <pre class="smallexample"><var>srcdir</var>/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  </pre></div>
  
! <p>This script uses the <code>Mail</code> program to send the results, so
! make sure it is in your <code>PATH</code>.  The file <samp>your_commentary.txt</samp> is
  prepended to the testsuite summary and should contain any special
  remarks you have on your results or your build environment.  Please
  do not edit the testsuite result block or the subject line, as these
--- 258,277 ----
  be fixed in future releases.
  </p>
  
! </div>
! <div class="section-level-extent" id="Submitting-test-results">
! <h3 class="section"><span>Submitting test results<a class="copiable-link" href="#Submitting-test-results"> &para;</a></span></h3>
  
  <p>If you want to report the results to the GCC project, use the
! <samp class="file">contrib/test_summary</samp> shell script.  Start it in the <var class="var">objdir</var> with
  </p>
! <div class="example smallexample">
! <pre class="example-preformatted"><var class="var">srcdir</var>/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  </pre></div>
  
! <p>This script uses the <code class="command">Mail</code> program to send the results, so
! make sure it is in your <code class="env">PATH</code>.  The file <samp class="file">your_commentary.txt</samp> is
  prepended to the testsuite summary and should contain any special
  remarks you have on your results or your build environment.  Please
  do not edit the testsuite result block or the subject line, as these
*************** messages may be automatically processed.
*** 294,307 ****
  </p>
  <hr />
  <p>
! <p><a href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
  
  
  
! <hr>
  
  
  
--- 279,292 ----
  </p>
  <hr />
  <p>
! <p><a class="uref" href="./index.html">Return to the GCC Installation page</a>
  </p>
  
  
  
  
  
! </div>
  
  
  
diff -Nrcpad gcc-15.2.0/LAST_UPDATED gcc-16.1.0-RC-20260423/LAST_UPDATED
*** gcc-15.2.0/LAST_UPDATED	Fri Aug  8 06:52:56 2025
--- gcc-16.1.0-RC-20260423/LAST_UPDATED	Thu Apr 23 11:07:45 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15.2.0 revision 5115c7e447fc07457443df874bf57840e8316d5f
--- 1 ----
! Obtained from git: releases/gcc-16 revision 9fa782dee8894e01527d3f85b3fc159b4aaa8893
diff -Nrcpad gcc-15.2.0/MAINTAINERS gcc-16.1.0-RC-20260423/MAINTAINERS
*** gcc-15.2.0/MAINTAINERS	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/MAINTAINERS	Thu Apr 23 11:07:32 2026
*************** Richard Biener
*** 35,46 ****
  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>
--- 35,47 ----
  Richard Earnshaw                                <richard.earnshaw@arm.com>
  Jakub Jelinek                                   <jakub@redhat.com>
  Richard Kenner                                  <kenner@nyu.edu>
! Jeff Law                                        <jeffrey.law@oss.qualcomm.com>
  Michael Meissner                                <gnu@the-meissners.org>
  Jason Merrill                                   <jason@redhat.com>
  David S. Miller                                 <davem@redhat.com>
  Joseph Myers                                    <josmyers@redhat.com>
! Andrew Pinski                                   <andrew.pinski@oss.qualcomm.com>
! Richard Sandiford                               <rdsandiford@googlemail.com>
  Bernd Schmidt                                   <bernds_cb1@t-online.de>
  Ian Lance Taylor                                <ian@airs.com>
  Jim Wilson                                      <wilson@tuliptree.org>
*************** docs, and the testsuite related to that.
*** 56,63 ****
  
  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>
--- 57,63 ----
  
  aarch64 ldp/stp         Alex Coplan             <alex.coplan@arm.com>
  aarch64 port            Richard Earnshaw        <richard.earnshaw@arm.com>
! aarch64 port            Tamar Christina         <tamar.christina@arm.com>
  aarch64 port            Kyrylo Tkachov          <ktkachov@nvidia.com>
  alpha port              Richard Henderson       <rth@gcc.gnu.org>
  amdgcn port             Julian Brown            <julian@codesourcery.com>
*************** powerpcspe port         Andrew Jenner
*** 110,115 ****
--- 110,116 ----
  pru port                Dimitar Dimitrov        <dimitar@dinux.eu>
  riscv port              Kito Cheng              <kito.cheng@gmail.com>
  riscv port              Palmer Dabbelt          <palmer@dabbelt.com>
+ riscv port              Robin Dapp              <rdapp.gcc@gmail.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>
*************** objective-c/c++         Mike Stump
*** 173,178 ****
--- 174,180 ----
  objective-c/c++         Iain Sandoe             <iain@sandoe.co.uk>
  Rust                    Arthur Cohen            <arthur.cohen@embecosm.com>
  Rust                    Philip Herron           <herron.philip@googlemail.com>
+ Algol 68                Jose E. Marchesi        <jemarch@gnu.org>
  
                          Various Maintainers
  
*************** libcpp                  Per Bothner
*** 181,186 ****
--- 183,189 ----
  libcpp                  All C and C++ front end maintainers
  libcpp                  David Malcolm           <dmalcolm@redhat.com>
  fp-bit                  Ian Lance Taylor        <ian@airs.com>
+ libga68                 Jose E. Marchesi        <jemarch@gnu.org>
  libgcc                  Ian Lance Taylor        <ian@airs.com>
  libgo                   Ian Lance Taylor        <ian@airs.com>
  libgomp                 Jakub Jelinek           <jakub@redhat.com>
*************** callgraph               Jan Hubicka
*** 208,214 ****
  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>
--- 211,217 ----
  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           <pcarlini@gmail.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>
*************** reload                  Ulrich Weigand
*** 253,260 ****
  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>
--- 256,264 ----
  RTL optimizers          Eric Botcazou           <ebotcazou@libertysurf.fr>
  instruction combiner    Segher Boessenkool      <segher@kernel.crashing.org>
  pair fusion             Alex Coplan             <alex.coplan@arm.com>
! vectorizer (+ tree-if-conv) Richard Biener      <rguenther@suse.de>
! vectorizer (+ tree-if-conv) Tamar Christina     <tamar.christina@arm.com>
! vectorizer (+ tree-if-conv) Zdenek Dvorak       <ook@ucw.cz>
  loop infrastructure     Zdenek Dvorak           <ook@ucw.cz>
  loop ivopts             Bin Cheng               <bin.cheng@linux.alibaba.com>
  loop optimizer          Bin Cheng               <bin.cheng@linux.alibaba.com>
*************** gdbhooks.py             David Malcolm
*** 269,285 ****
--- 273,295 ----
  jit                     David Malcolm           <dmalcolm@redhat.com>
  gen* on machine desc    Richard Sandiford       <rdsandiford@googlemail.com>
  static analyzer         David Malcolm           <dmalcolm@redhat.com>
+ forge integration       Claudio Bantaloukas     <claudio.bantaloukas@arm.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
  
+ aarch64 port            Alice Carlotti          <alice.carlotti@arm.com>
+ aarch64 port            Alex Coplan             <alex.coplan@arm.com>
+ aarch64 port            Andrew Pinski           <andrew.pinski@oss.qualcomm.com>
+ aarch64 port            Wilco Dijkstra          <wilco.dijkstra@arm.com>
  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>
+ c++                     Patrick Palka           <ppalka@gcc.gnu.org>
  dataflow                Paolo Bonzini           <bonzini@gnu.org>
  dataflow                Seongbae Park           <seongbae.park@gmail.com>
  dataflow                Kenneth Zadeck          <zadeck@naturalbridge.com>
*************** loop optimizer          Zdenek Dvorak
*** 309,322 ****
  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>
--- 319,332 ----
  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@tenstorrent.com>
  register allocation     Kenneth Zadeck          <zadeck@naturalbridge.com>
  register allocation     Seongbae Park           <seongbae.park@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>
+ vectorizer (+ tree-if-conv) Robin Dapp          <rdapp.gcc@gmail.com>
  wide-int                Kenneth Zadeck          <zadeck@naturalbridge.com>
  wide-int                Mike Stump              <mikestump@comcast.net>
  wide-int                Richard Sandiford       <rdsandiford@googlemail.com>
*************** from other maintainers or reviewers.
*** 330,342 ****
  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>
--- 340,353 ----
  Name                            BZ account      Email
  
  Soumya AR                       soumyaa         <soumyaa@nvidia.com>
+ Spencer Abson                   sabson          <spencer.abson@student.manchester.ac.uk>
  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           <aarsenovic@baylibre.com>
  Raksit Ashok                    raksit          <raksit@google.com>
  Sterling Augustine              sterling        <augustine.sterling@gmail.com>
  Matt Austern                    austern         <austern@google.com>
*************** Scott Bambrough                 -
*** 349,354 ****
--- 360,366 ----
  Wolfgang Bangerth               -               <bangerth@dealii.org>
  Claudio Bantaloukas             rdfm            <claudio.bantaloukas@arm.com>
  Gergö Barany                    -               <gergo@codesourcery.com>
+ Daniel Barboza                  dbarboza        <daniel.barboza@oss.qualcomm.com>
  Thiago Jung Bauermann           -               <thiago.bauermann@linaro.org>
  Charles Baylis                  cbaylis         <charles.baylis@linaro.org>
  Tejas Belagod                   belagod         <tejas.belagod@arm.com>
*************** Serge Belyshev                  -
*** 358,364 ****
  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>
--- 370,376 ----
  Jon Beniston                    jbeniston       <jon@beniston.com>
  Andrew Bennett                  -               <andrew.bennett@imgtec.com>
  Andrew Benson                   abensonca       <abensonca@gmail.com>
! Peter Bergner                   bergner         <bergner@tenstorrent.com>
  Daniel Berlin                   dberlin         <dberlin@dberlin.org>
  Pat Bernardi                    -               <bernardi@adacore.com>
  Jan Beulich                     -               <jbeulich@suse.com>
*************** Andrew Burgess                  aburgess
*** 395,407 ****
  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>
--- 407,420 ----
  Tobias Burnus                   burnus          <tburnus@baylibre.com>
  Adam Butcher                    abutcher        <adam@jessamine.co.uk>
  Andrew Cagney                   cagney          <cagney@gnu.org>
! Paolo Carlini                   paolo           <pcarlini@gmail.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>
+ Dhruv Chawla                    dhruvc          <dhruvc@nvidia.com>
  Dehao Chen                      dehao           <dehao@google.com>
  Fabien Chêne                    fabien          <fabien@gcc.gnu.org>
  Bin Cheng                       amker           <bin.cheng@linux.alibaba.com>
*************** Nick Clifton                    nickc
*** 419,424 ****
--- 432,438 ----
  Arthur Cohen                    cohenarthur     <arthur.cohen@embecosm.com>
  William Cohen                   -               <wcohen@redhat.com>
  Michael Collison                collison        <michael.collison@arm.com>
+ Alejandro Colomar               -               <alx@kernel.org>
  Josh Conner                     jconner         <joshconner@google.com>
  R. Kelley Cook                  kcook           <kcook@gcc.gnu.org>
  Alex Coplan                     acoplan         <alex.coplan@arm.com>
*************** Jerry DeLisle                   jvdelisl
*** 442,448 ****
  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>
--- 456,462 ----
  DJ Delorie                      dj              <dj@delorie.com>
  Chris Demetriou                 cgd             <cgd@google.com>
  Sameera Deshpande               sameerad        <sameera.deshpande@linaro.org>
! Wilco Dijkstra                  wilco           <wilco.dijkstra@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>
*************** Doug Evans                      devans
*** 468,474 ****
  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>
--- 482,488 ----
  Chris Fairles                   cfairles        <cfairles@gcc.gnu.org>
  Alessandro Fanfarillo           afanfa          <fanfarillo.gcc@gmail.com>
  Changpeng Fang                  cfang           <changpeng.fang@amd.com>
! David Faust                     dfaust          <david.faust@oracle.com>
  Sam Feifer                      -               <sfeifer@redhat.com>
  Eric Feng                       efric           <ef2648@columbia.edu>
  Li Feng                         lifeng          <nemokingdom@gmail.com>
*************** Matthew Gingell                 -
*** 492,498 ****
  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>
--- 506,512 ----
  Tristan Gingold                 gingold         <tgingold@free.fr>
  Jan-Benedict Glaw               jbglaw          <jbglaw@lug-owl.de>
  Marc Glisse                     glisse          <marc.glisse@inria.fr>
! Prachi Godbole                  pgodbole        <pgodbole@nvidia.com>
  Torbjorn Granlund               -               <tege@swox.com>
  Anthony Green                   green           <green@moxielogic.com>
  James Greenhalgh                jgreenhalgh     <james.greenhalgh@arm.com>
*************** Haochen Gui                     guihaoc
*** 506,512 ****
  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>
--- 520,526 ----
  Jiufu Guo                       guojiufu        <guojiufu@linux.ibm.com>
  Xuepeng Guo                     xguo            <terry.xpguo@gmail.com>
  Wei Guozhi                      carrot          <carrot@google.com>
! Vineet Gupta                    vineetg         <vineet.gupta@linux.dev>
  Naveen H.S                      naveenh         <naveenh@marvell.com>
  Mostafa Hagog                   hagog           <hagog@gcc.gnu.org>
  Olivier Hainque                 hainque         <hainque@adacore.com>
*************** Fariborz Jahanian               -
*** 561,566 ****
--- 575,581 ----
  Martin Jambor                   jamborm         <mjambor@suse.cz>
  Sam James                       sjames          <sam@gentoo.org>
  Surya Kumari Jangala            jskumari        <jskumari@linux.ibm.com>
+ Avinash Jayakar                 avinashd        <avinashd@linux.ibm.com>
  Jakub Jelinek                   jakub           <jakub@redhat.com>
  Andrew Jenner                   andrewjenner    <andrew@codesourcery.com>
  Saurabh Jha                     saurabhjha      <saurabh.jha@arm.com>
*************** James Lemke                     jwlemke
*** 623,628 ****
--- 638,644 ----
  Ilya Leoshkevich                iii             <iii@linux.ibm.com>
  Kriang Lerdsuwanakij            lerdsuwa        <lerdsuwa@users.sourceforge.net>
  Pan Li                          -               <pan2.li@intel.com>
+ Pengfei Li                      pfustc          <pengfei.li2@arm.com>
  Renlin Li                       renlin          <renlin.li@arm.com>
  Xinliang David Li               davidxl         <davidxl@google.com>
  Kewen Lin                       linkw           <linkw@gcc.gnu.org>
*************** Bin Bin Lv                      shlb
*** 647,654 ****
  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>
--- 663,671 ----
  Christophe Lyon                 clyon           <christophe.lyon@arm.com>
  Jin Ma                          majin           <jinma@linux.alibaba.com>
  Jun Ma                          junma           <junma@linux.alibaba.com>
+ Yuao Ma                         -               <yuao@gcc.gnu.org>
  Andrew MacLeod                  -               <amacleod@redhat.com>
! Luis Machado                    luisgpm         <luis.machado.foss@gmail.com>
  Ziga Mahkovec                   ziga            <ziga.mahkovec@klika.si>
  Vladimir Makarov                vmakarov        <vmakarov@redhat.com>
  David Malcolm                   dmalcolm        <dmalcolm@redhat.com>
*************** Michael Matz                    matz
*** 666,675 ****
  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>
--- 683,693 ----
  Greg McGary                     -               <gkm@gnu.org>
  Roland McGrath                  roland          <roland@hack.frob.com>
  Bryce McKinlay                  bryce           <mckinlay@redhat.com>
+ Karl Meakin                     -               <karl.meakin@arm.com>
  Adam Megacz                     -               <adam@xwt.org>
  Bingfeng Mei                    meibf           <bmei@broadcom.com>
  Michael Meissner                meissner        <gnu@the-meissners.org>
! Josef Melcr                     jmelcr          <josef.melcr@suse.com>
  Jason Merrill                   jason           <jason@redhat.com>
  Jim Meyering                    -               <jim@meyering.net>
  Martin Michlmayr                tbm             <tbm@cyrius.com>
*************** Dragan Mladjenovic              draganm
*** 681,686 ****
--- 699,705 ----
  Alan Modra                      amodra          <amodra@gmail.com>
  Toon Moene                      toon            <toon@moene.org>
  Alexander Monakov               amonakov        <amonakov@ispras.ru>
+ Pietro Monteiro                 pietro          <pietro@sociotechnical.xyz>
  Catherine Moore                 clm             <clm@codesourcery.com>
  Mikael Morin                    mikael          <mikael@gcc.gnu.org>
  James A. Morrison               phython         <phython@gcc.gnu.org>
*************** Christoph Müllner               cmuelln
*** 692,697 ****
--- 711,717 ----
  Steven Munroe                   munroesj        <munroesj52@gmail.com>
  Philippe De Muyter              -               <phdm@macqel.be>
  Joseph Myers                    jsm28           <josmyers@redhat.com>
+ Nathan Myers                    ncm             <ncm@cantrip.org>
  Szabolcs Nagy                   nsz             <nsz@gcc.gnu.org>
  Victor Do Nascimento            victorldn       <victor.donascimento@arm.com>
  Quentin Neill                   qneill          <quentin.neill.gnu@gmail.com>
*************** Maxim Ostapenko                 chefmax
*** 717,722 ****
--- 737,743 ----
  Jeevitha Palanisamy             jeevitha        <jeevitha@linux.ibm.com>
  Patrick Palka                   ppalka          <ppalka@gcc.gnu.org>
  Seongbae Park                   spark           <seongbae.park@gmail.com>
+ Kishan Parmar                   kishan          <kishan@linux.ibm.com>
  Srinath Parvathaneni            sripar01        <srinath.parvathaneni@arm.com>
  Devang Patel                    dpatel          <dpatel@apple.com>
  Andris Pavenis                  andris          <andris.pavenis@iki.fi>
*************** Fernando Pereira                pronesto
*** 724,733 ****
  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>
--- 745,755 ----
  Nicola Pero                     nicola          <nicola.pero@meta-innovation.com>
  Sebastian Perta                 -               <sebastian.perta@renesas.com>
  Sebastian Peryt                 speryt          <sebastian.peryt@intel.com>
+ Mikael Pettersson               mikpe           <mikpelinux@gmail.com>
  Johannes Pfau                   jpfau           <johannespfau@gmail.com>
  Gerald Pfeifer                  gerald          <gerald@pfeifer.com>
  Kaushik Phatak                  kaushikp        <kaushik.phatak@kpitcummins.com>
! Andrew Pinski                   pinskia         <andrew.pinski@qualcomm.com>
  Nicolas Pitre                   nico            <nico@cam.org>
  Michael Ploujnikov              plouj           <michael.ploujnikov@oracle.com>
  Paul Pluzhnikov                 ppluzhnikov     <ppluzhnikov@google.com>
*************** Roger Sayle                     sayle
*** 780,786 ****
  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>
--- 802,808 ----
  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@mailbox.org>
  Stefan Schulze Frielinghaus     stefansf        <stefansf@linux.ibm.com>
  Andreas Schwab                  schwab          <schwab@linux-m68k.org>
  Tilo Schwarz                    tiloschwarz     <tilo@tilo-schwarz.de>
*************** Senthil Kumar Selvaraj          saaadhu
*** 792,798 ****
  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>
--- 814,819 ----
*************** Mike Stump                      mrs
*** 817,822 ****
--- 838,844 ----
  Jeff Sturm                      jsturm          <jsturm@gcc.gnu.org>
  YunQiang Su                     syq             <syq@gcc.gnu.org>
  Robert Suchanek                 rts             <rsuchy84@gmail.com>
+ Supers1ngular                   supers1ngular   <supers1ngular@baylibre.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>
*************** Ilya Verbin                     iverbin
*** 857,862 ****
--- 879,885 ----
  Andre Vieira                    avieira         <andre.simoesdiasvieira@arm.com>
  Rasmus Villemoes                -               <rv@rasmusvillemoes.dk>
  Kugan Vivekanandarajah          kugan           <kvivekananda@nvidia.com>
+ Artemiy Volkov                  artemiyv        <artemiy.volkov@arm.com>
  Marcel Vollweiler               -               <marcel@codesourcery.com>
  Ville Voutilainen               ville           <ville.voutilainen@gmail.com>
  Tom de Vries                    vries           <tdevries@suse.de>
*************** Canqun Yang                     canqun
*** 897,903 ****
  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>
--- 920,926 ----
  Fei Yang                        fyang           <felix.yang@huawei.com>
  Jeffrey Yasskin                 jyasskin        <jyasskin@google.com>
  Joey Ye                         jye2            <joey.ye@arm.com>
! Kwok Cheung Yeung               kcy             <kcyeung@baylibre.com>
  Jonathan Yong                   jyong           <10walls@gmail.com>
  Greta Yorsh                     gretay          <greta.yorsh@arm.com>
  Kirill Yukhin                   kyukhin         <kirill.yukhin@gmail.com>
*************** Xiao Zeng                       -
*** 908,919 ****
  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>
--- 931,943 ----
  Dennis Zhang                    -               <dennis.zhang@arm.com>
  Jie Zhang                       jiez            <jzhang918@gmail.com>
  Yufeng Zhang                    yufeng          <yufeng.zhang@arm.com>
! Qing Zhao                       qinzhao         <qing.zhao69@gmail.com>
  Shujing Zhao                    pzhao           <pearly.zhao@oracle.com>
! Pengxuan Zheng                  pzheng          <pengxuan.zheng@oss.qualcomm.com>
  Juzhe Zhong                     -               <juzhe.zhong@rivai.ai>
  Roman Zhuykov                   zhroma          <zhroma@ispras.ru>
  Jon Ziegler                     jonz            <jonz@apple.com>
+ Raphael Zinsly                  -               <rzinsly@qti.qualcomm.com>
  Roman Zippel                    zippel          <zippel@linux-m68k.org>
  Claudiu Zissulescu              claziss         <claziss@gmail.com>
  Josef Zlomek                    zlomek          <josef.zlomek@email.cz>
*************** information.
*** 933,955 ****
--- 957,995 ----
  
  
  Soumya AR                                       <soumyaa@nvidia.com>
+ Daniel Barboza                                  <dbarboza@qti.qualcomm.com>
+ Daniel Barboza                                  <dbarboza@ventanamicro.com>
+ Peter Bergner                                   <bergner@tenstorrent.com>
+ Dhruv Chawla                                    <dhruvc@nvidia.com>
  Juergen Christ                                  <jchrist@linux.ibm.com>
+ Alejandro Colomar                               <alx@kernel.org>
  Giuseppe D'Angelo                               <giuseppe.dangelo@kdab.com>
  Robin Dapp                                      <rdapp.gcc@gmail.com>
+ Robin Dapp                                      <rdapp@qti.qualcomm.com>
  Robin Dapp                                      <rdapp@ventanamicro.com>
+ Prachi Godbole                                  <pgodbole@nvidia.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                                        <jefflaw@qti.qualcomm.com>
+ Jeff Law                                        <jeffrey.law@oss.qualcomm.com>
  Jeff Law                                        <jeffreyalaw@gmail.com>
  Jeff Law                                        <jlaw@tachyum.com>
  Jeff Law                                        <jlaw@ventanamicro.com>
+ Martin Liška                                    <martin.liska@hey.com>
  H.J. Lu                                         <hjl.tools@gmail.com>
+ Yuao Ma                                         <yuao@gcc.gnu.org>
  Matthew Malcomson                               <mmalcomson@nvidia.com>
+ Jose E. Marchesi                                <jemarch@gnu.org>
  Immad Mir                                       <mir@sourceware.org>
  Gaius Mulley                                    <gaiusmod2@gmail.com>
+ Shreya Munnangi                                 <smunnang@qti.qualcomm.com>
+ Shreya Munnangi                                 <smunnangi1@ventanamicro.com>
  Szabolcs Nagy                                   <nsz@gcc.gnu.org>
+ Mikael Pettersson                               <mikpelinux@gmail.com>
+ Andrew Pinski                                   <andrew.pinski@oss.qualcomm.com>
  Andrew Pinski                                   <quic_apinski@quicinc.com>
  Siddhesh Poyarekar                              <siddhesh@gotplt.org>
  Ramana Radhakrishnan                            <ramanara@nvidia.com>
*************** Navid Rahimi
*** 957,963 ****
  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>
--- 997,1002 ----
*************** Kugan Vivekanandarajah
*** 969,972 ****
--- 1008,1014 ----
  Jonathan Wakely                                 <jwakely@redhat.com>
  Alexander Westbrooks                            <alexanderw@gcc.gnu.org>
  Chung-Ju Wu                                     <jasonwucj@gmail.com>
+ Pengxuan Zheng                                  <pengxuan.zheng@oss.qualcomm.com>
  Pengxuan Zheng                                  <quic_pzheng@quicinc.com>
+ Raphael Zinsly                                  <rzinsly@qti.qualcomm.com>
+ Raphael Zinsly                                  <rzinsly@ventanamicro.com>
diff -Nrcpad gcc-15.2.0/MD5SUMS gcc-16.1.0-RC-20260423/MD5SUMS
*** gcc-15.2.0/MD5SUMS	Fri Aug  8 07:18:05 2025
--- gcc-16.1.0-RC-20260423/MD5SUMS	Thu Apr 23 11:40:28 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15.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-16.1.0-RC-20260423.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
***************
*** 10,65 ****
  #
  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
! 272b5deddad24f1fce1955c36d4e873b  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f8b606723840fbee4aa05db52b84950a  INSTALL/binaries.html
! f4fb1b398af411b7601b9601d5bbea82  INSTALL/build.html
! 91819512c5d00028204d3830ac690077  INSTALL/configure.html
! 9b5ea6cc621359bc6f6d7d30c4b095d9  INSTALL/download.html
! e5c6c30346bbc63207b70eac28bb0f44  INSTALL/finalinstall.html
! 27733b127679a5d6588b602c5976e00b  INSTALL/gfdl.html
! 0181c2b55bd4dc77f3589e09512fadb4  INSTALL/index.html
! b82ff8feafc7177b05ab33ccd78025c8  INSTALL/prerequisites.html
! 6236f21861e957c0888398821944fe16  INSTALL/specific.html
! d2185f6132ea4497c07bc4ac1a0a1dfb  INSTALL/test.html
! 4a4ec387e4dcf47d714a323854dc7320  LAST_UPDATED
! 9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
! b714b83dd28679b75c5fd3e619d35956  Makefile.def
! 9d0808afc70085c5ca8d45062fc59689  Makefile.in
! 7c87bc1ac5389b3184deb34c599d184f  Makefile.tpl
! 3b771eeb7fcbf6eed62587a641182af5  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
! d91842c1dd3e9080dd06b73340b682ee  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 6cf0c727fb5a7c8af403f38d3bd2ca35  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
! a48242244fc185385c19765cc3045b86  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
! e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
--- 10,68 ----
  #
  e8eeef33ef071516ce3f689e9c71e0b5  .b4-config
  fd78d02fa55fcdb78ddb2f37a7868dbb  .dir-locals.el
+ c83d1c4a8d42642be0511fa89b9c3cf5  .editorconfig
  b91d600742b62d1860809cb184055a3d  .forgejo/PULL_REQUEST_TEMPLATE.md
+ 9a22a68c0484f3f139296a8e26cdf746  .forgejo/workflows/build-containers.yaml
+ 4b254279920374351da794ea1ef21fae  .forgejo/workflows/format-checks.yaml
  5b296b32e07d2a84f4ac051ed7f95b91  .gitattributes
  426ab4ae9cc194b71b388a6471471772  .github/CONTRIBUTING.md
  b8acb527560fc760209d200fcfab8ff4  .github/PULL_REQUEST_TEMPLATE.md
! ac5a8807f431d3dab46a7425b96379e4  .gitignore
  8c00452ef1e298846493ec8b239f93e2  ABOUT-NLS
  59530bdf33659b29e73d4adb9f9f6552  COPYING
  2d5025d4aa3495befef8f17206a5b0a1  COPYING.LIB
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! c360b66302dc20dc6934d86af09fe8e7  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 18f600935d4dc40c9906512dc6456df3  INSTALL/binaries.html
! 6ac2d8d18f086db7fa2b6e3e1b4bf51d  INSTALL/build.html
! 8d835b2042f4928677833e013ba774dc  INSTALL/configure.html
! 2b48df67289dd7d209e31f3cd9067990  INSTALL/download.html
! b591de2e9ff7d4cf2bc3dcac5d52611f  INSTALL/finalinstall.html
! e2eba419dffa35b59088c624ef2c29c5  INSTALL/gfdl.html
! b6f17ae332d2951ca990a865617c98ac  INSTALL/index.html
! 892760237fa664a293cedae0fdbb3cb3  INSTALL/prerequisites.html
! 254fabcc67dd4c8abae05d207c6d3ac8  INSTALL/specific.html
! 0250a5cb9b35e87b6828027b6d58076d  INSTALL/test.html
! d43f2c5fe1f5c5fd74ab02b8b1fc5a60  LAST_UPDATED
! 935427ff8c5edd363349721844f7ba49  MAINTAINERS
! af43617880b3cd9c10627c97e639d29e  Makefile.def
! 734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
! bd7a6cf48b6a530442ffaee7ea118c2d  Makefile.tpl
! a06b119d1720d65267c2f062eb645f0c  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
! 7be8773244474bc82211a4726f43c3c8  SECURITY.txt
  a657821f65bab77f4fbf3a75cdee6da9  ar-lib
! 2dc4db3355f2fbecf579078288724fd1  c++tools/ChangeLog
! 273d1d1957789965760b4c176a6f9b31  c++tools/Makefile.in
  edf805e559bf9ecb62db313d2e6edb47  c++tools/config.h.in
! c5a60ac6626343968c4ef1fdf261bf62  c++tools/configure
! 44a27855020b30a2d8ef020dacb5d00f  c++tools/configure.ac
! 3fdd6a0cf34010c304b517d666e6b660  c++tools/resolver.cc
! 4069c433a158c5ff824c416492f10df1  c++tools/resolver.h
! 1db3c564db9e3c9e8d3efa059788e6ca  c++tools/server.cc
  500b9244caa7a7ab23ece1db37efa76d  compile
! 71f7d579eb8a75ebc98b9d2fba82265e  config-ml.in
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 95b0c1a08bc52acdb927d4fb14d19731  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
! 45979039ae56d255a866095bc20985a4  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
  a6bf9c39c62222092ea6d5d8551c077f  config/ax_check_define.m4
  fa1446baa94824d733d33eb615217d23  config/ax_count_cpus.m4
*************** babb6167c05386834412652e8b27239e  config
*** 79,90 ****
  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
  065f6478cf9a6fdc999f666517cfb8b4  config/bootstrap-ubsan.mk
  2ef96b7f5ed3e6a5fd105f2cb18b1887  config/cet.m4
  04bdbef77f5fd2e282f7dee0bde60444  config/codeset.m4
  b5a5c394536a15e50be1998bd341fd02  config/depstand.m4
  a763364d451e805a934f6520b8b4d602  config/dfp.m4
--- 82,96 ----
  9a194b56c06b616528d1e76306aa78e6  config/bootstrap-debug.mk
  584327e59bbe42cfcf0b041fed0f4526  config/bootstrap-hwasan.mk
  a3bca109766820001668b4d4f41057c6  config/bootstrap-lto-lean.mk
! 368ab20dabf5bad2d11c823374576d75  config/bootstrap-lto-locality-cpp-template.mk
! 18eac208d85a63afda88fc55d7baac60  config/bootstrap-lto-locality.mk
  33768879cdb11bf946d977ab6632d169  config/bootstrap-lto-noplugin.mk
  ece3bc716fac1aca84326d40b97a4b4b  config/bootstrap-lto.mk
+ 396cc6dfa851e80723ab6ffc37778a6b  config/bootstrap-native.mk
  f466ea6022e6627a2e3d94bb0cc7eeb9  config/bootstrap-time.mk
  065f6478cf9a6fdc999f666517cfb8b4  config/bootstrap-ubsan.mk
  2ef96b7f5ed3e6a5fd105f2cb18b1887  config/cet.m4
+ ecf21fe4f75a80b0f2efc9bf3625a267  config/clang-plugin.m4
  04bdbef77f5fd2e282f7dee0bde60444  config/codeset.m4
  b5a5c394536a15e50be1998bd341fd02  config/depstand.m4
  a763364d451e805a934f6520b8b4d602  config/dfp.m4
*************** a763364d451e805a934f6520b8b4d602  config
*** 93,103 ****
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! 29f1b1fc22273243f0409b3b3da84a71  config/gcc-plugin.m4
  668132e429b5a64836ff6f2e6a52bcd2  config/gettext-sister.m4
  891029ae654600a455aee41cac4eb400  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
! 8df79e8a64590050a069d28f0094da95  config/gthr.m4
  c385066b0fe61ef55d44cf2619e79b26  config/gxx-include-dir.m4
  8f800a90638a3f714bf44a8321cc5003  config/hwcaps.m4
  c5515337a3d16c0eabc21d8c8ddd0909  config/iconv.m4
--- 99,109 ----
  15b8d5adf53ad5ec75f055b193a6b1c2  config/extensions.m4
  2f2de833dd86bba89d64e5813be81550  config/futex.m4
  d3eafe382a46e6747e3644cf4a55d5cc  config/gc++filt.m4
! e5bb8100763b19abf4b1367f96305a98  config/gcc-plugin.m4
  668132e429b5a64836ff6f2e6a52bcd2  config/gettext-sister.m4
  891029ae654600a455aee41cac4eb400  config/gettext.m4
  29c9c3d57667bc9e6f14d625b2cd5894  config/glibc21.m4
! eb34bdb36bd54aa68d81e8a2e5e9f481  config/gthr.m4
  c385066b0fe61ef55d44cf2619e79b26  config/gxx-include-dir.m4
  8f800a90638a3f714bf44a8321cc5003  config/hwcaps.m4
  c5515337a3d16c0eabc21d8c8ddd0909  config/iconv.m4
*************** f8cc157a22bc4fae23cee0f7da613154  config
*** 112,127 ****
  cbcbd9977ef1239ccac0c5c54d214302  config/ld-symbolic.m4
  1cbbc8830601bf43a3c42ee10a01eecd  config/lead-dot.m4
  d9835512bc6d5a706cfd0cfa62810e86  config/lib-ld.m4
! 0a70244d959a1a5320a786bc0fa37268  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
! 534dce34ae221e73e2d67d3ba07f00a3  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! 3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! fd9ed5b9d9dbb22a41f305c72c411ba1  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
--- 118,133 ----
  cbcbd9977ef1239ccac0c5c54d214302  config/ld-symbolic.m4
  1cbbc8830601bf43a3c42ee10a01eecd  config/lead-dot.m4
  d9835512bc6d5a706cfd0cfa62810e86  config/lib-ld.m4
! 387d452a4a5a98ccf22f47cfad69d89f  config/lib-link.m4
  4455537cdae70977a1283180062a2d8d  config/lib-prefix.m4
  b75e527c5a9b8dcbcfb1ac321fa244eb  config/libstdc++-raw-cxx.m4
! 78e7696b225bc3ffb0912c905ceee32e  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! a6459928053a02b8092ceda8f534097e  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! 44d3da2368ed3af5582490d54cd7e31a  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 162,229 ****
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! 03e84607a1c4478aa65bd53937ed3aea  configure
! a10daf98a334165ec89e62510a1eb0a0  configure.ac
! 485cb6acfe45fd1d86facd7ffa527544  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
! 92bfd0a60dd4b96066f6c876a94c3cb6  contrib/header-tools/ChangeLog
  20f6fa0b5366976230b0538c5b0ae603  contrib/header-tools/README
  a674173d7f8b0f6c7c6cdb9f58e756f3  contrib/header-tools/count-headers
  8154e483c08f8955698d4e40aa8808ca  contrib/header-tools/gcc-order-headers
--- 168,249 ----
  7ef51b0adb98e5c5f7aba46d2c7293f1  config/weakref.m4
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
! f4a7d891c0d09f14fb5ed903f0475fc2  configure
! ed59804e21951f404fa6ecd283c6ffa3  configure.ac
! 580e68d0ac129a6f0a73ec557a06f2b4  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
! 0928ae42250fbb57246cf6e9bff2276b  contrib/analyze_brprob.py
! fe0f3407e74565a0439ac210148486ca  contrib/analyze_brprob_spec.py
! f32ea8aa594c39765895562afc43e221  contrib/bench-stringop
! 3bf217010618d66378a76258f1a16478  contrib/bpf-vmtest-tool/README
! 26d31369aba141e93257d08e80482cbb  contrib/bpf-vmtest-tool/bpf.py
! 46d93700552afacc58660e35210fbfc3  contrib/bpf-vmtest-tool/config.py
! 69b5b3279609a6ac25cecb1ddbde6181  contrib/bpf-vmtest-tool/kernel.py
! 87b4acfdf4772a98619f9cd526e7224b  contrib/bpf-vmtest-tool/main.py
! e476ff9755e2b2f65ff63d32fc2b15e4  contrib/bpf-vmtest-tool/pyproject.toml
! a58c6d563061b437bb37db944059c591  contrib/bpf-vmtest-tool/tests/test_cli.py
! 94c929abb32ebb06e2ada64408955a17  contrib/bpf-vmtest-tool/utils.py
! ee0ae327aa0f1870f7f3769378ffe5f3  contrib/bpf-vmtest-tool/vm.py
! 0fbcabcb8183944b68d52dd4683c73f8  contrib/check-MAINTAINERS.py
  14d637c1673ab29eb925fc542cf5955c  contrib/check-internal-format-escaping.py
! 71d1b41247c5c74fb047e13edec7e323  contrib/check-params-in-docs.py
! 7718189f09f512492ac48fac60f8ce42  contrib/check_GNU_style.py
! 3b3c8f407009373e1539531cbaca4c92  contrib/check_GNU_style.sh
! 6fc056aab34be7fd77f0144eb1b63c28  contrib/check_GNU_style_lib.py
! 001bdb1e04e753b9a62f2491c8a25dae  contrib/check_makefile_deps.sh
! 428bea7deb96315aeb055a851263a5df  contrib/check_warning_flags.sh
! 2521874691b72a437aafa85beaef22aa  contrib/ci-containers/README
! 840a3d28438e692f9e40b84e17954e42  contrib/ci-containers/autoregen/Containerfile
! b86e5225e1674458863dc0b790e46a45  contrib/ci-containers/autoregen/autoregen.py
! 68a5e73722e53ec9c89cecbcee45d1f0  contrib/ci-containers/build-image.sh
! fc345f1413e7f99f00e4cb2870f02723  contrib/clang-format
! 577fdaca4a1f88971fc0e4accddab462  contrib/compare-all-tests
! 8ae4a4d45e23f2defa74aef0b7cabbeb  contrib/compare-debug
! e1d12a65b82fa451f8d0d4ef0f849895  contrib/compare-lto
! d09c16bcb6b535fb130486ef9ee3beec  contrib/compareSumTests3
! c0b13a476b5e57b6d55b304f67f69581  contrib/compare_tests
! 652ed31d99697495ddefe9885ce403da  contrib/compare_two_ftime_report_sets
! 6617ffafaa212bc8e53229479c2f2f4c  contrib/config-list.mk
! 50d60ebb1e537550506cd7352443d454  contrib/dg-cmp-results.sh
! 0a46ba94ff235e5ef32b1c7f200f820b  contrib/dg-extract-results.py
! a72cf7608237ddae6dd5fe9bfb266f84  contrib/dg-extract-results.sh
! f376ef2547f0e97ab848a41024e827d8  contrib/dg-lint/dg-lint
! 38b785f7f170133d3d9f543068c34a0d  contrib/dg-lint/libgdiagnostics.py
  c3217001bd26d7357f97d76467773e6d  contrib/dg-lint/test-1.c
  3676f3483293ec7cf746b0728e85eb3f  contrib/dg-lint/test-2.c
! 4e50fd99a99e20a0c72a4074b767438d  contrib/dg-out-generator.pl
! c453348f88ec592d49be554008473ba8  contrib/dglib.pm
! 1a43c19edffafd7cca44c23265ada323  contrib/diffsummary.py
! 8dc14393e30704e0fd1913e770ceda5b  contrib/download_prerequisites
! 5c8261e6d09ac7baf6ee12720e265aca  contrib/filter-clang-warnings.py
  332fd0835826d637b5b6cf8db14358a5  contrib/filter_gcc_for_doxygen
  db03e57377f9eb202b7b783eb81fe40d  contrib/filter_knr2ansi.pl
  d577ea19d05f19a8364f73c9901223b7  contrib/filter_params.py
! 8dc743863dae4b7f6ed6a75acf483f1b  contrib/gcc-changelog/git_check_commit.py
! 1462df56c813a6a6cdf97c7baa877d7c  contrib/gcc-changelog/git_commit.py
! 4f7f7ef965f965a23efd54be62ace12d  contrib/gcc-changelog/git_email.py
! c9b38a05e2da6bd427df5301db56e913  contrib/gcc-changelog/git_repository.py
! 96dd034b921d1240c115f24cf4fa6dc0  contrib/gcc-changelog/git_update_version.py
  6e731268209cc6d4936196233e28bae9  contrib/gcc-changelog/setup.cfg
! 7f6fb197e7f7926991055526054c2240  contrib/gcc-changelog/test_email.py
  6662a65218b0a11d673a65656b98d821  contrib/gcc-changelog/test_patches.txt
  983cf4f7b54ddd2b8962dda15b74d10a  contrib/gcc-git-customization.sh
! 66d6d2192bfc73b4021f3d0fbb8ce07a  contrib/gcc.doxy
! 0d18acc44d50cab29db7f0b0870a29b3  contrib/gcc_build
  a80a0165b2b8f366a31514e30720bd21  contrib/gcc_update
! 9184991d38f8c2ec0fa6b6ab5105664c  contrib/gen_autofdo_event.py
! 885129d4ec4c2b670c81dfe31962f6ec  contrib/gennews
  25491ab6a5a68d252f311f5a9c6f4c8f  contrib/git-add-user-branch.sh
  7e5729822d673e846d5ef26e1f1b8591  contrib/git-add-vendor-branch.sh
! 8a9c6eaee8e0199956b5a8d61034adfe  contrib/git-backport.py
! e7971f90f654a4bcd4adc640e2df7c4a  contrib/git-commit-mklog.py
  89713b3aaf65e7ae575e6fe0c0c2adf1  contrib/git-descr.sh
  464e86ccd2b5dee7df40905d86e0be06  contrib/git-fetch-vendor.sh
! f9424bd52128550c30762d0211b24a56  contrib/git-fix-changelog.py
  5d80e88da5ae83c53513280bcff7c0a1  contrib/git-undescr.sh
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! 0b8347058e0a9b9ffd447b573de7f0b6  contrib/header-tools/ChangeLog
  20f6fa0b5366976230b0538c5b0ae603  contrib/header-tools/README
  a674173d7f8b0f6c7c6cdb9f58e756f3  contrib/header-tools/count-headers
  8154e483c08f8955698d4e40aa8808ca  contrib/header-tools/gcc-order-headers
*************** e88d725d3c542201ef5bbe69a031f23e  contri
*** 235,246 ****
  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
--- 255,266 ----
  657d915a87e63e6ded4abbfc7dc32e6f  contrib/header-tools/replace-header
  6fdf5f561e5f47fb4e70555080869a4e  contrib/header-tools/show-headers
  fa945bac89ee68b410027dcfe1312f4b  contrib/index-prop
! 683b1e9e6343d2a6e1cae194ca512d06  contrib/jit-coverage-report.py
! d029ec51f5de739992e4bd55131d68b6  contrib/legacy/mklog
! 2e6880a36fbaf31bc16067c51bdb986b  contrib/legacy/mklog.pl
  43e3d77ae19b5c6304d6d6846792c173  contrib/make-obstacks-texi.pl
! f70a5a540f49df19724d827b2262b9fa  contrib/make_sunver.pl
! 5eb1bf9df19e0134a2f87b849d222312  contrib/mark_spam.py
  3750caf71c3971f691d15bd3976fc335  contrib/mdcompact/mdcompact-testsuite.el
  2f4682b551593328cd7f8431c1fe497f  contrib/mdcompact/mdcompact.el
  4e0b2ff9279c39804751de6012b9b570  contrib/mdcompact/tests/1.md
*************** ef13953e64bd4e093d01aad4a9309c10  contri
*** 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
! c4edfcb7c08e5b93eb7d0be11414fa26  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
--- 277,316 ----
  ef13953e64bd4e093d01aad4a9309c10  contrib/mdcompact/tests/6.md.out
  e4c7c4ac31575610ebd46840cc5d9ac6  contrib/mdcompact/tests/7.md
  bda0e2d8e6960465c7778fe3856cdacc  contrib/mdcompact/tests/7.md.out
! 8f5da2046a8f8dd64ce5f04ddcc24e2d  contrib/mklog.py
  9bb8c12fc069b7624268da15bd911667  contrib/paranoia.cc
! a25bcbffe52d6e472d66e6e7834d252b  contrib/patch_tester.sh
! 6d9479f6df06fd4c77cefc7e2cb6d650  contrib/prepare-commit-msg
! 734ef10a9669ed864c19c07ad975d04c  contrib/prepare_patch.sh
! 1e0f018552766cabbeae5f6f182bf99e  contrib/prerequisites.md5
! ace5565a36009a7978462fa9d727bea3  contrib/prerequisites.sha512
! 2db061dfbd3c079ada8c4778ec6ad03b  contrib/regenerate-sarif-spec-index.py
! 1bfdcf534875228aa24e1d6d8223a406  contrib/reghunt/ChangeLog
! 5acf26034631fedb79530cda9b3965c3  contrib/reghunt/bin/gcc-build-full
! fdc7a812a70a2677265fda0a54e9d9d0  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
! 3960e73ace8f7c99c34378eb26959c2c  contrib/reghunt/bin/gcc-svn-patchlist
  3e86e81ae296e0660fe17fbd507ab006  contrib/reghunt/bin/gcc-svn-recordfail
  7e9c7f64150f74c86a1bfa6bc5823252  contrib/reghunt/bin/gcc-svn-report
! 9c004d6dfcd77c155aafe98e0adf007d  contrib/reghunt/bin/gcc-svn-update
  50dc103e0edd95d6cde45a9ca782c79a  contrib/reghunt/bin/gcc-svn-update-fix
! de7e11408a59c7ba0fd0dff75ac87160  contrib/reghunt/bin/gcc-test-accepts-invalid
! 49c956ab672eb01090a83b095be01bb7  contrib/reghunt/bin/gcc-test-bogus-warning
! 5eb3df8d81611d11f76df517e248e509  contrib/reghunt/bin/gcc-test-compiler-hangs
! e22cbeca6705dc9bcd2ea6710adbf2d8  contrib/reghunt/bin/gcc-test-ice-on-invalid-code
! 1d1b508bbbf24ca0a76b2091c2e8cdba  contrib/reghunt/bin/gcc-test-ice-on-valid-code
! 89e7e7c4a782996d6fdf745f64fc786d  contrib/reghunt/bin/gcc-test-missing-warning
! ef08507af2e3fe4f8e869a6ebda532e8  contrib/reghunt/bin/gcc-test-rejects-valid
! e3c8f5c319de623140f89004cb2aa84e  contrib/reghunt/bin/gcc-test-segfault-on-valid-code
! d809bb5b9c91936c73b905ff9fe1269a  contrib/reghunt/bin/gcc-test-wrong-code
! 000d195fa87f3d09889ee3247c6af682  contrib/reghunt/bin/reg-hunt
! 066912e7ab1dab7159eb11ae3879bc54  contrib/reghunt/bin/reg-newmid
! 798d8c0672947eca3d2012ff41f79ffe  contrib/reghunt/bin/reg-test
  ab31219466ac7df2a1aa15900540bc8a  contrib/reghunt/date_based/README
! c76390d3160f466bb4e02308d21dab33  contrib/reghunt/date_based/reg_periodic
! f6608a26b52331bf520621d426f0e5e7  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
*** 324,384 ****
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 079f53ac5fb01f742640a98b131c0567  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
! 1e570543150863bbe5c5d11eb8ece1fa  fixincludes/ChangeLog
  4afe55f959b7cceb7055ff11a9ca0e32  fixincludes/Makefile.in
! b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
  1f4e46c32c0fe1905e25e75d991c931a  fixincludes/aclocal.m4
  06c68af3013771f49738a0ade1579050  fixincludes/check.tpl
--- 344,406 ----
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 2936516559166a1c7d22d467f46af15e  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
! 29d821230a9a45b2556b3d0fec8ed277  contrib/regression/GCC_Regression_Tester.wdgt/widget.html
  1e4aedcd2db5dd845a6c778f4ba73b9b  contrib/regression/README
! ffb5b0e096bb67ab2b41be222ad61bdb  contrib/regression/btest-gcc.sh
! b17111db2534cd5454586f5670826489  contrib/regression/mkindex.pl
! 6a5cb74b6ae5e8b4cde98c515353f5d9  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
  0ef1f0f3b8112a12de68f806daf96994  contrib/relpath.sh
  5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
! bd406d8c17b94a89b058ee50025305e5  contrib/sarif-listener.py
! 90ea3145c1ae6d9369e3a83195c5485d  contrib/test_installed
! ab1ac1854ae7cc1b85223bea29c20188  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
! 3b9eeb97d2c5437bfc3efb83e744efdd  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
! a5b89c3173900431abf5c31e7ac83e8d  contrib/texi2pod.pl
! 2ce17dcc2954bb28a298854b535a6836  contrib/unicode/DerivedCoreProperties.txt
! b5f1fc2ba1fb561db121adc2f00815a8  contrib/unicode/DerivedGeneralCategory.txt
! 7fd74053b3a5907205c161831119db5b  contrib/unicode/DerivedNormalizationProps.txt
! 7aebda73a4d36c18e733744d2c116566  contrib/unicode/EastAsianWidth.txt
! 4d54dd5f8867152a6803ff60832c5d16  contrib/unicode/GraphemeBreakProperty.txt
! 13d6b109f024362b604d795b09e60329  contrib/unicode/HangulSyllableType.txt
! 434c112126cd8d0c670cdd3949bd5412  contrib/unicode/NameAliases.txt
! d1c4ecf7da205e937fd56b7a5bb2e6d6  contrib/unicode/PropList.txt
! 79a7c2e7a1e4d812820be5ce7eaaf6bb  contrib/unicode/README
! 959cb19fcda0240caef8c02953e3d771  contrib/unicode/UnicodeData.txt
! 923f72f139b5e01e77bf9b9ce51aebdf  contrib/unicode/emoji-data.txt
! 9688b5b7a2d9bcb05f53844aada38c24  contrib/unicode/from_glibc/unicode_utils.py
! 82c9452f6a01491bbacd80eaeb17a954  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
! b2259bdd0f4345034b674b64dabb75c2  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
! 0ebeba0547f62774f2321fb89df47e5a  contrib/uninclude
! 22df95097055a0a86ddd45c1a9512351  contrib/unused_functions.py
! f856b5202dc786d892b692932ff7b8c5  contrib/update-copyright.py
  e96e470317bafce43e11f5d3dc027f1c  contrib/vim-gcc-dev/README
! 9a59f40850946ac97114bc9ff0d7bf7e  contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
! 759c318ecc65eb68b0762e12d69b1b49  contrib/vim-gcc-dev/syntax/gcc-match.vim
! 72c8b0b03473a99438c950c7ef0825cc  contrib/vim-gcc-dev/syntax/gcc-rtl.vim
! e8b207b9c7a9bb52bc0c9235781da723  contrib/vim-gcc-dev/syntax/gimple.vim
! b524c6a57df4d9803b79df5ecd4f368f  contrib/vimrc
  da7aeedeb5a86ee6f5982e559a2d6dcc  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 0df06800bd7d1cff124e36c40950d9c9  fixincludes/ChangeLog
  4afe55f959b7cceb7055ff11a9ca0e32  fixincludes/Makefile.in
! d366af9d8a7e0a6922b809e8bdd27ae8  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
  1f4e46c32c0fe1905e25e75d991c931a  fixincludes/aclocal.m4
  06c68af3013771f49738a0ade1579050  fixincludes/check.tpl
*************** b6ffc204128adbd2c41ac0cb4ce98dc7  fixinc
*** 388,401 ****
  2002770d703d59245d89f941a21f783d  fixincludes/fixfixes.c
  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
--- 410,423 ----
  2002770d703d59245d89f941a21f783d  fixincludes/fixfixes.c
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
! 7f0fed08dfa61ea12896569a2a5375d1  fixincludes/fixincl.tpl
! 29056a389be8fc8500fbef580f62b505  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! d0f85be43d3d248a368dd59492f134ea  fixincludes/inclhack.def
  d820d7184883bda7dd809406f0626d8e  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
*************** bb78d18969b9f54a8f602f10eed2d57b  fixinc
*** 421,427 ****
  2a7dfec79ab9872aa927f9c685175fcc  fixincludes/tests/base/bsd/libc.h
  da032b0e10922af19cec10bde3ea8936  fixincludes/tests/base/c_asm.h
  3e2bfa71664f5d54fa084387c5915349  fixincludes/tests/base/com_err.h
! f067e3903c09c98db57bd84f7eaf8df5  fixincludes/tests/base/complex.h
  69f7247dd4e4cf4af4aff6d92ae29999  fixincludes/tests/base/ctrl-quotes-def-1.h
  f1160d24e4253643c441ba3a4b227e43  fixincludes/tests/base/ctype.h
  7664d896c62ce0ef7874adff4ba21c96  fixincludes/tests/base/curses.h
--- 443,449 ----
  2a7dfec79ab9872aa927f9c685175fcc  fixincludes/tests/base/bsd/libc.h
  da032b0e10922af19cec10bde3ea8936  fixincludes/tests/base/c_asm.h
  3e2bfa71664f5d54fa084387c5915349  fixincludes/tests/base/com_err.h
! 90eaf6ac51faac931b94b75bcd1596e0  fixincludes/tests/base/complex.h
  69f7247dd4e4cf4af4aff6d92ae29999  fixincludes/tests/base/ctrl-quotes-def-1.h
  f1160d24e4253643c441ba3a4b227e43  fixincludes/tests/base/ctype.h
  7664d896c62ce0ef7874adff4ba21c96  fixincludes/tests/base/curses.h
*************** bfb58e3983fc133c965e434e57aed732  fixinc
*** 436,446 ****
  bc9eae9fcd842f9d5f7d3f62385dcdb8  fixincludes/tests/base/inttypes.h
  833e9408a49784184bee7981d665c911  fixincludes/tests/base/io-quotes-def-1.h
  a1c808325bd0d74c2f465bf54db680e2  fixincludes/tests/base/ioLib.h
- c8dd71b57c3a35b0c6760f7d38af6f42  fixincludes/tests/base/iso/math_c99.h
  56aa16fdf3be46d7dc2b462246495f82  fixincludes/tests/base/iso/math_iso.h
- cb3e756a4d569b97af1ed7a9d48ff57b  fixincludes/tests/base/iso/stdio_iso.h
- 1c72f8feabf8899114770389de731d90  fixincludes/tests/base/iso/stdlib_c99.h
- e1bd28539aceeab13a3028da02f8c4ae  fixincludes/tests/base/iso/stdlib_iso.h
  1ac942b363960bf8a865ffd9e3bf28be  fixincludes/tests/base/linux/vt.h
  8183eabf96be2918f3259a587329a813  fixincludes/tests/base/locale.h
  8ac97a3367b9a99503c5b21430993cd4  fixincludes/tests/base/mach-o/dyld.h
--- 458,464 ----
*************** c213736f179d8de08a09a9278e048d91  fixinc
*** 458,464 ****
  c3da2b1720112f2adb1c2bbf65563364  fixincludes/tests/base/os/base.h
  294cd5d0b36b2fc66737cc43cd46ed69  fixincludes/tests/base/os/trace.h
  c24d1be3b5afd871e9f78e1a67b9cb82  fixincludes/tests/base/pixrect/memvar.h
! 1501a200fb392ae040545c7591f79498  fixincludes/tests/base/pthread.h
  0af417a4255222a48d182d9f602c145e  fixincludes/tests/base/reg_types.h
  099702dfa122c22886a95f7c24ab7c13  fixincludes/tests/base/regex.h
  723e68af94480e1ed60ef8abb667cfe6  fixincludes/tests/base/regexp.h
--- 476,482 ----
  c3da2b1720112f2adb1c2bbf65563364  fixincludes/tests/base/os/base.h
  294cd5d0b36b2fc66737cc43cd46ed69  fixincludes/tests/base/os/trace.h
  c24d1be3b5afd871e9f78e1a67b9cb82  fixincludes/tests/base/pixrect/memvar.h
! f53886a43cdd02560833207b4d578e60  fixincludes/tests/base/pthread.h
  0af417a4255222a48d182d9f602c145e  fixincludes/tests/base/reg_types.h
  099702dfa122c22886a95f7c24ab7c13  fixincludes/tests/base/regex.h
  723e68af94480e1ed60ef8abb667cfe6  fixincludes/tests/base/regexp.h
*************** a17d97cb563f4188743773e58943c436  fixinc
*** 478,492 ****
  9f186cdf77fa7efdd693aa4b7619fc21  fixincludes/tests/base/setjmp.h
  1dc61095837566b3ac0bb59c4baf0d6b  fixincludes/tests/base/signal.h
  03b938df568683225ee81ddf1d2498c3  fixincludes/tests/base/sparc/asm_linkage.h
- aa6ff67c8fd726e96ec8b0037a1828a1  fixincludes/tests/base/spawn.h
  c18af3741de803aae2deee5b0027dde3  fixincludes/tests/base/stdarg.h
  d2f1ddef1ca3edae298e37f7bc892941  fixincludes/tests/base/stdint-aix.h
  585f2717e9e05222750bda15c91be173  fixincludes/tests/base/stdint-darwin.h
  563eddf934e21ec7f85628e18fb1c641  fixincludes/tests/base/stdint-hpux11.h
  cc3783f241fa992a305aced8e1195ee9  fixincludes/tests/base/stdint-newlib.h
  1ee4e2b61ae5781d35271f3181927037  fixincludes/tests/base/stdint.h
! df6201177ee6354a4bb61b84de3f16b6  fixincludes/tests/base/stdio.h
! 1887d8bc1711dae9922852cda6027877  fixincludes/tests/base/stdio_tag.h
  63b7afc35517454fd4753b811e9b6e2e  fixincludes/tests/base/stdlib.h
  42a7de17fb8f2ac74bc30c7029199637  fixincludes/tests/base/string.h
  6931e261dc1cecb7983279cf909bd784  fixincludes/tests/base/strings.h
--- 496,508 ----
  9f186cdf77fa7efdd693aa4b7619fc21  fixincludes/tests/base/setjmp.h
  1dc61095837566b3ac0bb59c4baf0d6b  fixincludes/tests/base/signal.h
  03b938df568683225ee81ddf1d2498c3  fixincludes/tests/base/sparc/asm_linkage.h
  c18af3741de803aae2deee5b0027dde3  fixincludes/tests/base/stdarg.h
  d2f1ddef1ca3edae298e37f7bc892941  fixincludes/tests/base/stdint-aix.h
  585f2717e9e05222750bda15c91be173  fixincludes/tests/base/stdint-darwin.h
  563eddf934e21ec7f85628e18fb1c641  fixincludes/tests/base/stdint-hpux11.h
  cc3783f241fa992a305aced8e1195ee9  fixincludes/tests/base/stdint-newlib.h
  1ee4e2b61ae5781d35271f3181927037  fixincludes/tests/base/stdint.h
! 263eba1fc61eaaa4085e9df28945ab9d  fixincludes/tests/base/stdio.h
  63b7afc35517454fd4753b811e9b6e2e  fixincludes/tests/base/stdlib.h
  42a7de17fb8f2ac74bc30c7029199637  fixincludes/tests/base/string.h
  6931e261dc1cecb7983279cf909bd784  fixincludes/tests/base/strings.h
*************** df6201177ee6354a4bb61b84de3f16b6  fixinc
*** 495,504 ****
  ca4183dcf93fc8b7e83160156d39aa64  fixincludes/tests/base/sym.h
  59024a4afe7d9891ebc44655ff9c6588  fixincludes/tests/base/sys/_inttypes.h
  4487e9db842139965e48ecbfefc189b6  fixincludes/tests/base/sys/cdefs.h
- d27b7ab784fa7ada28c0ece4caef530c  fixincludes/tests/base/sys/feature_tests.h
  a3052acaa27f90b72ec0e0743adc7189  fixincludes/tests/base/sys/file.h
  be62cf06b596ac0593d2d45d24eebf59  fixincludes/tests/base/sys/int_const.h
! 76e93d35aa7cce1d8912c9de39a02e1a  fixincludes/tests/base/sys/int_limits.h
  7466bd485c76b7609644d0df814eaf39  fixincludes/tests/base/sys/inttypes.h
  cd61846311e14917693160c5e60ad2cd  fixincludes/tests/base/sys/machine.h
  d669f7372e28cb610f59526574b4c70a  fixincludes/tests/base/sys/mman.h
--- 511,520 ----
  ca4183dcf93fc8b7e83160156d39aa64  fixincludes/tests/base/sym.h
  59024a4afe7d9891ebc44655ff9c6588  fixincludes/tests/base/sys/_inttypes.h
  4487e9db842139965e48ecbfefc189b6  fixincludes/tests/base/sys/cdefs.h
  a3052acaa27f90b72ec0e0743adc7189  fixincludes/tests/base/sys/file.h
  be62cf06b596ac0593d2d45d24eebf59  fixincludes/tests/base/sys/int_const.h
! 62462d7161384367ed5d0edcb8282915  fixincludes/tests/base/sys/int_limits.h
! 21f944e480c90c1094e51ff417f3a8be  fixincludes/tests/base/sys/int_types.h
  7466bd485c76b7609644d0df814eaf39  fixincludes/tests/base/sys/inttypes.h
  cd61846311e14917693160c5e60ad2cd  fixincludes/tests/base/sys/machine.h
  d669f7372e28cb610f59526574b4c70a  fixincludes/tests/base/sys/mman.h
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 519,531 ****
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! 97329340dfb48ed4683fdb7d3f2f9014  gcc/ABOUT-GCC-NLS
! 1efbd568228b5af73cb0285b43d99a82  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! ca12efd5b3613a82d86466fa3cc9994e  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 535,547 ----
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  8baab8698bb83c6b90ef4091c00ddc1e  fixincludes/tests/base/unistd.h
  75d75572793b62bdd8ff4d1504e0cb4c  fixincludes/tests/base/yvals.h
! f15bc3c5de22eac0bdd4f611502139a0  gcc/ABOUT-GCC-NLS
! 6704751b7d65aa3e9c886d485219a2ec  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! e117ab36c01408132a87a1b4639cb857  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** a8115a08b5042f830403fa427ce7c243  gcc/Ch
*** 554,559 ****
--- 570,576 ----
  c8a56d14c776a8dfe1b5528f896d891a  gcc/ChangeLog-2022
  f9002213c826f50ef47ddbe3732af2ad  gcc/ChangeLog-2023
  5de92db9d7ac65980600da22087d71b6  gcc/ChangeLog-2024
+ 369ec15c7bff0b7f2b3b1aae76c15380  gcc/ChangeLog-2025
  99fbd9e13a4133855332bf21b0e8fc4c  gcc/ChangeLog.dataflow
  e36816ca56b2bbc8bfc358e0185fc1d3  gcc/ChangeLog.gimple-classes
  fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/ChangeLog.graphite
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 562,580 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 2f5ccef09bd82ec779ad9b1e3fd7f9a0  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
! 5368a92edbfdaed06d06e3f0295dcd29  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 579,597 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 95e72ce799f8e12b2c2223b73bd89f1f  gcc/DATESTAMP
! afbe595ca33384182f656ad1e88e8615  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
! a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 3cc6d47e97c2a546cd3c3932a4999b1e  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
! c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
! 240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
! e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! d4ee62c08483d329fe88657616220214  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** eb047ffc35b1d44455bed0519888503c  gcc/ad
*** 599,744 ****
  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
! b4d8c0a7115d77fba33a6577ab6efe43  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
! 20d0c21e346ef575a30e5da2f84b9b97  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
! 8a08ec2ca4612bbcce770f19187d7c29  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
! 8e52fb340bf9b3b220e7e6a9cee8be87  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
! 687e948eae92592a9bb4b738fd473d80  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
! c0f8fd8c7427f180654f7edf1f4c0b5f  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
! f67a4cd7fabedae45b6da4cbdc834202  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
--- 616,741 ----
  e529e93557ba835a90440062c302bbfe  gcc/ada/ChangeLog-2022
  2dc2306421af9d88a84e6b007bb85e1b  gcc/ada/ChangeLog-2023
  eea9961506181531b5f7f1a7f62fe428  gcc/ada/ChangeLog-2024
+ 82b65e0092f3417a0ea556baffce98d5  gcc/ada/ChangeLog-2025
  5598cfcecd6612ea21efddabbbe1ecc0  gcc/ada/ChangeLog.ptr
  2cf41efa2dee24b2dda73018b855edd3  gcc/ada/ChangeLog.tree-ssa
! 1ddbf3755fbef2d964b15c7104b9937d  gcc/ada/Make-generated.in
  6c9c3b4249e781ed48c7ae55e8ef9999  gcc/ada/Makefile.in
! 55fa6611dd185a2ad1958853c6177e8d  gcc/ada/Makefile.rtl
! 286d2ead847e0c4ebeaba165f98ee998  gcc/ada/accessibility.adb
! e1ac9cc081416270a911135ba79261ee  gcc/ada/accessibility.ads
! ae606358a99a7aabe5c0eb16329624b3  gcc/ada/ada_get_targ.adb
! c40d997c0c713985ad13faa6d354b016  gcc/ada/adabkend.adb
! 8a0369e13d0752dfaddb77dfd08c3d14  gcc/ada/adabkend.ads
! ee04249eeb43a0e8f19490fbaccd6169  gcc/ada/adadecode.c
! 35aad1fa6496345e7a7a1a7c43ac1145  gcc/ada/adadecode.h
! 1b8348740464d6f94417f6c8bc3aedd1  gcc/ada/adaint.c
! 8606a990b2e1a636a5ae50f019b17b10  gcc/ada/adaint.h
! a82184f30accc8ed33746fffe377a4ed  gcc/ada/affinity.c
! 0ed459e0096285586fcd5221bb4cfb52  gcc/ada/ali-util.adb
! 69ca25415e164dd731aba3fc03ffa639  gcc/ada/ali-util.ads
! 942542a18a49b332c233b9effce22ac1  gcc/ada/ali.adb
! 88c405590154f9db500832e038780e2d  gcc/ada/ali.ads
! a5f9ea1ee979426b1e19ed469160cf3e  gcc/ada/alloc.ads
! 2ed8264ae6d3e6183c070864af1debcc  gcc/ada/argv-lynxos178-raven-cert.c
! 16e8e9e10379bd7278f9d06791ed6efb  gcc/ada/argv.c
! b493ca76414651276373327aca25f7c4  gcc/ada/aspects.adb
! eeb798e81047bb42f573a704eb1077de  gcc/ada/aspects.ads
! 6e1b6f3ca6da5c24f2b9c3e6637a1dbb  gcc/ada/atree.adb
! fd46d0d4940b9fd7cf5c96d9a66ed70a  gcc/ada/atree.ads
! 6e0304e672e621021491b2c184e23f17  gcc/ada/atree.h
! fd7d351169dfec7fb0174f0348fb8266  gcc/ada/aux-io.c
! 38000e4d3ef388955ef56b6d9a5e49e8  gcc/ada/back_end.adb
! 693adfee4358f7cd8a0cda8bf892672f  gcc/ada/back_end.ads
! 79c42fa7163094a2d83614adce557fa9  gcc/ada/backend_utils.adb
! 4843b6b4770486e0d5e53bebbffb7c95  gcc/ada/backend_utils.ads
! 0ee8c1db49c95f607b82777b5a03afdc  gcc/ada/bcheck.adb
! 6bff74c31912eaddcdf3a24d8d9f723f  gcc/ada/bcheck.ads
! 061296d6139b1dcd1745525548afd40a  gcc/ada/binde.adb
! 3f0746360527dbf9d17af0643019d63c  gcc/ada/binde.ads
! 69103c6cb0752a888630b07d41c8efba  gcc/ada/binderr.adb
! 132494feb431a9163fdc8aab6a4cf481  gcc/ada/binderr.ads
! 861403534efacec52140f8dbf80910f7  gcc/ada/bindgen.adb
! 162e062dfc96ea6eb453d1247a06129c  gcc/ada/bindgen.ads
! 285614d90c16ed23ee03946f7aa545e3  gcc/ada/bindo-augmentors.adb
! 7fc3f65a2f6a47ef465311efcdb4e97c  gcc/ada/bindo-augmentors.ads
! a159f9e72deba9be1c59e44bf33cd8c9  gcc/ada/bindo-builders.adb
! 564ddc40baeeb92498a8081ecac3bfd8  gcc/ada/bindo-builders.ads
! f79be0ea957a1dcadc34a7bf621a7a81  gcc/ada/bindo-diagnostics.adb
! 8f099284e15808a875e594b2f1664e08  gcc/ada/bindo-diagnostics.ads
! acfbf553ad699f161dc7edf731fc4668  gcc/ada/bindo-elaborators.adb
! ca977e02b2aee8fb771a3874cff12282  gcc/ada/bindo-elaborators.ads
! 737135e52935e6be705ed00a43cd790f  gcc/ada/bindo-graphs.adb
! a7a3d95cb5273be5978a080a351f2d8a  gcc/ada/bindo-graphs.ads
! 819ec2944146c638237850b50f00b335  gcc/ada/bindo-units.adb
! 91c4b1c3b56f59b9edca4ea7beb73132  gcc/ada/bindo-units.ads
! af50c1c07218e3a44d1c3dd329874ef6  gcc/ada/bindo-validators.adb
! e2993945d548b0e69449620369dd603d  gcc/ada/bindo-validators.ads
! 600f26c3aa2b1959c68391ba71011a2f  gcc/ada/bindo-writers.adb
! c2c2ce0ac85db6276eb58438ed0655a7  gcc/ada/bindo-writers.ads
! 840f99a5fbc5b896151f29b38048e09a  gcc/ada/bindo.adb
! 7135bcdf733ee9265222e6590229e7ac  gcc/ada/bindo.ads
! 8ea1c17665aaa8914bc31b74ef92b009  gcc/ada/bindusg.adb
! 2caf3061721429348c9d149bf113834f  gcc/ada/bindusg.ads
! 0da1af3b207da661f24be480e01b50e4  gcc/ada/butil.adb
! 4f4e391248e66a4b9cc396f9765ce4f2  gcc/ada/butil.ads
! 29d9f902f66fe8415f5b9f300ca23b66  gcc/ada/casing.adb
! 25bd0c7e9883d8c218b0ab36b2859de6  gcc/ada/casing.ads
! 08ad91a7d93ff92355dab382fa7ffc78  gcc/ada/checks.adb
! 718318d8ff137c5dfb3728ef75ba7f59  gcc/ada/checks.ads
! 403bc6a6d72b88976a0ccc8ff9459d77  gcc/ada/cio.c
! 87a1a7be553e1cbb5ccf25ba67166d4c  gcc/ada/clean.adb
! b7678d8e7ea8aa0a70e24b3fb885db3c  gcc/ada/clean.ads
! 6aaf6ce8bf8560231a3bb0ca1b12272c  gcc/ada/comperr.adb
! 8b48cff165002adce60df535498f6650  gcc/ada/comperr.ads
! f21d3b1fb30a592ea0d55cc24e7ed262  gcc/ada/config-lang.in
! cf01a5a581a349b07cba932a6b4d27ec  gcc/ada/contracts.adb
! 74dca16001c24970dda556d1d088d05d  gcc/ada/contracts.ads
! a29b9edba17a642e68340d8d5b20dd6c  gcc/ada/csets.adb
! b3a5bb5354c2c4c1961b72fcee81f353  gcc/ada/csets.ads
! 9b507518d5208bad11fd267d87dfa39a  gcc/ada/cstand.adb
! 944994f4a64b41fee9f6c266a4bfcadf  gcc/ada/cstand.ads
! d5f5c3f440277272f5cc21f968a43588  gcc/ada/cstreams.c
! 1b1d07fd9c1cbe3c9065636585ec2034  gcc/ada/ctrl_c.c
! f6b1d0a04a54bfc7c0d6b1a7001bc763  gcc/ada/debug.adb
! bc28c5c733c954c4dadb6e046d5d77cf  gcc/ada/debug.ads
! 91acc2d4bbb0a9ded0450945658cfcc8  gcc/ada/debug_a.adb
! 8b28af55ba26dac0275b8a7fc8e0389b  gcc/ada/debug_a.ads
  e985c86f5eb27a1af5221f7338ac92cb  gcc/ada/doc/Makefile
  a012e0cb5df366014b5a4988036a509a  gcc/ada/doc/gnat-style.rst
! 7559c05099cde820bf8bebbceabccc04  gcc/ada/doc/gnat_rm.rst
! 5bf95a83da0a709f6bdf91751e65e01f  gcc/ada/doc/gnat_rm/about_this_guide.rst
! 95f36013115a0d2964f52a340712b135  gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
! e7ba72bcb5b6e279eac294bfd2d9c998  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
! d18255d01b647c97e7cf2cbd3225f90d  gcc/ada/doc/gnat_rm/implementation_advice.rst
! 4f7bb8fec58a615cfdd25754812dbe70  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! 6a1c79967060865c8310697a857de11b  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
! 841d2d7d08c02898708fc688f180e10f  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
! 7521a9c7898f9cdc3b74c7df8d21d2c2  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
! 9358d124a08bdf6e1b8f83a0b72d062f  gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
  1ce2dc848df98bcbbb9d443501c48132  gcc/ada/doc/gnat_rm/implementation_of_specific_ada_features.rst
  454fb365cfb751d8e03b8e972d3abef1  gcc/ada/doc/gnat_rm/interfacing_to_other_languages.rst
  d3ffb5a905c9520d87b68e10029eb023  gcc/ada/doc/gnat_rm/intrinsic_subprograms.rst
! 589bf80a1722468834f1e02674ad1e27  gcc/ada/doc/gnat_rm/obsolescent_features.rst
! 72aca4143b04d0cd9a9d207bd7ebbbcd  gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
! 1813c7ae4ff4245bfbeb8dcf9e475019  gcc/ada/doc/gnat_rm/security_hardening_features.rst
! 4de72a3ff83ec3e42cb0d1eaffe486dd  gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
! eb3bc27dcbfec397dea4c2660fce484d  gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
  a8608ebf71444d2564728c8a41283e03  gcc/ada/doc/gnat_rm/standard_library_routines.rst
! de678cadfde8bce5aa2e2f73f408ad76  gcc/ada/doc/gnat_rm/the_gnat_library.rst
  391d17bf855af400348685ff678c6a6a  gcc/ada/doc/gnat_rm/the_implementation_of_standard_i_o.rst
  ad0b18bc67f8911f5f0d9d2762f19f82  gcc/ada/doc/gnat_ugn.rst
! 505b4be5ad4479a4bd295e927f9e2d14  gcc/ada/doc/gnat_ugn/about_this_guide.rst
! 447681f4a0cab6704e2bee5681bd8b39  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
! eacaa696fafef4f9aba5958051b20a6a  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
! fb97e551cf32ed76280cd4f8cd40825c  gcc/ada/doc/gnat_ugn/platform_specific_information.rst
  062c912e168e9f97d4b4ae9c766300b8  gcc/ada/doc/gnat_ugn/rtlibrary-structure.png
! 2beabef2edddb52bfa57ca9360bed6fb  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
*** 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
! c8215fc59c32d3e426200668c4fc8caa  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
! bf6347103aec4d2c7abcf829cb740017  gcc/ada/exp_aggr.adb
! cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
! f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
! 17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! 21d2c4bba0a8e76e8fed08b94023fc91  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
! e4038d2c72447e972a32b3dfdae7ae55  gcc/ada/exp_ch3.adb
! 53e0d855cd76aedff48a9e6266db49e8  gcc/ada/exp_ch3.ads
! 00a2257236804c03d1ca7604dc7c55cf  gcc/ada/exp_ch4.adb
! 689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
! c642a1d7102316f2db8b308db52c324b  gcc/ada/exp_ch5.adb
! 3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 2263856420a09ab0977660d04793adc4  gcc/ada/exp_ch6.adb
! c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
! 356896e905fa10471e94e6ed528670a1  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
! 5c439124d2bab6aebfa6ddc31b112752  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
! e0890410b45b81ec10bec8de64107e53  gcc/ada/exp_util.adb
! f38c33811ff4495921f4fab803f1b045  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
! 0654e14fe6913f4b6d80a4c5f51805df  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
! 340c726636cbeacc6902433be63c65a9  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
! 8fca78975db7b17ddd18c2ddf77f1647  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
! c77b069c11d396024d465bc58c32292f  gcc/ada/gcc-interface/trans.cc
! e8e1dea48e7ee6c84d438db1b4a6a9b2  gcc/ada/gcc-interface/utils.cc
! 7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
! 20ab1d2ee73423b8b0fababbae54659c  gcc/ada/gen_il-fields.ads
! 580645a6185724324a0a7aad4f86301c  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
! dc9cda00481a5069f6febcb6a54e9c73  gcc/ada/gnat_rm.texi
! aab9a487c7c6377a292d239367dc7c62  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
! d2ce4522ff8bfb72ff1063aca82c855d  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
! 1cdf5498ce5d53d47910c453b7520e08  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
--- 743,1365 ----
  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
! 53ad5bbe1307592cb0b72abbd090be7c  gcc/ada/einfo-utils.adb
! 7d8424f0fa1f5c55e62289d1bb109135  gcc/ada/einfo-utils.ads
! 97ce2e179e42e649dfe8affca8e3c302  gcc/ada/einfo.adb
! 24bfcb17dd546f237b920224086f07b2  gcc/ada/einfo.ads
! fef3bb4012357f98b9b104dfa3daee51  gcc/ada/elists.adb
! 52dc293e77a753c73be5d02f2661369f  gcc/ada/elists.ads
! 30a82f1a7c5bfcc4e8be8d79dc60e23e  gcc/ada/elists.h
! 9ec804ce6ec509c97a3d1ee61e647882  gcc/ada/env.c
! c91dca185d552d7b836c9c09850734c1  gcc/ada/env.h
! 98aa80934e74727f397972f3d475c339  gcc/ada/err_vars.ads
! 1c3ef430f796238906ebb2bc044e949f  gcc/ada/errid-diagnostic_repository.ads
! cca5ee0694320e014df12c82cb9f56f0  gcc/ada/errid-switch_repository.adb
! 5402cf7f235641982366ac9d28fb1bc6  gcc/ada/errid-switch_repository.ads
! 823d2e8864c2f932d921025f8333e691  gcc/ada/errid.adb
! 06416e6001bd21ae589d473e07b013d9  gcc/ada/errid.ads
! 84f28219501ec3f2ace259cad6375b8a  gcc/ada/errno.c
! 56f9874492806d0ed2da254e28d4676d  gcc/ada/errout.adb
! d11d09f4d9f7f5a1c7c53b22a8519987  gcc/ada/errout.ads
! fabb943ae5026300821049a63f358453  gcc/ada/erroutc-pretty_emitter.adb
! 039052e81d94cd57e6732e2741d45971  gcc/ada/erroutc-pretty_emitter.ads
! 9fd0d8047c76bf50119ebdd339c8dbab  gcc/ada/erroutc-sarif_emitter.adb
! 091c5b426ca1d4da33b22d1cab7808e4  gcc/ada/erroutc-sarif_emitter.ads
! 6f423a4bf872fa80afcb7679b31df763  gcc/ada/erroutc.adb
! 92c5bfffa4dd3b144432c2ca10950577  gcc/ada/erroutc.ads
! 375d77a59fe99a106b2f48426c3e760e  gcc/ada/errutil.adb
! 6f419277ada6ce8a81349d41a22b2869  gcc/ada/errutil.ads
! 3dc31e56d392ba3da0e312527adcd953  gcc/ada/eval_fat.adb
! 3a42a1f58a3aff7741ec916dfc1d9882  gcc/ada/eval_fat.ads
! adb49f37416fce62d5759f9b4c733fe6  gcc/ada/exit.c
! 06d488853d68e0f0a67a4bd755cdb6e4  gcc/ada/exp_aggr.adb
! 8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
! 045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
! 2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
! 5d68882641f26f3c6c75a393e2cc283f  gcc/ada/exp_attr.adb
! 4b748ed1db282b666860ed488c4ff28d  gcc/ada/exp_attr.ads
! cda4ccedf4fc1e7d7dbe6864ee5bf8ad  gcc/ada/exp_cg.adb
! a188d43ef2eb5780d4b7f98731302640  gcc/ada/exp_cg.ads
! 22056d93ee3af80b1661baaced1fed25  gcc/ada/exp_ch10.ads
! 7d6e304b6761dd9969bc85a0461689b5  gcc/ada/exp_ch11.adb
! bf3743ac83ce052257e4841cf92462f0  gcc/ada/exp_ch11.ads
! 16c8917305213e88c4ba212ba6b9785a  gcc/ada/exp_ch12.adb
! de7a9caf4d0fd7fdbd90fe08aabba91a  gcc/ada/exp_ch12.ads
! a84d191dad3158db125ec48c285b9667  gcc/ada/exp_ch13.adb
! 371cc0c543b5d2502352758eb7b73e8f  gcc/ada/exp_ch13.ads
! ace7dfdd53834601d964efef9557e0f4  gcc/ada/exp_ch2.adb
! aec86f795b370fca1379a25f37651fdf  gcc/ada/exp_ch2.ads
! bfede432412bc3d7ee70e14cbda137e3  gcc/ada/exp_ch3.adb
! 52ca7939bd6b0e1da9e20d902813d109  gcc/ada/exp_ch3.ads
! 33412d9e019d4b8a749c92c7da8ddb5a  gcc/ada/exp_ch4.adb
! 2d9cf8b148fdc7a07edde2cf9fbb59f8  gcc/ada/exp_ch4.ads
! 14be4614e917c455830a799b3e214921  gcc/ada/exp_ch5.adb
! 962c51f1fad8395553b843179ba06b79  gcc/ada/exp_ch5.ads
! 4cabe50d62190b625d0ed8d83c7d428d  gcc/ada/exp_ch6.adb
! 757670a84e9c01219a219c4bc68ea62b  gcc/ada/exp_ch6.ads
! b8cb3b82f2a68b211875181376e0de4b  gcc/ada/exp_ch7.adb
! 0328c88aa1134f7af3891cb24a0b27c8  gcc/ada/exp_ch7.ads
! 122a5cde9816de02c7f37bcdf2de229f  gcc/ada/exp_ch8.adb
! 9955bf7551ef5f537f9031c59fb73db8  gcc/ada/exp_ch8.ads
! f084400d4a12cabf8267bc395b762fa2  gcc/ada/exp_ch9.adb
! d5bed31d915c80f427741d1175ba335a  gcc/ada/exp_ch9.ads
! 914abafc66aba1c22bfd983c48ee2d6a  gcc/ada/exp_code.adb
! 8be63e29d5aeaf0a16ff7b4dc746e1a4  gcc/ada/exp_code.ads
! e837e02763d429cb690f4aa38c5c1da2  gcc/ada/exp_dbug.adb
! 4aedf059cc4ede0c0c0d01a19e99d07d  gcc/ada/exp_dbug.ads
! 53b442df6e416c67f7f0dfa7a033850e  gcc/ada/exp_disp.adb
! 4a4f2db1ce2689b32aa03195644a6fd0  gcc/ada/exp_disp.ads
! 4a4b9d7a9f03004c8a15a64b412515aa  gcc/ada/exp_dist.adb
! ce990621220fd6489426c319eb93cec4  gcc/ada/exp_dist.ads
! 23f9e2de53a292fd54bac01c5bf3a794  gcc/ada/exp_fixd.adb
! a68a87f80c2a7f799dba65186bf644df  gcc/ada/exp_fixd.ads
! d308cb3a0264221f369b7f0ab346926a  gcc/ada/exp_imgv.adb
! 34fc29154c68ffe19f5d9e5cb9f5be59  gcc/ada/exp_imgv.ads
! ee534f378918dac3d346695bf4bcf9a2  gcc/ada/exp_intr.adb
! 98fffa8af9ba75158eeab9097a7838a3  gcc/ada/exp_intr.ads
! 76948a2e60e8a51d14c21ac627fe5375  gcc/ada/exp_pakd.adb
! 4a687a32bfa3449e71b6e5eb050497b1  gcc/ada/exp_pakd.ads
! 67c749c20d685df7377ae13924346b73  gcc/ada/exp_prag.adb
! 72a4e0a905bb5ed9604683cb4aa8f9dc  gcc/ada/exp_prag.ads
! 3c4cc16c00054e6b71e1305c3a35b2a6  gcc/ada/exp_put_image.adb
! 809ac6dc6426a2989a6eafd2dc0dc837  gcc/ada/exp_put_image.ads
! 113ca62ed0736ce6088da621227c3d67  gcc/ada/exp_sel.adb
! 8573714354a5f8299d234cb15aec7bee  gcc/ada/exp_sel.ads
! 98efb9e91a5f81d72a65db5d6bdd4abf  gcc/ada/exp_smem.adb
! aada5a2a6d65a0eaf198aaf386ece7ab  gcc/ada/exp_smem.ads
! 3b6a5ec1c9fa7a6f4fdc9e39c4ea2d98  gcc/ada/exp_spark.adb
! 047bff31c2d6f19c6cac822e25fd7305  gcc/ada/exp_spark.ads
! abc4adbcfcc5aec49e61dfe787dc8274  gcc/ada/exp_strm.adb
! 3a2ca8073ab459c3de33ef8f943dcde8  gcc/ada/exp_strm.ads
! 4b1d1fb96b1da183c0331dac2bcda76c  gcc/ada/exp_tss.adb
! 3372f4711ba5978adb3c0b71a6836ba0  gcc/ada/exp_tss.ads
! ef2035bfbeb4e058c824980c2f6d7214  gcc/ada/exp_unst.adb
! a787a30ba8699ad9caabf0ddeb2bd425  gcc/ada/exp_unst.ads
! b40cc3f4d2fdc98f9425cd424f7d890c  gcc/ada/exp_util.adb
! fb64e3eab9418e4f42c1e395d64be8ca  gcc/ada/exp_util.ads
! da86db6b7d964bec3beb0995f66c2c49  gcc/ada/expander.adb
! ca321269d17552e01fce3be99a0a3452  gcc/ada/expander.ads
! da666491b0d26eef3aa08ba31f054d9b  gcc/ada/expect.c
! 96ea1db659522f0433ba0ed3d7d3b6c6  gcc/ada/fe.h
! 165030b8063a603329d4b5b61ab0dd45  gcc/ada/final.c
! c8c43a0fecaa61440e2baf650405cfdf  gcc/ada/fmap.adb
! 32bf208558cc232d737f7a09cf4b8c9a  gcc/ada/fmap.ads
! f202ac46fa3ccc4e5152d72cabb31c94  gcc/ada/fname-sf.adb
! 5bbec1a5eace41f27d339384afd8a4d2  gcc/ada/fname-sf.ads
! a33f6ce50ea5f6239bb943392e892d17  gcc/ada/fname-uf.adb
! 69ddf39d57c6fcb7c5a317cae7c09f58  gcc/ada/fname-uf.ads
! aafcb91317d2b95ebf55c3e8bbc030e0  gcc/ada/fname.adb
! 8a4878ab4881e98ec589708dfeabb6da  gcc/ada/fname.ads
! 1cfcf302b4d5276f1a66d2492c99d550  gcc/ada/freeze.adb
! c2b6f0e40ada726a36b2cba815c79591  gcc/ada/freeze.ads
! c8c5844ba2c26bdc1b7c004e5b806668  gcc/ada/frontend.adb
! 03bc5c5bdf3e467c3fa035201ba507d2  gcc/ada/frontend.ads
! ebc793bc845743c8d1abae02a7f2d8a3  gcc/ada/gcc-interface/Make-lang.in
! 8e313a04d5d59d4c3976a51e2c461caa  gcc/ada/gcc-interface/Makefile.in
! 4a3368e207a707c3b5a9ffd105f8eec0  gcc/ada/gcc-interface/ada-builtin-types.def
! 543f471801cbaf1a34c4f0289b0b17ec  gcc/ada/gcc-interface/ada-builtins.def
! c7fe6d4e6ada24fd6764ce68ba3f91b2  gcc/ada/gcc-interface/ada-tree.def
! e4204795e682e9a19f2c26c4b2410fc3  gcc/ada/gcc-interface/ada-tree.h
! 8d951ad5f91f626d3cc7ba6585129d29  gcc/ada/gcc-interface/ada.h
! f3edeff30f2d71e01f705dbeeea40b77  gcc/ada/gcc-interface/config-lang.in
! 61292b93aaa82b358b5b4e2310c77d5b  gcc/ada/gcc-interface/cuintp.cc
! 111b3cb638cd46517ca334f96f5e83c9  gcc/ada/gcc-interface/decl.cc
! 07d1f164dc85932ebe1eab7ad2117218  gcc/ada/gcc-interface/gadaint.h
! 1e2940d1ddb2a1e198a7dcd59b66ebfc  gcc/ada/gcc-interface/gigi.h
! 89108e218f6b9e9f07550c3675c059a7  gcc/ada/gcc-interface/lang-specs.h
  43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 5fa7cac776a0baee0d89a8f1d532117f  gcc/ada/gcc-interface/lang.opt.urls
! 8ef0bb2ae7258a2fb47816777dbbc079  gcc/ada/gcc-interface/misc.cc
! ec10f477ad1d3dba6056061ede6ff919  gcc/ada/gcc-interface/system.ads
! 90cfb783f79abe4897a54ecd4d34f0a5  gcc/ada/gcc-interface/targtyps.cc
! c10afb784d01db96d3e446e834044dec  gcc/ada/gcc-interface/trans.cc
! a42ca7a70ecb27ca641d7e22801cdc56  gcc/ada/gcc-interface/utils.cc
! 5aa7aec67976f00fbfd0e838865ac865  gcc/ada/gcc-interface/utils2.cc
! d5e790917c3bb105f9c562fc40e9bdce  gcc/ada/gen_il-fields.ads
! c3f2b097736c12f7ec056f8c4f33c170  gcc/ada/gen_il-gen-gen_entities.adb
! 3f142f6080a505c4b3aa2889c4d68af4  gcc/ada/gen_il-gen-gen_nodes.adb
! 7091bf4b26ab64fe3d88bd3feb79b94f  gcc/ada/gen_il-gen.adb
! ce980375550bc71a64634141fbbcf330  gcc/ada/gen_il-gen.ads
! 69c0994bcc9dc3ff0eb519a710c796f4  gcc/ada/gen_il-internals.adb
! 13c279c3f7d8c512e493d39b07d73f55  gcc/ada/gen_il-internals.ads
! b1d2c753326cb490ddb2b49be7a3c3fe  gcc/ada/gen_il-main.adb
! 74b13460ba8ec91b9fb5e513853a81f9  gcc/ada/gen_il-types.ads
! b849854dad319fbe3b731250ec8bd396  gcc/ada/gen_il.adb
! 1eb5a449a27c9a03e7fa497bc5856649  gcc/ada/gen_il.ads
! 903869fef38129181bb3a86b382a4c33  gcc/ada/generate_minimal_reproducer.adb
! 14e78dc93992d7edeb494c128278c966  gcc/ada/get_scos.adb
! 087bcf710ff99554041ac9b656b7498d  gcc/ada/get_scos.ads
! c9a79d9a9ae90f3aa712a05fac2a292d  gcc/ada/get_targ.adb
! d6c10405a90333a12764946307dc0f65  gcc/ada/get_targ.ads
! ad85f63240402108dad631ff5461b181  gcc/ada/ghost.adb
! 2a820cae5fe61a664d612d6a932b8392  gcc/ada/ghost.ads
! 3e6d37543e1d3935a9987bbe1c5e7bf1  gcc/ada/gnat-style.texi
! 34377b9f07af9797c2619ffca3e5de59  gcc/ada/gnat1drv.adb
! 670af6d018b90a411149613f83ae9377  gcc/ada/gnat1drv.ads
  917ea7311a30ec4c5cec3e610ca640c2  gcc/ada/gnat2.gpr
! 635312af629edb6333cf662c55ae7a0b  gcc/ada/gnat_cuda.adb
! a930631c7c5fdabf12e2010079214e38  gcc/ada/gnat_cuda.ads
! cac3c1f4e7aea07828ef9ab3b693e73d  gcc/ada/gnat_rm.texi
! a671ca633499ae987f1b1ed9d1c3e93b  gcc/ada/gnat_ugn.texi
! 97a151562fa533cd370413751bd18564  gcc/ada/gnatbind.adb
! cf407dc104ddb2d242f8c79a9b8166ec  gcc/ada/gnatbind.ads
! 8a451200e3c6277c33c04b60c1c63fff  gcc/ada/gnatchop.adb
! 4aff7d6239f371e55c81a9228a3af75b  gcc/ada/gnatclean.adb
! 33e90c5aff7098a92c6e549197733ea5  gcc/ada/gnatcmd.adb
! 4266831e023535a7bebe4f45a13e3aa2  gcc/ada/gnatcmd.ads
! be1bc4b28f76f8d13e979b2ffc3493c1  gcc/ada/gnatdll.adb
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
! aab44e4245fc6e446589b950e0de7ca3  gcc/ada/gnatkr.adb
! a89660ee7a9424f52d3d7f2d8c11b7eb  gcc/ada/gnatkr.ads
! 926fbc5efb660c10513601a448fd5f43  gcc/ada/gnatlink.adb
! 99d2bc4ea423585df117f338ad0f0e29  gcc/ada/gnatlink.ads
! 0232cc630eee7dd406affe7030790ea5  gcc/ada/gnatls.adb
! 6917057b9212fe217ea3aa113154730c  gcc/ada/gnatls.ads
! a55aa119a5c077ebfae2b67fe2765109  gcc/ada/gnatmake.adb
! 93f65bbf8560c833330600ecbdcd259a  gcc/ada/gnatmake.ads
! 92c6cd4ecb3f5c505296498719e2ac32  gcc/ada/gnatname.adb
! 595444f27f85e25166d8b9206618e3eb  gcc/ada/gnatname.ads
! 55e3a6ca74c1db21e581030aae412920  gcc/ada/gnatprep.adb
! d2eff1ec33d74fb0175f666c473d0277  gcc/ada/gnatprep.ads
! 154cf43d4877e7f6d9d0fe0047c8dbac  gcc/ada/gnatvsn.adb
! 4c7fc511a41065f7bbe44ed4cc943e1a  gcc/ada/gnatvsn.ads
! 62ecb9c1cf4adaf52e243b6b2af014cb  gcc/ada/gprep.adb
! 6cd615820206d692fc2fffa0b6fa14a9  gcc/ada/gprep.ads
! 8051320154ef3aa81f2771424cf2b2ca  gcc/ada/gsocket.h
! 650db654ed0baf0930657bb158b26b9f  gcc/ada/hostparm.ads
! 4a04bf4fe8008fcf0087aadb1e70423e  gcc/ada/impunit.adb
! c97cd2be242ad531d5eb4e97b73f61e6  gcc/ada/impunit.ads
! 6364a752380b5bf4ebd9c9c5f7e5d835  gcc/ada/indepsw-aix.adb
! e990b94c2deda2688532716fbe75bb0e  gcc/ada/indepsw-darwin.adb
! 2fa42d36d02ccd2dd6e280ff1b9e6959  gcc/ada/indepsw-gnu.adb
! eb3b6f429c0b93cc8e9788ea4ac4e8c6  gcc/ada/indepsw.adb
! 18250f749f24e01ba1da7cf90a1d60c2  gcc/ada/indepsw.ads
! 57cdf164c35e90e76488988290c08dd4  gcc/ada/init.c
! bc9cb67c7c529d85eae0a62d8155e31e  gcc/ada/initialize.c
! 049ac897ccad3e1d7f7b2e41108ceef2  gcc/ada/inline.adb
! 09c0c05a4b1ccd65d2cb5612e8b023b1  gcc/ada/inline.ads
! e9cdc0c5c27e9fc2f7c18857dde261a7  gcc/ada/itypes.adb
! f907b184de1987a24c20c953fa9d64ef  gcc/ada/itypes.ads
! e6d42cc6f1315f1a219a6c2b64c0b3a6  gcc/ada/json_utils.adb
! a6f9c85f1be9a68712686738e2181c81  gcc/ada/json_utils.ads
! baa0b98c38f214ae12efbda6ae64d876  gcc/ada/krunch.adb
! e6ab30389d1d8992db409d4ad64f8ade  gcc/ada/krunch.ads
! 86b323e60815784ff0895117d4d41de0  gcc/ada/layout.adb
! 16fd58323459ff08fde71a5df6b890d2  gcc/ada/layout.ads
! d38d84794d585011fdcb98c38e29abe0  gcc/ada/lib-list.adb
! dc629c2ad5605b0cd2bf533353334a40  gcc/ada/lib-load.adb
! 2c37a4cd6a99e963c7143d8f6f0fab8e  gcc/ada/lib-load.ads
! ac639c21482870af6d4302fb4caee182  gcc/ada/lib-sort.adb
! d3274473132edf2a642cd08e5a593ee8  gcc/ada/lib-util.adb
! 7d16d1e1659571aad5e06272834073b8  gcc/ada/lib-util.ads
! b8ab088a9f7e22d3ffa98107cea5f562  gcc/ada/lib-writ.adb
! 3aceca9140ed4a3a2b31463da7cfbdf9  gcc/ada/lib-writ.ads
! c9808ebcd9224107da699194023ce9a1  gcc/ada/lib-xref-spark_specific.adb
! 927475a40f4689794ebb97e3d0e9588c  gcc/ada/lib-xref.adb
! 95bf947a3a0d2c0c47d45fe004f1af67  gcc/ada/lib-xref.ads
! d997922c484b3ebfd335c332bfc47939  gcc/ada/lib.adb
! 8e856a8dc8da57fb0656b8fdcbff8612  gcc/ada/lib.ads
! 08bdbaf50f1e87c49cfcdbe0e84e5402  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
! 63d5b0b790f6be461a4eecaa22e16c9f  gcc/ada/libgnarl/a-dispat.adb
  380695cb64d70014260c4cbc5dc99e54  gcc/ada/libgnarl/a-dispat.ads
! f96aa65f3c2f23d1091a5f8413b02ddf  gcc/ada/libgnarl/a-dynpri.adb
  337018b2e7333fccdf4c461e42f432af  gcc/ada/libgnarl/a-dynpri.ads
! 03357528a17ab656866be3b7f23a807f  gcc/ada/libgnarl/a-etgrbu.ads
  3e60794a02e6ff3380c0daf20c7c6bc2  gcc/ada/libgnarl/a-exetim.ads
! c31f1aab48a119a99bc8b60d5e8ddd5c  gcc/ada/libgnarl/a-exetim__darwin.adb
! 43ca1db59364454398fb0aceb579e969  gcc/ada/libgnarl/a-exetim__default.ads
! d145633520ca0bfbe2f3b94f7d84b91c  gcc/ada/libgnarl/a-exetim__mingw.adb
! c2e9aa3e71bd52848b720c6eabf12dda  gcc/ada/libgnarl/a-exetim__mingw.ads
! dc9ec449ca0cbe9ce18e6643e3b00877  gcc/ada/libgnarl/a-exetim__posix.adb
  8a70e70c5d53efd2ae8de2a025db3217  gcc/ada/libgnarl/a-extiin.ads
  66ba8470ba07e36d23031779e1ebee31  gcc/ada/libgnarl/a-extiti.ads
! 0c6303e18d30108d5893212d433dfe45  gcc/ada/libgnarl/a-interr.adb
! 7746f4353903b13d49200e88328b134f  gcc/ada/libgnarl/a-interr.ads
! 4c3ae5267052974f6dde73370f615917  gcc/ada/libgnarl/a-intnam.ads
! fdd5640c7981939ce73920864a5e7e4b  gcc/ada/libgnarl/a-intnam__aix.ads
! b5dcdcf7d241633d6939c111e305d785  gcc/ada/libgnarl/a-intnam__bsd.ads
! a5e31961488d86ca02f3691aa8acf443  gcc/ada/libgnarl/a-intnam__darwin.ads
! a127679abf94db38731a072093e09a94  gcc/ada/libgnarl/a-intnam__dummy.ads
! c8a871be888b619c1b442ad16a31c0e1  gcc/ada/libgnarl/a-intnam__hpux.ads
! b880c03cf6947da0ac74eb422b63f15b  gcc/ada/libgnarl/a-intnam__linux.ads
! 01829364eb2f3668446ce891bbdf2b7b  gcc/ada/libgnarl/a-intnam__lynxos.ads
! 9f087a0f7af4d8e09fc1d6331ece9ef8  gcc/ada/libgnarl/a-intnam__mingw.ads
! d0802e47bd3fd73fef728141f48af26f  gcc/ada/libgnarl/a-intnam__qnx.ads
! d4e6e75f69a84c74d12540570012a5b2  gcc/ada/libgnarl/a-intnam__rtems.ads
! 5d5cedb486b7de389f04bb0532e123d5  gcc/ada/libgnarl/a-intnam__solaris.ads
! 38da2847865e3f338fa729e9cdf98ab3  gcc/ada/libgnarl/a-intnam__vxworks.ads
! ec42ffe644dad8028a77a4c9f0f2610a  gcc/ada/libgnarl/a-reatim.adb
! ed0da4a38655e18b1b85c17e5bc66546  gcc/ada/libgnarl/a-reatim.ads
! 6d90ae6dbbe24e85600e0062fd996ed8  gcc/ada/libgnarl/a-retide.adb
! 52647d598f1bdc921147a3f7495e212e  gcc/ada/libgnarl/a-retide.ads
! cab37f8d07409d3e2c6a028f302e408c  gcc/ada/libgnarl/a-rttiev.adb
! 27291136aa917068a7fa10ce8ed5240a  gcc/ada/libgnarl/a-rttiev.ads
  c04bb8934366f43faa60d914e7ebea7a  gcc/ada/libgnarl/a-stcoed.ads
! 529c7e1365bf53ca27f65f25a81873a9  gcc/ada/libgnarl/a-synbar.adb
! c7de77c7510353d8402229398ab4732d  gcc/ada/libgnarl/a-synbar.ads
! 63115a04cf05286342acbd209bcd6023  gcc/ada/libgnarl/a-synbar__posix.adb
! 35dcfb84e0889e705dcabef809f7a3af  gcc/ada/libgnarl/a-synbar__posix.ads
! 807bc78240ad3dbf4d951b40eafa2884  gcc/ada/libgnarl/a-sytaco.adb
! f529bd82a6ef690ec687761a95cb5a57  gcc/ada/libgnarl/a-sytaco.ads
! b8385e420703df78eee59514bfd6c1b5  gcc/ada/libgnarl/a-tasatt.adb
! 284bf55e53838ecb06f672328a2d2e4d  gcc/ada/libgnarl/a-tasatt.ads
! bdbb64dafe468189f62f2b06c36d3f76  gcc/ada/libgnarl/a-taside.adb
! f458204a3f5ee01f26f6845d2513f339  gcc/ada/libgnarl/a-taside.ads
! 3db615d67275379f4ac0976bb3f60c8b  gcc/ada/libgnarl/a-tasini.adb
! e11c77c3a10eb698055ad2c5c9614975  gcc/ada/libgnarl/a-tasini.ads
! eb420e0ab7265dc098f9013cdeed1186  gcc/ada/libgnarl/a-taster.adb
  281fc9a014bf9c5a3677f1dd38cc9d5d  gcc/ada/libgnarl/a-taster.ads
! 1776365ea585bca602df01db7864e592  gcc/ada/libgnarl/g-boubuf.adb
! e887c550586b3890d288e74e98a52d37  gcc/ada/libgnarl/g-boubuf.ads
! b7a6e3851903b33936e28d175aa44456  gcc/ada/libgnarl/g-boumai.ads
! a43b5e59b7f2578cfad9e53b316da308  gcc/ada/libgnarl/g-semaph.adb
! 7dcb6eb70efc6a6d2ef838dd55c7b309  gcc/ada/libgnarl/g-semaph.ads
! 332b7f40dbbf854191c34a4d9ea6b301  gcc/ada/libgnarl/g-signal.adb
! 3b70e9cfa1ed2f5c0c32962188dce507  gcc/ada/libgnarl/g-signal.ads
! 7869ac3db5c59c449a64d8f33063d881  gcc/ada/libgnarl/g-tastus.ads
! 4e0e4b82397a2d93fce46b4de6c7f232  gcc/ada/libgnarl/g-thread.adb
! 077fe00f4bd1ba587879da95e2bc2f7a  gcc/ada/libgnarl/g-thread.ads
  5cfb9f62dd9599caab03143b5745a967  gcc/ada/libgnarl/libgnarl.gpr
! 6f08b0fedbd0999dbeb411e1af2bacb5  gcc/ada/libgnarl/s-inmaop.ads
! 1293cb60db6508120e58d8d808fc1d39  gcc/ada/libgnarl/s-inmaop__dummy.adb
! ef07cef96a47e675b6dd5d87b0d5d30f  gcc/ada/libgnarl/s-inmaop__hwint.adb
! 16742e83e1952925d19b625c0e9b8423  gcc/ada/libgnarl/s-inmaop__posix.adb
! 74d42bad42a9d25f93cff765f42862fc  gcc/ada/libgnarl/s-interr.adb
! 7c224202424b916e0ee3f211e7e87be5  gcc/ada/libgnarl/s-interr.ads
! 44b3e58bc48f8c624ddb7da9140a2225  gcc/ada/libgnarl/s-interr__dummy.adb
! 424b0ef46d0d8b7cc90bd59bbdb4dd45  gcc/ada/libgnarl/s-interr__hwint.adb
! 4c67137e1df7d6430a9cb9af8610cd18  gcc/ada/libgnarl/s-interr__sigaction.adb
! 2ec2a2666f00ed09d67c294957a2fdb1  gcc/ada/libgnarl/s-interr__vxworks.adb
! 73611963744f5a78642317f1bb6d712f  gcc/ada/libgnarl/s-interr__vxworks.ads
! f76aee35d1eda9f7df9d001cc88b359e  gcc/ada/libgnarl/s-intman.ads
! a3c0b418087792cab0b2d56121e2937d  gcc/ada/libgnarl/s-intman__android.adb
! 4a0944913f78264a0f9e5a60037562ca  gcc/ada/libgnarl/s-intman__cheribsd.adb
! ec589b1570dcc6e4feed2b2462a036df  gcc/ada/libgnarl/s-intman__dummy.adb
! 7b56d84df2795a1baab7f55f90ed14e2  gcc/ada/libgnarl/s-intman__lynxos.adb
! 57a9fea168c55efc49f8d3f65875f3e3  gcc/ada/libgnarl/s-intman__mingw.adb
! c26c8bdf9f7f61d6e5a69b2300ae903e  gcc/ada/libgnarl/s-intman__posix.adb
! 749953baa1094debee39809d6c9c3e99  gcc/ada/libgnarl/s-intman__qnx.adb
! 33828bbdd2aeb066455b5061af43d748  gcc/ada/libgnarl/s-intman__rtems.adb
! ee27f3cf799219ac5bf9c343c1b98173  gcc/ada/libgnarl/s-intman__rtems.ads
! ade324265e8e73d345e4fda1c4c4b9f2  gcc/ada/libgnarl/s-intman__solaris.adb
! d0b8f1caa964aa6548ef9be8454b0d6f  gcc/ada/libgnarl/s-intman__susv3.adb
! af8737d1966e66aa567e73a24b38dd0a  gcc/ada/libgnarl/s-intman__vxworks.adb
! 90532d65563e231337c907fb0908d546  gcc/ada/libgnarl/s-intman__vxworks.ads
! d65f97b5f21f2d7ff76685b1625db1c7  gcc/ada/libgnarl/s-linux.ads
! a05d92626482a4866cd7b50f56bc73bc  gcc/ada/libgnarl/s-linux__alpha.ads
! c31b44ff8966a67477a6140b6c236fe4  gcc/ada/libgnarl/s-linux__android-aarch64.ads
! a608100b93135bc01681f9209387a3c5  gcc/ada/libgnarl/s-linux__android-arm.ads
! 03316c00dce651f107f6854acfcc5b03  gcc/ada/libgnarl/s-linux__hppa.ads
! bdfab3d0697525e10e5288082a5f549b  gcc/ada/libgnarl/s-linux__loongarch.ads
! ddf13c44b9238c70dcd10f3f4cb318a1  gcc/ada/libgnarl/s-linux__mips.ads
! 69645826bda7bac5e949bb559a5f4e15  gcc/ada/libgnarl/s-linux__riscv.ads
! a345794cd767efdd5a68e78a1ba94776  gcc/ada/libgnarl/s-linux__sparc.ads
! adbfa277dc8162e5cca010ebd43a6ebc  gcc/ada/libgnarl/s-mudido.adb
  d3d1bd17a6972764e499389c7f19f407  gcc/ada/libgnarl/s-mudido.ads
! 50224909a8399345cab31965c2106ed9  gcc/ada/libgnarl/s-mudido__affinity.adb
! 3674c24117d829a3cd0b2ca9eb40a954  gcc/ada/libgnarl/s-osinte__aix.adb
! 7d6f71e1caa887b6269b87f6af187cf3  gcc/ada/libgnarl/s-osinte__aix.ads
! 5b20e8a73a1f6d2df9ebb7f5a08ac0eb  gcc/ada/libgnarl/s-osinte__android.ads
! 831730caf0432e2d6855faaffbc4f9e0  gcc/ada/libgnarl/s-osinte__cheribsd.ads
! 9ade893025d168f3f6cde426be2bb4b5  gcc/ada/libgnarl/s-osinte__darwin.adb
! ed5b3cdfd5c31a58eb8ad1f8e4cb3170  gcc/ada/libgnarl/s-osinte__darwin.ads
! 187cc77557c3093e1b10c02cc942710d  gcc/ada/libgnarl/s-osinte__dragonfly.adb
! 6fee484af1661faa5f29be993e9023f7  gcc/ada/libgnarl/s-osinte__dragonfly.ads
! 35d7626bad11b21db1b4321ea844b462  gcc/ada/libgnarl/s-osinte__dummy.ads
! 2632976d755f092a05cba18776668a87  gcc/ada/libgnarl/s-osinte__freebsd.adb
! ed6cac15681788396211b01aa38c8977  gcc/ada/libgnarl/s-osinte__freebsd.ads
! c2d8bccd5011ddebf148fae092997d59  gcc/ada/libgnarl/s-osinte__gnu.adb
! cc3351f629843c625bc67546b976a500  gcc/ada/libgnarl/s-osinte__gnu.ads
! 24e133b19639592d6050034cb785f9a9  gcc/ada/libgnarl/s-osinte__hpux.ads
! 2103207a0c4395d1f2c51d4f83000dfc  gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
! 4544b666d6ef5bdceb11a9653c2e14a0  gcc/ada/libgnarl/s-osinte__linux.ads
! 73b368da19a3963ebdbac9c5bdfdcba8  gcc/ada/libgnarl/s-osinte__lynxos178.adb
! 3d158272be884efa53d5265d638416a9  gcc/ada/libgnarl/s-osinte__lynxos178e.ads
! b1212bb9e9265ea2df4c5588f70d5f77  gcc/ada/libgnarl/s-osinte__mingw.ads
! 42f2a7590b8a5a3d2f90a66e795c1284  gcc/ada/libgnarl/s-osinte__posix.adb
! 34e3a5bb6bbd97c3f9476fe21a60fc23  gcc/ada/libgnarl/s-osinte__qnx.adb
! f4b3842e0085b4078f685940844f1051  gcc/ada/libgnarl/s-osinte__qnx.ads
! 3ea94998d5ab6e4a71e8bb8636a54960  gcc/ada/libgnarl/s-osinte__rtems.adb
! f62cebdad4e2c02f6dbddd5ca3fae55f  gcc/ada/libgnarl/s-osinte__rtems.ads
! ac5bb009b3806b8730ad06d10cadc1a5  gcc/ada/libgnarl/s-osinte__solaris.adb
! 6a289b5dec0cf5373b690aa344524e20  gcc/ada/libgnarl/s-osinte__solaris.ads
! 2edc462fe0ce22c664d5452506b713ee  gcc/ada/libgnarl/s-osinte__vxworks.adb
! af41608d0ccce22aee512c985dda7d0b  gcc/ada/libgnarl/s-osinte__vxworks.ads
! 5c1ddac8eee3c0597685c589841bc38c  gcc/ada/libgnarl/s-proinf.adb
! 096e4de851fca1a4c610864ae400434f  gcc/ada/libgnarl/s-proinf.ads
! f914817ce619f6d284778515cdd991ad  gcc/ada/libgnarl/s-putaim.adb
! 9ffabe0256a15194f53ba8b7b09dcd07  gcc/ada/libgnarl/s-putaim.ads
! bc448684d7951615ccc5028506ddae23  gcc/ada/libgnarl/s-qnx.ads
! a39e7991dc023daeca81beb31c6cd1da  gcc/ada/libgnarl/s-solita.adb
! b306e2136b0f65171efc9fec0f65df06  gcc/ada/libgnarl/s-solita.ads
! 5f9491a7e3940040438b672ff38e3def  gcc/ada/libgnarl/s-stusta.adb
! 9f34d1b41e5c91494b0a9e3f2afd01fb  gcc/ada/libgnarl/s-stusta.ads
! 0103d34d3c09edb85bdf1700c0bdf57d  gcc/ada/libgnarl/s-taasde.adb
! b2c6db526f0b950c610fdc4e6d6233bc  gcc/ada/libgnarl/s-taasde.ads
! 1a6e1b274ac102bd53cefe2bd52bb219  gcc/ada/libgnarl/s-tadeca.adb
! fe645eb976280642961f7d7b872efc7d  gcc/ada/libgnarl/s-tadeca.ads
! 75523ac5358017de23816a5446a1ae0f  gcc/ada/libgnarl/s-tadert.adb
! b557e336ae05c9a53fb76c7611b40f29  gcc/ada/libgnarl/s-tadert.ads
! 8383d8459b1a762c5043e89a6b9ec223  gcc/ada/libgnarl/s-taenca.adb
! d5a855946029cf843628d84d65585d1b  gcc/ada/libgnarl/s-taenca.ads
! 51f9561958a5b566c246360f0b843811  gcc/ada/libgnarl/s-taprob.adb
! fd0cacd7f903e76ec37d1dda57015d18  gcc/ada/libgnarl/s-taprob.ads
! a6d9a68c7f08184a28658b0b039bc847  gcc/ada/libgnarl/s-taprop.ads
! 67eac18b7f2b3d946059723bf9022974  gcc/ada/libgnarl/s-taprop__dummy.adb
! eb10db8455dcc94c2084e0edb4dc3ea8  gcc/ada/libgnarl/s-taprop__linux.adb
! 1d1a434065b4d9e708bc389de1d012bb  gcc/ada/libgnarl/s-taprop__mingw.adb
! b9b140172112cad781ffc0671867e836  gcc/ada/libgnarl/s-taprop__posix.adb
! 8e0573c1f42947ac717ea85b8c1cfe0e  gcc/ada/libgnarl/s-taprop__qnx.adb
! 88401d991d281abe7fe8f6e9ba4c73d5  gcc/ada/libgnarl/s-taprop__rtems.adb
! 7ae3a552e6bbf71d255d599a2ab67a6e  gcc/ada/libgnarl/s-taprop__solaris.adb
! 3c4cbc3cae57043ac03e02fa27a0112c  gcc/ada/libgnarl/s-taprop__vxworks.adb
! 54fa8b500a8e9bf3a399e22a662f9c56  gcc/ada/libgnarl/s-tarest.adb
! b9d3c7807992dc8e289cbf7c3f567a39  gcc/ada/libgnarl/s-tarest.ads
! 23755c9f593d076c6d270de9a975b2cb  gcc/ada/libgnarl/s-tasdeb.adb
! e750fbccf8a224ecb4fb08bb6bc65ab2  gcc/ada/libgnarl/s-tasdeb.ads
! a29c83cd0fb60a80d46a85d54777aeb2  gcc/ada/libgnarl/s-tasinf.adb
! fcf428f4e8dc96afc913c73bb46b5faa  gcc/ada/libgnarl/s-tasinf.ads
! 4e2f67370d7b43402b286e120b888228  gcc/ada/libgnarl/s-tasinf__linux.adb
! 09db830085dd9327d1cf6d3b970e059d  gcc/ada/libgnarl/s-tasinf__linux.ads
! 8b0483dad3dfb3a8a72c453488da84ae  gcc/ada/libgnarl/s-tasinf__mingw.adb
! b0a42eb871fc247835cbff7b8de4301a  gcc/ada/libgnarl/s-tasinf__mingw.ads
! 26becfe5f6b989271e4cc9533b68b9db  gcc/ada/libgnarl/s-tasinf__solaris.adb
! b4b6350286b5a22514f1f5d6a92164dd  gcc/ada/libgnarl/s-tasinf__solaris.ads
! 6f6cca84a8ec0f9f13d518e843bacfcf  gcc/ada/libgnarl/s-tasinf__vxworks.ads
! beda7192eafac836726ba6bb76155f9a  gcc/ada/libgnarl/s-tasini.adb
! 194665624154b88c248309d55a6809cb  gcc/ada/libgnarl/s-tasini.ads
! 661c8e3bbdf124679f1624a82f96a2a1  gcc/ada/libgnarl/s-taskin.adb
! 1d9857970b1ad6863bfa5ea8501944ce  gcc/ada/libgnarl/s-taskin.ads
! 5787231137f84558462af190a840e0a6  gcc/ada/libgnarl/s-taspri__dummy.ads
! 59e44963a430bb6c95f64ef3eca6790b  gcc/ada/libgnarl/s-taspri__lynxos.ads
! e34f499df537b2a6c592f7d776eda0c0  gcc/ada/libgnarl/s-taspri__mingw.ads
! 2c3cc8b4a4fd52989461922f22702647  gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
! d3ce5d43134852441896f6fa0bd36c19  gcc/ada/libgnarl/s-taspri__posix.ads
! 02b9f5b2247c9cec15eb8b087c5917df  gcc/ada/libgnarl/s-taspri__solaris.ads
! 8d27c433f3baf6c3a8858b8941b0ac02  gcc/ada/libgnarl/s-taspri__vxworks.ads
! 2be71fa22812122a5c6f457137818808  gcc/ada/libgnarl/s-tasque.adb
! 0794967880b016d375d0cb5bbf86e829  gcc/ada/libgnarl/s-tasque.ads
! 8318cf5440e3d27db97842f420caad2b  gcc/ada/libgnarl/s-tasren.adb
! 0ec57cd6afa94a8727c41963073f8b52  gcc/ada/libgnarl/s-tasren.ads
! f7e3a78a12aa2b4ae9abd27b2fb76cab  gcc/ada/libgnarl/s-tasres.ads
! 0cdd37247fb5c713feed68b15d4246fd  gcc/ada/libgnarl/s-tassta.adb
! c28c512fdf8d8f6a5506c2bea6c1a61a  gcc/ada/libgnarl/s-tassta.ads
! 87b343a4e062784b82779702dcb85aa5  gcc/ada/libgnarl/s-tasuti.adb
! 67f1e8b5f9d18aa2a768135a0e0a439a  gcc/ada/libgnarl/s-tasuti.ads
! eebc75eca785d3f63d05db07275b22d8  gcc/ada/libgnarl/s-tataat.adb
! 4bc6a6454dd770e921adcedaa66aca20  gcc/ada/libgnarl/s-tataat.ads
! f416888f193c0bd4cc74e70f3a16d0cf  gcc/ada/libgnarl/s-tpinop.adb
! 4bf9c51e3b4a064b1a6ddb3c87d959cf  gcc/ada/libgnarl/s-tpinop.ads
! 6bf5ac6c7b4fb010b922ba450e518d59  gcc/ada/libgnarl/s-tpoaal.adb
! d1c7242ab7dc4f495d34126438a64d9e  gcc/ada/libgnarl/s-tpoben.adb
! aac56bb39b593941f08a7200c1bf8cce  gcc/ada/libgnarl/s-tpoben.ads
! e55020998275981443873864a798167c  gcc/ada/libgnarl/s-tpobmu.adb
! 0c3ca4c7d70e182115716b1e56e30582  gcc/ada/libgnarl/s-tpobmu.ads
! 2847e5ac7016a8580dec717fb00357e9  gcc/ada/libgnarl/s-tpobop.adb
! 9ea051863f0a57de1d23941f396d8fa7  gcc/ada/libgnarl/s-tpobop.ads
! 0573b9c6e16ca309efc606cb836b298b  gcc/ada/libgnarl/s-tpopmo.adb
! 799b26cc50db3db3e14c3d2d9ae8d583  gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
! 56031d1d0a44c02793196fbcbf314c5e  gcc/ada/libgnarl/s-tpopsp__posix.adb
! bb116db7a70cd3f0569082b0c571090f  gcc/ada/libgnarl/s-tpopsp__solaris.adb
! 11682873c0b42741519ecfac312525f0  gcc/ada/libgnarl/s-tpopsp__tls.adb
! ee5902ccbb2c1b260e8ceeda552b3bd7  gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
! a67c9b7186c314b64fd3bdc2b66d1fa3  gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
! 1b9138fae216b349ff0c1160161c9008  gcc/ada/libgnarl/s-tpopsp__vxworks.adb
! fe60d5af3ed3823a80a1ff1084edc060  gcc/ada/libgnarl/s-tporft.adb
! 661d62261a0d718f5d5cd9fb82644516  gcc/ada/libgnarl/s-tposen.adb
! c1184b8de87534144e326987060b3cfc  gcc/ada/libgnarl/s-tposen.ads
! 714840ab3856b25f3fada19463832d64  gcc/ada/libgnarl/s-tsgsba.adb
! b3830dfd269403090986bd12e41d62e9  gcc/ada/libgnarl/s-tsgsba__cheri.adb
! 87e5631ddc9c66c64b559fd920cc8dff  gcc/ada/libgnarl/s-vxwext.adb
! 11c1f2b9e1626d418beb0ae1e56c6c60  gcc/ada/libgnarl/s-vxwext.ads
! 255297c0dd0b4c206ebaad39ca290d2a  gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
! 072ad4a9cba105d7b6133d163d7d2dda  gcc/ada/libgnarl/s-vxwext__kernel.adb
! 8b029b8a35657d416d0ef6b6793df635  gcc/ada/libgnarl/s-vxwext__kernel.ads
! ab685cbc560b55345acf414edd6d751a  gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
! cad801fe03c5e97aeb998248369397d8  gcc/ada/libgnarl/s-vxwext__rtp.adb
! d68a5ab54c5966882a2bba1ccdb7f895  gcc/ada/libgnarl/s-vxwext__rtp.ads
! 42965125ed9324114b67b28570a875ac  gcc/ada/libgnarl/s-vxwork__aarch64.ads
! 1be5c36193187cb86fe34403950710e1  gcc/ada/libgnarl/s-vxwork__arm.ads
! 720196cfaa48a5c44ce27563b4f027ca  gcc/ada/libgnarl/s-vxwork__ppc.ads
! 81e1dc706e1b01b58135844cf2d01e35  gcc/ada/libgnarl/s-vxwork__x86.ads
! 72360906dfc2c4465e0b4e83daab0fc7  gcc/ada/libgnarl/thread.c
! ca954b5643c4698ea067eae64ba9b12e  gcc/ada/libgnat/a-assert.adb
! b48b43679c1cd6675056d965eed0ccad  gcc/ada/libgnat/a-assert.ads
! 52331e64487827fd35caa9ac9807b237  gcc/ada/libgnat/a-btgbso.adb
! d0c57cd81ce93ce0a38e0afd888684e3  gcc/ada/libgnat/a-btgbso.ads
! cab2ea4b51dabb3c6cbc633f7112230e  gcc/ada/libgnat/a-calari.adb
! de45287830ab446df243950edf6167cc  gcc/ada/libgnat/a-calari.ads
! 0115ba94fd1b75c9de196dea63ab2922  gcc/ada/libgnat/a-calcon.adb
! ed8488b1c86a1dd83ebf91b390806d8e  gcc/ada/libgnat/a-calcon.ads
! 4bd0df8a635783da8a3b23c59187d9c5  gcc/ada/libgnat/a-caldel.adb
! 2648be2ff60dc1ef436e96caf0512833  gcc/ada/libgnat/a-caldel.ads
! 08327352680f9579c6da8b5137c845e4  gcc/ada/libgnat/a-calend.adb
! d671d37383c2ca0fbc456a001cf8eaba  gcc/ada/libgnat/a-calend.ads
! 82c431d2b3e80e0776233a3226c452c2  gcc/ada/libgnat/a-calfor.adb
! c187e61d9b3c7977bd3411a95f0dd32a  gcc/ada/libgnat/a-calfor.ads
! dc9508e87c1dfa857b4d18edd3765940  gcc/ada/libgnat/a-catizo.adb
  d731f2a00c2328507e1708628b8f8534  gcc/ada/libgnat/a-catizo.ads
! c2894733b232a687f2f403674206c931  gcc/ada/libgnat/a-cbdlli.adb
! 8463995abc2c1cfd95139ad00849cf1e  gcc/ada/libgnat/a-cbdlli.ads
! aa8ee7a04e292a14d18da20ed5efb983  gcc/ada/libgnat/a-cbhama.adb
! 457b034b9c4584c13c18c5f2a233569e  gcc/ada/libgnat/a-cbhama.ads
! 165d3e530f0d803babc9616be10f5268  gcc/ada/libgnat/a-cbhase.adb
! 70c99263d65d2c51fbd0f81e9c9b1b51  gcc/ada/libgnat/a-cbhase.ads
! c41b1654d088600008e58adb41802071  gcc/ada/libgnat/a-cbinho.adb
! ed7f47c9a26fcdd4c58cad080f19cf05  gcc/ada/libgnat/a-cbinho.ads
! c838aeade3bfa5ba17350ceb65b09e00  gcc/ada/libgnat/a-cbmutr.adb
! d58f87c0492c3db9ca1a3678408eb206  gcc/ada/libgnat/a-cbmutr.ads
! e0e042465742f1131172fcf98583b8aa  gcc/ada/libgnat/a-cborma.adb
! d02e351d75ff14cc6682777890f44c20  gcc/ada/libgnat/a-cborma.ads
! 0e89670460295ee49587ae0d5e5f5c56  gcc/ada/libgnat/a-cborse.adb
! ad74079f3aac024bbd755e64e473e8f8  gcc/ada/libgnat/a-cborse.ads
! 0b9b23eea4e57073e85cc093709dcdb3  gcc/ada/libgnat/a-cbprqu.adb
! a2fc082288718415764cb231cd85f624  gcc/ada/libgnat/a-cbprqu.ads
! 50de3c8195d0191cfde6858f4bc46b41  gcc/ada/libgnat/a-cbsyqu.adb
! e089f1f3a6c484a185ab57789379ec2f  gcc/ada/libgnat/a-cbsyqu.ads
! 16925f460a96fb319b957db0c55cd6f2  gcc/ada/libgnat/a-cdlili.adb
! 798972050d96329d0d973ac1fa09952a  gcc/ada/libgnat/a-cdlili.ads
! 75f1d9e6710c0f08b8a863ae1c396bb6  gcc/ada/libgnat/a-cfdlli.ads
! 947f5f3823ba1efda849a7ce08598553  gcc/ada/libgnat/a-cfhama.ads
! 08308af1bab8749c0fc06312dd83eaff  gcc/ada/libgnat/a-cfhase.ads
! addefe7a1a7ffcbe0dace81457937c9d  gcc/ada/libgnat/a-cfidll.ads
! 378c9153a5b2d05ab6936e894d75f38d  gcc/ada/libgnat/a-cfinse.ads
! 7dd4f8e2bae147d04b8802352be1cba7  gcc/ada/libgnat/a-cfinve.ads
! 48b5b841a7076856ff6ebc33610f3236  gcc/ada/libgnat/a-cforma.ads
! 1d1b96b03fc149ca16a1486e57c58bda  gcc/ada/libgnat/a-cforse.ads
! 8f18f8a8e73a730428f480e20c0c5923  gcc/ada/libgnat/a-cgaaso.adb
! c90ad45452123b4e0884681c95c1e1e1  gcc/ada/libgnat/a-cgaaso.ads
! 39aa01958289b504ec392cab02734029  gcc/ada/libgnat/a-cgarso.adb
  ef7fab6c5e61256ac64c9dae1dd27960  gcc/ada/libgnat/a-cgarso.ads
! 7c6f8e38547e4cfbbf6766d3cafcb82a  gcc/ada/libgnat/a-cgcaso.adb
  68226484befc5e389cd3dafaab608090  gcc/ada/libgnat/a-cgcaso.ads
! 99e6ca97736825132f20663411de7b66  gcc/ada/libgnat/a-chacon.adb
! 4aa0273feed7e8f88e08ff3ddeb2067d  gcc/ada/libgnat/a-chacon.ads
! 47dca71a95e6e8e2c791029c7f8df51b  gcc/ada/libgnat/a-chahan.adb
! c1c77b6974cf5a92a11f998afdd2308b  gcc/ada/libgnat/a-chahan.ads
  00b37c98f6f96d2b5499c1f98cb503f0  gcc/ada/libgnat/a-charac.ads
  1e2a45aa2f9324faab423eb0f9a85a8e  gcc/ada/libgnat/a-chlat1.ads
! 8a78f0f7dc1560c3522dd8b2e1e058e0  gcc/ada/libgnat/a-chlat9.ads
! 5421eb2f57207a235822e8cae66f79cc  gcc/ada/libgnat/a-chtgbk.adb
! 3aae7f1c4eb24fe4734e3fd696d3e72f  gcc/ada/libgnat/a-chtgbk.ads
! d38e327e46fce9148825747672ef849b  gcc/ada/libgnat/a-chtgbo.adb
! 084dd5232c9e849619ce6d57e195dbc2  gcc/ada/libgnat/a-chtgbo.ads
! 79e62f959c6566c0735cfcc91e9d771c  gcc/ada/libgnat/a-chtgke.adb
! 57ede03cf4207896de93c8da0639cdc7  gcc/ada/libgnat/a-chtgke.ads
! 3b7649317ae9b6e276e4bbcff4b88fbc  gcc/ada/libgnat/a-chtgop.adb
! a226d4a997bad784b74dc0fef6555c6f  gcc/ada/libgnat/a-chtgop.ads
! 58b1011dafa6c700d6ebf4ad7100609c  gcc/ada/libgnat/a-chzla1.ads
! bcb26a273e21e8e14546d7cd3dd9872a  gcc/ada/libgnat/a-chzla9.ads
! 053324e63ebcbddc198c17942e020e82  gcc/ada/libgnat/a-cidlli.adb
! 26c211251747699cefa9381c7a1047dc  gcc/ada/libgnat/a-cidlli.ads
! 300d32bb6ee53f67874c9f79f5a335a8  gcc/ada/libgnat/a-cihama.adb
! e0d5cd44daebefacb8e5d0f54817e436  gcc/ada/libgnat/a-cihama.ads
! 303885f035e8f6066f73f2dd368ff35a  gcc/ada/libgnat/a-cihase.adb
! 951cbdfaa97aea3ea02613022c1fb841  gcc/ada/libgnat/a-cihase.ads
! ea976380a2a699b95f8480b0a4bb280e  gcc/ada/libgnat/a-cimutr.adb
! 77ee5f74691e4b18cc8145f0bfb71d7c  gcc/ada/libgnat/a-cimutr.ads
! 8775c9f7176d4c0d2993bafcbfce95b9  gcc/ada/libgnat/a-ciorma.adb
! f2d013ec88a02702a5212419488dd3bf  gcc/ada/libgnat/a-ciorma.ads
! f1e7c69cbb7f71c9bc3d41e44bd9fd2e  gcc/ada/libgnat/a-ciormu.adb
! bf6a59edba56b085cc6a44987aa534ef  gcc/ada/libgnat/a-ciormu.ads
! a6612a2f5797d9e417de8986e02a47e0  gcc/ada/libgnat/a-ciorse.adb
! 529e5e7cee83fecb49e1417f9d69d5fb  gcc/ada/libgnat/a-ciorse.ads
! f1683df36291b5cfaf5573018d5e26db  gcc/ada/libgnat/a-clrefi.adb
! a5636d8ce07753c1ff3beb069b608d55  gcc/ada/libgnat/a-clrefi.ads
! 1c484b5167326c72289135fa8b04d585  gcc/ada/libgnat/a-coboho.adb
! ff3edad94e865b55b7fc9a7c58141bb7  gcc/ada/libgnat/a-coboho.ads
! 412c989cddafa7688677e934434ae43f  gcc/ada/libgnat/a-cobove.adb
! 855a8febed432fd4c877d25127f51c0a  gcc/ada/libgnat/a-cobove.ads
! e66f867c00e127d1fc596f689ef223bb  gcc/ada/libgnat/a-cofove.ads
! af3863e73e53be5b67609acf105c3ebc  gcc/ada/libgnat/a-cofuma.ads
! c78e26fea5ec32fb5622ccbd65497a30  gcc/ada/libgnat/a-cofuse.ads
! a468a10ad64320f086adfd1196ac0b89  gcc/ada/libgnat/a-cofuve.ads
! 813752201c91ba76a37799a958c8c85c  gcc/ada/libgnat/a-cogeso.adb
! bb1f84bc251fa5cf85c5ba5c0956b472  gcc/ada/libgnat/a-cogeso.ads
! e22f2781b5f5e56fad527ed61de9971e  gcc/ada/libgnat/a-cohama.adb
! 641af821bbb87aacade0962a8ce8a026  gcc/ada/libgnat/a-cohama.ads
! 3c9317cdf77959910e21a740e5f458f0  gcc/ada/libgnat/a-cohase.adb
! da086ec2bdeb38421b5f0e3d89d521e8  gcc/ada/libgnat/a-cohase.ads
! 94fb89dd51f371816ced2d8f15910ea8  gcc/ada/libgnat/a-cohata.ads
! bdb8b2deeecaa46e6b8f6a5cb5afc782  gcc/ada/libgnat/a-coinho.adb
! 6154978dd19918f119d298a3d87c731f  gcc/ada/libgnat/a-coinho.ads
! 6f2e6a9abea6f61c723bc6397b734bf9  gcc/ada/libgnat/a-coinho__shared.adb
! f38e3e6229c64cc0b6684ffce45636d4  gcc/ada/libgnat/a-coinho__shared.ads
! d8d1eb29fb20543458da1c7ee1404d1c  gcc/ada/libgnat/a-coinve.adb
! 824238fb798fb719c2e5fee69fc43b07  gcc/ada/libgnat/a-coinve.ads
! 41d2589be19d9355551d979c5acb59fd  gcc/ada/libgnat/a-colien.adb
! 33834b505128cdb7c1d44c9a6ab5f80c  gcc/ada/libgnat/a-colien.ads
! 9fc2c79be4ec491cde7fadd6659ae71c  gcc/ada/libgnat/a-colire.adb
! 2bec65439f4190fb470c89cc5f4a1960  gcc/ada/libgnat/a-colire.ads
! 3397d98808ff592a84c2aac1dd608949  gcc/ada/libgnat/a-comlin.adb
! 5f9fc68e175bdf87ea9568c4562de91b  gcc/ada/libgnat/a-comlin.ads
! f308f877760b1681e67e12d77a110d67  gcc/ada/libgnat/a-comutr.adb
! 5d7f34cf163aa299b23e231faf74749c  gcc/ada/libgnat/a-comutr.ads
! 3f5f8173bfd4efdf08dc056eb39c565e  gcc/ada/libgnat/a-conhel.adb
! d7a72d53b40dea0629979a4a5673bc6d  gcc/ada/libgnat/a-conhel.ads
  38baf99435420fa514890cac49ee9242  gcc/ada/libgnat/a-contai.ads
! 50f946803dd1df19e329ecfd6eb5f192  gcc/ada/libgnat/a-convec.adb
! d27fdb0a2b6f07880a052ff281efef72  gcc/ada/libgnat/a-convec.ads
! 29fedb8dae688d59ba851aaa31924a63  gcc/ada/libgnat/a-coorma.adb
! cd348e9a430849e70a72edcd4882ffe3  gcc/ada/libgnat/a-coorma.ads
! 77809c5c8eb15122e827f4cca2793d05  gcc/ada/libgnat/a-coormu.adb
! c2f61f949c630c36e40b37494639c88f  gcc/ada/libgnat/a-coormu.ads
! a2091cc99aaaf3c0637cb43c08eba322  gcc/ada/libgnat/a-coorse.adb
! 60d189c848e614088d4017343fcd74c0  gcc/ada/libgnat/a-coorse.ads
! 46c7534bdf3e7fce4e2346b8b97b430a  gcc/ada/libgnat/a-coprnu.adb
! c7588473c734cb4dad564abd0f306398  gcc/ada/libgnat/a-coprnu.ads
! dc207d2fdaaacc9865321bd23804fef1  gcc/ada/libgnat/a-costso.adb
! 3c973d6ec361522b11a44b6bf2e8f973  gcc/ada/libgnat/a-costso.ads
  2399731eabd6e0bbc0a8f28a60d3c3c8  gcc/ada/libgnat/a-coteio.ads
! 738c65b944a3a1c5354154ec99615e85  gcc/ada/libgnat/a-crbltr.ads
! 6e48a0414cd945f950899be0485842e7  gcc/ada/libgnat/a-crbtgk.adb
! 17ea74085004ea2260bc9729819a6c6b  gcc/ada/libgnat/a-crbtgk.ads
! 5e7de5d4e880cf57aea6a7fa42092400  gcc/ada/libgnat/a-crbtgo.adb
! 2f8426aa6a1d3bf4ac273fe741afcda2  gcc/ada/libgnat/a-crbtgo.ads
! eaed1b987b24d70c150a619d22cb6139  gcc/ada/libgnat/a-crdlli.adb
! 740940ab0ac907ae226ea470c6e7f18f  gcc/ada/libgnat/a-crdlli.ads
! 068520cf003cf1294ba4389d6f266f78  gcc/ada/libgnat/a-csquin.ads
! c0c225a5fda87bd075a120be1e35139d  gcc/ada/libgnat/a-cuprqu.adb
! 98fb996293604564264e5fa9fdcf2c66  gcc/ada/libgnat/a-cuprqu.ads
! 241ebd15ec0786eb7fd54929f3b298b7  gcc/ada/libgnat/a-cusyqu.adb
! 127c6f77b315b0a4b58f05d5125a45a2  gcc/ada/libgnat/a-cusyqu.ads
! d6d598b9e6dacb37447ebed1b188b555  gcc/ada/libgnat/a-cwila1.ads
! 78be846403398c6b49227a85e067f67b  gcc/ada/libgnat/a-cwila9.ads
! 595ee7c487b4968df8e9cb50b57a943d  gcc/ada/libgnat/a-decima.adb
! 531be9d649cd047af8365706b6376416  gcc/ada/libgnat/a-decima.ads
! fc0fece6bd22c6bd770ea942cfc57209  gcc/ada/libgnat/a-decima__128.ads
! d4bf3bb0b025111b63e93583e4a5a5d0  gcc/ada/libgnat/a-dhfina.adb
! 431dfb4f1eb19ecac41243457481ef7a  gcc/ada/libgnat/a-dhfina.ads
! d5465c8b8ea60456084224fb76abe904  gcc/ada/libgnat/a-diocst.adb
! 2d52b5cd3d0d14b172682aa8310c6662  gcc/ada/libgnat/a-diocst.ads
! 82f5c18a04e8833e7748b663268ae7b9  gcc/ada/libgnat/a-direct.adb
! ba4ca09bb1f6149266050ca39a889fcb  gcc/ada/libgnat/a-direct.ads
! c35ed6cfc7340d3606eaa08311cecd3f  gcc/ada/libgnat/a-direio.adb
! 2edca36099811e80b8dcb7c6c6c63ee0  gcc/ada/libgnat/a-direio.ads
! ac78a7d0d57832c40b2ccdce487a1792  gcc/ada/libgnat/a-dirval.adb
! 76b64938502df9b7fa839cd3ad49b85d  gcc/ada/libgnat/a-dirval.ads
! cab9f2eea5f78188b0d89a4058b17776  gcc/ada/libgnat/a-dirval__mingw.adb
! 338653ae4e0e6cda3a9946b9652b4b2d  gcc/ada/libgnat/a-einuoc.adb
! fd465981fc8ac219bc5f4879b7239b96  gcc/ada/libgnat/a-einuoc.ads
! 36c21953208f737dcb9908abc30d1f78  gcc/ada/libgnat/a-elchha.adb
! 4c27fae9bc97b500886b203372235aa0  gcc/ada/libgnat/a-elchha.ads
! bba71931ff97426c8e30e3656d2d41c9  gcc/ada/libgnat/a-envvar.adb
  e77a221e76c3e19394bf433277f04c0f  gcc/ada/libgnat/a-envvar.ads
! e8e31db38d2b1bf4e5a1256e77e04b70  gcc/ada/libgnat/a-excach.adb
! 7d262c12bb38f120d10569eb8dfce4a3  gcc/ada/libgnat/a-except.adb
! cf471dc4a83b89cd1dba1b59dd3c5682  gcc/ada/libgnat/a-except.ads
! 421cf7c74c9855ff85279703f1552ae7  gcc/ada/libgnat/a-exctra.adb
! 32455f6dd367d922de341bb142339316  gcc/ada/libgnat/a-exctra.ads
! a028f7767c94df8996aec38def251a43  gcc/ada/libgnat/a-exexda.adb
! 501325951e7063a7c0d66b7e94e26676  gcc/ada/libgnat/a-exexpr.adb
! 1c1d8c99177412e39e93694c8587a40f  gcc/ada/libgnat/a-exextr.adb
! f3d60e48f17e31b481551ca34590644a  gcc/ada/libgnat/a-exstat.adb
! 7395d669658af5468b34cf3e6509f9c1  gcc/ada/libgnat/a-finali.adb
! 014b33b6f93604b89fa773cfee60ab36  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
*** 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
--- 1385,1417 ----
  d90ff1db87e7c9bf483659701a55671c  gcc/ada/libgnat/a-llltio.ads
  b8fcc586001cbdaddc04c29fc016fa48  gcc/ada/libgnat/a-lllwti.ads
  5faeef2817310c83968117416e0120b0  gcc/ada/libgnat/a-lllzti.ads
! 586518e20fe9eb570e3cd6e72ddfbf93  gcc/ada/libgnat/a-locale.adb
! e73cfdea1bd5a1d90e0c1e1fbc3eb8ac  gcc/ada/libgnat/a-locale.ads
! 50549ed9e88d59ca7aa9f89fb26e9b90  gcc/ada/libgnat/a-nagefl.ads
! ae1c0f283bb54ddeb46961e77660e1bf  gcc/ada/libgnat/a-naliop.ads
! ba11c6d53f5bdf8cf0598e7afad85b0b  gcc/ada/libgnat/a-naliop__nolibm.ads
! bb60b9f130276ce297e36850674f44dd  gcc/ada/libgnat/a-nallfl.ads
! 19cd8b2e141a52cc87519aba8ee9d066  gcc/ada/libgnat/a-nallfl__wraplf.ads
! a3b6c859bd229e3e554b93c95cc60b20  gcc/ada/libgnat/a-nalofl.ads
! aae2a9b659a5c8bc494ce16a3bdcd883  gcc/ada/libgnat/a-nalofl__simd.ads
! 949b5ece963dae4825ef409d642060a2  gcc/ada/libgnat/a-nashfl.ads
! 9d5399a34e2232df676927abb7f71728  gcc/ada/libgnat/a-nashfl__wraplf.ads
! 516954cdb431b0ba790555c6e40f8a4e  gcc/ada/libgnat/a-nbnbin.adb
  e570135fe58307ce95594d2d3e0b85df  gcc/ada/libgnat/a-nbnbin.ads
! 5d3a4f8777d3325087deaf38b47b77ff  gcc/ada/libgnat/a-nbnbin__gmp.adb
! 414bdbdfd82091f62313611666b9a567  gcc/ada/libgnat/a-nbnbre.adb
  454fc2632d21666120b10d84b2706b1b  gcc/ada/libgnat/a-nbnbre.ads
  f8a74f5169bf9eba09b0050d2ce025f4  gcc/ada/libgnat/a-ncelfu.ads
! 5931c45ddd8535bc8d561ef3a1293d4d  gcc/ada/libgnat/a-ngcefu.adb
  2e229d27b615410dbc242fd1d7d4bd98  gcc/ada/libgnat/a-ngcefu.ads
! 41e9e7199c676947ac33b6bc37ac4c6e  gcc/ada/libgnat/a-ngcoar.adb
  03d934454f8cbd5b382c05c95cd2a70a  gcc/ada/libgnat/a-ngcoar.ads
! bb2b42ef0b081687e852397fb3335fec  gcc/ada/libgnat/a-ngcoty.adb
! d7200dce127057f9992b76bc41715040  gcc/ada/libgnat/a-ngcoty.ads
! 597227e0515012aa629e66dae858ab83  gcc/ada/libgnat/a-ngelfu.adb
! 1801e3b85824008bcd48330b265a5f98  gcc/ada/libgnat/a-ngelfu.ads
! 6f9427d3335344d081edd48100016db7  gcc/ada/libgnat/a-ngrear.adb
! d8fe037ee338fc388979f3d02df3da17  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
*** 1418,5520 ****
  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
! 4d528424421585e18b2d22bdde89cb4b  gcc/ada/libgnat/s-dorepr__freebsd.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
! 629fa89b2e492e788b8414313fb8a0fd  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
! 251f6965bae5313f3f52222e273ce774  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
! 4ab25deb814c762e9dcbea9e3fbe4ac8  gcc/ada/sem_aggr.adb
! d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! 278b33ffab0157c51132dcd3fc0daa1b  gcc/ada/sem_attr.adb
! bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
! 4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
! 3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
! 1b4e45ef8df3f33dae9b6710ce3bbf7a  gcc/ada/sem_case.adb
! 88daa5c9b6e135316b52695cae25a496  gcc/ada/sem_case.ads
! 84667b3de209c0b04f82a349c6125ab0  gcc/ada/sem_cat.adb
! e364f4e3ae92066699cc93a8f7b828c1  gcc/ada/sem_cat.ads
! 53d4564d9d188f92bc3a52fb418d5826  gcc/ada/sem_ch10.adb
! 14c23ddb8ce8f7ab6478f3aff202d2bf  gcc/ada/sem_ch10.ads
! 5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
! 1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! 2d222d3bc572e8af20b4403ed4ac5534  gcc/ada/sem_ch12.adb
! b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! bdd184bdbe9fb946500215a918ba9014  gcc/ada/sem_ch13.adb
! 24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
! 14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
! 2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! d3ec59bf77afef2bc8177941d25fe6d5  gcc/ada/sem_ch3.adb
! 5fd10023b617fc61dce7c2801674285d  gcc/ada/sem_ch3.ads
! 3e54b6459faeeb42c9c8e748cfc81a3f  gcc/ada/sem_ch4.adb
! adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
! 3d2fb7e75bcf5cb7e2f014691fbc1d87  gcc/ada/sem_ch5.adb
! cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! 7992ecc42e8487f8cdb65f2d2b283a10  gcc/ada/sem_ch6.adb
! b514f7f350605ee2678b654f7eef9152  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
! 45cba132d9cd53167f05f4b521b24eb9  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
! 44710494391a9ea926e38cb81fa49fbf  gcc/ada/sem_prag.adb
! 3d4cec1697839c758bf4ee78035143d3  gcc/ada/sem_prag.ads
! 682159c8a517a990414691a040df1b40  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
! c1115e82e269d460e3f41dd81263544d  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
! a6f0ec0501cd3ab2cfca9b234e7042b1  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
! 602e5a3e4582230b3df902db3781e848  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
! 5e14ee86b0c0421dc648a56bf9f5e755  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
! 3508fa21f94580fa968e5f0996b93a23  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
! 2e944dea52dbc383e763e0585daa1b01  gcc/builtins.cc
! d86baafdac933140bc11c4cbfb28779e  gcc/builtins.def
! bd61b50b47560dc1324bf507bea5d87e  gcc/builtins.h
! 4942911cf91e722d99706644ba8c3c55  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
! a6dc12cd1ca1a323c5da92b33bea1b8d  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
! 55d0f9c58596bd3940bddd2a691af2ad  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
! 74f99d269b00bec80bf8cb8fedf92b1f  gcc/c/ChangeLog
! b1fc09d2244c8e8a72b4df9bc9af30d7  gcc/c/Make-lang.in
! f1e5593aebd5cffb4b3cbffe6bd0860a  gcc/c/c-aux-info.cc
! 178d24653bb20936d73bad078e70763c  gcc/c/c-convert.cc
! 8bf70b59fb3dc426c9608cd1fad229d9  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
! 8deedc954a73dc5f92b48f4cf8de9955  gcc/c/c-parser.cc
! 9c122bd6feb8ae4a94420c890e654801  gcc/c/c-parser.h
! 9179f46b6a06c7d734278f5ce2c55883  gcc/c/c-tree.def
! f7331ce09e3bb7374f8cebf0a2195d47  gcc/c/c-tree.h
! a4abfef3c16be194f41e6d476f37b3a1  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
! 9fbd223ce209d612cdc332efec0e75f9  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
! 9996689c7ae5fb1fa1363217697db9d6  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
! 3ab8af6bed1c2fb237681bbc3cb6aed0  gcc/cgraph.cc
! f875e225a02290cf7ed2e05c968f6c5d  gcc/cgraph.h
! 5fa2e94f261a8a6fc0d80b1c4b227d25  gcc/cgraphbuild.cc
! 0562ea4e5f8c7c62289a233a9c5b4268  gcc/cgraphclones.cc
! 3be8ee84d005d8a1f5a65ed6a7fce76a  gcc/cgraphunit.cc
! 70fa61377ff65ad3f25778a40159f510  gcc/cif-code.def
! c34034d7dfb097c181960ac975cfd92e  gcc/cobol/ChangeLog
! 38de2f3ba3eff58bbacc8dcdbdcd5be7  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
! ff81b8f0fee01c60af0d84e2b6e6c7e3  gcc/cobol/cbldiag.h
! 030342886cc720f11f17d7691f6f24ae  gcc/cobol/cdf-copy.cc
! 1968755c0e9082a289036e26de09438f  gcc/cobol/cdf.cc
! 6d1703fa9272ef4c0e3fe74eecbc5299  gcc/cobol/cdf.h
! b7033ccad4ae579d60141168fb904aa8  gcc/cobol/cdf.y
! b916ef498fa1cc9821e56ab612f00f3a  gcc/cobol/cdfval.h
! fb65c7259141f1223fa29175a2e441ed  gcc/cobol/cobol-system.h
! 700d96c955db2d85a4da3d00138a4e5a  gcc/cobol/cobol1.cc
! 5985e1898b04e553a91bdc474c56311f  gcc/cobol/config-lang.in
! aab9bcdb44bef72e1c3a8cd069bfcccd  gcc/cobol/convert.cc
! bdd6fbf13776c7983a16ac857615424c  gcc/cobol/copybook.h
  3f5a0424b32cd09b107e8858af9cf15f  gcc/cobol/dts.h
! 0cc42085479c01abae9b69fd39db26a8  gcc/cobol/except.cc
! 8208f264c49dfd56f856e8a4229545b9  gcc/cobol/exceptg.h
! 4e726128e0c090e4f3a71efddf5ffa8c  gcc/cobol/gcobc
! 14b121f37018fb2571c4e1ac8f69d0a1  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
! 73289d340c158475a9c0e203a69fd96c  gcc/cobol/gcobolspec.cc
! b12bab0fac0bbfdd1adf898b5db34869  gcc/cobol/genapi.cc
! 797fd59c29555ae478d4d0c1d889e9a7  gcc/cobol/genapi.h
! 711ffde98c30b53bd78b59663250da5e  gcc/cobol/gengen.cc
! e9232e498b04c68faa18eb31fabd8177  gcc/cobol/gengen.h
! c1182aa9280b379f0ba83879a6008ef7  gcc/cobol/genmath.cc
! d44e8c86d57fb704b6c1fbab3464fb9a  gcc/cobol/genmath.h
! 8f32919e6f61718b1db29fb4b9ae2ea1  gcc/cobol/genutil.cc
! 0bf535aa2c65d8348460ace042ee6b79  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 0fa33dbe050697f40b5e8df91896da9a  gcc/cobol/inspect.h
! 2c85ade938027e95c4c411b384f6ad11  gcc/cobol/lang-specs.h
! 4ab99742b15962360c2189eb9cdb087c  gcc/cobol/lang.opt
! 746a2d46b3bc2a5f5663a9d64a78a674  gcc/cobol/lang.opt.urls
! 7bab28df69a22be2ad0a8d95ec263e2d  gcc/cobol/lexio.cc
! 5953c820cdc03feb815bfbf28c10730c  gcc/cobol/lexio.h
! 961100519be6ee8b0671f0962eca0b8f  gcc/cobol/parse.cc
! 3c31b8f5d240f0a7d4d99e20befea27d  gcc/cobol/parse.h
! 474efac0104ac60ca10e8144f1dec9f5  gcc/cobol/parse.y
! 86fab272aa025f60db4c44ca52316ffe  gcc/cobol/parse_ante.h
! e141e23293fb343e7ccbaa2fe6bcef33  gcc/cobol/parse_util.h
! e542ddc9c1f97d9936d6ac6b8a1ae6ff  gcc/cobol/scan.cc
! 5867381ff3c4a77f01b91b925f3e9ce4  gcc/cobol/scan.l
! de93b808ce631b9d18f96b69bcbe4ac8  gcc/cobol/scan_ante.h
! 20dead6c32b0fb6b826220e76ae691a8  gcc/cobol/scan_post.h
! b1fcf3cab39d3874200f92620f2a54e9  gcc/cobol/show_parse.h
! d75653f25ec3b747265e4ab78aa71521  gcc/cobol/structs.cc
! be06e098e0c2eb8f8ac2f0094bf53181  gcc/cobol/structs.h
! e5ff9d25c23e0c5fd9a7d82589c83f27  gcc/cobol/symbols.cc
! 7fe837511da66531d20c3897e34bfa13  gcc/cobol/symbols.h
! de4928630bb37aa4064841c89cdf22a2  gcc/cobol/symfind.cc
! 27218e3639557e7e74246aa4982f089c  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! f8c49d8f30488259dcd321525a0bc201  gcc/cobol/util.cc
! ed3f467605b997678af9e5189497d41b  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
! b834ac8f2f7b5ad39cb3c24d5299c633  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
! b1dd83319f8b145674747f2ffc4814a9  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
! e5f14314b50c402188e9584b1eaa3965  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
! 8b59e9f9bf194c999ccfdbaf58382401  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
! 400cf23fe3c345ede58d2194530c6231  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
! d90362e92083076dd19c9edc16b0600a  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
! 16747170f39e921f5b1e160e947deb43  gcc/config/aarch64/aarch64-sve.md
! a16f9cae06244c0294eb2792a27ba07a  gcc/config/aarch64/aarch64-sve2.md
! 805529fa07916adcabb727f19ebd8dd2  gcc/config/aarch64/aarch64-sys-regs.def
! b301dc231a69a28202d2b7d79ea75f5d  gcc/config/aarch64/aarch64-tune.md
! 06480b67fa44a0b9fa7de2ed778a3df9  gcc/config/aarch64/aarch64-tuning-flags.def
! a2493e870eb12f5d646c24f2949e4cd3  gcc/config/aarch64/aarch64-vxworks.h
! 07893eeffa57c0900abac4a060662839  gcc/config/aarch64/aarch64.cc
! 4c2226a017b612867a61db1f7929ad43  gcc/config/aarch64/aarch64.h
! 411e1d3571eca6300daf26431a1f99c7  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
! dd76583202434d2161c8668396b95079  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
! 7384cb5a512d446afe4c8d5d99ac4735  gcc/config/aarch64/tuning_models/olympus.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
! b3ca9f45a06a55d9d56d54ca2f1064b8  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
! 606645cc0492fc19507b324c6e16713e  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
! 117bbef05f3fb7ba16a92cee51e0064c  gcc/config/avr/avr-mcus.def
! 1db4fe94056a22e92de33b6d365176c6  gcc/config/avr/avr-modes.def
! d37f092206fc4c0379cee5e5fc01b654  gcc/config/avr/avr-passes-fuse-move.h
! ce627f4de03a506a4263a68742891105  gcc/config/avr/avr-passes.cc
! 6b425f8df921557284017d42be8efc3c  gcc/config/avr/avr-passes.def
! faa9a440c205461733203401725ce58c  gcc/config/avr/avr-protos.h
! eb753641e5bf09dbcc2be97e61be8767  gcc/config/avr/avr-stdint.h
! f4b2e0ca9954dd6c1064849f3e485603  gcc/config/avr/avr.cc
! 08a0b2010b152c01b9bb5883c3d62b7f  gcc/config/avr/avr.h
! 3d964ad6aff7842114bb72be953b8364  gcc/config/avr/avr.md
! 01f3921785c44d9f7a522cba81a86fd0  gcc/config/avr/avr.opt
! 6010f6699565f81df0cf2aa3c7e89ba4  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
! 94f210dcd1179db695ab8f1ac5c83715  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
! 626e7ab2853e82361ba5fa0667ac3188  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
! 136661c3f00ab0e5caae3d0b17f4f399  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
! bc56596480d67d323c5d40302bce3fc8  gcc/config/i386/i386.cc
! 814201a3143f3d15ba0b897e34e3d459  gcc/config/i386/i386.h
! 78ebb2bf35b2a4cabbdff4ced1fbc4e1  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
! 232599d40a559d8953fbc4df86133936  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
! 8587a07756c99cb2fad4c72072c8e617  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
! 29d864447ea152baac4880e98ba5796f  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
! b74eced053703973adb776263950adbe  gcc/config/loongarch/lasx.md
! 64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
! a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
! ac0512e8b259ed63d386edaa0457a5ad  gcc/config/loongarch/loongarch-builtins.cc
! 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
! a9f0b7daa0d8e187bc6fc58f0b97baab  gcc/config/loongarch/loongarch.cc
! cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
! 9fd9109f20f7dfce6de910d45b5dbc85  gcc/config/loongarch/loongarch.md
! bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
! 264f23ee79258ff82bda293d093dd06b  gcc/config/loongarch/loongarch.opt.urls
! a1ceaab52de5f1950f6c6b63c5a718ea  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
! b6ebd6ba65f7755a82057ecdf931d5aa  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
! b1ffdd4690cb74e143cc97fff50b8aa2  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
! ddd6087651a73d039e839dcd0722283c  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
! 0eea18c51a73946711e7c25a61515f3f  gcc/config/nvptx/mkoffload.cc
! 5bdd02ea89901317102b35ecc453fb67  gcc/config/nvptx/nvptx-c.cc
! c3a62cd55d11c3d62d77946f40fa616a  gcc/config/nvptx/nvptx-gen.h
! 562c1684f8b31591ceaad426aade9a27  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! dee36f7421044be0b935f6af7f99d925  gcc/config/nvptx/nvptx-opts.h
! 1f3aa1665145f0388933dc9ee8296ad2  gcc/config/nvptx/nvptx-protos.h
! baa310414bc4fbed87b67a42c0a547cc  gcc/config/nvptx/nvptx-sm.def
! 5b6e6a31635c60f72ac369529bbbc40b  gcc/config/nvptx/nvptx.cc
! d0e846d8e5d86b55f946852f2529639f  gcc/config/nvptx/nvptx.h
! 787ea1be2367cf809e1f013766e965cd  gcc/config/nvptx/nvptx.md
! 20cbac6e3f6e6deeb540b78ec54a413a  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
! 1b5bf211ae4f1c676fc56b08b23e7d66  gcc/config/riscv/bitmanip.md
! 41ad36f502789bcb62ddd76fa56ba00d  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
! fd976e9dd7410889959b27b332b33e1b  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
! f7ba2198fd37168868f4010a0de34bab  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
! 959f9025a3246cbc8914e965e8965b76  gcc/config/riscv/riscv.cc
! 1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! 4454024804f9347267bff50e57227934  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
! b24091b318c53548bc2b7d90f6505e4e  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
! b12290304c608ee478673c8dece8548e  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
! 4cc3187327abfd8d4411757ee6d5ca64  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
  83f08d69839ac4c7dc87a99be6c69a2b  gcc/config/vxworks/_yvals.h
  9e122a12d3e14f20967d135228bf88dc  gcc/config/vxworks/complex.h
  49b7fa25b0fb42a6ae7a81eddfed84cf  gcc/config/vxworks/inttypes.h
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
! e8eef5870ca1f50784d7ccedc98d709d  gcc/config/vxworks/vxworks-predef.h
! 32caad465ff4d16a65330246fb72e452  gcc/config/vxworksae.h
! 114e66bfd8aaf38be7eb032da92299c1  gcc/config/winnt-c.cc
! d21f09c47f24bd26a51424057a3b5e34  gcc/config/winnt-rust.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
  27f861c423e98f281006be5bd86283ef  gcc/config/x-linux
  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
! 468aeec2eebeba1061204d4007734622  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 1425,5666 ----
  ed8c8d1cff975d8128d8a34e6fa60333  gcc/ada/libgnat/a-nscefu.ads
  ae6657265a333ec061d886c2e0a9be47  gcc/ada/libgnat/a-nscoty.ads
  c7bddd6abb488c8cd0d9982769254df5  gcc/ada/libgnat/a-nselfu.ads
! fbba28659cb5ee8e283111d6e9b8a9e1  gcc/ada/libgnat/a-nuauco.ads
! 3c35ed5abc9076f83f6b5bee7bbcdff8  gcc/ada/libgnat/a-nuauco__x86.ads
! 6e849e81928974291a185133c69fef47  gcc/ada/libgnat/a-nuaufl.ads
! ef4ed6a4ee7a1c3e6078dab366067b9b  gcc/ada/libgnat/a-nuaufl__simd.ads
! 56f0fe60c94ee95450e158e4e3bdb118  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
! f650874fb4f7353351f3d3a54065acef  gcc/ada/libgnat/a-nudira.adb
! 2506ea800263ab34593b3036ec8c6072  gcc/ada/libgnat/a-nudira.ads
  bd9eed0e40585ba218b0badca225b64c  gcc/ada/libgnat/a-nuelfu.ads
! d2dde5e60fc7fa9cfa360e0dbe4f3bc2  gcc/ada/libgnat/a-nuflra.adb
! d8fdc860fe80d1c2ad64052b80f41ad9  gcc/ada/libgnat/a-nuflra.ads
! 18c5c6f27bf2b9ed5d05e01f664fd39b  gcc/ada/libgnat/a-numaux.ads
  086b7e7e6872b523fe97b68aeaf03e1d  gcc/ada/libgnat/a-numeri.ads
  88b948f6713b009c76e8b3b7b75a22c9  gcc/ada/libgnat/a-nurear.ads
! ca19503674c387c56d28066a4e96d443  gcc/ada/libgnat/a-rbtgbk.adb
! d408ff203ce90259bef39d649ac121e0  gcc/ada/libgnat/a-rbtgbk.ads
! 3deec2f979cfcacefd85061ddbb2b213  gcc/ada/libgnat/a-rbtgbo.adb
! 1b9c1427310cf09b672ca469b8b57acf  gcc/ada/libgnat/a-rbtgbo.ads
! a032f08e6e470fe6219635f0d2b35003  gcc/ada/libgnat/a-rbtgso.adb
! fbde746c5a2eefccd9b51aa6cb39cecd  gcc/ada/libgnat/a-rbtgso.ads
! 81240ca593d01604400238b9fbbbb714  gcc/ada/libgnat/a-sbecin.adb
! 38d5aeea5d499660b7a327277efbda19  gcc/ada/libgnat/a-sbecin.ads
! 99a43705a1345b17b1eed5e998eb3392  gcc/ada/libgnat/a-sbhcin.adb
! 1e1a634a787a2e83267387e7a912cf90  gcc/ada/libgnat/a-sbhcin.ads
! f70fe7c7df21f964c9ff58318bd5b2a2  gcc/ada/libgnat/a-sblcin.adb
! 9e2dd88340d894c75f11ed41c0e36d27  gcc/ada/libgnat/a-sblcin.ads
  67b280f23d76be962783b397ef7e60c7  gcc/ada/libgnat/a-scteio.ads
! dbc5818c55be93bbf0864a2d2a6fbf0a  gcc/ada/libgnat/a-secain.adb
! 7a26edcbcc337b5cd1800e750c10536b  gcc/ada/libgnat/a-secain.ads
! 63499d80b64179884adc6c393a6c9bf0  gcc/ada/libgnat/a-sequio.adb
! e5121ae5be88ecae9bb707b1f92a7c1e  gcc/ada/libgnat/a-sequio.ads
! dc9897211fb625c3502bf885ff724089  gcc/ada/libgnat/a-sfecin.ads
! 26492f9a792f94cf0d248e2f90bcd7f2  gcc/ada/libgnat/a-sfhcin.ads
! 187a0ca2fce03902ef73c1c9340fca09  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
! 348c5284efb99b2281b34c4dadb1fe10  gcc/ada/libgnat/a-shcain.adb
! acfd520fda001de11e0c4d4a1c0cc36b  gcc/ada/libgnat/a-shcain.ads
! 5e479f763482173520a9308dbcd6e1e7  gcc/ada/libgnat/a-siocst.adb
! 87114786852b3d722ae8f98901838d88  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
! 4c645d32967570ca91ea3716b2d1c4ce  gcc/ada/libgnat/a-slcain.adb
! 09da5c805d2eb72764337a3d61948b5f  gcc/ada/libgnat/a-slcain.ads
! 7f961d35e940a97291ef5dee9c5e6f34  gcc/ada/libgnat/a-ssicst.adb
! 3887afdc2804a1812a3d4659f27c1223  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
! 4911a63759ccb7e25a48c420a423bfde  gcc/ada/libgnat/a-stboha.adb
  8274f77970c3b1ed9a51aa8ddf6a4d0f  gcc/ada/libgnat/a-stboha.ads
! d2192ee57ad48d1a77ab462f870ac74e  gcc/ada/libgnat/a-stbubo.adb
! 04d73b6692411730af91b567057cc522  gcc/ada/libgnat/a-stbubo.ads
! 1d0a2aebaa00a2cceff8f583de866d2d  gcc/ada/libgnat/a-stbufi.adb
! 8e83cfd5b0730c9bbcfa607c7dce5ab0  gcc/ada/libgnat/a-stbufi.ads
! dadfe22ebc330edcc0506576925d50ec  gcc/ada/libgnat/a-stbufo.adb
! 92324f64ae6de6ba5997b150f1bf8fcf  gcc/ada/libgnat/a-stbufo.ads
! a55e8ca69de0116530b08e2a4d6835a7  gcc/ada/libgnat/a-stbuun.adb
  1e900014d9809db78ef32d2e97e1531b  gcc/ada/libgnat/a-stbuun.ads
! 9b5f14ab89d92fbb887096bc07923f5d  gcc/ada/libgnat/a-stbuut.adb
! 52e0c7a2b93f853a2a51aa8ccd6cd2ba  gcc/ada/libgnat/a-stbuut.ads
  756f44b0c7f4483ecd7302aee8bc110a  gcc/ada/libgnat/a-stfiha.ads
! d080ff3c0c98ddaf37cbb14e5b134b2a  gcc/ada/libgnat/a-stmaco.ads
! e57f6a603e91a681b846e3c411ce1a0b  gcc/ada/libgnat/a-storio.adb
  34175bb2f712422ab4cfd24b3e452b0d  gcc/ada/libgnat/a-storio.ads
! ea617affb8df24a7c1c2499ebcfcf997  gcc/ada/libgnat/a-strbou.adb
! 96fb5952b7df45dd3b01e7bf9aeacea7  gcc/ada/libgnat/a-strbou.ads
! 93639a7ca23a545bb89dbfc8de40107c  gcc/ada/libgnat/a-stream.adb
! 002bcb67b50a89bad38c65d7ab2e14fe  gcc/ada/libgnat/a-stream.ads
! 82babaa99a3ca29c6f13a10d57682093  gcc/ada/libgnat/a-strfix.adb
  772900c294bfa8ad09079e6ddbef7ae9  gcc/ada/libgnat/a-strfix.ads
! 7c41a033fa7dbc1bf06260369d367461  gcc/ada/libgnat/a-strhas.adb
  b0a210089b94e668314dbcff62c4c997  gcc/ada/libgnat/a-strhas.ads
  de0f93afe5feaf6819d5a9a2e09172e6  gcc/ada/libgnat/a-string.ads
! b17490246838cb099828eab622098d2c  gcc/ada/libgnat/a-strmap.adb
! 8577cb8d1daf2e778140a8e17428c7f2  gcc/ada/libgnat/a-strmap.ads
! ae7b0c41cba0fd183fcd89dc52fc441a  gcc/ada/libgnat/a-strsea.adb
! 797dc6875a7fed51027d0251b1e8a0a0  gcc/ada/libgnat/a-strsea.ads
! 6ed51587ce014cbdcf6b73bb77379b59  gcc/ada/libgnat/a-strsto.ads
! c72ee70f587c2579a8b6efa1662c4f0a  gcc/ada/libgnat/a-strsup.adb
! 4e80f3851d719b8b32384285ca4d42f3  gcc/ada/libgnat/a-strsup.ads
! 5d27c2e66fbf34b336185fe720b3ea05  gcc/ada/libgnat/a-strunb.adb
! 8927f8c2c59c7cdd44432d8d5dda413a  gcc/ada/libgnat/a-strunb.ads
! f6367b4c17c96a320f6416c86b9e934b  gcc/ada/libgnat/a-strunb__shared.adb
! 14979f3002a871a85a5bca85058cf9bc  gcc/ada/libgnat/a-strunb__shared.ads
! 074d8f761e07486bc7d7760d44f303b9  gcc/ada/libgnat/a-ststbo.adb
! f82ecae4a7f7cd9126d14e3b7522d6fc  gcc/ada/libgnat/a-ststbo.ads
! 1e5ea9850950ad5dca0863a75b311650  gcc/ada/libgnat/a-ststio.adb
! c2b509e23833dc26c30c495a5b35d11f  gcc/ada/libgnat/a-ststio.ads
! a87a0278c66237d29ebb37037b6926ce  gcc/ada/libgnat/a-ststun.adb
! 7d009fe92fc9447980090f522c5e3a2c  gcc/ada/libgnat/a-ststun.ads
! f4c7a3d0d756f9c67c60e5e50045722d  gcc/ada/libgnat/a-sttebu.adb
  3c26fa3924701bf0fb31cc7ce9580ec6  gcc/ada/libgnat/a-sttebu.ads
! f76a64c89014e23ff2d36b9443b0b9ef  gcc/ada/libgnat/a-stunau.adb
! 0827100cd410a8969c5e5b9e9e5c5896  gcc/ada/libgnat/a-stunau.ads
! 34c3d8fa8a26a504fc929908247e2791  gcc/ada/libgnat/a-stunau__shared.adb
! 00868804553a119944fa57c656345b48  gcc/ada/libgnat/a-stunha.adb
  da4a8d13f76850d714a8213ada7477d2  gcc/ada/libgnat/a-stunha.ads
! 012ae7cdeb2b1c78b6a5730913abfcb0  gcc/ada/libgnat/a-stuten.adb
  0f5fe8e890a5c8c46160b756ee5500f3  gcc/ada/libgnat/a-stuten.ads
! 182b7ef7214ce641382e7060e65d65dc  gcc/ada/libgnat/a-stwibo.adb
! 7ff92a2bb2f7d31fff12873069e8cdda  gcc/ada/libgnat/a-stwibo.ads
! 7379981ddd866a6e38689f3d4d262619  gcc/ada/libgnat/a-stwifi.adb
  b0cf3f05e49e1640bf231034269cb951  gcc/ada/libgnat/a-stwifi.ads
! ad1de1f5690ed7b949b3d05e3523d8a3  gcc/ada/libgnat/a-stwiha.adb
  3255ad19d07346032c9d005d6a27475f  gcc/ada/libgnat/a-stwiha.ads
! da8b4ec3ca1271e9061244eb2a23f16c  gcc/ada/libgnat/a-stwima.adb
! d77a4e13834b308fcdf1253bca140350  gcc/ada/libgnat/a-stwima.ads
! 7d70c0215a59395a44db6acb90a7f4aa  gcc/ada/libgnat/a-stwise.adb
! 0b209c939d813d361f93c5b785f22389  gcc/ada/libgnat/a-stwise.ads
! 787cfa5f7637ab69ca66105540ca0ad5  gcc/ada/libgnat/a-stwisu.adb
! aa2cd83f78c80af90b84ebe3553c1c7c  gcc/ada/libgnat/a-stwisu.ads
! c0ec3ba231adc7847843889a85517ea4  gcc/ada/libgnat/a-stwiun.adb
! c3594b4920aae86e22290c47c1cd065a  gcc/ada/libgnat/a-stwiun.ads
! 9f77753369e0398bd2e86064b9d58506  gcc/ada/libgnat/a-stwiun__shared.adb
! 6ad7746fc4dda7a93db7409fb54284c4  gcc/ada/libgnat/a-stwiun__shared.ads
! 18a4dac80a22bea3bfa15084a30163de  gcc/ada/libgnat/a-stzbou.adb
! 27ea5361a4eb54bd9749e757c668fb89  gcc/ada/libgnat/a-stzbou.ads
! 3839915098c4a8bfbd98078975f0fbde  gcc/ada/libgnat/a-stzfix.adb
  f3ddc25c20b07c4072918c6c0ea20ff9  gcc/ada/libgnat/a-stzfix.ads
! fcd1d8fc820a254e2600f30794e5ca2d  gcc/ada/libgnat/a-stzhas.adb
  41c71febbb354000bccca4ccd3a59c54  gcc/ada/libgnat/a-stzhas.ads
! f72fbb7f663b15a49943c7c0b2cb1ded  gcc/ada/libgnat/a-stzmap.adb
! b56012582ec217c2653fd77f32b928b5  gcc/ada/libgnat/a-stzmap.ads
! 6fdd2887246b03267ea050c47a4842a3  gcc/ada/libgnat/a-stzsea.adb
! 4cdcc24c1e6dc2d45e35fbd837f61018  gcc/ada/libgnat/a-stzsea.ads
! fea63f0e6d1b1db917cb7e96cd814860  gcc/ada/libgnat/a-stzsup.adb
! 4fccf5fe19aa667fca4ab4b00199d316  gcc/ada/libgnat/a-stzsup.ads
! 71da920951c1f000d5bea8acff38d165  gcc/ada/libgnat/a-stzunb.adb
! 964ff239f43274018284e57509f7d2f1  gcc/ada/libgnat/a-stzunb.ads
! 1da8bc7cb61447fb0fb2b5e5043d55f7  gcc/ada/libgnat/a-stzunb__shared.adb
! 927837e686ac75668a6feb9078a47ba6  gcc/ada/libgnat/a-stzunb__shared.ads
! 6adebe685c18087023cf46f0bbd2dfda  gcc/ada/libgnat/a-suecin.adb
! c672ebd601e0b7bf6158124aaff82c3b  gcc/ada/libgnat/a-suecin.ads
! 9f34d9d9471ac131bb6150bb08871175  gcc/ada/libgnat/a-suenco.adb
  24c625ef90e191bc1baa69c58ae2600f  gcc/ada/libgnat/a-suenco.ads
! 7dcfd04ee223de76491809e49da78b22  gcc/ada/libgnat/a-suenst.adb
  5a81ae9196b241db71c16198169dbed7  gcc/ada/libgnat/a-suenst.ads
! a6bfd3e2dcf44ac07ef8eb10e3ad0a06  gcc/ada/libgnat/a-suewst.adb
  88073629f5531c7f6fba98820112cd02  gcc/ada/libgnat/a-suewst.ads
! eee9dea4ea97db7dc68254fc1dae07ae  gcc/ada/libgnat/a-suezst.adb
  5aaf32a65e951f050f1cbb5adf5af9d2  gcc/ada/libgnat/a-suezst.ads
! 7718a08a11d0997da1f3632d96b97b11  gcc/ada/libgnat/a-suhcin.adb
! 0eb63c8a93525f4da46ab971314345eb  gcc/ada/libgnat/a-suhcin.ads
! 78a44fe3a74cc0fbb9c74153fa6f93dd  gcc/ada/libgnat/a-sulcin.adb
! e2f59cde2693bd36c8272a5391af2b5d  gcc/ada/libgnat/a-sulcin.ads
! 8d6a0275199c8f219d1126f79867ebcb  gcc/ada/libgnat/a-suteio.adb
! 242a4a363e155c299fecd75bb21c4248  gcc/ada/libgnat/a-suteio.ads
! d975c80b49eec5142c1f351520491cf6  gcc/ada/libgnat/a-suteio__shared.adb
! cf4046aa085b674a63a0b717c37ea0dc  gcc/ada/libgnat/a-swbwha.adb
  65f3f68c6718760b4c2b0beba2af9f82  gcc/ada/libgnat/a-swbwha.ads
  aaf273ef9a113dedcab8fb87b71b7365  gcc/ada/libgnat/a-swfwha.ads
! d262329a73f033e28e1bc2957196f0d8  gcc/ada/libgnat/a-swmwco.ads
! 2e2614917cc1bb9daee587336d315217  gcc/ada/libgnat/a-swunau.adb
! c39c29bfc9b99f40fee2c16f6ce98b25  gcc/ada/libgnat/a-swunau.ads
! c426d505b39c6b63af91822d850770b8  gcc/ada/libgnat/a-swunau__shared.adb
! 638d2c88a6b2f38ac4d15eed7f59a5e1  gcc/ada/libgnat/a-swuwha.adb
  45d76b5b911889e181b3717ab6c91651  gcc/ada/libgnat/a-swuwha.ads
! 4d27d8dd20c7b0854422d5b91a8f7e95  gcc/ada/libgnat/a-swuwti.adb
! 310c3f34da7db95ded97f481b30c9cb0  gcc/ada/libgnat/a-swuwti.ads
! c4c82abff1dd8f6604582844f0db30a9  gcc/ada/libgnat/a-swuwti__shared.adb
! 27fc51f81da67137eb53073872816d20  gcc/ada/libgnat/a-szbzha.adb
  18b9cf476495930cec4ac3eb881257db  gcc/ada/libgnat/a-szbzha.ads
  32bb3b01e46ff7648c862537bd77aa0d  gcc/ada/libgnat/a-szfzha.ads
! 119af0fc6b91d76d38d60d259954e1ad  gcc/ada/libgnat/a-szmzco.ads
! 78ca0e4338f625d359d73afb117553ae  gcc/ada/libgnat/a-szunau.adb
! 661276f92ab272286eaf04b5164a290c  gcc/ada/libgnat/a-szunau.ads
! 7c0959a8fef239ec37a095440d4dd89b  gcc/ada/libgnat/a-szunau__shared.adb
! 504009b9a70c3a6e65c05ddea974281e  gcc/ada/libgnat/a-szuzha.adb
  01cf107c9e66d7e5284c9b7ce2e2ed7e  gcc/ada/libgnat/a-szuzha.ads
! 0e8a77035d38055d3b04b8bbd17afe06  gcc/ada/libgnat/a-szuzti.adb
! 7a86f567c895fd1c9ba9bf2fca77811d  gcc/ada/libgnat/a-szuzti.ads
! 1c8985852a877b54b12673194e44e781  gcc/ada/libgnat/a-szuzti__shared.adb
! 649c1ba13e76ae5b270ac6e40b5c72fe  gcc/ada/libgnat/a-tags.adb
! 9c786b984bf0145479e5a8e011a5b611  gcc/ada/libgnat/a-tags.ads
! 18a4c6eaf4a71398b19427182b133eca  gcc/ada/libgnat/a-teioed.adb
! 557f2e82df4e73bea0ee43f6a2d6fbf6  gcc/ada/libgnat/a-teioed.ads
! 2a0ae500a53b6a6c97a57ecff16ffbed  gcc/ada/libgnat/a-textio.adb
! 8ab0eabbc4678cba0583a700698d0847  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
! fb39064662a6ab88ec4192b4d6340afd  gcc/ada/libgnat/a-tiboio.adb
  7b163db9f1467e9392f347bee1400136  gcc/ada/libgnat/a-tiboio.ads
! f318ddccdbdaa653558e7b6e74029340  gcc/ada/libgnat/a-ticoau.adb
! 04a081c9b9e0bdab7a96093fd1a4ecea  gcc/ada/libgnat/a-ticoau.ads
! 2feaf32b42a9a455d1a905046c593aa2  gcc/ada/libgnat/a-ticoio.adb
! eeac6425859330610cc85c86c7a685d9  gcc/ada/libgnat/a-ticoio.ads
! 8997d88bb8070787505aba646afda721  gcc/ada/libgnat/a-tideau.adb
! ea9721c21e7554759053e882fe3d021f  gcc/ada/libgnat/a-tideau.ads
! 1c82370cbb1b96f2aa07adcddb070a91  gcc/ada/libgnat/a-tideio.adb
! f6e19e3c478b2a6ac8a05a32e893a291  gcc/ada/libgnat/a-tideio.ads
! f00c9aea722ba8d319da2a510b8e360b  gcc/ada/libgnat/a-tideio__128.adb
! cb181a1bf20874c856883990dd057023  gcc/ada/libgnat/a-tienau.adb
! e500faf8083a7c14a11ffe65d43e100f  gcc/ada/libgnat/a-tienau.ads
! 3def7775ccf5036ab6d5ffe156fa3fca  gcc/ada/libgnat/a-tienio.adb
  4f45fb79824b66021fe483d1b210e8c9  gcc/ada/libgnat/a-tienio.ads
! 0e7fb3e7687efd8e60840642742a704f  gcc/ada/libgnat/a-tifiau.adb
! 6315a71a285c6f598bad01087abbb405  gcc/ada/libgnat/a-tifiau.ads
! e6c1e9ff0f351488fadcaef1b131cdb2  gcc/ada/libgnat/a-tifiio.adb
  c16ad9374e832bfec80cdb19f8afaa99  gcc/ada/libgnat/a-tifiio.ads
! f6238ffbc9c31592dfe812419a5185a3  gcc/ada/libgnat/a-tifiio__128.adb
! 8dde612fac17088e7f69cd9eafa0eec3  gcc/ada/libgnat/a-tiflau.adb
! ccca44b99142b7a43e5fcc861dd093b2  gcc/ada/libgnat/a-tiflau.ads
! 3725e26482badedd983c85ac51f55107  gcc/ada/libgnat/a-tiflio.adb
! bbf06b2669cee894b912b09ca558f9c6  gcc/ada/libgnat/a-tiflio.ads
! 2e2af5517cab622fc6bc0a07fc63af3d  gcc/ada/libgnat/a-tigeau.adb
! 84d71b434767d7d7603ac9c8c15b9e09  gcc/ada/libgnat/a-tigeau.ads
! db85c94f6f059fe30123eb118f60c3a2  gcc/ada/libgnat/a-tigeli.adb
! c75cb7f8c5081cc87d25823b9057cecc  gcc/ada/libgnat/a-tiinau.adb
! 6edea5601b429b0ddfa3fcdbbfbb270a  gcc/ada/libgnat/a-tiinau.ads
! bbca839d421fc9f39238a4f7a2ed98ad  gcc/ada/libgnat/a-tiinio.adb
! eb135d9b81fac38159e3e7ec15c291db  gcc/ada/libgnat/a-tiinio.ads
! 729e827bd9dfd2e1fde465ec16cb7232  gcc/ada/libgnat/a-tiinio__128.adb
! c8771704c9a01b07a6c49e74bd74b75c  gcc/ada/libgnat/a-timoio.adb
! 237176bbd352558df403776ea3c0f3e4  gcc/ada/libgnat/a-timoio.ads
! 28c27a24a608a573610aba1f84d7e529  gcc/ada/libgnat/a-timoio__128.adb
! 516d35fbf4f1b7a9e64572894ec1efbc  gcc/ada/libgnat/a-tiocst.adb
! 880f8c4d13f83856b0066c72c4aa09df  gcc/ada/libgnat/a-tiocst.ads
! a434e6fa38b51b50a2b6c896bae5d81e  gcc/ada/libgnat/a-tirsfi.adb
! e8689b6963cd0eb97f386e87b4a47110  gcc/ada/libgnat/a-tirsfi.ads
! dcadc12ce27b3e7fb18aca339fa3f9f6  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
! be594aa8ea5c4dcb955141b62d069d6a  gcc/ada/libgnat/a-undesu.adb
! cab62959182bf7dcf2a16107e301681e  gcc/ada/libgnat/a-undesu.ads
! 1b72f7c4c091e6e00c2e8880fc26d221  gcc/ada/libgnat/a-wichha.adb
  bc85d10bd14a8eda24559935a5472a57  gcc/ada/libgnat/a-wichha.ads
! 71f7034c5ef8a9738ca7c56a9487d051  gcc/ada/libgnat/a-wichun.adb
! 98b9e2c2c48e1a71316e9a10771107a2  gcc/ada/libgnat/a-wichun.ads
  495dc144d91ae1388ae48ceb32e47f91  gcc/ada/libgnat/a-widcha.ads
! e432e18f53ce41533614fc84e8009294  gcc/ada/libgnat/a-witeio.adb
! 3e3f7e1876b6c2b229bb3387b04a1522  gcc/ada/libgnat/a-witeio.ads
! f61f666a9546911f85b85f7b227659be  gcc/ada/libgnat/a-wrstfi.adb
! 65a6ac07e931cbada4a9456b10254184  gcc/ada/libgnat/a-wrstfi.ads
! 99b5081557bfdebe61cf4cd4181aa98c  gcc/ada/libgnat/a-wtcoau.adb
! 13299932af6c5efb0b68c801017a4d07  gcc/ada/libgnat/a-wtcoau.ads
! 1e790ce404dbef7983fb85132e9c9d4e  gcc/ada/libgnat/a-wtcoio.adb
  d76fe24c6988d732303e4f40830c2082  gcc/ada/libgnat/a-wtcoio.ads
! 093541e41d399c6e9377ad27e8f89ef3  gcc/ada/libgnat/a-wtcstr.adb
! 70a3cff263ad9d7416fbcaba53031add  gcc/ada/libgnat/a-wtcstr.ads
! 6ebc196d358665f0c773ed6f566948f8  gcc/ada/libgnat/a-wtdeau.adb
! 50810a2e5d2c2878139701fa9532ff23  gcc/ada/libgnat/a-wtdeau.ads
! 1ec0c5281bdb665f98b81573c19ce4c2  gcc/ada/libgnat/a-wtdeio.adb
  20d4a8b1dbec170436bce906004aaac8  gcc/ada/libgnat/a-wtdeio.ads
! b1b5e44f2d64bf495039265a8eb07d7e  gcc/ada/libgnat/a-wtdeio__128.adb
! 9cebb5cb767313fe07a6f0b6f07a5d2d  gcc/ada/libgnat/a-wtedit.adb
! ad9b5061074142af29063b422cbf1820  gcc/ada/libgnat/a-wtedit.ads
! 653cf7209c9209e1e171d456e5d6658a  gcc/ada/libgnat/a-wtenau.adb
! 73a69e6cf07bb59d279df1a09b679784  gcc/ada/libgnat/a-wtenau.ads
! fe677abf3ce9b76669e5bb1f75496191  gcc/ada/libgnat/a-wtenio.adb
  fa13b730a5c90ff293982415bf7bcecb  gcc/ada/libgnat/a-wtenio.ads
! 037e1aed6fbc8b9cd30116baff12b540  gcc/ada/libgnat/a-wtfiau.adb
! ca3f7c1290dae4e01bfb5e12a8fcdfee  gcc/ada/libgnat/a-wtfiau.ads
! ccc11b0827d25a83c4998a3337a081d3  gcc/ada/libgnat/a-wtfiio.adb
  495444487be476924785b4b8eff6b910  gcc/ada/libgnat/a-wtfiio.ads
! daa165682b44bb558f9a5836589034ae  gcc/ada/libgnat/a-wtfiio__128.adb
! 7f65bc45c9a1f478a306de4e9b56e229  gcc/ada/libgnat/a-wtflau.adb
! 917f27bbfa0ef67fdead1f4b0935cc1c  gcc/ada/libgnat/a-wtflau.ads
! a1c47cdaa55b4d364686bd2323e2ea15  gcc/ada/libgnat/a-wtflio.adb
  bb57e8648d7de30496bb43f8a849fc3f  gcc/ada/libgnat/a-wtflio.ads
! 82e18454a74cc34656d3b3f884701a82  gcc/ada/libgnat/a-wtgeau.adb
! 2964160a8ef751ed194cb3e2e44e50fa  gcc/ada/libgnat/a-wtgeau.ads
! 6503e3b948ea191a9c1bef5bd3ac83aa  gcc/ada/libgnat/a-wtinau.adb
! 230eef8d892ecf7a3c91e4e47a14c450  gcc/ada/libgnat/a-wtinau.ads
! 41e7653a45719cb2f2e3e55f81d562b9  gcc/ada/libgnat/a-wtinio.adb
  62a64f1715aaaa145cf2b6d360381363  gcc/ada/libgnat/a-wtinio.ads
! 776c8b7ca467ed0c7f5f0c1bfa99cb67  gcc/ada/libgnat/a-wtinio__128.adb
! 109270a9d546dfa7641830e4579719a9  gcc/ada/libgnat/a-wtmoio.adb
! 5e2eb61607ffce7fc539d7acb93e9d94  gcc/ada/libgnat/a-wtmoio.ads
! 3a95b4adc2ebc6a8aa366bc7453e0ef6  gcc/ada/libgnat/a-wtmoio__128.adb
! b2dee777d8f50a72740dfc651b7a6921  gcc/ada/libgnat/a-wttest.adb
  53d3d301f9afb69992013f55fe363511  gcc/ada/libgnat/a-wttest.ads
! 516823df8f302defbf8f30439f8cc12a  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
! eafb7d97f4964cb216bac92cea9d454f  gcc/ada/libgnat/a-zchhan.adb
  ce55ee9974e330611ce057d096fe581f  gcc/ada/libgnat/a-zchhan.ads
! 146e727720261c7a8cffa2d651882161  gcc/ada/libgnat/a-zchuni.adb
! 6d6b3447cfdbdebefcfc9600940a9d1f  gcc/ada/libgnat/a-zchuni.ads
! 501fd5456fe4878d9dc00a21bebdf947  gcc/ada/libgnat/a-zrstfi.adb
! 5977b5e568aa9edd766c3cb03801ce2d  gcc/ada/libgnat/a-zrstfi.ads
! 9800687359b5781847ecabedd8f852d7  gcc/ada/libgnat/a-ztcoau.adb
  3bd5450b4508e3ee6293ee3a75cffa92  gcc/ada/libgnat/a-ztcoau.ads
! d4df462704fd9c1cbcefd9438f0ec2ed  gcc/ada/libgnat/a-ztcoio.adb
  7440d81a0d7886b3f76b271c7fcbf8b3  gcc/ada/libgnat/a-ztcoio.ads
! 48b7615b72bdf2292aa6f9daa5e2acf8  gcc/ada/libgnat/a-ztcstr.adb
! ab9dc59b1f49a60cf536b7750e8bddda  gcc/ada/libgnat/a-ztcstr.ads
! a84b6cd9d25aaf586130639827483dc2  gcc/ada/libgnat/a-ztdeau.adb
! 422310785154506acef7780ffa54044c  gcc/ada/libgnat/a-ztdeau.ads
! 6178e62c5b2772e4ffaa765bec102c5b  gcc/ada/libgnat/a-ztdeio.adb
  a1457649e626ebf32915696e5afd2ac0  gcc/ada/libgnat/a-ztdeio.ads
! 7a00789052cfa4abf9e23c566c0ab283  gcc/ada/libgnat/a-ztdeio__128.adb
! 2ef79f104537386a4a814b84910bffbc  gcc/ada/libgnat/a-ztedit.adb
! 8cb4516eec187cf5b13b3f25afdccf3a  gcc/ada/libgnat/a-ztedit.ads
! 3b57a05a72bdd730fd2b77ce1621c4ae  gcc/ada/libgnat/a-ztenau.adb
! 4a24915a37f8becff0c785937eb31278  gcc/ada/libgnat/a-ztenau.ads
! 098fdf5cc7a1d85d0e44bc34a1c4e371  gcc/ada/libgnat/a-ztenio.adb
  33aa889d92f43b14a348a444135fc992  gcc/ada/libgnat/a-ztenio.ads
! 4e89c7076224a745aba761b70d1ca242  gcc/ada/libgnat/a-ztexio.adb
! d6c911bc498a0b0bb371922eff9cc7de  gcc/ada/libgnat/a-ztexio.ads
! c49a89d959bc877ef4c2714f93d3d105  gcc/ada/libgnat/a-ztfiau.adb
! edeaca496d0edb8388174150b18c780f  gcc/ada/libgnat/a-ztfiau.ads
! d99b0f3a4db3809d19bfdb551ced6fce  gcc/ada/libgnat/a-ztfiio.adb
  9e2efe8c1c2d6658a575fbecb5ab1418  gcc/ada/libgnat/a-ztfiio.ads
! 04bf278570f02dca0a2b8b3b5760e49b  gcc/ada/libgnat/a-ztfiio__128.adb
! 6d18ab97d450b7245894ad4ea04e2acd  gcc/ada/libgnat/a-ztflau.adb
! 120881e2f9f9312324ad55b96d1abffc  gcc/ada/libgnat/a-ztflau.ads
! 075ca77d06f2a9b67785462e1c9dbc43  gcc/ada/libgnat/a-ztflio.adb
  7aae0945e67f16f4f77aa54a65552f3e  gcc/ada/libgnat/a-ztflio.ads
! 6a7e7308802d55a3951067233862f9e3  gcc/ada/libgnat/a-ztgeau.adb
! a059b43aad1a6666a74e0425b67705bc  gcc/ada/libgnat/a-ztgeau.ads
! 123f367db3a49c53a4caa2cbc236d5a5  gcc/ada/libgnat/a-ztinau.adb
! 95dbfdb79f8dcdfa188b12380a50f687  gcc/ada/libgnat/a-ztinau.ads
! bb3ec4bf3a51ff47c56679724af2d6aa  gcc/ada/libgnat/a-ztinio.adb
  f0456d31ec0aa6f6786e1b635f8023cb  gcc/ada/libgnat/a-ztinio.ads
! cd174697f36d13b0306f1ae24d6d62ff  gcc/ada/libgnat/a-ztinio__128.adb
! 0a266bbd98329f1429a4a9c1aca02040  gcc/ada/libgnat/a-ztmoio.adb
  9831d312ef279fc55e5e051745be05d2  gcc/ada/libgnat/a-ztmoio.ads
! 97309fde789d46799f191e7bfd360eb1  gcc/ada/libgnat/a-ztmoio__128.adb
! c7662605577ea437b8340a99464bf79b  gcc/ada/libgnat/a-zttest.adb
  2caf047380f684add2bd5a35dc4e1091  gcc/ada/libgnat/a-zttest.ads
! 7f1b172ebe22b91cfde4c73f303fed95  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
! e010a6cd00d9ab450d203a2592119173  gcc/ada/libgnat/g-allein.ads
! 3ce4b2f54ee7fe9813573cf07e6145d1  gcc/ada/libgnat/g-alleve.adb
! fca994d931620c0ce58c06b182f2895b  gcc/ada/libgnat/g-alleve.ads
! 895cfbe4ffe59afa5f3cba0934a99bdf  gcc/ada/libgnat/g-alleve__hard.adb
! bde315e9ea45f6fe0d2be2bce1dbfd85  gcc/ada/libgnat/g-alleve__hard.ads
! 1a292ffe574d50163154f2a49f378b27  gcc/ada/libgnat/g-altcon.adb
! 2d84d8382af7dd806970e520b541bd67  gcc/ada/libgnat/g-altcon.ads
! fe6c6325ab696f73be3bd459c8c52d17  gcc/ada/libgnat/g-altive.ads
! 494fbacc189c70368c15844ec9ad9816  gcc/ada/libgnat/g-alveop.adb
! fa57f7bf17e8a42662f208309e5c54f1  gcc/ada/libgnat/g-alveop.ads
! e9353e1bca89196499e94c49868cad4d  gcc/ada/libgnat/g-alvety.ads
! 469b17900a61d752f993ab00ac236608  gcc/ada/libgnat/g-alvevi.ads
! b26187396c9ebdc50c56a2e4424b525f  gcc/ada/libgnat/g-arrspl.adb
! e81cd33a3b73e0216453061397de892e  gcc/ada/libgnat/g-arrspl.ads
! 6174072b8acaf121c1f22c9cc7aac617  gcc/ada/libgnat/g-awk.adb
! 2f9794e5e37b304cce8cd30da13710e6  gcc/ada/libgnat/g-awk.ads
! 5c28b95c534b7d1564ca23f3f7b4a04d  gcc/ada/libgnat/g-binenv.adb
! fa303d064264fe64aca113fce698bdeb  gcc/ada/libgnat/g-binenv.ads
! a9212f5c1ab0addacc6c4e06f06f1083  gcc/ada/libgnat/g-binsea.adb
! 617d236949ca8aee5281f5a66c68a6e1  gcc/ada/libgnat/g-binsea.ads
! fb64f52e3efc81bdfe38a6649160c120  gcc/ada/libgnat/g-brapre.ads
! aa7734931f57c9dac143ed77f4fc044a  gcc/ada/libgnat/g-bubsor.adb
! ca23523e7d7d2b7ff1414ccd4cf656bc  gcc/ada/libgnat/g-bubsor.ads
! 48cfce38873347378ac32ad3b1df4aad  gcc/ada/libgnat/g-busora.adb
! 2fd21d4fc6164cccf5837f0bf8b03c14  gcc/ada/libgnat/g-busora.ads
! d017698e3cb15f1fab17747e448736cc  gcc/ada/libgnat/g-busorg.adb
! 65aa6b94214d63b3b66e78a5d7b65816  gcc/ada/libgnat/g-busorg.ads
! 53b4246441e00e98c31644f148898e22  gcc/ada/libgnat/g-byorma.adb
! 3ea331763fec8f4884a7a3d5fab00f43  gcc/ada/libgnat/g-byorma.ads
! b38b1646cd90a0d2b9f3151929c23448  gcc/ada/libgnat/g-bytswa.adb
! dd4de84a014a2fbaf5717badc4fcb7f6  gcc/ada/libgnat/g-bytswa.ads
! d7bc1415da8fd40e61795bfc3a8fc13a  gcc/ada/libgnat/g-c_time.ads
! 0a2842810a0643cc553eaa2e307466e6  gcc/ada/libgnat/g-calend.adb
! 11b8448b089b9fe6e113bda70d818dc9  gcc/ada/libgnat/g-calend.ads
! 9b7eada071cc6d37cdf3c0fae211ab3c  gcc/ada/libgnat/g-casuti.adb
! bba5b856d2a1597d6f7bb286028f85e4  gcc/ada/libgnat/g-casuti.ads
! 6558b9b10a81050fc9fe50278f4fbf1f  gcc/ada/libgnat/g-catiio.adb
! 2b3c93be6f5bd49ae828c2c03eb17968  gcc/ada/libgnat/g-catiio.ads
! 18ee70804c271c71ff8510a46c458c4f  gcc/ada/libgnat/g-cgi.adb
! 734058e08f15221cdc0c0906b622073a  gcc/ada/libgnat/g-cgi.ads
! fb55cf15e668159b5c1114772700ff4e  gcc/ada/libgnat/g-cgicoo.adb
! 0bd476d839404ac275c3be7276d394e9  gcc/ada/libgnat/g-cgicoo.ads
! 241af677b9822d2934b11fc4eb0e9a7c  gcc/ada/libgnat/g-cgideb.adb
! da0bfa4251b3510b51674069bf69f2a3  gcc/ada/libgnat/g-cgideb.ads
! 340eb217b85846b1254ef607ffdd5b65  gcc/ada/libgnat/g-comlin.adb
! c4303ad26ae483037467f113772ae6d5  gcc/ada/libgnat/g-comlin.ads
! fbe2b984b80748645f1720481505cffe  gcc/ada/libgnat/g-comver.adb
! 6adca3d60996d54b65c95495da47e9d9  gcc/ada/libgnat/g-comver.ads
! 438f42e28c5562fa912e0f585508911c  gcc/ada/libgnat/g-cpp.ads
! cb35c44377bc36f2626625f2cd7e02fc  gcc/ada/libgnat/g-cppexc.adb
! 8b242d6547c2b5366f57d9666164bbec  gcc/ada/libgnat/g-cppexc.ads
! e0ad3dece18f25d2fbc95f089c7a9348  gcc/ada/libgnat/g-cppstd.adb
! 1c07c19bfa9db7532f2ceefbac76292a  gcc/ada/libgnat/g-cppstd.ads
! 373afe3a2919d281ae7c3d18a5f8b1d7  gcc/ada/libgnat/g-crc32.adb
! b4c12df521ff8c0a45bf7fdaaf3176ce  gcc/ada/libgnat/g-crc32.ads
! 39ec674357ed7fed46ef40309666346a  gcc/ada/libgnat/g-csclex.ads
! 8b127dc12d300ecc6347d2f5c7d6c156  gcc/ada/libgnat/g-cstyin.adb
! db530740c14e9cf5bb7ef0067590b421  gcc/ada/libgnat/g-cstyin.ads
! e7ab39426613e21727c1af251944e26e  gcc/ada/libgnat/g-ctrl_c.adb
! 303dccd433cd20ac5cfb85cd0d4fb8da  gcc/ada/libgnat/g-ctrl_c.ads
! 9a05dc8263983ff7378479bd1f564f79  gcc/ada/libgnat/g-curexc.ads
! 129488b89b24098b6b721c2c9697b5ca  gcc/ada/libgnat/g-debpoo.adb
! fa8baef8093fd32735050721bdbb1cde  gcc/ada/libgnat/g-debpoo.ads
! ab326fb638dbf4cc0ee0bcf604240736  gcc/ada/libgnat/g-debuti.adb
! a7d0225cd2585b122d1a7ebe5c22dbca  gcc/ada/libgnat/g-debuti.ads
! abd8850b4db455166ec8b64630459f5a  gcc/ada/libgnat/g-decstr.adb
! 24bd6ae2f7814918c4cb29f32410aa3b  gcc/ada/libgnat/g-decstr.ads
! 00d0534ea4aad398c6f6870629372436  gcc/ada/libgnat/g-deutst.ads
! c34f47f972b834766b475c5487bd9098  gcc/ada/libgnat/g-diopit.adb
! cca05c826366cc14be3c75798fb1b7c7  gcc/ada/libgnat/g-diopit.ads
! 710f763c746d8e598f53ddbf98021188  gcc/ada/libgnat/g-dirope.adb
! 6962e354065dd369bc76a8123fae4d78  gcc/ada/libgnat/g-dirope.ads
! a3ab71d6c102817cc629c97df33af17b  gcc/ada/libgnat/g-dynhta.adb
! 739b1bc12c8a98f7fddc27c7c436df60  gcc/ada/libgnat/g-dynhta.ads
! 1efe8831f2db44d87f8c5390ceef2d3f  gcc/ada/libgnat/g-dyntab.adb
! 96dadb62430a07554976d4955c2b0b8c  gcc/ada/libgnat/g-dyntab.ads
! 725d8bbe9c925ea864bb97369dcac8ee  gcc/ada/libgnat/g-eacodu.adb
! 7bde616928f8ec35dbd623f8d0aa1d97  gcc/ada/libgnat/g-encstr.adb
! f0ee331529fbc05d5e613a0547071635  gcc/ada/libgnat/g-encstr.ads
! 89e5f93961d2683573b1f6d3ea25e68a  gcc/ada/libgnat/g-enutst.ads
! 42e5a0b83efc3a0a5b813bd13d166896  gcc/ada/libgnat/g-excact.adb
! 12ed1a82ae1a88c03a9f3a4d73db6878  gcc/ada/libgnat/g-excact.ads
! 2edb0a80957545d49d2dd3e270a79577  gcc/ada/libgnat/g-except.ads
! 693f3197c7cad10ad3378ce3d47de777  gcc/ada/libgnat/g-exctra.adb
! 9e63d159e16bc15fd30361254110020a  gcc/ada/libgnat/g-exctra.ads
! 7739c1a2abb16afc6788bb7eb31c24b7  gcc/ada/libgnat/g-expect.adb
! 18383e2bb9f056d76f266b3069a2a60b  gcc/ada/libgnat/g-expect.ads
! ff5ea0266845edabb9c7ca2dc4602d23  gcc/ada/libgnat/g-exptty.adb
! de3ea1d27e8b5f344d80aa722cdc03dc  gcc/ada/libgnat/g-exptty.ads
! 7ffc922cf66f1b52b8b4a789382bcaab  gcc/ada/libgnat/g-flocon.ads
! 0111b171a7cfa7ef000de1527d3b5135  gcc/ada/libgnat/g-forstr.adb
! 255d24321fa191511aa8cb97a1a22add  gcc/ada/libgnat/g-forstr.ads
! 996bc756556e7ebe0962f1fd9be34d30  gcc/ada/libgnat/g-gfmafu.ads
! 517c7259b118bc4fb3f16ffa66bebf49  gcc/ada/libgnat/g-graphs.adb
! b866c8482c66c4418a649a9dfd48716b  gcc/ada/libgnat/g-graphs.ads
! bc2b921adc1c179e2ac10748ccade5c7  gcc/ada/libgnat/g-heasor.adb
! dd164f2d8610ced6e1b3dc1ecec468e2  gcc/ada/libgnat/g-heasor.ads
! f9fe34de5c547db9138e8cf3b1adb671  gcc/ada/libgnat/g-hesora.adb
! 56ca74ffc75cd2969aefad9cab00faf4  gcc/ada/libgnat/g-hesora.ads
! e4d5a10bcf68bc55af3d9e9d8be78549  gcc/ada/libgnat/g-hesorg.adb
! aa07e76a1b9645716afbb7ce2879e22f  gcc/ada/libgnat/g-hesorg.ads
! 928e96e77b98a425f98bc0688ada8589  gcc/ada/libgnat/g-htable.adb
! eeeb8d0214b4bd02284f05872dc5e9c8  gcc/ada/libgnat/g-htable.ads
! 0bb3e5c7a6419b3e677b2c1bdfbca68f  gcc/ada/libgnat/g-io.adb
! 9c8db5e338c580eb77daa21775067a7b  gcc/ada/libgnat/g-io.ads
! 1318b7eeac8a7f6acfa626a097950016  gcc/ada/libgnat/g-io_aux.adb
! 43dc3137b3185ae993d7ff4605d23378  gcc/ada/libgnat/g-io_aux.ads
! 2b2f0e820566aa43bec4f6d775759284  gcc/ada/libgnat/g-lists.adb
! 8e647c3eee4d85ff4e44a2c770450b2b  gcc/ada/libgnat/g-lists.ads
! e6cee7d416bbadda46428f828df2abce  gcc/ada/libgnat/g-locfil.adb
! 3a2d0a6a2eed557bb0bff3a26166a0ad  gcc/ada/libgnat/g-locfil.ads
! e63cb8437c7a7b8fbb684bf8d3d5663f  gcc/ada/libgnat/g-mbdira.adb
! 6e8efb44b0704f4a091bb6cb11aa8041  gcc/ada/libgnat/g-mbdira.ads
! fd8e17d66bf3d73a6e76bfad825c1a07  gcc/ada/libgnat/g-mbflra.adb
! 2abbe13ecd1d5b69ed4d1dbc22aa6ea4  gcc/ada/libgnat/g-mbflra.ads
! 63694abe5c688c46730851c3bb182e72  gcc/ada/libgnat/g-md5.adb
! 3e6b8b08de36b941a74699a81fe779f8  gcc/ada/libgnat/g-md5.ads
! 44c94c16c4e16141c8626b0c4aeef52d  gcc/ada/libgnat/g-memdum.adb
! 6f7f138b8150e0a901a67bf8c42aec8a  gcc/ada/libgnat/g-memdum.ads
! 6374558ab641962f3c12a5bde35af364  gcc/ada/libgnat/g-moreex.adb
! 1417e97abea9d3dbcbadb3ad212b1c87  gcc/ada/libgnat/g-moreex.ads
! 56593bea68c2d55ce9cca20b24a68ce1  gcc/ada/libgnat/g-os_lib.adb
! 4c9ea0d7d7fa9ea78031dd3a3a20d2cc  gcc/ada/libgnat/g-os_lib.ads
! e1a74121d45504a9f2703bcd771377f9  gcc/ada/libgnat/g-pehage.adb
! 59405b12869ed32212fc4f467e4fb36a  gcc/ada/libgnat/g-pehage.ads
! ff659750179eeb6cb143939a0491aa3a  gcc/ada/libgnat/g-rannum.adb
! 6a8dea1382f4cc9e283fe0b85c02a45a  gcc/ada/libgnat/g-rannum.ads
! 5865a170c52cce2f36f3bd585b957606  gcc/ada/libgnat/g-regexp.adb
! 136bc640394e0801382cbfacde29ac42  gcc/ada/libgnat/g-regexp.ads
! a97a3629ce55f01b463911d6e437b741  gcc/ada/libgnat/g-regist.adb
! c3dc952dc694df83bb9836e9157057c4  gcc/ada/libgnat/g-regist.ads
! 1d8279a49b2123e04b2a7f8cef85d985  gcc/ada/libgnat/g-regpat.adb
! 02f89f1447b435f3b12d6926c7706e12  gcc/ada/libgnat/g-regpat.ads
! 42e0ff093aeaaced6218177b9149d8f3  gcc/ada/libgnat/g-rewdat.adb
! c295426e54248f7e84daf3c2f5eca4fc  gcc/ada/libgnat/g-rewdat.ads
! d9f4972bcb266aa5e95482933c208168  gcc/ada/libgnat/g-sechas.adb
! 4e326e92376e7b7e0590928d0eaca77c  gcc/ada/libgnat/g-sechas.ads
! ac36d2f53362702c3577c9bbaa19faba  gcc/ada/libgnat/g-sehamd.adb
! f96bc7cb962d7f4df28cd9de03fb5d72  gcc/ada/libgnat/g-sehamd.ads
! 163452927417d7fd0146575f89f5118b  gcc/ada/libgnat/g-sehash.adb
! 1b134f552e9c101216758b4b14d0ad26  gcc/ada/libgnat/g-sehash.ads
! b926bd295bae5deb9e5bb4f3bee7c256  gcc/ada/libgnat/g-sercom.adb
! f4eec1d1d6f015e0d42041690ee2c172  gcc/ada/libgnat/g-sercom.ads
! 45dbd2c938717844331c15bb43d59a9c  gcc/ada/libgnat/g-sercom__linux.adb
! d5da571b7163fbad4d479f871e3255f8  gcc/ada/libgnat/g-sercom__mingw.adb
! d8e56bfb8c21907f4a393a907901b034  gcc/ada/libgnat/g-sestin.ads
! 0136602d95569bf0f44e82ad114d3f8b  gcc/ada/libgnat/g-sets.adb
! 9117a38685dfdb0ffa3a7a24cda3ccbc  gcc/ada/libgnat/g-sets.ads
! 6023cf544538802db29a094e06e03736  gcc/ada/libgnat/g-sha1.adb
! 5bb46a4406ad056b5ab03d22676d68a5  gcc/ada/libgnat/g-sha1.ads
! 475e10ebba032ef5652bad27a13ce603  gcc/ada/libgnat/g-sha224.ads
! defc5fcb3aef0c4f03a35857ab53f0ea  gcc/ada/libgnat/g-sha256.ads
! 2777e40adbbf1b56e18c9d9cd72a09bd  gcc/ada/libgnat/g-sha384.ads
! f5a9eb52dfd51e4e119868e372073667  gcc/ada/libgnat/g-sha512.ads
! 9f6e2cc630746bc0a4014beab204e21c  gcc/ada/libgnat/g-shsh32.adb
! ff7250b7a203aae2a21eb91d784a4216  gcc/ada/libgnat/g-shsh32.ads
! 1320c1225f9cc0fe3f9fe7c9c5e7cb80  gcc/ada/libgnat/g-shsh64.adb
! f5a4aef19288181e1cbbfc51c7e4b4bd  gcc/ada/libgnat/g-shsh64.ads
! e8ec6dc87d0603c587fc6fece5ea0e9a  gcc/ada/libgnat/g-shshco.adb
! 2adba0308de00f407aa83c1876566e6b  gcc/ada/libgnat/g-shshco.ads
! c2bda318949a774bc99a45377bc103c8  gcc/ada/libgnat/g-soccon.ads
! 2f2f4ee153217ed75276d6777dfe5942  gcc/ada/libgnat/g-socket.adb
! a39ba7b23e557c18a3bade199e7414f9  gcc/ada/libgnat/g-socket.ads
! c0b3d65c3a66fb7ada3d5ffc1dbd8326  gcc/ada/libgnat/g-socket__dummy.adb
! 4b6956d542c62f367a45fb45ddf6a22e  gcc/ada/libgnat/g-socket__dummy.ads
! e8657695481e507b5022037ac81eee06  gcc/ada/libgnat/g-socpol.adb
! 86b592d0ede46bdc270ebc1d7d2f1062  gcc/ada/libgnat/g-socpol.ads
! b69f5d785cb2b71a3e079485045f26fd  gcc/ada/libgnat/g-socpol__dummy.adb
! a2d485692ea9c60be2cb9f7f8193bebe  gcc/ada/libgnat/g-socpol__dummy.ads
! dbdb7047f0490d399b524567c78752ef  gcc/ada/libgnat/g-socthi.adb
! c964107895fc21a4f302844f72dd50bf  gcc/ada/libgnat/g-socthi.ads
! 38ddfe88118819c2bc8207b149a81f6a  gcc/ada/libgnat/g-socthi__dummy.adb
! f4dac77cc1c9f91fa64018e40866f5ca  gcc/ada/libgnat/g-socthi__dummy.ads
! 01e0700d8126a1e821d2eaf2629f2111  gcc/ada/libgnat/g-socthi__mingw.adb
! c4ed304b8bd8d0e856940cea2982062c  gcc/ada/libgnat/g-socthi__mingw.ads
! a3a85c02ddbb87aad0ea1b897c7486f4  gcc/ada/libgnat/g-socthi__vxworks.adb
! 1851ec78afa0aa08b7a5b7b5c60bf4be  gcc/ada/libgnat/g-socthi__vxworks.ads
! 984c663cbb7aa91bfe8427f01113ef9e  gcc/ada/libgnat/g-soliop.ads
! 230ad89369be819c7f4a9715687e9b21  gcc/ada/libgnat/g-soliop__lynxos.ads
! e487da7dbc4fba09854034ed1f28c3f1  gcc/ada/libgnat/g-soliop__mingw.ads
! df1d6d99522e67136bf71efa9a7cf8e4  gcc/ada/libgnat/g-soliop__qnx.ads
! dbbf9ea2a9cdbd7787cde4ffc7acfb71  gcc/ada/libgnat/g-soliop__solaris.ads
! 99582abb72aa83fc86b279d90f7de96c  gcc/ada/libgnat/g-sopowa.adb
! 0851297b40fa773e958892cfc0502f8e  gcc/ada/libgnat/g-sopowa__mingw.adb
! feaa6c751993bbd20abb6aed7539ca3e  gcc/ada/libgnat/g-sopowa__posix.adb
! 9186aeec13ba744eeb7297e42b2aae0a  gcc/ada/libgnat/g-sothco.adb
! 52a13931a4b20e74967233227a3da620  gcc/ada/libgnat/g-sothco.ads
! 2232ff87fb247bbfb114e7a4fd61e562  gcc/ada/libgnat/g-sothco__dummy.adb
! efa02b540351147b4b8960456c691057  gcc/ada/libgnat/g-sothco__dummy.ads
! a71b39211a3227689126a4cfa57c14cb  gcc/ada/libgnat/g-souinf.ads
! 964cbf7de574d6b2aafdf825e68c0bfb  gcc/ada/libgnat/g-spchge.adb
! fef563ef3c636e364fa98f13823aaaa0  gcc/ada/libgnat/g-spchge.ads
! 3bc85d80f4b6179ff46fc6c8d6bc8aea  gcc/ada/libgnat/g-speche.adb
! e58ae8a24858e167fdfe9615391e4794  gcc/ada/libgnat/g-speche.ads
! 2c6ec52ae69aaece88685cb3b4d77d3d  gcc/ada/libgnat/g-spipat.adb
! e5a677e371bfba84ac7024dc9b86a9ef  gcc/ada/libgnat/g-spipat.ads
! 3da11f7fe71723e560f00bd3c058f32c  gcc/ada/libgnat/g-spitbo.adb
! c87fc82c170031b6b4d24113fa0742e2  gcc/ada/libgnat/g-spitbo.ads
! 9b14a02507204309543bfc2aa52fad51  gcc/ada/libgnat/g-spogwa.adb
! 51f9beb71024378c6e7c2308a1995cb8  gcc/ada/libgnat/g-spogwa.ads
! 8bc9ba0bbe6c237f1f1707c139e5ca09  gcc/ada/libgnat/g-sptabo.ads
! 97f05847f3ada1903543cc049aa51bec  gcc/ada/libgnat/g-sptain.ads
! cdc83a0fbc14199a97fccf8fcb55a66c  gcc/ada/libgnat/g-sptavs.ads
! 959f2adbc41fc527fed1b91fcd91ca04  gcc/ada/libgnat/g-sse.ads
! df431afb3ccca6945fe37c2d54fca615  gcc/ada/libgnat/g-ssvety.ads
! 5895079a07a72710fe417b801dd22371  gcc/ada/libgnat/g-sthcso.adb
! 70976e4daeb0bd7e5b80980a0fa4aab7  gcc/ada/libgnat/g-stheme.adb
! b705b85879d72d86e1e37c118ef553b2  gcc/ada/libgnat/g-strhas.ads
! 97c34ee60887e980b40e6f09323ed8b7  gcc/ada/libgnat/g-string.adb
! aa55e448f0103007e287bdcdfb0fc19a  gcc/ada/libgnat/g-string.ads
! e5d5173b0a2e0151a5238ba6136b13c8  gcc/ada/libgnat/g-strspl.ads
! b48252aa44ba273bcc2a6e8686349235  gcc/ada/libgnat/g-stseme.adb
! e6eb6e11844ac7b4b7dba50952a7dc64  gcc/ada/libgnat/g-stsifd__sockets.adb
! 75bf66fbfa7fea2d9ecb6b602e8978a5  gcc/ada/libgnat/g-table.adb
! 182e02e2f482f646a07273c939c2c86d  gcc/ada/libgnat/g-table.ads
! 5c8759ed423ec1eada464299142d2f2f  gcc/ada/libgnat/g-tasloc.adb
! 71b8fcc7b39a14905998e321a4a768cf  gcc/ada/libgnat/g-tasloc.ads
! 0e1fbfebc882b333c3573b5a5b6c568f  gcc/ada/libgnat/g-timsta.adb
! 03fcc3502a8d17e8ccee01b9c03f8671  gcc/ada/libgnat/g-timsta.ads
! 1baf2f3da46c886099ba39a3d79b4496  gcc/ada/libgnat/g-traceb.adb
! 30d2549c3e9bf7bde65c1d53a9a390cb  gcc/ada/libgnat/g-traceb.ads
! b2f1938b3493c547521447626f8a4660  gcc/ada/libgnat/g-trasym.adb
! 3662e6161b180f0c20bf51d0822e4641  gcc/ada/libgnat/g-trasym.ads
! d6dd6518f836308d5f8310791be32909  gcc/ada/libgnat/g-tty.adb
! 36417bcb43e7ab23dd2b15638c50879d  gcc/ada/libgnat/g-tty.ads
! 79598a852e3ff892912938d6376a3a56  gcc/ada/libgnat/g-u3spch.adb
! 7c500aaeccc37f8babf634f56f2cc080  gcc/ada/libgnat/g-u3spch.ads
! da8c50f78b3bb358259f55a54786250e  gcc/ada/libgnat/g-utf_32.adb
! 6d8960055a295eca1b12c06b99fd5be5  gcc/ada/libgnat/g-utf_32.ads
! c5d0d1b9188e6c64f1dd972d743a8705  gcc/ada/libgnat/g-wispch.adb
! cc2d4f9d7bc2baffec80291a51b34558  gcc/ada/libgnat/g-wispch.ads
! 73455dd73e996d054bb56deb91dfc03d  gcc/ada/libgnat/g-wistsp.ads
! 8048551e33f98fde6004adbf4ea7acba  gcc/ada/libgnat/g-zspche.adb
! 668ffccf38af076b3eb3e16ea77bb7c5  gcc/ada/libgnat/g-zspche.ads
! 3ba8aee14b3a842d671d0c8704ad097d  gcc/ada/libgnat/g-zstspl.ads
! f2ca087cf3056ed2beeaec88c647d8ef  gcc/ada/libgnat/gnat.ads
! 48b24f1c60b3a0f5dd3418f99582c1f7  gcc/ada/libgnat/i-c.adb
! 72e9ec2f14ea5a23b1f7e77717b8e8db  gcc/ada/libgnat/i-c.ads
! cb679f6fde155f44837d4552c523664c  gcc/ada/libgnat/i-cexten.ads
! 44285f1dad12628b91709ade759bdf95  gcc/ada/libgnat/i-cexten__128.ads
! c7559cd071a167fe296b51c7c9322727  gcc/ada/libgnat/i-cheri-exceptions.ads
! 499209fccc8acf4bab7012f1e7a843f4  gcc/ada/libgnat/i-cheri.adb
! 0f35d2d732c01db6525c8512e23b381c  gcc/ada/libgnat/i-cheri.ads
! 464baf5679941b9a74daba4cd273588f  gcc/ada/libgnat/i-cobol.adb
! 3edad3573f18e93b6340561e907ea918  gcc/ada/libgnat/i-cobol.ads
! 375662462f058c33310ade117152a3b4  gcc/ada/libgnat/i-cpoint.adb
! 5f82a883a172fd99f3df99f0158d18dc  gcc/ada/libgnat/i-cpoint.ads
! 622be760aaf70ea510afd064e7cbedbe  gcc/ada/libgnat/i-cstrea.adb
! e2c5debe859801377bb23186f860fbeb  gcc/ada/libgnat/i-cstrea.ads
! 5e870ff704b2b2e52624f3392134f692  gcc/ada/libgnat/i-cstrin.adb
! cddf9ee51d64518556bca298939fc050  gcc/ada/libgnat/i-cstrin.ads
! e46418cadf9be0c1b609c9c5b237f81b  gcc/ada/libgnat/i-fortra.adb
  fe08792d30f40125dd75d63c7bcd68fe  gcc/ada/libgnat/i-fortra.ads
! 67efcdb22a5fa2959df9a76a10f0d58b  gcc/ada/libgnat/i-pacdec.adb
! af9c8aea45dc595a84d279be37a6e65e  gcc/ada/libgnat/i-pacdec.ads
! 27c30890d1827e0102696b87bf76f8c2  gcc/ada/libgnat/i-vxwoio.adb
! 03a880009807f3fca6fe4ddecbb63e58  gcc/ada/libgnat/i-vxwoio.ads
! 27fa14162bcdf95d1efbe822378a3bc3  gcc/ada/libgnat/i-vxwork.ads
! 1b76c90ec601a29b40f1ea4e1196a733  gcc/ada/libgnat/i-vxwork__x86.ads
! 2af46085ae6159bce45fdf6c3652a1c5  gcc/ada/libgnat/interfac.ads
! 07ad4351f58361d1e8c9b345ba3966ae  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
! 9fd8db83a4a10b1f8eb2e5e5c726bcf8  gcc/ada/libgnat/memtrack.adb
! 5b881fb29933bca9150aa693cbc12531  gcc/ada/libgnat/s-addima.adb
! a8fd925431e170bdd5b9df77371e4831  gcc/ada/libgnat/s-addima.ads
! b01379a29d2c831199ebc966476a01ef  gcc/ada/libgnat/s-addope.adb
! b0210bd5e4fa6ea7b2654af4415f9a47  gcc/ada/libgnat/s-addope.ads
! a8999b43813613e58d50228e7fb5de4d  gcc/ada/libgnat/s-aoinar.adb
! 20a3da69ec9977dffaa2e4de28d6021c  gcc/ada/libgnat/s-aoinar.ads
! 951049c34e5e4aeb735d400a7f044122  gcc/ada/libgnat/s-aomoar.adb
! 5359a25c24b4cac157e66ecd882a941b  gcc/ada/libgnat/s-aomoar.ads
! c0b762d2b4edb9e20bf67292209dfde3  gcc/ada/libgnat/s-aotase.adb
! 9cd18260616fd2f93faa5e5efc0de7c6  gcc/ada/libgnat/s-aotase.ads
! c637fbdcff15cdd9c29b3486f21f0c25  gcc/ada/libgnat/s-aridou.adb
! 0330dd6d60fc4a205bcde6b4d658d60d  gcc/ada/libgnat/s-aridou.ads
! 9bd61f0cd1c221563879277ed8891ed4  gcc/ada/libgnat/s-arit128.adb
! d38d551f4b0865bd109c7cd9be620253  gcc/ada/libgnat/s-arit128.ads
! 2556b3a9f647c8b295e1f59f4e3b9368  gcc/ada/libgnat/s-arit32.adb
! d7b742f5f923a912d8184a5264631c3b  gcc/ada/libgnat/s-arit32.ads
! 7c7d07fbb4405cccb287b5fce1ad5db3  gcc/ada/libgnat/s-arit64.adb
! b17f7311e2b8b9ca2a140b05a47e749d  gcc/ada/libgnat/s-arit64.ads
! 06c219830fff7604e6fe60cadb514a20  gcc/ada/libgnat/s-assert.adb
! 1d8d6ba1ae3b381c44a107444fdd0ab7  gcc/ada/libgnat/s-assert.ads
! a955ac9b2df735b906c692b073badbab  gcc/ada/libgnat/s-atacco.adb
! 447d1d547b83fab4cf1e5a28165a7531  gcc/ada/libgnat/s-atacco.ads
! a6e1ebc1597b3b043d39ecbb5444f4a7  gcc/ada/libgnat/s-atocou.adb
! e21774c98ff49c76abcc8bee1f05bd9f  gcc/ada/libgnat/s-atocou.ads
! 7d5be3c50fb30f9240bd52ad13635306  gcc/ada/libgnat/s-atocou__builtin.adb
! 7628990d052b133485b1b8a56a9b02d7  gcc/ada/libgnat/s-atoope.ads
! a417b26eeee48d41454aedf00460e7d2  gcc/ada/libgnat/s-atopex.adb
! a1915311aa014ab4c86edcf5b329d683  gcc/ada/libgnat/s-atopex.ads
! a585f5ec34bb28fdbc53ce56b9168f3d  gcc/ada/libgnat/s-atopri.adb
! 42e723e45a1f9849df9bf531367fd8d3  gcc/ada/libgnat/s-atopri.ads
! ded633b636fe6829bfb8860ea26445a1  gcc/ada/libgnat/s-atopri__32.ads
! 928bfe46f52e0390aafa30c711286bd5  gcc/ada/libgnat/s-auxdec.adb
! d9bd6baec49f65dd208c27ae7f43e69c  gcc/ada/libgnat/s-auxdec.ads
! 0c476592a78374e96832178f9f3aa1f6  gcc/ada/libgnat/s-bignum.adb
! 48c18d67d84f05c48d33a8980a51c301  gcc/ada/libgnat/s-bignum.ads
! 9776057e913162fc573d8282e5495869  gcc/ada/libgnat/s-bitfie.ads
! 7399f58627905a16a376d8771768c5cb  gcc/ada/libgnat/s-bitops.adb
! baf7861449d8d62aadbf233753f5e078  gcc/ada/libgnat/s-bitops.ads
! 1ef5d86eef69d3afc7dc4204784776b9  gcc/ada/libgnat/s-bituti.adb
! 0d275c0e242fcd872f3cec7314b8f436  gcc/ada/libgnat/s-bituti.ads
! 55f6dbf159f5d663d3f134ed51d90170  gcc/ada/libgnat/s-boarop.ads
! 1dd6168d388cbf3eed9ca6e922bf6332  gcc/ada/libgnat/s-boustr.adb
! 265f5dc195707887b21cb4457721d4e9  gcc/ada/libgnat/s-boustr.ads
! 54955d183b072ab362d7fe7f2e24a520  gcc/ada/libgnat/s-bytswa.ads
! 708334e457f3c7dc7caa999eca8b83f7  gcc/ada/libgnat/s-c_time.adb
! a9774195c59439efc525eea8b0b319d6  gcc/ada/libgnat/s-c_time.ads
! 5025400b30fe8be8b262fd9416179c2a  gcc/ada/libgnat/s-carsi8.adb
! 9a0794c1a466f186b0e12d5c6b2fd553  gcc/ada/libgnat/s-carsi8.ads
! 9bc85592a2fc265531ec16a10d7986dd  gcc/ada/libgnat/s-carun8.adb
! c38b6c2537108306a5da92c4b29292e0  gcc/ada/libgnat/s-carun8.ads
! d251bd735632312351d7cd7135c23810  gcc/ada/libgnat/s-casi128.adb
! 407ff4cd012cecbc6aa7d536f8051f2e  gcc/ada/libgnat/s-casi128.ads
! dfe1ae3071e63e638eb8245d2b6c0afb  gcc/ada/libgnat/s-casi16.adb
! ce651bf2aab1f8485100b464a2c477e7  gcc/ada/libgnat/s-casi16.ads
! 7f33887f5228b4865e48989476520f5a  gcc/ada/libgnat/s-casi32.adb
! 261bcdb754d37577af68c5529d3dbd28  gcc/ada/libgnat/s-casi32.ads
! c42866ee11df4d4beef5f4e5b8f7fd39  gcc/ada/libgnat/s-casi64.adb
! 120072edba325778f50cd4b7abe94c91  gcc/ada/libgnat/s-casi64.ads
! 1bed33d4816aca60d3d4d00c808099f8  gcc/ada/libgnat/s-casuti.adb
! bae9cef6a76b4cdc9ba4ee8cfd12b255  gcc/ada/libgnat/s-casuti.ads
! 4aaacc6157da528fe593416e56fbd789  gcc/ada/libgnat/s-caun128.adb
! 46cc51245d2275844d902917def2a34a  gcc/ada/libgnat/s-caun128.ads
! 9a5a6d47babe077f702815012c1dd9d9  gcc/ada/libgnat/s-caun16.adb
! 85da1fba41a95f0fc04b056deb6b52db  gcc/ada/libgnat/s-caun16.ads
! d0160c9d7b632b35626b54a6889b0005  gcc/ada/libgnat/s-caun32.adb
! 054f2346f51849fd3bc6997039fbc1e3  gcc/ada/libgnat/s-caun32.ads
! c4c1e1d8016c6b1177c4d96e26273bba  gcc/ada/libgnat/s-caun64.adb
! f8d91a5c72cdb0807ca173029cf6d51b  gcc/ada/libgnat/s-caun64.ads
! fd572f64c2e0fdf04d580a79441ddd9e  gcc/ada/libgnat/s-cautns.adb
! 8fd6ff789f4359a1e3eb5acd7e4dc9cb  gcc/ada/libgnat/s-cautns.ads
! 1e4eff683f7ac1a936ce55e43612b383  gcc/ada/libgnat/s-chepoo.ads
! 6be4272b115e5ccdeebe9b5350b30164  gcc/ada/libgnat/s-commun.adb
! 95f17eea18cc82be366de36e613e8b61  gcc/ada/libgnat/s-commun.ads
! 4c0326bd95ea0be3ef423e4e83f84e96  gcc/ada/libgnat/s-conca2.adb
! aad29715e0dae8ef7b206345a99fb2db  gcc/ada/libgnat/s-conca2.ads
! 99510863d2cdaaa40fed7a85096ce611  gcc/ada/libgnat/s-conca3.adb
! 9ee729b30f73177e9ec0cf1ab047e95a  gcc/ada/libgnat/s-conca3.ads
! a1d7b2c9ea4b55290a4eefa535e63671  gcc/ada/libgnat/s-conca4.adb
! fd8a9501cc05c364474d030279842309  gcc/ada/libgnat/s-conca4.ads
! 339c716e12dddcbdb435d6b2c98716cd  gcc/ada/libgnat/s-conca5.adb
! ae30100851a89eee2a36cfc17d346c63  gcc/ada/libgnat/s-conca5.ads
! 657da3720414f471d0c33961c1c2a8c3  gcc/ada/libgnat/s-conca6.adb
! e60e1c1eb9e0aea1b89bba94894badb6  gcc/ada/libgnat/s-conca6.ads
! 2b97f470f9dbda614c696a90a8cd1484  gcc/ada/libgnat/s-conca7.adb
! 2af42f8cf5b4a407e6647bd6d2f7647e  gcc/ada/libgnat/s-conca7.ads
! a2bdccc3d8150500236d17048d9a1d3b  gcc/ada/libgnat/s-conca8.adb
! e0bf2fb850a2618b809a3f01f287480e  gcc/ada/libgnat/s-conca8.ads
! abdd68ceb050d215140ce1e1b2b1dedf  gcc/ada/libgnat/s-conca9.adb
! 21b43b176f386b0cc7fea7d09bc3c612  gcc/ada/libgnat/s-conca9.ads
! 699212939c8c44c641e8941c835136dd  gcc/ada/libgnat/s-crc32.adb
! 56440b16e0fc88b7720eee78a804f4cd  gcc/ada/libgnat/s-crc32.ads
! 1358b72f374f5bc84d8510da319678e3  gcc/ada/libgnat/s-crtl.adb
! 086473817cec6a5dc6c43fbf03cb2cfb  gcc/ada/libgnat/s-crtl.ads
! 42b19c7f9d5855a2c2993517824fa602  gcc/ada/libgnat/s-crtl__mingw.adb
! 84d8cb08eeb0835450c77b0bc30e94fb  gcc/ada/libgnat/s-dfmkio.ads
! cdd460225eb96c9b8a296e9a37d07a01  gcc/ada/libgnat/s-dfmopr.ads
! 1f2e809d4742f1c1bdb0897bdbef0fdc  gcc/ada/libgnat/s-dgmgop.ads
! 133cace369258d93e8e25e00b13bcc7d  gcc/ada/libgnat/s-diflio.adb
! d9e267b5501865e2699da70e3fc3daca  gcc/ada/libgnat/s-diflio.ads
! caa352c5fd63ed0aac54edbd03a448dd  gcc/ada/libgnat/s-diflmk.ads
! 9ac2991d21c60b1231de6e15953bd095  gcc/ada/libgnat/s-digemk.ads
! 5046e784dd72205ed94d9fa70c65a974  gcc/ada/libgnat/s-diinio.adb
! abb1f13e286cd916e33a9fc56bb413f0  gcc/ada/libgnat/s-diinio.ads
! fdcf937d10eb74c66b3b50669d912b03  gcc/ada/libgnat/s-dilomk.ads
! 9db6fa2db3494af7895b483128d3bd9e  gcc/ada/libgnat/s-dim.ads
! 5767edd5b87daf213393d8cec9c8a16e  gcc/ada/libgnat/s-dimkio.ads
! 4a14c812a00dfd678173d85864ed0c58  gcc/ada/libgnat/s-dimmks.ads
! 1cdb688b7cc7fbc74cf90a0e4ca71211  gcc/ada/libgnat/s-direio.adb
! 18bd0cff4d73a7461798fcc294a6967c  gcc/ada/libgnat/s-direio.ads
! 16ca537969abc42a97c885fa1a26f520  gcc/ada/libgnat/s-dlmkio.ads
! 07db63340edb0476445ba3d0d8bb9302  gcc/ada/libgnat/s-dlmopr.ads
! ed343cc260715985543aec11ef6c0e97  gcc/ada/libgnat/s-dmotpr.ads
! 81e6b5d6249402b660706face26ee723  gcc/ada/libgnat/s-dorepr.adb
! eeb689ab898ae1e92d3b86f4330caa13  gcc/ada/libgnat/s-dorepr__fma.adb
! ad97369a93463344a0a9487704ba3d1a  gcc/ada/libgnat/s-dorepr__freebsd.adb
! 1bd2be4b8ab6dc54e831fa0cc0bcd1d6  gcc/ada/libgnat/s-dourea.adb
! 3b7e45d8f3fe7a923ad978229464044c  gcc/ada/libgnat/s-dourea.ads
! 294b39ca06beec7e2d19b0cc322a8cfa  gcc/ada/libgnat/s-dsaser.ads
! 5cb1a76cd39413d5999fafc7fa4d5ebf  gcc/ada/libgnat/s-dwalin.adb
! 084f7e86dd228433ab221bdae7980e25  gcc/ada/libgnat/s-dwalin.ads
! 5849b2ce53648069679b3c79897f6ba9  gcc/ada/libgnat/s-elaall.adb
! 6e9cdb003fbe4dbcf97b9ebe3b081011  gcc/ada/libgnat/s-elaall.ads
! 0c7ebd43e5f3a609d10631ab48475dbd  gcc/ada/libgnat/s-excdeb.adb
! e62b62bb54ff8cc8b47daefd802d0d5b  gcc/ada/libgnat/s-excdeb.ads
! a4d393eaec6042a6c62a364863f515da  gcc/ada/libgnat/s-except.adb
! 618111dc068b61f1167405d5cf1de5a1  gcc/ada/libgnat/s-except.ads
! 57021650a8f2984e82559c1e5a1d2e71  gcc/ada/libgnat/s-excmac__arm.adb
! ef3df614c397503a0b26761d44bdf8d5  gcc/ada/libgnat/s-excmac__arm.ads
! 0e6d51e944292f7945245944d0dbaf84  gcc/ada/libgnat/s-excmac__gcc.adb
! 0cbf5c4eb4d463d97770ed16291c5cef  gcc/ada/libgnat/s-excmac__gcc.ads
! b462b49efe916f9fe92d1dcbbe4e56e7  gcc/ada/libgnat/s-exctab.adb
! 435845f612b0c767154756994b8f1fda  gcc/ada/libgnat/s-exctab.ads
! 455c0950dad5d39d0c7da6d1e28ee309  gcc/ada/libgnat/s-exctra.adb
! 1b755fab20de186f3641630f3a0a2c61  gcc/ada/libgnat/s-exctra.ads
! cfbe279306c639355d05c2f9d3981229  gcc/ada/libgnat/s-exnflt.ads
! 8b9fba3d1809ac2dcf4bd59350a407c4  gcc/ada/libgnat/s-exnint.adb
! 63a340f7296adfd617e6fcc79489ee58  gcc/ada/libgnat/s-exnint.ads
! ed00612bbc667127b185d8777095d836  gcc/ada/libgnat/s-exnlfl.ads
! 5739cdfa61e4fdc833f91a8961d7fd73  gcc/ada/libgnat/s-exnllf.adb
! b580f8eb41744e12b00df91dfddc347b  gcc/ada/libgnat/s-exnllf.ads
! 5efcca08de1cbb31556b38a69d4a7fce  gcc/ada/libgnat/s-exnlli.adb
! 06f4e386e5f70b6751d0ed07a4de60f2  gcc/ada/libgnat/s-exnlli.ads
! b7112c9352aa22ba5ab212cf36296d15  gcc/ada/libgnat/s-exnllli.ads
! 1246249ea2091fef38626e059cebb0b3  gcc/ada/libgnat/s-expint.adb
! 0c8d8bddbec7d3c412910e8f72bf812b  gcc/ada/libgnat/s-expint.ads
! f98b347af7967ec2e2221bf445992aea  gcc/ada/libgnat/s-explli.adb
! 1a63ea0851dc4f0766a671f79f2b37b3  gcc/ada/libgnat/s-explli.ads
! 378469e9f7810368eadc92ce67731722  gcc/ada/libgnat/s-expllli.ads
! f8e9a18e0747e2352eb154a90f6b0422  gcc/ada/libgnat/s-explllu.ads
! 9e7d9a82fc2ce2a9bad1e3064e5ba35d  gcc/ada/libgnat/s-expllu.adb
! 02047628dae96246dedc6615f7a3c4c1  gcc/ada/libgnat/s-expllu.ads
! dbfc9d1ad1faa06e1119a3af4a031c66  gcc/ada/libgnat/s-expmod.adb
! 35c40c502d0b1f26e95e74f94fd4df5e  gcc/ada/libgnat/s-expmod.ads
! cfd42df23fdd401737826eb591fb9f44  gcc/ada/libgnat/s-exponn.adb
! 6730ef098f077b81993d2d8b3ef1fa7e  gcc/ada/libgnat/s-exponn.ads
! 5a180a4c84096ea2b77e757dde61f37f  gcc/ada/libgnat/s-exponr.adb
! 10134b1b236d9153d2a63627e54fa46c  gcc/ada/libgnat/s-exponr.ads
! e7c9db27c62c71cc3c3099750f38872f  gcc/ada/libgnat/s-expont.adb
! a8dc581fb0342b07121a746f8be9feb1  gcc/ada/libgnat/s-expont.ads
! 79f5e964e1d6fb8437c0bfad1625e552  gcc/ada/libgnat/s-exponu.adb
! 065cfa17012f4597d9f0d2f960c971d8  gcc/ada/libgnat/s-exponu.ads
! 6d58807c244d84c1a400160da1c7fcda  gcc/ada/libgnat/s-expuns.adb
! 51e2016b362336374a518eade743ce50  gcc/ada/libgnat/s-expuns.ads
! 6c4a06246412fe01117815b6be08191e  gcc/ada/libgnat/s-fatflt.ads
! bb2b101fb78ec64d5b4823705c4b8f52  gcc/ada/libgnat/s-fatgen.adb
! 458b3a93a133981edcb49705e41817d7  gcc/ada/libgnat/s-fatgen.ads
! 1c9954c2b854277ebab2ae066b660769  gcc/ada/libgnat/s-fatlfl.ads
! 11bffa4540f5a1bfcad16d0488569bf5  gcc/ada/libgnat/s-fatllf.ads
! 5bf0b0bc5cee3cdd9ac7e73bad45ff73  gcc/ada/libgnat/s-ficobl.ads
! 64d18ed0a594b7234bcdba0c6830fe91  gcc/ada/libgnat/s-filatt.ads
! 5f81d166c3fe26261441735ad1cf2039  gcc/ada/libgnat/s-fileio.adb
! aa3d83d3d332fc9adffe495c3dde5fa5  gcc/ada/libgnat/s-fileio.ads
! 34e200ef44d8fa197d0b2db7f931f7bb  gcc/ada/libgnat/s-finpri.adb
! 8fee755486c650531127ce32e3596046  gcc/ada/libgnat/s-finpri.ads
! 3316be2951c74ed3787356dc6cd74511  gcc/ada/libgnat/s-finroo.adb
! 3d926fd5fbda6e7e2e5cb10d2c397162  gcc/ada/libgnat/s-finroo.ads
! 8db2192ff7a8e1aa1195ee8a8c0a3721  gcc/ada/libgnat/s-flocon.adb
! d91f46deffa279bb57fd9569fd1d5fd1  gcc/ada/libgnat/s-flocon.ads
! 903da72e5ba371fda4f7d8a71f5250f9  gcc/ada/libgnat/s-flocon__none.adb
! dcc2e5e1c09eea3089c6281e248c1f8b  gcc/ada/libgnat/s-fode128.ads
! 5d54f969134b89ef30716adf1a365fc4  gcc/ada/libgnat/s-fode32.ads
! 071cc12f24f3f38fe8e357056523f4be  gcc/ada/libgnat/s-fode64.ads
! f185a92c208fa825ba30b54213983e10  gcc/ada/libgnat/s-fofi128.ads
! a7eae8a72160983d8f9f5f264c340efd  gcc/ada/libgnat/s-fofi32.ads
! d81aed3b2cbd0b583ff70ef15bc57355  gcc/ada/libgnat/s-fofi64.ads
! 6112086b7b65273a05fbd4d0c4d5d769  gcc/ada/libgnat/s-fore_d.adb
! 8492c24773f35562c7a5a578dcadbef9  gcc/ada/libgnat/s-fore_d.ads
! 7a19d936bfca657af062d714ac3fee5c  gcc/ada/libgnat/s-fore_f.adb
! ab759fd51a9df3577039c7b8f157383b  gcc/ada/libgnat/s-fore_f.ads
! 1a20bc4398963e39f89a7f64d0b500f7  gcc/ada/libgnat/s-forrea.adb
! cd4d4b0b5f7980853d859e9327ca0eb2  gcc/ada/libgnat/s-forrea.ads
! dba88b8ac4b816a11449b02a6cf3ddd9  gcc/ada/libgnat/s-gearop.adb
! c69f2f693273ed9adade2b01a9fa6559  gcc/ada/libgnat/s-gearop.ads
! 7111901712cc82f723032ce200ebe0ab  gcc/ada/libgnat/s-genbig.adb
! 258af6ad8c46e3935174f52a8be3bdd2  gcc/ada/libgnat/s-genbig.ads
! d7eca05160c255a32c468eb73d0d135b  gcc/ada/libgnat/s-geveop.adb
! a072b429f87266af287c57b0e720355e  gcc/ada/libgnat/s-geveop.ads
! e8a127fd78d0fb23966559b09511c8b5  gcc/ada/libgnat/s-gloloc.adb
! 4429afccbf07a2b6353b597fff650238  gcc/ada/libgnat/s-gloloc.ads
! 6da6d5f717975bfecbc7ca99e9c155dd  gcc/ada/libgnat/s-gloloc__mingw.adb
! 6c01fce093a3fe47a80122e0c2b0f6bb  gcc/ada/libgnat/s-htable.adb
! 4b15170c9f059bc9ca62b8a0cdafe99f  gcc/ada/libgnat/s-htable.ads
! 5a91c8b70ed7d80f096f6ea27dd06316  gcc/ada/libgnat/s-imad32.ads
! fe4289098a803888c170b381bd208a28  gcc/ada/libgnat/s-imad64.ads
! 176e59d6eede10f01a0c41f4b0ee7390  gcc/ada/libgnat/s-imagea.adb
! 475aefc794a3d783664f1db4a468e72c  gcc/ada/libgnat/s-imagea.ads
! f10b1fbcc52fa615e1a3240d91259f7f  gcc/ada/libgnat/s-imageb.adb
! 238043ab736e9dc11431e63e584b4707  gcc/ada/libgnat/s-imageb.ads
! 851d738ae22e352ce532fe3cd7642be9  gcc/ada/libgnat/s-imaged.adb
! 47d198c9ae1417dabf22b41e8201eef0  gcc/ada/libgnat/s-imaged.ads
! 3d717055f251d977fd5ec12f929c9c83  gcc/ada/libgnat/s-imagef.adb
! a5f52c9e7d725b1b8541587a737cc2ae  gcc/ada/libgnat/s-imagef.ads
! bb3b075f22ef55af115ac7b7bc9ce1c1  gcc/ada/libgnat/s-imagei.adb
! da607f479d30275882346a53073dc3cd  gcc/ada/libgnat/s-imagei.ads
! b7572284a5b25de83531c9885e980b6d  gcc/ada/libgnat/s-imagen.adb
! c934fabd25c1ec6d9c86fbbb358fc6ba  gcc/ada/libgnat/s-imagen.ads
! 750c075ff212d99ee391e91e889b1b30  gcc/ada/libgnat/s-imager.adb
! 14d3986c979f2f30d5c78e8b8c770af8  gcc/ada/libgnat/s-imager.ads
! 1e138d096d1c911f86d011c5d5a5f9c2  gcc/ada/libgnat/s-imageu.adb
! 060c060bf2b1894c65e3b4a0fe2ffffa  gcc/ada/libgnat/s-imageu.ads
! 9117448f96bc2f20b46266e775dc59d1  gcc/ada/libgnat/s-imagew.adb
! 0a6ce30dfa84c93f52e56fea6327ad43  gcc/ada/libgnat/s-imagew.ads
! 35cc75706edd719731873ba97f8ec688  gcc/ada/libgnat/s-imde128.ads
! 6fecbf12c16b3ec01853ed430db61215  gcc/ada/libgnat/s-imde32.ads
! 7429a1b951d9cfd460646d4bfb4b8cce  gcc/ada/libgnat/s-imde64.ads
! 2be827ee09877df894e6562297bc8faf  gcc/ada/libgnat/s-imen16.ads
! 04dc0f889175e5ba27cef26c0d6446dc  gcc/ada/libgnat/s-imen32.ads
! 979495c0c3f180f4801a95490db9299f  gcc/ada/libgnat/s-imenu8.ads
! 76f820cd5e507241b0d2672d7cb7c9be  gcc/ada/libgnat/s-imfi128.ads
! 1c37f0da05254eec7b4e552ee7c6dab9  gcc/ada/libgnat/s-imfi32.ads
! 0f716ca7a69d6224139e9c3527aa27c8  gcc/ada/libgnat/s-imfi64.ads
! 4bb1f71ac579aa6a467b6c803ad8a7f5  gcc/ada/libgnat/s-imgbiu.adb
! 2a2fe48092fbd8e49f8a5f6727b48778  gcc/ada/libgnat/s-imgbiu.ads
! 47f3b37f0a08fee47b2584f853a6676c  gcc/ada/libgnat/s-imgboo.adb
! 87a30fd36a9cfa8b90b8e82982ae60be  gcc/ada/libgnat/s-imgboo.ads
! 64c5c77a736e5bb7a56e44f3137cbaca  gcc/ada/libgnat/s-imgcha.adb
! 29e105ae36a8b0682c8dc530d8d268d2  gcc/ada/libgnat/s-imgcha.ads
! f8a43d774b53a2aa9fc201e2a67ced67  gcc/ada/libgnat/s-imgflt.ads
! 2c9360914eeeb627cb9342dd7c02510d  gcc/ada/libgnat/s-imgint.adb
! 5a39dcd72606ddffb3263aeb6562308c  gcc/ada/libgnat/s-imgint.ads
! a412931703c0ace9751a161dfe56206d  gcc/ada/libgnat/s-imglfl.ads
! 616f449bbb0afbfa9ef0f59d4d2b6a6b  gcc/ada/libgnat/s-imgllb.adb
! dc8df1ec213767a61c7230bf1c08eb8f  gcc/ada/libgnat/s-imgllb.ads
! a182157a69bf776d67cecb5ca4959275  gcc/ada/libgnat/s-imgllf.ads
! 7eeb198d9bb0fcebcc4c311fb42705b3  gcc/ada/libgnat/s-imglli.adb
! 92a9db98e4bab035634b0312d8bd0118  gcc/ada/libgnat/s-imglli.ads
! 44449117e13ae2b911ae4ee4b3542bc5  gcc/ada/libgnat/s-imglllb.ads
! 6536f2362eddb8e05c654bbe3088f4b8  gcc/ada/libgnat/s-imgllli.ads
! 71acdc94fcc8da4a9dee883eb5c22677  gcc/ada/libgnat/s-imglllu.ads
! d8a524fb024074420a74152df3b0ad04  gcc/ada/libgnat/s-imglllw.ads
! f25b2c945b71deed6f3dc09e644d0f5f  gcc/ada/libgnat/s-imgllu.adb
! 07cc440076b83689d4f991b6e23f7afa  gcc/ada/libgnat/s-imgllu.ads
! bf8c82e7175fd9232505a62300ce19a7  gcc/ada/libgnat/s-imgllw.adb
! 4723c0f0703b8362896994b557e5096a  gcc/ada/libgnat/s-imgllw.ads
! 82752dcaa00e94c3b6424466196b6351  gcc/ada/libgnat/s-imgrea.adb
! 73911dd78984e3aef1b5bda530ba8272  gcc/ada/libgnat/s-imgrea.ads
! d41a95491929f9c91d94918466a781be  gcc/ada/libgnat/s-imguns.adb
! 19f7b38a694df4e9903bf6a534fa887a  gcc/ada/libgnat/s-imguns.ads
! 0e49c97257ec2975db9d0f604e02095a  gcc/ada/libgnat/s-imguti.adb
! 67119174f6511087eb651b8c77469a4c  gcc/ada/libgnat/s-imguti.ads
! 99d8a182442a2417123357d590575ebe  gcc/ada/libgnat/s-imgwch.adb
! 1ec581ee914574368dd25523562673cd  gcc/ada/libgnat/s-imgwch.ads
! 1e630ee379053f551572e4e22c0e688b  gcc/ada/libgnat/s-imgwiu.adb
! fa5cc8a9058dc62c6aec7b794c16ab69  gcc/ada/libgnat/s-imgwiu.ads
! fc7896895920392084eddbb9cf215fe0  gcc/ada/libgnat/s-io.adb
! bd8f0326fdd88419b7133f266ee850ea  gcc/ada/libgnat/s-io.ads
! f61059e793b45f0d2f02734c62b2556f  gcc/ada/libgnat/s-llflex.ads
! 8386abdcc12359a99ef2ecce5932800c  gcc/ada/libgnat/s-maccod.ads
! d204fe07a375d201af2cf120a23835f8  gcc/ada/libgnat/s-mantis.adb
! 9aaf888aa30eb07e6b1a763abdb51a83  gcc/ada/libgnat/s-mantis.ads
! e6c19b827c61cd974fd2830b09313542  gcc/ada/libgnat/s-mastop.adb
! 11a1f5bb972920f47fd7985cb6180af1  gcc/ada/libgnat/s-mastop.ads
! 2b8a1d46e579791e34ee731daccf1f7c  gcc/ada/libgnat/s-memcop.ads
! 52c8fddcd7bd3458d24fd049546e5863  gcc/ada/libgnat/s-memory.adb
! 3ff897975348f180a3a78ebfb09a7c82  gcc/ada/libgnat/s-memory.ads
! 1a0ca389f4de80079341d3c4de8be446  gcc/ada/libgnat/s-mmap.adb
! 7ebf107aceaad0a8a6e8949b0ab7d836  gcc/ada/libgnat/s-mmap.ads
! a082c017e63ded5e1c30c4df865f4ac9  gcc/ada/libgnat/s-mmauni__long.ads
! 1ff4a6bb9d92f7cf7fa9b61760502ef3  gcc/ada/libgnat/s-mmosin__mingw.adb
! 8998c97463b260c18bb5687b9f28b0dd  gcc/ada/libgnat/s-mmosin__mingw.ads
! c20f7e38949b98743d7040f45161cb7b  gcc/ada/libgnat/s-mmosin__unix.adb
! c5bfdcbf4937b7132da7b6efcee7b608  gcc/ada/libgnat/s-mmosin__unix.ads
! 94c2fa847ed9d778e72992864fd68d10  gcc/ada/libgnat/s-multip.adb
  6e044dda0fdc55ee526d2b32cbef4cdc  gcc/ada/libgnat/s-multip.ads
! 1490c4815f1ec19868873d38e6e46dba  gcc/ada/libgnat/s-objrea.adb
! f55e613fad450190ad15dd6d0f422d8c  gcc/ada/libgnat/s-objrea.ads
! b69c7901aee2edc8cf4a8493076c2aa2  gcc/ada/libgnat/s-optide.adb
! c7c5c8ad54945e8f32150b0178792724  gcc/ada/libgnat/s-os_lib.adb
! 1565696a40e80decf7ba156baca14158  gcc/ada/libgnat/s-os_lib.ads
! 03bc482ee69c65fe92b39f1ce7930d6a  gcc/ada/libgnat/s-oslock__darwin.ads
! 5c83eda90f70fe408555120ab0bf8c49  gcc/ada/libgnat/s-oslock__dummy.ads
! 85136e6a1f5a717d7a5cc69d947bb97f  gcc/ada/libgnat/s-oslock__mingw.ads
! bccae50c3aebaa3825eecec9e231d119  gcc/ada/libgnat/s-oslock__posix.ads
! 2158713d9c3802aee22b87242b631d3b  gcc/ada/libgnat/s-oslock__solaris.ads
! 65603229d9f4223cb508dec41ff44b72  gcc/ada/libgnat/s-oslock__vxworks.ads
! 4a8667e553b8c9751c36dc05866fd744  gcc/ada/libgnat/s-osprim.ads
! c7852c68220aa9be483a81b8b896e8dc  gcc/ada/libgnat/s-osprim__darwin.adb
! 48c6e76a473307c93a1078cd0a2bbfc0  gcc/ada/libgnat/s-osprim__lynxos.ads
! 76d5253766b24b8bed9dee99bc937a7a  gcc/ada/libgnat/s-osprim__mingw.adb
! 5d820c10bb0cfc87742f3251e8b396f4  gcc/ada/libgnat/s-osprim__posix.adb
! a9de2a9535762f16bcfd91d8af9c94c8  gcc/ada/libgnat/s-osprim__posix2008.adb
! 34bfd8c03e2877aad3a4b5fb8e8e38cb  gcc/ada/libgnat/s-osprim__rtems.adb
! 41e3c6d7635a7a4f3f2d4aa8d56e21ba  gcc/ada/libgnat/s-osprim__unix.adb
! 8445397e350b75b3478ac24ab3f1da67  gcc/ada/libgnat/s-pack03.adb
! 4484afaeb5aa30d825adad1a54ad9bdd  gcc/ada/libgnat/s-pack03.ads
! 26ae72c082c47d79f9dcab193cb8347f  gcc/ada/libgnat/s-pack05.adb
! eda86a61912ffeacab35f3ce75ad8b75  gcc/ada/libgnat/s-pack05.ads
! 421ac00a0cbb4dae6f33096272aa2a9f  gcc/ada/libgnat/s-pack06.adb
! 5048f0b4edaf5325992864d1b17d4018  gcc/ada/libgnat/s-pack06.ads
! c82047cd537cd03a0ea330d692876b64  gcc/ada/libgnat/s-pack07.adb
! dd8bc7def12eb7d0003dc1a6b1529777  gcc/ada/libgnat/s-pack07.ads
! 08e2cd53abb868f46a2ac9e3eaa207bf  gcc/ada/libgnat/s-pack09.adb
! 4ba860501915cfcc9ca068dc358e6865  gcc/ada/libgnat/s-pack09.ads
! e4c7c6399fa97ae1973ccd98061d3aca  gcc/ada/libgnat/s-pack10.adb
! df0c23b30cb47d1e03c54d73aa137124  gcc/ada/libgnat/s-pack10.ads
! 1c1203f7a0b578fe3f26367a00b15e6b  gcc/ada/libgnat/s-pack100.adb
! 996c3533c260e96f7f8fb9b057b4a17f  gcc/ada/libgnat/s-pack100.ads
! 0ce4eab21c803d23b939d8ec37492a3e  gcc/ada/libgnat/s-pack101.adb
! 0209c01dbbdeed2e585107c6ff8810b1  gcc/ada/libgnat/s-pack101.ads
! b1f05289096f3cc32994515dcafb9c74  gcc/ada/libgnat/s-pack102.adb
! 094c6d822b117f5c9369efac956414eb  gcc/ada/libgnat/s-pack102.ads
! e47334e256e4c8e74be5ab2036ee38cc  gcc/ada/libgnat/s-pack103.adb
! 8434a1fbb5e972e1241dabf25ed4e6b5  gcc/ada/libgnat/s-pack103.ads
! 7bfdf7f663f3fce59eaf557c9266094c  gcc/ada/libgnat/s-pack104.adb
! b9945447546d824f90feac3f831f157a  gcc/ada/libgnat/s-pack104.ads
! c85b481ea90e8fb211223f1a60b954c4  gcc/ada/libgnat/s-pack105.adb
! 64faaf353b055ee77c1c5c749f154bed  gcc/ada/libgnat/s-pack105.ads
! ff7ddb4786853e05ef13d5be7c0ec949  gcc/ada/libgnat/s-pack106.adb
! 5c3de39c50d7bb63ea46d3d03a1e6ff4  gcc/ada/libgnat/s-pack106.ads
! f439ec6ba1399904d1718993b6cfbb72  gcc/ada/libgnat/s-pack107.adb
! 34cca66ef5c42abc607aa62386d4c2b4  gcc/ada/libgnat/s-pack107.ads
! 64788aa393653784998085721fda22e2  gcc/ada/libgnat/s-pack108.adb
! 321183c3a67865e49aacaa3300063f93  gcc/ada/libgnat/s-pack108.ads
! 44f416d072a37367ca3b789b16e75a65  gcc/ada/libgnat/s-pack109.adb
! 4174f60176ef78c2f7ab1f1fbec14117  gcc/ada/libgnat/s-pack109.ads
! 4df35f2523d4631f0eb5900aa16430c3  gcc/ada/libgnat/s-pack11.adb
! 2ed8d4c587cf3fb1a8288801ba8b2fa2  gcc/ada/libgnat/s-pack11.ads
! a3862be0f5fbc02b1e19cf1e876f639c  gcc/ada/libgnat/s-pack110.adb
! f5ece542fe8c60da322f57bda2dcf9ef  gcc/ada/libgnat/s-pack110.ads
! c137d6131d7aab9db25c9467efa7b62a  gcc/ada/libgnat/s-pack111.adb
! de7063d298b47f3b3a9a0c39f6c4ff0f  gcc/ada/libgnat/s-pack111.ads
! e5c39353058433b038efb6dd496eb74e  gcc/ada/libgnat/s-pack112.adb
! 1dc36e5d0243d8318040ddec5c5f019d  gcc/ada/libgnat/s-pack112.ads
! df8fcd7a7d12a8786d53ee570618c32d  gcc/ada/libgnat/s-pack113.adb
! efefd65433843c96ed3d8dfc0439e230  gcc/ada/libgnat/s-pack113.ads
! 9ca5bf56928da52f1ba251ef2c86ff1c  gcc/ada/libgnat/s-pack114.adb
! 1a72a60695618527e4f8a3cf974a21ac  gcc/ada/libgnat/s-pack114.ads
! fa56349d8189e514a04d0b49126e2b74  gcc/ada/libgnat/s-pack115.adb
! 084869a481c4fa9e4e748ba2cdbaf82e  gcc/ada/libgnat/s-pack115.ads
! b952cc0d19c4358cf68e721e926de414  gcc/ada/libgnat/s-pack116.adb
! 98fd76b3c9d03961e7c2879860a0ff1f  gcc/ada/libgnat/s-pack116.ads
! b634af61acd89ea600a71cafef402631  gcc/ada/libgnat/s-pack117.adb
! 541335c2a7b1d84c36c828b0f0e50887  gcc/ada/libgnat/s-pack117.ads
! 9fcdda4fd4126078cdc9f3def4ba0bda  gcc/ada/libgnat/s-pack118.adb
! 18442fa2430355a018d90a7ec0dc4aee  gcc/ada/libgnat/s-pack118.ads
! c671de18bc5b183fa946e4489604f671  gcc/ada/libgnat/s-pack119.adb
! 122afa85bbf829080f9a028bed01b88b  gcc/ada/libgnat/s-pack119.ads
! eb2e22efb3557482fa9d1c2cab320b64  gcc/ada/libgnat/s-pack12.adb
! 8251a23f996e52f79a7dd2ab36dce03c  gcc/ada/libgnat/s-pack12.ads
! 4f522005f5eb5f70dbb6788e37d3e872  gcc/ada/libgnat/s-pack120.adb
! 7ee00bb2edecc07f979230164112de16  gcc/ada/libgnat/s-pack120.ads
! a85b7b06a2bf93a0956c2046bf5016c0  gcc/ada/libgnat/s-pack121.adb
! 36800e41ca9d4aff3fa3eba7eef75a09  gcc/ada/libgnat/s-pack121.ads
! 950d137393af8abc4aad750aa7e42d73  gcc/ada/libgnat/s-pack122.adb
! 9e45991ac1db4037bbef1aa0597863de  gcc/ada/libgnat/s-pack122.ads
! 47155fab0110b3f283968f57524fdd30  gcc/ada/libgnat/s-pack123.adb
! adb2961574482c5838843999ab5f3250  gcc/ada/libgnat/s-pack123.ads
! 76ffe6a1e176646cac46527da64a16f4  gcc/ada/libgnat/s-pack124.adb
! 31e3b7f1a2fe0060ca4d3c58ea4f3b9b  gcc/ada/libgnat/s-pack124.ads
! b463d276860e13ebf1f3656d70c50a14  gcc/ada/libgnat/s-pack125.adb
! f53ad4cffb18b4b17f8f89ae40bb8a80  gcc/ada/libgnat/s-pack125.ads
! 1ced6fc153eb2596157821c0955a1165  gcc/ada/libgnat/s-pack126.adb
! 9bf3218939da7137086db72fb2ef40ae  gcc/ada/libgnat/s-pack126.ads
! 5ff6a41bc65e89003f83032d07b351c5  gcc/ada/libgnat/s-pack127.adb
! b9fb42cb2dc843120df7ea51ffb3f8d8  gcc/ada/libgnat/s-pack127.ads
! 87419943ee83002d86259edde0b6ada8  gcc/ada/libgnat/s-pack13.adb
! 4ee8b6cc61ccacddf90f727d37f5d15a  gcc/ada/libgnat/s-pack13.ads
! 27e005593b79129a657e12a56022bc6d  gcc/ada/libgnat/s-pack14.adb
! 060737603e5ad3a50d64d861a9489078  gcc/ada/libgnat/s-pack14.ads
! 17d63858a56627855e4c6f629895ea7a  gcc/ada/libgnat/s-pack15.adb
! 03e7de61d3e00638d51de7b2291adfcb  gcc/ada/libgnat/s-pack15.ads
! 7f1e0e754c41d54104845893082f33e5  gcc/ada/libgnat/s-pack17.adb
! e7f730d56942d24958854d16e4a3b920  gcc/ada/libgnat/s-pack17.ads
! 51cc3eba5828d6dabf33f11bbbd0b346  gcc/ada/libgnat/s-pack18.adb
! 47d46c033a52057732928c416660b5b2  gcc/ada/libgnat/s-pack18.ads
! 57258475b582d09018d5f02d64d78340  gcc/ada/libgnat/s-pack19.adb
! 314c5acbe3166d813fbdc6c3ba40662b  gcc/ada/libgnat/s-pack19.ads
! 34c3193fb652ba32c03472c1029e2646  gcc/ada/libgnat/s-pack20.adb
! 615ab9f286d36865e0401001aa23be60  gcc/ada/libgnat/s-pack20.ads
! 1468b290bfeb4982361ec05687d2a413  gcc/ada/libgnat/s-pack21.adb
! 2923b8cdebe40ed0cb1af2b28b6e61e0  gcc/ada/libgnat/s-pack21.ads
! 8a07487f5f8a2a1770e07d82c4109acd  gcc/ada/libgnat/s-pack22.adb
! 9072a9b34d0130094708224efe922354  gcc/ada/libgnat/s-pack22.ads
! e57a7fc17872299bc04ef75dff3f3ad2  gcc/ada/libgnat/s-pack23.adb
! 72db44b039edb5e378c5c6a4c4d1e2e4  gcc/ada/libgnat/s-pack23.ads
! db8cb055612f6e43731b50c1ca669cde  gcc/ada/libgnat/s-pack24.adb
! b51413b1df6d60d48e171032931097df  gcc/ada/libgnat/s-pack24.ads
! 0b964c2636fc834b31652153ee22c569  gcc/ada/libgnat/s-pack25.adb
! 65b93e6a3d548555ce0d92d4b2d25552  gcc/ada/libgnat/s-pack25.ads
! 644d261a994c569220b8f0f6f73c1fd8  gcc/ada/libgnat/s-pack26.adb
! ef3ae1af07b2084b526169c21068c23a  gcc/ada/libgnat/s-pack26.ads
! 2d0e2f9b7512c0ea9f000641ce59b9b2  gcc/ada/libgnat/s-pack27.adb
! b5be8b8486d1d26777153d76b4d30918  gcc/ada/libgnat/s-pack27.ads
! cb2851dbf821952ff46f7b45a872ec89  gcc/ada/libgnat/s-pack28.adb
! 2c87eeb43a8efd77b0145fa4e1bff494  gcc/ada/libgnat/s-pack28.ads
! ce59a0e0a5ad253d51153a67fe6ab835  gcc/ada/libgnat/s-pack29.adb
! 8b8b5594c612443372fad47b35b760be  gcc/ada/libgnat/s-pack29.ads
! ffc663d9e5b0d215a62b77d5282ed53d  gcc/ada/libgnat/s-pack30.adb
! 08f769461f2d7f7ce543af1268025f9e  gcc/ada/libgnat/s-pack30.ads
! 7bcf1050c0695fce43dd0de4ddb273fd  gcc/ada/libgnat/s-pack31.adb
! adde83286df55b67eec5730b70c51c55  gcc/ada/libgnat/s-pack31.ads
! 1ceeb6ad3a5cb3fb1bfee0501e7200b7  gcc/ada/libgnat/s-pack33.adb
! 1b32f05192eba167399afd7bc47ab670  gcc/ada/libgnat/s-pack33.ads
! a2b3904361ecd4a40b6834981f6a7071  gcc/ada/libgnat/s-pack34.adb
! 9ea53a2d7acf6380a8614dbdf33d5b29  gcc/ada/libgnat/s-pack34.ads
! d8d31033aae4b05e3da8a63a477280a1  gcc/ada/libgnat/s-pack35.adb
! d218648c17cccfb3bee460180835877c  gcc/ada/libgnat/s-pack35.ads
! 05ffbf7ee7db4f453acb0fb198d2fdf1  gcc/ada/libgnat/s-pack36.adb
! 3403ecb7c7cabd4839e504c63fde6e3f  gcc/ada/libgnat/s-pack36.ads
! c22e1471217827341f81124d5464c3e4  gcc/ada/libgnat/s-pack37.adb
! 01f520ffe5404709e157758fc3bd226f  gcc/ada/libgnat/s-pack37.ads
! a44ebfba04c3a2b0ea5ee7ae78355d46  gcc/ada/libgnat/s-pack38.adb
! c0e9342366560ea6c13c3620f55c09e9  gcc/ada/libgnat/s-pack38.ads
! 1df7ff6644aca3d8ae62fbe8f827278e  gcc/ada/libgnat/s-pack39.adb
! eb8039bfb6eb5e7eaf09e0234c694b41  gcc/ada/libgnat/s-pack39.ads
! 32b6afc4f48700325c33e9d7ab871ef2  gcc/ada/libgnat/s-pack40.adb
! 897c3b7311b80d7b820355dd451fc15a  gcc/ada/libgnat/s-pack40.ads
! f0c5af8ec7fce981c6e2ea1129d376a5  gcc/ada/libgnat/s-pack41.adb
! 4668ece967814d898f8b0a3dd2350a9c  gcc/ada/libgnat/s-pack41.ads
! f2b3270e0ca363019070591a64ed765d  gcc/ada/libgnat/s-pack42.adb
! 298504bb69f790c894229bc1755f6a00  gcc/ada/libgnat/s-pack42.ads
! f796dc9f6bf051e73a2416ca2b075cfa  gcc/ada/libgnat/s-pack43.adb
! a90cd4a729c5e956afc2ba893754e196  gcc/ada/libgnat/s-pack43.ads
! bdf4811d5f0c9bdbc4a4cd2ea2536d8d  gcc/ada/libgnat/s-pack44.adb
! cac8e2165a97969c4c5ba3ace84a1606  gcc/ada/libgnat/s-pack44.ads
! db7c623ebb63676d889a18314f37ec3f  gcc/ada/libgnat/s-pack45.adb
! ce2f3c4725d5d579594e9d6ff7586eab  gcc/ada/libgnat/s-pack45.ads
! 8d08669d752a8109b916d2850293cb63  gcc/ada/libgnat/s-pack46.adb
! c2cfa29e268159c21f91ef1e659d75b2  gcc/ada/libgnat/s-pack46.ads
! 5c7025a3fc431a9fc086e55850d0ce8d  gcc/ada/libgnat/s-pack47.adb
! 6972cd5dd3efacc139065ac66a048d2d  gcc/ada/libgnat/s-pack47.ads
! 88d477a3bc7f14ff92340a9dd870866e  gcc/ada/libgnat/s-pack48.adb
! 82d8e43134c115b88e75425cc457928d  gcc/ada/libgnat/s-pack48.ads
! 76614ba8fe39512cc8d599ab682b1cbe  gcc/ada/libgnat/s-pack49.adb
! fc6a3d7b9eb55235a7156cbff1c31cbf  gcc/ada/libgnat/s-pack49.ads
! d7c2511e812ef507ba6722f61442cd95  gcc/ada/libgnat/s-pack50.adb
! f63c61e8e46c8407da544e6a31728df1  gcc/ada/libgnat/s-pack50.ads
! b562cea580554a19f898c275b54b7195  gcc/ada/libgnat/s-pack51.adb
! d31ac70ea85aa6e3f132b67fa5d83604  gcc/ada/libgnat/s-pack51.ads
! 017765f139d4aa3697cf93af87485529  gcc/ada/libgnat/s-pack52.adb
! dfa6e349d6fa824f6d8dc26a603a0fed  gcc/ada/libgnat/s-pack52.ads
! 33aaa7253ffd9db081f504e46a0a838d  gcc/ada/libgnat/s-pack53.adb
! 224a6ed72535ccad10ed4faf3f21ddfe  gcc/ada/libgnat/s-pack53.ads
! 628c2ec9d74ef9f609a31cdaa69befd0  gcc/ada/libgnat/s-pack54.adb
! 5cbbc457d2875c8dd35421e7a643bdf6  gcc/ada/libgnat/s-pack54.ads
! 9c2eef9726f01b6290563b64a3056985  gcc/ada/libgnat/s-pack55.adb
! 297677389d66f9d39d18ceac0ed63592  gcc/ada/libgnat/s-pack55.ads
! b29a76644eb156ecd0744131db86ad71  gcc/ada/libgnat/s-pack56.adb
! e145699fffb30c9dc1e0ee70bba030ee  gcc/ada/libgnat/s-pack56.ads
! 89a8ce2882730c488db54a2c4a4f080d  gcc/ada/libgnat/s-pack57.adb
! 26747b7e06dfa8979c597614965374f2  gcc/ada/libgnat/s-pack57.ads
! 7b31b1df58e84749df579ac2edb21bc9  gcc/ada/libgnat/s-pack58.adb
! fccffd95df7a1fea2cf9904e32907b34  gcc/ada/libgnat/s-pack58.ads
! dd74d9486717a27549311fbaf0961161  gcc/ada/libgnat/s-pack59.adb
! d20a1c65487a1614052004117b0b03c6  gcc/ada/libgnat/s-pack59.ads
! 4ccb0089aa9eaabcca233fea5c91a865  gcc/ada/libgnat/s-pack60.adb
! d019272f08496fd86b36fb95ce707b36  gcc/ada/libgnat/s-pack60.ads
! 905cf1ae1640d2096951348d68aecd84  gcc/ada/libgnat/s-pack61.adb
! d25dc069016a61b2d92cd722c3edfe8e  gcc/ada/libgnat/s-pack61.ads
! 7b92a4bb8da3af097bacaff3d2f38f17  gcc/ada/libgnat/s-pack62.adb
! e9dfcf357b01657dab5012b2cf17488a  gcc/ada/libgnat/s-pack62.ads
! 9658f3dc60368c092777df367cab5086  gcc/ada/libgnat/s-pack63.adb
! 439a3e35d283b1dc20122a2cc75d2478  gcc/ada/libgnat/s-pack63.ads
! 822e31d18b1710179535c434226f49e4  gcc/ada/libgnat/s-pack65.adb
! c61b7aa3566d447150b9c4028342885b  gcc/ada/libgnat/s-pack65.ads
! 50003fec2623c087255e86a37338f32c  gcc/ada/libgnat/s-pack66.adb
! 206f728b2f84acec05f6b62b54dbe338  gcc/ada/libgnat/s-pack66.ads
! 9f60b576e04c34bba96f2fe94d892022  gcc/ada/libgnat/s-pack67.adb
! 1b9b7bcbd10c8b0f5d720dcf7f4d9d00  gcc/ada/libgnat/s-pack67.ads
! 7d09b03180610913b7760995e60ea979  gcc/ada/libgnat/s-pack68.adb
! c80d06bda2cd1d8f090165d7a21e0281  gcc/ada/libgnat/s-pack68.ads
! ec0b43c504a7c5f1241d2012c1ba4e6b  gcc/ada/libgnat/s-pack69.adb
! 2a4fd19078e461731972c0d2a1963bb3  gcc/ada/libgnat/s-pack69.ads
! 579c157eadcc5158ca9ec28c745550b8  gcc/ada/libgnat/s-pack70.adb
! b96aafdc02a811754a0868ee8e9aee26  gcc/ada/libgnat/s-pack70.ads
! 74ed3487e82dc0ed40c2e820d9e48bb5  gcc/ada/libgnat/s-pack71.adb
! 33e93f2b6d90a4bb7cd97c65b494af30  gcc/ada/libgnat/s-pack71.ads
! 72fb6ba64080a510fd3904d3a9515afb  gcc/ada/libgnat/s-pack72.adb
! 8d19e0ac411c7a12194a5683d9b40065  gcc/ada/libgnat/s-pack72.ads
! b29dd98373e7de1444889f6a31e49171  gcc/ada/libgnat/s-pack73.adb
! 14ebd631537b458fd9ed33e3d11a4762  gcc/ada/libgnat/s-pack73.ads
! f858a0b51977f77ca98b42a95ffde6b5  gcc/ada/libgnat/s-pack74.adb
! 5dd52e5f6fd8b4bff0a0d4af5cde3a1d  gcc/ada/libgnat/s-pack74.ads
! 7df56223240e0f0738f2c51282936f06  gcc/ada/libgnat/s-pack75.adb
! 6f9d370bcd497c09cac2c29d6f621760  gcc/ada/libgnat/s-pack75.ads
! 3cc6d9f34e0c9375a18c4d1e57306a1b  gcc/ada/libgnat/s-pack76.adb
! fc0702bc41be4f744b3184759b66814d  gcc/ada/libgnat/s-pack76.ads
! 0dcd1f41951d6222b5c7693e9deb5ad9  gcc/ada/libgnat/s-pack77.adb
! 109a230fe3081a97f286ab6b48faaf9d  gcc/ada/libgnat/s-pack77.ads
! 86e06e8077529164fb70914fde93ff0c  gcc/ada/libgnat/s-pack78.adb
! 71d7730afd940fc545e9a5c979204b5c  gcc/ada/libgnat/s-pack78.ads
! 8223abd16aa992904d584bb8e5b18802  gcc/ada/libgnat/s-pack79.adb
! 7c4b6b0ead70dab37367cc0fbbb472ad  gcc/ada/libgnat/s-pack79.ads
! 6b8b22fffa02e9c66ca084c9aab1ec46  gcc/ada/libgnat/s-pack80.adb
! 9f3a230963616c6c24b4be3a61ecec68  gcc/ada/libgnat/s-pack80.ads
! 352af1140875f56665da38f183e3e1a1  gcc/ada/libgnat/s-pack81.adb
! 74444adfa8e9e2904168157e691036bb  gcc/ada/libgnat/s-pack81.ads
! 0344e8cfafc558e1eb2b69c2f6aba83d  gcc/ada/libgnat/s-pack82.adb
! 52cb574f088460628be515b4585ea94b  gcc/ada/libgnat/s-pack82.ads
! fad0b74d9f8f877b7eddf9407ac44979  gcc/ada/libgnat/s-pack83.adb
! 59c730893f4d92f23267129029fc695e  gcc/ada/libgnat/s-pack83.ads
! 508a7c7e7581470867e9ce9a79236dca  gcc/ada/libgnat/s-pack84.adb
! 98fef2a82981d9730fb0c003d562ad02  gcc/ada/libgnat/s-pack84.ads
! 717e00c675e155d556346d8c40d2ec56  gcc/ada/libgnat/s-pack85.adb
! 386149b47fe5d2af9a465184b5bb3800  gcc/ada/libgnat/s-pack85.ads
! 6a836efc3c9ce70422286d4301bdf5a7  gcc/ada/libgnat/s-pack86.adb
! b33864cce9067ca9afffc7166ad4b2dd  gcc/ada/libgnat/s-pack86.ads
! 915d5e2dbeaa211a063ebe62a85fbabb  gcc/ada/libgnat/s-pack87.adb
! 833858e3ba5f5502f120150030bc62e8  gcc/ada/libgnat/s-pack87.ads
! 9d462d901fe542bac6a9e6706a728367  gcc/ada/libgnat/s-pack88.adb
! 961c3a0ad1a17568d42ff3c7f6a05be2  gcc/ada/libgnat/s-pack88.ads
! 4b9c3965cbd855e4f42af42964adf198  gcc/ada/libgnat/s-pack89.adb
! 334dd113a1b759955545329a6231281b  gcc/ada/libgnat/s-pack89.ads
! 788d6d66f578ed6e09486727e6e018a0  gcc/ada/libgnat/s-pack90.adb
! b9bcfb7b38f7d33c4dc07fdce10535a0  gcc/ada/libgnat/s-pack90.ads
! 60ace55ae5aa7921830f54fc448202ae  gcc/ada/libgnat/s-pack91.adb
! d332994f71fb4fd616ecdd7961cd6b34  gcc/ada/libgnat/s-pack91.ads
! a817c4fb50819851bb4639d7c4f97964  gcc/ada/libgnat/s-pack92.adb
! aaadd6e360d04a11963fea73f2741c14  gcc/ada/libgnat/s-pack92.ads
! ec6d7b873a74958761de9d33add90a4a  gcc/ada/libgnat/s-pack93.adb
! 2f0eb424a4485fb5154d6fdf06441366  gcc/ada/libgnat/s-pack93.ads
! 6bdb386d15beea320f4c98c40c72ff2f  gcc/ada/libgnat/s-pack94.adb
! ad137af20edc506a8485eff2994837ee  gcc/ada/libgnat/s-pack94.ads
! 2deb6aa4257abbf2a66d4bfeed73a7ef  gcc/ada/libgnat/s-pack95.adb
! 43887f390f01925d6b1eaf96268e6516  gcc/ada/libgnat/s-pack95.ads
! 9900ddb9f2cbefbc540887045a80b197  gcc/ada/libgnat/s-pack96.adb
! 9e2b130c831626fc49a926e9996b4165  gcc/ada/libgnat/s-pack96.ads
! 981d0e0826a3f25a781f11999e7c1c38  gcc/ada/libgnat/s-pack97.adb
! 3e55fe0c086a73f983ed9455308a92de  gcc/ada/libgnat/s-pack97.ads
! 4c33405f5c9bc81c628356b44b36ef2b  gcc/ada/libgnat/s-pack98.adb
! 0f2525f5ec7471d458f2c7d917b69ae7  gcc/ada/libgnat/s-pack98.ads
! b63e4e3a64b55c0bc18cab6b0ae38a28  gcc/ada/libgnat/s-pack99.adb
! 19e8e19386ed6c99785d38197fa5867f  gcc/ada/libgnat/s-pack99.ads
! 2b53beb8330b1e241fb7342455eff5c7  gcc/ada/libgnat/s-parame.adb
! f8b0af3f069fa1afc6cb494707aa01bc  gcc/ada/libgnat/s-parame.ads
! 6c90b516e91707e5a42faee6abea07e0  gcc/ada/libgnat/s-parame__aarch64-linux.adb
! a6819d1f5218269d58d4e0c163c9ccfe  gcc/ada/libgnat/s-parame__hpux.ads
! 8ba4d8d2d7910f3a768a3bb149369bba  gcc/ada/libgnat/s-parame__qnx.adb
! 2c4660409a1c14007e012cd49d491538  gcc/ada/libgnat/s-parame__rtems.adb
! 259d8377e8f19b3b63016567a5c9915e  gcc/ada/libgnat/s-parame__vxworks.adb
! d9e6bb0a317997898545a1ab7a626fbd  gcc/ada/libgnat/s-parame__vxworks.ads
! bbe5cedc525206cecd8b81632f76dc9a  gcc/ada/libgnat/s-parint.adb
! 7ee2487ac127388f2acbe1d9c862ec7a  gcc/ada/libgnat/s-parint.ads
! 28208509486242e448ee2da92580ebed  gcc/ada/libgnat/s-pehage.adb
! 188f26e38e87cac69c070a7918fc98b2  gcc/ada/libgnat/s-pehage.ads
! f62d4a2694286a61a70ba155f8706d94  gcc/ada/libgnat/s-pooglo.adb
! 2225771b344236fbc6f6d221b9099ed1  gcc/ada/libgnat/s-pooglo.ads
! c0fc20a72cfbbb04f827541ef9ee57e6  gcc/ada/libgnat/s-pooloc.adb
! 4f0e8e69026704f1c8dc1d04293eea4c  gcc/ada/libgnat/s-pooloc.ads
! cdf2e0b4786911822a9ea96aaa3dfd22  gcc/ada/libgnat/s-poosiz.adb
! a7e6e14c92cb59ef4bbc69c304ba4fce  gcc/ada/libgnat/s-poosiz.ads
! 4e378a19263a045a3c2704e5365e1720  gcc/ada/libgnat/s-powflt.ads
! bbff19b1bdcbee260e9d202be7c6f54f  gcc/ada/libgnat/s-powlfl.ads
! c2f455a3f2a5ab0c8d91d2564d8433c8  gcc/ada/libgnat/s-powllf.ads
! 9ce761fe3b9510784d4b71960594b3f3  gcc/ada/libgnat/s-purexc.ads
! 970d698e3b19d59a1ba36c9b68e2f089  gcc/ada/libgnat/s-putima.adb
! 1007aa45fb1f962fbfa5b9d481ace7f7  gcc/ada/libgnat/s-putima.ads
! 7519c3acbb404101b743b46b17e62251  gcc/ada/libgnat/s-rannum.adb
! 3b04d6e74da3e6faee1b70643453ea4a  gcc/ada/libgnat/s-rannum.ads
! d85ae3414350bfbea61abc984dace37a  gcc/ada/libgnat/s-ransee.adb
! 130dd769166f0ed66201dcf383802c92  gcc/ada/libgnat/s-ransee.ads
! e30f86b7d1ebcb37017f9ba6714fdb35  gcc/ada/libgnat/s-regexp.adb
! ca60b6be232a2891d4a65288e7579118  gcc/ada/libgnat/s-regexp.ads
! 0f8b86a6f70c29154c574f83aa8a7650  gcc/ada/libgnat/s-regpat.adb
! c0aaca2af3245967793cd9574262cd4a  gcc/ada/libgnat/s-regpat.ads
! 1a9c3572e1c7cb8146cdf7ee29c246e7  gcc/ada/libgnat/s-resfil.adb
! 0be39b0cc94d8e3840d44a2f4d70f8d3  gcc/ada/libgnat/s-resfil.ads
! e7b92fe5e5c842cb7008602ddadd20cb  gcc/ada/libgnat/s-restri.adb
! aa30e9d9954b4d2e24e0e83cbda0f76d  gcc/ada/libgnat/s-restri.ads
! ea96826875efc79dd4b45e9ad0b69e44  gcc/ada/libgnat/s-retsta.ads
! 5c6c3162b0c0eef3c4f27c9ad2130d75  gcc/ada/libgnat/s-rident.ads
! 4b2634678699fca2ca7b76351e09a373  gcc/ada/libgnat/s-rpc.adb
! ad688a12071a76e64002761d1baffdcf  gcc/ada/libgnat/s-rpc.ads
! 5573300487437520830cbffc3864eaef  gcc/ada/libgnat/s-scaval.adb
! 69da67ae23341ae343e501cba48fb005  gcc/ada/libgnat/s-scaval.ads
! c677bd3697f84da322e16a2544c07d09  gcc/ada/libgnat/s-scaval__128.adb
! 5b5f4dd1d5158262fcf99fdcfc3e5627  gcc/ada/libgnat/s-scaval__128.ads
! f9786a1868a923f08a3a4838c60da6f3  gcc/ada/libgnat/s-secsta.adb
! 4ddac726b858e6b5193cfc39caa444b1  gcc/ada/libgnat/s-secsta.ads
! 10b3f1e33fd68c414ef365ab0d2a7c4f  gcc/ada/libgnat/s-secsta__cheri.adb
! 7080aad8f4d48656b2a7c63927dbf639  gcc/ada/libgnat/s-sequio.adb
! f7dd7e9e0d09f0ec4fd07a5e9e81990d  gcc/ada/libgnat/s-sequio.ads
! a8237a5f9714b630574d896b5e0cd539  gcc/ada/libgnat/s-shabig.ads
! 857078f9533fff71b2a8d3f672298ea9  gcc/ada/libgnat/s-shasto.adb
! 2082f7b13c76f992ec47e6e50e63ead7  gcc/ada/libgnat/s-shasto.ads
! 98489c36bc447262a1b60ae77a3ad4e8  gcc/ada/libgnat/s-soflin.adb
! 8950b416ffb3d46b9123599120e0e205  gcc/ada/libgnat/s-soflin.ads
! 421bd75d6ae6dd6a5a7f1fbfc380b64c  gcc/ada/libgnat/s-soliin.adb
! 426bf0fd57e5a21d4377b18928a9b592  gcc/ada/libgnat/s-soliin.ads
! df5844f44897a9cac9219da774f81068  gcc/ada/libgnat/s-spsufi.adb
! 3f5ed5e2526a1d38422b20e6e23bcc23  gcc/ada/libgnat/s-spsufi.ads
! 62d9d85c11773a1fe341e1777b94dc54  gcc/ada/libgnat/s-stache.adb
! 918040bda0285edf66d5891bbc36f055  gcc/ada/libgnat/s-stache.ads
! 0a63a11b0a32bd5565ede74d3f08f12b  gcc/ada/libgnat/s-stalib.adb
! 3e50b18243afc508665fa537aeead986  gcc/ada/libgnat/s-stalib.ads
! 4956dca02cd83ac0269f9cf55c1d4d41  gcc/ada/libgnat/s-statxd.adb
! 2ed7388cc660d9a7cb5ea26545bebb99  gcc/ada/libgnat/s-statxd.ads
! 537fdd7178866d7b0027f1f12d9712fb  gcc/ada/libgnat/s-stausa.adb
! b8d321275a6688b38be7c418226a9808  gcc/ada/libgnat/s-stausa.ads
! 7ead9de986cb79f679b450399fafa31b  gcc/ada/libgnat/s-stchop.adb
! 026ced8c3f41d71e7d99c6440db28296  gcc/ada/libgnat/s-stchop.ads
! 85f0339d21bc55473cd7b223ec8a49df  gcc/ada/libgnat/s-stchop__limit.ads
! e1bdf706ccd0578145b38b7b03736e71  gcc/ada/libgnat/s-stchop__vxworks.adb
! 795df6426426d109d581086b4d017f4a  gcc/ada/libgnat/s-stoele.adb
! 16f331627c4eebd50a835766d2df3ce6  gcc/ada/libgnat/s-stoele.ads
! ba2973d61db23357a0f81a56f3f4f26f  gcc/ada/libgnat/s-stopoo.adb
! f11dd8f1d2e0fc0e90b0ba785102ab20  gcc/ada/libgnat/s-stopoo.ads
! b5b860129204b0e9bba9351b365ea734  gcc/ada/libgnat/s-stposu.adb
! 2266106d36e75d21ed2584ae1fadf908  gcc/ada/libgnat/s-stposu.ads
! cd7089e32cda42a93c17470807173c77  gcc/ada/libgnat/s-stratt.adb
! a8359ce9a70af6ac75d03afdb522fb6e  gcc/ada/libgnat/s-stratt.ads
! e02c7a2f6db8743652acb8c8c7a862a7  gcc/ada/libgnat/s-stratt__cheri.adb
! 0c0d606a2da54cb7e090e2cc86766a77  gcc/ada/libgnat/s-strcom.adb
! a6d7069dc97b34a6ca6951ffdacb53a2  gcc/ada/libgnat/s-strcom.ads
! 61cca025748b33d2d12186661094e071  gcc/ada/libgnat/s-strhas.adb
! 033b8635fc144bced969595cb4ebaf0f  gcc/ada/libgnat/s-strhas.ads
! d769e58a85d5a6061820f43b477b6229  gcc/ada/libgnat/s-string.adb
! fb7d194bf2f03af117ec6954f2e05ed9  gcc/ada/libgnat/s-string.ads
! 9cb439e11ffced071ac04c78107a7efd  gcc/ada/libgnat/s-ststop.adb
! 6527e336fa0cc373d39332cc4f653008  gcc/ada/libgnat/s-ststop.ads
! 3d01ed47120ffd25fdc3ab6227db7fbb  gcc/ada/libgnat/s-tasloc.adb
! 58ddb85039b1d4099734ac1ba86a4499  gcc/ada/libgnat/s-tasloc.ads
! 9f7b5a9ec1133418513130262d8ba10a  gcc/ada/libgnat/s-traceb.adb
! 2e380399c2c18b676c4c5a94da4e45be  gcc/ada/libgnat/s-traceb.ads
! 6019108bfbf541b812202d4a647e7dfd  gcc/ada/libgnat/s-traceb__hpux.adb
! 1046e8e3ee8053c221d1af2458520035  gcc/ada/libgnat/s-traceb__mastop.adb
! 7d238d1c90c4cd19944bac7ce6ccd846  gcc/ada/libgnat/s-traent.adb
! b6139529864a4db6fe1c868d9ff25e69  gcc/ada/libgnat/s-traent.ads
! f3d5abb784869706044ee0da7a1eadb6  gcc/ada/libgnat/s-trasym.adb
! 791c371a657ba1cefbc8bd93e1cad85c  gcc/ada/libgnat/s-trasym.ads
! f8233630eb92f651396fdd82de6ea732  gcc/ada/libgnat/s-trasym__dwarf.adb
! dd71bb16a36f897568cead17ca240965  gcc/ada/libgnat/s-tsmona.adb
! 8692aed0622da8189d380bf9c4bcd0c6  gcc/ada/libgnat/s-tsmona__linux.adb
! c1671b0a22b757c39e3fdef862e7a702  gcc/ada/libgnat/s-tsmona__mingw.adb
! a41d174c714f0833788365a93f548a9d  gcc/ada/libgnat/s-unstyp.ads
! 223074649ab94d862a9ff771ef76f4fd  gcc/ada/libgnat/s-utf_32.adb
! 88f799a9052de4ee09d189d16591373f  gcc/ada/libgnat/s-utf_32.ads
! ec370f0465b58fd9a86ed7073fd9942b  gcc/ada/libgnat/s-vade128.ads
! 446b4395102cd30fbb8defcc4688f880  gcc/ada/libgnat/s-vade32.ads
! eb9fc563a332ba7dbd6c3225a0311a8e  gcc/ada/libgnat/s-vade64.ads
! 5dfc7acae7f5686cbfb58e46c1ed12c1  gcc/ada/libgnat/s-vaen16.ads
! 7494bf346505dd29ca9223cec8762e26  gcc/ada/libgnat/s-vaen32.ads
! c3ac1bad2ac79953f94cc992fa5fbb78  gcc/ada/libgnat/s-vaenu8.ads
! 55c86e8191504b062f527a31de443cd5  gcc/ada/libgnat/s-vafi128.ads
! d7fba508b441ac7c840fd004d67ab07e  gcc/ada/libgnat/s-vafi32.ads
! 06b4761413f919f2acf02a4c4a26ac2f  gcc/ada/libgnat/s-vafi64.ads
! ad54b59f91be9f27b5acd2869d2ba708  gcc/ada/libgnat/s-valboo.adb
! 23267a907734f8159e37ea2b02ee646e  gcc/ada/libgnat/s-valboo.ads
! f5a5f9ed35ee845f584e8b617f6e67d4  gcc/ada/libgnat/s-valcha.adb
! 8226843f297e2275a05259f331845dc0  gcc/ada/libgnat/s-valcha.ads
! 4ae527ad9d8da5a878fab9217da40215  gcc/ada/libgnat/s-valflt.ads
! c3d9f346e50eb3b7fa7690b32acc49a8  gcc/ada/libgnat/s-valint.adb
! 5966024a4df2e8262014657df6935dca  gcc/ada/libgnat/s-valint.ads
! 6a6559ab284f996c7b01458dd8fd7444  gcc/ada/libgnat/s-vallfl.ads
! ce741b391b72ae587d0c974ce4dfeeeb  gcc/ada/libgnat/s-valllf.ads
! 37bab39f3b7b5ef35c4784dfa7d54001  gcc/ada/libgnat/s-vallli.adb
! a60d8f0c38e35f31932c8e87d903f94b  gcc/ada/libgnat/s-vallli.ads
! 74845e025a27d05f03404c799e862126  gcc/ada/libgnat/s-valllli.ads
! 8e77995f698f1394759b27b2ca28441b  gcc/ada/libgnat/s-vallllu.ads
! c55b61231e64f9e93b29128599e83565  gcc/ada/libgnat/s-valllu.adb
! c17d80688aee582cce9397d64d28690f  gcc/ada/libgnat/s-valllu.ads
! 260d5819686506eb6ea0c31aaa1a44b7  gcc/ada/libgnat/s-valrea.adb
! 22f4a0e73ed4732b4409d104d3cea7c4  gcc/ada/libgnat/s-valrea.ads
! 9274dfe6276f0957d67c0e8ddc6bb78a  gcc/ada/libgnat/s-valued.adb
! 847eb67dd802d80d57433f8f0a1b8542  gcc/ada/libgnat/s-valued.ads
! 2c4bdd4a0098b74e4083b106ecae7dc1  gcc/ada/libgnat/s-valuef.adb
! 9e0f8a16ef922a5630898e2b3e0fb986  gcc/ada/libgnat/s-valuef.ads
! 85ddabe469bdcb38fce959169aeb2ab2  gcc/ada/libgnat/s-valuei.adb
! 86dcd5615f44a84121de90989dcfabc9  gcc/ada/libgnat/s-valuei.ads
! 5fcb9c4b822bfcf05237f993bb04366b  gcc/ada/libgnat/s-valuen.adb
! 988aafce0b16af4b68988fe1dd715608  gcc/ada/libgnat/s-valuen.ads
! cbc30f0dc9d42bd3c137b8ec0af2a36b  gcc/ada/libgnat/s-valuer.adb
! 394f6416d7c13aa96881deac005c04bc  gcc/ada/libgnat/s-valuer.ads
! 1c96e3800797de16f6985775b7f759c8  gcc/ada/libgnat/s-valueu.adb
! 21e8fa81c9eb5a37c57f562d099f4277  gcc/ada/libgnat/s-valueu.ads
! 6ace7051f077537a8ae97a79542842d6  gcc/ada/libgnat/s-valuns.adb
! 8679118efcaeea92b256a7b49611a6d0  gcc/ada/libgnat/s-valuns.ads
! 1ff7d4482df3ac34692efb2a9aca2453  gcc/ada/libgnat/s-valuti.adb
! 9c0cf9e1d6951d483a6b4bfce9b459b0  gcc/ada/libgnat/s-valuti.ads
! 8be20500b7be98178bcba1c553913569  gcc/ada/libgnat/s-valwch.adb
! 1c2b7ddedaaf12c5eaf4d409f5376748  gcc/ada/libgnat/s-valwch.ads
! 1b3d176e89e48c40a1f03dcd6e78ef2b  gcc/ada/libgnat/s-veboop.adb
! 58e47603ef754dec685c21733f53b960  gcc/ada/libgnat/s-veboop.ads
! 1357f9bf114a4b8b826790a901fec206  gcc/ada/libgnat/s-vector.ads
! 2c8a06a6581202d23b4816f1b6248ffe  gcc/ada/libgnat/s-vercon.adb
! e9ad00d055680c26eddacb6d2ee744cd  gcc/ada/libgnat/s-vercon.ads
! e3dfb7123bc4ce842459cf2c63e723ad  gcc/ada/libgnat/s-wchcnv.adb
! 60a3bc4d4dd30dd80000aaf100950979  gcc/ada/libgnat/s-wchcnv.ads
! 17aa5dc57b01e35e4b89a7c01b8fb7e9  gcc/ada/libgnat/s-wchcon.adb
! d0c2077fdff2269dfd860241390ddafd  gcc/ada/libgnat/s-wchcon.ads
! bc034f40b7905d4f4010c4144bc88630  gcc/ada/libgnat/s-wchjis.adb
! c169bd31f048a92a894f82ee123e143d  gcc/ada/libgnat/s-wchjis.ads
! c96e669c539488b5359be7b985358139  gcc/ada/libgnat/s-wchstw.adb
! ef93cebb46c8276716e18932bc154010  gcc/ada/libgnat/s-wchstw.ads
! 55389c5aacd7b863dc92e79750ac9128  gcc/ada/libgnat/s-wchwts.adb
! 76ab6f42d8fada75a5f953a56e24f5e9  gcc/ada/libgnat/s-wchwts.ads
! e1cf28e6ab79f79e278e58d4f1dc7a71  gcc/ada/libgnat/s-widboo.adb
! cd43cf0bd5f28049b46fc6790dc3d5f8  gcc/ada/libgnat/s-widboo.ads
! 7bf7f3d9423159d366f7f5bc8cfc91c8  gcc/ada/libgnat/s-widcha.adb
! 4618b28bb4585e362f559e3b96683e3b  gcc/ada/libgnat/s-widcha.ads
! 408691eebd1dc89d769f603156e8962c  gcc/ada/libgnat/s-widenu.adb
! 70fc529c61cd2d2d74daf67484fc507d  gcc/ada/libgnat/s-widenu.ads
! 52b1e460c8e2bfffcaf4a88bc7228a47  gcc/ada/libgnat/s-widint.ads
! 1e8e268e18d4ca1ab1a36602d10dd907  gcc/ada/libgnat/s-widlli.adb
! 9a6cead1b2a2ea521baf55b045308915  gcc/ada/libgnat/s-widlli.ads
! e012b1ac06b3a6643ca0c513c7751147  gcc/ada/libgnat/s-widllli.ads
! 841df7a6ecb72f2ed734e6b28d27a8f1  gcc/ada/libgnat/s-widlllu.ads
! ffb266fc1890945fe33d3555bd1574a0  gcc/ada/libgnat/s-widllu.adb
! 6bda1928efb278b62ee0412eae57b6c4  gcc/ada/libgnat/s-widllu.ads
! 270361f843ec087ca053edb04312724e  gcc/ada/libgnat/s-widthi.adb
! e6dff4b08e97256492279c4e2d823540  gcc/ada/libgnat/s-widthi.ads
! df049a0def720292e7ad711b7757ea5c  gcc/ada/libgnat/s-widthu.adb
! a33110d45f959a4c24feddaed26c3f0e  gcc/ada/libgnat/s-widthu.ads
! 29ea77b0a4f319a8a5c383f6bae83448  gcc/ada/libgnat/s-widuns.ads
! f4c8be9da87a7dc154b1ab2dc1ca1a2a  gcc/ada/libgnat/s-widwch.adb
! e1e1b8b0ac91539f102dc3f671790af5  gcc/ada/libgnat/s-widwch.ads
! 0558c9d655829151d6be28c250eb234c  gcc/ada/libgnat/s-win32.ads
! 8f73641df4f9844e73cf482c14dc5063  gcc/ada/libgnat/s-winext.ads
! d60a8b64b65b0c2ce24d8083584dc081  gcc/ada/libgnat/s-wwdcha.adb
! 60f7f4e95db012acdefac60a8fced1f6  gcc/ada/libgnat/s-wwdcha.ads
! 9c6b75b674f9102f0b52e66ef411b350  gcc/ada/libgnat/s-wwdenu.adb
! 2b9411bdc3955f6c0d085deb0da384fa  gcc/ada/libgnat/s-wwdenu.ads
! b3367f4ac74a4e51de490a6cfd1fc0c3  gcc/ada/libgnat/s-wwdwch.adb
! 529cbcbaffc6ddd52bc1fb4a9ab8b959  gcc/ada/libgnat/s-wwdwch.ads
  0f4c21401ad2531f8c5d4010537dc6d2  gcc/ada/libgnat/sequenio.ads
! 9c6f4973c50d58cc065341a83e0b9358  gcc/ada/libgnat/system-aix.ads
! c341a199b5371b685be57006002ecea6  gcc/ada/libgnat/system-darwin-arm.ads
! 8855418af76e3a83bb816d24031977a2  gcc/ada/libgnat/system-darwin-ppc.ads
! fe32720de25d85064f564ac7108631f5  gcc/ada/libgnat/system-darwin-x86.ads
! cbbef0f90a97edb70bdb1f581bc9e20a  gcc/ada/libgnat/system-djgpp.ads
! c0639109349fcaaed515835663360600  gcc/ada/libgnat/system-dragonfly-x86_64.ads
! 10eef99b6c7424e3cbfa94262e898f71  gcc/ada/libgnat/system-freebsd.ads
! 5d6408742933222d55c2b6df89ecc319  gcc/ada/libgnat/system-gnu.ads
! 95db7d93de0750747069fc71c3f00956  gcc/ada/libgnat/system-hpux-ia64.ads
! 74e251ea78dd50f5d6fd4f01cc1a0027  gcc/ada/libgnat/system-hpux.ads
! 05d0f68da8beed3209b1522426961b1d  gcc/ada/libgnat/system-linux-alpha.ads
! 2e1fe854f4ae8e2f8f0d128cbf524b7d  gcc/ada/libgnat/system-linux-arm.ads
! 2d5fd143f591718ba0c0e2ed5203ef3a  gcc/ada/libgnat/system-linux-hppa.ads
! c8146afaef67d0bf023890b80b6f8c88  gcc/ada/libgnat/system-linux-ia64.ads
! 0d2392da36e8214b1808d0edd1ababa3  gcc/ada/libgnat/system-linux-loongarch.ads
! 02c7facf9ff688e2b17c554e6907ea16  gcc/ada/libgnat/system-linux-m68k.ads
! 46e93dbf5a8a3aa47bd6ef262468f620  gcc/ada/libgnat/system-linux-mips.ads
! 3937d44c3a0a1111209725179e79282b  gcc/ada/libgnat/system-linux-ppc.ads
! 1a243d5359f22a521be2c7a52e87ef26  gcc/ada/libgnat/system-linux-riscv.ads
! 8e85dba187be8055f4b394398b0a9f5c  gcc/ada/libgnat/system-linux-s390.ads
! dff5e5374a597a6b007f383977338051  gcc/ada/libgnat/system-linux-sh4.ads
! 8c12d0faec177a09d2cf1480f0da7955  gcc/ada/libgnat/system-linux-sparc.ads
! a09d3fd9bd4b7cee830ee9ba907a68ce  gcc/ada/libgnat/system-linux-x86.ads
! bea986a6e96497a3cd1332221f55e4db  gcc/ada/libgnat/system-lynxos178-ppc.ads
! 4e998c548d33fd9280608fe21dba85f7  gcc/ada/libgnat/system-lynxos178-x86.ads
! fdb44774c32663b2acdb22586205038c  gcc/ada/libgnat/system-mingw.ads
! 70657996e59041205d6380d41a1a50c4  gcc/ada/libgnat/system-qnx-arm.ads
! 7c40c8f4c84595639d8c334baab6d94a  gcc/ada/libgnat/system-rtems.ads
! a9b3230c36371fd0c1c83baf34a5053c  gcc/ada/libgnat/system-solaris-sparc.ads
! ba2da24d980cc53d45e4ab0bc585873c  gcc/ada/libgnat/system-solaris-x86.ads
! 5d5abb46800a0b5b3f5322e7f986a414  gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
! 01287d69d744c66ff957f149c3b0802b  gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
! 925b5585fe3f8f1a9f6f7edaae1ad63f  gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
! 46fe471c1e704940bcc06aae10dfd287  gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
! 1c5172a170d1ebeee7670c58ec2cab8f  gcc/ada/libgnat/system-vxworks7-aarch64.ads
! 9177606a8bff0e64c1fa8b3d55bb611e  gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
! cc35c26b24c97dbdaa1f52836ef3e6c7  gcc/ada/libgnat/system-vxworks7-arm.ads
! 1348a64623e87ff24d53d070cfb71098  gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
! 486cccc279fdac97744af781d81433d9  gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
! 4771b0a4c840cf5570a23bdfba91cb70  gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
! d528767f1ebe92619fd09403fd17e551  gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
! e583eac3a3daaf66563ac2190abb0cfe  gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
! b9c1cb6d415a4b7f6fd0f2cbc7bd5d4b  gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
! 8ffe99140b6965a49ad58a855b03cfec  gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
! e4b4ce433ca66c06ce1b718dc7c73801  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
! b95c46355384fabf6de9e95bd3273fcd  gcc/ada/link.c
! 6a1752b698e575236bc24fd72a80ac14  gcc/ada/live.adb
! b153e7d2cc4a598977832c17cafb7c4f  gcc/ada/live.ads
! cf7b146f9fc62f24c3787351e5ba9e68  gcc/ada/local_restrict.adb
! 891f22987471ea4759185d4c5a9ee069  gcc/ada/local_restrict.ads
! 465547ff3f8704052438d58126dabdc0  gcc/ada/locales.c
! 8f9d9631a19b100dda5188d189966039  gcc/ada/make.adb
! 3f70017061d6107352a4f0851268c926  gcc/ada/make.ads
! b37df6cded8b76d59493983c393af07b  gcc/ada/make_util.adb
! 1254c81cb1c93f3097720a97f51da0d7  gcc/ada/make_util.ads
! cfdfe0ac0ab1e9a8f0a7b3552afe9477  gcc/ada/makeusg.adb
! cc97628ffbf9bb6f6151c3d6faea4c75  gcc/ada/makeusg.ads
! a36509b97b544f67655056513d85405e  gcc/ada/mdll-fil.adb
! 046451578e9016b2eef8c9f945a0e45d  gcc/ada/mdll-fil.ads
! 0b889bc24d988435ad6e9dc741253c6d  gcc/ada/mdll-utl.adb
! 31eb733cdfa24612990e3c2a05580e57  gcc/ada/mdll-utl.ads
! 401c22d7b1edcfa2c6d67c5fbe6c9f4a  gcc/ada/mdll.adb
! 4d477a1dbfe12d34fd62ff9abbc69874  gcc/ada/mdll.ads
! e98292ecba5db7b72a7952042a3858ca  gcc/ada/mingw32.h
! 43f7bec9180ef80ace0fde328210f175  gcc/ada/mkdir.c
! ea19255bb4960c2d4ff2204b3a277560  gcc/ada/mutably_tagged.adb
! eb50646531d9f8b5fe0e5efeb26dd74c  gcc/ada/mutably_tagged.ads
! abda6b7845d4f41ed51142dae6d25625  gcc/ada/namet-sp.adb
! 6f33ecb88b9e4e10c5a26a73354b785d  gcc/ada/namet-sp.ads
! 772a5d99014302f9fd9bda6d4e510904  gcc/ada/namet.adb
! f19111d9bc1c133486a49b6b78e36e53  gcc/ada/namet.ads
! 5b1d83867b6245cf2ab99e55536cdaf0  gcc/ada/namet.h
! e6e20209cad9c43a0c9e098f3429fdb6  gcc/ada/nlists.adb
! 4fcbbba0f9690723f59ad615e6a0a017  gcc/ada/nlists.ads
! ede196142f051ce40a763d452c74c998  gcc/ada/nlists.h
! b7a4ce5c6e4753fcc4e09f7c8ef90b12  gcc/ada/opt.adb
! 4fa672e0021c300dc75252f597834da9  gcc/ada/opt.ads
! 9df196852e294224ecf27a573848f3be  gcc/ada/osint-b.adb
! 45a0f826bc919f6c3d5283a3970115d4  gcc/ada/osint-b.ads
! 0c60ea9217bc90dfe2d9b4649b2f3915  gcc/ada/osint-c.adb
! 8770321a00f13ef155a3f56611b24032  gcc/ada/osint-c.ads
! ad4a974ade0d5465e896edd1395e5677  gcc/ada/osint-l.adb
! 69dfdcda04f3992bfc059e74c9c533d2  gcc/ada/osint-l.ads
! 226cbb04940ea6debada17386d789049  gcc/ada/osint-m.adb
! 2ee49d28df9047670b5fefad12db720a  gcc/ada/osint-m.ads
! 9928efab9c46713faa44281c9bacc154  gcc/ada/osint.adb
! a5cfae1886dcbdd942ae5aa10b8914ff  gcc/ada/osint.ads
! 6026a4ededfbea65e3264219c2df9584  gcc/ada/output.adb
! bf52dfdb3b0ad7b46acd6b6ec476611c  gcc/ada/output.ads
! 82337cdc30606c45b018aa10b40c4e2b  gcc/ada/par-ch10.adb
! 69a2e7867057d08861c69638310a6144  gcc/ada/par-ch11.adb
! eb0cb04a54c4829789b4a54cd6449eca  gcc/ada/par-ch12.adb
! 9f715bca934e45ee4db7bbd2858d54e1  gcc/ada/par-ch13.adb
! fc57966056b0077a0fadd4887212d6bd  gcc/ada/par-ch2.adb
! da1dbb86ed500fa6e4badb241ef8a926  gcc/ada/par-ch3.adb
! 3d7a9541cc9e49bc7e5aad21b231884e  gcc/ada/par-ch4.adb
! b9ba09d47d66ea5e62e54b25d2fa55c0  gcc/ada/par-ch5.adb
! b7e65797088047c28c917ce1878a68ba  gcc/ada/par-ch6.adb
! 7487b885c869951f3e91c38a96428135  gcc/ada/par-ch7.adb
! 8088c92c25aa6f8d485fa42b1326be8d  gcc/ada/par-ch8.adb
! 313af84513a1bfcd8cd6418c76eebe26  gcc/ada/par-ch9.adb
! 1f70b7cd17a7598b624b2901c6cea77c  gcc/ada/par-endh.adb
! 4631e5d0cb69105860231a799366b230  gcc/ada/par-labl.adb
! 7d004b6b482794a85e318cb7452f55ef  gcc/ada/par-load.adb
! 4abaf19deae7557fed7e768a03ef332a  gcc/ada/par-prag.adb
! 4f0a80ae4dcac15e0ae11b61ce2a351a  gcc/ada/par-sync.adb
! fd52cb07f6816c9f989d767432353844  gcc/ada/par-tchk.adb
! e73cb687a825aa262ff287fa10d63c6c  gcc/ada/par-util.adb
! 612e12877944fb92fce18a6179c0cb61  gcc/ada/par.adb
! dec03d93846b2cf0f195f599e6ebe085  gcc/ada/par.ads
! 397a8c4eaae8d55eb7e4accd4d09745f  gcc/ada/par_sco.adb
! a2fb0d304cec6a62b7a0096915bbacc4  gcc/ada/par_sco.ads
! 40c6c094938e7736d8f6f618707485a4  gcc/ada/pprint.adb
! e98359128e8cd66326be7abee1dc9be5  gcc/ada/pprint.ads
! a7d5b93678ae985a8b8e5fad99239a2e  gcc/ada/prep.adb
! 67cc2da361fb7c413efec1c05a0b0758  gcc/ada/prep.ads
! 5ad94780209efd9ab48a13894345e3f8  gcc/ada/prepcomp.adb
! 4c499e95df5367c3548d61fa917ca024  gcc/ada/prepcomp.ads
! 95e773002079dd373f13f3dc9f919963  gcc/ada/put_scos.adb
! 8b900ca2e38affe9bed78cc4601d68f9  gcc/ada/put_scos.ads
! dda45886ae4fb253d743b7addcb04572  gcc/ada/raise-gcc.c
! aa1f862a7c4c214d577596fb157bd0f8  gcc/ada/raise.c
! 46cd09528b6f99061409002fda736a59  gcc/ada/raise.h
! 8afe6ac34ce061a669c4e31257ede16a  gcc/ada/repinfo-input.adb
! 5939c2960c689e4030f79ad6a8b455ee  gcc/ada/repinfo-input.ads
! 0bed3d3b816f589a4981a9623caea4b0  gcc/ada/repinfo.adb
! 676810aa2170cb10ee36c56b2998eb84  gcc/ada/repinfo.ads
! 589cb3f605f73641be06f0f0cc16d631  gcc/ada/repinfo.h
! deb5dad2371a09c99da898cece8822c0  gcc/ada/restrict.adb
! 3132f3889ff35b3b58965cf652b9f3d5  gcc/ada/restrict.ads
! 6b9811e6ddf7d989b3ad01ebf5430e99  gcc/ada/rident.ads
! 6741c00af04e8dce4efb35a65a842fe6  gcc/ada/rtfinal.c
! fd7b42b23f06032f7f191cd6b0e6973d  gcc/ada/rtinit.c
! 52066a1b8e7335d4a2831aadeadb05eb  gcc/ada/rtsfind.adb
! 7dc53d72142097c13b53b881b9dd8765  gcc/ada/rtsfind.ads
! f2d824e32fdafcf6970c1e1e66ea59f8  gcc/ada/runtime.h
! 8ce11053ebe1171460f848ee6f75ea0c  gcc/ada/s-oscons-tmplt.c
! 406f1efe8850ae590a95138ba96f5a4b  gcc/ada/s-pack.adb.tmpl
! 9ff36d27b4298968fe26c8a47cea6af9  gcc/ada/s-pack.ads.tmpl
! a63ed6cfe4621cd6e6f6b9d24b131b14  gcc/ada/scans.adb
! 284d0d60b7f2cbb0b1be4474dedc4e77  gcc/ada/scans.ads
! 43ac9be952de8b94c98155863ae2ff32  gcc/ada/scil_ll.adb
! d56309c9945ec31c9444dce0bcfa5831  gcc/ada/scil_ll.ads
! a14918bcb1a6b1da737d1a16c1c61636  gcc/ada/scn.adb
! 68a7cd47d72f2fcd6ac32edd9e757d92  gcc/ada/scn.ads
! ef95ca4c674da10584036e7481e89a77  gcc/ada/scng.adb
! 63a10b07836de228d62bc6a7e6c85df6  gcc/ada/scng.ads
! bd193aac5b192b282064535f6fe3b29b  gcc/ada/scos.adb
! fdcaec81316658a2b692951117ab8bd6  gcc/ada/scos.ads
! 44ec5e7f902de4eac2d430f6088fd579  gcc/ada/sdefault.ads
! 5ee6198a5e5ee0a555cdbe65fd9ea6f4  gcc/ada/seh_init.c
! b97a33153fe52398767059622469c244  gcc/ada/sem.adb
! 89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
! d2b7c923d6a9fd2c767ef33609c17c61  gcc/ada/sem_aggr.adb
! d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! f35af60fafb60665171b35d5f6381fcb  gcc/ada/sem_attr.adb
! f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
! 5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
! 416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
! 8d81d143610083b5cf22db98e4eb9ff7  gcc/ada/sem_case.adb
! f682892145d1a369cdc5b3f73935f8d9  gcc/ada/sem_case.ads
! 40833d5de1791e4a88cb023d6bd0ddb5  gcc/ada/sem_cat.adb
! 8380d3577b9f637d6e110b2f500d0e0b  gcc/ada/sem_cat.ads
! bd02733d13b54612fc6d4cd0e340b3ea  gcc/ada/sem_ch10.adb
! ad2bb60b9c4c67653f4da4b0e70277d7  gcc/ada/sem_ch10.ads
! e3dc2d270994bba222e70ec02479ac37  gcc/ada/sem_ch11.adb
! 7efb6a0f371113d8b55b421ee56dd1dd  gcc/ada/sem_ch11.ads
! fa75822e620d43991064e909af7fde66  gcc/ada/sem_ch12.adb
! 2622dbf1c1774a89ada3cba34f1da316  gcc/ada/sem_ch12.ads
! d77ca7623d00d99f722ffa0a2c4f1308  gcc/ada/sem_ch13.adb
! 2da037307178ba05a1a24b52d1b3115e  gcc/ada/sem_ch13.ads
! 260948dd8c7af25b5acaa288032c9327  gcc/ada/sem_ch2.adb
! ea86a0345845800d7aaf07f22bb4bf6c  gcc/ada/sem_ch2.ads
! 2581e282d3a002fe974f151f2bdb68e9  gcc/ada/sem_ch3.adb
! 2d8f83bc46638356bc311ccd50015b1f  gcc/ada/sem_ch3.ads
! 672b3db8fa759ee2be5ded5752f2a743  gcc/ada/sem_ch4.adb
! fdd750bd30c3186d912dfed4717a2c0c  gcc/ada/sem_ch4.ads
! 53bfaf0bb212d68185c312cb45d910d3  gcc/ada/sem_ch5.adb
! d3937c73217b5f3ef2540a47e52cbf4a  gcc/ada/sem_ch5.ads
! 5bbd8a73962dff2109bc375d2e1999c0  gcc/ada/sem_ch6.adb
! 9ac8c4c57213097618cdb7c0b7b4f47b  gcc/ada/sem_ch6.ads
! 6c05670fbd82229849d311d294644670  gcc/ada/sem_ch7.adb
! fb1c349ef07024975dc745e7e7908a34  gcc/ada/sem_ch7.ads
! 381e134a3e123f88cef08be7a83e237e  gcc/ada/sem_ch8.adb
! 5bcf24e9f3725dd07ba44097469a5101  gcc/ada/sem_ch8.ads
! 0659b247bb1cacdb068574b879a6fd15  gcc/ada/sem_ch9.adb
! 11764389473d404a17921f767d1eadd4  gcc/ada/sem_ch9.ads
! f3bd7a2465fe64a8cce43f75b64830f2  gcc/ada/sem_dim.adb
! 620c52688fb31336b46194dd14b591c5  gcc/ada/sem_dim.ads
! 00d05d6e1bee6c9629b6aef6936e14cb  gcc/ada/sem_disp.adb
! c31ecf34a3e44a39023ff6f3ba409e8d  gcc/ada/sem_disp.ads
! 339c1ae3fe9b3e447dd4867c7eb2cc64  gcc/ada/sem_dist.adb
! 59a3d1317e6d4dd1fdf74f377c86bb9a  gcc/ada/sem_dist.ads
! 4cf55d9cc3b53082a92304a590c17c21  gcc/ada/sem_elab.adb
! f4f58bc7c6b586440e37173fcc83a145  gcc/ada/sem_elab.ads
! 7bd797b14c1442e801878ac792984728  gcc/ada/sem_elim.adb
! be5bd8727bcc81e7515f2a0386cf8af3  gcc/ada/sem_elim.ads
! 90a4e44b7ce47963c3938d3e1a27485d  gcc/ada/sem_eval.adb
! 0aa561464776f24024d7efe39d4ffcae  gcc/ada/sem_eval.ads
! eb23a07f1fb62ed39d1053619d51487b  gcc/ada/sem_intr.adb
! 01d971c16ae04f83f122ff2b4854e30d  gcc/ada/sem_intr.ads
! 60c61925626b00c286ee1c92562b17ef  gcc/ada/sem_mech.adb
! 39b96f04803db97ae1f7376d30a0cfec  gcc/ada/sem_mech.ads
! 764f62b9f61374685638654b0eed967b  gcc/ada/sem_prag.adb
! 61f67b82bf0abfa83eb7e4927498285c  gcc/ada/sem_prag.ads
! 4b68df0d35e789d1c04da20af1daba86  gcc/ada/sem_res.adb
! e3b9f77c37497d7f7824085d3df8fde8  gcc/ada/sem_res.ads
! 4e8a9bc2b398560942d0c08f4017fabb  gcc/ada/sem_scil.adb
! 64ae38c93be63a67f143484eba77604b  gcc/ada/sem_scil.ads
! 102f98875b216b8fcbe1ed80f8079009  gcc/ada/sem_smem.adb
! 21afb93e10bb9446fcbf7577bbf39c7f  gcc/ada/sem_smem.ads
! 1de99683c6514c34448d2bbc7ddb8856  gcc/ada/sem_type.adb
! 65653b347d1d3f800e49cd916a551d1c  gcc/ada/sem_type.ads
! 1a9e149f530a431be68085c531487687  gcc/ada/sem_util.adb
! 736dcd26180244a8e8adc2d6c66249a7  gcc/ada/sem_util.ads
! b16d94872ec070685f3ac84b8967f7fe  gcc/ada/sem_warn.adb
! 1952fbda97ea4c6506f452eac9934bb4  gcc/ada/sem_warn.ads
! 75ee1e8bae201fd70d666856c4dbb8e5  gcc/ada/set_targ.adb
! 9be350008098fd37edd51e4c3977c64d  gcc/ada/set_targ.ads
! ef20860eedc61bbc8c01982ac5436087  gcc/ada/sfn_scan.adb
! 000b9cec485c369e87106b6ef3ede5c0  gcc/ada/sfn_scan.ads
! dbf58a7fd08863c0ca2f9337aba5b2ea  gcc/ada/sigtramp-android-asm.h
! ca935dca4062a013d4d6b1e584032254  gcc/ada/sigtramp-android.c
! d4eb0a89fdd3b76d9770fd60a54985d0  gcc/ada/sigtramp-arm-qnx.c
! 15b88a2d97fa8631d34b73e43bd2c8f7  gcc/ada/sigtramp-ios.c
! 4ca764672b9696f6a18d8e33361dc8c8  gcc/ada/sigtramp-qnx.c
! 294c6e24ae6277dbc8b03ecdbb1f0691  gcc/ada/sigtramp-vxworks-target.h
! 040dc3b21174117efae94e9f6e346bf7  gcc/ada/sigtramp-vxworks.c
! 33b20dbe690a4017979c15e797781831  gcc/ada/sigtramp.h
! 85bab02e7455fc715c5bf7110168a178  gcc/ada/sinfo-cn.adb
! c354c16b3d545f16b99be6618073100e  gcc/ada/sinfo-cn.ads
! 080aea4da0993c49dfd80c8789fed307  gcc/ada/sinfo-utils.adb
! 34ff18d034a08b0c9d5d6d61fc92d189  gcc/ada/sinfo-utils.ads
! 1cfe9bd70a04767965df45d859d8e7c1  gcc/ada/sinfo.adb
! 5bbe80071574112f982dc347a600ebf1  gcc/ada/sinfo.ads
! 52e8a9630e4050f9cba2ab037d7a2019  gcc/ada/sinput-c.adb
! 5f19ebc3c423ec457c4a3c90b841f631  gcc/ada/sinput-c.ads
! 0faf319433a1ed69b9efdbcbdb4eac2c  gcc/ada/sinput-d.adb
! af6b93fe92dc2703693dbc958472e99d  gcc/ada/sinput-d.ads
! 8e23df7d0b4776ce8943cbe29ad3629e  gcc/ada/sinput-l.adb
! 1f835777da26c9f79fbc56b671e06655  gcc/ada/sinput-l.ads
! 4c47a09e0165de090d03fa2396d99a7a  gcc/ada/sinput.adb
! 292ddf1cbc2a6ac391dd238019ba4c3a  gcc/ada/sinput.ads
! caeb82ff1021b90e96fabb959a2c0e53  gcc/ada/snames.adb-tmpl
! 7b511a60ffefbd3bca5585ebfd06c4b8  gcc/ada/snames.ads-tmpl
! 0eae6e077005b627eacdbc0d53788ac6  gcc/ada/snames.h-tmpl
! 96b1e5efcfe4df7fd150f5a977046c58  gcc/ada/socket.c
! 2b5db13cfe242efb9e224cb722660071  gcc/ada/spark_xrefs.adb
! 59aee5038afe3acdfc11257232c8fd9b  gcc/ada/spark_xrefs.ads
! 280d15d02305e79cd89b264d059f79bb  gcc/ada/sprint.adb
! b2471956e093001afd1b073590729f89  gcc/ada/sprint.ads
! 2ce08b4ac1b7d7331da8a29d6e581d60  gcc/ada/stand.ads
! 92b212203b4f1d5f4e7ff59f594e55e4  gcc/ada/standard.ads.h
! b4073f96d80684c896365e7a436df06c  gcc/ada/stringt.adb
! 830c86db23070ef15493931a23788a7f  gcc/ada/stringt.ads
! dd04be650bb81a915ab3d16cf03e1286  gcc/ada/stringt.h
! 5022f93495388fa09eb795bc2927a3b5  gcc/ada/strub.adb
! 458b531985b04c11c0c7dc413d27aab9  gcc/ada/strub.ads
! 6431b27526601811c32225c77c883f46  gcc/ada/style.adb
! d4c62c18b55de39b11cfe472a0e4561b  gcc/ada/style.ads
! 5a825504f6acc372f6b5377882b8f0b0  gcc/ada/styleg.adb
! 381212335c0a20a7a6e9e41250393d9a  gcc/ada/styleg.ads
! 900cbaf4a4ceb32a3ec64284eeb30b43  gcc/ada/stylesw.adb
! 788b4e8961e327f221894cc404ea94a6  gcc/ada/stylesw.ads
! 023c310d2e871580bbd3530d72160fda  gcc/ada/switch-b.adb
! 3a294499383230d201c683ace52138c0  gcc/ada/switch-b.ads
! 3540d5c1b8346f461d3d2aff8035c91f  gcc/ada/switch-c.adb
! 3aaa54adb4298ce080915c03e026099f  gcc/ada/switch-c.ads
! ebcfe6e250e511cc835acc1a5b9d9acc  gcc/ada/switch-m.adb
! 604f9cd7c5002a973423169c487b7672  gcc/ada/switch-m.ads
! 4c8a0d7e461a01701b735523abd65cca  gcc/ada/switch.adb
! e8253b4b684c1281f31c431c59801850  gcc/ada/switch.ads
! bb58296bf2013bec7983796244353b38  gcc/ada/sysdep.c
! e661511abb592f89242772c88e81c985  gcc/ada/table.adb
! 9980f2609e274e492a4fc7bc7e625779  gcc/ada/table.ads
! f01b6d7a338cac8484ebe76a4d10a29a  gcc/ada/targext.c
! 5ef3e383be54848c563cf6e54357fa00  gcc/ada/targparm.adb
! 2b5f7f1b51204c63a604a549922e4c64  gcc/ada/targparm.ads
! 7bf7ca357153ccf17a29a702760480cc  gcc/ada/tbuild.adb
! 01e09df1bb81d935248cc35d52bbe8e1  gcc/ada/tbuild.ads
! 74648ca99d899e5ce95df7aaadc6f7a6  gcc/ada/tempdir.adb
! f9fabb8213cd8b64bbd0393fe9239dc0  gcc/ada/tempdir.ads
! 05ed9e51fba799aa8a3d15bddd961180  gcc/ada/terminals.c
! 0304fa8c8efa338dc6d83f49115c6408  gcc/ada/tracebak.c
! fa6bd362d0c86ab46ed0b9ee9cc67eda  gcc/ada/treepr.adb
! cf7a40cb2bce88219a37e2e39c179812  gcc/ada/treepr.ads
! 98ac01399ba1a6f424fafb018f08a955  gcc/ada/ttypes.ads
! 582d8467c1e9305aa54d36635379dff5  gcc/ada/types.adb
! 2f15b9a53a8bf4d14399539f002c1c3f  gcc/ada/types.ads
! 1a68b2d435aa37d91ba350cd55220589  gcc/ada/types.h
! aef59822f31a68c322951b533e7b66d8  gcc/ada/uintp.adb
! c5d01e333528c77ef6820d2fd4b519a7  gcc/ada/uintp.ads
! e77bb76f340ad4be7e8d98269e7f7be1  gcc/ada/uintp.h
! 8cd8ae9ff97e65db00a31424f25247ce  gcc/ada/uname.adb
! eeb6ea2feb12c39a0ea2095fca6e3d2a  gcc/ada/uname.ads
! c19c2a871c32fc6aff1e0c6aab0d550f  gcc/ada/urealp.adb
! b17f72ec54df78b4b67b979813d3f97f  gcc/ada/urealp.ads
! 317b5a188697bfc0e6040fa648e9d9da  gcc/ada/urealp.h
! 27905040bd49b3ea5db6081f15e9ba12  gcc/ada/usage.adb
! c578b41f0c8f6c40b46c78a81e87209b  gcc/ada/usage.ads
! 1c7d75f8eb8caeca71fd9920c9467dd2  gcc/ada/validsw.adb
! 77865d92c04269dc2ac7fed0e437db40  gcc/ada/validsw.ads
! 63f1f44c17efcc0ac826e828da2e4ce1  gcc/ada/vast.adb
! ef3827a7b812579b6746708abb07f0a3  gcc/ada/vast.ads
  80a9d1726e421d58c661b761812b04b6  gcc/ada/version.c
! 6c78cddfd887df97c9b3a4688e4e4fa2  gcc/ada/vx_stack_info.c
  230f0a2f69b8ad56cc0d730f9fe0964b  gcc/ada/vxworks-ppc-link.spec
  cf24e76097812a932a26f6600d193208  gcc/ada/vxworks-x86-link.spec
! dfae7743b3426edeccc9d6fe92fa6409  gcc/ada/warnsw.adb
! 64ec6544f6a27188f56b0b48277d52cb  gcc/ada/warnsw.ads
! d22c314f3748309f812d78f5217dda61  gcc/ada/widechar.adb
! 8ba18762baadb754aa34e6849ff8b7ea  gcc/ada/widechar.ads
! 86a168469a3500183cfb7412744e70b5  gcc/ada/xoscons.adb
! 8563f416db67cb58d00d4bdc46ac522f  gcc/ada/xsnamest.adb
  4c96f820426ef6d6a588bdcdccb59bee  gcc/ada/xspack.py
! 59ad1ee753d42235ea036a57aad85045  gcc/ada/xutil.adb
! 06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
! faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
! ebe64421041bf4ef9153e26a6dc60532  gcc/adjust-alignment.cc
! d502d3834ad69000885a27dda3965cb7  gcc/algol68/ChangeLog
! ffeadfa12c3e53a26bc2b3ca4021bf80  gcc/algol68/Make-lang.in
! 3d3f2f95b917d0f77d57d977f3eb93d8  gcc/algol68/README
! 43ae40e82c1a7a144e905d40b101214e  gcc/algol68/a68-diagnostics.cc
! 27119d3e1e8fce1677a27ca87cc9de1e  gcc/algol68/a68-exports.cc
! 1728385ce5089a9ad9f2eed20fd65927  gcc/algol68/a68-imports-archive.cc
! 561de2b43ba921e2b9573777fade7021  gcc/algol68/a68-imports.cc
! 0904dc65c8116eaecb8d99576391c5dc  gcc/algol68/a68-lang.cc
! 6430e67f3d47b364ff04181a73b26fea  gcc/algol68/a68-low-bits.cc
! 284cf6c8827f78791575949cc1f634ef  gcc/algol68/a68-low-bools.cc
! 421c70a781dc2c00722aa019bc39f683  gcc/algol68/a68-low-builtins.cc
! ade291f272227055db98bddb78ff715f  gcc/algol68/a68-low-chars.cc
! 4a9e0cb255d3e694fb0c5209d63ed476  gcc/algol68/a68-low-clauses.cc
! b8582dd8bfb1b150fad9cafd7bbaa3c6  gcc/algol68/a68-low-coercions.cc
! 5aa76e1c20ed5b89f9d01211f6bb6cc6  gcc/algol68/a68-low-complex.cc
! fb2d06e1ab97449a52e96618e292e987  gcc/algol68/a68-low-decls.cc
! c57bfad420a3fc9e3f36e22e0b61c523  gcc/algol68/a68-low-generator.cc
! 060012b299f601a60e72193962d6699f  gcc/algol68/a68-low-holes.cc
! d609e1b57e69ce1d260c21cc2fad12d4  gcc/algol68/a68-low-ints.cc
! 949d0f0a5f79da34ba44f79c6ebfe282  gcc/algol68/a68-low-misc.cc
! 8e958b50675b076eba75cf460e2332bb  gcc/algol68/a68-low-moids.cc
! 1234b64ced731d809a0b56edb4104ead  gcc/algol68/a68-low-multiples.cc
! bce790fa747246ac4038817eca912174  gcc/algol68/a68-low-prelude.cc
! b761d3ea5bc6d29640619297fd8a70b6  gcc/algol68/a68-low-procs.cc
! 335ffa6c3b75121835fb8d3c30f87b67  gcc/algol68/a68-low-ranges.cc
! 6ff05854504f1f8e5073710e95f0b273  gcc/algol68/a68-low-reals.cc
! aebb4c3b9e607164c25541593333b832  gcc/algol68/a68-low-refs.cc
! 5fae0e595c8ad0b7c7ecc0fb87c3b2dc  gcc/algol68/a68-low-runtime.cc
! 839b3f59cd7d59666563e3a3d4c14b62  gcc/algol68/a68-low-runtime.def
! 778d47cffcd16d50f7105f7a8bd35d32  gcc/algol68/a68-low-strings.cc
! de4cb485173b396d55860a98e328be5b  gcc/algol68/a68-low-structs.cc
! 7675b3dfcea25bedcbe52f98cecdf7e2  gcc/algol68/a68-low-unions.cc
! 8869ad21fefe0ecdbd9cb6edfdf404f3  gcc/algol68/a68-low-units.cc
! 54f1fa37c18841cdd2ba1534e4f56878  gcc/algol68/a68-low.cc
! cc144936af15a60bf305436168b9c147  gcc/algol68/a68-moids-diagnostics.cc
! d81998d1a6b085f7b7f0fa13a8a9d297  gcc/algol68/a68-moids-misc.cc
! 943207507077d65185cd6d089f1249da  gcc/algol68/a68-moids-sorting.cc
! 93ab5a30cda3f697bee77eba313c66d6  gcc/algol68/a68-moids-to-string.cc
! 5cba262e501051ca9bc9e3c0cec33e74  gcc/algol68/a68-parser-attrs.def
! 739645b4e266cb231133a89e26a87751  gcc/algol68/a68-parser-bottom-up.cc
! 1bb7066c454105adf2abc3c5f3b91c57  gcc/algol68/a68-parser-brackets.cc
! 06167f432b9437d0cc135868d1067782  gcc/algol68/a68-parser-debug.cc
! f9cdfe842db71e53d1378e8dae40d607  gcc/algol68/a68-parser-extract.cc
! fc7ae86022255700f5866b320d5b195d  gcc/algol68/a68-parser-keywords.cc
! a4c0eb1b198b6316de80141fb16e341f  gcc/algol68/a68-parser-modes.cc
! 774cd52cc0e92f16e4f0ef07f921f74a  gcc/algol68/a68-parser-moids-check.cc
! eb200628692c30c1ade0eaeabcddf008  gcc/algol68/a68-parser-moids-coerce.cc
! 3789b4b4b2b84341d4e2c050f5f10acf  gcc/algol68/a68-parser-moids-equivalence.cc
! 7264507a5832537766582e01e375c299  gcc/algol68/a68-parser-pragmat.cc
! f91e068f5bebeeb403dde2649036a024  gcc/algol68/a68-parser-prelude.cc
! 66c161c03f5c103b8442e38420158113  gcc/algol68/a68-parser-scanner.cc
! 3e6a35051de9ec13b96de4c1070096c5  gcc/algol68/a68-parser-scope.cc
! d259fcdbab02c9c536b330f7111ae7cf  gcc/algol68/a68-parser-serial-dsa.cc
! fd40974691f816e7061a5c3332353478  gcc/algol68/a68-parser-taxes.cc
! e122741b2dfd6676fd42da92582f9088  gcc/algol68/a68-parser-top-down.cc
! 595c3ac77d0431f5a193397bb1229b3e  gcc/algol68/a68-parser-victal.cc
! efa893956e66113bef9513e9b717520f  gcc/algol68/a68-parser.cc
! bb6a9492686645cd8ede63a3aa41bb2e  gcc/algol68/a68-postulates.cc
! 5c64966b8d066f661eca85bf4451277e  gcc/algol68/a68-pretty-print.h
! 614ee2f3c97cf1910484b4ba1b697352  gcc/algol68/a68-tree.def
! 51765fe072aca0b33be841ecff043d07  gcc/algol68/a68-types.h
! 384e3fcca47f6f61b529f8d95656824a  gcc/algol68/a68-unistr.c
! 004c8ed84a6d3665dbac0ef8fa5351c6  gcc/algol68/a68.h
! cbc2ddca0589edc81c7df109b1a1927b  gcc/algol68/a68spec.cc
! ca4abac71b91773df74abdea22798551  gcc/algol68/config-lang.in
! b4939444e954db57c114bb14d3b5f57e  gcc/algol68/ga68-coding-guidelines.texi
! 9c3d535a7da271c49e76b9709e556383  gcc/algol68/ga68-exports.pk
! f150e2c760036b980e94ec7bb14e1172  gcc/algol68/ga68-internals.texi
! 0eb0fcd0aeea94a1755451b65b8aa2fe  gcc/algol68/ga68.texi
! 6e162644e83dbcfbcfbacd36f1e64f3c  gcc/algol68/ga68.vw
! 0a91d85c360d5ee3eb6258aecdab4636  gcc/algol68/lang-specs.h
! 55e32b4ac4d7a159a683785bd5ee4c7a  gcc/algol68/lang.opt
! 411f26970a0d93b07c697a1bcfeda50c  gcc/algol68/lang.opt.urls
! 0dc8a618ee2d3f1aeea3ff47c36d8d83  gcc/alias.cc
! b7dd8bd2dd68f81643704bf0b73553a1  gcc/alias.h
! 71901705cb0e11732bae53ff9de25faf  gcc/align.h
! f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
! 7657598f465321837951c858ab918f57  gcc/alloc-pool.h
! e861944a51bf258485d27ad578900b89  gcc/analyzer/ChangeLog
! a53ebffbaabe6bc3664d659c554fedb3  gcc/analyzer/access-diagram.cc
! c41fa6be7ca91f40a15a7b8f03732d25  gcc/analyzer/access-diagram.h
! d97e417faf9694fdbd68f91aee129bd2  gcc/analyzer/ana-state-to-diagnostic-state.cc
! 0d28086cb5be7b47c94b8fdb8329b115  gcc/analyzer/ana-state-to-diagnostic-state.h
! 672325403e6ce36c8c9f0f5eea41072b  gcc/analyzer/analysis-plan.cc
! 68c4c9f44cc8500b035ba79bb7260ff6  gcc/analyzer/analysis-plan.h
! f5017b10731e44bea541905efee60ac7  gcc/analyzer/analyzer-language.cc
! c10c515fd18d92850db760e5c083c1c2  gcc/analyzer/analyzer-language.h
! 11a3602bcb422274070220eb89a476d3  gcc/analyzer/analyzer-logging.cc
! 40ae03baf298b3a1710e66d214388347  gcc/analyzer/analyzer-logging.h
! bedbea78751b139538f4c906011432fe  gcc/analyzer/analyzer-pass.cc
! 380f2a7c04a014441f78569ef397a8a4  gcc/analyzer/analyzer-selftests.cc
! e87a9090a957efa1653cc5a6e36ec346  gcc/analyzer/analyzer-selftests.h
! 566c10c510fcd3ec28b63b769c57bea3  gcc/analyzer/analyzer.cc
! e7d438dbe37d47fa87041a69feedd52f  gcc/analyzer/analyzer.opt
! 72ab818cea4a66ffb80a0afe7abff21c  gcc/analyzer/analyzer.opt.urls
! 4a17f3766ca5b4ec528ac459c519fc61  gcc/analyzer/bar-chart.cc
! 745aa2e3472448c5c97fb4908c8d4397  gcc/analyzer/bar-chart.h
! 428a88c1b122c5af9e323db258b6024d  gcc/analyzer/bounds-checking.cc
! 347fd1e5d2dc257a6f98ade59f7515bf  gcc/analyzer/call-details.cc
! 3accfae2c88025c6a053a6536125bdc5  gcc/analyzer/call-details.h
! d19463658c4356a8bf5ed55a1f50d05a  gcc/analyzer/call-info.cc
! 1dc079de19ff905e605002178b41470a  gcc/analyzer/call-info.h
! c7b4f9658272bf5b5bf82cb7658a06e1  gcc/analyzer/call-string.cc
! 0bd7e3472ca83c56ebabbbf99d6cf111  gcc/analyzer/call-string.h
! 498b92c06e997fb220e232350ec7ff41  gcc/analyzer/call-summary.cc
! bc77cd1e5aec40e5623c49cb8974b3d4  gcc/analyzer/call-summary.h
! 3784976be91c6565bf29bf46a649458c  gcc/analyzer/checker-event.cc
! 4bdbe0c472a1b7a39557a9d0073f045b  gcc/analyzer/checker-event.h
! 27f8555a4210038eaa81c4f1f66b0d6b  gcc/analyzer/checker-path.cc
! 869cacfa0b942d7ed33ff8b774738bb3  gcc/analyzer/checker-path.h
! 6712495ad4527b26bc77a822585c6ee7  gcc/analyzer/common.h
! 5ff0274ed0a527fd34bb3ec30c36543f  gcc/analyzer/complexity.cc
! f945a407a1ad45be621e572190f6e11f  gcc/analyzer/complexity.h
! 49f1f27a8c444849f43eeb17ebbd14a4  gcc/analyzer/constraint-manager.cc
! 7d0cf2441abcd960f97e29dd071829e5  gcc/analyzer/constraint-manager.h
! 2728e4b1b06abaf098bfdc996d29a5af  gcc/analyzer/diagnostic-manager.cc
! ca695b2d13762f05a1ab6018eba991c7  gcc/analyzer/diagnostic-manager.h
! 0b21f47f418ffb3672d1e9f35c035d88  gcc/analyzer/engine.cc
! 42e3e00aa33d20f2e141615939577290  gcc/analyzer/engine.h
! f35c6c791ba815800582950c54998869  gcc/analyzer/event-loc-info.h
! dac4d88af8620f1805a41dfb31dd5c1b  gcc/analyzer/exploded-graph.h
! cad782ae5467a5910a55d6fc1ea9dab4  gcc/analyzer/feasible-graph.cc
! e04aa3aca2a9f4b67a39c9f1f608296b  gcc/analyzer/feasible-graph.h
! 8b2c744e5597c2c98cf66841238b4587  gcc/analyzer/function-set.cc
! 15ae98bf60a055d179af17ad402174b8  gcc/analyzer/function-set.h
! cebc0fb2ff69dfedb12e4fab2824c4fd  gcc/analyzer/impl-sm-context.h
! f0d253f05a474982aa1e1e4c99a0ff98  gcc/analyzer/infinite-loop.cc
! b4cf75f3e9332bcd6b95b1f080c700d8  gcc/analyzer/infinite-recursion.cc
! 0a7e1ce7bcc02f6aa0f1660029895b13  gcc/analyzer/inlining-iterator.h
! 8af331ea68e39926dae8949ff0e49c24  gcc/analyzer/kf-analyzer.cc
! 8916a9c075a04e691e41ea4601cdb475  gcc/analyzer/kf-lang-cp.cc
! def3e0b582e778cd32b9c87a74ca46dd  gcc/analyzer/kf.cc
! 0652b497ab69835a3ec50cb920b8a973  gcc/analyzer/known-function-manager.cc
! d065f64c3be7da8efff67c73024dd990  gcc/analyzer/known-function-manager.h
! 1cd447c2bc947fa57e24af9ea2598232  gcc/analyzer/ops.cc
! 96054b25dd18f7e6b3d43ca7c65a9367  gcc/analyzer/ops.h
! 54c7e7321ac6942f1c7f2be80207e644  gcc/analyzer/pending-diagnostic.cc
! 83f167b1c386352684ebdd1ca0e408c2  gcc/analyzer/pending-diagnostic.h
! 77b023b2349d390847d2dd7baa9d75db  gcc/analyzer/program-point.cc
! 83761973cc08ccbe996d4f80b0224df3  gcc/analyzer/program-point.h
! a13b7896a578ec8d2d38eb116cd388c2  gcc/analyzer/program-state.cc
! af63d5fc2aa77cb59b5eba8f9a30905d  gcc/analyzer/program-state.h
! a23706e970c248ed5f79513768075f32  gcc/analyzer/ranges.cc
! 294a35ef33c273bbc3dce75b76b6583a  gcc/analyzer/ranges.h
! a8c275843686611dd10e89cc7569f89d  gcc/analyzer/reachability.h
! 4df6e8532c302bc59b4e417ab38a741a  gcc/analyzer/record-layout.cc
! f93ef89d263e02c779ec129aeead8a28  gcc/analyzer/record-layout.h
! 8998fc6abdaaf4914e8f43f86a20d895  gcc/analyzer/region-model-asm.cc
! ae0d7ecc93c27d6f74e895f902a9c7b3  gcc/analyzer/region-model-manager.cc
! 4860699623318b1fcc150c458eca5b44  gcc/analyzer/region-model-manager.h
! c24460f53b22bdecc3b9e8af24da1575  gcc/analyzer/region-model-reachability.cc
! 93431d9eca086e4c7811afc3a66197ea  gcc/analyzer/region-model-reachability.h
! 8ae68abfadb9d9cf6243f9f6854fe525  gcc/analyzer/region-model.cc
! ef8dfb5c169591a6d74921d64c2fab55  gcc/analyzer/region-model.h
! 50ff3eeb08a83ff50dc62d1777c7bc57  gcc/analyzer/region.cc
! 7b478bc40e78865e5c23d8a7790c707c  gcc/analyzer/region.h
! de1b4d168343a9bc6547fc563f836658  gcc/analyzer/sm-fd.cc
! dbe5f340be1000aa32173ff729fedbab  gcc/analyzer/sm-fd.dot
! b10f0d6e0fcb38bf1735eefe471d028d  gcc/analyzer/sm-file.cc
! 401eb7722d517df6787e7bec7bdf9199  gcc/analyzer/sm-file.dot
! f858a1884be0ba0c234f7c737c48821f  gcc/analyzer/sm-malloc.cc
! 1b93a336848d1863eba773990024bfad  gcc/analyzer/sm-malloc.dot
! 0af99b045ce70bf1ecd2d979df5a544b  gcc/analyzer/sm-pattern-test.cc
! c1459aac86f73bc045b48366cc2494b7  gcc/analyzer/sm-sensitive.cc
! 766641ec7a7b7cdba8d4068bc558ed6a  gcc/analyzer/sm-signal.cc
! 3f61ef37f37c2c95af8e480f157ed916  gcc/analyzer/sm-taint.cc
! f0dcebb9979e1da7d7bd6fb4ad06a54e  gcc/analyzer/sm.cc
! b667de4f07c660c4cd4e91834ea39073  gcc/analyzer/sm.h
! 3624f55d83e9b0bc535b28c37079b437  gcc/analyzer/state-purge.cc
! 8a3af8bab2c3a2bb873540dfd49ae5c5  gcc/analyzer/state-purge.h
! 2f1ee4c02671a5d1ce23248062130292  gcc/analyzer/store.cc
! ce8b6d3a44b0f46186df88102edf3c2e  gcc/analyzer/store.h
! 33d9be73a4d262226af82d56d077167b  gcc/analyzer/supergraph-fixup-locations.cc
! 2b1f8d482dc79d6594c1772d53f983a3  gcc/analyzer/supergraph-manipulation.h
! 466a7599dd2372bf97c1a40ec8d04feb  gcc/analyzer/supergraph-simplify.cc
! fa9e08e646a34adeb4f02012756b3d74  gcc/analyzer/supergraph-sorting.cc
! a016ed244edf8129b300a1ef13e7f736  gcc/analyzer/supergraph.cc
! e5cf2ee934b248fcec986cf188b85409  gcc/analyzer/supergraph.h
! a3e063243859fb5828f6685fc5bdaa3e  gcc/analyzer/svalue.cc
! edd681dd878287379b145b3988427292  gcc/analyzer/svalue.h
! 643152b22a5c7ffccb9633bf2c517f1b  gcc/analyzer/symbol.cc
! bb281e65b69be53cd8eab73e448bb9c1  gcc/analyzer/symbol.h
! f9d4a813f2e42ce32c3296184cdf91a8  gcc/analyzer/trimmed-graph.cc
! 5dd8bf0b7118e94c8ea49e5d5ad5501b  gcc/analyzer/trimmed-graph.h
! 2db92f753772ba267b417de342cfe0d7  gcc/analyzer/varargs.cc
! 3c33a162314863866dc49ceb3d8abd11  gcc/analyzer/varargs.dot
! 5af94414f167d3b307a0e33995e4a7fb  gcc/array-traits.h
! 4dc843bbb8bbadc9097e85ccdc9ad468  gcc/asan.cc
! 756461437b2a9b9c23a4dd8bbb792b16  gcc/asan.h
! e003b9fc1b8aa5b9b0eef314c0c4f56a  gcc/asm-toplevel.cc
! ea987115b0f67bce5cc4745e6d5bc4d1  gcc/attr-callback.cc
! 2d462a57a0a7bbe8bcb22db63f9377ef  gcc/attr-callback.h
! cbe63f3e975481a17ed49898fbbb9d2a  gcc/attr-fnspec.h
! 377ef2db41c57304d86699bc3197d818  gcc/attr-urls.def
! 41ebf84dcf3c0a1da25d48a3c9fa72d4  gcc/attribs.cc
! feed071e9f711f8ebbc91f8636422f93  gcc/attribs.h
! bd317e24faffad6f2106396f1c3401b1  gcc/auto-inc-dec.cc
! fc353966a860a12cbc161a87f5619b51  gcc/auto-obstack.h
! a4c64459b3b4fb8ef116716a051874f1  gcc/auto-profile.cc
! d290a68be0a787113b46b8c5ec98f710  gcc/auto-profile.h
! 0ec313d8a3741cea7ca7b0151291cbdb  gcc/avoid-store-forwarding.cc
! df8fff5733f0af601cd10d3e2611b94a  gcc/avoid-store-forwarding.h
! 8ec9314e9edefe43a037289f48e6602a  gcc/backend.h
! 836731448e64bbca8b5b1aa56ca90cdd  gcc/basic-block.h
! c277cfbf6dc22b5e43687f22a6ef9adb  gcc/bb-reorder.cc
! 20c432f7895f0ceadeae7cb99fd92b35  gcc/bb-reorder.h
! 47f6edeed43ea42786e067c0a899e909  gcc/bbitmap.h
! ebb1ceb69d6cf8ac2cdc227ae45f0eca  gcc/bitmap.cc
! 02723eaf6b51bef2f5c86af989a3a07a  gcc/bitmap.h
! 392eecf8142b4edd3c482f461232166f  gcc/btfout.cc
! 6da486aac72d8ac53fc6618dea4dcf2e  gcc/builtin-attrs.def
! 4d187b33643d8554f50ad793471e43a2  gcc/builtin-types.def
! cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
! 4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
! 99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! d3b7ebaf00a8a2583412d8f2cee02379  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
! aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
! f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
! 070946aa1b55a55d613bad8af07ad174  gcc/c-family/c-attribs.cc
! 9c4e2d12e48f052bafabdf6281744002  gcc/c-family/c-common.cc
! 6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
! 81cb275a3cf181ff08d23b453a35d711  gcc/c-family/c-common.h
! e3a0d862a25764bc4242ad90ba85db86  gcc/c-family/c-cppbuiltin.cc
! 0b9194e38297d00cf3fac80365cc07af  gcc/c-family/c-dump.cc
! 6ae3bdb693669aee234a91cd79302dcf  gcc/c-family/c-format.cc
! 1adde7951b864b565a2b79c5461d43fa  gcc/c-family/c-format.h
! 4179a97862f28535be92ef4cab16246e  gcc/c-family/c-gimplify.cc
! 50e638257386d3df7bdf25108fdeb5d1  gcc/c-family/c-indentation.cc
! 382fde18b48d137c66c91e21de978037  gcc/c-family/c-indentation.h
! 45c8fc8d67953a240dac81ef9fb80c2a  gcc/c-family/c-lex.cc
! eb6a10cfada98679dc204a82e929e9e3  gcc/c-family/c-objc.h
! ea297af5bdcb8c784d704a6b99a79c38  gcc/c-family/c-omp.cc
! a93a54bd451fefbd21f9b288d5530d33  gcc/c-family/c-opts.cc
! a7304c009aa63ce6c8e80612b426724a  gcc/c-family/c-pch.cc
! cb9706138b571f810527200a1e24035c  gcc/c-family/c-ppoutput.cc
! 1c45b9d8f8a674aa74dc09d32ee9a453  gcc/c-family/c-pragma.cc
! 3b95dd511ff85485cf453d6f6db28832  gcc/c-family/c-pragma.h
! 3b3930bb1784f2b99997e9bc20f629f2  gcc/c-family/c-pretty-print.cc
! add7082619c416c63f42baa032fa2666  gcc/c-family/c-pretty-print.h
! 0fe18953433ec4d075e22bb895480c86  gcc/c-family/c-semantics.cc
! 1c08425571c12c15e23385919a5d702c  gcc/c-family/c-spellcheck.cc
! 45b60f2873ef3eb81da50c54e333b9f9  gcc/c-family/c-spellcheck.h
! 34e077f50b0654e1bc48f9fdcc7a20d0  gcc/c-family/c-target-def.h
! f7be2688a5d3b3987de70c31a6a5e374  gcc/c-family/c-target.def
! 38a6ba552ef0b2855739836a1238dc30  gcc/c-family/c-target.h
! d5acf2497b583d0fedcf4e2ac5f4ac4a  gcc/c-family/c-type-mismatch.cc
! ea821c9d267c64dd8b74aad9d0189834  gcc/c-family/c-type-mismatch.h
! 6f9f322124625df8d051fb8538679e17  gcc/c-family/c-ubsan.cc
! 298f1278576690ff4398c33310700f52  gcc/c-family/c-ubsan.h
! 29b7425b7315dcfbd0c9f89296e90df0  gcc/c-family/c-warn.cc
! 64f70ea877ef6fdb6e5a9fc36357732d  gcc/c-family/c.opt
! 87cfcd671634399d8a259326c9c4e7c4  gcc/c-family/c.opt.urls
! 6453e733397a8ab931434f4f73ee7d7b  gcc/c-family/cppspec.cc
! 58ecef7621a9577e43ac42cfceae8864  gcc/c-family/known-headers.cc
! 377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
! 431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
! 3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 61fb13e1e786ee9143d5a99312a06790  gcc/c/ChangeLog
! cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
! 3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
! cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
! 0f01f9a7997b353bf388f82ca59e6a33  gcc/c/c-decl.cc
! 92707173973fa48fbb8dda88f5af625a  gcc/c/c-errors.cc
! a59a5f126151616976b68fde0c703dd4  gcc/c/c-fold.cc
! 817e08cf2d2f4169cb1e5cc26bad1174  gcc/c/c-lang.cc
! 62012039da265ed806754029f67a24a9  gcc/c/c-lang.h
! 1c2de79d0807af2a767aa7abefb07c3a  gcc/c/c-objc-common.cc
! cbfdd140f14c43c01a6bdf8b1c24b317  gcc/c/c-objc-common.h
! bb645136b8228c4df81f31b878165339  gcc/c/c-parser.cc
! f6b634d7c0204c419cf4fb7b48193fad  gcc/c/c-parser.h
! 4db955734effe2d0c9aac0379d2e6a8c  gcc/c/c-tree.def
! 2bb3aa7e53e3cbc63125f017f4a5d67e  gcc/c/c-tree.h
! 4145861dac00fe986b771be875b990f8  gcc/c/c-typeck.cc
! 5804f7ee3eccdfb7c9a64e40b20ccc79  gcc/c/config-lang.in
! 58370619d5c4739b7d81d5f899913a0c  gcc/c/gccspec.cc
! 3ae90e1d8085765b7e7488ac9673a927  gcc/c/gimple-parser.cc
! d5c1cad6808353782d75116a4939d551  gcc/c/gimple-parser.h
! 8b7ae733f9c7c1e52dc5db93bec9cc45  gcc/caller-save.cc
! b40f416783095fe53a15120613a517c0  gcc/calls.cc
! ff5a0cd0f881aae35e405e715150405b  gcc/calls.h
! 3a4ad3325026c8bc065648c9af3f67fb  gcc/ccmp.cc
! bdba39e87a75c76bfc3ab3bfd08e7f02  gcc/ccmp.h
! b10a97632296895b0c731a2bec8db001  gcc/cfg-flags.def
! b5032914357d504b699d52f930f6998b  gcc/cfg.cc
! d765375085ae6a7be91925c440afd3a9  gcc/cfg.h
! a720508ff7cb46f4e08fb74d46e39b6d  gcc/cfganal.cc
! 0d787a64241d6b4077f0204523b9ae83  gcc/cfganal.h
! efcac12e876ea7fc2018badafb6fddb5  gcc/cfgbuild.cc
! 1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
! 7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
! 19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! cc705d06a0d769debf1c9afca112eff6  gcc/cfgexpand.cc
! 7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
! 7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
! 7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
! 9739bc392def15d91a473ac8e1020ae2  gcc/cfgloop.cc
! e401a5a5a7e802aea0c860de79cf4639  gcc/cfgloop.h
! f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
! 13dceaa9039328df68a470f515c67c3b  gcc/cfgloopmanip.cc
! 83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
! 6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
! c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! 23b9aa75531c001cb377f7909d709c80  gcc/cgraph.cc
! d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
! 0e01d226aed9a7a844ec0cec027e8bd4  gcc/cgraphbuild.cc
! 1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
! a9229e8ac3f0d366e296e57756becd23  gcc/cgraphunit.cc
! 45b21ab7ea818c3a3ce60bf8d3cbd252  gcc/channels.h
! 931fe41c17df7e7a6074418f8e41f010  gcc/cif-code.def
! b576255b7c89d8f4c48ece9eb9f58b69  gcc/cobol/ChangeLog
! 56c564c4cfd3395214baa46684218f3d  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
! 721fae29d54f2a632cdf024f72b079d3  gcc/cobol/cbldiag.h
! 5fdc70643a73d31fa87ca25eb9bca477  gcc/cobol/cdf-copy.cc
! df4328418ca512f9f4c5da81ab477365  gcc/cobol/cdf.cc
! 8305f8aba59d451bfe0d384e89972c9e  gcc/cobol/cdf.h
! 298773ed22793f7c278724d2c7828041  gcc/cobol/cdf.y
! 9e2d50bdc3077d698d2cd5c27a02cf08  gcc/cobol/cdfval.h
! 39a7cc8aae37a642491e77796d652ebe  gcc/cobol/cobol-system.h
! e0f535eda76f91487f21c3b4888404e0  gcc/cobol/cobol1.cc
! 8b7f26d4855e5bb69a66eecc586d9742  gcc/cobol/config-lang.in
! 7e43ef597462b3ceabf3c197b4017e7c  gcc/cobol/convert.cc
! ba30f28abeaa4beeafc56b80054aad73  gcc/cobol/copybook.h
  3f5a0424b32cd09b107e8858af9cf15f  gcc/cobol/dts.h
! d3e145b932227aa8e5b26dec41c06d6a  gcc/cobol/except.cc
! 41ddde89db7edc684fadb0cba4d0e67f  gcc/cobol/exceptg.h
! 513ba4e9571cd85565465785f2a6286a  gcc/cobol/gcobc
! d576006e43938e834a3c93d92bddcc98  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
! a0a0120d2e52dd9bbe26a6d64ba9dc64  gcc/cobol/gcobolspec.cc
! d4a241838fc81e1fa500a15ce0e722ff  gcc/cobol/genapi.cc
! b0e08dd5c1b33b9edf9f3c89fc4e118a  gcc/cobol/genapi.h
! f6b49df8f08bde7d55994bd030686afe  gcc/cobol/gengen.cc
! 7a93d507aaf6bc434a5529dd4b599bf9  gcc/cobol/gengen.h
! 02c1973b92cba6c2803b133cd4b16eb0  gcc/cobol/genmath.cc
! 78d263e35c67698f367e118c95157cb4  gcc/cobol/genmath.h
! 082c11a08ad373c7a277396c5568082f  gcc/cobol/genutil.cc
! 925e4dcdfe1a80d684d2f24b6ea9db56  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 0c56a591cf166a8d83553c2afd4b3ce3  gcc/cobol/inspect.h
! 1d25e20d4c6772646a35ca3fa9e1ed49  gcc/cobol/lang-specs.h
! 78d52a99c23b816808264665df785271  gcc/cobol/lang.opt
! 2924af2e9df185e08e5e225631897dc5  gcc/cobol/lang.opt.urls
! 75383d93bce64f91473c54d1c6a52f98  gcc/cobol/lexio.cc
! c691e8bb52e1a438ce2f510250bbf4d9  gcc/cobol/lexio.h
! 64538945adf32d271171e0bda2850338  gcc/cobol/messages.cc
! 53c7b0798ec07e1ae0627fdeba18e4d0  gcc/cobol/parse.cc
! 1e4e0b801bea76c1ac527cac680c24ee  gcc/cobol/parse.h
! 49174414380efefeb1fbe5a1ba530f5c  gcc/cobol/parse.y
! 8a51cf3c9693021e14e8e8f77a464c98  gcc/cobol/parse_ante.h
! 658e59750efa818db284c44387330580  gcc/cobol/parse_util.h
! b00a835a6c0a31b50cca4447efb9e647  gcc/cobol/scan.cc
! 52c1a2af86ace48e713840e3d7efa796  gcc/cobol/scan.l
! b0dbe25131552ea89e3c4b817cb51a13  gcc/cobol/scan_ante.h
! fcc394f9d06bbd841472e0b0d69f643d  gcc/cobol/scan_post.h
! 74a3f55d7d2740db3d3e1945335d4faa  gcc/cobol/show_parse.h
! 6461e12b84bc54245442466d729743c9  gcc/cobol/structs.cc
! c9b6f7041663377c42969a2d442c95df  gcc/cobol/structs.h
! 19f9021d9a32e6d1588614189c623927  gcc/cobol/symbols.cc
! 0d46dce5de9d1d2448cbeec26081b566  gcc/cobol/symbols.h
! 1da102076dc68b2edac18947cbd1c104  gcc/cobol/symfind.cc
! 0b45e8af0c2c2f064b378c02368657f3  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! b268c943df2fb6adc86fd796856587cb  gcc/cobol/util.cc
! 71a80320dc4c1e02c0aafd48bea98ea4  gcc/cobol/util.h
! c1bcbb8330a34acab1f51487c3d5b89f  gcc/collect-utils.cc
! 70025ae15b4018e75f6bfcbaa4db4fca  gcc/collect-utils.h
! 38716fe5959af2b954c272008e158928  gcc/collect2-aix.cc
! a56f67bf9504f1f91df64d23b9ce6f3b  gcc/collect2-aix.h
! 705abc3f0adc6b53db161a82f7553855  gcc/collect2.cc
! d48c86bc52a7b8ee38281d6069d3eb6a  gcc/collect2.h
! 9b54c6ade2ed5ee11859b498e663936e  gcc/color-macros.h
! 903401554d90de06743fb9a836e6a45b  gcc/combine-stack-adj.cc
! af093931f440b1ff2d8eaf64045fbf9b  gcc/combine.cc
! 9f2835a8fa18cfce2249127014eb7edd  gcc/common.md
! b82c70a691a0ccf137f58b46e3f35b22  gcc/common.opt
! d2e8132b0f749227249e50a041b512b0  gcc/common.opt.urls
! d3b28fb0d49a8d683dde6011400fd7e7  gcc/common/common-target-def.h
! 93cf11d6a27d42f73799ae012d2f876e  gcc/common/common-target.def
! d8f7142c05c4102806a8b26817df17a6  gcc/common/common-target.h
! dfc09a8e551202c9c0a110afa5ecea07  gcc/common/common-targhooks.cc
! c118f6e609bff904f31476e74ab45479  gcc/common/common-targhooks.h
! 79da69552bc79b2de72438f3983221b4  gcc/common/config/aarch64/aarch64-common.cc
! e4c10015d61b0c0179e4214dbd85d19f  gcc/common/config/aarch64/cpuinfo.h
! 3a5ce2d619f3e16155b647a743a1c1c2  gcc/common/config/alpha/alpha-common.cc
! 62d17fa2c618153bcc9f0eabb9a8e88c  gcc/common/config/arc/arc-common.cc
! eeec3960c042d6088d75c12c57396852  gcc/common/config/arm/arm-common.cc
! 485b24121b6b0590c10d23699acea97f  gcc/common/config/avr/avr-common.cc
! 01bfdbc404319ecaeaaf9400e490cded  gcc/common/config/bfin/bfin-common.cc
! 7163ff82097caea7c45ba50bc3827cd2  gcc/common/config/bpf/bpf-common.cc
! 0f0b65e1026a46ad767e0354be2f0529  gcc/common/config/c6x/c6x-common.cc
! 8c9782a126785343915e1e56b5a3c857  gcc/common/config/cris/cris-common.cc
! 42167e1ec96c725a45febd784c8b764d  gcc/common/config/csky/csky-common.cc
! 26ad4784ce904350edfb93559999b5a7  gcc/common/config/default-common.cc
! b218f741c2f54f950d065bb40f5125ea  gcc/common/config/epiphany/epiphany-common.cc
! 483fe0c27135af6ab0fdb313e8d3c718  gcc/common/config/fr30/fr30-common.cc
! 4d82eb0ae58ac44e02bff98ed16ac27d  gcc/common/config/frv/frv-common.cc
! 5b41dfaa1b910962a78074d1e5d611d6  gcc/common/config/gcn/gcn-common.cc
! 30ff9a49f51b477d26fe8159736f2269  gcc/common/config/h8300/h8300-common.cc
! 3099d255601bd4a7974b26d4e04ea8cd  gcc/common/config/i386/cpuinfo.h
! bfcc6c6711be61d956d37dc672efd919  gcc/common/config/i386/i386-common.cc
! 7fa3ff9c6189a03f06c2d14570c2a11f  gcc/common/config/i386/i386-cpuinfo.h
! 24557722d0737993019d96d84cee0094  gcc/common/config/i386/i386-isas.h
! 9dda9971db0422e2c982905c5e39202c  gcc/common/config/ia64/ia64-common.cc
! 24847f756d827cf6015cbb798500e296  gcc/common/config/iq2000/iq2000-common.cc
! df0aff91f92c028b3d1911a08cadc2eb  gcc/common/config/lm32/lm32-common.cc
! b7db9bfc013f3921851cba3c0978d935  gcc/common/config/loongarch/cpu-features.h
! 236546d38938fe825afa57546f9fde47  gcc/common/config/loongarch/loongarch-common.cc
! 89bf0e8bad98ef9ac8679259f4c3ec03  gcc/common/config/m32r/m32r-common.cc
! 2ecc094d1a805b1546edc1a55272872b  gcc/common/config/m68k/m68k-common.cc
! b57f2c45cd9fa53f4fc1621a194e693e  gcc/common/config/mcore/mcore-common.cc
! 132579a43a76970b12bfce012313b3e9  gcc/common/config/microblaze/microblaze-common.cc
! 549d322ae4fdc66e3373210e6af51b05  gcc/common/config/mips/mips-common.cc
! ca7a0b2f0a3d5cd8dfe4b1fae7a51c25  gcc/common/config/mmix/mmix-common.cc
! 934c63448a4b9c2a1594d7ae2b0a4380  gcc/common/config/mn10300/mn10300-common.cc
! b1b166d42b0cd3e8a21a0ad1a418bab7  gcc/common/config/msp430/msp430-common.cc
! d8186ca60d88fc455c403eb87d6e59e7  gcc/common/config/nds32/nds32-common.cc
! 3e14b719f563acb68d6d9df79031fed6  gcc/common/config/nvptx/nvptx-common.cc
! 33d0cf15b116fd9439fdb91c3c8a206c  gcc/common/config/or1k/or1k-common.cc
! 67a4e50b29a50485cecd1c144965e97d  gcc/common/config/pa/pa-common.cc
! 500435c25f1e8769a7838c3e187195c1  gcc/common/config/pdp11/pdp11-common.cc
! 3fe10d934c16b0a06d492096be6d8ee1  gcc/common/config/pru/pru-common.cc
! 96ef8adfff37da3edbe71ab6e67eceed  gcc/common/config/riscv/riscv-common.cc
! e45dc963ab3b2c665885256617dae5db  gcc/common/config/riscv/riscv-ext-bitmask.def
! c5805e3cf6610b64324ce388e3f5f855  gcc/common/config/rs6000/rs6000-common.cc
! b6c011cb2596e87fbedc97081867b691  gcc/common/config/rx/rx-common.cc
! 69998ad4853297d8db89b57ff246a41d  gcc/common/config/s390/s390-common.cc
! f6975807c9da8f00f82eca715c7fc07f  gcc/common/config/sh/sh-common.cc
! fdf16bafc9d724579e05c0090b8a05c7  gcc/common/config/sparc/sparc-common.cc
! c116871b1bccc88a0b8f946d6a68d0d0  gcc/common/config/v850/v850-common.cc
! 0453ad5b83dc2f4cafad35289b092dc7  gcc/common/config/vax/vax-common.cc
! a9614075e7c73706d66b5947ee7833e8  gcc/common/config/visium/visium-common.cc
! d3b8ce30c6110489fd0b57d6792f3f29  gcc/common/config/xstormy16/xstormy16-common.cc
! 5f57f58fab0281a10ab69169f1a9093a  gcc/common/config/xtensa/xtensa-common.cc
! 88eac990ca6879dcd747cf5113888b1e  gcc/compare-elim.cc
! 6137f3da8f70ec4262acab21bb549148  gcc/conditions.h
! 4250c8b8d57bf1315174cf436a74a88b  gcc/config.build
! 9f5106a7780803fa2407f1ec9ad78d23  gcc/config.gcc
! d8b0b26795a60b3a991dfbdafe4cd756  gcc/config.host
! 34da5cde8b9bc078646ece2f7754fa2f  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
! 09ab460c021260083d94d95ece3cdb5d  gcc/config/aarch64/aarch64-abi-ms-protos.h
! c47b4191f7bac0196ab63ca2c66bfa98  gcc/config/aarch64/aarch64-abi-ms.cc
! 148fedc3acd410f7a82133d0e78b02df  gcc/config/aarch64/aarch64-abi-ms.h
! 9b6ffa67b7e7f7cc2348fa0dc728072e  gcc/config/aarch64/aarch64-arches.def
! c8a924cfcb693679febdcde3a0cc0809  gcc/config/aarch64/aarch64-builtin-pairs.def
! 3b4b552144d47e66a0b131b2e5aa5df9  gcc/config/aarch64/aarch64-builtins.cc
! a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/config/aarch64/aarch64-builtins.h
! 3330c8b7c6a60c9f7691d80f8b33026b  gcc/config/aarch64/aarch64-c.cc
! 3effce0415a0994753b7865834e56638  gcc/config/aarch64/aarch64-coff.h
! 1e3f3e85ee00a43b3932b2c53c40df08  gcc/config/aarch64/aarch64-cores.def
! cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
! 5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
! 3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
! 9fe1a08700a99af1ed161e0634875bd2  gcc/config/aarch64/aarch64-early-ra.cc
! 0f04d4db0b98d93d624f6bf49c0b2c61  gcc/config/aarch64/aarch64-elf-metadata.cc
! 3d5c9a06fc3373401b1a496b0c2d812a  gcc/config/aarch64/aarch64-elf-metadata.h
! cfe06f94751bf9d5dc61fd5b0184ba2c  gcc/config/aarch64/aarch64-elf-raw.h
! ad46aa5e72a5c2c30247bb3cf2ed9f20  gcc/config/aarch64/aarch64-elf.h
! 26d3bfb0a2bcda1a42752b83bb763f82  gcc/config/aarch64/aarch64-errata.h
! 54333a4f44568d4aef8904fba113ad23  gcc/config/aarch64/aarch64-feature-deps.h
! 175079359773cc2a25c4f2d86be2ddb8  gcc/config/aarch64/aarch64-freebsd.h
! 4089c322f1eb5ced83c7f192d2660d04  gcc/config/aarch64/aarch64-fusion-pairs.def
! 789000dd30ff0d59bc25a45b90bab665  gcc/config/aarch64/aarch64-generate-json-tuning-routines.py
! 4b98306d3171f975e1bf67e8ca2f3766  gcc/config/aarch64/aarch64-gnu.h
! 4bd127c7f191b73cd09e5c916f42ecb7  gcc/config/aarch64/aarch64-isa-modes.def
! 86cf0e3aef6665a250c1b031ca1f68fc  gcc/config/aarch64/aarch64-json-schema.h
! 4dd736f01d638e460837c892caaa51fc  gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc
! 3a287e06960edbc462295a8f51acecf0  gcc/config/aarch64/aarch64-json-tunings-parser.cc
! 606e85acf12046d37177e8decd22ebd6  gcc/config/aarch64/aarch64-json-tunings-parser.h
! 5bb0cbdfa2290d0100d7f7d06d6ad26c  gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc
! 87b39dbee5f358faaab8caa85493a16e  gcc/config/aarch64/aarch64-json-tunings-printer.cc
! 50481181ce92fb4dac1644f120ba36a0  gcc/config/aarch64/aarch64-json-tunings-printer.h
! b5673de84eb78885b56917c7b8b92e97  gcc/config/aarch64/aarch64-ldp-fusion.cc
! 66724803f21104e637c395aa5cad8a59  gcc/config/aarch64/aarch64-ldpstp.md
! bfa2432e1ec80f8de2e43f3f3ba8da0e  gcc/config/aarch64/aarch64-linux.h
! ef1ce762dfa6300b426ed1df70cd6069  gcc/config/aarch64/aarch64-modes.def
! c83c76f931da0477c57103c5ec677568  gcc/config/aarch64/aarch64-narrow-gp-writes.cc
! c058178535c874c3d9f517b5db804691  gcc/config/aarch64/aarch64-neon-sve-bridge-builtins.def
! 99262ad964faab9a1090f68a8b3d6d7a  gcc/config/aarch64/aarch64-netbsd.h
! 4ac96a19bb5198741503893e13567775  gcc/config/aarch64/aarch64-option-extensions.def
! 2cdaca2f6acccb800d5965b66c5168ce  gcc/config/aarch64/aarch64-opts.h
! c7b072f711fa836ea89000f6f5ae25fe  gcc/config/aarch64/aarch64-passes.def
! 533b86c66767379e8735428e530b8ede  gcc/config/aarch64/aarch64-protos.h
! 7beff4ec013b184132d7c933faa51208  gcc/config/aarch64/aarch64-sched-dispatch.cc
! b824341b8f6fdb8eb1667425adf63db8  gcc/config/aarch64/aarch64-sched-dispatch.h
! da15606bcbef7961db958c042bf81c05  gcc/config/aarch64/aarch64-simd-builtin-types.def
! 9a92557ac11986ea17d11d6ca82c01e6  gcc/config/aarch64/aarch64-simd-builtins.def
! 8f0acfd5455d9572e381b98441bf47a5  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! de47095986c58e8a296dc72de2121d30  gcc/config/aarch64/aarch64-simd.md
! d2454492e480b042b8b9bdcd7893fbe2  gcc/config/aarch64/aarch64-sme.md
! 680d9861c361f5e0db24978600b2a134  gcc/config/aarch64/aarch64-speculation.cc
! e3b47e812748e5bfcc877f836d554a0d  gcc/config/aarch64/aarch64-sve-builtins-base.cc
! cc3e36cd6335911c4199669958386c9e  gcc/config/aarch64/aarch64-sve-builtins-base.def
! 296e628c73cdebb4c5a0c2335cae4084  gcc/config/aarch64/aarch64-sve-builtins-base.h
! df14a744242cdd5396d7f9e578f7838e  gcc/config/aarch64/aarch64-sve-builtins-functions.h
! ca5f6a89d79c08d79fe5ff052e836a69  gcc/config/aarch64/aarch64-sve-builtins-shapes.cc
! 97c5fdc23b65bcb2ba85ccd1ce66af2e  gcc/config/aarch64/aarch64-sve-builtins-shapes.h
! 37015c038f8cceef0df52b2e378636d3  gcc/config/aarch64/aarch64-sve-builtins-sme.cc
! b7970cc46633371d0ac4e877297d804a  gcc/config/aarch64/aarch64-sve-builtins-sme.def
! 85e1ee139787d52dcd3b9e3d8240453e  gcc/config/aarch64/aarch64-sve-builtins-sme.h
! e3b84b8c70b76f20a6d8123da2876317  gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
! 7742fc1106ddcf7261e10d6eeac7d1e9  gcc/config/aarch64/aarch64-sve-builtins-sve2.def
! 2cdc75f9c6df91167d77d8f46b2b4c5a  gcc/config/aarch64/aarch64-sve-builtins-sve2.h
! 49330d59221903e05f3ad03c9f6a6a7b  gcc/config/aarch64/aarch64-sve-builtins.cc
! 0aaa296fe7e877e67b85468885fdb8b5  gcc/config/aarch64/aarch64-sve-builtins.def
! 88f4473ff255da227dee1dbc66c11a5f  gcc/config/aarch64/aarch64-sve-builtins.h
! f254f4eb5433b6e41d08c6dd0805b7c0  gcc/config/aarch64/aarch64-sve.md
! 78d4791112b168ff5157e8e4c95a40a5  gcc/config/aarch64/aarch64-sve2.md
! ce756734c2d086ac2b6f48267acb68ea  gcc/config/aarch64/aarch64-sys-regs.def
! e101bed95b5d0264c364d8bcf1a7705f  gcc/config/aarch64/aarch64-tune.md
! dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
! 45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
! b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 9978f6531f3a4826223e96ebf5bb5ceb  gcc/config/aarch64/aarch64.cc
! 643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
! bd813cb7dfa70cb6c970d78d27ead783  gcc/config/aarch64/aarch64.md
! 473ca0d59415b61c8ee8e6c85d2ccb62  gcc/config/aarch64/aarch64.opt
! 5bc2d62d910e1c00bd6eed6ffaa5a18d  gcc/config/aarch64/aarch64.opt.urls
! 854a2fd8965d477c5b064388ed354bf1  gcc/config/aarch64/arm_acle.h
! e8d32471149337fb86504c9b287a6aef  gcc/config/aarch64/arm_bf16.h
! b156014d3463d59daa50c73ab8e10b54  gcc/config/aarch64/arm_fp16.h
! 5853aca7ed1116ecb7cad53e0fe8c73b  gcc/config/aarch64/arm_neon.h
! f2108dbfce0ac8bc8e9d922391b75555  gcc/config/aarch64/arm_neon_sve_bridge.h
! f30a98583d7c2cf50310b317a5f959be  gcc/config/aarch64/arm_private_fp8.h
! 05ff50623c2d55e39715f09f1b461320  gcc/config/aarch64/arm_private_neon_types.h
! 742a30434ea95ebb73420be83eea81cb  gcc/config/aarch64/arm_sme.h
! 1fee90eb1fe00fb3071a8c369b274919  gcc/config/aarch64/arm_sve.h
! cf1987e5ab132733d06bfee8c03fcb96  gcc/config/aarch64/atomics.md
! b80cf07c2c72294b3852130ec8c93494  gcc/config/aarch64/biarchilp32.h
! 532332ff4f3d492231a7c392cda8d879  gcc/config/aarch64/biarchlp64.h
! eb03dfcd266d8fc8f127a62e436447db  gcc/config/aarch64/check-sve-md.awk
! 73b78efd3b80c813fe75cc2b519996be  gcc/config/aarch64/constraints.md
! 3c41ca007a195244b101219701a3bcb0  gcc/config/aarch64/cortex-a57-fma-steering.cc
! dc252994bb63e3b3bb9aa44e233b100d  gcc/config/aarch64/cygming.h
! b6d18d11750027a9e7159f7100cbc2df  gcc/config/aarch64/driver-aarch64.cc
! f16190eb3167c87740aaff80ebc646b5  gcc/config/aarch64/fractional-cost.h
! 651bbb7890869a090e394b18403b9f44  gcc/config/aarch64/gcc-auto-profile
! 190b8ad2102cd90ce935883b736ff024  gcc/config/aarch64/geniterators.sh
! b8dedf1142526bb86368b620384f877a  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
! 84a2bd11e63defac1cddbb6aa47cfff8  gcc/config/aarch64/iterators.md
! 811f43b19ba5f415244c59b4ab377445  gcc/config/aarch64/neoversev2.md
! b382a70dce13e2b3d554e31443c0dbf0  gcc/config/aarch64/olympus.md
! 38f51f94de89d54e9076031bb9368473  gcc/config/aarch64/predicates.md
! d28594900d3dd9c03845b0a6c7b79bb2  gcc/config/aarch64/rtems.h
! 995e17141128acc7d41cdf9081d39e84  gcc/config/aarch64/t-aarch64
! 7e5e5f86679b2cd3564d95ac33603bc1  gcc/config/aarch64/t-aarch64-freebsd
! cbfacc8a400417ba418bcf35c9924095  gcc/config/aarch64/t-aarch64-linux
! 1cb36852a4b0d051f70f43b3a8639779  gcc/config/aarch64/t-aarch64-mingw
! 7e5e5f86679b2cd3564d95ac33603bc1  gcc/config/aarch64/t-aarch64-netbsd
! 036cc14e1c985a894bd470837e610f31  gcc/config/aarch64/t-aarch64-rtems
! 4b1d74da5afd2cbec8affff49eb13293  gcc/config/aarch64/t-aarch64-vxworks
! 09fdcca57e13f8d92a7493e14551324a  gcc/config/aarch64/thunderx.md
! b4fea9bc9192136140380d88dce79fa9  gcc/config/aarch64/thunderx2t99.md
! 6d97ce5136beca035ff0415f2d3e8cfb  gcc/config/aarch64/thunderx3t110.md
! e05dc280f1503a1c41082725d94d62d7  gcc/config/aarch64/tsv110.md
! 90072f357d3de33ba9390e2634c9d11b  gcc/config/aarch64/tuning_models/a64fx.h
! 670f913d53c6a1f880244576faf330b4  gcc/config/aarch64/tuning_models/ampere1.h
! 1b294abeb6683126122fb9d9c174d207  gcc/config/aarch64/tuning_models/ampere1a.h
! 96fd0c691708d6dda8214b42d8daff63  gcc/config/aarch64/tuning_models/ampere1b.h
! 2aa659f1b5858858deea7c18974bb04a  gcc/config/aarch64/tuning_models/cortexa35.h
! b09a8fa2b31a86ae520f3c4566d11302  gcc/config/aarch64/tuning_models/cortexa53.h
! 0615b8073858572fac13f8d34cbf9887  gcc/config/aarch64/tuning_models/cortexa57.h
! 0a20653ad772b2ff812f58c18c922bd7  gcc/config/aarch64/tuning_models/cortexa72.h
! d2dbd96003d2c2e791c8044769602cec  gcc/config/aarch64/tuning_models/cortexa73.h
! 00fe7773c9296ade2edd5b9a88415ec7  gcc/config/aarch64/tuning_models/cortexx925.h
! cbb1da016f00b3cbd2e9b93e3ec3a36e  gcc/config/aarch64/tuning_models/emag.h
! 5195fb5d8a1b8956a859fb4043f9fa2f  gcc/config/aarch64/tuning_models/exynosm1.h
! edb7875ce7bf0af9bc11a475c9fd317a  gcc/config/aarch64/tuning_models/fujitsu_monaka.h
! 74c21f06fcf41dd4e24dd5251f80e058  gcc/config/aarch64/tuning_models/generic.h
! 9b0097abf8277055d81338276f8213e7  gcc/config/aarch64/tuning_models/generic_armv8_a.h
! 3f17da8180ef70e59accd40a5bd0f02b  gcc/config/aarch64/tuning_models/generic_armv9_a.h
! dfb41c27b3519cd60a0bf09313b4475f  gcc/config/aarch64/tuning_models/hip12.h
! ee1645bd7e049365c9b52b774f3e8324  gcc/config/aarch64/tuning_models/neoverse512tvb.h
! 5a9038f2c5ee1e9612fc82299ccf7132  gcc/config/aarch64/tuning_models/neoversen1.h
! 7d27c8a92a1bbd8c601e92fb38b15a56  gcc/config/aarch64/tuning_models/neoversen2.h
! 5c45d6d9cdea0331a247e4c58d8d8f02  gcc/config/aarch64/tuning_models/neoversen3.h
! 11c2bed9720fe99fe0bc3727ecca9875  gcc/config/aarch64/tuning_models/neoversev1.h
! 0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
! 850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
! da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! d697f4c32319e1c4a7bd9173bc45a0db  gcc/config/aarch64/tuning_models/olympus.h
! abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
! f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
! 79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
! 9d6a71f50729556f9aa373fb5defd2c3  gcc/config/aarch64/tuning_models/thunderx2t99.h
! f0717d24844d91752505dc192e7f1e0d  gcc/config/aarch64/tuning_models/thunderx3t110.h
! 11b64aa33cce34eb83c31d9cb817b05c  gcc/config/aarch64/tuning_models/thunderxt88.h
! bd4c05fa33f651300c111f48d2afcfa2  gcc/config/aarch64/tuning_models/tsv110.h
! 0da788c48a480b5da83d765489749ab8  gcc/config/aarch64/tuning_models/xgene1.h
  73f622005e7fda6d36e6cc106567cf33  gcc/config/aarch64/x-aarch64
  a07ee362a4961e9d41cb0ab83553de74  gcc/config/aarch64/x-darwin
! 83cd5c97b8f09c9606ad9f2c50fb18a0  gcc/config/alpha/alpha-modes.def
! b4eac8c564e104cf3cc48269868be196  gcc/config/alpha/alpha-passes.def
! 3fde351a6bc8386bb57921a1e5589ffa  gcc/config/alpha/alpha-protos.h
! f359ed330f5d216f7f04f393d645fe95  gcc/config/alpha/alpha.cc
! d9ed1faf0e8c75d119c4c2bd11d0f7a8  gcc/config/alpha/alpha.h
! 785f504d1be6413dec066cb278f0c8ec  gcc/config/alpha/alpha.md
! 9d7aba6e4e2821c0d801e5c6cba73763  gcc/config/alpha/alpha.opt
! 16f67dabdc3240d89a6b1f0993fcc29a  gcc/config/alpha/alpha.opt.urls
! a5b914202bf4c167a93dd74f67c791b7  gcc/config/alpha/constraints.md
! cc4294801cf299374bae02319a552dbc  gcc/config/alpha/driver-alpha.cc
! 1c3d89aee382bcf7819fc4d1170c2bb6  gcc/config/alpha/elf.h
! 6ea22196f6ec67638150865d9f0c5104  gcc/config/alpha/elf.opt
  9623ffdc7f80c52e1e1e755653229680  gcc/config/alpha/elf.opt.urls
! 4ac933e5ff47faab299b7676e7e8d6a0  gcc/config/alpha/ev4.md
! f52de71ac376262d30261d6cf45e0be9  gcc/config/alpha/ev5.md
! f22fdd4d471574ef98e36872e129650c  gcc/config/alpha/ev6.md
! 5c3039cc9376a5e83843ba4954180f21  gcc/config/alpha/linux-elf.h
! 5c1d279515f3abdfbd9da1690bbd156e  gcc/config/alpha/linux.h
! a18b28bb70fe81dd80dd95de06b21946  gcc/config/alpha/netbsd.h
! 40d784330bb009e2c848eee8fd65345c  gcc/config/alpha/openbsd.h
! 687e804b7ff2dc05bdae8b5236428328  gcc/config/alpha/predicates.md
! 316e1292e8f07405f6ce6df49d8d4cd3  gcc/config/alpha/sync.md
! ee57bf3155723ff4ef4147ea3423856f  gcc/config/alpha/t-alpha
  6e8dd648b9668f18b1dfd9f1203c9885  gcc/config/alpha/t-linux
! 0ef67130560959298889c422d85409ad  gcc/config/alpha/t-vms
! 89357c18963ffd89cd9fca174d451495  gcc/config/alpha/vms.h
  b3c50e1f46a9bdacf84333c01cb8ec66  gcc/config/alpha/x-alpha
! 09179611bcad203b7c92934051c17347  gcc/config/arc/arc-arch.h
! b73a4342e4aa10e148c8163edc67cc54  gcc/config/arc/arc-arches.def
! 4da63b7cdc4122e4f3cc613537c2781a  gcc/config/arc/arc-c.cc
! 5119a0bb8341011b9de78c1a20831638  gcc/config/arc/arc-c.def
! 2e7229a0dcde47397b627bbaa49b0d27  gcc/config/arc/arc-cpus.def
! 5fb145f668d1dd7230d16449e0d2f99a  gcc/config/arc/arc-modes.def
! fd3ed0ec4ce1a668f606ae172e003681  gcc/config/arc/arc-options.def
! 69982786ad0a291a566c520adc6351f3  gcc/config/arc/arc-opts.h
! ed370a07e382245b4edbac85d9fe2487  gcc/config/arc/arc-passes.def
! 7bd92ff0962df48e63c0fba10b1c38b1  gcc/config/arc/arc-protos.h
! 277b2da416fe84d9286ecaf175c75304  gcc/config/arc/arc-simd.h
! c6acf03bc43070e9c61e14fa7a4a0cb6  gcc/config/arc/arc-tables.opt
  6704645d075bf670b5ed5d77f0a88b86  gcc/config/arc/arc-tables.opt.urls
! 8c523fdbeba6e4a4a87be6a051b0d60f  gcc/config/arc/arc.cc
! 208ecc54b090b0bf3d9fb8f776587a0c  gcc/config/arc/arc.h
! ea5a9b331d0504b04c1fa274239c18d9  gcc/config/arc/arc.md
! f79a52d46acb2409a7cb46770b80e1e6  gcc/config/arc/arc.opt
! c3baf63ecb600d3affb19477ac1f85dd  gcc/config/arc/arc.opt.urls
! a3f8bbc3161d21e057f958c5eb965623  gcc/config/arc/arc600.md
! 245227c1a72baa80f78181796ccb63ad  gcc/config/arc/arc700.md
! 38ff87aecba54b6837249c54841b97bb  gcc/config/arc/arcEM.md
! e1294e7cce650795ca694c7cec4e941b  gcc/config/arc/arcHS.md
! 7c696a066120a0c30b955c0db5a1d31c  gcc/config/arc/arcHS4x.md
! 7b4157ff4d1f03c468a7291905bbadd8  gcc/config/arc/atomic.md
! a4d6784752ec3ddc59172cdb82d30f9d  gcc/config/arc/big.h
! 2501b547478f3af2efb6155880d8cc3c  gcc/config/arc/builtins.def
! bb2259303a3941b4ddc8d57c91887b42  gcc/config/arc/constraints.md
! da769f63b9bc5320e171c92913362d09  gcc/config/arc/driver-arc.cc
! 67359123ca2f17d8b5b696a02ef249a3  gcc/config/arc/elf.h
  255d583e6d23d9cbed1614263d159a1b  gcc/config/arc/fpu.md
! e4963dddaeb03827a2d093179a6ddb33  gcc/config/arc/fpx.md
! b22101d6eff28391d2491e819994b397  gcc/config/arc/genmultilib.awk
! 5c4f80953e9ce281b4a6f6e42f056f5c  gcc/config/arc/genoptions.awk
! 638e12c195d1bb3ddeff9b01d2da2ae6  gcc/config/arc/linux.h
! 623873e2dcd1935a733a9c7b0aec2f58  gcc/config/arc/predicates.md
! 6ef743a989bbb3af926933b632fb0b85  gcc/config/arc/simdext.md
! 49adb0414f43eecb86de2272334fed16  gcc/config/arc/t-arc
! 08610008fd0f9e7185d7838dca810f61  gcc/config/arc/t-multilib
! 0aa0d883b6c1512e2e39e14e70ec4128  gcc/config/arc/t-multilib-linux
! e84c6269142d364b9038b02ab8f994a5  gcc/config/arm/README-interworking
! 7e6305bbe158b39fff2a477311829330  gcc/config/arm/aarch-bti-insert.cc
! cae52b91ce29caabb70e52d976dd63dc  gcc/config/arm/aarch-common-protos.h
! 2138a3943a940cc2f1e6322af3c1188d  gcc/config/arm/aarch-common.cc
! 7505807a8dd07a4fcd8bbb3e466b1f0a  gcc/config/arm/aarch-common.h
! 3a556596df3ee38f523c68b8c3a5d6ba  gcc/config/arm/aarch-cost-tables.h
! ca3c352ed251bec441567afd8b02f359  gcc/config/arm/aout.h
! 1cb6f9013e1360037c682fef8d934a5b  gcc/config/arm/arm-builtins.cc
! 920894cd18c51649dff6d840bfda18de  gcc/config/arm/arm-builtins.h
! 34409fea491dd8677014904be3b9080b  gcc/config/arm/arm-c.cc
! 59b907b2534b4e035881307714a958dc  gcc/config/arm/arm-cpus.in
! c2f121656ff76fa330d1690bf063c023  gcc/config/arm/arm-d.cc
! d58398b8674211171ea210f8d3f3883b  gcc/config/arm/arm-d.h
! 47204ef76195d8b26239522f177add5f  gcc/config/arm/arm-fixed.md
! 912fe1b18a92c352ca75196c5b6d1efd  gcc/config/arm/arm-flags.h
! 25f680dee45e5da5bbf2c372c30bb986  gcc/config/arm/arm-generic.md
! 357d99c16ccb55530e3c4bc802988cde  gcc/config/arm/arm-ldmstm.ml
! 7550204b1316d145890d079b35b59fbd  gcc/config/arm/arm-mlib.h
! 93f3f601901fb6c23a6f561427065cd1  gcc/config/arm/arm-modes.def
! 337902eda3308af81fa1302566cbfc2a  gcc/config/arm/arm-mve-builtins-base.cc
! dd68b000194684be096bab7e439eae6d  gcc/config/arm/arm-mve-builtins-base.def
! b89eb2d819ab7b39687f97a2e620112b  gcc/config/arm/arm-mve-builtins-base.h
! 76c9ba52f5b1e8b2d2fe7e3750adbcbb  gcc/config/arm/arm-mve-builtins-functions.h
! b03a36134ad5a4fd175c8187fe60f189  gcc/config/arm/arm-mve-builtins-shapes.cc
! 157421ab7aefe277d0d18d38ea429fdd  gcc/config/arm/arm-mve-builtins-shapes.h
! cbc9ce794eac388614494b30973bd668  gcc/config/arm/arm-mve-builtins.cc
! e0fbe1dcad67c21113339fdfd76d1a7d  gcc/config/arm/arm-mve-builtins.def
! dc420141faed0de4906a02cbbd953f18  gcc/config/arm/arm-mve-builtins.h
! b65c3665748e7d55a7c42645ff190690  gcc/config/arm/arm-opts.h
! 841a83f5976919c20a40ed76dda7486d  gcc/config/arm/arm-passes.def
! 4b2b961e96e10d165d0160ec02f69cd3  gcc/config/arm/arm-protos.h
! b8dda5ab1f67b388debff95f4a66c82c  gcc/config/arm/arm-simd-builtin-types.def
! 555504756e42d516b613cd492f56e83e  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
! b5f7e0b5b33aa917de47ab3bf691f123  gcc/config/arm/arm-tune.md
! cb58c0dd7b0de0f08685beb13a3bf2f0  gcc/config/arm/arm.cc
! fcb5b2782878cf25e12f0da91cb0075b  gcc/config/arm/arm.h
! 718358831a77990f5ecbcd9bdbcee0f4  gcc/config/arm/arm.md
! 68b71bf902cc6c9290e847ce76a9fdea  gcc/config/arm/arm.opt
! e9f9bb6f33d1b0c95dc7ccae3a50cbaf  gcc/config/arm/arm.opt.urls
! 9e0f773438fc26deecff276e4b7684ef  gcc/config/arm/arm1020e.md
! 6213564503521fd0e6ec376ed995d772  gcc/config/arm/arm1026ejs.md
! 5c7e4ee7c5f3c36f31cdc695a34d8d91  gcc/config/arm/arm1136jfs.md
! e0167324cb2a632d4d0e3b3195a4aa65  gcc/config/arm/arm926ejs.md
! 2395b3c6cdde60577f1ce6e12f9bf4a7  gcc/config/arm/arm_acle.h
! ae14263fe4a7f8635f7ba0be571d1c80  gcc/config/arm/arm_acle_builtins.def
! e7baac11cf9f3af3bdf0f1548855b9c5  gcc/config/arm/arm_bf16.h
! 189ed750bc148cc1a4609acc16b6f0db  gcc/config/arm/arm_cde.h
! ac39c38c848b96753d0ea6f01e5f6141  gcc/config/arm/arm_cde_builtins.def
! 00dafd076a248e40ab7323d0c42c43e5  gcc/config/arm/arm_cmse.h
! 9b497a43fdcbef44736b571ce6d29051  gcc/config/arm/arm_fp16.h
! a929cf25bac9c9009c822b2d7039e596  gcc/config/arm/arm_mve.h
! 7720f1e488293a90ee61960fe3955ee2  gcc/config/arm/arm_mve_builtins.def
! 1569b1e9db8e118ba680482288e7b5b0  gcc/config/arm/arm_mve_types.h
! de343995e7a6a2efe8cbe12242cf73be  gcc/config/arm/arm_neon.h
! ff83fcd2f498fb8a1b0605f6eec3af92  gcc/config/arm/arm_neon_builtins.def
! cfdebffa87fa0b07bf5cb9a6ad6a7e56  gcc/config/arm/arm_vfp_builtins.def
! 02d667c88fd172e21c1a8c29cd294ce0  gcc/config/arm/bpabi.h
! 48ebfb3e620b8c72934853653d6edef5  gcc/config/arm/common.md
! 934f7fd78606b69298a5acd8f8540620  gcc/config/arm/constraints.md
! a8cb28a7cf84817ff13f23683f35860d  gcc/config/arm/cortex-a15-neon.md
! bd450100870e5f38959300593004ad04  gcc/config/arm/cortex-a15.md
! 14b8d6bb0a907a1623d567a40d90a42c  gcc/config/arm/cortex-a17-neon.md
! 8389e039d390798d06a6801f2cee2cb2  gcc/config/arm/cortex-a17.md
! b57f5c12edfd1857d16afb8469f7ee52  gcc/config/arm/cortex-a5.md
! 29b8095ecb29b7e8aabebf79b69701ea  gcc/config/arm/cortex-a53.md
! 59757144b419be48249f7c7281f8ee70  gcc/config/arm/cortex-a57.md
! 3efb5a14031275ae8c0adab32784178a  gcc/config/arm/cortex-a7.md
! 56396642d26efe77c51e2129d5e5a5e5  gcc/config/arm/cortex-a8-neon.md
! 7740948ccc491b773901e8c416d0870b  gcc/config/arm/cortex-a8.md
! b1ea398b59f40c55ce17954edfb04daf  gcc/config/arm/cortex-a9-neon.md
! 8974bf9e5c55671d94a97a1da839b04a  gcc/config/arm/cortex-a9.md
! 954e64035e2de387aad5d341dd652b25  gcc/config/arm/cortex-m4-fpu.md
! a29db724927556817d5054efb1b526f0  gcc/config/arm/cortex-m4.md
! ff9e99d02f3a5134c97be3d3df5bab03  gcc/config/arm/cortex-m7.md
! 5de17507af2e5e22b484cb6c0d4163c0  gcc/config/arm/cortex-r4.md
! 0a9eb0e311b51e728f39090bde6f5c10  gcc/config/arm/cortex-r4f.md
! 7cb0a51097f65d986463169732ab7037  gcc/config/arm/crypto.def
! b1c6f2331c480fc3083640a4ccec6ba8  gcc/config/arm/crypto.md
! 286312a85e5d195d3ab34da2c2519981  gcc/config/arm/driver-arm.cc
! 81d19f41f7c4c219092aaa393c7bc18d  gcc/config/arm/elf.h
! 1460d41f176c82d31d039b2b42329d3c  gcc/config/arm/exynos-m1.md
! 20f6f8e2ec7816729057a0e92b45dbcf  gcc/config/arm/fa526.md
! f41f546f9408a73967d26ddce4c25382  gcc/config/arm/fa606te.md
! 1baf36e1485ad381a2c5587307c0fce9  gcc/config/arm/fa626te.md
! 3799f5c82571390a5cf19de16414a5ea  gcc/config/arm/fa726te.md
! c1a53bb5a2e0b8cf073e84ba2442e02f  gcc/config/arm/fmp626.md
! b312e6312c7bbbb797f6dd1db099e1e8  gcc/config/arm/freebsd.h
! 65bf2f64a56a87ddc435532d3747c0ac  gcc/config/arm/fuchsia-elf.h
! bdccc534a778840961eb90985aa49f87  gcc/config/arm/iterators.md
! a05e41599d53801ec294a019afda9ee5  gcc/config/arm/ldmstm.md
! 6e097b371a7602086ea8987bd52b2452  gcc/config/arm/ldrdstrd.md
! 01d6a44d1e3934818d377e88eb56528c  gcc/config/arm/linux-eabi.h
! 5e82b697935ef77f944868194cc4dd7f  gcc/config/arm/linux-elf.h
! 29b9fd924ddc05b6550480c55153f2f2  gcc/config/arm/linux-gas.h
! 1667eb0fa8e0c13bbc8bee9dac9d67df  gcc/config/arm/marvell-pj4.md
! 32c92ae1e742f4b71f8237f6a99ff6cc  gcc/config/arm/mmintrin.h
! 60c1d9194ea1d3e2350c685cc97cbf83  gcc/config/arm/mve.md
! 81867ea0f51f02afe47cc2d9052cb1a3  gcc/config/arm/neon.md
! 8d30cf4aec319e07ed12fff3c5cf305b  gcc/config/arm/netbsd-eabi.h
! 40599a161c97c0c4dc8ca205f94be6d4  gcc/config/arm/netbsd-elf.h
! 440e1629bcf9f80e1a56ada74bee6b24  gcc/config/arm/parsecpu.awk
! d891cdbbc13fc2167d51b96f00a52346  gcc/config/arm/predicates.md
! 33a64e4cf0cbce3cff5e8cb08f60a5d3  gcc/config/arm/rtems.h
! e1016c4f8f4e6d1bbcbe09beb3edae1b  gcc/config/arm/semi.h
! d0afb508afcf1ce21f2c3f8628f8b62d  gcc/config/arm/symbian.h
! 1429e4cbf383aaa4df25d43f090a78fb  gcc/config/arm/sync.md
! 9817680758a179d3048934924c4cd94b  gcc/config/arm/t-aprofile
! 36b8365ecc3634f5cd4f5a5f7c37e294  gcc/config/arm/t-arm
! 1a3951d5739875e91c32476888c871f9  gcc/config/arm/t-arm-elf
  4dc427c456af5e56b1ac39bda8969af6  gcc/config/arm/t-bpabi
! 5795e2d5d78c0973e3f7d344ca3d7d73  gcc/config/arm/t-fuchsia
  e3950ec6bd159734835f8f8fb143efc6  gcc/config/arm/t-linux-androideabi
! e4f945e8f031a1ea63404df8782463bc  gcc/config/arm/t-linux-eabi
! a3cf7977137dede66ec63a36d13b50b4  gcc/config/arm/t-multilib
! eb5d557ed4a28be8a33a48aa89c84090  gcc/config/arm/t-phoenix
! 5d2cc7968f8dd2c4aa20abcf41cd5c41  gcc/config/arm/t-rmprofile
  dc8e1ff924dd1f2699f60837b792825a  gcc/config/arm/t-rtems
! d526cefbe510bb4ecbc4a0449c85d458  gcc/config/arm/t-symbian
! 2b72777522221c9b0b7ad05aac682ce1  gcc/config/arm/t-vxworks
! 0b2e19a4597309196fd02aca0499b557  gcc/config/arm/thumb1.md
! 98f5610cdda65ce4036f9cf6fdaf4a2e  gcc/config/arm/thumb2.md
! a8f8df43eaf7368cf5b32cb8cd95af6a  gcc/config/arm/types.md
! 2fb5b4ba1bbd3233f9cca20ea49fc52a  gcc/config/arm/uclinux-eabi.h
! 8045b9b694fc99f7032224d44788549c  gcc/config/arm/uclinux-elf.h
! cbc2bd9aa18e6e70a4671a054d135db9  gcc/config/arm/uclinuxfdpiceabi.h
! b8b76dbf176dc57b84b216840572af4c  gcc/config/arm/unknown-elf.h
! ff6e271f76a80e339e3739c16c5209fa  gcc/config/arm/unspecs.md
! 35ba1cbe89a15b9a2f75ececd75751d6  gcc/config/arm/vec-common.md
! a7bf68c719eaed18d8934e77c7815311  gcc/config/arm/vfp.md
! e3e0b97f66e989814e247bb6c7c3d5c9  gcc/config/arm/vfp11.md
! 826e6388ae3753ffdcf4ddc4d90857e0  gcc/config/arm/vxworks.h
! 2664f2ce27eda9680292f3de1fa78b83  gcc/config/arm/vxworks.opt
  e219596493ffcd798a48b24b22b5e077  gcc/config/arm/vxworks.opt.urls
  8bb1a840fb87b138c620682ccad6aee4  gcc/config/arm/x-arm
! 80d9db7d6773ca2b0d423a9ba3a32fe3  gcc/config/arm/xgene1.md
! 9511f4a9a7f32971f54f0124845dd263  gcc/config/avr/avr-arch.h
! 067e03ec8336d08f1291586eb7825adb  gcc/config/avr/avr-c.cc
! 7e576974bac73c35660c3df419ddabf4  gcc/config/avr/avr-devices.cc
! 6d6cb0cd00b1f0982b71a547d16c599b  gcc/config/avr/avr-dimode.md
! 7b45e2b91b2febab53b9715951211985  gcc/config/avr/avr-fixed.md
! a003e2850cf677560132fd307ecee01f  gcc/config/avr/avr-log.cc
! c29ebb93bbe48714c53c5d397dedbe7f  gcc/config/avr/avr-mcus.def
! b05978bd2969a943265d3549c23b8b59  gcc/config/avr/avr-modes.def
! 4fb124444d8cfdcf964c19206d382a55  gcc/config/avr/avr-passes-fuse-move.h
! 0edab359f05579f33bd70fb523592bcd  gcc/config/avr/avr-passes.cc
! 7694efecfa1a86f5d70c1dcee34a8ffd  gcc/config/avr/avr-passes.def
! 6033224c6e10fc0028d72d05ef4adc70  gcc/config/avr/avr-protos.h
! 4ee8705558d223eb1da7a1266af8c799  gcc/config/avr/avr-stdint.h
! b573ae5e0c9a5b17804044fa43a5c9e1  gcc/config/avr/avr.cc
! a4c128a5989d02ad75000ddce5204e45  gcc/config/avr/avr.h
! b90ae914b2f6999e93154cd4ee679348  gcc/config/avr/avr.md
! 952a12d62229d3077f49f68614cf8be4  gcc/config/avr/avr.opt
! f10f1d2141cba9ac792b02771cf4e3ae  gcc/config/avr/avr.opt.urls
! a2e6c4bc09c4af90d1c01745985baff7  gcc/config/avr/avrlibc.h
! d9c8993192f71fd754cf947dfccacee6  gcc/config/avr/builtins.def
! dcd40301975d7f922b3fc51ba7ab1096  gcc/config/avr/constraints.md
! ec06c3cb0febed0066782b6d9fc52013  gcc/config/avr/driver-avr.cc
! ac632b1dc99f00909fa89603958f6495  gcc/config/avr/elf.h
! c1c7ae14d1c2186be7c197667bd1ef14  gcc/config/avr/gen-avr-mmcu-specs.cc
! 54df79db0299d2ad33b18cdba6706e83  gcc/config/avr/gen-avr-mmcu-texi.cc
! 1a5c508b77e0fdec3eba4025fad143e4  gcc/config/avr/genmultilib.awk
! 3e1985cc514729064bd7289a7a1050a0  gcc/config/avr/predicates.md
! 989371a0c0bef067b04f2ca6cab339f8  gcc/config/avr/ranges.h
! b40823c113c4f4c97c7877f00e4f49dd  gcc/config/avr/specs.h
! 71f81820bdeb307527c4c7b577e056de  gcc/config/avr/stdfix.h
! c543f228dfe0842eef779abf3c3657a8  gcc/config/avr/t-avr
! adc4a61b44f06a4fbd2f535ba35ef825  gcc/config/bfin/bfin-modes.def
! c09f166660fde190f2d62b4a053392cf  gcc/config/bfin/bfin-opts.h
! 1ae2c0b54de72bbb41c1c285a6ef5c3d  gcc/config/bfin/bfin-protos.h
! 20f5783e307207cec16fecebddc0b828  gcc/config/bfin/bfin.cc
! 5aa035b3d33b22c93529bfedd7951ebe  gcc/config/bfin/bfin.h
! 2771e6f32ad727576e414589b0d2c763  gcc/config/bfin/bfin.md
! 77c63a7e69fe2c04d3e8378f146cc2df  gcc/config/bfin/bfin.opt
  36e8977d5439597ecb609e7bfb848abb  gcc/config/bfin/bfin.opt.urls
! e316a7ee3aa112c64a61e3353545f7dc  gcc/config/bfin/constraints.md
! 374f2b7468fb1604a857c7ddb40b6c06  gcc/config/bfin/elf.h
! 7ba5a0ff182ca397589ccdb49863defa  gcc/config/bfin/linux.h
! 9dccebcd4b01b7249cf967c312dc9741  gcc/config/bfin/predicates.md
! a5ad9e178a31a5a92535148991d2fda1  gcc/config/bfin/print-sysroot-suffix.sh
! 954755672a2f900535c5c49fec450815  gcc/config/bfin/rtems.h
! d5cecb604dcc0013c9d1a24804ada98f  gcc/config/bfin/sync.md
! 2c225ac5fb7d379d885f4cbd270dd169  gcc/config/bfin/t-bfin-elf
! 31d33fed5ecafc2381c9e308113e5d82  gcc/config/bfin/t-bfin-linux
! a3364cc2343afdc4fa084e07d1f457d3  gcc/config/bfin/t-bfin-uclinux
  6f4817f759fcac5ac27233ee451780a6  gcc/config/bfin/t-rtems
! 107b09321bb89219e70475a5e2cdc76a  gcc/config/bfin/uclinux.h
! 95456c986b9d01e01f3cfd226e1f5e94  gcc/config/bpf/atomic.md
! 76fcb1fa7f4c0d008c2bc05d36308c21  gcc/config/bpf/bpf-c.cc
! a2d0f6c9bad8a3879b580272be69f1f2  gcc/config/bpf/bpf-opts.h
! 75577eb7c709c0b2fc654b674a23a488  gcc/config/bpf/bpf-passes.def
! 492ee8a7f8cc45aed1396e6ae7512e4f  gcc/config/bpf/bpf-protos.h
! 4bda675b20f7054117fb2665f5699949  gcc/config/bpf/bpf.cc
! 67f05cbf853ae3716726b8b8088f7239  gcc/config/bpf/bpf.h
! 195151d8b928ce219ee96521ccab1218  gcc/config/bpf/bpf.md
! 8cc13feabe144c7b67f08306f49e22bf  gcc/config/bpf/bpf.opt
! 3e2cdf3e83af474ef9980280e6ae16a5  gcc/config/bpf/bpf.opt.urls
! 69c770efee22658702c18a3fa3e284c5  gcc/config/bpf/btfext-out.cc
! 50fcdf526a0a6304507b91f5a086a4fd  gcc/config/bpf/btfext-out.h
! 6a2b2e4c63b3a8475b313e2b2f79242b  gcc/config/bpf/constraints.md
! 03f82e469696d935ec02ad9ef77751e6  gcc/config/bpf/core-builtins.cc
  988e922d069a72cea8291afbd9c40fe5  gcc/config/bpf/core-builtins.h
! 64a1d068efe8f1e72d9324e299152bb0  gcc/config/bpf/predicates.md
  3f3bbe48c9291a5679f9d0ecc5c79139  gcc/config/bpf/t-bpf
! edc98debb11a492a6d8e0761aa1bf0f6  gcc/config/c6x/c6x-isas.def
! e28bac512917dbfea50c1a08828106f4  gcc/config/c6x/c6x-modes.def
! 1188dfef9b22027ef395c0fb57b05818  gcc/config/c6x/c6x-mult.md
! 3d82ee02faad8891e1cb8ca3700f2b34  gcc/config/c6x/c6x-mult.md.in
! 1ed8dc28ff298d5268ea45b4e5eb6778  gcc/config/c6x/c6x-opts.h
! 1a48e1057cbb08c4889ff2cb70c7600e  gcc/config/c6x/c6x-protos.h
! f9cb09964eac8e9c5829e17b085b092b  gcc/config/c6x/c6x-sched.md
! 1199c8ae62794ba9dd16aad3dc4eb811  gcc/config/c6x/c6x-sched.md.in
! 00d7996e0c4774ca1e932ddd6b3b3787  gcc/config/c6x/c6x-tables.opt
  b536f834b2933bc77c0d771ff150df59  gcc/config/c6x/c6x-tables.opt.urls
! 93f045182c1a82cb77fed4f54f2d1047  gcc/config/c6x/c6x.cc
! 727e0630d5889090eb79e55435b05e84  gcc/config/c6x/c6x.h
! 73939caaa775c00c63ee8f9effd2309a  gcc/config/c6x/c6x.md
! 9998fb5dee570a7b6d98083d8c1970ef  gcc/config/c6x/c6x.opt
! f5237ddeb37eb82477fd05719c3a2327  gcc/config/c6x/c6x.opt.urls
! ffec9b9147e7efce005470df2976f467  gcc/config/c6x/c6x_intrinsics.h
! 4a8d23e82a1bab8756aa20152e6ead4b  gcc/config/c6x/constraints.md
! b736e8dd41feb40a94e8444d622ab9be  gcc/config/c6x/elf-common.h
! 40dfef1ecc2c4bc1b9aedb8a24e8ca6a  gcc/config/c6x/elf.h
! 5036ec76bf2807d1e03381c4db1b5f4b  gcc/config/c6x/genmult.sh
! ebc313b4d6df20b8eefee08d57c237db  gcc/config/c6x/genopt.sh
! 4a43fb070a14078d11a1087af4e903fa  gcc/config/c6x/gensched.sh
! c28bec1a9e6feec393f87335336c7365  gcc/config/c6x/predicates.md
! 275cdc366c181c540596e137a9f34fc0  gcc/config/c6x/sync.md
! 8ee25cb3af1dc7388991aa2a9ca54f4b  gcc/config/c6x/t-c6x
! 6a3b35e02315f8fad89235099601817b  gcc/config/c6x/t-c6x-elf
  428034a210600b6b423dfadb06636e03  gcc/config/c6x/t-c6x-uclinux
! ba1ccf433d1efd30c6fb7d9330d6c15f  gcc/config/c6x/uclinux-elf.h
! 91af387d71322e132be20e459ee851a1  gcc/config/cris/constraints.md
! 4f38bcd7d8ce410d760fe673479e1338  gcc/config/cris/cris-modes.def
! 26e860b8a3343b6c766d0d778a0ff075  gcc/config/cris/cris-passes.def
! 9c37e92c4940cbfae2cc0dffed81013f  gcc/config/cris/cris-protos.h
! 0e5387dda087723fe21aa57b524b7bc9  gcc/config/cris/cris.cc
! 5937d099a75f786eceb3027e381c5f1b  gcc/config/cris/cris.h
! 2d5e1bf86a7d13a040a43c2cf99e94da  gcc/config/cris/cris.md
! 9806f1d00685997be4c9f849f3a615d8  gcc/config/cris/cris.opt
! 6860fb25a360ee6a896163ea010ecc27  gcc/config/cris/cris.opt.urls
! 9e100a5514b76c41c8ab833558ae88b9  gcc/config/cris/elf.opt
! e748b88b41c294446f5d1313565d003f  gcc/config/cris/elf.opt.urls
! e7b75c03f8e7c4b6213ebf6c590bfc91  gcc/config/cris/predicates.md
! 9fde262b2ac95d77327660b550431fd6  gcc/config/cris/sync.md
! 228dcd4e57531246f1cfd213e6b7d4bb  gcc/config/cris/t-cris
! 44c9876d47fe916c88714d32cfeafe4a  gcc/config/cris/t-elfmulti
! 399f1573af1c579b9c679ca16cde081c  gcc/config/csky/constraints.md
! 6b82be1b0145e21a2efbe67b501fb881  gcc/config/csky/csky-elf.h
! 354f6a6b79561848faf4d300ecc060ce  gcc/config/csky/csky-linux-elf.h
! d61b35952ffd257991393d5ec1c547a9  gcc/config/csky/csky-modes.def
! b4d2a2d9e35edc64179c67584c57e351  gcc/config/csky/csky-protos.h
! 2719268d06fc62dd4f06f15ec065b56c  gcc/config/csky/csky.cc
! dc0ddbd3f7c1fcd007ff1e2d17a2b0dd  gcc/config/csky/csky.h
! 5c7a7a86139340ce7894b3dcbeae036b  gcc/config/csky/csky.md
! d98068deca95c6cfc459810f7d52af60  gcc/config/csky/csky.opt
! e3af289ab0834a3c74cb46071a28c3bd  gcc/config/csky/csky.opt.urls
! 3b6b05d4e7af1c86415ec8a8ee9af65b  gcc/config/csky/csky_cores.def
! 07d297b96a67986b3b35fa27de7179b1  gcc/config/csky/csky_genopt.sh
! 26d9d0306863f89531b00f984963915e  gcc/config/csky/csky_insn_dsp.md
! d948d81b0fc00bcf4763b418da284f07  gcc/config/csky/csky_insn_fpu.md
! 6177b0a8fa6a20da4c71b4f5a09e61ed  gcc/config/csky/csky_insn_fpuv2.md
! 95fffc548d054b361b39ff43afd227bf  gcc/config/csky/csky_insn_fpuv3.md
! 3b691e68ff8a2dd784334a679a1a0c15  gcc/config/csky/csky_isa.def
! 5745f740c8072d323d94ad1294945ffa  gcc/config/csky/csky_isa.h
! ab7a091844be99a336102ada888b0f05  gcc/config/csky/csky_opts.h
! 484f588c3f8e40d38fa5bc69c0f0f8db  gcc/config/csky/csky_pipeline_ck801.md
! f6aab9bc45ad00d57114a8b08ef41921  gcc/config/csky/csky_pipeline_ck802.md
! 840c74f4f257a1f8ddb40520f7a81a90  gcc/config/csky/csky_pipeline_ck803.md
! 0e48759e42f99c6a2c491d7dfa881268  gcc/config/csky/csky_pipeline_ck810.md
! 5759843947a6f58080fb9161485b4af9  gcc/config/csky/csky_tables.opt
  0adb5f079721c7b0bfb6fa5b036fd78f  gcc/config/csky/csky_tables.opt.urls
! 5a1e2137411a791c8725d4dbf0f57ce3  gcc/config/csky/predicates.md
! 1e83c943d3f5c0b8a85d18826ee83731  gcc/config/csky/t-csky
! c7e412de5ff9b19c0c75fdd820594114  gcc/config/csky/t-csky-elf
! e8ba563b7eff9a7c1a380d760e1a30a9  gcc/config/csky/t-csky-linux
! 37fe320f04a151fdb79bb04b209376d4  gcc/config/darwin-c.cc
! 788e553fba034bd51970934ac61aeeda  gcc/config/darwin-d.cc
! 99e4c8d1b4129343e5e17017e70a7d9c  gcc/config/darwin-driver.cc
! 3ace0bc8572ce616566da404afc795e6  gcc/config/darwin-f.cc
! 9c2d09708b2f6cc651ef66ec1ba67645  gcc/config/darwin-ppc-ldouble-patch.def
! 573bb1297b0b70aac60bf7462cd630fe  gcc/config/darwin-protos.h
! 8e7a3be360635581116c45ad4ce9f11a  gcc/config/darwin-rust.cc
! cf8b9e265eb733c7c120218863142390  gcc/config/darwin-sections.def
! 3adffe09b7b438e5a2ecac3454082933  gcc/config/darwin.cc
! bac21aa0a86c8fcc448f29c200988083  gcc/config/darwin.h
! 148592c1bf513e56d281629f94b70d9b  gcc/config/darwin.opt
! fa92b7f7b8bd38472af4bfd5a8254310  gcc/config/darwin.opt.urls
! 4a5f649b74df564d653882eaeaa75adf  gcc/config/default-c.cc
! 5b3453e9a19ac4b2f17661e06da0e52e  gcc/config/default-d.cc
! a737c318913b7cb9fc65ab79d8bce975  gcc/config/default-jit.cc
! 7e4c104b61f16879e6e23f47edf4bac1  gcc/config/default-rust.cc
! af9421ad233b812f63568a3158e7fd8a  gcc/config/dragonfly-d.cc
! d03b97264ba80bd58afc0bd371bb210b  gcc/config/dragonfly-rust.cc
! 79c743492f58c4f2684ba7d7ae7eee85  gcc/config/dragonfly-stdint.h
! 2d37b7e29414d2e47b06e9838594fc5f  gcc/config/dragonfly.h
! d9cda3c2aeebdbb202a646b7fc80a42a  gcc/config/dragonfly.opt
! fa845c4f738a01074c524fcb3bdb12fe  gcc/config/dragonfly.opt.urls
! 89c387a2e0ffc5b672c9b9c9e4015ad7  gcc/config/elfos.h
! c7967649d7ebce88af774f54ce092852  gcc/config/epiphany/constraints.md
! 6ad872d5e627d93723179397b19d71a2  gcc/config/epiphany/epiphany-modes.def
! 3b8465d196386af4a9863de91fc46fcb  gcc/config/epiphany/epiphany-protos.h
! fa098af48e50711d95c8a54cbe04528d  gcc/config/epiphany/epiphany-sched.md
! a7980230fbc6d915313b0ff6623118bc  gcc/config/epiphany/epiphany.cc
! d2283ae4a5ff31065eb995f419c503fa  gcc/config/epiphany/epiphany.h
! 96651ce858cd6472861cda93bfb007c7  gcc/config/epiphany/epiphany.md
! 15a623aefccfa172b62f4caa9a418acd  gcc/config/epiphany/epiphany.opt
! 9656628e872aaf1f77fcd92f605c9853  gcc/config/epiphany/epiphany.opt.urls
! 8a4525eb50dd1add566b041893b2119b  gcc/config/epiphany/epiphany_intrinsics.h
! 4f942fee8ceb21a9ef9b9eeddfca30bd  gcc/config/epiphany/mode-switch-use.cc
! b83c4a574764b7da751ea2ceb8400f3d  gcc/config/epiphany/predicates.md
! 5717bcae1adda0c2b8c6331ad5dc68b8  gcc/config/epiphany/resolve-sw-modes.cc
! 97548c0c017cb81ec521b4fab89b02a2  gcc/config/epiphany/rtems.h
! 55e747176acfedffcba5992eb8ac10aa  gcc/config/epiphany/t-epiphany
! 979e0b03b111d1fc60194cdb8302221e  gcc/config/flat.h
! 5aac3ce37002f1373a8a99c443c85b21  gcc/config/fr30/constraints.md
! 7e77db4a64bf01efee1406062e20138e  gcc/config/fr30/fr30-protos.h
! 2b0e43ccbb90a8792781dffa48f3d428  gcc/config/fr30/fr30.cc
! 7486cec759647ff9ca6303eaf94a6775  gcc/config/fr30/fr30.h
! c337169fcf955fa5c4f8ceca654d6dd4  gcc/config/fr30/fr30.md
! 80d69dffa2b1cec84cbba729516d34ed  gcc/config/fr30/fr30.opt
  6492ad033c8269ba2e0093c3a143b1a3  gcc/config/fr30/fr30.opt.urls
! a62d6bfaf1d714397d21c38b7355df66  gcc/config/fr30/predicates.md
! 43bc30b7246aa57cd30055e1494e2578  gcc/config/freebsd-d.cc
! 70e7e413f68f5fb23f8a01668f8644ac  gcc/config/freebsd-nthr.h
! 3a919c64f9b28855135c09c9d50519b2  gcc/config/freebsd-rust.cc
! f1b078455af524b97e3635c4619d8225  gcc/config/freebsd-spec.h
! 3c7dc08394c68470b93c9c20c3dfa0b9  gcc/config/freebsd-stdint.h
! 94796d5b3c1334f3037950c3a893385f  gcc/config/freebsd.h
! d34244fbab1499815af9daf85e3419ee  gcc/config/freebsd.opt
! 99cb7233f9a82b54a0075f62b0e068d9  gcc/config/freebsd.opt.urls
! 5a9d58cb608ea3b6c71428376e34ff7c  gcc/config/frv/constraints.md
! 519bf882eb6c169cc6c1912a1bbecb85  gcc/config/frv/frv-asm.h
! 3bd2954fa2c4cdb09efe5656244facac  gcc/config/frv/frv-modes.def
! 1ed476f733b8444730f0a5d59ff99b81  gcc/config/frv/frv-opts.h
! 1c19200f4e626aa5e72827a1c84e3402  gcc/config/frv/frv-protos.h
! f95f7567293415d1397c222c645d68c1  gcc/config/frv/frv.cc
! c7c9c517f429f9bb1b96422c49501881  gcc/config/frv/frv.h
! 8fd4378c141fce5a39f74509815c35fc  gcc/config/frv/frv.md
! 65ae62a7807da69b431f81c006145261  gcc/config/frv/frv.opt
! 934d784ec8a90ae67db90a3a6cf3688e  gcc/config/frv/frv.opt.urls
! 32e17bc991cec95d5fc4dbebcacc42a4  gcc/config/frv/linux.h
! d89ad5fe4a4de9de7088210fb317c84a  gcc/config/frv/predicates.md
! dc32c764872558bfdecf4e94d25b97ed  gcc/config/frv/t-frv
! 8a994e32a067c00530adb86d0da284b6  gcc/config/frv/t-linux
! 2b83e5f400dfd7160bc39d5676a9ac00  gcc/config/ft32/constraints.md
! 43fcd2b80a69ad73d0118a374088cc68  gcc/config/ft32/ft32-protos.h
! d037b316f8ce1e12d06c04de9524d51a  gcc/config/ft32/ft32.cc
! d216ad1d20786eba47bea80fe08f698a  gcc/config/ft32/ft32.h
! 078169faa889665b62811ef539557640  gcc/config/ft32/ft32.md
! b32c10c4ba2232ab1a2ac0b35da0ca92  gcc/config/ft32/ft32.opt
! 5b274a7df844022400020ae885cfdb0e  gcc/config/ft32/ft32.opt.urls
! 817267eae6c5373c2b29c61923a14bc4  gcc/config/ft32/predicates.md
! 0c71a553e23a31eb307970ad28dd8eeb  gcc/config/ft32/t-ft32
! 5341f8d0035a86c7ab4a4be28a4e2d54  gcc/config/fuchsia-rust.cc
! b369b4381f97f5db727bd13c6fc2592d  gcc/config/fuchsia.h
! 67979dc11173ab20c3505ccd4dbc59bb  gcc/config/fused-madd.opt
  45e1c702124918c893e2ef5ca76ae958  gcc/config/fused-madd.opt.urls
! c863cc0237ddcf6c52a508cd6525e764  gcc/config/g.opt
  96050b4b2455697e8f797ff6286b6575  gcc/config/g.opt.urls
! 184915dc034cbca23d03a2c9f880624a  gcc/config/gcn/constraints.md
! 563118cdacdef2dcad3b0d1a22455d12  gcc/config/gcn/gcn-builtins.def
! 0b844b1643d1ee7c5d801e26069bb7fc  gcc/config/gcn/gcn-devices.def
! e347bc1686ac86f556a527a2705e71a3  gcc/config/gcn/gcn-hsa.h
! bbf853858263e80940ecbbe3f821113c  gcc/config/gcn/gcn-modes.def
! 2b6b8f2a6c71f2b7c182e976abf62906  gcc/config/gcn/gcn-opts.h
! 767f7fa559269627c2fb7e753ce1f387  gcc/config/gcn/gcn-protos.h
! eb0b0296efa6a142ee4ee7b4cf09c756  gcc/config/gcn/gcn-run.cc
! 3d14b349b4f1885e26b37bfd8ce688a3  gcc/config/gcn/gcn-tables.opt
  ca8c1935ac88d760dc3a5b7e97558f28  gcc/config/gcn/gcn-tables.opt.urls
! 613817ee55713099d08c4eb310ec3de7  gcc/config/gcn/gcn-tree.cc
! ec8639acb817ec24e7168c186bb486fd  gcc/config/gcn/gcn-valu.md
! 074ed86f4c1f6b39c3d812967ffc47b4  gcc/config/gcn/gcn.cc
! d59e327e3603f40b6dcdaa3c4eb2eeb5  gcc/config/gcn/gcn.h
! 16b8e24f013cf070b699689775e1c1d1  gcc/config/gcn/gcn.md
! 8b501b2f2909b52d8b1fcd7d73dc982a  gcc/config/gcn/gcn.opt
! 8316cbfe8905418aa5882486602d17ca  gcc/config/gcn/gcn.opt.urls
! 90b23dde7df766a3aeef8e82433ae644  gcc/config/gcn/gen-gcn-device-macros.awk
! bf608ab2f8f8935818839e7c58d3dd5f  gcc/config/gcn/gen-opt-tables.awk
! 8bf6c8376637503139b6fb8d70bb55a7  gcc/config/gcn/mkoffload.cc
! 5746cdb5b394ac0dc99b78898768aacc  gcc/config/gcn/offload.h
! 3cb96661b1869fb7aac55d288bf6248f  gcc/config/gcn/predicates.md
! a3c2585b76667370d90aecdc90a8348a  gcc/config/gcn/t-gcn-hsa
! 5d6694c585532630e8b594496da15644  gcc/config/gcn/t-omp-device
! 4b494bbdd46181a72c7cc14822157577  gcc/config/glibc-c.cc
! 97282b554cab0474b396061e0587cd12  gcc/config/glibc-stdint.h
! f7dbf0f3812abaef9d76addce925c5b3  gcc/config/gnu-d.cc
! 4bbd3e3f513f3e7d6af9fde4879f9144  gcc/config/gnu-user.h
! 1858c32ede1f620203ed638ba8e6b3c2  gcc/config/gnu-user.opt
! d039ad9b715903a97cd9d68a8116fe71  gcc/config/gnu-user.opt.urls
! 0afc87f8213cdff05820de461c45fece  gcc/config/gnu.h
! 762caed3032d23c497832b0f920ad5df  gcc/config/h8300/addsub.md
  cddc64825ce6e6e92692684251745f9e  gcc/config/h8300/bitfield.md
  e0f182e6b6c3f56eae0c152e463235ef  gcc/config/h8300/combiner.md
! bf2b5bfafd63c2681022b7fa39aaed56  gcc/config/h8300/constraints.md
  6951bae6ec523668ea56b4c855810ce3  gcc/config/h8300/divmod.md
! 4de43ff8db95f301e89eaa3524e563d6  gcc/config/h8300/elf.h
  4664439672c5dddfd6148672f30ab54b  gcc/config/h8300/extensions.md
! f51aca6d600023517405c3d80d4deec2  gcc/config/h8300/genmova.sh
! a56ce596c255851b4e3a5fc13ec148b7  gcc/config/h8300/h8300-modes.def
! 4cc8bdb747fa7f7756c0929324022da7  gcc/config/h8300/h8300-protos.h
! 7dc8b48b9537eb8a20ba05c0424a40c1  gcc/config/h8300/h8300.cc
! 0408e2dcdfdfb42a7cce648f432a242e  gcc/config/h8300/h8300.h
! 4322f932b7268c8d815cef41a39c4ca1  gcc/config/h8300/h8300.md
! 47a3b1c5b86e27e0933c519cf69021e0  gcc/config/h8300/h8300.opt
! a5103b89aad288d854b885f74c3fea87  gcc/config/h8300/h8300.opt.urls
! 9c526eb23649968b6b084788c80cb23f  gcc/config/h8300/jumpcall.md
! 07c8d6d85f770d7b625777644f3017af  gcc/config/h8300/linux.h
! c95c16ca27ef1c638037907971e593a0  gcc/config/h8300/logical.md
! acf331a2926c84e384dbe435b2c32ceb  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
! bbaa65101f5452a1c92722229aee2ebd  gcc/config/h8300/predicates.md
  229fc2c8a83deb14625c4ee888cbb642  gcc/config/h8300/proepi.md
  daa266a3eae63ee1e65cb8c441f4c9c2  gcc/config/h8300/shiftrotate.md
! e8b4e410c4f2d071ff10704541480828  gcc/config/h8300/t-h8300
! 82c8604579ae0fc484ce0b46ae9e6ca0  gcc/config/h8300/t-linux
! d081ffdb5e6fda6471818cb2912ae68a  gcc/config/h8300/testcompare.md
! 5cff983f537ab15144cef370302148a1  gcc/config/host-darwin.cc
! ea7d0f3fec8f9d7d0c263808b5e56f11  gcc/config/host-darwin.h
! bb74991f4617b918293845016b78bd3a  gcc/config/host-freebsd.cc
! 7ad6be638eba111b2e8fc1eddf7835c1  gcc/config/host-hpux.cc
! be95fbbee07cf09eb6a8fb9ce86af55a  gcc/config/host-linux.cc
! 5d43584d85ba4cc7620a53ed7bb40e7a  gcc/config/host-netbsd.cc
! e0cfa2d30528afe7d96718b2c0d2f042  gcc/config/host-openbsd.cc
! 7b5daafe15fce1b864492af648812dc4  gcc/config/host-solaris.cc
  2c191e2d8d033611c6fccc8362d9e8f0  gcc/config/hpux-stdint.h
! 849dbe36cd177425793947131ae0c4e4  gcc/config/hpux11.opt
  6fb8f575d2ba05a77e86b2a4670259bb  gcc/config/hpux11.opt.urls
! bce047f0ce185b9d2357065eaf595063  gcc/config/i386/adxintrin.h
! caa03bda7825e35f017ef5dbdda08600  gcc/config/i386/ammintrin.h
! f7b9dc5925af22e4c4a1fc76255fbff5  gcc/config/i386/amxavx512intrin.h
! e3c037306e5a9aa9825b615db002bdc2  gcc/config/i386/amxbf16intrin.h
! aa96e28006c1237f7a8e2632a3a27bc2  gcc/config/i386/amxcomplexintrin.h
! 4330c925728cf63c16cd273eb0a137d2  gcc/config/i386/amxfp16intrin.h
! f1e5f06c465f28afd9d7240d4a7707a0  gcc/config/i386/amxfp8intrin.h
! 2c56a7888363879f35573beb9725066b  gcc/config/i386/amxint8intrin.h
! b2ceb0c53bdc26c9ea9142b726bc3dc9  gcc/config/i386/amxmovrsintrin.h
! 49453d9e5c167a646455658e4e34dfd3  gcc/config/i386/amxtf32intrin.h
! baf0560f4d6bf8da12e6556ae1b70476  gcc/config/i386/amxtileintrin.h
! 8b7d938636a40959400e79691a773e29  gcc/config/i386/amxtransposeintrin.h
! c15d7808fccc8d11369f9647d03d05dd  gcc/config/i386/athlon.md
! ed1638d9475d7c91c9e45eb7c779dcbf  gcc/config/i386/atom.md
! a4ec20f0aa32047d0e4483904cbb19de  gcc/config/i386/att.h
! 4bb5c4e528838282e17d2ffe16606e3f  gcc/config/i386/avx10_2bf16intrin.h
! d636caa4ce720b0233cb902a2b0f6100  gcc/config/i386/avx10_2convertintrin.h
! 0915f6b31f0b4f024767118ca24c0b8e  gcc/config/i386/avx10_2copyintrin.h
! 0b2a61d73299543d614e724833bcd5b0  gcc/config/i386/avx10_2mediaintrin.h
! fb8d30bc80190fa2fc01b0e736364725  gcc/config/i386/avx10_2minmaxintrin.h
! a262ea21dae1659aa3fe18e010917323  gcc/config/i386/avx10_2satcvtintrin.h
! 7d7113ae09c4908f619c34446366d489  gcc/config/i386/avx2intrin.h
! 3217e698cafbfedf6eb33bde4549ab07  gcc/config/i386/avx5124fmapsintrin.h
! 7cd684383288feca94abf23d6f39b34f  gcc/config/i386/avx5124vnniwintrin.h
! 18a3f266120c36929e01e35ef3e4b8fd  gcc/config/i386/avx512bf16intrin.h
! 156b42b712c794eb8893746a58a9aac6  gcc/config/i386/avx512bf16vlintrin.h
! 24e411e44836a6e44a0a3b292353d5c0  gcc/config/i386/avx512bitalgintrin.h
! 97737363db271183898fca5040b263fe  gcc/config/i386/avx512bitalgvlintrin.h
! 9774e5bdf82f20d972c6f88ad231f040  gcc/config/i386/avx512bmmintrin.h
! 2158a6acffdb5af1fd7c4db73fff0829  gcc/config/i386/avx512bmmvlintrin.h
! 43d080a3ba57f25865a149bc55b51aad  gcc/config/i386/avx512bwintrin.h
! 4faceea392daa38facc1a691b873c23f  gcc/config/i386/avx512cdintrin.h
! a274de46d0d2d139eb0e0e16d77722f5  gcc/config/i386/avx512dqintrin.h
! 2e80fe803043f0bf28209bb844708c7e  gcc/config/i386/avx512erintrin.h
! d4000e636f4b3c1fb6606a3a0bb24b8e  gcc/config/i386/avx512fintrin.h
! bd1997bfb686bc0c401903bcff1658ee  gcc/config/i386/avx512fp16intrin.h
! 50ab6b8665b9336f1227a8fe230798ca  gcc/config/i386/avx512fp16vlintrin.h
! 15f61b0d5ae87262c2d3b782741072d3  gcc/config/i386/avx512ifmaintrin.h
! 24bb436b6c2125cb1e1ffa6dfc8561a5  gcc/config/i386/avx512ifmavlintrin.h
! 54bff83235d19f23327d0f06b762ac50  gcc/config/i386/avx512pfintrin.h
! 5b178861080bdfcf0e6f37e91b21ddd6  gcc/config/i386/avx512vbmi2intrin.h
! edfdbb82061eec8c878288abe9f63ef1  gcc/config/i386/avx512vbmi2vlintrin.h
! 3464fa8179976012f0802684c575e69f  gcc/config/i386/avx512vbmiintrin.h
! 3ecea8bcbb79510efc661dd84d03d653  gcc/config/i386/avx512vbmivlintrin.h
! aa87a1904286d217a5bb6a6e55e95e4c  gcc/config/i386/avx512vlbwintrin.h
! 590422cb88399a1eab6b43d97f82c5eb  gcc/config/i386/avx512vldqintrin.h
! a4f74013fc8668238ef56e02c9d7aeda  gcc/config/i386/avx512vlintrin.h
! e7bb51725cfaf98ab360e8756483648b  gcc/config/i386/avx512vnniintrin.h
! 5b02dc9b541e2e474826714fcff9f047  gcc/config/i386/avx512vnnivlintrin.h
! d69d5f3c962ce15df1b586ea8bd2985a  gcc/config/i386/avx512vp2intersectintrin.h
! c93b9f0fa94283b90323206578e6570d  gcc/config/i386/avx512vp2intersectvlintrin.h
! 0ac1786e71d0556b4a4266ee4f0e26a1  gcc/config/i386/avx512vpopcntdqintrin.h
! c4bc4a01781b86c5b6a27cde01079283  gcc/config/i386/avx512vpopcntdqvlintrin.h
! e922e20670e7c835ddaaae8c762e1149  gcc/config/i386/avxifmaintrin.h
! 1571449db0a6fb7dc9d55f0f08964cb6  gcc/config/i386/avxintrin.h
! 771704d58189b4cb0a7d48d044a533c7  gcc/config/i386/avxmath.h
! 89b1b2a0787d943f749561797bed5d45  gcc/config/i386/avxneconvertintrin.h
! 17d24297721ae686a856d52a8f64a228  gcc/config/i386/avxvnniint16intrin.h
! c04840d4e96ac4da4edac375d673801d  gcc/config/i386/avxvnniint8intrin.h
! 156c638dc9ecec2578a28f6b746eacee  gcc/config/i386/avxvnniintrin.h
! 3d62c66edcd6b590e3ec6b72e020dbe3  gcc/config/i386/bdver1.md
! cb26d2be545387f7a3c7412935c17069  gcc/config/i386/bdver3.md
! 6d0ddd0972e55ace477d2170697e5316  gcc/config/i386/biarch64.h
! c40c01da4802f0f9431628ebe3d73752  gcc/config/i386/biarchx32.h
! 4bb2dd748fbe15072652b75a4a9cb8e0  gcc/config/i386/bmi2intrin.h
! 085c9e409c6b7261cadb5557835c69c4  gcc/config/i386/bmiintrin.h
! 5d36c928833df6662f7ca00cd7ce93ff  gcc/config/i386/bmmintrin.h
! 26cd4d7bf7e6af86bf03c11fa4c6d439  gcc/config/i386/bsd.h
! ef2cea596cd06eef79d38421d62a9927  gcc/config/i386/btver2.md
! 910cac3feca708c7269e72c17735ac87  gcc/config/i386/cet.h
! 3af5d025bacebb10ac3eecc45363f3f5  gcc/config/i386/cetintrin.h
! a3f24c3ce9741743a87eb285dbaae138  gcc/config/i386/cldemoteintrin.h
! 51586107eaad133fa695aaecabeabbd8  gcc/config/i386/clflushoptintrin.h
! cfc318f7557db26d87c5e88b015f89dc  gcc/config/i386/clwbintrin.h
! dbcdd5d37809de3b588c89731b456a95  gcc/config/i386/clzerointrin.h
! 1e33ea74ea0aac3b8f07f5a6a2b214fd  gcc/config/i386/cmpccxaddintrin.h
! e31d20e57fcc6b9a15aa65c66ea05643  gcc/config/i386/constraints.md
! 6ba0c72d72717542a49115d882af3ce9  gcc/config/i386/core2.md
! 9d1f00af3ca4af046e932a8894eed704  gcc/config/i386/cpuid.h
! b7a784ebc5b7a408ce934c4c77d2f0df  gcc/config/i386/cross-stdarg.h
! eea748dea33c931f2a0211ffd279bd9d  gcc/config/i386/crtdll.h
! 0d7ae9af88d5e9352bee035c1dfb0fbf  gcc/config/i386/cygming.h
! 2769aec1ba034a4aeb65b6a57299886f  gcc/config/i386/cygwin-stdint.h
! 7a00aae17af7149d2d3b820963bc170f  gcc/config/i386/cygwin-w64.h
! 7fa24da4effe0d45e3129f720aef22ab  gcc/config/i386/cygwin.h
! caf754940377d593ccf417ef5d1a2b71  gcc/config/i386/cygwin.opt
  3b362955aab83912528fe683b571c289  gcc/config/i386/cygwin.opt.urls
! 38cb64d1c7c2478dab3692e54e60f46d  gcc/config/i386/darwin.h
! 700269de5ce36bf877a561acd6a85d17  gcc/config/i386/darwin32-biarch.h
! 1ebe9b73a1eb0eedca8986697cd94b89  gcc/config/i386/darwin64-biarch.h
! 5191118040fda96e8e0a2657e346bbba  gcc/config/i386/djgpp-stdint.h
! 8aa4b5f33d72274e42aca9d99ea5800b  gcc/config/i386/djgpp.cc
! ca79ed6b45db789c76673ad8ab56752f  gcc/config/i386/djgpp.h
! b5bf289667d7414f0f070d1d6195c05b  gcc/config/i386/djgpp.opt
  1b346c8cab1daa697ecd6c31e8e0e1d5  gcc/config/i386/djgpp.opt.urls
! 6e6ed34837087e891dbe64159c7aceaf  gcc/config/i386/dragonfly.h
! f478c9ab244eb4f1f847cfa6358906cd  gcc/config/i386/driver-i386.cc
! c3f8400c2cd15cc6fdc2c91d79a3039c  gcc/config/i386/driver-mingw32.cc
! f7e63c0c0bc7833d6119bebb9abe588d  gcc/config/i386/emmintrin.h
! 9137411ae180f544dbdf04c71fa244bd  gcc/config/i386/enqcmdintrin.h
! de32c5daa212721af8d6b7954f1487f4  gcc/config/i386/f16cintrin.h
! 70b377cd615745f1d6a88e0926a95972  gcc/config/i386/fma4intrin.h
! f9bce45e10e0efde8634443a2e6d5378  gcc/config/i386/fmaintrin.h
! c25946f1f2719a2da6b16397a9ca2668  gcc/config/i386/freebsd.h
! 17150b7a38b2e1f06990c03b7dbedb74  gcc/config/i386/freebsd64.h
! 903eaff7b99a66634c1cfd24bd481fa2  gcc/config/i386/fxsrintrin.h
! 1294cb83be597d6a65c5e5759f9e3949  gcc/config/i386/gas.h
! 6c074dbb11fddd271baa17c9193b701c  gcc/config/i386/gcc-auto-profile
! d1efcb396971c5d3fe5a4fe7a462fab7  gcc/config/i386/geode.md
! dbb35f82436b8fc508c1059c8cbf5fbd  gcc/config/i386/gfniintrin.h
! 7cfef3b104ce263034aca5e278236129  gcc/config/i386/glm.md
! 02e63bfd4d92e674b7ac772a65b5615a  gcc/config/i386/gmm_malloc.h
! bae0ca456d037c82ca302457c70d5d24  gcc/config/i386/gnu-property.cc
! a890b4f954957d76a3bcab4f7290791c  gcc/config/i386/gnu-user-common.h
! 9ad91dedbe41d50aa416bc6aca36208f  gcc/config/i386/gnu-user.h
! b133de107af1e6f3b33439e91a884ca2  gcc/config/i386/gnu-user64.h
! 0269368a88e758279d349971e329d5a9  gcc/config/i386/gnu.h
! 9d76062c1cc39d26ad5be89aaecf38f4  gcc/config/i386/gnu64.h
! c0b1517debd0868127dc6a7d5bc29d37  gcc/config/i386/haswell.md
! e9a606fe2c3135bde80e6d2c44264c26  gcc/config/i386/host-cygwin.cc
! 95d22f7c4cd379119de8095ffb869909  gcc/config/i386/host-i386-darwin.cc
! c097b985beb72ff18cb78cd9ccd8e231  gcc/config/i386/host-mingw32.cc
! 688b8db2a9b26c0e106fce8ad35a77b7  gcc/config/i386/hresetintrin.h
! b18770c338209a9276ef5d52a49bde7b  gcc/config/i386/i386-builtin-types.awk
  5090ae3207d0bedc79ecdcec7c2cb71b  gcc/config/i386/i386-builtin-types.def
! 0ba4d62f46027afe4bb4e8b65a9ab7c2  gcc/config/i386/i386-builtin.def
! 8dbd55fdf807ba9b636b99fdf4277e4d  gcc/config/i386/i386-builtins.cc
! be7f06e3ea032dfb39fcda012c812683  gcc/config/i386/i386-builtins.h
! 4e422072527333634b85b1495395f8b6  gcc/config/i386/i386-c.cc
! a0261d6cc006fb86b99f338bdc94ae04  gcc/config/i386/i386-d.cc
! e9c7eebd4e344796f248c93990aa5166  gcc/config/i386/i386-d.h
! 035d77e162a3ed3c70b5bf6bb7483a50  gcc/config/i386/i386-expand.cc
! 386e1be7f608621b79970d4d036694f8  gcc/config/i386/i386-expand.h
! e0276b18d746ed8cead3e8f99f281a18  gcc/config/i386/i386-features.cc
! 473c35b162be3bcf222c90a16f72b948  gcc/config/i386/i386-features.h
! dca59d9c03f5b12366f9a926169f396d  gcc/config/i386/i386-isa.def
! 848d1b1aa8faaad07d31b78764004e7f  gcc/config/i386/i386-jit.cc
! d743703707286fafa2ce425b1d062ee0  gcc/config/i386/i386-jit.h
! 31871dc86b95e35e45aee6cbaaddb18d  gcc/config/i386/i386-modes.def
! b63569ecff9557acb7963f14a101bce1  gcc/config/i386/i386-options.cc
! 106bb7043496820d393f0522178e1287  gcc/config/i386/i386-options.h
! 2db6ec1e569468279f31d11379fe9d8f  gcc/config/i386/i386-opts.h
! 9a75f0c116528508f4f48d128eceac38  gcc/config/i386/i386-passes.def
! 599c3a0da7643105c19e7d0f2fcf6e17  gcc/config/i386/i386-protos.h
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
! 91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
! 25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! a946b6bbddac6489aa71ea04ff0f4f92  gcc/config/i386/i386.cc
! 483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 2e28728913155c03c58850abc4d5bbff  gcc/config/i386/i386.md
! f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
! b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
! 7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
! e91dbbea4abdb9b61d892b20c00503a9  gcc/config/i386/ia32intrin.h
! 045de1254b57ade50e2bc57081860a9b  gcc/config/i386/iamcu.h
! 0140de888b545176ff52f5d176564cc1  gcc/config/i386/immintrin.h
! 9a027df315b9256c36477b34d74941c0  gcc/config/i386/k6.md
! c6197d58fec9efd149df19e0da0ca626  gcc/config/i386/keylockerintrin.h
! 14d50d2dfe2d4715911f4df64463f1cc  gcc/config/i386/kfreebsd-gnu.h
! 4782bbf60c422a0b346fe822476df30c  gcc/config/i386/kfreebsd-gnu64.h
! 645d6a801ab141b318cff93a2f8fc9cc  gcc/config/i386/kopensolaris-gnu.h
! 6805a61b4452b44df9e43c8d4dfdad62  gcc/config/i386/linux-common.h
! fcefdb5656bc065782182130bdb8eb36  gcc/config/i386/linux.h
! 06a79aeee30b3226b166bc0f7e58d383  gcc/config/i386/linux64.h
! c9fc723c904a1bfdb77efa618ac115e9  gcc/config/i386/lujiazui.md
! 4f34ea06a588efcc3498c3876a3077c6  gcc/config/i386/lwpintrin.h
! 1201700c8e91c71426715ad486ba6a3d  gcc/config/i386/lynx.h
! f6a0cdd108052c6336f54bd29c1ffab5  gcc/config/i386/lzcntintrin.h
  fefe46f8b06de933480400b9f58e9d31  gcc/config/i386/mingw-mcfgthread.h
! 37f0e9e8c26542155ac2d0e2ff88fcae  gcc/config/i386/mingw-pthread.h
! 836a605d2014f8c8f399c30408f8956e  gcc/config/i386/mingw-w64.h
! bc129bffab46f1b3f4e8385e129dad2d  gcc/config/i386/mingw-w64.opt
  55b88c976269e37a537664690c4fab53  gcc/config/i386/mingw-w64.opt.urls
! cbcab4624612809c185831072d24010d  gcc/config/i386/mm3dnow.h
! aea42afde883cdcf14febc5bd88dba2f  gcc/config/i386/mmintrin.h
! cbf34c7ea2fe49bdf228565632d6de3d  gcc/config/i386/mmx.md
! fff495daa14e84982509339259b2cf60  gcc/config/i386/movdirintrin.h
! 67270a67aaa79980333c4d8c2a80f360  gcc/config/i386/movrsintrin.h
! 378170cac6027b6537c718aced0ca31c  gcc/config/i386/mwaitintrin.h
! 6b50d7d307b7609a5c605d3928f3688c  gcc/config/i386/mwaitxintrin.h
! e91f645123a5d04e6269c78dd4f1c5ba  gcc/config/i386/netbsd-elf.h
! e38bcca1a54361dc73d1a8121a7d35c1  gcc/config/i386/netbsd64.h
! b01cb3c07d9823978dfa6b9a37e648a6  gcc/config/i386/nmmintrin.h
! e278d14652bf02ac46b2bc36a558c14c  gcc/config/i386/nto.h
! de02b2c2a1d52a8d046ebc5e2a93c700  gcc/config/i386/nto.opt
  229c4c48ca14c2b8202dadc4fc13f8d5  gcc/config/i386/nto.opt.urls
! 60355c039a7c196609745b77f46295a9  gcc/config/i386/openbsdelf.h
! 42f46acce1ef84624f7b974a35476333  gcc/config/i386/pconfigintrin.h
! 78c4d2d2059dabf0645ac082855ec8ab  gcc/config/i386/pentium.md
! 0ab3d8b6f7dacd0cfa361411130d0280  gcc/config/i386/pkuintrin.h
! 2bd1277dae37d1ab2ef42c699dcb2b4a  gcc/config/i386/pmm_malloc.h
! aaad1a6a46fe0fae4f4f080ec25979a2  gcc/config/i386/pmmintrin.h
! e3a5e8aba8408fe534c82a5f831ac343  gcc/config/i386/popcntintrin.h
! 0d9fe20f90097f2260c0d3dd226004b1  gcc/config/i386/ppro.md
! 6a771115ad999d3a84f994bce8926008  gcc/config/i386/predicates.md
! 49c1e916a421c63ab688a51702818f36  gcc/config/i386/prfchiintrin.h
! 2c409488751db6ad5078dd4951efbd09  gcc/config/i386/prfchwintrin.h
! ae0d15567f15a04257774556b0d4dab6  gcc/config/i386/raointintrin.h
! be5a1341757e73ebb9004398fc5687ea  gcc/config/i386/rdos.h
! 81d4402adf95b7a118c98cc3e5796495  gcc/config/i386/rdos64.h
! 09fb90235955c8739573841cde30bd31  gcc/config/i386/rdseedintrin.h
! 429d328528b34f2c076370ac9b50e941  gcc/config/i386/rtemself.h
! 303b43ad1f3c7c683a6a7842cb8c9b66  gcc/config/i386/rtmintrin.h
! 29ac6acf607307d45cee296a727ed7d0  gcc/config/i386/serializeintrin.h
! 0fedfb7863bc20d511a70dc96c54dc00  gcc/config/i386/sgxintrin.h
! c0846c4676675d1cdd7e0d7b78f579c8  gcc/config/i386/sha512intrin.h
! db114ac74c87743a142214fddaad2687  gcc/config/i386/shaintrin.h
! 7ee9c871ea67121753dc1acd6b3e24db  gcc/config/i386/slm.md
! 94b0dab281a8deeed2a925444aed552a  gcc/config/i386/sm3intrin.h
! 92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
! 5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
! 5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 51e746a1ef0de0276d1750d6232f4d47  gcc/config/i386/sse.md
! 52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
! 8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
! a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
! 306c9fee2c5164be94b166437a67c826  gcc/config/i386/sync.md
! 28dcdee9d85a7ed38cdf902b10992995  gcc/config/i386/sysv4.h
  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
! c80772b2ca548ad115e76ff81fed7906  gcc/config/i386/t-freebsd64
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
! c43075c409e5fd5dbf83c594ac7b1be2  gcc/config/i386/t-gnu-property
! 04cc4e9df269acb8190d2b543e3578ec  gcc/config/i386/t-gnu64
! 174e9565a9a4a541ee0975f24d6c5f68  gcc/config/i386/t-i386
  51dcf9826007c01cfd67be11d5f0d538  gcc/config/i386/t-kfreebsd
  39ad69cb2a2e67aa8d46664a75b02789  gcc/config/i386/t-linux
! 46e3c3538acc5534b8743441ff88c5a5  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
! 8fdad586ad01794c42edf204b9dd9b57  gcc/config/i386/t-rtems
! 138c9471a5f4dafb591c7905e7a3fc8a  gcc/config/i386/t-sol2
  6c6dc6647856991d7275637384be6c03  gcc/config/i386/t-vxworks
  b80a5a4a8c8fc32ca318158abc98dc20  gcc/config/i386/t-vxworksae
! a94a7e1ee766d80c7d6a2a0ae1eb20e9  gcc/config/i386/tbmintrin.h
! 82cf756dee98e8103d0a4c30076f176e  gcc/config/i386/tmmintrin.h
! 5d6b4ed97e48ff81ce446c79d26618bb  gcc/config/i386/tsxldtrkintrin.h
! 33532aab68c26290f1f96a54e5611edc  gcc/config/i386/uintrintrin.h
! 985120042a415dc11887a6d74a52c97f  gcc/config/i386/unix.h
! 1b9a896a53645d1df2416699ec578e79  gcc/config/i386/usermsrintrin.h
  81edd33206e44c8dbcd4165f97407774  gcc/config/i386/utf8-mingw32.rc
! d603c794c6b49ae0cb5cd7451b708017  gcc/config/i386/vaesintrin.h
! f50630bc28d0cff997f62a47976c06cb  gcc/config/i386/vpclmulqdqintrin.h
! 11c83a1823d118307a076847d6ad112c  gcc/config/i386/vxworks.h
! 4272ea3ba0e60b762c87a3e48f914506  gcc/config/i386/vxworksae.h
! e3308e06d10bddaf8d2e97a08a1ca887  gcc/config/i386/waitpkgintrin.h
! fd2a5bbf6a001535a3999e9dce998fe2  gcc/config/i386/wbnoinvdintrin.h
! 9a292a1c009424b9775979c1b7e8e169  gcc/config/i386/winnt-utf8.manifest
! 980a631552df5c4d22de20b462c4dd14  gcc/config/i386/wmmintrin.h
  b4cde95b709fc93c90bf4d6b3edc7fd0  gcc/config/i386/x-cygwin
  1ab2099a92787dd158135dbcaceb0bf9  gcc/config/i386/x-darwin
  8d6956f3535d501680a321eb01dafb35  gcc/config/i386/x-i386
! c2cfb83eb28cbbc487a62ee85650286e  gcc/config/i386/x-mingw32
! 5d8e585db0fd38674f683b0e8aafb897  gcc/config/i386/x-mingw32-utf8
! c98679993951718aa4177acc76b998b3  gcc/config/i386/x86-64.h
! 8d184666d13b316783e97eee9de18a3e  gcc/config/i386/x86-tune-costs.h
! c22e895e5b7e6b98c7223b26982a5d20  gcc/config/i386/x86-tune-sched-atom.cc
! 7bfce4f9fdee1dc1db1e668b10d9d8e2  gcc/config/i386/x86-tune-sched-bd.cc
! 864e537089cc92c5002cefd76ede977a  gcc/config/i386/x86-tune-sched-core.cc
! 67c586fe54bcfe3f719ae50164d063ca  gcc/config/i386/x86-tune-sched.cc
! bcb5f0c90c9b04c1319d89b59faa0d30  gcc/config/i386/x86-tune.def
! 75b1f0e8f79cfd04f898a4099aff669d  gcc/config/i386/x86gprintrin.h
! e5335d55cec73bd3270862ccac7a02e8  gcc/config/i386/x86intrin.h
! 76f88cf5ac857d392ddb81b244c5b9b0  gcc/config/i386/xm-cygwin.h
! 27a48b1c4ee41bec4f70aa617d75b72a  gcc/config/i386/xm-djgpp.h
! c13039229b4a8b54d85deb61653c7b36  gcc/config/i386/xm-mingw32.h
! 32c963ea2d599aff4dc17a05f63df1a8  gcc/config/i386/xmmintrin.h
! f2b17ea11edd1ed0075841cd4f845cfc  gcc/config/i386/xopintrin.h
! d0faaf1683722c76e4e658d629e0666b  gcc/config/i386/xsavecintrin.h
! c6c2ccc0507144a0cb6f97846c050633  gcc/config/i386/xsaveintrin.h
! 18e496a6c25e469bed59e45265dccdb6  gcc/config/i386/xsaveoptintrin.h
! b33fbb9cf814beaac0cdc5288c020e7b  gcc/config/i386/xsavesintrin.h
! 98b4f3e5a33ad9acb0b8a03327987474  gcc/config/i386/xtestintrin.h
! 953f52838d1a952b9466f1422c4a39df  gcc/config/i386/yongfeng.md
! 25029ad73f1ad95712faeb120ae25185  gcc/config/i386/zn4zn5.md
! 0769301f3ae9e91e0c0b1142e12c3f56  gcc/config/i386/znver.md
! 778cd7d0cf9155dd1740743321e943a8  gcc/config/ia64/constraints.md
! 5b331f2ebba6bd39013c01f45bf32ea3  gcc/config/ia64/div.md
! 48a3beefeac065215e649dc6adc30cc2  gcc/config/ia64/elf.h
! 2f9fa9d02defd16cd0d5d4d978f685b6  gcc/config/ia64/freebsd.h
  89edd175b4bfe583ec3ee965092fd5d0  gcc/config/ia64/hpux-unix2003.h
! 5f691f559a55faa543397e5891eeac1c  gcc/config/ia64/hpux.h
! 910b1294d85fd32e07bab986de35d85a  gcc/config/ia64/ia64-c.cc
! 5d32cfac5c80aa7f76a0fd9a9ee92529  gcc/config/ia64/ia64-modes.def
! 25e74d0fdecab081ca69e7ef4c8582e0  gcc/config/ia64/ia64-opts.h
! 16c47e5699623e0ad434a2a3d9d3bf17  gcc/config/ia64/ia64-protos.h
! 60c3866fa096879a7f8c4575ad21dda2  gcc/config/ia64/ia64.cc
! 5e2cb15b567a9075dec9b3b7f9402ae0  gcc/config/ia64/ia64.h
! 78b47ae3a723de41b99d844749c839de  gcc/config/ia64/ia64.md
! 6bc55e855e97af0f6381291c46356497  gcc/config/ia64/ia64.opt
! 72d859c8b1f5067135ead38ee225ffa4  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
! 0753f162bc03e7ce15f2ce324ea5654e  gcc/config/ia64/itanium2.md
! bdea6d6f513c015f961dfae656959919  gcc/config/ia64/linux.h
! 6d996a7156d559feb32f54d20e9621be  gcc/config/ia64/predicates.md
! e72ab32a0dca2c0e06bb6dac521ff428  gcc/config/ia64/sync.md
! 04bb5fa8ea1f844ae62a775d389dd65a  gcc/config/ia64/sysv4.h
! d4688047da16af7de59257cb0bb813fa  gcc/config/ia64/t-hpux
! c1a6efd9f47d6a97dfbe22655f9936d0  gcc/config/ia64/t-ia64
  67736f64800d10923b58be4e448620d6  gcc/config/ia64/t-linux
! 873d9c3d981da08b9fd7e77a9daaa606  gcc/config/ia64/vect.md
! e054a1f6e2233a410c614556bf4c3b89  gcc/config/ia64/vms.h
! d00776bfff53c1a623cca10de9a5ff4a  gcc/config/ia64/vms.opt
  58c641df71a1f8993f6e5e1bfaac466d  gcc/config/ia64/vms.opt.urls
! d53f734e252d4bb64f63a771c7f82799  gcc/config/initfini-array.h
! bb6fdf6be9057c2771e0eca84f292142  gcc/config/iq2000/abi
! 2687ef2714529b3ade023b71122e2504  gcc/config/iq2000/constraints.md
! 926a1929ef6f18a9e754ac566dffdbe7  gcc/config/iq2000/iq2000-opts.h
! aaf3c981e6c644f8cd910995cdd4ac94  gcc/config/iq2000/iq2000-protos.h
! 53cc73376237ca36573b3b7ee9a6122c  gcc/config/iq2000/iq2000.cc
! b22b626b008a1d59e43894486943b45c  gcc/config/iq2000/iq2000.h
! 20b2f43ed44efcf03ea56e219b152fd8  gcc/config/iq2000/iq2000.md
! b685b07a2f7166c93c4444f6a4ae06a1  gcc/config/iq2000/iq2000.opt
  5ddaa4d82bc6f1b1e52472e3b03c1f96  gcc/config/iq2000/iq2000.opt.urls
! db0a10e83590c8c6f73d7fe5ae74e1e8  gcc/config/iq2000/predicates.md
! 3060b4b8e18fa88816b6c7debe394072  gcc/config/kfreebsd-d.cc
! aea1af229d114d61c8f7f630e580e1c7  gcc/config/kfreebsd-gnu.h
! e6933e16143d9cd1f10812385404f44a  gcc/config/kopensolaris-d.cc
! 79e85a7cbc92e0bedf47b9d31b497dd4  gcc/config/kopensolaris-gnu.h
! 3b49d30f2c0c12a58af3a3016e1592d2  gcc/config/linux-android.h
! a9e4c443696bdf8da8e18a3fe8315556  gcc/config/linux-android.opt
  39159899219836ff091187e768ce6675  gcc/config/linux-android.opt.urls
! 3200ee99b9cfe102f573e1d10218e162  gcc/config/linux-d.cc
! a782b955bbc1802c7a590f03a25c9e81  gcc/config/linux-protos.h
! e06bd38b751dd03effad4c3314c25f00  gcc/config/linux-rust.cc
! 851e5b67016bec670072f5c7245baae4  gcc/config/linux.cc
! 031990f1537a0dd7bf8a298088f2ba4e  gcc/config/linux.h
! f175c5ef1f791f0dad5e5fc5c260a276  gcc/config/linux.opt
  0e0d7a8230d05f9b8b796bdcfd935d94  gcc/config/linux.opt.urls
! 45201b369597c8b9d7611e0d10b3bfce  gcc/config/lm32/constraints.md
! 4fa055dfb723db4efd52481aceec3f57  gcc/config/lm32/lm32-protos.h
! feddaec6c8504074495d631ea1cdfbc5  gcc/config/lm32/lm32.cc
! b1836e0202829fb0e97e14094370e1b9  gcc/config/lm32/lm32.h
! cecb6934c760d54e9ad37c9790a48520  gcc/config/lm32/lm32.md
! 9f29a81484bcc13c6cb5893b43a2793e  gcc/config/lm32/lm32.opt
! f1fc3b5f3c603baf093067313132ba00  gcc/config/lm32/lm32.opt.urls
! 96ff1630a06875a215b0fb2f40a94c21  gcc/config/lm32/predicates.md
! f32c20d7692c70c82ac87146bec2f392  gcc/config/lm32/rtems.h
  a9d1d80c40cc6eb8e9a32d54f82dae43  gcc/config/lm32/t-lm32
  660559cdac2b08e91486a9db7b4a2872  gcc/config/lm32/t-rtems
! 2e83330f4ee66f66f14df91ea93921b1  gcc/config/lm32/uclinux-elf.h
! 4fb06f2c99569f008f3fbb89d269dc3b  gcc/config/loongarch/constraints.md
! 1daa90ebfa4ead5dd59e8ab6f57feaa8  gcc/config/loongarch/elf.h
! cb159a12ebab737430be10b5df70f1bf  gcc/config/loongarch/generic.md
! 8e283bf964d7a7463b18468b5b757c3d  gcc/config/loongarch/genopts/gen-evolution.awk
! cd236cacc314639aae4b01744329c22e  gcc/config/loongarch/genopts/genstr.sh
! 4dc5332a8742afccaccecc9435f3a90a  gcc/config/loongarch/genopts/isa-evolution.in
! d4249b59ef5a24b1a2711287b20e508c  gcc/config/loongarch/genopts/loongarch-strings
! 2d8a451a9109f791d49426bb9a2648a6  gcc/config/loongarch/genopts/loongarch.opt.in
! df8b4f4b8dcb89e729d1dd4c0a77e11c  gcc/config/loongarch/gnu-user.h
! ce049501c9736e269332c4a1b19c32ea  gcc/config/loongarch/la464.md
! 8ba1f024d7e6687edc35f6a7892f7829  gcc/config/loongarch/larchintrin.h
! ef3570776965c774ceed93c45e031958  gcc/config/loongarch/lasx.md
! 27fce87abf98871f7537919ba724e7ee  gcc/config/loongarch/lasxintrin.h
! 787cab00aedf1fc937ded71896742e8d  gcc/config/loongarch/linux.h
! 5692851b73184b2e9a81fe327493fd5c  gcc/config/loongarch/loongarch-builtins.cc
! 5b8cdbae35775ac7ae20ea1b0d14b9e5  gcc/config/loongarch/loongarch-c.cc
! 81d96d87b071262e2275de4768972236  gcc/config/loongarch/loongarch-cpu.cc
! 0058282b8d62d5ee0444b96b7dd58010  gcc/config/loongarch/loongarch-cpu.h
! c9267d45e71ca147ebecfdff12e8e5f1  gcc/config/loongarch/loongarch-d.cc
! 514836679dca3c4fe7557493f2974960  gcc/config/loongarch/loongarch-d.h
! 4e1f705267256fe3638ac6794c424728  gcc/config/loongarch/loongarch-def-array.h
! 0dd42235a22a9412434ea779c82766ae  gcc/config/loongarch/loongarch-def.cc
! ca077531f284e5bbf280885aab4378bd  gcc/config/loongarch/loongarch-def.h
! 4d85d2bf7cedfa77dd43f4473fda850d  gcc/config/loongarch/loongarch-driver.cc
! 1a9930a8ef7b96f700caad88636479a5  gcc/config/loongarch/loongarch-driver.h
! 512199b1c047cd7923d0fd0681680a54  gcc/config/loongarch/loongarch-evol-attr.def
! 88164bbb3c94b0dd29d120ec494dffef  gcc/config/loongarch/loongarch-evolution.cc
! dc2f2182b815a3d30579f3cd907f60ea  gcc/config/loongarch/loongarch-evolution.h
! 21f748b92e5b2e0d11cc3ee27fba55b4  gcc/config/loongarch/loongarch-ftypes.def
! c7eeb48ab4223ecfdb09fa5e4ce61d71  gcc/config/loongarch/loongarch-modes.def
! 4f6f228dac0484d6ba3fbad6ddb6d8af  gcc/config/loongarch/loongarch-opts.cc
! 5e852be9fbcd6b98822c986918099da1  gcc/config/loongarch/loongarch-opts.h
! f42170d324293ddaaf014bfe990b848b  gcc/config/loongarch/loongarch-protos.h
! dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
! fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
! 3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! 6f74feee1e5b9636e1df56aa447d09cb  gcc/config/loongarch/loongarch.cc
! 57abfb8c653a24903f61e5cf93ac929f  gcc/config/loongarch/loongarch.h
! 1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
! 62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
! 387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
! 561a66379ab213d1901626005734b467  gcc/config/loongarch/lsx.md
! c7466e5dbde45f48269999a0ee23e193  gcc/config/loongarch/lsxintrin.h
! fe51977e0ac69b0829287b1c8d3f5060  gcc/config/loongarch/musl.h
! 55f55f0084d1c0ba8a1c1d5015b69af7  gcc/config/loongarch/predicates.md
! f91faa5449d6dd76f5957fa796f00464  gcc/config/loongarch/simd.md
! 2e69737d13e1bfc019d62d20daa42769  gcc/config/loongarch/sync.md
! 70d4362e3209c6d2b4d8ad4c79d65a4c  gcc/config/loongarch/t-linux
! 25160036fbe9a14f0cfa6539925bfa8a  gcc/config/loongarch/t-loongarch
! 2077777e56c76bfdc49229a85745bfe6  gcc/config/loongarch/t-multilib
! a52ea9773b8048a300f52875af013b56  gcc/config/lynx.h
! 64951ee8dbab997dcf5b958908500593  gcc/config/lynx.opt
! 9fca3ddbf9b3995edeab525605ba26f7  gcc/config/lynx.opt.urls
! f363fc32589255dab3b6c3c1373548d5  gcc/config/m32c/addsub.md
! 46bd8f27028f3c5fdca61f57d1f59ce9  gcc/config/m32c/bitops.md
! 69080e8b7cd73ef7fd0613398554244c  gcc/config/m32c/blkmov.md
! 7a2a1c94cc4f3930703a6fa157ba870d  gcc/config/m32c/cond.md
! 95e609f8d3bc9d602b76f34e54ec5040  gcc/config/m32c/constraints.md
! a9346808b1b6bfb35eb7fd12e27579e6  gcc/config/m32c/jump.md
! 8960ef9d9d2490f149bb85c68b5d3a48  gcc/config/m32c/m32c-modes.def
! 3b914c45f1be402b002081e8007b2827  gcc/config/m32c/m32c-pragma.cc
! c3a8dcec48485bc7fafae2b1a8c189ee  gcc/config/m32c/m32c-protos.h
! 2a93c3322f90c01c40a26582733c19dc  gcc/config/m32c/m32c.abi
! 48b67249c74f1913ef52d401648f6f39  gcc/config/m32c/m32c.cc
! 310c03d60bcd563a1490c4cd655a00fd  gcc/config/m32c/m32c.h
! b6d538d5eb6f3e8d4f830ceae4a946e3  gcc/config/m32c/m32c.md
! bbabe288b59fe261d6415f41f4fe7380  gcc/config/m32c/m32c.opt
  b6d95155757f26bad53a0223afa9f6f9  gcc/config/m32c/m32c.opt.urls
! 817aac5b490e4cff868119006498dfc6  gcc/config/m32c/minmax.md
! b330439d7542da11db84e1151e2ccc68  gcc/config/m32c/mov.md
! 62b8bec7974665ff57363b777939bfc4  gcc/config/m32c/muldiv.md
! 418db6ed5245383ca54f9659fd710449  gcc/config/m32c/predicates.md
! 274695c97fb44404b05738c73a2fe6c0  gcc/config/m32c/prologue.md
! e46e39e84496781f9d05c41793ae1d03  gcc/config/m32c/shift.md
! f733d2d1fcf72a8e27e075cda6db9331  gcc/config/m32c/t-m32c
! 563cc48283d2ad1aafbb8112d2454bb9  gcc/config/m32r/constraints.md
! 7e9f0903e6ea894cbb3089749e4636a0  gcc/config/m32r/little.h
! aa8d8313b5501250a95eca293ac8e65a  gcc/config/m32r/m32r-opts.h
! b5f6d072472d476f1bdbfe7f0166f36f  gcc/config/m32r/m32r-protos.h
! 510dc47dd610da7cb28e907ecf6c01a4  gcc/config/m32r/m32r.cc
! 70206f8a41df3cc166dceb1b7f898506  gcc/config/m32r/m32r.h
! 4de76d4a75918aba6c716764e108746f  gcc/config/m32r/m32r.md
! 4e674b682d73effbfc7e23464570e899  gcc/config/m32r/m32r.opt
! 829c32842d5111248d1723464a35cc7d  gcc/config/m32r/m32r.opt.urls
! 46df227312db9dd1271c6433721aba20  gcc/config/m32r/predicates.md
! 659a022a47743b7d3bb51e972574359c  gcc/config/m32r/t-m32r
! 56b2368f8f53a019f1bcff7226a9db3d  gcc/config/m68k/cf.md
! dda6001979605bd841a1c3345651a89a  gcc/config/m68k/constraints.md
! 8698a65b999ca8fba654bb3e608edd3b  gcc/config/m68k/genopt.sh
! 3c9cb51b09d491f28cdb7d5fbf7bb8aa  gcc/config/m68k/ieee.opt
  1778e9d0151397001871eb8aa31c7878  gcc/config/m68k/ieee.opt.urls
! 80d8281cc2985ccb6dca9c4d6edec66f  gcc/config/m68k/linux.h
! ab248989539b9f02a45e3469f383916f  gcc/config/m68k/m68020-elf.h
! 4872a99d5cdc6c7888f7a4559c96e675  gcc/config/m68k/m68k-devices.def
! 58222e510f937478abc536bd7b2ae527  gcc/config/m68k/m68k-isas.def
! 331306c0a935ac31780e60f391dd23da  gcc/config/m68k/m68k-microarchs.def
! 93003970638cd40786ce346b5c5d56c5  gcc/config/m68k/m68k-modes.def
! 97258a710795f87ce740563508a7099f  gcc/config/m68k/m68k-none.h
! 23d110c550a62ec2bfcbf7f375ec39cf  gcc/config/m68k/m68k-opts.h
! 4cef30645aab004ee80017065fb0c525  gcc/config/m68k/m68k-protos.h
! 9972407ba6ffc9db617e82974a48919a  gcc/config/m68k/m68k-tables.opt
  76abf9d767893fa61fddacca5cea079e  gcc/config/m68k/m68k-tables.opt.urls
! f0f3ecbe72c6d785bc099c6259ed9a18  gcc/config/m68k/m68k.cc
! c9e0ec9611ab8ade71ef477fbcecfd71  gcc/config/m68k/m68k.h
! edc70cbcb720ae52dc5bccfc9d859e6a  gcc/config/m68k/m68k.md
! adf00f43fe711efc8a91288493587387  gcc/config/m68k/m68k.opt
! 4ac9d1a63efa1a545d2c87edae0b90cc  gcc/config/m68k/m68k.opt.urls
! 355d6d9b78db475f43ae6991e19e9e08  gcc/config/m68k/m68kelf.h
! 04e22019b1f9e2328fceb8f223dbd026  gcc/config/m68k/m68kemb.h
  c0472199959f16fcb58702880954da6e  gcc/config/m68k/math-68881.h
! 29e6436ecf6d381beae766d6cb50043d  gcc/config/m68k/netbsd-elf.h
! fdf4bd18cc88eb570b8ab5286a398078  gcc/config/m68k/openbsd.h
! 2df5ef880765784a81a226fdd2287adc  gcc/config/m68k/predicates.md
! 1b825cbc1d0c3790a971922491591732  gcc/config/m68k/print-sysroot-suffix.sh
! 3dc87ddb48c66d7a72c158767283139c  gcc/config/m68k/rtemself.h
! 974a49e3c9e659314fc1e8fc5b1613f6  gcc/config/m68k/sync.md
  19d5ed41f3394c9423ff3afe64804076  gcc/config/m68k/t-cf
! 7dade8dd243e52aa0b35de9c985a724c  gcc/config/m68k/t-linux
  baa4595148bafa6426b8d665881ced45  gcc/config/m68k/t-m68k
  c8278c25339f71d746d91a193efd6cea  gcc/config/m68k/t-m68kbare
! 3e0354c4057d748fc09b0484c59d2fdf  gcc/config/m68k/t-mlibs
  0fd519d41689e5af998ca53a2f11e7d2  gcc/config/m68k/t-openbsd
  2919d876e31e6c4e0955d8cd4be5ce28  gcc/config/m68k/t-opts
  2899d62cd61c46fe504594a232959581  gcc/config/m68k/t-rtems
! fec218d776c586fd2a610d97204ed1ff  gcc/config/m68k/t-uclinux
! 817f1bde9cfedd196b973311e359b45c  gcc/config/m68k/uclinux.h
! 954bd7f93a1e22175e70604d0c411ace  gcc/config/m68k/uclinux.opt
  99a98298f0811865fcd36b2173e92323  gcc/config/m68k/uclinux.opt.urls
! 227043ef86ec666a70a18bfd5aa53691  gcc/config/mcore/constraints.md
! c12c7d98a3a59bb74c3e14bb509088a9  gcc/config/mcore/mcore-elf.h
! 6dd1693f2a95ad6fa7dd00b94d911407  gcc/config/mcore/mcore-protos.h
! 509102e4f447ea0a9dc98ca7863936d4  gcc/config/mcore/mcore.cc
! b1321a2414541bbf8755ab640a1d35f9  gcc/config/mcore/mcore.h
! 6d55781738ef97946755b242cf1745a1  gcc/config/mcore/mcore.md
! f16cc70f996e887659e9bbaeae81097a  gcc/config/mcore/mcore.opt
! 518998d9bf7e0bd7040a43879176fe2a  gcc/config/mcore/mcore.opt.urls
! d074a00b74c8d59607883f2f8c168c98  gcc/config/mcore/predicates.md
! 79321f709150d38f106bf4f04e7841e3  gcc/config/mcore/t-mcore
! 57aa06a1bd40b839ef94f2d77bfb7fbe  gcc/config/microblaze/constraints.md
! 3d11b6f8878d688c75464145350c667a  gcc/config/microblaze/iterators.md
! 1f6cfaa800ea073280f4badd5e23bc95  gcc/config/microblaze/linux.h
! 2c6829b33f8e390156576657ae870f00  gcc/config/microblaze/microblaze-c.cc
! d9acafef244dad41d6608fcd8d0fc913  gcc/config/microblaze/microblaze-protos.h
! f7bed44c80aaefbbda5efbce9514615a  gcc/config/microblaze/microblaze.cc
! 416e7e40813d736926bb6a4f4b386070  gcc/config/microblaze/microblaze.h
! c1c22de89195665e34ef0c62df06069a  gcc/config/microblaze/microblaze.md
! 1bfdc8ff504b1a00dc9e86930fd88313  gcc/config/microblaze/microblaze.opt
! b068232199fc8154ef950e53bf98f53d  gcc/config/microblaze/microblaze.opt.urls
! 8d75c5f60841931e2de39df941a9975c  gcc/config/microblaze/predicates.md
! 9409433d74a181d64a217f0be3f66f76  gcc/config/microblaze/rtems.h
! 1e468b43b0177b751414cf4e3158a103  gcc/config/microblaze/sync.md
  df031372af9c825d21d2058d266247a0  gcc/config/microblaze/t-microblaze
  63ccba4e7f745d36609d7c129bac6288  gcc/config/microblaze/t-microblaze-linux
  a8b08640136e3e7712d2278eb84c21d9  gcc/config/microblaze/t-rtems
! aab868e13fa11db204b530f90af81029  gcc/config/mingw/cygming.opt
! 2cc2835c6b0f3061fc3eae08c6ade557  gcc/config/mingw/cygming.opt.urls
! 3a09de115b6947874ec185e5164e8f69  gcc/config/mingw/cygwin-d.cc
! 8aa59f703b6d8957ff655113267f7404  gcc/config/mingw/mingw-stdint.h
! dbcb030a5a374a20a894ab55346eb2a0  gcc/config/mingw/mingw.opt
  19d5796358fa93b7d6fe22a02604a407  gcc/config/mingw/mingw.opt.urls
! 1d5f1a57665738292d79250735b11e47  gcc/config/mingw/mingw32.h
! 1e94c126fd81c1bcb376905cbf579a7f  gcc/config/mingw/msformat-c.cc
! 067ebc3756fe59d47299695d354c9b8f  gcc/config/mingw/t-cygming
! 87266e8b59c36b9e529ef180f12d9bbb  gcc/config/mingw/winnt-cxx.cc
! b85e0e83df79d2f49435f8e4a8992866  gcc/config/mingw/winnt-d.cc
! 3c3dc8be46b778f5ae37e34d464e3671  gcc/config/mingw/winnt-dll.cc
! 8d146495102e58eb8547fbe9ddbe3244  gcc/config/mingw/winnt-dll.h
! 6c4d1792e7729f1a305e9f345c12693f  gcc/config/mingw/winnt-stubs.cc
! 112a3c159dc847088cfbd1f2ec04d765  gcc/config/mingw/winnt.cc
! d3366b857e20f558be77198d166b068f  gcc/config/mingw/winnt.h
! d67c65c648990c8cc128e82dcf27ee3e  gcc/config/mips/10000.md
! 438f714e597ac4900ae547323e93a15b  gcc/config/mips/20kc.md
! 24238b483ec9d4bc01f3bc198c83585d  gcc/config/mips/24k.md
! 79ed8a3af08b758708ba9a65d3aa035f  gcc/config/mips/3000.md
! b755d748c756354f4e9648921fa61ffe  gcc/config/mips/4000.md
! 5208c10a9fbb1eee3fdd89c3fc921574  gcc/config/mips/4100.md
! 4f1408cc79580bab2bb2910f84a9232d  gcc/config/mips/4130.md
! fb1424b62bb12124b546a0f5d7467ca9  gcc/config/mips/4300.md
! 5c35bb6b8a81b5dfc9d16de0afc20981  gcc/config/mips/4600.md
! 3a1caacc48a1f6bf63d465db29c08d4f  gcc/config/mips/4k.md
! f407bc8617c760acaec92dbf4b975eb8  gcc/config/mips/5000.md
! 6db15f1d869521493ab15e72d1d62071  gcc/config/mips/5400.md
! f8b5bc6f7ae5bf29135e5880fe59c6d9  gcc/config/mips/5500.md
! 8462d92b84dd0a081760e6bb7336895a  gcc/config/mips/5k.md
! ee9854cb99f677ea476dd0e847ee2d27  gcc/config/mips/6000.md
! 812d72d3750ccaff0230a1b349970205  gcc/config/mips/7000.md
! 4082e6ab0f30c9c561b0a48d592e88e0  gcc/config/mips/74k.md
! 7547345a34bc155cacc7f008a6273b2f  gcc/config/mips/9000.md
! 1ddd09364cb1ea78bc8e086233c8a3c3  gcc/config/mips/constraints.md
! 2906eb97992c04ec11061982f1bdffa5  gcc/config/mips/driver-native.cc
! f9e0caacf12c0f68dde93cdf772359ab  gcc/config/mips/elf.h
! 31d0efc9f2dbc8f3501e284eec5e2fc5  gcc/config/mips/elfoabi.h
! 0587f6ca23a17c28994873ac359665a9  gcc/config/mips/elforion.h
! 0088485975f4a3aaa9e5b672d91491d0  gcc/config/mips/frame-header-opt.cc
! 7425ab561cb9995d932be456e7fb2657  gcc/config/mips/generic.md
! e5bcad8d1af634c2f9341c6da8e7ced6  gcc/config/mips/genopt.sh
! b218e76ac578a55c748109a562abd9a2  gcc/config/mips/gnu-user.h
! 400228d0935f64ee1feb9b08f096110e  gcc/config/mips/gs264e.md
! e74a3e4d68e5ecc2fa23d09b16a912b6  gcc/config/mips/gs464.md
! d7e5cd8f617280f0f4f7fe3e5110e062  gcc/config/mips/gs464e.md
! 6b12bb11aeb240455d5e6928a8518860  gcc/config/mips/i6400.md
! c45446909ab14550aee012a848bb9cf2  gcc/config/mips/linux-common.h
! a133d2c7faf330d130ae88d9aadbcb23  gcc/config/mips/linux.h
! 0574a77c6275955ebfb056b6f4c54073  gcc/config/mips/loongson-mmi.md
! f1926cbdf13e9e614fbf378c28fb0ee1  gcc/config/mips/loongson-mmiintrin.h
! b86a9dccc9ddc8fe838d8fd98ffbd10e  gcc/config/mips/loongson.h
! 4c1cef47daf0d4b2d5b42a0721201657  gcc/config/mips/loongson2ef.md
! 17aea6e28a91fc3894c89875bb92e491  gcc/config/mips/m5100.md
! 0456bb03068cdbc9648f4d39bef5d989  gcc/config/mips/micromips.md
! 390f33f11986a75808f8d841cb269f6f  gcc/config/mips/mips-cpus.def
! 0d2d7cc7c062e7b3c7886269f4bfd9ed  gcc/config/mips/mips-d.cc
! 83e791c9701b02132e83fe8fa0c89cac  gcc/config/mips/mips-d.h
! 2e95f39be7b43560660e72f64affb8a2  gcc/config/mips/mips-dsp.md
! 2ddf36938c6a58b40380df3a6d80e436  gcc/config/mips/mips-dspr2.md
! 8d938bca8aecc60930da943a8a6cfc86  gcc/config/mips/mips-fixed.md
! 4b2e3a4bd8cc9d6e2196a24153355ce6  gcc/config/mips/mips-ftypes.def
! 2d0bbc63e9074925399fa6303c1eeef0  gcc/config/mips/mips-modes.def
! a0561d5189d936a2b3f76e586c0a2aa1  gcc/config/mips/mips-msa.md
! 43d1fc807697ba144701984a0d99daf4  gcc/config/mips/mips-opts.h
! 5cf6118b8d7e293dea288c621b36b68b  gcc/config/mips/mips-protos.h
! 9cb506f69bfb4828b4dc81c2e14b3238  gcc/config/mips/mips-ps-3d.md
! 345d90586064a6b98108ed27f48d4599  gcc/config/mips/mips-tables.opt
  216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
! d721b62b45e3d41cf231605ad9646ea0  gcc/config/mips/mips.cc
! c3f89a44da0bb860a7ac949f008546b1  gcc/config/mips/mips.h
! 62c91047998070c0f017a68e2a78fbe7  gcc/config/mips/mips.md
! 09db4f2e8c03333595305c1b1c1c0fc7  gcc/config/mips/mips.opt
! e27efa10159c17e2479da7d6f900b631  gcc/config/mips/mips.opt.urls
! 79c849472a0f91bdf81cbd76d4f9d348  gcc/config/mips/msa.h
! 1f178b192f9ea0c39bef7f4b708fcb0f  gcc/config/mips/mti-elf.h
! 5ad4971d89b71e86695efd19f5329b90  gcc/config/mips/mti-linux.h
! bd77037c95d9742b4e904d6567541379  gcc/config/mips/n32-elf.h
! 94b678cc3711b0752011115aac070e0e  gcc/config/mips/netbsd.h
! 96ae694aad40edadc6c35dd7c7a7ccc9  gcc/config/mips/octeon.md
! 7b8dab39a644ebedf1512ecc83a24cee  gcc/config/mips/p5600.md
! d1fde5087e7fdfaa1a6d9d2fd03a8920  gcc/config/mips/p6600.md
! 4ad041c956eaf143463f4436c983545e  gcc/config/mips/predicates.md
! 4ef3f37260e8f39c9aad94f2784cde70  gcc/config/mips/r3900.h
! 86480d6e16e48d5546ee81f3fe23dada  gcc/config/mips/rtems.h
! 0fa097b15a63c80e02e5c14b1dc4f79e  gcc/config/mips/sb1.md
! 54bcbcea048ee6ed39d0b94d6636abfa  gcc/config/mips/sde.h
! 104923132cebf1d674dd1c088d70d9b1  gcc/config/mips/sde.opt
! bdb78e19d53ecbecb7fa47ce6ea09c60  gcc/config/mips/sde.opt.urls
! 3eb4c72d1e1a0f6395119c15d20dd303  gcc/config/mips/sdemtk.h
! 7155aeea80db1a002ae3bd50c51d7ce5  gcc/config/mips/sr71k.md
! fa5d8cea196f74c1f3c4667509bff358  gcc/config/mips/st.h
! b7aec18b820f9a78f885619904e93e34  gcc/config/mips/sync.md
! c5e4b9b5ba4da3dbeef1f76502c067b9  gcc/config/mips/t-elf
! f2d225b26af742788962722eee5d6de9  gcc/config/mips/t-img-elf
! 35af05079a0993dec44ca294dc568af0  gcc/config/mips/t-img-linux
  f99fd825138aaee60804b8915e20d22e  gcc/config/mips/t-irix6
! f7747bc2663785ee7600fce80930fd4f  gcc/config/mips/t-isa3264
! 3fab2a236bf2047385ca6f5a8f195b7e  gcc/config/mips/t-linux64
! 7dc33cb5f1b7a290c8c31237d6b0d9ba  gcc/config/mips/t-mips
! d146db4b41fe70c563d44768512487be  gcc/config/mips/t-mti-elf
! ae4cca32986b73d12a22a5bbfa1687c4  gcc/config/mips/t-mti-linux
! e4d35f55690ff43a91e1524646c396ce  gcc/config/mips/t-r3900
! 90167b886e922c765b6f4ca27711a948  gcc/config/mips/t-rtems
! 1e0ee09edac84221d1def8e526c501a7  gcc/config/mips/t-sb1
! 711655105f02cec407eda36147522f55  gcc/config/mips/t-sde
! c8bfbdc58206035a4d0d462ff5b99bbc  gcc/config/mips/t-sdemtk
! c50e65f298c57e05ed3fe3cb13717584  gcc/config/mips/t-sr71k
! bacc374a30cdb994f772dc51b3fc4dd9  gcc/config/mips/t-st
! 3a133f49423f8e4523404905d339a9b7  gcc/config/mips/t-vr
! 3d35cf54fefc3731d6d63c45415e47d0  gcc/config/mips/t-vxworks
! 6586337de00bc3614c9d16322238a69b  gcc/config/mips/vr.h
! d91c522a27c6969b996eb01ab42532fe  gcc/config/mips/vxworks.h
  06537756ff14579bc850163a24d5a2f8  gcc/config/mips/x-native
! 199781ca1ecdaf4a56160d0e795a1b23  gcc/config/mips/xlp.md
! 416461aeabc1b1288af57bbfa951e314  gcc/config/mips/xlr.md
! f1ffacbf6895e1f0822f9832ffa05298  gcc/config/mmix/constraints.md
! 00434dcdde02bf5c8638d49b7682d8ef  gcc/config/mmix/mmix-modes.def
! 4384dda1ee07ce1655401973691d4fa1  gcc/config/mmix/mmix-protos.h
! 0db4196b78bfa4d3eb51cf101896bbcc  gcc/config/mmix/mmix.cc
! bb2c2f38aff36562f5b654660ccea2bf  gcc/config/mmix/mmix.h
! 2c888a2543948e7a21778d538e11e9e4  gcc/config/mmix/mmix.md
! cd92e870266ab69f70fe22b4e0689b06  gcc/config/mmix/mmix.opt
! cf606b802843e3437330f832324f5029  gcc/config/mmix/mmix.opt.urls
! a7302f13019bca510f0a5af698ed2bb3  gcc/config/mmix/predicates.md
! ebc152c75a74bc4f99a26a0eaf48f5ef  gcc/config/mmix/t-mmix
! 1a9f591ce3ce89c7ba4068fd2512fa77  gcc/config/mn10300/constraints.md
! d3f8558897b82a0d74e82fc69130b849  gcc/config/mn10300/linux.h
! 7dd72bcc82a63dd62236ed2ea1dd792c  gcc/config/mn10300/mn10300-modes.def
! bb28f75519f1acc4a4b3c25b0380354a  gcc/config/mn10300/mn10300-opts.h
! fe3bdd18b3f1283c1628730fdaf80963  gcc/config/mn10300/mn10300-protos.h
! 55e79d3b9de89b6026b64c3408f3819e  gcc/config/mn10300/mn10300.cc
! 6434c93b1c1080b5a8a661e3c23aa2cc  gcc/config/mn10300/mn10300.h
! 4395c433a3660ded75cd1fb9842de856  gcc/config/mn10300/mn10300.md
! 920b0656df4957d9a6247e0cd1ccf0f0  gcc/config/mn10300/mn10300.opt
! 5f31963d6d20607a9f0f5452bd6219a0  gcc/config/mn10300/mn10300.opt.urls
! 329a4edb69c1bfa109fe51842bff0be8  gcc/config/mn10300/predicates.md
! 23d5a56222ec51a3f150551a04a78ecb  gcc/config/mn10300/t-mn10300
! be6b83ea0ac47b0ac7c95fd12399332a  gcc/config/moxie/constraints.md
! 0552069a5d4f35689ec23d058f2d3f8d  gcc/config/moxie/moxie-protos.h
! 9f33f04f0cc32e76022bfb3448911c16  gcc/config/moxie/moxie.cc
! ebcabf2a41609c236bdaf6b5c788eeb4  gcc/config/moxie/moxie.h
! a2ecd4c15b2a16ca97d9bc887a47a98e  gcc/config/moxie/moxie.md
! 45574d617fcf0f305a699c2c611bfb97  gcc/config/moxie/moxie.opt
! 72fc0128d5d652351e0cfbb4a78c6f93  gcc/config/moxie/moxie.opt.urls
! 663d52512029085fe9667800c1462af8  gcc/config/moxie/moxiebox.h
! 10bed155f1fb0fa07f1a44d3115c41a2  gcc/config/moxie/predicates.md
! 655d9d6150516f63215e5e2364eef107  gcc/config/moxie/rtems.h
! 525e6f7659e7aab75252cd3ab9dd9297  gcc/config/moxie/t-moxie
! e3ac8ae06b414c49903a5433dfd8a36e  gcc/config/moxie/uclinux.h
  f276505b774e975b88b6c90362783e73  gcc/config/msp430/README.txt
! 7f814111bafa53e73c17d05c2953bc12  gcc/config/msp430/constraints.md
! 0f1dff21c435599f71306cb9307a8d3a  gcc/config/msp430/driver-msp430.cc
! e6f31576821b9aa774bbc1c700e7fc0b  gcc/config/msp430/msp430-c.cc
! 2c859f51cf8b58bb2d452d26fb586acf  gcc/config/msp430/msp430-devices.cc
! 62aec601579ba5f8bca42fd44a828529  gcc/config/msp430/msp430-devices.h
  e081143def3cf3a59cd1181fc9162d41  gcc/config/msp430/msp430-modes.def
! 8d1a8981d2063519f82f0f9b0800346f  gcc/config/msp430/msp430-opts.h
! 8ccbcf1f4b240d705396f26fdf612391  gcc/config/msp430/msp430-protos.h
! b78c3e0a544725d50c5b7b83fcaad2c5  gcc/config/msp430/msp430.cc
! fcaead57275e6b5ed6c0371ae6636d82  gcc/config/msp430/msp430.h
! 07200b765e3e64c4fc593ff89d120350  gcc/config/msp430/msp430.md
! a03bbfba7e7041abe6a04b49d7e51b1a  gcc/config/msp430/msp430.opt
! 11f459d643f1369e6fdb3dc78d733505  gcc/config/msp430/msp430.opt.urls
! 9f534dca9b41e0ff17624a4758318e36  gcc/config/msp430/predicates.md
! 9edfa0b71859bf8b782a1502ebc42dd8  gcc/config/msp430/t-msp430
! 7aa00f7ad5ed515a6973ecda14b0e497  gcc/config/nds32/constants.md
! a80afee988894a7f8b8bede3e8d2a771  gcc/config/nds32/constraints.md
! bbda80ac7d7d0579bf089cdbca049478  gcc/config/nds32/elf.h
! 220f02f84a3f3b81d15cdf8f399f7d27  gcc/config/nds32/iterators.md
! 504e8657f36309d24fbd15232432d7bc  gcc/config/nds32/linux.h
! 5aecf7cc152ab836dd2cb5512b2ddc4c  gcc/config/nds32/nds32-cost.cc
! 8533382fc56f75d5006814fd83179514  gcc/config/nds32/nds32-doubleword.md
! e1166a67e37f3d653bcfc2849af3f310  gcc/config/nds32/nds32-dspext.md
! 82e42a18fbfca51ab05f2dda45a7357a  gcc/config/nds32/nds32-e8.md
  c316334a86026beb55e5c25b4b855f95  gcc/config/nds32/nds32-elf.opt
  a0b6c727a1380cd674ab75b88947c326  gcc/config/nds32/nds32-elf.opt.urls
! c82df5d6dcd19343b90de828abc80e07  gcc/config/nds32/nds32-fp-as-gp.cc
! fd5e775e547fea5ea12fbc27d5567547  gcc/config/nds32/nds32-fpu.md
! de9ad6a601d251d6df704644d1a8c274  gcc/config/nds32/nds32-graywolf.md
! 0012e8682a15890e5f1275b8b35b177a  gcc/config/nds32/nds32-intrinsic.cc
! 9e779bf2be6e80cd356e58a8cec6f7b6  gcc/config/nds32/nds32-intrinsic.md
! e23ea52c25733e27622779520c159dad  gcc/config/nds32/nds32-isr.cc
  d94163fd5e4660359b8b12a0d90ed1bd  gcc/config/nds32/nds32-linux.opt
  a93f916906721665c3595705369b9c96  gcc/config/nds32/nds32-linux.opt.urls
! 48886df15e78e684c07543682a33aff4  gcc/config/nds32/nds32-md-auxiliary.cc
! a186fa3c2db2487a1700311b54453bc1  gcc/config/nds32/nds32-memory-manipulation.cc
! 7be569ebcf3f0f579bba070cad647e68  gcc/config/nds32/nds32-modes.def
! 50bafeca8bab93d2872670515e9ba918  gcc/config/nds32/nds32-multiple.md
! 63e8b3cff96a9504c5ee74181842ec6b  gcc/config/nds32/nds32-n10.md
! 2c7a0707fe945aa5ced84c380f9a3d0b  gcc/config/nds32/nds32-n13.md
! 1e36661a740484a17d89b36b23074434  gcc/config/nds32/nds32-n7.md
! 4ae2996bf593ddabaf361f63c8a860cc  gcc/config/nds32/nds32-n8.md
! 0fcc85caf1a7d553c4d6434f945a23f1  gcc/config/nds32/nds32-n9-2r1w.md
! fbd3bdb3ea4aba2bbf1fa809f499946e  gcc/config/nds32/nds32-n9-3r2w.md
! f40c0af3d2d9b97a7d7e8a332410d873  gcc/config/nds32/nds32-opts.h
! 97b741f8af8bd8b4269f86395c335e59  gcc/config/nds32/nds32-peephole2.md
! afb196a97ad5964adf38a2bd30d3c62e  gcc/config/nds32/nds32-pipelines-auxiliary.cc
! cbe017bc8d15f8a4e881c4c566c1ca23  gcc/config/nds32/nds32-predicates.cc
! 832a237de81db056e289e6817726b51d  gcc/config/nds32/nds32-protos.h
! a8e6872a63592d6d7b17cb1654d424c9  gcc/config/nds32/nds32-relax-opt.cc
! 23ab313d3532284e7245cb2a140d62d8  gcc/config/nds32/nds32-utils.cc
! 120193c34d751f4cf8ab9113848c4fad  gcc/config/nds32/nds32.cc
! 63a74b74ef6ce025798a026c2ef864ba  gcc/config/nds32/nds32.h
! 5683ba48791fba79d913c4f0742a9cc6  gcc/config/nds32/nds32.md
! 70126739fc43ac4b6e9ff569899872fb  gcc/config/nds32/nds32.opt
! f78aa0badf7dd1439d951eab3c0e183e  gcc/config/nds32/nds32.opt.urls
  c09acceb380f58ddb795ee3e973945d7  gcc/config/nds32/nds32_init.inc
! 4e39d1b69768be76a7437a80a2039198  gcc/config/nds32/nds32_intrinsic.h
! 6241ca722fb83eeb99584fbc59ab4fc6  gcc/config/nds32/nds32_isr.h
! 669bec24c462cfc5fdbdd3435d17f182  gcc/config/nds32/pipelines.md
! 42fac513379e0f1918460f19a6841399  gcc/config/nds32/predicates.md
! 0b6770f2a56b432d36abb6db7792caf5  gcc/config/nds32/t-elf
! 041535ac47a1381512775e357cb184ad  gcc/config/nds32/t-linux
! 635034f05b606717088ebde7e7fcffba  gcc/config/nds32/t-mlibs
! 9fdef8988ba374628755adbd677561f5  gcc/config/nds32/t-nds32
! 12a341262eef7908690ee7f628533457  gcc/config/netbsd-d.cc
! ec602c621917d78fc66a32f75dba4a6d  gcc/config/netbsd-elf.h
! b9e847901fb2e435797aeade3fb92c9f  gcc/config/netbsd-elf.opt
  1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
! 65050177df2e1144e4254e8d21aeee8e  gcc/config/netbsd-protos.h
! 60fbbbf580acfa54768e4c00144a6543  gcc/config/netbsd-rust.cc
! 023486b91e43434c6865d66f061c97ef  gcc/config/netbsd-stdint.h
! 871a27f0ae567107ebd56667037727b0  gcc/config/netbsd.cc
! b387f44c9f6daa48b14d057ccae84727  gcc/config/netbsd.h
! 88611fe131aba45ab23f2e786330c503  gcc/config/netbsd.opt
  2d8ddf3cb6445f1f788bf4c1f6f61300  gcc/config/netbsd.opt.urls
! 958232e96bda3ed0b2a13a05b79de780  gcc/config/newlib-stdint.h
! d5fbbf2154f81230db9bf181bb64b2d6  gcc/config/nvptx/gen-copyright.sh
! 95aea124a7e2233915c866d785e70014  gcc/config/nvptx/gen-h.sh
! e34ae1cd304d16ac7997906b5278c0cc  gcc/config/nvptx/gen-multilib-matches-tests
! 773f9ddb2d6daa9a87367bb5978fb120  gcc/config/nvptx/gen-multilib-matches.sh
! 8d99acc8e8841a9482912b9cac4e9211  gcc/config/nvptx/gen-omp-device-properties.sh
! b6c2f348186a23ff9ae8614c94745544  gcc/config/nvptx/gen-opt.sh
! 488aef749fee123f498a1af0c59ee6f7  gcc/config/nvptx/mkoffload.cc
! 503652934e86bb0ee0adf7b3b5e3f96c  gcc/config/nvptx/nvptx-c.cc
! 556e8f322bf36874535c7c5f2733d9a1  gcc/config/nvptx/nvptx-gen.h
! 5cf5bb2519176b35b1e882ddec0ae148  gcc/config/nvptx/nvptx-gen.opt
  bbb2a2cf5c79743f967571a1b148fa76  gcc/config/nvptx/nvptx-gen.opt.urls
  83dfca9e2eb78c0e3ab66a3ff9681ad3  gcc/config/nvptx/nvptx-modes.def
! 93a447d34921667614245e6a67c3de17  gcc/config/nvptx/nvptx-opts.h
! 5ffc066c68d4afbfd07cc9455e6c32f8  gcc/config/nvptx/nvptx-protos.h
! fbb7de1e9945c721671a67496fd85db0  gcc/config/nvptx/nvptx-sm.def
! 903915965bdde1329ebfffa2e9710418  gcc/config/nvptx/nvptx.cc
! e2305d74b98283e4f9a780049b4f3c82  gcc/config/nvptx/nvptx.h
! b73220c606bf6c1705b780468fa1a60b  gcc/config/nvptx/nvptx.md
! 7ef196e33d0fcc3be452238c20b9841d  gcc/config/nvptx/nvptx.opt
! f5c35e6fc1338d61e80f525ad1d27ead  gcc/config/nvptx/nvptx.opt.urls
! 6dfcaf98ccebde10c0048561ac4b5a75  gcc/config/nvptx/offload.h
  e5b7e572a77f7a504a29fda1e6e163d9  gcc/config/nvptx/t-nvptx
  0611c8534afbbbca5fe6378a13849c46  gcc/config/nvptx/t-omp-device
! 451d4615c52555013ea2e9a0d412cff4  gcc/config/openbsd-d.cc
! 37401aacd36c804669ebfafdd8d81ddf  gcc/config/openbsd-libpthread.h
! dcff4e0a502ca3e4e910113907cd17a5  gcc/config/openbsd-rust.cc
  9f7ed215196feac2290a9c21bba850c3  gcc/config/openbsd-stdint.h
! 689fd4b9905adc4409c5df7a78aaae20  gcc/config/openbsd.h
! 25ba43afb88cc3e986953ddbb6680337  gcc/config/openbsd.opt
  f2528020fcdc72755829904c1e2bd9cd  gcc/config/openbsd.opt.urls
! 0a4bab19970fc553c7efb3f359b95067  gcc/config/or1k/constraints.md
! d4be91a79300843f584011862102a230  gcc/config/or1k/elf.h
! ea47b9aaff57a2a9d2393ed60a70f379  gcc/config/or1k/elf.opt
! 3c86f63999931694400c4180fcd88435  gcc/config/or1k/elf.opt.urls
! 0800c027b50e3ddb0bdb4cedbcf57204  gcc/config/or1k/linux.h
! 8c4edc2eb61a43fb9f67ceb977f850e1  gcc/config/or1k/or1k-opts.h
! 0dc32c21bc6353a22cc723aa5e94e7c4  gcc/config/or1k/or1k-protos.h
! 2c4174f606f2c5ef251b04557a3fefd5  gcc/config/or1k/or1k.cc
! 41ea77ba00a7d899c45539f070a4e223  gcc/config/or1k/or1k.h
! a894bd2d205ea28000b59beafbc66a68  gcc/config/or1k/or1k.md
! db353534acb45de5e73096b05454650a  gcc/config/or1k/or1k.opt
! d32c4ec7b5de81e93a91bbcadbbb3527  gcc/config/or1k/or1k.opt.urls
! 22651fbf09588000bcc7dc3b88c0425e  gcc/config/or1k/predicates.md
! a5e069c8411385e0dd7b7d87772309de  gcc/config/or1k/rtems.h
! 7eada3f04e4e90cbbbe07969b46f0837  gcc/config/or1k/t-or1k
  f58d4380ee68891690f4302989ce00cb  gcc/config/or1k/t-rtems
! d9e049b76ef37f54fa298dd05df4b0b0  gcc/config/pa/constraints.md
! 225cf4e45998620348b8a7a83e325f1e  gcc/config/pa/elf.h
! a33f0b148177785023590d4ace49d5ff  gcc/config/pa/pa-64.h
! 81dfdf28970f443655f4c530f28790af  gcc/config/pa/pa-d.cc
! 47af51f2d3c2491cb1e1796d81c844b4  gcc/config/pa/pa-d.h
! 8808e983348e61aefd094cf06768a2e8  gcc/config/pa/pa-hpux.h
! 6b45cc62fb070dc81e6f612729966175  gcc/config/pa/pa-hpux.opt
! a614debec8b70ca675ba894e0b4fd46a  gcc/config/pa/pa-hpux.opt.urls
! 61cbb27ffa30e943d28637e28fca8e85  gcc/config/pa/pa-hpux1010.h
! 0de9f573f39a5bfbddddbdff487184ef  gcc/config/pa/pa-hpux1010.opt
  e13114ae33cfe970d30b76ba8cd4f419  gcc/config/pa/pa-hpux1010.opt.urls
! e0ab70b04b63189c55b650fcd2167a3e  gcc/config/pa/pa-hpux11.h
! ed3f5ce2f7305137cb7981e5492f421d  gcc/config/pa/pa-hpux1111.h
! 9827785e3dd09155bcee9e36a960d6bd  gcc/config/pa/pa-hpux1111.opt
  8442020af66ca252bb847f6f824cb155  gcc/config/pa/pa-hpux1111.opt.urls
! 735e4b3b1571e61e349d7ff3edc668e8  gcc/config/pa/pa-hpux1131.h
! 4e1c5c2b05fea8fb45c5915e414bcfb2  gcc/config/pa/pa-hpux1131.opt
  43fc590b7aacc54072ef9661be7c024e  gcc/config/pa/pa-hpux1131.opt.urls
! 43513a2b4db755f09d5bb7ff72e79139  gcc/config/pa/pa-linux.h
! 922f2eaa552fbeafc3a644c9203e4774  gcc/config/pa/pa-modes.def
! 5ec65b4d671a0e8fcc30a881e45d54e8  gcc/config/pa/pa-netbsd.h
! 6b3e75529fdba1a40cb9febc136adf85  gcc/config/pa/pa-openbsd.h
! 799a8f38f756018d977260ec4dd15af3  gcc/config/pa/pa-opts.h
! 8476a9a8e5e9e1c37d95d447ec828c0d  gcc/config/pa/pa-protos.h
! d25f80bbb8de64bd134dc7f65040f919  gcc/config/pa/pa.cc
! aef195401230c3b69b934068b8407088  gcc/config/pa/pa.h
! 0280715850409a16b7fe3f8fc9b3bef2  gcc/config/pa/pa.md
! cb75df3acdd704487025273adaa58c9f  gcc/config/pa/pa.opt
! 051ba40c6ad77aa43300a9282939c6ae  gcc/config/pa/pa.opt.urls
! 4b94b51cd90f0fc78da329518825b169  gcc/config/pa/pa32-linux.h
! e56b7b2e46a62845a9dd3ecc20eb74e6  gcc/config/pa/pa32-netbsd.h
! e967caf5ca8994cebf2a46ce5874966a  gcc/config/pa/pa32-openbsd.h
! 046f07631bc7bdf2f6c230b4d13c1b12  gcc/config/pa/pa32-regs.h
! 329f108fe1d534918fbac23797a8b377  gcc/config/pa/pa64-hpux.h
! 9ea981ccbc8a874b66f8fdade1caa4cc  gcc/config/pa/pa64-hpux.opt
  b9670a9aa8c6577d9c71118121d7f9a8  gcc/config/pa/pa64-hpux.opt.urls
! f4dc2c81f02f83e7ad59203429b20ada  gcc/config/pa/pa64-linux.h
! 641f89aa7ec4ba36900c32741170ab15  gcc/config/pa/pa64-regs.h
  a9a6afd79b827565ffb8de8330b4cfe6  gcc/config/pa/pa64-start.h
! b0a4e9016db710c2ca8e54156656f72b  gcc/config/pa/predicates.md
! eeb0a81c3d1e5cdd8bc33814345d028a  gcc/config/pa/som.h
  6fd25f8c665d2d7390ea94c01dcb8e34  gcc/config/pa/t-linux
  16f4ce216414d19c044dd93c60d948ae  gcc/config/pa/t-pa
! fb996d0478e0f9b5e8380d78deae9931  gcc/config/pdp11/constraints.md
! 294e3bdfb6a8e6e33d154c9b5ae8ec62  gcc/config/pdp11/pdp11-modes.def
! 94c839dc82fe635020d9ed2fc2680a25  gcc/config/pdp11/pdp11-protos.h
! c27953964819c6835a4a42dfa21f330e  gcc/config/pdp11/pdp11.cc
! 7454635b1b15d3f4bda61e4def4e3200  gcc/config/pdp11/pdp11.h
! c54bf2d4fd13bb74bc3d510b8f75f0b1  gcc/config/pdp11/pdp11.md
! 10012acb24169b910382d641b2cbb2c6  gcc/config/pdp11/pdp11.opt
! 82b6a20d3cd861793c18c08b727e8f41  gcc/config/pdp11/pdp11.opt.urls
! 4698ae42c9ec92a8bae25c6aae87cafa  gcc/config/pdp11/predicates.md
! 26b5d6f5cdadb599cdb807f09b982399  gcc/config/pdp11/t-pdp11
! 925e489f0f0a258ea2e7ced256fb3ab5  gcc/config/phoenix.h
! c11972bf63fa008aee2bbef33d586f7b  gcc/config/picolibc-spec.h
! 193423b938033c62e286142c7adf5f39  gcc/config/picolibc.opt
! 5f3fb55682992ef6da7e6abea4d74afd  gcc/config/picolibc.opt.urls
! fcbf9f8c84143f4aa31a271f8995d1ce  gcc/config/print-sysroot-suffix.sh
! 56ef02d6b54083626b640d0ba8bc078c  gcc/config/pru/alu-zext.md
! ce800bdc606a2ae4d19900976be4ecf4  gcc/config/pru/constraints.md
! cb24ad36efa20d24b9e6292b70355252  gcc/config/pru/predicates.md
! 812687b07083ac89dfceeb422109764f  gcc/config/pru/pru-opts.h
! 12253ff8bacfa8875cba3d54e74339e1  gcc/config/pru/pru-passes.cc
! c98ff9301dd655a05d911274b87b8a60  gcc/config/pru/pru-passes.def
! 95854bd9d43b089d9e485c55890d86f9  gcc/config/pru/pru-pragma.cc
! ad743ffd510350de1ccc398970040dc3  gcc/config/pru/pru-protos.h
! 23b664357be90c32a2e613c5f890813b  gcc/config/pru/pru.cc
! d3ebca987828ada71f6114f160741ada  gcc/config/pru/pru.h
! f4bcd512aee9c63ac876027f329af5ae  gcc/config/pru/pru.md
! 07fb21318d917df2d4ba319221cb730c  gcc/config/pru/pru.opt
! ef116c044d43c2dfc0d66c90cb68f1e4  gcc/config/pru/pru.opt.urls
! c767f7420ba1d03bdc9c8683304f60b9  gcc/config/pru/t-multilib
! d14e87abdaf32035777f39d2369df790  gcc/config/pru/t-pru
! 24fcf4723ce4bbe23722598936ad33e9  gcc/config/riscv/andes-23-series.md
! 6e8765fcc82116bd0fe49f725e131ad9  gcc/config/riscv/andes-25-series.md
! 118aa466f059a6dece7669f13f281b25  gcc/config/riscv/andes-45-series.md
! fe7787cb1ccac5b6c4c75d7da3aef619  gcc/config/riscv/andes-vector-builtins-bases.cc
! 30b1cd3f2169a2b09667ad9a57817b33  gcc/config/riscv/andes-vector-builtins-bases.h
! f913aafadf901518cfbd1709bf303845  gcc/config/riscv/andes-vector-builtins-functions.def
! 66ab8d65f2dba7e08954bcbbba736f90  gcc/config/riscv/andes-vector.md
! ccf120397e978f8cd4ed98cbe2c0d4f5  gcc/config/riscv/andes.def
! 3781b6037a5c704d1ff44bb98a38265e  gcc/config/riscv/andes.md
! f4143eaeb6de99083ec3a0020c13454c  gcc/config/riscv/andes_vector.h
! 3a8a73bef77551ee151fb28603e3a02a  gcc/config/riscv/arch-canonicalize
! e210fc922126036076267892b159c6e3  gcc/config/riscv/autovec-opt.md
! 49d1bc6364b4c8e48fa9de0f145a0997  gcc/config/riscv/autovec.md
! 098363f130229da2a5e56c9c7e7ace93  gcc/config/riscv/bitmanip.md
! 9a8c3c567d897ebcb2cfe1b14c449222  gcc/config/riscv/constraints.md
  4e0968dc35562b151fd162778542718f  gcc/config/riscv/corev.def
! 3541ce4817aa1b4ca8a8e3799ba716d8  gcc/config/riscv/corev.md
! 7756abda53649ea4167327df7a1dd51a  gcc/config/riscv/crypto.md
! cf2f4b49f9a1b3787b92baf7d5a969f7  gcc/config/riscv/elf.h
! 2510ce821b34e9be6fa995fe43ac5b37  gcc/config/riscv/freebsd.h
! 226eabae9cd380fe62b39c2ad956bc0d  gcc/config/riscv/gen-riscv-ext-opt.cc
! e623a5f3d20e542e3d022edd84995185  gcc/config/riscv/gen-riscv-ext-texi.cc
! 760bd417139439d3b1868b16a4abb87b  gcc/config/riscv/gen-riscv-mcpu-texi.cc
! d4766896ca13261090404b7ecfcacd52  gcc/config/riscv/gen-riscv-mtune-texi.cc
! 39e2577cf937bfe79e500d766e56edcf  gcc/config/riscv/generic-ooo.md
! e0b13dc09c4cccdaca5e57fad46b6aef  gcc/config/riscv/generic-vector-ooo.md
! 90a6f68ec2557b16413f573595ce74d6  gcc/config/riscv/generic.md
! 81366d49e01df5540a08a8994ac8e383  gcc/config/riscv/genrvv-type-indexer.cc
! d65916d74c79d1101eb0c17723537421  gcc/config/riscv/gnu.h
! 64842c11599c26681c28f2f2cd3c0b60  gcc/config/riscv/iterators.md
! 72a82b13d5b374c0700be4a9e402884c  gcc/config/riscv/linux.h
! bcda2f5a4a2728d5f6bc53cbbd26f90c  gcc/config/riscv/mips-insn.md
! 6952defcc51372547e752ac9f0184fd0  gcc/config/riscv/mips-p8700.md
! 79624e7f5ec1520f8716e3bc6e8e1704  gcc/config/riscv/multilib-generator
! 71bb6b628401a63410f99976d969ed4a  gcc/config/riscv/peephole.md
! 16cf6e3ed290820f3a87012495b1227b  gcc/config/riscv/pic.md
! 73a8b9514cfb3f2b3a297f6e6641584e  gcc/config/riscv/pipeline-checker
! 894975812621cfcf22201e2ca4b93c6a  gcc/config/riscv/predicates.md
! fbba4e9f3f0e00cdc072f9a3d399d0d1  gcc/config/riscv/riscv-avlprop.cc
! 28bce4c8c28ba8acca9ceede4540540c  gcc/config/riscv/riscv-bclr-lowest-set-bit.cc
! 7f7d3639030a4672597f5ffcc2083cd0  gcc/config/riscv/riscv-builtins.cc
! 5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 84bf4f3e3dd8352b0c98c731547841d9  gcc/config/riscv/riscv-cores.def
! 165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
! c5d537324bd78e2ade1cf59d04fc1f54  gcc/config/riscv/riscv-d.h
! 6078aa631d1c71fd215d51e4edcec963  gcc/config/riscv/riscv-ext-andes.def
! 73412120c98ad39a53f2d6116616035a  gcc/config/riscv/riscv-ext-corev.def
! bdea5a038db730633426d4ab8652a37c  gcc/config/riscv/riscv-ext-mips.def
! 982f2f5023f638c594cd4100390ef617  gcc/config/riscv/riscv-ext-sifive.def
! 6aef0384f848e091b1f84d7e64ab667c  gcc/config/riscv/riscv-ext-spacemit.def
! 0d561344b80507521c8e686db17fd207  gcc/config/riscv/riscv-ext-thead.def
! ca88603cd61372d621963af0d282a93b  gcc/config/riscv/riscv-ext-ventana.def
! e8af52b8a6f7085bfb664f79b36b11ad  gcc/config/riscv/riscv-ext.def
! 83649e32f9d46c31da736b688a4020a4  gcc/config/riscv/riscv-ext.opt
! 8463b74f5d66e1a7f0d58a7ae087d8ad  gcc/config/riscv/riscv-ext.opt.urls
! 055aff307d7b174891aad40963ef1a9f  gcc/config/riscv/riscv-feature-bits.h
! 70f0932c77decbbcedce26f2f38b3a3e  gcc/config/riscv/riscv-ftypes.def
! 6fdf4beed9fb8574216b376cd1779eba  gcc/config/riscv/riscv-modes.def
! 846d400b827fb358869c936715c16c82  gcc/config/riscv/riscv-opt-popretz.cc
! 82f8cdbc37627ec1514ac6f802e92fcd  gcc/config/riscv/riscv-opts.h
! b8f6d36a9d7d3ef28a80c20bec990411  gcc/config/riscv/riscv-passes.def
! 8fcaaf812bb193e0fad76d6b5f82f2af  gcc/config/riscv/riscv-profiles.def
! 099a75556ecb2bf7380158582cae2022  gcc/config/riscv/riscv-protos.h
! 0f5bf394cade69aeff5c57f69d880d00  gcc/config/riscv/riscv-scalar-crypto.def
! c171108cfab16c74097a841489b04298  gcc/config/riscv/riscv-selftests.cc
! 41d585e61cee0deacc33bd07c93e79e2  gcc/config/riscv/riscv-shorten-memrefs.cc
  62b31689063eeeca8f0e7ae25da92d0a  gcc/config/riscv/riscv-sr.cc
! f57a4d1f0a5a49304e07ae38a6990bc8  gcc/config/riscv/riscv-string.cc
! 83bc8b8b85874456078c4c683d82a3e6  gcc/config/riscv/riscv-subset.h
! da26032fa71bbdaccc0766633e3f86bb  gcc/config/riscv/riscv-target-attr.cc
! 9e0044f17d6e8aea3d9c29d1461fd3b1  gcc/config/riscv/riscv-v.cc
! 23f9fe60c9f6f052bd55875310c01b0e  gcc/config/riscv/riscv-v.h
! 3d17a86fd1ba10efb8809c613d1eb6cf  gcc/config/riscv/riscv-vect-permconst.cc
! 5c3100beef34fe1879075f8cfb95e70e  gcc/config/riscv/riscv-vector-builtins-bases.cc
! 7fc09f50e292c52420537953650fa0de  gcc/config/riscv/riscv-vector-builtins-bases.h
! 4a25523a7d997f5ddf9f1164da651e71  gcc/config/riscv/riscv-vector-builtins-functions.def
! 99633c5e82aa1fc497802b59d54e23a8  gcc/config/riscv/riscv-vector-builtins-shapes.cc
! 2a2b16ff55b4e9c8265561eb12d0aa49  gcc/config/riscv/riscv-vector-builtins-shapes.h
! a6642c27cbc8f18cf3cab4881911ed3f  gcc/config/riscv/riscv-vector-builtins-types.def
! 8fe75d6009ec6dac9babd319503bb3f6  gcc/config/riscv/riscv-vector-builtins.cc
! 6f087b25674ebed60ebd0e55c4fe30e1  gcc/config/riscv/riscv-vector-builtins.def
! b65281b3d979c9c774d30d65281a07ab  gcc/config/riscv/riscv-vector-builtins.h
! 47eaa02f26ab10731d3808c4008a9998  gcc/config/riscv/riscv-vector-costs.cc
! 8c1680c1bc7e171e4992d3aa9ea64d18  gcc/config/riscv/riscv-vector-costs.h
! 4dd506c7e0c9b67fb2b6c5acdf4f44b7  gcc/config/riscv/riscv-vector-switch.def
! 75866c86ec05a7abe2fa3f55828938b0  gcc/config/riscv/riscv-vsetvl.cc
! 10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
! 85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! 93f111eaa1fc138aac0fc8cf4d666ff8  gcc/config/riscv/riscv.cc
! 07078d74a9a03a5ff125a7847cf8dff7  gcc/config/riscv/riscv.h
! 69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
! c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
! 5347f266751815cd3cb80c0de985c3b8  gcc/config/riscv/riscv.opt.urls
! fab1eef01628cdb4fc6f7a48edf3ff51  gcc/config/riscv/riscv_bitmanip.h
! 3458c159fa70b8544ae65132baa36477  gcc/config/riscv/riscv_crypto.h
! 919b77d98a332a298929861b56886aaa  gcc/config/riscv/riscv_th_vector.h
! cc0a878ac04b90ccd9fbf7a018c4cc50  gcc/config/riscv/riscv_vector.h
! 1f4b9062bebe7b602fd14e727d6d7e80  gcc/config/riscv/rtems.h
! e7f78ee77ae8bd53e7956fe2fcc08ea3  gcc/config/riscv/sfb.md
! 4d8c5cb8b6b14b70cf371eb6c7351259  gcc/config/riscv/sifive-7.md
! ef8111b151f28f36d377df7b23b6b46f  gcc/config/riscv/sifive-p400.md
! 2c11e3c37dd3e9b1a8f83c4920720c32  gcc/config/riscv/sifive-p600.md
! 8e357e68d22c0bf2e5463793d9c5d617  gcc/config/riscv/sifive-vector-builtins-bases.cc
! 5ff33a97f2dbb8ace0988a9736c5c046  gcc/config/riscv/sifive-vector-builtins-bases.h
! bc8a03f06cb925e5c1277e5ccd2f0314  gcc/config/riscv/sifive-vector-builtins-functions.def
! 656879fa6da6ce5e2212ef2a731ee479  gcc/config/riscv/sifive-vector.md
! a7dca5c8a6f1208b84f278bbe9cff066  gcc/config/riscv/sifive_vector.h
! f98eebccf69c387cbd748b7e7813cba9  gcc/config/riscv/spacemit-x60.md
! 86a3df83e7edc1f65f5b10577495d462  gcc/config/riscv/sync-rvwmo.md
! 7b84356b95eaf5fc2b52dd6311072ab5  gcc/config/riscv/sync-ztso.md
! a9148bc0751022fd1b34b55e04b8b47e  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
! 9dfd15290deb1da4511c5960a9f49292  gcc/config/riscv/t-riscv
! fe202105dd9e81b9ce8fdcc11d52c294  gcc/config/riscv/t-rtems
  97a182737ed075d29be4ab1e848de420  gcc/config/riscv/t-withmultilib
  0478f4e79601d91fb8ad8f210b304a7b  gcc/config/riscv/t-withmultilib-generator
! 457bc4a582b0b8d80c60ee135931f5c8  gcc/config/riscv/thead-peephole.md
  325f22596295559607b476e5a2a4d491  gcc/config/riscv/thead-vector-builtins-functions.def
  bcf728ad2379630774fd5bb529d4ee86  gcc/config/riscv/thead-vector.md
! 8e2dec23109b807810ee68a496d4390c  gcc/config/riscv/thead.cc
! 03801432922f48ba0343aa17544bdba7  gcc/config/riscv/thead.md
! a95321fbec5a4da32a9ee8145b8b0c6d  gcc/config/riscv/tt-ascalon-d8.md
! dcbac9d3c6831ff1cd18effca9c7bb28  gcc/config/riscv/vector-bfloat16.md
! 1efc7e76b1f8a6c41de01fba7e0d33b9  gcc/config/riscv/vector-crypto.md
! 604805ea8530b1a6391150e8388a63fb  gcc/config/riscv/vector-iterators.md
! 9602776b7d6d61285df5eaa5f40f4b53  gcc/config/riscv/vector.md
! 18d213c106fe52eebc74017d5ff892ce  gcc/config/riscv/xiangshan.md
! 39ba96197510d4ac114a827d7ffbf806  gcc/config/riscv/zc.md
! 01b0a0b8876ac0a4e6f9f00711ab8cc6  gcc/config/riscv/zicond.md
! d8e5244a78b41071cc1e0cafc3180db3  gcc/config/rl78/constraints.md
! 7b7c876420bfc606ea2233644fb6cf39  gcc/config/rl78/predicates.md
! c90cca4dab29ddc6dc57edf9338ad721  gcc/config/rl78/rl78-c.cc
! cf5e812e9a79fb52359bbbe481b92261  gcc/config/rl78/rl78-expand.md
! 6e8862478afdf43ffd2f0197fb30fe49  gcc/config/rl78/rl78-opts.h
! 9315f1451b42da00f152d6493ea02d75  gcc/config/rl78/rl78-protos.h
! 197bab45946ac41123728e07520a0061  gcc/config/rl78/rl78-real.md
! 64693fab4f10cd2849458dd596777050  gcc/config/rl78/rl78-virt.md
! 07a1dabd56479bcf7c93a89bd50ccd32  gcc/config/rl78/rl78.cc
! 619dc6299815cdf10ebe571a1e57eafe  gcc/config/rl78/rl78.h
! ebbceacded87efe37fb6bbc894f7f0d5  gcc/config/rl78/rl78.md
! 7549cde2462d8ce47201e563f43f72a6  gcc/config/rl78/rl78.opt
! 627f7814959fdb52d10a7da79edccf25  gcc/config/rl78/rl78.opt.urls
! 5c258b0f94ee73e8ae71fa8dd144ab24  gcc/config/rl78/t-rl78
! abc0cdce92f661e664fc8de0c36c56dc  gcc/config/rpath.opt
  1ba216c6712cc1a82121154d5193a339  gcc/config/rpath.opt.urls
! 37e2f43daf0bd87a820bfb374d6cada4  gcc/config/rs6000/40x.md
! 5f107dca9bc4dda682424e1c920e0e4a  gcc/config/rs6000/440.md
! 928c303f78d62f33becbee967a4fffae  gcc/config/rs6000/476.h
! 4f561c84eecbb637fd1924d612526da9  gcc/config/rs6000/476.md
! 042edad1dfb1db5d9acff6ef43eb14bf  gcc/config/rs6000/476.opt
  e1a9c8119beed7008786bcb91a9dfe0a  gcc/config/rs6000/476.opt.urls
! d1f2559e79bed250d030c4701d52f45d  gcc/config/rs6000/601.md
! b912a28f5ef467e22deef728d3d83b9f  gcc/config/rs6000/603.md
! ec68b0ff3863802f2f9160b535b38c31  gcc/config/rs6000/6xx.md
! 81d377b7be58de726a18704c73c00691  gcc/config/rs6000/7450.md
! 3003a4c1c8c42a953d32ef7f0cb600eb  gcc/config/rs6000/7xx.md
! cbcf88f781d3b1c5edd096738693a993  gcc/config/rs6000/8540.md
! 23e421c82ebbfa2eefdf48bcd530fd02  gcc/config/rs6000/a2.md
! a8b1f3ddfb1f6f99004ac2db6cd9dc74  gcc/config/rs6000/aix-stdint.h
! d0faac423dbdf9cf30ccf83ac9d2e60d  gcc/config/rs6000/aix.h
! 1fceb97e97a40dc3014fd5d2a8ab5d07  gcc/config/rs6000/aix64.opt
  d70f08b893e019d12b16dc9a70754ef9  gcc/config/rs6000/aix64.opt.urls
! 7a458de4c2e17a9a5c5b134cd5307283  gcc/config/rs6000/aix71.h
! 20f4005e48ef1b44aaa1abcda010edb0  gcc/config/rs6000/aix72.h
! f6a351fafc8d9c1ddd46b271f0c859c9  gcc/config/rs6000/aix73.h
! ae4bd752599ffdd2833c6e78d03d39f0  gcc/config/rs6000/altivec.h
! f03bdef1224a610cfb7130f3c687b87f  gcc/config/rs6000/altivec.md
! 059307efbb31814d946437a40ade09c1  gcc/config/rs6000/amo.h
! 2b409a82a1747675112a04705e01d157  gcc/config/rs6000/biarch64.h
! f83fd3bf0d9fbc30c9401eec549fdc2c  gcc/config/rs6000/bmi2intrin.h
! 161814e9f6f10782769302881ac26227  gcc/config/rs6000/bmiintrin.h
! ee17a95e2411ef6ef4f1588d17e2cf66  gcc/config/rs6000/cell.md
! 837f16df42ea04e41a4450e7f9ebe42a  gcc/config/rs6000/constraints.md
! abeb41de7dfa216c254877ecd48052f1  gcc/config/rs6000/crypto.md
! 841aa28da573ce031fe43ae0fb24bfd9  gcc/config/rs6000/darwin.h
! 8c9c110a4faa8e47a4c4caef834d7c1d  gcc/config/rs6000/darwin.md
! 8ef5306087b5e728b308cf63664b051d  gcc/config/rs6000/darwin.opt
  465e67f2fa0bad834639122551e17ab2  gcc/config/rs6000/darwin.opt.urls
! 471c1c90d29bbc60848dc1c9b242e893  gcc/config/rs6000/darwin32-biarch.h
! 55bc665ef0bfd0b8ede2200d532c97c4  gcc/config/rs6000/darwin64-biarch.h
! 310afd60022aced0cf74e6824ae8a624  gcc/config/rs6000/darwin7.h
! 5e4080b9a38fec828885e799b860dfac  gcc/config/rs6000/default64.h
! 382693a002735de2202840420cc2e9ca  gcc/config/rs6000/dfp.md
! 161237ed16645858c0b34890a99aab63  gcc/config/rs6000/driver-rs6000.cc
! 0549136ae4b1f8ff29a809c81aa0732b  gcc/config/rs6000/e300c2c3.md
! 91dc57683a2ee7948d5c5c11b0faf2c4  gcc/config/rs6000/e500mc.md
! 1bde2b9016622dafcaf79e5b7b3953a6  gcc/config/rs6000/e500mc64.md
! 70a6f3ab5e5faea2868d2c963cd7e1dc  gcc/config/rs6000/e5500.md
! c67300090a612ee867ad628909c56f58  gcc/config/rs6000/e6500.md
! 0db2906b867d84708065b398b4a811c9  gcc/config/rs6000/eabi.h
! 15081c6b9ef8e448ab734b27d223cb30  gcc/config/rs6000/eabialtivec.h
! 206308149a4e86618e893f50fd453746  gcc/config/rs6000/eabisim.h
! e00dcc6598129753beb15f65a65e522d  gcc/config/rs6000/emmintrin.h
! f384c63d298f5df4e18d668418244145  gcc/config/rs6000/freebsd.h
! a5ef460874a51ec6be224359047ed668  gcc/config/rs6000/freebsd64.h
! cb0864ce07c1de0b098513d35b320c20  gcc/config/rs6000/fusion.md
! 9c425a19c665d3ce1b3e733ac3bff0f2  gcc/config/rs6000/genfusion.pl
! 9196c1a9d87ec89a98bb2bd15464200d  gcc/config/rs6000/genopt.sh
! 8eebe42df0dde479ee57be3402547286  gcc/config/rs6000/host-darwin.cc
! 56f77c00dc0fe0821e295adc8c7bb41a  gcc/config/rs6000/host-ppc64-darwin.cc
! e2851e68e3cf5a2530acf22e54486538  gcc/config/rs6000/htm.md
! 7f20a5f026d75c1fa7703d9db06aac0c  gcc/config/rs6000/htmintrin.h
! 48b677adc79f0805eb737ff06c673161  gcc/config/rs6000/htmxlintrin.h
! a99d948e8d06e7754418348c976d8deb  gcc/config/rs6000/immintrin.h
! e4b02417cb4df9d5a76c80b1ff2a9f74  gcc/config/rs6000/linux.h
! 0a507b8eec6391ca9fa75de53d805c39  gcc/config/rs6000/linux64.h
! 235e303765b8162269663d6af8853c33  gcc/config/rs6000/linux64.opt
! 29455a0f359b87f59b8bcfc5bf1e6d61  gcc/config/rs6000/linux64.opt.urls
! 15a29c14042c17704cd788e9ec97f8b3  gcc/config/rs6000/linuxaltivec.h
! 6368ef27960f047d29859f35015459ad  gcc/config/rs6000/lynx.h
  0cc3c5f9101501b8253ce3176c3ffce4  gcc/config/rs6000/milli.exp
! bafcfaea28ea830127780e11ee8484b7  gcc/config/rs6000/mm_malloc.h
! 6e0671bcc17a9ce56b8bf4c08f887b32  gcc/config/rs6000/mma.md
! 666740adf812d1114cd095f0155311d5  gcc/config/rs6000/mmintrin.h
! 83a4c3ddfdabef774f4ae2987049a6d0  gcc/config/rs6000/mpc.md
! 0f91e4ac20f298ae22704f7b3d0560cf  gcc/config/rs6000/netbsd.h
! bfe4678a313d567e472d97e19340736e  gcc/config/rs6000/nmmintrin.h
! 03b509744d50e97b87a6349324188ee1  gcc/config/rs6000/option-defaults.h
! d4c9506d77d4a68bebbc7228c4253966  gcc/config/rs6000/pcrel-opt.md
! 15e1109cd8f34f22683336aa3b3f0948  gcc/config/rs6000/pmmintrin.h
! 7b80336e629dff0a72d4b03783162537  gcc/config/rs6000/power10.md
! 3f7a21b2e747099abed1401a53cf1fe7  gcc/config/rs6000/power4.md
! 48cd7a00abc65a826b1bc6a305e28cc6  gcc/config/rs6000/power5.md
! f194ac6c21f3a8ee0848c0c909deb4ad  gcc/config/rs6000/power6.md
! 9bb6b6656ce18db447a2a276e1876767  gcc/config/rs6000/power7.md
! 74075567f6a735cc339b2d38a3c2d26f  gcc/config/rs6000/power8.md
! b534d6922b2ac8fcdec1c19d8a7bdb13  gcc/config/rs6000/power9.md
! c79696c3d7958935d4122048b9bb5f92  gcc/config/rs6000/ppc-asm.h
! e97302b0144b183500470a0f7f84ad57  gcc/config/rs6000/ppc-auxv.h
! db237fc1717a4075e7b9480205a32fd5  gcc/config/rs6000/ppu_intrinsics.h
! 25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
! 63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
! 8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 9be252ce87cecf1829cb579ecd696303  gcc/config/rs6000/rs6000-builtin.cc
! 5f55438b54e629713ba06eeb9a75bd37  gcc/config/rs6000/rs6000-builtins.def
! 98dbd8a4d4090dc44a4cc9a5e0f019e4  gcc/config/rs6000/rs6000-c.cc
! c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
! 094faf83d43883def20529728178ccb0  gcc/config/rs6000/rs6000-cpus.def
! 7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
! 1ac6ae1e7d6d83d76667769f7166b9a7  gcc/config/rs6000/rs6000-d.h
! 49cf5c100ee20edb22f4390541532f68  gcc/config/rs6000/rs6000-gen-builtins.cc
! c165dfc83b2c9e75d3906f429e76a3fa  gcc/config/rs6000/rs6000-internal.h
! 68da03c0d0c1dfafebf4ba706e6d3ff9  gcc/config/rs6000/rs6000-linux.cc
! 4768cacdca0b901f6cb649726cca5eeb  gcc/config/rs6000/rs6000-logue.cc
! 108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
! e8a3118f8f5a2aa7f988ed45bae99eeb  gcc/config/rs6000/rs6000-opts.h
! fab9961e9c2dca827c0ac5e7b100d398  gcc/config/rs6000/rs6000-overload.def
! dc46fa102175551da2f4ce2ee5c6435c  gcc/config/rs6000/rs6000-p8swap.cc
! da37007432adac35e44d7592e307e64a  gcc/config/rs6000/rs6000-passes.def
! 384645a6c72587ac7501915a0c737e64  gcc/config/rs6000/rs6000-pcrel-opt.cc
! d3a1c98fd13be04e1250b073cb8dcef2  gcc/config/rs6000/rs6000-protos.h
! 9e39e759376eb97f2a56ebfc28c8d149  gcc/config/rs6000/rs6000-string.cc
! 505106a6c6516140530fe5f55a87e44e  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! bcf781e9687d0164eeab8e20a7ed9eb7  gcc/config/rs6000/rs6000.cc
! 838ab0dea9bee1b30cbf4cb875917f74  gcc/config/rs6000/rs6000.h
! a575dd5c5592c7d23a9b53b985c01120  gcc/config/rs6000/rs6000.md
! fc53ceb489fffb4124155c557c54157f  gcc/config/rs6000/rs6000.opt
! 80708ca71755b0d8d354f113f0617617  gcc/config/rs6000/rs6000.opt.urls
! 89d4cadf8216efa86b72204e660cc4b0  gcc/config/rs6000/rs64.md
! d57d0eb0a8e2193f5cef2aaf1ad6d722  gcc/config/rs6000/rtems.h
! 35eccfb56f965c2de296ac00355253e0  gcc/config/rs6000/secureplt.h
! 0a803e7432938644d0614c5d9ee60670  gcc/config/rs6000/si2vmx.h
! b1a1f1ea8636fe96381989b926619397  gcc/config/rs6000/smmintrin.h
! 016514c870054ecd799330bad9520a9d  gcc/config/rs6000/spu2vmx.h
! 0955c6a2d639cf6eaade88aa538b81b8  gcc/config/rs6000/sync.md
! e8c76038df323d77e90f69c78138b1fd  gcc/config/rs6000/sysv4.h
! e51499a69ac94adadb730c6c5491b97d  gcc/config/rs6000/sysv4.opt
! b1ed936b1a3e7303c34f1e54ec933230  gcc/config/rs6000/sysv4.opt.urls
! 70c9ce454104e71a94ca85d02060e59c  gcc/config/rs6000/sysv4le.h
! 38641efeb21dd097d73b2d9208aefb09  gcc/config/rs6000/t-aix52
! 889ba001a8d4b18df30d57995b9a1e9e  gcc/config/rs6000/t-aix64
  636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
  f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
! 5725355a66b379e29d3ec55a25045ffc  gcc/config/rs6000/t-fprules
! 3e2840a92c440dbfd0d8e3b935f0aa24  gcc/config/rs6000/t-freebsd64
  7708df4fc7a5677f2dd3097c7bb5b338  gcc/config/rs6000/t-linux
! d04b1416a633dbf37975dc4914996e9e  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
  60f26523152f6a061a12cb17e987de12  gcc/config/rs6000/t-linux64lebe
! 67ba37d224ed671d3d5a7d84b98f0fe5  gcc/config/rs6000/t-lynx
! 287cc6d5167b8f89cae71a8367b012f3  gcc/config/rs6000/t-netbsd
! 934c9ff3e5c194de575700d2828c641b  gcc/config/rs6000/t-ppccomm
! da6d47ca88070a3388ae40f0da32d174  gcc/config/rs6000/t-ppcendian
! 6aa8ab7b0735bddaaaab850cf2a3f74a  gcc/config/rs6000/t-ppcgas
  1b8aba690a39464c4ea9c647d73d6983  gcc/config/rs6000/t-ppcos
! 8f874ef5fe30a540406de752ccc0b0c0  gcc/config/rs6000/t-rs6000
! 8aec9b169eb0b47d03b69fe084aea536  gcc/config/rs6000/t-rtems
! 81f062ca7f2cb61ee4cd48da4066a593  gcc/config/rs6000/t-vxworks
  f11925c88524d2fd457bf77944da1302  gcc/config/rs6000/t-vxworksae
  3f0601a68de7a0aee8264b538228d943  gcc/config/rs6000/t-vxworksmils
! 1537d39f00940796f424d5484f01a94f  gcc/config/rs6000/titan.md
! da79297ad0c4c71553a67c1c8659d7f0  gcc/config/rs6000/tmmintrin.h
! 88417b4d808d053378108ca755b5e5ce  gcc/config/rs6000/vec_types.h
! d25d99ecfc5b7d30303b228b0b6b2b9d  gcc/config/rs6000/vector.md
! a8c5b69d2174a02ec5fceaf382d995f4  gcc/config/rs6000/vsx.md
! e01b246a8cdac36ad716112dbba238f9  gcc/config/rs6000/vxworks.h
! 879b35d5e026800c40c13e663df8c5f9  gcc/config/rs6000/vxworksae.h
! aa45c89828fac6551d8d57309cf26ec0  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
! b9e738c35994ada5c02900a6e678b695  gcc/config/rs6000/x86gprintrin.h
! 9ae962ab0c075fe7a6bcd029f96f41f2  gcc/config/rs6000/x86intrin.h
! e37cfdac5f4b92aac6cd0fbfbb97bd8f  gcc/config/rs6000/xcoff.h
! 8fcc5623d6cebfe1cae3796824258927  gcc/config/rs6000/xmmintrin.h
! 72e453813ce37399211efaef724554e7  gcc/config/rtems.h
! 6a9ab905fd4d638dc60efc778b54c3e0  gcc/config/rtems.opt
  63d27d06289d5f9814baae9a6feaa996  gcc/config/rtems.opt.urls
! f67f80a8f1bd3161efb391f094501313  gcc/config/rx/constraints.md
! 4616a7d31fd4d03afbea82ed634db44a  gcc/config/rx/elf.opt
  495c9b539f4b3f5645b59d1084a92957  gcc/config/rx/elf.opt.urls
  84ae77475029b49553276e3d7ed74cec  gcc/config/rx/linux.h
! be88b902c0fc07fc260a843e527ad245  gcc/config/rx/predicates.md
! 59ddeb68971245eee8a59e9be4929548  gcc/config/rx/rx-modes.def
! c7cc18c3c6e80f769c4e27296c120108  gcc/config/rx/rx-opts.h
! cc1176df362777967ec78fe3d96e72a2  gcc/config/rx/rx-protos.h
! ae726748d180fff39a94bdf7ef28615d  gcc/config/rx/rx.cc
! a941959b1d010160d6e46cb0c0688ad7  gcc/config/rx/rx.h
! af202939e77f64a897608f3ee32327c4  gcc/config/rx/rx.md
! 0329c06217618ce2a83cd6bbd4458da8  gcc/config/rx/rx.opt
! 1823f8ae7b80bcaf2f3428c53ab91c64  gcc/config/rx/rx.opt.urls
  032cf36abc28f171fc24229e32796402  gcc/config/rx/t-linux
! 1eda7db55de98b3960fa4105d31c529e  gcc/config/rx/t-rx
! 03b77d73823fa1f9bfb7143d562835e4  gcc/config/s390/2064.md
! 93969dae64b2f8ab18f3516a4bd24df2  gcc/config/s390/2084.md
! d1ec3fe7ea1ffbba709fcaf32aea2477  gcc/config/s390/2097.md
! 907ad0f4b6f84d87f0e69024fa661a72  gcc/config/s390/2817.md
! 5c0ff3e449c0e7dc3fb3feb5f9dcd1ae  gcc/config/s390/2827.md
! 321c92d5ec0a46cb781faef7e80e1990  gcc/config/s390/2964.md
! 438db9bfd571192a5960c88986d469d6  gcc/config/s390/3906.md
! 4af2cdfb4d840e6ab6d623421de4bc22  gcc/config/s390/3931.md
! c4c00856a08c0d60f2bc37a7e8131d16  gcc/config/s390/8561.md
! 6c30e97f8b0b77c0e104670b81d73aa6  gcc/config/s390/9175.md
! f1d87cfca879544bdb5765380479af90  gcc/config/s390/constraints.md
! a4408e7d5170553dc429758d86c1d771  gcc/config/s390/driver-native.cc
! 82325d9b30c7bd62ba24065c4795d4e5  gcc/config/s390/htmintrin.h
! 281c1f3b75b0ccba5ed2e9e47c6bb328  gcc/config/s390/htmxlintrin.h
! b70b8b7baff6c1f7de2c41aea73084dc  gcc/config/s390/linux.h
! 035edaac81716ee8e29b1f33196c2ac8  gcc/config/s390/predicates.md
! c5b1f29cc81c356a956641b682c1de68  gcc/config/s390/s390-builtin-types.def
! af439abfd32411e9b66d4252868c7293  gcc/config/s390/s390-builtins.def
! 420cb76d14f417d20e52b06bd071723e  gcc/config/s390/s390-builtins.h
! 697142a02e00f34468d3a5efd3212b93  gcc/config/s390/s390-c.cc
! 2bc894ab0e0a48302ed8c86a0121ce7e  gcc/config/s390/s390-d.cc
! 018d83fc197f2be8955c0b9c85f604d3  gcc/config/s390/s390-d.h
! ea440bcad8a276afecfcff0ce6aae6fe  gcc/config/s390/s390-modes.def
! 14c40f85d99aad740c052f55703baf70  gcc/config/s390/s390-opts.h
! aa396b24681954cbcd0cd64bf19d469c  gcc/config/s390/s390-passes.def
! 4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
! 6872d93a3552eb43cdca7fe5001f5dcc  gcc/config/s390/s390.cc
! c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
! 444b1475af5bc7cb791449a4e0359625  gcc/config/s390/s390.md
! ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
! 90a97a731513f3119bb12e022497e9ab  gcc/config/s390/s390.opt.urls
! 07efe01a921b4fb261d6e59abf21a268  gcc/config/s390/s390intrin.h
! aa64c0eb4310add8b8e0d1bba0537540  gcc/config/s390/s390x.h
! 5b66afdee0c1d8a1d41b95cf731492ac  gcc/config/s390/subst.md
  551847ee4c38fa1a7e95fd93cdb32f17  gcc/config/s390/t-linux64
! 16ce1fc97d4445d3e77bc0f8be121c6a  gcc/config/s390/t-s390
! 1a98dd23822e07fe6f355626f930b7c3  gcc/config/s390/tpf.h
! 3c4521f48b40967fc37e74e960257cb8  gcc/config/s390/tpf.md
! f5e56d5ff903f46152f37df8bef42eb8  gcc/config/s390/tpf.opt
! 7f0f09b66533c13922e5fc6da2950d60  gcc/config/s390/tpf.opt.urls
! 6e57eb27fae922ae85136ef1822dd1c6  gcc/config/s390/vecintrin.h
! ac2fbb945245925177ec51f89c3b712c  gcc/config/s390/vector.md
! b678ee5bccc44afcfafc641ff868a547  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
! 863cb3cd0d518ad77cd0acb858da1c2e  gcc/config/sh/constraints.md
! 376ad2c04eae328088f98c29c146e5a1  gcc/config/sh/divcost-analysis
! 80af0fa1d884568e3a05139cf5cc0347  gcc/config/sh/divtab-sh4-300.cc
! 7bb50ae0ccab92da680b0c5aa0a1cabc  gcc/config/sh/divtab-sh4.cc
! a3dddba3b2790bb62c70ace434e5e558  gcc/config/sh/elf.h
! c0c9a2272fe77183ad8c76a49be457da  gcc/config/sh/embed-elf.h
! f3bf6262de9818c3c91f246d6eccc55d  gcc/config/sh/iterators.md
! 5e91d7c1f9ec4cdb98fa0be7bd8c0f8a  gcc/config/sh/linux.h
! b0a510bf1f58701f9674f788dad82ea8  gcc/config/sh/little.h
! 1660d28e811d351ce75968a0101a4ce2  gcc/config/sh/netbsd-elf.h
! 28445836fce04f79af025f75d08dbefa  gcc/config/sh/newlib.h
! 0caf9a8a46858ee7951c45e38c2f8ca0  gcc/config/sh/predicates.md
! e9dbd0492efb19a466f4e3fc7d56ca09  gcc/config/sh/rtems.h
! ad3ebe150b650b4f81c17838c6fb7d44  gcc/config/sh/rtemself.h
! dfead17f6b810bf033f9fd649084b362  gcc/config/sh/sh-c.cc
! e6c6b89f602f5dabaaff761b0db28d25  gcc/config/sh/sh-mem.cc
! db7b2e9490086922f942532dd544a0f6  gcc/config/sh/sh-modes.def
! fb8513c0c66fb1a6e8d5cde7b08975c5  gcc/config/sh/sh-protos.h
! 4f0dc68143f7ce6e3a71515c53599217  gcc/config/sh/sh.cc
! de5433ad4ca4e28cd54d4ff7e2862435  gcc/config/sh/sh.h
! c224a78f871d5a6955c504366fcf9499  gcc/config/sh/sh.md
! 10ed22d9ca9d7ec14fcf6b1a936fbf8d  gcc/config/sh/sh.opt
! 8bfaebe9773073f4977ba6b37f472071  gcc/config/sh/sh.opt.urls
! 95f5ec03805045e1d73c1e77a70ac975  gcc/config/sh/sh1.md
! f7f855e92d56b1d5449835012d70c86b  gcc/config/sh/sh4-300.md
! fe9e266cedb0e7598f71d98357d80284  gcc/config/sh/sh4.md
! 431334859dc2f2fb4096f006957cc6d1  gcc/config/sh/sh4a.md
! cfdd1bb6ebe601b4ecc5ae546c81c25a  gcc/config/sh/sh_optimize_sett_clrt.cc
! 1f488998c272a625bd35d8bd0f67d744  gcc/config/sh/sh_treg_combine.cc
! 3028c82ddb0ffa9963584a28c0b6cbf7  gcc/config/sh/superh.h
  06158b0f1e33501120db330d7734228d  gcc/config/sh/superh.opt
  5561a4532b44f8176f955ae87b996363  gcc/config/sh/superh.opt.urls
! 9a912ccb4157dca7a96c2b5ddd62f6d1  gcc/config/sh/sync.md
  88130a11ca77c8572260539cc46ef7ac  gcc/config/sh/t-linux
  ad88281b142c81e6c7017a842c281d5f  gcc/config/sh/t-rtems
! 38c49facd08b494929a0e44e6ac7a08f  gcc/config/sh/t-sh
  9f0e9638f478c08d204c5dce468c95ce  gcc/config/sh/t-vxworks
! 0504ed1a16bc44d0a761ec052476199f  gcc/config/sh/vxworks.h
! aab2cd881519c0970cb08be62dd3fe97  gcc/config/sol2-c.cc
  5c26c2321d68d4724b0d0076803c6b89  gcc/config/sol2-clearcap.map
  73dd11dea23019ab25cbbd70968694e7  gcc/config/sol2-clearcapv2.map
! fb6eddf49bf33b95bff884782f73dc7d  gcc/config/sol2-cxx.cc
! 7294dbc57d5bab37880896fbb9fbe893  gcc/config/sol2-d.cc
! 1851d233f5874c6c8995bfc6716529b0  gcc/config/sol2-protos.h
! 605e41b649128712bf3488c99aa03901  gcc/config/sol2-rust.cc
! f8b2917f3bac10c9a81564048cb3f9f6  gcc/config/sol2-stubs.cc
! 0aea82043a2789e23591a9cf906946d3  gcc/config/sol2.cc
! 15a9016bbc3b4bb11e27e637f6e82273  gcc/config/sol2.h
! 50796270314632458d17ee73a2cd660d  gcc/config/sol2.opt
! 4667efab34b488f96b36aff3e7c6c90b  gcc/config/sol2.opt.urls
! 9b6245dbf34b906e35664b2135d3d709  gcc/config/sparc/biarch64.h
! 818ae981defa95f6482131d6f51ac789  gcc/config/sparc/constraints.md
! bc82d702b596981bb91f981bbbc6233c  gcc/config/sparc/cypress.md
! e45de214cf1939cc532d11bc572c1f50  gcc/config/sparc/default64.h
! 8b68c1fc27e877f16802dfb36e63e963  gcc/config/sparc/driver-sparc.cc
! ec18494fb2f7b84b3cfd91563d0c15f9  gcc/config/sparc/freebsd.h
! 76eaed7e11b7466b1d7f3909f63ebbf5  gcc/config/sparc/hypersparc.md
! 317a3821a6e057d7e79a896e8aefa285  gcc/config/sparc/leon.md
! ddd74ec4e215155b9bd7fcf86cb557d3  gcc/config/sparc/leon5.md
! e7283cc71135321f648a2d8b735fd198  gcc/config/sparc/linux.h
! 3e14e90bc54d72b05ed06f3dbf24fcac  gcc/config/sparc/linux64.h
! d8eefec8a2e47b94d9630ff012104529  gcc/config/sparc/long-double-switch.opt
  4d77ec43ed4c960c7b17df26f8ad8add  gcc/config/sparc/long-double-switch.opt.urls
! e9a80477655a2f8a6508f965d1561c04  gcc/config/sparc/m8.md
! 646ddb2ff5fef9e04757cb4b9984470d  gcc/config/sparc/netbsd-elf.h
! 7b6a871c31dcffb97d278831b594bc28  gcc/config/sparc/niagara.md
! 206b5ac2f53adb91c87ab2efd0e608e9  gcc/config/sparc/niagara2.md
! 4d1da9c2424755c53774c180a050a673  gcc/config/sparc/niagara4.md
! 6571584f4da8c99020f5ee8f32e23f3e  gcc/config/sparc/niagara7.md
! a1c9987d514eacbf834fccc97fef96d2  gcc/config/sparc/openbsd1-64.h
! 64fe279e7a27fef34a421155ee183359  gcc/config/sparc/openbsd64.h
! 2becc8854942c6d1c3d3dd32d69fbe75  gcc/config/sparc/predicates.md
! 0e3ca8313908d01701f4bca0bbe21809  gcc/config/sparc/rtemself.h
! 0bc4c13bde4fa8d08553cee5665ba28c  gcc/config/sparc/sol2.h
! 658e923ccceee24531666bb5c16ba3bd  gcc/config/sparc/sp-elf.h
! 1044ce82c4661c68f92349547f5431d1  gcc/config/sparc/sp64-elf.h
! 00ea42a9d0e99fa77faecdc46e0a1c44  gcc/config/sparc/sparc-c.cc
! bb5d56554b34390aff9de617dadbf3a6  gcc/config/sparc/sparc-d.cc
! 9986ffc2940b6d63c4612c12bae2e3d2  gcc/config/sparc/sparc-d.h
! c08812561648d9be8b2c465101f02f55  gcc/config/sparc/sparc-modes.def
! 0e6d2d27c24d8850325e5f39541238c9  gcc/config/sparc/sparc-opts.h
! 710bcf4b6ac9924f665a6ed578c037f2  gcc/config/sparc/sparc-passes.def
! 24d69dfb87c13754d1f394397cf82632  gcc/config/sparc/sparc-protos.h
! f38e54026c1e92a40ed859913c7b01ec  gcc/config/sparc/sparc.cc
! baabc77cf540cfecc78f116e0b744ebb  gcc/config/sparc/sparc.h
! baa4d437af36181c641fd909d270531a  gcc/config/sparc/sparc.md
! d35b9f07de59a46cdbdd2bfb5aefaa3e  gcc/config/sparc/sparc.opt
! 7989b30c48125e3c3acf6b37e76bd44f  gcc/config/sparc/sparc.opt.urls
! 9f81c8d12f43312c44cdc761076ad0bc  gcc/config/sparc/sparclet.md
! a7407ca22825387cdc231ae6e63d1e81  gcc/config/sparc/supersparc.md
! 08a50a355fea2f1c48da944343f27c90  gcc/config/sparc/sync.md
! 7e0509f0347acb6f60942b03df7ec340  gcc/config/sparc/sysv4.h
! a3cc0222ff55c81de55c43661319869e  gcc/config/sparc/t-elf
! 5b3819575d3b9675fb57bbca7f948ae9  gcc/config/sparc/t-leon
! dc254552328f40c4458f00f10abebd71  gcc/config/sparc/t-leon3
  4a7d3f368a24d549fabaafbe44fcb134  gcc/config/sparc/t-linux
! 7693ced3f09f57dc05ff0e51917c5280  gcc/config/sparc/t-linux64
  75987b7fdc6fa9c9ff2108ff1003e6d2  gcc/config/sparc/t-netbsd64
! e97bf9b24c45359a2f9288f392557974  gcc/config/sparc/t-rtems
! 206a022a0c080a59b8ced70ccf86cd4d  gcc/config/sparc/t-rtems-64
  511770bb20c2707fabd4f231ce8b83cf  gcc/config/sparc/t-sol2
! 808e7abc64ab41e568ed9b2b3d3fe5bd  gcc/config/sparc/t-sparc
  b04597637b0c08dd3e6d1a40c43e76b4  gcc/config/sparc/t-vxworks
! 7d0f96092d6a3d2ceee5a3174b6a2209  gcc/config/sparc/tso.h
! e4928c65b51ce87fbbf72a83cf52a98f  gcc/config/sparc/ultra1_2.md
! f08fde0faed6d5bd2e8ca2eaf725d3ee  gcc/config/sparc/ultra3.md
! e72717e37374308a7cafba07000cb2c2  gcc/config/sparc/visintrin.h
! af7cbbb73703105f16deabe09027ecda  gcc/config/sparc/vxworks.h
  5e0da0cb45fdd1424679c054727e1bfd  gcc/config/sparc/x-sparc
! 73da47f483b7d20906287bb73759f6c9  gcc/config/stormy16/constraints.md
! 45ada8c99134b9ceb75aa25b8e3f2130  gcc/config/stormy16/predicates.md
! b45435094a91c9eec80ff3a7eb142b80  gcc/config/stormy16/stormy-abi
! 8567f7697276e91fb78ecf8d79c8c227  gcc/config/stormy16/stormy16-protos.h
! e8e8e9d9ac77a373e64a4713263b87e2  gcc/config/stormy16/stormy16.cc
! abde77f75ec4cefb2f0eb3d2c6cf77b7  gcc/config/stormy16/stormy16.h
! bbad5b8a70d79255de83d544195f0790  gcc/config/stormy16/stormy16.md
! 51840716cdce43e88ec11c16eb350360  gcc/config/stormy16/stormy16.opt
  83f5016198e7f4905149f32898b70e29  gcc/config/stormy16/stormy16.opt.urls
! d19ed9ef1a788e81cff50106a06c6236  gcc/config/t-darwin
! 5e2dc1428bcfb476145dd18ff2a20a23  gcc/config/t-dragonfly
! 9bfd1e245845b2e6709d295356d9cb05  gcc/config/t-freebsd
! 17678c616367e79552df17c67ef6e73b  gcc/config/t-fuchsia
! 0dee96dfcf349aa797423891fa383b8d  gcc/config/t-glibc
! 10bc0418e624260adf72e24c71ccbb3e  gcc/config/t-libunwind
! 79aa454b59feeaceac3201fe12d4c947  gcc/config/t-linux
! b8ba776d5b2f46cbc54fa5140207dd1f  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
! 3879bac7c165db857737f25e4f1dfbe9  gcc/config/t-netbsd
  1aacff07575e71ba693f03e992cf4e49  gcc/config/t-openbsd
! d798d80089e236fd6882e69f3253e858  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! 700ed082195f3a9f58bc52b39360d161  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
! 21160c2abe49034807aa8c1d3ac4de10  gcc/config/t-vxworks
! 2090a7ede6d1ade4f47049a0ff778a15  gcc/config/t-winnt
  17fd5cabcc31b720b23bad47cf7fe84c  gcc/config/tm-dwarf2.h
! 3e7d3599fcb5ac78963a9cb9b2ba1451  gcc/config/v850/constraints.md
! 6e29952e4b6d2086055ca69745f2424e  gcc/config/v850/predicates.md
! 3e705ffc62832fbb0486eeb54ab7e493  gcc/config/v850/rtems.h
  41b5d5e91cc905b1e3ba5de47db5f9c6  gcc/config/v850/t-rtems
! 0e7ffa082fd30c8695f17c7194d8057b  gcc/config/v850/t-v850
! 1cd85a202b27c51f1b2f118d5a5a0fce  gcc/config/v850/v850-c.cc
! ec39b49d28f8fa6ddcb557e0fb4cff61  gcc/config/v850/v850-modes.def
! c0eb58d74e789c66c206c5b449a1bb2e  gcc/config/v850/v850-opts.h
! c90feae4dc229fd768d6878a76dfdaf3  gcc/config/v850/v850-protos.h
! 06dccda38b7e87c7353448e1074cb5b3  gcc/config/v850/v850.cc
! 08cf605028683a2d3dbca9f092c2c8bb  gcc/config/v850/v850.h
! b629ef0cf84f9ef283531894fedaafd4  gcc/config/v850/v850.md
! e8ebe9a5424ed0ffed76cc88afcd41a4  gcc/config/v850/v850.opt
! 33a2c1a7efd99fed074b6e8bef8e0d75  gcc/config/v850/v850.opt.urls
! b55a79e904d7bbb3894641908def0bc7  gcc/config/vax/builtins.md
! 0884e1ab0679a8f449e7ede0b4ace6e7  gcc/config/vax/constraints.md
! 17424c78d2c99dfdedc917b9c3b95ac7  gcc/config/vax/elf.h
! 466afbb0aa9b805023728e566c8e55e5  gcc/config/vax/elf.opt
  ffe8c3dbf2e5ade855212ca387dfd0ac  gcc/config/vax/elf.opt.urls
! c684a36c8d565777dc40e1ae3ba54892  gcc/config/vax/linux.h
! 9726a6591936975a3c7b06146ea94b6e  gcc/config/vax/netbsd-elf.h
! 2a309b5249865c7810f66965a77ea977  gcc/config/vax/openbsd.h
! 4a760b1281c1aeb161d1eca86aa39677  gcc/config/vax/openbsd1.h
! 8a504feb45239812d5d6d1365e1c93d9  gcc/config/vax/predicates.md
! e6b7f2881e994ba36a5d4c0cef76e01e  gcc/config/vax/vax-modes.def
! bf9fe0224bba330c7a3463ae86b8bf7f  gcc/config/vax/vax-protos.h
! f74d2ced1f0457e89b45ae2c7750a47a  gcc/config/vax/vax.cc
! fb9ccdbabb11cadb867f4a1b06d19211  gcc/config/vax/vax.h
! 3e6bcaa1860e1bf31f1be55de6b6e3ea  gcc/config/vax/vax.md
! c7013330181453774d802642df37d913  gcc/config/vax/vax.opt
! 6b9aaec7f058b5b0ddbc9c5cd1f028c3  gcc/config/vax/vax.opt.urls
! f3e64f50532fcd26c0ddd45f2a5ba1ca  gcc/config/visium/constraints.md
! dcf10059c5ded1ecbf1dd22a55284cb5  gcc/config/visium/elf.h
! 30a28c7956b8371fe34677b89bcc5a56  gcc/config/visium/gr5.md
! 85301de0eb1e68459ffb0f222581c2dc  gcc/config/visium/gr6.md
! fcdd01c58b878d656f05665edf43bcec  gcc/config/visium/predicates.md
! eae6633cb30feefe303f0440901317e0  gcc/config/visium/t-visium
! 1d7a8a157ef4d5ca01dd9673368dc8c7  gcc/config/visium/visium-modes.def
! bd2dbcd29207d6720a2bf7fefa19a120  gcc/config/visium/visium-opts.h
! d6cdac7858d08b8cead2d28a66661275  gcc/config/visium/visium-passes.def
! f8a0009eac88f5ab515601ae54b55cb1  gcc/config/visium/visium-protos.h
! 822831e7b5f292deaee34d44008ce23a  gcc/config/visium/visium.cc
! 328d4024b64b9a4b2f4203f0f80e02b6  gcc/config/visium/visium.h
! 104eb550ddf9cc976851bd4d1e3e9d7d  gcc/config/visium/visium.md
! 3cff36cc3705e28c0fe358569d10ed56  gcc/config/visium/visium.opt
! 7a0d924f742d55d1f16c844de561f075  gcc/config/visium/visium.opt.urls
! aa7aaadd68d34888760a4211e46f08aa  gcc/config/vms/make-crtlmap.awk
! 45d0e4dd9c352329976ea74a927e1147  gcc/config/vms/t-vms
! d1ca39da669836b595db0004d8645cd8  gcc/config/vms/t-vmsnative
! 6ead475077be4f1e57a176879a2e0b83  gcc/config/vms/vms-ar.c
! 61b971cb1c34b9f03fd08f65ce5a7bea  gcc/config/vms/vms-c.cc
  c4603dec4151d376a2092ed7555c06d7  gcc/config/vms/vms-crtlmap.map
! 5f11a0745b8d07ef3d39481175e0a633  gcc/config/vms/vms-f.cc
! d9d569d1ab5943fa92d094fbf93e50a4  gcc/config/vms/vms-ld.c
! f5b80feecd86600afb44a66247dd6fae  gcc/config/vms/vms-opts.h
! e98fe0b0d84ec790b9f655d1674e58dc  gcc/config/vms/vms-protos.h
! f2caf80293ce10d06176ef71e44c8b0c  gcc/config/vms/vms-stdint.h
! 69741391f9975d09233f411c486fc261  gcc/config/vms/vms.cc
! 76eb950dc973b4807d828a286ecab3ea  gcc/config/vms/vms.h
! 14a81459406b3ea6d3e25c68905a2295  gcc/config/vms/vms.opt
  4cc4a480573474816840755220793eea  gcc/config/vms/vms.opt.urls
! 0131ec30118dce0e850f95bd56d74733  gcc/config/vms/x-vms
! 1739b1102621ee9bb19b4b21262af91f  gcc/config/vms/xm-vms.h
! 48fef6e51839e7fc52539605a5905ea8  gcc/config/vx-common.h
! d8d348886e18f3f4d0e4d5e3cdbab411  gcc/config/vxworks-c.cc
! c565a3f7c43348a565a1605ea731b8d1  gcc/config/vxworks-driver.cc
! b89a4346b6702c52ad00dd306499d401  gcc/config/vxworks-dummy.h
! 9e2adf26bd93b73fe8f6739f28bfd46e  gcc/config/vxworks-rust.cc
! b78589133088c91d11fd32f7d462edf3  gcc/config/vxworks-smp.opt
  3476c374b6049ca2b3e35e6db0261dc3  gcc/config/vxworks-smp.opt.urls
! efe651fefed822acd4237bb025cb3565  gcc/config/vxworks-stdint.h
! 593a177aa59bd59157c21460946e04ab  gcc/config/vxworks.cc
! 0a5b4e36490dd463718f4d33722b25c2  gcc/config/vxworks.h
! debf4738e76f8015e074d08e09ec4879  gcc/config/vxworks.opt
! 9769aed7c4ddd277f27419583c35a522  gcc/config/vxworks.opt.urls
  36a893b52ae4d79dd9eb41107ead34be  gcc/config/vxworks/_vxworks-versions.h
  2c7fb7482d87758a9305ce4fec4c94ea  gcc/config/vxworks/_yvals-wrapper.h
  83f08d69839ac4c7dc87a99be6c69a2b  gcc/config/vxworks/_yvals.h
+ cb5431ce4d1c939927f68c86f316dcde  gcc/config/vxworks/base/b_NULL.h
  9e122a12d3e14f20967d135228bf88dc  gcc/config/vxworks/complex.h
  49b7fa25b0fb42a6ae7a81eddfed84cf  gcc/config/vxworks/inttypes.h
  4e93f0754151b93c5a74975e7d3cc3b1  gcc/config/vxworks/math.h
  6844198023015462d685c40332394d86  gcc/config/vxworks/setjmp.h
! e92e729549647c0112a0f19b6c0e0a98  gcc/config/vxworks/vxworks-predef.h
! a219c55e070e157b7e641e6e777efedc  gcc/config/vxworksae.h
! 08799a3996a59f45606c7ceb4991ca55  gcc/config/winnt-c.cc
! 3cb868c65fb9ce79204c1d3a4f5b7986  gcc/config/winnt-rust.cc
  5cc0a69d6149e22cb7ea38c2206a2af3  gcc/config/x-cflags-O1
  459b5094b535d46dc221505b9407603b  gcc/config/x-darwin
+ c95bdaddf0553f4e23f345c8662b75f7  gcc/config/x-freebsd
  6f4ad358c209ab9f624d9537b4f0be78  gcc/config/x-hpux
  27f861c423e98f281006be5bd86283ef  gcc/config/x-linux
  17f9168a86db5596e32e2a9091f99d7f  gcc/config/x-netbsd
  622a11bb30d8162bffd0e70d8e546b5e  gcc/config/x-openbsd
  60c44ffe57cc1280e854dc1840adc766  gcc/config/x-solaris
! ce468291c60b47c140d3d5863acd414b  gcc/config/xtensa/constraints.md
! 40cbf429759448aa68b76574c9db4ba1  gcc/config/xtensa/elf.h
! d4ffa42f9b5bb2beacf8ecad2f9ebca4  gcc/config/xtensa/elf.opt
  f140d72c4f00aa6f39295fedb6f6fc92  gcc/config/xtensa/elf.opt.urls
! d1f0574334c3415c01f4bf5316d1db02  gcc/config/xtensa/linux.h
! 9285338d5a521a6e3491cd5697e5c2f6  gcc/config/xtensa/predicates.md
! d7ad137d80301227f4b8b064f7daaf29  gcc/config/xtensa/t-xtensa
! b9d32ba32a1d5a0ba75c688198f72ff8  gcc/config/xtensa/uclinux.h
! dbd5811fcd8a1caf49e4e9091afdc18c  gcc/config/xtensa/uclinux.opt
  83fbfe1c588f31edbd8e4a77807087fb  gcc/config/xtensa/uclinux.opt.urls
! 6ffda24346906b56c23b732dee11ec56  gcc/config/xtensa/xtensa-dynconfig.cc
! 9a9ea234526c2b6ec2dde5659d16935c  gcc/config/xtensa/xtensa-opts.h
! f11b25bf61cd607f1829b2d5c5d306b9  gcc/config/xtensa/xtensa-passes.def
! a071a2118672dd214a5b6970d7c3faca  gcc/config/xtensa/xtensa-protos.h
! 5b49fab80bf7b8a969d748d0d56ef024  gcc/config/xtensa/xtensa.cc
! c60f07bed189e2a8fb8abfe19368e9f9  gcc/config/xtensa/xtensa.h
! 708d79fd2376cbc3e1fc949938300b92  gcc/config/xtensa/xtensa.md
! 093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! abc1433c494f64d13225907acaedc4a3  gcc/configure
! 6f7ffe71846b7c3aebc7fc928a9ec686  gcc/configure.ac
! a2bfe87830136c2d55b591b943cecd3f  gcc/configure.tgt
! 8a46839a73059f70ef105be9706c2554  gcc/context.cc
! 08023c1005def168a8b675813b95d9f4  gcc/context.h
! e015add06ba8159fde5c92647e6d9fb1  gcc/convert.cc
! 4b687a22d792003ae6404ce923c8e376  gcc/convert.h
! 1610a30f4e4f6deb01cb08eadedb3005  gcc/coretypes.h
! c5ad0142a191862e3e81ecd3573754b3  gcc/coroutine-builtins.def
! 55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
! c10700723a41c720aada0096f369147e  gcc/coverage.cc
! d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! d8f2304ff9d9cbcfa69e3df43cf62799  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** bb663add91c7d9a78c9ac229a8930cef  gcc/cp
*** 5547,5633 ****
  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
! bfc0a4cea2b61e7ae38934b220f84e85  gcc/cp/class.cc
! ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! 79928faf39a0d7230d9c80c668f64a6a  gcc/cp/constexpr.cc
! d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
! a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
! 1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! 564af52a675c5727faa9f84885de41dc  gcc/cp/coroutines.cc
! be1619275f92c0a0eb6eb83c1e3c7f6b  gcc/cp/coroutines.h
! bb4c9b6410ab82d5e1d215490036ab6b  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
! 9ecc07c9a369453c25914654540a1164  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
! 9f9cd31507a85abfedf778a5046dc99a  gcc/cp/decl.cc
! 7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
! 0b589466f97f1843080d9667c2263668  gcc/cp/decl2.cc
! 691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
! 837b6648692cfc90631f43732905eba0  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
! ddfea14bf3538c63472f984625d70840  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
! 1fb77a33ed1eaaf5ffbe1fc992f353ff  gcc/cp/method.cc
! b45a9fcdee93f140fe52a76dcb1e8215  gcc/cp/module.cc
! 4191315bfa6c793b37107497c36d367f  gcc/cp/name-lookup.cc
! 9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
! e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
! 813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
! 6ee3e41f349ec9e1b9c084a2fdcf5930  gcc/cp/parser.cc
! e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 8b7b76acb9a2c9b6a0b4e0dfd38cd5cd  gcc/cp/pt.cc
! a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
! 318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
! a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
! 48ed0bb4fa778a3b5f67ba653a2c2e72  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
! 1bf95758f700eb2864247d2a58e4934b  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
! 3cbbedb9e1e4456dc79ccf9d4564f743  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
--- 5693,5789 ----
  87139463e5bce001743744309389b657  gcc/cp/ChangeLog-2022
  bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp/ChangeLog-2023
  127c45265cd7f72c5d2ea0259d4bdb1e  gcc/cp/ChangeLog-2024
+ f39635970f98bbc4591f6363fe70504b  gcc/cp/ChangeLog-2025
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
! 689c8a6810ac9e15b64d4e745bda0f11  gcc/cp/call.cc
! 144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
! 39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
! 4a5a02469458f5a17e932ae0133f2ce7  gcc/cp/class.cc
! e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! b7c189a1115cf06a041b94bc583174e4  gcc/cp/constexpr.cc
! 44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
! ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
! e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
! 09f3bdbdbcddf3dc68d265ab0a59a38e  gcc/cp/coroutines.cc
! 1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
! e90f7ecba873535bf7399fea02e36208  gcc/cp/cp-gimplify.cc
! 5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
! 1a3e309babdfdd0ff5e03d09e6b5870d  gcc/cp/cp-name-hint.h
! eba8d8a1725223519fba5d4d69afd5c9  gcc/cp/cp-objcp-common.cc
! 370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
! ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
! bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! a6f75b797a91a72e5d42f363a9415abe  gcc/cp/cp-tree.h
! e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
! 0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
! f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
! 1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
! 82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 1009d05a70574e332ec53043c4e16024  gcc/cp/decl.cc
! 6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
! eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
! 12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! e3767c932e8101295ee13bd111b9b1de  gcc/cp/error.cc
! 59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
! 70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
! 447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
! 014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
! a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
! b9032a113a137533247a90fda508e897  gcc/cp/init.cc
! 99eccf5dfaca355dd6a7dc943793429f  gcc/cp/lambda.cc
! bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
! ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
! e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 6d1dfdccbfbfe5467a281664d8fbe792  gcc/cp/mangle.cc
! 3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
! 27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
! 4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
! 54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
! 04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
! db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 03480e73f9656917c9f3db50244ca2a9  gcc/cp/module.cc
! 79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
! b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
! b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
! 9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! e597ab171ad27c93ec4d074abe445c67  gcc/cp/parser.cc
! 7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 0dd54f9acb56554dea7c32b4d23de240  gcc/cp/pt.cc
! 25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 1e8c47e2742bdafe24e4dfe425a7057b  gcc/cp/reflect.cc
! 97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
! ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 9790807578e1c4db5aa20758424fb3ef  gcc/cp/semantics.cc
! 64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
! 15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 0036291070f1302b372562c75f48cc5d  gcc/cp/tree.cc
! 01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
! 1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
! 40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
! 12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
! 556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
! 51b40c4eab2c9321ddb49d1acb80edc3  gcc/cppbuiltin.h
! 6c95a245e50b5b6a4677eec6965b1a35  gcc/cppdefault.cc
! 7b8d1805cf6d843213430ef9911edff2  gcc/cppdefault.h
! 39b4704938fb780fdd57ddb7cbb0fdba  gcc/cprop.cc
! bb146ea57855f57a97f23f7c748b05ed  gcc/crc-verification.cc
! b7bf54d1a28938f620902d5d360e7000  gcc/crc-verification.h
! 2810ee7d4e0429611e11776e5fc5e689  gcc/cse.cc
! d8e63039ff02f156025e0e64f467b032  gcc/cselib.cc
! f4482f497f6e3a2eae101f16c79b4b27  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
! 4d5ff4ad7f83cad2fff66caccde0780f  gcc/ctfc.cc
! 21aa4df3b0a04c61dfb56d24a5e49e90  gcc/ctfc.h
! 3b49d27a12c232bc7df2bf77e4eea817  gcc/ctfout.cc
! fe61b2918e14694ac3e0e909cacea80f  gcc/custom-sarif-properties/cfg.cc
! 086d0fbe195bd56869d4968a6268a26a  gcc/custom-sarif-properties/cfg.h
! 005e6ab6bce5f2334f5d518c53f8f56e  gcc/custom-sarif-properties/digraphs.cc
! 86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
! cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
! 58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! 88c801ab9fb8db3ace7abad5d3b9e3f4  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
*************** e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/
*** 5647,6105 ****
  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
! b24ae235869e8ddfde6c45d41923f7ef  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
! 7c6d6f8bba4a9890d950bdef623af96f  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
! 6f23779ed1d013e7399164d8be90b06b  gcc/doc/cpp.1
! c27e856fbb5adc3ed97c8552ba8ac797  gcc/doc/cpp.info
! dc09e43d1d1ebad6e6902b9c5b7aec73  gcc/doc/cpp.texi
! 808d1c20ece40d5e2d9c8daa6cdaabf6  gcc/doc/cppdiropts.texi
! acdfc663791e4321372e79932070d05d  gcc/doc/cppenv.texi
! 1a5d726eac5750193fd37d2c3301552f  gcc/doc/cppinternals.info
! 81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
! 1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
! 14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! 214bab38dfc304ce2f0b6afedaddfa3b  gcc/doc/extend.texi
! ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
! cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
! a62035f95cb48cd27eba6b740f9ac226  gcc/doc/fsf-funding.7
! fb9c09d60dc9fb88314283830d064bb5  gcc/doc/g++.1
! fb9c09d60dc9fb88314283830d064bb5  gcc/doc/gcc.1
! c76952525647e2126ad49bc4db576a82  gcc/doc/gcc.info
! a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
! 90155efeace6560a66f0ce884fcbbf37  gcc/doc/gccgo.1
! 90204f47da54c32c3188dea33ae9c23e  gcc/doc/gccgo.info
! a529e35883c0af6e6d7603c550a6cc2d  gcc/doc/gccinstall.info
! a7e4456ac8fefbdbcd74c06180de9a0e  gcc/doc/gccint.info
! 5b1e6708c5ac4fb500ef658bfa6fe3d0  gcc/doc/gccint.texi
! 43b560ae468259d76eadb1680b1cbd76  gcc/doc/gcov-dump.1
! 943006b46b746ef59c5c1ab4f334a241  gcc/doc/gcov-dump.texi
! 69e0ed0efb296248b46ecb104695b83c  gcc/doc/gcov-tool.1
! 50c3a263a50fc4688ac3be5e8e8744ba  gcc/doc/gcov-tool.texi
! 04eae30904d32348699ce6a1e7ba4455  gcc/doc/gcov.1
! 8700253b7c491bd8902f580c7dcff6dc  gcc/doc/gcov.texi
! f97cb312066f5371739598ab8b6b8b6b  gcc/doc/gdc.1
! b048c8ff2e938a9fedd3d49665cbbd3a  gcc/doc/gdc.info
! cc49c44389e2d6e1bc60b761b5602112  gcc/doc/generic.texi
! adabf792ad467e41296d16402d1dfa99  gcc/doc/gfdl.7
! 88517fe507e84da0d2fe0f63ac0dbff2  gcc/doc/gfortran.1
! 6dd13335166acce8e899b838ecbd04bd  gcc/doc/gimple.texi
! 9ce981d761955b102d3fdf046747674b  gcc/doc/gm2.1
! d86921b1235f4213b89ef1d12d25a41a  gcc/doc/gm2.texi
! 483b70348b7ad60b7c670e6c5446091a  gcc/doc/gnat-style.info
! 9a0e3480750f35ea99d9dbdaa5f41e75  gcc/doc/gnat_rm.info
! 5149d63e98784936cd73628640d240cd  gcc/doc/gnat_ugn.info
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! bdeb46e97ed1333dfecf0e3541946570  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
! 4cf31ce9dc9e7079c1c99e7dd07215ae  gcc/doc/install.texi
! 0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 9c88cabb8fa15f07666c1108c79290a5  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
! 75221b4f40d34d58f4da438f7c81ef73  gcc/doc/lto-dump.1
! 124b06847fae76f01f1c6a0b1adf9a15  gcc/doc/lto-dump.texi
! c98feb0a43876ed3ef2fca3c8448e8f8  gcc/doc/lto.texi
! 3444fd3ae3f4ed67da984b6201c4456a  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
! dac5d7b3efd1f6082fdf8445128a8c67  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
! 7b5eb9e4eed4806160ff0f72ad03915f  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
! 7cc9c8d25a9d43ddb6451c311969a2b2  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
! 7117d2d0dde87eaf1ab2853b5bfd62e2  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
! 38ad62ff3dc32741a630b142f27a6f25  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 5803,6320 ----
  4c5437f5e539631a8d148cc332eb2c2f  gcc/d/ChangeLog-2022
  4c7bd4d8dfadc612e88b52f720d6557a  gcc/d/ChangeLog-2023
  515b6760ee63421bed220a6d374a6795  gcc/d/ChangeLog-2024
! 0cffef9989da6c718b41fafd16b8ea70  gcc/d/ChangeLog-2025
! d916ef405eeaa878b1c2ef9dcf535196  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
! 5170dc7fc8ad21399dd35a73673a1b1b  gcc/d/config-lang.in
! ced9be7856f049f3b83bdbd9f6038f42  gcc/d/d-attribs.cc
! b28e281d951471e031670e95fba8014d  gcc/d/d-builtins.cc
! 4df48f1f7da1ca00a3d7d39846e90221  gcc/d/d-codegen.cc
! f0a6fa18f331a5771005c3b319e1d6d9  gcc/d/d-compiler.cc
! 97457532f0c348f5b93add8aeb0134e1  gcc/d/d-convert.cc
! 62c9322bb6952c891db5089737edce22  gcc/d/d-ctfloat.cc
! 7ab9f4bf667a01373d226c80ec78d41e  gcc/d/d-diagnostic.cc
! c5ee2a286608e2d9385816b39f8ae5c5  gcc/d/d-frontend.cc
! bc2edbcb94ab8817426f7e3b458ba478  gcc/d/d-frontend.h
! 703fd954a886eae772ae6a46261eb6b5  gcc/d/d-gimplify.cc
! e57c763d71327c092796686484464f5f  gcc/d/d-incpath.cc
! 4ad8e9944001769ebe1cdfec7e8c0953  gcc/d/d-lang.cc
! d3387225b6b0b4988843166a343aed79  gcc/d/d-longdouble.cc
! 1b4f279195786abd8aaf36b97cbe9b5c  gcc/d/d-port.cc
! 1752e16f6e30b87af0e3297a159bed15  gcc/d/d-spec.cc
! ff0e8b453455e8497536165eae7c1f31  gcc/d/d-system.h
! 5e46b2a1e062794f11ffd6b0844c5883  gcc/d/d-target-def.h
! 89b65ac69d38cf23bea52ff97cfa31cf  gcc/d/d-target.cc
! 1fa6cd16c5a2906d3f842bbcc5297074  gcc/d/d-target.def
! 0cbefb1fe5798619dd31fbc791502b11  gcc/d/d-target.h
! 96ebb03b303e0c71e962dea84e5154e5  gcc/d/d-tree.def
! cd9e6df3af560a6961ad808c97e5de7a  gcc/d/d-tree.h
! e15dc7e6bb692e768b46ebcc8ec185d4  gcc/d/decl.cc
! 7bde9fcb9047a7c21d8e1aa73efae997  gcc/d/dmd/MERGE
! 19fa8b50b219a53d3fa7d1c6680ed3e2  gcc/d/dmd/README.md
! d08a6d91478fcd3badef10158d94e3f0  gcc/d/dmd/VERSION
! 36493396b4a254b183eb366b1408b69f  gcc/d/dmd/access.d
! 756539788ec37c1cf6e94aab7a6ec80d  gcc/d/dmd/aggregate.d
! cb6199697c2878d26b01f1c81cb3b451  gcc/d/dmd/aggregate.h
! b22c27345df07be061e0733f7eef44a4  gcc/d/dmd/aliasthis.d
! 7d64012478c716836ba639f197ad422c  gcc/d/dmd/aliasthis.h
! 5b37539176474f4a6ab4ef3494512fff  gcc/d/dmd/arrayop.d
! 9ac135f11d6953caae29207b6ff8a837  gcc/d/dmd/arraytypes.d
! 4ddd43319518c15cb022dfdc59e34a0d  gcc/d/dmd/arraytypes.h
! 0a0a9c2c680b99e0073ae612bd4504a7  gcc/d/dmd/ast_node.d
! a4a787b93d288c96056b06fc497df72d  gcc/d/dmd/ast_node.h
! 630e07d94533dc02b37d18e8910e1edc  gcc/d/dmd/astcodegen.d
! 1117f13304503359d2f7a80fce02d7ac  gcc/d/dmd/astenums.d
! 8e04296ae588a8e577bef6aebe210c55  gcc/d/dmd/attrib.d
! 4e6956e77150e867c138976d8f637b06  gcc/d/dmd/attrib.h
! 8b706987f90799d89087f75cdc4099a0  gcc/d/dmd/attribsem.d
! 7941e8a70e675aba76b11316537eab9d  gcc/d/dmd/blockexit.d
  e4224ccaecb14d942c71d31bef20d78c  gcc/d/dmd/boostlicense.txt
! ca7abcaef9827557890a5e6113d9634b  gcc/d/dmd/builtin.d
! d5f48d69fb1d3dabc344e405278598c2  gcc/d/dmd/canthrow.d
! c19e185200e2f31a45a7706999634ea6  gcc/d/dmd/chkformat.d
! ee60f5fdc17edb10bec98069a38a45e7  gcc/d/dmd/clone.d
  a439029b15d096cc69638a68c99a808b  gcc/d/dmd/common/README.md
! 1c0f18f82dd1f262423d86223517d52a  gcc/d/dmd/common/bitfields.d
! 32619178f6600192362b4a35532b2210  gcc/d/dmd/common/charactertables.d
! 44e6f2c52a417f9c81dcb715040575f0  gcc/d/dmd/common/charactertables.h
! 1e2b980216118e2f8686f388e2360308  gcc/d/dmd/common/file.d
  8ff83d9e9276172a609feb344d4d66a6  gcc/d/dmd/common/identifiertables.d
! aa49dbdfa503ef3910e244a1f652ba7a  gcc/d/dmd/common/outbuffer.d
! 291ea374a303bf4a60cc7173412a3a14  gcc/d/dmd/common/outbuffer.h
! bd6e08c968f0146dd91f685d0f8c7ab0  gcc/d/dmd/common/smallbuffer.d
! 13e98d7e233db5c4859e70fa2b49619e  gcc/d/dmd/compiler.d
! 7c61ea8b18b3bbff0a3f82144e9389b8  gcc/d/dmd/compiler.h
! 7e7cf4eebdb695b610f50e20a8f8f17a  gcc/d/dmd/cond.d
! ddc0a699500ea63584dc7112b45f5bff  gcc/d/dmd/cond.h
! d5316f2db44e9f727a7852c06047c5f4  gcc/d/dmd/constfold.d
! dc17b7847ad48eac07c0129d42c2de49  gcc/d/dmd/cparse.d
! 1ac8d84f6ae5c2322a5b1ac2dad789da  gcc/d/dmd/ctfe.h
! a902f2f6d89c5ccabdd31029b6f870ed  gcc/d/dmd/ctfeexpr.d
! f1cc29e299e5c989af3a12f76fb1592d  gcc/d/dmd/ctorflow.d
! dbb9cf409aac28fd9fee2440c81ae1b2  gcc/d/dmd/cxxfrontend.d
! e99136fed5cd6eaf91e3d9828623b84b  gcc/d/dmd/dcast.d
! be352ea1f39d9274f982d4d0b828f812  gcc/d/dmd/dclass.d
! 67dadc1a3b5dbb68f28f315b406e7a43  gcc/d/dmd/declaration.d
! b8c73f1d92d5c88bf5cf934f73936ac5  gcc/d/dmd/declaration.h
! 3094ef047c625363522838160ce19cc7  gcc/d/dmd/delegatize.d
! 581e89756598665b364d45d94772ca78  gcc/d/dmd/denum.d
! 8aec6d8482649cf6ca597ef650a703ae  gcc/d/dmd/deps.d
! 8e20089b4d8784bd5c0bd7ad460a49ba  gcc/d/dmd/dimport.d
! 2b0690e1a445ca6cf79af193c9fa6b3f  gcc/d/dmd/dinterpret.d
! ac8783866acd3cad84a517cd64101709  gcc/d/dmd/dmacro.d
! d60264a048edd181a3053b56a58f212f  gcc/d/dmd/dmodule.d
! 68506df496e18df84a700fbb1f92196c  gcc/d/dmd/doc.d
! f6f5a3f4a20471965656355efab9777a  gcc/d/dmd/doc.h
! f5414730b2ea5603194a38706e447d91  gcc/d/dmd/dscope.d
! fc621a0e0e8e2f2b6e1424ee1b40d9bf  gcc/d/dmd/dstruct.d
! 76083e9697702b812cde64325b97752c  gcc/d/dmd/dsymbol.d
! 6fa1f90f158e42a3721b6ddbf5379469  gcc/d/dmd/dsymbol.h
! 8e87ad1e9432789059cbf536024bc92f  gcc/d/dmd/dsymbolsem.d
! 2709aa7f97dd0cae93d25d05e5c930f9  gcc/d/dmd/dtemplate.d
! 10d5f83078185d726822de2fdd2c22c2  gcc/d/dmd/dtoh.d
! a024ac31b1708f7009771f94ee46876a  gcc/d/dmd/dversion.d
! c364148471790afa25250a0a922766a0  gcc/d/dmd/entity.d
! 7295d3366bfa24c845332e4d53bc5f24  gcc/d/dmd/enum.h
! 927db6823270135382c4e376e0d49653  gcc/d/dmd/enumsem.d
! 94afd036aeea0736b8d1f0e24e8ee91b  gcc/d/dmd/errors.d
! 2ca65eb4712d0681782c42c5b81e48df  gcc/d/dmd/errors.h
! eb4b0f251fda4abb36b5675f09f08183  gcc/d/dmd/errorsink.d
! 929d53e03409db76b4188cbe1fa854b5  gcc/d/dmd/escape.d
! 7a342b9174891cded32c3c05fd2250c8  gcc/d/dmd/expression.d
! fd76397048175f21bab28e9028a8bcf0  gcc/d/dmd/expression.h
! 3f528ce04212c3fa09130bf7613fa7c9  gcc/d/dmd/expressionsem.d
! 3627f00ed08270013ed3d56ba2c8306a  gcc/d/dmd/file_manager.d
! da0aef14ed6bcca1855c5f574ac9518b  gcc/d/dmd/func.d
! 856e4c7ce2db4e5fb9b7eb1f8a13a960  gcc/d/dmd/funcsem.d
! b53fff6edbda5e4c5d8d08406bbea33c  gcc/d/dmd/globals.d
! 61b9a1b0b2d3a6dd72a9f47570101fec  gcc/d/dmd/globals.h
! 59e3f3f68ba640065b53fa1bff0f4728  gcc/d/dmd/hdrgen.d
! eceb03805de66aa33b88db982b080ccd  gcc/d/dmd/hdrgen.h
! 3a888a438cb7f683787a824f06cd118a  gcc/d/dmd/iasm/gcc.d
! b28379203f405c72400b8322341ed4cc  gcc/d/dmd/iasm/package.d
! ee52343e53dac85da6c8343e65ebf601  gcc/d/dmd/id.d
! 3b176e9009289fa40177b67943bda16e  gcc/d/dmd/id.h
! cc790adf1106ca652b9d5d440bd49c2b  gcc/d/dmd/identifier.d
! 05d49f275ce1ad215c9b3723425a8137  gcc/d/dmd/identifier.h
! f3129e50c17722feb87422cb6f99df38  gcc/d/dmd/impcnvtab.d
! 2145805b3d26f618999e95a77453fb95  gcc/d/dmd/imphint.d
! 276ec577c12e42a86c102f849372c454  gcc/d/dmd/import.h
! fe724002c5930a2109b8cc995559c1d2  gcc/d/dmd/importc.d
! 5ac24aa3a5e5e861ae16085d34be4e2b  gcc/d/dmd/init.d
! 3ef3ad816e9cb5c20fd99e5a1e39017e  gcc/d/dmd/init.h
! 267b45aac11dc81678f3bc07f9b66830  gcc/d/dmd/initsem.d
! 8bcb821e2774a710f1a103ee772a75ec  gcc/d/dmd/inline.d
! 72bffe7229091511c23cfe6a87417f92  gcc/d/dmd/intrange.d
! 0b0004fa40b24f50e09b0ccae1c089bf  gcc/d/dmd/json.d
! 81944208c950f3d78083976d7a21776f  gcc/d/dmd/json.h
! 3201be4778e876abc2661b2f56bea420  gcc/d/dmd/lambdacomp.d
! 7de2c06715b313e906b396a5844f7464  gcc/d/dmd/lexer.d
! 9cc4895b6d6d75b246d09870633aec23  gcc/d/dmd/location.d
! 4d83de0490ebb3f1a34eb9f82e6c3ee1  gcc/d/dmd/mangle.h
! 8e8703eb2786008348bb13ebb16680b3  gcc/d/dmd/mangle/basic.d
! 83acc05560ca5f4adec3abd29d150466  gcc/d/dmd/mangle/cpp.d
! 553e88eed400a7a48add3b2597f71a77  gcc/d/dmd/mangle/package.d
! 17b69e6683cbf859e9e05714a363d6c7  gcc/d/dmd/module.h
! 1002103190341764f19a11152e609b9f  gcc/d/dmd/mtype.d
! dee3d29984dc0bea1bcb5c7431d8b22c  gcc/d/dmd/mtype.h
! 573db47cfd4278d43dbf389726628d80  gcc/d/dmd/mustuse.d
! af897450e97c2de0c2aaf0343d1e1026  gcc/d/dmd/nogc.d
! 1ec2bc005835e463619f6b3bb5d2ed8c  gcc/d/dmd/nspace.d
! 2a2b07778ebee1bf66f205d8e171de2a  gcc/d/dmd/nspace.h
! 83cab5409cbe6c7aed86b7d76c9cb0df  gcc/d/dmd/ob.d
! a5a81db85220063d942c30e1768127e4  gcc/d/dmd/objc.d
! 817eab26fa9c3c2bcbb3da9dc62c8e91  gcc/d/dmd/objc.h
! 439d6d598da51f43e22b875c6812fd04  gcc/d/dmd/opover.d
! 0fe86cd98d1ef92d7e2a055b92245b73  gcc/d/dmd/optimize.d
! 6c1a268e7f681450ac58ea0d88bd8fc8  gcc/d/dmd/parse.d
! 63ea20190d7954768fbfcf45398be2a8  gcc/d/dmd/pragmasem.d
! 21cd1ad0a30d9e430e36c8ae132ad34b  gcc/d/dmd/printast.d
  f38789894c6b0b28bedba3bb9ec03010  gcc/d/dmd/res/default_ddoc_theme.ddoc
  04f57d64eeeaa73285101503465b193b  gcc/d/dmd/root/README.md
! 48daf7f746f8e2d88a61de1acd00cac8  gcc/d/dmd/root/aav.d
! 7f41dc053f2e640fa0cf36b39a20d9c8  gcc/d/dmd/root/array.d
! 301691c5207ec3bd61fc6e0d4ae8309d  gcc/d/dmd/root/array.h
! 321fef42da2f17a93befdccb73b7b911  gcc/d/dmd/root/bitarray.d
! 496e8b8f6bc7a265e92a15149e469ee5  gcc/d/dmd/root/bitarray.h
! c2fdd18d09afd2c7fdf7d9a67e4a2f16  gcc/d/dmd/root/complex.d
! ed877cb6072c8664e6e4864045c2ce52  gcc/d/dmd/root/complex_t.h
! 69f97f66836f6abcc8828bc3aaa553fe  gcc/d/dmd/root/ctfloat.d
! 00b27a8c6b486dccfd5a7099f66ea466  gcc/d/dmd/root/ctfloat.h
! 937fb02ddbf529a9693fc629999b013b  gcc/d/dmd/root/dcompat.h
! 7c536a32ccf522d80e0058c3ef4e8b29  gcc/d/dmd/root/dsystem.h
! afcc697b8123215ed1c223f9da2fb8ca  gcc/d/dmd/root/file.d
! 088c90a542cd216427b23b097f0c8f9c  gcc/d/dmd/root/filename.d
! 9ee6b2eab16388b51b0b842ba49a46dc  gcc/d/dmd/root/filename.h
! 968008c811f0192a06cf5229fc3d098f  gcc/d/dmd/root/hash.d
! b9c373949801135e1bddbde0e56df358  gcc/d/dmd/root/longdouble.d
! 9026e030d55093a7bbc20e12537db987  gcc/d/dmd/root/optional.d
! dede443e7a0e013d019578552c807b84  gcc/d/dmd/root/optional.h
! b27ff72eb91c36ea2e048d2b5722dd9b  gcc/d/dmd/root/port.d
! f4a448f3082f16b837d7c7b0e3f039c9  gcc/d/dmd/root/port.h
! 7e574cd19d72a09c8919cbbbcf32d888  gcc/d/dmd/root/region.d
! 6d4bd01178eb3b63c426d99627e7d0bc  gcc/d/dmd/root/rmem.d
! 45e4d6d74d3eca65746c3fc07a0f4146  gcc/d/dmd/root/rmem.h
! 9e6ff4e3ad1b4a9e5fa7e673617690b2  gcc/d/dmd/root/speller.d
! ce9195d35ab9e8e79dc54f99c5c574a2  gcc/d/dmd/root/string.d
! 78fb427ee76aa3c4411b67477edc6c63  gcc/d/dmd/root/stringtable.d
! 79a2ad84902e3331a55615b932df1658  gcc/d/dmd/root/utf.d
! d325426ed5c2e0f1cff209014707d2cd  gcc/d/dmd/rootobject.d
! b7f106fff78a53f6592a88162c5f27f5  gcc/d/dmd/rootobject.h
! 613ca0713c5de0beaa549abecdce52b9  gcc/d/dmd/safe.d
! cd6fe88e29a5436c106f650119e515bc  gcc/d/dmd/scope.h
! f0b8e6149d2f938f358a894276fbc922  gcc/d/dmd/semantic2.d
! 066195303caf1139dee33c226b3c42ac  gcc/d/dmd/semantic3.d
! be83e2a68c2785d4934d7061b2438aab  gcc/d/dmd/sideeffect.d
! 9b5e1295542ccce933f6885751dce523  gcc/d/dmd/statement.d
! c02dff82e02e13a144394c6cc86455e2  gcc/d/dmd/statement.h
! 08ce728ca5aa8705f2059333340c9c9b  gcc/d/dmd/statementsem.d
! 12804b7fd378e16447bc2d60700d48ba  gcc/d/dmd/staticassert.d
! bcc714ee56062210a0882bd13781048f  gcc/d/dmd/staticassert.h
! b705fcc699b639fdeafc149c372d1909  gcc/d/dmd/staticcond.d
! f954f32f83768ad028b98e373a6f69e1  gcc/d/dmd/stmtstate.d
! 412cfd304c56d7c834d55c84a811ced1  gcc/d/dmd/target.d
! 348b997000ade02d7c26d7d8ddc7f3e7  gcc/d/dmd/target.h
! c9965b88277fa93899b40afd0559c8b7  gcc/d/dmd/targetcompiler.d
! 7cb2b265ffd904798c9be00eb12a199e  gcc/d/dmd/template.h
! 3b365c5d7bdaf6f7e9198e68c628aea7  gcc/d/dmd/templateparamsem.d
! 0cd8abbe997d4d050262beb02dcdf996  gcc/d/dmd/templatesem.d
! 00e876f8ff21c3623ce98ba78cbcd0d5  gcc/d/dmd/timetrace.d
! 2ceab2ee057c61d33fbab61bb85dd5d3  gcc/d/dmd/tokens.d
! ecc4415ecfef96a7ba80b0266535fb21  gcc/d/dmd/tokens.h
! 82cfc239acd3f554f33f19b1fa5b9a01  gcc/d/dmd/traits.d
! e248cadf3f21cd30cab98b387cfe8078  gcc/d/dmd/typesem.d
! a8eb1da7a97ae0b75c2221de62b0b989  gcc/d/dmd/typinf.d
! 584b6655b333a44de3fde735473d1002  gcc/d/dmd/typinf.h
! 007d2370bbc69040e559cf4caabaf715  gcc/d/dmd/utils.d
! e0bb28506ea681cf29159041477c703a  gcc/d/dmd/version.h
! ce69c50b449a66ecf52a9dc705333fa4  gcc/d/dmd/visitor.h
! 8f422dfb0a531a7b80267b95f3906123  gcc/d/dmd/visitor/foreachvar.d
! 8989a02108474c052f580953b3494035  gcc/d/dmd/visitor/package.d
  5b977a7d574f832916a0653671ca2073  gcc/d/dmd/visitor/parsetime.d
  3db1547c5541dea5b6b7b3580f33c117  gcc/d/dmd/visitor/permissive.d
! 82f5db54c1a9b627caf93de77ba51950  gcc/d/dmd/visitor/postorder.d
! c5e5b33d24d8d54d0db24ec6d8808573  gcc/d/dmd/visitor/statement_rewrite_walker.d
  1cbd9c1c0ec261f10e9d9443fc16f987  gcc/d/dmd/visitor/transitive.d
! c8a7687c741688b819adc127ac3bab0d  gcc/d/expr.cc
! ae98ef7253f51b9c2283da08c3df60b1  gcc/d/gdc.texi
! fe75e0460d453b2242165e5b49a6f5dc  gcc/d/implement-d.texi
! a1264deb8aa43914b45e5a16767cc28b  gcc/d/imports.cc
! f3f7af7813097c4eb0e00abeaa1c93d9  gcc/d/intrinsics.cc
! ce172275028d88abdad7fb3302e7017f  gcc/d/intrinsics.def
! b57c47a44a7c09a7b62838a41eb3723f  gcc/d/lang-specs.h
! d926df42786a0b32bc4c04fab4d1cdff  gcc/d/lang.opt
! 6113ac46c69393b82b5e7be0c040849e  gcc/d/lang.opt.urls
! a84c5c8dc5dd34c74b6c874a99718559  gcc/d/longdouble.h
! 315914960c100ee43441bdcb728d419c  gcc/d/modules.cc
! 2fc8432bfa0576b0d005fd3d883ea861  gcc/d/runtime.cc
! c91433fbbe79c3e110e263ab981dea5e  gcc/d/runtime.def
! 8e6ac7d895e5279ce9a5b93f58cd56b7  gcc/d/toir.cc
! 3ae8a62d0c135b91cfa17f45a22ad721  gcc/d/typeinfo.cc
! 61494760545943ca27e7120f53ed4fe8  gcc/d/types.cc
! 97d491fba0dd57fe8e4fb67f2c7f8b88  gcc/data-streamer-in.cc
! d1658e0b3a01487789371ee847def1b2  gcc/data-streamer-out.cc
! 63245724941a35dfab045b09f88d3ab4  gcc/data-streamer.cc
! 3f7ee49cd1f2d78f1b902b28ea5ced9d  gcc/data-streamer.h
! c7362bfcde6697a2d4479f37eb016010  gcc/dbgcnt.cc
! 57aff492ccda6733701a18bec8ceaa36  gcc/dbgcnt.def
! 1212138ceda83926278d99f18d79b6c8  gcc/dbgcnt.h
! 79fbd46fe51c7607d0a7100c8dd1c191  gcc/dce.cc
! 3c4bc4a738f591bd4213d05099b35827  gcc/dce.h
! 69f80a3dd4fda02b419159ce0fbac5ca  gcc/ddg.cc
! f03ba47b25bafaac3f55372667e49d7c  gcc/ddg.h
! fc9508a813d61f77432f8e52b0a237ee  gcc/debug.cc
! cd6813f98d48b81321bcd8927ab8331a  gcc/debug.h
! f2f75ccf17260675395d4d9f0e1dc7a4  gcc/defaults.h
! e9fa9536951db6e9abcb8db4a451ec79  gcc/dep-fusion.cc
! aa5b6daea5bb76571584ecd5c953cb2b  gcc/df-core.cc
! dc4e9b2936fd89e9bbb64758de3ebb16  gcc/df-problems.cc
! 7fa2e07f16a62de7dfe2547901152c31  gcc/df-scan.cc
! d9510eb01114d0e5eaad750d0afcd809  gcc/df.h
! e6cb006d625b4b045f658e77c108b89c  gcc/dfp.cc
! 789479181cd0e36738e9830326551864  gcc/dfp.h
! 6ca1f8e2815f9277f8bd85efa100f429  gcc/diagnostic-context-rich-location.cc
! 8668dea68c9f152dcccbdce08b847ab3  gcc/diagnostic-context-rich-location.h
! e836f9039ac0ee97e44f1203d7143062  gcc/diagnostic-core.h
! f44c95c2d9127c41d15df4ad1a1a1333  gcc/diagnostic-global-context.cc
! 2981691b4cb936662848dea688ca5b9b  gcc/diagnostic-highlight-colors.h
! 7318d441345a938f8e9e2fbc9fdcf714  gcc/diagnostic.h
! 4dc4927cc23b51fe09ba3b53f8f1c97c  gcc/diagnostics/buffering.cc
! 5d85c55c07f5f70cd74109a62ae17580  gcc/diagnostics/buffering.h
! d8c122792f8326d493206a8e18634615  gcc/diagnostics/changes.cc
! d3c72f964ccf85ec14ad558d6df91301  gcc/diagnostics/changes.h
! cac0841df72c21240aedd7e03d231c8d  gcc/diagnostics/client-data-hooks.h
! 3e993ff6b378ac731ce2c45c43247565  gcc/diagnostics/color.cc
! 8c7055aac1299f5f574425eee2db8b47  gcc/diagnostics/color.h
! 5ac83d2dfc5d36068774e6b0db97fe99  gcc/diagnostics/column-options.h
! c24d31606e2ffad5682f296df5984f2e  gcc/diagnostics/context-options.h
! 68b8c316b2fdab6de05ec0729a3bab90  gcc/diagnostics/context.cc
! 80d12ce13168f09b13a44fb8508764bc  gcc/diagnostics/context.h
! e1fa17399b3b1f7a6bc15780030e2511  gcc/diagnostics/counters.h
! 376ff2cb14bc9c31771a3a37ddceb73f  gcc/diagnostics/diagnostic-info.h
! b524b3d170881dadbdce5566d74dedd9  gcc/diagnostics/diagnostics-selftests.cc
! e0edde0537be75893b355dc6100c2a68  gcc/diagnostics/diagnostics-selftests.h
! 2be2a1f334551554e0ea1ccc93734d67  gcc/diagnostics/diagram.h
! 3a682d4c2264a68e3046230508f6bd1b  gcc/diagnostics/digraphs-to-dot-from-cfg.cc
! 2c0d8e0bec258e4e87d4d0c61ed8cd08  gcc/diagnostics/digraphs-to-dot.cc
! a8c7caa32cfe1b15611f39934960a9a6  gcc/diagnostics/digraphs-to-dot.h
! a8d421e76e65bc8df2254ddd9be24a16  gcc/diagnostics/digraphs.cc
! e87f296716b3e26ee9224ab54e948f97  gcc/diagnostics/digraphs.h
! fb061267c74823feb7ee0770d2c3ce49  gcc/diagnostics/dumping.cc
! c4bafa9f11987f6707883c515336a81b  gcc/diagnostics/dumping.h
! e77227490bb73331a8c2c4d3fb090aa8  gcc/diagnostics/event-id.h
! 3f287cabfbab7848ea5951f0eb40833c  gcc/diagnostics/file-cache.cc
! 953997b1348037b635e0ed8b419ee4cb  gcc/diagnostics/file-cache.h
! 38a974be0ac9d02c9cab99f63b9a8dab  gcc/diagnostics/html-sink.cc
! 9bfc242600165929baa4ed6bdc70665a  gcc/diagnostics/html-sink.h
! 6f82c403415d0c3795d5d4ebed1c7857  gcc/diagnostics/kinds.def
! 20fe4ea018233bfcec930d7b424d3f61  gcc/diagnostics/kinds.h
! ab7a3fec07fb3707eb3fc48d2a21766a  gcc/diagnostics/lazy-paths.cc
! 9655a0a0e430a6a2ba69658964459c51  gcc/diagnostics/lazy-paths.h
! afd3c6f196089854a817371517bfcff8  gcc/diagnostics/logging.cc
! 080fbfd322c971aa2debab40762144cf  gcc/diagnostics/logging.h
! f913704ee00dbc52127670b4635b53c3  gcc/diagnostics/logical-locations.h
! d13834e2fb03b93add424af52ff2534a  gcc/diagnostics/macro-unwinding.cc
! 5d4f7fd38740d48dc45e7b72294c5292  gcc/diagnostics/macro-unwinding.h
! e0a3d44dad66ae08d00871e86121651d  gcc/diagnostics/metadata.h
! a7216089abd668f6894bf682d4e14cdf  gcc/diagnostics/option-classifier.cc
! 7bd87e08bba4b885000459f5c63f9fb2  gcc/diagnostics/option-classifier.h
! a74b1af0c77cdd07b1407ab0b26bf0c3  gcc/diagnostics/option-id-manager.h
! b8034736dae3f6d654eba555f64e1c26  gcc/diagnostics/option-id.h
! 4312bfb6416bc572f489d4f88120fcba  gcc/diagnostics/output-file.h
! 779a17b4c80cd59e103fc9fc8857c39a  gcc/diagnostics/output-spec.cc
! 4efa05230b340a362200662a0a82704d  gcc/diagnostics/output-spec.h
! 009ecd89188fdd51b7313ff581575aa3  gcc/diagnostics/paths-output.cc
! 35957f691aa90b1f7b9f489e7da9e720  gcc/diagnostics/paths.cc
! 91f77747402437b068da1e7be934adec  gcc/diagnostics/paths.h
! 500f7227a2ab82c4e3a69f6ef7247649  gcc/diagnostics/physical-location-maker.cc
! f2fb8f9bb1108dcb8ed2f14d21ea9baa  gcc/diagnostics/physical-location-maker.h
! dfb8e89ff742334ac84bdea45b33bbc5  gcc/diagnostics/sarif-sink.cc
! 2c419fdad8de985a25f5fe60bd707c38  gcc/diagnostics/sarif-sink.h
! 04b71f2b22c1f09aaa33b8832fc5272a  gcc/diagnostics/selftest-context.cc
! 3dca4c2a57fd5d49cbeeff9b7242c57a  gcc/diagnostics/selftest-context.h
! 8d98481a717b9a46a7dd49da77558c97  gcc/diagnostics/selftest-logical-locations.cc
! 0cdba7e5ba364335cdc4500b9b8d18dd  gcc/diagnostics/selftest-logical-locations.h
! c1dffa76e5cbe979922cfa8c04cd8f4f  gcc/diagnostics/selftest-paths.cc
! 02797af5dc62e256545820e3a2ae46b1  gcc/diagnostics/selftest-paths.h
! f93ed419e6bca5c8b1ad19401350dd8d  gcc/diagnostics/selftest-source-printing.h
! c1ba108db39c2659b939d1a8a6cba51d  gcc/diagnostics/sink.h
! 773556a94d665c3fdd1987bea3f8ebc1  gcc/diagnostics/source-printing-effects.h
! 6ec2067466f54f6f0fae667db149cb0e  gcc/diagnostics/source-printing-options.h
! 0731d456763d4fd19a1998fe062b56b0  gcc/diagnostics/source-printing.cc
! 8c3dd8ab69d4e081438047eefdea5bd4  gcc/diagnostics/state-graphs-to-dot.cc
! 2265f4f5467f6730d0d05d3b4cda9465  gcc/diagnostics/state-graphs.h
! b8ed1edfd69dbfeaed246e93e113210e  gcc/diagnostics/text-sink.cc
! 9d3e135a30ca73f8b1930b0910dac3c0  gcc/diagnostics/text-sink.h
! 80cd25171e4056b26c59c89d93ca6249  gcc/diagnostics/url.h
! b5e210d1bf47aa0c5045d643c69881e0  gcc/digraph.cc
! d6ecd8aebafe1dbfb0bbadb8dd0883f9  gcc/digraph.h
! 31a6e794b23ff241bcbf29afa6a07b83  gcc/doc/analyzer.texi
! cc657ccd366b9f0e48a9558ccdd011f7  gcc/doc/avr-mmcu.texi
! 2581a0356eecad7492c6033a42d08375  gcc/doc/bugreport.texi
! 07178e2656fefca3307281845df4b4dd  gcc/doc/cfg.texi
! c467778ac808c70043fed1b27803d72a  gcc/doc/collect2.texi
! 50241f29652a293e5c8231e2d1ada864  gcc/doc/compat.texi
! 16fb402545f65821995705c14921265b  gcc/doc/configfiles.texi
! fe1e57cdb00aa5c5d132ea01fc2e1440  gcc/doc/configterms.texi
! 0e05717a84a4459f53d155243f6ca0b5  gcc/doc/contrib.texi
! 43c75b80852d2080f354a4ea82a17119  gcc/doc/contribute.texi
! 8a48be49d04eec29ee65fbea8e8579a6  gcc/doc/cpp.1
! 01b90bbb8de27011174965d678e192ab  gcc/doc/cpp.info
! 68c69bad85c1838df5c6d83463b871a7  gcc/doc/cpp.texi
! a0c8079a0b836c78e78f046d38b8eeff  gcc/doc/cppdiropts.texi
! ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/doc/cppenv.texi
! 90ac9a88fc6de29ead966039ca5d8e8e  gcc/doc/cppinternals.info
! 301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
! 421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
! d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 55ede2729a26890ffb4d407525a1d7d8  gcc/doc/extend.texi
! 483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
! 7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
! 022e0e4d118256482295983272e1468c  gcc/doc/fsf-funding.7
! 598e2e120594a4ffcad96c98643ffba5  gcc/doc/g++.1
! 0c4d69dd5b48690a83e796693796ef3b  gcc/doc/ga68-coding-guidelines.info
! 5405c10b645c109ccd453b0360253627  gcc/doc/ga68-internals.info
! 6a67b77efb4d39d4685f73e3dd72ba2c  gcc/doc/ga68.1
! c9e6ff01e776194a74b33163b6125fc5  gcc/doc/ga68.info
! 598e2e120594a4ffcad96c98643ffba5  gcc/doc/gcc.1
! 21bf9dc5f642d8facc41e42b9cbd9ca9  gcc/doc/gcc.info
! 66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
! ec3633a7ee61c32f1ddf16ec4a9d49fb  gcc/doc/gccgo.1
! fcc03ec8e15e766fd5b3c55aa54fb08e  gcc/doc/gccgo.info
! fed8e92654157d6deaa9519f381969c2  gcc/doc/gccinstall.info
! 24530eb0b468d17089d2898ed0b2df69  gcc/doc/gccint.info
! cf131214fef768edb46718198e8fb4fd  gcc/doc/gccint.texi
! 8cc3a3f66145cfaec4478c90f7109001  gcc/doc/gcov-dump.1
! c4c2d60b79a670894debcf60da0e71e9  gcc/doc/gcov-dump.texi
! 81f5595364c3b2b99740e48df61afb36  gcc/doc/gcov-tool.1
! aa98c00cad5e7ccb99b898a166288d0c  gcc/doc/gcov-tool.texi
! c8d9f807bcc2f7839790fca46b2bc475  gcc/doc/gcov.1
! 8910763f8e2d80436cd2a70891012ad7  gcc/doc/gcov.texi
! 51fb0231d4f7786580a454b62217c000  gcc/doc/gdc.1
! 745b5f8ea746106926b86a58305c69ef  gcc/doc/gdc.info
! 22b26b2a0bc6f245726f2ab4df48b680  gcc/doc/generic.texi
! bbc8e49736eb16e92b2366752199a04c  gcc/doc/gfdl.7
! ed85122cc26c21fe6acfa0664ee85725  gcc/doc/gfortran.1
! 607c918bec01f4cbb7e80544f24c8474  gcc/doc/gimple.texi
! 9f08d4cf3f66f231a5df08660e5f8e36  gcc/doc/gm2.1
! a64adb557cca995c5483fc21a008f7c3  gcc/doc/gm2.texi
! 7d0981641364e44bed17ae79981ec52c  gcc/doc/gnat-style.info
! e1ee52d4e2645d6f12a4cd6979c78e34  gcc/doc/gnat_rm.info
! 95df9efe40a23736174288a05eaa03a7  gcc/doc/gnat_ugn.info
  dc4ccd9843d88bc01c909438dabfd6ab  gcc/doc/gnu.texi
! 60d215d9a02e195fd6ba229de39eb91d  gcc/doc/gpl.7
! 5f2ceccace2ed8e79100ae9c90d97753  gcc/doc/gty.texi
! 16bc58e98e83e3a41c9417ad0738c650  gcc/doc/headerdirs.texi
! cb2462af7cefb9323958455da8bb29f8  gcc/doc/hostconfig.texi
! bde53a0a190c3a74b047eb2b53c080eb  gcc/doc/ifn.texi
! 27f346799737382c572e0b085fa46374  gcc/doc/implement-c.texi
! 750c860cd31bb47133ca5da76d82247d  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
  8787976f426cd52da24a856cd41d87be  gcc/doc/include/funding.texi
! 37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
! 30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 796fb7b9b100b5c5c650f51ccdc09946  gcc/doc/invoke.texi
! dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
! 46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
! c324f8a8dbaa7710d62a9abcda567b43  gcc/doc/libgdiagnostics/conf.py
! 92a51ee603389de437fbe3cdf0d4a5c7  gcc/doc/libgdiagnostics/index.rst
  642a964912e66e816e321e71891b81ec  gcc/doc/libgdiagnostics/make.bat
! 556df928603cb772dc7a48485943f94f  gcc/doc/libgdiagnostics/topics/compatibility.rst
! 010d0109304eff42e162eadbedbd7d49  gcc/doc/libgdiagnostics/topics/diagnostic-manager.rst
! 42e30395a40053f893e42e4b941d966a  gcc/doc/libgdiagnostics/topics/diagnostics.rst
! 1f28e0210dcada74e72454537a2a7543  gcc/doc/libgdiagnostics/topics/execution-paths.rst
! f326ba543910f70f1fd79b493116ca9b  gcc/doc/libgdiagnostics/topics/fix-it-hints.rst
! 1b37fdc7b84bb97b7f75b08a18d3c0ec  gcc/doc/libgdiagnostics/topics/graphs.rst
! 4313fb76ad6a3b132219788b34a5d212  gcc/doc/libgdiagnostics/topics/index.rst
! 667a4a7b31ccff206b66144dd7f13e3c  gcc/doc/libgdiagnostics/topics/logical-locations.rst
! c2c9c6334ab68e7d63baad60186264e5  gcc/doc/libgdiagnostics/topics/message-buffers.rst
! 73559567963b4db8b8af63707401c518  gcc/doc/libgdiagnostics/topics/message-formatting.rst
! 97de4c2853265975047b437086c37086  gcc/doc/libgdiagnostics/topics/metadata.rst
! d15fd2849f7ef92bcbd429aa5e96562d  gcc/doc/libgdiagnostics/topics/physical-locations.rst
! 53fa515ded6fe7d706c7a2330e738b25  gcc/doc/libgdiagnostics/topics/retrofitting.rst
! 2b8c85443993a4fcaa359b9baa7a44ea  gcc/doc/libgdiagnostics/topics/sarif.rst
! 776f9de516b65ad90fee057f83177caf  gcc/doc/libgdiagnostics/topics/text-output.rst
! 23744f25b09d0bd71ff5e369490f52fe  gcc/doc/libgdiagnostics/topics/ux.rst
! b2a74fae979c37e7f033218ff888800a  gcc/doc/libgdiagnostics/tutorial/01-hello-world.rst
! 1213259806645a3bbf5d8bfe220cb102  gcc/doc/libgdiagnostics/tutorial/02-physical-locations.rst
! 7d628b9e4b6d026377938e0dd2c0472a  gcc/doc/libgdiagnostics/tutorial/03-logical-locations.rst
! 1e438739b608513f87954d2ad24c8dc1  gcc/doc/libgdiagnostics/tutorial/04-notes.rst
! 47de0e5ea5fbc804f1ea3ce18bc96843  gcc/doc/libgdiagnostics/tutorial/05-warnings.rst
! 44456092892ae70d871ef74f11b607b9  gcc/doc/libgdiagnostics/tutorial/06-fix-it-hints.rst
! 13c314a46ab1ad91bea6da262d123d03  gcc/doc/libgdiagnostics/tutorial/07-execution-paths.rst
! f5fc59139e2515e4b963a38ad77e3b84  gcc/doc/libgdiagnostics/tutorial/08-message-buffers.rst
  e0cdf1b3b23ffeebe52940c4ad627db6  gcc/doc/libgdiagnostics/tutorial/example-1.png
! 9ee967e13bc2bed3d3732b8ced2ce585  gcc/doc/libgdiagnostics/tutorial/index.rst
! f72fd7c6a31377f3060455a2da1a6506  gcc/doc/loop.texi
! 3db070f561dee44f5a24982187465f4e  gcc/doc/lto-dump.1
! c2fc9f8e6a1cb39a7237e4ac3d7fcd7f  gcc/doc/lto-dump.texi
! b1b6d8120056485e6de69be9493a2129  gcc/doc/lto.texi
! 8f9aed344219ba9d2969c5872c2a5610  gcc/doc/m2.info
! a0300f293e1294f68bbf43478b2f7e96  gcc/doc/makefile.texi
! f7e932ab983b28cd4bef523021fa9eb0  gcc/doc/match-and-simplify.texi
! 0608788c4d95ff33f3a82fb2718ae529  gcc/doc/md.texi
! afaf0b9b413500a77920c3963dcd3978  gcc/doc/objc.texi
! 79e8babebb4a40553fc011874ac21cbb  gcc/doc/optinfo.texi
! 3abb75ff788f5434702f351bf7a279c9  gcc/doc/options.texi
! 33d44a57f7ce7e135092b32ea91b6470  gcc/doc/params.texi
! 4f849b8e491aa0fa8b80c3cefe9dc5ec  gcc/doc/passes.texi
! e54937e427a2584ac4045286c725fab1  gcc/doc/plugins.texi
! 88abde052db83cafaf5aaa6be0471613  gcc/doc/poly-int.texi
! 213ccf5a355e5d07fc0dcef29825d6dd  gcc/doc/portability.texi
! 1b0bb6e47b9321945dac2c2eb8b7c12b  gcc/doc/riscv-ext.texi
! 223ad6aa09ad7d9a5bdba4f529e06349  gcc/doc/riscv-mcpu.texi
! e5c04f2c02ba7e9b9b88758cda8b8da2  gcc/doc/riscv-mtune.texi
! ee1dc9bba1241ba6755d90ce32847e63  gcc/doc/rtl.texi
! b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
! 244685a8e65d2616e55749c070fe9911  gcc/doc/sourcebuild.texi
! 9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
! d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
! c62ac968e3288a53eebcf150e3d453a9  gcc/doc/tm.texi
! 7e96646cc37dce39721bdc1ebba8e4d9  gcc/doc/tm.texi.in
! 61e80fc645225b20d6a7d34c7e7a404b  gcc/doc/tree-ssa.texi
! 2d263928ebdba30d4e096adf01758e79  gcc/doc/trouble.texi
! 83ea8ece47a3447f8da5fddd982c9d29  gcc/doc/ux.texi
! bb1210d252c998d89648c327c54d8c48  gcc/dojump.cc
! 06d1775c0518a9eb565928aa8123a666  gcc/dojump.h
! e8379699d9f307d3707c44dc4eb76468  gcc/dominance.cc
! bc82783dec92d26fe9d9508b3129eda4  gcc/dominance.h
! c84360f0ac80eeea4d03d024a7641faf  gcc/domwalk.cc
! 4e9a3ec0c984881f528142b8fc15c6f0  gcc/domwalk.h
! 50c271e098547a346cc0c60c44429606  gcc/double-int.cc
! f5408da3ae295306d302b711e20589dd  gcc/double-int.h
! 3e504c158ca95274231f719168303b88  gcc/dse.cc
! ca6a1fb79f0e812d961d3fcb6398aa54  gcc/dump-context.h
! 2a26e65e7e022371aacb41a45aafc234  gcc/dumpfile.cc
! 92a769cfebe5826f371d353067aa45fa  gcc/dumpfile.h
! 47fa43c05c1d54137379611522cdaa28  gcc/dwarf2asm.cc
! 3e33ddcae27cd933ce3db85c55b25274  gcc/dwarf2asm.h
! 3e8d5968bd4778af166d9bebc6947a2d  gcc/dwarf2cfi.cc
! df86d4116f050c5e09b21441b286f26c  gcc/dwarf2codeview.cc
! 2d9cf6bbe6a4ec143049dcca966ba581  gcc/dwarf2codeview.h
! a6c484f3c915c3d2ca47c185e95fbba4  gcc/dwarf2ctf.cc
! 6c4236fa6ead686398b8d5e7f89f8118  gcc/dwarf2ctf.h
! dff5b9260564a82b1706e5fb186081f2  gcc/dwarf2out.cc
! 5df3b4a58dc58c2bfafddd393d55496b  gcc/dwarf2out.h
! 5f6d1c1c6b68b50c4051ffa41f4aed26  gcc/early-remat.cc
! db4d79959e99b05eb2b5704c5e7c3bcb  gcc/emit-rtl.cc
! 3a8bc8b3a566860136261e030d4ea6fa  gcc/emit-rtl.h
! ebdcfebb5ff512939950e137b9ec8877  gcc/errors.cc
! 9b42baa30cba169cfdb199b0368ebbff  gcc/errors.h
! 520c0d56642dda02ef4ccce4f74aee5e  gcc/escaped_string.h
! 7f6022e9fa128cacb42f0aea38f4a525  gcc/et-forest.cc
! f27465a07748d0f8d8813d3107b5680c  gcc/et-forest.h
! e927ed115966aaba96ebbcd19b6acefd  gcc/except.cc
! d61f76c4b55102abe0d6908ab60489e7  gcc/except.h
! 2af24b814afb179d911a33733d593eba  gcc/exec-tool.in
! e3b758ef604b48f000fb865e38253381  gcc/explow.cc
! 9542db78094e70fd18442ce8a2b02264  gcc/explow.h
! 82a6eed405414fee082896bb6a2bd1c6  gcc/expmed.cc
! 2431f17e1f416ef0b9c38b1b975942a4  gcc/expmed.h
! eb75df114e69863f6370174248bbfadd  gcc/expr.cc
! 54b30ae6372ded76e375ade2621552a1  gcc/expr.h
! 8cca7ee32636f4556dceffe46dc6c948  gcc/ext-dce.cc
! 8ca3dbbcb4ffeb7bd2c8f46140869732  gcc/fibonacci_heap.cc
! 3c351443d52500c559f1f91eb65b96c2  gcc/fibonacci_heap.h
! e0210f6d49bd9ceab84ba5169fbcfc99  gcc/file-find.cc
! f80b38c70a85f9aeae9688b937b028ba  gcc/file-find.h
! 9ca41121de6a799cd4d23363ea1c9b0c  gcc/file-prefix-map.cc
! 5e60fafc10687b7792c492e27473ed4d  gcc/file-prefix-map.h
! 8c0b2a616de40bb6e8e1b06b0e90c702  gcc/final.cc
! 3f5e6ac132421f17c9c8232626731e46  gcc/fixed-value.cc
! 1caa253d024b0e3dcf3e6ba5ca8eeab1  gcc/fixed-value.h
! 57d536e4a123ac5161bf8eae17154030  gcc/flag-types.h
! 85741de0b8ea9e109ee1355d60bfd397  gcc/flags.h
! 4c030e20bb385d0d71edd6f9e1b647b0  gcc/fold-const-call.cc
! 0b4405bca4b699887c6a47e1d25b216c  gcc/fold-const-call.h
! 50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
! 0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
! a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 8dab4f3d9377c41c0ecddd0580b0243b  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** d1595b2ed8fb2a33f6ce0dc595f4f33c  gcc/fo
*** 6123,6400 ****
  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
! 3a560d16f485ed40604aa07a7acf15ad  gcc/fortran/check.cc
! 4cd50f78498dfdce8f3ba18b4639e2d6  gcc/fortran/class.cc
! 0b318d001d48262e9cebd6f7ebb84a37  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
! a232f4d280ad08511e2718281b3d1ab6  gcc/fortran/data.cc
! d85e2f2fc3ee4721563bd47719063fb6  gcc/fortran/data.h
! deb1774fa43b021f7fa8fde0fe6642d4  gcc/fortran/decl.cc
! c33e2c4c7527bec8a125dd093dc59f2a  gcc/fortran/dependency.cc
! 70111b1c7592e650c281b513c3cf2f47  gcc/fortran/dependency.h
! 9982bdf75ac5c9630f66edd2aea1fe8b  gcc/fortran/dump-parse-tree.cc
! 860343539ea7488e7bb44b94ea2b0f77  gcc/fortran/error.cc
! 5b4fa713f1f7da55d9cef4d9a5f58e45  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
! 557c4faded3d865f6f6304bf63f9bb85  gcc/fortran/gfortran.h
! 66b654ae96f9db6123eb6094d77b9974  gcc/fortran/gfortran.info
! 7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
! af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! 9253f176e44c2708e2c503251b27d6b8  gcc/fortran/interface.cc
! e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
! cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
! 5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
! 4a7f5923c18268b245556ded8e9ba554  gcc/fortran/invoke.texi
! 40352b9b20b1301c44326264b3f12cd1  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
! 6ea6f6099b39496a2bec1a9d299d96c0  gcc/fortran/match.cc
! 047778859aa899389e3b7e65c1439faa  gcc/fortran/match.h
! 8181d5e935b96288d9a51fb8138faefb  gcc/fortran/matchexp.cc
! 297213add624aabc75e1e83d2e504eef  gcc/fortran/mathbuiltins.def
! 998aff51cf65acc4d9efe5abebaaaff6  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
! 8282ea5f4e00d5c64da552ea2f31dcc6  gcc/fortran/primary.cc
! 59bd7cbbcab403c9a0270725082c69cb  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
! 6d5de0711cf335a4a100f5ff822f641c  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
! ba1a270a0735e8dd213da50ccb70ea32  gcc/fortran/trans-decl.cc
! e5e7102933a854ebc51d0ba2c6fb28aa  gcc/fortran/trans-expr.cc
! 4409efd13e205fa6886f73e55cc425bb  gcc/fortran/trans-intrinsic.cc
! 9cf7c294c06fdaea67dcd2b9ff2cf5ad  gcc/fortran/trans-io.cc
! b1027c10f4a35d0040a0da3b22a13d59  gcc/fortran/trans-openmp.cc
! 03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
! 3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
! 3910394d74aab50fba42ab60b9b75ad3  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
! afe13e4cb6e4bb9b9e64e59d1e72dbc4  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
! fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
! 1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
! 7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! c5d4ddea06a53f7125a589f1aee71c71  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
! 471bfcfc60f0edc8a89b0152f115f7fb  gcc/gimple-predicate-analysis.cc
! 642ffb039cf24eee2646936e4a143135  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
! 196fa6a0efca1e6e5b17a7cf0d0aaff9  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
! 584d3e97bc14e9745300416832fa94a2  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
--- 6338,6622 ----
  503f280f125abe2bb4e5bdec5ef74e30  gcc/fortran/ChangeLog-2022
  0d9eeb9e5186cca702161b2183930d7c  gcc/fortran/ChangeLog-2023
  c38eb0f2f19a6cb4b79be761670131e8  gcc/fortran/ChangeLog-2024
+ 4ee7229a03b31d9caf0d344269fb71ad  gcc/fortran/ChangeLog-2025
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
! 181571ce035e2781f9d8141b9163749a  gcc/fortran/Make-lang.in
! bcb129d4d143e6ec42b4ddec1fea30b8  gcc/fortran/arith.cc
! 1f3ee645ab25a3d858b555c00c0327ae  gcc/fortran/arith.h
! dd3d4373e33e0a14abdf26814a44662b  gcc/fortran/array.cc
! bc40e87bca719f86583a020eff2d6a73  gcc/fortran/bbt.cc
! ffbcec5b8defe520ab727e0fe1875285  gcc/fortran/check.cc
! cb187afae869d66ea5e19e55fa945052  gcc/fortran/class.cc
! dd10c0631591d5ca7c5366c0975943cd  gcc/fortran/coarray.cc
! ee80d28f835ba80db395760139037e11  gcc/fortran/config-lang.in
! 8a0026117bea2831adebb2edc422fb55  gcc/fortran/constructor.cc
! edad5176d72953374d67effefef0a605  gcc/fortran/constructor.h
! 2211e469409374173b8f910ebddfdf4a  gcc/fortran/convert.cc
! 556799c1101888d3f3775b95ecddeba4  gcc/fortran/cpp.cc
! 48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
! 213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
! ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! 172e32f224badeef54997bdf6521a592  gcc/fortran/decl.cc
! 92ac8b7c0f5e7976d4cd1297e9eb18c1  gcc/fortran/dependency.cc
! b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
! d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
! 65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
! 8b02343f75ef7cf3f9a4b9e0599abadc  gcc/fortran/expr.cc
! 354927f6cb797cd538c0ab8ab0e552bb  gcc/fortran/f95-lang.cc
! a9545d0b0a47cdd6d41ab654ae535ef1  gcc/fortran/frontend-passes.cc
! c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
! afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 19f6b89e3aeb2bc4bd5df602aac79552  gcc/fortran/gfortran.h
! 98b25d9806f1fff3cb278598e2af2485  gcc/fortran/gfortran.info
! 4b41c64e656ca5096ae5a265ff7b2116  gcc/fortran/gfortran.texi
! 9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
! 8cc7ef5f6337072e740ebd904093fcd4  gcc/fortran/interface.cc
! 7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
! 285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
! 3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
! c0b28df69feb22bcafd8aac543dd4fba  gcc/fortran/invoke.texi
! 381e1132c2b9f3171ccfce24fbd47ba2  gcc/fortran/io.cc
! 02af2e093ad4f92649a6370fa6dc3215  gcc/fortran/ioparm.def
! 1e9a62cdd76fcac49d91728090a8b2f6  gcc/fortran/iresolve.cc
! 943be43e521f4084734d183ff4a4fe5e  gcc/fortran/iso-c-binding.def
! e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
! 20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
! 6c8e23a76ef7d1e3480d2026a438a31e  gcc/fortran/lang.opt
! d00392d3f6683071d547134f20687f32  gcc/fortran/lang.opt.urls
! c35102e7caaf40998fe2ead86d2716da  gcc/fortran/libgfortran.h
! 66af5c8c6003d01ae9626e3792da6fdb  gcc/fortran/match.cc
! f7735c64af748cdef5caffae58a94749  gcc/fortran/match.h
! bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
! 915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
! 9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! a465af66dbc504ea8aab1ad5d516072d  gcc/fortran/module.cc
! 64d3d602ec86892f79980f52b2d5a35f  gcc/fortran/openmp.cc
! 7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
! 22050427a75e58c301664b6859f72718  gcc/fortran/parse.cc
! c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
! f8f17e966c9b06f3143a910582383fb7  gcc/fortran/primary.cc
! 607d6f18f8de6cc91165f7a125c5cd7e  gcc/fortran/resolve.cc
! e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
! 18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
! 664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
! cbdc87ddd4ad5837f1771e93f704a33e  gcc/fortran/st.cc
! ef5ff085d6f19e0b84135e46b7281b70  gcc/fortran/symbol.cc
! 4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
! ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! e52cc479259ccde25f372f6e15478a65  gcc/fortran/trans-array.cc
! a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
! 5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
! 98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
! 0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! 910ecb3b9cbacbba105f1752cef0504e  gcc/fortran/trans-decl.cc
! 7587366d5466b3ccf2ecc3152adf9e0c  gcc/fortran/trans-expr.cc
! 1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
! 9d578d72e2bcb2e0fc0dc71c709c80f8  gcc/fortran/trans-io.cc
! a7dd5c301725a5395b938c4328a5e0d3  gcc/fortran/trans-openmp.cc
! 974f8aeec761eac4ee1be974addd51d5  gcc/fortran/trans-stmt.cc
! 6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
! f8cac5e2268c177aff676d2dbb690f51  gcc/fortran/trans-types.cc
! 6b00c9b76b80a96feb87d86b4b06102b  gcc/fortran/trans-types.h
! 4cfc28dee8f1def4055b24dcd44fe9b9  gcc/fortran/trans.cc
! a5464198aa6b5015fdf27b2e0f276290  gcc/fortran/trans.h
! 95f35aeb3293f3036414b45c9c749d61  gcc/fortran/trigd_fe.inc
! 57ebe36e9e77bcb8eab87809d044e0f1  gcc/fortran/types.def
! 2512380133ab0852be268312deda8663  gcc/fp-test.cc
! 5bcff9f70e07fe2f3a5f5ef42b82a9bd  gcc/function-abi.cc
! fe144e1c2a0da30ffc9946e5adab7e6f  gcc/function-abi.h
! 45679bb0d98b3e87046958f7576b3770  gcc/function-tests.cc
! 3dabc996f369bcc83e5cbf5da580f241  gcc/function.cc
! 797473d7b92327caaa0bc2b71c14bc0d  gcc/function.h
! 96e0cc03035051e1904d130ab24fdfb4  gcc/fwprop.cc
! 32954fca43f23e905ac77e9879653355  gcc/gcc-ar.cc
! 485c27eb32ee3d08c3a797aa09f1e7c5  gcc/gcc-attribute-urlifier.cc
! dc24449cec927612e1de74dd4147bcbd  gcc/gcc-diagnostic-spec.cc
! b5d3e8bbbb8eaf9e3afad2074381d9b6  gcc/gcc-diagnostic-spec.h
! da0c39774e25ef2fb15801b85139c78e  gcc/gcc-main.cc
! cb61e8e62e8f8253c31da11a151fafb3  gcc/gcc-plugin.h
! 7b1166dad6238e1f91025f2e3204c1fb  gcc/gcc-rich-location.cc
! 94d4733d194d020db563ba701aa05d9f  gcc/gcc-rich-location.h
! e4981e3b10513f53ed20b58620dfc56f  gcc/gcc-symtab.h
! 2e5199869e1ce8b2630e4784fbc6e5e6  gcc/gcc-urlifier.cc
  3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
! 9110b89a48e29f0f75e8c76eca85c6e2  gcc/gcc-urlifier.h
! b05737bbc68b136b84a297541d337fb7  gcc/gcc.cc
! 09d73a192ef597ac58c7300df5ae4eb3  gcc/gcc.h
! 1edfbdaab776ee29780fe98d767e67ed  gcc/gcov-counter.def
! 5254cb252da1522a0364a1ef41fa47b1  gcc/gcov-dump.cc
! b3c028c9d05ffaa2d3d12afa3b3d6061  gcc/gcov-io.cc
! 15293b4de55e6ae02fef2f87d2745ed3  gcc/gcov-io.h
! 59c446908bdce0e047d42a7886f3904a  gcc/gcov-tool.cc
! 0f7759f10a61cc578edbf9c1fa9cec15  gcc/gcov.cc
! a03969607849dc4defdd19f2bd8f098b  gcc/gcse-common.cc
! 277a0876871bec996d99dc4d7e020460  gcc/gcse-common.h
! a6262b86b3027259364f310d5668e6a3  gcc/gcse.cc
! 6c898f98c15777ac9d8bb4163c0a3e74  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
! 428e170a25c648340a69d091bf530a40  gcc/gdbhooks.py
! 57d4203a56ff6a24e7cb8e58c6ce481c  gcc/gdbinit.in
! ed5344143eadda13d94953c181df0123  gcc/gen-pass-instances.awk
! 6f831e6ea1ea5c36525eaccefab39200  gcc/genattr-common.cc
! 44f67f14c8ebc167c082311145707ddb  gcc/genattr.cc
! a43321b90eb625fe2d7e21dfd047aaa6  gcc/genattrtab.cc
! 889143a974fa13da1076c4677fd427b1  gcc/genautomata.cc
! ae5fcc067c2f2a47e265e69a6896632f  gcc/gencfn-macros.cc
! fd409219ef263a27cda92f9d1c4eb36b  gcc/gencheck.cc
! d7f4e4ad676aca80544724e0f51991da  gcc/genchecksum.cc
! 0562bf20ae7e03782254312e1073c4c4  gcc/gencodes.cc
! 4615e86ea47838ed2b05196be62ca202  gcc/genconditions.cc
! ec5e5fc3d57d192887fb3cafa2a2aaf8  gcc/genconfig.cc
! 86fcfe59af8fbb4a3bb305daa9953f2a  gcc/genconstants.cc
! bb0cbc63b56dd2cac2f4c26a31b52860  gcc/genemit.cc
! 28e57f5a75df14fae9aa63f98b14b789  gcc/genenums.cc
! ee1224dcfed1706a3b2998a873dc5bfd  gcc/generic-match-head.cc
! e6281ed3f4adb00e0c2e8f582901500e  gcc/generic-match.h
! 33b885f3fefe6715194581a6825b84b3  gcc/genextract.cc
! fb2d66e9d3218c23bfc681858eeb96d7  gcc/genflags.cc
! 3dd21b6d301f9ab68a9ffcf2c9aaa9a7  gcc/gengenrtl.cc
! f32ead3d35fc8132312d61767dc0574b  gcc/gengtype-lex.cc
! de4a5ffc62d7e4741e33ab2ab501e601  gcc/gengtype-lex.l
! c739e2bedd7d49bc7a7c4ae61fe92df6  gcc/gengtype-parse.cc
! 85a239708d2de94a4c3f6227811ce6b3  gcc/gengtype-state.cc
! 13834fadd1e66741d9f4cfa8ec740173  gcc/gengtype.cc
! 337148b052ea38466fcac0655bce7ffa  gcc/gengtype.h
! 7e9bc10948cd198b2cefa5f28d9dc7a9  gcc/genhooks.cc
! 9590a53201abdb9f72cef6d94a05db8e  gcc/genmatch.cc
! e4047cfabe80236af3ae74f11e2d60c6  gcc/genmddeps.cc
! 07e47d3b20e79c811a134c66e6706df2  gcc/genmddump.cc
! f12cb23213547a0e97f979845e36473a  gcc/genmodes.cc
! 1017a97e7d44748a0ead3f1fdf92d676  gcc/genmultilib
! e0e7e5a247e6e2df33948f498b83390f  gcc/genopinit.cc
! 4cfac6c868731075442235977814cbba  gcc/genoutput.cc
! db35b39aef87d882541f7f9672bfb034  gcc/genpeep.cc
! 5302e340f0da37321cf3308d93375099  gcc/genpreds.cc
! 089452660c052d5b4b4aaf5e4651335a  gcc/genrecog.cc
! a2074e1e7b293dfeab14c887696f2299  gcc/gensupport.cc
! 4801a456f63c48a3c949feef327ab7d2  gcc/gensupport.h
! 96b33171630af12a42352b099f496aa9  gcc/gentarget-def.cc
! 8acc0caa2af3028b47651433e7186b9a  gcc/genversion.cc
! d064c39832a93757f2aaaf28c0f3a34b  gcc/ggc-common.cc
! 23e457f7a654cda444388a223e46a148  gcc/ggc-internal.h
! fdac1fc999e94311e86377934b7524b3  gcc/ggc-none.cc
! 23b5bd56200b80366927e7b2faf6b7f1  gcc/ggc-page.cc
! 3926d902b4a543d3419ee67b34f21bc5  gcc/ggc-tests.cc
! af4a387aec960d3e8380f41c5d139097  gcc/ggc.h
! 225bd195e5c278c21dbae19043529ac5  gcc/gimple-array-bounds.cc
! 0e83c85ff70314dbf36e2a5b6710eaaa  gcc/gimple-array-bounds.h
! 17b0847ee6f3c161fae2a55c78f982ed  gcc/gimple-builder.cc
! e8ef831ecab58724c781ef6c239eb959  gcc/gimple-builder.h
! 98c92461c94c7a7e1f7c09e62e05167f  gcc/gimple-crc-optimization.cc
! e33888307c479ce11d601ebd8fc8f0af  gcc/gimple-expr.cc
! 61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
! b75879478fadd54ee34b81fd544b7456  gcc/gimple-fold.cc
! d4285bef3fb661843b5d37c21e759c95  gcc/gimple-fold.h
! 109e0f96a9d27a8a25bb73d61b701bbc  gcc/gimple-harden-conditionals.cc
! ebf0fc6c9a10c730d10710fdec206805  gcc/gimple-harden-control-flow.cc
! d84e22c142fb0213a6e5c1fcee858bb7  gcc/gimple-if-to-switch.cc
! af51ef59a8083323edb4ffcf58bb96ed  gcc/gimple-isel.cc
! a46e0d38ab7dd494223ad8e5db7454da  gcc/gimple-iterator.cc
! f625775d4290d87f0c15fb36855776b1  gcc/gimple-iterator.h
! a7d47404d5fd61c66fd504e78960fac2  gcc/gimple-laddress.cc
! b8f35f8e0e2003ccbebac105a9aa5a81  gcc/gimple-loop-interchange.cc
! f1824ea9d0d35fb768daabd8649d44b3  gcc/gimple-loop-jam.cc
! b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
! 3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
! a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 0a36b2d5dfed3547fec4f0ff79e8372b  gcc/gimple-lower-bitint.cc
! 0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
! e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
! 95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
! fc046378b00fb047e166e06622975ba0  gcc/gimple-match.h
! cc3bc9f050d83e91dde135d1aaa4aa45  gcc/gimple-predicate-analysis.cc
! 2c11e59cf64a0fe28fb4b27481d61771  gcc/gimple-predicate-analysis.h
! 47be556d1ffdffe8df16fdea25e9fe0e  gcc/gimple-predict.h
! 507f851a06264c7415919c28e6afa3da  gcc/gimple-pretty-print.cc
! 188a3366d8d8b4ba413f704fa241a1e2  gcc/gimple-pretty-print.h
! 34865803d801f526fc01f3f4bbc75024  gcc/gimple-range-cache.cc
! c7aea08144ac3dfedef02e2efd73b2e9  gcc/gimple-range-cache.h
! d69dec8fe89be66b09721beced1a6f07  gcc/gimple-range-edge.cc
! 1001ed4a3c498c8d659f609b65b1b127  gcc/gimple-range-edge.h
! 12e32161282b4b47908436e4b4ba5fa5  gcc/gimple-range-fold.cc
! c84294b3bbebf60858449ae953fae160  gcc/gimple-range-fold.h
! 420447af73a8d6a64aa06e6b91ba94d3  gcc/gimple-range-gori.cc
! 3f397ecbcf642d6d782fe5e774680054  gcc/gimple-range-gori.h
! 871f906e172004d8ff9ab02c90b303c7  gcc/gimple-range-infer.cc
! 7b22b6e89d46ee067b182629fcb97a4d  gcc/gimple-range-infer.h
! 7a817f9363ddd6ca4c1690866d425d29  gcc/gimple-range-op.cc
! 2b35447fc9805b1aa9b1c06450e44a9e  gcc/gimple-range-op.h
! ef9ab4f8d42dd43ff48744090edb54b3  gcc/gimple-range-path.cc
! fd93abee2584b401c93735ddd00e75d1  gcc/gimple-range-path.h
! cdb2ce2b488734517babc7160c5009ae  gcc/gimple-range-phi.cc
! 88db961c40e1363bfbf18f6230509369  gcc/gimple-range-phi.h
! a4932ff9aca9b1faf77d94e18d1a98dd  gcc/gimple-range-tests.cc
! 6aea6dbdcfdbb9cc7eaba0885ef8339c  gcc/gimple-range-trace.cc
! e45cb6aa50c3ff1d1592d7f2758cb778  gcc/gimple-range-trace.h
! 02777a8ae49f72253e52431084e1cf91  gcc/gimple-range.cc
! d7845f849ad3dd11fdee8ef672936b7e  gcc/gimple-range.h
! 8a9bf24197a610cfba7953c1233dd5ef  gcc/gimple-ssa-backprop.cc
! e1a7065df5a3fda33b25bbeef59fcf3c  gcc/gimple-ssa-isolate-paths.cc
! 841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
! a773a19ee9b5880dae21824c39a73876  gcc/gimple-ssa-pta-constraints.cc
! 1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
! d29ad5283ef50f50d10619397e423ecf  gcc/gimple-ssa-sccopy.cc
! 7be48fef79411a4592494e787939e0b4  gcc/gimple-ssa-split-paths.cc
! 07a1825b625d551acbb670a51ae45fb1  gcc/gimple-ssa-sprintf.cc
! e2212a4ac7cbb1b0af8c28c4030c2a05  gcc/gimple-ssa-store-merging.cc
! 53ca8b2ca1464910f634a11084178624  gcc/gimple-ssa-strength-reduction.cc
! 70cf17c67df9cf152514b46de7067d6e  gcc/gimple-ssa-warn-access.cc
! 987d7fb5fd1bb73e756015bb5e1074bd  gcc/gimple-ssa-warn-access.h
! f7b0197d94bcfef5acc93f20515d5a8f  gcc/gimple-ssa-warn-alloca.cc
! 331fb5561e03bdd45decaf5d8b7ca0bb  gcc/gimple-ssa-warn-restrict.cc
! c7aaa3764ab30058c5d27da89f166ec2  gcc/gimple-ssa-warn-restrict.h
! 79daaffce22932c0052d6f1d1d6465a2  gcc/gimple-ssa.h
! 3e9d1470bb8be14b46583a41dbd2e164  gcc/gimple-streamer-in.cc
! 2c671fe032f79053e3dc7c23d6c140e4  gcc/gimple-streamer-out.cc
! 4ada319be66d0fbf4caee7923d5522c9  gcc/gimple-streamer.h
! 337ae8a4b25140b56e9b00cc3fdff1b3  gcc/gimple-walk.cc
! fd706cd70d2b5c6a514eef109a117112  gcc/gimple-walk.h
! e35a6083f100e687d2e1c31c46aabecd  gcc/gimple-warn-recursion.cc
! 4a43f38776337834415600ed88fb9563  gcc/gimple.cc
! 208b5a93bd83c9b24330756189d7f056  gcc/gimple.def
! 72589cf8cf38daf58173bae09359bc01  gcc/gimple.h
! 46bdb18976fdb25accadbfdc07f14a8e  gcc/gimplify-me.cc
! cc5b43d0554c69571cd007e727fbb7d1  gcc/gimplify-me.h
! b8dd4145c1714748ffcfa90cb4937033  gcc/gimplify.cc
! 00b4fa5f2537547bcddd508fd61459ca  gcc/gimplify.h
! ba3039c0ed9645080c52c0d4bc46096f  gcc/gimplify_reg_info.h
! 83f82d6779ea9f6500c863169abfca55  gcc/ginclude/float.h
! c2c3fd478ee78ae88547e1fc4d165018  gcc/ginclude/iso646.h
! 734ffe56e31f2f8d8f9408956ab15337  gcc/ginclude/stdalign.h
! 3b4e33dbf04651a7aafc65cadc987245  gcc/ginclude/stdarg.h
! 8bfc75ee9ad111dbd3ac4c3bedfafebc  gcc/ginclude/stdatomic.h
! 53bfc0c934d0128d1cabcfc7ee56bfa7  gcc/ginclude/stdbool.h
! 4d5642dcf8fc95cf1f9a24a24b0832bc  gcc/ginclude/stdckdint.h
! f8d621bc39b9f55ada78a1b83bd2430f  gcc/ginclude/stdcountof.h
! 8957c76c538b03622cf312f216574399  gcc/ginclude/stddef.h
! 93f39a4fa7685da0596671cb08c652ef  gcc/ginclude/stdfix.h
! 26919b435d64d05a529eb2d23f2bc840  gcc/ginclude/stdint-gcc.h
  86391b65e8323145e75d4643c0318fc4  gcc/ginclude/stdint-wrap.h
! b211f0e83f64dd7af1ae1c02e8f6c78f  gcc/ginclude/stdnoreturn.h
! 0457fa180975dc23b80618432d5ec93f  gcc/ginclude/tgmath.h
! b7f2d2a1581d62bd760fe18e028954fe  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! e949ccd61b5eda0115c017b9f638225a  gcc/glimits.h
! b1438bef085191d779678444cf99398f  gcc/go/ChangeLog
! b61d8a2887c33788f322082383ac88a3  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
! fc3aa9d328045b0971e06eac5b627662  gcc/go/config-lang.in
! 1b3d54091342a99156f5e4a0885a2861  gcc/go/gccgo.texi
! e7829845773c2abe8029bba949362324  gcc/go/go-backend.cc
! 52c95dd69d7ea14f58879593f136beef  gcc/go/go-c.h
! aaeae7b006db352931288beb0d50b6f7  gcc/go/go-gcc-diagnostics.cc
! 9980d873e50a0934d8d9df8e76680885  gcc/go/go-gcc.cc
! 7f451435be65dfa6a536094d2bb98ec5  gcc/go/go-gcc.h
! af490e404826dc876c8b9228cd31f30d  gcc/go/go-lang.cc
  c5d6aaa7e913ef205113a2bba2e5206f  gcc/go/go-linemap.cc
  91c7a6773e207cc086ae0888826cc3c4  gcc/go/go-location.h
! f282ac46f260f4b0c756c1714f9f3b65  gcc/go/go-sha1.cc
! ce23bd0b8703a2b5bc8a8395f401b3e2  gcc/go/go-system.h
  5d4950ecb7b26d2c5e4e7b4e0dd74707  gcc/go/gofrontend/LICENSE
! d02ba16ff340b2a48cd18f2fc168daba  gcc/go/gofrontend/MERGE
  3a55d95595a6f9e37dee53826b4daff2  gcc/go/gofrontend/PATENTS
  31c16a91d82f8ad3319819ebbba2d17f  gcc/go/gofrontend/README
  f121b2384cf688c9a215cd09a62e60b8  gcc/go/gofrontend/ast-dump.cc
*************** c08c0bc386a3e50faacf99daf94c080f  gcc/go
*** 6418,6424 ****
  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
--- 6640,6646 ----
  ead5ac25b7b99d361225e0fd940e286a  gcc/go/gofrontend/go-optimize.h
  5b59619fab7e543c5bb28dd8a6d62793  gcc/go/gofrontend/go-sha1.h
  8dded449a650e2e8c365f702612afc24  gcc/go/gofrontend/go.cc
! fab057ac93544c90861c9f7d8bddf49f  gcc/go/gofrontend/gogo.cc
  4b5329e9d8c401009b4b1ca29c4c4c29  gcc/go/gofrontend/gogo.h
  f9015ccccf7764d4c6eeae1bd5e01c7f  gcc/go/gofrontend/import-archive.cc
  e79da7b293afd4faedb3f5e30c60ef51  gcc/go/gofrontend/import.cc
*************** bfc57c7a1e73452c4b277ad13efbddbd  gcc/go
*** 6439,8023 ****
  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
! 5d8de21d911455415ff652b50a7612ec  gcc/internal-fn.cc
! 0eb0c9844fd70032778f6dc9c246eafd  gcc/internal-fn.def
! ef535a32c5b6f227a666c63523f6bb80  gcc/internal-fn.h
! bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
! deb111e00b2b07aa631595045bce5003  gcc/intl.h
! 47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! 0e159edeb47834067d833b5371c6471c  gcc/ipa-cp.cc
! b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
! 4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
! f0dcd3b109344ff1bf5de85f4598f9b2  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
! 191f4b6285522225f83d829c5d171ce8  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
! 128fc9f66e07a64e6ebecfe0e1f78765  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
! d2dba4605ad160fefb3b64e89280dee1  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
! dfa3caf86a8bb6ea08cabdee56e570e9  gcc/lto-streamer-out.cc
! 8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
! 78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
! 8acdefc9fffd53b3f4f16af933640084  gcc/lto-wrapper.cc
! a6e9af147c6704cc913ec083fc0af467  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
! 4c23fc224260b311ee1fd06bf909ab72  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
! e77e63c641c7e1cd6a919ca2565d5a53  gcc/m2/gm2-compiler/M2Check.def
! 3866e1c7f421c02e592f801e8c90b62e  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
! 5b42ae2b2bea2b053a252452ce4b57bd  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 3d68446acff53fae7c5d6c425f0cf67e  gcc/m2/gm2-compiler/M2GenGCC.def
! 27671eb59c0f3868cece3d034a2b15cd  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
! ce8b84d06b3a3f63e9c45f9a9d2c20ec  gcc/m2/gm2-compiler/M2MetaError.def
! d5fe10cebe9d9d283ec9fd8a1f255175  gcc/m2/gm2-compiler/M2MetaError.mod
! 30199ab614068ba2ade7649d91420d13  gcc/m2/gm2-compiler/M2Optimize.def
! 6b138f381fa3bee219d0c362567bbcb0  gcc/m2/gm2-compiler/M2Optimize.mod
! 4de3b1a67e6b8567572dd9a344366b3b  gcc/m2/gm2-compiler/M2Options.def
! 10a79e5e781dfec73ae9ae10d9aafe05  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
! f4818e2ea724bb28639ec9b6d2b964af  gcc/m2/gm2-compiler/M2Quads.mod
! 652e5da6749bca8b22b149208db30048  gcc/m2/gm2-compiler/M2Quiet.def
! fe82981e1fc213781973d90590cac13a  gcc/m2/gm2-compiler/M2Quiet.mod
! 3a524bf1e1843ed3472cde4c27661681  gcc/m2/gm2-compiler/M2Range.def
! 6579931bd23b1667200a0f9d433fcb22  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
! a034245ef0e759dd251bf062c90dbfb4  gcc/m2/gm2-compiler/P1SymBuild.mod
! dfc36d5f0832b9dd188d6557ffef76d3  gcc/m2/gm2-compiler/P2Build.bnf
! 5d3aa3c32f62966992c31b5bd6fe9bdb  gcc/m2/gm2-compiler/P2Build.def
! 7d034c383eee29111871cfe944a77b96  gcc/m2/gm2-compiler/P2SymBuild.def
! d6ca7bf00d339b38b18c4a9d412f0d77  gcc/m2/gm2-compiler/P2SymBuild.mod
! 3fd9aa5301c284bb3b4ee2d6479b711b  gcc/m2/gm2-compiler/P3Build.bnf
! 41f585d1e8e6fd1786dd36cb69cf3e82  gcc/m2/gm2-compiler/P3Build.def
! ad7a010b25f95dc012f12d3c97133a4b  gcc/m2/gm2-compiler/P3SymBuild.def
! 565aff18ea212b1dd1543f9c271ad130  gcc/m2/gm2-compiler/P3SymBuild.mod
! e00cf6ed8d0c099ab8f33394bfeb4dc3  gcc/m2/gm2-compiler/PCBuild.bnf
! 428e2092f5708fd9cf986ae14771fff1  gcc/m2/gm2-compiler/PCBuild.def
! 333e3b954ec138cdfb9ac52c7fc37ee9  gcc/m2/gm2-compiler/PCSymBuild.def
! 7204921904868e8be413f561906f6f54  gcc/m2/gm2-compiler/PCSymBuild.mod
! 08d1991abfb4f71b76010396a93251eb  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
! 74520973769eed309d975fde57dfd937  gcc/m2/gm2-compiler/SymbolTable.def
! 020a16ce4cfedb7743487867d50fff0b  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
! 0772ce4d76e23365f02b2e795ecdb061  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
  c952fa889a1808a16de26ca7e30f8101  gcc/m2/gm2-libs-iso/IOChanUtils.def
  fcb6e13112c3378c53ef65b83d811647  gcc/m2/gm2-libs-iso/IOChanUtils.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
! 59f2edb401d8ded52aeb2feba1f39258  gcc/m2/gm2-libs-log/FileSystem.def
! a9beffdbc626348ff790aa57fec4a80b  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
! 5c65d91e46dccc389ad8ea5dd5f9eaed  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
! 8c6c0b7ec2010aa39e9a7b9c4ce06fda  gcc/m2/gm2-libs-log/Strings.def
! 35444e4764abdaec69775a8063ce2f6b  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
! a536407a602f6237b202eb11c825a25e  gcc/m2/gm2-libs/ARRAYOFCHAR.def
! e4d6174f6234cab567e116421712d7e3  gcc/m2/gm2-libs/ARRAYOFCHAR.mod
! 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
  f3f1821c9653cd795a6e0f0bbf2390de  gcc/m2/gm2-libs/CFileSysOp.def
! f4cf4d8ab15291cf3125519c6568c434  gcc/m2/gm2-libs/CHAR.def
! ce54ff0a1cc024cd31d69c3d7151561c  gcc/m2/gm2-libs/CHAR.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
! 778d1ff012b61101cb234ca5b9ef9146  gcc/m2/gm2-libs/FileSysOp.def
! 3a3c2b8ed0b5f9b1297332990036351a  gcc/m2/gm2-libs/FileSysOp.mod
! 972105c4bd1196ec3fe7f29c84965fb1  gcc/m2/gm2-libs/FormatStrings.def
! bd7aee38dfe1f7908bdec7c13e1329c4  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
! 314fd76d36f9918545cd6932a994432f  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
! f20062f975b85328d9e6b331594e25ef  gcc/m2/gm2-libs/SFIO.def
! 333702071f6295fe11f5a10f9f46a356  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
! d856fab79aab71626127ae645d32826f  gcc/m2/gm2-libs/String.def
! ca53d6119b3cacaa5709bea08344f588  gcc/m2/gm2-libs/String.mod
! f1d0448dddb0806234b4324974795511  gcc/m2/gm2-libs/StringConvert.def
! 2827fc85c18fb254b57b06d1940f568d  gcc/m2/gm2-libs/StringConvert.mod
! cfb8769699afb47506e59253ad077e03  gcc/m2/gm2-libs/StringFileSysOp.def
! 8885e0f3776e679ed8d88fbc864757ee  gcc/m2/gm2-libs/StringFileSysOp.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
! 2731299d727fa2c03f42276fc7e7c611  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
  0660bb99723628b350ba665f6a743603  gcc/m2/target-independent/m2/Builtins.texi
  8007d011990ec6a27344c59375b632b5  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  af715e0938ee1e3521e0d6aeb1546db9  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 03eaafb97c5c63c6a17ffd76fa52f53c  gcc/m2/target-independent/m2/gm2-ebnf.texi
! 1a552f609a016d52022a219337b97975  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
! 550bdb35d0e034ca0050c574ba896d61  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
! 6a7f587617f64fe9418c3c61808f3594  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
! e3eced05eff33b00c0d027d5a0ccc709  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
! e5f5c700eae6affedb70e80bd1956763  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
! 98796ef3b5d188163285b9ee4f601424  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! 82f4a87ff4fd2d77e57f3f46d6e0c197  gcc/pass_manager.h
! 1a496be43b4e534d45cbad96b36be29d  gcc/passes.cc
! 7f0f76bbd4bb4eaf2a26cd45d0e14f02  gcc/passes.def
! e3f908061f2b051f55381b513a49022b  gcc/path-coverage.cc
! 57048d71e78511e69e3d39d60cb2f1b7  gcc/plugin.cc
! 995702441547e9826ffaea326d8be617  gcc/plugin.def
! 79cd4ea374ded38e9f3ef38c1624db9e  gcc/plugin.h
! 457c685dd4451503f097cc50d8a8bccd  gcc/po/ChangeLog
! fcae8297fb0c1be8e1502d7ca12c249f  gcc/po/EXCLUDES
! e4e35545a1fab9b9decbe9b06b468f72  gcc/po/be.gmo
! ad3ed4d3a0135fbf9610627185805a14  gcc/po/be.po
! 2c2ea0e3a2f4f05209b2462f48efcf95  gcc/po/da.gmo
! f06a600ee92348bc59755f3b4e3508bd  gcc/po/da.po
! 77d1784bcf27caba552f8c834cc25398  gcc/po/de.gmo
! eb727b61fc41c69f8eb58feed8f6f9af  gcc/po/de.po
! 189b9d1af87594807b0d0e10036a64c3  gcc/po/el.gmo
! 9dbd88f88adbc476a62e0c28592b8fe3  gcc/po/el.po
! 8f9262fe0fade6729b15cc2889510bcd  gcc/po/es.gmo
! 2a8b04245b2c87d2208d599cc879f4c5  gcc/po/es.po
! 748a1d219b34c4206fcf3385510cec82  gcc/po/exgettext
! 2762ecc24ecfc7e9011c49dba61ec8c6  gcc/po/fi.gmo
! fc82e39614cbd5712e526b5f96bc1f74  gcc/po/fi.po
! 40a528ec16b2d8b5b0e118e5178c2484  gcc/po/fr.gmo
! 52fd9ff2ae03e28d28ad65440d9548b2  gcc/po/fr.po
! 33581fd74cfda499d4056d86643578f2  gcc/po/gcc.pot
! ff4cf8b4b2214a0dc16a13d33f7823a2  gcc/po/hr.gmo
! a503217da1c8b34e8ca24bdf9a1da071  gcc/po/hr.po
! 4848a4683407c2972d525c4d6e39766d  gcc/po/id.gmo
! af3c799251d1ccd778d079cc33d83a66  gcc/po/id.po
! 8ddc18127bfe8e90ac8dcb2c77e9699f  gcc/po/ja.gmo
! cdadc1058f06d0ca6243acd3565a7639  gcc/po/ja.po
! 26fc9e0770528c19e5a53e914ba5e83b  gcc/po/ka.gmo
! e97a8754688d7e55785fc0c15f5fae20  gcc/po/ka.po
! 0de8f74f2b34971c167300979ff78a8f  gcc/po/nl.gmo
! 8b02cf1040a718f8a94520e44a5d64ee  gcc/po/nl.po
! b4dc56b564b19c79c09637b78cb1e712  gcc/po/ru.gmo
! 283eb799328c71583ee2d31139dc75e1  gcc/po/ru.po
! 3e10c91a14b575b8dbbcb945999adcca  gcc/po/sr.gmo
! 49c6f25b92dbcac486191d02ed2ff475  gcc/po/sr.po
! e23b05f4d7f549376b65a3e26514d213  gcc/po/sv.gmo
! 2dbe70e9733db8ccc56e287d4d44fdd4  gcc/po/sv.po
! 328b858d48b2fac40539c9a86714b992  gcc/po/tr.gmo
! 54ded6be61153742ab246036bba96cb4  gcc/po/tr.po
! 4caeaf8a87fcfc2439b2ae7fb64c1295  gcc/po/uk.gmo
! b4c32ff4e5ca9301187557f4169661ac  gcc/po/uk.po
! c465805295702ad0a2c41dce26c090de  gcc/po/vi.gmo
! 70f1d6d8472dae5eb46823c0a1022832  gcc/po/vi.po
! b800e07c51bb040e0ae4de798fa9d422  gcc/po/zh_CN.gmo
! 5417b6136960b041ba20098b4f72b944  gcc/po/zh_CN.po
! 01928bc0965eef40d2adf3f5e1c5b233  gcc/po/zh_TW.gmo
! b738479ec22d37eb065644041600a079  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
! 488f534f7176b25680f44ff969c4758b  gcc/read-rtl-function.cc
! cd83aae447be541259a39119965eecb3  gcc/read-rtl-function.h
! 9682aead4a158a567da54b3f2e28b405  gcc/read-rtl.cc
! 89ebe9b9c5342412d37a6014678c865b  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
! e647f3e6fa2e04e4752edd000055f636  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
! b1f87a78aa0bcacaf49d45b0a31b4f3f  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
! 380f5899ac477369766307c9879f3f15  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
--- 6661,8285 ----
  b4fcb26168619862a6f0f95ba175db11  gcc/go/gofrontend/types.h
  1a87c48a17e95c935789de3db97a6ba8  gcc/go/gofrontend/unsafe.cc
  2f67448e4d59de193cdd545537d8dd20  gcc/go/gofrontend/wb.cc
! 6da42a9ed6cb6c4d671da2eb73803f12  gcc/go/gospec.cc
! efc5cf70705a6c22ffe047d96998ee71  gcc/go/lang-specs.h
! 6e0652bd7ccdcdb78d376a8205fd39ae  gcc/go/lang.opt
! a34735cec9db2102b6780074cdec10ca  gcc/go/lang.opt.urls
! 51fc7243b0eaffea3c48f24b9255c233  gcc/godump.cc
! 773d89dbe837c253425c410f32a7ed8d  gcc/graph.cc
! 7b97e2f3559cf679fc02c1d088bd405a  gcc/graph.h
! e611633fdebb1228a285c56e1c6d95df  gcc/graphds.cc
! dd1387fbd91b4a77cc93eaeccbc382e9  gcc/graphds.h
! 979ca437d5a7a330085f9dced6892601  gcc/graphite-dependences.cc
! 33be2ae0920f4bb7cdc03a8a607d8800  gcc/graphite-isl-ast-to-gimple.cc
! 8a9846761507be70234804fa0670e4db  gcc/graphite-optimize-isl.cc
! 43b8c46f2433d33b862301d14c471232  gcc/graphite-poly.cc
! 59a3c55a0b983f049d2e21afaac23184  gcc/graphite-scop-detection.cc
! 838b19c6b1fd0108dc927968a8f8fd57  gcc/graphite-sese-to-poly.cc
! 885e360852bc9099d28d65205fb041ae  gcc/graphite.cc
! 2a5e08ebd25ca3561df4002a16feaef3  gcc/graphite.h
! b1e04a698568ce64b985a1a07ef88e42  gcc/graphviz.cc
! b4a116ba62ac3794dc989073ede9a6d7  gcc/graphviz.h
! 979ed510625d048a4ac3933f939983ab  gcc/gsstruct.def
! 2f6201c840b0701b37cfb25d21324a78  gcc/gsyms.h
  8585d36b3917e41144ca7ee8a6b5e065  gcc/gsyslimits.h
  053ee4a84e4593c88c088f25e153d1a5  gcc/gtm-builtins.def
! f769699135084c7641b26c98f76142c7  gcc/haifa-sched.cc
! d8ef080a2b3ba3ee183a04862d435ab7  gcc/hard-reg-set.h
! 9885346dec7f94219e6def782b8ddf11  gcc/hash-map-tests.cc
! 73c233c79267f021897530f6dbbc1dce  gcc/hash-map-traits.h
! 7ed09303f4740ebe9dc87a8c39cf001e  gcc/hash-map.h
! 0f92ffb7af5afaf777429696fb14ce94  gcc/hash-set-tests.cc
! 359ff64eb3d9e20f465e670b18cb9660  gcc/hash-set.h
! f29265526da54525b91c67ebc2565517  gcc/hash-table.cc
! 027dad09ee00b59074ece8f86d324827  gcc/hash-table.h
! 3b4fcd577cfae3f9ca00bc037eb76173  gcc/hash-traits.h
! 64ca744dca2bf3ddacff66fab9e2e717  gcc/hierarchical_discriminator.cc
! 58ea52bda41b7c2ba23508437b398f91  gcc/hierarchical_discriminator.h
! 8331c0d9ba20de52efcd84cb64aeb05c  gcc/highlev-plugin-common.h
! 5d2d5bad62f22fa9f35d1bb56a0c7466  gcc/hooks.cc
! a69f44bb2f29f2861e02a4e8ac64c734  gcc/hooks.h
! 3a862f932ba5c1ae0b78ab5fb729edb7  gcc/host-default.cc
! 479e4406ec671b24bb7ce7de3a604f95  gcc/hosthooks-def.h
! 9c6fda1e2e52d256e5477e5d0c6257fc  gcc/hosthooks.h
! f5de8589d497c4d607cadff1ce88dd5c  gcc/hw-doloop.cc
! 665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
! e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
! b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! 1c41ad8ff1fa0d161d36b093d76d3416  gcc/ifcvt.cc
! e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
! 370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
! bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
! 984873a66208a127d95460985f7a8950  gcc/incpath.cc
! 17ffbeb68fc11afc463c1f060838519d  gcc/incpath.h
! 5aa4092ef811b7dfc5987dcd38205bb6  gcc/init-regs.cc
! ea168cbe279a9f5955218fc5d10d09c5  gcc/input.cc
! 27f736f8d8cba5e5dd1c30bbe7272db1  gcc/input.h
! 80bc6558521a56fa4936fc0de8d01aca  gcc/insn-addr.h
! 7b76bd07f7eca4ab18a5cb546ce1c919  gcc/insn-notes.def
! c7c9628cd16fe3e0263939ceb0a865fa  gcc/int-vector-builder.h
! 467334ce1af8fb3e604c10cbab34aeb2  gcc/internal-fn.cc
! 4c5494dff903825d1d305853c27e1d1c  gcc/internal-fn.def
! 0e20e6632437546e842299f8f436cfdf  gcc/internal-fn.h
! 8a34b6abb2591b8c30c7fb4187261ee3  gcc/intl.cc
! 22c5866f6858fea288e5e2f1adc96e40  gcc/intl.h
! 920db3effdd509146b3f00be906c0885  gcc/ipa-comdats.cc
! 5404630cd27ac3f8e27db5f500fd775d  gcc/ipa-cp.cc
! 4d6f3ed19a0000835b68366644c08a7e  gcc/ipa-cp.h
! 0951d893930a76f52aa7e3f0fbd7201e  gcc/ipa-devirt.cc
! ae1e2041798741a74dbd720bfa8af4c5  gcc/ipa-fnsummary.cc
! 179f7c3a6fbca4d8bf253b9fc8e5b21f  gcc/ipa-fnsummary.h
! c4202186d7ed3511a93359f9b276438b  gcc/ipa-free-lang-data.cc
! bd8846ab41db2000eb2e2f0acea327ea  gcc/ipa-icf-gimple.cc
! 8afa732b4ae1f08ca41426bc2cb25ff9  gcc/ipa-icf-gimple.h
! cd6daf6036bc08df46ce01ec22dbdba5  gcc/ipa-icf.cc
! d2917be5e45902721d8174996b327a41  gcc/ipa-icf.h
! ba9e8a0870296fd0192e3595d9f582ef  gcc/ipa-inline-analysis.cc
! 22ead4e90306fe7616ffa86a26f913c8  gcc/ipa-inline-transform.cc
! 2f02dd416750a80f367ba00a48a769cb  gcc/ipa-inline.cc
! 4be9c78f2544b781ae0f89b60cd3dee0  gcc/ipa-inline.h
! 80b67405b84b45135ccd085ead5a18f9  gcc/ipa-locality-cloning.cc
  e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
! 4d6a8cf9b93ae2035da4279c028c0746  gcc/ipa-modref-tree.cc
! c546dc75ec27388fb7fe834c0aabd230  gcc/ipa-modref-tree.h
! e27bcdc8d3a6733a4b94a025dad33e21  gcc/ipa-modref.cc
! 323eab7a20907e08e7d9ca8e513c2259  gcc/ipa-modref.h
! 5de2d46c22758bff85e4365ba687f510  gcc/ipa-param-manipulation.cc
! dba11f7340415ca54713db0009a33093  gcc/ipa-param-manipulation.h
! cdf80ca29c90f97b4cca06b029f8353b  gcc/ipa-polymorphic-call.cc
! 80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
! a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
! 7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! d75925ce72349be5dcaa17dbeff538ed  gcc/ipa-prop.cc
! ab51096414a0554c4c1069e327ad7801  gcc/ipa-prop.h
! 14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
! f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
! 241970c18f4b9dd3845e663d39673789  gcc/ipa-ref.h
! 97515b33bc3be35a548e23f12c5647a6  gcc/ipa-reference.cc
! bd31c2a33971ac43c3f05636ba1f5e7a  gcc/ipa-reference.h
! 9837dd925a4c4433c8ee1d2065f510e8  gcc/ipa-split.cc
! cf0a44d67ef2094ff7b0a6fe8cfb4600  gcc/ipa-sra.cc
! 5c051de270e4ed5bc2334568c0f057f8  gcc/ipa-strub.cc
! 4bad901423b9006d36b6a6eebf0ea7ad  gcc/ipa-strub.h
! 6be870b33158bb3c3a5b384401b73d9d  gcc/ipa-utils.cc
! 1b3adda32a23d96454915564afd44757  gcc/ipa-utils.h
! e8fdd0fb4c0781c9b4e61b76ab303698  gcc/ipa-visibility.cc
! 0e1d906c3f0262784074bd48468f47d8  gcc/ipa.cc
! 2f84ec368b172642597dbc94650a54e9  gcc/ira-build.cc
! 8ea2643892cc48a87ac4ac49ebcc8a9c  gcc/ira-color.cc
! 9c6c7682ae19f9fa3d8b9ba1746b39b5  gcc/ira-conflicts.cc
! 0618c6fb3d26b6bb6d5ab0249895d4ee  gcc/ira-costs.cc
! 214cd984de0f99f1fe85cbf9560c5837  gcc/ira-emit.cc
! 620499663821b1d3f210ec72e11415a0  gcc/ira-int.h
! 0613274c3547e43cf06feb4dd8f59c0d  gcc/ira-lives.cc
! 92aa55d8016ef791959cf2bf0791c63e  gcc/ira.cc
! 788d1861bee2322ed419d2c51e2f738e  gcc/ira.h
! 9542ea2b8797fa5a935893fafae08ef3  gcc/is-a.h
! 090239f8ee6f441be82d0c8cbeaa00de  gcc/iterator-utils.h
! c43323e41604e8c2432907d21f2cd4b2  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
! 7228cd4eb7d36930c98343aa4d8186bb  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
! ef50f102add2cd5a72f5786276d658bf  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
! 70a3f3f24b0029284876a4c9e4ff319c  gcc/jit/docs/_build/texinfo/libgccjit.texi
! 95db249cf720c09c810779a4ec066363  gcc/jit/docs/conf.py
! 63f44108290b0b7a6634b085ede56848  gcc/jit/docs/cp/index.rst
! 18dfe8d8e74aa3e733d194fddcba5f5b  gcc/jit/docs/cp/intro/index.rst
! 6af53106be98f8cc066545ad73f37a31  gcc/jit/docs/cp/intro/tutorial01.rst
! afac1e8865058da3c55940114b030149  gcc/jit/docs/cp/intro/tutorial02.rst
! af4e952226ce1ce80a7e46a256ee8477  gcc/jit/docs/cp/intro/tutorial03.rst
! 69636a657c95dfdff830026d2c54a98e  gcc/jit/docs/cp/intro/tutorial04.rst
! 3e1a5a63dca29042b217abea36b254a6  gcc/jit/docs/cp/topics/asm.rst
! 14bbfeed31aaa107e9577f4e8dd0fbcf  gcc/jit/docs/cp/topics/compilation.rst
! f68d3c20276ff0446d974c173676084c  gcc/jit/docs/cp/topics/contexts.rst
! 28b813de2923c2a674098a45860080f6  gcc/jit/docs/cp/topics/expressions.rst
! f3a4e1fef90df856c95eaf5eb4535bda  gcc/jit/docs/cp/topics/functions.rst
! 0f700435dbaa47e2db6c722cae912d84  gcc/jit/docs/cp/topics/index.rst
! 1e868f17ed2ab13111b0b34624d9c564  gcc/jit/docs/cp/topics/locations.rst
! e1d9b806992d34c48c6a1451419b9d32  gcc/jit/docs/cp/topics/objects.rst
! 723a6bfd76c5182c8acee06062ef1aad  gcc/jit/docs/cp/topics/types.rst
  98a4c0efa41e5eb7177483e4cd99a81e  gcc/jit/docs/examples/emit-alphabet.bf
! 8c1dee71a6fd275637e182048ba44999  gcc/jit/docs/examples/tut01-hello-world.c
! c8a249eeb50f69ba49f1a61546d06ded  gcc/jit/docs/examples/tut01-hello-world.cc
! 9ef248b958bf199dc90e4f5df94bc0b9  gcc/jit/docs/examples/tut02-square.c
! b2dea7a42076ac793340e7a870303ff0  gcc/jit/docs/examples/tut02-square.cc
! f049eb768c047511a0c0feb816c011aa  gcc/jit/docs/examples/tut03-sum-of-squares.c
! 0c8bdaba0249674fed84a69a73370bb8  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
! d44558bc8dd4ddd3b0c04f0ed251bf24  gcc/jit/docs/examples/tut04-toyvm/toyvm.c
! 702d45e7be3178381627f7530ad70937  gcc/jit/docs/examples/tut04-toyvm/toyvm.cc
  3cbe9daf70398730ee60aa4caf2fc200  gcc/jit/docs/examples/tut05-bf.c
! c7b44e5adea7a7eba499586788b2271e  gcc/jit/docs/index.rst
! d190d214a7969047cc7466f55d8b48f3  gcc/jit/docs/internals/index.rst
  d72502d68617b68873d385bcee6e9c4b  gcc/jit/docs/internals/test-hello-world.exe.log.txt
  40d770c0fff5fdb135c9832c697a6e05  gcc/jit/docs/intro/factorial.png
! ef1be4625eb38b9de88b6bcd7c88c380  gcc/jit/docs/intro/index.rst
  11b13c2e317ff217420ed928ce4ba00e  gcc/jit/docs/intro/sum-of-squares.png
! 4ad7ab937168ae428e66a8944103640a  gcc/jit/docs/intro/tutorial01.rst
! a73d1bc379c1a7e6815de9a1e8b8a255  gcc/jit/docs/intro/tutorial02.rst
! 302ec6b1956048a7631ee650feb274b1  gcc/jit/docs/intro/tutorial03.rst
! a715b5bfc0dc5899735d2ab4b8cf81a0  gcc/jit/docs/intro/tutorial04.rst
! 701b132b6c9d27bdaf978c2614729041  gcc/jit/docs/intro/tutorial05.rst
! 9ed69e3498858f6108906526c30ecee0  gcc/jit/docs/topics/asm.rst
! 7369be8996b98e00db86123974082085  gcc/jit/docs/topics/compatibility.rst
! d30a79357cf7309b8e043c0336e190e4  gcc/jit/docs/topics/compilation.rst
! f854ba98c63b222a9aee0b73ce9ab221  gcc/jit/docs/topics/contexts.rst
! 5b524b918afaef8400ed74b72c23d026  gcc/jit/docs/topics/expressions.rst
! ce9aaa7891f48c2d12ba4a831dabb7e5  gcc/jit/docs/topics/function-pointers.rst
! 21a676842ec3ea4c60d3805dae2a2449  gcc/jit/docs/topics/functions.rst
! 89428211df050d69250f5d89d3f70ad2  gcc/jit/docs/topics/index.rst
! 20ffcdce82faff9562f8b4ab3c1db72d  gcc/jit/docs/topics/locations.rst
! dd3e557741686b66ca1167a20b54c8c4  gcc/jit/docs/topics/objects.rst
! dcd80134c1305a2dd554ebb65884ee1c  gcc/jit/docs/topics/performance.rst
! 4fff39e9dde5d0a3aaa7c66eee8c57d0  gcc/jit/docs/topics/types.rst
! 35e3b2007081d7c76c5a3d771d4804a2  gcc/jit/dummy-frontend.cc
! c4d0d546a4774b99788e76750cac6b2e  gcc/jit/jit-builtins.cc
! f61f8d4d404f4ad8eb63bd8d2b20364b  gcc/jit/jit-builtins.h
! a62ea7fafe6471c52e3565175e67cf1e  gcc/jit/jit-common.h
! 6c6402274f6a542f84e74582de3f1428  gcc/jit/jit-dejagnu.h
! 8b911ffa220b476e687953ffbeb7120d  gcc/jit/jit-logging.cc
! 7020559ef92ddfc5fbe89dc2d807a1e8  gcc/jit/jit-logging.h
! 477881c5e83410b52764ab6cec2a184b  gcc/jit/jit-playback.cc
! 564278cb55710a40327feb824b49fb05  gcc/jit/jit-playback.h
! 5ea379d9518786cdee67530fa3e4d9d6  gcc/jit/jit-recording.cc
! ee6c0313e813f59187c94cbdd475edb2  gcc/jit/jit-recording.h
! 0da592417dce91260cf30637da2c8a9a  gcc/jit/jit-result.cc
! 74832bb1d0d115c99f86460a4575af73  gcc/jit/jit-result.h
! 1433c3af63429eaf495e023075e44f02  gcc/jit/jit-spec.cc
! 0ece0c3141e6bcc01062afca690811dd  gcc/jit/jit-target-def.h
! d5db68e85f5fa8aea5fbb777a5722e07  gcc/jit/jit-target.cc
! b94cd3f33dd8327723d627ba7652ce1f  gcc/jit/jit-target.def
! 6a848addfcdec0df14315caf6e674ce2  gcc/jit/jit-target.h
! c4efccca4f433da58f195bc26719cf0a  gcc/jit/jit-tempdir.cc
! bd3ed120f383a7c313a644defb0f5e85  gcc/jit/jit-tempdir.h
! 06738451a256364b1635493756c9e63a  gcc/jit/jit-w32.cc
! dbe1c7cd9b6c2144785270d7d92b6d0a  gcc/jit/jit-w32.h
! 356d828dc1d398757c009123394406c5  gcc/jit/libgccjit++.h
! 7a60356c272514bb62e6e20704aad172  gcc/jit/libgccjit.cc
! e4ece7cdc20696f99063180449232226  gcc/jit/libgccjit.exports
! 175ca350cf51d56a7eaf72e6b286cefd  gcc/jit/libgccjit.h
! 2231affe16b9511efa0fd9f7c8acc0ea  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! f57ca8a4631d3af4233399fab01024f3  gcc/json-diagnostic.cc
! e0e5a496fd0a5916ecac553777ce07e4  gcc/json-diagnostic.h
! 811a81f6105b4fa37f3cd434779ba2f1  gcc/json-parsing.cc
! 27a2ff1923b71a5edb954d3878bbcca7  gcc/json-parsing.h
! 0d99db8e88be060df58fafd4756cc543  gcc/json.cc
! b4ec1e5549ac7493fc495fe210471de2  gcc/json.h
! 598bd9cf01e2b97715ef52af5b0f2241  gcc/jump.cc
! db38a11d4dce106f820651752f564683  gcc/langhooks-def.h
! bd54dcceceea2f4e69957be1075e54e8  gcc/langhooks.cc
! 1ad1f65d939a28daa29eab5ed8f2a2d2  gcc/langhooks.h
! e5aaf0926ffa1d66709fdc320212070a  gcc/late-combine.cc
! 4d0b64200ad1d5cc3dd88026fa268820  gcc/lazily-created.h
! e8cbb0a4e8793ea30337c86b60f8f64a  gcc/lcm.cc
! e05914fad6bd025e9b0679bc2b67e17f  gcc/lcm.h
! 69d7d786167955caa8935c62a136572a  gcc/libfuncs.h
! 5dfa4307fadfc21e29f7033260d947fe  gcc/libgdiagnostics++.h
! 9cdc06cea02544422c6d9de6b93bbf59  gcc/libgdiagnostics-private.h
! a9872b0d889ba45413e1a07e4f43c379  gcc/libgdiagnostics.cc
! 4d4d0cd8dcda7b7689febc6aa0b4dec9  gcc/libgdiagnostics.h
! a275aabf8e35245cb8dac2644db84e90  gcc/libgdiagnostics.map
! 80ef16fa54690067bd0d760f607182b3  gcc/libsarifreplay.cc
! 9dddaecb6e70b0ba0fe4f7070849aac8  gcc/libsarifreplay.h
! e19816bbba3b641b67df23200047c6ae  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
! 7ac480706b9a79fea1f3cd748d05a05e  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! 793ba93ec51c59e77540b5719042ec87  gcc/lockfile.cc
! 7c16e89438bc7bfb231d0318783fdd83  gcc/lockfile.h
! f706fe94b3a789d30e0800c32f27c242  gcc/loop-doloop.cc
! 5e9eef3deae00657d9fae0f862254002  gcc/loop-init.cc
! 238af7ac2e7f736ad6b21b4f7c735f3c  gcc/loop-invariant.cc
! 070c1552cdf3563c325e7f168abaf990  gcc/loop-iv.cc
! 360e5741e81a23bebec6e8a9a8484fd2  gcc/loop-unroll.cc
! 7812914e23c56c8dc2696a2147331691  gcc/loop-unroll.h
! c6ab645f373e1d6e9ddd212bfc3a95ba  gcc/lower-subreg.cc
! d49cf408f9415ef037523414c6e80764  gcc/lower-subreg.h
! 841cfef931adce1d98b9755eb3231569  gcc/lra-assigns.cc
! 5d1aa184ea3e3c5990e02acbdc762f00  gcc/lra-coalesce.cc
! bf71f34cd91c5ee6da1ca2cd0a642354  gcc/lra-constraints.cc
! b9148cac4e82b77ae6bcd023cdc6b172  gcc/lra-eliminations.cc
! ed7c49918557e8e7d34488711171abef  gcc/lra-int.h
! 57ce9967bab48c81b11b698d319f4d8d  gcc/lra-lives.cc
! 22cf0d7ee40c23d417d1d0a134ec0fe5  gcc/lra-remat.cc
! 39b048a65c498c5357cb27a2ce50a4df  gcc/lra-spills.cc
! b9fcc1996ccb833f1d43c26a4c7f9cf6  gcc/lra.cc
! 7a689be5eced38293e966e1291a1d1b9  gcc/lra.h
! a2447b9f89d62f80177f9fa725d4749e  gcc/lto-cgraph.cc
! 642fbdeaf8df2a150746f15ad409d071  gcc/lto-compress.cc
! c659fc218c745eb22044da66f2424ede  gcc/lto-compress.h
! a2303b56e4dc322d914b1efe0617e2ba  gcc/lto-ltrans-cache.cc
! 3f25ddb84fb557751613b1d2f7123cc8  gcc/lto-ltrans-cache.h
! 442399eb6d061d0396c090387026857d  gcc/lto-opts.cc
! 83a38b1ef3670762d9336c0229c75127  gcc/lto-section-in.cc
! 194f259575b70213773e1c8c0f8fcb5b  gcc/lto-section-names.h
! fa334f7be97c3e817d1992afa3d08ab9  gcc/lto-section-out.cc
! a7e9e00378501c6078d977c5ea3fabb3  gcc/lto-streamer-in.cc
! 09f467bb290592d8fe5a6fb2f07d7ca4  gcc/lto-streamer-out.cc
! 6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
! 2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
! edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! e0a850dbbc0dfc7c0d19d9cb7818445e  gcc/lto/ChangeLog
! 134de5a17ec798ec16df035aee2f01cf  gcc/lto/Make-lang.in
! 107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
! eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
! 7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
! cf03da3419b3411b1f34eec4bedd9929  gcc/lto/lang-specs.h
! 607e203bd47f1482dabbb19305db2bbd  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! fd64987e12215fb3f9f156e8e1c06e1f  gcc/lto/lto-common.cc
! bd162a24ac9bded9022e1bd104c1c013  gcc/lto/lto-common.h
! 29453d6e3c86dfa353e934a16aa96ce5  gcc/lto/lto-dump.cc
! a2c3d2b4ff2f28dc5c23ba7c85d4b17d  gcc/lto/lto-lang.cc
! d79b622fd1c2cc1ce24cbaec591de26a  gcc/lto/lto-object.cc
! 6b42550b459b3497cf9ec99c9f2c4094  gcc/lto/lto-partition.cc
! 33ccaf341a69e9dc93b04e32a3cd9fff  gcc/lto/lto-partition.h
! 75d42e9af6f85a1550a2f5a279bf3c69  gcc/lto/lto-symtab.cc
! a7092ba7593f4c0f94ce57ebba32641e  gcc/lto/lto-symtab.h
! 5d650e8bc18da5b7150e7080f68c9b91  gcc/lto/lto-tree.h
! f10e2305ef401f9fe9c5cd471948afea  gcc/lto/lto.cc
! e0d99466f393722c3e10caf535614ff7  gcc/lto/lto.h
! 41f943bdc734bffe0c6faf690dd66924  gcc/m2/COPYING.FDL
! 351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 0f81f1eef8f67179bc1dda59eda73cec  gcc/m2/ChangeLog
! 6c64ada2deff17585163556dd3634dc4  gcc/m2/Make-lang.in
! ed6143d60ab8fbfb423b65ba791d1faf  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
  3e6a5f14d741382ac3cffb2b6c8d2ce8  gcc/m2/README
! 9e5892484d92d23ea28e45aeab6ba792  gcc/m2/config-lang.in
  453bdaa9a532e423fb527f964f5b88d1  gcc/m2/config-make.in
  1fedeef70a344a1d73c4f25535361d16  gcc/m2/configure
! a4f72a16f2468f4ae7f6d7b1f0141e8b  gcc/m2/configure.ac
! 6b0f28329fd4f2d1f3be6acd9000b51f  gcc/m2/gm2-compiler/CLexBuf.def
! bf5e8b8e1bc3a1fb074a50c6a1fa7a8f  gcc/m2/gm2-compiler/CLexBuf.mod
! 0538bc9f83c5ab863fa98ed33b53b002  gcc/m2/gm2-compiler/DynamicPath.def
! 04c32679bc6c57fc52dfa53a42496cd6  gcc/m2/gm2-compiler/DynamicPath.mod
! 6218314013280e96926137ca6e10b74d  gcc/m2/gm2-compiler/FifoQueue.def
! 5ccadcd32f8629fecfbc3ed86974d686  gcc/m2/gm2-compiler/FifoQueue.mod
! 193dd04405d38b26905a9ce19fd30f37  gcc/m2/gm2-compiler/FilterError.def
! b3297ea050eb0a300f22677e34844253  gcc/m2/gm2-compiler/FilterError.mod
! 5192550ac2974419c5fc507e8326755b  gcc/m2/gm2-compiler/Lists.def
! 55aeb398c210dcf8b64391debb5c7bd8  gcc/m2/gm2-compiler/Lists.mod
! 6b746821b326c271ada9241ff520f75f  gcc/m2/gm2-compiler/M2ALU.def
! d2133bde9423259e5483edb3ae571c25  gcc/m2/gm2-compiler/M2ALU.mod
! c5dd4d2fe39e28eab5f2b60e230ee147  gcc/m2/gm2-compiler/M2AsmUtil.def
! 2c5e4d221aee3c35d4ddb75a4bf70928  gcc/m2/gm2-compiler/M2AsmUtil.mod
! e521a86bc066dd78ff8a706542f25373  gcc/m2/gm2-compiler/M2Base.def
! 5818f87d0e181bd9ef63ca760d530613  gcc/m2/gm2-compiler/M2Base.mod
! 826d220afa057c28ddbafc6ebcccedae  gcc/m2/gm2-compiler/M2BasicBlock.def
! ac57f3d6ff9fb752a1e82cd770204026  gcc/m2/gm2-compiler/M2BasicBlock.mod
! 89244c5720dc5e7b72098421952115c1  gcc/m2/gm2-compiler/M2Batch.def
! 6a8717b9dee362fb88e8f0e1d45fa926  gcc/m2/gm2-compiler/M2Batch.mod
! bf58c0e0b8f8b6fc08981fe9332ae917  gcc/m2/gm2-compiler/M2Bitset.def
! 5c90a2e84144f212a3bd89c29eb13fa8  gcc/m2/gm2-compiler/M2Bitset.mod
! 57d56ba3946265828e185332f9c769de  gcc/m2/gm2-compiler/M2CaseList.def
! d12ec738b0a32f46792b6fd71a4c7cd3  gcc/m2/gm2-compiler/M2CaseList.mod
! 8eac89f52ae655f82c6c4daeb28b1da9  gcc/m2/gm2-compiler/M2Check.def
! 625c909dfee3da368a6c9b7436b6a224  gcc/m2/gm2-compiler/M2Check.mod
! bcec29ed0d223002bcceb9ab2ab67eea  gcc/m2/gm2-compiler/M2Code.def
! f43ad6fae5474da2334080449c95ef2c  gcc/m2/gm2-compiler/M2Code.mod
! 5ec69435b58df303d4f71b026e94add0  gcc/m2/gm2-compiler/M2ColorString.def
! c594f691fd8d68b160080131856d0e33  gcc/m2/gm2-compiler/M2ColorString.mod
! e205f246b68836585893c71118b3fdeb  gcc/m2/gm2-compiler/M2Comp.def
! 5d1a55433be069a0160fe5caa88a0672  gcc/m2/gm2-compiler/M2Comp.mod
! 5cb87b449a6853646f2b6ed1a2480680  gcc/m2/gm2-compiler/M2Const.def
! 40c0a3d82ee6f47aea513db971beacc2  gcc/m2/gm2-compiler/M2Const.mod
! 10c28ef9ecc7e102a4cd23ca14bdd6ef  gcc/m2/gm2-compiler/M2Debug.def
! 502df32934aa703279fc8599275f3701  gcc/m2/gm2-compiler/M2Debug.mod
! c82f4d311337f599124747c822cab6ff  gcc/m2/gm2-compiler/M2DebugStack.def
! d98eab860f595715ab221357e23486dc  gcc/m2/gm2-compiler/M2DebugStack.mod
! b4235c856da6aaa9fcaed51669139925  gcc/m2/gm2-compiler/M2Defaults.def
! 3a1bbf80a780beaf5c28c23ce808052f  gcc/m2/gm2-compiler/M2Defaults.mod
! f3392259addb6061f2058a1da7c4993f  gcc/m2/gm2-compiler/M2DriverOptions.def
! 07706163a89138a7b9c93fd4aa7015fd  gcc/m2/gm2-compiler/M2DriverOptions.mod
! a5ef4da7ff1927c4fa26719d3722d77c  gcc/m2/gm2-compiler/M2Emit.def
! 76d7e5e0532c3b663030ecc5ecd8c3d5  gcc/m2/gm2-compiler/M2Emit.mod
! 50315a471c8912edf1cddf6ddb6eb3a1  gcc/m2/gm2-compiler/M2Error.def
! d53954ec382fd3eff4f3b8c86b0dcd3c  gcc/m2/gm2-compiler/M2Error.mod
! b3e4bda17641e1e30336776148caef62  gcc/m2/gm2-compiler/M2EvalSym.def
! e62a368ad1402d4621a0e52a68a7f6b1  gcc/m2/gm2-compiler/M2FileName.def
! 49b21f602ea504a9bbe924f558f10c18  gcc/m2/gm2-compiler/M2FileName.mod
! d8b31d49a5389a5b3fd9cfb8c6d0e20a  gcc/m2/gm2-compiler/M2GCCDeclare.def
! 1c36a89a70a1e1e7aa3f331d2c70582d  gcc/m2/gm2-compiler/M2GCCDeclare.mod
! 55b623d045f983abc3b3127741836cb8  gcc/m2/gm2-compiler/M2GenGCC.def
! a017c41f9b737804ee83f95b75d0912d  gcc/m2/gm2-compiler/M2GenGCC.mod
! 8e10b9228b005171cffbfaf29c0b39ca  gcc/m2/gm2-compiler/M2Graph.def
! 3a603290f463cb67ee6075bf663e58f5  gcc/m2/gm2-compiler/M2Graph.mod
! 6922dd2ebc05d1540cde23cd0a9cad00  gcc/m2/gm2-compiler/M2LangDump.def
! b48e120eaa57557806c43f751bb2022b  gcc/m2/gm2-compiler/M2LangDump.mod
! d6e1650c70800211c7c49958b979e1c5  gcc/m2/gm2-compiler/M2Lex.def
! b33f7cbcf140425148775e009d69b67c  gcc/m2/gm2-compiler/M2Lex.mod
! f1c8b9b7cc451d0a0968e0f2f2964cd4  gcc/m2/gm2-compiler/M2LexBuf.def
! 6e42a45fa68247041676de83f81afe21  gcc/m2/gm2-compiler/M2LexBuf.mod
! c7feba0529ec9f1384e5f1870167b30e  gcc/m2/gm2-compiler/M2MetaError.def
! 3606af1eae66fb6639cb770515babd19  gcc/m2/gm2-compiler/M2MetaError.mod
! b8e6e6168fa6e2173fa7e22f18eabb1c  gcc/m2/gm2-compiler/M2Optimize.def
! 01d22709ecf304513a2a515c5e5250d5  gcc/m2/gm2-compiler/M2Optimize.mod
! a36ac006b54c1d4eda8004c17d23cacf  gcc/m2/gm2-compiler/M2Options.def
! 58dbae8cf8fbce8dbef414f5e9533cff  gcc/m2/gm2-compiler/M2Options.mod
! a13e1352f58e9daa327137b39a2981cd  gcc/m2/gm2-compiler/M2Pass.def
! fc714671f7db85c592cacb191e0620f1  gcc/m2/gm2-compiler/M2Pass.mod
! 0cab4d324279a35bd916868acd20e2ef  gcc/m2/gm2-compiler/M2Preprocess.def
! 8894ace53d432d2ce4e4c98e2810c344  gcc/m2/gm2-compiler/M2Preprocess.mod
! 20a15d962a1430f5ef49bc8290be692a  gcc/m2/gm2-compiler/M2Printf.def
! da39f48047099bd234ed89bf24985ff8  gcc/m2/gm2-compiler/M2Printf.mod
! 3644d82df60af114b59d0a775f2fd22e  gcc/m2/gm2-compiler/M2Quads.def
! 7af0077bf3c28d93a0763bcda5432134  gcc/m2/gm2-compiler/M2Quads.mod
! c29afd56b66be81b33c59bfcb6c07915  gcc/m2/gm2-compiler/M2Quiet.def
! fca7b0c0b7f66bf8cb79c72286c59870  gcc/m2/gm2-compiler/M2Quiet.mod
! 91e73840daef7586a44408b4561f7e49  gcc/m2/gm2-compiler/M2Range.def
! 0a74fd1724890b10902b8e96d7451a5a  gcc/m2/gm2-compiler/M2Range.mod
! 27061e157da6920effedf50f2f162fd5  gcc/m2/gm2-compiler/M2Reserved.def
! 62d3f00f4f739d8b04afcd3d7af56004  gcc/m2/gm2-compiler/M2Reserved.mod
  ed9342d46dccb1fef2e7dd1b2a268c89  gcc/m2/gm2-compiler/M2SSA.def
! dbc4562d9381df3cc8b57d30154345cd  gcc/m2/gm2-compiler/M2SSA.mod
! 706804f01bc0d8f6eebcc42db16652c1  gcc/m2/gm2-compiler/M2Scaffold.def
! d4a6ef8e746bd6f3c02548c8023f420b  gcc/m2/gm2-compiler/M2Scaffold.mod
! 03ae55e239e695ac4c9f818b0c47d564  gcc/m2/gm2-compiler/M2Scope.def
! 4b0c233e2dd7c87ad348b6be0b12d655  gcc/m2/gm2-compiler/M2Scope.mod
! bf8171edfb65c4740dbd905512efb6f8  gcc/m2/gm2-compiler/M2Search.def
! 08cbdc55b5a1f146e454fc74c2f6ec4e  gcc/m2/gm2-compiler/M2Search.mod
! 808e02a2faa9acdfe21d6efe35ced3e6  gcc/m2/gm2-compiler/M2Size.def
! 3b09f8a3545fa37dc8557e40f30ff11d  gcc/m2/gm2-compiler/M2Size.mod
! 1d73eb17f8083a4bfe8e02604d696a1d  gcc/m2/gm2-compiler/M2StackAddress.def
! cca2995bd288865d36ea91ff7906e03c  gcc/m2/gm2-compiler/M2StackAddress.mod
! 18a4df1c5d7c99d82fcd9d4792c1d3c3  gcc/m2/gm2-compiler/M2StackSpell.def
! 2677893af7af0293d719129d384fb50f  gcc/m2/gm2-compiler/M2StackSpell.mod
! db4148d4139ea59b5e160a72cf01e727  gcc/m2/gm2-compiler/M2StackWord.def
! 196c153ea2ae90a29fbe125deb85cee4  gcc/m2/gm2-compiler/M2StackWord.mod
! fc881fe641d98fcd47ecb5b932425204  gcc/m2/gm2-compiler/M2StateCheck.def
! c70daab2b7e5f464ea94da1a1725baa4  gcc/m2/gm2-compiler/M2StateCheck.mod
! 9e862a777fbebdff22d5a8592293e66c  gcc/m2/gm2-compiler/M2Students.def
! b8e10200d47a9b6bab2a8cc0eb696353  gcc/m2/gm2-compiler/M2Students.mod
! 6e615ac5e4fefe451742d523ad26da18  gcc/m2/gm2-compiler/M2Swig.def
! e33b2990d3f6e00ce367a96eda682c34  gcc/m2/gm2-compiler/M2Swig.mod
! 660eff73e91949ea36171e55e4da2cb9  gcc/m2/gm2-compiler/M2SymInit.def
! 3ab5f6dcd67aad125055f0303b294b9f  gcc/m2/gm2-compiler/M2SymInit.mod
! a780a712b9d8268ca7144df9ceb3ce99  gcc/m2/gm2-compiler/M2System.def
! a41c89cf24913150e2eeecd99b78f541  gcc/m2/gm2-compiler/M2System.mod
! c76038d7dd185cbac5a6a12757586e57  gcc/m2/gm2-compiler/M2Version.def
! e0afad463a4921258f4cd3dc28c094c0  gcc/m2/gm2-compiler/NameKey.def
! 9b0ead7e9f19a8c4f506881630d81cb6  gcc/m2/gm2-compiler/NameKey.mod
! a752647da1c21c6a73a0aa10af13f164  gcc/m2/gm2-compiler/ObjectFiles.def
! 69841fd8f6837eda4e74b6330eaed8bd  gcc/m2/gm2-compiler/ObjectFiles.mod
! 4647bedb741b1047fae2aad1d73fc9b3  gcc/m2/gm2-compiler/Output.def
! 2a39af568fa8e76cd7ce90812f336e1b  gcc/m2/gm2-compiler/Output.mod
! c4a7333d2d3151cf194282db09e60fc0  gcc/m2/gm2-compiler/P0SymBuild.def
! b13a0d496b42781208a48af9fba67229  gcc/m2/gm2-compiler/P0SymBuild.mod
! ea749b3f1f2cdc4cfbed0fa9efa2619d  gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
! 84c0899ddaa37926546cb0a73244ca02  gcc/m2/gm2-compiler/P0SyntaxCheck.def
! ba414593dc28fbeceefaa6dbcf69bfc1  gcc/m2/gm2-compiler/P1Build.bnf
! ec9b883e25909aff61a2e88ffc2cd4f3  gcc/m2/gm2-compiler/P1Build.def
! 2eec970429ce183f2bfc0753760b4a58  gcc/m2/gm2-compiler/P1SymBuild.def
! 13cb1d083651c00b8173b0fa829b0593  gcc/m2/gm2-compiler/P1SymBuild.mod
! d69ea9ed942da62d5acc7f74ea020597  gcc/m2/gm2-compiler/P2Build.bnf
! c034671eb155a4718ef57376a7598220  gcc/m2/gm2-compiler/P2Build.def
! a6b43b9fe22a1157ef2c14ad6a4cc823  gcc/m2/gm2-compiler/P2SymBuild.def
! 1a9558caf63ab90bd1d5d21e5f3875ac  gcc/m2/gm2-compiler/P2SymBuild.mod
! b56a30a819a828a66186d078aa5a59b2  gcc/m2/gm2-compiler/P3Build.bnf
! 32026a68f5ed3b2674b262e94e288528  gcc/m2/gm2-compiler/P3Build.def
! 66014a705a37e6e267294174174a7023  gcc/m2/gm2-compiler/P3SymBuild.def
! 9dc06145a001f197da43b06c4d501535  gcc/m2/gm2-compiler/P3SymBuild.mod
! 9cbfaa2ba4a2910ab59514bc96bf0c8a  gcc/m2/gm2-compiler/PCBuild.bnf
! 19e9cb68f57ef23c7975a3b1d6d6fd54  gcc/m2/gm2-compiler/PCBuild.def
! 272274593ab8c133f8e7f2dc8bfabe73  gcc/m2/gm2-compiler/PCSymBuild.def
! f412a02991e260956b1f775b313ef79c  gcc/m2/gm2-compiler/PCSymBuild.mod
! 6bf558a0b4670b545e65d40db37d17aa  gcc/m2/gm2-compiler/PHBuild.bnf
! b9cb9f2ae8a86a40fbfa245b8e6d8317  gcc/m2/gm2-compiler/PHBuild.def
! 2a41b53520a0a0f542fcb6a472135829  gcc/m2/gm2-compiler/PathName.def
! a28d6ec33cff99b98e5f76a3d727a924  gcc/m2/gm2-compiler/PathName.mod
  db0fe572d275f12368c3037e218c3bd6  gcc/m2/gm2-compiler/README
! ad42bab3a76c189c12d5cd247a296165  gcc/m2/gm2-compiler/Sets.def
! 5830be316f7df1f8cc24f0414d5eefe0  gcc/m2/gm2-compiler/Sets.mod
! 3928207ff0cb90db96da05e3efbbad84  gcc/m2/gm2-compiler/SymbolConversion.def
! e3ee84c594058fda5abb0da0b38abdc7  gcc/m2/gm2-compiler/SymbolConversion.mod
! 105c7799c75e52b027a09f7286bb6ff0  gcc/m2/gm2-compiler/SymbolKey.def
! cc7938fda469626bb71698da630f4826  gcc/m2/gm2-compiler/SymbolKey.mod
! 5d796fab31b5f23acf0be2030a4c309e  gcc/m2/gm2-compiler/SymbolTable.def
! 092b6a4adf9d5f23bcc7e9c13f45c461  gcc/m2/gm2-compiler/SymbolTable.mod
! 673a84a350ba9897ed56e8baa69f6146  gcc/m2/gm2-compiler/bnflex.def
! af33784ed9b769b57f39dd395e222d37  gcc/m2/gm2-compiler/bnflex.mod
! df0741bfde88260280304e3903c4c1cd  gcc/m2/gm2-compiler/cflex.def
! 2513b17b1e4139c757141a159e953d7a  gcc/m2/gm2-compiler/gm2.mod
! 3b68615175c6a8a834400b385b4d4a9b  gcc/m2/gm2-compiler/gm2lcc.mod
! 7ad64c6392023cdfd764e08641a2b763  gcc/m2/gm2-compiler/gm2lgen.mod
! c1a9e95d6825ab3f1fb8b8786bec4733  gcc/m2/gm2-compiler/gm2lorder.mod
! 9e83fd74d01435ad03c4cf8944a6b12b  gcc/m2/gm2-compiler/m2flex.def
! b12608d082d09f8c42aa97beff0d79bb  gcc/m2/gm2-compiler/ppg.mod
! cedaad0c1ffe24ab182b6ae39bd9cbd1  gcc/m2/gm2-gcc/CDataTypes.def
  4ff5d76d706ef1de0bbdca3ebaff7877  gcc/m2/gm2-gcc/README
! 46968bebef22000048b57db188b5a247  gcc/m2/gm2-gcc/dynamicstrings.h
! c7ddc83575600f28b21639348f439809  gcc/m2/gm2-gcc/gcc-consolidation.h
! 6ead352dbae4884a531952ff889b5cf2  gcc/m2/gm2-gcc/gcctypes.def
! dd452e585db5993a9a11762a856be698  gcc/m2/gm2-gcc/init.cc
! 6040f569ee8fc9603923c8b226e1bd8f  gcc/m2/gm2-gcc/init.def
! 2c8465e098350dd2552056ed98d1b1de  gcc/m2/gm2-gcc/init.h
! 04b460019d1ed7a3ccc1dd8a74e2f0be  gcc/m2/gm2-gcc/m2assert.cc
! 4c5812a473aca55ce41e3265accc9b40  gcc/m2/gm2-gcc/m2assert.h
! 74b5d678564aab640901a5143d45af86  gcc/m2/gm2-gcc/m2block.cc
! a9b7da29fe9d3538c62038ef1277a297  gcc/m2/gm2-gcc/m2block.def
! bc3bf5ca27716cf6c79a3c5fc9b7ff37  gcc/m2/gm2-gcc/m2block.h
! 104347ac7a9bcc2b6755cadc0b0c2326  gcc/m2/gm2-gcc/m2builtins.cc
! c1f7bd2fcea0483b76908daee3c00337  gcc/m2/gm2-gcc/m2builtins.def
! 2f10360819a7896beb15c6df56d8e2e0  gcc/m2/gm2-gcc/m2builtins.h
! 5cc6cb1dbcf4ea6d211ae51163c907fb  gcc/m2/gm2-gcc/m2color.cc
! 1f4332596a8038a7e6076e298b5c6392  gcc/m2/gm2-gcc/m2color.def
! f3ed77bdba3291fae8e105605da16deb  gcc/m2/gm2-gcc/m2color.h
! eafb33a528ba3d9fc263721b8e50be2e  gcc/m2/gm2-gcc/m2configure.cc
! 46cc0e2da559fcf25150ab6341b41c0d  gcc/m2/gm2-gcc/m2configure.def
! e4c50c0187268e44d3bd922d7cf14ce7  gcc/m2/gm2-gcc/m2configure.h
! 95cb4618c3f6e3d416020afcd549b494  gcc/m2/gm2-gcc/m2convert.cc
! 992f6fb82505b86716b37259179e3c8a  gcc/m2/gm2-gcc/m2convert.def
! e166890edc23611e9b94cf338d9793c3  gcc/m2/gm2-gcc/m2convert.h
! 7f5868f730e6e105f6a0ef03545962c9  gcc/m2/gm2-gcc/m2decl.cc
! efc422ed8679d1829f08bc5e082e8c53  gcc/m2/gm2-gcc/m2decl.def
! 8823ec0fd5f4ff543b13e81e5bfe2d6d  gcc/m2/gm2-gcc/m2decl.h
! 850e133a8e203b591969fa777651aa6a  gcc/m2/gm2-gcc/m2except.cc
! 4ec296e7ba3c575de041e6ff72c6a41f  gcc/m2/gm2-gcc/m2except.def
! 7bac8cab4b97e41d3776f5a91b5bdf61  gcc/m2/gm2-gcc/m2except.h
! 4a85bf711a21ba29a4e5efdb4f80e099  gcc/m2/gm2-gcc/m2expr.cc
! 9672b9d68c5c7092ef7846fa209cb6d4  gcc/m2/gm2-gcc/m2expr.def
! 87e96f4b39ea24327a4cf7749d07e7fb  gcc/m2/gm2-gcc/m2expr.h
! c56c7cd39e916c4600366815a54e2233  gcc/m2/gm2-gcc/m2langdump.h
! 0de8b84a1fb38765c9a2a2befed4969f  gcc/m2/gm2-gcc/m2linemap.cc
! 7b54c2eb88421538983d5f5b1f017469  gcc/m2/gm2-gcc/m2linemap.def
! 79bfd6260606238dd65690c20ae41865  gcc/m2/gm2-gcc/m2linemap.h
! b01c1c9868652f064fac671cf017d5e3  gcc/m2/gm2-gcc/m2misc.cc
! 2d4b20e29df3cebff129b37fe5fb4c17  gcc/m2/gm2-gcc/m2misc.def
! ff41024c4b58263a672562d18577f96a  gcc/m2/gm2-gcc/m2misc.h
! c9bbb3e64e25871d9ea353e39b6cc7d6  gcc/m2/gm2-gcc/m2options.h
! 884879f9bd20559ecb001eca3b6b7cd0  gcc/m2/gm2-gcc/m2pp.cc
! 48914d4dd7e70d211ede1e624155c252  gcc/m2/gm2-gcc/m2pp.def
! 1346997e69018e1ce65f447a7308c338  gcc/m2/gm2-gcc/m2pp.h
! faaa11b16d263aada579dcab3e2aebfa  gcc/m2/gm2-gcc/m2range.h
! 4f7c5dbacfd5058574c352aa902c0b3d  gcc/m2/gm2-gcc/m2search.h
! 5ae8470850b9574477f68df5dc06987b  gcc/m2/gm2-gcc/m2spellcheck.cc
! 001668dcb232167a252a81dbfe56fdd8  gcc/m2/gm2-gcc/m2spellcheck.def
! 9dcad969be2378c4f02f2d40280c1321  gcc/m2/gm2-gcc/m2spellcheck.h
! caeb463a6c822199ebf3ffcb27f40fbd  gcc/m2/gm2-gcc/m2statement.cc
! cead87c5a76bfd7f6c765324f7c9d0e6  gcc/m2/gm2-gcc/m2statement.def
! 940e6cb9d6cb8b0fc2913c8246bf5bb2  gcc/m2/gm2-gcc/m2statement.h
! 2e983ca5758cdbfe3d6e9ab1cc41ef9e  gcc/m2/gm2-gcc/m2top.cc
! 1831801cc66a5036650018fdd153b9df  gcc/m2/gm2-gcc/m2top.def
! f15fcec96ef4d25680fce8a49a8b7d89  gcc/m2/gm2-gcc/m2top.h
! f3bc34e0888eb47c19475cd6994bf059  gcc/m2/gm2-gcc/m2tree.cc
! e7a09e0c721b368b4a964e7881111ce8  gcc/m2/gm2-gcc/m2tree.def
! 64441a5e3f99a4d1c311b51fcb9c8fd4  gcc/m2/gm2-gcc/m2tree.h
! 01a83c7813513b82767bfba817928328  gcc/m2/gm2-gcc/m2treelib.cc
! 3d6d2e6a8914d9ce3037c9afa87453dc  gcc/m2/gm2-gcc/m2treelib.def
! 8845aab965d1a15a4f1e8b1404622cdc  gcc/m2/gm2-gcc/m2treelib.h
! 3374303213e3c50d27e5465c5280bc73  gcc/m2/gm2-gcc/m2type.cc
! 7e806f5eb2670abef5280e205abd8f00  gcc/m2/gm2-gcc/m2type.def
! 9e3eb95f2919f215da985cde47568595  gcc/m2/gm2-gcc/m2type.h
! 7d7330512c93e8944bb8a5e8b940b2ab  gcc/m2/gm2-gcc/rtegraph.cc
! 8c1a56d34e3888eb65a17a11eb7f9076  gcc/m2/gm2-gcc/rtegraph.h
! dda0d623d5f5455ea1ac9d407784b464  gcc/m2/gm2-ici/M2Emit.mod
  d5db4a0704741e24958241fe74fd007c  gcc/m2/gm2-ici/README
! bbaa96bafb287d8cc574a06696477969  gcc/m2/gm2-ici/m2linemap.c
! 95c8f433802d773872cc09333e26db9f  gcc/m2/gm2-internals.texi
! 9c0098851e58d81e4929ce302803b5e9  gcc/m2/gm2-lang.cc
! ff91d2209e8148e66e085a16fc2e4b3d  gcc/m2/gm2-lang.h
  2b1d730bdeb600463475d3bb94f17f12  gcc/m2/gm2-libiberty/README
! 600b8c628ceca9f94fe3e1f03898f66e  gcc/m2/gm2-libiberty/choosetemp.def
! 652853cb1b9ab58bd467887d10aea198  gcc/m2/gm2-libiberty/pexecute.def
! 0262355ea61a03694e9f28d974863b47  gcc/m2/gm2-libs-ch/M2LINK.c
  62fbe07131fda60be5a71a8773c3dcd4  gcc/m2/gm2-libs-ch/README
! d5fd31746f875f683b3075792b8ffd08  gcc/m2/gm2-libs-ch/RTcodummy.c
! 0678c0e7eb1618a6f95491ec866ff537  gcc/m2/gm2-libs-ch/RTintdummy.c
! 75c3ccf715844326141b5e90e04e2314  gcc/m2/gm2-libs-ch/Selective.c
! 9b86ff3889b4b2490b4103876b2d9143  gcc/m2/gm2-libs-ch/SysExceptions.c
! b90bdf159aa8f20fe6d817832ca8cdc4  gcc/m2/gm2-libs-ch/UnixArgs.cc
! 2e32542b0f458686087da44d5158fa9c  gcc/m2/gm2-libs-ch/cgetopt.c
! 8a709aa9f152dfaf456a382d1a760fda  gcc/m2/gm2-libs-ch/choosetemp.c
! 54531ffb90af8a932f94bfb6a4a392f6  gcc/m2/gm2-libs-ch/dtoa.cc
! 9f7293df804a358ae94647710e018b24  gcc/m2/gm2-libs-ch/errno.c
! 48a0ab04a0fb8be8d8d299c336f92b2e  gcc/m2/gm2-libs-ch/host.c
! 6d149f0a0e6021ca983d9a0f1aa0f0a3  gcc/m2/gm2-libs-ch/ldtoa.cc
! fb705f1fcfee58780ae389e9addc8431  gcc/m2/gm2-libs-ch/m2rts.h
! 6d49be6df91366110c60310e6ef1a336  gcc/m2/gm2-libs-ch/termios.c
! 37ca83cda182bfb9d1f14fa9b28cc5df  gcc/m2/gm2-libs-ch/tools.c
! e52b6b45541a96a2bba097056c60df26  gcc/m2/gm2-libs-ch/wrapc.c
! 9df51d0225e4510bb323a32f7d12b9b0  gcc/m2/gm2-libs-ch/xlibc.c
! 84fc50a4bae5e5e1cd41fe31b1d0c2a1  gcc/m2/gm2-libs-coroutines/Executive.def
! 244755823e25b18078417556ae376e98  gcc/m2/gm2-libs-coroutines/Executive.mod
! 5607a7cd7bb14eb999558a125116c1e4  gcc/m2/gm2-libs-coroutines/KeyBoardLEDs.def
! 15c4cd36bd6ae18f7acc402906ebf8d3  gcc/m2/gm2-libs-coroutines/README.texi
! a67384943ef769caaea4e4e8a7abee58  gcc/m2/gm2-libs-coroutines/SYSTEM.def
! 914f2e0105a1207cae029f1886075932  gcc/m2/gm2-libs-coroutines/SYSTEM.mod
! b6018f6b63f3726e04c0f915c720a979  gcc/m2/gm2-libs-coroutines/TimerHandler.def
! 1b155387db93a04c5b557df593fc8c06  gcc/m2/gm2-libs-coroutines/TimerHandler.mod
  389f62af2918433359e5d632b9cfa7cb  gcc/m2/gm2-libs-iso/COROUTINES.def
! 2790370333b037bb751d7343387043a8  gcc/m2/gm2-libs-iso/COROUTINES.mod
  b40ce77b637c8356536cc7317b37bd15  gcc/m2/gm2-libs-iso/ChanConsts.def
! 110bba4846cc729150a8be2451e96098  gcc/m2/gm2-libs-iso/ChanConsts.h
! 3b9ea82b14f8e10fa67eca733f98c5c7  gcc/m2/gm2-libs-iso/ChanConsts.mod
  26d4fa17c751999369c175e64f4db462  gcc/m2/gm2-libs-iso/CharClass.def
! 92a8b9574735ca061e9d20359569f286  gcc/m2/gm2-libs-iso/CharClass.mod
! 68a3e39b6ab1e21145fb1c249ef5597b  gcc/m2/gm2-libs-iso/ClientSocket.def
! 63637c6a3f00b5f2e835950c24b34942  gcc/m2/gm2-libs-iso/ClientSocket.mod
  7e412d2d4dd38bc7acae6ef37f58a343  gcc/m2/gm2-libs-iso/ComplexMath.def
! b54117a718eb3b646093bba99870d0bd  gcc/m2/gm2-libs-iso/ComplexMath.mod
! 5cc73050a072369a92a30ab5d9b27384  gcc/m2/gm2-libs-iso/ConvStringLong.def
! 53b310d9f144d3dfa5350fdebdfe2ef0  gcc/m2/gm2-libs-iso/ConvStringLong.mod
! cc3996c56f6561c199c138e7fb39c84e  gcc/m2/gm2-libs-iso/ConvStringReal.def
! 5e5265fab4d4a1c02e40b77df8176ea0  gcc/m2/gm2-libs-iso/ConvStringReal.mod
! 94145c26cabeaa15254d1f7f44d5bf90  gcc/m2/gm2-libs-iso/ConvStringShort.def
! 5c901ac83c57d024388a52bb1a6ae88a  gcc/m2/gm2-libs-iso/ConvStringShort.mod
  b61783ff6abc22b746e6979c0bcee2dd  gcc/m2/gm2-libs-iso/ConvTypes.def
! 147afb7086c74f86fc83e3a22db9f236  gcc/m2/gm2-libs-iso/ConvTypes.mod
  06b39eaf4e88d493000c7360c310ba97  gcc/m2/gm2-libs-iso/EXCEPTIONS.def
! 55adf2af7b9cfc541d401d00f15b1109  gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
! 8a4ba7032d916296bee5fa873a9ee2c3  gcc/m2/gm2-libs-iso/ErrnoCategory.def
  c9c5e6e4fbd4b365b1738fb97167c772  gcc/m2/gm2-libs-iso/GeneralUserExceptions.def
! f80a01fff9965ecc28350c972c244128  gcc/m2/gm2-libs-iso/GeneralUserExceptions.mod
  3be4b03912f03e5164671e278a4ba6a1  gcc/m2/gm2-libs-iso/IOChan.def
! 91e2167e5df8b0a1a956c7f90cf7ab5d  gcc/m2/gm2-libs-iso/IOChan.mod
  c952fa889a1808a16de26ca7e30f8101  gcc/m2/gm2-libs-iso/IOChanUtils.def
  fcb6e13112c3378c53ef65b83d811647  gcc/m2/gm2-libs-iso/IOChanUtils.mod
  58b81b1b97143b27dfd3d5c225da285c  gcc/m2/gm2-libs-iso/IOConsts.def
! f444f64ca20c14292f2c3de674d52a31  gcc/m2/gm2-libs-iso/IOConsts.mod
  3d1e4b84b179c15fe8b1fc60b7d46e6c  gcc/m2/gm2-libs-iso/IOLink.def
! 3a0556e1d2816875b0b06a7846883460  gcc/m2/gm2-libs-iso/IOLink.mod
  e5ea2ed3bf2ca24aeda732fb92f74111  gcc/m2/gm2-libs-iso/IOResult.def
! 4065b99390dc18b0978ac9d1149a55d8  gcc/m2/gm2-libs-iso/IOResult.mod
  5c708f49fa403c8243782ec5145e99ca  gcc/m2/gm2-libs-iso/LongComplexMath.def
! 141a3451666653c49efeaa1e422b138e  gcc/m2/gm2-libs-iso/LongComplexMath.mod
  018ee564b5b6d66051cf2ee4c7aea2fc  gcc/m2/gm2-libs-iso/LongConv.def
! f46f068c4f92f40f6f46d25c65ae763d  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
! bd06e4a664da01b46fbbb82d2eb5f91e  gcc/m2/gm2-libs-iso/LongMath.mod
  8ad351822e38056538ef1e9efe8b5cac  gcc/m2/gm2-libs-iso/LongStr.def
! bcbb20c014c5069b5dc7fb316e6810f8  gcc/m2/gm2-libs-iso/LongStr.mod
! 7180eae79df80b439234def0250dfed7  gcc/m2/gm2-libs-iso/LongWholeIO.def
! d39c43ecd09bd7d2f89bb0b477c88e4d  gcc/m2/gm2-libs-iso/LongWholeIO.mod
  34685287385135c3fbaa60ba1d894854  gcc/m2/gm2-libs-iso/LowLong.def
! 309d78c36ab618803d20b5a1885ea552  gcc/m2/gm2-libs-iso/LowLong.mod
  78be5cf8b1f715e70e0c61838c761d10  gcc/m2/gm2-libs-iso/LowReal.def
! 0d1325d9e3fdfded89e0cb48d7ed5f47  gcc/m2/gm2-libs-iso/LowReal.mod
! f35cde0207ce943642c66e830e7914a2  gcc/m2/gm2-libs-iso/LowShort.def
! 406ddec4e9a8c5b3ab34f6075c7f001f  gcc/m2/gm2-libs-iso/LowShort.mod
  e23b19886a6564119fe2b28e7d21f270  gcc/m2/gm2-libs-iso/M2EXCEPTION.def
! 09631015f84a1aa59c67c728449d2422  gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
! 8f73adc592af2ff97bdc4032d161c69f  gcc/m2/gm2-libs-iso/M2RTS.def
! e9ff703c002bd8b1371043336f6db43b  gcc/m2/gm2-libs-iso/M2RTS.mod
! 4b3ed8f84e04effe39cf90983da93e55  gcc/m2/gm2-libs-iso/MemStream.def
! f635695306c26168c56c120337e7dcd0  gcc/m2/gm2-libs-iso/MemStream.mod
! d17c20ef472abf376a5c7d5fa85cecc3  gcc/m2/gm2-libs-iso/Preemptive.def
! 0306019a1b2ab7023e26bd95cb4c8846  gcc/m2/gm2-libs-iso/Preemptive.mod
  617142b6611a41ce58eb9ae27d709342  gcc/m2/gm2-libs-iso/Processes.def
! 65739755dd951737be3fe119b6bd9310  gcc/m2/gm2-libs-iso/Processes.mod
  f99d0ab4d95b7c909aebc4eee8923beb  gcc/m2/gm2-libs-iso/ProgramArgs.def
! 2f1ed897953ba2869f7f2f68d023396f  gcc/m2/gm2-libs-iso/ProgramArgs.mod
! 3c7df48b6a66bafbdd183d28482a1b2e  gcc/m2/gm2-libs-iso/README.texi
! 99d2df6741ea29344f0a26c8f17bfc0a  gcc/m2/gm2-libs-iso/RTco.def
! 81ba9e21d839929e8b83cb45216a3488  gcc/m2/gm2-libs-iso/RTdata.def
! b56bb63bdc069d7120e44d3cf3a2bb49  gcc/m2/gm2-libs-iso/RTdata.mod
! 77458d99b544f694316db5a332133272  gcc/m2/gm2-libs-iso/RTentity.def
! dc23b123a4a4d212a4e953f315af2ff7  gcc/m2/gm2-libs-iso/RTentity.mod
! 3d1bb4eaaa4e4a100eeec18620c2f9cd  gcc/m2/gm2-libs-iso/RTfio.def
! 787db85814a5e046a09f05df03163cc8  gcc/m2/gm2-libs-iso/RTfio.mod
! c924dd0ab65e7aba5c6d7259306188ed  gcc/m2/gm2-libs-iso/RTgen.def
! 016f3bd28b3b0824335dd9b5f8ed079a  gcc/m2/gm2-libs-iso/RTgen.mod
! 8a4f714e51cd7d4bcf41d3e33ff87370  gcc/m2/gm2-libs-iso/RTgenif.def
! 7ce7ca0ea64eb74687420b2c6d5c7e86  gcc/m2/gm2-libs-iso/RTgenif.mod
! bc3b13b9585338943aa5cd49772ac112  gcc/m2/gm2-libs-iso/RTio.def
! b943d592c11f19978fc737a8c4a586d1  gcc/m2/gm2-libs-iso/RTio.mod
! cf0a824077e3ced3ba95d0dea5c4719f  gcc/m2/gm2-libs-iso/RandomNumber.def
! 9468fcffd4856703eea8cbb532b7b483  gcc/m2/gm2-libs-iso/RandomNumber.mod
  40277b3de34e1a5d9df0b7cc45c14d15  gcc/m2/gm2-libs-iso/RawIO.def
! 2882e828219ce37753754f07fe5d196d  gcc/m2/gm2-libs-iso/RawIO.mod
  df153efe4a594ad9e9d8cca8b83c8df2  gcc/m2/gm2-libs-iso/RealConv.def
! 40bf909d4fb628fa66cd07f35ef7c5ce  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
! 9cf231318ff4ce9631176c591746cb5d  gcc/m2/gm2-libs-iso/RealMath.mod
  a97765c0f82b53bb50acb8e67e5374e6  gcc/m2/gm2-libs-iso/RealStr.def
! 822b0cd6a33248248b6ad026c41c181d  gcc/m2/gm2-libs-iso/RealStr.mod
  44b3b908b90d74d002a06bfb54262671  gcc/m2/gm2-libs-iso/RndFile.def
! 6e6c3347fad8ef6ddc4c1f7209582d8a  gcc/m2/gm2-libs-iso/RndFile.mod
  227a83f272114ad4e64c8f3c9ef346fd  gcc/m2/gm2-libs-iso/SIOResult.def
! 68de27120be3514ec61f4ac02323b7e3  gcc/m2/gm2-libs-iso/SIOResult.mod
  fd1983de497a0e10765806998b96e7a1  gcc/m2/gm2-libs-iso/SLongIO.def
! ce3d3dc959d6b76a735a7f68f276daa0  gcc/m2/gm2-libs-iso/SLongIO.mod
! 6c43507c170d0f25bbb7fb21b98cc257  gcc/m2/gm2-libs-iso/SLongWholeIO.def
! 45a32a5c3af6cf45b2612f350571271d  gcc/m2/gm2-libs-iso/SLongWholeIO.mod
  5d7062666ffc5c5db7890b0b53f21387  gcc/m2/gm2-libs-iso/SRawIO.def
! 08bf26d383a648a624491ba0d3c48162  gcc/m2/gm2-libs-iso/SRawIO.mod
  29dc788abe06750b87ad7f8c7605ddad  gcc/m2/gm2-libs-iso/SRealIO.def
! 92f8087c357eaf3af028b789eeaa017e  gcc/m2/gm2-libs-iso/SRealIO.mod
! 0d732048051259b75e5e84c092ff03a5  gcc/m2/gm2-libs-iso/SShortIO.def
! a91bfd6b03e6da0955f64009f0c9e951  gcc/m2/gm2-libs-iso/SShortIO.mod
! d4eb016240cca475fc1e02acee50da84  gcc/m2/gm2-libs-iso/SShortWholeIO.def
! e2ecaf0dcaf532688a8e73ebf8b2bb7a  gcc/m2/gm2-libs-iso/SShortWholeIO.mod
  037039b67d035c6da1fe676b93e98273  gcc/m2/gm2-libs-iso/STextIO.def
! 0d77c352665ee040842d1372ab582d10  gcc/m2/gm2-libs-iso/STextIO.mod
  4806b44e4a85776e1d5015f2013974a3  gcc/m2/gm2-libs-iso/SWholeIO.def
! b22547e2c33bb921a850f49e2c1313b5  gcc/m2/gm2-libs-iso/SWholeIO.mod
! cfb70636fc3cfd3998ac80b63a7cbfbf  gcc/m2/gm2-libs-iso/SYSTEM.def
! 21e5a31b8e6fb73c67a84657c8928a99  gcc/m2/gm2-libs-iso/SYSTEM.mod
  cb047c38f5ef851681b19de3902ffebe  gcc/m2/gm2-libs-iso/Semaphores.def
! 0f8a8dc899331d00324121b9e8cb8667  gcc/m2/gm2-libs-iso/Semaphores.mod
  0123a3eb7dc065b38800f7157f415c27  gcc/m2/gm2-libs-iso/SeqFile.def
! 56deb84f1ad3696e2658d6b12fb1cb94  gcc/m2/gm2-libs-iso/SeqFile.mod
! c0b765dc704d917803a36a449c387397  gcc/m2/gm2-libs-iso/ShortComplexMath.def
! eaa78e18639b851abb211c99fd17e633  gcc/m2/gm2-libs-iso/ShortComplexMath.mod
! f9971cc8405fca1a968a20098b972dbc  gcc/m2/gm2-libs-iso/ShortConv.def
! 10015fc4051851342382fca7916ec17d  gcc/m2/gm2-libs-iso/ShortConv.mod
! 34311aeec016b6ed8fac025fd8a457e0  gcc/m2/gm2-libs-iso/ShortIO.def
! 48258aab65c1ad70cc7f87cd0515eef0  gcc/m2/gm2-libs-iso/ShortIO.mod
! aeb0d86a1306d25262b749f249c48a0b  gcc/m2/gm2-libs-iso/ShortMath.def
! a20cef18b28ee67d62ec41d3ecbcec74  gcc/m2/gm2-libs-iso/ShortMath.mod
! 85e1a3b16cdfc743c37c40a6a189b47c  gcc/m2/gm2-libs-iso/ShortStr.def
! 483ac4f298741ad6a3c3b3ea44d5cc70  gcc/m2/gm2-libs-iso/ShortStr.mod
! 8bf68e08d796fdbf9881b7cad1085b54  gcc/m2/gm2-libs-iso/ShortWholeIO.def
! e3a031cf44cac281df587f8f551bbd94  gcc/m2/gm2-libs-iso/ShortWholeIO.mod
! b8301da5c055bee816499790677be317  gcc/m2/gm2-libs-iso/SimpleCipher.def
! 5cb945eb0b9632811147fcc4fe7ebd80  gcc/m2/gm2-libs-iso/SimpleCipher.mod
  8b8a01b2a2ce71ef914ac2c6cc8c3b75  gcc/m2/gm2-libs-iso/StdChans.def
! 960165e9a81a4b959a0b8630ea183da5  gcc/m2/gm2-libs-iso/StdChans.mod
  e2ce5b09829edfcec26970649d78d4dc  gcc/m2/gm2-libs-iso/Storage.def
! a08795db1a672c844bd0633473f32299  gcc/m2/gm2-libs-iso/Storage.mod
  be819007a2908ba602c8757b5d53a335  gcc/m2/gm2-libs-iso/StreamFile.def
! 7be7230f5b974c4373971f3091048538  gcc/m2/gm2-libs-iso/StreamFile.mod
! de4f977eb05309497e28329d582698b3  gcc/m2/gm2-libs-iso/StringChan.def
! 3d9cf40a2bb7ed046f9418ca0a93d82b  gcc/m2/gm2-libs-iso/StringChan.mod
  8f11555f792697e6e70bdabf60c96447  gcc/m2/gm2-libs-iso/Strings.def
! 95fbc7ce726b9c7452b2172515ac8e58  gcc/m2/gm2-libs-iso/Strings.mod
  decb080d52ed383b759f5da725dcc91f  gcc/m2/gm2-libs-iso/SysClock.def
! 5152bc222b2507a12a6a0755c6d69445  gcc/m2/gm2-libs-iso/SysClock.mod
  62d31afe6dbffd3c51bcaa5af7575bcd  gcc/m2/gm2-libs-iso/TERMINATION.def
! c39add2cf3bf0221fb92f8a32b8176f5  gcc/m2/gm2-libs-iso/TERMINATION.mod
  665eef372cb297013ff37bc80a4eb66d  gcc/m2/gm2-libs-iso/TermFile.def
! 751fafa7545835f52e353ef9644db0c4  gcc/m2/gm2-libs-iso/TermFile.mod
  3e80217d87e3e0aa014739829f7cc23a  gcc/m2/gm2-libs-iso/TextIO.def
! b0094dd1fd4ae546e0de5aaa756ce29c  gcc/m2/gm2-libs-iso/TextIO.mod
! f0adc15e61b2a201cfea35cf5e641258  gcc/m2/gm2-libs-iso/TextUtil.def
  eaa68cb067beeb3cc43c1dd31fc723fd  gcc/m2/gm2-libs-iso/TextUtil.mod
  63a72ee284f83e558fb34e32fe4cc1fb  gcc/m2/gm2-libs-iso/WholeConv.def
! c529d5ef8b2614783d1b65b87186e8ad  gcc/m2/gm2-libs-iso/WholeConv.mod
  108023618e22cb8631ac14d0bf21510a  gcc/m2/gm2-libs-iso/WholeIO.def
! b2e2fb0c0d0629c5d57c84caa3189311  gcc/m2/gm2-libs-iso/WholeIO.mod
  a27fdd32dbd31b2e992eceaf29b2fe76  gcc/m2/gm2-libs-iso/WholeStr.def
! b291048a77b35224e006ae0631d22bc4  gcc/m2/gm2-libs-iso/WholeStr.mod
! eed6ba114e817697a61889edc2462b2b  gcc/m2/gm2-libs-iso/wrapclock.def
! 838a55abf957336e0af5a64397155ae7  gcc/m2/gm2-libs-iso/wrapsock.def
! e179577ce601e2cdb360ae6eb4055451  gcc/m2/gm2-libs-iso/wraptime.def
! 7c8138bb077833699a1ad9824e88158a  gcc/m2/gm2-libs-log/BitBlockOps.def
! 0c1eb6e74cd1972c5513bcea6a8c915d  gcc/m2/gm2-libs-log/BitBlockOps.mod
! 474e3fa22de7b4a3ce4a3a14d4e71281  gcc/m2/gm2-libs-log/BitByteOps.def
! 661766d2971c4d3676105fbd2bb06c76  gcc/m2/gm2-libs-log/BitByteOps.mod
! 8b8b7b44950ddd8251ad28811d638659  gcc/m2/gm2-libs-log/BitWordOps.def
! f0c798ce1b8647160b84afcb39ef2a97  gcc/m2/gm2-libs-log/BitWordOps.mod
! 597141099518f3f4fdef0a1d65cdac1a  gcc/m2/gm2-libs-log/BlockOps.def
! 18b0cff0dde4570c2d50cf52d0fb94e6  gcc/m2/gm2-libs-log/BlockOps.mod
! 071bc13746d48a9aa5c8fd0409666f3f  gcc/m2/gm2-libs-log/Break.c
! d491c398df71e576a6a6e523b66dd8e0  gcc/m2/gm2-libs-log/Break.def
! a043b8812d79d108fb11bf2e467d4f4a  gcc/m2/gm2-libs-log/CardinalIO.def
! 7afadc46c0cf2425c3b95cf9a6516b3b  gcc/m2/gm2-libs-log/CardinalIO.mod
! 08de6e337d31d9e841020eb5b1e435af  gcc/m2/gm2-libs-log/Conversions.def
! 947d7e7b4bf46633055f67e459351630  gcc/m2/gm2-libs-log/Conversions.mod
! 8ca702b706f9f0de8314e03c8bdf604e  gcc/m2/gm2-libs-log/DebugPMD.def
! 42de4bf9d58b49ab3d9935c1705deadd  gcc/m2/gm2-libs-log/DebugPMD.mod
! 0591b30a34fb6cbba287e738d4693fda  gcc/m2/gm2-libs-log/DebugTrace.def
! 6148cf50f3028d3048c62674be41c0c9  gcc/m2/gm2-libs-log/DebugTrace.mod
! 892830ec117dc58c5eeb145bc5a0bf74  gcc/m2/gm2-libs-log/Delay.def
! 734a5054e95e85082f1d6f0c33fdd255  gcc/m2/gm2-libs-log/Delay.mod
! 3c3b2be1ebed789a3f96541a9477487d  gcc/m2/gm2-libs-log/Display.def
! 363f9fb51cbf8d5d4911d44ca0df6dae  gcc/m2/gm2-libs-log/Display.mod
! c0ad396a338cdee9db73f9b9bf339938  gcc/m2/gm2-libs-log/ErrorCode.def
! a16569f31ff57056514780a0e5a557e5  gcc/m2/gm2-libs-log/ErrorCode.mod
! a00b56f4e1db50c1af3cf10f8757944d  gcc/m2/gm2-libs-log/FileSystem.def
! 7a7b3a0c2f2995905836efd3407fe2f1  gcc/m2/gm2-libs-log/FileSystem.mod
! 073e191b0235fa5c6d7c9f55e77a9a6e  gcc/m2/gm2-libs-log/FloatingUtilities.def
! 85b6ef66baf2e48e0bf8a5bb7f2b63bd  gcc/m2/gm2-libs-log/FloatingUtilities.mod
! 119a12809b69c5f0ebba44c546ff316a  gcc/m2/gm2-libs-log/InOut.def
! 26b845f293f4080f8d1af43261895005  gcc/m2/gm2-libs-log/InOut.mod
! 41dd96b37427ee0ddf5303151b34978d  gcc/m2/gm2-libs-log/Keyboard.def
! 64a375c0b5ffb8827ac8e1bc4dc7835f  gcc/m2/gm2-libs-log/Keyboard.mod
! fbcf32676e163c1642c0fa6ce9c53b26  gcc/m2/gm2-libs-log/LongIO.def
! 2b932308e626f37c36bc4915886ff214  gcc/m2/gm2-libs-log/LongIO.mod
! 35278ab9583f07f8dae8f835d662cff8  gcc/m2/gm2-libs-log/NumberConversion.def
! e67ac9a581030755d238cd365536f26c  gcc/m2/gm2-libs-log/NumberConversion.mod
! e7da51cbb833f8015dbee84cabca0018  gcc/m2/gm2-libs-log/README.texi
! 72ef25160c9924f910b0642b7b3049b2  gcc/m2/gm2-libs-log/Random.def
! abc459e826fb158e14b9bf4a22042086  gcc/m2/gm2-libs-log/Random.mod
! 5ea40bd31935165299acc886a3ec3c20  gcc/m2/gm2-libs-log/RealConversions.def
! 14960fa2f9de68b6aee7474f824f9b32  gcc/m2/gm2-libs-log/RealConversions.mod
! b1eaae40faf067e4cabd1cf79c3b5c22  gcc/m2/gm2-libs-log/RealInOut.def
! a45ff32e6351cd5742c5bc093e793933  gcc/m2/gm2-libs-log/RealInOut.mod
! ce73a57749f1be0ace61e70f2c739c9b  gcc/m2/gm2-libs-log/Strings.def
! 024257245b94b101db50085944779a11  gcc/m2/gm2-libs-log/Strings.mod
! ff75a40447ee645dcf2b2368efae5a7d  gcc/m2/gm2-libs-log/Termbase.def
! 30a6ee08b05b9acf3e1f9645f3759a87  gcc/m2/gm2-libs-log/Termbase.mod
! 61c0ad3453642c81e41efeee7ff3a824  gcc/m2/gm2-libs-log/Terminal.def
! f96f533856f8343d6663d7d5e4b23370  gcc/m2/gm2-libs-log/Terminal.mod
! d5059b7433433f4a878f71aa01f76b71  gcc/m2/gm2-libs-log/TimeDate.def
! f7a8771dc7b0b9d4272a2dcb9de45214  gcc/m2/gm2-libs-log/TimeDate.mod
! 3f1f0c25500652bd58749379d4288b1d  gcc/m2/gm2-libs-min/M2RTS.def
! d2c5e488322a0eca4bd66820f9805ac8  gcc/m2/gm2-libs-min/M2RTS.mod
! 1d1998deb07a3c31843cf98548c08e99  gcc/m2/gm2-libs-min/SYSTEM.def
! b917682bc12f1f25cb11b16c33c617a9  gcc/m2/gm2-libs-min/SYSTEM.mod
! 192309374059fac8f422f25bc0e06a2f  gcc/m2/gm2-libs-min/libc.c
! 07653fb17d348236387ed100e35bf643  gcc/m2/gm2-libs-min/libc.def
! ad02687f10ffd510aab53525837fee5d  gcc/m2/gm2-libs/ARRAYOFCHAR.def
! 5359f1d6e60710a9f4a70fdc56cf86b6  gcc/m2/gm2-libs/ARRAYOFCHAR.mod
! 48ca3a1ffa255e8cd52d2dbcae5d3fad  gcc/m2/gm2-libs/ASCII.def
! e6ed6170a831071292b0f6de79f0a772  gcc/m2/gm2-libs/ASCII.mod
! dd38268816ba82084bd3d215e4897884  gcc/m2/gm2-libs/Args.def
! 14681cad225d728d78762bfeab8f57fc  gcc/m2/gm2-libs/Args.mod
! f1ae5e7aa1d7574cbd5f4411b07ba0c0  gcc/m2/gm2-libs/Assertion.def
! d8426c14715595211f47c010923477b0  gcc/m2/gm2-libs/Assertion.mod
! 9e3e359e371fdd51d3189fed174b3606  gcc/m2/gm2-libs/BinDict.def
! e9dd727e7276ef4e17c2028b6e3617c3  gcc/m2/gm2-libs/BinDict.mod
! a661d6c46f95497c6eb94408eba9ec5f  gcc/m2/gm2-libs/Break.def
! 042dbd2673c4a0a3d5e4e02c22e79d7b  gcc/m2/gm2-libs/Break.mod
! 9b8b5949d8004ada392cf82029213363  gcc/m2/gm2-libs/Builtins.def
! c680eb70009e16d4d13152c721d9c5d0  gcc/m2/gm2-libs/Builtins.mod
  f3f1821c9653cd795a6e0f0bbf2390de  gcc/m2/gm2-libs/CFileSysOp.def
! e40d486e4a76d009232dbffe82687c8b  gcc/m2/gm2-libs/CHAR.def
! c8bd24e979ce3469093b617df646563d  gcc/m2/gm2-libs/CHAR.mod
! d33d557a3a926628f43ef5f7aef592fd  gcc/m2/gm2-libs/COROUTINES.def
! 58bc15484ff00fd675250bb3be1b2a84  gcc/m2/gm2-libs/COROUTINES.mod
! 518eb4a2ea2fe8ece2c19f5788879ea5  gcc/m2/gm2-libs/CmdArgs.def
! e0ab68d3d1f015c02852fb35e01ad738  gcc/m2/gm2-libs/CmdArgs.mod
! d0d760ddc62213212f9365889b44d1a8  gcc/m2/gm2-libs/Debug.def
! f763141cb1b7c43e6ed7c0d682ad0bb7  gcc/m2/gm2-libs/Debug.mod
! 7f0ce5dcc8ca97f48378e3f114093a7d  gcc/m2/gm2-libs/DynamicStrings.def
! bdad7f400d8aa531873bf6db11cc24c0  gcc/m2/gm2-libs/DynamicStrings.mod
! 3aecf878648dcbfbf738863a197fbb95  gcc/m2/gm2-libs/Environment.def
! 98689e18e7c52495e564969947468790  gcc/m2/gm2-libs/Environment.mod
! 98d33a23b45086d0707db8d63d69a930  gcc/m2/gm2-libs/FIO.def
! 3910a64eab2688b7fa8dc65e0a5c214e  gcc/m2/gm2-libs/FIO.mod
! 241e114f9bfbdf14df4f22e060436725  gcc/m2/gm2-libs/FileSysOp.def
! 25045445752610e936957fe8aa435fbb  gcc/m2/gm2-libs/FileSysOp.mod
! 7134c347759e6143db7e27c3ba4b9240  gcc/m2/gm2-libs/FormatStrings.def
! a459e76eed0882325ac02c9e30350e12  gcc/m2/gm2-libs/FormatStrings.mod
! eb44660a3d018074dc917575177aeae7  gcc/m2/gm2-libs/FpuIO.def
! f27d732b8706d0f588043c8d027b9bf3  gcc/m2/gm2-libs/FpuIO.mod
! 7c6f9e4d9c01c51157804a46d19c5f61  gcc/m2/gm2-libs/GetOpt.def
! 38d34d80d6df533d9d35360232477b0a  gcc/m2/gm2-libs/GetOpt.mod
! daeab850d9a1fdf791100c9ab4044904  gcc/m2/gm2-libs/IO.def
! 89db32000ab9d07390ef8817b27e077e  gcc/m2/gm2-libs/IO.mod
! c8861163985b1c0daca4628dde34ddbd  gcc/m2/gm2-libs/Indexing.def
! 2815494e61962208f05df66b66411980  gcc/m2/gm2-libs/Indexing.mod
! 11a90a41346269fd23cd463885f01e5e  gcc/m2/gm2-libs/LMathLib0.def
! ef0cacdb8d5b0b1683d53aed7d5354a8  gcc/m2/gm2-libs/LMathLib0.mod
! cd1683d8df0c99a1e565be6843441c60  gcc/m2/gm2-libs/LegacyReal.def
! c786143ab8dc5f69fd82b5c916f85c89  gcc/m2/gm2-libs/LegacyReal.mod
! 76ea5a8e2faeb290181e44839ee9abb3  gcc/m2/gm2-libs/M2Dependent.def
! ee5e7dc699800318dd083ab2a751448f  gcc/m2/gm2-libs/M2Dependent.mod
! c515c4ebae2e972436a6f26e64ba8428  gcc/m2/gm2-libs/M2Diagnostic.def
! 55b5b37a01b78ec0659f627832e2315a  gcc/m2/gm2-libs/M2Diagnostic.mod
! 05f60c86bcbd3a8f8d89aed169465fe1  gcc/m2/gm2-libs/M2EXCEPTION.def
! dc14845dda46bce1e73c89e35133989b  gcc/m2/gm2-libs/M2EXCEPTION.mod
! c61f166496295963f98f3dbf9fb3934c  gcc/m2/gm2-libs/M2RTS.def
! faa43ea98df2e574e5bef9e69512eb86  gcc/m2/gm2-libs/M2RTS.mod
! b2efc03116aadafe7facc1bbf78817bc  gcc/m2/gm2-libs/M2WIDESET.def
! d53b0c9f4610402cf0b5365a3535ef19  gcc/m2/gm2-libs/M2WIDESET.mod
! d720a2fd27be213f63d14a80095d34e8  gcc/m2/gm2-libs/MathLib0.def
! c5264e63caecf7612e6d2b4eebf063e1  gcc/m2/gm2-libs/MathLib0.mod
! f687c100938ba000f7a35174ab0d06b9  gcc/m2/gm2-libs/MemUtils.def
! 0bdba8c1e76351ab8c0a577c5d689a3c  gcc/m2/gm2-libs/MemUtils.mod
! 3003e122630b56fc3260ebe6644f789b  gcc/m2/gm2-libs/NumberIO.def
! a27e2c324acc21214744f05ecd50444d  gcc/m2/gm2-libs/NumberIO.mod
! da98abed79d3f6015bc14aba5ca3b80e  gcc/m2/gm2-libs/OptLib.def
! 3ac54862106af18f7e0e4b207470a100  gcc/m2/gm2-libs/OptLib.mod
! 5162c519a072dd74220f2bc8237a7dc8  gcc/m2/gm2-libs/PushBackInput.def
! b9890a95bfceaff797c0e40bfd823925  gcc/m2/gm2-libs/PushBackInput.mod
! 87fef48a0181fa232dcfacd21c16cc67  gcc/m2/gm2-libs/README.texi
! 7a1274d823e8c1b65fe2a457d6d0f482  gcc/m2/gm2-libs/RTExceptions.def
! fce6137bb45e1e9ed0693ba4c99b5dc2  gcc/m2/gm2-libs/RTExceptions.mod
! 8647c01cdf28c556488c2d37bde968b0  gcc/m2/gm2-libs/RTint.def
! 8408da48b0d0403b6e383378f1430429  gcc/m2/gm2-libs/RTint.mod
! d4659f7954fd08430195e51b00107bb0  gcc/m2/gm2-libs/SArgs.def
! 567ad2e32eb7dbeacac9a64e96686569  gcc/m2/gm2-libs/SArgs.mod
! 8d8156ccf08ce8a7f92607a04276265d  gcc/m2/gm2-libs/SCmdArgs.def
! aa31d2513436b763356709fd88ab1ecd  gcc/m2/gm2-libs/SCmdArgs.mod
! 7e8363db38c592e424fff38e0919e135  gcc/m2/gm2-libs/SEnvironment.def
! 48430ed4a6574b723e44e2945704cc7a  gcc/m2/gm2-libs/SEnvironment.mod
! bc5f5b341e16773113075286b35faf0b  gcc/m2/gm2-libs/SFIO.def
! cbdd4c5b376336047817c2bb2e919cdd  gcc/m2/gm2-libs/SFIO.mod
! fe5ebeccf9220884a96da4b5f6c547da  gcc/m2/gm2-libs/SMathLib0.def
! 32fb8715a6c07c27770ef679dddc6626  gcc/m2/gm2-libs/SMathLib0.mod
! ee81f2cfed2085b1cbf2651f8689e47f  gcc/m2/gm2-libs/SYSTEM.def
! 824815b036f4f9b978fed6f163d5e3db  gcc/m2/gm2-libs/SYSTEM.mod
! e7aaa002c759614449b4296c8477d33c  gcc/m2/gm2-libs/Scan.def
! 9e131991bb793182357ef75fca7c947b  gcc/m2/gm2-libs/Scan.mod
! 5bca4cf59bed1b55fda4a08de215e997  gcc/m2/gm2-libs/Selective.def
! d6db9ad081a230a9b8179746071ae805  gcc/m2/gm2-libs/StdIO.def
! 3b397ef9455605c9b61f92ee8813df8d  gcc/m2/gm2-libs/StdIO.mod
! 655209db1b3bfa8bfdd57db26a23b171  gcc/m2/gm2-libs/Storage.def
! 2af3709e5137688e08e5e665ecf53ea8  gcc/m2/gm2-libs/Storage.mod
! 3ca57c2153c75da235a7f54271e575f0  gcc/m2/gm2-libs/StrCase.def
! 55edb8dfd3fd7f65869f9a6861f2593e  gcc/m2/gm2-libs/StrCase.mod
! 2c5af2b1847a25bdcded54bcac7cc837  gcc/m2/gm2-libs/StrIO.def
! c19f19ccb9c14c09389a9d78e1eb1fb9  gcc/m2/gm2-libs/StrIO.mod
! 5bcb74cc057c733e0f10ed3b1a441acf  gcc/m2/gm2-libs/StrLib.def
! ddf07e214dd9c30bf8d65f3b320d6585  gcc/m2/gm2-libs/StrLib.mod
! 05e0d1444c1a908f44c780d8cf3bde8c  gcc/m2/gm2-libs/String.def
! 885f3593765199ba52a855e452f17683  gcc/m2/gm2-libs/String.mod
! 0a9c02d51507be71a1d9343da482ee21  gcc/m2/gm2-libs/StringConvert.def
! 24f2da916c14439830799e0750bec7cc  gcc/m2/gm2-libs/StringConvert.mod
! 33fe249c57d313deae857511675cedcc  gcc/m2/gm2-libs/StringFileSysOp.def
! 81529fcecf9e1a83b2a95badc5b1cbec  gcc/m2/gm2-libs/StringFileSysOp.mod
! 922aeb8ba500d27f2d13c7f3162d976b  gcc/m2/gm2-libs/SysExceptions.def
! 31289ab551e6d25a46a65bdf0ca8c0b4  gcc/m2/gm2-libs/SysStorage.def
! 7cfabfacbf0febbaf56356bfb06c97a6  gcc/m2/gm2-libs/SysStorage.mod
! a334da4b8f63ee1049f80068fcc709de  gcc/m2/gm2-libs/TimeString.def
! 70bfdf58967f9dc16a5e33894975c568  gcc/m2/gm2-libs/TimeString.mod
! 3aee356704c1607f772bc6c1ea5b5407  gcc/m2/gm2-libs/UnixArgs.def
! 5104c430ed34d3ef021bfc5bbd4933c6  gcc/m2/gm2-libs/cbuiltin.def
! 81807c62308dfaffbde58ce789a110da  gcc/m2/gm2-libs/cgetopt.def
! f9ba297a571be8ab3525cc194b89e427  gcc/m2/gm2-libs/config-host
! a65b5da2b98c3d083bbb6514bc4322e6  gcc/m2/gm2-libs/config-host.in
! 5ebd94d6bf03da6da60e2c050b40b6a0  gcc/m2/gm2-libs/cxxabi.def
! dafbb75f91adbce1db550bcecfabc8ec  gcc/m2/gm2-libs/dtoa.def
! 744896cf50de666ca1969a085cb81d24  gcc/m2/gm2-libs/errno.def
! 06bb41c477cbfe67c66d9e4105100dad  gcc/m2/gm2-libs/gdbif.def
! e237d8866deb4902fd1e4cc64ec76dae  gcc/m2/gm2-libs/gdbif.mod
! dfca4ea7f3e8b1b1d2b0d5bfeed02131  gcc/m2/gm2-libs/gm2-libs-host.h.in
! 9bc322bb723f1f452e558456a19d46c1  gcc/m2/gm2-libs/ldtoa.def
! b963f7849176ee8f9e5fd22626e9cb13  gcc/m2/gm2-libs/libc.def
! d2a11c81ff982aa708da2a750595df15  gcc/m2/gm2-libs/libm.def
! 5125f878a9fa6580f4524520068bdb2a  gcc/m2/gm2-libs/sckt.def
! c08e22d5dfa801a09070ceb496c1305f  gcc/m2/gm2-libs/termios.def
! eba42ceb4fac102cff658e2b61c5bacb  gcc/m2/gm2-libs/wrapc.def
  ccaa683ba714cdbeafc186000b6c8dd1  gcc/m2/gm2config.aci.in
! 4ba441d64c82fcd742ebcfe886e79135  gcc/m2/gm2spec.cc
! ae7ac38526d8ab5c60b532e3358f66b9  gcc/m2/gm2version.h
! bb138fab9b60690d0b5aca1a08f8538a  gcc/m2/images/LICENSE.IMG
  28628f59c0ab73240ccd25e2be0bcb6a  gcc/m2/images/gnu.eps
  d41d8cd98f00b204e9800998ecf8427e  gcc/m2/images/gnupng
  d02bb7b852c2149c474702f929b72f2d  gcc/m2/init/README
! 6d76bbc93610f14449002a1650c5299c  gcc/m2/init/mcinit
! aa3cc943e6f7954791f5b105b32ef4d5  gcc/m2/init/ppginit
! a346210964407569ed13816c0f8cecb4  gcc/m2/lang-specs.h
! 882bbc145958ff2a636c6c4967efe92a  gcc/m2/lang.opt
! 26239bdf69d403cbbcd8741d4e13a3d1  gcc/m2/lang.opt.urls
! 1491e1562c74319dc4f16b5081fceb75  gcc/m2/m2-tree.def
! 7eee071d249db10c1c1c87c311f85922  gcc/m2/m2-tree.h
! 76fb37f307e4b61a8539914bf711d861  gcc/m2/m2.flex
! cd67921e8cd59631dae62d9c19e25d8f  gcc/m2/mc-boot-ch/GBuiltins.cc
! 8423356c45d9ac96b17dcd8e020fa489  gcc/m2/mc-boot-ch/GM2LINK.c
! dfdf59bd085368033f7c6f8a80b1ca6f  gcc/m2/mc-boot-ch/GSYSTEM.c
! 825c53b78936ba76bbbda1768a909fc0  gcc/m2/mc-boot-ch/GSYSTEM.h
! dd15505134338ee574260f1882ecb6c6  gcc/m2/mc-boot-ch/GSelective.c
! 4cc1c1a2ed1a7f7c0222a7c072ef8fef  gcc/m2/mc-boot-ch/GSysExceptions.c
! e2bcfde13d1c0ee3fc7fb926ec828153  gcc/m2/mc-boot-ch/GSysExceptions.h
! 1bc23f086c8c24f4e6049725580756cf  gcc/m2/mc-boot-ch/GUnixArgs.cc
! 1496d464569acf4e1a490f50b919e73d  gcc/m2/mc-boot-ch/Gabort.c
! f1bde64aa0d7623d30607ee9bee2296c  gcc/m2/mc-boot-ch/Gcbuiltin.c
! d4f5b8ffa5c5f54bcea1e2d53c4328cc  gcc/m2/mc-boot-ch/Gdtoa.cc
! 8114cc8e425b2c366d14667998c0dedf  gcc/m2/mc-boot-ch/Gerrno.cc
! 15fabc4affb20298120f1dc66e0bdc0e  gcc/m2/mc-boot-ch/Gldtoa.cc
! 9df5153b6a06fc70f28aa0816c55a4fd  gcc/m2/mc-boot-ch/Glibc.c
! 858a4e598a771b77cd324c480462a630  gcc/m2/mc-boot-ch/Glibm.c
! d56702d904856da0909797d6008fcb05  gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
! fe4d386f3bf66c30a4d08b1b837ad644  gcc/m2/mc-boot-ch/Gmcrts.c
! 88f930986af6918a84bec55af5f80a05  gcc/m2/mc-boot-ch/Gmcrts.h
! fde299c981ed76b6b6795d43bcf3b0c2  gcc/m2/mc-boot-ch/Gnetwork.h
! f9e8d6d2d3fc040234c178b81af09697  gcc/m2/mc-boot-ch/Gtermios.cc
! d13c779b4dd71645cda8b569fdb47c6a  gcc/m2/mc-boot-ch/Gtermios.h
! 0f85cec597d78a4c8fa52d8cf5ff33df  gcc/m2/mc-boot-ch/Gwrapc.c
  ce2b38596d501052b9fae2df29aafa66  gcc/m2/mc-boot-ch/README
! 4e202bc620c4b7cf7463e4b230551cde  gcc/m2/mc-boot-ch/m2rts.h
! e10b70517655c69087dac9bb43dcb8d2  gcc/m2/mc-boot-ch/network.c
! e56a7e2a9d9d13e1ac866e3af4dcdf63  gcc/m2/mc-boot/GASCII.cc
! 4fe335d5020579d1f8cdf3924b2d5986  gcc/m2/mc-boot/GASCII.h
! 3ca276d97125f75cf14c6b7b06c530e3  gcc/m2/mc-boot/GArgs.cc
! ade02880934a5419b42b80f1b8150d17  gcc/m2/mc-boot/GArgs.h
! 8008f55ac7c4a45caad13531ce54f190  gcc/m2/mc-boot/GAssertion.cc
! 66b0f9eb761316629762a342748193d5  gcc/m2/mc-boot/GAssertion.h
! 98652d6c9a97eab296cc64fe19684494  gcc/m2/mc-boot/GBreak.cc
! 524d83fce657b57128c45e9b4dad921b  gcc/m2/mc-boot/GBreak.h
! 686a7639e524050cf2b815ef449d818d  gcc/m2/mc-boot/GCOROUTINES.h
! 205d893341e4b1f6144d21b668027b5e  gcc/m2/mc-boot/GCmdArgs.cc
! 97d63aedc7b1dd2f3879b9950b1cda28  gcc/m2/mc-boot/GCmdArgs.h
! 6aa8c070c0f0f1d1e856f941297635db  gcc/m2/mc-boot/GDebug.cc
! 988f049330e6341303c0ae4a757d2db2  gcc/m2/mc-boot/GDebug.h
! bbfd40eaba1b40a8f577d396e79cb141  gcc/m2/mc-boot/GDynamicStrings.cc
! aa0a15578f15933cafd741f1302d1614  gcc/m2/mc-boot/GDynamicStrings.h
! 9772dc02f78259f8d9e6e1674a54ff16  gcc/m2/mc-boot/GEnvironment.cc
! ac42da8425fc595024a4861f292b336a  gcc/m2/mc-boot/GEnvironment.h
! 5f75cfaf6d1114155c2f0a6e3446a2cf  gcc/m2/mc-boot/GFIO.cc
! cafb490862e2213d11e6613dc18e2b87  gcc/m2/mc-boot/GFIO.h
! 3f42d5b32ba4064f06239d39c9f222d5  gcc/m2/mc-boot/GFormatStrings.cc
! 0dcc3f16b21de02c0db59f0ac10e514e  gcc/m2/mc-boot/GFormatStrings.h
! 77e167a218d3401628cfb1dfa0332488  gcc/m2/mc-boot/GFpuIO.cc
! 6c26c0dc2d31870b1ce3d979e2dcc02d  gcc/m2/mc-boot/GFpuIO.h
! ed231404832042dcfeaabed77d9bf3b4  gcc/m2/mc-boot/GIO.cc
! a1dfaf91aec77a1a46b6d3fa7b6d782d  gcc/m2/mc-boot/GIO.h
! b49e76b7479c9e074c29c7d405a6e0ad  gcc/m2/mc-boot/GIndexing.cc
! 5bddf9589a6dadd1eeb59161ea839696  gcc/m2/mc-boot/GIndexing.h
! fd1514d72d84f61ce28fffe00d8cd7ad  gcc/m2/mc-boot/GM2Dependent.cc
! 442cb5657ebbab4a65fe0b6b76185365  gcc/m2/mc-boot/GM2Dependent.h
! 6971e3c12dbc69d23f5435aff5e09b1d  gcc/m2/mc-boot/GM2Diagnostic.cc
! 0746fc69b24519df39a84d6e3e99c9b2  gcc/m2/mc-boot/GM2Diagnostic.h
! ab58e50c7829389cb8143a116a4725e5  gcc/m2/mc-boot/GM2EXCEPTION.cc
! d0be808e39324fceb6b574d3bc0d49f2  gcc/m2/mc-boot/GM2EXCEPTION.h
! 086ada2ca3bf8b6924a927413b3dbe5b  gcc/m2/mc-boot/GM2RTS.cc
! a7416d3cac6a52256ab377c096e77121  gcc/m2/mc-boot/GM2RTS.h
! 782fe948274f065da5af5ac851abf866  gcc/m2/mc-boot/GMemUtils.cc
! 57868936375f57a5f84c2febabf91691  gcc/m2/mc-boot/GMemUtils.h
! ff9a2c95c8324fadc4bc61672d063444  gcc/m2/mc-boot/GNumberIO.cc
! 68895917f65a8a1d03086974b06035a6  gcc/m2/mc-boot/GNumberIO.h
! 92c5330ff24015d55c39698b95dc71a4  gcc/m2/mc-boot/GPushBackInput.cc
! 4d74281b5062d99df8ea7336e1c5f52b  gcc/m2/mc-boot/GPushBackInput.h
! 64b1ed04988647d86ea85efab6acf187  gcc/m2/mc-boot/GRTExceptions.cc
! 524a9867731fad4c72da8ea3ea0d3433  gcc/m2/mc-boot/GRTExceptions.h
! 8300fd7753704edc067d1ced97622da7  gcc/m2/mc-boot/GRTco.h
! e4f1664bc2db21bd70e9115787387d09  gcc/m2/mc-boot/GRTentity.h
! 558bbe3017d778465904df898fa8c63c  gcc/m2/mc-boot/GRTint.cc
! 1d45db98de8c41b631b38fa5fe5fb39e  gcc/m2/mc-boot/GRTint.h
! 4f2e7f5ca780d6a28100ca2961d0f9cd  gcc/m2/mc-boot/GSArgs.cc
! 53d7fd7e075f42b4a9701501993a9722  gcc/m2/mc-boot/GSArgs.h
! a93969726400881151d0881f0d0f09e0  gcc/m2/mc-boot/GSFIO.cc
! 0bbba2e65e289927d24debd3356fd41e  gcc/m2/mc-boot/GSFIO.h
! 825c53b78936ba76bbbda1768a909fc0  gcc/m2/mc-boot/GSYSTEM.h
! 4f60a326f4ba399aa8ef25a926273912  gcc/m2/mc-boot/GSelective.h
! e733cec73ae253e036bbd05d1d9dac0c  gcc/m2/mc-boot/GStdIO.cc
! 49aadbc0bcc710195c076352fc277ec1  gcc/m2/mc-boot/GStdIO.h
! 0336169ff9cf412d8df8126b3544107f  gcc/m2/mc-boot/GStorage.cc
! 916e0d56d88574468f2f677b1660a0aa  gcc/m2/mc-boot/GStorage.h
! 89daea5f3ba811f089abac0ae7f53b08  gcc/m2/mc-boot/GStrCase.cc
! cd96e7fb896db1dba1c91d025483ddde  gcc/m2/mc-boot/GStrCase.h
! 8965d83b7702be2cd88eb77c2dbb1f0e  gcc/m2/mc-boot/GStrIO.cc
! 4d3334da7d6d43b8db3b04d93c11e362  gcc/m2/mc-boot/GStrIO.h
! 002517aa101dd0b247399c819a598dd9  gcc/m2/mc-boot/GStrLib.cc
! 0899c6cd51ba943fb07bfea15642282b  gcc/m2/mc-boot/GStrLib.h
! edc25118a69999c97b699f8d7c247aed  gcc/m2/mc-boot/GStringConvert.cc
! 17ceda2dea511aaa896720734b800173  gcc/m2/mc-boot/GStringConvert.h
! e2bcfde13d1c0ee3fc7fb926ec828153  gcc/m2/mc-boot/GSysExceptions.h
! 287bedf04377c8c4e7d4ce594e036f0f  gcc/m2/mc-boot/GSysStorage.cc
! bd86c33baddc2abb0bfa44a6acffefda  gcc/m2/mc-boot/GSysStorage.h
! 23fd5ee2e8cbc01db3e3b99a22237fd3  gcc/m2/mc-boot/GTimeString.cc
! f8c894fc2e21c9e4cebd300f99115d8d  gcc/m2/mc-boot/GTimeString.h
! 1cf08a66acebbf85a1d35ac246b88ec7  gcc/m2/mc-boot/GUnixArgs.h
! 3d9c0f91c83c006f48ffbf7671f6f087  gcc/m2/mc-boot/Galists.cc
! 591e0b04aec406cfd31a5665aa7531ac  gcc/m2/mc-boot/Galists.h
! 4b3e7808eb1c1427923fe0950a5f68ce  gcc/m2/mc-boot/Gdecl.cc
! bb25a8551eee8f7bba2ff772deb5b37e  gcc/m2/mc-boot/Gdecl.h
! 014b8080639948a5cdf9d327f6fd053c  gcc/m2/mc-boot/Gdtoa.h
! c149a8e4306d49f1996e193ff8dda919  gcc/m2/mc-boot/Gerrno.h
! 91c94c5feaf00abe3b7cff074dccb87a  gcc/m2/mc-boot/Gkeyc.cc
! f37113225a854046fb82489bd4e9b8dc  gcc/m2/mc-boot/Gkeyc.h
! 1f02813ffef6268bf2a2fdecc2d0d0c6  gcc/m2/mc-boot/Gldtoa.h
! debd636efa57d62393c49d58f72a660e  gcc/m2/mc-boot/Glibc.h
! 9e66ed59b37abbe282a7d749ef25ce9b  gcc/m2/mc-boot/Glibm.h
! d07732247a4b883e3224d2657a6f6686  gcc/m2/mc-boot/Glists.cc
! 531e63cda533de7d6a26b8724b4e0408  gcc/m2/mc-boot/Glists.h
! cc8308c7fff12787b9ffb5eee9d0f837  gcc/m2/mc-boot/GmcComment.cc
! 3ed8affc6841d3b986db97b6e346126b  gcc/m2/mc-boot/GmcComment.h
! 9ca1016d2f42285cfec18a001aea7be7  gcc/m2/mc-boot/GmcComp.cc
! 5aaa779b1e6d653bffcdeeafb6c3454b  gcc/m2/mc-boot/GmcComp.h
  abfb1bd4a08af042a9cc7c92601550e6  gcc/m2/mc-boot/GmcDebug.cc
! b489430530e4a1d69d703e04951afba5  gcc/m2/mc-boot/GmcDebug.h
! faadb81c5362f261c1f359ed0a76fe5a  gcc/m2/mc-boot/GmcError.cc
! c3f57d21aa5a459ce1ac73503224045d  gcc/m2/mc-boot/GmcError.h
  6c393249329b2d6ea49c26cd1abc74c7  gcc/m2/mc-boot/GmcFileName.cc
! 28f166776e0753449853f1d2fea3fd13  gcc/m2/mc-boot/GmcFileName.h
! ca0e33ce27bd96d4a0c3f3a755d5b07f  gcc/m2/mc-boot/GmcLexBuf.cc
! 1e10b10334af3c4bfeabb3b2fd999839  gcc/m2/mc-boot/GmcLexBuf.h
  7f4e31af3ae538fa3c05d9dd2e537a78  gcc/m2/mc-boot/GmcMetaError.cc
! 35652efe6e4d81d901bbf1f26337c21c  gcc/m2/mc-boot/GmcMetaError.h
  a81e99920f3a3e7b72770d6ec14825bc  gcc/m2/mc-boot/GmcOptions.cc
! f7fd8e903e2235c7639ec4af2cb9088b  gcc/m2/mc-boot/GmcOptions.h
  296163204ca46015350f6ed430d984e3  gcc/m2/mc-boot/GmcPreprocess.cc
! ac0ae999d0ddf31d1dacd9ddc5708ed2  gcc/m2/mc-boot/GmcPreprocess.h
  a9ab30ef702006041ba0048953d90b31  gcc/m2/mc-boot/GmcPretty.cc
! 0f1cf8dfdd2428e6d3e955fedd55be21  gcc/m2/mc-boot/GmcPretty.h
  e3c4ac05481c25f914739ce54ba98276  gcc/m2/mc-boot/GmcPrintf.cc
! e107652c07ab0ce01ca4f0c4ae54ddf5  gcc/m2/mc-boot/GmcPrintf.h
  486c3303e25b1688c4109bbc3691515e  gcc/m2/mc-boot/GmcQuiet.cc
! f9dbd30d13654a93675d3f2f3a77665d  gcc/m2/mc-boot/GmcQuiet.h
  91f14c83df0ead190a74ce4fb770dcda  gcc/m2/mc-boot/GmcReserved.cc
! b5a2585779455be215e4d1e40c2fccf4  gcc/m2/mc-boot/GmcReserved.h
  d5de53c19e813f7cfbe98bc6740f26e8  gcc/m2/mc-boot/GmcSearch.cc
! 5310d5d21fae41060db041b04e8b4608  gcc/m2/mc-boot/GmcSearch.h
  0aa0d34fc8b201030709e9f7b639558a  gcc/m2/mc-boot/GmcStack.cc
! 1ea9ba4f65726b4b2c533f17e9b2b3e2  gcc/m2/mc-boot/GmcStack.h
! e9d5a4b2547453be5c75527e476ee8b1  gcc/m2/mc-boot/GmcStream.cc
! 5bcf3ca0ca7448da6db33993c3747527  gcc/m2/mc-boot/GmcStream.h
! 4536c6235efd8f7d50590f79a4edb6e0  gcc/m2/mc-boot/Gmcflex.h
! deb4ab089fdd1ed401e8e2d007db8ee1  gcc/m2/mc-boot/Gmcp1.cc
! b5723e4b16dbda2298f516f551646b9f  gcc/m2/mc-boot/Gmcp1.h
! ccebc59d452609857f5745f244e8c982  gcc/m2/mc-boot/Gmcp2.cc
! 3ab18fd5c27352601593aef2827c1a4f  gcc/m2/mc-boot/Gmcp2.h
! 7c428b59473381d8ec73e24bff4f78e3  gcc/m2/mc-boot/Gmcp3.cc
! a277faca83c22d4e0d028fb2fa46236a  gcc/m2/mc-boot/Gmcp3.h
! d5640484fb18fcd1441e162606d259d4  gcc/m2/mc-boot/Gmcp4.cc
! 19b0a0f6aa8f71d76ddd884478d23297  gcc/m2/mc-boot/Gmcp4.h
! 334f42d6d9a32bb8e911a50d44918646  gcc/m2/mc-boot/Gmcp5.cc
! af5b30352269f85cbe31fda36c31f57f  gcc/m2/mc-boot/Gmcp5.h
! 2d92100ba8df7cc7d9c8ddd91f2ad541  gcc/m2/mc-boot/GnameKey.cc
! cc8a4722b7199474e707df499f454095  gcc/m2/mc-boot/GnameKey.h
! 1f271e2122a01134d4b96ddced41deaf  gcc/m2/mc-boot/GsymbolKey.cc
! f825bb5edf885cb0c10ed0f6a54807d6  gcc/m2/mc-boot/GsymbolKey.h
! d13c779b4dd71645cda8b569fdb47c6a  gcc/m2/mc-boot/Gtermios.h
! 69d73d313f64b327657876f8eecb3b78  gcc/m2/mc-boot/Gtop.cc
! df34605beb3243f6199f0d1d70a83f9b  gcc/m2/mc-boot/Gvarargs.cc
! 896a22779f82fa928143802423e2cf36  gcc/m2/mc-boot/Gvarargs.h
! fdb91d542c5b5663abc567e6f24a63d3  gcc/m2/mc-boot/Gwlists.cc
! 9e3d2fd805e20f6b7a456d638ddfd2f8  gcc/m2/mc-boot/Gwlists.h
! 7a5e66683f33d4feae159b1fc145befb  gcc/m2/mc-boot/Gwrapc.h
  0353f1ec4e4fbfb6eb0e9080da3e5aef  gcc/m2/mc-boot/README
! 493753aa2c3e5f29f4fcb0f62a372769  gcc/m2/mc/Indexing.def
! 22fdb1985b3a90a2473476ba77bd9fce  gcc/m2/mc/Indexing.mod
  f8f98e9ffb642286dd61fd52be017824  gcc/m2/mc/README
! 72e441a988154b443180e1968446841b  gcc/m2/mc/alists.def
! ad9f5d761474b8ba2e1430b9c37236bf  gcc/m2/mc/alists.mod
! 3d0a46246cd49be37d9750e481ec27ff  gcc/m2/mc/decl.def
! 76c576e5231383fd3139de45fba66324  gcc/m2/mc/decl.mod
  73d148ed772aa468cc7657a403f3edc2  gcc/m2/mc/decl.mod-extra
! d7398076bd8491a159b8fd40968141ab  gcc/m2/mc/keyc.def
! ec788268e260bb5ceb76e050aed40c0e  gcc/m2/mc/keyc.mod
! 8ce26d004e1d8ff1642a04c42f6d2a12  gcc/m2/mc/lists.def
! e290473ba9ba8a187b2b1e75afb28a60  gcc/m2/mc/lists.mod
! 50c9012e0092cbc3498d9a1ce11f7084  gcc/m2/mc/m2flex.def
! aa4db363e0251c77be4e92c874052786  gcc/m2/mc/mc.flex
! 7e268d05b4f48b9ee28cbc9d6bd8dec5  gcc/m2/mc/mcComment.def
! 797c37fb9fc749b4b1b0bf5a7a136c3a  gcc/m2/mc/mcComment.h
! 4fdc343bcc69f24a8ffbaacc6a50078f  gcc/m2/mc/mcComment.mod
! bd121e7f34591041ae6f63b6fd8e8053  gcc/m2/mc/mcComp.def
! 0025d4a4254d2459b6eb699ee109569d  gcc/m2/mc/mcComp.mod
! 96cb2b0b061015d05b75dcccfc982f23  gcc/m2/mc/mcDebug.def
! 2b57f5106cc8782eef5a93d7ffaaa848  gcc/m2/mc/mcDebug.mod
! ec9068f3afa8ea83731688c592fb9c3a  gcc/m2/mc/mcError.def
! 7f6e416bdc8380e6c14a9148a6e50f1b  gcc/m2/mc/mcError.mod
! 078733ba04e5753b03c8391fe7b278a7  gcc/m2/mc/mcFileName.def
! d038328ddb7a9208f4445b22b7ff4f5e  gcc/m2/mc/mcFileName.mod
! 14acc833eb99fbc967641a1d1d5f6870  gcc/m2/mc/mcLexBuf.def
! db014416474b1fee0b6a90e686d876f0  gcc/m2/mc/mcLexBuf.h
! ee13cc719e26f56c01586c20a0a488ab  gcc/m2/mc/mcLexBuf.mod
! f86a29ba36cc891ecde64d5bf0951fff  gcc/m2/mc/mcMetaError.def
! 58160994041fe5da5535193e00cb1dc6  gcc/m2/mc/mcMetaError.mod
! e987a2753fadd8141542414613d20096  gcc/m2/mc/mcOptions.def
! e443cfb383f2027f140acc0ab62f5016  gcc/m2/mc/mcOptions.mod
! b55729806b4b1a7a54edcb110ada7539  gcc/m2/mc/mcPreprocess.def
! 516d4256d0620c7a6c984c6ee20dfcc0  gcc/m2/mc/mcPreprocess.mod
! 964c8a2ca92d6b841e7842fa9a20e115  gcc/m2/mc/mcPretty.def
! 4c0a3f76acb807e3aa06e5ae720e93d8  gcc/m2/mc/mcPretty.mod
! c37c177423a8cd6e28db1d700e3c120e  gcc/m2/mc/mcPrintf.def
! e972053854dd3eb99563bdedfe47ba85  gcc/m2/mc/mcPrintf.mod
! ad9abd4b1eaf7add639585f8f9bf9191  gcc/m2/mc/mcQuiet.def
! c0a6cbc9323cfdcd7634d22aaac30d71  gcc/m2/mc/mcQuiet.mod
! 4c2cc6ac4fa3138f2401ba2b0111f6a8  gcc/m2/mc/mcReserved.def
! d3c5d807974ac06b29ce2e57ce421507  gcc/m2/mc/mcReserved.h
! 14158af67a46b824b8ceb5e3243facac  gcc/m2/mc/mcReserved.mod
! 930f8c4626858d70f2bd2ec0e4178e36  gcc/m2/mc/mcSearch.def
! 42293488a269072d127cbc21f1af5c32  gcc/m2/mc/mcSearch.mod
! 08edf47953ad6a2943f12f9fd684a84d  gcc/m2/mc/mcStack.def
! 0418ca99191fa24d02a4456c3cd68759  gcc/m2/mc/mcStack.mod
! a18a3e66dd37576aded54f008f4fefe9  gcc/m2/mc/mcStream.def
! 46d6e9105be9c8fea1ad78450c73ee8f  gcc/m2/mc/mcStream.mod
! 39727ecf2a5bb60dd415722cce3f7a67  gcc/m2/mc/mcflex.def
! b4ff43fa1bf5624bd1959194c2dddc56  gcc/m2/mc/mcp1.bnf
! 3052d61c255d1a13962c8617260c473a  gcc/m2/mc/mcp1.def
! 410a744726162ecc9333b4bfbb4073c1  gcc/m2/mc/mcp2.bnf
! 3c5c85b2129a4915180b7e4e9a26d903  gcc/m2/mc/mcp2.def
! 5ef7deeb60f70ed69ff08773e2204fca  gcc/m2/mc/mcp3.bnf
! 587682aed335804787ae060ab8889664  gcc/m2/mc/mcp3.def
! 9695ab148d60e1b01b6fdafd0ad21a91  gcc/m2/mc/mcp4.bnf
! 7d34e89d35a93eaa5e9546d9cab040af  gcc/m2/mc/mcp4.def
! d405aa8e243cc1bcd64ec140cbe62834  gcc/m2/mc/mcp5.bnf
! 63ab11b91461a46e48850e6e74313e9f  gcc/m2/mc/mcp5.def
! 426eaeaa75bf350f1a88f2505ef84847  gcc/m2/mc/nameKey.def
! f4eca1c62a456b85a043bd1776aaa5af  gcc/m2/mc/nameKey.mod
! fe64feda6b2b1ef312a3437436078e11  gcc/m2/mc/symbolKey.def
! c25e0d02b9c6b2d92791098d27932e0f  gcc/m2/mc/symbolKey.mod
! 6eef7c5f74d80133718b167e0bdb4e31  gcc/m2/mc/top.mod
! 00a6dc22ac6220540c5f8468aa6a2285  gcc/m2/mc/varargs.def
! 14761e7dcb417d3093a5e242310238d9  gcc/m2/mc/varargs.mod
! 29daf878a99c5c82e01974105c160fe2  gcc/m2/mc/wlists.def
! 4237e2c47392715abbb7b144daf6567f  gcc/m2/mc/wlists.mod
! 1d947834e8c7889794d5dd8c0e67d1a9  gcc/m2/pge-boot/GASCII.cc
! 403d2b088d85bc19e7190d68817e0c96  gcc/m2/pge-boot/GASCII.h
! 735454a2d36f3dcedbe268d058b4cb14  gcc/m2/pge-boot/GArgs.cc
! 279e667ab79a9ad1ad9fa34c057e06cf  gcc/m2/pge-boot/GArgs.h
! d75321cde7e78bad95ae15686d994ce6  gcc/m2/pge-boot/GAssertion.cc
! 9442a92deb7abc40395e5af817bc2d62  gcc/m2/pge-boot/GAssertion.h
! ef159d84d12f555db479f03c0b8db137  gcc/m2/pge-boot/GBreak.h
! dc23f1abc0ad6d08e70625c76213e2c4  gcc/m2/pge-boot/GBuiltins.cc
! 3a2fd99f3073a58be51f1296dbad1688  gcc/m2/pge-boot/GCmdArgs.h
! 1bff515cc7a39910131746e64fd6d17d  gcc/m2/pge-boot/GDebug.cc
! ba836895cc74d926fa626d5fcb2ea27d  gcc/m2/pge-boot/GDebug.h
! 2932acb150b60288e53431a0445cc184  gcc/m2/pge-boot/GDynamicStrings.cc
! 8e0686f5d4994fc642b491114cc851a5  gcc/m2/pge-boot/GDynamicStrings.h
! fd06334913f180fe8585cf212248c3c7  gcc/m2/pge-boot/GEnvironment.h
! 64b0f40a0e80bb5b34e9c308a8dc9dea  gcc/m2/pge-boot/GFIO.cc
! fd43fb0c868be237c69500b8e9dd71f3  gcc/m2/pge-boot/GFIO.h
! 1aa7f7bf40af2c00e0fb875f14de2b41  gcc/m2/pge-boot/GFormatStrings.h
! a7d052f2d53581bebab7334d8a2c6a48  gcc/m2/pge-boot/GFpuIO.h
! 8ce36efcb77ca10fb0de6746d047975b  gcc/m2/pge-boot/GIO.cc
! 16a629a40dd32757c6c9ad7cff1970d8  gcc/m2/pge-boot/GIO.h
! b6180f79130ead8111c681a0d2726a3b  gcc/m2/pge-boot/GIndexing.cc
! f77ef7385bf2d43b21066732e39152eb  gcc/m2/pge-boot/GIndexing.h
! 5e2f6d10f917ee741b4d47eed0eb7658  gcc/m2/pge-boot/GLists.cc
! cc65860674b5adc223e808d8c1f19340  gcc/m2/pge-boot/GLists.h
! 2b0be9311d9e9f07f07ac48112fd1c70  gcc/m2/pge-boot/GM2Dependent.cc
! 00a590216e7566c396335ec6db11db20  gcc/m2/pge-boot/GM2Dependent.h
! e9621f6d74bad95be7d9e5485cdc71e6  gcc/m2/pge-boot/GM2Diagnostic.cc
! 0746fc69b24519df39a84d6e3e99c9b2  gcc/m2/pge-boot/GM2Diagnostic.h
! 67a0c6df906771cf81e369657eb95834  gcc/m2/pge-boot/GM2EXCEPTION.cc
! cf78b3b4e1dde3b71ea8378324647773  gcc/m2/pge-boot/GM2EXCEPTION.h
! 5dd142efc6467dca2cd37a639e84af19  gcc/m2/pge-boot/GM2RTS.cc
! d1f4c02e99e32a314c5eab179f5abda4  gcc/m2/pge-boot/GM2RTS.h
! 63dcfac8f3e951a6e1c20a70a88724d8  gcc/m2/pge-boot/GNameKey.cc
! 78fa55d3679e13e687b7b75ee78d0de7  gcc/m2/pge-boot/GNameKey.h
! f4dbc4efd61d0a5edb40229cdf4db300  gcc/m2/pge-boot/GNumberIO.cc
! 56c5b0ae7e1a7c2890e82f49dc683d28  gcc/m2/pge-boot/GNumberIO.h
! 31a985640ffa9069449b38675a4235b4  gcc/m2/pge-boot/GOutput.cc
! 41667e3c0958cf709af0a08a32d337d3  gcc/m2/pge-boot/GOutput.h
! c34c859d2a807640626919d46e27c4d6  gcc/m2/pge-boot/GPushBackInput.cc
! 2dffbf8dce9815812098bff230b9178a  gcc/m2/pge-boot/GPushBackInput.h
! 95eda22e8610db56da8c154525c1a894  gcc/m2/pge-boot/GRTExceptions.cc
! ea7bec3a98e3572c1177dfbeb0002cd2  gcc/m2/pge-boot/GRTExceptions.h
! 5e0b5e9c2c622d668c44eddf17af635e  gcc/m2/pge-boot/GRTco.cc
! a19652c5e9610e50b88ba8373a0a107c  gcc/m2/pge-boot/GSArgs.h
! 5952061383a4402ac3a13d2530850be2  gcc/m2/pge-boot/GSEnvironment.h
! 8efcf643bf2d90d4bb48fe13e8339c6a  gcc/m2/pge-boot/GSFIO.cc
! f18c3ebbb2c31d6cf1cc954ad07596ce  gcc/m2/pge-boot/GSFIO.h
! aa940cb71b2136c8b2bf8d27e1db2b9e  gcc/m2/pge-boot/GSYSTEM.cc
! 0c08950946428bf88a041c29b76904d3  gcc/m2/pge-boot/GSYSTEM.h
! 0e92e95b201973b1a02d3365c16488d6  gcc/m2/pge-boot/GScan.h
! 12336dc5bf4396a0229c5ad5b447483e  gcc/m2/pge-boot/GSelective.cc
! 4f60a326f4ba399aa8ef25a926273912  gcc/m2/pge-boot/GSelective.h
! 42e3556b9ed40aa4758bb1b8817f2200  gcc/m2/pge-boot/GStdIO.cc
! 2f4e0b1ea081136667d72f92f011a647  gcc/m2/pge-boot/GStdIO.h
! 9253d0bdcb7ce3262e686f8443d70453  gcc/m2/pge-boot/GStorage.cc
! 1fa41803fcac9e5ad588c6421cebc2fb  gcc/m2/pge-boot/GStorage.h
! 6af7e4e062be88d6f6803980c4374182  gcc/m2/pge-boot/GStrCase.cc
! ec5db82723f09328eb84e3823a1ccbc6  gcc/m2/pge-boot/GStrCase.h
! 556672c9afc11ec55b2a7cf7427ceaee  gcc/m2/pge-boot/GStrIO.cc
! a98fb14128c3a714e276c5cd84f97d5d  gcc/m2/pge-boot/GStrIO.h
! 742c160a2857c0843b05c9f768d4063c  gcc/m2/pge-boot/GStrLib.cc
! f503b241d4f895fbfa8fc019e97b1acb  gcc/m2/pge-boot/GStrLib.h
! e1027ae810a745f24826c3140ca578ef  gcc/m2/pge-boot/GStringConvert.cc
! 035fc045721b36eceee4d86ccff35561  gcc/m2/pge-boot/GStringConvert.h
! 014558759b6eae81e6bf2e01e02cc26d  gcc/m2/pge-boot/GSymbolKey.cc
! a1475c2f13fdf3ffb6cb7879bfe3743c  gcc/m2/pge-boot/GSymbolKey.h
! 4cc1c1a2ed1a7f7c0222a7c072ef8fef  gcc/m2/pge-boot/GSysExceptions.cc
! 7af4c4801ee42c65284f19c00917e80f  gcc/m2/pge-boot/GSysExceptions.h
! bba0181a0d6217fa0e488d408f1ddc23  gcc/m2/pge-boot/GSysStorage.cc
! 70109dc3ae2d5e52c34e94c95a931599  gcc/m2/pge-boot/GSysStorage.h
! fc44853957891ceedd8d1dd4899e46f7  gcc/m2/pge-boot/GTimeString.h
! 05b006013d0731bfc076b95bd38025bc  gcc/m2/pge-boot/GUnixArgs.cc
! 6a1d0eb0f5660f994478f97ef1140eb1  gcc/m2/pge-boot/GUnixArgs.h
! 1496d464569acf4e1a490f50b919e73d  gcc/m2/pge-boot/Gabort.cc
! ea44406e1e08068d80431d16116dd2fb  gcc/m2/pge-boot/Gbnflex.cc
! 462e80215d06ee30c374604109a50734  gcc/m2/pge-boot/Gbnflex.h
! f1bde64aa0d7623d30607ee9bee2296c  gcc/m2/pge-boot/Gcbuiltin.cc
! e4920fe75bd50ebf46041ddbb8fccf51  gcc/m2/pge-boot/Gdtoa.cc
! 741cf1670ca88c6fae2e3cf966225917  gcc/m2/pge-boot/Gdtoa.h
! de172704bab1d33b8d27a50c314ec844  gcc/m2/pge-boot/Gerrno.cc
! 79f2388ee3885666d5f2e160c64bee1c  gcc/m2/pge-boot/Gerrno.h
! 6ff6b2c592ec56c9f928d954f79f0411  gcc/m2/pge-boot/Gldtoa.cc
! 6a69cf5173cec0b9ea60ac97c65a63bc  gcc/m2/pge-boot/Gldtoa.h
! 302da2161792051bdeb953069b935048  gcc/m2/pge-boot/Glibc.cc
! 6adf886b427e120ec52a5a1e917e155a  gcc/m2/pge-boot/Glibc.h
! 858a4e598a771b77cd324c480462a630  gcc/m2/pge-boot/Glibm.cc
! 54c9c15e863a124574254ec08c97af41  gcc/m2/pge-boot/Glibm.h
! fe4d386f3bf66c30a4d08b1b837ad644  gcc/m2/pge-boot/Gmcrts.cc
! 88f930986af6918a84bec55af5f80a05  gcc/m2/pge-boot/Gmcrts.h
! fde299c981ed76b6b6795d43bcf3b0c2  gcc/m2/pge-boot/Gnetwork.h
! 998cdc276911aca14f05ce6a44d98e92  gcc/m2/pge-boot/Gpge.cc
! f9e8d6d2d3fc040234c178b81af09697  gcc/m2/pge-boot/Gtermios.cc
! e698bdbd5c318d46a4f23ade8bb0fe3c  gcc/m2/pge-boot/Gtermios.h
! 4cf9931e3ed96cd419f474d74ecceb71  gcc/m2/pge-boot/Gwrapc.cc
! 0c1d1ca0c5152b474317199b42b63c89  gcc/m2/pge-boot/Gwrapc.h
  32de17e5bdad997b43794d330fc5dae5  gcc/m2/pge-boot/README
! d9ccc0b9d1bda18c349707147d9c0b35  gcc/m2/pge-boot/m2rts.h
! 6552ab047eb9d3a49e2ed9208645bde8  gcc/m2/pge-boot/main.cc
! e10b70517655c69087dac9bb43dcb8d2  gcc/m2/pge-boot/network.cc
  18840892def349c0982fbe40111d6a91  gcc/m2/plugin/README
! d80f042c602991f5440839dc664757ec  gcc/m2/plugin/m2rte.cc
  0660bb99723628b350ba665f6a743603  gcc/m2/target-independent/m2/Builtins.texi
  8007d011990ec6a27344c59375b632b5  gcc/m2/target-independent/m2/SYSTEM-iso.texi
  af715e0938ee1e3521e0d6aeb1546db9  gcc/m2/target-independent/m2/SYSTEM-pim.texi
! 01a366e442c8f564e197fcdef61827e4  gcc/m2/target-independent/m2/gm2-ebnf.texi
! a3e5fb0fb5a82ea51b3740b5e2ce6735  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
! 50fbcf8cd97e54cf0df189542f8923d3  gcc/m2/tools-src/boilerplate.py
! b9d47b12e692f16104ec3920a78a414d  gcc/m2/tools-src/buildpg
! 37455b77856059325d679dd940d3f0eb  gcc/m2/tools-src/calcpath
! e1256bb923788ec6ffa7046a259ca791  gcc/m2/tools-src/checkmeta.py
! cd3e00ace6dd26c0315ec6c474d5b5c6  gcc/m2/tools-src/def2doc.py
! 09e482e77ceccc475f6b11b4896ee2e1  gcc/m2/tools-src/makeSystem
! 2808d4f5aad609072cac7cc154b80655  gcc/m2/tools-src/mklink.c
! 5291f32526adc61f22c26f6aeadba4a2  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! 2a18164ee5f162ac117e6fedb58158a2  gcc/machmode.def
! 0c9209452a934f189aa0860038b3a65c  gcc/machmode.h
! 197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
! 3a581d95d554a73a9dbd3fc292e06f1f  gcc/match.pd
! b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
! 897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
! 4f86eeea7af520ce0b773c1f2e34b5b4  gcc/mem-stats.h
! 1857dc49df435ef8450bae9f8730d33f  gcc/memmodel.h
! 6c92d4ee9086e27af2ef22fbd30322bb  gcc/memory-block.cc
! 731dc54ad27c548430c126b5b054151e  gcc/memory-block.h
! 476be2c2ec5a2b04b95790322b9b6fde  gcc/mkconfig.sh
! 1c680ed2fea24d63c34c8362970ded74  gcc/mode-classes.def
! 608203f92a067af503e057280b10c308  gcc/mode-switching.cc
! 99103dba9ded1d7f4871fe40923b8e08  gcc/modulo-sched.cc
! ab360f5772fb7a87b6119cf198a8246f  gcc/multiple_target.cc
! f98f5be75203b0e833e7bcf563eecf14  gcc/mux-utils.h
! e181eb5f73a6d1130831161c2344d8b4  gcc/objc/ChangeLog
! e00206160b117e3384f6e554cb06b174  gcc/objc/Make-lang.in
! f3dbb06248bf04272bf34751540a8844  gcc/objc/config-lang.in
! 296b176173a1ff046cbb5bb721d9f576  gcc/objc/lang-specs.h
! 3410278138f382bf16f4002cf9bb859d  gcc/objc/objc-act.cc
! 112100d0571ce3d967bdd791686e16ba  gcc/objc/objc-act.h
! 2016784e712e4790f47a560e52267c52  gcc/objc/objc-encoding.cc
! 638ad042ad5712a6da28ea792d9e1853  gcc/objc/objc-encoding.h
! 5592fb91591ac18459f377d882097ac2  gcc/objc/objc-gnu-runtime-abi-01.cc
! 451fcdf975303c6769b13a34755053ad  gcc/objc/objc-lang.cc
! c5cc36ec357f0ce91004dc9630309038  gcc/objc/objc-map.cc
! 2e83b83e229310e3f7af16252ab26122  gcc/objc/objc-map.h
! 2c06dd0b759fa7e00f5cd998818160a8  gcc/objc/objc-next-metadata-tags.h
! c9dc2763bcd3be814923a8a90faf8b03  gcc/objc/objc-next-runtime-abi-01.cc
! 038e6c110705222c3d8b8b0b4789637f  gcc/objc/objc-next-runtime-abi-02.cc
! 18ba36853ef3fae6673f15135eebd1c5  gcc/objc/objc-runtime-hooks.h
! 82b1fd82fb8a2ba9e2a8fc3f46ac8a81  gcc/objc/objc-runtime-shared-support.cc
! 6594f29228dbfaa3e7e65104fb3e5dcc  gcc/objc/objc-runtime-shared-support.h
! 8a1060d8fadfe53ae2651c9f887142ef  gcc/objc/objc-tree.def
! d816d1a0e61c66b7d71cd7a56b81b261  gcc/objcp/ChangeLog
! ac651ff7103ab4d3926a0fe46947dbc7  gcc/objcp/Make-lang.in
! cd3aac34657824ccc664d7185e6737d4  gcc/objcp/config-lang.in
! e3efef0a89306a90708239222db79f43  gcc/objcp/lang-specs.h
! 225d0e849f88420616b87987ed1e699b  gcc/objcp/objcp-decl.cc
! aa2631a800917f0a9b68ef9c3c6722fc  gcc/objcp/objcp-decl.h
! 97d04fb525d43f26efcc1c10bb62a70e  gcc/objcp/objcp-lang.cc
! ac6f2a373c263368c4451f24860f50d6  gcc/obstack-utils.h
! b53e19ed2e5aad878bc3422b5ed77de8  gcc/omp-api.h
! cdc26bd8ead0ef188e59165e859c822d  gcc/omp-builtins.def
! 69a9c2c8d43088e61b046c23efb7f450  gcc/omp-expand.cc
! 2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
! 8b82f3e01be2ffdbcd3f14366979d838  gcc/omp-general.cc
! 21041ab3bbd9eb02d136e1856bf2feb4  gcc/omp-general.h
! 5d74c55d460ae0aeed5cce6c65b59974  gcc/omp-low.cc
! 1c84cef0613c186032b0fc0682b72ab8  gcc/omp-low.h
! e15278003e18a529caf759e00fbb8140  gcc/omp-oacc-kernels-decompose.cc
! e46559b06f0c63bac8a2626dcddfb876  gcc/omp-oacc-neuter-broadcast.cc
! ee9366bb8cc47c2c1d0afc0557831e4c  gcc/omp-offload.cc
! 138089e40ad5a17f7c22aaf5abfe9743  gcc/omp-offload.h
! 8702574bc611ec74396ee89f3a23626b  gcc/omp-selectors.h
! d405908d1384f370ce94c5a2ee472cef  gcc/omp-simd-clone.cc
! 0f53435ba3b48b3ba50eb36cacda362a  gcc/omp-simd-clone.h
! 3340340ddd004f6a4db6290704d60ddb  gcc/opt-functions.awk
! a497ad43b29c18aa6006c31050e37f1c  gcc/opt-gather.awk
! 31513c4638f12d428921caa8a62c9144  gcc/opt-include.awk
! 059bb4b1ef13610d3f5525d73a204011  gcc/opt-problem.cc
! 035fb86468c4b062bc4ce780ecc01ff0  gcc/opt-problem.h
! 5b544e76388085f1ae23b1a2379ecba7  gcc/opt-read.awk
! 98e85176f1d5add0e2b33454f7471c3b  gcc/opt-suggestions.cc
! 83e2949ab4f0a281b29d45764ee87557  gcc/opt-suggestions.h
! eba7a25f3a38ce52b4cf970cc93f66ea  gcc/optabs-libfuncs.cc
! 22f466f2c62ac3f6d1a71c7d7911d694  gcc/optabs-libfuncs.h
! df4d718a9c9934a10272384f58351e0f  gcc/optabs-query.cc
! e45c50053d2064312ea73720cdb8e5d9  gcc/optabs-query.h
! 0135b6d221cd61d59fecebf7206e304e  gcc/optabs-tree.cc
! 201b2569727bf062f908121f208a860f  gcc/optabs-tree.h
! 185cc54393703007fe03979babecb031  gcc/optabs.cc
! c5f46ef2e21b33c46222e08c7533480c  gcc/optabs.def
! 81371a1b977075ff9a2b9637ac88cfa3  gcc/optabs.h
! 10284dae2b1b50618cee778ef473c34c  gcc/optc-gen.awk
! a7feb127a9364786f997ccacfe9fece2  gcc/optc-save-gen.awk
! 2e0cbbfb09b3e9fdd531f7896db0cf49  gcc/opth-gen.awk
! 1649992f0d9bf5143e5762f35095d0aa  gcc/optinfo-emit-json.cc
! a5efbd4e14a4756cdc7ef8e2022b96b6  gcc/optinfo-emit-json.h
! 40b4d682be889b0e5f2029c08c2dea2e  gcc/optinfo.cc
! 7ec7e028f1593086047c8dfc9221321e  gcc/optinfo.h
! 1f257e67c4c2e5601e53988fa5cb42d8  gcc/options-urls-cc-gen.awk
! cdbb58e9722acd3ea6e5f46b3fdab810  gcc/opts-common.cc
! c9b2e818258f43e0a779e4c3caa8801d  gcc/opts-diagnostic.cc
! 82ce7a42b8d73fdf6acbe463159e9576  gcc/opts-diagnostic.h
! 2fc49f6281f39f394f1d5c0f4feb929b  gcc/opts-global.cc
! f55f0f0a86a11d13824924aac8c98a68  gcc/opts-jobserver.h
! 8a62bfda50309410953bc2557a6b995c  gcc/opts.cc
! 616f2783bfb18bfb6cbb11881fb0aeaf  gcc/opts.h
! 413859dddc66f1f7d8ea8078e096c288  gcc/ordered-hash-map-tests.cc
! fef443de1557117f8c2847206a2ea8f5  gcc/ordered-hash-map.h
! 7c8d7dc194f39f5b8c69d7f0d05bc335  gcc/output.h
! 5f96d548f10507478f5096f298505278  gcc/pair-fusion.cc
! 69198894caa672a2294267474e494d8b  gcc/pair-fusion.h
! 36cd576c4ad7ba0f3e496910958ecda9  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
! ce920ed7f2cc74b4a9bc390c39f4cbee  gcc/pass_manager.h
! 23b3f227e4a3edb6df0c76124df99274  gcc/passes.cc
! d77f8f9495142a091f02e74420a91a51  gcc/passes.def
! 51273d95ed168859744a17468a7b3bda  gcc/path-coverage.cc
! a804a634cdc9dbcb92434c9e03799a1e  gcc/pex.cc
! b2f9b18f946c2e60e4f6cba0ab2df54e  gcc/pex.h
! 51380e9db88b682bc96a35cc4bce56a5  gcc/plugin.cc
! af6268dd53154434eb4c4d1c299e0ee2  gcc/plugin.def
! 5678cfbc9cf98f9e69bee1118c787a42  gcc/plugin.h
! 80ffd45d52aa565146d15773b799e50a  gcc/po/ChangeLog
! 2c2fbc71d2acc1ddfb9fb9501458921b  gcc/po/EXCLUDES
! 88fe35ac37392027cf200c697ddf1d25  gcc/po/be.gmo
! e4f30f44788db1eadf4eb10b10a903d8  gcc/po/be.po
! be3dc0307dbafbfc64845ff4e339ebbb  gcc/po/da.gmo
! 59633165505938f52b0c07d3af3f0d94  gcc/po/da.po
! 446f476be2e24623661d1b9b7658d1f4  gcc/po/de.gmo
! d38eb644c5f28f828dee4d87e27fbe02  gcc/po/de.po
! 171bd712cc849f0d48844078f849c06a  gcc/po/el.gmo
! e18cdc62c91b5b62dc81bc69c31f1264  gcc/po/el.po
! e0e73be7a2150972e301de2f1d0a6789  gcc/po/es.gmo
! 7aa5e78e2b4e4bc9b394118ab5da2c2c  gcc/po/es.po
! 7a6d51f7527e21e20156259c98cac705  gcc/po/exgettext
! 37ff84bf6afc03a1c7da15e02e125f84  gcc/po/fi.gmo
! 63924636199699aade768bbc28456ef8  gcc/po/fi.po
! ec5eccb9bb5507bc88a1e696dc69b38e  gcc/po/fr.gmo
! f055e274fbe5f83064131e6c7cacd22a  gcc/po/fr.po
! 0d889de19f7f325996c982df2a646387  gcc/po/gcc.pot
! c50ea4f99893397a28ef86cf089c9e3e  gcc/po/hr.gmo
! 759d9854411ffd0c481b88a630b2c738  gcc/po/hr.po
! d295ae259787d39ec17bb1bfd1329a1a  gcc/po/id.gmo
! ae161f6df0691172d3d7a8ed6d358512  gcc/po/id.po
! 52d2c9242839829cedbd825ed5fc5948  gcc/po/ja.gmo
! a79eb5d475451dabc2d6df4454156df6  gcc/po/ja.po
! 2b453fc8e8335b8d776315946eaf4573  gcc/po/ka.gmo
! 72dc6c123aebf75e453fc4194708061f  gcc/po/ka.po
! 102b670d459a91225e41f532ea63d113  gcc/po/nl.gmo
! b893512b6289995616543c182fd73a53  gcc/po/nl.po
! 1c389fa96802215da5ef10df571ed8db  gcc/po/ru.gmo
! 5a48ed208e298cec346f8ae5bf6c576d  gcc/po/ru.po
! ec3081c916a1723eaefa29b863f39358  gcc/po/sr.gmo
! 2bed2f21c84db60853fc48e212698398  gcc/po/sr.po
! 55974ef2602cf896f07c142b989e1ae2  gcc/po/sv.gmo
! e718a8bed466ebb1c3b95e80729d1daf  gcc/po/sv.po
! ed3961fc80b0ace7072d50e868a9dd45  gcc/po/tr.gmo
! a865395637faabb5f17fdc74cabf78f4  gcc/po/tr.po
! 93c3ba4d866f3d9627ea6cb70df612fd  gcc/po/uk.gmo
! 88b1edbe3fd9f5672d7d878255671e0e  gcc/po/uk.po
! 852dbc16355c42b2afca394a0c2ae2b3  gcc/po/vi.gmo
! 4e169cad957c51ed3221dd98e7b62a4d  gcc/po/vi.po
! 9d68bf96e78fa83d0f87e56ec7e2c836  gcc/po/zh_CN.gmo
! 6b3d5a774b6e1ee3706ed6409e45aa75  gcc/po/zh_CN.po
! 7a4ae6c8877f949ea424679f36f0b253  gcc/po/zh_TW.gmo
! 772a7a20e8c4e437a0c8091586968e49  gcc/po/zh_TW.po
! 0016c64b1dc5e95008ae058ae7eba1a1  gcc/pointer-query.cc
! 728738ceae729bc0f318f8accf6244c0  gcc/pointer-query.h
! 8fb747d77281aa1c6e2fbc0f106ef7f5  gcc/poly-int-types.h
! 8e1ad60e1364794de50c869dcc263271  gcc/poly-int.h
! a76391e64013dd91801b9ed642b3c817  gcc/postreload-gcse.cc
! ba4c53fadd2e92e3f30ae3b8a953c340  gcc/postreload.cc
! 93fa12f13036c5d9952405e984cc24cd  gcc/predict.cc
! 94064e652fd0a138c0dc656a3d96a966  gcc/predict.def
! c6b043ce6b64f82009d2f3763b6360db  gcc/predict.h
! eb92f089fe1cc11940fb41c338d0b6be  gcc/prefix.cc
! 003323b16487203413f2daee66ebd8cf  gcc/prefix.h
! 5c43118ee23806d01ac9d248dad17fcb  gcc/pretty-print-format-impl.h
! b1408122718335443829fcfe2d5dbcf3  gcc/pretty-print-markup.h
! 598dd697f388001a4fa8f40126a02d7e  gcc/pretty-print-urlifier.h
! 413cf96df7e11826c7eccdaa49231cbe  gcc/pretty-print.cc
! cfcb5ae7d574d818b280534a26a461bb  gcc/pretty-print.h
! 902a3ede86fca66395915f9462f949f2  gcc/prime-paths.cc
! 4791763965e448615fab35a2eda1f6bd  gcc/print-rtl-function.cc
! 740eac6d337d8af112f3f42511132e08  gcc/print-rtl.cc
! 2cd52b1a67b570ee31c684eb846def0f  gcc/print-rtl.h
! f26f8ff623fefa8bdfe18ead347e914f  gcc/print-tree.cc
! db24d9f938cefb2027e91a5068f5f1d0  gcc/print-tree.h
! 7e39922ba013c9a602f60c45e332ff09  gcc/profile-count.cc
! 4591a0265a903c86d026a1642b71188a  gcc/profile-count.h
! 66a4cbd0d34605100ec913cd7c446296  gcc/profile.cc
! 75fc41809b74ed162233e70c20df1264  gcc/profile.h
! 7f9b6625aa17fa4341b812c209fafb26  gcc/pta-andersen.cc
! bea702966301b6b7e6294ef33ec8b443  gcc/pta-andersen.h
! 706c6f6185e00db6f945b89759097531  gcc/pub-sub.cc
! f72a1e84c9facd65dc1c42ee67f21583  gcc/pub-sub.h
! c31c0520e2804e9ad22ae257d5dd5ea6  gcc/range-op-float.cc
! 5b7facbc76df7d457131d6ab875c3b62  gcc/range-op-mixed.h
! f4cba1bfd3b506f536d929e22e20525d  gcc/range-op-ptr.cc
! cf65d64ae38adb74e74e34c58cf68528  gcc/range-op.cc
! 08eea1a2533e737fb45e4cf1818b5d33  gcc/range-op.h
! 5224210104d440bc7bae81953ca2e7f1  gcc/range.cc
! 19ba1dec644467b75ebc4246acf8ff8f  gcc/range.h
! 685295910dd30e1779dc47adcdaa7cbb  gcc/read-md.cc
! 16c25d0d963b52a61f08bff1e5bed4a4  gcc/read-md.h
! b8895f7e982e18901ad6f4ea1cfbe0db  gcc/read-rtl-function.cc
! d1e8f06dfe7f0d64ebabef7c52035296  gcc/read-rtl-function.h
! 0f76d73b8755bc8a6b10b87d6dc76632  gcc/read-rtl.cc
! 080926a212f3d4fab9096e6394ba1ddb  gcc/real.cc
! 45b87c4baefe4e526664defa3b15f968  gcc/real.h
! 034d6804511ba5d0c988e1e98ab47d5d  gcc/realmpfr.cc
! 5ada18d8279938c02c4d9f3751acf660  gcc/realmpfr.h
! 7fbdfd1ffe1a75841b1fe6694f435364  gcc/recog.cc
! 70ff0cfdb2d7d28d6188422d526830c6  gcc/recog.h
! 8bff9b4e294312d53b3edc3a5599f0a3  gcc/ree.cc
! cccab40b3ac43a58e799adb120a5dfbf  gcc/reg-notes.def
! 7a6bc7c58286682936006bbdfed0b1fe  gcc/reg-stack.cc
! cbae359b740a87a489f2cbe509ba7e6d  gcc/regcprop.cc
! e871bb7c9089d9ade710735b0803cff1  gcc/regcprop.h
! 435320d85f05d8915fcbd110db42a930  gcc/regenerate-attr-urls.py
! 5e402924ce5d4a7e3c923c23d6947bc8  gcc/regenerate-opt-urls.py
! 0e3a39b230beb335e14d1d6336b7985e  gcc/reginfo.cc
! 4fc0401c76f75e872ceb423b786535b3  gcc/regrename.cc
! 3305b4e257d68cf35538509ba53235c4  gcc/regrename.h
! 6580474411878a2b9597d3b70f7de88d  gcc/regs.h
! f6ee3573d12b2bf0797c81e08e824072  gcc/regset.h
! a32ba270250c91347c389ba4b4303641  gcc/regstat.cc
! d7256ea03d4e168a4a414594c61b73e9  gcc/reload.cc
! 1c398a12a3ea644ebd07512d5b4e65c5  gcc/reload.h
! 6bb0b6dca1f3e83fbad05f4f3040d636  gcc/reload1.cc
! 6ddd7549367691be792f4381bfba4159  gcc/reorg.cc
! b793684c5e7574c606a80fe60b257873  gcc/resource.cc
! 7d3ffe0904b67a6517b76695b2da9665  gcc/resource.h
! 9a54d98d77cb6ea171547301233d0c6a  gcc/rtl-error.cc
! e396a098307fc0c052e665f69ce59385  gcc/rtl-error.h
! 08c6c461f06fdd137ad0f0b3a7f19d95  gcc/rtl-iter.h
! a2f6c6250981e92b37bcd0b9e26f3e4c  gcc/rtl-ssa.h
! 3b355603e06cd41aa623bb1825681c3c  gcc/rtl-ssa/access-utils.h
! d33406fc284f7698dc08cb0d9e66f6ce  gcc/rtl-ssa/accesses.cc
! 0d841dc8cb9b917713df3a7e505847c7  gcc/rtl-ssa/accesses.h
! 1fc53212b578a2db70679f5cf28f33b5  gcc/rtl-ssa/blocks.cc
! 8b5c9d7cc52410c30ee4a6d5ab70b075  gcc/rtl-ssa/blocks.h
! 5cde2269552a7c21c0cf0ea191677f6f  gcc/rtl-ssa/change-utils.h
! f3e87a0023b856d08711692c25499feb  gcc/rtl-ssa/changes.cc
! 7a1cab9d5d9fc3565371c693311cb6de  gcc/rtl-ssa/changes.h
! 82782cb9a0b1d420ccdaeb45e17c49f5  gcc/rtl-ssa/functions.cc
! 1d9e3601c2ed322fbec7674c7cf75326  gcc/rtl-ssa/functions.h
! b9205c8e82c85da2f7a035b090000f11  gcc/rtl-ssa/insn-utils.h
! 6b1c602802fb71d34e4807f74aef1860  gcc/rtl-ssa/insns.cc
! 5675ab32e73f48abe40c4d985345b1d1  gcc/rtl-ssa/insns.h
! 93f7cdc164ed1bff5e2d2492fb7deed3  gcc/rtl-ssa/internals.h
! b437011708852e18def6acbf8fc4e1b7  gcc/rtl-ssa/internals.inl
! bd979c8e7f342fc4d558c136fe6e5347  gcc/rtl-ssa/is-a.inl
! 67ca1a4bc903bbc5b157e11dc9ee170d  gcc/rtl-ssa/member-fns.inl
! eab7365dceccf86b8e9a8ccbb365afc3  gcc/rtl-ssa/movement.cc
! 52b32f7fea2e3ff36ca550993706891f  gcc/rtl-ssa/movement.h
! 40583244827449be4bd28679b4068f04  gcc/rtl-ssa/predicates.h
! 24f0dd01b35b9a9b7f5bf7db574be3ec  gcc/rtl-tests.cc
! 27956813d0124f5b5ec60d5a48840a34  gcc/rtl.cc
! a9ad8cbba3c33e3fbc0b79c6938a0295  gcc/rtl.def
! 1ddd2444adb70f3c6e041e2e5bc3bb1c  gcc/rtl.h
! 7ff1c4f5f03f9f3f90b58f300088af4a  gcc/rtlanal.cc
! 57073d447ccb92aa7b0276e4471824df  gcc/rtlanal.h
! 9a5e61517f096479200fef046f8b2d35  gcc/rtlhash.cc
! 0c917b0591a65e7996befc0d1e294cc3  gcc/rtlhash.h
! e69cd2b6e182aa2d43143b1719d6c6e4  gcc/rtlhooks-def.h
! 1d86f6c5a4ac8a9eeea13ee9c306aa3f  gcc/rtlhooks.cc
! ff662645190de703b9423727e52d659c  gcc/rtx-vector-builder.cc
! 8da9679c77b842ef90ccd0d87722aec8  gcc/rtx-vector-builder.h
! 92e356710b1aae5aaabc8f47d6977fff  gcc/run-rtl-passes.cc
! f4eae48a3e90b34e88b5789e54f5f29a  gcc/run-rtl-passes.h
  add9bd82fcec23469a4d0f7df03d9589  gcc/rust/CONTRIBUTING.md
! 4b6437e930c97c1ae8a3e59583d7c9a6  gcc/rust/ChangeLog
! c37ff78061953b076ac2eb5551b37be1  gcc/rust/Make-lang.in
  f3527e161e6e2827d299c1a928ebe1c6  gcc/rust/README.md
! fbd9e5dbbbf2e1a3e28d730525b8eb78  gcc/rust/ast/rust-ast-builder.cc
! c08e21c65a155ba30f72631681911034  gcc/rust/ast/rust-ast-builder.h
! bceb109492170e91c8c295d88c9e5961  gcc/rust/ast/rust-ast-collector.cc
! a777fb86e5d41d829721554ee8a81ca7  gcc/rust/ast/rust-ast-collector.h
! 98b8c7bc7c7460959df0b63f43d595ee  gcc/rust/ast/rust-ast-dump.cc
! a3c39938de79362236289dd94cc979bb  gcc/rust/ast/rust-ast-dump.h
! 13f7ee0d5b0ae541ac6c8c27a9544024  gcc/rust/ast/rust-ast-formatting.cc
! d27f26e206e8e58bbf206df6c491ad3d  gcc/rust/ast/rust-ast-formatting.h
! 1d2023c1d1dbe72ba8448b166577801b  gcc/rust/ast/rust-ast-fragment.cc
! 00ca322cecd6a261aaeea375344973b1  gcc/rust/ast/rust-ast-fragment.h
! 675d4ad42d08e4f5907e7143057b09a7  gcc/rust/ast/rust-ast-full-decls.h
! ce8b5c065e370de22a7a9314f5030d5a  gcc/rust/ast/rust-ast-full.h
! 302c47af8311cc68f23f7c941c37826d  gcc/rust/ast/rust-ast-pointer-visitor.cc
! 3de874b956fb474770d98a83e420396b  gcc/rust/ast/rust-ast-pointer-visitor.h
! 003c050ae97bad63ac141ffd1ac16840  gcc/rust/ast/rust-ast-visitor.cc
! ff1c55d74fc098d6e8a6a5ac297498e8  gcc/rust/ast/rust-ast-visitor.h
! a211319b221cec4d5a279caca4fd40ea  gcc/rust/ast/rust-ast.cc
! ca66d862961538c388fe021adcf03774  gcc/rust/ast/rust-ast.h
! 15a29678516152e3a7190d2b2a01a7e5  gcc/rust/ast/rust-builtin-ast-nodes.h
! a80235d705e48446e91e5fc731dbcfff  gcc/rust/ast/rust-collect-lang-items.cc
! 577a3197010f4f13c724c6aee258c07f  gcc/rust/ast/rust-collect-lang-items.h
! ac77ecd9f07e83ede58b369bb61f6282  gcc/rust/ast/rust-cond-compilation.h
! 24dbf3c38fb03d11f689a07bf80d0702  gcc/rust/ast/rust-desugar-apit.cc
! 7785d3724ea38550b82ec443936ca4d6  gcc/rust/ast/rust-desugar-apit.h
! b786dad2cf26b3f5ae02e1d426b61f03  gcc/rust/ast/rust-desugar-for-loops.cc
! d35d0a34436011c1d4dfbb2ee0f343fe  gcc/rust/ast/rust-desugar-for-loops.h
! 18012c546a4ef63f95aba627e43ef940  gcc/rust/ast/rust-desugar-question-mark.cc
! e6c47c7d5c58b601dbebb5a0bd1b263a  gcc/rust/ast/rust-desugar-question-mark.h
! 12bf30c81c0344947492baff8d2cf494  gcc/rust/ast/rust-desugar-try-block.cc
! dcbe24ad7f60ad58e14a2b40bb7b7580  gcc/rust/ast/rust-desugar-try-block.h
! 3e3e3c4baf7a69aefb9fd989d8b7b491  gcc/rust/ast/rust-desugar-while-let.cc
! 0a24ad8baedd9b3f104f4ba1efceab02  gcc/rust/ast/rust-desugar-while-let.h
! 548ed3dbb162bd62a7eddaa8e44d9235  gcc/rust/ast/rust-expr.h
! 0746b32151c484e3ff44eef8e94d2f1a  gcc/rust/ast/rust-expression-yeast.cc
! 626bbb6526780507e2d8c0727b9ddef9  gcc/rust/ast/rust-expression-yeast.h
! e10c652a02b59d0bbfc3ed60e3ba6a67  gcc/rust/ast/rust-fmt.cc
! 069a7108cb1404f7fd55ff1cb6ac3b9e  gcc/rust/ast/rust-fmt.h
! 26639a30268b35287b7c8a5643f53442  gcc/rust/ast/rust-item.h
! 1b4a6ec192a470e32bdad6fb49f514b6  gcc/rust/ast/rust-macro.h
! 8dd1e4ff4335af00648884bddbb8459e  gcc/rust/ast/rust-path.cc
! d66fe903279a3ccbfb7b78a4f53dbeea  gcc/rust/ast/rust-path.h
! 4656ab8ed62a44eb57c9458e4b2d0c87  gcc/rust/ast/rust-pattern.cc
! e84ec0880b45e2e86d61f0d36c314317  gcc/rust/ast/rust-pattern.h
! 96b0d295ecceb5ea1c9f86b4d922834a  gcc/rust/ast/rust-stmt.h
! 31891c319a6cd4db94f7cde8416e3c91  gcc/rust/ast/rust-type.h
  39774c8ec83393047e843c9b8dff6822  gcc/rust/backend/rust-builtins.cc
! 4d12359a7a47b6d290998ff743d3b250  gcc/rust/backend/rust-builtins.h
! 841c4de1fb9c8ae4e98cfaf77ce23ebc  gcc/rust/backend/rust-compile-asm.cc
! f2a74dec153c7d458110255bddcd7c47  gcc/rust/backend/rust-compile-asm.h
! 111bf2f91c54323826776a521d970b70  gcc/rust/backend/rust-compile-base.cc
! bb0150a6ba6d60262a1b33393f8d5341  gcc/rust/backend/rust-compile-base.h
! fd2bc9cab100ad48a45eff369cdaa1af  gcc/rust/backend/rust-compile-block.cc
! f6ccf3e6550e5f3d1e7f0903fad16e00  gcc/rust/backend/rust-compile-block.h
! 84d2efe344d04876bdef59c09e170495  gcc/rust/backend/rust-compile-context.cc
! 6bc78d73b506cf623b5f0e27fdc8326e  gcc/rust/backend/rust-compile-context.h
! f78bbbef53eba04c0dc10812db205de0  gcc/rust/backend/rust-compile-expr.cc
! 02d50055305164dd0cc5fff5dd879d8d  gcc/rust/backend/rust-compile-expr.h
! d2787752d55665c5f6a670bcb3949817  gcc/rust/backend/rust-compile-extern.h
! 154038c60400f9e4a8ead9dcc5ea2388  gcc/rust/backend/rust-compile-fnparam.cc
! 8c98ceabcde4b8a1cc6e31c5186c9656  gcc/rust/backend/rust-compile-fnparam.h
! f2f769661a2bb93e87b5954861eecacf  gcc/rust/backend/rust-compile-implitem.cc
! be9ce3db6b795d9db2585b15e17f476d  gcc/rust/backend/rust-compile-implitem.h
! 59ae6f1ab24ae2166c53f3547a682f93  gcc/rust/backend/rust-compile-intrinsic.cc
  a1fb8689400958af8126ae9c477c873e  gcc/rust/backend/rust-compile-intrinsic.h
! 2312bf92f44bf06f70f4403730f5aef0  gcc/rust/backend/rust-compile-item.cc
! 4faa4d3dc0f5fd3cfd2981a8f06308e4  gcc/rust/backend/rust-compile-item.h
! 375a8b5f34115d69573237509dc5bac8  gcc/rust/backend/rust-compile-pattern.cc
! bedf30a4724e428664f2f471edda5d23  gcc/rust/backend/rust-compile-pattern.h
  cd711182d62e81ac9cb36e89d0ab5062  gcc/rust/backend/rust-compile-proc-macro.cc
! 759481aac456c546da0e05e2994a59b2  gcc/rust/backend/rust-compile-resolve-path.cc
! 21dfb54bc738ea2ee1acadbdc70dda9b  gcc/rust/backend/rust-compile-resolve-path.h
! e75e1fda31ea166fc6ce912b0452b80b  gcc/rust/backend/rust-compile-stmt.cc
! 0616707ec19e6af74a2368c47facedc8  gcc/rust/backend/rust-compile-stmt.h
! 74ff88ecb580496d0348fd985d94f78e  gcc/rust/backend/rust-compile-struct-field-expr.cc
! 45319a8743880ce8e94f692e7fa2a68c  gcc/rust/backend/rust-compile-struct-field-expr.h
! 6ac3d881d80a8fc5025850fbe68b83d5  gcc/rust/backend/rust-compile-type.cc
! 99a4de0c5be47e5399e6c849136344c7  gcc/rust/backend/rust-compile-type.h
! e1ac8f89451615ed406d5080754c925f  gcc/rust/backend/rust-compile-var-decl.h
! ce6124f6342485eba9fc0c1525c93d1a  gcc/rust/backend/rust-compile.cc
! a9a83e514f16f22fdc6e72fcb2e37a14  gcc/rust/backend/rust-compile.h
! 53b4d6a019435dade0320636db64f287  gcc/rust/backend/rust-constexpr.cc
! 8b7d1489d3387b799f0272f52df62581  gcc/rust/backend/rust-constexpr.h
! 44cf2d34db2d4a252d6db0acd62d9b85  gcc/rust/backend/rust-intrinsic-handlers.cc
! 91a625c9449712b5311b773867f2c91f  gcc/rust/backend/rust-intrinsic-handlers.h
! fe6f5539b06a5b2b5c8179da42f9cd0d  gcc/rust/backend/rust-mangle-legacy.cc
! 3ff8e3c97c56af610fb789104c385560  gcc/rust/backend/rust-mangle-v0.cc
! 3f96bdbc9eba300857511ae861409693  gcc/rust/backend/rust-mangle.cc
! dcbba0779b1eca1b210c23b8ef3dcc5d  gcc/rust/backend/rust-mangle.h
! 65b098b3400d3263f18f7a28ccec2289  gcc/rust/backend/rust-tree.cc
! f6bd4fda68a044019b913ed98bf1523e  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
! 1f39f2548565211d1e37f84e5e2b05a1  gcc/rust/checks/errors/borrowck/ffi-polonius/src/gccrs_ffi.rs
  176ad4ad98603108017a56bd46d0ef3a  gcc/rust/checks/errors/borrowck/ffi-polonius/src/gccrs_ffi_generated.rs
! 43d34218afeae3aa3d68325fd4a9153b  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
*************** e6a98217bc70c2064cb3c9a085fbc292  gcc/ru
*** 8067,8514 ****
  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
! 63a28af321731b1ddb6fd4a779bfa851  gcc/rust/checks/errors/borrowck/rust-bir-place.h
! c155995ce485ce0e9a21876183c1a9bb  gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
! 7333a5b4ee8d7bed652435c73523a459  gcc/rust/checks/errors/borrowck/rust-bir.h
! c62ad0b7d7912fb0902b5edd26c0239a  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
! 4ed1330630a7531803951e904a7db8fa  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
! ace168df68feeff6e6062dce7285a09c  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
! aa2f440763246662044c0f16f1c5e858  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
! 638409bbeb74a1a601d76cb729594d93  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8329,8797 ----
  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
! aa313bed142588fabe7a75b55aab6132  gcc/rust/checks/errors/borrowck/polonius/rust-polonius-ffi.h
! 5777cde9ed88b0db69ac5918583ad9ef  gcc/rust/checks/errors/borrowck/polonius/rust-polonius.cc
! 112a36e7d30b9b0f77222e93c2670c15  gcc/rust/checks/errors/borrowck/polonius/rust-polonius.h
! ec15191f2ba147daa1084d57531231bf  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
! 57ac49cc8e37282bf94bba113bb7f244  gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
! 419fa1bca0212a99a9026d42d7708d60  gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
! 445c13c9a9a98e8720d4322713af57d5  gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
! 6305f4d04481595395e6628d3dda2a6f  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.cc
! e617b37b26e3ada0560acee515888e90  gcc/rust/checks/errors/borrowck/rust-bir-builder-pattern.h
! 7e40113f634abfe1d225ba87d926e598  gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
! 708cc3717f52a4d1b9cfaeabd3fcbd20  gcc/rust/checks/errors/borrowck/rust-bir-builder.h
! 0247f69ebd2b667d80bd9a03a5d8b2d0  gcc/rust/checks/errors/borrowck/rust-bir-dump.cc
! 19a7621e50d1ae9649388af0bbb33cc1  gcc/rust/checks/errors/borrowck/rust-bir-dump.h
! f27a457ad0e87ad8a80bd6ff3013db81  gcc/rust/checks/errors/borrowck/rust-bir-fact-collector.h
! 9cbded68bce4b67e6259cda0049579c1  gcc/rust/checks/errors/borrowck/rust-bir-free-region.h
! 3dcb8270df39d378de5848dd64ff8a91  gcc/rust/checks/errors/borrowck/rust-bir-place.h
! 1c2526a9d6328fc2315f5ac867453bbd  gcc/rust/checks/errors/borrowck/rust-bir-visitor.h
! 4e7d5ac67b076cdbc637ba3f1eb1abad  gcc/rust/checks/errors/borrowck/rust-bir.h
! 354204aa3f4347633c740d052a14f084  gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.cc
! df7d91be1b422b96bf594b0d17010985  gcc/rust/checks/errors/borrowck/rust-borrow-checker-diagnostics.h
! b8caf4770c8130c1b5af70e873f0fb35  gcc/rust/checks/errors/borrowck/rust-borrow-checker.cc
! 6156d10aa29ff8bb0094447a03e07631  gcc/rust/checks/errors/borrowck/rust-borrow-checker.h
! a014a6064257ab9fbde59b5445c6c81d  gcc/rust/checks/errors/borrowck/rust-function-collector.h
! 48961f264cd3fbeeb72a6691fc80d102  gcc/rust/checks/errors/feature/contrib/.gitignore
! 8f285501a6ae2de4a79d5ce3e32c0c8f  gcc/rust/checks/errors/feature/contrib/Makefile
! 49ef343f479413ef88d9bc815792aac3  gcc/rust/checks/errors/feature/contrib/README
! 3db03e458f3c55cb8e89db246fab3e5e  gcc/rust/checks/errors/feature/contrib/copyright-stub.h
! d0009b7082670309fdadc0ecbbdf0d35  gcc/rust/checks/errors/feature/contrib/fetch
! e7ffba1a910ae682f0f9a4bec0695334  gcc/rust/checks/errors/feature/contrib/parse.y
! ffd785acdfbb1eba43f3b1cb6828c17c  gcc/rust/checks/errors/feature/contrib/regen
! 9f41bf8158b1874ab4e2e12fb9469a03  gcc/rust/checks/errors/feature/contrib/scan.l
! 85305daa7e42cd43aaebe9a566869724  gcc/rust/checks/errors/feature/rust-feature-collector.cc
! bbab9ad0ba3bffd8f8502d2bafaf47cf  gcc/rust/checks/errors/feature/rust-feature-collector.h
! f3e7f9998a5fcd5ef243ba6881006a5c  gcc/rust/checks/errors/feature/rust-feature-defs-rfl.h
! 563d237ceb9c4fea2076fb3150468741  gcc/rust/checks/errors/feature/rust-feature-defs.h
! c7a2444814a71319ab50e37ac0395ec8  gcc/rust/checks/errors/feature/rust-feature-gate.cc
! eee27a8aecb127e10844eddccadf13d9  gcc/rust/checks/errors/feature/rust-feature-gate.h
! e227787587d4567c45f9966f8b82db7b  gcc/rust/checks/errors/feature/rust-feature-store.cc
! 2947cb614792b8cb8d655e3661870770  gcc/rust/checks/errors/feature/rust-feature-store.h
! 7d710333b381f61c295f5173f198fb92  gcc/rust/checks/errors/feature/rust-feature.cc
! 19948fcb207a9348ff98d7b997afbdd6  gcc/rust/checks/errors/feature/rust-feature.h
! 11a7afddbf687c5618769c08d87017d5  gcc/rust/checks/errors/privacy/rust-privacy-check.cc
! 43596711f6c0a8096ca24425a4133210  gcc/rust/checks/errors/privacy/rust-privacy-check.h
! 19e8562ee6c9ded3899f6d0f02aea8b8  gcc/rust/checks/errors/privacy/rust-privacy-common.h
! 141f1f2147a5be923ccc9ea923ba2885  gcc/rust/checks/errors/privacy/rust-privacy-ctx.cc
! 59191eca50e396dc546b86ea28234673  gcc/rust/checks/errors/privacy/rust-privacy-ctx.h
! bd60b2b7d2dd6a05a8c7fe47ed8965fd  gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
! 78a6a5c048745c24231d5bdda74e7f74  gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
! ae661cfd7b4e13f7428e1fc2568db32c  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
! 05be35df2802adddd997ce762a360cfb  gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
! 2efbc6d644df7e2d6be35d17360c147d  gcc/rust/checks/errors/privacy/rust-reachability.cc
! 7b312566736776dc642e0ac6069ee674  gcc/rust/checks/errors/privacy/rust-reachability.h
! b7c4e379cff5779afde61a662b051bb7  gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
! f7b06cf79a55c9659bdf40d25e0bf4b1  gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
! 2242ee9c3a9e335cce55e7458bef54aa  gcc/rust/checks/errors/rust-ast-validation.cc
! 8a47aa2db46c3e82da2be3ad19266b53  gcc/rust/checks/errors/rust-ast-validation.h
! 12cac8ce1e5761394a626d7d68b61c90  gcc/rust/checks/errors/rust-attribute-checker.cc
! 83f6652638adfd9f110381c863d0fb64  gcc/rust/checks/errors/rust-attribute-checker.h
! 4d358762e8aed33ded474961da022148  gcc/rust/checks/errors/rust-builtin-attribute-checker.cc
! e6c34d2279cd39fe13d7dc443e01bda3  gcc/rust/checks/errors/rust-builtin-attribute-checker.h
! 97eb5164438e6a5d6b7d7eaa08bc5e45  gcc/rust/checks/errors/rust-const-checker.cc
! 5b19c80d8eef717fef37e22c0f60caf2  gcc/rust/checks/errors/rust-const-checker.h
! f887dee766eacb3557fe74453215ae8e  gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
! f8bbf6383cf2f4051c4c724c78c03f28  gcc/rust/checks/errors/rust-hir-pattern-analysis.h
! ce0954d8a72edb61be6d8e646c61c6cf  gcc/rust/checks/errors/rust-readonly-check.cc
! 7853e036ce1dfe09f579bf6a04994461  gcc/rust/checks/errors/rust-readonly-check.h
! b50c6015cedf461d30c5f73ad35d4413  gcc/rust/checks/errors/rust-unsafe-checker.cc
! 543a16c88c57a44588e4d5093ed78f6f  gcc/rust/checks/errors/rust-unsafe-checker.h
! 45e1e285d36467b08cc19201db4f6644  gcc/rust/checks/lints/rust-lint-marklive-base.h
! 377ecc03102aabc4ebf650f8a562811c  gcc/rust/checks/lints/rust-lint-marklive.cc
! 09a6bbd6500d30d3646663f300340b97  gcc/rust/checks/lints/rust-lint-marklive.h
! 39d2087b62541ef24b107e4edf79b300  gcc/rust/checks/lints/rust-lint-scan-deadcode.h
! d03052efded34394a85b3e891c267781  gcc/rust/checks/lints/rust-lint-unused-var.cc
! 56160d4d1424a0469b62ce3dc9ef7886  gcc/rust/checks/lints/rust-lint-unused-var.h
! ba6521a1acc2f2dac3af19cb480e4b2d  gcc/rust/checks/lints/unused/rust-unused-checker.cc
! cb37b95682b2e7ba7b7ee8b8fd38e414  gcc/rust/checks/lints/unused/rust-unused-checker.h
! bd02f07bc0449d5332cbe841ea6407f2  gcc/rust/checks/lints/unused/rust-unused-collector.cc
! 255b7bc523902935456fdefb815a91e0  gcc/rust/checks/lints/unused/rust-unused-collector.h
! 747ddc08d2d075789af43eefe97866a1  gcc/rust/checks/lints/unused/rust-unused-context.cc
! 853df2211803f255982f2b5aca075734  gcc/rust/checks/lints/unused/rust-unused-context.h
! a5565d318380d1fcdf7d319909cb2fc8  gcc/rust/config-lang.in
! dc9de059c86eeb41384ccbbdf90c8ccc  gcc/rust/expand/rust-cfg-strip.cc
! 91b9c52da52e84509eead7c6bcf889c4  gcc/rust/expand/rust-cfg-strip.h
! 4e8b13587555bf85dfdd0139cf368a0d  gcc/rust/expand/rust-derive-clone.cc
! 79d1eb8e6eeece040b532c2494bd883f  gcc/rust/expand/rust-derive-clone.h
! ba378a704dc2dea3fe9e7dac471add1d  gcc/rust/expand/rust-derive-cmp-common.cc
! 4b7fb9e918c46089138585e7ff1d3ea9  gcc/rust/expand/rust-derive-cmp-common.h
! 194112b3b59406fff12117f44bec75bb  gcc/rust/expand/rust-derive-copy.cc
! ee38f5f050e08826f6afcf77620cc1b8  gcc/rust/expand/rust-derive-copy.h
! 33d106e8155d08b191847e706525120b  gcc/rust/expand/rust-derive-debug.cc
! 93c0a45e0d8f6e28236e3985c5497e9c  gcc/rust/expand/rust-derive-debug.h
! 6d86fce39182fe00c60eed254223e0e7  gcc/rust/expand/rust-derive-default.cc
! ca7c4ab77b5343cc4b5d34c5865bdabb  gcc/rust/expand/rust-derive-default.h
! 6be9d385190dcd9348c4921f43ac1145  gcc/rust/expand/rust-derive-eq.cc
! db60887b189ef8dd1131d50e5a95ea80  gcc/rust/expand/rust-derive-eq.h
! 4307ecf1c5a71dafd7b813514dcc910c  gcc/rust/expand/rust-derive-hash.cc
! 5084122d4e53311018c54c7ed1a6fedf  gcc/rust/expand/rust-derive-hash.h
! 3b97cee6f6028f738e963d75e71ddafc  gcc/rust/expand/rust-derive-ord.cc
! 5a97bde45bf1009c7ef5c600544b55ee  gcc/rust/expand/rust-derive-ord.h
! b9d81791a655aa0e8365eb6f1f40e6dd  gcc/rust/expand/rust-derive-partial-eq.cc
! f8d9ae32b9fb0c892b90ca30e3f100b6  gcc/rust/expand/rust-derive-partial-eq.h
! 338153a09e9c1f7d81ba87f49c77ebe2  gcc/rust/expand/rust-derive.cc
! e4121a7bd18849c5d0c504d98b639b2c  gcc/rust/expand/rust-derive.h
! 5d0d51ca0585103d826f01c4a63b8d56  gcc/rust/expand/rust-early-cfg-strip.cc
! ee3e9df287e242b2780da2661e9d3358  gcc/rust/expand/rust-early-cfg-strip.h
! caff0b7b7e1a0fb05ef4f8575614fb41  gcc/rust/expand/rust-expand-format-args.cc
! 32cdbc32d6a40f91930b408f13f78df8  gcc/rust/expand/rust-expand-format-args.h
! 7ec5a386e9d466bb3e35081fb3c49196  gcc/rust/expand/rust-expand-visitor.cc
! 0e79d157c10d46a62655c621a6b55626  gcc/rust/expand/rust-expand-visitor.h
! 3628942d6eb2dc1c553b94271a4d592e  gcc/rust/expand/rust-macro-builtins-asm.cc
! 48269c7df7dead67e4185d80b217a76a  gcc/rust/expand/rust-macro-builtins-asm.h
! f27b7d7665a02b4f5288be721ee7cd3e  gcc/rust/expand/rust-macro-builtins-format-args.cc
! bc1e13e9ae89f76aed9dae3ec38022a3  gcc/rust/expand/rust-macro-builtins-helpers.cc
! 26c45cd5c08834c9402a74d292e4f355  gcc/rust/expand/rust-macro-builtins-helpers.h
! e78b00ce2aed15088c09bf10baaf4265  gcc/rust/expand/rust-macro-builtins-include.cc
! 8ec129a05e6e88dcd3ff02e4fe57e423  gcc/rust/expand/rust-macro-builtins-location.cc
! 3cc7a61e5653feaa71171c95515773f3  gcc/rust/expand/rust-macro-builtins-log-debug.cc
! 3056a545c61cc2eac5db256ee4360c75  gcc/rust/expand/rust-macro-builtins-offset-of.cc
! 501956889da485e4cfda285aef1c1db5  gcc/rust/expand/rust-macro-builtins-test-bench.cc
! 501956889da485e4cfda285aef1c1db5  gcc/rust/expand/rust-macro-builtins-trait.cc
! 907f65abd4676d9291ef7277bcf5425a  gcc/rust/expand/rust-macro-builtins-utility.cc
! 7c2ef170018db6c9883bce9f1dfa3277  gcc/rust/expand/rust-macro-builtins.cc
! 6d3373d4b93bdf7e0fd90d0eec8de32e  gcc/rust/expand/rust-macro-builtins.h
! c13540dd0e96136221c06fdfad5fa580  gcc/rust/expand/rust-macro-expand.cc
! 35cdae960da84ca7c1a9fe07fe04f854  gcc/rust/expand/rust-macro-expand.h
! 6d4d133a734277207ddac6f68b43278f  gcc/rust/expand/rust-macro-invoc-lexer.cc
! c521d329f546dc2c3bda3e9182abc6fe  gcc/rust/expand/rust-macro-invoc-lexer.h
! c043b006c21e87f8b82ba1334addb1af  gcc/rust/expand/rust-macro-substitute-ctx.cc
! 8ee2246e0a6bbdd6c8f79dad099a0400  gcc/rust/expand/rust-macro-substitute-ctx.h
  7faead690d4bd47de7b4b5fe0c4fb7d7  gcc/rust/expand/rust-proc-macro.cc
! 9568c3923de491cd646cd621c423458a  gcc/rust/expand/rust-proc-macro.h
! fc268c6c7778ed7ae6989f7f0d879bdc  gcc/rust/expand/rust-token-tree-desugar.cc
! 7320c7b564a470f189050f3109db3d38  gcc/rust/expand/rust-token-tree-desugar.h
! 9686a496a6b9df4da71cd91a9a596a96  gcc/rust/hir/rust-ast-lower-base.cc
! d2f3d1afd55e7cc89809f8d005d159cc  gcc/rust/hir/rust-ast-lower-base.h
! 388369f5656aba1972999bdfa496f3b0  gcc/rust/hir/rust-ast-lower-block.h
! 054c79e824e2ba6f9c8c4337571f8654  gcc/rust/hir/rust-ast-lower-enumitem.h
! 288088a4374abaea8149e6c3d116b2e4  gcc/rust/hir/rust-ast-lower-expr.cc
! 26ed1e5107bba0bda3e49e0747aad013  gcc/rust/hir/rust-ast-lower-expr.h
! 0a8a648826ab2d693d37d1ef6db621ac  gcc/rust/hir/rust-ast-lower-extern.h
! af24f6b3af1cef0fedb4b6e50d0859db  gcc/rust/hir/rust-ast-lower-format-args.cc
! be0e883542232a22c58368620773a567  gcc/rust/hir/rust-ast-lower-format-args.h
! ce342337b00bc7e1af31ad2289113edb  gcc/rust/hir/rust-ast-lower-implitem.cc
! f96a93065b8ef877d4ef5a9601c45679  gcc/rust/hir/rust-ast-lower-implitem.h
! ae9795dedaba016aa96fbe1b10b18096  gcc/rust/hir/rust-ast-lower-item.cc
! 375f95d0560ba9e63cb15fd55a381950  gcc/rust/hir/rust-ast-lower-item.h
! 3beb02226e0d6306f86a5e930524f669  gcc/rust/hir/rust-ast-lower-pattern.cc
! e5d2a1d427ba7ab163a80fda1d1455a3  gcc/rust/hir/rust-ast-lower-pattern.h
! 1e1b8628655ff036184c0519df939d1c  gcc/rust/hir/rust-ast-lower-stmt.cc
! edace426f0e4e28c4397a27133ae4cdd  gcc/rust/hir/rust-ast-lower-stmt.h
! 09e01bbdd69f01beb32affaaca018c86  gcc/rust/hir/rust-ast-lower-struct-field-expr.h
! 484c747a04a639463ce0de8d16a792dc  gcc/rust/hir/rust-ast-lower-type.cc
! 117bb38f7e034f149d3f509bf5a3e24b  gcc/rust/hir/rust-ast-lower-type.h
! 56c1bab9d335b848e8039bae8152b445  gcc/rust/hir/rust-ast-lower.cc
! c1ece1677d7766c75e292c36ec7d4d74  gcc/rust/hir/rust-ast-lower.h
! b3f934462bc485ce6a92229957587b2d  gcc/rust/hir/rust-hir-dump.cc
! 0e7e3cab911dea4b76dcbb3b282da69d  gcc/rust/hir/rust-hir-dump.h
! ad963c766284e28d038c5e5060f161f4  gcc/rust/hir/tree/rust-hir-attrs.h
! 8875627643bf7c32d8c894b557d7b80e  gcc/rust/hir/tree/rust-hir-bound-abstract.h
! bb82f5f58359c8b7381de361d22141dd  gcc/rust/hir/tree/rust-hir-bound.h
! e8f36ea5922fc0698c18a2e7c67757db  gcc/rust/hir/tree/rust-hir-expr-abstract.h
! a853cdc6069a599fed623d914c219216  gcc/rust/hir/tree/rust-hir-expr.cc
! d69ed1dc862f9b0191138c8e62a6fb8e  gcc/rust/hir/tree/rust-hir-expr.h
! 0c65bbe0083a42d47006a772a150f2af  gcc/rust/hir/tree/rust-hir-full-decls.h
! c614345abe86d83c7906a4aacb42e8c8  gcc/rust/hir/tree/rust-hir-full.h
! 2db585f68d3310e8eb15a16de2b77777  gcc/rust/hir/tree/rust-hir-generic-param.cc
! 684c0083d527a7a3e995d31f50b66857  gcc/rust/hir/tree/rust-hir-generic-param.h
! 2451e888188724451f17384b4da9e51a  gcc/rust/hir/tree/rust-hir-item.cc
! 2d082f479d7e581cc2da342e572de33d  gcc/rust/hir/tree/rust-hir-item.h
! c8961f38906a566e92932d33a5fa86b0  gcc/rust/hir/tree/rust-hir-literal.h
! e4feee22ce999059cfd7e5e796d909ca  gcc/rust/hir/tree/rust-hir-node.h
! c20a4e6cca61f3ba191bcb83bc3687cb  gcc/rust/hir/tree/rust-hir-path.cc
! 1d025ce94f68ea557cfdcee34cc65aed  gcc/rust/hir/tree/rust-hir-path.h
! 735c1df0b6d981463ecd745f651faa92  gcc/rust/hir/tree/rust-hir-pattern-abstract.h
! 7746d8c12521539ffc2c250fa0a52e42  gcc/rust/hir/tree/rust-hir-pattern.h
! 1ef1322c759feb638f789d42a7b80e5e  gcc/rust/hir/tree/rust-hir-simple-path.h
! ea3316e6d1f8e93f5c26a4209a72abe2  gcc/rust/hir/tree/rust-hir-stmt.cc
! 0d12f38c5d12e26421bbbf38c4b01a8a  gcc/rust/hir/tree/rust-hir-stmt.h
! ccd3cbefb5cdb3be3ec334f37df705e3  gcc/rust/hir/tree/rust-hir-trait-bound.h
! 5b7483fecb05ee877294a217b0367b19  gcc/rust/hir/tree/rust-hir-type-abstract.cc
! 85e8ce7c2c93941eb284dff9f96425ac  gcc/rust/hir/tree/rust-hir-type-abstract.h
! 94e4c15a6dd836b656debd8fb5f48ed6  gcc/rust/hir/tree/rust-hir-type-no-bounds.h
! fe7399a4085a4706a055e17069f80d80  gcc/rust/hir/tree/rust-hir-type.cc
! ec54250775efe40c60973c75aa15aa8c  gcc/rust/hir/tree/rust-hir-type.h
! 28694ce0adef371fb0e422776f9e7f99  gcc/rust/hir/tree/rust-hir-visibility.h
! 06acb5efb0cabb2e97bc67d95da8073e  gcc/rust/hir/tree/rust-hir-visitable.h
! 014ac187cd84944fce4caa0e1d257b34  gcc/rust/hir/tree/rust-hir-visitor.cc
! 2f5012f50779b2cc8f0110750a33b31d  gcc/rust/hir/tree/rust-hir-visitor.h
! d07a3a5f5b9d7004ca327b9c691c2427  gcc/rust/hir/tree/rust-hir.cc
! 740a251c7a11b6b3d56b5a01f9912174  gcc/rust/hir/tree/rust-hir.h
! f357dcf5713381e22c7036dfc40716f1  gcc/rust/lang-specs.h
! a592256ae3a29b72f13dc4c89e94ae71  gcc/rust/lang.opt
! a11b51758cadbfbc20e4c2969af1aa85  gcc/rust/lang.opt.urls
! 37d2c9999aa0dbb0df068a1ae29137fa  gcc/rust/lex/rust-input-source.h
! 2933bad78341532f4d24709e21386bba  gcc/rust/lex/rust-lex.cc
! 1c9cc53e48e83ef6e080f7fb2cdeff91  gcc/rust/lex/rust-lex.h
! 4ee64c1e58ba8301a0645a9b04e6ba72  gcc/rust/lex/rust-token.cc
! 3039004b292442e40b2f6827e82f0780  gcc/rust/lex/rust-token.h
  fe40f8618a9f5a5f007bc1a81fe45d3a  gcc/rust/logo.png
! 79301f1ef7130c9ccc227c2e80e6c3bf  gcc/rust/metadata/rust-export-metadata.cc
! 305d124c003086dce48df448a934cc9a  gcc/rust/metadata/rust-export-metadata.h
! 652386fd7967c2be527d9274c7b4c62b  gcc/rust/metadata/rust-extern-crate.cc
! 07e1cf1bd928e3db3458bc6d8ca8a347  gcc/rust/metadata/rust-extern-crate.h
! 3c95bac9fe222be525b70cdb0ef90efb  gcc/rust/metadata/rust-import-archive.cc
! 49cc95ebbf4be31888b54c4de40364fa  gcc/rust/metadata/rust-imports.cc
! 659356fda258855d3d26c1eff1e24215  gcc/rust/metadata/rust-imports.h
! 28dcb6b3b1ae5727b2fc184e9b1b6af1  gcc/rust/parse/rust-cfg-parser.cc
! dcbc600defe89f418c72fb56de980c97  gcc/rust/parse/rust-cfg-parser.h
! 3883e0105a1a6129a0f9c6847420944c  gcc/rust/parse/rust-parse-error.h
! a150e926bd6e3d95e1006ef83ba5bc58  gcc/rust/parse/rust-parse-impl-attribute.hxx
! 5cb1a11e82fe180d5382b22d4ea856f6  gcc/rust/parse/rust-parse-impl-expr.hxx
! 7cd5687bb8dc329dfcb8bfbc99b456e1  gcc/rust/parse/rust-parse-impl-lexer.cc
! 123b237f788df6a919268f90d2188425  gcc/rust/parse/rust-parse-impl-macro.cc
! 9b0425456c50b968cfb7e36b64f0f362  gcc/rust/parse/rust-parse-impl-macro.hxx
! d62839a7e1b61c00aa41b146304cd729  gcc/rust/parse/rust-parse-impl-path.hxx
! 3535076fa8d48befa963fce350256f23  gcc/rust/parse/rust-parse-impl-pattern.hxx
! ebc262f7414d034296b72ab859fdc482  gcc/rust/parse/rust-parse-impl-ttree.hxx
! c29fa936687b478a9889f3380ee0df68  gcc/rust/parse/rust-parse-impl-utils.hxx
! fa441f482ad5676a141d9068c116c062  gcc/rust/parse/rust-parse-impl.hxx
! 8188f5994da36c8911bcd5425a5ff10d  gcc/rust/parse/rust-parse-utils.h
! d60ac257492f0b2d13c8c305707dd04a  gcc/rust/parse/rust-parse.cc
! 14f97ba3d1d98d270b0582ff9b0ae7a2  gcc/rust/parse/rust-parse.h
! 2f3ffa4e5b28a059fadd881c085fd620  gcc/rust/resolve/rust-ast-resolve.h
! 7bbf4878ffef5aca403c3c2d662b02e5  gcc/rust/resolve/rust-default-resolver.cc
! b7996557d00b477e5b56587a0f238cd4  gcc/rust/resolve/rust-default-resolver.h
! 06aec028cd68772b191060aa24938d04  gcc/rust/resolve/rust-early-name-resolver-2.0.cc
! 4249cce4838e2ebca4e6e19bab77ff49  gcc/rust/resolve/rust-early-name-resolver-2.0.h
! 450113423b1a2f2e8fca9abfc24491ac  gcc/rust/resolve/rust-finalize-imports-2.0.cc
! e35421f45738cdcd47be3ec6730e42ef  gcc/rust/resolve/rust-finalize-imports-2.0.h
! 8a259cbd5ed5a4471451f6fedf12e7c8  gcc/rust/resolve/rust-forever-stack.cc
! 668ed1f0f5a0f2f2275cd0571cbe6ff1  gcc/rust/resolve/rust-forever-stack.h
! d87c46e4d5d0f6f97e401bb11d75cc37  gcc/rust/resolve/rust-forever-stack.hxx
! 6d2f86dd0b3642cf5cc02bcfc48e7658  gcc/rust/resolve/rust-ice-finalizer.cc
! ba641854f27f5fd4a0cca8fbf125da14  gcc/rust/resolve/rust-ice-finalizer.h
! 6a154413155737dfad01c2c325c7dd5e  gcc/rust/resolve/rust-identifier-path.cc
! b92ff8c2ae9e9f07117f272930310dc1  gcc/rust/resolve/rust-identifier-path.h
! 590df3e3e06f373943c90c7a8fef8040  gcc/rust/resolve/rust-immutable-name-resolution-context.cc
! f5c7461be946307b11f49c3acf706f34  gcc/rust/resolve/rust-immutable-name-resolution-context.h
! 391e935848bc0b6c251f2848c5af4f58  gcc/rust/resolve/rust-late-name-resolver-2.0.cc
! 196fd10d86327529bddea39566bca9d7  gcc/rust/resolve/rust-late-name-resolver-2.0.h
! da1975191cedf6a70b4fb3d74c13c039  gcc/rust/resolve/rust-name-resolution-context.cc
! 0ddd1d9a0aa167934e17a0370b0a481b  gcc/rust/resolve/rust-name-resolution-context.h
! 955d3210e5486042dd1e300bbb967f35  gcc/rust/resolve/rust-name-resolution.h
! f984bac25dd2373dcd69d8c3a733a829  gcc/rust/resolve/rust-name-resolver.cc
! 31d42405104553d1024b005e4842c8c2  gcc/rust/resolve/rust-name-resolver.h
! 783acc8c1bd927a5890bd0b703c5a1ae  gcc/rust/resolve/rust-resolve-builtins.cc
! 9f7080d5a5a44fbb1d53e8db861f55d6  gcc/rust/resolve/rust-resolve-builtins.h
! f0ecfa8102b52040dd8aa3421fec33bf  gcc/rust/resolve/rust-rib.cc
! 6d6d5eff194daa39d1f0a1ba704ee2e8  gcc/rust/resolve/rust-rib.h
! 7c5fae78fc245c7f3b6a959877c111d0  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
! 50e39339fed312a6fd27ff44603261ef  gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h
! 3f2008592c4958821acded6d659117c0  gcc/rust/rust-attribs.cc
! f1b5a4dd8502cad9b868c27742da2158  gcc/rust/rust-backend.h
! 62c087c1db091a2df864b1a43c5fd9e6  gcc/rust/rust-diagnostics.cc
! dea40ce7b58a49100e39505b88e263f3  gcc/rust/rust-diagnostics.h
! 8d2200eb879c079a79e9f591ca35a0fd  gcc/rust/rust-error-codes.def
! 034dcc2c4a9a5399e81c68e9d81ff1f5  gcc/rust/rust-gcc.cc
! c12b204f1861d78fad8a5d5a25dcdf02  gcc/rust/rust-gcc.h
! 98868ac688f022d1ffa0454e4938afa8  gcc/rust/rust-lang.cc
! 4aea929c2962c713b9ea3fbf167ddd43  gcc/rust/rust-linemap.cc
! a7f99c3f3c88cf0a588f4ef4d69193e7  gcc/rust/rust-linemap.h
! aabb2405ea0a5e6eebbde91d56262af9  gcc/rust/rust-location.h
! 4ed3043615b8b15ebf0a975ae7e7964f  gcc/rust/rust-object-export.cc
! 5ffc502f49b1fc8d440b5aecd8319051  gcc/rust/rust-object-export.h
! 3d8783a48228976ce589efb49237c2f1  gcc/rust/rust-session-manager.cc
! 8f2aefaf40005ca6aa11d5bdc38386c2  gcc/rust/rust-session-manager.h
! 9c4725bebe01459b9a7d4636afdd1d10  gcc/rust/rust-system.h
! 600dca9d737e69cf4546974e563a25ab  gcc/rust/rust-target-def.h
! 9feaaf76d12ee651cd59309787cbd52f  gcc/rust/rust-target.def
! 3f4bb199e04d4f4b918382ee52934a16  gcc/rust/rust-target.h
! 30aa09a6d209964c42b611aec3579544  gcc/rust/rustspec.cc
! 316f2b3a6f984fc9e152a7ae3774018e  gcc/rust/typecheck/rust-autoderef.cc
! 738b0583f504d6af621b4056e7a6cf46  gcc/rust/typecheck/rust-autoderef.h
! 2d3ab1cc99132c30627dc3737d8e9617  gcc/rust/typecheck/rust-casts.cc
! 2fe93d2ac0138bd6dff415c994bbecae  gcc/rust/typecheck/rust-casts.h
! e708bf40880717f48b423b3f44b0b50c  gcc/rust/typecheck/rust-coercion.cc
! b617bf72ee9b08e950bc9e56934c85a0  gcc/rust/typecheck/rust-coercion.h
! a3cb470d289c68f292561181664234a6  gcc/rust/typecheck/rust-hir-dot-operator.cc
! 4f31afb82fbc178266d06c01865240a5  gcc/rust/typecheck/rust-hir-dot-operator.h
! 09005fc89e7dd8eaec69b873d7ae7644  gcc/rust/typecheck/rust-hir-inherent-impl-overlap.h
! 16d217168d8b879a4d8618185810e28d  gcc/rust/typecheck/rust-hir-path-probe.cc
! 6b760eef27171ffd12ad1f648c2b3c12  gcc/rust/typecheck/rust-hir-path-probe.h
! f9d17454f9a3f63a28b2f424a4b54cc0  gcc/rust/typecheck/rust-hir-trait-reference.cc
! 79b925c800d1503093e9a2c69c3637eb  gcc/rust/typecheck/rust-hir-trait-reference.h
! 2e0c72b98aeb86d2eec15f7104ffaa33  gcc/rust/typecheck/rust-hir-trait-resolve.cc
! 6b3c965d8fd17b77ca417b28093ea6e9  gcc/rust/typecheck/rust-hir-trait-resolve.h
! 42513214f5c095b438bb64d1bd3abbce  gcc/rust/typecheck/rust-hir-type-bounds.h
! b747048be4fe6c22589cf2721606db7b  gcc/rust/typecheck/rust-hir-type-check-base.cc
! 0f4ab4291d61b503e020bfb9289414b9  gcc/rust/typecheck/rust-hir-type-check-base.h
! b4f6bbf96b92718fc689ccfa1cc4e564  gcc/rust/typecheck/rust-hir-type-check-enumitem.cc
! f4277ce8c7f84fcad6d767403000509d  gcc/rust/typecheck/rust-hir-type-check-enumitem.h
! 9c5b8831c5a3b1bb314bb71cfda38b86  gcc/rust/typecheck/rust-hir-type-check-expr.cc
! 86eebb1a9fdc10e3b3db716be9495378  gcc/rust/typecheck/rust-hir-type-check-expr.h
! 538448510eee83d3cdd5e11139979114  gcc/rust/typecheck/rust-hir-type-check-implitem.cc
! b5767f59e24736d3d41a91868444e0cc  gcc/rust/typecheck/rust-hir-type-check-implitem.h
! af54f15055dd1447a419f354c43346e3  gcc/rust/typecheck/rust-hir-type-check-item.cc
! e1aa66b1024a0faf4498dfa85056d3b4  gcc/rust/typecheck/rust-hir-type-check-item.h
! b4af5a55d6d7857d9c8c0a97da299ca8  gcc/rust/typecheck/rust-hir-type-check-path.cc
! 026249ec2dea669bdd79dc37f644fc0d  gcc/rust/typecheck/rust-hir-type-check-pattern.cc
! bffd233b66e2222e22ce2d280c8d9f77  gcc/rust/typecheck/rust-hir-type-check-pattern.h
! 7e9f5a81fd8ee84014b141f4e73e1ae2  gcc/rust/typecheck/rust-hir-type-check-stmt.cc
! e51af9ea81d7c3d89682ee2c51ebaf03  gcc/rust/typecheck/rust-hir-type-check-stmt.h
! 1ef7426e8ca96c599e36d794e6ab461c  gcc/rust/typecheck/rust-hir-type-check-struct-field.h
! 6a9823eb94374a0ddaea576a26d1e899  gcc/rust/typecheck/rust-hir-type-check-struct.cc
! ff592ceeba793ca4e87569801f6ff9a2  gcc/rust/typecheck/rust-hir-type-check-type.cc
! 6b42e54540f28a6b6cd0ffce4b704239  gcc/rust/typecheck/rust-hir-type-check-type.h
! 0b4fc79eabb9158e315c3045c8a8bb8e  gcc/rust/typecheck/rust-hir-type-check.cc
! 961b7fe1e412ab3adf5c0d0944b2fd71  gcc/rust/typecheck/rust-hir-type-check.h
! 134cb0bded72dc6de4562859c151a599  gcc/rust/typecheck/rust-substitution-mapper.cc
! 60c4588af4ad75caffaf89afd32d15ec  gcc/rust/typecheck/rust-substitution-mapper.h
! 3710a7ace6b75d7dcd78bf4e3c2223bf  gcc/rust/typecheck/rust-type-util.cc
! aab7e220ef86bcffdc6058162319300b  gcc/rust/typecheck/rust-type-util.h
! 1e48a43b6afcfbe467c649ac2f0a3624  gcc/rust/typecheck/rust-typecheck-context.cc
! 6776739078e81af1138b656938baf87f  gcc/rust/typecheck/rust-tyty-bounds.cc
! b605c99b67db44ca465e912ba50bd365  gcc/rust/typecheck/rust-tyty-call.cc
! b22bf0c3a5ffe96637f444175ee29bf7  gcc/rust/typecheck/rust-tyty-call.h
  a38838838003c6551067e8b34f582208  gcc/rust/typecheck/rust-tyty-region.h
! 5a37c2ea7b3b5d3cb6f68c0dcf5a02b4  gcc/rust/typecheck/rust-tyty-subst.cc
! bdc8e07793071547a189f536cd2df063  gcc/rust/typecheck/rust-tyty-subst.h
! 7aa4e70b6d2bdeed13bff6274143e305  gcc/rust/typecheck/rust-tyty-util.cc
! 6bb134414950f951dd57b91746458ca5  gcc/rust/typecheck/rust-tyty-util.h
! fcb02130c7b685b134f835bf25092f50  gcc/rust/typecheck/rust-tyty-variance-analysis-private.h
! c2f1571113d7181e240b84cfea3bdab5  gcc/rust/typecheck/rust-tyty-variance-analysis.cc
! d745c17e84fc1621534e477f38dac840  gcc/rust/typecheck/rust-tyty-variance-analysis.h
! ec0d5651a6bc455064668a10e90fd80d  gcc/rust/typecheck/rust-tyty-visitor.h
! faa8dbaa0da343990a1d17ccda0cc030  gcc/rust/typecheck/rust-tyty.cc
! 96b6883f3d84306d7899a211ae0b100a  gcc/rust/typecheck/rust-tyty.h
! aacae8d8512a124e932526c2a1030503  gcc/rust/typecheck/rust-unify.cc
! b9ed06a06760418d2aa26129aee56348  gcc/rust/typecheck/rust-unify.h
! b0eb9e41992d92a94e7be714ee66f9bc  gcc/rust/util/bi-map.h
  2293b9580441efb8471b45881435c279  gcc/rust/util/expected.h
! 4fb5305128f36e5973da957b3d8818e9  gcc/rust/util/fnv-hash.h
! eb1bfe030c9849086601bd0822a7e35a  gcc/rust/util/make-rust-unicode.py
! 5fab4ccaa5f132cbe9ca8f09047732ad  gcc/rust/util/optional.h
  28960566056dffb6dd86b0c3ad60bf39  gcc/rust/util/rust-abi.cc
! a85e112c6426c604dd9a3a9af712e53b  gcc/rust/util/rust-abi.h
! 69981f8af65b8480fe8cdf7d00210c90  gcc/rust/util/rust-attribute-values.h
! 3f35866ad508b754c390827dc84f06eb  gcc/rust/util/rust-attributes.cc
! 1b2fe1c713b7e2f9161f5be177c89309  gcc/rust/util/rust-attributes.h
! f7a4957c1c7c3fc0e851a38ef997ce72  gcc/rust/util/rust-base62.cc
! a674c0d71a00cc704ca2d16c25f4ba3e  gcc/rust/util/rust-base62.h
! 89c5d7d5d733b3877924ef2754c681a2  gcc/rust/util/rust-buffered-queue.h
! 6ec9871082c2d8513da233d9b00fd897  gcc/rust/util/rust-canonical-path.h
! 0f7f180b9ace5f673dd6184e83872288  gcc/rust/util/rust-cloneable.h
! 4b1fe5b8a8e21b47b27a69591e564ce7  gcc/rust/util/rust-codepoint.h
! c7e66671b8dd3bbdb56a45f28309335c  gcc/rust/util/rust-common.h
! 5228dcea6db6f53a46c5b2d18530de14  gcc/rust/util/rust-dir-owner.cc
! d87ca49f50adda86e874b992b90d3a0e  gcc/rust/util/rust-dir-owner.h
! 91081b0e58d8416a09cb20a953d24502  gcc/rust/util/rust-dump.h
! 3091bc4bdc782d306507e35a2043616b  gcc/rust/util/rust-edition.cc
! 88f7642dab3e02fac387a93aad82300a  gcc/rust/util/rust-edition.h
! 6bad0adc3974de844f3be9f38aeccec7  gcc/rust/util/rust-ggc.cc
! 073d902536493807ef695baf24a28444  gcc/rust/util/rust-ggc.h
! cf9962322e0d7824a034c0785ae912f3  gcc/rust/util/rust-hir-map.cc
! 78dff645c18e1bc860ccf4a7aeceb9e3  gcc/rust/util/rust-hir-map.h
! 2bf44e898c6773e49f63aa99ea22f2aa  gcc/rust/util/rust-identifier.h
! 9da3d0bbd1f3b83f29287582aaadf7fd  gcc/rust/util/rust-inline-visitor.h
! d16c47cc0e7ce29335f7f3b25415e39f  gcc/rust/util/rust-intrinsic-values.h
! fcb0ef58bd45344a4c08af0945cd41b9  gcc/rust/util/rust-keyword-values.cc
! 3c394a316c15589123f05ad6573d7e91  gcc/rust/util/rust-keyword-values.h
! c5af83b641a50076b4401975693d372c  gcc/rust/util/rust-lang-item.cc
! ec75dd1e40597f588a75c24eddc9c9a9  gcc/rust/util/rust-lang-item.h
! 8ce3ff7da4a1241c73c997a055b4b790  gcc/rust/util/rust-mapping-common.h
! 25026158bc1a032172cd56fdc7d1a314  gcc/rust/util/rust-operators.h
! bdaeeceba08beadb8340194c926569d7  gcc/rust/util/rust-punycode.cc
! d59690699c62a65e6a472b35516f40d9  gcc/rust/util/rust-punycode.h
! a286bb88ccb770f18df0020c59b4f06d  gcc/rust/util/rust-stacked-contexts.h
! 96641cff81e21dad24b3df4b87716159  gcc/rust/util/rust-token-converter.cc
! 44fad7e6f643cffd77b625c32c20515c  gcc/rust/util/rust-token-converter.h
! 5acb410f6ef2157b8243f5289eda2813  gcc/rust/util/rust-unicode-data.h
! dc28a64b4aa1349136710af5da9a42cf  gcc/rust/util/rust-unicode.cc
! b7528cd0f3ef048febfc080eef4f41bb  gcc/rust/util/rust-unicode.h
! a299759cc6ba50b5899a39ca2e05e4a1  gcc/rust/util/rust-unwrap-segment.cc
! 5c807d7e7e80e2200bfd0e42f587912f  gcc/rust/util/rust-unwrap-segment.h
! f0f4d8d16db9fe5a40a81d75c7b1bad4  gcc/sancov.cc
! f13ef6f909911f94ad3ea11360068fa1  gcc/sanitizer.def
! b190f6bdcb063b5fca4e844b14150d0c  gcc/sanopt.cc
! be3678be2cea5e1beb181ef986ed3e3e  gcc/sarif-replay.cc
  a92419791c8e8d842c6ef029d4537463  gcc/sarif-spec-urls.def
! 18b1ba21aac735e8b4fac6babbf3724f  gcc/sbitmap.cc
! 8956392cfb34e0cb12dad1fc890f7d08  gcc/sbitmap.h
! 026a6787a4094ddd57955fc5a617b1b4  gcc/sched-deps.cc
! 7f3c871d86d0577c88b4dbf4cb7bfde6  gcc/sched-ebb.cc
! da5c82758bbb99130aa6287f7a6c1342  gcc/sched-int.h
! 017ab43b4cc0ef03de29f6129f0423e0  gcc/sched-rgn.cc
! 9e378364d914a59876b4a6de4497fd39  gcc/sel-sched-dump.cc
! 3b84f3b6b449c883935ef347892e770c  gcc/sel-sched-dump.h
! ce78ce26a3c148575eb45a6e3b88fb3b  gcc/sel-sched-ir.cc
! 291a3a1dd9369c3712c90457c320acad  gcc/sel-sched-ir.h
! f04046c3702a78faced8e75c7064288f  gcc/sel-sched.cc
! c8e14bcadd8fd37034a186ff2eed497c  gcc/sel-sched.h
! 75125554eb32a562c567b40b674dceab  gcc/selftest-json.cc
! 27bb8dee2b95b3a7efa33a896dd831e4  gcc/selftest-json.h
! 4c61458b7e1d9b809f9468ffe539da78  gcc/selftest-rtl.cc
! 3f2e71aeb7cd3d6e8b7a92917cf5330c  gcc/selftest-rtl.h
! 8166aa40b5d7f4f6fafe135322f69070  gcc/selftest-run-tests.cc
! 872212bd817771adf8598f629fe27051  gcc/selftest-tree.h
! fdb979dbe9a110ffa6e78f1d2a5bc11e  gcc/selftest-xml.h
! 1461067dc9aa772e491ec40e7b0b5d48  gcc/selftest.cc
! 40e0fb417bd8b1ffbe434bc0b460d44f  gcc/selftest.h
! 1c334344ba785f0a69ca21056f1f847a  gcc/sese.cc
! f7a30cc2e8344fa489739267da2d868b  gcc/sese.h
! ef4c4caa3f358b8d15a4b7063b9770e8  gcc/shortest-paths.h
! c5e97158cfb2af3204a5d8562aefaf85  gcc/shrink-wrap.cc
! 4c1386d4baf5f8c0978b1ca3b17d79e1  gcc/shrink-wrap.h
! 3f3d94e6f52cc07f64e195e1a75dc485  gcc/signop.h
! b4c90fe064bba484ce5c18adb1a9e544  gcc/simple-diagnostic-path.cc
! 7affe31db6f7cb9c7fc77937feef0758  gcc/simple-diagnostic-path.h
! 1454a72474707f3f7056d0b36bc370c3  gcc/simplify-rtx.cc
! d1aec926a9488869692e8fe2f61ca75f  gcc/sort.cc
! 7daa38cb1d09a2f88958f00a965d40a1  gcc/sparseset.cc
! 3883b6ff1845dcec7b2822124018ab05  gcc/sparseset.h
! f6ea836b96305da3227132e4f3e5cec8  gcc/spellcheck-tree.cc
! b4613da3bc9da7d2d84454d55d2161b5  gcc/spellcheck-tree.h
! b0e8fc9d640fb3c8cfdc6fea4711a410  gcc/spellcheck.cc
! 7291c57c94e54746e4cac5d66ebc1f39  gcc/spellcheck.h
! dba4fe2f9746e20d7e3dc962566fde20  gcc/splay-tree-utils.cc
! 5d8476ed18471420cd2608c85775ffc0  gcc/splay-tree-utils.h
! 7bba1b8d53b474220adabfc9229be73f  gcc/splay-tree-utils.tcc
! 05b4c700730898a0e6790041a858fed6  gcc/sreal.cc
! abe561302c75a109ce08cbd323584729  gcc/sreal.h
! 2f0c0fc8fdde1ef11f4ea6239681c092  gcc/ssa-iterators.h
! 00ff2e898f01bd636cd908ea978b9a66  gcc/ssa.h
! 230879235935baa33d6a5cfc7df6f697  gcc/stack-ptr-mod.cc
! d5fd8b7b90aa51d995dc6cfdadd21279  gcc/statistics.cc
! d0c8ce33234bafe2dbc74e49092117d8  gcc/statistics.h
! bae414ca6b1d11488ac29960c5ec8422  gcc/stmt.cc
! bb220250a8f31c99168b5db3e1adb3a7  gcc/stmt.h
! 46ca4a8aaee638f2c6d6ba86ff439cb8  gcc/stor-layout.cc
! 48b181fd932367bfce9913bb8162cfd6  gcc/stor-layout.h
! fc736757784bcbda641e40391430fdff  gcc/store-motion.cc
! 5265b9b7386dd99944d80d34f6a1f143  gcc/streamer-hooks.cc
! 0ad0dd047bfea81859e6033818540690  gcc/streamer-hooks.h
! 2fbdaf6bb8705ecf4ec8240759690a85  gcc/stringpool.cc
! cfd45119ce5a4e4285deb2d4e2ad42bf  gcc/stringpool.h
! abe8f31bec859310f8609d28b8c28a68  gcc/substring-locations.cc
! e2888e2a91c1c5acafe55001871be3b8  gcc/substring-locations.h
! 0727df4dc3352a78975951029b3fa0b1  gcc/sym-exec/sym-exec-condition.cc
! 076205745c9ec01951d34e7c602bb474  gcc/sym-exec/sym-exec-condition.h
! c51c771a39da1854a99ec086014a1601  gcc/sym-exec/sym-exec-expr-is-a-helper.h
! f6ab583423ac1f325349d4b29d458142  gcc/sym-exec/sym-exec-expression.cc
! adbe702ebed4c3f1e192d85e2ad25c9c  gcc/sym-exec/sym-exec-expression.h
! eff575b7caab0563e47a1f26ca4036bf  gcc/sym-exec/sym-exec-state.cc
! 65571f6121b82a9816b12c1663395f19  gcc/sym-exec/sym-exec-state.h
! 577199e2dbe2231ebdedd774c031d82a  gcc/symbol-summary.h
! 832499f2c95eca533d9d0ecbacf5bebd  gcc/symtab-clones.cc
! 9c644ae81295f2ecf22a4f54c7144e34  gcc/symtab-clones.h
! e1899978827cfd0d1570e61a7c30d94a  gcc/symtab-thunks.cc
! 9f6e7e9cd1feccb68765288812751504  gcc/symtab-thunks.h
! 2c2ee71cfd64c2e66f7b793fd04713e4  gcc/symtab.cc
! aa4c1d56c6974e4059ea89c2e315974f  gcc/sync-builtins.def
! f3ad4ab6a47ec1756160d39374ae0576  gcc/system.h
! 53f5e973b2158c80ba4a144b03350c73  gcc/target-def.h
! d294651bcc46af1abb89e48cd851fd40  gcc/target-globals.cc
! fe7cc01d7dd25103bc61ab1a33dd54dc  gcc/target-globals.h
! 8d0dbf3229219f76ac06bdd053725387  gcc/target-hooks-macros.h
! f24751f278bee1ac8dc861467d9f96a3  gcc/target-insns.def
! 70f546840ce6a6b4bf629a269d3aa8bb  gcc/target.def
! 9ca827d4a70bd09cb862e2583cb8500a  gcc/target.h
! bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
! b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 6b11401b2f3a8d60be8e17fedb040609  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** befd8924364e1b5fef37bb8113265b1a  gcc/te
*** 8527,11143 ****
  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
! bb4e4f9d3c0e72730e0bf397d375689c  gcc/testsuite/ada/acats/norun.lst
! 17a66c0b337fb03b6f449227ed33297c  gcc/testsuite/ada/acats/overflow.lst
! 1485f263dfb9303b015015ae88161a8b  gcc/testsuite/ada/acats/run_acats.sh
! 71bb2dcd4df7ad579edf271669be44d6  gcc/testsuite/ada/acats/run_all.sh
! 6467abb463602aeb04583b3822f653f4  gcc/testsuite/ada/acats/run_test.exp
! 5723a26fced8721c3e90e6e7a9ba2a23  gcc/testsuite/ada/acats/stackcheck.lst
! feaec71549d40900aa5bcbd842c9fa57  gcc/testsuite/ada/acats/support/acats26.lst
! 2f262cdb98b38922d7b7f84414f43b84  gcc/testsuite/ada/acats/support/checkfil.ada
! 4edf20410814582eae331707f2ae2c77  gcc/testsuite/ada/acats/support/enumchek.ada
! 8f3ec4fe93c0095e34d79e9a41dde4e9  gcc/testsuite/ada/acats/support/f340a000.a
! b673a17611516bde0712458de61636e8  gcc/testsuite/ada/acats/support/f340a001.a
! b31158ceea90e5246f63aed8b0078e9c  gcc/testsuite/ada/acats/support/f341a00.a
! d3d954612d4f455a32df07aa05816320  gcc/testsuite/ada/acats/support/f390a00.a
! ed3b5aee8f81d147785adce6b48411cd  gcc/testsuite/ada/acats/support/f392a00.a
! 7973b64953275c03e790967bc310010c  gcc/testsuite/ada/acats/support/f392c00.a
! 7b5b9e45fb9003af0e096ca36327031e  gcc/testsuite/ada/acats/support/f392d00.a
! e4733abdf62c401a876d29c3e5a38c34  gcc/testsuite/ada/acats/support/f393a00.a
! c1487dd34771abf18d1144c610fac26e  gcc/testsuite/ada/acats/support/f393b00.a
! b3e35321e808d9e061d1fdef51813016  gcc/testsuite/ada/acats/support/f3a2a00.a
! 798afd3c6228223e07e7c8e3034eb99c  gcc/testsuite/ada/acats/support/f460a00.a
! 316c7cde49ee557a67d39d6b63407811  gcc/testsuite/ada/acats/support/f730a000.a
! 60edd601c25022d0f19b8c45d3d187bb  gcc/testsuite/ada/acats/support/f730a001.a
! 75b2405f0dd739649bda9b92b0d259f4  gcc/testsuite/ada/acats/support/f731a00.a
! 689c49d9ccb5124d47eecb1dcebcc376  gcc/testsuite/ada/acats/support/f940a00.a
! d08e91b98a54c3d471108a6631714033  gcc/testsuite/ada/acats/support/f954a00.a
! f95be63eadf08e7cafbeb33a6794c019  gcc/testsuite/ada/acats/support/fa11a00.a
! 28be0e2126b177ff6d34df7c272a9f2c  gcc/testsuite/ada/acats/support/fa11b00.a
! 2228808bf25eecbd9e02ff343e2dba54  gcc/testsuite/ada/acats/support/fa11c00.a
! 1cb03e4473720d064b6798cf5e185f62  gcc/testsuite/ada/acats/support/fa11d00.a
! ff082a3957be5f526713103bf563e5be  gcc/testsuite/ada/acats/support/fa13a00.a
! dfa6bb61642b6c22f17171fb93cfc97c  gcc/testsuite/ada/acats/support/fa13b00.a
! 54b899e09f3f0bf28db2e007ca6921e5  gcc/testsuite/ada/acats/support/fa21a00.a
! 97d3fd68d030a5d89e98b950d557151d  gcc/testsuite/ada/acats/support/fb20a00.a
! 886f3ad8c51e9e1e01cb7d4ab0b3f47e  gcc/testsuite/ada/acats/support/fb40a00.a
! 045b4b77241122260c9b42a0a85941b8  gcc/testsuite/ada/acats/support/fc50a00.a
! d2c427a2c2e845d2d5991d7e86689284  gcc/testsuite/ada/acats/support/fc51a00.a
! 18eee0e1727cb58b8ca0da52a8f7fbd0  gcc/testsuite/ada/acats/support/fc51b00.a
! 707c153d9868ec6e694e8db161e9a7c7  gcc/testsuite/ada/acats/support/fc51c00.a
! 981a728516c5de4f242cff81d35a1806  gcc/testsuite/ada/acats/support/fc51d00.a
! 992e25818babbd2519c54f2dc5987601  gcc/testsuite/ada/acats/support/fc54a00.a
! f75e17c909e83e1879e87a3ba3ffd7cc  gcc/testsuite/ada/acats/support/fc70a00.a
! cdb7ee32751757a29e821ba020228a0e  gcc/testsuite/ada/acats/support/fc70b00.a
! 8af79a6be55981313da73bc0bb01f617  gcc/testsuite/ada/acats/support/fc70c00.a
! 65011f4705018476715af62324c335b3  gcc/testsuite/ada/acats/support/fcndecl.ada
! 3ce3384936274aa48a8c4a38fa7109ac  gcc/testsuite/ada/acats/support/fd72a00.a
! 5c9a93b4c9f45c15707e4b3b123aee9c  gcc/testsuite/ada/acats/support/fdb0a00.a
! bf9c7650a6f8303b6a69ff5eb2660b15  gcc/testsuite/ada/acats/support/fdd2a00.a
! a77ebc244676daacb1f3a61ae8003e88  gcc/testsuite/ada/acats/support/fxa5a00.a
! f4e9649e424fa9578180b9aee65c8e96  gcc/testsuite/ada/acats/support/fxaca00.a
! caa75442e4dceed0740dfa35a47b5bb6  gcc/testsuite/ada/acats/support/fxacb00.a
! 1855abc6c615b76aa82fb9241571f3d8  gcc/testsuite/ada/acats/support/fxacc00.a
! f88af2b3eb53ad7c8700efbd0f878915  gcc/testsuite/ada/acats/support/fxc6a00.a
! 56ba35dd56ea544c0eb9146769871492  gcc/testsuite/ada/acats/support/fxe2a00.a
! 67770e9161b0f48f3fc9392bd3460272  gcc/testsuite/ada/acats/support/fxf2a00.a
! 6628969f51dd10c56235f9d7420e2d44  gcc/testsuite/ada/acats/support/fxf3a00.a
! 6a9b6ce90538e9126e7e5badc62ddca2  gcc/testsuite/ada/acats/support/impbit.adb
! 1ccb5211fbcff1d5604e6ccee6542df7  gcc/testsuite/ada/acats/support/impdef.a
! 4f2f9bfdfcfd8c5ecaf503416d1cfc5f  gcc/testsuite/ada/acats/support/impdefd.a
! edf70d423a69adebd38e9b29f35a2ba1  gcc/testsuite/ada/acats/support/impdefe.a
! cadfd8a5487a315a6fbd8eef397219e9  gcc/testsuite/ada/acats/support/impdefg.a
! 5d9a0f98d9f15211e0773263febb974b  gcc/testsuite/ada/acats/support/impdefh.a
! f2604ccc5244696793b33e7b83c57c45  gcc/testsuite/ada/acats/support/lencheck.ada
! 79c0994222b2a5fc702eb4bc3dc1ba8e  gcc/testsuite/ada/acats/support/macro.dfs
! 72980ae1a3bbd5b71aa915cefeaebf6e  gcc/testsuite/ada/acats/support/macrodef.adb
! 4d7b79a3ff077d1ab05a78ebcf5a1de3  gcc/testsuite/ada/acats/support/macrosub.ada
! 29539981686659a32e9b3a46eafe0a56  gcc/testsuite/ada/acats/support/repbody.ada
! ec6c02ebb16da7cc117e3a65c06d385a  gcc/testsuite/ada/acats/support/repspec.ada
! 356cf4b2e0cc1e02ef1deddb5567de36  gcc/testsuite/ada/acats/support/spprt13s.tst
! e250c306fa98a053bdf37159af289d57  gcc/testsuite/ada/acats/support/tctouch.ada
! 26945b868319fda8b82f82c677a35562  gcc/testsuite/ada/acats/support/tsttests.dat
! 91c39a37d5651ca4a1e6aa82cd2f1269  gcc/testsuite/ada/acats/support/widechr.a
! dc179b8a7c506c961b229b7ec7d2de53  gcc/testsuite/ada/acats/tests/a/a22006b.ada
! f61ae49f8066de3ba349e39d3a688ea6  gcc/testsuite/ada/acats/tests/a/a22006c.ada
! 54e5a501bbefb19fdf7715f5741fc858  gcc/testsuite/ada/acats/tests/a/a22006d.ada
! 11394a122edd516a587d020bc9ce2e8e  gcc/testsuite/ada/acats/tests/a/a26007a.tst
! aa57a75b85b36a99f6ecaca91a9eed60  gcc/testsuite/ada/acats/tests/a/a27003a.ada
! 054ca4c1bbb5dd701e8781bc92bf9cb8  gcc/testsuite/ada/acats/tests/a/a29003a.ada
! c330e5a362289a57c2ca975a61b4d20c  gcc/testsuite/ada/acats/tests/a/a2a031a.ada
! bbd0059e56828aa342048400c5490233  gcc/testsuite/ada/acats/tests/a/a33003a.ada
! 84de33e1cd2c3a0c2165591a28407805  gcc/testsuite/ada/acats/tests/a/a34017c.ada
! 924373fa4803a6e22fdc43bd0bee31a3  gcc/testsuite/ada/acats/tests/a/a35101b.ada
! be270ea90b999a2136e6cc850543a945  gcc/testsuite/ada/acats/tests/a/a35402a.ada
! 8054f52aa40d34c334d3a4b30222340a  gcc/testsuite/ada/acats/tests/a/a35801f.ada
! 325ee8ec767c6769757ac1eb71d6f515  gcc/testsuite/ada/acats/tests/a/a35902c.ada
! c512e91af19d8cf3307b189ec712dde0  gcc/testsuite/ada/acats/tests/a/a38106d.ada
! 8d608afb4ab9b953fd4dd01b00a90914  gcc/testsuite/ada/acats/tests/a/a38106e.ada
! 28bab0e5eb84a43ad0b4dc06d90f880b  gcc/testsuite/ada/acats/tests/a/a49027a.ada
! 5b6e07973ea9075de594e462d6f0f847  gcc/testsuite/ada/acats/tests/a/a49027b.ada
! 926d6ade013a1456d53a17063495aaf2  gcc/testsuite/ada/acats/tests/a/a49027c.ada
! df2270ff569c843d152cae1fc3606103  gcc/testsuite/ada/acats/tests/a/a54b01a.ada
! 71937fafcd3199a3eda330e7880c1ec5  gcc/testsuite/ada/acats/tests/a/a54b02a.ada
! 1aa0f31635199e1096468f23888a66f4  gcc/testsuite/ada/acats/tests/a/a55b12a.ada
! b0fc7cf66a832e68c808ed89a23340d1  gcc/testsuite/ada/acats/tests/a/a55b13a.ada
! 205552e2dafa2b699b6514e12a35e676  gcc/testsuite/ada/acats/tests/a/a55b14a.ada
! 7a5be75ac2dc323c1dd1e9328c39c6e0  gcc/testsuite/ada/acats/tests/a/a71004a.ada
! 69bd6dadfe4d61041f1998157bcbdb4a  gcc/testsuite/ada/acats/tests/a/a73001i.ada
! 8b949ce02d53bc2b35893d05656ff3c2  gcc/testsuite/ada/acats/tests/a/a73001j.ada
! 3859ef22068457dc5db7b84889f89c07  gcc/testsuite/ada/acats/tests/a/a74105b.ada
! 5200e86147d7eddb31de36b182066003  gcc/testsuite/ada/acats/tests/a/a74106a.ada
! d288f454e96b3840804c86245fd1309c  gcc/testsuite/ada/acats/tests/a/a74106b.ada
! c6c2ff5c654f5fecb72565c1ec890ea8  gcc/testsuite/ada/acats/tests/a/a74106c.ada
! 4526ae74da58946736d1077ca17b0f15  gcc/testsuite/ada/acats/tests/a/a74205e.ada
! a4600113362b659154e0921e8ccc440b  gcc/testsuite/ada/acats/tests/a/a74205f.ada
! 762682eaddf9e0d72ef370ddf52c091c  gcc/testsuite/ada/acats/tests/a/a83009a.ada
! 89be8e66cfa8cf7d9ea962fc92c5bbe6  gcc/testsuite/ada/acats/tests/a/a83009b.ada
! 1a86aa84a5b4a8f2d91898a2a5878109  gcc/testsuite/ada/acats/tests/a/a83a02a.ada
! b50d55495ed25cd5f5f0cc5ce62c33c6  gcc/testsuite/ada/acats/tests/a/a83a02b.ada
! 92d9af0f50f62b8ca3df28d8e4228ec5  gcc/testsuite/ada/acats/tests/a/a83a06a.ada
! 5c0b43d5d9e1251dce20fd8ac69811a8  gcc/testsuite/ada/acats/tests/a/a83a08a.ada
! d847c2fa25d9becc828716d2f6b3924e  gcc/testsuite/ada/acats/tests/a/a83c01c.ada
! 48efd44cb0cc48a4666ca9078d516a19  gcc/testsuite/ada/acats/tests/a/a83c01h.ada
! 9a14ce84b1e63358e8ea5b22b8b58366  gcc/testsuite/ada/acats/tests/a/a83c01i.ada
! d4b236b43806323a12df387d43065ecd  gcc/testsuite/ada/acats/tests/a/a85007d.ada
! 22b51a96b02c7a88f7ef1383e4b6e3ba  gcc/testsuite/ada/acats/tests/a/a85013b.ada
! 401bca9a32ad0d8881ea660bba3ca711  gcc/testsuite/ada/acats/tests/a/a87b59a.ada
! 74d0779474d9d789d09508ba653efc61  gcc/testsuite/ada/acats/tests/a/a95001c.ada
! 4de434af68116383b58aae2d7ff0186e  gcc/testsuite/ada/acats/tests/a/a95074d.ada
! 6dcac89d281ffc1c47dc51dfd7429d9e  gcc/testsuite/ada/acats/tests/a/a97106a.ada
! 672a004e783873caffaddfe2e9ed7184  gcc/testsuite/ada/acats/tests/a/a99006a.ada
! d338cf80520cfcd59896b08557f7334a  gcc/testsuite/ada/acats/tests/a/aa2010a.ada
! c8652c11c39145beb7535ff59feee79b  gcc/testsuite/ada/acats/tests/a/aa2012a.ada
! 64d7f9e70085b7412df08b06b70924f1  gcc/testsuite/ada/acats/tests/a/ac1015b.ada
! f8019419f138b9b0b4e860f560539c52  gcc/testsuite/ada/acats/tests/a/ac3106a.ada
! 599863dbc7677bd83fe020c38e11b4b8  gcc/testsuite/ada/acats/tests/a/ac3206a.ada
! 527cf1506ce6e0451f82e833aba4b6b3  gcc/testsuite/ada/acats/tests/a/ac3207a.ada
! 7c28607179138101a5d7cf088f333028  gcc/testsuite/ada/acats/tests/a/ad7001b.ada
! 810035c64fe589563087a2d2f380f1e4  gcc/testsuite/ada/acats/tests/a/ad7001c0.ada
! 8d92b2b79dbfd08d90c9a238b1e35a05  gcc/testsuite/ada/acats/tests/a/ad7001c1.ada
! 1c1c6e5fb42029a3ff9b1f3b9055c191  gcc/testsuite/ada/acats/tests/a/ad7001d0.ada
! 21257b0cc94669e31a8891cb9ed30e14  gcc/testsuite/ada/acats/tests/a/ad7001d1.ada
! eaa4c7b6b00bcd4bfa2d9883aff64ee8  gcc/testsuite/ada/acats/tests/a/ad7006a.ada
! b93c425e39dd1e4003cb33131862e719  gcc/testsuite/ada/acats/tests/a/ad7101a.ada
! 07e115c2bd0ac4bc085809d9ad65327f  gcc/testsuite/ada/acats/tests/a/ad7101c.ada
! 24888691f9cd0131679078391bf99fb1  gcc/testsuite/ada/acats/tests/a/ad7102a.ada
! 27abfa60261b508014d366ae82e296fe  gcc/testsuite/ada/acats/tests/a/ad7103a.ada
! aec3e74553448f599ae9a51ec65c42ce  gcc/testsuite/ada/acats/tests/a/ad7103c.ada
! d18cab7f102ffc27545ccb4522f82ded  gcc/testsuite/ada/acats/tests/a/ad7104a.ada
! 1b797aacfde0d671d89a45db2a9d5be2  gcc/testsuite/ada/acats/tests/a/ad7201a.ada
! 8c49706fbc8916aacd037e7649ed8213  gcc/testsuite/ada/acats/tests/a/ad7203b.ada
! 129af6b1b47884872132fcfc3787f362  gcc/testsuite/ada/acats/tests/a/ad7205b.ada
! 696b85c4c78cdc9b5448612a22b9ffa3  gcc/testsuite/ada/acats/tests/a/ad8011a.tst
! bfa3fa83b466b71da4126d005e2c701b  gcc/testsuite/ada/acats/tests/a/ada101a.ada
! 178bb6ff2316e9cfb5bd4395e74874ae  gcc/testsuite/ada/acats/tests/a/ae2113a.ada
! 1dd247cf1f02e4384b1f1a58ab2244c0  gcc/testsuite/ada/acats/tests/a/ae2113b.ada
! 5ff7c493a66eb8be0a3e7f89bd4d2512  gcc/testsuite/ada/acats/tests/a/ae3002g.ada
! 2cc8c13fd1203af7f246cee23d3037c3  gcc/testsuite/ada/acats/tests/a/ae3101a.ada
! 3798d627b7336c5fa8805e970e10ec7e  gcc/testsuite/ada/acats/tests/a/ae3702a.ada
! 7a44891c6ee0ec272ded72e61d392bc8  gcc/testsuite/ada/acats/tests/a/ae3709a.ada
! 8a42b2199ecbb25390c8c306c3759312  gcc/testsuite/ada/acats/tests/c2/c23001a.ada
! 8d4b3f4069aeb0e32db3f46e5cb1487b  gcc/testsuite/ada/acats/tests/c2/c23003a.tst
! 95e1beb36e033514e6e4be866042a42a  gcc/testsuite/ada/acats/tests/c2/c23003b.tst
! a765ec985184f6802389b89d0971eede  gcc/testsuite/ada/acats/tests/c2/c23003g.tst
! 53bdd26032ff323b57f3c309b520767e  gcc/testsuite/ada/acats/tests/c2/c23003i.tst
! d8470ff80210b6aeab8ecf5828f8e73c  gcc/testsuite/ada/acats/tests/c2/c23006a.ada
! c175938807f9ed5ec36eed8c2fc47bf2  gcc/testsuite/ada/acats/tests/c2/c23006b.ada
! 1891f1d94ad6f27dc8691abae763b735  gcc/testsuite/ada/acats/tests/c2/c23006c.ada
! 4d2aaab0f8577c4441dfb223b74e9270  gcc/testsuite/ada/acats/tests/c2/c23006d.ada
! d38fc16a6b2a221a8089094d8e595fd0  gcc/testsuite/ada/acats/tests/c2/c23006e.ada
! e4cb34f327ded980acbb2890f276b1b6  gcc/testsuite/ada/acats/tests/c2/c23006f.ada
! 1afe1ff732d7c93eb72aeb763fc3a3e4  gcc/testsuite/ada/acats/tests/c2/c23006g.ada
! d7a2fe8807a7e954f894e43619906c61  gcc/testsuite/ada/acats/tests/c2/c24002d.ada
! 90b7096d0092e8bee54a5e0931480cc3  gcc/testsuite/ada/acats/tests/c2/c24003a.ada
! 8d4b3197420dea97b47fa445d6b7f13e  gcc/testsuite/ada/acats/tests/c2/c24003b.ada
! c0bc49ad0d9faebe7c1bddd17682575b  gcc/testsuite/ada/acats/tests/c2/c24003c.ada
! 474d9480579f044d63ea2312eee797a0  gcc/testsuite/ada/acats/tests/c2/c24106a.ada
! 21abd0c844a441282df97eca59d187ac  gcc/testsuite/ada/acats/tests/c2/c24202d.ada
! f8734f0cb78893a591c1455798f48f34  gcc/testsuite/ada/acats/tests/c2/c24203a.ada
! 303fe85abf30e67b9c26c05c37527377  gcc/testsuite/ada/acats/tests/c2/c24203b.ada
! 4fc421f9d26dd38caa8e66e5f9a8118d  gcc/testsuite/ada/acats/tests/c2/c24207a.ada
! 00805111547e7b0f767a65dbb0216178  gcc/testsuite/ada/acats/tests/c2/c24211a.ada
! 9344f5c2db357b3b873a83422c449d0b  gcc/testsuite/ada/acats/tests/c2/c250001.aw
! fc57da7b290e833c22ee1e312ebea0af  gcc/testsuite/ada/acats/tests/c2/c250002.aw
! fcffacb0c5a7d6bc171b2b62228ef27c  gcc/testsuite/ada/acats/tests/c2/c25001a.ada
! f8101111006b8dfccb57bc9286761546  gcc/testsuite/ada/acats/tests/c2/c25001b.ada
! 4d59f28ccd2a2792f59d358acfb3b645  gcc/testsuite/ada/acats/tests/c2/c26006a.ada
! 2a3847aff34c962069ea9fc46184b49c  gcc/testsuite/ada/acats/tests/c2/c26008a.ada
! 3b3d12a94cdb249ade26bb6fe45121be  gcc/testsuite/ada/acats/tests/c2/c2a001a.ada
! 3fd11c60327272b0e88714377e07694a  gcc/testsuite/ada/acats/tests/c2/c2a001b.ada
! fad7c83b08db79e3d8d41a3abc495609  gcc/testsuite/ada/acats/tests/c2/c2a001c.ada
! 9e58903d92e80dece18b3f5f07c10714  gcc/testsuite/ada/acats/tests/c2/c2a002a.ada
! 80f047f9baf4edce16ae00b242937e09  gcc/testsuite/ada/acats/tests/c2/c2a008a.ada
! 5846b01316c8e35b2ae9271e2ceeb33b  gcc/testsuite/ada/acats/tests/c2/c2a021b.ada
! 6c6e6ac7e7d8151372bf25d5bfcc4638  gcc/testsuite/ada/acats/tests/c3/c32001a.ada
! f44d3e1d8c4deff3e60e49eb14755c7f  gcc/testsuite/ada/acats/tests/c3/c32001b.ada
! 90383af3c35e304193502497e9d9ada0  gcc/testsuite/ada/acats/tests/c3/c32001c.ada
! 6f38031cf1bc7fd3a2530a0a49fc3927  gcc/testsuite/ada/acats/tests/c3/c32001d.ada
! 4cff8a5cde793b9eb72e56ef8588c690  gcc/testsuite/ada/acats/tests/c3/c32001e.ada
! fe386611f5a09953fdbdb423b0673b0b  gcc/testsuite/ada/acats/tests/c3/c32107a.ada
! 6dcc55a41a077f43caf697ae83ae4678  gcc/testsuite/ada/acats/tests/c3/c32107c.ada
! 6bc3a589ff71140e94718588fa9f9c34  gcc/testsuite/ada/acats/tests/c3/c32108a.ada
! 0b55a6ac879d361c4eaa8a25a475c92e  gcc/testsuite/ada/acats/tests/c3/c32108b.ada
! 4520bac74d324253fcf2b48b5c6eea2b  gcc/testsuite/ada/acats/tests/c3/c32111a.ada
! 52ac5c461c7746717a0d789fb2a57377  gcc/testsuite/ada/acats/tests/c3/c32111b.ada
! dabad6f6cae80313a5a888aaa710756d  gcc/testsuite/ada/acats/tests/c3/c32112b.ada
! eebc548a818a1f56ce990f52129e4296  gcc/testsuite/ada/acats/tests/c3/c32113a.ada
! 016d6073dcc33d7b8106082eb7755faa  gcc/testsuite/ada/acats/tests/c3/c32115a.ada
! a613215b48d8c873069bb2d690d5f556  gcc/testsuite/ada/acats/tests/c3/c32115b.ada
! f21dc71d940d5c06af5d22f69eab60f9  gcc/testsuite/ada/acats/tests/c3/c330001.a
! 74812d0708e93af61e096b45e2fc14ec  gcc/testsuite/ada/acats/tests/c3/c330002.a
! 8e5fef6b3dfabbb753bbf97caf8dddae  gcc/testsuite/ada/acats/tests/c3/c332001.a
! d7ae35646e985b47bde736b4aeadaec1  gcc/testsuite/ada/acats/tests/c3/c340001.a
! 029cfe27a33cb66b049fe0d0fb65381b  gcc/testsuite/ada/acats/tests/c3/c34001a.ada
! 7f88e5135c6832cdc88dff48cc8dafee  gcc/testsuite/ada/acats/tests/c3/c34001c.ada
! 8c1764692d7cb0bc17a952ce68b59db8  gcc/testsuite/ada/acats/tests/c3/c34001d.ada
! a08af1aeb3b4af40be4e8250cad56d8d  gcc/testsuite/ada/acats/tests/c3/c34001f.ada
! 796e76f308a9d18762b63a8a7c9fa6ec  gcc/testsuite/ada/acats/tests/c3/c34002a.ada
! 56ca2500660f86690e43b4eb2c63911d  gcc/testsuite/ada/acats/tests/c3/c34002c.ada
! 916814d1426aeb62617f0e647f1425f4  gcc/testsuite/ada/acats/tests/c3/c34003a.ada
! 7848bad56990231ec4964a5294f4d02f  gcc/testsuite/ada/acats/tests/c3/c34003c.ada
! 3f596cd960a8968d7c7892b7351e85fa  gcc/testsuite/ada/acats/tests/c3/c34004a.ada
! f25b6504d96e3e21099abd8a985bfe40  gcc/testsuite/ada/acats/tests/c3/c34004c.ada
! 10feabd33f2004943d36ff9acac0bda3  gcc/testsuite/ada/acats/tests/c3/c34005a.ada
! 9b730174260769c83e1d1f34a482b64c  gcc/testsuite/ada/acats/tests/c3/c34005c.ada
! d8cd66825d35a0c2eee7a2bc22021fde  gcc/testsuite/ada/acats/tests/c3/c34005d.ada
! fd5b17683accebcffccf7d52a88ba813  gcc/testsuite/ada/acats/tests/c3/c34005f.ada
! 5a2119c2d54f4427832bc1c61d913eac  gcc/testsuite/ada/acats/tests/c3/c34005g.ada
! 170b45f6069790926570bd39f97033ea  gcc/testsuite/ada/acats/tests/c3/c34005i.ada
! bdf673ae022cc1b217f6ea84218ef460  gcc/testsuite/ada/acats/tests/c3/c34005j.ada
! 0c6f4909c9db9787b9ca4d3b296a3ae9  gcc/testsuite/ada/acats/tests/c3/c34005l.ada
! 7f1441892699c24f145df474c396124d  gcc/testsuite/ada/acats/tests/c3/c34005m.ada
! f851c156716ece972741b1a161b80b5f  gcc/testsuite/ada/acats/tests/c3/c34005o.ada
! 043754af8734117b693825059b2d22bb  gcc/testsuite/ada/acats/tests/c3/c34005p.ada
! 38b03276fbc9b35694fc4d3d2b1256ef  gcc/testsuite/ada/acats/tests/c3/c34005r.ada
! b1e254368a79c887afcaae46814d1508  gcc/testsuite/ada/acats/tests/c3/c34005s.ada
! 1f4c22b0cf2e5dfbe3648ebb2db7263a  gcc/testsuite/ada/acats/tests/c3/c34005u.ada
! ee6486739b27542ae2e06bf404248adf  gcc/testsuite/ada/acats/tests/c3/c34005v.ada
! 60d73ec320d9ef0db0dc330bb3e04fe5  gcc/testsuite/ada/acats/tests/c3/c34006a.ada
! da0b3e574a91ee0aaaef5268466ab1d1  gcc/testsuite/ada/acats/tests/c3/c34006d.ada
! 8d549731513d1eff1ef01cf7c39e1bb6  gcc/testsuite/ada/acats/tests/c3/c34006f.ada
! 5778d0794027d2195dc52a874d4aa6dc  gcc/testsuite/ada/acats/tests/c3/c34006g.ada
! 0e44ca23e51d865ebba37df074e84cc3  gcc/testsuite/ada/acats/tests/c3/c34006j.ada
! 1f9588c61e9d083a44b37060893f1199  gcc/testsuite/ada/acats/tests/c3/c34006l.ada
! 3111937fe40eda62543e53d0dc0a9b2e  gcc/testsuite/ada/acats/tests/c3/c34007a.ada
! a6c16ebbc095684171bb89cb7ac5b52f  gcc/testsuite/ada/acats/tests/c3/c34007d.ada
! 3f46f4632a1e2839b528dd4edb849c59  gcc/testsuite/ada/acats/tests/c3/c34007f.ada
! 50a6b8b6ab707d4020a210c2f54c5364  gcc/testsuite/ada/acats/tests/c3/c34007g.ada
! 1d08fae78b3684032500b751c4f6b956  gcc/testsuite/ada/acats/tests/c3/c34007i.ada
! 7dec8ab4f2325dfb24a6f4a0712ca647  gcc/testsuite/ada/acats/tests/c3/c34007j.ada
! f2f670c3368d6fdedc0bc830e2f5441f  gcc/testsuite/ada/acats/tests/c3/c34007m.ada
! 12e7a75337b952bbe70b50f44fbf73bd  gcc/testsuite/ada/acats/tests/c3/c34007p.ada
! 4460899978bde8392dbf79b1457fd4c0  gcc/testsuite/ada/acats/tests/c3/c34007r.ada
! 430fadbb7eb89cad332156a43a1cb8a6  gcc/testsuite/ada/acats/tests/c3/c34007s.ada
! 142cd26f56dbefa8cc40ce318e93574b  gcc/testsuite/ada/acats/tests/c3/c34007u.ada
! 01aa55423bd6286a768cfbc7951408e9  gcc/testsuite/ada/acats/tests/c3/c34007v.ada
! 7d2567bb5e4ce686433355b2efa84d99  gcc/testsuite/ada/acats/tests/c3/c34008a.ada
! 9e896dcd16ce62c70c03b6105de6b94c  gcc/testsuite/ada/acats/tests/c3/c34009a.ada
! be1b3bebe697fb006bf9a558f3b0f788  gcc/testsuite/ada/acats/tests/c3/c34009d.ada
! 5880284be01f48d40969f18306c94edd  gcc/testsuite/ada/acats/tests/c3/c34009f.ada
! 679004960f5e177505b2aff13c637ebf  gcc/testsuite/ada/acats/tests/c3/c34009g.ada
! f60aa89944e52f4dca47047e08990f29  gcc/testsuite/ada/acats/tests/c3/c34009j.ada
! 28351985ca5afb785bccaaf7463d1f32  gcc/testsuite/ada/acats/tests/c3/c34009l.ada
! 221f9bd08976154a0a22e9948d8ac7e0  gcc/testsuite/ada/acats/tests/c3/c34011b.ada
! f2175e26a65dbd70c186e6acf1001755  gcc/testsuite/ada/acats/tests/c3/c34012a.ada
! bdde2c516616684b5fe414550d8400ee  gcc/testsuite/ada/acats/tests/c3/c34014a.ada
! 4e8100382b8141c0d056a9fe870b8d06  gcc/testsuite/ada/acats/tests/c3/c34014c.ada
! a8fbccc7b3c28981b57a867a1edabf5d  gcc/testsuite/ada/acats/tests/c3/c34014e.ada
! 75cb51a9c469066a67228b04e8ba11fc  gcc/testsuite/ada/acats/tests/c3/c34014g.ada
! da007fc8719ca70057c035beb9fda7fe  gcc/testsuite/ada/acats/tests/c3/c34014h.ada
! dbcb5a07736736af9834d2938b24e483  gcc/testsuite/ada/acats/tests/c3/c34014n.ada
! afbaca6a68812eaecf17a8eef2a6346e  gcc/testsuite/ada/acats/tests/c3/c34014p.ada
! df14c9b4224ce4cf3fd2d8445cbad0f2  gcc/testsuite/ada/acats/tests/c3/c34014r.ada
! 03948696a8a2d08faa02588806cd388d  gcc/testsuite/ada/acats/tests/c3/c34014t.ada
! 7258de51f19cfc9506908221af84e01f  gcc/testsuite/ada/acats/tests/c3/c34014u.ada
! 360330a2a81712d1ed00c02cbc5e6526  gcc/testsuite/ada/acats/tests/c3/c34018a.ada
! a943a89b3032146b53e937f3a73684da  gcc/testsuite/ada/acats/tests/c3/c340a01.a
! 5a38659efe283303f9d22ebc955ae0d0  gcc/testsuite/ada/acats/tests/c3/c340a02.a
! f694a602dc4b31baf72c096b6e4fb9d5  gcc/testsuite/ada/acats/tests/c3/c341a01.a
! 4ad05d07bd295bd76f3edbc6685ae9b8  gcc/testsuite/ada/acats/tests/c3/c341a02.a
! 49408ab274823bacfccd32176c5bc061  gcc/testsuite/ada/acats/tests/c3/c341a03.a
! ec207723e08de50ca0964ad3318f8235  gcc/testsuite/ada/acats/tests/c3/c341a04.a
! 55b745d015fed5a09de487d8081c09eb  gcc/testsuite/ada/acats/tests/c3/c35003a.ada
! 092ff51133e865dad2cd6192506f9980  gcc/testsuite/ada/acats/tests/c3/c35003b.ada
! 55caad169adcfa6b58689ceb3dc1d505  gcc/testsuite/ada/acats/tests/c3/c35003d.ada
! b2b10d16689d994b421c7f356c4eebe9  gcc/testsuite/ada/acats/tests/c3/c35102a.ada
! 9d1972c0cc4eb7b2203cca27c4e785f1  gcc/testsuite/ada/acats/tests/c3/c352001.a
! 6adbf240f9a88c67e6dc4d9a3ae2f449  gcc/testsuite/ada/acats/tests/c3/c354002.a
! 1c6bd8c5607c8d83b1fb16cf20b35965  gcc/testsuite/ada/acats/tests/c3/c354003.a
! 831543d10fff09679865a63cb6261690  gcc/testsuite/ada/acats/tests/c3/c35502a.ada
! a7c2fa5fc851b6f2ef3d825116c56789  gcc/testsuite/ada/acats/tests/c3/c35502b.ada
! 012ae5aa045c7b944677ea749449b75e  gcc/testsuite/ada/acats/tests/c3/c35502c.ada
! 66ad3541bdd12f2457bc931410567df2  gcc/testsuite/ada/acats/tests/c3/c35502d.tst
! f850859238832c6689133c4b82b2d23a  gcc/testsuite/ada/acats/tests/c3/c35502e.ada
! 1ae0d752d4d7089a159ba37533cac440  gcc/testsuite/ada/acats/tests/c3/c35502f.tst
! 86636a48b0f16cee1e000cf7cdff2dd3  gcc/testsuite/ada/acats/tests/c3/c35502g.ada
! 051f7f33819b5ea42a6810524402160e  gcc/testsuite/ada/acats/tests/c3/c35502h.ada
! 4e03c40da8c9f6a6c779600f4bf06f72  gcc/testsuite/ada/acats/tests/c3/c35502i.ada
! 0ce71c0ba8fc8137892f8032070143cf  gcc/testsuite/ada/acats/tests/c3/c35502j.ada
! 039caaa9e43f4d6e115a8a1f83eeebf1  gcc/testsuite/ada/acats/tests/c3/c35502k.ada
! 211eda1bcd28ea4725982c3228537ce8  gcc/testsuite/ada/acats/tests/c3/c35502l.ada
! 04a6b32af2cf206734bf10b9c20a1a53  gcc/testsuite/ada/acats/tests/c3/c35502m.ada
! 4d2fd9e74373c5a73cc4f819206b0ae4  gcc/testsuite/ada/acats/tests/c3/c35502n.ada
! a2f7774ccd8fe3b58f670146427b1f58  gcc/testsuite/ada/acats/tests/c3/c35502o.ada
! 244d3a03a5bfb9a02be2cde7af593c88  gcc/testsuite/ada/acats/tests/c3/c35502p.ada
! bbea92be5e14aa812d5b0bf50f43ecd2  gcc/testsuite/ada/acats/tests/c3/c35503a.ada
! e45620aeea62423f2a72fa98c32c2629  gcc/testsuite/ada/acats/tests/c3/c35503b.ada
! 6ff5a195541e611e8f795764a46c96c7  gcc/testsuite/ada/acats/tests/c3/c35503c.ada
! ae4f0df020df3fca42928a76d16433e2  gcc/testsuite/ada/acats/tests/c3/c35503d.tst
! 2835676122accf27f7f9912ed7f9b38b  gcc/testsuite/ada/acats/tests/c3/c35503e.ada
! 18bbb578fe3d479a11c962d128286c04  gcc/testsuite/ada/acats/tests/c3/c35503f.tst
! def2f804ca12f62b8b5f42c18fa649c0  gcc/testsuite/ada/acats/tests/c3/c35503g.ada
! 082f524dedff546b67bf566735caa1c1  gcc/testsuite/ada/acats/tests/c3/c35503h.ada
! 85174a7f410200513d18d173743c7474  gcc/testsuite/ada/acats/tests/c3/c35503k.ada
! 57ae4c28160a4dfa61de89bc057c9b02  gcc/testsuite/ada/acats/tests/c3/c35503l.ada
! 5fc96deb857ba3b7ec7ee6040f2b7d93  gcc/testsuite/ada/acats/tests/c3/c35503o.ada
! 02c17920bbabcf5f472c332ee0439df3  gcc/testsuite/ada/acats/tests/c3/c35503p.ada
! 7c0f95cda266f19784cd481570ffcf1a  gcc/testsuite/ada/acats/tests/c3/c35504a.ada
! 58ca27427f3b7371702549078677cd48  gcc/testsuite/ada/acats/tests/c3/c35504b.ada
! c64ed7ab5ced440f95e39eb0465b431f  gcc/testsuite/ada/acats/tests/c3/c35505c.ada
! 8a20049a7aa4dbf5e73f4a4a856df916  gcc/testsuite/ada/acats/tests/c3/c35505e.ada
! fb8432e5868c1977e525882401096430  gcc/testsuite/ada/acats/tests/c3/c35505f.ada
! a3d1f58b38d0f57e89521134057aa0d0  gcc/testsuite/ada/acats/tests/c3/c35507a.ada
! fe46e6e48a084e26027a960dcecf0e7f  gcc/testsuite/ada/acats/tests/c3/c35507b.ada
! 6276ac14d36049ca6fc1d65937918d6d  gcc/testsuite/ada/acats/tests/c3/c35507c.ada
! 38f75633d1d28c38660ac311815075c6  gcc/testsuite/ada/acats/tests/c3/c35507e.ada
! 068b315520036392da2decdadf03f6c9  gcc/testsuite/ada/acats/tests/c3/c35507g.ada
! c2e6c5681cde5371d2678d0afe2a7dbc  gcc/testsuite/ada/acats/tests/c3/c35507h.ada
! 63dad9c02cf9b0faee9f7a4c8f1e9e2d  gcc/testsuite/ada/acats/tests/c3/c35507i.ada
! 1501d4b22ff6ada18bda2bec24e23c79  gcc/testsuite/ada/acats/tests/c3/c35507j.ada
! 09885e80b2822b3187740ca5682c20e8  gcc/testsuite/ada/acats/tests/c3/c35507k.ada
! 7cef3fe8bb6274e0323e822d047490b2  gcc/testsuite/ada/acats/tests/c3/c35507l.ada
! b1e4ee7af4f56f20553663a9e296595e  gcc/testsuite/ada/acats/tests/c3/c35507m.ada
! cecbaaea0b8f341a4305a221c28843fc  gcc/testsuite/ada/acats/tests/c3/c35507n.ada
! 52e0a241e2ad05fa89ecb293e6e2445a  gcc/testsuite/ada/acats/tests/c3/c35507o.ada
! 600e023fcb478381f0a8d0bde64f42ce  gcc/testsuite/ada/acats/tests/c3/c35507p.ada
! f33cc8ac90e96b7b226aaec5ae692195  gcc/testsuite/ada/acats/tests/c3/c35508a.ada
! 7e48a5fa6e02b3658f287da356b209f9  gcc/testsuite/ada/acats/tests/c3/c35508b.ada
! 4b6b6e92f28c0ad3cd4f67af8ad0c06c  gcc/testsuite/ada/acats/tests/c3/c35508c.ada
! 8bbddf95307b94ae0ed7e12152746762  gcc/testsuite/ada/acats/tests/c3/c35508e.ada
! dbe54ec8ce5e33dd88ae24a43cfde531  gcc/testsuite/ada/acats/tests/c3/c35508g.ada
! e637f96ce7f08585f2d85fee50f734ee  gcc/testsuite/ada/acats/tests/c3/c35508h.ada
! 362619ef40ffff0fd56dee7a6a6c51ab  gcc/testsuite/ada/acats/tests/c3/c35508k.ada
! 62ca0e421d4722ad32f139648ece0a60  gcc/testsuite/ada/acats/tests/c3/c35508l.ada
! fab2b9fed9304046c3feed68fb9e7b50  gcc/testsuite/ada/acats/tests/c3/c35508o.ada
! a7e4e9b85072c7fc56cd223463426c4d  gcc/testsuite/ada/acats/tests/c3/c35508p.ada
! bb15d1d296a4eddc9aada6a363360729  gcc/testsuite/ada/acats/tests/c3/c35703a.ada
! 97d3b53eb2177ea6344c1ef49c98377d  gcc/testsuite/ada/acats/tests/c3/c35704a.ada
! 5a690257e776d58a4fd2a23a7ba6c0e9  gcc/testsuite/ada/acats/tests/c3/c35704b.ada
! 52a2a628059a70786108ace7ccd9d08f  gcc/testsuite/ada/acats/tests/c3/c35704c.ada
! 14756c69c53e152b3ede55a2754a4d33  gcc/testsuite/ada/acats/tests/c3/c35704d.ada
! 22b7d640a1b7ab1933a5654507ff5814  gcc/testsuite/ada/acats/tests/c3/c35801d.ada
! 23943917f960018ecdfb861e2c69b545  gcc/testsuite/ada/acats/tests/c3/c35902d.ada
! 1e5392accfe4bd85f17ca7c456747be3  gcc/testsuite/ada/acats/tests/c3/c35904a.ada
! 4c8ee2a79f1878dcbca7246e9e436865  gcc/testsuite/ada/acats/tests/c3/c35904b.ada
! 73fbf4f7e465d5d7fdbee3c99d7cf9ec  gcc/testsuite/ada/acats/tests/c3/c35a02a.ada
! 9f8c6fe2edc1ad0a78efbb5038b9ef99  gcc/testsuite/ada/acats/tests/c3/c35a05a.ada
! 57fc2536f06ceaf5a1604ee5bb5605fd  gcc/testsuite/ada/acats/tests/c3/c35a05d.ada
! ccf547732379c7144c27839f695e8a78  gcc/testsuite/ada/acats/tests/c3/c35a05n.ada
! ef904f577e7d9c35099e7d144f51bcce  gcc/testsuite/ada/acats/tests/c3/c35a05q.ada
! 3682cd83d6b388849e97129de990f52d  gcc/testsuite/ada/acats/tests/c3/c35a07a.ada
! 03e887c344e6bdbdb22118ff77b769fd  gcc/testsuite/ada/acats/tests/c3/c35a07d.ada
! ccdad741543d79671fc5f73037ff418d  gcc/testsuite/ada/acats/tests/c3/c35a08b.ada
! 651df98436a6167a850f437a29dc7a94  gcc/testsuite/ada/acats/tests/c3/c360002.a
! a4c274a3e03fe30e6bc786063bfe78e9  gcc/testsuite/ada/acats/tests/c3/c36104a.ada
! b016b5195b1a9d3c07192416c89e1bee  gcc/testsuite/ada/acats/tests/c3/c36104b.ada
! 43912684d172c672071ee16d854bcff0  gcc/testsuite/ada/acats/tests/c3/c36172a.ada
! 2dc69a4f44addfae37b13335df258285  gcc/testsuite/ada/acats/tests/c3/c36172b.ada
! 4d07671447e230f3eddc684c6a3b557a  gcc/testsuite/ada/acats/tests/c3/c36172c.ada
! 38a8a16720ac5a8741105f6c5f506f2d  gcc/testsuite/ada/acats/tests/c3/c36174a.ada
! 87012e291c8acd51799d9ca8b8fccc32  gcc/testsuite/ada/acats/tests/c3/c36180a.ada
! f887210d32ff420cd8ec888ca5c13b66  gcc/testsuite/ada/acats/tests/c3/c36202c.ada
! c48c400b884ae534788fbff1510b95ba  gcc/testsuite/ada/acats/tests/c3/c36203a.ada
! 93d36d6ba5a23a2f985cc842911a6b2f  gcc/testsuite/ada/acats/tests/c3/c36204a.ada
! 5ae3804a2577f9be85df4c11dd1ba3ab  gcc/testsuite/ada/acats/tests/c3/c36204b.ada
! 95f946b45603237266057103729c0a9c  gcc/testsuite/ada/acats/tests/c3/c36204c.ada
! 1a555d9bc9de255c02e401d7956a5f67  gcc/testsuite/ada/acats/tests/c3/c36204d.ada
! c5d2782fd60778b2578f9cf486e811db  gcc/testsuite/ada/acats/tests/c3/c36205a.ada
! 4842fc730e500b00c7c35f4691be2855  gcc/testsuite/ada/acats/tests/c3/c36205b.ada
! 725f9fbf3157baa9a668acc5e689a06b  gcc/testsuite/ada/acats/tests/c3/c36205c.ada
! a9d6124e64589b143b6b54d575df431b  gcc/testsuite/ada/acats/tests/c3/c36205d.ada
! c016e1338001bb0d007af7bf4e20d911  gcc/testsuite/ada/acats/tests/c3/c36205e.ada
! 299e459d577a85781464563cd621f1b4  gcc/testsuite/ada/acats/tests/c3/c36205f.ada
! 7f182ba91c9a0f80d0e5e5b7e919ac56  gcc/testsuite/ada/acats/tests/c3/c36205g.ada
! 7559d4ebfc8d9c23879d2cc42d3ac0f4  gcc/testsuite/ada/acats/tests/c3/c36205h.ada
! d11eed873d3f614674f193f130b127bb  gcc/testsuite/ada/acats/tests/c3/c36205i.ada
! 65b17684e8953d820a69eb11dc4d63e4  gcc/testsuite/ada/acats/tests/c3/c36205j.ada
! 21f3a9a788ac6136e2b453f0fc99959f  gcc/testsuite/ada/acats/tests/c3/c36205k.ada
! 9884f944a4c4faaee8aaf09a92235c3a  gcc/testsuite/ada/acats/tests/c3/c36205l.ada
! 1552dfb23215604db6043c7d12dfc7a6  gcc/testsuite/ada/acats/tests/c3/c36301a.ada
! eb37821c1c0e190f8c8cd0e7d282bc9e  gcc/testsuite/ada/acats/tests/c3/c36301b.ada
! 236dab07c2bafa07e92d082fc822c8b4  gcc/testsuite/ada/acats/tests/c3/c36302a.ada
! a1b4d4c17da94ac478b85b56fd32bf91  gcc/testsuite/ada/acats/tests/c3/c36304a.ada
! 58595c82c4f76f6be31333ec0267a9c8  gcc/testsuite/ada/acats/tests/c3/c36305a.ada
! 871a3ce65e5d5a824131380a060f18e0  gcc/testsuite/ada/acats/tests/c3/c37002a.ada
! 8415fb7acaf9ab73e2a230b45778e7c8  gcc/testsuite/ada/acats/tests/c3/c37003a.ada
! b93e53c5cd23520b5b0b88e8c4aee165  gcc/testsuite/ada/acats/tests/c3/c37003b.ada
! 0396184f11f01fdd09e40a2432a7850c  gcc/testsuite/ada/acats/tests/c3/c37005a.ada
! 17dc351de12194e77f5fe4b5ffbc733e  gcc/testsuite/ada/acats/tests/c3/c37006a.ada
! 96813863f2ee2182c3f68f999a7ffed2  gcc/testsuite/ada/acats/tests/c3/c37008a.ada
! 9f784c997bf1bb09fe9bf639408dd25c  gcc/testsuite/ada/acats/tests/c3/c37008b.ada
! 5d7d0f22be016c0f9b4bcb1da25ed1a2  gcc/testsuite/ada/acats/tests/c3/c37009a.ada
! ffc6187aa3ecc28b0631a384e1f95a7e  gcc/testsuite/ada/acats/tests/c3/c37010a.ada
! 029c8fb134594e913fe650a5763a4515  gcc/testsuite/ada/acats/tests/c3/c37010b.ada
! 09e452317c2c5a3df881f8bfc5bad1ca  gcc/testsuite/ada/acats/tests/c3/c371001.a
! 194d5579b14c8d78edccb4725e786bbb  gcc/testsuite/ada/acats/tests/c3/c371002.a
! 6508ac6c82ccaf89245ddeb239cf8c65  gcc/testsuite/ada/acats/tests/c3/c371003.a
! efcbd19428af8ce2430d60f7389f98f7  gcc/testsuite/ada/acats/tests/c3/c37102b.ada
! b56d339ed47321b90862af1e6ff54f3c  gcc/testsuite/ada/acats/tests/c3/c37103a.ada
! d2b9a9804b8282550c3233d4c850e203  gcc/testsuite/ada/acats/tests/c3/c37105a.ada
! dff6fe14498b4430a005271952b8508b  gcc/testsuite/ada/acats/tests/c3/c37107a.ada
! cab8fff51d9e7fa6be5dc3722f0805a7  gcc/testsuite/ada/acats/tests/c3/c37108b.ada
! ac1c74612e7098a8b3c19c4233f91b36  gcc/testsuite/ada/acats/tests/c3/c37206a.ada
! da4a6484624a6563a3acad74e59e553f  gcc/testsuite/ada/acats/tests/c3/c37207a.ada
! 793d448b9373aca3bdfbeb16c4cd5664  gcc/testsuite/ada/acats/tests/c3/c37208a.ada
! 19e934b5c86da61793fb4bde9faf4f4a  gcc/testsuite/ada/acats/tests/c3/c37208b.ada
! cfc2d39b74fd2d6964787190ac03afde  gcc/testsuite/ada/acats/tests/c3/c37209a.ada
! a9e5da6e96624ea9e8d99c31a879bea0  gcc/testsuite/ada/acats/tests/c3/c37209b.ada
! 5095a03dbf61f1c7486ce4249ebd4168  gcc/testsuite/ada/acats/tests/c3/c37210a.ada
! 13fd1f169bebade45dcc8f783c4dfba5  gcc/testsuite/ada/acats/tests/c3/c37211a.ada
! 90539e4b0a8ab5a720d93e61332d4bad  gcc/testsuite/ada/acats/tests/c3/c37211b.ada
! b5fb0f0cfa820aa9c8f8a02529b59ae1  gcc/testsuite/ada/acats/tests/c3/c37211c.ada
! 34158bf765252e909102a5071bd1ab0d  gcc/testsuite/ada/acats/tests/c3/c37211d.ada
! 9723d82d289b6c708a4e38619a050c44  gcc/testsuite/ada/acats/tests/c3/c37211e.ada
! 02567718a426a27f1633a5ba46fb39ea  gcc/testsuite/ada/acats/tests/c3/c37213b.ada
! 0db6468aa3789fa4eb8509864bbbba6c  gcc/testsuite/ada/acats/tests/c3/c37213d.ada
! c3ea989d669b26ad147ec1d36d59f8b1  gcc/testsuite/ada/acats/tests/c3/c37213f.ada
! c7d6b08bb4739fe27a9bf7c37153611b  gcc/testsuite/ada/acats/tests/c3/c37213h.ada
! e1a81fd713875796f8f0f1d1d856df2e  gcc/testsuite/ada/acats/tests/c3/c37213j.ada
! 8824529732962a1fb9cbd428d01a57f5  gcc/testsuite/ada/acats/tests/c3/c37213k.ada
! 7c2df003cd7fdc0bffaa00b7e5a76295  gcc/testsuite/ada/acats/tests/c3/c37213l.ada
! d1bb01398cfb6ee5cd12ec89604227fb  gcc/testsuite/ada/acats/tests/c3/c37215b.ada
! f34c6fc15658b1b04a69e1ccf32c7394  gcc/testsuite/ada/acats/tests/c3/c37215d.ada
! ca62cbc7b583fe934a8091c539e55305  gcc/testsuite/ada/acats/tests/c3/c37215f.ada
! 8be60a6919ae5d9ba615eb624746100d  gcc/testsuite/ada/acats/tests/c3/c37215h.ada
! fdd60b015f299bfc5d8e0f9f33334f8e  gcc/testsuite/ada/acats/tests/c3/c37217a.ada
! bb84ce5410a8c6c7127939120ba80cde  gcc/testsuite/ada/acats/tests/c3/c37217b.ada
! 2687c3f166eabbae25fc5e04880d06a3  gcc/testsuite/ada/acats/tests/c3/c37217c.ada
! db9ca52d8b1a818e4d66aea96b3eb964  gcc/testsuite/ada/acats/tests/c3/c37304a.ada
! 59413b6b57aae9caadc41c111c74faed  gcc/testsuite/ada/acats/tests/c3/c37305a.ada
! 2ff906f6262ecd1cfdaffbcda07f1a76  gcc/testsuite/ada/acats/tests/c3/c37306a.ada
! a6f2da7b55ad908aebb841bc6ed9b69e  gcc/testsuite/ada/acats/tests/c3/c37309a.ada
! 54ec04c8663d10e960eb022fed3a9306  gcc/testsuite/ada/acats/tests/c3/c37310a.ada
! ab733e44603296f9e49a292ad601cf74  gcc/testsuite/ada/acats/tests/c3/c37312a.ada
! 75ac97c1a116dcc5edcc7f2b44f304f4  gcc/testsuite/ada/acats/tests/c3/c37402a.ada
! 2d432b792b7c7b0669844add896bb802  gcc/testsuite/ada/acats/tests/c3/c37403a.ada
! 38ed181e9e32218f4a81d412e83c503d  gcc/testsuite/ada/acats/tests/c3/c37404a.ada
! c1cce1fda9f9c6085ecce4e278182d6c  gcc/testsuite/ada/acats/tests/c3/c37404b.ada
! c9abb9613df5a6b0ab399a10551d5070  gcc/testsuite/ada/acats/tests/c3/c37405a.ada
! 1793c94eca80b29526f7ec7a9da864e8  gcc/testsuite/ada/acats/tests/c3/c37411a.ada
! 3d8871a14f5b0b92ab5699036c27161b  gcc/testsuite/ada/acats/tests/c3/c380001.a
! fe1bbd01b7e70108e4de5854ee4c098d  gcc/testsuite/ada/acats/tests/c3/c380002.a
! fb52cd7cb9118b93afa2bc8a309ecdc9  gcc/testsuite/ada/acats/tests/c3/c380003.a
! 7e465d24377190b6eaafcc3fd3125ff9  gcc/testsuite/ada/acats/tests/c3/c380004.a
! c76f2865cda03e9d5c2164052031d578  gcc/testsuite/ada/acats/tests/c3/c38002a.ada
! 5c8aaef6a8da893998485cc8bfb71f48  gcc/testsuite/ada/acats/tests/c3/c38002b.ada
! f8397d669785d9d911c494e0a0b9986a  gcc/testsuite/ada/acats/tests/c3/c38005a.ada
! 36a372c2d5368726208b1f76f95f3c1d  gcc/testsuite/ada/acats/tests/c3/c38005b.ada
! 175ff60b11884803275c5a95d4db9b0f  gcc/testsuite/ada/acats/tests/c3/c38005c.ada
! 7a5b5f5b1ac7d54c9a2cff42582467fb  gcc/testsuite/ada/acats/tests/c3/c38006a.ada
! cc457354e31fc1e63179de33cbefbad9  gcc/testsuite/ada/acats/tests/c3/c38102a.ada
! 2f60ee39cadeb5e04f93c0fb98c2ff78  gcc/testsuite/ada/acats/tests/c3/c38102b.ada
! 773c45b11f80bfa2c11a621982312a41  gcc/testsuite/ada/acats/tests/c3/c38102c.ada
! 2eec2f09807572ff6be386c41f2aa890  gcc/testsuite/ada/acats/tests/c3/c38102d.ada
! ff2ae7294328aba3ca946b298ff89249  gcc/testsuite/ada/acats/tests/c3/c38102e.ada
! 19d2c8a98b84fc28fb173b8ede249f5f  gcc/testsuite/ada/acats/tests/c3/c38104a.ada
! ccdff83c46a0742a6f6c98f395885cf0  gcc/testsuite/ada/acats/tests/c3/c38107a.ada
! 5b807a368e5b577c901a0143b328edd6  gcc/testsuite/ada/acats/tests/c3/c38107b.ada
! 7f519d74032c869b16bf7e4cc3f1757c  gcc/testsuite/ada/acats/tests/c3/c38108a.ada
! 1cdb4b2554cc632c2786a14302f39123  gcc/testsuite/ada/acats/tests/c3/c38108b.ada
! 0c83db01ff09f439f6a7fc807e878547  gcc/testsuite/ada/acats/tests/c3/c38108c0.ada
! 0b0a2c9346188afcf5a240958d58cb60  gcc/testsuite/ada/acats/tests/c3/c38108c1.ada
! 1cea347b513b856254a8e9fed08d945a  gcc/testsuite/ada/acats/tests/c3/c38108c2.ada
! fb749693f49b0edcfffc4444290ac564  gcc/testsuite/ada/acats/tests/c3/c38108d0.ada
! aa2833688968ca7a3e36612070b575f4  gcc/testsuite/ada/acats/tests/c3/c38108d1.ada
! 8e9cd24cf69e1375408ec439a96f964f  gcc/testsuite/ada/acats/tests/c3/c38202a.ada
! 61680b9ec1c444c4faffd8c59cce698a  gcc/testsuite/ada/acats/tests/c3/c3900010.a
! 987d00ae68ea07578bf45fc567352a66  gcc/testsuite/ada/acats/tests/c3/c3900011.am
! 370d5eba0eee3ce909caf87c342f846d  gcc/testsuite/ada/acats/tests/c3/c390002.a
! 6dd703dff40d77030a2c6329094e7802  gcc/testsuite/ada/acats/tests/c3/c390003.a
! 491d840ce3aeb642239cc28533a9ba34  gcc/testsuite/ada/acats/tests/c3/c390004.a
! b04ffb8d071dcf6547533038ef227651  gcc/testsuite/ada/acats/tests/c3/c3900050.a
! dff18ad9fb367bc37acd04d6e08e55bf  gcc/testsuite/ada/acats/tests/c3/c3900051.a
! 2b39948b2af313cbed0046a2bcdcbc9d  gcc/testsuite/ada/acats/tests/c3/c3900052.a
! b4e44c9c1971345223585500a55db164  gcc/testsuite/ada/acats/tests/c3/c3900053.am
! 471e818df49cf1a32357c5b759d21dc9  gcc/testsuite/ada/acats/tests/c3/c3900060.a
! bd65238f7cda09d91e177736cdbcd7ec  gcc/testsuite/ada/acats/tests/c3/c3900061.a
! d3e9ddf4af2eb46f1b086dbc43c75d04  gcc/testsuite/ada/acats/tests/c3/c3900062.a
! bced3ae0c872e2f15b26193b1c9c4c35  gcc/testsuite/ada/acats/tests/c3/c3900063.am
! cd1ae54278fd1b61d5ecd166ecf0671b  gcc/testsuite/ada/acats/tests/c3/c390007.a
! a7cf99b62949613099d6c982d9043098  gcc/testsuite/ada/acats/tests/c3/c390010.a
! 30e5b9a42c18864d89a931830adfd68e  gcc/testsuite/ada/acats/tests/c3/c390011.a
! 1bcaf1b15ae617d49c80e68b55943cc6  gcc/testsuite/ada/acats/tests/c3/c39006a.ada
! 7e954943167e1f1855ce0abf856c9a9b  gcc/testsuite/ada/acats/tests/c3/c39006b.ada
! 14d52be4c2d938b4ae51c17507b6ca25  gcc/testsuite/ada/acats/tests/c3/c39006c0.ada
! c770912acdec8d8fa7169157d99a1382  gcc/testsuite/ada/acats/tests/c3/c39006c1.ada
! fcf5b4e7ecc49a79fc11640baf53f4f6  gcc/testsuite/ada/acats/tests/c3/c39006d.ada
! 86ddd0b2d946750357311d89b5046963  gcc/testsuite/ada/acats/tests/c3/c39006e.ada
! ba4887d359d62403c79f3563b0dfa8f4  gcc/testsuite/ada/acats/tests/c3/c39006f0.ada
! 205b6ff97343a4403e8cb5bc33883547  gcc/testsuite/ada/acats/tests/c3/c39006f1.ada
! 16ddc19c6da0a1642305e4b5fc6058d1  gcc/testsuite/ada/acats/tests/c3/c39006f2.ada
! 59cfdb727f33418fa8de537e14629d71  gcc/testsuite/ada/acats/tests/c3/c39006f3.ada
! f80f760d35130556602f0b683e480d63  gcc/testsuite/ada/acats/tests/c3/c39006g.ada
! cce3352413b69fd05b5ec5195c3a4c00  gcc/testsuite/ada/acats/tests/c3/c39007a.ada
! eab8b6c595bc019ed0d33f826e34e97f  gcc/testsuite/ada/acats/tests/c3/c39007b.ada
! f9502bdaffb8475b46fab174a19f2de9  gcc/testsuite/ada/acats/tests/c3/c39008a.ada
! 44f9dead72582206f122372b79949f92  gcc/testsuite/ada/acats/tests/c3/c39008b.ada
! f7c867df153c4137ff42c73e84cf78bb  gcc/testsuite/ada/acats/tests/c3/c39008c.ada
! 7dfc2d2eea8f430d414e0e9fb3d66efb  gcc/testsuite/ada/acats/tests/c3/c390a010.a
! fe7593d56cc6f8290c29978513afc0e4  gcc/testsuite/ada/acats/tests/c3/c390a011.am
! 11b0510a4ce65e5a57a44f990501c66a  gcc/testsuite/ada/acats/tests/c3/c390a020.a
! 4282bd0ba35b056f1611e8c863c8745e  gcc/testsuite/ada/acats/tests/c3/c390a021.a
! cf96da721f34cf963ac9c04fdedb4a5a  gcc/testsuite/ada/acats/tests/c3/c390a022.am
! 9cc816e53154c542095db060de988727  gcc/testsuite/ada/acats/tests/c3/c390a030.a
! a2ad2209c88d74fd376c9daf08c00e0c  gcc/testsuite/ada/acats/tests/c3/c390a031.am
! 40bd1c7f8a70fb208644304788e8bdc6  gcc/testsuite/ada/acats/tests/c3/c391001.a
! 2dc32344161fe05900a7d0a4fb00a90b  gcc/testsuite/ada/acats/tests/c3/c391002.a
! 1cea1692179d434f0ff9e71ba3af5c1e  gcc/testsuite/ada/acats/tests/c3/c392002.a
! 918e8c097a09a06159f2809df40a1418  gcc/testsuite/ada/acats/tests/c3/c392003.a
! 65856b8c6fecfcf755607b20116e49ef  gcc/testsuite/ada/acats/tests/c3/c392004.a
! add1a6bb172c420d5b75dd9efb48c6bd  gcc/testsuite/ada/acats/tests/c3/c392005.a
! 1e3c83f529cb7a93f087fd5e1d1c8da3  gcc/testsuite/ada/acats/tests/c3/c392008.a
! fdbaa3ed4337e597d16209533ad30839  gcc/testsuite/ada/acats/tests/c3/c392010.a
! 8063c17c7054236de05a0d6a56818802  gcc/testsuite/ada/acats/tests/c3/c392011.a
! 66f6cf830b25e4cba2aeaac6801b02e2  gcc/testsuite/ada/acats/tests/c3/c392013.a
! 3597acb12cde69e45603917fc97c80c0  gcc/testsuite/ada/acats/tests/c3/c392014.a
! 35f1f390e8606d404b61bb05a639d3be  gcc/testsuite/ada/acats/tests/c3/c392a01.a
! ddeb268075e3a716a055f61676497b78  gcc/testsuite/ada/acats/tests/c3/c392c05.a
! ee8edde3e11e29c877773403259133c0  gcc/testsuite/ada/acats/tests/c3/c392c07.a
! cf19325c05dcb02f4dc60d58ef26ea2b  gcc/testsuite/ada/acats/tests/c3/c392d01.a
! acfb41d6d4b4fdec20be56da91d7037d  gcc/testsuite/ada/acats/tests/c3/c392d02.a
! 1db19d15d9fdd4071bc438e73f6c5f60  gcc/testsuite/ada/acats/tests/c3/c392d03.a
! 9913afe2e224eb447dd2ba6e7b6cd62d  gcc/testsuite/ada/acats/tests/c3/c393001.a
! cb66f262f22e933b78a4b4ff7f314ebb  gcc/testsuite/ada/acats/tests/c3/c393007.a
! fa7a91fbda6d3ec270401392bfa2a76e  gcc/testsuite/ada/acats/tests/c3/c393008.a
! 725749e586aef7b3172e0a9f654508c9  gcc/testsuite/ada/acats/tests/c3/c393009.a
! 21bc1c6b2b56e0fe4e98a124b3a43036  gcc/testsuite/ada/acats/tests/c3/c393010.a
! cd6d2722ead0dbebda558b3eed5c7ca4  gcc/testsuite/ada/acats/tests/c3/c393011.a
! 7df68c4f3488082bba3f1654a9ba7910  gcc/testsuite/ada/acats/tests/c3/c393012.a
! 5bf5e79116361f7f6818018607c7b14c  gcc/testsuite/ada/acats/tests/c3/c393a02.a
! 46faa2017a32e6ba0d55237311c2594b  gcc/testsuite/ada/acats/tests/c3/c393a03.a
! eafd936400d5d6d12f0163e2eddfac6b  gcc/testsuite/ada/acats/tests/c3/c393a05.a
! db0cccf9a144062cc832a2649c8b3890  gcc/testsuite/ada/acats/tests/c3/c393a06.a
! 8714b97cca38041a9f7e9366aef2ea6f  gcc/testsuite/ada/acats/tests/c3/c393b12.a
! 7035657702431ed63b2d07b818986f02  gcc/testsuite/ada/acats/tests/c3/c393b13.a
! 53c07ae14d9fb175ce43218b1e343038  gcc/testsuite/ada/acats/tests/c3/c393b14.a
! c2ac600ac5856ef7dd1dbc9289ad5b3a  gcc/testsuite/ada/acats/tests/c3/c3a0001.a
! 031b3fc5f0a32a51bded67c7ecc17317  gcc/testsuite/ada/acats/tests/c3/c3a0002.a
! c31f440d35b722f58fbb9350b06d125c  gcc/testsuite/ada/acats/tests/c3/c3a0003.a
! 2297f4ac861d78f2371edd9c4a2d7c6c  gcc/testsuite/ada/acats/tests/c3/c3a0004.a
! 32ac31994b6e97c7cfc3da69b63041ca  gcc/testsuite/ada/acats/tests/c3/c3a0005.a
! d86e5a6cc083a8024c11012097ddad34  gcc/testsuite/ada/acats/tests/c3/c3a0006.a
! 27a88a8b1aa1655fbfad671608eb6590  gcc/testsuite/ada/acats/tests/c3/c3a0007.a
! 2c75b971c54a5abc55846c25177a2d32  gcc/testsuite/ada/acats/tests/c3/c3a0008.a
! 0b8bb10fc6969853e244dca2a5176000  gcc/testsuite/ada/acats/tests/c3/c3a0009.a
! ed1e9211c87a814c4afe091b58de454c  gcc/testsuite/ada/acats/tests/c3/c3a0010.a
! e9e7d7fe8183ee50353cfccbd67ce241  gcc/testsuite/ada/acats/tests/c3/c3a0011.a
! c7fcc74fd4dfdbaffcb6c91b90a50060  gcc/testsuite/ada/acats/tests/c3/c3a00120.a
! 74ba294edd61c27b3a700c248bd041e9  gcc/testsuite/ada/acats/tests/c3/c3a00121.a
! b5687449024e6ae74c2b54cbbf12b721  gcc/testsuite/ada/acats/tests/c3/c3a00122.am
! e7d92335b6aec84b884e9a11162a306e  gcc/testsuite/ada/acats/tests/c3/c3a0013.a
! 2fdbc8cb627a0ba4818773199ea59e8b  gcc/testsuite/ada/acats/tests/c3/c3a0014.a
! cbdd24e39ac8fba7e5ea4a0975d79298  gcc/testsuite/ada/acats/tests/c3/c3a0015.a
! 21ce522f0e81e68685347a0f9b6064f3  gcc/testsuite/ada/acats/tests/c3/c3a1001.a
! 03f9fa0b3ade6732c9e7b1792aa29352  gcc/testsuite/ada/acats/tests/c3/c3a1002.a
! 73e86224d17f2a8956a1d528195701e5  gcc/testsuite/ada/acats/tests/c3/c3a2001.a
! e2d17cf34da20dd63f46abc38e9461f2  gcc/testsuite/ada/acats/tests/c3/c3a2002.a
! 3c24e7e447372dec84c3b1cf5f273936  gcc/testsuite/ada/acats/tests/c3/c3a2003.a
! cddb5c363c31a2ba7b970cf9dc8e3f5e  gcc/testsuite/ada/acats/tests/c3/c3a2a01.a
! 4247f0b657aa158ef18c1318e9dc8b84  gcc/testsuite/ada/acats/tests/c3/c3a2a02.a
! 383d36d8bd8f651b81f9f034c79f6395  gcc/testsuite/ada/acats/tests/c4/c410001.a
! dc852bc88874efd64494341e97b01bfb  gcc/testsuite/ada/acats/tests/c4/c41101d.ada
! 6f5f34a6a9fa1d906503ce64081a9fb1  gcc/testsuite/ada/acats/tests/c4/c41103a.ada
! 6881243b887f6a08d55ad39f9c71b847  gcc/testsuite/ada/acats/tests/c4/c41103b.ada
! 820fca3a12cccc477a1db295b46c9e89  gcc/testsuite/ada/acats/tests/c4/c41104a.ada
! fdbf47ad957484b7d85a3373d756e376  gcc/testsuite/ada/acats/tests/c4/c41105a.ada
! c4087c229334ce4727fc90657340bea6  gcc/testsuite/ada/acats/tests/c4/c41107a.ada
! 0f8bb517ec2fe5d8ad9dd8f9fcdca333  gcc/testsuite/ada/acats/tests/c4/c41201d.ada
! 381cd3656ffd77067260c0426caad8e4  gcc/testsuite/ada/acats/tests/c4/c41203a.ada
! f16afef9632faa3f3d798b8429057017  gcc/testsuite/ada/acats/tests/c4/c41203b.ada
! 9fbde81e21b268a632cd32dc4a99df30  gcc/testsuite/ada/acats/tests/c4/c41204a.ada
! 67fa52580bd829764d9438c881578136  gcc/testsuite/ada/acats/tests/c4/c41205a.ada
! 7dca543b0fdeefd218298ca3512d4136  gcc/testsuite/ada/acats/tests/c4/c41206a.ada
! 3ab9c169397fc23560a200fb693450fe  gcc/testsuite/ada/acats/tests/c4/c41207a.ada
! 20522dfe7bf33e5e0e855924df96c08e  gcc/testsuite/ada/acats/tests/c4/c41301a.ada
! dae21e7962c8e72b1b61657cc9649578  gcc/testsuite/ada/acats/tests/c4/c41303a.ada
! b50a855a96988b73e7f3549240854176  gcc/testsuite/ada/acats/tests/c4/c41303b.ada
! 2616024a5ab75311dd3da9466dfeb83f  gcc/testsuite/ada/acats/tests/c4/c41303c.ada
! 71212110be4b03b467bc38a722d121d1  gcc/testsuite/ada/acats/tests/c4/c41303e.ada
! 66cc6334eba1dfed1e235d86203cb20f  gcc/testsuite/ada/acats/tests/c4/c41303f.ada
! 924b3910bb06953e81b618bc3e559550  gcc/testsuite/ada/acats/tests/c4/c41303g.ada
! 045ed81e249f894170b499df2db286d6  gcc/testsuite/ada/acats/tests/c4/c41303i.ada
! aa4db5f52bbfc36e5c975658ef97c89a  gcc/testsuite/ada/acats/tests/c4/c41303j.ada
! 0f31fc1511244c83e7abb4baeac80671  gcc/testsuite/ada/acats/tests/c4/c41303k.ada
! f9b758389317dc92073ce01c3c275e91  gcc/testsuite/ada/acats/tests/c4/c41303m.ada
! 71a865e9509e3725fd95b90ec715eaa7  gcc/testsuite/ada/acats/tests/c4/c41303n.ada
! 8981d1c2da09086d412019a04cc8c913  gcc/testsuite/ada/acats/tests/c4/c41303o.ada
! 2dda9c55735424d40aed9757f7a99849  gcc/testsuite/ada/acats/tests/c4/c41303q.ada
! e34e7a4a5a5ba93bc9916cceeaecc9e6  gcc/testsuite/ada/acats/tests/c4/c41303r.ada
! 7030e6ee5fb5761b449dbb4ff5a07765  gcc/testsuite/ada/acats/tests/c4/c41303s.ada
! d79eb627645d3853ea5140161ae28128  gcc/testsuite/ada/acats/tests/c4/c41303u.ada
! bb6f238e4a4ba7e7e7d4a81bc419e03c  gcc/testsuite/ada/acats/tests/c4/c41303v.ada
! 30d2340bbbbe2276772e1fb63e33b4ce  gcc/testsuite/ada/acats/tests/c4/c41303w.ada
! 98d29cda44e41c5ff7947a4026f5e44c  gcc/testsuite/ada/acats/tests/c4/c41304a.ada
! 185701022ded3608ce413730986fd29a  gcc/testsuite/ada/acats/tests/c4/c41304b.ada
! f0ef510c95f135851ebafc318405f773  gcc/testsuite/ada/acats/tests/c4/c41306a.ada
! 5dd0f98f04759d0b25f9631bb3f052ba  gcc/testsuite/ada/acats/tests/c4/c41306b.ada
! 58245b98892f05598c91a37cc2fa0cf7  gcc/testsuite/ada/acats/tests/c4/c41306c.ada
! 78cff154ce4ec882d604897c85256a6f  gcc/testsuite/ada/acats/tests/c4/c41307d.ada
! e4f57f60d8ab4020fa02081676cd97b1  gcc/testsuite/ada/acats/tests/c4/c41309a.ada
! 46615dd040a05118f00cf1a6c269abf8  gcc/testsuite/ada/acats/tests/c4/c41320a.ada
! c87207608b642d6c0770b2213faa6f37  gcc/testsuite/ada/acats/tests/c4/c41321a.ada
! a2f1c6ef57f73e8afee4331c2f6b8836  gcc/testsuite/ada/acats/tests/c4/c41322a.ada
! 5fe80e1ed0d397d7243803f3679b1dcf  gcc/testsuite/ada/acats/tests/c4/c41323a.ada
! 1b628d4729417b726825d3cc545cce88  gcc/testsuite/ada/acats/tests/c4/c41324a.ada
! 34bb464a9c0edf77ba3cf3f225f84fac  gcc/testsuite/ada/acats/tests/c4/c41325a.ada
! 9f472b4f812b18261355bfdb272afaf2  gcc/testsuite/ada/acats/tests/c4/c41326a.ada
! c79f530e375e47fc23508a767283386e  gcc/testsuite/ada/acats/tests/c4/c41327a.ada
! 9dbb72dcbb910f44662d1091a9dcff76  gcc/testsuite/ada/acats/tests/c4/c41328a.ada
! 0449520de7d65d45ed1daf5ca0e4569b  gcc/testsuite/ada/acats/tests/c4/c41401a.ada
! 20918a0804a04dce0cbb4d97b451bb81  gcc/testsuite/ada/acats/tests/c4/c41402a.ada
! 3d9dc352053f7bb2142de6aadd56af67  gcc/testsuite/ada/acats/tests/c4/c41404a.ada
! 3472f5561c379717f19af41f64bf38a3  gcc/testsuite/ada/acats/tests/c4/c420001.a
! 837ffbb47c098000329e8e489cfada64  gcc/testsuite/ada/acats/tests/c4/c42006a.ada
! 3930cedf9786c67a42558e65e855c7fd  gcc/testsuite/ada/acats/tests/c4/c42007e.ada
! fdfa37c01ec576b222ad3107e9e17cd2  gcc/testsuite/ada/acats/tests/c4/c43003a.ada
! 42c7528eba63811a5183af811bdf7a65  gcc/testsuite/ada/acats/tests/c4/c43004a.ada
! fdfe754e9fba94c879707660c35c89c4  gcc/testsuite/ada/acats/tests/c4/c43004c.ada
! d381bf2fc72e35825723db4655f3c38a  gcc/testsuite/ada/acats/tests/c4/c431001.a
! 841914115d2e37bfbd84574493c7019f  gcc/testsuite/ada/acats/tests/c4/c43103a.ada
! dd65d5f3b06487b888840af62334c5a5  gcc/testsuite/ada/acats/tests/c4/c43103b.ada
! 9e71b6045390013211406d2c1bfb4fba  gcc/testsuite/ada/acats/tests/c4/c43104a.ada
! 85abcc7f64ed7b42d6fd3f22c7daeb40  gcc/testsuite/ada/acats/tests/c4/c43105a.ada
! 4ed22cb91cfe0bda94598dd26ceb9c7c  gcc/testsuite/ada/acats/tests/c4/c43105b.ada
! baec9aa149293739f6e8ceac8325d7a0  gcc/testsuite/ada/acats/tests/c4/c43106a.ada
! 1d531018ee649629c5a7552829150451  gcc/testsuite/ada/acats/tests/c4/c43107a.ada
! 05a638c334196cb191ee5128a5996f23  gcc/testsuite/ada/acats/tests/c4/c43108a.ada
! 4ea1f6b615b7799500e7c6933df91e82  gcc/testsuite/ada/acats/tests/c4/c432001.a
! 1e73ca84bb526fa8947ec4278f0151ed  gcc/testsuite/ada/acats/tests/c4/c432002.a
! 6ec2ee48b603324015bd74c07d8eb9fb  gcc/testsuite/ada/acats/tests/c4/c432003.a
! 8e738d9db0574dd56f1158230f5caa4c  gcc/testsuite/ada/acats/tests/c4/c432004.a
! ee94ed306c9c2f72d0f353f3242a51db  gcc/testsuite/ada/acats/tests/c4/c43204a.ada
! e98c1830d22cb2c31e6c97a0f3d96ad7  gcc/testsuite/ada/acats/tests/c4/c43204c.ada
! f0b2f2ebf435459bab0ed10112cc18b6  gcc/testsuite/ada/acats/tests/c4/c43204e.ada
! 7e74d89a8654aef2ebf093dc84b24d10  gcc/testsuite/ada/acats/tests/c4/c43204f.ada
! b266b1d1eaefa26342ce7e3c0eb10f20  gcc/testsuite/ada/acats/tests/c4/c43204g.ada
! 119509db1b0027b3597be4ca5abbb5bb  gcc/testsuite/ada/acats/tests/c4/c43204h.ada
! 67b7aebfc7ddaa75b105ec0d3e496a27  gcc/testsuite/ada/acats/tests/c4/c43204i.ada
! 73152cdcaa60874a7dd488590fdf9d5c  gcc/testsuite/ada/acats/tests/c4/c43205a.ada
! 64f982d0a7b18107f1762424333a65d3  gcc/testsuite/ada/acats/tests/c4/c43205b.ada
! ac552917303ade3bcc90b97b15f26e94  gcc/testsuite/ada/acats/tests/c4/c43205c.ada
! fb0c33a9daed1c4f2a00c26e9de3c09c  gcc/testsuite/ada/acats/tests/c4/c43205d.ada
! d9e706d3db07df4098bbb0e033aed012  gcc/testsuite/ada/acats/tests/c4/c43205e.ada
! 4f3634691d02036c149cdd006248ffe1  gcc/testsuite/ada/acats/tests/c4/c43205g.ada
! 5c21ffd092ad83125d058e3179c4d1bf  gcc/testsuite/ada/acats/tests/c4/c43205h.ada
! bf224ac40af0ffe5b844895ae6ae977a  gcc/testsuite/ada/acats/tests/c4/c43205i.ada
! 80a79cdbdb7c8185dcf0428e7589a584  gcc/testsuite/ada/acats/tests/c4/c43205j.ada
! 7914df26e752133b470cdb5c585686bc  gcc/testsuite/ada/acats/tests/c4/c43205k.ada
! cbadb73b68d71709f2becaa6f356064c  gcc/testsuite/ada/acats/tests/c4/c43206a.ada
! 0fc8105e29d6d23a3a7ddd6510322795  gcc/testsuite/ada/acats/tests/c4/c43207b.ada
! 97244c88eb0cfebd12378341cddfcf4f  gcc/testsuite/ada/acats/tests/c4/c43207d.ada
! f288bdf0f019b0e6deea7f364629093d  gcc/testsuite/ada/acats/tests/c4/c43208a.ada
! 70aa5e04e1aa2e8f2ffff319c6cc960a  gcc/testsuite/ada/acats/tests/c4/c43208b.ada
! 36f70dc294058acb31101eb9c245937b  gcc/testsuite/ada/acats/tests/c4/c43209a.ada
! 31cacbf3a20b821f6eb8f1d74586a51b  gcc/testsuite/ada/acats/tests/c4/c43210a.ada
! 54b7270b96a5d5519d2358a1b98bf7af  gcc/testsuite/ada/acats/tests/c4/c43211a.ada
! a692660520b9e289a7f0ae27c6d52494  gcc/testsuite/ada/acats/tests/c4/c43212a.ada
! c43685e66248fa05c959fb5d231800a7  gcc/testsuite/ada/acats/tests/c4/c43212c.ada
! 9427f327bd00f1850a52dc14567dbf4e  gcc/testsuite/ada/acats/tests/c4/c43214a.ada
! 2b1a3e33f54f7510083e41b401c3befb  gcc/testsuite/ada/acats/tests/c4/c43214b.ada
! 579da18e7294b44fdfc2fb550cccdbf3  gcc/testsuite/ada/acats/tests/c4/c43214c.ada
! 506424b9dbd9ff75e61b488ce4a5879e  gcc/testsuite/ada/acats/tests/c4/c43214d.ada
! 02fcbb175ddd0a1d8c5564d22bf12428  gcc/testsuite/ada/acats/tests/c4/c43214e.ada
! 34cd6d7cf5c8038e227dde683b30b50f  gcc/testsuite/ada/acats/tests/c4/c43214f.ada
! ab7bedd7c7899bfe816d9a4b9ac394d4  gcc/testsuite/ada/acats/tests/c4/c43215a.ada
! 90e0f447154023e2eab627e883738386  gcc/testsuite/ada/acats/tests/c4/c43215b.ada
! f0098152f11a322c39c1479f279dc3d7  gcc/testsuite/ada/acats/tests/c4/c43222a.ada
! bf1baa8817f6afb1d613db2046cb78de  gcc/testsuite/ada/acats/tests/c4/c43224a.ada
! 1e8e32f41f79462323a2f9d9c83d7939  gcc/testsuite/ada/acats/tests/c4/c433001.a
! 196c158a32a4bc1774a4d934b1a6632e  gcc/testsuite/ada/acats/tests/c4/c44003d.ada
! bf440c6d6ead3b13b20d4e127607337e  gcc/testsuite/ada/acats/tests/c4/c44003f.ada
! 2f9030320131a08536fa11fa1a117664  gcc/testsuite/ada/acats/tests/c4/c44003g.ada
! 62ba7a9a25d025dad4ded263e64d8380  gcc/testsuite/ada/acats/tests/c4/c450001.a
! b3687aae227c95d084c9f685c9ca4c80  gcc/testsuite/ada/acats/tests/c4/c45112a.ada
! c7c3ba0d233fb51ade68d7651dd47189  gcc/testsuite/ada/acats/tests/c4/c45112b.ada
! 49306dfa2cb372d1d65b4dd7a47c19e5  gcc/testsuite/ada/acats/tests/c4/c45113a.ada
! aa0781fb6f24f86504e59a47cf77b3d6  gcc/testsuite/ada/acats/tests/c4/c45114b.ada
! f718c72a25e47da1540690be5ff953da  gcc/testsuite/ada/acats/tests/c4/c452001.a
! 20ba3c7cde16d8bed844c4e64cd33e56  gcc/testsuite/ada/acats/tests/c4/c45201a.ada
! 6d4a1adb58c6e8ef73b34a324604ede4  gcc/testsuite/ada/acats/tests/c4/c45201b.ada
! 72aed4b6ea2fe7dfc0a9fdf3bede3751  gcc/testsuite/ada/acats/tests/c4/c45202b.ada
! 84d744855e2972095386f0e272333a6a  gcc/testsuite/ada/acats/tests/c4/c45210a.ada
! 91f826ce1d8f6889145f46e4c0ccada9  gcc/testsuite/ada/acats/tests/c4/c45211a.ada
! fe9117190ab93e4bd66b4015bb5cdba1  gcc/testsuite/ada/acats/tests/c4/c45220a.ada
! 6912810853452af0c8935cfd387c8df5  gcc/testsuite/ada/acats/tests/c4/c45220b.ada
! b394f131a9012e7c03cfd9636d737e6d  gcc/testsuite/ada/acats/tests/c4/c45220c.ada
! ccf331c469a0927819e1eb56e4e00429  gcc/testsuite/ada/acats/tests/c4/c45220d.ada
! 88d3a9ace4677cd3c025906371d2beeb  gcc/testsuite/ada/acats/tests/c4/c45220e.ada
! bba84a4055dd7c551f067e52bbe462e1  gcc/testsuite/ada/acats/tests/c4/c45220f.ada
! c13eaf9a516abfe2b6beda77dc2e3911  gcc/testsuite/ada/acats/tests/c4/c45231a.ada
! 2cca7d5fea02ce521f28a33db34ffa3d  gcc/testsuite/ada/acats/tests/c4/c45231b.dep
! 1bee766d69082269378c86e19c8abe85  gcc/testsuite/ada/acats/tests/c4/c45231c.dep
! a1bdfcd8a7def7dd624d3536e8905d30  gcc/testsuite/ada/acats/tests/c4/c45231d.tst
! 911d91bbd63a8c74f621846268c3e576  gcc/testsuite/ada/acats/tests/c4/c45232b.ada
! 4de95534392888683c8404eeeed6cc46  gcc/testsuite/ada/acats/tests/c4/c45242b.ada
! f2b98c822abe0cd6885e5b49561ac387  gcc/testsuite/ada/acats/tests/c4/c45251a.ada
! 94a924601ada615360bec26fb5450efb  gcc/testsuite/ada/acats/tests/c4/c45252a.ada
! debd13ddcb22bdcbb8a02c69693b66f8  gcc/testsuite/ada/acats/tests/c4/c45252b.ada
! ac031704393af45bbba41661aa36f2aa  gcc/testsuite/ada/acats/tests/c4/c45253a.ada
! fc9f55680d3672e261c2346c11b8ac30  gcc/testsuite/ada/acats/tests/c4/c45262a.ada
! c4104ba41f3003933d2540d2f946ba70  gcc/testsuite/ada/acats/tests/c4/c45262b.ada
! 8b9cb8019cc36523ada4859ea4a5d16a  gcc/testsuite/ada/acats/tests/c4/c45262c.ada
! d03448ead4d0effaab3998536c97bf20  gcc/testsuite/ada/acats/tests/c4/c45262d.ada
! f5c2479fb34a68704e8a8cc34f61a360  gcc/testsuite/ada/acats/tests/c4/c45264a.ada
! b5849bcd08a3c2d9a5d0c2b9e7a3cddd  gcc/testsuite/ada/acats/tests/c4/c45264b.ada
! 8f21912f6834298744357d557cb137f0  gcc/testsuite/ada/acats/tests/c4/c45264c.ada
! adc3cff25d9a3d6a8177af01212d7415  gcc/testsuite/ada/acats/tests/c4/c45265a.ada
! c4c6e9f92d1c15ec8a4b8f04c34a693f  gcc/testsuite/ada/acats/tests/c4/c45271a.ada
! c72a97f0fec20bbb08fc4517b6ddc788  gcc/testsuite/ada/acats/tests/c4/c45272a.ada
! 6b2a1a4bc714bd568da120c02fbf1702  gcc/testsuite/ada/acats/tests/c4/c45273a.ada
! b79ca71dc3632b190bdef98c6e0d142b  gcc/testsuite/ada/acats/tests/c4/c45274a.ada
! 9855409d4983ad2c1546e338fcbd0706  gcc/testsuite/ada/acats/tests/c4/c45274b.ada
! 435926faf09e9e479e1b1f272c13a333  gcc/testsuite/ada/acats/tests/c4/c45274c.ada
! 9115b9a51b29cec2f4c9ff1428f5a615  gcc/testsuite/ada/acats/tests/c4/c45281a.ada
! ecfe4965aad0d9bc1dc0dea01acceae3  gcc/testsuite/ada/acats/tests/c4/c45282a.ada
! 52a7cd2f9612b968a81d14f925d96de2  gcc/testsuite/ada/acats/tests/c4/c45282b.ada
! b3bd1b305af20f17ece9aabad0feaef1  gcc/testsuite/ada/acats/tests/c4/c45291a.ada
! c8d3cf99b5249db2c22ec520cb247e14  gcc/testsuite/ada/acats/tests/c4/c453001.a
! eaeb6ce37e830b736db8d34c6a83bb7d  gcc/testsuite/ada/acats/tests/c4/c45303a.ada
! f1ec15c9cdb65dbf13e1375cf7996f12  gcc/testsuite/ada/acats/tests/c4/c45304a.ada
! 55a19685b3e235e5bb6750cb9d7df962  gcc/testsuite/ada/acats/tests/c4/c45304b.dep
! b4c45f68d1219b0b994968a9828a7b17  gcc/testsuite/ada/acats/tests/c4/c45304c.dep
! 20fb36abf27afac504d4a771e7e63fd0  gcc/testsuite/ada/acats/tests/c4/c45322a.ada
! fab8bce97e1b74f5541c43ebbc38c44b  gcc/testsuite/ada/acats/tests/c4/c45323a.ada
! 0f09ca069bcacb950f308b51658fe4cf  gcc/testsuite/ada/acats/tests/c4/c45331a.ada
! 923c0cd8bc5f7a54a3ff10b7ecd3ae30  gcc/testsuite/ada/acats/tests/c4/c45342a.ada
! 4c687d4debfb2858cbde8d0598741375  gcc/testsuite/ada/acats/tests/c4/c45343a.ada
! fced8cf133a6e38c1bd3f44b383050a5  gcc/testsuite/ada/acats/tests/c4/c45344a.ada
! 046bf7cdbb7aeb33cdf0c17abb97726b  gcc/testsuite/ada/acats/tests/c4/c45345b.ada
! 1b975a926de8c5e1c1a8fd844dbfa809  gcc/testsuite/ada/acats/tests/c4/c45347a.ada
! 5c3a11fd88252878ac174be55d9cbe23  gcc/testsuite/ada/acats/tests/c4/c45347b.ada
! e7b0eaf3fab48f0c61a33030a45c9625  gcc/testsuite/ada/acats/tests/c4/c45347c.ada
! 5862189030beeea86b9e0d08e37c5f1a  gcc/testsuite/ada/acats/tests/c4/c45347d.ada
! 5a4ad439614a0b55cdeae637fcef3913  gcc/testsuite/ada/acats/tests/c4/c45411a.ada
! b55c932d505fe19faf48b3854f91bf92  gcc/testsuite/ada/acats/tests/c4/c45411b.dep
! cc45fca3dbdc169c3f8a8d219a8f3885  gcc/testsuite/ada/acats/tests/c4/c45411c.dep
! 92372898586e4be4330d20dabffa9b47  gcc/testsuite/ada/acats/tests/c4/c45411d.ada
! fdb465fedee3ebd743401e0c8899b0ce  gcc/testsuite/ada/acats/tests/c4/c45413a.ada
! fbd34bfae4961dda3c3e39ae18565fc8  gcc/testsuite/ada/acats/tests/c4/c45431a.ada
! bda2b940e9dc2584f9295b05e0c20b0f  gcc/testsuite/ada/acats/tests/c4/c455001.a
! 87ea1f3d7a54b6c25dba44fd5a571baa  gcc/testsuite/ada/acats/tests/c4/c45502b.dep
! 5a774d039f16514bc6a77bcf387d50ec  gcc/testsuite/ada/acats/tests/c4/c45502c.dep
! cc87ae3a223cabfed863304f12752609  gcc/testsuite/ada/acats/tests/c4/c45503a.ada
! dcadc5c668c2ff77de523cb7dba5b36a  gcc/testsuite/ada/acats/tests/c4/c45503b.dep
! 611398c2ae165df5a3f7381f660f52a0  gcc/testsuite/ada/acats/tests/c4/c45503c.dep
! f89268db15e37b030991c3827ca26c3e  gcc/testsuite/ada/acats/tests/c4/c45504a.ada
! f0cdb8c22aab2695a23fd98a373755b2  gcc/testsuite/ada/acats/tests/c4/c45504b.dep
! b8b4e008dfce1ee201519835a1fa50b8  gcc/testsuite/ada/acats/tests/c4/c45504c.dep
! ce29dbe3d5204283efb96dbcdfd5aac5  gcc/testsuite/ada/acats/tests/c4/c45504d.ada
! 10c91d5e233ba13218dcd66fb790a7be  gcc/testsuite/ada/acats/tests/c4/c45504e.dep
! 92f6aea3aed6ba9df5385c22f904ba43  gcc/testsuite/ada/acats/tests/c4/c45504f.dep
! 0059f05c198e829fac48965c13f56c08  gcc/testsuite/ada/acats/tests/c4/c45505a.ada
! 47a4e48ddd2b3df3c7eb949e7d6692a8  gcc/testsuite/ada/acats/tests/c4/c45523a.ada
! 17fdb2a59175aad9fef05c8cab8509e5  gcc/testsuite/ada/acats/tests/c4/c45531a.ada
! b8d549a63a2c40e579c8ed0a817ba1b3  gcc/testsuite/ada/acats/tests/c4/c45531b.ada
! c131684e4763854670c42c2112418109  gcc/testsuite/ada/acats/tests/c4/c45531c.ada
! c584d6f3f281816f1bd157cd8cc6b33a  gcc/testsuite/ada/acats/tests/c4/c45531d.ada
! 29ba7e7c1042d7979b1c75938b61e862  gcc/testsuite/ada/acats/tests/c4/c45531e.ada
! 47ea14530564cd8e06520e03e074efb3  gcc/testsuite/ada/acats/tests/c4/c45531f.ada
! 974ec868d7bcf66f2a14b7a4e70541b0  gcc/testsuite/ada/acats/tests/c4/c45531g.ada
! be8ef1a126f5c01246a9b635558e69ed  gcc/testsuite/ada/acats/tests/c4/c45531h.ada
! a795638c4621469321aa1212fd6bc01b  gcc/testsuite/ada/acats/tests/c4/c45531i.ada
! 8e8dbc1f05d26be72eaaaaca136d57b8  gcc/testsuite/ada/acats/tests/c4/c45531j.ada
! f7420a86d16f0dda550ad66d998500fa  gcc/testsuite/ada/acats/tests/c4/c45531k.ada
! de637dfbdf31186f46f1f622a7b31d52  gcc/testsuite/ada/acats/tests/c4/c45531l.ada
! 991294aff87680d765e6feb5cca5b1b5  gcc/testsuite/ada/acats/tests/c4/c45531m.dep
! 0494b2e93ef765b57a27be6b00246238  gcc/testsuite/ada/acats/tests/c4/c45531n.dep
! be4ab72a6216470b4aa0865525f98461  gcc/testsuite/ada/acats/tests/c4/c45531o.dep
! bb7d5366acda158c30e39d3074242262  gcc/testsuite/ada/acats/tests/c4/c45531p.dep
! 1328509e95f292ea980a979dedb08b47  gcc/testsuite/ada/acats/tests/c4/c45532a.ada
! 59f6ce63685d98c434d1a7af9b67d1f3  gcc/testsuite/ada/acats/tests/c4/c45532b.ada
! fe5a8b5f9204d89a9d208c19a93b7bbf  gcc/testsuite/ada/acats/tests/c4/c45532c.ada
! b60deea143add2ece22c54e2958db126  gcc/testsuite/ada/acats/tests/c4/c45532d.ada
! dac58571992e1d76d98508be3cbe2bd6  gcc/testsuite/ada/acats/tests/c4/c45532e.ada
! 1d7df94c7041a350156a66e67466f094  gcc/testsuite/ada/acats/tests/c4/c45532f.ada
! 98b8e00c4f5a9bb275a8ea343272d444  gcc/testsuite/ada/acats/tests/c4/c45532g.ada
! 715b35f0ab3ff72859527fd1dce01194  gcc/testsuite/ada/acats/tests/c4/c45532h.ada
! 6f5e0c33dee8484fe564f99b4aa53644  gcc/testsuite/ada/acats/tests/c4/c45532i.ada
! 4ff1755309ac898b71b5b8e71ed4a3b6  gcc/testsuite/ada/acats/tests/c4/c45532j.ada
! 6c58481cb99358f459163a20d20ecd7c  gcc/testsuite/ada/acats/tests/c4/c45532k.ada
! c77d0519f01191df9cdfba659466ec04  gcc/testsuite/ada/acats/tests/c4/c45532l.ada
! d2858511889a915c130e7db15a855e6a  gcc/testsuite/ada/acats/tests/c4/c45532m.dep
! a549269ed45783ccf0d0c93c5328f429  gcc/testsuite/ada/acats/tests/c4/c45532n.dep
! f4b1217bc94832f638629b8949b7def2  gcc/testsuite/ada/acats/tests/c4/c45532o.dep
! 798f26e21ededa5b524a77eeece6382f  gcc/testsuite/ada/acats/tests/c4/c45532p.dep
! 76101d98b4fab21c843f8c72a2bd9d19  gcc/testsuite/ada/acats/tests/c4/c45534b.ada
! b8ae84ef022a3c5728e841755e4bac5e  gcc/testsuite/ada/acats/tests/c4/c45536a.dep
! 28591d736802ebfac3f139de9f8cf2e7  gcc/testsuite/ada/acats/tests/c4/c456001.a
! bc49b87b69b7e8faefa883dc0c55fb68  gcc/testsuite/ada/acats/tests/c4/c45611a.ada
! 3be40e2b85d211f880f0c3afd51a63e8  gcc/testsuite/ada/acats/tests/c4/c45611b.dep
! 969e8cbd817e50baf599dd80133f7e3d  gcc/testsuite/ada/acats/tests/c4/c45611c.dep
! 48d114a182e767e243d7ef95e93e4e19  gcc/testsuite/ada/acats/tests/c4/c45613a.ada
! c3d80667bb998de0b21993ea73edabec  gcc/testsuite/ada/acats/tests/c4/c45613b.dep
! f8ed3027af651e8a9c09b39c0abf883c  gcc/testsuite/ada/acats/tests/c4/c45613c.dep
! cfe72bc879be3b00ef382558884d4b1d  gcc/testsuite/ada/acats/tests/c4/c45614a.ada
! c49e020a85a8868eed26fc38aaab04bf  gcc/testsuite/ada/acats/tests/c4/c45614b.dep
! 41f7a3468254617c1e8fd2e5932a25b4  gcc/testsuite/ada/acats/tests/c4/c45614c.dep
! ac5d52f05c31abf886e8c8c4468e3276  gcc/testsuite/ada/acats/tests/c4/c45631a.ada
! 08c1f1a469e3e9753825625f1a28b1ea  gcc/testsuite/ada/acats/tests/c4/c45631b.dep
! 3d90d62c311cc7457e997be47d4bc90b  gcc/testsuite/ada/acats/tests/c4/c45631c.dep
! 2f244bf1111e453d24ff570db3165fdb  gcc/testsuite/ada/acats/tests/c4/c45632a.ada
! 3e3d1f108ceb3c5be9dad7868239132f  gcc/testsuite/ada/acats/tests/c4/c45632b.dep
! d562e6283ca6c800b69581c080526e08  gcc/testsuite/ada/acats/tests/c4/c45632c.dep
! 2057dc7ea5393bc4be1493fb108ee5fb  gcc/testsuite/ada/acats/tests/c4/c45651a.ada
! c6892aa7717ffbd54f697e3d5db788af  gcc/testsuite/ada/acats/tests/c4/c45662a.ada
! a04b5f03883d1f148e66d75bb8eb5a69  gcc/testsuite/ada/acats/tests/c4/c45662b.ada
! ebd6cdab4f3e678623c2ece9ee770d5e  gcc/testsuite/ada/acats/tests/c4/c45672a.ada
! ac5adcf11bac18511d0fcfabda779d68  gcc/testsuite/ada/acats/tests/c4/c460001.a
! afb5f92407f4912f75eeaef16084757f  gcc/testsuite/ada/acats/tests/c4/c460002.a
! 69401711fe089c368e9218ac971b8e5a  gcc/testsuite/ada/acats/tests/c4/c460004.a
! f7f9cde65ac6273493f88f7cc35065c2  gcc/testsuite/ada/acats/tests/c4/c460005.a
! e0ce32e221b728a5e7cbef5d66bdb49b  gcc/testsuite/ada/acats/tests/c4/c460006.a
! ec69fdc3a65a761d8134bc49e6570216  gcc/testsuite/ada/acats/tests/c4/c460007.a
! 8b03807b80d9f2edc57ad06734bf670f  gcc/testsuite/ada/acats/tests/c4/c460008.a
! 6950bb628b3003b1ceb3b53e6cf246f8  gcc/testsuite/ada/acats/tests/c4/c460009.a
! 5bc44a3344b33409dd851c6b03e885b7  gcc/testsuite/ada/acats/tests/c4/c460010.a
! f62a801d63af2b71a0b6fc1ab47ef7e7  gcc/testsuite/ada/acats/tests/c4/c460011.a
! a2898cc40c52d07d2a1d5f39c8daae42  gcc/testsuite/ada/acats/tests/c4/c460012.a
! 41b9bdba491afbeb94cec249b368498b  gcc/testsuite/ada/acats/tests/c4/c460013.a
! 8caad81fc1b11cdf36c43c5366ffe8c4  gcc/testsuite/ada/acats/tests/c4/c460014.a
! 4578ba3cbcc42767bfa1d9fb8beed52f  gcc/testsuite/ada/acats/tests/c4/c46011a.ada
! 573e5b85d6d0d9289787bcf7f265aea9  gcc/testsuite/ada/acats/tests/c4/c46013a.ada
! ad32d1cce692c7cd1ef8bf3d2f70dee2  gcc/testsuite/ada/acats/tests/c4/c46014a.ada
! 3860375240c7fbeec5ea607c60613d17  gcc/testsuite/ada/acats/tests/c4/c46021a.ada
! 6ca67808bea0b36f928ece90dac5570f  gcc/testsuite/ada/acats/tests/c4/c46024a.ada
! 846bd637f5220b864dde4f2ea9ac8025  gcc/testsuite/ada/acats/tests/c4/c46031a.ada
! 362f593ed41bfc3cc23925318952cbc7  gcc/testsuite/ada/acats/tests/c4/c46032a.ada
! 65b59a01caacc42c4057aa1adad39e9c  gcc/testsuite/ada/acats/tests/c4/c46033a.ada
! bc9fedd5661dbda9254ef00f93819e37  gcc/testsuite/ada/acats/tests/c4/c46041a.ada
! dd2bc24443f9516af6adaf665228f9fb  gcc/testsuite/ada/acats/tests/c4/c46042a.ada
! cc5cd66068669bee0635ba7d5d5b9e4b  gcc/testsuite/ada/acats/tests/c4/c46043b.ada
! 862e92acebb016f9eaff87800084fb00  gcc/testsuite/ada/acats/tests/c4/c46044b.ada
! 8704bc96d1d99d958dd9ba580cc0fcab  gcc/testsuite/ada/acats/tests/c4/c46051a.ada
! 4301c097675c9ae1e1de85cb434e9f91  gcc/testsuite/ada/acats/tests/c4/c46051b.ada
! 0852a062d8fb5318db0fafb3e74e1869  gcc/testsuite/ada/acats/tests/c4/c46051c.ada
! 207b83887faae118af7863a8e7c8b797  gcc/testsuite/ada/acats/tests/c4/c46052a.ada
! 36ddef6a40e98fa6f687083359dcc79c  gcc/testsuite/ada/acats/tests/c4/c46053a.ada
! 7c918ea610224feb8290e7538e4931c0  gcc/testsuite/ada/acats/tests/c4/c46054a.ada
! dcaaa25c241dbab83f2031ac8a166ad0  gcc/testsuite/ada/acats/tests/c4/c460a01.a
! c9d756313dbe8edba8cd79f261be675b  gcc/testsuite/ada/acats/tests/c4/c460a02.a
! 8453f66003fadf1256272c8267ac59fe  gcc/testsuite/ada/acats/tests/c4/c47002a.ada
! a1a15e98aa414e9e0f6c684cc5fc7d3d  gcc/testsuite/ada/acats/tests/c4/c47002b.ada
! 52b6ce3f1ece2252097d9cf94ff704d8  gcc/testsuite/ada/acats/tests/c4/c47002c.ada
! 1b3f120455d714443fa2b8a6510141b3  gcc/testsuite/ada/acats/tests/c4/c47002d.ada
! e24d41d29f205af082effc4960aabff2  gcc/testsuite/ada/acats/tests/c4/c47003a.ada
! 676bb791325a2ce2931c822d1ba079e8  gcc/testsuite/ada/acats/tests/c4/c47004a.ada
! 5768cda2bc4788bb66c01ffbbe818333  gcc/testsuite/ada/acats/tests/c4/c47005a.ada
! 7180522de8601bc47eada08923197c21  gcc/testsuite/ada/acats/tests/c4/c47006a.ada
! 0866501ce0f4c5ac19a1a6701494acf1  gcc/testsuite/ada/acats/tests/c4/c47007a.ada
! f190b1e58c5b9f88edb7c62cc786a5ff  gcc/testsuite/ada/acats/tests/c4/c47008a.ada
! a83ffa688fac3d8d28808297d6c1f8af  gcc/testsuite/ada/acats/tests/c4/c47009a.ada
! 7e410443d7fee4c5025000324c9fa075  gcc/testsuite/ada/acats/tests/c4/c47009b.ada
! bc1787b8c3d0a2828cd39079641a7ae3  gcc/testsuite/ada/acats/tests/c4/c48004a.ada
! 35a79d509102b6efc374a823e03081dd  gcc/testsuite/ada/acats/tests/c4/c48004b.ada
! 520b577b8b19f3e983fa89ee6a4feae4  gcc/testsuite/ada/acats/tests/c4/c48004c.ada
! 4a4dc141e6c0b8734f2f4889a453c041  gcc/testsuite/ada/acats/tests/c4/c48004d.ada
! e1de901127f9fa068bbc1887e40ae286  gcc/testsuite/ada/acats/tests/c4/c48004e.ada
! a21a603107226dd95249e796c50b2988  gcc/testsuite/ada/acats/tests/c4/c48004f.ada
! d05127b0bccfaca8e70b371616b9e949  gcc/testsuite/ada/acats/tests/c4/c48005a.ada
! 93f4d6e87a4f9f685f9aad61502c858c  gcc/testsuite/ada/acats/tests/c4/c48005b.ada
! 794d0af908f9931f0b089116f1e42907  gcc/testsuite/ada/acats/tests/c4/c48006a.ada
! 3df923c9af6683c1bb48881ddb41ddfb  gcc/testsuite/ada/acats/tests/c4/c48006b.ada
! a6c0f722acc9486a7e600dc96ff2d5cd  gcc/testsuite/ada/acats/tests/c4/c48007a.ada
! b2751238701befe768d059585cb34fbe  gcc/testsuite/ada/acats/tests/c4/c48007b.ada
! a069ec763e24859fbddc4f107e410c11  gcc/testsuite/ada/acats/tests/c4/c48007c.ada
! 009ebc3b69f9c31aa88c54a85271399a  gcc/testsuite/ada/acats/tests/c4/c48008a.ada
! 5782d3eeb5e00949ec2f3c7a7ae59650  gcc/testsuite/ada/acats/tests/c4/c48008c.ada
! 36b2b00fc2eaa55063b74bfc4cb91c79  gcc/testsuite/ada/acats/tests/c4/c48009a.ada
! d7356de4b25053ff97c5d99c7daa90a2  gcc/testsuite/ada/acats/tests/c4/c48009b.ada
! 46e9f0e1b269b6b499944395221ae145  gcc/testsuite/ada/acats/tests/c4/c48009c.ada
! 99e82e54208e5f2e641da892789ade00  gcc/testsuite/ada/acats/tests/c4/c48009d.ada
! a4dd405fd63b81dac153b62e7df858e9  gcc/testsuite/ada/acats/tests/c4/c48009e.ada
! a761ea12752cc1827d795f510ed14854  gcc/testsuite/ada/acats/tests/c4/c48009f.ada
! f4d13322456cdc5177a9641ba263e997  gcc/testsuite/ada/acats/tests/c4/c48009g.ada
! 9b3d09b25afb28f96e9c15abc9134ea5  gcc/testsuite/ada/acats/tests/c4/c48009h.ada
! 5ed239b238e9da030fa1d1bbf81e4dc3  gcc/testsuite/ada/acats/tests/c4/c48009i.ada
! dbe1181c1fb1c91cdfc5d5a51327b289  gcc/testsuite/ada/acats/tests/c4/c48009j.ada
! 688a1e8190cac3b78936f0235d3b808d  gcc/testsuite/ada/acats/tests/c4/c48010a.ada
! 48a6ec9afe098c7d148a0d1f652be09e  gcc/testsuite/ada/acats/tests/c4/c48011a.ada
! 18db6e638dc720b6501696a26aa99e58  gcc/testsuite/ada/acats/tests/c4/c48012a.ada
! b30035b53424a29691b261dda34fc58e  gcc/testsuite/ada/acats/tests/c4/c490001.a
! 489ea02e3356b5145fb51c63bb474ea5  gcc/testsuite/ada/acats/tests/c4/c490002.a
! c9523cc2889cfcde83e23c042eedd694  gcc/testsuite/ada/acats/tests/c4/c490003.a
! 6f98fb5a40e92d1a16d6c2a144d613a5  gcc/testsuite/ada/acats/tests/c4/c49020a.ada
! 949b858aea6369cc5f6b92e57a36762e  gcc/testsuite/ada/acats/tests/c4/c49021a.ada
! 61eb9a59008479c0875739f8a38a6058  gcc/testsuite/ada/acats/tests/c4/c49022a.ada
! 371d9a00cb41f67a40d255081149947a  gcc/testsuite/ada/acats/tests/c4/c49022b.ada
! 6cbf71a7cecd0227501309baf6e99545  gcc/testsuite/ada/acats/tests/c4/c49022c.ada
! ae09e5339a3f4903f8fa5d11de07d714  gcc/testsuite/ada/acats/tests/c4/c49023a.ada
! e2d3c0d182fcc8306bf82e940cacf1c0  gcc/testsuite/ada/acats/tests/c4/c49024a.ada
! fa1107ef6dfef6a91126632e0fd40ac9  gcc/testsuite/ada/acats/tests/c4/c49025a.ada
! 8308838bc1d5d9801f0aba7872873b2e  gcc/testsuite/ada/acats/tests/c4/c49026a.ada
! 67dd3195321fffe06e278c7a2dd46fb7  gcc/testsuite/ada/acats/tests/c4/c4a005b.ada
! b4f6152a06508643187aed55fe1b066d  gcc/testsuite/ada/acats/tests/c4/c4a006a.ada
! 5eddb402835a4195abec99f2970765f6  gcc/testsuite/ada/acats/tests/c4/c4a007a.tst
! 1c61fe192df4f7bf89c81bd93f979629  gcc/testsuite/ada/acats/tests/c4/c4a010a.ada
! db5b09d1af5f03cbfc83813c6cef98d9  gcc/testsuite/ada/acats/tests/c4/c4a010b.ada
! 8ea93dd812f5645ad034052c5e9c14bc  gcc/testsuite/ada/acats/tests/c4/c4a011a.ada
! d8a1f20f1b4a1339f232102f757a12c6  gcc/testsuite/ada/acats/tests/c4/c4a012b.ada
! df1956d8e1bdb8b421d8edda86514e73  gcc/testsuite/ada/acats/tests/c4/c4a013a.ada
! f95cf7fe1c6669b86824c685ca90c44f  gcc/testsuite/ada/acats/tests/c4/c4a014a.ada
! 04305b71fc4860700405904b070a802b  gcc/testsuite/ada/acats/tests/c5/c51004a.ada
! c6f0f59f33111f1bb049c5f25022c725  gcc/testsuite/ada/acats/tests/c5/c52005a.ada
! 4497fa9cc187eebee09f422eb12067f6  gcc/testsuite/ada/acats/tests/c5/c52005b.ada
! 31714495e63b10120b8239b0456549ee  gcc/testsuite/ada/acats/tests/c5/c52005c.ada
! c643f87a63f83ab7dedfa0b4647174c9  gcc/testsuite/ada/acats/tests/c5/c52005d.ada
! a717ed0d0e4578d9b1ba1e84a1312d88  gcc/testsuite/ada/acats/tests/c5/c52005e.ada
! e9e335b018c1995e8f516236efc80a20  gcc/testsuite/ada/acats/tests/c5/c52005f.ada
! c475aae75de9114facd3aaa775556697  gcc/testsuite/ada/acats/tests/c5/c52008a.ada
! 87cbbe1931b5cfdb29756f338e098ee1  gcc/testsuite/ada/acats/tests/c5/c52008b.ada
! 67bb5622435b51d6b7a862890b654771  gcc/testsuite/ada/acats/tests/c5/c52009a.ada
! 400c804c17dce5b2cbc92e00f53bdbf7  gcc/testsuite/ada/acats/tests/c5/c52009b.ada
! d656f6cd000039c412836d5baacbff52  gcc/testsuite/ada/acats/tests/c5/c52010a.ada
! 1f26091c9bf683f6970689d5d0980a81  gcc/testsuite/ada/acats/tests/c5/c52011a.ada
! bd17088998a5ebb4a8a3f1ae8ed0fb56  gcc/testsuite/ada/acats/tests/c5/c52011b.ada
! 497212d2daf8375937c749ee7ebcc2df  gcc/testsuite/ada/acats/tests/c5/c52101a.ada
! d79452ecad6774f7462778af7f7ce5eb  gcc/testsuite/ada/acats/tests/c5/c52102a.ada
! c3ffbc3a8172219b7b11be58eb4ee73d  gcc/testsuite/ada/acats/tests/c5/c52102b.ada
! d8b031579b48e0bae598c821fc7f2799  gcc/testsuite/ada/acats/tests/c5/c52102c.ada
! 8545078e881db7a6a84e41583799ee5d  gcc/testsuite/ada/acats/tests/c5/c52102d.ada
! 348fad1e9e6e04b677fd7d942e3416af  gcc/testsuite/ada/acats/tests/c5/c52103a.ada
! 537e555773a4e758b8466c079c2023a1  gcc/testsuite/ada/acats/tests/c5/c52103b.ada
! c118c8520f99ad57e36a1e1ed0ab2549  gcc/testsuite/ada/acats/tests/c5/c52103c.ada
! 161ca114e3549ca32b6abc801f74633d  gcc/testsuite/ada/acats/tests/c5/c52103f.ada
! 553aa64efc629783fc32ef6b352ae6be  gcc/testsuite/ada/acats/tests/c5/c52103g.ada
! 29498cb969386c5b69bd6ba62c7be406  gcc/testsuite/ada/acats/tests/c5/c52103h.ada
! 8026673b1e67673c009f39e569ae1a3e  gcc/testsuite/ada/acats/tests/c5/c52103k.ada
! c6b31cf4833909c9d4dae839511863ec  gcc/testsuite/ada/acats/tests/c5/c52103l.ada
! 6843840acb3dee1ae11cf9365156daaa  gcc/testsuite/ada/acats/tests/c5/c52103m.ada
! 70a2f3db7206a779a035e915788f37f0  gcc/testsuite/ada/acats/tests/c5/c52103p.ada
! a28a2bdec6b574435427b9aeb1c74945  gcc/testsuite/ada/acats/tests/c5/c52103q.ada
! 7b9ecdaf00c3655bb24701195d08a83f  gcc/testsuite/ada/acats/tests/c5/c52103r.ada
! 0c814953f2bf8472a62eb44838f04363  gcc/testsuite/ada/acats/tests/c5/c52103x.ada
! e772fcfb1386e00244d4b143524cc196  gcc/testsuite/ada/acats/tests/c5/c52104a.ada
! 16ef5ba633cf0703eef0f4bc4e6a931e  gcc/testsuite/ada/acats/tests/c5/c52104b.ada
! 0d83ec342af202df515bd811d311775e  gcc/testsuite/ada/acats/tests/c5/c52104c.ada
! 63ba1297346e75dcba0a5bebb9fd7feb  gcc/testsuite/ada/acats/tests/c5/c52104f.ada
! 360c84a7d7a20d6426f39f47175e9e61  gcc/testsuite/ada/acats/tests/c5/c52104g.ada
! 8c2507e3ca68c72c1b2e6d6e118ec32b  gcc/testsuite/ada/acats/tests/c5/c52104h.ada
! 3eb7315199feb380e4633e0fa784d0dc  gcc/testsuite/ada/acats/tests/c5/c52104k.ada
! 1e9c8d887474d4edd8e8cef2ca34972f  gcc/testsuite/ada/acats/tests/c5/c52104l.ada
! 4cd7ce90121345b41e548625afd89238  gcc/testsuite/ada/acats/tests/c5/c52104m.ada
! bb14b1ee179559762fe853803c6f47a0  gcc/testsuite/ada/acats/tests/c5/c52104p.ada
! 11c63d2f8a8f5be641d543c723d95db6  gcc/testsuite/ada/acats/tests/c5/c52104q.ada
! 3e89a5e299b2f10a8bfdddda7e51ad94  gcc/testsuite/ada/acats/tests/c5/c52104r.ada
! cf3c9c7c07a47d92020285624997c09f  gcc/testsuite/ada/acats/tests/c5/c52104x.ada
! c937dcfea0e38e6a3b8af09de0efaf04  gcc/testsuite/ada/acats/tests/c5/c52104y.ada
! b2aa45debad3d8e7603216de3bca00fb  gcc/testsuite/ada/acats/tests/c5/c53007a.ada
! ff458115437146bc66c6f7135942dc7d  gcc/testsuite/ada/acats/tests/c5/c540001.a
! 798fc3cdc6929204af5e109c7b552b96  gcc/testsuite/ada/acats/tests/c5/c54a03a.ada
! 350e6e9e9f439b08c9984e18a29b6144  gcc/testsuite/ada/acats/tests/c5/c54a04a.ada
! 672e5fee1b44c051e35bd39f7cfdd7f6  gcc/testsuite/ada/acats/tests/c5/c54a07a.ada
! 55636ae11b1e87d2920da673ac54f8cf  gcc/testsuite/ada/acats/tests/c5/c54a13a.ada
! fadaa20972179cfa78055a5255aaf701  gcc/testsuite/ada/acats/tests/c5/c54a13b.ada
! 1f2ca9fde851497809ddf860f08ea8dd  gcc/testsuite/ada/acats/tests/c5/c54a13c.ada
! f02b8333b09eadfe396595d861e0c28e  gcc/testsuite/ada/acats/tests/c5/c54a13d.ada
! 37f2526490642267865f8a817c455655  gcc/testsuite/ada/acats/tests/c5/c54a22a.ada
! c4b7807f9faa1bb76d79507d98a0feb3  gcc/testsuite/ada/acats/tests/c5/c54a23a.ada
! 45d1b598e30b318d11d3cfa6a37cc6fa  gcc/testsuite/ada/acats/tests/c5/c54a24a.ada
! adeadf039e14eb8bc2b48ff5572bd812  gcc/testsuite/ada/acats/tests/c5/c54a24b.ada
! 7cf7b4d54a6bca23e102d02570e8d836  gcc/testsuite/ada/acats/tests/c5/c54a42a.ada
! 200024964c0cd6807dda9226ae982125  gcc/testsuite/ada/acats/tests/c5/c54a42b.ada
! b58d58ea8c08f008f3bb0a1f4e37600d  gcc/testsuite/ada/acats/tests/c5/c54a42c.ada
! 7afca27633e115e11ccc09450181d955  gcc/testsuite/ada/acats/tests/c5/c54a42d.ada
! 810d89d05b84beb31789b0ebd7aba86d  gcc/testsuite/ada/acats/tests/c5/c54a42e.ada
! 012f75628d8e37cbd1be10f8f4ba117f  gcc/testsuite/ada/acats/tests/c5/c54a42f.ada
! d45cbd6907b0f421c6aec9b981f052d6  gcc/testsuite/ada/acats/tests/c5/c54a42g.ada
! ef97a2623a512e16e0fda04f277b6ff2  gcc/testsuite/ada/acats/tests/c5/c55b03a.ada
! ad40c92edd66b18fad76286ec1b9c6ae  gcc/testsuite/ada/acats/tests/c5/c55b04a.ada
! aa1f7abf4fbb36f5120549a0305b7862  gcc/testsuite/ada/acats/tests/c5/c55b05a.ada
! 93af4cbae77af58c9e4c76145e3381b0  gcc/testsuite/ada/acats/tests/c5/c55b06a.ada
! 83fb65a1faa9605647ad3455e55fa273  gcc/testsuite/ada/acats/tests/c5/c55b06b.ada
! 1c3a3e590230416971b33336bec05137  gcc/testsuite/ada/acats/tests/c5/c55b07a.dep
! 297ac06b1460ecfad84e5ce426b452d5  gcc/testsuite/ada/acats/tests/c5/c55b07b.dep
! 9f79657a1fb3ec7ad658a79647c5949c  gcc/testsuite/ada/acats/tests/c5/c55b10a.ada
! 1364f5750f4c9a8395cf0b1ae42eee0b  gcc/testsuite/ada/acats/tests/c5/c55b11a.ada
! 20c657742ad353aedf983932ae3ad058  gcc/testsuite/ada/acats/tests/c5/c55b11b.ada
! dcbc66de120373907bc61655da9f5f72  gcc/testsuite/ada/acats/tests/c5/c55b15a.ada
! 46488465caae85e036ca25f7a3861ddb  gcc/testsuite/ada/acats/tests/c5/c55b16a.ada
! 59a61b3784b5cede84a98e874e989bf9  gcc/testsuite/ada/acats/tests/c5/c55c02a.ada
! a665c1df7fabf7499dd2fef8021e5735  gcc/testsuite/ada/acats/tests/c5/c55c02b.ada
! 9722acc7b86adb50f2132a53c9a9ba5f  gcc/testsuite/ada/acats/tests/c5/c56002a.ada
! 0d40a16731d63ec204e884f94b191598  gcc/testsuite/ada/acats/tests/c5/c57003a.ada
! 7bceaaa459e0581dd43947812fb6e226  gcc/testsuite/ada/acats/tests/c5/c57004a.ada
! 30ed2943b27da30ba5be8602f46f6e65  gcc/testsuite/ada/acats/tests/c5/c57004b.ada
! 8a811d9acc70a272fa09cbfe47fdbbc0  gcc/testsuite/ada/acats/tests/c5/c58004c.ada
! 17e55b043903edcc29571ab8bd8aa78c  gcc/testsuite/ada/acats/tests/c5/c58004d.ada
! 7807a279489151c0c870e2d8f12f4502  gcc/testsuite/ada/acats/tests/c5/c58004g.ada
! 1b5dcc2941f69ee8c74a24728bb90d67  gcc/testsuite/ada/acats/tests/c5/c58005a.ada
! 62354e1ba2b765af08aa33a5e09c47df  gcc/testsuite/ada/acats/tests/c5/c58005b.ada
! 9028a4a38fba5ee0a721a8918c7e46c8  gcc/testsuite/ada/acats/tests/c5/c58005h.ada
! fa480782be6698aa97970fcf14c2f19b  gcc/testsuite/ada/acats/tests/c5/c58006a.ada
! 156c239407b9c9b5abfd28b286d35734  gcc/testsuite/ada/acats/tests/c5/c58006b.ada
! 05e86bfca592c5c4d28a7ad45f8d8054  gcc/testsuite/ada/acats/tests/c5/c59002a.ada
! 70857f43256c7a44ec4b50f5aa1b4b0d  gcc/testsuite/ada/acats/tests/c5/c59002b.ada
! 7656b04738b59910b4cd6415feaa6aea  gcc/testsuite/ada/acats/tests/c5/c59002c.ada
! 22c213bb3f4fac53cfad7701e5a6591a  gcc/testsuite/ada/acats/tests/c6/c61008a.ada
! 5fb3b13780dfa407dfa99fcfa590913f  gcc/testsuite/ada/acats/tests/c6/c61009a.ada
! 25cf5d0e53424f3054a20393c002970e  gcc/testsuite/ada/acats/tests/c6/c61010a.ada
! fc4b87310c6618ffbf7d4df1f222a45f  gcc/testsuite/ada/acats/tests/c6/c620001.a
! 2a393ff1326482d8490f5be202d8483c  gcc/testsuite/ada/acats/tests/c6/c620002.a
! 97d97866837d419b1ddcfa6ccda2511e  gcc/testsuite/ada/acats/tests/c6/c62002a.ada
! 29777c913c6649484125c1aa56f0093f  gcc/testsuite/ada/acats/tests/c6/c62003a.ada
! 3e2cc6ba1c79eb1d9f3fe3bbb646cf6b  gcc/testsuite/ada/acats/tests/c6/c62003b.ada
! 624bc88129c0b954774c60019f5435c5  gcc/testsuite/ada/acats/tests/c6/c62004a.ada
! 31c5b507af85354e0db53a078e7c8933  gcc/testsuite/ada/acats/tests/c6/c62006a.ada
! e8a1274fb71dcf0b27d5375c78e8d1d3  gcc/testsuite/ada/acats/tests/c6/c631001.a
! 41a6d9efe5d22a0f96b7c4448831b133  gcc/testsuite/ada/acats/tests/c6/c640001.a
! 67136569bb3a58c14f65e3abd9b96391  gcc/testsuite/ada/acats/tests/c6/c64002b.ada
! 298c0d717f1da2c324c78b6aafedfa91  gcc/testsuite/ada/acats/tests/c6/c64004g.ada
! 0a5ebe2531dcbec11f3d606df5534e5b  gcc/testsuite/ada/acats/tests/c6/c64005a.ada
! 1a7b4a32917f31d77deb5ad294e39f82  gcc/testsuite/ada/acats/tests/c6/c64005b.ada
! 292b4b0e6cf19da205f4d3a1caeee992  gcc/testsuite/ada/acats/tests/c6/c64005c.ada
! db80e980a183a6d0f7c9afd52fae0c87  gcc/testsuite/ada/acats/tests/c6/c64005d0.ada
! f480e72d2a8b3a22347018687fb9f190  gcc/testsuite/ada/acats/tests/c6/c64005da.ada
! 035da89aedf781e8b07eace791889088  gcc/testsuite/ada/acats/tests/c6/c64005db.ada
! 9af982279e39e967d04656170afef341  gcc/testsuite/ada/acats/tests/c6/c64005dc.ada
! 2f3c835897b61c5b02af1bef11a949d6  gcc/testsuite/ada/acats/tests/c6/c641001.a
! f9894df16dafde8c37b5681a9a0b728f  gcc/testsuite/ada/acats/tests/c6/c64103b.ada
! 573a659bd2d30c3c8a3ee7f77390490c  gcc/testsuite/ada/acats/tests/c6/c64103c.ada
! e7242de3cddb62031ef1910e911942df  gcc/testsuite/ada/acats/tests/c6/c64103d.ada
! 6e2e6c719dcbb601e033a3a1528b6db5  gcc/testsuite/ada/acats/tests/c6/c64103e.ada
! aa17757d55d04a8ef672505933d46680  gcc/testsuite/ada/acats/tests/c6/c64103f.ada
! bbb85cc245f09eba3db627d88d52db68  gcc/testsuite/ada/acats/tests/c6/c64104a.ada
! d3f37083469fc62f2aeae2c00e979ad9  gcc/testsuite/ada/acats/tests/c6/c64104b.ada
! 00b5b6264d3df93a1481ca7dd0313957  gcc/testsuite/ada/acats/tests/c6/c64104c.ada
! 0d80f34c16a2ae02db45210c6b66eaa8  gcc/testsuite/ada/acats/tests/c6/c64104d.ada
! 5dc873b400a6675c734e431ac91f74db  gcc/testsuite/ada/acats/tests/c6/c64104e.ada
! 54921e31e5a30e388946a946c10c8954  gcc/testsuite/ada/acats/tests/c6/c64104f.ada
! b763fdc647a8b6c2e8ccdcc7b2e1556c  gcc/testsuite/ada/acats/tests/c6/c64104g.ada
! 0a7c01deaae4401d7fe1f7f78e4e6325  gcc/testsuite/ada/acats/tests/c6/c64104h.ada
! 39b3c50eb36b7e11b1d9e78a7b3f9132  gcc/testsuite/ada/acats/tests/c6/c64104i.ada
! a30f87a67e828d3791f26521921a8f81  gcc/testsuite/ada/acats/tests/c6/c64104j.ada
! 8906347f1c0f027d889a06f25fcc1831  gcc/testsuite/ada/acats/tests/c6/c64104k.ada
! 4cb01879b0f85af48c5474c558534e54  gcc/testsuite/ada/acats/tests/c6/c64104l.ada
! cd1d978bf7503e964f5c0293089096c1  gcc/testsuite/ada/acats/tests/c6/c64104m.ada
! 62990064fd13a84570c91f3d1f71338f  gcc/testsuite/ada/acats/tests/c6/c64104n.ada
! ff64768b090411d3f8232b7dc479db5f  gcc/testsuite/ada/acats/tests/c6/c64104o.ada
! c371cb358b8e763068dd4af101cd7f51  gcc/testsuite/ada/acats/tests/c6/c64105a.ada
! f1cfabbe7fa319f7a90669a5a1d88874  gcc/testsuite/ada/acats/tests/c6/c64105b.ada
! 484938df1d2ea23b4699185521d927ae  gcc/testsuite/ada/acats/tests/c6/c64105c.ada
! 98ba505c37a1fa4544aa7a16f86476d8  gcc/testsuite/ada/acats/tests/c6/c64105d.ada
! 7f5ef4e4117e3403c814c8b2d6248652  gcc/testsuite/ada/acats/tests/c6/c64106a.ada
! c719851b2aa8d7de278a61b4ae401e7f  gcc/testsuite/ada/acats/tests/c6/c64106b.ada
! 99b026e3c033b0bc70bbb34952c61a90  gcc/testsuite/ada/acats/tests/c6/c64106c.ada
! 1ff08389beb50526e6d5946f3ddfa0d2  gcc/testsuite/ada/acats/tests/c6/c64106d.ada
! 19103ed02e019b6f2490bd4285878194  gcc/testsuite/ada/acats/tests/c6/c64107a.ada
! 93d945e280814e3db9cdaa9a9be57e87  gcc/testsuite/ada/acats/tests/c6/c64108a.ada
! 39bf7a6fa5bcfb5ee8e52f5f07fafefc  gcc/testsuite/ada/acats/tests/c6/c64109a.ada
! 7a1023fda1950978c62798e5caff709c  gcc/testsuite/ada/acats/tests/c6/c64109b.ada
! 276b67fe008e97a4988487fc615e1f3c  gcc/testsuite/ada/acats/tests/c6/c64109c.ada
! 80192570a6b338162a9ef9bfc13a4dff  gcc/testsuite/ada/acats/tests/c6/c64109d.ada
! 4719b8ddae4538b59e04d96c932a95d9  gcc/testsuite/ada/acats/tests/c6/c64109e.ada
! ed4b4f3ef743bc7f8f4a6afe5886cae2  gcc/testsuite/ada/acats/tests/c6/c64109f.ada
! 8f7ab91cec27ffbad7b51252ef99b137  gcc/testsuite/ada/acats/tests/c6/c64109g.ada
! 2bb8cec80fd6bc3ed2495c9581ea2a9e  gcc/testsuite/ada/acats/tests/c6/c64109h.ada
! 495be9b835fa97670e1a579d72a3f96d  gcc/testsuite/ada/acats/tests/c6/c64109i.ada
! 547c93bc4be631648c9973120c282a89  gcc/testsuite/ada/acats/tests/c6/c64109j.ada
! 4da6b83416827b9d2d574334772ff2a3  gcc/testsuite/ada/acats/tests/c6/c64109k.ada
! 6217fe2218b5d9ecf085e1b730917030  gcc/testsuite/ada/acats/tests/c6/c64109l.ada
! dde2e62be923a3854e5f1667c4a78def  gcc/testsuite/ada/acats/tests/c6/c64201b.ada
! c3459cee62caf16a8d14f820e16c4f60  gcc/testsuite/ada/acats/tests/c6/c64201c.ada
! e589f5c8d3bb97575b245a37a5f2dffa  gcc/testsuite/ada/acats/tests/c6/c64202a.ada
! 219803e5e3580d21284552cdfe112a0f  gcc/testsuite/ada/acats/tests/c6/c650001.a
! 25c48d1366d3ac13453832dcee471f3f  gcc/testsuite/ada/acats/tests/c6/c65003a.ada
! beca3ad5c25f888eed6dc6b1db750e33  gcc/testsuite/ada/acats/tests/c6/c65003b.ada
! 4eca86193e279acda5aa647dab2bf5bf  gcc/testsuite/ada/acats/tests/c6/c66002a.ada
! 7cbfd161ceac490eb379a5c08eb1945c  gcc/testsuite/ada/acats/tests/c6/c66002c.ada
! 482c9214fae39fbcab58fcbae0b5b5ef  gcc/testsuite/ada/acats/tests/c6/c66002d.ada
! 7a93f84ee40f38fca4afb6cfd5e69a57  gcc/testsuite/ada/acats/tests/c6/c66002e.ada
! 2b60fab145676d717df13cdf9c7a70cb  gcc/testsuite/ada/acats/tests/c6/c66002f.ada
! ea770ca1e9d9fcb8b4460d5921747ef5  gcc/testsuite/ada/acats/tests/c6/c66002g.ada
! 8470fdb16485b4472bee0602f1f98734  gcc/testsuite/ada/acats/tests/c6/c67002a.ada
! 0e2fbb4deae7d888206b0ce77fc4fda5  gcc/testsuite/ada/acats/tests/c6/c67002b.ada
! 308d5f91802e93205222e8ca1f7def1e  gcc/testsuite/ada/acats/tests/c6/c67002c.ada
! 84e0adc30ed2874abaffa33f713cc51b  gcc/testsuite/ada/acats/tests/c6/c67002d.ada
! ddfdc630c5edd58e367ed9b034c039e7  gcc/testsuite/ada/acats/tests/c6/c67002e.ada
! 49b95c1cbdb6c703d2eba605f6f06c92  gcc/testsuite/ada/acats/tests/c6/c67003f.ada
! 213a9e52b5357a07997f1aa43ec82624  gcc/testsuite/ada/acats/tests/c6/c67005a.ada
! ddd7cdd9502a723b17b40bcb1df0e016  gcc/testsuite/ada/acats/tests/c6/c67005b.ada
! 20a99f6c582810cf18b39ab642f4024f  gcc/testsuite/ada/acats/tests/c6/c67005c.ada
! 8ea8c4445f5e72cc88e8dad14b66084e  gcc/testsuite/ada/acats/tests/c6/c67005d.ada
! 69f93d5f57d1b7956ae380ff9f3e5f77  gcc/testsuite/ada/acats/tests/c7/c72001b.ada
! b6fa12bd9fd0f617b4eeded7550722c2  gcc/testsuite/ada/acats/tests/c7/c72002a.ada
! c70f104ca78b3298a442973676af108a  gcc/testsuite/ada/acats/tests/c7/c730001.a
! 7d2edfee282ba04ca7f25bef0f101057  gcc/testsuite/ada/acats/tests/c7/c730002.a
! 7822b69c5c1de14250eaad43da14736b  gcc/testsuite/ada/acats/tests/c7/c730003.a
! ced40d2c1dbfd9c72c43feedd4c9cefc  gcc/testsuite/ada/acats/tests/c7/c730004.a
! d3f7b50b0820bac4ce78abffb5e37744  gcc/testsuite/ada/acats/tests/c7/c73002a.ada
! c70763cb0718b44fa8658ee9ebb8c726  gcc/testsuite/ada/acats/tests/c7/c730a01.a
! 4ecce7babf24585f115e0d288f17e449  gcc/testsuite/ada/acats/tests/c7/c730a02.a
! 9c311ffdc62d1b99a3452b1e38d15e2e  gcc/testsuite/ada/acats/tests/c7/c731001.a
! be09078047844bd86eef86d5755ef273  gcc/testsuite/ada/acats/tests/c7/c74004a.ada
! a0a0a05e6225a07b7bd0f2c049f1dc37  gcc/testsuite/ada/acats/tests/c7/c74203a.ada
! a718857277037741ea3600c1aab95a3d  gcc/testsuite/ada/acats/tests/c7/c74206a.ada
! 0efca36cdb74fc57aec9e1de78e0324f  gcc/testsuite/ada/acats/tests/c7/c74207b.ada
! 7ceb0d1778d1a1bae9687bebd7aad9e3  gcc/testsuite/ada/acats/tests/c7/c74208a.ada
! bf7859fde348fa96735368f14e0a3e25  gcc/testsuite/ada/acats/tests/c7/c74208b.ada
! 7d504e824db220a636160024b4e963d6  gcc/testsuite/ada/acats/tests/c7/c74209a.ada
! 3f31b8eb73e78f20cdcf118aa7d0047c  gcc/testsuite/ada/acats/tests/c7/c74210a.ada
! 442ab4135e3f1fdfffacf000f7b4bda3  gcc/testsuite/ada/acats/tests/c7/c74211a.ada
! 49650c69957d01ffb396db79a35589c4  gcc/testsuite/ada/acats/tests/c7/c74211b.ada
! 30155693ce7b3f29189da859d313eb7d  gcc/testsuite/ada/acats/tests/c7/c74302a.ada
! ed96f028ca11af40b3ba2093a404f55c  gcc/testsuite/ada/acats/tests/c7/c74302b.ada
! b559e9bf4e98700fb810e406c30a34b7  gcc/testsuite/ada/acats/tests/c7/c74305a.ada
! f1b9307b4d428cf0d10bc48805ffb0f3  gcc/testsuite/ada/acats/tests/c7/c74305b.ada
! 5c799bf9e1ec30f40d428bd8dadcb119  gcc/testsuite/ada/acats/tests/c7/c74306a.ada
! d62a4df3fab829d5694cbf9f5cc4cb8e  gcc/testsuite/ada/acats/tests/c7/c74307a.ada
! 933ca49dcfb9ad8fc25ea9a434984d05  gcc/testsuite/ada/acats/tests/c7/c74401d.ada
! 502d8871fd7e5d6399f7536874735597  gcc/testsuite/ada/acats/tests/c7/c74401e.ada
! 2514504f60fcea97d8914fabcb5654cf  gcc/testsuite/ada/acats/tests/c7/c74401k.ada
! 3ca8e77b02dbd7f9e9104dd0fa6de35b  gcc/testsuite/ada/acats/tests/c7/c74401q.ada
! d30f33bfdaf9612ea55c7659c3b5aeb6  gcc/testsuite/ada/acats/tests/c7/c74402a.ada
! cf79bb4fcbdf7ec1cd795607eef8bc10  gcc/testsuite/ada/acats/tests/c7/c74402b.ada
! f6ece8469b7d90aef496ac665f895003  gcc/testsuite/ada/acats/tests/c7/c74406a.ada
! cce5e695d18f537ec2a8d6c26cfc5b0d  gcc/testsuite/ada/acats/tests/c7/c74407b.ada
! 316be518a848dd0954d80de977e40c5b  gcc/testsuite/ada/acats/tests/c7/c74409b.ada
! c751f318a2fe16dadb0c62221c726b70  gcc/testsuite/ada/acats/tests/c7/c760001.a
! f250c0eea5cbe1e05ed28f0a940949ed  gcc/testsuite/ada/acats/tests/c7/c760002.a
! c12d4d7698c111ee3a094c0c2d53522a  gcc/testsuite/ada/acats/tests/c7/c760007.a
! 767d3e26a992541aa6191923e040a107  gcc/testsuite/ada/acats/tests/c7/c760009.a
! 264f06f0190602b655e5f7fefb6822b8  gcc/testsuite/ada/acats/tests/c7/c760010.a
! 31eaca7f3a33de78c9eaa1a92109c6ad  gcc/testsuite/ada/acats/tests/c7/c760011.a
! 522805071c7c096b6eabcd72cf833d9a  gcc/testsuite/ada/acats/tests/c7/c760012.a
! a4f8e8b6876d4b862928b00edca5f5d9  gcc/testsuite/ada/acats/tests/c7/c760013.a
! 45d67d0e3319e953b892c7d115460ecd  gcc/testsuite/ada/acats/tests/c7/c761001.a
! 080dcc3c8d2907579e1673c23433165f  gcc/testsuite/ada/acats/tests/c7/c761002.a
! d0ecfbaed2a882166d23beefe5f4e191  gcc/testsuite/ada/acats/tests/c7/c761003.a
! 553e4393e53175606097eb8c9b415d22  gcc/testsuite/ada/acats/tests/c7/c761004.a
! 4a7c5e1c13695ae75ad3a4df49a55b63  gcc/testsuite/ada/acats/tests/c7/c761005.a
! d4f8faae1d5f7970e56d7a30c10a99c7  gcc/testsuite/ada/acats/tests/c7/c761006.a
! a8b974a47ec1f7a4a5fc2ef06975f069  gcc/testsuite/ada/acats/tests/c7/c761007.a
! 6ca84026fc9a5682d2db1f346eb920cd  gcc/testsuite/ada/acats/tests/c7/c761010.a
! 8f26af4ffb9bc7a2e15aee7b1c0c2346  gcc/testsuite/ada/acats/tests/c7/c761011.a
! d80406039e2bebf54191eec198c10721  gcc/testsuite/ada/acats/tests/c7/c761012.a
! f7baee35e01e625d64802c987ddc4c0d  gcc/testsuite/ada/acats/tests/c8/c83007a.ada
! 9f1228dfaacf209725a2e8d706128a4c  gcc/testsuite/ada/acats/tests/c8/c83012d.ada
! a2e774207100bd5fbb0289bb8ba9f031  gcc/testsuite/ada/acats/tests/c8/c83022a.ada
! c214085c4cbff44807225c3aee9be7db  gcc/testsuite/ada/acats/tests/c8/c83022g0.ada
! 7aeac4b952eedc1419039fc50c66c732  gcc/testsuite/ada/acats/tests/c8/c83022g1.ada
! fedc05f63c2cd512653891054d7d5dad  gcc/testsuite/ada/acats/tests/c8/c83023a.ada
! 94cc28ec1a7a9d2aedbab6f2101d2215  gcc/testsuite/ada/acats/tests/c8/c83024a.ada
! cd79a99f6b5ce8030462ce917a77a33c  gcc/testsuite/ada/acats/tests/c8/c83024e0.ada
! b03af2deceb02b0227f887041379f641  gcc/testsuite/ada/acats/tests/c8/c83024e1.ada
! d7544d2786bfc552a30612041df95429  gcc/testsuite/ada/acats/tests/c8/c83025a.ada
! 881d6130cfcbd30f4a739889d50396da  gcc/testsuite/ada/acats/tests/c8/c83025c.ada
! f35a334aaf4110ea4446247ad6a098f4  gcc/testsuite/ada/acats/tests/c8/c83027a.ada
! 37c08965e5d871d3a35ff35f67e713d8  gcc/testsuite/ada/acats/tests/c8/c83027c.ada
! 32c440ad7d9ac139bbd4251c4fc10cc4  gcc/testsuite/ada/acats/tests/c8/c83028a.ada
! 284725a771243ec2eb877c3bb20240af  gcc/testsuite/ada/acats/tests/c8/c83029a.ada
! 0d4d1e41b05e2587d04c09930491aecd  gcc/testsuite/ada/acats/tests/c8/c83030a.ada
! 736b92fd2fdec116e1e9a28e04fe105a  gcc/testsuite/ada/acats/tests/c8/c83030c.ada
! 8e7b338ab4662f4c219903b9017a3252  gcc/testsuite/ada/acats/tests/c8/c83031a.ada
! 8799fc3b7ae4481b9d03ab137000f62e  gcc/testsuite/ada/acats/tests/c8/c83031c.ada
! 4c6a471797dc4320ecdae183b931f1e8  gcc/testsuite/ada/acats/tests/c8/c83031e.ada
! a6758128580028e639e0a59521425cf0  gcc/testsuite/ada/acats/tests/c8/c83032a.ada
! 72628676c750edbd1f98131cb5571a2f  gcc/testsuite/ada/acats/tests/c8/c83033a.ada
! 9431427fb4aa9f6e7d3a4375ffaecc6c  gcc/testsuite/ada/acats/tests/c8/c83051a.ada
! f2fa97381bbbbba9176ccf7627ee5fd8  gcc/testsuite/ada/acats/tests/c8/c83b02a.ada
! 03bdf2b2546804982387b339182818e7  gcc/testsuite/ada/acats/tests/c8/c83b02b.ada
! 40875d29e98f8a554f57a2cbba7d7b3e  gcc/testsuite/ada/acats/tests/c8/c83e02a.ada
! 14cf40af4f9b58380697256b2d355287  gcc/testsuite/ada/acats/tests/c8/c83e02b.ada
! 200ef6a026cfe27a93be29d96cf214b8  gcc/testsuite/ada/acats/tests/c8/c83e03a.ada
! ad5525a2d740a4d893fcd637c63649fd  gcc/testsuite/ada/acats/tests/c8/c83f01a.ada
! e565198c8053dc81f1f530025b0d226b  gcc/testsuite/ada/acats/tests/c8/c83f01b.ada
! 6d7321886000c19fde08f583e57a7e33  gcc/testsuite/ada/acats/tests/c8/c83f01c0.ada
! b0f89c8df04b680d3d4603f896b4d648  gcc/testsuite/ada/acats/tests/c8/c83f01c1.ada
! faebab8928acaa2b8fbf803db9d9d76e  gcc/testsuite/ada/acats/tests/c8/c83f01c2.ada
! 76e6504b3bae53ff3ed9396d5c7812a4  gcc/testsuite/ada/acats/tests/c8/c83f01d0.ada
! 64bf8f6ff542539524d925d1e5a9cfe4  gcc/testsuite/ada/acats/tests/c8/c83f01d1.ada
! 8a46931f49572809caa7fa3dacf72336  gcc/testsuite/ada/acats/tests/c8/c83f03a.ada
! 12f92031807ee7b6703ecca17d07c9ad  gcc/testsuite/ada/acats/tests/c8/c83f03b.ada
! 2f7e657595b99ed4902cb3ed7aae770f  gcc/testsuite/ada/acats/tests/c8/c83f03c0.ada
! b07043910b1b62a4647fb0958270ab2e  gcc/testsuite/ada/acats/tests/c8/c83f03c1.ada
! 2a8ed5812b7eba602e55bc4cba957511  gcc/testsuite/ada/acats/tests/c8/c83f03c2.ada
! d29900c193533f0d919bf89d2bc8e119  gcc/testsuite/ada/acats/tests/c8/c83f03d0.ada
! a81483935d1a82f02d88010465d1f944  gcc/testsuite/ada/acats/tests/c8/c83f03d1.ada
! 29bd80df35d00ef1384ad39409db64f6  gcc/testsuite/ada/acats/tests/c8/c840001.a
! af9ade351c5ef6a9d951a20d59988380  gcc/testsuite/ada/acats/tests/c8/c84002a.ada
! 66d1e4c5ecfdc60f73f72122f13591ac  gcc/testsuite/ada/acats/tests/c8/c84005a.ada
! aa6a6f80ff85e69f2df4df4eede3b31f  gcc/testsuite/ada/acats/tests/c8/c84008a.ada
! 09c80b3d29e25029f03088427d21bbcc  gcc/testsuite/ada/acats/tests/c8/c84009a.ada
! d7b3488b66a68bdb7c8d505ca3419ac7  gcc/testsuite/ada/acats/tests/c8/c85004b.ada
! 3e0403d2aa151370c2f61352a9f76996  gcc/testsuite/ada/acats/tests/c8/c85005a.ada
! 37c7fd0ed7d0bc32d740e9c53a118651  gcc/testsuite/ada/acats/tests/c8/c85005b.ada
! 1fc662c5706ae3323d79577161aa2b7c  gcc/testsuite/ada/acats/tests/c8/c85005c.ada
! c7c4cd7450d2b2ce6c9f804ab189b71e  gcc/testsuite/ada/acats/tests/c8/c85005d.ada
! 39a019807c800fea7de5ee674f51f3ac  gcc/testsuite/ada/acats/tests/c8/c85005e.ada
! 8d1e127599b478a2675315047b0c481f  gcc/testsuite/ada/acats/tests/c8/c85005f.ada
! 25bfcee3ce65c19279f2e6ae6c7dbfba  gcc/testsuite/ada/acats/tests/c8/c85005g.ada
! 32fef31a23447e83e62b591ccf214749  gcc/testsuite/ada/acats/tests/c8/c85006a.ada
! 52a38ccdb969e742c721e8c6b91f9aee  gcc/testsuite/ada/acats/tests/c8/c85006b.ada
! b8b2355c13723ce1e608404a697d37f1  gcc/testsuite/ada/acats/tests/c8/c85006c.ada
! f9f754296bb969ded99acf18e0d0cc57  gcc/testsuite/ada/acats/tests/c8/c85006d.ada
! 13a5f5c38fb9c62ade83208e0c68d79e  gcc/testsuite/ada/acats/tests/c8/c85006e.ada
! 338359196a7f9ec95687b438473fe4b5  gcc/testsuite/ada/acats/tests/c8/c85006f.ada
! 2009399861eb5a59e17598709aab1ac2  gcc/testsuite/ada/acats/tests/c8/c85006g.ada
! 81de8bcdf2627a437c3e3b841e5fad1d  gcc/testsuite/ada/acats/tests/c8/c85007a.ada
! e357cc223f207047a721ac8e8e18f162  gcc/testsuite/ada/acats/tests/c8/c85007e.ada
! 418333040a3a7bff04eadeddd0acb110  gcc/testsuite/ada/acats/tests/c8/c85009a.ada
! bd6854facde59a298fdff160083dd037  gcc/testsuite/ada/acats/tests/c8/c85011a.ada
! 406a5955e9d949bdd8248e3006f85389  gcc/testsuite/ada/acats/tests/c8/c85013a.ada
! 85235f6d4b44c3da298beab51c59e532  gcc/testsuite/ada/acats/tests/c8/c85014a.ada
! 63d0b09e17f02992f14dc03cc7687879  gcc/testsuite/ada/acats/tests/c8/c85014b.ada
! 8a941d41b729176aeb087812bd185dbb  gcc/testsuite/ada/acats/tests/c8/c85014c.ada
! e1660d68b127c37ec14d42ba45a3b445  gcc/testsuite/ada/acats/tests/c8/c85017a.ada
! 1cad26f34f7ad9a5f58bf9e88765aca9  gcc/testsuite/ada/acats/tests/c8/c85018a.ada
! 9c45b00830d440af2ac60b55d681400a  gcc/testsuite/ada/acats/tests/c8/c85018b.ada
! 8d0a794043808c838cf5adba232cacac  gcc/testsuite/ada/acats/tests/c8/c85019a.ada
! 9b74243be116d7855c67ebe955d78830  gcc/testsuite/ada/acats/tests/c8/c854001.a
! 825c879ca9c376275c17511ad5e00304  gcc/testsuite/ada/acats/tests/c8/c854002.a
! d68292de38c7b9e049e07075bbb8e3be  gcc/testsuite/ada/acats/tests/c8/c854003.a
! 1f1f18804e6fcf9c4e2fbec6349d04b2  gcc/testsuite/ada/acats/tests/c8/c86003a.ada
! e2f34ff3aa901cdf44aa714bfc307b17  gcc/testsuite/ada/acats/tests/c8/c86004a.ada
! d4f2cc5c80e276eb1480de6a342d8b63  gcc/testsuite/ada/acats/tests/c8/c86004b0.ada
! 50f93d108a0bf0919eb0ba1f6e65d7f0  gcc/testsuite/ada/acats/tests/c8/c86004b1.ada
! 6c2d0d9c9429d88e2c6672c71366873c  gcc/testsuite/ada/acats/tests/c8/c86004b2.ada
! 7f6e918b2ef0b5adc4139d9b912bc081  gcc/testsuite/ada/acats/tests/c8/c86004c0.ada
! a2305c116ad2dac3912371b71c441b61  gcc/testsuite/ada/acats/tests/c8/c86004c1.ada
! c7b7606151d38f39564979699b168c79  gcc/testsuite/ada/acats/tests/c8/c86004c2.ada
! 0766251158ffbc052bc7ec6041412761  gcc/testsuite/ada/acats/tests/c8/c86006i.ada
! 69ab336267b976906702c2d0bc1c1e29  gcc/testsuite/ada/acats/tests/c8/c86007a.ada
! 0ac058a1ece69aa243cd82dada40bb30  gcc/testsuite/ada/acats/tests/c8/c87a05a.ada
! fff71eeb0c0e9f16ee678756ea7588a4  gcc/testsuite/ada/acats/tests/c8/c87a05b.ada
! 2fe0ea4d16046c334c399aafeddc01a8  gcc/testsuite/ada/acats/tests/c8/c87b02a.ada
! fcd21b497cf853422b084ed7935381d4  gcc/testsuite/ada/acats/tests/c8/c87b02b.ada
! c0b66a348c2ee10edc5467a8eb009d09  gcc/testsuite/ada/acats/tests/c8/c87b03a.ada
! adac4007a7fd6b1ee9f1f48c55244d47  gcc/testsuite/ada/acats/tests/c8/c87b04a.ada
! 18ccfb1a0d973da4e1686b0c98dfa1a9  gcc/testsuite/ada/acats/tests/c8/c87b04b.ada
! 43cf46342879eb1ffe2f7c8971af6a38  gcc/testsuite/ada/acats/tests/c8/c87b04c.ada
! d0144de0520c60120721d7b571e3985d  gcc/testsuite/ada/acats/tests/c8/c87b05a.ada
! 2b781472cd1369f9eb86a64cd5e4a9d9  gcc/testsuite/ada/acats/tests/c8/c87b06a.ada
! c22a9ce42feb05505f797ccc539112bd  gcc/testsuite/ada/acats/tests/c8/c87b07a.ada
! 5cb748b4c292f38beadd4b397c9748ef  gcc/testsuite/ada/acats/tests/c8/c87b07b.ada
! cd570d3799a0f4ceeabe1513e0c1c809  gcc/testsuite/ada/acats/tests/c8/c87b07c.ada
! 94b970485847bd2d888e33a9e0bbeb1c  gcc/testsuite/ada/acats/tests/c8/c87b07d.ada
! 4a11dd4cf1ef59a68c9760ade0024c31  gcc/testsuite/ada/acats/tests/c8/c87b07e.ada
! e031b7e0f562bef1da7d73abf8e7203d  gcc/testsuite/ada/acats/tests/c8/c87b08a.ada
! ddc6096fff2cbf60aa3fe948c1c569c3  gcc/testsuite/ada/acats/tests/c8/c87b09a.ada
! 427f1fe54f5946c6611f5abe3d23e213  gcc/testsuite/ada/acats/tests/c8/c87b09c.ada
! 4f2d8b50e737f09ccf25f199443471c8  gcc/testsuite/ada/acats/tests/c8/c87b10a.ada
! b3ddde623ffa0748cae187472ed3c706  gcc/testsuite/ada/acats/tests/c8/c87b11a.ada
! 34f04500698b844ee3bbe19fcec6df7b  gcc/testsuite/ada/acats/tests/c8/c87b11b.ada
! 42486daf86c543499fe18e7700c2a2c5  gcc/testsuite/ada/acats/tests/c8/c87b13a.ada
! 343104f8b07cc3cdfea584fb91d7dad0  gcc/testsuite/ada/acats/tests/c8/c87b14a.ada
! 3129f63056e924075c9eef5fb92ff6be  gcc/testsuite/ada/acats/tests/c8/c87b14b.ada
! 9fec6d81e8cfe9a1be8263f1fcff0c24  gcc/testsuite/ada/acats/tests/c8/c87b14c.ada
! c9a24774d85aaa6a9ad204d88ef33dc3  gcc/testsuite/ada/acats/tests/c8/c87b14d.ada
! 75444b8bc412150144d6500a1c98caa1  gcc/testsuite/ada/acats/tests/c8/c87b15a.ada
! b02c9f3d290904a7b941ba27ad5b8cbe  gcc/testsuite/ada/acats/tests/c8/c87b16a.ada
! 352fe9e9dcbad212440a7cb09e0f5a22  gcc/testsuite/ada/acats/tests/c8/c87b17a.ada
! da9c835dde5437b7c6fd41430e0523c7  gcc/testsuite/ada/acats/tests/c8/c87b18a.ada
! 6233d050a9dc22ef89142ebf8f28ccf0  gcc/testsuite/ada/acats/tests/c8/c87b18b.ada
! 8d538ac45635004402030cb4640caa57  gcc/testsuite/ada/acats/tests/c8/c87b19a.ada
! 2095765cd4def145a48bc901ac6dbde1  gcc/testsuite/ada/acats/tests/c8/c87b23a.ada
! 67d87906e113b008e98391cc2776a960  gcc/testsuite/ada/acats/tests/c8/c87b24a.ada
! fd73894f92a9b3a013e87ea2b44c1ee4  gcc/testsuite/ada/acats/tests/c8/c87b24b.ada
! ae8732c293e965d19215928ca5c16d40  gcc/testsuite/ada/acats/tests/c8/c87b26b.ada
! b14d1be798ca4f79c28b996d1e8a7113  gcc/testsuite/ada/acats/tests/c8/c87b27a.ada
! 52b1e1223a0044bd348db0fcb6d79d6b  gcc/testsuite/ada/acats/tests/c8/c87b28a.ada
! a6a5c9403ac6bdbdb2e55d6a25b9f5ed  gcc/testsuite/ada/acats/tests/c8/c87b29a.ada
! b151ba31fb04091b8702bb9da4a0a2fb  gcc/testsuite/ada/acats/tests/c8/c87b30a.ada
! baa7d485e6d766db9246c9606ba3a078  gcc/testsuite/ada/acats/tests/c8/c87b31a.ada
! 78fd2d4c2c4821cfbbf402d3b842e2cc  gcc/testsuite/ada/acats/tests/c8/c87b32a.ada
! 833d7f92c1dba9641ebcb3157ab5d24e  gcc/testsuite/ada/acats/tests/c8/c87b33a.ada
! 36465d48d4bab661c6218ee48524b608  gcc/testsuite/ada/acats/tests/c8/c87b34a.ada
! 561be38a9a0275b65d22f782b23c1f8c  gcc/testsuite/ada/acats/tests/c8/c87b34b.ada
! 1239485e0f456d72c43f397227762788  gcc/testsuite/ada/acats/tests/c8/c87b34c.ada
! 041b7b6888183bbf71655055555c1b87  gcc/testsuite/ada/acats/tests/c8/c87b35c.ada
! ba86ee0565261018e59b1b01d9d63a78  gcc/testsuite/ada/acats/tests/c8/c87b38a.ada
! bee8f2cc8e7a407c5d1e665cafb324a0  gcc/testsuite/ada/acats/tests/c8/c87b39a.ada
! 0149e0004f1fac32a6d0483505f00a77  gcc/testsuite/ada/acats/tests/c8/c87b40a.ada
! 979e8597fe7349e04ef67ff5a9f249ad  gcc/testsuite/ada/acats/tests/c8/c87b41a.ada
! 35740da1bae3e32ad7726fef598ebe03  gcc/testsuite/ada/acats/tests/c8/c87b42a.ada
! c699f8cb33019178eb66bb9b9887fc34  gcc/testsuite/ada/acats/tests/c8/c87b43a.ada
! 284fc10b4e768deed27f6efe5ba660f3  gcc/testsuite/ada/acats/tests/c8/c87b44a.ada
! d1cacfe3528a0559f8572409bdad7960  gcc/testsuite/ada/acats/tests/c8/c87b45a.ada
! 615100562dae434f6237d50c2ce7a859  gcc/testsuite/ada/acats/tests/c8/c87b45c.ada
! ee9fa629414e1ff85ab5a901880627c6  gcc/testsuite/ada/acats/tests/c8/c87b47a.ada
! f01c1e9a040d9bf9e82d5b0bd8308ac2  gcc/testsuite/ada/acats/tests/c8/c87b48a.ada
! 5f12e71520b411de1dcbfb59ca609af5  gcc/testsuite/ada/acats/tests/c8/c87b48b.ada
! 7accae5d8bcb7a6376aeb4769bbc3521  gcc/testsuite/ada/acats/tests/c8/c87b50a.ada
! 49e93ad6fd90f250357c964cfe65bbb4  gcc/testsuite/ada/acats/tests/c8/c87b54a.ada
! 6b87b80aa7e4be221c3a6fcc95a098e2  gcc/testsuite/ada/acats/tests/c8/c87b57a.ada
! e29430c61d05400015468771710caebe  gcc/testsuite/ada/acats/tests/c8/c87b62a.ada
! d69bb1d50cac4c6397e7ef6ac85cec47  gcc/testsuite/ada/acats/tests/c8/c87b62b.ada
! b2cd3c65ecd1e96a0c0812252c334c48  gcc/testsuite/ada/acats/tests/c8/c87b62c.ada
! f48458b6ea766af192adb8d401f368fc  gcc/testsuite/ada/acats/tests/c8/c87b62d.tst
! 91802a6e8fc88eaea2b276279ef7c541  gcc/testsuite/ada/acats/tests/c9/c910001.a
! 92f4e59378989d90d762b2fdfa367275  gcc/testsuite/ada/acats/tests/c9/c910002.a
! 1da7e86ddeb55b8594570c708479d7da  gcc/testsuite/ada/acats/tests/c9/c910003.a
! 3e61dff323d06b22fad060cfc4e6bbe3  gcc/testsuite/ada/acats/tests/c9/c91004b.ada
! 69469a828c0050868f258475fc71f55d  gcc/testsuite/ada/acats/tests/c9/c91004c.ada
! 0ff6798e735543f9ea0902dcd3d33bd4  gcc/testsuite/ada/acats/tests/c9/c91006a.ada
! 7f1ab85728a76023b65305acb8480064  gcc/testsuite/ada/acats/tests/c9/c91007a.ada
! b04d09f1322f0d92c98d41398964503d  gcc/testsuite/ada/acats/tests/c9/c92002a.ada
! 5cb78880eadfd9eac647aba39fa528da  gcc/testsuite/ada/acats/tests/c9/c92003a.ada
! bfa0af83fa76f2092a243ddded4670d8  gcc/testsuite/ada/acats/tests/c9/c92005a.ada
! 379c27e94764b3b61fffdc4a6886f267  gcc/testsuite/ada/acats/tests/c9/c92005b.ada
! a47a031badac4df0d97db8bef1c3bc41  gcc/testsuite/ada/acats/tests/c9/c92006a.ada
! e4aee3e6761bfd67eaa5d1bd1ef57470  gcc/testsuite/ada/acats/tests/c9/c930001.a
! d21857231e61275a32c743ac514d1bc5  gcc/testsuite/ada/acats/tests/c9/c93001a.ada
! 493236f457ba46ba4fee16d542742d6c  gcc/testsuite/ada/acats/tests/c9/c93002a.ada
! 58f568faf270170c72b48115224a9ea8  gcc/testsuite/ada/acats/tests/c9/c93003a.ada
! 7612773970dfbe9066b04bb3ef16a233  gcc/testsuite/ada/acats/tests/c9/c93004a.ada
! ba12024ce449c8f19c903d5b83a7772c  gcc/testsuite/ada/acats/tests/c9/c93004b.ada
! 84f08b2297ca6e587b20b46ac2f4a739  gcc/testsuite/ada/acats/tests/c9/c93004c.ada
! e206bbe8f5a43a6b351e76ac75ac54bf  gcc/testsuite/ada/acats/tests/c9/c93004d.ada
! 00ac7aaad0308e432bf16c8682817a14  gcc/testsuite/ada/acats/tests/c9/c93004f.ada
! 08c88f164d59d4eab6aca557a4a64946  gcc/testsuite/ada/acats/tests/c9/c93005a.ada
! 8e317f80e3b0b4e3561b4aae157d6049  gcc/testsuite/ada/acats/tests/c9/c93005b.ada
! 7d334041be29ea9e8c37717a41e00262  gcc/testsuite/ada/acats/tests/c9/c93005c.ada
! 7eaab6600302226ca2aa221a1baa20b3  gcc/testsuite/ada/acats/tests/c9/c93005d.ada
! f8e495878721a71a7dbdd646b8e0a2f9  gcc/testsuite/ada/acats/tests/c9/c93005e.ada
! 0240c3a7deba6bd32679e222b5fadd86  gcc/testsuite/ada/acats/tests/c9/c93005f.ada
! c50d0176fa8ed0d5d6234013904fc2bf  gcc/testsuite/ada/acats/tests/c9/c93005g.ada
! 6a27b797bf6bf6201d7e22aec1399ef3  gcc/testsuite/ada/acats/tests/c9/c93005h.ada
! 9558fcb539a49a288534eb8b0dd23274  gcc/testsuite/ada/acats/tests/c9/c93006a.ada
! fe32d2d556faa4d361e61f9063f9d19b  gcc/testsuite/ada/acats/tests/c9/c93007a.ada
! e1f28c5786e15914c044ecc368a334c4  gcc/testsuite/ada/acats/tests/c9/c93008a.ada
! f12f826d928a3bc55974d9e4a7a4bced  gcc/testsuite/ada/acats/tests/c9/c93008b.ada
! 84c45a691f716f13c1acb83d5af7418d  gcc/testsuite/ada/acats/tests/c9/c940001.a
! 99f1785334b15c78f6c402eb9581f820  gcc/testsuite/ada/acats/tests/c9/c940002.a
! d4515a061510c374dc4e3b73047c01bd  gcc/testsuite/ada/acats/tests/c9/c940004.a
! 982944ab84b1e87938411f5e230c4afe  gcc/testsuite/ada/acats/tests/c9/c940005.a
! 24e534dd458f6d60deaffb89427151e3  gcc/testsuite/ada/acats/tests/c9/c940006.a
! ae39153ecdb5b40b7e250621dda2a947  gcc/testsuite/ada/acats/tests/c9/c940007.a
! ed93c06c8fbc77ffcb96431dac0e7567  gcc/testsuite/ada/acats/tests/c9/c940010.a
! b5f59a7bcad9207813e580204d7d297d  gcc/testsuite/ada/acats/tests/c9/c940011.a
! 2cc5af1321a3389a051ba331add4436e  gcc/testsuite/ada/acats/tests/c9/c940012.a
! 46c8ffa64ae0068a1674cd8386b42f41  gcc/testsuite/ada/acats/tests/c9/c940013.a
! 9fac2bc0e89e8f222104978b3d1eaf3b  gcc/testsuite/ada/acats/tests/c9/c940014.a
! 004d847da87db0a9fe57406d26459dfd  gcc/testsuite/ada/acats/tests/c9/c940015.a
! 47e9712a5187d745e5ab17e658f2f210  gcc/testsuite/ada/acats/tests/c9/c940016.a
! d6c7936f3b8d4c1d418f288e59676083  gcc/testsuite/ada/acats/tests/c9/c94001a.ada
! dbb8668731806fd13d24f9f4652011a1  gcc/testsuite/ada/acats/tests/c9/c94001b.ada
! 2a37c7d38240abcbac6ce81990a474e8  gcc/testsuite/ada/acats/tests/c9/c94001c.ada
! 5b89b2c47939e01428fda5cdb7b76bfc  gcc/testsuite/ada/acats/tests/c9/c94001e.ada
! 79b95e3bce431f5a1d5d5264c35ba5a9  gcc/testsuite/ada/acats/tests/c9/c94001f.ada
! 77a4dc124639ae407e5aca42c786703a  gcc/testsuite/ada/acats/tests/c9/c94001g.ada
! d99ad4e9eb32c130ce020dfc0891014e  gcc/testsuite/ada/acats/tests/c9/c94002a.ada
! ea931758bd0eaf85c1c1a04b2f7c71de  gcc/testsuite/ada/acats/tests/c9/c94002b.ada
! 131233ea081ac6ea10a1e10fbba005f2  gcc/testsuite/ada/acats/tests/c9/c94002d.ada
! 170256ffad705761ef2331d6d2a07771  gcc/testsuite/ada/acats/tests/c9/c94002e.ada
! 066f90e14b935717dde3fa4b96807563  gcc/testsuite/ada/acats/tests/c9/c94002f.ada
! 8a13ee6acd0d6f24e23333f06259df08  gcc/testsuite/ada/acats/tests/c9/c94002g.ada
! edbadeb0fe0aa698afbadafa8f3436bd  gcc/testsuite/ada/acats/tests/c9/c94004a.ada
! 1b81499cc92f2a4727604818b28d5028  gcc/testsuite/ada/acats/tests/c9/c94004b.ada
! 3a8b33e638dc0e28266a8e016eeec4fe  gcc/testsuite/ada/acats/tests/c9/c94004c.ada
! 2363fc8f9fa540996dd00c6b70dcb3fb  gcc/testsuite/ada/acats/tests/c9/c94005a.ada
! 25c866c01dd0b62ce66fb2d8912da8b6  gcc/testsuite/ada/acats/tests/c9/c94005b.ada
! 58ea156e98cc4536f068259cb7d392ce  gcc/testsuite/ada/acats/tests/c9/c94006a.ada
! 41842cea07ae1bf2ef7a3f649e4ae367  gcc/testsuite/ada/acats/tests/c9/c94007a.ada
! 0d97216a40757079eb2c5929715d2b99  gcc/testsuite/ada/acats/tests/c9/c94007b.ada
! 4c0be4d154afe78593220fcb4ce1db68  gcc/testsuite/ada/acats/tests/c9/c94008a.ada
! 96e113f41f41a01c2196b7773e735c4f  gcc/testsuite/ada/acats/tests/c9/c94008b.ada
! 17f5eb44b8190ee09e9f0ffcffe2e7a4  gcc/testsuite/ada/acats/tests/c9/c94008c.ada
! c810cc6ac3bebe36845e2cba4e525930  gcc/testsuite/ada/acats/tests/c9/c94008d.ada
! ee84f56d88a1ac003b078ea49001e5fa  gcc/testsuite/ada/acats/tests/c9/c94010a.ada
! 136872ec7f9870731797ab20b32f6696  gcc/testsuite/ada/acats/tests/c9/c94011a.ada
! a8508d1bdacc8da03549a92370d18ed0  gcc/testsuite/ada/acats/tests/c9/c94020a.ada
! 54dba96923cbd3444b91d1706e737c16  gcc/testsuite/ada/acats/tests/c9/c940a03.a
! 14ac629d930514b19edd9d5fa73cf107  gcc/testsuite/ada/acats/tests/c9/c95008a.ada
! b48683e2458942b3ffc46be9054c7911  gcc/testsuite/ada/acats/tests/c9/c95009a.ada
! b4adaad3668499bb335d018420c56f91  gcc/testsuite/ada/acats/tests/c9/c95010a.ada
! 2900d4b177d19e9f35c4693ea6b14ec8  gcc/testsuite/ada/acats/tests/c9/c95011a.ada
! 880dc25ba16839f531364b6a8427aab6  gcc/testsuite/ada/acats/tests/c9/c95012a.ada
! 701e89d7711a71b3be5269c5238a18c7  gcc/testsuite/ada/acats/tests/c9/c95021a.ada
! c091dcb9509e234377d2ac8ee75d10e0  gcc/testsuite/ada/acats/tests/c9/c95022a.ada
! 65035c12f67d253a2397d2126f4ba6c6  gcc/testsuite/ada/acats/tests/c9/c95022b.ada
! cc0f07ec1171a66007308281b576f7c4  gcc/testsuite/ada/acats/tests/c9/c95033a.ada
! 4de48cf31bf233b1fdc87aeffb9972de  gcc/testsuite/ada/acats/tests/c9/c95033b.ada
! cc9febfaeca52b7d6647ca62001797e7  gcc/testsuite/ada/acats/tests/c9/c95034a.ada
! d5302e6651eeb53974a9d013a4cdedc8  gcc/testsuite/ada/acats/tests/c9/c95034b.ada
! 60c5c5f334073dc4d79928f49152f582  gcc/testsuite/ada/acats/tests/c9/c95035a.ada
! 3eda3680c647ff3fb263637efebd9f65  gcc/testsuite/ada/acats/tests/c9/c95040a.ada
! 8e8e82ad5bdec76ed6e7c4ae88a3b54f  gcc/testsuite/ada/acats/tests/c9/c95040b.ada
! ed765b423843bd4ca78de15c1b071692  gcc/testsuite/ada/acats/tests/c9/c95040c.ada
! 30e738c92230ba86578f011623e5802a  gcc/testsuite/ada/acats/tests/c9/c95040d.ada
! 168221198b482975d09392b2fcad8a7b  gcc/testsuite/ada/acats/tests/c9/c95041a.ada
! c6313618d1cd8a8218dcd446fd95a86e  gcc/testsuite/ada/acats/tests/c9/c95065a.ada
! 8832636689a3eda560469f04cfa76418  gcc/testsuite/ada/acats/tests/c9/c95065b.ada
! 5aaadcb32b841fad9f31245493b516f6  gcc/testsuite/ada/acats/tests/c9/c95065c.ada
! a39b19410538e12fdfcb7cd54d120b3f  gcc/testsuite/ada/acats/tests/c9/c95065d.ada
! 383b7f01039162f8c331982cca1d1827  gcc/testsuite/ada/acats/tests/c9/c95065e.ada
! c184eac9dc26cf8493bcf20a949ae191  gcc/testsuite/ada/acats/tests/c9/c95065f.ada
! 5b0b09d3d393123f8092b9dd3d7d2634  gcc/testsuite/ada/acats/tests/c9/c95066a.ada
! 645546a6994e4d75b178f9fe0ead2ec8  gcc/testsuite/ada/acats/tests/c9/c95067a.ada
! 0d96b6a028d1fbdc1198cf477386cb10  gcc/testsuite/ada/acats/tests/c9/c95071a.ada
! 1252b71f747f12dc764f40b587be838a  gcc/testsuite/ada/acats/tests/c9/c95072a.ada
! bd5b6bb2bf3ba074df027795aaa7db33  gcc/testsuite/ada/acats/tests/c9/c95072b.ada
! befede1120f2f7955e0b77c883265e25  gcc/testsuite/ada/acats/tests/c9/c95073a.ada
! 48c97fe967f3c5e1bc663c5d91ed55bd  gcc/testsuite/ada/acats/tests/c9/c95074c.ada
! 6aaf0bf21901d478c7f10321b1c232fc  gcc/testsuite/ada/acats/tests/c9/c95076a.ada
! ba053d263ff25d0fe8b66c68cb7bb311  gcc/testsuite/ada/acats/tests/c9/c95078a.ada
! a7e9f0e064ac2a29ebe79a19983758dc  gcc/testsuite/ada/acats/tests/c9/c95080b.ada
! 73fa133c9eac6146a770bb5525331e35  gcc/testsuite/ada/acats/tests/c9/c95082g.ada
! 61f2b9320583cc5ff1eca06b3e8cd887  gcc/testsuite/ada/acats/tests/c9/c95085a.ada
! 9e1cf3433f8341a6b183079a377b0fad  gcc/testsuite/ada/acats/tests/c9/c95085b.ada
! e39dbe6050c2679aa6a7d89c762e8c0a  gcc/testsuite/ada/acats/tests/c9/c95085c.ada
! 6c946d9a6886fc8b7d6145f3958a1016  gcc/testsuite/ada/acats/tests/c9/c95085d.ada
! c8c26f8183027ac456df33b272a0e185  gcc/testsuite/ada/acats/tests/c9/c95085e.ada
! e29633617dcca72904423b7e09ea1401  gcc/testsuite/ada/acats/tests/c9/c95085f.ada
! 3e1d9c4d7627f1b32df23e0787f1ae30  gcc/testsuite/ada/acats/tests/c9/c95085g.ada
! 55b52211957a2231b59c295b91e1bbfe  gcc/testsuite/ada/acats/tests/c9/c95085h.ada
! f472998d938475a0a5b7c61c4a994dbe  gcc/testsuite/ada/acats/tests/c9/c95085i.ada
! e7d6c7d1e457a9097de27a4d4b6df67e  gcc/testsuite/ada/acats/tests/c9/c95085j.ada
! 9dcf6b0120351dbd31ca6b3b07007dda  gcc/testsuite/ada/acats/tests/c9/c95085k.ada
! f65f9568bbdcba31e56e46a1bff7a8a7  gcc/testsuite/ada/acats/tests/c9/c95085l.ada
! 2794ec3980004ff90d3fdda0ebeb57be  gcc/testsuite/ada/acats/tests/c9/c95085m.ada
! cd5e6789b1381a01c8abe9b8efc437eb  gcc/testsuite/ada/acats/tests/c9/c95085n.ada
! ec751b6898b7a50e0c7e413ac04f3096  gcc/testsuite/ada/acats/tests/c9/c95085o.ada
! 4d079ed4815a2d61d769f5571e546504  gcc/testsuite/ada/acats/tests/c9/c95086a.ada
! 3f5ba7557a56b3376b0d11a44977eb6b  gcc/testsuite/ada/acats/tests/c9/c95086b.ada
! 4423694080505c12206b273d44b25a6c  gcc/testsuite/ada/acats/tests/c9/c95086c.ada
! 9ddcd960179a50f19400614669ee58dd  gcc/testsuite/ada/acats/tests/c9/c95086d.ada
! b943966db2007cce0bd0ab55a7241cb6  gcc/testsuite/ada/acats/tests/c9/c95086e.ada
! 63af3fb63913a9ced35b10b55e03d16c  gcc/testsuite/ada/acats/tests/c9/c95086f.ada
! fb4e2598701ac2222961218c56e9989e  gcc/testsuite/ada/acats/tests/c9/c95087a.ada
! 6ca41778e752016a3cb5f39d3655160a  gcc/testsuite/ada/acats/tests/c9/c95087b.ada
! b77cd9cab875027ed13370d439f3d83a  gcc/testsuite/ada/acats/tests/c9/c95087c.ada
! 94c2f92c8d38ace856b3d3a4e46e2f10  gcc/testsuite/ada/acats/tests/c9/c95087d.ada
! 8ace111d2db71af514234c843bcdc774  gcc/testsuite/ada/acats/tests/c9/c95088a.ada
! 3eab89caa6cfdaad3ecaee2fb3a9de67  gcc/testsuite/ada/acats/tests/c9/c95089a.ada
! c23a0d393dfca230669443fa90939e9e  gcc/testsuite/ada/acats/tests/c9/c95090a.ada
! 2dea0b25d5837e3f040a606b74b5bfe7  gcc/testsuite/ada/acats/tests/c9/c95092a.ada
! da5b15c611f0e80c4bd500a6377cf1fb  gcc/testsuite/ada/acats/tests/c9/c95093a.ada
! 411e85f00716bde0eb4bebe2dd4a4b17  gcc/testsuite/ada/acats/tests/c9/c95095a.ada
! 20d01625fd521f83c0fbb4e0d5989f1c  gcc/testsuite/ada/acats/tests/c9/c95095b.ada
! f1a2d7fb3c08ba5c9b45d28b8c434cf9  gcc/testsuite/ada/acats/tests/c9/c95095c.ada
! fe6c832ec4b8584b35ad79ad6f658734  gcc/testsuite/ada/acats/tests/c9/c95095d.ada
! d71ab35932ba486e65cee5d0a7ea6c58  gcc/testsuite/ada/acats/tests/c9/c95095e.ada
! b665ab275e30b4a49c6a32d1c1b8d3b0  gcc/testsuite/ada/acats/tests/c9/c951001.a
! 31bba47fca22f334739b1cb13505c63f  gcc/testsuite/ada/acats/tests/c9/c951002.a
! 380eef904bedee70e470eec6283fe7fa  gcc/testsuite/ada/acats/tests/c9/c953001.a
! 8b4cbf1e111e939494dbd6c9170d9add  gcc/testsuite/ada/acats/tests/c9/c953002.a
! b85e67ebb144368e710912fad26fa9b5  gcc/testsuite/ada/acats/tests/c9/c953003.a
! 349793c14b6ee642849a35ac147f6d28  gcc/testsuite/ada/acats/tests/c9/c954001.a
! 32a2b22071eb90de620dac85832e7e33  gcc/testsuite/ada/acats/tests/c9/c954010.a
! 5c71f334e75e4b81847ba6609055a721  gcc/testsuite/ada/acats/tests/c9/c954011.a
! 0f6b02e34f34de574c7f90adcb78c1d3  gcc/testsuite/ada/acats/tests/c9/c954012.a
! 0af78b179cbaf289947a4b0cc90e1b92  gcc/testsuite/ada/acats/tests/c9/c954013.a
! 498084096b8ec59a36a889374ad9ee3e  gcc/testsuite/ada/acats/tests/c9/c954014.a
! 97799887dcbf60005b2df40f05636514  gcc/testsuite/ada/acats/tests/c9/c954015.a
! 2490fc80b69ada26f8142dacebcc5823  gcc/testsuite/ada/acats/tests/c9/c954016.a
! 23e5c9126dfc78e228cd9ba7e9fd2f4d  gcc/testsuite/ada/acats/tests/c9/c954017.a
! bdfa1b9ada52a8082dfc30a91d56af89  gcc/testsuite/ada/acats/tests/c9/c954018.a
! e039ba87aa8e5a87f7f74695cc19d917  gcc/testsuite/ada/acats/tests/c9/c954019.a
! 718a1dda410ad24ef00a024b2e415626  gcc/testsuite/ada/acats/tests/c9/c954020.a
! 8f5a7fd94fd12664cdd2a1cedfcad90c  gcc/testsuite/ada/acats/tests/c9/c954021.a
! 34dbbc567c8a72d4e43da4684357c65d  gcc/testsuite/ada/acats/tests/c9/c954022.a
! acd00fcab6e1b0d13797a97adc97adb7  gcc/testsuite/ada/acats/tests/c9/c954023.a
! 2b49282ca4813eb7610dffe2400f50ff  gcc/testsuite/ada/acats/tests/c9/c954024.a
! 2331b8760176763cf23ae6f18488082f  gcc/testsuite/ada/acats/tests/c9/c954025.a
! 6bd1092f468dab44c0887902809a3c13  gcc/testsuite/ada/acats/tests/c9/c954026.a
! 97487e5b93226e3c55df7449702ac3da  gcc/testsuite/ada/acats/tests/c9/c954a01.a
! d07c1374471df9299b8057f6479a45e6  gcc/testsuite/ada/acats/tests/c9/c954a02.a
! b1b9ce862c0b325027b8ea2d1d8cc916  gcc/testsuite/ada/acats/tests/c9/c954a03.a
! d02e3ef0eb5c7ba2f412817b49644270  gcc/testsuite/ada/acats/tests/c9/c960001.a
! da6bb14a212aa02754b6596d741c04b8  gcc/testsuite/ada/acats/tests/c9/c960002.a
! 4c5c6b7d7706870241781f97576eef1b  gcc/testsuite/ada/acats/tests/c9/c960004.a
! f703a55c27d27529f63150ba86c8e428  gcc/testsuite/ada/acats/tests/c9/c96001a.ada
! 3551216de1ec0430cae6be8fbba64031  gcc/testsuite/ada/acats/tests/c9/c96004a.ada
! 2f64957621aaee0d11d2f8171f4e6709  gcc/testsuite/ada/acats/tests/c9/c96005a.ada
! 7fad724f14640158cc9929364f0bb44f  gcc/testsuite/ada/acats/tests/c9/c96005b.tst
! 6e3aebd279f9456cefe6dc63b3b9331e  gcc/testsuite/ada/acats/tests/c9/c96005d.ada
! 48530b441ec07b282f87a1b285f46461  gcc/testsuite/ada/acats/tests/c9/c96005f.ada
! 4ea722032f17d484d0a99cb53bc930ac  gcc/testsuite/ada/acats/tests/c9/c96006a.ada
! 83d75c4aa3732428ebf8864a605ee0d4  gcc/testsuite/ada/acats/tests/c9/c96007a.ada
! 031bef964d04e0ec5db2ff1f13daa5c1  gcc/testsuite/ada/acats/tests/c9/c96008a.ada
! f1d6b97aec5c567380c522a41db1aba7  gcc/testsuite/ada/acats/tests/c9/c96008b.ada
! 9f6fd5618561fb30c4c3b3865512f084  gcc/testsuite/ada/acats/tests/c9/c97112a.ada
! 9a595e747efc52363c8c454c5697526c  gcc/testsuite/ada/acats/tests/c9/c97113a.ada
! 0a432c8f0bafafbfd3ca9e2c4c355355  gcc/testsuite/ada/acats/tests/c9/c97114a.ada
! f204e89327ed70fed4f01e37237ed370  gcc/testsuite/ada/acats/tests/c9/c97115a.ada
! ad10c842934da9fd10b075d2eda11b10  gcc/testsuite/ada/acats/tests/c9/c97116a.ada
! 4e1bee03164214d6b948f1c4d7727423  gcc/testsuite/ada/acats/tests/c9/c97117a.ada
! f316b207affd7df5674d718268b31bd7  gcc/testsuite/ada/acats/tests/c9/c97117b.ada
! c15c876df898d95befc462a0646f94e6  gcc/testsuite/ada/acats/tests/c9/c97117c.ada
! 06046e05a2477dc8986dff46f6adb19d  gcc/testsuite/ada/acats/tests/c9/c97118a.ada
! 713383a150292af0da0dc77e7a23ab4b  gcc/testsuite/ada/acats/tests/c9/c97120a.ada
! 1edcf8a00884d843f01295b66b3346ed  gcc/testsuite/ada/acats/tests/c9/c97120b.ada
! d6606fac2f86c01ef106a193d274ec96  gcc/testsuite/ada/acats/tests/c9/c97201a.ada
! 2be86a6c8f33794ef758dfb71bf75acd  gcc/testsuite/ada/acats/tests/c9/c97201b.ada
! 32743b2ed9403b69d98c56734934fa8f  gcc/testsuite/ada/acats/tests/c9/c97201c.ada
! 1feeeccbfc144d846a5fac5dc371b1ab  gcc/testsuite/ada/acats/tests/c9/c97201d.ada
! 4b003338cd3cfce9c7070dea4b8370a1  gcc/testsuite/ada/acats/tests/c9/c97201e.ada
! 383c30d1a9dc6fba56fb3b68b9d8417d  gcc/testsuite/ada/acats/tests/c9/c97201g.ada
! 2a874dccde240e48a4f9b0c6b5175219  gcc/testsuite/ada/acats/tests/c9/c97201h.ada
! a7aec17b036081fd245c141c14cea8c3  gcc/testsuite/ada/acats/tests/c9/c97201x.ada
! 8b04c9ca3ccf2bd719076369af023d12  gcc/testsuite/ada/acats/tests/c9/c97202a.ada
! 096a975a5320d43a7ba562f9f18d94e6  gcc/testsuite/ada/acats/tests/c9/c97203a.ada
! 4470e62031e7933d85cbc73da17fef70  gcc/testsuite/ada/acats/tests/c9/c97203b.ada
! 64b03c91289d25db071b852a88b5d9cb  gcc/testsuite/ada/acats/tests/c9/c97203c.ada
! ddc6cf33bc17eabf4869adcc1d29e3d0  gcc/testsuite/ada/acats/tests/c9/c97204a.ada
! d4911cea3ce93679f126d507a45d22fa  gcc/testsuite/ada/acats/tests/c9/c97204b.ada
! f112637a1de7d372487415fe7c563edd  gcc/testsuite/ada/acats/tests/c9/c97205a.ada
! 5532215767fea9cf0ff3d5a28af0ffbf  gcc/testsuite/ada/acats/tests/c9/c97205b.ada
! 01050a4da75368f4c45e1856db21fe08  gcc/testsuite/ada/acats/tests/c9/c97301a.ada
! 3bb292049b1010404ee847832e15f4fd  gcc/testsuite/ada/acats/tests/c9/c97301b.ada
! dc309970b8d1ee31a4ac51d708f59f23  gcc/testsuite/ada/acats/tests/c9/c97301c.ada
! 85087bd563a15cb83cb82906dd074b46  gcc/testsuite/ada/acats/tests/c9/c97301d.ada
! cf609a3a37b7091f993fde3ebec98b7b  gcc/testsuite/ada/acats/tests/c9/c97301e.ada
! fb0f6367a2cb242d11e68bb0833594c9  gcc/testsuite/ada/acats/tests/c9/c97302a.ada
! ee3941e300e101619899d4ce5e433914  gcc/testsuite/ada/acats/tests/c9/c97303a.ada
! 0c9b0b786acee85921087f08e05ee848  gcc/testsuite/ada/acats/tests/c9/c97303b.ada
! dca0cd362816588d4976d342beb2593d  gcc/testsuite/ada/acats/tests/c9/c97303c.ada
! cb2ab9f96734f02dcf13d24f2e73aec3  gcc/testsuite/ada/acats/tests/c9/c97304a.ada
! d754e67cb299985d2d7ab32f0d7831d4  gcc/testsuite/ada/acats/tests/c9/c97304b.ada
! 2f91d4b7e4df271c291c8528b0ac77c5  gcc/testsuite/ada/acats/tests/c9/c97305a.ada
! 99ee5abaa01d4f88e63554c6c77981a8  gcc/testsuite/ada/acats/tests/c9/c97305b.ada
! 5a1e95417e5dc56ea2eaa24f2cb98647  gcc/testsuite/ada/acats/tests/c9/c97305c.ada
! fa76b14386e1262d53b830ca97f97d45  gcc/testsuite/ada/acats/tests/c9/c97305d.ada
! 6fc73ebaa144622a8c55a755858c8214  gcc/testsuite/ada/acats/tests/c9/c97307a.ada
! 3159a203f1d3e85954c526f58a3919f1  gcc/testsuite/ada/acats/tests/c9/c974001.a
! 0314ba23ab70ea268178d5697c5a9034  gcc/testsuite/ada/acats/tests/c9/c974002.a
! f748892726b6f9f427e087ed38edff1e  gcc/testsuite/ada/acats/tests/c9/c974003.a
! 68b75700dc10aa1f753b947e8cfc83f7  gcc/testsuite/ada/acats/tests/c9/c974004.a
! c9f29dff7d0c7abcfdc4dd10f92cc818  gcc/testsuite/ada/acats/tests/c9/c974005.a
! 58bc14008a240c1458d789aea37231f5  gcc/testsuite/ada/acats/tests/c9/c974006.a
! 6386f90159d93f8e888fc5c7606c48ab  gcc/testsuite/ada/acats/tests/c9/c974007.a
! 091b77c15a7a69901928f3e08e5d560b  gcc/testsuite/ada/acats/tests/c9/c974008.a
! 4286211e8302b327c6fcddd998068801  gcc/testsuite/ada/acats/tests/c9/c974009.a
! 91418d184ffd74f3511f7c7fecf5ad4c  gcc/testsuite/ada/acats/tests/c9/c974010.a
! fb71769796ae10266d6396de27fcd9f3  gcc/testsuite/ada/acats/tests/c9/c974011.a
! 75ae944a2f56bfec34a43bcac81f0f6a  gcc/testsuite/ada/acats/tests/c9/c974012.a
! cf3493d33888a126779c4a1fd8c7e171  gcc/testsuite/ada/acats/tests/c9/c974013.a
! 0100f02b896d741021d8771778c05fe4  gcc/testsuite/ada/acats/tests/c9/c974014.a
! 120dd4802d990998dbefafba1d6bdf05  gcc/testsuite/ada/acats/tests/c9/c980001.a
! 98a89250f238d2d958192b464be9c644  gcc/testsuite/ada/acats/tests/c9/c980002.a
! 387e8d4bc42079cf88da235a35d5db46  gcc/testsuite/ada/acats/tests/c9/c980003.a
! 8c9e7662d2c57ef91bde2dbdd2ceaade  gcc/testsuite/ada/acats/tests/c9/c99004a.ada
! 4a6308ea54645ac0a0ff6750ddff3bee  gcc/testsuite/ada/acats/tests/c9/c99005a.ada
! 0ade252d597ba9f5685bfdbc39ad5126  gcc/testsuite/ada/acats/tests/c9/c9a003a.ada
! f6efef2daeceae0601810ea34d294ebe  gcc/testsuite/ada/acats/tests/c9/c9a004a.ada
! dd8112b4d2ad70bb900170e976687d24  gcc/testsuite/ada/acats/tests/c9/c9a007a.ada
! d7d23b9be56f63a7a3eb64ae5740a50f  gcc/testsuite/ada/acats/tests/c9/c9a009a.ada
! 4a79ec0aad1fb7e6af0cb13c26c8a078  gcc/testsuite/ada/acats/tests/c9/c9a009c.ada
! a6fedb4d1bd7420511136db146b4479f  gcc/testsuite/ada/acats/tests/c9/c9a009f.ada
! 92177b39404bc5c23481f443eee705e0  gcc/testsuite/ada/acats/tests/c9/c9a009g.ada
! 56b8d40db1bb38ab15ba53a518a8e8e3  gcc/testsuite/ada/acats/tests/c9/c9a009h.ada
! 378ed54deee6ae14733d353d1d034e4e  gcc/testsuite/ada/acats/tests/c9/c9a010a.ada
! 7e86b851f4df1a5b809ec8656042b7f1  gcc/testsuite/ada/acats/tests/c9/c9a011a.ada
! 15b92866c3feb68befd87bd433944eee  gcc/testsuite/ada/acats/tests/c9/c9a011b.ada
! 204dadfff9a19c758cd37f55b4c4da7c  gcc/testsuite/ada/acats/tests/ca/ca1003a.ada
! 763e67e5131cf453849af1119c81ab73  gcc/testsuite/ada/acats/tests/ca/ca1004a.ada
! 4dd6d7580352576ccd7263ab195d5863  gcc/testsuite/ada/acats/tests/ca/ca1005a.ada
! 129a313a5c15d69fc95b27e10654ea3b  gcc/testsuite/ada/acats/tests/ca/ca1006a.ada
! 150e449e50b6c5dbc1ef87fb7cbf4fb9  gcc/testsuite/ada/acats/tests/ca/ca1011a0.ada
! 590b512fe8313d2c235285182f8eda0d  gcc/testsuite/ada/acats/tests/ca/ca1011a1.ada
! 75907d5f95c902eae76627ab16c741b7  gcc/testsuite/ada/acats/tests/ca/ca1011a2.ada
! 401ad7f509f398efd9094cfb553d02ca  gcc/testsuite/ada/acats/tests/ca/ca1011a3.ada
! d6d2e55e299aae0f7b20781714e0f6d9  gcc/testsuite/ada/acats/tests/ca/ca1011a4.ada
! e840ac05d90e7ef06dac4303f5747d0c  gcc/testsuite/ada/acats/tests/ca/ca1011a5.ada
! 696cc4292fd590eaf3673d74b1c0c4f9  gcc/testsuite/ada/acats/tests/ca/ca1011a6.ada
! 19ae39e48cdc2ea32ddbde00fdb0bf17  gcc/testsuite/ada/acats/tests/ca/ca1012a0.ada
! c3bd20289c2b3b2422a8e051dfc8b100  gcc/testsuite/ada/acats/tests/ca/ca1012a1.ada
! 010a8d3290ef3a0b00bcbe784544f65f  gcc/testsuite/ada/acats/tests/ca/ca1012a2.ada
! 49dff1e5fe3bc3d0814772fe822732a9  gcc/testsuite/ada/acats/tests/ca/ca1012a3.ada
! 3660d5d1740e1e424e76277266bd8268  gcc/testsuite/ada/acats/tests/ca/ca1012a4.ada
! 2a073bfb3680a6d94b420c58b535dda1  gcc/testsuite/ada/acats/tests/ca/ca1012b0.ada
! 1d0a019e12d9aec35762beffba68a14a  gcc/testsuite/ada/acats/tests/ca/ca1012b2.ada
! 8fe092748b9f031c395eb8aa90296599  gcc/testsuite/ada/acats/tests/ca/ca1012b4.ada
! 2ee859ea2c2cb8cd94e30b6c19c152f7  gcc/testsuite/ada/acats/tests/ca/ca1013a0.ada
! a15e85ff9101c6b7debdc0a508f121b6  gcc/testsuite/ada/acats/tests/ca/ca1013a1.ada
! 03baa6347b38eb86dabe6092928f99a3  gcc/testsuite/ada/acats/tests/ca/ca1013a2.ada
! a81d2aa44c2ded0527dbc731919e9089  gcc/testsuite/ada/acats/tests/ca/ca1013a3.ada
! baa2f985db9330503fee62fb421c3429  gcc/testsuite/ada/acats/tests/ca/ca1013a4.ada
! 9fc93552ea16f09c4c827809b41b3281  gcc/testsuite/ada/acats/tests/ca/ca1013a5.ada
! eb0f6d8e24d16363c032c027a7fb22d5  gcc/testsuite/ada/acats/tests/ca/ca1013a6.ada
! b35c89f01ddf1fa22d017dd159aac614  gcc/testsuite/ada/acats/tests/ca/ca1014a0.ada
! 5077be000dc1a7e1b7b61ca260535b47  gcc/testsuite/ada/acats/tests/ca/ca1014a1.ada
! 0d51872b8ac47d25b56ce86661e1c370  gcc/testsuite/ada/acats/tests/ca/ca1014a2.ada
! 29a9a130e24e0e0ced6be54af8af32af  gcc/testsuite/ada/acats/tests/ca/ca1014a3.ada
! bda7cf51d24fabf05ab2eb537ba61e3b  gcc/testsuite/ada/acats/tests/ca/ca1020e0.ada
! e875db44aa84c70db8ae5e21b37fd9f1  gcc/testsuite/ada/acats/tests/ca/ca1020e1.ada
! 3f26efdf7d61547aec29a83c55db9b2c  gcc/testsuite/ada/acats/tests/ca/ca1020e2.ada
! d41b12fbbd6a609065e3a66751a2bcfd  gcc/testsuite/ada/acats/tests/ca/ca1020e3.ada
! 94d90f2a39051c6c6e6f143035815676  gcc/testsuite/ada/acats/tests/ca/ca1022a0.ada
! 522a519bdf3184fbe9c278d90eaa0c51  gcc/testsuite/ada/acats/tests/ca/ca1022a1.ada
! 457d2a59db3a3a962c68d076c3588ba2  gcc/testsuite/ada/acats/tests/ca/ca1022a2.ada
! bead0060014fd3fff3245a6f20e1ce5d  gcc/testsuite/ada/acats/tests/ca/ca1022a3.ada
! 7043e3690e3b44d0a6dcf5a6e896118c  gcc/testsuite/ada/acats/tests/ca/ca1022a4.ada
! a84d185297f5e0df081a4d1c5691575a  gcc/testsuite/ada/acats/tests/ca/ca1022a5.ada
! 3170507b82e5b87d289d4cc70305ba1c  gcc/testsuite/ada/acats/tests/ca/ca1022a6.ada
! 43efb4507d79b8829492325770ec57e8  gcc/testsuite/ada/acats/tests/ca/ca11001.a
! ac29fbda8eadae439bcd450881bc7149  gcc/testsuite/ada/acats/tests/ca/ca11002.a
! b9954b4449d887004c58cdfadf86900e  gcc/testsuite/ada/acats/tests/ca/ca11003.a
! 5858be41247b333a8e43986902fba588  gcc/testsuite/ada/acats/tests/ca/ca110040.a
! a977e479cabfc8bfede672c52d423864  gcc/testsuite/ada/acats/tests/ca/ca110041.a
! a2118dee2a16348d232ec7617376dade  gcc/testsuite/ada/acats/tests/ca/ca110042.am
! 4a8c0c2b4dd227cfda4c20ad9ff07ace  gcc/testsuite/ada/acats/tests/ca/ca110050.a
! 0583459492312df56b1924ffe5b094bd  gcc/testsuite/ada/acats/tests/ca/ca110051.am
! bc46a97640375fa6c02bac82bd0ea9d4  gcc/testsuite/ada/acats/tests/ca/ca11006.a
! 7a57ba0892ae966f0111911781c328a7  gcc/testsuite/ada/acats/tests/ca/ca11007.a
! 72dc8d276317eabd399e4b72e562434b  gcc/testsuite/ada/acats/tests/ca/ca11008.a
! 33d1886825125a9ff16aafa1d4eeb8ce  gcc/testsuite/ada/acats/tests/ca/ca11009.a
! 6009d53581cd1fedaaa5f8df00bec83f  gcc/testsuite/ada/acats/tests/ca/ca11010.a
! 41dc04e344132ae2173153f802896e15  gcc/testsuite/ada/acats/tests/ca/ca11011.a
! d28dd7fd562acb52e90429450077885b  gcc/testsuite/ada/acats/tests/ca/ca11012.a
! 3b4e1d1303122a2165d7a89e5ca75ec0  gcc/testsuite/ada/acats/tests/ca/ca11013.a
! e80e120c9035b007bb06c2accccbc2b3  gcc/testsuite/ada/acats/tests/ca/ca11014.a
! 97408d6755af6eeab48fe47d27144c12  gcc/testsuite/ada/acats/tests/ca/ca11015.a
! 8b415d0e8ca6c7725a02853b184967b4  gcc/testsuite/ada/acats/tests/ca/ca11016.a
! 5b1b2a824041eeb6d0560a6e32d48287  gcc/testsuite/ada/acats/tests/ca/ca11017.a
! df67588f2af1ce9fe9abd12c930a475a  gcc/testsuite/ada/acats/tests/ca/ca11018.a
! d51c3aaeac91d325c8cea73a18210a18  gcc/testsuite/ada/acats/tests/ca/ca11019.a
! 1740b30abc976744100e38e3bcf58e99  gcc/testsuite/ada/acats/tests/ca/ca11020.a
! 3a6518f945e25a1aeb3ad194d1563dff  gcc/testsuite/ada/acats/tests/ca/ca11021.a
! 5af82e195906ba434bd96462dc39c4c1  gcc/testsuite/ada/acats/tests/ca/ca11022.a
! dccf8acb158b9eac07884aeacd894def  gcc/testsuite/ada/acats/tests/ca/ca1102a0.ada
! 2ed4ef9cb779e0d0250f3094928e85b6  gcc/testsuite/ada/acats/tests/ca/ca1102a1.ada
! d658c78d3feceb2e1e932fd6a6b84b5b  gcc/testsuite/ada/acats/tests/ca/ca1102a2.ada
! 50c4e887be1e9c4b7922f1519eb6c980  gcc/testsuite/ada/acats/tests/ca/ca1106a.ada
! b777b7cb27b27b07d7781e4ffd98a4ac  gcc/testsuite/ada/acats/tests/ca/ca1108a.ada
! 2f0f9c93c1bcab591f855d52670c37f0  gcc/testsuite/ada/acats/tests/ca/ca1108b.ada
! d320add603a2cb7fa5b0b27eb3cf9f99  gcc/testsuite/ada/acats/tests/ca/ca11a01.a
! 564d10a7c04f96788c8960fbe51c939e  gcc/testsuite/ada/acats/tests/ca/ca11a02.a
! c5b8e3a142a8d1aaf458e85e143d2dff  gcc/testsuite/ada/acats/tests/ca/ca11b01.a
! 385324ae1a50700efcc3e91d33d38fa7  gcc/testsuite/ada/acats/tests/ca/ca11b02.a
! f3ab6e0bea1b83fcd4c3a152e700e0bc  gcc/testsuite/ada/acats/tests/ca/ca11c01.a
! 71af51028e9bdd5cbcd5d81ee9beb0b5  gcc/testsuite/ada/acats/tests/ca/ca11c02.a
! 623cecaae9f9690a91d838f3795828e4  gcc/testsuite/ada/acats/tests/ca/ca11c03.a
! d0d1001f9819954c3537dd82876810a2  gcc/testsuite/ada/acats/tests/ca/ca11d010.a
! 9f2dd49cf5ff9af1c2217e51b7065e52  gcc/testsuite/ada/acats/tests/ca/ca11d011.a
! df976f60528d7144894c0dec4d84bc15  gcc/testsuite/ada/acats/tests/ca/ca11d012.a
! 6caa9498e84d76bdc74f46ac12a1a5e2  gcc/testsuite/ada/acats/tests/ca/ca11d013.am
! 0e13dcf32c88dedfbae0b03875ea105d  gcc/testsuite/ada/acats/tests/ca/ca11d02.a
! 352a0f61cf20bb4dd3caf17335850840  gcc/testsuite/ada/acats/tests/ca/ca11d03.a
! 196ff89b7529ee2981f4ecc32c27a27f  gcc/testsuite/ada/acats/tests/ca/ca13001.a
! a30bb2c455fbe1c012213193058ea38a  gcc/testsuite/ada/acats/tests/ca/ca13002.a
! 259d9991bd14633e726a1465b3ce011f  gcc/testsuite/ada/acats/tests/ca/ca13003.a
! 4a04a3ea16a7b5f16f46083006b00231  gcc/testsuite/ada/acats/tests/ca/ca13a01.a
! ef93a0b4b9d9c30a5f19c2e9d20d6e84  gcc/testsuite/ada/acats/tests/ca/ca13a02.a
! 14642bbab92bb9a06637c81126196b6d  gcc/testsuite/ada/acats/tests/ca/ca140230.a
! db8f6b8a7c3fb7fc6f41665ca76898aa  gcc/testsuite/ada/acats/tests/ca/ca140231.a
! 2c51220694c3930837b65093969330e9  gcc/testsuite/ada/acats/tests/ca/ca140232.am
! 97cc025b6e8c23ed35706e0ff98d4305  gcc/testsuite/ada/acats/tests/ca/ca140233.a
! 6df92dded9f1b1b9927e74380e21b606  gcc/testsuite/ada/acats/tests/ca/ca140280.a
! 6d433407d31454677f59a9de849b9a8a  gcc/testsuite/ada/acats/tests/ca/ca140281.a
! c7d9485411a37bafb94c4d619229cf30  gcc/testsuite/ada/acats/tests/ca/ca140282.a
! 0382d20f38d7c210393543ff57720eee  gcc/testsuite/ada/acats/tests/ca/ca140283.am
! 3ddbeeafbf30ff3f598a354d6504380d  gcc/testsuite/ada/acats/tests/ca/ca15003.a
! 3a4f3b580416cb1f523e9f0ac2eae79d  gcc/testsuite/ada/acats/tests/ca/ca200020.a
! 0a900895683bd2063208a7e0ec0179eb  gcc/testsuite/ada/acats/tests/ca/ca200021.a
! 7ba1dcfca4bbc7dddaa33358007ad8be  gcc/testsuite/ada/acats/tests/ca/ca200022.am
! 89e55ace469231379417158d76cef966  gcc/testsuite/ada/acats/tests/ca/ca2001h0.ada
! 4fcb3c9a010c482fd799920396bdff35  gcc/testsuite/ada/acats/tests/ca/ca2001h1.ada
! 74283fc28ee649c49603986ce9271f9b  gcc/testsuite/ada/acats/tests/ca/ca2001h2.ada
! 38f9b878948bab9e22743f449944e3e9  gcc/testsuite/ada/acats/tests/ca/ca2001h3.ada
! 5b863537f3743728296719d32393b9c2  gcc/testsuite/ada/acats/tests/ca/ca2002a0.ada
! bfbaab505e4866cb5784b784957c9a28  gcc/testsuite/ada/acats/tests/ca/ca2002a1.ada
! 0915a28827cb6de231954ac4c117a867  gcc/testsuite/ada/acats/tests/ca/ca2002a2.ada
! be28bd99026e48f3d74a229aea62f3d3  gcc/testsuite/ada/acats/tests/ca/ca2003a0.ada
! bbd409da60934657820661962e6e865f  gcc/testsuite/ada/acats/tests/ca/ca2003a1.ada
! e9823de02e5e243ffbc96966ad66f571  gcc/testsuite/ada/acats/tests/ca/ca2004a0.ada
! 2a6a75cbeb635fa9b353f4456f15887a  gcc/testsuite/ada/acats/tests/ca/ca2004a1.ada
! 9e55a07446b2c4b6f10c94a096696c64  gcc/testsuite/ada/acats/tests/ca/ca2004a2.ada
! 95743db093f3de73eef851e06ace6ae5  gcc/testsuite/ada/acats/tests/ca/ca2004a3.ada
! 9825991acff14d1e11e40a3568bb2e77  gcc/testsuite/ada/acats/tests/ca/ca2004a4.ada
! 1ed6b70320b71de2337bd1e17625341d  gcc/testsuite/ada/acats/tests/ca/ca2007a0.ada
! 2d33ec3a837a5a5e131936b8db94f4eb  gcc/testsuite/ada/acats/tests/ca/ca2007a1.ada
! 40ec1534c1b7d0a29cd8b1199f0a5b64  gcc/testsuite/ada/acats/tests/ca/ca2007a2.ada
! 25e21e36ad48e61821b87c24ac11bca6  gcc/testsuite/ada/acats/tests/ca/ca2007a3.ada
! 084eafcf0c9bde63eb9b0c876f25f904  gcc/testsuite/ada/acats/tests/ca/ca2008a0.ada
! c367605d05bd5ae5bf81c583e66e2720  gcc/testsuite/ada/acats/tests/ca/ca2008a1.ada
! c06ae786d36e4922cea7b5ed9453c9f3  gcc/testsuite/ada/acats/tests/ca/ca2008a2.ada
! e6666b45adcad1b99635211e793ed244  gcc/testsuite/ada/acats/tests/ca/ca2009a.ada
! 091802695ed73e62107b4d4d28c4fa67  gcc/testsuite/ada/acats/tests/ca/ca2009c0.ada
! d4908bcb77941027c20a57e38b3354df  gcc/testsuite/ada/acats/tests/ca/ca2009c1.ada
! 8793e38b06624960b964675c87a7bb50  gcc/testsuite/ada/acats/tests/ca/ca2009d.ada
! ebd60829cd41edbd06d5d34b1c55ad14  gcc/testsuite/ada/acats/tests/ca/ca2009f0.ada
! 84847d496c3551158605ff4d635fd1d6  gcc/testsuite/ada/acats/tests/ca/ca2009f1.ada
! 1b68aafa35a5844624d091cb512b83a3  gcc/testsuite/ada/acats/tests/ca/ca2009f2.ada
! 82a3883dad29bf7e9b2b43d245e96819  gcc/testsuite/ada/acats/tests/ca/ca2011b.ada
! a2806b84bcf970945201d14057ba77fb  gcc/testsuite/ada/acats/tests/ca/ca21001.a
! 9b176edf2b085f407ab53c6e7efa0bf0  gcc/testsuite/ada/acats/tests/ca/ca3011a0.ada
! a4e05800840beaa80583438f2fe8754d  gcc/testsuite/ada/acats/tests/ca/ca3011a1.ada
! c86a5bb82c1bade39f6d9d230f8c9e8e  gcc/testsuite/ada/acats/tests/ca/ca3011a2.ada
! dc43067ded3ab1437027708d7812aadb  gcc/testsuite/ada/acats/tests/ca/ca3011a3.ada
! b4bbe2bad37830cb59bac3673786910c  gcc/testsuite/ada/acats/tests/ca/ca3011a4.ada
! c29e663763861d160ff3432b1e522015  gcc/testsuite/ada/acats/tests/ca/ca5003a0.ada
! e5dcfd787f24d6dfedf73b0e116e1352  gcc/testsuite/ada/acats/tests/ca/ca5003a1.ada
! 248734cc36c6828c5b5d0a7c1293df27  gcc/testsuite/ada/acats/tests/ca/ca5003a2.ada
! 5497b59108e98e726b8af5fae575c343  gcc/testsuite/ada/acats/tests/ca/ca5003a3.ada
! 3ca92f928c3fab5699f3ed1cbb10cca7  gcc/testsuite/ada/acats/tests/ca/ca5003a4.ada
! 15800c833dc097d881eb01771f2ddb56  gcc/testsuite/ada/acats/tests/ca/ca5003a5.ada
! 42a60fa8194ce3db5c65b6814ea59f15  gcc/testsuite/ada/acats/tests/ca/ca5003a6.ada
! 0402a0137d3537a7d4ae11fe9268e188  gcc/testsuite/ada/acats/tests/ca/ca5003b0.ada
! 56d17409bae5c4f8247c69372dada6a7  gcc/testsuite/ada/acats/tests/ca/ca5003b1.ada
! 2ef9cab842c822e5b35867c53e777c18  gcc/testsuite/ada/acats/tests/ca/ca5003b2.ada
! 82b234cda282c69bd1cd3343d6564886  gcc/testsuite/ada/acats/tests/ca/ca5003b3.ada
! 0e13bff44fe10fc5bb9178c91aa8f41b  gcc/testsuite/ada/acats/tests/ca/ca5003b4.ada
! 05dbe877925c828ecc6371bacbfdfa20  gcc/testsuite/ada/acats/tests/ca/ca5003b5.ada
! 86085a25df2bcf17731e5abce3a41858  gcc/testsuite/ada/acats/tests/ca/ca5004a.ada
! 4663b5feb03415ae2fecb74dc9a6d918  gcc/testsuite/ada/acats/tests/ca/ca5004b0.ada
! dac927119e0c75edf0e171d438d99a0b  gcc/testsuite/ada/acats/tests/ca/ca5004b1.ada
! fb2c0908bc96e07939ff5f370be3d576  gcc/testsuite/ada/acats/tests/ca/ca5004b2.ada
! de4ee9e1d0577cbafe35f74312690093  gcc/testsuite/ada/acats/tests/ca/ca5006a.ada
! 953459f6c3ce7331d1cf5e82d075046f  gcc/testsuite/ada/acats/tests/cb/cb10002.a
! a2d96f308f3e7c5c03f4f9d216128c1c  gcc/testsuite/ada/acats/tests/cb/cb1001a.ada
! c9d819541b343e576525a8dc64f50bcc  gcc/testsuite/ada/acats/tests/cb/cb1004a.ada
! cd057227d4389433804bcb77c3065624  gcc/testsuite/ada/acats/tests/cb/cb1005a.ada
! 5335053bd77df186552ab553aed53d59  gcc/testsuite/ada/acats/tests/cb/cb1010a.ada
! 6be3f5adbcfcbc452379f748a85caa57  gcc/testsuite/ada/acats/tests/cb/cb1010c.ada
! 0a7ba5489277a0fcbe1b644ea3d981a3  gcc/testsuite/ada/acats/tests/cb/cb1010d.ada
! 6cae622e32e9824d353863435f37029e  gcc/testsuite/ada/acats/tests/cb/cb20001.a
! f70c8a2a06450a84e9c16c2c896968c2  gcc/testsuite/ada/acats/tests/cb/cb20003.a
! fe4620ca44567358367bbd3cbf625a78  gcc/testsuite/ada/acats/tests/cb/cb20004.a
! 35b97a6a98aab2205d9fafa16376dd73  gcc/testsuite/ada/acats/tests/cb/cb20005.a
! 2eb8439ac2fe1164f75cef3955ed5f7e  gcc/testsuite/ada/acats/tests/cb/cb20006.a
! 14f424c9945ffa51a8ed9b5158035a61  gcc/testsuite/ada/acats/tests/cb/cb20007.a
! 81b37c096b48361109ecfd3c0a735d6f  gcc/testsuite/ada/acats/tests/cb/cb2004a.ada
! c9e534ca3b39a7e52f750d7ada5b1f05  gcc/testsuite/ada/acats/tests/cb/cb2005a.ada
! 5f629a419d744cf6cbdf01ae526e8dfe  gcc/testsuite/ada/acats/tests/cb/cb2006a.ada
! 0f62783e4e017c666e439d08382f4081  gcc/testsuite/ada/acats/tests/cb/cb2007a.ada
! 0af3543016fdd2ab314c8e3f6944bc98  gcc/testsuite/ada/acats/tests/cb/cb20a02.a
! da80eb868ceb5337039000257fc5cf28  gcc/testsuite/ada/acats/tests/cb/cb3003a.ada
! 3dcceb335b81c6314b73ec2a12e496dd  gcc/testsuite/ada/acats/tests/cb/cb3003b.ada
! db5771a4c4d22f1ee3b2043ea42e688e  gcc/testsuite/ada/acats/tests/cb/cb3004a.ada
! 931665965eb67df7de9092d1150d78dc  gcc/testsuite/ada/acats/tests/cb/cb40005.a
! 15fd6a782afdd2e76a85a1ef09b95d91  gcc/testsuite/ada/acats/tests/cb/cb4001a.ada
! f00ebf73158afdcf6ccfa56162d1a7c7  gcc/testsuite/ada/acats/tests/cb/cb4002a.ada
! 9e17c1d3be3c2acc4c4a761cf058d3c6  gcc/testsuite/ada/acats/tests/cb/cb4003a.ada
! 3461f679629a4811d1fce600d7e8b57e  gcc/testsuite/ada/acats/tests/cb/cb4004a.ada
! f2db155f6c22f6b30ca696f825ef8aae  gcc/testsuite/ada/acats/tests/cb/cb4005a.ada
! b611f921d0e5b0b027e6f69faa9d24b4  gcc/testsuite/ada/acats/tests/cb/cb4006a.ada
! baded9fec75a97cb63419083a60cbf79  gcc/testsuite/ada/acats/tests/cb/cb4007a.ada
! a4194c712a3e86aa41f29aec96a8f7a7  gcc/testsuite/ada/acats/tests/cb/cb4008a.ada
! 930c41db090c6c2c54a36228405c48ac  gcc/testsuite/ada/acats/tests/cb/cb4009a.ada
! 72f5c28e26994805b38b887c725d411c  gcc/testsuite/ada/acats/tests/cb/cb4013a.ada
! 7cebdcd4f0159fb009f28f53b4f1d2aa  gcc/testsuite/ada/acats/tests/cb/cb40a01.a
! c5d94b1d4e0e31956d3f563cd7632df6  gcc/testsuite/ada/acats/tests/cb/cb40a020.a
! 1826a245b36f70926f1d010c4bb03b56  gcc/testsuite/ada/acats/tests/cb/cb40a021.am
! dd4b04d0ff15d88ce5e37562087104b8  gcc/testsuite/ada/acats/tests/cb/cb40a030.a
! ce7a78707740e7c8442c44280bd4b429  gcc/testsuite/ada/acats/tests/cb/cb40a031.am
! 27770d52ee37e90d5cd9748807eab53e  gcc/testsuite/ada/acats/tests/cb/cb40a04.a
! fee21ac92aa6b69bea4a12f412715df6  gcc/testsuite/ada/acats/tests/cb/cb41001.a
! 3bbe3f0aeccac5d0203ed045c2ccf49e  gcc/testsuite/ada/acats/tests/cb/cb41002.a
! d456462b7a7e6f3773b86bf24468d231  gcc/testsuite/ada/acats/tests/cb/cb41003.a
! fffb38bf5df913140c6261714aa601ea  gcc/testsuite/ada/acats/tests/cb/cb41004.a
! 01e2daee09a3391b981c7a63ebe0ae28  gcc/testsuite/ada/acats/tests/cb/cb5001a.ada
! 5a22bfb3766d46433b2b7b2f046d0ea9  gcc/testsuite/ada/acats/tests/cb/cb5001b.ada
! 63153559a0add5135a21197c6c8c0a9f  gcc/testsuite/ada/acats/tests/cb/cb5002a.ada
! 52c10586939e5289ffc5276a6a4d9e3e  gcc/testsuite/ada/acats/tests/cc/cc1004a.ada
! abeb72a1acbce60114f56d558d1481a5  gcc/testsuite/ada/acats/tests/cc/cc1005b.ada
! e52fa7b734609c2fde5f5260ff000f57  gcc/testsuite/ada/acats/tests/cc/cc1010a.ada
! 4af2da441a155dbd4ee2be7e5afcdb99  gcc/testsuite/ada/acats/tests/cc/cc1010b.ada
! 3943b41b051f4e223a5fe3b067dd4750  gcc/testsuite/ada/acats/tests/cc/cc1018a.ada
! 8b9f3eb4b897035fcc0c08981fa94cd0  gcc/testsuite/ada/acats/tests/cc/cc1104c.ada
! 6dde1021fb59bfd89f7e89e10c4dc040  gcc/testsuite/ada/acats/tests/cc/cc1107b.ada
! fd9ff835b201890341a69a2bf568186d  gcc/testsuite/ada/acats/tests/cc/cc1111a.ada
! 3a2e06563ce5c65cb9f2734c9b5901b2  gcc/testsuite/ada/acats/tests/cc/cc1204a.ada
! ec00ecaace8abe97b14deef79a927278  gcc/testsuite/ada/acats/tests/cc/cc1207b.ada
! d5b96d46768e2afc1db48bccdd883c3d  gcc/testsuite/ada/acats/tests/cc/cc1220a.ada
! fe4da7912a4f8ebd90feecf1233d1cdd  gcc/testsuite/ada/acats/tests/cc/cc1221a.ada
! 25b2b3dc12b77cbf205ab8f38dcfb77d  gcc/testsuite/ada/acats/tests/cc/cc1221b.ada
! 9145c4850d40180754446ef574cb5fc0  gcc/testsuite/ada/acats/tests/cc/cc1221c.ada
! c4c966046fba1bd9875ab2ac270f27d0  gcc/testsuite/ada/acats/tests/cc/cc1221d.ada
! ec00a589846feb2b9117000ba453bb4d  gcc/testsuite/ada/acats/tests/cc/cc1222a.ada
! 9098cb80c67049808425c47b419fac81  gcc/testsuite/ada/acats/tests/cc/cc1223a.ada
! ebb1accb64bb0bc75b36cc4d7667f11e  gcc/testsuite/ada/acats/tests/cc/cc1224a.ada
! 252dcf9d499b779ceb6ff22b740614f3  gcc/testsuite/ada/acats/tests/cc/cc1225a.tst
! bd7909fda37c73e6a7b55033af7a7073  gcc/testsuite/ada/acats/tests/cc/cc1226b.ada
! 6c7f653283771ea8e72f38f30cca417e  gcc/testsuite/ada/acats/tests/cc/cc1227a.ada
! a59ea76111c1c30abdfc81e140c2ad1e  gcc/testsuite/ada/acats/tests/cc/cc1301a.ada
! 54718ced426c8406bfe76f085e364b70  gcc/testsuite/ada/acats/tests/cc/cc1302a.ada
! 0e4bf36981636de5140e59f431e9a750  gcc/testsuite/ada/acats/tests/cc/cc1304a.ada
! 8b8017d0f141d2d1f196915bb0d9086f  gcc/testsuite/ada/acats/tests/cc/cc1304b.ada
! 5c30254607e6be149633cccc49ed0eed  gcc/testsuite/ada/acats/tests/cc/cc1307a.ada
! 074dfbafa7a711ae864c0c7a3551c2c1  gcc/testsuite/ada/acats/tests/cc/cc1307b.ada
! 99a71a5de9c88311f519834c73dd819d  gcc/testsuite/ada/acats/tests/cc/cc1308a.ada
! f7d1a2abebaff0b7213722ac29bc699a  gcc/testsuite/ada/acats/tests/cc/cc1310a.ada
! 02f17d4f3889eba61e039a52d84ad466  gcc/testsuite/ada/acats/tests/cc/cc1311a.ada
! ab2512302d5429785277d9bb46d6c87b  gcc/testsuite/ada/acats/tests/cc/cc1311b.ada
! 1653180dc4be9e4015e8cad4546ded2c  gcc/testsuite/ada/acats/tests/cc/cc2002a.ada
! 5368d883d7adafccb7c415ab1a83c7f2  gcc/testsuite/ada/acats/tests/cc/cc30001.a
! 9240ec87a1cc555c3c6e829f22480b0f  gcc/testsuite/ada/acats/tests/cc/cc30002.a
! 258d4b8f83d4c17eda45265db8a66c46  gcc/testsuite/ada/acats/tests/cc/cc3004a.ada
! 1422918611096dedc710ededab9fc1d3  gcc/testsuite/ada/acats/tests/cc/cc3007a.ada
! faee4cb0106ee6d683bf7e7a208050dc  gcc/testsuite/ada/acats/tests/cc/cc3007b.ada
! 43f939c986863c3151fb21fae7ad81a8  gcc/testsuite/ada/acats/tests/cc/cc3011a.ada
! e21f329f8aeeeaaf980ab3ae301de7cb  gcc/testsuite/ada/acats/tests/cc/cc3011d.ada
! 021bd9a65cf3be3535547519f5ceb651  gcc/testsuite/ada/acats/tests/cc/cc3012a.ada
! eb08409ceff83c49baa04e734c258681  gcc/testsuite/ada/acats/tests/cc/cc3015a.ada
! 37ffe8fd743867700b2e0249fd73f16b  gcc/testsuite/ada/acats/tests/cc/cc3016b.ada
! 92e8dfd4f50c7e3595bbd6ef5ebb4302  gcc/testsuite/ada/acats/tests/cc/cc3016c.ada
! 3bb5847d2c36a04a53a9dc138c40e34a  gcc/testsuite/ada/acats/tests/cc/cc3016f.ada
! 195ab10c1ca9bbfd5b16ade12e3259e2  gcc/testsuite/ada/acats/tests/cc/cc3016i.ada
! a5976b043f8ea78109e2936d58a009a8  gcc/testsuite/ada/acats/tests/cc/cc3017b.ada
! 21e94c5f1086f6624d5237d010ecc0f2  gcc/testsuite/ada/acats/tests/cc/cc3017c.ada
! 2fb78d8d58d12070086164535de0efda  gcc/testsuite/ada/acats/tests/cc/cc3019a.ada
! a0315fd5149893475278feb9b8d7013b  gcc/testsuite/ada/acats/tests/cc/cc3019b0.ada
! 207f4488242efc2b7a5c80c0cd47410b  gcc/testsuite/ada/acats/tests/cc/cc3019b1.ada
! 5688bc525157eef2f521d23f1a720672  gcc/testsuite/ada/acats/tests/cc/cc3019b2.ada
! e5522bd1515d2f7df4fdd2bafaf481fb  gcc/testsuite/ada/acats/tests/cc/cc3019c0.ada
! 66683952c6c322d9c96e76710460cc02  gcc/testsuite/ada/acats/tests/cc/cc3019c1.ada
! 4e308a4f2724a46a2eb3a8426f98265f  gcc/testsuite/ada/acats/tests/cc/cc3019c2.ada
! cd9a188b6b1ecf3863d42065ce445792  gcc/testsuite/ada/acats/tests/cc/cc3106b.ada
! b1b639f80dbd48bf241b7d05c36362e6  gcc/testsuite/ada/acats/tests/cc/cc3120a.ada
! f06e709416c9d57a31113226d02abf07  gcc/testsuite/ada/acats/tests/cc/cc3120b.ada
! e09fb340ff80c10cbecd4b83e746eef2  gcc/testsuite/ada/acats/tests/cc/cc3121a.ada
! 302527c5f7e5e7497411775d418850b0  gcc/testsuite/ada/acats/tests/cc/cc3123a.ada
! 2575fc22f53f2a5308182459add72a14  gcc/testsuite/ada/acats/tests/cc/cc3125a.ada
! 4f59d6fe9227d671293a8fecd22f9101  gcc/testsuite/ada/acats/tests/cc/cc3125b.ada
! a1164d012410441b7190f2e96d6ce7c6  gcc/testsuite/ada/acats/tests/cc/cc3125c.ada
! 8a71d919069253ce368ef3103ee770c8  gcc/testsuite/ada/acats/tests/cc/cc3125d.ada
! ae116bcf41f79383e2dba5094b290b3f  gcc/testsuite/ada/acats/tests/cc/cc3126a.ada
! de2792bcfe94fa04d80a2c8ecf74db33  gcc/testsuite/ada/acats/tests/cc/cc3127a.ada
! a9709bfb589a677927644fb64dffa39c  gcc/testsuite/ada/acats/tests/cc/cc3128a.ada
! eeae81e69cab3987783ac508ffbebc5c  gcc/testsuite/ada/acats/tests/cc/cc3203a.ada
! a4d077af707d747e7c7f4f145a33e013  gcc/testsuite/ada/acats/tests/cc/cc3207b.ada
! 4525f7929e8bbeab0d61377f11afa3b8  gcc/testsuite/ada/acats/tests/cc/cc3220a.ada
! e8cc62fb0584ebfbe49d22d70abf54f4  gcc/testsuite/ada/acats/tests/cc/cc3221a.ada
! fbf1f50c254b6c5361e7d43b8efa783c  gcc/testsuite/ada/acats/tests/cc/cc3222a.ada
! 06202a4a37521548f15b8f63b30331cf  gcc/testsuite/ada/acats/tests/cc/cc3223a.ada
! d6d9973ddd1a38d34208ece4853e3e54  gcc/testsuite/ada/acats/tests/cc/cc3224a.ada
! 9d8a01fd3692524cef3f688f08e8820e  gcc/testsuite/ada/acats/tests/cc/cc3225a.ada
! 0b4db0bdcd8b5f809a2a0976c2fd65a2  gcc/testsuite/ada/acats/tests/cc/cc3230a.ada
! ecf0a337f74761749dd005a8b934ae2d  gcc/testsuite/ada/acats/tests/cc/cc3231a.ada
! 536583cad34553553ba201c11a12e136  gcc/testsuite/ada/acats/tests/cc/cc3232a.ada
! 29722620be1cef89562f63d778feb319  gcc/testsuite/ada/acats/tests/cc/cc3233a.ada
! 55b7f83f0d13dd0bbbc615bec20f7f58  gcc/testsuite/ada/acats/tests/cc/cc3234a.ada
! 174e858e451ed1d671a07a674320a404  gcc/testsuite/ada/acats/tests/cc/cc3235a.ada
! 1966408531cce82c0dee0cdb997e2d83  gcc/testsuite/ada/acats/tests/cc/cc3236a.ada
! 69f2b9819e916eb5bef41d74a6bf059e  gcc/testsuite/ada/acats/tests/cc/cc3240a.ada
! 134c20d477e6856df2b370dc7cfda1a4  gcc/testsuite/ada/acats/tests/cc/cc3305a.ada
! 6ff147856008d1bc23082c84a6dce358  gcc/testsuite/ada/acats/tests/cc/cc3305b.ada
! 75b310968a34fc081580d58bd1747ea3  gcc/testsuite/ada/acats/tests/cc/cc3305c.ada
! e41c2fcae5aa76bb6cd566a6a34b9e73  gcc/testsuite/ada/acats/tests/cc/cc3305d.ada
! 54ae1b7ff14c3a948a87f71ab9b7ae53  gcc/testsuite/ada/acats/tests/cc/cc3601a.ada
! 1d5d61ff6eda390e054673a067185feb  gcc/testsuite/ada/acats/tests/cc/cc3601c.ada
! 14a6f6048e3bda5108a0dac8dc736e44  gcc/testsuite/ada/acats/tests/cc/cc3602a.ada
! 73b205844c7501b9750b69b66d91e84c  gcc/testsuite/ada/acats/tests/cc/cc3603a.ada
! 509cb0b6a7b3daf93118e0e4310a8889  gcc/testsuite/ada/acats/tests/cc/cc3605a.ada
! b81c8580788eaf032722950c55524548  gcc/testsuite/ada/acats/tests/cc/cc3606a.ada
! 5232a6ea1beea12bb0c271a9c0728bcc  gcc/testsuite/ada/acats/tests/cc/cc3606b.ada
! 2f46f9edadb7856b60273822fbd7c6dc  gcc/testsuite/ada/acats/tests/cc/cc3607b.ada
! 59c4b0341104cc61677baaee002ac38c  gcc/testsuite/ada/acats/tests/cc/cc40001.a
! 6d5d6f00038ccaafe12d5f471a488085  gcc/testsuite/ada/acats/tests/cc/cc50001.a
! 8cb4adfbf6723ce3680f41b59f744fe9  gcc/testsuite/ada/acats/tests/cc/cc50a01.a
! 508d46d79897dc7252508cdafdbbfaa1  gcc/testsuite/ada/acats/tests/cc/cc50a02.a
! 146e71ceb1d037e4099e8ecb6e127614  gcc/testsuite/ada/acats/tests/cc/cc51001.a
! 58d73c0c5456a6a21ebbaef95df38606  gcc/testsuite/ada/acats/tests/cc/cc51002.a
! e096e928fb49f1e659293619c383c7f1  gcc/testsuite/ada/acats/tests/cc/cc51003.a
! a373845361c49771cf3d23fbbfc043de  gcc/testsuite/ada/acats/tests/cc/cc51004.a
! f57dbf49aca26d9bd043ebddae124c8e  gcc/testsuite/ada/acats/tests/cc/cc51006.a
! ed5459250c5b2a65cf4b7a7c678c41b5  gcc/testsuite/ada/acats/tests/cc/cc51007.a
! edb35d02b7ba72e7720c2eaf7fefe5bf  gcc/testsuite/ada/acats/tests/cc/cc51008.a
! 91f9a7214da9eed7db005bf7e3119ddc  gcc/testsuite/ada/acats/tests/cc/cc51a01.a
! 123f5aa956187735f0e077abedfd8f93  gcc/testsuite/ada/acats/tests/cc/cc51b03.a
! 557497dc9fd80ad665e468b409621ee1  gcc/testsuite/ada/acats/tests/cc/cc51d01.a
! 31462b6f268d175f3a915242afd8ea4d  gcc/testsuite/ada/acats/tests/cc/cc51d02.a
! 8b56f900a407dc994866f74c2c67f98e  gcc/testsuite/ada/acats/tests/cc/cc54001.a
! 65d5b89a1c15ad3234bf150dbe3c9235  gcc/testsuite/ada/acats/tests/cc/cc54002.a
! 04d1ce4f2960ed9b647a0bc397f920c2  gcc/testsuite/ada/acats/tests/cc/cc54003.a
! 0e1a91d2dfd0e6b36d65c5cfb02883dc  gcc/testsuite/ada/acats/tests/cc/cc54004.a
! c29ebf7d9a6ed65bca0e83b18c63bbcc  gcc/testsuite/ada/acats/tests/cc/cc70001.a
! eb1b9be669a38ce3989d9340fb2dc933  gcc/testsuite/ada/acats/tests/cc/cc70002.a
! b1df852c3d5deec3247a4e17e9fb4dc6  gcc/testsuite/ada/acats/tests/cc/cc70003.a
! 9f1565b83bb2fa8ee588283eaa27cf37  gcc/testsuite/ada/acats/tests/cc/cc70a01.a
! 0bb1d67b6fb03b14e1b2f2062d01417d  gcc/testsuite/ada/acats/tests/cc/cc70a02.a
! ee68b4ea46957b2abff5e05bc98eeb76  gcc/testsuite/ada/acats/tests/cc/cc70b01.a
! 8c472987131321e68210b34029de25a7  gcc/testsuite/ada/acats/tests/cc/cc70b02.a
! 1a10fab698e0e1c3d985d63a8fd02646  gcc/testsuite/ada/acats/tests/cc/cc70c01.a
! 630e79ef7ad77506e6bc0443bc253106  gcc/testsuite/ada/acats/tests/cc/cc70c02.a
! 0be418cda7e22eca0aa6c889d87f4533  gcc/testsuite/ada/acats/tests/cd/cd10001.a
! 5dd315f72d7b25ba35718d9545b60e5e  gcc/testsuite/ada/acats/tests/cd/cd10002.a
! 4e3da95c629f1132a7605c755936df22  gcc/testsuite/ada/acats/tests/cd/cd1009a.ada
! 75d6166e3a9b874d8b18037b2bbd7774  gcc/testsuite/ada/acats/tests/cd/cd1009b.ada
! fb2d00d22c6dc289be9e7485d1057b88  gcc/testsuite/ada/acats/tests/cd/cd1009d.ada
! 0f7c8765f0bcfd92843011f7699a3515  gcc/testsuite/ada/acats/tests/cd/cd1009e.ada
! 278b82d91f416169138eaedebaee0e88  gcc/testsuite/ada/acats/tests/cd/cd1009f.ada
! c5d7abbf75d5228f8ee64b921461c34d  gcc/testsuite/ada/acats/tests/cd/cd1009g.ada
! 05621471548ccc18ff9a5e104f81afde  gcc/testsuite/ada/acats/tests/cd/cd1009h.ada
! 529178df08dc16ac0af024a1fd6bfb53  gcc/testsuite/ada/acats/tests/cd/cd1009i.ada
! 365257c1306da6752feb59e62ac38bdf  gcc/testsuite/ada/acats/tests/cd/cd1009j.ada
! 03b1bb47c24a014bd2530417d1adf9b2  gcc/testsuite/ada/acats/tests/cd/cd1009k.tst
! 06bdced5a41c98c87e673e382a9688bb  gcc/testsuite/ada/acats/tests/cd/cd1009l.ada
! f8f71aa9e49974d6cf320e70c4b0ecbf  gcc/testsuite/ada/acats/tests/cd/cd1009m.ada
! f29ec324e7b0ec1f2f6dd2240fc728d8  gcc/testsuite/ada/acats/tests/cd/cd1009n.ada
! cae30866eb5c8c2cfb27698eb8ddbde0  gcc/testsuite/ada/acats/tests/cd/cd1009o.ada
! d3eb7538a98ec14ae8d521733ba57af7  gcc/testsuite/ada/acats/tests/cd/cd1009p.ada
! b8730acac7650dbd31ddd035bc69f509  gcc/testsuite/ada/acats/tests/cd/cd1009q.ada
! c358e33b93c2826e889494a0f5ed0843  gcc/testsuite/ada/acats/tests/cd/cd1009r.ada
! bc1961d8c175f48f60b3e9f057a9c72a  gcc/testsuite/ada/acats/tests/cd/cd1009s.ada
! 97707e58ce3c7a72dc76f39b8a718701  gcc/testsuite/ada/acats/tests/cd/cd1009t.tst
! 692d5e6fe6286682bb5eaaa37bbb3deb  gcc/testsuite/ada/acats/tests/cd/cd1009u.tst
! 907fdf446e490f986c267dd4b8d31baf  gcc/testsuite/ada/acats/tests/cd/cd1009v.ada
! 53fd05330599e7a416f8be2f4b93f8db  gcc/testsuite/ada/acats/tests/cd/cd1009w.ada
! 6e1baf3329c3ff434b0b23406203b126  gcc/testsuite/ada/acats/tests/cd/cd1009x.ada
! 992350215516da7fa9fc873f9d5f405e  gcc/testsuite/ada/acats/tests/cd/cd1009y.ada
! fb78c3da6117cb6f992401e7c6afde33  gcc/testsuite/ada/acats/tests/cd/cd1009z.ada
! 5b32d31e23b1f46b777ddb79782d91bc  gcc/testsuite/ada/acats/tests/cd/cd1c03a.ada
! 33753d6d5cc05f96879e603e7e4239ed  gcc/testsuite/ada/acats/tests/cd/cd1c03b.ada
! bb197eb3c945f5f3165b484b8d052169  gcc/testsuite/ada/acats/tests/cd/cd1c03c.ada
! d532f2cddb2a1d42073af8bead380310  gcc/testsuite/ada/acats/tests/cd/cd1c03e.tst
! 31687b0c41570bd2e2caf21db4be46d3  gcc/testsuite/ada/acats/tests/cd/cd1c03f.ada
! e0216b320efd829ccdc65f5d5771bcbb  gcc/testsuite/ada/acats/tests/cd/cd1c03g.ada
! c46fc765c5f46303364ae7f735fd4155  gcc/testsuite/ada/acats/tests/cd/cd1c03h.ada
! e99adb592df5a1337ea0d1ba20e1ea56  gcc/testsuite/ada/acats/tests/cd/cd1c03i.ada
! 356e60fd22404e9284ce91535fb26d24  gcc/testsuite/ada/acats/tests/cd/cd1c04a.ada
! e23985efbd7775125639e267122b2530  gcc/testsuite/ada/acats/tests/cd/cd1c04d.ada
! 960f74b381e41f1c5aca4cb19a43ba24  gcc/testsuite/ada/acats/tests/cd/cd1c04e.ada
! f4445570707e4cfc05845c2942f2a691  gcc/testsuite/ada/acats/tests/cd/cd1c06a.tst
! 38c0ca7c9c40e40a65ebac293401406d  gcc/testsuite/ada/acats/tests/cd/cd20001.a
! 6840d06bfa723e58150ad53215d31eaf  gcc/testsuite/ada/acats/tests/cd/cd2a21a.ada
! 16f1f72fade5db004d66971714b76535  gcc/testsuite/ada/acats/tests/cd/cd2a21c.ada
! 9955b221c78032f3aa68113cb414afea  gcc/testsuite/ada/acats/tests/cd/cd2a21e.ada
! 138413c4349c431ae13135443971a255  gcc/testsuite/ada/acats/tests/cd/cd2a22a.ada
! 2ecbd329e980e8d80615287a05917c3c  gcc/testsuite/ada/acats/tests/cd/cd2a22e.ada
! fa618469f3bfe667b6991f706078ceee  gcc/testsuite/ada/acats/tests/cd/cd2a22i.ada
! 17cd76bca6e556da829dc167dd37416d  gcc/testsuite/ada/acats/tests/cd/cd2a22j.ada
! 165d140694576ed2e1610ce9cf23d710  gcc/testsuite/ada/acats/tests/cd/cd2a23a.ada
! ee7517fa66b44ea029fa5afd44d3dfda  gcc/testsuite/ada/acats/tests/cd/cd2a23e.ada
! 7406649d9c3a6c13d39de22cbbbed6c0  gcc/testsuite/ada/acats/tests/cd/cd2a24a.ada
! 42e0bfe93795136ebcd4a60e074e3d13  gcc/testsuite/ada/acats/tests/cd/cd2a24e.ada
! 3812be2a4f7026b0ea147488e4e11b79  gcc/testsuite/ada/acats/tests/cd/cd2a24i.ada
! b5db777461ec4b929a5d956caae5ab6c  gcc/testsuite/ada/acats/tests/cd/cd2a24j.ada
! 01ec2329faee0b5aa7957719bee0a023  gcc/testsuite/ada/acats/tests/cd/cd2a31a.ada
! 5cfa1167dd7ab84a3f1390d1ef40e5a8  gcc/testsuite/ada/acats/tests/cd/cd2a31c.ada
! 25cf5e2245fd319818051c6d58e33e34  gcc/testsuite/ada/acats/tests/cd/cd2a31e.ada
! fe2d9184c16158b464a66d55f5f012e0  gcc/testsuite/ada/acats/tests/cd/cd2a32a.ada
! c89035c306f20662287a41260e41c440  gcc/testsuite/ada/acats/tests/cd/cd2a32c.ada
! 5a16f63c007776f1d0e621124c28ba40  gcc/testsuite/ada/acats/tests/cd/cd2a32e.ada
! 509f33673d8a806e1fc5c994ecd367a7  gcc/testsuite/ada/acats/tests/cd/cd2a32g.ada
! 9f1153cc00985eff630f5a7529e785a6  gcc/testsuite/ada/acats/tests/cd/cd2a32i.ada
! 3b52721a12cbabf7af952961ab000124  gcc/testsuite/ada/acats/tests/cd/cd2a32j.ada
! b0ce5f538de9c46a7f93bb98b76a16c2  gcc/testsuite/ada/acats/tests/cd/cd2a51a.ada
! fc6c3486ba94594cbb01735d7665ee4c  gcc/testsuite/ada/acats/tests/cd/cd2a53a.ada
! e22ea0a1bf1e45a9cc8941659d5de2bc  gcc/testsuite/ada/acats/tests/cd/cd2a53e.ada
! 800cb5fbfa61381b047623e515b331e9  gcc/testsuite/ada/acats/tests/cd/cd2a83c.tst
! 890942afd45f173d9c7a48fcd9b93b9e  gcc/testsuite/ada/acats/tests/cd/cd2a91c.tst
! ed5c543b1f1e477626a569cf9814e843  gcc/testsuite/ada/acats/tests/cd/cd2b11a.ada
! 8bf8bb847340d421752506f84e4d2970  gcc/testsuite/ada/acats/tests/cd/cd2b11b.ada
! c32d32bcd93ad954d2d4fd55f825977f  gcc/testsuite/ada/acats/tests/cd/cd2b11d.ada
! 1a738e39f3f9e6241c1210e391c74d04  gcc/testsuite/ada/acats/tests/cd/cd2b11e.ada
! 4c72be933f221db34e2a0e081b1987cb  gcc/testsuite/ada/acats/tests/cd/cd2b11f.ada
! 4e115c81a0792d4375dde8dc06949e7d  gcc/testsuite/ada/acats/tests/cd/cd2b15c.ada
! 29657353f6d86b0ea8f7696b58cc2fe9  gcc/testsuite/ada/acats/tests/cd/cd2b16a.ada
! d5241430c4b7db939bd5e77692bf37b4  gcc/testsuite/ada/acats/tests/cd/cd2c11a.tst
! 90bc2d2d244c54d7f4a3cd052f4ec35f  gcc/testsuite/ada/acats/tests/cd/cd2c11d.tst
! c6ae74fd392f1fb6040ba95b1d1ae6f0  gcc/testsuite/ada/acats/tests/cd/cd2d11a.ada
! cdcdd3477a39a731b6a087ee53c8d310  gcc/testsuite/ada/acats/tests/cd/cd2d13a.ada
! 76610aaf77050e2ff007a677818d736b  gcc/testsuite/ada/acats/tests/cd/cd30001.a
! 074a289ffe88ab1f82a7410cb923d4e9  gcc/testsuite/ada/acats/tests/cd/cd30002.a
! 3c6e9682493e7e0159a203d7641e1a2e  gcc/testsuite/ada/acats/tests/cd/cd30003.a
! 58da39f40326823d0b3dcca45acdc03a  gcc/testsuite/ada/acats/tests/cd/cd30004.a
! b20df3bfc89786bd52ff18a24d92a63a  gcc/testsuite/ada/acats/tests/cd/cd300050.am
! 6fc396067544f25307ce6a100bb5ef10  gcc/testsuite/ada/acats/tests/cd/cd300051.c
! 53302b5bf903a58fb95e205690813d78  gcc/testsuite/ada/acats/tests/cd/cd30011.a
! 03b96d80ed2b752193a510629a87cc3c  gcc/testsuite/ada/acats/tests/cd/cd30012.a
! a8163e0d624406b874260e4169d9e49c  gcc/testsuite/ada/acats/tests/cd/cd3014a.ada
! b3c46e3333ad22ce02ee156f3f0bccff  gcc/testsuite/ada/acats/tests/cd/cd3014c.ada
! a341da17e2d571e891434aa086ae7d3e  gcc/testsuite/ada/acats/tests/cd/cd3014d.ada
! 204d7f2709b5ba9cddcb718fc3d8ec18  gcc/testsuite/ada/acats/tests/cd/cd3014f.ada
! a86fa642d37091be0c5e5119e8c46645  gcc/testsuite/ada/acats/tests/cd/cd3015a.ada
! 38a79cfd7d26ff49fc8ee336963b178f  gcc/testsuite/ada/acats/tests/cd/cd3015c.ada
! 516902a49ddef41f79ee415e4edbb912  gcc/testsuite/ada/acats/tests/cd/cd3015e.ada
! 21588812fb8df6d087570f29c23c5d39  gcc/testsuite/ada/acats/tests/cd/cd3015f.ada
! c8a6fa2243d818236602663b274b5ba9  gcc/testsuite/ada/acats/tests/cd/cd3015g.ada
! c31ca49858b05c8ca516526b0e15945f  gcc/testsuite/ada/acats/tests/cd/cd3015h.ada
! c130ab902d51f975c0efadc0d44c9361  gcc/testsuite/ada/acats/tests/cd/cd3015i.ada
! 2fa00ee1e19df0bb0e4dc668c1d238fd  gcc/testsuite/ada/acats/tests/cd/cd3015k.ada
! 0c71d1dfc5a7d7c4d232217c2ef3e00f  gcc/testsuite/ada/acats/tests/cd/cd3021a.ada
! 02bab37ae5532979da2b39be8f1f447f  gcc/testsuite/ada/acats/tests/cd/cd33001.a
! 164945bdb98657e50508d0be9d5e1711  gcc/testsuite/ada/acats/tests/cd/cd33002.a
! fd95d787e27f8f80c3bccc691bf0417d  gcc/testsuite/ada/acats/tests/cd/cd40001.a
! a3f551b50734da9e1de425c6988b1f43  gcc/testsuite/ada/acats/tests/cd/cd4031a.ada
! 1363b8d9d26525600395a9118a1a4041  gcc/testsuite/ada/acats/tests/cd/cd4041a.tst
! 255be84f9bd123a67360189ab2d64cdf  gcc/testsuite/ada/acats/tests/cd/cd4051a.ada
! 37ae7a5703b3780f73cd5ae4eb39621a  gcc/testsuite/ada/acats/tests/cd/cd4051b.ada
! 07adf8476ba0c5e57a2bea963c120c2a  gcc/testsuite/ada/acats/tests/cd/cd4051c.ada
! cf5f11fa4855f5f18dba58d556b7ca63  gcc/testsuite/ada/acats/tests/cd/cd4051d.ada
! 20478b00e54601fd76a247d8a78c4a8f  gcc/testsuite/ada/acats/tests/cd/cd5003a.ada
! 4cff6e4a9ec3d2900f66bfc5693af89a  gcc/testsuite/ada/acats/tests/cd/cd5003b.ada
! d13512a51a4eb52527563404909e596e  gcc/testsuite/ada/acats/tests/cd/cd5003c.ada
! 4652d6ed2c04ade1800842b5dbfdabf9  gcc/testsuite/ada/acats/tests/cd/cd5003d.ada
! 005bf8518b263e4cee4d26c5db87e58b  gcc/testsuite/ada/acats/tests/cd/cd5003e.ada
! 8ff99eb70e788c11615ac412a1a7b4fb  gcc/testsuite/ada/acats/tests/cd/cd5003f.ada
! 719c829d93aa5b1f5984a681101887d3  gcc/testsuite/ada/acats/tests/cd/cd5003g.ada
! a7821be04ce2545857881e21292d5867  gcc/testsuite/ada/acats/tests/cd/cd5003h.ada
! 3491fd905bd30777ef1fbdfae6595acf  gcc/testsuite/ada/acats/tests/cd/cd5003i.ada
! 88b907e17fa7e933c0aa985bcbdba611  gcc/testsuite/ada/acats/tests/cd/cd5011a.ada
! 502c219e404c935fb79b18a5bc9edb77  gcc/testsuite/ada/acats/tests/cd/cd5011c.ada
! 71b7123461788aab03963e62fecc0ba3  gcc/testsuite/ada/acats/tests/cd/cd5011e.ada
! 8ee70bf0284e509f67c72903d25709f7  gcc/testsuite/ada/acats/tests/cd/cd5011g.ada
! 3b37531d4672ce7853d736e20f205d9e  gcc/testsuite/ada/acats/tests/cd/cd5011i.ada
! b1bd44ec7ae1e5e46e2aecd8d6f8f7b7  gcc/testsuite/ada/acats/tests/cd/cd5011k.ada
! b632fa011acdccee9f2b9fb3b5a030bf  gcc/testsuite/ada/acats/tests/cd/cd5011m.ada
! fd5e412763d1e844067af789a1ac1c48  gcc/testsuite/ada/acats/tests/cd/cd5011q.ada
! ee93e2b7d81f47c56f7b7ad4552b21bb  gcc/testsuite/ada/acats/tests/cd/cd5011s.ada
! 47d11b263404f1dd8fe59440a5052207  gcc/testsuite/ada/acats/tests/cd/cd5012a.ada
! 1892070e6feeb321986c5cbbcc427b4a  gcc/testsuite/ada/acats/tests/cd/cd5012b.ada
! ff4f485285269aca5506577d2a0b3b25  gcc/testsuite/ada/acats/tests/cd/cd5012e.ada
! a5f14af29759eeb2088d73d911c87c1f  gcc/testsuite/ada/acats/tests/cd/cd5012f.ada
! e5f28d4028e3550e275facc5a05598e5  gcc/testsuite/ada/acats/tests/cd/cd5012i.ada
! 16dbc766d573615ec2e4899fad17e3bf  gcc/testsuite/ada/acats/tests/cd/cd5012m.ada
! 6cc56f376ceaa00b529da26c6460e8d6  gcc/testsuite/ada/acats/tests/cd/cd5013a.ada
! c0918022f30f205dd1507581efbfdd4d  gcc/testsuite/ada/acats/tests/cd/cd5013c.ada
! 811d55a4a9aee790bed1e966d928fbb2  gcc/testsuite/ada/acats/tests/cd/cd5013e.ada
! 21ba9a45a10469204bf9be2e86069c81  gcc/testsuite/ada/acats/tests/cd/cd5013g.ada
! 4f445e0ed2b7e60f8eb00f85696e3a7d  gcc/testsuite/ada/acats/tests/cd/cd5013i.ada
! 0b15bb9a260246e000106d4512840f2a  gcc/testsuite/ada/acats/tests/cd/cd5013k.ada
! 1da10e9981f9def7bfc6d6c2143211ec  gcc/testsuite/ada/acats/tests/cd/cd5013m.ada
! 08a9e582acca940c3e759a92734c93c9  gcc/testsuite/ada/acats/tests/cd/cd5013o.ada
! 1968e13f319d3b0c07f4c96303157e60  gcc/testsuite/ada/acats/tests/cd/cd5014a.ada
! 7c607413594268a5d4b2292b7cb0413b  gcc/testsuite/ada/acats/tests/cd/cd5014c.ada
! 8fef3117954cc6c0a11bb3f93e364b40  gcc/testsuite/ada/acats/tests/cd/cd5014e.ada
! 0b813473017a44baccc884d20552e8cd  gcc/testsuite/ada/acats/tests/cd/cd5014g.ada
! 527b59a75ca64a8266a57d7a5088fe89  gcc/testsuite/ada/acats/tests/cd/cd5014i.ada
! fc74902958756d067346aa25dc320720  gcc/testsuite/ada/acats/tests/cd/cd5014k.ada
! b77eb1036af76cfb5202f2de49ace505  gcc/testsuite/ada/acats/tests/cd/cd5014m.ada
! ab247e3e629023fbd5f60ebe8227bdb5  gcc/testsuite/ada/acats/tests/cd/cd5014o.ada
! fc0ebe93b10ae9a9d4c3c4a5df942f54  gcc/testsuite/ada/acats/tests/cd/cd5014t.ada
! c00ed5123db97df563396ec85314f780  gcc/testsuite/ada/acats/tests/cd/cd5014v.ada
! bbf572fbf22be12dd2a668dcd54775ea  gcc/testsuite/ada/acats/tests/cd/cd5014x.ada
! 34d86be0b29568cce7a2a466311b3b81  gcc/testsuite/ada/acats/tests/cd/cd5014y.ada
! b56429de483f94a422eb6ca63ee074f9  gcc/testsuite/ada/acats/tests/cd/cd5014z.ada
! aa622725c36aef33e28cfe216e74dbf2  gcc/testsuite/ada/acats/tests/cd/cd70001.a
! 2eb61a4a6db022ec0de56d97cdb58d92  gcc/testsuite/ada/acats/tests/cd/cd7002a.ada
! aaa73d4164232ddfd2c5811f78c69833  gcc/testsuite/ada/acats/tests/cd/cd7007b.ada
! a2455776674d2ad1da3cc32ece807208  gcc/testsuite/ada/acats/tests/cd/cd7101d.ada
! aa55af7af75ac0b3c135078d81fb495f  gcc/testsuite/ada/acats/tests/cd/cd7101e.dep
! 54f3d5f0c03029d0398feadc1fba13fa  gcc/testsuite/ada/acats/tests/cd/cd7101f.dep
! d4c58764ec07d4b64c614f06a404a048  gcc/testsuite/ada/acats/tests/cd/cd7101g.tst
! b19b5291beb6e4d9ba34dc60acc52917  gcc/testsuite/ada/acats/tests/cd/cd7103d.ada
! bc9859e9de09dbae5b873f61d7dd6d25  gcc/testsuite/ada/acats/tests/cd/cd7202a.ada
! 27154e701456e154266de19089be5f95  gcc/testsuite/ada/acats/tests/cd/cd7204b.ada
! 866e238520f9fe6f2e1ebc1c66530b27  gcc/testsuite/ada/acats/tests/cd/cd7204c.ada
! 463ecdd8176f35af59f9b3791565e928  gcc/testsuite/ada/acats/tests/cd/cd72a01.a
! 97e1c7a2d8dcad44f97e8a054d7ddbfa  gcc/testsuite/ada/acats/tests/cd/cd72a02.a
! 094d528313c32d60bc8ef9966a3ba667  gcc/testsuite/ada/acats/tests/cd/cd7305a.ada
! 89a9ca0baa4aea5a158e931fd05972da  gcc/testsuite/ada/acats/tests/cd/cd90001.a
! b35e132e38a1316bb94eb5685e744e45  gcc/testsuite/ada/acats/tests/cd/cd92001.a
! 4acd15be94cdb921d9aaaf1c68bc86bd  gcc/testsuite/ada/acats/tests/cd/cda201a.ada
! 95c680f466bbb6b462cff702c8c051d8  gcc/testsuite/ada/acats/tests/cd/cda201b.ada
! 46aab534344a6aeab59cdc069c0a30a9  gcc/testsuite/ada/acats/tests/cd/cda201c.ada
! 51c51b9e46a1a5740ae0b124d61d55ca  gcc/testsuite/ada/acats/tests/cd/cda201e.ada
! 4d8334f61837b54deaa10e41063c39af  gcc/testsuite/ada/acats/tests/cd/cdb0a01.a
! d60d2f5f8d96507e1b594680a8ddbf8c  gcc/testsuite/ada/acats/tests/cd/cdb0a02.a
! d199627bfc774a32708e179cfe132b55  gcc/testsuite/ada/acats/tests/cd/cdd1001.a
! ecea7d5e451c93f7530aa28e39d75580  gcc/testsuite/ada/acats/tests/cd/cdd2001.a
! 09e97dda9b7ced04ce9c741ad0599d96  gcc/testsuite/ada/acats/tests/cd/cdd2a01.a
! 72e91e49172aabe99c78bb568616e583  gcc/testsuite/ada/acats/tests/cd/cdd2a02.a
! a856f625c37fa5c1f69885ec19e4bc5e  gcc/testsuite/ada/acats/tests/cd/cdd2a03.a
! 317e3f1dc15de17ef49001a1f08c35b3  gcc/testsuite/ada/acats/tests/cd/cde0001.a
! e3c9b20329b0f7e7d60dc55f195727f7  gcc/testsuite/ada/acats/tests/ce/ce2102a.ada
! 56be361ddf744d65d5919f5f77470cfd  gcc/testsuite/ada/acats/tests/ce/ce2102b.ada
! 83c95e98a0edc5913eda034e9803f9a3  gcc/testsuite/ada/acats/tests/ce/ce2102c.tst
! 704cb92cd741551b8c76bb24ab8f01a6  gcc/testsuite/ada/acats/tests/ce/ce2102d.ada
! a4c5c5ff89eb450e4c847a9cebea2a03  gcc/testsuite/ada/acats/tests/ce/ce2102e.ada
! 27760dba95f836989a21b8529a71855d  gcc/testsuite/ada/acats/tests/ce/ce2102f.ada
! fe48a7b7badffee5e6b11bab0b32391a  gcc/testsuite/ada/acats/tests/ce/ce2102g.ada
! d704111bdcdb479f1991a8daee40cdc6  gcc/testsuite/ada/acats/tests/ce/ce2102h.tst
! 660d5113b9badd86759bd83e670ede30  gcc/testsuite/ada/acats/tests/ce/ce2102i.ada
! 8796caaebedc2e2c57dc7e71ff241431  gcc/testsuite/ada/acats/tests/ce/ce2102j.ada
! ceb778fa800778a3993ddc7cd9190c8f  gcc/testsuite/ada/acats/tests/ce/ce2102k.ada
! 23bd39333ef2a75df64af434a8d52288  gcc/testsuite/ada/acats/tests/ce/ce2102l.ada
! 9a4f2b513351918f23c1e1fcc5d48aaa  gcc/testsuite/ada/acats/tests/ce/ce2102m.ada
! 57880455279d766e91fd84c1ad26a38f  gcc/testsuite/ada/acats/tests/ce/ce2102n.ada
! 1658c529498b5b4b8d79ff4a0a362715  gcc/testsuite/ada/acats/tests/ce/ce2102o.ada
! a942f038d4463c45d5c583b1985c7c87  gcc/testsuite/ada/acats/tests/ce/ce2102p.ada
! 8ce185028df0d4e8d8de27e964b87758  gcc/testsuite/ada/acats/tests/ce/ce2102q.ada
! 1439304477a0f927f09dcb2a2639fe66  gcc/testsuite/ada/acats/tests/ce/ce2102r.ada
! a5aff3dd28b5d54dcd3d2367ad10512e  gcc/testsuite/ada/acats/tests/ce/ce2102s.ada
! fab20fee3d01ec0d98c83ae2e0b85bda  gcc/testsuite/ada/acats/tests/ce/ce2102t.ada
! fb506c6fcfe4ce698ff9a830b7c56229  gcc/testsuite/ada/acats/tests/ce/ce2102u.ada
! 6533e0fca22d00bf5e7584ed3a4dc842  gcc/testsuite/ada/acats/tests/ce/ce2102v.ada
! 96597eb49b1372fa65ee2328da95ca07  gcc/testsuite/ada/acats/tests/ce/ce2102w.ada
! 79aea0b4cdef1b6365b9be26c87383b1  gcc/testsuite/ada/acats/tests/ce/ce2102x.ada
! b982e3e68e8a4f04e10e3b2780934046  gcc/testsuite/ada/acats/tests/ce/ce2102y.ada
! d102ee0d07b326b9d4073e60e25ee113  gcc/testsuite/ada/acats/tests/ce/ce2103a.tst
! ae11fc214dfce8e1c5dce5dd8dff9ad9  gcc/testsuite/ada/acats/tests/ce/ce2103b.tst
! 97d4cf14fe4c578c0d86448663834c20  gcc/testsuite/ada/acats/tests/ce/ce2103c.ada
! 99c7332bd6a90a3213eb826d7f902efa  gcc/testsuite/ada/acats/tests/ce/ce2103d.ada
! 60b763cadd79ca8009e41e392d9aa37b  gcc/testsuite/ada/acats/tests/ce/ce2104a.ada
! 4f9096bebf0622c62a3f4358655497af  gcc/testsuite/ada/acats/tests/ce/ce2104b.ada
! f1962e353466d1757ad6a9c641624847  gcc/testsuite/ada/acats/tests/ce/ce2104c.ada
! c687f392201a3d542022c53d87c728c6  gcc/testsuite/ada/acats/tests/ce/ce2104d.ada
! e59622b5be7a0b85f62f4f5dfd87250c  gcc/testsuite/ada/acats/tests/ce/ce2106a.ada
! 0390975b4b078391dba02ca3c8f31638  gcc/testsuite/ada/acats/tests/ce/ce2106b.ada
! 8576613b0fb7cb5404cf64939d34b3af  gcc/testsuite/ada/acats/tests/ce/ce2108e.ada
! 651994d660ec55d3e422ceb303d2034b  gcc/testsuite/ada/acats/tests/ce/ce2108f.ada
! ba5e89f5212818e3e53a4cf7d59d646c  gcc/testsuite/ada/acats/tests/ce/ce2108g.ada
! fb62dbd03a1355b41f3d194167f479aa  gcc/testsuite/ada/acats/tests/ce/ce2108h.ada
! e1df0b3934297c1162437a03a450f12a  gcc/testsuite/ada/acats/tests/ce/ce2109a.ada
! d91a1fcd2695ad63b53b63e0d22d3f22  gcc/testsuite/ada/acats/tests/ce/ce2109b.ada
! 0a95aeffa3822cc96d6f770183b34979  gcc/testsuite/ada/acats/tests/ce/ce2109c.ada
! 329e30bd5ac69971fa84cd76bd66b302  gcc/testsuite/ada/acats/tests/ce/ce2110a.ada
! b63ea51508983167185a0e378c787235  gcc/testsuite/ada/acats/tests/ce/ce2110c.ada
! 385c38395502c50c4f04f16ed172b5c3  gcc/testsuite/ada/acats/tests/ce/ce2111a.ada
! 0cab0967d4b6100c093d83a0daa2ca06  gcc/testsuite/ada/acats/tests/ce/ce2111b.ada
! 1def457c7ded3aa15287b30a02c2c1bf  gcc/testsuite/ada/acats/tests/ce/ce2111c.ada
! e039c87f3e2f30f3b378642cc3d5d3c3  gcc/testsuite/ada/acats/tests/ce/ce2111e.ada
! 607ff5b75e0ac677df365e3867c8b8bc  gcc/testsuite/ada/acats/tests/ce/ce2111f.ada
! 9b55a66cd32d536d65916a0288c480f4  gcc/testsuite/ada/acats/tests/ce/ce2111g.ada
! 9aac3a3d20f722d72f0a97d15db7e6ff  gcc/testsuite/ada/acats/tests/ce/ce2111i.ada
! 451691c716142d6af52540932182f7a8  gcc/testsuite/ada/acats/tests/ce/ce2201a.ada
! a9019ab5c60383a5aec6b4e12cf67546  gcc/testsuite/ada/acats/tests/ce/ce2201b.ada
! 29858e1a8a6dd46bb9164e8c8edbcddf  gcc/testsuite/ada/acats/tests/ce/ce2201c.ada
! 34d8b0e50b71bb424acf20936253736f  gcc/testsuite/ada/acats/tests/ce/ce2201d.dep
! b20fac24f54e723d0cc0d2b283a1a98c  gcc/testsuite/ada/acats/tests/ce/ce2201e.dep
! e5ef319f07f83742ea6dacb674de4c74  gcc/testsuite/ada/acats/tests/ce/ce2201f.ada
! 89d1575c20871ec14a7510e2c7fd7e56  gcc/testsuite/ada/acats/tests/ce/ce2201g.ada
! 06e274ba9cfdca457d343f7d036af0bc  gcc/testsuite/ada/acats/tests/ce/ce2201h.ada
! 819625912e63f1bb0690319469d91d14  gcc/testsuite/ada/acats/tests/ce/ce2201i.ada
! c75df2290aa04176fd8862e092446183  gcc/testsuite/ada/acats/tests/ce/ce2201j.ada
! 5cd3fabcbac1ce5f97eb0c3b7ff68060  gcc/testsuite/ada/acats/tests/ce/ce2201k.ada
! 5f85b515f14775082f0cef057e6c7cec  gcc/testsuite/ada/acats/tests/ce/ce2201l.ada
! dacbb7d19d52906e970100c8a0524fd4  gcc/testsuite/ada/acats/tests/ce/ce2201m.ada
! 45f176910989cfdcd7fdc941f37a5b71  gcc/testsuite/ada/acats/tests/ce/ce2201n.ada
! 376cc7edaf46154ca8f65652b5d6eca4  gcc/testsuite/ada/acats/tests/ce/ce2202a.ada
! 939f3ce3a39c9ca9d86e52320f27ff2c  gcc/testsuite/ada/acats/tests/ce/ce2203a.tst
! ba04f29f243a15d2bbe413b9e0066901  gcc/testsuite/ada/acats/tests/ce/ce2204a.ada
! 2fc36a0b7b4ddb630b023af7c4d90ba7  gcc/testsuite/ada/acats/tests/ce/ce2204b.ada
! 9ef6a168f2e294541459fe7a14263eb5  gcc/testsuite/ada/acats/tests/ce/ce2204c.ada
! b0274d08b84af4b62ad59e3d9ddb07df  gcc/testsuite/ada/acats/tests/ce/ce2204d.ada
! 34418b28be06a3924c3a2584bef259b6  gcc/testsuite/ada/acats/tests/ce/ce2205a.ada
! 5c92fac63d085e6a68726106d482ea42  gcc/testsuite/ada/acats/tests/ce/ce2206a.ada
! fcc7c7c24b495ce3ddaa0f9a580d75ee  gcc/testsuite/ada/acats/tests/ce/ce2208b.ada
! 97568e8cf63e0507c14b35a1a14e20c0  gcc/testsuite/ada/acats/tests/ce/ce2401a.ada
! dcd9e7cbbd7e97c5dd3e3add1eb9dc36  gcc/testsuite/ada/acats/tests/ce/ce2401b.ada
! efcdb258c81995c38e8cc3694b22f6dd  gcc/testsuite/ada/acats/tests/ce/ce2401c.ada
! e7f9dbd6fea160401601272d061289a3  gcc/testsuite/ada/acats/tests/ce/ce2401e.ada
! 1bf5badbcde77492314acef836d8ea11  gcc/testsuite/ada/acats/tests/ce/ce2401f.ada
! eb673da58247c955773ce3b8e1c2d4f3  gcc/testsuite/ada/acats/tests/ce/ce2401h.ada
! 6918301d4740c9f3a5bcdf8763ba341a  gcc/testsuite/ada/acats/tests/ce/ce2401i.ada
! 664a2145b5105ab8ae94b8ba8dca5cdd  gcc/testsuite/ada/acats/tests/ce/ce2401j.ada
! 7f54c0274e46b59b1fec8510f4fc3ad7  gcc/testsuite/ada/acats/tests/ce/ce2401k.ada
! a83a38fe98395d0bb886cb6143eb8170  gcc/testsuite/ada/acats/tests/ce/ce2401l.ada
! 2c4e89aba46a0152400d53a9aed78ba8  gcc/testsuite/ada/acats/tests/ce/ce2402a.ada
! 4e54cd3fcd15e2f31d844365222a85b3  gcc/testsuite/ada/acats/tests/ce/ce2403a.tst
! 4fce3b03a76a452b2433c54b199834ff  gcc/testsuite/ada/acats/tests/ce/ce2404a.ada
! ad81e45a71e09a3713483ae198eae6b0  gcc/testsuite/ada/acats/tests/ce/ce2404b.ada
! 397eb6a738bd1fb16bf404d4581a21e8  gcc/testsuite/ada/acats/tests/ce/ce2405b.ada
! 035cdd8af2147f386ba98eafee6fa53d  gcc/testsuite/ada/acats/tests/ce/ce2406a.ada
! bc1c3fb660e3a1a6cd3c3cd2c20c6f21  gcc/testsuite/ada/acats/tests/ce/ce2407a.ada
! e21a045af5825bcf7bae0f7774bf28bb  gcc/testsuite/ada/acats/tests/ce/ce2407b.ada
! 1ac50c952fbab2fcf2e1391bb697aac1  gcc/testsuite/ada/acats/tests/ce/ce2408a.ada
! fb58d51e1570b9726aa28d10034cf135  gcc/testsuite/ada/acats/tests/ce/ce2408b.ada
! d60b98c48fae643e51060dfd4200371e  gcc/testsuite/ada/acats/tests/ce/ce2409a.ada
! 5b25842de422c3e8d6301447c51d8985  gcc/testsuite/ada/acats/tests/ce/ce2409b.ada
! e03ae0d17d4ce186bb17ad28c1d12c8e  gcc/testsuite/ada/acats/tests/ce/ce2410a.ada
! a10dc12fca4ab67d0e070b8f08878918  gcc/testsuite/ada/acats/tests/ce/ce2410b.ada
! ef01f4584aa6fe18dfca4291aa2b9936  gcc/testsuite/ada/acats/tests/ce/ce2411a.ada
! cfdd50459f606dfd0272b27f902831f0  gcc/testsuite/ada/acats/tests/ce/ce3002b.tst
! 8c7a2401c3fd65042aaf7fbaaebb05d5  gcc/testsuite/ada/acats/tests/ce/ce3002c.tst
! 60cfa1b0514071feae57d422f407bbc6  gcc/testsuite/ada/acats/tests/ce/ce3002d.ada
! f7f30f9bace21926cfd024ab3ae7ed4a  gcc/testsuite/ada/acats/tests/ce/ce3002f.ada
! c4f22dddebf62a993e9a5dca37748e9a  gcc/testsuite/ada/acats/tests/ce/ce3102a.ada
! 019efa14311a98e7532962ec6464bb8e  gcc/testsuite/ada/acats/tests/ce/ce3102b.tst
! dab3a80b1760df07e4cf44cef4f9ca81  gcc/testsuite/ada/acats/tests/ce/ce3102d.ada
! 112884bd382c35480c4248866f3a556e  gcc/testsuite/ada/acats/tests/ce/ce3102e.ada
! 884f6ff3272bb27974b5c059fd940eb8  gcc/testsuite/ada/acats/tests/ce/ce3102f.ada
! 561a9bb3212245b35ea37ed7834ace08  gcc/testsuite/ada/acats/tests/ce/ce3102g.ada
! a5c10d55f5c631bb605e9f92f33b3d83  gcc/testsuite/ada/acats/tests/ce/ce3102h.ada
! 16f9be98787f36d98dd3a0d7c5673f99  gcc/testsuite/ada/acats/tests/ce/ce3102i.ada
! f2fb4988c4b17b901cb57756fa48524d  gcc/testsuite/ada/acats/tests/ce/ce3102j.ada
! 5885ee3beb2611070afd9595b92d024d  gcc/testsuite/ada/acats/tests/ce/ce3102k.ada
! af4fce15977e583c9580c84a57f46000  gcc/testsuite/ada/acats/tests/ce/ce3103a.ada
! 1a359b00af85a86ae636ed8ce9f54011  gcc/testsuite/ada/acats/tests/ce/ce3104a.ada
! 62ae4a6a702993a429980ed85d7d288b  gcc/testsuite/ada/acats/tests/ce/ce3104b.ada
! 3097f1866f5a1a12edc0bd1ad06fcfd7  gcc/testsuite/ada/acats/tests/ce/ce3104c.ada
! ffdd7cea02bf78362b21d5b47923f55a  gcc/testsuite/ada/acats/tests/ce/ce3106a.ada
! c089188b0086e9498b16c61338d1c72e  gcc/testsuite/ada/acats/tests/ce/ce3106b.ada
! 7ec91be55117ceec515d06ff18fd96f6  gcc/testsuite/ada/acats/tests/ce/ce3107a.tst
! 29791bc75974606a36e491a742bb3096  gcc/testsuite/ada/acats/tests/ce/ce3107b.ada
! eb49ffd6a23ce40400cdc2ebf0c8f371  gcc/testsuite/ada/acats/tests/ce/ce3108a.ada
! fd863ff6b1661c6c912d9bf6aebc3bc9  gcc/testsuite/ada/acats/tests/ce/ce3108b.ada
! 97e280eb5834dec4e91bbbc97553b1c7  gcc/testsuite/ada/acats/tests/ce/ce3110a.ada
! 5f42a55944d863fa57d6e12253d4922c  gcc/testsuite/ada/acats/tests/ce/ce3112c.ada
! c9d44fa9ff3ca5a2ccdda83b010c1f54  gcc/testsuite/ada/acats/tests/ce/ce3112d.ada
! f01486f7b41b7e9bb285f2b42444a64f  gcc/testsuite/ada/acats/tests/ce/ce3114a.ada
! 816907364fd976b617fbee2dc8afc858  gcc/testsuite/ada/acats/tests/ce/ce3115a.ada
! 55427ea93a85e61592244d314238e089  gcc/testsuite/ada/acats/tests/ce/ce3201a.ada
! 0a50773e8cb26d94c11adb5533460429  gcc/testsuite/ada/acats/tests/ce/ce3202a.ada
! 06b5bbb44e688a3c0c0ca62e655c32ab  gcc/testsuite/ada/acats/tests/ce/ce3206a.ada
! 98a3e7772f00a7bebd187c6c2d309f82  gcc/testsuite/ada/acats/tests/ce/ce3207a.ada
! f4529439e526335f9525bb157863cc63  gcc/testsuite/ada/acats/tests/ce/ce3301a.ada
! 0a70a8ac8ee35a84b380c07ea541b57f  gcc/testsuite/ada/acats/tests/ce/ce3302a.ada
! 9bac0e06cef0c10689cc849f3c509fcf  gcc/testsuite/ada/acats/tests/ce/ce3303a.ada
! 23c77e761edd8a91671acf3422a0ca06  gcc/testsuite/ada/acats/tests/ce/ce3304a.tst
! d0da64618db56f4abfac0c3b90fa0296  gcc/testsuite/ada/acats/tests/ce/ce3305a.ada
! 3f7e70ff0a93058dd780e3e6e4fefa3d  gcc/testsuite/ada/acats/tests/ce/ce3306a.ada
! 4e1329f66825e0283637c00ca6acc5b6  gcc/testsuite/ada/acats/tests/ce/ce3401a.ada
! df06c67b3b1ea125ef98d5346e81cc7e  gcc/testsuite/ada/acats/tests/ce/ce3402a.ada
! b50c12a694c3c56d3a2cf04d9ca9ccc3  gcc/testsuite/ada/acats/tests/ce/ce3402c.ada
! e2743c970635e3ead26ba550e6c23aab  gcc/testsuite/ada/acats/tests/ce/ce3402d.ada
! c0341031211c513d8c748c61167125fb  gcc/testsuite/ada/acats/tests/ce/ce3402e.ada
! f9deacf7d49917900f3fcee43aee5ca6  gcc/testsuite/ada/acats/tests/ce/ce3403a.ada
! fec31596c967bb1bab6a046e32225c6b  gcc/testsuite/ada/acats/tests/ce/ce3403b.ada
! 7e9202e07d3f865f2ceeb151792c452f  gcc/testsuite/ada/acats/tests/ce/ce3403c.ada
! 64070608c4f9c6a05d1e23408e5beb0d  gcc/testsuite/ada/acats/tests/ce/ce3403d.ada
! d82cac6d273d1fbe65506c1eecff04b9  gcc/testsuite/ada/acats/tests/ce/ce3403e.ada
! 7cdc9d7a9c43884cbedbde28d4954fe4  gcc/testsuite/ada/acats/tests/ce/ce3403f.ada
! dc1a67476ce793079c7af8b2d1b275ac  gcc/testsuite/ada/acats/tests/ce/ce3404a.ada
! 8b982e428bef61a3980b00b8079ad4f2  gcc/testsuite/ada/acats/tests/ce/ce3404b.ada
! 5cc2fbe64ade8df5eced5c397a38020a  gcc/testsuite/ada/acats/tests/ce/ce3404c.ada
! 871605306e645bb8c8952539a05637b2  gcc/testsuite/ada/acats/tests/ce/ce3404d.ada
! 5afe1fa2e94e304b32849dad526b0cb4  gcc/testsuite/ada/acats/tests/ce/ce3405a.ada
! 75e7f1f2e2d338bdbc593c460b1e055f  gcc/testsuite/ada/acats/tests/ce/ce3405c.ada
! d61f321bab45f725f89da9ebd98c7959  gcc/testsuite/ada/acats/tests/ce/ce3405d.ada
! 683881439899376dec46462b7b974e93  gcc/testsuite/ada/acats/tests/ce/ce3406a.ada
! 1d67a6840b438185a99382b830ffe815  gcc/testsuite/ada/acats/tests/ce/ce3406b.ada
! 00a1933b7205d0378d065989609d0e6f  gcc/testsuite/ada/acats/tests/ce/ce3406c.ada
! bc8a2b4d509e438b111cb451ba6c633d  gcc/testsuite/ada/acats/tests/ce/ce3406d.ada
! 0c8f9906304b5f6e2f871a2f56543e48  gcc/testsuite/ada/acats/tests/ce/ce3407a.ada
! d6da13ff2e3c07bb7f9617a04f387915  gcc/testsuite/ada/acats/tests/ce/ce3407b.ada
! bacd5248d5883ef91439cbdd245cbd9a  gcc/testsuite/ada/acats/tests/ce/ce3407c.ada
! babb7fd82795ea56950eb78715c895aa  gcc/testsuite/ada/acats/tests/ce/ce3408a.ada
! e30520b348614e4a8e628b3ea3aad54e  gcc/testsuite/ada/acats/tests/ce/ce3408b.ada
! 5d1d893ced6dbc7d9f25ee4a5fb8e211  gcc/testsuite/ada/acats/tests/ce/ce3408c.ada
! ca268135b5b6d64dc8be3768b6f7edc0  gcc/testsuite/ada/acats/tests/ce/ce3409a.ada
! 6c79cafc53b26bfb3c462c4d01969806  gcc/testsuite/ada/acats/tests/ce/ce3409b.ada
! 153c9a6d9246f682a42cd95552087944  gcc/testsuite/ada/acats/tests/ce/ce3409c.ada
! 62ed81bdf1e56f27f4c2630b320c6b75  gcc/testsuite/ada/acats/tests/ce/ce3409d.ada
! 67051865f07afe2038f84683dece3683  gcc/testsuite/ada/acats/tests/ce/ce3409e.ada
! 36c2b6db90b30d1e89dfe642110ca9be  gcc/testsuite/ada/acats/tests/ce/ce3410a.ada
! 5cf308b315cd2ac4c47ecb7409ef0ba1  gcc/testsuite/ada/acats/tests/ce/ce3410b.ada
! bcebb594f14a81961460c696159ea641  gcc/testsuite/ada/acats/tests/ce/ce3410c.ada
! c28a6aea6e2fa07f6b2e23e3e14876c2  gcc/testsuite/ada/acats/tests/ce/ce3410d.ada
! 8c67058f9e7fc008e387aa622534b5d4  gcc/testsuite/ada/acats/tests/ce/ce3410e.ada
! 4c3d96fe2a475d4a97d07bbd385cd260  gcc/testsuite/ada/acats/tests/ce/ce3411a.ada
! 0a0deabd5d66c7e62d00da0c83ac5dfa  gcc/testsuite/ada/acats/tests/ce/ce3411c.ada
! a8dda42826e8174f0657de7379cb605b  gcc/testsuite/ada/acats/tests/ce/ce3412a.ada
! 040ce75a5a909fb3da32ae0e451bda3e  gcc/testsuite/ada/acats/tests/ce/ce3413a.ada
! 951c9393706295621e4a78e9a1b9e2ee  gcc/testsuite/ada/acats/tests/ce/ce3413b.ada
! c33c707be5a9051ad8c6962035162e25  gcc/testsuite/ada/acats/tests/ce/ce3413c.ada
! 6cb9f4f71827deb077bcc1180c854625  gcc/testsuite/ada/acats/tests/ce/ce3414a.ada
! e5e2298148250ece65cc736cf86b5a00  gcc/testsuite/ada/acats/tests/ce/ce3601a.ada
! 1215dc7327db7704c21d367fe12a1ab9  gcc/testsuite/ada/acats/tests/ce/ce3602a.ada
! 6ccbba350556793177123ad7809e0ff9  gcc/testsuite/ada/acats/tests/ce/ce3602b.ada
! 12843cf2e9816b955ca7962f9bfc627f  gcc/testsuite/ada/acats/tests/ce/ce3602c.ada
! cef84bc67c1c6c0d7583ed454834a34f  gcc/testsuite/ada/acats/tests/ce/ce3602d.ada
! 5e31687529c52bde6efe93242bcbf2f8  gcc/testsuite/ada/acats/tests/ce/ce3603a.ada
! 3dc38686e9ce99632f9e21e584055443  gcc/testsuite/ada/acats/tests/ce/ce3604a.ada
! 98f98beec04bb6905ddea16ed212134f  gcc/testsuite/ada/acats/tests/ce/ce3604b.ada
! 1c7074f06be7b99dab79f14d5dddb060  gcc/testsuite/ada/acats/tests/ce/ce3605a.ada
! 49a30d4306b467f2cd10d4b811cfa231  gcc/testsuite/ada/acats/tests/ce/ce3605b.ada
! b496a8c56eea6c0501a70a96873353f7  gcc/testsuite/ada/acats/tests/ce/ce3605c.ada
! 6f3fe3a52cae3aa00e90c34391f3d16d  gcc/testsuite/ada/acats/tests/ce/ce3605d.ada
! 86bd1f46afec2bf13df76bd0d8ce0514  gcc/testsuite/ada/acats/tests/ce/ce3605e.ada
! 8388e3c1abd488ed32c198647fab80fe  gcc/testsuite/ada/acats/tests/ce/ce3606a.ada
! b3c475457035678aad225b02f0baaf49  gcc/testsuite/ada/acats/tests/ce/ce3606b.ada
! c0471531dea8b138d096c3049a710d34  gcc/testsuite/ada/acats/tests/ce/ce3701a.ada
! 918eb1c7abfa51f1d0f0920c8c6305e7  gcc/testsuite/ada/acats/tests/ce/ce3704a.ada
! fd0817427cf4c02d336138b11d6153a8  gcc/testsuite/ada/acats/tests/ce/ce3704b.ada
! 7fe37fdc40a516882c3388c9405adb57  gcc/testsuite/ada/acats/tests/ce/ce3704c.ada
! 9fb3d924d4a90f6940ec5e4b11a0ce61  gcc/testsuite/ada/acats/tests/ce/ce3704d.ada
! b5466a70b0554788bcffce4b777d7bbd  gcc/testsuite/ada/acats/tests/ce/ce3704e.ada
! 2bd3e088ed3663d0f57172ec9878402c  gcc/testsuite/ada/acats/tests/ce/ce3704f.ada
! c1b7a44976ea643f0821318848d2a333  gcc/testsuite/ada/acats/tests/ce/ce3704m.ada
! fbb2cb08fa9bd676488ed39c0025017d  gcc/testsuite/ada/acats/tests/ce/ce3704n.ada
! ddc6d31452157a248e0315438e717892  gcc/testsuite/ada/acats/tests/ce/ce3704o.ada
! 0f3f07ab9439af00921be7fba20ce330  gcc/testsuite/ada/acats/tests/ce/ce3705a.ada
! 3be84deb5cb9f6d5be7c2cadf68a90f5  gcc/testsuite/ada/acats/tests/ce/ce3705b.ada
! 11a056cf164688fbe30b1b1a85208e47  gcc/testsuite/ada/acats/tests/ce/ce3705c.ada
! e6e83df07a3fab385c58b17a0a43ca83  gcc/testsuite/ada/acats/tests/ce/ce3705d.ada
! c1458b663e297c80390f9cd80c7f5864  gcc/testsuite/ada/acats/tests/ce/ce3705e.ada
! fab53328469c600d972529f33eecee23  gcc/testsuite/ada/acats/tests/ce/ce3706c.ada
! aed136cb2863502616daa378424686d6  gcc/testsuite/ada/acats/tests/ce/ce3706d.ada
! 6344fa066f047ece7e15a9dc9dc4bf76  gcc/testsuite/ada/acats/tests/ce/ce3706f.ada
! 5316d57b3ad4c2e7fdcfa4dcf7de4439  gcc/testsuite/ada/acats/tests/ce/ce3706g.ada
! a778f4b7a5f926d446e0a70ffc718db8  gcc/testsuite/ada/acats/tests/ce/ce3707a.ada
! 478e73d32be1e76a0099cd9a73da79c0  gcc/testsuite/ada/acats/tests/ce/ce3708a.ada
! 818f2f0d5fcc6bdd1c354cc85b1e6640  gcc/testsuite/ada/acats/tests/ce/ce3801a.ada
! 6dc388aa9640dfd68a016a87aedb4e9b  gcc/testsuite/ada/acats/tests/ce/ce3801b.ada
! e7b36818b6b1f0625c96af8481f52f0d  gcc/testsuite/ada/acats/tests/ce/ce3804a.ada
! c3922fdc4d7bd246e803dbcf29ec365b  gcc/testsuite/ada/acats/tests/ce/ce3804b.ada
! eae67ccfbe2e51d92e77fbd2aefd9279  gcc/testsuite/ada/acats/tests/ce/ce3804c.ada
! b6842219efec21bda3be0c99f4cc04b4  gcc/testsuite/ada/acats/tests/ce/ce3804d.ada
! 9eef715602b30b1986cd238ae1f5fc61  gcc/testsuite/ada/acats/tests/ce/ce3804e.ada
! c5996f22c17f572bd9ab7181c9c39831  gcc/testsuite/ada/acats/tests/ce/ce3804f.ada
! 613171f59b0c0405911c4d928abfb0b4  gcc/testsuite/ada/acats/tests/ce/ce3804g.ada
! d992e56c7b48881cc7480a014ee01ce9  gcc/testsuite/ada/acats/tests/ce/ce3804h.ada
! a78767becb4aa2f884469056ae3d7ec4  gcc/testsuite/ada/acats/tests/ce/ce3804i.ada
! a4e5e33e2585ba61ae7ae7ae4db12bb2  gcc/testsuite/ada/acats/tests/ce/ce3804j.ada
! e6928c085b0205ec7db55a9f830ccdd0  gcc/testsuite/ada/acats/tests/ce/ce3804m.ada
! 7193594f0a1b29b3c2845bdce32c53e7  gcc/testsuite/ada/acats/tests/ce/ce3804o.ada
! 4a0b48b429236f9e1c8e6f58dd3bfa28  gcc/testsuite/ada/acats/tests/ce/ce3804p.ada
! 9ac3d952f3c355af267e6a6d9f4a8a79  gcc/testsuite/ada/acats/tests/ce/ce3805a.ada
! c7fd8ecaab44034a4d7e19eaf52d3390  gcc/testsuite/ada/acats/tests/ce/ce3805b.ada
! 1aab796cf0e7689c6edac441d619d28e  gcc/testsuite/ada/acats/tests/ce/ce3806a.ada
! 2e9a765636a0e1133cc203d0def8724d  gcc/testsuite/ada/acats/tests/ce/ce3806b.ada
! bc5e903902196b77527b50b767c2d7da  gcc/testsuite/ada/acats/tests/ce/ce3806c.ada
! ee7b548143b3610a6b8d3fdd4698dc45  gcc/testsuite/ada/acats/tests/ce/ce3806d.ada
! 4ef742156a97e0838a7c68579a62465c  gcc/testsuite/ada/acats/tests/ce/ce3806e.ada
! 48eed75e47db04066ee57577ae8febdf  gcc/testsuite/ada/acats/tests/ce/ce3806f.ada
! fae283383fb9395ac865027e5ecb9495  gcc/testsuite/ada/acats/tests/ce/ce3806g.ada
! 9d6687f5803bfad7ea35a3abcdb5772c  gcc/testsuite/ada/acats/tests/ce/ce3806h.ada
! d3af3076cdba08b0142afed2e6fc0b7b  gcc/testsuite/ada/acats/tests/ce/ce3809a.ada
! 2144655343ab8e0671768264f1de7939  gcc/testsuite/ada/acats/tests/ce/ce3809b.ada
! 94c3af83ea38d2552587ed3285a692b6  gcc/testsuite/ada/acats/tests/ce/ce3810a.ada
! 2b16f8d4e554f10c2a187f8308d7c631  gcc/testsuite/ada/acats/tests/ce/ce3810b.ada
! d426db9733cc34265b461b792b6474ad  gcc/testsuite/ada/acats/tests/ce/ce3815a.ada
! 48a18490ee8614f76691210dd9487c7b  gcc/testsuite/ada/acats/tests/ce/ce3901a.ada
! c0b5bdc86cdd66cb3f89cb34da6bafc6  gcc/testsuite/ada/acats/tests/ce/ce3902b.ada
! a2d6108b8d0296883e3c658639d13b49  gcc/testsuite/ada/acats/tests/ce/ce3904a.ada
! 379cd7598f79bae2f05b0815465e285f  gcc/testsuite/ada/acats/tests/ce/ce3904b.ada
! 49a69ee3b18484263b6f081df965ab54  gcc/testsuite/ada/acats/tests/ce/ce3905a.ada
! c53bbe9b612250e0e99c4238d30a2004  gcc/testsuite/ada/acats/tests/ce/ce3905b.ada
! 72f61386b7953b00b7cff52dfbc382c2  gcc/testsuite/ada/acats/tests/ce/ce3905c.ada
! 2ef4e950bf19d740d3354feb5811b645  gcc/testsuite/ada/acats/tests/ce/ce3905l.ada
! 68ee2e176861f501ee862916a0b9b86e  gcc/testsuite/ada/acats/tests/ce/ce3906a.ada
! d47ad5ee4c0a4fdbf2ea42a44fe42621  gcc/testsuite/ada/acats/tests/ce/ce3906b.ada
! 695b6968a4b0e7d53b5b76fb4f7da0c0  gcc/testsuite/ada/acats/tests/ce/ce3906c.ada
! 90d21e5ea4be7a236bfb40661d560471  gcc/testsuite/ada/acats/tests/ce/ce3906d.ada
! 3462bab257d5dd10bcb9c56813aa1e74  gcc/testsuite/ada/acats/tests/ce/ce3906e.ada
! 2c106bf46db6d9c4c50c01fbe92b517f  gcc/testsuite/ada/acats/tests/ce/ce3906f.ada
! 7c41fbcef2ed668ee19c73f44c696bac  gcc/testsuite/ada/acats/tests/ce/ce3907a.ada
! ee7ec1f6b6ec4c5ef50b1d777026421a  gcc/testsuite/ada/acats/tests/ce/ce3908a.ada
! c4b3b8c1c9564099bdde092389cc2da4  gcc/testsuite/ada/acats/tests/cxa/cxa3001.a
! 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
! 4b1514a00cc831e1766e0d36c67e271f  gcc/testsuite/ada/acats/tests/cxa/cxa4005.a
! dcde2eda6ce0a916997883996641ea19  gcc/testsuite/ada/acats/tests/cxa/cxa4006.a
! f528eee5266ffb815aad7b653d5be870  gcc/testsuite/ada/acats/tests/cxa/cxa4007.a
! 413d98fa6eff56c6b83c031c575fd9a6  gcc/testsuite/ada/acats/tests/cxa/cxa4008.a
! d2a3c398ae82b68c1544dbf3384095d7  gcc/testsuite/ada/acats/tests/cxa/cxa4009.a
! bc90a16063bf97bfeb414d4209261109  gcc/testsuite/ada/acats/tests/cxa/cxa4010.a
! b3036ab386ac3ec1d7b58cd50ad31ab9  gcc/testsuite/ada/acats/tests/cxa/cxa4011.a
! 06c61ebbffe294301eb79bc3d5e27c54  gcc/testsuite/ada/acats/tests/cxa/cxa4012.a
! ce3338d13ed9dd0ef83c04e53bed831e  gcc/testsuite/ada/acats/tests/cxa/cxa4013.a
! 0a9e62befb3d93c2c5e8ab93a327a6c2  gcc/testsuite/ada/acats/tests/cxa/cxa4014.a
! aad5ca617d2e40d20e448b613199553e  gcc/testsuite/ada/acats/tests/cxa/cxa4015.a
! 33c5aafe5935daee003a8246d048e812  gcc/testsuite/ada/acats/tests/cxa/cxa4016.a
! d2ac40847abc81d20163d7c521a90575  gcc/testsuite/ada/acats/tests/cxa/cxa4017.a
! 81384a047e321f48d7a9ae881a426324  gcc/testsuite/ada/acats/tests/cxa/cxa4018.a
! 334665c1cb55150c5c9af5013690044a  gcc/testsuite/ada/acats/tests/cxa/cxa4019.a
! c1bd4452ee22a8a6db5adbef47a641cc  gcc/testsuite/ada/acats/tests/cxa/cxa4020.a
! a570e64728464b5d7b98abf94a52b945  gcc/testsuite/ada/acats/tests/cxa/cxa4021.a
! ee35d8c6a0354f56770dd1aaf5f4d51e  gcc/testsuite/ada/acats/tests/cxa/cxa4022.a
! fc34d10875377b841a1d6172f334da36  gcc/testsuite/ada/acats/tests/cxa/cxa4023.a
! 19ec3ce920759c4a2037b89ae3061013  gcc/testsuite/ada/acats/tests/cxa/cxa4024.a
! 84b1823c491f3357731a977527457acf  gcc/testsuite/ada/acats/tests/cxa/cxa4025.a
! 254627e35c72d32a51b7db3824a622ea  gcc/testsuite/ada/acats/tests/cxa/cxa4026.a
! 0c20a4e5aa53f054deaa7ca01817db03  gcc/testsuite/ada/acats/tests/cxa/cxa4027.a
! 59f1d44db17d4f8454b983fa7c7b830b  gcc/testsuite/ada/acats/tests/cxa/cxa4028.a
! a05e073a2fe4ee6230e2a03d167ffce8  gcc/testsuite/ada/acats/tests/cxa/cxa4029.a
! eeef22827a8f3112fb9caff03c0003d3  gcc/testsuite/ada/acats/tests/cxa/cxa4030.a
! bb02ecad7593f15476885383704962db  gcc/testsuite/ada/acats/tests/cxa/cxa4031.a
! e272d6fb88a469d5600466803e241311  gcc/testsuite/ada/acats/tests/cxa/cxa4032.a
! 3f7248dd7e0876538e54ffc83eb5b9f9  gcc/testsuite/ada/acats/tests/cxa/cxa4033.a
! 90cfac79483d313e3e60ee66dd47bbb9  gcc/testsuite/ada/acats/tests/cxa/cxa4034.a
! d5b5e8186c886aee7a112ba901ef5b8c  gcc/testsuite/ada/acats/tests/cxa/cxa5011.a
! a67372b949970924bc0a9dd48dfc4999  gcc/testsuite/ada/acats/tests/cxa/cxa5012.a
! 1bc3b7995dbf8b972dd33ceccc5775f8  gcc/testsuite/ada/acats/tests/cxa/cxa5013.a
! 7f31584ea86307c534d43e91b8d28708  gcc/testsuite/ada/acats/tests/cxa/cxa5015.a
! ee786104570339c108786248363e8be5  gcc/testsuite/ada/acats/tests/cxa/cxa5a01.a
! 59b52d99d8ad7539d9702fd5808604ab  gcc/testsuite/ada/acats/tests/cxa/cxa5a02.a
! e58abfcc53f4c016f65e49a2e76c7c18  gcc/testsuite/ada/acats/tests/cxa/cxa5a03.a
! 07803a06f2f6d9efa364537c4d61d56c  gcc/testsuite/ada/acats/tests/cxa/cxa5a04.a
! 8beb99d4b6c77de021e0fb13ef712afc  gcc/testsuite/ada/acats/tests/cxa/cxa5a05.a
! 4facff6e7577e863bfd71cfc8d80f4dc  gcc/testsuite/ada/acats/tests/cxa/cxa5a06.a
! c3a4baf4aa21b446ccc93a6c7667de6a  gcc/testsuite/ada/acats/tests/cxa/cxa5a07.a
! 6278088ddb4cadb7d9e5d09b9045b4b6  gcc/testsuite/ada/acats/tests/cxa/cxa5a08.a
! cd7c58666aed347e740c0f6fd42f83d6  gcc/testsuite/ada/acats/tests/cxa/cxa5a09.a
! ba78679b1a563e67c0076c1562ccf0f3  gcc/testsuite/ada/acats/tests/cxa/cxa5a10.a
! 96b76cdb631cda2774fc81007f5ec5ee  gcc/testsuite/ada/acats/tests/cxa/cxa8001.a
! 367d7f0f5e6305bdd87092066759b0fa  gcc/testsuite/ada/acats/tests/cxa/cxa8002.a
! 620e6506d3b188143f95bf7e9e7c2a47  gcc/testsuite/ada/acats/tests/cxa/cxa8003.a
! 05afd117ada97a293f198e2915e5c6e6  gcc/testsuite/ada/acats/tests/cxa/cxa9001.a
! 720f2be5a9704866c7199912ce177ec5  gcc/testsuite/ada/acats/tests/cxa/cxa9002.a
! 0eda7d556ffc97096e8bf91c74b55ab0  gcc/testsuite/ada/acats/tests/cxa/cxaa001.a
! 77f8a73011b66fb0023f0f34e63b2b56  gcc/testsuite/ada/acats/tests/cxa/cxaa002.a
! 6251cdd5d4023378cc0f056006946d4b  gcc/testsuite/ada/acats/tests/cxa/cxaa003.a
! 43c30533c4d806156e62989d0b1f26b1  gcc/testsuite/ada/acats/tests/cxa/cxaa004.a
! a3c49183a05e7dd95a555b795d847cdb  gcc/testsuite/ada/acats/tests/cxa/cxaa005.a
! 083ebde448b287604a204632257a8037  gcc/testsuite/ada/acats/tests/cxa/cxaa006.a
! 0ba729490f0276e661094749d283895c  gcc/testsuite/ada/acats/tests/cxa/cxaa007.a
! a5ce4e509ce0ab296bcdd6ac1f1901c4  gcc/testsuite/ada/acats/tests/cxa/cxaa008.a
! 6230c5c5911d68e5e9b6f01dd03cb063  gcc/testsuite/ada/acats/tests/cxa/cxaa009.a
! ce752fa717d1efa1292cf1f5fa1d3e2e  gcc/testsuite/ada/acats/tests/cxa/cxaa010.a
! a1b9e04009fe651e52c78ec25d1e7e02  gcc/testsuite/ada/acats/tests/cxa/cxaa011.a
! 89d82c447c9f9e46ab8b9a1c63021ed6  gcc/testsuite/ada/acats/tests/cxa/cxaa012.a
! 1f2db7b6b53cd6eac4580863a696a7fd  gcc/testsuite/ada/acats/tests/cxa/cxaa013.a
! 2bf5156bd9e88fa709d6514444235132  gcc/testsuite/ada/acats/tests/cxa/cxaa014.a
! ed6390551c08d72768b222a3edb8cc65  gcc/testsuite/ada/acats/tests/cxa/cxaa015.a
! 9b3e529f8cb7b3fd77f82dd49f82a490  gcc/testsuite/ada/acats/tests/cxa/cxaa016.a
! 7147f809c3aae79cfac85e734afed9c2  gcc/testsuite/ada/acats/tests/cxa/cxaa017.a
! cc1a3cfdd0d446ad5ae2882d5b1f089b  gcc/testsuite/ada/acats/tests/cxa/cxaa018.a
! 5a18624d0b2a25da41748146d45600fe  gcc/testsuite/ada/acats/tests/cxa/cxaa019.a
! 541118f0faae1cc95a1d90526336b620  gcc/testsuite/ada/acats/tests/cxa/cxab001.a
! 02e50f3257e2da0b2d211b9ed3e16791  gcc/testsuite/ada/acats/tests/cxa/cxac001.a
! 6788fdbde2fdac4a827fd20b38d8711b  gcc/testsuite/ada/acats/tests/cxa/cxac002.a
! bc2d4997d303b5a8cd8ac49ea128eabc  gcc/testsuite/ada/acats/tests/cxa/cxac003.a
! 0fed3fbdda367e73cc20e053e436b99f  gcc/testsuite/ada/acats/tests/cxa/cxac004.a
! c03fcfa6083accd85e20bd1ddecb7e8e  gcc/testsuite/ada/acats/tests/cxa/cxac005.a
! 1ea54203b702bc16f99a16da31812413  gcc/testsuite/ada/acats/tests/cxa/cxaca01.a
! 177daeac77a726a44c2f67d470718c26  gcc/testsuite/ada/acats/tests/cxa/cxaca02.a
! 56fc9878aa06e841c10ea2264f6970c0  gcc/testsuite/ada/acats/tests/cxa/cxacb01.a
! 66ac8f47c4a79c2e4c270e0af7e2e0ee  gcc/testsuite/ada/acats/tests/cxa/cxacb02.a
! 0709cbd75999d38ff1820f0252b56573  gcc/testsuite/ada/acats/tests/cxa/cxacc01.a
! e9b9a0663c6181302fffd99d8631f3de  gcc/testsuite/ada/acats/tests/cxa/cxaf001.a
! 74275581d2adcd2434f5e7957524b51c  gcc/testsuite/ada/acats/tests/cxb/cxb2001.a
! 801c8a35b2162f9c6264359249bbee69  gcc/testsuite/ada/acats/tests/cxb/cxb2002.a
! bf39b2f4f07ed6a4665a9dda2b002ff4  gcc/testsuite/ada/acats/tests/cxb/cxb2003.a
! 77c85b698809dbb5fb428e06a404c9b9  gcc/testsuite/ada/acats/tests/cxb/cxb3001.a
! 8359205e9055b8be1d9b6762d2ed3539  gcc/testsuite/ada/acats/tests/cxb/cxb3002.a
! 670fd9357c7c7cfa50297d22a291bf67  gcc/testsuite/ada/acats/tests/cxb/cxb3003.a
! 264fa1c95ae6b3be066613d5e0bfc39d  gcc/testsuite/ada/acats/tests/cxb/cxb30040.c
! 834af9fa57783899a0e35eb445000495  gcc/testsuite/ada/acats/tests/cxb/cxb30041.am
! 1f7e6c754cd6392302f6a73881265fcb  gcc/testsuite/ada/acats/tests/cxb/cxb3005.a
! 47cb358f8b5c39994c472ca6162c0605  gcc/testsuite/ada/acats/tests/cxb/cxb30060.c
! 43769c5f0a9930881f7e0db2f6a8a256  gcc/testsuite/ada/acats/tests/cxb/cxb30061.am
! 593282429f5462d5ed18dcd8dcdb51d9  gcc/testsuite/ada/acats/tests/cxb/cxb3007.a
! f846172da7dd713a885e8d2a7d06687e  gcc/testsuite/ada/acats/tests/cxb/cxb3008.a
! d2f1180bb38e13d62efbd9773c8b157b  gcc/testsuite/ada/acats/tests/cxb/cxb3009.a
! 02b32c32297cd44b0d911f2b531c9313  gcc/testsuite/ada/acats/tests/cxb/cxb3010.a
! f8edfe848dc0c6e6f48662c52fb4967d  gcc/testsuite/ada/acats/tests/cxb/cxb3011.a
! 8a65d94bc5bfd4ba3ffa03803fd4161b  gcc/testsuite/ada/acats/tests/cxb/cxb3012.a
! c26417c84de8dd0b5f98086031028262  gcc/testsuite/ada/acats/tests/cxb/cxb30130.c
! 6869325a6624cae77fa352805a94bdba  gcc/testsuite/ada/acats/tests/cxb/cxb30131.c
! f10ef865b96ee70575c8e209dd789a5d  gcc/testsuite/ada/acats/tests/cxb/cxb30132.am
! 1ddc4dd51346e5a28f96af27d7391476  gcc/testsuite/ada/acats/tests/cxb/cxb3014.a
! 95d8e46749c34da8a75a52eda38a1557  gcc/testsuite/ada/acats/tests/cxb/cxb3015.a
! 84585e09a73118e308ad940e05334954  gcc/testsuite/ada/acats/tests/cxb/cxb3016.a
! cbb79c5b42e78b77403051dad62e4b41  gcc/testsuite/ada/acats/tests/cxb/cxb4001.a
! fc709f860964cb89f985c7186e9f4747  gcc/testsuite/ada/acats/tests/cxb/cxb4002.a
! 4f684915a0877f5374cf11b630a78395  gcc/testsuite/ada/acats/tests/cxb/cxb4003.a
! 79754fe98b14164c0947685d39cacbb4  gcc/testsuite/ada/acats/tests/cxb/cxb4004.a
! 85a2ebed857909a39d337814747d6b8e  gcc/testsuite/ada/acats/tests/cxb/cxb4005.a
! 4082371e3fdf72189f00c59a748996d4  gcc/testsuite/ada/acats/tests/cxb/cxb4006.a
! 27abdc5551e4a8d82b4e9b0c64e5887b  gcc/testsuite/ada/acats/tests/cxb/cxb4007.a
! 8cddd50c9a17f7fc8660e979cbf02b3b  gcc/testsuite/ada/acats/tests/cxb/cxb4008.a
! 1b69eacf17c1c91c6952280f3412de5a  gcc/testsuite/ada/acats/tests/cxb/cxb5001.a
! c09620903bb91a1bb4eb42d58e681d41  gcc/testsuite/ada/acats/tests/cxb/cxb5002.a
! d523751f359c8b2cd39c46362a810f62  gcc/testsuite/ada/acats/tests/cxb/cxb5003.a
! 161785b3f8117f52fdfa5e2be103fe50  gcc/testsuite/ada/acats/tests/cxf/cxf1001.a
! 38832640106024eeab3e787b3e1abf12  gcc/testsuite/ada/acats/tests/cxf/cxf2001.a
! 6dbe0dc7ad8bcf924dea296b0e6d64f8  gcc/testsuite/ada/acats/tests/cxf/cxf2002.a
! df30106f75773ccdd081af9128456937  gcc/testsuite/ada/acats/tests/cxf/cxf2003.a
! bbdc713b858e164ba488b05b51a426d4  gcc/testsuite/ada/acats/tests/cxf/cxf2004.a
! 2853070456ab778051ae45509ef31700  gcc/testsuite/ada/acats/tests/cxf/cxf2005.a
! 5289a83b801532cadb9cfc8ca574144c  gcc/testsuite/ada/acats/tests/cxf/cxf2a01.a
! ecb6f7270417d94e1c9636302e69e1fa  gcc/testsuite/ada/acats/tests/cxf/cxf2a02.a
! 2ffc00ccfb476a6822050bacce9f38f0  gcc/testsuite/ada/acats/tests/cxf/cxf3001.a
! 5dae288354cb87431755a88817dd365b  gcc/testsuite/ada/acats/tests/cxf/cxf3002.a
! afd49d16a5d04aec633505dca48b0d0a  gcc/testsuite/ada/acats/tests/cxf/cxf3003.a
! c6b3622a1e5b20d69719852a4082e8be  gcc/testsuite/ada/acats/tests/cxf/cxf3004.a
! 1aee0d4b0a06b7063d6235fc8d34096a  gcc/testsuite/ada/acats/tests/cxf/cxf3a01.a
! 57064f6f477f169e4e55de947a9c929c  gcc/testsuite/ada/acats/tests/cxf/cxf3a02.a
! 963266d142d788cf27f6a6c25463a3e4  gcc/testsuite/ada/acats/tests/cxf/cxf3a03.a
! b0edb7a9a3f96101a217a11d890227d0  gcc/testsuite/ada/acats/tests/cxf/cxf3a04.a
! fc92aa9ac0df0e5baa30ead02d831b57  gcc/testsuite/ada/acats/tests/cxf/cxf3a05.a
! 64a24769c1369c7cfdee0cd6e259be8f  gcc/testsuite/ada/acats/tests/cxf/cxf3a06.a
! 9713b92f0463d1404ffce0f6b1e500b0  gcc/testsuite/ada/acats/tests/cxf/cxf3a07.a
! 1e8c052576f82ce44e874eaf39b880b2  gcc/testsuite/ada/acats/tests/cxf/cxf3a08.a
! bb528e8b6f5a51fcb2c85de76f01ccd4  gcc/testsuite/ada/acats/tests/cxg/cxg1001.a
! 31d84efce5cb86f288a534683e15200a  gcc/testsuite/ada/acats/tests/cxg/cxg1002.a
! 5db4d9e6a4cf0ee61e3e4e4ea8093c4e  gcc/testsuite/ada/acats/tests/cxg/cxg1003.a
! 29704ab7c7c7a79f47511599cd5ea610  gcc/testsuite/ada/acats/tests/cxg/cxg1004.a
! 38c19bd2b8b49892b5a8468c5b781d26  gcc/testsuite/ada/acats/tests/cxg/cxg1005.a
! 814368ba96fd7e4cf439f579d9e94c81  gcc/testsuite/ada/acats/tests/cxg/cxg2001.a
! 691b89d2d22e78fce3d8ce8190aceac5  gcc/testsuite/ada/acats/tests/cxg/cxg2002.a
! fd15930c996abc004ebe5f623f8d7e3e  gcc/testsuite/ada/acats/tests/cxg/cxg2003.a
! 9c7ebf167f5adb4ad817f1cfaad15b1e  gcc/testsuite/ada/acats/tests/cxg/cxg2004.a
! 19538696a45a5cd61915e552c0159e21  gcc/testsuite/ada/acats/tests/cxg/cxg2005.a
! b5a9cd918ec505f80bffd4b8d3f81fb7  gcc/testsuite/ada/acats/tests/cxg/cxg2006.a
! d118b202244475fa2d6637a5102c8793  gcc/testsuite/ada/acats/tests/cxg/cxg2007.a
! 911e82a1ca3377a813732860a0062312  gcc/testsuite/ada/acats/tests/cxg/cxg2008.a
! 4fad0b52dda14d215336cc1cd38b7f03  gcc/testsuite/ada/acats/tests/cxg/cxg2009.a
! a7f0790bd1f4db62bb1f94f90b403cca  gcc/testsuite/ada/acats/tests/cxg/cxg2010.a
! 2e25178ea5e5552c5343ba6d8584ba74  gcc/testsuite/ada/acats/tests/cxg/cxg2011.a
! f61b0c35864b0aa5527d3e4a3e81e779  gcc/testsuite/ada/acats/tests/cxg/cxg2012.a
! 1b99769a37ef9c2b58f43910fdd00e6b  gcc/testsuite/ada/acats/tests/cxg/cxg2013.a
! 481025f4913d9ffb0c1ff442b9870591  gcc/testsuite/ada/acats/tests/cxg/cxg2014.a
! 79eb7ca23122446b9f31a5f4d6f8fbc7  gcc/testsuite/ada/acats/tests/cxg/cxg2015.a
! d1362a6e008edbda6db26e148303f3d0  gcc/testsuite/ada/acats/tests/cxg/cxg2016.a
! 84a228b85aa2b3a442a702cb5cf99e63  gcc/testsuite/ada/acats/tests/cxg/cxg2017.a
! db5d4af0d0f84dcaf031081f41020e4a  gcc/testsuite/ada/acats/tests/cxg/cxg2018.a
! 6ca3da628f7936107fe1fd235da62e61  gcc/testsuite/ada/acats/tests/cxg/cxg2019.a
! d8efe67bfdf82292c98f593e60cace57  gcc/testsuite/ada/acats/tests/cxg/cxg2020.a
! 53b94c96558a199ee91e9e94e92f6e6e  gcc/testsuite/ada/acats/tests/cxg/cxg2021.a
! 44df5fa53bb68ac9be22c5db9adb9c5e  gcc/testsuite/ada/acats/tests/cxg/cxg2022.a
! 86432328beb230d12c30455a5259108f  gcc/testsuite/ada/acats/tests/cxg/cxg2023.a
! 7b9353c95978924cfa8ffca95bd2472f  gcc/testsuite/ada/acats/tests/cxg/cxg2024.a
! 4aedd99c5e7383826785e110132437b0  gcc/testsuite/ada/acats/tests/cxh/cxh3001.a
! 30e3860e9003591085363de238d2c0f8  gcc/testsuite/ada/acats/tests/cxh/cxh3002.a
! 2f97ad7e05c98ee16642183b60fb702b  gcc/testsuite/ada/acats/tests/cxh/cxh30030.a
! 726c3a5559867c336b3e41053357bee8  gcc/testsuite/ada/acats/tests/cxh/cxh30031.am
! 5812c7613bb171e922984de8ed304306  gcc/testsuite/ada/acats/tests/cz/cz1101a.ada
! f4be18c06fbff775151b0c6fe4f18831  gcc/testsuite/ada/acats/tests/cz/cz1102a.ada
! 1a17d44787330941af6e6eb9b2f5fdac  gcc/testsuite/ada/acats/tests/cz/cz1103a.ada
! 4fbac816abd03239d980e03cee911122  gcc/testsuite/ada/acats/tests/d/d4a002a.ada
! 9fc88c362bc5e3ac1038838ce2e31e1d  gcc/testsuite/ada/acats/tests/d/d4a002b.ada
! 512d36027df5b67cad136178dabfe4a2  gcc/testsuite/ada/acats/tests/d/d4a004a.ada
! 22af18afdcf3a383d8100e7290a1c40c  gcc/testsuite/ada/acats/tests/d/d4a004b.ada
! 605dc6f15a51dd750ab6fdf7ddcb65a6  gcc/testsuite/ada/acats/tests/e/e28002b.ada
! de9f0ecd5c9bafad769c8b2264e38499  gcc/testsuite/ada/acats/tests/e/e28005d.ada
! 3cacc87e4376898f97bc3ad35305e3b0  gcc/testsuite/ada/acats/tests/e/e52103y.ada
! c92c30f9076000218a22d41126403c34  gcc/testsuite/ada/acats/tests/e/eb4011a.ada
! deba1575fb8b252064041e5d408f53a3  gcc/testsuite/ada/acats/tests/e/eb4012a.ada
! 08131f4b11da03c32ca002338f3e4a59  gcc/testsuite/ada/acats/tests/e/eb4014a.ada
! b8a8e5440cbe69d0ad54064892a114c0  gcc/testsuite/ada/acats/tests/e/ee3203a.ada
! 48040471bf50b07840b3338c9bc7e2c6  gcc/testsuite/ada/acats/tests/e/ee3204a.ada
! 25bff343477de94bd78239442f9ee02a  gcc/testsuite/ada/acats/tests/e/ee3402b.ada
! b057daa29f3fcc66f6affebff75a1be5  gcc/testsuite/ada/acats/tests/e/ee3409f.ada
! 4c52e7caa9bc136f2cba824b2e52e9c6  gcc/testsuite/ada/acats/tests/e/ee3412c.ada
! 76344ab690464f293f3d4ea9ddafa233  gcc/testsuite/ada/acats/tests/l/la140010.a
! 2900850ee7d28fb09a708d15ecb120e8  gcc/testsuite/ada/acats/tests/l/la140011.am
! 3a566254bd6b5a2476b7a0a4d201c6ec  gcc/testsuite/ada/acats/tests/l/la140012.a
! f251861d8f7143c4d6a0139eb5109844  gcc/testsuite/ada/acats/tests/l/la140020.a
! 94e3a842d07a1b065bf9729ba53ec9fd  gcc/testsuite/ada/acats/tests/l/la140021.am
! 951f84109a5b6658e7dd287bbd9bae71  gcc/testsuite/ada/acats/tests/l/la140022.a
! 876db830d93e5c9744a1c290ed00f17f  gcc/testsuite/ada/acats/tests/l/la140030.a
! eaefd12663189709da8ccf17c2c368fa  gcc/testsuite/ada/acats/tests/l/la140031.a
! 7bf8660d1ec101205c05dd17726a229a  gcc/testsuite/ada/acats/tests/l/la140032.am
! 857f64e53ab5de64c7aff62222d11127  gcc/testsuite/ada/acats/tests/l/la140033.a
! 92ca699ccd2c74842385086d5ada22dd  gcc/testsuite/ada/acats/tests/l/la140040.a
! 8b2c5cc4a29ad35fcfa826d7b492bc08  gcc/testsuite/ada/acats/tests/l/la140041.am
! fb8dd82cf673301eecabc122ac171090  gcc/testsuite/ada/acats/tests/l/la140042.a
! 6d5ee36b10609c888874ac66e3f0ee1e  gcc/testsuite/ada/acats/tests/l/la140050.a
! e04923836f3f4282a67d6f89778a6914  gcc/testsuite/ada/acats/tests/l/la140051.a
! bfa5a2187576b86f14423c0040742843  gcc/testsuite/ada/acats/tests/l/la140052.am
! 0d6624b67d8552559b64873f684e581d  gcc/testsuite/ada/acats/tests/l/la140053.a
! 8035d0c6bfa2f3b3a49f58acd52dd8a7  gcc/testsuite/ada/acats/tests/l/la140060.a
! 3d90461eff6991fd8178d6d2118e9ddf  gcc/testsuite/ada/acats/tests/l/la140061.a
! e475cc528675aeae58edde764f9dd718  gcc/testsuite/ada/acats/tests/l/la140062.am
! f022f8aa1d30fb70ecca6f610089b986  gcc/testsuite/ada/acats/tests/l/la140063.a
! c3833b353f97382d992824760c162c7c  gcc/testsuite/ada/acats/tests/l/la140070.a
! c0ccfb9014a2864c4a49d88f46f491c1  gcc/testsuite/ada/acats/tests/l/la140071.a
! 509bb3bfec998a7f16d7a711f508bdc0  gcc/testsuite/ada/acats/tests/l/la140072.am
! 4710fc41166460cc60192a57798054b4  gcc/testsuite/ada/acats/tests/l/la140073.a
! dcb4f9c9fdad375c3fe93310ac6b816e  gcc/testsuite/ada/acats/tests/l/la140080.a
! a3acb845f1ea8cd193aec71beb1ead51  gcc/testsuite/ada/acats/tests/l/la140081.a
! d8f09cb05605e6ee39a41685ba970092  gcc/testsuite/ada/acats/tests/l/la140082.am
! 6d37a12249cd1b2bdf860f7651a462e4  gcc/testsuite/ada/acats/tests/l/la140083.a
! 46655b2b4b88ca82cb0afc6eac22cd7b  gcc/testsuite/ada/acats/tests/l/la140090.a
! 257622cc1c6c259921d7e6c33e23f1ff  gcc/testsuite/ada/acats/tests/l/la140091.a
! 1c00169793ce024a3f35da791e30bbe6  gcc/testsuite/ada/acats/tests/l/la140092.am
! 6a23c4b62a4cac8720e8b7c21ad97d5b  gcc/testsuite/ada/acats/tests/l/la140093.a
! ed2026e1ace460e994b96b42c8f05e9c  gcc/testsuite/ada/acats/tests/l/la140100.a
! 55167329c290c62025473120fca26c7d  gcc/testsuite/ada/acats/tests/l/la140101.a
! 9280256db41c4bec0f36aa69ff060841  gcc/testsuite/ada/acats/tests/l/la140102.am
! 7b092247e539009157e512965ba1fc7a  gcc/testsuite/ada/acats/tests/l/la140103.a
! 6722c5fc30bb307834268e434901c086  gcc/testsuite/ada/acats/tests/l/la140110.a
! 443c0bb26e2eb84889c83a9bccaf9649  gcc/testsuite/ada/acats/tests/l/la140111.a
! 47c6e7a9da351969b20b3d295bb3c115  gcc/testsuite/ada/acats/tests/l/la140112.am
! 4bf0921f6ccd99db94a8a70d2b166fdf  gcc/testsuite/ada/acats/tests/l/la140113.a
! 5c9a0f9992d6d21844e2ba208b7cebbc  gcc/testsuite/ada/acats/tests/l/la140120.a
! 7c0ca86bca64632e57e32b5842ddbe60  gcc/testsuite/ada/acats/tests/l/la140121.a
! 211c1d44471b6a40c3d807f83059ff77  gcc/testsuite/ada/acats/tests/l/la140122.am
! e4cb364e594a0d2463e66f4aa48a914a  gcc/testsuite/ada/acats/tests/l/la140123.a
! 76516f31e5adf9e0fad1886ab83457a4  gcc/testsuite/ada/acats/tests/l/la140130.a
! f3b7f597165821e514288274845f5e54  gcc/testsuite/ada/acats/tests/l/la140131.a
! cb0819afcaf9586c9c95966d2516fb65  gcc/testsuite/ada/acats/tests/l/la140132.am
! 32a943ea5a9287c709fa39655d8668cb  gcc/testsuite/ada/acats/tests/l/la140133.a
! 212943c674757076da046354450e5113  gcc/testsuite/ada/acats/tests/l/la140140.a
! 195b91195befb872c8f723da1d28f132  gcc/testsuite/ada/acats/tests/l/la140141.a
! a6d2954f197001069fb371e8403e8ac6  gcc/testsuite/ada/acats/tests/l/la140142.am
! 57ac76011ccf9054712e1b09ef71bfd9  gcc/testsuite/ada/acats/tests/l/la140143.a
! 7552c854bb4af3c4f87cfe6a7a861610  gcc/testsuite/ada/acats/tests/l/la140150.a
! 5f1dcc1a1c97c253b5809c49c2a326ad  gcc/testsuite/ada/acats/tests/l/la140151.a
! 662ea838e79bbec83ab42275c2111e2a  gcc/testsuite/ada/acats/tests/l/la140152.am
! c80afc3e35ad24a8bb25b5e3d67f2bcb  gcc/testsuite/ada/acats/tests/l/la140153.a
! ebc4ad53e17e21942e69ae80c5b47b77  gcc/testsuite/ada/acats/tests/l/la140160.a
! 117e1792c17a1e2b5ec04bba346f528d  gcc/testsuite/ada/acats/tests/l/la140161.a
! b7744773a1c753b7aa68c166866eb005  gcc/testsuite/ada/acats/tests/l/la140162.am
! 9852ca8047bc9e1bd578767b67254fd2  gcc/testsuite/ada/acats/tests/l/la140163.a
! f7f66fd9abfb1f4931428292cd1fe63d  gcc/testsuite/ada/acats/tests/l/la140170.a
! 2acaa1d866103405c81e05839bd25054  gcc/testsuite/ada/acats/tests/l/la140171.a
! ea5de64993880be50e047e540f521cec  gcc/testsuite/ada/acats/tests/l/la140172.am
! b3e16fff4bf97ee8001c7d4707b01ca8  gcc/testsuite/ada/acats/tests/l/la140173.a
! cef0b6dba566de9e4b3fdd8429f3b573  gcc/testsuite/ada/acats/tests/l/la140180.a
! 3a47eaaf81a03727243aa228f4301a60  gcc/testsuite/ada/acats/tests/l/la140181.a
! a5c23800bfa114aaa25ef21241ca0c43  gcc/testsuite/ada/acats/tests/l/la140182.am
! 831069dc37bbaa6d17e49ec411324925  gcc/testsuite/ada/acats/tests/l/la140183.a
! 9597131b3c0b103f6244907627fbf160  gcc/testsuite/ada/acats/tests/l/la140190.a
! 14063c6684e8dd6c14ea4d18badb550b  gcc/testsuite/ada/acats/tests/l/la140191.a
! 8cbcf00024bdf7530ae51ba8a1ca0bba  gcc/testsuite/ada/acats/tests/l/la140192.am
! 99e2d79f6f50d594ab2f3e503f2db441  gcc/testsuite/ada/acats/tests/l/la140193.a
! ea6d1fb3bdbfc0deaee617b126be28f4  gcc/testsuite/ada/acats/tests/l/la140200.a
! babcd4715ea4f023430dfbe1f896bde1  gcc/testsuite/ada/acats/tests/l/la140201.a
! 64279761de38aa82af4a5638c457c1bf  gcc/testsuite/ada/acats/tests/l/la140202.am
! 7e4b83d0d9265f463e87dcc9fcf0fe5b  gcc/testsuite/ada/acats/tests/l/la140203.a
! b12cced7adaecf2a93250e16cca98cf4  gcc/testsuite/ada/acats/tests/l/la140210.a
! 887401b5f446bce786751fa72e341292  gcc/testsuite/ada/acats/tests/l/la140211.am
! ab173d0eec0bb616f34f81aa48cd950c  gcc/testsuite/ada/acats/tests/l/la140212.a
! 594b0e8144190e578786dbc1bad844dc  gcc/testsuite/ada/acats/tests/l/la140220.a
! f842b35f8c01816efc84f4addd2f93b7  gcc/testsuite/ada/acats/tests/l/la140221.am
! 772553907cc4b151574b52a2b52dc90c  gcc/testsuite/ada/acats/tests/l/la140222.a
! b03871ce6d6f59a7e5a7612e6d89d596  gcc/testsuite/ada/acats/tests/l/la140240.a
! efe4e86bfb690c79c68494f323cac801  gcc/testsuite/ada/acats/tests/l/la140241.a
! 30f55b3747e6fa1b9ef0af765a76ce5a  gcc/testsuite/ada/acats/tests/l/la140242.am
! f95f7a3f483abd92a9bf92b6dc469986  gcc/testsuite/ada/acats/tests/l/la140243.a
! 2db8317b47f3ab8bb9a0f5469169d027  gcc/testsuite/ada/acats/tests/l/la140250.a
! 938965a24a1e6eb44e817ef6a6bcef36  gcc/testsuite/ada/acats/tests/l/la140251.am
! b3d2bc446e9f8766852585be1a71c541  gcc/testsuite/ada/acats/tests/l/la140252.a
! ced69a105f582142776937381fb4ac18  gcc/testsuite/ada/acats/tests/l/la140260.a
! ff927baa2a1a94e581616deb8f88d900  gcc/testsuite/ada/acats/tests/l/la140261.a
! 666740bbcb573799ed4bbd92b8380bac  gcc/testsuite/ada/acats/tests/l/la140262.am
! 2a7b7e46c9fcf98d59cf645dd8488895  gcc/testsuite/ada/acats/tests/l/la140263.a
! b886a43ab960ee3b74b75b1a1895e692  gcc/testsuite/ada/acats/tests/l/la140270.a
! 2f50ecd2b64eb3a3cefb0066c4c043a1  gcc/testsuite/ada/acats/tests/l/la140271.a
! 004386b31584ba3e3f7171f7674e4137  gcc/testsuite/ada/acats/tests/l/la140272.am
! 9c63871113de9b518e90c90fe8e20f28  gcc/testsuite/ada/acats/tests/l/la140273.a
  25005a9265a333af56789fab16cd8e0e  gcc/testsuite/c-c++-common/Waddress-1.c
  81e4d27a297a7ce6fddf1ac2a8961317  gcc/testsuite/c-c++-common/Waddress-2.c
  ae85096226db49d6155303ac5a238c4f  gcc/testsuite/c-c++-common/Waddress-3.c
--- 8810,17830 ----
  bad6c61669dc05edc624bab0c252c8f0  gcc/testsuite/ChangeLog-2022
  6a282e5df3a2ed135e44343b1bfeed8e  gcc/testsuite/ChangeLog-2023
  af39e1d4fe290ba2c5a29ea841c3d227  gcc/testsuite/ChangeLog-2024
+ 9ee6054cbd0621f38c67f7f157350e63  gcc/testsuite/ChangeLog-2025
  e7518ff11c24876171978acda7f03080  gcc/testsuite/ChangeLog.graphite
  ec409caa3f1727e7dbe6b65dd8df068c  gcc/testsuite/ChangeLog.jit
  4e315f3ead950078f8af109b2d771220  gcc/testsuite/ChangeLog.ptr
  b2adb3e6b3129c9473b7e401edb63a71  gcc/testsuite/ChangeLog.tree-ssa
! 5ef633566aadb959d9d9dbf09b53ca33  gcc/testsuite/README
! ce26335c95e7595b90b92bbed3b01c4a  gcc/testsuite/README.compat
! b9650dc14a277b7bcdd1fc30184944d5  gcc/testsuite/README.gcc
  2ad7c00ea00d78f6d6ee090f7894dadc  gcc/testsuite/ada/.gitignore
! 4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats-2/elabd.lst
! b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats-2/floatstore.lst
! bb4e4f9d3c0e72730e0bf397d375689c  gcc/testsuite/ada/acats-2/norun.lst
! 1485f263dfb9303b015015ae88161a8b  gcc/testsuite/ada/acats-2/run_acats.sh
! eb197d1552fb956ba0e8bad4f0ac3d0d  gcc/testsuite/ada/acats-2/run_all.sh
! 6467abb463602aeb04583b3822f653f4  gcc/testsuite/ada/acats-2/run_test.exp
! 5723a26fced8721c3e90e6e7a9ba2a23  gcc/testsuite/ada/acats-2/stackcheck.lst
! feaec71549d40900aa5bcbd842c9fa57  gcc/testsuite/ada/acats-2/support/acats26.lst
! 2f262cdb98b38922d7b7f84414f43b84  gcc/testsuite/ada/acats-2/support/checkfil.ada
! 4edf20410814582eae331707f2ae2c77  gcc/testsuite/ada/acats-2/support/enumchek.ada
! 8f3ec4fe93c0095e34d79e9a41dde4e9  gcc/testsuite/ada/acats-2/support/f340a000.a
! b673a17611516bde0712458de61636e8  gcc/testsuite/ada/acats-2/support/f340a001.a
! b31158ceea90e5246f63aed8b0078e9c  gcc/testsuite/ada/acats-2/support/f341a00.a
! d3d954612d4f455a32df07aa05816320  gcc/testsuite/ada/acats-2/support/f390a00.a
! ed3b5aee8f81d147785adce6b48411cd  gcc/testsuite/ada/acats-2/support/f392a00.a
! 7973b64953275c03e790967bc310010c  gcc/testsuite/ada/acats-2/support/f392c00.a
! 7b5b9e45fb9003af0e096ca36327031e  gcc/testsuite/ada/acats-2/support/f392d00.a
! e4733abdf62c401a876d29c3e5a38c34  gcc/testsuite/ada/acats-2/support/f393a00.a
! c1487dd34771abf18d1144c610fac26e  gcc/testsuite/ada/acats-2/support/f393b00.a
! b3e35321e808d9e061d1fdef51813016  gcc/testsuite/ada/acats-2/support/f3a2a00.a
! 798afd3c6228223e07e7c8e3034eb99c  gcc/testsuite/ada/acats-2/support/f460a00.a
! 316c7cde49ee557a67d39d6b63407811  gcc/testsuite/ada/acats-2/support/f730a000.a
! 60edd601c25022d0f19b8c45d3d187bb  gcc/testsuite/ada/acats-2/support/f730a001.a
! 75b2405f0dd739649bda9b92b0d259f4  gcc/testsuite/ada/acats-2/support/f731a00.a
! 689c49d9ccb5124d47eecb1dcebcc376  gcc/testsuite/ada/acats-2/support/f940a00.a
! d08e91b98a54c3d471108a6631714033  gcc/testsuite/ada/acats-2/support/f954a00.a
! f95be63eadf08e7cafbeb33a6794c019  gcc/testsuite/ada/acats-2/support/fa11a00.a
! 28be0e2126b177ff6d34df7c272a9f2c  gcc/testsuite/ada/acats-2/support/fa11b00.a
! 2228808bf25eecbd9e02ff343e2dba54  gcc/testsuite/ada/acats-2/support/fa11c00.a
! 1cb03e4473720d064b6798cf5e185f62  gcc/testsuite/ada/acats-2/support/fa11d00.a
! ff082a3957be5f526713103bf563e5be  gcc/testsuite/ada/acats-2/support/fa13a00.a
! dfa6bb61642b6c22f17171fb93cfc97c  gcc/testsuite/ada/acats-2/support/fa13b00.a
! 54b899e09f3f0bf28db2e007ca6921e5  gcc/testsuite/ada/acats-2/support/fa21a00.a
! 97d3fd68d030a5d89e98b950d557151d  gcc/testsuite/ada/acats-2/support/fb20a00.a
! 886f3ad8c51e9e1e01cb7d4ab0b3f47e  gcc/testsuite/ada/acats-2/support/fb40a00.a
! 045b4b77241122260c9b42a0a85941b8  gcc/testsuite/ada/acats-2/support/fc50a00.a
! d2c427a2c2e845d2d5991d7e86689284  gcc/testsuite/ada/acats-2/support/fc51a00.a
! 18eee0e1727cb58b8ca0da52a8f7fbd0  gcc/testsuite/ada/acats-2/support/fc51b00.a
! 707c153d9868ec6e694e8db161e9a7c7  gcc/testsuite/ada/acats-2/support/fc51c00.a
! 981a728516c5de4f242cff81d35a1806  gcc/testsuite/ada/acats-2/support/fc51d00.a
! 992e25818babbd2519c54f2dc5987601  gcc/testsuite/ada/acats-2/support/fc54a00.a
! f75e17c909e83e1879e87a3ba3ffd7cc  gcc/testsuite/ada/acats-2/support/fc70a00.a
! cdb7ee32751757a29e821ba020228a0e  gcc/testsuite/ada/acats-2/support/fc70b00.a
! 8af79a6be55981313da73bc0bb01f617  gcc/testsuite/ada/acats-2/support/fc70c00.a
! 65011f4705018476715af62324c335b3  gcc/testsuite/ada/acats-2/support/fcndecl.ada
! 3ce3384936274aa48a8c4a38fa7109ac  gcc/testsuite/ada/acats-2/support/fd72a00.a
! 5c9a93b4c9f45c15707e4b3b123aee9c  gcc/testsuite/ada/acats-2/support/fdb0a00.a
! bf9c7650a6f8303b6a69ff5eb2660b15  gcc/testsuite/ada/acats-2/support/fdd2a00.a
! a77ebc244676daacb1f3a61ae8003e88  gcc/testsuite/ada/acats-2/support/fxa5a00.a
! f4e9649e424fa9578180b9aee65c8e96  gcc/testsuite/ada/acats-2/support/fxaca00.a
! caa75442e4dceed0740dfa35a47b5bb6  gcc/testsuite/ada/acats-2/support/fxacb00.a
! 1855abc6c615b76aa82fb9241571f3d8  gcc/testsuite/ada/acats-2/support/fxacc00.a
! f88af2b3eb53ad7c8700efbd0f878915  gcc/testsuite/ada/acats-2/support/fxc6a00.a
! 56ba35dd56ea544c0eb9146769871492  gcc/testsuite/ada/acats-2/support/fxe2a00.a
! 67770e9161b0f48f3fc9392bd3460272  gcc/testsuite/ada/acats-2/support/fxf2a00.a
! 6628969f51dd10c56235f9d7420e2d44  gcc/testsuite/ada/acats-2/support/fxf3a00.a
! 6a9b6ce90538e9126e7e5badc62ddca2  gcc/testsuite/ada/acats-2/support/impbit.adb
! 1ccb5211fbcff1d5604e6ccee6542df7  gcc/testsuite/ada/acats-2/support/impdef.a
! f5a3b49034b9c28b2d9965465324a697  gcc/testsuite/ada/acats-2/support/impdefc.a
! 4f2f9bfdfcfd8c5ecaf503416d1cfc5f  gcc/testsuite/ada/acats-2/support/impdefd.a
! edf70d423a69adebd38e9b29f35a2ba1  gcc/testsuite/ada/acats-2/support/impdefe.a
! cadfd8a5487a315a6fbd8eef397219e9  gcc/testsuite/ada/acats-2/support/impdefg.a
! 5d9a0f98d9f15211e0773263febb974b  gcc/testsuite/ada/acats-2/support/impdefh.a
! f2604ccc5244696793b33e7b83c57c45  gcc/testsuite/ada/acats-2/support/lencheck.ada
! 79c0994222b2a5fc702eb4bc3dc1ba8e  gcc/testsuite/ada/acats-2/support/macro.dfs
! 72980ae1a3bbd5b71aa915cefeaebf6e  gcc/testsuite/ada/acats-2/support/macrodef.adb
! 4d7b79a3ff077d1ab05a78ebcf5a1de3  gcc/testsuite/ada/acats-2/support/macrosub.ada
! 29539981686659a32e9b3a46eafe0a56  gcc/testsuite/ada/acats-2/support/repbody.ada
! ec6c02ebb16da7cc117e3a65c06d385a  gcc/testsuite/ada/acats-2/support/repspec.ada
! 356cf4b2e0cc1e02ef1deddb5567de36  gcc/testsuite/ada/acats-2/support/spprt13s.tst
! e250c306fa98a053bdf37159af289d57  gcc/testsuite/ada/acats-2/support/tctouch.ada
! 26945b868319fda8b82f82c677a35562  gcc/testsuite/ada/acats-2/support/tsttests.dat
! 91c39a37d5651ca4a1e6aa82cd2f1269  gcc/testsuite/ada/acats-2/support/widechr.a
! dc179b8a7c506c961b229b7ec7d2de53  gcc/testsuite/ada/acats-2/tests/a/a22006b.ada
! f61ae49f8066de3ba349e39d3a688ea6  gcc/testsuite/ada/acats-2/tests/a/a22006c.ada
! 54e5a501bbefb19fdf7715f5741fc858  gcc/testsuite/ada/acats-2/tests/a/a22006d.ada
! 11394a122edd516a587d020bc9ce2e8e  gcc/testsuite/ada/acats-2/tests/a/a26007a.tst
! aa57a75b85b36a99f6ecaca91a9eed60  gcc/testsuite/ada/acats-2/tests/a/a27003a.ada
! 054ca4c1bbb5dd701e8781bc92bf9cb8  gcc/testsuite/ada/acats-2/tests/a/a29003a.ada
! c330e5a362289a57c2ca975a61b4d20c  gcc/testsuite/ada/acats-2/tests/a/a2a031a.ada
! bbd0059e56828aa342048400c5490233  gcc/testsuite/ada/acats-2/tests/a/a33003a.ada
! 84de33e1cd2c3a0c2165591a28407805  gcc/testsuite/ada/acats-2/tests/a/a34017c.ada
! 924373fa4803a6e22fdc43bd0bee31a3  gcc/testsuite/ada/acats-2/tests/a/a35101b.ada
! be270ea90b999a2136e6cc850543a945  gcc/testsuite/ada/acats-2/tests/a/a35402a.ada
! 8054f52aa40d34c334d3a4b30222340a  gcc/testsuite/ada/acats-2/tests/a/a35801f.ada
! 325ee8ec767c6769757ac1eb71d6f515  gcc/testsuite/ada/acats-2/tests/a/a35902c.ada
! c512e91af19d8cf3307b189ec712dde0  gcc/testsuite/ada/acats-2/tests/a/a38106d.ada
! 8d608afb4ab9b953fd4dd01b00a90914  gcc/testsuite/ada/acats-2/tests/a/a38106e.ada
! 28bab0e5eb84a43ad0b4dc06d90f880b  gcc/testsuite/ada/acats-2/tests/a/a49027a.ada
! 5b6e07973ea9075de594e462d6f0f847  gcc/testsuite/ada/acats-2/tests/a/a49027b.ada
! 926d6ade013a1456d53a17063495aaf2  gcc/testsuite/ada/acats-2/tests/a/a49027c.ada
! df2270ff569c843d152cae1fc3606103  gcc/testsuite/ada/acats-2/tests/a/a54b01a.ada
! 71937fafcd3199a3eda330e7880c1ec5  gcc/testsuite/ada/acats-2/tests/a/a54b02a.ada
! 1aa0f31635199e1096468f23888a66f4  gcc/testsuite/ada/acats-2/tests/a/a55b12a.ada
! b0fc7cf66a832e68c808ed89a23340d1  gcc/testsuite/ada/acats-2/tests/a/a55b13a.ada
! 205552e2dafa2b699b6514e12a35e676  gcc/testsuite/ada/acats-2/tests/a/a55b14a.ada
! 7a5be75ac2dc323c1dd1e9328c39c6e0  gcc/testsuite/ada/acats-2/tests/a/a71004a.ada
! 69bd6dadfe4d61041f1998157bcbdb4a  gcc/testsuite/ada/acats-2/tests/a/a73001i.ada
! 8b949ce02d53bc2b35893d05656ff3c2  gcc/testsuite/ada/acats-2/tests/a/a73001j.ada
! 3859ef22068457dc5db7b84889f89c07  gcc/testsuite/ada/acats-2/tests/a/a74105b.ada
! 5200e86147d7eddb31de36b182066003  gcc/testsuite/ada/acats-2/tests/a/a74106a.ada
! d288f454e96b3840804c86245fd1309c  gcc/testsuite/ada/acats-2/tests/a/a74106b.ada
! c6c2ff5c654f5fecb72565c1ec890ea8  gcc/testsuite/ada/acats-2/tests/a/a74106c.ada
! 4526ae74da58946736d1077ca17b0f15  gcc/testsuite/ada/acats-2/tests/a/a74205e.ada
! a4600113362b659154e0921e8ccc440b  gcc/testsuite/ada/acats-2/tests/a/a74205f.ada
! 762682eaddf9e0d72ef370ddf52c091c  gcc/testsuite/ada/acats-2/tests/a/a83009a.ada
! 89be8e66cfa8cf7d9ea962fc92c5bbe6  gcc/testsuite/ada/acats-2/tests/a/a83009b.ada
! 1a86aa84a5b4a8f2d91898a2a5878109  gcc/testsuite/ada/acats-2/tests/a/a83a02a.ada
! b50d55495ed25cd5f5f0cc5ce62c33c6  gcc/testsuite/ada/acats-2/tests/a/a83a02b.ada
! 92d9af0f50f62b8ca3df28d8e4228ec5  gcc/testsuite/ada/acats-2/tests/a/a83a06a.ada
! 5c0b43d5d9e1251dce20fd8ac69811a8  gcc/testsuite/ada/acats-2/tests/a/a83a08a.ada
! d847c2fa25d9becc828716d2f6b3924e  gcc/testsuite/ada/acats-2/tests/a/a83c01c.ada
! 48efd44cb0cc48a4666ca9078d516a19  gcc/testsuite/ada/acats-2/tests/a/a83c01h.ada
! 9a14ce84b1e63358e8ea5b22b8b58366  gcc/testsuite/ada/acats-2/tests/a/a83c01i.ada
! d4b236b43806323a12df387d43065ecd  gcc/testsuite/ada/acats-2/tests/a/a85007d.ada
! 22b51a96b02c7a88f7ef1383e4b6e3ba  gcc/testsuite/ada/acats-2/tests/a/a85013b.ada
! 401bca9a32ad0d8881ea660bba3ca711  gcc/testsuite/ada/acats-2/tests/a/a87b59a.ada
! 74d0779474d9d789d09508ba653efc61  gcc/testsuite/ada/acats-2/tests/a/a95001c.ada
! 4de434af68116383b58aae2d7ff0186e  gcc/testsuite/ada/acats-2/tests/a/a95074d.ada
! 6dcac89d281ffc1c47dc51dfd7429d9e  gcc/testsuite/ada/acats-2/tests/a/a97106a.ada
! 672a004e783873caffaddfe2e9ed7184  gcc/testsuite/ada/acats-2/tests/a/a99006a.ada
! d338cf80520cfcd59896b08557f7334a  gcc/testsuite/ada/acats-2/tests/a/aa2010a.ada
! c8652c11c39145beb7535ff59feee79b  gcc/testsuite/ada/acats-2/tests/a/aa2012a.ada
! 64d7f9e70085b7412df08b06b70924f1  gcc/testsuite/ada/acats-2/tests/a/ac1015b.ada
! f8019419f138b9b0b4e860f560539c52  gcc/testsuite/ada/acats-2/tests/a/ac3106a.ada
! 599863dbc7677bd83fe020c38e11b4b8  gcc/testsuite/ada/acats-2/tests/a/ac3206a.ada
! 527cf1506ce6e0451f82e833aba4b6b3  gcc/testsuite/ada/acats-2/tests/a/ac3207a.ada
! 7c28607179138101a5d7cf088f333028  gcc/testsuite/ada/acats-2/tests/a/ad7001b.ada
! 810035c64fe589563087a2d2f380f1e4  gcc/testsuite/ada/acats-2/tests/a/ad7001c0.ada
! 8d92b2b79dbfd08d90c9a238b1e35a05  gcc/testsuite/ada/acats-2/tests/a/ad7001c1.ada
! 1c1c6e5fb42029a3ff9b1f3b9055c191  gcc/testsuite/ada/acats-2/tests/a/ad7001d0.ada
! 21257b0cc94669e31a8891cb9ed30e14  gcc/testsuite/ada/acats-2/tests/a/ad7001d1.ada
! eaa4c7b6b00bcd4bfa2d9883aff64ee8  gcc/testsuite/ada/acats-2/tests/a/ad7006a.ada
! b93c425e39dd1e4003cb33131862e719  gcc/testsuite/ada/acats-2/tests/a/ad7101a.ada
! 07e115c2bd0ac4bc085809d9ad65327f  gcc/testsuite/ada/acats-2/tests/a/ad7101c.ada
! 24888691f9cd0131679078391bf99fb1  gcc/testsuite/ada/acats-2/tests/a/ad7102a.ada
! 27abfa60261b508014d366ae82e296fe  gcc/testsuite/ada/acats-2/tests/a/ad7103a.ada
! aec3e74553448f599ae9a51ec65c42ce  gcc/testsuite/ada/acats-2/tests/a/ad7103c.ada
! d18cab7f102ffc27545ccb4522f82ded  gcc/testsuite/ada/acats-2/tests/a/ad7104a.ada
! 1b797aacfde0d671d89a45db2a9d5be2  gcc/testsuite/ada/acats-2/tests/a/ad7201a.ada
! 8c49706fbc8916aacd037e7649ed8213  gcc/testsuite/ada/acats-2/tests/a/ad7203b.ada
! 129af6b1b47884872132fcfc3787f362  gcc/testsuite/ada/acats-2/tests/a/ad7205b.ada
! 696b85c4c78cdc9b5448612a22b9ffa3  gcc/testsuite/ada/acats-2/tests/a/ad8011a.tst
! bfa3fa83b466b71da4126d005e2c701b  gcc/testsuite/ada/acats-2/tests/a/ada101a.ada
! 178bb6ff2316e9cfb5bd4395e74874ae  gcc/testsuite/ada/acats-2/tests/a/ae2113a.ada
! 1dd247cf1f02e4384b1f1a58ab2244c0  gcc/testsuite/ada/acats-2/tests/a/ae2113b.ada
! 5ff7c493a66eb8be0a3e7f89bd4d2512  gcc/testsuite/ada/acats-2/tests/a/ae3002g.ada
! 2cc8c13fd1203af7f246cee23d3037c3  gcc/testsuite/ada/acats-2/tests/a/ae3101a.ada
! 3798d627b7336c5fa8805e970e10ec7e  gcc/testsuite/ada/acats-2/tests/a/ae3702a.ada
! 7a44891c6ee0ec272ded72e61d392bc8  gcc/testsuite/ada/acats-2/tests/a/ae3709a.ada
! 8a42b2199ecbb25390c8c306c3759312  gcc/testsuite/ada/acats-2/tests/c2/c23001a.ada
! 8d4b3f4069aeb0e32db3f46e5cb1487b  gcc/testsuite/ada/acats-2/tests/c2/c23003a.tst
! 95e1beb36e033514e6e4be866042a42a  gcc/testsuite/ada/acats-2/tests/c2/c23003b.tst
! a765ec985184f6802389b89d0971eede  gcc/testsuite/ada/acats-2/tests/c2/c23003g.tst
! 53bdd26032ff323b57f3c309b520767e  gcc/testsuite/ada/acats-2/tests/c2/c23003i.tst
! d8470ff80210b6aeab8ecf5828f8e73c  gcc/testsuite/ada/acats-2/tests/c2/c23006a.ada
! c175938807f9ed5ec36eed8c2fc47bf2  gcc/testsuite/ada/acats-2/tests/c2/c23006b.ada
! 1891f1d94ad6f27dc8691abae763b735  gcc/testsuite/ada/acats-2/tests/c2/c23006c.ada
! 4d2aaab0f8577c4441dfb223b74e9270  gcc/testsuite/ada/acats-2/tests/c2/c23006d.ada
! d38fc16a6b2a221a8089094d8e595fd0  gcc/testsuite/ada/acats-2/tests/c2/c23006e.ada
! e4cb34f327ded980acbb2890f276b1b6  gcc/testsuite/ada/acats-2/tests/c2/c23006f.ada
! 1afe1ff732d7c93eb72aeb763fc3a3e4  gcc/testsuite/ada/acats-2/tests/c2/c23006g.ada
! d7a2fe8807a7e954f894e43619906c61  gcc/testsuite/ada/acats-2/tests/c2/c24002d.ada
! 90b7096d0092e8bee54a5e0931480cc3  gcc/testsuite/ada/acats-2/tests/c2/c24003a.ada
! 8d4b3197420dea97b47fa445d6b7f13e  gcc/testsuite/ada/acats-2/tests/c2/c24003b.ada
! c0bc49ad0d9faebe7c1bddd17682575b  gcc/testsuite/ada/acats-2/tests/c2/c24003c.ada
! 474d9480579f044d63ea2312eee797a0  gcc/testsuite/ada/acats-2/tests/c2/c24106a.ada
! 21abd0c844a441282df97eca59d187ac  gcc/testsuite/ada/acats-2/tests/c2/c24202d.ada
! f8734f0cb78893a591c1455798f48f34  gcc/testsuite/ada/acats-2/tests/c2/c24203a.ada
! 303fe85abf30e67b9c26c05c37527377  gcc/testsuite/ada/acats-2/tests/c2/c24203b.ada
! 4fc421f9d26dd38caa8e66e5f9a8118d  gcc/testsuite/ada/acats-2/tests/c2/c24207a.ada
! 00805111547e7b0f767a65dbb0216178  gcc/testsuite/ada/acats-2/tests/c2/c24211a.ada
! 9344f5c2db357b3b873a83422c449d0b  gcc/testsuite/ada/acats-2/tests/c2/c250001.aw
! fc57da7b290e833c22ee1e312ebea0af  gcc/testsuite/ada/acats-2/tests/c2/c250002.aw
! fcffacb0c5a7d6bc171b2b62228ef27c  gcc/testsuite/ada/acats-2/tests/c2/c25001a.ada
! f8101111006b8dfccb57bc9286761546  gcc/testsuite/ada/acats-2/tests/c2/c25001b.ada
! 4d59f28ccd2a2792f59d358acfb3b645  gcc/testsuite/ada/acats-2/tests/c2/c26006a.ada
! 2a3847aff34c962069ea9fc46184b49c  gcc/testsuite/ada/acats-2/tests/c2/c26008a.ada
! 3b3d12a94cdb249ade26bb6fe45121be  gcc/testsuite/ada/acats-2/tests/c2/c2a001a.ada
! 3fd11c60327272b0e88714377e07694a  gcc/testsuite/ada/acats-2/tests/c2/c2a001b.ada
! fad7c83b08db79e3d8d41a3abc495609  gcc/testsuite/ada/acats-2/tests/c2/c2a001c.ada
! 9e58903d92e80dece18b3f5f07c10714  gcc/testsuite/ada/acats-2/tests/c2/c2a002a.ada
! 80f047f9baf4edce16ae00b242937e09  gcc/testsuite/ada/acats-2/tests/c2/c2a008a.ada
! 5846b01316c8e35b2ae9271e2ceeb33b  gcc/testsuite/ada/acats-2/tests/c2/c2a021b.ada
! 6c6e6ac7e7d8151372bf25d5bfcc4638  gcc/testsuite/ada/acats-2/tests/c3/c32001a.ada
! f44d3e1d8c4deff3e60e49eb14755c7f  gcc/testsuite/ada/acats-2/tests/c3/c32001b.ada
! 90383af3c35e304193502497e9d9ada0  gcc/testsuite/ada/acats-2/tests/c3/c32001c.ada
! 6f38031cf1bc7fd3a2530a0a49fc3927  gcc/testsuite/ada/acats-2/tests/c3/c32001d.ada
! 4cff8a5cde793b9eb72e56ef8588c690  gcc/testsuite/ada/acats-2/tests/c3/c32001e.ada
! fe386611f5a09953fdbdb423b0673b0b  gcc/testsuite/ada/acats-2/tests/c3/c32107a.ada
! 6dcc55a41a077f43caf697ae83ae4678  gcc/testsuite/ada/acats-2/tests/c3/c32107c.ada
! 6bc3a589ff71140e94718588fa9f9c34  gcc/testsuite/ada/acats-2/tests/c3/c32108a.ada
! 0b55a6ac879d361c4eaa8a25a475c92e  gcc/testsuite/ada/acats-2/tests/c3/c32108b.ada
! 4520bac74d324253fcf2b48b5c6eea2b  gcc/testsuite/ada/acats-2/tests/c3/c32111a.ada
! 52ac5c461c7746717a0d789fb2a57377  gcc/testsuite/ada/acats-2/tests/c3/c32111b.ada
! dabad6f6cae80313a5a888aaa710756d  gcc/testsuite/ada/acats-2/tests/c3/c32112b.ada
! eebc548a818a1f56ce990f52129e4296  gcc/testsuite/ada/acats-2/tests/c3/c32113a.ada
! 016d6073dcc33d7b8106082eb7755faa  gcc/testsuite/ada/acats-2/tests/c3/c32115a.ada
! a613215b48d8c873069bb2d690d5f556  gcc/testsuite/ada/acats-2/tests/c3/c32115b.ada
! f21dc71d940d5c06af5d22f69eab60f9  gcc/testsuite/ada/acats-2/tests/c3/c330001.a
! 74812d0708e93af61e096b45e2fc14ec  gcc/testsuite/ada/acats-2/tests/c3/c330002.a
! 8e5fef6b3dfabbb753bbf97caf8dddae  gcc/testsuite/ada/acats-2/tests/c3/c332001.a
! d7ae35646e985b47bde736b4aeadaec1  gcc/testsuite/ada/acats-2/tests/c3/c340001.a
! 029cfe27a33cb66b049fe0d0fb65381b  gcc/testsuite/ada/acats-2/tests/c3/c34001a.ada
! 7f88e5135c6832cdc88dff48cc8dafee  gcc/testsuite/ada/acats-2/tests/c3/c34001c.ada
! 8c1764692d7cb0bc17a952ce68b59db8  gcc/testsuite/ada/acats-2/tests/c3/c34001d.ada
! a08af1aeb3b4af40be4e8250cad56d8d  gcc/testsuite/ada/acats-2/tests/c3/c34001f.ada
! 796e76f308a9d18762b63a8a7c9fa6ec  gcc/testsuite/ada/acats-2/tests/c3/c34002a.ada
! 56ca2500660f86690e43b4eb2c63911d  gcc/testsuite/ada/acats-2/tests/c3/c34002c.ada
! 916814d1426aeb62617f0e647f1425f4  gcc/testsuite/ada/acats-2/tests/c3/c34003a.ada
! 7848bad56990231ec4964a5294f4d02f  gcc/testsuite/ada/acats-2/tests/c3/c34003c.ada
! 3f596cd960a8968d7c7892b7351e85fa  gcc/testsuite/ada/acats-2/tests/c3/c34004a.ada
! f25b6504d96e3e21099abd8a985bfe40  gcc/testsuite/ada/acats-2/tests/c3/c34004c.ada
! 10feabd33f2004943d36ff9acac0bda3  gcc/testsuite/ada/acats-2/tests/c3/c34005a.ada
! 9b730174260769c83e1d1f34a482b64c  gcc/testsuite/ada/acats-2/tests/c3/c34005c.ada
! d8cd66825d35a0c2eee7a2bc22021fde  gcc/testsuite/ada/acats-2/tests/c3/c34005d.ada
! fd5b17683accebcffccf7d52a88ba813  gcc/testsuite/ada/acats-2/tests/c3/c34005f.ada
! 5a2119c2d54f4427832bc1c61d913eac  gcc/testsuite/ada/acats-2/tests/c3/c34005g.ada
! 170b45f6069790926570bd39f97033ea  gcc/testsuite/ada/acats-2/tests/c3/c34005i.ada
! bdf673ae022cc1b217f6ea84218ef460  gcc/testsuite/ada/acats-2/tests/c3/c34005j.ada
! 0c6f4909c9db9787b9ca4d3b296a3ae9  gcc/testsuite/ada/acats-2/tests/c3/c34005l.ada
! 7f1441892699c24f145df474c396124d  gcc/testsuite/ada/acats-2/tests/c3/c34005m.ada
! f851c156716ece972741b1a161b80b5f  gcc/testsuite/ada/acats-2/tests/c3/c34005o.ada
! 043754af8734117b693825059b2d22bb  gcc/testsuite/ada/acats-2/tests/c3/c34005p.ada
! 38b03276fbc9b35694fc4d3d2b1256ef  gcc/testsuite/ada/acats-2/tests/c3/c34005r.ada
! b1e254368a79c887afcaae46814d1508  gcc/testsuite/ada/acats-2/tests/c3/c34005s.ada
! 1f4c22b0cf2e5dfbe3648ebb2db7263a  gcc/testsuite/ada/acats-2/tests/c3/c34005u.ada
! ee6486739b27542ae2e06bf404248adf  gcc/testsuite/ada/acats-2/tests/c3/c34005v.ada
! 60d73ec320d9ef0db0dc330bb3e04fe5  gcc/testsuite/ada/acats-2/tests/c3/c34006a.ada
! da0b3e574a91ee0aaaef5268466ab1d1  gcc/testsuite/ada/acats-2/tests/c3/c34006d.ada
! 8d549731513d1eff1ef01cf7c39e1bb6  gcc/testsuite/ada/acats-2/tests/c3/c34006f.ada
! 5778d0794027d2195dc52a874d4aa6dc  gcc/testsuite/ada/acats-2/tests/c3/c34006g.ada
! 0e44ca23e51d865ebba37df074e84cc3  gcc/testsuite/ada/acats-2/tests/c3/c34006j.ada
! 1f9588c61e9d083a44b37060893f1199  gcc/testsuite/ada/acats-2/tests/c3/c34006l.ada
! 3111937fe40eda62543e53d0dc0a9b2e  gcc/testsuite/ada/acats-2/tests/c3/c34007a.ada
! a6c16ebbc095684171bb89cb7ac5b52f  gcc/testsuite/ada/acats-2/tests/c3/c34007d.ada
! 3f46f4632a1e2839b528dd4edb849c59  gcc/testsuite/ada/acats-2/tests/c3/c34007f.ada
! 50a6b8b6ab707d4020a210c2f54c5364  gcc/testsuite/ada/acats-2/tests/c3/c34007g.ada
! 1d08fae78b3684032500b751c4f6b956  gcc/testsuite/ada/acats-2/tests/c3/c34007i.ada
! 7dec8ab4f2325dfb24a6f4a0712ca647  gcc/testsuite/ada/acats-2/tests/c3/c34007j.ada
! f2f670c3368d6fdedc0bc830e2f5441f  gcc/testsuite/ada/acats-2/tests/c3/c34007m.ada
! 12e7a75337b952bbe70b50f44fbf73bd  gcc/testsuite/ada/acats-2/tests/c3/c34007p.ada
! 4460899978bde8392dbf79b1457fd4c0  gcc/testsuite/ada/acats-2/tests/c3/c34007r.ada
! 430fadbb7eb89cad332156a43a1cb8a6  gcc/testsuite/ada/acats-2/tests/c3/c34007s.ada
! 142cd26f56dbefa8cc40ce318e93574b  gcc/testsuite/ada/acats-2/tests/c3/c34007u.ada
! 01aa55423bd6286a768cfbc7951408e9  gcc/testsuite/ada/acats-2/tests/c3/c34007v.ada
! 7d2567bb5e4ce686433355b2efa84d99  gcc/testsuite/ada/acats-2/tests/c3/c34008a.ada
! 9e896dcd16ce62c70c03b6105de6b94c  gcc/testsuite/ada/acats-2/tests/c3/c34009a.ada
! be1b3bebe697fb006bf9a558f3b0f788  gcc/testsuite/ada/acats-2/tests/c3/c34009d.ada
! 5880284be01f48d40969f18306c94edd  gcc/testsuite/ada/acats-2/tests/c3/c34009f.ada
! 679004960f5e177505b2aff13c637ebf  gcc/testsuite/ada/acats-2/tests/c3/c34009g.ada
! f60aa89944e52f4dca47047e08990f29  gcc/testsuite/ada/acats-2/tests/c3/c34009j.ada
! 28351985ca5afb785bccaaf7463d1f32  gcc/testsuite/ada/acats-2/tests/c3/c34009l.ada
! 221f9bd08976154a0a22e9948d8ac7e0  gcc/testsuite/ada/acats-2/tests/c3/c34011b.ada
! f2175e26a65dbd70c186e6acf1001755  gcc/testsuite/ada/acats-2/tests/c3/c34012a.ada
! bdde2c516616684b5fe414550d8400ee  gcc/testsuite/ada/acats-2/tests/c3/c34014a.ada
! 4e8100382b8141c0d056a9fe870b8d06  gcc/testsuite/ada/acats-2/tests/c3/c34014c.ada
! a8fbccc7b3c28981b57a867a1edabf5d  gcc/testsuite/ada/acats-2/tests/c3/c34014e.ada
! 75cb51a9c469066a67228b04e8ba11fc  gcc/testsuite/ada/acats-2/tests/c3/c34014g.ada
! da007fc8719ca70057c035beb9fda7fe  gcc/testsuite/ada/acats-2/tests/c3/c34014h.ada
! dbcb5a07736736af9834d2938b24e483  gcc/testsuite/ada/acats-2/tests/c3/c34014n.ada
! afbaca6a68812eaecf17a8eef2a6346e  gcc/testsuite/ada/acats-2/tests/c3/c34014p.ada
! df14c9b4224ce4cf3fd2d8445cbad0f2  gcc/testsuite/ada/acats-2/tests/c3/c34014r.ada
! 03948696a8a2d08faa02588806cd388d  gcc/testsuite/ada/acats-2/tests/c3/c34014t.ada
! 7258de51f19cfc9506908221af84e01f  gcc/testsuite/ada/acats-2/tests/c3/c34014u.ada
! 360330a2a81712d1ed00c02cbc5e6526  gcc/testsuite/ada/acats-2/tests/c3/c34018a.ada
! a943a89b3032146b53e937f3a73684da  gcc/testsuite/ada/acats-2/tests/c3/c340a01.a
! 5a38659efe283303f9d22ebc955ae0d0  gcc/testsuite/ada/acats-2/tests/c3/c340a02.a
! f694a602dc4b31baf72c096b6e4fb9d5  gcc/testsuite/ada/acats-2/tests/c3/c341a01.a
! 4ad05d07bd295bd76f3edbc6685ae9b8  gcc/testsuite/ada/acats-2/tests/c3/c341a02.a
! 49408ab274823bacfccd32176c5bc061  gcc/testsuite/ada/acats-2/tests/c3/c341a03.a
! ec207723e08de50ca0964ad3318f8235  gcc/testsuite/ada/acats-2/tests/c3/c341a04.a
! 55b745d015fed5a09de487d8081c09eb  gcc/testsuite/ada/acats-2/tests/c3/c35003a.ada
! 092ff51133e865dad2cd6192506f9980  gcc/testsuite/ada/acats-2/tests/c3/c35003b.ada
! 55caad169adcfa6b58689ceb3dc1d505  gcc/testsuite/ada/acats-2/tests/c3/c35003d.ada
! b2b10d16689d994b421c7f356c4eebe9  gcc/testsuite/ada/acats-2/tests/c3/c35102a.ada
! 9d1972c0cc4eb7b2203cca27c4e785f1  gcc/testsuite/ada/acats-2/tests/c3/c352001.a
! 6adbf240f9a88c67e6dc4d9a3ae2f449  gcc/testsuite/ada/acats-2/tests/c3/c354002.a
! 1c6bd8c5607c8d83b1fb16cf20b35965  gcc/testsuite/ada/acats-2/tests/c3/c354003.a
! 831543d10fff09679865a63cb6261690  gcc/testsuite/ada/acats-2/tests/c3/c35502a.ada
! a7c2fa5fc851b6f2ef3d825116c56789  gcc/testsuite/ada/acats-2/tests/c3/c35502b.ada
! 012ae5aa045c7b944677ea749449b75e  gcc/testsuite/ada/acats-2/tests/c3/c35502c.ada
! 66ad3541bdd12f2457bc931410567df2  gcc/testsuite/ada/acats-2/tests/c3/c35502d.tst
! f850859238832c6689133c4b82b2d23a  gcc/testsuite/ada/acats-2/tests/c3/c35502e.ada
! 1ae0d752d4d7089a159ba37533cac440  gcc/testsuite/ada/acats-2/tests/c3/c35502f.tst
! 86636a48b0f16cee1e000cf7cdff2dd3  gcc/testsuite/ada/acats-2/tests/c3/c35502g.ada
! 051f7f33819b5ea42a6810524402160e  gcc/testsuite/ada/acats-2/tests/c3/c35502h.ada
! 4e03c40da8c9f6a6c779600f4bf06f72  gcc/testsuite/ada/acats-2/tests/c3/c35502i.ada
! 0ce71c0ba8fc8137892f8032070143cf  gcc/testsuite/ada/acats-2/tests/c3/c35502j.ada
! 039caaa9e43f4d6e115a8a1f83eeebf1  gcc/testsuite/ada/acats-2/tests/c3/c35502k.ada
! 211eda1bcd28ea4725982c3228537ce8  gcc/testsuite/ada/acats-2/tests/c3/c35502l.ada
! 04a6b32af2cf206734bf10b9c20a1a53  gcc/testsuite/ada/acats-2/tests/c3/c35502m.ada
! 4d2fd9e74373c5a73cc4f819206b0ae4  gcc/testsuite/ada/acats-2/tests/c3/c35502n.ada
! a2f7774ccd8fe3b58f670146427b1f58  gcc/testsuite/ada/acats-2/tests/c3/c35502o.ada
! 244d3a03a5bfb9a02be2cde7af593c88  gcc/testsuite/ada/acats-2/tests/c3/c35502p.ada
! bbea92be5e14aa812d5b0bf50f43ecd2  gcc/testsuite/ada/acats-2/tests/c3/c35503a.ada
! e45620aeea62423f2a72fa98c32c2629  gcc/testsuite/ada/acats-2/tests/c3/c35503b.ada
! 6ff5a195541e611e8f795764a46c96c7  gcc/testsuite/ada/acats-2/tests/c3/c35503c.ada
! ae4f0df020df3fca42928a76d16433e2  gcc/testsuite/ada/acats-2/tests/c3/c35503d.tst
! 2835676122accf27f7f9912ed7f9b38b  gcc/testsuite/ada/acats-2/tests/c3/c35503e.ada
! 18bbb578fe3d479a11c962d128286c04  gcc/testsuite/ada/acats-2/tests/c3/c35503f.tst
! def2f804ca12f62b8b5f42c18fa649c0  gcc/testsuite/ada/acats-2/tests/c3/c35503g.ada
! 082f524dedff546b67bf566735caa1c1  gcc/testsuite/ada/acats-2/tests/c3/c35503h.ada
! 85174a7f410200513d18d173743c7474  gcc/testsuite/ada/acats-2/tests/c3/c35503k.ada
! 57ae4c28160a4dfa61de89bc057c9b02  gcc/testsuite/ada/acats-2/tests/c3/c35503l.ada
! 5fc96deb857ba3b7ec7ee6040f2b7d93  gcc/testsuite/ada/acats-2/tests/c3/c35503o.ada
! 02c17920bbabcf5f472c332ee0439df3  gcc/testsuite/ada/acats-2/tests/c3/c35503p.ada
! 7c0f95cda266f19784cd481570ffcf1a  gcc/testsuite/ada/acats-2/tests/c3/c35504a.ada
! 58ca27427f3b7371702549078677cd48  gcc/testsuite/ada/acats-2/tests/c3/c35504b.ada
! c64ed7ab5ced440f95e39eb0465b431f  gcc/testsuite/ada/acats-2/tests/c3/c35505c.ada
! 8a20049a7aa4dbf5e73f4a4a856df916  gcc/testsuite/ada/acats-2/tests/c3/c35505e.ada
! fb8432e5868c1977e525882401096430  gcc/testsuite/ada/acats-2/tests/c3/c35505f.ada
! a3d1f58b38d0f57e89521134057aa0d0  gcc/testsuite/ada/acats-2/tests/c3/c35507a.ada
! fe46e6e48a084e26027a960dcecf0e7f  gcc/testsuite/ada/acats-2/tests/c3/c35507b.ada
! 6276ac14d36049ca6fc1d65937918d6d  gcc/testsuite/ada/acats-2/tests/c3/c35507c.ada
! 38f75633d1d28c38660ac311815075c6  gcc/testsuite/ada/acats-2/tests/c3/c35507e.ada
! 068b315520036392da2decdadf03f6c9  gcc/testsuite/ada/acats-2/tests/c3/c35507g.ada
! c2e6c5681cde5371d2678d0afe2a7dbc  gcc/testsuite/ada/acats-2/tests/c3/c35507h.ada
! 63dad9c02cf9b0faee9f7a4c8f1e9e2d  gcc/testsuite/ada/acats-2/tests/c3/c35507i.ada
! 1501d4b22ff6ada18bda2bec24e23c79  gcc/testsuite/ada/acats-2/tests/c3/c35507j.ada
! 09885e80b2822b3187740ca5682c20e8  gcc/testsuite/ada/acats-2/tests/c3/c35507k.ada
! 7cef3fe8bb6274e0323e822d047490b2  gcc/testsuite/ada/acats-2/tests/c3/c35507l.ada
! b1e4ee7af4f56f20553663a9e296595e  gcc/testsuite/ada/acats-2/tests/c3/c35507m.ada
! cecbaaea0b8f341a4305a221c28843fc  gcc/testsuite/ada/acats-2/tests/c3/c35507n.ada
! 52e0a241e2ad05fa89ecb293e6e2445a  gcc/testsuite/ada/acats-2/tests/c3/c35507o.ada
! 600e023fcb478381f0a8d0bde64f42ce  gcc/testsuite/ada/acats-2/tests/c3/c35507p.ada
! f33cc8ac90e96b7b226aaec5ae692195  gcc/testsuite/ada/acats-2/tests/c3/c35508a.ada
! 7e48a5fa6e02b3658f287da356b209f9  gcc/testsuite/ada/acats-2/tests/c3/c35508b.ada
! 4b6b6e92f28c0ad3cd4f67af8ad0c06c  gcc/testsuite/ada/acats-2/tests/c3/c35508c.ada
! 8bbddf95307b94ae0ed7e12152746762  gcc/testsuite/ada/acats-2/tests/c3/c35508e.ada
! dbe54ec8ce5e33dd88ae24a43cfde531  gcc/testsuite/ada/acats-2/tests/c3/c35508g.ada
! e637f96ce7f08585f2d85fee50f734ee  gcc/testsuite/ada/acats-2/tests/c3/c35508h.ada
! 362619ef40ffff0fd56dee7a6a6c51ab  gcc/testsuite/ada/acats-2/tests/c3/c35508k.ada
! 62ca0e421d4722ad32f139648ece0a60  gcc/testsuite/ada/acats-2/tests/c3/c35508l.ada
! fab2b9fed9304046c3feed68fb9e7b50  gcc/testsuite/ada/acats-2/tests/c3/c35508o.ada
! a7e4e9b85072c7fc56cd223463426c4d  gcc/testsuite/ada/acats-2/tests/c3/c35508p.ada
! bb15d1d296a4eddc9aada6a363360729  gcc/testsuite/ada/acats-2/tests/c3/c35703a.ada
! 97d3b53eb2177ea6344c1ef49c98377d  gcc/testsuite/ada/acats-2/tests/c3/c35704a.ada
! 5a690257e776d58a4fd2a23a7ba6c0e9  gcc/testsuite/ada/acats-2/tests/c3/c35704b.ada
! 52a2a628059a70786108ace7ccd9d08f  gcc/testsuite/ada/acats-2/tests/c3/c35704c.ada
! 14756c69c53e152b3ede55a2754a4d33  gcc/testsuite/ada/acats-2/tests/c3/c35704d.ada
! 22b7d640a1b7ab1933a5654507ff5814  gcc/testsuite/ada/acats-2/tests/c3/c35801d.ada
! 23943917f960018ecdfb861e2c69b545  gcc/testsuite/ada/acats-2/tests/c3/c35902d.ada
! 1e5392accfe4bd85f17ca7c456747be3  gcc/testsuite/ada/acats-2/tests/c3/c35904a.ada
! 4c8ee2a79f1878dcbca7246e9e436865  gcc/testsuite/ada/acats-2/tests/c3/c35904b.ada
! 73fbf4f7e465d5d7fdbee3c99d7cf9ec  gcc/testsuite/ada/acats-2/tests/c3/c35a02a.ada
! 9f8c6fe2edc1ad0a78efbb5038b9ef99  gcc/testsuite/ada/acats-2/tests/c3/c35a05a.ada
! 57fc2536f06ceaf5a1604ee5bb5605fd  gcc/testsuite/ada/acats-2/tests/c3/c35a05d.ada
! ccf547732379c7144c27839f695e8a78  gcc/testsuite/ada/acats-2/tests/c3/c35a05n.ada
! ef904f577e7d9c35099e7d144f51bcce  gcc/testsuite/ada/acats-2/tests/c3/c35a05q.ada
! 3682cd83d6b388849e97129de990f52d  gcc/testsuite/ada/acats-2/tests/c3/c35a07a.ada
! 03e887c344e6bdbdb22118ff77b769fd  gcc/testsuite/ada/acats-2/tests/c3/c35a07d.ada
! ccdad741543d79671fc5f73037ff418d  gcc/testsuite/ada/acats-2/tests/c3/c35a08b.ada
! 651df98436a6167a850f437a29dc7a94  gcc/testsuite/ada/acats-2/tests/c3/c360002.a
! a4c274a3e03fe30e6bc786063bfe78e9  gcc/testsuite/ada/acats-2/tests/c3/c36104a.ada
! b016b5195b1a9d3c07192416c89e1bee  gcc/testsuite/ada/acats-2/tests/c3/c36104b.ada
! 43912684d172c672071ee16d854bcff0  gcc/testsuite/ada/acats-2/tests/c3/c36172a.ada
! 2dc69a4f44addfae37b13335df258285  gcc/testsuite/ada/acats-2/tests/c3/c36172b.ada
! 4d07671447e230f3eddc684c6a3b557a  gcc/testsuite/ada/acats-2/tests/c3/c36172c.ada
! 38a8a16720ac5a8741105f6c5f506f2d  gcc/testsuite/ada/acats-2/tests/c3/c36174a.ada
! 87012e291c8acd51799d9ca8b8fccc32  gcc/testsuite/ada/acats-2/tests/c3/c36180a.ada
! f887210d32ff420cd8ec888ca5c13b66  gcc/testsuite/ada/acats-2/tests/c3/c36202c.ada
! c48c400b884ae534788fbff1510b95ba  gcc/testsuite/ada/acats-2/tests/c3/c36203a.ada
! 93d36d6ba5a23a2f985cc842911a6b2f  gcc/testsuite/ada/acats-2/tests/c3/c36204a.ada
! 5ae3804a2577f9be85df4c11dd1ba3ab  gcc/testsuite/ada/acats-2/tests/c3/c36204b.ada
! 95f946b45603237266057103729c0a9c  gcc/testsuite/ada/acats-2/tests/c3/c36204c.ada
! 1a555d9bc9de255c02e401d7956a5f67  gcc/testsuite/ada/acats-2/tests/c3/c36204d.ada
! c5d2782fd60778b2578f9cf486e811db  gcc/testsuite/ada/acats-2/tests/c3/c36205a.ada
! 4842fc730e500b00c7c35f4691be2855  gcc/testsuite/ada/acats-2/tests/c3/c36205b.ada
! 725f9fbf3157baa9a668acc5e689a06b  gcc/testsuite/ada/acats-2/tests/c3/c36205c.ada
! a9d6124e64589b143b6b54d575df431b  gcc/testsuite/ada/acats-2/tests/c3/c36205d.ada
! c016e1338001bb0d007af7bf4e20d911  gcc/testsuite/ada/acats-2/tests/c3/c36205e.ada
! 299e459d577a85781464563cd621f1b4  gcc/testsuite/ada/acats-2/tests/c3/c36205f.ada
! 7f182ba91c9a0f80d0e5e5b7e919ac56  gcc/testsuite/ada/acats-2/tests/c3/c36205g.ada
! 7559d4ebfc8d9c23879d2cc42d3ac0f4  gcc/testsuite/ada/acats-2/tests/c3/c36205h.ada
! d11eed873d3f614674f193f130b127bb  gcc/testsuite/ada/acats-2/tests/c3/c36205i.ada
! 65b17684e8953d820a69eb11dc4d63e4  gcc/testsuite/ada/acats-2/tests/c3/c36205j.ada
! 21f3a9a788ac6136e2b453f0fc99959f  gcc/testsuite/ada/acats-2/tests/c3/c36205k.ada
! 9884f944a4c4faaee8aaf09a92235c3a  gcc/testsuite/ada/acats-2/tests/c3/c36205l.ada
! 1552dfb23215604db6043c7d12dfc7a6  gcc/testsuite/ada/acats-2/tests/c3/c36301a.ada
! eb37821c1c0e190f8c8cd0e7d282bc9e  gcc/testsuite/ada/acats-2/tests/c3/c36301b.ada
! 236dab07c2bafa07e92d082fc822c8b4  gcc/testsuite/ada/acats-2/tests/c3/c36302a.ada
! a1b4d4c17da94ac478b85b56fd32bf91  gcc/testsuite/ada/acats-2/tests/c3/c36304a.ada
! 58595c82c4f76f6be31333ec0267a9c8  gcc/testsuite/ada/acats-2/tests/c3/c36305a.ada
! 871a3ce65e5d5a824131380a060f18e0  gcc/testsuite/ada/acats-2/tests/c3/c37002a.ada
! 8415fb7acaf9ab73e2a230b45778e7c8  gcc/testsuite/ada/acats-2/tests/c3/c37003a.ada
! b93e53c5cd23520b5b0b88e8c4aee165  gcc/testsuite/ada/acats-2/tests/c3/c37003b.ada
! 0396184f11f01fdd09e40a2432a7850c  gcc/testsuite/ada/acats-2/tests/c3/c37005a.ada
! 17dc351de12194e77f5fe4b5ffbc733e  gcc/testsuite/ada/acats-2/tests/c3/c37006a.ada
! 96813863f2ee2182c3f68f999a7ffed2  gcc/testsuite/ada/acats-2/tests/c3/c37008a.ada
! 9f784c997bf1bb09fe9bf639408dd25c  gcc/testsuite/ada/acats-2/tests/c3/c37008b.ada
! 5d7d0f22be016c0f9b4bcb1da25ed1a2  gcc/testsuite/ada/acats-2/tests/c3/c37009a.ada
! ffc6187aa3ecc28b0631a384e1f95a7e  gcc/testsuite/ada/acats-2/tests/c3/c37010a.ada
! 029c8fb134594e913fe650a5763a4515  gcc/testsuite/ada/acats-2/tests/c3/c37010b.ada
! 09e452317c2c5a3df881f8bfc5bad1ca  gcc/testsuite/ada/acats-2/tests/c3/c371001.a
! 194d5579b14c8d78edccb4725e786bbb  gcc/testsuite/ada/acats-2/tests/c3/c371002.a
! 6508ac6c82ccaf89245ddeb239cf8c65  gcc/testsuite/ada/acats-2/tests/c3/c371003.a
! efcbd19428af8ce2430d60f7389f98f7  gcc/testsuite/ada/acats-2/tests/c3/c37102b.ada
! b56d339ed47321b90862af1e6ff54f3c  gcc/testsuite/ada/acats-2/tests/c3/c37103a.ada
! d2b9a9804b8282550c3233d4c850e203  gcc/testsuite/ada/acats-2/tests/c3/c37105a.ada
! dff6fe14498b4430a005271952b8508b  gcc/testsuite/ada/acats-2/tests/c3/c37107a.ada
! cab8fff51d9e7fa6be5dc3722f0805a7  gcc/testsuite/ada/acats-2/tests/c3/c37108b.ada
! ac1c74612e7098a8b3c19c4233f91b36  gcc/testsuite/ada/acats-2/tests/c3/c37206a.ada
! da4a6484624a6563a3acad74e59e553f  gcc/testsuite/ada/acats-2/tests/c3/c37207a.ada
! 793d448b9373aca3bdfbeb16c4cd5664  gcc/testsuite/ada/acats-2/tests/c3/c37208a.ada
! 19e934b5c86da61793fb4bde9faf4f4a  gcc/testsuite/ada/acats-2/tests/c3/c37208b.ada
! cfc2d39b74fd2d6964787190ac03afde  gcc/testsuite/ada/acats-2/tests/c3/c37209a.ada
! a9e5da6e96624ea9e8d99c31a879bea0  gcc/testsuite/ada/acats-2/tests/c3/c37209b.ada
! 5095a03dbf61f1c7486ce4249ebd4168  gcc/testsuite/ada/acats-2/tests/c3/c37210a.ada
! 13fd1f169bebade45dcc8f783c4dfba5  gcc/testsuite/ada/acats-2/tests/c3/c37211a.ada
! 90539e4b0a8ab5a720d93e61332d4bad  gcc/testsuite/ada/acats-2/tests/c3/c37211b.ada
! b5fb0f0cfa820aa9c8f8a02529b59ae1  gcc/testsuite/ada/acats-2/tests/c3/c37211c.ada
! 34158bf765252e909102a5071bd1ab0d  gcc/testsuite/ada/acats-2/tests/c3/c37211d.ada
! 9723d82d289b6c708a4e38619a050c44  gcc/testsuite/ada/acats-2/tests/c3/c37211e.ada
! 02567718a426a27f1633a5ba46fb39ea  gcc/testsuite/ada/acats-2/tests/c3/c37213b.ada
! 0db6468aa3789fa4eb8509864bbbba6c  gcc/testsuite/ada/acats-2/tests/c3/c37213d.ada
! c3ea989d669b26ad147ec1d36d59f8b1  gcc/testsuite/ada/acats-2/tests/c3/c37213f.ada
! c7d6b08bb4739fe27a9bf7c37153611b  gcc/testsuite/ada/acats-2/tests/c3/c37213h.ada
! e1a81fd713875796f8f0f1d1d856df2e  gcc/testsuite/ada/acats-2/tests/c3/c37213j.ada
! 8824529732962a1fb9cbd428d01a57f5  gcc/testsuite/ada/acats-2/tests/c3/c37213k.ada
! 7c2df003cd7fdc0bffaa00b7e5a76295  gcc/testsuite/ada/acats-2/tests/c3/c37213l.ada
! d1bb01398cfb6ee5cd12ec89604227fb  gcc/testsuite/ada/acats-2/tests/c3/c37215b.ada
! f34c6fc15658b1b04a69e1ccf32c7394  gcc/testsuite/ada/acats-2/tests/c3/c37215d.ada
! ca62cbc7b583fe934a8091c539e55305  gcc/testsuite/ada/acats-2/tests/c3/c37215f.ada
! 8be60a6919ae5d9ba615eb624746100d  gcc/testsuite/ada/acats-2/tests/c3/c37215h.ada
! fdd60b015f299bfc5d8e0f9f33334f8e  gcc/testsuite/ada/acats-2/tests/c3/c37217a.ada
! bb84ce5410a8c6c7127939120ba80cde  gcc/testsuite/ada/acats-2/tests/c3/c37217b.ada
! 2687c3f166eabbae25fc5e04880d06a3  gcc/testsuite/ada/acats-2/tests/c3/c37217c.ada
! db9ca52d8b1a818e4d66aea96b3eb964  gcc/testsuite/ada/acats-2/tests/c3/c37304a.ada
! 59413b6b57aae9caadc41c111c74faed  gcc/testsuite/ada/acats-2/tests/c3/c37305a.ada
! 2ff906f6262ecd1cfdaffbcda07f1a76  gcc/testsuite/ada/acats-2/tests/c3/c37306a.ada
! a6f2da7b55ad908aebb841bc6ed9b69e  gcc/testsuite/ada/acats-2/tests/c3/c37309a.ada
! 54ec04c8663d10e960eb022fed3a9306  gcc/testsuite/ada/acats-2/tests/c3/c37310a.ada
! ab733e44603296f9e49a292ad601cf74  gcc/testsuite/ada/acats-2/tests/c3/c37312a.ada
! 75ac97c1a116dcc5edcc7f2b44f304f4  gcc/testsuite/ada/acats-2/tests/c3/c37402a.ada
! 2d432b792b7c7b0669844add896bb802  gcc/testsuite/ada/acats-2/tests/c3/c37403a.ada
! 38ed181e9e32218f4a81d412e83c503d  gcc/testsuite/ada/acats-2/tests/c3/c37404a.ada
! c1cce1fda9f9c6085ecce4e278182d6c  gcc/testsuite/ada/acats-2/tests/c3/c37404b.ada
! c9abb9613df5a6b0ab399a10551d5070  gcc/testsuite/ada/acats-2/tests/c3/c37405a.ada
! 1793c94eca80b29526f7ec7a9da864e8  gcc/testsuite/ada/acats-2/tests/c3/c37411a.ada
! 3d8871a14f5b0b92ab5699036c27161b  gcc/testsuite/ada/acats-2/tests/c3/c380001.a
! fe1bbd01b7e70108e4de5854ee4c098d  gcc/testsuite/ada/acats-2/tests/c3/c380002.a
! fb52cd7cb9118b93afa2bc8a309ecdc9  gcc/testsuite/ada/acats-2/tests/c3/c380003.a
! 7e465d24377190b6eaafcc3fd3125ff9  gcc/testsuite/ada/acats-2/tests/c3/c380004.a
! c76f2865cda03e9d5c2164052031d578  gcc/testsuite/ada/acats-2/tests/c3/c38002a.ada
! 5c8aaef6a8da893998485cc8bfb71f48  gcc/testsuite/ada/acats-2/tests/c3/c38002b.ada
! f8397d669785d9d911c494e0a0b9986a  gcc/testsuite/ada/acats-2/tests/c3/c38005a.ada
! 36a372c2d5368726208b1f76f95f3c1d  gcc/testsuite/ada/acats-2/tests/c3/c38005b.ada
! 175ff60b11884803275c5a95d4db9b0f  gcc/testsuite/ada/acats-2/tests/c3/c38005c.ada
! 7a5b5f5b1ac7d54c9a2cff42582467fb  gcc/testsuite/ada/acats-2/tests/c3/c38006a.ada
! cc457354e31fc1e63179de33cbefbad9  gcc/testsuite/ada/acats-2/tests/c3/c38102a.ada
! 2f60ee39cadeb5e04f93c0fb98c2ff78  gcc/testsuite/ada/acats-2/tests/c3/c38102b.ada
! 773c45b11f80bfa2c11a621982312a41  gcc/testsuite/ada/acats-2/tests/c3/c38102c.ada
! 2eec2f09807572ff6be386c41f2aa890  gcc/testsuite/ada/acats-2/tests/c3/c38102d.ada
! ff2ae7294328aba3ca946b298ff89249  gcc/testsuite/ada/acats-2/tests/c3/c38102e.ada
! 19d2c8a98b84fc28fb173b8ede249f5f  gcc/testsuite/ada/acats-2/tests/c3/c38104a.ada
! ccdff83c46a0742a6f6c98f395885cf0  gcc/testsuite/ada/acats-2/tests/c3/c38107a.ada
! 5b807a368e5b577c901a0143b328edd6  gcc/testsuite/ada/acats-2/tests/c3/c38107b.ada
! 7f519d74032c869b16bf7e4cc3f1757c  gcc/testsuite/ada/acats-2/tests/c3/c38108a.ada
! 1cdb4b2554cc632c2786a14302f39123  gcc/testsuite/ada/acats-2/tests/c3/c38108b.ada
! 0c83db01ff09f439f6a7fc807e878547  gcc/testsuite/ada/acats-2/tests/c3/c38108c0.ada
! 0b0a2c9346188afcf5a240958d58cb60  gcc/testsuite/ada/acats-2/tests/c3/c38108c1.ada
! 1cea347b513b856254a8e9fed08d945a  gcc/testsuite/ada/acats-2/tests/c3/c38108c2.ada
! fb749693f49b0edcfffc4444290ac564  gcc/testsuite/ada/acats-2/tests/c3/c38108d0.ada
! aa2833688968ca7a3e36612070b575f4  gcc/testsuite/ada/acats-2/tests/c3/c38108d1.ada
! 8e9cd24cf69e1375408ec439a96f964f  gcc/testsuite/ada/acats-2/tests/c3/c38202a.ada
! 61680b9ec1c444c4faffd8c59cce698a  gcc/testsuite/ada/acats-2/tests/c3/c3900010.a
! 987d00ae68ea07578bf45fc567352a66  gcc/testsuite/ada/acats-2/tests/c3/c3900011.am
! 370d5eba0eee3ce909caf87c342f846d  gcc/testsuite/ada/acats-2/tests/c3/c390002.a
! 6dd703dff40d77030a2c6329094e7802  gcc/testsuite/ada/acats-2/tests/c3/c390003.a
! 491d840ce3aeb642239cc28533a9ba34  gcc/testsuite/ada/acats-2/tests/c3/c390004.a
! b04ffb8d071dcf6547533038ef227651  gcc/testsuite/ada/acats-2/tests/c3/c3900050.a
! dff18ad9fb367bc37acd04d6e08e55bf  gcc/testsuite/ada/acats-2/tests/c3/c3900051.a
! 2b39948b2af313cbed0046a2bcdcbc9d  gcc/testsuite/ada/acats-2/tests/c3/c3900052.a
! b4e44c9c1971345223585500a55db164  gcc/testsuite/ada/acats-2/tests/c3/c3900053.am
! 471e818df49cf1a32357c5b759d21dc9  gcc/testsuite/ada/acats-2/tests/c3/c3900060.a
! bd65238f7cda09d91e177736cdbcd7ec  gcc/testsuite/ada/acats-2/tests/c3/c3900061.a
! d3e9ddf4af2eb46f1b086dbc43c75d04  gcc/testsuite/ada/acats-2/tests/c3/c3900062.a
! bced3ae0c872e2f15b26193b1c9c4c35  gcc/testsuite/ada/acats-2/tests/c3/c3900063.am
! cd1ae54278fd1b61d5ecd166ecf0671b  gcc/testsuite/ada/acats-2/tests/c3/c390007.a
! a7cf99b62949613099d6c982d9043098  gcc/testsuite/ada/acats-2/tests/c3/c390010.a
! 30e5b9a42c18864d89a931830adfd68e  gcc/testsuite/ada/acats-2/tests/c3/c390011.a
! 1bcaf1b15ae617d49c80e68b55943cc6  gcc/testsuite/ada/acats-2/tests/c3/c39006a.ada
! 7e954943167e1f1855ce0abf856c9a9b  gcc/testsuite/ada/acats-2/tests/c3/c39006b.ada
! 14d52be4c2d938b4ae51c17507b6ca25  gcc/testsuite/ada/acats-2/tests/c3/c39006c0.ada
! c770912acdec8d8fa7169157d99a1382  gcc/testsuite/ada/acats-2/tests/c3/c39006c1.ada
! fcf5b4e7ecc49a79fc11640baf53f4f6  gcc/testsuite/ada/acats-2/tests/c3/c39006d.ada
! 86ddd0b2d946750357311d89b5046963  gcc/testsuite/ada/acats-2/tests/c3/c39006e.ada
! ba4887d359d62403c79f3563b0dfa8f4  gcc/testsuite/ada/acats-2/tests/c3/c39006f0.ada
! 205b6ff97343a4403e8cb5bc33883547  gcc/testsuite/ada/acats-2/tests/c3/c39006f1.ada
! 16ddc19c6da0a1642305e4b5fc6058d1  gcc/testsuite/ada/acats-2/tests/c3/c39006f2.ada
! 59cfdb727f33418fa8de537e14629d71  gcc/testsuite/ada/acats-2/tests/c3/c39006f3.ada
! f80f760d35130556602f0b683e480d63  gcc/testsuite/ada/acats-2/tests/c3/c39006g.ada
! cce3352413b69fd05b5ec5195c3a4c00  gcc/testsuite/ada/acats-2/tests/c3/c39007a.ada
! eab8b6c595bc019ed0d33f826e34e97f  gcc/testsuite/ada/acats-2/tests/c3/c39007b.ada
! f9502bdaffb8475b46fab174a19f2de9  gcc/testsuite/ada/acats-2/tests/c3/c39008a.ada
! 44f9dead72582206f122372b79949f92  gcc/testsuite/ada/acats-2/tests/c3/c39008b.ada
! f7c867df153c4137ff42c73e84cf78bb  gcc/testsuite/ada/acats-2/tests/c3/c39008c.ada
! 7dfc2d2eea8f430d414e0e9fb3d66efb  gcc/testsuite/ada/acats-2/tests/c3/c390a010.a
! fe7593d56cc6f8290c29978513afc0e4  gcc/testsuite/ada/acats-2/tests/c3/c390a011.am
! 11b0510a4ce65e5a57a44f990501c66a  gcc/testsuite/ada/acats-2/tests/c3/c390a020.a
! 4282bd0ba35b056f1611e8c863c8745e  gcc/testsuite/ada/acats-2/tests/c3/c390a021.a
! cf96da721f34cf963ac9c04fdedb4a5a  gcc/testsuite/ada/acats-2/tests/c3/c390a022.am
! 9cc816e53154c542095db060de988727  gcc/testsuite/ada/acats-2/tests/c3/c390a030.a
! a2ad2209c88d74fd376c9daf08c00e0c  gcc/testsuite/ada/acats-2/tests/c3/c390a031.am
! 40bd1c7f8a70fb208644304788e8bdc6  gcc/testsuite/ada/acats-2/tests/c3/c391001.a
! 2dc32344161fe05900a7d0a4fb00a90b  gcc/testsuite/ada/acats-2/tests/c3/c391002.a
! 1cea1692179d434f0ff9e71ba3af5c1e  gcc/testsuite/ada/acats-2/tests/c3/c392002.a
! 918e8c097a09a06159f2809df40a1418  gcc/testsuite/ada/acats-2/tests/c3/c392003.a
! 65856b8c6fecfcf755607b20116e49ef  gcc/testsuite/ada/acats-2/tests/c3/c392004.a
! add1a6bb172c420d5b75dd9efb48c6bd  gcc/testsuite/ada/acats-2/tests/c3/c392005.a
! 1e3c83f529cb7a93f087fd5e1d1c8da3  gcc/testsuite/ada/acats-2/tests/c3/c392008.a
! fdbaa3ed4337e597d16209533ad30839  gcc/testsuite/ada/acats-2/tests/c3/c392010.a
! 8063c17c7054236de05a0d6a56818802  gcc/testsuite/ada/acats-2/tests/c3/c392011.a
! 66f6cf830b25e4cba2aeaac6801b02e2  gcc/testsuite/ada/acats-2/tests/c3/c392013.a
! 3597acb12cde69e45603917fc97c80c0  gcc/testsuite/ada/acats-2/tests/c3/c392014.a
! 35f1f390e8606d404b61bb05a639d3be  gcc/testsuite/ada/acats-2/tests/c3/c392a01.a
! ddeb268075e3a716a055f61676497b78  gcc/testsuite/ada/acats-2/tests/c3/c392c05.a
! ee8edde3e11e29c877773403259133c0  gcc/testsuite/ada/acats-2/tests/c3/c392c07.a
! cf19325c05dcb02f4dc60d58ef26ea2b  gcc/testsuite/ada/acats-2/tests/c3/c392d01.a
! acfb41d6d4b4fdec20be56da91d7037d  gcc/testsuite/ada/acats-2/tests/c3/c392d02.a
! 1db19d15d9fdd4071bc438e73f6c5f60  gcc/testsuite/ada/acats-2/tests/c3/c392d03.a
! 9913afe2e224eb447dd2ba6e7b6cd62d  gcc/testsuite/ada/acats-2/tests/c3/c393001.a
! cb66f262f22e933b78a4b4ff7f314ebb  gcc/testsuite/ada/acats-2/tests/c3/c393007.a
! fa7a91fbda6d3ec270401392bfa2a76e  gcc/testsuite/ada/acats-2/tests/c3/c393008.a
! 725749e586aef7b3172e0a9f654508c9  gcc/testsuite/ada/acats-2/tests/c3/c393009.a
! 21bc1c6b2b56e0fe4e98a124b3a43036  gcc/testsuite/ada/acats-2/tests/c3/c393010.a
! cd6d2722ead0dbebda558b3eed5c7ca4  gcc/testsuite/ada/acats-2/tests/c3/c393011.a
! 7df68c4f3488082bba3f1654a9ba7910  gcc/testsuite/ada/acats-2/tests/c3/c393012.a
! 5bf5e79116361f7f6818018607c7b14c  gcc/testsuite/ada/acats-2/tests/c3/c393a02.a
! 46faa2017a32e6ba0d55237311c2594b  gcc/testsuite/ada/acats-2/tests/c3/c393a03.a
! eafd936400d5d6d12f0163e2eddfac6b  gcc/testsuite/ada/acats-2/tests/c3/c393a05.a
! db0cccf9a144062cc832a2649c8b3890  gcc/testsuite/ada/acats-2/tests/c3/c393a06.a
! 8714b97cca38041a9f7e9366aef2ea6f  gcc/testsuite/ada/acats-2/tests/c3/c393b12.a
! 7035657702431ed63b2d07b818986f02  gcc/testsuite/ada/acats-2/tests/c3/c393b13.a
! 53c07ae14d9fb175ce43218b1e343038  gcc/testsuite/ada/acats-2/tests/c3/c393b14.a
! c2ac600ac5856ef7dd1dbc9289ad5b3a  gcc/testsuite/ada/acats-2/tests/c3/c3a0001.a
! 031b3fc5f0a32a51bded67c7ecc17317  gcc/testsuite/ada/acats-2/tests/c3/c3a0002.a
! c31f440d35b722f58fbb9350b06d125c  gcc/testsuite/ada/acats-2/tests/c3/c3a0003.a
! 2297f4ac861d78f2371edd9c4a2d7c6c  gcc/testsuite/ada/acats-2/tests/c3/c3a0004.a
! 32ac31994b6e97c7cfc3da69b63041ca  gcc/testsuite/ada/acats-2/tests/c3/c3a0005.a
! d86e5a6cc083a8024c11012097ddad34  gcc/testsuite/ada/acats-2/tests/c3/c3a0006.a
! 27a88a8b1aa1655fbfad671608eb6590  gcc/testsuite/ada/acats-2/tests/c3/c3a0007.a
! 2c75b971c54a5abc55846c25177a2d32  gcc/testsuite/ada/acats-2/tests/c3/c3a0008.a
! 0b8bb10fc6969853e244dca2a5176000  gcc/testsuite/ada/acats-2/tests/c3/c3a0009.a
! ed1e9211c87a814c4afe091b58de454c  gcc/testsuite/ada/acats-2/tests/c3/c3a0010.a
! e9e7d7fe8183ee50353cfccbd67ce241  gcc/testsuite/ada/acats-2/tests/c3/c3a0011.a
! c7fcc74fd4dfdbaffcb6c91b90a50060  gcc/testsuite/ada/acats-2/tests/c3/c3a00120.a
! 74ba294edd61c27b3a700c248bd041e9  gcc/testsuite/ada/acats-2/tests/c3/c3a00121.a
! b5687449024e6ae74c2b54cbbf12b721  gcc/testsuite/ada/acats-2/tests/c3/c3a00122.am
! e7d92335b6aec84b884e9a11162a306e  gcc/testsuite/ada/acats-2/tests/c3/c3a0013.a
! 2fdbc8cb627a0ba4818773199ea59e8b  gcc/testsuite/ada/acats-2/tests/c3/c3a0014.a
! cbdd24e39ac8fba7e5ea4a0975d79298  gcc/testsuite/ada/acats-2/tests/c3/c3a0015.a
! 21ce522f0e81e68685347a0f9b6064f3  gcc/testsuite/ada/acats-2/tests/c3/c3a1001.a
! 03f9fa0b3ade6732c9e7b1792aa29352  gcc/testsuite/ada/acats-2/tests/c3/c3a1002.a
! 73e86224d17f2a8956a1d528195701e5  gcc/testsuite/ada/acats-2/tests/c3/c3a2001.a
! e2d17cf34da20dd63f46abc38e9461f2  gcc/testsuite/ada/acats-2/tests/c3/c3a2002.a
! 3c24e7e447372dec84c3b1cf5f273936  gcc/testsuite/ada/acats-2/tests/c3/c3a2003.a
! cddb5c363c31a2ba7b970cf9dc8e3f5e  gcc/testsuite/ada/acats-2/tests/c3/c3a2a01.a
! 4247f0b657aa158ef18c1318e9dc8b84  gcc/testsuite/ada/acats-2/tests/c3/c3a2a02.a
! 383d36d8bd8f651b81f9f034c79f6395  gcc/testsuite/ada/acats-2/tests/c4/c410001.a
! dc852bc88874efd64494341e97b01bfb  gcc/testsuite/ada/acats-2/tests/c4/c41101d.ada
! 6f5f34a6a9fa1d906503ce64081a9fb1  gcc/testsuite/ada/acats-2/tests/c4/c41103a.ada
! 6881243b887f6a08d55ad39f9c71b847  gcc/testsuite/ada/acats-2/tests/c4/c41103b.ada
! 820fca3a12cccc477a1db295b46c9e89  gcc/testsuite/ada/acats-2/tests/c4/c41104a.ada
! fdbf47ad957484b7d85a3373d756e376  gcc/testsuite/ada/acats-2/tests/c4/c41105a.ada
! c4087c229334ce4727fc90657340bea6  gcc/testsuite/ada/acats-2/tests/c4/c41107a.ada
! 0f8bb517ec2fe5d8ad9dd8f9fcdca333  gcc/testsuite/ada/acats-2/tests/c4/c41201d.ada
! 381cd3656ffd77067260c0426caad8e4  gcc/testsuite/ada/acats-2/tests/c4/c41203a.ada
! f16afef9632faa3f3d798b8429057017  gcc/testsuite/ada/acats-2/tests/c4/c41203b.ada
! 9fbde81e21b268a632cd32dc4a99df30  gcc/testsuite/ada/acats-2/tests/c4/c41204a.ada
! 67fa52580bd829764d9438c881578136  gcc/testsuite/ada/acats-2/tests/c4/c41205a.ada
! 7dca543b0fdeefd218298ca3512d4136  gcc/testsuite/ada/acats-2/tests/c4/c41206a.ada
! 3ab9c169397fc23560a200fb693450fe  gcc/testsuite/ada/acats-2/tests/c4/c41207a.ada
! 20522dfe7bf33e5e0e855924df96c08e  gcc/testsuite/ada/acats-2/tests/c4/c41301a.ada
! dae21e7962c8e72b1b61657cc9649578  gcc/testsuite/ada/acats-2/tests/c4/c41303a.ada
! b50a855a96988b73e7f3549240854176  gcc/testsuite/ada/acats-2/tests/c4/c41303b.ada
! 2616024a5ab75311dd3da9466dfeb83f  gcc/testsuite/ada/acats-2/tests/c4/c41303c.ada
! 71212110be4b03b467bc38a722d121d1  gcc/testsuite/ada/acats-2/tests/c4/c41303e.ada
! 66cc6334eba1dfed1e235d86203cb20f  gcc/testsuite/ada/acats-2/tests/c4/c41303f.ada
! 924b3910bb06953e81b618bc3e559550  gcc/testsuite/ada/acats-2/tests/c4/c41303g.ada
! 045ed81e249f894170b499df2db286d6  gcc/testsuite/ada/acats-2/tests/c4/c41303i.ada
! aa4db5f52bbfc36e5c975658ef97c89a  gcc/testsuite/ada/acats-2/tests/c4/c41303j.ada
! 0f31fc1511244c83e7abb4baeac80671  gcc/testsuite/ada/acats-2/tests/c4/c41303k.ada
! f9b758389317dc92073ce01c3c275e91  gcc/testsuite/ada/acats-2/tests/c4/c41303m.ada
! 71a865e9509e3725fd95b90ec715eaa7  gcc/testsuite/ada/acats-2/tests/c4/c41303n.ada
! 8981d1c2da09086d412019a04cc8c913  gcc/testsuite/ada/acats-2/tests/c4/c41303o.ada
! 2dda9c55735424d40aed9757f7a99849  gcc/testsuite/ada/acats-2/tests/c4/c41303q.ada
! e34e7a4a5a5ba93bc9916cceeaecc9e6  gcc/testsuite/ada/acats-2/tests/c4/c41303r.ada
! 7030e6ee5fb5761b449dbb4ff5a07765  gcc/testsuite/ada/acats-2/tests/c4/c41303s.ada
! d79eb627645d3853ea5140161ae28128  gcc/testsuite/ada/acats-2/tests/c4/c41303u.ada
! bb6f238e4a4ba7e7e7d4a81bc419e03c  gcc/testsuite/ada/acats-2/tests/c4/c41303v.ada
! 30d2340bbbbe2276772e1fb63e33b4ce  gcc/testsuite/ada/acats-2/tests/c4/c41303w.ada
! 98d29cda44e41c5ff7947a4026f5e44c  gcc/testsuite/ada/acats-2/tests/c4/c41304a.ada
! 185701022ded3608ce413730986fd29a  gcc/testsuite/ada/acats-2/tests/c4/c41304b.ada
! f0ef510c95f135851ebafc318405f773  gcc/testsuite/ada/acats-2/tests/c4/c41306a.ada
! 5dd0f98f04759d0b25f9631bb3f052ba  gcc/testsuite/ada/acats-2/tests/c4/c41306b.ada
! 58245b98892f05598c91a37cc2fa0cf7  gcc/testsuite/ada/acats-2/tests/c4/c41306c.ada
! 78cff154ce4ec882d604897c85256a6f  gcc/testsuite/ada/acats-2/tests/c4/c41307d.ada
! e4f57f60d8ab4020fa02081676cd97b1  gcc/testsuite/ada/acats-2/tests/c4/c41309a.ada
! 46615dd040a05118f00cf1a6c269abf8  gcc/testsuite/ada/acats-2/tests/c4/c41320a.ada
! c87207608b642d6c0770b2213faa6f37  gcc/testsuite/ada/acats-2/tests/c4/c41321a.ada
! a2f1c6ef57f73e8afee4331c2f6b8836  gcc/testsuite/ada/acats-2/tests/c4/c41322a.ada
! 5fe80e1ed0d397d7243803f3679b1dcf  gcc/testsuite/ada/acats-2/tests/c4/c41323a.ada
! 1b628d4729417b726825d3cc545cce88  gcc/testsuite/ada/acats-2/tests/c4/c41324a.ada
! 34bb464a9c0edf77ba3cf3f225f84fac  gcc/testsuite/ada/acats-2/tests/c4/c41325a.ada
! 9f472b4f812b18261355bfdb272afaf2  gcc/testsuite/ada/acats-2/tests/c4/c41326a.ada
! c79f530e375e47fc23508a767283386e  gcc/testsuite/ada/acats-2/tests/c4/c41327a.ada
! 9dbb72dcbb910f44662d1091a9dcff76  gcc/testsuite/ada/acats-2/tests/c4/c41328a.ada
! 0449520de7d65d45ed1daf5ca0e4569b  gcc/testsuite/ada/acats-2/tests/c4/c41401a.ada
! 20918a0804a04dce0cbb4d97b451bb81  gcc/testsuite/ada/acats-2/tests/c4/c41402a.ada
! 3d9dc352053f7bb2142de6aadd56af67  gcc/testsuite/ada/acats-2/tests/c4/c41404a.ada
! 3472f5561c379717f19af41f64bf38a3  gcc/testsuite/ada/acats-2/tests/c4/c420001.a
! 837ffbb47c098000329e8e489cfada64  gcc/testsuite/ada/acats-2/tests/c4/c42006a.ada
! 3930cedf9786c67a42558e65e855c7fd  gcc/testsuite/ada/acats-2/tests/c4/c42007e.ada
! fdfa37c01ec576b222ad3107e9e17cd2  gcc/testsuite/ada/acats-2/tests/c4/c43003a.ada
! 42c7528eba63811a5183af811bdf7a65  gcc/testsuite/ada/acats-2/tests/c4/c43004a.ada
! fdfe754e9fba94c879707660c35c89c4  gcc/testsuite/ada/acats-2/tests/c4/c43004c.ada
! d381bf2fc72e35825723db4655f3c38a  gcc/testsuite/ada/acats-2/tests/c4/c431001.a
! 841914115d2e37bfbd84574493c7019f  gcc/testsuite/ada/acats-2/tests/c4/c43103a.ada
! dd65d5f3b06487b888840af62334c5a5  gcc/testsuite/ada/acats-2/tests/c4/c43103b.ada
! 9e71b6045390013211406d2c1bfb4fba  gcc/testsuite/ada/acats-2/tests/c4/c43104a.ada
! 85abcc7f64ed7b42d6fd3f22c7daeb40  gcc/testsuite/ada/acats-2/tests/c4/c43105a.ada
! 4ed22cb91cfe0bda94598dd26ceb9c7c  gcc/testsuite/ada/acats-2/tests/c4/c43105b.ada
! baec9aa149293739f6e8ceac8325d7a0  gcc/testsuite/ada/acats-2/tests/c4/c43106a.ada
! 1d531018ee649629c5a7552829150451  gcc/testsuite/ada/acats-2/tests/c4/c43107a.ada
! 05a638c334196cb191ee5128a5996f23  gcc/testsuite/ada/acats-2/tests/c4/c43108a.ada
! 4ea1f6b615b7799500e7c6933df91e82  gcc/testsuite/ada/acats-2/tests/c4/c432001.a
! 1e73ca84bb526fa8947ec4278f0151ed  gcc/testsuite/ada/acats-2/tests/c4/c432002.a
! 6ec2ee48b603324015bd74c07d8eb9fb  gcc/testsuite/ada/acats-2/tests/c4/c432003.a
! 8e738d9db0574dd56f1158230f5caa4c  gcc/testsuite/ada/acats-2/tests/c4/c432004.a
! ee94ed306c9c2f72d0f353f3242a51db  gcc/testsuite/ada/acats-2/tests/c4/c43204a.ada
! e98c1830d22cb2c31e6c97a0f3d96ad7  gcc/testsuite/ada/acats-2/tests/c4/c43204c.ada
! f0b2f2ebf435459bab0ed10112cc18b6  gcc/testsuite/ada/acats-2/tests/c4/c43204e.ada
! 7e74d89a8654aef2ebf093dc84b24d10  gcc/testsuite/ada/acats-2/tests/c4/c43204f.ada
! b266b1d1eaefa26342ce7e3c0eb10f20  gcc/testsuite/ada/acats-2/tests/c4/c43204g.ada
! 119509db1b0027b3597be4ca5abbb5bb  gcc/testsuite/ada/acats-2/tests/c4/c43204h.ada
! 67b7aebfc7ddaa75b105ec0d3e496a27  gcc/testsuite/ada/acats-2/tests/c4/c43204i.ada
! 73152cdcaa60874a7dd488590fdf9d5c  gcc/testsuite/ada/acats-2/tests/c4/c43205a.ada
! 64f982d0a7b18107f1762424333a65d3  gcc/testsuite/ada/acats-2/tests/c4/c43205b.ada
! ac552917303ade3bcc90b97b15f26e94  gcc/testsuite/ada/acats-2/tests/c4/c43205c.ada
! fb0c33a9daed1c4f2a00c26e9de3c09c  gcc/testsuite/ada/acats-2/tests/c4/c43205d.ada
! d9e706d3db07df4098bbb0e033aed012  gcc/testsuite/ada/acats-2/tests/c4/c43205e.ada
! 4f3634691d02036c149cdd006248ffe1  gcc/testsuite/ada/acats-2/tests/c4/c43205g.ada
! 5c21ffd092ad83125d058e3179c4d1bf  gcc/testsuite/ada/acats-2/tests/c4/c43205h.ada
! bf224ac40af0ffe5b844895ae6ae977a  gcc/testsuite/ada/acats-2/tests/c4/c43205i.ada
! 80a79cdbdb7c8185dcf0428e7589a584  gcc/testsuite/ada/acats-2/tests/c4/c43205j.ada
! 7914df26e752133b470cdb5c585686bc  gcc/testsuite/ada/acats-2/tests/c4/c43205k.ada
! cbadb73b68d71709f2becaa6f356064c  gcc/testsuite/ada/acats-2/tests/c4/c43206a.ada
! 0fc8105e29d6d23a3a7ddd6510322795  gcc/testsuite/ada/acats-2/tests/c4/c43207b.ada
! 97244c88eb0cfebd12378341cddfcf4f  gcc/testsuite/ada/acats-2/tests/c4/c43207d.ada
! f288bdf0f019b0e6deea7f364629093d  gcc/testsuite/ada/acats-2/tests/c4/c43208a.ada
! 70aa5e04e1aa2e8f2ffff319c6cc960a  gcc/testsuite/ada/acats-2/tests/c4/c43208b.ada
! 36f70dc294058acb31101eb9c245937b  gcc/testsuite/ada/acats-2/tests/c4/c43209a.ada
! 31cacbf3a20b821f6eb8f1d74586a51b  gcc/testsuite/ada/acats-2/tests/c4/c43210a.ada
! 54b7270b96a5d5519d2358a1b98bf7af  gcc/testsuite/ada/acats-2/tests/c4/c43211a.ada
! a692660520b9e289a7f0ae27c6d52494  gcc/testsuite/ada/acats-2/tests/c4/c43212a.ada
! c43685e66248fa05c959fb5d231800a7  gcc/testsuite/ada/acats-2/tests/c4/c43212c.ada
! 9427f327bd00f1850a52dc14567dbf4e  gcc/testsuite/ada/acats-2/tests/c4/c43214a.ada
! 2b1a3e33f54f7510083e41b401c3befb  gcc/testsuite/ada/acats-2/tests/c4/c43214b.ada
! 579da18e7294b44fdfc2fb550cccdbf3  gcc/testsuite/ada/acats-2/tests/c4/c43214c.ada
! 506424b9dbd9ff75e61b488ce4a5879e  gcc/testsuite/ada/acats-2/tests/c4/c43214d.ada
! 02fcbb175ddd0a1d8c5564d22bf12428  gcc/testsuite/ada/acats-2/tests/c4/c43214e.ada
! 34cd6d7cf5c8038e227dde683b30b50f  gcc/testsuite/ada/acats-2/tests/c4/c43214f.ada
! ab7bedd7c7899bfe816d9a4b9ac394d4  gcc/testsuite/ada/acats-2/tests/c4/c43215a.ada
! 90e0f447154023e2eab627e883738386  gcc/testsuite/ada/acats-2/tests/c4/c43215b.ada
! f0098152f11a322c39c1479f279dc3d7  gcc/testsuite/ada/acats-2/tests/c4/c43222a.ada
! bf1baa8817f6afb1d613db2046cb78de  gcc/testsuite/ada/acats-2/tests/c4/c43224a.ada
! 1e8e32f41f79462323a2f9d9c83d7939  gcc/testsuite/ada/acats-2/tests/c4/c433001.a
! 196c158a32a4bc1774a4d934b1a6632e  gcc/testsuite/ada/acats-2/tests/c4/c44003d.ada
! bf440c6d6ead3b13b20d4e127607337e  gcc/testsuite/ada/acats-2/tests/c4/c44003f.ada
! 2f9030320131a08536fa11fa1a117664  gcc/testsuite/ada/acats-2/tests/c4/c44003g.ada
! 62ba7a9a25d025dad4ded263e64d8380  gcc/testsuite/ada/acats-2/tests/c4/c450001.a
! b3687aae227c95d084c9f685c9ca4c80  gcc/testsuite/ada/acats-2/tests/c4/c45112a.ada
! c7c3ba0d233fb51ade68d7651dd47189  gcc/testsuite/ada/acats-2/tests/c4/c45112b.ada
! 49306dfa2cb372d1d65b4dd7a47c19e5  gcc/testsuite/ada/acats-2/tests/c4/c45113a.ada
! aa0781fb6f24f86504e59a47cf77b3d6  gcc/testsuite/ada/acats-2/tests/c4/c45114b.ada
! f718c72a25e47da1540690be5ff953da  gcc/testsuite/ada/acats-2/tests/c4/c452001.a
! 20ba3c7cde16d8bed844c4e64cd33e56  gcc/testsuite/ada/acats-2/tests/c4/c45201a.ada
! 6d4a1adb58c6e8ef73b34a324604ede4  gcc/testsuite/ada/acats-2/tests/c4/c45201b.ada
! 72aed4b6ea2fe7dfc0a9fdf3bede3751  gcc/testsuite/ada/acats-2/tests/c4/c45202b.ada
! 84d744855e2972095386f0e272333a6a  gcc/testsuite/ada/acats-2/tests/c4/c45210a.ada
! 91f826ce1d8f6889145f46e4c0ccada9  gcc/testsuite/ada/acats-2/tests/c4/c45211a.ada
! fe9117190ab93e4bd66b4015bb5cdba1  gcc/testsuite/ada/acats-2/tests/c4/c45220a.ada
! 6912810853452af0c8935cfd387c8df5  gcc/testsuite/ada/acats-2/tests/c4/c45220b.ada
! b394f131a9012e7c03cfd9636d737e6d  gcc/testsuite/ada/acats-2/tests/c4/c45220c.ada
! ccf331c469a0927819e1eb56e4e00429  gcc/testsuite/ada/acats-2/tests/c4/c45220d.ada
! 88d3a9ace4677cd3c025906371d2beeb  gcc/testsuite/ada/acats-2/tests/c4/c45220e.ada
! bba84a4055dd7c551f067e52bbe462e1  gcc/testsuite/ada/acats-2/tests/c4/c45220f.ada
! c13eaf9a516abfe2b6beda77dc2e3911  gcc/testsuite/ada/acats-2/tests/c4/c45231a.ada
! 2cca7d5fea02ce521f28a33db34ffa3d  gcc/testsuite/ada/acats-2/tests/c4/c45231b.dep
! 1bee766d69082269378c86e19c8abe85  gcc/testsuite/ada/acats-2/tests/c4/c45231c.dep
! a1bdfcd8a7def7dd624d3536e8905d30  gcc/testsuite/ada/acats-2/tests/c4/c45231d.tst
! 911d91bbd63a8c74f621846268c3e576  gcc/testsuite/ada/acats-2/tests/c4/c45232b.ada
! 4de95534392888683c8404eeeed6cc46  gcc/testsuite/ada/acats-2/tests/c4/c45242b.ada
! f2b98c822abe0cd6885e5b49561ac387  gcc/testsuite/ada/acats-2/tests/c4/c45251a.ada
! 94a924601ada615360bec26fb5450efb  gcc/testsuite/ada/acats-2/tests/c4/c45252a.ada
! debd13ddcb22bdcbb8a02c69693b66f8  gcc/testsuite/ada/acats-2/tests/c4/c45252b.ada
! ac031704393af45bbba41661aa36f2aa  gcc/testsuite/ada/acats-2/tests/c4/c45253a.ada
! fc9f55680d3672e261c2346c11b8ac30  gcc/testsuite/ada/acats-2/tests/c4/c45262a.ada
! c4104ba41f3003933d2540d2f946ba70  gcc/testsuite/ada/acats-2/tests/c4/c45262b.ada
! 8b9cb8019cc36523ada4859ea4a5d16a  gcc/testsuite/ada/acats-2/tests/c4/c45262c.ada
! d03448ead4d0effaab3998536c97bf20  gcc/testsuite/ada/acats-2/tests/c4/c45262d.ada
! f5c2479fb34a68704e8a8cc34f61a360  gcc/testsuite/ada/acats-2/tests/c4/c45264a.ada
! b5849bcd08a3c2d9a5d0c2b9e7a3cddd  gcc/testsuite/ada/acats-2/tests/c4/c45264b.ada
! 8f21912f6834298744357d557cb137f0  gcc/testsuite/ada/acats-2/tests/c4/c45264c.ada
! adc3cff25d9a3d6a8177af01212d7415  gcc/testsuite/ada/acats-2/tests/c4/c45265a.ada
! c4c6e9f92d1c15ec8a4b8f04c34a693f  gcc/testsuite/ada/acats-2/tests/c4/c45271a.ada
! c72a97f0fec20bbb08fc4517b6ddc788  gcc/testsuite/ada/acats-2/tests/c4/c45272a.ada
! 6b2a1a4bc714bd568da120c02fbf1702  gcc/testsuite/ada/acats-2/tests/c4/c45273a.ada
! b79ca71dc3632b190bdef98c6e0d142b  gcc/testsuite/ada/acats-2/tests/c4/c45274a.ada
! 9855409d4983ad2c1546e338fcbd0706  gcc/testsuite/ada/acats-2/tests/c4/c45274b.ada
! 435926faf09e9e479e1b1f272c13a333  gcc/testsuite/ada/acats-2/tests/c4/c45274c.ada
! 9115b9a51b29cec2f4c9ff1428f5a615  gcc/testsuite/ada/acats-2/tests/c4/c45281a.ada
! ecfe4965aad0d9bc1dc0dea01acceae3  gcc/testsuite/ada/acats-2/tests/c4/c45282a.ada
! 52a7cd2f9612b968a81d14f925d96de2  gcc/testsuite/ada/acats-2/tests/c4/c45282b.ada
! b3bd1b305af20f17ece9aabad0feaef1  gcc/testsuite/ada/acats-2/tests/c4/c45291a.ada
! c8d3cf99b5249db2c22ec520cb247e14  gcc/testsuite/ada/acats-2/tests/c4/c453001.a
! eaeb6ce37e830b736db8d34c6a83bb7d  gcc/testsuite/ada/acats-2/tests/c4/c45303a.ada
! f1ec15c9cdb65dbf13e1375cf7996f12  gcc/testsuite/ada/acats-2/tests/c4/c45304a.ada
! 55a19685b3e235e5bb6750cb9d7df962  gcc/testsuite/ada/acats-2/tests/c4/c45304b.dep
! b4c45f68d1219b0b994968a9828a7b17  gcc/testsuite/ada/acats-2/tests/c4/c45304c.dep
! 20fb36abf27afac504d4a771e7e63fd0  gcc/testsuite/ada/acats-2/tests/c4/c45322a.ada
! fab8bce97e1b74f5541c43ebbc38c44b  gcc/testsuite/ada/acats-2/tests/c4/c45323a.ada
! 0f09ca069bcacb950f308b51658fe4cf  gcc/testsuite/ada/acats-2/tests/c4/c45331a.ada
! 923c0cd8bc5f7a54a3ff10b7ecd3ae30  gcc/testsuite/ada/acats-2/tests/c4/c45342a.ada
! 4c687d4debfb2858cbde8d0598741375  gcc/testsuite/ada/acats-2/tests/c4/c45343a.ada
! fced8cf133a6e38c1bd3f44b383050a5  gcc/testsuite/ada/acats-2/tests/c4/c45344a.ada
! 046bf7cdbb7aeb33cdf0c17abb97726b  gcc/testsuite/ada/acats-2/tests/c4/c45345b.ada
! 1b975a926de8c5e1c1a8fd844dbfa809  gcc/testsuite/ada/acats-2/tests/c4/c45347a.ada
! 5c3a11fd88252878ac174be55d9cbe23  gcc/testsuite/ada/acats-2/tests/c4/c45347b.ada
! e7b0eaf3fab48f0c61a33030a45c9625  gcc/testsuite/ada/acats-2/tests/c4/c45347c.ada
! 5862189030beeea86b9e0d08e37c5f1a  gcc/testsuite/ada/acats-2/tests/c4/c45347d.ada
! 5a4ad439614a0b55cdeae637fcef3913  gcc/testsuite/ada/acats-2/tests/c4/c45411a.ada
! b55c932d505fe19faf48b3854f91bf92  gcc/testsuite/ada/acats-2/tests/c4/c45411b.dep
! cc45fca3dbdc169c3f8a8d219a8f3885  gcc/testsuite/ada/acats-2/tests/c4/c45411c.dep
! 92372898586e4be4330d20dabffa9b47  gcc/testsuite/ada/acats-2/tests/c4/c45411d.ada
! fdb465fedee3ebd743401e0c8899b0ce  gcc/testsuite/ada/acats-2/tests/c4/c45413a.ada
! fbd34bfae4961dda3c3e39ae18565fc8  gcc/testsuite/ada/acats-2/tests/c4/c45431a.ada
! bda2b940e9dc2584f9295b05e0c20b0f  gcc/testsuite/ada/acats-2/tests/c4/c455001.a
! 87ea1f3d7a54b6c25dba44fd5a571baa  gcc/testsuite/ada/acats-2/tests/c4/c45502b.dep
! 5a774d039f16514bc6a77bcf387d50ec  gcc/testsuite/ada/acats-2/tests/c4/c45502c.dep
! cc87ae3a223cabfed863304f12752609  gcc/testsuite/ada/acats-2/tests/c4/c45503a.ada
! dcadc5c668c2ff77de523cb7dba5b36a  gcc/testsuite/ada/acats-2/tests/c4/c45503b.dep
! 611398c2ae165df5a3f7381f660f52a0  gcc/testsuite/ada/acats-2/tests/c4/c45503c.dep
! f89268db15e37b030991c3827ca26c3e  gcc/testsuite/ada/acats-2/tests/c4/c45504a.ada
! f0cdb8c22aab2695a23fd98a373755b2  gcc/testsuite/ada/acats-2/tests/c4/c45504b.dep
! b8b4e008dfce1ee201519835a1fa50b8  gcc/testsuite/ada/acats-2/tests/c4/c45504c.dep
! ce29dbe3d5204283efb96dbcdfd5aac5  gcc/testsuite/ada/acats-2/tests/c4/c45504d.ada
! 10c91d5e233ba13218dcd66fb790a7be  gcc/testsuite/ada/acats-2/tests/c4/c45504e.dep
! 92f6aea3aed6ba9df5385c22f904ba43  gcc/testsuite/ada/acats-2/tests/c4/c45504f.dep
! 0059f05c198e829fac48965c13f56c08  gcc/testsuite/ada/acats-2/tests/c4/c45505a.ada
! 47a4e48ddd2b3df3c7eb949e7d6692a8  gcc/testsuite/ada/acats-2/tests/c4/c45523a.ada
! 17fdb2a59175aad9fef05c8cab8509e5  gcc/testsuite/ada/acats-2/tests/c4/c45531a.ada
! b8d549a63a2c40e579c8ed0a817ba1b3  gcc/testsuite/ada/acats-2/tests/c4/c45531b.ada
! c131684e4763854670c42c2112418109  gcc/testsuite/ada/acats-2/tests/c4/c45531c.ada
! c584d6f3f281816f1bd157cd8cc6b33a  gcc/testsuite/ada/acats-2/tests/c4/c45531d.ada
! 29ba7e7c1042d7979b1c75938b61e862  gcc/testsuite/ada/acats-2/tests/c4/c45531e.ada
! 47ea14530564cd8e06520e03e074efb3  gcc/testsuite/ada/acats-2/tests/c4/c45531f.ada
! 974ec868d7bcf66f2a14b7a4e70541b0  gcc/testsuite/ada/acats-2/tests/c4/c45531g.ada
! be8ef1a126f5c01246a9b635558e69ed  gcc/testsuite/ada/acats-2/tests/c4/c45531h.ada
! a795638c4621469321aa1212fd6bc01b  gcc/testsuite/ada/acats-2/tests/c4/c45531i.ada
! 8e8dbc1f05d26be72eaaaaca136d57b8  gcc/testsuite/ada/acats-2/tests/c4/c45531j.ada
! f7420a86d16f0dda550ad66d998500fa  gcc/testsuite/ada/acats-2/tests/c4/c45531k.ada
! de637dfbdf31186f46f1f622a7b31d52  gcc/testsuite/ada/acats-2/tests/c4/c45531l.ada
! 991294aff87680d765e6feb5cca5b1b5  gcc/testsuite/ada/acats-2/tests/c4/c45531m.dep
! 0494b2e93ef765b57a27be6b00246238  gcc/testsuite/ada/acats-2/tests/c4/c45531n.dep
! be4ab72a6216470b4aa0865525f98461  gcc/testsuite/ada/acats-2/tests/c4/c45531o.dep
! bb7d5366acda158c30e39d3074242262  gcc/testsuite/ada/acats-2/tests/c4/c45531p.dep
! 1328509e95f292ea980a979dedb08b47  gcc/testsuite/ada/acats-2/tests/c4/c45532a.ada
! 59f6ce63685d98c434d1a7af9b67d1f3  gcc/testsuite/ada/acats-2/tests/c4/c45532b.ada
! fe5a8b5f9204d89a9d208c19a93b7bbf  gcc/testsuite/ada/acats-2/tests/c4/c45532c.ada
! b60deea143add2ece22c54e2958db126  gcc/testsuite/ada/acats-2/tests/c4/c45532d.ada
! dac58571992e1d76d98508be3cbe2bd6  gcc/testsuite/ada/acats-2/tests/c4/c45532e.ada
! 1d7df94c7041a350156a66e67466f094  gcc/testsuite/ada/acats-2/tests/c4/c45532f.ada
! 98b8e00c4f5a9bb275a8ea343272d444  gcc/testsuite/ada/acats-2/tests/c4/c45532g.ada
! 715b35f0ab3ff72859527fd1dce01194  gcc/testsuite/ada/acats-2/tests/c4/c45532h.ada
! 6f5e0c33dee8484fe564f99b4aa53644  gcc/testsuite/ada/acats-2/tests/c4/c45532i.ada
! 4ff1755309ac898b71b5b8e71ed4a3b6  gcc/testsuite/ada/acats-2/tests/c4/c45532j.ada
! 6c58481cb99358f459163a20d20ecd7c  gcc/testsuite/ada/acats-2/tests/c4/c45532k.ada
! c77d0519f01191df9cdfba659466ec04  gcc/testsuite/ada/acats-2/tests/c4/c45532l.ada
! d2858511889a915c130e7db15a855e6a  gcc/testsuite/ada/acats-2/tests/c4/c45532m.dep
! a549269ed45783ccf0d0c93c5328f429  gcc/testsuite/ada/acats-2/tests/c4/c45532n.dep
! f4b1217bc94832f638629b8949b7def2  gcc/testsuite/ada/acats-2/tests/c4/c45532o.dep
! 798f26e21ededa5b524a77eeece6382f  gcc/testsuite/ada/acats-2/tests/c4/c45532p.dep
! 76101d98b4fab21c843f8c72a2bd9d19  gcc/testsuite/ada/acats-2/tests/c4/c45534b.ada
! b8ae84ef022a3c5728e841755e4bac5e  gcc/testsuite/ada/acats-2/tests/c4/c45536a.dep
! 28591d736802ebfac3f139de9f8cf2e7  gcc/testsuite/ada/acats-2/tests/c4/c456001.a
! bc49b87b69b7e8faefa883dc0c55fb68  gcc/testsuite/ada/acats-2/tests/c4/c45611a.ada
! 3be40e2b85d211f880f0c3afd51a63e8  gcc/testsuite/ada/acats-2/tests/c4/c45611b.dep
! 969e8cbd817e50baf599dd80133f7e3d  gcc/testsuite/ada/acats-2/tests/c4/c45611c.dep
! 48d114a182e767e243d7ef95e93e4e19  gcc/testsuite/ada/acats-2/tests/c4/c45613a.ada
! c3d80667bb998de0b21993ea73edabec  gcc/testsuite/ada/acats-2/tests/c4/c45613b.dep
! f8ed3027af651e8a9c09b39c0abf883c  gcc/testsuite/ada/acats-2/tests/c4/c45613c.dep
! cfe72bc879be3b00ef382558884d4b1d  gcc/testsuite/ada/acats-2/tests/c4/c45614a.ada
! c49e020a85a8868eed26fc38aaab04bf  gcc/testsuite/ada/acats-2/tests/c4/c45614b.dep
! 41f7a3468254617c1e8fd2e5932a25b4  gcc/testsuite/ada/acats-2/tests/c4/c45614c.dep
! ac5d52f05c31abf886e8c8c4468e3276  gcc/testsuite/ada/acats-2/tests/c4/c45631a.ada
! 08c1f1a469e3e9753825625f1a28b1ea  gcc/testsuite/ada/acats-2/tests/c4/c45631b.dep
! 3d90d62c311cc7457e997be47d4bc90b  gcc/testsuite/ada/acats-2/tests/c4/c45631c.dep
! 2f244bf1111e453d24ff570db3165fdb  gcc/testsuite/ada/acats-2/tests/c4/c45632a.ada
! 3e3d1f108ceb3c5be9dad7868239132f  gcc/testsuite/ada/acats-2/tests/c4/c45632b.dep
! d562e6283ca6c800b69581c080526e08  gcc/testsuite/ada/acats-2/tests/c4/c45632c.dep
! 2057dc7ea5393bc4be1493fb108ee5fb  gcc/testsuite/ada/acats-2/tests/c4/c45651a.ada
! c6892aa7717ffbd54f697e3d5db788af  gcc/testsuite/ada/acats-2/tests/c4/c45662a.ada
! a04b5f03883d1f148e66d75bb8eb5a69  gcc/testsuite/ada/acats-2/tests/c4/c45662b.ada
! ebd6cdab4f3e678623c2ece9ee770d5e  gcc/testsuite/ada/acats-2/tests/c4/c45672a.ada
! ac5adcf11bac18511d0fcfabda779d68  gcc/testsuite/ada/acats-2/tests/c4/c460001.a
! afb5f92407f4912f75eeaef16084757f  gcc/testsuite/ada/acats-2/tests/c4/c460002.a
! 69401711fe089c368e9218ac971b8e5a  gcc/testsuite/ada/acats-2/tests/c4/c460004.a
! f7f9cde65ac6273493f88f7cc35065c2  gcc/testsuite/ada/acats-2/tests/c4/c460005.a
! e0ce32e221b728a5e7cbef5d66bdb49b  gcc/testsuite/ada/acats-2/tests/c4/c460006.a
! ec69fdc3a65a761d8134bc49e6570216  gcc/testsuite/ada/acats-2/tests/c4/c460007.a
! 8b03807b80d9f2edc57ad06734bf670f  gcc/testsuite/ada/acats-2/tests/c4/c460008.a
! 6950bb628b3003b1ceb3b53e6cf246f8  gcc/testsuite/ada/acats-2/tests/c4/c460009.a
! 5bc44a3344b33409dd851c6b03e885b7  gcc/testsuite/ada/acats-2/tests/c4/c460010.a
! f62a801d63af2b71a0b6fc1ab47ef7e7  gcc/testsuite/ada/acats-2/tests/c4/c460011.a
! a2898cc40c52d07d2a1d5f39c8daae42  gcc/testsuite/ada/acats-2/tests/c4/c460012.a
! 41b9bdba491afbeb94cec249b368498b  gcc/testsuite/ada/acats-2/tests/c4/c460013.a
! 8caad81fc1b11cdf36c43c5366ffe8c4  gcc/testsuite/ada/acats-2/tests/c4/c460014.a
! 4578ba3cbcc42767bfa1d9fb8beed52f  gcc/testsuite/ada/acats-2/tests/c4/c46011a.ada
! 573e5b85d6d0d9289787bcf7f265aea9  gcc/testsuite/ada/acats-2/tests/c4/c46013a.ada
! ad32d1cce692c7cd1ef8bf3d2f70dee2  gcc/testsuite/ada/acats-2/tests/c4/c46014a.ada
! 3860375240c7fbeec5ea607c60613d17  gcc/testsuite/ada/acats-2/tests/c4/c46021a.ada
! 6ca67808bea0b36f928ece90dac5570f  gcc/testsuite/ada/acats-2/tests/c4/c46024a.ada
! 846bd637f5220b864dde4f2ea9ac8025  gcc/testsuite/ada/acats-2/tests/c4/c46031a.ada
! 362f593ed41bfc3cc23925318952cbc7  gcc/testsuite/ada/acats-2/tests/c4/c46032a.ada
! 65b59a01caacc42c4057aa1adad39e9c  gcc/testsuite/ada/acats-2/tests/c4/c46033a.ada
! bc9fedd5661dbda9254ef00f93819e37  gcc/testsuite/ada/acats-2/tests/c4/c46041a.ada
! dd2bc24443f9516af6adaf665228f9fb  gcc/testsuite/ada/acats-2/tests/c4/c46042a.ada
! cc5cd66068669bee0635ba7d5d5b9e4b  gcc/testsuite/ada/acats-2/tests/c4/c46043b.ada
! 862e92acebb016f9eaff87800084fb00  gcc/testsuite/ada/acats-2/tests/c4/c46044b.ada
! 8704bc96d1d99d958dd9ba580cc0fcab  gcc/testsuite/ada/acats-2/tests/c4/c46051a.ada
! 4301c097675c9ae1e1de85cb434e9f91  gcc/testsuite/ada/acats-2/tests/c4/c46051b.ada
! 0852a062d8fb5318db0fafb3e74e1869  gcc/testsuite/ada/acats-2/tests/c4/c46051c.ada
! 207b83887faae118af7863a8e7c8b797  gcc/testsuite/ada/acats-2/tests/c4/c46052a.ada
! 36ddef6a40e98fa6f687083359dcc79c  gcc/testsuite/ada/acats-2/tests/c4/c46053a.ada
! 7c918ea610224feb8290e7538e4931c0  gcc/testsuite/ada/acats-2/tests/c4/c46054a.ada
! dcaaa25c241dbab83f2031ac8a166ad0  gcc/testsuite/ada/acats-2/tests/c4/c460a01.a
! c9d756313dbe8edba8cd79f261be675b  gcc/testsuite/ada/acats-2/tests/c4/c460a02.a
! 8453f66003fadf1256272c8267ac59fe  gcc/testsuite/ada/acats-2/tests/c4/c47002a.ada
! a1a15e98aa414e9e0f6c684cc5fc7d3d  gcc/testsuite/ada/acats-2/tests/c4/c47002b.ada
! 52b6ce3f1ece2252097d9cf94ff704d8  gcc/testsuite/ada/acats-2/tests/c4/c47002c.ada
! 1b3f120455d714443fa2b8a6510141b3  gcc/testsuite/ada/acats-2/tests/c4/c47002d.ada
! e24d41d29f205af082effc4960aabff2  gcc/testsuite/ada/acats-2/tests/c4/c47003a.ada
! 676bb791325a2ce2931c822d1ba079e8  gcc/testsuite/ada/acats-2/tests/c4/c47004a.ada
! 5768cda2bc4788bb66c01ffbbe818333  gcc/testsuite/ada/acats-2/tests/c4/c47005a.ada
! 7180522de8601bc47eada08923197c21  gcc/testsuite/ada/acats-2/tests/c4/c47006a.ada
! 0866501ce0f4c5ac19a1a6701494acf1  gcc/testsuite/ada/acats-2/tests/c4/c47007a.ada
! f190b1e58c5b9f88edb7c62cc786a5ff  gcc/testsuite/ada/acats-2/tests/c4/c47008a.ada
! a83ffa688fac3d8d28808297d6c1f8af  gcc/testsuite/ada/acats-2/tests/c4/c47009a.ada
! 7e410443d7fee4c5025000324c9fa075  gcc/testsuite/ada/acats-2/tests/c4/c47009b.ada
! bc1787b8c3d0a2828cd39079641a7ae3  gcc/testsuite/ada/acats-2/tests/c4/c48004a.ada
! 35a79d509102b6efc374a823e03081dd  gcc/testsuite/ada/acats-2/tests/c4/c48004b.ada
! 520b577b8b19f3e983fa89ee6a4feae4  gcc/testsuite/ada/acats-2/tests/c4/c48004c.ada
! 4a4dc141e6c0b8734f2f4889a453c041  gcc/testsuite/ada/acats-2/tests/c4/c48004d.ada
! e1de901127f9fa068bbc1887e40ae286  gcc/testsuite/ada/acats-2/tests/c4/c48004e.ada
! a21a603107226dd95249e796c50b2988  gcc/testsuite/ada/acats-2/tests/c4/c48004f.ada
! d05127b0bccfaca8e70b371616b9e949  gcc/testsuite/ada/acats-2/tests/c4/c48005a.ada
! 93f4d6e87a4f9f685f9aad61502c858c  gcc/testsuite/ada/acats-2/tests/c4/c48005b.ada
! 794d0af908f9931f0b089116f1e42907  gcc/testsuite/ada/acats-2/tests/c4/c48006a.ada
! 3df923c9af6683c1bb48881ddb41ddfb  gcc/testsuite/ada/acats-2/tests/c4/c48006b.ada
! a6c0f722acc9486a7e600dc96ff2d5cd  gcc/testsuite/ada/acats-2/tests/c4/c48007a.ada
! b2751238701befe768d059585cb34fbe  gcc/testsuite/ada/acats-2/tests/c4/c48007b.ada
! a069ec763e24859fbddc4f107e410c11  gcc/testsuite/ada/acats-2/tests/c4/c48007c.ada
! 009ebc3b69f9c31aa88c54a85271399a  gcc/testsuite/ada/acats-2/tests/c4/c48008a.ada
! 5782d3eeb5e00949ec2f3c7a7ae59650  gcc/testsuite/ada/acats-2/tests/c4/c48008c.ada
! 36b2b00fc2eaa55063b74bfc4cb91c79  gcc/testsuite/ada/acats-2/tests/c4/c48009a.ada
! d7356de4b25053ff97c5d99c7daa90a2  gcc/testsuite/ada/acats-2/tests/c4/c48009b.ada
! 46e9f0e1b269b6b499944395221ae145  gcc/testsuite/ada/acats-2/tests/c4/c48009c.ada
! 99e82e54208e5f2e641da892789ade00  gcc/testsuite/ada/acats-2/tests/c4/c48009d.ada
! a4dd405fd63b81dac153b62e7df858e9  gcc/testsuite/ada/acats-2/tests/c4/c48009e.ada
! a761ea12752cc1827d795f510ed14854  gcc/testsuite/ada/acats-2/tests/c4/c48009f.ada
! f4d13322456cdc5177a9641ba263e997  gcc/testsuite/ada/acats-2/tests/c4/c48009g.ada
! 9b3d09b25afb28f96e9c15abc9134ea5  gcc/testsuite/ada/acats-2/tests/c4/c48009h.ada
! 5ed239b238e9da030fa1d1bbf81e4dc3  gcc/testsuite/ada/acats-2/tests/c4/c48009i.ada
! dbe1181c1fb1c91cdfc5d5a51327b289  gcc/testsuite/ada/acats-2/tests/c4/c48009j.ada
! 688a1e8190cac3b78936f0235d3b808d  gcc/testsuite/ada/acats-2/tests/c4/c48010a.ada
! 48a6ec9afe098c7d148a0d1f652be09e  gcc/testsuite/ada/acats-2/tests/c4/c48011a.ada
! 18db6e638dc720b6501696a26aa99e58  gcc/testsuite/ada/acats-2/tests/c4/c48012a.ada
! b30035b53424a29691b261dda34fc58e  gcc/testsuite/ada/acats-2/tests/c4/c490001.a
! 489ea02e3356b5145fb51c63bb474ea5  gcc/testsuite/ada/acats-2/tests/c4/c490002.a
! c9523cc2889cfcde83e23c042eedd694  gcc/testsuite/ada/acats-2/tests/c4/c490003.a
! 6f98fb5a40e92d1a16d6c2a144d613a5  gcc/testsuite/ada/acats-2/tests/c4/c49020a.ada
! 949b858aea6369cc5f6b92e57a36762e  gcc/testsuite/ada/acats-2/tests/c4/c49021a.ada
! 61eb9a59008479c0875739f8a38a6058  gcc/testsuite/ada/acats-2/tests/c4/c49022a.ada
! 371d9a00cb41f67a40d255081149947a  gcc/testsuite/ada/acats-2/tests/c4/c49022b.ada
! 6cbf71a7cecd0227501309baf6e99545  gcc/testsuite/ada/acats-2/tests/c4/c49022c.ada
! ae09e5339a3f4903f8fa5d11de07d714  gcc/testsuite/ada/acats-2/tests/c4/c49023a.ada
! e2d3c0d182fcc8306bf82e940cacf1c0  gcc/testsuite/ada/acats-2/tests/c4/c49024a.ada
! fa1107ef6dfef6a91126632e0fd40ac9  gcc/testsuite/ada/acats-2/tests/c4/c49025a.ada
! 8308838bc1d5d9801f0aba7872873b2e  gcc/testsuite/ada/acats-2/tests/c4/c49026a.ada
! 67dd3195321fffe06e278c7a2dd46fb7  gcc/testsuite/ada/acats-2/tests/c4/c4a005b.ada
! b4f6152a06508643187aed55fe1b066d  gcc/testsuite/ada/acats-2/tests/c4/c4a006a.ada
! 5eddb402835a4195abec99f2970765f6  gcc/testsuite/ada/acats-2/tests/c4/c4a007a.tst
! 1c61fe192df4f7bf89c81bd93f979629  gcc/testsuite/ada/acats-2/tests/c4/c4a010a.ada
! db5b09d1af5f03cbfc83813c6cef98d9  gcc/testsuite/ada/acats-2/tests/c4/c4a010b.ada
! 8ea93dd812f5645ad034052c5e9c14bc  gcc/testsuite/ada/acats-2/tests/c4/c4a011a.ada
! d8a1f20f1b4a1339f232102f757a12c6  gcc/testsuite/ada/acats-2/tests/c4/c4a012b.ada
! df1956d8e1bdb8b421d8edda86514e73  gcc/testsuite/ada/acats-2/tests/c4/c4a013a.ada
! f95cf7fe1c6669b86824c685ca90c44f  gcc/testsuite/ada/acats-2/tests/c4/c4a014a.ada
! 04305b71fc4860700405904b070a802b  gcc/testsuite/ada/acats-2/tests/c5/c51004a.ada
! c6f0f59f33111f1bb049c5f25022c725  gcc/testsuite/ada/acats-2/tests/c5/c52005a.ada
! 4497fa9cc187eebee09f422eb12067f6  gcc/testsuite/ada/acats-2/tests/c5/c52005b.ada
! 31714495e63b10120b8239b0456549ee  gcc/testsuite/ada/acats-2/tests/c5/c52005c.ada
! c643f87a63f83ab7dedfa0b4647174c9  gcc/testsuite/ada/acats-2/tests/c5/c52005d.ada
! a717ed0d0e4578d9b1ba1e84a1312d88  gcc/testsuite/ada/acats-2/tests/c5/c52005e.ada
! e9e335b018c1995e8f516236efc80a20  gcc/testsuite/ada/acats-2/tests/c5/c52005f.ada
! c475aae75de9114facd3aaa775556697  gcc/testsuite/ada/acats-2/tests/c5/c52008a.ada
! 87cbbe1931b5cfdb29756f338e098ee1  gcc/testsuite/ada/acats-2/tests/c5/c52008b.ada
! 67bb5622435b51d6b7a862890b654771  gcc/testsuite/ada/acats-2/tests/c5/c52009a.ada
! 400c804c17dce5b2cbc92e00f53bdbf7  gcc/testsuite/ada/acats-2/tests/c5/c52009b.ada
! d656f6cd000039c412836d5baacbff52  gcc/testsuite/ada/acats-2/tests/c5/c52010a.ada
! 1f26091c9bf683f6970689d5d0980a81  gcc/testsuite/ada/acats-2/tests/c5/c52011a.ada
! bd17088998a5ebb4a8a3f1ae8ed0fb56  gcc/testsuite/ada/acats-2/tests/c5/c52011b.ada
! 497212d2daf8375937c749ee7ebcc2df  gcc/testsuite/ada/acats-2/tests/c5/c52101a.ada
! d79452ecad6774f7462778af7f7ce5eb  gcc/testsuite/ada/acats-2/tests/c5/c52102a.ada
! c3ffbc3a8172219b7b11be58eb4ee73d  gcc/testsuite/ada/acats-2/tests/c5/c52102b.ada
! d8b031579b48e0bae598c821fc7f2799  gcc/testsuite/ada/acats-2/tests/c5/c52102c.ada
! 8545078e881db7a6a84e41583799ee5d  gcc/testsuite/ada/acats-2/tests/c5/c52102d.ada
! 348fad1e9e6e04b677fd7d942e3416af  gcc/testsuite/ada/acats-2/tests/c5/c52103a.ada
! 537e555773a4e758b8466c079c2023a1  gcc/testsuite/ada/acats-2/tests/c5/c52103b.ada
! c118c8520f99ad57e36a1e1ed0ab2549  gcc/testsuite/ada/acats-2/tests/c5/c52103c.ada
! 161ca114e3549ca32b6abc801f74633d  gcc/testsuite/ada/acats-2/tests/c5/c52103f.ada
! 553aa64efc629783fc32ef6b352ae6be  gcc/testsuite/ada/acats-2/tests/c5/c52103g.ada
! 29498cb969386c5b69bd6ba62c7be406  gcc/testsuite/ada/acats-2/tests/c5/c52103h.ada
! 8026673b1e67673c009f39e569ae1a3e  gcc/testsuite/ada/acats-2/tests/c5/c52103k.ada
! c6b31cf4833909c9d4dae839511863ec  gcc/testsuite/ada/acats-2/tests/c5/c52103l.ada
! 6843840acb3dee1ae11cf9365156daaa  gcc/testsuite/ada/acats-2/tests/c5/c52103m.ada
! 70a2f3db7206a779a035e915788f37f0  gcc/testsuite/ada/acats-2/tests/c5/c52103p.ada
! a28a2bdec6b574435427b9aeb1c74945  gcc/testsuite/ada/acats-2/tests/c5/c52103q.ada
! 7b9ecdaf00c3655bb24701195d08a83f  gcc/testsuite/ada/acats-2/tests/c5/c52103r.ada
! 0c814953f2bf8472a62eb44838f04363  gcc/testsuite/ada/acats-2/tests/c5/c52103x.ada
! e772fcfb1386e00244d4b143524cc196  gcc/testsuite/ada/acats-2/tests/c5/c52104a.ada
! 16ef5ba633cf0703eef0f4bc4e6a931e  gcc/testsuite/ada/acats-2/tests/c5/c52104b.ada
! 0d83ec342af202df515bd811d311775e  gcc/testsuite/ada/acats-2/tests/c5/c52104c.ada
! 63ba1297346e75dcba0a5bebb9fd7feb  gcc/testsuite/ada/acats-2/tests/c5/c52104f.ada
! 360c84a7d7a20d6426f39f47175e9e61  gcc/testsuite/ada/acats-2/tests/c5/c52104g.ada
! 8c2507e3ca68c72c1b2e6d6e118ec32b  gcc/testsuite/ada/acats-2/tests/c5/c52104h.ada
! 3eb7315199feb380e4633e0fa784d0dc  gcc/testsuite/ada/acats-2/tests/c5/c52104k.ada
! 1e9c8d887474d4edd8e8cef2ca34972f  gcc/testsuite/ada/acats-2/tests/c5/c52104l.ada
! 4cd7ce90121345b41e548625afd89238  gcc/testsuite/ada/acats-2/tests/c5/c52104m.ada
! bb14b1ee179559762fe853803c6f47a0  gcc/testsuite/ada/acats-2/tests/c5/c52104p.ada
! 11c63d2f8a8f5be641d543c723d95db6  gcc/testsuite/ada/acats-2/tests/c5/c52104q.ada
! 3e89a5e299b2f10a8bfdddda7e51ad94  gcc/testsuite/ada/acats-2/tests/c5/c52104r.ada
! cf3c9c7c07a47d92020285624997c09f  gcc/testsuite/ada/acats-2/tests/c5/c52104x.ada
! c937dcfea0e38e6a3b8af09de0efaf04  gcc/testsuite/ada/acats-2/tests/c5/c52104y.ada
! b2aa45debad3d8e7603216de3bca00fb  gcc/testsuite/ada/acats-2/tests/c5/c53007a.ada
! ff458115437146bc66c6f7135942dc7d  gcc/testsuite/ada/acats-2/tests/c5/c540001.a
! 798fc3cdc6929204af5e109c7b552b96  gcc/testsuite/ada/acats-2/tests/c5/c54a03a.ada
! 350e6e9e9f439b08c9984e18a29b6144  gcc/testsuite/ada/acats-2/tests/c5/c54a04a.ada
! 672e5fee1b44c051e35bd39f7cfdd7f6  gcc/testsuite/ada/acats-2/tests/c5/c54a07a.ada
! 55636ae11b1e87d2920da673ac54f8cf  gcc/testsuite/ada/acats-2/tests/c5/c54a13a.ada
! fadaa20972179cfa78055a5255aaf701  gcc/testsuite/ada/acats-2/tests/c5/c54a13b.ada
! 1f2ca9fde851497809ddf860f08ea8dd  gcc/testsuite/ada/acats-2/tests/c5/c54a13c.ada
! f02b8333b09eadfe396595d861e0c28e  gcc/testsuite/ada/acats-2/tests/c5/c54a13d.ada
! 37f2526490642267865f8a817c455655  gcc/testsuite/ada/acats-2/tests/c5/c54a22a.ada
! c4b7807f9faa1bb76d79507d98a0feb3  gcc/testsuite/ada/acats-2/tests/c5/c54a23a.ada
! 45d1b598e30b318d11d3cfa6a37cc6fa  gcc/testsuite/ada/acats-2/tests/c5/c54a24a.ada
! adeadf039e14eb8bc2b48ff5572bd812  gcc/testsuite/ada/acats-2/tests/c5/c54a24b.ada
! 7cf7b4d54a6bca23e102d02570e8d836  gcc/testsuite/ada/acats-2/tests/c5/c54a42a.ada
! 200024964c0cd6807dda9226ae982125  gcc/testsuite/ada/acats-2/tests/c5/c54a42b.ada
! b58d58ea8c08f008f3bb0a1f4e37600d  gcc/testsuite/ada/acats-2/tests/c5/c54a42c.ada
! 7afca27633e115e11ccc09450181d955  gcc/testsuite/ada/acats-2/tests/c5/c54a42d.ada
! 810d89d05b84beb31789b0ebd7aba86d  gcc/testsuite/ada/acats-2/tests/c5/c54a42e.ada
! 012f75628d8e37cbd1be10f8f4ba117f  gcc/testsuite/ada/acats-2/tests/c5/c54a42f.ada
! d45cbd6907b0f421c6aec9b981f052d6  gcc/testsuite/ada/acats-2/tests/c5/c54a42g.ada
! ef97a2623a512e16e0fda04f277b6ff2  gcc/testsuite/ada/acats-2/tests/c5/c55b03a.ada
! ad40c92edd66b18fad76286ec1b9c6ae  gcc/testsuite/ada/acats-2/tests/c5/c55b04a.ada
! aa1f7abf4fbb36f5120549a0305b7862  gcc/testsuite/ada/acats-2/tests/c5/c55b05a.ada
! 93af4cbae77af58c9e4c76145e3381b0  gcc/testsuite/ada/acats-2/tests/c5/c55b06a.ada
! 83fb65a1faa9605647ad3455e55fa273  gcc/testsuite/ada/acats-2/tests/c5/c55b06b.ada
! 1c3a3e590230416971b33336bec05137  gcc/testsuite/ada/acats-2/tests/c5/c55b07a.dep
! 297ac06b1460ecfad84e5ce426b452d5  gcc/testsuite/ada/acats-2/tests/c5/c55b07b.dep
! 9f79657a1fb3ec7ad658a79647c5949c  gcc/testsuite/ada/acats-2/tests/c5/c55b10a.ada
! 1364f5750f4c9a8395cf0b1ae42eee0b  gcc/testsuite/ada/acats-2/tests/c5/c55b11a.ada
! 20c657742ad353aedf983932ae3ad058  gcc/testsuite/ada/acats-2/tests/c5/c55b11b.ada
! dcbc66de120373907bc61655da9f5f72  gcc/testsuite/ada/acats-2/tests/c5/c55b15a.ada
! 46488465caae85e036ca25f7a3861ddb  gcc/testsuite/ada/acats-2/tests/c5/c55b16a.ada
! 59a61b3784b5cede84a98e874e989bf9  gcc/testsuite/ada/acats-2/tests/c5/c55c02a.ada
! a665c1df7fabf7499dd2fef8021e5735  gcc/testsuite/ada/acats-2/tests/c5/c55c02b.ada
! 9722acc7b86adb50f2132a53c9a9ba5f  gcc/testsuite/ada/acats-2/tests/c5/c56002a.ada
! 0d40a16731d63ec204e884f94b191598  gcc/testsuite/ada/acats-2/tests/c5/c57003a.ada
! 7bceaaa459e0581dd43947812fb6e226  gcc/testsuite/ada/acats-2/tests/c5/c57004a.ada
! 30ed2943b27da30ba5be8602f46f6e65  gcc/testsuite/ada/acats-2/tests/c5/c57004b.ada
! 8a811d9acc70a272fa09cbfe47fdbbc0  gcc/testsuite/ada/acats-2/tests/c5/c58004c.ada
! 17e55b043903edcc29571ab8bd8aa78c  gcc/testsuite/ada/acats-2/tests/c5/c58004d.ada
! 7807a279489151c0c870e2d8f12f4502  gcc/testsuite/ada/acats-2/tests/c5/c58004g.ada
! 1b5dcc2941f69ee8c74a24728bb90d67  gcc/testsuite/ada/acats-2/tests/c5/c58005a.ada
! 62354e1ba2b765af08aa33a5e09c47df  gcc/testsuite/ada/acats-2/tests/c5/c58005b.ada
! 9028a4a38fba5ee0a721a8918c7e46c8  gcc/testsuite/ada/acats-2/tests/c5/c58005h.ada
! fa480782be6698aa97970fcf14c2f19b  gcc/testsuite/ada/acats-2/tests/c5/c58006a.ada
! 156c239407b9c9b5abfd28b286d35734  gcc/testsuite/ada/acats-2/tests/c5/c58006b.ada
! 05e86bfca592c5c4d28a7ad45f8d8054  gcc/testsuite/ada/acats-2/tests/c5/c59002a.ada
! 70857f43256c7a44ec4b50f5aa1b4b0d  gcc/testsuite/ada/acats-2/tests/c5/c59002b.ada
! 7656b04738b59910b4cd6415feaa6aea  gcc/testsuite/ada/acats-2/tests/c5/c59002c.ada
! 22c213bb3f4fac53cfad7701e5a6591a  gcc/testsuite/ada/acats-2/tests/c6/c61008a.ada
! 5fb3b13780dfa407dfa99fcfa590913f  gcc/testsuite/ada/acats-2/tests/c6/c61009a.ada
! 25cf5d0e53424f3054a20393c002970e  gcc/testsuite/ada/acats-2/tests/c6/c61010a.ada
! fc4b87310c6618ffbf7d4df1f222a45f  gcc/testsuite/ada/acats-2/tests/c6/c620001.a
! 2a393ff1326482d8490f5be202d8483c  gcc/testsuite/ada/acats-2/tests/c6/c620002.a
! 97d97866837d419b1ddcfa6ccda2511e  gcc/testsuite/ada/acats-2/tests/c6/c62002a.ada
! 29777c913c6649484125c1aa56f0093f  gcc/testsuite/ada/acats-2/tests/c6/c62003a.ada
! 3e2cc6ba1c79eb1d9f3fe3bbb646cf6b  gcc/testsuite/ada/acats-2/tests/c6/c62003b.ada
! 624bc88129c0b954774c60019f5435c5  gcc/testsuite/ada/acats-2/tests/c6/c62004a.ada
! 31c5b507af85354e0db53a078e7c8933  gcc/testsuite/ada/acats-2/tests/c6/c62006a.ada
! e8a1274fb71dcf0b27d5375c78e8d1d3  gcc/testsuite/ada/acats-2/tests/c6/c631001.a
! 41a6d9efe5d22a0f96b7c4448831b133  gcc/testsuite/ada/acats-2/tests/c6/c640001.a
! 67136569bb3a58c14f65e3abd9b96391  gcc/testsuite/ada/acats-2/tests/c6/c64002b.ada
! 298c0d717f1da2c324c78b6aafedfa91  gcc/testsuite/ada/acats-2/tests/c6/c64004g.ada
! 0a5ebe2531dcbec11f3d606df5534e5b  gcc/testsuite/ada/acats-2/tests/c6/c64005a.ada
! 1a7b4a32917f31d77deb5ad294e39f82  gcc/testsuite/ada/acats-2/tests/c6/c64005b.ada
! 292b4b0e6cf19da205f4d3a1caeee992  gcc/testsuite/ada/acats-2/tests/c6/c64005c.ada
! db80e980a183a6d0f7c9afd52fae0c87  gcc/testsuite/ada/acats-2/tests/c6/c64005d0.ada
! f480e72d2a8b3a22347018687fb9f190  gcc/testsuite/ada/acats-2/tests/c6/c64005da.ada
! 035da89aedf781e8b07eace791889088  gcc/testsuite/ada/acats-2/tests/c6/c64005db.ada
! 9af982279e39e967d04656170afef341  gcc/testsuite/ada/acats-2/tests/c6/c64005dc.ada
! 2f3c835897b61c5b02af1bef11a949d6  gcc/testsuite/ada/acats-2/tests/c6/c641001.a
! f9894df16dafde8c37b5681a9a0b728f  gcc/testsuite/ada/acats-2/tests/c6/c64103b.ada
! 573a659bd2d30c3c8a3ee7f77390490c  gcc/testsuite/ada/acats-2/tests/c6/c64103c.ada
! e7242de3cddb62031ef1910e911942df  gcc/testsuite/ada/acats-2/tests/c6/c64103d.ada
! 6e2e6c719dcbb601e033a3a1528b6db5  gcc/testsuite/ada/acats-2/tests/c6/c64103e.ada
! aa17757d55d04a8ef672505933d46680  gcc/testsuite/ada/acats-2/tests/c6/c64103f.ada
! bbb85cc245f09eba3db627d88d52db68  gcc/testsuite/ada/acats-2/tests/c6/c64104a.ada
! d3f37083469fc62f2aeae2c00e979ad9  gcc/testsuite/ada/acats-2/tests/c6/c64104b.ada
! 00b5b6264d3df93a1481ca7dd0313957  gcc/testsuite/ada/acats-2/tests/c6/c64104c.ada
! 0d80f34c16a2ae02db45210c6b66eaa8  gcc/testsuite/ada/acats-2/tests/c6/c64104d.ada
! 5dc873b400a6675c734e431ac91f74db  gcc/testsuite/ada/acats-2/tests/c6/c64104e.ada
! 54921e31e5a30e388946a946c10c8954  gcc/testsuite/ada/acats-2/tests/c6/c64104f.ada
! b763fdc647a8b6c2e8ccdcc7b2e1556c  gcc/testsuite/ada/acats-2/tests/c6/c64104g.ada
! 0a7c01deaae4401d7fe1f7f78e4e6325  gcc/testsuite/ada/acats-2/tests/c6/c64104h.ada
! 39b3c50eb36b7e11b1d9e78a7b3f9132  gcc/testsuite/ada/acats-2/tests/c6/c64104i.ada
! a30f87a67e828d3791f26521921a8f81  gcc/testsuite/ada/acats-2/tests/c6/c64104j.ada
! 8906347f1c0f027d889a06f25fcc1831  gcc/testsuite/ada/acats-2/tests/c6/c64104k.ada
! 4cb01879b0f85af48c5474c558534e54  gcc/testsuite/ada/acats-2/tests/c6/c64104l.ada
! cd1d978bf7503e964f5c0293089096c1  gcc/testsuite/ada/acats-2/tests/c6/c64104m.ada
! 62990064fd13a84570c91f3d1f71338f  gcc/testsuite/ada/acats-2/tests/c6/c64104n.ada
! ff64768b090411d3f8232b7dc479db5f  gcc/testsuite/ada/acats-2/tests/c6/c64104o.ada
! c371cb358b8e763068dd4af101cd7f51  gcc/testsuite/ada/acats-2/tests/c6/c64105a.ada
! f1cfabbe7fa319f7a90669a5a1d88874  gcc/testsuite/ada/acats-2/tests/c6/c64105b.ada
! 484938df1d2ea23b4699185521d927ae  gcc/testsuite/ada/acats-2/tests/c6/c64105c.ada
! 98ba505c37a1fa4544aa7a16f86476d8  gcc/testsuite/ada/acats-2/tests/c6/c64105d.ada
! 7f5ef4e4117e3403c814c8b2d6248652  gcc/testsuite/ada/acats-2/tests/c6/c64106a.ada
! c719851b2aa8d7de278a61b4ae401e7f  gcc/testsuite/ada/acats-2/tests/c6/c64106b.ada
! 99b026e3c033b0bc70bbb34952c61a90  gcc/testsuite/ada/acats-2/tests/c6/c64106c.ada
! 1ff08389beb50526e6d5946f3ddfa0d2  gcc/testsuite/ada/acats-2/tests/c6/c64106d.ada
! 19103ed02e019b6f2490bd4285878194  gcc/testsuite/ada/acats-2/tests/c6/c64107a.ada
! 93d945e280814e3db9cdaa9a9be57e87  gcc/testsuite/ada/acats-2/tests/c6/c64108a.ada
! 39bf7a6fa5bcfb5ee8e52f5f07fafefc  gcc/testsuite/ada/acats-2/tests/c6/c64109a.ada
! 7a1023fda1950978c62798e5caff709c  gcc/testsuite/ada/acats-2/tests/c6/c64109b.ada
! 276b67fe008e97a4988487fc615e1f3c  gcc/testsuite/ada/acats-2/tests/c6/c64109c.ada
! 80192570a6b338162a9ef9bfc13a4dff  gcc/testsuite/ada/acats-2/tests/c6/c64109d.ada
! 4719b8ddae4538b59e04d96c932a95d9  gcc/testsuite/ada/acats-2/tests/c6/c64109e.ada
! ed4b4f3ef743bc7f8f4a6afe5886cae2  gcc/testsuite/ada/acats-2/tests/c6/c64109f.ada
! 8f7ab91cec27ffbad7b51252ef99b137  gcc/testsuite/ada/acats-2/tests/c6/c64109g.ada
! 2bb8cec80fd6bc3ed2495c9581ea2a9e  gcc/testsuite/ada/acats-2/tests/c6/c64109h.ada
! 495be9b835fa97670e1a579d72a3f96d  gcc/testsuite/ada/acats-2/tests/c6/c64109i.ada
! 547c93bc4be631648c9973120c282a89  gcc/testsuite/ada/acats-2/tests/c6/c64109j.ada
! 4da6b83416827b9d2d574334772ff2a3  gcc/testsuite/ada/acats-2/tests/c6/c64109k.ada
! 6217fe2218b5d9ecf085e1b730917030  gcc/testsuite/ada/acats-2/tests/c6/c64109l.ada
! dde2e62be923a3854e5f1667c4a78def  gcc/testsuite/ada/acats-2/tests/c6/c64201b.ada
! c3459cee62caf16a8d14f820e16c4f60  gcc/testsuite/ada/acats-2/tests/c6/c64201c.ada
! e589f5c8d3bb97575b245a37a5f2dffa  gcc/testsuite/ada/acats-2/tests/c6/c64202a.ada
! 219803e5e3580d21284552cdfe112a0f  gcc/testsuite/ada/acats-2/tests/c6/c650001.a
! 25c48d1366d3ac13453832dcee471f3f  gcc/testsuite/ada/acats-2/tests/c6/c65003a.ada
! beca3ad5c25f888eed6dc6b1db750e33  gcc/testsuite/ada/acats-2/tests/c6/c65003b.ada
! 4eca86193e279acda5aa647dab2bf5bf  gcc/testsuite/ada/acats-2/tests/c6/c66002a.ada
! 7cbfd161ceac490eb379a5c08eb1945c  gcc/testsuite/ada/acats-2/tests/c6/c66002c.ada
! 482c9214fae39fbcab58fcbae0b5b5ef  gcc/testsuite/ada/acats-2/tests/c6/c66002d.ada
! 7a93f84ee40f38fca4afb6cfd5e69a57  gcc/testsuite/ada/acats-2/tests/c6/c66002e.ada
! 2b60fab145676d717df13cdf9c7a70cb  gcc/testsuite/ada/acats-2/tests/c6/c66002f.ada
! ea770ca1e9d9fcb8b4460d5921747ef5  gcc/testsuite/ada/acats-2/tests/c6/c66002g.ada
! 8470fdb16485b4472bee0602f1f98734  gcc/testsuite/ada/acats-2/tests/c6/c67002a.ada
! 0e2fbb4deae7d888206b0ce77fc4fda5  gcc/testsuite/ada/acats-2/tests/c6/c67002b.ada
! 308d5f91802e93205222e8ca1f7def1e  gcc/testsuite/ada/acats-2/tests/c6/c67002c.ada
! 84e0adc30ed2874abaffa33f713cc51b  gcc/testsuite/ada/acats-2/tests/c6/c67002d.ada
! ddfdc630c5edd58e367ed9b034c039e7  gcc/testsuite/ada/acats-2/tests/c6/c67002e.ada
! 49b95c1cbdb6c703d2eba605f6f06c92  gcc/testsuite/ada/acats-2/tests/c6/c67003f.ada
! 213a9e52b5357a07997f1aa43ec82624  gcc/testsuite/ada/acats-2/tests/c6/c67005a.ada
! ddd7cdd9502a723b17b40bcb1df0e016  gcc/testsuite/ada/acats-2/tests/c6/c67005b.ada
! 20a99f6c582810cf18b39ab642f4024f  gcc/testsuite/ada/acats-2/tests/c6/c67005c.ada
! 8ea8c4445f5e72cc88e8dad14b66084e  gcc/testsuite/ada/acats-2/tests/c6/c67005d.ada
! 69f93d5f57d1b7956ae380ff9f3e5f77  gcc/testsuite/ada/acats-2/tests/c7/c72001b.ada
! b6fa12bd9fd0f617b4eeded7550722c2  gcc/testsuite/ada/acats-2/tests/c7/c72002a.ada
! c70f104ca78b3298a442973676af108a  gcc/testsuite/ada/acats-2/tests/c7/c730001.a
! 7d2edfee282ba04ca7f25bef0f101057  gcc/testsuite/ada/acats-2/tests/c7/c730002.a
! 7822b69c5c1de14250eaad43da14736b  gcc/testsuite/ada/acats-2/tests/c7/c730003.a
! ced40d2c1dbfd9c72c43feedd4c9cefc  gcc/testsuite/ada/acats-2/tests/c7/c730004.a
! d3f7b50b0820bac4ce78abffb5e37744  gcc/testsuite/ada/acats-2/tests/c7/c73002a.ada
! c70763cb0718b44fa8658ee9ebb8c726  gcc/testsuite/ada/acats-2/tests/c7/c730a01.a
! 4ecce7babf24585f115e0d288f17e449  gcc/testsuite/ada/acats-2/tests/c7/c730a02.a
! 9c311ffdc62d1b99a3452b1e38d15e2e  gcc/testsuite/ada/acats-2/tests/c7/c731001.a
! be09078047844bd86eef86d5755ef273  gcc/testsuite/ada/acats-2/tests/c7/c74004a.ada
! a0a0a05e6225a07b7bd0f2c049f1dc37  gcc/testsuite/ada/acats-2/tests/c7/c74203a.ada
! a718857277037741ea3600c1aab95a3d  gcc/testsuite/ada/acats-2/tests/c7/c74206a.ada
! 0efca36cdb74fc57aec9e1de78e0324f  gcc/testsuite/ada/acats-2/tests/c7/c74207b.ada
! 7ceb0d1778d1a1bae9687bebd7aad9e3  gcc/testsuite/ada/acats-2/tests/c7/c74208a.ada
! bf7859fde348fa96735368f14e0a3e25  gcc/testsuite/ada/acats-2/tests/c7/c74208b.ada
! 7d504e824db220a636160024b4e963d6  gcc/testsuite/ada/acats-2/tests/c7/c74209a.ada
! 3f31b8eb73e78f20cdcf118aa7d0047c  gcc/testsuite/ada/acats-2/tests/c7/c74210a.ada
! 442ab4135e3f1fdfffacf000f7b4bda3  gcc/testsuite/ada/acats-2/tests/c7/c74211a.ada
! 49650c69957d01ffb396db79a35589c4  gcc/testsuite/ada/acats-2/tests/c7/c74211b.ada
! 30155693ce7b3f29189da859d313eb7d  gcc/testsuite/ada/acats-2/tests/c7/c74302a.ada
! ed96f028ca11af40b3ba2093a404f55c  gcc/testsuite/ada/acats-2/tests/c7/c74302b.ada
! b559e9bf4e98700fb810e406c30a34b7  gcc/testsuite/ada/acats-2/tests/c7/c74305a.ada
! f1b9307b4d428cf0d10bc48805ffb0f3  gcc/testsuite/ada/acats-2/tests/c7/c74305b.ada
! 5c799bf9e1ec30f40d428bd8dadcb119  gcc/testsuite/ada/acats-2/tests/c7/c74306a.ada
! d62a4df3fab829d5694cbf9f5cc4cb8e  gcc/testsuite/ada/acats-2/tests/c7/c74307a.ada
! 933ca49dcfb9ad8fc25ea9a434984d05  gcc/testsuite/ada/acats-2/tests/c7/c74401d.ada
! 502d8871fd7e5d6399f7536874735597  gcc/testsuite/ada/acats-2/tests/c7/c74401e.ada
! 2514504f60fcea97d8914fabcb5654cf  gcc/testsuite/ada/acats-2/tests/c7/c74401k.ada
! 3ca8e77b02dbd7f9e9104dd0fa6de35b  gcc/testsuite/ada/acats-2/tests/c7/c74401q.ada
! d30f33bfdaf9612ea55c7659c3b5aeb6  gcc/testsuite/ada/acats-2/tests/c7/c74402a.ada
! cf79bb4fcbdf7ec1cd795607eef8bc10  gcc/testsuite/ada/acats-2/tests/c7/c74402b.ada
! f6ece8469b7d90aef496ac665f895003  gcc/testsuite/ada/acats-2/tests/c7/c74406a.ada
! cce5e695d18f537ec2a8d6c26cfc5b0d  gcc/testsuite/ada/acats-2/tests/c7/c74407b.ada
! 316be518a848dd0954d80de977e40c5b  gcc/testsuite/ada/acats-2/tests/c7/c74409b.ada
! c751f318a2fe16dadb0c62221c726b70  gcc/testsuite/ada/acats-2/tests/c7/c760001.a
! f250c0eea5cbe1e05ed28f0a940949ed  gcc/testsuite/ada/acats-2/tests/c7/c760002.a
! c12d4d7698c111ee3a094c0c2d53522a  gcc/testsuite/ada/acats-2/tests/c7/c760007.a
! 767d3e26a992541aa6191923e040a107  gcc/testsuite/ada/acats-2/tests/c7/c760009.a
! 264f06f0190602b655e5f7fefb6822b8  gcc/testsuite/ada/acats-2/tests/c7/c760010.a
! 31eaca7f3a33de78c9eaa1a92109c6ad  gcc/testsuite/ada/acats-2/tests/c7/c760011.a
! 522805071c7c096b6eabcd72cf833d9a  gcc/testsuite/ada/acats-2/tests/c7/c760012.a
! a4f8e8b6876d4b862928b00edca5f5d9  gcc/testsuite/ada/acats-2/tests/c7/c760013.a
! 45d67d0e3319e953b892c7d115460ecd  gcc/testsuite/ada/acats-2/tests/c7/c761001.a
! 080dcc3c8d2907579e1673c23433165f  gcc/testsuite/ada/acats-2/tests/c7/c761002.a
! d0ecfbaed2a882166d23beefe5f4e191  gcc/testsuite/ada/acats-2/tests/c7/c761003.a
! 553e4393e53175606097eb8c9b415d22  gcc/testsuite/ada/acats-2/tests/c7/c761004.a
! 4a7c5e1c13695ae75ad3a4df49a55b63  gcc/testsuite/ada/acats-2/tests/c7/c761005.a
! d4f8faae1d5f7970e56d7a30c10a99c7  gcc/testsuite/ada/acats-2/tests/c7/c761006.a
! a8b974a47ec1f7a4a5fc2ef06975f069  gcc/testsuite/ada/acats-2/tests/c7/c761007.a
! 6ca84026fc9a5682d2db1f346eb920cd  gcc/testsuite/ada/acats-2/tests/c7/c761010.a
! 8f26af4ffb9bc7a2e15aee7b1c0c2346  gcc/testsuite/ada/acats-2/tests/c7/c761011.a
! d80406039e2bebf54191eec198c10721  gcc/testsuite/ada/acats-2/tests/c7/c761012.a
! f7baee35e01e625d64802c987ddc4c0d  gcc/testsuite/ada/acats-2/tests/c8/c83007a.ada
! 9f1228dfaacf209725a2e8d706128a4c  gcc/testsuite/ada/acats-2/tests/c8/c83012d.ada
! a2e774207100bd5fbb0289bb8ba9f031  gcc/testsuite/ada/acats-2/tests/c8/c83022a.ada
! c214085c4cbff44807225c3aee9be7db  gcc/testsuite/ada/acats-2/tests/c8/c83022g0.ada
! 7aeac4b952eedc1419039fc50c66c732  gcc/testsuite/ada/acats-2/tests/c8/c83022g1.ada
! fedc05f63c2cd512653891054d7d5dad  gcc/testsuite/ada/acats-2/tests/c8/c83023a.ada
! 94cc28ec1a7a9d2aedbab6f2101d2215  gcc/testsuite/ada/acats-2/tests/c8/c83024a.ada
! cd79a99f6b5ce8030462ce917a77a33c  gcc/testsuite/ada/acats-2/tests/c8/c83024e0.ada
! b03af2deceb02b0227f887041379f641  gcc/testsuite/ada/acats-2/tests/c8/c83024e1.ada
! d7544d2786bfc552a30612041df95429  gcc/testsuite/ada/acats-2/tests/c8/c83025a.ada
! 881d6130cfcbd30f4a739889d50396da  gcc/testsuite/ada/acats-2/tests/c8/c83025c.ada
! f35a334aaf4110ea4446247ad6a098f4  gcc/testsuite/ada/acats-2/tests/c8/c83027a.ada
! 37c08965e5d871d3a35ff35f67e713d8  gcc/testsuite/ada/acats-2/tests/c8/c83027c.ada
! 32c440ad7d9ac139bbd4251c4fc10cc4  gcc/testsuite/ada/acats-2/tests/c8/c83028a.ada
! 284725a771243ec2eb877c3bb20240af  gcc/testsuite/ada/acats-2/tests/c8/c83029a.ada
! 0d4d1e41b05e2587d04c09930491aecd  gcc/testsuite/ada/acats-2/tests/c8/c83030a.ada
! 736b92fd2fdec116e1e9a28e04fe105a  gcc/testsuite/ada/acats-2/tests/c8/c83030c.ada
! 8e7b338ab4662f4c219903b9017a3252  gcc/testsuite/ada/acats-2/tests/c8/c83031a.ada
! 8799fc3b7ae4481b9d03ab137000f62e  gcc/testsuite/ada/acats-2/tests/c8/c83031c.ada
! 4c6a471797dc4320ecdae183b931f1e8  gcc/testsuite/ada/acats-2/tests/c8/c83031e.ada
! a6758128580028e639e0a59521425cf0  gcc/testsuite/ada/acats-2/tests/c8/c83032a.ada
! 72628676c750edbd1f98131cb5571a2f  gcc/testsuite/ada/acats-2/tests/c8/c83033a.ada
! 9431427fb4aa9f6e7d3a4375ffaecc6c  gcc/testsuite/ada/acats-2/tests/c8/c83051a.ada
! f2fa97381bbbbba9176ccf7627ee5fd8  gcc/testsuite/ada/acats-2/tests/c8/c83b02a.ada
! 03bdf2b2546804982387b339182818e7  gcc/testsuite/ada/acats-2/tests/c8/c83b02b.ada
! 40875d29e98f8a554f57a2cbba7d7b3e  gcc/testsuite/ada/acats-2/tests/c8/c83e02a.ada
! 14cf40af4f9b58380697256b2d355287  gcc/testsuite/ada/acats-2/tests/c8/c83e02b.ada
! 200ef6a026cfe27a93be29d96cf214b8  gcc/testsuite/ada/acats-2/tests/c8/c83e03a.ada
! ad5525a2d740a4d893fcd637c63649fd  gcc/testsuite/ada/acats-2/tests/c8/c83f01a.ada
! e565198c8053dc81f1f530025b0d226b  gcc/testsuite/ada/acats-2/tests/c8/c83f01b.ada
! 6d7321886000c19fde08f583e57a7e33  gcc/testsuite/ada/acats-2/tests/c8/c83f01c0.ada
! b0f89c8df04b680d3d4603f896b4d648  gcc/testsuite/ada/acats-2/tests/c8/c83f01c1.ada
! faebab8928acaa2b8fbf803db9d9d76e  gcc/testsuite/ada/acats-2/tests/c8/c83f01c2.ada
! 76e6504b3bae53ff3ed9396d5c7812a4  gcc/testsuite/ada/acats-2/tests/c8/c83f01d0.ada
! 64bf8f6ff542539524d925d1e5a9cfe4  gcc/testsuite/ada/acats-2/tests/c8/c83f01d1.ada
! 8a46931f49572809caa7fa3dacf72336  gcc/testsuite/ada/acats-2/tests/c8/c83f03a.ada
! 12f92031807ee7b6703ecca17d07c9ad  gcc/testsuite/ada/acats-2/tests/c8/c83f03b.ada
! 2f7e657595b99ed4902cb3ed7aae770f  gcc/testsuite/ada/acats-2/tests/c8/c83f03c0.ada
! b07043910b1b62a4647fb0958270ab2e  gcc/testsuite/ada/acats-2/tests/c8/c83f03c1.ada
! 2a8ed5812b7eba602e55bc4cba957511  gcc/testsuite/ada/acats-2/tests/c8/c83f03c2.ada
! d29900c193533f0d919bf89d2bc8e119  gcc/testsuite/ada/acats-2/tests/c8/c83f03d0.ada
! a81483935d1a82f02d88010465d1f944  gcc/testsuite/ada/acats-2/tests/c8/c83f03d1.ada
! 29bd80df35d00ef1384ad39409db64f6  gcc/testsuite/ada/acats-2/tests/c8/c840001.a
! af9ade351c5ef6a9d951a20d59988380  gcc/testsuite/ada/acats-2/tests/c8/c84002a.ada
! 66d1e4c5ecfdc60f73f72122f13591ac  gcc/testsuite/ada/acats-2/tests/c8/c84005a.ada
! aa6a6f80ff85e69f2df4df4eede3b31f  gcc/testsuite/ada/acats-2/tests/c8/c84008a.ada
! 09c80b3d29e25029f03088427d21bbcc  gcc/testsuite/ada/acats-2/tests/c8/c84009a.ada
! d7b3488b66a68bdb7c8d505ca3419ac7  gcc/testsuite/ada/acats-2/tests/c8/c85004b.ada
! 3e0403d2aa151370c2f61352a9f76996  gcc/testsuite/ada/acats-2/tests/c8/c85005a.ada
! 37c7fd0ed7d0bc32d740e9c53a118651  gcc/testsuite/ada/acats-2/tests/c8/c85005b.ada
! 1fc662c5706ae3323d79577161aa2b7c  gcc/testsuite/ada/acats-2/tests/c8/c85005c.ada
! c7c4cd7450d2b2ce6c9f804ab189b71e  gcc/testsuite/ada/acats-2/tests/c8/c85005d.ada
! 39a019807c800fea7de5ee674f51f3ac  gcc/testsuite/ada/acats-2/tests/c8/c85005e.ada
! 8d1e127599b478a2675315047b0c481f  gcc/testsuite/ada/acats-2/tests/c8/c85005f.ada
! 25bfcee3ce65c19279f2e6ae6c7dbfba  gcc/testsuite/ada/acats-2/tests/c8/c85005g.ada
! 32fef31a23447e83e62b591ccf214749  gcc/testsuite/ada/acats-2/tests/c8/c85006a.ada
! 52a38ccdb969e742c721e8c6b91f9aee  gcc/testsuite/ada/acats-2/tests/c8/c85006b.ada
! b8b2355c13723ce1e608404a697d37f1  gcc/testsuite/ada/acats-2/tests/c8/c85006c.ada
! f9f754296bb969ded99acf18e0d0cc57  gcc/testsuite/ada/acats-2/tests/c8/c85006d.ada
! 13a5f5c38fb9c62ade83208e0c68d79e  gcc/testsuite/ada/acats-2/tests/c8/c85006e.ada
! 338359196a7f9ec95687b438473fe4b5  gcc/testsuite/ada/acats-2/tests/c8/c85006f.ada
! 2009399861eb5a59e17598709aab1ac2  gcc/testsuite/ada/acats-2/tests/c8/c85006g.ada
! 81de8bcdf2627a437c3e3b841e5fad1d  gcc/testsuite/ada/acats-2/tests/c8/c85007a.ada
! e357cc223f207047a721ac8e8e18f162  gcc/testsuite/ada/acats-2/tests/c8/c85007e.ada
! 418333040a3a7bff04eadeddd0acb110  gcc/testsuite/ada/acats-2/tests/c8/c85009a.ada
! bd6854facde59a298fdff160083dd037  gcc/testsuite/ada/acats-2/tests/c8/c85011a.ada
! 406a5955e9d949bdd8248e3006f85389  gcc/testsuite/ada/acats-2/tests/c8/c85013a.ada
! 85235f6d4b44c3da298beab51c59e532  gcc/testsuite/ada/acats-2/tests/c8/c85014a.ada
! 63d0b09e17f02992f14dc03cc7687879  gcc/testsuite/ada/acats-2/tests/c8/c85014b.ada
! 8a941d41b729176aeb087812bd185dbb  gcc/testsuite/ada/acats-2/tests/c8/c85014c.ada
! e1660d68b127c37ec14d42ba45a3b445  gcc/testsuite/ada/acats-2/tests/c8/c85017a.ada
! 1cad26f34f7ad9a5f58bf9e88765aca9  gcc/testsuite/ada/acats-2/tests/c8/c85018a.ada
! 9c45b00830d440af2ac60b55d681400a  gcc/testsuite/ada/acats-2/tests/c8/c85018b.ada
! 8d0a794043808c838cf5adba232cacac  gcc/testsuite/ada/acats-2/tests/c8/c85019a.ada
! 9b74243be116d7855c67ebe955d78830  gcc/testsuite/ada/acats-2/tests/c8/c854001.a
! 825c879ca9c376275c17511ad5e00304  gcc/testsuite/ada/acats-2/tests/c8/c854002.a
! d68292de38c7b9e049e07075bbb8e3be  gcc/testsuite/ada/acats-2/tests/c8/c854003.a
! 1f1f18804e6fcf9c4e2fbec6349d04b2  gcc/testsuite/ada/acats-2/tests/c8/c86003a.ada
! e2f34ff3aa901cdf44aa714bfc307b17  gcc/testsuite/ada/acats-2/tests/c8/c86004a.ada
! d4f2cc5c80e276eb1480de6a342d8b63  gcc/testsuite/ada/acats-2/tests/c8/c86004b0.ada
! 50f93d108a0bf0919eb0ba1f6e65d7f0  gcc/testsuite/ada/acats-2/tests/c8/c86004b1.ada
! 6c2d0d9c9429d88e2c6672c71366873c  gcc/testsuite/ada/acats-2/tests/c8/c86004b2.ada
! 7f6e918b2ef0b5adc4139d9b912bc081  gcc/testsuite/ada/acats-2/tests/c8/c86004c0.ada
! a2305c116ad2dac3912371b71c441b61  gcc/testsuite/ada/acats-2/tests/c8/c86004c1.ada
! c7b7606151d38f39564979699b168c79  gcc/testsuite/ada/acats-2/tests/c8/c86004c2.ada
! 0766251158ffbc052bc7ec6041412761  gcc/testsuite/ada/acats-2/tests/c8/c86006i.ada
! 69ab336267b976906702c2d0bc1c1e29  gcc/testsuite/ada/acats-2/tests/c8/c86007a.ada
! 0ac058a1ece69aa243cd82dada40bb30  gcc/testsuite/ada/acats-2/tests/c8/c87a05a.ada
! fff71eeb0c0e9f16ee678756ea7588a4  gcc/testsuite/ada/acats-2/tests/c8/c87a05b.ada
! 2fe0ea4d16046c334c399aafeddc01a8  gcc/testsuite/ada/acats-2/tests/c8/c87b02a.ada
! fcd21b497cf853422b084ed7935381d4  gcc/testsuite/ada/acats-2/tests/c8/c87b02b.ada
! c0b66a348c2ee10edc5467a8eb009d09  gcc/testsuite/ada/acats-2/tests/c8/c87b03a.ada
! adac4007a7fd6b1ee9f1f48c55244d47  gcc/testsuite/ada/acats-2/tests/c8/c87b04a.ada
! 18ccfb1a0d973da4e1686b0c98dfa1a9  gcc/testsuite/ada/acats-2/tests/c8/c87b04b.ada
! 43cf46342879eb1ffe2f7c8971af6a38  gcc/testsuite/ada/acats-2/tests/c8/c87b04c.ada
! d0144de0520c60120721d7b571e3985d  gcc/testsuite/ada/acats-2/tests/c8/c87b05a.ada
! 2b781472cd1369f9eb86a64cd5e4a9d9  gcc/testsuite/ada/acats-2/tests/c8/c87b06a.ada
! c22a9ce42feb05505f797ccc539112bd  gcc/testsuite/ada/acats-2/tests/c8/c87b07a.ada
! 5cb748b4c292f38beadd4b397c9748ef  gcc/testsuite/ada/acats-2/tests/c8/c87b07b.ada
! cd570d3799a0f4ceeabe1513e0c1c809  gcc/testsuite/ada/acats-2/tests/c8/c87b07c.ada
! 94b970485847bd2d888e33a9e0bbeb1c  gcc/testsuite/ada/acats-2/tests/c8/c87b07d.ada
! 4a11dd4cf1ef59a68c9760ade0024c31  gcc/testsuite/ada/acats-2/tests/c8/c87b07e.ada
! e031b7e0f562bef1da7d73abf8e7203d  gcc/testsuite/ada/acats-2/tests/c8/c87b08a.ada
! ddc6096fff2cbf60aa3fe948c1c569c3  gcc/testsuite/ada/acats-2/tests/c8/c87b09a.ada
! 427f1fe54f5946c6611f5abe3d23e213  gcc/testsuite/ada/acats-2/tests/c8/c87b09c.ada
! 4f2d8b50e737f09ccf25f199443471c8  gcc/testsuite/ada/acats-2/tests/c8/c87b10a.ada
! b3ddde623ffa0748cae187472ed3c706  gcc/testsuite/ada/acats-2/tests/c8/c87b11a.ada
! 34f04500698b844ee3bbe19fcec6df7b  gcc/testsuite/ada/acats-2/tests/c8/c87b11b.ada
! 42486daf86c543499fe18e7700c2a2c5  gcc/testsuite/ada/acats-2/tests/c8/c87b13a.ada
! 343104f8b07cc3cdfea584fb91d7dad0  gcc/testsuite/ada/acats-2/tests/c8/c87b14a.ada
! 3129f63056e924075c9eef5fb92ff6be  gcc/testsuite/ada/acats-2/tests/c8/c87b14b.ada
! 9fec6d81e8cfe9a1be8263f1fcff0c24  gcc/testsuite/ada/acats-2/tests/c8/c87b14c.ada
! c9a24774d85aaa6a9ad204d88ef33dc3  gcc/testsuite/ada/acats-2/tests/c8/c87b14d.ada
! 75444b8bc412150144d6500a1c98caa1  gcc/testsuite/ada/acats-2/tests/c8/c87b15a.ada
! b02c9f3d290904a7b941ba27ad5b8cbe  gcc/testsuite/ada/acats-2/tests/c8/c87b16a.ada
! 352fe9e9dcbad212440a7cb09e0f5a22  gcc/testsuite/ada/acats-2/tests/c8/c87b17a.ada
! da9c835dde5437b7c6fd41430e0523c7  gcc/testsuite/ada/acats-2/tests/c8/c87b18a.ada
! 6233d050a9dc22ef89142ebf8f28ccf0  gcc/testsuite/ada/acats-2/tests/c8/c87b18b.ada
! 8d538ac45635004402030cb4640caa57  gcc/testsuite/ada/acats-2/tests/c8/c87b19a.ada
! 2095765cd4def145a48bc901ac6dbde1  gcc/testsuite/ada/acats-2/tests/c8/c87b23a.ada
! 67d87906e113b008e98391cc2776a960  gcc/testsuite/ada/acats-2/tests/c8/c87b24a.ada
! fd73894f92a9b3a013e87ea2b44c1ee4  gcc/testsuite/ada/acats-2/tests/c8/c87b24b.ada
! ae8732c293e965d19215928ca5c16d40  gcc/testsuite/ada/acats-2/tests/c8/c87b26b.ada
! b14d1be798ca4f79c28b996d1e8a7113  gcc/testsuite/ada/acats-2/tests/c8/c87b27a.ada
! 52b1e1223a0044bd348db0fcb6d79d6b  gcc/testsuite/ada/acats-2/tests/c8/c87b28a.ada
! a6a5c9403ac6bdbdb2e55d6a25b9f5ed  gcc/testsuite/ada/acats-2/tests/c8/c87b29a.ada
! b151ba31fb04091b8702bb9da4a0a2fb  gcc/testsuite/ada/acats-2/tests/c8/c87b30a.ada
! baa7d485e6d766db9246c9606ba3a078  gcc/testsuite/ada/acats-2/tests/c8/c87b31a.ada
! 78fd2d4c2c4821cfbbf402d3b842e2cc  gcc/testsuite/ada/acats-2/tests/c8/c87b32a.ada
! 833d7f92c1dba9641ebcb3157ab5d24e  gcc/testsuite/ada/acats-2/tests/c8/c87b33a.ada
! 36465d48d4bab661c6218ee48524b608  gcc/testsuite/ada/acats-2/tests/c8/c87b34a.ada
! 561be38a9a0275b65d22f782b23c1f8c  gcc/testsuite/ada/acats-2/tests/c8/c87b34b.ada
! 1239485e0f456d72c43f397227762788  gcc/testsuite/ada/acats-2/tests/c8/c87b34c.ada
! 041b7b6888183bbf71655055555c1b87  gcc/testsuite/ada/acats-2/tests/c8/c87b35c.ada
! ba86ee0565261018e59b1b01d9d63a78  gcc/testsuite/ada/acats-2/tests/c8/c87b38a.ada
! bee8f2cc8e7a407c5d1e665cafb324a0  gcc/testsuite/ada/acats-2/tests/c8/c87b39a.ada
! 0149e0004f1fac32a6d0483505f00a77  gcc/testsuite/ada/acats-2/tests/c8/c87b40a.ada
! 979e8597fe7349e04ef67ff5a9f249ad  gcc/testsuite/ada/acats-2/tests/c8/c87b41a.ada
! 35740da1bae3e32ad7726fef598ebe03  gcc/testsuite/ada/acats-2/tests/c8/c87b42a.ada
! c699f8cb33019178eb66bb9b9887fc34  gcc/testsuite/ada/acats-2/tests/c8/c87b43a.ada
! 284fc10b4e768deed27f6efe5ba660f3  gcc/testsuite/ada/acats-2/tests/c8/c87b44a.ada
! d1cacfe3528a0559f8572409bdad7960  gcc/testsuite/ada/acats-2/tests/c8/c87b45a.ada
! 615100562dae434f6237d50c2ce7a859  gcc/testsuite/ada/acats-2/tests/c8/c87b45c.ada
! ee9fa629414e1ff85ab5a901880627c6  gcc/testsuite/ada/acats-2/tests/c8/c87b47a.ada
! f01c1e9a040d9bf9e82d5b0bd8308ac2  gcc/testsuite/ada/acats-2/tests/c8/c87b48a.ada
! 5f12e71520b411de1dcbfb59ca609af5  gcc/testsuite/ada/acats-2/tests/c8/c87b48b.ada
! 7accae5d8bcb7a6376aeb4769bbc3521  gcc/testsuite/ada/acats-2/tests/c8/c87b50a.ada
! 49e93ad6fd90f250357c964cfe65bbb4  gcc/testsuite/ada/acats-2/tests/c8/c87b54a.ada
! 6b87b80aa7e4be221c3a6fcc95a098e2  gcc/testsuite/ada/acats-2/tests/c8/c87b57a.ada
! e29430c61d05400015468771710caebe  gcc/testsuite/ada/acats-2/tests/c8/c87b62a.ada
! d69bb1d50cac4c6397e7ef6ac85cec47  gcc/testsuite/ada/acats-2/tests/c8/c87b62b.ada
! b2cd3c65ecd1e96a0c0812252c334c48  gcc/testsuite/ada/acats-2/tests/c8/c87b62c.ada
! f48458b6ea766af192adb8d401f368fc  gcc/testsuite/ada/acats-2/tests/c8/c87b62d.tst
! 91802a6e8fc88eaea2b276279ef7c541  gcc/testsuite/ada/acats-2/tests/c9/c910001.a
! 92f4e59378989d90d762b2fdfa367275  gcc/testsuite/ada/acats-2/tests/c9/c910002.a
! 1da7e86ddeb55b8594570c708479d7da  gcc/testsuite/ada/acats-2/tests/c9/c910003.a
! 3e61dff323d06b22fad060cfc4e6bbe3  gcc/testsuite/ada/acats-2/tests/c9/c91004b.ada
! 69469a828c0050868f258475fc71f55d  gcc/testsuite/ada/acats-2/tests/c9/c91004c.ada
! 0ff6798e735543f9ea0902dcd3d33bd4  gcc/testsuite/ada/acats-2/tests/c9/c91006a.ada
! 7f1ab85728a76023b65305acb8480064  gcc/testsuite/ada/acats-2/tests/c9/c91007a.ada
! b04d09f1322f0d92c98d41398964503d  gcc/testsuite/ada/acats-2/tests/c9/c92002a.ada
! 5cb78880eadfd9eac647aba39fa528da  gcc/testsuite/ada/acats-2/tests/c9/c92003a.ada
! bfa0af83fa76f2092a243ddded4670d8  gcc/testsuite/ada/acats-2/tests/c9/c92005a.ada
! 379c27e94764b3b61fffdc4a6886f267  gcc/testsuite/ada/acats-2/tests/c9/c92005b.ada
! a47a031badac4df0d97db8bef1c3bc41  gcc/testsuite/ada/acats-2/tests/c9/c92006a.ada
! e4aee3e6761bfd67eaa5d1bd1ef57470  gcc/testsuite/ada/acats-2/tests/c9/c930001.a
! d21857231e61275a32c743ac514d1bc5  gcc/testsuite/ada/acats-2/tests/c9/c93001a.ada
! 493236f457ba46ba4fee16d542742d6c  gcc/testsuite/ada/acats-2/tests/c9/c93002a.ada
! 58f568faf270170c72b48115224a9ea8  gcc/testsuite/ada/acats-2/tests/c9/c93003a.ada
! 7612773970dfbe9066b04bb3ef16a233  gcc/testsuite/ada/acats-2/tests/c9/c93004a.ada
! ba12024ce449c8f19c903d5b83a7772c  gcc/testsuite/ada/acats-2/tests/c9/c93004b.ada
! 84f08b2297ca6e587b20b46ac2f4a739  gcc/testsuite/ada/acats-2/tests/c9/c93004c.ada
! e206bbe8f5a43a6b351e76ac75ac54bf  gcc/testsuite/ada/acats-2/tests/c9/c93004d.ada
! 00ac7aaad0308e432bf16c8682817a14  gcc/testsuite/ada/acats-2/tests/c9/c93004f.ada
! 08c88f164d59d4eab6aca557a4a64946  gcc/testsuite/ada/acats-2/tests/c9/c93005a.ada
! 8e317f80e3b0b4e3561b4aae157d6049  gcc/testsuite/ada/acats-2/tests/c9/c93005b.ada
! 7d334041be29ea9e8c37717a41e00262  gcc/testsuite/ada/acats-2/tests/c9/c93005c.ada
! 7eaab6600302226ca2aa221a1baa20b3  gcc/testsuite/ada/acats-2/tests/c9/c93005d.ada
! f8e495878721a71a7dbdd646b8e0a2f9  gcc/testsuite/ada/acats-2/tests/c9/c93005e.ada
! 0240c3a7deba6bd32679e222b5fadd86  gcc/testsuite/ada/acats-2/tests/c9/c93005f.ada
! c50d0176fa8ed0d5d6234013904fc2bf  gcc/testsuite/ada/acats-2/tests/c9/c93005g.ada
! 6a27b797bf6bf6201d7e22aec1399ef3  gcc/testsuite/ada/acats-2/tests/c9/c93005h.ada
! 9558fcb539a49a288534eb8b0dd23274  gcc/testsuite/ada/acats-2/tests/c9/c93006a.ada
! fe32d2d556faa4d361e61f9063f9d19b  gcc/testsuite/ada/acats-2/tests/c9/c93007a.ada
! e1f28c5786e15914c044ecc368a334c4  gcc/testsuite/ada/acats-2/tests/c9/c93008a.ada
! f12f826d928a3bc55974d9e4a7a4bced  gcc/testsuite/ada/acats-2/tests/c9/c93008b.ada
! 84c45a691f716f13c1acb83d5af7418d  gcc/testsuite/ada/acats-2/tests/c9/c940001.a
! 99f1785334b15c78f6c402eb9581f820  gcc/testsuite/ada/acats-2/tests/c9/c940002.a
! d4515a061510c374dc4e3b73047c01bd  gcc/testsuite/ada/acats-2/tests/c9/c940004.a
! 982944ab84b1e87938411f5e230c4afe  gcc/testsuite/ada/acats-2/tests/c9/c940005.a
! 24e534dd458f6d60deaffb89427151e3  gcc/testsuite/ada/acats-2/tests/c9/c940006.a
! ae39153ecdb5b40b7e250621dda2a947  gcc/testsuite/ada/acats-2/tests/c9/c940007.a
! ed93c06c8fbc77ffcb96431dac0e7567  gcc/testsuite/ada/acats-2/tests/c9/c940010.a
! b5f59a7bcad9207813e580204d7d297d  gcc/testsuite/ada/acats-2/tests/c9/c940011.a
! 2cc5af1321a3389a051ba331add4436e  gcc/testsuite/ada/acats-2/tests/c9/c940012.a
! 46c8ffa64ae0068a1674cd8386b42f41  gcc/testsuite/ada/acats-2/tests/c9/c940013.a
! 9fac2bc0e89e8f222104978b3d1eaf3b  gcc/testsuite/ada/acats-2/tests/c9/c940014.a
! 004d847da87db0a9fe57406d26459dfd  gcc/testsuite/ada/acats-2/tests/c9/c940015.a
! 47e9712a5187d745e5ab17e658f2f210  gcc/testsuite/ada/acats-2/tests/c9/c940016.a
! d6c7936f3b8d4c1d418f288e59676083  gcc/testsuite/ada/acats-2/tests/c9/c94001a.ada
! dbb8668731806fd13d24f9f4652011a1  gcc/testsuite/ada/acats-2/tests/c9/c94001b.ada
! 2a37c7d38240abcbac6ce81990a474e8  gcc/testsuite/ada/acats-2/tests/c9/c94001c.ada
! 5b89b2c47939e01428fda5cdb7b76bfc  gcc/testsuite/ada/acats-2/tests/c9/c94001e.ada
! 79b95e3bce431f5a1d5d5264c35ba5a9  gcc/testsuite/ada/acats-2/tests/c9/c94001f.ada
! 77a4dc124639ae407e5aca42c786703a  gcc/testsuite/ada/acats-2/tests/c9/c94001g.ada
! d99ad4e9eb32c130ce020dfc0891014e  gcc/testsuite/ada/acats-2/tests/c9/c94002a.ada
! ea931758bd0eaf85c1c1a04b2f7c71de  gcc/testsuite/ada/acats-2/tests/c9/c94002b.ada
! 131233ea081ac6ea10a1e10fbba005f2  gcc/testsuite/ada/acats-2/tests/c9/c94002d.ada
! 170256ffad705761ef2331d6d2a07771  gcc/testsuite/ada/acats-2/tests/c9/c94002e.ada
! 066f90e14b935717dde3fa4b96807563  gcc/testsuite/ada/acats-2/tests/c9/c94002f.ada
! 8a13ee6acd0d6f24e23333f06259df08  gcc/testsuite/ada/acats-2/tests/c9/c94002g.ada
! edbadeb0fe0aa698afbadafa8f3436bd  gcc/testsuite/ada/acats-2/tests/c9/c94004a.ada
! 1b81499cc92f2a4727604818b28d5028  gcc/testsuite/ada/acats-2/tests/c9/c94004b.ada
! 3a8b33e638dc0e28266a8e016eeec4fe  gcc/testsuite/ada/acats-2/tests/c9/c94004c.ada
! 2363fc8f9fa540996dd00c6b70dcb3fb  gcc/testsuite/ada/acats-2/tests/c9/c94005a.ada
! 25c866c01dd0b62ce66fb2d8912da8b6  gcc/testsuite/ada/acats-2/tests/c9/c94005b.ada
! 58ea156e98cc4536f068259cb7d392ce  gcc/testsuite/ada/acats-2/tests/c9/c94006a.ada
! 41842cea07ae1bf2ef7a3f649e4ae367  gcc/testsuite/ada/acats-2/tests/c9/c94007a.ada
! 0d97216a40757079eb2c5929715d2b99  gcc/testsuite/ada/acats-2/tests/c9/c94007b.ada
! 4c0be4d154afe78593220fcb4ce1db68  gcc/testsuite/ada/acats-2/tests/c9/c94008a.ada
! 96e113f41f41a01c2196b7773e735c4f  gcc/testsuite/ada/acats-2/tests/c9/c94008b.ada
! 17f5eb44b8190ee09e9f0ffcffe2e7a4  gcc/testsuite/ada/acats-2/tests/c9/c94008c.ada
! c810cc6ac3bebe36845e2cba4e525930  gcc/testsuite/ada/acats-2/tests/c9/c94008d.ada
! ee84f56d88a1ac003b078ea49001e5fa  gcc/testsuite/ada/acats-2/tests/c9/c94010a.ada
! 136872ec7f9870731797ab20b32f6696  gcc/testsuite/ada/acats-2/tests/c9/c94011a.ada
! a8508d1bdacc8da03549a92370d18ed0  gcc/testsuite/ada/acats-2/tests/c9/c94020a.ada
! 54dba96923cbd3444b91d1706e737c16  gcc/testsuite/ada/acats-2/tests/c9/c940a03.a
! 14ac629d930514b19edd9d5fa73cf107  gcc/testsuite/ada/acats-2/tests/c9/c95008a.ada
! b48683e2458942b3ffc46be9054c7911  gcc/testsuite/ada/acats-2/tests/c9/c95009a.ada
! b4adaad3668499bb335d018420c56f91  gcc/testsuite/ada/acats-2/tests/c9/c95010a.ada
! 2900d4b177d19e9f35c4693ea6b14ec8  gcc/testsuite/ada/acats-2/tests/c9/c95011a.ada
! 880dc25ba16839f531364b6a8427aab6  gcc/testsuite/ada/acats-2/tests/c9/c95012a.ada
! 701e89d7711a71b3be5269c5238a18c7  gcc/testsuite/ada/acats-2/tests/c9/c95021a.ada
! c091dcb9509e234377d2ac8ee75d10e0  gcc/testsuite/ada/acats-2/tests/c9/c95022a.ada
! 65035c12f67d253a2397d2126f4ba6c6  gcc/testsuite/ada/acats-2/tests/c9/c95022b.ada
! cc0f07ec1171a66007308281b576f7c4  gcc/testsuite/ada/acats-2/tests/c9/c95033a.ada
! 4de48cf31bf233b1fdc87aeffb9972de  gcc/testsuite/ada/acats-2/tests/c9/c95033b.ada
! cc9febfaeca52b7d6647ca62001797e7  gcc/testsuite/ada/acats-2/tests/c9/c95034a.ada
! d5302e6651eeb53974a9d013a4cdedc8  gcc/testsuite/ada/acats-2/tests/c9/c95034b.ada
! 60c5c5f334073dc4d79928f49152f582  gcc/testsuite/ada/acats-2/tests/c9/c95035a.ada
! 3eda3680c647ff3fb263637efebd9f65  gcc/testsuite/ada/acats-2/tests/c9/c95040a.ada
! 8e8e82ad5bdec76ed6e7c4ae88a3b54f  gcc/testsuite/ada/acats-2/tests/c9/c95040b.ada
! ed765b423843bd4ca78de15c1b071692  gcc/testsuite/ada/acats-2/tests/c9/c95040c.ada
! 30e738c92230ba86578f011623e5802a  gcc/testsuite/ada/acats-2/tests/c9/c95040d.ada
! 168221198b482975d09392b2fcad8a7b  gcc/testsuite/ada/acats-2/tests/c9/c95041a.ada
! c6313618d1cd8a8218dcd446fd95a86e  gcc/testsuite/ada/acats-2/tests/c9/c95065a.ada
! 8832636689a3eda560469f04cfa76418  gcc/testsuite/ada/acats-2/tests/c9/c95065b.ada
! 5aaadcb32b841fad9f31245493b516f6  gcc/testsuite/ada/acats-2/tests/c9/c95065c.ada
! a39b19410538e12fdfcb7cd54d120b3f  gcc/testsuite/ada/acats-2/tests/c9/c95065d.ada
! 383b7f01039162f8c331982cca1d1827  gcc/testsuite/ada/acats-2/tests/c9/c95065e.ada
! c184eac9dc26cf8493bcf20a949ae191  gcc/testsuite/ada/acats-2/tests/c9/c95065f.ada
! 5b0b09d3d393123f8092b9dd3d7d2634  gcc/testsuite/ada/acats-2/tests/c9/c95066a.ada
! 645546a6994e4d75b178f9fe0ead2ec8  gcc/testsuite/ada/acats-2/tests/c9/c95067a.ada
! 0d96b6a028d1fbdc1198cf477386cb10  gcc/testsuite/ada/acats-2/tests/c9/c95071a.ada
! 1252b71f747f12dc764f40b587be838a  gcc/testsuite/ada/acats-2/tests/c9/c95072a.ada
! bd5b6bb2bf3ba074df027795aaa7db33  gcc/testsuite/ada/acats-2/tests/c9/c95072b.ada
! befede1120f2f7955e0b77c883265e25  gcc/testsuite/ada/acats-2/tests/c9/c95073a.ada
! 48c97fe967f3c5e1bc663c5d91ed55bd  gcc/testsuite/ada/acats-2/tests/c9/c95074c.ada
! 6aaf0bf21901d478c7f10321b1c232fc  gcc/testsuite/ada/acats-2/tests/c9/c95076a.ada
! ba053d263ff25d0fe8b66c68cb7bb311  gcc/testsuite/ada/acats-2/tests/c9/c95078a.ada
! a7e9f0e064ac2a29ebe79a19983758dc  gcc/testsuite/ada/acats-2/tests/c9/c95080b.ada
! 73fa133c9eac6146a770bb5525331e35  gcc/testsuite/ada/acats-2/tests/c9/c95082g.ada
! 61f2b9320583cc5ff1eca06b3e8cd887  gcc/testsuite/ada/acats-2/tests/c9/c95085a.ada
! 9e1cf3433f8341a6b183079a377b0fad  gcc/testsuite/ada/acats-2/tests/c9/c95085b.ada
! e39dbe6050c2679aa6a7d89c762e8c0a  gcc/testsuite/ada/acats-2/tests/c9/c95085c.ada
! 6c946d9a6886fc8b7d6145f3958a1016  gcc/testsuite/ada/acats-2/tests/c9/c95085d.ada
! c8c26f8183027ac456df33b272a0e185  gcc/testsuite/ada/acats-2/tests/c9/c95085e.ada
! e29633617dcca72904423b7e09ea1401  gcc/testsuite/ada/acats-2/tests/c9/c95085f.ada
! 3e1d9c4d7627f1b32df23e0787f1ae30  gcc/testsuite/ada/acats-2/tests/c9/c95085g.ada
! 55b52211957a2231b59c295b91e1bbfe  gcc/testsuite/ada/acats-2/tests/c9/c95085h.ada
! f472998d938475a0a5b7c61c4a994dbe  gcc/testsuite/ada/acats-2/tests/c9/c95085i.ada
! e7d6c7d1e457a9097de27a4d4b6df67e  gcc/testsuite/ada/acats-2/tests/c9/c95085j.ada
! 9dcf6b0120351dbd31ca6b3b07007dda  gcc/testsuite/ada/acats-2/tests/c9/c95085k.ada
! f65f9568bbdcba31e56e46a1bff7a8a7  gcc/testsuite/ada/acats-2/tests/c9/c95085l.ada
! 2794ec3980004ff90d3fdda0ebeb57be  gcc/testsuite/ada/acats-2/tests/c9/c95085m.ada
! cd5e6789b1381a01c8abe9b8efc437eb  gcc/testsuite/ada/acats-2/tests/c9/c95085n.ada
! ec751b6898b7a50e0c7e413ac04f3096  gcc/testsuite/ada/acats-2/tests/c9/c95085o.ada
! 4d079ed4815a2d61d769f5571e546504  gcc/testsuite/ada/acats-2/tests/c9/c95086a.ada
! 3f5ba7557a56b3376b0d11a44977eb6b  gcc/testsuite/ada/acats-2/tests/c9/c95086b.ada
! 4423694080505c12206b273d44b25a6c  gcc/testsuite/ada/acats-2/tests/c9/c95086c.ada
! 9ddcd960179a50f19400614669ee58dd  gcc/testsuite/ada/acats-2/tests/c9/c95086d.ada
! b943966db2007cce0bd0ab55a7241cb6  gcc/testsuite/ada/acats-2/tests/c9/c95086e.ada
! 63af3fb63913a9ced35b10b55e03d16c  gcc/testsuite/ada/acats-2/tests/c9/c95086f.ada
! fb4e2598701ac2222961218c56e9989e  gcc/testsuite/ada/acats-2/tests/c9/c95087a.ada
! 6ca41778e752016a3cb5f39d3655160a  gcc/testsuite/ada/acats-2/tests/c9/c95087b.ada
! b77cd9cab875027ed13370d439f3d83a  gcc/testsuite/ada/acats-2/tests/c9/c95087c.ada
! 94c2f92c8d38ace856b3d3a4e46e2f10  gcc/testsuite/ada/acats-2/tests/c9/c95087d.ada
! 8ace111d2db71af514234c843bcdc774  gcc/testsuite/ada/acats-2/tests/c9/c95088a.ada
! 3eab89caa6cfdaad3ecaee2fb3a9de67  gcc/testsuite/ada/acats-2/tests/c9/c95089a.ada
! c23a0d393dfca230669443fa90939e9e  gcc/testsuite/ada/acats-2/tests/c9/c95090a.ada
! 2dea0b25d5837e3f040a606b74b5bfe7  gcc/testsuite/ada/acats-2/tests/c9/c95092a.ada
! da5b15c611f0e80c4bd500a6377cf1fb  gcc/testsuite/ada/acats-2/tests/c9/c95093a.ada
! 411e85f00716bde0eb4bebe2dd4a4b17  gcc/testsuite/ada/acats-2/tests/c9/c95095a.ada
! 20d01625fd521f83c0fbb4e0d5989f1c  gcc/testsuite/ada/acats-2/tests/c9/c95095b.ada
! f1a2d7fb3c08ba5c9b45d28b8c434cf9  gcc/testsuite/ada/acats-2/tests/c9/c95095c.ada
! fe6c832ec4b8584b35ad79ad6f658734  gcc/testsuite/ada/acats-2/tests/c9/c95095d.ada
! d71ab35932ba486e65cee5d0a7ea6c58  gcc/testsuite/ada/acats-2/tests/c9/c95095e.ada
! b665ab275e30b4a49c6a32d1c1b8d3b0  gcc/testsuite/ada/acats-2/tests/c9/c951001.a
! 31bba47fca22f334739b1cb13505c63f  gcc/testsuite/ada/acats-2/tests/c9/c951002.a
! 380eef904bedee70e470eec6283fe7fa  gcc/testsuite/ada/acats-2/tests/c9/c953001.a
! 8b4cbf1e111e939494dbd6c9170d9add  gcc/testsuite/ada/acats-2/tests/c9/c953002.a
! b85e67ebb144368e710912fad26fa9b5  gcc/testsuite/ada/acats-2/tests/c9/c953003.a
! 349793c14b6ee642849a35ac147f6d28  gcc/testsuite/ada/acats-2/tests/c9/c954001.a
! 32a2b22071eb90de620dac85832e7e33  gcc/testsuite/ada/acats-2/tests/c9/c954010.a
! 5c71f334e75e4b81847ba6609055a721  gcc/testsuite/ada/acats-2/tests/c9/c954011.a
! 0f6b02e34f34de574c7f90adcb78c1d3  gcc/testsuite/ada/acats-2/tests/c9/c954012.a
! 0af78b179cbaf289947a4b0cc90e1b92  gcc/testsuite/ada/acats-2/tests/c9/c954013.a
! 498084096b8ec59a36a889374ad9ee3e  gcc/testsuite/ada/acats-2/tests/c9/c954014.a
! 97799887dcbf60005b2df40f05636514  gcc/testsuite/ada/acats-2/tests/c9/c954015.a
! 2490fc80b69ada26f8142dacebcc5823  gcc/testsuite/ada/acats-2/tests/c9/c954016.a
! 23e5c9126dfc78e228cd9ba7e9fd2f4d  gcc/testsuite/ada/acats-2/tests/c9/c954017.a
! bdfa1b9ada52a8082dfc30a91d56af89  gcc/testsuite/ada/acats-2/tests/c9/c954018.a
! e039ba87aa8e5a87f7f74695cc19d917  gcc/testsuite/ada/acats-2/tests/c9/c954019.a
! 718a1dda410ad24ef00a024b2e415626  gcc/testsuite/ada/acats-2/tests/c9/c954020.a
! 8f5a7fd94fd12664cdd2a1cedfcad90c  gcc/testsuite/ada/acats-2/tests/c9/c954021.a
! 34dbbc567c8a72d4e43da4684357c65d  gcc/testsuite/ada/acats-2/tests/c9/c954022.a
! acd00fcab6e1b0d13797a97adc97adb7  gcc/testsuite/ada/acats-2/tests/c9/c954023.a
! 2b49282ca4813eb7610dffe2400f50ff  gcc/testsuite/ada/acats-2/tests/c9/c954024.a
! 2331b8760176763cf23ae6f18488082f  gcc/testsuite/ada/acats-2/tests/c9/c954025.a
! 6bd1092f468dab44c0887902809a3c13  gcc/testsuite/ada/acats-2/tests/c9/c954026.a
! 97487e5b93226e3c55df7449702ac3da  gcc/testsuite/ada/acats-2/tests/c9/c954a01.a
! d07c1374471df9299b8057f6479a45e6  gcc/testsuite/ada/acats-2/tests/c9/c954a02.a
! b1b9ce862c0b325027b8ea2d1d8cc916  gcc/testsuite/ada/acats-2/tests/c9/c954a03.a
! d02e3ef0eb5c7ba2f412817b49644270  gcc/testsuite/ada/acats-2/tests/c9/c960001.a
! da6bb14a212aa02754b6596d741c04b8  gcc/testsuite/ada/acats-2/tests/c9/c960002.a
! 4c5c6b7d7706870241781f97576eef1b  gcc/testsuite/ada/acats-2/tests/c9/c960004.a
! f703a55c27d27529f63150ba86c8e428  gcc/testsuite/ada/acats-2/tests/c9/c96001a.ada
! 3551216de1ec0430cae6be8fbba64031  gcc/testsuite/ada/acats-2/tests/c9/c96004a.ada
! 2f64957621aaee0d11d2f8171f4e6709  gcc/testsuite/ada/acats-2/tests/c9/c96005a.ada
! 7fad724f14640158cc9929364f0bb44f  gcc/testsuite/ada/acats-2/tests/c9/c96005b.tst
! 6e3aebd279f9456cefe6dc63b3b9331e  gcc/testsuite/ada/acats-2/tests/c9/c96005d.ada
! 48530b441ec07b282f87a1b285f46461  gcc/testsuite/ada/acats-2/tests/c9/c96005f.ada
! 4ea722032f17d484d0a99cb53bc930ac  gcc/testsuite/ada/acats-2/tests/c9/c96006a.ada
! 83d75c4aa3732428ebf8864a605ee0d4  gcc/testsuite/ada/acats-2/tests/c9/c96007a.ada
! 031bef964d04e0ec5db2ff1f13daa5c1  gcc/testsuite/ada/acats-2/tests/c9/c96008a.ada
! f1d6b97aec5c567380c522a41db1aba7  gcc/testsuite/ada/acats-2/tests/c9/c96008b.ada
! 9f6fd5618561fb30c4c3b3865512f084  gcc/testsuite/ada/acats-2/tests/c9/c97112a.ada
! 9a595e747efc52363c8c454c5697526c  gcc/testsuite/ada/acats-2/tests/c9/c97113a.ada
! 0a432c8f0bafafbfd3ca9e2c4c355355  gcc/testsuite/ada/acats-2/tests/c9/c97114a.ada
! f204e89327ed70fed4f01e37237ed370  gcc/testsuite/ada/acats-2/tests/c9/c97115a.ada
! ad10c842934da9fd10b075d2eda11b10  gcc/testsuite/ada/acats-2/tests/c9/c97116a.ada
! 4e1bee03164214d6b948f1c4d7727423  gcc/testsuite/ada/acats-2/tests/c9/c97117a.ada
! f316b207affd7df5674d718268b31bd7  gcc/testsuite/ada/acats-2/tests/c9/c97117b.ada
! c15c876df898d95befc462a0646f94e6  gcc/testsuite/ada/acats-2/tests/c9/c97117c.ada
! 06046e05a2477dc8986dff46f6adb19d  gcc/testsuite/ada/acats-2/tests/c9/c97118a.ada
! 713383a150292af0da0dc77e7a23ab4b  gcc/testsuite/ada/acats-2/tests/c9/c97120a.ada
! 1edcf8a00884d843f01295b66b3346ed  gcc/testsuite/ada/acats-2/tests/c9/c97120b.ada
! d6606fac2f86c01ef106a193d274ec96  gcc/testsuite/ada/acats-2/tests/c9/c97201a.ada
! 2be86a6c8f33794ef758dfb71bf75acd  gcc/testsuite/ada/acats-2/tests/c9/c97201b.ada
! 32743b2ed9403b69d98c56734934fa8f  gcc/testsuite/ada/acats-2/tests/c9/c97201c.ada
! 1feeeccbfc144d846a5fac5dc371b1ab  gcc/testsuite/ada/acats-2/tests/c9/c97201d.ada
! 4b003338cd3cfce9c7070dea4b8370a1  gcc/testsuite/ada/acats-2/tests/c9/c97201e.ada
! 383c30d1a9dc6fba56fb3b68b9d8417d  gcc/testsuite/ada/acats-2/tests/c9/c97201g.ada
! 2a874dccde240e48a4f9b0c6b5175219  gcc/testsuite/ada/acats-2/tests/c9/c97201h.ada
! a7aec17b036081fd245c141c14cea8c3  gcc/testsuite/ada/acats-2/tests/c9/c97201x.ada
! 8b04c9ca3ccf2bd719076369af023d12  gcc/testsuite/ada/acats-2/tests/c9/c97202a.ada
! 096a975a5320d43a7ba562f9f18d94e6  gcc/testsuite/ada/acats-2/tests/c9/c97203a.ada
! 4470e62031e7933d85cbc73da17fef70  gcc/testsuite/ada/acats-2/tests/c9/c97203b.ada
! 64b03c91289d25db071b852a88b5d9cb  gcc/testsuite/ada/acats-2/tests/c9/c97203c.ada
! ddc6cf33bc17eabf4869adcc1d29e3d0  gcc/testsuite/ada/acats-2/tests/c9/c97204a.ada
! d4911cea3ce93679f126d507a45d22fa  gcc/testsuite/ada/acats-2/tests/c9/c97204b.ada
! f112637a1de7d372487415fe7c563edd  gcc/testsuite/ada/acats-2/tests/c9/c97205a.ada
! 5532215767fea9cf0ff3d5a28af0ffbf  gcc/testsuite/ada/acats-2/tests/c9/c97205b.ada
! 01050a4da75368f4c45e1856db21fe08  gcc/testsuite/ada/acats-2/tests/c9/c97301a.ada
! 3bb292049b1010404ee847832e15f4fd  gcc/testsuite/ada/acats-2/tests/c9/c97301b.ada
! dc309970b8d1ee31a4ac51d708f59f23  gcc/testsuite/ada/acats-2/tests/c9/c97301c.ada
! 85087bd563a15cb83cb82906dd074b46  gcc/testsuite/ada/acats-2/tests/c9/c97301d.ada
! cf609a3a37b7091f993fde3ebec98b7b  gcc/testsuite/ada/acats-2/tests/c9/c97301e.ada
! fb0f6367a2cb242d11e68bb0833594c9  gcc/testsuite/ada/acats-2/tests/c9/c97302a.ada
! ee3941e300e101619899d4ce5e433914  gcc/testsuite/ada/acats-2/tests/c9/c97303a.ada
! 0c9b0b786acee85921087f08e05ee848  gcc/testsuite/ada/acats-2/tests/c9/c97303b.ada
! dca0cd362816588d4976d342beb2593d  gcc/testsuite/ada/acats-2/tests/c9/c97303c.ada
! cb2ab9f96734f02dcf13d24f2e73aec3  gcc/testsuite/ada/acats-2/tests/c9/c97304a.ada
! d754e67cb299985d2d7ab32f0d7831d4  gcc/testsuite/ada/acats-2/tests/c9/c97304b.ada
! 2f91d4b7e4df271c291c8528b0ac77c5  gcc/testsuite/ada/acats-2/tests/c9/c97305a.ada
! 99ee5abaa01d4f88e63554c6c77981a8  gcc/testsuite/ada/acats-2/tests/c9/c97305b.ada
! 5a1e95417e5dc56ea2eaa24f2cb98647  gcc/testsuite/ada/acats-2/tests/c9/c97305c.ada
! fa76b14386e1262d53b830ca97f97d45  gcc/testsuite/ada/acats-2/tests/c9/c97305d.ada
! 6fc73ebaa144622a8c55a755858c8214  gcc/testsuite/ada/acats-2/tests/c9/c97307a.ada
! 3159a203f1d3e85954c526f58a3919f1  gcc/testsuite/ada/acats-2/tests/c9/c974001.a
! 0314ba23ab70ea268178d5697c5a9034  gcc/testsuite/ada/acats-2/tests/c9/c974002.a
! f748892726b6f9f427e087ed38edff1e  gcc/testsuite/ada/acats-2/tests/c9/c974003.a
! 68b75700dc10aa1f753b947e8cfc83f7  gcc/testsuite/ada/acats-2/tests/c9/c974004.a
! c9f29dff7d0c7abcfdc4dd10f92cc818  gcc/testsuite/ada/acats-2/tests/c9/c974005.a
! 58bc14008a240c1458d789aea37231f5  gcc/testsuite/ada/acats-2/tests/c9/c974006.a
! 6386f90159d93f8e888fc5c7606c48ab  gcc/testsuite/ada/acats-2/tests/c9/c974007.a
! 091b77c15a7a69901928f3e08e5d560b  gcc/testsuite/ada/acats-2/tests/c9/c974008.a
! 4286211e8302b327c6fcddd998068801  gcc/testsuite/ada/acats-2/tests/c9/c974009.a
! 91418d184ffd74f3511f7c7fecf5ad4c  gcc/testsuite/ada/acats-2/tests/c9/c974010.a
! fb71769796ae10266d6396de27fcd9f3  gcc/testsuite/ada/acats-2/tests/c9/c974011.a
! 75ae944a2f56bfec34a43bcac81f0f6a  gcc/testsuite/ada/acats-2/tests/c9/c974012.a
! cf3493d33888a126779c4a1fd8c7e171  gcc/testsuite/ada/acats-2/tests/c9/c974013.a
! 0100f02b896d741021d8771778c05fe4  gcc/testsuite/ada/acats-2/tests/c9/c974014.a
! 120dd4802d990998dbefafba1d6bdf05  gcc/testsuite/ada/acats-2/tests/c9/c980001.a
! 98a89250f238d2d958192b464be9c644  gcc/testsuite/ada/acats-2/tests/c9/c980002.a
! 387e8d4bc42079cf88da235a35d5db46  gcc/testsuite/ada/acats-2/tests/c9/c980003.a
! 8c9e7662d2c57ef91bde2dbdd2ceaade  gcc/testsuite/ada/acats-2/tests/c9/c99004a.ada
! 4a6308ea54645ac0a0ff6750ddff3bee  gcc/testsuite/ada/acats-2/tests/c9/c99005a.ada
! 0ade252d597ba9f5685bfdbc39ad5126  gcc/testsuite/ada/acats-2/tests/c9/c9a003a.ada
! f6efef2daeceae0601810ea34d294ebe  gcc/testsuite/ada/acats-2/tests/c9/c9a004a.ada
! dd8112b4d2ad70bb900170e976687d24  gcc/testsuite/ada/acats-2/tests/c9/c9a007a.ada
! d7d23b9be56f63a7a3eb64ae5740a50f  gcc/testsuite/ada/acats-2/tests/c9/c9a009a.ada
! 4a79ec0aad1fb7e6af0cb13c26c8a078  gcc/testsuite/ada/acats-2/tests/c9/c9a009c.ada
! a6fedb4d1bd7420511136db146b4479f  gcc/testsuite/ada/acats-2/tests/c9/c9a009f.ada
! 92177b39404bc5c23481f443eee705e0  gcc/testsuite/ada/acats-2/tests/c9/c9a009g.ada
! 56b8d40db1bb38ab15ba53a518a8e8e3  gcc/testsuite/ada/acats-2/tests/c9/c9a009h.ada
! 378ed54deee6ae14733d353d1d034e4e  gcc/testsuite/ada/acats-2/tests/c9/c9a010a.ada
! 7e86b851f4df1a5b809ec8656042b7f1  gcc/testsuite/ada/acats-2/tests/c9/c9a011a.ada
! 15b92866c3feb68befd87bd433944eee  gcc/testsuite/ada/acats-2/tests/c9/c9a011b.ada
! 204dadfff9a19c758cd37f55b4c4da7c  gcc/testsuite/ada/acats-2/tests/ca/ca1003a.ada
! 763e67e5131cf453849af1119c81ab73  gcc/testsuite/ada/acats-2/tests/ca/ca1004a.ada
! 4dd6d7580352576ccd7263ab195d5863  gcc/testsuite/ada/acats-2/tests/ca/ca1005a.ada
! 129a313a5c15d69fc95b27e10654ea3b  gcc/testsuite/ada/acats-2/tests/ca/ca1006a.ada
! 150e449e50b6c5dbc1ef87fb7cbf4fb9  gcc/testsuite/ada/acats-2/tests/ca/ca1011a0.ada
! 590b512fe8313d2c235285182f8eda0d  gcc/testsuite/ada/acats-2/tests/ca/ca1011a1.ada
! 75907d5f95c902eae76627ab16c741b7  gcc/testsuite/ada/acats-2/tests/ca/ca1011a2.ada
! 401ad7f509f398efd9094cfb553d02ca  gcc/testsuite/ada/acats-2/tests/ca/ca1011a3.ada
! d6d2e55e299aae0f7b20781714e0f6d9  gcc/testsuite/ada/acats-2/tests/ca/ca1011a4.ada
! e840ac05d90e7ef06dac4303f5747d0c  gcc/testsuite/ada/acats-2/tests/ca/ca1011a5.ada
! 696cc4292fd590eaf3673d74b1c0c4f9  gcc/testsuite/ada/acats-2/tests/ca/ca1011a6.ada
! 19ae39e48cdc2ea32ddbde00fdb0bf17  gcc/testsuite/ada/acats-2/tests/ca/ca1012a0.ada
! c3bd20289c2b3b2422a8e051dfc8b100  gcc/testsuite/ada/acats-2/tests/ca/ca1012a1.ada
! 010a8d3290ef3a0b00bcbe784544f65f  gcc/testsuite/ada/acats-2/tests/ca/ca1012a2.ada
! 49dff1e5fe3bc3d0814772fe822732a9  gcc/testsuite/ada/acats-2/tests/ca/ca1012a3.ada
! 3660d5d1740e1e424e76277266bd8268  gcc/testsuite/ada/acats-2/tests/ca/ca1012a4.ada
! 2a073bfb3680a6d94b420c58b535dda1  gcc/testsuite/ada/acats-2/tests/ca/ca1012b0.ada
! 1d0a019e12d9aec35762beffba68a14a  gcc/testsuite/ada/acats-2/tests/ca/ca1012b2.ada
! 8fe092748b9f031c395eb8aa90296599  gcc/testsuite/ada/acats-2/tests/ca/ca1012b4.ada
! 2ee859ea2c2cb8cd94e30b6c19c152f7  gcc/testsuite/ada/acats-2/tests/ca/ca1013a0.ada
! a15e85ff9101c6b7debdc0a508f121b6  gcc/testsuite/ada/acats-2/tests/ca/ca1013a1.ada
! 03baa6347b38eb86dabe6092928f99a3  gcc/testsuite/ada/acats-2/tests/ca/ca1013a2.ada
! a81d2aa44c2ded0527dbc731919e9089  gcc/testsuite/ada/acats-2/tests/ca/ca1013a3.ada
! baa2f985db9330503fee62fb421c3429  gcc/testsuite/ada/acats-2/tests/ca/ca1013a4.ada
! 9fc93552ea16f09c4c827809b41b3281  gcc/testsuite/ada/acats-2/tests/ca/ca1013a5.ada
! eb0f6d8e24d16363c032c027a7fb22d5  gcc/testsuite/ada/acats-2/tests/ca/ca1013a6.ada
! b35c89f01ddf1fa22d017dd159aac614  gcc/testsuite/ada/acats-2/tests/ca/ca1014a0.ada
! 5077be000dc1a7e1b7b61ca260535b47  gcc/testsuite/ada/acats-2/tests/ca/ca1014a1.ada
! 0d51872b8ac47d25b56ce86661e1c370  gcc/testsuite/ada/acats-2/tests/ca/ca1014a2.ada
! 29a9a130e24e0e0ced6be54af8af32af  gcc/testsuite/ada/acats-2/tests/ca/ca1014a3.ada
! bda7cf51d24fabf05ab2eb537ba61e3b  gcc/testsuite/ada/acats-2/tests/ca/ca1020e0.ada
! e875db44aa84c70db8ae5e21b37fd9f1  gcc/testsuite/ada/acats-2/tests/ca/ca1020e1.ada
! 3f26efdf7d61547aec29a83c55db9b2c  gcc/testsuite/ada/acats-2/tests/ca/ca1020e2.ada
! d41b12fbbd6a609065e3a66751a2bcfd  gcc/testsuite/ada/acats-2/tests/ca/ca1020e3.ada
! 94d90f2a39051c6c6e6f143035815676  gcc/testsuite/ada/acats-2/tests/ca/ca1022a0.ada
! 522a519bdf3184fbe9c278d90eaa0c51  gcc/testsuite/ada/acats-2/tests/ca/ca1022a1.ada
! 457d2a59db3a3a962c68d076c3588ba2  gcc/testsuite/ada/acats-2/tests/ca/ca1022a2.ada
! bead0060014fd3fff3245a6f20e1ce5d  gcc/testsuite/ada/acats-2/tests/ca/ca1022a3.ada
! 7043e3690e3b44d0a6dcf5a6e896118c  gcc/testsuite/ada/acats-2/tests/ca/ca1022a4.ada
! a84d185297f5e0df081a4d1c5691575a  gcc/testsuite/ada/acats-2/tests/ca/ca1022a5.ada
! 3170507b82e5b87d289d4cc70305ba1c  gcc/testsuite/ada/acats-2/tests/ca/ca1022a6.ada
! 43efb4507d79b8829492325770ec57e8  gcc/testsuite/ada/acats-2/tests/ca/ca11001.a
! ac29fbda8eadae439bcd450881bc7149  gcc/testsuite/ada/acats-2/tests/ca/ca11002.a
! b9954b4449d887004c58cdfadf86900e  gcc/testsuite/ada/acats-2/tests/ca/ca11003.a
! 5858be41247b333a8e43986902fba588  gcc/testsuite/ada/acats-2/tests/ca/ca110040.a
! a977e479cabfc8bfede672c52d423864  gcc/testsuite/ada/acats-2/tests/ca/ca110041.a
! a2118dee2a16348d232ec7617376dade  gcc/testsuite/ada/acats-2/tests/ca/ca110042.am
! 4a8c0c2b4dd227cfda4c20ad9ff07ace  gcc/testsuite/ada/acats-2/tests/ca/ca110050.a
! 0583459492312df56b1924ffe5b094bd  gcc/testsuite/ada/acats-2/tests/ca/ca110051.am
! bc46a97640375fa6c02bac82bd0ea9d4  gcc/testsuite/ada/acats-2/tests/ca/ca11006.a
! 7a57ba0892ae966f0111911781c328a7  gcc/testsuite/ada/acats-2/tests/ca/ca11007.a
! 72dc8d276317eabd399e4b72e562434b  gcc/testsuite/ada/acats-2/tests/ca/ca11008.a
! 33d1886825125a9ff16aafa1d4eeb8ce  gcc/testsuite/ada/acats-2/tests/ca/ca11009.a
! 6009d53581cd1fedaaa5f8df00bec83f  gcc/testsuite/ada/acats-2/tests/ca/ca11010.a
! 41dc04e344132ae2173153f802896e15  gcc/testsuite/ada/acats-2/tests/ca/ca11011.a
! d28dd7fd562acb52e90429450077885b  gcc/testsuite/ada/acats-2/tests/ca/ca11012.a
! 3b4e1d1303122a2165d7a89e5ca75ec0  gcc/testsuite/ada/acats-2/tests/ca/ca11013.a
! e80e120c9035b007bb06c2accccbc2b3  gcc/testsuite/ada/acats-2/tests/ca/ca11014.a
! 97408d6755af6eeab48fe47d27144c12  gcc/testsuite/ada/acats-2/tests/ca/ca11015.a
! 8b415d0e8ca6c7725a02853b184967b4  gcc/testsuite/ada/acats-2/tests/ca/ca11016.a
! 5b1b2a824041eeb6d0560a6e32d48287  gcc/testsuite/ada/acats-2/tests/ca/ca11017.a
! df67588f2af1ce9fe9abd12c930a475a  gcc/testsuite/ada/acats-2/tests/ca/ca11018.a
! d51c3aaeac91d325c8cea73a18210a18  gcc/testsuite/ada/acats-2/tests/ca/ca11019.a
! 1740b30abc976744100e38e3bcf58e99  gcc/testsuite/ada/acats-2/tests/ca/ca11020.a
! 3a6518f945e25a1aeb3ad194d1563dff  gcc/testsuite/ada/acats-2/tests/ca/ca11021.a
! 5af82e195906ba434bd96462dc39c4c1  gcc/testsuite/ada/acats-2/tests/ca/ca11022.a
! dccf8acb158b9eac07884aeacd894def  gcc/testsuite/ada/acats-2/tests/ca/ca1102a0.ada
! 2ed4ef9cb779e0d0250f3094928e85b6  gcc/testsuite/ada/acats-2/tests/ca/ca1102a1.ada
! d658c78d3feceb2e1e932fd6a6b84b5b  gcc/testsuite/ada/acats-2/tests/ca/ca1102a2.ada
! 50c4e887be1e9c4b7922f1519eb6c980  gcc/testsuite/ada/acats-2/tests/ca/ca1106a.ada
! b777b7cb27b27b07d7781e4ffd98a4ac  gcc/testsuite/ada/acats-2/tests/ca/ca1108a.ada
! 2f0f9c93c1bcab591f855d52670c37f0  gcc/testsuite/ada/acats-2/tests/ca/ca1108b.ada
! d320add603a2cb7fa5b0b27eb3cf9f99  gcc/testsuite/ada/acats-2/tests/ca/ca11a01.a
! 564d10a7c04f96788c8960fbe51c939e  gcc/testsuite/ada/acats-2/tests/ca/ca11a02.a
! c5b8e3a142a8d1aaf458e85e143d2dff  gcc/testsuite/ada/acats-2/tests/ca/ca11b01.a
! 385324ae1a50700efcc3e91d33d38fa7  gcc/testsuite/ada/acats-2/tests/ca/ca11b02.a
! f3ab6e0bea1b83fcd4c3a152e700e0bc  gcc/testsuite/ada/acats-2/tests/ca/ca11c01.a
! 71af51028e9bdd5cbcd5d81ee9beb0b5  gcc/testsuite/ada/acats-2/tests/ca/ca11c02.a
! 623cecaae9f9690a91d838f3795828e4  gcc/testsuite/ada/acats-2/tests/ca/ca11c03.a
! d0d1001f9819954c3537dd82876810a2  gcc/testsuite/ada/acats-2/tests/ca/ca11d010.a
! 9f2dd49cf5ff9af1c2217e51b7065e52  gcc/testsuite/ada/acats-2/tests/ca/ca11d011.a
! df976f60528d7144894c0dec4d84bc15  gcc/testsuite/ada/acats-2/tests/ca/ca11d012.a
! 6caa9498e84d76bdc74f46ac12a1a5e2  gcc/testsuite/ada/acats-2/tests/ca/ca11d013.am
! 0e13dcf32c88dedfbae0b03875ea105d  gcc/testsuite/ada/acats-2/tests/ca/ca11d02.a
! 352a0f61cf20bb4dd3caf17335850840  gcc/testsuite/ada/acats-2/tests/ca/ca11d03.a
! 196ff89b7529ee2981f4ecc32c27a27f  gcc/testsuite/ada/acats-2/tests/ca/ca13001.a
! a30bb2c455fbe1c012213193058ea38a  gcc/testsuite/ada/acats-2/tests/ca/ca13002.a
! 259d9991bd14633e726a1465b3ce011f  gcc/testsuite/ada/acats-2/tests/ca/ca13003.a
! 4a04a3ea16a7b5f16f46083006b00231  gcc/testsuite/ada/acats-2/tests/ca/ca13a01.a
! ef93a0b4b9d9c30a5f19c2e9d20d6e84  gcc/testsuite/ada/acats-2/tests/ca/ca13a02.a
! 14642bbab92bb9a06637c81126196b6d  gcc/testsuite/ada/acats-2/tests/ca/ca140230.a
! db8f6b8a7c3fb7fc6f41665ca76898aa  gcc/testsuite/ada/acats-2/tests/ca/ca140231.a
! 2c51220694c3930837b65093969330e9  gcc/testsuite/ada/acats-2/tests/ca/ca140232.am
! 97cc025b6e8c23ed35706e0ff98d4305  gcc/testsuite/ada/acats-2/tests/ca/ca140233.a
! 6df92dded9f1b1b9927e74380e21b606  gcc/testsuite/ada/acats-2/tests/ca/ca140280.a
! 6d433407d31454677f59a9de849b9a8a  gcc/testsuite/ada/acats-2/tests/ca/ca140281.a
! c7d9485411a37bafb94c4d619229cf30  gcc/testsuite/ada/acats-2/tests/ca/ca140282.a
! 0382d20f38d7c210393543ff57720eee  gcc/testsuite/ada/acats-2/tests/ca/ca140283.am
! 3ddbeeafbf30ff3f598a354d6504380d  gcc/testsuite/ada/acats-2/tests/ca/ca15003.a
! 3a4f3b580416cb1f523e9f0ac2eae79d  gcc/testsuite/ada/acats-2/tests/ca/ca200020.a
! 0a900895683bd2063208a7e0ec0179eb  gcc/testsuite/ada/acats-2/tests/ca/ca200021.a
! 7ba1dcfca4bbc7dddaa33358007ad8be  gcc/testsuite/ada/acats-2/tests/ca/ca200022.am
! 89e55ace469231379417158d76cef966  gcc/testsuite/ada/acats-2/tests/ca/ca2001h0.ada
! 4fcb3c9a010c482fd799920396bdff35  gcc/testsuite/ada/acats-2/tests/ca/ca2001h1.ada
! 74283fc28ee649c49603986ce9271f9b  gcc/testsuite/ada/acats-2/tests/ca/ca2001h2.ada
! 38f9b878948bab9e22743f449944e3e9  gcc/testsuite/ada/acats-2/tests/ca/ca2001h3.ada
! 5b863537f3743728296719d32393b9c2  gcc/testsuite/ada/acats-2/tests/ca/ca2002a0.ada
! bfbaab505e4866cb5784b784957c9a28  gcc/testsuite/ada/acats-2/tests/ca/ca2002a1.ada
! 0915a28827cb6de231954ac4c117a867  gcc/testsuite/ada/acats-2/tests/ca/ca2002a2.ada
! be28bd99026e48f3d74a229aea62f3d3  gcc/testsuite/ada/acats-2/tests/ca/ca2003a0.ada
! bbd409da60934657820661962e6e865f  gcc/testsuite/ada/acats-2/tests/ca/ca2003a1.ada
! e9823de02e5e243ffbc96966ad66f571  gcc/testsuite/ada/acats-2/tests/ca/ca2004a0.ada
! 2a6a75cbeb635fa9b353f4456f15887a  gcc/testsuite/ada/acats-2/tests/ca/ca2004a1.ada
! 9e55a07446b2c4b6f10c94a096696c64  gcc/testsuite/ada/acats-2/tests/ca/ca2004a2.ada
! 95743db093f3de73eef851e06ace6ae5  gcc/testsuite/ada/acats-2/tests/ca/ca2004a3.ada
! 9825991acff14d1e11e40a3568bb2e77  gcc/testsuite/ada/acats-2/tests/ca/ca2004a4.ada
! 1ed6b70320b71de2337bd1e17625341d  gcc/testsuite/ada/acats-2/tests/ca/ca2007a0.ada
! 2d33ec3a837a5a5e131936b8db94f4eb  gcc/testsuite/ada/acats-2/tests/ca/ca2007a1.ada
! 40ec1534c1b7d0a29cd8b1199f0a5b64  gcc/testsuite/ada/acats-2/tests/ca/ca2007a2.ada
! 25e21e36ad48e61821b87c24ac11bca6  gcc/testsuite/ada/acats-2/tests/ca/ca2007a3.ada
! 084eafcf0c9bde63eb9b0c876f25f904  gcc/testsuite/ada/acats-2/tests/ca/ca2008a0.ada
! c367605d05bd5ae5bf81c583e66e2720  gcc/testsuite/ada/acats-2/tests/ca/ca2008a1.ada
! c06ae786d36e4922cea7b5ed9453c9f3  gcc/testsuite/ada/acats-2/tests/ca/ca2008a2.ada
! e6666b45adcad1b99635211e793ed244  gcc/testsuite/ada/acats-2/tests/ca/ca2009a.ada
! 091802695ed73e62107b4d4d28c4fa67  gcc/testsuite/ada/acats-2/tests/ca/ca2009c0.ada
! d4908bcb77941027c20a57e38b3354df  gcc/testsuite/ada/acats-2/tests/ca/ca2009c1.ada
! 8793e38b06624960b964675c87a7bb50  gcc/testsuite/ada/acats-2/tests/ca/ca2009d.ada
! ebd60829cd41edbd06d5d34b1c55ad14  gcc/testsuite/ada/acats-2/tests/ca/ca2009f0.ada
! 84847d496c3551158605ff4d635fd1d6  gcc/testsuite/ada/acats-2/tests/ca/ca2009f1.ada
! 1b68aafa35a5844624d091cb512b83a3  gcc/testsuite/ada/acats-2/tests/ca/ca2009f2.ada
! 82a3883dad29bf7e9b2b43d245e96819  gcc/testsuite/ada/acats-2/tests/ca/ca2011b.ada
! a2806b84bcf970945201d14057ba77fb  gcc/testsuite/ada/acats-2/tests/ca/ca21001.a
! 9b176edf2b085f407ab53c6e7efa0bf0  gcc/testsuite/ada/acats-2/tests/ca/ca3011a0.ada
! a4e05800840beaa80583438f2fe8754d  gcc/testsuite/ada/acats-2/tests/ca/ca3011a1.ada
! c86a5bb82c1bade39f6d9d230f8c9e8e  gcc/testsuite/ada/acats-2/tests/ca/ca3011a2.ada
! dc43067ded3ab1437027708d7812aadb  gcc/testsuite/ada/acats-2/tests/ca/ca3011a3.ada
! b4bbe2bad37830cb59bac3673786910c  gcc/testsuite/ada/acats-2/tests/ca/ca3011a4.ada
! c29e663763861d160ff3432b1e522015  gcc/testsuite/ada/acats-2/tests/ca/ca5003a0.ada
! e5dcfd787f24d6dfedf73b0e116e1352  gcc/testsuite/ada/acats-2/tests/ca/ca5003a1.ada
! 248734cc36c6828c5b5d0a7c1293df27  gcc/testsuite/ada/acats-2/tests/ca/ca5003a2.ada
! 5497b59108e98e726b8af5fae575c343  gcc/testsuite/ada/acats-2/tests/ca/ca5003a3.ada
! 3ca92f928c3fab5699f3ed1cbb10cca7  gcc/testsuite/ada/acats-2/tests/ca/ca5003a4.ada
! 15800c833dc097d881eb01771f2ddb56  gcc/testsuite/ada/acats-2/tests/ca/ca5003a5.ada
! 42a60fa8194ce3db5c65b6814ea59f15  gcc/testsuite/ada/acats-2/tests/ca/ca5003a6.ada
! 0402a0137d3537a7d4ae11fe9268e188  gcc/testsuite/ada/acats-2/tests/ca/ca5003b0.ada
! 56d17409bae5c4f8247c69372dada6a7  gcc/testsuite/ada/acats-2/tests/ca/ca5003b1.ada
! 2ef9cab842c822e5b35867c53e777c18  gcc/testsuite/ada/acats-2/tests/ca/ca5003b2.ada
! 82b234cda282c69bd1cd3343d6564886  gcc/testsuite/ada/acats-2/tests/ca/ca5003b3.ada
! 0e13bff44fe10fc5bb9178c91aa8f41b  gcc/testsuite/ada/acats-2/tests/ca/ca5003b4.ada
! 05dbe877925c828ecc6371bacbfdfa20  gcc/testsuite/ada/acats-2/tests/ca/ca5003b5.ada
! 86085a25df2bcf17731e5abce3a41858  gcc/testsuite/ada/acats-2/tests/ca/ca5004a.ada
! 4663b5feb03415ae2fecb74dc9a6d918  gcc/testsuite/ada/acats-2/tests/ca/ca5004b0.ada
! dac927119e0c75edf0e171d438d99a0b  gcc/testsuite/ada/acats-2/tests/ca/ca5004b1.ada
! fb2c0908bc96e07939ff5f370be3d576  gcc/testsuite/ada/acats-2/tests/ca/ca5004b2.ada
! de4ee9e1d0577cbafe35f74312690093  gcc/testsuite/ada/acats-2/tests/ca/ca5006a.ada
! 953459f6c3ce7331d1cf5e82d075046f  gcc/testsuite/ada/acats-2/tests/cb/cb10002.a
! a2d96f308f3e7c5c03f4f9d216128c1c  gcc/testsuite/ada/acats-2/tests/cb/cb1001a.ada
! c9d819541b343e576525a8dc64f50bcc  gcc/testsuite/ada/acats-2/tests/cb/cb1004a.ada
! cd057227d4389433804bcb77c3065624  gcc/testsuite/ada/acats-2/tests/cb/cb1005a.ada
! 5335053bd77df186552ab553aed53d59  gcc/testsuite/ada/acats-2/tests/cb/cb1010a.ada
! 6be3f5adbcfcbc452379f748a85caa57  gcc/testsuite/ada/acats-2/tests/cb/cb1010c.ada
! 0a7ba5489277a0fcbe1b644ea3d981a3  gcc/testsuite/ada/acats-2/tests/cb/cb1010d.ada
! 6cae622e32e9824d353863435f37029e  gcc/testsuite/ada/acats-2/tests/cb/cb20001.a
! f70c8a2a06450a84e9c16c2c896968c2  gcc/testsuite/ada/acats-2/tests/cb/cb20003.a
! fe4620ca44567358367bbd3cbf625a78  gcc/testsuite/ada/acats-2/tests/cb/cb20004.a
! 35b97a6a98aab2205d9fafa16376dd73  gcc/testsuite/ada/acats-2/tests/cb/cb20005.a
! 2eb8439ac2fe1164f75cef3955ed5f7e  gcc/testsuite/ada/acats-2/tests/cb/cb20006.a
! 14f424c9945ffa51a8ed9b5158035a61  gcc/testsuite/ada/acats-2/tests/cb/cb20007.a
! 81b37c096b48361109ecfd3c0a735d6f  gcc/testsuite/ada/acats-2/tests/cb/cb2004a.ada
! c9e534ca3b39a7e52f750d7ada5b1f05  gcc/testsuite/ada/acats-2/tests/cb/cb2005a.ada
! 5f629a419d744cf6cbdf01ae526e8dfe  gcc/testsuite/ada/acats-2/tests/cb/cb2006a.ada
! 0f62783e4e017c666e439d08382f4081  gcc/testsuite/ada/acats-2/tests/cb/cb2007a.ada
! 0af3543016fdd2ab314c8e3f6944bc98  gcc/testsuite/ada/acats-2/tests/cb/cb20a02.a
! da80eb868ceb5337039000257fc5cf28  gcc/testsuite/ada/acats-2/tests/cb/cb3003a.ada
! 3dcceb335b81c6314b73ec2a12e496dd  gcc/testsuite/ada/acats-2/tests/cb/cb3003b.ada
! db5771a4c4d22f1ee3b2043ea42e688e  gcc/testsuite/ada/acats-2/tests/cb/cb3004a.ada
! 931665965eb67df7de9092d1150d78dc  gcc/testsuite/ada/acats-2/tests/cb/cb40005.a
! 15fd6a782afdd2e76a85a1ef09b95d91  gcc/testsuite/ada/acats-2/tests/cb/cb4001a.ada
! f00ebf73158afdcf6ccfa56162d1a7c7  gcc/testsuite/ada/acats-2/tests/cb/cb4002a.ada
! 9e17c1d3be3c2acc4c4a761cf058d3c6  gcc/testsuite/ada/acats-2/tests/cb/cb4003a.ada
! 3461f679629a4811d1fce600d7e8b57e  gcc/testsuite/ada/acats-2/tests/cb/cb4004a.ada
! f2db155f6c22f6b30ca696f825ef8aae  gcc/testsuite/ada/acats-2/tests/cb/cb4005a.ada
! b611f921d0e5b0b027e6f69faa9d24b4  gcc/testsuite/ada/acats-2/tests/cb/cb4006a.ada
! baded9fec75a97cb63419083a60cbf79  gcc/testsuite/ada/acats-2/tests/cb/cb4007a.ada
! a4194c712a3e86aa41f29aec96a8f7a7  gcc/testsuite/ada/acats-2/tests/cb/cb4008a.ada
! 930c41db090c6c2c54a36228405c48ac  gcc/testsuite/ada/acats-2/tests/cb/cb4009a.ada
! 72f5c28e26994805b38b887c725d411c  gcc/testsuite/ada/acats-2/tests/cb/cb4013a.ada
! 7cebdcd4f0159fb009f28f53b4f1d2aa  gcc/testsuite/ada/acats-2/tests/cb/cb40a01.a
! c5d94b1d4e0e31956d3f563cd7632df6  gcc/testsuite/ada/acats-2/tests/cb/cb40a020.a
! 1826a245b36f70926f1d010c4bb03b56  gcc/testsuite/ada/acats-2/tests/cb/cb40a021.am
! dd4b04d0ff15d88ce5e37562087104b8  gcc/testsuite/ada/acats-2/tests/cb/cb40a030.a
! ce7a78707740e7c8442c44280bd4b429  gcc/testsuite/ada/acats-2/tests/cb/cb40a031.am
! 27770d52ee37e90d5cd9748807eab53e  gcc/testsuite/ada/acats-2/tests/cb/cb40a04.a
! fee21ac92aa6b69bea4a12f412715df6  gcc/testsuite/ada/acats-2/tests/cb/cb41001.a
! 3bbe3f0aeccac5d0203ed045c2ccf49e  gcc/testsuite/ada/acats-2/tests/cb/cb41002.a
! d456462b7a7e6f3773b86bf24468d231  gcc/testsuite/ada/acats-2/tests/cb/cb41003.a
! fffb38bf5df913140c6261714aa601ea  gcc/testsuite/ada/acats-2/tests/cb/cb41004.a
! 01e2daee09a3391b981c7a63ebe0ae28  gcc/testsuite/ada/acats-2/tests/cb/cb5001a.ada
! 5a22bfb3766d46433b2b7b2f046d0ea9  gcc/testsuite/ada/acats-2/tests/cb/cb5001b.ada
! 63153559a0add5135a21197c6c8c0a9f  gcc/testsuite/ada/acats-2/tests/cb/cb5002a.ada
! 52c10586939e5289ffc5276a6a4d9e3e  gcc/testsuite/ada/acats-2/tests/cc/cc1004a.ada
! abeb72a1acbce60114f56d558d1481a5  gcc/testsuite/ada/acats-2/tests/cc/cc1005b.ada
! e52fa7b734609c2fde5f5260ff000f57  gcc/testsuite/ada/acats-2/tests/cc/cc1010a.ada
! 4af2da441a155dbd4ee2be7e5afcdb99  gcc/testsuite/ada/acats-2/tests/cc/cc1010b.ada
! 3943b41b051f4e223a5fe3b067dd4750  gcc/testsuite/ada/acats-2/tests/cc/cc1018a.ada
! 8b9f3eb4b897035fcc0c08981fa94cd0  gcc/testsuite/ada/acats-2/tests/cc/cc1104c.ada
! 6dde1021fb59bfd89f7e89e10c4dc040  gcc/testsuite/ada/acats-2/tests/cc/cc1107b.ada
! fd9ff835b201890341a69a2bf568186d  gcc/testsuite/ada/acats-2/tests/cc/cc1111a.ada
! 3a2e06563ce5c65cb9f2734c9b5901b2  gcc/testsuite/ada/acats-2/tests/cc/cc1204a.ada
! ec00ecaace8abe97b14deef79a927278  gcc/testsuite/ada/acats-2/tests/cc/cc1207b.ada
! d5b96d46768e2afc1db48bccdd883c3d  gcc/testsuite/ada/acats-2/tests/cc/cc1220a.ada
! fe4da7912a4f8ebd90feecf1233d1cdd  gcc/testsuite/ada/acats-2/tests/cc/cc1221a.ada
! 25b2b3dc12b77cbf205ab8f38dcfb77d  gcc/testsuite/ada/acats-2/tests/cc/cc1221b.ada
! 9145c4850d40180754446ef574cb5fc0  gcc/testsuite/ada/acats-2/tests/cc/cc1221c.ada
! c4c966046fba1bd9875ab2ac270f27d0  gcc/testsuite/ada/acats-2/tests/cc/cc1221d.ada
! ec00a589846feb2b9117000ba453bb4d  gcc/testsuite/ada/acats-2/tests/cc/cc1222a.ada
! 9098cb80c67049808425c47b419fac81  gcc/testsuite/ada/acats-2/tests/cc/cc1223a.ada
! ebb1accb64bb0bc75b36cc4d7667f11e  gcc/testsuite/ada/acats-2/tests/cc/cc1224a.ada
! 252dcf9d499b779ceb6ff22b740614f3  gcc/testsuite/ada/acats-2/tests/cc/cc1225a.tst
! bd7909fda37c73e6a7b55033af7a7073  gcc/testsuite/ada/acats-2/tests/cc/cc1226b.ada
! 6c7f653283771ea8e72f38f30cca417e  gcc/testsuite/ada/acats-2/tests/cc/cc1227a.ada
! a59ea76111c1c30abdfc81e140c2ad1e  gcc/testsuite/ada/acats-2/tests/cc/cc1301a.ada
! 54718ced426c8406bfe76f085e364b70  gcc/testsuite/ada/acats-2/tests/cc/cc1302a.ada
! 0e4bf36981636de5140e59f431e9a750  gcc/testsuite/ada/acats-2/tests/cc/cc1304a.ada
! 8b8017d0f141d2d1f196915bb0d9086f  gcc/testsuite/ada/acats-2/tests/cc/cc1304b.ada
! 5c30254607e6be149633cccc49ed0eed  gcc/testsuite/ada/acats-2/tests/cc/cc1307a.ada
! 074dfbafa7a711ae864c0c7a3551c2c1  gcc/testsuite/ada/acats-2/tests/cc/cc1307b.ada
! 99a71a5de9c88311f519834c73dd819d  gcc/testsuite/ada/acats-2/tests/cc/cc1308a.ada
! f7d1a2abebaff0b7213722ac29bc699a  gcc/testsuite/ada/acats-2/tests/cc/cc1310a.ada
! 02f17d4f3889eba61e039a52d84ad466  gcc/testsuite/ada/acats-2/tests/cc/cc1311a.ada
! ab2512302d5429785277d9bb46d6c87b  gcc/testsuite/ada/acats-2/tests/cc/cc1311b.ada
! 1653180dc4be9e4015e8cad4546ded2c  gcc/testsuite/ada/acats-2/tests/cc/cc2002a.ada
! 5368d883d7adafccb7c415ab1a83c7f2  gcc/testsuite/ada/acats-2/tests/cc/cc30001.a
! 9240ec87a1cc555c3c6e829f22480b0f  gcc/testsuite/ada/acats-2/tests/cc/cc30002.a
! 258d4b8f83d4c17eda45265db8a66c46  gcc/testsuite/ada/acats-2/tests/cc/cc3004a.ada
! 1422918611096dedc710ededab9fc1d3  gcc/testsuite/ada/acats-2/tests/cc/cc3007a.ada
! faee4cb0106ee6d683bf7e7a208050dc  gcc/testsuite/ada/acats-2/tests/cc/cc3007b.ada
! 43f939c986863c3151fb21fae7ad81a8  gcc/testsuite/ada/acats-2/tests/cc/cc3011a.ada
! e21f329f8aeeeaaf980ab3ae301de7cb  gcc/testsuite/ada/acats-2/tests/cc/cc3011d.ada
! 021bd9a65cf3be3535547519f5ceb651  gcc/testsuite/ada/acats-2/tests/cc/cc3012a.ada
! eb08409ceff83c49baa04e734c258681  gcc/testsuite/ada/acats-2/tests/cc/cc3015a.ada
! 37ffe8fd743867700b2e0249fd73f16b  gcc/testsuite/ada/acats-2/tests/cc/cc3016b.ada
! 92e8dfd4f50c7e3595bbd6ef5ebb4302  gcc/testsuite/ada/acats-2/tests/cc/cc3016c.ada
! 3bb5847d2c36a04a53a9dc138c40e34a  gcc/testsuite/ada/acats-2/tests/cc/cc3016f.ada
! 195ab10c1ca9bbfd5b16ade12e3259e2  gcc/testsuite/ada/acats-2/tests/cc/cc3016i.ada
! a5976b043f8ea78109e2936d58a009a8  gcc/testsuite/ada/acats-2/tests/cc/cc3017b.ada
! 21e94c5f1086f6624d5237d010ecc0f2  gcc/testsuite/ada/acats-2/tests/cc/cc3017c.ada
! 2fb78d8d58d12070086164535de0efda  gcc/testsuite/ada/acats-2/tests/cc/cc3019a.ada
! a0315fd5149893475278feb9b8d7013b  gcc/testsuite/ada/acats-2/tests/cc/cc3019b0.ada
! 207f4488242efc2b7a5c80c0cd47410b  gcc/testsuite/ada/acats-2/tests/cc/cc3019b1.ada
! 5688bc525157eef2f521d23f1a720672  gcc/testsuite/ada/acats-2/tests/cc/cc3019b2.ada
! e5522bd1515d2f7df4fdd2bafaf481fb  gcc/testsuite/ada/acats-2/tests/cc/cc3019c0.ada
! 66683952c6c322d9c96e76710460cc02  gcc/testsuite/ada/acats-2/tests/cc/cc3019c1.ada
! 4e308a4f2724a46a2eb3a8426f98265f  gcc/testsuite/ada/acats-2/tests/cc/cc3019c2.ada
! cd9a188b6b1ecf3863d42065ce445792  gcc/testsuite/ada/acats-2/tests/cc/cc3106b.ada
! b1b639f80dbd48bf241b7d05c36362e6  gcc/testsuite/ada/acats-2/tests/cc/cc3120a.ada
! f06e709416c9d57a31113226d02abf07  gcc/testsuite/ada/acats-2/tests/cc/cc3120b.ada
! e09fb340ff80c10cbecd4b83e746eef2  gcc/testsuite/ada/acats-2/tests/cc/cc3121a.ada
! 302527c5f7e5e7497411775d418850b0  gcc/testsuite/ada/acats-2/tests/cc/cc3123a.ada
! 2575fc22f53f2a5308182459add72a14  gcc/testsuite/ada/acats-2/tests/cc/cc3125a.ada
! 4f59d6fe9227d671293a8fecd22f9101  gcc/testsuite/ada/acats-2/tests/cc/cc3125b.ada
! a1164d012410441b7190f2e96d6ce7c6  gcc/testsuite/ada/acats-2/tests/cc/cc3125c.ada
! 8a71d919069253ce368ef3103ee770c8  gcc/testsuite/ada/acats-2/tests/cc/cc3125d.ada
! ae116bcf41f79383e2dba5094b290b3f  gcc/testsuite/ada/acats-2/tests/cc/cc3126a.ada
! de2792bcfe94fa04d80a2c8ecf74db33  gcc/testsuite/ada/acats-2/tests/cc/cc3127a.ada
! a9709bfb589a677927644fb64dffa39c  gcc/testsuite/ada/acats-2/tests/cc/cc3128a.ada
! eeae81e69cab3987783ac508ffbebc5c  gcc/testsuite/ada/acats-2/tests/cc/cc3203a.ada
! a4d077af707d747e7c7f4f145a33e013  gcc/testsuite/ada/acats-2/tests/cc/cc3207b.ada
! 4525f7929e8bbeab0d61377f11afa3b8  gcc/testsuite/ada/acats-2/tests/cc/cc3220a.ada
! e8cc62fb0584ebfbe49d22d70abf54f4  gcc/testsuite/ada/acats-2/tests/cc/cc3221a.ada
! fbf1f50c254b6c5361e7d43b8efa783c  gcc/testsuite/ada/acats-2/tests/cc/cc3222a.ada
! 06202a4a37521548f15b8f63b30331cf  gcc/testsuite/ada/acats-2/tests/cc/cc3223a.ada
! d6d9973ddd1a38d34208ece4853e3e54  gcc/testsuite/ada/acats-2/tests/cc/cc3224a.ada
! 9d8a01fd3692524cef3f688f08e8820e  gcc/testsuite/ada/acats-2/tests/cc/cc3225a.ada
! 0b4db0bdcd8b5f809a2a0976c2fd65a2  gcc/testsuite/ada/acats-2/tests/cc/cc3230a.ada
! ecf0a337f74761749dd005a8b934ae2d  gcc/testsuite/ada/acats-2/tests/cc/cc3231a.ada
! 536583cad34553553ba201c11a12e136  gcc/testsuite/ada/acats-2/tests/cc/cc3232a.ada
! 29722620be1cef89562f63d778feb319  gcc/testsuite/ada/acats-2/tests/cc/cc3233a.ada
! 55b7f83f0d13dd0bbbc615bec20f7f58  gcc/testsuite/ada/acats-2/tests/cc/cc3234a.ada
! 174e858e451ed1d671a07a674320a404  gcc/testsuite/ada/acats-2/tests/cc/cc3235a.ada
! 1966408531cce82c0dee0cdb997e2d83  gcc/testsuite/ada/acats-2/tests/cc/cc3236a.ada
! 69f2b9819e916eb5bef41d74a6bf059e  gcc/testsuite/ada/acats-2/tests/cc/cc3240a.ada
! 134c20d477e6856df2b370dc7cfda1a4  gcc/testsuite/ada/acats-2/tests/cc/cc3305a.ada
! 6ff147856008d1bc23082c84a6dce358  gcc/testsuite/ada/acats-2/tests/cc/cc3305b.ada
! 75b310968a34fc081580d58bd1747ea3  gcc/testsuite/ada/acats-2/tests/cc/cc3305c.ada
! e41c2fcae5aa76bb6cd566a6a34b9e73  gcc/testsuite/ada/acats-2/tests/cc/cc3305d.ada
! 54ae1b7ff14c3a948a87f71ab9b7ae53  gcc/testsuite/ada/acats-2/tests/cc/cc3601a.ada
! 1d5d61ff6eda390e054673a067185feb  gcc/testsuite/ada/acats-2/tests/cc/cc3601c.ada
! 14a6f6048e3bda5108a0dac8dc736e44  gcc/testsuite/ada/acats-2/tests/cc/cc3602a.ada
! 73b205844c7501b9750b69b66d91e84c  gcc/testsuite/ada/acats-2/tests/cc/cc3603a.ada
! 509cb0b6a7b3daf93118e0e4310a8889  gcc/testsuite/ada/acats-2/tests/cc/cc3605a.ada
! b81c8580788eaf032722950c55524548  gcc/testsuite/ada/acats-2/tests/cc/cc3606a.ada
! 5232a6ea1beea12bb0c271a9c0728bcc  gcc/testsuite/ada/acats-2/tests/cc/cc3606b.ada
! 2f46f9edadb7856b60273822fbd7c6dc  gcc/testsuite/ada/acats-2/tests/cc/cc3607b.ada
! 59c4b0341104cc61677baaee002ac38c  gcc/testsuite/ada/acats-2/tests/cc/cc40001.a
! 6d5d6f00038ccaafe12d5f471a488085  gcc/testsuite/ada/acats-2/tests/cc/cc50001.a
! 8cb4adfbf6723ce3680f41b59f744fe9  gcc/testsuite/ada/acats-2/tests/cc/cc50a01.a
! 508d46d79897dc7252508cdafdbbfaa1  gcc/testsuite/ada/acats-2/tests/cc/cc50a02.a
! 146e71ceb1d037e4099e8ecb6e127614  gcc/testsuite/ada/acats-2/tests/cc/cc51001.a
! 58d73c0c5456a6a21ebbaef95df38606  gcc/testsuite/ada/acats-2/tests/cc/cc51002.a
! e096e928fb49f1e659293619c383c7f1  gcc/testsuite/ada/acats-2/tests/cc/cc51003.a
! a373845361c49771cf3d23fbbfc043de  gcc/testsuite/ada/acats-2/tests/cc/cc51004.a
! f57dbf49aca26d9bd043ebddae124c8e  gcc/testsuite/ada/acats-2/tests/cc/cc51006.a
! ed5459250c5b2a65cf4b7a7c678c41b5  gcc/testsuite/ada/acats-2/tests/cc/cc51007.a
! edb35d02b7ba72e7720c2eaf7fefe5bf  gcc/testsuite/ada/acats-2/tests/cc/cc51008.a
! 91f9a7214da9eed7db005bf7e3119ddc  gcc/testsuite/ada/acats-2/tests/cc/cc51a01.a
! 123f5aa956187735f0e077abedfd8f93  gcc/testsuite/ada/acats-2/tests/cc/cc51b03.a
! 557497dc9fd80ad665e468b409621ee1  gcc/testsuite/ada/acats-2/tests/cc/cc51d01.a
! 31462b6f268d175f3a915242afd8ea4d  gcc/testsuite/ada/acats-2/tests/cc/cc51d02.a
! 8b56f900a407dc994866f74c2c67f98e  gcc/testsuite/ada/acats-2/tests/cc/cc54001.a
! 65d5b89a1c15ad3234bf150dbe3c9235  gcc/testsuite/ada/acats-2/tests/cc/cc54002.a
! 04d1ce4f2960ed9b647a0bc397f920c2  gcc/testsuite/ada/acats-2/tests/cc/cc54003.a
! 0e1a91d2dfd0e6b36d65c5cfb02883dc  gcc/testsuite/ada/acats-2/tests/cc/cc54004.a
! c29ebf7d9a6ed65bca0e83b18c63bbcc  gcc/testsuite/ada/acats-2/tests/cc/cc70001.a
! eb1b9be669a38ce3989d9340fb2dc933  gcc/testsuite/ada/acats-2/tests/cc/cc70002.a
! b1df852c3d5deec3247a4e17e9fb4dc6  gcc/testsuite/ada/acats-2/tests/cc/cc70003.a
! 9f1565b83bb2fa8ee588283eaa27cf37  gcc/testsuite/ada/acats-2/tests/cc/cc70a01.a
! 0bb1d67b6fb03b14e1b2f2062d01417d  gcc/testsuite/ada/acats-2/tests/cc/cc70a02.a
! ee68b4ea46957b2abff5e05bc98eeb76  gcc/testsuite/ada/acats-2/tests/cc/cc70b01.a
! 8c472987131321e68210b34029de25a7  gcc/testsuite/ada/acats-2/tests/cc/cc70b02.a
! 1a10fab698e0e1c3d985d63a8fd02646  gcc/testsuite/ada/acats-2/tests/cc/cc70c01.a
! 630e79ef7ad77506e6bc0443bc253106  gcc/testsuite/ada/acats-2/tests/cc/cc70c02.a
! 0be418cda7e22eca0aa6c889d87f4533  gcc/testsuite/ada/acats-2/tests/cd/cd10001.a
! 5dd315f72d7b25ba35718d9545b60e5e  gcc/testsuite/ada/acats-2/tests/cd/cd10002.a
! 4e3da95c629f1132a7605c755936df22  gcc/testsuite/ada/acats-2/tests/cd/cd1009a.ada
! 75d6166e3a9b874d8b18037b2bbd7774  gcc/testsuite/ada/acats-2/tests/cd/cd1009b.ada
! fb2d00d22c6dc289be9e7485d1057b88  gcc/testsuite/ada/acats-2/tests/cd/cd1009d.ada
! 0f7c8765f0bcfd92843011f7699a3515  gcc/testsuite/ada/acats-2/tests/cd/cd1009e.ada
! 278b82d91f416169138eaedebaee0e88  gcc/testsuite/ada/acats-2/tests/cd/cd1009f.ada
! c5d7abbf75d5228f8ee64b921461c34d  gcc/testsuite/ada/acats-2/tests/cd/cd1009g.ada
! 05621471548ccc18ff9a5e104f81afde  gcc/testsuite/ada/acats-2/tests/cd/cd1009h.ada
! 529178df08dc16ac0af024a1fd6bfb53  gcc/testsuite/ada/acats-2/tests/cd/cd1009i.ada
! 365257c1306da6752feb59e62ac38bdf  gcc/testsuite/ada/acats-2/tests/cd/cd1009j.ada
! 03b1bb47c24a014bd2530417d1adf9b2  gcc/testsuite/ada/acats-2/tests/cd/cd1009k.tst
! 06bdced5a41c98c87e673e382a9688bb  gcc/testsuite/ada/acats-2/tests/cd/cd1009l.ada
! f8f71aa9e49974d6cf320e70c4b0ecbf  gcc/testsuite/ada/acats-2/tests/cd/cd1009m.ada
! f29ec324e7b0ec1f2f6dd2240fc728d8  gcc/testsuite/ada/acats-2/tests/cd/cd1009n.ada
! cae30866eb5c8c2cfb27698eb8ddbde0  gcc/testsuite/ada/acats-2/tests/cd/cd1009o.ada
! d3eb7538a98ec14ae8d521733ba57af7  gcc/testsuite/ada/acats-2/tests/cd/cd1009p.ada
! b8730acac7650dbd31ddd035bc69f509  gcc/testsuite/ada/acats-2/tests/cd/cd1009q.ada
! c358e33b93c2826e889494a0f5ed0843  gcc/testsuite/ada/acats-2/tests/cd/cd1009r.ada
! bc1961d8c175f48f60b3e9f057a9c72a  gcc/testsuite/ada/acats-2/tests/cd/cd1009s.ada
! 97707e58ce3c7a72dc76f39b8a718701  gcc/testsuite/ada/acats-2/tests/cd/cd1009t.tst
! 692d5e6fe6286682bb5eaaa37bbb3deb  gcc/testsuite/ada/acats-2/tests/cd/cd1009u.tst
! 907fdf446e490f986c267dd4b8d31baf  gcc/testsuite/ada/acats-2/tests/cd/cd1009v.ada
! 53fd05330599e7a416f8be2f4b93f8db  gcc/testsuite/ada/acats-2/tests/cd/cd1009w.ada
! 6e1baf3329c3ff434b0b23406203b126  gcc/testsuite/ada/acats-2/tests/cd/cd1009x.ada
! 992350215516da7fa9fc873f9d5f405e  gcc/testsuite/ada/acats-2/tests/cd/cd1009y.ada
! fb78c3da6117cb6f992401e7c6afde33  gcc/testsuite/ada/acats-2/tests/cd/cd1009z.ada
! 5b32d31e23b1f46b777ddb79782d91bc  gcc/testsuite/ada/acats-2/tests/cd/cd1c03a.ada
! 33753d6d5cc05f96879e603e7e4239ed  gcc/testsuite/ada/acats-2/tests/cd/cd1c03b.ada
! bb197eb3c945f5f3165b484b8d052169  gcc/testsuite/ada/acats-2/tests/cd/cd1c03c.ada
! d532f2cddb2a1d42073af8bead380310  gcc/testsuite/ada/acats-2/tests/cd/cd1c03e.tst
! 31687b0c41570bd2e2caf21db4be46d3  gcc/testsuite/ada/acats-2/tests/cd/cd1c03f.ada
! e0216b320efd829ccdc65f5d5771bcbb  gcc/testsuite/ada/acats-2/tests/cd/cd1c03g.ada
! c46fc765c5f46303364ae7f735fd4155  gcc/testsuite/ada/acats-2/tests/cd/cd1c03h.ada
! e99adb592df5a1337ea0d1ba20e1ea56  gcc/testsuite/ada/acats-2/tests/cd/cd1c03i.ada
! 356e60fd22404e9284ce91535fb26d24  gcc/testsuite/ada/acats-2/tests/cd/cd1c04a.ada
! e23985efbd7775125639e267122b2530  gcc/testsuite/ada/acats-2/tests/cd/cd1c04d.ada
! 960f74b381e41f1c5aca4cb19a43ba24  gcc/testsuite/ada/acats-2/tests/cd/cd1c04e.ada
! f4445570707e4cfc05845c2942f2a691  gcc/testsuite/ada/acats-2/tests/cd/cd1c06a.tst
! 38c0ca7c9c40e40a65ebac293401406d  gcc/testsuite/ada/acats-2/tests/cd/cd20001.a
! 6840d06bfa723e58150ad53215d31eaf  gcc/testsuite/ada/acats-2/tests/cd/cd2a21a.ada
! 16f1f72fade5db004d66971714b76535  gcc/testsuite/ada/acats-2/tests/cd/cd2a21c.ada
! 9955b221c78032f3aa68113cb414afea  gcc/testsuite/ada/acats-2/tests/cd/cd2a21e.ada
! 138413c4349c431ae13135443971a255  gcc/testsuite/ada/acats-2/tests/cd/cd2a22a.ada
! 2ecbd329e980e8d80615287a05917c3c  gcc/testsuite/ada/acats-2/tests/cd/cd2a22e.ada
! fa618469f3bfe667b6991f706078ceee  gcc/testsuite/ada/acats-2/tests/cd/cd2a22i.ada
! 17cd76bca6e556da829dc167dd37416d  gcc/testsuite/ada/acats-2/tests/cd/cd2a22j.ada
! 165d140694576ed2e1610ce9cf23d710  gcc/testsuite/ada/acats-2/tests/cd/cd2a23a.ada
! ee7517fa66b44ea029fa5afd44d3dfda  gcc/testsuite/ada/acats-2/tests/cd/cd2a23e.ada
! 7406649d9c3a6c13d39de22cbbbed6c0  gcc/testsuite/ada/acats-2/tests/cd/cd2a24a.ada
! 42e0bfe93795136ebcd4a60e074e3d13  gcc/testsuite/ada/acats-2/tests/cd/cd2a24e.ada
! 3812be2a4f7026b0ea147488e4e11b79  gcc/testsuite/ada/acats-2/tests/cd/cd2a24i.ada
! b5db777461ec4b929a5d956caae5ab6c  gcc/testsuite/ada/acats-2/tests/cd/cd2a24j.ada
! 01ec2329faee0b5aa7957719bee0a023  gcc/testsuite/ada/acats-2/tests/cd/cd2a31a.ada
! 5cfa1167dd7ab84a3f1390d1ef40e5a8  gcc/testsuite/ada/acats-2/tests/cd/cd2a31c.ada
! 25cf5e2245fd319818051c6d58e33e34  gcc/testsuite/ada/acats-2/tests/cd/cd2a31e.ada
! fe2d9184c16158b464a66d55f5f012e0  gcc/testsuite/ada/acats-2/tests/cd/cd2a32a.ada
! c89035c306f20662287a41260e41c440  gcc/testsuite/ada/acats-2/tests/cd/cd2a32c.ada
! 5a16f63c007776f1d0e621124c28ba40  gcc/testsuite/ada/acats-2/tests/cd/cd2a32e.ada
! 509f33673d8a806e1fc5c994ecd367a7  gcc/testsuite/ada/acats-2/tests/cd/cd2a32g.ada
! 9f1153cc00985eff630f5a7529e785a6  gcc/testsuite/ada/acats-2/tests/cd/cd2a32i.ada
! 3b52721a12cbabf7af952961ab000124  gcc/testsuite/ada/acats-2/tests/cd/cd2a32j.ada
! b0ce5f538de9c46a7f93bb98b76a16c2  gcc/testsuite/ada/acats-2/tests/cd/cd2a51a.ada
! fc6c3486ba94594cbb01735d7665ee4c  gcc/testsuite/ada/acats-2/tests/cd/cd2a53a.ada
! e22ea0a1bf1e45a9cc8941659d5de2bc  gcc/testsuite/ada/acats-2/tests/cd/cd2a53e.ada
! 800cb5fbfa61381b047623e515b331e9  gcc/testsuite/ada/acats-2/tests/cd/cd2a83c.tst
! 890942afd45f173d9c7a48fcd9b93b9e  gcc/testsuite/ada/acats-2/tests/cd/cd2a91c.tst
! ed5c543b1f1e477626a569cf9814e843  gcc/testsuite/ada/acats-2/tests/cd/cd2b11a.ada
! 8bf8bb847340d421752506f84e4d2970  gcc/testsuite/ada/acats-2/tests/cd/cd2b11b.ada
! c32d32bcd93ad954d2d4fd55f825977f  gcc/testsuite/ada/acats-2/tests/cd/cd2b11d.ada
! 1a738e39f3f9e6241c1210e391c74d04  gcc/testsuite/ada/acats-2/tests/cd/cd2b11e.ada
! 4c72be933f221db34e2a0e081b1987cb  gcc/testsuite/ada/acats-2/tests/cd/cd2b11f.ada
! 4e115c81a0792d4375dde8dc06949e7d  gcc/testsuite/ada/acats-2/tests/cd/cd2b15c.ada
! 29657353f6d86b0ea8f7696b58cc2fe9  gcc/testsuite/ada/acats-2/tests/cd/cd2b16a.ada
! d5241430c4b7db939bd5e77692bf37b4  gcc/testsuite/ada/acats-2/tests/cd/cd2c11a.tst
! 90bc2d2d244c54d7f4a3cd052f4ec35f  gcc/testsuite/ada/acats-2/tests/cd/cd2c11d.tst
! c6ae74fd392f1fb6040ba95b1d1ae6f0  gcc/testsuite/ada/acats-2/tests/cd/cd2d11a.ada
! cdcdd3477a39a731b6a087ee53c8d310  gcc/testsuite/ada/acats-2/tests/cd/cd2d13a.ada
! 76610aaf77050e2ff007a677818d736b  gcc/testsuite/ada/acats-2/tests/cd/cd30001.a
! 074a289ffe88ab1f82a7410cb923d4e9  gcc/testsuite/ada/acats-2/tests/cd/cd30002.a
! 3c6e9682493e7e0159a203d7641e1a2e  gcc/testsuite/ada/acats-2/tests/cd/cd30003.a
! 58da39f40326823d0b3dcca45acdc03a  gcc/testsuite/ada/acats-2/tests/cd/cd30004.a
! 1c50e51c3b821e3d109ed5a501745811  gcc/testsuite/ada/acats-2/tests/cd/cd300050.am
! 56a32782666a26425c694389d3141e71  gcc/testsuite/ada/acats-2/tests/cd/cd300051.c
! 53302b5bf903a58fb95e205690813d78  gcc/testsuite/ada/acats-2/tests/cd/cd30011.a
! 03b96d80ed2b752193a510629a87cc3c  gcc/testsuite/ada/acats-2/tests/cd/cd30012.a
! a8163e0d624406b874260e4169d9e49c  gcc/testsuite/ada/acats-2/tests/cd/cd3014a.ada
! b3c46e3333ad22ce02ee156f3f0bccff  gcc/testsuite/ada/acats-2/tests/cd/cd3014c.ada
! a341da17e2d571e891434aa086ae7d3e  gcc/testsuite/ada/acats-2/tests/cd/cd3014d.ada
! 204d7f2709b5ba9cddcb718fc3d8ec18  gcc/testsuite/ada/acats-2/tests/cd/cd3014f.ada
! a86fa642d37091be0c5e5119e8c46645  gcc/testsuite/ada/acats-2/tests/cd/cd3015a.ada
! 38a79cfd7d26ff49fc8ee336963b178f  gcc/testsuite/ada/acats-2/tests/cd/cd3015c.ada
! 516902a49ddef41f79ee415e4edbb912  gcc/testsuite/ada/acats-2/tests/cd/cd3015e.ada
! 21588812fb8df6d087570f29c23c5d39  gcc/testsuite/ada/acats-2/tests/cd/cd3015f.ada
! c8a6fa2243d818236602663b274b5ba9  gcc/testsuite/ada/acats-2/tests/cd/cd3015g.ada
! c31ca49858b05c8ca516526b0e15945f  gcc/testsuite/ada/acats-2/tests/cd/cd3015h.ada
! c130ab902d51f975c0efadc0d44c9361  gcc/testsuite/ada/acats-2/tests/cd/cd3015i.ada
! 2fa00ee1e19df0bb0e4dc668c1d238fd  gcc/testsuite/ada/acats-2/tests/cd/cd3015k.ada
! 0c71d1dfc5a7d7c4d232217c2ef3e00f  gcc/testsuite/ada/acats-2/tests/cd/cd3021a.ada
! 02bab37ae5532979da2b39be8f1f447f  gcc/testsuite/ada/acats-2/tests/cd/cd33001.a
! 164945bdb98657e50508d0be9d5e1711  gcc/testsuite/ada/acats-2/tests/cd/cd33002.a
! fd95d787e27f8f80c3bccc691bf0417d  gcc/testsuite/ada/acats-2/tests/cd/cd40001.a
! a3f551b50734da9e1de425c6988b1f43  gcc/testsuite/ada/acats-2/tests/cd/cd4031a.ada
! 1363b8d9d26525600395a9118a1a4041  gcc/testsuite/ada/acats-2/tests/cd/cd4041a.tst
! 255be84f9bd123a67360189ab2d64cdf  gcc/testsuite/ada/acats-2/tests/cd/cd4051a.ada
! 37ae7a5703b3780f73cd5ae4eb39621a  gcc/testsuite/ada/acats-2/tests/cd/cd4051b.ada
! 07adf8476ba0c5e57a2bea963c120c2a  gcc/testsuite/ada/acats-2/tests/cd/cd4051c.ada
! cf5f11fa4855f5f18dba58d556b7ca63  gcc/testsuite/ada/acats-2/tests/cd/cd4051d.ada
! 20478b00e54601fd76a247d8a78c4a8f  gcc/testsuite/ada/acats-2/tests/cd/cd5003a.ada
! 4cff6e4a9ec3d2900f66bfc5693af89a  gcc/testsuite/ada/acats-2/tests/cd/cd5003b.ada
! d13512a51a4eb52527563404909e596e  gcc/testsuite/ada/acats-2/tests/cd/cd5003c.ada
! 4652d6ed2c04ade1800842b5dbfdabf9  gcc/testsuite/ada/acats-2/tests/cd/cd5003d.ada
! 005bf8518b263e4cee4d26c5db87e58b  gcc/testsuite/ada/acats-2/tests/cd/cd5003e.ada
! 8ff99eb70e788c11615ac412a1a7b4fb  gcc/testsuite/ada/acats-2/tests/cd/cd5003f.ada
! 719c829d93aa5b1f5984a681101887d3  gcc/testsuite/ada/acats-2/tests/cd/cd5003g.ada
! a7821be04ce2545857881e21292d5867  gcc/testsuite/ada/acats-2/tests/cd/cd5003h.ada
! 3491fd905bd30777ef1fbdfae6595acf  gcc/testsuite/ada/acats-2/tests/cd/cd5003i.ada
! 88b907e17fa7e933c0aa985bcbdba611  gcc/testsuite/ada/acats-2/tests/cd/cd5011a.ada
! 502c219e404c935fb79b18a5bc9edb77  gcc/testsuite/ada/acats-2/tests/cd/cd5011c.ada
! 71b7123461788aab03963e62fecc0ba3  gcc/testsuite/ada/acats-2/tests/cd/cd5011e.ada
! 8ee70bf0284e509f67c72903d25709f7  gcc/testsuite/ada/acats-2/tests/cd/cd5011g.ada
! 3b37531d4672ce7853d736e20f205d9e  gcc/testsuite/ada/acats-2/tests/cd/cd5011i.ada
! b1bd44ec7ae1e5e46e2aecd8d6f8f7b7  gcc/testsuite/ada/acats-2/tests/cd/cd5011k.ada
! b632fa011acdccee9f2b9fb3b5a030bf  gcc/testsuite/ada/acats-2/tests/cd/cd5011m.ada
! fd5e412763d1e844067af789a1ac1c48  gcc/testsuite/ada/acats-2/tests/cd/cd5011q.ada
! ee93e2b7d81f47c56f7b7ad4552b21bb  gcc/testsuite/ada/acats-2/tests/cd/cd5011s.ada
! 47d11b263404f1dd8fe59440a5052207  gcc/testsuite/ada/acats-2/tests/cd/cd5012a.ada
! 1892070e6feeb321986c5cbbcc427b4a  gcc/testsuite/ada/acats-2/tests/cd/cd5012b.ada
! ff4f485285269aca5506577d2a0b3b25  gcc/testsuite/ada/acats-2/tests/cd/cd5012e.ada
! a5f14af29759eeb2088d73d911c87c1f  gcc/testsuite/ada/acats-2/tests/cd/cd5012f.ada
! e5f28d4028e3550e275facc5a05598e5  gcc/testsuite/ada/acats-2/tests/cd/cd5012i.ada
! 16dbc766d573615ec2e4899fad17e3bf  gcc/testsuite/ada/acats-2/tests/cd/cd5012m.ada
! 6cc56f376ceaa00b529da26c6460e8d6  gcc/testsuite/ada/acats-2/tests/cd/cd5013a.ada
! c0918022f30f205dd1507581efbfdd4d  gcc/testsuite/ada/acats-2/tests/cd/cd5013c.ada
! 811d55a4a9aee790bed1e966d928fbb2  gcc/testsuite/ada/acats-2/tests/cd/cd5013e.ada
! 21ba9a45a10469204bf9be2e86069c81  gcc/testsuite/ada/acats-2/tests/cd/cd5013g.ada
! 4f445e0ed2b7e60f8eb00f85696e3a7d  gcc/testsuite/ada/acats-2/tests/cd/cd5013i.ada
! 0b15bb9a260246e000106d4512840f2a  gcc/testsuite/ada/acats-2/tests/cd/cd5013k.ada
! 1da10e9981f9def7bfc6d6c2143211ec  gcc/testsuite/ada/acats-2/tests/cd/cd5013m.ada
! 08a9e582acca940c3e759a92734c93c9  gcc/testsuite/ada/acats-2/tests/cd/cd5013o.ada
! 1968e13f319d3b0c07f4c96303157e60  gcc/testsuite/ada/acats-2/tests/cd/cd5014a.ada
! 7c607413594268a5d4b2292b7cb0413b  gcc/testsuite/ada/acats-2/tests/cd/cd5014c.ada
! 8fef3117954cc6c0a11bb3f93e364b40  gcc/testsuite/ada/acats-2/tests/cd/cd5014e.ada
! 0b813473017a44baccc884d20552e8cd  gcc/testsuite/ada/acats-2/tests/cd/cd5014g.ada
! 527b59a75ca64a8266a57d7a5088fe89  gcc/testsuite/ada/acats-2/tests/cd/cd5014i.ada
! fc74902958756d067346aa25dc320720  gcc/testsuite/ada/acats-2/tests/cd/cd5014k.ada
! b77eb1036af76cfb5202f2de49ace505  gcc/testsuite/ada/acats-2/tests/cd/cd5014m.ada
! ab247e3e629023fbd5f60ebe8227bdb5  gcc/testsuite/ada/acats-2/tests/cd/cd5014o.ada
! fc0ebe93b10ae9a9d4c3c4a5df942f54  gcc/testsuite/ada/acats-2/tests/cd/cd5014t.ada
! c00ed5123db97df563396ec85314f780  gcc/testsuite/ada/acats-2/tests/cd/cd5014v.ada
! bbf572fbf22be12dd2a668dcd54775ea  gcc/testsuite/ada/acats-2/tests/cd/cd5014x.ada
! 34d86be0b29568cce7a2a466311b3b81  gcc/testsuite/ada/acats-2/tests/cd/cd5014y.ada
! b56429de483f94a422eb6ca63ee074f9  gcc/testsuite/ada/acats-2/tests/cd/cd5014z.ada
! aa622725c36aef33e28cfe216e74dbf2  gcc/testsuite/ada/acats-2/tests/cd/cd70001.a
! 2eb61a4a6db022ec0de56d97cdb58d92  gcc/testsuite/ada/acats-2/tests/cd/cd7002a.ada
! aaa73d4164232ddfd2c5811f78c69833  gcc/testsuite/ada/acats-2/tests/cd/cd7007b.ada
! a2455776674d2ad1da3cc32ece807208  gcc/testsuite/ada/acats-2/tests/cd/cd7101d.ada
! aa55af7af75ac0b3c135078d81fb495f  gcc/testsuite/ada/acats-2/tests/cd/cd7101e.dep
! 54f3d5f0c03029d0398feadc1fba13fa  gcc/testsuite/ada/acats-2/tests/cd/cd7101f.dep
! d4c58764ec07d4b64c614f06a404a048  gcc/testsuite/ada/acats-2/tests/cd/cd7101g.tst
! b19b5291beb6e4d9ba34dc60acc52917  gcc/testsuite/ada/acats-2/tests/cd/cd7103d.ada
! bc9859e9de09dbae5b873f61d7dd6d25  gcc/testsuite/ada/acats-2/tests/cd/cd7202a.ada
! 27154e701456e154266de19089be5f95  gcc/testsuite/ada/acats-2/tests/cd/cd7204b.ada
! 866e238520f9fe6f2e1ebc1c66530b27  gcc/testsuite/ada/acats-2/tests/cd/cd7204c.ada
! 463ecdd8176f35af59f9b3791565e928  gcc/testsuite/ada/acats-2/tests/cd/cd72a01.a
! 97e1c7a2d8dcad44f97e8a054d7ddbfa  gcc/testsuite/ada/acats-2/tests/cd/cd72a02.a
! 094d528313c32d60bc8ef9966a3ba667  gcc/testsuite/ada/acats-2/tests/cd/cd7305a.ada
! 89a9ca0baa4aea5a158e931fd05972da  gcc/testsuite/ada/acats-2/tests/cd/cd90001.a
! b35e132e38a1316bb94eb5685e744e45  gcc/testsuite/ada/acats-2/tests/cd/cd92001.a
! 4acd15be94cdb921d9aaaf1c68bc86bd  gcc/testsuite/ada/acats-2/tests/cd/cda201a.ada
! 95c680f466bbb6b462cff702c8c051d8  gcc/testsuite/ada/acats-2/tests/cd/cda201b.ada
! 46aab534344a6aeab59cdc069c0a30a9  gcc/testsuite/ada/acats-2/tests/cd/cda201c.ada
! 51c51b9e46a1a5740ae0b124d61d55ca  gcc/testsuite/ada/acats-2/tests/cd/cda201e.ada
! 4d8334f61837b54deaa10e41063c39af  gcc/testsuite/ada/acats-2/tests/cd/cdb0a01.a
! d60d2f5f8d96507e1b594680a8ddbf8c  gcc/testsuite/ada/acats-2/tests/cd/cdb0a02.a
! d199627bfc774a32708e179cfe132b55  gcc/testsuite/ada/acats-2/tests/cd/cdd1001.a
! ecea7d5e451c93f7530aa28e39d75580  gcc/testsuite/ada/acats-2/tests/cd/cdd2001.a
! 09e97dda9b7ced04ce9c741ad0599d96  gcc/testsuite/ada/acats-2/tests/cd/cdd2a01.a
! 72e91e49172aabe99c78bb568616e583  gcc/testsuite/ada/acats-2/tests/cd/cdd2a02.a
! a856f625c37fa5c1f69885ec19e4bc5e  gcc/testsuite/ada/acats-2/tests/cd/cdd2a03.a
! 317e3f1dc15de17ef49001a1f08c35b3  gcc/testsuite/ada/acats-2/tests/cd/cde0001.a
! e3c9b20329b0f7e7d60dc55f195727f7  gcc/testsuite/ada/acats-2/tests/ce/ce2102a.ada
! 56be361ddf744d65d5919f5f77470cfd  gcc/testsuite/ada/acats-2/tests/ce/ce2102b.ada
! 83c95e98a0edc5913eda034e9803f9a3  gcc/testsuite/ada/acats-2/tests/ce/ce2102c.tst
! 704cb92cd741551b8c76bb24ab8f01a6  gcc/testsuite/ada/acats-2/tests/ce/ce2102d.ada
! a4c5c5ff89eb450e4c847a9cebea2a03  gcc/testsuite/ada/acats-2/tests/ce/ce2102e.ada
! 27760dba95f836989a21b8529a71855d  gcc/testsuite/ada/acats-2/tests/ce/ce2102f.ada
! fe48a7b7badffee5e6b11bab0b32391a  gcc/testsuite/ada/acats-2/tests/ce/ce2102g.ada
! d704111bdcdb479f1991a8daee40cdc6  gcc/testsuite/ada/acats-2/tests/ce/ce2102h.tst
! 660d5113b9badd86759bd83e670ede30  gcc/testsuite/ada/acats-2/tests/ce/ce2102i.ada
! 8796caaebedc2e2c57dc7e71ff241431  gcc/testsuite/ada/acats-2/tests/ce/ce2102j.ada
! ceb778fa800778a3993ddc7cd9190c8f  gcc/testsuite/ada/acats-2/tests/ce/ce2102k.ada
! 23bd39333ef2a75df64af434a8d52288  gcc/testsuite/ada/acats-2/tests/ce/ce2102l.ada
! 9a4f2b513351918f23c1e1fcc5d48aaa  gcc/testsuite/ada/acats-2/tests/ce/ce2102m.ada
! 57880455279d766e91fd84c1ad26a38f  gcc/testsuite/ada/acats-2/tests/ce/ce2102n.ada
! 1658c529498b5b4b8d79ff4a0a362715  gcc/testsuite/ada/acats-2/tests/ce/ce2102o.ada
! a942f038d4463c45d5c583b1985c7c87  gcc/testsuite/ada/acats-2/tests/ce/ce2102p.ada
! 8ce185028df0d4e8d8de27e964b87758  gcc/testsuite/ada/acats-2/tests/ce/ce2102q.ada
! 1439304477a0f927f09dcb2a2639fe66  gcc/testsuite/ada/acats-2/tests/ce/ce2102r.ada
! a5aff3dd28b5d54dcd3d2367ad10512e  gcc/testsuite/ada/acats-2/tests/ce/ce2102s.ada
! fab20fee3d01ec0d98c83ae2e0b85bda  gcc/testsuite/ada/acats-2/tests/ce/ce2102t.ada
! fb506c6fcfe4ce698ff9a830b7c56229  gcc/testsuite/ada/acats-2/tests/ce/ce2102u.ada
! 6533e0fca22d00bf5e7584ed3a4dc842  gcc/testsuite/ada/acats-2/tests/ce/ce2102v.ada
! 96597eb49b1372fa65ee2328da95ca07  gcc/testsuite/ada/acats-2/tests/ce/ce2102w.ada
! 79aea0b4cdef1b6365b9be26c87383b1  gcc/testsuite/ada/acats-2/tests/ce/ce2102x.ada
! b982e3e68e8a4f04e10e3b2780934046  gcc/testsuite/ada/acats-2/tests/ce/ce2102y.ada
! d102ee0d07b326b9d4073e60e25ee113  gcc/testsuite/ada/acats-2/tests/ce/ce2103a.tst
! ae11fc214dfce8e1c5dce5dd8dff9ad9  gcc/testsuite/ada/acats-2/tests/ce/ce2103b.tst
! 97d4cf14fe4c578c0d86448663834c20  gcc/testsuite/ada/acats-2/tests/ce/ce2103c.ada
! 99c7332bd6a90a3213eb826d7f902efa  gcc/testsuite/ada/acats-2/tests/ce/ce2103d.ada
! 60b763cadd79ca8009e41e392d9aa37b  gcc/testsuite/ada/acats-2/tests/ce/ce2104a.ada
! 4f9096bebf0622c62a3f4358655497af  gcc/testsuite/ada/acats-2/tests/ce/ce2104b.ada
! f1962e353466d1757ad6a9c641624847  gcc/testsuite/ada/acats-2/tests/ce/ce2104c.ada
! c687f392201a3d542022c53d87c728c6  gcc/testsuite/ada/acats-2/tests/ce/ce2104d.ada
! e59622b5be7a0b85f62f4f5dfd87250c  gcc/testsuite/ada/acats-2/tests/ce/ce2106a.ada
! 0390975b4b078391dba02ca3c8f31638  gcc/testsuite/ada/acats-2/tests/ce/ce2106b.ada
! 8576613b0fb7cb5404cf64939d34b3af  gcc/testsuite/ada/acats-2/tests/ce/ce2108e.ada
! 651994d660ec55d3e422ceb303d2034b  gcc/testsuite/ada/acats-2/tests/ce/ce2108f.ada
! ba5e89f5212818e3e53a4cf7d59d646c  gcc/testsuite/ada/acats-2/tests/ce/ce2108g.ada
! fb62dbd03a1355b41f3d194167f479aa  gcc/testsuite/ada/acats-2/tests/ce/ce2108h.ada
! e1df0b3934297c1162437a03a450f12a  gcc/testsuite/ada/acats-2/tests/ce/ce2109a.ada
! d91a1fcd2695ad63b53b63e0d22d3f22  gcc/testsuite/ada/acats-2/tests/ce/ce2109b.ada
! 0a95aeffa3822cc96d6f770183b34979  gcc/testsuite/ada/acats-2/tests/ce/ce2109c.ada
! 329e30bd5ac69971fa84cd76bd66b302  gcc/testsuite/ada/acats-2/tests/ce/ce2110a.ada
! b63ea51508983167185a0e378c787235  gcc/testsuite/ada/acats-2/tests/ce/ce2110c.ada
! 385c38395502c50c4f04f16ed172b5c3  gcc/testsuite/ada/acats-2/tests/ce/ce2111a.ada
! 0cab0967d4b6100c093d83a0daa2ca06  gcc/testsuite/ada/acats-2/tests/ce/ce2111b.ada
! 1def457c7ded3aa15287b30a02c2c1bf  gcc/testsuite/ada/acats-2/tests/ce/ce2111c.ada
! e039c87f3e2f30f3b378642cc3d5d3c3  gcc/testsuite/ada/acats-2/tests/ce/ce2111e.ada
! 607ff5b75e0ac677df365e3867c8b8bc  gcc/testsuite/ada/acats-2/tests/ce/ce2111f.ada
! 9b55a66cd32d536d65916a0288c480f4  gcc/testsuite/ada/acats-2/tests/ce/ce2111g.ada
! 9aac3a3d20f722d72f0a97d15db7e6ff  gcc/testsuite/ada/acats-2/tests/ce/ce2111i.ada
! 451691c716142d6af52540932182f7a8  gcc/testsuite/ada/acats-2/tests/ce/ce2201a.ada
! a9019ab5c60383a5aec6b4e12cf67546  gcc/testsuite/ada/acats-2/tests/ce/ce2201b.ada
! 29858e1a8a6dd46bb9164e8c8edbcddf  gcc/testsuite/ada/acats-2/tests/ce/ce2201c.ada
! 34d8b0e50b71bb424acf20936253736f  gcc/testsuite/ada/acats-2/tests/ce/ce2201d.dep
! b20fac24f54e723d0cc0d2b283a1a98c  gcc/testsuite/ada/acats-2/tests/ce/ce2201e.dep
! e5ef319f07f83742ea6dacb674de4c74  gcc/testsuite/ada/acats-2/tests/ce/ce2201f.ada
! 89d1575c20871ec14a7510e2c7fd7e56  gcc/testsuite/ada/acats-2/tests/ce/ce2201g.ada
! 06e274ba9cfdca457d343f7d036af0bc  gcc/testsuite/ada/acats-2/tests/ce/ce2201h.ada
! 819625912e63f1bb0690319469d91d14  gcc/testsuite/ada/acats-2/tests/ce/ce2201i.ada
! c75df2290aa04176fd8862e092446183  gcc/testsuite/ada/acats-2/tests/ce/ce2201j.ada
! 5cd3fabcbac1ce5f97eb0c3b7ff68060  gcc/testsuite/ada/acats-2/tests/ce/ce2201k.ada
! 5f85b515f14775082f0cef057e6c7cec  gcc/testsuite/ada/acats-2/tests/ce/ce2201l.ada
! dacbb7d19d52906e970100c8a0524fd4  gcc/testsuite/ada/acats-2/tests/ce/ce2201m.ada
! 45f176910989cfdcd7fdc941f37a5b71  gcc/testsuite/ada/acats-2/tests/ce/ce2201n.ada
! 376cc7edaf46154ca8f65652b5d6eca4  gcc/testsuite/ada/acats-2/tests/ce/ce2202a.ada
! 939f3ce3a39c9ca9d86e52320f27ff2c  gcc/testsuite/ada/acats-2/tests/ce/ce2203a.tst
! ba04f29f243a15d2bbe413b9e0066901  gcc/testsuite/ada/acats-2/tests/ce/ce2204a.ada
! 2fc36a0b7b4ddb630b023af7c4d90ba7  gcc/testsuite/ada/acats-2/tests/ce/ce2204b.ada
! 9ef6a168f2e294541459fe7a14263eb5  gcc/testsuite/ada/acats-2/tests/ce/ce2204c.ada
! b0274d08b84af4b62ad59e3d9ddb07df  gcc/testsuite/ada/acats-2/tests/ce/ce2204d.ada
! 34418b28be06a3924c3a2584bef259b6  gcc/testsuite/ada/acats-2/tests/ce/ce2205a.ada
! 5c92fac63d085e6a68726106d482ea42  gcc/testsuite/ada/acats-2/tests/ce/ce2206a.ada
! fcc7c7c24b495ce3ddaa0f9a580d75ee  gcc/testsuite/ada/acats-2/tests/ce/ce2208b.ada
! 97568e8cf63e0507c14b35a1a14e20c0  gcc/testsuite/ada/acats-2/tests/ce/ce2401a.ada
! dcd9e7cbbd7e97c5dd3e3add1eb9dc36  gcc/testsuite/ada/acats-2/tests/ce/ce2401b.ada
! efcdb258c81995c38e8cc3694b22f6dd  gcc/testsuite/ada/acats-2/tests/ce/ce2401c.ada
! e7f9dbd6fea160401601272d061289a3  gcc/testsuite/ada/acats-2/tests/ce/ce2401e.ada
! 1bf5badbcde77492314acef836d8ea11  gcc/testsuite/ada/acats-2/tests/ce/ce2401f.ada
! eb673da58247c955773ce3b8e1c2d4f3  gcc/testsuite/ada/acats-2/tests/ce/ce2401h.ada
! 6918301d4740c9f3a5bcdf8763ba341a  gcc/testsuite/ada/acats-2/tests/ce/ce2401i.ada
! 664a2145b5105ab8ae94b8ba8dca5cdd  gcc/testsuite/ada/acats-2/tests/ce/ce2401j.ada
! 7f54c0274e46b59b1fec8510f4fc3ad7  gcc/testsuite/ada/acats-2/tests/ce/ce2401k.ada
! a83a38fe98395d0bb886cb6143eb8170  gcc/testsuite/ada/acats-2/tests/ce/ce2401l.ada
! 2c4e89aba46a0152400d53a9aed78ba8  gcc/testsuite/ada/acats-2/tests/ce/ce2402a.ada
! 4e54cd3fcd15e2f31d844365222a85b3  gcc/testsuite/ada/acats-2/tests/ce/ce2403a.tst
! 4fce3b03a76a452b2433c54b199834ff  gcc/testsuite/ada/acats-2/tests/ce/ce2404a.ada
! ad81e45a71e09a3713483ae198eae6b0  gcc/testsuite/ada/acats-2/tests/ce/ce2404b.ada
! 397eb6a738bd1fb16bf404d4581a21e8  gcc/testsuite/ada/acats-2/tests/ce/ce2405b.ada
! 035cdd8af2147f386ba98eafee6fa53d  gcc/testsuite/ada/acats-2/tests/ce/ce2406a.ada
! bc1c3fb660e3a1a6cd3c3cd2c20c6f21  gcc/testsuite/ada/acats-2/tests/ce/ce2407a.ada
! e21a045af5825bcf7bae0f7774bf28bb  gcc/testsuite/ada/acats-2/tests/ce/ce2407b.ada
! 1ac50c952fbab2fcf2e1391bb697aac1  gcc/testsuite/ada/acats-2/tests/ce/ce2408a.ada
! fb58d51e1570b9726aa28d10034cf135  gcc/testsuite/ada/acats-2/tests/ce/ce2408b.ada
! d60b98c48fae643e51060dfd4200371e  gcc/testsuite/ada/acats-2/tests/ce/ce2409a.ada
! 5b25842de422c3e8d6301447c51d8985  gcc/testsuite/ada/acats-2/tests/ce/ce2409b.ada
! e03ae0d17d4ce186bb17ad28c1d12c8e  gcc/testsuite/ada/acats-2/tests/ce/ce2410a.ada
! a10dc12fca4ab67d0e070b8f08878918  gcc/testsuite/ada/acats-2/tests/ce/ce2410b.ada
! ef01f4584aa6fe18dfca4291aa2b9936  gcc/testsuite/ada/acats-2/tests/ce/ce2411a.ada
! cfdd50459f606dfd0272b27f902831f0  gcc/testsuite/ada/acats-2/tests/ce/ce3002b.tst
! 8c7a2401c3fd65042aaf7fbaaebb05d5  gcc/testsuite/ada/acats-2/tests/ce/ce3002c.tst
! 60cfa1b0514071feae57d422f407bbc6  gcc/testsuite/ada/acats-2/tests/ce/ce3002d.ada
! f7f30f9bace21926cfd024ab3ae7ed4a  gcc/testsuite/ada/acats-2/tests/ce/ce3002f.ada
! c4f22dddebf62a993e9a5dca37748e9a  gcc/testsuite/ada/acats-2/tests/ce/ce3102a.ada
! 019efa14311a98e7532962ec6464bb8e  gcc/testsuite/ada/acats-2/tests/ce/ce3102b.tst
! dab3a80b1760df07e4cf44cef4f9ca81  gcc/testsuite/ada/acats-2/tests/ce/ce3102d.ada
! 112884bd382c35480c4248866f3a556e  gcc/testsuite/ada/acats-2/tests/ce/ce3102e.ada
! 884f6ff3272bb27974b5c059fd940eb8  gcc/testsuite/ada/acats-2/tests/ce/ce3102f.ada
! 561a9bb3212245b35ea37ed7834ace08  gcc/testsuite/ada/acats-2/tests/ce/ce3102g.ada
! a5c10d55f5c631bb605e9f92f33b3d83  gcc/testsuite/ada/acats-2/tests/ce/ce3102h.ada
! 16f9be98787f36d98dd3a0d7c5673f99  gcc/testsuite/ada/acats-2/tests/ce/ce3102i.ada
! f2fb4988c4b17b901cb57756fa48524d  gcc/testsuite/ada/acats-2/tests/ce/ce3102j.ada
! 5885ee3beb2611070afd9595b92d024d  gcc/testsuite/ada/acats-2/tests/ce/ce3102k.ada
! af4fce15977e583c9580c84a57f46000  gcc/testsuite/ada/acats-2/tests/ce/ce3103a.ada
! 1a359b00af85a86ae636ed8ce9f54011  gcc/testsuite/ada/acats-2/tests/ce/ce3104a.ada
! 62ae4a6a702993a429980ed85d7d288b  gcc/testsuite/ada/acats-2/tests/ce/ce3104b.ada
! 3097f1866f5a1a12edc0bd1ad06fcfd7  gcc/testsuite/ada/acats-2/tests/ce/ce3104c.ada
! ffdd7cea02bf78362b21d5b47923f55a  gcc/testsuite/ada/acats-2/tests/ce/ce3106a.ada
! c089188b0086e9498b16c61338d1c72e  gcc/testsuite/ada/acats-2/tests/ce/ce3106b.ada
! 7ec91be55117ceec515d06ff18fd96f6  gcc/testsuite/ada/acats-2/tests/ce/ce3107a.tst
! 29791bc75974606a36e491a742bb3096  gcc/testsuite/ada/acats-2/tests/ce/ce3107b.ada
! eb49ffd6a23ce40400cdc2ebf0c8f371  gcc/testsuite/ada/acats-2/tests/ce/ce3108a.ada
! fd863ff6b1661c6c912d9bf6aebc3bc9  gcc/testsuite/ada/acats-2/tests/ce/ce3108b.ada
! 97e280eb5834dec4e91bbbc97553b1c7  gcc/testsuite/ada/acats-2/tests/ce/ce3110a.ada
! 5f42a55944d863fa57d6e12253d4922c  gcc/testsuite/ada/acats-2/tests/ce/ce3112c.ada
! c9d44fa9ff3ca5a2ccdda83b010c1f54  gcc/testsuite/ada/acats-2/tests/ce/ce3112d.ada
! f01486f7b41b7e9bb285f2b42444a64f  gcc/testsuite/ada/acats-2/tests/ce/ce3114a.ada
! 816907364fd976b617fbee2dc8afc858  gcc/testsuite/ada/acats-2/tests/ce/ce3115a.ada
! 55427ea93a85e61592244d314238e089  gcc/testsuite/ada/acats-2/tests/ce/ce3201a.ada
! 0a50773e8cb26d94c11adb5533460429  gcc/testsuite/ada/acats-2/tests/ce/ce3202a.ada
! 06b5bbb44e688a3c0c0ca62e655c32ab  gcc/testsuite/ada/acats-2/tests/ce/ce3206a.ada
! 98a3e7772f00a7bebd187c6c2d309f82  gcc/testsuite/ada/acats-2/tests/ce/ce3207a.ada
! f4529439e526335f9525bb157863cc63  gcc/testsuite/ada/acats-2/tests/ce/ce3301a.ada
! 0a70a8ac8ee35a84b380c07ea541b57f  gcc/testsuite/ada/acats-2/tests/ce/ce3302a.ada
! 9bac0e06cef0c10689cc849f3c509fcf  gcc/testsuite/ada/acats-2/tests/ce/ce3303a.ada
! 23c77e761edd8a91671acf3422a0ca06  gcc/testsuite/ada/acats-2/tests/ce/ce3304a.tst
! d0da64618db56f4abfac0c3b90fa0296  gcc/testsuite/ada/acats-2/tests/ce/ce3305a.ada
! 3f7e70ff0a93058dd780e3e6e4fefa3d  gcc/testsuite/ada/acats-2/tests/ce/ce3306a.ada
! 4e1329f66825e0283637c00ca6acc5b6  gcc/testsuite/ada/acats-2/tests/ce/ce3401a.ada
! df06c67b3b1ea125ef98d5346e81cc7e  gcc/testsuite/ada/acats-2/tests/ce/ce3402a.ada
! b50c12a694c3c56d3a2cf04d9ca9ccc3  gcc/testsuite/ada/acats-2/tests/ce/ce3402c.ada
! e2743c970635e3ead26ba550e6c23aab  gcc/testsuite/ada/acats-2/tests/ce/ce3402d.ada
! c0341031211c513d8c748c61167125fb  gcc/testsuite/ada/acats-2/tests/ce/ce3402e.ada
! f9deacf7d49917900f3fcee43aee5ca6  gcc/testsuite/ada/acats-2/tests/ce/ce3403a.ada
! fec31596c967bb1bab6a046e32225c6b  gcc/testsuite/ada/acats-2/tests/ce/ce3403b.ada
! 7e9202e07d3f865f2ceeb151792c452f  gcc/testsuite/ada/acats-2/tests/ce/ce3403c.ada
! 64070608c4f9c6a05d1e23408e5beb0d  gcc/testsuite/ada/acats-2/tests/ce/ce3403d.ada
! d82cac6d273d1fbe65506c1eecff04b9  gcc/testsuite/ada/acats-2/tests/ce/ce3403e.ada
! 7cdc9d7a9c43884cbedbde28d4954fe4  gcc/testsuite/ada/acats-2/tests/ce/ce3403f.ada
! dc1a67476ce793079c7af8b2d1b275ac  gcc/testsuite/ada/acats-2/tests/ce/ce3404a.ada
! 8b982e428bef61a3980b00b8079ad4f2  gcc/testsuite/ada/acats-2/tests/ce/ce3404b.ada
! 5cc2fbe64ade8df5eced5c397a38020a  gcc/testsuite/ada/acats-2/tests/ce/ce3404c.ada
! 871605306e645bb8c8952539a05637b2  gcc/testsuite/ada/acats-2/tests/ce/ce3404d.ada
! 5afe1fa2e94e304b32849dad526b0cb4  gcc/testsuite/ada/acats-2/tests/ce/ce3405a.ada
! 75e7f1f2e2d338bdbc593c460b1e055f  gcc/testsuite/ada/acats-2/tests/ce/ce3405c.ada
! d61f321bab45f725f89da9ebd98c7959  gcc/testsuite/ada/acats-2/tests/ce/ce3405d.ada
! 683881439899376dec46462b7b974e93  gcc/testsuite/ada/acats-2/tests/ce/ce3406a.ada
! 1d67a6840b438185a99382b830ffe815  gcc/testsuite/ada/acats-2/tests/ce/ce3406b.ada
! 00a1933b7205d0378d065989609d0e6f  gcc/testsuite/ada/acats-2/tests/ce/ce3406c.ada
! bc8a2b4d509e438b111cb451ba6c633d  gcc/testsuite/ada/acats-2/tests/ce/ce3406d.ada
! 0c8f9906304b5f6e2f871a2f56543e48  gcc/testsuite/ada/acats-2/tests/ce/ce3407a.ada
! d6da13ff2e3c07bb7f9617a04f387915  gcc/testsuite/ada/acats-2/tests/ce/ce3407b.ada
! bacd5248d5883ef91439cbdd245cbd9a  gcc/testsuite/ada/acats-2/tests/ce/ce3407c.ada
! babb7fd82795ea56950eb78715c895aa  gcc/testsuite/ada/acats-2/tests/ce/ce3408a.ada
! e30520b348614e4a8e628b3ea3aad54e  gcc/testsuite/ada/acats-2/tests/ce/ce3408b.ada
! 5d1d893ced6dbc7d9f25ee4a5fb8e211  gcc/testsuite/ada/acats-2/tests/ce/ce3408c.ada
! ca268135b5b6d64dc8be3768b6f7edc0  gcc/testsuite/ada/acats-2/tests/ce/ce3409a.ada
! 6c79cafc53b26bfb3c462c4d01969806  gcc/testsuite/ada/acats-2/tests/ce/ce3409b.ada
! 153c9a6d9246f682a42cd95552087944  gcc/testsuite/ada/acats-2/tests/ce/ce3409c.ada
! 62ed81bdf1e56f27f4c2630b320c6b75  gcc/testsuite/ada/acats-2/tests/ce/ce3409d.ada
! 67051865f07afe2038f84683dece3683  gcc/testsuite/ada/acats-2/tests/ce/ce3409e.ada
! 36c2b6db90b30d1e89dfe642110ca9be  gcc/testsuite/ada/acats-2/tests/ce/ce3410a.ada
! 5cf308b315cd2ac4c47ecb7409ef0ba1  gcc/testsuite/ada/acats-2/tests/ce/ce3410b.ada
! bcebb594f14a81961460c696159ea641  gcc/testsuite/ada/acats-2/tests/ce/ce3410c.ada
! c28a6aea6e2fa07f6b2e23e3e14876c2  gcc/testsuite/ada/acats-2/tests/ce/ce3410d.ada
! 8c67058f9e7fc008e387aa622534b5d4  gcc/testsuite/ada/acats-2/tests/ce/ce3410e.ada
! 4c3d96fe2a475d4a97d07bbd385cd260  gcc/testsuite/ada/acats-2/tests/ce/ce3411a.ada
! 0a0deabd5d66c7e62d00da0c83ac5dfa  gcc/testsuite/ada/acats-2/tests/ce/ce3411c.ada
! a8dda42826e8174f0657de7379cb605b  gcc/testsuite/ada/acats-2/tests/ce/ce3412a.ada
! 040ce75a5a909fb3da32ae0e451bda3e  gcc/testsuite/ada/acats-2/tests/ce/ce3413a.ada
! 951c9393706295621e4a78e9a1b9e2ee  gcc/testsuite/ada/acats-2/tests/ce/ce3413b.ada
! c33c707be5a9051ad8c6962035162e25  gcc/testsuite/ada/acats-2/tests/ce/ce3413c.ada
! 6cb9f4f71827deb077bcc1180c854625  gcc/testsuite/ada/acats-2/tests/ce/ce3414a.ada
! e5e2298148250ece65cc736cf86b5a00  gcc/testsuite/ada/acats-2/tests/ce/ce3601a.ada
! 1215dc7327db7704c21d367fe12a1ab9  gcc/testsuite/ada/acats-2/tests/ce/ce3602a.ada
! 6ccbba350556793177123ad7809e0ff9  gcc/testsuite/ada/acats-2/tests/ce/ce3602b.ada
! 12843cf2e9816b955ca7962f9bfc627f  gcc/testsuite/ada/acats-2/tests/ce/ce3602c.ada
! cef84bc67c1c6c0d7583ed454834a34f  gcc/testsuite/ada/acats-2/tests/ce/ce3602d.ada
! 5e31687529c52bde6efe93242bcbf2f8  gcc/testsuite/ada/acats-2/tests/ce/ce3603a.ada
! 3dc38686e9ce99632f9e21e584055443  gcc/testsuite/ada/acats-2/tests/ce/ce3604a.ada
! 98f98beec04bb6905ddea16ed212134f  gcc/testsuite/ada/acats-2/tests/ce/ce3604b.ada
! 1c7074f06be7b99dab79f14d5dddb060  gcc/testsuite/ada/acats-2/tests/ce/ce3605a.ada
! 49a30d4306b467f2cd10d4b811cfa231  gcc/testsuite/ada/acats-2/tests/ce/ce3605b.ada
! b496a8c56eea6c0501a70a96873353f7  gcc/testsuite/ada/acats-2/tests/ce/ce3605c.ada
! 6f3fe3a52cae3aa00e90c34391f3d16d  gcc/testsuite/ada/acats-2/tests/ce/ce3605d.ada
! 86bd1f46afec2bf13df76bd0d8ce0514  gcc/testsuite/ada/acats-2/tests/ce/ce3605e.ada
! 8388e3c1abd488ed32c198647fab80fe  gcc/testsuite/ada/acats-2/tests/ce/ce3606a.ada
! b3c475457035678aad225b02f0baaf49  gcc/testsuite/ada/acats-2/tests/ce/ce3606b.ada
! c0471531dea8b138d096c3049a710d34  gcc/testsuite/ada/acats-2/tests/ce/ce3701a.ada
! 918eb1c7abfa51f1d0f0920c8c6305e7  gcc/testsuite/ada/acats-2/tests/ce/ce3704a.ada
! fd0817427cf4c02d336138b11d6153a8  gcc/testsuite/ada/acats-2/tests/ce/ce3704b.ada
! 7fe37fdc40a516882c3388c9405adb57  gcc/testsuite/ada/acats-2/tests/ce/ce3704c.ada
! 9fb3d924d4a90f6940ec5e4b11a0ce61  gcc/testsuite/ada/acats-2/tests/ce/ce3704d.ada
! b5466a70b0554788bcffce4b777d7bbd  gcc/testsuite/ada/acats-2/tests/ce/ce3704e.ada
! 2bd3e088ed3663d0f57172ec9878402c  gcc/testsuite/ada/acats-2/tests/ce/ce3704f.ada
! c1b7a44976ea643f0821318848d2a333  gcc/testsuite/ada/acats-2/tests/ce/ce3704m.ada
! fbb2cb08fa9bd676488ed39c0025017d  gcc/testsuite/ada/acats-2/tests/ce/ce3704n.ada
! ddc6d31452157a248e0315438e717892  gcc/testsuite/ada/acats-2/tests/ce/ce3704o.ada
! 0f3f07ab9439af00921be7fba20ce330  gcc/testsuite/ada/acats-2/tests/ce/ce3705a.ada
! 3be84deb5cb9f6d5be7c2cadf68a90f5  gcc/testsuite/ada/acats-2/tests/ce/ce3705b.ada
! 11a056cf164688fbe30b1b1a85208e47  gcc/testsuite/ada/acats-2/tests/ce/ce3705c.ada
! e6e83df07a3fab385c58b17a0a43ca83  gcc/testsuite/ada/acats-2/tests/ce/ce3705d.ada
! c1458b663e297c80390f9cd80c7f5864  gcc/testsuite/ada/acats-2/tests/ce/ce3705e.ada
! fab53328469c600d972529f33eecee23  gcc/testsuite/ada/acats-2/tests/ce/ce3706c.ada
! aed136cb2863502616daa378424686d6  gcc/testsuite/ada/acats-2/tests/ce/ce3706d.ada
! 6344fa066f047ece7e15a9dc9dc4bf76  gcc/testsuite/ada/acats-2/tests/ce/ce3706f.ada
! 5316d57b3ad4c2e7fdcfa4dcf7de4439  gcc/testsuite/ada/acats-2/tests/ce/ce3706g.ada
! a778f4b7a5f926d446e0a70ffc718db8  gcc/testsuite/ada/acats-2/tests/ce/ce3707a.ada
! 478e73d32be1e76a0099cd9a73da79c0  gcc/testsuite/ada/acats-2/tests/ce/ce3708a.ada
! 818f2f0d5fcc6bdd1c354cc85b1e6640  gcc/testsuite/ada/acats-2/tests/ce/ce3801a.ada
! 6dc388aa9640dfd68a016a87aedb4e9b  gcc/testsuite/ada/acats-2/tests/ce/ce3801b.ada
! e7b36818b6b1f0625c96af8481f52f0d  gcc/testsuite/ada/acats-2/tests/ce/ce3804a.ada
! c3922fdc4d7bd246e803dbcf29ec365b  gcc/testsuite/ada/acats-2/tests/ce/ce3804b.ada
! eae67ccfbe2e51d92e77fbd2aefd9279  gcc/testsuite/ada/acats-2/tests/ce/ce3804c.ada
! b6842219efec21bda3be0c99f4cc04b4  gcc/testsuite/ada/acats-2/tests/ce/ce3804d.ada
! 9eef715602b30b1986cd238ae1f5fc61  gcc/testsuite/ada/acats-2/tests/ce/ce3804e.ada
! c5996f22c17f572bd9ab7181c9c39831  gcc/testsuite/ada/acats-2/tests/ce/ce3804f.ada
! 613171f59b0c0405911c4d928abfb0b4  gcc/testsuite/ada/acats-2/tests/ce/ce3804g.ada
! d992e56c7b48881cc7480a014ee01ce9  gcc/testsuite/ada/acats-2/tests/ce/ce3804h.ada
! a78767becb4aa2f884469056ae3d7ec4  gcc/testsuite/ada/acats-2/tests/ce/ce3804i.ada
! a4e5e33e2585ba61ae7ae7ae4db12bb2  gcc/testsuite/ada/acats-2/tests/ce/ce3804j.ada
! e6928c085b0205ec7db55a9f830ccdd0  gcc/testsuite/ada/acats-2/tests/ce/ce3804m.ada
! 7193594f0a1b29b3c2845bdce32c53e7  gcc/testsuite/ada/acats-2/tests/ce/ce3804o.ada
! 4a0b48b429236f9e1c8e6f58dd3bfa28  gcc/testsuite/ada/acats-2/tests/ce/ce3804p.ada
! 9ac3d952f3c355af267e6a6d9f4a8a79  gcc/testsuite/ada/acats-2/tests/ce/ce3805a.ada
! c7fd8ecaab44034a4d7e19eaf52d3390  gcc/testsuite/ada/acats-2/tests/ce/ce3805b.ada
! 1aab796cf0e7689c6edac441d619d28e  gcc/testsuite/ada/acats-2/tests/ce/ce3806a.ada
! 2e9a765636a0e1133cc203d0def8724d  gcc/testsuite/ada/acats-2/tests/ce/ce3806b.ada
! bc5e903902196b77527b50b767c2d7da  gcc/testsuite/ada/acats-2/tests/ce/ce3806c.ada
! ee7b548143b3610a6b8d3fdd4698dc45  gcc/testsuite/ada/acats-2/tests/ce/ce3806d.ada
! 4ef742156a97e0838a7c68579a62465c  gcc/testsuite/ada/acats-2/tests/ce/ce3806e.ada
! 48eed75e47db04066ee57577ae8febdf  gcc/testsuite/ada/acats-2/tests/ce/ce3806f.ada
! fae283383fb9395ac865027e5ecb9495  gcc/testsuite/ada/acats-2/tests/ce/ce3806g.ada
! 9d6687f5803bfad7ea35a3abcdb5772c  gcc/testsuite/ada/acats-2/tests/ce/ce3806h.ada
! d3af3076cdba08b0142afed2e6fc0b7b  gcc/testsuite/ada/acats-2/tests/ce/ce3809a.ada
! 2144655343ab8e0671768264f1de7939  gcc/testsuite/ada/acats-2/tests/ce/ce3809b.ada
! 94c3af83ea38d2552587ed3285a692b6  gcc/testsuite/ada/acats-2/tests/ce/ce3810a.ada
! 2b16f8d4e554f10c2a187f8308d7c631  gcc/testsuite/ada/acats-2/tests/ce/ce3810b.ada
! d426db9733cc34265b461b792b6474ad  gcc/testsuite/ada/acats-2/tests/ce/ce3815a.ada
! 48a18490ee8614f76691210dd9487c7b  gcc/testsuite/ada/acats-2/tests/ce/ce3901a.ada
! c0b5bdc86cdd66cb3f89cb34da6bafc6  gcc/testsuite/ada/acats-2/tests/ce/ce3902b.ada
! a2d6108b8d0296883e3c658639d13b49  gcc/testsuite/ada/acats-2/tests/ce/ce3904a.ada
! 379cd7598f79bae2f05b0815465e285f  gcc/testsuite/ada/acats-2/tests/ce/ce3904b.ada
! 49a69ee3b18484263b6f081df965ab54  gcc/testsuite/ada/acats-2/tests/ce/ce3905a.ada
! c53bbe9b612250e0e99c4238d30a2004  gcc/testsuite/ada/acats-2/tests/ce/ce3905b.ada
! 72f61386b7953b00b7cff52dfbc382c2  gcc/testsuite/ada/acats-2/tests/ce/ce3905c.ada
! 2ef4e950bf19d740d3354feb5811b645  gcc/testsuite/ada/acats-2/tests/ce/ce3905l.ada
! 68ee2e176861f501ee862916a0b9b86e  gcc/testsuite/ada/acats-2/tests/ce/ce3906a.ada
! d47ad5ee4c0a4fdbf2ea42a44fe42621  gcc/testsuite/ada/acats-2/tests/ce/ce3906b.ada
! 695b6968a4b0e7d53b5b76fb4f7da0c0  gcc/testsuite/ada/acats-2/tests/ce/ce3906c.ada
! 90d21e5ea4be7a236bfb40661d560471  gcc/testsuite/ada/acats-2/tests/ce/ce3906d.ada
! 3462bab257d5dd10bcb9c56813aa1e74  gcc/testsuite/ada/acats-2/tests/ce/ce3906e.ada
! 2c106bf46db6d9c4c50c01fbe92b517f  gcc/testsuite/ada/acats-2/tests/ce/ce3906f.ada
! 7c41fbcef2ed668ee19c73f44c696bac  gcc/testsuite/ada/acats-2/tests/ce/ce3907a.ada
! ee7ec1f6b6ec4c5ef50b1d777026421a  gcc/testsuite/ada/acats-2/tests/ce/ce3908a.ada
! c4b3b8c1c9564099bdde092389cc2da4  gcc/testsuite/ada/acats-2/tests/cxa/cxa3001.a
! edb7feb6536121adfd4fd4a2f3d69a3f  gcc/testsuite/ada/acats-2/tests/cxa/cxa3002.a
! 48392592efa08a198d6e5d7a1a663683  gcc/testsuite/ada/acats-2/tests/cxa/cxa3003.a
! 7eb11ccdd82615be75ded3c2d5c126d1  gcc/testsuite/ada/acats-2/tests/cxa/cxa3004.a
! bd60e198cabb483702243c263729427b  gcc/testsuite/ada/acats-2/tests/cxa/cxa4001.a
! 448cbac61205b8887f79bf74d5666a04  gcc/testsuite/ada/acats-2/tests/cxa/cxa4002.a
! 46d3d97d6347f9b5ec34b3513bcfab40  gcc/testsuite/ada/acats-2/tests/cxa/cxa4003.a
! 76c3b922526644795e2203573ee488e2  gcc/testsuite/ada/acats-2/tests/cxa/cxa4004.a
! 4b1514a00cc831e1766e0d36c67e271f  gcc/testsuite/ada/acats-2/tests/cxa/cxa4005.a
! dcde2eda6ce0a916997883996641ea19  gcc/testsuite/ada/acats-2/tests/cxa/cxa4006.a
! f528eee5266ffb815aad7b653d5be870  gcc/testsuite/ada/acats-2/tests/cxa/cxa4007.a
! 413d98fa6eff56c6b83c031c575fd9a6  gcc/testsuite/ada/acats-2/tests/cxa/cxa4008.a
! d2a3c398ae82b68c1544dbf3384095d7  gcc/testsuite/ada/acats-2/tests/cxa/cxa4009.a
! bc90a16063bf97bfeb414d4209261109  gcc/testsuite/ada/acats-2/tests/cxa/cxa4010.a
! b3036ab386ac3ec1d7b58cd50ad31ab9  gcc/testsuite/ada/acats-2/tests/cxa/cxa4011.a
! 06c61ebbffe294301eb79bc3d5e27c54  gcc/testsuite/ada/acats-2/tests/cxa/cxa4012.a
! ce3338d13ed9dd0ef83c04e53bed831e  gcc/testsuite/ada/acats-2/tests/cxa/cxa4013.a
! 0a9e62befb3d93c2c5e8ab93a327a6c2  gcc/testsuite/ada/acats-2/tests/cxa/cxa4014.a
! aad5ca617d2e40d20e448b613199553e  gcc/testsuite/ada/acats-2/tests/cxa/cxa4015.a
! 33c5aafe5935daee003a8246d048e812  gcc/testsuite/ada/acats-2/tests/cxa/cxa4016.a
! d2ac40847abc81d20163d7c521a90575  gcc/testsuite/ada/acats-2/tests/cxa/cxa4017.a
! 81384a047e321f48d7a9ae881a426324  gcc/testsuite/ada/acats-2/tests/cxa/cxa4018.a
! 334665c1cb55150c5c9af5013690044a  gcc/testsuite/ada/acats-2/tests/cxa/cxa4019.a
! c1bd4452ee22a8a6db5adbef47a641cc  gcc/testsuite/ada/acats-2/tests/cxa/cxa4020.a
! a570e64728464b5d7b98abf94a52b945  gcc/testsuite/ada/acats-2/tests/cxa/cxa4021.a
! ee35d8c6a0354f56770dd1aaf5f4d51e  gcc/testsuite/ada/acats-2/tests/cxa/cxa4022.a
! fc34d10875377b841a1d6172f334da36  gcc/testsuite/ada/acats-2/tests/cxa/cxa4023.a
! 19ec3ce920759c4a2037b89ae3061013  gcc/testsuite/ada/acats-2/tests/cxa/cxa4024.a
! 84b1823c491f3357731a977527457acf  gcc/testsuite/ada/acats-2/tests/cxa/cxa4025.a
! 254627e35c72d32a51b7db3824a622ea  gcc/testsuite/ada/acats-2/tests/cxa/cxa4026.a
! 0c20a4e5aa53f054deaa7ca01817db03  gcc/testsuite/ada/acats-2/tests/cxa/cxa4027.a
! 59f1d44db17d4f8454b983fa7c7b830b  gcc/testsuite/ada/acats-2/tests/cxa/cxa4028.a
! a05e073a2fe4ee6230e2a03d167ffce8  gcc/testsuite/ada/acats-2/tests/cxa/cxa4029.a
! eeef22827a8f3112fb9caff03c0003d3  gcc/testsuite/ada/acats-2/tests/cxa/cxa4030.a
! bb02ecad7593f15476885383704962db  gcc/testsuite/ada/acats-2/tests/cxa/cxa4031.a
! e272d6fb88a469d5600466803e241311  gcc/testsuite/ada/acats-2/tests/cxa/cxa4032.a
! 3f7248dd7e0876538e54ffc83eb5b9f9  gcc/testsuite/ada/acats-2/tests/cxa/cxa4033.a
! 90cfac79483d313e3e60ee66dd47bbb9  gcc/testsuite/ada/acats-2/tests/cxa/cxa4034.a
! d5b5e8186c886aee7a112ba901ef5b8c  gcc/testsuite/ada/acats-2/tests/cxa/cxa5011.a
! a67372b949970924bc0a9dd48dfc4999  gcc/testsuite/ada/acats-2/tests/cxa/cxa5012.a
! 1bc3b7995dbf8b972dd33ceccc5775f8  gcc/testsuite/ada/acats-2/tests/cxa/cxa5013.a
! 7f31584ea86307c534d43e91b8d28708  gcc/testsuite/ada/acats-2/tests/cxa/cxa5015.a
! ee786104570339c108786248363e8be5  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a01.a
! 59b52d99d8ad7539d9702fd5808604ab  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a02.a
! e58abfcc53f4c016f65e49a2e76c7c18  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a03.a
! 07803a06f2f6d9efa364537c4d61d56c  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a04.a
! 8beb99d4b6c77de021e0fb13ef712afc  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a05.a
! 4facff6e7577e863bfd71cfc8d80f4dc  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a06.a
! c3a4baf4aa21b446ccc93a6c7667de6a  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a07.a
! 6278088ddb4cadb7d9e5d09b9045b4b6  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a08.a
! cd7c58666aed347e740c0f6fd42f83d6  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a09.a
! ba78679b1a563e67c0076c1562ccf0f3  gcc/testsuite/ada/acats-2/tests/cxa/cxa5a10.a
! 96b76cdb631cda2774fc81007f5ec5ee  gcc/testsuite/ada/acats-2/tests/cxa/cxa8001.a
! 367d7f0f5e6305bdd87092066759b0fa  gcc/testsuite/ada/acats-2/tests/cxa/cxa8002.a
! 620e6506d3b188143f95bf7e9e7c2a47  gcc/testsuite/ada/acats-2/tests/cxa/cxa8003.a
! 05afd117ada97a293f198e2915e5c6e6  gcc/testsuite/ada/acats-2/tests/cxa/cxa9001.a
! 720f2be5a9704866c7199912ce177ec5  gcc/testsuite/ada/acats-2/tests/cxa/cxa9002.a
! 0eda7d556ffc97096e8bf91c74b55ab0  gcc/testsuite/ada/acats-2/tests/cxa/cxaa001.a
! 77f8a73011b66fb0023f0f34e63b2b56  gcc/testsuite/ada/acats-2/tests/cxa/cxaa002.a
! 6251cdd5d4023378cc0f056006946d4b  gcc/testsuite/ada/acats-2/tests/cxa/cxaa003.a
! 43c30533c4d806156e62989d0b1f26b1  gcc/testsuite/ada/acats-2/tests/cxa/cxaa004.a
! a3c49183a05e7dd95a555b795d847cdb  gcc/testsuite/ada/acats-2/tests/cxa/cxaa005.a
! 083ebde448b287604a204632257a8037  gcc/testsuite/ada/acats-2/tests/cxa/cxaa006.a
! 0ba729490f0276e661094749d283895c  gcc/testsuite/ada/acats-2/tests/cxa/cxaa007.a
! a5ce4e509ce0ab296bcdd6ac1f1901c4  gcc/testsuite/ada/acats-2/tests/cxa/cxaa008.a
! 6230c5c5911d68e5e9b6f01dd03cb063  gcc/testsuite/ada/acats-2/tests/cxa/cxaa009.a
! ce752fa717d1efa1292cf1f5fa1d3e2e  gcc/testsuite/ada/acats-2/tests/cxa/cxaa010.a
! a1b9e04009fe651e52c78ec25d1e7e02  gcc/testsuite/ada/acats-2/tests/cxa/cxaa011.a
! 89d82c447c9f9e46ab8b9a1c63021ed6  gcc/testsuite/ada/acats-2/tests/cxa/cxaa012.a
! 1f2db7b6b53cd6eac4580863a696a7fd  gcc/testsuite/ada/acats-2/tests/cxa/cxaa013.a
! 2bf5156bd9e88fa709d6514444235132  gcc/testsuite/ada/acats-2/tests/cxa/cxaa014.a
! ed6390551c08d72768b222a3edb8cc65  gcc/testsuite/ada/acats-2/tests/cxa/cxaa015.a
! 9b3e529f8cb7b3fd77f82dd49f82a490  gcc/testsuite/ada/acats-2/tests/cxa/cxaa016.a
! 7147f809c3aae79cfac85e734afed9c2  gcc/testsuite/ada/acats-2/tests/cxa/cxaa017.a
! cc1a3cfdd0d446ad5ae2882d5b1f089b  gcc/testsuite/ada/acats-2/tests/cxa/cxaa018.a
! 5a18624d0b2a25da41748146d45600fe  gcc/testsuite/ada/acats-2/tests/cxa/cxaa019.a
! 541118f0faae1cc95a1d90526336b620  gcc/testsuite/ada/acats-2/tests/cxa/cxab001.a
! 02e50f3257e2da0b2d211b9ed3e16791  gcc/testsuite/ada/acats-2/tests/cxa/cxac001.a
! 6788fdbde2fdac4a827fd20b38d8711b  gcc/testsuite/ada/acats-2/tests/cxa/cxac002.a
! bc2d4997d303b5a8cd8ac49ea128eabc  gcc/testsuite/ada/acats-2/tests/cxa/cxac003.a
! 0fed3fbdda367e73cc20e053e436b99f  gcc/testsuite/ada/acats-2/tests/cxa/cxac004.a
! c03fcfa6083accd85e20bd1ddecb7e8e  gcc/testsuite/ada/acats-2/tests/cxa/cxac005.a
! 1ea54203b702bc16f99a16da31812413  gcc/testsuite/ada/acats-2/tests/cxa/cxaca01.a
! 177daeac77a726a44c2f67d470718c26  gcc/testsuite/ada/acats-2/tests/cxa/cxaca02.a
! 56fc9878aa06e841c10ea2264f6970c0  gcc/testsuite/ada/acats-2/tests/cxa/cxacb01.a
! 66ac8f47c4a79c2e4c270e0af7e2e0ee  gcc/testsuite/ada/acats-2/tests/cxa/cxacb02.a
! 0709cbd75999d38ff1820f0252b56573  gcc/testsuite/ada/acats-2/tests/cxa/cxacc01.a
! e9b9a0663c6181302fffd99d8631f3de  gcc/testsuite/ada/acats-2/tests/cxa/cxaf001.a
! 74275581d2adcd2434f5e7957524b51c  gcc/testsuite/ada/acats-2/tests/cxb/cxb2001.a
! 801c8a35b2162f9c6264359249bbee69  gcc/testsuite/ada/acats-2/tests/cxb/cxb2002.a
! bf39b2f4f07ed6a4665a9dda2b002ff4  gcc/testsuite/ada/acats-2/tests/cxb/cxb2003.a
! 77c85b698809dbb5fb428e06a404c9b9  gcc/testsuite/ada/acats-2/tests/cxb/cxb3001.a
! 8359205e9055b8be1d9b6762d2ed3539  gcc/testsuite/ada/acats-2/tests/cxb/cxb3002.a
! 670fd9357c7c7cfa50297d22a291bf67  gcc/testsuite/ada/acats-2/tests/cxb/cxb3003.a
! 264fa1c95ae6b3be066613d5e0bfc39d  gcc/testsuite/ada/acats-2/tests/cxb/cxb30040.c
! 834af9fa57783899a0e35eb445000495  gcc/testsuite/ada/acats-2/tests/cxb/cxb30041.am
! 1f7e6c754cd6392302f6a73881265fcb  gcc/testsuite/ada/acats-2/tests/cxb/cxb3005.a
! 47cb358f8b5c39994c472ca6162c0605  gcc/testsuite/ada/acats-2/tests/cxb/cxb30060.c
! 43769c5f0a9930881f7e0db2f6a8a256  gcc/testsuite/ada/acats-2/tests/cxb/cxb30061.am
! 593282429f5462d5ed18dcd8dcdb51d9  gcc/testsuite/ada/acats-2/tests/cxb/cxb3007.a
! f846172da7dd713a885e8d2a7d06687e  gcc/testsuite/ada/acats-2/tests/cxb/cxb3008.a
! d2f1180bb38e13d62efbd9773c8b157b  gcc/testsuite/ada/acats-2/tests/cxb/cxb3009.a
! 02b32c32297cd44b0d911f2b531c9313  gcc/testsuite/ada/acats-2/tests/cxb/cxb3010.a
! f8edfe848dc0c6e6f48662c52fb4967d  gcc/testsuite/ada/acats-2/tests/cxb/cxb3011.a
! 8a65d94bc5bfd4ba3ffa03803fd4161b  gcc/testsuite/ada/acats-2/tests/cxb/cxb3012.a
! c26417c84de8dd0b5f98086031028262  gcc/testsuite/ada/acats-2/tests/cxb/cxb30130.c
! 0fb5e5e773d77b07187a80ff9a521df6  gcc/testsuite/ada/acats-2/tests/cxb/cxb30131.c
! f10ef865b96ee70575c8e209dd789a5d  gcc/testsuite/ada/acats-2/tests/cxb/cxb30132.am
! 1ddc4dd51346e5a28f96af27d7391476  gcc/testsuite/ada/acats-2/tests/cxb/cxb3014.a
! 95d8e46749c34da8a75a52eda38a1557  gcc/testsuite/ada/acats-2/tests/cxb/cxb3015.a
! 84585e09a73118e308ad940e05334954  gcc/testsuite/ada/acats-2/tests/cxb/cxb3016.a
! cbb79c5b42e78b77403051dad62e4b41  gcc/testsuite/ada/acats-2/tests/cxb/cxb4001.a
! fc709f860964cb89f985c7186e9f4747  gcc/testsuite/ada/acats-2/tests/cxb/cxb4002.a
! 4f684915a0877f5374cf11b630a78395  gcc/testsuite/ada/acats-2/tests/cxb/cxb4003.a
! 79754fe98b14164c0947685d39cacbb4  gcc/testsuite/ada/acats-2/tests/cxb/cxb4004.a
! 85a2ebed857909a39d337814747d6b8e  gcc/testsuite/ada/acats-2/tests/cxb/cxb4005.a
! 4082371e3fdf72189f00c59a748996d4  gcc/testsuite/ada/acats-2/tests/cxb/cxb4006.a
! 27abdc5551e4a8d82b4e9b0c64e5887b  gcc/testsuite/ada/acats-2/tests/cxb/cxb4007.a
! 8cddd50c9a17f7fc8660e979cbf02b3b  gcc/testsuite/ada/acats-2/tests/cxb/cxb4008.a
! 1b69eacf17c1c91c6952280f3412de5a  gcc/testsuite/ada/acats-2/tests/cxb/cxb5001.a
! c09620903bb91a1bb4eb42d58e681d41  gcc/testsuite/ada/acats-2/tests/cxb/cxb5002.a
! d523751f359c8b2cd39c46362a810f62  gcc/testsuite/ada/acats-2/tests/cxb/cxb5003.a
! 161785b3f8117f52fdfa5e2be103fe50  gcc/testsuite/ada/acats-2/tests/cxf/cxf1001.a
! 38832640106024eeab3e787b3e1abf12  gcc/testsuite/ada/acats-2/tests/cxf/cxf2001.a
! 6dbe0dc7ad8bcf924dea296b0e6d64f8  gcc/testsuite/ada/acats-2/tests/cxf/cxf2002.a
! df30106f75773ccdd081af9128456937  gcc/testsuite/ada/acats-2/tests/cxf/cxf2003.a
! bbdc713b858e164ba488b05b51a426d4  gcc/testsuite/ada/acats-2/tests/cxf/cxf2004.a
! 2853070456ab778051ae45509ef31700  gcc/testsuite/ada/acats-2/tests/cxf/cxf2005.a
! 5289a83b801532cadb9cfc8ca574144c  gcc/testsuite/ada/acats-2/tests/cxf/cxf2a01.a
! ecb6f7270417d94e1c9636302e69e1fa  gcc/testsuite/ada/acats-2/tests/cxf/cxf2a02.a
! 2ffc00ccfb476a6822050bacce9f38f0  gcc/testsuite/ada/acats-2/tests/cxf/cxf3001.a
! 5dae288354cb87431755a88817dd365b  gcc/testsuite/ada/acats-2/tests/cxf/cxf3002.a
! afd49d16a5d04aec633505dca48b0d0a  gcc/testsuite/ada/acats-2/tests/cxf/cxf3003.a
! c6b3622a1e5b20d69719852a4082e8be  gcc/testsuite/ada/acats-2/tests/cxf/cxf3004.a
! 1aee0d4b0a06b7063d6235fc8d34096a  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a01.a
! 57064f6f477f169e4e55de947a9c929c  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a02.a
! 963266d142d788cf27f6a6c25463a3e4  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a03.a
! b0edb7a9a3f96101a217a11d890227d0  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a04.a
! fc92aa9ac0df0e5baa30ead02d831b57  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a05.a
! 64a24769c1369c7cfdee0cd6e259be8f  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a06.a
! 9713b92f0463d1404ffce0f6b1e500b0  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a07.a
! 1e8c052576f82ce44e874eaf39b880b2  gcc/testsuite/ada/acats-2/tests/cxf/cxf3a08.a
! bb528e8b6f5a51fcb2c85de76f01ccd4  gcc/testsuite/ada/acats-2/tests/cxg/cxg1001.a
! 31d84efce5cb86f288a534683e15200a  gcc/testsuite/ada/acats-2/tests/cxg/cxg1002.a
! 5db4d9e6a4cf0ee61e3e4e4ea8093c4e  gcc/testsuite/ada/acats-2/tests/cxg/cxg1003.a
! 29704ab7c7c7a79f47511599cd5ea610  gcc/testsuite/ada/acats-2/tests/cxg/cxg1004.a
! 38c19bd2b8b49892b5a8468c5b781d26  gcc/testsuite/ada/acats-2/tests/cxg/cxg1005.a
! 814368ba96fd7e4cf439f579d9e94c81  gcc/testsuite/ada/acats-2/tests/cxg/cxg2001.a
! 691b89d2d22e78fce3d8ce8190aceac5  gcc/testsuite/ada/acats-2/tests/cxg/cxg2002.a
! fd15930c996abc004ebe5f623f8d7e3e  gcc/testsuite/ada/acats-2/tests/cxg/cxg2003.a
! 9c7ebf167f5adb4ad817f1cfaad15b1e  gcc/testsuite/ada/acats-2/tests/cxg/cxg2004.a
! 19538696a45a5cd61915e552c0159e21  gcc/testsuite/ada/acats-2/tests/cxg/cxg2005.a
! b5a9cd918ec505f80bffd4b8d3f81fb7  gcc/testsuite/ada/acats-2/tests/cxg/cxg2006.a
! d118b202244475fa2d6637a5102c8793  gcc/testsuite/ada/acats-2/tests/cxg/cxg2007.a
! 911e82a1ca3377a813732860a0062312  gcc/testsuite/ada/acats-2/tests/cxg/cxg2008.a
! 4fad0b52dda14d215336cc1cd38b7f03  gcc/testsuite/ada/acats-2/tests/cxg/cxg2009.a
! a7f0790bd1f4db62bb1f94f90b403cca  gcc/testsuite/ada/acats-2/tests/cxg/cxg2010.a
! 2e25178ea5e5552c5343ba6d8584ba74  gcc/testsuite/ada/acats-2/tests/cxg/cxg2011.a
! f61b0c35864b0aa5527d3e4a3e81e779  gcc/testsuite/ada/acats-2/tests/cxg/cxg2012.a
! 1b99769a37ef9c2b58f43910fdd00e6b  gcc/testsuite/ada/acats-2/tests/cxg/cxg2013.a
! 481025f4913d9ffb0c1ff442b9870591  gcc/testsuite/ada/acats-2/tests/cxg/cxg2014.a
! 79eb7ca23122446b9f31a5f4d6f8fbc7  gcc/testsuite/ada/acats-2/tests/cxg/cxg2015.a
! d1362a6e008edbda6db26e148303f3d0  gcc/testsuite/ada/acats-2/tests/cxg/cxg2016.a
! 84a228b85aa2b3a442a702cb5cf99e63  gcc/testsuite/ada/acats-2/tests/cxg/cxg2017.a
! db5d4af0d0f84dcaf031081f41020e4a  gcc/testsuite/ada/acats-2/tests/cxg/cxg2018.a
! 6ca3da628f7936107fe1fd235da62e61  gcc/testsuite/ada/acats-2/tests/cxg/cxg2019.a
! d8efe67bfdf82292c98f593e60cace57  gcc/testsuite/ada/acats-2/tests/cxg/cxg2020.a
! 53b94c96558a199ee91e9e94e92f6e6e  gcc/testsuite/ada/acats-2/tests/cxg/cxg2021.a
! 44df5fa53bb68ac9be22c5db9adb9c5e  gcc/testsuite/ada/acats-2/tests/cxg/cxg2022.a
! 86432328beb230d12c30455a5259108f  gcc/testsuite/ada/acats-2/tests/cxg/cxg2023.a
! 7b9353c95978924cfa8ffca95bd2472f  gcc/testsuite/ada/acats-2/tests/cxg/cxg2024.a
! 4aedd99c5e7383826785e110132437b0  gcc/testsuite/ada/acats-2/tests/cxh/cxh3001.a
! 30e3860e9003591085363de238d2c0f8  gcc/testsuite/ada/acats-2/tests/cxh/cxh3002.a
! 2f97ad7e05c98ee16642183b60fb702b  gcc/testsuite/ada/acats-2/tests/cxh/cxh30030.a
! 726c3a5559867c336b3e41053357bee8  gcc/testsuite/ada/acats-2/tests/cxh/cxh30031.am
! 5812c7613bb171e922984de8ed304306  gcc/testsuite/ada/acats-2/tests/cz/cz1101a.ada
! f4be18c06fbff775151b0c6fe4f18831  gcc/testsuite/ada/acats-2/tests/cz/cz1102a.ada
! 1a17d44787330941af6e6eb9b2f5fdac  gcc/testsuite/ada/acats-2/tests/cz/cz1103a.ada
! 4fbac816abd03239d980e03cee911122  gcc/testsuite/ada/acats-2/tests/d/d4a002a.ada
! 9fc88c362bc5e3ac1038838ce2e31e1d  gcc/testsuite/ada/acats-2/tests/d/d4a002b.ada
! 512d36027df5b67cad136178dabfe4a2  gcc/testsuite/ada/acats-2/tests/d/d4a004a.ada
! 22af18afdcf3a383d8100e7290a1c40c  gcc/testsuite/ada/acats-2/tests/d/d4a004b.ada
! 605dc6f15a51dd750ab6fdf7ddcb65a6  gcc/testsuite/ada/acats-2/tests/e/e28002b.ada
! de9f0ecd5c9bafad769c8b2264e38499  gcc/testsuite/ada/acats-2/tests/e/e28005d.ada
! 3cacc87e4376898f97bc3ad35305e3b0  gcc/testsuite/ada/acats-2/tests/e/e52103y.ada
! c92c30f9076000218a22d41126403c34  gcc/testsuite/ada/acats-2/tests/e/eb4011a.ada
! deba1575fb8b252064041e5d408f53a3  gcc/testsuite/ada/acats-2/tests/e/eb4012a.ada
! 08131f4b11da03c32ca002338f3e4a59  gcc/testsuite/ada/acats-2/tests/e/eb4014a.ada
! b8a8e5440cbe69d0ad54064892a114c0  gcc/testsuite/ada/acats-2/tests/e/ee3203a.ada
! 48040471bf50b07840b3338c9bc7e2c6  gcc/testsuite/ada/acats-2/tests/e/ee3204a.ada
! 25bff343477de94bd78239442f9ee02a  gcc/testsuite/ada/acats-2/tests/e/ee3402b.ada
! b057daa29f3fcc66f6affebff75a1be5  gcc/testsuite/ada/acats-2/tests/e/ee3409f.ada
! 4c52e7caa9bc136f2cba824b2e52e9c6  gcc/testsuite/ada/acats-2/tests/e/ee3412c.ada
! 76344ab690464f293f3d4ea9ddafa233  gcc/testsuite/ada/acats-2/tests/l/la140010.a
! 2900850ee7d28fb09a708d15ecb120e8  gcc/testsuite/ada/acats-2/tests/l/la140011.am
! 3a566254bd6b5a2476b7a0a4d201c6ec  gcc/testsuite/ada/acats-2/tests/l/la140012.a
! f251861d8f7143c4d6a0139eb5109844  gcc/testsuite/ada/acats-2/tests/l/la140020.a
! 94e3a842d07a1b065bf9729ba53ec9fd  gcc/testsuite/ada/acats-2/tests/l/la140021.am
! 951f84109a5b6658e7dd287bbd9bae71  gcc/testsuite/ada/acats-2/tests/l/la140022.a
! 876db830d93e5c9744a1c290ed00f17f  gcc/testsuite/ada/acats-2/tests/l/la140030.a
! eaefd12663189709da8ccf17c2c368fa  gcc/testsuite/ada/acats-2/tests/l/la140031.a
! 7bf8660d1ec101205c05dd17726a229a  gcc/testsuite/ada/acats-2/tests/l/la140032.am
! 857f64e53ab5de64c7aff62222d11127  gcc/testsuite/ada/acats-2/tests/l/la140033.a
! 92ca699ccd2c74842385086d5ada22dd  gcc/testsuite/ada/acats-2/tests/l/la140040.a
! 8b2c5cc4a29ad35fcfa826d7b492bc08  gcc/testsuite/ada/acats-2/tests/l/la140041.am
! fb8dd82cf673301eecabc122ac171090  gcc/testsuite/ada/acats-2/tests/l/la140042.a
! 6d5ee36b10609c888874ac66e3f0ee1e  gcc/testsuite/ada/acats-2/tests/l/la140050.a
! e04923836f3f4282a67d6f89778a6914  gcc/testsuite/ada/acats-2/tests/l/la140051.a
! bfa5a2187576b86f14423c0040742843  gcc/testsuite/ada/acats-2/tests/l/la140052.am
! 0d6624b67d8552559b64873f684e581d  gcc/testsuite/ada/acats-2/tests/l/la140053.a
! 8035d0c6bfa2f3b3a49f58acd52dd8a7  gcc/testsuite/ada/acats-2/tests/l/la140060.a
! 3d90461eff6991fd8178d6d2118e9ddf  gcc/testsuite/ada/acats-2/tests/l/la140061.a
! e475cc528675aeae58edde764f9dd718  gcc/testsuite/ada/acats-2/tests/l/la140062.am
! f022f8aa1d30fb70ecca6f610089b986  gcc/testsuite/ada/acats-2/tests/l/la140063.a
! c3833b353f97382d992824760c162c7c  gcc/testsuite/ada/acats-2/tests/l/la140070.a
! c0ccfb9014a2864c4a49d88f46f491c1  gcc/testsuite/ada/acats-2/tests/l/la140071.a
! 509bb3bfec998a7f16d7a711f508bdc0  gcc/testsuite/ada/acats-2/tests/l/la140072.am
! 4710fc41166460cc60192a57798054b4  gcc/testsuite/ada/acats-2/tests/l/la140073.a
! dcb4f9c9fdad375c3fe93310ac6b816e  gcc/testsuite/ada/acats-2/tests/l/la140080.a
! a3acb845f1ea8cd193aec71beb1ead51  gcc/testsuite/ada/acats-2/tests/l/la140081.a
! d8f09cb05605e6ee39a41685ba970092  gcc/testsuite/ada/acats-2/tests/l/la140082.am
! 6d37a12249cd1b2bdf860f7651a462e4  gcc/testsuite/ada/acats-2/tests/l/la140083.a
! 46655b2b4b88ca82cb0afc6eac22cd7b  gcc/testsuite/ada/acats-2/tests/l/la140090.a
! 257622cc1c6c259921d7e6c33e23f1ff  gcc/testsuite/ada/acats-2/tests/l/la140091.a
! 1c00169793ce024a3f35da791e30bbe6  gcc/testsuite/ada/acats-2/tests/l/la140092.am
! 6a23c4b62a4cac8720e8b7c21ad97d5b  gcc/testsuite/ada/acats-2/tests/l/la140093.a
! ed2026e1ace460e994b96b42c8f05e9c  gcc/testsuite/ada/acats-2/tests/l/la140100.a
! 55167329c290c62025473120fca26c7d  gcc/testsuite/ada/acats-2/tests/l/la140101.a
! 9280256db41c4bec0f36aa69ff060841  gcc/testsuite/ada/acats-2/tests/l/la140102.am
! 7b092247e539009157e512965ba1fc7a  gcc/testsuite/ada/acats-2/tests/l/la140103.a
! 6722c5fc30bb307834268e434901c086  gcc/testsuite/ada/acats-2/tests/l/la140110.a
! 443c0bb26e2eb84889c83a9bccaf9649  gcc/testsuite/ada/acats-2/tests/l/la140111.a
! 47c6e7a9da351969b20b3d295bb3c115  gcc/testsuite/ada/acats-2/tests/l/la140112.am
! 4bf0921f6ccd99db94a8a70d2b166fdf  gcc/testsuite/ada/acats-2/tests/l/la140113.a
! 5c9a0f9992d6d21844e2ba208b7cebbc  gcc/testsuite/ada/acats-2/tests/l/la140120.a
! 7c0ca86bca64632e57e32b5842ddbe60  gcc/testsuite/ada/acats-2/tests/l/la140121.a
! 211c1d44471b6a40c3d807f83059ff77  gcc/testsuite/ada/acats-2/tests/l/la140122.am
! e4cb364e594a0d2463e66f4aa48a914a  gcc/testsuite/ada/acats-2/tests/l/la140123.a
! 76516f31e5adf9e0fad1886ab83457a4  gcc/testsuite/ada/acats-2/tests/l/la140130.a
! f3b7f597165821e514288274845f5e54  gcc/testsuite/ada/acats-2/tests/l/la140131.a
! cb0819afcaf9586c9c95966d2516fb65  gcc/testsuite/ada/acats-2/tests/l/la140132.am
! 32a943ea5a9287c709fa39655d8668cb  gcc/testsuite/ada/acats-2/tests/l/la140133.a
! 212943c674757076da046354450e5113  gcc/testsuite/ada/acats-2/tests/l/la140140.a
! 195b91195befb872c8f723da1d28f132  gcc/testsuite/ada/acats-2/tests/l/la140141.a
! a6d2954f197001069fb371e8403e8ac6  gcc/testsuite/ada/acats-2/tests/l/la140142.am
! 57ac76011ccf9054712e1b09ef71bfd9  gcc/testsuite/ada/acats-2/tests/l/la140143.a
! 7552c854bb4af3c4f87cfe6a7a861610  gcc/testsuite/ada/acats-2/tests/l/la140150.a
! 5f1dcc1a1c97c253b5809c49c2a326ad  gcc/testsuite/ada/acats-2/tests/l/la140151.a
! 662ea838e79bbec83ab42275c2111e2a  gcc/testsuite/ada/acats-2/tests/l/la140152.am
! c80afc3e35ad24a8bb25b5e3d67f2bcb  gcc/testsuite/ada/acats-2/tests/l/la140153.a
! ebc4ad53e17e21942e69ae80c5b47b77  gcc/testsuite/ada/acats-2/tests/l/la140160.a
! 117e1792c17a1e2b5ec04bba346f528d  gcc/testsuite/ada/acats-2/tests/l/la140161.a
! b7744773a1c753b7aa68c166866eb005  gcc/testsuite/ada/acats-2/tests/l/la140162.am
! 9852ca8047bc9e1bd578767b67254fd2  gcc/testsuite/ada/acats-2/tests/l/la140163.a
! f7f66fd9abfb1f4931428292cd1fe63d  gcc/testsuite/ada/acats-2/tests/l/la140170.a
! 2acaa1d866103405c81e05839bd25054  gcc/testsuite/ada/acats-2/tests/l/la140171.a
! ea5de64993880be50e047e540f521cec  gcc/testsuite/ada/acats-2/tests/l/la140172.am
! b3e16fff4bf97ee8001c7d4707b01ca8  gcc/testsuite/ada/acats-2/tests/l/la140173.a
! cef0b6dba566de9e4b3fdd8429f3b573  gcc/testsuite/ada/acats-2/tests/l/la140180.a
! 3a47eaaf81a03727243aa228f4301a60  gcc/testsuite/ada/acats-2/tests/l/la140181.a
! a5c23800bfa114aaa25ef21241ca0c43  gcc/testsuite/ada/acats-2/tests/l/la140182.am
! 831069dc37bbaa6d17e49ec411324925  gcc/testsuite/ada/acats-2/tests/l/la140183.a
! 9597131b3c0b103f6244907627fbf160  gcc/testsuite/ada/acats-2/tests/l/la140190.a
! 14063c6684e8dd6c14ea4d18badb550b  gcc/testsuite/ada/acats-2/tests/l/la140191.a
! 8cbcf00024bdf7530ae51ba8a1ca0bba  gcc/testsuite/ada/acats-2/tests/l/la140192.am
! 99e2d79f6f50d594ab2f3e503f2db441  gcc/testsuite/ada/acats-2/tests/l/la140193.a
! ea6d1fb3bdbfc0deaee617b126be28f4  gcc/testsuite/ada/acats-2/tests/l/la140200.a
! babcd4715ea4f023430dfbe1f896bde1  gcc/testsuite/ada/acats-2/tests/l/la140201.a
! 64279761de38aa82af4a5638c457c1bf  gcc/testsuite/ada/acats-2/tests/l/la140202.am
! 7e4b83d0d9265f463e87dcc9fcf0fe5b  gcc/testsuite/ada/acats-2/tests/l/la140203.a
! b12cced7adaecf2a93250e16cca98cf4  gcc/testsuite/ada/acats-2/tests/l/la140210.a
! 887401b5f446bce786751fa72e341292  gcc/testsuite/ada/acats-2/tests/l/la140211.am
! ab173d0eec0bb616f34f81aa48cd950c  gcc/testsuite/ada/acats-2/tests/l/la140212.a
! 594b0e8144190e578786dbc1bad844dc  gcc/testsuite/ada/acats-2/tests/l/la140220.a
! f842b35f8c01816efc84f4addd2f93b7  gcc/testsuite/ada/acats-2/tests/l/la140221.am
! 772553907cc4b151574b52a2b52dc90c  gcc/testsuite/ada/acats-2/tests/l/la140222.a
! b03871ce6d6f59a7e5a7612e6d89d596  gcc/testsuite/ada/acats-2/tests/l/la140240.a
! efe4e86bfb690c79c68494f323cac801  gcc/testsuite/ada/acats-2/tests/l/la140241.a
! 30f55b3747e6fa1b9ef0af765a76ce5a  gcc/testsuite/ada/acats-2/tests/l/la140242.am
! f95f7a3f483abd92a9bf92b6dc469986  gcc/testsuite/ada/acats-2/tests/l/la140243.a
! 2db8317b47f3ab8bb9a0f5469169d027  gcc/testsuite/ada/acats-2/tests/l/la140250.a
! 938965a24a1e6eb44e817ef6a6bcef36  gcc/testsuite/ada/acats-2/tests/l/la140251.am
! b3d2bc446e9f8766852585be1a71c541  gcc/testsuite/ada/acats-2/tests/l/la140252.a
! ced69a105f582142776937381fb4ac18  gcc/testsuite/ada/acats-2/tests/l/la140260.a
! ff927baa2a1a94e581616deb8f88d900  gcc/testsuite/ada/acats-2/tests/l/la140261.a
! 666740bbcb573799ed4bbd92b8380bac  gcc/testsuite/ada/acats-2/tests/l/la140262.am
! 2a7b7e46c9fcf98d59cf645dd8488895  gcc/testsuite/ada/acats-2/tests/l/la140263.a
! b886a43ab960ee3b74b75b1a1895e692  gcc/testsuite/ada/acats-2/tests/l/la140270.a
! 2f50ecd2b64eb3a3cefb0066c4c043a1  gcc/testsuite/ada/acats-2/tests/l/la140271.a
! 004386b31584ba3e3f7171f7674e4137  gcc/testsuite/ada/acats-2/tests/l/la140272.am
! 9c63871113de9b518e90c90fe8e20f28  gcc/testsuite/ada/acats-2/tests/l/la140273.a
! 4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats-3/elabd.lst
! b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats-3/floatstore.lst
! bb4e4f9d3c0e72730e0bf397d375689c  gcc/testsuite/ada/acats-3/norun.lst
! 1485f263dfb9303b015015ae88161a8b  gcc/testsuite/ada/acats-3/run_acats.sh
! 9ae03e4c1aaa4540debb8413897d3d8c  gcc/testsuite/ada/acats-3/run_all.sh
! 6467abb463602aeb04583b3822f653f4  gcc/testsuite/ada/acats-3/run_test.exp
! 5723a26fced8721c3e90e6e7a9ba2a23  gcc/testsuite/ada/acats-3/stackcheck.lst
! e2c240adcd56f6817bf504f09f8f37f8  gcc/testsuite/ada/acats-3/support/acats31.lst
! 2f262cdb98b38922d7b7f84414f43b84  gcc/testsuite/ada/acats-3/support/checkfil.ada
! 4edf20410814582eae331707f2ae2c77  gcc/testsuite/ada/acats-3/support/enumchek.ada
! 8f3ec4fe93c0095e34d79e9a41dde4e9  gcc/testsuite/ada/acats-3/support/f340a000.a
! b673a17611516bde0712458de61636e8  gcc/testsuite/ada/acats-3/support/f340a001.a
! b31158ceea90e5246f63aed8b0078e9c  gcc/testsuite/ada/acats-3/support/f341a00.a
! d3d954612d4f455a32df07aa05816320  gcc/testsuite/ada/acats-3/support/f390a00.a
! ed3b5aee8f81d147785adce6b48411cd  gcc/testsuite/ada/acats-3/support/f392a00.a
! 7973b64953275c03e790967bc310010c  gcc/testsuite/ada/acats-3/support/f392c00.a
! 7b5b9e45fb9003af0e096ca36327031e  gcc/testsuite/ada/acats-3/support/f392d00.a
! e4733abdf62c401a876d29c3e5a38c34  gcc/testsuite/ada/acats-3/support/f393a00.a
! c1487dd34771abf18d1144c610fac26e  gcc/testsuite/ada/acats-3/support/f393b00.a
! 62e2d5487aada0ccc1744ab3475cf281  gcc/testsuite/ada/acats-3/support/f394a00.a
! a42dca590b0bfdb848b97329f6d46360  gcc/testsuite/ada/acats-3/support/f3a1a00.a
! b3e35321e808d9e061d1fdef51813016  gcc/testsuite/ada/acats-3/support/f3a2a00.a
! 9cc366af74ec7e926f044bb5155d06ae  gcc/testsuite/ada/acats-3/support/f431a00.a
! c528a968af853505c447f20a88480156  gcc/testsuite/ada/acats-3/support/f433a00.a
! 8272f7274c301332200c1e04a0c1974c  gcc/testsuite/ada/acats-3/support/f452a00.a
! 798afd3c6228223e07e7c8e3034eb99c  gcc/testsuite/ada/acats-3/support/f460a00.a
! d6989b796158be297223806b657f2d4a  gcc/testsuite/ada/acats-3/support/f650a00.a
! 316c7cde49ee557a67d39d6b63407811  gcc/testsuite/ada/acats-3/support/f730a000.a
! 60edd601c25022d0f19b8c45d3d187bb  gcc/testsuite/ada/acats-3/support/f730a001.a
! 75b2405f0dd739649bda9b92b0d259f4  gcc/testsuite/ada/acats-3/support/f731a00.a
! f12fe4ead9a2039676b4c2ad03e2a7c7  gcc/testsuite/ada/acats-3/support/f750a00.a
! d908051b99b685ec40f8c9185676e6a2  gcc/testsuite/ada/acats-3/support/f750b00.a
! bbcbe0173cb32d75903f9a81bf5c4060  gcc/testsuite/ada/acats-3/support/f760a00.a
! 689c49d9ccb5124d47eecb1dcebcc376  gcc/testsuite/ada/acats-3/support/f940a00.a
! d08e91b98a54c3d471108a6631714033  gcc/testsuite/ada/acats-3/support/f954a00.a
! f95be63eadf08e7cafbeb33a6794c019  gcc/testsuite/ada/acats-3/support/fa11a00.a
! 28be0e2126b177ff6d34df7c272a9f2c  gcc/testsuite/ada/acats-3/support/fa11b00.a
! 2228808bf25eecbd9e02ff343e2dba54  gcc/testsuite/ada/acats-3/support/fa11c00.a
! 1cb03e4473720d064b6798cf5e185f62  gcc/testsuite/ada/acats-3/support/fa11d00.a
! ff082a3957be5f526713103bf563e5be  gcc/testsuite/ada/acats-3/support/fa13a00.a
! dfa6bb61642b6c22f17171fb93cfc97c  gcc/testsuite/ada/acats-3/support/fa13b00.a
! b1766ae4ae2012673c7e0c848a4c105e  gcc/testsuite/ada/acats-3/support/fa21a00.a
! 97d3fd68d030a5d89e98b950d557151d  gcc/testsuite/ada/acats-3/support/fb20a00.a
! 886f3ad8c51e9e1e01cb7d4ab0b3f47e  gcc/testsuite/ada/acats-3/support/fb40a00.a
! 045b4b77241122260c9b42a0a85941b8  gcc/testsuite/ada/acats-3/support/fc50a00.a
! d2c427a2c2e845d2d5991d7e86689284  gcc/testsuite/ada/acats-3/support/fc51a00.a
! 18eee0e1727cb58b8ca0da52a8f7fbd0  gcc/testsuite/ada/acats-3/support/fc51b00.a
! 707c153d9868ec6e694e8db161e9a7c7  gcc/testsuite/ada/acats-3/support/fc51c00.a
! 981a728516c5de4f242cff81d35a1806  gcc/testsuite/ada/acats-3/support/fc51d00.a
! 992e25818babbd2519c54f2dc5987601  gcc/testsuite/ada/acats-3/support/fc54a00.a
! f75e17c909e83e1879e87a3ba3ffd7cc  gcc/testsuite/ada/acats-3/support/fc70a00.a
! cdb7ee32751757a29e821ba020228a0e  gcc/testsuite/ada/acats-3/support/fc70b00.a
! 8af79a6be55981313da73bc0bb01f617  gcc/testsuite/ada/acats-3/support/fc70c00.a
! 65011f4705018476715af62324c335b3  gcc/testsuite/ada/acats-3/support/fcndecl.ada
! 3ce3384936274aa48a8c4a38fa7109ac  gcc/testsuite/ada/acats-3/support/fd72a00.a
! 5c9a93b4c9f45c15707e4b3b123aee9c  gcc/testsuite/ada/acats-3/support/fdb0a00.a
! bf9c7650a6f8303b6a69ff5eb2660b15  gcc/testsuite/ada/acats-3/support/fdd2a00.a
! 66196b3c77238fb8c27dd10465e97042  gcc/testsuite/ada/acats-3/support/fdd2b00.a
! a77ebc244676daacb1f3a61ae8003e88  gcc/testsuite/ada/acats-3/support/fxa5a00.a
! f4e9649e424fa9578180b9aee65c8e96  gcc/testsuite/ada/acats-3/support/fxaca00.a
! caa75442e4dceed0740dfa35a47b5bb6  gcc/testsuite/ada/acats-3/support/fxacb00.a
! 1855abc6c615b76aa82fb9241571f3d8  gcc/testsuite/ada/acats-3/support/fxacc00.a
! 1c5af3fa6abb70600f002448cbb84798  gcc/testsuite/ada/acats-3/support/fxaia00.a
! f88af2b3eb53ad7c8700efbd0f878915  gcc/testsuite/ada/acats-3/support/fxc6a00.a
! 56ba35dd56ea544c0eb9146769871492  gcc/testsuite/ada/acats-3/support/fxe2a00.a
! 67770e9161b0f48f3fc9392bd3460272  gcc/testsuite/ada/acats-3/support/fxf2a00.a
! 6628969f51dd10c56235f9d7420e2d44  gcc/testsuite/ada/acats-3/support/fxf3a00.a
! 6a9b6ce90538e9126e7e5badc62ddca2  gcc/testsuite/ada/acats-3/support/impbit.adb
! 6fb74a7e3cf92186f0582ed9ff3261e6  gcc/testsuite/ada/acats-3/support/impdef.a
! 1df1ecb1a1f6d4af019216884e3504ef  gcc/testsuite/ada/acats-3/support/impdefc.a
! 4f2f9bfdfcfd8c5ecaf503416d1cfc5f  gcc/testsuite/ada/acats-3/support/impdefd.a
! edf70d423a69adebd38e9b29f35a2ba1  gcc/testsuite/ada/acats-3/support/impdefe.a
! cadfd8a5487a315a6fbd8eef397219e9  gcc/testsuite/ada/acats-3/support/impdefg.a
! 5d9a0f98d9f15211e0773263febb974b  gcc/testsuite/ada/acats-3/support/impdefh.a
! f2604ccc5244696793b33e7b83c57c45  gcc/testsuite/ada/acats-3/support/lencheck.ada
! 79c0994222b2a5fc702eb4bc3dc1ba8e  gcc/testsuite/ada/acats-3/support/macro.dfs
! 72980ae1a3bbd5b71aa915cefeaebf6e  gcc/testsuite/ada/acats-3/support/macrodef.adb
! 4d7b79a3ff077d1ab05a78ebcf5a1de3  gcc/testsuite/ada/acats-3/support/macrosub.ada
! 42ae695033fed5dcc5b021b3959756b3  gcc/testsuite/ada/acats-3/support/repbody.ada
! ec6c02ebb16da7cc117e3a65c06d385a  gcc/testsuite/ada/acats-3/support/repspec.ada
! 356cf4b2e0cc1e02ef1deddb5567de36  gcc/testsuite/ada/acats-3/support/spprt13s.tst
! d7900dc1365a924faa6718c6f3455730  gcc/testsuite/ada/acats-3/support/tctouch.ada
! 26945b868319fda8b82f82c677a35562  gcc/testsuite/ada/acats-3/support/tsttests.dat
! dc179b8a7c506c961b229b7ec7d2de53  gcc/testsuite/ada/acats-3/tests/a/a22006b.ada
! f61ae49f8066de3ba349e39d3a688ea6  gcc/testsuite/ada/acats-3/tests/a/a22006c.ada
! 54e5a501bbefb19fdf7715f5741fc858  gcc/testsuite/ada/acats-3/tests/a/a22006d.ada
! 11394a122edd516a587d020bc9ce2e8e  gcc/testsuite/ada/acats-3/tests/a/a26007a.tst
! aa57a75b85b36a99f6ecaca91a9eed60  gcc/testsuite/ada/acats-3/tests/a/a27003a.ada
! 054ca4c1bbb5dd701e8781bc92bf9cb8  gcc/testsuite/ada/acats-3/tests/a/a29003a.ada
! c330e5a362289a57c2ca975a61b4d20c  gcc/testsuite/ada/acats-3/tests/a/a2a031a.ada
! bbd0059e56828aa342048400c5490233  gcc/testsuite/ada/acats-3/tests/a/a33003a.ada
! 84de33e1cd2c3a0c2165591a28407805  gcc/testsuite/ada/acats-3/tests/a/a34017c.ada
! 924373fa4803a6e22fdc43bd0bee31a3  gcc/testsuite/ada/acats-3/tests/a/a35101b.ada
! be270ea90b999a2136e6cc850543a945  gcc/testsuite/ada/acats-3/tests/a/a35402a.ada
! 8054f52aa40d34c334d3a4b30222340a  gcc/testsuite/ada/acats-3/tests/a/a35801f.ada
! 325ee8ec767c6769757ac1eb71d6f515  gcc/testsuite/ada/acats-3/tests/a/a35902c.ada
! c512e91af19d8cf3307b189ec712dde0  gcc/testsuite/ada/acats-3/tests/a/a38106d.ada
! 8d608afb4ab9b953fd4dd01b00a90914  gcc/testsuite/ada/acats-3/tests/a/a38106e.ada
! 28bab0e5eb84a43ad0b4dc06d90f880b  gcc/testsuite/ada/acats-3/tests/a/a49027a.ada
! 5b6e07973ea9075de594e462d6f0f847  gcc/testsuite/ada/acats-3/tests/a/a49027b.ada
! 926d6ade013a1456d53a17063495aaf2  gcc/testsuite/ada/acats-3/tests/a/a49027c.ada
! df2270ff569c843d152cae1fc3606103  gcc/testsuite/ada/acats-3/tests/a/a54b01a.ada
! 71937fafcd3199a3eda330e7880c1ec5  gcc/testsuite/ada/acats-3/tests/a/a54b02a.ada
! 1aa0f31635199e1096468f23888a66f4  gcc/testsuite/ada/acats-3/tests/a/a55b12a.ada
! b0fc7cf66a832e68c808ed89a23340d1  gcc/testsuite/ada/acats-3/tests/a/a55b13a.ada
! 205552e2dafa2b699b6514e12a35e676  gcc/testsuite/ada/acats-3/tests/a/a55b14a.ada
! 7a5be75ac2dc323c1dd1e9328c39c6e0  gcc/testsuite/ada/acats-3/tests/a/a71004a.ada
! 69bd6dadfe4d61041f1998157bcbdb4a  gcc/testsuite/ada/acats-3/tests/a/a73001i.ada
! 8b949ce02d53bc2b35893d05656ff3c2  gcc/testsuite/ada/acats-3/tests/a/a73001j.ada
! 3859ef22068457dc5db7b84889f89c07  gcc/testsuite/ada/acats-3/tests/a/a74105b.ada
! 5200e86147d7eddb31de36b182066003  gcc/testsuite/ada/acats-3/tests/a/a74106a.ada
! d288f454e96b3840804c86245fd1309c  gcc/testsuite/ada/acats-3/tests/a/a74106b.ada
! c6c2ff5c654f5fecb72565c1ec890ea8  gcc/testsuite/ada/acats-3/tests/a/a74106c.ada
! 4526ae74da58946736d1077ca17b0f15  gcc/testsuite/ada/acats-3/tests/a/a74205e.ada
! a4600113362b659154e0921e8ccc440b  gcc/testsuite/ada/acats-3/tests/a/a74205f.ada
! 762682eaddf9e0d72ef370ddf52c091c  gcc/testsuite/ada/acats-3/tests/a/a83009a.ada
! 89be8e66cfa8cf7d9ea962fc92c5bbe6  gcc/testsuite/ada/acats-3/tests/a/a83009b.ada
! 1a86aa84a5b4a8f2d91898a2a5878109  gcc/testsuite/ada/acats-3/tests/a/a83a02a.ada
! b50d55495ed25cd5f5f0cc5ce62c33c6  gcc/testsuite/ada/acats-3/tests/a/a83a02b.ada
! 92d9af0f50f62b8ca3df28d8e4228ec5  gcc/testsuite/ada/acats-3/tests/a/a83a06a.ada
! 5c0b43d5d9e1251dce20fd8ac69811a8  gcc/testsuite/ada/acats-3/tests/a/a83a08a.ada
! d847c2fa25d9becc828716d2f6b3924e  gcc/testsuite/ada/acats-3/tests/a/a83c01c.ada
! 48efd44cb0cc48a4666ca9078d516a19  gcc/testsuite/ada/acats-3/tests/a/a83c01h.ada
! 9a14ce84b1e63358e8ea5b22b8b58366  gcc/testsuite/ada/acats-3/tests/a/a83c01i.ada
! d4b236b43806323a12df387d43065ecd  gcc/testsuite/ada/acats-3/tests/a/a85007d.ada
! 22b51a96b02c7a88f7ef1383e4b6e3ba  gcc/testsuite/ada/acats-3/tests/a/a85013b.ada
! 401bca9a32ad0d8881ea660bba3ca711  gcc/testsuite/ada/acats-3/tests/a/a87b59a.ada
! 74d0779474d9d789d09508ba653efc61  gcc/testsuite/ada/acats-3/tests/a/a95001c.ada
! 4de434af68116383b58aae2d7ff0186e  gcc/testsuite/ada/acats-3/tests/a/a95074d.ada
! 6dcac89d281ffc1c47dc51dfd7429d9e  gcc/testsuite/ada/acats-3/tests/a/a97106a.ada
! 672a004e783873caffaddfe2e9ed7184  gcc/testsuite/ada/acats-3/tests/a/a99006a.ada
! d338cf80520cfcd59896b08557f7334a  gcc/testsuite/ada/acats-3/tests/a/aa2010a.ada
! c8652c11c39145beb7535ff59feee79b  gcc/testsuite/ada/acats-3/tests/a/aa2012a.ada
! 64d7f9e70085b7412df08b06b70924f1  gcc/testsuite/ada/acats-3/tests/a/ac1015b.ada
! f8019419f138b9b0b4e860f560539c52  gcc/testsuite/ada/acats-3/tests/a/ac3106a.ada
! 599863dbc7677bd83fe020c38e11b4b8  gcc/testsuite/ada/acats-3/tests/a/ac3206a.ada
! 527cf1506ce6e0451f82e833aba4b6b3  gcc/testsuite/ada/acats-3/tests/a/ac3207a.ada
! 7c28607179138101a5d7cf088f333028  gcc/testsuite/ada/acats-3/tests/a/ad7001b.ada
! 810035c64fe589563087a2d2f380f1e4  gcc/testsuite/ada/acats-3/tests/a/ad7001c0.ada
! 8d92b2b79dbfd08d90c9a238b1e35a05  gcc/testsuite/ada/acats-3/tests/a/ad7001c1.ada
! 1c1c6e5fb42029a3ff9b1f3b9055c191  gcc/testsuite/ada/acats-3/tests/a/ad7001d0.ada
! 21257b0cc94669e31a8891cb9ed30e14  gcc/testsuite/ada/acats-3/tests/a/ad7001d1.ada
! eaa4c7b6b00bcd4bfa2d9883aff64ee8  gcc/testsuite/ada/acats-3/tests/a/ad7006a.ada
! b93c425e39dd1e4003cb33131862e719  gcc/testsuite/ada/acats-3/tests/a/ad7101a.ada
! 07e115c2bd0ac4bc085809d9ad65327f  gcc/testsuite/ada/acats-3/tests/a/ad7101c.ada
! 24888691f9cd0131679078391bf99fb1  gcc/testsuite/ada/acats-3/tests/a/ad7102a.ada
! 27abfa60261b508014d366ae82e296fe  gcc/testsuite/ada/acats-3/tests/a/ad7103a.ada
! aec3e74553448f599ae9a51ec65c42ce  gcc/testsuite/ada/acats-3/tests/a/ad7103c.ada
! d18cab7f102ffc27545ccb4522f82ded  gcc/testsuite/ada/acats-3/tests/a/ad7104a.ada
! 1b797aacfde0d671d89a45db2a9d5be2  gcc/testsuite/ada/acats-3/tests/a/ad7201a.ada
! 8c49706fbc8916aacd037e7649ed8213  gcc/testsuite/ada/acats-3/tests/a/ad7203b.ada
! 129af6b1b47884872132fcfc3787f362  gcc/testsuite/ada/acats-3/tests/a/ad7205b.ada
! 696b85c4c78cdc9b5448612a22b9ffa3  gcc/testsuite/ada/acats-3/tests/a/ad8011a.tst
! bfa3fa83b466b71da4126d005e2c701b  gcc/testsuite/ada/acats-3/tests/a/ada101a.ada
! 178bb6ff2316e9cfb5bd4395e74874ae  gcc/testsuite/ada/acats-3/tests/a/ae2113a.ada
! 1dd247cf1f02e4384b1f1a58ab2244c0  gcc/testsuite/ada/acats-3/tests/a/ae2113b.ada
! 5ff7c493a66eb8be0a3e7f89bd4d2512  gcc/testsuite/ada/acats-3/tests/a/ae3002g.ada
! 2cc8c13fd1203af7f246cee23d3037c3  gcc/testsuite/ada/acats-3/tests/a/ae3101a.ada
! 3798d627b7336c5fa8805e970e10ec7e  gcc/testsuite/ada/acats-3/tests/a/ae3702a.ada
! 7a44891c6ee0ec272ded72e61d392bc8  gcc/testsuite/ada/acats-3/tests/a/ae3709a.ada
! 8a42b2199ecbb25390c8c306c3759312  gcc/testsuite/ada/acats-3/tests/c2/c23001a.ada
! 8d4b3f4069aeb0e32db3f46e5cb1487b  gcc/testsuite/ada/acats-3/tests/c2/c23003a.tst
! 95e1beb36e033514e6e4be866042a42a  gcc/testsuite/ada/acats-3/tests/c2/c23003b.tst
! a765ec985184f6802389b89d0971eede  gcc/testsuite/ada/acats-3/tests/c2/c23003g.tst
! 53bdd26032ff323b57f3c309b520767e  gcc/testsuite/ada/acats-3/tests/c2/c23003i.tst
! d8470ff80210b6aeab8ecf5828f8e73c  gcc/testsuite/ada/acats-3/tests/c2/c23006a.ada
! c175938807f9ed5ec36eed8c2fc47bf2  gcc/testsuite/ada/acats-3/tests/c2/c23006b.ada
! 1891f1d94ad6f27dc8691abae763b735  gcc/testsuite/ada/acats-3/tests/c2/c23006c.ada
! 4d2aaab0f8577c4441dfb223b74e9270  gcc/testsuite/ada/acats-3/tests/c2/c23006d.ada
! d38fc16a6b2a221a8089094d8e595fd0  gcc/testsuite/ada/acats-3/tests/c2/c23006e.ada
! e4cb34f327ded980acbb2890f276b1b6  gcc/testsuite/ada/acats-3/tests/c2/c23006f.ada
! 1afe1ff732d7c93eb72aeb763fc3a3e4  gcc/testsuite/ada/acats-3/tests/c2/c23006g.ada
! d7a2fe8807a7e954f894e43619906c61  gcc/testsuite/ada/acats-3/tests/c2/c24002d.ada
! 90b7096d0092e8bee54a5e0931480cc3  gcc/testsuite/ada/acats-3/tests/c2/c24003a.ada
! 8d4b3197420dea97b47fa445d6b7f13e  gcc/testsuite/ada/acats-3/tests/c2/c24003b.ada
! c0bc49ad0d9faebe7c1bddd17682575b  gcc/testsuite/ada/acats-3/tests/c2/c24003c.ada
! 474d9480579f044d63ea2312eee797a0  gcc/testsuite/ada/acats-3/tests/c2/c24106a.ada
! 21abd0c844a441282df97eca59d187ac  gcc/testsuite/ada/acats-3/tests/c2/c24202d.ada
! f8734f0cb78893a591c1455798f48f34  gcc/testsuite/ada/acats-3/tests/c2/c24203a.ada
! 303fe85abf30e67b9c26c05c37527377  gcc/testsuite/ada/acats-3/tests/c2/c24203b.ada
! 4fc421f9d26dd38caa8e66e5f9a8118d  gcc/testsuite/ada/acats-3/tests/c2/c24207a.ada
! 00805111547e7b0f767a65dbb0216178  gcc/testsuite/ada/acats-3/tests/c2/c24211a.ada
! d5324b037e4f821711b81926469cd3e5  gcc/testsuite/ada/acats-3/tests/c2/c250001.au
! 373ab51281434258bd43bb850031dd33  gcc/testsuite/ada/acats-3/tests/c2/c250002.au
! fcffacb0c5a7d6bc171b2b62228ef27c  gcc/testsuite/ada/acats-3/tests/c2/c25001a.ada
! f8101111006b8dfccb57bc9286761546  gcc/testsuite/ada/acats-3/tests/c2/c25001b.ada
! 4d59f28ccd2a2792f59d358acfb3b645  gcc/testsuite/ada/acats-3/tests/c2/c26006a.ada
! 2a3847aff34c962069ea9fc46184b49c  gcc/testsuite/ada/acats-3/tests/c2/c26008a.ada
! 3b3d12a94cdb249ade26bb6fe45121be  gcc/testsuite/ada/acats-3/tests/c2/c2a001a.ada
! 3fd11c60327272b0e88714377e07694a  gcc/testsuite/ada/acats-3/tests/c2/c2a001b.ada
! fad7c83b08db79e3d8d41a3abc495609  gcc/testsuite/ada/acats-3/tests/c2/c2a001c.ada
! 9e58903d92e80dece18b3f5f07c10714  gcc/testsuite/ada/acats-3/tests/c2/c2a002a.ada
! 80f047f9baf4edce16ae00b242937e09  gcc/testsuite/ada/acats-3/tests/c2/c2a008a.ada
! 5846b01316c8e35b2ae9271e2ceeb33b  gcc/testsuite/ada/acats-3/tests/c2/c2a021b.ada
! 6c6e6ac7e7d8151372bf25d5bfcc4638  gcc/testsuite/ada/acats-3/tests/c3/c32001a.ada
! f44d3e1d8c4deff3e60e49eb14755c7f  gcc/testsuite/ada/acats-3/tests/c3/c32001b.ada
! 90383af3c35e304193502497e9d9ada0  gcc/testsuite/ada/acats-3/tests/c3/c32001c.ada
! 6f38031cf1bc7fd3a2530a0a49fc3927  gcc/testsuite/ada/acats-3/tests/c3/c32001d.ada
! 4cff8a5cde793b9eb72e56ef8588c690  gcc/testsuite/ada/acats-3/tests/c3/c32001e.ada
! fe386611f5a09953fdbdb423b0673b0b  gcc/testsuite/ada/acats-3/tests/c3/c32107a.ada
! 6dcc55a41a077f43caf697ae83ae4678  gcc/testsuite/ada/acats-3/tests/c3/c32107c.ada
! 6bc3a589ff71140e94718588fa9f9c34  gcc/testsuite/ada/acats-3/tests/c3/c32108a.ada
! 0b55a6ac879d361c4eaa8a25a475c92e  gcc/testsuite/ada/acats-3/tests/c3/c32108b.ada
! 4520bac74d324253fcf2b48b5c6eea2b  gcc/testsuite/ada/acats-3/tests/c3/c32111a.ada
! 52ac5c461c7746717a0d789fb2a57377  gcc/testsuite/ada/acats-3/tests/c3/c32111b.ada
! dabad6f6cae80313a5a888aaa710756d  gcc/testsuite/ada/acats-3/tests/c3/c32112b.ada
! eebc548a818a1f56ce990f52129e4296  gcc/testsuite/ada/acats-3/tests/c3/c32113a.ada
! 016d6073dcc33d7b8106082eb7755faa  gcc/testsuite/ada/acats-3/tests/c3/c32115a.ada
! a613215b48d8c873069bb2d690d5f556  gcc/testsuite/ada/acats-3/tests/c3/c32115b.ada
! f21dc71d940d5c06af5d22f69eab60f9  gcc/testsuite/ada/acats-3/tests/c3/c330001.a
! 74812d0708e93af61e096b45e2fc14ec  gcc/testsuite/ada/acats-3/tests/c3/c330002.a
! 8e5fef6b3dfabbb753bbf97caf8dddae  gcc/testsuite/ada/acats-3/tests/c3/c332001.a
! d7ae35646e985b47bde736b4aeadaec1  gcc/testsuite/ada/acats-3/tests/c3/c340001.a
! 029cfe27a33cb66b049fe0d0fb65381b  gcc/testsuite/ada/acats-3/tests/c3/c34001a.ada
! 7f88e5135c6832cdc88dff48cc8dafee  gcc/testsuite/ada/acats-3/tests/c3/c34001c.ada
! 8c1764692d7cb0bc17a952ce68b59db8  gcc/testsuite/ada/acats-3/tests/c3/c34001d.ada
! a08af1aeb3b4af40be4e8250cad56d8d  gcc/testsuite/ada/acats-3/tests/c3/c34001f.ada
! 796e76f308a9d18762b63a8a7c9fa6ec  gcc/testsuite/ada/acats-3/tests/c3/c34002a.ada
! 56ca2500660f86690e43b4eb2c63911d  gcc/testsuite/ada/acats-3/tests/c3/c34002c.ada
! 916814d1426aeb62617f0e647f1425f4  gcc/testsuite/ada/acats-3/tests/c3/c34003a.ada
! 7848bad56990231ec4964a5294f4d02f  gcc/testsuite/ada/acats-3/tests/c3/c34003c.ada
! 3f596cd960a8968d7c7892b7351e85fa  gcc/testsuite/ada/acats-3/tests/c3/c34004a.ada
! f25b6504d96e3e21099abd8a985bfe40  gcc/testsuite/ada/acats-3/tests/c3/c34004c.ada
! 10feabd33f2004943d36ff9acac0bda3  gcc/testsuite/ada/acats-3/tests/c3/c34005a.ada
! 9b730174260769c83e1d1f34a482b64c  gcc/testsuite/ada/acats-3/tests/c3/c34005c.ada
! d8cd66825d35a0c2eee7a2bc22021fde  gcc/testsuite/ada/acats-3/tests/c3/c34005d.ada
! fd5b17683accebcffccf7d52a88ba813  gcc/testsuite/ada/acats-3/tests/c3/c34005f.ada
! 5a2119c2d54f4427832bc1c61d913eac  gcc/testsuite/ada/acats-3/tests/c3/c34005g.ada
! 170b45f6069790926570bd39f97033ea  gcc/testsuite/ada/acats-3/tests/c3/c34005i.ada
! bdf673ae022cc1b217f6ea84218ef460  gcc/testsuite/ada/acats-3/tests/c3/c34005j.ada
! 0c6f4909c9db9787b9ca4d3b296a3ae9  gcc/testsuite/ada/acats-3/tests/c3/c34005l.ada
! 7f1441892699c24f145df474c396124d  gcc/testsuite/ada/acats-3/tests/c3/c34005m.ada
! f851c156716ece972741b1a161b80b5f  gcc/testsuite/ada/acats-3/tests/c3/c34005o.ada
! 44e6ae2ddfccd9120add81bcf05ef268  gcc/testsuite/ada/acats-3/tests/c3/c34005p.ada
! c9bfd44b8febc96560f3ee780cd50a02  gcc/testsuite/ada/acats-3/tests/c3/c34005r.ada
! cd29d3c24de0223ae985376f7363459e  gcc/testsuite/ada/acats-3/tests/c3/c34005s.ada
! 5369d3d26bb15776f47302c2f15c9682  gcc/testsuite/ada/acats-3/tests/c3/c34005u.ada
! b0cfd73e6d9f1d87557f4775248508ea  gcc/testsuite/ada/acats-3/tests/c3/c34005v.ada
! 60d73ec320d9ef0db0dc330bb3e04fe5  gcc/testsuite/ada/acats-3/tests/c3/c34006a.ada
! da0b3e574a91ee0aaaef5268466ab1d1  gcc/testsuite/ada/acats-3/tests/c3/c34006d.ada
! 8d549731513d1eff1ef01cf7c39e1bb6  gcc/testsuite/ada/acats-3/tests/c3/c34006f.ada
! 4ed1c279557b308d6949c373537329cf  gcc/testsuite/ada/acats-3/tests/c3/c34006g.ada
! 90472c17a5088e3d00d57cf3597dc59f  gcc/testsuite/ada/acats-3/tests/c3/c34006j.ada
! 5c3c081fc43ed6dc322f8a13f14b6dba  gcc/testsuite/ada/acats-3/tests/c3/c34006l.ada
! 3111937fe40eda62543e53d0dc0a9b2e  gcc/testsuite/ada/acats-3/tests/c3/c34007a.ada
! a6c16ebbc095684171bb89cb7ac5b52f  gcc/testsuite/ada/acats-3/tests/c3/c34007d.ada
! 3f46f4632a1e2839b528dd4edb849c59  gcc/testsuite/ada/acats-3/tests/c3/c34007f.ada
! 50a6b8b6ab707d4020a210c2f54c5364  gcc/testsuite/ada/acats-3/tests/c3/c34007g.ada
! 1d08fae78b3684032500b751c4f6b956  gcc/testsuite/ada/acats-3/tests/c3/c34007i.ada
! 7dec8ab4f2325dfb24a6f4a0712ca647  gcc/testsuite/ada/acats-3/tests/c3/c34007j.ada
! f2f670c3368d6fdedc0bc830e2f5441f  gcc/testsuite/ada/acats-3/tests/c3/c34007m.ada
! 12e7a75337b952bbe70b50f44fbf73bd  gcc/testsuite/ada/acats-3/tests/c3/c34007p.ada
! 4460899978bde8392dbf79b1457fd4c0  gcc/testsuite/ada/acats-3/tests/c3/c34007r.ada
! 430fadbb7eb89cad332156a43a1cb8a6  gcc/testsuite/ada/acats-3/tests/c3/c34007s.ada
! 142cd26f56dbefa8cc40ce318e93574b  gcc/testsuite/ada/acats-3/tests/c3/c34007u.ada
! 01aa55423bd6286a768cfbc7951408e9  gcc/testsuite/ada/acats-3/tests/c3/c34007v.ada
! 511c5e7943ba2a51ce38527bbf116d2d  gcc/testsuite/ada/acats-3/tests/c3/c34008a.ada
! 9e896dcd16ce62c70c03b6105de6b94c  gcc/testsuite/ada/acats-3/tests/c3/c34009a.ada
! be1b3bebe697fb006bf9a558f3b0f788  gcc/testsuite/ada/acats-3/tests/c3/c34009d.ada
! 5880284be01f48d40969f18306c94edd  gcc/testsuite/ada/acats-3/tests/c3/c34009f.ada
! 679004960f5e177505b2aff13c637ebf  gcc/testsuite/ada/acats-3/tests/c3/c34009g.ada
! f60aa89944e52f4dca47047e08990f29  gcc/testsuite/ada/acats-3/tests/c3/c34009j.ada
! 28351985ca5afb785bccaaf7463d1f32  gcc/testsuite/ada/acats-3/tests/c3/c34009l.ada
! 221f9bd08976154a0a22e9948d8ac7e0  gcc/testsuite/ada/acats-3/tests/c3/c34011b.ada
! f2175e26a65dbd70c186e6acf1001755  gcc/testsuite/ada/acats-3/tests/c3/c34012a.ada
! bdde2c516616684b5fe414550d8400ee  gcc/testsuite/ada/acats-3/tests/c3/c34014a.ada
! 4e8100382b8141c0d056a9fe870b8d06  gcc/testsuite/ada/acats-3/tests/c3/c34014c.ada
! a8fbccc7b3c28981b57a867a1edabf5d  gcc/testsuite/ada/acats-3/tests/c3/c34014e.ada
! 75cb51a9c469066a67228b04e8ba11fc  gcc/testsuite/ada/acats-3/tests/c3/c34014g.ada
! da007fc8719ca70057c035beb9fda7fe  gcc/testsuite/ada/acats-3/tests/c3/c34014h.ada
! dbcb5a07736736af9834d2938b24e483  gcc/testsuite/ada/acats-3/tests/c3/c34014n.ada
! afbaca6a68812eaecf17a8eef2a6346e  gcc/testsuite/ada/acats-3/tests/c3/c34014p.ada
! df14c9b4224ce4cf3fd2d8445cbad0f2  gcc/testsuite/ada/acats-3/tests/c3/c34014r.ada
! 03948696a8a2d08faa02588806cd388d  gcc/testsuite/ada/acats-3/tests/c3/c34014t.ada
! 7258de51f19cfc9506908221af84e01f  gcc/testsuite/ada/acats-3/tests/c3/c34014u.ada
! 360330a2a81712d1ed00c02cbc5e6526  gcc/testsuite/ada/acats-3/tests/c3/c34018a.ada
! a943a89b3032146b53e937f3a73684da  gcc/testsuite/ada/acats-3/tests/c3/c340a01.a
! 5a38659efe283303f9d22ebc955ae0d0  gcc/testsuite/ada/acats-3/tests/c3/c340a02.a
! f694a602dc4b31baf72c096b6e4fb9d5  gcc/testsuite/ada/acats-3/tests/c3/c341a01.a
! 4ad05d07bd295bd76f3edbc6685ae9b8  gcc/testsuite/ada/acats-3/tests/c3/c341a02.a
! 49408ab274823bacfccd32176c5bc061  gcc/testsuite/ada/acats-3/tests/c3/c341a03.a
! ec207723e08de50ca0964ad3318f8235  gcc/testsuite/ada/acats-3/tests/c3/c341a04.a
! 55b745d015fed5a09de487d8081c09eb  gcc/testsuite/ada/acats-3/tests/c3/c35003a.ada
! 092ff51133e865dad2cd6192506f9980  gcc/testsuite/ada/acats-3/tests/c3/c35003b.ada
! 55caad169adcfa6b58689ceb3dc1d505  gcc/testsuite/ada/acats-3/tests/c3/c35003d.ada
! b2b10d16689d994b421c7f356c4eebe9  gcc/testsuite/ada/acats-3/tests/c3/c35102a.ada
! ca3400d0b805977010a922a33d4fc78c  gcc/testsuite/ada/acats-3/tests/c3/c352001.a
! 6adbf240f9a88c67e6dc4d9a3ae2f449  gcc/testsuite/ada/acats-3/tests/c3/c354002.a
! 1c6bd8c5607c8d83b1fb16cf20b35965  gcc/testsuite/ada/acats-3/tests/c3/c354003.a
! 748d8130bd21629fdee8f30be95ddf20  gcc/testsuite/ada/acats-3/tests/c3/c354004.a
! 831543d10fff09679865a63cb6261690  gcc/testsuite/ada/acats-3/tests/c3/c35502a.ada
! a7c2fa5fc851b6f2ef3d825116c56789  gcc/testsuite/ada/acats-3/tests/c3/c35502b.ada
! 012ae5aa045c7b944677ea749449b75e  gcc/testsuite/ada/acats-3/tests/c3/c35502c.ada
! 66ad3541bdd12f2457bc931410567df2  gcc/testsuite/ada/acats-3/tests/c3/c35502d.tst
! f850859238832c6689133c4b82b2d23a  gcc/testsuite/ada/acats-3/tests/c3/c35502e.ada
! 1ae0d752d4d7089a159ba37533cac440  gcc/testsuite/ada/acats-3/tests/c3/c35502f.tst
! 86636a48b0f16cee1e000cf7cdff2dd3  gcc/testsuite/ada/acats-3/tests/c3/c35502g.ada
! 051f7f33819b5ea42a6810524402160e  gcc/testsuite/ada/acats-3/tests/c3/c35502h.ada
! 4e03c40da8c9f6a6c779600f4bf06f72  gcc/testsuite/ada/acats-3/tests/c3/c35502i.ada
! 0ce71c0ba8fc8137892f8032070143cf  gcc/testsuite/ada/acats-3/tests/c3/c35502j.ada
! 039caaa9e43f4d6e115a8a1f83eeebf1  gcc/testsuite/ada/acats-3/tests/c3/c35502k.ada
! 211eda1bcd28ea4725982c3228537ce8  gcc/testsuite/ada/acats-3/tests/c3/c35502l.ada
! 04a6b32af2cf206734bf10b9c20a1a53  gcc/testsuite/ada/acats-3/tests/c3/c35502m.ada
! 4d2fd9e74373c5a73cc4f819206b0ae4  gcc/testsuite/ada/acats-3/tests/c3/c35502n.ada
! a2f7774ccd8fe3b58f670146427b1f58  gcc/testsuite/ada/acats-3/tests/c3/c35502o.ada
! 244d3a03a5bfb9a02be2cde7af593c88  gcc/testsuite/ada/acats-3/tests/c3/c35502p.ada
! bbea92be5e14aa812d5b0bf50f43ecd2  gcc/testsuite/ada/acats-3/tests/c3/c35503a.ada
! e45620aeea62423f2a72fa98c32c2629  gcc/testsuite/ada/acats-3/tests/c3/c35503b.ada
! 6ff5a195541e611e8f795764a46c96c7  gcc/testsuite/ada/acats-3/tests/c3/c35503c.ada
! ae4f0df020df3fca42928a76d16433e2  gcc/testsuite/ada/acats-3/tests/c3/c35503d.tst
! 2835676122accf27f7f9912ed7f9b38b  gcc/testsuite/ada/acats-3/tests/c3/c35503e.ada
! 18bbb578fe3d479a11c962d128286c04  gcc/testsuite/ada/acats-3/tests/c3/c35503f.tst
! def2f804ca12f62b8b5f42c18fa649c0  gcc/testsuite/ada/acats-3/tests/c3/c35503g.ada
! 082f524dedff546b67bf566735caa1c1  gcc/testsuite/ada/acats-3/tests/c3/c35503h.ada
! 85174a7f410200513d18d173743c7474  gcc/testsuite/ada/acats-3/tests/c3/c35503k.ada
! 57ae4c28160a4dfa61de89bc057c9b02  gcc/testsuite/ada/acats-3/tests/c3/c35503l.ada
! 5fc96deb857ba3b7ec7ee6040f2b7d93  gcc/testsuite/ada/acats-3/tests/c3/c35503o.ada
! 02c17920bbabcf5f472c332ee0439df3  gcc/testsuite/ada/acats-3/tests/c3/c35503p.ada
! 7c0f95cda266f19784cd481570ffcf1a  gcc/testsuite/ada/acats-3/tests/c3/c35504a.ada
! 58ca27427f3b7371702549078677cd48  gcc/testsuite/ada/acats-3/tests/c3/c35504b.ada
! c64ed7ab5ced440f95e39eb0465b431f  gcc/testsuite/ada/acats-3/tests/c3/c35505c.ada
! 8a20049a7aa4dbf5e73f4a4a856df916  gcc/testsuite/ada/acats-3/tests/c3/c35505e.ada
! fb8432e5868c1977e525882401096430  gcc/testsuite/ada/acats-3/tests/c3/c35505f.ada
! a3d1f58b38d0f57e89521134057aa0d0  gcc/testsuite/ada/acats-3/tests/c3/c35507a.ada
! fe46e6e48a084e26027a960dcecf0e7f  gcc/testsuite/ada/acats-3/tests/c3/c35507b.ada
! 6276ac14d36049ca6fc1d65937918d6d  gcc/testsuite/ada/acats-3/tests/c3/c35507c.ada
! 38f75633d1d28c38660ac311815075c6  gcc/testsuite/ada/acats-3/tests/c3/c35507e.ada
! 068b315520036392da2decdadf03f6c9  gcc/testsuite/ada/acats-3/tests/c3/c35507g.ada
! c2e6c5681cde5371d2678d0afe2a7dbc  gcc/testsuite/ada/acats-3/tests/c3/c35507h.ada
! 63dad9c02cf9b0faee9f7a4c8f1e9e2d  gcc/testsuite/ada/acats-3/tests/c3/c35507i.ada
! 1501d4b22ff6ada18bda2bec24e23c79  gcc/testsuite/ada/acats-3/tests/c3/c35507j.ada
! 09885e80b2822b3187740ca5682c20e8  gcc/testsuite/ada/acats-3/tests/c3/c35507k.ada
! 7cef3fe8bb6274e0323e822d047490b2  gcc/testsuite/ada/acats-3/tests/c3/c35507l.ada
! b1e4ee7af4f56f20553663a9e296595e  gcc/testsuite/ada/acats-3/tests/c3/c35507m.ada
! cecbaaea0b8f341a4305a221c28843fc  gcc/testsuite/ada/acats-3/tests/c3/c35507n.ada
! 52e0a241e2ad05fa89ecb293e6e2445a  gcc/testsuite/ada/acats-3/tests/c3/c35507o.ada
! 600e023fcb478381f0a8d0bde64f42ce  gcc/testsuite/ada/acats-3/tests/c3/c35507p.ada
! f33cc8ac90e96b7b226aaec5ae692195  gcc/testsuite/ada/acats-3/tests/c3/c35508a.ada
! 7e48a5fa6e02b3658f287da356b209f9  gcc/testsuite/ada/acats-3/tests/c3/c35508b.ada
! 4b6b6e92f28c0ad3cd4f67af8ad0c06c  gcc/testsuite/ada/acats-3/tests/c3/c35508c.ada
! 8bbddf95307b94ae0ed7e12152746762  gcc/testsuite/ada/acats-3/tests/c3/c35508e.ada
! dbe54ec8ce5e33dd88ae24a43cfde531  gcc/testsuite/ada/acats-3/tests/c3/c35508g.ada
! e637f96ce7f08585f2d85fee50f734ee  gcc/testsuite/ada/acats-3/tests/c3/c35508h.ada
! 362619ef40ffff0fd56dee7a6a6c51ab  gcc/testsuite/ada/acats-3/tests/c3/c35508k.ada
! 62ca0e421d4722ad32f139648ece0a60  gcc/testsuite/ada/acats-3/tests/c3/c35508l.ada
! fab2b9fed9304046c3feed68fb9e7b50  gcc/testsuite/ada/acats-3/tests/c3/c35508o.ada
! a7e4e9b85072c7fc56cd223463426c4d  gcc/testsuite/ada/acats-3/tests/c3/c35508p.ada
! bb15d1d296a4eddc9aada6a363360729  gcc/testsuite/ada/acats-3/tests/c3/c35703a.ada
! 97d3b53eb2177ea6344c1ef49c98377d  gcc/testsuite/ada/acats-3/tests/c3/c35704a.ada
! 5a690257e776d58a4fd2a23a7ba6c0e9  gcc/testsuite/ada/acats-3/tests/c3/c35704b.ada
! 52a2a628059a70786108ace7ccd9d08f  gcc/testsuite/ada/acats-3/tests/c3/c35704c.ada
! 14756c69c53e152b3ede55a2754a4d33  gcc/testsuite/ada/acats-3/tests/c3/c35704d.ada
! 22b7d640a1b7ab1933a5654507ff5814  gcc/testsuite/ada/acats-3/tests/c3/c35801d.ada
! 23943917f960018ecdfb861e2c69b545  gcc/testsuite/ada/acats-3/tests/c3/c35902d.ada
! 1e5392accfe4bd85f17ca7c456747be3  gcc/testsuite/ada/acats-3/tests/c3/c35904a.ada
! 4c8ee2a79f1878dcbca7246e9e436865  gcc/testsuite/ada/acats-3/tests/c3/c35904b.ada
! 73fbf4f7e465d5d7fdbee3c99d7cf9ec  gcc/testsuite/ada/acats-3/tests/c3/c35a02a.ada
! 9f8c6fe2edc1ad0a78efbb5038b9ef99  gcc/testsuite/ada/acats-3/tests/c3/c35a05a.ada
! 57fc2536f06ceaf5a1604ee5bb5605fd  gcc/testsuite/ada/acats-3/tests/c3/c35a05d.ada
! ccf547732379c7144c27839f695e8a78  gcc/testsuite/ada/acats-3/tests/c3/c35a05n.ada
! ef904f577e7d9c35099e7d144f51bcce  gcc/testsuite/ada/acats-3/tests/c3/c35a05q.ada
! 3682cd83d6b388849e97129de990f52d  gcc/testsuite/ada/acats-3/tests/c3/c35a07a.ada
! 03e887c344e6bdbdb22118ff77b769fd  gcc/testsuite/ada/acats-3/tests/c3/c35a07d.ada
! ccdad741543d79671fc5f73037ff418d  gcc/testsuite/ada/acats-3/tests/c3/c35a08b.ada
! 651df98436a6167a850f437a29dc7a94  gcc/testsuite/ada/acats-3/tests/c3/c360002.a
! a4c274a3e03fe30e6bc786063bfe78e9  gcc/testsuite/ada/acats-3/tests/c3/c36104a.ada
! b016b5195b1a9d3c07192416c89e1bee  gcc/testsuite/ada/acats-3/tests/c3/c36104b.ada
! 43912684d172c672071ee16d854bcff0  gcc/testsuite/ada/acats-3/tests/c3/c36172a.ada
! 2dc69a4f44addfae37b13335df258285  gcc/testsuite/ada/acats-3/tests/c3/c36172b.ada
! 4d07671447e230f3eddc684c6a3b557a  gcc/testsuite/ada/acats-3/tests/c3/c36172c.ada
! 38a8a16720ac5a8741105f6c5f506f2d  gcc/testsuite/ada/acats-3/tests/c3/c36174a.ada
! 87012e291c8acd51799d9ca8b8fccc32  gcc/testsuite/ada/acats-3/tests/c3/c36180a.ada
! f887210d32ff420cd8ec888ca5c13b66  gcc/testsuite/ada/acats-3/tests/c3/c36202c.ada
! c48c400b884ae534788fbff1510b95ba  gcc/testsuite/ada/acats-3/tests/c3/c36203a.ada
! 93d36d6ba5a23a2f985cc842911a6b2f  gcc/testsuite/ada/acats-3/tests/c3/c36204a.ada
! 5ae3804a2577f9be85df4c11dd1ba3ab  gcc/testsuite/ada/acats-3/tests/c3/c36204b.ada
! 95f946b45603237266057103729c0a9c  gcc/testsuite/ada/acats-3/tests/c3/c36204c.ada
! 1a555d9bc9de255c02e401d7956a5f67  gcc/testsuite/ada/acats-3/tests/c3/c36204d.ada
! c5d2782fd60778b2578f9cf486e811db  gcc/testsuite/ada/acats-3/tests/c3/c36205a.ada
! 4842fc730e500b00c7c35f4691be2855  gcc/testsuite/ada/acats-3/tests/c3/c36205b.ada
! 725f9fbf3157baa9a668acc5e689a06b  gcc/testsuite/ada/acats-3/tests/c3/c36205c.ada
! a9d6124e64589b143b6b54d575df431b  gcc/testsuite/ada/acats-3/tests/c3/c36205d.ada
! c016e1338001bb0d007af7bf4e20d911  gcc/testsuite/ada/acats-3/tests/c3/c36205e.ada
! 299e459d577a85781464563cd621f1b4  gcc/testsuite/ada/acats-3/tests/c3/c36205f.ada
! 7f182ba91c9a0f80d0e5e5b7e919ac56  gcc/testsuite/ada/acats-3/tests/c3/c36205g.ada
! 7559d4ebfc8d9c23879d2cc42d3ac0f4  gcc/testsuite/ada/acats-3/tests/c3/c36205h.ada
! d11eed873d3f614674f193f130b127bb  gcc/testsuite/ada/acats-3/tests/c3/c36205i.ada
! 65b17684e8953d820a69eb11dc4d63e4  gcc/testsuite/ada/acats-3/tests/c3/c36205j.ada
! 21f3a9a788ac6136e2b453f0fc99959f  gcc/testsuite/ada/acats-3/tests/c3/c36205k.ada
! 9884f944a4c4faaee8aaf09a92235c3a  gcc/testsuite/ada/acats-3/tests/c3/c36205l.ada
! 1552dfb23215604db6043c7d12dfc7a6  gcc/testsuite/ada/acats-3/tests/c3/c36301a.ada
! eb37821c1c0e190f8c8cd0e7d282bc9e  gcc/testsuite/ada/acats-3/tests/c3/c36301b.ada
! 236dab07c2bafa07e92d082fc822c8b4  gcc/testsuite/ada/acats-3/tests/c3/c36302a.ada
! a1b4d4c17da94ac478b85b56fd32bf91  gcc/testsuite/ada/acats-3/tests/c3/c36304a.ada
! 58595c82c4f76f6be31333ec0267a9c8  gcc/testsuite/ada/acats-3/tests/c3/c36305a.ada
! 871a3ce65e5d5a824131380a060f18e0  gcc/testsuite/ada/acats-3/tests/c3/c37002a.ada
! 8415fb7acaf9ab73e2a230b45778e7c8  gcc/testsuite/ada/acats-3/tests/c3/c37003a.ada
! b93e53c5cd23520b5b0b88e8c4aee165  gcc/testsuite/ada/acats-3/tests/c3/c37003b.ada
! 0396184f11f01fdd09e40a2432a7850c  gcc/testsuite/ada/acats-3/tests/c3/c37005a.ada
! 17dc351de12194e77f5fe4b5ffbc733e  gcc/testsuite/ada/acats-3/tests/c3/c37006a.ada
! 96813863f2ee2182c3f68f999a7ffed2  gcc/testsuite/ada/acats-3/tests/c3/c37008a.ada
! 9f784c997bf1bb09fe9bf639408dd25c  gcc/testsuite/ada/acats-3/tests/c3/c37008b.ada
! 5d7d0f22be016c0f9b4bcb1da25ed1a2  gcc/testsuite/ada/acats-3/tests/c3/c37009a.ada
! ffc6187aa3ecc28b0631a384e1f95a7e  gcc/testsuite/ada/acats-3/tests/c3/c37010a.ada
! 029c8fb134594e913fe650a5763a4515  gcc/testsuite/ada/acats-3/tests/c3/c37010b.ada
! 09e452317c2c5a3df881f8bfc5bad1ca  gcc/testsuite/ada/acats-3/tests/c3/c371001.a
! 194d5579b14c8d78edccb4725e786bbb  gcc/testsuite/ada/acats-3/tests/c3/c371002.a
! 6508ac6c82ccaf89245ddeb239cf8c65  gcc/testsuite/ada/acats-3/tests/c3/c371003.a
! efcbd19428af8ce2430d60f7389f98f7  gcc/testsuite/ada/acats-3/tests/c3/c37102b.ada
! b56d339ed47321b90862af1e6ff54f3c  gcc/testsuite/ada/acats-3/tests/c3/c37103a.ada
! d2b9a9804b8282550c3233d4c850e203  gcc/testsuite/ada/acats-3/tests/c3/c37105a.ada
! dff6fe14498b4430a005271952b8508b  gcc/testsuite/ada/acats-3/tests/c3/c37107a.ada
! cab8fff51d9e7fa6be5dc3722f0805a7  gcc/testsuite/ada/acats-3/tests/c3/c37108b.ada
! ac1c74612e7098a8b3c19c4233f91b36  gcc/testsuite/ada/acats-3/tests/c3/c37206a.ada
! da4a6484624a6563a3acad74e59e553f  gcc/testsuite/ada/acats-3/tests/c3/c37207a.ada
! 793d448b9373aca3bdfbeb16c4cd5664  gcc/testsuite/ada/acats-3/tests/c3/c37208a.ada
! 19e934b5c86da61793fb4bde9faf4f4a  gcc/testsuite/ada/acats-3/tests/c3/c37208b.ada
! cfc2d39b74fd2d6964787190ac03afde  gcc/testsuite/ada/acats-3/tests/c3/c37209a.ada
! a9e5da6e96624ea9e8d99c31a879bea0  gcc/testsuite/ada/acats-3/tests/c3/c37209b.ada
! 5095a03dbf61f1c7486ce4249ebd4168  gcc/testsuite/ada/acats-3/tests/c3/c37210a.ada
! 13fd1f169bebade45dcc8f783c4dfba5  gcc/testsuite/ada/acats-3/tests/c3/c37211a.ada
! 90539e4b0a8ab5a720d93e61332d4bad  gcc/testsuite/ada/acats-3/tests/c3/c37211b.ada
! b5fb0f0cfa820aa9c8f8a02529b59ae1  gcc/testsuite/ada/acats-3/tests/c3/c37211c.ada
! 34158bf765252e909102a5071bd1ab0d  gcc/testsuite/ada/acats-3/tests/c3/c37211d.ada
! 9723d82d289b6c708a4e38619a050c44  gcc/testsuite/ada/acats-3/tests/c3/c37211e.ada
! 02567718a426a27f1633a5ba46fb39ea  gcc/testsuite/ada/acats-3/tests/c3/c37213b.ada
! 0db6468aa3789fa4eb8509864bbbba6c  gcc/testsuite/ada/acats-3/tests/c3/c37213d.ada
! c3ea989d669b26ad147ec1d36d59f8b1  gcc/testsuite/ada/acats-3/tests/c3/c37213f.ada
! c7d6b08bb4739fe27a9bf7c37153611b  gcc/testsuite/ada/acats-3/tests/c3/c37213h.ada
! e1a81fd713875796f8f0f1d1d856df2e  gcc/testsuite/ada/acats-3/tests/c3/c37213j.ada
! 8824529732962a1fb9cbd428d01a57f5  gcc/testsuite/ada/acats-3/tests/c3/c37213k.ada
! 7c2df003cd7fdc0bffaa00b7e5a76295  gcc/testsuite/ada/acats-3/tests/c3/c37213l.ada
! d1bb01398cfb6ee5cd12ec89604227fb  gcc/testsuite/ada/acats-3/tests/c3/c37215b.ada
! f34c6fc15658b1b04a69e1ccf32c7394  gcc/testsuite/ada/acats-3/tests/c3/c37215d.ada
! ca62cbc7b583fe934a8091c539e55305  gcc/testsuite/ada/acats-3/tests/c3/c37215f.ada
! 8be60a6919ae5d9ba615eb624746100d  gcc/testsuite/ada/acats-3/tests/c3/c37215h.ada
! fdd60b015f299bfc5d8e0f9f33334f8e  gcc/testsuite/ada/acats-3/tests/c3/c37217a.ada
! bb84ce5410a8c6c7127939120ba80cde  gcc/testsuite/ada/acats-3/tests/c3/c37217b.ada
! 2687c3f166eabbae25fc5e04880d06a3  gcc/testsuite/ada/acats-3/tests/c3/c37217c.ada
! db9ca52d8b1a818e4d66aea96b3eb964  gcc/testsuite/ada/acats-3/tests/c3/c37304a.ada
! 59413b6b57aae9caadc41c111c74faed  gcc/testsuite/ada/acats-3/tests/c3/c37305a.ada
! 2ff906f6262ecd1cfdaffbcda07f1a76  gcc/testsuite/ada/acats-3/tests/c3/c37306a.ada
! a6f2da7b55ad908aebb841bc6ed9b69e  gcc/testsuite/ada/acats-3/tests/c3/c37309a.ada
! 54ec04c8663d10e960eb022fed3a9306  gcc/testsuite/ada/acats-3/tests/c3/c37310a.ada
! ab733e44603296f9e49a292ad601cf74  gcc/testsuite/ada/acats-3/tests/c3/c37312a.ada
! 75ac97c1a116dcc5edcc7f2b44f304f4  gcc/testsuite/ada/acats-3/tests/c3/c37402a.ada
! 2d432b792b7c7b0669844add896bb802  gcc/testsuite/ada/acats-3/tests/c3/c37403a.ada
! 38ed181e9e32218f4a81d412e83c503d  gcc/testsuite/ada/acats-3/tests/c3/c37404a.ada
! c1cce1fda9f9c6085ecce4e278182d6c  gcc/testsuite/ada/acats-3/tests/c3/c37404b.ada
! c9abb9613df5a6b0ab399a10551d5070  gcc/testsuite/ada/acats-3/tests/c3/c37405a.ada
! 1793c94eca80b29526f7ec7a9da864e8  gcc/testsuite/ada/acats-3/tests/c3/c37411a.ada
! 3d8871a14f5b0b92ab5699036c27161b  gcc/testsuite/ada/acats-3/tests/c3/c380001.a
! fe1bbd01b7e70108e4de5854ee4c098d  gcc/testsuite/ada/acats-3/tests/c3/c380002.a
! fb52cd7cb9118b93afa2bc8a309ecdc9  gcc/testsuite/ada/acats-3/tests/c3/c380003.a
! 7e465d24377190b6eaafcc3fd3125ff9  gcc/testsuite/ada/acats-3/tests/c3/c380004.a
! c76f2865cda03e9d5c2164052031d578  gcc/testsuite/ada/acats-3/tests/c3/c38002a.ada
! 5c8aaef6a8da893998485cc8bfb71f48  gcc/testsuite/ada/acats-3/tests/c3/c38002b.ada
! f8397d669785d9d911c494e0a0b9986a  gcc/testsuite/ada/acats-3/tests/c3/c38005a.ada
! 36a372c2d5368726208b1f76f95f3c1d  gcc/testsuite/ada/acats-3/tests/c3/c38005b.ada
! 175ff60b11884803275c5a95d4db9b0f  gcc/testsuite/ada/acats-3/tests/c3/c38005c.ada
! cc457354e31fc1e63179de33cbefbad9  gcc/testsuite/ada/acats-3/tests/c3/c38102a.ada
! 2f60ee39cadeb5e04f93c0fb98c2ff78  gcc/testsuite/ada/acats-3/tests/c3/c38102b.ada
! 773c45b11f80bfa2c11a621982312a41  gcc/testsuite/ada/acats-3/tests/c3/c38102c.ada
! 2eec2f09807572ff6be386c41f2aa890  gcc/testsuite/ada/acats-3/tests/c3/c38102d.ada
! ff2ae7294328aba3ca946b298ff89249  gcc/testsuite/ada/acats-3/tests/c3/c38102e.ada
! 19d2c8a98b84fc28fb173b8ede249f5f  gcc/testsuite/ada/acats-3/tests/c3/c38104a.ada
! ccdff83c46a0742a6f6c98f395885cf0  gcc/testsuite/ada/acats-3/tests/c3/c38107a.ada
! 5b807a368e5b577c901a0143b328edd6  gcc/testsuite/ada/acats-3/tests/c3/c38107b.ada
! 7f519d74032c869b16bf7e4cc3f1757c  gcc/testsuite/ada/acats-3/tests/c3/c38108a.ada
! 1cdb4b2554cc632c2786a14302f39123  gcc/testsuite/ada/acats-3/tests/c3/c38108b.ada
! 0c83db01ff09f439f6a7fc807e878547  gcc/testsuite/ada/acats-3/tests/c3/c38108c0.ada
! 0b0a2c9346188afcf5a240958d58cb60  gcc/testsuite/ada/acats-3/tests/c3/c38108c1.ada
! 1cea347b513b856254a8e9fed08d945a  gcc/testsuite/ada/acats-3/tests/c3/c38108c2.ada
! fb749693f49b0edcfffc4444290ac564  gcc/testsuite/ada/acats-3/tests/c3/c38108d0.ada
! aa2833688968ca7a3e36612070b575f4  gcc/testsuite/ada/acats-3/tests/c3/c38108d1.ada
! 61680b9ec1c444c4faffd8c59cce698a  gcc/testsuite/ada/acats-3/tests/c3/c3900010.a
! 987d00ae68ea07578bf45fc567352a66  gcc/testsuite/ada/acats-3/tests/c3/c3900011.am
! 370d5eba0eee3ce909caf87c342f846d  gcc/testsuite/ada/acats-3/tests/c3/c390002.a
! 6dd703dff40d77030a2c6329094e7802  gcc/testsuite/ada/acats-3/tests/c3/c390003.a
! 491d840ce3aeb642239cc28533a9ba34  gcc/testsuite/ada/acats-3/tests/c3/c390004.a
! b04ffb8d071dcf6547533038ef227651  gcc/testsuite/ada/acats-3/tests/c3/c3900050.a
! dff18ad9fb367bc37acd04d6e08e55bf  gcc/testsuite/ada/acats-3/tests/c3/c3900051.a
! 2b39948b2af313cbed0046a2bcdcbc9d  gcc/testsuite/ada/acats-3/tests/c3/c3900052.a
! b4e44c9c1971345223585500a55db164  gcc/testsuite/ada/acats-3/tests/c3/c3900053.am
! 471e818df49cf1a32357c5b759d21dc9  gcc/testsuite/ada/acats-3/tests/c3/c3900060.a
! bd65238f7cda09d91e177736cdbcd7ec  gcc/testsuite/ada/acats-3/tests/c3/c3900061.a
! d3e9ddf4af2eb46f1b086dbc43c75d04  gcc/testsuite/ada/acats-3/tests/c3/c3900062.a
! bced3ae0c872e2f15b26193b1c9c4c35  gcc/testsuite/ada/acats-3/tests/c3/c3900063.am
! cd1ae54278fd1b61d5ecd166ecf0671b  gcc/testsuite/ada/acats-3/tests/c3/c390007.a
! a7cf99b62949613099d6c982d9043098  gcc/testsuite/ada/acats-3/tests/c3/c390010.a
! 30e5b9a42c18864d89a931830adfd68e  gcc/testsuite/ada/acats-3/tests/c3/c390011.a
! fb81397d707bf07d8e9f486812adb73b  gcc/testsuite/ada/acats-3/tests/c3/c390012.a
! 1bcaf1b15ae617d49c80e68b55943cc6  gcc/testsuite/ada/acats-3/tests/c3/c39006a.ada
! 7e954943167e1f1855ce0abf856c9a9b  gcc/testsuite/ada/acats-3/tests/c3/c39006b.ada
! 14d52be4c2d938b4ae51c17507b6ca25  gcc/testsuite/ada/acats-3/tests/c3/c39006c0.ada
! c770912acdec8d8fa7169157d99a1382  gcc/testsuite/ada/acats-3/tests/c3/c39006c1.ada
! fcf5b4e7ecc49a79fc11640baf53f4f6  gcc/testsuite/ada/acats-3/tests/c3/c39006d.ada
! 86ddd0b2d946750357311d89b5046963  gcc/testsuite/ada/acats-3/tests/c3/c39006e.ada
! ba4887d359d62403c79f3563b0dfa8f4  gcc/testsuite/ada/acats-3/tests/c3/c39006f0.ada
! 205b6ff97343a4403e8cb5bc33883547  gcc/testsuite/ada/acats-3/tests/c3/c39006f1.ada
! 16ddc19c6da0a1642305e4b5fc6058d1  gcc/testsuite/ada/acats-3/tests/c3/c39006f2.ada
! 59cfdb727f33418fa8de537e14629d71  gcc/testsuite/ada/acats-3/tests/c3/c39006f3.ada
! f80f760d35130556602f0b683e480d63  gcc/testsuite/ada/acats-3/tests/c3/c39006g.ada
! cce3352413b69fd05b5ec5195c3a4c00  gcc/testsuite/ada/acats-3/tests/c3/c39007a.ada
! eab8b6c595bc019ed0d33f826e34e97f  gcc/testsuite/ada/acats-3/tests/c3/c39007b.ada
! f9502bdaffb8475b46fab174a19f2de9  gcc/testsuite/ada/acats-3/tests/c3/c39008a.ada
! 44f9dead72582206f122372b79949f92  gcc/testsuite/ada/acats-3/tests/c3/c39008b.ada
! f7c867df153c4137ff42c73e84cf78bb  gcc/testsuite/ada/acats-3/tests/c3/c39008c.ada
! 7dfc2d2eea8f430d414e0e9fb3d66efb  gcc/testsuite/ada/acats-3/tests/c3/c390a010.a
! fe7593d56cc6f8290c29978513afc0e4  gcc/testsuite/ada/acats-3/tests/c3/c390a011.am
! 11b0510a4ce65e5a57a44f990501c66a  gcc/testsuite/ada/acats-3/tests/c3/c390a020.a
! 4282bd0ba35b056f1611e8c863c8745e  gcc/testsuite/ada/acats-3/tests/c3/c390a021.a
! cf96da721f34cf963ac9c04fdedb4a5a  gcc/testsuite/ada/acats-3/tests/c3/c390a022.am
! 9cc816e53154c542095db060de988727  gcc/testsuite/ada/acats-3/tests/c3/c390a030.a
! a2ad2209c88d74fd376c9daf08c00e0c  gcc/testsuite/ada/acats-3/tests/c3/c390a031.am
! 40bd1c7f8a70fb208644304788e8bdc6  gcc/testsuite/ada/acats-3/tests/c3/c391001.a
! 2dc32344161fe05900a7d0a4fb00a90b  gcc/testsuite/ada/acats-3/tests/c3/c391002.a
! 3ba7e427374883e2149341da53946561  gcc/testsuite/ada/acats-3/tests/c3/c391003.a
! 1cea1692179d434f0ff9e71ba3af5c1e  gcc/testsuite/ada/acats-3/tests/c3/c392002.a
! 918e8c097a09a06159f2809df40a1418  gcc/testsuite/ada/acats-3/tests/c3/c392003.a
! 65856b8c6fecfcf755607b20116e49ef  gcc/testsuite/ada/acats-3/tests/c3/c392004.a
! add1a6bb172c420d5b75dd9efb48c6bd  gcc/testsuite/ada/acats-3/tests/c3/c392005.a
! 1e3c83f529cb7a93f087fd5e1d1c8da3  gcc/testsuite/ada/acats-3/tests/c3/c392008.a
! 8db6e39b87567029879790dbb400a21a  gcc/testsuite/ada/acats-3/tests/c3/c392010.a
! 8063c17c7054236de05a0d6a56818802  gcc/testsuite/ada/acats-3/tests/c3/c392011.a
! 66f6cf830b25e4cba2aeaac6801b02e2  gcc/testsuite/ada/acats-3/tests/c3/c392013.a
! 3597acb12cde69e45603917fc97c80c0  gcc/testsuite/ada/acats-3/tests/c3/c392014.a
! 37df1e5c85d31f578424e4da3238380f  gcc/testsuite/ada/acats-3/tests/c3/c392015.a
! 35f1f390e8606d404b61bb05a639d3be  gcc/testsuite/ada/acats-3/tests/c3/c392a01.a
! ddeb268075e3a716a055f61676497b78  gcc/testsuite/ada/acats-3/tests/c3/c392c05.a
! ee8edde3e11e29c877773403259133c0  gcc/testsuite/ada/acats-3/tests/c3/c392c07.a
! cf19325c05dcb02f4dc60d58ef26ea2b  gcc/testsuite/ada/acats-3/tests/c3/c392d01.a
! acfb41d6d4b4fdec20be56da91d7037d  gcc/testsuite/ada/acats-3/tests/c3/c392d02.a
! 1db19d15d9fdd4071bc438e73f6c5f60  gcc/testsuite/ada/acats-3/tests/c3/c392d03.a
! 9913afe2e224eb447dd2ba6e7b6cd62d  gcc/testsuite/ada/acats-3/tests/c3/c393001.a
! cb66f262f22e933b78a4b4ff7f314ebb  gcc/testsuite/ada/acats-3/tests/c3/c393007.a
! fa7a91fbda6d3ec270401392bfa2a76e  gcc/testsuite/ada/acats-3/tests/c3/c393008.a
! 725749e586aef7b3172e0a9f654508c9  gcc/testsuite/ada/acats-3/tests/c3/c393009.a
! 21bc1c6b2b56e0fe4e98a124b3a43036  gcc/testsuite/ada/acats-3/tests/c3/c393010.a
! cd6d2722ead0dbebda558b3eed5c7ca4  gcc/testsuite/ada/acats-3/tests/c3/c393011.a
! 7df68c4f3488082bba3f1654a9ba7910  gcc/testsuite/ada/acats-3/tests/c3/c393012.a
! 7a6224b076104b0746f9373372e9765f  gcc/testsuite/ada/acats-3/tests/c3/c393013.a
! 5bf5e79116361f7f6818018607c7b14c  gcc/testsuite/ada/acats-3/tests/c3/c393a02.a
! 46faa2017a32e6ba0d55237311c2594b  gcc/testsuite/ada/acats-3/tests/c3/c393a03.a
! eafd936400d5d6d12f0163e2eddfac6b  gcc/testsuite/ada/acats-3/tests/c3/c393a05.a
! db0cccf9a144062cc832a2649c8b3890  gcc/testsuite/ada/acats-3/tests/c3/c393a06.a
! 8714b97cca38041a9f7e9366aef2ea6f  gcc/testsuite/ada/acats-3/tests/c3/c393b12.a
! 7035657702431ed63b2d07b818986f02  gcc/testsuite/ada/acats-3/tests/c3/c393b13.a
! 53c07ae14d9fb175ce43218b1e343038  gcc/testsuite/ada/acats-3/tests/c3/c393b14.a
! f5434c7e784d26f4723543d890baf070  gcc/testsuite/ada/acats-3/tests/c3/c394001.a
! f0d03a4cc11f4c5a3e849900d93ce5b5  gcc/testsuite/ada/acats-3/tests/c3/c394002.a
! bd76c737ec2888a6256a5b5fc62f5044  gcc/testsuite/ada/acats-3/tests/c3/c394003.a
! c2ac600ac5856ef7dd1dbc9289ad5b3a  gcc/testsuite/ada/acats-3/tests/c3/c3a0001.a
! 031b3fc5f0a32a51bded67c7ecc17317  gcc/testsuite/ada/acats-3/tests/c3/c3a0002.a
! c31f440d35b722f58fbb9350b06d125c  gcc/testsuite/ada/acats-3/tests/c3/c3a0003.a
! 2297f4ac861d78f2371edd9c4a2d7c6c  gcc/testsuite/ada/acats-3/tests/c3/c3a0004.a
! 32ac31994b6e97c7cfc3da69b63041ca  gcc/testsuite/ada/acats-3/tests/c3/c3a0005.a
! d86e5a6cc083a8024c11012097ddad34  gcc/testsuite/ada/acats-3/tests/c3/c3a0006.a
! 27a88a8b1aa1655fbfad671608eb6590  gcc/testsuite/ada/acats-3/tests/c3/c3a0007.a
! 2c75b971c54a5abc55846c25177a2d32  gcc/testsuite/ada/acats-3/tests/c3/c3a0008.a
! 0b8bb10fc6969853e244dca2a5176000  gcc/testsuite/ada/acats-3/tests/c3/c3a0009.a
! ed1e9211c87a814c4afe091b58de454c  gcc/testsuite/ada/acats-3/tests/c3/c3a0010.a
! e9e7d7fe8183ee50353cfccbd67ce241  gcc/testsuite/ada/acats-3/tests/c3/c3a0011.a
! c7fcc74fd4dfdbaffcb6c91b90a50060  gcc/testsuite/ada/acats-3/tests/c3/c3a00120.a
! 74ba294edd61c27b3a700c248bd041e9  gcc/testsuite/ada/acats-3/tests/c3/c3a00121.a
! b5687449024e6ae74c2b54cbbf12b721  gcc/testsuite/ada/acats-3/tests/c3/c3a00122.am
! e7d92335b6aec84b884e9a11162a306e  gcc/testsuite/ada/acats-3/tests/c3/c3a0013.a
! 8ada1257de16782d00affbb40cba5d0f  gcc/testsuite/ada/acats-3/tests/c3/c3a0014.a
! cbdd24e39ac8fba7e5ea4a0975d79298  gcc/testsuite/ada/acats-3/tests/c3/c3a0015.a
! 83572022417c237e0bb0551e51f4f09a  gcc/testsuite/ada/acats-3/tests/c3/c3a0016.a
! aea69c4eb5f92d59235f2df23e757d14  gcc/testsuite/ada/acats-3/tests/c3/c3a0017.a
! 62fa1c6bf50ac7e11e6bad46452e79ef  gcc/testsuite/ada/acats-3/tests/c3/c3a0018.a
! 4027e27b87c42473853d2165e05c8e0f  gcc/testsuite/ada/acats-3/tests/c3/c3a0019.a
! c8eec5b6a8cb02fdf4b8fc3672950275  gcc/testsuite/ada/acats-3/tests/c3/c3a0020.a
! 876c4cbf6611f889104d7b0572ae8147  gcc/testsuite/ada/acats-3/tests/c3/c3a0021.a
! 05a5719220f88bc16adf5f7d5f2eb478  gcc/testsuite/ada/acats-3/tests/c3/c3a0022.a
! d395a766d1e83cd40c121d287e8dc401  gcc/testsuite/ada/acats-3/tests/c3/c3a0023.a
! 18c72364756781cf037aaa928e0aaf6b  gcc/testsuite/ada/acats-3/tests/c3/c3a0024.a
! 5e91b5fba2c184aab9fe2701a160940a  gcc/testsuite/ada/acats-3/tests/c3/c3a0025.a
! 87c70d07250a7103f096a337328bbc92  gcc/testsuite/ada/acats-3/tests/c3/c3a0026.a
! 607293a26ce7e3e441968e95c9ccbba2  gcc/testsuite/ada/acats-3/tests/c3/c3a0027.a
! 2ddeb89db87fb985e7c9ddfcf080e693  gcc/testsuite/ada/acats-3/tests/c3/c3a0028.a
! f14f848057f112325d4e46ed85b5c3c7  gcc/testsuite/ada/acats-3/tests/c3/c3a0029.a
! 02f44410384ce0414b2ff6c941fa903a  gcc/testsuite/ada/acats-3/tests/c3/c3a0030.a
! 21ce522f0e81e68685347a0f9b6064f3  gcc/testsuite/ada/acats-3/tests/c3/c3a1001.a
! 03f9fa0b3ade6732c9e7b1792aa29352  gcc/testsuite/ada/acats-3/tests/c3/c3a1002.a
! 43871a0be958bf53238bf04d1e2b1d12  gcc/testsuite/ada/acats-3/tests/c3/c3a10030.a
! b3b07306d7f9eff4f7e6b0429dcaa05d  gcc/testsuite/ada/acats-3/tests/c3/c3a10031.a
! 878a0b37cc2f4dcce1e34855977f6aa1  gcc/testsuite/ada/acats-3/tests/c3/c3a10032.am
! cafc593ae60aa9bc20c17d81fae12d87  gcc/testsuite/ada/acats-3/tests/c3/c3a10040.a
! e3bbd65bb943a5000a14047b45073b7b  gcc/testsuite/ada/acats-3/tests/c3/c3a10041.a
! f450d70e7af5a3abaa9e98b51d3dd478  gcc/testsuite/ada/acats-3/tests/c3/c3a10042.am
! 73e86224d17f2a8956a1d528195701e5  gcc/testsuite/ada/acats-3/tests/c3/c3a2001.a
! e2d17cf34da20dd63f46abc38e9461f2  gcc/testsuite/ada/acats-3/tests/c3/c3a2002.a
! 3c24e7e447372dec84c3b1cf5f273936  gcc/testsuite/ada/acats-3/tests/c3/c3a2003.a
! cbeca93d733582989633f82f0909acae  gcc/testsuite/ada/acats-3/tests/c3/c3a2004.a
! cddb5c363c31a2ba7b970cf9dc8e3f5e  gcc/testsuite/ada/acats-3/tests/c3/c3a2a01.a
! 4247f0b657aa158ef18c1318e9dc8b84  gcc/testsuite/ada/acats-3/tests/c3/c3a2a02.a
! 383d36d8bd8f651b81f9f034c79f6395  gcc/testsuite/ada/acats-3/tests/c4/c410001.a
! dc852bc88874efd64494341e97b01bfb  gcc/testsuite/ada/acats-3/tests/c4/c41101d.ada
! 6f5f34a6a9fa1d906503ce64081a9fb1  gcc/testsuite/ada/acats-3/tests/c4/c41103a.ada
! b5e4896d791e9edb4152659fc6403ac3  gcc/testsuite/ada/acats-3/tests/c4/c41103b.ada
! 820fca3a12cccc477a1db295b46c9e89  gcc/testsuite/ada/acats-3/tests/c4/c41104a.ada
! fdbf47ad957484b7d85a3373d756e376  gcc/testsuite/ada/acats-3/tests/c4/c41105a.ada
! c4087c229334ce4727fc90657340bea6  gcc/testsuite/ada/acats-3/tests/c4/c41107a.ada
! 0f8bb517ec2fe5d8ad9dd8f9fcdca333  gcc/testsuite/ada/acats-3/tests/c4/c41201d.ada
! 381cd3656ffd77067260c0426caad8e4  gcc/testsuite/ada/acats-3/tests/c4/c41203a.ada
! ad6cf2964a900435614399bbbe277e42  gcc/testsuite/ada/acats-3/tests/c4/c41203b.ada
! 9fbde81e21b268a632cd32dc4a99df30  gcc/testsuite/ada/acats-3/tests/c4/c41204a.ada
! 67fa52580bd829764d9438c881578136  gcc/testsuite/ada/acats-3/tests/c4/c41205a.ada
! 7dca543b0fdeefd218298ca3512d4136  gcc/testsuite/ada/acats-3/tests/c4/c41206a.ada
! 3ab9c169397fc23560a200fb693450fe  gcc/testsuite/ada/acats-3/tests/c4/c41207a.ada
! 17ad22489b459a058eeaf34546fec768  gcc/testsuite/ada/acats-3/tests/c4/c413001.a
! 1b052069034494eeefbb85b95881f7e7  gcc/testsuite/ada/acats-3/tests/c4/c413002.a
! 040de4201fd72e9de123fa9a2143c41d  gcc/testsuite/ada/acats-3/tests/c4/c413003.a
! 4b2fa1ff66b48b9350d8ab977de55848  gcc/testsuite/ada/acats-3/tests/c4/c413004.a
! 6bd3f248a03f035ba1437d5a541753e0  gcc/testsuite/ada/acats-3/tests/c4/c413005.a
! 2615eb7f6f28583edf200225c397e372  gcc/testsuite/ada/acats-3/tests/c4/c413006.a
! 20522dfe7bf33e5e0e855924df96c08e  gcc/testsuite/ada/acats-3/tests/c4/c41301a.ada
! dae21e7962c8e72b1b61657cc9649578  gcc/testsuite/ada/acats-3/tests/c4/c41303a.ada
! b50a855a96988b73e7f3549240854176  gcc/testsuite/ada/acats-3/tests/c4/c41303b.ada
! 2616024a5ab75311dd3da9466dfeb83f  gcc/testsuite/ada/acats-3/tests/c4/c41303c.ada
! 71212110be4b03b467bc38a722d121d1  gcc/testsuite/ada/acats-3/tests/c4/c41303e.ada
! 66cc6334eba1dfed1e235d86203cb20f  gcc/testsuite/ada/acats-3/tests/c4/c41303f.ada
! 924b3910bb06953e81b618bc3e559550  gcc/testsuite/ada/acats-3/tests/c4/c41303g.ada
! 045ed81e249f894170b499df2db286d6  gcc/testsuite/ada/acats-3/tests/c4/c41303i.ada
! aa4db5f52bbfc36e5c975658ef97c89a  gcc/testsuite/ada/acats-3/tests/c4/c41303j.ada
! 0f31fc1511244c83e7abb4baeac80671  gcc/testsuite/ada/acats-3/tests/c4/c41303k.ada
! f9b758389317dc92073ce01c3c275e91  gcc/testsuite/ada/acats-3/tests/c4/c41303m.ada
! 71a865e9509e3725fd95b90ec715eaa7  gcc/testsuite/ada/acats-3/tests/c4/c41303n.ada
! 8981d1c2da09086d412019a04cc8c913  gcc/testsuite/ada/acats-3/tests/c4/c41303o.ada
! 2dda9c55735424d40aed9757f7a99849  gcc/testsuite/ada/acats-3/tests/c4/c41303q.ada
! e34e7a4a5a5ba93bc9916cceeaecc9e6  gcc/testsuite/ada/acats-3/tests/c4/c41303r.ada
! 7030e6ee5fb5761b449dbb4ff5a07765  gcc/testsuite/ada/acats-3/tests/c4/c41303s.ada
! d79eb627645d3853ea5140161ae28128  gcc/testsuite/ada/acats-3/tests/c4/c41303u.ada
! bb6f238e4a4ba7e7e7d4a81bc419e03c  gcc/testsuite/ada/acats-3/tests/c4/c41303v.ada
! 30d2340bbbbe2276772e1fb63e33b4ce  gcc/testsuite/ada/acats-3/tests/c4/c41303w.ada
! 98d29cda44e41c5ff7947a4026f5e44c  gcc/testsuite/ada/acats-3/tests/c4/c41304a.ada
! 185701022ded3608ce413730986fd29a  gcc/testsuite/ada/acats-3/tests/c4/c41304b.ada
! 5dd0f98f04759d0b25f9631bb3f052ba  gcc/testsuite/ada/acats-3/tests/c4/c41306b.ada
! 58245b98892f05598c91a37cc2fa0cf7  gcc/testsuite/ada/acats-3/tests/c4/c41306c.ada
! 78cff154ce4ec882d604897c85256a6f  gcc/testsuite/ada/acats-3/tests/c4/c41307d.ada
! e4f57f60d8ab4020fa02081676cd97b1  gcc/testsuite/ada/acats-3/tests/c4/c41309a.ada
! 46615dd040a05118f00cf1a6c269abf8  gcc/testsuite/ada/acats-3/tests/c4/c41320a.ada
! c87207608b642d6c0770b2213faa6f37  gcc/testsuite/ada/acats-3/tests/c4/c41321a.ada
! a2f1c6ef57f73e8afee4331c2f6b8836  gcc/testsuite/ada/acats-3/tests/c4/c41322a.ada
! 5fe80e1ed0d397d7243803f3679b1dcf  gcc/testsuite/ada/acats-3/tests/c4/c41323a.ada
! 1b628d4729417b726825d3cc545cce88  gcc/testsuite/ada/acats-3/tests/c4/c41324a.ada
! 34bb464a9c0edf77ba3cf3f225f84fac  gcc/testsuite/ada/acats-3/tests/c4/c41325a.ada
! 9f472b4f812b18261355bfdb272afaf2  gcc/testsuite/ada/acats-3/tests/c4/c41326a.ada
! c79f530e375e47fc23508a767283386e  gcc/testsuite/ada/acats-3/tests/c4/c41327a.ada
! 9dbb72dcbb910f44662d1091a9dcff76  gcc/testsuite/ada/acats-3/tests/c4/c41328a.ada
! 0449520de7d65d45ed1daf5ca0e4569b  gcc/testsuite/ada/acats-3/tests/c4/c41401a.ada
! 20918a0804a04dce0cbb4d97b451bb81  gcc/testsuite/ada/acats-3/tests/c4/c41402a.ada
! 3d9dc352053f7bb2142de6aadd56af67  gcc/testsuite/ada/acats-3/tests/c4/c41404a.ada
! 3472f5561c379717f19af41f64bf38a3  gcc/testsuite/ada/acats-3/tests/c4/c420001.a
! 837ffbb47c098000329e8e489cfada64  gcc/testsuite/ada/acats-3/tests/c4/c42006a.ada
! 3930cedf9786c67a42558e65e855c7fd  gcc/testsuite/ada/acats-3/tests/c4/c42007e.ada
! fdfa37c01ec576b222ad3107e9e17cd2  gcc/testsuite/ada/acats-3/tests/c4/c43003a.ada
! 42c7528eba63811a5183af811bdf7a65  gcc/testsuite/ada/acats-3/tests/c4/c43004a.ada
! fdfe754e9fba94c879707660c35c89c4  gcc/testsuite/ada/acats-3/tests/c4/c43004c.ada
! d381bf2fc72e35825723db4655f3c38a  gcc/testsuite/ada/acats-3/tests/c4/c431001.a
! 841914115d2e37bfbd84574493c7019f  gcc/testsuite/ada/acats-3/tests/c4/c43103a.ada
! dd65d5f3b06487b888840af62334c5a5  gcc/testsuite/ada/acats-3/tests/c4/c43103b.ada
! 9e71b6045390013211406d2c1bfb4fba  gcc/testsuite/ada/acats-3/tests/c4/c43104a.ada
! 85abcc7f64ed7b42d6fd3f22c7daeb40  gcc/testsuite/ada/acats-3/tests/c4/c43105a.ada
! 4ed22cb91cfe0bda94598dd26ceb9c7c  gcc/testsuite/ada/acats-3/tests/c4/c43105b.ada
! baec9aa149293739f6e8ceac8325d7a0  gcc/testsuite/ada/acats-3/tests/c4/c43106a.ada
! 1d531018ee649629c5a7552829150451  gcc/testsuite/ada/acats-3/tests/c4/c43107a.ada
! 05a638c334196cb191ee5128a5996f23  gcc/testsuite/ada/acats-3/tests/c4/c43108a.ada
! debcbaad0b35de45ea6e4b666eeea609  gcc/testsuite/ada/acats-3/tests/c4/c431a01.a
! 0f4afa9a95b97dc847470380efc90532  gcc/testsuite/ada/acats-3/tests/c4/c431a02.a
! 65063fafd01ba653c15d798991e31ea3  gcc/testsuite/ada/acats-3/tests/c4/c431a03.a
! 4ea1f6b615b7799500e7c6933df91e82  gcc/testsuite/ada/acats-3/tests/c4/c432001.a
! 1e73ca84bb526fa8947ec4278f0151ed  gcc/testsuite/ada/acats-3/tests/c4/c432002.a
! 6ec2ee48b603324015bd74c07d8eb9fb  gcc/testsuite/ada/acats-3/tests/c4/c432003.a
! 8e738d9db0574dd56f1158230f5caa4c  gcc/testsuite/ada/acats-3/tests/c4/c432004.a
! ccee6b8b7bc155051a378848cc247ecb  gcc/testsuite/ada/acats-3/tests/c4/c432005.a
! ee94ed306c9c2f72d0f353f3242a51db  gcc/testsuite/ada/acats-3/tests/c4/c43204a.ada
! e98c1830d22cb2c31e6c97a0f3d96ad7  gcc/testsuite/ada/acats-3/tests/c4/c43204c.ada
! f0b2f2ebf435459bab0ed10112cc18b6  gcc/testsuite/ada/acats-3/tests/c4/c43204e.ada
! 7e74d89a8654aef2ebf093dc84b24d10  gcc/testsuite/ada/acats-3/tests/c4/c43204f.ada
! b266b1d1eaefa26342ce7e3c0eb10f20  gcc/testsuite/ada/acats-3/tests/c4/c43204g.ada
! 119509db1b0027b3597be4ca5abbb5bb  gcc/testsuite/ada/acats-3/tests/c4/c43204h.ada
! 67b7aebfc7ddaa75b105ec0d3e496a27  gcc/testsuite/ada/acats-3/tests/c4/c43204i.ada
! 73152cdcaa60874a7dd488590fdf9d5c  gcc/testsuite/ada/acats-3/tests/c4/c43205a.ada
! 64f982d0a7b18107f1762424333a65d3  gcc/testsuite/ada/acats-3/tests/c4/c43205b.ada
! ac552917303ade3bcc90b97b15f26e94  gcc/testsuite/ada/acats-3/tests/c4/c43205c.ada
! fb0c33a9daed1c4f2a00c26e9de3c09c  gcc/testsuite/ada/acats-3/tests/c4/c43205d.ada
! d9e706d3db07df4098bbb0e033aed012  gcc/testsuite/ada/acats-3/tests/c4/c43205e.ada
! 4f3634691d02036c149cdd006248ffe1  gcc/testsuite/ada/acats-3/tests/c4/c43205g.ada
! 5c21ffd092ad83125d058e3179c4d1bf  gcc/testsuite/ada/acats-3/tests/c4/c43205h.ada
! bf224ac40af0ffe5b844895ae6ae977a  gcc/testsuite/ada/acats-3/tests/c4/c43205i.ada
! 80a79cdbdb7c8185dcf0428e7589a584  gcc/testsuite/ada/acats-3/tests/c4/c43205j.ada
! 7914df26e752133b470cdb5c585686bc  gcc/testsuite/ada/acats-3/tests/c4/c43205k.ada
! cbadb73b68d71709f2becaa6f356064c  gcc/testsuite/ada/acats-3/tests/c4/c43206a.ada
! 0fc8105e29d6d23a3a7ddd6510322795  gcc/testsuite/ada/acats-3/tests/c4/c43207b.ada
! 97244c88eb0cfebd12378341cddfcf4f  gcc/testsuite/ada/acats-3/tests/c4/c43207d.ada
! f288bdf0f019b0e6deea7f364629093d  gcc/testsuite/ada/acats-3/tests/c4/c43208a.ada
! 99521b78f4e58d62e65acd17c5306220  gcc/testsuite/ada/acats-3/tests/c4/c43208b.ada
! 36f70dc294058acb31101eb9c245937b  gcc/testsuite/ada/acats-3/tests/c4/c43209a.ada
! 31cacbf3a20b821f6eb8f1d74586a51b  gcc/testsuite/ada/acats-3/tests/c4/c43210a.ada
! 54b7270b96a5d5519d2358a1b98bf7af  gcc/testsuite/ada/acats-3/tests/c4/c43211a.ada
! a692660520b9e289a7f0ae27c6d52494  gcc/testsuite/ada/acats-3/tests/c4/c43212a.ada
! c43685e66248fa05c959fb5d231800a7  gcc/testsuite/ada/acats-3/tests/c4/c43212c.ada
! 9427f327bd00f1850a52dc14567dbf4e  gcc/testsuite/ada/acats-3/tests/c4/c43214a.ada
! 2b1a3e33f54f7510083e41b401c3befb  gcc/testsuite/ada/acats-3/tests/c4/c43214b.ada
! 579da18e7294b44fdfc2fb550cccdbf3  gcc/testsuite/ada/acats-3/tests/c4/c43214c.ada
! 506424b9dbd9ff75e61b488ce4a5879e  gcc/testsuite/ada/acats-3/tests/c4/c43214d.ada
! 02fcbb175ddd0a1d8c5564d22bf12428  gcc/testsuite/ada/acats-3/tests/c4/c43214e.ada
! 34cd6d7cf5c8038e227dde683b30b50f  gcc/testsuite/ada/acats-3/tests/c4/c43214f.ada
! ab7bedd7c7899bfe816d9a4b9ac394d4  gcc/testsuite/ada/acats-3/tests/c4/c43215a.ada
! 90e0f447154023e2eab627e883738386  gcc/testsuite/ada/acats-3/tests/c4/c43215b.ada
! f0098152f11a322c39c1479f279dc3d7  gcc/testsuite/ada/acats-3/tests/c4/c43222a.ada
! bf1baa8817f6afb1d613db2046cb78de  gcc/testsuite/ada/acats-3/tests/c4/c43224a.ada
! 1e8e32f41f79462323a2f9d9c83d7939  gcc/testsuite/ada/acats-3/tests/c4/c433001.a
! 6be8523b2e0ccefb268613fe395421ca  gcc/testsuite/ada/acats-3/tests/c4/c433a01.a
! f2b5faadf7994318ad86d30f5d297c77  gcc/testsuite/ada/acats-3/tests/c4/c433a02.a
! e758c7c2655902abd75371fb1d06411d  gcc/testsuite/ada/acats-3/tests/c4/c433a03.a
! 43d476ccf0baa3b45d12a181f1801d72  gcc/testsuite/ada/acats-3/tests/c4/c433a04.a
! 196c158a32a4bc1774a4d934b1a6632e  gcc/testsuite/ada/acats-3/tests/c4/c44003d.ada
! bf440c6d6ead3b13b20d4e127607337e  gcc/testsuite/ada/acats-3/tests/c4/c44003f.ada
! 2f9030320131a08536fa11fa1a117664  gcc/testsuite/ada/acats-3/tests/c4/c44003g.ada
! 62ba7a9a25d025dad4ded263e64d8380  gcc/testsuite/ada/acats-3/tests/c4/c450001.a
! b3687aae227c95d084c9f685c9ca4c80  gcc/testsuite/ada/acats-3/tests/c4/c45112a.ada
! c7c3ba0d233fb51ade68d7651dd47189  gcc/testsuite/ada/acats-3/tests/c4/c45112b.ada
! 49306dfa2cb372d1d65b4dd7a47c19e5  gcc/testsuite/ada/acats-3/tests/c4/c45113a.ada
! aa0781fb6f24f86504e59a47cf77b3d6  gcc/testsuite/ada/acats-3/tests/c4/c45114b.ada
! f718c72a25e47da1540690be5ff953da  gcc/testsuite/ada/acats-3/tests/c4/c452001.a
! 20ba3c7cde16d8bed844c4e64cd33e56  gcc/testsuite/ada/acats-3/tests/c4/c45201a.ada
! 6d4a1adb58c6e8ef73b34a324604ede4  gcc/testsuite/ada/acats-3/tests/c4/c45201b.ada
! 72aed4b6ea2fe7dfc0a9fdf3bede3751  gcc/testsuite/ada/acats-3/tests/c4/c45202b.ada
! 84d744855e2972095386f0e272333a6a  gcc/testsuite/ada/acats-3/tests/c4/c45210a.ada
! 91f826ce1d8f6889145f46e4c0ccada9  gcc/testsuite/ada/acats-3/tests/c4/c45211a.ada
! fe9117190ab93e4bd66b4015bb5cdba1  gcc/testsuite/ada/acats-3/tests/c4/c45220a.ada
! 6912810853452af0c8935cfd387c8df5  gcc/testsuite/ada/acats-3/tests/c4/c45220b.ada
! b394f131a9012e7c03cfd9636d737e6d  gcc/testsuite/ada/acats-3/tests/c4/c45220c.ada
! ccf331c469a0927819e1eb56e4e00429  gcc/testsuite/ada/acats-3/tests/c4/c45220d.ada
! 88d3a9ace4677cd3c025906371d2beeb  gcc/testsuite/ada/acats-3/tests/c4/c45220e.ada
! bba84a4055dd7c551f067e52bbe462e1  gcc/testsuite/ada/acats-3/tests/c4/c45220f.ada
! c13eaf9a516abfe2b6beda77dc2e3911  gcc/testsuite/ada/acats-3/tests/c4/c45231a.ada
! 2cca7d5fea02ce521f28a33db34ffa3d  gcc/testsuite/ada/acats-3/tests/c4/c45231b.dep
! 1bee766d69082269378c86e19c8abe85  gcc/testsuite/ada/acats-3/tests/c4/c45231c.dep
! a1bdfcd8a7def7dd624d3536e8905d30  gcc/testsuite/ada/acats-3/tests/c4/c45231d.tst
! 911d91bbd63a8c74f621846268c3e576  gcc/testsuite/ada/acats-3/tests/c4/c45232b.ada
! 4de95534392888683c8404eeeed6cc46  gcc/testsuite/ada/acats-3/tests/c4/c45242b.ada
! f2b98c822abe0cd6885e5b49561ac387  gcc/testsuite/ada/acats-3/tests/c4/c45251a.ada
! 94a924601ada615360bec26fb5450efb  gcc/testsuite/ada/acats-3/tests/c4/c45252a.ada
! debd13ddcb22bdcbb8a02c69693b66f8  gcc/testsuite/ada/acats-3/tests/c4/c45252b.ada
! ac031704393af45bbba41661aa36f2aa  gcc/testsuite/ada/acats-3/tests/c4/c45253a.ada
! fc9f55680d3672e261c2346c11b8ac30  gcc/testsuite/ada/acats-3/tests/c4/c45262a.ada
! c4104ba41f3003933d2540d2f946ba70  gcc/testsuite/ada/acats-3/tests/c4/c45262b.ada
! 8b9cb8019cc36523ada4859ea4a5d16a  gcc/testsuite/ada/acats-3/tests/c4/c45262c.ada
! d03448ead4d0effaab3998536c97bf20  gcc/testsuite/ada/acats-3/tests/c4/c45262d.ada
! f5c2479fb34a68704e8a8cc34f61a360  gcc/testsuite/ada/acats-3/tests/c4/c45264a.ada
! b5849bcd08a3c2d9a5d0c2b9e7a3cddd  gcc/testsuite/ada/acats-3/tests/c4/c45264b.ada
! 8f21912f6834298744357d557cb137f0  gcc/testsuite/ada/acats-3/tests/c4/c45264c.ada
! adc3cff25d9a3d6a8177af01212d7415  gcc/testsuite/ada/acats-3/tests/c4/c45265a.ada
! c4c6e9f92d1c15ec8a4b8f04c34a693f  gcc/testsuite/ada/acats-3/tests/c4/c45271a.ada
! c72a97f0fec20bbb08fc4517b6ddc788  gcc/testsuite/ada/acats-3/tests/c4/c45272a.ada
! 6b2a1a4bc714bd568da120c02fbf1702  gcc/testsuite/ada/acats-3/tests/c4/c45273a.ada
! b79ca71dc3632b190bdef98c6e0d142b  gcc/testsuite/ada/acats-3/tests/c4/c45274a.ada
! 9855409d4983ad2c1546e338fcbd0706  gcc/testsuite/ada/acats-3/tests/c4/c45274b.ada
! 435926faf09e9e479e1b1f272c13a333  gcc/testsuite/ada/acats-3/tests/c4/c45274c.ada
! 9115b9a51b29cec2f4c9ff1428f5a615  gcc/testsuite/ada/acats-3/tests/c4/c45281a.ada
! ecfe4965aad0d9bc1dc0dea01acceae3  gcc/testsuite/ada/acats-3/tests/c4/c45282a.ada
! 52a7cd2f9612b968a81d14f925d96de2  gcc/testsuite/ada/acats-3/tests/c4/c45282b.ada
! b3bd1b305af20f17ece9aabad0feaef1  gcc/testsuite/ada/acats-3/tests/c4/c45291a.ada
! 5e2f83b478139997a71df86ce9d1694c  gcc/testsuite/ada/acats-3/tests/c4/c452a01.a
! 35c49539c3030fd9c7c002e2fb0544cc  gcc/testsuite/ada/acats-3/tests/c4/c452a02.a
! 8af6afb2d8a0c30080274f19bc0dbbe8  gcc/testsuite/ada/acats-3/tests/c4/c452a03.a
! 7a35f848c66e3fbeaecff44f362c6d10  gcc/testsuite/ada/acats-3/tests/c4/c453001.a
! eaeb6ce37e830b736db8d34c6a83bb7d  gcc/testsuite/ada/acats-3/tests/c4/c45303a.ada
! f1ec15c9cdb65dbf13e1375cf7996f12  gcc/testsuite/ada/acats-3/tests/c4/c45304a.ada
! 55a19685b3e235e5bb6750cb9d7df962  gcc/testsuite/ada/acats-3/tests/c4/c45304b.dep
! b4c45f68d1219b0b994968a9828a7b17  gcc/testsuite/ada/acats-3/tests/c4/c45304c.dep
! 20fb36abf27afac504d4a771e7e63fd0  gcc/testsuite/ada/acats-3/tests/c4/c45322a.ada
! fab8bce97e1b74f5541c43ebbc38c44b  gcc/testsuite/ada/acats-3/tests/c4/c45323a.ada
! 0f09ca069bcacb950f308b51658fe4cf  gcc/testsuite/ada/acats-3/tests/c4/c45331a.ada
! 923c0cd8bc5f7a54a3ff10b7ecd3ae30  gcc/testsuite/ada/acats-3/tests/c4/c45342a.ada
! 4c687d4debfb2858cbde8d0598741375  gcc/testsuite/ada/acats-3/tests/c4/c45343a.ada
! fced8cf133a6e38c1bd3f44b383050a5  gcc/testsuite/ada/acats-3/tests/c4/c45344a.ada
! 046bf7cdbb7aeb33cdf0c17abb97726b  gcc/testsuite/ada/acats-3/tests/c4/c45345b.ada
! 1b975a926de8c5e1c1a8fd844dbfa809  gcc/testsuite/ada/acats-3/tests/c4/c45347a.ada
! 5c3a11fd88252878ac174be55d9cbe23  gcc/testsuite/ada/acats-3/tests/c4/c45347b.ada
! e7b0eaf3fab48f0c61a33030a45c9625  gcc/testsuite/ada/acats-3/tests/c4/c45347c.ada
! 5862189030beeea86b9e0d08e37c5f1a  gcc/testsuite/ada/acats-3/tests/c4/c45347d.ada
! 5a4ad439614a0b55cdeae637fcef3913  gcc/testsuite/ada/acats-3/tests/c4/c45411a.ada
! b55c932d505fe19faf48b3854f91bf92  gcc/testsuite/ada/acats-3/tests/c4/c45411b.dep
! cc45fca3dbdc169c3f8a8d219a8f3885  gcc/testsuite/ada/acats-3/tests/c4/c45411c.dep
! 92372898586e4be4330d20dabffa9b47  gcc/testsuite/ada/acats-3/tests/c4/c45411d.ada
! fdb465fedee3ebd743401e0c8899b0ce  gcc/testsuite/ada/acats-3/tests/c4/c45413a.ada
! fbd34bfae4961dda3c3e39ae18565fc8  gcc/testsuite/ada/acats-3/tests/c4/c45431a.ada
! bda2b940e9dc2584f9295b05e0c20b0f  gcc/testsuite/ada/acats-3/tests/c4/c455001.a
! 87ea1f3d7a54b6c25dba44fd5a571baa  gcc/testsuite/ada/acats-3/tests/c4/c45502b.dep
! 5a774d039f16514bc6a77bcf387d50ec  gcc/testsuite/ada/acats-3/tests/c4/c45502c.dep
! cc87ae3a223cabfed863304f12752609  gcc/testsuite/ada/acats-3/tests/c4/c45503a.ada
! dcadc5c668c2ff77de523cb7dba5b36a  gcc/testsuite/ada/acats-3/tests/c4/c45503b.dep
! 611398c2ae165df5a3f7381f660f52a0  gcc/testsuite/ada/acats-3/tests/c4/c45503c.dep
! f89268db15e37b030991c3827ca26c3e  gcc/testsuite/ada/acats-3/tests/c4/c45504a.ada
! f0cdb8c22aab2695a23fd98a373755b2  gcc/testsuite/ada/acats-3/tests/c4/c45504b.dep
! b8b4e008dfce1ee201519835a1fa50b8  gcc/testsuite/ada/acats-3/tests/c4/c45504c.dep
! ce29dbe3d5204283efb96dbcdfd5aac5  gcc/testsuite/ada/acats-3/tests/c4/c45504d.ada
! 10c91d5e233ba13218dcd66fb790a7be  gcc/testsuite/ada/acats-3/tests/c4/c45504e.dep
! 92f6aea3aed6ba9df5385c22f904ba43  gcc/testsuite/ada/acats-3/tests/c4/c45504f.dep
! 0059f05c198e829fac48965c13f56c08  gcc/testsuite/ada/acats-3/tests/c4/c45505a.ada
! 47a4e48ddd2b3df3c7eb949e7d6692a8  gcc/testsuite/ada/acats-3/tests/c4/c45523a.ada
! 17fdb2a59175aad9fef05c8cab8509e5  gcc/testsuite/ada/acats-3/tests/c4/c45531a.ada
! b8d549a63a2c40e579c8ed0a817ba1b3  gcc/testsuite/ada/acats-3/tests/c4/c45531b.ada
! c131684e4763854670c42c2112418109  gcc/testsuite/ada/acats-3/tests/c4/c45531c.ada
! c584d6f3f281816f1bd157cd8cc6b33a  gcc/testsuite/ada/acats-3/tests/c4/c45531d.ada
! 29ba7e7c1042d7979b1c75938b61e862  gcc/testsuite/ada/acats-3/tests/c4/c45531e.ada
! 47ea14530564cd8e06520e03e074efb3  gcc/testsuite/ada/acats-3/tests/c4/c45531f.ada
! 974ec868d7bcf66f2a14b7a4e70541b0  gcc/testsuite/ada/acats-3/tests/c4/c45531g.ada
! be8ef1a126f5c01246a9b635558e69ed  gcc/testsuite/ada/acats-3/tests/c4/c45531h.ada
! a795638c4621469321aa1212fd6bc01b  gcc/testsuite/ada/acats-3/tests/c4/c45531i.ada
! 8e8dbc1f05d26be72eaaaaca136d57b8  gcc/testsuite/ada/acats-3/tests/c4/c45531j.ada
! f7420a86d16f0dda550ad66d998500fa  gcc/testsuite/ada/acats-3/tests/c4/c45531k.ada
! de637dfbdf31186f46f1f622a7b31d52  gcc/testsuite/ada/acats-3/tests/c4/c45531l.ada
! 991294aff87680d765e6feb5cca5b1b5  gcc/testsuite/ada/acats-3/tests/c4/c45531m.dep
! 0494b2e93ef765b57a27be6b00246238  gcc/testsuite/ada/acats-3/tests/c4/c45531n.dep
! be4ab72a6216470b4aa0865525f98461  gcc/testsuite/ada/acats-3/tests/c4/c45531o.dep
! bb7d5366acda158c30e39d3074242262  gcc/testsuite/ada/acats-3/tests/c4/c45531p.dep
! 1328509e95f292ea980a979dedb08b47  gcc/testsuite/ada/acats-3/tests/c4/c45532a.ada
! 59f6ce63685d98c434d1a7af9b67d1f3  gcc/testsuite/ada/acats-3/tests/c4/c45532b.ada
! fe5a8b5f9204d89a9d208c19a93b7bbf  gcc/testsuite/ada/acats-3/tests/c4/c45532c.ada
! b60deea143add2ece22c54e2958db126  gcc/testsuite/ada/acats-3/tests/c4/c45532d.ada
! dac58571992e1d76d98508be3cbe2bd6  gcc/testsuite/ada/acats-3/tests/c4/c45532e.ada
! 1d7df94c7041a350156a66e67466f094  gcc/testsuite/ada/acats-3/tests/c4/c45532f.ada
! 98b8e00c4f5a9bb275a8ea343272d444  gcc/testsuite/ada/acats-3/tests/c4/c45532g.ada
! 715b35f0ab3ff72859527fd1dce01194  gcc/testsuite/ada/acats-3/tests/c4/c45532h.ada
! 6f5e0c33dee8484fe564f99b4aa53644  gcc/testsuite/ada/acats-3/tests/c4/c45532i.ada
! 4ff1755309ac898b71b5b8e71ed4a3b6  gcc/testsuite/ada/acats-3/tests/c4/c45532j.ada
! 6c58481cb99358f459163a20d20ecd7c  gcc/testsuite/ada/acats-3/tests/c4/c45532k.ada
! c77d0519f01191df9cdfba659466ec04  gcc/testsuite/ada/acats-3/tests/c4/c45532l.ada
! d2858511889a915c130e7db15a855e6a  gcc/testsuite/ada/acats-3/tests/c4/c45532m.dep
! a549269ed45783ccf0d0c93c5328f429  gcc/testsuite/ada/acats-3/tests/c4/c45532n.dep
! f4b1217bc94832f638629b8949b7def2  gcc/testsuite/ada/acats-3/tests/c4/c45532o.dep
! 798f26e21ededa5b524a77eeece6382f  gcc/testsuite/ada/acats-3/tests/c4/c45532p.dep
! 76101d98b4fab21c843f8c72a2bd9d19  gcc/testsuite/ada/acats-3/tests/c4/c45534b.ada
! b8ae84ef022a3c5728e841755e4bac5e  gcc/testsuite/ada/acats-3/tests/c4/c45536a.dep
! 28591d736802ebfac3f139de9f8cf2e7  gcc/testsuite/ada/acats-3/tests/c4/c456001.a
! bc49b87b69b7e8faefa883dc0c55fb68  gcc/testsuite/ada/acats-3/tests/c4/c45611a.ada
! 3be40e2b85d211f880f0c3afd51a63e8  gcc/testsuite/ada/acats-3/tests/c4/c45611b.dep
! 969e8cbd817e50baf599dd80133f7e3d  gcc/testsuite/ada/acats-3/tests/c4/c45611c.dep
! 48d114a182e767e243d7ef95e93e4e19  gcc/testsuite/ada/acats-3/tests/c4/c45613a.ada
! c3d80667bb998de0b21993ea73edabec  gcc/testsuite/ada/acats-3/tests/c4/c45613b.dep
! f8ed3027af651e8a9c09b39c0abf883c  gcc/testsuite/ada/acats-3/tests/c4/c45613c.dep
! cfe72bc879be3b00ef382558884d4b1d  gcc/testsuite/ada/acats-3/tests/c4/c45614a.ada
! c49e020a85a8868eed26fc38aaab04bf  gcc/testsuite/ada/acats-3/tests/c4/c45614b.dep
! 41f7a3468254617c1e8fd2e5932a25b4  gcc/testsuite/ada/acats-3/tests/c4/c45614c.dep
! ac5d52f05c31abf886e8c8c4468e3276  gcc/testsuite/ada/acats-3/tests/c4/c45631a.ada
! 08c1f1a469e3e9753825625f1a28b1ea  gcc/testsuite/ada/acats-3/tests/c4/c45631b.dep
! 3d90d62c311cc7457e997be47d4bc90b  gcc/testsuite/ada/acats-3/tests/c4/c45631c.dep
! 2f244bf1111e453d24ff570db3165fdb  gcc/testsuite/ada/acats-3/tests/c4/c45632a.ada
! 3e3d1f108ceb3c5be9dad7868239132f  gcc/testsuite/ada/acats-3/tests/c4/c45632b.dep
! d562e6283ca6c800b69581c080526e08  gcc/testsuite/ada/acats-3/tests/c4/c45632c.dep
! 2057dc7ea5393bc4be1493fb108ee5fb  gcc/testsuite/ada/acats-3/tests/c4/c45651a.ada
! c6892aa7717ffbd54f697e3d5db788af  gcc/testsuite/ada/acats-3/tests/c4/c45662a.ada
! a04b5f03883d1f148e66d75bb8eb5a69  gcc/testsuite/ada/acats-3/tests/c4/c45662b.ada
! ebd6cdab4f3e678623c2ece9ee770d5e  gcc/testsuite/ada/acats-3/tests/c4/c45672a.ada
! ac5adcf11bac18511d0fcfabda779d68  gcc/testsuite/ada/acats-3/tests/c4/c460001.a
! afb5f92407f4912f75eeaef16084757f  gcc/testsuite/ada/acats-3/tests/c4/c460002.a
! 69401711fe089c368e9218ac971b8e5a  gcc/testsuite/ada/acats-3/tests/c4/c460004.a
! f7f9cde65ac6273493f88f7cc35065c2  gcc/testsuite/ada/acats-3/tests/c4/c460005.a
! e0ce32e221b728a5e7cbef5d66bdb49b  gcc/testsuite/ada/acats-3/tests/c4/c460006.a
! ec69fdc3a65a761d8134bc49e6570216  gcc/testsuite/ada/acats-3/tests/c4/c460007.a
! 8b03807b80d9f2edc57ad06734bf670f  gcc/testsuite/ada/acats-3/tests/c4/c460008.a
! 6950bb628b3003b1ceb3b53e6cf246f8  gcc/testsuite/ada/acats-3/tests/c4/c460009.a
! 5bc44a3344b33409dd851c6b03e885b7  gcc/testsuite/ada/acats-3/tests/c4/c460010.a
! 28b73597d3fa9ae6666a9a63539882fb  gcc/testsuite/ada/acats-3/tests/c4/c460011.a
! a2898cc40c52d07d2a1d5f39c8daae42  gcc/testsuite/ada/acats-3/tests/c4/c460012.a
! 872a8786f130e49cbb2e00930aee116c  gcc/testsuite/ada/acats-3/tests/c4/c460013.a
! 8caad81fc1b11cdf36c43c5366ffe8c4  gcc/testsuite/ada/acats-3/tests/c4/c460014.a
! e833e9d95b6cede57867bf1cfb360b6d  gcc/testsuite/ada/acats-3/tests/c4/c460015.a
! 4578ba3cbcc42767bfa1d9fb8beed52f  gcc/testsuite/ada/acats-3/tests/c4/c46011a.ada
! 573e5b85d6d0d9289787bcf7f265aea9  gcc/testsuite/ada/acats-3/tests/c4/c46013a.ada
! ad32d1cce692c7cd1ef8bf3d2f70dee2  gcc/testsuite/ada/acats-3/tests/c4/c46014a.ada
! 3860375240c7fbeec5ea607c60613d17  gcc/testsuite/ada/acats-3/tests/c4/c46021a.ada
! 6ca67808bea0b36f928ece90dac5570f  gcc/testsuite/ada/acats-3/tests/c4/c46024a.ada
! 846bd637f5220b864dde4f2ea9ac8025  gcc/testsuite/ada/acats-3/tests/c4/c46031a.ada
! 362f593ed41bfc3cc23925318952cbc7  gcc/testsuite/ada/acats-3/tests/c4/c46032a.ada
! 65b59a01caacc42c4057aa1adad39e9c  gcc/testsuite/ada/acats-3/tests/c4/c46033a.ada
! bc9fedd5661dbda9254ef00f93819e37  gcc/testsuite/ada/acats-3/tests/c4/c46041a.ada
! dd2bc24443f9516af6adaf665228f9fb  gcc/testsuite/ada/acats-3/tests/c4/c46042a.ada
! cc5cd66068669bee0635ba7d5d5b9e4b  gcc/testsuite/ada/acats-3/tests/c4/c46043b.ada
! 862e92acebb016f9eaff87800084fb00  gcc/testsuite/ada/acats-3/tests/c4/c46044b.ada
! 8704bc96d1d99d958dd9ba580cc0fcab  gcc/testsuite/ada/acats-3/tests/c4/c46051a.ada
! 4301c097675c9ae1e1de85cb434e9f91  gcc/testsuite/ada/acats-3/tests/c4/c46051b.ada
! 0852a062d8fb5318db0fafb3e74e1869  gcc/testsuite/ada/acats-3/tests/c4/c46051c.ada
! 207b83887faae118af7863a8e7c8b797  gcc/testsuite/ada/acats-3/tests/c4/c46052a.ada
! 36ddef6a40e98fa6f687083359dcc79c  gcc/testsuite/ada/acats-3/tests/c4/c46053a.ada
! 7c918ea610224feb8290e7538e4931c0  gcc/testsuite/ada/acats-3/tests/c4/c46054a.ada
! dcaaa25c241dbab83f2031ac8a166ad0  gcc/testsuite/ada/acats-3/tests/c4/c460a01.a
! c9d756313dbe8edba8cd79f261be675b  gcc/testsuite/ada/acats-3/tests/c4/c460a02.a
! 8453f66003fadf1256272c8267ac59fe  gcc/testsuite/ada/acats-3/tests/c4/c47002a.ada
! a1a15e98aa414e9e0f6c684cc5fc7d3d  gcc/testsuite/ada/acats-3/tests/c4/c47002b.ada
! 52b6ce3f1ece2252097d9cf94ff704d8  gcc/testsuite/ada/acats-3/tests/c4/c47002c.ada
! 1b3f120455d714443fa2b8a6510141b3  gcc/testsuite/ada/acats-3/tests/c4/c47002d.ada
! e24d41d29f205af082effc4960aabff2  gcc/testsuite/ada/acats-3/tests/c4/c47003a.ada
! 676bb791325a2ce2931c822d1ba079e8  gcc/testsuite/ada/acats-3/tests/c4/c47004a.ada
! 5768cda2bc4788bb66c01ffbbe818333  gcc/testsuite/ada/acats-3/tests/c4/c47005a.ada
! 7180522de8601bc47eada08923197c21  gcc/testsuite/ada/acats-3/tests/c4/c47006a.ada
! 0866501ce0f4c5ac19a1a6701494acf1  gcc/testsuite/ada/acats-3/tests/c4/c47007a.ada
! f190b1e58c5b9f88edb7c62cc786a5ff  gcc/testsuite/ada/acats-3/tests/c4/c47008a.ada
! a83ffa688fac3d8d28808297d6c1f8af  gcc/testsuite/ada/acats-3/tests/c4/c47009a.ada
! 7e410443d7fee4c5025000324c9fa075  gcc/testsuite/ada/acats-3/tests/c4/c47009b.ada
! dce2f96009d9046b47877ee487e3b5da  gcc/testsuite/ada/acats-3/tests/c4/c480001.a
! bc1787b8c3d0a2828cd39079641a7ae3  gcc/testsuite/ada/acats-3/tests/c4/c48004a.ada
! 35a79d509102b6efc374a823e03081dd  gcc/testsuite/ada/acats-3/tests/c4/c48004b.ada
! 520b577b8b19f3e983fa89ee6a4feae4  gcc/testsuite/ada/acats-3/tests/c4/c48004c.ada
! 4a4dc141e6c0b8734f2f4889a453c041  gcc/testsuite/ada/acats-3/tests/c4/c48004d.ada
! e1de901127f9fa068bbc1887e40ae286  gcc/testsuite/ada/acats-3/tests/c4/c48004e.ada
! a21a603107226dd95249e796c50b2988  gcc/testsuite/ada/acats-3/tests/c4/c48004f.ada
! d05127b0bccfaca8e70b371616b9e949  gcc/testsuite/ada/acats-3/tests/c4/c48005a.ada
! 93f4d6e87a4f9f685f9aad61502c858c  gcc/testsuite/ada/acats-3/tests/c4/c48005b.ada
! 794d0af908f9931f0b089116f1e42907  gcc/testsuite/ada/acats-3/tests/c4/c48006a.ada
! 3df923c9af6683c1bb48881ddb41ddfb  gcc/testsuite/ada/acats-3/tests/c4/c48006b.ada
! a6c0f722acc9486a7e600dc96ff2d5cd  gcc/testsuite/ada/acats-3/tests/c4/c48007a.ada
! b2751238701befe768d059585cb34fbe  gcc/testsuite/ada/acats-3/tests/c4/c48007b.ada
! a069ec763e24859fbddc4f107e410c11  gcc/testsuite/ada/acats-3/tests/c4/c48007c.ada
! 009ebc3b69f9c31aa88c54a85271399a  gcc/testsuite/ada/acats-3/tests/c4/c48008a.ada
! 5782d3eeb5e00949ec2f3c7a7ae59650  gcc/testsuite/ada/acats-3/tests/c4/c48008c.ada
! 36b2b00fc2eaa55063b74bfc4cb91c79  gcc/testsuite/ada/acats-3/tests/c4/c48009a.ada
! d7356de4b25053ff97c5d99c7daa90a2  gcc/testsuite/ada/acats-3/tests/c4/c48009b.ada
! 46e9f0e1b269b6b499944395221ae145  gcc/testsuite/ada/acats-3/tests/c4/c48009c.ada
! 99e82e54208e5f2e641da892789ade00  gcc/testsuite/ada/acats-3/tests/c4/c48009d.ada
! a4dd405fd63b81dac153b62e7df858e9  gcc/testsuite/ada/acats-3/tests/c4/c48009e.ada
! a761ea12752cc1827d795f510ed14854  gcc/testsuite/ada/acats-3/tests/c4/c48009f.ada
! f4d13322456cdc5177a9641ba263e997  gcc/testsuite/ada/acats-3/tests/c4/c48009g.ada
! 9b3d09b25afb28f96e9c15abc9134ea5  gcc/testsuite/ada/acats-3/tests/c4/c48009h.ada
! 5ed239b238e9da030fa1d1bbf81e4dc3  gcc/testsuite/ada/acats-3/tests/c4/c48009i.ada
! dbe1181c1fb1c91cdfc5d5a51327b289  gcc/testsuite/ada/acats-3/tests/c4/c48009j.ada
! 688a1e8190cac3b78936f0235d3b808d  gcc/testsuite/ada/acats-3/tests/c4/c48010a.ada
! 48a6ec9afe098c7d148a0d1f652be09e  gcc/testsuite/ada/acats-3/tests/c4/c48011a.ada
! 18db6e638dc720b6501696a26aa99e58  gcc/testsuite/ada/acats-3/tests/c4/c48012a.ada
! b30035b53424a29691b261dda34fc58e  gcc/testsuite/ada/acats-3/tests/c4/c490001.a
! 489ea02e3356b5145fb51c63bb474ea5  gcc/testsuite/ada/acats-3/tests/c4/c490002.a
! c9523cc2889cfcde83e23c042eedd694  gcc/testsuite/ada/acats-3/tests/c4/c490003.a
! 6f98fb5a40e92d1a16d6c2a144d613a5  gcc/testsuite/ada/acats-3/tests/c4/c49020a.ada
! 949b858aea6369cc5f6b92e57a36762e  gcc/testsuite/ada/acats-3/tests/c4/c49021a.ada
! 61eb9a59008479c0875739f8a38a6058  gcc/testsuite/ada/acats-3/tests/c4/c49022a.ada
! 371d9a00cb41f67a40d255081149947a  gcc/testsuite/ada/acats-3/tests/c4/c49022b.ada
! 6cbf71a7cecd0227501309baf6e99545  gcc/testsuite/ada/acats-3/tests/c4/c49022c.ada
! ae09e5339a3f4903f8fa5d11de07d714  gcc/testsuite/ada/acats-3/tests/c4/c49023a.ada
! e2d3c0d182fcc8306bf82e940cacf1c0  gcc/testsuite/ada/acats-3/tests/c4/c49024a.ada
! fa1107ef6dfef6a91126632e0fd40ac9  gcc/testsuite/ada/acats-3/tests/c4/c49025a.ada
! 8308838bc1d5d9801f0aba7872873b2e  gcc/testsuite/ada/acats-3/tests/c4/c49026a.ada
! 67dd3195321fffe06e278c7a2dd46fb7  gcc/testsuite/ada/acats-3/tests/c4/c4a005b.ada
! b4f6152a06508643187aed55fe1b066d  gcc/testsuite/ada/acats-3/tests/c4/c4a006a.ada
! 5eddb402835a4195abec99f2970765f6  gcc/testsuite/ada/acats-3/tests/c4/c4a007a.tst
! 1c61fe192df4f7bf89c81bd93f979629  gcc/testsuite/ada/acats-3/tests/c4/c4a010a.ada
! db5b09d1af5f03cbfc83813c6cef98d9  gcc/testsuite/ada/acats-3/tests/c4/c4a010b.ada
! 8ea93dd812f5645ad034052c5e9c14bc  gcc/testsuite/ada/acats-3/tests/c4/c4a011a.ada
! d8a1f20f1b4a1339f232102f757a12c6  gcc/testsuite/ada/acats-3/tests/c4/c4a012b.ada
! df1956d8e1bdb8b421d8edda86514e73  gcc/testsuite/ada/acats-3/tests/c4/c4a013a.ada
! f95cf7fe1c6669b86824c685ca90c44f  gcc/testsuite/ada/acats-3/tests/c4/c4a014a.ada
! 04305b71fc4860700405904b070a802b  gcc/testsuite/ada/acats-3/tests/c5/c51004a.ada
! c6f0f59f33111f1bb049c5f25022c725  gcc/testsuite/ada/acats-3/tests/c5/c52005a.ada
! 4497fa9cc187eebee09f422eb12067f6  gcc/testsuite/ada/acats-3/tests/c5/c52005b.ada
! 31714495e63b10120b8239b0456549ee  gcc/testsuite/ada/acats-3/tests/c5/c52005c.ada
! c643f87a63f83ab7dedfa0b4647174c9  gcc/testsuite/ada/acats-3/tests/c5/c52005d.ada
! a717ed0d0e4578d9b1ba1e84a1312d88  gcc/testsuite/ada/acats-3/tests/c5/c52005e.ada
! e9e335b018c1995e8f516236efc80a20  gcc/testsuite/ada/acats-3/tests/c5/c52005f.ada
! c475aae75de9114facd3aaa775556697  gcc/testsuite/ada/acats-3/tests/c5/c52008a.ada
! 87cbbe1931b5cfdb29756f338e098ee1  gcc/testsuite/ada/acats-3/tests/c5/c52008b.ada
! 67bb5622435b51d6b7a862890b654771  gcc/testsuite/ada/acats-3/tests/c5/c52009a.ada
! 400c804c17dce5b2cbc92e00f53bdbf7  gcc/testsuite/ada/acats-3/tests/c5/c52009b.ada
! d656f6cd000039c412836d5baacbff52  gcc/testsuite/ada/acats-3/tests/c5/c52010a.ada
! 1f26091c9bf683f6970689d5d0980a81  gcc/testsuite/ada/acats-3/tests/c5/c52011a.ada
! bd17088998a5ebb4a8a3f1ae8ed0fb56  gcc/testsuite/ada/acats-3/tests/c5/c52011b.ada
! 4b2866ec2ef631d8e633f08a7aaf873c  gcc/testsuite/ada/acats-3/tests/c5/c52101a.ada
! d79452ecad6774f7462778af7f7ce5eb  gcc/testsuite/ada/acats-3/tests/c5/c52102a.ada
! c3ffbc3a8172219b7b11be58eb4ee73d  gcc/testsuite/ada/acats-3/tests/c5/c52102b.ada
! d8b031579b48e0bae598c821fc7f2799  gcc/testsuite/ada/acats-3/tests/c5/c52102c.ada
! 8545078e881db7a6a84e41583799ee5d  gcc/testsuite/ada/acats-3/tests/c5/c52102d.ada
! 348fad1e9e6e04b677fd7d942e3416af  gcc/testsuite/ada/acats-3/tests/c5/c52103a.ada
! 537e555773a4e758b8466c079c2023a1  gcc/testsuite/ada/acats-3/tests/c5/c52103b.ada
! c118c8520f99ad57e36a1e1ed0ab2549  gcc/testsuite/ada/acats-3/tests/c5/c52103c.ada
! 161ca114e3549ca32b6abc801f74633d  gcc/testsuite/ada/acats-3/tests/c5/c52103f.ada
! 553aa64efc629783fc32ef6b352ae6be  gcc/testsuite/ada/acats-3/tests/c5/c52103g.ada
! 29498cb969386c5b69bd6ba62c7be406  gcc/testsuite/ada/acats-3/tests/c5/c52103h.ada
! 8026673b1e67673c009f39e569ae1a3e  gcc/testsuite/ada/acats-3/tests/c5/c52103k.ada
! c6b31cf4833909c9d4dae839511863ec  gcc/testsuite/ada/acats-3/tests/c5/c52103l.ada
! 6843840acb3dee1ae11cf9365156daaa  gcc/testsuite/ada/acats-3/tests/c5/c52103m.ada
! 70a2f3db7206a779a035e915788f37f0  gcc/testsuite/ada/acats-3/tests/c5/c52103p.ada
! a28a2bdec6b574435427b9aeb1c74945  gcc/testsuite/ada/acats-3/tests/c5/c52103q.ada
! 7b9ecdaf00c3655bb24701195d08a83f  gcc/testsuite/ada/acats-3/tests/c5/c52103r.ada
! 0c814953f2bf8472a62eb44838f04363  gcc/testsuite/ada/acats-3/tests/c5/c52103x.ada
! e772fcfb1386e00244d4b143524cc196  gcc/testsuite/ada/acats-3/tests/c5/c52104a.ada
! 16ef5ba633cf0703eef0f4bc4e6a931e  gcc/testsuite/ada/acats-3/tests/c5/c52104b.ada
! 0d83ec342af202df515bd811d311775e  gcc/testsuite/ada/acats-3/tests/c5/c52104c.ada
! 63ba1297346e75dcba0a5bebb9fd7feb  gcc/testsuite/ada/acats-3/tests/c5/c52104f.ada
! 360c84a7d7a20d6426f39f47175e9e61  gcc/testsuite/ada/acats-3/tests/c5/c52104g.ada
! 8c2507e3ca68c72c1b2e6d6e118ec32b  gcc/testsuite/ada/acats-3/tests/c5/c52104h.ada
! 3eb7315199feb380e4633e0fa784d0dc  gcc/testsuite/ada/acats-3/tests/c5/c52104k.ada
! 1e9c8d887474d4edd8e8cef2ca34972f  gcc/testsuite/ada/acats-3/tests/c5/c52104l.ada
! 4cd7ce90121345b41e548625afd89238  gcc/testsuite/ada/acats-3/tests/c5/c52104m.ada
! bb14b1ee179559762fe853803c6f47a0  gcc/testsuite/ada/acats-3/tests/c5/c52104p.ada
! 11c63d2f8a8f5be641d543c723d95db6  gcc/testsuite/ada/acats-3/tests/c5/c52104q.ada
! 3e89a5e299b2f10a8bfdddda7e51ad94  gcc/testsuite/ada/acats-3/tests/c5/c52104r.ada
! cf3c9c7c07a47d92020285624997c09f  gcc/testsuite/ada/acats-3/tests/c5/c52104x.ada
! c937dcfea0e38e6a3b8af09de0efaf04  gcc/testsuite/ada/acats-3/tests/c5/c52104y.ada
! b2aa45debad3d8e7603216de3bca00fb  gcc/testsuite/ada/acats-3/tests/c5/c53007a.ada
! ff458115437146bc66c6f7135942dc7d  gcc/testsuite/ada/acats-3/tests/c5/c540001.a
! bfd64dd4867f66c56eb6d466f8a84af9  gcc/testsuite/ada/acats-3/tests/c5/c540002.a
! 798fc3cdc6929204af5e109c7b552b96  gcc/testsuite/ada/acats-3/tests/c5/c54a03a.ada
! 350e6e9e9f439b08c9984e18a29b6144  gcc/testsuite/ada/acats-3/tests/c5/c54a04a.ada
! 672e5fee1b44c051e35bd39f7cfdd7f6  gcc/testsuite/ada/acats-3/tests/c5/c54a07a.ada
! 55636ae11b1e87d2920da673ac54f8cf  gcc/testsuite/ada/acats-3/tests/c5/c54a13a.ada
! fadaa20972179cfa78055a5255aaf701  gcc/testsuite/ada/acats-3/tests/c5/c54a13b.ada
! 1f2ca9fde851497809ddf860f08ea8dd  gcc/testsuite/ada/acats-3/tests/c5/c54a13c.ada
! f02b8333b09eadfe396595d861e0c28e  gcc/testsuite/ada/acats-3/tests/c5/c54a13d.ada
! 37f2526490642267865f8a817c455655  gcc/testsuite/ada/acats-3/tests/c5/c54a22a.ada
! c4b7807f9faa1bb76d79507d98a0feb3  gcc/testsuite/ada/acats-3/tests/c5/c54a23a.ada
! 45d1b598e30b318d11d3cfa6a37cc6fa  gcc/testsuite/ada/acats-3/tests/c5/c54a24a.ada
! adeadf039e14eb8bc2b48ff5572bd812  gcc/testsuite/ada/acats-3/tests/c5/c54a24b.ada
! 7cf7b4d54a6bca23e102d02570e8d836  gcc/testsuite/ada/acats-3/tests/c5/c54a42a.ada
! 200024964c0cd6807dda9226ae982125  gcc/testsuite/ada/acats-3/tests/c5/c54a42b.ada
! b58d58ea8c08f008f3bb0a1f4e37600d  gcc/testsuite/ada/acats-3/tests/c5/c54a42c.ada
! 7afca27633e115e11ccc09450181d955  gcc/testsuite/ada/acats-3/tests/c5/c54a42d.ada
! 810d89d05b84beb31789b0ebd7aba86d  gcc/testsuite/ada/acats-3/tests/c5/c54a42e.ada
! 012f75628d8e37cbd1be10f8f4ba117f  gcc/testsuite/ada/acats-3/tests/c5/c54a42f.ada
! d45cbd6907b0f421c6aec9b981f052d6  gcc/testsuite/ada/acats-3/tests/c5/c54a42g.ada
! ef97a2623a512e16e0fda04f277b6ff2  gcc/testsuite/ada/acats-3/tests/c5/c55b03a.ada
! ad40c92edd66b18fad76286ec1b9c6ae  gcc/testsuite/ada/acats-3/tests/c5/c55b04a.ada
! aa1f7abf4fbb36f5120549a0305b7862  gcc/testsuite/ada/acats-3/tests/c5/c55b05a.ada
! 93af4cbae77af58c9e4c76145e3381b0  gcc/testsuite/ada/acats-3/tests/c5/c55b06a.ada
! 83fb65a1faa9605647ad3455e55fa273  gcc/testsuite/ada/acats-3/tests/c5/c55b06b.ada
! 1c3a3e590230416971b33336bec05137  gcc/testsuite/ada/acats-3/tests/c5/c55b07a.dep
! 297ac06b1460ecfad84e5ce426b452d5  gcc/testsuite/ada/acats-3/tests/c5/c55b07b.dep
! 9f79657a1fb3ec7ad658a79647c5949c  gcc/testsuite/ada/acats-3/tests/c5/c55b10a.ada
! 1364f5750f4c9a8395cf0b1ae42eee0b  gcc/testsuite/ada/acats-3/tests/c5/c55b11a.ada
! 20c657742ad353aedf983932ae3ad058  gcc/testsuite/ada/acats-3/tests/c5/c55b11b.ada
! dcbc66de120373907bc61655da9f5f72  gcc/testsuite/ada/acats-3/tests/c5/c55b15a.ada
! 46488465caae85e036ca25f7a3861ddb  gcc/testsuite/ada/acats-3/tests/c5/c55b16a.ada
! 59a61b3784b5cede84a98e874e989bf9  gcc/testsuite/ada/acats-3/tests/c5/c55c02a.ada
! a665c1df7fabf7499dd2fef8021e5735  gcc/testsuite/ada/acats-3/tests/c5/c55c02b.ada
! 9722acc7b86adb50f2132a53c9a9ba5f  gcc/testsuite/ada/acats-3/tests/c5/c56002a.ada
! 0d40a16731d63ec204e884f94b191598  gcc/testsuite/ada/acats-3/tests/c5/c57003a.ada
! 7bceaaa459e0581dd43947812fb6e226  gcc/testsuite/ada/acats-3/tests/c5/c57004a.ada
! 30ed2943b27da30ba5be8602f46f6e65  gcc/testsuite/ada/acats-3/tests/c5/c57004b.ada
! 8a811d9acc70a272fa09cbfe47fdbbc0  gcc/testsuite/ada/acats-3/tests/c5/c58004c.ada
! 17e55b043903edcc29571ab8bd8aa78c  gcc/testsuite/ada/acats-3/tests/c5/c58004d.ada
! 7807a279489151c0c870e2d8f12f4502  gcc/testsuite/ada/acats-3/tests/c5/c58004g.ada
! 1b5dcc2941f69ee8c74a24728bb90d67  gcc/testsuite/ada/acats-3/tests/c5/c58005a.ada
! 62354e1ba2b765af08aa33a5e09c47df  gcc/testsuite/ada/acats-3/tests/c5/c58005b.ada
! 9028a4a38fba5ee0a721a8918c7e46c8  gcc/testsuite/ada/acats-3/tests/c5/c58005h.ada
! fa480782be6698aa97970fcf14c2f19b  gcc/testsuite/ada/acats-3/tests/c5/c58006a.ada
! 156c239407b9c9b5abfd28b286d35734  gcc/testsuite/ada/acats-3/tests/c5/c58006b.ada
! 05e86bfca592c5c4d28a7ad45f8d8054  gcc/testsuite/ada/acats-3/tests/c5/c59002a.ada
! 70857f43256c7a44ec4b50f5aa1b4b0d  gcc/testsuite/ada/acats-3/tests/c5/c59002b.ada
! 8a43db8aaa6ff159f8de6d91d075a607  gcc/testsuite/ada/acats-3/tests/c5/c59002c.ada
! 22c213bb3f4fac53cfad7701e5a6591a  gcc/testsuite/ada/acats-3/tests/c6/c61008a.ada
! 5fb3b13780dfa407dfa99fcfa590913f  gcc/testsuite/ada/acats-3/tests/c6/c61009a.ada
! 25cf5d0e53424f3054a20393c002970e  gcc/testsuite/ada/acats-3/tests/c6/c61010a.ada
! fc4b87310c6618ffbf7d4df1f222a45f  gcc/testsuite/ada/acats-3/tests/c6/c620001.a
! 2a393ff1326482d8490f5be202d8483c  gcc/testsuite/ada/acats-3/tests/c6/c620002.a
! 97d97866837d419b1ddcfa6ccda2511e  gcc/testsuite/ada/acats-3/tests/c6/c62002a.ada
! 29777c913c6649484125c1aa56f0093f  gcc/testsuite/ada/acats-3/tests/c6/c62003a.ada
! 3e2cc6ba1c79eb1d9f3fe3bbb646cf6b  gcc/testsuite/ada/acats-3/tests/c6/c62003b.ada
! 624bc88129c0b954774c60019f5435c5  gcc/testsuite/ada/acats-3/tests/c6/c62004a.ada
! 31c5b507af85354e0db53a078e7c8933  gcc/testsuite/ada/acats-3/tests/c6/c62006a.ada
! e8a1274fb71dcf0b27d5375c78e8d1d3  gcc/testsuite/ada/acats-3/tests/c6/c631001.a
! 41a6d9efe5d22a0f96b7c4448831b133  gcc/testsuite/ada/acats-3/tests/c6/c640001.a
! 17e197839a109a15bfb4d3592d5bdff8  gcc/testsuite/ada/acats-3/tests/c6/c640002.a
! 67136569bb3a58c14f65e3abd9b96391  gcc/testsuite/ada/acats-3/tests/c6/c64002b.ada
! 298c0d717f1da2c324c78b6aafedfa91  gcc/testsuite/ada/acats-3/tests/c6/c64004g.ada
! 0a5ebe2531dcbec11f3d606df5534e5b  gcc/testsuite/ada/acats-3/tests/c6/c64005a.ada
! 1a7b4a32917f31d77deb5ad294e39f82  gcc/testsuite/ada/acats-3/tests/c6/c64005b.ada
! 292b4b0e6cf19da205f4d3a1caeee992  gcc/testsuite/ada/acats-3/tests/c6/c64005c.ada
! db80e980a183a6d0f7c9afd52fae0c87  gcc/testsuite/ada/acats-3/tests/c6/c64005d0.ada
! f480e72d2a8b3a22347018687fb9f190  gcc/testsuite/ada/acats-3/tests/c6/c64005da.ada
! 035da89aedf781e8b07eace791889088  gcc/testsuite/ada/acats-3/tests/c6/c64005db.ada
! 9af982279e39e967d04656170afef341  gcc/testsuite/ada/acats-3/tests/c6/c64005dc.ada
! 2f3c835897b61c5b02af1bef11a949d6  gcc/testsuite/ada/acats-3/tests/c6/c641001.a
! f9894df16dafde8c37b5681a9a0b728f  gcc/testsuite/ada/acats-3/tests/c6/c64103b.ada
! 573a659bd2d30c3c8a3ee7f77390490c  gcc/testsuite/ada/acats-3/tests/c6/c64103c.ada
! e7242de3cddb62031ef1910e911942df  gcc/testsuite/ada/acats-3/tests/c6/c64103d.ada
! 6e2e6c719dcbb601e033a3a1528b6db5  gcc/testsuite/ada/acats-3/tests/c6/c64103e.ada
! aa17757d55d04a8ef672505933d46680  gcc/testsuite/ada/acats-3/tests/c6/c64103f.ada
! bbb85cc245f09eba3db627d88d52db68  gcc/testsuite/ada/acats-3/tests/c6/c64104a.ada
! d3f37083469fc62f2aeae2c00e979ad9  gcc/testsuite/ada/acats-3/tests/c6/c64104b.ada
! 00b5b6264d3df93a1481ca7dd0313957  gcc/testsuite/ada/acats-3/tests/c6/c64104c.ada
! 0d80f34c16a2ae02db45210c6b66eaa8  gcc/testsuite/ada/acats-3/tests/c6/c64104d.ada
! 5dc873b400a6675c734e431ac91f74db  gcc/testsuite/ada/acats-3/tests/c6/c64104e.ada
! 54921e31e5a30e388946a946c10c8954  gcc/testsuite/ada/acats-3/tests/c6/c64104f.ada
! b763fdc647a8b6c2e8ccdcc7b2e1556c  gcc/testsuite/ada/acats-3/tests/c6/c64104g.ada
! 0a7c01deaae4401d7fe1f7f78e4e6325  gcc/testsuite/ada/acats-3/tests/c6/c64104h.ada
! 39b3c50eb36b7e11b1d9e78a7b3f9132  gcc/testsuite/ada/acats-3/tests/c6/c64104i.ada
! a30f87a67e828d3791f26521921a8f81  gcc/testsuite/ada/acats-3/tests/c6/c64104j.ada
! 8906347f1c0f027d889a06f25fcc1831  gcc/testsuite/ada/acats-3/tests/c6/c64104k.ada
! 4cb01879b0f85af48c5474c558534e54  gcc/testsuite/ada/acats-3/tests/c6/c64104l.ada
! cd1d978bf7503e964f5c0293089096c1  gcc/testsuite/ada/acats-3/tests/c6/c64104m.ada
! 62990064fd13a84570c91f3d1f71338f  gcc/testsuite/ada/acats-3/tests/c6/c64104n.ada
! ff64768b090411d3f8232b7dc479db5f  gcc/testsuite/ada/acats-3/tests/c6/c64104o.ada
! c371cb358b8e763068dd4af101cd7f51  gcc/testsuite/ada/acats-3/tests/c6/c64105a.ada
! f1cfabbe7fa319f7a90669a5a1d88874  gcc/testsuite/ada/acats-3/tests/c6/c64105b.ada
! 484938df1d2ea23b4699185521d927ae  gcc/testsuite/ada/acats-3/tests/c6/c64105c.ada
! 98ba505c37a1fa4544aa7a16f86476d8  gcc/testsuite/ada/acats-3/tests/c6/c64105d.ada
! 7f5ef4e4117e3403c814c8b2d6248652  gcc/testsuite/ada/acats-3/tests/c6/c64106a.ada
! c719851b2aa8d7de278a61b4ae401e7f  gcc/testsuite/ada/acats-3/tests/c6/c64106b.ada
! 99b026e3c033b0bc70bbb34952c61a90  gcc/testsuite/ada/acats-3/tests/c6/c64106c.ada
! 1ff08389beb50526e6d5946f3ddfa0d2  gcc/testsuite/ada/acats-3/tests/c6/c64106d.ada
! 19103ed02e019b6f2490bd4285878194  gcc/testsuite/ada/acats-3/tests/c6/c64107a.ada
! 93d945e280814e3db9cdaa9a9be57e87  gcc/testsuite/ada/acats-3/tests/c6/c64108a.ada
! 39bf7a6fa5bcfb5ee8e52f5f07fafefc  gcc/testsuite/ada/acats-3/tests/c6/c64109a.ada
! 7a1023fda1950978c62798e5caff709c  gcc/testsuite/ada/acats-3/tests/c6/c64109b.ada
! 276b67fe008e97a4988487fc615e1f3c  gcc/testsuite/ada/acats-3/tests/c6/c64109c.ada
! 80192570a6b338162a9ef9bfc13a4dff  gcc/testsuite/ada/acats-3/tests/c6/c64109d.ada
! 4719b8ddae4538b59e04d96c932a95d9  gcc/testsuite/ada/acats-3/tests/c6/c64109e.ada
! ed4b4f3ef743bc7f8f4a6afe5886cae2  gcc/testsuite/ada/acats-3/tests/c6/c64109f.ada
! 8f7ab91cec27ffbad7b51252ef99b137  gcc/testsuite/ada/acats-3/tests/c6/c64109g.ada
! 2bb8cec80fd6bc3ed2495c9581ea2a9e  gcc/testsuite/ada/acats-3/tests/c6/c64109h.ada
! 495be9b835fa97670e1a579d72a3f96d  gcc/testsuite/ada/acats-3/tests/c6/c64109i.ada
! 547c93bc4be631648c9973120c282a89  gcc/testsuite/ada/acats-3/tests/c6/c64109j.ada
! 4da6b83416827b9d2d574334772ff2a3  gcc/testsuite/ada/acats-3/tests/c6/c64109k.ada
! 6217fe2218b5d9ecf085e1b730917030  gcc/testsuite/ada/acats-3/tests/c6/c64109l.ada
! dde2e62be923a3854e5f1667c4a78def  gcc/testsuite/ada/acats-3/tests/c6/c64201b.ada
! c3459cee62caf16a8d14f820e16c4f60  gcc/testsuite/ada/acats-3/tests/c6/c64201c.ada
! e589f5c8d3bb97575b245a37a5f2dffa  gcc/testsuite/ada/acats-3/tests/c6/c64202a.ada
! 249c4ba928b3c2a034f8beb44bc9dc87  gcc/testsuite/ada/acats-3/tests/c6/c650002.a
! 1daba8b521ac51502253586af8575c04  gcc/testsuite/ada/acats-3/tests/c6/c650003.a
! 25c48d1366d3ac13453832dcee471f3f  gcc/testsuite/ada/acats-3/tests/c6/c65003a.ada
! beca3ad5c25f888eed6dc6b1db750e33  gcc/testsuite/ada/acats-3/tests/c6/c65003b.ada
! 3d99b1b94c81e0ceb7c56da5b41ffa66  gcc/testsuite/ada/acats-3/tests/c6/c650a01.a
! eceb334eefb06549070d0660d7e209a2  gcc/testsuite/ada/acats-3/tests/c6/c651001.a
! f9c43a72052149152ab5e663d5bf62ee  gcc/testsuite/ada/acats-3/tests/c6/c660001.a
! 4eca86193e279acda5aa647dab2bf5bf  gcc/testsuite/ada/acats-3/tests/c6/c66002a.ada
! 7cbfd161ceac490eb379a5c08eb1945c  gcc/testsuite/ada/acats-3/tests/c6/c66002c.ada
! 482c9214fae39fbcab58fcbae0b5b5ef  gcc/testsuite/ada/acats-3/tests/c6/c66002d.ada
! 7a93f84ee40f38fca4afb6cfd5e69a57  gcc/testsuite/ada/acats-3/tests/c6/c66002e.ada
! 2b60fab145676d717df13cdf9c7a70cb  gcc/testsuite/ada/acats-3/tests/c6/c66002f.ada
! ea770ca1e9d9fcb8b4460d5921747ef5  gcc/testsuite/ada/acats-3/tests/c6/c66002g.ada
! 8470fdb16485b4472bee0602f1f98734  gcc/testsuite/ada/acats-3/tests/c6/c67002a.ada
! 0e2fbb4deae7d888206b0ce77fc4fda5  gcc/testsuite/ada/acats-3/tests/c6/c67002b.ada
! 308d5f91802e93205222e8ca1f7def1e  gcc/testsuite/ada/acats-3/tests/c6/c67002c.ada
! 84e0adc30ed2874abaffa33f713cc51b  gcc/testsuite/ada/acats-3/tests/c6/c67002d.ada
! ddfdc630c5edd58e367ed9b034c039e7  gcc/testsuite/ada/acats-3/tests/c6/c67002e.ada
! 49b95c1cbdb6c703d2eba605f6f06c92  gcc/testsuite/ada/acats-3/tests/c6/c67003f.ada
! 213a9e52b5357a07997f1aa43ec82624  gcc/testsuite/ada/acats-3/tests/c6/c67005a.ada
! ddd7cdd9502a723b17b40bcb1df0e016  gcc/testsuite/ada/acats-3/tests/c6/c67005b.ada
! 20a99f6c582810cf18b39ab642f4024f  gcc/testsuite/ada/acats-3/tests/c6/c67005c.ada
! 8ea8c4445f5e72cc88e8dad14b66084e  gcc/testsuite/ada/acats-3/tests/c6/c67005d.ada
! 69f93d5f57d1b7956ae380ff9f3e5f77  gcc/testsuite/ada/acats-3/tests/c7/c72001b.ada
! b6fa12bd9fd0f617b4eeded7550722c2  gcc/testsuite/ada/acats-3/tests/c7/c72002a.ada
! c70f104ca78b3298a442973676af108a  gcc/testsuite/ada/acats-3/tests/c7/c730001.a
! 7d2edfee282ba04ca7f25bef0f101057  gcc/testsuite/ada/acats-3/tests/c7/c730002.a
! 7822b69c5c1de14250eaad43da14736b  gcc/testsuite/ada/acats-3/tests/c7/c730003.a
! ced40d2c1dbfd9c72c43feedd4c9cefc  gcc/testsuite/ada/acats-3/tests/c7/c730004.a
! d3f7b50b0820bac4ce78abffb5e37744  gcc/testsuite/ada/acats-3/tests/c7/c73002a.ada
! c70763cb0718b44fa8658ee9ebb8c726  gcc/testsuite/ada/acats-3/tests/c7/c730a01.a
! 4ecce7babf24585f115e0d288f17e449  gcc/testsuite/ada/acats-3/tests/c7/c730a02.a
! 9c311ffdc62d1b99a3452b1e38d15e2e  gcc/testsuite/ada/acats-3/tests/c7/c731001.a
! be09078047844bd86eef86d5755ef273  gcc/testsuite/ada/acats-3/tests/c7/c74004a.ada
! a0a0a05e6225a07b7bd0f2c049f1dc37  gcc/testsuite/ada/acats-3/tests/c7/c74203a.ada
! a718857277037741ea3600c1aab95a3d  gcc/testsuite/ada/acats-3/tests/c7/c74206a.ada
! 0efca36cdb74fc57aec9e1de78e0324f  gcc/testsuite/ada/acats-3/tests/c7/c74207b.ada
! 7ceb0d1778d1a1bae9687bebd7aad9e3  gcc/testsuite/ada/acats-3/tests/c7/c74208a.ada
! bf7859fde348fa96735368f14e0a3e25  gcc/testsuite/ada/acats-3/tests/c7/c74208b.ada
! 7d504e824db220a636160024b4e963d6  gcc/testsuite/ada/acats-3/tests/c7/c74209a.ada
! 3f31b8eb73e78f20cdcf118aa7d0047c  gcc/testsuite/ada/acats-3/tests/c7/c74210a.ada
! 442ab4135e3f1fdfffacf000f7b4bda3  gcc/testsuite/ada/acats-3/tests/c7/c74211a.ada
! 49650c69957d01ffb396db79a35589c4  gcc/testsuite/ada/acats-3/tests/c7/c74211b.ada
! 30155693ce7b3f29189da859d313eb7d  gcc/testsuite/ada/acats-3/tests/c7/c74302a.ada
! 73469fa8506968a2026de265efd8a8f5  gcc/testsuite/ada/acats-3/tests/c7/c74302b.ada
! b559e9bf4e98700fb810e406c30a34b7  gcc/testsuite/ada/acats-3/tests/c7/c74305a.ada
! f1b9307b4d428cf0d10bc48805ffb0f3  gcc/testsuite/ada/acats-3/tests/c7/c74305b.ada
! 4d9094e9183691ac1e749b6abac166d7  gcc/testsuite/ada/acats-3/tests/c7/c74306a.ada
! d62a4df3fab829d5694cbf9f5cc4cb8e  gcc/testsuite/ada/acats-3/tests/c7/c74307a.ada
! 933ca49dcfb9ad8fc25ea9a434984d05  gcc/testsuite/ada/acats-3/tests/c7/c74401d.ada
! 502d8871fd7e5d6399f7536874735597  gcc/testsuite/ada/acats-3/tests/c7/c74401e.ada
! 2514504f60fcea97d8914fabcb5654cf  gcc/testsuite/ada/acats-3/tests/c7/c74401k.ada
! 3ca8e77b02dbd7f9e9104dd0fa6de35b  gcc/testsuite/ada/acats-3/tests/c7/c74401q.ada
! d30f33bfdaf9612ea55c7659c3b5aeb6  gcc/testsuite/ada/acats-3/tests/c7/c74402a.ada
! cf79bb4fcbdf7ec1cd795607eef8bc10  gcc/testsuite/ada/acats-3/tests/c7/c74402b.ada
! f6ece8469b7d90aef496ac665f895003  gcc/testsuite/ada/acats-3/tests/c7/c74406a.ada
! cce5e695d18f537ec2a8d6c26cfc5b0d  gcc/testsuite/ada/acats-3/tests/c7/c74407b.ada
! 316be518a848dd0954d80de977e40c5b  gcc/testsuite/ada/acats-3/tests/c7/c74409b.ada
! 78e666497e23ea6be9923b7d66f8d6d0  gcc/testsuite/ada/acats-3/tests/c7/c750b01.a
! c751f318a2fe16dadb0c62221c726b70  gcc/testsuite/ada/acats-3/tests/c7/c760001.a
! f250c0eea5cbe1e05ed28f0a940949ed  gcc/testsuite/ada/acats-3/tests/c7/c760002.a
! c12d4d7698c111ee3a094c0c2d53522a  gcc/testsuite/ada/acats-3/tests/c7/c760007.a
! 767d3e26a992541aa6191923e040a107  gcc/testsuite/ada/acats-3/tests/c7/c760009.a
! 264f06f0190602b655e5f7fefb6822b8  gcc/testsuite/ada/acats-3/tests/c7/c760010.a
! 31eaca7f3a33de78c9eaa1a92109c6ad  gcc/testsuite/ada/acats-3/tests/c7/c760011.a
! 522805071c7c096b6eabcd72cf833d9a  gcc/testsuite/ada/acats-3/tests/c7/c760012.a
! a4f8e8b6876d4b862928b00edca5f5d9  gcc/testsuite/ada/acats-3/tests/c7/c760013.a
! a37ffbe46b838c3dc3e654c0d3ed95a5  gcc/testsuite/ada/acats-3/tests/c7/c760015.a
! 6d1036753e3e9e32f4e5aa75ec3afc72  gcc/testsuite/ada/acats-3/tests/c7/c760a02.a
! 45d67d0e3319e953b892c7d115460ecd  gcc/testsuite/ada/acats-3/tests/c7/c761001.a
! 080dcc3c8d2907579e1673c23433165f  gcc/testsuite/ada/acats-3/tests/c7/c761002.a
! d0ecfbaed2a882166d23beefe5f4e191  gcc/testsuite/ada/acats-3/tests/c7/c761003.a
! 553e4393e53175606097eb8c9b415d22  gcc/testsuite/ada/acats-3/tests/c7/c761004.a
! 4a7c5e1c13695ae75ad3a4df49a55b63  gcc/testsuite/ada/acats-3/tests/c7/c761005.a
! d4f8faae1d5f7970e56d7a30c10a99c7  gcc/testsuite/ada/acats-3/tests/c7/c761006.a
! a8b974a47ec1f7a4a5fc2ef06975f069  gcc/testsuite/ada/acats-3/tests/c7/c761007.a
! 6ca84026fc9a5682d2db1f346eb920cd  gcc/testsuite/ada/acats-3/tests/c7/c761010.a
! 8f26af4ffb9bc7a2e15aee7b1c0c2346  gcc/testsuite/ada/acats-3/tests/c7/c761011.a
! d80406039e2bebf54191eec198c10721  gcc/testsuite/ada/acats-3/tests/c7/c761012.a
! 7eeee1f9268711339cf1323b9bd1841e  gcc/testsuite/ada/acats-3/tests/c7/c761013.a
! f7baee35e01e625d64802c987ddc4c0d  gcc/testsuite/ada/acats-3/tests/c8/c83007a.ada
! 9f1228dfaacf209725a2e8d706128a4c  gcc/testsuite/ada/acats-3/tests/c8/c83012d.ada
! a2e774207100bd5fbb0289bb8ba9f031  gcc/testsuite/ada/acats-3/tests/c8/c83022a.ada
! c214085c4cbff44807225c3aee9be7db  gcc/testsuite/ada/acats-3/tests/c8/c83022g0.ada
! 7aeac4b952eedc1419039fc50c66c732  gcc/testsuite/ada/acats-3/tests/c8/c83022g1.ada
! fedc05f63c2cd512653891054d7d5dad  gcc/testsuite/ada/acats-3/tests/c8/c83023a.ada
! 94cc28ec1a7a9d2aedbab6f2101d2215  gcc/testsuite/ada/acats-3/tests/c8/c83024a.ada
! cd79a99f6b5ce8030462ce917a77a33c  gcc/testsuite/ada/acats-3/tests/c8/c83024e0.ada
! b03af2deceb02b0227f887041379f641  gcc/testsuite/ada/acats-3/tests/c8/c83024e1.ada
! d7544d2786bfc552a30612041df95429  gcc/testsuite/ada/acats-3/tests/c8/c83025a.ada
! 881d6130cfcbd30f4a739889d50396da  gcc/testsuite/ada/acats-3/tests/c8/c83025c.ada
! f35a334aaf4110ea4446247ad6a098f4  gcc/testsuite/ada/acats-3/tests/c8/c83027a.ada
! 37c08965e5d871d3a35ff35f67e713d8  gcc/testsuite/ada/acats-3/tests/c8/c83027c.ada
! 32c440ad7d9ac139bbd4251c4fc10cc4  gcc/testsuite/ada/acats-3/tests/c8/c83028a.ada
! 284725a771243ec2eb877c3bb20240af  gcc/testsuite/ada/acats-3/tests/c8/c83029a.ada
! 0d4d1e41b05e2587d04c09930491aecd  gcc/testsuite/ada/acats-3/tests/c8/c83030a.ada
! 736b92fd2fdec116e1e9a28e04fe105a  gcc/testsuite/ada/acats-3/tests/c8/c83030c.ada
! 8e7b338ab4662f4c219903b9017a3252  gcc/testsuite/ada/acats-3/tests/c8/c83031a.ada
! 8799fc3b7ae4481b9d03ab137000f62e  gcc/testsuite/ada/acats-3/tests/c8/c83031c.ada
! 4c6a471797dc4320ecdae183b931f1e8  gcc/testsuite/ada/acats-3/tests/c8/c83031e.ada
! a6758128580028e639e0a59521425cf0  gcc/testsuite/ada/acats-3/tests/c8/c83032a.ada
! 72628676c750edbd1f98131cb5571a2f  gcc/testsuite/ada/acats-3/tests/c8/c83033a.ada
! 9431427fb4aa9f6e7d3a4375ffaecc6c  gcc/testsuite/ada/acats-3/tests/c8/c83051a.ada
! f2fa97381bbbbba9176ccf7627ee5fd8  gcc/testsuite/ada/acats-3/tests/c8/c83b02a.ada
! 03bdf2b2546804982387b339182818e7  gcc/testsuite/ada/acats-3/tests/c8/c83b02b.ada
! 40875d29e98f8a554f57a2cbba7d7b3e  gcc/testsuite/ada/acats-3/tests/c8/c83e02a.ada
! 14cf40af4f9b58380697256b2d355287  gcc/testsuite/ada/acats-3/tests/c8/c83e02b.ada
! 200ef6a026cfe27a93be29d96cf214b8  gcc/testsuite/ada/acats-3/tests/c8/c83e03a.ada
! ad5525a2d740a4d893fcd637c63649fd  gcc/testsuite/ada/acats-3/tests/c8/c83f01a.ada
! e565198c8053dc81f1f530025b0d226b  gcc/testsuite/ada/acats-3/tests/c8/c83f01b.ada
! 6d7321886000c19fde08f583e57a7e33  gcc/testsuite/ada/acats-3/tests/c8/c83f01c0.ada
! b0f89c8df04b680d3d4603f896b4d648  gcc/testsuite/ada/acats-3/tests/c8/c83f01c1.ada
! faebab8928acaa2b8fbf803db9d9d76e  gcc/testsuite/ada/acats-3/tests/c8/c83f01c2.ada
! 76e6504b3bae53ff3ed9396d5c7812a4  gcc/testsuite/ada/acats-3/tests/c8/c83f01d0.ada
! 64bf8f6ff542539524d925d1e5a9cfe4  gcc/testsuite/ada/acats-3/tests/c8/c83f01d1.ada
! 8a46931f49572809caa7fa3dacf72336  gcc/testsuite/ada/acats-3/tests/c8/c83f03a.ada
! 12f92031807ee7b6703ecca17d07c9ad  gcc/testsuite/ada/acats-3/tests/c8/c83f03b.ada
! 2f7e657595b99ed4902cb3ed7aae770f  gcc/testsuite/ada/acats-3/tests/c8/c83f03c0.ada
! b07043910b1b62a4647fb0958270ab2e  gcc/testsuite/ada/acats-3/tests/c8/c83f03c1.ada
! 2a8ed5812b7eba602e55bc4cba957511  gcc/testsuite/ada/acats-3/tests/c8/c83f03c2.ada
! d29900c193533f0d919bf89d2bc8e119  gcc/testsuite/ada/acats-3/tests/c8/c83f03d0.ada
! a81483935d1a82f02d88010465d1f944  gcc/testsuite/ada/acats-3/tests/c8/c83f03d1.ada
! 29bd80df35d00ef1384ad39409db64f6  gcc/testsuite/ada/acats-3/tests/c8/c840001.a
! af9ade351c5ef6a9d951a20d59988380  gcc/testsuite/ada/acats-3/tests/c8/c84002a.ada
! 66d1e4c5ecfdc60f73f72122f13591ac  gcc/testsuite/ada/acats-3/tests/c8/c84005a.ada
! aa6a6f80ff85e69f2df4df4eede3b31f  gcc/testsuite/ada/acats-3/tests/c8/c84008a.ada
! 09c80b3d29e25029f03088427d21bbcc  gcc/testsuite/ada/acats-3/tests/c8/c84009a.ada
! d7b3488b66a68bdb7c8d505ca3419ac7  gcc/testsuite/ada/acats-3/tests/c8/c85004b.ada
! 3e0403d2aa151370c2f61352a9f76996  gcc/testsuite/ada/acats-3/tests/c8/c85005a.ada
! 37c7fd0ed7d0bc32d740e9c53a118651  gcc/testsuite/ada/acats-3/tests/c8/c85005b.ada
! 1fc662c5706ae3323d79577161aa2b7c  gcc/testsuite/ada/acats-3/tests/c8/c85005c.ada
! c7c4cd7450d2b2ce6c9f804ab189b71e  gcc/testsuite/ada/acats-3/tests/c8/c85005d.ada
! 39a019807c800fea7de5ee674f51f3ac  gcc/testsuite/ada/acats-3/tests/c8/c85005e.ada
! 8d1e127599b478a2675315047b0c481f  gcc/testsuite/ada/acats-3/tests/c8/c85005f.ada
! 25bfcee3ce65c19279f2e6ae6c7dbfba  gcc/testsuite/ada/acats-3/tests/c8/c85005g.ada
! 32fef31a23447e83e62b591ccf214749  gcc/testsuite/ada/acats-3/tests/c8/c85006a.ada
! 52a38ccdb969e742c721e8c6b91f9aee  gcc/testsuite/ada/acats-3/tests/c8/c85006b.ada
! b8b2355c13723ce1e608404a697d37f1  gcc/testsuite/ada/acats-3/tests/c8/c85006c.ada
! f9f754296bb969ded99acf18e0d0cc57  gcc/testsuite/ada/acats-3/tests/c8/c85006d.ada
! 13a5f5c38fb9c62ade83208e0c68d79e  gcc/testsuite/ada/acats-3/tests/c8/c85006e.ada
! 338359196a7f9ec95687b438473fe4b5  gcc/testsuite/ada/acats-3/tests/c8/c85006f.ada
! 2009399861eb5a59e17598709aab1ac2  gcc/testsuite/ada/acats-3/tests/c8/c85006g.ada
! 81de8bcdf2627a437c3e3b841e5fad1d  gcc/testsuite/ada/acats-3/tests/c8/c85007a.ada
! e357cc223f207047a721ac8e8e18f162  gcc/testsuite/ada/acats-3/tests/c8/c85007e.ada
! 418333040a3a7bff04eadeddd0acb110  gcc/testsuite/ada/acats-3/tests/c8/c85009a.ada
! bd6854facde59a298fdff160083dd037  gcc/testsuite/ada/acats-3/tests/c8/c85011a.ada
! 406a5955e9d949bdd8248e3006f85389  gcc/testsuite/ada/acats-3/tests/c8/c85013a.ada
! 847c4a7e1cbd34854fd30fd728898157  gcc/testsuite/ada/acats-3/tests/c8/c85014a.ada
! b69434a64d3c484bdb87a84269e9963f  gcc/testsuite/ada/acats-3/tests/c8/c85014b.ada
! 2f3c5aa4857fe502b1c9c11e032c6935  gcc/testsuite/ada/acats-3/tests/c8/c85014c.ada
! e1660d68b127c37ec14d42ba45a3b445  gcc/testsuite/ada/acats-3/tests/c8/c85017a.ada
! 1cad26f34f7ad9a5f58bf9e88765aca9  gcc/testsuite/ada/acats-3/tests/c8/c85018a.ada
! 9c45b00830d440af2ac60b55d681400a  gcc/testsuite/ada/acats-3/tests/c8/c85018b.ada
! 8d0a794043808c838cf5adba232cacac  gcc/testsuite/ada/acats-3/tests/c8/c85019a.ada
! 5af58d5fd0b267936c4997ebc76c592f  gcc/testsuite/ada/acats-3/tests/c8/c851001.a
! a2bad21f51f5945720e9692701781872  gcc/testsuite/ada/acats-3/tests/c8/c851002.a
! 9b74243be116d7855c67ebe955d78830  gcc/testsuite/ada/acats-3/tests/c8/c854001.a
! 825c879ca9c376275c17511ad5e00304  gcc/testsuite/ada/acats-3/tests/c8/c854002.a
! d68292de38c7b9e049e07075bbb8e3be  gcc/testsuite/ada/acats-3/tests/c8/c854003.a
! 1f1f18804e6fcf9c4e2fbec6349d04b2  gcc/testsuite/ada/acats-3/tests/c8/c86003a.ada
! e2f34ff3aa901cdf44aa714bfc307b17  gcc/testsuite/ada/acats-3/tests/c8/c86004a.ada
! d4f2cc5c80e276eb1480de6a342d8b63  gcc/testsuite/ada/acats-3/tests/c8/c86004b0.ada
! 50f93d108a0bf0919eb0ba1f6e65d7f0  gcc/testsuite/ada/acats-3/tests/c8/c86004b1.ada
! 6c2d0d9c9429d88e2c6672c71366873c  gcc/testsuite/ada/acats-3/tests/c8/c86004b2.ada
! 7f6e918b2ef0b5adc4139d9b912bc081  gcc/testsuite/ada/acats-3/tests/c8/c86004c0.ada
! a2305c116ad2dac3912371b71c441b61  gcc/testsuite/ada/acats-3/tests/c8/c86004c1.ada
! c7b7606151d38f39564979699b168c79  gcc/testsuite/ada/acats-3/tests/c8/c86004c2.ada
! 0766251158ffbc052bc7ec6041412761  gcc/testsuite/ada/acats-3/tests/c8/c86006i.ada
! 69ab336267b976906702c2d0bc1c1e29  gcc/testsuite/ada/acats-3/tests/c8/c86007a.ada
! 0ac058a1ece69aa243cd82dada40bb30  gcc/testsuite/ada/acats-3/tests/c8/c87a05a.ada
! fff71eeb0c0e9f16ee678756ea7588a4  gcc/testsuite/ada/acats-3/tests/c8/c87a05b.ada
! 2fe0ea4d16046c334c399aafeddc01a8  gcc/testsuite/ada/acats-3/tests/c8/c87b02a.ada
! fcd21b497cf853422b084ed7935381d4  gcc/testsuite/ada/acats-3/tests/c8/c87b02b.ada
! c0b66a348c2ee10edc5467a8eb009d09  gcc/testsuite/ada/acats-3/tests/c8/c87b03a.ada
! adac4007a7fd6b1ee9f1f48c55244d47  gcc/testsuite/ada/acats-3/tests/c8/c87b04a.ada
! 18ccfb1a0d973da4e1686b0c98dfa1a9  gcc/testsuite/ada/acats-3/tests/c8/c87b04b.ada
! 43cf46342879eb1ffe2f7c8971af6a38  gcc/testsuite/ada/acats-3/tests/c8/c87b04c.ada
! d0144de0520c60120721d7b571e3985d  gcc/testsuite/ada/acats-3/tests/c8/c87b05a.ada
! 2b781472cd1369f9eb86a64cd5e4a9d9  gcc/testsuite/ada/acats-3/tests/c8/c87b06a.ada
! c22a9ce42feb05505f797ccc539112bd  gcc/testsuite/ada/acats-3/tests/c8/c87b07a.ada
! 5cb748b4c292f38beadd4b397c9748ef  gcc/testsuite/ada/acats-3/tests/c8/c87b07b.ada
! cd570d3799a0f4ceeabe1513e0c1c809  gcc/testsuite/ada/acats-3/tests/c8/c87b07c.ada
! 94b970485847bd2d888e33a9e0bbeb1c  gcc/testsuite/ada/acats-3/tests/c8/c87b07d.ada
! 4a11dd4cf1ef59a68c9760ade0024c31  gcc/testsuite/ada/acats-3/tests/c8/c87b07e.ada
! e031b7e0f562bef1da7d73abf8e7203d  gcc/testsuite/ada/acats-3/tests/c8/c87b08a.ada
! ddc6096fff2cbf60aa3fe948c1c569c3  gcc/testsuite/ada/acats-3/tests/c8/c87b09a.ada
! 427f1fe54f5946c6611f5abe3d23e213  gcc/testsuite/ada/acats-3/tests/c8/c87b09c.ada
! 4f2d8b50e737f09ccf25f199443471c8  gcc/testsuite/ada/acats-3/tests/c8/c87b10a.ada
! b3ddde623ffa0748cae187472ed3c706  gcc/testsuite/ada/acats-3/tests/c8/c87b11a.ada
! 34f04500698b844ee3bbe19fcec6df7b  gcc/testsuite/ada/acats-3/tests/c8/c87b11b.ada
! 42486daf86c543499fe18e7700c2a2c5  gcc/testsuite/ada/acats-3/tests/c8/c87b13a.ada
! 343104f8b07cc3cdfea584fb91d7dad0  gcc/testsuite/ada/acats-3/tests/c8/c87b14a.ada
! 3129f63056e924075c9eef5fb92ff6be  gcc/testsuite/ada/acats-3/tests/c8/c87b14b.ada
! 9fec6d81e8cfe9a1be8263f1fcff0c24  gcc/testsuite/ada/acats-3/tests/c8/c87b14c.ada
! c9a24774d85aaa6a9ad204d88ef33dc3  gcc/testsuite/ada/acats-3/tests/c8/c87b14d.ada
! 75444b8bc412150144d6500a1c98caa1  gcc/testsuite/ada/acats-3/tests/c8/c87b15a.ada
! b02c9f3d290904a7b941ba27ad5b8cbe  gcc/testsuite/ada/acats-3/tests/c8/c87b16a.ada
! 352fe9e9dcbad212440a7cb09e0f5a22  gcc/testsuite/ada/acats-3/tests/c8/c87b17a.ada
! da9c835dde5437b7c6fd41430e0523c7  gcc/testsuite/ada/acats-3/tests/c8/c87b18a.ada
! 6233d050a9dc22ef89142ebf8f28ccf0  gcc/testsuite/ada/acats-3/tests/c8/c87b18b.ada
! 8d538ac45635004402030cb4640caa57  gcc/testsuite/ada/acats-3/tests/c8/c87b19a.ada
! 2095765cd4def145a48bc901ac6dbde1  gcc/testsuite/ada/acats-3/tests/c8/c87b23a.ada
! 67d87906e113b008e98391cc2776a960  gcc/testsuite/ada/acats-3/tests/c8/c87b24a.ada
! fd73894f92a9b3a013e87ea2b44c1ee4  gcc/testsuite/ada/acats-3/tests/c8/c87b24b.ada
! 3477f0a964a425447d80f280e7b45bf2  gcc/testsuite/ada/acats-3/tests/c8/c87b26b.ada
! b14d1be798ca4f79c28b996d1e8a7113  gcc/testsuite/ada/acats-3/tests/c8/c87b27a.ada
! 52b1e1223a0044bd348db0fcb6d79d6b  gcc/testsuite/ada/acats-3/tests/c8/c87b28a.ada
! a6a5c9403ac6bdbdb2e55d6a25b9f5ed  gcc/testsuite/ada/acats-3/tests/c8/c87b29a.ada
! b151ba31fb04091b8702bb9da4a0a2fb  gcc/testsuite/ada/acats-3/tests/c8/c87b30a.ada
! baa7d485e6d766db9246c9606ba3a078  gcc/testsuite/ada/acats-3/tests/c8/c87b31a.ada
! 78fd2d4c2c4821cfbbf402d3b842e2cc  gcc/testsuite/ada/acats-3/tests/c8/c87b32a.ada
! 833d7f92c1dba9641ebcb3157ab5d24e  gcc/testsuite/ada/acats-3/tests/c8/c87b33a.ada
! 36465d48d4bab661c6218ee48524b608  gcc/testsuite/ada/acats-3/tests/c8/c87b34a.ada
! 561be38a9a0275b65d22f782b23c1f8c  gcc/testsuite/ada/acats-3/tests/c8/c87b34b.ada
! 1239485e0f456d72c43f397227762788  gcc/testsuite/ada/acats-3/tests/c8/c87b34c.ada
! 041b7b6888183bbf71655055555c1b87  gcc/testsuite/ada/acats-3/tests/c8/c87b35c.ada
! ba86ee0565261018e59b1b01d9d63a78  gcc/testsuite/ada/acats-3/tests/c8/c87b38a.ada
! bee8f2cc8e7a407c5d1e665cafb324a0  gcc/testsuite/ada/acats-3/tests/c8/c87b39a.ada
! 0149e0004f1fac32a6d0483505f00a77  gcc/testsuite/ada/acats-3/tests/c8/c87b40a.ada
! 598db3dd5aa31e1541f0b3c4292552c9  gcc/testsuite/ada/acats-3/tests/c8/c87b41a.ada
! 35740da1bae3e32ad7726fef598ebe03  gcc/testsuite/ada/acats-3/tests/c8/c87b42a.ada
! c699f8cb33019178eb66bb9b9887fc34  gcc/testsuite/ada/acats-3/tests/c8/c87b43a.ada
! 284fc10b4e768deed27f6efe5ba660f3  gcc/testsuite/ada/acats-3/tests/c8/c87b44a.ada
! d1cacfe3528a0559f8572409bdad7960  gcc/testsuite/ada/acats-3/tests/c8/c87b45a.ada
! 615100562dae434f6237d50c2ce7a859  gcc/testsuite/ada/acats-3/tests/c8/c87b45c.ada
! ee9fa629414e1ff85ab5a901880627c6  gcc/testsuite/ada/acats-3/tests/c8/c87b47a.ada
! f01c1e9a040d9bf9e82d5b0bd8308ac2  gcc/testsuite/ada/acats-3/tests/c8/c87b48a.ada
! 5f12e71520b411de1dcbfb59ca609af5  gcc/testsuite/ada/acats-3/tests/c8/c87b48b.ada
! 7accae5d8bcb7a6376aeb4769bbc3521  gcc/testsuite/ada/acats-3/tests/c8/c87b50a.ada
! 49e93ad6fd90f250357c964cfe65bbb4  gcc/testsuite/ada/acats-3/tests/c8/c87b54a.ada
! 6b87b80aa7e4be221c3a6fcc95a098e2  gcc/testsuite/ada/acats-3/tests/c8/c87b57a.ada
! e29430c61d05400015468771710caebe  gcc/testsuite/ada/acats-3/tests/c8/c87b62a.ada
! d69bb1d50cac4c6397e7ef6ac85cec47  gcc/testsuite/ada/acats-3/tests/c8/c87b62b.ada
! b2cd3c65ecd1e96a0c0812252c334c48  gcc/testsuite/ada/acats-3/tests/c8/c87b62c.ada
! f48458b6ea766af192adb8d401f368fc  gcc/testsuite/ada/acats-3/tests/c8/c87b62d.tst
! 91802a6e8fc88eaea2b276279ef7c541  gcc/testsuite/ada/acats-3/tests/c9/c910001.a
! 92f4e59378989d90d762b2fdfa367275  gcc/testsuite/ada/acats-3/tests/c9/c910002.a
! 1da7e86ddeb55b8594570c708479d7da  gcc/testsuite/ada/acats-3/tests/c9/c910003.a
! 3e61dff323d06b22fad060cfc4e6bbe3  gcc/testsuite/ada/acats-3/tests/c9/c91004b.ada
! 69469a828c0050868f258475fc71f55d  gcc/testsuite/ada/acats-3/tests/c9/c91004c.ada
! 0ff6798e735543f9ea0902dcd3d33bd4  gcc/testsuite/ada/acats-3/tests/c9/c91006a.ada
! 7f1ab85728a76023b65305acb8480064  gcc/testsuite/ada/acats-3/tests/c9/c91007a.ada
! c2fa652957f9477e9fdbf25f5008ae78  gcc/testsuite/ada/acats-3/tests/c9/c920001.a
! b04d09f1322f0d92c98d41398964503d  gcc/testsuite/ada/acats-3/tests/c9/c92002a.ada
! 5cb78880eadfd9eac647aba39fa528da  gcc/testsuite/ada/acats-3/tests/c9/c92003a.ada
! bfa0af83fa76f2092a243ddded4670d8  gcc/testsuite/ada/acats-3/tests/c9/c92005a.ada
! 379c27e94764b3b61fffdc4a6886f267  gcc/testsuite/ada/acats-3/tests/c9/c92005b.ada
! a47a031badac4df0d97db8bef1c3bc41  gcc/testsuite/ada/acats-3/tests/c9/c92006a.ada
! e4aee3e6761bfd67eaa5d1bd1ef57470  gcc/testsuite/ada/acats-3/tests/c9/c930001.a
! d21857231e61275a32c743ac514d1bc5  gcc/testsuite/ada/acats-3/tests/c9/c93001a.ada
! 493236f457ba46ba4fee16d542742d6c  gcc/testsuite/ada/acats-3/tests/c9/c93002a.ada
! 58f568faf270170c72b48115224a9ea8  gcc/testsuite/ada/acats-3/tests/c9/c93003a.ada
! 7612773970dfbe9066b04bb3ef16a233  gcc/testsuite/ada/acats-3/tests/c9/c93004a.ada
! ba12024ce449c8f19c903d5b83a7772c  gcc/testsuite/ada/acats-3/tests/c9/c93004b.ada
! 84f08b2297ca6e587b20b46ac2f4a739  gcc/testsuite/ada/acats-3/tests/c9/c93004c.ada
! e206bbe8f5a43a6b351e76ac75ac54bf  gcc/testsuite/ada/acats-3/tests/c9/c93004d.ada
! 00ac7aaad0308e432bf16c8682817a14  gcc/testsuite/ada/acats-3/tests/c9/c93004f.ada
! 08c88f164d59d4eab6aca557a4a64946  gcc/testsuite/ada/acats-3/tests/c9/c93005a.ada
! 8e317f80e3b0b4e3561b4aae157d6049  gcc/testsuite/ada/acats-3/tests/c9/c93005b.ada
! 7d334041be29ea9e8c37717a41e00262  gcc/testsuite/ada/acats-3/tests/c9/c93005c.ada
! 7eaab6600302226ca2aa221a1baa20b3  gcc/testsuite/ada/acats-3/tests/c9/c93005d.ada
! f8e495878721a71a7dbdd646b8e0a2f9  gcc/testsuite/ada/acats-3/tests/c9/c93005e.ada
! 0240c3a7deba6bd32679e222b5fadd86  gcc/testsuite/ada/acats-3/tests/c9/c93005f.ada
! c50d0176fa8ed0d5d6234013904fc2bf  gcc/testsuite/ada/acats-3/tests/c9/c93005g.ada
! 6a27b797bf6bf6201d7e22aec1399ef3  gcc/testsuite/ada/acats-3/tests/c9/c93005h.ada
! 9558fcb539a49a288534eb8b0dd23274  gcc/testsuite/ada/acats-3/tests/c9/c93006a.ada
! fe32d2d556faa4d361e61f9063f9d19b  gcc/testsuite/ada/acats-3/tests/c9/c93007a.ada
! e1f28c5786e15914c044ecc368a334c4  gcc/testsuite/ada/acats-3/tests/c9/c93008a.ada
! f12f826d928a3bc55974d9e4a7a4bced  gcc/testsuite/ada/acats-3/tests/c9/c93008b.ada
! 84c45a691f716f13c1acb83d5af7418d  gcc/testsuite/ada/acats-3/tests/c9/c940001.a
! 99f1785334b15c78f6c402eb9581f820  gcc/testsuite/ada/acats-3/tests/c9/c940002.a
! d4515a061510c374dc4e3b73047c01bd  gcc/testsuite/ada/acats-3/tests/c9/c940004.a
! 982944ab84b1e87938411f5e230c4afe  gcc/testsuite/ada/acats-3/tests/c9/c940005.a
! 24e534dd458f6d60deaffb89427151e3  gcc/testsuite/ada/acats-3/tests/c9/c940006.a
! ae39153ecdb5b40b7e250621dda2a947  gcc/testsuite/ada/acats-3/tests/c9/c940007.a
! ed93c06c8fbc77ffcb96431dac0e7567  gcc/testsuite/ada/acats-3/tests/c9/c940010.a
! b5f59a7bcad9207813e580204d7d297d  gcc/testsuite/ada/acats-3/tests/c9/c940011.a
! 2cc5af1321a3389a051ba331add4436e  gcc/testsuite/ada/acats-3/tests/c9/c940012.a
! 46c8ffa64ae0068a1674cd8386b42f41  gcc/testsuite/ada/acats-3/tests/c9/c940013.a
! 9fac2bc0e89e8f222104978b3d1eaf3b  gcc/testsuite/ada/acats-3/tests/c9/c940014.a
! 004d847da87db0a9fe57406d26459dfd  gcc/testsuite/ada/acats-3/tests/c9/c940015.a
! 47e9712a5187d745e5ab17e658f2f210  gcc/testsuite/ada/acats-3/tests/c9/c940016.a
! 2e44193305daa3662819696ed485e49e  gcc/testsuite/ada/acats-3/tests/c9/c940017.a
! 6c7757c7f82391d974ee2ade7a1b5023  gcc/testsuite/ada/acats-3/tests/c9/c94001a.ada
! f31231e0a282c4347af1efd6cb3035d8  gcc/testsuite/ada/acats-3/tests/c9/c94001b.ada
! b0effed330eff266dd896d4e48e16478  gcc/testsuite/ada/acats-3/tests/c9/c94001c.ada
! 5b89b2c47939e01428fda5cdb7b76bfc  gcc/testsuite/ada/acats-3/tests/c9/c94001e.ada
! 79b95e3bce431f5a1d5d5264c35ba5a9  gcc/testsuite/ada/acats-3/tests/c9/c94001f.ada
! 77a4dc124639ae407e5aca42c786703a  gcc/testsuite/ada/acats-3/tests/c9/c94001g.ada
! 459a8334da9a10b07073ee026daace57  gcc/testsuite/ada/acats-3/tests/c9/c94002a.ada
! ea931758bd0eaf85c1c1a04b2f7c71de  gcc/testsuite/ada/acats-3/tests/c9/c94002b.ada
! 131233ea081ac6ea10a1e10fbba005f2  gcc/testsuite/ada/acats-3/tests/c9/c94002d.ada
! 170256ffad705761ef2331d6d2a07771  gcc/testsuite/ada/acats-3/tests/c9/c94002e.ada
! 066f90e14b935717dde3fa4b96807563  gcc/testsuite/ada/acats-3/tests/c9/c94002f.ada
! 8a13ee6acd0d6f24e23333f06259df08  gcc/testsuite/ada/acats-3/tests/c9/c94002g.ada
! 22b53f93e23fb62230789979e589e181  gcc/testsuite/ada/acats-3/tests/c9/c94004a.ada
! ccdf0ff8e75742c50231602193bbcbba  gcc/testsuite/ada/acats-3/tests/c9/c94004b.ada
! 3cc3467fbedd3af4df23952c3bff55fa  gcc/testsuite/ada/acats-3/tests/c9/c94004c.ada
! 7984d0d810ada9646b57c6eaf2e1bc4f  gcc/testsuite/ada/acats-3/tests/c9/c94005a.ada
! 65127423a897761cfafb1a3b3138bb1f  gcc/testsuite/ada/acats-3/tests/c9/c94005b.ada
! 58ea156e98cc4536f068259cb7d392ce  gcc/testsuite/ada/acats-3/tests/c9/c94006a.ada
! f0bba450c8e12f8e7ee2943272781344  gcc/testsuite/ada/acats-3/tests/c9/c94007a.ada
! 0d97216a40757079eb2c5929715d2b99  gcc/testsuite/ada/acats-3/tests/c9/c94007b.ada
! 4c0be4d154afe78593220fcb4ce1db68  gcc/testsuite/ada/acats-3/tests/c9/c94008a.ada
! 96e113f41f41a01c2196b7773e735c4f  gcc/testsuite/ada/acats-3/tests/c9/c94008b.ada
! 17f5eb44b8190ee09e9f0ffcffe2e7a4  gcc/testsuite/ada/acats-3/tests/c9/c94008c.ada
! c810cc6ac3bebe36845e2cba4e525930  gcc/testsuite/ada/acats-3/tests/c9/c94008d.ada
! 03924145894e3041b88074680eceb006  gcc/testsuite/ada/acats-3/tests/c9/c94010a.ada
! 136872ec7f9870731797ab20b32f6696  gcc/testsuite/ada/acats-3/tests/c9/c94011a.ada
! a8508d1bdacc8da03549a92370d18ed0  gcc/testsuite/ada/acats-3/tests/c9/c94020a.ada
! 54dba96923cbd3444b91d1706e737c16  gcc/testsuite/ada/acats-3/tests/c9/c940a03.a
! 14ac629d930514b19edd9d5fa73cf107  gcc/testsuite/ada/acats-3/tests/c9/c95008a.ada
! b48683e2458942b3ffc46be9054c7911  gcc/testsuite/ada/acats-3/tests/c9/c95009a.ada
! b4adaad3668499bb335d018420c56f91  gcc/testsuite/ada/acats-3/tests/c9/c95010a.ada
! 2900d4b177d19e9f35c4693ea6b14ec8  gcc/testsuite/ada/acats-3/tests/c9/c95011a.ada
! 8b06e3c4ff90fbc6c87f0aa942917f64  gcc/testsuite/ada/acats-3/tests/c9/c95012a.ada
! 701e89d7711a71b3be5269c5238a18c7  gcc/testsuite/ada/acats-3/tests/c9/c95021a.ada
! c091dcb9509e234377d2ac8ee75d10e0  gcc/testsuite/ada/acats-3/tests/c9/c95022a.ada
! 65035c12f67d253a2397d2126f4ba6c6  gcc/testsuite/ada/acats-3/tests/c9/c95022b.ada
! cc0f07ec1171a66007308281b576f7c4  gcc/testsuite/ada/acats-3/tests/c9/c95033a.ada
! 4de48cf31bf233b1fdc87aeffb9972de  gcc/testsuite/ada/acats-3/tests/c9/c95033b.ada
! cc9febfaeca52b7d6647ca62001797e7  gcc/testsuite/ada/acats-3/tests/c9/c95034a.ada
! d5302e6651eeb53974a9d013a4cdedc8  gcc/testsuite/ada/acats-3/tests/c9/c95034b.ada
! 60c5c5f334073dc4d79928f49152f582  gcc/testsuite/ada/acats-3/tests/c9/c95035a.ada
! 3eda3680c647ff3fb263637efebd9f65  gcc/testsuite/ada/acats-3/tests/c9/c95040a.ada
! 8e8e82ad5bdec76ed6e7c4ae88a3b54f  gcc/testsuite/ada/acats-3/tests/c9/c95040b.ada
! ed765b423843bd4ca78de15c1b071692  gcc/testsuite/ada/acats-3/tests/c9/c95040c.ada
! 30e738c92230ba86578f011623e5802a  gcc/testsuite/ada/acats-3/tests/c9/c95040d.ada
! 168221198b482975d09392b2fcad8a7b  gcc/testsuite/ada/acats-3/tests/c9/c95041a.ada
! c6313618d1cd8a8218dcd446fd95a86e  gcc/testsuite/ada/acats-3/tests/c9/c95065a.ada
! 8832636689a3eda560469f04cfa76418  gcc/testsuite/ada/acats-3/tests/c9/c95065b.ada
! 5aaadcb32b841fad9f31245493b516f6  gcc/testsuite/ada/acats-3/tests/c9/c95065c.ada
! a39b19410538e12fdfcb7cd54d120b3f  gcc/testsuite/ada/acats-3/tests/c9/c95065d.ada
! 383b7f01039162f8c331982cca1d1827  gcc/testsuite/ada/acats-3/tests/c9/c95065e.ada
! c184eac9dc26cf8493bcf20a949ae191  gcc/testsuite/ada/acats-3/tests/c9/c95065f.ada
! 5b0b09d3d393123f8092b9dd3d7d2634  gcc/testsuite/ada/acats-3/tests/c9/c95066a.ada
! 645546a6994e4d75b178f9fe0ead2ec8  gcc/testsuite/ada/acats-3/tests/c9/c95067a.ada
! 0d96b6a028d1fbdc1198cf477386cb10  gcc/testsuite/ada/acats-3/tests/c9/c95071a.ada
! 1252b71f747f12dc764f40b587be838a  gcc/testsuite/ada/acats-3/tests/c9/c95072a.ada
! bd5b6bb2bf3ba074df027795aaa7db33  gcc/testsuite/ada/acats-3/tests/c9/c95072b.ada
! befede1120f2f7955e0b77c883265e25  gcc/testsuite/ada/acats-3/tests/c9/c95073a.ada
! 48c97fe967f3c5e1bc663c5d91ed55bd  gcc/testsuite/ada/acats-3/tests/c9/c95074c.ada
! 6aaf0bf21901d478c7f10321b1c232fc  gcc/testsuite/ada/acats-3/tests/c9/c95076a.ada
! ba053d263ff25d0fe8b66c68cb7bb311  gcc/testsuite/ada/acats-3/tests/c9/c95078a.ada
! a7e9f0e064ac2a29ebe79a19983758dc  gcc/testsuite/ada/acats-3/tests/c9/c95080b.ada
! 73fa133c9eac6146a770bb5525331e35  gcc/testsuite/ada/acats-3/tests/c9/c95082g.ada
! 61f2b9320583cc5ff1eca06b3e8cd887  gcc/testsuite/ada/acats-3/tests/c9/c95085a.ada
! 9e1cf3433f8341a6b183079a377b0fad  gcc/testsuite/ada/acats-3/tests/c9/c95085b.ada
! e39dbe6050c2679aa6a7d89c762e8c0a  gcc/testsuite/ada/acats-3/tests/c9/c95085c.ada
! 6c946d9a6886fc8b7d6145f3958a1016  gcc/testsuite/ada/acats-3/tests/c9/c95085d.ada
! c8c26f8183027ac456df33b272a0e185  gcc/testsuite/ada/acats-3/tests/c9/c95085e.ada
! e29633617dcca72904423b7e09ea1401  gcc/testsuite/ada/acats-3/tests/c9/c95085f.ada
! 3e1d9c4d7627f1b32df23e0787f1ae30  gcc/testsuite/ada/acats-3/tests/c9/c95085g.ada
! 55b52211957a2231b59c295b91e1bbfe  gcc/testsuite/ada/acats-3/tests/c9/c95085h.ada
! f472998d938475a0a5b7c61c4a994dbe  gcc/testsuite/ada/acats-3/tests/c9/c95085i.ada
! e7d6c7d1e457a9097de27a4d4b6df67e  gcc/testsuite/ada/acats-3/tests/c9/c95085j.ada
! 9dcf6b0120351dbd31ca6b3b07007dda  gcc/testsuite/ada/acats-3/tests/c9/c95085k.ada
! f65f9568bbdcba31e56e46a1bff7a8a7  gcc/testsuite/ada/acats-3/tests/c9/c95085l.ada
! 2794ec3980004ff90d3fdda0ebeb57be  gcc/testsuite/ada/acats-3/tests/c9/c95085m.ada
! cd5e6789b1381a01c8abe9b8efc437eb  gcc/testsuite/ada/acats-3/tests/c9/c95085n.ada
! ec751b6898b7a50e0c7e413ac04f3096  gcc/testsuite/ada/acats-3/tests/c9/c95085o.ada
! 4d079ed4815a2d61d769f5571e546504  gcc/testsuite/ada/acats-3/tests/c9/c95086a.ada
! 3f5ba7557a56b3376b0d11a44977eb6b  gcc/testsuite/ada/acats-3/tests/c9/c95086b.ada
! 4423694080505c12206b273d44b25a6c  gcc/testsuite/ada/acats-3/tests/c9/c95086c.ada
! 9ddcd960179a50f19400614669ee58dd  gcc/testsuite/ada/acats-3/tests/c9/c95086d.ada
! b943966db2007cce0bd0ab55a7241cb6  gcc/testsuite/ada/acats-3/tests/c9/c95086e.ada
! 63af3fb63913a9ced35b10b55e03d16c  gcc/testsuite/ada/acats-3/tests/c9/c95086f.ada
! fb4e2598701ac2222961218c56e9989e  gcc/testsuite/ada/acats-3/tests/c9/c95087a.ada
! 6ca41778e752016a3cb5f39d3655160a  gcc/testsuite/ada/acats-3/tests/c9/c95087b.ada
! b77cd9cab875027ed13370d439f3d83a  gcc/testsuite/ada/acats-3/tests/c9/c95087c.ada
! 94c2f92c8d38ace856b3d3a4e46e2f10  gcc/testsuite/ada/acats-3/tests/c9/c95087d.ada
! 8ace111d2db71af514234c843bcdc774  gcc/testsuite/ada/acats-3/tests/c9/c95088a.ada
! 3eab89caa6cfdaad3ecaee2fb3a9de67  gcc/testsuite/ada/acats-3/tests/c9/c95089a.ada
! c23a0d393dfca230669443fa90939e9e  gcc/testsuite/ada/acats-3/tests/c9/c95090a.ada
! 2dea0b25d5837e3f040a606b74b5bfe7  gcc/testsuite/ada/acats-3/tests/c9/c95092a.ada
! da5b15c611f0e80c4bd500a6377cf1fb  gcc/testsuite/ada/acats-3/tests/c9/c95093a.ada
! 411e85f00716bde0eb4bebe2dd4a4b17  gcc/testsuite/ada/acats-3/tests/c9/c95095a.ada
! 20d01625fd521f83c0fbb4e0d5989f1c  gcc/testsuite/ada/acats-3/tests/c9/c95095b.ada
! f1a2d7fb3c08ba5c9b45d28b8c434cf9  gcc/testsuite/ada/acats-3/tests/c9/c95095c.ada
! fe6c832ec4b8584b35ad79ad6f658734  gcc/testsuite/ada/acats-3/tests/c9/c95095d.ada
! d71ab35932ba486e65cee5d0a7ea6c58  gcc/testsuite/ada/acats-3/tests/c9/c95095e.ada
! b665ab275e30b4a49c6a32d1c1b8d3b0  gcc/testsuite/ada/acats-3/tests/c9/c951001.a
! 31bba47fca22f334739b1cb13505c63f  gcc/testsuite/ada/acats-3/tests/c9/c951002.a
! 380eef904bedee70e470eec6283fe7fa  gcc/testsuite/ada/acats-3/tests/c9/c953001.a
! 8b4cbf1e111e939494dbd6c9170d9add  gcc/testsuite/ada/acats-3/tests/c9/c953002.a
! b85e67ebb144368e710912fad26fa9b5  gcc/testsuite/ada/acats-3/tests/c9/c953003.a
! 349793c14b6ee642849a35ac147f6d28  gcc/testsuite/ada/acats-3/tests/c9/c954001.a
! 32a2b22071eb90de620dac85832e7e33  gcc/testsuite/ada/acats-3/tests/c9/c954010.a
! 5c71f334e75e4b81847ba6609055a721  gcc/testsuite/ada/acats-3/tests/c9/c954011.a
! 0f6b02e34f34de574c7f90adcb78c1d3  gcc/testsuite/ada/acats-3/tests/c9/c954012.a
! 0af78b179cbaf289947a4b0cc90e1b92  gcc/testsuite/ada/acats-3/tests/c9/c954013.a
! 498084096b8ec59a36a889374ad9ee3e  gcc/testsuite/ada/acats-3/tests/c9/c954014.a
! 97799887dcbf60005b2df40f05636514  gcc/testsuite/ada/acats-3/tests/c9/c954015.a
! 2490fc80b69ada26f8142dacebcc5823  gcc/testsuite/ada/acats-3/tests/c9/c954016.a
! 23e5c9126dfc78e228cd9ba7e9fd2f4d  gcc/testsuite/ada/acats-3/tests/c9/c954017.a
! bdfa1b9ada52a8082dfc30a91d56af89  gcc/testsuite/ada/acats-3/tests/c9/c954018.a
! e039ba87aa8e5a87f7f74695cc19d917  gcc/testsuite/ada/acats-3/tests/c9/c954019.a
! 718a1dda410ad24ef00a024b2e415626  gcc/testsuite/ada/acats-3/tests/c9/c954020.a
! 8f5a7fd94fd12664cdd2a1cedfcad90c  gcc/testsuite/ada/acats-3/tests/c9/c954021.a
! 34dbbc567c8a72d4e43da4684357c65d  gcc/testsuite/ada/acats-3/tests/c9/c954022.a
! acd00fcab6e1b0d13797a97adc97adb7  gcc/testsuite/ada/acats-3/tests/c9/c954023.a
! 2b49282ca4813eb7610dffe2400f50ff  gcc/testsuite/ada/acats-3/tests/c9/c954024.a
! 2331b8760176763cf23ae6f18488082f  gcc/testsuite/ada/acats-3/tests/c9/c954025.a
! 6bd1092f468dab44c0887902809a3c13  gcc/testsuite/ada/acats-3/tests/c9/c954026.a
! 97487e5b93226e3c55df7449702ac3da  gcc/testsuite/ada/acats-3/tests/c9/c954a01.a
! d07c1374471df9299b8057f6479a45e6  gcc/testsuite/ada/acats-3/tests/c9/c954a02.a
! b1b9ce862c0b325027b8ea2d1d8cc916  gcc/testsuite/ada/acats-3/tests/c9/c954a03.a
! d02e3ef0eb5c7ba2f412817b49644270  gcc/testsuite/ada/acats-3/tests/c9/c960001.a
! da6bb14a212aa02754b6596d741c04b8  gcc/testsuite/ada/acats-3/tests/c9/c960002.a
! 4c5c6b7d7706870241781f97576eef1b  gcc/testsuite/ada/acats-3/tests/c9/c960004.a
! f703a55c27d27529f63150ba86c8e428  gcc/testsuite/ada/acats-3/tests/c9/c96001a.ada
! 3551216de1ec0430cae6be8fbba64031  gcc/testsuite/ada/acats-3/tests/c9/c96004a.ada
! 2f64957621aaee0d11d2f8171f4e6709  gcc/testsuite/ada/acats-3/tests/c9/c96005a.ada
! 7fad724f14640158cc9929364f0bb44f  gcc/testsuite/ada/acats-3/tests/c9/c96005b.tst
! 6e3aebd279f9456cefe6dc63b3b9331e  gcc/testsuite/ada/acats-3/tests/c9/c96005d.ada
! 48530b441ec07b282f87a1b285f46461  gcc/testsuite/ada/acats-3/tests/c9/c96005f.ada
! 4ea722032f17d484d0a99cb53bc930ac  gcc/testsuite/ada/acats-3/tests/c9/c96006a.ada
! 83d75c4aa3732428ebf8864a605ee0d4  gcc/testsuite/ada/acats-3/tests/c9/c96007a.ada
! 031bef964d04e0ec5db2ff1f13daa5c1  gcc/testsuite/ada/acats-3/tests/c9/c96008a.ada
! f1d6b97aec5c567380c522a41db1aba7  gcc/testsuite/ada/acats-3/tests/c9/c96008b.ada
! 9f6fd5618561fb30c4c3b3865512f084  gcc/testsuite/ada/acats-3/tests/c9/c97112a.ada
! 9a595e747efc52363c8c454c5697526c  gcc/testsuite/ada/acats-3/tests/c9/c97113a.ada
! 0a432c8f0bafafbfd3ca9e2c4c355355  gcc/testsuite/ada/acats-3/tests/c9/c97114a.ada
! f204e89327ed70fed4f01e37237ed370  gcc/testsuite/ada/acats-3/tests/c9/c97115a.ada
! ad10c842934da9fd10b075d2eda11b10  gcc/testsuite/ada/acats-3/tests/c9/c97116a.ada
! 4e1bee03164214d6b948f1c4d7727423  gcc/testsuite/ada/acats-3/tests/c9/c97117a.ada
! f316b207affd7df5674d718268b31bd7  gcc/testsuite/ada/acats-3/tests/c9/c97117b.ada
! c15c876df898d95befc462a0646f94e6  gcc/testsuite/ada/acats-3/tests/c9/c97117c.ada
! 06046e05a2477dc8986dff46f6adb19d  gcc/testsuite/ada/acats-3/tests/c9/c97118a.ada
! 713383a150292af0da0dc77e7a23ab4b  gcc/testsuite/ada/acats-3/tests/c9/c97120a.ada
! 1edcf8a00884d843f01295b66b3346ed  gcc/testsuite/ada/acats-3/tests/c9/c97120b.ada
! d6606fac2f86c01ef106a193d274ec96  gcc/testsuite/ada/acats-3/tests/c9/c97201a.ada
! 2be86a6c8f33794ef758dfb71bf75acd  gcc/testsuite/ada/acats-3/tests/c9/c97201b.ada
! 32743b2ed9403b69d98c56734934fa8f  gcc/testsuite/ada/acats-3/tests/c9/c97201c.ada
! 1feeeccbfc144d846a5fac5dc371b1ab  gcc/testsuite/ada/acats-3/tests/c9/c97201d.ada
! 4b003338cd3cfce9c7070dea4b8370a1  gcc/testsuite/ada/acats-3/tests/c9/c97201e.ada
! 383c30d1a9dc6fba56fb3b68b9d8417d  gcc/testsuite/ada/acats-3/tests/c9/c97201g.ada
! 2a874dccde240e48a4f9b0c6b5175219  gcc/testsuite/ada/acats-3/tests/c9/c97201h.ada
! a7aec17b036081fd245c141c14cea8c3  gcc/testsuite/ada/acats-3/tests/c9/c97201x.ada
! 8b04c9ca3ccf2bd719076369af023d12  gcc/testsuite/ada/acats-3/tests/c9/c97202a.ada
! 096a975a5320d43a7ba562f9f18d94e6  gcc/testsuite/ada/acats-3/tests/c9/c97203a.ada
! 4470e62031e7933d85cbc73da17fef70  gcc/testsuite/ada/acats-3/tests/c9/c97203b.ada
! 64b03c91289d25db071b852a88b5d9cb  gcc/testsuite/ada/acats-3/tests/c9/c97203c.ada
! ddc6cf33bc17eabf4869adcc1d29e3d0  gcc/testsuite/ada/acats-3/tests/c9/c97204a.ada
! d4911cea3ce93679f126d507a45d22fa  gcc/testsuite/ada/acats-3/tests/c9/c97204b.ada
! f112637a1de7d372487415fe7c563edd  gcc/testsuite/ada/acats-3/tests/c9/c97205a.ada
! 5532215767fea9cf0ff3d5a28af0ffbf  gcc/testsuite/ada/acats-3/tests/c9/c97205b.ada
! 01050a4da75368f4c45e1856db21fe08  gcc/testsuite/ada/acats-3/tests/c9/c97301a.ada
! 3bb292049b1010404ee847832e15f4fd  gcc/testsuite/ada/acats-3/tests/c9/c97301b.ada
! dc309970b8d1ee31a4ac51d708f59f23  gcc/testsuite/ada/acats-3/tests/c9/c97301c.ada
! 85087bd563a15cb83cb82906dd074b46  gcc/testsuite/ada/acats-3/tests/c9/c97301d.ada
! cf609a3a37b7091f993fde3ebec98b7b  gcc/testsuite/ada/acats-3/tests/c9/c97301e.ada
! fb0f6367a2cb242d11e68bb0833594c9  gcc/testsuite/ada/acats-3/tests/c9/c97302a.ada
! ee3941e300e101619899d4ce5e433914  gcc/testsuite/ada/acats-3/tests/c9/c97303a.ada
! 0c9b0b786acee85921087f08e05ee848  gcc/testsuite/ada/acats-3/tests/c9/c97303b.ada
! dca0cd362816588d4976d342beb2593d  gcc/testsuite/ada/acats-3/tests/c9/c97303c.ada
! cb2ab9f96734f02dcf13d24f2e73aec3  gcc/testsuite/ada/acats-3/tests/c9/c97304a.ada
! d754e67cb299985d2d7ab32f0d7831d4  gcc/testsuite/ada/acats-3/tests/c9/c97304b.ada
! 2f91d4b7e4df271c291c8528b0ac77c5  gcc/testsuite/ada/acats-3/tests/c9/c97305a.ada
! 99ee5abaa01d4f88e63554c6c77981a8  gcc/testsuite/ada/acats-3/tests/c9/c97305b.ada
! 5a1e95417e5dc56ea2eaa24f2cb98647  gcc/testsuite/ada/acats-3/tests/c9/c97305c.ada
! fa76b14386e1262d53b830ca97f97d45  gcc/testsuite/ada/acats-3/tests/c9/c97305d.ada
! e04c1ec69662c6ad7f314711e132d50b  gcc/testsuite/ada/acats-3/tests/c9/c97307a.ada
! 3159a203f1d3e85954c526f58a3919f1  gcc/testsuite/ada/acats-3/tests/c9/c974001.a
! 0314ba23ab70ea268178d5697c5a9034  gcc/testsuite/ada/acats-3/tests/c9/c974002.a
! f748892726b6f9f427e087ed38edff1e  gcc/testsuite/ada/acats-3/tests/c9/c974003.a
! 68b75700dc10aa1f753b947e8cfc83f7  gcc/testsuite/ada/acats-3/tests/c9/c974004.a
! c9f29dff7d0c7abcfdc4dd10f92cc818  gcc/testsuite/ada/acats-3/tests/c9/c974005.a
! 58bc14008a240c1458d789aea37231f5  gcc/testsuite/ada/acats-3/tests/c9/c974006.a
! 6386f90159d93f8e888fc5c7606c48ab  gcc/testsuite/ada/acats-3/tests/c9/c974007.a
! 091b77c15a7a69901928f3e08e5d560b  gcc/testsuite/ada/acats-3/tests/c9/c974008.a
! 4286211e8302b327c6fcddd998068801  gcc/testsuite/ada/acats-3/tests/c9/c974009.a
! 91418d184ffd74f3511f7c7fecf5ad4c  gcc/testsuite/ada/acats-3/tests/c9/c974010.a
! fb71769796ae10266d6396de27fcd9f3  gcc/testsuite/ada/acats-3/tests/c9/c974011.a
! 75ae944a2f56bfec34a43bcac81f0f6a  gcc/testsuite/ada/acats-3/tests/c9/c974012.a
! cf3493d33888a126779c4a1fd8c7e171  gcc/testsuite/ada/acats-3/tests/c9/c974013.a
! 0100f02b896d741021d8771778c05fe4  gcc/testsuite/ada/acats-3/tests/c9/c974014.a
! 120dd4802d990998dbefafba1d6bdf05  gcc/testsuite/ada/acats-3/tests/c9/c980001.a
! 98a89250f238d2d958192b464be9c644  gcc/testsuite/ada/acats-3/tests/c9/c980002.a
! 387e8d4bc42079cf88da235a35d5db46  gcc/testsuite/ada/acats-3/tests/c9/c980003.a
! 7ac21cbd7f3a077b85429173c95a43ee  gcc/testsuite/ada/acats-3/tests/c9/c990001.a
! 4a6308ea54645ac0a0ff6750ddff3bee  gcc/testsuite/ada/acats-3/tests/c9/c99005a.ada
! 0ade252d597ba9f5685bfdbc39ad5126  gcc/testsuite/ada/acats-3/tests/c9/c9a003a.ada
! f6efef2daeceae0601810ea34d294ebe  gcc/testsuite/ada/acats-3/tests/c9/c9a004a.ada
! dd8112b4d2ad70bb900170e976687d24  gcc/testsuite/ada/acats-3/tests/c9/c9a007a.ada
! d7d23b9be56f63a7a3eb64ae5740a50f  gcc/testsuite/ada/acats-3/tests/c9/c9a009a.ada
! 4a79ec0aad1fb7e6af0cb13c26c8a078  gcc/testsuite/ada/acats-3/tests/c9/c9a009c.ada
! a6fedb4d1bd7420511136db146b4479f  gcc/testsuite/ada/acats-3/tests/c9/c9a009f.ada
! 92177b39404bc5c23481f443eee705e0  gcc/testsuite/ada/acats-3/tests/c9/c9a009g.ada
! 56b8d40db1bb38ab15ba53a518a8e8e3  gcc/testsuite/ada/acats-3/tests/c9/c9a009h.ada
! 378ed54deee6ae14733d353d1d034e4e  gcc/testsuite/ada/acats-3/tests/c9/c9a010a.ada
! 7e86b851f4df1a5b809ec8656042b7f1  gcc/testsuite/ada/acats-3/tests/c9/c9a011a.ada
! 15b92866c3feb68befd87bd433944eee  gcc/testsuite/ada/acats-3/tests/c9/c9a011b.ada
! 204dadfff9a19c758cd37f55b4c4da7c  gcc/testsuite/ada/acats-3/tests/ca/ca1003a.ada
! 763e67e5131cf453849af1119c81ab73  gcc/testsuite/ada/acats-3/tests/ca/ca1004a.ada
! 4dd6d7580352576ccd7263ab195d5863  gcc/testsuite/ada/acats-3/tests/ca/ca1005a.ada
! 129a313a5c15d69fc95b27e10654ea3b  gcc/testsuite/ada/acats-3/tests/ca/ca1006a.ada
! 150e449e50b6c5dbc1ef87fb7cbf4fb9  gcc/testsuite/ada/acats-3/tests/ca/ca1011a0.ada
! 590b512fe8313d2c235285182f8eda0d  gcc/testsuite/ada/acats-3/tests/ca/ca1011a1.ada
! 75907d5f95c902eae76627ab16c741b7  gcc/testsuite/ada/acats-3/tests/ca/ca1011a2.ada
! 401ad7f509f398efd9094cfb553d02ca  gcc/testsuite/ada/acats-3/tests/ca/ca1011a3.ada
! d6d2e55e299aae0f7b20781714e0f6d9  gcc/testsuite/ada/acats-3/tests/ca/ca1011a4.ada
! e840ac05d90e7ef06dac4303f5747d0c  gcc/testsuite/ada/acats-3/tests/ca/ca1011a5.ada
! 696cc4292fd590eaf3673d74b1c0c4f9  gcc/testsuite/ada/acats-3/tests/ca/ca1011a6.ada
! 19ae39e48cdc2ea32ddbde00fdb0bf17  gcc/testsuite/ada/acats-3/tests/ca/ca1012a0.ada
! c3bd20289c2b3b2422a8e051dfc8b100  gcc/testsuite/ada/acats-3/tests/ca/ca1012a1.ada
! 010a8d3290ef3a0b00bcbe784544f65f  gcc/testsuite/ada/acats-3/tests/ca/ca1012a2.ada
! 49dff1e5fe3bc3d0814772fe822732a9  gcc/testsuite/ada/acats-3/tests/ca/ca1012a3.ada
! 3660d5d1740e1e424e76277266bd8268  gcc/testsuite/ada/acats-3/tests/ca/ca1012a4.ada
! 2a073bfb3680a6d94b420c58b535dda1  gcc/testsuite/ada/acats-3/tests/ca/ca1012b0.ada
! 1d0a019e12d9aec35762beffba68a14a  gcc/testsuite/ada/acats-3/tests/ca/ca1012b2.ada
! 8fe092748b9f031c395eb8aa90296599  gcc/testsuite/ada/acats-3/tests/ca/ca1012b4.ada
! 2ee859ea2c2cb8cd94e30b6c19c152f7  gcc/testsuite/ada/acats-3/tests/ca/ca1013a0.ada
! a15e85ff9101c6b7debdc0a508f121b6  gcc/testsuite/ada/acats-3/tests/ca/ca1013a1.ada
! 03baa6347b38eb86dabe6092928f99a3  gcc/testsuite/ada/acats-3/tests/ca/ca1013a2.ada
! a81d2aa44c2ded0527dbc731919e9089  gcc/testsuite/ada/acats-3/tests/ca/ca1013a3.ada
! baa2f985db9330503fee62fb421c3429  gcc/testsuite/ada/acats-3/tests/ca/ca1013a4.ada
! 9fc93552ea16f09c4c827809b41b3281  gcc/testsuite/ada/acats-3/tests/ca/ca1013a5.ada
! eb0f6d8e24d16363c032c027a7fb22d5  gcc/testsuite/ada/acats-3/tests/ca/ca1013a6.ada
! b35c89f01ddf1fa22d017dd159aac614  gcc/testsuite/ada/acats-3/tests/ca/ca1014a0.ada
! 5077be000dc1a7e1b7b61ca260535b47  gcc/testsuite/ada/acats-3/tests/ca/ca1014a1.ada
! 0d51872b8ac47d25b56ce86661e1c370  gcc/testsuite/ada/acats-3/tests/ca/ca1014a2.ada
! 29a9a130e24e0e0ced6be54af8af32af  gcc/testsuite/ada/acats-3/tests/ca/ca1014a3.ada
! bda7cf51d24fabf05ab2eb537ba61e3b  gcc/testsuite/ada/acats-3/tests/ca/ca1020e0.ada
! e875db44aa84c70db8ae5e21b37fd9f1  gcc/testsuite/ada/acats-3/tests/ca/ca1020e1.ada
! 3f26efdf7d61547aec29a83c55db9b2c  gcc/testsuite/ada/acats-3/tests/ca/ca1020e2.ada
! d41b12fbbd6a609065e3a66751a2bcfd  gcc/testsuite/ada/acats-3/tests/ca/ca1020e3.ada
! 94d90f2a39051c6c6e6f143035815676  gcc/testsuite/ada/acats-3/tests/ca/ca1022a0.ada
! 522a519bdf3184fbe9c278d90eaa0c51  gcc/testsuite/ada/acats-3/tests/ca/ca1022a1.ada
! 457d2a59db3a3a962c68d076c3588ba2  gcc/testsuite/ada/acats-3/tests/ca/ca1022a2.ada
! bead0060014fd3fff3245a6f20e1ce5d  gcc/testsuite/ada/acats-3/tests/ca/ca1022a3.ada
! 7043e3690e3b44d0a6dcf5a6e896118c  gcc/testsuite/ada/acats-3/tests/ca/ca1022a4.ada
! a84d185297f5e0df081a4d1c5691575a  gcc/testsuite/ada/acats-3/tests/ca/ca1022a5.ada
! 3170507b82e5b87d289d4cc70305ba1c  gcc/testsuite/ada/acats-3/tests/ca/ca1022a6.ada
! 43efb4507d79b8829492325770ec57e8  gcc/testsuite/ada/acats-3/tests/ca/ca11001.a
! ac29fbda8eadae439bcd450881bc7149  gcc/testsuite/ada/acats-3/tests/ca/ca11002.a
! b9954b4449d887004c58cdfadf86900e  gcc/testsuite/ada/acats-3/tests/ca/ca11003.a
! 5858be41247b333a8e43986902fba588  gcc/testsuite/ada/acats-3/tests/ca/ca110040.a
! a977e479cabfc8bfede672c52d423864  gcc/testsuite/ada/acats-3/tests/ca/ca110041.a
! a2118dee2a16348d232ec7617376dade  gcc/testsuite/ada/acats-3/tests/ca/ca110042.am
! 4a8c0c2b4dd227cfda4c20ad9ff07ace  gcc/testsuite/ada/acats-3/tests/ca/ca110050.a
! 0583459492312df56b1924ffe5b094bd  gcc/testsuite/ada/acats-3/tests/ca/ca110051.am
! bc46a97640375fa6c02bac82bd0ea9d4  gcc/testsuite/ada/acats-3/tests/ca/ca11006.a
! 7a57ba0892ae966f0111911781c328a7  gcc/testsuite/ada/acats-3/tests/ca/ca11007.a
! 72dc8d276317eabd399e4b72e562434b  gcc/testsuite/ada/acats-3/tests/ca/ca11008.a
! 33d1886825125a9ff16aafa1d4eeb8ce  gcc/testsuite/ada/acats-3/tests/ca/ca11009.a
! 6009d53581cd1fedaaa5f8df00bec83f  gcc/testsuite/ada/acats-3/tests/ca/ca11010.a
! 41dc04e344132ae2173153f802896e15  gcc/testsuite/ada/acats-3/tests/ca/ca11011.a
! d28dd7fd562acb52e90429450077885b  gcc/testsuite/ada/acats-3/tests/ca/ca11012.a
! 3b4e1d1303122a2165d7a89e5ca75ec0  gcc/testsuite/ada/acats-3/tests/ca/ca11013.a
! e80e120c9035b007bb06c2accccbc2b3  gcc/testsuite/ada/acats-3/tests/ca/ca11014.a
! 97408d6755af6eeab48fe47d27144c12  gcc/testsuite/ada/acats-3/tests/ca/ca11015.a
! 8b415d0e8ca6c7725a02853b184967b4  gcc/testsuite/ada/acats-3/tests/ca/ca11016.a
! 5b1b2a824041eeb6d0560a6e32d48287  gcc/testsuite/ada/acats-3/tests/ca/ca11017.a
! df67588f2af1ce9fe9abd12c930a475a  gcc/testsuite/ada/acats-3/tests/ca/ca11018.a
! d51c3aaeac91d325c8cea73a18210a18  gcc/testsuite/ada/acats-3/tests/ca/ca11019.a
! 1740b30abc976744100e38e3bcf58e99  gcc/testsuite/ada/acats-3/tests/ca/ca11020.a
! 3a6518f945e25a1aeb3ad194d1563dff  gcc/testsuite/ada/acats-3/tests/ca/ca11021.a
! 5af82e195906ba434bd96462dc39c4c1  gcc/testsuite/ada/acats-3/tests/ca/ca11022.a
! d31f6ffac288a57d18c545c73969474e  gcc/testsuite/ada/acats-3/tests/ca/ca110230.a
! 32e02fe39dfdad12f29d72279adcac6c  gcc/testsuite/ada/acats-3/tests/ca/ca110231.a
! 4dd492832f8d6bd8bd698f639fa6aca4  gcc/testsuite/ada/acats-3/tests/ca/ca110232.am
! dccf8acb158b9eac07884aeacd894def  gcc/testsuite/ada/acats-3/tests/ca/ca1102a0.ada
! 2ed4ef9cb779e0d0250f3094928e85b6  gcc/testsuite/ada/acats-3/tests/ca/ca1102a1.ada
! d658c78d3feceb2e1e932fd6a6b84b5b  gcc/testsuite/ada/acats-3/tests/ca/ca1102a2.ada
! 50c4e887be1e9c4b7922f1519eb6c980  gcc/testsuite/ada/acats-3/tests/ca/ca1106a.ada
! b777b7cb27b27b07d7781e4ffd98a4ac  gcc/testsuite/ada/acats-3/tests/ca/ca1108a.ada
! 2f0f9c93c1bcab591f855d52670c37f0  gcc/testsuite/ada/acats-3/tests/ca/ca1108b.ada
! d320add603a2cb7fa5b0b27eb3cf9f99  gcc/testsuite/ada/acats-3/tests/ca/ca11a01.a
! 564d10a7c04f96788c8960fbe51c939e  gcc/testsuite/ada/acats-3/tests/ca/ca11a02.a
! c5b8e3a142a8d1aaf458e85e143d2dff  gcc/testsuite/ada/acats-3/tests/ca/ca11b01.a
! 385324ae1a50700efcc3e91d33d38fa7  gcc/testsuite/ada/acats-3/tests/ca/ca11b02.a
! f3ab6e0bea1b83fcd4c3a152e700e0bc  gcc/testsuite/ada/acats-3/tests/ca/ca11c01.a
! 71af51028e9bdd5cbcd5d81ee9beb0b5  gcc/testsuite/ada/acats-3/tests/ca/ca11c02.a
! 623cecaae9f9690a91d838f3795828e4  gcc/testsuite/ada/acats-3/tests/ca/ca11c03.a
! d0d1001f9819954c3537dd82876810a2  gcc/testsuite/ada/acats-3/tests/ca/ca11d010.a
! 9f2dd49cf5ff9af1c2217e51b7065e52  gcc/testsuite/ada/acats-3/tests/ca/ca11d011.a
! df976f60528d7144894c0dec4d84bc15  gcc/testsuite/ada/acats-3/tests/ca/ca11d012.a
! 6caa9498e84d76bdc74f46ac12a1a5e2  gcc/testsuite/ada/acats-3/tests/ca/ca11d013.am
! 0e13dcf32c88dedfbae0b03875ea105d  gcc/testsuite/ada/acats-3/tests/ca/ca11d02.a
! 352a0f61cf20bb4dd3caf17335850840  gcc/testsuite/ada/acats-3/tests/ca/ca11d03.a
! 42dc8152c22ab5df110af0816fda6daa  gcc/testsuite/ada/acats-3/tests/ca/ca120010.a
! 4a591a63cf2ea54c815ce845a57db0b6  gcc/testsuite/ada/acats-3/tests/ca/ca120011.a
! 33dd67cd6352e749c80324a52bce1fca  gcc/testsuite/ada/acats-3/tests/ca/ca120012.am
! 85bba90c6d55a072af31e706a101806b  gcc/testsuite/ada/acats-3/tests/ca/ca12002.a
! 196ff89b7529ee2981f4ecc32c27a27f  gcc/testsuite/ada/acats-3/tests/ca/ca13001.a
! a30bb2c455fbe1c012213193058ea38a  gcc/testsuite/ada/acats-3/tests/ca/ca13002.a
! 259d9991bd14633e726a1465b3ce011f  gcc/testsuite/ada/acats-3/tests/ca/ca13003.a
! 4a04a3ea16a7b5f16f46083006b00231  gcc/testsuite/ada/acats-3/tests/ca/ca13a01.a
! ef93a0b4b9d9c30a5f19c2e9d20d6e84  gcc/testsuite/ada/acats-3/tests/ca/ca13a02.a
! 14642bbab92bb9a06637c81126196b6d  gcc/testsuite/ada/acats-3/tests/ca/ca140230.a
! db8f6b8a7c3fb7fc6f41665ca76898aa  gcc/testsuite/ada/acats-3/tests/ca/ca140231.a
! 2c51220694c3930837b65093969330e9  gcc/testsuite/ada/acats-3/tests/ca/ca140232.am
! 97cc025b6e8c23ed35706e0ff98d4305  gcc/testsuite/ada/acats-3/tests/ca/ca140233.a
! 6df92dded9f1b1b9927e74380e21b606  gcc/testsuite/ada/acats-3/tests/ca/ca140280.a
! 6d433407d31454677f59a9de849b9a8a  gcc/testsuite/ada/acats-3/tests/ca/ca140281.a
! c7d9485411a37bafb94c4d619229cf30  gcc/testsuite/ada/acats-3/tests/ca/ca140282.a
! 0382d20f38d7c210393543ff57720eee  gcc/testsuite/ada/acats-3/tests/ca/ca140283.am
! 3ddbeeafbf30ff3f598a354d6504380d  gcc/testsuite/ada/acats-3/tests/ca/ca15003.a
! 3a4f3b580416cb1f523e9f0ac2eae79d  gcc/testsuite/ada/acats-3/tests/ca/ca200020.a
! 0a900895683bd2063208a7e0ec0179eb  gcc/testsuite/ada/acats-3/tests/ca/ca200021.a
! 7ba1dcfca4bbc7dddaa33358007ad8be  gcc/testsuite/ada/acats-3/tests/ca/ca200022.am
! ef72fc262d0290715b645d5b851eb6c6  gcc/testsuite/ada/acats-3/tests/ca/ca200030.a
! 192d203df19b3fbd0783fa037fb0b579  gcc/testsuite/ada/acats-3/tests/ca/ca200031.am
! 89e55ace469231379417158d76cef966  gcc/testsuite/ada/acats-3/tests/ca/ca2001h0.ada
! 4fcb3c9a010c482fd799920396bdff35  gcc/testsuite/ada/acats-3/tests/ca/ca2001h1.ada
! 74283fc28ee649c49603986ce9271f9b  gcc/testsuite/ada/acats-3/tests/ca/ca2001h2.ada
! 38f9b878948bab9e22743f449944e3e9  gcc/testsuite/ada/acats-3/tests/ca/ca2001h3.ada
! 5b863537f3743728296719d32393b9c2  gcc/testsuite/ada/acats-3/tests/ca/ca2002a0.ada
! bfbaab505e4866cb5784b784957c9a28  gcc/testsuite/ada/acats-3/tests/ca/ca2002a1.ada
! 0915a28827cb6de231954ac4c117a867  gcc/testsuite/ada/acats-3/tests/ca/ca2002a2.ada
! be28bd99026e48f3d74a229aea62f3d3  gcc/testsuite/ada/acats-3/tests/ca/ca2003a0.ada
! bbd409da60934657820661962e6e865f  gcc/testsuite/ada/acats-3/tests/ca/ca2003a1.ada
! e9823de02e5e243ffbc96966ad66f571  gcc/testsuite/ada/acats-3/tests/ca/ca2004a0.ada
! 2a6a75cbeb635fa9b353f4456f15887a  gcc/testsuite/ada/acats-3/tests/ca/ca2004a1.ada
! 9e55a07446b2c4b6f10c94a096696c64  gcc/testsuite/ada/acats-3/tests/ca/ca2004a2.ada
! 95743db093f3de73eef851e06ace6ae5  gcc/testsuite/ada/acats-3/tests/ca/ca2004a3.ada
! 9825991acff14d1e11e40a3568bb2e77  gcc/testsuite/ada/acats-3/tests/ca/ca2004a4.ada
! 1ed6b70320b71de2337bd1e17625341d  gcc/testsuite/ada/acats-3/tests/ca/ca2007a0.ada
! 2d33ec3a837a5a5e131936b8db94f4eb  gcc/testsuite/ada/acats-3/tests/ca/ca2007a1.ada
! 40ec1534c1b7d0a29cd8b1199f0a5b64  gcc/testsuite/ada/acats-3/tests/ca/ca2007a2.ada
! 25e21e36ad48e61821b87c24ac11bca6  gcc/testsuite/ada/acats-3/tests/ca/ca2007a3.ada
! 084eafcf0c9bde63eb9b0c876f25f904  gcc/testsuite/ada/acats-3/tests/ca/ca2008a0.ada
! c367605d05bd5ae5bf81c583e66e2720  gcc/testsuite/ada/acats-3/tests/ca/ca2008a1.ada
! c06ae786d36e4922cea7b5ed9453c9f3  gcc/testsuite/ada/acats-3/tests/ca/ca2008a2.ada
! e6666b45adcad1b99635211e793ed244  gcc/testsuite/ada/acats-3/tests/ca/ca2009a.ada
! 091802695ed73e62107b4d4d28c4fa67  gcc/testsuite/ada/acats-3/tests/ca/ca2009c0.ada
! d4908bcb77941027c20a57e38b3354df  gcc/testsuite/ada/acats-3/tests/ca/ca2009c1.ada
! 8793e38b06624960b964675c87a7bb50  gcc/testsuite/ada/acats-3/tests/ca/ca2009d.ada
! ebd60829cd41edbd06d5d34b1c55ad14  gcc/testsuite/ada/acats-3/tests/ca/ca2009f0.ada
! 84847d496c3551158605ff4d635fd1d6  gcc/testsuite/ada/acats-3/tests/ca/ca2009f1.ada
! 1b68aafa35a5844624d091cb512b83a3  gcc/testsuite/ada/acats-3/tests/ca/ca2009f2.ada
! 82a3883dad29bf7e9b2b43d245e96819  gcc/testsuite/ada/acats-3/tests/ca/ca2011b.ada
! a2806b84bcf970945201d14057ba77fb  gcc/testsuite/ada/acats-3/tests/ca/ca21001.a
! 9b176edf2b085f407ab53c6e7efa0bf0  gcc/testsuite/ada/acats-3/tests/ca/ca3011a0.ada
! a4e05800840beaa80583438f2fe8754d  gcc/testsuite/ada/acats-3/tests/ca/ca3011a1.ada
! c86a5bb82c1bade39f6d9d230f8c9e8e  gcc/testsuite/ada/acats-3/tests/ca/ca3011a2.ada
! dc43067ded3ab1437027708d7812aadb  gcc/testsuite/ada/acats-3/tests/ca/ca3011a3.ada
! b4bbe2bad37830cb59bac3673786910c  gcc/testsuite/ada/acats-3/tests/ca/ca3011a4.ada
! c29e663763861d160ff3432b1e522015  gcc/testsuite/ada/acats-3/tests/ca/ca5003a0.ada
! e5dcfd787f24d6dfedf73b0e116e1352  gcc/testsuite/ada/acats-3/tests/ca/ca5003a1.ada
! 248734cc36c6828c5b5d0a7c1293df27  gcc/testsuite/ada/acats-3/tests/ca/ca5003a2.ada
! 5497b59108e98e726b8af5fae575c343  gcc/testsuite/ada/acats-3/tests/ca/ca5003a3.ada
! 3ca92f928c3fab5699f3ed1cbb10cca7  gcc/testsuite/ada/acats-3/tests/ca/ca5003a4.ada
! 15800c833dc097d881eb01771f2ddb56  gcc/testsuite/ada/acats-3/tests/ca/ca5003a5.ada
! 42a60fa8194ce3db5c65b6814ea59f15  gcc/testsuite/ada/acats-3/tests/ca/ca5003a6.ada
! 0402a0137d3537a7d4ae11fe9268e188  gcc/testsuite/ada/acats-3/tests/ca/ca5003b0.ada
! 56d17409bae5c4f8247c69372dada6a7  gcc/testsuite/ada/acats-3/tests/ca/ca5003b1.ada
! 2ef9cab842c822e5b35867c53e777c18  gcc/testsuite/ada/acats-3/tests/ca/ca5003b2.ada
! 82b234cda282c69bd1cd3343d6564886  gcc/testsuite/ada/acats-3/tests/ca/ca5003b3.ada
! 0e13bff44fe10fc5bb9178c91aa8f41b  gcc/testsuite/ada/acats-3/tests/ca/ca5003b4.ada
! 05dbe877925c828ecc6371bacbfdfa20  gcc/testsuite/ada/acats-3/tests/ca/ca5003b5.ada
! 86085a25df2bcf17731e5abce3a41858  gcc/testsuite/ada/acats-3/tests/ca/ca5004a.ada
! 4663b5feb03415ae2fecb74dc9a6d918  gcc/testsuite/ada/acats-3/tests/ca/ca5004b0.ada
! dac927119e0c75edf0e171d438d99a0b  gcc/testsuite/ada/acats-3/tests/ca/ca5004b1.ada
! fb2c0908bc96e07939ff5f370be3d576  gcc/testsuite/ada/acats-3/tests/ca/ca5004b2.ada
! de4ee9e1d0577cbafe35f74312690093  gcc/testsuite/ada/acats-3/tests/ca/ca5006a.ada
! 953459f6c3ce7331d1cf5e82d075046f  gcc/testsuite/ada/acats-3/tests/cb/cb10002.a
! a2d96f308f3e7c5c03f4f9d216128c1c  gcc/testsuite/ada/acats-3/tests/cb/cb1001a.ada
! c9d819541b343e576525a8dc64f50bcc  gcc/testsuite/ada/acats-3/tests/cb/cb1004a.ada
! cd057227d4389433804bcb77c3065624  gcc/testsuite/ada/acats-3/tests/cb/cb1005a.ada
! 5335053bd77df186552ab553aed53d59  gcc/testsuite/ada/acats-3/tests/cb/cb1010a.ada
! 6be3f5adbcfcbc452379f748a85caa57  gcc/testsuite/ada/acats-3/tests/cb/cb1010c.ada
! 0a7ba5489277a0fcbe1b644ea3d981a3  gcc/testsuite/ada/acats-3/tests/cb/cb1010d.ada
! 6cae622e32e9824d353863435f37029e  gcc/testsuite/ada/acats-3/tests/cb/cb20001.a
! f70c8a2a06450a84e9c16c2c896968c2  gcc/testsuite/ada/acats-3/tests/cb/cb20003.a
! fe4620ca44567358367bbd3cbf625a78  gcc/testsuite/ada/acats-3/tests/cb/cb20004.a
! 35b97a6a98aab2205d9fafa16376dd73  gcc/testsuite/ada/acats-3/tests/cb/cb20005.a
! 2eb8439ac2fe1164f75cef3955ed5f7e  gcc/testsuite/ada/acats-3/tests/cb/cb20006.a
! 14f424c9945ffa51a8ed9b5158035a61  gcc/testsuite/ada/acats-3/tests/cb/cb20007.a
! 81b37c096b48361109ecfd3c0a735d6f  gcc/testsuite/ada/acats-3/tests/cb/cb2004a.ada
! c9e534ca3b39a7e52f750d7ada5b1f05  gcc/testsuite/ada/acats-3/tests/cb/cb2005a.ada
! 5f629a419d744cf6cbdf01ae526e8dfe  gcc/testsuite/ada/acats-3/tests/cb/cb2006a.ada
! 0f62783e4e017c666e439d08382f4081  gcc/testsuite/ada/acats-3/tests/cb/cb2007a.ada
! 0af3543016fdd2ab314c8e3f6944bc98  gcc/testsuite/ada/acats-3/tests/cb/cb20a02.a
! 0f3ac1a00f45f79f0d263ea0c18026ea  gcc/testsuite/ada/acats-3/tests/cb/cb30001.a
! da80eb868ceb5337039000257fc5cf28  gcc/testsuite/ada/acats-3/tests/cb/cb3003a.ada
! 3dcceb335b81c6314b73ec2a12e496dd  gcc/testsuite/ada/acats-3/tests/cb/cb3003b.ada
! db5771a4c4d22f1ee3b2043ea42e688e  gcc/testsuite/ada/acats-3/tests/cb/cb3004a.ada
! e4ecbc4431ab3786f6a71727577cf5f2  gcc/testsuite/ada/acats-3/tests/cb/cb40005.a
! 15fd6a782afdd2e76a85a1ef09b95d91  gcc/testsuite/ada/acats-3/tests/cb/cb4001a.ada
! f00ebf73158afdcf6ccfa56162d1a7c7  gcc/testsuite/ada/acats-3/tests/cb/cb4002a.ada
! 9e17c1d3be3c2acc4c4a761cf058d3c6  gcc/testsuite/ada/acats-3/tests/cb/cb4003a.ada
! 3461f679629a4811d1fce600d7e8b57e  gcc/testsuite/ada/acats-3/tests/cb/cb4004a.ada
! f2db155f6c22f6b30ca696f825ef8aae  gcc/testsuite/ada/acats-3/tests/cb/cb4005a.ada
! b611f921d0e5b0b027e6f69faa9d24b4  gcc/testsuite/ada/acats-3/tests/cb/cb4006a.ada
! baded9fec75a97cb63419083a60cbf79  gcc/testsuite/ada/acats-3/tests/cb/cb4007a.ada
! a4194c712a3e86aa41f29aec96a8f7a7  gcc/testsuite/ada/acats-3/tests/cb/cb4008a.ada
! 930c41db090c6c2c54a36228405c48ac  gcc/testsuite/ada/acats-3/tests/cb/cb4009a.ada
! 72f5c28e26994805b38b887c725d411c  gcc/testsuite/ada/acats-3/tests/cb/cb4013a.ada
! 7cebdcd4f0159fb009f28f53b4f1d2aa  gcc/testsuite/ada/acats-3/tests/cb/cb40a01.a
! c5d94b1d4e0e31956d3f563cd7632df6  gcc/testsuite/ada/acats-3/tests/cb/cb40a020.a
! 1826a245b36f70926f1d010c4bb03b56  gcc/testsuite/ada/acats-3/tests/cb/cb40a021.am
! dd4b04d0ff15d88ce5e37562087104b8  gcc/testsuite/ada/acats-3/tests/cb/cb40a030.a
! ce7a78707740e7c8442c44280bd4b429  gcc/testsuite/ada/acats-3/tests/cb/cb40a031.am
! 27770d52ee37e90d5cd9748807eab53e  gcc/testsuite/ada/acats-3/tests/cb/cb40a04.a
! fee21ac92aa6b69bea4a12f412715df6  gcc/testsuite/ada/acats-3/tests/cb/cb41001.a
! 3bbe3f0aeccac5d0203ed045c2ccf49e  gcc/testsuite/ada/acats-3/tests/cb/cb41002.a
! d456462b7a7e6f3773b86bf24468d231  gcc/testsuite/ada/acats-3/tests/cb/cb41003.a
! 52c5e4b6a8d77b120f571623f547a197  gcc/testsuite/ada/acats-3/tests/cb/cb41004.a
! d0966c8e064d920ad9d15b0e1e8acd1b  gcc/testsuite/ada/acats-3/tests/cb/cb42001.a
! f44ad7e2a4e69bd7a329f8d93bb15c88  gcc/testsuite/ada/acats-3/tests/cb/cb42002.a
! e6c3ed65a752c9adb9850b8254371888  gcc/testsuite/ada/acats-3/tests/cb/cb42003.a
! 01e2daee09a3391b981c7a63ebe0ae28  gcc/testsuite/ada/acats-3/tests/cb/cb5001a.ada
! 5a22bfb3766d46433b2b7b2f046d0ea9  gcc/testsuite/ada/acats-3/tests/cb/cb5001b.ada
! 63153559a0add5135a21197c6c8c0a9f  gcc/testsuite/ada/acats-3/tests/cb/cb5002a.ada
! 52c10586939e5289ffc5276a6a4d9e3e  gcc/testsuite/ada/acats-3/tests/cc/cc1004a.ada
! abeb72a1acbce60114f56d558d1481a5  gcc/testsuite/ada/acats-3/tests/cc/cc1005b.ada
! e52fa7b734609c2fde5f5260ff000f57  gcc/testsuite/ada/acats-3/tests/cc/cc1010a.ada
! 4af2da441a155dbd4ee2be7e5afcdb99  gcc/testsuite/ada/acats-3/tests/cc/cc1010b.ada
! 3943b41b051f4e223a5fe3b067dd4750  gcc/testsuite/ada/acats-3/tests/cc/cc1018a.ada
! 8b9f3eb4b897035fcc0c08981fa94cd0  gcc/testsuite/ada/acats-3/tests/cc/cc1104c.ada
! 6dde1021fb59bfd89f7e89e10c4dc040  gcc/testsuite/ada/acats-3/tests/cc/cc1107b.ada
! fd9ff835b201890341a69a2bf568186d  gcc/testsuite/ada/acats-3/tests/cc/cc1111a.ada
! 3a2e06563ce5c65cb9f2734c9b5901b2  gcc/testsuite/ada/acats-3/tests/cc/cc1204a.ada
! ec00ecaace8abe97b14deef79a927278  gcc/testsuite/ada/acats-3/tests/cc/cc1207b.ada
! d5b96d46768e2afc1db48bccdd883c3d  gcc/testsuite/ada/acats-3/tests/cc/cc1220a.ada
! fe4da7912a4f8ebd90feecf1233d1cdd  gcc/testsuite/ada/acats-3/tests/cc/cc1221a.ada
! 25b2b3dc12b77cbf205ab8f38dcfb77d  gcc/testsuite/ada/acats-3/tests/cc/cc1221b.ada
! 9145c4850d40180754446ef574cb5fc0  gcc/testsuite/ada/acats-3/tests/cc/cc1221c.ada
! c4c966046fba1bd9875ab2ac270f27d0  gcc/testsuite/ada/acats-3/tests/cc/cc1221d.ada
! ec00a589846feb2b9117000ba453bb4d  gcc/testsuite/ada/acats-3/tests/cc/cc1222a.ada
! 9098cb80c67049808425c47b419fac81  gcc/testsuite/ada/acats-3/tests/cc/cc1223a.ada
! ebb1accb64bb0bc75b36cc4d7667f11e  gcc/testsuite/ada/acats-3/tests/cc/cc1224a.ada
! 252dcf9d499b779ceb6ff22b740614f3  gcc/testsuite/ada/acats-3/tests/cc/cc1225a.tst
! bd7909fda37c73e6a7b55033af7a7073  gcc/testsuite/ada/acats-3/tests/cc/cc1226b.ada
! 6c7f653283771ea8e72f38f30cca417e  gcc/testsuite/ada/acats-3/tests/cc/cc1227a.ada
! a59ea76111c1c30abdfc81e140c2ad1e  gcc/testsuite/ada/acats-3/tests/cc/cc1301a.ada
! 54718ced426c8406bfe76f085e364b70  gcc/testsuite/ada/acats-3/tests/cc/cc1302a.ada
! 0e4bf36981636de5140e59f431e9a750  gcc/testsuite/ada/acats-3/tests/cc/cc1304a.ada
! 8b8017d0f141d2d1f196915bb0d9086f  gcc/testsuite/ada/acats-3/tests/cc/cc1304b.ada
! 5c30254607e6be149633cccc49ed0eed  gcc/testsuite/ada/acats-3/tests/cc/cc1307a.ada
! 074dfbafa7a711ae864c0c7a3551c2c1  gcc/testsuite/ada/acats-3/tests/cc/cc1307b.ada
! 99a71a5de9c88311f519834c73dd819d  gcc/testsuite/ada/acats-3/tests/cc/cc1308a.ada
! f7d1a2abebaff0b7213722ac29bc699a  gcc/testsuite/ada/acats-3/tests/cc/cc1310a.ada
! 02f17d4f3889eba61e039a52d84ad466  gcc/testsuite/ada/acats-3/tests/cc/cc1311a.ada
! ab2512302d5429785277d9bb46d6c87b  gcc/testsuite/ada/acats-3/tests/cc/cc1311b.ada
! 1653180dc4be9e4015e8cad4546ded2c  gcc/testsuite/ada/acats-3/tests/cc/cc2002a.ada
! 5368d883d7adafccb7c415ab1a83c7f2  gcc/testsuite/ada/acats-3/tests/cc/cc30001.a
! 9240ec87a1cc555c3c6e829f22480b0f  gcc/testsuite/ada/acats-3/tests/cc/cc30002.a
! 9b67ed4b6d94e785f623555841e44c4c  gcc/testsuite/ada/acats-3/tests/cc/cc30003.a
! 7b9e43d5af304e75a87ba957fae6500b  gcc/testsuite/ada/acats-3/tests/cc/cc30004.a
! 258d4b8f83d4c17eda45265db8a66c46  gcc/testsuite/ada/acats-3/tests/cc/cc3004a.ada
! 1422918611096dedc710ededab9fc1d3  gcc/testsuite/ada/acats-3/tests/cc/cc3007a.ada
! faee4cb0106ee6d683bf7e7a208050dc  gcc/testsuite/ada/acats-3/tests/cc/cc3007b.ada
! 43f939c986863c3151fb21fae7ad81a8  gcc/testsuite/ada/acats-3/tests/cc/cc3011a.ada
! e21f329f8aeeeaaf980ab3ae301de7cb  gcc/testsuite/ada/acats-3/tests/cc/cc3011d.ada
! 021bd9a65cf3be3535547519f5ceb651  gcc/testsuite/ada/acats-3/tests/cc/cc3012a.ada
! eb08409ceff83c49baa04e734c258681  gcc/testsuite/ada/acats-3/tests/cc/cc3015a.ada
! 37ffe8fd743867700b2e0249fd73f16b  gcc/testsuite/ada/acats-3/tests/cc/cc3016b.ada
! 92e8dfd4f50c7e3595bbd6ef5ebb4302  gcc/testsuite/ada/acats-3/tests/cc/cc3016c.ada
! 3bb5847d2c36a04a53a9dc138c40e34a  gcc/testsuite/ada/acats-3/tests/cc/cc3016f.ada
! 195ab10c1ca9bbfd5b16ade12e3259e2  gcc/testsuite/ada/acats-3/tests/cc/cc3016i.ada
! a5976b043f8ea78109e2936d58a009a8  gcc/testsuite/ada/acats-3/tests/cc/cc3017b.ada
! 21e94c5f1086f6624d5237d010ecc0f2  gcc/testsuite/ada/acats-3/tests/cc/cc3017c.ada
! 2fb78d8d58d12070086164535de0efda  gcc/testsuite/ada/acats-3/tests/cc/cc3019a.ada
! a0315fd5149893475278feb9b8d7013b  gcc/testsuite/ada/acats-3/tests/cc/cc3019b0.ada
! 207f4488242efc2b7a5c80c0cd47410b  gcc/testsuite/ada/acats-3/tests/cc/cc3019b1.ada
! 5688bc525157eef2f521d23f1a720672  gcc/testsuite/ada/acats-3/tests/cc/cc3019b2.ada
! e5522bd1515d2f7df4fdd2bafaf481fb  gcc/testsuite/ada/acats-3/tests/cc/cc3019c0.ada
! c326bc3fa236d9094e60f3ecabd7d0de  gcc/testsuite/ada/acats-3/tests/cc/cc3019c1.ada
! 4e308a4f2724a46a2eb3a8426f98265f  gcc/testsuite/ada/acats-3/tests/cc/cc3019c2.ada
! cd9a188b6b1ecf3863d42065ce445792  gcc/testsuite/ada/acats-3/tests/cc/cc3106b.ada
! b1b639f80dbd48bf241b7d05c36362e6  gcc/testsuite/ada/acats-3/tests/cc/cc3120a.ada
! f06e709416c9d57a31113226d02abf07  gcc/testsuite/ada/acats-3/tests/cc/cc3120b.ada
! e09fb340ff80c10cbecd4b83e746eef2  gcc/testsuite/ada/acats-3/tests/cc/cc3121a.ada
! 302527c5f7e5e7497411775d418850b0  gcc/testsuite/ada/acats-3/tests/cc/cc3123a.ada
! 2575fc22f53f2a5308182459add72a14  gcc/testsuite/ada/acats-3/tests/cc/cc3125a.ada
! 4f59d6fe9227d671293a8fecd22f9101  gcc/testsuite/ada/acats-3/tests/cc/cc3125b.ada
! a1164d012410441b7190f2e96d6ce7c6  gcc/testsuite/ada/acats-3/tests/cc/cc3125c.ada
! 8a71d919069253ce368ef3103ee770c8  gcc/testsuite/ada/acats-3/tests/cc/cc3125d.ada
! ae116bcf41f79383e2dba5094b290b3f  gcc/testsuite/ada/acats-3/tests/cc/cc3126a.ada
! de2792bcfe94fa04d80a2c8ecf74db33  gcc/testsuite/ada/acats-3/tests/cc/cc3127a.ada
! a9709bfb589a677927644fb64dffa39c  gcc/testsuite/ada/acats-3/tests/cc/cc3128a.ada
! eeae81e69cab3987783ac508ffbebc5c  gcc/testsuite/ada/acats-3/tests/cc/cc3203a.ada
! a4d077af707d747e7c7f4f145a33e013  gcc/testsuite/ada/acats-3/tests/cc/cc3207b.ada
! 4525f7929e8bbeab0d61377f11afa3b8  gcc/testsuite/ada/acats-3/tests/cc/cc3220a.ada
! e8cc62fb0584ebfbe49d22d70abf54f4  gcc/testsuite/ada/acats-3/tests/cc/cc3221a.ada
! fbf1f50c254b6c5361e7d43b8efa783c  gcc/testsuite/ada/acats-3/tests/cc/cc3222a.ada
! 06202a4a37521548f15b8f63b30331cf  gcc/testsuite/ada/acats-3/tests/cc/cc3223a.ada
! d6d9973ddd1a38d34208ece4853e3e54  gcc/testsuite/ada/acats-3/tests/cc/cc3224a.ada
! 9d8a01fd3692524cef3f688f08e8820e  gcc/testsuite/ada/acats-3/tests/cc/cc3225a.ada
! 0b4db0bdcd8b5f809a2a0976c2fd65a2  gcc/testsuite/ada/acats-3/tests/cc/cc3230a.ada
! ecf0a337f74761749dd005a8b934ae2d  gcc/testsuite/ada/acats-3/tests/cc/cc3231a.ada
! 536583cad34553553ba201c11a12e136  gcc/testsuite/ada/acats-3/tests/cc/cc3232a.ada
! 29722620be1cef89562f63d778feb319  gcc/testsuite/ada/acats-3/tests/cc/cc3233a.ada
! 55b7f83f0d13dd0bbbc615bec20f7f58  gcc/testsuite/ada/acats-3/tests/cc/cc3234a.ada
! 174e858e451ed1d671a07a674320a404  gcc/testsuite/ada/acats-3/tests/cc/cc3235a.ada
! 1966408531cce82c0dee0cdb997e2d83  gcc/testsuite/ada/acats-3/tests/cc/cc3236a.ada
! 69f2b9819e916eb5bef41d74a6bf059e  gcc/testsuite/ada/acats-3/tests/cc/cc3240a.ada
! 134c20d477e6856df2b370dc7cfda1a4  gcc/testsuite/ada/acats-3/tests/cc/cc3305a.ada
! 6ff147856008d1bc23082c84a6dce358  gcc/testsuite/ada/acats-3/tests/cc/cc3305b.ada
! 75b310968a34fc081580d58bd1747ea3  gcc/testsuite/ada/acats-3/tests/cc/cc3305c.ada
! e41c2fcae5aa76bb6cd566a6a34b9e73  gcc/testsuite/ada/acats-3/tests/cc/cc3305d.ada
! 54ae1b7ff14c3a948a87f71ab9b7ae53  gcc/testsuite/ada/acats-3/tests/cc/cc3601a.ada
! 1d5d61ff6eda390e054673a067185feb  gcc/testsuite/ada/acats-3/tests/cc/cc3601c.ada
! 14a6f6048e3bda5108a0dac8dc736e44  gcc/testsuite/ada/acats-3/tests/cc/cc3602a.ada
! 73b205844c7501b9750b69b66d91e84c  gcc/testsuite/ada/acats-3/tests/cc/cc3603a.ada
! 509cb0b6a7b3daf93118e0e4310a8889  gcc/testsuite/ada/acats-3/tests/cc/cc3605a.ada
! b81c8580788eaf032722950c55524548  gcc/testsuite/ada/acats-3/tests/cc/cc3606a.ada
! 5232a6ea1beea12bb0c271a9c0728bcc  gcc/testsuite/ada/acats-3/tests/cc/cc3606b.ada
! 2f46f9edadb7856b60273822fbd7c6dc  gcc/testsuite/ada/acats-3/tests/cc/cc3607b.ada
! 59c4b0341104cc61677baaee002ac38c  gcc/testsuite/ada/acats-3/tests/cc/cc40001.a
! 6d5d6f00038ccaafe12d5f471a488085  gcc/testsuite/ada/acats-3/tests/cc/cc50001.a
! 8cb4adfbf6723ce3680f41b59f744fe9  gcc/testsuite/ada/acats-3/tests/cc/cc50a01.a
! 508d46d79897dc7252508cdafdbbfaa1  gcc/testsuite/ada/acats-3/tests/cc/cc50a02.a
! 146e71ceb1d037e4099e8ecb6e127614  gcc/testsuite/ada/acats-3/tests/cc/cc51001.a
! 58d73c0c5456a6a21ebbaef95df38606  gcc/testsuite/ada/acats-3/tests/cc/cc51002.a
! e096e928fb49f1e659293619c383c7f1  gcc/testsuite/ada/acats-3/tests/cc/cc51003.a
! a373845361c49771cf3d23fbbfc043de  gcc/testsuite/ada/acats-3/tests/cc/cc51004.a
! f57dbf49aca26d9bd043ebddae124c8e  gcc/testsuite/ada/acats-3/tests/cc/cc51006.a
! ed5459250c5b2a65cf4b7a7c678c41b5  gcc/testsuite/ada/acats-3/tests/cc/cc51007.a
! edb35d02b7ba72e7720c2eaf7fefe5bf  gcc/testsuite/ada/acats-3/tests/cc/cc51008.a
! 91f9a7214da9eed7db005bf7e3119ddc  gcc/testsuite/ada/acats-3/tests/cc/cc51a01.a
! 123f5aa956187735f0e077abedfd8f93  gcc/testsuite/ada/acats-3/tests/cc/cc51b03.a
! 557497dc9fd80ad665e468b409621ee1  gcc/testsuite/ada/acats-3/tests/cc/cc51d01.a
! 31462b6f268d175f3a915242afd8ea4d  gcc/testsuite/ada/acats-3/tests/cc/cc51d02.a
! 8b56f900a407dc994866f74c2c67f98e  gcc/testsuite/ada/acats-3/tests/cc/cc54001.a
! 65d5b89a1c15ad3234bf150dbe3c9235  gcc/testsuite/ada/acats-3/tests/cc/cc54002.a
! 04d1ce4f2960ed9b647a0bc397f920c2  gcc/testsuite/ada/acats-3/tests/cc/cc54003.a
! 0e1a91d2dfd0e6b36d65c5cfb02883dc  gcc/testsuite/ada/acats-3/tests/cc/cc54004.a
! 78a31a5dec6479884c93ea3280e5c8d6  gcc/testsuite/ada/acats-3/tests/cc/cc60001.a
! c29ebf7d9a6ed65bca0e83b18c63bbcc  gcc/testsuite/ada/acats-3/tests/cc/cc70001.a
! eb1b9be669a38ce3989d9340fb2dc933  gcc/testsuite/ada/acats-3/tests/cc/cc70002.a
! b1df852c3d5deec3247a4e17e9fb4dc6  gcc/testsuite/ada/acats-3/tests/cc/cc70003.a
! 9f1565b83bb2fa8ee588283eaa27cf37  gcc/testsuite/ada/acats-3/tests/cc/cc70a01.a
! 0bb1d67b6fb03b14e1b2f2062d01417d  gcc/testsuite/ada/acats-3/tests/cc/cc70a02.a
! ee68b4ea46957b2abff5e05bc98eeb76  gcc/testsuite/ada/acats-3/tests/cc/cc70b01.a
! 8c472987131321e68210b34029de25a7  gcc/testsuite/ada/acats-3/tests/cc/cc70b02.a
! 1a10fab698e0e1c3d985d63a8fd02646  gcc/testsuite/ada/acats-3/tests/cc/cc70c01.a
! 630e79ef7ad77506e6bc0443bc253106  gcc/testsuite/ada/acats-3/tests/cc/cc70c02.a
! 8cc4511c2ef1cbd2694c11e81a40fba3  gcc/testsuite/ada/acats-3/tests/cd/cd10001.a
! 17bd7ceca16a2b5b05c09e2bf540cb49  gcc/testsuite/ada/acats-3/tests/cd/cd10002.a
! 4e3da95c629f1132a7605c755936df22  gcc/testsuite/ada/acats-3/tests/cd/cd1009a.ada
! 75d6166e3a9b874d8b18037b2bbd7774  gcc/testsuite/ada/acats-3/tests/cd/cd1009b.ada
! fb2d00d22c6dc289be9e7485d1057b88  gcc/testsuite/ada/acats-3/tests/cd/cd1009d.ada
! 0f7c8765f0bcfd92843011f7699a3515  gcc/testsuite/ada/acats-3/tests/cd/cd1009e.ada
! 278b82d91f416169138eaedebaee0e88  gcc/testsuite/ada/acats-3/tests/cd/cd1009f.ada
! c5d7abbf75d5228f8ee64b921461c34d  gcc/testsuite/ada/acats-3/tests/cd/cd1009g.ada
! 05621471548ccc18ff9a5e104f81afde  gcc/testsuite/ada/acats-3/tests/cd/cd1009h.ada
! 529178df08dc16ac0af024a1fd6bfb53  gcc/testsuite/ada/acats-3/tests/cd/cd1009i.ada
! 365257c1306da6752feb59e62ac38bdf  gcc/testsuite/ada/acats-3/tests/cd/cd1009j.ada
! 03b1bb47c24a014bd2530417d1adf9b2  gcc/testsuite/ada/acats-3/tests/cd/cd1009k.tst
! 06bdced5a41c98c87e673e382a9688bb  gcc/testsuite/ada/acats-3/tests/cd/cd1009l.ada
! f8f71aa9e49974d6cf320e70c4b0ecbf  gcc/testsuite/ada/acats-3/tests/cd/cd1009m.ada
! f29ec324e7b0ec1f2f6dd2240fc728d8  gcc/testsuite/ada/acats-3/tests/cd/cd1009n.ada
! cae30866eb5c8c2cfb27698eb8ddbde0  gcc/testsuite/ada/acats-3/tests/cd/cd1009o.ada
! d3eb7538a98ec14ae8d521733ba57af7  gcc/testsuite/ada/acats-3/tests/cd/cd1009p.ada
! b8730acac7650dbd31ddd035bc69f509  gcc/testsuite/ada/acats-3/tests/cd/cd1009q.ada
! c358e33b93c2826e889494a0f5ed0843  gcc/testsuite/ada/acats-3/tests/cd/cd1009r.ada
! bc1961d8c175f48f60b3e9f057a9c72a  gcc/testsuite/ada/acats-3/tests/cd/cd1009s.ada
! 97707e58ce3c7a72dc76f39b8a718701  gcc/testsuite/ada/acats-3/tests/cd/cd1009t.tst
! 692d5e6fe6286682bb5eaaa37bbb3deb  gcc/testsuite/ada/acats-3/tests/cd/cd1009u.tst
! 907fdf446e490f986c267dd4b8d31baf  gcc/testsuite/ada/acats-3/tests/cd/cd1009v.ada
! 53fd05330599e7a416f8be2f4b93f8db  gcc/testsuite/ada/acats-3/tests/cd/cd1009w.ada
! 6e1baf3329c3ff434b0b23406203b126  gcc/testsuite/ada/acats-3/tests/cd/cd1009x.ada
! 992350215516da7fa9fc873f9d5f405e  gcc/testsuite/ada/acats-3/tests/cd/cd1009y.ada
! fb78c3da6117cb6f992401e7c6afde33  gcc/testsuite/ada/acats-3/tests/cd/cd1009z.ada
! 5b32d31e23b1f46b777ddb79782d91bc  gcc/testsuite/ada/acats-3/tests/cd/cd1c03a.ada
! 33753d6d5cc05f96879e603e7e4239ed  gcc/testsuite/ada/acats-3/tests/cd/cd1c03b.ada
! bb197eb3c945f5f3165b484b8d052169  gcc/testsuite/ada/acats-3/tests/cd/cd1c03c.ada
! d532f2cddb2a1d42073af8bead380310  gcc/testsuite/ada/acats-3/tests/cd/cd1c03e.tst
! 31687b0c41570bd2e2caf21db4be46d3  gcc/testsuite/ada/acats-3/tests/cd/cd1c03f.ada
! e0216b320efd829ccdc65f5d5771bcbb  gcc/testsuite/ada/acats-3/tests/cd/cd1c03g.ada
! c46fc765c5f46303364ae7f735fd4155  gcc/testsuite/ada/acats-3/tests/cd/cd1c03h.ada
! e99adb592df5a1337ea0d1ba20e1ea56  gcc/testsuite/ada/acats-3/tests/cd/cd1c03i.ada
! 356e60fd22404e9284ce91535fb26d24  gcc/testsuite/ada/acats-3/tests/cd/cd1c04a.ada
! e23985efbd7775125639e267122b2530  gcc/testsuite/ada/acats-3/tests/cd/cd1c04d.ada
! 960f74b381e41f1c5aca4cb19a43ba24  gcc/testsuite/ada/acats-3/tests/cd/cd1c04e.ada
! f4445570707e4cfc05845c2942f2a691  gcc/testsuite/ada/acats-3/tests/cd/cd1c06a.tst
! 38c0ca7c9c40e40a65ebac293401406d  gcc/testsuite/ada/acats-3/tests/cd/cd20001.a
! 6840d06bfa723e58150ad53215d31eaf  gcc/testsuite/ada/acats-3/tests/cd/cd2a21a.ada
! 16f1f72fade5db004d66971714b76535  gcc/testsuite/ada/acats-3/tests/cd/cd2a21c.ada
! 9955b221c78032f3aa68113cb414afea  gcc/testsuite/ada/acats-3/tests/cd/cd2a21e.ada
! 138413c4349c431ae13135443971a255  gcc/testsuite/ada/acats-3/tests/cd/cd2a22a.ada
! 2ecbd329e980e8d80615287a05917c3c  gcc/testsuite/ada/acats-3/tests/cd/cd2a22e.ada
! fa618469f3bfe667b6991f706078ceee  gcc/testsuite/ada/acats-3/tests/cd/cd2a22i.ada
! 17cd76bca6e556da829dc167dd37416d  gcc/testsuite/ada/acats-3/tests/cd/cd2a22j.ada
! 165d140694576ed2e1610ce9cf23d710  gcc/testsuite/ada/acats-3/tests/cd/cd2a23a.ada
! ee7517fa66b44ea029fa5afd44d3dfda  gcc/testsuite/ada/acats-3/tests/cd/cd2a23e.ada
! 7406649d9c3a6c13d39de22cbbbed6c0  gcc/testsuite/ada/acats-3/tests/cd/cd2a24a.ada
! 42e0bfe93795136ebcd4a60e074e3d13  gcc/testsuite/ada/acats-3/tests/cd/cd2a24e.ada
! 3812be2a4f7026b0ea147488e4e11b79  gcc/testsuite/ada/acats-3/tests/cd/cd2a24i.ada
! b5db777461ec4b929a5d956caae5ab6c  gcc/testsuite/ada/acats-3/tests/cd/cd2a24j.ada
! 01ec2329faee0b5aa7957719bee0a023  gcc/testsuite/ada/acats-3/tests/cd/cd2a31a.ada
! 5cfa1167dd7ab84a3f1390d1ef40e5a8  gcc/testsuite/ada/acats-3/tests/cd/cd2a31c.ada
! 25cf5e2245fd319818051c6d58e33e34  gcc/testsuite/ada/acats-3/tests/cd/cd2a31e.ada
! fe2d9184c16158b464a66d55f5f012e0  gcc/testsuite/ada/acats-3/tests/cd/cd2a32a.ada
! c89035c306f20662287a41260e41c440  gcc/testsuite/ada/acats-3/tests/cd/cd2a32c.ada
! 5a16f63c007776f1d0e621124c28ba40  gcc/testsuite/ada/acats-3/tests/cd/cd2a32e.ada
! 509f33673d8a806e1fc5c994ecd367a7  gcc/testsuite/ada/acats-3/tests/cd/cd2a32g.ada
! 9f1153cc00985eff630f5a7529e785a6  gcc/testsuite/ada/acats-3/tests/cd/cd2a32i.ada
! 3b52721a12cbabf7af952961ab000124  gcc/testsuite/ada/acats-3/tests/cd/cd2a32j.ada
! b0ce5f538de9c46a7f93bb98b76a16c2  gcc/testsuite/ada/acats-3/tests/cd/cd2a51a.ada
! fc6c3486ba94594cbb01735d7665ee4c  gcc/testsuite/ada/acats-3/tests/cd/cd2a53a.ada
! e22ea0a1bf1e45a9cc8941659d5de2bc  gcc/testsuite/ada/acats-3/tests/cd/cd2a53e.ada
! 800cb5fbfa61381b047623e515b331e9  gcc/testsuite/ada/acats-3/tests/cd/cd2a83c.tst
! 890942afd45f173d9c7a48fcd9b93b9e  gcc/testsuite/ada/acats-3/tests/cd/cd2a91c.tst
! 8bf8bb847340d421752506f84e4d2970  gcc/testsuite/ada/acats-3/tests/cd/cd2b11b.ada
! c32d32bcd93ad954d2d4fd55f825977f  gcc/testsuite/ada/acats-3/tests/cd/cd2b11d.ada
! 1a738e39f3f9e6241c1210e391c74d04  gcc/testsuite/ada/acats-3/tests/cd/cd2b11e.ada
! 4c72be933f221db34e2a0e081b1987cb  gcc/testsuite/ada/acats-3/tests/cd/cd2b11f.ada
! 29657353f6d86b0ea8f7696b58cc2fe9  gcc/testsuite/ada/acats-3/tests/cd/cd2b16a.ada
! d5241430c4b7db939bd5e77692bf37b4  gcc/testsuite/ada/acats-3/tests/cd/cd2c11a.tst
! 90bc2d2d244c54d7f4a3cd052f4ec35f  gcc/testsuite/ada/acats-3/tests/cd/cd2c11d.tst
! c6ae74fd392f1fb6040ba95b1d1ae6f0  gcc/testsuite/ada/acats-3/tests/cd/cd2d11a.ada
! cdcdd3477a39a731b6a087ee53c8d310  gcc/testsuite/ada/acats-3/tests/cd/cd2d13a.ada
! 76610aaf77050e2ff007a677818d736b  gcc/testsuite/ada/acats-3/tests/cd/cd30001.a
! 074a289ffe88ab1f82a7410cb923d4e9  gcc/testsuite/ada/acats-3/tests/cd/cd30002.a
! 3c6e9682493e7e0159a203d7641e1a2e  gcc/testsuite/ada/acats-3/tests/cd/cd30003.a
! 58da39f40326823d0b3dcca45acdc03a  gcc/testsuite/ada/acats-3/tests/cd/cd30004.a
! 1c50e51c3b821e3d109ed5a501745811  gcc/testsuite/ada/acats-3/tests/cd/cd300050.am
! 56a32782666a26425c694389d3141e71  gcc/testsuite/ada/acats-3/tests/cd/cd300051.c
! 6975fda95f2626a0f390cafdd2c40ca5  gcc/testsuite/ada/acats-3/tests/cd/cd30008.a
! 6c5358b148b289c9414824f3eca6c829  gcc/testsuite/ada/acats-3/tests/cd/cd30009.a
! 53302b5bf903a58fb95e205690813d78  gcc/testsuite/ada/acats-3/tests/cd/cd30011.a
! 03b96d80ed2b752193a510629a87cc3c  gcc/testsuite/ada/acats-3/tests/cd/cd30012.a
! a8163e0d624406b874260e4169d9e49c  gcc/testsuite/ada/acats-3/tests/cd/cd3014a.ada
! b3c46e3333ad22ce02ee156f3f0bccff  gcc/testsuite/ada/acats-3/tests/cd/cd3014c.ada
! a341da17e2d571e891434aa086ae7d3e  gcc/testsuite/ada/acats-3/tests/cd/cd3014d.ada
! 204d7f2709b5ba9cddcb718fc3d8ec18  gcc/testsuite/ada/acats-3/tests/cd/cd3014f.ada
! a86fa642d37091be0c5e5119e8c46645  gcc/testsuite/ada/acats-3/tests/cd/cd3015a.ada
! 38a79cfd7d26ff49fc8ee336963b178f  gcc/testsuite/ada/acats-3/tests/cd/cd3015c.ada
! 516902a49ddef41f79ee415e4edbb912  gcc/testsuite/ada/acats-3/tests/cd/cd3015e.ada
! 21588812fb8df6d087570f29c23c5d39  gcc/testsuite/ada/acats-3/tests/cd/cd3015f.ada
! c8a6fa2243d818236602663b274b5ba9  gcc/testsuite/ada/acats-3/tests/cd/cd3015g.ada
! c31ca49858b05c8ca516526b0e15945f  gcc/testsuite/ada/acats-3/tests/cd/cd3015h.ada
! c130ab902d51f975c0efadc0d44c9361  gcc/testsuite/ada/acats-3/tests/cd/cd3015i.ada
! 2fa00ee1e19df0bb0e4dc668c1d238fd  gcc/testsuite/ada/acats-3/tests/cd/cd3015k.ada
! 0c71d1dfc5a7d7c4d232217c2ef3e00f  gcc/testsuite/ada/acats-3/tests/cd/cd3021a.ada
! 02bab37ae5532979da2b39be8f1f447f  gcc/testsuite/ada/acats-3/tests/cd/cd33001.a
! 164945bdb98657e50508d0be9d5e1711  gcc/testsuite/ada/acats-3/tests/cd/cd33002.a
! fd95d787e27f8f80c3bccc691bf0417d  gcc/testsuite/ada/acats-3/tests/cd/cd40001.a
! a3f551b50734da9e1de425c6988b1f43  gcc/testsuite/ada/acats-3/tests/cd/cd4031a.ada
! 1363b8d9d26525600395a9118a1a4041  gcc/testsuite/ada/acats-3/tests/cd/cd4041a.tst
! 255be84f9bd123a67360189ab2d64cdf  gcc/testsuite/ada/acats-3/tests/cd/cd4051a.ada
! 37ae7a5703b3780f73cd5ae4eb39621a  gcc/testsuite/ada/acats-3/tests/cd/cd4051b.ada
! 07adf8476ba0c5e57a2bea963c120c2a  gcc/testsuite/ada/acats-3/tests/cd/cd4051c.ada
! cf5f11fa4855f5f18dba58d556b7ca63  gcc/testsuite/ada/acats-3/tests/cd/cd4051d.ada
! 20478b00e54601fd76a247d8a78c4a8f  gcc/testsuite/ada/acats-3/tests/cd/cd5003a.ada
! 4cff6e4a9ec3d2900f66bfc5693af89a  gcc/testsuite/ada/acats-3/tests/cd/cd5003b.ada
! d13512a51a4eb52527563404909e596e  gcc/testsuite/ada/acats-3/tests/cd/cd5003c.ada
! 4652d6ed2c04ade1800842b5dbfdabf9  gcc/testsuite/ada/acats-3/tests/cd/cd5003d.ada
! 005bf8518b263e4cee4d26c5db87e58b  gcc/testsuite/ada/acats-3/tests/cd/cd5003e.ada
! 8ff99eb70e788c11615ac412a1a7b4fb  gcc/testsuite/ada/acats-3/tests/cd/cd5003f.ada
! 719c829d93aa5b1f5984a681101887d3  gcc/testsuite/ada/acats-3/tests/cd/cd5003g.ada
! a7821be04ce2545857881e21292d5867  gcc/testsuite/ada/acats-3/tests/cd/cd5003h.ada
! 3491fd905bd30777ef1fbdfae6595acf  gcc/testsuite/ada/acats-3/tests/cd/cd5003i.ada
! 88b907e17fa7e933c0aa985bcbdba611  gcc/testsuite/ada/acats-3/tests/cd/cd5011a.ada
! 502c219e404c935fb79b18a5bc9edb77  gcc/testsuite/ada/acats-3/tests/cd/cd5011c.ada
! 71b7123461788aab03963e62fecc0ba3  gcc/testsuite/ada/acats-3/tests/cd/cd5011e.ada
! 8ee70bf0284e509f67c72903d25709f7  gcc/testsuite/ada/acats-3/tests/cd/cd5011g.ada
! 3b37531d4672ce7853d736e20f205d9e  gcc/testsuite/ada/acats-3/tests/cd/cd5011i.ada
! b1bd44ec7ae1e5e46e2aecd8d6f8f7b7  gcc/testsuite/ada/acats-3/tests/cd/cd5011k.ada
! b632fa011acdccee9f2b9fb3b5a030bf  gcc/testsuite/ada/acats-3/tests/cd/cd5011m.ada
! fd5e412763d1e844067af789a1ac1c48  gcc/testsuite/ada/acats-3/tests/cd/cd5011q.ada
! ee93e2b7d81f47c56f7b7ad4552b21bb  gcc/testsuite/ada/acats-3/tests/cd/cd5011s.ada
! 47d11b263404f1dd8fe59440a5052207  gcc/testsuite/ada/acats-3/tests/cd/cd5012a.ada
! 1892070e6feeb321986c5cbbcc427b4a  gcc/testsuite/ada/acats-3/tests/cd/cd5012b.ada
! ff4f485285269aca5506577d2a0b3b25  gcc/testsuite/ada/acats-3/tests/cd/cd5012e.ada
! a5f14af29759eeb2088d73d911c87c1f  gcc/testsuite/ada/acats-3/tests/cd/cd5012f.ada
! e5f28d4028e3550e275facc5a05598e5  gcc/testsuite/ada/acats-3/tests/cd/cd5012i.ada
! 16dbc766d573615ec2e4899fad17e3bf  gcc/testsuite/ada/acats-3/tests/cd/cd5012m.ada
! 6cc56f376ceaa00b529da26c6460e8d6  gcc/testsuite/ada/acats-3/tests/cd/cd5013a.ada
! c0918022f30f205dd1507581efbfdd4d  gcc/testsuite/ada/acats-3/tests/cd/cd5013c.ada
! 811d55a4a9aee790bed1e966d928fbb2  gcc/testsuite/ada/acats-3/tests/cd/cd5013e.ada
! 21ba9a45a10469204bf9be2e86069c81  gcc/testsuite/ada/acats-3/tests/cd/cd5013g.ada
! 4f445e0ed2b7e60f8eb00f85696e3a7d  gcc/testsuite/ada/acats-3/tests/cd/cd5013i.ada
! 0b15bb9a260246e000106d4512840f2a  gcc/testsuite/ada/acats-3/tests/cd/cd5013k.ada
! 1da10e9981f9def7bfc6d6c2143211ec  gcc/testsuite/ada/acats-3/tests/cd/cd5013m.ada
! 08a9e582acca940c3e759a92734c93c9  gcc/testsuite/ada/acats-3/tests/cd/cd5013o.ada
! 1968e13f319d3b0c07f4c96303157e60  gcc/testsuite/ada/acats-3/tests/cd/cd5014a.ada
! 7c607413594268a5d4b2292b7cb0413b  gcc/testsuite/ada/acats-3/tests/cd/cd5014c.ada
! 8fef3117954cc6c0a11bb3f93e364b40  gcc/testsuite/ada/acats-3/tests/cd/cd5014e.ada
! 0b813473017a44baccc884d20552e8cd  gcc/testsuite/ada/acats-3/tests/cd/cd5014g.ada
! 527b59a75ca64a8266a57d7a5088fe89  gcc/testsuite/ada/acats-3/tests/cd/cd5014i.ada
! fc74902958756d067346aa25dc320720  gcc/testsuite/ada/acats-3/tests/cd/cd5014k.ada
! b77eb1036af76cfb5202f2de49ace505  gcc/testsuite/ada/acats-3/tests/cd/cd5014m.ada
! ab247e3e629023fbd5f60ebe8227bdb5  gcc/testsuite/ada/acats-3/tests/cd/cd5014o.ada
! fc0ebe93b10ae9a9d4c3c4a5df942f54  gcc/testsuite/ada/acats-3/tests/cd/cd5014t.ada
! c00ed5123db97df563396ec85314f780  gcc/testsuite/ada/acats-3/tests/cd/cd5014v.ada
! bbf572fbf22be12dd2a668dcd54775ea  gcc/testsuite/ada/acats-3/tests/cd/cd5014x.ada
! 34d86be0b29568cce7a2a466311b3b81  gcc/testsuite/ada/acats-3/tests/cd/cd5014y.ada
! b56429de483f94a422eb6ca63ee074f9  gcc/testsuite/ada/acats-3/tests/cd/cd5014z.ada
! aa622725c36aef33e28cfe216e74dbf2  gcc/testsuite/ada/acats-3/tests/cd/cd70001.a
! 2eb61a4a6db022ec0de56d97cdb58d92  gcc/testsuite/ada/acats-3/tests/cd/cd7002a.ada
! aaa73d4164232ddfd2c5811f78c69833  gcc/testsuite/ada/acats-3/tests/cd/cd7007b.ada
! a2455776674d2ad1da3cc32ece807208  gcc/testsuite/ada/acats-3/tests/cd/cd7101d.ada
! aa55af7af75ac0b3c135078d81fb495f  gcc/testsuite/ada/acats-3/tests/cd/cd7101e.dep
! 54f3d5f0c03029d0398feadc1fba13fa  gcc/testsuite/ada/acats-3/tests/cd/cd7101f.dep
! d4c58764ec07d4b64c614f06a404a048  gcc/testsuite/ada/acats-3/tests/cd/cd7101g.tst
! b19b5291beb6e4d9ba34dc60acc52917  gcc/testsuite/ada/acats-3/tests/cd/cd7103d.ada
! bc9859e9de09dbae5b873f61d7dd6d25  gcc/testsuite/ada/acats-3/tests/cd/cd7202a.ada
! 27154e701456e154266de19089be5f95  gcc/testsuite/ada/acats-3/tests/cd/cd7204b.ada
! 866e238520f9fe6f2e1ebc1c66530b27  gcc/testsuite/ada/acats-3/tests/cd/cd7204c.ada
! 463ecdd8176f35af59f9b3791565e928  gcc/testsuite/ada/acats-3/tests/cd/cd72a01.a
! 97e1c7a2d8dcad44f97e8a054d7ddbfa  gcc/testsuite/ada/acats-3/tests/cd/cd72a02.a
! 094d528313c32d60bc8ef9966a3ba667  gcc/testsuite/ada/acats-3/tests/cd/cd7305a.ada
! 89a9ca0baa4aea5a158e931fd05972da  gcc/testsuite/ada/acats-3/tests/cd/cd90001.a
! b35e132e38a1316bb94eb5685e744e45  gcc/testsuite/ada/acats-3/tests/cd/cd92001.a
! 4acd15be94cdb921d9aaaf1c68bc86bd  gcc/testsuite/ada/acats-3/tests/cd/cda201a.ada
! 95c680f466bbb6b462cff702c8c051d8  gcc/testsuite/ada/acats-3/tests/cd/cda201b.ada
! 46aab534344a6aeab59cdc069c0a30a9  gcc/testsuite/ada/acats-3/tests/cd/cda201c.ada
! 51c51b9e46a1a5740ae0b124d61d55ca  gcc/testsuite/ada/acats-3/tests/cd/cda201e.ada
! e5b8e54ff3bc71d8a0f53d66df7260a5  gcc/testsuite/ada/acats-3/tests/cd/cdb0001.a
! 3e8905eddf7e2c220acc4b501f2233a1  gcc/testsuite/ada/acats-3/tests/cd/cdb0002.a
! 4d8334f61837b54deaa10e41063c39af  gcc/testsuite/ada/acats-3/tests/cd/cdb0a01.a
! d60d2f5f8d96507e1b594680a8ddbf8c  gcc/testsuite/ada/acats-3/tests/cd/cdb0a02.a
! d3910d26782aaab53d6acf37e0519685  gcc/testsuite/ada/acats-3/tests/cd/cdd1001.a
! ecea7d5e451c93f7530aa28e39d75580  gcc/testsuite/ada/acats-3/tests/cd/cdd2001.a
! 09e97dda9b7ced04ce9c741ad0599d96  gcc/testsuite/ada/acats-3/tests/cd/cdd2a01.a
! 72e91e49172aabe99c78bb568616e583  gcc/testsuite/ada/acats-3/tests/cd/cdd2a02.a
! 36648315ddf64d4e564a5e05da351b1c  gcc/testsuite/ada/acats-3/tests/cd/cdd2a03.a
! 9ab6f734463584ed4f42316ca9f7798f  gcc/testsuite/ada/acats-3/tests/cd/cdd2b01.a
! 3ce443f0ccbd9dba9e932b0f23c415a2  gcc/testsuite/ada/acats-3/tests/cd/cdd2b03.a
! 317e3f1dc15de17ef49001a1f08c35b3  gcc/testsuite/ada/acats-3/tests/cd/cde0001.a
! e3c9b20329b0f7e7d60dc55f195727f7  gcc/testsuite/ada/acats-3/tests/ce/ce2102a.ada
! 56be361ddf744d65d5919f5f77470cfd  gcc/testsuite/ada/acats-3/tests/ce/ce2102b.ada
! 83c95e98a0edc5913eda034e9803f9a3  gcc/testsuite/ada/acats-3/tests/ce/ce2102c.tst
! 704cb92cd741551b8c76bb24ab8f01a6  gcc/testsuite/ada/acats-3/tests/ce/ce2102d.ada
! a4c5c5ff89eb450e4c847a9cebea2a03  gcc/testsuite/ada/acats-3/tests/ce/ce2102e.ada
! 27760dba95f836989a21b8529a71855d  gcc/testsuite/ada/acats-3/tests/ce/ce2102f.ada
! fe48a7b7badffee5e6b11bab0b32391a  gcc/testsuite/ada/acats-3/tests/ce/ce2102g.ada
! d704111bdcdb479f1991a8daee40cdc6  gcc/testsuite/ada/acats-3/tests/ce/ce2102h.tst
! 660d5113b9badd86759bd83e670ede30  gcc/testsuite/ada/acats-3/tests/ce/ce2102i.ada
! 8796caaebedc2e2c57dc7e71ff241431  gcc/testsuite/ada/acats-3/tests/ce/ce2102j.ada
! ceb778fa800778a3993ddc7cd9190c8f  gcc/testsuite/ada/acats-3/tests/ce/ce2102k.ada
! 23bd39333ef2a75df64af434a8d52288  gcc/testsuite/ada/acats-3/tests/ce/ce2102l.ada
! 9a4f2b513351918f23c1e1fcc5d48aaa  gcc/testsuite/ada/acats-3/tests/ce/ce2102m.ada
! 57880455279d766e91fd84c1ad26a38f  gcc/testsuite/ada/acats-3/tests/ce/ce2102n.ada
! 1658c529498b5b4b8d79ff4a0a362715  gcc/testsuite/ada/acats-3/tests/ce/ce2102o.ada
! a942f038d4463c45d5c583b1985c7c87  gcc/testsuite/ada/acats-3/tests/ce/ce2102p.ada
! 8ce185028df0d4e8d8de27e964b87758  gcc/testsuite/ada/acats-3/tests/ce/ce2102q.ada
! 1439304477a0f927f09dcb2a2639fe66  gcc/testsuite/ada/acats-3/tests/ce/ce2102r.ada
! a5aff3dd28b5d54dcd3d2367ad10512e  gcc/testsuite/ada/acats-3/tests/ce/ce2102s.ada
! fab20fee3d01ec0d98c83ae2e0b85bda  gcc/testsuite/ada/acats-3/tests/ce/ce2102t.ada
! fb506c6fcfe4ce698ff9a830b7c56229  gcc/testsuite/ada/acats-3/tests/ce/ce2102u.ada
! 6533e0fca22d00bf5e7584ed3a4dc842  gcc/testsuite/ada/acats-3/tests/ce/ce2102v.ada
! 96597eb49b1372fa65ee2328da95ca07  gcc/testsuite/ada/acats-3/tests/ce/ce2102w.ada
! 79aea0b4cdef1b6365b9be26c87383b1  gcc/testsuite/ada/acats-3/tests/ce/ce2102x.ada
! b982e3e68e8a4f04e10e3b2780934046  gcc/testsuite/ada/acats-3/tests/ce/ce2102y.ada
! d102ee0d07b326b9d4073e60e25ee113  gcc/testsuite/ada/acats-3/tests/ce/ce2103a.tst
! ae11fc214dfce8e1c5dce5dd8dff9ad9  gcc/testsuite/ada/acats-3/tests/ce/ce2103b.tst
! 97d4cf14fe4c578c0d86448663834c20  gcc/testsuite/ada/acats-3/tests/ce/ce2103c.ada
! 99c7332bd6a90a3213eb826d7f902efa  gcc/testsuite/ada/acats-3/tests/ce/ce2103d.ada
! 60b763cadd79ca8009e41e392d9aa37b  gcc/testsuite/ada/acats-3/tests/ce/ce2104a.ada
! 4f9096bebf0622c62a3f4358655497af  gcc/testsuite/ada/acats-3/tests/ce/ce2104b.ada
! f1962e353466d1757ad6a9c641624847  gcc/testsuite/ada/acats-3/tests/ce/ce2104c.ada
! c687f392201a3d542022c53d87c728c6  gcc/testsuite/ada/acats-3/tests/ce/ce2104d.ada
! e59622b5be7a0b85f62f4f5dfd87250c  gcc/testsuite/ada/acats-3/tests/ce/ce2106a.ada
! 0390975b4b078391dba02ca3c8f31638  gcc/testsuite/ada/acats-3/tests/ce/ce2106b.ada
! 8576613b0fb7cb5404cf64939d34b3af  gcc/testsuite/ada/acats-3/tests/ce/ce2108e.ada
! 651994d660ec55d3e422ceb303d2034b  gcc/testsuite/ada/acats-3/tests/ce/ce2108f.ada
! ba5e89f5212818e3e53a4cf7d59d646c  gcc/testsuite/ada/acats-3/tests/ce/ce2108g.ada
! fb62dbd03a1355b41f3d194167f479aa  gcc/testsuite/ada/acats-3/tests/ce/ce2108h.ada
! e1df0b3934297c1162437a03a450f12a  gcc/testsuite/ada/acats-3/tests/ce/ce2109a.ada
! d91a1fcd2695ad63b53b63e0d22d3f22  gcc/testsuite/ada/acats-3/tests/ce/ce2109b.ada
! 0a95aeffa3822cc96d6f770183b34979  gcc/testsuite/ada/acats-3/tests/ce/ce2109c.ada
! 329e30bd5ac69971fa84cd76bd66b302  gcc/testsuite/ada/acats-3/tests/ce/ce2110a.ada
! b63ea51508983167185a0e378c787235  gcc/testsuite/ada/acats-3/tests/ce/ce2110c.ada
! 385c38395502c50c4f04f16ed172b5c3  gcc/testsuite/ada/acats-3/tests/ce/ce2111a.ada
! 0cab0967d4b6100c093d83a0daa2ca06  gcc/testsuite/ada/acats-3/tests/ce/ce2111b.ada
! 1def457c7ded3aa15287b30a02c2c1bf  gcc/testsuite/ada/acats-3/tests/ce/ce2111c.ada
! e039c87f3e2f30f3b378642cc3d5d3c3  gcc/testsuite/ada/acats-3/tests/ce/ce2111e.ada
! 607ff5b75e0ac677df365e3867c8b8bc  gcc/testsuite/ada/acats-3/tests/ce/ce2111f.ada
! 9b55a66cd32d536d65916a0288c480f4  gcc/testsuite/ada/acats-3/tests/ce/ce2111g.ada
! 9aac3a3d20f722d72f0a97d15db7e6ff  gcc/testsuite/ada/acats-3/tests/ce/ce2111i.ada
! 451691c716142d6af52540932182f7a8  gcc/testsuite/ada/acats-3/tests/ce/ce2201a.ada
! a9019ab5c60383a5aec6b4e12cf67546  gcc/testsuite/ada/acats-3/tests/ce/ce2201b.ada
! 29858e1a8a6dd46bb9164e8c8edbcddf  gcc/testsuite/ada/acats-3/tests/ce/ce2201c.ada
! 34d8b0e50b71bb424acf20936253736f  gcc/testsuite/ada/acats-3/tests/ce/ce2201d.dep
! b20fac24f54e723d0cc0d2b283a1a98c  gcc/testsuite/ada/acats-3/tests/ce/ce2201e.dep
! e5ef319f07f83742ea6dacb674de4c74  gcc/testsuite/ada/acats-3/tests/ce/ce2201f.ada
! 89d1575c20871ec14a7510e2c7fd7e56  gcc/testsuite/ada/acats-3/tests/ce/ce2201g.ada
! 06e274ba9cfdca457d343f7d036af0bc  gcc/testsuite/ada/acats-3/tests/ce/ce2201h.ada
! 819625912e63f1bb0690319469d91d14  gcc/testsuite/ada/acats-3/tests/ce/ce2201i.ada
! c75df2290aa04176fd8862e092446183  gcc/testsuite/ada/acats-3/tests/ce/ce2201j.ada
! 5cd3fabcbac1ce5f97eb0c3b7ff68060  gcc/testsuite/ada/acats-3/tests/ce/ce2201k.ada
! 5f85b515f14775082f0cef057e6c7cec  gcc/testsuite/ada/acats-3/tests/ce/ce2201l.ada
! dacbb7d19d52906e970100c8a0524fd4  gcc/testsuite/ada/acats-3/tests/ce/ce2201m.ada
! 45f176910989cfdcd7fdc941f37a5b71  gcc/testsuite/ada/acats-3/tests/ce/ce2201n.ada
! 376cc7edaf46154ca8f65652b5d6eca4  gcc/testsuite/ada/acats-3/tests/ce/ce2202a.ada
! 939f3ce3a39c9ca9d86e52320f27ff2c  gcc/testsuite/ada/acats-3/tests/ce/ce2203a.tst
! ba04f29f243a15d2bbe413b9e0066901  gcc/testsuite/ada/acats-3/tests/ce/ce2204a.ada
! 2fc36a0b7b4ddb630b023af7c4d90ba7  gcc/testsuite/ada/acats-3/tests/ce/ce2204b.ada
! 9ef6a168f2e294541459fe7a14263eb5  gcc/testsuite/ada/acats-3/tests/ce/ce2204c.ada
! b0274d08b84af4b62ad59e3d9ddb07df  gcc/testsuite/ada/acats-3/tests/ce/ce2204d.ada
! 34418b28be06a3924c3a2584bef259b6  gcc/testsuite/ada/acats-3/tests/ce/ce2205a.ada
! 5c92fac63d085e6a68726106d482ea42  gcc/testsuite/ada/acats-3/tests/ce/ce2206a.ada
! fcc7c7c24b495ce3ddaa0f9a580d75ee  gcc/testsuite/ada/acats-3/tests/ce/ce2208b.ada
! 97568e8cf63e0507c14b35a1a14e20c0  gcc/testsuite/ada/acats-3/tests/ce/ce2401a.ada
! dcd9e7cbbd7e97c5dd3e3add1eb9dc36  gcc/testsuite/ada/acats-3/tests/ce/ce2401b.ada
! efcdb258c81995c38e8cc3694b22f6dd  gcc/testsuite/ada/acats-3/tests/ce/ce2401c.ada
! e7f9dbd6fea160401601272d061289a3  gcc/testsuite/ada/acats-3/tests/ce/ce2401e.ada
! 1bf5badbcde77492314acef836d8ea11  gcc/testsuite/ada/acats-3/tests/ce/ce2401f.ada
! eb673da58247c955773ce3b8e1c2d4f3  gcc/testsuite/ada/acats-3/tests/ce/ce2401h.ada
! 6918301d4740c9f3a5bcdf8763ba341a  gcc/testsuite/ada/acats-3/tests/ce/ce2401i.ada
! 664a2145b5105ab8ae94b8ba8dca5cdd  gcc/testsuite/ada/acats-3/tests/ce/ce2401j.ada
! 7f54c0274e46b59b1fec8510f4fc3ad7  gcc/testsuite/ada/acats-3/tests/ce/ce2401k.ada
! a83a38fe98395d0bb886cb6143eb8170  gcc/testsuite/ada/acats-3/tests/ce/ce2401l.ada
! 2c4e89aba46a0152400d53a9aed78ba8  gcc/testsuite/ada/acats-3/tests/ce/ce2402a.ada
! 4e54cd3fcd15e2f31d844365222a85b3  gcc/testsuite/ada/acats-3/tests/ce/ce2403a.tst
! 4fce3b03a76a452b2433c54b199834ff  gcc/testsuite/ada/acats-3/tests/ce/ce2404a.ada
! ad81e45a71e09a3713483ae198eae6b0  gcc/testsuite/ada/acats-3/tests/ce/ce2404b.ada
! 397eb6a738bd1fb16bf404d4581a21e8  gcc/testsuite/ada/acats-3/tests/ce/ce2405b.ada
! 035cdd8af2147f386ba98eafee6fa53d  gcc/testsuite/ada/acats-3/tests/ce/ce2406a.ada
! bc1c3fb660e3a1a6cd3c3cd2c20c6f21  gcc/testsuite/ada/acats-3/tests/ce/ce2407a.ada
! e21a045af5825bcf7bae0f7774bf28bb  gcc/testsuite/ada/acats-3/tests/ce/ce2407b.ada
! 1ac50c952fbab2fcf2e1391bb697aac1  gcc/testsuite/ada/acats-3/tests/ce/ce2408a.ada
! fb58d51e1570b9726aa28d10034cf135  gcc/testsuite/ada/acats-3/tests/ce/ce2408b.ada
! d60b98c48fae643e51060dfd4200371e  gcc/testsuite/ada/acats-3/tests/ce/ce2409a.ada
! 5b25842de422c3e8d6301447c51d8985  gcc/testsuite/ada/acats-3/tests/ce/ce2409b.ada
! e03ae0d17d4ce186bb17ad28c1d12c8e  gcc/testsuite/ada/acats-3/tests/ce/ce2410a.ada
! a10dc12fca4ab67d0e070b8f08878918  gcc/testsuite/ada/acats-3/tests/ce/ce2410b.ada
! ef01f4584aa6fe18dfca4291aa2b9936  gcc/testsuite/ada/acats-3/tests/ce/ce2411a.ada
! cfdd50459f606dfd0272b27f902831f0  gcc/testsuite/ada/acats-3/tests/ce/ce3002b.tst
! 8c7a2401c3fd65042aaf7fbaaebb05d5  gcc/testsuite/ada/acats-3/tests/ce/ce3002c.tst
! 60cfa1b0514071feae57d422f407bbc6  gcc/testsuite/ada/acats-3/tests/ce/ce3002d.ada
! f7f30f9bace21926cfd024ab3ae7ed4a  gcc/testsuite/ada/acats-3/tests/ce/ce3002f.ada
! c4f22dddebf62a993e9a5dca37748e9a  gcc/testsuite/ada/acats-3/tests/ce/ce3102a.ada
! 019efa14311a98e7532962ec6464bb8e  gcc/testsuite/ada/acats-3/tests/ce/ce3102b.tst
! dab3a80b1760df07e4cf44cef4f9ca81  gcc/testsuite/ada/acats-3/tests/ce/ce3102d.ada
! 112884bd382c35480c4248866f3a556e  gcc/testsuite/ada/acats-3/tests/ce/ce3102e.ada
! 884f6ff3272bb27974b5c059fd940eb8  gcc/testsuite/ada/acats-3/tests/ce/ce3102f.ada
! 561a9bb3212245b35ea37ed7834ace08  gcc/testsuite/ada/acats-3/tests/ce/ce3102g.ada
! a5c10d55f5c631bb605e9f92f33b3d83  gcc/testsuite/ada/acats-3/tests/ce/ce3102h.ada
! 16f9be98787f36d98dd3a0d7c5673f99  gcc/testsuite/ada/acats-3/tests/ce/ce3102i.ada
! f2fb4988c4b17b901cb57756fa48524d  gcc/testsuite/ada/acats-3/tests/ce/ce3102j.ada
! 5885ee3beb2611070afd9595b92d024d  gcc/testsuite/ada/acats-3/tests/ce/ce3102k.ada
! af4fce15977e583c9580c84a57f46000  gcc/testsuite/ada/acats-3/tests/ce/ce3103a.ada
! 1a359b00af85a86ae636ed8ce9f54011  gcc/testsuite/ada/acats-3/tests/ce/ce3104a.ada
! 62ae4a6a702993a429980ed85d7d288b  gcc/testsuite/ada/acats-3/tests/ce/ce3104b.ada
! 3097f1866f5a1a12edc0bd1ad06fcfd7  gcc/testsuite/ada/acats-3/tests/ce/ce3104c.ada
! ffdd7cea02bf78362b21d5b47923f55a  gcc/testsuite/ada/acats-3/tests/ce/ce3106a.ada
! c089188b0086e9498b16c61338d1c72e  gcc/testsuite/ada/acats-3/tests/ce/ce3106b.ada
! 7ec91be55117ceec515d06ff18fd96f6  gcc/testsuite/ada/acats-3/tests/ce/ce3107a.tst
! 29791bc75974606a36e491a742bb3096  gcc/testsuite/ada/acats-3/tests/ce/ce3107b.ada
! eb49ffd6a23ce40400cdc2ebf0c8f371  gcc/testsuite/ada/acats-3/tests/ce/ce3108a.ada
! fd863ff6b1661c6c912d9bf6aebc3bc9  gcc/testsuite/ada/acats-3/tests/ce/ce3108b.ada
! 97e280eb5834dec4e91bbbc97553b1c7  gcc/testsuite/ada/acats-3/tests/ce/ce3110a.ada
! 5f42a55944d863fa57d6e12253d4922c  gcc/testsuite/ada/acats-3/tests/ce/ce3112c.ada
! c9d44fa9ff3ca5a2ccdda83b010c1f54  gcc/testsuite/ada/acats-3/tests/ce/ce3112d.ada
! f01486f7b41b7e9bb285f2b42444a64f  gcc/testsuite/ada/acats-3/tests/ce/ce3114a.ada
! 816907364fd976b617fbee2dc8afc858  gcc/testsuite/ada/acats-3/tests/ce/ce3115a.ada
! 55427ea93a85e61592244d314238e089  gcc/testsuite/ada/acats-3/tests/ce/ce3201a.ada
! 0a50773e8cb26d94c11adb5533460429  gcc/testsuite/ada/acats-3/tests/ce/ce3202a.ada
! 06b5bbb44e688a3c0c0ca62e655c32ab  gcc/testsuite/ada/acats-3/tests/ce/ce3206a.ada
! 98a3e7772f00a7bebd187c6c2d309f82  gcc/testsuite/ada/acats-3/tests/ce/ce3207a.ada
! f4529439e526335f9525bb157863cc63  gcc/testsuite/ada/acats-3/tests/ce/ce3301a.ada
! 0a70a8ac8ee35a84b380c07ea541b57f  gcc/testsuite/ada/acats-3/tests/ce/ce3302a.ada
! 9bac0e06cef0c10689cc849f3c509fcf  gcc/testsuite/ada/acats-3/tests/ce/ce3303a.ada
! 23c77e761edd8a91671acf3422a0ca06  gcc/testsuite/ada/acats-3/tests/ce/ce3304a.tst
! d0da64618db56f4abfac0c3b90fa0296  gcc/testsuite/ada/acats-3/tests/ce/ce3305a.ada
! 3f7e70ff0a93058dd780e3e6e4fefa3d  gcc/testsuite/ada/acats-3/tests/ce/ce3306a.ada
! 4e1329f66825e0283637c00ca6acc5b6  gcc/testsuite/ada/acats-3/tests/ce/ce3401a.ada
! df06c67b3b1ea125ef98d5346e81cc7e  gcc/testsuite/ada/acats-3/tests/ce/ce3402a.ada
! b50c12a694c3c56d3a2cf04d9ca9ccc3  gcc/testsuite/ada/acats-3/tests/ce/ce3402c.ada
! e2743c970635e3ead26ba550e6c23aab  gcc/testsuite/ada/acats-3/tests/ce/ce3402d.ada
! c0341031211c513d8c748c61167125fb  gcc/testsuite/ada/acats-3/tests/ce/ce3402e.ada
! f9deacf7d49917900f3fcee43aee5ca6  gcc/testsuite/ada/acats-3/tests/ce/ce3403a.ada
! fec31596c967bb1bab6a046e32225c6b  gcc/testsuite/ada/acats-3/tests/ce/ce3403b.ada
! 7e9202e07d3f865f2ceeb151792c452f  gcc/testsuite/ada/acats-3/tests/ce/ce3403c.ada
! 64070608c4f9c6a05d1e23408e5beb0d  gcc/testsuite/ada/acats-3/tests/ce/ce3403d.ada
! d82cac6d273d1fbe65506c1eecff04b9  gcc/testsuite/ada/acats-3/tests/ce/ce3403e.ada
! 7cdc9d7a9c43884cbedbde28d4954fe4  gcc/testsuite/ada/acats-3/tests/ce/ce3403f.ada
! dc1a67476ce793079c7af8b2d1b275ac  gcc/testsuite/ada/acats-3/tests/ce/ce3404a.ada
! 8b982e428bef61a3980b00b8079ad4f2  gcc/testsuite/ada/acats-3/tests/ce/ce3404b.ada
! 5cc2fbe64ade8df5eced5c397a38020a  gcc/testsuite/ada/acats-3/tests/ce/ce3404c.ada
! 871605306e645bb8c8952539a05637b2  gcc/testsuite/ada/acats-3/tests/ce/ce3404d.ada
! 5afe1fa2e94e304b32849dad526b0cb4  gcc/testsuite/ada/acats-3/tests/ce/ce3405a.ada
! 75e7f1f2e2d338bdbc593c460b1e055f  gcc/testsuite/ada/acats-3/tests/ce/ce3405c.ada
! d61f321bab45f725f89da9ebd98c7959  gcc/testsuite/ada/acats-3/tests/ce/ce3405d.ada
! 683881439899376dec46462b7b974e93  gcc/testsuite/ada/acats-3/tests/ce/ce3406a.ada
! 1d67a6840b438185a99382b830ffe815  gcc/testsuite/ada/acats-3/tests/ce/ce3406b.ada
! 00a1933b7205d0378d065989609d0e6f  gcc/testsuite/ada/acats-3/tests/ce/ce3406c.ada
! bc8a2b4d509e438b111cb451ba6c633d  gcc/testsuite/ada/acats-3/tests/ce/ce3406d.ada
! 0c8f9906304b5f6e2f871a2f56543e48  gcc/testsuite/ada/acats-3/tests/ce/ce3407a.ada
! d6da13ff2e3c07bb7f9617a04f387915  gcc/testsuite/ada/acats-3/tests/ce/ce3407b.ada
! bacd5248d5883ef91439cbdd245cbd9a  gcc/testsuite/ada/acats-3/tests/ce/ce3407c.ada
! babb7fd82795ea56950eb78715c895aa  gcc/testsuite/ada/acats-3/tests/ce/ce3408a.ada
! e30520b348614e4a8e628b3ea3aad54e  gcc/testsuite/ada/acats-3/tests/ce/ce3408b.ada
! 5d1d893ced6dbc7d9f25ee4a5fb8e211  gcc/testsuite/ada/acats-3/tests/ce/ce3408c.ada
! ca268135b5b6d64dc8be3768b6f7edc0  gcc/testsuite/ada/acats-3/tests/ce/ce3409a.ada
! 6c79cafc53b26bfb3c462c4d01969806  gcc/testsuite/ada/acats-3/tests/ce/ce3409b.ada
! 153c9a6d9246f682a42cd95552087944  gcc/testsuite/ada/acats-3/tests/ce/ce3409c.ada
! 62ed81bdf1e56f27f4c2630b320c6b75  gcc/testsuite/ada/acats-3/tests/ce/ce3409d.ada
! 67051865f07afe2038f84683dece3683  gcc/testsuite/ada/acats-3/tests/ce/ce3409e.ada
! 36c2b6db90b30d1e89dfe642110ca9be  gcc/testsuite/ada/acats-3/tests/ce/ce3410a.ada
! 5cf308b315cd2ac4c47ecb7409ef0ba1  gcc/testsuite/ada/acats-3/tests/ce/ce3410b.ada
! bcebb594f14a81961460c696159ea641  gcc/testsuite/ada/acats-3/tests/ce/ce3410c.ada
! c28a6aea6e2fa07f6b2e23e3e14876c2  gcc/testsuite/ada/acats-3/tests/ce/ce3410d.ada
! 8c67058f9e7fc008e387aa622534b5d4  gcc/testsuite/ada/acats-3/tests/ce/ce3410e.ada
! 4c3d96fe2a475d4a97d07bbd385cd260  gcc/testsuite/ada/acats-3/tests/ce/ce3411a.ada
! 0a0deabd5d66c7e62d00da0c83ac5dfa  gcc/testsuite/ada/acats-3/tests/ce/ce3411c.ada
! a8dda42826e8174f0657de7379cb605b  gcc/testsuite/ada/acats-3/tests/ce/ce3412a.ada
! 040ce75a5a909fb3da32ae0e451bda3e  gcc/testsuite/ada/acats-3/tests/ce/ce3413a.ada
! 951c9393706295621e4a78e9a1b9e2ee  gcc/testsuite/ada/acats-3/tests/ce/ce3413b.ada
! c33c707be5a9051ad8c6962035162e25  gcc/testsuite/ada/acats-3/tests/ce/ce3413c.ada
! 6cb9f4f71827deb077bcc1180c854625  gcc/testsuite/ada/acats-3/tests/ce/ce3414a.ada
! e5e2298148250ece65cc736cf86b5a00  gcc/testsuite/ada/acats-3/tests/ce/ce3601a.ada
! 1215dc7327db7704c21d367fe12a1ab9  gcc/testsuite/ada/acats-3/tests/ce/ce3602a.ada
! 6ccbba350556793177123ad7809e0ff9  gcc/testsuite/ada/acats-3/tests/ce/ce3602b.ada
! 12843cf2e9816b955ca7962f9bfc627f  gcc/testsuite/ada/acats-3/tests/ce/ce3602c.ada
! cef84bc67c1c6c0d7583ed454834a34f  gcc/testsuite/ada/acats-3/tests/ce/ce3602d.ada
! 5e31687529c52bde6efe93242bcbf2f8  gcc/testsuite/ada/acats-3/tests/ce/ce3603a.ada
! 3dc38686e9ce99632f9e21e584055443  gcc/testsuite/ada/acats-3/tests/ce/ce3604a.ada
! 98f98beec04bb6905ddea16ed212134f  gcc/testsuite/ada/acats-3/tests/ce/ce3604b.ada
! 1c7074f06be7b99dab79f14d5dddb060  gcc/testsuite/ada/acats-3/tests/ce/ce3605a.ada
! 49a30d4306b467f2cd10d4b811cfa231  gcc/testsuite/ada/acats-3/tests/ce/ce3605b.ada
! b496a8c56eea6c0501a70a96873353f7  gcc/testsuite/ada/acats-3/tests/ce/ce3605c.ada
! 6f3fe3a52cae3aa00e90c34391f3d16d  gcc/testsuite/ada/acats-3/tests/ce/ce3605d.ada
! 86bd1f46afec2bf13df76bd0d8ce0514  gcc/testsuite/ada/acats-3/tests/ce/ce3605e.ada
! 8388e3c1abd488ed32c198647fab80fe  gcc/testsuite/ada/acats-3/tests/ce/ce3606a.ada
! b3c475457035678aad225b02f0baaf49  gcc/testsuite/ada/acats-3/tests/ce/ce3606b.ada
! c0471531dea8b138d096c3049a710d34  gcc/testsuite/ada/acats-3/tests/ce/ce3701a.ada
! 918eb1c7abfa51f1d0f0920c8c6305e7  gcc/testsuite/ada/acats-3/tests/ce/ce3704a.ada
! fd0817427cf4c02d336138b11d6153a8  gcc/testsuite/ada/acats-3/tests/ce/ce3704b.ada
! 7fe37fdc40a516882c3388c9405adb57  gcc/testsuite/ada/acats-3/tests/ce/ce3704c.ada
! 9fb3d924d4a90f6940ec5e4b11a0ce61  gcc/testsuite/ada/acats-3/tests/ce/ce3704d.ada
! b5466a70b0554788bcffce4b777d7bbd  gcc/testsuite/ada/acats-3/tests/ce/ce3704e.ada
! 2bd3e088ed3663d0f57172ec9878402c  gcc/testsuite/ada/acats-3/tests/ce/ce3704f.ada
! c1b7a44976ea643f0821318848d2a333  gcc/testsuite/ada/acats-3/tests/ce/ce3704m.ada
! fbb2cb08fa9bd676488ed39c0025017d  gcc/testsuite/ada/acats-3/tests/ce/ce3704n.ada
! ddc6d31452157a248e0315438e717892  gcc/testsuite/ada/acats-3/tests/ce/ce3704o.ada
! 0f3f07ab9439af00921be7fba20ce330  gcc/testsuite/ada/acats-3/tests/ce/ce3705a.ada
! 3be84deb5cb9f6d5be7c2cadf68a90f5  gcc/testsuite/ada/acats-3/tests/ce/ce3705b.ada
! 11a056cf164688fbe30b1b1a85208e47  gcc/testsuite/ada/acats-3/tests/ce/ce3705c.ada
! e6e83df07a3fab385c58b17a0a43ca83  gcc/testsuite/ada/acats-3/tests/ce/ce3705d.ada
! c1458b663e297c80390f9cd80c7f5864  gcc/testsuite/ada/acats-3/tests/ce/ce3705e.ada
! fab53328469c600d972529f33eecee23  gcc/testsuite/ada/acats-3/tests/ce/ce3706c.ada
! aed136cb2863502616daa378424686d6  gcc/testsuite/ada/acats-3/tests/ce/ce3706d.ada
! 6344fa066f047ece7e15a9dc9dc4bf76  gcc/testsuite/ada/acats-3/tests/ce/ce3706f.ada
! 5316d57b3ad4c2e7fdcfa4dcf7de4439  gcc/testsuite/ada/acats-3/tests/ce/ce3706g.ada
! a778f4b7a5f926d446e0a70ffc718db8  gcc/testsuite/ada/acats-3/tests/ce/ce3707a.ada
! 478e73d32be1e76a0099cd9a73da79c0  gcc/testsuite/ada/acats-3/tests/ce/ce3708a.ada
! 818f2f0d5fcc6bdd1c354cc85b1e6640  gcc/testsuite/ada/acats-3/tests/ce/ce3801a.ada
! 6dc388aa9640dfd68a016a87aedb4e9b  gcc/testsuite/ada/acats-3/tests/ce/ce3801b.ada
! e7b36818b6b1f0625c96af8481f52f0d  gcc/testsuite/ada/acats-3/tests/ce/ce3804a.ada
! c3922fdc4d7bd246e803dbcf29ec365b  gcc/testsuite/ada/acats-3/tests/ce/ce3804b.ada
! eae67ccfbe2e51d92e77fbd2aefd9279  gcc/testsuite/ada/acats-3/tests/ce/ce3804c.ada
! b6842219efec21bda3be0c99f4cc04b4  gcc/testsuite/ada/acats-3/tests/ce/ce3804d.ada
! 9eef715602b30b1986cd238ae1f5fc61  gcc/testsuite/ada/acats-3/tests/ce/ce3804e.ada
! c5996f22c17f572bd9ab7181c9c39831  gcc/testsuite/ada/acats-3/tests/ce/ce3804f.ada
! 613171f59b0c0405911c4d928abfb0b4  gcc/testsuite/ada/acats-3/tests/ce/ce3804g.ada
! d992e56c7b48881cc7480a014ee01ce9  gcc/testsuite/ada/acats-3/tests/ce/ce3804h.ada
! a78767becb4aa2f884469056ae3d7ec4  gcc/testsuite/ada/acats-3/tests/ce/ce3804i.ada
! a4e5e33e2585ba61ae7ae7ae4db12bb2  gcc/testsuite/ada/acats-3/tests/ce/ce3804j.ada
! e6928c085b0205ec7db55a9f830ccdd0  gcc/testsuite/ada/acats-3/tests/ce/ce3804m.ada
! 7193594f0a1b29b3c2845bdce32c53e7  gcc/testsuite/ada/acats-3/tests/ce/ce3804o.ada
! 4a0b48b429236f9e1c8e6f58dd3bfa28  gcc/testsuite/ada/acats-3/tests/ce/ce3804p.ada
! 9ac3d952f3c355af267e6a6d9f4a8a79  gcc/testsuite/ada/acats-3/tests/ce/ce3805a.ada
! c7fd8ecaab44034a4d7e19eaf52d3390  gcc/testsuite/ada/acats-3/tests/ce/ce3805b.ada
! 1aab796cf0e7689c6edac441d619d28e  gcc/testsuite/ada/acats-3/tests/ce/ce3806a.ada
! 2e9a765636a0e1133cc203d0def8724d  gcc/testsuite/ada/acats-3/tests/ce/ce3806b.ada
! bc5e903902196b77527b50b767c2d7da  gcc/testsuite/ada/acats-3/tests/ce/ce3806c.ada
! ee7b548143b3610a6b8d3fdd4698dc45  gcc/testsuite/ada/acats-3/tests/ce/ce3806d.ada
! 4ef742156a97e0838a7c68579a62465c  gcc/testsuite/ada/acats-3/tests/ce/ce3806e.ada
! 48eed75e47db04066ee57577ae8febdf  gcc/testsuite/ada/acats-3/tests/ce/ce3806f.ada
! fae283383fb9395ac865027e5ecb9495  gcc/testsuite/ada/acats-3/tests/ce/ce3806g.ada
! 9d6687f5803bfad7ea35a3abcdb5772c  gcc/testsuite/ada/acats-3/tests/ce/ce3806h.ada
! d3af3076cdba08b0142afed2e6fc0b7b  gcc/testsuite/ada/acats-3/tests/ce/ce3809a.ada
! 2144655343ab8e0671768264f1de7939  gcc/testsuite/ada/acats-3/tests/ce/ce3809b.ada
! 94c3af83ea38d2552587ed3285a692b6  gcc/testsuite/ada/acats-3/tests/ce/ce3810a.ada
! 2b16f8d4e554f10c2a187f8308d7c631  gcc/testsuite/ada/acats-3/tests/ce/ce3810b.ada
! d426db9733cc34265b461b792b6474ad  gcc/testsuite/ada/acats-3/tests/ce/ce3815a.ada
! 48a18490ee8614f76691210dd9487c7b  gcc/testsuite/ada/acats-3/tests/ce/ce3901a.ada
! c0b5bdc86cdd66cb3f89cb34da6bafc6  gcc/testsuite/ada/acats-3/tests/ce/ce3902b.ada
! a2d6108b8d0296883e3c658639d13b49  gcc/testsuite/ada/acats-3/tests/ce/ce3904a.ada
! 379cd7598f79bae2f05b0815465e285f  gcc/testsuite/ada/acats-3/tests/ce/ce3904b.ada
! 49a69ee3b18484263b6f081df965ab54  gcc/testsuite/ada/acats-3/tests/ce/ce3905a.ada
! c53bbe9b612250e0e99c4238d30a2004  gcc/testsuite/ada/acats-3/tests/ce/ce3905b.ada
! 72f61386b7953b00b7cff52dfbc382c2  gcc/testsuite/ada/acats-3/tests/ce/ce3905c.ada
! 2ef4e950bf19d740d3354feb5811b645  gcc/testsuite/ada/acats-3/tests/ce/ce3905l.ada
! 68ee2e176861f501ee862916a0b9b86e  gcc/testsuite/ada/acats-3/tests/ce/ce3906a.ada
! d47ad5ee4c0a4fdbf2ea42a44fe42621  gcc/testsuite/ada/acats-3/tests/ce/ce3906b.ada
! 695b6968a4b0e7d53b5b76fb4f7da0c0  gcc/testsuite/ada/acats-3/tests/ce/ce3906c.ada
! 90d21e5ea4be7a236bfb40661d560471  gcc/testsuite/ada/acats-3/tests/ce/ce3906d.ada
! 3462bab257d5dd10bcb9c56813aa1e74  gcc/testsuite/ada/acats-3/tests/ce/ce3906e.ada
! 2c106bf46db6d9c4c50c01fbe92b517f  gcc/testsuite/ada/acats-3/tests/ce/ce3906f.ada
! 7c41fbcef2ed668ee19c73f44c696bac  gcc/testsuite/ada/acats-3/tests/ce/ce3907a.ada
! ee7ec1f6b6ec4c5ef50b1d777026421a  gcc/testsuite/ada/acats-3/tests/ce/ce3908a.ada
! c4b3b8c1c9564099bdde092389cc2da4  gcc/testsuite/ada/acats-3/tests/cxa/cxa3001.a
! edb7feb6536121adfd4fd4a2f3d69a3f  gcc/testsuite/ada/acats-3/tests/cxa/cxa3002.a
! 48392592efa08a198d6e5d7a1a663683  gcc/testsuite/ada/acats-3/tests/cxa/cxa3003.a
! 7eb11ccdd82615be75ded3c2d5c126d1  gcc/testsuite/ada/acats-3/tests/cxa/cxa3004.a
! bd60e198cabb483702243c263729427b  gcc/testsuite/ada/acats-3/tests/cxa/cxa4001.a
! 448cbac61205b8887f79bf74d5666a04  gcc/testsuite/ada/acats-3/tests/cxa/cxa4002.a
! 46d3d97d6347f9b5ec34b3513bcfab40  gcc/testsuite/ada/acats-3/tests/cxa/cxa4003.a
! 76c3b922526644795e2203573ee488e2  gcc/testsuite/ada/acats-3/tests/cxa/cxa4004.a
! 4b1514a00cc831e1766e0d36c67e271f  gcc/testsuite/ada/acats-3/tests/cxa/cxa4005.a
! dcde2eda6ce0a916997883996641ea19  gcc/testsuite/ada/acats-3/tests/cxa/cxa4006.a
! f528eee5266ffb815aad7b653d5be870  gcc/testsuite/ada/acats-3/tests/cxa/cxa4007.a
! 413d98fa6eff56c6b83c031c575fd9a6  gcc/testsuite/ada/acats-3/tests/cxa/cxa4008.a
! d2a3c398ae82b68c1544dbf3384095d7  gcc/testsuite/ada/acats-3/tests/cxa/cxa4009.a
! bc90a16063bf97bfeb414d4209261109  gcc/testsuite/ada/acats-3/tests/cxa/cxa4010.a
! b3036ab386ac3ec1d7b58cd50ad31ab9  gcc/testsuite/ada/acats-3/tests/cxa/cxa4011.a
! 06c61ebbffe294301eb79bc3d5e27c54  gcc/testsuite/ada/acats-3/tests/cxa/cxa4012.a
! ce3338d13ed9dd0ef83c04e53bed831e  gcc/testsuite/ada/acats-3/tests/cxa/cxa4013.a
! 0a9e62befb3d93c2c5e8ab93a327a6c2  gcc/testsuite/ada/acats-3/tests/cxa/cxa4014.a
! aad5ca617d2e40d20e448b613199553e  gcc/testsuite/ada/acats-3/tests/cxa/cxa4015.a
! 33c5aafe5935daee003a8246d048e812  gcc/testsuite/ada/acats-3/tests/cxa/cxa4016.a
! d2ac40847abc81d20163d7c521a90575  gcc/testsuite/ada/acats-3/tests/cxa/cxa4017.a
! 81384a047e321f48d7a9ae881a426324  gcc/testsuite/ada/acats-3/tests/cxa/cxa4018.a
! 334665c1cb55150c5c9af5013690044a  gcc/testsuite/ada/acats-3/tests/cxa/cxa4019.a
! c1bd4452ee22a8a6db5adbef47a641cc  gcc/testsuite/ada/acats-3/tests/cxa/cxa4020.a
! a570e64728464b5d7b98abf94a52b945  gcc/testsuite/ada/acats-3/tests/cxa/cxa4021.a
! ee35d8c6a0354f56770dd1aaf5f4d51e  gcc/testsuite/ada/acats-3/tests/cxa/cxa4022.a
! fc34d10875377b841a1d6172f334da36  gcc/testsuite/ada/acats-3/tests/cxa/cxa4023.a
! 19ec3ce920759c4a2037b89ae3061013  gcc/testsuite/ada/acats-3/tests/cxa/cxa4024.a
! 84b1823c491f3357731a977527457acf  gcc/testsuite/ada/acats-3/tests/cxa/cxa4025.a
! 254627e35c72d32a51b7db3824a622ea  gcc/testsuite/ada/acats-3/tests/cxa/cxa4026.a
! 0c20a4e5aa53f054deaa7ca01817db03  gcc/testsuite/ada/acats-3/tests/cxa/cxa4027.a
! 59f1d44db17d4f8454b983fa7c7b830b  gcc/testsuite/ada/acats-3/tests/cxa/cxa4028.a
! a05e073a2fe4ee6230e2a03d167ffce8  gcc/testsuite/ada/acats-3/tests/cxa/cxa4029.a
! eeef22827a8f3112fb9caff03c0003d3  gcc/testsuite/ada/acats-3/tests/cxa/cxa4030.a
! bb02ecad7593f15476885383704962db  gcc/testsuite/ada/acats-3/tests/cxa/cxa4031.a
! e272d6fb88a469d5600466803e241311  gcc/testsuite/ada/acats-3/tests/cxa/cxa4032.a
! 3f7248dd7e0876538e54ffc83eb5b9f9  gcc/testsuite/ada/acats-3/tests/cxa/cxa4033.a
! 90cfac79483d313e3e60ee66dd47bbb9  gcc/testsuite/ada/acats-3/tests/cxa/cxa4034.a
! 5cc03d6967386c435776ef6c5916d72c  gcc/testsuite/ada/acats-3/tests/cxa/cxa4037.a
! d5b5e8186c886aee7a112ba901ef5b8c  gcc/testsuite/ada/acats-3/tests/cxa/cxa5011.a
! a67372b949970924bc0a9dd48dfc4999  gcc/testsuite/ada/acats-3/tests/cxa/cxa5012.a
! 1bc3b7995dbf8b972dd33ceccc5775f8  gcc/testsuite/ada/acats-3/tests/cxa/cxa5013.a
! 7f31584ea86307c534d43e91b8d28708  gcc/testsuite/ada/acats-3/tests/cxa/cxa5015.a
! b236bc272cd2178596f9c2ee66be6978  gcc/testsuite/ada/acats-3/tests/cxa/cxa5016.a
! ee786104570339c108786248363e8be5  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a01.a
! 59b52d99d8ad7539d9702fd5808604ab  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a02.a
! e58abfcc53f4c016f65e49a2e76c7c18  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a03.a
! 07803a06f2f6d9efa364537c4d61d56c  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a04.a
! 8beb99d4b6c77de021e0fb13ef712afc  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a05.a
! 4facff6e7577e863bfd71cfc8d80f4dc  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a06.a
! c3a4baf4aa21b446ccc93a6c7667de6a  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a07.a
! 6278088ddb4cadb7d9e5d09b9045b4b6  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a08.a
! cd7c58666aed347e740c0f6fd42f83d6  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a09.a
! ba78679b1a563e67c0076c1562ccf0f3  gcc/testsuite/ada/acats-3/tests/cxa/cxa5a10.a
! 96b76cdb631cda2774fc81007f5ec5ee  gcc/testsuite/ada/acats-3/tests/cxa/cxa8001.a
! 367d7f0f5e6305bdd87092066759b0fa  gcc/testsuite/ada/acats-3/tests/cxa/cxa8002.a
! 620e6506d3b188143f95bf7e9e7c2a47  gcc/testsuite/ada/acats-3/tests/cxa/cxa8003.a
! 05afd117ada97a293f198e2915e5c6e6  gcc/testsuite/ada/acats-3/tests/cxa/cxa9001.a
! 720f2be5a9704866c7199912ce177ec5  gcc/testsuite/ada/acats-3/tests/cxa/cxa9002.a
! 0eda7d556ffc97096e8bf91c74b55ab0  gcc/testsuite/ada/acats-3/tests/cxa/cxaa001.a
! 77f8a73011b66fb0023f0f34e63b2b56  gcc/testsuite/ada/acats-3/tests/cxa/cxaa002.a
! 6251cdd5d4023378cc0f056006946d4b  gcc/testsuite/ada/acats-3/tests/cxa/cxaa003.a
! 43c30533c4d806156e62989d0b1f26b1  gcc/testsuite/ada/acats-3/tests/cxa/cxaa004.a
! a3c49183a05e7dd95a555b795d847cdb  gcc/testsuite/ada/acats-3/tests/cxa/cxaa005.a
! 083ebde448b287604a204632257a8037  gcc/testsuite/ada/acats-3/tests/cxa/cxaa006.a
! 0ba729490f0276e661094749d283895c  gcc/testsuite/ada/acats-3/tests/cxa/cxaa007.a
! a5ce4e509ce0ab296bcdd6ac1f1901c4  gcc/testsuite/ada/acats-3/tests/cxa/cxaa008.a
! 6230c5c5911d68e5e9b6f01dd03cb063  gcc/testsuite/ada/acats-3/tests/cxa/cxaa009.a
! ce752fa717d1efa1292cf1f5fa1d3e2e  gcc/testsuite/ada/acats-3/tests/cxa/cxaa010.a
! a1b9e04009fe651e52c78ec25d1e7e02  gcc/testsuite/ada/acats-3/tests/cxa/cxaa011.a
! 89d82c447c9f9e46ab8b9a1c63021ed6  gcc/testsuite/ada/acats-3/tests/cxa/cxaa012.a
! 1f2db7b6b53cd6eac4580863a696a7fd  gcc/testsuite/ada/acats-3/tests/cxa/cxaa013.a
! 2bf5156bd9e88fa709d6514444235132  gcc/testsuite/ada/acats-3/tests/cxa/cxaa014.a
! ed6390551c08d72768b222a3edb8cc65  gcc/testsuite/ada/acats-3/tests/cxa/cxaa015.a
! 9b3e529f8cb7b3fd77f82dd49f82a490  gcc/testsuite/ada/acats-3/tests/cxa/cxaa016.a
! 7147f809c3aae79cfac85e734afed9c2  gcc/testsuite/ada/acats-3/tests/cxa/cxaa017.a
! cc1a3cfdd0d446ad5ae2882d5b1f089b  gcc/testsuite/ada/acats-3/tests/cxa/cxaa018.a
! 5a18624d0b2a25da41748146d45600fe  gcc/testsuite/ada/acats-3/tests/cxa/cxaa019.a
! c8ddb9f66c45bca19e451105a1928554  gcc/testsuite/ada/acats-3/tests/cxa/cxaa020.a
! f1700da5096991db07a95ff30f3e800c  gcc/testsuite/ada/acats-3/tests/cxa/cxaa021.a
! 9cf4b832ba930927ff60624e142141b5  gcc/testsuite/ada/acats-3/tests/cxa/cxaa022.a
! 541118f0faae1cc95a1d90526336b620  gcc/testsuite/ada/acats-3/tests/cxa/cxab001.a
! 1330583d0850bb9322928bc49ee307ba  gcc/testsuite/ada/acats-3/tests/cxa/cxab002.au
! 021c3dc06125a2acf83a2c1228022556  gcc/testsuite/ada/acats-3/tests/cxa/cxab003.au
! 08db41fcbeb1f4972a7c86837062b2b0  gcc/testsuite/ada/acats-3/tests/cxa/cxab004.au
! d3528db6190a39ace75489425aefe80e  gcc/testsuite/ada/acats-3/tests/cxa/cxab005.au
! 02e50f3257e2da0b2d211b9ed3e16791  gcc/testsuite/ada/acats-3/tests/cxa/cxac001.a
! 6788fdbde2fdac4a827fd20b38d8711b  gcc/testsuite/ada/acats-3/tests/cxa/cxac002.a
! bc2d4997d303b5a8cd8ac49ea128eabc  gcc/testsuite/ada/acats-3/tests/cxa/cxac003.a
! 0fed3fbdda367e73cc20e053e436b99f  gcc/testsuite/ada/acats-3/tests/cxa/cxac004.a
! c03fcfa6083accd85e20bd1ddecb7e8e  gcc/testsuite/ada/acats-3/tests/cxa/cxac005.a
! 568387fb48e42420dfca3f910e0f3bab  gcc/testsuite/ada/acats-3/tests/cxa/cxac006.a
! a2862d6559ce75bcd1f2978950a518f3  gcc/testsuite/ada/acats-3/tests/cxa/cxac008.a
! 1ea54203b702bc16f99a16da31812413  gcc/testsuite/ada/acats-3/tests/cxa/cxaca01.a
! 177daeac77a726a44c2f67d470718c26  gcc/testsuite/ada/acats-3/tests/cxa/cxaca02.a
! 56fc9878aa06e841c10ea2264f6970c0  gcc/testsuite/ada/acats-3/tests/cxa/cxacb01.a
! 66ac8f47c4a79c2e4c270e0af7e2e0ee  gcc/testsuite/ada/acats-3/tests/cxa/cxacb02.a
! 0709cbd75999d38ff1820f0252b56573  gcc/testsuite/ada/acats-3/tests/cxa/cxacc01.a
! e9b9a0663c6181302fffd99d8631f3de  gcc/testsuite/ada/acats-3/tests/cxa/cxaf001.a
! 3dbc8fe284e967e1e119d7349aa6ec86  gcc/testsuite/ada/acats-3/tests/cxa/cxag001.a
! af20f1f87af0ee8b369035758ff9977a  gcc/testsuite/ada/acats-3/tests/cxa/cxah001.a
! d6c42faa0fd85d4e611808fb977548e4  gcc/testsuite/ada/acats-3/tests/cxa/cxah002.a
! eddef539e76282853ede56713c282716  gcc/testsuite/ada/acats-3/tests/cxa/cxai001.a
! 59511fc7e2dc5eb3d8eb002a41c75a43  gcc/testsuite/ada/acats-3/tests/cxa/cxai002.a
! 2b38ff98548380b587c97df99d39cd14  gcc/testsuite/ada/acats-3/tests/cxa/cxai003.a
! e14cd7fb5b01e29555e3f2a342911d0f  gcc/testsuite/ada/acats-3/tests/cxa/cxai004.a
! de9794abb22fa1f1f095eab53a98b24e  gcc/testsuite/ada/acats-3/tests/cxa/cxai005.a
! 39061bbc816101eda5d75c5f378fd466  gcc/testsuite/ada/acats-3/tests/cxa/cxai006.a
! 6965780bd73fe509452616af98cd38e7  gcc/testsuite/ada/acats-3/tests/cxa/cxaia01.a
! 396d67c5a15e19792a7751d8802f41c3  gcc/testsuite/ada/acats-3/tests/cxa/cxaia02.a
! de5424d724aeebab710236bd11dcf2df  gcc/testsuite/ada/acats-3/tests/cxa/cxaia03.a
! 68bccb5d3055fe7d7a23ccd9ea1fb764  gcc/testsuite/ada/acats-3/tests/cxa/cxaia04.a
! 4dc93038eb6ccea3feac2a6250d9c712  gcc/testsuite/ada/acats-3/tests/cxa/cxaia05.a
! 9338b200af7369b42225ad5ebbc5c607  gcc/testsuite/ada/acats-3/tests/cxa/cxaia06.a
! 74275581d2adcd2434f5e7957524b51c  gcc/testsuite/ada/acats-3/tests/cxb/cxb2001.a
! 801c8a35b2162f9c6264359249bbee69  gcc/testsuite/ada/acats-3/tests/cxb/cxb2002.a
! bf39b2f4f07ed6a4665a9dda2b002ff4  gcc/testsuite/ada/acats-3/tests/cxb/cxb2003.a
! 77c85b698809dbb5fb428e06a404c9b9  gcc/testsuite/ada/acats-3/tests/cxb/cxb3001.a
! 8359205e9055b8be1d9b6762d2ed3539  gcc/testsuite/ada/acats-3/tests/cxb/cxb3002.a
! 670fd9357c7c7cfa50297d22a291bf67  gcc/testsuite/ada/acats-3/tests/cxb/cxb3003.a
! 264fa1c95ae6b3be066613d5e0bfc39d  gcc/testsuite/ada/acats-3/tests/cxb/cxb30040.c
! 834af9fa57783899a0e35eb445000495  gcc/testsuite/ada/acats-3/tests/cxb/cxb30041.am
! 1f7e6c754cd6392302f6a73881265fcb  gcc/testsuite/ada/acats-3/tests/cxb/cxb3005.a
! 47cb358f8b5c39994c472ca6162c0605  gcc/testsuite/ada/acats-3/tests/cxb/cxb30060.c
! 99678670b618e59863715594383e5e7b  gcc/testsuite/ada/acats-3/tests/cxb/cxb30061.am
! 593282429f5462d5ed18dcd8dcdb51d9  gcc/testsuite/ada/acats-3/tests/cxb/cxb3007.a
! f846172da7dd713a885e8d2a7d06687e  gcc/testsuite/ada/acats-3/tests/cxb/cxb3008.a
! d2f1180bb38e13d62efbd9773c8b157b  gcc/testsuite/ada/acats-3/tests/cxb/cxb3009.a
! 02b32c32297cd44b0d911f2b531c9313  gcc/testsuite/ada/acats-3/tests/cxb/cxb3010.a
! f8edfe848dc0c6e6f48662c52fb4967d  gcc/testsuite/ada/acats-3/tests/cxb/cxb3011.a
! db1e20e804e48dbfe6be7dc72d92df77  gcc/testsuite/ada/acats-3/tests/cxb/cxb3012.a
! c26417c84de8dd0b5f98086031028262  gcc/testsuite/ada/acats-3/tests/cxb/cxb30130.c
! 0fb5e5e773d77b07187a80ff9a521df6  gcc/testsuite/ada/acats-3/tests/cxb/cxb30131.c
! f10ef865b96ee70575c8e209dd789a5d  gcc/testsuite/ada/acats-3/tests/cxb/cxb30132.am
! 1ddc4dd51346e5a28f96af27d7391476  gcc/testsuite/ada/acats-3/tests/cxb/cxb3014.a
! 95d8e46749c34da8a75a52eda38a1557  gcc/testsuite/ada/acats-3/tests/cxb/cxb3015.a
! 84585e09a73118e308ad940e05334954  gcc/testsuite/ada/acats-3/tests/cxb/cxb3016.a
! c90918450e648f7980e92c59c3503e79  gcc/testsuite/ada/acats-3/tests/cxb/cxb30170.c
! ea3b3c13a8bde93929e2fbaa2ee14049  gcc/testsuite/ada/acats-3/tests/cxb/cxb30171.a
! 0a60e22dbf627ad27674cdb4536971e5  gcc/testsuite/ada/acats-3/tests/cxb/cxb30172.am
! 24721abe35ae24f15b7aad5d08e6fd32  gcc/testsuite/ada/acats-3/tests/cxb/cxb30230.c
! d2017af833f745dbc8efda20765b9def  gcc/testsuite/ada/acats-3/tests/cxb/cxb30231.am
! cbb79c5b42e78b77403051dad62e4b41  gcc/testsuite/ada/acats-3/tests/cxb/cxb4001.a
! fc709f860964cb89f985c7186e9f4747  gcc/testsuite/ada/acats-3/tests/cxb/cxb4002.a
! 4f684915a0877f5374cf11b630a78395  gcc/testsuite/ada/acats-3/tests/cxb/cxb4003.a
! 79754fe98b14164c0947685d39cacbb4  gcc/testsuite/ada/acats-3/tests/cxb/cxb4004.a
! 85a2ebed857909a39d337814747d6b8e  gcc/testsuite/ada/acats-3/tests/cxb/cxb4005.a
! 4082371e3fdf72189f00c59a748996d4  gcc/testsuite/ada/acats-3/tests/cxb/cxb4006.a
! 27abdc5551e4a8d82b4e9b0c64e5887b  gcc/testsuite/ada/acats-3/tests/cxb/cxb4007.a
! 8cddd50c9a17f7fc8660e979cbf02b3b  gcc/testsuite/ada/acats-3/tests/cxb/cxb4008.a
! 1b69eacf17c1c91c6952280f3412de5a  gcc/testsuite/ada/acats-3/tests/cxb/cxb5001.a
! c09620903bb91a1bb4eb42d58e681d41  gcc/testsuite/ada/acats-3/tests/cxb/cxb5002.a
! d523751f359c8b2cd39c46362a810f62  gcc/testsuite/ada/acats-3/tests/cxb/cxb5003.a
! 161785b3f8117f52fdfa5e2be103fe50  gcc/testsuite/ada/acats-3/tests/cxf/cxf1001.a
! 38832640106024eeab3e787b3e1abf12  gcc/testsuite/ada/acats-3/tests/cxf/cxf2001.a
! 6dbe0dc7ad8bcf924dea296b0e6d64f8  gcc/testsuite/ada/acats-3/tests/cxf/cxf2002.a
! df30106f75773ccdd081af9128456937  gcc/testsuite/ada/acats-3/tests/cxf/cxf2003.a
! bbdc713b858e164ba488b05b51a426d4  gcc/testsuite/ada/acats-3/tests/cxf/cxf2004.a
! 2853070456ab778051ae45509ef31700  gcc/testsuite/ada/acats-3/tests/cxf/cxf2005.a
! 5289a83b801532cadb9cfc8ca574144c  gcc/testsuite/ada/acats-3/tests/cxf/cxf2a01.a
! ecb6f7270417d94e1c9636302e69e1fa  gcc/testsuite/ada/acats-3/tests/cxf/cxf2a02.a
! 2ffc00ccfb476a6822050bacce9f38f0  gcc/testsuite/ada/acats-3/tests/cxf/cxf3001.a
! 5dae288354cb87431755a88817dd365b  gcc/testsuite/ada/acats-3/tests/cxf/cxf3002.a
! afd49d16a5d04aec633505dca48b0d0a  gcc/testsuite/ada/acats-3/tests/cxf/cxf3003.a
! c6b3622a1e5b20d69719852a4082e8be  gcc/testsuite/ada/acats-3/tests/cxf/cxf3004.a
! 1aee0d4b0a06b7063d6235fc8d34096a  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a01.a
! 57064f6f477f169e4e55de947a9c929c  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a02.a
! 963266d142d788cf27f6a6c25463a3e4  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a03.a
! b0edb7a9a3f96101a217a11d890227d0  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a04.a
! fc92aa9ac0df0e5baa30ead02d831b57  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a05.a
! 64a24769c1369c7cfdee0cd6e259be8f  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a06.a
! 9713b92f0463d1404ffce0f6b1e500b0  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a07.a
! 1e8c052576f82ce44e874eaf39b880b2  gcc/testsuite/ada/acats-3/tests/cxf/cxf3a08.a
! bb528e8b6f5a51fcb2c85de76f01ccd4  gcc/testsuite/ada/acats-3/tests/cxg/cxg1001.a
! 31d84efce5cb86f288a534683e15200a  gcc/testsuite/ada/acats-3/tests/cxg/cxg1002.a
! 5db4d9e6a4cf0ee61e3e4e4ea8093c4e  gcc/testsuite/ada/acats-3/tests/cxg/cxg1003.a
! 29704ab7c7c7a79f47511599cd5ea610  gcc/testsuite/ada/acats-3/tests/cxg/cxg1004.a
! 38c19bd2b8b49892b5a8468c5b781d26  gcc/testsuite/ada/acats-3/tests/cxg/cxg1005.a
! cf1886805bf7bef0f8693b1061462c39  gcc/testsuite/ada/acats-3/tests/cxg/cxg2001.a
! 691b89d2d22e78fce3d8ce8190aceac5  gcc/testsuite/ada/acats-3/tests/cxg/cxg2002.a
! fd15930c996abc004ebe5f623f8d7e3e  gcc/testsuite/ada/acats-3/tests/cxg/cxg2003.a
! 9c7ebf167f5adb4ad817f1cfaad15b1e  gcc/testsuite/ada/acats-3/tests/cxg/cxg2004.a
! 19538696a45a5cd61915e552c0159e21  gcc/testsuite/ada/acats-3/tests/cxg/cxg2005.a
! b5a9cd918ec505f80bffd4b8d3f81fb7  gcc/testsuite/ada/acats-3/tests/cxg/cxg2006.a
! d118b202244475fa2d6637a5102c8793  gcc/testsuite/ada/acats-3/tests/cxg/cxg2007.a
! 911e82a1ca3377a813732860a0062312  gcc/testsuite/ada/acats-3/tests/cxg/cxg2008.a
! 4fad0b52dda14d215336cc1cd38b7f03  gcc/testsuite/ada/acats-3/tests/cxg/cxg2009.a
! a7f0790bd1f4db62bb1f94f90b403cca  gcc/testsuite/ada/acats-3/tests/cxg/cxg2010.a
! 2e25178ea5e5552c5343ba6d8584ba74  gcc/testsuite/ada/acats-3/tests/cxg/cxg2011.a
! f61b0c35864b0aa5527d3e4a3e81e779  gcc/testsuite/ada/acats-3/tests/cxg/cxg2012.a
! 1b99769a37ef9c2b58f43910fdd00e6b  gcc/testsuite/ada/acats-3/tests/cxg/cxg2013.a
! 481025f4913d9ffb0c1ff442b9870591  gcc/testsuite/ada/acats-3/tests/cxg/cxg2014.a
! 79eb7ca23122446b9f31a5f4d6f8fbc7  gcc/testsuite/ada/acats-3/tests/cxg/cxg2015.a
! d1362a6e008edbda6db26e148303f3d0  gcc/testsuite/ada/acats-3/tests/cxg/cxg2016.a
! 84a228b85aa2b3a442a702cb5cf99e63  gcc/testsuite/ada/acats-3/tests/cxg/cxg2017.a
! db5d4af0d0f84dcaf031081f41020e4a  gcc/testsuite/ada/acats-3/tests/cxg/cxg2018.a
! 6ca3da628f7936107fe1fd235da62e61  gcc/testsuite/ada/acats-3/tests/cxg/cxg2019.a
! d8efe67bfdf82292c98f593e60cace57  gcc/testsuite/ada/acats-3/tests/cxg/cxg2020.a
! 53b94c96558a199ee91e9e94e92f6e6e  gcc/testsuite/ada/acats-3/tests/cxg/cxg2021.a
! 44df5fa53bb68ac9be22c5db9adb9c5e  gcc/testsuite/ada/acats-3/tests/cxg/cxg2022.a
! 86432328beb230d12c30455a5259108f  gcc/testsuite/ada/acats-3/tests/cxg/cxg2023.a
! 7b9353c95978924cfa8ffca95bd2472f  gcc/testsuite/ada/acats-3/tests/cxg/cxg2024.a
! 4aedd99c5e7383826785e110132437b0  gcc/testsuite/ada/acats-3/tests/cxh/cxh3001.a
! 30e3860e9003591085363de238d2c0f8  gcc/testsuite/ada/acats-3/tests/cxh/cxh3002.a
! 2f97ad7e05c98ee16642183b60fb702b  gcc/testsuite/ada/acats-3/tests/cxh/cxh30030.a
! 726c3a5559867c336b3e41053357bee8  gcc/testsuite/ada/acats-3/tests/cxh/cxh30031.am
! 5812c7613bb171e922984de8ed304306  gcc/testsuite/ada/acats-3/tests/cz/cz1101a.ada
! f4be18c06fbff775151b0c6fe4f18831  gcc/testsuite/ada/acats-3/tests/cz/cz1102a.ada
! 1a17d44787330941af6e6eb9b2f5fdac  gcc/testsuite/ada/acats-3/tests/cz/cz1103a.ada
! 4fbac816abd03239d980e03cee911122  gcc/testsuite/ada/acats-3/tests/d/d4a002a.ada
! 9fc88c362bc5e3ac1038838ce2e31e1d  gcc/testsuite/ada/acats-3/tests/d/d4a002b.ada
! 512d36027df5b67cad136178dabfe4a2  gcc/testsuite/ada/acats-3/tests/d/d4a004a.ada
! 22af18afdcf3a383d8100e7290a1c40c  gcc/testsuite/ada/acats-3/tests/d/d4a004b.ada
! 605dc6f15a51dd750ab6fdf7ddcb65a6  gcc/testsuite/ada/acats-3/tests/e/e28002b.ada
! de9f0ecd5c9bafad769c8b2264e38499  gcc/testsuite/ada/acats-3/tests/e/e28005d.ada
! 3cacc87e4376898f97bc3ad35305e3b0  gcc/testsuite/ada/acats-3/tests/e/e52103y.ada
! c92c30f9076000218a22d41126403c34  gcc/testsuite/ada/acats-3/tests/e/eb4011a.ada
! deba1575fb8b252064041e5d408f53a3  gcc/testsuite/ada/acats-3/tests/e/eb4012a.ada
! 08131f4b11da03c32ca002338f3e4a59  gcc/testsuite/ada/acats-3/tests/e/eb4014a.ada
! b8a8e5440cbe69d0ad54064892a114c0  gcc/testsuite/ada/acats-3/tests/e/ee3203a.ada
! 48040471bf50b07840b3338c9bc7e2c6  gcc/testsuite/ada/acats-3/tests/e/ee3204a.ada
! 25bff343477de94bd78239442f9ee02a  gcc/testsuite/ada/acats-3/tests/e/ee3402b.ada
! b057daa29f3fcc66f6affebff75a1be5  gcc/testsuite/ada/acats-3/tests/e/ee3409f.ada
! 4c52e7caa9bc136f2cba824b2e52e9c6  gcc/testsuite/ada/acats-3/tests/e/ee3412c.ada
! 76344ab690464f293f3d4ea9ddafa233  gcc/testsuite/ada/acats-3/tests/l/la140010.a
! 2900850ee7d28fb09a708d15ecb120e8  gcc/testsuite/ada/acats-3/tests/l/la140011.am
! 3a566254bd6b5a2476b7a0a4d201c6ec  gcc/testsuite/ada/acats-3/tests/l/la140012.a
! f251861d8f7143c4d6a0139eb5109844  gcc/testsuite/ada/acats-3/tests/l/la140020.a
! 94e3a842d07a1b065bf9729ba53ec9fd  gcc/testsuite/ada/acats-3/tests/l/la140021.am
! 951f84109a5b6658e7dd287bbd9bae71  gcc/testsuite/ada/acats-3/tests/l/la140022.a
! 876db830d93e5c9744a1c290ed00f17f  gcc/testsuite/ada/acats-3/tests/l/la140030.a
! eaefd12663189709da8ccf17c2c368fa  gcc/testsuite/ada/acats-3/tests/l/la140031.a
! 7bf8660d1ec101205c05dd17726a229a  gcc/testsuite/ada/acats-3/tests/l/la140032.am
! 857f64e53ab5de64c7aff62222d11127  gcc/testsuite/ada/acats-3/tests/l/la140033.a
! 92ca699ccd2c74842385086d5ada22dd  gcc/testsuite/ada/acats-3/tests/l/la140040.a
! 8b2c5cc4a29ad35fcfa826d7b492bc08  gcc/testsuite/ada/acats-3/tests/l/la140041.am
! fb8dd82cf673301eecabc122ac171090  gcc/testsuite/ada/acats-3/tests/l/la140042.a
! 6d5ee36b10609c888874ac66e3f0ee1e  gcc/testsuite/ada/acats-3/tests/l/la140050.a
! e04923836f3f4282a67d6f89778a6914  gcc/testsuite/ada/acats-3/tests/l/la140051.a
! bfa5a2187576b86f14423c0040742843  gcc/testsuite/ada/acats-3/tests/l/la140052.am
! 0d6624b67d8552559b64873f684e581d  gcc/testsuite/ada/acats-3/tests/l/la140053.a
! 8035d0c6bfa2f3b3a49f58acd52dd8a7  gcc/testsuite/ada/acats-3/tests/l/la140060.a
! 3d90461eff6991fd8178d6d2118e9ddf  gcc/testsuite/ada/acats-3/tests/l/la140061.a
! e475cc528675aeae58edde764f9dd718  gcc/testsuite/ada/acats-3/tests/l/la140062.am
! f022f8aa1d30fb70ecca6f610089b986  gcc/testsuite/ada/acats-3/tests/l/la140063.a
! c3833b353f97382d992824760c162c7c  gcc/testsuite/ada/acats-3/tests/l/la140070.a
! c0ccfb9014a2864c4a49d88f46f491c1  gcc/testsuite/ada/acats-3/tests/l/la140071.a
! 509bb3bfec998a7f16d7a711f508bdc0  gcc/testsuite/ada/acats-3/tests/l/la140072.am
! 4710fc41166460cc60192a57798054b4  gcc/testsuite/ada/acats-3/tests/l/la140073.a
! dcb4f9c9fdad375c3fe93310ac6b816e  gcc/testsuite/ada/acats-3/tests/l/la140080.a
! a3acb845f1ea8cd193aec71beb1ead51  gcc/testsuite/ada/acats-3/tests/l/la140081.a
! d8f09cb05605e6ee39a41685ba970092  gcc/testsuite/ada/acats-3/tests/l/la140082.am
! 6d37a12249cd1b2bdf860f7651a462e4  gcc/testsuite/ada/acats-3/tests/l/la140083.a
! 46655b2b4b88ca82cb0afc6eac22cd7b  gcc/testsuite/ada/acats-3/tests/l/la140090.a
! 257622cc1c6c259921d7e6c33e23f1ff  gcc/testsuite/ada/acats-3/tests/l/la140091.a
! 1c00169793ce024a3f35da791e30bbe6  gcc/testsuite/ada/acats-3/tests/l/la140092.am
! 6a23c4b62a4cac8720e8b7c21ad97d5b  gcc/testsuite/ada/acats-3/tests/l/la140093.a
! ed2026e1ace460e994b96b42c8f05e9c  gcc/testsuite/ada/acats-3/tests/l/la140100.a
! 55167329c290c62025473120fca26c7d  gcc/testsuite/ada/acats-3/tests/l/la140101.a
! 9280256db41c4bec0f36aa69ff060841  gcc/testsuite/ada/acats-3/tests/l/la140102.am
! 7b092247e539009157e512965ba1fc7a  gcc/testsuite/ada/acats-3/tests/l/la140103.a
! 6722c5fc30bb307834268e434901c086  gcc/testsuite/ada/acats-3/tests/l/la140110.a
! 443c0bb26e2eb84889c83a9bccaf9649  gcc/testsuite/ada/acats-3/tests/l/la140111.a
! 47c6e7a9da351969b20b3d295bb3c115  gcc/testsuite/ada/acats-3/tests/l/la140112.am
! 4bf0921f6ccd99db94a8a70d2b166fdf  gcc/testsuite/ada/acats-3/tests/l/la140113.a
! 5c9a0f9992d6d21844e2ba208b7cebbc  gcc/testsuite/ada/acats-3/tests/l/la140120.a
! 7c0ca86bca64632e57e32b5842ddbe60  gcc/testsuite/ada/acats-3/tests/l/la140121.a
! 211c1d44471b6a40c3d807f83059ff77  gcc/testsuite/ada/acats-3/tests/l/la140122.am
! e4cb364e594a0d2463e66f4aa48a914a  gcc/testsuite/ada/acats-3/tests/l/la140123.a
! 76516f31e5adf9e0fad1886ab83457a4  gcc/testsuite/ada/acats-3/tests/l/la140130.a
! f3b7f597165821e514288274845f5e54  gcc/testsuite/ada/acats-3/tests/l/la140131.a
! cb0819afcaf9586c9c95966d2516fb65  gcc/testsuite/ada/acats-3/tests/l/la140132.am
! 32a943ea5a9287c709fa39655d8668cb  gcc/testsuite/ada/acats-3/tests/l/la140133.a
! 212943c674757076da046354450e5113  gcc/testsuite/ada/acats-3/tests/l/la140140.a
! 195b91195befb872c8f723da1d28f132  gcc/testsuite/ada/acats-3/tests/l/la140141.a
! a6d2954f197001069fb371e8403e8ac6  gcc/testsuite/ada/acats-3/tests/l/la140142.am
! 57ac76011ccf9054712e1b09ef71bfd9  gcc/testsuite/ada/acats-3/tests/l/la140143.a
! 7552c854bb4af3c4f87cfe6a7a861610  gcc/testsuite/ada/acats-3/tests/l/la140150.a
! 5f1dcc1a1c97c253b5809c49c2a326ad  gcc/testsuite/ada/acats-3/tests/l/la140151.a
! 662ea838e79bbec83ab42275c2111e2a  gcc/testsuite/ada/acats-3/tests/l/la140152.am
! c80afc3e35ad24a8bb25b5e3d67f2bcb  gcc/testsuite/ada/acats-3/tests/l/la140153.a
! ebc4ad53e17e21942e69ae80c5b47b77  gcc/testsuite/ada/acats-3/tests/l/la140160.a
! 117e1792c17a1e2b5ec04bba346f528d  gcc/testsuite/ada/acats-3/tests/l/la140161.a
! b7744773a1c753b7aa68c166866eb005  gcc/testsuite/ada/acats-3/tests/l/la140162.am
! 9852ca8047bc9e1bd578767b67254fd2  gcc/testsuite/ada/acats-3/tests/l/la140163.a
! f7f66fd9abfb1f4931428292cd1fe63d  gcc/testsuite/ada/acats-3/tests/l/la140170.a
! 2acaa1d866103405c81e05839bd25054  gcc/testsuite/ada/acats-3/tests/l/la140171.a
! ea5de64993880be50e047e540f521cec  gcc/testsuite/ada/acats-3/tests/l/la140172.am
! b3e16fff4bf97ee8001c7d4707b01ca8  gcc/testsuite/ada/acats-3/tests/l/la140173.a
! cef0b6dba566de9e4b3fdd8429f3b573  gcc/testsuite/ada/acats-3/tests/l/la140180.a
! 3a47eaaf81a03727243aa228f4301a60  gcc/testsuite/ada/acats-3/tests/l/la140181.a
! a5c23800bfa114aaa25ef21241ca0c43  gcc/testsuite/ada/acats-3/tests/l/la140182.am
! 831069dc37bbaa6d17e49ec411324925  gcc/testsuite/ada/acats-3/tests/l/la140183.a
! 9597131b3c0b103f6244907627fbf160  gcc/testsuite/ada/acats-3/tests/l/la140190.a
! 14063c6684e8dd6c14ea4d18badb550b  gcc/testsuite/ada/acats-3/tests/l/la140191.a
! 8cbcf00024bdf7530ae51ba8a1ca0bba  gcc/testsuite/ada/acats-3/tests/l/la140192.am
! 99e2d79f6f50d594ab2f3e503f2db441  gcc/testsuite/ada/acats-3/tests/l/la140193.a
! ea6d1fb3bdbfc0deaee617b126be28f4  gcc/testsuite/ada/acats-3/tests/l/la140200.a
! babcd4715ea4f023430dfbe1f896bde1  gcc/testsuite/ada/acats-3/tests/l/la140201.a
! 64279761de38aa82af4a5638c457c1bf  gcc/testsuite/ada/acats-3/tests/l/la140202.am
! 7e4b83d0d9265f463e87dcc9fcf0fe5b  gcc/testsuite/ada/acats-3/tests/l/la140203.a
! b12cced7adaecf2a93250e16cca98cf4  gcc/testsuite/ada/acats-3/tests/l/la140210.a
! 887401b5f446bce786751fa72e341292  gcc/testsuite/ada/acats-3/tests/l/la140211.am
! ab173d0eec0bb616f34f81aa48cd950c  gcc/testsuite/ada/acats-3/tests/l/la140212.a
! 594b0e8144190e578786dbc1bad844dc  gcc/testsuite/ada/acats-3/tests/l/la140220.a
! f842b35f8c01816efc84f4addd2f93b7  gcc/testsuite/ada/acats-3/tests/l/la140221.am
! 772553907cc4b151574b52a2b52dc90c  gcc/testsuite/ada/acats-3/tests/l/la140222.a
! b03871ce6d6f59a7e5a7612e6d89d596  gcc/testsuite/ada/acats-3/tests/l/la140240.a
! efe4e86bfb690c79c68494f323cac801  gcc/testsuite/ada/acats-3/tests/l/la140241.a
! 30f55b3747e6fa1b9ef0af765a76ce5a  gcc/testsuite/ada/acats-3/tests/l/la140242.am
! f95f7a3f483abd92a9bf92b6dc469986  gcc/testsuite/ada/acats-3/tests/l/la140243.a
! 2db8317b47f3ab8bb9a0f5469169d027  gcc/testsuite/ada/acats-3/tests/l/la140250.a
! 938965a24a1e6eb44e817ef6a6bcef36  gcc/testsuite/ada/acats-3/tests/l/la140251.am
! b3d2bc446e9f8766852585be1a71c541  gcc/testsuite/ada/acats-3/tests/l/la140252.a
! ced69a105f582142776937381fb4ac18  gcc/testsuite/ada/acats-3/tests/l/la140260.a
! ff927baa2a1a94e581616deb8f88d900  gcc/testsuite/ada/acats-3/tests/l/la140261.a
! 666740bbcb573799ed4bbd92b8380bac  gcc/testsuite/ada/acats-3/tests/l/la140262.am
! 2a7b7e46c9fcf98d59cf645dd8488895  gcc/testsuite/ada/acats-3/tests/l/la140263.a
! b886a43ab960ee3b74b75b1a1895e692  gcc/testsuite/ada/acats-3/tests/l/la140270.a
! 2f50ecd2b64eb3a3cefb0066c4c043a1  gcc/testsuite/ada/acats-3/tests/l/la140271.a
! 004386b31584ba3e3f7171f7674e4137  gcc/testsuite/ada/acats-3/tests/l/la140272.am
! 9c63871113de9b518e90c90fe8e20f28  gcc/testsuite/ada/acats-3/tests/l/la140273.a
! 4004844198395fe50ecb798ed5d30f4b  gcc/testsuite/ada/acats-4/elabd.lst
! b32871a59b0c07cb4eda259b98fa6aab  gcc/testsuite/ada/acats-4/floatstore.lst
! bb4e4f9d3c0e72730e0bf397d375689c  gcc/testsuite/ada/acats-4/norun.lst
! 1485f263dfb9303b015015ae88161a8b  gcc/testsuite/ada/acats-4/run_acats.sh
! b442a8a57d22fdedfc161e3cc2ae4cff  gcc/testsuite/ada/acats-4/run_all.sh
! 6467abb463602aeb04583b3822f653f4  gcc/testsuite/ada/acats-4/run_test.exp
! 5723a26fced8721c3e90e6e7a9ba2a23  gcc/testsuite/ada/acats-4/stackcheck.lst
! 3ed91c67e7b16c7449a06f626b2b0457  gcc/testsuite/ada/acats-4/support/acats42.lst
! 2f262cdb98b38922d7b7f84414f43b84  gcc/testsuite/ada/acats-4/support/checkfil.ada
! 4edf20410814582eae331707f2ae2c77  gcc/testsuite/ada/acats-4/support/enumchek.ada
! 8f3ec4fe93c0095e34d79e9a41dde4e9  gcc/testsuite/ada/acats-4/support/f340a000.a
! b673a17611516bde0712458de61636e8  gcc/testsuite/ada/acats-4/support/f340a001.a
! b31158ceea90e5246f63aed8b0078e9c  gcc/testsuite/ada/acats-4/support/f341a00.a
! e5659e8b854d73fb80a7d1cb6c5d4925  gcc/testsuite/ada/acats-4/support/f350a00.a
! a3df0325fe284b799591144749e23c78  gcc/testsuite/ada/acats-4/support/f350b00.a
! 8cfe6ef1d589a43b75821a6abbee2ef0  gcc/testsuite/ada/acats-4/support/f360a00.a
! c4075cf1fc60a2a1ca99fb7d74c81ad4  gcc/testsuite/ada/acats-4/support/f360b00.a
! d3d954612d4f455a32df07aa05816320  gcc/testsuite/ada/acats-4/support/f390a00.a
! ed3b5aee8f81d147785adce6b48411cd  gcc/testsuite/ada/acats-4/support/f392a00.a
! 7973b64953275c03e790967bc310010c  gcc/testsuite/ada/acats-4/support/f392c00.a
! 7b5b9e45fb9003af0e096ca36327031e  gcc/testsuite/ada/acats-4/support/f392d00.a
! e4733abdf62c401a876d29c3e5a38c34  gcc/testsuite/ada/acats-4/support/f393a00.a
! c1487dd34771abf18d1144c610fac26e  gcc/testsuite/ada/acats-4/support/f393b00.a
! 62e2d5487aada0ccc1744ab3475cf281  gcc/testsuite/ada/acats-4/support/f394a00.a
! a42dca590b0bfdb848b97329f6d46360  gcc/testsuite/ada/acats-4/support/f3a1a00.a
! b3e35321e808d9e061d1fdef51813016  gcc/testsuite/ada/acats-4/support/f3a2a00.a
! c78e6b8793894afe2644c0ea96672ace  gcc/testsuite/ada/acats-4/support/f416a00.a
! 9cc366af74ec7e926f044bb5155d06ae  gcc/testsuite/ada/acats-4/support/f431a00.a
! c528a968af853505c447f20a88480156  gcc/testsuite/ada/acats-4/support/f433a00.a
! 8272f7274c301332200c1e04a0c1974c  gcc/testsuite/ada/acats-4/support/f452a00.a
! a69fe4858da0afd4136e4c58cd08134e  gcc/testsuite/ada/acats-4/support/f458a00.a
! 798afd3c6228223e07e7c8e3034eb99c  gcc/testsuite/ada/acats-4/support/f460a00.a
! 773d36ae846235e9ee581e0ad2e0f314  gcc/testsuite/ada/acats-4/support/f552a00.a
! 1cfbd2728319bc134c13c90931027a2f  gcc/testsuite/ada/acats-4/support/f611a00.a
! 9f88e134c5d430bcff7b1c4ccc2e4385  gcc/testsuite/ada/acats-4/support/f611b00.a
! d6989b796158be297223806b657f2d4a  gcc/testsuite/ada/acats-4/support/f650a00.a
! bb61b3646b6fffb3baec5749d8cef429  gcc/testsuite/ada/acats-4/support/f650b00.a
! 316c7cde49ee557a67d39d6b63407811  gcc/testsuite/ada/acats-4/support/f730a000.a
! 60edd601c25022d0f19b8c45d3d187bb  gcc/testsuite/ada/acats-4/support/f730a001.a
! 75b2405f0dd739649bda9b92b0d259f4  gcc/testsuite/ada/acats-4/support/f731a00.a
! ccd8e3c3faf25144fe3c561334b303bf  gcc/testsuite/ada/acats-4/support/f732a00.a
! d41b64f601f2f2eeea39391ec09222d9  gcc/testsuite/ada/acats-4/support/f732b00.a
! 7eb08f416a9cfaf82252b8c55ed28a98  gcc/testsuite/ada/acats-4/support/f732c00.a
! f12fe4ead9a2039676b4c2ad03e2a7c7  gcc/testsuite/ada/acats-4/support/f750a00.a
! bbcbe0173cb32d75903f9a81bf5c4060  gcc/testsuite/ada/acats-4/support/f760a00.a
! 689c49d9ccb5124d47eecb1dcebcc376  gcc/testsuite/ada/acats-4/support/f940a00.a
! d08e91b98a54c3d471108a6631714033  gcc/testsuite/ada/acats-4/support/f954a00.a
! f95be63eadf08e7cafbeb33a6794c019  gcc/testsuite/ada/acats-4/support/fa11a00.a
! 28be0e2126b177ff6d34df7c272a9f2c  gcc/testsuite/ada/acats-4/support/fa11b00.a
! 2228808bf25eecbd9e02ff343e2dba54  gcc/testsuite/ada/acats-4/support/fa11c00.a
! 1cb03e4473720d064b6798cf5e185f62  gcc/testsuite/ada/acats-4/support/fa11d00.a
! ff082a3957be5f526713103bf563e5be  gcc/testsuite/ada/acats-4/support/fa13a00.a
! dfa6bb61642b6c22f17171fb93cfc97c  gcc/testsuite/ada/acats-4/support/fa13b00.a
! b1766ae4ae2012673c7e0c848a4c105e  gcc/testsuite/ada/acats-4/support/fa21a00.a
! 97d3fd68d030a5d89e98b950d557151d  gcc/testsuite/ada/acats-4/support/fb20a00.a
! 886f3ad8c51e9e1e01cb7d4ab0b3f47e  gcc/testsuite/ada/acats-4/support/fb40a00.a
! 045b4b77241122260c9b42a0a85941b8  gcc/testsuite/ada/acats-4/support/fc50a00.a
! d2c427a2c2e845d2d5991d7e86689284  gcc/testsuite/ada/acats-4/support/fc51a00.a
! 18eee0e1727cb58b8ca0da52a8f7fbd0  gcc/testsuite/ada/acats-4/support/fc51b00.a
! 707c153d9868ec6e694e8db161e9a7c7  gcc/testsuite/ada/acats-4/support/fc51c00.a
! 981a728516c5de4f242cff81d35a1806  gcc/testsuite/ada/acats-4/support/fc51d00.a
! 992e25818babbd2519c54f2dc5987601  gcc/testsuite/ada/acats-4/support/fc54a00.a
! f75e17c909e83e1879e87a3ba3ffd7cc  gcc/testsuite/ada/acats-4/support/fc70a00.a
! cdb7ee32751757a29e821ba020228a0e  gcc/testsuite/ada/acats-4/support/fc70b00.a
! 8af79a6be55981313da73bc0bb01f617  gcc/testsuite/ada/acats-4/support/fc70c00.a
! 65011f4705018476715af62324c335b3  gcc/testsuite/ada/acats-4/support/fcndecl.ada
! 3ce3384936274aa48a8c4a38fa7109ac  gcc/testsuite/ada/acats-4/support/fd72a00.a
! 5c9a93b4c9f45c15707e4b3b123aee9c  gcc/testsuite/ada/acats-4/support/fdb0a00.a
! eade5334073c90ba1cd88d24e19e32a4  gcc/testsuite/ada/acats-4/support/fdb3a00.a
! bf9c7650a6f8303b6a69ff5eb2660b15  gcc/testsuite/ada/acats-4/support/fdd2a00.a
! 66196b3c77238fb8c27dd10465e97042  gcc/testsuite/ada/acats-4/support/fdd2b00.a
! a77ebc244676daacb1f3a61ae8003e88  gcc/testsuite/ada/acats-4/support/fxa5a00.a
! f4e9649e424fa9578180b9aee65c8e96  gcc/testsuite/ada/acats-4/support/fxaca00.a
! caa75442e4dceed0740dfa35a47b5bb6  gcc/testsuite/ada/acats-4/support/fxacb00.a
! 1855abc6c615b76aa82fb9241571f3d8  gcc/testsuite/ada/acats-4/support/fxacc00.a
! 1c5af3fa6abb70600f002448cbb84798  gcc/testsuite/ada/acats-4/support/fxaia00.a
! 65d5687fc491244cba19146100918127  gcc/testsuite/ada/acats-4/support/fxaib00.a
! f88af2b3eb53ad7c8700efbd0f878915  gcc/testsuite/ada/acats-4/support/fxc6a00.a
! 56ba35dd56ea544c0eb9146769871492  gcc/testsuite/ada/acats-4/support/fxe2a00.a
! 67770e9161b0f48f3fc9392bd3460272  gcc/testsuite/ada/acats-4/support/fxf2a00.a
! 6628969f51dd10c56235f9d7420e2d44  gcc/testsuite/ada/acats-4/support/fxf3a00.a
! 5df9d30ae1696936a050aa76a1791d83  gcc/testsuite/ada/acats-4/support/grade.a
! 3115c4d4fcb7b14e7241219066907a9c  gcc/testsuite/ada/acats-4/support/grd_data.a
! 6a9b6ce90538e9126e7e5badc62ddca2  gcc/testsuite/ada/acats-4/support/impbit.adb
! 161d9fabed753ac0882cff4287914745  gcc/testsuite/ada/acats-4/support/impdef.a
! 1df1ecb1a1f6d4af019216884e3504ef  gcc/testsuite/ada/acats-4/support/impdefc.a
! 4f2f9bfdfcfd8c5ecaf503416d1cfc5f  gcc/testsuite/ada/acats-4/support/impdefd.a
! edf70d423a69adebd38e9b29f35a2ba1  gcc/testsuite/ada/acats-4/support/impdefe.a
! cadfd8a5487a315a6fbd8eef397219e9  gcc/testsuite/ada/acats-4/support/impdefg.a
! 5d9a0f98d9f15211e0773263febb974b  gcc/testsuite/ada/acats-4/support/impdefh.a
! f2604ccc5244696793b33e7b83c57c45  gcc/testsuite/ada/acats-4/support/lencheck.ada
! 79c0994222b2a5fc702eb4bc3dc1ba8e  gcc/testsuite/ada/acats-4/support/macro.dfs
! 72980ae1a3bbd5b71aa915cefeaebf6e  gcc/testsuite/ada/acats-4/support/macrodef.adb
! 4d7b79a3ff077d1ab05a78ebcf5a1de3  gcc/testsuite/ada/acats-4/support/macrosub.ada
! 8cb717a6b9fc55d9e6318b49da956f52  gcc/testsuite/ada/acats-4/support/report.a
! 2b5f4d4023fee6617354705898db933f  gcc/testsuite/ada/acats-4/support/special.a
! 356cf4b2e0cc1e02ef1deddb5567de36  gcc/testsuite/ada/acats-4/support/spprt13s.tst
! 080c7ff4fbd781f8b5ab3030e013661d  gcc/testsuite/ada/acats-4/support/summary.a
! ca9764a7f6a92b2d9bf8fe9ba55ff261  gcc/testsuite/ada/acats-4/support/tctouch.ada
! 4ef387cf65c4278a4f7aa2a7a4736d17  gcc/testsuite/ada/acats-4/support/trace.a
! 133b60ee1b2e82c2ee98457fa66f01fe  gcc/testsuite/ada/acats-4/support/tst_sum.a
! 26945b868319fda8b82f82c677a35562  gcc/testsuite/ada/acats-4/support/tsttests.dat
! 51179826b11327f0aa5f752b2bb4b780  gcc/testsuite/ada/acats-4/support/version.a
! dc179b8a7c506c961b229b7ec7d2de53  gcc/testsuite/ada/acats-4/tests/a/a22006b.ada
! f61ae49f8066de3ba349e39d3a688ea6  gcc/testsuite/ada/acats-4/tests/a/a22006c.ada
! 54e5a501bbefb19fdf7715f5741fc858  gcc/testsuite/ada/acats-4/tests/a/a22006d.ada
! 11394a122edd516a587d020bc9ce2e8e  gcc/testsuite/ada/acats-4/tests/a/a26007a.tst
! aa57a75b85b36a99f6ecaca91a9eed60  gcc/testsuite/ada/acats-4/tests/a/a27003a.ada
! 054ca4c1bbb5dd701e8781bc92bf9cb8  gcc/testsuite/ada/acats-4/tests/a/a29003a.ada
! c330e5a362289a57c2ca975a61b4d20c  gcc/testsuite/ada/acats-4/tests/a/a2a031a.ada
! bbd0059e56828aa342048400c5490233  gcc/testsuite/ada/acats-4/tests/a/a33003a.ada
! 84de33e1cd2c3a0c2165591a28407805  gcc/testsuite/ada/acats-4/tests/a/a34017c.ada
! 924373fa4803a6e22fdc43bd0bee31a3  gcc/testsuite/ada/acats-4/tests/a/a35101b.ada
! be270ea90b999a2136e6cc850543a945  gcc/testsuite/ada/acats-4/tests/a/a35402a.ada
! 8054f52aa40d34c334d3a4b30222340a  gcc/testsuite/ada/acats-4/tests/a/a35801f.ada
! 325ee8ec767c6769757ac1eb71d6f515  gcc/testsuite/ada/acats-4/tests/a/a35902c.ada
! c512e91af19d8cf3307b189ec712dde0  gcc/testsuite/ada/acats-4/tests/a/a38106d.ada
! 8d608afb4ab9b953fd4dd01b00a90914  gcc/testsuite/ada/acats-4/tests/a/a38106e.ada
! 28bab0e5eb84a43ad0b4dc06d90f880b  gcc/testsuite/ada/acats-4/tests/a/a49027a.ada
! 5b6e07973ea9075de594e462d6f0f847  gcc/testsuite/ada/acats-4/tests/a/a49027b.ada
! 926d6ade013a1456d53a17063495aaf2  gcc/testsuite/ada/acats-4/tests/a/a49027c.ada
! df2270ff569c843d152cae1fc3606103  gcc/testsuite/ada/acats-4/tests/a/a54b01a.ada
! 71937fafcd3199a3eda330e7880c1ec5  gcc/testsuite/ada/acats-4/tests/a/a54b02a.ada
! 1aa0f31635199e1096468f23888a66f4  gcc/testsuite/ada/acats-4/tests/a/a55b12a.ada
! b0fc7cf66a832e68c808ed89a23340d1  gcc/testsuite/ada/acats-4/tests/a/a55b13a.ada
! 205552e2dafa2b699b6514e12a35e676  gcc/testsuite/ada/acats-4/tests/a/a55b14a.ada
! 7a5be75ac2dc323c1dd1e9328c39c6e0  gcc/testsuite/ada/acats-4/tests/a/a71004a.ada
! 69bd6dadfe4d61041f1998157bcbdb4a  gcc/testsuite/ada/acats-4/tests/a/a73001i.ada
! 8b949ce02d53bc2b35893d05656ff3c2  gcc/testsuite/ada/acats-4/tests/a/a73001j.ada
! 3859ef22068457dc5db7b84889f89c07  gcc/testsuite/ada/acats-4/tests/a/a74105b.ada
! 5200e86147d7eddb31de36b182066003  gcc/testsuite/ada/acats-4/tests/a/a74106a.ada
! d288f454e96b3840804c86245fd1309c  gcc/testsuite/ada/acats-4/tests/a/a74106b.ada
! c6c2ff5c654f5fecb72565c1ec890ea8  gcc/testsuite/ada/acats-4/tests/a/a74106c.ada
! 4526ae74da58946736d1077ca17b0f15  gcc/testsuite/ada/acats-4/tests/a/a74205e.ada
! a4600113362b659154e0921e8ccc440b  gcc/testsuite/ada/acats-4/tests/a/a74205f.ada
! 762682eaddf9e0d72ef370ddf52c091c  gcc/testsuite/ada/acats-4/tests/a/a83009a.ada
! 89be8e66cfa8cf7d9ea962fc92c5bbe6  gcc/testsuite/ada/acats-4/tests/a/a83009b.ada
! 1a86aa84a5b4a8f2d91898a2a5878109  gcc/testsuite/ada/acats-4/tests/a/a83a02a.ada
! b50d55495ed25cd5f5f0cc5ce62c33c6  gcc/testsuite/ada/acats-4/tests/a/a83a02b.ada
! 92d9af0f50f62b8ca3df28d8e4228ec5  gcc/testsuite/ada/acats-4/tests/a/a83a06a.ada
! 5c0b43d5d9e1251dce20fd8ac69811a8  gcc/testsuite/ada/acats-4/tests/a/a83a08a.ada
! d847c2fa25d9becc828716d2f6b3924e  gcc/testsuite/ada/acats-4/tests/a/a83c01c.ada
! 48efd44cb0cc48a4666ca9078d516a19  gcc/testsuite/ada/acats-4/tests/a/a83c01h.ada
! 9a14ce84b1e63358e8ea5b22b8b58366  gcc/testsuite/ada/acats-4/tests/a/a83c01i.ada
! d4b236b43806323a12df387d43065ecd  gcc/testsuite/ada/acats-4/tests/a/a85007d.ada
! 22b51a96b02c7a88f7ef1383e4b6e3ba  gcc/testsuite/ada/acats-4/tests/a/a85013b.ada
! 401bca9a32ad0d8881ea660bba3ca711  gcc/testsuite/ada/acats-4/tests/a/a87b59a.ada
! 74d0779474d9d789d09508ba653efc61  gcc/testsuite/ada/acats-4/tests/a/a95001c.ada
! 4de434af68116383b58aae2d7ff0186e  gcc/testsuite/ada/acats-4/tests/a/a95074d.ada
! 6dcac89d281ffc1c47dc51dfd7429d9e  gcc/testsuite/ada/acats-4/tests/a/a97106a.ada
! 672a004e783873caffaddfe2e9ed7184  gcc/testsuite/ada/acats-4/tests/a/a99006a.ada
! d338cf80520cfcd59896b08557f7334a  gcc/testsuite/ada/acats-4/tests/a/aa2010a.ada
! c8652c11c39145beb7535ff59feee79b  gcc/testsuite/ada/acats-4/tests/a/aa2012a.ada
! 64d7f9e70085b7412df08b06b70924f1  gcc/testsuite/ada/acats-4/tests/a/ac1015b.ada
! f8019419f138b9b0b4e860f560539c52  gcc/testsuite/ada/acats-4/tests/a/ac3106a.ada
! 599863dbc7677bd83fe020c38e11b4b8  gcc/testsuite/ada/acats-4/tests/a/ac3206a.ada
! 527cf1506ce6e0451f82e833aba4b6b3  gcc/testsuite/ada/acats-4/tests/a/ac3207a.ada
! 7c28607179138101a5d7cf088f333028  gcc/testsuite/ada/acats-4/tests/a/ad7001b.ada
! 810035c64fe589563087a2d2f380f1e4  gcc/testsuite/ada/acats-4/tests/a/ad7001c0.ada
! 8d92b2b79dbfd08d90c9a238b1e35a05  gcc/testsuite/ada/acats-4/tests/a/ad7001c1.ada
! 1c1c6e5fb42029a3ff9b1f3b9055c191  gcc/testsuite/ada/acats-4/tests/a/ad7001d0.ada
! 21257b0cc94669e31a8891cb9ed30e14  gcc/testsuite/ada/acats-4/tests/a/ad7001d1.ada
! eaa4c7b6b00bcd4bfa2d9883aff64ee8  gcc/testsuite/ada/acats-4/tests/a/ad7006a.ada
! b93c425e39dd1e4003cb33131862e719  gcc/testsuite/ada/acats-4/tests/a/ad7101a.ada
! 07e115c2bd0ac4bc085809d9ad65327f  gcc/testsuite/ada/acats-4/tests/a/ad7101c.ada
! 24888691f9cd0131679078391bf99fb1  gcc/testsuite/ada/acats-4/tests/a/ad7102a.ada
! 27abfa60261b508014d366ae82e296fe  gcc/testsuite/ada/acats-4/tests/a/ad7103a.ada
! aec3e74553448f599ae9a51ec65c42ce  gcc/testsuite/ada/acats-4/tests/a/ad7103c.ada
! d18cab7f102ffc27545ccb4522f82ded  gcc/testsuite/ada/acats-4/tests/a/ad7104a.ada
! 1b797aacfde0d671d89a45db2a9d5be2  gcc/testsuite/ada/acats-4/tests/a/ad7201a.ada
! 8c49706fbc8916aacd037e7649ed8213  gcc/testsuite/ada/acats-4/tests/a/ad7203b.ada
! 129af6b1b47884872132fcfc3787f362  gcc/testsuite/ada/acats-4/tests/a/ad7205b.ada
! 696b85c4c78cdc9b5448612a22b9ffa3  gcc/testsuite/ada/acats-4/tests/a/ad8011a.tst
! bfa3fa83b466b71da4126d005e2c701b  gcc/testsuite/ada/acats-4/tests/a/ada101a.ada
! 178bb6ff2316e9cfb5bd4395e74874ae  gcc/testsuite/ada/acats-4/tests/a/ae2113a.ada
! 1dd247cf1f02e4384b1f1a58ab2244c0  gcc/testsuite/ada/acats-4/tests/a/ae2113b.ada
! 5ff7c493a66eb8be0a3e7f89bd4d2512  gcc/testsuite/ada/acats-4/tests/a/ae3002g.ada
! 2cc8c13fd1203af7f246cee23d3037c3  gcc/testsuite/ada/acats-4/tests/a/ae3101a.ada
! 3798d627b7336c5fa8805e970e10ec7e  gcc/testsuite/ada/acats-4/tests/a/ae3702a.ada
! 7a44891c6ee0ec272ded72e61d392bc8  gcc/testsuite/ada/acats-4/tests/a/ae3709a.ada
! 8a42b2199ecbb25390c8c306c3759312  gcc/testsuite/ada/acats-4/tests/c2/c23001a.ada
! 8d4b3f4069aeb0e32db3f46e5cb1487b  gcc/testsuite/ada/acats-4/tests/c2/c23003a.tst
! 95e1beb36e033514e6e4be866042a42a  gcc/testsuite/ada/acats-4/tests/c2/c23003b.tst
! a765ec985184f6802389b89d0971eede  gcc/testsuite/ada/acats-4/tests/c2/c23003g.tst
! 53bdd26032ff323b57f3c309b520767e  gcc/testsuite/ada/acats-4/tests/c2/c23003i.tst
! d8470ff80210b6aeab8ecf5828f8e73c  gcc/testsuite/ada/acats-4/tests/c2/c23006a.ada
! c175938807f9ed5ec36eed8c2fc47bf2  gcc/testsuite/ada/acats-4/tests/c2/c23006b.ada
! 1891f1d94ad6f27dc8691abae763b735  gcc/testsuite/ada/acats-4/tests/c2/c23006c.ada
! 4d2aaab0f8577c4441dfb223b74e9270  gcc/testsuite/ada/acats-4/tests/c2/c23006d.ada
! d38fc16a6b2a221a8089094d8e595fd0  gcc/testsuite/ada/acats-4/tests/c2/c23006e.ada
! e4cb34f327ded980acbb2890f276b1b6  gcc/testsuite/ada/acats-4/tests/c2/c23006f.ada
! 1afe1ff732d7c93eb72aeb763fc3a3e4  gcc/testsuite/ada/acats-4/tests/c2/c23006g.ada
! d7a2fe8807a7e954f894e43619906c61  gcc/testsuite/ada/acats-4/tests/c2/c24002d.ada
! 90b7096d0092e8bee54a5e0931480cc3  gcc/testsuite/ada/acats-4/tests/c2/c24003a.ada
! 8d4b3197420dea97b47fa445d6b7f13e  gcc/testsuite/ada/acats-4/tests/c2/c24003b.ada
! c0bc49ad0d9faebe7c1bddd17682575b  gcc/testsuite/ada/acats-4/tests/c2/c24003c.ada
! 474d9480579f044d63ea2312eee797a0  gcc/testsuite/ada/acats-4/tests/c2/c24106a.ada
! 21abd0c844a441282df97eca59d187ac  gcc/testsuite/ada/acats-4/tests/c2/c24202d.ada
! f8734f0cb78893a591c1455798f48f34  gcc/testsuite/ada/acats-4/tests/c2/c24203a.ada
! 303fe85abf30e67b9c26c05c37527377  gcc/testsuite/ada/acats-4/tests/c2/c24203b.ada
! 4fc421f9d26dd38caa8e66e5f9a8118d  gcc/testsuite/ada/acats-4/tests/c2/c24207a.ada
! 00805111547e7b0f767a65dbb0216178  gcc/testsuite/ada/acats-4/tests/c2/c24211a.ada
! d5324b037e4f821711b81926469cd3e5  gcc/testsuite/ada/acats-4/tests/c2/c250001.au
! 373ab51281434258bd43bb850031dd33  gcc/testsuite/ada/acats-4/tests/c2/c250002.au
! fcffacb0c5a7d6bc171b2b62228ef27c  gcc/testsuite/ada/acats-4/tests/c2/c25001a.ada
! f8101111006b8dfccb57bc9286761546  gcc/testsuite/ada/acats-4/tests/c2/c25001b.ada
! 4d59f28ccd2a2792f59d358acfb3b645  gcc/testsuite/ada/acats-4/tests/c2/c26006a.ada
! 2a3847aff34c962069ea9fc46184b49c  gcc/testsuite/ada/acats-4/tests/c2/c26008a.ada
! 3b3d12a94cdb249ade26bb6fe45121be  gcc/testsuite/ada/acats-4/tests/c2/c2a001a.ada
! 3fd11c60327272b0e88714377e07694a  gcc/testsuite/ada/acats-4/tests/c2/c2a001b.ada
! fad7c83b08db79e3d8d41a3abc495609  gcc/testsuite/ada/acats-4/tests/c2/c2a001c.ada
! 9e58903d92e80dece18b3f5f07c10714  gcc/testsuite/ada/acats-4/tests/c2/c2a002a.ada
! 80f047f9baf4edce16ae00b242937e09  gcc/testsuite/ada/acats-4/tests/c2/c2a008a.ada
! 5846b01316c8e35b2ae9271e2ceeb33b  gcc/testsuite/ada/acats-4/tests/c2/c2a021b.ada
! 6c6e6ac7e7d8151372bf25d5bfcc4638  gcc/testsuite/ada/acats-4/tests/c3/c32001a.ada
! f44d3e1d8c4deff3e60e49eb14755c7f  gcc/testsuite/ada/acats-4/tests/c3/c32001b.ada
! 90383af3c35e304193502497e9d9ada0  gcc/testsuite/ada/acats-4/tests/c3/c32001c.ada
! 6f38031cf1bc7fd3a2530a0a49fc3927  gcc/testsuite/ada/acats-4/tests/c3/c32001d.ada
! 4cff8a5cde793b9eb72e56ef8588c690  gcc/testsuite/ada/acats-4/tests/c3/c32001e.ada
! fe386611f5a09953fdbdb423b0673b0b  gcc/testsuite/ada/acats-4/tests/c3/c32107a.ada
! 6dcc55a41a077f43caf697ae83ae4678  gcc/testsuite/ada/acats-4/tests/c3/c32107c.ada
! 6bc3a589ff71140e94718588fa9f9c34  gcc/testsuite/ada/acats-4/tests/c3/c32108a.ada
! 0b55a6ac879d361c4eaa8a25a475c92e  gcc/testsuite/ada/acats-4/tests/c3/c32108b.ada
! 4520bac74d324253fcf2b48b5c6eea2b  gcc/testsuite/ada/acats-4/tests/c3/c32111a.ada
! 52ac5c461c7746717a0d789fb2a57377  gcc/testsuite/ada/acats-4/tests/c3/c32111b.ada
! dabad6f6cae80313a5a888aaa710756d  gcc/testsuite/ada/acats-4/tests/c3/c32112b.ada
! eebc548a818a1f56ce990f52129e4296  gcc/testsuite/ada/acats-4/tests/c3/c32113a.ada
! 016d6073dcc33d7b8106082eb7755faa  gcc/testsuite/ada/acats-4/tests/c3/c32115a.ada
! a613215b48d8c873069bb2d690d5f556  gcc/testsuite/ada/acats-4/tests/c3/c32115b.ada
! b868f27c234029689c9555ed8a885bd2  gcc/testsuite/ada/acats-4/tests/c3/c324001.a
! fb36723bb91c3a9d38883120ccaa6aae  gcc/testsuite/ada/acats-4/tests/c3/c324002.a
! dc91f5dd73ecfdc1c8c33fa6a97d26eb  gcc/testsuite/ada/acats-4/tests/c3/c324003.a
! c7c1664de55da12625e9233ab7129d51  gcc/testsuite/ada/acats-4/tests/c3/c324004.a
! 76da24ac29375824aa0f98ae3ba41da1  gcc/testsuite/ada/acats-4/tests/c3/c324005.a
! 12b96e76c14a6d44a78de5555b0004d3  gcc/testsuite/ada/acats-4/tests/c3/c324006.a
! f21dc71d940d5c06af5d22f69eab60f9  gcc/testsuite/ada/acats-4/tests/c3/c330001.a
! 74812d0708e93af61e096b45e2fc14ec  gcc/testsuite/ada/acats-4/tests/c3/c330002.a
! 8e5fef6b3dfabbb753bbf97caf8dddae  gcc/testsuite/ada/acats-4/tests/c3/c332001.a
! d7ae35646e985b47bde736b4aeadaec1  gcc/testsuite/ada/acats-4/tests/c3/c340001.a
! 029cfe27a33cb66b049fe0d0fb65381b  gcc/testsuite/ada/acats-4/tests/c3/c34001a.ada
! 7f88e5135c6832cdc88dff48cc8dafee  gcc/testsuite/ada/acats-4/tests/c3/c34001c.ada
! 8c1764692d7cb0bc17a952ce68b59db8  gcc/testsuite/ada/acats-4/tests/c3/c34001d.ada
! a08af1aeb3b4af40be4e8250cad56d8d  gcc/testsuite/ada/acats-4/tests/c3/c34001f.ada
! 796e76f308a9d18762b63a8a7c9fa6ec  gcc/testsuite/ada/acats-4/tests/c3/c34002a.ada
! 56ca2500660f86690e43b4eb2c63911d  gcc/testsuite/ada/acats-4/tests/c3/c34002c.ada
! 916814d1426aeb62617f0e647f1425f4  gcc/testsuite/ada/acats-4/tests/c3/c34003a.ada
! 7848bad56990231ec4964a5294f4d02f  gcc/testsuite/ada/acats-4/tests/c3/c34003c.ada
! 3f596cd960a8968d7c7892b7351e85fa  gcc/testsuite/ada/acats-4/tests/c3/c34004a.ada
! f25b6504d96e3e21099abd8a985bfe40  gcc/testsuite/ada/acats-4/tests/c3/c34004c.ada
! 10feabd33f2004943d36ff9acac0bda3  gcc/testsuite/ada/acats-4/tests/c3/c34005a.ada
! 9b730174260769c83e1d1f34a482b64c  gcc/testsuite/ada/acats-4/tests/c3/c34005c.ada
! d8cd66825d35a0c2eee7a2bc22021fde  gcc/testsuite/ada/acats-4/tests/c3/c34005d.ada
! fd5b17683accebcffccf7d52a88ba813  gcc/testsuite/ada/acats-4/tests/c3/c34005f.ada
! 5a2119c2d54f4427832bc1c61d913eac  gcc/testsuite/ada/acats-4/tests/c3/c34005g.ada
! 170b45f6069790926570bd39f97033ea  gcc/testsuite/ada/acats-4/tests/c3/c34005i.ada
! bdf673ae022cc1b217f6ea84218ef460  gcc/testsuite/ada/acats-4/tests/c3/c34005j.ada
! 0c6f4909c9db9787b9ca4d3b296a3ae9  gcc/testsuite/ada/acats-4/tests/c3/c34005l.ada
! 7f1441892699c24f145df474c396124d  gcc/testsuite/ada/acats-4/tests/c3/c34005m.ada
! f851c156716ece972741b1a161b80b5f  gcc/testsuite/ada/acats-4/tests/c3/c34005o.ada
! 44e6ae2ddfccd9120add81bcf05ef268  gcc/testsuite/ada/acats-4/tests/c3/c34005p.ada
! c9bfd44b8febc96560f3ee780cd50a02  gcc/testsuite/ada/acats-4/tests/c3/c34005r.ada
! cd29d3c24de0223ae985376f7363459e  gcc/testsuite/ada/acats-4/tests/c3/c34005s.ada
! 5369d3d26bb15776f47302c2f15c9682  gcc/testsuite/ada/acats-4/tests/c3/c34005u.ada
! b0cfd73e6d9f1d87557f4775248508ea  gcc/testsuite/ada/acats-4/tests/c3/c34005v.ada
! 60d73ec320d9ef0db0dc330bb3e04fe5  gcc/testsuite/ada/acats-4/tests/c3/c34006a.ada
! da0b3e574a91ee0aaaef5268466ab1d1  gcc/testsuite/ada/acats-4/tests/c3/c34006d.ada
! 8d549731513d1eff1ef01cf7c39e1bb6  gcc/testsuite/ada/acats-4/tests/c3/c34006f.ada
! 4ed1c279557b308d6949c373537329cf  gcc/testsuite/ada/acats-4/tests/c3/c34006g.ada
! 90472c17a5088e3d00d57cf3597dc59f  gcc/testsuite/ada/acats-4/tests/c3/c34006j.ada
! 5c3c081fc43ed6dc322f8a13f14b6dba  gcc/testsuite/ada/acats-4/tests/c3/c34006l.ada
! 3111937fe40eda62543e53d0dc0a9b2e  gcc/testsuite/ada/acats-4/tests/c3/c34007a.ada
! a6c16ebbc095684171bb89cb7ac5b52f  gcc/testsuite/ada/acats-4/tests/c3/c34007d.ada
! 3f46f4632a1e2839b528dd4edb849c59  gcc/testsuite/ada/acats-4/tests/c3/c34007f.ada
! 50a6b8b6ab707d4020a210c2f54c5364  gcc/testsuite/ada/acats-4/tests/c3/c34007g.ada
! 1d08fae78b3684032500b751c4f6b956  gcc/testsuite/ada/acats-4/tests/c3/c34007i.ada
! 7dec8ab4f2325dfb24a6f4a0712ca647  gcc/testsuite/ada/acats-4/tests/c3/c34007j.ada
! f2f670c3368d6fdedc0bc830e2f5441f  gcc/testsuite/ada/acats-4/tests/c3/c34007m.ada
! 12e7a75337b952bbe70b50f44fbf73bd  gcc/testsuite/ada/acats-4/tests/c3/c34007p.ada
! 4460899978bde8392dbf79b1457fd4c0  gcc/testsuite/ada/acats-4/tests/c3/c34007r.ada
! 430fadbb7eb89cad332156a43a1cb8a6  gcc/testsuite/ada/acats-4/tests/c3/c34007s.ada
! 142cd26f56dbefa8cc40ce318e93574b  gcc/testsuite/ada/acats-4/tests/c3/c34007u.ada
! 01aa55423bd6286a768cfbc7951408e9  gcc/testsuite/ada/acats-4/tests/c3/c34007v.ada
! 511c5e7943ba2a51ce38527bbf116d2d  gcc/testsuite/ada/acats-4/tests/c3/c34008a.ada
! 9e896dcd16ce62c70c03b6105de6b94c  gcc/testsuite/ada/acats-4/tests/c3/c34009a.ada
! be1b3bebe697fb006bf9a558f3b0f788  gcc/testsuite/ada/acats-4/tests/c3/c34009d.ada
! 5880284be01f48d40969f18306c94edd  gcc/testsuite/ada/acats-4/tests/c3/c34009f.ada
! 679004960f5e177505b2aff13c637ebf  gcc/testsuite/ada/acats-4/tests/c3/c34009g.ada
! f60aa89944e52f4dca47047e08990f29  gcc/testsuite/ada/acats-4/tests/c3/c34009j.ada
! 28351985ca5afb785bccaaf7463d1f32  gcc/testsuite/ada/acats-4/tests/c3/c34009l.ada
! 221f9bd08976154a0a22e9948d8ac7e0  gcc/testsuite/ada/acats-4/tests/c3/c34011b.ada
! f2175e26a65dbd70c186e6acf1001755  gcc/testsuite/ada/acats-4/tests/c3/c34012a.ada
! bdde2c516616684b5fe414550d8400ee  gcc/testsuite/ada/acats-4/tests/c3/c34014a.ada
! 4e8100382b8141c0d056a9fe870b8d06  gcc/testsuite/ada/acats-4/tests/c3/c34014c.ada
! a8fbccc7b3c28981b57a867a1edabf5d  gcc/testsuite/ada/acats-4/tests/c3/c34014e.ada
! 75cb51a9c469066a67228b04e8ba11fc  gcc/testsuite/ada/acats-4/tests/c3/c34014g.ada
! da007fc8719ca70057c035beb9fda7fe  gcc/testsuite/ada/acats-4/tests/c3/c34014h.ada
! dbcb5a07736736af9834d2938b24e483  gcc/testsuite/ada/acats-4/tests/c3/c34014n.ada
! afbaca6a68812eaecf17a8eef2a6346e  gcc/testsuite/ada/acats-4/tests/c3/c34014p.ada
! df14c9b4224ce4cf3fd2d8445cbad0f2  gcc/testsuite/ada/acats-4/tests/c3/c34014r.ada
! 03948696a8a2d08faa02588806cd388d  gcc/testsuite/ada/acats-4/tests/c3/c34014t.ada
! 7258de51f19cfc9506908221af84e01f  gcc/testsuite/ada/acats-4/tests/c3/c34014u.ada
! 360330a2a81712d1ed00c02cbc5e6526  gcc/testsuite/ada/acats-4/tests/c3/c34018a.ada
! a943a89b3032146b53e937f3a73684da  gcc/testsuite/ada/acats-4/tests/c3/c340a01.a
! 5a38659efe283303f9d22ebc955ae0d0  gcc/testsuite/ada/acats-4/tests/c3/c340a02.a
! f694a602dc4b31baf72c096b6e4fb9d5  gcc/testsuite/ada/acats-4/tests/c3/c341a01.a
! 4ad05d07bd295bd76f3edbc6685ae9b8  gcc/testsuite/ada/acats-4/tests/c3/c341a02.a
! 49408ab274823bacfccd32176c5bc061  gcc/testsuite/ada/acats-4/tests/c3/c341a03.a
! ec207723e08de50ca0964ad3318f8235  gcc/testsuite/ada/acats-4/tests/c3/c341a04.a
! e1b4bc5cb76de92ba443a02d7d37ec5a  gcc/testsuite/ada/acats-4/tests/c3/c350001.a
! 55b745d015fed5a09de487d8081c09eb  gcc/testsuite/ada/acats-4/tests/c3/c35003a.ada
! 092ff51133e865dad2cd6192506f9980  gcc/testsuite/ada/acats-4/tests/c3/c35003b.ada
! 55caad169adcfa6b58689ceb3dc1d505  gcc/testsuite/ada/acats-4/tests/c3/c35003d.ada
! ccab055252a791535f832cc2ef66a495  gcc/testsuite/ada/acats-4/tests/c3/c350a01.a
! 6c9762756ef96e8cfb00b095f55e313e  gcc/testsuite/ada/acats-4/tests/c3/c350a02.a
! 546bb731859512ee6a131ebc54f1d750  gcc/testsuite/ada/acats-4/tests/c3/c350b01.a
! 6a067a557e11fd3288c412da9d4acb4d  gcc/testsuite/ada/acats-4/tests/c3/c350b02.a
! b2b10d16689d994b421c7f356c4eebe9  gcc/testsuite/ada/acats-4/tests/c3/c35102a.ada
! ca3400d0b805977010a922a33d4fc78c  gcc/testsuite/ada/acats-4/tests/c3/c352001.a
! 6adbf240f9a88c67e6dc4d9a3ae2f449  gcc/testsuite/ada/acats-4/tests/c3/c354002.a
! 1c6bd8c5607c8d83b1fb16cf20b35965  gcc/testsuite/ada/acats-4/tests/c3/c354003.a
! 748d8130bd21629fdee8f30be95ddf20  gcc/testsuite/ada/acats-4/tests/c3/c354004.a
! 831543d10fff09679865a63cb6261690  gcc/testsuite/ada/acats-4/tests/c3/c35502a.ada
! a7c2fa5fc851b6f2ef3d825116c56789  gcc/testsuite/ada/acats-4/tests/c3/c35502b.ada
! 012ae5aa045c7b944677ea749449b75e  gcc/testsuite/ada/acats-4/tests/c3/c35502c.ada
! 66ad3541bdd12f2457bc931410567df2  gcc/testsuite/ada/acats-4/tests/c3/c35502d.tst
! f850859238832c6689133c4b82b2d23a  gcc/testsuite/ada/acats-4/tests/c3/c35502e.ada
! 1ae0d752d4d7089a159ba37533cac440  gcc/testsuite/ada/acats-4/tests/c3/c35502f.tst
! 86636a48b0f16cee1e000cf7cdff2dd3  gcc/testsuite/ada/acats-4/tests/c3/c35502g.ada
! 051f7f33819b5ea42a6810524402160e  gcc/testsuite/ada/acats-4/tests/c3/c35502h.ada
! 4e03c40da8c9f6a6c779600f4bf06f72  gcc/testsuite/ada/acats-4/tests/c3/c35502i.ada
! 0ce71c0ba8fc8137892f8032070143cf  gcc/testsuite/ada/acats-4/tests/c3/c35502j.ada
! 039caaa9e43f4d6e115a8a1f83eeebf1  gcc/testsuite/ada/acats-4/tests/c3/c35502k.ada
! 211eda1bcd28ea4725982c3228537ce8  gcc/testsuite/ada/acats-4/tests/c3/c35502l.ada
! 04a6b32af2cf206734bf10b9c20a1a53  gcc/testsuite/ada/acats-4/tests/c3/c35502m.ada
! 4d2fd9e74373c5a73cc4f819206b0ae4  gcc/testsuite/ada/acats-4/tests/c3/c35502n.ada
! a2f7774ccd8fe3b58f670146427b1f58  gcc/testsuite/ada/acats-4/tests/c3/c35502o.ada
! 244d3a03a5bfb9a02be2cde7af593c88  gcc/testsuite/ada/acats-4/tests/c3/c35502p.ada
! bbea92be5e14aa812d5b0bf50f43ecd2  gcc/testsuite/ada/acats-4/tests/c3/c35503a.ada
! e45620aeea62423f2a72fa98c32c2629  gcc/testsuite/ada/acats-4/tests/c3/c35503b.ada
! 6ff5a195541e611e8f795764a46c96c7  gcc/testsuite/ada/acats-4/tests/c3/c35503c.ada
! ae4f0df020df3fca42928a76d16433e2  gcc/testsuite/ada/acats-4/tests/c3/c35503d.tst
! 2835676122accf27f7f9912ed7f9b38b  gcc/testsuite/ada/acats-4/tests/c3/c35503e.ada
! 18bbb578fe3d479a11c962d128286c04  gcc/testsuite/ada/acats-4/tests/c3/c35503f.tst
! def2f804ca12f62b8b5f42c18fa649c0  gcc/testsuite/ada/acats-4/tests/c3/c35503g.ada
! 082f524dedff546b67bf566735caa1c1  gcc/testsuite/ada/acats-4/tests/c3/c35503h.ada
! 85174a7f410200513d18d173743c7474  gcc/testsuite/ada/acats-4/tests/c3/c35503k.ada
! 57ae4c28160a4dfa61de89bc057c9b02  gcc/testsuite/ada/acats-4/tests/c3/c35503l.ada
! 5fc96deb857ba3b7ec7ee6040f2b7d93  gcc/testsuite/ada/acats-4/tests/c3/c35503o.ada
! 02c17920bbabcf5f472c332ee0439df3  gcc/testsuite/ada/acats-4/tests/c3/c35503p.ada
! 7c0f95cda266f19784cd481570ffcf1a  gcc/testsuite/ada/acats-4/tests/c3/c35504a.ada
! 58ca27427f3b7371702549078677cd48  gcc/testsuite/ada/acats-4/tests/c3/c35504b.ada
! c64ed7ab5ced440f95e39eb0465b431f  gcc/testsuite/ada/acats-4/tests/c3/c35505c.ada
! 8a20049a7aa4dbf5e73f4a4a856df916  gcc/testsuite/ada/acats-4/tests/c3/c35505e.ada
! fb8432e5868c1977e525882401096430  gcc/testsuite/ada/acats-4/tests/c3/c35505f.ada
! a3d1f58b38d0f57e89521134057aa0d0  gcc/testsuite/ada/acats-4/tests/c3/c35507a.ada
! fe46e6e48a084e26027a960dcecf0e7f  gcc/testsuite/ada/acats-4/tests/c3/c35507b.ada
! 6276ac14d36049ca6fc1d65937918d6d  gcc/testsuite/ada/acats-4/tests/c3/c35507c.ada
! 38f75633d1d28c38660ac311815075c6  gcc/testsuite/ada/acats-4/tests/c3/c35507e.ada
! 068b315520036392da2decdadf03f6c9  gcc/testsuite/ada/acats-4/tests/c3/c35507g.ada
! c2e6c5681cde5371d2678d0afe2a7dbc  gcc/testsuite/ada/acats-4/tests/c3/c35507h.ada
! 63dad9c02cf9b0faee9f7a4c8f1e9e2d  gcc/testsuite/ada/acats-4/tests/c3/c35507i.ada
! 1501d4b22ff6ada18bda2bec24e23c79  gcc/testsuite/ada/acats-4/tests/c3/c35507j.ada
! 09885e80b2822b3187740ca5682c20e8  gcc/testsuite/ada/acats-4/tests/c3/c35507k.ada
! 7cef3fe8bb6274e0323e822d047490b2  gcc/testsuite/ada/acats-4/tests/c3/c35507l.ada
! b1e4ee7af4f56f20553663a9e296595e  gcc/testsuite/ada/acats-4/tests/c3/c35507m.ada
! cecbaaea0b8f341a4305a221c28843fc  gcc/testsuite/ada/acats-4/tests/c3/c35507n.ada
! 52e0a241e2ad05fa89ecb293e6e2445a  gcc/testsuite/ada/acats-4/tests/c3/c35507o.ada
! 600e023fcb478381f0a8d0bde64f42ce  gcc/testsuite/ada/acats-4/tests/c3/c35507p.ada
! f33cc8ac90e96b7b226aaec5ae692195  gcc/testsuite/ada/acats-4/tests/c3/c35508a.ada
! 7e48a5fa6e02b3658f287da356b209f9  gcc/testsuite/ada/acats-4/tests/c3/c35508b.ada
! 4b6b6e92f28c0ad3cd4f67af8ad0c06c  gcc/testsuite/ada/acats-4/tests/c3/c35508c.ada
! 8bbddf95307b94ae0ed7e12152746762  gcc/testsuite/ada/acats-4/tests/c3/c35508e.ada
! dbe54ec8ce5e33dd88ae24a43cfde531  gcc/testsuite/ada/acats-4/tests/c3/c35508g.ada
! e637f96ce7f08585f2d85fee50f734ee  gcc/testsuite/ada/acats-4/tests/c3/c35508h.ada
! 362619ef40ffff0fd56dee7a6a6c51ab  gcc/testsuite/ada/acats-4/tests/c3/c35508k.ada
! 62ca0e421d4722ad32f139648ece0a60  gcc/testsuite/ada/acats-4/tests/c3/c35508l.ada
! fab2b9fed9304046c3feed68fb9e7b50  gcc/testsuite/ada/acats-4/tests/c3/c35508o.ada
! a7e4e9b85072c7fc56cd223463426c4d  gcc/testsuite/ada/acats-4/tests/c3/c35508p.ada
! bb15d1d296a4eddc9aada6a363360729  gcc/testsuite/ada/acats-4/tests/c3/c35703a.ada
! 97d3b53eb2177ea6344c1ef49c98377d  gcc/testsuite/ada/acats-4/tests/c3/c35704a.ada
! 5a690257e776d58a4fd2a23a7ba6c0e9  gcc/testsuite/ada/acats-4/tests/c3/c35704b.ada
! 52a2a628059a70786108ace7ccd9d08f  gcc/testsuite/ada/acats-4/tests/c3/c35704c.ada
! 14756c69c53e152b3ede55a2754a4d33  gcc/testsuite/ada/acats-4/tests/c3/c35704d.ada
! 22b7d640a1b7ab1933a5654507ff5814  gcc/testsuite/ada/acats-4/tests/c3/c35801d.ada
! 23943917f960018ecdfb861e2c69b545  gcc/testsuite/ada/acats-4/tests/c3/c35902d.ada
! 1e5392accfe4bd85f17ca7c456747be3  gcc/testsuite/ada/acats-4/tests/c3/c35904a.ada
! 4c8ee2a79f1878dcbca7246e9e436865  gcc/testsuite/ada/acats-4/tests/c3/c35904b.ada
! 30b8cbfb52816a7bbebd1319a2a18fb7  gcc/testsuite/ada/acats-4/tests/c3/c35a001.a
! 73fbf4f7e465d5d7fdbee3c99d7cf9ec  gcc/testsuite/ada/acats-4/tests/c3/c35a02a.ada
! 9f8c6fe2edc1ad0a78efbb5038b9ef99  gcc/testsuite/ada/acats-4/tests/c3/c35a05a.ada
! 57fc2536f06ceaf5a1604ee5bb5605fd  gcc/testsuite/ada/acats-4/tests/c3/c35a05d.ada
! ccf547732379c7144c27839f695e8a78  gcc/testsuite/ada/acats-4/tests/c3/c35a05n.ada
! ef904f577e7d9c35099e7d144f51bcce  gcc/testsuite/ada/acats-4/tests/c3/c35a05q.ada
! 3682cd83d6b388849e97129de990f52d  gcc/testsuite/ada/acats-4/tests/c3/c35a07a.ada
! 03e887c344e6bdbdb22118ff77b769fd  gcc/testsuite/ada/acats-4/tests/c3/c35a07d.ada
! ccdad741543d79671fc5f73037ff418d  gcc/testsuite/ada/acats-4/tests/c3/c35a08b.ada
! 651df98436a6167a850f437a29dc7a94  gcc/testsuite/ada/acats-4/tests/c3/c360002.a
! 641f416f8da6932fac352243e8924468  gcc/testsuite/ada/acats-4/tests/c3/c360a01.a
! b231d0b5606e37005d03ba935b4006d2  gcc/testsuite/ada/acats-4/tests/c3/c360a02.a
! 573c52ae71cbedbdf36c3d238ecab8ec  gcc/testsuite/ada/acats-4/tests/c3/c360b01.a
! 6b55489de7bf7431574bc98ad060c22e  gcc/testsuite/ada/acats-4/tests/c3/c360b02.a
! a4c274a3e03fe30e6bc786063bfe78e9  gcc/testsuite/ada/acats-4/tests/c3/c36104a.ada
! b016b5195b1a9d3c07192416c89e1bee  gcc/testsuite/ada/acats-4/tests/c3/c36104b.ada
! 43912684d172c672071ee16d854bcff0  gcc/testsuite/ada/acats-4/tests/c3/c36172a.ada
! 2dc69a4f44addfae37b13335df258285  gcc/testsuite/ada/acats-4/tests/c3/c36172b.ada
! 4d07671447e230f3eddc684c6a3b557a  gcc/testsuite/ada/acats-4/tests/c3/c36172c.ada
! 38a8a16720ac5a8741105f6c5f506f2d  gcc/testsuite/ada/acats-4/tests/c3/c36174a.ada
! 87012e291c8acd51799d9ca8b8fccc32  gcc/testsuite/ada/acats-4/tests/c3/c36180a.ada
! f887210d32ff420cd8ec888ca5c13b66  gcc/testsuite/ada/acats-4/tests/c3/c36202c.ada
! c48c400b884ae534788fbff1510b95ba  gcc/testsuite/ada/acats-4/tests/c3/c36203a.ada
! 93d36d6ba5a23a2f985cc842911a6b2f  gcc/testsuite/ada/acats-4/tests/c3/c36204a.ada
! 5ae3804a2577f9be85df4c11dd1ba3ab  gcc/testsuite/ada/acats-4/tests/c3/c36204b.ada
! 95f946b45603237266057103729c0a9c  gcc/testsuite/ada/acats-4/tests/c3/c36204c.ada
! 1a555d9bc9de255c02e401d7956a5f67  gcc/testsuite/ada/acats-4/tests/c3/c36204d.ada
! c5d2782fd60778b2578f9cf486e811db  gcc/testsuite/ada/acats-4/tests/c3/c36205a.ada
! 4842fc730e500b00c7c35f4691be2855  gcc/testsuite/ada/acats-4/tests/c3/c36205b.ada
! 725f9fbf3157baa9a668acc5e689a06b  gcc/testsuite/ada/acats-4/tests/c3/c36205c.ada
! a9d6124e64589b143b6b54d575df431b  gcc/testsuite/ada/acats-4/tests/c3/c36205d.ada
! c016e1338001bb0d007af7bf4e20d911  gcc/testsuite/ada/acats-4/tests/c3/c36205e.ada
! 299e459d577a85781464563cd621f1b4  gcc/testsuite/ada/acats-4/tests/c3/c36205f.ada
! 7f182ba91c9a0f80d0e5e5b7e919ac56  gcc/testsuite/ada/acats-4/tests/c3/c36205g.ada
! 7559d4ebfc8d9c23879d2cc42d3ac0f4  gcc/testsuite/ada/acats-4/tests/c3/c36205h.ada
! d11eed873d3f614674f193f130b127bb  gcc/testsuite/ada/acats-4/tests/c3/c36205i.ada
! 65b17684e8953d820a69eb11dc4d63e4  gcc/testsuite/ada/acats-4/tests/c3/c36205j.ada
! 21f3a9a788ac6136e2b453f0fc99959f  gcc/testsuite/ada/acats-4/tests/c3/c36205k.ada
! 9884f944a4c4faaee8aaf09a92235c3a  gcc/testsuite/ada/acats-4/tests/c3/c36205l.ada
! 1552dfb23215604db6043c7d12dfc7a6  gcc/testsuite/ada/acats-4/tests/c3/c36301a.ada
! eb37821c1c0e190f8c8cd0e7d282bc9e  gcc/testsuite/ada/acats-4/tests/c3/c36301b.ada
! 236dab07c2bafa07e92d082fc822c8b4  gcc/testsuite/ada/acats-4/tests/c3/c36302a.ada
! a1b4d4c17da94ac478b85b56fd32bf91  gcc/testsuite/ada/acats-4/tests/c3/c36304a.ada
! 58595c82c4f76f6be31333ec0267a9c8  gcc/testsuite/ada/acats-4/tests/c3/c36305a.ada
! 871a3ce65e5d5a824131380a060f18e0  gcc/testsuite/ada/acats-4/tests/c3/c37002a.ada
! 8415fb7acaf9ab73e2a230b45778e7c8  gcc/testsuite/ada/acats-4/tests/c3/c37003a.ada
! b93e53c5cd23520b5b0b88e8c4aee165  gcc/testsuite/ada/acats-4/tests/c3/c37003b.ada
! 0396184f11f01fdd09e40a2432a7850c  gcc/testsuite/ada/acats-4/tests/c3/c37005a.ada
! 17dc351de12194e77f5fe4b5ffbc733e  gcc/testsuite/ada/acats-4/tests/c3/c37006a.ada
! 96813863f2ee2182c3f68f999a7ffed2  gcc/testsuite/ada/acats-4/tests/c3/c37008a.ada
! 9f784c997bf1bb09fe9bf639408dd25c  gcc/testsuite/ada/acats-4/tests/c3/c37008b.ada
! 5d7d0f22be016c0f9b4bcb1da25ed1a2  gcc/testsuite/ada/acats-4/tests/c3/c37009a.ada
! ffc6187aa3ecc28b0631a384e1f95a7e  gcc/testsuite/ada/acats-4/tests/c3/c37010a.ada
! 029c8fb134594e913fe650a5763a4515  gcc/testsuite/ada/acats-4/tests/c3/c37010b.ada
! 09e452317c2c5a3df881f8bfc5bad1ca  gcc/testsuite/ada/acats-4/tests/c3/c371001.a
! 194d5579b14c8d78edccb4725e786bbb  gcc/testsuite/ada/acats-4/tests/c3/c371002.a
! 6508ac6c82ccaf89245ddeb239cf8c65  gcc/testsuite/ada/acats-4/tests/c3/c371003.a
! efcbd19428af8ce2430d60f7389f98f7  gcc/testsuite/ada/acats-4/tests/c3/c37102b.ada
! b56d339ed47321b90862af1e6ff54f3c  gcc/testsuite/ada/acats-4/tests/c3/c37103a.ada
! d2b9a9804b8282550c3233d4c850e203  gcc/testsuite/ada/acats-4/tests/c3/c37105a.ada
! dff6fe14498b4430a005271952b8508b  gcc/testsuite/ada/acats-4/tests/c3/c37107a.ada
! cab8fff51d9e7fa6be5dc3722f0805a7  gcc/testsuite/ada/acats-4/tests/c3/c37108b.ada
! ac1c74612e7098a8b3c19c4233f91b36  gcc/testsuite/ada/acats-4/tests/c3/c37206a.ada
! da4a6484624a6563a3acad74e59e553f  gcc/testsuite/ada/acats-4/tests/c3/c37207a.ada
! 793d448b9373aca3bdfbeb16c4cd5664  gcc/testsuite/ada/acats-4/tests/c3/c37208a.ada
! 19e934b5c86da61793fb4bde9faf4f4a  gcc/testsuite/ada/acats-4/tests/c3/c37208b.ada
! cfc2d39b74fd2d6964787190ac03afde  gcc/testsuite/ada/acats-4/tests/c3/c37209a.ada
! a9e5da6e96624ea9e8d99c31a879bea0  gcc/testsuite/ada/acats-4/tests/c3/c37209b.ada
! 5095a03dbf61f1c7486ce4249ebd4168  gcc/testsuite/ada/acats-4/tests/c3/c37210a.ada
! 13fd1f169bebade45dcc8f783c4dfba5  gcc/testsuite/ada/acats-4/tests/c3/c37211a.ada
! 90539e4b0a8ab5a720d93e61332d4bad  gcc/testsuite/ada/acats-4/tests/c3/c37211b.ada
! b5fb0f0cfa820aa9c8f8a02529b59ae1  gcc/testsuite/ada/acats-4/tests/c3/c37211c.ada
! 34158bf765252e909102a5071bd1ab0d  gcc/testsuite/ada/acats-4/tests/c3/c37211d.ada
! 9723d82d289b6c708a4e38619a050c44  gcc/testsuite/ada/acats-4/tests/c3/c37211e.ada
! 02567718a426a27f1633a5ba46fb39ea  gcc/testsuite/ada/acats-4/tests/c3/c37213b.ada
! 0db6468aa3789fa4eb8509864bbbba6c  gcc/testsuite/ada/acats-4/tests/c3/c37213d.ada
! c3ea989d669b26ad147ec1d36d59f8b1  gcc/testsuite/ada/acats-4/tests/c3/c37213f.ada
! c7d6b08bb4739fe27a9bf7c37153611b  gcc/testsuite/ada/acats-4/tests/c3/c37213h.ada
! e1a81fd713875796f8f0f1d1d856df2e  gcc/testsuite/ada/acats-4/tests/c3/c37213j.ada
! 8824529732962a1fb9cbd428d01a57f5  gcc/testsuite/ada/acats-4/tests/c3/c37213k.ada
! 7c2df003cd7fdc0bffaa00b7e5a76295  gcc/testsuite/ada/acats-4/tests/c3/c37213l.ada
! d1bb01398cfb6ee5cd12ec89604227fb  gcc/testsuite/ada/acats-4/tests/c3/c37215b.ada
! f34c6fc15658b1b04a69e1ccf32c7394  gcc/testsuite/ada/acats-4/tests/c3/c37215d.ada
! ca62cbc7b583fe934a8091c539e55305  gcc/testsuite/ada/acats-4/tests/c3/c37215f.ada
! 8be60a6919ae5d9ba615eb624746100d  gcc/testsuite/ada/acats-4/tests/c3/c37215h.ada
! fdd60b015f299bfc5d8e0f9f33334f8e  gcc/testsuite/ada/acats-4/tests/c3/c37217a.ada
! bb84ce5410a8c6c7127939120ba80cde  gcc/testsuite/ada/acats-4/tests/c3/c37217b.ada
! 2687c3f166eabbae25fc5e04880d06a3  gcc/testsuite/ada/acats-4/tests/c3/c37217c.ada
! db9ca52d8b1a818e4d66aea96b3eb964  gcc/testsuite/ada/acats-4/tests/c3/c37304a.ada
! 59413b6b57aae9caadc41c111c74faed  gcc/testsuite/ada/acats-4/tests/c3/c37305a.ada
! 2ff906f6262ecd1cfdaffbcda07f1a76  gcc/testsuite/ada/acats-4/tests/c3/c37306a.ada
! a6f2da7b55ad908aebb841bc6ed9b69e  gcc/testsuite/ada/acats-4/tests/c3/c37309a.ada
! 54ec04c8663d10e960eb022fed3a9306  gcc/testsuite/ada/acats-4/tests/c3/c37310a.ada
! ab733e44603296f9e49a292ad601cf74  gcc/testsuite/ada/acats-4/tests/c3/c37312a.ada
! 75ac97c1a116dcc5edcc7f2b44f304f4  gcc/testsuite/ada/acats-4/tests/c3/c37402a.ada
! 2d432b792b7c7b0669844add896bb802  gcc/testsuite/ada/acats-4/tests/c3/c37403a.ada
! 38ed181e9e32218f4a81d412e83c503d  gcc/testsuite/ada/acats-4/tests/c3/c37404a.ada
! c1cce1fda9f9c6085ecce4e278182d6c  gcc/testsuite/ada/acats-4/tests/c3/c37404b.ada
! c9abb9613df5a6b0ab399a10551d5070  gcc/testsuite/ada/acats-4/tests/c3/c37405a.ada
! 1793c94eca80b29526f7ec7a9da864e8  gcc/testsuite/ada/acats-4/tests/c3/c37411a.ada
! 3d8871a14f5b0b92ab5699036c27161b  gcc/testsuite/ada/acats-4/tests/c3/c380001.a
! fe1bbd01b7e70108e4de5854ee4c098d  gcc/testsuite/ada/acats-4/tests/c3/c380002.a
! fb52cd7cb9118b93afa2bc8a309ecdc9  gcc/testsuite/ada/acats-4/tests/c3/c380003.a
! 7e465d24377190b6eaafcc3fd3125ff9  gcc/testsuite/ada/acats-4/tests/c3/c380004.a
! c76f2865cda03e9d5c2164052031d578  gcc/testsuite/ada/acats-4/tests/c3/c38002a.ada
! 5c8aaef6a8da893998485cc8bfb71f48  gcc/testsuite/ada/acats-4/tests/c3/c38002b.ada
! f8397d669785d9d911c494e0a0b9986a  gcc/testsuite/ada/acats-4/tests/c3/c38005a.ada
! 36a372c2d5368726208b1f76f95f3c1d  gcc/testsuite/ada/acats-4/tests/c3/c38005b.ada
! 175ff60b11884803275c5a95d4db9b0f  gcc/testsuite/ada/acats-4/tests/c3/c38005c.ada
! cc457354e31fc1e63179de33cbefbad9  gcc/testsuite/ada/acats-4/tests/c3/c38102a.ada
! 2f60ee39cadeb5e04f93c0fb98c2ff78  gcc/testsuite/ada/acats-4/tests/c3/c38102b.ada
! 773c45b11f80bfa2c11a621982312a41  gcc/testsuite/ada/acats-4/tests/c3/c38102c.ada
! 2eec2f09807572ff6be386c41f2aa890  gcc/testsuite/ada/acats-4/tests/c3/c38102d.ada
! ff2ae7294328aba3ca946b298ff89249  gcc/testsuite/ada/acats-4/tests/c3/c38102e.ada
! 19d2c8a98b84fc28fb173b8ede249f5f  gcc/testsuite/ada/acats-4/tests/c3/c38104a.ada
! ccdff83c46a0742a6f6c98f395885cf0  gcc/testsuite/ada/acats-4/tests/c3/c38107a.ada
! 5b807a368e5b577c901a0143b328edd6  gcc/testsuite/ada/acats-4/tests/c3/c38107b.ada
! 7f519d74032c869b16bf7e4cc3f1757c  gcc/testsuite/ada/acats-4/tests/c3/c38108a.ada
! 1cdb4b2554cc632c2786a14302f39123  gcc/testsuite/ada/acats-4/tests/c3/c38108b.ada
! 0c83db01ff09f439f6a7fc807e878547  gcc/testsuite/ada/acats-4/tests/c3/c38108c0.ada
! 0b0a2c9346188afcf5a240958d58cb60  gcc/testsuite/ada/acats-4/tests/c3/c38108c1.ada
! 1cea347b513b856254a8e9fed08d945a  gcc/testsuite/ada/acats-4/tests/c3/c38108c2.ada
! fb749693f49b0edcfffc4444290ac564  gcc/testsuite/ada/acats-4/tests/c3/c38108d0.ada
! aa2833688968ca7a3e36612070b575f4  gcc/testsuite/ada/acats-4/tests/c3/c38108d1.ada
! 61680b9ec1c444c4faffd8c59cce698a  gcc/testsuite/ada/acats-4/tests/c3/c3900010.a
! 987d00ae68ea07578bf45fc567352a66  gcc/testsuite/ada/acats-4/tests/c3/c3900011.am
! 370d5eba0eee3ce909caf87c342f846d  gcc/testsuite/ada/acats-4/tests/c3/c390002.a
! 6dd703dff40d77030a2c6329094e7802  gcc/testsuite/ada/acats-4/tests/c3/c390003.a
! 491d840ce3aeb642239cc28533a9ba34  gcc/testsuite/ada/acats-4/tests/c3/c390004.a
! b04ffb8d071dcf6547533038ef227651  gcc/testsuite/ada/acats-4/tests/c3/c3900050.a
! dff18ad9fb367bc37acd04d6e08e55bf  gcc/testsuite/ada/acats-4/tests/c3/c3900051.a
! 2b39948b2af313cbed0046a2bcdcbc9d  gcc/testsuite/ada/acats-4/tests/c3/c3900052.a
! b4e44c9c1971345223585500a55db164  gcc/testsuite/ada/acats-4/tests/c3/c3900053.am
! 471e818df49cf1a32357c5b759d21dc9  gcc/testsuite/ada/acats-4/tests/c3/c3900060.a
! bd65238f7cda09d91e177736cdbcd7ec  gcc/testsuite/ada/acats-4/tests/c3/c3900061.a
! d3e9ddf4af2eb46f1b086dbc43c75d04  gcc/testsuite/ada/acats-4/tests/c3/c3900062.a
! bced3ae0c872e2f15b26193b1c9c4c35  gcc/testsuite/ada/acats-4/tests/c3/c3900063.am
! cd1ae54278fd1b61d5ecd166ecf0671b  gcc/testsuite/ada/acats-4/tests/c3/c390007.a
! a7cf99b62949613099d6c982d9043098  gcc/testsuite/ada/acats-4/tests/c3/c390010.a
! 30e5b9a42c18864d89a931830adfd68e  gcc/testsuite/ada/acats-4/tests/c3/c390011.a
! fb81397d707bf07d8e9f486812adb73b  gcc/testsuite/ada/acats-4/tests/c3/c390012.a
! 1bcaf1b15ae617d49c80e68b55943cc6  gcc/testsuite/ada/acats-4/tests/c3/c39006a.ada
! 7e954943167e1f1855ce0abf856c9a9b  gcc/testsuite/ada/acats-4/tests/c3/c39006b.ada
! 14d52be4c2d938b4ae51c17507b6ca25  gcc/testsuite/ada/acats-4/tests/c3/c39006c0.ada
! c770912acdec8d8fa7169157d99a1382  gcc/testsuite/ada/acats-4/tests/c3/c39006c1.ada
! fcf5b4e7ecc49a79fc11640baf53f4f6  gcc/testsuite/ada/acats-4/tests/c3/c39006d.ada
! 86ddd0b2d946750357311d89b5046963  gcc/testsuite/ada/acats-4/tests/c3/c39006e.ada
! ba4887d359d62403c79f3563b0dfa8f4  gcc/testsuite/ada/acats-4/tests/c3/c39006f0.ada
! 205b6ff97343a4403e8cb5bc33883547  gcc/testsuite/ada/acats-4/tests/c3/c39006f1.ada
! 16ddc19c6da0a1642305e4b5fc6058d1  gcc/testsuite/ada/acats-4/tests/c3/c39006f2.ada
! 59cfdb727f33418fa8de537e14629d71  gcc/testsuite/ada/acats-4/tests/c3/c39006f3.ada
! f80f760d35130556602f0b683e480d63  gcc/testsuite/ada/acats-4/tests/c3/c39006g.ada
! cce3352413b69fd05b5ec5195c3a4c00  gcc/testsuite/ada/acats-4/tests/c3/c39007a.ada
! eab8b6c595bc019ed0d33f826e34e97f  gcc/testsuite/ada/acats-4/tests/c3/c39007b.ada
! f9502bdaffb8475b46fab174a19f2de9  gcc/testsuite/ada/acats-4/tests/c3/c39008a.ada
! 44f9dead72582206f122372b79949f92  gcc/testsuite/ada/acats-4/tests/c3/c39008b.ada
! f7c867df153c4137ff42c73e84cf78bb  gcc/testsuite/ada/acats-4/tests/c3/c39008c.ada
! 7dfc2d2eea8f430d414e0e9fb3d66efb  gcc/testsuite/ada/acats-4/tests/c3/c390a010.a
! fe7593d56cc6f8290c29978513afc0e4  gcc/testsuite/ada/acats-4/tests/c3/c390a011.am
! 11b0510a4ce65e5a57a44f990501c66a  gcc/testsuite/ada/acats-4/tests/c3/c390a020.a
! 4282bd0ba35b056f1611e8c863c8745e  gcc/testsuite/ada/acats-4/tests/c3/c390a021.a
! cf96da721f34cf963ac9c04fdedb4a5a  gcc/testsuite/ada/acats-4/tests/c3/c390a022.am
! 9cc816e53154c542095db060de988727  gcc/testsuite/ada/acats-4/tests/c3/c390a030.a
! a2ad2209c88d74fd376c9daf08c00e0c  gcc/testsuite/ada/acats-4/tests/c3/c390a031.am
! 40bd1c7f8a70fb208644304788e8bdc6  gcc/testsuite/ada/acats-4/tests/c3/c391001.a
! 2dc32344161fe05900a7d0a4fb00a90b  gcc/testsuite/ada/acats-4/tests/c3/c391002.a
! 3ba7e427374883e2149341da53946561  gcc/testsuite/ada/acats-4/tests/c3/c391003.a
! 1cea1692179d434f0ff9e71ba3af5c1e  gcc/testsuite/ada/acats-4/tests/c3/c392002.a
! 918e8c097a09a06159f2809df40a1418  gcc/testsuite/ada/acats-4/tests/c3/c392003.a
! 65856b8c6fecfcf755607b20116e49ef  gcc/testsuite/ada/acats-4/tests/c3/c392004.a
! add1a6bb172c420d5b75dd9efb48c6bd  gcc/testsuite/ada/acats-4/tests/c3/c392005.a
! 1e3c83f529cb7a93f087fd5e1d1c8da3  gcc/testsuite/ada/acats-4/tests/c3/c392008.a
! 8db6e39b87567029879790dbb400a21a  gcc/testsuite/ada/acats-4/tests/c3/c392010.a
! 8063c17c7054236de05a0d6a56818802  gcc/testsuite/ada/acats-4/tests/c3/c392011.a
! 66f6cf830b25e4cba2aeaac6801b02e2  gcc/testsuite/ada/acats-4/tests/c3/c392013.a
! 3597acb12cde69e45603917fc97c80c0  gcc/testsuite/ada/acats-4/tests/c3/c392014.a
! 37df1e5c85d31f578424e4da3238380f  gcc/testsuite/ada/acats-4/tests/c3/c392015.a
! 35f1f390e8606d404b61bb05a639d3be  gcc/testsuite/ada/acats-4/tests/c3/c392a01.a
! ddeb268075e3a716a055f61676497b78  gcc/testsuite/ada/acats-4/tests/c3/c392c05.a
! ee8edde3e11e29c877773403259133c0  gcc/testsuite/ada/acats-4/tests/c3/c392c07.a
! cf19325c05dcb02f4dc60d58ef26ea2b  gcc/testsuite/ada/acats-4/tests/c3/c392d01.a
! acfb41d6d4b4fdec20be56da91d7037d  gcc/testsuite/ada/acats-4/tests/c3/c392d02.a
! 1db19d15d9fdd4071bc438e73f6c5f60  gcc/testsuite/ada/acats-4/tests/c3/c392d03.a
! 9913afe2e224eb447dd2ba6e7b6cd62d  gcc/testsuite/ada/acats-4/tests/c3/c393001.a
! cb66f262f22e933b78a4b4ff7f314ebb  gcc/testsuite/ada/acats-4/tests/c3/c393007.a
! fa7a91fbda6d3ec270401392bfa2a76e  gcc/testsuite/ada/acats-4/tests/c3/c393008.a
! 725749e586aef7b3172e0a9f654508c9  gcc/testsuite/ada/acats-4/tests/c3/c393009.a
! 21bc1c6b2b56e0fe4e98a124b3a43036  gcc/testsuite/ada/acats-4/tests/c3/c393010.a
! cd6d2722ead0dbebda558b3eed5c7ca4  gcc/testsuite/ada/acats-4/tests/c3/c393011.a
! 7df68c4f3488082bba3f1654a9ba7910  gcc/testsuite/ada/acats-4/tests/c3/c393012.a
! 7a6224b076104b0746f9373372e9765f  gcc/testsuite/ada/acats-4/tests/c3/c393013.a
! 5bf5e79116361f7f6818018607c7b14c  gcc/testsuite/ada/acats-4/tests/c3/c393a02.a
! 46faa2017a32e6ba0d55237311c2594b  gcc/testsuite/ada/acats-4/tests/c3/c393a03.a
! eafd936400d5d6d12f0163e2eddfac6b  gcc/testsuite/ada/acats-4/tests/c3/c393a05.a
! db0cccf9a144062cc832a2649c8b3890  gcc/testsuite/ada/acats-4/tests/c3/c393a06.a
! 8714b97cca38041a9f7e9366aef2ea6f  gcc/testsuite/ada/acats-4/tests/c3/c393b12.a
! 7035657702431ed63b2d07b818986f02  gcc/testsuite/ada/acats-4/tests/c3/c393b13.a
! 53c07ae14d9fb175ce43218b1e343038  gcc/testsuite/ada/acats-4/tests/c3/c393b14.a
! f5434c7e784d26f4723543d890baf070  gcc/testsuite/ada/acats-4/tests/c3/c394001.a
! f0d03a4cc11f4c5a3e849900d93ce5b5  gcc/testsuite/ada/acats-4/tests/c3/c394002.a
! bd76c737ec2888a6256a5b5fc62f5044  gcc/testsuite/ada/acats-4/tests/c3/c394003.a
! c2ac600ac5856ef7dd1dbc9289ad5b3a  gcc/testsuite/ada/acats-4/tests/c3/c3a0001.a
! 031b3fc5f0a32a51bded67c7ecc17317  gcc/testsuite/ada/acats-4/tests/c3/c3a0002.a
! c31f440d35b722f58fbb9350b06d125c  gcc/testsuite/ada/acats-4/tests/c3/c3a0003.a
! 2297f4ac861d78f2371edd9c4a2d7c6c  gcc/testsuite/ada/acats-4/tests/c3/c3a0004.a
! 32ac31994b6e97c7cfc3da69b63041ca  gcc/testsuite/ada/acats-4/tests/c3/c3a0005.a
! d86e5a6cc083a8024c11012097ddad34  gcc/testsuite/ada/acats-4/tests/c3/c3a0006.a
! 27a88a8b1aa1655fbfad671608eb6590  gcc/testsuite/ada/acats-4/tests/c3/c3a0007.a
! 2c75b971c54a5abc55846c25177a2d32  gcc/testsuite/ada/acats-4/tests/c3/c3a0008.a
! 0b8bb10fc6969853e244dca2a5176000  gcc/testsuite/ada/acats-4/tests/c3/c3a0009.a
! ed1e9211c87a814c4afe091b58de454c  gcc/testsuite/ada/acats-4/tests/c3/c3a0010.a
! e9e7d7fe8183ee50353cfccbd67ce241  gcc/testsuite/ada/acats-4/tests/c3/c3a0011.a
! c7fcc74fd4dfdbaffcb6c91b90a50060  gcc/testsuite/ada/acats-4/tests/c3/c3a00120.a
! 74ba294edd61c27b3a700c248bd041e9  gcc/testsuite/ada/acats-4/tests/c3/c3a00121.a
! b5687449024e6ae74c2b54cbbf12b721  gcc/testsuite/ada/acats-4/tests/c3/c3a00122.am
! e7d92335b6aec84b884e9a11162a306e  gcc/testsuite/ada/acats-4/tests/c3/c3a0013.a
! 8ada1257de16782d00affbb40cba5d0f  gcc/testsuite/ada/acats-4/tests/c3/c3a0014.a
! cbdd24e39ac8fba7e5ea4a0975d79298  gcc/testsuite/ada/acats-4/tests/c3/c3a0015.a
! 83572022417c237e0bb0551e51f4f09a  gcc/testsuite/ada/acats-4/tests/c3/c3a0016.a
! aea69c4eb5f92d59235f2df23e757d14  gcc/testsuite/ada/acats-4/tests/c3/c3a0017.a
! 62fa1c6bf50ac7e11e6bad46452e79ef  gcc/testsuite/ada/acats-4/tests/c3/c3a0018.a
! 4027e27b87c42473853d2165e05c8e0f  gcc/testsuite/ada/acats-4/tests/c3/c3a0019.a
! c8eec5b6a8cb02fdf4b8fc3672950275  gcc/testsuite/ada/acats-4/tests/c3/c3a0020.a
! 876c4cbf6611f889104d7b0572ae8147  gcc/testsuite/ada/acats-4/tests/c3/c3a0021.a
! 05a5719220f88bc16adf5f7d5f2eb478  gcc/testsuite/ada/acats-4/tests/c3/c3a0022.a
! d395a766d1e83cd40c121d287e8dc401  gcc/testsuite/ada/acats-4/tests/c3/c3a0023.a
! 18c72364756781cf037aaa928e0aaf6b  gcc/testsuite/ada/acats-4/tests/c3/c3a0024.a
! 5e91b5fba2c184aab9fe2701a160940a  gcc/testsuite/ada/acats-4/tests/c3/c3a0025.a
! 87c70d07250a7103f096a337328bbc92  gcc/testsuite/ada/acats-4/tests/c3/c3a0026.a
! 607293a26ce7e3e441968e95c9ccbba2  gcc/testsuite/ada/acats-4/tests/c3/c3a0027.a
! 2ddeb89db87fb985e7c9ddfcf080e693  gcc/testsuite/ada/acats-4/tests/c3/c3a0028.a
! f14f848057f112325d4e46ed85b5c3c7  gcc/testsuite/ada/acats-4/tests/c3/c3a0029.a
! 02f44410384ce0414b2ff6c941fa903a  gcc/testsuite/ada/acats-4/tests/c3/c3a0030.a
! 21ce522f0e81e68685347a0f9b6064f3  gcc/testsuite/ada/acats-4/tests/c3/c3a1001.a
! 03f9fa0b3ade6732c9e7b1792aa29352  gcc/testsuite/ada/acats-4/tests/c3/c3a1002.a
! 43871a0be958bf53238bf04d1e2b1d12  gcc/testsuite/ada/acats-4/tests/c3/c3a10030.a
! b3b07306d7f9eff4f7e6b0429dcaa05d  gcc/testsuite/ada/acats-4/tests/c3/c3a10031.a
! c879db4cb5243e89cd9eec2822afcfe2  gcc/testsuite/ada/acats-4/tests/c3/c3a10032.am
! cafc593ae60aa9bc20c17d81fae12d87  gcc/testsuite/ada/acats-4/tests/c3/c3a10040.a
! e3bbd65bb943a5000a14047b45073b7b  gcc/testsuite/ada/acats-4/tests/c3/c3a10041.a
! 10fc1a3d9cf835e1deccb8f31b08c78d  gcc/testsuite/ada/acats-4/tests/c3/c3a10042.am
! c6642560f187f450721fda5468cd07bb  gcc/testsuite/ada/acats-4/tests/c3/c3a1005.a
! 73e86224d17f2a8956a1d528195701e5  gcc/testsuite/ada/acats-4/tests/c3/c3a2001.a
! e2d17cf34da20dd63f46abc38e9461f2  gcc/testsuite/ada/acats-4/tests/c3/c3a2002.a
! 3c24e7e447372dec84c3b1cf5f273936  gcc/testsuite/ada/acats-4/tests/c3/c3a2003.a
! cbeca93d733582989633f82f0909acae  gcc/testsuite/ada/acats-4/tests/c3/c3a2004.a
! cddb5c363c31a2ba7b970cf9dc8e3f5e  gcc/testsuite/ada/acats-4/tests/c3/c3a2a01.a
! 4247f0b657aa158ef18c1318e9dc8b84  gcc/testsuite/ada/acats-4/tests/c3/c3a2a02.a
! 383d36d8bd8f651b81f9f034c79f6395  gcc/testsuite/ada/acats-4/tests/c4/c410001.a
! dc852bc88874efd64494341e97b01bfb  gcc/testsuite/ada/acats-4/tests/c4/c41101d.ada
! 6f5f34a6a9fa1d906503ce64081a9fb1  gcc/testsuite/ada/acats-4/tests/c4/c41103a.ada
! b5e4896d791e9edb4152659fc6403ac3  gcc/testsuite/ada/acats-4/tests/c4/c41103b.ada
! 820fca3a12cccc477a1db295b46c9e89  gcc/testsuite/ada/acats-4/tests/c4/c41104a.ada
! fdbf47ad957484b7d85a3373d756e376  gcc/testsuite/ada/acats-4/tests/c4/c41105a.ada
! c4087c229334ce4727fc90657340bea6  gcc/testsuite/ada/acats-4/tests/c4/c41107a.ada
! 0f8bb517ec2fe5d8ad9dd8f9fcdca333  gcc/testsuite/ada/acats-4/tests/c4/c41201d.ada
! 381cd3656ffd77067260c0426caad8e4  gcc/testsuite/ada/acats-4/tests/c4/c41203a.ada
! ad6cf2964a900435614399bbbe277e42  gcc/testsuite/ada/acats-4/tests/c4/c41203b.ada
! 9fbde81e21b268a632cd32dc4a99df30  gcc/testsuite/ada/acats-4/tests/c4/c41204a.ada
! 67fa52580bd829764d9438c881578136  gcc/testsuite/ada/acats-4/tests/c4/c41205a.ada
! 7dca543b0fdeefd218298ca3512d4136  gcc/testsuite/ada/acats-4/tests/c4/c41206a.ada
! 3ab9c169397fc23560a200fb693450fe  gcc/testsuite/ada/acats-4/tests/c4/c41207a.ada
! 17ad22489b459a058eeaf34546fec768  gcc/testsuite/ada/acats-4/tests/c4/c413001.a
! 1b052069034494eeefbb85b95881f7e7  gcc/testsuite/ada/acats-4/tests/c4/c413002.a
! 040de4201fd72e9de123fa9a2143c41d  gcc/testsuite/ada/acats-4/tests/c4/c413003.a
! 4b2fa1ff66b48b9350d8ab977de55848  gcc/testsuite/ada/acats-4/tests/c4/c413004.a
! 6bd3f248a03f035ba1437d5a541753e0  gcc/testsuite/ada/acats-4/tests/c4/c413005.a
! 2615eb7f6f28583edf200225c397e372  gcc/testsuite/ada/acats-4/tests/c4/c413006.a
! a245026cc4c00eb8a44aa405addb8cb8  gcc/testsuite/ada/acats-4/tests/c4/c413007.a
! 20522dfe7bf33e5e0e855924df96c08e  gcc/testsuite/ada/acats-4/tests/c4/c41301a.ada
! dae21e7962c8e72b1b61657cc9649578  gcc/testsuite/ada/acats-4/tests/c4/c41303a.ada
! b50a855a96988b73e7f3549240854176  gcc/testsuite/ada/acats-4/tests/c4/c41303b.ada
! 2616024a5ab75311dd3da9466dfeb83f  gcc/testsuite/ada/acats-4/tests/c4/c41303c.ada
! 71212110be4b03b467bc38a722d121d1  gcc/testsuite/ada/acats-4/tests/c4/c41303e.ada
! 66cc6334eba1dfed1e235d86203cb20f  gcc/testsuite/ada/acats-4/tests/c4/c41303f.ada
! 924b3910bb06953e81b618bc3e559550  gcc/testsuite/ada/acats-4/tests/c4/c41303g.ada
! 045ed81e249f894170b499df2db286d6  gcc/testsuite/ada/acats-4/tests/c4/c41303i.ada
! aa4db5f52bbfc36e5c975658ef97c89a  gcc/testsuite/ada/acats-4/tests/c4/c41303j.ada
! 0f31fc1511244c83e7abb4baeac80671  gcc/testsuite/ada/acats-4/tests/c4/c41303k.ada
! f9b758389317dc92073ce01c3c275e91  gcc/testsuite/ada/acats-4/tests/c4/c41303m.ada
! 71a865e9509e3725fd95b90ec715eaa7  gcc/testsuite/ada/acats-4/tests/c4/c41303n.ada
! 8981d1c2da09086d412019a04cc8c913  gcc/testsuite/ada/acats-4/tests/c4/c41303o.ada
! 2dda9c55735424d40aed9757f7a99849  gcc/testsuite/ada/acats-4/tests/c4/c41303q.ada
! e34e7a4a5a5ba93bc9916cceeaecc9e6  gcc/testsuite/ada/acats-4/tests/c4/c41303r.ada
! 7030e6ee5fb5761b449dbb4ff5a07765  gcc/testsuite/ada/acats-4/tests/c4/c41303s.ada
! d79eb627645d3853ea5140161ae28128  gcc/testsuite/ada/acats-4/tests/c4/c41303u.ada
! bb6f238e4a4ba7e7e7d4a81bc419e03c  gcc/testsuite/ada/acats-4/tests/c4/c41303v.ada
! 30d2340bbbbe2276772e1fb63e33b4ce  gcc/testsuite/ada/acats-4/tests/c4/c41303w.ada
! 98d29cda44e41c5ff7947a4026f5e44c  gcc/testsuite/ada/acats-4/tests/c4/c41304a.ada
! 185701022ded3608ce413730986fd29a  gcc/testsuite/ada/acats-4/tests/c4/c41304b.ada
! 5dd0f98f04759d0b25f9631bb3f052ba  gcc/testsuite/ada/acats-4/tests/c4/c41306b.ada
! 58245b98892f05598c91a37cc2fa0cf7  gcc/testsuite/ada/acats-4/tests/c4/c41306c.ada
! 78cff154ce4ec882d604897c85256a6f  gcc/testsuite/ada/acats-4/tests/c4/c41307d.ada
! e4f57f60d8ab4020fa02081676cd97b1  gcc/testsuite/ada/acats-4/tests/c4/c41309a.ada
! 46615dd040a05118f00cf1a6c269abf8  gcc/testsuite/ada/acats-4/tests/c4/c41320a.ada
! c87207608b642d6c0770b2213faa6f37  gcc/testsuite/ada/acats-4/tests/c4/c41321a.ada
! a2f1c6ef57f73e8afee4331c2f6b8836  gcc/testsuite/ada/acats-4/tests/c4/c41322a.ada
! 5fe80e1ed0d397d7243803f3679b1dcf  gcc/testsuite/ada/acats-4/tests/c4/c41323a.ada
! 1b628d4729417b726825d3cc545cce88  gcc/testsuite/ada/acats-4/tests/c4/c41324a.ada
! 34bb464a9c0edf77ba3cf3f225f84fac  gcc/testsuite/ada/acats-4/tests/c4/c41325a.ada
! 9f472b4f812b18261355bfdb272afaf2  gcc/testsuite/ada/acats-4/tests/c4/c41326a.ada
! c79f530e375e47fc23508a767283386e  gcc/testsuite/ada/acats-4/tests/c4/c41327a.ada
! 9dbb72dcbb910f44662d1091a9dcff76  gcc/testsuite/ada/acats-4/tests/c4/c41328a.ada
! 0449520de7d65d45ed1daf5ca0e4569b  gcc/testsuite/ada/acats-4/tests/c4/c41401a.ada
! 20918a0804a04dce0cbb4d97b451bb81  gcc/testsuite/ada/acats-4/tests/c4/c41402a.ada
! 3d9dc352053f7bb2142de6aadd56af67  gcc/testsuite/ada/acats-4/tests/c4/c41404a.ada
! 8db297c25e467dbfb8c1a1314bd34ba8  gcc/testsuite/ada/acats-4/tests/c4/c416a01.a
! fab54e5e65dd04a9765d38b24bdf4159  gcc/testsuite/ada/acats-4/tests/c4/c416a02.a
! 3472f5561c379717f19af41f64bf38a3  gcc/testsuite/ada/acats-4/tests/c4/c420001.a
! 837ffbb47c098000329e8e489cfada64  gcc/testsuite/ada/acats-4/tests/c4/c42006a.ada
! 3930cedf9786c67a42558e65e855c7fd  gcc/testsuite/ada/acats-4/tests/c4/c42007e.ada
! fdfa37c01ec576b222ad3107e9e17cd2  gcc/testsuite/ada/acats-4/tests/c4/c43003a.ada
! 42c7528eba63811a5183af811bdf7a65  gcc/testsuite/ada/acats-4/tests/c4/c43004a.ada
! fdfe754e9fba94c879707660c35c89c4  gcc/testsuite/ada/acats-4/tests/c4/c43004c.ada
! d381bf2fc72e35825723db4655f3c38a  gcc/testsuite/ada/acats-4/tests/c4/c431001.a
! 7c6edfdcc48d25502cc1a4cf90a36ee9  gcc/testsuite/ada/acats-4/tests/c4/c431002.a
! 4620a9eba6c3761c47e07023e4fac68a  gcc/testsuite/ada/acats-4/tests/c4/c431003.a
! ce966d18555ebee9c5839d96e0ba9dab  gcc/testsuite/ada/acats-4/tests/c4/c431004.a
! 841914115d2e37bfbd84574493c7019f  gcc/testsuite/ada/acats-4/tests/c4/c43103a.ada
! dd65d5f3b06487b888840af62334c5a5  gcc/testsuite/ada/acats-4/tests/c4/c43103b.ada
! 9e71b6045390013211406d2c1bfb4fba  gcc/testsuite/ada/acats-4/tests/c4/c43104a.ada
! 85abcc7f64ed7b42d6fd3f22c7daeb40  gcc/testsuite/ada/acats-4/tests/c4/c43105a.ada
! 4ed22cb91cfe0bda94598dd26ceb9c7c  gcc/testsuite/ada/acats-4/tests/c4/c43105b.ada
! baec9aa149293739f6e8ceac8325d7a0  gcc/testsuite/ada/acats-4/tests/c4/c43106a.ada
! 1d531018ee649629c5a7552829150451  gcc/testsuite/ada/acats-4/tests/c4/c43107a.ada
! 05a638c334196cb191ee5128a5996f23  gcc/testsuite/ada/acats-4/tests/c4/c43108a.ada
! debcbaad0b35de45ea6e4b666eeea609  gcc/testsuite/ada/acats-4/tests/c4/c431a01.a
! 0f4afa9a95b97dc847470380efc90532  gcc/testsuite/ada/acats-4/tests/c4/c431a02.a
! 65063fafd01ba653c15d798991e31ea3  gcc/testsuite/ada/acats-4/tests/c4/c431a03.a
! 4ea1f6b615b7799500e7c6933df91e82  gcc/testsuite/ada/acats-4/tests/c4/c432001.a
! 1e73ca84bb526fa8947ec4278f0151ed  gcc/testsuite/ada/acats-4/tests/c4/c432002.a
! 6ec2ee48b603324015bd74c07d8eb9fb  gcc/testsuite/ada/acats-4/tests/c4/c432003.a
! 8e738d9db0574dd56f1158230f5caa4c  gcc/testsuite/ada/acats-4/tests/c4/c432004.a
! ccee6b8b7bc155051a378848cc247ecb  gcc/testsuite/ada/acats-4/tests/c4/c432005.a
! ee94ed306c9c2f72d0f353f3242a51db  gcc/testsuite/ada/acats-4/tests/c4/c43204a.ada
! e98c1830d22cb2c31e6c97a0f3d96ad7  gcc/testsuite/ada/acats-4/tests/c4/c43204c.ada
! f0b2f2ebf435459bab0ed10112cc18b6  gcc/testsuite/ada/acats-4/tests/c4/c43204e.ada
! 7e74d89a8654aef2ebf093dc84b24d10  gcc/testsuite/ada/acats-4/tests/c4/c43204f.ada
! b266b1d1eaefa26342ce7e3c0eb10f20  gcc/testsuite/ada/acats-4/tests/c4/c43204g.ada
! 119509db1b0027b3597be4ca5abbb5bb  gcc/testsuite/ada/acats-4/tests/c4/c43204h.ada
! 67b7aebfc7ddaa75b105ec0d3e496a27  gcc/testsuite/ada/acats-4/tests/c4/c43204i.ada
! 73152cdcaa60874a7dd488590fdf9d5c  gcc/testsuite/ada/acats-4/tests/c4/c43205a.ada
! 64f982d0a7b18107f1762424333a65d3  gcc/testsuite/ada/acats-4/tests/c4/c43205b.ada
! ac552917303ade3bcc90b97b15f26e94  gcc/testsuite/ada/acats-4/tests/c4/c43205c.ada
! fb0c33a9daed1c4f2a00c26e9de3c09c  gcc/testsuite/ada/acats-4/tests/c4/c43205d.ada
! d9e706d3db07df4098bbb0e033aed012  gcc/testsuite/ada/acats-4/tests/c4/c43205e.ada
! 4f3634691d02036c149cdd006248ffe1  gcc/testsuite/ada/acats-4/tests/c4/c43205g.ada
! 5c21ffd092ad83125d058e3179c4d1bf  gcc/testsuite/ada/acats-4/tests/c4/c43205h.ada
! bf224ac40af0ffe5b844895ae6ae977a  gcc/testsuite/ada/acats-4/tests/c4/c43205i.ada
! 80a79cdbdb7c8185dcf0428e7589a584  gcc/testsuite/ada/acats-4/tests/c4/c43205j.ada
! 7914df26e752133b470cdb5c585686bc  gcc/testsuite/ada/acats-4/tests/c4/c43205k.ada
! cbadb73b68d71709f2becaa6f356064c  gcc/testsuite/ada/acats-4/tests/c4/c43206a.ada
! 0fc8105e29d6d23a3a7ddd6510322795  gcc/testsuite/ada/acats-4/tests/c4/c43207b.ada
! 97244c88eb0cfebd12378341cddfcf4f  gcc/testsuite/ada/acats-4/tests/c4/c43207d.ada
! f288bdf0f019b0e6deea7f364629093d  gcc/testsuite/ada/acats-4/tests/c4/c43208a.ada
! 99521b78f4e58d62e65acd17c5306220  gcc/testsuite/ada/acats-4/tests/c4/c43208b.ada
! 36f70dc294058acb31101eb9c245937b  gcc/testsuite/ada/acats-4/tests/c4/c43209a.ada
! 31cacbf3a20b821f6eb8f1d74586a51b  gcc/testsuite/ada/acats-4/tests/c4/c43210a.ada
! 54b7270b96a5d5519d2358a1b98bf7af  gcc/testsuite/ada/acats-4/tests/c4/c43211a.ada
! a692660520b9e289a7f0ae27c6d52494  gcc/testsuite/ada/acats-4/tests/c4/c43212a.ada
! c43685e66248fa05c959fb5d231800a7  gcc/testsuite/ada/acats-4/tests/c4/c43212c.ada
! 9427f327bd00f1850a52dc14567dbf4e  gcc/testsuite/ada/acats-4/tests/c4/c43214a.ada
! 2b1a3e33f54f7510083e41b401c3befb  gcc/testsuite/ada/acats-4/tests/c4/c43214b.ada
! 579da18e7294b44fdfc2fb550cccdbf3  gcc/testsuite/ada/acats-4/tests/c4/c43214c.ada
! 506424b9dbd9ff75e61b488ce4a5879e  gcc/testsuite/ada/acats-4/tests/c4/c43214d.ada
! 02fcbb175ddd0a1d8c5564d22bf12428  gcc/testsuite/ada/acats-4/tests/c4/c43214e.ada
! 34cd6d7cf5c8038e227dde683b30b50f  gcc/testsuite/ada/acats-4/tests/c4/c43214f.ada
! ab7bedd7c7899bfe816d9a4b9ac394d4  gcc/testsuite/ada/acats-4/tests/c4/c43215a.ada
! 90e0f447154023e2eab627e883738386  gcc/testsuite/ada/acats-4/tests/c4/c43215b.ada
! f0098152f11a322c39c1479f279dc3d7  gcc/testsuite/ada/acats-4/tests/c4/c43222a.ada
! bf1baa8817f6afb1d613db2046cb78de  gcc/testsuite/ada/acats-4/tests/c4/c43224a.ada
! 1e8e32f41f79462323a2f9d9c83d7939  gcc/testsuite/ada/acats-4/tests/c4/c433001.a
! 53871e7c64c41df52983f42504e65ab9  gcc/testsuite/ada/acats-4/tests/c4/c433002.a
! fc22bce48d36a001afa61fcfb22be460  gcc/testsuite/ada/acats-4/tests/c4/c433003.a
! 8638b56212b2480f3a9c035d904df662  gcc/testsuite/ada/acats-4/tests/c4/c433004.a
! fdeb85a1ac15afc69e41a42e68db5c9d  gcc/testsuite/ada/acats-4/tests/c4/c433005.a
! a7aeb76317f06567f6b44cb0b94ba9d9  gcc/testsuite/ada/acats-4/tests/c4/c433006.a
! 21e51f8d9002c30c3170d096a931ddb8  gcc/testsuite/ada/acats-4/tests/c4/c433007.a
! 493a8023e1e31054060d4af24ec45625  gcc/testsuite/ada/acats-4/tests/c4/c433008.a
! 6be8523b2e0ccefb268613fe395421ca  gcc/testsuite/ada/acats-4/tests/c4/c433a01.a
! f2b5faadf7994318ad86d30f5d297c77  gcc/testsuite/ada/acats-4/tests/c4/c433a02.a
! e758c7c2655902abd75371fb1d06411d  gcc/testsuite/ada/acats-4/tests/c4/c433a03.a
! 43d476ccf0baa3b45d12a181f1801d72  gcc/testsuite/ada/acats-4/tests/c4/c433a04.a
! 196c158a32a4bc1774a4d934b1a6632e  gcc/testsuite/ada/acats-4/tests/c4/c44003d.ada
! bf440c6d6ead3b13b20d4e127607337e  gcc/testsuite/ada/acats-4/tests/c4/c44003f.ada
! 2f9030320131a08536fa11fa1a117664  gcc/testsuite/ada/acats-4/tests/c4/c44003g.ada
! 62ba7a9a25d025dad4ded263e64d8380  gcc/testsuite/ada/acats-4/tests/c4/c450001.a
! b3687aae227c95d084c9f685c9ca4c80  gcc/testsuite/ada/acats-4/tests/c4/c45112a.ada
! c7c3ba0d233fb51ade68d7651dd47189  gcc/testsuite/ada/acats-4/tests/c4/c45112b.ada
! 49306dfa2cb372d1d65b4dd7a47c19e5  gcc/testsuite/ada/acats-4/tests/c4/c45113a.ada
! aa0781fb6f24f86504e59a47cf77b3d6  gcc/testsuite/ada/acats-4/tests/c4/c45114b.ada
! ef35f5a0ba2b88cfb85776201f97275c  gcc/testsuite/ada/acats-4/tests/c4/c452001.a
! 3f5197645a6343dc1f808abd156058c3  gcc/testsuite/ada/acats-4/tests/c4/c452002.a
! 3842765bc0a9775ba6885e32c2011e12  gcc/testsuite/ada/acats-4/tests/c4/c452003.a
! 0ae54e3c32a1b328259604b29459b4e1  gcc/testsuite/ada/acats-4/tests/c4/c452004.a
! 840ffc30b1a13681a76761f357af611e  gcc/testsuite/ada/acats-4/tests/c4/c452005.a
! 090b89bd80d0774f20c19f80a89d934c  gcc/testsuite/ada/acats-4/tests/c4/c452006.a
! 20ba3c7cde16d8bed844c4e64cd33e56  gcc/testsuite/ada/acats-4/tests/c4/c45201a.ada
! 6d4a1adb58c6e8ef73b34a324604ede4  gcc/testsuite/ada/acats-4/tests/c4/c45201b.ada
! 72aed4b6ea2fe7dfc0a9fdf3bede3751  gcc/testsuite/ada/acats-4/tests/c4/c45202b.ada
! 84d744855e2972095386f0e272333a6a  gcc/testsuite/ada/acats-4/tests/c4/c45210a.ada
! 91f826ce1d8f6889145f46e4c0ccada9  gcc/testsuite/ada/acats-4/tests/c4/c45211a.ada
! fe9117190ab93e4bd66b4015bb5cdba1  gcc/testsuite/ada/acats-4/tests/c4/c45220a.ada
! 6912810853452af0c8935cfd387c8df5  gcc/testsuite/ada/acats-4/tests/c4/c45220b.ada
! b394f131a9012e7c03cfd9636d737e6d  gcc/testsuite/ada/acats-4/tests/c4/c45220c.ada
! ccf331c469a0927819e1eb56e4e00429  gcc/testsuite/ada/acats-4/tests/c4/c45220d.ada
! 88d3a9ace4677cd3c025906371d2beeb  gcc/testsuite/ada/acats-4/tests/c4/c45220e.ada
! bba84a4055dd7c551f067e52bbe462e1  gcc/testsuite/ada/acats-4/tests/c4/c45220f.ada
! c13eaf9a516abfe2b6beda77dc2e3911  gcc/testsuite/ada/acats-4/tests/c4/c45231a.ada
! 2cca7d5fea02ce521f28a33db34ffa3d  gcc/testsuite/ada/acats-4/tests/c4/c45231b.dep
! 1bee766d69082269378c86e19c8abe85  gcc/testsuite/ada/acats-4/tests/c4/c45231c.dep
! a1bdfcd8a7def7dd624d3536e8905d30  gcc/testsuite/ada/acats-4/tests/c4/c45231d.tst
! 911d91bbd63a8c74f621846268c3e576  gcc/testsuite/ada/acats-4/tests/c4/c45232b.ada
! 4de95534392888683c8404eeeed6cc46  gcc/testsuite/ada/acats-4/tests/c4/c45242b.ada
! f2b98c822abe0cd6885e5b49561ac387  gcc/testsuite/ada/acats-4/tests/c4/c45251a.ada
! 94a924601ada615360bec26fb5450efb  gcc/testsuite/ada/acats-4/tests/c4/c45252a.ada
! debd13ddcb22bdcbb8a02c69693b66f8  gcc/testsuite/ada/acats-4/tests/c4/c45252b.ada
! ac031704393af45bbba41661aa36f2aa  gcc/testsuite/ada/acats-4/tests/c4/c45253a.ada
! fc9f55680d3672e261c2346c11b8ac30  gcc/testsuite/ada/acats-4/tests/c4/c45262a.ada
! c4104ba41f3003933d2540d2f946ba70  gcc/testsuite/ada/acats-4/tests/c4/c45262b.ada
! 8b9cb8019cc36523ada4859ea4a5d16a  gcc/testsuite/ada/acats-4/tests/c4/c45262c.ada
! d03448ead4d0effaab3998536c97bf20  gcc/testsuite/ada/acats-4/tests/c4/c45262d.ada
! f5c2479fb34a68704e8a8cc34f61a360  gcc/testsuite/ada/acats-4/tests/c4/c45264a.ada
! b5849bcd08a3c2d9a5d0c2b9e7a3cddd  gcc/testsuite/ada/acats-4/tests/c4/c45264b.ada
! 8f21912f6834298744357d557cb137f0  gcc/testsuite/ada/acats-4/tests/c4/c45264c.ada
! adc3cff25d9a3d6a8177af01212d7415  gcc/testsuite/ada/acats-4/tests/c4/c45265a.ada
! c4c6e9f92d1c15ec8a4b8f04c34a693f  gcc/testsuite/ada/acats-4/tests/c4/c45271a.ada
! c72a97f0fec20bbb08fc4517b6ddc788  gcc/testsuite/ada/acats-4/tests/c4/c45272a.ada
! 6b2a1a4bc714bd568da120c02fbf1702  gcc/testsuite/ada/acats-4/tests/c4/c45273a.ada
! b79ca71dc3632b190bdef98c6e0d142b  gcc/testsuite/ada/acats-4/tests/c4/c45274a.ada
! 9855409d4983ad2c1546e338fcbd0706  gcc/testsuite/ada/acats-4/tests/c4/c45274b.ada
! 435926faf09e9e479e1b1f272c13a333  gcc/testsuite/ada/acats-4/tests/c4/c45274c.ada
! 9115b9a51b29cec2f4c9ff1428f5a615  gcc/testsuite/ada/acats-4/tests/c4/c45281a.ada
! ecfe4965aad0d9bc1dc0dea01acceae3  gcc/testsuite/ada/acats-4/tests/c4/c45282a.ada
! 52a7cd2f9612b968a81d14f925d96de2  gcc/testsuite/ada/acats-4/tests/c4/c45282b.ada
! b3bd1b305af20f17ece9aabad0feaef1  gcc/testsuite/ada/acats-4/tests/c4/c45291a.ada
! 5e2f83b478139997a71df86ce9d1694c  gcc/testsuite/ada/acats-4/tests/c4/c452a01.a
! 35c49539c3030fd9c7c002e2fb0544cc  gcc/testsuite/ada/acats-4/tests/c4/c452a02.a
! 8af6afb2d8a0c30080274f19bc0dbbe8  gcc/testsuite/ada/acats-4/tests/c4/c452a03.a
! 7a35f848c66e3fbeaecff44f362c6d10  gcc/testsuite/ada/acats-4/tests/c4/c453001.a
! eaeb6ce37e830b736db8d34c6a83bb7d  gcc/testsuite/ada/acats-4/tests/c4/c45303a.ada
! f1ec15c9cdb65dbf13e1375cf7996f12  gcc/testsuite/ada/acats-4/tests/c4/c45304a.ada
! 55a19685b3e235e5bb6750cb9d7df962  gcc/testsuite/ada/acats-4/tests/c4/c45304b.dep
! b4c45f68d1219b0b994968a9828a7b17  gcc/testsuite/ada/acats-4/tests/c4/c45304c.dep
! 20fb36abf27afac504d4a771e7e63fd0  gcc/testsuite/ada/acats-4/tests/c4/c45322a.ada
! fab8bce97e1b74f5541c43ebbc38c44b  gcc/testsuite/ada/acats-4/tests/c4/c45323a.ada
! 0f09ca069bcacb950f308b51658fe4cf  gcc/testsuite/ada/acats-4/tests/c4/c45331a.ada
! 923c0cd8bc5f7a54a3ff10b7ecd3ae30  gcc/testsuite/ada/acats-4/tests/c4/c45342a.ada
! 4c687d4debfb2858cbde8d0598741375  gcc/testsuite/ada/acats-4/tests/c4/c45343a.ada
! fced8cf133a6e38c1bd3f44b383050a5  gcc/testsuite/ada/acats-4/tests/c4/c45344a.ada
! 046bf7cdbb7aeb33cdf0c17abb97726b  gcc/testsuite/ada/acats-4/tests/c4/c45345b.ada
! 1b975a926de8c5e1c1a8fd844dbfa809  gcc/testsuite/ada/acats-4/tests/c4/c45347a.ada
! 5c3a11fd88252878ac174be55d9cbe23  gcc/testsuite/ada/acats-4/tests/c4/c45347b.ada
! e7b0eaf3fab48f0c61a33030a45c9625  gcc/testsuite/ada/acats-4/tests/c4/c45347c.ada
! 5862189030beeea86b9e0d08e37c5f1a  gcc/testsuite/ada/acats-4/tests/c4/c45347d.ada
! 5a4ad439614a0b55cdeae637fcef3913  gcc/testsuite/ada/acats-4/tests/c4/c45411a.ada
! b55c932d505fe19faf48b3854f91bf92  gcc/testsuite/ada/acats-4/tests/c4/c45411b.dep
! cc45fca3dbdc169c3f8a8d219a8f3885  gcc/testsuite/ada/acats-4/tests/c4/c45411c.dep
! 92372898586e4be4330d20dabffa9b47  gcc/testsuite/ada/acats-4/tests/c4/c45411d.ada
! fdb465fedee3ebd743401e0c8899b0ce  gcc/testsuite/ada/acats-4/tests/c4/c45413a.ada
! fbd34bfae4961dda3c3e39ae18565fc8  gcc/testsuite/ada/acats-4/tests/c4/c45431a.ada
! bda2b940e9dc2584f9295b05e0c20b0f  gcc/testsuite/ada/acats-4/tests/c4/c455001.a
! 87ea1f3d7a54b6c25dba44fd5a571baa  gcc/testsuite/ada/acats-4/tests/c4/c45502b.dep
! 5a774d039f16514bc6a77bcf387d50ec  gcc/testsuite/ada/acats-4/tests/c4/c45502c.dep
! cc87ae3a223cabfed863304f12752609  gcc/testsuite/ada/acats-4/tests/c4/c45503a.ada
! dcadc5c668c2ff77de523cb7dba5b36a  gcc/testsuite/ada/acats-4/tests/c4/c45503b.dep
! 611398c2ae165df5a3f7381f660f52a0  gcc/testsuite/ada/acats-4/tests/c4/c45503c.dep
! f89268db15e37b030991c3827ca26c3e  gcc/testsuite/ada/acats-4/tests/c4/c45504a.ada
! f0cdb8c22aab2695a23fd98a373755b2  gcc/testsuite/ada/acats-4/tests/c4/c45504b.dep
! b8b4e008dfce1ee201519835a1fa50b8  gcc/testsuite/ada/acats-4/tests/c4/c45504c.dep
! ce29dbe3d5204283efb96dbcdfd5aac5  gcc/testsuite/ada/acats-4/tests/c4/c45504d.ada
! 10c91d5e233ba13218dcd66fb790a7be  gcc/testsuite/ada/acats-4/tests/c4/c45504e.dep
! 92f6aea3aed6ba9df5385c22f904ba43  gcc/testsuite/ada/acats-4/tests/c4/c45504f.dep
! 0059f05c198e829fac48965c13f56c08  gcc/testsuite/ada/acats-4/tests/c4/c45505a.ada
! 47a4e48ddd2b3df3c7eb949e7d6692a8  gcc/testsuite/ada/acats-4/tests/c4/c45523a.ada
! 17fdb2a59175aad9fef05c8cab8509e5  gcc/testsuite/ada/acats-4/tests/c4/c45531a.ada
! b8d549a63a2c40e579c8ed0a817ba1b3  gcc/testsuite/ada/acats-4/tests/c4/c45531b.ada
! c131684e4763854670c42c2112418109  gcc/testsuite/ada/acats-4/tests/c4/c45531c.ada
! c584d6f3f281816f1bd157cd8cc6b33a  gcc/testsuite/ada/acats-4/tests/c4/c45531d.ada
! 29ba7e7c1042d7979b1c75938b61e862  gcc/testsuite/ada/acats-4/tests/c4/c45531e.ada
! 47ea14530564cd8e06520e03e074efb3  gcc/testsuite/ada/acats-4/tests/c4/c45531f.ada
! 974ec868d7bcf66f2a14b7a4e70541b0  gcc/testsuite/ada/acats-4/tests/c4/c45531g.ada
! be8ef1a126f5c01246a9b635558e69ed  gcc/testsuite/ada/acats-4/tests/c4/c45531h.ada
! a795638c4621469321aa1212fd6bc01b  gcc/testsuite/ada/acats-4/tests/c4/c45531i.ada
! 8e8dbc1f05d26be72eaaaaca136d57b8  gcc/testsuite/ada/acats-4/tests/c4/c45531j.ada
! f7420a86d16f0dda550ad66d998500fa  gcc/testsuite/ada/acats-4/tests/c4/c45531k.ada
! de637dfbdf31186f46f1f622a7b31d52  gcc/testsuite/ada/acats-4/tests/c4/c45531l.ada
! 991294aff87680d765e6feb5cca5b1b5  gcc/testsuite/ada/acats-4/tests/c4/c45531m.dep
! 0494b2e93ef765b57a27be6b00246238  gcc/testsuite/ada/acats-4/tests/c4/c45531n.dep
! be4ab72a6216470b4aa0865525f98461  gcc/testsuite/ada/acats-4/tests/c4/c45531o.dep
! bb7d5366acda158c30e39d3074242262  gcc/testsuite/ada/acats-4/tests/c4/c45531p.dep
! 1328509e95f292ea980a979dedb08b47  gcc/testsuite/ada/acats-4/tests/c4/c45532a.ada
! 59f6ce63685d98c434d1a7af9b67d1f3  gcc/testsuite/ada/acats-4/tests/c4/c45532b.ada
! fe5a8b5f9204d89a9d208c19a93b7bbf  gcc/testsuite/ada/acats-4/tests/c4/c45532c.ada
! b60deea143add2ece22c54e2958db126  gcc/testsuite/ada/acats-4/tests/c4/c45532d.ada
! dac58571992e1d76d98508be3cbe2bd6  gcc/testsuite/ada/acats-4/tests/c4/c45532e.ada
! 1d7df94c7041a350156a66e67466f094  gcc/testsuite/ada/acats-4/tests/c4/c45532f.ada
! 98b8e00c4f5a9bb275a8ea343272d444  gcc/testsuite/ada/acats-4/tests/c4/c45532g.ada
! 715b35f0ab3ff72859527fd1dce01194  gcc/testsuite/ada/acats-4/tests/c4/c45532h.ada
! 6f5e0c33dee8484fe564f99b4aa53644  gcc/testsuite/ada/acats-4/tests/c4/c45532i.ada
! 4ff1755309ac898b71b5b8e71ed4a3b6  gcc/testsuite/ada/acats-4/tests/c4/c45532j.ada
! 6c58481cb99358f459163a20d20ecd7c  gcc/testsuite/ada/acats-4/tests/c4/c45532k.ada
! c77d0519f01191df9cdfba659466ec04  gcc/testsuite/ada/acats-4/tests/c4/c45532l.ada
! d2858511889a915c130e7db15a855e6a  gcc/testsuite/ada/acats-4/tests/c4/c45532m.dep
! a549269ed45783ccf0d0c93c5328f429  gcc/testsuite/ada/acats-4/tests/c4/c45532n.dep
! f4b1217bc94832f638629b8949b7def2  gcc/testsuite/ada/acats-4/tests/c4/c45532o.dep
! 798f26e21ededa5b524a77eeece6382f  gcc/testsuite/ada/acats-4/tests/c4/c45532p.dep
! 76101d98b4fab21c843f8c72a2bd9d19  gcc/testsuite/ada/acats-4/tests/c4/c45534b.ada
! b8ae84ef022a3c5728e841755e4bac5e  gcc/testsuite/ada/acats-4/tests/c4/c45536a.dep
! 28591d736802ebfac3f139de9f8cf2e7  gcc/testsuite/ada/acats-4/tests/c4/c456001.a
! bc49b87b69b7e8faefa883dc0c55fb68  gcc/testsuite/ada/acats-4/tests/c4/c45611a.ada
! 3be40e2b85d211f880f0c3afd51a63e8  gcc/testsuite/ada/acats-4/tests/c4/c45611b.dep
! 969e8cbd817e50baf599dd80133f7e3d  gcc/testsuite/ada/acats-4/tests/c4/c45611c.dep
! 48d114a182e767e243d7ef95e93e4e19  gcc/testsuite/ada/acats-4/tests/c4/c45613a.ada
! c3d80667bb998de0b21993ea73edabec  gcc/testsuite/ada/acats-4/tests/c4/c45613b.dep
! f8ed3027af651e8a9c09b39c0abf883c  gcc/testsuite/ada/acats-4/tests/c4/c45613c.dep
! cfe72bc879be3b00ef382558884d4b1d  gcc/testsuite/ada/acats-4/tests/c4/c45614a.ada
! c49e020a85a8868eed26fc38aaab04bf  gcc/testsuite/ada/acats-4/tests/c4/c45614b.dep
! 41f7a3468254617c1e8fd2e5932a25b4  gcc/testsuite/ada/acats-4/tests/c4/c45614c.dep
! ac5d52f05c31abf886e8c8c4468e3276  gcc/testsuite/ada/acats-4/tests/c4/c45631a.ada
! 08c1f1a469e3e9753825625f1a28b1ea  gcc/testsuite/ada/acats-4/tests/c4/c45631b.dep
! 3d90d62c311cc7457e997be47d4bc90b  gcc/testsuite/ada/acats-4/tests/c4/c45631c.dep
! 2f244bf1111e453d24ff570db3165fdb  gcc/testsuite/ada/acats-4/tests/c4/c45632a.ada
! 3e3d1f108ceb3c5be9dad7868239132f  gcc/testsuite/ada/acats-4/tests/c4/c45632b.dep
! d562e6283ca6c800b69581c080526e08  gcc/testsuite/ada/acats-4/tests/c4/c45632c.dep
! 2057dc7ea5393bc4be1493fb108ee5fb  gcc/testsuite/ada/acats-4/tests/c4/c45651a.ada
! c6892aa7717ffbd54f697e3d5db788af  gcc/testsuite/ada/acats-4/tests/c4/c45662a.ada
! a04b5f03883d1f148e66d75bb8eb5a69  gcc/testsuite/ada/acats-4/tests/c4/c45662b.ada
! ebd6cdab4f3e678623c2ece9ee770d5e  gcc/testsuite/ada/acats-4/tests/c4/c45672a.ada
! 2107107aa88fcbff445eeb6721d2a795  gcc/testsuite/ada/acats-4/tests/c4/c457001.a
! 782508e63800eaec0b936b50b5410242  gcc/testsuite/ada/acats-4/tests/c4/c457002.a
! 757f32d578ee296d56849ff835ee6e46  gcc/testsuite/ada/acats-4/tests/c4/c457003.a
! 5927837898a60dc9e24fd9ab31a0181b  gcc/testsuite/ada/acats-4/tests/c4/c457004.a
! d5497c731458923dd7d696565ebd16fb  gcc/testsuite/ada/acats-4/tests/c4/c457005.a
! 13831df05ca780677357496646bf120d  gcc/testsuite/ada/acats-4/tests/c4/c457006.a
! 9bde840312cf24f530ef335fca0d6c2b  gcc/testsuite/ada/acats-4/tests/c4/c457007.a
! d2ef822c53902b8f3725b8d5c39fc724  gcc/testsuite/ada/acats-4/tests/c4/c458001.a
! f3381be9c883bb29ae72dda9ebb7a7e0  gcc/testsuite/ada/acats-4/tests/c4/c458002.a
! 853b5e1594fad1f14fbbf3f39ef08a7c  gcc/testsuite/ada/acats-4/tests/c4/c458003.a
! c8502736e13993816459df5433071a57  gcc/testsuite/ada/acats-4/tests/c4/c458a01.a
! 9d0f5bebcbf8d9e06b08c2ca023734a4  gcc/testsuite/ada/acats-4/tests/c4/c458a02.a
! ac5adcf11bac18511d0fcfabda779d68  gcc/testsuite/ada/acats-4/tests/c4/c460001.a
! afb5f92407f4912f75eeaef16084757f  gcc/testsuite/ada/acats-4/tests/c4/c460002.a
! 69401711fe089c368e9218ac971b8e5a  gcc/testsuite/ada/acats-4/tests/c4/c460004.a
! f7f9cde65ac6273493f88f7cc35065c2  gcc/testsuite/ada/acats-4/tests/c4/c460005.a
! e0ce32e221b728a5e7cbef5d66bdb49b  gcc/testsuite/ada/acats-4/tests/c4/c460006.a
! ec69fdc3a65a761d8134bc49e6570216  gcc/testsuite/ada/acats-4/tests/c4/c460007.a
! 8b03807b80d9f2edc57ad06734bf670f  gcc/testsuite/ada/acats-4/tests/c4/c460008.a
! 6950bb628b3003b1ceb3b53e6cf246f8  gcc/testsuite/ada/acats-4/tests/c4/c460009.a
! 5bc44a3344b33409dd851c6b03e885b7  gcc/testsuite/ada/acats-4/tests/c4/c460010.a
! 28b73597d3fa9ae6666a9a63539882fb  gcc/testsuite/ada/acats-4/tests/c4/c460011.a
! a2898cc40c52d07d2a1d5f39c8daae42  gcc/testsuite/ada/acats-4/tests/c4/c460012.a
! 872a8786f130e49cbb2e00930aee116c  gcc/testsuite/ada/acats-4/tests/c4/c460013.a
! 8caad81fc1b11cdf36c43c5366ffe8c4  gcc/testsuite/ada/acats-4/tests/c4/c460014.a
! e833e9d95b6cede57867bf1cfb360b6d  gcc/testsuite/ada/acats-4/tests/c4/c460015.a
! 4578ba3cbcc42767bfa1d9fb8beed52f  gcc/testsuite/ada/acats-4/tests/c4/c46011a.ada
! 573e5b85d6d0d9289787bcf7f265aea9  gcc/testsuite/ada/acats-4/tests/c4/c46013a.ada
! ad32d1cce692c7cd1ef8bf3d2f70dee2  gcc/testsuite/ada/acats-4/tests/c4/c46014a.ada
! 3860375240c7fbeec5ea607c60613d17  gcc/testsuite/ada/acats-4/tests/c4/c46021a.ada
! 6ca67808bea0b36f928ece90dac5570f  gcc/testsuite/ada/acats-4/tests/c4/c46024a.ada
! 846bd637f5220b864dde4f2ea9ac8025  gcc/testsuite/ada/acats-4/tests/c4/c46031a.ada
! 362f593ed41bfc3cc23925318952cbc7  gcc/testsuite/ada/acats-4/tests/c4/c46032a.ada
! 65b59a01caacc42c4057aa1adad39e9c  gcc/testsuite/ada/acats-4/tests/c4/c46033a.ada
! bc9fedd5661dbda9254ef00f93819e37  gcc/testsuite/ada/acats-4/tests/c4/c46041a.ada
! dd2bc24443f9516af6adaf665228f9fb  gcc/testsuite/ada/acats-4/tests/c4/c46042a.ada
! cc5cd66068669bee0635ba7d5d5b9e4b  gcc/testsuite/ada/acats-4/tests/c4/c46043b.ada
! 862e92acebb016f9eaff87800084fb00  gcc/testsuite/ada/acats-4/tests/c4/c46044b.ada
! 8704bc96d1d99d958dd9ba580cc0fcab  gcc/testsuite/ada/acats-4/tests/c4/c46051a.ada
! 4301c097675c9ae1e1de85cb434e9f91  gcc/testsuite/ada/acats-4/tests/c4/c46051b.ada
! 0852a062d8fb5318db0fafb3e74e1869  gcc/testsuite/ada/acats-4/tests/c4/c46051c.ada
! 207b83887faae118af7863a8e7c8b797  gcc/testsuite/ada/acats-4/tests/c4/c46052a.ada
! 36ddef6a40e98fa6f687083359dcc79c  gcc/testsuite/ada/acats-4/tests/c4/c46053a.ada
! 7c918ea610224feb8290e7538e4931c0  gcc/testsuite/ada/acats-4/tests/c4/c46054a.ada
! dcaaa25c241dbab83f2031ac8a166ad0  gcc/testsuite/ada/acats-4/tests/c4/c460a01.a
! c9d756313dbe8edba8cd79f261be675b  gcc/testsuite/ada/acats-4/tests/c4/c460a02.a
! bed8a264a57d74944af5e13df9ec0b24  gcc/testsuite/ada/acats-4/tests/c4/c470001.a
! 8453f66003fadf1256272c8267ac59fe  gcc/testsuite/ada/acats-4/tests/c4/c47002a.ada
! a1a15e98aa414e9e0f6c684cc5fc7d3d  gcc/testsuite/ada/acats-4/tests/c4/c47002b.ada
! 52b6ce3f1ece2252097d9cf94ff704d8  gcc/testsuite/ada/acats-4/tests/c4/c47002c.ada
! 1b3f120455d714443fa2b8a6510141b3  gcc/testsuite/ada/acats-4/tests/c4/c47002d.ada
! e24d41d29f205af082effc4960aabff2  gcc/testsuite/ada/acats-4/tests/c4/c47003a.ada
! 676bb791325a2ce2931c822d1ba079e8  gcc/testsuite/ada/acats-4/tests/c4/c47004a.ada
! 5768cda2bc4788bb66c01ffbbe818333  gcc/testsuite/ada/acats-4/tests/c4/c47005a.ada
! 7180522de8601bc47eada08923197c21  gcc/testsuite/ada/acats-4/tests/c4/c47006a.ada
! 0866501ce0f4c5ac19a1a6701494acf1  gcc/testsuite/ada/acats-4/tests/c4/c47007a.ada
! f190b1e58c5b9f88edb7c62cc786a5ff  gcc/testsuite/ada/acats-4/tests/c4/c47008a.ada
! a83ffa688fac3d8d28808297d6c1f8af  gcc/testsuite/ada/acats-4/tests/c4/c47009a.ada
! 7e410443d7fee4c5025000324c9fa075  gcc/testsuite/ada/acats-4/tests/c4/c47009b.ada
! dce2f96009d9046b47877ee487e3b5da  gcc/testsuite/ada/acats-4/tests/c4/c480001.a
! bc1787b8c3d0a2828cd39079641a7ae3  gcc/testsuite/ada/acats-4/tests/c4/c48004a.ada
! 35a79d509102b6efc374a823e03081dd  gcc/testsuite/ada/acats-4/tests/c4/c48004b.ada
! 520b577b8b19f3e983fa89ee6a4feae4  gcc/testsuite/ada/acats-4/tests/c4/c48004c.ada
! 4a4dc141e6c0b8734f2f4889a453c041  gcc/testsuite/ada/acats-4/tests/c4/c48004d.ada
! e1de901127f9fa068bbc1887e40ae286  gcc/testsuite/ada/acats-4/tests/c4/c48004e.ada
! a21a603107226dd95249e796c50b2988  gcc/testsuite/ada/acats-4/tests/c4/c48004f.ada
! d05127b0bccfaca8e70b371616b9e949  gcc/testsuite/ada/acats-4/tests/c4/c48005a.ada
! 93f4d6e87a4f9f685f9aad61502c858c  gcc/testsuite/ada/acats-4/tests/c4/c48005b.ada
! 794d0af908f9931f0b089116f1e42907  gcc/testsuite/ada/acats-4/tests/c4/c48006a.ada
! 3df923c9af6683c1bb48881ddb41ddfb  gcc/testsuite/ada/acats-4/tests/c4/c48006b.ada
! a6c0f722acc9486a7e600dc96ff2d5cd  gcc/testsuite/ada/acats-4/tests/c4/c48007a.ada
! b2751238701befe768d059585cb34fbe  gcc/testsuite/ada/acats-4/tests/c4/c48007b.ada
! a069ec763e24859fbddc4f107e410c11  gcc/testsuite/ada/acats-4/tests/c4/c48007c.ada
! 009ebc3b69f9c31aa88c54a85271399a  gcc/testsuite/ada/acats-4/tests/c4/c48008a.ada
! 5782d3eeb5e00949ec2f3c7a7ae59650  gcc/testsuite/ada/acats-4/tests/c4/c48008c.ada
! 36b2b00fc2eaa55063b74bfc4cb91c79  gcc/testsuite/ada/acats-4/tests/c4/c48009a.ada
! d7356de4b25053ff97c5d99c7daa90a2  gcc/testsuite/ada/acats-4/tests/c4/c48009b.ada
! 46e9f0e1b269b6b499944395221ae145  gcc/testsuite/ada/acats-4/tests/c4/c48009c.ada
! 99e82e54208e5f2e641da892789ade00  gcc/testsuite/ada/acats-4/tests/c4/c48009d.ada
! a4dd405fd63b81dac153b62e7df858e9  gcc/testsuite/ada/acats-4/tests/c4/c48009e.ada
! a761ea12752cc1827d795f510ed14854  gcc/testsuite/ada/acats-4/tests/c4/c48009f.ada
! f4d13322456cdc5177a9641ba263e997  gcc/testsuite/ada/acats-4/tests/c4/c48009g.ada
! 9b3d09b25afb28f96e9c15abc9134ea5  gcc/testsuite/ada/acats-4/tests/c4/c48009h.ada
! 5ed239b238e9da030fa1d1bbf81e4dc3  gcc/testsuite/ada/acats-4/tests/c4/c48009i.ada
! dbe1181c1fb1c91cdfc5d5a51327b289  gcc/testsuite/ada/acats-4/tests/c4/c48009j.ada
! 688a1e8190cac3b78936f0235d3b808d  gcc/testsuite/ada/acats-4/tests/c4/c48010a.ada
! 48a6ec9afe098c7d148a0d1f652be09e  gcc/testsuite/ada/acats-4/tests/c4/c48011a.ada
! 18db6e638dc720b6501696a26aa99e58  gcc/testsuite/ada/acats-4/tests/c4/c48012a.ada
! b30035b53424a29691b261dda34fc58e  gcc/testsuite/ada/acats-4/tests/c4/c490001.a
! 489ea02e3356b5145fb51c63bb474ea5  gcc/testsuite/ada/acats-4/tests/c4/c490002.a
! c9523cc2889cfcde83e23c042eedd694  gcc/testsuite/ada/acats-4/tests/c4/c490003.a
! 6f98fb5a40e92d1a16d6c2a144d613a5  gcc/testsuite/ada/acats-4/tests/c4/c49020a.ada
! 949b858aea6369cc5f6b92e57a36762e  gcc/testsuite/ada/acats-4/tests/c4/c49021a.ada
! 61eb9a59008479c0875739f8a38a6058  gcc/testsuite/ada/acats-4/tests/c4/c49022a.ada
! 371d9a00cb41f67a40d255081149947a  gcc/testsuite/ada/acats-4/tests/c4/c49022b.ada
! 6cbf71a7cecd0227501309baf6e99545  gcc/testsuite/ada/acats-4/tests/c4/c49022c.ada
! ae09e5339a3f4903f8fa5d11de07d714  gcc/testsuite/ada/acats-4/tests/c4/c49023a.ada
! e2d3c0d182fcc8306bf82e940cacf1c0  gcc/testsuite/ada/acats-4/tests/c4/c49024a.ada
! fa1107ef6dfef6a91126632e0fd40ac9  gcc/testsuite/ada/acats-4/tests/c4/c49025a.ada
! 8308838bc1d5d9801f0aba7872873b2e  gcc/testsuite/ada/acats-4/tests/c4/c49026a.ada
! 67dd3195321fffe06e278c7a2dd46fb7  gcc/testsuite/ada/acats-4/tests/c4/c4a005b.ada
! b4f6152a06508643187aed55fe1b066d  gcc/testsuite/ada/acats-4/tests/c4/c4a006a.ada
! 5eddb402835a4195abec99f2970765f6  gcc/testsuite/ada/acats-4/tests/c4/c4a007a.tst
! 1c61fe192df4f7bf89c81bd93f979629  gcc/testsuite/ada/acats-4/tests/c4/c4a010a.ada
! db5b09d1af5f03cbfc83813c6cef98d9  gcc/testsuite/ada/acats-4/tests/c4/c4a010b.ada
! 8ea93dd812f5645ad034052c5e9c14bc  gcc/testsuite/ada/acats-4/tests/c4/c4a011a.ada
! d8a1f20f1b4a1339f232102f757a12c6  gcc/testsuite/ada/acats-4/tests/c4/c4a012b.ada
! df1956d8e1bdb8b421d8edda86514e73  gcc/testsuite/ada/acats-4/tests/c4/c4a013a.ada
! f95cf7fe1c6669b86824c685ca90c44f  gcc/testsuite/ada/acats-4/tests/c4/c4a014a.ada
! 04305b71fc4860700405904b070a802b  gcc/testsuite/ada/acats-4/tests/c5/c51004a.ada
! c6f0f59f33111f1bb049c5f25022c725  gcc/testsuite/ada/acats-4/tests/c5/c52005a.ada
! 4497fa9cc187eebee09f422eb12067f6  gcc/testsuite/ada/acats-4/tests/c5/c52005b.ada
! 31714495e63b10120b8239b0456549ee  gcc/testsuite/ada/acats-4/tests/c5/c52005c.ada
! c643f87a63f83ab7dedfa0b4647174c9  gcc/testsuite/ada/acats-4/tests/c5/c52005d.ada
! a717ed0d0e4578d9b1ba1e84a1312d88  gcc/testsuite/ada/acats-4/tests/c5/c52005e.ada
! e9e335b018c1995e8f516236efc80a20  gcc/testsuite/ada/acats-4/tests/c5/c52005f.ada
! c475aae75de9114facd3aaa775556697  gcc/testsuite/ada/acats-4/tests/c5/c52008a.ada
! 87cbbe1931b5cfdb29756f338e098ee1  gcc/testsuite/ada/acats-4/tests/c5/c52008b.ada
! 67bb5622435b51d6b7a862890b654771  gcc/testsuite/ada/acats-4/tests/c5/c52009a.ada
! 400c804c17dce5b2cbc92e00f53bdbf7  gcc/testsuite/ada/acats-4/tests/c5/c52009b.ada
! d656f6cd000039c412836d5baacbff52  gcc/testsuite/ada/acats-4/tests/c5/c52010a.ada
! 1f26091c9bf683f6970689d5d0980a81  gcc/testsuite/ada/acats-4/tests/c5/c52011a.ada
! bd17088998a5ebb4a8a3f1ae8ed0fb56  gcc/testsuite/ada/acats-4/tests/c5/c52011b.ada
! 4b2866ec2ef631d8e633f08a7aaf873c  gcc/testsuite/ada/acats-4/tests/c5/c52101a.ada
! d79452ecad6774f7462778af7f7ce5eb  gcc/testsuite/ada/acats-4/tests/c5/c52102a.ada
! c3ffbc3a8172219b7b11be58eb4ee73d  gcc/testsuite/ada/acats-4/tests/c5/c52102b.ada
! d8b031579b48e0bae598c821fc7f2799  gcc/testsuite/ada/acats-4/tests/c5/c52102c.ada
! 8545078e881db7a6a84e41583799ee5d  gcc/testsuite/ada/acats-4/tests/c5/c52102d.ada
! 348fad1e9e6e04b677fd7d942e3416af  gcc/testsuite/ada/acats-4/tests/c5/c52103a.ada
! 537e555773a4e758b8466c079c2023a1  gcc/testsuite/ada/acats-4/tests/c5/c52103b.ada
! c118c8520f99ad57e36a1e1ed0ab2549  gcc/testsuite/ada/acats-4/tests/c5/c52103c.ada
! 161ca114e3549ca32b6abc801f74633d  gcc/testsuite/ada/acats-4/tests/c5/c52103f.ada
! 553aa64efc629783fc32ef6b352ae6be  gcc/testsuite/ada/acats-4/tests/c5/c52103g.ada
! 29498cb969386c5b69bd6ba62c7be406  gcc/testsuite/ada/acats-4/tests/c5/c52103h.ada
! 8026673b1e67673c009f39e569ae1a3e  gcc/testsuite/ada/acats-4/tests/c5/c52103k.ada
! c6b31cf4833909c9d4dae839511863ec  gcc/testsuite/ada/acats-4/tests/c5/c52103l.ada
! 6843840acb3dee1ae11cf9365156daaa  gcc/testsuite/ada/acats-4/tests/c5/c52103m.ada
! 70a2f3db7206a779a035e915788f37f0  gcc/testsuite/ada/acats-4/tests/c5/c52103p.ada
! a28a2bdec6b574435427b9aeb1c74945  gcc/testsuite/ada/acats-4/tests/c5/c52103q.ada
! 7b9ecdaf00c3655bb24701195d08a83f  gcc/testsuite/ada/acats-4/tests/c5/c52103r.ada
! 0c814953f2bf8472a62eb44838f04363  gcc/testsuite/ada/acats-4/tests/c5/c52103x.ada
! e772fcfb1386e00244d4b143524cc196  gcc/testsuite/ada/acats-4/tests/c5/c52104a.ada
! 16ef5ba633cf0703eef0f4bc4e6a931e  gcc/testsuite/ada/acats-4/tests/c5/c52104b.ada
! 0d83ec342af202df515bd811d311775e  gcc/testsuite/ada/acats-4/tests/c5/c52104c.ada
! 63ba1297346e75dcba0a5bebb9fd7feb  gcc/testsuite/ada/acats-4/tests/c5/c52104f.ada
! 360c84a7d7a20d6426f39f47175e9e61  gcc/testsuite/ada/acats-4/tests/c5/c52104g.ada
! 8c2507e3ca68c72c1b2e6d6e118ec32b  gcc/testsuite/ada/acats-4/tests/c5/c52104h.ada
! 3eb7315199feb380e4633e0fa784d0dc  gcc/testsuite/ada/acats-4/tests/c5/c52104k.ada
! 1e9c8d887474d4edd8e8cef2ca34972f  gcc/testsuite/ada/acats-4/tests/c5/c52104l.ada
! 4cd7ce90121345b41e548625afd89238  gcc/testsuite/ada/acats-4/tests/c5/c52104m.ada
! bb14b1ee179559762fe853803c6f47a0  gcc/testsuite/ada/acats-4/tests/c5/c52104p.ada
! 11c63d2f8a8f5be641d543c723d95db6  gcc/testsuite/ada/acats-4/tests/c5/c52104q.ada
! 3e89a5e299b2f10a8bfdddda7e51ad94  gcc/testsuite/ada/acats-4/tests/c5/c52104r.ada
! cf3c9c7c07a47d92020285624997c09f  gcc/testsuite/ada/acats-4/tests/c5/c52104x.ada
! c937dcfea0e38e6a3b8af09de0efaf04  gcc/testsuite/ada/acats-4/tests/c5/c52104y.ada
! b2aa45debad3d8e7603216de3bca00fb  gcc/testsuite/ada/acats-4/tests/c5/c53007a.ada
! ff458115437146bc66c6f7135942dc7d  gcc/testsuite/ada/acats-4/tests/c5/c540001.a
! bfd64dd4867f66c56eb6d466f8a84af9  gcc/testsuite/ada/acats-4/tests/c5/c540002.a
! 46869d02196b0737ae882bebe573ab11  gcc/testsuite/ada/acats-4/tests/c5/c540003.a
! 798fc3cdc6929204af5e109c7b552b96  gcc/testsuite/ada/acats-4/tests/c5/c54a03a.ada
! 350e6e9e9f439b08c9984e18a29b6144  gcc/testsuite/ada/acats-4/tests/c5/c54a04a.ada
! 672e5fee1b44c051e35bd39f7cfdd7f6  gcc/testsuite/ada/acats-4/tests/c5/c54a07a.ada
! 55636ae11b1e87d2920da673ac54f8cf  gcc/testsuite/ada/acats-4/tests/c5/c54a13a.ada
! fadaa20972179cfa78055a5255aaf701  gcc/testsuite/ada/acats-4/tests/c5/c54a13b.ada
! 1f2ca9fde851497809ddf860f08ea8dd  gcc/testsuite/ada/acats-4/tests/c5/c54a13c.ada
! f02b8333b09eadfe396595d861e0c28e  gcc/testsuite/ada/acats-4/tests/c5/c54a13d.ada
! 37f2526490642267865f8a817c455655  gcc/testsuite/ada/acats-4/tests/c5/c54a22a.ada
! c4b7807f9faa1bb76d79507d98a0feb3  gcc/testsuite/ada/acats-4/tests/c5/c54a23a.ada
! 45d1b598e30b318d11d3cfa6a37cc6fa  gcc/testsuite/ada/acats-4/tests/c5/c54a24a.ada
! adeadf039e14eb8bc2b48ff5572bd812  gcc/testsuite/ada/acats-4/tests/c5/c54a24b.ada
! 7cf7b4d54a6bca23e102d02570e8d836  gcc/testsuite/ada/acats-4/tests/c5/c54a42a.ada
! 200024964c0cd6807dda9226ae982125  gcc/testsuite/ada/acats-4/tests/c5/c54a42b.ada
! b58d58ea8c08f008f3bb0a1f4e37600d  gcc/testsuite/ada/acats-4/tests/c5/c54a42c.ada
! 7afca27633e115e11ccc09450181d955  gcc/testsuite/ada/acats-4/tests/c5/c54a42d.ada
! 810d89d05b84beb31789b0ebd7aba86d  gcc/testsuite/ada/acats-4/tests/c5/c54a42e.ada
! 012f75628d8e37cbd1be10f8f4ba117f  gcc/testsuite/ada/acats-4/tests/c5/c54a42f.ada
! d45cbd6907b0f421c6aec9b981f052d6  gcc/testsuite/ada/acats-4/tests/c5/c54a42g.ada
! ddf7b3bf2917d68dc7237d88ccc0204c  gcc/testsuite/ada/acats-4/tests/c5/c550001.a
! 71494def43ae66bdb109444f10004a1d  gcc/testsuite/ada/acats-4/tests/c5/c552001.a
! aa5f4a4c3f179238c391eb13a8985b0a  gcc/testsuite/ada/acats-4/tests/c5/c552002.a
! 76027d0eb54a0a2b41680aa7315f2a93  gcc/testsuite/ada/acats-4/tests/c5/c552a01.a
! cec7859fa129b5647f80b83ab83d624a  gcc/testsuite/ada/acats-4/tests/c5/c552a02.a
! ef97a2623a512e16e0fda04f277b6ff2  gcc/testsuite/ada/acats-4/tests/c5/c55b03a.ada
! ad40c92edd66b18fad76286ec1b9c6ae  gcc/testsuite/ada/acats-4/tests/c5/c55b04a.ada
! aa1f7abf4fbb36f5120549a0305b7862  gcc/testsuite/ada/acats-4/tests/c5/c55b05a.ada
! 93af4cbae77af58c9e4c76145e3381b0  gcc/testsuite/ada/acats-4/tests/c5/c55b06a.ada
! 83fb65a1faa9605647ad3455e55fa273  gcc/testsuite/ada/acats-4/tests/c5/c55b06b.ada
! 1c3a3e590230416971b33336bec05137  gcc/testsuite/ada/acats-4/tests/c5/c55b07a.dep
! 297ac06b1460ecfad84e5ce426b452d5  gcc/testsuite/ada/acats-4/tests/c5/c55b07b.dep
! 9f79657a1fb3ec7ad658a79647c5949c  gcc/testsuite/ada/acats-4/tests/c5/c55b10a.ada
! 1364f5750f4c9a8395cf0b1ae42eee0b  gcc/testsuite/ada/acats-4/tests/c5/c55b11a.ada
! 20c657742ad353aedf983932ae3ad058  gcc/testsuite/ada/acats-4/tests/c5/c55b11b.ada
! dcbc66de120373907bc61655da9f5f72  gcc/testsuite/ada/acats-4/tests/c5/c55b15a.ada
! 46488465caae85e036ca25f7a3861ddb  gcc/testsuite/ada/acats-4/tests/c5/c55b16a.ada
! 59a61b3784b5cede84a98e874e989bf9  gcc/testsuite/ada/acats-4/tests/c5/c55c02a.ada
! a665c1df7fabf7499dd2fef8021e5735  gcc/testsuite/ada/acats-4/tests/c5/c55c02b.ada
! 9722acc7b86adb50f2132a53c9a9ba5f  gcc/testsuite/ada/acats-4/tests/c5/c56002a.ada
! 0d40a16731d63ec204e884f94b191598  gcc/testsuite/ada/acats-4/tests/c5/c57003a.ada
! 7bceaaa459e0581dd43947812fb6e226  gcc/testsuite/ada/acats-4/tests/c5/c57004a.ada
! 30ed2943b27da30ba5be8602f46f6e65  gcc/testsuite/ada/acats-4/tests/c5/c57004b.ada
! 8a811d9acc70a272fa09cbfe47fdbbc0  gcc/testsuite/ada/acats-4/tests/c5/c58004c.ada
! 17e55b043903edcc29571ab8bd8aa78c  gcc/testsuite/ada/acats-4/tests/c5/c58004d.ada
! 7807a279489151c0c870e2d8f12f4502  gcc/testsuite/ada/acats-4/tests/c5/c58004g.ada
! 1b5dcc2941f69ee8c74a24728bb90d67  gcc/testsuite/ada/acats-4/tests/c5/c58005a.ada
! 62354e1ba2b765af08aa33a5e09c47df  gcc/testsuite/ada/acats-4/tests/c5/c58005b.ada
! 9028a4a38fba5ee0a721a8918c7e46c8  gcc/testsuite/ada/acats-4/tests/c5/c58005h.ada
! fa480782be6698aa97970fcf14c2f19b  gcc/testsuite/ada/acats-4/tests/c5/c58006a.ada
! 156c239407b9c9b5abfd28b286d35734  gcc/testsuite/ada/acats-4/tests/c5/c58006b.ada
! 05e86bfca592c5c4d28a7ad45f8d8054  gcc/testsuite/ada/acats-4/tests/c5/c59002a.ada
! 70857f43256c7a44ec4b50f5aa1b4b0d  gcc/testsuite/ada/acats-4/tests/c5/c59002b.ada
! 8a43db8aaa6ff159f8de6d91d075a607  gcc/testsuite/ada/acats-4/tests/c5/c59002c.ada
! 22c213bb3f4fac53cfad7701e5a6591a  gcc/testsuite/ada/acats-4/tests/c6/c61008a.ada
! 5fb3b13780dfa407dfa99fcfa590913f  gcc/testsuite/ada/acats-4/tests/c6/c61009a.ada
! 25cf5d0e53424f3054a20393c002970e  gcc/testsuite/ada/acats-4/tests/c6/c61010a.ada
! d9fcff8a398f104841deae581c8799e2  gcc/testsuite/ada/acats-4/tests/c6/c611001.a
! 1c596eb923888eaca6fd79202f043dbd  gcc/testsuite/ada/acats-4/tests/c6/c611a01.a
! 4b14bcffa2dfc4faee34f8fad236bd20  gcc/testsuite/ada/acats-4/tests/c6/c611a020.a
! c5bc6a65126ac3f2e5b501d1a6dc5ef9  gcc/testsuite/ada/acats-4/tests/c6/c611a021.a
! 97b25c097aacb82949283d55609b80ae  gcc/testsuite/ada/acats-4/tests/c6/c611a022.am
! c8ef73caef0e44e548d5b2d0ef567f23  gcc/testsuite/ada/acats-4/tests/c6/c611a030.a
! 05d93264306e23ca555f1720f0ca6088  gcc/testsuite/ada/acats-4/tests/c6/c611a031.a
! 495d26df26f2a9f45a48f74119f88609  gcc/testsuite/ada/acats-4/tests/c6/c611a032.am
! 92eda3db33f6bda53a6969817b1b4515  gcc/testsuite/ada/acats-4/tests/c6/c611a040.a
! bf3f86b68f80669cda9d142f24c08dac  gcc/testsuite/ada/acats-4/tests/c6/c611a041.a
! d12af3ea24a7fd71045e091d6dc76b7a  gcc/testsuite/ada/acats-4/tests/c6/c611a042.a
! 41cd64822100c9e0e473db5f30b5597d  gcc/testsuite/ada/acats-4/tests/c6/c611a043.am
! 5249ac6535c2b1ff0c029514604966d6  gcc/testsuite/ada/acats-4/tests/c6/c611b010.a
! 7cb386d273bd28b23497fe970f2ba064  gcc/testsuite/ada/acats-4/tests/c6/c611b011.a
! bbfbc2539ecfe176545fbe3a2f6bdfbc  gcc/testsuite/ada/acats-4/tests/c6/c611b012.am
! 79c49487a2ca33921bd87ff7359df6e6  gcc/testsuite/ada/acats-4/tests/c6/c611b020.a
! 61cc00f004c712e52d74850dd8b567e5  gcc/testsuite/ada/acats-4/tests/c6/c611b021.a
! 9d034710430c0ebff2a139ef3a053d10  gcc/testsuite/ada/acats-4/tests/c6/c611b022.am
! cd32b83de0638d8709bf12b3a835f9b8  gcc/testsuite/ada/acats-4/tests/c6/c611b030.a
! 7ee45c5b986c04618e80d1439e94c4da  gcc/testsuite/ada/acats-4/tests/c6/c611b031.a
! e6339df34c2c667801bd4625770fe796  gcc/testsuite/ada/acats-4/tests/c6/c611b032.a
! 26829da84bc0132bd6e078850e752808  gcc/testsuite/ada/acats-4/tests/c6/c611b033.am
! fc4b87310c6618ffbf7d4df1f222a45f  gcc/testsuite/ada/acats-4/tests/c6/c620001.a
! 2a393ff1326482d8490f5be202d8483c  gcc/testsuite/ada/acats-4/tests/c6/c620002.a
! 97d97866837d419b1ddcfa6ccda2511e  gcc/testsuite/ada/acats-4/tests/c6/c62002a.ada
! 3e2cc6ba1c79eb1d9f3fe3bbb646cf6b  gcc/testsuite/ada/acats-4/tests/c6/c62003b.ada
! 624bc88129c0b954774c60019f5435c5  gcc/testsuite/ada/acats-4/tests/c6/c62004a.ada
! 31c5b507af85354e0db53a078e7c8933  gcc/testsuite/ada/acats-4/tests/c6/c62006a.ada
! e8a1274fb71dcf0b27d5375c78e8d1d3  gcc/testsuite/ada/acats-4/tests/c6/c631001.a
! 41a6d9efe5d22a0f96b7c4448831b133  gcc/testsuite/ada/acats-4/tests/c6/c640001.a
! 17e197839a109a15bfb4d3592d5bdff8  gcc/testsuite/ada/acats-4/tests/c6/c640002.a
! 67136569bb3a58c14f65e3abd9b96391  gcc/testsuite/ada/acats-4/tests/c6/c64002b.ada
! 298c0d717f1da2c324c78b6aafedfa91  gcc/testsuite/ada/acats-4/tests/c6/c64004g.ada
! 0a5ebe2531dcbec11f3d606df5534e5b  gcc/testsuite/ada/acats-4/tests/c6/c64005a.ada
! 1a7b4a32917f31d77deb5ad294e39f82  gcc/testsuite/ada/acats-4/tests/c6/c64005b.ada
! 292b4b0e6cf19da205f4d3a1caeee992  gcc/testsuite/ada/acats-4/tests/c6/c64005c.ada
! db80e980a183a6d0f7c9afd52fae0c87  gcc/testsuite/ada/acats-4/tests/c6/c64005d0.ada
! f480e72d2a8b3a22347018687fb9f190  gcc/testsuite/ada/acats-4/tests/c6/c64005da.ada
! 035da89aedf781e8b07eace791889088  gcc/testsuite/ada/acats-4/tests/c6/c64005db.ada
! 9af982279e39e967d04656170afef341  gcc/testsuite/ada/acats-4/tests/c6/c64005dc.ada
! 2f3c835897b61c5b02af1bef11a949d6  gcc/testsuite/ada/acats-4/tests/c6/c641001.a
! a6633ae19f4c94c7a696b51eb815aea5  gcc/testsuite/ada/acats-4/tests/c6/c641002.a
! 0ffeddd3b7a5f9395d73d4149990409f  gcc/testsuite/ada/acats-4/tests/c6/c641003.a
! f9894df16dafde8c37b5681a9a0b728f  gcc/testsuite/ada/acats-4/tests/c6/c64103b.ada
! 573a659bd2d30c3c8a3ee7f77390490c  gcc/testsuite/ada/acats-4/tests/c6/c64103c.ada
! e7242de3cddb62031ef1910e911942df  gcc/testsuite/ada/acats-4/tests/c6/c64103d.ada
! 6e2e6c719dcbb601e033a3a1528b6db5  gcc/testsuite/ada/acats-4/tests/c6/c64103e.ada
! aa17757d55d04a8ef672505933d46680  gcc/testsuite/ada/acats-4/tests/c6/c64103f.ada
! bbb85cc245f09eba3db627d88d52db68  gcc/testsuite/ada/acats-4/tests/c6/c64104a.ada
! d3f37083469fc62f2aeae2c00e979ad9  gcc/testsuite/ada/acats-4/tests/c6/c64104b.ada
! 00b5b6264d3df93a1481ca7dd0313957  gcc/testsuite/ada/acats-4/tests/c6/c64104c.ada
! 0d80f34c16a2ae02db45210c6b66eaa8  gcc/testsuite/ada/acats-4/tests/c6/c64104d.ada
! 5dc873b400a6675c734e431ac91f74db  gcc/testsuite/ada/acats-4/tests/c6/c64104e.ada
! 54921e31e5a30e388946a946c10c8954  gcc/testsuite/ada/acats-4/tests/c6/c64104f.ada
! b763fdc647a8b6c2e8ccdcc7b2e1556c  gcc/testsuite/ada/acats-4/tests/c6/c64104g.ada
! 0a7c01deaae4401d7fe1f7f78e4e6325  gcc/testsuite/ada/acats-4/tests/c6/c64104h.ada
! 39b3c50eb36b7e11b1d9e78a7b3f9132  gcc/testsuite/ada/acats-4/tests/c6/c64104i.ada
! a30f87a67e828d3791f26521921a8f81  gcc/testsuite/ada/acats-4/tests/c6/c64104j.ada
! 8906347f1c0f027d889a06f25fcc1831  gcc/testsuite/ada/acats-4/tests/c6/c64104k.ada
! 4cb01879b0f85af48c5474c558534e54  gcc/testsuite/ada/acats-4/tests/c6/c64104l.ada
! cd1d978bf7503e964f5c0293089096c1  gcc/testsuite/ada/acats-4/tests/c6/c64104m.ada
! 62990064fd13a84570c91f3d1f71338f  gcc/testsuite/ada/acats-4/tests/c6/c64104n.ada
! ff64768b090411d3f8232b7dc479db5f  gcc/testsuite/ada/acats-4/tests/c6/c64104o.ada
! c371cb358b8e763068dd4af101cd7f51  gcc/testsuite/ada/acats-4/tests/c6/c64105a.ada
! f1cfabbe7fa319f7a90669a5a1d88874  gcc/testsuite/ada/acats-4/tests/c6/c64105b.ada
! 484938df1d2ea23b4699185521d927ae  gcc/testsuite/ada/acats-4/tests/c6/c64105c.ada
! 98ba505c37a1fa4544aa7a16f86476d8  gcc/testsuite/ada/acats-4/tests/c6/c64105d.ada
! 7f5ef4e4117e3403c814c8b2d6248652  gcc/testsuite/ada/acats-4/tests/c6/c64106a.ada
! c719851b2aa8d7de278a61b4ae401e7f  gcc/testsuite/ada/acats-4/tests/c6/c64106b.ada
! 99b026e3c033b0bc70bbb34952c61a90  gcc/testsuite/ada/acats-4/tests/c6/c64106c.ada
! 1ff08389beb50526e6d5946f3ddfa0d2  gcc/testsuite/ada/acats-4/tests/c6/c64106d.ada
! 19103ed02e019b6f2490bd4285878194  gcc/testsuite/ada/acats-4/tests/c6/c64107a.ada
! 93d945e280814e3db9cdaa9a9be57e87  gcc/testsuite/ada/acats-4/tests/c6/c64108a.ada
! 39bf7a6fa5bcfb5ee8e52f5f07fafefc  gcc/testsuite/ada/acats-4/tests/c6/c64109a.ada
! 7a1023fda1950978c62798e5caff709c  gcc/testsuite/ada/acats-4/tests/c6/c64109b.ada
! 276b67fe008e97a4988487fc615e1f3c  gcc/testsuite/ada/acats-4/tests/c6/c64109c.ada
! 80192570a6b338162a9ef9bfc13a4dff  gcc/testsuite/ada/acats-4/tests/c6/c64109d.ada
! 4719b8ddae4538b59e04d96c932a95d9  gcc/testsuite/ada/acats-4/tests/c6/c64109e.ada
! ed4b4f3ef743bc7f8f4a6afe5886cae2  gcc/testsuite/ada/acats-4/tests/c6/c64109f.ada
! 8f7ab91cec27ffbad7b51252ef99b137  gcc/testsuite/ada/acats-4/tests/c6/c64109g.ada
! 2bb8cec80fd6bc3ed2495c9581ea2a9e  gcc/testsuite/ada/acats-4/tests/c6/c64109h.ada
! 495be9b835fa97670e1a579d72a3f96d  gcc/testsuite/ada/acats-4/tests/c6/c64109i.ada
! 547c93bc4be631648c9973120c282a89  gcc/testsuite/ada/acats-4/tests/c6/c64109j.ada
! 4da6b83416827b9d2d574334772ff2a3  gcc/testsuite/ada/acats-4/tests/c6/c64109k.ada
! 6217fe2218b5d9ecf085e1b730917030  gcc/testsuite/ada/acats-4/tests/c6/c64109l.ada
! dde2e62be923a3854e5f1667c4a78def  gcc/testsuite/ada/acats-4/tests/c6/c64201b.ada
! c3459cee62caf16a8d14f820e16c4f60  gcc/testsuite/ada/acats-4/tests/c6/c64201c.ada
! e589f5c8d3bb97575b245a37a5f2dffa  gcc/testsuite/ada/acats-4/tests/c6/c64202a.ada
! 249c4ba928b3c2a034f8beb44bc9dc87  gcc/testsuite/ada/acats-4/tests/c6/c650002.a
! 1daba8b521ac51502253586af8575c04  gcc/testsuite/ada/acats-4/tests/c6/c650003.a
! 25c48d1366d3ac13453832dcee471f3f  gcc/testsuite/ada/acats-4/tests/c6/c65003a.ada
! beca3ad5c25f888eed6dc6b1db750e33  gcc/testsuite/ada/acats-4/tests/c6/c65003b.ada
! 3d99b1b94c81e0ceb7c56da5b41ffa66  gcc/testsuite/ada/acats-4/tests/c6/c650a01.a
! 0d58812f7951d472279387e8af7bb060  gcc/testsuite/ada/acats-4/tests/c6/c650a02.a
! 4b2af928a9d86212f0ea8ebdbe7456ad  gcc/testsuite/ada/acats-4/tests/c6/c650b01.a
! 1f967f21efb027ccb899006385519718  gcc/testsuite/ada/acats-4/tests/c6/c650b02.a
! a04351077d59b3b3426dccecc6163eaa  gcc/testsuite/ada/acats-4/tests/c6/c650b03.a
! 1de5e1f96f9da1970a0b2697c045ec12  gcc/testsuite/ada/acats-4/tests/c6/c650b04.a
! eceb334eefb06549070d0660d7e209a2  gcc/testsuite/ada/acats-4/tests/c6/c651001.a
! 07bfe712b556edbc55e069cd7d966146  gcc/testsuite/ada/acats-4/tests/c6/c651002.a
! f9c43a72052149152ab5e663d5bf62ee  gcc/testsuite/ada/acats-4/tests/c6/c660001.a
! 4eca86193e279acda5aa647dab2bf5bf  gcc/testsuite/ada/acats-4/tests/c6/c66002a.ada
! 7cbfd161ceac490eb379a5c08eb1945c  gcc/testsuite/ada/acats-4/tests/c6/c66002c.ada
! 482c9214fae39fbcab58fcbae0b5b5ef  gcc/testsuite/ada/acats-4/tests/c6/c66002d.ada
! 7a93f84ee40f38fca4afb6cfd5e69a57  gcc/testsuite/ada/acats-4/tests/c6/c66002e.ada
! 2b60fab145676d717df13cdf9c7a70cb  gcc/testsuite/ada/acats-4/tests/c6/c66002f.ada
! ea770ca1e9d9fcb8b4460d5921747ef5  gcc/testsuite/ada/acats-4/tests/c6/c66002g.ada
! 8470fdb16485b4472bee0602f1f98734  gcc/testsuite/ada/acats-4/tests/c6/c67002a.ada
! 0e2fbb4deae7d888206b0ce77fc4fda5  gcc/testsuite/ada/acats-4/tests/c6/c67002b.ada
! 308d5f91802e93205222e8ca1f7def1e  gcc/testsuite/ada/acats-4/tests/c6/c67002c.ada
! 84e0adc30ed2874abaffa33f713cc51b  gcc/testsuite/ada/acats-4/tests/c6/c67002d.ada
! ddfdc630c5edd58e367ed9b034c039e7  gcc/testsuite/ada/acats-4/tests/c6/c67002e.ada
! 49b95c1cbdb6c703d2eba605f6f06c92  gcc/testsuite/ada/acats-4/tests/c6/c67003f.ada
! 213a9e52b5357a07997f1aa43ec82624  gcc/testsuite/ada/acats-4/tests/c6/c67005a.ada
! ddd7cdd9502a723b17b40bcb1df0e016  gcc/testsuite/ada/acats-4/tests/c6/c67005b.ada
! 20a99f6c582810cf18b39ab642f4024f  gcc/testsuite/ada/acats-4/tests/c6/c67005c.ada
! 8ea8c4445f5e72cc88e8dad14b66084e  gcc/testsuite/ada/acats-4/tests/c6/c67005d.ada
! 95dd8513b921be3378db70f22e9d180f  gcc/testsuite/ada/acats-4/tests/c6/c680001.a
! 69f93d5f57d1b7956ae380ff9f3e5f77  gcc/testsuite/ada/acats-4/tests/c7/c72001b.ada
! b6fa12bd9fd0f617b4eeded7550722c2  gcc/testsuite/ada/acats-4/tests/c7/c72002a.ada
! c70f104ca78b3298a442973676af108a  gcc/testsuite/ada/acats-4/tests/c7/c730001.a
! 7d2edfee282ba04ca7f25bef0f101057  gcc/testsuite/ada/acats-4/tests/c7/c730002.a
! 7822b69c5c1de14250eaad43da14736b  gcc/testsuite/ada/acats-4/tests/c7/c730003.a
! ced40d2c1dbfd9c72c43feedd4c9cefc  gcc/testsuite/ada/acats-4/tests/c7/c730004.a
! d3f7b50b0820bac4ce78abffb5e37744  gcc/testsuite/ada/acats-4/tests/c7/c73002a.ada
! c70763cb0718b44fa8658ee9ebb8c726  gcc/testsuite/ada/acats-4/tests/c7/c730a01.a
! 4ecce7babf24585f115e0d288f17e449  gcc/testsuite/ada/acats-4/tests/c7/c730a02.a
! 9c311ffdc62d1b99a3452b1e38d15e2e  gcc/testsuite/ada/acats-4/tests/c7/c731001.a
! a9056f350c3d0d76cc578591b3395f18  gcc/testsuite/ada/acats-4/tests/c7/c7320010.a
! 6cfee6075a2d53c0ad36a769e93b97cc  gcc/testsuite/ada/acats-4/tests/c7/c7320011.a
! f18b6c2d86e5f63f45c91a16a8a35567  gcc/testsuite/ada/acats-4/tests/c7/c7320012.am
! 09cfa2f7908d35770e884b3ccd4ac9ca  gcc/testsuite/ada/acats-4/tests/c7/c732002.a
! 23a21010d93114620fe76695089ae5c0  gcc/testsuite/ada/acats-4/tests/c7/c732a01.a
! 2ad8a7f7d7d446a951f8a27a7670193f  gcc/testsuite/ada/acats-4/tests/c7/c732a02.a
! ee24df5d8fa3626e4992eedf01a1b7af  gcc/testsuite/ada/acats-4/tests/c7/c732b01.a
! e26da98965834bfffdac83bc5c33005e  gcc/testsuite/ada/acats-4/tests/c7/c732b02.a
! aa466e85b039cc0712d3b4eac04cef8a  gcc/testsuite/ada/acats-4/tests/c7/c732c01.a
! be09078047844bd86eef86d5755ef273  gcc/testsuite/ada/acats-4/tests/c7/c74004a.ada
! a0a0a05e6225a07b7bd0f2c049f1dc37  gcc/testsuite/ada/acats-4/tests/c7/c74203a.ada
! a718857277037741ea3600c1aab95a3d  gcc/testsuite/ada/acats-4/tests/c7/c74206a.ada
! 0efca36cdb74fc57aec9e1de78e0324f  gcc/testsuite/ada/acats-4/tests/c7/c74207b.ada
! 7ceb0d1778d1a1bae9687bebd7aad9e3  gcc/testsuite/ada/acats-4/tests/c7/c74208a.ada
! bf7859fde348fa96735368f14e0a3e25  gcc/testsuite/ada/acats-4/tests/c7/c74208b.ada
! 7d504e824db220a636160024b4e963d6  gcc/testsuite/ada/acats-4/tests/c7/c74209a.ada
! 3f31b8eb73e78f20cdcf118aa7d0047c  gcc/testsuite/ada/acats-4/tests/c7/c74210a.ada
! 442ab4135e3f1fdfffacf000f7b4bda3  gcc/testsuite/ada/acats-4/tests/c7/c74211a.ada
! 49650c69957d01ffb396db79a35589c4  gcc/testsuite/ada/acats-4/tests/c7/c74211b.ada
! 30155693ce7b3f29189da859d313eb7d  gcc/testsuite/ada/acats-4/tests/c7/c74302a.ada
! 73469fa8506968a2026de265efd8a8f5  gcc/testsuite/ada/acats-4/tests/c7/c74302b.ada
! b559e9bf4e98700fb810e406c30a34b7  gcc/testsuite/ada/acats-4/tests/c7/c74305a.ada
! f1b9307b4d428cf0d10bc48805ffb0f3  gcc/testsuite/ada/acats-4/tests/c7/c74305b.ada
! 4d9094e9183691ac1e749b6abac166d7  gcc/testsuite/ada/acats-4/tests/c7/c74306a.ada
! d62a4df3fab829d5694cbf9f5cc4cb8e  gcc/testsuite/ada/acats-4/tests/c7/c74307a.ada
! 933ca49dcfb9ad8fc25ea9a434984d05  gcc/testsuite/ada/acats-4/tests/c7/c74401d.ada
! 502d8871fd7e5d6399f7536874735597  gcc/testsuite/ada/acats-4/tests/c7/c74401e.ada
! 2514504f60fcea97d8914fabcb5654cf  gcc/testsuite/ada/acats-4/tests/c7/c74401k.ada
! 3ca8e77b02dbd7f9e9104dd0fa6de35b  gcc/testsuite/ada/acats-4/tests/c7/c74401q.ada
! d30f33bfdaf9612ea55c7659c3b5aeb6  gcc/testsuite/ada/acats-4/tests/c7/c74402a.ada
! cf79bb4fcbdf7ec1cd795607eef8bc10  gcc/testsuite/ada/acats-4/tests/c7/c74402b.ada
! f6ece8469b7d90aef496ac665f895003  gcc/testsuite/ada/acats-4/tests/c7/c74406a.ada
! cce5e695d18f537ec2a8d6c26cfc5b0d  gcc/testsuite/ada/acats-4/tests/c7/c74407b.ada
! 316be518a848dd0954d80de977e40c5b  gcc/testsuite/ada/acats-4/tests/c7/c74409b.ada
! c751f318a2fe16dadb0c62221c726b70  gcc/testsuite/ada/acats-4/tests/c7/c760001.a
! f250c0eea5cbe1e05ed28f0a940949ed  gcc/testsuite/ada/acats-4/tests/c7/c760002.a
! c12d4d7698c111ee3a094c0c2d53522a  gcc/testsuite/ada/acats-4/tests/c7/c760007.a
! 767d3e26a992541aa6191923e040a107  gcc/testsuite/ada/acats-4/tests/c7/c760009.a
! 264f06f0190602b655e5f7fefb6822b8  gcc/testsuite/ada/acats-4/tests/c7/c760010.a
! 31eaca7f3a33de78c9eaa1a92109c6ad  gcc/testsuite/ada/acats-4/tests/c7/c760011.a
! 522805071c7c096b6eabcd72cf833d9a  gcc/testsuite/ada/acats-4/tests/c7/c760012.a
! a4f8e8b6876d4b862928b00edca5f5d9  gcc/testsuite/ada/acats-4/tests/c7/c760013.a
! 697b41e01dcf464180756bf8fa061c6e  gcc/testsuite/ada/acats-4/tests/c7/c760014.a
! a37ffbe46b838c3dc3e654c0d3ed95a5  gcc/testsuite/ada/acats-4/tests/c7/c760015.a
! 8441053e30427f1a4e9c4016ec935afc  gcc/testsuite/ada/acats-4/tests/c7/c760a01.a
! 6d1036753e3e9e32f4e5aa75ec3afc72  gcc/testsuite/ada/acats-4/tests/c7/c760a02.a
! 3bdb3e1fa871cdbef2d5ffe862d8dce8  gcc/testsuite/ada/acats-4/tests/c7/c760a03.a
! 45d67d0e3319e953b892c7d115460ecd  gcc/testsuite/ada/acats-4/tests/c7/c761001.a
! d0ef4cf494c0c2ec27f3abccd4d36a6f  gcc/testsuite/ada/acats-4/tests/c7/c761002.a
! d0ecfbaed2a882166d23beefe5f4e191  gcc/testsuite/ada/acats-4/tests/c7/c761003.a
! 553e4393e53175606097eb8c9b415d22  gcc/testsuite/ada/acats-4/tests/c7/c761004.a
! 4a7c5e1c13695ae75ad3a4df49a55b63  gcc/testsuite/ada/acats-4/tests/c7/c761005.a
! d4f8faae1d5f7970e56d7a30c10a99c7  gcc/testsuite/ada/acats-4/tests/c7/c761006.a
! a8b974a47ec1f7a4a5fc2ef06975f069  gcc/testsuite/ada/acats-4/tests/c7/c761007.a
! 6ca84026fc9a5682d2db1f346eb920cd  gcc/testsuite/ada/acats-4/tests/c7/c761010.a
! 8f26af4ffb9bc7a2e15aee7b1c0c2346  gcc/testsuite/ada/acats-4/tests/c7/c761011.a
! d80406039e2bebf54191eec198c10721  gcc/testsuite/ada/acats-4/tests/c7/c761012.a
! 7eeee1f9268711339cf1323b9bd1841e  gcc/testsuite/ada/acats-4/tests/c7/c761013.a
! f7baee35e01e625d64802c987ddc4c0d  gcc/testsuite/ada/acats-4/tests/c8/c83007a.ada
! 9f1228dfaacf209725a2e8d706128a4c  gcc/testsuite/ada/acats-4/tests/c8/c83012d.ada
! a2e774207100bd5fbb0289bb8ba9f031  gcc/testsuite/ada/acats-4/tests/c8/c83022a.ada
! c214085c4cbff44807225c3aee9be7db  gcc/testsuite/ada/acats-4/tests/c8/c83022g0.ada
! 7aeac4b952eedc1419039fc50c66c732  gcc/testsuite/ada/acats-4/tests/c8/c83022g1.ada
! fedc05f63c2cd512653891054d7d5dad  gcc/testsuite/ada/acats-4/tests/c8/c83023a.ada
! 94cc28ec1a7a9d2aedbab6f2101d2215  gcc/testsuite/ada/acats-4/tests/c8/c83024a.ada
! cd79a99f6b5ce8030462ce917a77a33c  gcc/testsuite/ada/acats-4/tests/c8/c83024e0.ada
! b03af2deceb02b0227f887041379f641  gcc/testsuite/ada/acats-4/tests/c8/c83024e1.ada
! d7544d2786bfc552a30612041df95429  gcc/testsuite/ada/acats-4/tests/c8/c83025a.ada
! 881d6130cfcbd30f4a739889d50396da  gcc/testsuite/ada/acats-4/tests/c8/c83025c.ada
! f35a334aaf4110ea4446247ad6a098f4  gcc/testsuite/ada/acats-4/tests/c8/c83027a.ada
! 37c08965e5d871d3a35ff35f67e713d8  gcc/testsuite/ada/acats-4/tests/c8/c83027c.ada
! 32c440ad7d9ac139bbd4251c4fc10cc4  gcc/testsuite/ada/acats-4/tests/c8/c83028a.ada
! 284725a771243ec2eb877c3bb20240af  gcc/testsuite/ada/acats-4/tests/c8/c83029a.ada
! 0d4d1e41b05e2587d04c09930491aecd  gcc/testsuite/ada/acats-4/tests/c8/c83030a.ada
! 736b92fd2fdec116e1e9a28e04fe105a  gcc/testsuite/ada/acats-4/tests/c8/c83030c.ada
! 8e7b338ab4662f4c219903b9017a3252  gcc/testsuite/ada/acats-4/tests/c8/c83031a.ada
! 8799fc3b7ae4481b9d03ab137000f62e  gcc/testsuite/ada/acats-4/tests/c8/c83031c.ada
! 4c6a471797dc4320ecdae183b931f1e8  gcc/testsuite/ada/acats-4/tests/c8/c83031e.ada
! a6758128580028e639e0a59521425cf0  gcc/testsuite/ada/acats-4/tests/c8/c83032a.ada
! 72628676c750edbd1f98131cb5571a2f  gcc/testsuite/ada/acats-4/tests/c8/c83033a.ada
! 9431427fb4aa9f6e7d3a4375ffaecc6c  gcc/testsuite/ada/acats-4/tests/c8/c83051a.ada
! e95f7524078ffe1a55c455817320ee94  gcc/testsuite/ada/acats-4/tests/c8/c831001.a
! f2fa97381bbbbba9176ccf7627ee5fd8  gcc/testsuite/ada/acats-4/tests/c8/c83b02a.ada
! 03bdf2b2546804982387b339182818e7  gcc/testsuite/ada/acats-4/tests/c8/c83b02b.ada
! 40875d29e98f8a554f57a2cbba7d7b3e  gcc/testsuite/ada/acats-4/tests/c8/c83e02a.ada
! 14cf40af4f9b58380697256b2d355287  gcc/testsuite/ada/acats-4/tests/c8/c83e02b.ada
! 200ef6a026cfe27a93be29d96cf214b8  gcc/testsuite/ada/acats-4/tests/c8/c83e03a.ada
! ad5525a2d740a4d893fcd637c63649fd  gcc/testsuite/ada/acats-4/tests/c8/c83f01a.ada
! e565198c8053dc81f1f530025b0d226b  gcc/testsuite/ada/acats-4/tests/c8/c83f01b.ada
! 6d7321886000c19fde08f583e57a7e33  gcc/testsuite/ada/acats-4/tests/c8/c83f01c0.ada
! b0f89c8df04b680d3d4603f896b4d648  gcc/testsuite/ada/acats-4/tests/c8/c83f01c1.ada
! faebab8928acaa2b8fbf803db9d9d76e  gcc/testsuite/ada/acats-4/tests/c8/c83f01c2.ada
! 76e6504b3bae53ff3ed9396d5c7812a4  gcc/testsuite/ada/acats-4/tests/c8/c83f01d0.ada
! 64bf8f6ff542539524d925d1e5a9cfe4  gcc/testsuite/ada/acats-4/tests/c8/c83f01d1.ada
! 8a46931f49572809caa7fa3dacf72336  gcc/testsuite/ada/acats-4/tests/c8/c83f03a.ada
! 12f92031807ee7b6703ecca17d07c9ad  gcc/testsuite/ada/acats-4/tests/c8/c83f03b.ada
! 2f7e657595b99ed4902cb3ed7aae770f  gcc/testsuite/ada/acats-4/tests/c8/c83f03c0.ada
! b07043910b1b62a4647fb0958270ab2e  gcc/testsuite/ada/acats-4/tests/c8/c83f03c1.ada
! 2a8ed5812b7eba602e55bc4cba957511  gcc/testsuite/ada/acats-4/tests/c8/c83f03c2.ada
! d29900c193533f0d919bf89d2bc8e119  gcc/testsuite/ada/acats-4/tests/c8/c83f03d0.ada
! a81483935d1a82f02d88010465d1f944  gcc/testsuite/ada/acats-4/tests/c8/c83f03d1.ada
! 29bd80df35d00ef1384ad39409db64f6  gcc/testsuite/ada/acats-4/tests/c8/c840001.a
! b4c025ffcff8bdca75ec3121d2fb4ff7  gcc/testsuite/ada/acats-4/tests/c8/c840002.a
! af9ade351c5ef6a9d951a20d59988380  gcc/testsuite/ada/acats-4/tests/c8/c84002a.ada
! 66d1e4c5ecfdc60f73f72122f13591ac  gcc/testsuite/ada/acats-4/tests/c8/c84005a.ada
! aa6a6f80ff85e69f2df4df4eede3b31f  gcc/testsuite/ada/acats-4/tests/c8/c84008a.ada
! 09c80b3d29e25029f03088427d21bbcc  gcc/testsuite/ada/acats-4/tests/c8/c84009a.ada
! d7b3488b66a68bdb7c8d505ca3419ac7  gcc/testsuite/ada/acats-4/tests/c8/c85004b.ada
! 3e0403d2aa151370c2f61352a9f76996  gcc/testsuite/ada/acats-4/tests/c8/c85005a.ada
! 37c7fd0ed7d0bc32d740e9c53a118651  gcc/testsuite/ada/acats-4/tests/c8/c85005b.ada
! 1fc662c5706ae3323d79577161aa2b7c  gcc/testsuite/ada/acats-4/tests/c8/c85005c.ada
! c7c4cd7450d2b2ce6c9f804ab189b71e  gcc/testsuite/ada/acats-4/tests/c8/c85005d.ada
! 39a019807c800fea7de5ee674f51f3ac  gcc/testsuite/ada/acats-4/tests/c8/c85005e.ada
! 8d1e127599b478a2675315047b0c481f  gcc/testsuite/ada/acats-4/tests/c8/c85005f.ada
! 25bfcee3ce65c19279f2e6ae6c7dbfba  gcc/testsuite/ada/acats-4/tests/c8/c85005g.ada
! 32fef31a23447e83e62b591ccf214749  gcc/testsuite/ada/acats-4/tests/c8/c85006a.ada
! 52a38ccdb969e742c721e8c6b91f9aee  gcc/testsuite/ada/acats-4/tests/c8/c85006b.ada
! b8b2355c13723ce1e608404a697d37f1  gcc/testsuite/ada/acats-4/tests/c8/c85006c.ada
! f9f754296bb969ded99acf18e0d0cc57  gcc/testsuite/ada/acats-4/tests/c8/c85006d.ada
! 13a5f5c38fb9c62ade83208e0c68d79e  gcc/testsuite/ada/acats-4/tests/c8/c85006e.ada
! 338359196a7f9ec95687b438473fe4b5  gcc/testsuite/ada/acats-4/tests/c8/c85006f.ada
! 2009399861eb5a59e17598709aab1ac2  gcc/testsuite/ada/acats-4/tests/c8/c85006g.ada
! 81de8bcdf2627a437c3e3b841e5fad1d  gcc/testsuite/ada/acats-4/tests/c8/c85007a.ada
! e357cc223f207047a721ac8e8e18f162  gcc/testsuite/ada/acats-4/tests/c8/c85007e.ada
! 418333040a3a7bff04eadeddd0acb110  gcc/testsuite/ada/acats-4/tests/c8/c85009a.ada
! bd6854facde59a298fdff160083dd037  gcc/testsuite/ada/acats-4/tests/c8/c85011a.ada
! 406a5955e9d949bdd8248e3006f85389  gcc/testsuite/ada/acats-4/tests/c8/c85013a.ada
! 847c4a7e1cbd34854fd30fd728898157  gcc/testsuite/ada/acats-4/tests/c8/c85014a.ada
! b69434a64d3c484bdb87a84269e9963f  gcc/testsuite/ada/acats-4/tests/c8/c85014b.ada
! 2f3c5aa4857fe502b1c9c11e032c6935  gcc/testsuite/ada/acats-4/tests/c8/c85014c.ada
! e1660d68b127c37ec14d42ba45a3b445  gcc/testsuite/ada/acats-4/tests/c8/c85017a.ada
! 1cad26f34f7ad9a5f58bf9e88765aca9  gcc/testsuite/ada/acats-4/tests/c8/c85018a.ada
! 9c45b00830d440af2ac60b55d681400a  gcc/testsuite/ada/acats-4/tests/c8/c85018b.ada
! 8d0a794043808c838cf5adba232cacac  gcc/testsuite/ada/acats-4/tests/c8/c85019a.ada
! 5af58d5fd0b267936c4997ebc76c592f  gcc/testsuite/ada/acats-4/tests/c8/c851001.a
! a2bad21f51f5945720e9692701781872  gcc/testsuite/ada/acats-4/tests/c8/c851002.a
! 9b74243be116d7855c67ebe955d78830  gcc/testsuite/ada/acats-4/tests/c8/c854001.a
! 825c879ca9c376275c17511ad5e00304  gcc/testsuite/ada/acats-4/tests/c8/c854002.a
! d68292de38c7b9e049e07075bbb8e3be  gcc/testsuite/ada/acats-4/tests/c8/c854003.a
! 1f1f18804e6fcf9c4e2fbec6349d04b2  gcc/testsuite/ada/acats-4/tests/c8/c86003a.ada
! e2f34ff3aa901cdf44aa714bfc307b17  gcc/testsuite/ada/acats-4/tests/c8/c86004a.ada
! d4f2cc5c80e276eb1480de6a342d8b63  gcc/testsuite/ada/acats-4/tests/c8/c86004b0.ada
! 50f93d108a0bf0919eb0ba1f6e65d7f0  gcc/testsuite/ada/acats-4/tests/c8/c86004b1.ada
! 6c2d0d9c9429d88e2c6672c71366873c  gcc/testsuite/ada/acats-4/tests/c8/c86004b2.ada
! 7f6e918b2ef0b5adc4139d9b912bc081  gcc/testsuite/ada/acats-4/tests/c8/c86004c0.ada
! a2305c116ad2dac3912371b71c441b61  gcc/testsuite/ada/acats-4/tests/c8/c86004c1.ada
! c7b7606151d38f39564979699b168c79  gcc/testsuite/ada/acats-4/tests/c8/c86004c2.ada
! 0766251158ffbc052bc7ec6041412761  gcc/testsuite/ada/acats-4/tests/c8/c86006i.ada
! 69ab336267b976906702c2d0bc1c1e29  gcc/testsuite/ada/acats-4/tests/c8/c86007a.ada
! 0ac058a1ece69aa243cd82dada40bb30  gcc/testsuite/ada/acats-4/tests/c8/c87a05a.ada
! fff71eeb0c0e9f16ee678756ea7588a4  gcc/testsuite/ada/acats-4/tests/c8/c87a05b.ada
! 2fe0ea4d16046c334c399aafeddc01a8  gcc/testsuite/ada/acats-4/tests/c8/c87b02a.ada
! fcd21b497cf853422b084ed7935381d4  gcc/testsuite/ada/acats-4/tests/c8/c87b02b.ada
! c0b66a348c2ee10edc5467a8eb009d09  gcc/testsuite/ada/acats-4/tests/c8/c87b03a.ada
! adac4007a7fd6b1ee9f1f48c55244d47  gcc/testsuite/ada/acats-4/tests/c8/c87b04a.ada
! 18ccfb1a0d973da4e1686b0c98dfa1a9  gcc/testsuite/ada/acats-4/tests/c8/c87b04b.ada
! 43cf46342879eb1ffe2f7c8971af6a38  gcc/testsuite/ada/acats-4/tests/c8/c87b04c.ada
! d0144de0520c60120721d7b571e3985d  gcc/testsuite/ada/acats-4/tests/c8/c87b05a.ada
! 2b781472cd1369f9eb86a64cd5e4a9d9  gcc/testsuite/ada/acats-4/tests/c8/c87b06a.ada
! c22a9ce42feb05505f797ccc539112bd  gcc/testsuite/ada/acats-4/tests/c8/c87b07a.ada
! 5cb748b4c292f38beadd4b397c9748ef  gcc/testsuite/ada/acats-4/tests/c8/c87b07b.ada
! cd570d3799a0f4ceeabe1513e0c1c809  gcc/testsuite/ada/acats-4/tests/c8/c87b07c.ada
! 94b970485847bd2d888e33a9e0bbeb1c  gcc/testsuite/ada/acats-4/tests/c8/c87b07d.ada
! 4a11dd4cf1ef59a68c9760ade0024c31  gcc/testsuite/ada/acats-4/tests/c8/c87b07e.ada
! e031b7e0f562bef1da7d73abf8e7203d  gcc/testsuite/ada/acats-4/tests/c8/c87b08a.ada
! ddc6096fff2cbf60aa3fe948c1c569c3  gcc/testsuite/ada/acats-4/tests/c8/c87b09a.ada
! 427f1fe54f5946c6611f5abe3d23e213  gcc/testsuite/ada/acats-4/tests/c8/c87b09c.ada
! 4f2d8b50e737f09ccf25f199443471c8  gcc/testsuite/ada/acats-4/tests/c8/c87b10a.ada
! b3ddde623ffa0748cae187472ed3c706  gcc/testsuite/ada/acats-4/tests/c8/c87b11a.ada
! 34f04500698b844ee3bbe19fcec6df7b  gcc/testsuite/ada/acats-4/tests/c8/c87b11b.ada
! 42486daf86c543499fe18e7700c2a2c5  gcc/testsuite/ada/acats-4/tests/c8/c87b13a.ada
! 343104f8b07cc3cdfea584fb91d7dad0  gcc/testsuite/ada/acats-4/tests/c8/c87b14a.ada
! 3129f63056e924075c9eef5fb92ff6be  gcc/testsuite/ada/acats-4/tests/c8/c87b14b.ada
! 9fec6d81e8cfe9a1be8263f1fcff0c24  gcc/testsuite/ada/acats-4/tests/c8/c87b14c.ada
! c9a24774d85aaa6a9ad204d88ef33dc3  gcc/testsuite/ada/acats-4/tests/c8/c87b14d.ada
! 75444b8bc412150144d6500a1c98caa1  gcc/testsuite/ada/acats-4/tests/c8/c87b15a.ada
! b02c9f3d290904a7b941ba27ad5b8cbe  gcc/testsuite/ada/acats-4/tests/c8/c87b16a.ada
! 352fe9e9dcbad212440a7cb09e0f5a22  gcc/testsuite/ada/acats-4/tests/c8/c87b17a.ada
! da9c835dde5437b7c6fd41430e0523c7  gcc/testsuite/ada/acats-4/tests/c8/c87b18a.ada
! 6233d050a9dc22ef89142ebf8f28ccf0  gcc/testsuite/ada/acats-4/tests/c8/c87b18b.ada
! 8d538ac45635004402030cb4640caa57  gcc/testsuite/ada/acats-4/tests/c8/c87b19a.ada
! 2095765cd4def145a48bc901ac6dbde1  gcc/testsuite/ada/acats-4/tests/c8/c87b23a.ada
! 67d87906e113b008e98391cc2776a960  gcc/testsuite/ada/acats-4/tests/c8/c87b24a.ada
! fd73894f92a9b3a013e87ea2b44c1ee4  gcc/testsuite/ada/acats-4/tests/c8/c87b24b.ada
! 3477f0a964a425447d80f280e7b45bf2  gcc/testsuite/ada/acats-4/tests/c8/c87b26b.ada
! b14d1be798ca4f79c28b996d1e8a7113  gcc/testsuite/ada/acats-4/tests/c8/c87b27a.ada
! 52b1e1223a0044bd348db0fcb6d79d6b  gcc/testsuite/ada/acats-4/tests/c8/c87b28a.ada
! a6a5c9403ac6bdbdb2e55d6a25b9f5ed  gcc/testsuite/ada/acats-4/tests/c8/c87b29a.ada
! b151ba31fb04091b8702bb9da4a0a2fb  gcc/testsuite/ada/acats-4/tests/c8/c87b30a.ada
! baa7d485e6d766db9246c9606ba3a078  gcc/testsuite/ada/acats-4/tests/c8/c87b31a.ada
! 78fd2d4c2c4821cfbbf402d3b842e2cc  gcc/testsuite/ada/acats-4/tests/c8/c87b32a.ada
! 833d7f92c1dba9641ebcb3157ab5d24e  gcc/testsuite/ada/acats-4/tests/c8/c87b33a.ada
! 36465d48d4bab661c6218ee48524b608  gcc/testsuite/ada/acats-4/tests/c8/c87b34a.ada
! 561be38a9a0275b65d22f782b23c1f8c  gcc/testsuite/ada/acats-4/tests/c8/c87b34b.ada
! 1239485e0f456d72c43f397227762788  gcc/testsuite/ada/acats-4/tests/c8/c87b34c.ada
! 041b7b6888183bbf71655055555c1b87  gcc/testsuite/ada/acats-4/tests/c8/c87b35c.ada
! ba86ee0565261018e59b1b01d9d63a78  gcc/testsuite/ada/acats-4/tests/c8/c87b38a.ada
! bee8f2cc8e7a407c5d1e665cafb324a0  gcc/testsuite/ada/acats-4/tests/c8/c87b39a.ada
! 0149e0004f1fac32a6d0483505f00a77  gcc/testsuite/ada/acats-4/tests/c8/c87b40a.ada
! 598db3dd5aa31e1541f0b3c4292552c9  gcc/testsuite/ada/acats-4/tests/c8/c87b41a.ada
! 35740da1bae3e32ad7726fef598ebe03  gcc/testsuite/ada/acats-4/tests/c8/c87b42a.ada
! c699f8cb33019178eb66bb9b9887fc34  gcc/testsuite/ada/acats-4/tests/c8/c87b43a.ada
! 284fc10b4e768deed27f6efe5ba660f3  gcc/testsuite/ada/acats-4/tests/c8/c87b44a.ada
! d1cacfe3528a0559f8572409bdad7960  gcc/testsuite/ada/acats-4/tests/c8/c87b45a.ada
! 615100562dae434f6237d50c2ce7a859  gcc/testsuite/ada/acats-4/tests/c8/c87b45c.ada
! ee9fa629414e1ff85ab5a901880627c6  gcc/testsuite/ada/acats-4/tests/c8/c87b47a.ada
! f01c1e9a040d9bf9e82d5b0bd8308ac2  gcc/testsuite/ada/acats-4/tests/c8/c87b48a.ada
! 5f12e71520b411de1dcbfb59ca609af5  gcc/testsuite/ada/acats-4/tests/c8/c87b48b.ada
! 7accae5d8bcb7a6376aeb4769bbc3521  gcc/testsuite/ada/acats-4/tests/c8/c87b50a.ada
! 49e93ad6fd90f250357c964cfe65bbb4  gcc/testsuite/ada/acats-4/tests/c8/c87b54a.ada
! 6b87b80aa7e4be221c3a6fcc95a098e2  gcc/testsuite/ada/acats-4/tests/c8/c87b57a.ada
! e29430c61d05400015468771710caebe  gcc/testsuite/ada/acats-4/tests/c8/c87b62a.ada
! d69bb1d50cac4c6397e7ef6ac85cec47  gcc/testsuite/ada/acats-4/tests/c8/c87b62b.ada
! b2cd3c65ecd1e96a0c0812252c334c48  gcc/testsuite/ada/acats-4/tests/c8/c87b62c.ada
! f48458b6ea766af192adb8d401f368fc  gcc/testsuite/ada/acats-4/tests/c8/c87b62d.tst
! 91802a6e8fc88eaea2b276279ef7c541  gcc/testsuite/ada/acats-4/tests/c9/c910001.a
! 92f4e59378989d90d762b2fdfa367275  gcc/testsuite/ada/acats-4/tests/c9/c910002.a
! 1da7e86ddeb55b8594570c708479d7da  gcc/testsuite/ada/acats-4/tests/c9/c910003.a
! 3e61dff323d06b22fad060cfc4e6bbe3  gcc/testsuite/ada/acats-4/tests/c9/c91004b.ada
! 69469a828c0050868f258475fc71f55d  gcc/testsuite/ada/acats-4/tests/c9/c91004c.ada
! 0ff6798e735543f9ea0902dcd3d33bd4  gcc/testsuite/ada/acats-4/tests/c9/c91006a.ada
! 7f1ab85728a76023b65305acb8480064  gcc/testsuite/ada/acats-4/tests/c9/c91007a.ada
! 22adff9387682c0ca8610830e345b92d  gcc/testsuite/ada/acats-4/tests/c9/c920001.a
! b04d09f1322f0d92c98d41398964503d  gcc/testsuite/ada/acats-4/tests/c9/c92002a.ada
! 5cb78880eadfd9eac647aba39fa528da  gcc/testsuite/ada/acats-4/tests/c9/c92003a.ada
! bfa0af83fa76f2092a243ddded4670d8  gcc/testsuite/ada/acats-4/tests/c9/c92005a.ada
! 379c27e94764b3b61fffdc4a6886f267  gcc/testsuite/ada/acats-4/tests/c9/c92005b.ada
! a47a031badac4df0d97db8bef1c3bc41  gcc/testsuite/ada/acats-4/tests/c9/c92006a.ada
! e4aee3e6761bfd67eaa5d1bd1ef57470  gcc/testsuite/ada/acats-4/tests/c9/c930001.a
! d21857231e61275a32c743ac514d1bc5  gcc/testsuite/ada/acats-4/tests/c9/c93001a.ada
! 493236f457ba46ba4fee16d542742d6c  gcc/testsuite/ada/acats-4/tests/c9/c93002a.ada
! 58f568faf270170c72b48115224a9ea8  gcc/testsuite/ada/acats-4/tests/c9/c93003a.ada
! 7612773970dfbe9066b04bb3ef16a233  gcc/testsuite/ada/acats-4/tests/c9/c93004a.ada
! ba12024ce449c8f19c903d5b83a7772c  gcc/testsuite/ada/acats-4/tests/c9/c93004b.ada
! 84f08b2297ca6e587b20b46ac2f4a739  gcc/testsuite/ada/acats-4/tests/c9/c93004c.ada
! e206bbe8f5a43a6b351e76ac75ac54bf  gcc/testsuite/ada/acats-4/tests/c9/c93004d.ada
! 00ac7aaad0308e432bf16c8682817a14  gcc/testsuite/ada/acats-4/tests/c9/c93004f.ada
! 08c88f164d59d4eab6aca557a4a64946  gcc/testsuite/ada/acats-4/tests/c9/c93005a.ada
! 8e317f80e3b0b4e3561b4aae157d6049  gcc/testsuite/ada/acats-4/tests/c9/c93005b.ada
! 8eb0f9f63c9ab470b543adb3c28caade  gcc/testsuite/ada/acats-4/tests/c9/c93005c.ada
! ccfed501a2a43dc4278db60a237ef173  gcc/testsuite/ada/acats-4/tests/c9/c93005d.ada
! 6da2e602ea719b27a9fadd13cf58a0ee  gcc/testsuite/ada/acats-4/tests/c9/c93005e.ada
! 5a28c2b6ebeaf58c4051285536f97455  gcc/testsuite/ada/acats-4/tests/c9/c93005f.ada
! 8e1ce84492239de8f44d01e7bbab2ec7  gcc/testsuite/ada/acats-4/tests/c9/c93005g.ada
! e0389f04b32525410edb0e1764eb2cae  gcc/testsuite/ada/acats-4/tests/c9/c93005h.ada
! ae1dfb1e47c089aba0b249b5d1795138  gcc/testsuite/ada/acats-4/tests/c9/c93006a.ada
! fe32d2d556faa4d361e61f9063f9d19b  gcc/testsuite/ada/acats-4/tests/c9/c93007a.ada
! 509a386487b4fdf7b8626c27ec59057a  gcc/testsuite/ada/acats-4/tests/c9/c93008a.ada
! dc50dccfb34abb8364f8236474654aef  gcc/testsuite/ada/acats-4/tests/c9/c93008b.ada
! 84c45a691f716f13c1acb83d5af7418d  gcc/testsuite/ada/acats-4/tests/c9/c940001.a
! 99f1785334b15c78f6c402eb9581f820  gcc/testsuite/ada/acats-4/tests/c9/c940002.a
! d4515a061510c374dc4e3b73047c01bd  gcc/testsuite/ada/acats-4/tests/c9/c940004.a
! 982944ab84b1e87938411f5e230c4afe  gcc/testsuite/ada/acats-4/tests/c9/c940005.a
! 24e534dd458f6d60deaffb89427151e3  gcc/testsuite/ada/acats-4/tests/c9/c940006.a
! ae39153ecdb5b40b7e250621dda2a947  gcc/testsuite/ada/acats-4/tests/c9/c940007.a
! ed93c06c8fbc77ffcb96431dac0e7567  gcc/testsuite/ada/acats-4/tests/c9/c940010.a
! b5f59a7bcad9207813e580204d7d297d  gcc/testsuite/ada/acats-4/tests/c9/c940011.a
! 2cc5af1321a3389a051ba331add4436e  gcc/testsuite/ada/acats-4/tests/c9/c940012.a
! 46c8ffa64ae0068a1674cd8386b42f41  gcc/testsuite/ada/acats-4/tests/c9/c940013.a
! 9fac2bc0e89e8f222104978b3d1eaf3b  gcc/testsuite/ada/acats-4/tests/c9/c940014.a
! 004d847da87db0a9fe57406d26459dfd  gcc/testsuite/ada/acats-4/tests/c9/c940015.a
! 47e9712a5187d745e5ab17e658f2f210  gcc/testsuite/ada/acats-4/tests/c9/c940016.a
! 2e44193305daa3662819696ed485e49e  gcc/testsuite/ada/acats-4/tests/c9/c940017.a
! 6c7757c7f82391d974ee2ade7a1b5023  gcc/testsuite/ada/acats-4/tests/c9/c94001a.ada
! f31231e0a282c4347af1efd6cb3035d8  gcc/testsuite/ada/acats-4/tests/c9/c94001b.ada
! b0effed330eff266dd896d4e48e16478  gcc/testsuite/ada/acats-4/tests/c9/c94001c.ada
! 5b89b2c47939e01428fda5cdb7b76bfc  gcc/testsuite/ada/acats-4/tests/c9/c94001e.ada
! 79b95e3bce431f5a1d5d5264c35ba5a9  gcc/testsuite/ada/acats-4/tests/c9/c94001f.ada
! 347ad815d8a6a515224aad7f232c01f1  gcc/testsuite/ada/acats-4/tests/c9/c94001g.ada
! 459a8334da9a10b07073ee026daace57  gcc/testsuite/ada/acats-4/tests/c9/c94002a.ada
! 7c5b2f6bf643455b2a9ae3723678ac9d  gcc/testsuite/ada/acats-4/tests/c9/c94002b.ada
! 131233ea081ac6ea10a1e10fbba005f2  gcc/testsuite/ada/acats-4/tests/c9/c94002d.ada
! ac9ef20d61a82671bc9f9903178dfad3  gcc/testsuite/ada/acats-4/tests/c9/c94002e.ada
! 185375e43237c56b7eac5c7c60549a70  gcc/testsuite/ada/acats-4/tests/c9/c94002f.ada
! c92e66c7cb8460dfad830a44a55c023b  gcc/testsuite/ada/acats-4/tests/c9/c94002g.ada
! 22b53f93e23fb62230789979e589e181  gcc/testsuite/ada/acats-4/tests/c9/c94004a.ada
! ccdf0ff8e75742c50231602193bbcbba  gcc/testsuite/ada/acats-4/tests/c9/c94004b.ada
! 3cc3467fbedd3af4df23952c3bff55fa  gcc/testsuite/ada/acats-4/tests/c9/c94004c.ada
! 7984d0d810ada9646b57c6eaf2e1bc4f  gcc/testsuite/ada/acats-4/tests/c9/c94005a.ada
! 65127423a897761cfafb1a3b3138bb1f  gcc/testsuite/ada/acats-4/tests/c9/c94005b.ada
! 58ea156e98cc4536f068259cb7d392ce  gcc/testsuite/ada/acats-4/tests/c9/c94006a.ada
! f0bba450c8e12f8e7ee2943272781344  gcc/testsuite/ada/acats-4/tests/c9/c94007a.ada
! c36dc0cd7c39b73a4713107a2d8948de  gcc/testsuite/ada/acats-4/tests/c9/c94007b.ada
! 4c0be4d154afe78593220fcb4ce1db68  gcc/testsuite/ada/acats-4/tests/c9/c94008a.ada
! 850314f1eadf141918c7bb7f3a507541  gcc/testsuite/ada/acats-4/tests/c9/c94008b.ada
! 17f5eb44b8190ee09e9f0ffcffe2e7a4  gcc/testsuite/ada/acats-4/tests/c9/c94008c.ada
! 489c52c7c750fcabec8c41e51acb5fc1  gcc/testsuite/ada/acats-4/tests/c9/c94008d.ada
! 03924145894e3041b88074680eceb006  gcc/testsuite/ada/acats-4/tests/c9/c94010a.ada
! 136872ec7f9870731797ab20b32f6696  gcc/testsuite/ada/acats-4/tests/c9/c94011a.ada
! a8508d1bdacc8da03549a92370d18ed0  gcc/testsuite/ada/acats-4/tests/c9/c94020a.ada
! 54dba96923cbd3444b91d1706e737c16  gcc/testsuite/ada/acats-4/tests/c9/c940a03.a
! 593cb74e34ea4102821f9d6492dd3def  gcc/testsuite/ada/acats-4/tests/c9/c950001.a
! 1e9d5f1797e48ec475a9b64cd4628e15  gcc/testsuite/ada/acats-4/tests/c9/c95008a.ada
! b48683e2458942b3ffc46be9054c7911  gcc/testsuite/ada/acats-4/tests/c9/c95009a.ada
! b4adaad3668499bb335d018420c56f91  gcc/testsuite/ada/acats-4/tests/c9/c95010a.ada
! 2900d4b177d19e9f35c4693ea6b14ec8  gcc/testsuite/ada/acats-4/tests/c9/c95011a.ada
! 8b06e3c4ff90fbc6c87f0aa942917f64  gcc/testsuite/ada/acats-4/tests/c9/c95012a.ada
! 334307cb5f8056227c22de2d08cd0211  gcc/testsuite/ada/acats-4/tests/c9/c95021a.ada
! c091dcb9509e234377d2ac8ee75d10e0  gcc/testsuite/ada/acats-4/tests/c9/c95022a.ada
! 65035c12f67d253a2397d2126f4ba6c6  gcc/testsuite/ada/acats-4/tests/c9/c95022b.ada
! cc0f07ec1171a66007308281b576f7c4  gcc/testsuite/ada/acats-4/tests/c9/c95033a.ada
! 4de48cf31bf233b1fdc87aeffb9972de  gcc/testsuite/ada/acats-4/tests/c9/c95033b.ada
! 9a258973fb062d294f4650087b4d0a5f  gcc/testsuite/ada/acats-4/tests/c9/c95034a.ada
! 3d8db74de3a313439a198f8f729ff8d1  gcc/testsuite/ada/acats-4/tests/c9/c95034b.ada
! e9df6b06717b893630f87cfbeaf3639b  gcc/testsuite/ada/acats-4/tests/c9/c95035a.ada
! 3eda3680c647ff3fb263637efebd9f65  gcc/testsuite/ada/acats-4/tests/c9/c95040a.ada
! 86d92231fb9f979c23be2a93dab90d49  gcc/testsuite/ada/acats-4/tests/c9/c95040b.ada
! ed765b423843bd4ca78de15c1b071692  gcc/testsuite/ada/acats-4/tests/c9/c95040c.ada
! 30e738c92230ba86578f011623e5802a  gcc/testsuite/ada/acats-4/tests/c9/c95040d.ada
! 168221198b482975d09392b2fcad8a7b  gcc/testsuite/ada/acats-4/tests/c9/c95041a.ada
! c6313618d1cd8a8218dcd446fd95a86e  gcc/testsuite/ada/acats-4/tests/c9/c95065a.ada
! 8832636689a3eda560469f04cfa76418  gcc/testsuite/ada/acats-4/tests/c9/c95065b.ada
! 5aaadcb32b841fad9f31245493b516f6  gcc/testsuite/ada/acats-4/tests/c9/c95065c.ada
! a39b19410538e12fdfcb7cd54d120b3f  gcc/testsuite/ada/acats-4/tests/c9/c95065d.ada
! 383b7f01039162f8c331982cca1d1827  gcc/testsuite/ada/acats-4/tests/c9/c95065e.ada
! c184eac9dc26cf8493bcf20a949ae191  gcc/testsuite/ada/acats-4/tests/c9/c95065f.ada
! 5b0b09d3d393123f8092b9dd3d7d2634  gcc/testsuite/ada/acats-4/tests/c9/c95066a.ada
! 645546a6994e4d75b178f9fe0ead2ec8  gcc/testsuite/ada/acats-4/tests/c9/c95067a.ada
! 0d96b6a028d1fbdc1198cf477386cb10  gcc/testsuite/ada/acats-4/tests/c9/c95071a.ada
! bd5b6bb2bf3ba074df027795aaa7db33  gcc/testsuite/ada/acats-4/tests/c9/c95072b.ada
! befede1120f2f7955e0b77c883265e25  gcc/testsuite/ada/acats-4/tests/c9/c95073a.ada
! 48c97fe967f3c5e1bc663c5d91ed55bd  gcc/testsuite/ada/acats-4/tests/c9/c95074c.ada
! 6aaf0bf21901d478c7f10321b1c232fc  gcc/testsuite/ada/acats-4/tests/c9/c95076a.ada
! ba053d263ff25d0fe8b66c68cb7bb311  gcc/testsuite/ada/acats-4/tests/c9/c95078a.ada
! a7e9f0e064ac2a29ebe79a19983758dc  gcc/testsuite/ada/acats-4/tests/c9/c95080b.ada
! 73fa133c9eac6146a770bb5525331e35  gcc/testsuite/ada/acats-4/tests/c9/c95082g.ada
! 61f2b9320583cc5ff1eca06b3e8cd887  gcc/testsuite/ada/acats-4/tests/c9/c95085a.ada
! 9e1cf3433f8341a6b183079a377b0fad  gcc/testsuite/ada/acats-4/tests/c9/c95085b.ada
! e39dbe6050c2679aa6a7d89c762e8c0a  gcc/testsuite/ada/acats-4/tests/c9/c95085c.ada
! 6c946d9a6886fc8b7d6145f3958a1016  gcc/testsuite/ada/acats-4/tests/c9/c95085d.ada
! c8c26f8183027ac456df33b272a0e185  gcc/testsuite/ada/acats-4/tests/c9/c95085e.ada
! e29633617dcca72904423b7e09ea1401  gcc/testsuite/ada/acats-4/tests/c9/c95085f.ada
! 3e1d9c4d7627f1b32df23e0787f1ae30  gcc/testsuite/ada/acats-4/tests/c9/c95085g.ada
! 55b52211957a2231b59c295b91e1bbfe  gcc/testsuite/ada/acats-4/tests/c9/c95085h.ada
! f472998d938475a0a5b7c61c4a994dbe  gcc/testsuite/ada/acats-4/tests/c9/c95085i.ada
! e7d6c7d1e457a9097de27a4d4b6df67e  gcc/testsuite/ada/acats-4/tests/c9/c95085j.ada
! 9dcf6b0120351dbd31ca6b3b07007dda  gcc/testsuite/ada/acats-4/tests/c9/c95085k.ada
! f65f9568bbdcba31e56e46a1bff7a8a7  gcc/testsuite/ada/acats-4/tests/c9/c95085l.ada
! 2794ec3980004ff90d3fdda0ebeb57be  gcc/testsuite/ada/acats-4/tests/c9/c95085m.ada
! cd5e6789b1381a01c8abe9b8efc437eb  gcc/testsuite/ada/acats-4/tests/c9/c95085n.ada
! ec751b6898b7a50e0c7e413ac04f3096  gcc/testsuite/ada/acats-4/tests/c9/c95085o.ada
! 4d079ed4815a2d61d769f5571e546504  gcc/testsuite/ada/acats-4/tests/c9/c95086a.ada
! 3f5ba7557a56b3376b0d11a44977eb6b  gcc/testsuite/ada/acats-4/tests/c9/c95086b.ada
! 4423694080505c12206b273d44b25a6c  gcc/testsuite/ada/acats-4/tests/c9/c95086c.ada
! 9ddcd960179a50f19400614669ee58dd  gcc/testsuite/ada/acats-4/tests/c9/c95086d.ada
! b943966db2007cce0bd0ab55a7241cb6  gcc/testsuite/ada/acats-4/tests/c9/c95086e.ada
! 63af3fb63913a9ced35b10b55e03d16c  gcc/testsuite/ada/acats-4/tests/c9/c95086f.ada
! fb4e2598701ac2222961218c56e9989e  gcc/testsuite/ada/acats-4/tests/c9/c95087a.ada
! 6ca41778e752016a3cb5f39d3655160a  gcc/testsuite/ada/acats-4/tests/c9/c95087b.ada
! b77cd9cab875027ed13370d439f3d83a  gcc/testsuite/ada/acats-4/tests/c9/c95087c.ada
! 94c2f92c8d38ace856b3d3a4e46e2f10  gcc/testsuite/ada/acats-4/tests/c9/c95087d.ada
! 8ace111d2db71af514234c843bcdc774  gcc/testsuite/ada/acats-4/tests/c9/c95088a.ada
! 3eab89caa6cfdaad3ecaee2fb3a9de67  gcc/testsuite/ada/acats-4/tests/c9/c95089a.ada
! c23a0d393dfca230669443fa90939e9e  gcc/testsuite/ada/acats-4/tests/c9/c95090a.ada
! 2dea0b25d5837e3f040a606b74b5bfe7  gcc/testsuite/ada/acats-4/tests/c9/c95092a.ada
! da5b15c611f0e80c4bd500a6377cf1fb  gcc/testsuite/ada/acats-4/tests/c9/c95093a.ada
! 411e85f00716bde0eb4bebe2dd4a4b17  gcc/testsuite/ada/acats-4/tests/c9/c95095a.ada
! 20d01625fd521f83c0fbb4e0d5989f1c  gcc/testsuite/ada/acats-4/tests/c9/c95095b.ada
! f1a2d7fb3c08ba5c9b45d28b8c434cf9  gcc/testsuite/ada/acats-4/tests/c9/c95095c.ada
! 3b8c3428be0e17426f9f4fc13d71bfe3  gcc/testsuite/ada/acats-4/tests/c9/c95095d.ada
! d71ab35932ba486e65cee5d0a7ea6c58  gcc/testsuite/ada/acats-4/tests/c9/c95095e.ada
! b665ab275e30b4a49c6a32d1c1b8d3b0  gcc/testsuite/ada/acats-4/tests/c9/c951001.a
! 31bba47fca22f334739b1cb13505c63f  gcc/testsuite/ada/acats-4/tests/c9/c951002.a
! 380eef904bedee70e470eec6283fe7fa  gcc/testsuite/ada/acats-4/tests/c9/c953001.a
! 8b4cbf1e111e939494dbd6c9170d9add  gcc/testsuite/ada/acats-4/tests/c9/c953002.a
! b85e67ebb144368e710912fad26fa9b5  gcc/testsuite/ada/acats-4/tests/c9/c953003.a
! 349793c14b6ee642849a35ac147f6d28  gcc/testsuite/ada/acats-4/tests/c9/c954001.a
! 32a2b22071eb90de620dac85832e7e33  gcc/testsuite/ada/acats-4/tests/c9/c954010.a
! 5c71f334e75e4b81847ba6609055a721  gcc/testsuite/ada/acats-4/tests/c9/c954011.a
! 0f6b02e34f34de574c7f90adcb78c1d3  gcc/testsuite/ada/acats-4/tests/c9/c954012.a
! 9df6b21dcd077453933aff79109728c8  gcc/testsuite/ada/acats-4/tests/c9/c954013.a
! 498084096b8ec59a36a889374ad9ee3e  gcc/testsuite/ada/acats-4/tests/c9/c954014.a
! 97799887dcbf60005b2df40f05636514  gcc/testsuite/ada/acats-4/tests/c9/c954015.a
! 2490fc80b69ada26f8142dacebcc5823  gcc/testsuite/ada/acats-4/tests/c9/c954016.a
! 23e5c9126dfc78e228cd9ba7e9fd2f4d  gcc/testsuite/ada/acats-4/tests/c9/c954017.a
! bdfa1b9ada52a8082dfc30a91d56af89  gcc/testsuite/ada/acats-4/tests/c9/c954018.a
! e039ba87aa8e5a87f7f74695cc19d917  gcc/testsuite/ada/acats-4/tests/c9/c954019.a
! 718a1dda410ad24ef00a024b2e415626  gcc/testsuite/ada/acats-4/tests/c9/c954020.a
! 8f5a7fd94fd12664cdd2a1cedfcad90c  gcc/testsuite/ada/acats-4/tests/c9/c954021.a
! 34dbbc567c8a72d4e43da4684357c65d  gcc/testsuite/ada/acats-4/tests/c9/c954022.a
! acd00fcab6e1b0d13797a97adc97adb7  gcc/testsuite/ada/acats-4/tests/c9/c954023.a
! 2b49282ca4813eb7610dffe2400f50ff  gcc/testsuite/ada/acats-4/tests/c9/c954024.a
! 26bcb24cd663124317c9acb5f29572c2  gcc/testsuite/ada/acats-4/tests/c9/c954025.a
! 3d08a9c3acd86b2c9e676b1b7428d52e  gcc/testsuite/ada/acats-4/tests/c9/c954026.a
! f6a33c447f57c0517b04392d7f3b4aa6  gcc/testsuite/ada/acats-4/tests/c9/c954027.a
! 97487e5b93226e3c55df7449702ac3da  gcc/testsuite/ada/acats-4/tests/c9/c954a01.a
! d07c1374471df9299b8057f6479a45e6  gcc/testsuite/ada/acats-4/tests/c9/c954a02.a
! b1b9ce862c0b325027b8ea2d1d8cc916  gcc/testsuite/ada/acats-4/tests/c9/c954a03.a
! d02e3ef0eb5c7ba2f412817b49644270  gcc/testsuite/ada/acats-4/tests/c9/c960001.a
! da6bb14a212aa02754b6596d741c04b8  gcc/testsuite/ada/acats-4/tests/c9/c960002.a
! 4c5c6b7d7706870241781f97576eef1b  gcc/testsuite/ada/acats-4/tests/c9/c960004.a
! f703a55c27d27529f63150ba86c8e428  gcc/testsuite/ada/acats-4/tests/c9/c96001a.ada
! da6da86c634ab13e2c59ef2e0f66e037  gcc/testsuite/ada/acats-4/tests/c9/c96004a.ada
! 2f64957621aaee0d11d2f8171f4e6709  gcc/testsuite/ada/acats-4/tests/c9/c96005a.ada
! 7fad724f14640158cc9929364f0bb44f  gcc/testsuite/ada/acats-4/tests/c9/c96005b.tst
! 6e3aebd279f9456cefe6dc63b3b9331e  gcc/testsuite/ada/acats-4/tests/c9/c96005d.ada
! 48530b441ec07b282f87a1b285f46461  gcc/testsuite/ada/acats-4/tests/c9/c96005f.ada
! 4ea722032f17d484d0a99cb53bc930ac  gcc/testsuite/ada/acats-4/tests/c9/c96006a.ada
! 83d75c4aa3732428ebf8864a605ee0d4  gcc/testsuite/ada/acats-4/tests/c9/c96007a.ada
! 031bef964d04e0ec5db2ff1f13daa5c1  gcc/testsuite/ada/acats-4/tests/c9/c96008a.ada
! f1d6b97aec5c567380c522a41db1aba7  gcc/testsuite/ada/acats-4/tests/c9/c96008b.ada
! d934b2c088763c44a881ec2055f7c05a  gcc/testsuite/ada/acats-4/tests/c9/c961001.a
! 42ae6b800a394053e192f10d5e9f2932  gcc/testsuite/ada/acats-4/tests/c9/c97112a.ada
! 60aa07cca5e8f5e4b7d0a79c6b74d55c  gcc/testsuite/ada/acats-4/tests/c9/c97113a.ada
! d3c1ec184af46cbef372f5696b266b34  gcc/testsuite/ada/acats-4/tests/c9/c97114a.ada
! 02807471c0330286ea544a5579567337  gcc/testsuite/ada/acats-4/tests/c9/c97115a.ada
! 26b64826d3bd1be74adb7879b1f7c2bb  gcc/testsuite/ada/acats-4/tests/c9/c97116a.ada
! 4e1bee03164214d6b948f1c4d7727423  gcc/testsuite/ada/acats-4/tests/c9/c97117a.ada
! fd17991b93f3552484bd67767dd7c7ff  gcc/testsuite/ada/acats-4/tests/c9/c97117b.ada
! 1e78b3f1d21965db0e71c8f106131bc6  gcc/testsuite/ada/acats-4/tests/c9/c97117c.ada
! f191d3219d72a4add4ab8c70378bf8a9  gcc/testsuite/ada/acats-4/tests/c9/c97118a.ada
! efc7575b03d99c53ecda47137a1597bb  gcc/testsuite/ada/acats-4/tests/c9/c97120a.ada
! c9a13ca3f9047e1c62d7573c2a552f18  gcc/testsuite/ada/acats-4/tests/c9/c97120b.ada
! d6606fac2f86c01ef106a193d274ec96  gcc/testsuite/ada/acats-4/tests/c9/c97201a.ada
! 84d46aa60b0a05e84d69cbccb1a3b8d4  gcc/testsuite/ada/acats-4/tests/c9/c97201b.ada
! 32743b2ed9403b69d98c56734934fa8f  gcc/testsuite/ada/acats-4/tests/c9/c97201c.ada
! 1feeeccbfc144d846a5fac5dc371b1ab  gcc/testsuite/ada/acats-4/tests/c9/c97201d.ada
! 4b003338cd3cfce9c7070dea4b8370a1  gcc/testsuite/ada/acats-4/tests/c9/c97201e.ada
! 383c30d1a9dc6fba56fb3b68b9d8417d  gcc/testsuite/ada/acats-4/tests/c9/c97201g.ada
! 2a874dccde240e48a4f9b0c6b5175219  gcc/testsuite/ada/acats-4/tests/c9/c97201h.ada
! a7aec17b036081fd245c141c14cea8c3  gcc/testsuite/ada/acats-4/tests/c9/c97201x.ada
! 8b04c9ca3ccf2bd719076369af023d12  gcc/testsuite/ada/acats-4/tests/c9/c97202a.ada
! 096a975a5320d43a7ba562f9f18d94e6  gcc/testsuite/ada/acats-4/tests/c9/c97203a.ada
! 4470e62031e7933d85cbc73da17fef70  gcc/testsuite/ada/acats-4/tests/c9/c97203b.ada
! 64b03c91289d25db071b852a88b5d9cb  gcc/testsuite/ada/acats-4/tests/c9/c97203c.ada
! 8820ba0855677ba4eb88ba58afeb783b  gcc/testsuite/ada/acats-4/tests/c9/c97204a.ada
! d4911cea3ce93679f126d507a45d22fa  gcc/testsuite/ada/acats-4/tests/c9/c97204b.ada
! 7d45cd155a83dd7ac338ae2185713729  gcc/testsuite/ada/acats-4/tests/c9/c97205a.ada
! acf42eb169ed97d94717ac061f67ae0a  gcc/testsuite/ada/acats-4/tests/c9/c97205b.ada
! 15fdb55feba1b010ab02767da3fba948  gcc/testsuite/ada/acats-4/tests/c9/c97301a.ada
! 290749e7b52a4f164e55510577176b9a  gcc/testsuite/ada/acats-4/tests/c9/c97301b.ada
! 35cbbf60204d1e52391ace28303dcf3f  gcc/testsuite/ada/acats-4/tests/c9/c97301c.ada
! ccc6a2da670537829e5b747589e65672  gcc/testsuite/ada/acats-4/tests/c9/c97301d.ada
! debc0fe0d35adbe5523204e6de746a43  gcc/testsuite/ada/acats-4/tests/c9/c97301e.ada
! 7fb0028090247956e3df39483acdd63e  gcc/testsuite/ada/acats-4/tests/c9/c97302a.ada
! fa79e177e5672a2e5ec294c27aebcbcf  gcc/testsuite/ada/acats-4/tests/c9/c97303a.ada
! 972e3174910edc4c6aa847cf1eaee9e0  gcc/testsuite/ada/acats-4/tests/c9/c97303b.ada
! 72709aa77c93e4bdc1472ea4622c65a6  gcc/testsuite/ada/acats-4/tests/c9/c97303c.ada
! b5c0f6a57278a89eee76e31418e14fa2  gcc/testsuite/ada/acats-4/tests/c9/c97304a.ada
! b3a69349bfed838a818c2ae32eca91c9  gcc/testsuite/ada/acats-4/tests/c9/c97304b.ada
! bbb0cec48b02d152aff64bf67daf4fd2  gcc/testsuite/ada/acats-4/tests/c9/c97305a.ada
! 522bda7413f7bb569c55a98d2de1b899  gcc/testsuite/ada/acats-4/tests/c9/c97305b.ada
! f4ef7c1a9fda0961493f36a0dd35e00f  gcc/testsuite/ada/acats-4/tests/c9/c97305c.ada
! 08a61c22e9dc33c9f5b70426dd77ba8c  gcc/testsuite/ada/acats-4/tests/c9/c97305d.ada
! e04c1ec69662c6ad7f314711e132d50b  gcc/testsuite/ada/acats-4/tests/c9/c97307a.ada
! 3159a203f1d3e85954c526f58a3919f1  gcc/testsuite/ada/acats-4/tests/c9/c974001.a
! 0314ba23ab70ea268178d5697c5a9034  gcc/testsuite/ada/acats-4/tests/c9/c974002.a
! f748892726b6f9f427e087ed38edff1e  gcc/testsuite/ada/acats-4/tests/c9/c974003.a
! 68b75700dc10aa1f753b947e8cfc83f7  gcc/testsuite/ada/acats-4/tests/c9/c974004.a
! c9f29dff7d0c7abcfdc4dd10f92cc818  gcc/testsuite/ada/acats-4/tests/c9/c974005.a
! 58bc14008a240c1458d789aea37231f5  gcc/testsuite/ada/acats-4/tests/c9/c974006.a
! 6386f90159d93f8e888fc5c7606c48ab  gcc/testsuite/ada/acats-4/tests/c9/c974007.a
! 091b77c15a7a69901928f3e08e5d560b  gcc/testsuite/ada/acats-4/tests/c9/c974008.a
! 4286211e8302b327c6fcddd998068801  gcc/testsuite/ada/acats-4/tests/c9/c974009.a
! 91418d184ffd74f3511f7c7fecf5ad4c  gcc/testsuite/ada/acats-4/tests/c9/c974010.a
! fb71769796ae10266d6396de27fcd9f3  gcc/testsuite/ada/acats-4/tests/c9/c974011.a
! 75ae944a2f56bfec34a43bcac81f0f6a  gcc/testsuite/ada/acats-4/tests/c9/c974012.a
! cf3493d33888a126779c4a1fd8c7e171  gcc/testsuite/ada/acats-4/tests/c9/c974013.a
! 0100f02b896d741021d8771778c05fe4  gcc/testsuite/ada/acats-4/tests/c9/c974014.a
! 120dd4802d990998dbefafba1d6bdf05  gcc/testsuite/ada/acats-4/tests/c9/c980001.a
! 98a89250f238d2d958192b464be9c644  gcc/testsuite/ada/acats-4/tests/c9/c980002.a
! 387e8d4bc42079cf88da235a35d5db46  gcc/testsuite/ada/acats-4/tests/c9/c980003.a
! 7ac21cbd7f3a077b85429173c95a43ee  gcc/testsuite/ada/acats-4/tests/c9/c990001.a
! ea2021deb386c024ed24a2d95220d566  gcc/testsuite/ada/acats-4/tests/c9/c99005a.ada
! de77ae469eab847fef3e1220aa3087ba  gcc/testsuite/ada/acats-4/tests/c9/c9a003a.ada
! f6efef2daeceae0601810ea34d294ebe  gcc/testsuite/ada/acats-4/tests/c9/c9a004a.ada
! c9ad756833c7a77a9c09228f6fe564de  gcc/testsuite/ada/acats-4/tests/c9/c9a007a.ada
! d7d23b9be56f63a7a3eb64ae5740a50f  gcc/testsuite/ada/acats-4/tests/c9/c9a009a.ada
! 4a79ec0aad1fb7e6af0cb13c26c8a078  gcc/testsuite/ada/acats-4/tests/c9/c9a009c.ada
! a6fedb4d1bd7420511136db146b4479f  gcc/testsuite/ada/acats-4/tests/c9/c9a009f.ada
! 92177b39404bc5c23481f443eee705e0  gcc/testsuite/ada/acats-4/tests/c9/c9a009g.ada
! 56b8d40db1bb38ab15ba53a518a8e8e3  gcc/testsuite/ada/acats-4/tests/c9/c9a009h.ada
! 378ed54deee6ae14733d353d1d034e4e  gcc/testsuite/ada/acats-4/tests/c9/c9a010a.ada
! 7e86b851f4df1a5b809ec8656042b7f1  gcc/testsuite/ada/acats-4/tests/c9/c9a011a.ada
! f9c3429a965752694e1fdc1a0bbb60fb  gcc/testsuite/ada/acats-4/tests/c9/c9a011b.ada
! 204dadfff9a19c758cd37f55b4c4da7c  gcc/testsuite/ada/acats-4/tests/ca/ca1003a.ada
! 763e67e5131cf453849af1119c81ab73  gcc/testsuite/ada/acats-4/tests/ca/ca1004a.ada
! 4dd6d7580352576ccd7263ab195d5863  gcc/testsuite/ada/acats-4/tests/ca/ca1005a.ada
! 129a313a5c15d69fc95b27e10654ea3b  gcc/testsuite/ada/acats-4/tests/ca/ca1006a.ada
! 150e449e50b6c5dbc1ef87fb7cbf4fb9  gcc/testsuite/ada/acats-4/tests/ca/ca1011a0.ada
! 590b512fe8313d2c235285182f8eda0d  gcc/testsuite/ada/acats-4/tests/ca/ca1011a1.ada
! 75907d5f95c902eae76627ab16c741b7  gcc/testsuite/ada/acats-4/tests/ca/ca1011a2.ada
! 401ad7f509f398efd9094cfb553d02ca  gcc/testsuite/ada/acats-4/tests/ca/ca1011a3.ada
! d6d2e55e299aae0f7b20781714e0f6d9  gcc/testsuite/ada/acats-4/tests/ca/ca1011a4.ada
! e840ac05d90e7ef06dac4303f5747d0c  gcc/testsuite/ada/acats-4/tests/ca/ca1011a5.ada
! 696cc4292fd590eaf3673d74b1c0c4f9  gcc/testsuite/ada/acats-4/tests/ca/ca1011a6.ada
! 19ae39e48cdc2ea32ddbde00fdb0bf17  gcc/testsuite/ada/acats-4/tests/ca/ca1012a0.ada
! c3bd20289c2b3b2422a8e051dfc8b100  gcc/testsuite/ada/acats-4/tests/ca/ca1012a1.ada
! 010a8d3290ef3a0b00bcbe784544f65f  gcc/testsuite/ada/acats-4/tests/ca/ca1012a2.ada
! 49dff1e5fe3bc3d0814772fe822732a9  gcc/testsuite/ada/acats-4/tests/ca/ca1012a3.ada
! 3660d5d1740e1e424e76277266bd8268  gcc/testsuite/ada/acats-4/tests/ca/ca1012a4.ada
! 2a073bfb3680a6d94b420c58b535dda1  gcc/testsuite/ada/acats-4/tests/ca/ca1012b0.ada
! 1d0a019e12d9aec35762beffba68a14a  gcc/testsuite/ada/acats-4/tests/ca/ca1012b2.ada
! 8fe092748b9f031c395eb8aa90296599  gcc/testsuite/ada/acats-4/tests/ca/ca1012b4.ada
! 2ee859ea2c2cb8cd94e30b6c19c152f7  gcc/testsuite/ada/acats-4/tests/ca/ca1013a0.ada
! a15e85ff9101c6b7debdc0a508f121b6  gcc/testsuite/ada/acats-4/tests/ca/ca1013a1.ada
! 03baa6347b38eb86dabe6092928f99a3  gcc/testsuite/ada/acats-4/tests/ca/ca1013a2.ada
! a81d2aa44c2ded0527dbc731919e9089  gcc/testsuite/ada/acats-4/tests/ca/ca1013a3.ada
! baa2f985db9330503fee62fb421c3429  gcc/testsuite/ada/acats-4/tests/ca/ca1013a4.ada
! 9fc93552ea16f09c4c827809b41b3281  gcc/testsuite/ada/acats-4/tests/ca/ca1013a5.ada
! eb0f6d8e24d16363c032c027a7fb22d5  gcc/testsuite/ada/acats-4/tests/ca/ca1013a6.ada
! b35c89f01ddf1fa22d017dd159aac614  gcc/testsuite/ada/acats-4/tests/ca/ca1014a0.ada
! 5077be000dc1a7e1b7b61ca260535b47  gcc/testsuite/ada/acats-4/tests/ca/ca1014a1.ada
! 0d51872b8ac47d25b56ce86661e1c370  gcc/testsuite/ada/acats-4/tests/ca/ca1014a2.ada
! 29a9a130e24e0e0ced6be54af8af32af  gcc/testsuite/ada/acats-4/tests/ca/ca1014a3.ada
! bda7cf51d24fabf05ab2eb537ba61e3b  gcc/testsuite/ada/acats-4/tests/ca/ca1020e0.ada
! e875db44aa84c70db8ae5e21b37fd9f1  gcc/testsuite/ada/acats-4/tests/ca/ca1020e1.ada
! 3f26efdf7d61547aec29a83c55db9b2c  gcc/testsuite/ada/acats-4/tests/ca/ca1020e2.ada
! d41b12fbbd6a609065e3a66751a2bcfd  gcc/testsuite/ada/acats-4/tests/ca/ca1020e3.ada
! 94d90f2a39051c6c6e6f143035815676  gcc/testsuite/ada/acats-4/tests/ca/ca1022a0.ada
! 522a519bdf3184fbe9c278d90eaa0c51  gcc/testsuite/ada/acats-4/tests/ca/ca1022a1.ada
! 457d2a59db3a3a962c68d076c3588ba2  gcc/testsuite/ada/acats-4/tests/ca/ca1022a2.ada
! bead0060014fd3fff3245a6f20e1ce5d  gcc/testsuite/ada/acats-4/tests/ca/ca1022a3.ada
! 7043e3690e3b44d0a6dcf5a6e896118c  gcc/testsuite/ada/acats-4/tests/ca/ca1022a4.ada
! a84d185297f5e0df081a4d1c5691575a  gcc/testsuite/ada/acats-4/tests/ca/ca1022a5.ada
! 3170507b82e5b87d289d4cc70305ba1c  gcc/testsuite/ada/acats-4/tests/ca/ca1022a6.ada
! 43efb4507d79b8829492325770ec57e8  gcc/testsuite/ada/acats-4/tests/ca/ca11001.a
! ac29fbda8eadae439bcd450881bc7149  gcc/testsuite/ada/acats-4/tests/ca/ca11002.a
! b9954b4449d887004c58cdfadf86900e  gcc/testsuite/ada/acats-4/tests/ca/ca11003.a
! 5858be41247b333a8e43986902fba588  gcc/testsuite/ada/acats-4/tests/ca/ca110040.a
! a977e479cabfc8bfede672c52d423864  gcc/testsuite/ada/acats-4/tests/ca/ca110041.a
! a2118dee2a16348d232ec7617376dade  gcc/testsuite/ada/acats-4/tests/ca/ca110042.am
! 4a8c0c2b4dd227cfda4c20ad9ff07ace  gcc/testsuite/ada/acats-4/tests/ca/ca110050.a
! 0583459492312df56b1924ffe5b094bd  gcc/testsuite/ada/acats-4/tests/ca/ca110051.am
! bc46a97640375fa6c02bac82bd0ea9d4  gcc/testsuite/ada/acats-4/tests/ca/ca11006.a
! 7a57ba0892ae966f0111911781c328a7  gcc/testsuite/ada/acats-4/tests/ca/ca11007.a
! 72dc8d276317eabd399e4b72e562434b  gcc/testsuite/ada/acats-4/tests/ca/ca11008.a
! 33d1886825125a9ff16aafa1d4eeb8ce  gcc/testsuite/ada/acats-4/tests/ca/ca11009.a
! 6009d53581cd1fedaaa5f8df00bec83f  gcc/testsuite/ada/acats-4/tests/ca/ca11010.a
! 41dc04e344132ae2173153f802896e15  gcc/testsuite/ada/acats-4/tests/ca/ca11011.a
! d28dd7fd562acb52e90429450077885b  gcc/testsuite/ada/acats-4/tests/ca/ca11012.a
! 3b4e1d1303122a2165d7a89e5ca75ec0  gcc/testsuite/ada/acats-4/tests/ca/ca11013.a
! e80e120c9035b007bb06c2accccbc2b3  gcc/testsuite/ada/acats-4/tests/ca/ca11014.a
! 97408d6755af6eeab48fe47d27144c12  gcc/testsuite/ada/acats-4/tests/ca/ca11015.a
! 8b415d0e8ca6c7725a02853b184967b4  gcc/testsuite/ada/acats-4/tests/ca/ca11016.a
! 5b1b2a824041eeb6d0560a6e32d48287  gcc/testsuite/ada/acats-4/tests/ca/ca11017.a
! df67588f2af1ce9fe9abd12c930a475a  gcc/testsuite/ada/acats-4/tests/ca/ca11018.a
! d51c3aaeac91d325c8cea73a18210a18  gcc/testsuite/ada/acats-4/tests/ca/ca11019.a
! 1740b30abc976744100e38e3bcf58e99  gcc/testsuite/ada/acats-4/tests/ca/ca11020.a
! 3a6518f945e25a1aeb3ad194d1563dff  gcc/testsuite/ada/acats-4/tests/ca/ca11021.a
! 5af82e195906ba434bd96462dc39c4c1  gcc/testsuite/ada/acats-4/tests/ca/ca11022.a
! d31f6ffac288a57d18c545c73969474e  gcc/testsuite/ada/acats-4/tests/ca/ca110230.a
! 32e02fe39dfdad12f29d72279adcac6c  gcc/testsuite/ada/acats-4/tests/ca/ca110231.a
! 4dd492832f8d6bd8bd698f639fa6aca4  gcc/testsuite/ada/acats-4/tests/ca/ca110232.am
! dccf8acb158b9eac07884aeacd894def  gcc/testsuite/ada/acats-4/tests/ca/ca1102a0.ada
! 2ed4ef9cb779e0d0250f3094928e85b6  gcc/testsuite/ada/acats-4/tests/ca/ca1102a1.ada
! d658c78d3feceb2e1e932fd6a6b84b5b  gcc/testsuite/ada/acats-4/tests/ca/ca1102a2.ada
! 50c4e887be1e9c4b7922f1519eb6c980  gcc/testsuite/ada/acats-4/tests/ca/ca1106a.ada
! b777b7cb27b27b07d7781e4ffd98a4ac  gcc/testsuite/ada/acats-4/tests/ca/ca1108a.ada
! 2f0f9c93c1bcab591f855d52670c37f0  gcc/testsuite/ada/acats-4/tests/ca/ca1108b.ada
! d320add603a2cb7fa5b0b27eb3cf9f99  gcc/testsuite/ada/acats-4/tests/ca/ca11a01.a
! 564d10a7c04f96788c8960fbe51c939e  gcc/testsuite/ada/acats-4/tests/ca/ca11a02.a
! c5b8e3a142a8d1aaf458e85e143d2dff  gcc/testsuite/ada/acats-4/tests/ca/ca11b01.a
! 385324ae1a50700efcc3e91d33d38fa7  gcc/testsuite/ada/acats-4/tests/ca/ca11b02.a
! f3ab6e0bea1b83fcd4c3a152e700e0bc  gcc/testsuite/ada/acats-4/tests/ca/ca11c01.a
! 71af51028e9bdd5cbcd5d81ee9beb0b5  gcc/testsuite/ada/acats-4/tests/ca/ca11c02.a
! 623cecaae9f9690a91d838f3795828e4  gcc/testsuite/ada/acats-4/tests/ca/ca11c03.a
! d0d1001f9819954c3537dd82876810a2  gcc/testsuite/ada/acats-4/tests/ca/ca11d010.a
! 9f2dd49cf5ff9af1c2217e51b7065e52  gcc/testsuite/ada/acats-4/tests/ca/ca11d011.a
! df976f60528d7144894c0dec4d84bc15  gcc/testsuite/ada/acats-4/tests/ca/ca11d012.a
! 6caa9498e84d76bdc74f46ac12a1a5e2  gcc/testsuite/ada/acats-4/tests/ca/ca11d013.am
! 0e13dcf32c88dedfbae0b03875ea105d  gcc/testsuite/ada/acats-4/tests/ca/ca11d02.a
! 352a0f61cf20bb4dd3caf17335850840  gcc/testsuite/ada/acats-4/tests/ca/ca11d03.a
! 42dc8152c22ab5df110af0816fda6daa  gcc/testsuite/ada/acats-4/tests/ca/ca120010.a
! 4a591a63cf2ea54c815ce845a57db0b6  gcc/testsuite/ada/acats-4/tests/ca/ca120011.a
! 33dd67cd6352e749c80324a52bce1fca  gcc/testsuite/ada/acats-4/tests/ca/ca120012.am
! 85bba90c6d55a072af31e706a101806b  gcc/testsuite/ada/acats-4/tests/ca/ca12002.a
! 196ff89b7529ee2981f4ecc32c27a27f  gcc/testsuite/ada/acats-4/tests/ca/ca13001.a
! a30bb2c455fbe1c012213193058ea38a  gcc/testsuite/ada/acats-4/tests/ca/ca13002.a
! 259d9991bd14633e726a1465b3ce011f  gcc/testsuite/ada/acats-4/tests/ca/ca13003.a
! 4a04a3ea16a7b5f16f46083006b00231  gcc/testsuite/ada/acats-4/tests/ca/ca13a01.a
! ef93a0b4b9d9c30a5f19c2e9d20d6e84  gcc/testsuite/ada/acats-4/tests/ca/ca13a02.a
! 14642bbab92bb9a06637c81126196b6d  gcc/testsuite/ada/acats-4/tests/ca/ca140230.a
! db8f6b8a7c3fb7fc6f41665ca76898aa  gcc/testsuite/ada/acats-4/tests/ca/ca140231.a
! 2c51220694c3930837b65093969330e9  gcc/testsuite/ada/acats-4/tests/ca/ca140232.am
! 97cc025b6e8c23ed35706e0ff98d4305  gcc/testsuite/ada/acats-4/tests/ca/ca140233.a
! 6df92dded9f1b1b9927e74380e21b606  gcc/testsuite/ada/acats-4/tests/ca/ca140280.a
! 6d433407d31454677f59a9de849b9a8a  gcc/testsuite/ada/acats-4/tests/ca/ca140281.a
! c7d9485411a37bafb94c4d619229cf30  gcc/testsuite/ada/acats-4/tests/ca/ca140282.a
! 0382d20f38d7c210393543ff57720eee  gcc/testsuite/ada/acats-4/tests/ca/ca140283.am
! 3ddbeeafbf30ff3f598a354d6504380d  gcc/testsuite/ada/acats-4/tests/ca/ca15003.a
! 3a4f3b580416cb1f523e9f0ac2eae79d  gcc/testsuite/ada/acats-4/tests/ca/ca200020.a
! 0a900895683bd2063208a7e0ec0179eb  gcc/testsuite/ada/acats-4/tests/ca/ca200021.a
! 7ba1dcfca4bbc7dddaa33358007ad8be  gcc/testsuite/ada/acats-4/tests/ca/ca200022.am
! ef72fc262d0290715b645d5b851eb6c6  gcc/testsuite/ada/acats-4/tests/ca/ca200030.a
! 192d203df19b3fbd0783fa037fb0b579  gcc/testsuite/ada/acats-4/tests/ca/ca200031.am
! 89e55ace469231379417158d76cef966  gcc/testsuite/ada/acats-4/tests/ca/ca2001h0.ada
! 4fcb3c9a010c482fd799920396bdff35  gcc/testsuite/ada/acats-4/tests/ca/ca2001h1.ada
! 74283fc28ee649c49603986ce9271f9b  gcc/testsuite/ada/acats-4/tests/ca/ca2001h2.ada
! 38f9b878948bab9e22743f449944e3e9  gcc/testsuite/ada/acats-4/tests/ca/ca2001h3.ada
! 5b863537f3743728296719d32393b9c2  gcc/testsuite/ada/acats-4/tests/ca/ca2002a0.ada
! bfbaab505e4866cb5784b784957c9a28  gcc/testsuite/ada/acats-4/tests/ca/ca2002a1.ada
! 0915a28827cb6de231954ac4c117a867  gcc/testsuite/ada/acats-4/tests/ca/ca2002a2.ada
! be28bd99026e48f3d74a229aea62f3d3  gcc/testsuite/ada/acats-4/tests/ca/ca2003a0.ada
! bbd409da60934657820661962e6e865f  gcc/testsuite/ada/acats-4/tests/ca/ca2003a1.ada
! e9823de02e5e243ffbc96966ad66f571  gcc/testsuite/ada/acats-4/tests/ca/ca2004a0.ada
! 2a6a75cbeb635fa9b353f4456f15887a  gcc/testsuite/ada/acats-4/tests/ca/ca2004a1.ada
! 9e55a07446b2c4b6f10c94a096696c64  gcc/testsuite/ada/acats-4/tests/ca/ca2004a2.ada
! 95743db093f3de73eef851e06ace6ae5  gcc/testsuite/ada/acats-4/tests/ca/ca2004a3.ada
! 9825991acff14d1e11e40a3568bb2e77  gcc/testsuite/ada/acats-4/tests/ca/ca2004a4.ada
! 1ed6b70320b71de2337bd1e17625341d  gcc/testsuite/ada/acats-4/tests/ca/ca2007a0.ada
! 2d33ec3a837a5a5e131936b8db94f4eb  gcc/testsuite/ada/acats-4/tests/ca/ca2007a1.ada
! 40ec1534c1b7d0a29cd8b1199f0a5b64  gcc/testsuite/ada/acats-4/tests/ca/ca2007a2.ada
! 25e21e36ad48e61821b87c24ac11bca6  gcc/testsuite/ada/acats-4/tests/ca/ca2007a3.ada
! 084eafcf0c9bde63eb9b0c876f25f904  gcc/testsuite/ada/acats-4/tests/ca/ca2008a0.ada
! c367605d05bd5ae5bf81c583e66e2720  gcc/testsuite/ada/acats-4/tests/ca/ca2008a1.ada
! c06ae786d36e4922cea7b5ed9453c9f3  gcc/testsuite/ada/acats-4/tests/ca/ca2008a2.ada
! e6666b45adcad1b99635211e793ed244  gcc/testsuite/ada/acats-4/tests/ca/ca2009a.ada
! 091802695ed73e62107b4d4d28c4fa67  gcc/testsuite/ada/acats-4/tests/ca/ca2009c0.ada
! d4908bcb77941027c20a57e38b3354df  gcc/testsuite/ada/acats-4/tests/ca/ca2009c1.ada
! 8793e38b06624960b964675c87a7bb50  gcc/testsuite/ada/acats-4/tests/ca/ca2009d.ada
! ebd60829cd41edbd06d5d34b1c55ad14  gcc/testsuite/ada/acats-4/tests/ca/ca2009f0.ada
! 84847d496c3551158605ff4d635fd1d6  gcc/testsuite/ada/acats-4/tests/ca/ca2009f1.ada
! 1b68aafa35a5844624d091cb512b83a3  gcc/testsuite/ada/acats-4/tests/ca/ca2009f2.ada
! 82a3883dad29bf7e9b2b43d245e96819  gcc/testsuite/ada/acats-4/tests/ca/ca2011b.ada
! a2806b84bcf970945201d14057ba77fb  gcc/testsuite/ada/acats-4/tests/ca/ca21001.a
! 950eaccfab4bdda6e5ed0683ee3145b0  gcc/testsuite/ada/acats-4/tests/ca/ca21002.a
! 9b176edf2b085f407ab53c6e7efa0bf0  gcc/testsuite/ada/acats-4/tests/ca/ca3011a0.ada
! a4e05800840beaa80583438f2fe8754d  gcc/testsuite/ada/acats-4/tests/ca/ca3011a1.ada
! c86a5bb82c1bade39f6d9d230f8c9e8e  gcc/testsuite/ada/acats-4/tests/ca/ca3011a2.ada
! dc43067ded3ab1437027708d7812aadb  gcc/testsuite/ada/acats-4/tests/ca/ca3011a3.ada
! b4bbe2bad37830cb59bac3673786910c  gcc/testsuite/ada/acats-4/tests/ca/ca3011a4.ada
! c29e663763861d160ff3432b1e522015  gcc/testsuite/ada/acats-4/tests/ca/ca5003a0.ada
! e5dcfd787f24d6dfedf73b0e116e1352  gcc/testsuite/ada/acats-4/tests/ca/ca5003a1.ada
! 248734cc36c6828c5b5d0a7c1293df27  gcc/testsuite/ada/acats-4/tests/ca/ca5003a2.ada
! 5497b59108e98e726b8af5fae575c343  gcc/testsuite/ada/acats-4/tests/ca/ca5003a3.ada
! 3ca92f928c3fab5699f3ed1cbb10cca7  gcc/testsuite/ada/acats-4/tests/ca/ca5003a4.ada
! 15800c833dc097d881eb01771f2ddb56  gcc/testsuite/ada/acats-4/tests/ca/ca5003a5.ada
! 42a60fa8194ce3db5c65b6814ea59f15  gcc/testsuite/ada/acats-4/tests/ca/ca5003a6.ada
! 0402a0137d3537a7d4ae11fe9268e188  gcc/testsuite/ada/acats-4/tests/ca/ca5003b0.ada
! 56d17409bae5c4f8247c69372dada6a7  gcc/testsuite/ada/acats-4/tests/ca/ca5003b1.ada
! 2ef9cab842c822e5b35867c53e777c18  gcc/testsuite/ada/acats-4/tests/ca/ca5003b2.ada
! 82b234cda282c69bd1cd3343d6564886  gcc/testsuite/ada/acats-4/tests/ca/ca5003b3.ada
! 0e13bff44fe10fc5bb9178c91aa8f41b  gcc/testsuite/ada/acats-4/tests/ca/ca5003b4.ada
! 05dbe877925c828ecc6371bacbfdfa20  gcc/testsuite/ada/acats-4/tests/ca/ca5003b5.ada
! 86085a25df2bcf17731e5abce3a41858  gcc/testsuite/ada/acats-4/tests/ca/ca5004a.ada
! 4663b5feb03415ae2fecb74dc9a6d918  gcc/testsuite/ada/acats-4/tests/ca/ca5004b0.ada
! dac927119e0c75edf0e171d438d99a0b  gcc/testsuite/ada/acats-4/tests/ca/ca5004b1.ada
! fb2c0908bc96e07939ff5f370be3d576  gcc/testsuite/ada/acats-4/tests/ca/ca5004b2.ada
! de4ee9e1d0577cbafe35f74312690093  gcc/testsuite/ada/acats-4/tests/ca/ca5006a.ada
! 953459f6c3ce7331d1cf5e82d075046f  gcc/testsuite/ada/acats-4/tests/cb/cb10002.a
! a2d96f308f3e7c5c03f4f9d216128c1c  gcc/testsuite/ada/acats-4/tests/cb/cb1001a.ada
! c9d819541b343e576525a8dc64f50bcc  gcc/testsuite/ada/acats-4/tests/cb/cb1004a.ada
! cd057227d4389433804bcb77c3065624  gcc/testsuite/ada/acats-4/tests/cb/cb1005a.ada
! 5335053bd77df186552ab553aed53d59  gcc/testsuite/ada/acats-4/tests/cb/cb1010a.ada
! 6be3f5adbcfcbc452379f748a85caa57  gcc/testsuite/ada/acats-4/tests/cb/cb1010c.ada
! 0a7ba5489277a0fcbe1b644ea3d981a3  gcc/testsuite/ada/acats-4/tests/cb/cb1010d.ada
! 6cae622e32e9824d353863435f37029e  gcc/testsuite/ada/acats-4/tests/cb/cb20001.a
! f70c8a2a06450a84e9c16c2c896968c2  gcc/testsuite/ada/acats-4/tests/cb/cb20003.a
! fe4620ca44567358367bbd3cbf625a78  gcc/testsuite/ada/acats-4/tests/cb/cb20004.a
! 35b97a6a98aab2205d9fafa16376dd73  gcc/testsuite/ada/acats-4/tests/cb/cb20005.a
! 2eb8439ac2fe1164f75cef3955ed5f7e  gcc/testsuite/ada/acats-4/tests/cb/cb20006.a
! 14f424c9945ffa51a8ed9b5158035a61  gcc/testsuite/ada/acats-4/tests/cb/cb20007.a
! 81b37c096b48361109ecfd3c0a735d6f  gcc/testsuite/ada/acats-4/tests/cb/cb2004a.ada
! c9e534ca3b39a7e52f750d7ada5b1f05  gcc/testsuite/ada/acats-4/tests/cb/cb2005a.ada
! 5f629a419d744cf6cbdf01ae526e8dfe  gcc/testsuite/ada/acats-4/tests/cb/cb2006a.ada
! 0f62783e4e017c666e439d08382f4081  gcc/testsuite/ada/acats-4/tests/cb/cb2007a.ada
! 0af3543016fdd2ab314c8e3f6944bc98  gcc/testsuite/ada/acats-4/tests/cb/cb20a02.a
! 0f3ac1a00f45f79f0d263ea0c18026ea  gcc/testsuite/ada/acats-4/tests/cb/cb30001.a
! d22425d7abb438c4b8e19712114044f1  gcc/testsuite/ada/acats-4/tests/cb/cb30002.a
! da80eb868ceb5337039000257fc5cf28  gcc/testsuite/ada/acats-4/tests/cb/cb3003a.ada
! 3dcceb335b81c6314b73ec2a12e496dd  gcc/testsuite/ada/acats-4/tests/cb/cb3003b.ada
! db5771a4c4d22f1ee3b2043ea42e688e  gcc/testsuite/ada/acats-4/tests/cb/cb3004a.ada
! e4ecbc4431ab3786f6a71727577cf5f2  gcc/testsuite/ada/acats-4/tests/cb/cb40005.a
! 15fd6a782afdd2e76a85a1ef09b95d91  gcc/testsuite/ada/acats-4/tests/cb/cb4001a.ada
! f00ebf73158afdcf6ccfa56162d1a7c7  gcc/testsuite/ada/acats-4/tests/cb/cb4002a.ada
! 9e17c1d3be3c2acc4c4a761cf058d3c6  gcc/testsuite/ada/acats-4/tests/cb/cb4003a.ada
! 3461f679629a4811d1fce600d7e8b57e  gcc/testsuite/ada/acats-4/tests/cb/cb4004a.ada
! f2db155f6c22f6b30ca696f825ef8aae  gcc/testsuite/ada/acats-4/tests/cb/cb4005a.ada
! b611f921d0e5b0b027e6f69faa9d24b4  gcc/testsuite/ada/acats-4/tests/cb/cb4006a.ada
! baded9fec75a97cb63419083a60cbf79  gcc/testsuite/ada/acats-4/tests/cb/cb4007a.ada
! a4194c712a3e86aa41f29aec96a8f7a7  gcc/testsuite/ada/acats-4/tests/cb/cb4008a.ada
! 930c41db090c6c2c54a36228405c48ac  gcc/testsuite/ada/acats-4/tests/cb/cb4009a.ada
! 72f5c28e26994805b38b887c725d411c  gcc/testsuite/ada/acats-4/tests/cb/cb4013a.ada
! 7cebdcd4f0159fb009f28f53b4f1d2aa  gcc/testsuite/ada/acats-4/tests/cb/cb40a01.a
! c5d94b1d4e0e31956d3f563cd7632df6  gcc/testsuite/ada/acats-4/tests/cb/cb40a020.a
! 1826a245b36f70926f1d010c4bb03b56  gcc/testsuite/ada/acats-4/tests/cb/cb40a021.am
! dd4b04d0ff15d88ce5e37562087104b8  gcc/testsuite/ada/acats-4/tests/cb/cb40a030.a
! ce7a78707740e7c8442c44280bd4b429  gcc/testsuite/ada/acats-4/tests/cb/cb40a031.am
! 27770d52ee37e90d5cd9748807eab53e  gcc/testsuite/ada/acats-4/tests/cb/cb40a04.a
! fee21ac92aa6b69bea4a12f412715df6  gcc/testsuite/ada/acats-4/tests/cb/cb41001.a
! 3bbe3f0aeccac5d0203ed045c2ccf49e  gcc/testsuite/ada/acats-4/tests/cb/cb41002.a
! d456462b7a7e6f3773b86bf24468d231  gcc/testsuite/ada/acats-4/tests/cb/cb41003.a
! 52c5e4b6a8d77b120f571623f547a197  gcc/testsuite/ada/acats-4/tests/cb/cb41004.a
! d0966c8e064d920ad9d15b0e1e8acd1b  gcc/testsuite/ada/acats-4/tests/cb/cb42001.a
! f44ad7e2a4e69bd7a329f8d93bb15c88  gcc/testsuite/ada/acats-4/tests/cb/cb42002.a
! e6c3ed65a752c9adb9850b8254371888  gcc/testsuite/ada/acats-4/tests/cb/cb42003.a
! d8ee6696e0da8f079608aa258739723f  gcc/testsuite/ada/acats-4/tests/cb/cb50001.a
! 01e2daee09a3391b981c7a63ebe0ae28  gcc/testsuite/ada/acats-4/tests/cb/cb5001a.ada
! 5a22bfb3766d46433b2b7b2f046d0ea9  gcc/testsuite/ada/acats-4/tests/cb/cb5001b.ada
! 63153559a0add5135a21197c6c8c0a9f  gcc/testsuite/ada/acats-4/tests/cb/cb5002a.ada
! 52c10586939e5289ffc5276a6a4d9e3e  gcc/testsuite/ada/acats-4/tests/cc/cc1004a.ada
! abeb72a1acbce60114f56d558d1481a5  gcc/testsuite/ada/acats-4/tests/cc/cc1005b.ada
! e52fa7b734609c2fde5f5260ff000f57  gcc/testsuite/ada/acats-4/tests/cc/cc1010a.ada
! 4af2da441a155dbd4ee2be7e5afcdb99  gcc/testsuite/ada/acats-4/tests/cc/cc1010b.ada
! 3943b41b051f4e223a5fe3b067dd4750  gcc/testsuite/ada/acats-4/tests/cc/cc1018a.ada
! 8b9f3eb4b897035fcc0c08981fa94cd0  gcc/testsuite/ada/acats-4/tests/cc/cc1104c.ada
! 6dde1021fb59bfd89f7e89e10c4dc040  gcc/testsuite/ada/acats-4/tests/cc/cc1107b.ada
! fd9ff835b201890341a69a2bf568186d  gcc/testsuite/ada/acats-4/tests/cc/cc1111a.ada
! 3a2e06563ce5c65cb9f2734c9b5901b2  gcc/testsuite/ada/acats-4/tests/cc/cc1204a.ada
! ec00ecaace8abe97b14deef79a927278  gcc/testsuite/ada/acats-4/tests/cc/cc1207b.ada
! d5b96d46768e2afc1db48bccdd883c3d  gcc/testsuite/ada/acats-4/tests/cc/cc1220a.ada
! fe4da7912a4f8ebd90feecf1233d1cdd  gcc/testsuite/ada/acats-4/tests/cc/cc1221a.ada
! 25b2b3dc12b77cbf205ab8f38dcfb77d  gcc/testsuite/ada/acats-4/tests/cc/cc1221b.ada
! 9145c4850d40180754446ef574cb5fc0  gcc/testsuite/ada/acats-4/tests/cc/cc1221c.ada
! c4c966046fba1bd9875ab2ac270f27d0  gcc/testsuite/ada/acats-4/tests/cc/cc1221d.ada
! ec00a589846feb2b9117000ba453bb4d  gcc/testsuite/ada/acats-4/tests/cc/cc1222a.ada
! 9098cb80c67049808425c47b419fac81  gcc/testsuite/ada/acats-4/tests/cc/cc1223a.ada
! ebb1accb64bb0bc75b36cc4d7667f11e  gcc/testsuite/ada/acats-4/tests/cc/cc1224a.ada
! 252dcf9d499b779ceb6ff22b740614f3  gcc/testsuite/ada/acats-4/tests/cc/cc1225a.tst
! bd7909fda37c73e6a7b55033af7a7073  gcc/testsuite/ada/acats-4/tests/cc/cc1226b.ada
! 6c7f653283771ea8e72f38f30cca417e  gcc/testsuite/ada/acats-4/tests/cc/cc1227a.ada
! a59ea76111c1c30abdfc81e140c2ad1e  gcc/testsuite/ada/acats-4/tests/cc/cc1301a.ada
! 54718ced426c8406bfe76f085e364b70  gcc/testsuite/ada/acats-4/tests/cc/cc1302a.ada
! 0e4bf36981636de5140e59f431e9a750  gcc/testsuite/ada/acats-4/tests/cc/cc1304a.ada
! 8b8017d0f141d2d1f196915bb0d9086f  gcc/testsuite/ada/acats-4/tests/cc/cc1304b.ada
! 5c30254607e6be149633cccc49ed0eed  gcc/testsuite/ada/acats-4/tests/cc/cc1307a.ada
! 074dfbafa7a711ae864c0c7a3551c2c1  gcc/testsuite/ada/acats-4/tests/cc/cc1307b.ada
! 99a71a5de9c88311f519834c73dd819d  gcc/testsuite/ada/acats-4/tests/cc/cc1308a.ada
! f7d1a2abebaff0b7213722ac29bc699a  gcc/testsuite/ada/acats-4/tests/cc/cc1310a.ada
! 02f17d4f3889eba61e039a52d84ad466  gcc/testsuite/ada/acats-4/tests/cc/cc1311a.ada
! ab2512302d5429785277d9bb46d6c87b  gcc/testsuite/ada/acats-4/tests/cc/cc1311b.ada
! 1653180dc4be9e4015e8cad4546ded2c  gcc/testsuite/ada/acats-4/tests/cc/cc2002a.ada
! 5368d883d7adafccb7c415ab1a83c7f2  gcc/testsuite/ada/acats-4/tests/cc/cc30001.a
! 9240ec87a1cc555c3c6e829f22480b0f  gcc/testsuite/ada/acats-4/tests/cc/cc30002.a
! 9b67ed4b6d94e785f623555841e44c4c  gcc/testsuite/ada/acats-4/tests/cc/cc30003.a
! 7b9e43d5af304e75a87ba957fae6500b  gcc/testsuite/ada/acats-4/tests/cc/cc30004.a
! 258d4b8f83d4c17eda45265db8a66c46  gcc/testsuite/ada/acats-4/tests/cc/cc3004a.ada
! 1422918611096dedc710ededab9fc1d3  gcc/testsuite/ada/acats-4/tests/cc/cc3007a.ada
! faee4cb0106ee6d683bf7e7a208050dc  gcc/testsuite/ada/acats-4/tests/cc/cc3007b.ada
! 43f939c986863c3151fb21fae7ad81a8  gcc/testsuite/ada/acats-4/tests/cc/cc3011a.ada
! e21f329f8aeeeaaf980ab3ae301de7cb  gcc/testsuite/ada/acats-4/tests/cc/cc3011d.ada
! 021bd9a65cf3be3535547519f5ceb651  gcc/testsuite/ada/acats-4/tests/cc/cc3012a.ada
! eb08409ceff83c49baa04e734c258681  gcc/testsuite/ada/acats-4/tests/cc/cc3015a.ada
! 37ffe8fd743867700b2e0249fd73f16b  gcc/testsuite/ada/acats-4/tests/cc/cc3016b.ada
! 92e8dfd4f50c7e3595bbd6ef5ebb4302  gcc/testsuite/ada/acats-4/tests/cc/cc3016c.ada
! 3bb5847d2c36a04a53a9dc138c40e34a  gcc/testsuite/ada/acats-4/tests/cc/cc3016f.ada
! 195ab10c1ca9bbfd5b16ade12e3259e2  gcc/testsuite/ada/acats-4/tests/cc/cc3016i.ada
! a5976b043f8ea78109e2936d58a009a8  gcc/testsuite/ada/acats-4/tests/cc/cc3017b.ada
! 2fb78d8d58d12070086164535de0efda  gcc/testsuite/ada/acats-4/tests/cc/cc3019a.ada
! a0315fd5149893475278feb9b8d7013b  gcc/testsuite/ada/acats-4/tests/cc/cc3019b0.ada
! 207f4488242efc2b7a5c80c0cd47410b  gcc/testsuite/ada/acats-4/tests/cc/cc3019b1.ada
! 5688bc525157eef2f521d23f1a720672  gcc/testsuite/ada/acats-4/tests/cc/cc3019b2.ada
! e5522bd1515d2f7df4fdd2bafaf481fb  gcc/testsuite/ada/acats-4/tests/cc/cc3019c0.ada
! c326bc3fa236d9094e60f3ecabd7d0de  gcc/testsuite/ada/acats-4/tests/cc/cc3019c1.ada
! 4e308a4f2724a46a2eb3a8426f98265f  gcc/testsuite/ada/acats-4/tests/cc/cc3019c2.ada
! cd9a188b6b1ecf3863d42065ce445792  gcc/testsuite/ada/acats-4/tests/cc/cc3106b.ada
! b1b639f80dbd48bf241b7d05c36362e6  gcc/testsuite/ada/acats-4/tests/cc/cc3120a.ada
! f06e709416c9d57a31113226d02abf07  gcc/testsuite/ada/acats-4/tests/cc/cc3120b.ada
! e09fb340ff80c10cbecd4b83e746eef2  gcc/testsuite/ada/acats-4/tests/cc/cc3121a.ada
! 302527c5f7e5e7497411775d418850b0  gcc/testsuite/ada/acats-4/tests/cc/cc3123a.ada
! 2575fc22f53f2a5308182459add72a14  gcc/testsuite/ada/acats-4/tests/cc/cc3125a.ada
! 4f59d6fe9227d671293a8fecd22f9101  gcc/testsuite/ada/acats-4/tests/cc/cc3125b.ada
! a1164d012410441b7190f2e96d6ce7c6  gcc/testsuite/ada/acats-4/tests/cc/cc3125c.ada
! 8a71d919069253ce368ef3103ee770c8  gcc/testsuite/ada/acats-4/tests/cc/cc3125d.ada
! ae116bcf41f79383e2dba5094b290b3f  gcc/testsuite/ada/acats-4/tests/cc/cc3126a.ada
! de2792bcfe94fa04d80a2c8ecf74db33  gcc/testsuite/ada/acats-4/tests/cc/cc3127a.ada
! a9709bfb589a677927644fb64dffa39c  gcc/testsuite/ada/acats-4/tests/cc/cc3128a.ada
! eeae81e69cab3987783ac508ffbebc5c  gcc/testsuite/ada/acats-4/tests/cc/cc3203a.ada
! a4d077af707d747e7c7f4f145a33e013  gcc/testsuite/ada/acats-4/tests/cc/cc3207b.ada
! 4525f7929e8bbeab0d61377f11afa3b8  gcc/testsuite/ada/acats-4/tests/cc/cc3220a.ada
! e8cc62fb0584ebfbe49d22d70abf54f4  gcc/testsuite/ada/acats-4/tests/cc/cc3221a.ada
! fbf1f50c254b6c5361e7d43b8efa783c  gcc/testsuite/ada/acats-4/tests/cc/cc3222a.ada
! 06202a4a37521548f15b8f63b30331cf  gcc/testsuite/ada/acats-4/tests/cc/cc3223a.ada
! d6d9973ddd1a38d34208ece4853e3e54  gcc/testsuite/ada/acats-4/tests/cc/cc3224a.ada
! 9d8a01fd3692524cef3f688f08e8820e  gcc/testsuite/ada/acats-4/tests/cc/cc3225a.ada
! 0b4db0bdcd8b5f809a2a0976c2fd65a2  gcc/testsuite/ada/acats-4/tests/cc/cc3230a.ada
! ecf0a337f74761749dd005a8b934ae2d  gcc/testsuite/ada/acats-4/tests/cc/cc3231a.ada
! 536583cad34553553ba201c11a12e136  gcc/testsuite/ada/acats-4/tests/cc/cc3232a.ada
! 29722620be1cef89562f63d778feb319  gcc/testsuite/ada/acats-4/tests/cc/cc3233a.ada
! 55b7f83f0d13dd0bbbc615bec20f7f58  gcc/testsuite/ada/acats-4/tests/cc/cc3234a.ada
! 174e858e451ed1d671a07a674320a404  gcc/testsuite/ada/acats-4/tests/cc/cc3235a.ada
! 1966408531cce82c0dee0cdb997e2d83  gcc/testsuite/ada/acats-4/tests/cc/cc3236a.ada
! 69f2b9819e916eb5bef41d74a6bf059e  gcc/testsuite/ada/acats-4/tests/cc/cc3240a.ada
! 134c20d477e6856df2b370dc7cfda1a4  gcc/testsuite/ada/acats-4/tests/cc/cc3305a.ada
! 6ff147856008d1bc23082c84a6dce358  gcc/testsuite/ada/acats-4/tests/cc/cc3305b.ada
! 75b310968a34fc081580d58bd1747ea3  gcc/testsuite/ada/acats-4/tests/cc/cc3305c.ada
! e41c2fcae5aa76bb6cd566a6a34b9e73  gcc/testsuite/ada/acats-4/tests/cc/cc3305d.ada
! 54ae1b7ff14c3a948a87f71ab9b7ae53  gcc/testsuite/ada/acats-4/tests/cc/cc3601a.ada
! 9e57592bc94327a2bb36eb625e6d528f  gcc/testsuite/ada/acats-4/tests/cc/cc3601c.ada
! 14a6f6048e3bda5108a0dac8dc736e44  gcc/testsuite/ada/acats-4/tests/cc/cc3602a.ada
! 73b205844c7501b9750b69b66d91e84c  gcc/testsuite/ada/acats-4/tests/cc/cc3603a.ada
! 509cb0b6a7b3daf93118e0e4310a8889  gcc/testsuite/ada/acats-4/tests/cc/cc3605a.ada
! b81c8580788eaf032722950c55524548  gcc/testsuite/ada/acats-4/tests/cc/cc3606a.ada
! 5232a6ea1beea12bb0c271a9c0728bcc  gcc/testsuite/ada/acats-4/tests/cc/cc3606b.ada
! 2f46f9edadb7856b60273822fbd7c6dc  gcc/testsuite/ada/acats-4/tests/cc/cc3607b.ada
! 59c4b0341104cc61677baaee002ac38c  gcc/testsuite/ada/acats-4/tests/cc/cc40001.a
! 6d5d6f00038ccaafe12d5f471a488085  gcc/testsuite/ada/acats-4/tests/cc/cc50001.a
! 8cb4adfbf6723ce3680f41b59f744fe9  gcc/testsuite/ada/acats-4/tests/cc/cc50a01.a
! 508d46d79897dc7252508cdafdbbfaa1  gcc/testsuite/ada/acats-4/tests/cc/cc50a02.a
! 146e71ceb1d037e4099e8ecb6e127614  gcc/testsuite/ada/acats-4/tests/cc/cc51001.a
! 58d73c0c5456a6a21ebbaef95df38606  gcc/testsuite/ada/acats-4/tests/cc/cc51002.a
! e096e928fb49f1e659293619c383c7f1  gcc/testsuite/ada/acats-4/tests/cc/cc51003.a
! a373845361c49771cf3d23fbbfc043de  gcc/testsuite/ada/acats-4/tests/cc/cc51004.a
! f57dbf49aca26d9bd043ebddae124c8e  gcc/testsuite/ada/acats-4/tests/cc/cc51006.a
! ed5459250c5b2a65cf4b7a7c678c41b5  gcc/testsuite/ada/acats-4/tests/cc/cc51007.a
! edb35d02b7ba72e7720c2eaf7fefe5bf  gcc/testsuite/ada/acats-4/tests/cc/cc51008.a
! ae6cd77fc88f858e2d4f846c2f8fe1fd  gcc/testsuite/ada/acats-4/tests/cc/cc51009.a
! 242a7a64321f47045c3f2f35075d763a  gcc/testsuite/ada/acats-4/tests/cc/cc510100.a
! 6e910b042a7a65244f44ec96328b82aa  gcc/testsuite/ada/acats-4/tests/cc/cc510101.a
! 37c528fdf28a831a131a04af0ef3cb3d  gcc/testsuite/ada/acats-4/tests/cc/cc510102.a
! 04a3af824c0ae9cd56535f5bbb98d6c0  gcc/testsuite/ada/acats-4/tests/cc/cc510103.am
! 1724f2d9a5409939c68b55de2f49656d  gcc/testsuite/ada/acats-4/tests/cc/cc51011.a
! 91f9a7214da9eed7db005bf7e3119ddc  gcc/testsuite/ada/acats-4/tests/cc/cc51a01.a
! 123f5aa956187735f0e077abedfd8f93  gcc/testsuite/ada/acats-4/tests/cc/cc51b03.a
! 557497dc9fd80ad665e468b409621ee1  gcc/testsuite/ada/acats-4/tests/cc/cc51d01.a
! 31462b6f268d175f3a915242afd8ea4d  gcc/testsuite/ada/acats-4/tests/cc/cc51d02.a
! 8b56f900a407dc994866f74c2c67f98e  gcc/testsuite/ada/acats-4/tests/cc/cc54001.a
! 65d5b89a1c15ad3234bf150dbe3c9235  gcc/testsuite/ada/acats-4/tests/cc/cc54002.a
! 04d1ce4f2960ed9b647a0bc397f920c2  gcc/testsuite/ada/acats-4/tests/cc/cc54003.a
! 0e1a91d2dfd0e6b36d65c5cfb02883dc  gcc/testsuite/ada/acats-4/tests/cc/cc54004.a
! 78a31a5dec6479884c93ea3280e5c8d6  gcc/testsuite/ada/acats-4/tests/cc/cc60001.a
! c29ebf7d9a6ed65bca0e83b18c63bbcc  gcc/testsuite/ada/acats-4/tests/cc/cc70001.a
! eb1b9be669a38ce3989d9340fb2dc933  gcc/testsuite/ada/acats-4/tests/cc/cc70002.a
! b1df852c3d5deec3247a4e17e9fb4dc6  gcc/testsuite/ada/acats-4/tests/cc/cc70003.a
! 9f1565b83bb2fa8ee588283eaa27cf37  gcc/testsuite/ada/acats-4/tests/cc/cc70a01.a
! 0bb1d67b6fb03b14e1b2f2062d01417d  gcc/testsuite/ada/acats-4/tests/cc/cc70a02.a
! ee68b4ea46957b2abff5e05bc98eeb76  gcc/testsuite/ada/acats-4/tests/cc/cc70b01.a
! 8c472987131321e68210b34029de25a7  gcc/testsuite/ada/acats-4/tests/cc/cc70b02.a
! 1a10fab698e0e1c3d985d63a8fd02646  gcc/testsuite/ada/acats-4/tests/cc/cc70c01.a
! 630e79ef7ad77506e6bc0443bc253106  gcc/testsuite/ada/acats-4/tests/cc/cc70c02.a
! 8cc4511c2ef1cbd2694c11e81a40fba3  gcc/testsuite/ada/acats-4/tests/cd/cd10001.a
! 17bd7ceca16a2b5b05c09e2bf540cb49  gcc/testsuite/ada/acats-4/tests/cd/cd10002.a
! fb2d00d22c6dc289be9e7485d1057b88  gcc/testsuite/ada/acats-4/tests/cd/cd1009d.ada
! 0f7c8765f0bcfd92843011f7699a3515  gcc/testsuite/ada/acats-4/tests/cd/cd1009e.ada
! 278b82d91f416169138eaedebaee0e88  gcc/testsuite/ada/acats-4/tests/cd/cd1009f.ada
! c5d7abbf75d5228f8ee64b921461c34d  gcc/testsuite/ada/acats-4/tests/cd/cd1009g.ada
! 05621471548ccc18ff9a5e104f81afde  gcc/testsuite/ada/acats-4/tests/cd/cd1009h.ada
! 529178df08dc16ac0af024a1fd6bfb53  gcc/testsuite/ada/acats-4/tests/cd/cd1009i.ada
! 365257c1306da6752feb59e62ac38bdf  gcc/testsuite/ada/acats-4/tests/cd/cd1009j.ada
! 03b1bb47c24a014bd2530417d1adf9b2  gcc/testsuite/ada/acats-4/tests/cd/cd1009k.tst
! f29ec324e7b0ec1f2f6dd2240fc728d8  gcc/testsuite/ada/acats-4/tests/cd/cd1009n.ada
! cae30866eb5c8c2cfb27698eb8ddbde0  gcc/testsuite/ada/acats-4/tests/cd/cd1009o.ada
! d3eb7538a98ec14ae8d521733ba57af7  gcc/testsuite/ada/acats-4/tests/cd/cd1009p.ada
! b8730acac7650dbd31ddd035bc69f509  gcc/testsuite/ada/acats-4/tests/cd/cd1009q.ada
! c358e33b93c2826e889494a0f5ed0843  gcc/testsuite/ada/acats-4/tests/cd/cd1009r.ada
! bc1961d8c175f48f60b3e9f057a9c72a  gcc/testsuite/ada/acats-4/tests/cd/cd1009s.ada
! 97707e58ce3c7a72dc76f39b8a718701  gcc/testsuite/ada/acats-4/tests/cd/cd1009t.tst
! 692d5e6fe6286682bb5eaaa37bbb3deb  gcc/testsuite/ada/acats-4/tests/cd/cd1009u.tst
! 907fdf446e490f986c267dd4b8d31baf  gcc/testsuite/ada/acats-4/tests/cd/cd1009v.ada
! 53fd05330599e7a416f8be2f4b93f8db  gcc/testsuite/ada/acats-4/tests/cd/cd1009w.ada
! 6e1baf3329c3ff434b0b23406203b126  gcc/testsuite/ada/acats-4/tests/cd/cd1009x.ada
! 992350215516da7fa9fc873f9d5f405e  gcc/testsuite/ada/acats-4/tests/cd/cd1009y.ada
! fb78c3da6117cb6f992401e7c6afde33  gcc/testsuite/ada/acats-4/tests/cd/cd1009z.ada
! 7746ed81a04fc97ba7ce7066aca9dc53  gcc/testsuite/ada/acats-4/tests/cd/cd11001.a
! 5b32d31e23b1f46b777ddb79782d91bc  gcc/testsuite/ada/acats-4/tests/cd/cd1c03a.ada
! 33753d6d5cc05f96879e603e7e4239ed  gcc/testsuite/ada/acats-4/tests/cd/cd1c03b.ada
! bb197eb3c945f5f3165b484b8d052169  gcc/testsuite/ada/acats-4/tests/cd/cd1c03c.ada
! d532f2cddb2a1d42073af8bead380310  gcc/testsuite/ada/acats-4/tests/cd/cd1c03e.tst
! 31687b0c41570bd2e2caf21db4be46d3  gcc/testsuite/ada/acats-4/tests/cd/cd1c03f.ada
! e0216b320efd829ccdc65f5d5771bcbb  gcc/testsuite/ada/acats-4/tests/cd/cd1c03g.ada
! c46fc765c5f46303364ae7f735fd4155  gcc/testsuite/ada/acats-4/tests/cd/cd1c03h.ada
! e99adb592df5a1337ea0d1ba20e1ea56  gcc/testsuite/ada/acats-4/tests/cd/cd1c03i.ada
! 356e60fd22404e9284ce91535fb26d24  gcc/testsuite/ada/acats-4/tests/cd/cd1c04a.ada
! e23985efbd7775125639e267122b2530  gcc/testsuite/ada/acats-4/tests/cd/cd1c04d.ada
! 960f74b381e41f1c5aca4cb19a43ba24  gcc/testsuite/ada/acats-4/tests/cd/cd1c04e.ada
! f4445570707e4cfc05845c2942f2a691  gcc/testsuite/ada/acats-4/tests/cd/cd1c06a.tst
! 38c0ca7c9c40e40a65ebac293401406d  gcc/testsuite/ada/acats-4/tests/cd/cd20001.a
! 894fb9467451442679c275e49d3ed9db  gcc/testsuite/ada/acats-4/tests/cd/cd2a21a.ada
! 9955b221c78032f3aa68113cb414afea  gcc/testsuite/ada/acats-4/tests/cd/cd2a21e.ada
! 8dc618f65572488c3498abeb7937c1c0  gcc/testsuite/ada/acats-4/tests/cd/cd2a22a.ada
! 4399f6fecfdde9c331f691aa035178e5  gcc/testsuite/ada/acats-4/tests/cd/cd2a22e.ada
! fa618469f3bfe667b6991f706078ceee  gcc/testsuite/ada/acats-4/tests/cd/cd2a22i.ada
! 17cd76bca6e556da829dc167dd37416d  gcc/testsuite/ada/acats-4/tests/cd/cd2a22j.ada
! 5758562d1787cc2c6c0d717e5f92579e  gcc/testsuite/ada/acats-4/tests/cd/cd2a23a.ada
! ee7517fa66b44ea029fa5afd44d3dfda  gcc/testsuite/ada/acats-4/tests/cd/cd2a23e.ada
! adb319b4b901cc78838f92ff36537b5d  gcc/testsuite/ada/acats-4/tests/cd/cd2a24a.ada
! 480832750af0f53992400b669cfa89c8  gcc/testsuite/ada/acats-4/tests/cd/cd2a24e.ada
! 3812be2a4f7026b0ea147488e4e11b79  gcc/testsuite/ada/acats-4/tests/cd/cd2a24i.ada
! b5db777461ec4b929a5d956caae5ab6c  gcc/testsuite/ada/acats-4/tests/cd/cd2a24j.ada
! d98f71fef01ecaa475c3f7b8bebd0e66  gcc/testsuite/ada/acats-4/tests/cd/cd2a31a.ada
! 25cf5e2245fd319818051c6d58e33e34  gcc/testsuite/ada/acats-4/tests/cd/cd2a31e.ada
! 12fff4322f5854f121a2307be72bd43d  gcc/testsuite/ada/acats-4/tests/cd/cd2a32a.ada
! c89035c306f20662287a41260e41c440  gcc/testsuite/ada/acats-4/tests/cd/cd2a32c.ada
! 3019cefd3cabc0a339ba1bcc2166712a  gcc/testsuite/ada/acats-4/tests/cd/cd2a32e.ada
! 509f33673d8a806e1fc5c994ecd367a7  gcc/testsuite/ada/acats-4/tests/cd/cd2a32g.ada
! 9f1153cc00985eff630f5a7529e785a6  gcc/testsuite/ada/acats-4/tests/cd/cd2a32i.ada
! 3b52721a12cbabf7af952961ab000124  gcc/testsuite/ada/acats-4/tests/cd/cd2a32j.ada
! b0ce5f538de9c46a7f93bb98b76a16c2  gcc/testsuite/ada/acats-4/tests/cd/cd2a51a.ada
! fc6c3486ba94594cbb01735d7665ee4c  gcc/testsuite/ada/acats-4/tests/cd/cd2a53a.ada
! e22ea0a1bf1e45a9cc8941659d5de2bc  gcc/testsuite/ada/acats-4/tests/cd/cd2a53e.ada
! 800cb5fbfa61381b047623e515b331e9  gcc/testsuite/ada/acats-4/tests/cd/cd2a83c.tst
! 890942afd45f173d9c7a48fcd9b93b9e  gcc/testsuite/ada/acats-4/tests/cd/cd2a91c.tst
! 8bf8bb847340d421752506f84e4d2970  gcc/testsuite/ada/acats-4/tests/cd/cd2b11b.ada
! c32d32bcd93ad954d2d4fd55f825977f  gcc/testsuite/ada/acats-4/tests/cd/cd2b11d.ada
! 1a738e39f3f9e6241c1210e391c74d04  gcc/testsuite/ada/acats-4/tests/cd/cd2b11e.ada
! 4c72be933f221db34e2a0e081b1987cb  gcc/testsuite/ada/acats-4/tests/cd/cd2b11f.ada
! 29657353f6d86b0ea8f7696b58cc2fe9  gcc/testsuite/ada/acats-4/tests/cd/cd2b16a.ada
! d5241430c4b7db939bd5e77692bf37b4  gcc/testsuite/ada/acats-4/tests/cd/cd2c11a.tst
! 90bc2d2d244c54d7f4a3cd052f4ec35f  gcc/testsuite/ada/acats-4/tests/cd/cd2c11d.tst
! c6ae74fd392f1fb6040ba95b1d1ae6f0  gcc/testsuite/ada/acats-4/tests/cd/cd2d11a.ada
! cdcdd3477a39a731b6a087ee53c8d310  gcc/testsuite/ada/acats-4/tests/cd/cd2d13a.ada
! 76610aaf77050e2ff007a677818d736b  gcc/testsuite/ada/acats-4/tests/cd/cd30001.a
! 074a289ffe88ab1f82a7410cb923d4e9  gcc/testsuite/ada/acats-4/tests/cd/cd30002.a
! 3c6e9682493e7e0159a203d7641e1a2e  gcc/testsuite/ada/acats-4/tests/cd/cd30003.a
! 58da39f40326823d0b3dcca45acdc03a  gcc/testsuite/ada/acats-4/tests/cd/cd30004.a
! 1c50e51c3b821e3d109ed5a501745811  gcc/testsuite/ada/acats-4/tests/cd/cd300050.am
! 56a32782666a26425c694389d3141e71  gcc/testsuite/ada/acats-4/tests/cd/cd300051.c
! 6cf79585c700a6d44cf9fd6aff68bad8  gcc/testsuite/ada/acats-4/tests/cd/cd30006.a
! de71b44b5cddbf0fcc1e61f4b3bf85d5  gcc/testsuite/ada/acats-4/tests/cd/cd30007.a
! 6975fda95f2626a0f390cafdd2c40ca5  gcc/testsuite/ada/acats-4/tests/cd/cd30008.a
! 6c5358b148b289c9414824f3eca6c829  gcc/testsuite/ada/acats-4/tests/cd/cd30009.a
! d0a53d1355c18b26fb815775269f19ff  gcc/testsuite/ada/acats-4/tests/cd/cd30010.a
! 53302b5bf903a58fb95e205690813d78  gcc/testsuite/ada/acats-4/tests/cd/cd30011.a
! 03b96d80ed2b752193a510629a87cc3c  gcc/testsuite/ada/acats-4/tests/cd/cd30012.a
! f620b9538219fdb8788793f5fb0f4624  gcc/testsuite/ada/acats-4/tests/cd/cd30013.a
! 7129ad85c881b16cee177cd7c1e06336  gcc/testsuite/ada/acats-4/tests/cd/cd30014.a
! a8163e0d624406b874260e4169d9e49c  gcc/testsuite/ada/acats-4/tests/cd/cd3014a.ada
! b3c46e3333ad22ce02ee156f3f0bccff  gcc/testsuite/ada/acats-4/tests/cd/cd3014c.ada
! a341da17e2d571e891434aa086ae7d3e  gcc/testsuite/ada/acats-4/tests/cd/cd3014d.ada
! 204d7f2709b5ba9cddcb718fc3d8ec18  gcc/testsuite/ada/acats-4/tests/cd/cd3014f.ada
! a86fa642d37091be0c5e5119e8c46645  gcc/testsuite/ada/acats-4/tests/cd/cd3015a.ada
! 38a79cfd7d26ff49fc8ee336963b178f  gcc/testsuite/ada/acats-4/tests/cd/cd3015c.ada
! 516902a49ddef41f79ee415e4edbb912  gcc/testsuite/ada/acats-4/tests/cd/cd3015e.ada
! 21588812fb8df6d087570f29c23c5d39  gcc/testsuite/ada/acats-4/tests/cd/cd3015f.ada
! c8a6fa2243d818236602663b274b5ba9  gcc/testsuite/ada/acats-4/tests/cd/cd3015g.ada
! c31ca49858b05c8ca516526b0e15945f  gcc/testsuite/ada/acats-4/tests/cd/cd3015h.ada
! c130ab902d51f975c0efadc0d44c9361  gcc/testsuite/ada/acats-4/tests/cd/cd3015i.ada
! 2fa00ee1e19df0bb0e4dc668c1d238fd  gcc/testsuite/ada/acats-4/tests/cd/cd3015k.ada
! 0c71d1dfc5a7d7c4d232217c2ef3e00f  gcc/testsuite/ada/acats-4/tests/cd/cd3021a.ada
! fd95d787e27f8f80c3bccc691bf0417d  gcc/testsuite/ada/acats-4/tests/cd/cd40001.a
! a3f551b50734da9e1de425c6988b1f43  gcc/testsuite/ada/acats-4/tests/cd/cd4031a.ada
! 1363b8d9d26525600395a9118a1a4041  gcc/testsuite/ada/acats-4/tests/cd/cd4041a.tst
! 255be84f9bd123a67360189ab2d64cdf  gcc/testsuite/ada/acats-4/tests/cd/cd4051a.ada
! 37ae7a5703b3780f73cd5ae4eb39621a  gcc/testsuite/ada/acats-4/tests/cd/cd4051b.ada
! 07adf8476ba0c5e57a2bea963c120c2a  gcc/testsuite/ada/acats-4/tests/cd/cd4051c.ada
! cf5f11fa4855f5f18dba58d556b7ca63  gcc/testsuite/ada/acats-4/tests/cd/cd4051d.ada
! 20478b00e54601fd76a247d8a78c4a8f  gcc/testsuite/ada/acats-4/tests/cd/cd5003a.ada
! 4cff6e4a9ec3d2900f66bfc5693af89a  gcc/testsuite/ada/acats-4/tests/cd/cd5003b.ada
! d13512a51a4eb52527563404909e596e  gcc/testsuite/ada/acats-4/tests/cd/cd5003c.ada
! 4652d6ed2c04ade1800842b5dbfdabf9  gcc/testsuite/ada/acats-4/tests/cd/cd5003d.ada
! 005bf8518b263e4cee4d26c5db87e58b  gcc/testsuite/ada/acats-4/tests/cd/cd5003e.ada
! 8ff99eb70e788c11615ac412a1a7b4fb  gcc/testsuite/ada/acats-4/tests/cd/cd5003f.ada
! 719c829d93aa5b1f5984a681101887d3  gcc/testsuite/ada/acats-4/tests/cd/cd5003g.ada
! a7821be04ce2545857881e21292d5867  gcc/testsuite/ada/acats-4/tests/cd/cd5003h.ada
! 3491fd905bd30777ef1fbdfae6595acf  gcc/testsuite/ada/acats-4/tests/cd/cd5003i.ada
! 88b907e17fa7e933c0aa985bcbdba611  gcc/testsuite/ada/acats-4/tests/cd/cd5011a.ada
! 502c219e404c935fb79b18a5bc9edb77  gcc/testsuite/ada/acats-4/tests/cd/cd5011c.ada
! 71b7123461788aab03963e62fecc0ba3  gcc/testsuite/ada/acats-4/tests/cd/cd5011e.ada
! 8ee70bf0284e509f67c72903d25709f7  gcc/testsuite/ada/acats-4/tests/cd/cd5011g.ada
! 3b37531d4672ce7853d736e20f205d9e  gcc/testsuite/ada/acats-4/tests/cd/cd5011i.ada
! b1bd44ec7ae1e5e46e2aecd8d6f8f7b7  gcc/testsuite/ada/acats-4/tests/cd/cd5011k.ada
! b632fa011acdccee9f2b9fb3b5a030bf  gcc/testsuite/ada/acats-4/tests/cd/cd5011m.ada
! fd5e412763d1e844067af789a1ac1c48  gcc/testsuite/ada/acats-4/tests/cd/cd5011q.ada
! ee93e2b7d81f47c56f7b7ad4552b21bb  gcc/testsuite/ada/acats-4/tests/cd/cd5011s.ada
! 47d11b263404f1dd8fe59440a5052207  gcc/testsuite/ada/acats-4/tests/cd/cd5012a.ada
! 1892070e6feeb321986c5cbbcc427b4a  gcc/testsuite/ada/acats-4/tests/cd/cd5012b.ada
! ff4f485285269aca5506577d2a0b3b25  gcc/testsuite/ada/acats-4/tests/cd/cd5012e.ada
! a5f14af29759eeb2088d73d911c87c1f  gcc/testsuite/ada/acats-4/tests/cd/cd5012f.ada
! e5f28d4028e3550e275facc5a05598e5  gcc/testsuite/ada/acats-4/tests/cd/cd5012i.ada
! 16dbc766d573615ec2e4899fad17e3bf  gcc/testsuite/ada/acats-4/tests/cd/cd5012m.ada
! 6cc56f376ceaa00b529da26c6460e8d6  gcc/testsuite/ada/acats-4/tests/cd/cd5013a.ada
! c0918022f30f205dd1507581efbfdd4d  gcc/testsuite/ada/acats-4/tests/cd/cd5013c.ada
! 811d55a4a9aee790bed1e966d928fbb2  gcc/testsuite/ada/acats-4/tests/cd/cd5013e.ada
! 21ba9a45a10469204bf9be2e86069c81  gcc/testsuite/ada/acats-4/tests/cd/cd5013g.ada
! 4f445e0ed2b7e60f8eb00f85696e3a7d  gcc/testsuite/ada/acats-4/tests/cd/cd5013i.ada
! 0b15bb9a260246e000106d4512840f2a  gcc/testsuite/ada/acats-4/tests/cd/cd5013k.ada
! 1da10e9981f9def7bfc6d6c2143211ec  gcc/testsuite/ada/acats-4/tests/cd/cd5013m.ada
! 08a9e582acca940c3e759a92734c93c9  gcc/testsuite/ada/acats-4/tests/cd/cd5013o.ada
! 1968e13f319d3b0c07f4c96303157e60  gcc/testsuite/ada/acats-4/tests/cd/cd5014a.ada
! 7c607413594268a5d4b2292b7cb0413b  gcc/testsuite/ada/acats-4/tests/cd/cd5014c.ada
! 8fef3117954cc6c0a11bb3f93e364b40  gcc/testsuite/ada/acats-4/tests/cd/cd5014e.ada
! 0b813473017a44baccc884d20552e8cd  gcc/testsuite/ada/acats-4/tests/cd/cd5014g.ada
! 527b59a75ca64a8266a57d7a5088fe89  gcc/testsuite/ada/acats-4/tests/cd/cd5014i.ada
! fc74902958756d067346aa25dc320720  gcc/testsuite/ada/acats-4/tests/cd/cd5014k.ada
! b77eb1036af76cfb5202f2de49ace505  gcc/testsuite/ada/acats-4/tests/cd/cd5014m.ada
! ab247e3e629023fbd5f60ebe8227bdb5  gcc/testsuite/ada/acats-4/tests/cd/cd5014o.ada
! fc0ebe93b10ae9a9d4c3c4a5df942f54  gcc/testsuite/ada/acats-4/tests/cd/cd5014t.ada
! c00ed5123db97df563396ec85314f780  gcc/testsuite/ada/acats-4/tests/cd/cd5014v.ada
! bbf572fbf22be12dd2a668dcd54775ea  gcc/testsuite/ada/acats-4/tests/cd/cd5014x.ada
! 34d86be0b29568cce7a2a466311b3b81  gcc/testsuite/ada/acats-4/tests/cd/cd5014y.ada
! b56429de483f94a422eb6ca63ee074f9  gcc/testsuite/ada/acats-4/tests/cd/cd5014z.ada
! aa622725c36aef33e28cfe216e74dbf2  gcc/testsuite/ada/acats-4/tests/cd/cd70001.a
! 2eb61a4a6db022ec0de56d97cdb58d92  gcc/testsuite/ada/acats-4/tests/cd/cd7002a.ada
! aaa73d4164232ddfd2c5811f78c69833  gcc/testsuite/ada/acats-4/tests/cd/cd7007b.ada
! a2455776674d2ad1da3cc32ece807208  gcc/testsuite/ada/acats-4/tests/cd/cd7101d.ada
! aa55af7af75ac0b3c135078d81fb495f  gcc/testsuite/ada/acats-4/tests/cd/cd7101e.dep
! 54f3d5f0c03029d0398feadc1fba13fa  gcc/testsuite/ada/acats-4/tests/cd/cd7101f.dep
! d4c58764ec07d4b64c614f06a404a048  gcc/testsuite/ada/acats-4/tests/cd/cd7101g.tst
! b19b5291beb6e4d9ba34dc60acc52917  gcc/testsuite/ada/acats-4/tests/cd/cd7103d.ada
! bc9859e9de09dbae5b873f61d7dd6d25  gcc/testsuite/ada/acats-4/tests/cd/cd7202a.ada
! 27154e701456e154266de19089be5f95  gcc/testsuite/ada/acats-4/tests/cd/cd7204b.ada
! 866e238520f9fe6f2e1ebc1c66530b27  gcc/testsuite/ada/acats-4/tests/cd/cd7204c.ada
! 463ecdd8176f35af59f9b3791565e928  gcc/testsuite/ada/acats-4/tests/cd/cd72a01.a
! 97e1c7a2d8dcad44f97e8a054d7ddbfa  gcc/testsuite/ada/acats-4/tests/cd/cd72a02.a
! 094d528313c32d60bc8ef9966a3ba667  gcc/testsuite/ada/acats-4/tests/cd/cd7305a.ada
! 89a9ca0baa4aea5a158e931fd05972da  gcc/testsuite/ada/acats-4/tests/cd/cd90001.a
! b35e132e38a1316bb94eb5685e744e45  gcc/testsuite/ada/acats-4/tests/cd/cd92001.a
! 4acd15be94cdb921d9aaaf1c68bc86bd  gcc/testsuite/ada/acats-4/tests/cd/cda201a.ada
! 95c680f466bbb6b462cff702c8c051d8  gcc/testsuite/ada/acats-4/tests/cd/cda201b.ada
! 46aab534344a6aeab59cdc069c0a30a9  gcc/testsuite/ada/acats-4/tests/cd/cda201c.ada
! 51c51b9e46a1a5740ae0b124d61d55ca  gcc/testsuite/ada/acats-4/tests/cd/cda201e.ada
! e5b8e54ff3bc71d8a0f53d66df7260a5  gcc/testsuite/ada/acats-4/tests/cd/cdb0001.a
! 3e8905eddf7e2c220acc4b501f2233a1  gcc/testsuite/ada/acats-4/tests/cd/cdb0002.a
! 4d8334f61837b54deaa10e41063c39af  gcc/testsuite/ada/acats-4/tests/cd/cdb0a01.a
! d60d2f5f8d96507e1b594680a8ddbf8c  gcc/testsuite/ada/acats-4/tests/cd/cdb0a02.a
! 0d86653c4623915b37f686be9439be22  gcc/testsuite/ada/acats-4/tests/cd/cdb3a01.a
! cc866a4ee33da37e6ec427b9e73ae8ab  gcc/testsuite/ada/acats-4/tests/cd/cdb4001.a
! d3910d26782aaab53d6acf37e0519685  gcc/testsuite/ada/acats-4/tests/cd/cdd1001.a
! ecea7d5e451c93f7530aa28e39d75580  gcc/testsuite/ada/acats-4/tests/cd/cdd2001.a
! 09e97dda9b7ced04ce9c741ad0599d96  gcc/testsuite/ada/acats-4/tests/cd/cdd2a01.a
! 72e91e49172aabe99c78bb568616e583  gcc/testsuite/ada/acats-4/tests/cd/cdd2a02.a
! 36648315ddf64d4e564a5e05da351b1c  gcc/testsuite/ada/acats-4/tests/cd/cdd2a03.a
! 9ab6f734463584ed4f42316ca9f7798f  gcc/testsuite/ada/acats-4/tests/cd/cdd2b01.a
! 68f2a16c4f09dc4c329266f8df2df713  gcc/testsuite/ada/acats-4/tests/cd/cdd2b02.a
! 3ce443f0ccbd9dba9e932b0f23c415a2  gcc/testsuite/ada/acats-4/tests/cd/cdd2b03.a
! 9d778d8fd57f33ce01f19581f56f3ccd  gcc/testsuite/ada/acats-4/tests/cd/cdd2b04.a
! 317e3f1dc15de17ef49001a1f08c35b3  gcc/testsuite/ada/acats-4/tests/cd/cde0001.a
! 5366c384529d40f1900fd221fd1aefb7  gcc/testsuite/ada/acats-4/tests/cd/cde0002.a
! db4fa358a29fb1580529e940fa7534f7  gcc/testsuite/ada/acats-4/tests/cd/cde0003.a
! e3c9b20329b0f7e7d60dc55f195727f7  gcc/testsuite/ada/acats-4/tests/ce/ce2102a.ada
! 56be361ddf744d65d5919f5f77470cfd  gcc/testsuite/ada/acats-4/tests/ce/ce2102b.ada
! 83c95e98a0edc5913eda034e9803f9a3  gcc/testsuite/ada/acats-4/tests/ce/ce2102c.tst
! 704cb92cd741551b8c76bb24ab8f01a6  gcc/testsuite/ada/acats-4/tests/ce/ce2102d.ada
! a4c5c5ff89eb450e4c847a9cebea2a03  gcc/testsuite/ada/acats-4/tests/ce/ce2102e.ada
! 27760dba95f836989a21b8529a71855d  gcc/testsuite/ada/acats-4/tests/ce/ce2102f.ada
! fe48a7b7badffee5e6b11bab0b32391a  gcc/testsuite/ada/acats-4/tests/ce/ce2102g.ada
! d704111bdcdb479f1991a8daee40cdc6  gcc/testsuite/ada/acats-4/tests/ce/ce2102h.tst
! 660d5113b9badd86759bd83e670ede30  gcc/testsuite/ada/acats-4/tests/ce/ce2102i.ada
! 8796caaebedc2e2c57dc7e71ff241431  gcc/testsuite/ada/acats-4/tests/ce/ce2102j.ada
! ceb778fa800778a3993ddc7cd9190c8f  gcc/testsuite/ada/acats-4/tests/ce/ce2102k.ada
! 23bd39333ef2a75df64af434a8d52288  gcc/testsuite/ada/acats-4/tests/ce/ce2102l.ada
! 9a4f2b513351918f23c1e1fcc5d48aaa  gcc/testsuite/ada/acats-4/tests/ce/ce2102m.ada
! 57880455279d766e91fd84c1ad26a38f  gcc/testsuite/ada/acats-4/tests/ce/ce2102n.ada
! 1658c529498b5b4b8d79ff4a0a362715  gcc/testsuite/ada/acats-4/tests/ce/ce2102o.ada
! a942f038d4463c45d5c583b1985c7c87  gcc/testsuite/ada/acats-4/tests/ce/ce2102p.ada
! 8ce185028df0d4e8d8de27e964b87758  gcc/testsuite/ada/acats-4/tests/ce/ce2102q.ada
! 1439304477a0f927f09dcb2a2639fe66  gcc/testsuite/ada/acats-4/tests/ce/ce2102r.ada
! a5aff3dd28b5d54dcd3d2367ad10512e  gcc/testsuite/ada/acats-4/tests/ce/ce2102s.ada
! fab20fee3d01ec0d98c83ae2e0b85bda  gcc/testsuite/ada/acats-4/tests/ce/ce2102t.ada
! fb506c6fcfe4ce698ff9a830b7c56229  gcc/testsuite/ada/acats-4/tests/ce/ce2102u.ada
! 6533e0fca22d00bf5e7584ed3a4dc842  gcc/testsuite/ada/acats-4/tests/ce/ce2102v.ada
! 96597eb49b1372fa65ee2328da95ca07  gcc/testsuite/ada/acats-4/tests/ce/ce2102w.ada
! 79aea0b4cdef1b6365b9be26c87383b1  gcc/testsuite/ada/acats-4/tests/ce/ce2102x.ada
! b982e3e68e8a4f04e10e3b2780934046  gcc/testsuite/ada/acats-4/tests/ce/ce2102y.ada
! d102ee0d07b326b9d4073e60e25ee113  gcc/testsuite/ada/acats-4/tests/ce/ce2103a.tst
! ae11fc214dfce8e1c5dce5dd8dff9ad9  gcc/testsuite/ada/acats-4/tests/ce/ce2103b.tst
! 97d4cf14fe4c578c0d86448663834c20  gcc/testsuite/ada/acats-4/tests/ce/ce2103c.ada
! 99c7332bd6a90a3213eb826d7f902efa  gcc/testsuite/ada/acats-4/tests/ce/ce2103d.ada
! 60b763cadd79ca8009e41e392d9aa37b  gcc/testsuite/ada/acats-4/tests/ce/ce2104a.ada
! 4f9096bebf0622c62a3f4358655497af  gcc/testsuite/ada/acats-4/tests/ce/ce2104b.ada
! f1962e353466d1757ad6a9c641624847  gcc/testsuite/ada/acats-4/tests/ce/ce2104c.ada
! c687f392201a3d542022c53d87c728c6  gcc/testsuite/ada/acats-4/tests/ce/ce2104d.ada
! e59622b5be7a0b85f62f4f5dfd87250c  gcc/testsuite/ada/acats-4/tests/ce/ce2106a.ada
! 0390975b4b078391dba02ca3c8f31638  gcc/testsuite/ada/acats-4/tests/ce/ce2106b.ada
! 8576613b0fb7cb5404cf64939d34b3af  gcc/testsuite/ada/acats-4/tests/ce/ce2108e.ada
! 651994d660ec55d3e422ceb303d2034b  gcc/testsuite/ada/acats-4/tests/ce/ce2108f.ada
! ba5e89f5212818e3e53a4cf7d59d646c  gcc/testsuite/ada/acats-4/tests/ce/ce2108g.ada
! fb62dbd03a1355b41f3d194167f479aa  gcc/testsuite/ada/acats-4/tests/ce/ce2108h.ada
! e1df0b3934297c1162437a03a450f12a  gcc/testsuite/ada/acats-4/tests/ce/ce2109a.ada
! d91a1fcd2695ad63b53b63e0d22d3f22  gcc/testsuite/ada/acats-4/tests/ce/ce2109b.ada
! 0a95aeffa3822cc96d6f770183b34979  gcc/testsuite/ada/acats-4/tests/ce/ce2109c.ada
! 329e30bd5ac69971fa84cd76bd66b302  gcc/testsuite/ada/acats-4/tests/ce/ce2110a.ada
! b63ea51508983167185a0e378c787235  gcc/testsuite/ada/acats-4/tests/ce/ce2110c.ada
! 385c38395502c50c4f04f16ed172b5c3  gcc/testsuite/ada/acats-4/tests/ce/ce2111a.ada
! 0cab0967d4b6100c093d83a0daa2ca06  gcc/testsuite/ada/acats-4/tests/ce/ce2111b.ada
! 1def457c7ded3aa15287b30a02c2c1bf  gcc/testsuite/ada/acats-4/tests/ce/ce2111c.ada
! e039c87f3e2f30f3b378642cc3d5d3c3  gcc/testsuite/ada/acats-4/tests/ce/ce2111e.ada
! 607ff5b75e0ac677df365e3867c8b8bc  gcc/testsuite/ada/acats-4/tests/ce/ce2111f.ada
! 9b55a66cd32d536d65916a0288c480f4  gcc/testsuite/ada/acats-4/tests/ce/ce2111g.ada
! 9aac3a3d20f722d72f0a97d15db7e6ff  gcc/testsuite/ada/acats-4/tests/ce/ce2111i.ada
! 451691c716142d6af52540932182f7a8  gcc/testsuite/ada/acats-4/tests/ce/ce2201a.ada
! a9019ab5c60383a5aec6b4e12cf67546  gcc/testsuite/ada/acats-4/tests/ce/ce2201b.ada
! 29858e1a8a6dd46bb9164e8c8edbcddf  gcc/testsuite/ada/acats-4/tests/ce/ce2201c.ada
! 34d8b0e50b71bb424acf20936253736f  gcc/testsuite/ada/acats-4/tests/ce/ce2201d.dep
! b20fac24f54e723d0cc0d2b283a1a98c  gcc/testsuite/ada/acats-4/tests/ce/ce2201e.dep
! e5ef319f07f83742ea6dacb674de4c74  gcc/testsuite/ada/acats-4/tests/ce/ce2201f.ada
! 89d1575c20871ec14a7510e2c7fd7e56  gcc/testsuite/ada/acats-4/tests/ce/ce2201g.ada
! 06e274ba9cfdca457d343f7d036af0bc  gcc/testsuite/ada/acats-4/tests/ce/ce2201h.ada
! 819625912e63f1bb0690319469d91d14  gcc/testsuite/ada/acats-4/tests/ce/ce2201i.ada
! c75df2290aa04176fd8862e092446183  gcc/testsuite/ada/acats-4/tests/ce/ce2201j.ada
! 5cd3fabcbac1ce5f97eb0c3b7ff68060  gcc/testsuite/ada/acats-4/tests/ce/ce2201k.ada
! 5f85b515f14775082f0cef057e6c7cec  gcc/testsuite/ada/acats-4/tests/ce/ce2201l.ada
! dacbb7d19d52906e970100c8a0524fd4  gcc/testsuite/ada/acats-4/tests/ce/ce2201m.ada
! 45f176910989cfdcd7fdc941f37a5b71  gcc/testsuite/ada/acats-4/tests/ce/ce2201n.ada
! 376cc7edaf46154ca8f65652b5d6eca4  gcc/testsuite/ada/acats-4/tests/ce/ce2202a.ada
! 939f3ce3a39c9ca9d86e52320f27ff2c  gcc/testsuite/ada/acats-4/tests/ce/ce2203a.tst
! ba04f29f243a15d2bbe413b9e0066901  gcc/testsuite/ada/acats-4/tests/ce/ce2204a.ada
! 2fc36a0b7b4ddb630b023af7c4d90ba7  gcc/testsuite/ada/acats-4/tests/ce/ce2204b.ada
! 9ef6a168f2e294541459fe7a14263eb5  gcc/testsuite/ada/acats-4/tests/ce/ce2204c.ada
! b0274d08b84af4b62ad59e3d9ddb07df  gcc/testsuite/ada/acats-4/tests/ce/ce2204d.ada
! 34418b28be06a3924c3a2584bef259b6  gcc/testsuite/ada/acats-4/tests/ce/ce2205a.ada
! 5c92fac63d085e6a68726106d482ea42  gcc/testsuite/ada/acats-4/tests/ce/ce2206a.ada
! fcc7c7c24b495ce3ddaa0f9a580d75ee  gcc/testsuite/ada/acats-4/tests/ce/ce2208b.ada
! 97568e8cf63e0507c14b35a1a14e20c0  gcc/testsuite/ada/acats-4/tests/ce/ce2401a.ada
! dcd9e7cbbd7e97c5dd3e3add1eb9dc36  gcc/testsuite/ada/acats-4/tests/ce/ce2401b.ada
! efcdb258c81995c38e8cc3694b22f6dd  gcc/testsuite/ada/acats-4/tests/ce/ce2401c.ada
! e7f9dbd6fea160401601272d061289a3  gcc/testsuite/ada/acats-4/tests/ce/ce2401e.ada
! 1bf5badbcde77492314acef836d8ea11  gcc/testsuite/ada/acats-4/tests/ce/ce2401f.ada
! eb673da58247c955773ce3b8e1c2d4f3  gcc/testsuite/ada/acats-4/tests/ce/ce2401h.ada
! 6918301d4740c9f3a5bcdf8763ba341a  gcc/testsuite/ada/acats-4/tests/ce/ce2401i.ada
! 664a2145b5105ab8ae94b8ba8dca5cdd  gcc/testsuite/ada/acats-4/tests/ce/ce2401j.ada
! 7f54c0274e46b59b1fec8510f4fc3ad7  gcc/testsuite/ada/acats-4/tests/ce/ce2401k.ada
! a83a38fe98395d0bb886cb6143eb8170  gcc/testsuite/ada/acats-4/tests/ce/ce2401l.ada
! 2c4e89aba46a0152400d53a9aed78ba8  gcc/testsuite/ada/acats-4/tests/ce/ce2402a.ada
! 4e54cd3fcd15e2f31d844365222a85b3  gcc/testsuite/ada/acats-4/tests/ce/ce2403a.tst
! 4fce3b03a76a452b2433c54b199834ff  gcc/testsuite/ada/acats-4/tests/ce/ce2404a.ada
! ad81e45a71e09a3713483ae198eae6b0  gcc/testsuite/ada/acats-4/tests/ce/ce2404b.ada
! 397eb6a738bd1fb16bf404d4581a21e8  gcc/testsuite/ada/acats-4/tests/ce/ce2405b.ada
! 035cdd8af2147f386ba98eafee6fa53d  gcc/testsuite/ada/acats-4/tests/ce/ce2406a.ada
! bc1c3fb660e3a1a6cd3c3cd2c20c6f21  gcc/testsuite/ada/acats-4/tests/ce/ce2407a.ada
! e21a045af5825bcf7bae0f7774bf28bb  gcc/testsuite/ada/acats-4/tests/ce/ce2407b.ada
! 1ac50c952fbab2fcf2e1391bb697aac1  gcc/testsuite/ada/acats-4/tests/ce/ce2408a.ada
! fb58d51e1570b9726aa28d10034cf135  gcc/testsuite/ada/acats-4/tests/ce/ce2408b.ada
! d60b98c48fae643e51060dfd4200371e  gcc/testsuite/ada/acats-4/tests/ce/ce2409a.ada
! 5b25842de422c3e8d6301447c51d8985  gcc/testsuite/ada/acats-4/tests/ce/ce2409b.ada
! e03ae0d17d4ce186bb17ad28c1d12c8e  gcc/testsuite/ada/acats-4/tests/ce/ce2410a.ada
! a10dc12fca4ab67d0e070b8f08878918  gcc/testsuite/ada/acats-4/tests/ce/ce2410b.ada
! ef01f4584aa6fe18dfca4291aa2b9936  gcc/testsuite/ada/acats-4/tests/ce/ce2411a.ada
! cfdd50459f606dfd0272b27f902831f0  gcc/testsuite/ada/acats-4/tests/ce/ce3002b.tst
! 8c7a2401c3fd65042aaf7fbaaebb05d5  gcc/testsuite/ada/acats-4/tests/ce/ce3002c.tst
! 60cfa1b0514071feae57d422f407bbc6  gcc/testsuite/ada/acats-4/tests/ce/ce3002d.ada
! f7f30f9bace21926cfd024ab3ae7ed4a  gcc/testsuite/ada/acats-4/tests/ce/ce3002f.ada
! c4f22dddebf62a993e9a5dca37748e9a  gcc/testsuite/ada/acats-4/tests/ce/ce3102a.ada
! 019efa14311a98e7532962ec6464bb8e  gcc/testsuite/ada/acats-4/tests/ce/ce3102b.tst
! dab3a80b1760df07e4cf44cef4f9ca81  gcc/testsuite/ada/acats-4/tests/ce/ce3102d.ada
! 112884bd382c35480c4248866f3a556e  gcc/testsuite/ada/acats-4/tests/ce/ce3102e.ada
! 884f6ff3272bb27974b5c059fd940eb8  gcc/testsuite/ada/acats-4/tests/ce/ce3102f.ada
! 561a9bb3212245b35ea37ed7834ace08  gcc/testsuite/ada/acats-4/tests/ce/ce3102g.ada
! a5c10d55f5c631bb605e9f92f33b3d83  gcc/testsuite/ada/acats-4/tests/ce/ce3102h.ada
! 16f9be98787f36d98dd3a0d7c5673f99  gcc/testsuite/ada/acats-4/tests/ce/ce3102i.ada
! f2fb4988c4b17b901cb57756fa48524d  gcc/testsuite/ada/acats-4/tests/ce/ce3102j.ada
! 5885ee3beb2611070afd9595b92d024d  gcc/testsuite/ada/acats-4/tests/ce/ce3102k.ada
! af4fce15977e583c9580c84a57f46000  gcc/testsuite/ada/acats-4/tests/ce/ce3103a.ada
! 1a359b00af85a86ae636ed8ce9f54011  gcc/testsuite/ada/acats-4/tests/ce/ce3104a.ada
! 62ae4a6a702993a429980ed85d7d288b  gcc/testsuite/ada/acats-4/tests/ce/ce3104b.ada
! 3097f1866f5a1a12edc0bd1ad06fcfd7  gcc/testsuite/ada/acats-4/tests/ce/ce3104c.ada
! ffdd7cea02bf78362b21d5b47923f55a  gcc/testsuite/ada/acats-4/tests/ce/ce3106a.ada
! c089188b0086e9498b16c61338d1c72e  gcc/testsuite/ada/acats-4/tests/ce/ce3106b.ada
! 7ec91be55117ceec515d06ff18fd96f6  gcc/testsuite/ada/acats-4/tests/ce/ce3107a.tst
! 29791bc75974606a36e491a742bb3096  gcc/testsuite/ada/acats-4/tests/ce/ce3107b.ada
! eb49ffd6a23ce40400cdc2ebf0c8f371  gcc/testsuite/ada/acats-4/tests/ce/ce3108a.ada
! fd863ff6b1661c6c912d9bf6aebc3bc9  gcc/testsuite/ada/acats-4/tests/ce/ce3108b.ada
! 97e280eb5834dec4e91bbbc97553b1c7  gcc/testsuite/ada/acats-4/tests/ce/ce3110a.ada
! 5f42a55944d863fa57d6e12253d4922c  gcc/testsuite/ada/acats-4/tests/ce/ce3112c.ada
! c9d44fa9ff3ca5a2ccdda83b010c1f54  gcc/testsuite/ada/acats-4/tests/ce/ce3112d.ada
! f01486f7b41b7e9bb285f2b42444a64f  gcc/testsuite/ada/acats-4/tests/ce/ce3114a.ada
! 816907364fd976b617fbee2dc8afc858  gcc/testsuite/ada/acats-4/tests/ce/ce3115a.ada
! 55427ea93a85e61592244d314238e089  gcc/testsuite/ada/acats-4/tests/ce/ce3201a.ada
! 0a50773e8cb26d94c11adb5533460429  gcc/testsuite/ada/acats-4/tests/ce/ce3202a.ada
! 06b5bbb44e688a3c0c0ca62e655c32ab  gcc/testsuite/ada/acats-4/tests/ce/ce3206a.ada
! 98a3e7772f00a7bebd187c6c2d309f82  gcc/testsuite/ada/acats-4/tests/ce/ce3207a.ada
! f4529439e526335f9525bb157863cc63  gcc/testsuite/ada/acats-4/tests/ce/ce3301a.ada
! 0a70a8ac8ee35a84b380c07ea541b57f  gcc/testsuite/ada/acats-4/tests/ce/ce3302a.ada
! 9bac0e06cef0c10689cc849f3c509fcf  gcc/testsuite/ada/acats-4/tests/ce/ce3303a.ada
! 23c77e761edd8a91671acf3422a0ca06  gcc/testsuite/ada/acats-4/tests/ce/ce3304a.tst
! d0da64618db56f4abfac0c3b90fa0296  gcc/testsuite/ada/acats-4/tests/ce/ce3305a.ada
! 3f7e70ff0a93058dd780e3e6e4fefa3d  gcc/testsuite/ada/acats-4/tests/ce/ce3306a.ada
! 4e1329f66825e0283637c00ca6acc5b6  gcc/testsuite/ada/acats-4/tests/ce/ce3401a.ada
! df06c67b3b1ea125ef98d5346e81cc7e  gcc/testsuite/ada/acats-4/tests/ce/ce3402a.ada
! b50c12a694c3c56d3a2cf04d9ca9ccc3  gcc/testsuite/ada/acats-4/tests/ce/ce3402c.ada
! e2743c970635e3ead26ba550e6c23aab  gcc/testsuite/ada/acats-4/tests/ce/ce3402d.ada
! c0341031211c513d8c748c61167125fb  gcc/testsuite/ada/acats-4/tests/ce/ce3402e.ada
! f9deacf7d49917900f3fcee43aee5ca6  gcc/testsuite/ada/acats-4/tests/ce/ce3403a.ada
! fec31596c967bb1bab6a046e32225c6b  gcc/testsuite/ada/acats-4/tests/ce/ce3403b.ada
! 7e9202e07d3f865f2ceeb151792c452f  gcc/testsuite/ada/acats-4/tests/ce/ce3403c.ada
! 64070608c4f9c6a05d1e23408e5beb0d  gcc/testsuite/ada/acats-4/tests/ce/ce3403d.ada
! d82cac6d273d1fbe65506c1eecff04b9  gcc/testsuite/ada/acats-4/tests/ce/ce3403e.ada
! 7cdc9d7a9c43884cbedbde28d4954fe4  gcc/testsuite/ada/acats-4/tests/ce/ce3403f.ada
! dc1a67476ce793079c7af8b2d1b275ac  gcc/testsuite/ada/acats-4/tests/ce/ce3404a.ada
! 8b982e428bef61a3980b00b8079ad4f2  gcc/testsuite/ada/acats-4/tests/ce/ce3404b.ada
! 5cc2fbe64ade8df5eced5c397a38020a  gcc/testsuite/ada/acats-4/tests/ce/ce3404c.ada
! 871605306e645bb8c8952539a05637b2  gcc/testsuite/ada/acats-4/tests/ce/ce3404d.ada
! 5afe1fa2e94e304b32849dad526b0cb4  gcc/testsuite/ada/acats-4/tests/ce/ce3405a.ada
! 75e7f1f2e2d338bdbc593c460b1e055f  gcc/testsuite/ada/acats-4/tests/ce/ce3405c.ada
! d61f321bab45f725f89da9ebd98c7959  gcc/testsuite/ada/acats-4/tests/ce/ce3405d.ada
! 683881439899376dec46462b7b974e93  gcc/testsuite/ada/acats-4/tests/ce/ce3406a.ada
! 1d67a6840b438185a99382b830ffe815  gcc/testsuite/ada/acats-4/tests/ce/ce3406b.ada
! 00a1933b7205d0378d065989609d0e6f  gcc/testsuite/ada/acats-4/tests/ce/ce3406c.ada
! bc8a2b4d509e438b111cb451ba6c633d  gcc/testsuite/ada/acats-4/tests/ce/ce3406d.ada
! 0c8f9906304b5f6e2f871a2f56543e48  gcc/testsuite/ada/acats-4/tests/ce/ce3407a.ada
! d6da13ff2e3c07bb7f9617a04f387915  gcc/testsuite/ada/acats-4/tests/ce/ce3407b.ada
! bacd5248d5883ef91439cbdd245cbd9a  gcc/testsuite/ada/acats-4/tests/ce/ce3407c.ada
! babb7fd82795ea56950eb78715c895aa  gcc/testsuite/ada/acats-4/tests/ce/ce3408a.ada
! e30520b348614e4a8e628b3ea3aad54e  gcc/testsuite/ada/acats-4/tests/ce/ce3408b.ada
! 5d1d893ced6dbc7d9f25ee4a5fb8e211  gcc/testsuite/ada/acats-4/tests/ce/ce3408c.ada
! ca268135b5b6d64dc8be3768b6f7edc0  gcc/testsuite/ada/acats-4/tests/ce/ce3409a.ada
! 6c79cafc53b26bfb3c462c4d01969806  gcc/testsuite/ada/acats-4/tests/ce/ce3409b.ada
! 153c9a6d9246f682a42cd95552087944  gcc/testsuite/ada/acats-4/tests/ce/ce3409c.ada
! 62ed81bdf1e56f27f4c2630b320c6b75  gcc/testsuite/ada/acats-4/tests/ce/ce3409d.ada
! 67051865f07afe2038f84683dece3683  gcc/testsuite/ada/acats-4/tests/ce/ce3409e.ada
! 36c2b6db90b30d1e89dfe642110ca9be  gcc/testsuite/ada/acats-4/tests/ce/ce3410a.ada
! 5cf308b315cd2ac4c47ecb7409ef0ba1  gcc/testsuite/ada/acats-4/tests/ce/ce3410b.ada
! bcebb594f14a81961460c696159ea641  gcc/testsuite/ada/acats-4/tests/ce/ce3410c.ada
! c28a6aea6e2fa07f6b2e23e3e14876c2  gcc/testsuite/ada/acats-4/tests/ce/ce3410d.ada
! 8c67058f9e7fc008e387aa622534b5d4  gcc/testsuite/ada/acats-4/tests/ce/ce3410e.ada
! 4c3d96fe2a475d4a97d07bbd385cd260  gcc/testsuite/ada/acats-4/tests/ce/ce3411a.ada
! 0a0deabd5d66c7e62d00da0c83ac5dfa  gcc/testsuite/ada/acats-4/tests/ce/ce3411c.ada
! a8dda42826e8174f0657de7379cb605b  gcc/testsuite/ada/acats-4/tests/ce/ce3412a.ada
! 040ce75a5a909fb3da32ae0e451bda3e  gcc/testsuite/ada/acats-4/tests/ce/ce3413a.ada
! 951c9393706295621e4a78e9a1b9e2ee  gcc/testsuite/ada/acats-4/tests/ce/ce3413b.ada
! c33c707be5a9051ad8c6962035162e25  gcc/testsuite/ada/acats-4/tests/ce/ce3413c.ada
! 6cb9f4f71827deb077bcc1180c854625  gcc/testsuite/ada/acats-4/tests/ce/ce3414a.ada
! e5e2298148250ece65cc736cf86b5a00  gcc/testsuite/ada/acats-4/tests/ce/ce3601a.ada
! 1215dc7327db7704c21d367fe12a1ab9  gcc/testsuite/ada/acats-4/tests/ce/ce3602a.ada
! 6ccbba350556793177123ad7809e0ff9  gcc/testsuite/ada/acats-4/tests/ce/ce3602b.ada
! 12843cf2e9816b955ca7962f9bfc627f  gcc/testsuite/ada/acats-4/tests/ce/ce3602c.ada
! cef84bc67c1c6c0d7583ed454834a34f  gcc/testsuite/ada/acats-4/tests/ce/ce3602d.ada
! 5e31687529c52bde6efe93242bcbf2f8  gcc/testsuite/ada/acats-4/tests/ce/ce3603a.ada
! 3dc38686e9ce99632f9e21e584055443  gcc/testsuite/ada/acats-4/tests/ce/ce3604a.ada
! 98f98beec04bb6905ddea16ed212134f  gcc/testsuite/ada/acats-4/tests/ce/ce3604b.ada
! 1c7074f06be7b99dab79f14d5dddb060  gcc/testsuite/ada/acats-4/tests/ce/ce3605a.ada
! 49a30d4306b467f2cd10d4b811cfa231  gcc/testsuite/ada/acats-4/tests/ce/ce3605b.ada
! b496a8c56eea6c0501a70a96873353f7  gcc/testsuite/ada/acats-4/tests/ce/ce3605c.ada
! 6f3fe3a52cae3aa00e90c34391f3d16d  gcc/testsuite/ada/acats-4/tests/ce/ce3605d.ada
! 86bd1f46afec2bf13df76bd0d8ce0514  gcc/testsuite/ada/acats-4/tests/ce/ce3605e.ada
! 8388e3c1abd488ed32c198647fab80fe  gcc/testsuite/ada/acats-4/tests/ce/ce3606a.ada
! b3c475457035678aad225b02f0baaf49  gcc/testsuite/ada/acats-4/tests/ce/ce3606b.ada
! c0471531dea8b138d096c3049a710d34  gcc/testsuite/ada/acats-4/tests/ce/ce3701a.ada
! 918eb1c7abfa51f1d0f0920c8c6305e7  gcc/testsuite/ada/acats-4/tests/ce/ce3704a.ada
! fd0817427cf4c02d336138b11d6153a8  gcc/testsuite/ada/acats-4/tests/ce/ce3704b.ada
! 7fe37fdc40a516882c3388c9405adb57  gcc/testsuite/ada/acats-4/tests/ce/ce3704c.ada
! 9fb3d924d4a90f6940ec5e4b11a0ce61  gcc/testsuite/ada/acats-4/tests/ce/ce3704d.ada
! b5466a70b0554788bcffce4b777d7bbd  gcc/testsuite/ada/acats-4/tests/ce/ce3704e.ada
! 2bd3e088ed3663d0f57172ec9878402c  gcc/testsuite/ada/acats-4/tests/ce/ce3704f.ada
! c1b7a44976ea643f0821318848d2a333  gcc/testsuite/ada/acats-4/tests/ce/ce3704m.ada
! fbb2cb08fa9bd676488ed39c0025017d  gcc/testsuite/ada/acats-4/tests/ce/ce3704n.ada
! ddc6d31452157a248e0315438e717892  gcc/testsuite/ada/acats-4/tests/ce/ce3704o.ada
! 0f3f07ab9439af00921be7fba20ce330  gcc/testsuite/ada/acats-4/tests/ce/ce3705a.ada
! 3be84deb5cb9f6d5be7c2cadf68a90f5  gcc/testsuite/ada/acats-4/tests/ce/ce3705b.ada
! 11a056cf164688fbe30b1b1a85208e47  gcc/testsuite/ada/acats-4/tests/ce/ce3705c.ada
! e6e83df07a3fab385c58b17a0a43ca83  gcc/testsuite/ada/acats-4/tests/ce/ce3705d.ada
! c1458b663e297c80390f9cd80c7f5864  gcc/testsuite/ada/acats-4/tests/ce/ce3705e.ada
! fab53328469c600d972529f33eecee23  gcc/testsuite/ada/acats-4/tests/ce/ce3706c.ada
! aed136cb2863502616daa378424686d6  gcc/testsuite/ada/acats-4/tests/ce/ce3706d.ada
! 6344fa066f047ece7e15a9dc9dc4bf76  gcc/testsuite/ada/acats-4/tests/ce/ce3706f.ada
! 5316d57b3ad4c2e7fdcfa4dcf7de4439  gcc/testsuite/ada/acats-4/tests/ce/ce3706g.ada
! a778f4b7a5f926d446e0a70ffc718db8  gcc/testsuite/ada/acats-4/tests/ce/ce3707a.ada
! 478e73d32be1e76a0099cd9a73da79c0  gcc/testsuite/ada/acats-4/tests/ce/ce3708a.ada
! 818f2f0d5fcc6bdd1c354cc85b1e6640  gcc/testsuite/ada/acats-4/tests/ce/ce3801a.ada
! 6dc388aa9640dfd68a016a87aedb4e9b  gcc/testsuite/ada/acats-4/tests/ce/ce3801b.ada
! e7b36818b6b1f0625c96af8481f52f0d  gcc/testsuite/ada/acats-4/tests/ce/ce3804a.ada
! c3922fdc4d7bd246e803dbcf29ec365b  gcc/testsuite/ada/acats-4/tests/ce/ce3804b.ada
! eae67ccfbe2e51d92e77fbd2aefd9279  gcc/testsuite/ada/acats-4/tests/ce/ce3804c.ada
! b6842219efec21bda3be0c99f4cc04b4  gcc/testsuite/ada/acats-4/tests/ce/ce3804d.ada
! 9eef715602b30b1986cd238ae1f5fc61  gcc/testsuite/ada/acats-4/tests/ce/ce3804e.ada
! c5996f22c17f572bd9ab7181c9c39831  gcc/testsuite/ada/acats-4/tests/ce/ce3804f.ada
! 613171f59b0c0405911c4d928abfb0b4  gcc/testsuite/ada/acats-4/tests/ce/ce3804g.ada
! d992e56c7b48881cc7480a014ee01ce9  gcc/testsuite/ada/acats-4/tests/ce/ce3804h.ada
! a78767becb4aa2f884469056ae3d7ec4  gcc/testsuite/ada/acats-4/tests/ce/ce3804i.ada
! a4e5e33e2585ba61ae7ae7ae4db12bb2  gcc/testsuite/ada/acats-4/tests/ce/ce3804j.ada
! e6928c085b0205ec7db55a9f830ccdd0  gcc/testsuite/ada/acats-4/tests/ce/ce3804m.ada
! 7193594f0a1b29b3c2845bdce32c53e7  gcc/testsuite/ada/acats-4/tests/ce/ce3804o.ada
! 4a0b48b429236f9e1c8e6f58dd3bfa28  gcc/testsuite/ada/acats-4/tests/ce/ce3804p.ada
! 9ac3d952f3c355af267e6a6d9f4a8a79  gcc/testsuite/ada/acats-4/tests/ce/ce3805a.ada
! c7fd8ecaab44034a4d7e19eaf52d3390  gcc/testsuite/ada/acats-4/tests/ce/ce3805b.ada
! 1aab796cf0e7689c6edac441d619d28e  gcc/testsuite/ada/acats-4/tests/ce/ce3806a.ada
! 2e9a765636a0e1133cc203d0def8724d  gcc/testsuite/ada/acats-4/tests/ce/ce3806b.ada
! bc5e903902196b77527b50b767c2d7da  gcc/testsuite/ada/acats-4/tests/ce/ce3806c.ada
! ee7b548143b3610a6b8d3fdd4698dc45  gcc/testsuite/ada/acats-4/tests/ce/ce3806d.ada
! 4ef742156a97e0838a7c68579a62465c  gcc/testsuite/ada/acats-4/tests/ce/ce3806e.ada
! 48eed75e47db04066ee57577ae8febdf  gcc/testsuite/ada/acats-4/tests/ce/ce3806f.ada
! fae283383fb9395ac865027e5ecb9495  gcc/testsuite/ada/acats-4/tests/ce/ce3806g.ada
! 9d6687f5803bfad7ea35a3abcdb5772c  gcc/testsuite/ada/acats-4/tests/ce/ce3806h.ada
! d3af3076cdba08b0142afed2e6fc0b7b  gcc/testsuite/ada/acats-4/tests/ce/ce3809a.ada
! 2144655343ab8e0671768264f1de7939  gcc/testsuite/ada/acats-4/tests/ce/ce3809b.ada
! 94c3af83ea38d2552587ed3285a692b6  gcc/testsuite/ada/acats-4/tests/ce/ce3810a.ada
! 2b16f8d4e554f10c2a187f8308d7c631  gcc/testsuite/ada/acats-4/tests/ce/ce3810b.ada
! d426db9733cc34265b461b792b6474ad  gcc/testsuite/ada/acats-4/tests/ce/ce3815a.ada
! 48a18490ee8614f76691210dd9487c7b  gcc/testsuite/ada/acats-4/tests/ce/ce3901a.ada
! c0b5bdc86cdd66cb3f89cb34da6bafc6  gcc/testsuite/ada/acats-4/tests/ce/ce3902b.ada
! a2d6108b8d0296883e3c658639d13b49  gcc/testsuite/ada/acats-4/tests/ce/ce3904a.ada
! 379cd7598f79bae2f05b0815465e285f  gcc/testsuite/ada/acats-4/tests/ce/ce3904b.ada
! 49a69ee3b18484263b6f081df965ab54  gcc/testsuite/ada/acats-4/tests/ce/ce3905a.ada
! c53bbe9b612250e0e99c4238d30a2004  gcc/testsuite/ada/acats-4/tests/ce/ce3905b.ada
! 72f61386b7953b00b7cff52dfbc382c2  gcc/testsuite/ada/acats-4/tests/ce/ce3905c.ada
! 2ef4e950bf19d740d3354feb5811b645  gcc/testsuite/ada/acats-4/tests/ce/ce3905l.ada
! 68ee2e176861f501ee862916a0b9b86e  gcc/testsuite/ada/acats-4/tests/ce/ce3906a.ada
! d47ad5ee4c0a4fdbf2ea42a44fe42621  gcc/testsuite/ada/acats-4/tests/ce/ce3906b.ada
! 695b6968a4b0e7d53b5b76fb4f7da0c0  gcc/testsuite/ada/acats-4/tests/ce/ce3906c.ada
! 90d21e5ea4be7a236bfb40661d560471  gcc/testsuite/ada/acats-4/tests/ce/ce3906d.ada
! 3462bab257d5dd10bcb9c56813aa1e74  gcc/testsuite/ada/acats-4/tests/ce/ce3906e.ada
! 2c106bf46db6d9c4c50c01fbe92b517f  gcc/testsuite/ada/acats-4/tests/ce/ce3906f.ada
! 7c41fbcef2ed668ee19c73f44c696bac  gcc/testsuite/ada/acats-4/tests/ce/ce3907a.ada
! ee7ec1f6b6ec4c5ef50b1d777026421a  gcc/testsuite/ada/acats-4/tests/ce/ce3908a.ada
! c4b3b8c1c9564099bdde092389cc2da4  gcc/testsuite/ada/acats-4/tests/cxa/cxa3001.a
! edb7feb6536121adfd4fd4a2f3d69a3f  gcc/testsuite/ada/acats-4/tests/cxa/cxa3002.a
! 48392592efa08a198d6e5d7a1a663683  gcc/testsuite/ada/acats-4/tests/cxa/cxa3003.a
! 7eb11ccdd82615be75ded3c2d5c126d1  gcc/testsuite/ada/acats-4/tests/cxa/cxa3004.a
! 068571e21155e1676645e51e0ac0f685  gcc/testsuite/ada/acats-4/tests/cxa/cxa3005.a
! 64915bdc18bb1833716054a3caefebc1  gcc/testsuite/ada/acats-4/tests/cxa/cxa3006.a
! 76c210bb6bff0646d81957bb2e0900a9  gcc/testsuite/ada/acats-4/tests/cxa/cxa3007.a
! dde0069ab0aadb9bf5f47d79ccf2031b  gcc/testsuite/ada/acats-4/tests/cxa/cxa3008.a
! bd60e198cabb483702243c263729427b  gcc/testsuite/ada/acats-4/tests/cxa/cxa4001.a
! 448cbac61205b8887f79bf74d5666a04  gcc/testsuite/ada/acats-4/tests/cxa/cxa4002.a
! 46d3d97d6347f9b5ec34b3513bcfab40  gcc/testsuite/ada/acats-4/tests/cxa/cxa4003.a
! 76c3b922526644795e2203573ee488e2  gcc/testsuite/ada/acats-4/tests/cxa/cxa4004.a
! 4b1514a00cc831e1766e0d36c67e271f  gcc/testsuite/ada/acats-4/tests/cxa/cxa4005.a
! dcde2eda6ce0a916997883996641ea19  gcc/testsuite/ada/acats-4/tests/cxa/cxa4006.a
! f528eee5266ffb815aad7b653d5be870  gcc/testsuite/ada/acats-4/tests/cxa/cxa4007.a
! 413d98fa6eff56c6b83c031c575fd9a6  gcc/testsuite/ada/acats-4/tests/cxa/cxa4008.a
! d2a3c398ae82b68c1544dbf3384095d7  gcc/testsuite/ada/acats-4/tests/cxa/cxa4009.a
! bc90a16063bf97bfeb414d4209261109  gcc/testsuite/ada/acats-4/tests/cxa/cxa4010.a
! b3036ab386ac3ec1d7b58cd50ad31ab9  gcc/testsuite/ada/acats-4/tests/cxa/cxa4011.a
! 06c61ebbffe294301eb79bc3d5e27c54  gcc/testsuite/ada/acats-4/tests/cxa/cxa4012.a
! ce3338d13ed9dd0ef83c04e53bed831e  gcc/testsuite/ada/acats-4/tests/cxa/cxa4013.a
! 0a9e62befb3d93c2c5e8ab93a327a6c2  gcc/testsuite/ada/acats-4/tests/cxa/cxa4014.a
! aad5ca617d2e40d20e448b613199553e  gcc/testsuite/ada/acats-4/tests/cxa/cxa4015.a
! 33c5aafe5935daee003a8246d048e812  gcc/testsuite/ada/acats-4/tests/cxa/cxa4016.a
! d2ac40847abc81d20163d7c521a90575  gcc/testsuite/ada/acats-4/tests/cxa/cxa4017.a
! 81384a047e321f48d7a9ae881a426324  gcc/testsuite/ada/acats-4/tests/cxa/cxa4018.a
! 334665c1cb55150c5c9af5013690044a  gcc/testsuite/ada/acats-4/tests/cxa/cxa4019.a
! c1bd4452ee22a8a6db5adbef47a641cc  gcc/testsuite/ada/acats-4/tests/cxa/cxa4020.a
! a570e64728464b5d7b98abf94a52b945  gcc/testsuite/ada/acats-4/tests/cxa/cxa4021.a
! ee35d8c6a0354f56770dd1aaf5f4d51e  gcc/testsuite/ada/acats-4/tests/cxa/cxa4022.a
! fc34d10875377b841a1d6172f334da36  gcc/testsuite/ada/acats-4/tests/cxa/cxa4023.a
! 19ec3ce920759c4a2037b89ae3061013  gcc/testsuite/ada/acats-4/tests/cxa/cxa4024.a
! 84b1823c491f3357731a977527457acf  gcc/testsuite/ada/acats-4/tests/cxa/cxa4025.a
! 254627e35c72d32a51b7db3824a622ea  gcc/testsuite/ada/acats-4/tests/cxa/cxa4026.a
! 0c20a4e5aa53f054deaa7ca01817db03  gcc/testsuite/ada/acats-4/tests/cxa/cxa4027.a
! 59f1d44db17d4f8454b983fa7c7b830b  gcc/testsuite/ada/acats-4/tests/cxa/cxa4028.a
! a05e073a2fe4ee6230e2a03d167ffce8  gcc/testsuite/ada/acats-4/tests/cxa/cxa4029.a
! eeef22827a8f3112fb9caff03c0003d3  gcc/testsuite/ada/acats-4/tests/cxa/cxa4030.a
! bb02ecad7593f15476885383704962db  gcc/testsuite/ada/acats-4/tests/cxa/cxa4031.a
! e272d6fb88a469d5600466803e241311  gcc/testsuite/ada/acats-4/tests/cxa/cxa4032.a
! 3f7248dd7e0876538e54ffc83eb5b9f9  gcc/testsuite/ada/acats-4/tests/cxa/cxa4033.a
! 5371a61290fff5fbf4cfd658bf15ee5d  gcc/testsuite/ada/acats-4/tests/cxa/cxa4035.a
! 4a04fc9dd793d73d98dfcfe281cc9aa3  gcc/testsuite/ada/acats-4/tests/cxa/cxa4036.a
! 5cc03d6967386c435776ef6c5916d72c  gcc/testsuite/ada/acats-4/tests/cxa/cxa4037.a
! fb44a942477132fdb687414879625c05  gcc/testsuite/ada/acats-4/tests/cxa/cxa4038.a
! cc1f9976de153ea1097c1f6fa192d3b2  gcc/testsuite/ada/acats-4/tests/cxa/cxa4039.a
! d5b5e8186c886aee7a112ba901ef5b8c  gcc/testsuite/ada/acats-4/tests/cxa/cxa5011.a
! a67372b949970924bc0a9dd48dfc4999  gcc/testsuite/ada/acats-4/tests/cxa/cxa5012.a
! 1bc3b7995dbf8b972dd33ceccc5775f8  gcc/testsuite/ada/acats-4/tests/cxa/cxa5013.a
! 7f31584ea86307c534d43e91b8d28708  gcc/testsuite/ada/acats-4/tests/cxa/cxa5015.a
! b236bc272cd2178596f9c2ee66be6978  gcc/testsuite/ada/acats-4/tests/cxa/cxa5016.a
! ee786104570339c108786248363e8be5  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a01.a
! 59b52d99d8ad7539d9702fd5808604ab  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a02.a
! e58abfcc53f4c016f65e49a2e76c7c18  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a03.a
! 07803a06f2f6d9efa364537c4d61d56c  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a04.a
! 8beb99d4b6c77de021e0fb13ef712afc  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a05.a
! 4facff6e7577e863bfd71cfc8d80f4dc  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a06.a
! c3a4baf4aa21b446ccc93a6c7667de6a  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a07.a
! 6278088ddb4cadb7d9e5d09b9045b4b6  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a08.a
! cd7c58666aed347e740c0f6fd42f83d6  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a09.a
! ba78679b1a563e67c0076c1562ccf0f3  gcc/testsuite/ada/acats-4/tests/cxa/cxa5a10.a
! 96b76cdb631cda2774fc81007f5ec5ee  gcc/testsuite/ada/acats-4/tests/cxa/cxa8001.a
! 367d7f0f5e6305bdd87092066759b0fa  gcc/testsuite/ada/acats-4/tests/cxa/cxa8002.a
! 620e6506d3b188143f95bf7e9e7c2a47  gcc/testsuite/ada/acats-4/tests/cxa/cxa8003.a
! 05afd117ada97a293f198e2915e5c6e6  gcc/testsuite/ada/acats-4/tests/cxa/cxa9001.a
! 720f2be5a9704866c7199912ce177ec5  gcc/testsuite/ada/acats-4/tests/cxa/cxa9002.a
! 0eda7d556ffc97096e8bf91c74b55ab0  gcc/testsuite/ada/acats-4/tests/cxa/cxaa001.a
! 77f8a73011b66fb0023f0f34e63b2b56  gcc/testsuite/ada/acats-4/tests/cxa/cxaa002.a
! 6251cdd5d4023378cc0f056006946d4b  gcc/testsuite/ada/acats-4/tests/cxa/cxaa003.a
! 43c30533c4d806156e62989d0b1f26b1  gcc/testsuite/ada/acats-4/tests/cxa/cxaa004.a
! a3c49183a05e7dd95a555b795d847cdb  gcc/testsuite/ada/acats-4/tests/cxa/cxaa005.a
! 083ebde448b287604a204632257a8037  gcc/testsuite/ada/acats-4/tests/cxa/cxaa006.a
! 0ba729490f0276e661094749d283895c  gcc/testsuite/ada/acats-4/tests/cxa/cxaa007.a
! a5ce4e509ce0ab296bcdd6ac1f1901c4  gcc/testsuite/ada/acats-4/tests/cxa/cxaa008.a
! 6230c5c5911d68e5e9b6f01dd03cb063  gcc/testsuite/ada/acats-4/tests/cxa/cxaa009.a
! ce752fa717d1efa1292cf1f5fa1d3e2e  gcc/testsuite/ada/acats-4/tests/cxa/cxaa010.a
! a1b9e04009fe651e52c78ec25d1e7e02  gcc/testsuite/ada/acats-4/tests/cxa/cxaa011.a
! 89d82c447c9f9e46ab8b9a1c63021ed6  gcc/testsuite/ada/acats-4/tests/cxa/cxaa012.a
! 1f2db7b6b53cd6eac4580863a696a7fd  gcc/testsuite/ada/acats-4/tests/cxa/cxaa013.a
! 2bf5156bd9e88fa709d6514444235132  gcc/testsuite/ada/acats-4/tests/cxa/cxaa014.a
! ed6390551c08d72768b222a3edb8cc65  gcc/testsuite/ada/acats-4/tests/cxa/cxaa015.a
! 9b3e529f8cb7b3fd77f82dd49f82a490  gcc/testsuite/ada/acats-4/tests/cxa/cxaa016.a
! 7147f809c3aae79cfac85e734afed9c2  gcc/testsuite/ada/acats-4/tests/cxa/cxaa017.a
! cc1a3cfdd0d446ad5ae2882d5b1f089b  gcc/testsuite/ada/acats-4/tests/cxa/cxaa018.a
! 5a18624d0b2a25da41748146d45600fe  gcc/testsuite/ada/acats-4/tests/cxa/cxaa019.a
! c8ddb9f66c45bca19e451105a1928554  gcc/testsuite/ada/acats-4/tests/cxa/cxaa020.a
! f1700da5096991db07a95ff30f3e800c  gcc/testsuite/ada/acats-4/tests/cxa/cxaa021.a
! 9cf4b832ba930927ff60624e142141b5  gcc/testsuite/ada/acats-4/tests/cxa/cxaa022.a
! 541118f0faae1cc95a1d90526336b620  gcc/testsuite/ada/acats-4/tests/cxa/cxab001.a
! 1330583d0850bb9322928bc49ee307ba  gcc/testsuite/ada/acats-4/tests/cxa/cxab002.au
! 021c3dc06125a2acf83a2c1228022556  gcc/testsuite/ada/acats-4/tests/cxa/cxab003.au
! 08db41fcbeb1f4972a7c86837062b2b0  gcc/testsuite/ada/acats-4/tests/cxa/cxab004.au
! d3528db6190a39ace75489425aefe80e  gcc/testsuite/ada/acats-4/tests/cxa/cxab005.au
! 02e50f3257e2da0b2d211b9ed3e16791  gcc/testsuite/ada/acats-4/tests/cxa/cxac001.a
! 6788fdbde2fdac4a827fd20b38d8711b  gcc/testsuite/ada/acats-4/tests/cxa/cxac002.a
! bc2d4997d303b5a8cd8ac49ea128eabc  gcc/testsuite/ada/acats-4/tests/cxa/cxac003.a
! 0fed3fbdda367e73cc20e053e436b99f  gcc/testsuite/ada/acats-4/tests/cxa/cxac004.a
! c03fcfa6083accd85e20bd1ddecb7e8e  gcc/testsuite/ada/acats-4/tests/cxa/cxac005.a
! 3e70512f913d06d6e39f59d378b9c72a  gcc/testsuite/ada/acats-4/tests/cxa/cxac006.a
! dafba76724ece929c88e50e2f04a2d63  gcc/testsuite/ada/acats-4/tests/cxa/cxac007.a
! a2862d6559ce75bcd1f2978950a518f3  gcc/testsuite/ada/acats-4/tests/cxa/cxac008.a
! 29be402f887fa9dea33baaae5f966346  gcc/testsuite/ada/acats-4/tests/cxa/cxac009.a
! 1ea54203b702bc16f99a16da31812413  gcc/testsuite/ada/acats-4/tests/cxa/cxaca01.a
! 177daeac77a726a44c2f67d470718c26  gcc/testsuite/ada/acats-4/tests/cxa/cxaca02.a
! 56fc9878aa06e841c10ea2264f6970c0  gcc/testsuite/ada/acats-4/tests/cxa/cxacb01.a
! 66ac8f47c4a79c2e4c270e0af7e2e0ee  gcc/testsuite/ada/acats-4/tests/cxa/cxacb02.a
! 0709cbd75999d38ff1820f0252b56573  gcc/testsuite/ada/acats-4/tests/cxa/cxacc01.a
! e9b9a0663c6181302fffd99d8631f3de  gcc/testsuite/ada/acats-4/tests/cxa/cxaf001.a
! 64bda55ab1e8149633dada5dfa73e125  gcc/testsuite/ada/acats-4/tests/cxa/cxag001.a
! f72f9ec149189650a57ced1c6448365b  gcc/testsuite/ada/acats-4/tests/cxa/cxag002.a
! 064b516330235b3a2c6e323f779ce57a  gcc/testsuite/ada/acats-4/tests/cxa/cxag003.a
! af20f1f87af0ee8b369035758ff9977a  gcc/testsuite/ada/acats-4/tests/cxa/cxah001.a
! aee0909596a410beb82cfadc99316b3b  gcc/testsuite/ada/acats-4/tests/cxa/cxah002.a
! 495aec6bd87708bb8b010e2bbecd3bfc  gcc/testsuite/ada/acats-4/tests/cxa/cxah003.a
! 87e2cded767cde959930567092b74b45  gcc/testsuite/ada/acats-4/tests/cxa/cxai001.a
! cf9871a012454629ea02bb9104dd1d72  gcc/testsuite/ada/acats-4/tests/cxa/cxai002.a
! 7b5ed99a661c8d81a295f69171b3ddf3  gcc/testsuite/ada/acats-4/tests/cxa/cxai003.a
! cee09ca20dfb438247565453fd2da3b6  gcc/testsuite/ada/acats-4/tests/cxa/cxai004.a
! 9448584dfe3798f2a10b3444a4a5e198  gcc/testsuite/ada/acats-4/tests/cxa/cxai005.a
! 3d87b8e8c03fde6814a71b09b00b89d1  gcc/testsuite/ada/acats-4/tests/cxa/cxai006.a
! cc50840d2341ab0eb4ceda48876c803b  gcc/testsuite/ada/acats-4/tests/cxa/cxai007.a
! 39307f81e5bd871e9231d1867b676467  gcc/testsuite/ada/acats-4/tests/cxa/cxai008.a
! f90b4f24fa62b916c10dad03c266a074  gcc/testsuite/ada/acats-4/tests/cxa/cxai009.a
! dd20fccf8410f619b25cbf966a815192  gcc/testsuite/ada/acats-4/tests/cxa/cxai010.a
! 4d7dfcb907478a74b66bf7977738dc6e  gcc/testsuite/ada/acats-4/tests/cxa/cxai011.a
! 0322d5a7e11fa938a6cbe692fe73fb2d  gcc/testsuite/ada/acats-4/tests/cxa/cxai012.a
! d43740abfa9dbe60c86db5d0a996902b  gcc/testsuite/ada/acats-4/tests/cxa/cxai013.a
! 4bf04dd6040663a10cdc66557ef04a87  gcc/testsuite/ada/acats-4/tests/cxa/cxai014.a
! 16613e599c96e04052ee0a08d6fca1ae  gcc/testsuite/ada/acats-4/tests/cxa/cxai015.a
! 3d51ece34f602a854689c633b048232e  gcc/testsuite/ada/acats-4/tests/cxa/cxai016.a
! c0f0dd4f955488f244f677a62c8acb55  gcc/testsuite/ada/acats-4/tests/cxa/cxai017.a
! 8fe3a8a00538ab0bad7e3b6039407332  gcc/testsuite/ada/acats-4/tests/cxa/cxai018.a
! 75244ede00c5597bd1ac99365c7780e8  gcc/testsuite/ada/acats-4/tests/cxa/cxai019.a
! c694fb462f88993b6c63434087d00d8d  gcc/testsuite/ada/acats-4/tests/cxa/cxai020.a
! 66cec384958bbd34083452ee83499529  gcc/testsuite/ada/acats-4/tests/cxa/cxai021.a
! f6d4bce8ba8df49a1c7315b135c3d5e0  gcc/testsuite/ada/acats-4/tests/cxa/cxai022.a
! 52c4c5dc5e47cdfe0c396c828b85d406  gcc/testsuite/ada/acats-4/tests/cxa/cxai023.a
! 17cc000a1cb22812cb82ea68528cb642  gcc/testsuite/ada/acats-4/tests/cxa/cxai024.a
! 1d53d99a0a21e366a6bd7db05abdf093  gcc/testsuite/ada/acats-4/tests/cxa/cxai025.a
! 34674968d7feaa475da1a908b2eda82c  gcc/testsuite/ada/acats-4/tests/cxa/cxai026.a
! 49730eafc3acea832fa944d732929eff  gcc/testsuite/ada/acats-4/tests/cxa/cxai027.a
! 99c1989bf771e1ce115ff327ad7e26dc  gcc/testsuite/ada/acats-4/tests/cxa/cxai028.a
! 138522b9795c0ce324f2bbbbdbf2a9e4  gcc/testsuite/ada/acats-4/tests/cxa/cxai029.a
! b26ffff4623ba2330c463463925f5247  gcc/testsuite/ada/acats-4/tests/cxa/cxai030.a
! 3f9ada9ca43d632fda837d7f718e0cd7  gcc/testsuite/ada/acats-4/tests/cxa/cxai031.a
! 097bfdc8930647a22747b2bdc8b7d141  gcc/testsuite/ada/acats-4/tests/cxa/cxai032.a
! 408c9da0002837d911576eaf11cffa05  gcc/testsuite/ada/acats-4/tests/cxa/cxai033.a
! cae11ea8bfd30bc61203b4c474da5ae3  gcc/testsuite/ada/acats-4/tests/cxa/cxai034.a
! d54d1aa9f4301a29faadb75a8aea3edc  gcc/testsuite/ada/acats-4/tests/cxa/cxai035.a
! 3747e55eeabf74ed9ec853aa73a685c0  gcc/testsuite/ada/acats-4/tests/cxa/cxai036.a
! 752fce74ef0e5c6390d38b7ad5ccf4b6  gcc/testsuite/ada/acats-4/tests/cxa/cxaia01.a
! caa672297960b6daf3215c83532dce37  gcc/testsuite/ada/acats-4/tests/cxa/cxaia02.a
! 32f93f75ba46f2ca259c1a1fe4bbbf22  gcc/testsuite/ada/acats-4/tests/cxa/cxaia03.a
! fc061d8da122be070926702ab15de2a8  gcc/testsuite/ada/acats-4/tests/cxa/cxaia04.a
! 07b70846041f675351fd9460b3bd377b  gcc/testsuite/ada/acats-4/tests/cxa/cxaia05.a
! 39dc4ee04a118031a59c5996946688ad  gcc/testsuite/ada/acats-4/tests/cxa/cxaia06.a
! bef631f52e6140b662d657ba85519775  gcc/testsuite/ada/acats-4/tests/cxa/cxaia07.a
! 2df8d8a17cb8c7656532eced5dd8314f  gcc/testsuite/ada/acats-4/tests/cxa/cxaia08.a
! bd2bba92877a6076acd4c85b6a951286  gcc/testsuite/ada/acats-4/tests/cxa/cxaia09.a
! 0cecf92d7fe18aa389851c80b09e123c  gcc/testsuite/ada/acats-4/tests/cxa/cxaia10.a
! af95a8e4f6e0ddda72a785f85ce42eaf  gcc/testsuite/ada/acats-4/tests/cxa/cxaia11.a
! 00fb163b7711912728f3d14858ccc274  gcc/testsuite/ada/acats-4/tests/cxa/cxaia12.a
! 4b9257f93a56fa212d23840deae313f7  gcc/testsuite/ada/acats-4/tests/cxa/cxaia13.a
! 4cc4065b236cc752443496999702f0ea  gcc/testsuite/ada/acats-4/tests/cxa/cxaia14.a
! fb8fefccf32bbc44df1f0394c0a117cb  gcc/testsuite/ada/acats-4/tests/cxa/cxaib01.a
! d516295b5fe2fdffbbeeb2cd3c5e5930  gcc/testsuite/ada/acats-4/tests/cxa/cxaib02.a
! b4c0b1fbbaa4e9aa6f742a2d14c69369  gcc/testsuite/ada/acats-4/tests/cxa/cxaib03.a
! 07ea23f455e26fd092cf9dafc3bed599  gcc/testsuite/ada/acats-4/tests/cxa/cxaib04.a
! 33e178764707b2930a6a5febe854eddd  gcc/testsuite/ada/acats-4/tests/cxa/cxaib05.a
! 3c506ca5649953b872ae117514a80dd1  gcc/testsuite/ada/acats-4/tests/cxa/cxaib06.a
! 6349b97f920cba44b0a5a7a596f4fb77  gcc/testsuite/ada/acats-4/tests/cxa/cxaib07.a
! 639531fc1d32579d74242bee24d9ffb0  gcc/testsuite/ada/acats-4/tests/cxa/cxaib08.a
! 1ffe4210a7406a1db7528ddd1fb5633d  gcc/testsuite/ada/acats-4/tests/cxa/cxaj001.a
! 74275581d2adcd2434f5e7957524b51c  gcc/testsuite/ada/acats-4/tests/cxb/cxb2001.a
! 801c8a35b2162f9c6264359249bbee69  gcc/testsuite/ada/acats-4/tests/cxb/cxb2002.a
! bf39b2f4f07ed6a4665a9dda2b002ff4  gcc/testsuite/ada/acats-4/tests/cxb/cxb2003.a
! 77c85b698809dbb5fb428e06a404c9b9  gcc/testsuite/ada/acats-4/tests/cxb/cxb3001.a
! 8359205e9055b8be1d9b6762d2ed3539  gcc/testsuite/ada/acats-4/tests/cxb/cxb3002.a
! 670fd9357c7c7cfa50297d22a291bf67  gcc/testsuite/ada/acats-4/tests/cxb/cxb3003.a
! 264fa1c95ae6b3be066613d5e0bfc39d  gcc/testsuite/ada/acats-4/tests/cxb/cxb30040.c
! 834af9fa57783899a0e35eb445000495  gcc/testsuite/ada/acats-4/tests/cxb/cxb30041.am
! 1f7e6c754cd6392302f6a73881265fcb  gcc/testsuite/ada/acats-4/tests/cxb/cxb3005.a
! 47cb358f8b5c39994c472ca6162c0605  gcc/testsuite/ada/acats-4/tests/cxb/cxb30060.c
! 99678670b618e59863715594383e5e7b  gcc/testsuite/ada/acats-4/tests/cxb/cxb30061.am
! 593282429f5462d5ed18dcd8dcdb51d9  gcc/testsuite/ada/acats-4/tests/cxb/cxb3007.a
! f846172da7dd713a885e8d2a7d06687e  gcc/testsuite/ada/acats-4/tests/cxb/cxb3008.a
! d2f1180bb38e13d62efbd9773c8b157b  gcc/testsuite/ada/acats-4/tests/cxb/cxb3009.a
! 02b32c32297cd44b0d911f2b531c9313  gcc/testsuite/ada/acats-4/tests/cxb/cxb3010.a
! f8edfe848dc0c6e6f48662c52fb4967d  gcc/testsuite/ada/acats-4/tests/cxb/cxb3011.a
! db1e20e804e48dbfe6be7dc72d92df77  gcc/testsuite/ada/acats-4/tests/cxb/cxb3012.a
! c26417c84de8dd0b5f98086031028262  gcc/testsuite/ada/acats-4/tests/cxb/cxb30130.c
! 0fb5e5e773d77b07187a80ff9a521df6  gcc/testsuite/ada/acats-4/tests/cxb/cxb30131.c
! f10ef865b96ee70575c8e209dd789a5d  gcc/testsuite/ada/acats-4/tests/cxb/cxb30132.am
! 1ddc4dd51346e5a28f96af27d7391476  gcc/testsuite/ada/acats-4/tests/cxb/cxb3014.a
! 95d8e46749c34da8a75a52eda38a1557  gcc/testsuite/ada/acats-4/tests/cxb/cxb3015.a
! 84585e09a73118e308ad940e05334954  gcc/testsuite/ada/acats-4/tests/cxb/cxb3016.a
! c90918450e648f7980e92c59c3503e79  gcc/testsuite/ada/acats-4/tests/cxb/cxb30170.c
! ea3b3c13a8bde93929e2fbaa2ee14049  gcc/testsuite/ada/acats-4/tests/cxb/cxb30171.a
! 0a60e22dbf627ad27674cdb4536971e5  gcc/testsuite/ada/acats-4/tests/cxb/cxb30172.am
! 9bd340b5234a535ac39825c942eab7d3  gcc/testsuite/ada/acats-4/tests/cxb/cxb30180.c
! 482289b47ecc3b4f419e23b04a0877fa  gcc/testsuite/ada/acats-4/tests/cxb/cxb30181.a
! 96816beab90a78445ebd1acb2256400e  gcc/testsuite/ada/acats-4/tests/cxb/cxb30182.am
! a3d2accddecb5d2648c27c4bd7980870  gcc/testsuite/ada/acats-4/tests/cxb/cxb3019.a
! 2d9cdb1ab7f830bca716d071688a6756  gcc/testsuite/ada/acats-4/tests/cxb/cxb3020.a
! ce83dd773ce8b02e32354f3dac59a626  gcc/testsuite/ada/acats-4/tests/cxb/cxb3021.a
! 126bcf8c4cc1d9cf1e0ce07f7371e294  gcc/testsuite/ada/acats-4/tests/cxb/cxb3022.a
! 24721abe35ae24f15b7aad5d08e6fd32  gcc/testsuite/ada/acats-4/tests/cxb/cxb30230.c
! d2017af833f745dbc8efda20765b9def  gcc/testsuite/ada/acats-4/tests/cxb/cxb30231.am
! f39a0c06d8ff233dacf6f158308a6b77  gcc/testsuite/ada/acats-4/tests/cxb/cxb30240.c
! e8c9be3056a762cf4002418418be1ab2  gcc/testsuite/ada/acats-4/tests/cxb/cxb30241.am
! cbb79c5b42e78b77403051dad62e4b41  gcc/testsuite/ada/acats-4/tests/cxb/cxb4001.a
! fc709f860964cb89f985c7186e9f4747  gcc/testsuite/ada/acats-4/tests/cxb/cxb4002.a
! 4f684915a0877f5374cf11b630a78395  gcc/testsuite/ada/acats-4/tests/cxb/cxb4003.a
! 79754fe98b14164c0947685d39cacbb4  gcc/testsuite/ada/acats-4/tests/cxb/cxb4004.a
! 85a2ebed857909a39d337814747d6b8e  gcc/testsuite/ada/acats-4/tests/cxb/cxb4005.a
! 4082371e3fdf72189f00c59a748996d4  gcc/testsuite/ada/acats-4/tests/cxb/cxb4006.a
! 27abdc5551e4a8d82b4e9b0c64e5887b  gcc/testsuite/ada/acats-4/tests/cxb/cxb4007.a
! 8cddd50c9a17f7fc8660e979cbf02b3b  gcc/testsuite/ada/acats-4/tests/cxb/cxb4008.a
! 1b69eacf17c1c91c6952280f3412de5a  gcc/testsuite/ada/acats-4/tests/cxb/cxb5001.a
! c09620903bb91a1bb4eb42d58e681d41  gcc/testsuite/ada/acats-4/tests/cxb/cxb5002.a
! d523751f359c8b2cd39c46362a810f62  gcc/testsuite/ada/acats-4/tests/cxb/cxb5003.a
! 161785b3f8117f52fdfa5e2be103fe50  gcc/testsuite/ada/acats-4/tests/cxf/cxf1001.a
! 38832640106024eeab3e787b3e1abf12  gcc/testsuite/ada/acats-4/tests/cxf/cxf2001.a
! 6dbe0dc7ad8bcf924dea296b0e6d64f8  gcc/testsuite/ada/acats-4/tests/cxf/cxf2002.a
! df30106f75773ccdd081af9128456937  gcc/testsuite/ada/acats-4/tests/cxf/cxf2003.a
! bbdc713b858e164ba488b05b51a426d4  gcc/testsuite/ada/acats-4/tests/cxf/cxf2004.a
! 2853070456ab778051ae45509ef31700  gcc/testsuite/ada/acats-4/tests/cxf/cxf2005.a
! 5289a83b801532cadb9cfc8ca574144c  gcc/testsuite/ada/acats-4/tests/cxf/cxf2a01.a
! ecb6f7270417d94e1c9636302e69e1fa  gcc/testsuite/ada/acats-4/tests/cxf/cxf2a02.a
! 2ffc00ccfb476a6822050bacce9f38f0  gcc/testsuite/ada/acats-4/tests/cxf/cxf3001.a
! 5dae288354cb87431755a88817dd365b  gcc/testsuite/ada/acats-4/tests/cxf/cxf3002.a
! afd49d16a5d04aec633505dca48b0d0a  gcc/testsuite/ada/acats-4/tests/cxf/cxf3003.a
! c6b3622a1e5b20d69719852a4082e8be  gcc/testsuite/ada/acats-4/tests/cxf/cxf3004.a
! 1aee0d4b0a06b7063d6235fc8d34096a  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a01.a
! 57064f6f477f169e4e55de947a9c929c  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a02.a
! 963266d142d788cf27f6a6c25463a3e4  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a03.a
! b0edb7a9a3f96101a217a11d890227d0  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a04.a
! fc92aa9ac0df0e5baa30ead02d831b57  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a05.a
! 64a24769c1369c7cfdee0cd6e259be8f  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a06.a
! 9713b92f0463d1404ffce0f6b1e500b0  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a07.a
! 1e8c052576f82ce44e874eaf39b880b2  gcc/testsuite/ada/acats-4/tests/cxf/cxf3a08.a
! bb528e8b6f5a51fcb2c85de76f01ccd4  gcc/testsuite/ada/acats-4/tests/cxg/cxg1001.a
! 31d84efce5cb86f288a534683e15200a  gcc/testsuite/ada/acats-4/tests/cxg/cxg1002.a
! 5db4d9e6a4cf0ee61e3e4e4ea8093c4e  gcc/testsuite/ada/acats-4/tests/cxg/cxg1003.a
! 29704ab7c7c7a79f47511599cd5ea610  gcc/testsuite/ada/acats-4/tests/cxg/cxg1004.a
! 38c19bd2b8b49892b5a8468c5b781d26  gcc/testsuite/ada/acats-4/tests/cxg/cxg1005.a
! cf1886805bf7bef0f8693b1061462c39  gcc/testsuite/ada/acats-4/tests/cxg/cxg2001.a
! 691b89d2d22e78fce3d8ce8190aceac5  gcc/testsuite/ada/acats-4/tests/cxg/cxg2002.a
! fd15930c996abc004ebe5f623f8d7e3e  gcc/testsuite/ada/acats-4/tests/cxg/cxg2003.a
! 9c7ebf167f5adb4ad817f1cfaad15b1e  gcc/testsuite/ada/acats-4/tests/cxg/cxg2004.a
! 19538696a45a5cd61915e552c0159e21  gcc/testsuite/ada/acats-4/tests/cxg/cxg2005.a
! b5a9cd918ec505f80bffd4b8d3f81fb7  gcc/testsuite/ada/acats-4/tests/cxg/cxg2006.a
! d118b202244475fa2d6637a5102c8793  gcc/testsuite/ada/acats-4/tests/cxg/cxg2007.a
! 911e82a1ca3377a813732860a0062312  gcc/testsuite/ada/acats-4/tests/cxg/cxg2008.a
! 4fad0b52dda14d215336cc1cd38b7f03  gcc/testsuite/ada/acats-4/tests/cxg/cxg2009.a
! a7f0790bd1f4db62bb1f94f90b403cca  gcc/testsuite/ada/acats-4/tests/cxg/cxg2010.a
! 2e25178ea5e5552c5343ba6d8584ba74  gcc/testsuite/ada/acats-4/tests/cxg/cxg2011.a
! f61b0c35864b0aa5527d3e4a3e81e779  gcc/testsuite/ada/acats-4/tests/cxg/cxg2012.a
! 1b99769a37ef9c2b58f43910fdd00e6b  gcc/testsuite/ada/acats-4/tests/cxg/cxg2013.a
! 481025f4913d9ffb0c1ff442b9870591  gcc/testsuite/ada/acats-4/tests/cxg/cxg2014.a
! 79eb7ca23122446b9f31a5f4d6f8fbc7  gcc/testsuite/ada/acats-4/tests/cxg/cxg2015.a
! d1362a6e008edbda6db26e148303f3d0  gcc/testsuite/ada/acats-4/tests/cxg/cxg2016.a
! 84a228b85aa2b3a442a702cb5cf99e63  gcc/testsuite/ada/acats-4/tests/cxg/cxg2017.a
! db5d4af0d0f84dcaf031081f41020e4a  gcc/testsuite/ada/acats-4/tests/cxg/cxg2018.a
! 6ca3da628f7936107fe1fd235da62e61  gcc/testsuite/ada/acats-4/tests/cxg/cxg2019.a
! d8efe67bfdf82292c98f593e60cace57  gcc/testsuite/ada/acats-4/tests/cxg/cxg2020.a
! 53b94c96558a199ee91e9e94e92f6e6e  gcc/testsuite/ada/acats-4/tests/cxg/cxg2021.a
! 44df5fa53bb68ac9be22c5db9adb9c5e  gcc/testsuite/ada/acats-4/tests/cxg/cxg2022.a
! 86432328beb230d12c30455a5259108f  gcc/testsuite/ada/acats-4/tests/cxg/cxg2023.a
! 7b9353c95978924cfa8ffca95bd2472f  gcc/testsuite/ada/acats-4/tests/cxg/cxg2024.a
! 4aedd99c5e7383826785e110132437b0  gcc/testsuite/ada/acats-4/tests/cxh/cxh3001.a
! 30e3860e9003591085363de238d2c0f8  gcc/testsuite/ada/acats-4/tests/cxh/cxh3002.a
! 2f97ad7e05c98ee16642183b60fb702b  gcc/testsuite/ada/acats-4/tests/cxh/cxh30030.a
! 726c3a5559867c336b3e41053357bee8  gcc/testsuite/ada/acats-4/tests/cxh/cxh30031.am
! 5812c7613bb171e922984de8ed304306  gcc/testsuite/ada/acats-4/tests/cz/cz1101a.ada
! f4be18c06fbff775151b0c6fe4f18831  gcc/testsuite/ada/acats-4/tests/cz/cz1102a.ada
! 1a17d44787330941af6e6eb9b2f5fdac  gcc/testsuite/ada/acats-4/tests/cz/cz1103a.ada
! 4fbac816abd03239d980e03cee911122  gcc/testsuite/ada/acats-4/tests/d/d4a002a.ada
! 9fc88c362bc5e3ac1038838ce2e31e1d  gcc/testsuite/ada/acats-4/tests/d/d4a002b.ada
! 512d36027df5b67cad136178dabfe4a2  gcc/testsuite/ada/acats-4/tests/d/d4a004a.ada
! 22af18afdcf3a383d8100e7290a1c40c  gcc/testsuite/ada/acats-4/tests/d/d4a004b.ada
! 605dc6f15a51dd750ab6fdf7ddcb65a6  gcc/testsuite/ada/acats-4/tests/e/e28002b.ada
! de9f0ecd5c9bafad769c8b2264e38499  gcc/testsuite/ada/acats-4/tests/e/e28005d.ada
! 3cacc87e4376898f97bc3ad35305e3b0  gcc/testsuite/ada/acats-4/tests/e/e52103y.ada
! c92c30f9076000218a22d41126403c34  gcc/testsuite/ada/acats-4/tests/e/eb4011a.ada
! deba1575fb8b252064041e5d408f53a3  gcc/testsuite/ada/acats-4/tests/e/eb4012a.ada
! 08131f4b11da03c32ca002338f3e4a59  gcc/testsuite/ada/acats-4/tests/e/eb4014a.ada
! b8a8e5440cbe69d0ad54064892a114c0  gcc/testsuite/ada/acats-4/tests/e/ee3203a.ada
! 48040471bf50b07840b3338c9bc7e2c6  gcc/testsuite/ada/acats-4/tests/e/ee3204a.ada
! 25bff343477de94bd78239442f9ee02a  gcc/testsuite/ada/acats-4/tests/e/ee3402b.ada
! b057daa29f3fcc66f6affebff75a1be5  gcc/testsuite/ada/acats-4/tests/e/ee3409f.ada
! 4c52e7caa9bc136f2cba824b2e52e9c6  gcc/testsuite/ada/acats-4/tests/e/ee3412c.ada
! 76344ab690464f293f3d4ea9ddafa233  gcc/testsuite/ada/acats-4/tests/l/la140010.a
! 2900850ee7d28fb09a708d15ecb120e8  gcc/testsuite/ada/acats-4/tests/l/la140011.am
! 3a566254bd6b5a2476b7a0a4d201c6ec  gcc/testsuite/ada/acats-4/tests/l/la140012.a
! f251861d8f7143c4d6a0139eb5109844  gcc/testsuite/ada/acats-4/tests/l/la140020.a
! 94e3a842d07a1b065bf9729ba53ec9fd  gcc/testsuite/ada/acats-4/tests/l/la140021.am
! 951f84109a5b6658e7dd287bbd9bae71  gcc/testsuite/ada/acats-4/tests/l/la140022.a
! 876db830d93e5c9744a1c290ed00f17f  gcc/testsuite/ada/acats-4/tests/l/la140030.a
! eaefd12663189709da8ccf17c2c368fa  gcc/testsuite/ada/acats-4/tests/l/la140031.a
! 7bf8660d1ec101205c05dd17726a229a  gcc/testsuite/ada/acats-4/tests/l/la140032.am
! 857f64e53ab5de64c7aff62222d11127  gcc/testsuite/ada/acats-4/tests/l/la140033.a
! 92ca699ccd2c74842385086d5ada22dd  gcc/testsuite/ada/acats-4/tests/l/la140040.a
! 8b2c5cc4a29ad35fcfa826d7b492bc08  gcc/testsuite/ada/acats-4/tests/l/la140041.am
! fb8dd82cf673301eecabc122ac171090  gcc/testsuite/ada/acats-4/tests/l/la140042.a
! 6d5ee36b10609c888874ac66e3f0ee1e  gcc/testsuite/ada/acats-4/tests/l/la140050.a
! e04923836f3f4282a67d6f89778a6914  gcc/testsuite/ada/acats-4/tests/l/la140051.a
! bfa5a2187576b86f14423c0040742843  gcc/testsuite/ada/acats-4/tests/l/la140052.am
! 0d6624b67d8552559b64873f684e581d  gcc/testsuite/ada/acats-4/tests/l/la140053.a
! 8035d0c6bfa2f3b3a49f58acd52dd8a7  gcc/testsuite/ada/acats-4/tests/l/la140060.a
! 3d90461eff6991fd8178d6d2118e9ddf  gcc/testsuite/ada/acats-4/tests/l/la140061.a
! e475cc528675aeae58edde764f9dd718  gcc/testsuite/ada/acats-4/tests/l/la140062.am
! f022f8aa1d30fb70ecca6f610089b986  gcc/testsuite/ada/acats-4/tests/l/la140063.a
! c3833b353f97382d992824760c162c7c  gcc/testsuite/ada/acats-4/tests/l/la140070.a
! c0ccfb9014a2864c4a49d88f46f491c1  gcc/testsuite/ada/acats-4/tests/l/la140071.a
! 509bb3bfec998a7f16d7a711f508bdc0  gcc/testsuite/ada/acats-4/tests/l/la140072.am
! 4710fc41166460cc60192a57798054b4  gcc/testsuite/ada/acats-4/tests/l/la140073.a
! dcb4f9c9fdad375c3fe93310ac6b816e  gcc/testsuite/ada/acats-4/tests/l/la140080.a
! a3acb845f1ea8cd193aec71beb1ead51  gcc/testsuite/ada/acats-4/tests/l/la140081.a
! d8f09cb05605e6ee39a41685ba970092  gcc/testsuite/ada/acats-4/tests/l/la140082.am
! 6d37a12249cd1b2bdf860f7651a462e4  gcc/testsuite/ada/acats-4/tests/l/la140083.a
! 46655b2b4b88ca82cb0afc6eac22cd7b  gcc/testsuite/ada/acats-4/tests/l/la140090.a
! 257622cc1c6c259921d7e6c33e23f1ff  gcc/testsuite/ada/acats-4/tests/l/la140091.a
! 1c00169793ce024a3f35da791e30bbe6  gcc/testsuite/ada/acats-4/tests/l/la140092.am
! 6a23c4b62a4cac8720e8b7c21ad97d5b  gcc/testsuite/ada/acats-4/tests/l/la140093.a
! ed2026e1ace460e994b96b42c8f05e9c  gcc/testsuite/ada/acats-4/tests/l/la140100.a
! 55167329c290c62025473120fca26c7d  gcc/testsuite/ada/acats-4/tests/l/la140101.a
! 9280256db41c4bec0f36aa69ff060841  gcc/testsuite/ada/acats-4/tests/l/la140102.am
! 7b092247e539009157e512965ba1fc7a  gcc/testsuite/ada/acats-4/tests/l/la140103.a
! 6722c5fc30bb307834268e434901c086  gcc/testsuite/ada/acats-4/tests/l/la140110.a
! 443c0bb26e2eb84889c83a9bccaf9649  gcc/testsuite/ada/acats-4/tests/l/la140111.a
! 47c6e7a9da351969b20b3d295bb3c115  gcc/testsuite/ada/acats-4/tests/l/la140112.am
! 4bf0921f6ccd99db94a8a70d2b166fdf  gcc/testsuite/ada/acats-4/tests/l/la140113.a
! 5c9a0f9992d6d21844e2ba208b7cebbc  gcc/testsuite/ada/acats-4/tests/l/la140120.a
! 7c0ca86bca64632e57e32b5842ddbe60  gcc/testsuite/ada/acats-4/tests/l/la140121.a
! 211c1d44471b6a40c3d807f83059ff77  gcc/testsuite/ada/acats-4/tests/l/la140122.am
! e4cb364e594a0d2463e66f4aa48a914a  gcc/testsuite/ada/acats-4/tests/l/la140123.a
! 76516f31e5adf9e0fad1886ab83457a4  gcc/testsuite/ada/acats-4/tests/l/la140130.a
! f3b7f597165821e514288274845f5e54  gcc/testsuite/ada/acats-4/tests/l/la140131.a
! cb0819afcaf9586c9c95966d2516fb65  gcc/testsuite/ada/acats-4/tests/l/la140132.am
! 32a943ea5a9287c709fa39655d8668cb  gcc/testsuite/ada/acats-4/tests/l/la140133.a
! 212943c674757076da046354450e5113  gcc/testsuite/ada/acats-4/tests/l/la140140.a
! 195b91195befb872c8f723da1d28f132  gcc/testsuite/ada/acats-4/tests/l/la140141.a
! a6d2954f197001069fb371e8403e8ac6  gcc/testsuite/ada/acats-4/tests/l/la140142.am
! 57ac76011ccf9054712e1b09ef71bfd9  gcc/testsuite/ada/acats-4/tests/l/la140143.a
! 7552c854bb4af3c4f87cfe6a7a861610  gcc/testsuite/ada/acats-4/tests/l/la140150.a
! 5f1dcc1a1c97c253b5809c49c2a326ad  gcc/testsuite/ada/acats-4/tests/l/la140151.a
! 662ea838e79bbec83ab42275c2111e2a  gcc/testsuite/ada/acats-4/tests/l/la140152.am
! c80afc3e35ad24a8bb25b5e3d67f2bcb  gcc/testsuite/ada/acats-4/tests/l/la140153.a
! ebc4ad53e17e21942e69ae80c5b47b77  gcc/testsuite/ada/acats-4/tests/l/la140160.a
! 117e1792c17a1e2b5ec04bba346f528d  gcc/testsuite/ada/acats-4/tests/l/la140161.a
! b7744773a1c753b7aa68c166866eb005  gcc/testsuite/ada/acats-4/tests/l/la140162.am
! 9852ca8047bc9e1bd578767b67254fd2  gcc/testsuite/ada/acats-4/tests/l/la140163.a
! f7f66fd9abfb1f4931428292cd1fe63d  gcc/testsuite/ada/acats-4/tests/l/la140170.a
! 2acaa1d866103405c81e05839bd25054  gcc/testsuite/ada/acats-4/tests/l/la140171.a
! ea5de64993880be50e047e540f521cec  gcc/testsuite/ada/acats-4/tests/l/la140172.am
! b3e16fff4bf97ee8001c7d4707b01ca8  gcc/testsuite/ada/acats-4/tests/l/la140173.a
! cef0b6dba566de9e4b3fdd8429f3b573  gcc/testsuite/ada/acats-4/tests/l/la140180.a
! 3a47eaaf81a03727243aa228f4301a60  gcc/testsuite/ada/acats-4/tests/l/la140181.a
! a5c23800bfa114aaa25ef21241ca0c43  gcc/testsuite/ada/acats-4/tests/l/la140182.am
! 831069dc37bbaa6d17e49ec411324925  gcc/testsuite/ada/acats-4/tests/l/la140183.a
! 9597131b3c0b103f6244907627fbf160  gcc/testsuite/ada/acats-4/tests/l/la140190.a
! 14063c6684e8dd6c14ea4d18badb550b  gcc/testsuite/ada/acats-4/tests/l/la140191.a
! 8cbcf00024bdf7530ae51ba8a1ca0bba  gcc/testsuite/ada/acats-4/tests/l/la140192.am
! 99e2d79f6f50d594ab2f3e503f2db441  gcc/testsuite/ada/acats-4/tests/l/la140193.a
! ea6d1fb3bdbfc0deaee617b126be28f4  gcc/testsuite/ada/acats-4/tests/l/la140200.a
! babcd4715ea4f023430dfbe1f896bde1  gcc/testsuite/ada/acats-4/tests/l/la140201.a
! 64279761de38aa82af4a5638c457c1bf  gcc/testsuite/ada/acats-4/tests/l/la140202.am
! 7e4b83d0d9265f463e87dcc9fcf0fe5b  gcc/testsuite/ada/acats-4/tests/l/la140203.a
! b12cced7adaecf2a93250e16cca98cf4  gcc/testsuite/ada/acats-4/tests/l/la140210.a
! 887401b5f446bce786751fa72e341292  gcc/testsuite/ada/acats-4/tests/l/la140211.am
! ab173d0eec0bb616f34f81aa48cd950c  gcc/testsuite/ada/acats-4/tests/l/la140212.a
! 594b0e8144190e578786dbc1bad844dc  gcc/testsuite/ada/acats-4/tests/l/la140220.a
! f842b35f8c01816efc84f4addd2f93b7  gcc/testsuite/ada/acats-4/tests/l/la140221.am
! 772553907cc4b151574b52a2b52dc90c  gcc/testsuite/ada/acats-4/tests/l/la140222.a
! b03871ce6d6f59a7e5a7612e6d89d596  gcc/testsuite/ada/acats-4/tests/l/la140240.a
! efe4e86bfb690c79c68494f323cac801  gcc/testsuite/ada/acats-4/tests/l/la140241.a
! 30f55b3747e6fa1b9ef0af765a76ce5a  gcc/testsuite/ada/acats-4/tests/l/la140242.am
! f95f7a3f483abd92a9bf92b6dc469986  gcc/testsuite/ada/acats-4/tests/l/la140243.a
! 2db8317b47f3ab8bb9a0f5469169d027  gcc/testsuite/ada/acats-4/tests/l/la140250.a
! 938965a24a1e6eb44e817ef6a6bcef36  gcc/testsuite/ada/acats-4/tests/l/la140251.am
! b3d2bc446e9f8766852585be1a71c541  gcc/testsuite/ada/acats-4/tests/l/la140252.a
! ced69a105f582142776937381fb4ac18  gcc/testsuite/ada/acats-4/tests/l/la140260.a
! ff927baa2a1a94e581616deb8f88d900  gcc/testsuite/ada/acats-4/tests/l/la140261.a
! 666740bbcb573799ed4bbd92b8380bac  gcc/testsuite/ada/acats-4/tests/l/la140262.am
! 2a7b7e46c9fcf98d59cf645dd8488895  gcc/testsuite/ada/acats-4/tests/l/la140263.a
! b886a43ab960ee3b74b75b1a1895e692  gcc/testsuite/ada/acats-4/tests/l/la140270.a
! 2f50ecd2b64eb3a3cefb0066c4c043a1  gcc/testsuite/ada/acats-4/tests/l/la140271.a
! 004386b31584ba3e3f7171f7674e4137  gcc/testsuite/ada/acats-4/tests/l/la140272.am
! 9c63871113de9b518e90c90fe8e20f28  gcc/testsuite/ada/acats-4/tests/l/la140273.a
! f19263b1d8e732e67e4146b9594c982b  gcc/testsuite/algol68/README.mcts
! e5039d05979f8f2013eb97c47b03f39f  gcc/testsuite/algol68/compile/a68includes/goodbye-supper.a68
! 87c5803f4ccde55409ffa0424204d656  gcc/testsuite/algol68/compile/a68includes/goodbye.a68
! b4e6e29a29b9f8904188785211fdb092  gcc/testsuite/algol68/compile/a68includes/hello-supper.a68
! 64e1511eefaa2d0053acb354c4b8d31b  gcc/testsuite/algol68/compile/a68includes/hello.a68
! c85a3fb32e7fdbea8d189168dee2964e  gcc/testsuite/algol68/compile/actual-bounds-expected-1.a68
! 00faa4e4e9e8fab5723319b5d3046bcb  gcc/testsuite/algol68/compile/actual-bounds-expected-2.a68
! f271b4958b8cb98cbe7b45780f170aea  gcc/testsuite/algol68/compile/actual-bounds-expected-3.a68
! 2ca20fb2eed52811d35b33e6f819eb6b  gcc/testsuite/algol68/compile/actual-bounds-expected-4.a68
! 1f87f4919633db72c640adf5f448f316  gcc/testsuite/algol68/compile/balancing-1.a68
! e5110ae3f7ceaf841b8ab7285723bb65  gcc/testsuite/algol68/compile/bold-nestable-comment-1.a68
! 05a3adf5f4ee3c28cbfb4362422df86c  gcc/testsuite/algol68/compile/bold-taggle-1.a68
! d972eb644dc0c593f387b2be9f79c441  gcc/testsuite/algol68/compile/brief-nestable-comment-1.a68
! e5736f7a95ff4089e7b2558c9d9421e5  gcc/testsuite/algol68/compile/brief-nestable-comment-2.a68
! 25c43522103449b03020e9e6846b633b  gcc/testsuite/algol68/compile/char-break-1.a68
! 91f279c122cf9faf0ea51b9337c6e97a  gcc/testsuite/algol68/compile/compile.exp
! bc971283f5728545e6e3cd2df580d7f6  gcc/testsuite/algol68/compile/conditional-clause-1.a68
! 1ff689b9532dde45617e5f7a3826bf91  gcc/testsuite/algol68/compile/error-bold-taggle-1.a68
! 712e2ae6e2d14b147adaaf3a2d4951a2  gcc/testsuite/algol68/compile/error-coercion-1.a68
! 7387813dd068726b8857614ece1a4efb  gcc/testsuite/algol68/compile/error-coercion-2.a68
! 0cb5c38709490b0cb4abdcbad85e72d7  gcc/testsuite/algol68/compile/error-coercion-flex-1.a68
! 6f10136e865caf9cc474a2a5e7d1c7c1  gcc/testsuite/algol68/compile/error-compile-unknown-tag-1.a68
! 772b50965a7c1f70a579488e1cefb701  gcc/testsuite/algol68/compile/error-conformance-clause-1.a68
! 91f04623f952b388804ef290a229f30d  gcc/testsuite/algol68/compile/error-contraction-1.a68
! 423a86246648987337fb3246786d0e72  gcc/testsuite/algol68/compile/error-contraction-2.a68
! 10d7016ba245864634ac502533a21027  gcc/testsuite/algol68/compile/error-def-1.a68
! c372b31e69cdf32487bb21c7b0407b98  gcc/testsuite/algol68/compile/error-denotation-1.a68
! 1c1bdd92096dcef25e3a91e40f37ec5a  gcc/testsuite/algol68/compile/error-denotation-2.a68
! 5e501617c0aa881ed82cfcb6431be6bf  gcc/testsuite/algol68/compile/error-denotation-3.a68
! 519411f38ed81f312c3ee31556d4fd36  gcc/testsuite/algol68/compile/error-incestuous-union-1.a68
! 449520edb75baa924cfc860ebce2173e  gcc/testsuite/algol68/compile/error-label-after-decl-1.a68
! fc0e376579ecc74fa9a732f8b172a47a  gcc/testsuite/algol68/compile/error-loop-1.a68
! 28424602955c7ecc77a5076b08d5f902  gcc/testsuite/algol68/compile/error-mode-stropping-1.a68
! 3df85f6e3ae82f664ba4654139cc48eb  gcc/testsuite/algol68/compile/error-mode-stropping-10.a68
! 47a2dea82f1edfeb88c96bcb21c94c0c  gcc/testsuite/algol68/compile/error-mode-stropping-11.a68
! cde487df5525ec9c87e5323cef1d2ee4  gcc/testsuite/algol68/compile/error-mode-stropping-12.a68
! 0ea29baa6cb70365de0048939879dd40  gcc/testsuite/algol68/compile/error-mode-stropping-13.a68
! 96c648532891339ff2dd5559ad0d595d  gcc/testsuite/algol68/compile/error-mode-stropping-14.a68
! 898f6f1bf08b0283d343eba035a8401c  gcc/testsuite/algol68/compile/error-mode-stropping-15.a68
! e30621bdc80ff2af6353dcb71b0290aa  gcc/testsuite/algol68/compile/error-mode-stropping-16.a68
! bae6e3cda87ddf9ff1763adb2c932b71  gcc/testsuite/algol68/compile/error-mode-stropping-17.a68
! a43f09c036e5ff3688c93a6d6988e190  gcc/testsuite/algol68/compile/error-mode-stropping-2.a68
! ea8363590d8ae913ced70be6d0da442d  gcc/testsuite/algol68/compile/error-mode-stropping-3.a68
! 6f7077b5d561faddf79dbc7f90e89a22  gcc/testsuite/algol68/compile/error-mode-stropping-4.a68
! 41d39ffbd49e2b4a2396a0d4ae772e25  gcc/testsuite/algol68/compile/error-mode-stropping-5.a68
! d8d90e3ccd49a8c350bb7fa06c23b69e  gcc/testsuite/algol68/compile/error-mode-stropping-6.a68
! d9255b384fd183b33a0f3f1705652aef  gcc/testsuite/algol68/compile/error-mode-stropping-8.a68
! 948785683824fa830a45a02ee6ebd9f4  gcc/testsuite/algol68/compile/error-mode-stropping-9.a68
! ed8937b8a485d89ad1b8dc4c0b235b82  gcc/testsuite/algol68/compile/error-module-coercions-1.a68
! cb7497a92bbe1faa713c5c33adb6ef6f  gcc/testsuite/algol68/compile/error-module-definition-1.a68
! f014c1edb36efea61731a2d591ca5161  gcc/testsuite/algol68/compile/error-module-definition-2.a68
! b47f251bf682b77a1fcbc0deb10309bb  gcc/testsuite/algol68/compile/error-module-nested-access-1.a68
! c2b0d2946cbab417eebb4d24da1ab5a8  gcc/testsuite/algol68/compile/error-module-not-found-1.a68
! 8b0c028ef528ab0ddc26892632812b6e  gcc/testsuite/algol68/compile/error-module-ranges-1.a68
! e4130ae439c4e60fab00ecd165ae835e  gcc/testsuite/algol68/compile/error-nest-1.a68
! befe947eeef79ffe1618a9c101bb008f  gcc/testsuite/algol68/compile/error-nest-2.a68
! 13c6f9bd338f2223acbb02d80fbaa6a3  gcc/testsuite/algol68/compile/error-nest-3.a68
! 01343d062ee78214852cb73d5d6a3771  gcc/testsuite/algol68/compile/error-nest-4.a68
! fac954b3ace925bc6875ee318be3b810  gcc/testsuite/algol68/compile/error-nest-5.a68
! e74cfe8a318c62621bf56edc50d99212  gcc/testsuite/algol68/compile/error-nestable-comments-1.a68
! 819697f82afa8855ae899bae58e61181  gcc/testsuite/algol68/compile/error-nested-comment-1.a68
! cc2e80ef77087324e853715ffa5b0fe9  gcc/testsuite/algol68/compile/error-no-bounds-allowed-1.a68
! dcdba3a1144fe7a17bead0fdaab5db51  gcc/testsuite/algol68/compile/error-pragmat-1.a68
! 961577f49397d8de33a96b7bee3a6dfb  gcc/testsuite/algol68/compile/error-pragmat-access-1.a68
! 58f53c3766b1296dae7a798be6a07b21  gcc/testsuite/algol68/compile/error-pragmat-access-2.a68
! 6a76caf41326c1938fee01c460527dcb  gcc/testsuite/algol68/compile/error-pub-loc-1.a68
! 00b292932006dfd709e0a0d08445aa5f  gcc/testsuite/algol68/compile/error-pub-out-of-def-1.a68
! 3aac413b2f52401a815b7724127dd361  gcc/testsuite/algol68/compile/error-pub-out-of-def-2.a68
! 26dce7c3c14505d4ced00b37e93662db  gcc/testsuite/algol68/compile/error-radix-1.a68
! d444f95d7ebcab4d1578356ad9f289c7  gcc/testsuite/algol68/compile/error-radix-2.a68
! 71a38033039539f53eda38c144d0a57c  gcc/testsuite/algol68/compile/error-radix-3.a68
! 1149d2f12e64e21d8387cb81de9336fd  gcc/testsuite/algol68/compile/error-radix-4.a68
! 23ff6c5635bdcc50447c246c0de786b8  gcc/testsuite/algol68/compile/error-selector-1.a68
! cbc4b32a4422b77e2bbd1e4179c7fd7c  gcc/testsuite/algol68/compile/error-string-break-1.a68
! 082e1aec4d3067022c46c5f48103bab4  gcc/testsuite/algol68/compile/error-string-break-2.a68
! 4b206cca2b5e4d6921407d726ca2dea7  gcc/testsuite/algol68/compile/error-string-break-3.a68
! 4c28a10de9286f5040598a8f204501b2  gcc/testsuite/algol68/compile/error-string-break-4.a68
! 9e4d6e9b5092e607842e4183ec25fdc3  gcc/testsuite/algol68/compile/error-string-break-5.a68
! 57b9a3c5d5b65ba622cb8ba327e8a0e1  gcc/testsuite/algol68/compile/error-string-break-6.a68
! 97663a66e0e62c17de83a28973735589  gcc/testsuite/algol68/compile/error-string-break-7.a68
! 2bbef29cc7992649cf872916bc9959e6  gcc/testsuite/algol68/compile/error-string-break-8.a68
! 8ba2a838ffe439451fdd25b3315bac45  gcc/testsuite/algol68/compile/error-stropping-5.a68
! 1de00cd3708129cdf0ef6c5a63b468d1  gcc/testsuite/algol68/compile/error-stropping-6.a68
! fd4b8db8915abc451ae8e78a27554f8d  gcc/testsuite/algol68/compile/error-stropping-keyword-1.a68
! 6e09c9aeda688cbf72186cb4f085f721  gcc/testsuite/algol68/compile/error-stropping-keyword-2.a68
! d17a3ccd873a956c117cf732dc0e85cf  gcc/testsuite/algol68/compile/error-stropping-keyword-3.a68
! 0746f049b3c9e0c2f36e7d039f4d93d7  gcc/testsuite/algol68/compile/error-stropping-keyword-4.a68
! 565ecc510c58b6de50f362785750304d  gcc/testsuite/algol68/compile/error-supper-1.a68
! 43c540b3d0441c990ceb682196b8ef6c  gcc/testsuite/algol68/compile/error-supper-2.a68
! 6d0aab19ac94590e52f72ac88c6873e6  gcc/testsuite/algol68/compile/error-supper-3.a68
! bac9dd88dbc1c0ecf2886cf8f2dc6ea4  gcc/testsuite/algol68/compile/error-supper-4.a68
! dbe86d7a006d1833a9c0d3329ef10554  gcc/testsuite/algol68/compile/error-supper-5.a68
! 5ab0eb882297e293a81ec8d11b23295e  gcc/testsuite/algol68/compile/error-supper-6.a68
! 8ae4be1dc463b4deab203b7e4f1c0dc8  gcc/testsuite/algol68/compile/error-underscore-in-mode-1.a68
! 95d860e5b610d1dac6974e28488b5ac1  gcc/testsuite/algol68/compile/error-underscore-in-tag-1.a68
! 5f0690f5735ec37e0d08f13dcadd92d7  gcc/testsuite/algol68/compile/error-upper-1.a68
! e50e174a7ba5765dba1c09f0f4c59dd2  gcc/testsuite/algol68/compile/error-vacuum-1.a68
! b74158b5cbc66479cf8eed83eda443ec  gcc/testsuite/algol68/compile/error-vacuum-2.a68
! c201c42622c38834ece28b9e98d1c98a  gcc/testsuite/algol68/compile/error-vacuum-3.a68
! 61eb32bf01080ba024a0809feecff6fd  gcc/testsuite/algol68/compile/error-widening-1.a68
! de6eb341a7bef8755411f9dbc470eeac  gcc/testsuite/algol68/compile/error-widening-2.a68
! 346712ff33b6fbcb382a71777a5707e7  gcc/testsuite/algol68/compile/error-widening-3.a68
! c10fc254098370506be3ac2011766359  gcc/testsuite/algol68/compile/error-widening-4.a68
! 4a021cd8314780f1e47a6b3218945fae  gcc/testsuite/algol68/compile/error-widening-5.a68
! 1137c11d94275d0d49c544a05fe9adf0  gcc/testsuite/algol68/compile/error-widening-6.a68
! 72248df16145567bf3d86de44324d099  gcc/testsuite/algol68/compile/error-widening-7.a68
! 0fec66df6dda72eb37e7257941a058bd  gcc/testsuite/algol68/compile/error-widening-8.a68
! cb076d039affa49f256d588c4171e17e  gcc/testsuite/algol68/compile/error-widening-9.a68
! 291ee42852cd8c1f62d2aae6a67fb348  gcc/testsuite/algol68/compile/formal-bounds-expected-1.a68
! c05ab27ab53e7f2af37255a03019264b  gcc/testsuite/algol68/compile/formal-hole-1.a68
! a6dda753b5811f78e3c8167773ebb877  gcc/testsuite/algol68/compile/formal-hole-2.a68
! 0592eb4265d3d32a7bec1eaae4ef3c6d  gcc/testsuite/algol68/compile/hidden-operators-1.a68
! 373d5467e21c4017bcef8027af2831ab  gcc/testsuite/algol68/compile/implicit-widening-1.a68
! 34dc6e8add5638f97ec0b506f54e0899  gcc/testsuite/algol68/compile/include-supper.a68
! 295f9865546c229a21bf55c44966849f  gcc/testsuite/algol68/compile/include.a68
! 7151cce68655186c945fa0a6e858ddae  gcc/testsuite/algol68/compile/labeled-unit-1.a68
! 383088d64e01420b84b1178e321887ad  gcc/testsuite/algol68/compile/mcgt-1.3b.a68
! b602de4d7ac9a6d1023dcc45983c25fa  gcc/testsuite/algol68/compile/mcgt-7.1.3a-bis.a68
! 9beecedeeea6e22797a615259ef9da5b  gcc/testsuite/algol68/compile/mcgt-7.1.3a.a68
! 866415cb9d8563f6b5063c4f3b64551c  gcc/testsuite/algol68/compile/module-1.a68
! aa02b40c24104f889489019e2f516e08  gcc/testsuite/algol68/compile/module-2.a68
! 36368510f5b54908ecf16098c9adf923  gcc/testsuite/algol68/compile/module-extracts-1.a68
! 58f8a8146e64b14f207b30ac931202c1  gcc/testsuite/algol68/compile/module-mode-exports-1.a68
! 3108816a0d7320ec6290ade299708451  gcc/testsuite/algol68/compile/module-mode-exports-2.a68
! 65f06ef84b157a6b7a08b35a431ba0df  gcc/testsuite/algol68/compile/module-mode-exports-3.a68
! 4415386a68b882ecede70864745f0df6  gcc/testsuite/algol68/compile/module-mode-exports-4.a68
! b9692cb58a3d12b2d29d23648b68bf6c  gcc/testsuite/algol68/compile/module-mode-exports-5.a68
! cbd0076d47d3f8cac90b83dcd38c350c  gcc/testsuite/algol68/compile/module-mode-exports-6.a68
! d2479b622fe7e2b36db5719bd2e94ffd  gcc/testsuite/algol68/compile/module-mode-exports-7.a68
! 3bd11a181372de6d7f9991e91a5ebe72  gcc/testsuite/algol68/compile/module-mode-exports-8.a68
! 96dd99f70b78c81fb57c5d0e5774461d  gcc/testsuite/algol68/compile/module-mode-exports-9.a68
! c2b468c74e5471b3f54ca28cbaea6686  gcc/testsuite/algol68/compile/module-pub-1.a68
! 22b07a9083a60c5884613f7e6d659d62  gcc/testsuite/algol68/compile/module-pub-mangling-1.a68
! bdcbc238c76116ee32c7b009c9fa639e  gcc/testsuite/algol68/compile/module-pub-mangling-10.a68
! 6fdee0bc204ebc1f76be037d4a87fc70  gcc/testsuite/algol68/compile/module-pub-mangling-11.a68
! cfe6a6dc351a8b5c2dbd290d3c71811a  gcc/testsuite/algol68/compile/module-pub-mangling-12.a68
! bf038513538261cf469cd9ab2144d04a  gcc/testsuite/algol68/compile/module-pub-mangling-13.a68
! 6186433e479818cc33ee09cb15d3f0f2  gcc/testsuite/algol68/compile/module-pub-mangling-14.a68
! 65f843808a06b1615823346d8fdce6ef  gcc/testsuite/algol68/compile/module-pub-mangling-15.a68
! 569230e869a3cb60aa4b00aa8b932cb9  gcc/testsuite/algol68/compile/module-pub-mangling-16.a68
! 263383f62ad84153059b202bbaf5d077  gcc/testsuite/algol68/compile/module-pub-mangling-17.a68
! 368417893936084e3b3152f5f7622aed  gcc/testsuite/algol68/compile/module-pub-mangling-18.a68
! 759b966822f4397503f11ec6228a70d2  gcc/testsuite/algol68/compile/module-pub-mangling-19.a68
! fc4ec9c4918c35aeb1b346a0eaf18fa9  gcc/testsuite/algol68/compile/module-pub-mangling-2.a68
! 55c6faaeee3e6cdda3597d466deb1833  gcc/testsuite/algol68/compile/module-pub-mangling-20.a68
! a30ee6cd63bedaff93b8e6fe5e3104c8  gcc/testsuite/algol68/compile/module-pub-mangling-21.a68
! 09feb0cae5d29f5002b08eae929c069f  gcc/testsuite/algol68/compile/module-pub-mangling-22.a68
! 9c8122be7fb2969d5f0bb16f99f1a819  gcc/testsuite/algol68/compile/module-pub-mangling-3.a68
! 09d1821ad1bac0c00d8936de3dd768a5  gcc/testsuite/algol68/compile/module-pub-mangling-4.a68
! 802c03a836c31b45b3d87282ed957fbc  gcc/testsuite/algol68/compile/module-pub-mangling-5.a68
! 76259e31cd83395a7b4e085144a96755  gcc/testsuite/algol68/compile/module-pub-mangling-6.a68
! 0b4169969cf1067eb9799385c8b1c10f  gcc/testsuite/algol68/compile/module-pub-mangling-7.a68
! 60794c0d1c26ba1f2f284fa16dce9367  gcc/testsuite/algol68/compile/module-pub-mangling-8.a68
! 8df94e66c0218a933ffbabde87c98f0f  gcc/testsuite/algol68/compile/module-pub-mangling-9.a68
! 57e64fa4245da0f8ca4b5b370648c45c  gcc/testsuite/algol68/compile/module-top-down-1.a68
! 024779a0c3ca6cebec4e5274a99a57bc  gcc/testsuite/algol68/compile/modules/compile.exp
! 1dcb757cdfc80354940aadcc2c058999  gcc/testsuite/algol68/compile/modules/module1.a68
! 0b9aef561bc45dc53a4bf5093ff482ba  gcc/testsuite/algol68/compile/modules/module10.a68
! a4909b5b45bb897dbc13f4c51d80097f  gcc/testsuite/algol68/compile/modules/module11.a68
! a9c9cc2123338fad40201ba46bb53367  gcc/testsuite/algol68/compile/modules/module12.a68
! 0ead388a4ef7afb2ca500c71f6b4cc5e  gcc/testsuite/algol68/compile/modules/module2.a68
! 88030bf9e8eba22018c0bf58fc16fb57  gcc/testsuite/algol68/compile/modules/module3.a68
! 1d5afb88a3b85a0838e98351f0c7bdec  gcc/testsuite/algol68/compile/modules/module4.a68
! 09bfa925e013e0da256743cbecdcc934  gcc/testsuite/algol68/compile/modules/module5.a68
! fa078e58a34c64e2f9eccc137c8d6b90  gcc/testsuite/algol68/compile/modules/module6.a68
! b1be91cf495ac75a0e7b22f404587998  gcc/testsuite/algol68/compile/modules/module7.a68
! 2a4f987c3bb31344d2c53974d1186195  gcc/testsuite/algol68/compile/modules/module8.a68
! 85491bb373414b886d25265282cb6791  gcc/testsuite/algol68/compile/modules/module9.a68
! 5d587575b9a9cbefd1425ba84ff89f22  gcc/testsuite/algol68/compile/modules/program-10.a68
! 7c45f6e7d75abf67a972d8a47a1fe164  gcc/testsuite/algol68/compile/modules/program-11.a68
! dde2d4242a63a3b3821c9dbc15c9afa2  gcc/testsuite/algol68/compile/modules/program-7.a68
! cf0515185abfe904fc9bd1837491609c  gcc/testsuite/algol68/compile/modules/program-8.a68
! 3e7423d21011cef99688f62817fa8330  gcc/testsuite/algol68/compile/modules/program-9.a68
! 5580ee274b2e8242ff8cda915c2c7da2  gcc/testsuite/algol68/compile/modules/program-error-multiple-delaration-module-1.a68
! 039e18e1fb1e5d511e47027013332185  gcc/testsuite/algol68/compile/modules/program-error-no-prio-1.a68
! 42a7da4943d0d739f178f7bffafc912d  gcc/testsuite/algol68/compile/modules/program-error-outside-access-1.a68
! c6c9b65f4b03c54cec88bff8a3e163b4  gcc/testsuite/algol68/compile/modules/program-m68-ilp32.a68
! 886863a58c40c368c1c3f6b80e0405b8  gcc/testsuite/algol68/compile/modules/program-m68-llp64-be.a68
! ceeafc62ae8987ea07b32dfcd88c9e01  gcc/testsuite/algol68/compile/modules/program-m68-llp64.a68
! bcedbf89df30527b662d51b4cdd3f419  gcc/testsuite/algol68/compile/modules/program-m68-lp64-be.a68
! 1da550fb7981c16c671c8d3e6d921d63  gcc/testsuite/algol68/compile/modules/program-m68-lp64.a68
! bd8246f2db2521a6818a8ce7f2476610  gcc/testsuite/algol68/compile/modules/program-module-accesses-module-1.a68
! 369030bb9cdc3966fdd495f011a6c692  gcc/testsuite/algol68/compile/modules/program-proc-arg-order-1.a68
! c90631471da8474b6ab60824f0700feb  gcc/testsuite/algol68/compile/nest-c-1.a68
! e82cbeac5b925dd4aea14322ac4ddd87  gcc/testsuite/algol68/compile/nested-comment-1.a68
! 404eced62aab785780ed11e0c0f86ba4  gcc/testsuite/algol68/compile/nested-comment-2.a68
! dad298e7bccf526ef0d9d25e42b36203  gcc/testsuite/algol68/compile/operators-firmly-related.a68
! f641ec12ffc4ee0c12139f3e0ffffc37  gcc/testsuite/algol68/compile/radix-hex-supper-1.a68
! c27cca9b0eb993437a7dadb65b636976  gcc/testsuite/algol68/compile/radix-hex-upper-1.a68
! d4b1df880f7cc582e8613efff9653ccf  gcc/testsuite/algol68/compile/recursive-modes-1.a68
! a93f12b671b8508fbf2baa2a4253de8a  gcc/testsuite/algol68/compile/recursive-modes-2.a68
! 3561c68e6a4c36b27394658b6bdc3388  gcc/testsuite/algol68/compile/serial-clause-jump-1.a68
! 2024cd7c06914acc3b8cf5485907d403  gcc/testsuite/algol68/compile/snobol.a68
! 145f0b855c0ac0cd27fb42b247e0300f  gcc/testsuite/algol68/compile/supper-1.a68
! ff64cdfd35adccba1ec9232b618e0eb9  gcc/testsuite/algol68/compile/supper-10.a68
! ff64cdfd35adccba1ec9232b618e0eb9  gcc/testsuite/algol68/compile/supper-11.a68
! b3e2f72fb3e874bb6f228564c5f3ba82  gcc/testsuite/algol68/compile/supper-12.a68
! e318d2ffce98f0d31ca22f46cb673493  gcc/testsuite/algol68/compile/supper-13.a68
! 5edd9e91d2884fa097c67d458fcde278  gcc/testsuite/algol68/compile/supper-2.a68
! 6be86bbfa8b310868d71b1a291d14b64  gcc/testsuite/algol68/compile/supper-3.a68
! 84f285a613f3347d987cf971505a9919  gcc/testsuite/algol68/compile/supper-4.a68
! c87f046f2269ddc8556fefa19c1dce55  gcc/testsuite/algol68/compile/supper-5.a68
! e514dd314d372ded56f305ec89df805c  gcc/testsuite/algol68/compile/supper-6.a68
! 8531670485c3f7e6082b665efbae9682  gcc/testsuite/algol68/compile/supper-7.a68
! 5a27b250044f572c2fe2e84d2a1fa5e3  gcc/testsuite/algol68/compile/supper-8.a68
! ff64cdfd35adccba1ec9232b618e0eb9  gcc/testsuite/algol68/compile/supper-9.a68
! f1a8a0aafe3ffbb66f6e0e6a1f1f0b1d  gcc/testsuite/algol68/compile/uniting-1.a68
! 5eae0d8c3398d3e91bfa2074f01692e7  gcc/testsuite/algol68/compile/upper-1.a68
! 042fdbdb9fc83d2ca8165e22be105523  gcc/testsuite/algol68/compile/warning-hidding-1.a68
! b91e054fd5205dc4bd2015f4431c6b1c  gcc/testsuite/algol68/compile/warning-hidding-2.a68
! 70ccfa1078776e5f5a275ce587db4110  gcc/testsuite/algol68/compile/warning-hidding-3.a68
! 679fbe072eab8bd2ae4773c8ae27fc1f  gcc/testsuite/algol68/compile/warning-hidding-4.a68
! 519dc2e59f6aa656dd9685f21aefaa5a  gcc/testsuite/algol68/compile/warning-hidding-5.a68
! c78799719df0d519b3ef8286a37fbc86  gcc/testsuite/algol68/compile/warning-hidding-6.a68
! e14ebfc17f0d5a0614337bead1e007ba  gcc/testsuite/algol68/compile/warning-hidding-7.a68
! 4d1973c48986daa9670ee83d7c85ff4e  gcc/testsuite/algol68/compile/warning-module-hidding-1.a68
! 41df534ea49cfcb09d174d33fd30ee3f  gcc/testsuite/algol68/compile/warning-pub-loc-1.a68
! 1d064e1d3ce2a25c6d87a174853839b8  gcc/testsuite/algol68/compile/warning-scope-1.a68
! c1bb63db8778574141ba8b0ba3efdffb  gcc/testsuite/algol68/compile/warning-scope-2.a68
! fb8ee4fc6e4c5d4fa62090fa686b571c  gcc/testsuite/algol68/compile/warning-scope-3.a68
! 5dd8e6372604212da6e7a3a74bf5f1e2  gcc/testsuite/algol68/compile/warning-scope-4.a68
! 9d23058b55d15e6615bed854ec1a5bda  gcc/testsuite/algol68/compile/warning-scope-5.a68
! 0be6b6c632713540dd42006311041762  gcc/testsuite/algol68/compile/warning-scope-6.a68
! 83d8b095ce6d4e3dc7952ab6010a738a  gcc/testsuite/algol68/compile/warning-scope-7.a68
! e0763eeea13d9b0030c88a8a065086bb  gcc/testsuite/algol68/compile/warning-scope-module-1.a68
! cb6403a5beb55a3c3529252680f80d25  gcc/testsuite/algol68/compile/warning-scope-module-2.a68
! 36df77e2df434ac3fe29ffc6b5cf241f  gcc/testsuite/algol68/compile/warning-voiding-1.a68
! f4e07cdc51a4d9f943c8723beaf620d3  gcc/testsuite/algol68/compile/warning-voiding-2.a68
! 6f31bd3a5950b147620549f9b34066af  gcc/testsuite/algol68/execute/abs-bits-1.a68
! accbb9b6d6cd10bfaf3a1cddd3dcb20f  gcc/testsuite/algol68/execute/abs-bool-1.a68
! cfc81467b4bf5daec874923660541f47  gcc/testsuite/algol68/execute/abs-char-1.a68
! 02dbd2f1c612d1180ec716d883ce4ce3  gcc/testsuite/algol68/execute/abs-int-1.a68
! 2f11404e3df85ac17b53ddbaa674bbbc  gcc/testsuite/algol68/execute/abs-int-negative-1.a68
! fe740957a67fc6db10529d51f119e57f  gcc/testsuite/algol68/execute/abs-int-negative-gnu-1.a68
! 877202a2d772a79bce9870d2ac0b44a9  gcc/testsuite/algol68/execute/acos-1.a68
! 119de340db84bbd87adf8675aec7b807  gcc/testsuite/algol68/execute/affirm-int-1.a68
! f87237bafdc31ea65a2222672f6068cd  gcc/testsuite/algol68/execute/and-bits-1.a68
! f031dc750c0419a945fa738fa7bfbd47  gcc/testsuite/algol68/execute/andf-1.a68
! 2c08650c5f2ac77fa0c46febbde24f89  gcc/testsuite/algol68/execute/ascription-1.a68
! 580da34269191b33c5d9b2af389f9c9c  gcc/testsuite/algol68/execute/asin-1.a68
! 3d572f1887f7bc22da97c61dc943d1a2  gcc/testsuite/algol68/execute/assert-1.a68
! a0a63b1946a5b26fefbf93d5d3a64b4b  gcc/testsuite/algol68/execute/assignation-char-1.a68
! 7d7416cfc8482dfa9905b19560d6dbdc  gcc/testsuite/algol68/execute/assignation-int-1.a68
! 5ec5e5ad15c60eb2972eed2e6c5c45c0  gcc/testsuite/algol68/execute/assignation-int-2.a68
! 87bfb275c9f0d3b21d3acf5ef4d1a6b2  gcc/testsuite/algol68/execute/assignation-int-3.a68
! c614d5d5423e52b684aff475164c94fc  gcc/testsuite/algol68/execute/assignation-int-4.a68
! dbafbb6414146f08c26b74f94a2200c4  gcc/testsuite/algol68/execute/assignation-int-5.a68
! 8f0630458afc6f39010118b8818cfc25  gcc/testsuite/algol68/execute/assignation-multiple-1.a68
! 5644459e43161c4e0c1d875597b5c165  gcc/testsuite/algol68/execute/assignation-multiple-2.a68
! 663abf05594ffc89c2ea7bafe135e8ab  gcc/testsuite/algol68/execute/assignation-struct-1.a68
! fee03eae054bd7ad4ced178392b4e90d  gcc/testsuite/algol68/execute/assignation-struct-2.a68
! d91c02c9384fd6685b520986ddccacd1  gcc/testsuite/algol68/execute/atan-1.a68
! a4aa01b3a8896896ab5e1a53ffd017d6  gcc/testsuite/algol68/execute/balancing-1.a68
! da2f639d00aef0837f7fe5841659a31e  gcc/testsuite/algol68/execute/balancing-rows-1.a68
! ae090482307635cef763b8472c5f9f63  gcc/testsuite/algol68/execute/bin-1.a68
! 2b96660f217790ef4d3c30d7967e272b  gcc/testsuite/algol68/execute/bin-negative-1.a68
! 136cb319d4afa76d14581fab22962bda  gcc/testsuite/algol68/execute/bin-negative-gnu-1.a68
! 05bdda461b233eed5f4c0836020e4da3  gcc/testsuite/algol68/execute/bits-clear-1.a68
! 5fcb820655e1db838273df37eaa32743  gcc/testsuite/algol68/execute/bits-set-1.a68
! e7129df766858f1d3fa7cddc06870e34  gcc/testsuite/algol68/execute/bits-shift-1.a68
! 2106e23f362f111ec6348cd6f382cdec  gcc/testsuite/algol68/execute/bits-shift-2.a68
! 62eb1ffb4baa1314de645f7bc57cec6b  gcc/testsuite/algol68/execute/bits-shift-3.a68
! 61680edfccb9d633594d35fd2c41a3cb  gcc/testsuite/algol68/execute/bits-shift-4.a68
! 42b771eaf2ba3d0c0b83ad6df8905be4  gcc/testsuite/algol68/execute/bits-test-1.a68
! ec8d149dd4b8f99f91e13d231858cfcd  gcc/testsuite/algol68/execute/boolops-1.a68
! f081dd04a0bf5e6ab8d9e46fe1bfefb9  gcc/testsuite/algol68/execute/call-1.a68
! 6dbe11ab04e61f6238e7d61772d8ba2f  gcc/testsuite/algol68/execute/call-2.a68
! 3b976f3d1b40056f6749d5d218594596  gcc/testsuite/algol68/execute/case-clause-1.a68
! 0ac42c16ed4a3d26a4fc223a28a3babc  gcc/testsuite/algol68/execute/case-clause-2.a68
! 9ce4be63791985568884bacc3882e475  gcc/testsuite/algol68/execute/case-clause-3.a68
! 83951470af951e2409bb1a108084bd54  gcc/testsuite/algol68/execute/case-clause-4.a68
! 02db7ddf99340c440b7b9056b6e64d62  gcc/testsuite/algol68/execute/char-in-string-1.a68
! 134bc3c3f0ff93a2bf4f2c36a45ede82  gcc/testsuite/algol68/execute/closed-clause-1.a68
! ee151f87269fccc8b4737638ee4ae901  gcc/testsuite/algol68/execute/closed-clause-2.a68
! a879aa31f6f57217fb63977c8ff24033  gcc/testsuite/algol68/execute/collateral-clause-1.a68
! 389fb745cda04c1fc7609ea5c440204d  gcc/testsuite/algol68/execute/collateral-clause-2.a68
! 7d8618b65b9baef870ca40d0099e3000  gcc/testsuite/algol68/execute/collateral-clause-3.a68
! b9cddcf7d1a8b57d82b82e4bf32c695a  gcc/testsuite/algol68/execute/collateral-clause-4.a68
! 2b210d0c6005d5c99910343f6e8fd7d4  gcc/testsuite/algol68/execute/collateral-clause-5.a68
! 31862b4d81f1cb397b0ac3a4d9e2e6c2  gcc/testsuite/algol68/execute/collateral-clause-6.a68
! 099d4ca57baf1c0e676528d4b0ecb50f  gcc/testsuite/algol68/execute/completer-1.a68
! 514b7195d1185c56b929e40a86432703  gcc/testsuite/algol68/execute/completer-10.a68
! ca0a533fe79e431731740acb0f953668  gcc/testsuite/algol68/execute/completer-2.a68
! 2f565c2fe73e64f30fe965b5a7576c5e  gcc/testsuite/algol68/execute/completer-3.a68
! 37918fd711527c4be259033bda1d0b09  gcc/testsuite/algol68/execute/completer-4.a68
! 12fb4674ebfaf37f432fb15125bb0941  gcc/testsuite/algol68/execute/completer-5.a68
! 45fa444b2da0f089014889482566caba  gcc/testsuite/algol68/execute/completer-6.a68
! 78cebe86975cefb26566715ab18373e8  gcc/testsuite/algol68/execute/completer-7.a68
! d87562d8a3a66f1736b2f3e014ef1e1b  gcc/testsuite/algol68/execute/completer-8.a68
! 4da82e3d03914a35b271839c2bb96aa5  gcc/testsuite/algol68/execute/completer-9.a68
! 9a8d291e75b55086ab4f7c1dcb276379  gcc/testsuite/algol68/execute/cond-clause-1.a68
! 95b34e03e8e3c77fdd0b28365d7272d1  gcc/testsuite/algol68/execute/cond-clause-2.a68
! 6523275e101332ef829adf51134069a4  gcc/testsuite/algol68/execute/cond-clause-3.a68
! e4f1b45c5b52b8571f79cc59d2281f7d  gcc/testsuite/algol68/execute/cond-clause-4.a68
! 82f8ebb678a23c828c751c0747587402  gcc/testsuite/algol68/execute/cond-clause-5.a68
! 855bae20e38b283483705e8cbfe2362b  gcc/testsuite/algol68/execute/cond-clause-6.a68
! cbb1f2c0839bc81be90ba4dbb2d18db7  gcc/testsuite/algol68/execute/cond-clause-7.a68
! 101ae50a145a58578cd50423c8ed2640  gcc/testsuite/algol68/execute/cond-clause-8.a68
! eb6b88663d350d259e63e131ba8a3c0d  gcc/testsuite/algol68/execute/cond-clause-9.a68
! 38e85eb8e872f87c71fc1871d9fade58  gcc/testsuite/algol68/execute/conformity-clause-1.a68
! baca78e397d56955e08de1bcdda193b7  gcc/testsuite/algol68/execute/conformity-clause-2.a68
! be34795116521dbc8fe2118dd8f35cda  gcc/testsuite/algol68/execute/conformity-clause-3.a68
! faf45e27771fd517003fd2825e8ab2bd  gcc/testsuite/algol68/execute/conformity-clause-4.a68
! 914f2cb405533d2a4e06eedccccc5909  gcc/testsuite/algol68/execute/conformity-clause-5.a68
! ef2cee54d7241788252846ddb8012279  gcc/testsuite/algol68/execute/conformity-clause-6.a68
! 5e9a02d39b2e0cd18e1d4db7308c976b  gcc/testsuite/algol68/execute/conformity-clause-7.a68
! 9bb65e1ba110bbe774373ae746520fe5  gcc/testsuite/algol68/execute/conformity-clause-8.a68
! 87a335de6a7c3096c441d49a5cfad3ae  gcc/testsuite/algol68/execute/conformity-clause-9.a68
! 6890f5865b839ce7a1eb9f8a8710c924  gcc/testsuite/algol68/execute/conj-1.a68
! 9e81df8366d501648815ae3dca5693e2  gcc/testsuite/algol68/execute/cos-1.a68
! c1f7cf7e6ca0417c53c383df00db1fbd  gcc/testsuite/algol68/execute/declarer-1.a68
! dc1f5f57e4f08bf87f507da054805690  gcc/testsuite/algol68/execute/declarer-2.a68
! ddbd04d9353495ff9d3524e0bb35176a  gcc/testsuite/algol68/execute/deprocedure-1.a68
! 4960fac5d1f0eb5826cff883cea19dfd  gcc/testsuite/algol68/execute/deprocedure-2.a68
! 7c760cf7a52df9d01827fcba958afcda  gcc/testsuite/algol68/execute/deref-1.a68
! d81d3c1d106d6783a1c998dbc89ed678  gcc/testsuite/algol68/execute/deref-2.a68
! 6c781aeb74a6259e99324df0b5401623  gcc/testsuite/algol68/execute/deref-3.a68
! 982dc493f84d4382ce9de8e93d0130c4  gcc/testsuite/algol68/execute/deref-4.a68
! 18ef48f5528ecf49f225e6e093153606  gcc/testsuite/algol68/execute/deref-5.a68
! fec2d074648e9829ee91f401accba7fe  gcc/testsuite/algol68/execute/deref-6.a68
! c0169c45fae6c4dfb32c0cc6db4b027c  gcc/testsuite/algol68/execute/deref-7.a68
! dbb9ce5fac64eac51f7ab061078195fc  gcc/testsuite/algol68/execute/deref-8.a68
! 979e738845d5e19bdc1d96ba8bdecb19  gcc/testsuite/algol68/execute/div-int-1.a68
! 4341515725c9c9e8671af19bbeda8ac8  gcc/testsuite/algol68/execute/divab-real-1.a68
! eb377fcf51134d65c7dbf4e75b35f626  gcc/testsuite/algol68/execute/elem-bits-1.a68
! d28bd86683318749921d33768b05e672  gcc/testsuite/algol68/execute/elems-1.a68
! 87bf22672af7e0a9d3a3f7caabba50eb  gcc/testsuite/algol68/execute/elems-2.a68
! 7ea390807313649507d885669fdea01c  gcc/testsuite/algol68/execute/entier-1.a68
! 51404f0b5276bbc5b7e3b762b09318df  gcc/testsuite/algol68/execute/environment-enquiries-1.a68
! 3961a8cfc448bde31af41a37a3c22c16  gcc/testsuite/algol68/execute/environment-enquiries-2.a68
! e98f6711fdde351ab7cb182c5f5ad2d8  gcc/testsuite/algol68/execute/environment-enquiries-3.a68
! 59781becf68d623767322cf1e992825d  gcc/testsuite/algol68/execute/environment-enquiries-4.a68
! ceb3e88a673d38ade96b035d74aef45b  gcc/testsuite/algol68/execute/environment-enquiries-5.a68
! 1ad373a0ab831ef6ab53f647191cf39f  gcc/testsuite/algol68/execute/environment-enquiries-6.a68
! fecc16d598a7256809eefce2837e995e  gcc/testsuite/algol68/execute/environment-enquiries-7.a68
! 213909ae045e11eadee141a8d9975884  gcc/testsuite/algol68/execute/environment-enquiries-8.a68
! dcc9fc6c5fa0cf610db799d4f2e8b4a6  gcc/testsuite/algol68/execute/eq-bits-1.a68
! 6781dc551cefbd7089d202ca1993a120  gcc/testsuite/algol68/execute/eq-char-char-1.a68
! 9b4e01fa39277679a44a80b293945a9d  gcc/testsuite/algol68/execute/eq-int-1.a68
! 96e4d53971b565084b3da8c8e360b0f6  gcc/testsuite/algol68/execute/eq-string-1.a68
! a8e646bd6e333b7d40ea2b9682585404  gcc/testsuite/algol68/execute/eq-string-stride-1.a68
! 9daee47b8c200cd14326857a9f661851  gcc/testsuite/algol68/execute/execute.exp
! 7ef234a2ce63c440afceda8bff5d729d  gcc/testsuite/algol68/execute/factorial-1.a68
! 65e09837ac474552f626814797a8a0dd  gcc/testsuite/algol68/execute/flat-assignation-1.a68
! 49a8cc16095d7dc48ecd0475ff5da7a3  gcc/testsuite/algol68/execute/flat-assignation-2.a68
! 83d986fc53aeb53cdff2014a1ea0754e  gcc/testsuite/algol68/execute/flex-1.a68
! 857b9d66f20e8432e28c0322bb27b983  gcc/testsuite/algol68/execute/flex-2.a68
! 262d159d55127a301907c2ee423b12d2  gcc/testsuite/algol68/execute/flex-3.a68
! 12d973435b00a6a45aacc8f2c9549124  gcc/testsuite/algol68/execute/flex-4.a68
! 69ab0639a45032fbe4d62731467d1f4a  gcc/testsuite/algol68/execute/flex-5.a68
! 85bdfb6f3eb5e72e0332dce3487524bc  gcc/testsuite/algol68/execute/float-1.a68
! 0e012b24ffa70dc57520cb70ec140c6a  gcc/testsuite/algol68/execute/formula-1.a68
! 2bd0bebf0a4ff2cd7f515ca5adfb38bc  gcc/testsuite/algol68/execute/formula-2.a68
! b9aae346a615c572bb38b3752df2e4a4  gcc/testsuite/algol68/execute/fsize-1.a68
! 5f7c18865568e1230191356a11a2294d  gcc/testsuite/algol68/execute/ge-int-1.a68
! fc7f778438609b79b219c587aaff0e2e  gcc/testsuite/algol68/execute/ge-string-stride-1.a68
! c8781fa730bc7e37b98c94b8a28a6692  gcc/testsuite/algol68/execute/gen-flex-1.a68
! 31b71ed60a7c765432c670ed487c5fa8  gcc/testsuite/algol68/execute/gen-heap-1.a68
! e8e18ba2ac977267fc50b8ce567bea19  gcc/testsuite/algol68/execute/gen-heap-2.a68
! b1ab3387a936805f0a2eb209f055c65b  gcc/testsuite/algol68/execute/gen-heap-3.a68
! 75e4ba7479612c0cdd9b10d6eef2cca7  gcc/testsuite/algol68/execute/gen-heap-bool-1.a68
! a8e233557587ba06657151673d7b40f1  gcc/testsuite/algol68/execute/gen-heap-int-1.a68
! 92f52bfea401d80724a8b2576cd3ec2b  gcc/testsuite/algol68/execute/gen-heap-real-1.a68
! 8267dec9946820121cefb2b04045daf1  gcc/testsuite/algol68/execute/gen-heap-struct-1.a68
! 0ff735ad1c88c280504801e33c591dea  gcc/testsuite/algol68/execute/gen-heap-struct-2.a68
! 31c982a38da90d68c69eb97b84d9f88c  gcc/testsuite/algol68/execute/gen-heap-struct-3.a68
! e558d2055c3e13cdefde2250b8b885a4  gcc/testsuite/algol68/execute/gen-loc-1.a68
! c5f821f50126063840d1c5c5052d7812  gcc/testsuite/algol68/execute/gen-loc-2.a68
! cdde7a66c709d7f19189f47e3a3326b6  gcc/testsuite/algol68/execute/gen-loc-3.a68
! 219d7a91318371bcd4b954c0606db46e  gcc/testsuite/algol68/execute/gen-loc-4.a68
! 3218c2ce966c2e301afdf8455dceeb78  gcc/testsuite/algol68/execute/gen-multiple-1.a68
! de5803931b4251fd93531ea475cb587c  gcc/testsuite/algol68/execute/gen-union-1.a68
! 8b5c47e6f02e17aefb06e38c9a4ef752  gcc/testsuite/algol68/execute/gen-union-2.a68
! d2fcde4ffeb38f8450748dec18ab8938  gcc/testsuite/algol68/execute/gen-union-3.a68
! 1800fb555bfba4f80a645a570ce656f1  gcc/testsuite/algol68/execute/goto-1.a68
! e296e06a3bd11fc9649271e197cb4d2c  gcc/testsuite/algol68/execute/goto-2.a68
! 168c31af35da2bb789344a6832224e9e  gcc/testsuite/algol68/execute/goto-3.a68
! 4e53d6a162a75ca255030f88f91ef4f1  gcc/testsuite/algol68/execute/goto-4.a68
! ed1e24f77f3ec2e70ca866599806ba07  gcc/testsuite/algol68/execute/goto-5.a68
! 36b1056620fe90baad460e40e5379f13  gcc/testsuite/algol68/execute/gt-int-1.a68
! b963df2561f52c7f680d42b20d907df8  gcc/testsuite/algol68/execute/gt-string-stride-1.a68
! 9a289f447158b97e91c42bd7e51dddca  gcc/testsuite/algol68/execute/i-1.a68
! e5e84de368bc8706dadb6d0928498919  gcc/testsuite/algol68/execute/i-2.a68
! f432a54fae682e9925ddb41eeb192276  gcc/testsuite/algol68/execute/identification-1.a68
! c144e372d1f713708ebb8a9774742dfd  gcc/testsuite/algol68/execute/identification-2.a68
! d656bca95c10f9bfcf5e8b05f88c9219  gcc/testsuite/algol68/execute/identity-declaration-1.a68
! 1fbea93248740bb43f7b05d15faffdc7  gcc/testsuite/algol68/execute/identity-declaration-2.a68
! 520b83041696404508e25fef05bf3e1a  gcc/testsuite/algol68/execute/identity-declaration-3.a68
! c7106ffcbb2e6622229b63e229315667  gcc/testsuite/algol68/execute/identity-declaration-4.a68
! 615401c668cdc6b04993d4ca4c73982e  gcc/testsuite/algol68/execute/identity-declaration-5.a68
! 3bce335dabf76645d6d8b2c8bfaf7fd4  gcc/testsuite/algol68/execute/identity-declaration-multiple-1.a68
! 7978e2dcd70a69c87fe32b6365586290  gcc/testsuite/algol68/execute/identity-declaration-multiple-2.a68
! f0eef34d1d903fa09d9fede76779432f  gcc/testsuite/algol68/execute/identity-declaration-multiple-3.a68
! c375799d27f40bd98784c6afdd117153  gcc/testsuite/algol68/execute/identity-declaration-multiple-5.a68
! d44cf8da4b9861943bdcf087c30c53a4  gcc/testsuite/algol68/execute/identity-declaration-multiple-empty-1.a68
! 4e9a011076f2d89c9abe7cda40e78153  gcc/testsuite/algol68/execute/identity-declaration-multiple-empty-2.a68
! b73ec546c98fa032dc86e837a4524dba  gcc/testsuite/algol68/execute/identity-declaration-multiple-empty-3.a68
! 874e6ecb8e2ecdc9e5c4eb11872f81d1  gcc/testsuite/algol68/execute/identity-declaration-multiple-empty-4.a68
! cef67c1e6458be318ae78d11e6b3e7df  gcc/testsuite/algol68/execute/identity-declaration-struct-1.a68
! 55ab9d9017c2a05d524ff4a111a908ff  gcc/testsuite/algol68/execute/infinity-1.a68
! e74daaa863ea033089503f62db51c81f  gcc/testsuite/algol68/execute/le-ge-bits-1.a68
! a3ea01e9392b8f7e9b0fd466e628dd5f  gcc/testsuite/algol68/execute/le-int-1.a68
! 5985911abb5bb40dbe8e1f076c69f0e0  gcc/testsuite/algol68/execute/le-string-stride-1.a68
! 9758a035cc553cd1d08af2fe9aadc658  gcc/testsuite/algol68/execute/leng-shorten-bits-1.a68
! 59db9e74b61c1a3e12badd1bbd5253d9  gcc/testsuite/algol68/execute/leng-shorten-ints-1.a68
! e614d5256778900794a549282541e4f8  gcc/testsuite/algol68/execute/leng-shorten-reals-1.a68
! 72fcbaeda67124c796c65515c0576179  gcc/testsuite/algol68/execute/lengths-shorths-1.a68
! 93125d5727e981cafe1e517407fba05b  gcc/testsuite/algol68/execute/lisp-1.a68
! f65ce081fb14f2f053f8d73f38d9a328  gcc/testsuite/algol68/execute/lisp-2.a68
! 5f02982490e28a6d82ba428df86d7c90  gcc/testsuite/algol68/execute/ln-1.a68
! 1045570348f2a87fc6b439e8730b65f3  gcc/testsuite/algol68/execute/log-1.a68
! 3fd8c732ab77c619ec999217384a7584  gcc/testsuite/algol68/execute/loop-1.a68
! b84920b0f38f100042fa7f9348eff89e  gcc/testsuite/algol68/execute/loop-10.a68
! fb65d0c7edde4a134387cc723557d070  gcc/testsuite/algol68/execute/loop-11.a68
! 5f3abb7ab228dfc273dbdba31d3026c3  gcc/testsuite/algol68/execute/loop-12.a68
! f8abea2c08b58766722308e58c643107  gcc/testsuite/algol68/execute/loop-13.a68
! 3992a7cab54de33b1274dc60eaa81f0e  gcc/testsuite/algol68/execute/loop-14.a68
! 2fd19d0b548a489d0ee18b5deca5e3c4  gcc/testsuite/algol68/execute/loop-2.a68
! 04805e71c2cde9aff5381dd055e22835  gcc/testsuite/algol68/execute/loop-3.a68
! 9de49e098b921db45b97147fb57d1f43  gcc/testsuite/algol68/execute/loop-4.a68
! a856f9bc870a57c4ad5306c2c5cc7698  gcc/testsuite/algol68/execute/loop-5.a68
! 0887b36a4a717edfc3cbbe871bf72de0  gcc/testsuite/algol68/execute/loop-6.a68
! 5f0f265de99627a12a23badc8ecb1ed8  gcc/testsuite/algol68/execute/loop-7.a68
! 36b2a39bbd00f243fe132f3e29c5cf2e  gcc/testsuite/algol68/execute/loop-8.a68
! e373551215430f757877c972e19f2838  gcc/testsuite/algol68/execute/loop-9.a68
! f6992141febcab7071f62af571dc1662  gcc/testsuite/algol68/execute/loop-overflow-underflow.a68
! 97149bb12892029bbf7ccfa70f988694  gcc/testsuite/algol68/execute/lt-int-1.a68
! 403664d8fdb92d44d8d77f5c7769d658  gcc/testsuite/algol68/execute/lt-string-stride-1.a68
! 1c0c0e0d45f17319389527f9956e1fe8  gcc/testsuite/algol68/execute/lwb-1.a68
! 3c65d8653e286e0953552d6ff77e4db3  gcc/testsuite/algol68/execute/manorboy.a68
! 2bac21ce94bfbfb0553b0a0e51c97637  gcc/testsuite/algol68/execute/mcgt/execute.exp
! 80101d91b48509cb4f7846351bba484c  gcc/testsuite/algol68/execute/mcgt/mcgt-1.3a.a68
! 8564fc812b0e80bfef1c1a2398d54e63  gcc/testsuite/algol68/execute/mcgt/mcgt-1.3c.a68
! b2db277c52a93a7d4d245297911207d0  gcc/testsuite/algol68/execute/mcgt/mcgt-2.2.1a.a68
! 3f9751fe9f21ce1393f45ed410783f8d  gcc/testsuite/algol68/execute/mcgt/mcgt-2.2.2a.a68
! 302e6b6e67577de78f4de468133a43e1  gcc/testsuite/algol68/execute/mcgt/mcgt-2.2.3a.a68
! 6170fad42ce2a401e247dce4aef783ce  gcc/testsuite/algol68/execute/mcgt/mcgt-2.3a.a68
! 53bcdc361a47d937d793bc13ef8142c3  gcc/testsuite/algol68/execute/mcgt/mcgt-2.3b.a68
! 72a69ed16d7191f86a2f5e44bcc2b1c7  gcc/testsuite/algol68/execute/mcgt/mcgt-2.3c.a68
! 12681698e37ad7e794c9fbbccceefbc7  gcc/testsuite/algol68/execute/mcgt/mcgt-2.3e.a68
! 2d01e8ba38672959a4ac1d1f7de661d9  gcc/testsuite/algol68/execute/mcgt/mcgt-2.4.2a.a68
! ea1307215b3adfccd3539234e5a82364  gcc/testsuite/algol68/execute/mcgt/mcgt-2.4.2b.a68
! 61581965cc17f46bb51270af8b086f4c  gcc/testsuite/algol68/execute/mcgt/mcgt-2.4.2c.a68
! 319e77b45e87948c06ac88cd62e52946  gcc/testsuite/algol68/execute/mcgt/mcgt-2.4.3a.a68
! 8d7edf8f81de7c65389a843cd6c1694a  gcc/testsuite/algol68/execute/mcgt/mcgt-2.6a.a68
! 9222869880bb0c97f3ac24ee99488601  gcc/testsuite/algol68/execute/mcgt/mcgt-2.6b.a68
! 46abfe21a35fb7d0b39d422aaa190ab7  gcc/testsuite/algol68/execute/mcgt/mcgt-2.7d.a68
! 571122e2125cf2744965eb4880dae0ef  gcc/testsuite/algol68/execute/mcgt/mcgt-2.7e.a68
! 6ac14d9ff311d18a7b989198fb08a125  gcc/testsuite/algol68/execute/mcgt/mcgt-2.8a.a68
! b19753bc22169639e79bbfc4c3a225df  gcc/testsuite/algol68/execute/mcgt/mcgt-2.8b.a68
! 251a78fa31e81594108caca24d101104  gcc/testsuite/algol68/execute/mcgt/mcgt-2.9.1a.a68
! a69765345b92f5390d79fe421ad9a111  gcc/testsuite/algol68/execute/mcgt/mcgt-3.5.1a.a68
! 0a02c5e634936da1bb46787911b39f1e  gcc/testsuite/algol68/execute/mcgt/mcgt-3.5d.a68
! 56cf43e5e868bd6ef4a5b556be01e102  gcc/testsuite/algol68/execute/mcgt/mcgt-3.7.2a.a68
! c6c0fa439704a097983dad3b26712c2b  gcc/testsuite/algol68/execute/mcgt/mcgt-3.8.2a.a68
! 3f66262c3990101ed26775cc3a830182  gcc/testsuite/algol68/execute/mcgt/mcgt-3.9.1b.a68
! 33e97db8a8e39aa65e268a62732552db  gcc/testsuite/algol68/execute/mcgt/mcgt-4.1.2a.a68
! 0abde9f99c3bcf432c3c19217031699c  gcc/testsuite/algol68/execute/mcgt/mcgt-4.1.3a.a68
! 8271032d0686b7352a1ffe9ae469d5cd  gcc/testsuite/algol68/execute/mcgt/mcgt-4.1.6a.a68
! 93cadb1dd1146421ef3e13cdb2500656  gcc/testsuite/algol68/execute/mcgt/mcgt-4.1.6b.a68
! 6c01d768442f2cfc28c352b4a775bae5  gcc/testsuite/algol68/execute/mcgt/mcgt-4.1.6c.a68
! 2423f83c85c12e4337b3e57714f2b91b  gcc/testsuite/algol68/execute/mcgt/mcgt-4.2.6a.a68
! ee67ee6fcbd91238c2adb2db24a68668  gcc/testsuite/algol68/execute/mcgt/mcgt-4.2.6b.a68
! 7685c4f3c63f5136741122ad3aca00e2  gcc/testsuite/algol68/execute/mcgt/mcgt-4.2.6d.a68
! 7e1d3983e657a999451fef6d2a1c4590  gcc/testsuite/algol68/execute/mcgt/mcgt-4.3.1a.a68
! 4b847d25f8cd91ab9abbad425d2b7385  gcc/testsuite/algol68/execute/mcgt/mcgt-4.3.1b.a68
! 8ac61b2297ced9d281219cb4607f51ac  gcc/testsuite/algol68/execute/mcgt/mcgt-4.3.2a.a68
! 739e4ef6f3ffc907f97cc48f017cf43b  gcc/testsuite/algol68/execute/mcgt/mcgt-5.1.2a.a68
! 71dbd56cddf844a16d3e1c01c3e9c298  gcc/testsuite/algol68/execute/mcgt/mcgt-5.1.3a.a68
! 5d6fbd8533607281d5e70f8f2650614f  gcc/testsuite/algol68/execute/mcgt/mcgt-5.1.3c.a68
! dbf8a74434b64f2e10f5897d87da0ac5  gcc/testsuite/algol68/execute/mcgt/mcgt-5.1.5a.a68
! fb8ec7b28f63c77c30deba28b89c5d2e  gcc/testsuite/algol68/execute/mcgt/mcgt-6.2.2a.a68
! 80f501ba48e8758a8a580f2c4b3da6d1  gcc/testsuite/algol68/execute/mcgt/mcgt-6.2.2b.a68
! 13bc2b0aa87442aacea750772eef561a  gcc/testsuite/algol68/execute/mcgt/mcgt-6.2.2c.a68
! 663aab1a9e007349a2055b6f78c8d98f  gcc/testsuite/algol68/execute/mcgt/mcgt-7.1.1a.a68
! a9d3313bf2907c5d12b071341b71171d  gcc/testsuite/algol68/execute/mcgt/mcgt-7.1.1b.a68
! 8efe07c7c35bc576a122c41444887f8d  gcc/testsuite/algol68/execute/mcgt/mcgt-7.1.3a.a68
! b15ddbda6c85613ceac7b6d3c0724ecc  gcc/testsuite/algol68/execute/mcgt/mcgt-7.3.2a.a68
! 31a8aec4bab5c10037213cf790ec0732  gcc/testsuite/algol68/execute/mcgt/mcgt-7.3.6a.a68
! 8658c9f9ba45b4d93706f3ef265a144e  gcc/testsuite/algol68/execute/mcgt/mcgt-7.3.6b.a68
! 7cd11f86e49f240873cae649afb71384  gcc/testsuite/algol68/execute/mcgt/mcgt-7.5.3a.a68
! 7ab634543142594c41cefb18b4abc1b8  gcc/testsuite/algol68/execute/minus-int-1.a68
! 2c2fb6e93c199d047f66bf5c8a62cf2d  gcc/testsuite/algol68/execute/minusab-1.a68
! 9d90c696d1ce7ce8c9047092be5d19de  gcc/testsuite/algol68/execute/minusab-2.a68
! 0d65e4a4058909e7069363c8842d91c0  gcc/testsuite/algol68/execute/minusab-3.a68
! f2beb07edffabebdccad8faf2bc3b584  gcc/testsuite/algol68/execute/minusab-4.a68
! 0f69fc176effeb23fab6ba5408e91dde  gcc/testsuite/algol68/execute/mod-int-1.a68
! ed509318512a89382e1649c84de44521  gcc/testsuite/algol68/execute/modab-1.a68
! 2c85457bdee9291c8a0c753cefa40d62  gcc/testsuite/algol68/execute/modab-2.a68
! 8003cac24f1aa6e0dc244b3788038cb6  gcc/testsuite/algol68/execute/mode-indication-1.a68
! a27647a12fb2a7345ed0faf1c93c6534  gcc/testsuite/algol68/execute/modules/Modules20.map
! bcfdb63511805c2e3f5b07f72f0171f0  gcc/testsuite/algol68/execute/modules/README
! 6fa2fb9c9d66c83a1af9996452818dbc  gcc/testsuite/algol68/execute/modules/execute.exp
! 6886f82d84222ca0459b86fbdec52673  gcc/testsuite/algol68/execute/modules/module-bar.a68
! abe7f005a9e088b8203de09a769768e0  gcc/testsuite/algol68/execute/modules/module-foo.a68
! 39fcf22b33adb94c6b5bd5617b63e86d  gcc/testsuite/algol68/execute/modules/module1.a68
! 855a8f2560fc05a0a81d49c7cb67ff67  gcc/testsuite/algol68/execute/modules/module10.a68
! fccef707a976cbc27c1dcdeb9bcceef6  gcc/testsuite/algol68/execute/modules/module11.a68
! d96afe1f473d2f45009f219219c15469  gcc/testsuite/algol68/execute/modules/module12.a68
! 9fd12220c9065df94120aef748cbda95  gcc/testsuite/algol68/execute/modules/module13.a68
! a587cd3c9bf8eaf397493ee12823942c  gcc/testsuite/algol68/execute/modules/module14.a68
! 5e1d5cd221a76f2996c59afa5bf75942  gcc/testsuite/algol68/execute/modules/module15.a68
! 185ca85ea1658a7f82885b2d9e7fd0b4  gcc/testsuite/algol68/execute/modules/module16.a68
! b0b897e3e3bb00a8979f2a76f9e2cb19  gcc/testsuite/algol68/execute/modules/module17.a68
! a96b06f15ed6e8be8f7f3e8f622713ba  gcc/testsuite/algol68/execute/modules/module18a.a68
! ffc21c034deb401f9dde4945b19fe7da  gcc/testsuite/algol68/execute/modules/module18b.a68
! d46149f67ae5b31f1f1797f71fefc9eb  gcc/testsuite/algol68/execute/modules/module18c.a68
! c89a2f16763f59111e9aa0dbb0bec22d  gcc/testsuite/algol68/execute/modules/module22bar.a68
! c2a62320ffa3899b770e9019897e0751  gcc/testsuite/algol68/execute/modules/module22foo.a68
! 69cd86a9e09e75f04433680a7d71edcd  gcc/testsuite/algol68/execute/modules/module23bar.a68
! ac3aed0ffb0459584e0d54861ead9da9  gcc/testsuite/algol68/execute/modules/module23foo.a68
! 1d06ebf7fbc01a467cfa1d3b4554cdd4  gcc/testsuite/algol68/execute/modules/module24.a68
! fb5d787363242153b6d326012dd39d7f  gcc/testsuite/algol68/execute/modules/module25a.a68
! f6c69601589675dd714d44f63d98560f  gcc/testsuite/algol68/execute/modules/module25b.a68
! 9e0733a763fc93bd2c58a8ffca51301f  gcc/testsuite/algol68/execute/modules/module3.a68
! 1225a4492a80b08cd38a8c74e25a7ab0  gcc/testsuite/algol68/execute/modules/module4.a68
! 4ceb6b4c31b8b4abc32b8c6a92979888  gcc/testsuite/algol68/execute/modules/module5.a68
! 396541529d8cfd984e6ebc38bde51a9b  gcc/testsuite/algol68/execute/modules/module6.a68
! 419064d7a3423695654fcef0388d610c  gcc/testsuite/algol68/execute/modules/module7.a68
! 6a5966491bddff109c2ed0e823615189  gcc/testsuite/algol68/execute/modules/module8.a68
! 882e0ef3985404b3636462c72835353e  gcc/testsuite/algol68/execute/modules/module9.a68
! fa32385209c69f16d1ffeb239cadc468  gcc/testsuite/algol68/execute/modules/program-1.a68
! 5618708adeaf82bdc3bbe7bf1b1df2e9  gcc/testsuite/algol68/execute/modules/program-10.a68
! f426864755e710beb231da3ea058d671  gcc/testsuite/algol68/execute/modules/program-11.a68
! 329d4057fbba0540485078cb4f62aec9  gcc/testsuite/algol68/execute/modules/program-12.a68
! a99af1096f319575a7f72a39e2cf179e  gcc/testsuite/algol68/execute/modules/program-15.a68
! 8d0c43b9fdccd78d75beefb6013496b2  gcc/testsuite/algol68/execute/modules/program-16.a68
! 54a19c7d8623132b8094c6c4aa2692e4  gcc/testsuite/algol68/execute/modules/program-17.a68
! 28a489f689f33de5f8cde6b67d6ad581  gcc/testsuite/algol68/execute/modules/program-18.a68
! aeabee135ed523b7f2a8f8d1f77b06eb  gcc/testsuite/algol68/execute/modules/program-19.a68
! 57f36f8064ebb76768548805faaf91d5  gcc/testsuite/algol68/execute/modules/program-2.a68
! 924948ff93175f2dd41713aed063e240  gcc/testsuite/algol68/execute/modules/program-20.a68
! bd25a4aeb21a959d38e6a1ccc89a65ab  gcc/testsuite/algol68/execute/modules/program-21.a68
! a4cbfef7dd02cb406d5a8801cf55df5c  gcc/testsuite/algol68/execute/modules/program-22.a68
! 43d51a35de25739abd7cf9304c134f34  gcc/testsuite/algol68/execute/modules/program-23.a68
! 299c649a8c487402e3ec8d3ada8bdf8a  gcc/testsuite/algol68/execute/modules/program-24.a68
! c46ca2f86ebc5b629411801c164017bc  gcc/testsuite/algol68/execute/modules/program-25.a68
! b8f47f3c2df580248368a5c298a1b812  gcc/testsuite/algol68/execute/modules/program-3.a68
! 7d433464d7d562ce9bd71eea28f40c03  gcc/testsuite/algol68/execute/modules/program-4.a68
! a00ad027485af688f31ddcf5b822ad9e  gcc/testsuite/algol68/execute/modules/program-5.a68
! 4d122e5a57e1d21a9b17f9f8f8dbf2ca  gcc/testsuite/algol68/execute/modules/program-6.a68
! ca3ee436ba2d2f6b312280612d6b4faa  gcc/testsuite/algol68/execute/modules/program-7.a68
! d4492021f16108b406a1eccac228712e  gcc/testsuite/algol68/execute/modules/program-8.a68
! 8aed3cfb8427244c7140d36ba70099bc  gcc/testsuite/algol68/execute/mult-char-1.a68
! 9938e4a6def695b9ebb313bea35be215  gcc/testsuite/algol68/execute/mult-int-1.a68
! 4d73a319b4140ae9fc8d03ad20730bdf  gcc/testsuite/algol68/execute/mult-string-1.a68
! 903ec23ebdca13a63262a1b81a2f453f  gcc/testsuite/algol68/execute/mult-string-2.a68
! b26d372bbc1cc6c13aa380008358d736  gcc/testsuite/algol68/execute/mult-string-3.a68
! 8749c1ed6e0c6d460d693f6e78caa073  gcc/testsuite/algol68/execute/mult-string-4.a68
! 56ff07d3d2975e5caa5b8b840dd48e79  gcc/testsuite/algol68/execute/multab-1.a68
! d19358708e815a3e017ab3bc2287b391  gcc/testsuite/algol68/execute/multab-2.a68
! bc461cd4d388de2ee2af40452e69fb48  gcc/testsuite/algol68/execute/multab-3.a68
! e070795f8b04b8e2f8ff5fbadaff271d  gcc/testsuite/algol68/execute/mutual-recursion-1.a68
! 8cfa2378b12fb425ff60ce9481cc0db2  gcc/testsuite/algol68/execute/ne-bits-1.a68
! 2de3b83bb02f7f77aff96364c2d4e6a5  gcc/testsuite/algol68/execute/ne-char-char-1.a68
! b9b109a4fdcef3416497eb4b8600f834  gcc/testsuite/algol68/execute/ne-int-1.a68
! eea358375ad488f7da2c71f3aecbc9be  gcc/testsuite/algol68/execute/ne-string-1.a68
! 683b43888c99c8a0d7fb6f11e6b0880e  gcc/testsuite/algol68/execute/neg-int-1.a68
! 8e433ff3c3a2fbce5ff7da78ba59db2e  gcc/testsuite/algol68/execute/not-bits-1.a68
! e07dd61262594f1cf85e3325a21f82b6  gcc/testsuite/algol68/execute/odd-1.a68
! dfb40888726dc623d5e23e1d7fba6ce5  gcc/testsuite/algol68/execute/op-1.a68
! 1865f49f5fec3fdc3fe3e7f52521490d  gcc/testsuite/algol68/execute/op-2.a68
! 85fd59bc5bdaea8b520dca36ba74d35c  gcc/testsuite/algol68/execute/op-3.a68
! 4d92776345f782ed902347f5a0aeb5ea  gcc/testsuite/algol68/execute/operator-declaration-1.a68
! 76c17a0183f7c9c062bef63353e9b0ae  gcc/testsuite/algol68/execute/or-bits-1.a68
! 184b41afd6dcfc90a3d71fef9f555807  gcc/testsuite/algol68/execute/orf-1.a68
! 20bffc0d0430394287bd0a3a8b0ab183  gcc/testsuite/algol68/execute/over-int-1.a68
! f4a9dc5f87811e0e5c798398e1bec653  gcc/testsuite/algol68/execute/overab-1.a68
! 96ecc74097267291ad69de557754aec1  gcc/testsuite/algol68/execute/overab-2.a68
! 3b58903153c953ca39c65429a29ebf19  gcc/testsuite/algol68/execute/pack-soids-in-moid-1.a68
! e8aebcbf2074af69abdba07035204b4b  gcc/testsuite/algol68/execute/particular-program-1.a68
! 5a5a051d79f47958daf8ad1a0e80afe3  gcc/testsuite/algol68/execute/plus-char-1.a68
! 70228744433db1f554f586515a4be365  gcc/testsuite/algol68/execute/plus-int-1.a68
! eeaf8048970e1ee2404104ba444cffe6  gcc/testsuite/algol68/execute/plus-string-1.a68
! 4082ce2d3889638c23bc1008752bd5e3  gcc/testsuite/algol68/execute/plus-string-2.a68
! 62a56a20caf639ffc2b841059f1aefcb  gcc/testsuite/algol68/execute/plus-string-stride-1.a68
! a47ccd5d74b0680aa7243bc5239504bc  gcc/testsuite/algol68/execute/plusab-1.a68
! b256a7a16e396c5632bb71fb0d0607b7  gcc/testsuite/algol68/execute/plusab-2.a68
! 436472862774b95b59e0a357fb7785c9  gcc/testsuite/algol68/execute/plusab-3.a68
! 4e6bb133f6e476036d3a8e433f865f7c  gcc/testsuite/algol68/execute/plusab-4.a68
! a04b27dcec032d1904ce07c2a1f9f79e  gcc/testsuite/algol68/execute/plusab-string-1.a68
! 11586354c8393655de98d70fb84935ac  gcc/testsuite/algol68/execute/plusto-char-1.a68
! 08991c15c1f2c13bf5e4a77e60f96788  gcc/testsuite/algol68/execute/plusto-string-1.a68
! f3c3dd1d86691100738468245d0f1676  gcc/testsuite/algol68/execute/posix-argc-argv-1.a68
! 0a313900329f68be8a0ad86b7c89bbe6  gcc/testsuite/algol68/execute/posix-exit-1.a68
! a92a2a2045d73a43fefd41d66bc73a67  gcc/testsuite/algol68/execute/posix-fopen-1.a68
! b92cae892238f7133c268c6a554aee07  gcc/testsuite/algol68/execute/posix-fputc-fputs-1.a68
! 54d65f2246b470e931388c107b0ffa69  gcc/testsuite/algol68/execute/posix-getenv-1.a68
! 322fdb0d0c60bca3301d7b5c7c8844c3  gcc/testsuite/algol68/execute/posix-lseek.a68
! f7d448f4e3ebaacd99f950c9cf7f97d5  gcc/testsuite/algol68/execute/posix-perror-1.a68
! 27646e420c6a5995382b178945bff0eb  gcc/testsuite/algol68/execute/posix-putchar-1.a68
! 9209b14084bc5d6492cbb13ba78013ca  gcc/testsuite/algol68/execute/posix-stdinouterr-1.a68
! c7246874a77abbb3a97cf9097645afd6  gcc/testsuite/algol68/execute/posix-strerror-1.a68
! f586445784f51d44c1177d8b4e0646aa  gcc/testsuite/algol68/execute/posix-stride-1.a68
! 87d4bc9531459a7bbd123ce018a50096  gcc/testsuite/algol68/execute/pow-int-1.a68
! 553a8f06543a205e49fc44d50bdaf72d  gcc/testsuite/algol68/execute/pow-real-1.a68
! 9af388cb88078b2860ff1899f7d57255  gcc/testsuite/algol68/execute/proc-1.a68
! 7310633af0732fcb4a0ceafba216111b  gcc/testsuite/algol68/execute/proc-10.a68
! f946676ba330436b799799f8c749d29f  gcc/testsuite/algol68/execute/proc-12.a68
! 2787aa04c2f36cb264043da95fb2724d  gcc/testsuite/algol68/execute/proc-13.a68
! 44f4b4eed58cc6ee3d74ddf03973b18c  gcc/testsuite/algol68/execute/proc-14.a68
! f65549e13cfcb8b1797d340ef2c22401  gcc/testsuite/algol68/execute/proc-15.a68
! d2df3460cf7f10cbea909b4276f74b49  gcc/testsuite/algol68/execute/proc-16.a68
! b2ae190bf71cf5ac783eaa967984f8b0  gcc/testsuite/algol68/execute/proc-17.a68
! 9ed3e8b13a48fc30146fdea274553c5b  gcc/testsuite/algol68/execute/proc-18.a68
! cdec269bf3e52c4cf2d144b4c70390d4  gcc/testsuite/algol68/execute/proc-19.a68
! 89ed8a3c2ffa112697dce30629cb48f3  gcc/testsuite/algol68/execute/proc-2.a68
! 53ab0b4276a3c3e2d12ef91d104a975a  gcc/testsuite/algol68/execute/proc-20.a68
! 5fc68c89574fc680267fc81c4218f98b  gcc/testsuite/algol68/execute/proc-21.a68
! f2f36f7fbd9e7710cddfdd8ab918377b  gcc/testsuite/algol68/execute/proc-22.a68
! 5b8d52ebd3cc3dbbe657f9da7e3dc370  gcc/testsuite/algol68/execute/proc-23.a68
! a29c20c8af13a79a268e02968979f7fb  gcc/testsuite/algol68/execute/proc-25.a68
! 34eccc85bf5ffe3e0664a91634cb8062  gcc/testsuite/algol68/execute/proc-26.a68
! b16bb536b846cf564113908b6ae45e32  gcc/testsuite/algol68/execute/proc-27.a68
! 42115e78ab34ac0b81730c39c9a401f0  gcc/testsuite/algol68/execute/proc-28.a68
! 4e957a4005929558f1e1157d1365150d  gcc/testsuite/algol68/execute/proc-29.a68
! 75d19bab75c7e439e384325ca4611b50  gcc/testsuite/algol68/execute/proc-3.a68
! dc97ac8b443474044ed62030bad43b71  gcc/testsuite/algol68/execute/proc-4.a68
! a029ba4b81ce0a9abe1bd80314651576  gcc/testsuite/algol68/execute/proc-5.a68
! 1577b35b03d4af9902dd522fc34e4890  gcc/testsuite/algol68/execute/proc-6.a68
! 1069391dfaadacecc86b06073b2b1d83  gcc/testsuite/algol68/execute/proc-7.a68
! 8488df72f908a836ec41fa987c256113  gcc/testsuite/algol68/execute/proc-8.a68
! f2078844c20214ddfa2ee93506dd229a  gcc/testsuite/algol68/execute/procedured-goto-1.a68
! 48524f093e7c795618f533e751f44ecd  gcc/testsuite/algol68/execute/quine.a68
! 68844e0eb52ac94feaf86ee95d3df2ee  gcc/testsuite/algol68/execute/random-1.a68
! e276df44ea267b10a3ba2985ad83b882  gcc/testsuite/algol68/execute/re-im-1.a68
! d9402a9e95cc760d9f75bae22618e96d  gcc/testsuite/algol68/execute/rela-string-1.a68
! a627f99aac7c0146e845c797e8ad2af7  gcc/testsuite/algol68/execute/repr-1.a68
! 162f3c31f81d8eab79c6c918ccadbd3e  gcc/testsuite/algol68/execute/round-1.a68
! 02771ccb54214b45c55f838da3deb1a9  gcc/testsuite/algol68/execute/row-display-1.a68
! ca915363399a87dd726d0863a16cfb06  gcc/testsuite/algol68/execute/row-display-2.a68
! 4f4be00a0cbddf59b10c0a5f2b640ca4  gcc/testsuite/algol68/execute/row-display-3.a68
! eb8420f17bd0be078e462d28643bce90  gcc/testsuite/algol68/execute/row-display-4.a68
! 1eeef9ba5c8cc2ea1e92ad08d9b19d2b  gcc/testsuite/algol68/execute/row-display-5.a68
! ce8aaca75036b50f3aff011bba74d5c7  gcc/testsuite/algol68/execute/rowing-1.a68
! 36c718a1c8957ac4ca2b1a410e6b16dc  gcc/testsuite/algol68/execute/rowing-10.a68
! 3e2584e4de7a5b1c954828bc5b45b133  gcc/testsuite/algol68/execute/rowing-11.a68
! 3c18c47c3ffa3f9ca2a2fff7ea4a9008  gcc/testsuite/algol68/execute/rowing-12.a68
! 4a2406df5c24cbbc5057bee0664f9e43  gcc/testsuite/algol68/execute/rowing-13.a68
! f77aa4368e40d0be4f68f42821be3eda  gcc/testsuite/algol68/execute/rowing-2.a68
! 5965e1911bbe903191f55296e70b9fb1  gcc/testsuite/algol68/execute/rowing-3.a68
! 0eb585ec6e68cf25119cf06bc40c082b  gcc/testsuite/algol68/execute/rowing-4.a68
! 7d4841f045da3ff4a8c1ee6ce1e3315a  gcc/testsuite/algol68/execute/rowing-5.a68
! 699480c98f3ea52b274be580b30a8b82  gcc/testsuite/algol68/execute/rowing-6.a68
! 8a5337e37418a0293d5852e85baabe7d  gcc/testsuite/algol68/execute/rowing-7.a68
! 44689ae54d47704c6451618a25b4b054  gcc/testsuite/algol68/execute/rowing-8.a68
! 6a97c2b890e66565e939e75e2bbd3d9c  gcc/testsuite/algol68/execute/rowing-9.a68
! ef0c43d9925e3d45a1ce4b92f0e8b7eb  gcc/testsuite/algol68/execute/selection-1.a68
! a7cb9d646eedd4821c9825ed229322e2  gcc/testsuite/algol68/execute/selection-2.a68
! 1bab50f2006d388bfe33b0ae02349d9a  gcc/testsuite/algol68/execute/selection-3.a68
! 9c44307d6931b51d31acbdc1baadf4c8  gcc/testsuite/algol68/execute/selection-4.a68
! c72c157c4aa88c1f362190a690f340c5  gcc/testsuite/algol68/execute/selection-5.a68
! 4c5cb81a99a670841ff0d866444ca8aa  gcc/testsuite/algol68/execute/selection-multiple-1.a68
! cc7fadb253e3464a68897b1a7abb5e00  gcc/testsuite/algol68/execute/selection-multiple-2.a68
! 190a715dac40d0dfc36d5e5fe9a92299  gcc/testsuite/algol68/execute/serial-clause-1.a68
! 44d89899e67ce4d8a941f97e564c9ee7  gcc/testsuite/algol68/execute/serial-clause-10.a68
! 099f49956d3c3f6a6c075dca44232199  gcc/testsuite/algol68/execute/serial-clause-2.a68
! a8c5d00498e8924e2a9d4bb4230b2786  gcc/testsuite/algol68/execute/serial-clause-3.a68
! a1ec328cf236254564a0d772ac753049  gcc/testsuite/algol68/execute/serial-clause-4.a68
! 67af263fd6bfdcf19604439bd1fd426b  gcc/testsuite/algol68/execute/serial-clause-5.a68
! 6f26958d123f22c4495025fa77f49f19  gcc/testsuite/algol68/execute/serial-clause-6.a68
! b4bd87f4b727bfe835cfaf5034b6d80c  gcc/testsuite/algol68/execute/serial-clause-7.a68
! 270b4ba499be067c6d42fbc5b1056d2c  gcc/testsuite/algol68/execute/serial-clause-8.a68
! 3d9dc55915f08fba48850bdeb60593e0  gcc/testsuite/algol68/execute/serial-clause-9.a68
! 8afbae289d1630d3b819ba3ad688d66a  gcc/testsuite/algol68/execute/serial-dsa-1.a68
! 0eae0975cda8297d3652ce9378982446  gcc/testsuite/algol68/execute/serial-dsa-2.a68
! ae3f4bf4ee25164b71dc94a7172cafcc  gcc/testsuite/algol68/execute/serial-dsa-3.a68
! 7dd5ad62d3a19d1d408ce43cc831bc4c  gcc/testsuite/algol68/execute/serial-dsa-4.a68
! 27dc43ead96a9ec855bc98d26fcab92b  gcc/testsuite/algol68/execute/serial-dsa-5.a68
! 2519a9203fb96f60b7982f762b7c4656  gcc/testsuite/algol68/execute/serial-dsa-6.a68
! 3543b0b2a02ee32fac8ef667ed25e8c1  gcc/testsuite/algol68/execute/sign-int-1.a68
! b8e8ba2539bd184e627b90e1a9d7f802  gcc/testsuite/algol68/execute/sign-int-2.a68
! 21394bcfa28b81dd7c3700cd08599d4f  gcc/testsuite/algol68/execute/sign-real-1.a68
! 1464306fc0b34e767186ebb9abdc6132  gcc/testsuite/algol68/execute/sign-real-2.a68
! a78674b92345fc7b380d9ac4502aca58  gcc/testsuite/algol68/execute/sin-1.a68
! fdf98ea6cb169d414d5b4261e0ab8051  gcc/testsuite/algol68/execute/skip-1.a68
! 2152caeb6cb51f4cb6cfd71299075f57  gcc/testsuite/algol68/execute/skip-2.a68
! 2365d6dab7845e53fe6bb6a894547400  gcc/testsuite/algol68/execute/skip-struct-1.a68
! 546ae1d1db101016ae70e32f3275fb58  gcc/testsuite/algol68/execute/slice-indexing-1.a68
! 34e414b2313363e079d5a563d76cf7c2  gcc/testsuite/algol68/execute/slice-indexing-2.a68
! c59f106878b1ab10a339beb37e2d4f53  gcc/testsuite/algol68/execute/slice-indexing-3.a68
! 46ada769e4d7d2fd22bfbe9662b0d520  gcc/testsuite/algol68/execute/slice-indexing-4.a68
! 65bc8b86299c00aaa28cbb68571c1bea  gcc/testsuite/algol68/execute/slice-indexing-5.a68
! 8b4107dfba8fb597d15f192d7a4b2c24  gcc/testsuite/algol68/execute/slice-indexing-6.a68
! 8b40ce3ecff7ddd6a7fc9667613d8354  gcc/testsuite/algol68/execute/slice-indexing-7.a68
! b498a7242431212c179a30214cf9f5e4  gcc/testsuite/algol68/execute/sqrt-1.a68
! 40c420358f5348cab77b3df4a6cf8f12  gcc/testsuite/algol68/execute/string-1.a68
! 38216cd59c0a6c5bc1ea09671ebf5a3e  gcc/testsuite/algol68/execute/string-2.a68
! 5949c06dc173fae0c05e2c3b439835b6  gcc/testsuite/algol68/execute/string-4.a68
! c0d821b482141ea20ef88c7b3eda334f  gcc/testsuite/algol68/execute/string-break-1.a68
! f48c93861fa1a90d6b618de58c3b49e1  gcc/testsuite/algol68/execute/struct-self-1.a68
! deb1775698b34da68a589fe541ca8e6f  gcc/testsuite/algol68/execute/struct-self-2.a68
! 693e579955ba95625c289b4c1e7fcfaa  gcc/testsuite/algol68/execute/struct-self-3.a68
! ffa18aa502305293db87ce13d77d24b5  gcc/testsuite/algol68/execute/structure-display-1.a68
! 4c57ff3744a8079bb5d2100cdad09d59  gcc/testsuite/algol68/execute/structure-display-2.a68
! d8aa1af3f2ca771711ebfd8ad5529397  gcc/testsuite/algol68/execute/structure-display-3.a68
! 6466ad3657c1ef6ba70539037495c183  gcc/testsuite/algol68/execute/structure-display-4.a68
! d55be8f7a60bab8f59f387f1a7ced1c3  gcc/testsuite/algol68/execute/structure-display-5.a68
! 50e812e8b3d54ad66e3b3690fea759b4  gcc/testsuite/algol68/execute/tan-1.a68
! bad4d7b48788bbdb96000270350cb4d1  gcc/testsuite/algol68/execute/timesab-string-1.a68
! 030c71823d0bc6efa35c308103a00bca  gcc/testsuite/algol68/execute/trimmer-1.a68
! 7a78a6c79e5bc72d82aefe221eeb4218  gcc/testsuite/algol68/execute/trimmer-10.a68
! b1d41346b1cedd3d048f43e59583c107  gcc/testsuite/algol68/execute/trimmer-11.a68
! 345b78fdc7e3d0f4bba21ff67f613252  gcc/testsuite/algol68/execute/trimmer-12.a68
! 680eaaaa29a8e2a136863c693e8e13a9  gcc/testsuite/algol68/execute/trimmer-13.a68
! d08e2268faad812e1ae053278b0b0140  gcc/testsuite/algol68/execute/trimmer-2.a68
! e560eea6797e545fd6dcf2533df0b54a  gcc/testsuite/algol68/execute/trimmer-3.a68
! 04850b4d4594f6d880127e706128a135  gcc/testsuite/algol68/execute/trimmer-4.a68
! d3aceeb9d91937804fc279d1b50a1c63  gcc/testsuite/algol68/execute/trimmer-5.a68
! a0eb2ebb536b244cbce8a0f23352b912  gcc/testsuite/algol68/execute/trimmer-6.a68
! e69827c793d0780d8994104b59423db2  gcc/testsuite/algol68/execute/trimmer-7.a68
! 7cd5b74b58057e10477525bdead5161b  gcc/testsuite/algol68/execute/trimmer-8.a68
! fd39f5e2f642881565185b774b6a37ba  gcc/testsuite/algol68/execute/trimmer-9.a68
! 576407211153e62d19ccdbaa65c639b8  gcc/testsuite/algol68/execute/trimmer-matrix-1.a68
! b8d91a9452482b3150e62a26debe8ff7  gcc/testsuite/algol68/execute/trimmer-matrix-2.a68
! ab8a10ce531b44077eb8a41dccd0441c  gcc/testsuite/algol68/execute/trimmer-matrix-3.a68
! c3e88d9d8f12443b03792e4988833dd4  gcc/testsuite/algol68/execute/trimmer-matrix-4.a68
! b9124c8b7151802d7a8a4f9ba550d48f  gcc/testsuite/algol68/execute/trimmer-matrix-5.a68
! e5fb036046fa7144d6a9499fbe47616f  gcc/testsuite/algol68/execute/trimmer-matrix-6.a68
! 4c2b8fedea7563d54900ed6f006cc8a8  gcc/testsuite/algol68/execute/trimmer-name-1.a68
! 31b2e6b72952a551a8ae5632e60778f5  gcc/testsuite/algol68/execute/undefined-1.a68
! 86e19a74b8fe5f1d706577d6c1bf6db3  gcc/testsuite/algol68/execute/undefined-2.a68
! b7bf0513efe27b0c7a564528b430aed3  gcc/testsuite/algol68/execute/undefined-3.a68
! 237de3b2f958f4f3510f4dd0813197e4  gcc/testsuite/algol68/execute/undefined-4.a68
! d4a6aa657a1246cac4121e93450c710d  gcc/testsuite/algol68/execute/undefined-5.a68
! 7ddaff86a3fb0aaf77d3f8a3d15844d8  gcc/testsuite/algol68/execute/uniting-1.a68
! 9de1d68f95818521fa03a41a65a24d49  gcc/testsuite/algol68/execute/uniting-2.a68
! d0d0df85233b4a3bca697c210bbc19d0  gcc/testsuite/algol68/execute/uniting-3.a68
! 77134ab56ccea6946485835864412772  gcc/testsuite/algol68/execute/uniting-4.a68
! 6e24617921674e74714055051d30c052  gcc/testsuite/algol68/execute/up-down-bits-1.a68
! 5413310c7c71990c58beca590d27ab1d  gcc/testsuite/algol68/execute/upb-1.a68
! d07073ec5aca4fdbf9fd57ac9c81da47  gcc/testsuite/algol68/execute/vacuum-1.a68
! 3906e7fecd03739f94617fce39c3a07a  gcc/testsuite/algol68/execute/variable-declaration-1.a68
! 3ddb447eed09e5d5dd2f214e38a78005  gcc/testsuite/algol68/execute/variable-declaration-2.a68
! 94daed7cd32c18971acd0512e9a7aeae  gcc/testsuite/algol68/execute/variable-declaration-3.a68
! f3bef68cf0db23e6d233a02f6ef120fa  gcc/testsuite/algol68/execute/variable-declaration-4.a68
! f82ad265b89545f869f3ad2bb6be2c30  gcc/testsuite/algol68/execute/variable-declaration-5.a68
! 83c4f782676d87a816689c3d8dad7610  gcc/testsuite/algol68/execute/variable-declaration-6.a68
! e531ba37f483418475fba41b491be267  gcc/testsuite/algol68/execute/variable-declaration-heap-1.a68
! ae7239d4da25f9f6f2cc97f8eb176154  gcc/testsuite/algol68/execute/variable-declaration-heap-2.a68
! c4cafe66a104e50057e503e303ba7780  gcc/testsuite/algol68/execute/variable-declaration-multiple-1.a68
! 1c75674146dd5ef27d9b3ff0558adbd5  gcc/testsuite/algol68/execute/variable-declaration-multiple-2.a68
! d62b210f4cc8386aed78349d325526ab  gcc/testsuite/algol68/execute/variable-declaration-multiple-3.a68
! 6a821fc796b0929915dc92cd134bdbb5  gcc/testsuite/algol68/execute/variable-declaration-multiple-4.a68
! 84a2c8d3f11351ad3008720237fd0345  gcc/testsuite/algol68/execute/variable-declaration-multiple-5.a68
! b1f5e372e0743417ff7cb9b63083ed50  gcc/testsuite/algol68/execute/variable-declaration-multiple-6.a68
! eb77e2c3a5426f1b0dceb8c7b1f354ea  gcc/testsuite/algol68/execute/variable-declaration-multiple-7.a68
! 1c8b9bc3f7e4e32527d87e4c50708e8c  gcc/testsuite/algol68/execute/variable-declaration-multiple-8.a68
! 3cd44726713d6772054d9df9740009af  gcc/testsuite/algol68/execute/variable-declaration-multiple-9.a68
! 7ade51030b51df90b60abe9edeca8c2b  gcc/testsuite/algol68/execute/voiding-1.a68
! 9ac6c94a172d0e88be19a229d30feed6  gcc/testsuite/algol68/execute/widening-1.a68
! 8d5cd1937802bb03f91eb7dbf40f9313  gcc/testsuite/algol68/execute/widening-2.a68
! 95767076e86ba026e31f486a3d141bbb  gcc/testsuite/algol68/execute/widening-bits-1.a68
! a20a0fe426df4d1d222e036d85429558  gcc/testsuite/algol68/execute/widening-bits-2.a68
! 87ab91b9bbb8db059569ef7238802086  gcc/testsuite/algol68/execute/widening-bits-3.a68
! 8fed9ab93d09e9eaf4db35b65e73f681  gcc/testsuite/algol68/execute/xor-bits-1.a68
  25005a9265a333af56789fab16cd8e0e  gcc/testsuite/c-c++-common/Waddress-1.c
  81e4d27a297a7ce6fddf1ac2a8961317  gcc/testsuite/c-c++-common/Waddress-2.c
  ae85096226db49d6155303ac5a238c4f  gcc/testsuite/c-c++-common/Waddress-3.c
*************** af1ddc910423deb7037d0df021bc094d  gcc/te
*** 11387,11393 ****
  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/testsuite/c-c++-common/Wstringop-overflow.c
  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
--- 18074,18080 ----
  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
! a4bb0072a16e07057370a1d977ac3b44  gcc/testsuite/c-c++-common/Wstringop-overflow.c
  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
*************** d92682d7170159e697a1e85d7da6c88a  gcc/te
*** 11413,11418 ****
--- 18100,18111 ----
  58c71bfa32dceabcc982bf01c2613efd  gcc/testsuite/c-c++-common/Wtautological-compare-ranges.c
  faf99b6b0a20a061a95d9af7dbeea418  gcc/testsuite/c-c++-common/Wunused-function-1.c
  f79bc4a80b6890a56ed93a450311aa3f  gcc/testsuite/c-c++-common/Wunused-local-typedefs.c
+ ab9ee0ad0ed342e0cb5d758f89cfaab3  gcc/testsuite/c-c++-common/Wunused-parm-1.c
+ 76471ed7ee74f1b000f42c1989d0d813  gcc/testsuite/c-c++-common/Wunused-parm-2.c
+ c3ee807981d1bdb0a8c686faced30d6f  gcc/testsuite/c-c++-common/Wunused-parm-3.c
+ 1fa47d6533e736fdbe9bb371b7fdc0f3  gcc/testsuite/c-c++-common/Wunused-parm-4.c
+ f496e8f09d9c03f4761c228ce8db3429  gcc/testsuite/c-c++-common/Wunused-parm-5.c
+ dc5b316ea5857f7357a5b40a0b903107  gcc/testsuite/c-c++-common/Wunused-parm-6.c
  5ae90ca6d3757f39b6bf72f9c7b03800  gcc/testsuite/c-c++-common/Wunused-value-1.c
  7f0011fe4d80291b412d4a643ab94cc8  gcc/testsuite/c-c++-common/Wunused-var-1.c
  0880bcc58a4ae32455c59a0c3e1950b4  gcc/testsuite/c-c++-common/Wunused-var-10.c
*************** f79bc4a80b6890a56ed93a450311aa3f  gcc/te
*** 11424,11435 ****
  9c1e8e695b2a8304922b1e0f0874f4cd  gcc/testsuite/c-c++-common/Wunused-var-16.c
  f7cf252f8fb24838c4491a1b681216d3  gcc/testsuite/c-c++-common/Wunused-var-17.c
  64cb9f09ee8144d6c20610746cdb14c4  gcc/testsuite/c-c++-common/Wunused-var-18.c
  5f69d6398e9b0fc829351a16f994916d  gcc/testsuite/c-c++-common/Wunused-var-2.c
  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
--- 18117,18134 ----
  9c1e8e695b2a8304922b1e0f0874f4cd  gcc/testsuite/c-c++-common/Wunused-var-16.c
  f7cf252f8fb24838c4491a1b681216d3  gcc/testsuite/c-c++-common/Wunused-var-17.c
  64cb9f09ee8144d6c20610746cdb14c4  gcc/testsuite/c-c++-common/Wunused-var-18.c
+ b372c8cb3e59dd7221b2c3efa6d58cc7  gcc/testsuite/c-c++-common/Wunused-var-19.c
  5f69d6398e9b0fc829351a16f994916d  gcc/testsuite/c-c++-common/Wunused-var-2.c
+ e406eeb003ed75500f717ac3d6d6427c  gcc/testsuite/c-c++-common/Wunused-var-20.c
+ c2e2b6cb6e88988daf3cdb6603e71392  gcc/testsuite/c-c++-common/Wunused-var-21.c
+ 10252b30516090a948416497fe8fbf99  gcc/testsuite/c-c++-common/Wunused-var-22.c
+ 019e3d2a7c2ad5686bdd091232caee89  gcc/testsuite/c-c++-common/Wunused-var-23.c
+ a647f153779eb1c1024af32311c86f52  gcc/testsuite/c-c++-common/Wunused-var-24.c
  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
! 5bf482af941435b264cc0e6f717ab0eb  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
*************** c1d4aac82aafc22d1b2884cf0190af84  gcc/te
*** 11440,11446 ****
  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
--- 18139,18145 ----
  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
! 23b01a4bdaf1476ffba58f0f0b8415de  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
*************** d0f7bb2477c7399d9c787d2e1891f0a6  gcc/te
*** 11455,11467 ****
  ca39a9bcc32da0de969872e39eec2dcb  gcc/testsuite/c-c++-common/analyzer/aliasing-1.c
  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
--- 18154,18168 ----
  ca39a9bcc32da0de969872e39eec2dcb  gcc/testsuite/c-c++-common/analyzer/aliasing-1.c
  21ccef1b042617794f28392a02c47c2e  gcc/testsuite/c-c++-common/analyzer/aliasing-2.c
  9083091e04f47ca9db656daa48ead504  gcc/testsuite/c-c++-common/analyzer/aliasing-3.c
+ 0390cc62563a542c5ef5973eded16e34  gcc/testsuite/c-c++-common/analyzer/aliasing-4.c
+ 4e89495ae1e67655fed21fc88491d5f5  gcc/testsuite/c-c++-common/analyzer/aliasing-5.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
! aaa6cbff71474123fbc7b9f839f77079  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
*************** ff142bf88e41f77d891ef01f35da87a1  gcc/te
*** 11470,11478 ****
  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
--- 18171,18180 ----
  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
! c7b299e5fe505151c6cb908712174601  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-2a.c
  6d64ae2854f0c1c2c817a3832375555f  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3.c
! ed77fd41a183e028937b9a3322bb7a70  gcc/testsuite/c-c++-common/analyzer/analyzer-verbosity-3a.c
! cca57e9fb9342c8e79642164deb2fa66  gcc/testsuite/c-c++-common/analyzer/arith-1.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
*************** fe45e23d9fc430bbefba272d10b6d6c7  gcc/te
*** 11483,11495 ****
  b15e2891c4a753cf597b60dcaf0c5c13  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-2.c
  c22cfa1990cd903c0075faa90cfd0919  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-3.c
  c41899060576b47d99e59ea79b7abcf5  gcc/testsuite/c-c++-common/analyzer/attr-const-1.c
! a0b2e2cd9950584a2520f1fcc3f0968d  gcc/testsuite/c-c++-common/analyzer/attr-const-2.c
  636cee8bd8b03781220a94a7f0d2663d  gcc/testsuite/c-c++-common/analyzer/attr-const-3.c
  b4515e65ed785bcd07a7162f6ccb804a  gcc/testsuite/c-c++-common/analyzer/attr-malloc-2.c
! 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
--- 18185,18198 ----
  b15e2891c4a753cf597b60dcaf0c5c13  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-2.c
  c22cfa1990cd903c0075faa90cfd0919  gcc/testsuite/c-c++-common/analyzer/attr-alloc_size-3.c
  c41899060576b47d99e59ea79b7abcf5  gcc/testsuite/c-c++-common/analyzer/attr-const-1.c
! a097b243fa66465eaeff247730549e0e  gcc/testsuite/c-c++-common/analyzer/attr-const-2.c
  636cee8bd8b03781220a94a7f0d2663d  gcc/testsuite/c-c++-common/analyzer/attr-const-3.c
  b4515e65ed785bcd07a7162f6ccb804a  gcc/testsuite/c-c++-common/analyzer/attr-malloc-2.c
! 8093b65618dbbae9cc2b73a9c256d260  gcc/testsuite/c-c++-common/analyzer/attr-malloc-4.c
! 2ab1288f1612e7882d259a7d3076654a  gcc/testsuite/c-c++-common/analyzer/attr-malloc-5.c
! 7de0c5d2e2ee1cfbc5955001489e4e62  gcc/testsuite/c-c++-common/analyzer/attr-malloc-6.c
! 5d4869a226e16881ef7252f987396de3  gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c
! 9d7d5114fdeda87b29f62ca5b3ff2370  gcc/testsuite/c-c++-common/analyzer/attr-malloc-exception.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
*************** ec09b8590bd78bf31ce64c6cf4cafeb8  gcc/te
*** 11501,11523 ****
  cdbc4d03b7c0fff5e790a906b6ff8991  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nullable.c
  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
--- 18204,18227 ----
  cdbc4d03b7c0fff5e790a906b6ff8991  gcc/testsuite/c-c++-common/analyzer/attr-null_terminated_string_arg-nullable.c
  13ea03e0275293dce13c9983410375cc  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-1.c
  3f7d3cba520a26c38c50f22274b6c413  gcc/testsuite/c-c++-common/analyzer/attr-tainted_args-misuses.c
! f641b240540aa403ae54c94fb424f84a  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
! c7de737c2f77292acdb82384f4132281  gcc/testsuite/c-c++-common/analyzer/call-summaries-pr107158-2.c
! a178bb063a95f3e0ead3192e052c70c5  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
! ce7e8b7850a1c560eaeae470c1038173  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
+ a3429442fe0e42ccc793eaa4afc36f6f  gcc/testsuite/c-c++-common/analyzer/casts-3.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
*************** c3cc13dab6d2fade664ad81477406518  gcc/te
*** 11525,11550 ****
  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
  1712456e05161d3b0417014c34379ace  gcc/testsuite/c-c++-common/analyzer/deref-before-check-macro-pr108745.c
  99fce2a41535edaa99a0d12d4c0bbc28  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-1.c
! 023ad86cf8fc33c9806aa5e92b99df1a  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-git-pack-revindex.c
  90d1530831dba7093a2d8db4c5dbf854  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-1.c
! f2ad859a003b900c9b4462b672d0af56  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c
  652943410e5c19446e9c4f57616c68df  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c
  c825031b4a0b15fa508c39aa86184c07  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109239-linux-bus.c
  f22c1d6f613d0a75782bbe2b9985409c  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109251-1.c
--- 18229,18257 ----
  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
! f2131bfa61003086112f4727e3acb289  gcc/testsuite/c-c++-common/analyzer/conditionals-pr98447-1.c
! 90d538195723afedc20809c0e3299ea3  gcc/testsuite/c-c++-common/analyzer/conditionals-pr98447-2.c
! d7794ed91b592bdaaebd423b3d5d046d  gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c
! a42e31835cb440aad70d530954f539ee  gcc/testsuite/c-c++-common/analyzer/coreutils-group_number.c
! cc0f23b2ce68c195b7e03c19c98794a7  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
! 761d8a93b284c51b13449ad4372b30c0  gcc/testsuite/c-c++-common/analyzer/data-model-20.c
  1a7244f30f830702369a54bb48fc8aef  gcc/testsuite/c-c++-common/analyzer/data-model-21.c
! 6ed32dd828aa4f9e806d00ad8e58990b  gcc/testsuite/c-c++-common/analyzer/data-model-22.c
  a0cd88952248c9e6aeab396421bca6fc  gcc/testsuite/c-c++-common/analyzer/data-model-4.c
! e1fbd42e0285021f7563bbb0e2e26cb2  gcc/testsuite/c-c++-common/analyzer/data-model-5d.c
  e30a91c7d128ee44d4a195e5868ee03a  gcc/testsuite/c-c++-common/analyzer/data-model-8.c
! 00ee767bac09296669bb85b215aecff0  gcc/testsuite/c-c++-common/analyzer/data-model-path-1.c
! 4e03a00e065957a0908b0685d3ba2aea  gcc/testsuite/c-c++-common/analyzer/deref-before-check-2.c
  1712456e05161d3b0417014c34379ace  gcc/testsuite/c-c++-common/analyzer/deref-before-check-macro-pr108745.c
  99fce2a41535edaa99a0d12d4c0bbc28  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-1.c
! 469ba34d0ba2f5037828862342026513  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108455-git-pack-revindex.c
  90d1530831dba7093a2d8db4c5dbf854  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-1.c
! 07fc1e3d7b318dab2ba859b68e298654  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c
  652943410e5c19446e9c4f57616c68df  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109060-haproxy-cfgparse.c
  c825031b4a0b15fa508c39aa86184c07  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109239-linux-bus.c
  f22c1d6f613d0a75782bbe2b9985409c  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr109251-1.c
*************** f22c1d6f613d0a75782bbe2b9985409c  gcc/te
*** 11552,11562 ****
  3efd9ef09bb52fe32780b0cf36d7b1d3  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr112790.c
  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
--- 18259,18271 ----
  3efd9ef09bb52fe32780b0cf36d7b1d3  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr112790.c
  9e78ad2b0dc193d5d9ff12c23ed54093  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr114408.c
  7bf4703348c765739d583b7192f279b4  gcc/testsuite/c-c++-common/analyzer/deref-before-check-pr77425.c
! 886f3f33c2d279807ee7298e0c063925  gcc/testsuite/c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c
  e72d4d58ac74047ac994b14980352fac  gcc/testsuite/c-c++-common/analyzer/disabling.c
! 59c4bac98b18c536dced802b01c181fb  gcc/testsuite/c-c++-common/analyzer/divide-by-zero-1.c
! ce3c5656c002ea02f32e577aad16eb30  gcc/testsuite/c-c++-common/analyzer/divide-by-zero-pr124195-2.c
! 19aacf9c33e54908fddb0b6eaf172fdd  gcc/testsuite/c-c++-common/analyzer/dot-output.c
  fda96ad160dde929000c954a08b084bf  gcc/testsuite/c-c++-common/analyzer/dump-state.c
! b38fbb0d028c69f962c89ebba073f297  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
*************** af5c71db79db8bbfa151cc192fcfe969  gcc/te
*** 11571,11586 ****
  06cdeb40238f1c83c31be9c486c7f990  gcc/testsuite/c-c++-common/analyzer/expect-1.c
  8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/c-c++-common/analyzer/factorial.c
  3efc345b51b7277578af413178d26130  gcc/testsuite/c-c++-common/analyzer/fd-1.c
! 08209591e6a5f867ee4a2f405e8b4be9  gcc/testsuite/c-c++-common/analyzer/fd-2.c
! 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
--- 18280,18295 ----
  06cdeb40238f1c83c31be9c486c7f990  gcc/testsuite/c-c++-common/analyzer/expect-1.c
  8a65bc460ebfced6ab82065135e57d26  gcc/testsuite/c-c++-common/analyzer/factorial.c
  3efc345b51b7277578af413178d26130  gcc/testsuite/c-c++-common/analyzer/fd-1.c
! 53cc03c99e04450f8ec7b03b10925c1b  gcc/testsuite/c-c++-common/analyzer/fd-2.c
! 7f1d10f463b230c4126bf563ca4ecddf  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
! 436363dbb083389657570da88ba2cdec  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
! e97f066eb1df45c004940dd4bf4a5e8c  gcc/testsuite/c-c++-common/analyzer/fd-meaning.c
  591b3a6ec13f473ada0c9ad8e8cbc607  gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
! 4cada35055b521701efbb095917e72d2  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
*************** c67fd7150c48c2cbde13c569af42d724  gcc/te
*** 11589,11606 ****
  166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/c-c++-common/analyzer/feasibility-pr107948.c
  1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/c-c++-common/analyzer/ferror-1.c
  23bc59087d794c1b065cef050c3433d2  gcc/testsuite/c-c++-common/analyzer/fgets-1.c
! 0d6e01df673fded93678160ef3f843e9  gcc/testsuite/c-c++-common/analyzer/fibonacci.c
  badf258f6f3121025b0d3b8332fda51f  gcc/testsuite/c-c++-common/analyzer/fields.c
! 18174663dff64a509abb3f5ada449bdc  gcc/testsuite/c-c++-common/analyzer/file-1.c
! 4d1005ccd0e2c6b96780497a29dc930f  gcc/testsuite/c-c++-common/analyzer/file-3.c
! 201348c53a15d6dd5ba2dba86efc8eab  gcc/testsuite/c-c++-common/analyzer/file-meaning-1.c
  e8f2ac5a2eaf583345c763651947c9b5  gcc/testsuite/c-c++-common/analyzer/file-pr58237-noexcept.c
  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
--- 18298,18315 ----
  166367f89bddb5b54a71a7870a8f1fe1  gcc/testsuite/c-c++-common/analyzer/feasibility-pr107948.c
  1461e7b4d80bbbc9eaca84c3c53e4ced  gcc/testsuite/c-c++-common/analyzer/ferror-1.c
  23bc59087d794c1b065cef050c3433d2  gcc/testsuite/c-c++-common/analyzer/fgets-1.c
! 48b6882b3ff2facd9adb190fa277743f  gcc/testsuite/c-c++-common/analyzer/fibonacci.c
  badf258f6f3121025b0d3b8332fda51f  gcc/testsuite/c-c++-common/analyzer/fields.c
! 7556950b9334c6e70b7075b1ee29d5fe  gcc/testsuite/c-c++-common/analyzer/file-1.c
! 7e6205779b03916212dd157742d257bf  gcc/testsuite/c-c++-common/analyzer/file-3.c
! 77a15af3a328eda2115c9646a3463464  gcc/testsuite/c-c++-common/analyzer/file-meaning-1.c
  e8f2ac5a2eaf583345c763651947c9b5  gcc/testsuite/c-c++-common/analyzer/file-pr58237-noexcept.c
  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
! b8afac2235f0cb3ddf49379207ffb33f  gcc/testsuite/c-c++-common/analyzer/flex-with-call-summaries.c
! ec1f7f84cd3c696e2def72daeb4cd58d  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
*************** c8cf12bc01c84a2f2f0cb158bd49aae1  gcc/te
*** 11618,11624 ****
--- 18327,18335 ----
  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
+ 0c699c7c6658f8a724e0697d1a329a98  gcc/testsuite/c-c++-common/analyzer/hard-reg-1.c
  e1b439caf59bbf930791f644cc2c4443  gcc/testsuite/c-c++-common/analyzer/ice-pr112889.c
+ 1c893eafeb29c04dea0b64d6b91dde87  gcc/testsuite/c-c++-common/analyzer/ice-pr116865.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
*************** a105342d3292d355507ab715b3a2ca98  gcc/te
*** 11633,11651 ****
  6c02fdcda6da2e22db9f2590da1ed81e  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-limited.c
  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
  678e520520e179deadde681b805a0226  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-1.c
! 8ae2d2ad11ab012d4ebd59de300448ef  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-2.c
  3c9e1c86490f5c76c234118f3a094965  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-qobject-json-parser.c
  a66185ed3bef2742621b423d3bec08ab  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1.c
  7d75523d81879148276b42e991a4c362  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1a.c
  66723f902622a5e196b22ca3d8fceff6  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-2.c
  43c57be318716a133d18499c08ddc7aa  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-variadic.c
! d5e270f77ea78102f30f82e5d2f2191b  gcc/testsuite/c-c++-common/analyzer/infinite-recursion.c
  e7a346d9228f0a095843adfb8d30f916  gcc/testsuite/c-c++-common/analyzer/init.c
  7be31f253c5b7f2accefbebf945eeee5  gcc/testsuite/c-c++-common/analyzer/inlining-1-multiline.c
  43cde5ffd859b42ff7d0c25096d32f8b  gcc/testsuite/c-c++-common/analyzer/inlining-1-no-undo.c
--- 18344,18364 ----
  6c02fdcda6da2e22db9f2590da1ed81e  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-4-limited.c
  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
! 4b57b38282c769674df370187662f8a3  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
  678e520520e179deadde681b805a0226  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-1.c
! 6b2fa9590fbf000538c177e3195be8b2  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-2.c
  3c9e1c86490f5c76c234118f3a094965  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108524-qobject-json-parser.c
  a66185ed3bef2742621b423d3bec08ab  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1.c
  7d75523d81879148276b42e991a4c362  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1a.c
  66723f902622a5e196b22ca3d8fceff6  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-2.c
+ 06baba8fb190338b8a7cb3d26bb98679  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr122975.c
+ 5c1d21e1756dcaab29cf4f3d79920304  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c
  43c57be318716a133d18499c08ddc7aa  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-variadic.c
! b5d43db912cf8450f4d29c2782ff99f0  gcc/testsuite/c-c++-common/analyzer/infinite-recursion.c
  e7a346d9228f0a095843adfb8d30f916  gcc/testsuite/c-c++-common/analyzer/init.c
  7be31f253c5b7f2accefbebf945eeee5  gcc/testsuite/c-c++-common/analyzer/inlining-1-multiline.c
  43cde5ffd859b42ff7d0c25096d32f8b  gcc/testsuite/c-c++-common/analyzer/inlining-1-no-undo.c
*************** f96a5e26ebe3f224244fcc898ace703b  gcc/te
*** 11663,11671 ****
  03a1d1ad07367c4df1878142d6ed4cd4  gcc/testsuite/c-c++-common/analyzer/inlining-7-multiline.c
  28235c739e7b12bff289d278f8971f92  gcc/testsuite/c-c++-common/analyzer/inlining-7.c
  7a48058aaf7419920b16429c67d04982  gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
  3cb97718e1fbbc9845c767bb007b9fa9  gcc/testsuite/c-c++-common/analyzer/isatty-1.c
  a710cd85a1cb3f973bf3b9b487e3c805  gcc/testsuite/c-c++-common/analyzer/leak-2.c
! 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
--- 18376,18385 ----
  03a1d1ad07367c4df1878142d6ed4cd4  gcc/testsuite/c-c++-common/analyzer/inlining-7-multiline.c
  28235c739e7b12bff289d278f8971f92  gcc/testsuite/c-c++-common/analyzer/inlining-7.c
  7a48058aaf7419920b16429c67d04982  gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c
+ c2fe5f3adb1d4f5c27c7d505befae7b9  gcc/testsuite/c-c++-common/analyzer/ipa-callbacks-1.c
  3cb97718e1fbbc9845c767bb007b9fa9  gcc/testsuite/c-c++-common/analyzer/isatty-1.c
  a710cd85a1cb3f973bf3b9b487e3c805  gcc/testsuite/c-c++-common/analyzer/leak-2.c
! 2d17a6ee0daf9cc6a6dab539670520a2  gcc/testsuite/c-c++-common/analyzer/leak-3.c
  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
*************** d84e4faf90db15ae62e01e3b04e20bbb  gcc/te
*** 11677,11689 ****
  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
  223665e4098412e21c85c9579758b987  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-step.c
  f87f14f8a72827b5feee7074a11c8cad  gcc/testsuite/c-c++-common/analyzer/loop-start-to-end-by-step.c
  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
--- 18391,18403 ----
  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
! 24df7ef2a1bc116f8810d2ced21bbec8  gcc/testsuite/c-c++-common/analyzer/loop-4.c
! 7faa571273d7bcec1d22232cf12386c8  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
  223665e4098412e21c85c9579758b987  gcc/testsuite/c-c++-common/analyzer/loop-start-down-to-end-by-step.c
  f87f14f8a72827b5feee7074a11c8cad  gcc/testsuite/c-c++-common/analyzer/loop-start-to-end-by-step.c
  a7e5a47a1c4034d7e2762efa201bdec0  gcc/testsuite/c-c++-common/analyzer/loop-start-up-to-end-by-1.c
! b9a7d299aa00ae2e880b6f42e60f3ea7  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
*************** d9505114b912ffa781655567b227ca9c  gcc/te
*** 11693,11700 ****
  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
--- 18407,18414 ----
  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
! 8b1a72e69cdc44bc626669f33a9068de  gcc/testsuite/c-c++-common/analyzer/malloc-dedupe-1.c
! 95a39f948929da8f8fd6a70b651b7f82  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
*************** d1424a74b194e5f2b35600438d9e8612  gcc/te
*** 11711,11732 ****
  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
--- 18425,18446 ----
  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
! 7ef528851979e00f243332555bf1dd89  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
! 989da7782a9647688abd56fbf169d0f9  gcc/testsuite/c-c++-common/analyzer/malloc-paths-5.c
  fcd4a44204fdcef9a707187f31ac2cf0  gcc/testsuite/c-c++-common/analyzer/malloc-paths-6.c
! f5b89829ec7915447e09df39c8d04ba0  gcc/testsuite/c-c++-common/analyzer/malloc-paths-7.c
! 1172eef5155f9152b1bada23bd9fce5a  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
! 264bf443645b01ce750e6ec1d09b419f  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1a.c
  49ad55e15fade53b7fe49ed86366835d  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-1b.c
! 88826e4e0739c6ced983c4eb8a9870c6  gcc/testsuite/c-c++-common/analyzer/malloc-vs-local-2.c
! d5f79aac679696e81a1e47188bcb3cb8  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
*************** f2ef41567ee028e2c9a0b2dcc93610d5  gcc/te
*** 11740,11747 ****
  8ca03489a7a16008cda28b311d2ad31d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-traditional.c
  61af2386834b57be29eb9039ab3e0c5d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-undef.c
  818fb538b0fb1960bc453bff00d253a2  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c
! 22b0042661a4cf37a407575ea2fba600  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c
! e5577157d8786cf9889a1776dcf5a731  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c
  4c86f72d1d3cb536f8d0380e15b986c9  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108806-qemu.c
  32d7a13194f9a5ee03de4c64171f033e  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108830.c
  a256b4df4964505fabaddb133153a201  gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c
--- 18454,18461 ----
  8ca03489a7a16008cda28b311d2ad31d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-traditional.c
  61af2386834b57be29eb9039ab3e0c5d  gcc/testsuite/c-c++-common/analyzer/named-constants-via-macros-undef.c
  818fb538b0fb1960bc453bff00d253a2  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early-O2.c
! 9439deaf5e75dd7c66e23468821d5c7f  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108251-smp_fetch_ssl_fc_has_early.c
! 0fbe7df7481c3719e6a1f8b7cba750d7  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108400-SoftEtherVPN-WebUi.c
  4c86f72d1d3cb536f8d0380e15b986c9  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108806-qemu.c
  32d7a13194f9a5ee03de4c64171f033e  gcc/testsuite/c-c++-common/analyzer/null-deref-pr108830.c
  a256b4df4964505fabaddb133153a201  gcc/testsuite/c-c++-common/analyzer/null-deref-pr110520.c
*************** dccaf3f6a5587a149aa108073584f903  gcc/te
*** 11753,11761 ****
  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
--- 18467,18474 ----
  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
! 6795a96b6fc0be9bd4170d12a24fbf9f  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-coreutils.c
  7b37db3cd00928477b112bf00cee7b33  gcc/testsuite/c-c++-common/analyzer/out-of-bounds-curl.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
*************** e089e6b6af2eeb36ade618f602bd67bd  gcc/te
*** 11783,11792 ****
  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
--- 18496,18505 ----
  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
! a7aaa0b5c14493ee8679654668fdbc6f  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
! 9195ce035a129e0bed083b3d5be5c053  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
*************** af023122a19de528dafe039ac05f2a3b  gcc/te
*** 11824,11837 ****
  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
! 34c8a40339a82547bfbde334593d1f9a  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-simplified.c
  b6a5c2e98cae1c3d989110f8bc0b5134  gcc/testsuite/c-c++-common/analyzer/pr93457.c
  d7e755a648dcf6c1194222f89d2c136b  gcc/testsuite/c-c++-common/analyzer/pr93546.c
  9d197d56580541ddcf5a28595b6fcd8a  gcc/testsuite/c-c++-common/analyzer/pr93547.c
--- 18537,18550 ----
  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
! aefc0c036204bf828fb41b403874d7b5  gcc/testsuite/c-c++-common/analyzer/pr110830.c
  e8c7a5791d8b68488c8f87c4b7da17f7  gcc/testsuite/c-c++-common/analyzer/pr119278.c
! dfa19030583a9169c061ac04eb931cd7  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
! 7bcacd0f083b1e73b9d1a04cd5af5e83  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-3.c
  bea694320cc00629307db054732ff4f9  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-feasibility-noexcept.c
! d46c7c40246a044460f27ae3a883e3a1  gcc/testsuite/c-c++-common/analyzer/pr93355-localealias-simplified.c
  b6a5c2e98cae1c3d989110f8bc0b5134  gcc/testsuite/c-c++-common/analyzer/pr93457.c
  d7e755a648dcf6c1194222f89d2c136b  gcc/testsuite/c-c++-common/analyzer/pr93546.c
  9d197d56580541ddcf5a28595b6fcd8a  gcc/testsuite/c-c++-common/analyzer/pr93547.c
*************** d092c910db92eea5975a648161bb95f1  gcc/te
*** 11841,11847 ****
  d562f145d761d598c4cf5d581b61e546  gcc/testsuite/c-c++-common/analyzer/pr94047.c
  872037e09757aa86b694f245b71c154d  gcc/testsuite/c-c++-common/analyzer/pr94099.c
  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
--- 18554,18560 ----
  d562f145d761d598c4cf5d581b61e546  gcc/testsuite/c-c++-common/analyzer/pr94047.c
  872037e09757aa86b694f245b71c154d  gcc/testsuite/c-c++-common/analyzer/pr94099.c
  76559ba88816dd3d385d56090dd3e037  gcc/testsuite/c-c++-common/analyzer/pr94105.c
! 9f802d786bfaa4275d32e56327b77ce8  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
*************** fd0f492f05905f9735a1c3fb5aba65e2  gcc/te
*** 11851,11857 ****
  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
--- 18564,18570 ----
  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
! dbebf216fd7871db83ca0ab2bd202301  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
*************** a18aec5c928fb5cf0238f90bc5890720  gcc/te
*** 11862,11869 ****
  1cc9fc986e0c43dbfa3116f2b887d305  gcc/testsuite/c-c++-common/analyzer/pr96644.c
  8122e564ee9470c65abe46b95a4e01e0  gcc/testsuite/c-c++-common/analyzer/pr96646.c
  dbff5f371056a62a0166453b66a4e27a  gcc/testsuite/c-c++-common/analyzer/pr96648.c
! 7355069be28eed8d00160ea24380a9a5  gcc/testsuite/c-c++-common/analyzer/pr96650-1-notrans.c
! d9c33cd022fc3054544749865b40e10f  gcc/testsuite/c-c++-common/analyzer/pr96650-1-trans.c
  aa029c0bea41b0e118a8ca1f50d23b60  gcc/testsuite/c-c++-common/analyzer/pr96650-2-notrans.c
  8493678def139ca7a82b058857427371  gcc/testsuite/c-c++-common/analyzer/pr96650-2-trans.c
  6839dc70e12ccfcef828a166458c4e34  gcc/testsuite/c-c++-common/analyzer/pr96651-1.c
--- 18575,18582 ----
  1cc9fc986e0c43dbfa3116f2b887d305  gcc/testsuite/c-c++-common/analyzer/pr96644.c
  8122e564ee9470c65abe46b95a4e01e0  gcc/testsuite/c-c++-common/analyzer/pr96646.c
  dbff5f371056a62a0166453b66a4e27a  gcc/testsuite/c-c++-common/analyzer/pr96648.c
! 414d879e59c3fd4b62002334a98f99f3  gcc/testsuite/c-c++-common/analyzer/pr96650-1-notrans.c
! 77b17b1f0a00bec490c6054aa76eadad  gcc/testsuite/c-c++-common/analyzer/pr96650-1-trans.c
  aa029c0bea41b0e118a8ca1f50d23b60  gcc/testsuite/c-c++-common/analyzer/pr96650-2-notrans.c
  8493678def139ca7a82b058857427371  gcc/testsuite/c-c++-common/analyzer/pr96650-2-trans.c
  6839dc70e12ccfcef828a166458c4e34  gcc/testsuite/c-c++-common/analyzer/pr96651-1.c
*************** bbb64776ef435c86e6e9ce7bad1d2c5b  gcc/te
*** 11877,11883 ****
  e70ded212eee0cc316cb15eceeffaa17  gcc/testsuite/c-c++-common/analyzer/pr96841.c
  6ea0d6a74be1672eeed9d14f1e664fa7  gcc/testsuite/c-c++-common/analyzer/pr96860-2.c
  e90b6e64cc366c53200b591dd4d37db6  gcc/testsuite/c-c++-common/analyzer/pr97029.c
! 5bd94fca89134ed6b5d3236ba6cc6a31  gcc/testsuite/c-c++-common/analyzer/pr97072.c
  546c32f2aa2156325068020f118d258f  gcc/testsuite/c-c++-common/analyzer/pr97074.c
  e2da6e0e14d8c8ac966c0b44386c520d  gcc/testsuite/c-c++-common/analyzer/pr97130.c
  2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/c-c++-common/analyzer/pr97233.c
--- 18590,18596 ----
  e70ded212eee0cc316cb15eceeffaa17  gcc/testsuite/c-c++-common/analyzer/pr96841.c
  6ea0d6a74be1672eeed9d14f1e664fa7  gcc/testsuite/c-c++-common/analyzer/pr96860-2.c
  e90b6e64cc366c53200b591dd4d37db6  gcc/testsuite/c-c++-common/analyzer/pr97029.c
! a9768ccfc00006df58a6d08532140cd8  gcc/testsuite/c-c++-common/analyzer/pr97072.c
  546c32f2aa2156325068020f118d258f  gcc/testsuite/c-c++-common/analyzer/pr97074.c
  e2da6e0e14d8c8ac966c0b44386c520d  gcc/testsuite/c-c++-common/analyzer/pr97130.c
  2c0f51e668635fdd7cc909b70544228f  gcc/testsuite/c-c++-common/analyzer/pr97233.c
*************** e2da6e0e14d8c8ac966c0b44386c520d  gcc/te
*** 11887,11921 ****
  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
! 3bde06fdbe5781b1a2192331d50f515a  gcc/testsuite/c-c++-common/analyzer/pr98575-1.c
  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
  52b12a0e6c5b99a983ba71f27045c0e5  gcc/testsuite/c-c++-common/analyzer/realloc-5.c
  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
--- 18600,18634 ----
  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
! e4e4d2fd728f4821b426c4d375ab2a16  gcc/testsuite/c-c++-common/analyzer/pr98575-1.c
  bd0446dc7bfc92ba7fa31dec5245fdc8  gcc/testsuite/c-c++-common/analyzer/pr98580-a.c
  ec3f6b6ab51e286be338a54b446589e9  gcc/testsuite/c-c++-common/analyzer/pr98580-b.c
! 0ddbd4e948e02c502c6c1b671f0f9c9c  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
! d058918b5866c765486992f2e8808a86  gcc/testsuite/c-c++-common/analyzer/pr99716-1.c
! d619f347f7a5956b714a0a9ec35757ab  gcc/testsuite/c-c++-common/analyzer/pr99716-2.c
! ad6b412250897f9dc88b89286707197e  gcc/testsuite/c-c++-common/analyzer/pr99716-3.c
! 981532d975e9a11a0d82f30054ba8726  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
! 997c97dd61ef110d7d5db435db020682  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
! 30de4cdd701224f68022d2999b05915c  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
! ed19bd6035c229c80a63f4ee4d655992  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
  52b12a0e6c5b99a983ba71f27045c0e5  gcc/testsuite/c-c++-common/analyzer/realloc-5.c
  a7c38aafc43d1698b07f6cdb050c22bb  gcc/testsuite/c-c++-common/analyzer/realloc-pr110014.c
  80fa663011e0905b551ff26c0f4ab6aa  gcc/testsuite/c-c++-common/analyzer/refcounting-1.c
! afd8314fa815d307327b637eb02db422  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
*************** b81cc10859189c28863d9b148a72c47a  gcc/te
*** 11925,11939 ****
  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
  0d17ba25adaab3e664c5b31f67e250f4  gcc/testsuite/c-c++-common/analyzer/stale-frame-1.c
  44d8756f94c5eb1f54f1ad42b42b7c7e  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-int.c
  565c27c80630eebb81d83c9cfbd163f5  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-ptr.c
  1e7d030baaceaf66501a55e6e522ff84  gcc/testsuite/c-c++-common/analyzer/stdarg-pr113509.c
! 6cb68eb8b2eb45ac0544be60f2161e0e  gcc/testsuite/c-c++-common/analyzer/stdarg-sentinel-1.c
  386715a511e63dee39f78737e48a7137  gcc/testsuite/c-c++-common/analyzer/stdarg-types-2.c
  8ffbb46c48a69dd15b62a7f13fd55b94  gcc/testsuite/c-c++-common/analyzer/stdarg-types-3.c
  7f61fc263e6d3625a5df0e88fb730927  gcc/testsuite/c-c++-common/analyzer/stdarg-types-4.c
--- 18638,18654 ----
  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
! 575685f031ad1fc6fb26665c34eb23e2  gcc/testsuite/c-c++-common/analyzer/sock-1.c
  d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/testsuite/c-c++-common/analyzer/sock-2.c
! 76a9a3cbf5361173bf61bc8c208e9d90  gcc/testsuite/c-c++-common/analyzer/sprintf-2.c
! 5dd0b9c5a39e0eac15af79faec998e4e  gcc/testsuite/c-c++-common/analyzer/sprintf-3.c
! a97a1068bf67d70b5efb114f54a7aad1  gcc/testsuite/c-c++-common/analyzer/sprintf-concat.c
! df79aefe937952285e9d24cbfc4d0438  gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c
  0d17ba25adaab3e664c5b31f67e250f4  gcc/testsuite/c-c++-common/analyzer/stale-frame-1.c
  44d8756f94c5eb1f54f1ad42b42b7c7e  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-int.c
  565c27c80630eebb81d83c9cfbd163f5  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-ptr.c
  1e7d030baaceaf66501a55e6e522ff84  gcc/testsuite/c-c++-common/analyzer/stdarg-pr113509.c
! 437bb25b72eb426ab31a4105ef80d41d  gcc/testsuite/c-c++-common/analyzer/stdarg-sentinel-1.c
  386715a511e63dee39f78737e48a7137  gcc/testsuite/c-c++-common/analyzer/stdarg-types-2.c
  8ffbb46c48a69dd15b62a7f13fd55b94  gcc/testsuite/c-c++-common/analyzer/stdarg-types-3.c
  7f61fc263e6d3625a5df0e88fb730927  gcc/testsuite/c-c++-common/analyzer/stdarg-types-4.c
*************** a20f56474f9327e4df5f75e759a08cfc  gcc/te
*** 11943,11957 ****
  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
  3860c30809fa4f2be07b2f54d0307dea  gcc/testsuite/c-c++-common/analyzer/strtok-3.c
  de1b4a3676e13702041a225852147f89  gcc/testsuite/c-c++-common/analyzer/strtok-4.c
! 78e0479f0949ec5e1ab354025c965109  gcc/testsuite/c-c++-common/analyzer/strtok-cppreference.c
  0198fd684e224cad3647e799760aecc9  gcc/testsuite/c-c++-common/analyzer/switch-enum-pr105273-git-vreportf-2.c
  b76cb1d27db82d1b655fd7715d3a8b9a  gcc/testsuite/c-c++-common/analyzer/switch-wrong-enum.c
  d36f5325a7e5fa9b8ac849be4b6b9226  gcc/testsuite/c-c++-common/analyzer/symbolic-1.c
--- 18658,18673 ----
  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
! af84b442d8f68452823319bf94649695  gcc/testsuite/c-c++-common/analyzer/strlen-pr123085.c
! 188f94d7648b519e3d2cce6399a73f5f  gcc/testsuite/c-c++-common/analyzer/strncpy-1.c
  95822937a3320cebcdcd88c927eb703e  gcc/testsuite/c-c++-common/analyzer/strncpy-pr111361.c
! 5f63b79c771eee4d268d6bba34c9182c  gcc/testsuite/c-c++-common/analyzer/strndup-1.c
! 3c614108330c0db6608c4a4ed728bcf3  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
  3860c30809fa4f2be07b2f54d0307dea  gcc/testsuite/c-c++-common/analyzer/strtok-3.c
  de1b4a3676e13702041a225852147f89  gcc/testsuite/c-c++-common/analyzer/strtok-4.c
! 16d1945e649c7966bf950d04c044e932  gcc/testsuite/c-c++-common/analyzer/strtok-cppreference.c
  0198fd684e224cad3647e799760aecc9  gcc/testsuite/c-c++-common/analyzer/switch-enum-pr105273-git-vreportf-2.c
  b76cb1d27db82d1b655fd7715d3a8b9a  gcc/testsuite/c-c++-common/analyzer/switch-wrong-enum.c
  d36f5325a7e5fa9b8ac849be4b6b9226  gcc/testsuite/c-c++-common/analyzer/symbolic-1.c
*************** e660fefe331990592f06c3b2ba0dd30c  gcc/te
*** 11994,12010 ****
  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
  21f9e2679d54cc3e89a736bb45b6003d  gcc/testsuite/c-c++-common/analyzer/write-to-const-1.c
  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
  9073937bc2452a6045dd4f3c9bc2ce80  gcc/testsuite/c-c++-common/array-6.c
--- 18710,18727 ----
  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
+ 6ec14b9805edfc6febe0f55f8bd321ba  gcc/testsuite/c-c++-common/analyzer/vector-ice-pr124188.c
  f35be136a336489f3bbba4138c71f464  gcc/testsuite/c-c++-common/analyzer/volatile-1.c
  a833a6ad5ab9dc4df4c5628344367514  gcc/testsuite/c-c++-common/analyzer/vsnprintf-1.c
  21f9e2679d54cc3e89a736bb45b6003d  gcc/testsuite/c-c++-common/analyzer/write-to-const-1.c
  259cbbbefa0a9046ba4bd63ad3d99430  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-1.c
! 43c54f44785d2bdb7f078443feac6e26  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4-disabled.c
! 2f43e5d5e39ee6524cade23cc34c39aa  gcc/testsuite/c-c++-common/analyzer/write-to-string-literal-4.c
! 4c4a99cebba1535f54cf07f5f986c971  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
! 6c7035c3cf6a36095cbf6b0356dbbe97  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
  9073937bc2452a6045dd4f3c9bc2ce80  gcc/testsuite/c-c++-common/array-6.c
*************** a2399a83d9e86c82a597d1510eb9eb8b  gcc/te
*** 12020,12026 ****
  f521c0adacbecee9cbfcbdd089681c95  gcc/testsuite/c-c++-common/asan/alloca_safe_access.c
  e4943a29b314a6337f7b56e003bd32eb  gcc/testsuite/c-c++-common/asan/alloca_underflow_left.c
  9a261f8bffecf43239790dbf2d8aca82  gcc/testsuite/c-c++-common/asan/asan-interface-1.c
! 3acc8f2042e817e0870af868f00255f9  gcc/testsuite/c-c++-common/asan/asan-stack-small.c
  966c2b8ee203d9d76e0a1b80b23e46ea  gcc/testsuite/c-c++-common/asan/attrib-1.c
  328bc4f2618808b8aed2a1e944810a42  gcc/testsuite/c-c++-common/asan/bitfield-1.c
  10b8d421313140ab0d7718aef176e779  gcc/testsuite/c-c++-common/asan/bitfield-2.c
--- 18737,18743 ----
  f521c0adacbecee9cbfcbdd089681c95  gcc/testsuite/c-c++-common/asan/alloca_safe_access.c
  e4943a29b314a6337f7b56e003bd32eb  gcc/testsuite/c-c++-common/asan/alloca_underflow_left.c
  9a261f8bffecf43239790dbf2d8aca82  gcc/testsuite/c-c++-common/asan/asan-interface-1.c
! 33242a09579709f5d2c5e6361e507d13  gcc/testsuite/c-c++-common/asan/asan-stack-small.c
  966c2b8ee203d9d76e0a1b80b23e46ea  gcc/testsuite/c-c++-common/asan/attrib-1.c
  328bc4f2618808b8aed2a1e944810a42  gcc/testsuite/c-c++-common/asan/bitfield-1.c
  10b8d421313140ab0d7718aef176e779  gcc/testsuite/c-c++-common/asan/bitfield-2.c
*************** fabe4f563e2a6b04ace68b9b7e010e6b  gcc/te
*** 12084,12093 ****
  a81fada6339487ed882e8189aae31718  gcc/testsuite/c-c++-common/asan/pr120608-2.c
  4bf79f26fda6692969b7b7acd3996a01  gcc/testsuite/c-c++-common/asan/pr120608-3.c
  bfeb7c22d0f9799de47d33dd1bcdde09  gcc/testsuite/c-c++-common/asan/pr120608-4.c
  9a0dd3dcef02945c8967f40a29316496  gcc/testsuite/c-c++-common/asan/pr56330.c
  202bae43b2843228776d43c8d07c92c8  gcc/testsuite/c-c++-common/asan/pr59029.c
  65128b17436f6406d9e224257030e000  gcc/testsuite/c-c++-common/asan/pr59063-1.c
! 71cab99b55f359571fa3f6adc89dbc61  gcc/testsuite/c-c++-common/asan/pr59063-2.c
  31c558f06954a14ead49eeebe130dd9a  gcc/testsuite/c-c++-common/asan/pr61530.c
  36a8e4bdcb9cdd4c57029e7a7c755fde  gcc/testsuite/c-c++-common/asan/pr62089.c
  10127067cac44d34f08d701d26036156  gcc/testsuite/c-c++-common/asan/pr62140-1.c
--- 18801,18814 ----
  a81fada6339487ed882e8189aae31718  gcc/testsuite/c-c++-common/asan/pr120608-2.c
  4bf79f26fda6692969b7b7acd3996a01  gcc/testsuite/c-c++-common/asan/pr120608-3.c
  bfeb7c22d0f9799de47d33dd1bcdde09  gcc/testsuite/c-c++-common/asan/pr120608-4.c
+ b3355bfb51e6a87d724e18d36b9ac8b6  gcc/testsuite/c-c++-common/asan/pr121389-1.c
+ eb77e0bf098a564e4879891993b2971a  gcc/testsuite/c-c++-common/asan/pr121389-2.c
+ deda343ed2f61c0d2a95534b8cfcec30  gcc/testsuite/c-c++-common/asan/pr121389-3.c
+ c4e5247a7ee4e73d4190e5abea3941e0  gcc/testsuite/c-c++-common/asan/pr121389-4.c
  9a0dd3dcef02945c8967f40a29316496  gcc/testsuite/c-c++-common/asan/pr56330.c
  202bae43b2843228776d43c8d07c92c8  gcc/testsuite/c-c++-common/asan/pr59029.c
  65128b17436f6406d9e224257030e000  gcc/testsuite/c-c++-common/asan/pr59063-1.c
! 30d8a7a719d4b1e3175571b5106dd7dd  gcc/testsuite/c-c++-common/asan/pr59063-2.c
  31c558f06954a14ead49eeebe130dd9a  gcc/testsuite/c-c++-common/asan/pr61530.c
  36a8e4bdcb9cdd4c57029e7a7c755fde  gcc/testsuite/c-c++-common/asan/pr62089.c
  10127067cac44d34f08d701d26036156  gcc/testsuite/c-c++-common/asan/pr62140-1.c
*************** bfeb7c22d0f9799de47d33dd1bcdde09  gcc/te
*** 12095,12101 ****
  e2f486b0dd43e40b8a43561b9dd25b7f  gcc/testsuite/c-c++-common/asan/pr63316.c
  272a8a4b4eb62045f13f25163fae08ca  gcc/testsuite/c-c++-common/asan/pr63638.c
  0a221c339accacadef51e91e2f07b9ba  gcc/testsuite/c-c++-common/asan/pr63888.c
! 85fe6e20583717b2490f9ecef45a4353  gcc/testsuite/c-c++-common/asan/pr64820.c
  430079f735bd0792e25216b9c0862dae  gcc/testsuite/c-c++-common/asan/pr70541.c
  dee6718aa031ca364c15580524cba02b  gcc/testsuite/c-c++-common/asan/pr70712.c
  597319c6e2a780b5c408db133cfae42c  gcc/testsuite/c-c++-common/asan/pr71480.c
--- 18816,18822 ----
  e2f486b0dd43e40b8a43561b9dd25b7f  gcc/testsuite/c-c++-common/asan/pr63316.c
  272a8a4b4eb62045f13f25163fae08ca  gcc/testsuite/c-c++-common/asan/pr63638.c
  0a221c339accacadef51e91e2f07b9ba  gcc/testsuite/c-c++-common/asan/pr63888.c
! 69e4d5a46ab97ef0497b78ba2f7cb8aa  gcc/testsuite/c-c++-common/asan/pr64820.c
  430079f735bd0792e25216b9c0862dae  gcc/testsuite/c-c++-common/asan/pr70541.c
  dee6718aa031ca364c15580524cba02b  gcc/testsuite/c-c++-common/asan/pr70712.c
  597319c6e2a780b5c408db133cfae42c  gcc/testsuite/c-c++-common/asan/pr71480.c
*************** ac77f7488fa8f0e89a4ab95262319596  gcc/te
*** 12122,12131 ****
  6265da622688bcc368760909a7d28eba  gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c
  ba231380f930c8e385536084b126f8a6  gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
  a16171ad5a320a8fe7705639f3e9cb35  gcc/testsuite/c-c++-common/asan/use-after-free-1.c
! a789f5331525aaabcfdd779b2981edf6  gcc/testsuite/c-c++-common/asan/use-after-return-1.c
  ca3a4e630befd762fc8576e74160a5a4  gcc/testsuite/c-c++-common/asan/user-section-1.c
  0a2e4001b6ac2328ef0e29cfc0519941  gcc/testsuite/c-c++-common/asan/user-section-2.c
  3e31f5c1b9397bc124776d607d15c688  gcc/testsuite/c-c++-common/asan/user-section-3.c
  8a1805e319233a0be84ec2f57d73fdf0  gcc/testsuite/c-c++-common/asmgoto-1.c
  b52858b1b0e17f71a6cbfe1dbc98f153  gcc/testsuite/c-c++-common/asmgoto-2.c
  23fd6d68a2d88cbcf8cd954faf8fb296  gcc/testsuite/c-c++-common/asmgoto-3.c
--- 18843,18853 ----
  6265da622688bcc368760909a7d28eba  gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c
  ba231380f930c8e385536084b126f8a6  gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
  a16171ad5a320a8fe7705639f3e9cb35  gcc/testsuite/c-c++-common/asan/use-after-free-1.c
! a3f759dba537998dd35b9fa6ea16238b  gcc/testsuite/c-c++-common/asan/use-after-return-1.c
  ca3a4e630befd762fc8576e74160a5a4  gcc/testsuite/c-c++-common/asan/user-section-1.c
  0a2e4001b6ac2328ef0e29cfc0519941  gcc/testsuite/c-c++-common/asan/user-section-2.c
  3e31f5c1b9397bc124776d607d15c688  gcc/testsuite/c-c++-common/asan/user-section-3.c
+ 9f17a39189af3231af774064db5bbb8f  gcc/testsuite/c-c++-common/asm-invalid-operand-1.c
  8a1805e319233a0be84ec2f57d73fdf0  gcc/testsuite/c-c++-common/asmgoto-1.c
  b52858b1b0e17f71a6cbfe1dbc98f153  gcc/testsuite/c-c++-common/asmgoto-2.c
  23fd6d68a2d88cbcf8cd954faf8fb296  gcc/testsuite/c-c++-common/asmgoto-3.c
*************** e627e94303559061b566ee6a67d2e153  gcc/te
*** 12191,12196 ****
--- 18913,18919 ----
  b11e87307044446d68555332a0f37924  gcc/testsuite/c-c++-common/attr-used-8.c
  7e4e1b68ca991560ece1eee831e8bacd  gcc/testsuite/c-c++-common/attr-used-9.c
  0765b8273c3c0c19396e32788dd03b94  gcc/testsuite/c-c++-common/attr-used.c
+ 56409185f7b7927b907d72545ba8aa31  gcc/testsuite/c-c++-common/attr-warn-unused-result-2.c
  c16cfe2fc05f8ec7fa89428b9e32fef6  gcc/testsuite/c-c++-common/attr-warn-unused-result.c
  0757d414096e0b54b72399cfd533c8fc  gcc/testsuite/c-c++-common/attributes-1.c
  6d7e356a55667553550e9cd33323e1f5  gcc/testsuite/c-c++-common/attributes-2.c
*************** bcc545fe674e92adb4edf8ad7ebde228  gcc/te
*** 12291,12296 ****
--- 19014,19021 ----
  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
+ d09c1c089759278bdfd2d4397db48a76  gcc/testsuite/c-c++-common/cpp/comment-ff-1.c
+ 64545725d37815cd7805d4c1f385df1d  gcc/testsuite/c-c++-common/cpp/comment-vtab-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
*************** da5e564f6cffb4d2f63384ba5d7351b1  gcc/te
*** 12307,12312 ****
--- 19032,19039 ----
  8135260e5e210166919ed6d24752ad37  gcc/testsuite/c-c++-common/cpp/diagnostic-pragma-3.c
  7e07a117bfa1cbd4313441da514b62a7  gcc/testsuite/c-c++-common/cpp/dir-only-1.c
  94f40e67e3617fd463bd2b73d2f6d54c  gcc/testsuite/c-c++-common/cpp/dir-only-1.h
+ 3ddedbc00d4ff771f66edefc8d70881f  gcc/testsuite/c-c++-common/cpp/dir-only-10.c
+ 948247aa95702e920da7ab25ee7cf601  gcc/testsuite/c-c++-common/cpp/dir-only-11.c
  92a3350e430f3da6be21354b2cc4eb5d  gcc/testsuite/c-c++-common/cpp/dir-only-2.c
  d17c82849bf7f540adedf0e80d9b41df  gcc/testsuite/c-c++-common/cpp/dir-only-3.c
  f120018b9734950cca9c0e7ba0e9a33a  gcc/testsuite/c-c++-common/cpp/dir-only-3a.h
*************** f7fc996e6cb72eb21ae19ef5b5a25faa  gcc/te
*** 12364,12370 ****
  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
--- 19091,19097 ----
  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
! e2ca834621de1ba0afa34e0ce93aafa9  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
*************** b0dbf2ee0d65771fb476f1bead18e214  gcc/te
*** 12383,12389 ****
  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
--- 19110,19116 ----
  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
! fcf0464747305af2fff134506011e1a9  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
*************** c9229fff2e95406401ff0e77f9e25e9b  gcc/te
*** 12396,12402 ****
  ac27af3ea0b119b95109334b03d48ca9  gcc/testsuite/c-c++-common/cpp/openacc-define-3.c
  23d2256fdd9c03d95361e499c9aa5d11  gcc/testsuite/c-c++-common/cpp/openmp-define-1.c
  1ba0ade791f40edbd80fddddb700282b  gcc/testsuite/c-c++-common/cpp/openmp-define-2.c
! 88fdfa7ad0dd8169a90963238ee1847e  gcc/testsuite/c-c++-common/cpp/openmp-define-3.c
  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
--- 19123,19129 ----
  ac27af3ea0b119b95109334b03d48ca9  gcc/testsuite/c-c++-common/cpp/openacc-define-3.c
  23d2256fdd9c03d95361e499c9aa5d11  gcc/testsuite/c-c++-common/cpp/openmp-define-1.c
  1ba0ade791f40edbd80fddddb700282b  gcc/testsuite/c-c++-common/cpp/openmp-define-2.c
! c30e990dc7097f677f1b26dd6e502792  gcc/testsuite/c-c++-common/cpp/openmp-define-3.c
  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
*************** b9707fab2c32f9df25c7136a89dceeb4  gcc/te
*** 12421,12427 ****
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
  63ccfcc2367b0c8566b11e28fb991851  gcc/testsuite/c-c++-common/cpp/pr91639.c
  79d5ce62e7f6d0704d8ac0b6d7cc870e  gcc/testsuite/c-c++-common/cpp/pr92296-1.c
! c4436789b283a10d7409837f19d80dd1  gcc/testsuite/c-c++-common/cpp/pr92296-2.c
  b6cb90fb3ec84953777835b5cfd6e596  gcc/testsuite/c-c++-common/cpp/pr93452-1.c
  f101f9b273696455d853878a2f1bddbd  gcc/testsuite/c-c++-common/cpp/pr93452-2.c
  d2d827c3a2830dd9430591dd49019960  gcc/testsuite/c-c++-common/cpp/pr93545-1.c
--- 19148,19154 ----
  c193497a1a06b2c72230e6146ff47080  gcc/testsuite/c-c++-common/cpp/pr91639-two.h
  63ccfcc2367b0c8566b11e28fb991851  gcc/testsuite/c-c++-common/cpp/pr91639.c
  79d5ce62e7f6d0704d8ac0b6d7cc870e  gcc/testsuite/c-c++-common/cpp/pr92296-1.c
! e67b9f7dc5ad3cabc89a20d7f291197c  gcc/testsuite/c-c++-common/cpp/pr92296-2.c
  b6cb90fb3ec84953777835b5cfd6e596  gcc/testsuite/c-c++-common/cpp/pr93452-1.c
  f101f9b273696455d853878a2f1bddbd  gcc/testsuite/c-c++-common/cpp/pr93452-2.c
  d2d827c3a2830dd9430591dd49019960  gcc/testsuite/c-c++-common/cpp/pr93545-1.c
*************** aa884d944cf2bbf71c7c642a33b7244f  gcc/te
*** 12430,12435 ****
--- 19157,19164 ----
  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
+ 0de1fcdab32c4259957dfd7cb2607fac  gcc/testsuite/c-c++-common/cpp/pr97991-1.c
+ 78b86e942f6ab90a6dd28fc081da8cbb  gcc/testsuite/c-c++-common/cpp/pragma-diagnostic-loc-2.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
*************** f2e2a6171e51d284aef6b4356f338ad3  gcc/te
*** 12444,12450 ****
  adb3860eef253c75b743827724ba1bbc  gcc/testsuite/c-c++-common/cpp/va-opt-3.c
  ffa7f1250b7f00a641ad13c5836e4f01  gcc/testsuite/c-c++-common/cpp/va-opt-4.c
  fd40571567f01233bfa44fa08bec2d16  gcc/testsuite/c-c++-common/cpp/va-opt-5.c
! 859e4cbbaa532f1f681adefb00392657  gcc/testsuite/c-c++-common/cpp/va-opt-6.c
  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
--- 19173,19179 ----
  adb3860eef253c75b743827724ba1bbc  gcc/testsuite/c-c++-common/cpp/va-opt-3.c
  ffa7f1250b7f00a641ad13c5836e4f01  gcc/testsuite/c-c++-common/cpp/va-opt-4.c
  fd40571567f01233bfa44fa08bec2d16  gcc/testsuite/c-c++-common/cpp/va-opt-5.c
! 3099ea13587eb3f02611d0a5ef7106ce  gcc/testsuite/c-c++-common/cpp/va-opt-6.c
  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
*************** ec9404dfa572066d29306781114781a5  gcc/te
*** 12544,12556 ****
  b55d67c31827320a4218c9bfa118857d  gcc/testsuite/c-c++-common/dfp/struct-layout-1.c
  48d67f7f36d890f8419440d99f232731  gcc/testsuite/c-c++-common/dfp/usual-arith-conv-const.c
  c0e0d2f46bf19ec2b6f3291f97a1ac27  gcc/testsuite/c-c++-common/dfp/usual-arith-conv.c
- e875feed3fbc0c6cae26a5abe73fc228  gcc/testsuite/c-c++-common/diagnostic-format-json-1.c
- 3d431c26ca20706b6d8fd7ca4bbffb24  gcc/testsuite/c-c++-common/diagnostic-format-json-2.c
- 1e998e17399e068819c47f49168322e3  gcc/testsuite/c-c++-common/diagnostic-format-json-3.c
- 20d4929d803c94e1e7030bc15d14b163  gcc/testsuite/c-c++-common/diagnostic-format-json-4.c
- 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
--- 19273,19278 ----
*************** f4eb480d84c0d74ec37a6a42e4f034f6  gcc/te
*** 12641,12652 ****
  a485c2cf2b8fb5018ff6ffa1d09b0291  gcc/testsuite/c-c++-common/fold-masked-cmp-1.c
  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
--- 19363,19377 ----
  a485c2cf2b8fb5018ff6ffa1d09b0291  gcc/testsuite/c-c++-common/fold-masked-cmp-1.c
  6e779ad03a964087cf36696c444f20e2  gcc/testsuite/c-c++-common/fold-masked-cmp-2.c
  9b3df6f3fe1425a3c20ed01eae079f75  gcc/testsuite/c-c++-common/fold-masked-cmp-3.c
+ e28759bbefe902d098ff4cc989af4c04  gcc/testsuite/c-c++-common/function-like-macro-1.c
+ fb15c6d3a659f7d86eeb505861506fa3  gcc/testsuite/c-c++-common/function-like-macro-2.c
  515d5329012cc0802e7d94f233e276c3  gcc/testsuite/c-c++-common/goacc-gomp/atomic.c
! 77f7e923f565073d456eb38484c59f49  gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c
! dcaef014c9e9702b3fca6ddec1a2820e  gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c
! d15aecbbaf10292641895f69536931a4  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
+ 9703fd0749219513274e64adfc334e7d  gcc/testsuite/c-c++-common/goacc/acc-wait-1.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
*************** a2cd1716ba4f647ad86a615b0dd86f7e  gcc/te
*** 12654,12661 ****
  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
  efb01912a3b48dfbd482291a92ff6dd6  gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized-parloops.c
  9631d05943a9db2055f3c8771eef6532  gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c
--- 19379,19386 ----
  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
! c765bfd7ad3887c5802a26343acfafb2  gcc/testsuite/c-c++-common/goacc/cache-3-1.c
! f4766d490acf4f8b248f9cc49f0aff02  gcc/testsuite/c-c++-common/goacc/cache-3-2.c
  9daa29c22cc0660528399f7d7828729c  gcc/testsuite/c-c++-common/goacc/classify-kernels-parloops.c
  efb01912a3b48dfbd482291a92ff6dd6  gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized-parloops.c
  9631d05943a9db2055f3c8771eef6532  gcc/testsuite/c-c++-common/goacc/classify-kernels-unparallelized.c
*************** d6e804e09d520d0511d19e5f86e70300  gcc/te
*** 12673,12681 ****
  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
--- 19398,19406 ----
  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
! 45e4cca63cc1d17620ef83df0e9e4a00  gcc/testsuite/c-c++-common/goacc/data-clause-1.c
! b57d44bf58cfc49ec32416df06e99da4  gcc/testsuite/c-c++-common/goacc/data-clause-2.c
! 26c15603b490792507c794e5a69053bd  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
*************** e3a0f1c375f36ae3f072b97ca4be8af8  gcc/te
*** 12715,12738 ****
  37219df46c20afb4e83e03c1789b55cd  gcc/testsuite/c-c++-common/goacc/kernels-counter-var-redundant-load.c
  e90e67eac1e22b125385ecd1ca89b7e4  gcc/testsuite/c-c++-common/goacc/kernels-counter-vars-function-scope.c
  1fb43a4a25ac7b34ab3dcbb454fc6f1e  gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
! 9aa4bfb88d24d9625c6eb48089e08c2d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
! 4fc17751a19f8c4386f7d2e0302a18b6  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
! 49ab6ecc064ed1ad888a55e5df3758b1  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c
  6c34e620573d947a285534d49dd6d599  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
! 48f2502f8a0aebf5face12788c440d39  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
  10a6cd5b5bea6d4c0a490f27bdfaa4ed  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
  40c6c02497636688d79b463b16e260d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-1.c
  2b9fc6f430b53ac42803dc761420b14f  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-2.c
  460180cf3f51384ddef2865996da6756  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-3.c
  592dbe3755ee29ce45dbf49f555ea190  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-4.c
! fe5d96992072a9d3fb9d61fd8446a85a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c
  239fc88ffd9c8d6e35cf19523eac2903  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-2.c
! 460cc28afa141bacd2c3cfe0a5454bd9  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c
! 7d4aeebef2f37cd9451f96d7987fdca6  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c
  396acaa01b149b83dd0950563090b67d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104086-1.c
! ef6fb92d74e15384adb96d6c70aaa661  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c
! ef26840544c9405ac2c05fdfbb917785  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c
! d7391c912c27171564f090a9852d75e9  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c
  af37b31b976b1c0c41e3db72c626d179  gcc/testsuite/c-c++-common/goacc/kernels-default-2.c
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
--- 19440,19463 ----
  37219df46c20afb4e83e03c1789b55cd  gcc/testsuite/c-c++-common/goacc/kernels-counter-var-redundant-load.c
  e90e67eac1e22b125385ecd1ca89b7e4  gcc/testsuite/c-c++-common/goacc/kernels-counter-vars-function-scope.c
  1fb43a4a25ac7b34ab3dcbb454fc6f1e  gcc/testsuite/c-c++-common/goacc/kernels-decompose-1.c
! b496522e75b29688f78c00a1583acc83  gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c
! 491ca6d1cdf239fbda6a2254730f447a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100280-1.c
! 81936da55cb1640164626acbe8cd05f8  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c
  6c34e620573d947a285534d49dd6d599  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-2.c
! a21f6b470b83e5873fcb2d224710b451  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c
  10a6cd5b5bea6d4c0a490f27bdfaa4ed  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-4.c
  40c6c02497636688d79b463b16e260d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-1.c
  2b9fc6f430b53ac42803dc761420b14f  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-2.c
  460180cf3f51384ddef2865996da6756  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-3.c
  592dbe3755ee29ce45dbf49f555ea190  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr103836-1-4.c
! 20f4496eaf413eb67fe5bff2594156d4  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c
  239fc88ffd9c8d6e35cf19523eac2903  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-2.c
! fc36ecd816175b10095634ce394788da  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c
! 485df403700ea846e8a9a4fd07386c7d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c
  396acaa01b149b83dd0950563090b67d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104086-1.c
! 9e939f507f699d209269d5b488061a8a  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c
! ef162a1e6178666abf80fa8a2e75572d  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c
! 2e06d64f1a4a729bfef6910eb6734c38  gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c
  af37b31b976b1c0c41e3db72c626d179  gcc/testsuite/c-c++-common/goacc/kernels-default-2.c
  375d0db26deebb908509391d770e8db4  gcc/testsuite/c-c++-common/goacc/kernels-default.c
  e24acb47fd402e8856dba2a851ec9fe1  gcc/testsuite/c-c++-common/goacc/kernels-double-reduction-n.c
*************** be8b041248798e31b7644ec272413df0  gcc/te
*** 12763,12770 ****
  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
--- 19488,19495 ----
  9b1122f9fc7820de1c4da99404849617  gcc/testsuite/c-c++-common/goacc/loop-clauses.c
  943121f9af2ecdb53cd96ba15a3c0258  gcc/testsuite/c-c++-common/goacc/loop-private-1.c
  3af11165090f88ea453d1233129e0e60  gcc/testsuite/c-c++-common/goacc/loop-shape.c
! ed327a55641b5a349bcdb14751857aaf  gcc/testsuite/c-c++-common/goacc/mdc-1.c
! fa0d2d3dcd5f4db4c1134fd92d81cef9  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
*************** e720097f4b123b43a3c8b5618464d511  gcc/te
*** 12803,12809 ****
  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/testsuite/c-c++-common/goacc/privatization-1-routine_gang.c
! 6fc231d62356d29577321237adcdd629  gcc/testsuite/c-c++-common/goacc/readonly-1.c
  4331391e656c6687b80ca7ee79b21e73  gcc/testsuite/c-c++-common/goacc/reduction-1.c
  092e43f68f7f9d80d1358ca7dc48cb59  gcc/testsuite/c-c++-common/goacc/reduction-2.c
  5ff7f03babb3159e96873f29fbebc584  gcc/testsuite/c-c++-common/goacc/reduction-3.c
--- 19528,19534 ----
  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/testsuite/c-c++-common/goacc/privatization-1-routine_gang.c
! 1dfb1f769a2f9018787488996cdc4411  gcc/testsuite/c-c++-common/goacc/readonly-1.c
  4331391e656c6687b80ca7ee79b21e73  gcc/testsuite/c-c++-common/goacc/reduction-1.c
  092e43f68f7f9d80d1358ca7dc48cb59  gcc/testsuite/c-c++-common/goacc/reduction-2.c
  5ff7f03babb3159e96873f29fbebc584  gcc/testsuite/c-c++-common/goacc/reduction-3.c
*************** dc80449bfdca5a99a480536d2e1db33b  gcc/te
*** 12842,12850 ****
  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
--- 19567,19576 ----
  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
! a32724069296bcf35dbe08a48fff1304  gcc/testsuite/c-c++-common/gomp/52-deps.c
! 8cdf9edae68c2b66d3e97537de0539a2  gcc/testsuite/c-c++-common/gomp/Wparentheses-1.c
! 780bb7d52763e64555ef26adda5cd3ad  gcc/testsuite/c-c++-common/gomp/Wparentheses-2.c
! a862d3ab7795b71855090b4b025bf11b  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
*************** d8f3b317a2367cb4501c5836ef9b0229  gcc/te
*** 12853,12860 ****
  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
  614a49f3f358c35cb4a5b15ce97da263  gcc/testsuite/c-c++-common/gomp/affinity-4.c
  9111959cc520a4e29a99b5bb933a762d  gcc/testsuite/c-c++-common/gomp/affinity-5.c
  273d5b4d31c635ddabf92c1100055ab0  gcc/testsuite/c-c++-common/gomp/affinity-6.c
--- 19579,19586 ----
  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
! 02e7c1073f46e6d8b4e8e267c462c39f  gcc/testsuite/c-c++-common/gomp/affinity-2.c
! d02c9c3304cf733e4993fb9b9138d5c0  gcc/testsuite/c-c++-common/gomp/affinity-3.c
  614a49f3f358c35cb4a5b15ce97da263  gcc/testsuite/c-c++-common/gomp/affinity-4.c
  9111959cc520a4e29a99b5bb933a762d  gcc/testsuite/c-c++-common/gomp/affinity-5.c
  273d5b4d31c635ddabf92c1100055ab0  gcc/testsuite/c-c++-common/gomp/affinity-6.c
*************** c8657190839fd03fa2c4693563039a48  gcc/te
*** 12871,12887 ****
  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/testsuite/c-c++-common/gomp/allocate-5.c
  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
--- 19597,19613 ----
  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
! 364941e5a99804690001b372b53f6c4e  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
! 4d623f98d85005df0ec9d97df176d9c4  gcc/testsuite/c-c++-common/gomp/allocate-4.c
  c3809265d6de98b36dec2fb830b674d2  gcc/testsuite/c-c++-common/gomp/allocate-5.c
  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
! 5993d9f71f226f39e46297d435cee65b  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
*************** fe6ba0d7acbbc77e0b1c41bbf1c0f42b  gcc/te
*** 12893,12903 ****
  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
--- 19619,19630 ----
  47aa5a0d0666ea2f83eec37724fd9a0e  gcc/testsuite/c-c++-common/gomp/append-args-dynamic.c
  03c0ab4f1537b1970c672419d7a6c113  gcc/testsuite/c-c++-common/gomp/append-args-interop.c
  6c5acf6facd4d66b41b293f41e8c48e7  gcc/testsuite/c-c++-common/gomp/assume-1.c
! 8b2645274383ff712f17cf9c9ea41def  gcc/testsuite/c-c++-common/gomp/assume-2.c
  9adbf63d6cc6673274053baa4a7406f3  gcc/testsuite/c-c++-common/gomp/assume-3.c
  32f71a409194e932942c40570b74b4c1  gcc/testsuite/c-c++-common/gomp/assume-4.c
+ 64b4ac9b97648cf8c29bd561ccba1359  gcc/testsuite/c-c++-common/gomp/assume-5.c
  fe9e9de178a149d4be1130f4bb6a725d  gcc/testsuite/c-c++-common/gomp/assumes-1.c
! a04d7de81be62c6f374ee7d4802190c1  gcc/testsuite/c-c++-common/gomp/assumes-2.c
  1e08736ed2274dbfec7f233a154f1bff  gcc/testsuite/c-c++-common/gomp/assumes-3.c
  b51a1e730de3aa872bc687140549694a  gcc/testsuite/c-c++-common/gomp/assumes-4.c
  594f9585c33418a75a6d249f9f52a31b  gcc/testsuite/c-c++-common/gomp/atomic-1.c
*************** dcd88cf4442d15fe1ee6cf0c65bec7ba  gcc/te
*** 12932,12945 ****
  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
! be58805a59309ad5d71c49c48877eb34  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-3.c
! 585d8f7a0b28941f42372f69b9fe2c54  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-4.c
! 08ed3f839b805c729a22134e3facfc56  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-5.c
  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
--- 19659,19672 ----
  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
! f7835f108eb41f01bf61bd71db3fac90  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-1.c
! e76795c9de489ba9a9872d1a5ac5c2fd  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-2.c
! 658183f0781f49a6bb4461136267cb49  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-3.c
! a8aa8b1d7a68d1116fc3997dd4b29628  gcc/testsuite/c-c++-common/gomp/attrs-metadirective-4.c
! c225a72a350b303ff6b6bd353cd0bac7  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
! 4376ebe2298a64084539ceba7503c08d  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
*************** cd3281c05e299a8561bdd4a54afc4344  gcc/te
*** 12955,13003 ****
  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
! 936e1a766aaf54b03a099c359cf5f3ce  gcc/testsuite/c-c++-common/gomp/begin-declare-target-2.c
  c736b176de0876f0cfa7bf6da1edba17  gcc/testsuite/c-c++-common/gomp/begin-declare-target-3.c
  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
  8d9ef02ce9840a58a8c64026e4df30b2  gcc/testsuite/c-c++-common/gomp/clauses-4.c
  4495a5b525e167ab62035c686fc8d83b  gcc/testsuite/c-c++-common/gomp/clauses-5.c
! fb5ac32eda4e938a1684263a6f7ccfa9  gcc/testsuite/c-c++-common/gomp/clauses-6.c
  70b3d73007bef6b23ec15bb120cb88ca  gcc/testsuite/c-c++-common/gomp/combined-1.c
  8971b0fe4f2bfd550f584e814610f06e  gcc/testsuite/c-c++-common/gomp/combined-2.c
  4a818b745d1f8704ddb0479a4cad1ca2  gcc/testsuite/c-c++-common/gomp/combined-3.c
  bfb7ec61cc1300767edd2730dd158b24  gcc/testsuite/c-c++-common/gomp/critical-1.c
  c572ac0bc0904c15b451df6870cc393d  gcc/testsuite/c-c++-common/gomp/critical-2.c
! 4f4730edc635e08ce7fb782360034e79  gcc/testsuite/c-c++-common/gomp/declare-target-1.c
! b4cf3cba2eeac62573f40aac959d463d  gcc/testsuite/c-c++-common/gomp/declare-target-2.c
! 5d9813953c9a6b9aeeb4294adf1df6e1  gcc/testsuite/c-c++-common/gomp/declare-target-3.c
! 7f193f6ce9a8d0456ff0bd3677a8921f  gcc/testsuite/c-c++-common/gomp/declare-target-4.c
! bd8b4a8c817f542091fc2d7fded4917a  gcc/testsuite/c-c++-common/gomp/declare-target-5.c
  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
! 2f33249e4eedd90971280884a3c04cab  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
--- 19682,19740 ----
  da9e724ebf1cfa046b19721a8b466bb9  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-4.c
  5106705e54d915caa043f36d2a6bd90e  gcc/testsuite/c-c++-common/gomp/attrs-unroll-inner-5.c
  7051a84e085d73ad6267c8c04512579d  gcc/testsuite/c-c++-common/gomp/begin-assumes-1.c
! 846c45b738fd066f81ec08e8734d2785  gcc/testsuite/c-c++-common/gomp/begin-assumes-2.c
  766d3b7f45920c36b59eb198aff18d97  gcc/testsuite/c-c++-common/gomp/begin-assumes-3.c
  e60d9448f0f0bde479d4c59ba577deac  gcc/testsuite/c-c++-common/gomp/begin-assumes-4.c
! aa2e96c23bd551116e39ec68eb9f2cbc  gcc/testsuite/c-c++-common/gomp/begin-declare-target-1.c
! af214b06bdbe273a96343eed66fa9ff1  gcc/testsuite/c-c++-common/gomp/begin-declare-target-2.c
  c736b176de0876f0cfa7bf6da1edba17  gcc/testsuite/c-c++-common/gomp/begin-declare-target-3.c
  aa6f51f0ce9ba32480d8b3eddf2e9835  gcc/testsuite/c-c++-common/gomp/begin-declare-target-4.c
! fc18dca9ca9c5db3a9297405a01b1376  gcc/testsuite/c-c++-common/gomp/cancel-1.c
  192802715f9a6395e2ccf6ce992c4fee  gcc/testsuite/c-c++-common/gomp/cancel-2.c
! 777f4addf7c7d758291b4583ce759cbe  gcc/testsuite/c-c++-common/gomp/clause-dups-1.c
! 1d2b3f731ff41e629e59d5e531c2696d  gcc/testsuite/c-c++-common/gomp/clauses-1.c
  d5ffe3929242394b820f074d90b6869f  gcc/testsuite/c-c++-common/gomp/clauses-2.c
! cab7710efed273c604884629ac042306  gcc/testsuite/c-c++-common/gomp/clauses-3.c
  8d9ef02ce9840a58a8c64026e4df30b2  gcc/testsuite/c-c++-common/gomp/clauses-4.c
  4495a5b525e167ab62035c686fc8d83b  gcc/testsuite/c-c++-common/gomp/clauses-5.c
! 4b7c496e8a5692fc13da93ba79f6464e  gcc/testsuite/c-c++-common/gomp/clauses-6.c
  70b3d73007bef6b23ec15bb120cb88ca  gcc/testsuite/c-c++-common/gomp/combined-1.c
  8971b0fe4f2bfd550f584e814610f06e  gcc/testsuite/c-c++-common/gomp/combined-2.c
  4a818b745d1f8704ddb0479a4cad1ca2  gcc/testsuite/c-c++-common/gomp/combined-3.c
  bfb7ec61cc1300767edd2730dd158b24  gcc/testsuite/c-c++-common/gomp/critical-1.c
  c572ac0bc0904c15b451df6870cc393d  gcc/testsuite/c-c++-common/gomp/critical-2.c
! cb01db9e31422d2aeabb9b538ed127e4  gcc/testsuite/c-c++-common/gomp/declare-mapper-10.c
! 5c9c560c086262d32a4f6b30aee2d54b  gcc/testsuite/c-c++-common/gomp/declare-mapper-11.c
! 9ff51a41887aad9526944e993a5a0a19  gcc/testsuite/c-c++-common/gomp/declare-mapper-12.c
! 71ef2f37cadeab4baf5501bbdd2241f4  gcc/testsuite/c-c++-common/gomp/declare-mapper-3.c
! 2619b0487cae48530ad103fbc2632fc3  gcc/testsuite/c-c++-common/gomp/declare-mapper-4.c
! 230e3c87df45ddf84188f7b5a5a4bb0e  gcc/testsuite/c-c++-common/gomp/declare-mapper-5.c
! dcd1e9ab9770a159f8a1f17c76bd1b03  gcc/testsuite/c-c++-common/gomp/declare-mapper-6.c
! da6887a595231a43cf61133bb43acdb5  gcc/testsuite/c-c++-common/gomp/declare-mapper-7.c
! ff19abdaca7330b11f4fe567c52cdd16  gcc/testsuite/c-c++-common/gomp/declare-mapper-8.c
! b3db7e455b5c08954578749d93304a57  gcc/testsuite/c-c++-common/gomp/declare-mapper-9.c
! c78f87c3b228d477e18288e37caca1c1  gcc/testsuite/c-c++-common/gomp/declare-target-1.c
! 916fd6ef6eeb6926f284142e6cb708f4  gcc/testsuite/c-c++-common/gomp/declare-target-2.c
! c4c81261ab4127b6a0bbe971b9acbc34  gcc/testsuite/c-c++-common/gomp/declare-target-3.c
! c82babc412aeb2917de54cc70785dd50  gcc/testsuite/c-c++-common/gomp/declare-target-4.c
! cef199b2ac3b6df806e9791adbe1837e  gcc/testsuite/c-c++-common/gomp/declare-target-5.c
  a5fd6a4672c9f8415dc9097c3c6acb93  gcc/testsuite/c-c++-common/gomp/declare-target-6.c
! 07b8730a9b60de6c3a3cf3397b48958b  gcc/testsuite/c-c++-common/gomp/declare-target-7.c
! 914bc6f46b6e82013627cd163d74cca8  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-1.c
! 6c041e39f64577f58b6d48cfa40088b3  gcc/testsuite/c-c++-common/gomp/declare-target-indirect-2.c
! b2da38787311d78c52bd778474283bd8  gcc/testsuite/c-c++-common/gomp/declare-variant-1.c
! 098a4a76256cd6dbe35f493541dc8a2b  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
! 059142b95b32f7ffdb91d8344de017bc  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
! 65733800196967e06155d829d9211065  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
*************** a43075bfd5e3a19a46ccc11ca1bf4aaa  gcc/te
*** 13010,13033 ****
  5fb2c1ff7f22a7db37e361c51d486872  gcc/testsuite/c-c++-common/gomp/default-2.c
  53f1dfff816cc4e84b475f89e062973d  gcc/testsuite/c-c++-common/gomp/default-3.c
  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
! 6252c7733cc10415438eac4ecc8f3741  gcc/testsuite/c-c++-common/gomp/depend-3.c
! 685c37a890fe3f63baeef038dca54d42  gcc/testsuite/c-c++-common/gomp/depend-4.c
! 90e9e15dcfe2bb1bc2d07cc4f05b3bb5  gcc/testsuite/c-c++-common/gomp/depend-5.c
! 96ee24acfb0236cf20bc30472bd80148  gcc/testsuite/c-c++-common/gomp/depend-6.c
! 4a7e69295838b1320de92a6b5208a196  gcc/testsuite/c-c++-common/gomp/depend-iterator-1.c
! 3ec0d6b08677a898631647adbce575dc  gcc/testsuite/c-c++-common/gomp/depend-iterator-2.c
! 4d7c198a6e5377f63eba24e105bd8430  gcc/testsuite/c-c++-common/gomp/depobj-1.c
  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
--- 19747,19779 ----
  5fb2c1ff7f22a7db37e361c51d486872  gcc/testsuite/c-c++-common/gomp/default-2.c
  53f1dfff816cc4e84b475f89e062973d  gcc/testsuite/c-c++-common/gomp/default-3.c
  210213fef63c2c9f7b4d77ee3540dfd2  gcc/testsuite/c-c++-common/gomp/defaultmap-1.c
! 99c742d6d0fcfbd3a593b489056b24bc  gcc/testsuite/c-c++-common/gomp/defaultmap-2.c
! 513b7bcfbdbc2ad024201756058fee02  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
! ad82484ae3db61dc57577a2ef69f594f  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-1.c
! b64e7998243f5f8554b4619141869744  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-2.c
! 6422d9620980bf522c8ed047da96dea8  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-3.c
! db2e3139983be94ec49f7df82bc52abe  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-4.c
! 0a575b9d1f47f689bbff139344dcebb6  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-5.c
! dc59de1726c9c568ff4dd8a7b44c2292  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-6.c
! 0217fdee8fc967ffe48472ff4392acfc  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-7.c
! ae6293030dff77f1ce8fa61579f6de6e  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-8.c
! cc441d2ec9bf665e8ec39a8eccd34398  gcc/testsuite/c-c++-common/gomp/delim-declare-variant-9.c
! 96b54f1e36a96b3caa9d606586774bce  gcc/testsuite/c-c++-common/gomp/depend-1.c
! 2c2d88f2098339c4becca3899135982f  gcc/testsuite/c-c++-common/gomp/depend-2.c
! 2a22d1d78ad123967e1e22b80f35281b  gcc/testsuite/c-c++-common/gomp/depend-3.c
! fff73b9cb320e504bdddc09ac0026be4  gcc/testsuite/c-c++-common/gomp/depend-4.c
! a1a97cef83578cd658a8a025db89e271  gcc/testsuite/c-c++-common/gomp/depend-5.c
! 23c22db41ea3bb7ef9861240bdea36af  gcc/testsuite/c-c++-common/gomp/depend-6.c
! 2dc7306fdcb1b93c05e3de91784a9634  gcc/testsuite/c-c++-common/gomp/depend-iterator-1.c
! b1ad2a59e6fba70ef111e485676c62f1  gcc/testsuite/c-c++-common/gomp/depend-iterator-2.c
! 08673b87a6fc8b70260dbaac7cfaffaf  gcc/testsuite/c-c++-common/gomp/depobj-1.c
  b0614882466e367a20795bf8a724df2a  gcc/testsuite/c-c++-common/gomp/depobj-2.c
  2a1fa5f3e1fe8821515948afb685410b  gcc/testsuite/c-c++-common/gomp/depobj-3.c
! d4d1e920a71df25902d43c55e6f12bb3  gcc/testsuite/c-c++-common/gomp/directive-1.c
! cc57a55c5ffadf14a7fc057b08775c61  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
*************** a226cffa1831fc0ce3e0c1c6e4f6880f  gcc/te
*** 13039,13053 ****
  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
! c9f7d4328381112d463ae5d7abf05d6b  gcc/testsuite/c-c++-common/gomp/doacross-3.c
! b80b407c1b236d995633edd987b92089  gcc/testsuite/c-c++-common/gomp/doacross-4.c
  f9a6444ebc4a1c55c546158d2ff21ead  gcc/testsuite/c-c++-common/gomp/doacross-5.c
  0f10333a8a4f6bda70dd11c725bbcfdb  gcc/testsuite/c-c++-common/gomp/doacross-6.c
  a31dd2f434001d3bdc2d6760064602a4  gcc/testsuite/c-c++-common/gomp/doacross-7.c
! db5184f418f1fcff4229563335cdcac7  gcc/testsuite/c-c++-common/gomp/doacross-8.c
  5a70f931f3d1911a210ec6155240d4dc  gcc/testsuite/c-c++-common/gomp/element-1.c
  56193fbd64f093dd570f7f9543fd8e9e  gcc/testsuite/c-c++-common/gomp/error-1.c
  fa360c10a44a15ddb815a286fa0f2658  gcc/testsuite/c-c++-common/gomp/error-2.c
--- 19785,19801 ----
  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
! ea104786f19c702ff9f4b0780b366ede  gcc/testsuite/c-c++-common/gomp/distribute-1.c
! af208b1b8a46ce0e4419aa226c6fbb26  gcc/testsuite/c-c++-common/gomp/doacross-1.c
! 59e0827b9b718899b4667bb17060e062  gcc/testsuite/c-c++-common/gomp/doacross-2.c
! 7e53ac4d2dd78c93f6f6301e46dfaa62  gcc/testsuite/c-c++-common/gomp/doacross-3.c
! 60770a90001612662086f0fe305cbcb8  gcc/testsuite/c-c++-common/gomp/doacross-4.c
  f9a6444ebc4a1c55c546158d2ff21ead  gcc/testsuite/c-c++-common/gomp/doacross-5.c
  0f10333a8a4f6bda70dd11c725bbcfdb  gcc/testsuite/c-c++-common/gomp/doacross-6.c
  a31dd2f434001d3bdc2d6760064602a4  gcc/testsuite/c-c++-common/gomp/doacross-7.c
! 44d22e30f7c7a04fc13f60ed51adb5c7  gcc/testsuite/c-c++-common/gomp/doacross-8.c
! 6c455748c0cbe2d54888be9d633d0fc8  gcc/testsuite/c-c++-common/gomp/dyn_groupprivate-1.c
! 782e0dbe604e4a5d5d27115b264395ec  gcc/testsuite/c-c++-common/gomp/dyn_groupprivate-2.c
  5a70f931f3d1911a210ec6155240d4dc  gcc/testsuite/c-c++-common/gomp/element-1.c
  56193fbd64f093dd570f7f9543fd8e9e  gcc/testsuite/c-c++-common/gomp/error-1.c
  fa360c10a44a15ddb815a286fa0f2658  gcc/testsuite/c-c++-common/gomp/error-2.c
*************** b057ecd7a4beaa9561fa8fa6d3f3128f  gcc/te
*** 13061,13066 ****
--- 19809,19815 ----
  ad68611dd933bed25a8c937612a58830  gcc/testsuite/c-c++-common/gomp/for-5.c
  950c6183fde386cc5d3fa35c2805eeb0  gcc/testsuite/c-c++-common/gomp/for-6.c
  b9f70a44108d3410396c88c5623b3919  gcc/testsuite/c-c++-common/gomp/for-7.c
+ 65d6afb7dedb6ef49728ff7a0f9fe0b5  gcc/testsuite/c-c++-common/gomp/groupprivate-1.c
  1216c6524ff3a9bfcf178bb37b9b3961  gcc/testsuite/c-c++-common/gomp/has-include-1.c
  23583f36afaee374633de54a6b57a3e6  gcc/testsuite/c-c++-common/gomp/if-1.c
  1a907f0d46c82ea2b68fa098d75a6865  gcc/testsuite/c-c++-common/gomp/if-2.c
*************** f1e2872c9870ff3696c124d6645f86df  gcc/te
*** 13076,13118 ****
  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
  94c1c42c60585a077f568d5bea528077  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-5.c
! 2e0840d181813aec1108fbd34f344fea  gcc/testsuite/c-c++-common/gomp/linear-1.c
! 361c8125c17070e6c93fe9d05fb2da1a  gcc/testsuite/c-c++-common/gomp/linear-2.c
! 75194c4de3abb9ff5be59d8b4da49ab6  gcc/testsuite/c-c++-common/gomp/linear-3.c
  b68341f23c6484278c5d49bb55e6bed6  gcc/testsuite/c-c++-common/gomp/linear-4.c
! ab07b5a124255abaa1fd1c7350a95ec7  gcc/testsuite/c-c++-common/gomp/loop-1.c
  1eefa1e4ebf9306f021a466fbfb0458a  gcc/testsuite/c-c++-common/gomp/loop-10.c
  d28fa472d0ed4264e8bf9d4545e77ae5  gcc/testsuite/c-c++-common/gomp/loop-11.c
! 98a2a47c678a83b550ad02b4645cb7b0  gcc/testsuite/c-c++-common/gomp/loop-2.c
! 9592f2cca3c5fd7c0e8fd9da7cb178d1  gcc/testsuite/c-c++-common/gomp/loop-3.c
! 96f80819d26df95994ad31e806db9ad9  gcc/testsuite/c-c++-common/gomp/loop-4.c
! f57f51983db80a2fd1be027e87767d44  gcc/testsuite/c-c++-common/gomp/loop-5.c
! 3e772c5747e617d6611630ea849e25ab  gcc/testsuite/c-c++-common/gomp/loop-6.c
  576203a21b3e04e83b9327037d1c1809  gcc/testsuite/c-c++-common/gomp/loop-7.c
  bbbe92047177151542b6ff825d52c4e4  gcc/testsuite/c-c++-common/gomp/loop-8.c
  67e2138fdf955d87a5868fe981258015  gcc/testsuite/c-c++-common/gomp/loop-9.c
! 6b8389c7145e0ad858f6b5fe2cab60e4  gcc/testsuite/c-c++-common/gomp/map-1.c
! 6ec7216703861e0dcd0752796794b32b  gcc/testsuite/c-c++-common/gomp/map-2.c
! 84b32011b7cc61bdab96dc5182d6fa16  gcc/testsuite/c-c++-common/gomp/map-3.c
! f26a9793012d174bb469a5a2bbe88ed8  gcc/testsuite/c-c++-common/gomp/map-4.c
  277cedbcd2effa8734f83ed409ddc325  gcc/testsuite/c-c++-common/gomp/map-5.c
! 3f07002bcd055fe038597454af146bd9  gcc/testsuite/c-c++-common/gomp/map-6.c
! b8e110ebbec9c6db80b28e633ae2f67e  gcc/testsuite/c-c++-common/gomp/map-7.c
  44f82c91ea0443cfcfe48ff2e2ad3f49  gcc/testsuite/c-c++-common/gomp/map-8.c
  3e29caf558ff43e0252f11af669e8da4  gcc/testsuite/c-c++-common/gomp/map-9.c
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
--- 19825,19867 ----
  ff6a71100f3f7a2fe3d8debe700ad80d  gcc/testsuite/c-c++-common/gomp/imperfect-legacy-syntax.c
  1c4197447b9674fb1e39072ef393bbc2  gcc/testsuite/c-c++-common/gomp/imperfect-loop-nest.c
  eea399211a9f1137be12f5d33a7e7d51  gcc/testsuite/c-c++-common/gomp/imperfect-pragmas.c
! b9d88d108c745b4e3081bed63ab09d03  gcc/testsuite/c-c++-common/gomp/imperfect1.c
  0d6cd0d0faac055678389c689c1461f6  gcc/testsuite/c-c++-common/gomp/imperfect2.c
  f7b26726f2f7cbd96dd84eb2d5428f35  gcc/testsuite/c-c++-common/gomp/imperfect3.c
! 8024c1aa80ee63e68c3f195fbc01ef5d  gcc/testsuite/c-c++-common/gomp/imperfect4.c
  518ccc21aa7b1998ac49e2cd98ca274c  gcc/testsuite/c-c++-common/gomp/imperfect5.c
  34fe8adccacf3cb878c5dc72708a48f9  gcc/testsuite/c-c++-common/gomp/interop-1.c
  0765b8f778e0167a47937ba5c8c49a9c  gcc/testsuite/c-c++-common/gomp/interop-2.c
  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
! 6334fc030851fee80503150684e5e016  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
  94c1c42c60585a077f568d5bea528077  gcc/testsuite/c-c++-common/gomp/lastprivate-conditional-5.c
! cba7cef127b54663f9d3c96f6ae29a3c  gcc/testsuite/c-c++-common/gomp/linear-1.c
! 3039955a8fc7cdd1a2a61ba456413e4f  gcc/testsuite/c-c++-common/gomp/linear-2.c
! 50296edd0abf37b13799023ee30c7512  gcc/testsuite/c-c++-common/gomp/linear-3.c
  b68341f23c6484278c5d49bb55e6bed6  gcc/testsuite/c-c++-common/gomp/linear-4.c
! 8cf8764a09ee14856860000dd7d8099c  gcc/testsuite/c-c++-common/gomp/loop-1.c
  1eefa1e4ebf9306f021a466fbfb0458a  gcc/testsuite/c-c++-common/gomp/loop-10.c
  d28fa472d0ed4264e8bf9d4545e77ae5  gcc/testsuite/c-c++-common/gomp/loop-11.c
! 4c7201b7c9db0b10af90a8372af6076f  gcc/testsuite/c-c++-common/gomp/loop-2.c
! 2db61d9d37857dfdc7acb2fa396aba3d  gcc/testsuite/c-c++-common/gomp/loop-3.c
! 18c4a21a470f3f3581da79b21c5634a2  gcc/testsuite/c-c++-common/gomp/loop-4.c
! a3272b452f6fd0011c49180d75e7b205  gcc/testsuite/c-c++-common/gomp/loop-5.c
! 0e5ecd8b8c9cdd84398ae025b38f672d  gcc/testsuite/c-c++-common/gomp/loop-6.c
  576203a21b3e04e83b9327037d1c1809  gcc/testsuite/c-c++-common/gomp/loop-7.c
  bbbe92047177151542b6ff825d52c4e4  gcc/testsuite/c-c++-common/gomp/loop-8.c
  67e2138fdf955d87a5868fe981258015  gcc/testsuite/c-c++-common/gomp/loop-9.c
! 8da70a5247e132a8efa279bb49f619b7  gcc/testsuite/c-c++-common/gomp/map-1.c
! c344f817350996173949d094733f67be  gcc/testsuite/c-c++-common/gomp/map-2.c
! 42caca9fac0b797494697225f198c522  gcc/testsuite/c-c++-common/gomp/map-3.c
! db038278199fc73220fb4647e0497ea0  gcc/testsuite/c-c++-common/gomp/map-4.c
  277cedbcd2effa8734f83ed409ddc325  gcc/testsuite/c-c++-common/gomp/map-5.c
! 814e1f038b9c7666d70236f83f92fa5a  gcc/testsuite/c-c++-common/gomp/map-6.c
! 2692678faa474fcf195a2428df6fb5e5  gcc/testsuite/c-c++-common/gomp/map-7.c
  44f82c91ea0443cfcfe48ff2e2ad3f49  gcc/testsuite/c-c++-common/gomp/map-8.c
  3e29caf558ff43e0252f11af669e8da4  gcc/testsuite/c-c++-common/gomp/map-9.c
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
*************** d5ee74feb13dd8875f12132dccfe8126  gcc/te
*** 13120,13143 ****
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
  cfaa12085558b78e5edbdb4a338479d2  gcc/testsuite/c-c++-common/gomp/masked-combined-1.c
  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
! 4064a5f9f31ac05197a3719255169379  gcc/testsuite/c-c++-common/gomp/metadirective-3.c
! c4c693d3bd497dda156e8c80f281ec9f  gcc/testsuite/c-c++-common/gomp/metadirective-4.c
! 41fd3da8d6c55ec28cc82c985ac26db9  gcc/testsuite/c-c++-common/gomp/metadirective-5.c
  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
! 76caa2cd758ae2f6b329164c66f75a05  gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.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
  ce3fb89f1513613421cc620156235d68  gcc/testsuite/c-c++-common/gomp/nontemporal-1.c
  22a3481e8c3df4f0596de8f67dab0a59  gcc/testsuite/c-c++-common/gomp/nontemporal-2.c
--- 19869,19895 ----
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
  cfaa12085558b78e5edbdb4a338479d2  gcc/testsuite/c-c++-common/gomp/masked-combined-1.c
  6e3cc2570637ae982148840ff511645f  gcc/testsuite/c-c++-common/gomp/masked-combined-2.c
! 33991433a8d5fe2997502d08681126b9  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
! 4a5d49059dabcb1d7cf61373c2a995e5  gcc/testsuite/c-c++-common/gomp/master-combined-2.c
! a42964c64b7225261056bf2b2623f076  gcc/testsuite/c-c++-common/gomp/master-construct-dep.c
! b5a164e1ce999382ee655ad25a3d0c1f  gcc/testsuite/c-c++-common/gomp/metadirective-1.c
! 03a515a1e3597cf520d2d68b34480806  gcc/testsuite/c-c++-common/gomp/metadirective-2.c
! 42e3945ca7e0e1949e36b38821736b78  gcc/testsuite/c-c++-common/gomp/metadirective-3.c
! f51c12e12aa9d6e328b32af5cc76dcac  gcc/testsuite/c-c++-common/gomp/metadirective-4.c
! 6047952e1ccee66b2bec8128ef0cb301  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
! d85304880c7b01ea07b7dc3c78a37186  gcc/testsuite/c-c++-common/gomp/metadirective-8.c
! c28fc6e101bf84c9d67bd2c517baab12  gcc/testsuite/c-c++-common/gomp/metadirective-condition-constexpr.c
! 8485d76d1824f228789b67d7d2a1ebd7  gcc/testsuite/c-c++-common/gomp/metadirective-condition.c
! 75e4b3338350ed5352d72c946de8a8e3  gcc/testsuite/c-c++-common/gomp/metadirective-construct.c
! 69e32c2f57a34cb1c4a8f6753ba9cd28  gcc/testsuite/c-c++-common/gomp/metadirective-device.c
! 7c91be054d86d927a2f10a75976a8761  gcc/testsuite/c-c++-common/gomp/metadirective-error-recovery.c
  6b4e94542efc1bd9b8aeafa5fe783d4d  gcc/testsuite/c-c++-common/gomp/metadirective-no-score.c
! a9313b0e00e046685ddf52d897b7e00a  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-1.c
! 5f6a7994ed16fabfb01d2a0a93f68c05  gcc/testsuite/c-c++-common/gomp/metadirective-target-device-2.c
  6fa2115821b7e05f4b4772c894f7cf12  gcc/testsuite/c-c++-common/gomp/nesting-1.c
! f37000e541a6c64d3750a6bb2830b0f5  gcc/testsuite/c-c++-common/gomp/nesting-2.c
  406abd50996addc0929156835a0b5686  gcc/testsuite/c-c++-common/gomp/nesting-warn-1.c
  ce3fb89f1513613421cc620156235d68  gcc/testsuite/c-c++-common/gomp/nontemporal-1.c
  22a3481e8c3df4f0596de8f67dab0a59  gcc/testsuite/c-c++-common/gomp/nontemporal-2.c
*************** ce3fb89f1513613421cc620156235d68  gcc/te
*** 13145,13183 ****
  a8cae7afccfdaf5c55701d1fd623cbae  gcc/testsuite/c-c++-common/gomp/nothing-2.c
  314d7c905d7b458917321c534f1d5520  gcc/testsuite/c-c++-common/gomp/num-teams-1.c
  9284f2bc3ab39d4db900b0510ab44cb3  gcc/testsuite/c-c++-common/gomp/num-teams-2.c
  6edff4d259a25d0cbbd6bd788efd47b2  gcc/testsuite/c-c++-common/gomp/ompx-1.c
  a53bfb3d3f3e9c540d6b019fcc527fa4  gcc/testsuite/c-c++-common/gomp/ompx-2.c
  a5b411651a6f93c5cf3ce9b7c306c2e4  gcc/testsuite/c-c++-common/gomp/order-1.c
! e576d3919b1276ac29fcd10c2af0e650  gcc/testsuite/c-c++-common/gomp/order-2.c
  db900e16f622568df37b1e202fd25b9f  gcc/testsuite/c-c++-common/gomp/order-3.c
  2c96377fc6a30d8bf8d1cd396f082ca2  gcc/testsuite/c-c++-common/gomp/order-4.c
  e8952d612b22320252f24d04beb2a8c4  gcc/testsuite/c-c++-common/gomp/order-5.c
  06c6eba3d88519d1f5d47f8bff4ee5bd  gcc/testsuite/c-c++-common/gomp/order-6.c
  346e1047ae41de5d851736fb41185adb  gcc/testsuite/c-c++-common/gomp/ordered-1.c
  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/testsuite/c-c++-common/gomp/pr101535-2.c
  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
! dfca692e0ac01a45a3200798a153ebf1  gcc/testsuite/c-c++-common/gomp/pr120180.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
--- 19897,19945 ----
  a8cae7afccfdaf5c55701d1fd623cbae  gcc/testsuite/c-c++-common/gomp/nothing-2.c
  314d7c905d7b458917321c534f1d5520  gcc/testsuite/c-c++-common/gomp/num-teams-1.c
  9284f2bc3ab39d4db900b0510ab44cb3  gcc/testsuite/c-c++-common/gomp/num-teams-2.c
+ 9085b42a44ff867d1851e43156fab957  gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device-2.c
+ 835e56c803ebf6e088e108546f2f4ccf  gcc/testsuite/c-c++-common/gomp/omp_get_num_devices_initial_device.c
  6edff4d259a25d0cbbd6bd788efd47b2  gcc/testsuite/c-c++-common/gomp/ompx-1.c
  a53bfb3d3f3e9c540d6b019fcc527fa4  gcc/testsuite/c-c++-common/gomp/ompx-2.c
  a5b411651a6f93c5cf3ce9b7c306c2e4  gcc/testsuite/c-c++-common/gomp/order-1.c
! dde98055342a9a3a28134ae4aa3487f1  gcc/testsuite/c-c++-common/gomp/order-2.c
  db900e16f622568df37b1e202fd25b9f  gcc/testsuite/c-c++-common/gomp/order-3.c
  2c96377fc6a30d8bf8d1cd396f082ca2  gcc/testsuite/c-c++-common/gomp/order-4.c
  e8952d612b22320252f24d04beb2a8c4  gcc/testsuite/c-c++-common/gomp/order-5.c
  06c6eba3d88519d1f5d47f8bff4ee5bd  gcc/testsuite/c-c++-common/gomp/order-6.c
  346e1047ae41de5d851736fb41185adb  gcc/testsuite/c-c++-common/gomp/ordered-1.c
  ef86bb29dfbea0543e8ca02ce440c823  gcc/testsuite/c-c++-common/gomp/ordered-2.c
! c62f3d0b8c701613fe55319de78f95a8  gcc/testsuite/c-c++-common/gomp/ordered-3.c
  5e682cf26c41baf2449ab35ba5792ab9  gcc/testsuite/c-c++-common/gomp/ordered-4.c
! 1782aa907206d89e5ba52dde92e19afd  gcc/testsuite/c-c++-common/gomp/ordered-5.c
  7c7abae5700e726f7de5bd56574429f5  gcc/testsuite/c-c++-common/gomp/pr100450.c
! 2b8b119b5f899b06ebe333d5a4fe09a6  gcc/testsuite/c-c++-common/gomp/pr100902-1.c
  345ac275dfe65e2e8ba683d2c389ebc3  gcc/testsuite/c-c++-common/gomp/pr101535-1.c
  b3c3fe5a4ecc31231711cb240274d62c  gcc/testsuite/c-c++-common/gomp/pr101535-2.c
  5d5843e74a197943e19c270c43a913e1  gcc/testsuite/c-c++-common/gomp/pr102431.c
  6c331d01569cfa98850571463b5b3cc7  gcc/testsuite/c-c++-common/gomp/pr102432.c
! b8eb3737c47823dad07903fceeebbb91  gcc/testsuite/c-c++-common/gomp/pr102640.c
! adad7bd5c50995330c12e8103e6790a5  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
! 3d9e94c8e115054717bd37077a05606a  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
+ af061b10e337b521ba63a13731d4f5c7  gcc/testsuite/c-c++-common/gomp/pr113436-1.c
+ c39bbf010ba2028abc3ac9fe01a48744  gcc/testsuite/c-c++-common/gomp/pr113436-2.c
  80b170be7a344fbbe661e68535fc79c5  gcc/testsuite/c-c++-common/gomp/pr118579.c
  e8f7b694ebd3603789b6992bc816222d  gcc/testsuite/c-c++-common/gomp/pr118639.c
  d29126c43ce63e6c41ed6130742b15e2  gcc/testsuite/c-c++-common/gomp/pr118965-1.c
  424bcc14d1a0bf87f576aafc485996e9  gcc/testsuite/c-c++-common/gomp/pr118965-2.c
  c83ce004951a9a0719e190f7457302c7  gcc/testsuite/c-c++-common/gomp/pr119000.c
! 250f54e2a193f434f875e2caf2868bc6  gcc/testsuite/c-c++-common/gomp/pr120052.c
! d6f3e72d7fc95edbabd5b36d39abf504  gcc/testsuite/c-c++-common/gomp/pr120180-1.c
! 46f67781e5603b2bc3c978d0c4f81881  gcc/testsuite/c-c++-common/gomp/pr120180-2.c
! c315375dde6dfd35915ac372415190a8  gcc/testsuite/c-c++-common/gomp/pr120564.c
! 5a0fc856eddf5869c1607a51a511b91b  gcc/testsuite/c-c++-common/gomp/pr121452-1.c
! 25357ab83549c772c7f308537e5445cf  gcc/testsuite/c-c++-common/gomp/pr121452-2.c
! e237cffddf611dba2776c6e54f0719b6  gcc/testsuite/c-c++-common/gomp/pr122866.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
*** 13199,13206 ****
  9bc9ad8b454ddee130fb534cf08c4f0e  gcc/testsuite/c-c++-common/gomp/pr60823-3.c
  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
--- 19961,19968 ----
  9bc9ad8b454ddee130fb534cf08c4f0e  gcc/testsuite/c-c++-common/gomp/pr60823-3.c
  83d8f65d36e02aa02588d7b997bdd269  gcc/testsuite/c-c++-common/gomp/pr60823-4.c
  1610228a9a46a0984cc32fd91d652f9f  gcc/testsuite/c-c++-common/gomp/pr61200.c
! 5d62c24a3f7ca5be3884ca9fa737f5ee  gcc/testsuite/c-c++-common/gomp/pr61486-1.c
! 31b80d849d5a28052dd6f5c4458c91ee  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
*************** d4234712e8b6ad1706a38530b6e6d890  gcc/te
*** 13220,13270 ****
  0c4f14dc0d4f392e3f8ebc8a86ed2e2f  gcc/testsuite/c-c++-common/gomp/pr79429.c
  aef2bdc20ca665badeb6ae399bf1d7e0  gcc/testsuite/c-c++-common/gomp/pr79431.c
  a1d1201800784f60e84899ae25155f9b  gcc/testsuite/c-c++-common/gomp/pr79512.c
! 61e2ab40aa3cda7576749f11b6037c39  gcc/testsuite/c-c++-common/gomp/pr81006.c
  7fcacaaefa9f2c7cfe81a0b52e82cebc  gcc/testsuite/c-c++-common/gomp/pr81887.c
  f518663bb6d3fa214257a2306172d690  gcc/testsuite/c-c++-common/gomp/pr83977-1.c
  2f7e224eea72eb9533c2b8dc9b23926c  gcc/testsuite/c-c++-common/gomp/pr83977-2.c
  5ed693b15605c7a6113e875ba1444a17  gcc/testsuite/c-c++-common/gomp/pr83977-3.c
  5c98b968b8b8fa3dcda75ece1f760d12  gcc/testsuite/c-c++-common/gomp/pr84341.c
! fb9e5ede5d43a206c572fa77be49ff02  gcc/testsuite/c-c++-common/gomp/pr85696.c
! 5a052f00b5f1b3e9b85f4ae57c40cd3f  gcc/testsuite/c-c++-common/gomp/pr85956.c
  62a0e309912895235f385cc84af32654  gcc/testsuite/c-c++-common/gomp/pr86025.c
! 87ee1aaaafc85753df32bcb01994259d  gcc/testsuite/c-c++-common/gomp/pr88203-1.c
! 1f30700143a21b49cf9723cf4b9afff4  gcc/testsuite/c-c++-common/gomp/pr88203-2.c
! e083342c345fbf82eb1bd2fc11805647  gcc/testsuite/c-c++-common/gomp/pr88203-3.c
  0e989c3d25d634c553662814c966233e  gcc/testsuite/c-c++-common/gomp/pr88588.c
  61ca8b866c491c9064a5bbfddd90f421  gcc/testsuite/c-c++-common/gomp/pr90954.c
  819ef14711cd571111df09cc81f8d206  gcc/testsuite/c-c++-common/gomp/pr91401-1.c
! b5b3167776d67985ba91daaee41243de  gcc/testsuite/c-c++-common/gomp/pr91401-2.c
! e4152974615471671fa0299b4121889f  gcc/testsuite/c-c++-common/gomp/pr91920.c
! c47f7acdcdd1614c035f4f07306fc305  gcc/testsuite/c-c++-common/gomp/pr91987.c
  bfdfa56ffe2ff48534494fc41ae0f4d1  gcc/testsuite/c-c++-common/gomp/pr93555-1.c
  b31fd83ffcebdfef84e1d323888e9a76  gcc/testsuite/c-c++-common/gomp/pr93555-2.c
  5099f2ef60912770f0c4404cf9b2c25b  gcc/testsuite/c-c++-common/gomp/pr94874.c
  df4d5a9505c92f441e5ea85708315fed  gcc/testsuite/c-c++-common/gomp/pr96424.c
! 2d2174ea1983262434b1c948662fa390  gcc/testsuite/c-c++-common/gomp/pr96867.c
  16407f97a063776e00434477f996fecf  gcc/testsuite/c-c++-common/gomp/pr97289.c
  164aefc7e8183e2dba0d1ca04fc30cad  gcc/testsuite/c-c++-common/gomp/pr97862.c
  ae2ea6f7d6a1c903e63c85894d80fa1f  gcc/testsuite/c-c++-common/gomp/pr97958.c
! 5f698bea3b17b89ee6b2d1f2c4d53245  gcc/testsuite/c-c++-common/gomp/pr98187.c
  ca8127e06402e403622dc86e29c1968a  gcc/testsuite/c-c++-common/gomp/pr99226.c
  c256c2058eeb3e746f5e3aa43e5ef703  gcc/testsuite/c-c++-common/gomp/pr99322.c
! c1255515899e883bf101b8fe9669ddb2  gcc/testsuite/c-c++-common/gomp/pr99928-1.c
! 70eb1900010f320f470971a222064987  gcc/testsuite/c-c++-common/gomp/pr99928-10.c
! c5857956820c1e5a99f8582d85f4edfb  gcc/testsuite/c-c++-common/gomp/pr99928-11.c
! ecc136fa73d3794c39f5db17e7e1bf89  gcc/testsuite/c-c++-common/gomp/pr99928-12.c
! 86b220f458eae9523d2d9ffaea28bfde  gcc/testsuite/c-c++-common/gomp/pr99928-13.c
! d2840e9245156eb839b5d29ba5d04813  gcc/testsuite/c-c++-common/gomp/pr99928-14.c
  0fe7c8f841c4d50dbdc412ced09bdc5f  gcc/testsuite/c-c++-common/gomp/pr99928-15.c
! b0234431895813833f4cb4751ffcf698  gcc/testsuite/c-c++-common/gomp/pr99928-16.c
! 01e5e6c358c1b2bda2f912c662479951  gcc/testsuite/c-c++-common/gomp/pr99928-2.c
! 27c451c1baffe80971c04424e2db95ed  gcc/testsuite/c-c++-common/gomp/pr99928-3.c
! 3a7443fce23b0e51df79d4de738fb3aa  gcc/testsuite/c-c++-common/gomp/pr99928-4.c
! b08ed6597bae58dc36345d182457b284  gcc/testsuite/c-c++-common/gomp/pr99928-5.c
! 8118a0357c6e9834a6d55e44534aa7e7  gcc/testsuite/c-c++-common/gomp/pr99928-6.c
! edd476c7cf2235802faddcd9994b240a  gcc/testsuite/c-c++-common/gomp/pr99928-7.c
! 40dfbce0df2820963a349d5fc46aa1bc  gcc/testsuite/c-c++-common/gomp/pr99928-8.c
! bb6de6a22e5ed8a789047eb3e5ce9194  gcc/testsuite/c-c++-common/gomp/pr99928-9.c
  9163b15a47c5f6fdd167e356b13cc71d  gcc/testsuite/c-c++-common/gomp/pragma-1.c
  ec917d1b32d82ceef9c2bdec8d8da20c  gcc/testsuite/c-c++-common/gomp/pragma-2.c
  7ab8fe292315282ada2f81fce2270d05  gcc/testsuite/c-c++-common/gomp/pragma-3.c
--- 19982,20033 ----
  0c4f14dc0d4f392e3f8ebc8a86ed2e2f  gcc/testsuite/c-c++-common/gomp/pr79429.c
  aef2bdc20ca665badeb6ae399bf1d7e0  gcc/testsuite/c-c++-common/gomp/pr79431.c
  a1d1201800784f60e84899ae25155f9b  gcc/testsuite/c-c++-common/gomp/pr79512.c
! 86c5579b579304de0763cd5ccb5d34c1  gcc/testsuite/c-c++-common/gomp/pr81006.c
  7fcacaaefa9f2c7cfe81a0b52e82cebc  gcc/testsuite/c-c++-common/gomp/pr81887.c
  f518663bb6d3fa214257a2306172d690  gcc/testsuite/c-c++-common/gomp/pr83977-1.c
  2f7e224eea72eb9533c2b8dc9b23926c  gcc/testsuite/c-c++-common/gomp/pr83977-2.c
  5ed693b15605c7a6113e875ba1444a17  gcc/testsuite/c-c++-common/gomp/pr83977-3.c
  5c98b968b8b8fa3dcda75ece1f760d12  gcc/testsuite/c-c++-common/gomp/pr84341.c
! c8bfa681b0dc2a64a21af52b0bda9c3d  gcc/testsuite/c-c++-common/gomp/pr85696.c
! 0db3b99e52888d9c9b44d879fcf8e946  gcc/testsuite/c-c++-common/gomp/pr85956.c
  62a0e309912895235f385cc84af32654  gcc/testsuite/c-c++-common/gomp/pr86025.c
! 41850c6a0c361bc573c86d759542ff85  gcc/testsuite/c-c++-common/gomp/pr88203-1.c
! 16d2ddfecb394141fcbe78725045d4d1  gcc/testsuite/c-c++-common/gomp/pr88203-2.c
! 52a20d34e61ca3fa5262a033c804b76e  gcc/testsuite/c-c++-common/gomp/pr88203-3.c
  0e989c3d25d634c553662814c966233e  gcc/testsuite/c-c++-common/gomp/pr88588.c
  61ca8b866c491c9064a5bbfddd90f421  gcc/testsuite/c-c++-common/gomp/pr90954.c
  819ef14711cd571111df09cc81f8d206  gcc/testsuite/c-c++-common/gomp/pr91401-1.c
! 1905c7c8bb8f357e31d042cbcd521110  gcc/testsuite/c-c++-common/gomp/pr91401-2.c
! b3f9ad4f2faec8588c2227d327169f98  gcc/testsuite/c-c++-common/gomp/pr91920.c
! 9a5db8d6155df9de99b821289e98c104  gcc/testsuite/c-c++-common/gomp/pr91987.c
  bfdfa56ffe2ff48534494fc41ae0f4d1  gcc/testsuite/c-c++-common/gomp/pr93555-1.c
  b31fd83ffcebdfef84e1d323888e9a76  gcc/testsuite/c-c++-common/gomp/pr93555-2.c
  5099f2ef60912770f0c4404cf9b2c25b  gcc/testsuite/c-c++-common/gomp/pr94874.c
  df4d5a9505c92f441e5ea85708315fed  gcc/testsuite/c-c++-common/gomp/pr96424.c
! 634555b205c8283a875f5b5db0fd3609  gcc/testsuite/c-c++-common/gomp/pr96867.c
  16407f97a063776e00434477f996fecf  gcc/testsuite/c-c++-common/gomp/pr97289.c
  164aefc7e8183e2dba0d1ca04fc30cad  gcc/testsuite/c-c++-common/gomp/pr97862.c
+ 5ded39755e2eb5b05d78367d1cce31e1  gcc/testsuite/c-c++-common/gomp/pr97898-1.c
  ae2ea6f7d6a1c903e63c85894d80fa1f  gcc/testsuite/c-c++-common/gomp/pr97958.c
! c57346a518f23fd991e5f885ae2d15ea  gcc/testsuite/c-c++-common/gomp/pr98187.c
  ca8127e06402e403622dc86e29c1968a  gcc/testsuite/c-c++-common/gomp/pr99226.c
  c256c2058eeb3e746f5e3aa43e5ef703  gcc/testsuite/c-c++-common/gomp/pr99322.c
! 1174032f6ae3a8ed110dc73d8cf54a9a  gcc/testsuite/c-c++-common/gomp/pr99928-1.c
! b82449e75195510388f591a4c01a17f2  gcc/testsuite/c-c++-common/gomp/pr99928-10.c
! 1e203e3451fae937a1314da71a5c0145  gcc/testsuite/c-c++-common/gomp/pr99928-11.c
! f6f82a7bc823fabb9b48935a5fc5a748  gcc/testsuite/c-c++-common/gomp/pr99928-12.c
! d1f78cf052f54d11a4e2000b13275285  gcc/testsuite/c-c++-common/gomp/pr99928-13.c
! 07053136bccb4df5cbab6cbca90abf63  gcc/testsuite/c-c++-common/gomp/pr99928-14.c
  0fe7c8f841c4d50dbdc412ced09bdc5f  gcc/testsuite/c-c++-common/gomp/pr99928-15.c
! 6e2f48832695b8716c9560557d9ebeff  gcc/testsuite/c-c++-common/gomp/pr99928-16.c
! d6a4af3f9da043e553e6f63618b69850  gcc/testsuite/c-c++-common/gomp/pr99928-2.c
! 474879d06c5c2a6fc6280be1cf2f81c0  gcc/testsuite/c-c++-common/gomp/pr99928-3.c
! f69c8f53942d9a17a67859f05f07535f  gcc/testsuite/c-c++-common/gomp/pr99928-4.c
! 2b3737070cee8f826cd0944ba391850b  gcc/testsuite/c-c++-common/gomp/pr99928-5.c
! ba655106d772e7a869cb8c18019f4372  gcc/testsuite/c-c++-common/gomp/pr99928-6.c
! 4425b60ca3b953fecab970041b11c25d  gcc/testsuite/c-c++-common/gomp/pr99928-7.c
! 0388f3ae9f586238fc3220d3297ec77d  gcc/testsuite/c-c++-common/gomp/pr99928-8.c
! 09e807cb09a4b6a3bc80e1b3587f5b8c  gcc/testsuite/c-c++-common/gomp/pr99928-9.c
  9163b15a47c5f6fdd167e356b13cc71d  gcc/testsuite/c-c++-common/gomp/pragma-1.c
  ec917d1b32d82ceef9c2bdec8d8da20c  gcc/testsuite/c-c++-common/gomp/pragma-2.c
  7ab8fe292315282ada2f81fce2270d05  gcc/testsuite/c-c++-common/gomp/pragma-3.c
*************** f4385174b55a4a8fa770e9d647279749  gcc/te
*** 13272,13278 ****
  94d691e11060c430935cb6245bd9ef01  gcc/testsuite/c-c++-common/gomp/pragma-5.c
  4d836e95ee0b1c17dd96690f60fc38ea  gcc/testsuite/c-c++-common/gomp/pragma-omp-unknown.c
  5d522e2f1f7455bc45f6c1f230d5a5b0  gcc/testsuite/c-c++-common/gomp/priority-1.c
! a5ab254ee603749ef9330558229e6163  gcc/testsuite/c-c++-common/gomp/reduction-1.c
  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
--- 20035,20041 ----
  94d691e11060c430935cb6245bd9ef01  gcc/testsuite/c-c++-common/gomp/pragma-5.c
  4d836e95ee0b1c17dd96690f60fc38ea  gcc/testsuite/c-c++-common/gomp/pragma-omp-unknown.c
  5d522e2f1f7455bc45f6c1f230d5a5b0  gcc/testsuite/c-c++-common/gomp/priority-1.c
! e444ad99603236df0a9c0aaad51e515e  gcc/testsuite/c-c++-common/gomp/reduction-1.c
  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
*************** cbab216a8de36785197d4e800a979308  gcc/te
*** 13284,13291 ****
  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
--- 20047,20054 ----
  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
! b5e0716808ae1e4913144f783517e6f2  gcc/testsuite/c-c++-common/gomp/reverse-offload-1.c
! d9099abb95b3aa925b93c1cd8e3a018f  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/te
*** 13293,13299 ****
  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
  0ec2e2f575568924dc191f53badc3e5d  gcc/testsuite/c-c++-common/gomp/schedule-simd-1.c
  53548358c583f3560b346d6cccb7c834  gcc/testsuite/c-c++-common/gomp/scope-1.c
--- 20056,20062 ----
  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
! 67f96e7a06232d9ddf2c2926d87eb850  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  5924e1e32a4e62ad7e1324d01a4ed89e  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-2.c
  0ec2e2f575568924dc191f53badc3e5d  gcc/testsuite/c-c++-common/gomp/schedule-simd-1.c
  53548358c583f3560b346d6cccb7c834  gcc/testsuite/c-c++-common/gomp/scope-1.c
*************** dee5af747bd0ddc9371dcb5f4acebedc  gcc/te
*** 13313,13325 ****
  46e92b35d2398a842688290ab9b4d326  gcc/testsuite/c-c++-common/gomp/simd7.c
  cbcc4bef361026a7cc530337842d4576  gcc/testsuite/c-c++-common/gomp/simd8.c
  4763c84e6c50d72fa161297e3be84c0c  gcc/testsuite/c-c++-common/gomp/single1.c
! 844fb7ecb682dca6450572fb8b60782a  gcc/testsuite/c-c++-common/gomp/sink-1.c
! 1c82cae2e7ce3866f8094c1dd264cbae  gcc/testsuite/c-c++-common/gomp/sink-2.c
! ee53749fe1ce6195a2d3af75b4e8d7fb  gcc/testsuite/c-c++-common/gomp/sink-3.c
! 0c93f7b88c30539ace084df2f4c7f5ae  gcc/testsuite/c-c++-common/gomp/sink-4.c
! c95f2cef3c7fd923368769c2f5efbc75  gcc/testsuite/c-c++-common/gomp/sink-5.c
  0749f498cf83f772934b8604c900cb5e  gcc/testsuite/c-c++-common/gomp/target-50.c
! 0f606c818aafa917b4e4ca06798a0500  gcc/testsuite/c-c++-common/gomp/target-data-1.c
  6e2b1e79dd9e5bf80f1786de4ce0d44f  gcc/testsuite/c-c++-common/gomp/target-data-2.c
  606d31321e7d5d4bd5f862677a31ccf9  gcc/testsuite/c-c++-common/gomp/target-data-3.c
  cb81da252c32b67e25bcb9e0177c3269  gcc/testsuite/c-c++-common/gomp/target-device-1.c
--- 20076,20088 ----
  46e92b35d2398a842688290ab9b4d326  gcc/testsuite/c-c++-common/gomp/simd7.c
  cbcc4bef361026a7cc530337842d4576  gcc/testsuite/c-c++-common/gomp/simd8.c
  4763c84e6c50d72fa161297e3be84c0c  gcc/testsuite/c-c++-common/gomp/single1.c
! 522837eb6e38eb50d487b2abe0b24c55  gcc/testsuite/c-c++-common/gomp/sink-1.c
! e38699fc95591670923b1df8841251b7  gcc/testsuite/c-c++-common/gomp/sink-2.c
! 7aac68734460bf454d498a860bb03ca9  gcc/testsuite/c-c++-common/gomp/sink-3.c
! 6c4597989f8cc9ca199c5c5346ec81d4  gcc/testsuite/c-c++-common/gomp/sink-4.c
! 1ec786685b936c4598e96899e26e0365  gcc/testsuite/c-c++-common/gomp/sink-5.c
  0749f498cf83f772934b8604c900cb5e  gcc/testsuite/c-c++-common/gomp/target-50.c
! 7dd2999f2d02373b3e86e73ae2f05008  gcc/testsuite/c-c++-common/gomp/target-data-1.c
  6e2b1e79dd9e5bf80f1786de4ce0d44f  gcc/testsuite/c-c++-common/gomp/target-data-2.c
  606d31321e7d5d4bd5f862677a31ccf9  gcc/testsuite/c-c++-common/gomp/target-data-3.c
  cb81da252c32b67e25bcb9e0177c3269  gcc/testsuite/c-c++-common/gomp/target-device-1.c
*************** a89d3bc336c39386e5c41b412c5cadf6  gcc/te
*** 13329,13352 ****
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! 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
! b1764366c6f492a5e181e374576a2120  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
  ecaf3261edcbdf06b45669d051546ad3  gcc/testsuite/c-c++-common/gomp/target-update-1.c
! 25d48772fc72e3c1f8e2192ec44ffb95  gcc/testsuite/c-c++-common/gomp/task-detach-1.c
  1bc40a217ad51b17433b0b59c1491757  gcc/testsuite/c-c++-common/gomp/task-detach-2.c
  f1e648ba677e52a9fa9d8897002b52a4  gcc/testsuite/c-c++-common/gomp/task-detach-3.c
  bd7a4a612b8188086bf0650fb29a279a  gcc/testsuite/c-c++-common/gomp/taskloop-reduction-1.c
  2308634fac41b5571bbc8ecf6a185772  gcc/testsuite/c-c++-common/gomp/taskwait-depend-1.c
  8c3ceab30b17d7db76563ec581ddede2  gcc/testsuite/c-c++-common/gomp/taskwait-depend-nowait-1.c
  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
--- 20092,20124 ----
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! f293c0a7e739752d474b940558985611  gcc/testsuite/c-c++-common/gomp/target-device-type-1.c
! 66e2be8c890c4523436f834850ae75a5  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
! 8c2b82227fc84e1d964bb4a1b2f14f03  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
  9595c5abb9f5235642349714ba09d690  gcc/testsuite/c-c++-common/gomp/target-implicit-map-1.c
! a58a326fc0bf7895719faa1320e03029  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
! efc9a1ea706c31b0d18f03ed7004c09e  gcc/testsuite/c-c++-common/gomp/target-map-iterators-1.c
! a6be8d491b81e2bd5a132e54885fb1c2  gcc/testsuite/c-c++-common/gomp/target-map-iterators-2.c
! e87cc72174c798e3391c3b978ab190ca  gcc/testsuite/c-c++-common/gomp/target-map-iterators-3.c
! d290e10563b5dcd9cbe022f9ce9d118d  gcc/testsuite/c-c++-common/gomp/target-map-iterators-4.c
! 2ac7469e11f49a373777f14d12d0458a  gcc/testsuite/c-c++-common/gomp/target-map-iterators-6.c
! 5d53b03c5014dede6e0f732cc32d3856  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
  ecaf3261edcbdf06b45669d051546ad3  gcc/testsuite/c-c++-common/gomp/target-update-1.c
! e807b465f51f25bc3e564cb1576543d7  gcc/testsuite/c-c++-common/gomp/target-update-iterators-1.c
! 0f6b04454d158c1ca276ecc2763de98f  gcc/testsuite/c-c++-common/gomp/target-update-iterators-2.c
! 5a3145767cf31c903624fc08a8be5e8a  gcc/testsuite/c-c++-common/gomp/target-update-iterators-3.c
! 3e94cc26d4b0039e4d3efc66900f1480  gcc/testsuite/c-c++-common/gomp/task-detach-1.c
  1bc40a217ad51b17433b0b59c1491757  gcc/testsuite/c-c++-common/gomp/task-detach-2.c
  f1e648ba677e52a9fa9d8897002b52a4  gcc/testsuite/c-c++-common/gomp/task-detach-3.c
  bd7a4a612b8188086bf0650fb29a279a  gcc/testsuite/c-c++-common/gomp/taskloop-reduction-1.c
  2308634fac41b5571bbc8ecf6a185772  gcc/testsuite/c-c++-common/gomp/taskwait-depend-1.c
  8c3ceab30b17d7db76563ec581ddede2  gcc/testsuite/c-c++-common/gomp/taskwait-depend-nowait-1.c
  539c731e3f7fd40b1bf0432a8a02c04f  gcc/testsuite/c-c++-common/gomp/teams-1.c
! e9e7f42c9b1a5bd14983696136a79f15  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
*************** dbc9807bc9d36dca6cbe7c26bce4a0fd  gcc/te
*** 13380,13385 ****
--- 20152,20162 ----
  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
+ c67d4ce1ba8835a7d5bba95cfee6a999  gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c
+ c990dbb84715f7cae212333d6c10df66  gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c
+ f467d80ae7a5dcb6ae64d06010a6bccd  gcc/testsuite/c-c++-common/gomp/uses_allocators-4.c
+ 068da7e739dbe5d90ada7169c0588ca2  gcc/testsuite/c-c++-common/gomp/uses_allocators-7.c
+ 09abc1993aff1439d6ea61d49f882f7a  gcc/testsuite/c-c++-common/gomp/uses_allocators-8.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
*************** a8b3fb1dfe0aa7409a4df00a9542f7d1  gcc/te
*** 13439,13445 ****
  e4d5eb20b188e55ac6a64e3c0c9e8df6  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-0.c
  928a71af15ece19316f60b8b76f62be0  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-1.c
  6147638e8e5113273815f41efd4e4931  gcc/testsuite/c-c++-common/hwasan/stack-tagging-disable.c
! c805f0e50b68c0f1a9a99f61e7123fb6  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c
  f007ef6d3bbb6f88e9353821e2968665  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-1.c
  1fbd8299c2c3ee5f64745cb409cdd269  gcc/testsuite/c-c++-common/hwasan/use-after-free.c
  bba3e5f76d60be2248ea21348a139c98  gcc/testsuite/c-c++-common/hwasan/vararray-outside-caught.c
--- 20216,20222 ----
  e4d5eb20b188e55ac6a64e3c0c9e8df6  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-0.c
  928a71af15ece19316f60b8b76f62be0  gcc/testsuite/c-c++-common/hwasan/stack-tagging-basic-1.c
  6147638e8e5113273815f41efd4e4931  gcc/testsuite/c-c++-common/hwasan/stack-tagging-disable.c
! 5aaa9693bcdb6b04ec029292423b5b6d  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-0.c
  f007ef6d3bbb6f88e9353821e2968665  gcc/testsuite/c-c++-common/hwasan/unprotected-allocas-1.c
  1fbd8299c2c3ee5f64745cb409cdd269  gcc/testsuite/c-c++-common/hwasan/use-after-free.c
  bba3e5f76d60be2248ea21348a139c98  gcc/testsuite/c-c++-common/hwasan/vararray-outside-caught.c
*************** a68a4cf86f443ff3cc492bde894e586e  gcc/te
*** 13494,13500 ****
  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
--- 20271,20277 ----
  4e2a067ab29f18120b0bede028b43a13  gcc/testsuite/c-c++-common/musttail1.c
  c9a9219124d8f7c1c02217d2c93959b6  gcc/testsuite/c-c++-common/musttail12.c
  bd69977908c34d29f64c9be660e0bd22  gcc/testsuite/c-c++-common/musttail13.c
! 5fb4982ecad7732f9c785e943e9e9b86  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/te
*** 13503,13509 ****
  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
--- 20280,20286 ----
  f52bbfb57de896ca81cc16ec3167121f  gcc/testsuite/c-c++-common/musttail2.c
  e9cf123b2a982ad0b6fde07af7450413  gcc/testsuite/c-c++-common/musttail20.c
  ef291cb6bc315475ba4f4a438714d081  gcc/testsuite/c-c++-common/musttail21.c
! b1ae310826553d812d501f28fd04a334  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
*************** b462f367b31710a6645647c66da8c83c  gcc/te
*** 13548,13554 ****
  0ad1fe60770cce573f6337c8d24e0fe7  gcc/testsuite/c-c++-common/pr104505.c
  f7797890edb72db96871a3c3582464f4  gcc/testsuite/c-c++-common/pr105186.c
  d5189fe9f7cb5f4a822563c9d438762d  gcc/testsuite/c-c++-common/pr105998.c
- 10c9b11e734e514259fcf9722af7ef2c  gcc/testsuite/c-c++-common/pr106133.c
  8ecfb3e3b043f225123b96e0bf8c3daf  gcc/testsuite/c-c++-common/pr107058.c
  ebd0b7e3acd0cf5b26b12db66f960d0b  gcc/testsuite/c-c++-common/pr107358.c
  e1ef9c58498f72552b0ec84751024b54  gcc/testsuite/c-c++-common/pr107465.c
--- 20325,20330 ----
*************** e1ef9c58498f72552b0ec84751024b54  gcc/te
*** 13557,13565 ****
--- 20333,20343 ----
  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
+ b27edfb18a0a46230f08ed022faced81  gcc/testsuite/c-c++-common/pr111817.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
+ b9a8aec047c2f12c7f72664dd60db31d  gcc/testsuite/c-c++-common/pr118868-1.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
*************** e82c7b7752e66456db57ee27e9f0dea7  gcc/te
*** 13573,13578 ****
--- 20351,20358 ----
  8c1cd068c408ff1fcd80c540de835599  gcc/testsuite/c-c++-common/pr119616.c
  9032f3bb916ba5c274bdfec86c5c4ef5  gcc/testsuite/c-c++-common/pr119618.c
  c9f6665aa9cce2133e7c5f9edba34076  gcc/testsuite/c-c++-common/pr121159.c
+ f938d650e5405e1ae04ff131a9239d66  gcc/testsuite/c-c++-common/pr122188.c
+ 9644c5632092fc15f618c4092e7e502f  gcc/testsuite/c-c++-common/pr123437.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
*************** c03d94813a62c9fafb95c7b8983360ce  gcc/te
*** 13802,13807 ****
--- 20582,20588 ----
  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
+ 06acaaea995b8a5763ef01e309ae0581  gcc/testsuite/c-c++-common/pragma-optimize-1.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
*************** b0b55ab8b53606eec0ee5fabee9aa06a  gcc/te
*** 13829,13835 ****
  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
  a1c15ef5229215f0209411736f5ccdfd  gcc/testsuite/c-c++-common/rotate-1.c
  5b438ca153be076de6ede90b95050821  gcc/testsuite/c-c++-common/rotate-10.c
--- 20610,20616 ----
  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
! 48e18f43d11bf36c4c6b1ff2bb87a50e  gcc/testsuite/c-c++-common/restrict-2.c
  b75f32090613560551fe2b3a16a6bddf  gcc/testsuite/c-c++-common/restrict-4.c
  a1c15ef5229215f0209411736f5ccdfd  gcc/testsuite/c-c++-common/rotate-1.c
  5b438ca153be076de6ede90b95050821  gcc/testsuite/c-c++-common/rotate-10.c
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 13910,13915 ****
--- 20691,20700 ----
  f963895d994b62510e687873776b4ef0  gcc/testsuite/c-c++-common/substring-location-PR-87562-1.c
  a05a712863ab77c00f035dbc3316dcf8  gcc/testsuite/c-c++-common/substring-location-PR-87721.c
  993f3902900220d0ab605caf29f79d05  gcc/testsuite/c-c++-common/taskloop-1.c
+ 5954df765528b3ac48d7c5a17f88a220  gcc/testsuite/c-c++-common/tls-attr-common.c
+ f3abf92df2174103abccf8dffe4c9a1b  gcc/testsuite/c-c++-common/tls-attr-dll.c
+ 870c519d9bdba9a9f38d1a458e552cc6  gcc/testsuite/c-c++-common/tls-attr-le-pic.c
+ 25693c785a14f8775324cf99cc5073d0  gcc/testsuite/c-c++-common/tls-attr-le-pie.c
  e3aa84ea02008121366d37e9c2eba817  gcc/testsuite/c-c++-common/tm/20100127.c
  b5356bca8211268199a255b3416bce8b  gcc/testsuite/c-c++-common/tm/20111206.c
  5a234c929abecaae0de0c8c8352206d7  gcc/testsuite/c-c++-common/tm/abort-1.c
*************** b7f503ea1b7405c820c390c5eba04cb7  gcc/te
*** 13944,13953 ****
  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
! a10b02fb3b2593b2641dfd572427f365  gcc/testsuite/c-c++-common/torture/asm-inline.c
  90cfb4344453aaf961b99512974b93b2  gcc/testsuite/c-c++-common/torture/attr-noinit-1.c
  2b07a0a319f38afa7d1c483f3f6d2e88  gcc/testsuite/c-c++-common/torture/attr-noinit-2.c
  15a337bdd520603b23ac429fcd982ee1  gcc/testsuite/c-c++-common/torture/attr-noinit-3.c
--- 20729,20740 ----
  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
+ 96c0880eb6513d2b016d112d26970588  gcc/testsuite/c-c++-common/toplevel-asm-9.c
+ 2702702014d96e5cdc377c7011894945  gcc/testsuite/c-c++-common/toplevel-extended-asm-1.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
! f897ecaaba7eb5ff5a2b42ebceb35e69  gcc/testsuite/c-c++-common/torture/asm-inline.c
  90cfb4344453aaf961b99512974b93b2  gcc/testsuite/c-c++-common/torture/attr-noinit-1.c
  2b07a0a319f38afa7d1c483f3f6d2e88  gcc/testsuite/c-c++-common/torture/attr-noinit-2.c
  15a337bdd520603b23ac429fcd982ee1  gcc/testsuite/c-c++-common/torture/attr-noinit-3.c
*************** d76466e093fe006789ccb59cf89f01bb  gcc/te
*** 14060,14065 ****
--- 20847,20853 ----
  993b07c1c8f1a0db0b2e9956c1045e2c  gcc/testsuite/c-c++-common/torture/pr117912-1.c
  457a8eeb2f3d9696c824ae9b75b4c721  gcc/testsuite/c-c++-common/torture/pr117912-2.c
  700dd88b5774e08268eb43b2572a7160  gcc/testsuite/c-c++-common/torture/pr117912-3.c
+ c3a3398c777344bf7331095f9c91352e  gcc/testsuite/c-c++-common/torture/pr124086-1.c
  9f1ae2fa915c5159ec134a1894ad5cf1  gcc/testsuite/c-c++-common/torture/pr42834.c
  675e839574d99a5e8a0446f66b3520ca  gcc/testsuite/c-c++-common/torture/pr46137.c
  dad442c09041500a2c414da240f49b82  gcc/testsuite/c-c++-common/torture/pr53505.c
*************** f77090a8c54bd7c9695bd1baea42b2ad  gcc/te
*** 14173,14179 ****
  33e222185e271580e5b1227936c867ca  gcc/testsuite/c-c++-common/ubsan/align-2.c
  fff9a866ffaa3beb1d96455b3c496362  gcc/testsuite/c-c++-common/ubsan/align-3.c
  23a589389435e7f1d0daefd5a3259770  gcc/testsuite/c-c++-common/ubsan/align-4.c
! dcb530cb7f303a23cd60919969cb794b  gcc/testsuite/c-c++-common/ubsan/align-5.c
  90dde247618151c35b3bca50f7c3e3d0  gcc/testsuite/c-c++-common/ubsan/align-6.c
  a7a38e8a32e9f420307680f9fd7c64d0  gcc/testsuite/c-c++-common/ubsan/align-7.c
  30278b21084814925748c526392c249e  gcc/testsuite/c-c++-common/ubsan/align-8.c
--- 20961,20968 ----
  33e222185e271580e5b1227936c867ca  gcc/testsuite/c-c++-common/ubsan/align-2.c
  fff9a866ffaa3beb1d96455b3c496362  gcc/testsuite/c-c++-common/ubsan/align-3.c
  23a589389435e7f1d0daefd5a3259770  gcc/testsuite/c-c++-common/ubsan/align-4.c
! 8b41396a13f67b4dffcda622553e0b71  gcc/testsuite/c-c++-common/ubsan/align-5.c
! 8e08ee7824bcc3f0354e094285c52ae4  gcc/testsuite/c-c++-common/ubsan/align-5a.c
  90dde247618151c35b3bca50f7c3e3d0  gcc/testsuite/c-c++-common/ubsan/align-6.c
  a7a38e8a32e9f420307680f9fd7c64d0  gcc/testsuite/c-c++-common/ubsan/align-7.c
  30278b21084814925748c526392c249e  gcc/testsuite/c-c++-common/ubsan/align-8.c
*************** ab3cfaf3576e4a617a126e1901da04f3  gcc/te
*** 14242,14247 ****
--- 21031,21038 ----
  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
+ 7916d95d8412af44a6e26230a67d2d14  gcc/testsuite/c-c++-common/ubsan/nonnull-8.c
+ f1edfeb969430243d092ee384d8d6c90  gcc/testsuite/c-c++-common/ubsan/nonnull-9.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
*************** c36d540bb12d6ab7f9bd3ae9a8a49d0d  gcc/te
*** 14401,14411 ****
  44cb470ac496c9104f9ab446b1560e39  gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
  a130cf534142b63c04fcccbc34bec806  gcc/testsuite/c-c++-common/ubsan/unreachable-3.c
  44539a557f6f8816209906c319e60abe  gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
! 13dff882c56a41a29de1de7f01742b3e  gcc/testsuite/c-c++-common/ubsan/vla-1.c
  569ad8bee400ed51ff51ba8905941a80  gcc/testsuite/c-c++-common/ubsan/vla-2.c
  e3a7ad4931c8f5cf4f9d6390c12df575  gcc/testsuite/c-c++-common/ubsan/vla-3.c
  9330b358b2885db0f1bed7db562371e4  gcc/testsuite/c-c++-common/ubsan/vla-4.c
! 61cb158dd1c1e7bb459fdb709fbeccc7  gcc/testsuite/c-c++-common/uninit-17.c
  c326a73ef95aa3122b48330894c55bc2  gcc/testsuite/c-c++-common/uninit-D-O0.c
  ab24bda566bd8141b638ddfb37e53301  gcc/testsuite/c-c++-common/uninit-D.c
  c2855c4483fc57b2f236dfe4faba8d41  gcc/testsuite/c-c++-common/uninit-E-O0.c
--- 21192,21202 ----
  44cb470ac496c9104f9ab446b1560e39  gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
  a130cf534142b63c04fcccbc34bec806  gcc/testsuite/c-c++-common/ubsan/unreachable-3.c
  44539a557f6f8816209906c319e60abe  gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
! 70bf8582bdcf7a4972a919375a0bdcb1  gcc/testsuite/c-c++-common/ubsan/vla-1.c
  569ad8bee400ed51ff51ba8905941a80  gcc/testsuite/c-c++-common/ubsan/vla-2.c
  e3a7ad4931c8f5cf4f9d6390c12df575  gcc/testsuite/c-c++-common/ubsan/vla-3.c
  9330b358b2885db0f1bed7db562371e4  gcc/testsuite/c-c++-common/ubsan/vla-4.c
! 8b8dac80880f899f798cdcf887f9be79  gcc/testsuite/c-c++-common/uninit-17.c
  c326a73ef95aa3122b48330894c55bc2  gcc/testsuite/c-c++-common/uninit-D-O0.c
  ab24bda566bd8141b638ddfb37e53301  gcc/testsuite/c-c++-common/uninit-D.c
  c2855c4483fc57b2f236dfe4faba8d41  gcc/testsuite/c-c++-common/uninit-E-O0.c
*************** b1e83f9bc6b530b7ddd4f0c20c53a9a8  gcc/te
*** 14441,14447 ****
  5d6acca78d6032eb97f3a93fe9febcae  gcc/testsuite/c-c++-common/vector-subscript-1.c
  2511a738607e1d446a6d9703c3ef3b38  gcc/testsuite/c-c++-common/vector-subscript-2.c
  ef6e9b2c8a7a001bedcb5c3faa994f8f  gcc/testsuite/c-c++-common/vector-subscript-3.c
! ae35afb456cb68c41f5a93059dc60fb2  gcc/testsuite/c-c++-common/vector-subscript-4.c
  d5979c8f01afa0543858e79b38631193  gcc/testsuite/c-c++-common/vector-subscript-5.c
  f05c0689692cbede80befe82de25dc21  gcc/testsuite/c-c++-common/vector-subscript-6.c
  56058b9ad9459286a2d2062ba00a891b  gcc/testsuite/c-c++-common/vector-subscript-7.c
--- 21232,21238 ----
  5d6acca78d6032eb97f3a93fe9febcae  gcc/testsuite/c-c++-common/vector-subscript-1.c
  2511a738607e1d446a6d9703c3ef3b38  gcc/testsuite/c-c++-common/vector-subscript-2.c
  ef6e9b2c8a7a001bedcb5c3faa994f8f  gcc/testsuite/c-c++-common/vector-subscript-3.c
! 288df402f555929658d01f4aef14dcd5  gcc/testsuite/c-c++-common/vector-subscript-4.c
  d5979c8f01afa0543858e79b38631193  gcc/testsuite/c-c++-common/vector-subscript-5.c
  f05c0689692cbede80befe82de25dc21  gcc/testsuite/c-c++-common/vector-subscript-6.c
  56058b9ad9459286a2d2062ba00a891b  gcc/testsuite/c-c++-common/vector-subscript-7.c
*************** c58be55f0f9b42d63e15276d36dbd399  gcc/te
*** 14463,14472 ****
  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
! 6dbf2bea1d77e1b1a1d788500e5b387e  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
--- 21254,21263 ----
  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
! 8568f00e63b7eab80b14ed076ee683af  gcc/testsuite/cobol.dg/dg.exp
  a1fc188c12430e21de6bc4300334ed8a  gcc/testsuite/cobol.dg/error-1.cob
  25cc9f40c748ffa5428ace6fdad21f50  gcc/testsuite/cobol.dg/fail.cob
! cc6d5d1fecb4b6e7bf5cc019df9d7067  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
*************** d05ac6fedd74d96b8e1466d0110a8fdb  gcc/te
*** 14488,14513 ****
  79adac8c671790504a142ab2392cf927  gcc/testsuite/cobol.dg/group2/259_PERFORM_VARYING_BY_-0.2.out
  291db84fb7e37ae587f8903785b25b1d  gcc/testsuite/cobol.dg/group2/338_Default_Arithmetic__1_.cob
  2901c188067e745960930ae0bfdd4749  gcc/testsuite/cobol.dg/group2/338_Default_Arithmetic__1_.out
  0c8262ef265dd1714f65d56d9efd8a4d  gcc/testsuite/cobol.dg/group2/88_level_with_FALSE_IS_clause.cob
  1d136358908b310454c8f9b5d93e9505  gcc/testsuite/cobol.dg/group2/88_level_with_FILLER.cob
  0daefa9454d2fcfd38eab59b677c2f0b  gcc/testsuite/cobol.dg/group2/88_level_with_THRU.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
  474497d0d9932a1aab0b9170a17813c6  gcc/testsuite/cobol.dg/group2/ADD_CORRESPONDING.cob
  767d019c56f84421d2032de38d5d7a66  gcc/testsuite/cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.cob
  8fd96e62b5175b3043acd696faa33b48  gcc/testsuite/cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.out
! 41b22c71a81bf978936f067a5e86fbca  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rule_8_OPTION_INITIALIZE_with_figconst.cob
! d027fc8d21ca1611a90d0c14e0d761bb  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rule_8_OPTION_INITIALIZE_with_figconst.out
  8f0656d61e90ca0e664146f324d6a710  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_basic_default_versions.cob
  2b1582f66ad9f780abf8a240d7a2362c  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_basic_default_versions.out
  3f46e56a7a70b93a9ec8f0338c27535c  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_with_BASED_item__1_.cob
  330041faa87c3b309191307bb47d50e8  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_with_BASED_item__2_.cob
! 7cd127ee703dda8fd87b3d893fb1a1ac  gcc/testsuite/cobol.dg/group2/ALPHABETIC-LOWER_test.cob
! 4813e57661505d12b8d076d95b58763b  gcc/testsuite/cobol.dg/group2/ALPHABETIC-UPPER_test.cob
! 51db431e076a4f40819ee3a98ebd545b  gcc/testsuite/cobol.dg/group2/ALPHABETIC_test.cob
  9de32e3a40a5725b946d743b98d349f0  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__1_.cob
  aff0f09a3eba923f1e9dbff586adddb7  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__1_.out
  0aa406fd2c4bb80f4a52187ccca601ca  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__2_.cob
--- 21279,21316 ----
  79adac8c671790504a142ab2392cf927  gcc/testsuite/cobol.dg/group2/259_PERFORM_VARYING_BY_-0.2.out
  291db84fb7e37ae587f8903785b25b1d  gcc/testsuite/cobol.dg/group2/338_Default_Arithmetic__1_.cob
  2901c188067e745960930ae0bfdd4749  gcc/testsuite/cobol.dg/group2/338_Default_Arithmetic__1_.out
+ 5a606c5acf353a0c8fc6540716264940  gcc/testsuite/cobol.dg/group2/37-digit_Initialization_of_fundamental_types.cob
+ 02bd2c24bf4d1dce298950f7b67c5344  gcc/testsuite/cobol.dg/group2/37-digit_Initialization_of_fundamental_types.out
  0c8262ef265dd1714f65d56d9efd8a4d  gcc/testsuite/cobol.dg/group2/88_level_with_FALSE_IS_clause.cob
  1d136358908b310454c8f9b5d93e9505  gcc/testsuite/cobol.dg/group2/88_level_with_FILLER.cob
  0daefa9454d2fcfd38eab59b677c2f0b  gcc/testsuite/cobol.dg/group2/88_level_with_THRU.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
+ 88bc9b700248b9cc36e093c7fce181f9  gcc/testsuite/cobol.dg/group2/ACCEPT_FROM_ENVIRONMENT-NAME.cob
+ e65a0ef482febc2d61ef369afadf3ba4  gcc/testsuite/cobol.dg/group2/ACCEPT_FROM_ENVIRONMENT-NAME.out
  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
+ d12c64781ab6183048b2cc8948ce13c9  gcc/testsuite/cobol.dg/group2/ACCEPT_foo_FROM_COMMAND-LINE_1_.cob
+ 9b43b80b1ea37d9faa70e6315e639343  gcc/testsuite/cobol.dg/group2/ADD_1_2_TO_3_GIVING_B.cob
  474497d0d9932a1aab0b9170a17813c6  gcc/testsuite/cobol.dg/group2/ADD_CORRESPONDING.cob
  767d019c56f84421d2032de38d5d7a66  gcc/testsuite/cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.cob
  8fd96e62b5175b3043acd696faa33b48  gcc/testsuite/cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.out
! eae529e9de8401a6b88a0a22f80569c3  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rule_8_OPTION_INITIALIZE_with_figconst.cob
! f9d32a79300147e1b6f95ef2dd537f0f  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rule_8_OPTION_INITIALIZE_with_figconst.out
! c017584c96d9db008dbd43a3a4e80eb2  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9._Without_OPTION_INITIALIZE_Without_-fdefaultbyte___ASCII_.cob
! 963c2eab1347373a7caff1cef7072a29  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9._Without_OPTION_INITIALIZE_Without_-fdefaultbyte___ASCII_.out
! 70376d7db556318e4231a15aea4ed251  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9._Without_OPTION_INITIALIZE_Without_-fdefaultbyte___EBCDIC_.cob
! 963c2eab1347373a7caff1cef7072a29  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9._Without_OPTION_INITIALIZE_Without_-fdefaultbyte___EBCDIC_.out
! 4a0c4a250475c61a244c5da59e37ffe9  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9_Without_OPTION_INITIALIZE_With_-fdefaultbyte___UTF16_.cob
! f6d48526cddb262168b52889a64c9948  gcc/testsuite/cobol.dg/group2/ALLOCATE_Rules_6_-_9_Without_OPTION_INITIALIZE_With_-fdefaultbyte___UTF16_.out
  8f0656d61e90ca0e664146f324d6a710  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_basic_default_versions.cob
  2b1582f66ad9f780abf8a240d7a2362c  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_basic_default_versions.out
  3f46e56a7a70b93a9ec8f0338c27535c  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_with_BASED_item__1_.cob
  330041faa87c3b309191307bb47d50e8  gcc/testsuite/cobol.dg/group2/ALLOCATE___FREE_with_BASED_item__2_.cob
! 9f250755b12af4f0cfee0dbaa5253dfc  gcc/testsuite/cobol.dg/group2/ALPHABETIC-LOWER_test.cob
! 4d2aa3abcd6009a0842ab0946fa0a693  gcc/testsuite/cobol.dg/group2/ALPHABETIC-UPPER_test.cob
! b15475df062d49333d662c7aa08e8504  gcc/testsuite/cobol.dg/group2/ALPHABETIC_test.cob
  9de32e3a40a5725b946d743b98d349f0  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__1_.cob
  aff0f09a3eba923f1e9dbff586adddb7  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__1_.out
  0aa406fd2c4bb80f4a52187ccca601ca  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__2_.cob
*************** fd54d0316d26094ad051387055973254  gcc/te
*** 14517,14529 ****
--- 21320,21362 ----
  7d15adc805acb940d24d04a2ec408e45  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__4_.cob
  32833b6da2fe6c3630d21fccc504eaa4  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__5_.cob
  a759f684e27357ca4bac1c1fecf39802  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__5_.out
+ f93a38458ffd080de21f521e1faae4f3  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__7_.cob
+ 03ca56654b75c244989f7bfc28d23934  gcc/testsuite/cobol.dg/group2/ANY_LENGTH__7_.out
  f8d2ab98ca2b042e089c9758ae3a2b30  gcc/testsuite/cobol.dg/group2/Alphanumeric_MOVE_with_truncation.cob
  ce7bdbfa73ff92ed34eac3534df66e86  gcc/testsuite/cobol.dg/group2/Alphanumeric_MOVE_with_truncation.out
  c7cf12c0e90e1d426210bb32a56623a3  gcc/testsuite/cobol.dg/group2/Alphanumeric_and_binary_numeric.cob
+ 5a8fd329eb7fcb844e4e4e7969944359  gcc/testsuite/cobol.dg/group2/Assorted_SPECIAL-NAMES_CLASS.cob
+ 38ee927ae48950a5b4e104d641a25073  gcc/testsuite/cobol.dg/group2/Assorted_SPECIAL-NAMES_CLASS.out
+ 14cb1915f003e1ae9b721b4fa027a76a  gcc/testsuite/cobol.dg/group2/BINARY_and_COMP-5.cob
+ 02a724680157560a26914ad3e85206a0  gcc/testsuite/cobol.dg/group2/BINARY_and_COMP-5.out
  738b5e86f6b162a7f4b44d0ecfedf06b  gcc/testsuite/cobol.dg/group2/BLANK_WHEN_ZERO.cob
  b13823e6ef73b208ab307bb3612a5ce8  gcc/testsuite/cobol.dg/group2/BLANK_WHEN_ZERO.out
+ a4281300968e70731988a9ad41094250  gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.cob
+ 789716db4f40a28d97c707fee16ad524  gcc/testsuite/cobol.dg/group2/CALL_with_OCCURS_DEPENDING_ON.out
  04bb991b042a76cfcf01bc1c8817a56a  gcc/testsuite/cobol.dg/group2/CALL_with_OMITTED_parameter.cob
  56a12a09adb0c17ac03345d06ae419b3  gcc/testsuite/cobol.dg/group2/CALL_with_OMITTED_parameter.out
+ b4cad73bd9c7606feb792952c7e1ac43  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.cob
+ 2a3e1fc6506b14d50ecf4c86a2e114c9  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.out
+ 43d89ba687f04551cb2d482b5a9f8f1c  gcc/testsuite/cobol.dg/group2/CDF2_Trouble_with___IF__1_.cob
+ a97636852ed3c1cef7c222af9be698e3  gcc/testsuite/cobol.dg/group2/CDF2_Trouble_with___IF__2_.cob
+ cd4ba7916131c25f3ca7dcba0a723e44  gcc/testsuite/cobol.dg/group2/CDF2_Trouble_with___IF__2_.out
+ cbeeb0eeb9e24fdec9f8b657ce6036db  gcc/testsuite/cobol.dg/group2/CDF4_.cob
+ c0fdaba67f0e029f6c711df14aff2b5c  gcc/testsuite/cobol.dg/group2/CDF4_.out
+ 0e74acb334e612c34b7444de407720df  gcc/testsuite/cobol.dg/group2/CDF_Feature_.cob
+ 81d34d393489a576e1cabd0a6aa36347  gcc/testsuite/cobol.dg/group2/CDF_Feature_.out
+ 62c84f60bafa473d44969b22ba0c5d04  gcc/testsuite/cobol.dg/group2/CDF_IS_NOT_DEFINED.cob
+ 57e7f1471032b82113d36c346df36010  gcc/testsuite/cobol.dg/group2/CDF_IS_NOT_DEFINED.out
+ d3f7b1643bb5178ed72ae309cf423be6  gcc/testsuite/cobol.dg/group2/CDF__1__IF____text_.cob
+ a4da8ba1ce55a2596f67672c7c584396  gcc/testsuite/cobol.dg/group2/CDF__1__IF____text_.out
+ 657e2d6b1c060ac07b363b45685402c7  gcc/testsuite/cobol.dg/group2/CDF__2__IF____number_.cob
+ f539e8a1397514a1d5ce9e81d9f3f182  gcc/testsuite/cobol.dg/group2/CDF__2__IF____number_.out
+ 196312a1db228733d68a6da9f58f691a  gcc/testsuite/cobol.dg/group2/CDF__3__ALL_NUMERIC_COMPARISONS.cob
+ 5c7e6b845b362012ce47914890ae49c8  gcc/testsuite/cobol.dg/group2/CDF__3__ALL_NUMERIC_COMPARISONS.out
+ 45a23cbfa83a07f3308b7735822f9264  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.cob
+ 0af968fb266b24c9fd8e9d594d7e28f3  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_ASCII.out
+ 1198387259c0c3ba3f28db9eacec53d9  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.cob
+ 0af968fb266b24c9fd8e9d594d7e28f3  gcc/testsuite/cobol.dg/group2/CHAR_and_ORD_with_COLLATING_sequence_-_EBCDIC.out
+ 5c1021caf45fe8ff3f85f88484c4b27e  gcc/testsuite/cobol.dg/group2/COMP-5_Sanity_Check_.cob
  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
*************** f7e4a3f2c5c85ddeb645aecc5792a186  gcc/te
*** 14549,14562 ****
  33011658a399a6a9be5c37899eb4a306  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__2_.out
  26032dd568fd1bfb10fc1b817396c802  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE.cob
  7d1e4c4461dc538a7b081cd9ab9a781f  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE.out
  0343efd58f9da12b239e6d571691602b  gcc/testsuite/cobol.dg/group2/Complex_IF.cob
  441e3a4f6a2da5b2f89b7f633fa3ad23  gcc/testsuite/cobol.dg/group2/Complex_IF.out
  c3fc0b5b4a5207f75f31c3f153fe63ef  gcc/testsuite/cobol.dg/group2/Concatenation_operator.cob
  cda4428dac30cd85aca26da3ca3f7520  gcc/testsuite/cobol.dg/group2/Concatenation_operator.out
  f3ca8e281db42abc9943d0fa7c38d798  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__3_.cob
  f5497e8935b43ea0c29ad7500d8689a8  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__4_.cob
  40200625b438d75f97febca3f471e303  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__4_.out
! 75bda7768a956ba99eb6b2fd9dcf8af1  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__1_.cob
  b026324c6904b2a9cb4b88d6d61c81d1  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__1_.out
  69df913fbec72ea61e7c149d01effbe8  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__2_.cob
  897316929176464ebc9ad085f31e7284  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__2_.out
--- 21382,21401 ----
  33011658a399a6a9be5c37899eb4a306  gcc/testsuite/cobol.dg/group2/Complex_EVALUATE__2_.out
  26032dd568fd1bfb10fc1b817396c802  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE.cob
  7d1e4c4461dc538a7b081cd9ab9a781f  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE.out
+ 4885ad79dbcacea5aefc7b3c06a2e6a6  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE_-_ASCII_EBCDIC.cob
+ bc9c3feaf3b8988ac971cb14aa62f9b4  gcc/testsuite/cobol.dg/group2/Complex_HEX__VALUE_and_MOVE_-_ASCII_EBCDIC.out
  0343efd58f9da12b239e6d571691602b  gcc/testsuite/cobol.dg/group2/Complex_IF.cob
  441e3a4f6a2da5b2f89b7f633fa3ad23  gcc/testsuite/cobol.dg/group2/Complex_IF.out
+ af1c1b610f0cfd57ea5f2dac953cf214  gcc/testsuite/cobol.dg/group2/Complex_INITIALIZE_with_nested_tables__1_.cob
+ 67de1743f1747295bafa6eeaf0de9f70  gcc/testsuite/cobol.dg/group2/Complex_INITIALIZE_with_nested_tables__1_.out
+ 4992f6cde63fd3073c466427b22fd18a  gcc/testsuite/cobol.dg/group2/Complex_INITIALIZE_with_nested_tables__2_.cob
+ d10e3dae7438baabc01243fafad4ec8b  gcc/testsuite/cobol.dg/group2/Complex_INITIALIZE_with_nested_tables__2_.out
  c3fc0b5b4a5207f75f31c3f153fe63ef  gcc/testsuite/cobol.dg/group2/Concatenation_operator.cob
  cda4428dac30cd85aca26da3ca3f7520  gcc/testsuite/cobol.dg/group2/Concatenation_operator.out
  f3ca8e281db42abc9943d0fa7c38d798  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__3_.cob
  f5497e8935b43ea0c29ad7500d8689a8  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__4_.cob
  40200625b438d75f97febca3f471e303  gcc/testsuite/cobol.dg/group2/Contained_program_visibility__4_.out
! 4eb2f9c844fb72bfa3108769e24f3469  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__1_.cob
  b026324c6904b2a9cb4b88d6d61c81d1  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__1_.out
  69df913fbec72ea61e7c149d01effbe8  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__2_.cob
  897316929176464ebc9ad085f31e7284  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__2_.out
*************** b026324c6904b2a9cb4b88d6d61c81d1  gcc/te
*** 14572,14578 ****
  fe9d26c3e620eeb69bd166c8be89fb8f  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__7_.out
  b3d5fc2d4df2b935a379f0eca20cf15a  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.cob
  84315cd1eac36ec2ab6248bb81f1c443  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.out
! e8eb1625cf1bf0a19bc7e28773fdd2d5  gcc/testsuite/cobol.dg/group2/DEBUG_Line.cob
  e63f1cd9d134b515c696bba014cb1dff  gcc/testsuite/cobol.dg/group2/DEBUG_Line.out
  020056f99a3f85893322ab8e2d0ee543  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__1_.cob
  aafaf4e72769812a7c6252f63c7c0c66  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__1_.out
--- 21411,21417 ----
  fe9d26c3e620eeb69bd166c8be89fb8f  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__7_.out
  b3d5fc2d4df2b935a379f0eca20cf15a  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.cob
  84315cd1eac36ec2ab6248bb81f1c443  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.out
! cb295816eac94e1e2dac052067a68f19  gcc/testsuite/cobol.dg/group2/DEBUG_Line.cob
  e63f1cd9d134b515c696bba014cb1dff  gcc/testsuite/cobol.dg/group2/DEBUG_Line.out
  020056f99a3f85893322ab8e2d0ee543  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__1_.cob
  aafaf4e72769812a7c6252f63c7c0c66  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__1_.out
*************** ab92263ab6dfc24c4a0c606696f4f6e1  gcc/te
*** 14584,14593 ****
  049d86b26e87f2345599dec9004709c6  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__4_.out
  fd9430749a440e568057ebda5d8b3a14  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__5_.cob
  20c0a856e7157356b21d2254ce9c991d  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__5_.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
  04241cac92aea6609cadd8cd6985a09a  gcc/testsuite/cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.cob
  54367b98d070c4c1d66f9ec1f393cb3c  gcc/testsuite/cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.out
  c666c4233d26da9e7a6429ffb0f00751  gcc/testsuite/cobol.dg/group2/DISPLAY_data_items_with_MOVE_statement.cob
--- 21423,21432 ----
  049d86b26e87f2345599dec9004709c6  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__4_.out
  fd9430749a440e568057ebda5d8b3a14  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__5_.cob
  20c0a856e7157356b21d2254ce9c991d  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__5_.out
! ddb89e1453f5f25f7689e6e79e35cfc2  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII.cob
! a291b1d076aedcf6c1d91ee357c265bc  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII.out
! 2b8c1c147780c9004f2db3e97f269683  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII__2_.cob
! bed9d76ec2e8c2e7c89c91c0ce83ccdd  gcc/testsuite/cobol.dg/group2/DISPLAY__Sign_ASCII__2_.out
  04241cac92aea6609cadd8cd6985a09a  gcc/testsuite/cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.cob
  54367b98d070c4c1d66f9ec1f393cb3c  gcc/testsuite/cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.out
  c666c4233d26da9e7a6429ffb0f00751  gcc/testsuite/cobol.dg/group2/DISPLAY_data_items_with_MOVE_statement.cob
*************** e2d60c2db69ee22b6355d1e4f14b8a0f  gcc/te
*** 14596,14609 ****
--- 21435,21458 ----
  b6823d7dc09b85613f18938c657a010b  gcc/testsuite/cobol.dg/group2/DISPLAY_data_items_with_VALUE_clause.out
  c69954f56fcc483a81f9930ef5a010cc  gcc/testsuite/cobol.dg/group2/DISPLAY_literals__DECIMAL-POINT_is_COMMA.cob
  e1a5fc78e52a4348f53e9fcdcc6b849c  gcc/testsuite/cobol.dg/group2/DISPLAY_literals__DECIMAL-POINT_is_COMMA.out
+ a69b1d0d2c26ec9b018daf2998a7c4ba  gcc/testsuite/cobol.dg/group2/Default_Arithmetic__1_.cob
+ 2901c188067e745960930ae0bfdd4749  gcc/testsuite/cobol.dg/group2/Default_Arithmetic__1_.out
  9231024e09658f2c0b51c5863c9ff925  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.cob
  4d861c72470e2812c684041e91621642  gcc/testsuite/cobol.dg/group2/Dynamic_reference_modification.out
+ 61fa6a531b3133872dbaed91e5da47fa  gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.cob
+ f721a3936203e66cce524ce56cb80bfc  gcc/testsuite/cobol.dg/group2/EC-BOUND-REF-MOD_checking_process_termination.out
  dd8c6393c06b4230c216b0d2985c7d04  gcc/testsuite/cobol.dg/group2/EC-SIZE-TRUNCATION_EC-SIZE-OVERFLOW.cob
  71114c6e947dbc572836dc13b66e981d  gcc/testsuite/cobol.dg/group2/EC-SIZE-TRUNCATION_EC-SIZE-OVERFLOW.out
  b2ddfc5676452eaa657c53fed65d0c04  gcc/testsuite/cobol.dg/group2/EC-SIZE-ZERO-DIVIDE__fixed_and_float.cob
  b190c55e6f544248ffcabacd76c76fc8  gcc/testsuite/cobol.dg/group2/EC-SIZE-ZERO-DIVIDE__fixed_and_float.out
+ b247cae0c434dc8fa1b7c0e96d5ae1a1  gcc/testsuite/cobol.dg/group2/ENTRY_statement.cob
+ a29540cccd0a2b8f240a2f1afba8f406  gcc/testsuite/cobol.dg/group2/ENTRY_statement.out
  dc52fd3893842d57477c07b7ab30b016  gcc/testsuite/cobol.dg/group2/EVALUATE_WHEN_NEGATIVE.cob
  612112a8ffee04167daaa2bc2a1c9631  gcc/testsuite/cobol.dg/group2/EVALUATE_WHEN_NEGATIVE.out
+ dc4b83e02b1974ba837265ea5ef01291  gcc/testsuite/cobol.dg/group2/EVALUATE__A__OR__a_.cob
+ fd248298e7223faa5c2ddb64a52987ba  gcc/testsuite/cobol.dg/group2/EVALUATE__A__OR__a_.out
+ 609923b5e57cfc306202475a9eadafc9  gcc/testsuite/cobol.dg/group2/EVALUATE_condition__1_.cob
+ ed5a6aa98312fb3870ac8ff7290b6548  gcc/testsuite/cobol.dg/group2/EVALUATE_condition__1_.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
*************** d36f8f9425c4a8000ad9c4a97185aca5  gcc/te
*** 14616,14621 ****
--- 21465,21477 ----
  aa1720f718ef240d3daee562b785968f  gcc/testsuite/cobol.dg/group2/EXIT_PERFORM_CYCLE.cob
  30ba69874bf877e7942aa9267564e81f  gcc/testsuite/cobol.dg/group2/EXIT_PERFORM_CYCLE.out
  97606b94b868e2e008b042559073a65c  gcc/testsuite/cobol.dg/group2/EXIT_SECTION.cob
+ 709d833434bc415891f8e0904a474bd4  gcc/testsuite/cobol.dg/group2/FIND-STRING__forward_.cob
+ f0ea42043370d5165615b41c2c6183db  gcc/testsuite/cobol.dg/group2/FIND-STRING__forward_.out
+ d66684734194892d9cda80d4cc41af1b  gcc/testsuite/cobol.dg/group2/FIND-STRING__reverse_.cob
+ 944df4b8955a6c041546ac29e55ae453  gcc/testsuite/cobol.dg/group2/FIND-STRING__reverse_.out
+ fb524e2f23c7e991201b1d4ca9b770ca  gcc/testsuite/cobol.dg/group2/FIXED_FORMAT_data_in_cols_73_and_beyond.cob
+ 295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/FIXED_FORMAT_data_in_cols_73_and_beyond.out
+ 22313eb4ee0bc2a0ce99fa67294f273b  gcc/testsuite/cobol.dg/group2/FIXED_FORMAT_data_misplaced_asterisk.cob
  5fe71ed47fbfd1c9732d0d55b7498960  gcc/testsuite/cobol.dg/group2/FLOAT-LONG_with_SIZE_ERROR.cob
  6acf9b0d605a58415d5a29fd842dee44  gcc/testsuite/cobol.dg/group2/FLOAT-LONG_with_SIZE_ERROR.out
  ef38a3c35d6d1c92713a58b802edb16a  gcc/testsuite/cobol.dg/group2/FLOAT-SHORT___FLOAT-LONG_w_o_SIZE_ERROR.cob
*************** d457afafbd4c4c9ac3e7e144edbe7486  gcc/te
*** 14630,14650 ****
  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
! 70cf5ac189c15684c393af586cad6d38  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
--- 21486,21508 ----
  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
! 0b883b295f0912434e49705ff09bb869  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
! 99098be2395786bf5f8383cfb89db178  gcc/testsuite/cobol.dg/group2/FUNCTION_BYTE-LENGTH.cob
! d3841ec603ae4992593efe44b205a99a  gcc/testsuite/cobol.dg/group2/FUNCTION_BYTE-LENGTH.out
! a10935ba030237cafaf1a5e65427d29b  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
+ de1cdea7a4505520c2d0ab1457d04662  gcc/testsuite/cobol.dg/group2/FUNCTION_CONVERT.cob
+ a19de812e87b5578a6a15abd41c7d45a  gcc/testsuite/cobol.dg/group2/FUNCTION_CONVERT.out
  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
! ace7cb22a40e1e5018df95f4edf85868  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
*************** e446c66cfe41c6d9aa0e47d77f537e85  gcc/te
*** 14666,14673 ****
  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
--- 21524,21531 ----
  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
! 6bd28ec11059ee1796276ab736640255  gcc/testsuite/cobol.dg/group2/FUNCTION_HEX-OF.cob
! 9dfa1c5924eddb9943f3d0dd34817fa0  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
*************** a91372b5bf586e6975216dbefc23fff5  gcc/te
*** 14712,14719 ****
  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
--- 21570,21577 ----
  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
! c434bbb8071562d7532a3087a1a72a5c  gcc/testsuite/cobol.dg/group2/FUNCTION_ORD.cob
! ebc115e6026f399d7634bce65a66c971  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
*************** e327ed452cd80f8c8a6259c43682c503  gcc/te
*** 14742,14750 ****
  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
--- 21600,21608 ----
  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
! 74cee4080a311fd5ebbc02ffb51ed825  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-DAY-YYYYDDD__2_.cob
  f718640fb7b799908acc0c3c609cb953  gcc/testsuite/cobol.dg/group2/FUNCTION_TEST-FORMATTED-DATETIME_DP.COMMA.cob
! cd212cbb1ae15b780670282ae0f8c0dc  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
*************** cf54f65a3660c091ee2ccee0dbf96d9e  gcc/te
*** 14762,14773 ****
  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
  ec91588e98bc7e4e7ee785627a66d2f0  gcc/testsuite/cobol.dg/group2/Fixed_continuation_indicator.cob
  d64b7fc84a379356d3c1ace327a9ae49  gcc/testsuite/cobol.dg/group2/Fixed_continuation_indicator.out
  8bc30bbd5af3931c5987010e1d132185  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.cob
  ba6b3227a078619c9a062cd5ce2edeb7  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.out
  63ff422fa3042c8264e56b8bcb428dbc  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__1_.cob
  95a7930c3a2d5a078ebb8e25a2a7694a  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__2_.cob
  ed915c803fb3c38dcccb14bab74114d6  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__3_.cob
--- 21620,21639 ----
  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
! e0f1b36033204e90ad23d29bf0ec255e  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
  ec91588e98bc7e4e7ee785627a66d2f0  gcc/testsuite/cobol.dg/group2/Fixed_continuation_indicator.cob
  d64b7fc84a379356d3c1ace327a9ae49  gcc/testsuite/cobol.dg/group2/Fixed_continuation_indicator.out
  8bc30bbd5af3931c5987010e1d132185  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.cob
  ba6b3227a078619c9a062cd5ce2edeb7  gcc/testsuite/cobol.dg/group2/Floating_continuation_indicator__1_.out
+ c247fde4c760c54e6a4fe5775e917022  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_BACKWARD_REPLACING.cob
+ e24d0d2d1c31a566e6ab27312d83e371  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_BACKWARD_REPLACING.out
+ cb3238068a66d1f1c4cf17dd75986fb7  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_BACKWARD_TALLYING.cob
+ 5f4add8dedc301ed7c0e1797c8abfa40  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_BACKWARD_TALLYING.out
+ 744773b6b231283dd1b7440d1badb4a1  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_REPLACING.cob
+ 600f921cc49529f53c6714636fca2d19  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_REPLACING.out
+ 77573e563a59f974731c8ddc35d7d1c6  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_TALLYING.cob
+ 95455fd6c15aeba095d0f72ffc9376ef  gcc/testsuite/cobol.dg/group2/Fundamental_INSPECT_TALLYING.out
  63ff422fa3042c8264e56b8bcb428dbc  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__1_.cob
  95a7930c3a2d5a078ebb8e25a2a7694a  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__2_.cob
  ed915c803fb3c38dcccb14bab74114d6  gcc/testsuite/cobol.dg/group2/GLOBAL_FD__3_.cob
*************** ed915c803fb3c38dcccb14bab74114d6  gcc/te
*** 14776,14785 ****
  5dad2cfa3d0898b583ca8152caae19ec  gcc/testsuite/cobol.dg/group2/GLOBAL_at_lower_level.out
  8c4d9fb8e8480e8eab3c85a8913fbdd2  gcc/testsuite/cobol.dg/group2/GLOBAL_at_same_level.cob
  e067afbb5887269d86386f7435562a4c  gcc/testsuite/cobol.dg/group2/GLOBAL_at_same_level.out
! 41be3efaab48b38de913b91187967dbf  gcc/testsuite/cobol.dg/group2/Hexadecimal_literal.cob
  b481bb58b296a62d744d3006d0156f61  gcc/testsuite/cobol.dg/group2/Hexadecimal_literal.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
--- 21642,21666 ----
  5dad2cfa3d0898b583ca8152caae19ec  gcc/testsuite/cobol.dg/group2/GLOBAL_at_lower_level.out
  8c4d9fb8e8480e8eab3c85a8913fbdd2  gcc/testsuite/cobol.dg/group2/GLOBAL_at_same_level.cob
  e067afbb5887269d86386f7435562a4c  gcc/testsuite/cobol.dg/group2/GLOBAL_at_same_level.out
! 51de84c35bfcd3ed9f8da573360da157  gcc/testsuite/cobol.dg/group2/Hexadecimal_literal.cob
  b481bb58b296a62d744d3006d0156f61  gcc/testsuite/cobol.dg/group2/Hexadecimal_literal.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
+ 361a5a02eba9adf7ecfda409275c2024  gcc/testsuite/cobol.dg/group2/INITIALIZE_OCCURS_with_SIGN_LEADING___TRAILING.cob
+ f24d2c8690e1c616bc38e843f93f3823  gcc/testsuite/cobol.dg/group2/INITIALIZE_OCCURS_with_SIGN_LEADING___TRAILING.out
+ fa94eed5a26b32abdc01dc8cd7c0e7e5  gcc/testsuite/cobol.dg/group2/INITIALIZE_OCCURS_with_numeric_edited.cob
+ 0f9e8ced9db093a3e5cc3072ada79ced  gcc/testsuite/cobol.dg/group2/INITIALIZE_complex_group__1_.cob
+ f3e9be272408d8ca4668a2b5644753ee  gcc/testsuite/cobol.dg/group2/INITIALIZE_complex_group__2_.cob
+ 16beec544d2613ef96d35980f67ec279  gcc/testsuite/cobol.dg/group2/INITIALIZE_complex_group__2_.out
+ dcccc92023e69c46107d7dffc5e79975  gcc/testsuite/cobol.dg/group2/INITIALIZE_group_entry_with_OCCURS.cob
+ 33ecb5f89ee2246004780eebb222567e  gcc/testsuite/cobol.dg/group2/INITIALIZE_of_EXTERNAL_data_items.cob
+ ea753298b65069d6d9e4c8a91ec58dc2  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob
+ 8a2546145c459e88991240c189cb8a78  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.out
+ b19244912577febdfee565f97ff4ee1f  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob
+ af7c87c2a9d892859e28aeb46f6d68c4  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.out
+ 5b7789488255b73410fcf4bdeab0dc51  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_FILLER.cob
+ 00f8b5280fd78e2c0344cfbe80ff2a06  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_REDEFINES.cob
+ cc4ad2726f12736aa38598285d4997c9  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_reference_modification.cob
  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
*************** ead1f36f491fbcf2f8c5934348162ae0  gcc/te
*** 14792,14799 ****
  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
! 3fd332a73a25809c1f32be0852877123  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.cob
! 86271bbfced1dbb2e3d79743fcaf01e8  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.out
  26fa67a6b7f3967cff667cf39d1f7616  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.cob
  28b183457c03adb078fa91f4a8150fed  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.out
  191d37ef27c96c54a7cb610c0f5dcaab  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_2.cob
--- 21673,21680 ----
  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
! a98953f609582ca45a2da8031e1952c9  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.cob
! ecb4259be64f637f40b81d3ace98ff56  gcc/testsuite/cobol.dg/group2/INSPECT_CONVERTING_TO_figurative_constants.out
  26fa67a6b7f3967cff667cf39d1f7616  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.cob
  28b183457c03adb078fa91f4a8150fed  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_1.out
  191d37ef27c96c54a7cb610c0f5dcaab  gcc/testsuite/cobol.dg/group2/INSPECT_ISO_Example_2.cob
*************** eac533e1d20c6fc3182209d89d95dce1  gcc/te
*** 14825,14832 ****
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/Index_and_parenthesized_expression.out
  5f5ef3353680e2b791ea5a108b7f3876  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.cob
  85a1b4e081b0827d61acd2b576f8e44d  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.out
  21310f898eb7367c6b0b6e944a94b53d  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__2_.cob
! c72d199ef391d7ef4f0dc80fb62d8518  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.cob
  9205da278ccf673e088502edc93ae569  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.out
  411c711305a2c39d1b45ddc6c640bb98  gcc/testsuite/cobol.dg/group2/LOCAL-STORAGE__3__with_recursive_PROGRAM-ID.cob
  b7b5c0b13c0986bd9870b8774c94506f  gcc/testsuite/cobol.dg/group2/LOCAL-STORAGE__3__with_recursive_PROGRAM-ID.out
--- 21706,21720 ----
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/Index_and_parenthesized_expression.out
  5f5ef3353680e2b791ea5a108b7f3876  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.cob
  85a1b4e081b0827d61acd2b576f8e44d  gcc/testsuite/cobol.dg/group2/Indicators_______________-____D__.out
+ deaa567cdb6da15a2deb656d027de727  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_ABS.cob
+ a232de1aac78a4e371769072e88acf40  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_ACOS.cob
+ 05c1921281b723614d0aaae673fa9379  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_ANNUITY.cob
+ 8978ba5d8b437c9717d7d721469acf1f  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_DATE-YYYYMMDD.cob
+ e4271dee35678c55c71bb9b9d80e87f8  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_NUMVAL.cob
+ 1614a8c0648aca494c3ad94c63c244dd  gcc/testsuite/cobol.dg/group2/Intrinsic_Function_NUMVAL.out
  21310f898eb7367c6b0b6e944a94b53d  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__2_.cob
! 21310f898eb7367c6b0b6e944a94b53d  gcc/testsuite/cobol.dg/group2/Intrinsics_without_FUNCTION_keyword__3_.cob
! f750c5313f8839990ad8464f01bac4c8  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.cob
  9205da278ccf673e088502edc93ae569  gcc/testsuite/cobol.dg/group2/LENGTH_OF_omnibus.out
  411c711305a2c39d1b45ddc6c640bb98  gcc/testsuite/cobol.dg/group2/LOCAL-STORAGE__3__with_recursive_PROGRAM-ID.cob
  b7b5c0b13c0986bd9870b8774c94506f  gcc/testsuite/cobol.dg/group2/LOCAL-STORAGE__3__with_recursive_PROGRAM-ID.out
*************** b7b5c0b13c0986bd9870b8774c94506f  gcc/te
*** 14835,14847 ****
  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
  19fd942f8e59f704767cd4c3801d15eb  gcc/testsuite/cobol.dg/group2/MOVE_Z_literal_.cob
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/MOVE_Z_literal_.out
  5ebd149ed7f04a25c51fa7d8de980d8c  gcc/testsuite/cobol.dg/group2/MOVE_indexes.cob
--- 21723,21739 ----
  23e5d4acb2cfe1daabc7c1196edf48e9  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__1_.out
  4ca8d1c9c513d53c80702fd0b0d90ff9  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow__2_.out
  c37d3a6c238b882f0bdd37216ad6f2e2  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__1_.out
  77cbd02141d431cc038db8d3f0b922a6  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.cob
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__2_.out
  6d1a930a76d4ab5cc520ba673d35ff38  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.cob
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/cobol.dg/group2/Length_overflow_with_offset__3_.out
+ 503d617123c532839c11aa4fe6aba826  gcc/testsuite/cobol.dg/group2/Long_Division.cob
+ 762fe158abb4d509d72dcab7d9dd2321  gcc/testsuite/cobol.dg/group2/Long_Division.out
+ 349ac56163210da85e0e72c98b70a580  gcc/testsuite/cobol.dg/group2/MOVE_X_000203_.cob
+ ae3b6ce13c9250f0ab012d801c07d172  gcc/testsuite/cobol.dg/group2/MOVE_X_000203_.out
  19fd942f8e59f704767cd4c3801d15eb  gcc/testsuite/cobol.dg/group2/MOVE_Z_literal_.cob
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/MOVE_Z_literal_.out
  5ebd149ed7f04a25c51fa7d8de980d8c  gcc/testsuite/cobol.dg/group2/MOVE_indexes.cob
*************** d36f8f9425c4a8000ad9c4a97185aca5  gcc/te
*** 14849,14854 ****
--- 21741,21748 ----
  1e6c9ca775f50b1b92cdcb94da587ce1  gcc/testsuite/cobol.dg/group2/MOVE_integer_literal_to_alphanumeric.out
  b769d75207f79ebe3eb2563bb30dd3af  gcc/testsuite/cobol.dg/group2/MOVE_to_JUSTIFIED_item.cob
  30919e1201a8434fdc9703fe9f44220e  gcc/testsuite/cobol.dg/group2/MOVE_to_JUSTIFIED_item.out
+ ac0e6b18c807d4dc1e07b6501c8efc35  gcc/testsuite/cobol.dg/group2/MOVE_to_JUSTIFIED_items.cob
+ 0e11b94aaaa639c09162e4f6a884172f  gcc/testsuite/cobol.dg/group2/MOVE_to_JUSTIFIED_items.out
  76e9e3faeedd3093f630747e1e553d7e  gcc/testsuite/cobol.dg/group2/MOVE_to_edited_item__1_.cob
  0a11f109c59b17f4d98bfef38f072257  gcc/testsuite/cobol.dg/group2/MOVE_to_edited_item__1_.out
  f29c6d152229f76d4f713afb775c12ec  gcc/testsuite/cobol.dg/group2/MOVE_to_edited_item__2_.cob
*************** c94667798e53c8974de0912e64b9f68a  gcc/te
*** 14862,14876 ****
  0c0ecf77a8e923475016b253a23bcada  gcc/testsuite/cobol.dg/group2/MULTIPLY_BY_literal_in_INITIAL_program.cob
  87b0bc0c9121907b31f6ee3692914a41  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.cob
  cf6cb0baac26cccf2005d78a4a1afb78  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.out
! 94f742027b483c887f7c7d9b88ce3763  gcc/testsuite/cobol.dg/group2/Multi-target_MOVE_with_subscript_re-evaluation.cob
  92cebaacd47235a03b5cdfc283882a86  gcc/testsuite/cobol.dg/group2/Multi-target_MOVE_with_subscript_re-evaluation.out
  b0cd20ec9807fca430e620486c4f9568  gcc/testsuite/cobol.dg/group2/Multiple_INDEXED_BY_variables_with_the_same_name.cob
  3b4538b5070b02cf4ebc653902e53e31  gcc/testsuite/cobol.dg/group2/Multiple_INDEXED_BY_variables_with_the_same_name.out
  860bb03d750b0e6019c8c327424cfe69  gcc/testsuite/cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.cob
  4138538135757cec647177acf7df8383  gcc/testsuite/cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.out
  74218fe0c6b8b43e4de4bc3003808fd7  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__1_.cob
  1ca492b7a58e4937f96a4f5658dd5109  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__1_.out
! 2132911af2c47babd039e20a0db5df2b  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__2_.cob
  1ca492b7a58e4937f96a4f5658dd5109  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__2_.out
  12c0eded4796b227fdba9f06f2750ed7  gcc/testsuite/cobol.dg/group2/Non-overflow_after_overflow.cob
  5161d2856532911f6000decbf4a94043  gcc/testsuite/cobol.dg/group2/Numeric_operations__1_.cob
--- 21756,21772 ----
  0c0ecf77a8e923475016b253a23bcada  gcc/testsuite/cobol.dg/group2/MULTIPLY_BY_literal_in_INITIAL_program.cob
  87b0bc0c9121907b31f6ee3692914a41  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.cob
  cf6cb0baac26cccf2005d78a4a1afb78  gcc/testsuite/cobol.dg/group2/MULTIPLY_to_FIX4.out
! 93a76fa238e6b843def50133986feba8  gcc/testsuite/cobol.dg/group2/Multi-target_MOVE_with_subscript_re-evaluation.cob
  92cebaacd47235a03b5cdfc283882a86  gcc/testsuite/cobol.dg/group2/Multi-target_MOVE_with_subscript_re-evaluation.out
  b0cd20ec9807fca430e620486c4f9568  gcc/testsuite/cobol.dg/group2/Multiple_INDEXED_BY_variables_with_the_same_name.cob
  3b4538b5070b02cf4ebc653902e53e31  gcc/testsuite/cobol.dg/group2/Multiple_INDEXED_BY_variables_with_the_same_name.out
+ b75fa9b5629b3032c8c34644bd817121  gcc/testsuite/cobol.dg/group2/N-Queens_algorithm.cob
+ e4d2b73b0c96c1dfe3d000329bb8874f  gcc/testsuite/cobol.dg/group2/N-Queens_algorithm.out
  860bb03d750b0e6019c8c327424cfe69  gcc/testsuite/cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.cob
  4138538135757cec647177acf7df8383  gcc/testsuite/cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.out
  74218fe0c6b8b43e4de4bc3003808fd7  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__1_.cob
  1ca492b7a58e4937f96a4f5658dd5109  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__1_.out
! 740fb7081d5c02c36fa612769882980d  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__2_.cob
  1ca492b7a58e4937f96a4f5658dd5109  gcc/testsuite/cobol.dg/group2/Non-numeric_data_in_numeric_items__2_.out
  12c0eded4796b227fdba9f06f2750ed7  gcc/testsuite/cobol.dg/group2/Non-overflow_after_overflow.cob
  5161d2856532911f6000decbf4a94043  gcc/testsuite/cobol.dg/group2/Numeric_operations__1_.cob
*************** b0cd20ec9807fca430e620486c4f9568  gcc/te
*** 14878,14890 ****
  28a8c6a41a47ecd245f6d919206e8f3c  gcc/testsuite/cobol.dg/group2/Numeric_operations__3_.cob
  3a0295ca0da6e25b960c9002da4e43d0  gcc/testsuite/cobol.dg/group2/Numeric_operations__4_.cob
  283cefe1696fad0d72e2fe9feb37c82d  gcc/testsuite/cobol.dg/group2/Numeric_operations__5_.cob
  f8541a2487ec2c1ec0315c33f8353f7a  gcc/testsuite/cobol.dg/group2/Numeric_operations__7_.cob
  d52ba26b5b8852b2b84b61c6178bf74c  gcc/testsuite/cobol.dg/group2/Numeric_operations__8_.cob
  10b319abadd72ac43d077c2c8abc4b29  gcc/testsuite/cobol.dg/group2/OCCURS_clause_with_1_entry.cob
  ffadeb7f068a020678b9d84378d57a88  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.cob
  a190093222cd87b2cfc63630a06ab84f  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.out
  3a7c9ac63710b9bf9e307d6c2a2e15f2  gcc/testsuite/cobol.dg/group2/Offset_overflow.cob
! 1dcca23355272056f04fe8bf20edfce0  gcc/testsuite/cobol.dg/group2/Offset_overflow.out
  9c84934cecd7d57e9badb90f27ae5490  gcc/testsuite/cobol.dg/group2/Offset_underflow.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_underflow.out
  2391a13c48a4188ca206651e9e33fcbb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.cob
--- 21774,21790 ----
  28a8c6a41a47ecd245f6d919206e8f3c  gcc/testsuite/cobol.dg/group2/Numeric_operations__3_.cob
  3a0295ca0da6e25b960c9002da4e43d0  gcc/testsuite/cobol.dg/group2/Numeric_operations__4_.cob
  283cefe1696fad0d72e2fe9feb37c82d  gcc/testsuite/cobol.dg/group2/Numeric_operations__5_.cob
+ d2de53c32b5b49d30b5295c011bdf1eb  gcc/testsuite/cobol.dg/group2/Numeric_operations__6_.cob
+ b99fc2f498d82700a22e6d1d822a4d38  gcc/testsuite/cobol.dg/group2/Numeric_operations__6_.out
  f8541a2487ec2c1ec0315c33f8353f7a  gcc/testsuite/cobol.dg/group2/Numeric_operations__7_.cob
  d52ba26b5b8852b2b84b61c6178bf74c  gcc/testsuite/cobol.dg/group2/Numeric_operations__8_.cob
  10b319abadd72ac43d077c2c8abc4b29  gcc/testsuite/cobol.dg/group2/OCCURS_clause_with_1_entry.cob
  ffadeb7f068a020678b9d84378d57a88  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.cob
  a190093222cd87b2cfc63630a06ab84f  gcc/testsuite/cobol.dg/group2/OSVS_Arithmetic_Test__2_.out
+ 5d0a74b0081757ca28c493de8a49a019  gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.cob
+ e01cd9a3d1291517c38ded7e69c286db  gcc/testsuite/cobol.dg/group2/Occurs_DEPENDING_ON__source_and_dest.out
  3a7c9ac63710b9bf9e307d6c2a2e15f2  gcc/testsuite/cobol.dg/group2/Offset_overflow.cob
! 60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_overflow.out
  9c84934cecd7d57e9badb90f27ae5490  gcc/testsuite/cobol.dg/group2/Offset_underflow.cob
  60b725f10c9c85c70d97880dfe8191b3  gcc/testsuite/cobol.dg/group2/Offset_underflow.out
  2391a13c48a4188ca206651e9e33fcbb  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_arithmetic.cob
*************** a190093222cd87b2cfc63630a06ab84f  gcc/te
*** 14893,14900 ****
  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
--- 21793,21800 ----
  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
! 699740efcf32d9659c54172778331a54  gcc/testsuite/cobol.dg/group2/PACKED-DECIMAL_dump.cob
! 813bb23347d95c7139ed2d94a3998f0b  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
*************** f447900f3d80fb422f0e33541a0a216c  gcc/te
*** 14912,14917 ****
--- 21812,21819 ----
  a3a031c83f7e6f75afedffdeac38a3ee  gcc/testsuite/cobol.dg/group2/PIC_ZZZ-__ZZZ_.cob
  f81e4d1631666dc73cab672753a19f96  gcc/testsuite/cobol.dg/group2/POINTER__display.cob
  1a03d00f7a2dbbf286fe10017695b9e0  gcc/testsuite/cobol.dg/group2/POINTER__display.out
+ 9ed4dcbed0b57b655196739e4413e78a  gcc/testsuite/cobol.dg/group2/Preserve_collation_past_a_CALL.cob
+ d2af8b51d78e3dbc2989b52264f76455  gcc/testsuite/cobol.dg/group2/Preserve_collation_past_a_CALL.out
  b998cc667e7bffb26d211ded81f2ea9a  gcc/testsuite/cobol.dg/group2/Program-to-program_parameters_and_retvals.cob
  ae1cac648a1ff6940b99fbaaedea1b6e  gcc/testsuite/cobol.dg/group2/Program-to-program_parameters_and_retvals.out
  ddc1206a8eee9490055e91297ef1f969  gcc/testsuite/cobol.dg/group2/Quick_check_of_PIC_XX_COMP-5.cob
*************** ddc1206a8eee9490055e91297ef1f969  gcc/te
*** 14920,14925 ****
--- 21822,21829 ----
  86aff1382616475acd4027fc4a483952  gcc/testsuite/cobol.dg/group2/Quote_marks_in_comment_paragraphs.out
  75dfdc364dc4cb8d9203030c20a0193a  gcc/testsuite/cobol.dg/group2/REDEFINES_values_on_FILLER_and_INITIALIZE.cob
  306b917492c853025f4e121e140dee5c  gcc/testsuite/cobol.dg/group2/REDEFINES_values_on_FILLER_and_INITIALIZE.out
+ 63942f0ff41772f2daab394bd71d459f  gcc/testsuite/cobol.dg/group2/RETURN-CODE_moving.cob
+ 54b41b458eb4799b6183a1e215501f90  gcc/testsuite/cobol.dg/group2/RETURN-CODE_nested.cob
  448a75a2b6dd9b774660282c8eb9b9db  gcc/testsuite/cobol.dg/group2/ROUNDED_AWAY-FROM-ZERO.cob
  01fa1923d7242ef724d4c43d1ded0d40  gcc/testsuite/cobol.dg/group2/ROUNDED_AWAY-FROM-ZERO.out
  bd5f52542e3c7acb921b24bc4f5a7c1d  gcc/testsuite/cobol.dg/group2/ROUNDED_NEAREST-AWAY-FROM-ZERO.cob
*************** e38fa87f68f46664a4a725247faeaab1  gcc/te
*** 14942,14958 ****
  0bba0c9388bb78c11a2533fbadc2974e  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.out
  c63f4ece442994445b3b97fe2a8108dd  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.cob
  43121e1ed7ce9778e6515a6349aeef22  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.out
! 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
  551208604a39f8c738cb04d9f3974c15  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__1_.cob
  5bf43d6c0e0a558aadbd49c154ddb2c2  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__2_.cob
  67b7a6e377e56135eafa5ca5bee77713  gcc/testsuite/cobol.dg/group2/SORT__table_sort.cob
  79c7d1cb85a494559fd0b684a57f9610  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2_.cob
  4c0be3d6a1647497be537a28be82aeff  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2_.out
  174e83c4551c443a8cada72eb7490f43  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3A_.cob
  60568a7a1509ccec1196f00551390628  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3A_.out
  1e60801f92662a00d2d0251bd9a22d72  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3B_.cob
--- 21846,21870 ----
  0bba0c9388bb78c11a2533fbadc2974e  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.out
  c63f4ece442994445b3b97fe2a8108dd  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.cob
  43121e1ed7ce9778e6515a6349aeef22  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.out
! 95d5ab8df73f40c517814ada545f8320  gcc/testsuite/cobol.dg/group2/Recursive_subscripts.cob
! b630df630f52215a3e6b1a070180b6dd  gcc/testsuite/cobol.dg/group2/Recursive_subscripts.out
! 904765a638457ef7d3589f36e2effd1a  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.cob
  ed75a024a3fc8efd498fecff6e287928  gcc/testsuite/cobol.dg/group2/Refmod__comparisons_inside_numeric-display.out
! 48eeddc6d642069401d187ec14b374c5  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.cob
! c6c6c9b83f29e81d126a78fe4ae1d6eb  gcc/testsuite/cobol.dg/group2/Refmod_sources_are_figurative_constants.out
  3a05b449be7a9a0c7692038ca6fa06e2  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.cob
  295a45c9a89fce7d2454228853007a55  gcc/testsuite/cobol.dg/group2/Repository_functions_clause.out
+ a3c9d42c871825b188e93e4cff8b8184  gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.cob
+ ed5c320db3471d6e1070b74811413e2f  gcc/testsuite/cobol.dg/group2/SEARCH_ALL_with_OCCURS_DEPENDING_ON.out
  551208604a39f8c738cb04d9f3974c15  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__1_.cob
  5bf43d6c0e0a558aadbd49c154ddb2c2  gcc/testsuite/cobol.dg/group2/SORT__EBCDIC_table_sort__2_.cob
  67b7a6e377e56135eafa5ca5bee77713  gcc/testsuite/cobol.dg/group2/SORT__table_sort.cob
  79c7d1cb85a494559fd0b684a57f9610  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2_.cob
  4c0be3d6a1647497be537a28be82aeff  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2_.out
+ 854bc42a35ba8362ff2154a883ac0bae  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2___ASCII_.cob
+ 3f29d9c1822ef4bc677614531eb26a08  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2___ASCII_.out
+ dc1472ddb4d47ed7333b131d4c324d4a  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2___EBCDIC_.cob
+ 3f29d9c1822ef4bc677614531eb26a08  gcc/testsuite/cobol.dg/group2/SORT__table_sort__2___EBCDIC_.out
  174e83c4551c443a8cada72eb7490f43  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3A_.cob
  60568a7a1509ccec1196f00551390628  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3A_.out
  1e60801f92662a00d2d0251bd9a22d72  gcc/testsuite/cobol.dg/group2/SORT__table_sort__3B_.cob
*************** bfe9a0e1b08273f3d0f06b4b69cff91b  gcc/te
*** 14968,14973 ****
--- 21880,21889 ----
  5cde5131bc03a36e9d12bccadc6a28a0  gcc/testsuite/cobol.dg/group2/Separate_sign_positions__1_.out
  f5fd4be048d78f148c18cc810bf4e8f5  gcc/testsuite/cobol.dg/group2/Separate_sign_positions__2_.cob
  3600adb8ebbf8edcf3186ed5624861a2  gcc/testsuite/cobol.dg/group2/Separate_sign_positions__2_.out
+ c30a8753d1658e5b32d74441b6840499  gcc/testsuite/cobol.dg/group2/Simple_DEBUG-ITEM.cob
+ 80ccd5f8bda90af88380181bb13d8208  gcc/testsuite/cobol.dg/group2/Simple_DEBUG-ITEM.out
+ f5d5fca25edf5df29fc8b724f75d6f2c  gcc/testsuite/cobol.dg/group2/Simple_ENVIRONMENT-NAME_with_exception.cob
+ 2e00589073f0aa21973860a4c887a4b2  gcc/testsuite/cobol.dg/group2/Simple_ENVIRONMENT-NAME_with_exception.out
  823d710919a70fb1dd428c79bce5775c  gcc/testsuite/cobol.dg/group2/Simple_TYPEDEF.cob
  089c486b1d98af62c01e8d392d6bda48  gcc/testsuite/cobol.dg/group2/Simple_floating-point_MOVE.cob
  0f9c7dc18a0ed01c8e5aaf241723dbb2  gcc/testsuite/cobol.dg/group2/Simple_floating-point_MOVE.out
*************** da9195f694cdf531af045955fcb1be4f  gcc/te
*** 14979,14984 ****
--- 21895,21907 ----
  fb4f975832cfa17a33f58aba4b9cb092  gcc/testsuite/cobol.dg/group2/Static_CALL_with_ON_EXCEPTION__with_-fno-static-call_.out
  7f3d1774a5a66e799e1f242a238d9ead  gcc/testsuite/cobol.dg/group2/Static_reference_modification.cob
  935e5657c4ee72898cfbc35dcd96645b  gcc/testsuite/cobol.dg/group2/Static_reference_modification.out
+ 00feed421d0edeeff3b4cd9f90984d6d  gcc/testsuite/cobol.dg/group2/Subscript_by_arithmetic_expression.cob
+ 4ab94301c55f6fc4cfbfdedd8dda4ff1  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.cob
+ f4bf7714751b5c243be1e2155d688d25  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__1_.out
+ 25f1095c6dc77de2d16689f74bab7923  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.cob
+ f4bf7714751b5c243be1e2155d688d25  gcc/testsuite/cobol.dg/group2/Subscript_out_of_bounds__2_.out
+ eebd95e37e76d5e7bfd4398552d1701a  gcc/testsuite/cobol.dg/group2/Subscripted_refmods.cob
+ 4557bd302c04d024835bc49cfad8d183  gcc/testsuite/cobol.dg/group2/Subscripted_refmods.out
  f63ca4b717f71c2f2a1bf43cab87b9fe  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.cob
  65c9d9840c5da4c3d0e64102c2a20dee  gcc/testsuite/cobol.dg/group2/UDF_RETURNING_group_and_PIC_9_5_.out
  d29bb749d19881aed3f136d1f97f8e91  gcc/testsuite/cobol.dg/group2/UDF_fibonacci_recursion.cob
*************** bf21188860d25a68d2f9c85951bdde9b  gcc/te
*** 14993,15006 ****
  bdbf9d12e14720fb7081dad4477a7bae  gcc/testsuite/cobol.dg/group2/UNSTRING_DELIMITER_IN.cob
  94779fadfcd69b9dabbc720f231c4593  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.cob
  db11d5a6931ffe03ab944182745e5364  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.out
  8b384b3032fcac908a2fdc502dc156e8  gcc/testsuite/cobol.dg/group2/_-static__compilation.cob
  7ccbb0b17254a4346153a02e58218979  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.cob
  e54e577d8de75b710938fa62794487fc  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.out
  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
  5ee523a5b423e4957df5452b15a66ba1  gcc/testsuite/cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.cob
  7abd1cea9afc680263418e1915b26370  gcc/testsuite/cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.out
! a79ad6ae6b95575c93ce475a6e7f019e  gcc/testsuite/cobol.dg/group2/debugging_lines__not_active_.cob
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/debugging_lines__not_active_.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
--- 21916,21961 ----
  bdbf9d12e14720fb7081dad4477a7bae  gcc/testsuite/cobol.dg/group2/UNSTRING_DELIMITER_IN.cob
  94779fadfcd69b9dabbc720f231c4593  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.cob
  db11d5a6931ffe03ab944182745e5364  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.out
+ a729c9434b67c02f084b27e81be6dacb  gcc/testsuite/cobol.dg/group2/UNSTRING_with_refmods.cob
+ a5d607db5350ec61c6ae64ff267898de  gcc/testsuite/cobol.dg/group2/UNSTRING_with_refmods.out
+ 5dd9ac53d72bf3cd5943cc5c1a973d73  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out
+ 613139154572475fafc1589dc2fdc0c9  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out
+ b5c76958561b4717224f0d4e65281694  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob
+ 29bc7b7720cb706971c3e72eb623c222  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out
+ 71bfd9bc1b28ea20778fdfc5d31a1bd6  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob
+ 29bc7b7720cb706971c3e72eb623c222  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out
+ 80529bfd4d06770a96ce9abc18ff1f17  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out
+ feb56a931a17a09106194358ac0b0d9e  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out
+ 1fd2035d618260baa285708fe7f2ec33  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out
+ 86d9d1cb0ce8b19ed8c42532a547b892  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out
+ 885a3840e74d05d32856d74343f4d611  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out
+ 914dc6c349acdc585081ca131fe212ea  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out
+ 2803b4a5cddc7056fdf25b9d940af9fc  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out
+ 9dece264282cad187214e44f228cd111  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out
+ b420dc948722a4b2fc490a3babd17b7f  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out
+ 3153d2ffae3ff3b87ed8cadff567a8f5  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out
  8b384b3032fcac908a2fdc502dc156e8  gcc/testsuite/cobol.dg/group2/_-static__compilation.cob
  7ccbb0b17254a4346153a02e58218979  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.cob
  e54e577d8de75b710938fa62794487fc  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.out
  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
+ caf587aa2806bd2fe7496ca58c88ba7c  gcc/testsuite/cobol.dg/group2/command-line.cob
+ ae3b6ce13c9250f0ab012d801c07d172  gcc/testsuite/cobol.dg/group2/command-line.out
  5ee523a5b423e4957df5452b15a66ba1  gcc/testsuite/cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.cob
  7abd1cea9afc680263418e1915b26370  gcc/testsuite/cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.out
! ad1379c3b794819e6ecc87d906b13ec2  gcc/testsuite/cobol.dg/group2/debugging_lines__not_active_.cob
  d36f8f9425c4a8000ad9c4a97185aca5  gcc/testsuite/cobol.dg/group2/debugging_lines__not_active_.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
*************** f23d541adf63b9564f927ea7db47a6fb  gcc/te
*** 15010,15015 ****
--- 21965,21974 ----
  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
+ 097b0aea2a72ea6652e614494c8819dd  gcc/testsuite/cobol.dg/group2/floating-point_FORMAT_1.cob
+ 72d7e593576a181e727d6ec3c9b82882  gcc/testsuite/cobol.dg/group2/floating-point_FORMAT_1.out
+ 7ed17106c9cc55b27e9fb12ed2785f8d  gcc/testsuite/cobol.dg/group2/floating-point_FORMAT_2.cob
+ ccb0bde51431dafbb7ad750216a2e9a1  gcc/testsuite/cobol.dg/group2/floating-point_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
*************** b5963b02036ff978d27f84401ae9576f  gcc/te
*** 15017,15040 ****
  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
  d23088a98a20d2069d7fb0cad5a416f7  gcc/testsuite/cobol.dg/group2/integer_arithmetic_on_floating-point_var.cob
  c834ffdd674f78d7b72f01018a77ff6a  gcc/testsuite/cobol.dg/literal1.cob
  3cc71e02a97975e9e88d7c2952f11912  gcc/testsuite/cobol.dg/output1.cob
  3615bcff9cca29fcbf752691f3481ef9  gcc/testsuite/cobol.dg/pass.cob
  0e8414de6bdad0be36fa5537e3256943  gcc/testsuite/cobol.dg/pr119229.cob
! 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
  135ae25fc37d38f1d817ed5038d76739  gcc/testsuite/g++.dg/DRs/dr1207-2.C
! 8ce864b8f2d2ae710018ffa009a91983  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
  52d7d568704922e4f339fc4d146480ce  gcc/testsuite/g++.dg/DRs/dr1693-1.C
  bdfdb25d2a95709a4137d69bca1d9b97  gcc/testsuite/g++.dg/DRs/dr1693-2.C
  5402422aa468b0e17faae787be45ca05  gcc/testsuite/g++.dg/DRs/dr1778.C
  fa21ec294f03c517a2834da0764dd305  gcc/testsuite/g++.dg/DRs/dr188.C
  e1ec3bf667b6fc27346a0e4a5cf1958b  gcc/testsuite/g++.dg/DRs/dr1940.C
--- 21976,22011 ----
  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
! 426d1bcd864597a8295b6a13367f651f  gcc/testsuite/cobol.dg/group2/floating-point_SUBTRACT_FORMAT_2.out
  1c314570f7cbb362dd3e7e739487c960  gcc/testsuite/cobol.dg/group2/floating-point_literals.cob
! ea2e4adf971a438915bcd76725002af5  gcc/testsuite/cobol.dg/group2/floating-point_literals.out
  d23088a98a20d2069d7fb0cad5a416f7  gcc/testsuite/cobol.dg/group2/integer_arithmetic_on_floating-point_var.cob
+ 485a46d485361b3b618c4705dcd36210  gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.cob
+ 5eb817262236b0ba59a5015d171025fb  gcc/testsuite/cobol.dg/group2/length_of_ODO_Rules_7__8A__and_8B.out
+ 285be9aed0693bd7a17971c0b0d45f14  gcc/testsuite/cobol.dg/group2/length_of_ODO_w_-_reference_modification.cob
+ a9be62b5e367d9e2cd063a29e035d62f  gcc/testsuite/cobol.dg/group2/procedure_division_using_by.cob
+ 821fb53474f319c2a9d352f2d55b8d70  gcc/testsuite/cobol.dg/group2/repository.cob
+ 935040fe79bf2b3104a97902f5b7223f  gcc/testsuite/cobol.dg/group2/skipping_at_the_top.cob
+ e99fe7f719e04d1150008f60cd282d48  gcc/testsuite/cobol.dg/group2/source-computer_object-computer_repository__2_.cob
  c834ffdd674f78d7b72f01018a77ff6a  gcc/testsuite/cobol.dg/literal1.cob
  3cc71e02a97975e9e88d7c2952f11912  gcc/testsuite/cobol.dg/output1.cob
  3615bcff9cca29fcbf752691f3481ef9  gcc/testsuite/cobol.dg/pass.cob
  0e8414de6bdad0be36fa5537e3256943  gcc/testsuite/cobol.dg/pr119229.cob
! baa1ff9d67a227d88f5f4a3377afb275  gcc/testsuite/cobol.dg/typo-1.cob
! 632616e7acb4563d93a83c78e91bf43f  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
  135ae25fc37d38f1d817ed5038d76739  gcc/testsuite/g++.dg/DRs/dr1207-2.C
! bed8796353d3f2bf55a8e17d549cc1a8  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
+ 85e9ec522afd7c5e768201ef345f8c60  gcc/testsuite/g++.dg/DRs/dr1670-1.C
+ bd632c2a102e05af42772d3992d4df01  gcc/testsuite/g++.dg/DRs/dr1670-2.C
+ 3507e08d74d35e64f039e274560e7e64  gcc/testsuite/g++.dg/DRs/dr1670-3.C
  52d7d568704922e4f339fc4d146480ce  gcc/testsuite/g++.dg/DRs/dr1693-1.C
  bdfdb25d2a95709a4137d69bca1d9b97  gcc/testsuite/g++.dg/DRs/dr1693-2.C
+ 7f7b3e40c3a4d7651460590c64f31af4  gcc/testsuite/g++.dg/DRs/dr1709.C
  5402422aa468b0e17faae787be45ca05  gcc/testsuite/g++.dg/DRs/dr1778.C
  fa21ec294f03c517a2834da0764dd305  gcc/testsuite/g++.dg/DRs/dr188.C
  e1ec3bf667b6fc27346a0e4a5cf1958b  gcc/testsuite/g++.dg/DRs/dr1940.C
*************** b26a3cc670cf83b0f26114e5683de2f6  gcc/te
*** 15058,15070 ****
  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
--- 22029,22053 ----
  2e90769bacb797d8f60d5dcf229e2e60  gcc/testsuite/g++.dg/DRs/dr2521.C
  0d6aefe51ff95b342b96bda7d98a079a  gcc/testsuite/g++.dg/DRs/dr2530.C
  ae5152333dd60b40ffb5f5e2fdf63afc  gcc/testsuite/g++.dg/DRs/dr2543.C
+ 803da1cbe1ce6b09731d1f9a4cedbcca  gcc/testsuite/g++.dg/DRs/dr2575.C
+ 4ce41dc0e3633d42c08db70c8a2d365a  gcc/testsuite/g++.dg/DRs/dr2576.C
+ f96dba703a15690700a5070767822a60  gcc/testsuite/g++.dg/DRs/dr2577-1.C
+ 34c61b67e97b68c3d89fceb25398ed2a  gcc/testsuite/g++.dg/DRs/dr2577-2.C
+ b026324c6904b2a9cb4b88d6d61c81d1  gcc/testsuite/g++.dg/DRs/dr2577-2.h
+ bd92bb263ce3f4e8ba38942b69777545  gcc/testsuite/g++.dg/DRs/dr2577-3.C
+ 71f51a3c42f4a3f78b93b06d648b6315  gcc/testsuite/g++.dg/DRs/dr2577-3.h
+ 8fb8f015a13dbb924ae0963f603ff37a  gcc/testsuite/g++.dg/DRs/dr2578.C
+ 69abd62027a5c141b392afc212fa4271  gcc/testsuite/g++.dg/DRs/dr2579.C
+ 578ff8885e47476743d05b756870ddb1  gcc/testsuite/g++.dg/DRs/dr2580.C
+ 4aeb7f22ce169e340d1ea6c0fc562a54  gcc/testsuite/g++.dg/DRs/dr2581-1.C
+ 64db403594d810b2269ab59049167973  gcc/testsuite/g++.dg/DRs/dr2581-2.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
! fc3e72e3c6740ca8444e4f8da3fc3f22  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
*************** a54d8026af685eb4245802f9d393c62f  gcc/te
*** 15076,15084 ****
  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
--- 22059,22071 ----
  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
+ 35a1ad73c2dad3082e687ad6cb6e4a83  gcc/testsuite/g++.dg/DRs/dr3045.C
+ 3f297cb3f2f7472c7c0e23d3d9a4e49c  gcc/testsuite/g++.dg/DRs/dr3061.C
+ 0db4e83f65185c2945cb11bd0815a87e  gcc/testsuite/g++.dg/DRs/dr3079.C
+ c8f402708041b93f25fb375136b1fa17  gcc/testsuite/g++.dg/DRs/dr3110.C
  7a4b27e45b2c85a34faf94f75f8945d1  gcc/testsuite/g++.dg/DRs/dr625.C
  cdd5e29f9e112d6201410809ca83e0d2  gcc/testsuite/g++.dg/DRs/dr882.C
! e608eff392cbbd42abc2849e8bfffa67  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
*************** d5f2ec3f68f58a172b795a7f5deae99f  gcc/te
*** 15109,15115 ****
  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
--- 22096,22102 ----
  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
! 32877a1b4b9e88af3c594f317d98e54f  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
*************** c7c251f16058a4d4f1db8e0df28385ff  gcc/te
*** 15135,15142 ****
  53fac1fa94eb44628f1a30c989aa1635  gcc/testsuite/g++.dg/abi/align2.C
  73fcf08640223665c619e0649f3fb6bc  gcc/testsuite/g++.dg/abi/align3.C
  b1cb014f09d1a26e4d04bf50f24f5dd6  gcc/testsuite/g++.dg/abi/anon1.C
! d612831779ae34b6217159ef7510dee7  gcc/testsuite/g++.dg/abi/anon2.C
! 4024cd0fe696880556f4db4786e81c53  gcc/testsuite/g++.dg/abi/anon3.C
  1038c11bdd8e6958bef23598a299a6ce  gcc/testsuite/g++.dg/abi/anon4.C
  b03e050cd2306239cb18c55acf037ffa  gcc/testsuite/g++.dg/abi/anon5.C
  49211aa600586b5c5f45d2f4161cb58d  gcc/testsuite/g++.dg/abi/anon6.C
--- 22122,22129 ----
  53fac1fa94eb44628f1a30c989aa1635  gcc/testsuite/g++.dg/abi/align2.C
  73fcf08640223665c619e0649f3fb6bc  gcc/testsuite/g++.dg/abi/align3.C
  b1cb014f09d1a26e4d04bf50f24f5dd6  gcc/testsuite/g++.dg/abi/anon1.C
! 07a6c0b10edbc98c21e68b124d1a4fda  gcc/testsuite/g++.dg/abi/anon2.C
! 245b25a52676545ac8eea49b3607953a  gcc/testsuite/g++.dg/abi/anon3.C
  1038c11bdd8e6958bef23598a299a6ce  gcc/testsuite/g++.dg/abi/anon4.C
  b03e050cd2306239cb18c55acf037ffa  gcc/testsuite/g++.dg/abi/anon5.C
  49211aa600586b5c5f45d2f4161cb58d  gcc/testsuite/g++.dg/abi/anon6.C
*************** cb4ad686f7564a8666256212398d911d  gcc/te
*** 15147,15153 ****
  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
! 13c059b5fdab1080d1ec0f68d7613c93  gcc/testsuite/g++.dg/abi/base-defaulted1.C
  ab9dbf10518ce1225eef105684f83eba  gcc/testsuite/g++.dg/abi/base-defaulted1a.C
  c2ccbaf203c367700b9ab4aeb77c0565  gcc/testsuite/g++.dg/abi/base-defaulted2.C
  dfa3e514ddbfea694774f9c287f40215  gcc/testsuite/g++.dg/abi/bitfield1.C
--- 22134,22140 ----
  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
! b361f75cc1cf98783fc3952644d52df5  gcc/testsuite/g++.dg/abi/base-defaulted1.C
  ab9dbf10518ce1225eef105684f83eba  gcc/testsuite/g++.dg/abi/base-defaulted1a.C
  c2ccbaf203c367700b9ab4aeb77c0565  gcc/testsuite/g++.dg/abi/base-defaulted2.C
  dfa3e514ddbfea694774f9c287f40215  gcc/testsuite/g++.dg/abi/bitfield1.C
*************** ad49acfed68f5e9d85c906091a1bec23  gcc/te
*** 15261,15267 ****
  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
--- 22248,22254 ----
  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
! ebdfc2a6d648ae0582864b02f6695514  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
*************** ad92c723d1e80f05d9f35deb51fa2634  gcc/te
*** 15273,15279 ****
  769d9a1ce7dda86bf62f8cceba27216a  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
  683d273f7a4481306d20ed785c1d122f  gcc/testsuite/g++.dg/abi/mangle-ttp1.C
  2bf2b2b32ea23abd24bfcabcde7d2a6a  gcc/testsuite/g++.dg/abi/mangle-union1.C
! 5e94edc723dfdbbd971982151251cae3  gcc/testsuite/g++.dg/abi/mangle1.C
  67767c9988084f28a3c29af0c9e34d2f  gcc/testsuite/g++.dg/abi/mangle10.C
  b99e258a9b112a189be8471163121e9a  gcc/testsuite/g++.dg/abi/mangle13.C
  c725405daaacb49e8bb670b03926b8c1  gcc/testsuite/g++.dg/abi/mangle15.C
--- 22260,22266 ----
  769d9a1ce7dda86bf62f8cceba27216a  gcc/testsuite/g++.dg/abi/mangle-regparm1a.C
  683d273f7a4481306d20ed785c1d122f  gcc/testsuite/g++.dg/abi/mangle-ttp1.C
  2bf2b2b32ea23abd24bfcabcde7d2a6a  gcc/testsuite/g++.dg/abi/mangle-union1.C
! 316b6127594bddb5a7fee8d42ceaa057  gcc/testsuite/g++.dg/abi/mangle1.C
  67767c9988084f28a3c29af0c9e34d2f  gcc/testsuite/g++.dg/abi/mangle10.C
  b99e258a9b112a189be8471163121e9a  gcc/testsuite/g++.dg/abi/mangle13.C
  c725405daaacb49e8bb670b03926b8c1  gcc/testsuite/g++.dg/abi/mangle15.C
*************** e75cc5b4f93d93fcfc58348033957996  gcc/te
*** 15295,15301 ****
  c7fa9241c0ab7d0401991f95a43f04e8  gcc/testsuite/g++.dg/abi/mangle3.C
  666480c5f3eb1ad457b8b7413869913c  gcc/testsuite/g++.dg/abi/mangle30.C
  bcb919314b5f7777d2da63935127cd54  gcc/testsuite/g++.dg/abi/mangle31.C
! b300099c7e5174547565083d8c78c65a  gcc/testsuite/g++.dg/abi/mangle32.C
  ff7a522e4b75ffd7f2c9c22596bb9d35  gcc/testsuite/g++.dg/abi/mangle33.C
  03db5b2978331b389723d875ecce081a  gcc/testsuite/g++.dg/abi/mangle34.C
  58775a282efb6a2018bdf401ea217bd0  gcc/testsuite/g++.dg/abi/mangle35.C
--- 22282,22288 ----
  c7fa9241c0ab7d0401991f95a43f04e8  gcc/testsuite/g++.dg/abi/mangle3.C
  666480c5f3eb1ad457b8b7413869913c  gcc/testsuite/g++.dg/abi/mangle30.C
  bcb919314b5f7777d2da63935127cd54  gcc/testsuite/g++.dg/abi/mangle31.C
! 994b603581a3d898c5d349310d776908  gcc/testsuite/g++.dg/abi/mangle32.C
  ff7a522e4b75ffd7f2c9c22596bb9d35  gcc/testsuite/g++.dg/abi/mangle33.C
  03db5b2978331b389723d875ecce081a  gcc/testsuite/g++.dg/abi/mangle34.C
  58775a282efb6a2018bdf401ea217bd0  gcc/testsuite/g++.dg/abi/mangle35.C
*************** d38901b61d8e8c42e6c0084cde0eaec0  gcc/te
*** 15348,15353 ****
--- 22335,22344 ----
  d987b63109ee0eb4b7f916f91d8d24be  gcc/testsuite/g++.dg/abi/mangle79.C
  eeee984fc971f0592acc52efb13ea93e  gcc/testsuite/g++.dg/abi/mangle8.C
  91fe59f4b908b8f1ebd09487c43147d8  gcc/testsuite/g++.dg/abi/mangle80.C
+ 243b5d1d894302a08529e7e4300eea4b  gcc/testsuite/g++.dg/abi/mangle81.C
+ 4023501102c8e0f81d65b42d89188330  gcc/testsuite/g++.dg/abi/mangle82.C
+ 68ffac7c297dac3aa02f23faf529b56f  gcc/testsuite/g++.dg/abi/mangle83.C
+ e4d26caeda2af1863c043ca61abdd37d  gcc/testsuite/g++.dg/abi/mangle84.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
*************** c57345fa3b5ca1a7540c77ee0ce25605  gcc/te
*** 15369,15375 ****
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
! dc8d04461395fe21c8df3c3ddc0eaefb  gcc/testsuite/g++.dg/abi/param2.C
  4f8a99ff3fb06bd92fa2824ba0222b0d  gcc/testsuite/g++.dg/abi/pr39188-1.h
  0b334e68ad96b9b585797769690bad26  gcc/testsuite/g++.dg/abi/pr39188-1a.C
  c96cb62975d4855a114a03ac254e17ce  gcc/testsuite/g++.dg/abi/pr39188-1b.C
--- 22360,22367 ----
  b1579268264426b91fb29ca4a7ae6672  gcc/testsuite/g++.dg/abi/offsetof.C
  ed79cf5bf3c45230ee9187c4cf51338e  gcc/testsuite/g++.dg/abi/packed1.C
  a6094bf319c105760bebe41768865b66  gcc/testsuite/g++.dg/abi/param1.C
! 82df7ba960283a3a341017a053d2e918  gcc/testsuite/g++.dg/abi/param2.C
! c6ee91a6fae5891b271cf08faea94bc7  gcc/testsuite/g++.dg/abi/pr121801.C
  4f8a99ff3fb06bd92fa2824ba0222b0d  gcc/testsuite/g++.dg/abi/pr39188-1.h
  0b334e68ad96b9b585797769690bad26  gcc/testsuite/g++.dg/abi/pr39188-1a.C
  c96cb62975d4855a114a03ac254e17ce  gcc/testsuite/g++.dg/abi/pr39188-1b.C
*************** bd9c0fde9dccf621670ef786d1dcee44  gcc/te
*** 15390,15395 ****
--- 22382,22388 ----
  b4d1753efd5208c2231f059ddbb39eca  gcc/testsuite/g++.dg/abi/pr60336-6.C
  916ce59421f5bddf0aab3a88745f21ed  gcc/testsuite/g++.dg/abi/pr60336-7.C
  95dcf6344996ed801623583100203b45  gcc/testsuite/g++.dg/abi/pr60336-8.C
+ a76d6ec569a9e846ffe6201d11d95545  gcc/testsuite/g++.dg/abi/pr60336-8a.C
  44a5b608387eb18b8ef0247620da3020  gcc/testsuite/g++.dg/abi/pr60336-9.C
  a31c4f8195ac1b72fe05754f188d263f  gcc/testsuite/g++.dg/abi/pr68355.C
  0f7096a6305ff4b02fefa008d96ba4d5  gcc/testsuite/g++.dg/abi/pr70182.C
*************** a612359f7851a82e1755e8a1d7d750c8  gcc/te
*** 15405,15412 ****
  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
  8deae0db66776c34c77f2551c9679b7c  gcc/testsuite/g++.dg/abi/rtti2.C
  29332af8c5e95e4a72ba540bd8b29ec0  gcc/testsuite/g++.dg/abi/rtti3.C
--- 22398,22405 ----
  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
! c854c319ce1b37f9b739947c9d1a7dcc  gcc/testsuite/g++.dg/abi/ref-temp1.C
! 7ba02da5ad84221b7ffedd02c0b02036  gcc/testsuite/g++.dg/abi/regparm1.C
  d90943e976dded1f4182aeb500d1f2c7  gcc/testsuite/g++.dg/abi/rtti1.C
  8deae0db66776c34c77f2551c9679b7c  gcc/testsuite/g++.dg/abi/rtti2.C
  29332af8c5e95e4a72ba540bd8b29ec0  gcc/testsuite/g++.dg/abi/rtti3.C
*************** c88701df415b47ac9bf5cba84cf379ab  gcc/te
*** 15435,15462 ****
  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
--- 22428,22492 ----
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
! 53e31dbb580c47605f7e76bc6cfd7704  gcc/testsuite/g++.dg/absvect.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
! e7df9a3155c5c6021ee481fcc76afa2a  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
! 8705636d8f03a04f16322230221596d5  gcc/testsuite/g++.dg/analyzer/exception-could-throw-1.C
! e975b4050956fb04b44b1cf687bc1223  gcc/testsuite/g++.dg/analyzer/exception-could-throw-2.C
! 79c4d9672f615c91ea546d9b6e81b315  gcc/testsuite/g++.dg/analyzer/exception-dynamic-spec.C
! b7cc4db0048590967f65e2ccae3f4e06  gcc/testsuite/g++.dg/analyzer/exception-ice-pr124139.C
! 4aaf4a64ceb0d1984e750bdc7dd2ac67  gcc/testsuite/g++.dg/analyzer/exception-leak-1.C
! 40c88195f89626f8dfdfc68e7ec02e40  gcc/testsuite/g++.dg/analyzer/exception-leak-2.C
! dac03e4bc7d4682a3de3e86e75f32a05  gcc/testsuite/g++.dg/analyzer/exception-leak-3.C
! 6a37b4d9e5bed06fccaed37027176b40  gcc/testsuite/g++.dg/analyzer/exception-leak-4.C
! 21cb105a9af4c5ad140e076e8041cf46  gcc/testsuite/g++.dg/analyzer/exception-leak-5.C
! 7255780786b3a0b5451a1fc6b8f3333f  gcc/testsuite/g++.dg/analyzer/exception-leak-6.C
! 7e79b38e5b1b7a3c8d25e5683c3dcb74  gcc/testsuite/g++.dg/analyzer/exception-nothrow.C
! 8825e519ef508bac6f04957c8fd895bb  gcc/testsuite/g++.dg/analyzer/exception-path-1-sarif.py
! 0fc933d5d3de38da64b99e87f333dda0  gcc/testsuite/g++.dg/analyzer/exception-path-1.C
! 39d8173227e01a954ba7d2c4b435fedb  gcc/testsuite/g++.dg/analyzer/exception-path-catch-all-1.C
! 9219aa6a5030d49b03e40458fe07ac86  gcc/testsuite/g++.dg/analyzer/exception-path-catch-all-2.C
! 1ac06deb8b2689e032efad4984d05413  gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2-sarif.py
! ee58a97d53ad4d63b2762fb6124de32a  gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C
! 9b950900022e1f3b8b27e17519f218fe  gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple.C
! c5db7a60c83a4e066bc1ef093a602a52  gcc/testsuite/g++.dg/analyzer/exception-path-unwind-single.C
! c0c6c8a9744bdada89df289a7570f5e0  gcc/testsuite/g++.dg/analyzer/exception-path-with-cleanups.C
! 6d7868807b7031a7fb5416d2c132f8c1  gcc/testsuite/g++.dg/analyzer/exception-rethrow-1.C
! 5f82db64970ffaa0fc497347b171a266  gcc/testsuite/g++.dg/analyzer/exception-rethrow-2.C
! f6352dae6206f4292fc7d67730bf81ce  gcc/testsuite/g++.dg/analyzer/exception-rethrow-3.C
! 96a1738c908d386fe5fecaff94e2637b  gcc/testsuite/g++.dg/analyzer/exception-stack-1.C
! 98c2414b81e410dff54a7c763ef8d630  gcc/testsuite/g++.dg/analyzer/exception-stack-2.C
! c53f1ef0c637a90cc988d801af41f460  gcc/testsuite/g++.dg/analyzer/exception-subclass-1.C
! 3c10867fbf89524c306ea9dc3d94aaa8  gcc/testsuite/g++.dg/analyzer/exception-subclass-2.C
! 57d34e2bc9948b3d199616c5c5b66473  gcc/testsuite/g++.dg/analyzer/exception-value-1.C
! eafad55d1edd46129b380a1d3be7e6ed  gcc/testsuite/g++.dg/analyzer/exception-value-2.C
! 5ec6ca40e82913e055f98bcccedbb884  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C
! 8af6595d017cc13830b07da9e9baccca  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C
! 811b95ab38514f847c24f07a592239c7  gcc/testsuite/g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C
  e000c1d398eb170979b06c1a5a317727  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
+ acd12a34fb1477ca263e7f38269f40d0  gcc/testsuite/g++.dg/analyzer/fno-exception.C
+ 7744e4ee593e6479779dcfc983f35022  gcc/testsuite/g++.dg/analyzer/ice-pr116228.C
+ d1c56cd4e3f6fde52c61d600415eff40  gcc/testsuite/g++.dg/analyzer/ice-pr124073.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
  6c9235c35035b59cc0a83132c639d00f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-3.C
  715a17af2dffd8cf140b06abfca9c16a  gcc/testsuite/g++.dg/analyzer/infinite-recursion-pr63388.C
! 3f12457ffcbe30a9e7ccc5a5bae189af  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
! c7a5d978103dcbcf603f02011660afbb  gcc/testsuite/g++.dg/analyzer/new-2.C
  8ad43f6e758f86ed25166bb37472f8d4  gcc/testsuite/g++.dg/analyzer/new-vs-malloc.C
! 7199aea25680388d3d6f4f5755f2c06f  gcc/testsuite/g++.dg/analyzer/noexcept-new.C
! bb6ab4e8a4de2accd7199be98df5e6bd  gcc/testsuite/g++.dg/analyzer/nrvo-1.C
! 2c853d42f3717c6f2b59a5c39ac9eac0  gcc/testsuite/g++.dg/analyzer/nrvo-2.C
! 27df4512dba2c6ba6b2ae172aa11075a  gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1.C
! f472774f4e98d0d228b9ee94193fb12d  gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1b.C
! e1defbf7b06586f89d6b2e9006b558f6  gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2.C
! 788e59d14b7c1e46888b8b25cd9e499d  gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2b.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
*************** c12e9b1c9d4173ff464e74ea78ab647e  gcc/te
*** 15470,15492 ****
  a2fd899038ad8292f72a6822b197251e  gcc/testsuite/g++.dg/analyzer/pr93899.C
  eaa9774dd2e5983a606c09705cc0910d  gcc/testsuite/g++.dg/analyzer/pr93950.C
  8be1b2df9cb18eee82a4ec915b0dc6bd  gcc/testsuite/g++.dg/analyzer/pr94011.C
! c90584aac63ae727d47d415aa0a5f85b  gcc/testsuite/g++.dg/analyzer/pr94028.C
  a4e6ecf8eb5d90837d394182e0f66932  gcc/testsuite/g++.dg/analyzer/pr94503.C
  52afe02bc242a0578da458c6b600f7a9  gcc/testsuite/g++.dg/analyzer/pr94816.C
  6509a360a1cfc8a35798c6570be50e53  gcc/testsuite/g++.dg/analyzer/pr95042.C
! 1f1ca76966db742950e5c41205a0e5c5  gcc/testsuite/g++.dg/analyzer/pr96641.C
  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
--- 22500,22526 ----
  a2fd899038ad8292f72a6822b197251e  gcc/testsuite/g++.dg/analyzer/pr93899.C
  eaa9774dd2e5983a606c09705cc0910d  gcc/testsuite/g++.dg/analyzer/pr93950.C
  8be1b2df9cb18eee82a4ec915b0dc6bd  gcc/testsuite/g++.dg/analyzer/pr94011.C
! 34d0115255b04c3a4bda51b4a395c48e  gcc/testsuite/g++.dg/analyzer/pr94028.C
  a4e6ecf8eb5d90837d394182e0f66932  gcc/testsuite/g++.dg/analyzer/pr94503.C
  52afe02bc242a0578da458c6b600f7a9  gcc/testsuite/g++.dg/analyzer/pr94816.C
  6509a360a1cfc8a35798c6570be50e53  gcc/testsuite/g++.dg/analyzer/pr95042.C
! 4e787b50e4ea41d78310ab04e7ef573b  gcc/testsuite/g++.dg/analyzer/pr96641.C
  193b3e5ec79d8a574b99f4e8d24f1371  gcc/testsuite/g++.dg/analyzer/pr96643.C
  81f94699d318a0dddde448db3be19c82  gcc/testsuite/g++.dg/analyzer/pr96723.C
  0e3d325deb7c52ea428d98b81934cc8f  gcc/testsuite/g++.dg/analyzer/pr96763.C
! 27831ce40552def22348f457a472d536  gcc/testsuite/g++.dg/analyzer/pr97116.C
  fd2e08e4f10e3ceec481fed9289f968c  gcc/testsuite/g++.dg/analyzer/pr97489.C
  db2b7f6c1be40cc086aa678eb7d66cad  gcc/testsuite/g++.dg/analyzer/pr99064.C
+ b693ff6f9735fca106feba8f26ea7569  gcc/testsuite/g++.dg/analyzer/state-diagram.C
+ 93a16b4e27481524ed286fec0ffd5b36  gcc/testsuite/g++.dg/analyzer/std-unexpected.C
+ 987cfa86290bc36c48063e15a43ae459  gcc/testsuite/g++.dg/analyzer/std-unique_ptr-1.C
+ 467b81263f3c9fb6ddf0a2fb9500917a  gcc/testsuite/g++.dg/analyzer/std-unique_ptr-2.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
! 8e58751f1960ba6aa8593e142a836407  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
*************** b62cd97dedd00a9fbbd509c4e3d6264b  gcc/te
*** 15496,15501 ****
--- 22530,22536 ----
  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
+ eedaa19d1ebbb6f2ecc8a364fb1ddecd  gcc/testsuite/g++.dg/asan/coroutines1.C
  5e2fbdaa2b9b39d6bf1f290e581722f4  gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C
  0acf775bdbd67ca675dda4934aeacb5b  gcc/testsuite/g++.dg/asan/deep-tail-call-1.C
  b2988101c810da55bd5189f442c038b7  gcc/testsuite/g++.dg/asan/deep-thread-stack-1.C
*************** e0fa4a9e3d3debbc97f800a78bdcbfdb  gcc/te
*** 15563,15569 ****
  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
--- 22598,22604 ----
  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
! a858c815fd13ff1990a544d2ab7a4ea1  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
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 15575,15581 ****
  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
--- 22610,22616 ----
  13aa9df754ce327f35901d755310d167  gcc/testsuite/g++.dg/charset/asm5.c
  188e64ef71cd1832cf590f89eb899d5b  gcc/testsuite/g++.dg/charset/attribute1.c
  5ec905da0c5303d292f6f23f2befdd9b  gcc/testsuite/g++.dg/charset/attribute2.c
! d466c1a044d97c9efbbce879574672d7  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
*** 15614,15620 ****
  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
--- 22649,22655 ----
  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
! 0931c51d57c430f95213dc6c4e9ffe79  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
*** 15635,15641 ****
  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
--- 22670,22676 ----
  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
! 297ea0158c6b160c7526f5b67f34bce8  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
*** 15737,15743 ****
  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
--- 22772,22778 ----
  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
! 3e9d771dd6d6b977f8eeb2b9b2e1a028  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
*************** a54467f50f9862e2fbf96195651a862b  gcc/te
*** 15758,15764 ****
  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
--- 22793,22801 ----
  2a854d20a12abe650d586d8c015c4c6d  gcc/testsuite/g++.dg/concepts/auto3.C
  314f4fbb5e53f3fbd3d587c3fc48977f  gcc/testsuite/g++.dg/concepts/auto5.C
  fc455dbc896f2229d1bca77b1dfcea26  gcc/testsuite/g++.dg/concepts/auto7.C
! 3e88e17535f9cd43a353095a9d4a1d17  gcc/testsuite/g++.dg/concepts/auto7a.C
! 0261c4896e936d74d89ccd277820470a  gcc/testsuite/g++.dg/concepts/auto7b.C
! affc7c14b264f2f16b676aaebfec39e2  gcc/testsuite/g++.dg/concepts/auto7c.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
*************** c3d50386d0fb64d527719c9a7fb90858  gcc/te
*** 15817,15825 ****
  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
--- 22854,22862 ----
  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
! f1e699c2d174c8c1fc03f3e1ca320d40  gcc/testsuite/g++.dg/concepts/nested-diagnostics-1-truncated.C
! 75fce22fa78c09dfa315c5a036197b33  gcc/testsuite/g++.dg/concepts/nested-diagnostics-1.C
! ab1e591a56588e10a1313eb9ada9c8e3  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
*************** dfe35dd56ee2521e84d1e303bbfae2e6  gcc/te
*** 15832,15842 ****
  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
--- 22869,22882 ----
  f94bda44b57e3eca7abceac1801f6a89  gcc/testsuite/g++.dg/concepts/placeholder6.C
  a72ced9853beafaaa9dc607bf0968c82  gcc/testsuite/g++.dg/concepts/pr101099.C
  91bbc43bd292628bdbb650fc92890934  gcc/testsuite/g++.dg/concepts/pr105061.C
+ 1d90209b290c2d2e5faf7245f27737b0  gcc/testsuite/g++.dg/concepts/pr120618.C
+ cc2e32ec9a133a1a0675e05778bfc64f  gcc/testsuite/g++.dg/concepts/pr121832.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
! bf564d5cd0d93a1f489993ef4178530c  gcc/testsuite/g++.dg/concepts/pr67249.C
! d6021974e4c8d694b8c1fbdd55c276ad  gcc/testsuite/g++.dg/concepts/pr67249a.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
*************** c55dcfa7cbed9be2ef74cc34caaac38e  gcc/te
*** 15889,16010 ****
  47d50ea9841dfff2e1add4fe21d8cdd8  gcc/testsuite/g++.dg/conflict-markers-1.C
  f8f8119851ae2427bb5baa9f11ad5936  gcc/testsuite/g++.dg/conflict-markers-2.C
  f25f03bef75b49b3242b2b981a26687a  gcc/testsuite/g++.dg/constexpr-null1.C
! b943cfa99f231ecca89a127be47e62bb  gcc/testsuite/g++.dg/contracts/backtrace_handler/Makefile
! 223c090c01345af06b66ab0000b3915c  gcc/testsuite/g++.dg/contracts/backtrace_handler/README
! 89a180dc1e56599e0c77c9d281e46fbb  gcc/testsuite/g++.dg/contracts/backtrace_handler/assert_fail.cpp
! bd9982768438a217a3a6ac91276d4897  gcc/testsuite/g++.dg/contracts/backtrace_handler/example_out.txt
! 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
! 7d9c8a094730ae5af47293ccb704bb25  gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C
! 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
! 976d7e6f6d60f6f3099e288e26993286  gcc/testsuite/g++.dg/contracts/except_preload_handler/handle_contract_violation.cpp
! 460175ab5b30061d80960faa912cdb56  gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/Makefile
! 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
! dc5dacc4f67e341524d85d082bb7a2d0  gcc/testsuite/g++.dg/contracts/preload_handler/handle_contract_violation.cpp
! c756cce4ff3f49b22913831f3f1cce4d  gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/Makefile
! 7a6038918674d84254d66a174f74f23c  gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/README
! 750d70063c91e040a6eb22e224cb894e  gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/assert_fail.cpp
! 788020aa04295c84bca4ce22cde827ba  gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/handle_contract_violation.cpp
! bd7d5494b5a353e621c6049c6ee7a332  gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/nocontinue.cpp
  86b1b880d2414f17dc8db282f49ae6e2  gcc/testsuite/g++.dg/conversion/Wwrite-strings.C
  f0aed431ce3357281e21fdd3e10a7644  gcc/testsuite/g++.dg/conversion/access1.C
  cae83e7bca15183b3b346f9a00467f2c  gcc/testsuite/g++.dg/conversion/ambig1.C
--- 22929,23013 ----
  47d50ea9841dfff2e1add4fe21d8cdd8  gcc/testsuite/g++.dg/conflict-markers-1.C
  f8f8119851ae2427bb5baa9f11ad5936  gcc/testsuite/g++.dg/conflict-markers-2.C
  f25f03bef75b49b3242b2b981a26687a  gcc/testsuite/g++.dg/constexpr-null1.C
! f71f3ca44bca1415964bad43748c225e  gcc/testsuite/g++.dg/contracts/cpp26/BZ121936-workaround-noipa.C
! ea7cee7225ac6cf98ed35fdc2d404f77  gcc/testsuite/g++.dg/contracts/cpp26/assertion-statement-errors.C
! 9a4494c752ab90fc5a53a46f099340f5  gcc/testsuite/g++.dg/contracts/cpp26/assertion-statement.C
! 727897eee2926c8fa0b1341d83049571  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p11-observe.C
! dfd7ebc4064b7d3712d1bcfc26b133c3  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p14.C
! cb2ca106f72124b12f8cb671ad33e4d7  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-2.C
! 6006ac7780d535b9b4d6531fc3a092dd  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-3.C
! 1b2e4e805bce5a24b5085ecb222b9989  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-4.C
! 1488060993a6742a8362659a55f85937  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-5.C
! b4cdfd1f68d98ae1591f73a7102137d9  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-post.C
! d34551f0fa037e68da6f04f85f3c9179  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF-pre.C
! 7e524c03e20a39e152820ebc88ffda07  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF2.C
! 95504a02ab1e6d0cfed38891ef9a7f04  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF3.C
! 1e8f49a59f054ca1799da1e24dbed398  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17-SMF4.C
! c21211b4be0c9e0826f6d1869567664d  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p17.C
! 6b08d9759c2eb1e6585c4f5421d2fd59  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p4-error.C
! 0afe69a756056c142b375eb40250812a  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p4.C
! be892275c368a2986b53d48a115a663b  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p6.C
! de469835fa2d0f9d4c8b18a256aa97b7  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p6.observe.C
! 4577c57ef596f164df664590cfec9cb9  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p7.3.C
! a1f6b480f3bec7ed4dbac50a5f7f89b3  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p8-2.C
! 051716109086ec3036567a6f6adf4e44  gcc/testsuite/g++.dg/contracts/cpp26/basic.contract.eval.p8.C
! 22e7409253edd05900bc4b7fd6eccf18  gcc/testsuite/g++.dg/contracts/cpp26/basic.scope.contract.p1.C
! 9b7ba0d56e419d6aee6c2e9bbdfde638  gcc/testsuite/g++.dg/contracts/cpp26/basic.scope.contract.p2.1.C
! 64d8e893a9c04af3f3e6933b4558d730  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-all.C
! 111313989332adb69f74d69bd191c598  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-non-trivial.C
! ea82a98059d75c9a4e25b55f442654a8  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-none.C
! 7ba4e9db98d1f77f097f1b1e909ae808  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/callerside-checks-pre.C
! 7be59953187231fbc478bf4118945511  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/ctor.C
! ac9d54d3b64dc15e5709743381a7c474  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-post.C
! 8c6d97f79df22113f94f251a07690a56  gcc/testsuite/g++.dg/contracts/cpp26/callerside-checks/freefunc-noexcept-pre.C
! 26deb0862409421701628482dd264042  gcc/testsuite/g++.dg/contracts/cpp26/contract-assert-run.C
! 811d8c0638c55322009c1eadba42687d  gcc/testsuite/g++.dg/contracts/cpp26/contract-assert-warn-attributes.C
! 50fe571f1a05ebe44e059946a0374d99  gcc/testsuite/g++.dg/contracts/cpp26/contract-violation-noexcept.C
! 3ea03f0cb5928842c4413fa79d543dda  gcc/testsuite/g++.dg/contracts/cpp26/contract-violation-noexcept2.C
! e230ffaa5c2fae5ac62812d0c96d2091  gcc/testsuite/g++.dg/contracts/cpp26/contract_genericize.C
! 4d16f193c0791ffb54d23cbe5c00caff  gcc/testsuite/g++.dg/contracts/cpp26/contracts-friend1.C
! d1853c2ad1397a25439c4cfa963c9e27  gcc/testsuite/g++.dg/contracts/cpp26/contracts-nested-class1.C
! a1999016ae180cf90bb9af89e255f98c  gcc/testsuite/g++.dg/contracts/cpp26/contracts-nested-class2.C
! 241d2cf0448f169d8da759ade1f0cffd  gcc/testsuite/g++.dg/contracts/cpp26/contracts-tmpl-spec2.C
! 84a7fde8a31f7e41b37379498acf8103  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p4.C
! 4c7774344f58dfc19e3922ab7a31543f  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p6.C
! 456ff1a786fe2f1c8323cc8ef6ac8821  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7-t1.C
! 9e9656451c9f44813a94cd7274318c47  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7-t2.C
! be2e160e7e161c06c03d9dd04aaabcc0  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.func.p7.C
! 242547f530a4b8ee83507839e03451a6  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1-2.C
! 31de51f92bebd17cb1f7c7e8932f03d1  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1-NT.C
! 3d182fded99412da7df4614dcfaedad4  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p1.C
! 0a6307ed5fa186a3d3b23b6a6e75cf29  gcc/testsuite/g++.dg/contracts/cpp26/dcl.contract.res.p2.C
! 95603c70771cd7f65376dca91f7e5bf8  gcc/testsuite/g++.dg/contracts/cpp26/debug-and-opt.C
! a118e83dd9fe9c3ce215820a315cf60c  gcc/testsuite/g++.dg/contracts/cpp26/deferred1.C
! 81315c8a35ce1c0dfde3dcdbe461425d  gcc/testsuite/g++.dg/contracts/cpp26/definition-checks/contract-assert-no-def-check.C
! f97289592c07f8ec90cf0426dc7fb24d  gcc/testsuite/g++.dg/contracts/cpp26/dependent_contract.C
! 85e6c115a895fb06a4030d0b081ff489  gcc/testsuite/g++.dg/contracts/cpp26/empty-nt-param.C
! 9ef6fbecc33a774f52a3be1123643336  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-2.C
! 47f8344a4cc52085ec4cc2bd5bb5e3af  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-3.C
! 7b85feb2692641a327f9da443c0864f8  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7-4.C
! b6a1abc97434f28d3e837d5d66adda4a  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.id.unqual.p7.C
! f56e1b41a7ecc513dfb3c45a0147ac17  gcc/testsuite/g++.dg/contracts/cpp26/expr.prim.lambda.closure.p10.C
! 02ab754564954ef185777cf307e8b7dc  gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq-error.C
! 753463b10345184f12cb46eb08a57c7c  gcc/testsuite/g++.dg/contracts/cpp26/function-contract-specifier-seq.C
! adc0af6b60c5a74750b3c0ff85f1c2b3  gcc/testsuite/g++.dg/contracts/cpp26/intro.compliance.general.p2.3.4.C
! 0dfaea15e4dc739778127abf7bb77df3  gcc/testsuite/g++.dg/contracts/cpp26/lambda.C
! 3f0401bd767954f784a742263f888055  gcc/testsuite/g++.dg/contracts/cpp26/name_mangling.C
! febc1f95c06938bcfdd0ae7c5484db5e  gcc/testsuite/g++.dg/contracts/cpp26/non-trivial-ice.C
! a8ee6912ff66f27669298b7ac59ab4c9  gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-post.C
! d8c0172633258c9c89f92b621bba793d  gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/freefunc-noexcept-pre.C
! f19aaf8f7386fda683dbac8ae1ef1b51  gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/func-noexcept-assert.C
! 90dee0ff56dbe5696bb01cfd29e2bad9  gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-post.C
! 497083c59440fdcccd269e951c6ece2e  gcc/testsuite/g++.dg/contracts/cpp26/outline-checks/memberfunc-noexcept-pre.C
! fdda55e654375389d9662009987da0af  gcc/testsuite/g++.dg/contracts/cpp26/over.call.func.p3.1.C
! 96ea1ad173add3d3c0cb78b9a3d27bde  gcc/testsuite/g++.dg/contracts/cpp26/pr113968.C
! 941298c828ee5752525dc3ff9ff64f06  gcc/testsuite/g++.dg/contracts/cpp26/src-loc-0.C
! 3411c6f4e870a85de9fcda8947457d10  gcc/testsuite/g++.dg/contracts/cpp26/src-loc-1.C
! 250ff36467a544e6a031976bf666c803  gcc/testsuite/g++.dg/contracts/cpp26/src-loc-2.C
! 27802d916a6f5ec77b570cdf2e237298  gcc/testsuite/g++.dg/contracts/cpp26/throwing-violation-handler.cc
! b4cae67120093a9f342066bb6c7fc435  gcc/testsuite/g++.dg/contracts/cpp26/unused_warning.C
! 5985da8eae7f6eb747bdec15b4db189a  gcc/testsuite/g++.dg/contracts/cpp26/vaargs.C
! 53445e69f769643e6c23e80c7863f22c  gcc/testsuite/g++.dg/contracts/cpp2a/check-err.C
  86b1b880d2414f17dc8db282f49ae6e2  gcc/testsuite/g++.dg/conversion/Wwrite-strings.C
  f0aed431ce3357281e21fdd3e10a7644  gcc/testsuite/g++.dg/conversion/access1.C
  cae83e7bca15183b3b346f9a00467f2c  gcc/testsuite/g++.dg/conversion/ambig1.C
*************** cbcf61ac3695e850097b05502475b900  gcc/te
*** 16111,16120 ****
  8e506a07bfdc2a3026e690db3623924e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-06-main.C
  68773c43aeb0b545b4c8f3607030c59d  gcc/testsuite/g++.dg/coroutines/co-await-syntax-07-varargs.C
  8c6d64e743263e804e271816758eee9d  gcc/testsuite/g++.dg/coroutines/co-await-syntax-08-lambda-auto.C
! d55bcf698a9eac24abcdc2b03f69ae41  gcc/testsuite/g++.dg/coroutines/co-await-syntax-09-convert.C
! 25347f0b2c215dd1765382a13da50787  gcc/testsuite/g++.dg/coroutines/co-await-syntax-10.C
! ca053d5ed04579f51973e13fbabe5372  gcc/testsuite/g++.dg/coroutines/co-await-syntax-11.C
! 42365d3c97f64472b757e666f12fb257  gcc/testsuite/g++.dg/coroutines/co-await-void_type.C
  5def3f379c766ef125c81bd35abefe0a  gcc/testsuite/g++.dg/coroutines/co-return-syntax-01-outside-fn.C
  98e775f5b34dcef6b160d65d69459313  gcc/testsuite/g++.dg/coroutines/co-return-syntax-02-outside-fn.C
  931afa81004c531aeaa7975c306a05e3  gcc/testsuite/g++.dg/coroutines/co-return-syntax-03-auto.C
--- 23114,23123 ----
  8e506a07bfdc2a3026e690db3623924e  gcc/testsuite/g++.dg/coroutines/co-await-syntax-06-main.C
  68773c43aeb0b545b4c8f3607030c59d  gcc/testsuite/g++.dg/coroutines/co-await-syntax-07-varargs.C
  8c6d64e743263e804e271816758eee9d  gcc/testsuite/g++.dg/coroutines/co-await-syntax-08-lambda-auto.C
! eb915b780881f28d03dc9f6800f0db70  gcc/testsuite/g++.dg/coroutines/co-await-syntax-09-convert.C
! 4feef272e98391897a3783ded58efcf9  gcc/testsuite/g++.dg/coroutines/co-await-syntax-10.C
! 9e62f44891c288ec815b136b67dcab6d  gcc/testsuite/g++.dg/coroutines/co-await-syntax-11.C
! 1bb85192f6b7cec9fa1c504a9a49de32  gcc/testsuite/g++.dg/coroutines/co-await-void_type.C
  5def3f379c766ef125c81bd35abefe0a  gcc/testsuite/g++.dg/coroutines/co-return-syntax-01-outside-fn.C
  98e775f5b34dcef6b160d65d69459313  gcc/testsuite/g++.dg/coroutines/co-return-syntax-02-outside-fn.C
  931afa81004c531aeaa7975c306a05e3  gcc/testsuite/g++.dg/coroutines/co-return-syntax-03-auto.C
*************** a8b153bbc8ce941d24c7c0e6ab6c5831  gcc/te
*** 16125,16131 ****
  01b708a2c3de35e1c4714ed8e4223ac4  gcc/testsuite/g++.dg/coroutines/co-return-syntax-08-bad-return.C
  3583594a4a80757f5d4368c8d77a858c  gcc/testsuite/g++.dg/coroutines/co-return-syntax-09-lambda-auto.C
  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
--- 23128,23134 ----
  01b708a2c3de35e1c4714ed8e4223ac4  gcc/testsuite/g++.dg/coroutines/co-return-syntax-08-bad-return.C
  3583594a4a80757f5d4368c8d77a858c  gcc/testsuite/g++.dg/coroutines/co-return-syntax-09-lambda-auto.C
  6707f9fc8aacf660ae1beb8d09e4c119  gcc/testsuite/g++.dg/coroutines/co-return-syntax-10-movable.C
! 41121b0c10ae061c11e86e4cb97731de  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
*************** cb41fef7448625fa4e0c8fd96e24fc4d  gcc/te
*** 16163,16169 ****
  2d774ec6394ae7666d4e6bc4ec3e6183  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
--- 23166,23171 ----
*************** ef7a17d165b83f4a1f6f2146ca741d68  gcc/te
*** 16183,16189 ****
  dd1a29fabad954f753ab8031a31e31d0  gcc/testsuite/g++.dg/coroutines/pr104051-0.C
  c8f94348fa3a6378ec5c6fd9589d0c4c  gcc/testsuite/g++.dg/coroutines/pr104051-1.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
--- 23185,23191 ----
  dd1a29fabad954f753ab8031a31e31d0  gcc/testsuite/g++.dg/coroutines/pr104051-0.C
  c8f94348fa3a6378ec5c6fd9589d0c4c  gcc/testsuite/g++.dg/coroutines/pr104051-1.C
  b134bf48c5d1c37a3f48e0c7f25bd714  gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
! f54d42ee8e8df49f95a66d4102587e8e  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
*************** e871dade9f29aef626c6c2b971763df6  gcc/te
*** 16204,16211 ****
  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
--- 23206,23213 ----
  2d41ae2373f79574814b547e58adf65b  gcc/testsuite/g++.dg/coroutines/pr110171.C
  a9a380461a08693fcb6e2a8d0c088a72  gcc/testsuite/g++.dg/coroutines/pr110635.C
  20c31ba7b9813c7592788f115c164999  gcc/testsuite/g++.dg/coroutines/pr110855.C
! ffb931dc20a2f271234c85c6c4b80ac0  gcc/testsuite/g++.dg/coroutines/pr110871.C
! 7581390d97b7b28e2e708d0c89e7daca  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
*************** a086058df225e5fda842f4ebd12d6dbd  gcc/te
*** 16227,16232 ****
--- 23229,23236 ----
  4ba2a97e93d914ad5510f0a3df7d5dba  gcc/testsuite/g++.dg/coroutines/pr120273.C
  639bf3d722d542a1aab7bcbf3114716a  gcc/testsuite/g++.dg/coroutines/pr120453.C
  5e0a6f554522f0537a21112c91d33895  gcc/testsuite/g++.dg/coroutines/pr120495.C
+ cf70192c32f53d0ffe102b573d4080be  gcc/testsuite/g++.dg/coroutines/pr121643.C
+ 81dd0f7a2283cf853dddabb957fce0eb  gcc/testsuite/g++.dg/coroutines/pr123975.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
*************** b90769c3a7417b0adde5c9f3b39d0437  gcc/te
*** 16236,16242 ****
  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
--- 23240,23246 ----
  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
! 241ac4eff23cb81753c57fe65ff101c4  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
*************** e7ca2ef0f0db55f629fcfb4d4227cd60  gcc/te
*** 16283,16291 ****
  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
--- 23287,23295 ----
  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
! 556c0a9c0d7998ff4488f25472322dbe  gcc/testsuite/g++.dg/coroutines/ramp-return-a.C
  231dc0079b4e5761aeb42ad29fc8b10f  gcc/testsuite/g++.dg/coroutines/ramp-return-b.C
! 475f4e807ea15512866a23c8f0e20ee0  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
*************** c98be24ff3659f0c1eaa8389c0f528c5  gcc/te
*** 16372,16378 ****
  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
--- 23376,23382 ----
  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
! 6640a4bffa212d1bc4cb57089d065a0d  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
*************** a1e493fe52a51c424874f946c2d4dd19  gcc/te
*** 16394,16400 ****
  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
--- 23398,23404 ----
  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
! 6a8cfa17261ced2af232f482be80d5b0  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
*************** ab314765ac0eb201bb3e11222207ee40  gcc/te
*** 16404,16410 ****
  f5e05a528274f5ccbd128504d532f540  gcc/testsuite/g++.dg/coroutines/torture/pr119916.C
  7056081fe2b2eea558f97e0e51454360  gcc/testsuite/g++.dg/coroutines/torture/pr120243-unhandled-1.C
  4462334c65b930d35ef9130fd5dee6e3  gcc/testsuite/g++.dg/coroutines/torture/pr120243-unhandled-2.C
! 63b467f89662af371e2a58a44b0b9042  gcc/testsuite/g++.dg/coroutines/torture/pr121219.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
--- 23408,23414 ----
  f5e05a528274f5ccbd128504d532f540  gcc/testsuite/g++.dg/coroutines/torture/pr119916.C
  7056081fe2b2eea558f97e0e51454360  gcc/testsuite/g++.dg/coroutines/torture/pr120243-unhandled-1.C
  4462334c65b930d35ef9130fd5dee6e3  gcc/testsuite/g++.dg/coroutines/torture/pr120243-unhandled-2.C
! eba2bcad541e74ccc97de389bf440b21  gcc/testsuite/g++.dg/coroutines/torture/pr121219.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
*************** b8d20ab3fff2d35109e30a6a907845f1  gcc/te
*** 16463,16468 ****
--- 23467,23475 ----
  4722600ae996f63d5b716eb7620443ab  gcc/testsuite/g++.dg/cpp/embed-24.C
  4983500878e03a3abd76e7f7b681a086  gcc/testsuite/g++.dg/cpp/embed-25.C
  1cd2ff1ccb4cd02ce8ce68e808b8bc3e  gcc/testsuite/g++.dg/cpp/embed-26.C
+ 54f4ee2696995576c4c5fce0f28eb708  gcc/testsuite/g++.dg/cpp/embed-27.C
+ 616061a95b206fb48748193f412fa24c  gcc/testsuite/g++.dg/cpp/embed-28.C
+ c25d02a801170c4ea6811ff9f833a443  gcc/testsuite/g++.dg/cpp/embed-29.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
*************** b8d20ab3fff2d35109e30a6a907845f1  gcc/te
*** 16470,16475 ****
--- 23477,23483 ----
  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
+ bd0754a02dda9dfe403c31a8275a7a42  gcc/testsuite/g++.dg/cpp/if-comma-1.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
*************** ecc0ef1a879b400ac24f5ea090a2027c  gcc/te
*** 16665,16670 ****
--- 23673,23679 ----
  2c4b73fa235be0a7a7f59ce113d65ff8  gcc/testsuite/g++.dg/cpp0x/alias-decl-80.C
  0fea677a266ad89646463d41e4df0566  gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C
  2b0ac9ee7e77902ee76b92dfbfcc37b3  gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C
+ a80f2e9cdb6d31d5f4e4ff72bda47c3c  gcc/testsuite/g++.dg/cpp0x/alias-decl-conv1.C
  0c857f35d307877fbdc35abb07bb117c  gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286.C
  50768d1b6db3a8fc26c4cfb6c5811b35  gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286a.C
  ef369c9d8dbd4b3ba5c764f92fc53a46  gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286b.C
*************** dfa7add3a6946474911a4355e54f6f8f  gcc/te
*** 16703,16708 ****
--- 23712,23718 ----
  c83bc7f20dd1098f97cb408b9b24574d  gcc/testsuite/g++.dg/cpp0x/alignas21.C
  695b3ddd376a0c76e0e8ec1e2a348393  gcc/testsuite/g++.dg/cpp0x/alignas22.C
  c234dc1d677341200a08ebd49b1d3701  gcc/testsuite/g++.dg/cpp0x/alignas23.C
+ 8749775852fe507dae2e8250e8b17995  gcc/testsuite/g++.dg/cpp0x/alignas24.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
*************** c927462765eef1949fbb945e0a8b8a4a  gcc/te
*** 16795,16801 ****
  73e7dbc6a42c3b40a0b909358e12da0d  gcc/testsuite/g++.dg/cpp0x/auto56.C
  dde34d0c42712dec10d9a53ea21565d3  gcc/testsuite/g++.dg/cpp0x/auto57.C
  7051782825f2720fd5eee3be6f2027e9  gcc/testsuite/g++.dg/cpp0x/auto7.C
! 13b23623fc6ec1dc0109c253f332de7c  gcc/testsuite/g++.dg/cpp0x/auto9.C
  4a89b70ea75ae6415ffb0149eed4dc01  gcc/testsuite/g++.dg/cpp0x/bad_array_new1.C
  a8491f3e4ee92a8454ad6b7d6c1e4429  gcc/testsuite/g++.dg/cpp0x/bad_array_new2.C
  1ea60b441f8073714f5b0d7662a304e9  gcc/testsuite/g++.dg/cpp0x/bind.C
--- 23805,23811 ----
  73e7dbc6a42c3b40a0b909358e12da0d  gcc/testsuite/g++.dg/cpp0x/auto56.C
  dde34d0c42712dec10d9a53ea21565d3  gcc/testsuite/g++.dg/cpp0x/auto57.C
  7051782825f2720fd5eee3be6f2027e9  gcc/testsuite/g++.dg/cpp0x/auto7.C
! 2dba7814780bc9499d45a511a6abc729  gcc/testsuite/g++.dg/cpp0x/auto9.C
  4a89b70ea75ae6415ffb0149eed4dc01  gcc/testsuite/g++.dg/cpp0x/bad_array_new1.C
  a8491f3e4ee92a8454ad6b7d6c1e4429  gcc/testsuite/g++.dg/cpp0x/bad_array_new2.C
  1ea60b441f8073714f5b0d7662a304e9  gcc/testsuite/g++.dg/cpp0x/bind.C
*************** b8cd89a7510ad4bbf02ec052d02d2ee0  gcc/te
*** 16816,16821 ****
--- 23826,23832 ----
  eeac975a1b841cef4d5a4c468314ed8c  gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C
  6ef86dfa8bcd129320f2714974f8ad93  gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
  24bbf6c5e0f31296c48440d4dae33447  gcc/testsuite/g++.dg/cpp0x/constexpr-113083.C
+ cf48bd83fff3e69e5f82d30185ef08d0  gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C
  3e4cac522763806230540d3da6cc5ee1  gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C
  d079e67f3b2be485ac7aed93b70984d2  gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C
  329a82a822423273c0c0256fd27a6d52  gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
*************** b9007290e56f8c058df6fc2174bc755b  gcc/te
*** 16889,16894 ****
--- 23900,23907 ----
  b2e8cc3ca2686458232f6ab8399d9dda  gcc/testsuite/g++.dg/cpp0x/constexpr-93169.C
  bc7ccf4287a38e8f82df800db6150879  gcc/testsuite/g++.dg/cpp0x/constexpr-95307.C
  32c39fce8b20cb104d6da1cffca8a530  gcc/testsuite/g++.dg/cpp0x/constexpr-96241.C
+ 629f0389a900c8203177e0396b4ac416  gcc/testsuite/g++.dg/cpp0x/constexpr-97740a.C
+ eb45e434ffc94954a98ab41dfca4430c  gcc/testsuite/g++.dg/cpp0x/constexpr-97740b.C
  6aa74413b4ef74580a0a5da7abf23914  gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
  5f550fa68a208c2d1f3f6d02dca0b709  gcc/testsuite/g++.dg/cpp0x/constexpr-98295.C
  d08d3bdb37be475451a39fd6f72486e9  gcc/testsuite/g++.dg/cpp0x/constexpr-99.C
*************** e4e15e959aaae288fa7a722d7abb7509  gcc/te
*** 16964,16970 ****
  9b79d9e139bdca82ac944985ea038aa0  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin3.C
  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
--- 23977,23983 ----
  9b79d9e139bdca82ac944985ea038aa0  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin3.C
  85fdfb48424c10ce307707bc1d85353b  gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C
  a3e1dfa48f53c341c8fd1fed39d39593  gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C
! a670430c9a315fc67960335068992c53  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
*************** df7772e8bce1917bb8d1e66fcbe1ce31  gcc/te
*** 17000,17005 ****
--- 24013,24019 ----
  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
+ c3ffed418366431e337c777209f796c0  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.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
*************** cdcf1abb99ff7db2a6de02d4da860839  gcc/te
*** 17033,17039 ****
  3b6a46c1a5699fddb411eb1188a5afbc  gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C
  5079a535251edeb3910b258a36413e73  gcc/testsuite/g++.dg/cpp0x/constexpr-elision1.C
  df8026b0f85dbf1a32a645a96eaee562  gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis.C
! 3c17c7f8cedb94085b94ea1b911036e0  gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis2.C
  bd4892119061dcc2091023dfa80ffb9f  gcc/testsuite/g++.dg/cpp0x/constexpr-empty.C
  baf44bb3bbcc1b19835fcba0732c07b8  gcc/testsuite/g++.dg/cpp0x/constexpr-empty10.C
  769dc1c8f5dd3fe287febfc28bff67f6  gcc/testsuite/g++.dg/cpp0x/constexpr-empty11.C
--- 24047,24053 ----
  3b6a46c1a5699fddb411eb1188a5afbc  gcc/testsuite/g++.dg/cpp0x/constexpr-eh-spec.C
  5079a535251edeb3910b258a36413e73  gcc/testsuite/g++.dg/cpp0x/constexpr-elision1.C
  df8026b0f85dbf1a32a645a96eaee562  gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis.C
! cb154c07061e29ad4612b6bd871f5f08  gcc/testsuite/g++.dg/cpp0x/constexpr-ellipsis2.C
  bd4892119061dcc2091023dfa80ffb9f  gcc/testsuite/g++.dg/cpp0x/constexpr-empty.C
  baf44bb3bbcc1b19835fcba0732c07b8  gcc/testsuite/g++.dg/cpp0x/constexpr-empty10.C
  769dc1c8f5dd3fe287febfc28bff67f6  gcc/testsuite/g++.dg/cpp0x/constexpr-empty11.C
*************** cf5dbf6e27520dc069362029f5cb0540  gcc/te
*** 17056,17062 ****
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
  eebd11cc85b798aa6a7a34d54749b1fd  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
! c42ce017f72e0ac9bc977500bc2d096c  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
  19eb610e0af0918f7473197af97c60d4  gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C
  54953d2c31360e2eeefa3305044bd360  gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C
--- 24070,24076 ----
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
  eebd11cc85b798aa6a7a34d54749b1fd  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
! ee1630d30fdca78fd9a901d17054b392  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
  19eb610e0af0918f7473197af97c60d4  gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C
  54953d2c31360e2eeefa3305044bd360  gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C
*************** cad4897b69a9dcbf2accb6f76dc6142a  gcc/te
*** 17086,17094 ****
  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
  72451410d06ce8fa3d0a194cc350261e  gcc/testsuite/g++.dg/cpp0x/constexpr-ice6.C
  996613e01ba0152564096ee0dd625dd7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice7.C
--- 24100,24109 ----
  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
! b89ab8fc8681bcb1f4c9e745c59cc023  gcc/testsuite/g++.dg/cpp0x/constexpr-ice21.C
! 2e145bafd523c12757b4f67860b95787  gcc/testsuite/g++.dg/cpp0x/constexpr-ice22.C
  8338efcd83a2b6552bc4ad1d47c18171  gcc/testsuite/g++.dg/cpp0x/constexpr-ice3.C
! 31d07512ae997885ce1713c969bce7e1  gcc/testsuite/g++.dg/cpp0x/constexpr-ice4.C
  db4c14cc7fdca18c19d67657bdddb5d7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice5.C
  72451410d06ce8fa3d0a194cc350261e  gcc/testsuite/g++.dg/cpp0x/constexpr-ice6.C
  996613e01ba0152564096ee0dd625dd7  gcc/testsuite/g++.dg/cpp0x/constexpr-ice7.C
*************** f3d2db606274ae9c9c0d830bbb7ebb27  gcc/te
*** 17240,17245 ****
--- 24255,24261 ----
  ba638c2a427eedfb5bf4ec41ae37ed36  gcc/testsuite/g++.dg/cpp0x/constexpr-targ3.C
  4b2c8215ad8bda62399e4c6ea49cb25b  gcc/testsuite/g++.dg/cpp0x/constexpr-temp1.C
  f721bfcd9caf4abf649ecc1b690d4df0  gcc/testsuite/g++.dg/cpp0x/constexpr-temp2.C
+ d33b14209116ba7e676a15420e99dfa3  gcc/testsuite/g++.dg/cpp0x/constexpr-temp3.C
  c715cc77c59c08b4178c8df94944f49a  gcc/testsuite/g++.dg/cpp0x/constexpr-template1.C
  56e1285a24a4fbdb11978e8af54953ca  gcc/testsuite/g++.dg/cpp0x/constexpr-template10.C
  cf1b5ea6542ce4e4c53d713d22353179  gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C
*************** fac54481719d52997e799f9f5944ce10  gcc/te
*** 17253,17259 ****
  67f2412b410857ef08f653682a138ab6  gcc/testsuite/g++.dg/cpp0x/constexpr-template8.C
  e95760da3e98d263ace1fe8f57c6a5eb  gcc/testsuite/g++.dg/cpp0x/constexpr-template9.C
  6b376db978f95eefa5abc27419e2daef  gcc/testsuite/g++.dg/cpp0x/constexpr-this1.C
! d56be687c350bc73fe5b8a509b007f3e  gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C
  b7bf8a1d982f3cd7c0d65d88c6ff540e  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial1.C
  84e0e6cb7a446e49a36a296402d9eb94  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial2.C
  107fd26cb01aa76763af3eb13fd91d91  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial3.C
--- 24269,24275 ----
  67f2412b410857ef08f653682a138ab6  gcc/testsuite/g++.dg/cpp0x/constexpr-template8.C
  e95760da3e98d263ace1fe8f57c6a5eb  gcc/testsuite/g++.dg/cpp0x/constexpr-template9.C
  6b376db978f95eefa5abc27419e2daef  gcc/testsuite/g++.dg/cpp0x/constexpr-this1.C
! 7c5b821e7cca5a0c826cd9f2f60d255d  gcc/testsuite/g++.dg/cpp0x/constexpr-throw.C
  b7bf8a1d982f3cd7c0d65d88c6ff540e  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial1.C
  84e0e6cb7a446e49a36a296402d9eb94  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial2.C
  107fd26cb01aa76763af3eb13fd91d91  gcc/testsuite/g++.dg/cpp0x/constexpr-trivial3.C
*************** f0e116d82b5a6de3a9e5af9a0a9f86f6  gcc/te
*** 17505,17510 ****
--- 24521,24528 ----
  60b64cb629f4a02ed81a12fb0b2cc041  gcc/testsuite/g++.dg/cpp0x/deleted16.C
  e0ec3b8dde104f6e13caaaf049aa05c6  gcc/testsuite/g++.dg/cpp0x/deleted16a.C
  739d0ece28a2f02a16bc7821fc37839c  gcc/testsuite/g++.dg/cpp0x/deleted17.C
+ 5b4f225619f296097880cecd253cfafa  gcc/testsuite/g++.dg/cpp0x/deleted18.C
+ 0d226107840844124f0e70cd70522c49  gcc/testsuite/g++.dg/cpp0x/deleted19.C
  80874d553919bf312b4841380187e0f9  gcc/testsuite/g++.dg/cpp0x/deleted2.C
  a9129f4cd34b93dbe745e3849ea1c38a  gcc/testsuite/g++.dg/cpp0x/deleted3.C
  d6f65d86ea217a2efd4c31ebedc9c9db  gcc/testsuite/g++.dg/cpp0x/deleted4.C
*************** f8840f0998d1d23158832c277c888d14  gcc/te
*** 17532,17538 ****
  be2f327033fbf2bb4c287d571b817102  gcc/testsuite/g++.dg/cpp0x/dr2061.C
  702fffba42b337b3a4f476a079d1e355  gcc/testsuite/g++.dg/cpp0x/dr2351-2.C
  a07bd7a492a7f2ce7bfdf2835ea992a7  gcc/testsuite/g++.dg/cpp0x/dr2351.C
! bd568f7f1307dab8f5eb35fec36e71e2  gcc/testsuite/g++.dg/cpp0x/duplicate1.C
  d4426133b81413ad1d3051caa8d7c24a  gcc/testsuite/g++.dg/cpp0x/dyncast1.C
  d4eeb506a032aed4635726351941ce50  gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C
  66b2af972cbee8009e3e5f9895cb0a1a  gcc/testsuite/g++.dg/cpp0x/elision.C
--- 24550,24556 ----
  be2f327033fbf2bb4c287d571b817102  gcc/testsuite/g++.dg/cpp0x/dr2061.C
  702fffba42b337b3a4f476a079d1e355  gcc/testsuite/g++.dg/cpp0x/dr2351-2.C
  a07bd7a492a7f2ce7bfdf2835ea992a7  gcc/testsuite/g++.dg/cpp0x/dr2351.C
! 3264c57df3dc9eff5db0d6ab27a15844  gcc/testsuite/g++.dg/cpp0x/duplicate1.C
  d4426133b81413ad1d3051caa8d7c24a  gcc/testsuite/g++.dg/cpp0x/dyncast1.C
  d4eeb506a032aed4635726351941ce50  gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C
  66b2af972cbee8009e3e5f9895cb0a1a  gcc/testsuite/g++.dg/cpp0x/elision.C
*************** c82585e1f78689d72ecd7ade6b5aeeb1  gcc/te
*** 17761,17767 ****
--- 24779,24787 ----
  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
+ 612cbb9f8579e5b0993d513fe539de72  gcc/testsuite/g++.dg/cpp0x/gen-attrs-89.C
  5dd92815927177080853d47a890f5439  gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C
+ 3b01eb9296987e59c3e91a9998259d9b  gcc/testsuite/g++.dg/cpp0x/gen-attrs-90.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
*************** a91da33ee84c2ea78d5b6401d75d528e  gcc/te
*** 17971,17977 ****
  e740069b6b9e1423ef8e1b3610d6d39f  gcc/testsuite/g++.dg/cpp0x/initlist29.C
  ee2417eea379565b56e2d87788fa6673  gcc/testsuite/g++.dg/cpp0x/initlist3.C
  a558a49726098b2e30f9484a7f3b4bb8  gcc/testsuite/g++.dg/cpp0x/initlist30.C
! d778aca18992e788189451060e227a20  gcc/testsuite/g++.dg/cpp0x/initlist31.C
  348452a0372d790b7162b71f61d7cbcf  gcc/testsuite/g++.dg/cpp0x/initlist32.C
  a2834629b04af762946ceecad082bf0e  gcc/testsuite/g++.dg/cpp0x/initlist33.C
  53ef55753c091278fa63b21ed620c269  gcc/testsuite/g++.dg/cpp0x/initlist34.C
--- 24991,24997 ----
  e740069b6b9e1423ef8e1b3610d6d39f  gcc/testsuite/g++.dg/cpp0x/initlist29.C
  ee2417eea379565b56e2d87788fa6673  gcc/testsuite/g++.dg/cpp0x/initlist3.C
  a558a49726098b2e30f9484a7f3b4bb8  gcc/testsuite/g++.dg/cpp0x/initlist30.C
! 7932e86e8f9511d8943a4ea17d40ffc8  gcc/testsuite/g++.dg/cpp0x/initlist31.C
  348452a0372d790b7162b71f61d7cbcf  gcc/testsuite/g++.dg/cpp0x/initlist32.C
  a2834629b04af762946ceecad082bf0e  gcc/testsuite/g++.dg/cpp0x/initlist33.C
  53ef55753c091278fa63b21ed620c269  gcc/testsuite/g++.dg/cpp0x/initlist34.C
*************** bf4548567b9b369e7f63db818c6a1013  gcc/te
*** 18047,18053 ****
  65eb8edae8e5d98c8436657e2016b854  gcc/testsuite/g++.dg/cpp0x/initlist99.C
  2bd94659e18571416ec707555f61b80d  gcc/testsuite/g++.dg/cpp0x/inline-ns1.C
  09d6c7c943511e4c18583317900e80e5  gcc/testsuite/g++.dg/cpp0x/inline-ns10.C
! 3e2f011d130eb1b8b8c5b45e6f650dfb  gcc/testsuite/g++.dg/cpp0x/inline-ns2.C
  9ac74ab89dc8edcde76b2e7628340a13  gcc/testsuite/g++.dg/cpp0x/inline-ns3.C
  b0c5ed66fb6bc8597e3d516e4ce3f396  gcc/testsuite/g++.dg/cpp0x/inline-ns4.C
  868d9c1bbed4bb85f1cbb3ad116f6eb1  gcc/testsuite/g++.dg/cpp0x/inline-ns5.C
--- 25067,25073 ----
  65eb8edae8e5d98c8436657e2016b854  gcc/testsuite/g++.dg/cpp0x/initlist99.C
  2bd94659e18571416ec707555f61b80d  gcc/testsuite/g++.dg/cpp0x/inline-ns1.C
  09d6c7c943511e4c18583317900e80e5  gcc/testsuite/g++.dg/cpp0x/inline-ns10.C
! 5bddf461168ff54baaf034cdfac47cbb  gcc/testsuite/g++.dg/cpp0x/inline-ns2.C
  9ac74ab89dc8edcde76b2e7628340a13  gcc/testsuite/g++.dg/cpp0x/inline-ns3.C
  b0c5ed66fb6bc8597e3d516e4ce3f396  gcc/testsuite/g++.dg/cpp0x/inline-ns4.C
  868d9c1bbed4bb85f1cbb3ad116f6eb1  gcc/testsuite/g++.dg/cpp0x/inline-ns5.C
*************** b585b1ced3a56644fa0fe5fea48a7186  gcc/te
*** 18117,18122 ****
--- 25137,25144 ----
  2b3062fcf828f181fc3399b93693031a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const9.C
  b4468f4f3ad891d5e034fa908a0a57e9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-constexpr1.C
  1ea88d8208d59f25e2b46e3f1efcf9de  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-constexpr2.C
+ 3fa26fd9c9659ea26c9d5b44041ca1f7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-constexpr3.C
+ baaeaf02818c9ac55ee1d4c78da5f31c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-constexpr3a.C
  167a011be964dea6896e3e468a38dc31  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv.C
  59ff738b6c6f39d1085d9586f3b2460e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C
  af8f4c292dd27cf325f9b83b0e8ae304  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv11.C
*************** b7541efb5750181bf83ef0c6c0074ed7  gcc/te
*** 18142,18148 ****
  620c51f35ce9293367e1ae8b3038f83a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C
  23762f5c7832f1cc2669f9358277141c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype1.C
  3ad56243aecddd505746acfd0489c7b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C
! bbfdcf0ce2f3c356d6e0f0106a7b9028  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype3.C
  bdc5867e3c1505d114f4c7cb6fa3b596  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype4.C
  9a9463ed3486e89b0432bdba5e217c4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
  e0fcc12ea86ca07e002f0dd4599d71b4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
--- 25164,25170 ----
  620c51f35ce9293367e1ae8b3038f83a  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C
  23762f5c7832f1cc2669f9358277141c  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype1.C
  3ad56243aecddd505746acfd0489c7b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C
! 8f8e30bb0be9e0f0b1ab2db7728e1b7b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype3.C
  bdc5867e3c1505d114f4c7cb6fa3b596  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype4.C
  9a9463ed3486e89b0432bdba5e217c4b  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg.C
  e0fcc12ea86ca07e002f0dd4599d71b4  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce-ext-neg2.C
*************** c9399095e908bfb2c338755b0557db76  gcc/te
*** 18199,18204 ****
--- 25221,25227 ----
  0b31d0d3f6b2fa94663ed8a6941f2a4f  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice30.C
  0c30efad493d2dad3526fe6eae9e0ec9  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice31.C
  7e07661dc1ca992b2b4883b3ef8927b7  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice32.C
+ fdbab9f4c5a5a78f06954c8b6b7da3cf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice33.C
  47226bea0ac5dc3c286fd8fe05473a80  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice4.C
  08db2d244c01eaf3577fdfbf5896e831  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C
  013befc905429c5e9dd82dd968dd005e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice6.C
*************** b4ee4e860077c15b5f446a344ee80eb1  gcc/te
*** 18235,18240 ****
--- 25258,25264 ----
  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
+ bf011f24024413974a943625bb0b47bf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-noexcept1.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
*************** eb2276f9d1b9a9784472833cd48eeadc  gcc/te
*** 18257,18262 ****
--- 25281,25287 ----
  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
+ 8ee58183c86b3171c935b8fb69d7ecfa  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ref3.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
*************** bd42363d4165a48ad99bfda7142b3178  gcc/te
*** 18277,18282 ****
--- 25302,25308 ----
  60815d14466a48a5c352df28f6455161  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template15.C
  47be9f019182b953c600aba25cf571cc  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template16.C
  c776356a4f4638869d4016c6bf4a52cf  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template17.C
+ eb9c07f42f9be0aac2a7c6b465f101d5  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C
  dbe71301a1e8df7942fe34c5beb4c73e  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C
  94cfc36278ab817fd2df7010aa3c83ba  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template3.C
  e099bfa2ff82527ea9b86eaaab9acb43  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template4.C
*************** fbb4a596d7a8bbadec829208456e278b  gcc/te
*** 18341,18347 ****
  7255e800041a798555ab9b7f8fd3108d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C
  55e51064d61136b2fc56a556b82f97cd  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-1.C
  3d6f07b3db79eaa5784b2af709c297de  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-2.C
! a912579ff9984231fad94378fa1c6401  gcc/testsuite/g++.dg/cpp0x/linkage2.C
  b5bfe09b3a6a445ea1f567939c595cc9  gcc/testsuite/g++.dg/cpp0x/literal-type1.C
  ceadcf043cb7e277e03b4160aab8102e  gcc/testsuite/g++.dg/cpp0x/local-targ1.C
  2fc41c677c8e84c030121c0ae006b699  gcc/testsuite/g++.dg/cpp0x/local-type1.C
--- 25367,25373 ----
  7255e800041a798555ab9b7f8fd3108d  gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C
  55e51064d61136b2fc56a556b82f97cd  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-1.C
  3d6f07b3db79eaa5784b2af709c297de  gcc/testsuite/g++.dg/cpp0x/lambda/pr94426-2.C
! 0ded44fdbc40b49c145557e68a843a06  gcc/testsuite/g++.dg/cpp0x/linkage2.C
  b5bfe09b3a6a445ea1f567939c595cc9  gcc/testsuite/g++.dg/cpp0x/literal-type1.C
  ceadcf043cb7e277e03b4160aab8102e  gcc/testsuite/g++.dg/cpp0x/local-targ1.C
  2fc41c677c8e84c030121c0ae006b699  gcc/testsuite/g++.dg/cpp0x/local-type1.C
*************** fe526337c46e51da61277e503a425d3c  gcc/te
*** 18365,18371 ****
  4c9fa986dc7f6deef6a257359aa5e2ca  gcc/testsuite/g++.dg/cpp0x/new1.C
  5103d8a889c20932b4c0d1f36f771d88  gcc/testsuite/g++.dg/cpp0x/new2.C
  619ac7b9f67c073afd9a0d09b9e71a25  gcc/testsuite/g++.dg/cpp0x/new3.C
! fd416d8d36f2dd6e9ba7d2cef681fdbb  gcc/testsuite/g++.dg/cpp0x/new4.C
  49906341e996621b46c7c41ec0499a34  gcc/testsuite/g++.dg/cpp0x/new5.C
  f9622d878dfdbb80673c052485d80c80  gcc/testsuite/g++.dg/cpp0x/new6.C
  981a1b52d13a4061d8e2bfcbe9c0fba0  gcc/testsuite/g++.dg/cpp0x/no-weak1.C
--- 25391,25397 ----
  4c9fa986dc7f6deef6a257359aa5e2ca  gcc/testsuite/g++.dg/cpp0x/new1.C
  5103d8a889c20932b4c0d1f36f771d88  gcc/testsuite/g++.dg/cpp0x/new2.C
  619ac7b9f67c073afd9a0d09b9e71a25  gcc/testsuite/g++.dg/cpp0x/new3.C
! 7788dda0bd6950464fd65c6ec56eefd6  gcc/testsuite/g++.dg/cpp0x/new4.C
  49906341e996621b46c7c41ec0499a34  gcc/testsuite/g++.dg/cpp0x/new5.C
  f9622d878dfdbb80673c052485d80c80  gcc/testsuite/g++.dg/cpp0x/new6.C
  981a1b52d13a4061d8e2bfcbe9c0fba0  gcc/testsuite/g++.dg/cpp0x/no-weak1.C
*************** e944a760f2bcd206b36820c53e03b241  gcc/te
*** 18460,18465 ****
--- 25486,25494 ----
  573ad180b4337eb14688fd7c74cdeccc  gcc/testsuite/g++.dg/cpp0x/noexcept88.C
  6920aaae5ff91adaae9f973d58b99fd0  gcc/testsuite/g++.dg/cpp0x/noexcept89.C
  01fdf9b25aed01336395f7314f3b5857  gcc/testsuite/g++.dg/cpp0x/noexcept90.C
+ a1c17fbec179b1075e3839acd36429dc  gcc/testsuite/g++.dg/cpp0x/noexcept91.C
+ 0b7482d65d1817e0099f68c74ce2cd47  gcc/testsuite/g++.dg/cpp0x/noexcept91a.C
+ 03041cddc6731221ccbffcbbf4a9a198  gcc/testsuite/g++.dg/cpp0x/noexcept92.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
*************** cd57481c3233939f35a9152176ba0610  gcc/te
*** 18607,18612 ****
--- 25636,25642 ----
  3bffe4cc168fde4f27dd432ad19e2f12  gcc/testsuite/g++.dg/cpp0x/nullptr44.C
  afdfafb40dd063d062a20c67e4309ae4  gcc/testsuite/g++.dg/cpp0x/nullptr45.C
  b34fb57802d0e40ddc608dc33eb1600e  gcc/testsuite/g++.dg/cpp0x/nullptr46.C
+ a60d34e7d9b973abeff594c297263e66  gcc/testsuite/g++.dg/cpp0x/nullptr47.C
  c0e1a381d8dd12ff190debb04e5ee084  gcc/testsuite/g++.dg/cpp0x/overflow1.C
  fb7661df85ad6b415b31574c67fa4ee0  gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C
  5ca00ae02aa7919e0b3d9730fa9f9ac5  gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C
*************** efb7ae6928ea9000a0ff27b30a77cb58  gcc/te
*** 18622,18628 ****
  4e995918f69b8b1f23755adf83e2df73  gcc/testsuite/g++.dg/cpp0x/overload6.C
  c03c417198197c4ba3676deef5492d64  gcc/testsuite/g++.dg/cpp0x/overloadn.C
  7106d3a84752de0a3ebea3782eff9dcc  gcc/testsuite/g++.dg/cpp0x/override1.C
! 733d74a969597d8c77244aa3cdfd167f  gcc/testsuite/g++.dg/cpp0x/override2.C
  d2a1963e44488193e2d5ae183c548b2d  gcc/testsuite/g++.dg/cpp0x/override3.C
  ec3fccada021f17376f5255d71d5545b  gcc/testsuite/g++.dg/cpp0x/override4.C
  681472308bd3c04ab8c566738dbbbf36  gcc/testsuite/g++.dg/cpp0x/override5.C
--- 25652,25658 ----
  4e995918f69b8b1f23755adf83e2df73  gcc/testsuite/g++.dg/cpp0x/overload6.C
  c03c417198197c4ba3676deef5492d64  gcc/testsuite/g++.dg/cpp0x/overloadn.C
  7106d3a84752de0a3ebea3782eff9dcc  gcc/testsuite/g++.dg/cpp0x/override1.C
! 73ca4c26a45191140dc6788bd0b00d94  gcc/testsuite/g++.dg/cpp0x/override2.C
  d2a1963e44488193e2d5ae183c548b2d  gcc/testsuite/g++.dg/cpp0x/override3.C
  ec3fccada021f17376f5255d71d5545b  gcc/testsuite/g++.dg/cpp0x/override4.C
  681472308bd3c04ab8c566738dbbbf36  gcc/testsuite/g++.dg/cpp0x/override5.C
*************** c261319c4540e21ce17bbed8a6a44f40  gcc/te
*** 18643,18648 ****
--- 25673,25686 ----
  fadcff10fef6007880be1e8b89051f65  gcc/testsuite/g++.dg/cpp0x/pr118923.C
  c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/testsuite/g++.dg/cpp0x/pr119123.C
  b4c316ecfeb0a9b078a76b658ed94668  gcc/testsuite/g++.dg/cpp0x/pr119563.C
+ 29f9291c87488a55a2dd5fa47188ab10  gcc/testsuite/g++.dg/cpp0x/pr119580.C
+ 9598abf127e6826158d64ee6b05b0791  gcc/testsuite/g++.dg/cpp0x/pr122302.C
+ dd7f53c1057815c9ecba63c7f4408ec4  gcc/testsuite/g++.dg/cpp0x/pr122465.C
+ 4891c13c51126851f62b961486e6f9ef  gcc/testsuite/g++.dg/cpp0x/pr123692.C
+ b2f7d7cab4ef6e12f25f82545d59869a  gcc/testsuite/g++.dg/cpp0x/pr123818.C
+ 9683c3ac21cac97aa0b1ce1d46d85320  gcc/testsuite/g++.dg/cpp0x/pr124173.C
+ 823666b75dc5cb540393daba4df2d5df  gcc/testsuite/g++.dg/cpp0x/pr124489.C
+ e9b2f79897e6f763134d4ec57a8eb3b7  gcc/testsuite/g++.dg/cpp0x/pr124531.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
*************** ebe6353ed28409ce3d4c67ead6be69af  gcc/te
*** 18917,18922 ****
--- 25955,25964 ----
  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
+ 338fdb887f5999f42c07007b1d2c1a7a  gcc/testsuite/g++.dg/cpp0x/range-for40.C
+ b5865159079e33c7ad3ca29493d6fbfe  gcc/testsuite/g++.dg/cpp0x/range-for41.C
+ 9646d485395f30c2e2d5fd2536881fc1  gcc/testsuite/g++.dg/cpp0x/range-for42.C
+ 53625ad7ea469a2d68cacd87ef0632d3  gcc/testsuite/g++.dg/cpp0x/range-for43.C
  9d70da20463079b62be580867a3e6601  gcc/testsuite/g++.dg/cpp0x/range-for5.C
  552d6f24d3e88cb9880ea25f37817a81  gcc/testsuite/g++.dg/cpp0x/range-for6.C
  cf6c66c2c1f26f78f53b3a006d996662  gcc/testsuite/g++.dg/cpp0x/range-for7.C
*************** b29a1864b99db07583a850e2242025b0  gcc/te
*** 18948,18954 ****
  b5e0bd0074ec33c2369ad0e104f63179  gcc/testsuite/g++.dg/cpp0x/ref-qual21.C
  68b27ec15231994ad0330625660d2720  gcc/testsuite/g++.dg/cpp0x/ref-qual3.C
  1bb06529f586a3e77263290dd006534e  gcc/testsuite/g++.dg/cpp0x/ref-qual4.C
! 32e38316bdc7aa39b2e1811744ca40b7  gcc/testsuite/g++.dg/cpp0x/ref-qual5.C
  ba0b53c553f6ff24cf6f794b57c9bc32  gcc/testsuite/g++.dg/cpp0x/ref-qual6.C
  c288331543b30d300aa6764b7ae67cda  gcc/testsuite/g++.dg/cpp0x/ref-qual7.C
  9352f10d371ed23cd75d2c19a1426a76  gcc/testsuite/g++.dg/cpp0x/ref-qual8.C
--- 25990,25996 ----
  b5e0bd0074ec33c2369ad0e104f63179  gcc/testsuite/g++.dg/cpp0x/ref-qual21.C
  68b27ec15231994ad0330625660d2720  gcc/testsuite/g++.dg/cpp0x/ref-qual3.C
  1bb06529f586a3e77263290dd006534e  gcc/testsuite/g++.dg/cpp0x/ref-qual4.C
! 04e286455cb2774b8859179a063d46bb  gcc/testsuite/g++.dg/cpp0x/ref-qual5.C
  ba0b53c553f6ff24cf6f794b57c9bc32  gcc/testsuite/g++.dg/cpp0x/ref-qual6.C
  c288331543b30d300aa6764b7ae67cda  gcc/testsuite/g++.dg/cpp0x/ref-qual7.C
  9352f10d371ed23cd75d2c19a1426a76  gcc/testsuite/g++.dg/cpp0x/ref-qual8.C
*************** e884bf1c365eb117bddb8cf25bb61944  gcc/te
*** 19109,19114 ****
--- 26151,26157 ----
  18a5617c6a56b06d2e51299f84183279  gcc/testsuite/g++.dg/cpp0x/static_assert15.C
  53545b7342e66ae87c68f3a770b6a193  gcc/testsuite/g++.dg/cpp0x/static_assert16.C
  a763580664ce585f23dcbf8cf13cab6a  gcc/testsuite/g++.dg/cpp0x/static_assert17.C
+ 0b478e7b19ce99e25e3b117a78dbd54a  gcc/testsuite/g++.dg/cpp0x/static_assert18.C
  7c94507411d8f0fcd4964618204cd929  gcc/testsuite/g++.dg/cpp0x/static_assert2.C
  f24eae3c4070d37d2bbcb3f45a386807  gcc/testsuite/g++.dg/cpp0x/static_assert3.C
  09c6459c722f7fda152e22ef59d4e30c  gcc/testsuite/g++.dg/cpp0x/static_assert4.C
*************** f130c799f5624997275657362cbc155f  gcc/te
*** 19137,19143 ****
  09bf4c9ea4be9a78430f128693f12e1b  gcc/testsuite/g++.dg/cpp0x/temp_default7.C
  ffb45b4a754d1417c1388582a835c6fa  gcc/testsuite/g++.dg/cpp0x/temp_default8.C
  3b5dc721d5f8945d257645537b85505e  gcc/testsuite/g++.dg/cpp0x/template_deduction.C
! d8e8033cd6a6a6a2fbf1368f7775ac8b  gcc/testsuite/g++.dg/cpp0x/this1.C
  d163f4d1121a82d4c4ddd269817b4753  gcc/testsuite/g++.dg/cpp0x/this2.C
  488528fbea12aa95fa338d2a320f5fb0  gcc/testsuite/g++.dg/cpp0x/trailing1.C
  b3ffcd3fe45fdfaefdabb2511bf9b313  gcc/testsuite/g++.dg/cpp0x/trailing10.C
--- 26180,26186 ----
  09bf4c9ea4be9a78430f128693f12e1b  gcc/testsuite/g++.dg/cpp0x/temp_default7.C
  ffb45b4a754d1417c1388582a835c6fa  gcc/testsuite/g++.dg/cpp0x/temp_default8.C
  3b5dc721d5f8945d257645537b85505e  gcc/testsuite/g++.dg/cpp0x/template_deduction.C
! 782e8b0ed4b7585a32468429f51f9718  gcc/testsuite/g++.dg/cpp0x/this1.C
  d163f4d1121a82d4c4ddd269817b4753  gcc/testsuite/g++.dg/cpp0x/this2.C
  488528fbea12aa95fa338d2a320f5fb0  gcc/testsuite/g++.dg/cpp0x/trailing1.C
  b3ffcd3fe45fdfaefdabb2511bf9b313  gcc/testsuite/g++.dg/cpp0x/trailing10.C
*************** c0422b5906ec9f754211435f9c08f8dd  gcc/te
*** 19246,19251 ****
--- 26289,26295 ----
  b6f531b83989cd62725f0bfeb30ad7fe  gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C
  10ac54e6a2408dc79bbc43e024c85267  gcc/testsuite/g++.dg/cpp0x/variadic-crash5.C
  0a24ad717370f7802f37ceebffc7eb3d  gcc/testsuite/g++.dg/cpp0x/variadic-crash6.C
+ 50b83d314d7f9aeac7d1fb5cf683116d  gcc/testsuite/g++.dg/cpp0x/variadic-crash7.C
  51ab54d13c1bc4b5bb4bbc37b0c91002  gcc/testsuite/g++.dg/cpp0x/variadic-decltype1.C
  838c74313216e798999fa2b5ad006175  gcc/testsuite/g++.dg/cpp0x/variadic-default.C
  a959853b4b06b6225bb508d5c51f1e43  gcc/testsuite/g++.dg/cpp0x/variadic-diag1.C
*************** fb2e417a364945cb8149b9526292009b  gcc/te
*** 19577,19584 ****
  dc5451a9ff24848e54d61818d52a6d94  gcc/testsuite/g++.dg/cpp1y/auto-fn1.C
  7f87375ea759512b1c52f02744bd144b  gcc/testsuite/g++.dg/cpp1y/auto-fn10.C
  d9026dcf90b4d54bee061436620287a9  gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
! e8ede97fc5803eed57d07b4123b9a523  gcc/testsuite/g++.dg/cpp1y/auto-fn12.C
! 7b669827bea28277027a523e33b45f0e  gcc/testsuite/g++.dg/cpp1y/auto-fn13.C
  e44b3597936dd6f357553246a242335d  gcc/testsuite/g++.dg/cpp1y/auto-fn14.C
  12bb503f3f6cd0861f245adc2f63e35e  gcc/testsuite/g++.dg/cpp1y/auto-fn15.C
  1c94ff8201633772ca24c7b73d52889a  gcc/testsuite/g++.dg/cpp1y/auto-fn16.C
--- 26621,26628 ----
  dc5451a9ff24848e54d61818d52a6d94  gcc/testsuite/g++.dg/cpp1y/auto-fn1.C
  7f87375ea759512b1c52f02744bd144b  gcc/testsuite/g++.dg/cpp1y/auto-fn10.C
  d9026dcf90b4d54bee061436620287a9  gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
! 5ebb3a8cb693c2132b76c69b985de72f  gcc/testsuite/g++.dg/cpp1y/auto-fn12.C
! 52e7d8f6b7e08dd21b8b55168be0e55f  gcc/testsuite/g++.dg/cpp1y/auto-fn13.C
  e44b3597936dd6f357553246a242335d  gcc/testsuite/g++.dg/cpp1y/auto-fn14.C
  12bb503f3f6cd0861f245adc2f63e35e  gcc/testsuite/g++.dg/cpp1y/auto-fn15.C
  1c94ff8201633772ca24c7b73d52889a  gcc/testsuite/g++.dg/cpp1y/auto-fn16.C
*************** e44b3597936dd6f357553246a242335d  gcc/te
*** 19588,19594 ****
  88ef9523ceb7f9fd808e09124fb3bffc  gcc/testsuite/g++.dg/cpp1y/auto-fn2.C
  bbe5db57b5ad80f6dba45ded13dc4c7a  gcc/testsuite/g++.dg/cpp1y/auto-fn20.C
  525df3382c8e9edf50b15907caea6c08  gcc/testsuite/g++.dg/cpp1y/auto-fn21.C
! 00c8794b62eeeee7392e63c33571f6b9  gcc/testsuite/g++.dg/cpp1y/auto-fn22.C
  24700bf570f1da37dd7403a1ba42584b  gcc/testsuite/g++.dg/cpp1y/auto-fn23.C
  4225acb87f7df9dda5bdd30f046d2bc9  gcc/testsuite/g++.dg/cpp1y/auto-fn24.C
  56e6bd00ba584aef061561c13e30a444  gcc/testsuite/g++.dg/cpp1y/auto-fn25.C
--- 26632,26638 ----
  88ef9523ceb7f9fd808e09124fb3bffc  gcc/testsuite/g++.dg/cpp1y/auto-fn2.C
  bbe5db57b5ad80f6dba45ded13dc4c7a  gcc/testsuite/g++.dg/cpp1y/auto-fn20.C
  525df3382c8e9edf50b15907caea6c08  gcc/testsuite/g++.dg/cpp1y/auto-fn21.C
! a71f80433c2d441bad74bca75a47669a  gcc/testsuite/g++.dg/cpp1y/auto-fn22.C
  24700bf570f1da37dd7403a1ba42584b  gcc/testsuite/g++.dg/cpp1y/auto-fn23.C
  4225acb87f7df9dda5bdd30f046d2bc9  gcc/testsuite/g++.dg/cpp1y/auto-fn24.C
  56e6bd00ba584aef061561c13e30a444  gcc/testsuite/g++.dg/cpp1y/auto-fn25.C
*************** e301f1e1935905abefe3b24b50252da4  gcc/te
*** 19612,19625 ****
  01fd8c37a461e70dd046d084a28295c1  gcc/testsuite/g++.dg/cpp1y/auto-fn41.C
  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
  4e4a5ed56f7431474c3769bf5f8ba8c3  gcc/testsuite/g++.dg/cpp1y/auto-fn49.C
  eaab8c47716923537d6580ede6fbe3ae  gcc/testsuite/g++.dg/cpp1y/auto-fn5.C
! d8b3f03cf98450675631471e52432e53  gcc/testsuite/g++.dg/cpp1y/auto-fn50.C
  da8b691c486f119146bd69dc1d417757  gcc/testsuite/g++.dg/cpp1y/auto-fn51.C
  0124c08ff3f573c99b7680c72aa70116  gcc/testsuite/g++.dg/cpp1y/auto-fn52.C
  f14e5c551fb573045f545479bf77b0d9  gcc/testsuite/g++.dg/cpp1y/auto-fn53.C
--- 26656,26669 ----
  01fd8c37a461e70dd046d084a28295c1  gcc/testsuite/g++.dg/cpp1y/auto-fn41.C
  bfd95cceb44d8c47db7bf1a36a86322d  gcc/testsuite/g++.dg/cpp1y/auto-fn42.C
  820221d75273b01d35f807e36bc12523  gcc/testsuite/g++.dg/cpp1y/auto-fn43.C
! a19998b66b89c56e0d01fab26612eb13  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
  4e4a5ed56f7431474c3769bf5f8ba8c3  gcc/testsuite/g++.dg/cpp1y/auto-fn49.C
  eaab8c47716923537d6580ede6fbe3ae  gcc/testsuite/g++.dg/cpp1y/auto-fn5.C
! 8bc19c1f88666f494fba3dc33bf15a9d  gcc/testsuite/g++.dg/cpp1y/auto-fn50.C
  da8b691c486f119146bd69dc1d417757  gcc/testsuite/g++.dg/cpp1y/auto-fn51.C
  0124c08ff3f573c99b7680c72aa70116  gcc/testsuite/g++.dg/cpp1y/auto-fn52.C
  f14e5c551fb573045f545479bf77b0d9  gcc/testsuite/g++.dg/cpp1y/auto-fn53.C
*************** e791b94844e59093ad5ec4175c3b673a  gcc/te
*** 19636,19641 ****
--- 26680,26686 ----
  86dff67be95912f694daebdd0aee911b  gcc/testsuite/g++.dg/cpp1y/auto-fn63.C
  f97d20d3d680128b6e125d1793e29b87  gcc/testsuite/g++.dg/cpp1y/auto-fn64.C
  a5fbd625e8b645b90b2755400e929e2b  gcc/testsuite/g++.dg/cpp1y/auto-fn65.C
+ 88309773bbf1feef7121ba73e86cc151  gcc/testsuite/g++.dg/cpp1y/auto-fn66.C
  03b6f2674c38c8f6ed9f7fc03583b1dc  gcc/testsuite/g++.dg/cpp1y/auto-fn7.C
  e9a317fa32e36cef4553b50965e48550  gcc/testsuite/g++.dg/cpp1y/auto-fn8.C
  d67958b896eb1dae6f8862fd59b01c62  gcc/testsuite/g++.dg/cpp1y/auto-fn9.C
*************** afbdcf440b8da95f919e745c0f3a85d1  gcc/te
*** 19660,19665 ****
--- 26705,26711 ----
  bff4672a992bc57b0432abbc32b3c2c9  gcc/testsuite/g++.dg/cpp1y/constexpr-108158.C
  1d40cabd787f31f0fad7fcf842281e0d  gcc/testsuite/g++.dg/cpp1y/constexpr-110382.C
  c0c4053e9d0ac3fdafa8e18c09182922  gcc/testsuite/g++.dg/cpp1y/constexpr-110619.C
+ 99784bf84926c6a7d522ec738bd5f9aa  gcc/testsuite/g++.dg/cpp1y/constexpr-121445.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
*************** e4f44ba83e70dc31ae39e2b7a5451b57  gcc/te
*** 19680,19686 ****
  0a22dbeb49c9df6cba648ed043c987fe  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-1.C
  89c250c04581764fb43ea62b9fbb5271  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-2.C
  b4fe76990ca1de144127b4f046e4bcc4  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-3.C
! f45415e4c5b0363b3295c1e66382cee8  gcc/testsuite/g++.dg/cpp1y/constexpr-84192.C
  936182876782ae21f7b511f66e1aaf05  gcc/testsuite/g++.dg/cpp1y/constexpr-84494.C
  b9e6a245bf8b000527fce6b59f4f31f8  gcc/testsuite/g++.dg/cpp1y/constexpr-84808.C
  91d1033833da4a787f371688d7a57b85  gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C
--- 26726,26732 ----
  0a22dbeb49c9df6cba648ed043c987fe  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-1.C
  89c250c04581764fb43ea62b9fbb5271  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-2.C
  b4fe76990ca1de144127b4f046e4bcc4  gcc/testsuite/g++.dg/cpp1y/constexpr-83921-3.C
! 0cd043b06ea11ce0ff4593b0b52aa1cc  gcc/testsuite/g++.dg/cpp1y/constexpr-84192.C
  936182876782ae21f7b511f66e1aaf05  gcc/testsuite/g++.dg/cpp1y/constexpr-84494.C
  b9e6a245bf8b000527fce6b59f4f31f8  gcc/testsuite/g++.dg/cpp1y/constexpr-84808.C
  91d1033833da4a787f371688d7a57b85  gcc/testsuite/g++.dg/cpp1y/constexpr-86524.C
*************** c0c65bed3f0ec11995705af19bb8b6ad  gcc/te
*** 19691,19697 ****
  54065250db8014b94087e19130b9d3ce  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-2.C
  1cfec2a008c883718d7eb9a906eac434  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-3.C
  41621f8920967bf3379b8966768c1824  gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C
! f8a9b3028529f18a5e432155a8a3fccf  gcc/testsuite/g++.dg/cpp1y/constexpr-89285.C
  6287f6343875c97718b7c31626b1a892  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-1.C
  fe38eb995d3f36bcf45ac701099de121  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-2.C
  70f3c97e5bb490843418168fb6a19021  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-3.C
--- 26737,26743 ----
  54065250db8014b94087e19130b9d3ce  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-2.C
  1cfec2a008c883718d7eb9a906eac434  gcc/testsuite/g++.dg/cpp1y/constexpr-89074-3.C
  41621f8920967bf3379b8966768c1824  gcc/testsuite/g++.dg/cpp1y/constexpr-89285-2.C
! e9d05ebf41916f844de8850cb0c89af3  gcc/testsuite/g++.dg/cpp1y/constexpr-89285.C
  6287f6343875c97718b7c31626b1a892  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-1.C
  fe38eb995d3f36bcf45ac701099de121  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-2.C
  70f3c97e5bb490843418168fb6a19021  gcc/testsuite/g++.dg/cpp1y/constexpr-89336-3.C
*************** a8edd1159f1c66a732eaec9685596ff4  gcc/te
*** 19719,19725 ****
  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
--- 26765,26771 ----
  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
! d8e6effce6644a94865d0c684b4d2416  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
*************** ca962f3256b3b1d6a489a9b876b8f615  gcc/te
*** 19767,19773 ****
  a83fffbfc1eea249eb5d8445bd70ff40  gcc/testsuite/g++.dg/cpp1y/constexpr-mutable1.C
  3f6ee340a09c70b7ae5e86d33e6fe7a4  gcc/testsuite/g++.dg/cpp1y/constexpr-mutable2.C
  98dc11e7ef53a71b9e1f3604d4afd676  gcc/testsuite/g++.dg/cpp1y/constexpr-neg1.C
! 668a624ab093686a10323938506ba10a  gcc/testsuite/g++.dg/cpp1y/constexpr-new.C
  383e769ca0523aee3432cc57a015a3da  gcc/testsuite/g++.dg/cpp1y/constexpr-noexcept1.C
  6cbf034f3528acfdb1c539b96eb6801a  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi10.C
  870daa2b4f4ec7ae726e417d7da3945a  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi2.C
--- 26813,26819 ----
  a83fffbfc1eea249eb5d8445bd70ff40  gcc/testsuite/g++.dg/cpp1y/constexpr-mutable1.C
  3f6ee340a09c70b7ae5e86d33e6fe7a4  gcc/testsuite/g++.dg/cpp1y/constexpr-mutable2.C
  98dc11e7ef53a71b9e1f3604d4afd676  gcc/testsuite/g++.dg/cpp1y/constexpr-neg1.C
! f8d44cea29e2d2613f7c61bba10cc359  gcc/testsuite/g++.dg/cpp1y/constexpr-new.C
  383e769ca0523aee3432cc57a015a3da  gcc/testsuite/g++.dg/cpp1y/constexpr-noexcept1.C
  6cbf034f3528acfdb1c539b96eb6801a  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi10.C
  870daa2b4f4ec7ae726e417d7da3945a  gcc/testsuite/g++.dg/cpp1y/constexpr-nsdmi2.C
*************** b6f3cbabd3fb752ace73590e7135e551  gcc/te
*** 19787,19792 ****
--- 26833,26839 ----
  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
+ 12c0eb97ac41d27ddcd63f19ad672387  gcc/testsuite/g++.dg/cpp1y/constexpr-recursion3.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
*************** f705c3231fd3394bbd8e1f6d3c18f870  gcc/te
*** 19802,19808 ****
  469cd1fc4d897d90592a00ce78be9201  gcc/testsuite/g++.dg/cpp1y/constexpr-switch2.C
  c1e1359ff4463d37602a3a97e87c775f  gcc/testsuite/g++.dg/cpp1y/constexpr-switch3.C
  2cf598a0cfa5187e173eb042b77aa4a7  gcc/testsuite/g++.dg/cpp1y/constexpr-switch4.C
! ad1b98b9081b8c8a0ca07d8b64ce56a4  gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C
  2a5c9e43d369c7c32f8c79fad7cf050c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const1.C
  a1e377256d28d8d31ad5d8530b880858  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const10.C
  f436b4eb5c47f9c351af92f0818f4357  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const11.C
--- 26849,26855 ----
  469cd1fc4d897d90592a00ce78be9201  gcc/testsuite/g++.dg/cpp1y/constexpr-switch2.C
  c1e1359ff4463d37602a3a97e87c775f  gcc/testsuite/g++.dg/cpp1y/constexpr-switch3.C
  2cf598a0cfa5187e173eb042b77aa4a7  gcc/testsuite/g++.dg/cpp1y/constexpr-switch4.C
! a908c23c3afbe4ea84a5634b078838af  gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C
  2a5c9e43d369c7c32f8c79fad7cf050c  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const1.C
  a1e377256d28d8d31ad5d8530b880858  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const10.C
  f436b4eb5c47f9c351af92f0818f4357  gcc/testsuite/g++.dg/cpp1y/constexpr-tracking-const11.C
*************** e210eaaa7545615d95f00423c888ec15  gcc/te
*** 19852,19857 ****
--- 26899,26906 ----
  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
+ 65b797bf47a4fa03ba5b4e26282a3857  gcc/testsuite/g++.dg/cpp1y/defaulted1.C
+ 74d827c0173d7300b32c1fd0adfcd4ff  gcc/testsuite/g++.dg/cpp1y/defaulted2.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
*************** b7edad357bb503949f49802295729019  gcc/te
*** 19873,19878 ****
--- 26922,26928 ----
  fc5875e8af08d0f9488344e80bf6f764  gcc/testsuite/g++.dg/cpp1y/feat-vla.C
  019035e3ac24c4aef8fcd1f1af1590ae  gcc/testsuite/g++.dg/cpp1y/func_constexpr.C
  c3583508c23dbe7bcbfacff859609c12  gcc/testsuite/g++.dg/cpp1y/func_constexpr2.C
+ 0cc160ad6c16bded9bd0dabdff43ace7  gcc/testsuite/g++.dg/cpp1y/func_constexpr3.C
  0feb9c08dcb94b20846f8ae40808e303  gcc/testsuite/g++.dg/cpp1y/lambda-conv1.C
  4734b77212418e40ce4f8965c6017a39  gcc/testsuite/g++.dg/cpp1y/lambda-conv2.C
  5f112fcc57ff57c8e803342bde4e9c25  gcc/testsuite/g++.dg/cpp1y/lambda-deduce-mult-neg.C
*************** d91a981f54ab2a15c0e9427ccb338f24  gcc/te
*** 19952,19962 ****
  5272ec327005dde6e5a2aaffb7102e42  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C
  85be199d2e0d4a7142fba0bb5f749ab7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C
  575f67ce02ade2344a76bcfc5971fb64  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this5.C
  06ba6684e3759115ec5098f38667687b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C
  e947551033232c5abe95cce5adfd22aa  gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C
  7515a5372d247dd5a94ef0626c25c2ae  gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C
  0d387ae397325668efa82f225a95fd02  gcc/testsuite/g++.dg/cpp1y/lambda-generic-using1.C
! 5ef24452c90a0becdfa786ec05bfd5b8  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C
  e42e0cda4c8fab5269624886a776962a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic10.C
  7f7a1aa40cffd88e5ec4f302b7c12365  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic11.C
  c3bd380fa2e677aa4ad933772a502bd8  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic12.C
--- 27002,27014 ----
  5272ec327005dde6e5a2aaffb7102e42  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C
  85be199d2e0d4a7142fba0bb5f749ab7  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C
  575f67ce02ade2344a76bcfc5971fb64  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this5.C
+ 2fdf9da2a46e065e8da8779316de871e  gcc/testsuite/g++.dg/cpp1y/lambda-generic-this6.C
  06ba6684e3759115ec5098f38667687b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C
  e947551033232c5abe95cce5adfd22aa  gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C
  7515a5372d247dd5a94ef0626c25c2ae  gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C
  0d387ae397325668efa82f225a95fd02  gcc/testsuite/g++.dg/cpp1y/lambda-generic-using1.C
! 87f18423c2020b884699befe744a721b  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic-a.C
! 19b2ce6354baa64a5370438559694c2d  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic.C
  e42e0cda4c8fab5269624886a776962a  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic10.C
  7f7a1aa40cffd88e5ec4f302b7c12365  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic11.C
  c3bd380fa2e677aa4ad933772a502bd8  gcc/testsuite/g++.dg/cpp1y/lambda-generic-variadic12.C
*************** a59e5fd28eae5235838080483b6939a6  gcc/te
*** 20063,20068 ****
--- 27115,27121 ----
  eec419e7e2d598da544dfb7c3d14b09f  gcc/testsuite/g++.dg/cpp1y/pr108606.C
  979dd4bb4283165eecbfd216d4e3ff52  gcc/testsuite/g++.dg/cpp1y/pr118534.C
  89d389075a04cc943c2a842b0dbe9bb7  gcc/testsuite/g++.dg/cpp1y/pr118923.C
+ 24cdf9c9f8db148a6a8ae8faa9f5b42c  gcc/testsuite/g++.dg/cpp1y/pr123347.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
*************** c6b5be287e2a693abeafed6a656f875f  gcc/te
*** 20149,20155 ****
  5eb9aa972e7e4cde87e8a949a32f937d  gcc/testsuite/g++.dg/cpp1y/pr84593.C
  eed72e4e3c9aec24d904cb1baa5f2711  gcc/testsuite/g++.dg/cpp1y/pr84835.C
  9c7ee77059363808e261d90cf939ce59  gcc/testsuite/g++.dg/cpp1y/pr84942.C
! 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
--- 27202,27208 ----
  5eb9aa972e7e4cde87e8a949a32f937d  gcc/testsuite/g++.dg/cpp1y/pr84593.C
  eed72e4e3c9aec24d904cb1baa5f2711  gcc/testsuite/g++.dg/cpp1y/pr84835.C
  9c7ee77059363808e261d90cf939ce59  gcc/testsuite/g++.dg/cpp1y/pr84942.C
! 4361db82beaa2ea93006a25e08cfd44b  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
*************** c22e1405c91d95d32ec012cae1f23ccc  gcc/te
*** 20268,20275 ****
  7babed4c27249bda4fc60ca9f7b378c0  gcc/testsuite/g++.dg/cpp1y/var-templ85.C
  358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
  2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
! 2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  4804988f5ca1de7a49a58e20c70fc457  gcc/testsuite/g++.dg/cpp1y/vla10.C
  16fc38725d5d3406fffa4c6da4f5df21  gcc/testsuite/g++.dg/cpp1y/vla2.C
  f578ef92ec8a79f6e9dc1a030af56203  gcc/testsuite/g++.dg/cpp1y/vla4.C
--- 27321,27329 ----
  7babed4c27249bda4fc60ca9f7b378c0  gcc/testsuite/g++.dg/cpp1y/var-templ85.C
  358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
  2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
+ 6066c7bcfa1174f7783c52343cc9ad88  gcc/testsuite/g++.dg/cpp1y/var-templ88.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
! 6b70f04015ba6612a9e9cb475e01f287  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  4804988f5ca1de7a49a58e20c70fc457  gcc/testsuite/g++.dg/cpp1y/vla10.C
  16fc38725d5d3406fffa4c6da4f5df21  gcc/testsuite/g++.dg/cpp1y/vla2.C
  f578ef92ec8a79f6e9dc1a030af56203  gcc/testsuite/g++.dg/cpp1y/vla4.C
*************** ca10f046e47ea09ba5b87084372f1ce2  gcc/te
*** 20304,20309 ****
--- 27358,27364 ----
  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
+ c2bd53f98287680412dbfb48b329826d  gcc/testsuite/g++.dg/cpp1z/array-condition-expr.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
*************** b00e7a179ab6ea9a18ed7daadbf730c3  gcc/te
*** 20346,20351 ****
--- 27401,27407 ----
  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
+ 83fbc0b43ae4c29968ab3e3147ebbedf  gcc/testsuite/g++.dg/cpp1z/class-deduction118.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
*************** d09105e6c1f377543e5514e34d2837cd  gcc/te
*** 20455,20461 ****
  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
--- 27511,27518 ----
  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
! 31c0294ddff78a97b99eb3d38a63e9f6  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-5.C
! 46999aa3169dc26f34a4b3111e434f42  gcc/testsuite/g++.dg/cpp1z/constexpr-asm-6.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
*************** f4382f5ede902e4b05c952d6a46baa75  gcc/te
*** 20524,20529 ****
--- 27581,27587 ----
  f1fc38f24c3138cf2bcf0c1361f8b2c4  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
  74b8e6f3e9a38c9d67cce0f399c25360  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda27.C
  c41894a4bd54230ff06cc2b36b53cc79  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda28.C
+ e85518e71d7fef041096cc39fc4a2ef8  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda29.C
  7a1275d47f91f21fc9a37f0e47b89dad  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda3.C
  5267d9825ab86007a9529cb6214eae5c  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda4.C
  7b6d8d9af2ed24c66e7de295c6bd2cf9  gcc/testsuite/g++.dg/cpp1z/constexpr-lambda5.C
*************** b4ce61356e5a800bbe8625a2fcfb6c47  gcc/te
*** 20565,20571 ****
  db59f36aedce650deacac206df589fcd  gcc/testsuite/g++.dg/cpp1z/decomp27.C
  d169701ab44605d3af4e8903c4fcbb83  gcc/testsuite/g++.dg/cpp1z/decomp28.C
  821af2d2e1f64f648720f2ab287be2ca  gcc/testsuite/g++.dg/cpp1z/decomp29.C
! 72251c6b4d4572241c643f3ef17ea8a1  gcc/testsuite/g++.dg/cpp1z/decomp3.C
  15674db5d82601f6f8c6c925c5fd0421  gcc/testsuite/g++.dg/cpp1z/decomp30.C
  276d2090ec892a3c8ac250318230fe0a  gcc/testsuite/g++.dg/cpp1z/decomp31.C
  cb0c2e23c983029bef65f71444baf22a  gcc/testsuite/g++.dg/cpp1z/decomp32.C
--- 27623,27629 ----
  db59f36aedce650deacac206df589fcd  gcc/testsuite/g++.dg/cpp1z/decomp27.C
  d169701ab44605d3af4e8903c4fcbb83  gcc/testsuite/g++.dg/cpp1z/decomp28.C
  821af2d2e1f64f648720f2ab287be2ca  gcc/testsuite/g++.dg/cpp1z/decomp29.C
! 1d470b245710b8a08735d6539569c6a3  gcc/testsuite/g++.dg/cpp1z/decomp3.C
  15674db5d82601f6f8c6c925c5fd0421  gcc/testsuite/g++.dg/cpp1z/decomp30.C
  276d2090ec892a3c8ac250318230fe0a  gcc/testsuite/g++.dg/cpp1z/decomp31.C
  cb0c2e23c983029bef65f71444baf22a  gcc/testsuite/g++.dg/cpp1z/decomp32.C
*************** dfd54cc6e7ae91a6a51dbda233f20174  gcc/te
*** 20603,20608 ****
--- 27661,27671 ----
  37c39f932f33f540d51f60eb06411c2f  gcc/testsuite/g++.dg/cpp1z/decomp61.C
  e0c740066bd9b5db23ad119756a191dc  gcc/testsuite/g++.dg/cpp1z/decomp62.C
  625fdfbc6a0c9cdfdfa656254c263bc2  gcc/testsuite/g++.dg/cpp1z/decomp63.C
+ 4befe5488b784277f9723b50bb4969d3  gcc/testsuite/g++.dg/cpp1z/decomp64.C
+ 11546fc7df8f740e330fb3c4689e9ec3  gcc/testsuite/g++.dg/cpp1z/decomp65.C
+ 4267cc2db929f2666c1c5449e017a94a  gcc/testsuite/g++.dg/cpp1z/decomp66.C
+ d87e0f686f9f58fa2c8ea0990e82c1b3  gcc/testsuite/g++.dg/cpp1z/decomp67.C
+ 8625552f27dfff4523582699ba42a835  gcc/testsuite/g++.dg/cpp1z/decomp68.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
*** 20620,20625 ****
--- 27683,27689 ----
  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
+ 612e7cfe92accd2bee31cd13a0976f33  gcc/testsuite/g++.dg/cpp1z/eval-order14.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
*************** ac9f13854ea3e455a1371aaa819ee22a  gcc/te
*** 20656,20661 ****
--- 27720,27726 ----
  5f34b6f6c6b9801ac84fd35a7072c291  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations2.C
  9f9fa73c4ae67e4de5904663c140998d  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C
  5c459c469bb0c88af36817ae049e53f3  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations4.C
+ 6859dea5dbfe2133d0fd69cfd29b9164  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations5.C
  712e0c3f886fdb90e5e03d39bd877f92  gcc/testsuite/g++.dg/cpp1z/inh-ctor1.C
  a5a039fe3394138160509efa1a2212c5  gcc/testsuite/g++.dg/cpp1z/inh-ctor22.C
  08e66730eb666f41f2d9476748d3745f  gcc/testsuite/g++.dg/cpp1z/inh-ctor23.C
*************** ae3e1959f85f05c9ec509a6dbdbe24ca  gcc/te
*** 20804,20811 ****
--- 27869,27879 ----
  d8c0c733385ca64144f09cf94dbfc159  gcc/testsuite/g++.dg/cpp1z/nontype6.C
  478af4b2682b8500b6d04a7190ab9e4b  gcc/testsuite/g++.dg/cpp1z/nontype6a.C
  1a73a13a161c05eab6182bb64cba004b  gcc/testsuite/g++.dg/cpp1z/nontype7.C
+ 6ac56ba6fac8f37fd5da42f71b2f6417  gcc/testsuite/g++.dg/cpp1z/nontype8.C
+ ad7260377d53bd5be2c8dfecf32c3fc2  gcc/testsuite/g++.dg/cpp1z/nontype9.C
  03ca05bf2eccb98d95222a2435a3d9ed  gcc/testsuite/g++.dg/cpp1z/pr110216.C
  86d3c074d77c88bd7ef317faea9d2968  gcc/testsuite/g++.dg/cpp1z/pr115440.C
+ 77ac27ad1d458dd579a2e0b5c573de59  gcc/testsuite/g++.dg/cpp1z/pr122185.C
  e668ace19a2b0d8946e0e19fd8317af1  gcc/testsuite/g++.dg/cpp1z/pr78771.C
  bc5edc17d9b70d77a054dd4736a66223  gcc/testsuite/g++.dg/cpp1z/pr79143.C
  3e5ca07aaa322577e51fd003d9524cb0  gcc/testsuite/g++.dg/cpp1z/pr81016.C
*************** f35c40f9359deda380357490b21bcf4f  gcc/te
*** 20830,20835 ****
--- 27898,27904 ----
  1cec7e8e1ac5999209a00a7fd3e2dbab  gcc/testsuite/g++.dg/cpp1z/static1.C
  41cdf88b4e2dc9ba29ab954fd0f3d05c  gcc/testsuite/g++.dg/cpp1z/static2.C
  491588e8dd93d83d5049e3c332e8755f  gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C
+ d123582c5d5cdc2e4fdc925fa563f023  gcc/testsuite/g++.dg/cpp1z/static_assert1.C
  7dd3448d4722a9ee0446db6aa3c7a0b0  gcc/testsuite/g++.dg/cpp1z/ttp1.C
  0cd62ffa5ae2d02bd665e02895b12f01  gcc/testsuite/g++.dg/cpp1z/ttp2.C
  64b3f9e4e9d3f04ac339e1f86e353e9b  gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-neg.C
*************** c6ad3dc1af7ae5c57b2194ad705be2a4  gcc/te
*** 20898,20903 ****
--- 27967,27973 ----
  cbc1aae360c38b8d5aba44cc0adb1d1a  gcc/testsuite/g++.dg/cpp23/auto-fncast16.C
  0d6c0765aa6e381e901ea54f31098f7d  gcc/testsuite/g++.dg/cpp23/auto-fncast17.C
  607b1507f1af352b3b8d73c0b0042af0  gcc/testsuite/g++.dg/cpp23/auto-fncast18.C
+ 69903fe1df95185b5824d2ddaed4002a  gcc/testsuite/g++.dg/cpp23/auto-fncast19.C
  76d2964f5d2d58ccec6afc73c59f1b53  gcc/testsuite/g++.dg/cpp23/auto-fncast2.C
  dda23dff758a778a7ead9dd8b58268fc  gcc/testsuite/g++.dg/cpp23/auto-fncast3.C
  7f7896e62e131143c799cd8b4ac52168  gcc/testsuite/g++.dg/cpp23/auto-fncast4.C
*************** ee32c4ffc3127b060ad7d2d7978d4c00  gcc/te
*** 20908,20914 ****
--- 27978,27989 ----
  908376aadbb678dfe697398a3cf0bdb3  gcc/testsuite/g++.dg/cpp23/auto-fncast9.C
  436f3521c73eff29eb95a9935488f619  gcc/testsuite/g++.dg/cpp23/charlit-encoding1.C
  bbd34d70bffdb5659d43e105cc5654f0  gcc/testsuite/g++.dg/cpp23/charset1.C
+ f8b948f3bd58f417c8837abf4c607944  gcc/testsuite/g++.dg/cpp23/charset2.C
+ 520263925310ed180ef9cb12215dd06c  gcc/testsuite/g++.dg/cpp23/charset3.C
+ 38c0f828c58d52bc1c9da747ce2143c2  gcc/testsuite/g++.dg/cpp23/charset4.C
+ 1c8398ab63a0d995253666d53458bcc9  gcc/testsuite/g++.dg/cpp23/charset5.C
  fc95968ef690ef967f99e7fc9cf9bb22  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited1.C
+ 289c2847fb294b33f74d735aba8d2b44  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited10.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/te
*** 20916,20921 ****
--- 27991,27997 ----
  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
+ c281d9c48ed1e62c15bb0a8e9a361e9a  gcc/testsuite/g++.dg/cpp23/class-deduction-inherited9.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
*************** bda1d0d9c532526e7ebaa1257a653671  gcc/te
*** 20940,20945 ****
--- 28016,28022 ----
  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
+ 93625564a810fbd341648585a3a84d2a  gcc/testsuite/g++.dg/cpp23/constexpr-nonlit19.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
*************** c0e5d885fa865eb6022dc0d49f95ccc5  gcc/te
*** 20992,21005 ****
  db9c91c24877e8deb6833879427c1c5a  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics7.C
  bbec4ebaa9eb25cb6f5674378a048924  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics8.C
  91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
  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
  cb8eabd8ed2aec8d2d6ba1aa825f9307  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda5.C
--- 28069,28090 ----
  db9c91c24877e8deb6833879427c1c5a  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics7.C
  bbec4ebaa9eb25cb6f5674378a048924  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics8.C
  91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
+ 3b319517c82e6d742f914bac434e5633  gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C
  d794673e83c406364ada43bb3424172f  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda1.C
  63a44991fb60332c0389b38376547489  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda10.C
! 809122730285c1f3d656e4d50b24056e  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda11.C
  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
! 4e4eee2cc98e967eb67c2b28b145f331  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda16.C
! fe56bf124d429ccaa887937cdd60d625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda17.C
! d3a5a9df5514968709862976635c8094  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda18.C
! 4882304f120b6e2ec91e0db6c07d5eb4  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda19.C
! 0221584b2593a7b483e89830bc37b1d7  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
! 15806046d4b84c665a24477e28c66de8  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C
! 53a006b53f4f642ce54703dcb0679625  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda21.C
! 7b0add104f416bde19cf186e35bc773a  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda22.C
  e8adbb443f8b231b244ffbcd64ee7da2  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda3.C
  0a50eb80a181d4196ff68849d37d2615  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda4.C
  cb8eabd8ed2aec8d2d6ba1aa825f9307  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda5.C
*************** e4eef3325d652767c4b83b6aed8c24b5  gcc/te
*** 21041,21053 ****
  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
  9272c39a55b4b056c759abf207a7c7f7  gcc/testsuite/g++.dg/cpp23/label2.C
  794e5eb1bd211982315d61651af3bbaa  gcc/testsuite/g++.dg/cpp23/lambda-attr1.C
  1347e1fb0d78731bd360d6d44225ea34  gcc/testsuite/g++.dg/cpp23/lambda-attr2.C
  570aa212dcff2a498d044c98fa66a858  gcc/testsuite/g++.dg/cpp23/lambda-specifiers1.C
  0b54a398f8b42d5fc1ce9e8f422c3298  gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C
  7dfb88c8fc8142f5c07fe2c473ad00e1  gcc/testsuite/g++.dg/cpp23/lookup2.C
--- 28126,28151 ----
  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
! cb638f384b69db1073adfb06c1cc5942  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
  9272c39a55b4b056c759abf207a7c7f7  gcc/testsuite/g++.dg/cpp23/label2.C
  794e5eb1bd211982315d61651af3bbaa  gcc/testsuite/g++.dg/cpp23/lambda-attr1.C
  1347e1fb0d78731bd360d6d44225ea34  gcc/testsuite/g++.dg/cpp23/lambda-attr2.C
+ 0f7cc24302f8905c017e6e90606b714c  gcc/testsuite/g++.dg/cpp23/lambda-scope1.C
+ 04a38c9b7192cb6b7b0561e0de0f24df  gcc/testsuite/g++.dg/cpp23/lambda-scope10.C
+ 370e6b158571cc0b62c372e24c999b28  gcc/testsuite/g++.dg/cpp23/lambda-scope10a.C
+ c271f90d8014ef670f281e917b599b0c  gcc/testsuite/g++.dg/cpp23/lambda-scope11.C
+ 3ee2b5c0fe1ab038d1ca4bcefbd4bad1  gcc/testsuite/g++.dg/cpp23/lambda-scope2.C
+ b28e2c81690bb1a3c573d2b64dd1e7b7  gcc/testsuite/g++.dg/cpp23/lambda-scope3.C
+ b8668b66fbdc7b96d059a1fec1c10738  gcc/testsuite/g++.dg/cpp23/lambda-scope4.C
+ 3135957b6598f7f269de0c8476b1018e  gcc/testsuite/g++.dg/cpp23/lambda-scope4b.C
+ 528bd73aadcb888f30c7443d9409da4c  gcc/testsuite/g++.dg/cpp23/lambda-scope5.C
+ 53ca4e72cd3142f2258956a0e6d4faf5  gcc/testsuite/g++.dg/cpp23/lambda-scope6.C
+ d446141d4fc8cd3dfc9ee5b70d201848  gcc/testsuite/g++.dg/cpp23/lambda-scope7.C
+ 793b9cc3239cf8e490d81d4010140969  gcc/testsuite/g++.dg/cpp23/lambda-scope8.C
+ bac98dc48cf7f96f7817966cd5de0a4b  gcc/testsuite/g++.dg/cpp23/lambda-scope9.C
  570aa212dcff2a498d044c98fa66a858  gcc/testsuite/g++.dg/cpp23/lambda-specifiers1.C
  0b54a398f8b42d5fc1ce9e8f422c3298  gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C
  7dfb88c8fc8142f5c07fe2c473ad00e1  gcc/testsuite/g++.dg/cpp23/lookup2.C
*************** e408b3d8d3b64969041e538afc7dd797  gcc/te
*** 21081,21086 ****
--- 28179,28186 ----
  e44e5999e0fcf946fbaf4cc4247b99ae  gcc/testsuite/g++.dg/cpp23/static-operator-call4.C
  40f2c082ef41617a245e900009ecd2cf  gcc/testsuite/g++.dg/cpp23/static-operator-call5.C
  8b801aeeb85c01c051a33fa163907dc5  gcc/testsuite/g++.dg/cpp23/static-operator-call6.C
+ 72ea342064a8f8e14889eb8dd6c56d16  gcc/testsuite/g++.dg/cpp23/static-operator-call7.C
+ ee987e04d0a5b2d576fd49cbff4b9500  gcc/testsuite/g++.dg/cpp23/static-operator-call8.C
  36f6327df1a56ea4e9b05f09e62c676c  gcc/testsuite/g++.dg/cpp23/subscript1.C
  cc99147510a4c52615413a1c85c79b07  gcc/testsuite/g++.dg/cpp23/subscript10.C
  d685ca7f6c3f6496ec36569ed507b984  gcc/testsuite/g++.dg/cpp23/subscript11.C
*************** d249caf403715041728592d4a4163da2  gcc/te
*** 21103,21111 ****
  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
--- 28203,28251 ----
  60f9d3d6a5d9c7ef12a738913318d3ba  gcc/testsuite/g++.dg/cpp23/whitespace-splice1.C
  6436d595ca4673d478e9f47c4a6c9a67  gcc/testsuite/g++.dg/cpp26/aggr-init1.C
  a9b6dc4f3cf6490d2993bb17a4b87b72  gcc/testsuite/g++.dg/cpp26/aggr-init2.C
+ b18ba0cbdb9ffa0b64f76ae3a037d11a  gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C
+ a8d270b14d34e596be9b7b19686ce435  gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C
+ 3d13d312049cd6d36d78018ac884112d  gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C
+ 2a61c0e1ca02df10172c40cb7c8e867b  gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C
+ 338535b0502f94272035010e22922f19  gcc/testsuite/g++.dg/cpp26/attr-indeterminate5.C
+ 766438266de7b80013064af79c387336  gcc/testsuite/g++.dg/cpp26/consteval-block1.C
+ aaea35a035b24193ff3ba3cb04bbbd84  gcc/testsuite/g++.dg/cpp26/consteval-block2.C
+ 06b982e16422e70c9775e103750a3db7  gcc/testsuite/g++.dg/cpp26/consteval-block3.C
+ e171ef123db9e0e53628bef6aa1670df  gcc/testsuite/g++.dg/cpp26/consteval-block4.C
+ b5bb49fd1db1c92022a7dde8cfe4d78a  gcc/testsuite/g++.dg/cpp26/consteval-block5.C
+ 100c223723051d85213c9f33aa7302ca  gcc/testsuite/g++.dg/cpp26/consteval-block6.C
+ 5d9ba9168ed02690bc2dd7ebccd04fab  gcc/testsuite/g++.dg/cpp26/consteval-block7.C
+ e6b437b1634144ffff457b08d80403a3  gcc/testsuite/g++.dg/cpp26/consteval-block8.C
+ b77b864ec34cfd097092bf6bf2b43e48  gcc/testsuite/g++.dg/cpp26/constexpr-eh1.C
+ e8550532abe20b78e2e62fd0fd6fad3b  gcc/testsuite/g++.dg/cpp26/constexpr-eh10.C
+ 87a09f9bf115225499db784587a0edb8  gcc/testsuite/g++.dg/cpp26/constexpr-eh11.C
+ c544d34e1df7955e274df53b85725097  gcc/testsuite/g++.dg/cpp26/constexpr-eh12.C
+ 1beffef766e699fcf63d5af5d85bbe8a  gcc/testsuite/g++.dg/cpp26/constexpr-eh13.C
+ 47178e4d95ee013f1999b74f8f9c69a4  gcc/testsuite/g++.dg/cpp26/constexpr-eh14.C
+ e8e285d5f17f18710b7136f0f788f9c8  gcc/testsuite/g++.dg/cpp26/constexpr-eh15.C
+ 3b5f2464be3b6237317c355178b6abbf  gcc/testsuite/g++.dg/cpp26/constexpr-eh16.C
+ 65a22a49338fcb7526f2379bbc7d8666  gcc/testsuite/g++.dg/cpp26/constexpr-eh17.C
+ a6073e074c44b5f830037756b9110934  gcc/testsuite/g++.dg/cpp26/constexpr-eh18.C
+ 795fd0b3bb6cd5fcab8ed3203d375892  gcc/testsuite/g++.dg/cpp26/constexpr-eh19.C
+ 5dd3cceecaa6ec4f3aba7e8c298dc74c  gcc/testsuite/g++.dg/cpp26/constexpr-eh2.C
+ 26c369ca53153ae946088791d0790fa5  gcc/testsuite/g++.dg/cpp26/constexpr-eh3.C
+ 6ef0a812fa0528be79afea3ada17a5eb  gcc/testsuite/g++.dg/cpp26/constexpr-eh4.C
+ 1c0a703bddf109fe81f458c23001dcc2  gcc/testsuite/g++.dg/cpp26/constexpr-eh5.C
+ 03b57cb8250118b6be91a7bdb6354609  gcc/testsuite/g++.dg/cpp26/constexpr-eh6.C
+ 152032d180c849d4c7aec4a5c95a2844  gcc/testsuite/g++.dg/cpp26/constexpr-eh7.C
+ 46b4eb72c4877c7552e0b8b5e73d8154  gcc/testsuite/g++.dg/cpp26/constexpr-eh8.C
+ dc502eef9ceb703b539a3e2b2b75a0b1  gcc/testsuite/g++.dg/cpp26/constexpr-eh9.C
  c3a9b6852b1f09d9ece1fdf2078d65c2  gcc/testsuite/g++.dg/cpp26/constexpr-new1.C
  92cd7c8e3355d7acc8819940fc96bc7d  gcc/testsuite/g++.dg/cpp26/constexpr-new2.C
! 8afcbabb4d5a71f6b965bf5cff4ebd59  gcc/testsuite/g++.dg/cpp26/constexpr-new3.C
! de9765a13f0dc8289ae4d66360d163f6  gcc/testsuite/g++.dg/cpp26/constexpr-new4.C
! aba1d6e489711a3beb2f4e5245b70c63  gcc/testsuite/g++.dg/cpp26/constexpr-new4a.C
! 4c3096115645eaf70a48e5be49b31002  gcc/testsuite/g++.dg/cpp26/constexpr-new5.C
! 850d221b177aae68f687d87d71bdded1  gcc/testsuite/g++.dg/cpp26/constexpr-new6.C
! d5defe962551642729cf537a32fc518b  gcc/testsuite/g++.dg/cpp26/constexpr-new6a.C
! 354260f99fd60e96c277a56929f1d6e9  gcc/testsuite/g++.dg/cpp26/constexpr-virt-inherit1.C
! 00668a798f242a6125673c04eb06a10e  gcc/testsuite/g++.dg/cpp26/constexpr-virt-inherit2.C
! 9bbb24eae9cc5e4431f138520f489213  gcc/testsuite/g++.dg/cpp26/constexpr-virt-inherit3.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
*************** e6cd912bf923af3add3056c0b7235bab  gcc/te
*** 21115,21139 ****
  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
--- 28255,28345 ----
  6404fe1c41bc0435baaae5bf82009d36  gcc/testsuite/g++.dg/cpp26/decomp10.C
  0c6fcbc76ec6471803e93062f104892d  gcc/testsuite/g++.dg/cpp26/decomp11.C
  d01e805b9f6fdb44547d559f5b04ea4a  gcc/testsuite/g++.dg/cpp26/decomp12.C
+ 88acff64b0922759b136ba93eac6ed0b  gcc/testsuite/g++.dg/cpp26/decomp13.C
+ f1d13de23ea9a3bba72c099df16d0488  gcc/testsuite/g++.dg/cpp26/decomp14.C
+ 51c2c48d440225158c8134ad5f83b650  gcc/testsuite/g++.dg/cpp26/decomp15.C
+ e50ef6879fd77fa451a304fa6b752d92  gcc/testsuite/g++.dg/cpp26/decomp16.C
+ 2b4e0df8744a05194531491cc8c05fd6  gcc/testsuite/g++.dg/cpp26/decomp17.C
+ db444769766fb1ab08540d5324b93f8f  gcc/testsuite/g++.dg/cpp26/decomp18.C
+ 37526de4bae6bf609b32dfaab227d64a  gcc/testsuite/g++.dg/cpp26/decomp19.C
  70cb6b928ead9bbcb58e49f48aac09a0  gcc/testsuite/g++.dg/cpp26/decomp2.C
+ 9f93677ac517423638d9bafaca9e849f  gcc/testsuite/g++.dg/cpp26/decomp20.C
+ abac21de83ec6f3c8535a8e4fde29e90  gcc/testsuite/g++.dg/cpp26/decomp21.C
+ 7e2d9cc3e71d52c36118900b7f09ea64  gcc/testsuite/g++.dg/cpp26/decomp22.C
+ 7ef0ff9bc2a7cfb1ea71f3e0248b6a66  gcc/testsuite/g++.dg/cpp26/decomp23.C
+ f462246786df8652f2409939354d0c38  gcc/testsuite/g++.dg/cpp26/decomp24.C
+ f03ab32088d0fea8cefc516352c939d2  gcc/testsuite/g++.dg/cpp26/decomp25.C
+ dd3131ab1dbc85f08ebd66eda08bd240  gcc/testsuite/g++.dg/cpp26/decomp26.C
+ 5bf4ccd33ee7b05990e311ad63e2c51b  gcc/testsuite/g++.dg/cpp26/decomp27.C
+ 068dc2156782fc310d9fc4cd498d213d  gcc/testsuite/g++.dg/cpp26/decomp28.C
+ 75839c098b838f1ccf72394115eaf18b  gcc/testsuite/g++.dg/cpp26/decomp29.C
  04625a49d6c21164c6f7e075e578b4d2  gcc/testsuite/g++.dg/cpp26/decomp3.C
+ f03b98e8560560df97c75bfe30b54173  gcc/testsuite/g++.dg/cpp26/decomp30.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
! 5aa3e781d0260abe07c1d0c61a65e42b  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
! aa7084460b314da9c28cdf37e67100c4  gcc/testsuite/g++.dg/cpp26/erroneous1.C
! 2d866df24b8bb04fbf41271a10bf369c  gcc/testsuite/g++.dg/cpp26/erroneous2.C
! 1c3ed26721b611a54931a499aff9a565  gcc/testsuite/g++.dg/cpp26/erroneous3.C
! 0c6cc7bc14adc7d7cff2e19ed2f21ba9  gcc/testsuite/g++.dg/cpp26/erroneous4.C
! 297da1726d3e7afdc47f8d5d6953759b  gcc/testsuite/g++.dg/cpp26/erroneous5.C
! a37be6fa19087a24f020178e94b5020d  gcc/testsuite/g++.dg/cpp26/erroneous6.C
! b64ca644cecdc2d2f9240f5060f15ddd  gcc/testsuite/g++.dg/cpp26/expansion-stmt1.C
! 550ad6705c2ee18c462420135db42434  gcc/testsuite/g++.dg/cpp26/expansion-stmt10.C
! afc31399912c1c6d72a1f9b48fbad7fd  gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C
! d2f3d1d0903cd9aafbe5cfc699f5e974  gcc/testsuite/g++.dg/cpp26/expansion-stmt12.C
! b0af9cdfcccbd2f90d022063a5909a27  gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C
! 9a15f7dee81311d83ad9aea2e046e956  gcc/testsuite/g++.dg/cpp26/expansion-stmt14.C
! 8b57ea067d4cae17a4720a89345931b4  gcc/testsuite/g++.dg/cpp26/expansion-stmt15.C
! ee0fbdad9eb2e3ba5a9606de75374ad3  gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C
! 40a9f0169438dcc0077a4b3f3a07e396  gcc/testsuite/g++.dg/cpp26/expansion-stmt17.C
! 44a7aaec2d961560ddb9933095e7006f  gcc/testsuite/g++.dg/cpp26/expansion-stmt18.C
! fe42ac2a38331836beb86b32cbba7fdd  gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C
! 5392426c185f1cc8b0fc76ba4a048564  gcc/testsuite/g++.dg/cpp26/expansion-stmt2.C
! a430b39e1be5d1fb74398b6e2ed2bc77  gcc/testsuite/g++.dg/cpp26/expansion-stmt20.C
! 6d0dfe9eb3ad7d8109fbb3b138464ecc  gcc/testsuite/g++.dg/cpp26/expansion-stmt21.C
! f8d8f977a2ce10a22535ceb90309b531  gcc/testsuite/g++.dg/cpp26/expansion-stmt22.C
! acbce95791211ede09f67fcd376b48cb  gcc/testsuite/g++.dg/cpp26/expansion-stmt23.C
! 4f56781af7d20030274d9a133126e14b  gcc/testsuite/g++.dg/cpp26/expansion-stmt24.C
! 17ec29260400ff003e1f74fa23a7db32  gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C
! c03cbe0eeea49adccea22e13d8e8abf1  gcc/testsuite/g++.dg/cpp26/expansion-stmt26.C
! 6e0ba6570c6704c45f502e328e1b9c51  gcc/testsuite/g++.dg/cpp26/expansion-stmt27.C
! 311dc4c09c0e312fcde6a0fa7a18ea60  gcc/testsuite/g++.dg/cpp26/expansion-stmt28.C
! d8e5e351c8023abfb93d35657ce2b584  gcc/testsuite/g++.dg/cpp26/expansion-stmt29.C
! 023f480b6fe6eb322955e11226585a32  gcc/testsuite/g++.dg/cpp26/expansion-stmt3.C
! 6e07f682a22eed2b40b5b8e497fc1aae  gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C
! b005ade0b8af8c8f0685f948a8651ab5  gcc/testsuite/g++.dg/cpp26/expansion-stmt31.C
! b94ae032c2758e1cda2c6f6e583ac044  gcc/testsuite/g++.dg/cpp26/expansion-stmt32.C
! c778dc72984ffe0dfe58d397a664fc23  gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C
! 7a2e4ee10a7d7f503ba159a2ef5c9cac  gcc/testsuite/g++.dg/cpp26/expansion-stmt34.C
! b709f3966d2ad80e5871b667d715e985  gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C
! 95e20fbe0c6297de98add6354ead8b8d  gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C
! f0766c3cdb96663d3b77a4b19ab6db64  gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C
! fbaa97f955828122edb02abade5c00a5  gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C
! 2c3778243a2b5928285af41a533d9a8d  gcc/testsuite/g++.dg/cpp26/expansion-stmt39.C
! 05972a123b20a66b9c7899c2bb0b5042  gcc/testsuite/g++.dg/cpp26/expansion-stmt4.C
! c52edd0a13ff5fb8338be44eb349b17c  gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C
! 9bf935574926cc3e4cd8cab9708f9ede  gcc/testsuite/g++.dg/cpp26/expansion-stmt41.C
! 7cfc2afc603d55bfd66b320b3d190acd  gcc/testsuite/g++.dg/cpp26/expansion-stmt5.C
! 8419176a2bf5898de53901daf6efe2a9  gcc/testsuite/g++.dg/cpp26/expansion-stmt6.C
! f3b34592f993c84838b0ef36dad5ed5e  gcc/testsuite/g++.dg/cpp26/expansion-stmt7.C
! 68e2c6d50bfacacb8479c70ed9ed0ddc  gcc/testsuite/g++.dg/cpp26/expansion-stmt8.C
! fab75ccc959cbef8fb3183a88990faa8  gcc/testsuite/g++.dg/cpp26/expansion-stmt9.C
! 46820e80cc60be5c51c0901dcf4fb55c  gcc/testsuite/g++.dg/cpp26/feat-cxx26.C
  e439504634b8fdea668e10d9fc930c63  gcc/testsuite/g++.dg/cpp26/literals1.C
! 3572f5ef732defbaed672decde98fc83  gcc/testsuite/g++.dg/cpp26/literals2.C
! 8f5e59e0f7c8cbf6a6ab946370b7128b  gcc/testsuite/g++.dg/cpp26/name-independent-decl1.C
  cd432aa62bbbf4b16b93cb38b110d2a5  gcc/testsuite/g++.dg/cpp26/name-independent-decl10.C
+ 716a88642b5e961fcc1c493ea3af08bd  gcc/testsuite/g++.dg/cpp26/name-independent-decl11.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/te
*** 21142,21170 ****
  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
--- 28348,28398 ----
  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
+ a8f62135e9b099c6e8d6451a5148a689  gcc/testsuite/g++.dg/cpp26/observable-checkpoint.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
! 18dc8c6dbb44d1a1d59c4d60d0abf65c  gcc/testsuite/g++.dg/cpp26/pack-indexing15.C
  36888ce54ce42641fb6e61af819e4031  gcc/testsuite/g++.dg/cpp26/pack-indexing16.C
! 66ff6dfe6ddc544b4653391842e6eae8  gcc/testsuite/g++.dg/cpp26/pack-indexing17.C
! 7b55370f3253f2eae6d541ae349b6268  gcc/testsuite/g++.dg/cpp26/pack-indexing17a.C
! dec9cc8d0d460e2cc13f361418bfbd4c  gcc/testsuite/g++.dg/cpp26/pack-indexing18.C
! 4dfa54f1d3bc2ea91cd06e41813f7f63  gcc/testsuite/g++.dg/cpp26/pack-indexing19.C
! fe778e3443a0605eb531683e95196f09  gcc/testsuite/g++.dg/cpp26/pack-indexing2.C
! c664cf1427288d79a6a92cfc2f96c43b  gcc/testsuite/g++.dg/cpp26/pack-indexing20.C
! ebb5e891dd3f1f4176f01390886a7081  gcc/testsuite/g++.dg/cpp26/pack-indexing21.C
! fdfa996c41dbc6df8d980364fab84383  gcc/testsuite/g++.dg/cpp26/pack-indexing22.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
! a2ed31a87be635ccecaefd980d49e1c7  gcc/testsuite/g++.dg/cpp26/pack-indexing7.C
  a457069f7773dede2d30437b9569df74  gcc/testsuite/g++.dg/cpp26/pack-indexing8.C
! b1a661a36ea39986cf741c0a238ce9f0  gcc/testsuite/g++.dg/cpp26/pack-indexing9.C
  935218094ce32f7e344f11a3fd203c32  gcc/testsuite/g++.dg/cpp26/pr115754.C
+ d764dc997ed4475c38f0905edbf53b4a  gcc/testsuite/g++.dg/cpp26/pr124070.C
  e5c8f0eb28524b5990c773f0897c9a82  gcc/testsuite/g++.dg/cpp26/raw-string1.C
  b9789190917641a7dfa95059b0d37281  gcc/testsuite/g++.dg/cpp26/raw-string2.C
! 441c8c40ead9b31d50df30dbe360ef88  gcc/testsuite/g++.dg/cpp26/static_assert1.C
! 8aca76565e546c0188e275f568333a7b  gcc/testsuite/g++.dg/cpp26/stdarg1.C
! b3db20ce38ae1745c8e85ddf5872ba4b  gcc/testsuite/g++.dg/cpp26/stdarg10.C
! 94eb4f7ad7a4c857ba7310d896c05e6e  gcc/testsuite/g++.dg/cpp26/stdarg2.C
! b3ab902a4a78ea677d9248bff337be12  gcc/testsuite/g++.dg/cpp26/stdarg3.C
! 13235659b1b32147b6aa07fdc9855bca  gcc/testsuite/g++.dg/cpp26/stdarg4.C
! 8cc2d295ccf94f0344af52308f14b8f6  gcc/testsuite/g++.dg/cpp26/stdarg5.C
! 7f596ac90a7fb08ad543610eb017950e  gcc/testsuite/g++.dg/cpp26/stdarg6.C
! a720af208f0de55d7c7cf4a4fa56c9d4  gcc/testsuite/g++.dg/cpp26/stdarg7.C
! 41f4fc8ebcf6fb94b4d64ece54c3bd69  gcc/testsuite/g++.dg/cpp26/stdarg8.C
! f38816c5a8056b8342707cc96758d50e  gcc/testsuite/g++.dg/cpp26/stdarg9.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
+ 31b705d20ef43488e0a0926309fbf495  gcc/testsuite/g++.dg/cpp26/type-order1.C
+ a3a8cba4fbee69e46ecf1bdb30c7d924  gcc/testsuite/g++.dg/cpp26/type-order2.C
+ 5ab0a02e85909d35b1a2b95731935c0c  gcc/testsuite/g++.dg/cpp26/type-order3.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
*************** fbdc0e6797df6f79ec2f98e9681b3df2  gcc/te
*** 21265,21270 ****
--- 28493,28499 ----
  041d83d15cbe2f1b6faf8df5779ee617  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias24.C
  de00e6f50f8aa11ae388287d947cb6dd  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25.C
  5ca927feee2c144f300c078175416059  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25a.C
+ e958b2de4daf4cbee928c81f06d5dc9e  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C
  b5dae7ae7594a42f65f1f8f0f17b30a8  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C
  06de637acc58c0572ef2eb75419e55e3  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C
  0538d499885f751447275fb21053fc26  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C
*************** de871ba0c669234d7775a8dd50e71a82  gcc/te
*** 21294,21308 ****
  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
! 5ecd9522a37f94ff0b55525b8c6bd8d2  gcc/testsuite/g++.dg/cpp2a/concepts-complete4.C
  11178c260b3e89ebdbdce2a5bca50b11  gcc/testsuite/g++.dg/cpp2a/concepts-constrained-parm.C
  65e4b424a121ebbab5beacb2ebbf0591  gcc/testsuite/g++.dg/cpp2a/concepts-conv1.C
  3797e31584c1026d45ee1b5b08c4188b  gcc/testsuite/g++.dg/cpp2a/concepts-conv2.C
  3dfc2b34ff14f4caaefbb3aa208ead6a  gcc/testsuite/g++.dg/cpp2a/concepts-conv3.C
  c9bd56a9892857fac63c37d445f93faa  gcc/testsuite/g++.dg/cpp2a/concepts-conv3a.C
  c7b9c33b4c64892adbf5412ad5123053  gcc/testsuite/g++.dg/cpp2a/concepts-ctad1.C
  fb0e127ecb1cec0db6d4a1f2dc191508  gcc/testsuite/g++.dg/cpp2a/concepts-ctad2.C
  b767b966d12988229b81b213bca08722  gcc/testsuite/g++.dg/cpp2a/concepts-ctad3.C
--- 28523,28538 ----
  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
! becaf68736cdd389d6149212bb4af7d8  gcc/testsuite/g++.dg/cpp2a/concepts-complete1.C
! 46bf89eb0d23d9f41c4044cfbfa2605f  gcc/testsuite/g++.dg/cpp2a/concepts-complete2.C
! d0de4b90019cbda21e97bb3edf8a879e  gcc/testsuite/g++.dg/cpp2a/concepts-complete3.C
! edf4737c87df798414be7024fe3a8da9  gcc/testsuite/g++.dg/cpp2a/concepts-complete4.C
  11178c260b3e89ebdbdce2a5bca50b11  gcc/testsuite/g++.dg/cpp2a/concepts-constrained-parm.C
  65e4b424a121ebbab5beacb2ebbf0591  gcc/testsuite/g++.dg/cpp2a/concepts-conv1.C
  3797e31584c1026d45ee1b5b08c4188b  gcc/testsuite/g++.dg/cpp2a/concepts-conv2.C
  3dfc2b34ff14f4caaefbb3aa208ead6a  gcc/testsuite/g++.dg/cpp2a/concepts-conv3.C
  c9bd56a9892857fac63c37d445f93faa  gcc/testsuite/g++.dg/cpp2a/concepts-conv3a.C
+ 7185156beeddb2da2b8e0b8e795d890e  gcc/testsuite/g++.dg/cpp2a/concepts-conv4.C
  c7b9c33b4c64892adbf5412ad5123053  gcc/testsuite/g++.dg/cpp2a/concepts-ctad1.C
  fb0e127ecb1cec0db6d4a1f2dc191508  gcc/testsuite/g++.dg/cpp2a/concepts-ctad2.C
  b767b966d12988229b81b213bca08722  gcc/testsuite/g++.dg/cpp2a/concepts-ctad3.C
*************** edb46bdf72eaeb378f5f0d557153ad9d  gcc/te
*** 21311,21316 ****
--- 28541,28548 ----
  ce0107015099b9bc8bbb6308d69d1335  gcc/testsuite/g++.dg/cpp2a/concepts-decltype2.C
  20942197b42aecb2031c455e6c7139db  gcc/testsuite/g++.dg/cpp2a/concepts-decltype3.C
  bd5315a1ae1bb7ab6b080320eca4e7cc  gcc/testsuite/g++.dg/cpp2a/concepts-decltype4.C
+ 22508583fabe144a053070d600a2f4ff  gcc/testsuite/g++.dg/cpp2a/concepts-decltype5.C
+ c2e23a46012960cb2717300e180866e4  gcc/testsuite/g++.dg/cpp2a/concepts-decltype6.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
*************** f48f8abadf7267488e7fc07300b15321  gcc/te
*** 21357,21362 ****
--- 28589,28596 ----
  f2bb90a7b95f5ca56f19993dc668ce44  gcc/testsuite/g++.dg/cpp2a/concepts-friend15.C
  78691a3f17811dcdecf47f6df427a97c  gcc/testsuite/g++.dg/cpp2a/concepts-friend16.C
  7ecb03f5905c0460a20f5edf81561f98  gcc/testsuite/g++.dg/cpp2a/concepts-friend17.C
+ b192de319a3668a8a3539d1c8be790c9  gcc/testsuite/g++.dg/cpp2a/concepts-friend18.C
+ 451bfd68952d37940a8f8c9efdf8011b  gcc/testsuite/g++.dg/cpp2a/concepts-friend18a.C
  2fdb3d1a7c3f6a1361b9e8a0700d78f5  gcc/testsuite/g++.dg/cpp2a/concepts-friend2.C
  3f315ba7ac021707fcaa518bf77b73e4  gcc/testsuite/g++.dg/cpp2a/concepts-friend3.C
  ac59cd12de1286d61d74c57276a780ba  gcc/testsuite/g++.dg/cpp2a/concepts-friend4.C
*************** c61f89754bf19eb066c90223050eb1d6  gcc/te
*** 21393,21398 ****
--- 28627,28633 ----
  f553dcaedc09d2c9050b889d62bcff97  gcc/testsuite/g++.dg/cpp2a/concepts-lambda22.C
  a33c273c880831d4ae8354f3eae13e25  gcc/testsuite/g++.dg/cpp2a/concepts-lambda23.C
  c5f62ec8bee71a828d47886f4bfb04dc  gcc/testsuite/g++.dg/cpp2a/concepts-lambda24.C
+ 4f2175a0b18d9ac1791f0a131a07292a  gcc/testsuite/g++.dg/cpp2a/concepts-lambda25.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
*************** ca398f2b2e8443dc7a94b70c83a40ca1  gcc/te
*** 21427,21432 ****
--- 28662,28669 ----
  1494c15487c9bc95ba5295fa3498592b  gcc/testsuite/g++.dg/cpp2a/concepts-nondep2.C
  7ceb4140c2faad64ec92d7cee1fa713b  gcc/testsuite/g++.dg/cpp2a/concepts-nondep3.C
  a6eb0831ebd2429090207fd4ded81c24  gcc/testsuite/g++.dg/cpp2a/concepts-nondep4.C
+ 4980bdd61337c3b80f121690312812eb  gcc/testsuite/g++.dg/cpp2a/concepts-nondep5.C
+ 25f5af062af86f61a0ac1622ed0c8274  gcc/testsuite/g++.dg/cpp2a/concepts-nondep6.C
  346f87c83404f356f2db97a19e1e04a2  gcc/testsuite/g++.dg/cpp2a/concepts-p1141.C
  517f6d7a5f4dd6f650d5d9a39a8a2f24  gcc/testsuite/g++.dg/cpp2a/concepts-p2092.C
  c02adf26d58e820807cae8699c98d45a  gcc/testsuite/g++.dg/cpp2a/concepts-p2113a.C
*************** b48de652a269ba0411d9c971e6b06869  gcc/te
*** 21450,21457 ****
  29ec7a379f70ee79ba0310d8fc45703b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder1.C
  3250feafbcf92ec0eb11831d9a5350a7  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder10.C
  966bf7435554a7a150aa0fb09697b04c  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder11.C
! f57d40e8c8a062ab42228a604dc8b336  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C
  3d20f95d326918d497b3b309b9eda0d9  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder13.C
  9a1776b1d9b3c080e847b78507e8c1c6  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder2.C
  d4ce4a5306e35eff2b78390b50d6c95b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder3.C
  e428d578c8a0c5a61ab85eddccb24071  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder4.C
--- 28687,28695 ----
  29ec7a379f70ee79ba0310d8fc45703b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder1.C
  3250feafbcf92ec0eb11831d9a5350a7  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder10.C
  966bf7435554a7a150aa0fb09697b04c  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder11.C
! eaed9e04cf08b21a26b42c5128e0b6b1  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C
  3d20f95d326918d497b3b309b9eda0d9  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder13.C
+ 10165b900c5003d3691cd5cf5fae858b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder15.C
  9a1776b1d9b3c080e847b78507e8c1c6  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder2.C
  d4ce4a5306e35eff2b78390b50d6c95b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder3.C
  e428d578c8a0c5a61ab85eddccb24071  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder4.C
*************** ebebcf3ee0f1f8f456d97ce908f36eb5  gcc/te
*** 21466,21472 ****
--- 28704,28714 ----
  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
+ bc013e85b03083defb9345b90c812b79  gcc/testsuite/g++.dg/cpp2a/concepts-pr116477.C
  4b3fe1ba64fb6a81fe92d55b090adf3a  gcc/testsuite/g++.dg/cpp2a/concepts-pr116681.C
+ 24814124a2638795704cea1177c1d93c  gcc/testsuite/g++.dg/cpp2a/concepts-pr122494.C
+ f5d0f986539b8cf3edb4d60aaa9e06d0  gcc/testsuite/g++.dg/cpp2a/concepts-pr123663.C
+ c3a5a8ffeaedc47bb7c475c240bce1c2  gcc/testsuite/g++.dg/cpp2a/concepts-pr123814.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
*************** eade582d72f3e6b1e06dacf6ee9217ce  gcc/te
*** 21495,21501 ****
  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
--- 28737,28744 ----
  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
! 1754a2ae958764af505cf239b6f3d86d  gcc/testsuite/g++.dg/cpp2a/concepts-pr67210.C
! b339ce14a8252faba7c619283dd32852  gcc/testsuite/g++.dg/cpp2a/concepts-pr67210a.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
*************** e4824ff4a368f4083c4ab5643225d818  gcc/te
*** 21556,21569 ****
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
  84e3bf69ec5b7c3c513058b3d69bfc41  gcc/testsuite/g++.dg/cpp2a/concepts-pr95497.C
! f14a1d093c6192fd601a94286a19cd55  gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C
  f713831318164c8a8d53cee4f41a5feb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98394.C
  47d56c0b8e4b2e304785aae26d0409fb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98644.C
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
! 494a9362815e7269cd14d3b6eb900c68  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C
  c74823853141d61f8e8a8e1d3a3f8bd4  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C
! 333e80767f9ac98151ff6ec608cef8ab  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat4.C
! a5dcc7f1104645e397389de9dc3d2362  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat5.C
  05d0c4aeef396d36ed2d0d824682b06c  gcc/testsuite/g++.dg/cpp2a/concepts-redecl1.C
  89a75de6ffea2b5931b15021369b2a4e  gcc/testsuite/g++.dg/cpp2a/concepts-requires1.C
  2a75164ac4ebdba51dd415fcd578a8f9  gcc/testsuite/g++.dg/cpp2a/concepts-requires10.C
--- 28799,28812 ----
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
  84e3bf69ec5b7c3c513058b3d69bfc41  gcc/testsuite/g++.dg/cpp2a/concepts-pr95497.C
! aed2a0a9cf898a444bd5803ebd1fd5fc  gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C
  f713831318164c8a8d53cee4f41a5feb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98394.C
  47d56c0b8e4b2e304785aae26d0409fb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98644.C
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
! b0679a6958bd99749db8630269b69a2c  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C
  c74823853141d61f8e8a8e1d3a3f8bd4  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C
! 58cbdb27d3cbc7ef7d656e1588509527  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat4.C
! 068f4770bb6848b516017a203e505522  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat5.C
  05d0c4aeef396d36ed2d0d824682b06c  gcc/testsuite/g++.dg/cpp2a/concepts-redecl1.C
  89a75de6ffea2b5931b15021369b2a4e  gcc/testsuite/g++.dg/cpp2a/concepts-requires1.C
  2a75164ac4ebdba51dd415fcd578a8f9  gcc/testsuite/g++.dg/cpp2a/concepts-requires10.C
*************** f22e232a82f7c1bad4e99814aa64e024  gcc/te
*** 21602,21608 ****
  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
--- 28845,28851 ----
  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
! 5d6de37c2e62b40c8a5db3700bd63c60  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
*************** e7d2cd347c791b674d0be66da74077a1  gcc/te
*** 21620,21635 ****
  6481a02e05fcaca18a06555309e672d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm1.C
  437145357446d9d26ecec49e56fc89f2  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm10.C
  afbb7564ae9fd5590012ead5821a21d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm11.C
! c66c957a03459efed336ab628ac7a020  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C
  95492dd69ffdbd68e23f9ff1d52bf2f6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm5.C
! 476e5200a2508065879f3ee51bfd73b5  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C
  9ff1f88974ac56dba726f1074288f8e9  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C
  ec9215388b111eac1916dca163b2b4dd  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
  8fe2b0550580edd7f36bb9d150fad6c4  gcc/testsuite/g++.dg/cpp2a/concepts-throw1.C
  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
--- 28863,28881 ----
  6481a02e05fcaca18a06555309e672d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm1.C
  437145357446d9d26ecec49e56fc89f2  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm10.C
  afbb7564ae9fd5590012ead5821a21d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm11.C
! fa41e15d3a98d958b2778ef7ecbfa8cb  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C
! 13549745deec17bb36281547904712c5  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C
  95492dd69ffdbd68e23f9ff1d52bf2f6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm5.C
! 272b33f331a2ec8882a4cbc8dea6a8ff  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C
  9ff1f88974ac56dba726f1074288f8e9  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C
  ec9215388b111eac1916dca163b2b4dd  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
  8fe2b0550580edd7f36bb9d150fad6c4  gcc/testsuite/g++.dg/cpp2a/concepts-throw1.C
  39c15f1dc604f714304d144250164089  gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C
  c9a6ab7bc0f1947e843b9c7150ccb98c  gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C
! a25a4c85f70241ed0e288dd36ade68a7  gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C
! 024b05cd463d21d4dec3d5089b33b061  gcc/testsuite/g++.dg/cpp2a/concepts-traits4.C
! 7a21d9ffa8c304d56b68d16bdea51d55  gcc/testsuite/g++.dg/cpp2a/concepts-traits5.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
*************** b06aea4ef34a1015ed525413558ddac0  gcc/te
*** 21646,21651 ****
--- 28892,28901 ----
  a95dbf28241ffec87fb48912ed83e629  gcc/testsuite/g++.dg/cpp2a/concepts-using2.C
  8d75a7bd1dff1e92992b77d66deb889b  gcc/testsuite/g++.dg/cpp2a/concepts-using3.C
  1c0b6956abb6cc9d451cbad9763665e0  gcc/testsuite/g++.dg/cpp2a/concepts-using4.C
+ 10200cb73b1bb6443f53044708cc6c85  gcc/testsuite/g++.dg/cpp2a/concepts-using5.C
+ d413557ac25b939174ec565ccf9ef3a8  gcc/testsuite/g++.dg/cpp2a/concepts-using5a.C
+ fb1ad2ac5b658a4cc71bda178e736608  gcc/testsuite/g++.dg/cpp2a/concepts-using6.C
+ 7e0d58ca005c696397e1e709ae4d04ac  gcc/testsuite/g++.dg/cpp2a/concepts-using7.C
  eb51a2e88a343491b3a0676b4ff623cf  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1.C
  c344a88e2fb58ca9d19beb62602dabc5  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1a.C
  d29bcca633bb639bebf16b846292cebc  gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1b.C
*************** d29bcca633bb639bebf16b846292cebc  gcc/te
*** 21653,21658 ****
--- 28903,28909 ----
  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
+ 16227ac96ffc620f5d64f7be301db195  gcc/testsuite/g++.dg/cpp2a/concepts-variadic4.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
*************** bb37b7e21277348c6ff1ca2d24833a5f  gcc/te
*** 21668,21674 ****
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
  ed5bc7caf9e0d37742bad332bfb90193  gcc/testsuite/g++.dg/cpp2a/consteval-defarg3.C
  06108a2b84aac0c8eb7f2844fc732944  gcc/testsuite/g++.dg/cpp2a/consteval-expinst1.C
! cfa9681746843f22381958e4226c1400  gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C
  db212700d636aa0588ecc9341fc2ff01  gcc/testsuite/g++.dg/cpp2a/consteval-memfn2.C
  ec42263e1d5335ca392e297f05e7fed9  gcc/testsuite/g++.dg/cpp2a/consteval-prop1.C
  11a20933b84a9710f87fa840b2cf0bf1  gcc/testsuite/g++.dg/cpp2a/consteval-prop10.C
--- 28919,28925 ----
  6b5fc6f23fc6df75d45300b8bc1ad4ef  gcc/testsuite/g++.dg/cpp2a/consteval-defarg2.C
  ed5bc7caf9e0d37742bad332bfb90193  gcc/testsuite/g++.dg/cpp2a/consteval-defarg3.C
  06108a2b84aac0c8eb7f2844fc732944  gcc/testsuite/g++.dg/cpp2a/consteval-expinst1.C
! 47a84b974455176a27c8307f61ec5b8d  gcc/testsuite/g++.dg/cpp2a/consteval-memfn1.C
  db212700d636aa0588ecc9341fc2ff01  gcc/testsuite/g++.dg/cpp2a/consteval-memfn2.C
  ec42263e1d5335ca392e297f05e7fed9  gcc/testsuite/g++.dg/cpp2a/consteval-prop1.C
  11a20933b84a9710f87fa840b2cf0bf1  gcc/testsuite/g++.dg/cpp2a/consteval-prop10.C
*************** d13a3bb7f52d0ff550c2883f5a2c9b93  gcc/te
*** 21724,21730 ****
  2525d3c20efed8795b290b9c5d66c8ae  gcc/testsuite/g++.dg/cpp2a/consteval31.C
  b62fa034bb46b39a59a7db1a60d3c927  gcc/testsuite/g++.dg/cpp2a/consteval32.C
  6cadf4113cb1c6dd19c7d7bc59166fe8  gcc/testsuite/g++.dg/cpp2a/consteval33.C
! 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
--- 28975,28981 ----
  2525d3c20efed8795b290b9c5d66c8ae  gcc/testsuite/g++.dg/cpp2a/consteval31.C
  b62fa034bb46b39a59a7db1a60d3c927  gcc/testsuite/g++.dg/cpp2a/consteval32.C
  6cadf4113cb1c6dd19c7d7bc59166fe8  gcc/testsuite/g++.dg/cpp2a/consteval33.C
! 3afa3ed577c80a85df04c31475bd077a  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/te
*** 21733,21738 ****
--- 28984,28990 ----
  2d6205fea644048201c44086df527c3a  gcc/testsuite/g++.dg/cpp2a/consteval4.C
  34ecadb8994bf3d4c005295e95f6f53d  gcc/testsuite/g++.dg/cpp2a/consteval40.C
  09d61acf831f6fd33b3695f66ce79b1e  gcc/testsuite/g++.dg/cpp2a/consteval41.C
+ 25cda58432ffe21cd15da667f5edfb8d  gcc/testsuite/g++.dg/cpp2a/consteval42.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
*************** bc9287a9c261c2c6a397e45407917a6d  gcc/te
*** 21742,21748 ****
  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/testsuite/g++.dg/cpp2a/constexpr-dtor10.C
--- 28994,29000 ----
  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
! 09d800b77efc4efc11ef0609106774dc  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/testsuite/g++.dg/cpp2a/constexpr-dtor10.C
*************** cbf5d5a37bc2a85bde738f9433003a39  gcc/te
*** 21751,21784 ****
  9e266e2e7c32bba4e0b7648c83e4833c  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor13.C
  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
  1ab49acfb4093ac63d8a1117dc494fcd  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor5.C
  e4a44aaa3ef782710c6fe5bed9f0f6cc  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor6.C
! 71368b9907c9488382043e579290be8e  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor7.C
  2ace88efd8c64f15ecec7394adb6c643  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor8.C
  c35079b724daf37ab1e1277e8f08b5c0  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor9.C
  bd02bcf8862aba3fa6689c619512c0fc  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1.C
! b5f4f9a8f5933754f321648f67e54dac  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic10.C
! 9dd9af59811f7e51984420eb1396429f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic11.C
  15268a28d01e2c5f3b8e199a3c412199  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic12.C
  245e9a62156e3df3195f188342c0442b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic13.C
! 4bbc8c155bf00bbeffcd491fee037b03  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic14.C
  3ea3f5f5236e9cc53279d901672dd818  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic15.C
  1a30baf82f09866d37d6e96a76379f47  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic16.C
  b64753c380df7428569f8befeb1510e8  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic17.C
! 8fe226b0e900985b1f76643e8aaf737b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic18.C
  6a856dd4720aaf5ca7ba6e7422f849a9  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic2.C
  6ddf97a1878f89c02ca0c76de5f0f08f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic3.C
! 28c0eaf9ba35a479b5d50ddb90e7dc07  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic4.C
  241e6a526a9b83d4a9af6d771aa58339  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic5.C
! 55e976b338f57ee64b3d331c56fad439  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic6.C
! 757c1b921a2bd5069e5b89f0254e0528  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic7.C
! 6951be3b101c71e7ba4f26c0359d99e3  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic8.C
! a3321cfaafcd76ed99e5ad88a213868d  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic9.C
  573850937e1fbb5a2c2bc0b4b0da9e0a  gcc/testsuite/g++.dg/cpp2a/constexpr-indeterminate1.C
  a72ce8f47ef4b3c359cbb1e2a6f6a9b3  gcc/testsuite/g++.dg/cpp2a/constexpr-init1.C
  3d47e986a1a87c4a72e6fd1725b4e073  gcc/testsuite/g++.dg/cpp2a/constexpr-init10.C
--- 29003,29040 ----
  9e266e2e7c32bba4e0b7648c83e4833c  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor13.C
  993e4c6829e9ab56db460153dc55bad1  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor14.C
  1020d355cd830dffa45dfd17a95222fa  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor15.C
! 53a8d0a6c685819970a9fa554fdf4154  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor16.C
  619af6d01fa79804784a2c8b0c9dcbee  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor17.C
+ fbb69b1132a414de03ead400a5096fe7  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor18.C
+ 689d246063b0bcbe4166cc3472365f23  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor19.C
  18ceb8d2ffe5d8e310f40839d2edf0d5  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor2.C
! 35d472b389db4ae79d8a0ba112cf7266  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C
  780076eefadeb33a1dce586533960b80  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor4.C
  1ab49acfb4093ac63d8a1117dc494fcd  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor5.C
  e4a44aaa3ef782710c6fe5bed9f0f6cc  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor6.C
! 27018b1ec771531b68df39ae08384a74  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor7.C
  2ace88efd8c64f15ecec7394adb6c643  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor8.C
  c35079b724daf37ab1e1277e8f08b5c0  gcc/testsuite/g++.dg/cpp2a/constexpr-dtor9.C
  bd02bcf8862aba3fa6689c619512c0fc  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1.C
! bf5c28c84619a07f8720e84cdefac3a6  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic10.C
! 7be101b7457a2985551fee57a478f424  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic11.C
  15268a28d01e2c5f3b8e199a3c412199  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic12.C
  245e9a62156e3df3195f188342c0442b  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic13.C
! 6f595bb543b29b89e09200fadfb08f69  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic14.C
  3ea3f5f5236e9cc53279d901672dd818  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic15.C
  1a30baf82f09866d37d6e96a76379f47  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic16.C
  b64753c380df7428569f8befeb1510e8  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic17.C
! 059480bbf20fee51e8eee26d0acf767f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic18.C
! ba2b3d3cd6f23028bc237ee7025256fb  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic19.C
! dd98bfd651ed53723db105ea6def894e  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic1a.C
  6a856dd4720aaf5ca7ba6e7422f849a9  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic2.C
  6ddf97a1878f89c02ca0c76de5f0f08f  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic3.C
! 643405358f97b14e4cee0ed8a7e52bac  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic4.C
  241e6a526a9b83d4a9af6d771aa58339  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic5.C
! 05f3c608cea6475227a87750edf23f1a  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic6.C
! 53d591d93a19d1c9bfd83821c47a5620  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic7.C
! c453ec3e5079a0a4dbc6100b037bbc10  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic8.C
! d5f330a8b6e88aab387ebcc47e17575c  gcc/testsuite/g++.dg/cpp2a/constexpr-dynamic9.C
  573850937e1fbb5a2c2bc0b4b0da9e0a  gcc/testsuite/g++.dg/cpp2a/constexpr-indeterminate1.C
  a72ce8f47ef4b3c359cbb1e2a6f6a9b3  gcc/testsuite/g++.dg/cpp2a/constexpr-init1.C
  3d47e986a1a87c4a72e6fd1725b4e073  gcc/testsuite/g++.dg/cpp2a/constexpr-init10.C
*************** ac9bb69a57b021f97f435bdd64fdc923  gcc/te
*** 21823,21832 ****
  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
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C
--- 29079,29091 ----
  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
! 27208da003125c43373cb29367bffb95  gcc/testsuite/g++.dg/cpp2a/constexpr-new24.C
  842eb288f31fa0fd04ade7dce7711c8f  gcc/testsuite/g++.dg/cpp2a/constexpr-new25.C
! 9c9a253330e2e1d6c9f18bf32734f49b  gcc/testsuite/g++.dg/cpp2a/constexpr-new26.C
! 512e13cb69d9488ca34db670ec184ffa  gcc/testsuite/g++.dg/cpp2a/constexpr-new27.C
! d709e22586e0f15cdddf72cf1af132a3  gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C
! 6443db9a4ad20238d499c5aefeb748d0  gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C
! 0414d7d6b0fb57808fb8f2a4927b51cb  gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C
  44e96a6cfd450fc9d40c13cc7a4e98f3  gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C
  09667d3c51ef176269e12b2ece101f3d  gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C
*************** d29f558af48deff313645aecd90adb8d  gcc/te
*** 21836,21861 ****
  1d3b0e7bd64b76d92b8ff4d82aba48e9  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue1.C
  7ab8f2bb925385f3c907d1d36a81ac9b  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.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
! 27ac7e1957f04ea6ee6160a7f7c14ecc  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
! c169c0f663257a769b1da0d94c0c7307  gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
  d74e93a21b21eb22ce0742e9b6bbb923  gcc/testsuite/g++.dg/cpp2a/constexpr-try4.C
  02c2a396d7fac0a627ada9a52c486da3  gcc/testsuite/g++.dg/cpp2a/constexpr-try5.C
  e8575fbcf5a3e212ea28a4b89fbf8253  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid1.C
  e9ee7a058b99aafd367d4607dea8fd61  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid2.C
  f078be8dacba182f7d71dbd5dc780d67  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid3.C
  d5cf00e36fa4ba1a100d8370416e1bc2  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid4.C
  a9a14bb307d24157192c2d361ae5fcbe  gcc/testsuite/g++.dg/cpp2a/constexpr-union1.C
  4fd1e359f10f22a9e4ac5656c39367e2  gcc/testsuite/g++.dg/cpp2a/constexpr-union2.C
  64db89fe8184ef8910fbbef6f4db6984  gcc/testsuite/g++.dg/cpp2a/constexpr-union3.C
  c0b015cd02e07242444c2700f64e070a  gcc/testsuite/g++.dg/cpp2a/constexpr-union4.C
  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
  b00a4635a4c11366be17b4b6a45910f7  gcc/testsuite/g++.dg/cpp2a/constexpr-union9.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
--- 29095,29124 ----
  1d3b0e7bd64b76d92b8ff4d82aba48e9  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue1.C
  7ab8f2bb925385f3c907d1d36a81ac9b  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C
  081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
+ 4e9e96fc4d4d62f845bac315ec17677d  gcc/testsuite/g++.dg/cpp2a/constexpr-ref2.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
! 1f5b8000b29315ba3af28b7bd9f18540  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
! 998420d0a57cce98957e79abdb9865d3  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
! 7735fb04b9642ba24ab00207340cff41  gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
  d74e93a21b21eb22ce0742e9b6bbb923  gcc/testsuite/g++.dg/cpp2a/constexpr-try4.C
  02c2a396d7fac0a627ada9a52c486da3  gcc/testsuite/g++.dg/cpp2a/constexpr-try5.C
  e8575fbcf5a3e212ea28a4b89fbf8253  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid1.C
  e9ee7a058b99aafd367d4607dea8fd61  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid2.C
  f078be8dacba182f7d71dbd5dc780d67  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid3.C
  d5cf00e36fa4ba1a100d8370416e1bc2  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid4.C
+ 046d5a749301b0abcf59d5e4189c4e98  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid5.C
  a9a14bb307d24157192c2d361ae5fcbe  gcc/testsuite/g++.dg/cpp2a/constexpr-union1.C
+ 7c347df7a530f4b435982cde93fd790e  gcc/testsuite/g++.dg/cpp2a/constexpr-union10.C
+ c2bce719eee618db0268e56afba5daaf  gcc/testsuite/g++.dg/cpp2a/constexpr-union11.C
  4fd1e359f10f22a9e4ac5656c39367e2  gcc/testsuite/g++.dg/cpp2a/constexpr-union2.C
  64db89fe8184ef8910fbbef6f4db6984  gcc/testsuite/g++.dg/cpp2a/constexpr-union3.C
  c0b015cd02e07242444c2700f64e070a  gcc/testsuite/g++.dg/cpp2a/constexpr-union4.C
  506a486b7e3cc863b24cd04db4e706cd  gcc/testsuite/g++.dg/cpp2a/constexpr-union5.C
! 304270bc22c605e31d399e4d5c782673  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
  b00a4635a4c11366be17b4b6a45910f7  gcc/testsuite/g++.dg/cpp2a/constexpr-union9.C
! 53f229837a5922ba8f93f5b121190ca5  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
*************** fabe5ae775d8ec2d83242789d3045132  gcc/te
*** 21883,21896 ****
  e25bc28f0b6e34ad034e87a07431c5ce  gcc/testsuite/g++.dg/cpp2a/constinit11.C
  3a8c22f7aef66372b70bc1ff6d80cbe8  gcc/testsuite/g++.dg/cpp2a/constinit12.C
  a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/testsuite/g++.dg/cpp2a/constinit13.C
! 456e0d2a62b21ac916064a5f6c17d219  gcc/testsuite/g++.dg/cpp2a/constinit14.C
  94ee35190fa1fe7affa8b19c3f096e85  gcc/testsuite/g++.dg/cpp2a/constinit15.C
! b4a46903f1578c613195d03127dbcae5  gcc/testsuite/g++.dg/cpp2a/constinit16.C
  6711d333549a07ea54942f18c64f8a0a  gcc/testsuite/g++.dg/cpp2a/constinit17.C
  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
--- 29146,29160 ----
  e25bc28f0b6e34ad034e87a07431c5ce  gcc/testsuite/g++.dg/cpp2a/constinit11.C
  3a8c22f7aef66372b70bc1ff6d80cbe8  gcc/testsuite/g++.dg/cpp2a/constinit12.C
  a5ab0c1acf96ddc777b5af2b1b69b23d  gcc/testsuite/g++.dg/cpp2a/constinit13.C
! 5ec173deec75e686b7e414c08b6d07cf  gcc/testsuite/g++.dg/cpp2a/constinit14.C
  94ee35190fa1fe7affa8b19c3f096e85  gcc/testsuite/g++.dg/cpp2a/constinit15.C
! 5818de1ec9e9c9b804f4d4270e20d353  gcc/testsuite/g++.dg/cpp2a/constinit16.C
  6711d333549a07ea54942f18c64f8a0a  gcc/testsuite/g++.dg/cpp2a/constinit17.C
  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
+ 53ac4d7ed8b6f12589ccff463969dc47  gcc/testsuite/g++.dg/cpp2a/constinit21.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
*************** ea31517e527d7eb88edeeab341ec1a8b  gcc/te
*** 21903,21909 ****
  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
--- 29167,29173 ----
  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
! b43ef64f974b1072708b231b049e3ed4  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
*************** d7ed0ebf26a6437db2b5aa0d69a1e9d1  gcc/te
*** 22029,22036 ****
  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/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class3.C
--- 29293,29302 ----
  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
! 0ce0b20051d8b7b5a9382c34a9005370  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible3.C
! cadf9c444452cb9eca3ad79d21541287  gcc/testsuite/g++.dg/cpp2a/is-layout-compatible4.C
  087bb26b7fb10078d7689347b3385e63  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-base-of1.C
+ 0046aad3b6ed9922809190e813885c96  gcc/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-base-of2.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/testsuite/g++.dg/cpp2a/is-pointer-interconvertible-with-class3.C
*************** e51a1f351d036a98667cf057f185a86f  gcc/te
*** 22070,22075 ****
--- 29336,29343 ----
  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
+ e00a2c6262bc70a2116109490297d05b  gcc/testsuite/g++.dg/cpp2a/lambda-requires6.C
+ 00a20fd756724254c2eb0801b9b4fc16  gcc/testsuite/g++.dg/cpp2a/lambda-requires6a.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
*************** c7b2313c64f226651e97ebc4e634cc95  gcc/te
*** 22079,22085 ****
--- 29347,29365 ----
  fc1805f7c9ae0e0d70715f21f1ab1323  gcc/testsuite/g++.dg/cpp2a/lambda-targ13b.C
  7b82b863c8a6f3c30784d618a2e3c535  gcc/testsuite/g++.dg/cpp2a/lambda-targ14.C
  8c0cfd54130aa654e2e50e1925316cab  gcc/testsuite/g++.dg/cpp2a/lambda-targ15.C
+ 8d4a60f484f6af22e432afc4620ef9f8  gcc/testsuite/g++.dg/cpp2a/lambda-targ16.C
+ 8d23b1e036f428ec77a4920b68180ae3  gcc/testsuite/g++.dg/cpp2a/lambda-targ17.C
+ bef40735cb8990bf2be0e69a401f204b  gcc/testsuite/g++.dg/cpp2a/lambda-targ18.C
+ bb58849ed5ff08289f5c5392f492c7f2  gcc/testsuite/g++.dg/cpp2a/lambda-targ19.C
  d363d5590bc863dbb1f6bb96bad95b3c  gcc/testsuite/g++.dg/cpp2a/lambda-targ2.C
+ 4a6ffc2b771825c108a429a4faf02bcc  gcc/testsuite/g++.dg/cpp2a/lambda-targ20.C
+ e20c87111262a5e61bd6b3d5b3c21beb  gcc/testsuite/g++.dg/cpp2a/lambda-targ21.C
+ cf4951735fc79d21719a1d9d147e601f  gcc/testsuite/g++.dg/cpp2a/lambda-targ22.C
+ cda34ab516f0f3b749efab4ba8f525af  gcc/testsuite/g++.dg/cpp2a/lambda-targ22a.C
+ c9c401dee234950a35f6baa7697a4559  gcc/testsuite/g++.dg/cpp2a/lambda-targ23.C
+ 5891843d160f32e907903a257a0ac85a  gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C
+ 2974766b277ea1141793386ea16ee705  gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C
+ 4df914202d094298eb4ac77045f4eae2  gcc/testsuite/g++.dg/cpp2a/lambda-targ25.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
*************** d948ecca981f7c5de5ca48afc987ea36  gcc/te
*** 22088,22093 ****
--- 29368,29374 ----
  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
+ 45e29b436b481b2e96108549f778979f  gcc/testsuite/g++.dg/cpp2a/lambda-template-pr117034.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
*************** c09b3406a6984eced941c654f03df8b6  gcc/te
*** 22096,22102 ****
  7b52674a2e7474eb9db1b1396088d25a  gcc/testsuite/g++.dg/cpp2a/lambda-uneval11.C
  192206513f337817843dc6ba46bc0aab  gcc/testsuite/g++.dg/cpp2a/lambda-uneval12.C
  c79632f5b81fdadda65a61ca549d97f6  gcc/testsuite/g++.dg/cpp2a/lambda-uneval13.C
! 467e186d5def67de47b9fdac7558fede  gcc/testsuite/g++.dg/cpp2a/lambda-uneval14.C
  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
--- 29377,29383 ----
  7b52674a2e7474eb9db1b1396088d25a  gcc/testsuite/g++.dg/cpp2a/lambda-uneval11.C
  192206513f337817843dc6ba46bc0aab  gcc/testsuite/g++.dg/cpp2a/lambda-uneval12.C
  c79632f5b81fdadda65a61ca549d97f6  gcc/testsuite/g++.dg/cpp2a/lambda-uneval13.C
! cc2487e7e3bd3a6792c3571765fb9e4b  gcc/testsuite/g++.dg/cpp2a/lambda-uneval14.C
  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
*************** e99d0c361f9eaa55d53c9232f30b64cf  gcc/te
*** 22111,22117 ****
--- 29392,29402 ----
  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
+ ed8e374c7099be5062508b2798dc6a58  gcc/testsuite/g++.dg/cpp2a/lambda-uneval28.C
+ c3d9ded980076b7db82a63c086636931  gcc/testsuite/g++.dg/cpp2a/lambda-uneval29.C
  95297857429ac8850dbeb5773639ea6b  gcc/testsuite/g++.dg/cpp2a/lambda-uneval3.C
+ 56e3e8d11a55552a749cc9a73432a46d  gcc/testsuite/g++.dg/cpp2a/lambda-uneval30.C
+ bac0d859a20303eb8aa06430661ec006  gcc/testsuite/g++.dg/cpp2a/lambda-uneval31.C
  2f7bd1774e5f890e65ee937419a29669  gcc/testsuite/g++.dg/cpp2a/lambda-uneval4.C
  8e6b610dd3dab06841943bfa5f325489  gcc/testsuite/g++.dg/cpp2a/lambda-uneval5.C
  91159fd20af1b89a4545ef0450293574  gcc/testsuite/g++.dg/cpp2a/lambda-uneval6.C
*************** c78f774590fd68025c389ab4361f5714  gcc/te
*** 22231,22236 ****
--- 29516,29522 ----
  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
+ 5026844e08700f623ba7b14a5b49f436  gcc/testsuite/g++.dg/cpp2a/nontype-class73.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
*************** f917e8e53ce100d9b00585ebdb34ff7a  gcc/te
*** 22277,22285 ****
--- 29563,29574 ----
  98005d747053b3076aa53928776efb7e  gcc/testsuite/g++.dg/cpp2a/paren-init7.C
  ddb0c78842f6b4e3e4606849bc1a4a82  gcc/testsuite/g++.dg/cpp2a/paren-init8.C
  fc8ccbfe7f14dd4a41ff708c5a05b226  gcc/testsuite/g++.dg/cpp2a/paren-init9.C
+ da710eb2889fcf39c429bcbbfdc2abef  gcc/testsuite/g++.dg/cpp2a/partial-spec-redecl.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
+ 938acbb8068f7a8fc2c3f43271324ef4  gcc/testsuite/g++.dg/cpp2a/pr123578.C
+ 0695fd641b9e046ab279a8c21ce3e2b0  gcc/testsuite/g++.dg/cpp2a/pr123677.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
*************** c951a3e5bb4bc2d67ee9dcf55822ab1e  gcc/te
*** 22409,22414 ****
--- 29698,29704 ----
  4c3fe43b12a27162ef61531d3a01f9e4  gcc/testsuite/g++.dg/cpp2a/srcloc7.C
  dc5fdccda9bb74a8259751885239a45b  gcc/testsuite/g++.dg/cpp2a/srcloc8.C
  3cf98e82d56549304f8eada21a181a96  gcc/testsuite/g++.dg/cpp2a/srcloc9.C
+ 84804685f4de259de28700f0e1eed24c  gcc/testsuite/g++.dg/cpp2a/typedef1.C
  5de890e01a292e99b75abedf4b2aa561  gcc/testsuite/g++.dg/cpp2a/typename1.C
  da817b2e1901bc27f9d38ebf5e51459b  gcc/testsuite/g++.dg/cpp2a/typename10.C
  736ca6dbc6d6e66b218a41d3aaeec22a  gcc/testsuite/g++.dg/cpp2a/typename11.C
*************** e4aee91d21a8cdbd286094f893319c70  gcc/te
*** 22462,22468 ****
  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
--- 29752,29758 ----
  b196cb4af4d539f545ae961b8905ba24  gcc/testsuite/g++.dg/debug/const4.C
  8c7b9540eb6278b6bd197c3c55ae7945  gcc/testsuite/g++.dg/debug/const5.C
  36f088b22dca6ab78668e7d505839fbd  gcc/testsuite/g++.dg/debug/crash1.C
! e53d26201f9d8342e41ce5584a9b220c  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
*************** b68f44c11557e3825fd41d4340b7bf62  gcc/te
*** 22500,22506 ****
  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
--- 29790,29796 ----
  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
! a42ec5a43c60d1e3618791e51d61f099  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
*************** e64fec6e11d681323560675ce433a296  gcc/te
*** 22553,22562 ****
  9caca590d0b2747d8553259a98ef571f  gcc/testsuite/g++.dg/debug/dwarf2/nested-4.C
  c7ffd1dd0ae40378732be3ac8729a37c  gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C
  abe2799d2ba99877ff9ac9491b7f3baf  gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C
! b3cbbd79d5ff077a6732280d76b2284e  gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C
  b117227269644a100a7a06bf2bc9bf6f  gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C
  660a2a2e1e89fe3e9cfe2899e7f1e627  gcc/testsuite/g++.dg/debug/dwarf2/pr104407.C
  b43f4d6e4f27dc96c0e870436aa41ff2  gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C
  7054dc65c88179389afb9e79cad0df38  gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C
  9118e81e091fae9d3d9c8c39a846e724  gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C
  90028c65be83718cb8e154df1b502d99  gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C
--- 29843,29853 ----
  9caca590d0b2747d8553259a98ef571f  gcc/testsuite/g++.dg/debug/dwarf2/nested-4.C
  c7ffd1dd0ae40378732be3ac8729a37c  gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C
  abe2799d2ba99877ff9ac9491b7f3baf  gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C
! bb6210157c020f23ddd7ebb126fc5a71  gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C
  b117227269644a100a7a06bf2bc9bf6f  gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C
  660a2a2e1e89fe3e9cfe2899e7f1e627  gcc/testsuite/g++.dg/debug/dwarf2/pr104407.C
  b43f4d6e4f27dc96c0e870436aa41ff2  gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C
+ 889184ba41631525c8808ff926aa3762  gcc/testsuite/g++.dg/debug/dwarf2/pr110885.C
  7054dc65c88179389afb9e79cad0df38  gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C
  9118e81e091fae9d3d9c8c39a846e724  gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C
  90028c65be83718cb8e154df1b502d99  gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C
*************** eb8df2f4b1148c5f6b77553d91cb7877  gcc/te
*** 22583,22590 ****
  1f426b6d87ce5765a45728a91f7e3337  gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C
  e03d4790a0350f655bfc579c2cf31194  gcc/testsuite/g++.dg/debug/dwarf2/ptrdmem-1.C
  5d8f03fa19703b37b960eccf4cdd64b6  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C
! a5ad6fdca07e4d5484e1379f8d2daacf  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C
! d90662a62b1701ab0a39b3a98b607032  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C
  5ee5136319eb2e380c30aea5cdd61634  gcc/testsuite/g++.dg/debug/dwarf2/redeclaration-1.C
  2059d1611fd4125683228bd68f4312ee  gcc/testsuite/g++.dg/debug/dwarf2/ref-1.C
  49f64e5b9319be6e42ee1b9a13b65e96  gcc/testsuite/g++.dg/debug/dwarf2/ref-2.C
--- 29874,29881 ----
  1f426b6d87ce5765a45728a91f7e3337  gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C
  e03d4790a0350f655bfc579c2cf31194  gcc/testsuite/g++.dg/debug/dwarf2/ptrdmem-1.C
  5d8f03fa19703b37b960eccf4cdd64b6  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C
! e902f0018029c0167563fab26d234177  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C
! ff0aebcb52c9ae98256ea56197eca1f8  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-3.C
  5ee5136319eb2e380c30aea5cdd61634  gcc/testsuite/g++.dg/debug/dwarf2/redeclaration-1.C
  2059d1611fd4125683228bd68f4312ee  gcc/testsuite/g++.dg/debug/dwarf2/ref-1.C
  49f64e5b9319be6e42ee1b9a13b65e96  gcc/testsuite/g++.dg/debug/dwarf2/ref-2.C
*************** a79b4fb3cb7873c05364c263058a7f1a  gcc/te
*** 22631,22637 ****
  6b5d09bc99bd841b7abcf35e8b572968  gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C
  0fa9bf8e343761a65b3bdc44215383a0  gcc/testsuite/g++.dg/debug/dwarf2/typedef3.C
  32c2c4afd9960daa839e702a7ad2b0ed  gcc/testsuite/g++.dg/debug/dwarf2/typedef4.C
! ddbacc1f20aaa6efbe151f3f8d8b9aa9  gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C
  1bac29a975fef390435bcddbc2f1112b  gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C
  14de01102edbb95fe2d8f800da61dff8  gcc/testsuite/g++.dg/debug/dwarf2/using-enum.C
  f05db7adbe2af31a29e7389423a06e13  gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
--- 29922,29928 ----
  6b5d09bc99bd841b7abcf35e8b572968  gcc/testsuite/g++.dg/debug/dwarf2/typedef2.C
  0fa9bf8e343761a65b3bdc44215383a0  gcc/testsuite/g++.dg/debug/dwarf2/typedef3.C
  32c2c4afd9960daa839e702a7ad2b0ed  gcc/testsuite/g++.dg/debug/dwarf2/typedef4.C
! c8d9073c97759d06c8fef63760b82b91  gcc/testsuite/g++.dg/debug/dwarf2/typedef5.C
  1bac29a975fef390435bcddbc2f1112b  gcc/testsuite/g++.dg/debug/dwarf2/typedef6.C
  14de01102edbb95fe2d8f800da61dff8  gcc/testsuite/g++.dg/debug/dwarf2/using-enum.C
  f05db7adbe2af31a29e7389423a06e13  gcc/testsuite/g++.dg/debug/dwarf2/utf-1.C
*************** c805656a195d9a98cc7141e7db52d9ef  gcc/te
*** 22647,22652 ****
--- 29938,29944 ----
  57e21034689a45ffd010ec86b2596de5  gcc/testsuite/g++.dg/debug/pr106261.C
  19de4ef7373a891f957af0121c166d89  gcc/testsuite/g++.dg/debug/pr108967.C
  553e3d84e73e0efbd2c26b6ea6df2a6c  gcc/testsuite/g++.dg/debug/pr110295.C
+ f5bf17bbfddee8aeb38e5e1275a5a73b  gcc/testsuite/g++.dg/debug/pr124644.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
*************** ccda43f2f659360264083e64ebc66d22  gcc/te
*** 22677,22683 ****
  a3a11fbcbd0dfec7af753731b7dd95a1  gcc/testsuite/g++.dg/debug/pr71057.C
  da60b5b82bc9e19db3f7eaa2ffda9f19  gcc/testsuite/g++.dg/debug/pr71432.C
  271f75e481615831453a65f49baedcd5  gcc/testsuite/g++.dg/debug/pr72808.C
! cb620ecdcf5127492c630c4b2400bbd6  gcc/testsuite/g++.dg/debug/pr80461.C
  c7498a94a75a947d573088a8f8266215  gcc/testsuite/g++.dg/debug/pr84704.C
  423c814771cf96308127152a6e56b792  gcc/testsuite/g++.dg/debug/pr84813.C
  ff81bad5bdaf6ebdf3b91953ac3a3e83  gcc/testsuite/g++.dg/debug/pr88181.C
--- 29969,29975 ----
  a3a11fbcbd0dfec7af753731b7dd95a1  gcc/testsuite/g++.dg/debug/pr71057.C
  da60b5b82bc9e19db3f7eaa2ffda9f19  gcc/testsuite/g++.dg/debug/pr71432.C
  271f75e481615831453a65f49baedcd5  gcc/testsuite/g++.dg/debug/pr72808.C
! 1c7efbec5573fe8c89e326b909925551  gcc/testsuite/g++.dg/debug/pr80461.C
  c7498a94a75a947d573088a8f8266215  gcc/testsuite/g++.dg/debug/pr84704.C
  423c814771cf96308127152a6e56b792  gcc/testsuite/g++.dg/debug/pr84813.C
  ff81bad5bdaf6ebdf3b91953ac3a3e83  gcc/testsuite/g++.dg/debug/pr88181.C
*************** c4e32dbfd66eb4f8473c3a4703532572  gcc/te
*** 22688,22694 ****
  29f96a467ca8ab5bea3bc6ffff55775b  gcc/testsuite/g++.dg/debug/pr94273.C
  feb3502f9ee8e662be1d6ebf5f38b8b2  gcc/testsuite/g++.dg/debug/pr94281.C
  f551cc33fa6ede0dc5d46ffd1a776c5d  gcc/testsuite/g++.dg/debug/pr94323.C
! 765ee14b0daaebf0ec11f9a26fdad79b  gcc/testsuite/g++.dg/debug/pr94459.C
  a5e8d546d53a780cc3eb41574ea9f263  gcc/testsuite/g++.dg/debug/ra1.C
  c3f392076ad11f8768ef0321b89abd5f  gcc/testsuite/g++.dg/debug/static1.C
  7e13d86d33b17cfb7cdf61b7b8cca961  gcc/testsuite/g++.dg/debug/template1.C
--- 29980,29986 ----
  29f96a467ca8ab5bea3bc6ffff55775b  gcc/testsuite/g++.dg/debug/pr94273.C
  feb3502f9ee8e662be1d6ebf5f38b8b2  gcc/testsuite/g++.dg/debug/pr94281.C
  f551cc33fa6ede0dc5d46ffd1a776c5d  gcc/testsuite/g++.dg/debug/pr94323.C
! 9da53f14944eb8b072fdf9c9881fd508  gcc/testsuite/g++.dg/debug/pr94459.C
  a5e8d546d53a780cc3eb41574ea9f263  gcc/testsuite/g++.dg/debug/ra1.C
  c3f392076ad11f8768ef0321b89abd5f  gcc/testsuite/g++.dg/debug/static1.C
  7e13d86d33b17cfb7cdf61b7b8cca961  gcc/testsuite/g++.dg/debug/template1.C
*************** f00dea52c61cb46b3702ed0755e5be94  gcc/te
*** 22716,22722 ****
  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
--- 30008,30014 ----
  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
! 5eedf61699ebb7ef4a68a032773c316b  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
*** 22725,22733 ****
  204f6d67816240aa15bfa5d9320862f5  gcc/testsuite/g++.dg/dfp/mangle-6.C
  8b4d16a77a1edab85ee4c99fda03eb79  gcc/testsuite/g++.dg/dfp/mangle-mode.C
  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
--- 30017,30027 ----
  204f6d67816240aa15bfa5d9320862f5  gcc/testsuite/g++.dg/dfp/mangle-6.C
  8b4d16a77a1edab85ee4c99fda03eb79  gcc/testsuite/g++.dg/dfp/mangle-mode.C
  3a865b01c504023d0b90b1f055163c6a  gcc/testsuite/g++.dg/dfp/nofields.C
+ fd0549fb3825f83ce2ac884838fe2187  gcc/testsuite/g++.dg/dfp/pr122834-1.C
+ 87b1932d8497bd7b8b41f36fb0c23208  gcc/testsuite/g++.dg/dfp/pr122834-2.C
  919ff80bde2b401e1cf10423071bab16  gcc/testsuite/g++.dg/dfp/pr92744.C
  cd0133a632a541db051ef84d53754ac6  gcc/testsuite/g++.dg/dfp/typeid1.C
! 9e1344a17f11d22e7b0c1775481b18cf  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
*************** eaa93030439fd11d2f5366a3e4eafa8a  gcc/te
*** 22744,22753 ****
  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
  33fa854dd774d551baf3637d7d169e63  gcc/testsuite/g++.dg/diagnostic/base.C
  d7dcca6cdb24ff15a17be482e130bf4e  gcc/testsuite/g++.dg/diagnostic/bindings1.C
--- 30038,30057 ----
  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
! 2503e842dfd3dd8566a7b35b7b7a7b79  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
+ 4f29b6db8cfb5880fea97f0b26daf164  gcc/testsuite/g++.dg/diagnostic/bad-fndef-1.C
+ 60a3da468dc223005c2b3338b7b676fb  gcc/testsuite/g++.dg/diagnostic/bad-fndef-2.C
+ 8037245dd64ecbf0a53540c8ceffdd2e  gcc/testsuite/g++.dg/diagnostic/bad-fndef-3.C
+ b272a0eee27afd79f7229c34ce2e3541  gcc/testsuite/g++.dg/diagnostic/bad-fndef-4.C
+ ef7b4739a24c2e4fbbe0f3c78ddbde12  gcc/testsuite/g++.dg/diagnostic/bad-fndef-5.C
+ 36220f9637539d956a08729866796752  gcc/testsuite/g++.dg/diagnostic/bad-fndef-6.C
+ 6478b5f7bafbc52d52e3a5e6eacfcc8b  gcc/testsuite/g++.dg/diagnostic/bad-fndef-7.C
+ 4546391658ef57f6e2ff10ee5ea7f924  gcc/testsuite/g++.dg/diagnostic/bad-fndef-7b.C
+ 536c130a4c45ab2b6ca7379dcf684111  gcc/testsuite/g++.dg/diagnostic/bad-fndef-8.C
+ 5bb307d396add3e8a53638eb6d6c1a0e  gcc/testsuite/g++.dg/diagnostic/bad-fndef-9.C
  748783b112c42a8deeb80f2d23c3aa1f  gcc/testsuite/g++.dg/diagnostic/base-operand-non-pointer-1.C
  33fa854dd774d551baf3637d7d169e63  gcc/testsuite/g++.dg/diagnostic/base.C
  d7dcca6cdb24ff15a17be482e130bf4e  gcc/testsuite/g++.dg/diagnostic/bindings1.C
*************** c3989c492c520c5e5c36e77898e2bd15  gcc/te
*** 22769,22774 ****
--- 30073,30079 ----
  3fd7c0c4c80c4df54c4f6b4749e1ff43  gcc/testsuite/g++.dg/diagnostic/enum2.C
  9d63b247573d69e756be213ea9a4413e  gcc/testsuite/g++.dg/diagnostic/enum3.C
  24cfdb080e913a2c8a75a3cf154f02e5  gcc/testsuite/g++.dg/diagnostic/explicit.C
+ d417e1c133247edfa1ee94b8f7ccf82d  gcc/testsuite/g++.dg/diagnostic/explicit2.C
  3127905a449847bc27a84d6b88588e2a  gcc/testsuite/g++.dg/diagnostic/expr1.C
  4d21f6027d297038928184dbbcd7b6f3  gcc/testsuite/g++.dg/diagnostic/extern-initialized.C
  dd6972e7b92113e6456388c099d1d0fc  gcc/testsuite/g++.dg/diagnostic/friend1.C
*************** dd6972e7b92113e6456388c099d1d0fc  gcc/te
*** 22777,22789 ****
  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
--- 30082,30099 ----
  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
+ 98bc2260c315c3b2ba9c2325d225be86  gcc/testsuite/g++.dg/diagnostic/incomplete-type-2.C
+ 66e501d02a8554cc10eeda65a7e8ba23  gcc/testsuite/g++.dg/diagnostic/incomplete-type-2a.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
+ ad85d4d35e993bf787607ebe9b7902e3  gcc/testsuite/g++.dg/diagnostic/inhibit-warn-3.C
+ be4947ef8c9198fbdfba3b03968e7633  gcc/testsuite/g++.dg/diagnostic/instantiation-context-pr122001-1.C
+ 66f8b2f12896cccdf15a22bbfd11a808  gcc/testsuite/g++.dg/diagnostic/instantiation-context-pr122001-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
! 763b42f375838618bc5f0bbbb49cf539  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
*************** bd9b993605b269dc55604ebbb4049ea6  gcc/te
*** 22840,22845 ****
--- 30150,30156 ----
  5d7c98f57af8d51803bc217bfb5be718  gcc/testsuite/g++.dg/diagnostic/ptrtomem1.C
  22810075c6736e148fdad4df31746f9b  gcc/testsuite/g++.dg/diagnostic/ptrtomem2.C
  31a4f22f01b86144e8c21918ef3d701b  gcc/testsuite/g++.dg/diagnostic/ptrtomem3.C
+ d075b059ce62ec565e4bd991cc4a0bd7  gcc/testsuite/g++.dg/diagnostic/ptrtomem4.C
  28d2cfc7c717fd3639026aaded3ecf23  gcc/testsuite/g++.dg/diagnostic/recur-align.C
  4ee1f32732b9fb22db15523307f14e5f  gcc/testsuite/g++.dg/diagnostic/redeclaration-1.C
  b366f10d78ca81d757eef37957892a2f  gcc/testsuite/g++.dg/diagnostic/redeclaration-2.C
*************** b754a2ad578f67afe512ad74ff03b31f  gcc/te
*** 22878,22883 ****
--- 30189,30195 ----
  a7b5530f2822e6294b3a5ff037237c86  gcc/testsuite/g++.dg/diagnostic/static_assert2.C
  5b63c27824f84be4557ec3a9e40be0ce  gcc/testsuite/g++.dg/diagnostic/static_assert3.C
  356d9ff5d1d1c03e2a293f19c79c3b7a  gcc/testsuite/g++.dg/diagnostic/static_assert4.C
+ 7df6caeb261f0d3aa0979d15088e7da6  gcc/testsuite/g++.dg/diagnostic/static_assert5.C
  44f760c7519cb2fd28e1b57a7e670f75  gcc/testsuite/g++.dg/diagnostic/string-literal-concat.C
  a799316540e3d4a9d02c14db904fef43  gcc/testsuite/g++.dg/diagnostic/sys-narrow.h
  ed408dc0316b2762f979969a2b424c7c  gcc/testsuite/g++.dg/diagnostic/sys-narrow1.C
*************** a76cb15a146e724270d69d28ec781710  gcc/te
*** 22905,22911 ****
  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
--- 30217,30223 ----
  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
! 12db0825a7cb521104a2584274afd97e  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
*************** dbedf20ea0a6712255d338a4ee121758  gcc/te
*** 23005,23010 ****
--- 30317,30323 ----
  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
+ ae4d60748c4e281ef156aea5859985ee  gcc/testsuite/g++.dg/eh/pr119507.C
  339f1ef3219aace218fecaa5c9b19c83  gcc/testsuite/g++.dg/eh/pr29166.C
  fa076f7aee99ba9138c0541bc50c2e01  gcc/testsuite/g++.dg/eh/pr38662.C
  3c71b722751263d1baefa007004a90bb  gcc/testsuite/g++.dg/eh/pr41819.C
*************** ce7b6234ca0490c5f395644574322ca2  gcc/te
*** 23098,23104 ****
  47ee2e9f4d1f4caaa66273c534a05700  gcc/testsuite/g++.dg/expr/call5.C
  03136626af9595581e4d641695d4fae4  gcc/testsuite/g++.dg/expr/cast1.C
  234b04abbf4ba798c38bda66394b82a7  gcc/testsuite/g++.dg/expr/cast10.C
! e81c36105f876d1822c790ae2b655fcc  gcc/testsuite/g++.dg/expr/cast11.C
  12be7dc45a455eddda5ccfa91904739c  gcc/testsuite/g++.dg/expr/cast2.C
  43b3f0cf8dc0665f8a82af5379392da1  gcc/testsuite/g++.dg/expr/cast3.C
  ed8e65f6a9fb8340f4d8881b00bc8a62  gcc/testsuite/g++.dg/expr/cast4.C
--- 30411,30417 ----
  47ee2e9f4d1f4caaa66273c534a05700  gcc/testsuite/g++.dg/expr/call5.C
  03136626af9595581e4d641695d4fae4  gcc/testsuite/g++.dg/expr/cast1.C
  234b04abbf4ba798c38bda66394b82a7  gcc/testsuite/g++.dg/expr/cast10.C
! 0da29517f073bb7eec776c57bab88644  gcc/testsuite/g++.dg/expr/cast11.C
  12be7dc45a455eddda5ccfa91904739c  gcc/testsuite/g++.dg/expr/cast2.C
  43b3f0cf8dc0665f8a82af5379392da1  gcc/testsuite/g++.dg/expr/cast3.C
  ed8e65f6a9fb8340f4d8881b00bc8a62  gcc/testsuite/g++.dg/expr/cast4.C
*************** a883399d4251a031b0d761ef41a67f52  gcc/te
*** 23236,23242 ****
  f0c98c112823b1ebcaa945f17c09d04a  gcc/testsuite/g++.dg/ext/anon-struct6.C
  2792f1c8cc3327e23d859e893eac1679  gcc/testsuite/g++.dg/ext/anon-struct7.C
  267e78dd898208d0d16ab91751f699c1  gcc/testsuite/g++.dg/ext/anon-struct8.C
! c96f8f799b21508c3c9d07a76eca024e  gcc/testsuite/g++.dg/ext/anon-struct9.C
  a49bb05a98ee7ad2eb4c9f08711d3d4d  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-1.C
  d9feefe3043369b99ac1813781a3c3a3  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C
--- 30549,30555 ----
  f0c98c112823b1ebcaa945f17c09d04a  gcc/testsuite/g++.dg/ext/anon-struct6.C
  2792f1c8cc3327e23d859e893eac1679  gcc/testsuite/g++.dg/ext/anon-struct7.C
  267e78dd898208d0d16ab91751f699c1  gcc/testsuite/g++.dg/ext/anon-struct8.C
! a9ab352aa4bdddcf93c0c6c674e88d20  gcc/testsuite/g++.dg/ext/anon-struct9.C
  a49bb05a98ee7ad2eb4c9f08711d3d4d  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-1.C
  d9feefe3043369b99ac1813781a3c3a3  gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
  9ad9eafed83197342bcdbe7afa3a727f  gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C
*************** af019eee15e37fe7fad2b4c7a1a60836  gcc/te
*** 23486,23491 ****
--- 30799,30810 ----
  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
+ 53d855cd54c9cbe5f50548b28a11437b  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size1.C
+ 96dbd65cf596542a71762b67a05cb112  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size2.C
+ 8ce26671f7964a858fabd4acfa8478fc  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size3.C
+ 4d8fbcf129f67827c9228516eae776cb  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size4.C
+ d94fc05316fd86eaef9bdba4bbe5c920  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size5.C
+ 0467976b5cf339e7d91f41d2b063f6a8  gcc/testsuite/g++.dg/ext/builtin-structured-binding-size6.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
*************** be6818fc4bf61c5a68bebfcc1b622d06  gcc/te
*** 23579,23584 ****
--- 30898,30910 ----
  65a3298462ef1b7eae8f56cd64782e6f  gcc/testsuite/g++.dg/ext/consteval1.C
  aedb0bd74d236b797fb016d0b7034db4  gcc/testsuite/g++.dg/ext/constexpr-attr-cleanup1.C
  6090149115c2b20514a8f0eea93988bf  gcc/testsuite/g++.dg/ext/constexpr-builtin1.C
+ 82959c15178dd64163f4b94c212354d8  gcc/testsuite/g++.dg/ext/constexpr-diag1.C
+ 0ead8c89fb896b414174ed2bf5f7f332  gcc/testsuite/g++.dg/ext/constexpr-diag2.C
+ 20e173e2c2515f7ecb977ead78a8525b  gcc/testsuite/g++.dg/ext/constexpr-diag3.C
+ 83266baeb49828c4a2192df7f9b87bb8  gcc/testsuite/g++.dg/ext/constexpr-diag4.C
+ 4b2f787854343fced14c6d76a49245b1  gcc/testsuite/g++.dg/ext/constexpr-diag5.C
+ 6779c851cb30320fb704ee3523910375  gcc/testsuite/g++.dg/ext/constexpr-diag6.C
+ 627bf98875dcb46c4708f3c991386f80  gcc/testsuite/g++.dg/ext/constexpr-diag7.C
  6f06936a70e143d2d4010948b821e19a  gcc/testsuite/g++.dg/ext/constexpr-pr82781.C
  3f1e0d73980f7d0ad16399fb51512b7b  gcc/testsuite/g++.dg/ext/constexpr-pr93549.C
  e6a4da2462b7d9932c6f217b19f03ac9  gcc/testsuite/g++.dg/ext/constexpr-vla1.C
*************** fd3b6665cd27a15dcd7f9f07ad53481e  gcc/te
*** 23631,23636 ****
--- 30957,30963 ----
  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
+ cca528a8282111fb49089953739ca486  gcc/testsuite/g++.dg/ext/fimplicit-constexpr2.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
*************** b861e559b4d837b0c6576827bfaf08ec  gcc/te
*** 23693,23702 ****
--- 31020,31032 ----
  83baade7989ec401bd49db5363e07e77  gcc/testsuite/g++.dg/ext/gnu-inline-global-redecl.C
  76d50df4b93f3e23ae1ac19f717e8364  gcc/testsuite/g++.dg/ext/gnu-inline-global-reject.C
  3e78535e0258846fa466a40475303131  gcc/testsuite/g++.dg/ext/gnu-inline-global.C
+ 4ec281dd16623035193183cb2cbb2015  gcc/testsuite/g++.dg/ext/gnu-inline-inh-ctor1.C
+ 2ea3a9c7ad72ab3ec6e68a985a5742a9  gcc/testsuite/g++.dg/ext/gnu-inline-inh-ctor2.C
  b4a8192e545a20f5b7dea0d9fb8a6f63  gcc/testsuite/g++.dg/ext/gnu-inline-namespace.C
  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
+ 806d7def0c119c3a11f8ddcf2e574d3e  gcc/testsuite/g++.dg/ext/goto2.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
*************** ac8ae9af02e9ee2f464c6ba74c3f21d9  gcc/te
*** 23720,23726 ****
--- 31050,31058 ----
  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
+ d9a5225768f42f5bacffe98269f2d9d5  gcc/testsuite/g++.dg/ext/has_trivial_destructor-3.C
  72069a562c9156e50b3efde0f66048dc  gcc/testsuite/g++.dg/ext/has_virtual_destructor.C
+ cb784874a8e8bc4ad9151a995412be57  gcc/testsuite/g++.dg/ext/has_virtual_destructor2.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
*************** f695844e9b94f9b4c9ed5fec78d4bf27  gcc/te
*** 23762,23767 ****
--- 31094,31100 ----
  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
+ 5cef8d19bd49a631670a0a07753e4b57  gcc/testsuite/g++.dg/ext/is_assignable2.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
*************** ed04365b57dec8b58125996aefe86234  gcc/te
*** 23779,23802 ****
--- 31112,31144 ----
  dc3385dfd74c1bf2c03d4da78571f637  gcc/testsuite/g++.dg/ext/is_constructible5.C
  9553e2b6c2e80320fe1dbc53bb218083  gcc/testsuite/g++.dg/ext/is_constructible6.C
  c98f87283f462df05d8fe236ed206312  gcc/testsuite/g++.dg/ext/is_constructible8.C
+ 788a49bd616fe30f5a120b430e977971  gcc/testsuite/g++.dg/ext/is_constructible9.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
+ dcd04efaca98f9985fb7d83ed7a5f959  gcc/testsuite/g++.dg/ext/is_convertible7.C
  ebb1df191bcea60ed6342dad182b8901  gcc/testsuite/g++.dg/ext/is_deducible1.C
+ 94a516051a47d1b7e866ec47efa5de01  gcc/testsuite/g++.dg/ext/is_destructible1.C
+ aa081a16610eaae6eaa83ad85ce8aa33  gcc/testsuite/g++.dg/ext/is_destructible2.C
+ 238eb24c2a5f5d4ba1716f3c2ea7c99a  gcc/testsuite/g++.dg/ext/is_destructible3.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
+ 421f56d6828967eabadae2f63452e22d  gcc/testsuite/g++.dg/ext/is_implicit_lifetime.C
+ 17ec903e307ff61c01e84ba3f010b82c  gcc/testsuite/g++.dg/ext/is_implicit_lifetime2.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
  a2e288b15b5abf2aaab268a242e72400  gcc/testsuite/g++.dg/ext/is_invocable5.C
+ 3735ab99d3414c769aec2826982216a6  gcc/testsuite/g++.dg/ext/is_invocable6.C
+ fd613a3b32f06aea2a947ebd393e4af4  gcc/testsuite/g++.dg/ext/is_invocable7.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
*** 23815,23820 ****
--- 31157,31163 ----
  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
+ 5dc07e4835ea6094714fe973256de61e  gcc/testsuite/g++.dg/ext/is_nothrow_convertible5.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
*************** c3525831665d7cbb0d4199640426a8c0  gcc/te
*** 23846,23853 ****
  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
--- 31189,31197 ----
  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
! ebf9bd21db44c197776bc7b6ed4cbda1  gcc/testsuite/g++.dg/ext/is_virtual_base_of.C
  75fff22de399b6176636c77897e0835a  gcc/testsuite/g++.dg/ext/is_virtual_base_of_diagnostic.C
+ 4a71df88e3c4fe33e985225a970a1f40  gcc/testsuite/g++.dg/ext/is_virtual_base_of_diagnostic2.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
*************** bcf9b6873e48870b8f6014b5da708cd3  gcc/te
*** 23899,23904 ****
--- 31243,31251 ----
  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
+ 82346a2eb86bd9aa0f204ae959eb3b33  gcc/testsuite/g++.dg/ext/pr121678.C
+ f731bf05a8deeffa55903ea3d567cb6e  gcc/testsuite/g++.dg/ext/pr122836.C
+ 5844b6c78ee1dbd691f8bebe14ae2556  gcc/testsuite/g++.dg/ext/pr122860.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
*************** faa8333681bedde3ba84daa60ec26ff8  gcc/te
*** 23945,23950 ****
--- 31292,31298 ----
  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
+ 0763fce1484e78d744fc7b1372ae9195  gcc/testsuite/g++.dg/ext/reference_xes_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
*************** d104145185fba3180b02bfff96944804  gcc/te
*** 23986,23993 ****
  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
--- 31334,31341 ----
  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
! 3e51142fbd4c632f5fafa65f35a19286  gcc/testsuite/g++.dg/ext/sve-sizeless-1.C
! 496dfbbef8e060d411f65535cae6b5e5  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
*************** bcdc198bba142d390818f427b8129565  gcc/te
*** 24008,24016 ****
  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
--- 31356,31364 ----
  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
! 190cfe49034d758e3108f39ec24dfef5  gcc/testsuite/g++.dg/ext/type_pack_element2.C
  3e2684b951b4841461fda801922db4a0  gcc/testsuite/g++.dg/ext/type_pack_element3.C
! a1bbbffc4e71bf107adb54912d6276d3  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
*************** b23df01dd6bcf3a8469032ec56f50cca  gcc/te
*** 24111,24117 ****
  480e69d3b3cfbaf863bf4572ea33adcc  gcc/testsuite/g++.dg/ext/vector23.C
  082d048149f2f298b6ae5f298da8ebe7  gcc/testsuite/g++.dg/ext/vector24.C
  3aa80b8679f4a1872a0aeb5e7ee95a62  gcc/testsuite/g++.dg/ext/vector25.C
! 90e2e9a7d8de41b91b36e73f97d2d368  gcc/testsuite/g++.dg/ext/vector26.C
  3cf136e3fe2bdc443fd4f83b9b2da48e  gcc/testsuite/g++.dg/ext/vector27.C
  2ea015b73c077fb5d4aac325d1543587  gcc/testsuite/g++.dg/ext/vector28.C
  586098ef0e0e0ff1300efeabda4cf0fa  gcc/testsuite/g++.dg/ext/vector29.C
--- 31459,31465 ----
  480e69d3b3cfbaf863bf4572ea33adcc  gcc/testsuite/g++.dg/ext/vector23.C
  082d048149f2f298b6ae5f298da8ebe7  gcc/testsuite/g++.dg/ext/vector24.C
  3aa80b8679f4a1872a0aeb5e7ee95a62  gcc/testsuite/g++.dg/ext/vector25.C
! feabe110c0ad3cd2653aae8a22cde1b9  gcc/testsuite/g++.dg/ext/vector26.C
  3cf136e3fe2bdc443fd4f83b9b2da48e  gcc/testsuite/g++.dg/ext/vector27.C
  2ea015b73c077fb5d4aac325d1543587  gcc/testsuite/g++.dg/ext/vector28.C
  586098ef0e0e0ff1300efeabda4cf0fa  gcc/testsuite/g++.dg/ext/vector29.C
*************** a92b9bb3a1d4737563cf1b160cd4ebd5  gcc/te
*** 24140,24146 ****
  fffe88367e13ff0ced20543de6b299e6  gcc/testsuite/g++.dg/ext/vector9.C
  faecccf7afe1650c8f216acae84252f7  gcc/testsuite/g++.dg/ext/visibility/anon1.C
  a584d24c7f0c42d5d7b9adeaab7e6e35  gcc/testsuite/g++.dg/ext/visibility/anon10.C
! 369bf591deaf5f4fbb8bbc60afb36331  gcc/testsuite/g++.dg/ext/visibility/anon11.C
  b238d9d1d8bfc55ab80032d2a9c5e8b2  gcc/testsuite/g++.dg/ext/visibility/anon2.C
  251258dca8835128a261b3557e780874  gcc/testsuite/g++.dg/ext/visibility/anon3.C
  a9ac9686caa2bc8878f0912bbd23359a  gcc/testsuite/g++.dg/ext/visibility/anon4.C
--- 31488,31494 ----
  fffe88367e13ff0ced20543de6b299e6  gcc/testsuite/g++.dg/ext/vector9.C
  faecccf7afe1650c8f216acae84252f7  gcc/testsuite/g++.dg/ext/visibility/anon1.C
  a584d24c7f0c42d5d7b9adeaab7e6e35  gcc/testsuite/g++.dg/ext/visibility/anon10.C
! 4c609da8d484a9103cb6359c609eb6d1  gcc/testsuite/g++.dg/ext/visibility/anon11.C
  b238d9d1d8bfc55ab80032d2a9c5e8b2  gcc/testsuite/g++.dg/ext/visibility/anon2.C
  251258dca8835128a261b3557e780874  gcc/testsuite/g++.dg/ext/visibility/anon3.C
  a9ac9686caa2bc8878f0912bbd23359a  gcc/testsuite/g++.dg/ext/visibility/anon4.C
*************** a90a1ccb44e24f11ce27ee962f1c9c2d  gcc/te
*** 24251,24314 ****
  e0becb782bb1d8a5f80ddc28f09b76b5  gcc/testsuite/g++.dg/freestanding-nonint-main.C
  809ca69af7e2e785bd8be802e550096b  gcc/testsuite/g++.dg/fstack-protector-strong.C
  165f4d1a12237b9ed8273a7db5e4299e  gcc/testsuite/g++.dg/func-args-1.C
! 298209147177d6620c693f143e25bd5f  gcc/testsuite/g++.dg/gcov/gcov-1.C
! 3bb74e0b30131d9ca29c007bfd471494  gcc/testsuite/g++.dg/gcov/gcov-10.C
! 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
! 8ade32db1de614a89b3775d4d1d03415  gcc/testsuite/g++.dg/gcov/gcov-5.C
  0db2a2956de58970834889c74f43082d  gcc/testsuite/g++.dg/gcov/gcov-6.C
! 6f3a3736784c0de448d6416b0d8f64d8  gcc/testsuite/g++.dg/gcov/gcov-7.C
! 35c5d8591ad30e9b50844567554d9973  gcc/testsuite/g++.dg/gcov/gcov-8.C
! 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
! 4b7602a5329796aad4278cddb665ec25  gcc/testsuite/g++.dg/gcov/pr16855-priority.C
! 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
! a730ee1a3c27eea558527775d082bec6  gcc/testsuite/g++.dg/goacc/cache-3-2.C
  04148aa53bf7fbcace7f876837002d79  gcc/testsuite/g++.dg/goacc/data-1.C
! d4df15d043d8968539a88c1beeda4e7e  gcc/testsuite/g++.dg/goacc/data-clause-1.C
! 866b94f28bffcdc4daadd6a07d80a096  gcc/testsuite/g++.dg/goacc/data-clause-2.C
  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
--- 31599,31663 ----
  e0becb782bb1d8a5f80ddc28f09b76b5  gcc/testsuite/g++.dg/freestanding-nonint-main.C
  809ca69af7e2e785bd8be802e550096b  gcc/testsuite/g++.dg/fstack-protector-strong.C
  165f4d1a12237b9ed8273a7db5e4299e  gcc/testsuite/g++.dg/func-args-1.C
! 4a8a2d59d5236ab9b4239e9d5428b433  gcc/testsuite/g++.dg/gcov/gcov-1.C
! 20e72f3ad73ed0f178f37612b68dbbd3  gcc/testsuite/g++.dg/gcov/gcov-10.C
! 1a7aaf00bb4bb2cc7cc73c4e150758b1  gcc/testsuite/g++.dg/gcov/gcov-11.C
! 8b0b67098e32e4aa27b2e46d7c135b2e  gcc/testsuite/g++.dg/gcov/gcov-12.C
! 950fee86112dc9cdbb62f26f95cd6103  gcc/testsuite/g++.dg/gcov/gcov-13.C
! c381c4b49afc01681227afe62ee90730  gcc/testsuite/g++.dg/gcov/gcov-14.C
! 8d2f51c6219acb542e4c2677ca13822c  gcc/testsuite/g++.dg/gcov/gcov-15.C
! ededa0d876b23bc0fe9e743f3d0c0b44  gcc/testsuite/g++.dg/gcov/gcov-16.C
! e8dbfe76d290650a16be586144c7615c  gcc/testsuite/g++.dg/gcov/gcov-17.C
! 08a1a827f9448f97581ed2d933681ede  gcc/testsuite/g++.dg/gcov/gcov-18.C
! 7aa62590e00d7efa953e27fe67ddbc81  gcc/testsuite/g++.dg/gcov/gcov-19.C
! 2455bd4b9fa2af5fd0575899e21a2f69  gcc/testsuite/g++.dg/gcov/gcov-2.C
! b1029c1175d7075e7d5eecde29abeccd  gcc/testsuite/g++.dg/gcov/gcov-20.C
! 47e027a95bd97879056be58bd4b8d7e0  gcc/testsuite/g++.dg/gcov/gcov-21.C
! f5a1d6ce677b906bfb8219ed5270d8e3  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
! 8495b0bdef14ea0acbbd658edf296ae6  gcc/testsuite/g++.dg/gcov/gcov-23.C
! 30e19a96541ddd2af052e7ec0f68231c  gcc/testsuite/g++.dg/gcov/gcov-3.C
  2c83bff9a3f14aa6fc5d7755bf82c9b6  gcc/testsuite/g++.dg/gcov/gcov-3.h
! 6c469cebe59041c83fb4f2c74bfe7d18  gcc/testsuite/g++.dg/gcov/gcov-4.C
! 19f265ae1d7c14cbee5300cf0f5c175b  gcc/testsuite/g++.dg/gcov/gcov-5.C
  0db2a2956de58970834889c74f43082d  gcc/testsuite/g++.dg/gcov/gcov-6.C
! b2f1adaac5da7f7375b79fa9b422f121  gcc/testsuite/g++.dg/gcov/gcov-7.C
! 31609c7b2929fd6a1a260808d35bcb53  gcc/testsuite/g++.dg/gcov/gcov-8.C
! d2b21cb5491477a86d440aab9f68213d  gcc/testsuite/g++.dg/gcov/gcov-dump-1.C
! 6f3b35a06f1fa0ae35acc5b4b7eb0ffb  gcc/testsuite/g++.dg/gcov/gcov-dump-2.C
! 885bd1ff4746451343fd5aca6cb36583  gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
! 7f7adb623de4ddcc9c73af08aec292d8  gcc/testsuite/g++.dg/gcov/gcov.exp
  6a2ed5ca795d47c333efae7c155c43b1  gcc/testsuite/g++.dg/gcov/gcov.py
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
! 8c449724d16163830d78af38ba4455c4  gcc/testsuite/g++.dg/gcov/loop.C
! 846b716c8d89f3775a07258c6c25f3fc  gcc/testsuite/g++.dg/gcov/pr124462.C
! 2f5a9e562f6775f48039bc0b20af1608  gcc/testsuite/g++.dg/gcov/pr16855-priority.C
! f7c0f628057aeb696ed37337ef71f0cc  gcc/testsuite/g++.dg/gcov/pr16855.C
! a110e4ab4e3ab6eb91d6fce957fd398f  gcc/testsuite/g++.dg/gcov/pr84548.C
! 90e64749ca68f4911b9d2f3ec9b662ea  gcc/testsuite/g++.dg/gcov/pr86109.C
! 3cabae486b0ad7de9c050c68aea344e4  gcc/testsuite/g++.dg/gcov/pr88045.C
! 07140e101b06e6240bef91f778610bbf  gcc/testsuite/g++.dg/gcov/pr88263-2.C
! 5a93969283d51fe151af94db41a788e3  gcc/testsuite/g++.dg/gcov/pr88263.C
! 924d62298ff818f1da0e44a5ef312959  gcc/testsuite/g++.dg/gcov/pr97069.C
! 9c2064919a73dd744750231631fc8569  gcc/testsuite/g++.dg/gcov/pr98273.C
! 5d86cefc6880c7dbb15f0bcc018ebbaa  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
! 70eb6056fbdeacb6b55f61a270917dc6  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
! afa91c55fee98a50c792037a139bde80  gcc/testsuite/g++.dg/goacc/cache-3-1.C
! 61b1b9c372960584257fd5dd0f5f6dba  gcc/testsuite/g++.dg/goacc/cache-3-2.C
  04148aa53bf7fbcace7f876837002d79  gcc/testsuite/g++.dg/goacc/data-1.C
! 82a9cb8d7dde5c620d18f62dfb2d0223  gcc/testsuite/g++.dg/goacc/data-clause-1.C
! cf01d5e31bc9fe8acc577245978fa271  gcc/testsuite/g++.dg/goacc/data-clause-2.C
  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
! aca4d7d2718a2f3bcfee6631c6103c89  gcc/testsuite/g++.dg/goacc/goacc.exp
  ba83af77fe8815dad9c311986752e8e6  gcc/testsuite/g++.dg/goacc/implied-copy.C
! 60b279f0287253d310248047ff74563c  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
*************** e2e937b81f60d45e6f0fbe6cdc7207e4  gcc/te
*** 24319,24333 ****
  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
--- 31668,31682 ----
  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
! 1c37d4a793d76180c3c520042815426a  gcc/testsuite/g++.dg/gomp/adjust-args-1.C
  73c60a001ee959ddad8b531e6bcd2a41  gcc/testsuite/g++.dg/gomp/adjust-args-2.C
! f825374f14531b790e0c2fb5ab09676e  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
! a9767597abb2c616a316414cb0e74ea8  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/te
*** 24338,24344 ****
  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
  4c00b09b19e9a90c9f90d361477d4f07  gcc/testsuite/g++.dg/gomp/atomic-17.C
  2c0577ea8f9867c9816d031f9b0f6d9a  gcc/testsuite/g++.dg/gomp/atomic-18.C
--- 31687,31693 ----
  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
! 2e9f6928580a038f0eda56155306e93e  gcc/testsuite/g++.dg/gomp/array-section-2.C
  0f8c6d06e1f378355b0404338dbd037b  gcc/testsuite/g++.dg/gomp/atomic-14.C
  4c00b09b19e9a90c9f90d361477d4f07  gcc/testsuite/g++.dg/gomp/atomic-17.C
  2c0577ea8f9867c9816d031f9b0f6d9a  gcc/testsuite/g++.dg/gomp/atomic-18.C
*************** a5e156d12a28581babb7f17d06d081b0  gcc/te
*** 24346,24355 ****
  b88c4d2eb787d594ae7d4448ee809655  gcc/testsuite/g++.dg/gomp/atomic-20.C
  791fe553aa8c81aef018b426f29f5e89  gcc/testsuite/g++.dg/gomp/atomic-5.C
  64f007dc7d84cb3393b19e626e175a25  gcc/testsuite/g++.dg/gomp/atomic-6.C
! 17da6394b8c4cdc421956ec182499c05  gcc/testsuite/g++.dg/gomp/attrs-1.C
  dced8c5f71a1723b347c22928b9d1c29  gcc/testsuite/g++.dg/gomp/attrs-10.C
  8aef5bf895140d4ffe19d9abafdb18cb  gcc/testsuite/g++.dg/gomp/attrs-11.C
! 2f120ea276638046a850ac83bd0ea37a  gcc/testsuite/g++.dg/gomp/attrs-12.C
  374abff67695b66d14322ae5a94abae0  gcc/testsuite/g++.dg/gomp/attrs-13.C
  0312393ea50f9742543a50b6b4052785  gcc/testsuite/g++.dg/gomp/attrs-14.C
  27b49f896bb789845232ea5137e30e4b  gcc/testsuite/g++.dg/gomp/attrs-15.C
--- 31695,31704 ----
  b88c4d2eb787d594ae7d4448ee809655  gcc/testsuite/g++.dg/gomp/atomic-20.C
  791fe553aa8c81aef018b426f29f5e89  gcc/testsuite/g++.dg/gomp/atomic-5.C
  64f007dc7d84cb3393b19e626e175a25  gcc/testsuite/g++.dg/gomp/atomic-6.C
! d3ed1f586878457b2fe01df54e2c15e5  gcc/testsuite/g++.dg/gomp/attrs-1.C
  dced8c5f71a1723b347c22928b9d1c29  gcc/testsuite/g++.dg/gomp/attrs-10.C
  8aef5bf895140d4ffe19d9abafdb18cb  gcc/testsuite/g++.dg/gomp/attrs-11.C
! c8feb3ea6f168aec29a1f3c80546b0d6  gcc/testsuite/g++.dg/gomp/attrs-12.C
  374abff67695b66d14322ae5a94abae0  gcc/testsuite/g++.dg/gomp/attrs-13.C
  0312393ea50f9742543a50b6b4052785  gcc/testsuite/g++.dg/gomp/attrs-14.C
  27b49f896bb789845232ea5137e30e4b  gcc/testsuite/g++.dg/gomp/attrs-15.C
*************** ae22cf8f9031f97be08e4ee31a2b0046  gcc/te
*** 24357,24380 ****
  02a84cd7b48b19d2f816a4673451ead5  gcc/testsuite/g++.dg/gomp/attrs-17.C
  718e92975c718d6a8df170b8f637ec0f  gcc/testsuite/g++.dg/gomp/attrs-18.C
  0f0e46efcf61bdd2e85191afc575f78c  gcc/testsuite/g++.dg/gomp/attrs-19.C
! 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
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
! 5789aa804503a25767f6b8f6508f55b9  gcc/testsuite/g++.dg/gomp/attrs-9.C
! e55bf3f24d851b0fc8d533f3b1e6fdac  gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
  c934a2db60dd428eef745c2a71dc985b  gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
  facc0feac01669ce68a86b330fcd9db6  gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
! 0eb3667f98012146ed9ff45d1f33581e  gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
  494e9cab1f4f6546b335227f5bcc57c4  gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
  97e643cbd5bffe9ddc22832bf00e482c  gcc/testsuite/g++.dg/gomp/bad-array-section-1.C
! 7d9cf46bb11f676019dfa72130d61cb5  gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
! 141f7f46c8bb9daf5de01235ce3be81e  gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
  4dc2cecce02439310ccd7543ac3f090c  gcc/testsuite/g++.dg/gomp/bad-array-section-2.C
  7d72726287092d4c1eb4547ccf073d88  gcc/testsuite/g++.dg/gomp/bad-array-section-3.C
  13e94ce72bf2108b49773435129d001d  gcc/testsuite/g++.dg/gomp/bad-array-section-4.C
--- 31706,31729 ----
  02a84cd7b48b19d2f816a4673451ead5  gcc/testsuite/g++.dg/gomp/attrs-17.C
  718e92975c718d6a8df170b8f637ec0f  gcc/testsuite/g++.dg/gomp/attrs-18.C
  0f0e46efcf61bdd2e85191afc575f78c  gcc/testsuite/g++.dg/gomp/attrs-19.C
! bc6667f37a411173249302955266c7a7  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
! 579661bf55cbe7fc0088f21eca9308a9  gcc/testsuite/g++.dg/gomp/attrs-4.C
! 2deb4e8e12a006c95dc891ecce74e8ed  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
  de68616288c62ad9860d6c876e1b7668  gcc/testsuite/g++.dg/gomp/attrs-8.C
! dba2017fe7023347daa6a10389700fe4  gcc/testsuite/g++.dg/gomp/attrs-9.C
! 198406cbb6b685eb46cdd430bb764765  gcc/testsuite/g++.dg/gomp/attrs-imperfect1.C
  c934a2db60dd428eef745c2a71dc985b  gcc/testsuite/g++.dg/gomp/attrs-imperfect2.C
  facc0feac01669ce68a86b330fcd9db6  gcc/testsuite/g++.dg/gomp/attrs-imperfect3.C
! a20f699bfc93319b13a27dcb9bef0c26  gcc/testsuite/g++.dg/gomp/attrs-imperfect4.C
  494e9cab1f4f6546b335227f5bcc57c4  gcc/testsuite/g++.dg/gomp/attrs-imperfect5.C
  97e643cbd5bffe9ddc22832bf00e482c  gcc/testsuite/g++.dg/gomp/bad-array-section-1.C
! c3444085f1e48af0a74d43f44ae50e14  gcc/testsuite/g++.dg/gomp/bad-array-section-10.C
! 1f8f4bbb936acedf36a79c1ea98d060d  gcc/testsuite/g++.dg/gomp/bad-array-section-11.C
  4dc2cecce02439310ccd7543ac3f090c  gcc/testsuite/g++.dg/gomp/bad-array-section-2.C
  7d72726287092d4c1eb4547ccf073d88  gcc/testsuite/g++.dg/gomp/bad-array-section-3.C
  13e94ce72bf2108b49773435129d001d  gcc/testsuite/g++.dg/gomp/bad-array-section-4.C
*************** facc0feac01669ce68a86b330fcd9db6  gcc/te
*** 24382,24425 ****
  cad5a0f5612b545b9cc5db417c21bdac  gcc/testsuite/g++.dg/gomp/bad-array-section-6.C
  e69b76d336001e3bff0a54bd6620df4a  gcc/testsuite/g++.dg/gomp/bad-array-section-7.C
  4d0df1125375cbd2536ef7189623f71f  gcc/testsuite/g++.dg/gomp/bad-array-section-8.C
! 1c97b709dafe2bb67c43bbef42737c74  gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
  28210efb6de9f161ddfddd705210bc01  gcc/testsuite/g++.dg/gomp/barrier-1.C
  4c453c9ea0f47e5cb5f0c015b01aa7c9  gcc/testsuite/g++.dg/gomp/barrier-2.C
! 418aec9a82d0d6ecba7659cc2cbb6dfa  gcc/testsuite/g++.dg/gomp/block-0.C
  b68b8e44bec144fb908749a6399485dc  gcc/testsuite/g++.dg/gomp/block-1.C
! 83bac61e5c1132bd7687cebc5785ce08  gcc/testsuite/g++.dg/gomp/block-10.C
  06bc4bbc09faaebbfe030db4359dba90  gcc/testsuite/g++.dg/gomp/block-11.C
  dd21a5a260cbe7e0fc9b94738fea89c9  gcc/testsuite/g++.dg/gomp/block-2.C
  7410e73e91a3af1eef7217429e3f1e0d  gcc/testsuite/g++.dg/gomp/block-3.C
  09c50aad0519d6f7a79e6985abb70a88  gcc/testsuite/g++.dg/gomp/block-4.C
! abc50547ca3d6feb00042e3a52cff486  gcc/testsuite/g++.dg/gomp/block-5.C
  c3c132c63e769145d5869a1e0c14f686  gcc/testsuite/g++.dg/gomp/block-6.C
  21fde38c324f474c2251280d6cd9a190  gcc/testsuite/g++.dg/gomp/block-7.C
  a2fa0bd0c20ee3b75edbfece640cf607  gcc/testsuite/g++.dg/gomp/block-8.C
! cbb7791c1d34b472a8662c5d203ff28c  gcc/testsuite/g++.dg/gomp/block-9.C
  a734cd9ac4c7933b7e53991e05b0aed5  gcc/testsuite/g++.dg/gomp/cancel-1.C
  1ded075e5504b0cdb4b01214eb33c7af  gcc/testsuite/g++.dg/gomp/cancel-2.C
  4d9ae441343c49335159712e6d78736c  gcc/testsuite/g++.dg/gomp/cancel-3.C
  229a4e7a48a56c0cf19c162f2a33f7f1  gcc/testsuite/g++.dg/gomp/clause-1.C
  58ada034a21b7734739e966345d25fac  gcc/testsuite/g++.dg/gomp/clause-2.C
! 1f4bc230caef2b86cebd77a5c13b474e  gcc/testsuite/g++.dg/gomp/clause-3.C
  235336151b903eded3eeda6e7cf9bf04  gcc/testsuite/g++.dg/gomp/clause-4.C
  fe6047f5ca7e2eac34792a3acc1193c2  gcc/testsuite/g++.dg/gomp/copyin-1.C
  73dc4c4897395dc7c307860e0c371fe1  gcc/testsuite/g++.dg/gomp/critical-1.C
  67c49c3ef2f12e8a48820530d769fbd8  gcc/testsuite/g++.dg/gomp/critical-2.C
  d51c209a538c8e7658a85ca99d8eb17b  gcc/testsuite/g++.dg/gomp/critical-3.C
  c33309167faeafe5c8b09666ffbcb15d  gcc/testsuite/g++.dg/gomp/declare-simd-1.C
  6363ff64193eeb8db033202fd0e140f2  gcc/testsuite/g++.dg/gomp/declare-simd-2.C
! 28a86261a1a2a55a8d3a9adc105c5e51  gcc/testsuite/g++.dg/gomp/declare-simd-3.C
! b7abebe5118c972183723125a82bf785  gcc/testsuite/g++.dg/gomp/declare-simd-4.C
  d66c2d955608b28091f45938dce39989  gcc/testsuite/g++.dg/gomp/declare-simd-5.C
! 5a587ac99f134c07ba81955351d61058  gcc/testsuite/g++.dg/gomp/declare-simd-6.C
! c79187a84f6a3652db6de401a3f919eb  gcc/testsuite/g++.dg/gomp/declare-simd-7.C
! 02bf257ed2f303e3b9c8e12dfe76b7e8  gcc/testsuite/g++.dg/gomp/declare-simd-8.C
! 3935c27462840101e805d9321c6b8d56  gcc/testsuite/g++.dg/gomp/declare-target-1.C
! afbb2c51ce08bb72df769bd10e2948b8  gcc/testsuite/g++.dg/gomp/declare-target-2.C
! 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
--- 31731,31777 ----
  cad5a0f5612b545b9cc5db417c21bdac  gcc/testsuite/g++.dg/gomp/bad-array-section-6.C
  e69b76d336001e3bff0a54bd6620df4a  gcc/testsuite/g++.dg/gomp/bad-array-section-7.C
  4d0df1125375cbd2536ef7189623f71f  gcc/testsuite/g++.dg/gomp/bad-array-section-8.C
! 46300df04504a396166de2b6167a3364  gcc/testsuite/g++.dg/gomp/bad-array-section-9.C
  28210efb6de9f161ddfddd705210bc01  gcc/testsuite/g++.dg/gomp/barrier-1.C
  4c453c9ea0f47e5cb5f0c015b01aa7c9  gcc/testsuite/g++.dg/gomp/barrier-2.C
! 9f5e256803570c2e6b7ed3dda2240a4c  gcc/testsuite/g++.dg/gomp/block-0.C
  b68b8e44bec144fb908749a6399485dc  gcc/testsuite/g++.dg/gomp/block-1.C
! 8fcc14bb9e9ecb1daffaef4ce4fa5e00  gcc/testsuite/g++.dg/gomp/block-10.C
  06bc4bbc09faaebbfe030db4359dba90  gcc/testsuite/g++.dg/gomp/block-11.C
  dd21a5a260cbe7e0fc9b94738fea89c9  gcc/testsuite/g++.dg/gomp/block-2.C
  7410e73e91a3af1eef7217429e3f1e0d  gcc/testsuite/g++.dg/gomp/block-3.C
  09c50aad0519d6f7a79e6985abb70a88  gcc/testsuite/g++.dg/gomp/block-4.C
! e9327704a508cb4368831dd2cae39cbf  gcc/testsuite/g++.dg/gomp/block-5.C
  c3c132c63e769145d5869a1e0c14f686  gcc/testsuite/g++.dg/gomp/block-6.C
  21fde38c324f474c2251280d6cd9a190  gcc/testsuite/g++.dg/gomp/block-7.C
  a2fa0bd0c20ee3b75edbfece640cf607  gcc/testsuite/g++.dg/gomp/block-8.C
! fb4bd5ba16a1247a08193e81bedd4ad7  gcc/testsuite/g++.dg/gomp/block-9.C
  a734cd9ac4c7933b7e53991e05b0aed5  gcc/testsuite/g++.dg/gomp/cancel-1.C
  1ded075e5504b0cdb4b01214eb33c7af  gcc/testsuite/g++.dg/gomp/cancel-2.C
  4d9ae441343c49335159712e6d78736c  gcc/testsuite/g++.dg/gomp/cancel-3.C
  229a4e7a48a56c0cf19c162f2a33f7f1  gcc/testsuite/g++.dg/gomp/clause-1.C
  58ada034a21b7734739e966345d25fac  gcc/testsuite/g++.dg/gomp/clause-2.C
! e5dc869355372d06b9658a83a78f8ac3  gcc/testsuite/g++.dg/gomp/clause-3.C
  235336151b903eded3eeda6e7cf9bf04  gcc/testsuite/g++.dg/gomp/clause-4.C
  fe6047f5ca7e2eac34792a3acc1193c2  gcc/testsuite/g++.dg/gomp/copyin-1.C
  73dc4c4897395dc7c307860e0c371fe1  gcc/testsuite/g++.dg/gomp/critical-1.C
  67c49c3ef2f12e8a48820530d769fbd8  gcc/testsuite/g++.dg/gomp/critical-2.C
  d51c209a538c8e7658a85ca99d8eb17b  gcc/testsuite/g++.dg/gomp/critical-3.C
+ 60088a85faa379abbf7cbc20ae5fa42c  gcc/testsuite/g++.dg/gomp/declare-mapper-1.C
+ 4930d47281726e54daf3369e41c792a4  gcc/testsuite/g++.dg/gomp/declare-mapper-2.C
+ ba4a8a9f66e6db7ad17cae2882bb6ca2  gcc/testsuite/g++.dg/gomp/declare-mapper-3.C
  c33309167faeafe5c8b09666ffbcb15d  gcc/testsuite/g++.dg/gomp/declare-simd-1.C
  6363ff64193eeb8db033202fd0e140f2  gcc/testsuite/g++.dg/gomp/declare-simd-2.C
! 6103070bd607234bd1604269508e617f  gcc/testsuite/g++.dg/gomp/declare-simd-3.C
! b15195657c065acbe2aeb45e2b69dfa4  gcc/testsuite/g++.dg/gomp/declare-simd-4.C
  d66c2d955608b28091f45938dce39989  gcc/testsuite/g++.dg/gomp/declare-simd-5.C
! 64e75812a2fbc0ebfdb2f6352407c5a4  gcc/testsuite/g++.dg/gomp/declare-simd-6.C
! c0eb5c003c9c70245f87bc6ffd5fbbf7  gcc/testsuite/g++.dg/gomp/declare-simd-7.C
! b127172ebf402eac6c26fd618270f5fd  gcc/testsuite/g++.dg/gomp/declare-simd-8.C
! 33a90dc8f2d6644c3f9df733a94954ce  gcc/testsuite/g++.dg/gomp/declare-target-1.C
! ed9d591f601e3b14678ad7c42a014ec4  gcc/testsuite/g++.dg/gomp/declare-target-2.C
! 2f6e1f7dc32a81daa0fcc5ca5ff97449  gcc/testsuite/g++.dg/gomp/declare-target-3.C
! 29bdf856cc6852671843109148a2993e  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
*************** f1c961906365e69ec5d85efca251f7e0  gcc/te
*** 24434,24445 ****
  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/testsuite/g++.dg/gomp/depend-iterator-1.C
! 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
--- 31786,31813 ----
  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
! 755ccc483298dbaebf42e83ea5b8ae67  gcc/testsuite/g++.dg/gomp/delim-declare-variant-1.C
! ab6796bbbd027a0118a5d0c35091b93c  gcc/testsuite/g++.dg/gomp/delim-declare-variant-2.C
! aa5ae4999b0256eee22c056ce28deab1  gcc/testsuite/g++.dg/gomp/delim-declare-variant-3.C
! 6312f67fae8ee9faf06e60151de3eb6b  gcc/testsuite/g++.dg/gomp/delim-declare-variant-4.C
! 7b0c5a2a41ae09b370645d06b963aa8a  gcc/testsuite/g++.dg/gomp/delim-declare-variant-40.C
! 5292c3af4526f7e6ea2de38df5c8c6c4  gcc/testsuite/g++.dg/gomp/delim-declare-variant-41.C
! 55bfadd841b7b588056cbb464328d68b  gcc/testsuite/g++.dg/gomp/delim-declare-variant-5.C
! cb6ba733a0c5fb36c07d2b459a5ed7b5  gcc/testsuite/g++.dg/gomp/delim-declare-variant-50.C
! 82355ce4d38a9d4ebebfb888a14b3c39  gcc/testsuite/g++.dg/gomp/delim-declare-variant-51.C
! 902885c49582c4fd10b46b0668738687  gcc/testsuite/g++.dg/gomp/delim-declare-variant-52.C
! d90d98061bb0827b40e915782c675578  gcc/testsuite/g++.dg/gomp/delim-declare-variant-6.C
! 3812705425ec6a9c450e8257bb30dac6  gcc/testsuite/g++.dg/gomp/delim-declare-variant-7.C
! 7014c69d16a1ad686038587723accba6  gcc/testsuite/g++.dg/gomp/delim-declare-variant-70.C
! bddd8d410ed52f2d30633f00da52aa3e  gcc/testsuite/g++.dg/gomp/delim-declare-variant-71.C
! 5fde4edb396687302b0769e1000be869  gcc/testsuite/g++.dg/gomp/depend-1.C
! 3357bb5c0a70641d769ba11be9547921  gcc/testsuite/g++.dg/gomp/depend-2.C
! b4d5297f4327713db403a73581ccccdc  gcc/testsuite/g++.dg/gomp/depend-iterator-1.C
! fa44d88d6fab49c78847c2e58ab2fcb2  gcc/testsuite/g++.dg/gomp/depend-iterator-2.C
  e7b69c86d16171732a1c9ef74218d864  gcc/testsuite/g++.dg/gomp/depend-iterator-3.C
! 740ed0612faf0dcfa1181d65d79b197b  gcc/testsuite/g++.dg/gomp/depobj-1.C
! 877ebdd1bfc2c88bda8ef10ad16748e7  gcc/testsuite/g++.dg/gomp/deprecate-1.C
! d72b55aefb31276fa8a6bd1fcdd9c071  gcc/testsuite/g++.dg/gomp/deprecate-2.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
*************** a93deb73566f880b8420dd06c26750b5  gcc/te
*** 24449,24455 ****
  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
--- 31817,31823 ----
  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
! 6fa391aeff5c13e9ee3a8c581e3eee6d  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
*************** be30540ffa5cb139e4f1f5ae1c518fe1  gcc/te
*** 24475,24490 ****
  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
! 735e63b333606d1c27a15969104fc81d  gcc/testsuite/g++.dg/gomp/linear-3.C
  f3752dd58fb20bb921b9e8b74ec7686a  gcc/testsuite/g++.dg/gomp/linear-4.C
! 32594d71748d37014bfb8527472591e5  gcc/testsuite/g++.dg/gomp/linear-5.C
  b233240aa872c73ae04a12a8d81356a7  gcc/testsuite/g++.dg/gomp/loop-1.C
  c220284cfbbe6d86192d110c5d4bcf7a  gcc/testsuite/g++.dg/gomp/loop-2.C
  85a54900b277e797b5dff30d84b7fdaa  gcc/testsuite/g++.dg/gomp/loop-3.C
--- 31843,31858 ----
  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
! a52989bed2795657e9d5cd3d1fa6c8c6  gcc/testsuite/g++.dg/gomp/gomp.exp
  5ba807a5630d6b67e06971a0b91ca947  gcc/testsuite/g++.dg/gomp/has_device_addr-non-lvalue-1.C
! 4efa844f26c381598c7ae2f467f4b430  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
! aa63e60d6cab6b816600edd48f28205d  gcc/testsuite/g++.dg/gomp/linear-1.C
! a7c423adda8633939bd348c24c3e69f1  gcc/testsuite/g++.dg/gomp/linear-2.C
! bd0d186474492aec1fa5ccfc1514dfd4  gcc/testsuite/g++.dg/gomp/linear-3.C
  f3752dd58fb20bb921b9e8b74ec7686a  gcc/testsuite/g++.dg/gomp/linear-4.C
! 5193b60634231c4dd85a0e5112c9ad00  gcc/testsuite/g++.dg/gomp/linear-5.C
  b233240aa872c73ae04a12a8d81356a7  gcc/testsuite/g++.dg/gomp/loop-1.C
  c220284cfbbe6d86192d110c5d4bcf7a  gcc/testsuite/g++.dg/gomp/loop-2.C
  85a54900b277e797b5dff30d84b7fdaa  gcc/testsuite/g++.dg/gomp/loop-3.C
*************** d7abbbc2867aab2afff28c6e0dea6960  gcc/te
*** 24496,24524 ****
  a4271cf7824f2a837486e7951ee23884  gcc/testsuite/g++.dg/gomp/macro-1.C
  eabb0107af4ef893414bb3cef506ad03  gcc/testsuite/g++.dg/gomp/macro-2.C
  942f8defe03c25bf08f780cf22c0a1e5  gcc/testsuite/g++.dg/gomp/macro-3.C
! 9254a2c9545e874172464af7e042681f  gcc/testsuite/g++.dg/gomp/macro-4.C
! 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/testsuite/g++.dg/gomp/master-3.C
  085a17f3b985f087eaa100869e3575b2  gcc/testsuite/g++.dg/gomp/member-1.C
  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
--- 31864,31895 ----
  a4271cf7824f2a837486e7951ee23884  gcc/testsuite/g++.dg/gomp/macro-1.C
  eabb0107af4ef893414bb3cef506ad03  gcc/testsuite/g++.dg/gomp/macro-2.C
  942f8defe03c25bf08f780cf22c0a1e5  gcc/testsuite/g++.dg/gomp/macro-3.C
! cd9c99991551b9a21416b02b7ae5b5b4  gcc/testsuite/g++.dg/gomp/macro-4.C
! e31fb630f800e94353ce49735833ef33  gcc/testsuite/g++.dg/gomp/map-1.C
! 50fbf14e5c93c58c73a95a4f7fbae8d7  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
+ d95526d6768418b3bfc7b59f1daad476  gcc/testsuite/g++.dg/gomp/map-csm-dep.C
  e12974abf2bb742407d18e9d07505400  gcc/testsuite/g++.dg/gomp/map-inc-1.C
  ebd0af100c738096180052a774559603  gcc/testsuite/g++.dg/gomp/map-lvalue-ref-1.C
! 5a9a16b88b96f90ad2b701b96ed0e94f  gcc/testsuite/g++.dg/gomp/map-ptrmem-1.C
! 7133f242df279357b92620437d947e52  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
! 661056976f2d0b44d6daa1f93de4145c  gcc/testsuite/g++.dg/gomp/master-1.C
! f17944b3d7f5eed17acd1c7b853ebc3d  gcc/testsuite/g++.dg/gomp/master-2.C
! 980028d36c16eb9948462a9b27fbbf42  gcc/testsuite/g++.dg/gomp/master-3.C
  085a17f3b985f087eaa100869e3575b2  gcc/testsuite/g++.dg/gomp/member-1.C
  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
! 068adb64c4d55c7713c3dde55ec494d1  gcc/testsuite/g++.dg/gomp/member-array-2.C
  b04637997ce93ec04bd981d2cda2f110  gcc/testsuite/g++.dg/gomp/member-array-omp.C
+ d4182799214f45dabaa5ac64c4ea27b7  gcc/testsuite/g++.dg/gomp/metadirective-condition-class.C
+ ba7e10ef037089d1a30c8bf2079be93e  gcc/testsuite/g++.dg/gomp/metadirective-condition-template.C
  ab2ceb1dedc2f10e9f7e407653985ce1  gcc/testsuite/g++.dg/gomp/metadirective-template-1.C
! 5a715a37b9e594f1836677e4081459f5  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
*************** b2b4c495143bcddf8d93ab8981f20a56  gcc/te
*** 24546,24556 ****
  2a1bc0a0ca3eb44a30af243b7764d562  gcc/testsuite/g++.dg/gomp/pr106492.C
  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
--- 31917,31936 ----
  2a1bc0a0ca3eb44a30af243b7764d562  gcc/testsuite/g++.dg/gomp/pr106492.C
  bd9556c57358bc478181fd7105e19b2f  gcc/testsuite/g++.dg/gomp/pr106829.C
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
! 0fdb1d075765833d520988fd56ad7280  gcc/testsuite/g++.dg/gomp/pr108503.C
  a8cfc657234f5f421b289d2fa6196965  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
! 862170537bba07f4be0557b1aa4101c4  gcc/testsuite/g++.dg/gomp/pr113436-1.C
! 637110926e3aa67579a390cf05450710  gcc/testsuite/g++.dg/gomp/pr113436-2.C
! 0f26f9bd3a16749db67eca208387a551  gcc/testsuite/g++.dg/gomp/pr113436-3.C
! 3366513ee268f5aa845a9daf9697760e  gcc/testsuite/g++.dg/gomp/pr113436-4.C
! 89218033cf6719c7c25cc630f1eb4438  gcc/testsuite/g++.dg/gomp/pr113436-5.C
! a224cdf89df755372b414897a4fd0df0  gcc/testsuite/g++.dg/gomp/pr118876.C
! 24de1af738e1de5eade9460de843157d  gcc/testsuite/g++.dg/gomp/pr119370.C
! 44956ee7048ef4daaa13755b811fe3ca  gcc/testsuite/g++.dg/gomp/pr120180-1.C
! 996def323ebaae8304a543404625c64a  gcc/testsuite/g++.dg/gomp/pr121977.C
! b30c571b03f08db4a17f3299d04b20fa  gcc/testsuite/g++.dg/gomp/pr123597.C
! e57c36b40c4fe73e0699cc16965bc1d3  gcc/testsuite/g++.dg/gomp/pr124700.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
*************** fa5907459731d5e6a2c5b41146d6a278  gcc/te
*** 24571,24583 ****
  b9a2699c36611930a6cd985b859b64d7  gcc/testsuite/g++.dg/gomp/pr29965-1.C
  5711a0429a614d267b03f59eb88887fe  gcc/testsuite/g++.dg/gomp/pr29965-10.C
  046a92dee9565bc6e805dfba4770a270  gcc/testsuite/g++.dg/gomp/pr29965-2.C
! 2d9f346cbd057f0a16724783281b8d57  gcc/testsuite/g++.dg/gomp/pr29965-3.C
  0e0cb0588880763a82a51504a65aace2  gcc/testsuite/g++.dg/gomp/pr29965-4.C
  ca06637df1998d16f119f8d27a3e6acb  gcc/testsuite/g++.dg/gomp/pr29965-5.C
  e4c52ee517b132b822a6172deff5f31c  gcc/testsuite/g++.dg/gomp/pr29965-6.C
  12f5347965c54d797e22be610798192d  gcc/testsuite/g++.dg/gomp/pr29965-7.C
  6905a61647fa8768928712f5ba22d8da  gcc/testsuite/g++.dg/gomp/pr29965-8.C
! e95b486012b6b3bf86bc7fbb9abc0634  gcc/testsuite/g++.dg/gomp/pr29965-9.C
  e247a2fd72bf51bc657ab556931ea098  gcc/testsuite/g++.dg/gomp/pr30494.C
  1ea0672448f9710d3d1cd0de67af01d2  gcc/testsuite/g++.dg/gomp/pr30558.C
  4c51a32fc519b510f11e6795ca140db1  gcc/testsuite/g++.dg/gomp/pr30696.C
--- 31951,31963 ----
  b9a2699c36611930a6cd985b859b64d7  gcc/testsuite/g++.dg/gomp/pr29965-1.C
  5711a0429a614d267b03f59eb88887fe  gcc/testsuite/g++.dg/gomp/pr29965-10.C
  046a92dee9565bc6e805dfba4770a270  gcc/testsuite/g++.dg/gomp/pr29965-2.C
! aec7dd56061531d1986483ae6738b9e3  gcc/testsuite/g++.dg/gomp/pr29965-3.C
  0e0cb0588880763a82a51504a65aace2  gcc/testsuite/g++.dg/gomp/pr29965-4.C
  ca06637df1998d16f119f8d27a3e6acb  gcc/testsuite/g++.dg/gomp/pr29965-5.C
  e4c52ee517b132b822a6172deff5f31c  gcc/testsuite/g++.dg/gomp/pr29965-6.C
  12f5347965c54d797e22be610798192d  gcc/testsuite/g++.dg/gomp/pr29965-7.C
  6905a61647fa8768928712f5ba22d8da  gcc/testsuite/g++.dg/gomp/pr29965-8.C
! 14aad81a0d0a011369f8308080eceae8  gcc/testsuite/g++.dg/gomp/pr29965-9.C
  e247a2fd72bf51bc657ab556931ea098  gcc/testsuite/g++.dg/gomp/pr30494.C
  1ea0672448f9710d3d1cd0de67af01d2  gcc/testsuite/g++.dg/gomp/pr30558.C
  4c51a32fc519b510f11e6795ca140db1  gcc/testsuite/g++.dg/gomp/pr30696.C
*************** b428c7f93716fb0816637554558e5f4e  gcc/te
*** 24645,24656 ****
  e517132ae674bc848e5ee4b0da030545  gcc/testsuite/g++.dg/gomp/pr78363-1.C
  d525d430781e40ebeb254a8efceedd72  gcc/testsuite/g++.dg/gomp/pr78363-2.C
  f0ca29d7ad7cbea99e20dbbd47fccc3a  gcc/testsuite/g++.dg/gomp/pr78363-3.C
! 8104ca69bf372e3834ba6d63f314e38d  gcc/testsuite/g++.dg/gomp/pr78363-4.C
  919c5bb2ba885e2bd64cfb826248ec85  gcc/testsuite/g++.dg/gomp/pr78363-5.C
! 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
--- 32025,32036 ----
  e517132ae674bc848e5ee4b0da030545  gcc/testsuite/g++.dg/gomp/pr78363-1.C
  d525d430781e40ebeb254a8efceedd72  gcc/testsuite/g++.dg/gomp/pr78363-2.C
  f0ca29d7ad7cbea99e20dbbd47fccc3a  gcc/testsuite/g++.dg/gomp/pr78363-3.C
! 300bd5e349b5367b8b937430eaa206ca  gcc/testsuite/g++.dg/gomp/pr78363-4.C
  919c5bb2ba885e2bd64cfb826248ec85  gcc/testsuite/g++.dg/gomp/pr78363-5.C
! 31991136f9ba2df92066593c98660d8a  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
! d3d051a37d1f886d75c2d4694487c8f3  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
*************** cd480ac7c6ec75b5c415bce7a22c2d2c  gcc/te
*** 24673,24680 ****
  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
--- 32053,32060 ----
  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
! dba99723e9085aa4ba9b9a32dd26b895  gcc/testsuite/g++.dg/gomp/pr94477.C
! b9df880726e595cd8ec43ea5d74088fe  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
*************** f97f1706978c263c63bb1cf7a9b02300  gcc/te
*** 24693,24714 ****
  641ac4dd2d2bc4be8797863fb6b5c286  gcc/testsuite/g++.dg/gomp/simd-1.C
  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
  74316308fd39fecd67837ae2b456f6ce  gcc/testsuite/g++.dg/gomp/target-4.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
--- 32073,32094 ----
  641ac4dd2d2bc4be8797863fb6b5c286  gcc/testsuite/g++.dg/gomp/simd-1.C
  02e91fef2b3e3caf9b1f7f5696c2c507  gcc/testsuite/g++.dg/gomp/simd-2.C
  2b624343bfc79fe101d846a4291f71c8  gcc/testsuite/g++.dg/gomp/simd-3.C
! 68ad96e668f005716438fcec8c1799a9  gcc/testsuite/g++.dg/gomp/sink-1.C
! 649ac10618757ff3f1351c40e9f7a121  gcc/testsuite/g++.dg/gomp/sink-2.C
! 2c14e41a59f6a09cc05efdcf1115792d  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
  74316308fd39fecd67837ae2b456f6ce  gcc/testsuite/g++.dg/gomp/target-4.C
  1b305722cc5c4a70d422333277766f99  gcc/testsuite/g++.dg/gomp/target-lambda-2.C
! 9fa21a3e4b88a99b545bc3e6df9c1847  gcc/testsuite/g++.dg/gomp/target-simd-clone-1.C
! d4624843e143cfb7f782b33b96c0189c  gcc/testsuite/g++.dg/gomp/target-simd-clone-2.C
! 7002a2623f50a8912526f750d3fa3d1b  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
! 5dc593c0d06eba306eb52a76763f634f  gcc/testsuite/g++.dg/gomp/target-this-3.C
! d2176e309b3418b0b89370a3dc8e8394  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
*************** b057b654090f4695277d8c1866894100  gcc/te
*** 24738,24744 ****
  e201e0a42e3414d0a84df754a2f94528  gcc/testsuite/g++.dg/gomp/tpl-imperfect-gotos.C
  5bd0fdf4e461573f90f966d62514479f  gcc/testsuite/g++.dg/gomp/tpl-imperfect-invalid-scope.C
  28adf9e9fa5e0143101a0890bf7bd18e  gcc/testsuite/g++.dg/gomp/tpl-masked-1.C
! 357c0eef566a98817ab37efc3875adb1  gcc/testsuite/g++.dg/gomp/tpl-master-1.C
  3fe09daf99ddda4ea1fef59c61e34f47  gcc/testsuite/g++.dg/gomp/tpl-parallel-1.C
  d647e97b4f8477aa549f4f2f6eb6daa1  gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C
  9e724e74b65abd98b17d7ce93dd59b9e  gcc/testsuite/g++.dg/gomp/tpl-target-update.C
--- 32118,32124 ----
  e201e0a42e3414d0a84df754a2f94528  gcc/testsuite/g++.dg/gomp/tpl-imperfect-gotos.C
  5bd0fdf4e461573f90f966d62514479f  gcc/testsuite/g++.dg/gomp/tpl-imperfect-invalid-scope.C
  28adf9e9fa5e0143101a0890bf7bd18e  gcc/testsuite/g++.dg/gomp/tpl-masked-1.C
! 489743d00cef4346d898b96260659694  gcc/testsuite/g++.dg/gomp/tpl-master-1.C
  3fe09daf99ddda4ea1fef59c61e34f47  gcc/testsuite/g++.dg/gomp/tpl-parallel-1.C
  d647e97b4f8477aa549f4f2f6eb6daa1  gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C
  9e724e74b65abd98b17d7ce93dd59b9e  gcc/testsuite/g++.dg/gomp/tpl-target-update.C
*************** d647e97b4f8477aa549f4f2f6eb6daa1  gcc/te
*** 24746,24758 ****
  423bd7d1b2c603c3574210f5678ba5bd  gcc/testsuite/g++.dg/gomp/udr-2.C
  8f936f92e4618f6d92d63d32189ab5d4  gcc/testsuite/g++.dg/gomp/udr-3.C
  a10dd83ffd8fea8213e9a3713b91277f  gcc/testsuite/g++.dg/gomp/udr-4.C
! 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
--- 32126,32139 ----
  423bd7d1b2c603c3574210f5678ba5bd  gcc/testsuite/g++.dg/gomp/udr-2.C
  8f936f92e4618f6d92d63d32189ab5d4  gcc/testsuite/g++.dg/gomp/udr-3.C
  a10dd83ffd8fea8213e9a3713b91277f  gcc/testsuite/g++.dg/gomp/udr-4.C
! cdf3c91621626888f451724b65a2d8f7  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
! 8f5d0753dca3b55af329d67297d6fe2c  gcc/testsuite/g++.dg/gomp/uses_allocators-1.C
! 2711e5dceb18883acf69e13dc1de71f8  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
*************** b37a08c48590ee57a45669e3a61fc899  gcc/te
*** 24761,24772 ****
  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
  09c7cb75ec3ba3ba9c29f5a1956f9e7c  gcc/testsuite/g++.dg/guality/pr55665.C
! 1f6434a711b21741e7f18945125f326d  gcc/testsuite/g++.dg/guality/pr67192.C
  0c2592ea712ffdd8518c042cf08c44f6  gcc/testsuite/g++.dg/guality/pr82630.C
  a4cc053c9d17978de8abeaa091606802  gcc/testsuite/g++.dg/guality/pr86687.C
  a0dca44ebd71904f8aeb3e055b8d94c7  gcc/testsuite/g++.dg/guality/pr93888.C
--- 32142,32154 ----
  012194f3f4441fc0dc8fb4ba94a8882b  gcc/testsuite/g++.dg/graphite/pr42681.C
  dfe63b7d52f6d97e04da25f267ac330c  gcc/testsuite/g++.dg/graphite/pr42930.C
  4cf735ba9e5b65e201dbbd4ec916b359  gcc/testsuite/g++.dg/graphite/pr43026.C
! 972ae62627d5778f45f285feb6661317  gcc/testsuite/g++.dg/guality/decomp1.C
! 096880536f5c5745bf4b6de14ae54539  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
  09c7cb75ec3ba3ba9c29f5a1956f9e7c  gcc/testsuite/g++.dg/guality/pr55665.C
! 5ea62c95b0eabb0df8560969b724da4e  gcc/testsuite/g++.dg/guality/pr67192.C
  0c2592ea712ffdd8518c042cf08c44f6  gcc/testsuite/g++.dg/guality/pr82630.C
  a4cc053c9d17978de8abeaa091606802  gcc/testsuite/g++.dg/guality/pr86687.C
  a0dca44ebd71904f8aeb3e055b8d94c7  gcc/testsuite/g++.dg/guality/pr93888.C
*************** b86ad3775871c742d34f5c09175822b1  gcc/te
*** 24775,24781 ****
  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
--- 32157,32163 ----
  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
! 5cf2f70b8a17da6d4e50ddd2c049ede8  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
*************** fd1a48e42812d7a049499f6df69ff7fe  gcc/te
*** 24865,24871 ****
  d540211dfef88a56103ba31d3189b9f3  gcc/testsuite/g++.dg/inherit/thunk8.C
  fb6adb819d82abbffb1f0f36f85868ba  gcc/testsuite/g++.dg/inherit/thunk9.C
  543b190c9c0d744209af04ea332cc27e  gcc/testsuite/g++.dg/inherit/typedef1.C
! be87b303cd68bc0083e229657e8d162a  gcc/testsuite/g++.dg/inherit/typeinfo1.C
  8ac7470626f12e0cdefa40e25583472b  gcc/testsuite/g++.dg/inherit/union1.C
  593a6859fcee5dcb260d51e522f494ab  gcc/testsuite/g++.dg/inherit/union2.C
  c3ef752ebc840d838c3182a9a37846aa  gcc/testsuite/g++.dg/inherit/union3.C
--- 32247,32253 ----
  d540211dfef88a56103ba31d3189b9f3  gcc/testsuite/g++.dg/inherit/thunk8.C
  fb6adb819d82abbffb1f0f36f85868ba  gcc/testsuite/g++.dg/inherit/thunk9.C
  543b190c9c0d744209af04ea332cc27e  gcc/testsuite/g++.dg/inherit/typedef1.C
! 465574659b07597bf1dbaea87373a4fe  gcc/testsuite/g++.dg/inherit/typeinfo1.C
  8ac7470626f12e0cdefa40e25583472b  gcc/testsuite/g++.dg/inherit/union1.C
  593a6859fcee5dcb260d51e522f494ab  gcc/testsuite/g++.dg/inherit/union2.C
  c3ef752ebc840d838c3182a9a37846aa  gcc/testsuite/g++.dg/inherit/union3.C
*************** b8f980c062ec4b3f73dffbda8276ec70  gcc/te
*** 25164,25170 ****
  aa579892dca36d8b110a8b13f1664a4a  gcc/testsuite/g++.dg/init/pr20039.C
  769411a1c7958778a3d38ee85b470169  gcc/testsuite/g++.dg/init/pr25811-3.C
  677f7b38b3959f7edf25e66789e0a86a  gcc/testsuite/g++.dg/init/pr25811-4.C
! e37e39bdf9e1b0a5812d4dce3aa161b9  gcc/testsuite/g++.dg/init/pr25811.C
  85782d5ef8b1f167eda4d2f6167a8f03  gcc/testsuite/g++.dg/init/pr29043.C
  8ec941f80b1661f99f6cd682d5d469dc  gcc/testsuite/g++.dg/init/pr29571.C
  e6aa309a87de688020673480763c4211  gcc/testsuite/g++.dg/init/pr35878_1.C
--- 32546,32552 ----
  aa579892dca36d8b110a8b13f1664a4a  gcc/testsuite/g++.dg/init/pr20039.C
  769411a1c7958778a3d38ee85b470169  gcc/testsuite/g++.dg/init/pr25811-3.C
  677f7b38b3959f7edf25e66789e0a86a  gcc/testsuite/g++.dg/init/pr25811-4.C
! b16f434e40791ffa8cb8791c621a89dd  gcc/testsuite/g++.dg/init/pr25811.C
  85782d5ef8b1f167eda4d2f6167a8f03  gcc/testsuite/g++.dg/init/pr29043.C
  8ec941f80b1661f99f6cd682d5d469dc  gcc/testsuite/g++.dg/init/pr29571.C
  e6aa309a87de688020673480763c4211  gcc/testsuite/g++.dg/init/pr35878_1.C
*************** ca385abd9d6b36d0667c2ad521a0233e  gcc/te
*** 25265,25271 ****
  4487271d3a3d8cbbe87a8aa0dee4b541  gcc/testsuite/g++.dg/init/value7.C
  8301ee378a2cddfa351a850b83e9542a  gcc/testsuite/g++.dg/init/value8.C
  ac0a59cc779709a0f2049784d3349ce1  gcc/testsuite/g++.dg/init/value9.C
! c5a2ccfd21d2f44046825123706e505a  gcc/testsuite/g++.dg/init/vbase1.C
  f950998991b01d5ad8aa91b1f8d04255  gcc/testsuite/g++.dg/init/vbase2.C
  e4ace0ef4caaae06eef685ccaefd464e  gcc/testsuite/g++.dg/init/vector1.C
  4e0802398e368eb04b3feac9c0b1b5d4  gcc/testsuite/g++.dg/init/void1.C
--- 32647,32653 ----
  4487271d3a3d8cbbe87a8aa0dee4b541  gcc/testsuite/g++.dg/init/value7.C
  8301ee378a2cddfa351a850b83e9542a  gcc/testsuite/g++.dg/init/value8.C
  ac0a59cc779709a0f2049784d3349ce1  gcc/testsuite/g++.dg/init/value9.C
! af7fbde28513cc88fd193281bd476c61  gcc/testsuite/g++.dg/init/vbase1.C
  f950998991b01d5ad8aa91b1f8d04255  gcc/testsuite/g++.dg/init/vbase2.C
  e4ace0ef4caaae06eef685ccaefd464e  gcc/testsuite/g++.dg/init/vector1.C
  4e0802398e368eb04b3feac9c0b1b5d4  gcc/testsuite/g++.dg/init/void1.C
*************** ca15311ea1da0659039c9b25689b0b27  gcc/te
*** 25279,25294 ****
  bed36d1818630d74b5d7e001ed0f2563  gcc/testsuite/g++.dg/ipa/devirt-12.C
  e56f74042aa8aa5dbbb9f60f5673507c  gcc/testsuite/g++.dg/ipa/devirt-13.C
  44c79b746a024dc0af4c9cb2a65b99ee  gcc/testsuite/g++.dg/ipa/devirt-14.C
! 3a165818e702466a10e261787ba32023  gcc/testsuite/g++.dg/ipa/devirt-15.C
  a3ef5649648039007c89bf5cb9fe814b  gcc/testsuite/g++.dg/ipa/devirt-16.C
  6dcf4578bc9c92f114c8c61ef2660571  gcc/testsuite/g++.dg/ipa/devirt-17.C
  4b23a4e562c19810f0c55f0817916933  gcc/testsuite/g++.dg/ipa/devirt-18.C
  738b02e35a19328285cb21b4ce45b66f  gcc/testsuite/g++.dg/ipa/devirt-19.C
! 8752d9303ef31d1841ca9ff432ab2041  gcc/testsuite/g++.dg/ipa/devirt-2.C
  38cc93e595d53663e7624f3bf745ba39  gcc/testsuite/g++.dg/ipa/devirt-20.C
  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
--- 32661,32676 ----
  bed36d1818630d74b5d7e001ed0f2563  gcc/testsuite/g++.dg/ipa/devirt-12.C
  e56f74042aa8aa5dbbb9f60f5673507c  gcc/testsuite/g++.dg/ipa/devirt-13.C
  44c79b746a024dc0af4c9cb2a65b99ee  gcc/testsuite/g++.dg/ipa/devirt-14.C
! 36d9d10b20c283292d43ee3a688bb8fa  gcc/testsuite/g++.dg/ipa/devirt-15.C
  a3ef5649648039007c89bf5cb9fe814b  gcc/testsuite/g++.dg/ipa/devirt-16.C
  6dcf4578bc9c92f114c8c61ef2660571  gcc/testsuite/g++.dg/ipa/devirt-17.C
  4b23a4e562c19810f0c55f0817916933  gcc/testsuite/g++.dg/ipa/devirt-18.C
  738b02e35a19328285cb21b4ce45b66f  gcc/testsuite/g++.dg/ipa/devirt-19.C
! 50039ab7ea5e1a15882ae4b338ad0dcc  gcc/testsuite/g++.dg/ipa/devirt-2.C
  38cc93e595d53663e7624f3bf745ba39  gcc/testsuite/g++.dg/ipa/devirt-20.C
  67e019ff1f3d279e2c6b5f223b061ebc  gcc/testsuite/g++.dg/ipa/devirt-21.C
  ef2c20211e1e4ece4ec9e3d8ea3d585f  gcc/testsuite/g++.dg/ipa/devirt-22.C
! 2592d96d2c48ecaded3e5add75feeb51  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
*************** a2972db3912accc9638a8980355e47ed  gcc/te
*** 25310,25316 ****
  2878c81a10148de820784e19c1fe44f9  gcc/testsuite/g++.dg/ipa/devirt-4.C
  03e6ae8a2d5519bf23e14fa67d702d7e  gcc/testsuite/g++.dg/ipa/devirt-40.C
  d78ab57adfda4c091e90fca3cb9fff80  gcc/testsuite/g++.dg/ipa/devirt-41.C
! e915138ffa27270843cb0bce3000e00b  gcc/testsuite/g++.dg/ipa/devirt-42.C
  db476e68b1dec09bf7f43dcc225319f2  gcc/testsuite/g++.dg/ipa/devirt-43.C
  d6b86291c68660fa38d0d11d0821a8bd  gcc/testsuite/g++.dg/ipa/devirt-44.C
  ef9689abb991bd87caa70df090f683f6  gcc/testsuite/g++.dg/ipa/devirt-45.C
--- 32692,32698 ----
  2878c81a10148de820784e19c1fe44f9  gcc/testsuite/g++.dg/ipa/devirt-4.C
  03e6ae8a2d5519bf23e14fa67d702d7e  gcc/testsuite/g++.dg/ipa/devirt-40.C
  d78ab57adfda4c091e90fca3cb9fff80  gcc/testsuite/g++.dg/ipa/devirt-41.C
! 636ee6bf50d565883d9b35655ca7797e  gcc/testsuite/g++.dg/ipa/devirt-42.C
  db476e68b1dec09bf7f43dcc225319f2  gcc/testsuite/g++.dg/ipa/devirt-43.C
  d6b86291c68660fa38d0d11d0821a8bd  gcc/testsuite/g++.dg/ipa/devirt-44.C
  ef9689abb991bd87caa70df090f683f6  gcc/testsuite/g++.dg/ipa/devirt-45.C
*************** ffdbd39bf7256fe7cdd80a0507ecc133  gcc/te
*** 25349,25355 ****
  af1630ba13bdbd20938ab0c47a373b5a  gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
  7abc84b89d5655129dac92bfe8a5ef42  gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
  ca19634a861e929cd261f6f3a923f8b3  gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
! 8c1a79016f63ba6106b140bbc3aba3af  gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
  890af13d278e4e0706986dbc2c5a1884  gcc/testsuite/g++.dg/ipa/ipa-icf-5.C
  91f7284baf9c02068705da50e95886c9  gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
  baa7a26fbd7f93011660ae486b2d5a03  gcc/testsuite/g++.dg/ipa/ipa-pta-1.C
--- 32731,32737 ----
  af1630ba13bdbd20938ab0c47a373b5a  gcc/testsuite/g++.dg/ipa/ipa-icf-1.C
  7abc84b89d5655129dac92bfe8a5ef42  gcc/testsuite/g++.dg/ipa/ipa-icf-2.C
  ca19634a861e929cd261f6f3a923f8b3  gcc/testsuite/g++.dg/ipa/ipa-icf-3.C
! ea3d28ff5ce397563ae5af9a4cf08821  gcc/testsuite/g++.dg/ipa/ipa-icf-4.C
  890af13d278e4e0706986dbc2c5a1884  gcc/testsuite/g++.dg/ipa/ipa-icf-5.C
  91f7284baf9c02068705da50e95886c9  gcc/testsuite/g++.dg/ipa/ipa-icf-6.C
  baa7a26fbd7f93011660ae486b2d5a03  gcc/testsuite/g++.dg/ipa/ipa-pta-1.C
*************** ecfa94e705bc436ad699767b1e4c929e  gcc/te
*** 25374,25379 ****
--- 32756,32762 ----
  55ee7bff7cc115f42266bd1d62dda46b  gcc/testsuite/g++.dg/ipa/pr100413.C
  901698e6dabf29dd6ced031811fcf59e  gcc/testsuite/g++.dg/ipa/pr103099.C
  f2ff4523ab9758b8e447b088ac708879  gcc/testsuite/g++.dg/ipa/pr106258.C
+ 4b93844d472e68bdcc050f5ef8ce7079  gcc/testsuite/g++.dg/ipa/pr106260.C
  c43cd4a90674d630795e0323738e0460  gcc/testsuite/g++.dg/ipa/pr107661.C
  7d63c0342d026b9ee4f2ecb03364cefe  gcc/testsuite/g++.dg/ipa/pr108110.C
  9a257f3564fd42fe9d7e00c5567f89d2  gcc/testsuite/g++.dg/ipa/pr108509.C
*************** e66c84f48f938ed2bb548ce51957afce  gcc/te
*** 25384,25389 ****
--- 32767,32774 ----
  d248bf5deb963f7dfbec9babb6fb70df  gcc/testsuite/g++.dg/ipa/pr116572.C
  9183db2978d574bc26d43a0d942ec920  gcc/testsuite/g++.dg/ipa/pr118243.C
  6cd3566146c3d805aaa4fc95d93401c3  gcc/testsuite/g++.dg/ipa/pr120146.C
+ 2e880749089a9c6febba9ae1fa0de490  gcc/testsuite/g++.dg/ipa/pr122856.C
+ ef33c2ef3dbc8aac99ad9c82e7cc7c9e  gcc/testsuite/g++.dg/ipa/pr123229.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
*************** e3931f023ac1cf9205a7c1660d952c18  gcc/te
*** 25478,25485 ****
  c430165f569fa5b83e06f136d915a840  gcc/testsuite/g++.dg/ipa/pr81261.C
  39c52ca311d33b3dcb36e04dee5c84bf  gcc/testsuite/g++.dg/ipa/pr82352.C
  05592a0935fec817a7688eb12baa50c2  gcc/testsuite/g++.dg/ipa/pr82801.C
! a6ea68da40fdbc3c5627d8fd52058c74  gcc/testsuite/g++.dg/ipa/pr83549.C
! 06f49f7abbe4bfaee23390b33bd5d8a6  gcc/testsuite/g++.dg/ipa/pr83667.C
  d31daabe5d2bb29c818c1bbbe31a5a4b  gcc/testsuite/g++.dg/ipa/pr84658.C
  89c35bb41f6079175e75624ae113f0c2  gcc/testsuite/g++.dg/ipa/pr84825.C
  7a74ca095291672fedb99619674166cc  gcc/testsuite/g++.dg/ipa/pr85421.C
--- 32863,32870 ----
  c430165f569fa5b83e06f136d915a840  gcc/testsuite/g++.dg/ipa/pr81261.C
  39c52ca311d33b3dcb36e04dee5c84bf  gcc/testsuite/g++.dg/ipa/pr82352.C
  05592a0935fec817a7688eb12baa50c2  gcc/testsuite/g++.dg/ipa/pr82801.C
! c87b859f5b51977c428a4b2b5bebe740  gcc/testsuite/g++.dg/ipa/pr83549.C
! 6f6ef7b43794d5f84e5745f4e5b924cb  gcc/testsuite/g++.dg/ipa/pr83667.C
  d31daabe5d2bb29c818c1bbbe31a5a4b  gcc/testsuite/g++.dg/ipa/pr84658.C
  89c35bb41f6079175e75624ae113f0c2  gcc/testsuite/g++.dg/ipa/pr84825.C
  7a74ca095291672fedb99619674166cc  gcc/testsuite/g++.dg/ipa/pr85421.C
*************** b829196dc637277366c74ac9ece4c7c6  gcc/te
*** 25552,25558 ****
  07cf84b805b10187e5cb74fd1976a44c  gcc/testsuite/g++.dg/lookup/crash6.C
  ab5c5a242a635b12bd7f567d048700f4  gcc/testsuite/g++.dg/lookup/crash7.C
  8702e9a4573ea9d19da851427038afe8  gcc/testsuite/g++.dg/lookup/crash8.C
! 66170b2fcd25cd3bc4c54c5fda33f2bc  gcc/testsuite/g++.dg/lookup/decl1.C
  d64551040d13bf36f94a380b6b298ea5  gcc/testsuite/g++.dg/lookup/decl2.C
  d9678387006e999bc9d29de93e894ef7  gcc/testsuite/g++.dg/lookup/delete1.C
  86271224c38de31ea55c228d8c440211  gcc/testsuite/g++.dg/lookup/disamb1.C
--- 32937,32943 ----
  07cf84b805b10187e5cb74fd1976a44c  gcc/testsuite/g++.dg/lookup/crash6.C
  ab5c5a242a635b12bd7f567d048700f4  gcc/testsuite/g++.dg/lookup/crash7.C
  8702e9a4573ea9d19da851427038afe8  gcc/testsuite/g++.dg/lookup/crash8.C
! 2ca6d89eda59c2d0072870e02c8374b8  gcc/testsuite/g++.dg/lookup/decl1.C
  d64551040d13bf36f94a380b6b298ea5  gcc/testsuite/g++.dg/lookup/decl2.C
  d9678387006e999bc9d29de93e894ef7  gcc/testsuite/g++.dg/lookup/delete1.C
  86271224c38de31ea55c228d8c440211  gcc/testsuite/g++.dg/lookup/disamb1.C
*************** fa4085de6910c10ab0b36d78605a13ba  gcc/te
*** 25565,25571 ****
  4a5841e7ab7f50a4eb3ea0d8bd6209da  gcc/testsuite/g++.dg/lookup/extern-c-hidden.C
  6d86e0ca8859d2d26e87c6cd14472cd7  gcc/testsuite/g++.dg/lookup/extern-c-redecl.C
  42649607e256c4617aa495101b2c5d8c  gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
! 5625a0300bd4231d19c3998fc06661ba  gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
  e11a3ab6dd51269a647930526c6c6eeb  gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
  a1cbc0febcffce8e0f164e0feb720ea6  gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
  16a3850e9d48d6307623ac0730522dd5  gcc/testsuite/g++.dg/lookup/extern-c-redecl6.C
--- 32950,32956 ----
  4a5841e7ab7f50a4eb3ea0d8bd6209da  gcc/testsuite/g++.dg/lookup/extern-c-hidden.C
  6d86e0ca8859d2d26e87c6cd14472cd7  gcc/testsuite/g++.dg/lookup/extern-c-redecl.C
  42649607e256c4617aa495101b2c5d8c  gcc/testsuite/g++.dg/lookup/extern-c-redecl2.C
! 183ea73dbd9c84361be2ad1b2fd2203e  gcc/testsuite/g++.dg/lookup/extern-c-redecl3.C
  e11a3ab6dd51269a647930526c6c6eeb  gcc/testsuite/g++.dg/lookup/extern-c-redecl4.C
  a1cbc0febcffce8e0f164e0feb720ea6  gcc/testsuite/g++.dg/lookup/extern-c-redecl5.C
  16a3850e9d48d6307623ac0730522dd5  gcc/testsuite/g++.dg/lookup/extern-c-redecl6.C
*************** b4c9a3125082aac3aa6b866492a89640  gcc/te
*** 25635,25640 ****
--- 33020,33026 ----
  13b993a64fc2cc91de616884657a007a  gcc/testsuite/g++.dg/lookup/koenig13.C
  6f6f54957497ff01c410e425ceb5eb0a  gcc/testsuite/g++.dg/lookup/koenig14.C
  c10e651a50b7b681144be5c6638dd98c  gcc/testsuite/g++.dg/lookup/koenig15.C
+ 48b0b97c8d7394c97480e31d456c7aa4  gcc/testsuite/g++.dg/lookup/koenig16.C
  c44c726de3c9ebad9efc6f0268a223d3  gcc/testsuite/g++.dg/lookup/koenig2.C
  0efd4ef624e1a631dad2972522c30301  gcc/testsuite/g++.dg/lookup/koenig3.C
  634eca78a66aff86cb1d96384411430c  gcc/testsuite/g++.dg/lookup/koenig4.C
*************** a2b014e2e43329bb9803e683981e2a7c  gcc/te
*** 25702,25708 ****
  a1ec3c39e5a1beac0e1f9dbbc1635692  gcc/testsuite/g++.dg/lookup/operator-5a.C
  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
--- 33088,33096 ----
  a1ec3c39e5a1beac0e1f9dbbc1635692  gcc/testsuite/g++.dg/lookup/operator-5a.C
  f5603b028cb5e4f040fc3af7776ea00e  gcc/testsuite/g++.dg/lookup/operator-6.C
  60fb08261559503592bcae8f4f347885  gcc/testsuite/g++.dg/lookup/operator-7.C
! 39473539be73f1fec8277d1351308d6a  gcc/testsuite/g++.dg/lookup/operator-8.C
! d4cc68c3b85ac22cfde7bacbae0bd6ce  gcc/testsuite/g++.dg/lookup/operator-8a.C
! 41d2e17cc64d9181a14fce3cac8d35bd  gcc/testsuite/g++.dg/lookup/operator-9.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
*************** b661e2becb05be3da0f4060a56b98297  gcc/te
*** 25796,25802 ****
  566f22665e5dbaacccc9bab0af697314  gcc/testsuite/g++.dg/lookup/using14.C
  dc21e16250c98c89c5aa0d520799c564  gcc/testsuite/g++.dg/lookup/using15.C
  836c6a7c8df87ee0b5d5628bce3fe8a2  gcc/testsuite/g++.dg/lookup/using16.C
! 32cf4fc89f78aea3f873e97983a9112a  gcc/testsuite/g++.dg/lookup/using17.C
  0e7bcfa3b04037051371f537fde080d3  gcc/testsuite/g++.dg/lookup/using18.C
  2f7856e44d88c2a8a051c1b70aff3f85  gcc/testsuite/g++.dg/lookup/using19.C
  875d05eca7e2955ac6c81c54fb2fcf2b  gcc/testsuite/g++.dg/lookup/using2.C
--- 33184,33190 ----
  566f22665e5dbaacccc9bab0af697314  gcc/testsuite/g++.dg/lookup/using14.C
  dc21e16250c98c89c5aa0d520799c564  gcc/testsuite/g++.dg/lookup/using15.C
  836c6a7c8df87ee0b5d5628bce3fe8a2  gcc/testsuite/g++.dg/lookup/using16.C
! d5594e47981033b6490c1f899b223af5  gcc/testsuite/g++.dg/lookup/using17.C
  0e7bcfa3b04037051371f537fde080d3  gcc/testsuite/g++.dg/lookup/using18.C
  2f7856e44d88c2a8a051c1b70aff3f85  gcc/testsuite/g++.dg/lookup/using19.C
  875d05eca7e2955ac6c81c54fb2fcf2b  gcc/testsuite/g++.dg/lookup/using2.C
*************** c6f32b33e84f3bfb06660b7dee175d23  gcc/te
*** 25948,25954 ****
  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
--- 33336,33342 ----
  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
! eaa551f806cf1d91881142bfabeb3a5f  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
*************** fd3170a6b712de5185af83d1df9fb44a  gcc/te
*** 26002,26008 ****
  18da6dd3f93c37878dfc6a5eaf4713d2  gcc/testsuite/g++.dg/lto/devirt-1_0.C
  f068a0a21819c4fcf03c47f1879ed773  gcc/testsuite/g++.dg/lto/devirt-22_0.C
  05966980a82349ba2c12b77f3c7baf2f  gcc/testsuite/g++.dg/lto/devirt-23_0.C
! 53a8cda3a89cdc358feed5c9c3e260ec  gcc/testsuite/g++.dg/lto/devirt-2_0.C
  8c8091def8f505d68972aadcc44857e7  gcc/testsuite/g++.dg/lto/devirt-30_0.C
  ca71ca973996440ab9695e2742050c65  gcc/testsuite/g++.dg/lto/devirt-34_0.C
  bfd98e8d03e6586d60097e11287306c0  gcc/testsuite/g++.dg/lto/devirt-3_0.C
--- 33390,33396 ----
  18da6dd3f93c37878dfc6a5eaf4713d2  gcc/testsuite/g++.dg/lto/devirt-1_0.C
  f068a0a21819c4fcf03c47f1879ed773  gcc/testsuite/g++.dg/lto/devirt-22_0.C
  05966980a82349ba2c12b77f3c7baf2f  gcc/testsuite/g++.dg/lto/devirt-23_0.C
! d4f45323ad37e08dc16a18ef67d4e3ef  gcc/testsuite/g++.dg/lto/devirt-2_0.C
  8c8091def8f505d68972aadcc44857e7  gcc/testsuite/g++.dg/lto/devirt-30_0.C
  ca71ca973996440ab9695e2742050c65  gcc/testsuite/g++.dg/lto/devirt-34_0.C
  bfd98e8d03e6586d60097e11287306c0  gcc/testsuite/g++.dg/lto/devirt-3_0.C
*************** a44566d13ced1a79770276fc437e80d4  gcc/te
*** 26012,26018 ****
  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
--- 33400,33406 ----
  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
! 2531a9d07bb1aca8fad3df3a458ca66d  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
*************** b4dd44f973b53dae3faddbc3dd5bd634  gcc/te
*** 26029,26037 ****
  366c09064796fa26fbf614a9a0354d57  gcc/testsuite/g++.dg/lto/odr-7_1.C
  cac1beb5973f2ae7f413286aea273726  gcc/testsuite/g++.dg/lto/odr-8_0.C
  06e1b3ad0dd33edf678d2cd0d58c62f0  gcc/testsuite/g++.dg/lto/odr-8_1.C
! 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
--- 33417,33426 ----
  366c09064796fa26fbf614a9a0354d57  gcc/testsuite/g++.dg/lto/odr-7_1.C
  cac1beb5973f2ae7f413286aea273726  gcc/testsuite/g++.dg/lto/odr-8_0.C
  06e1b3ad0dd33edf678d2cd0d58c62f0  gcc/testsuite/g++.dg/lto/odr-8_1.C
! c5c8cccc47d1c38c5fcaf0b5019436c6  gcc/testsuite/g++.dg/lto/pr101396_0.C
! f009ccdcd68a9165d7d85f0d1a54ceb1  gcc/testsuite/g++.dg/lto/pr101396_1.C
  57e4a1572912531a0ef7ae5e66a36910  gcc/testsuite/g++.dg/lto/pr105399_0.C
+ cb526e2be6cc4214625ecb19179215f0  gcc/testsuite/g++.dg/lto/pr106409_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
*************** f1d9eed0025353353019a54838c87ed9  gcc/te
*** 26040,26049 ****
  56055cfb3b55c9e36f0d7e5af4adee7f  gcc/testsuite/g++.dg/lto/pr114790_0.C
  944a89dbdddf4ca4f396efb802bbd896  gcc/testsuite/g++.dg/lto/pr114790_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
--- 33429,33445 ----
  56055cfb3b55c9e36f0d7e5af4adee7f  gcc/testsuite/g++.dg/lto/pr114790_0.C
  944a89dbdddf4ca4f396efb802bbd896  gcc/testsuite/g++.dg/lto/pr114790_1.C
  09299bd83d910caa117e38cf3391ebd9  gcc/testsuite/g++.dg/lto/pr118785_0.C
! 0bf8e2e773617db748eeab48c9570419  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
+ fca1ecf794ece1959ac2707634e0c851  gcc/testsuite/g++.dg/lto/pr121831_0.C
+ 1e3973e8017bb39e0770b6c9334d9d09  gcc/testsuite/g++.dg/lto/pr121831_1.C
+ d15d49ffd84e37cdcbb1e23564c8c44e  gcc/testsuite/g++.dg/lto/pr121935_0.C
+ 33f0830281538872a0dd25b4e22f1759  gcc/testsuite/g++.dg/lto/pr122905.h
+ da4bb7bd422fbc928dca8b82012b7265  gcc/testsuite/g++.dg/lto/pr122905_0.C
+ 7be91aa845a7810b3947d606a1ffa169  gcc/testsuite/g++.dg/lto/pr122905_1.C
+ c1520ffb1e8996e77b2da492ecc42175  gcc/testsuite/g++.dg/lto/pr123376_0.C
  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
*************** cbee807af28f014c203c54ab80ff50a2  gcc/te
*** 26086,26092 ****
  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
--- 33482,33488 ----
  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
! d83b76394d1651189b5ec0a02fe0bd15  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
*************** bae369911e6ac5e7d7c91ba06aad7131  gcc/te
*** 26122,26128 ****
  4e5a7e315e05c001411d02f923487610  gcc/testsuite/g++.dg/lto/pr69077_1.C
  3ef5a78e6e9355444366c4180cd72d51  gcc/testsuite/g++.dg/lto/pr69133_0.C
  ef5a2536eb458f4c1bb26650ac8cf4bc  gcc/testsuite/g++.dg/lto/pr69133_1.C
! db27e1724c0e880da2bfd461b9f5fb91  gcc/testsuite/g++.dg/lto/pr69137_0.C
  0b1ba7de3018f084d19987c31bbb47e4  gcc/testsuite/g++.dg/lto/pr69589_0.C
  028ec5371a2f90aff6959986ad96b4a2  gcc/testsuite/g++.dg/lto/pr69589_1.C
  05cf05186c134f22e9638fd8e1d67123  gcc/testsuite/g++.dg/lto/pr70029_0.C
--- 33518,33524 ----
  4e5a7e315e05c001411d02f923487610  gcc/testsuite/g++.dg/lto/pr69077_1.C
  3ef5a78e6e9355444366c4180cd72d51  gcc/testsuite/g++.dg/lto/pr69133_0.C
  ef5a2536eb458f4c1bb26650ac8cf4bc  gcc/testsuite/g++.dg/lto/pr69133_1.C
! 013ef48cc8ccc037c115a521ce10a592  gcc/testsuite/g++.dg/lto/pr69137_0.C
  0b1ba7de3018f084d19987c31bbb47e4  gcc/testsuite/g++.dg/lto/pr69589_0.C
  028ec5371a2f90aff6959986ad96b4a2  gcc/testsuite/g++.dg/lto/pr69589_1.C
  05cf05186c134f22e9638fd8e1d67123  gcc/testsuite/g++.dg/lto/pr70029_0.C
*************** d92f918a28c68fc934d26fc7ceb822b5  gcc/te
*** 26185,26192 ****
  b8735311421a9557b475c780e1712295  gcc/testsuite/g++.dg/lto/pr96690_0.C
  1fa0bf497eddaf27bc8b579ea2b690fc  gcc/testsuite/g++.dg/lto/pr97565_0.C
  540253034f25055f8bf0879bf3a5aff5  gcc/testsuite/g++.dg/lto/pr97565_1.C
  6232508298dd20a759cf64fffbca9f5e  gcc/testsuite/g++.dg/lto/v1-plugin-api-not-supported_0.C
! dbe30d4af4bd2caeabf4784c3ef0ca9d  gcc/testsuite/g++.dg/missing-return.C
  0611288c84e3f846cb789e1b0d0e7706  gcc/testsuite/g++.dg/missing-symbol-2.C
  5ea15da0c6d0bfcf59702e2fe7b87c1f  gcc/testsuite/g++.dg/modules/100616_a.H
  944c3e30374eb421d84a8c5426b2e660  gcc/testsuite/g++.dg/modules/100616_b.C
--- 33581,33589 ----
  b8735311421a9557b475c780e1712295  gcc/testsuite/g++.dg/lto/pr96690_0.C
  1fa0bf497eddaf27bc8b579ea2b690fc  gcc/testsuite/g++.dg/lto/pr97565_0.C
  540253034f25055f8bf0879bf3a5aff5  gcc/testsuite/g++.dg/lto/pr97565_1.C
+ 43e7f2a57f6e1ba2f823cf126ac04596  gcc/testsuite/g++.dg/lto/toplevel_asm-0_0.C
  6232508298dd20a759cf64fffbca9f5e  gcc/testsuite/g++.dg/lto/v1-plugin-api-not-supported_0.C
! 3147f7d614489a0acd92a11c7c1fb038  gcc/testsuite/g++.dg/missing-return.C
  0611288c84e3f846cb789e1b0d0e7706  gcc/testsuite/g++.dg/missing-symbol-2.C
  5ea15da0c6d0bfcf59702e2fe7b87c1f  gcc/testsuite/g++.dg/modules/100616_a.H
  944c3e30374eb421d84a8c5426b2e660  gcc/testsuite/g++.dg/modules/100616_b.C
*************** cb6fd3c7fff8631ed4460da9de6e631e  gcc/te
*** 26197,26202 ****
--- 33594,33605 ----
  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
+ d27e4ee4f5f5e0db3eac539e5050b624  gcc/testsuite/g++.dg/modules/adl-10_a.C
+ d975bcfcc66f10d16ed8c046fec4ba04  gcc/testsuite/g++.dg/modules/adl-10_b.C
+ 314ee1208d31d73f6b8581612ceea903  gcc/testsuite/g++.dg/modules/adl-11_a.C
+ d5e6364be38f2a4bd3ffc35aed9b8edd  gcc/testsuite/g++.dg/modules/adl-11_b.C
+ 098dcbc5ef632f9258da5c6fdbafb2ff  gcc/testsuite/g++.dg/modules/adl-12_a.C
+ 3deaf8eb226b5b7cd4060737c498ff45  gcc/testsuite/g++.dg/modules/adl-12_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
*************** ecc4cdff1fc19f2bbddbccb4517d4d32  gcc/te
*** 26206,26217 ****
  bd66ca585f19d4134a1459d928b36ae9  gcc/testsuite/g++.dg/modules/adl-3_a.C
  a259a9b00d1160c845c55e9291b4a06b  gcc/testsuite/g++.dg/modules/adl-3_b.C
  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
--- 33609,33631 ----
  bd66ca585f19d4134a1459d928b36ae9  gcc/testsuite/g++.dg/modules/adl-3_a.C
  a259a9b00d1160c845c55e9291b4a06b  gcc/testsuite/g++.dg/modules/adl-3_b.C
  c6bae9ebe0d151a4e90da3eb0190d6c9  gcc/testsuite/g++.dg/modules/adl-3_c.C
! aedec6d4e585dfda57101ec8d0bac124  gcc/testsuite/g++.dg/modules/adl-4_a.C
! 5d6cbcdb16b06c373592fdc20bd6eed0  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
+ 332892b300f5ceafd6a3c0925599cbb1  gcc/testsuite/g++.dg/modules/adl-6_a.C
+ 00cf2ca1841d6e275fb44f7df8abe87f  gcc/testsuite/g++.dg/modules/adl-6_b.C
+ 0d1c6740fcd20fffbdda3e976b01c776  gcc/testsuite/g++.dg/modules/adl-6_c.C
+ fde6c69585d7eb0d4540c5d141d78c77  gcc/testsuite/g++.dg/modules/adl-7_a.C
+ b6b774c81026e561333139bd2e3910dd  gcc/testsuite/g++.dg/modules/adl-7_b.C
+ 257d5b3be2d2c88feff4c4ef30bb15a1  gcc/testsuite/g++.dg/modules/adl-7_c.C
+ e588c4e598e7a1556ab3d97d4ba90415  gcc/testsuite/g++.dg/modules/adl-8_a.C
+ a952eb40b8eb5d3d2bc6958dd20e6a7e  gcc/testsuite/g++.dg/modules/adl-8_b.C
+ 74eabe3d84bfc85e8a3022d962ab472f  gcc/testsuite/g++.dg/modules/adl-8_c.C
+ 725257e4c633b418a4001c4f04f56dd0  gcc/testsuite/g++.dg/modules/adl-9_a.C
+ 293d98a5ee782b2bde4d55024060b005  gcc/testsuite/g++.dg/modules/adl-9_b.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
*************** ff6388df65ce7040fcb3fed7c265c6b3  gcc/te
*** 26247,26253 ****
  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
--- 33661,33667 ----
  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
! 40c5192e3a088764276f7089f9bd3b6a  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
*************** b792de1e3ae7c85a9e3e74862c4efdaf  gcc/te
*** 26256,26264 ****
  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
  3b264755fa54e09c174088a50027eb56  gcc/testsuite/g++.dg/modules/auto-2.h
  d479e8fed74f485f9b8e9b4816402569  gcc/testsuite/g++.dg/modules/auto-2_a.H
  9e4842387b313ba5aa98f2d5cc9a3592  gcc/testsuite/g++.dg/modules/auto-2_b.C
--- 33670,33682 ----
  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
+ ecd6c3a264f38780aaccc0d6aa523f56  gcc/testsuite/g++.dg/modules/attrib-4_a.C
+ 0cf3cad1e66043cd2480d39a3d01277f  gcc/testsuite/g++.dg/modules/attrib-4_b.C
+ 7abf5ffc0cac815ea0bffa1a3b478856  gcc/testsuite/g++.dg/modules/attrib-5_a.C
+ 4fe9d03ea9dff9ed0a2c7de2790525ac  gcc/testsuite/g++.dg/modules/attrib-5_b.C
  81c0c5e828fc012cafc9fa3658ffa887  gcc/testsuite/g++.dg/modules/auto-1.h
! 663d15531836052d0d8d248d77c1d985  gcc/testsuite/g++.dg/modules/auto-1_a.H
! fc7a9d18c3b934f3bab09c32f19f3b8d  gcc/testsuite/g++.dg/modules/auto-1_b.C
  3b264755fa54e09c174088a50027eb56  gcc/testsuite/g++.dg/modules/auto-2.h
  d479e8fed74f485f9b8e9b4816402569  gcc/testsuite/g++.dg/modules/auto-2_a.H
  9e4842387b313ba5aa98f2d5cc9a3592  gcc/testsuite/g++.dg/modules/auto-2_b.C
*************** a8636939c5d030916bbdc239d5e9e9a3  gcc/te
*** 26272,26277 ****
--- 33690,33700 ----
  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
+ fc4953758f61818ace23b9509f84bae2  gcc/testsuite/g++.dg/modules/auto-7.h
+ b5098d48df02f895f0e578a0a6ecde73  gcc/testsuite/g++.dg/modules/auto-7_a.H
+ 8df4b11a8e283992ecbb2598a5d92ce6  gcc/testsuite/g++.dg/modules/auto-7_b.C
+ 9a7f1ce87583e6e392c76f4f6b195369  gcc/testsuite/g++.dg/modules/auto-8_a.H
+ 572d615e2c38b83d9a12eb7f97ed3dd6  gcc/testsuite/g++.dg/modules/auto-8_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
*************** d04ea5ff4edaac312d2301e012cfc77c  gcc/te
*** 26294,26305 ****
--- 33717,33733 ----
  203934cacd5033145b085ef1a55f02ab  gcc/testsuite/g++.dg/modules/block-decl-3_a.C
  88b54e881629545fb6ed4f4df979f36d  gcc/testsuite/g++.dg/modules/block-decl-3_b.C
  1f9eb2ee99d02aff4c71b5fe07c717f2  gcc/testsuite/g++.dg/modules/block-decl-3_c.C
+ 87fc2f30d102761c8b43f54f10356ee3  gcc/testsuite/g++.dg/modules/block-decl-4_a.C
+ 0277a052b7bce7091bfbc30911065211  gcc/testsuite/g++.dg/modules/block-decl-4_b.C
+ 5ad53765e02751e3d1cdc6e15f6d9e84  gcc/testsuite/g++.dg/modules/block-decl-4_c.C
  9f96f92847a3bf5bed4ca21d22dc7706  gcc/testsuite/g++.dg/modules/bool-1.h
  71cd96ea0f9ca336ec4f50ef4d6949a7  gcc/testsuite/g++.dg/modules/bool-1_a.H
  c93b823398a766831d77299480881f8c  gcc/testsuite/g++.dg/modules/bool-1_b.H
  c6cd935c87d3011588860690f34dcffa  gcc/testsuite/g++.dg/modules/bool-1_c.C
  67226a0f8fb18f2758255a7e268f26e1  gcc/testsuite/g++.dg/modules/bug-1_a.C
  88cddc44441b25d3b40a26a97bbb9459  gcc/testsuite/g++.dg/modules/bug-1_b.C
+ 98145ded42c55e56ff47a40bc69c8e15  gcc/testsuite/g++.dg/modules/builtin-10_a.C
+ fe8e60bc1bfdf56a0d11c2d420f2bcbf  gcc/testsuite/g++.dg/modules/builtin-10_b.C
  55f76fb62baa0263bb591fd5ac620cfb  gcc/testsuite/g++.dg/modules/builtin-1_a.C
  236c48837d220069251a3abe2784e304  gcc/testsuite/g++.dg/modules/builtin-1_b.C
  140e231775a8971dedf71fa2312c672e  gcc/testsuite/g++.dg/modules/builtin-2.C
*************** d30b2aaa5892cbc8534763261c64ebf0  gcc/te
*** 26314,26319 ****
--- 33742,33749 ----
  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
+ 7371834a262ba84ca7eba4a2c371f433  gcc/testsuite/g++.dg/modules/builtin-9_a.C
+ 59bff66079e0d6ebb6c006a6e3f52489  gcc/testsuite/g++.dg/modules/builtin-9_b.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
*************** a5dea2e74f2c8c8639f84dc0e84112a1  gcc/te
*** 26327,26336 ****
  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
--- 33757,33773 ----
  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
! 6a38e3629d2e571902a3d1d7d54905e4  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
+ 7e67b5528c5e59e88bd6a3254c0f232a  gcc/testsuite/g++.dg/modules/class-11_a.H
+ 3de8f8b02a4295fb5ddf207cc3bdf8d8  gcc/testsuite/g++.dg/modules/class-11_b.C
+ 435674ba0af1e1205b05738b90105781  gcc/testsuite/g++.dg/modules/class-12_a.C
+ da6bdd6dbd466e2daa6dfec12ddb380c  gcc/testsuite/g++.dg/modules/class-12_b.C
+ ec7e1f1b923378786413dd69e4c7d804  gcc/testsuite/g++.dg/modules/class-12_c.C
+ ff7ae950957b6e0673304a67c3be9dfc  gcc/testsuite/g++.dg/modules/class-13_a.C
+ 05c1de8b0f2fe206eef546cf5e946727  gcc/testsuite/g++.dg/modules/class-13_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
*** 26352,26358 ****
  28c5aa4a4d4042fde977d983f2877a82  gcc/testsuite/g++.dg/modules/class-7_b.C
  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
--- 33789,33795 ----
  28c5aa4a4d4042fde977d983f2877a82  gcc/testsuite/g++.dg/modules/class-7_b.C
  928857b618d675c87816a776ca3df35b  gcc/testsuite/g++.dg/modules/class-7_c.C
  7b6003994dfc085b0c0b40260c5903bf  gcc/testsuite/g++.dg/modules/class-8_a.C
! dcebf8cd10d2bf9032d37f10467e0626  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
*************** f4151476d383dfa58ec57d84af229960  gcc/te
*** 26364,26373 ****
--- 33801,33815 ----
  43bdc6e1ffd552c18c3f46ba0d9b6353  gcc/testsuite/g++.dg/modules/clone-3_b.C
  1dbe55cb66e8ff8caec75c9be7f2c9e3  gcc/testsuite/g++.dg/modules/clone-4_a.C
  2dcd18d0e8acb35a37c7d8189b2a1450  gcc/testsuite/g++.dg/modules/clone-4_b.C
+ cd6c431aae535838aca8d9e035cb7081  gcc/testsuite/g++.dg/modules/clone-5_a.C
+ d673b7bf33a6d7efdbab448420401ec5  gcc/testsuite/g++.dg/modules/clone-5_b.C
+ 7394ff0e66446a47ebd607a85d216c6e  gcc/testsuite/g++.dg/modules/compile-std1.C
  a7ee3a8d76bc139c4cf52d3492a2aff4  gcc/testsuite/g++.dg/modules/concept-10_a.H
  2006efa004cac463749325d18b100fdd  gcc/testsuite/g++.dg/modules/concept-10_b.C
  c2514fb24a7f14f1f1edfc9217a858f2  gcc/testsuite/g++.dg/modules/concept-11_a.H
  191fb7c05c060bb53585c0c88c5bc056  gcc/testsuite/g++.dg/modules/concept-11_b.C
+ fadd6aa13f0173dad29bb90adc5338e0  gcc/testsuite/g++.dg/modules/concept-12_a.C
+ d84e92fe8fd291fd530a78ba8b49f463  gcc/testsuite/g++.dg/modules/concept-12_b.C
  b82e625ae44f653d9caf5a917ed2565a  gcc/testsuite/g++.dg/modules/concept-1_a.C
  2ae2870ddbfb381e60200518e1e9b824  gcc/testsuite/g++.dg/modules/concept-1_b.C
  6bc1b6fc0acb09251969b0d3737c9f40  gcc/testsuite/g++.dg/modules/concept-2_a.C
*************** f53bcb0c9c85ef8761e7817041703172  gcc/te
*** 26389,26416 ****
  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
--- 33831,33849 ----
  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
+ 57dcb38805adb3962dec2f1d78c4f0b5  gcc/testsuite/g++.dg/modules/consteval-1_a.C
+ 0ba406bfc719ea3347d51d2d2ee10e88  gcc/testsuite/g++.dg/modules/consteval-1_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
  097ffafa56bf8b6bcbb8f85c58b0e187  gcc/testsuite/g++.dg/modules/convop-1_a.C
  02940f3eec05ab2c1e44ea29d72255b6  gcc/testsuite/g++.dg/modules/convop-1_b.C
! f9fb2c7fc295df949a65ad17e27cbfe7  gcc/testsuite/g++.dg/modules/convop-2_a.H
! f9153a236ec996492630837403e73485  gcc/testsuite/g++.dg/modules/convop-2_b.C
! 9ae397df67c8580dd9b4d907c754bb56  gcc/testsuite/g++.dg/modules/coro-1_a.C
! 00a745a5dd6dcad93cf1681fb52cb56b  gcc/testsuite/g++.dg/modules/coro-1_b.C
! a12e7250787d90ecbf8a074e29830748  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
*************** d35c4ba42a40c90525ba6fdc0e2639be  gcc/te
*** 26422,26432 ****
  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
--- 33855,33867 ----
  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
+ eca303993798718fc515fd54bb62d96e  gcc/testsuite/g++.dg/modules/cpp-21.C
+ 7b2d478b271e3d3ac206d81d2418ad36  gcc/testsuite/g++.dg/modules/cpp-22.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
! 88460606494e7464c4e0362e0a5e17b6  gcc/testsuite/g++.dg/modules/cpp-3.C
! 3e74f81dc57de6cc2a7ef26260b1940e  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
*************** a016afd83ff8628a76ca1feb679ba84c  gcc/te
*** 26461,26466 ****
--- 33896,33903 ----
  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
+ bba287daf0d821b16709aff8dae96606  gcc/testsuite/g++.dg/modules/default-arg-4_a.C
+ 11533fcc305194804e434d9c9ba835fa  gcc/testsuite/g++.dg/modules/default-arg-4_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/te
*** 26469,26474 ****
--- 33906,33913 ----
  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
+ 513d518822a90ec26a35dc6619af4345  gcc/testsuite/g++.dg/modules/dep-5.C
+ 44427c1d95e444fb79e9b02a389635ad  gcc/testsuite/g++.dg/modules/dep-6.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
*************** a76835e47b764922b013544f6f8353a4  gcc/te
*** 26534,26539 ****
--- 33973,33980 ----
  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
+ f5711d7f1ac9b299c366c7109dee2daa  gcc/testsuite/g++.dg/modules/enum-15_a.C
+ 44a39295b20b46d087542286a3aaf332  gcc/testsuite/g++.dg/modules/enum-15_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
*************** c46255bb51de7ad96b62c94e9c472cb4  gcc/te
*** 26579,26584 ****
--- 34020,34026 ----
  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
+ d629c3101bb6dd6c09df3fcd36e2121a  gcc/testsuite/g++.dg/modules/export-7.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
*************** aea84e1ee79a28bf76003883aae845d4  gcc/te
*** 26600,26605 ****
--- 34042,34054 ----
  2630f4c41b5b8de69a1173e8e5098ec9  gcc/testsuite/g++.dg/modules/freeze-1_b.C
  b1593a47c024d179302751243a0ddf7e  gcc/testsuite/g++.dg/modules/freeze-1_c.C
  4b5838885d8482e6f45a3f476290e92f  gcc/testsuite/g++.dg/modules/freeze-1_d.C
+ d31a2e1fa6bae66ecd393c8e83384c1b  gcc/testsuite/g++.dg/modules/friend-10_a.C
+ ba983ce4c51c5220267205b32b9a3909  gcc/testsuite/g++.dg/modules/friend-10_b.C
+ 8de81f124e74f55feafdb57efba71418  gcc/testsuite/g++.dg/modules/friend-11_a.C
+ a71ad222ec453dfae941cc6a9d0495d6  gcc/testsuite/g++.dg/modules/friend-11_b.C
+ 95ac1711696c30b44bd143d707a63055  gcc/testsuite/g++.dg/modules/friend-12_a.C
+ 7207ee63d7d3c126dd8553f8489901a4  gcc/testsuite/g++.dg/modules/friend-12_b.C
+ b96b999afff648452f8c6ddbd790814b  gcc/testsuite/g++.dg/modules/friend-13.C
  8fcab2cff53b2d8a5b252819cfc97930  gcc/testsuite/g++.dg/modules/friend-1_a.C
  965df98a384b69dc039aa01146450993  gcc/testsuite/g++.dg/modules/friend-1_b.C
  7cf2445dd7db33a1920c890fa101e827  gcc/testsuite/g++.dg/modules/friend-1_c.C
*************** cacc2b46a47db294c8b68d4d9a2920ea  gcc/te
*** 26640,26646 ****
  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
--- 34089,34096 ----
  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
! 2efc48c188ec78c95b3dd7c2b3d3c796  gcc/testsuite/g++.dg/modules/gmf-5.C
! 0b586e3fe17d5adffa3588f46d3034d6  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
*************** c1a2a3390492a95192a3736b25423528  gcc/te
*** 26674,26679 ****
--- 34124,34138 ----
  8a574d4894596714f7d0497433a93ebe  gcc/testsuite/g++.dg/modules/imp-member-2_b.C
  7c358b73d07322ea12822262e4d376a7  gcc/testsuite/g++.dg/modules/imp-member-2_c.C
  09b2e78c7082c3c6f91d5c66b21e9f2b  gcc/testsuite/g++.dg/modules/imp-member-3.H
+ 31c69886ec946d62cf0667dbcbdc7e4f  gcc/testsuite/g++.dg/modules/imp-member-4_a.C
+ f27466c6fc70ce46e080f3b2c7fb7050  gcc/testsuite/g++.dg/modules/imp-member-4_b.C
+ a191f79da591f001f65a3282e2d9da6e  gcc/testsuite/g++.dg/modules/imp-member-4_c.C
+ cc4377d64aa450d22e3845ae90b5bca9  gcc/testsuite/g++.dg/modules/imp-member-5_a.C
+ e3449d3f559db7103b7862066f6b2a5a  gcc/testsuite/g++.dg/modules/imp-member-5_b.C
+ fca6376f7a6015f262933d16975d3636  gcc/testsuite/g++.dg/modules/imp-member-5_c.C
+ 1ce9665694491544677caf7fb120522d  gcc/testsuite/g++.dg/modules/imp-member-6_a.C
+ 29565c161ea129a1230997693b9d092c  gcc/testsuite/g++.dg/modules/imp-member-6_b.C
+ de7fd0ca25f91de1936a68b1f607fd30  gcc/testsuite/g++.dg/modules/imp-member-6_c.C
  1f7d51f903fe6c300810c1d8d856401e  gcc/testsuite/g++.dg/modules/import-1_a.C
  cd504ebaf4fc289e921acc9934ead55f  gcc/testsuite/g++.dg/modules/import-1_b.C
  7dc13fb6d933fb23dc0f7251fa928bde  gcc/testsuite/g++.dg/modules/import-1_c.C
*************** bf47d0291689c8a86ba720a7aebd052a  gcc/te
*** 26682,26687 ****
--- 34141,34149 ----
  b4d53c10532737d55c31b6daeea36cb7  gcc/testsuite/g++.dg/modules/import-1_f.C
  7cd03b6136521b0946018cd6213c0277  gcc/testsuite/g++.dg/modules/import-1_g.C
  750579c756e3c94a08cc23dcfda0b714  gcc/testsuite/g++.dg/modules/import-2.C
+ e774f3e5c1bf28f75ea3ebf9a9ae30ce  gcc/testsuite/g++.dg/modules/import-3_a.C
+ 3f2b89325965026e592898504f8b1f72  gcc/testsuite/g++.dg/modules/import-3_b.C
+ 1bf6d9c2a27f0a6ff2d1860eb895115b  gcc/testsuite/g++.dg/modules/import-3_c.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
*************** cde88381b648ca388094d436f6491fc7  gcc/te
*** 26729,26734 ****
--- 34191,34199 ----
  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
+ 8f21a1a7f9e362a7c3403fc90a74c4f8  gcc/testsuite/g++.dg/modules/inst-10_a.C
+ e64c8ed90a2f6519daa2c42a6b57c533  gcc/testsuite/g++.dg/modules/inst-10_b.C
+ 74fd6485aafe9b4d5d2a6b558e5a71b3  gcc/testsuite/g++.dg/modules/inst-10_c.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
*************** c8f6159c50d59c6586f5797b42391c86  gcc/te
*** 26739,26744 ****
--- 34204,34218 ----
  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
+ 60bae6f4a7bfe8ecf40c92bc84aa9a4f  gcc/testsuite/g++.dg/modules/inst-6_a.C
+ 78bafa91ce71486fc147f8fef051956f  gcc/testsuite/g++.dg/modules/inst-6_b.C
+ 45f2bcdae473c2a99d7a5de022749d34  gcc/testsuite/g++.dg/modules/inst-7_a.C
+ 2b141f9dc25a6cb3cfca4a8e6b99e23d  gcc/testsuite/g++.dg/modules/inst-7_b.C
+ f24575ef22ac086e405d3ce32b928661  gcc/testsuite/g++.dg/modules/inst-8_a.C
+ b148ff221b4dd52919ebbac1b2c00afe  gcc/testsuite/g++.dg/modules/inst-8_b.C
+ 4ea72c920009dcb25464df5070120efd  gcc/testsuite/g++.dg/modules/inst-8_c.C
+ 6a0fd9d1ffd718902b044037bf0d78ab  gcc/testsuite/g++.dg/modules/inst-9_a.C
+ 6476ed8647b39bbe987f20b848825254  gcc/testsuite/g++.dg/modules/inst-9_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/te
*** 26747,26765 ****
  c087af9321ac0e24731d2a4d1bb3e319  gcc/testsuite/g++.dg/modules/internal-13.C
  4fffea4cdfd477df735c06f198229d8f  gcc/testsuite/g++.dg/modules/internal-14_a.C
  10a79d90c63564fa8794a477cbcaed50  gcc/testsuite/g++.dg/modules/internal-14_b.C
! f3dc43a1a76c9644a2c2a98b1094e62a  gcc/testsuite/g++.dg/modules/internal-14_c.C
  c66d17d0fb2dc80371978510d0cc1f0f  gcc/testsuite/g++.dg/modules/internal-2_a.H
  21bb55995bb6fa8ed6a8fa69368f7f36  gcc/testsuite/g++.dg/modules/internal-2_b.H
  ba3bc4f8f333742fb78f03db052c4ffa  gcc/testsuite/g++.dg/modules/internal-2_c.C
  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
--- 34221,34253 ----
  c087af9321ac0e24731d2a4d1bb3e319  gcc/testsuite/g++.dg/modules/internal-13.C
  4fffea4cdfd477df735c06f198229d8f  gcc/testsuite/g++.dg/modules/internal-14_a.C
  10a79d90c63564fa8794a477cbcaed50  gcc/testsuite/g++.dg/modules/internal-14_b.C
! 0863236aba9d92e0d01c941e4cf63d25  gcc/testsuite/g++.dg/modules/internal-14_c.C
! 2a172eac2717752bc776e5d72e639579  gcc/testsuite/g++.dg/modules/internal-15_a.C
! 8c3b4a86df0992edb91ffe5c31e3c519  gcc/testsuite/g++.dg/modules/internal-15_b.C
! 88ee381d96387e16394444459f265bfd  gcc/testsuite/g++.dg/modules/internal-16.C
! de8b65b21e105d140eb3a6820d4aff13  gcc/testsuite/g++.dg/modules/internal-17_a.C
! 95e8122b3b1c61455c26580773497b87  gcc/testsuite/g++.dg/modules/internal-17_b.C
! 8e050ce1f908224ad301706271ad39c4  gcc/testsuite/g++.dg/modules/internal-18.C
! eaa5a7feb828c2d301939fe4e5b02ace  gcc/testsuite/g++.dg/modules/internal-19_a.C
! 0557bb600ba22cb555a81389c8419285  gcc/testsuite/g++.dg/modules/internal-19_b.C
! 1d726f8fc6f656fa2df05b8381960af8  gcc/testsuite/g++.dg/modules/internal-20_a.C
! 005fa344ce8985913f2ea6b88d4140f9  gcc/testsuite/g++.dg/modules/internal-20_b.C
! e835dcc9b159c3af61d00fa588af0642  gcc/testsuite/g++.dg/modules/internal-20_c.C
! cf79da1e96d45e13dd6f225ceaef2fad  gcc/testsuite/g++.dg/modules/internal-21_a.C
! 3bc43da4a8308b7018a326a4f2801d13  gcc/testsuite/g++.dg/modules/internal-21_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
! 411ae1999412a83f2ccb9f09c471ade2  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
! 62baaa6bc1b66865125a4f994836e310  gcc/testsuite/g++.dg/modules/internal-8_a.C
! 9cfc1f33f36cf6745dbd7807b04863e0  gcc/testsuite/g++.dg/modules/internal-8_b.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/te
*** 26769,26774 ****
--- 34257,34271 ----
  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
+ 62e7f6f61022bc772dcc984ba06b0b3e  gcc/testsuite/g++.dg/modules/lambda-11.h
+ 8c9596d790271d8547290c1515a3350b  gcc/testsuite/g++.dg/modules/lambda-11_a.H
+ 967c2f48b085f1c18832266697fac4ee  gcc/testsuite/g++.dg/modules/lambda-11_b.C
+ 804382f5b6a9cda1fca29fc8024f66a4  gcc/testsuite/g++.dg/modules/lambda-12.h
+ f42f3f252e14bfc0ef3c1e93ea73a06d  gcc/testsuite/g++.dg/modules/lambda-12_a.H
+ 92f393f2dacc1d0ca3a6c8c35172d4a5  gcc/testsuite/g++.dg/modules/lambda-12_b.C
+ b71a8d6fad6407cf6bc8a5ce5b671942  gcc/testsuite/g++.dg/modules/lambda-13.h
+ b74a2e1e96f41ccb9dd0b18848d3fcae  gcc/testsuite/g++.dg/modules/lambda-13_a.H
+ 4ff9a9a90c54534503be44216ba03c64  gcc/testsuite/g++.dg/modules/lambda-13_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
*************** e3f1bd8fef51acc6ca737521f975ab1c  gcc/te
*** 26804,26809 ****
--- 34301,34308 ----
  f691889108c3ab41c26b216899719992  gcc/testsuite/g++.dg/modules/lang-3_a.C
  29a3330000780d86555efc7480e1ea5b  gcc/testsuite/g++.dg/modules/lang-3_b.C
  7a61baf64b6b2df1f68f1344f599ce44  gcc/testsuite/g++.dg/modules/lang-3_c.C
+ f028acee4ae7cfe2d00c7bbae3a12adb  gcc/testsuite/g++.dg/modules/lang-4_a.C
+ 85f6fdb774d151ded1f900d5b64a83c4  gcc/testsuite/g++.dg/modules/lang-4_b.C
  f9e6b80b1e66a7547173ff7f3f39a78a  gcc/testsuite/g++.dg/modules/late-ret-1.H
  c363febb29cf4d3eccc01979daac4c46  gcc/testsuite/g++.dg/modules/late-ret-2_a.H
  9f2ead4d0b90ea087689b20fd95f201f  gcc/testsuite/g++.dg/modules/late-ret-2_b.H
*************** ad4492ce734ab625ca31a8dcc2cfe939  gcc/te
*** 26813,26818 ****
--- 34312,34320 ----
  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
+ 540a7794ac65049e5e060f5f388c645b  gcc/testsuite/g++.dg/modules/late-ret-5.h
+ 9546e757881037efb96360ffd0010275  gcc/testsuite/g++.dg/modules/late-ret-5_a.H
+ d49297c2f37e3449a56153f151e162f3  gcc/testsuite/g++.dg/modules/late-ret-5_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
*************** d5075b90a1d0dfe23d60cb4ab1413d7b  gcc/te
*** 26909,26916 ****
  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
--- 34411,34420 ----
  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
! cf19adc811c3fdb28c1b0c8fba0b171a  gcc/testsuite/g++.dg/modules/lto-3_a.H
! 37f24b296238930966019d55d4e4fcfe  gcc/testsuite/g++.dg/modules/lto-3_b.C
! 0f59ad51956d4c99091da1599a8fa265  gcc/testsuite/g++.dg/modules/lto-4_a.C
! 67b868867a2767bc6da6fc527d8c89f5  gcc/testsuite/g++.dg/modules/lto-4_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
*************** e4b77c409215a0a9d2fc97a366631d1c  gcc/te
*** 26947,26952 ****
--- 34451,34458 ----
  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
+ 69eb2046c77aed38a011666931589d50  gcc/testsuite/g++.dg/modules/main-2.C
+ 10675fa232994b413c22bc953b10d556  gcc/testsuite/g++.dg/modules/main-3.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
*************** eea88cc62cf091daa90c9da3714651e9  gcc/te
*** 26995,27000 ****
--- 34501,34513 ----
  42f128106dcccfb827c0d63b8aa87a9b  gcc/testsuite/g++.dg/modules/merge-19_b.C
  c55f90e5ef6f7ab3992f6606da04c6d7  gcc/testsuite/g++.dg/modules/merge-1_a.C
  8dfdc3716d1dda6833ec359936a84a2c  gcc/testsuite/g++.dg/modules/merge-1_b.C
+ 58b4bbec16747150dd0024d73a591543  gcc/testsuite/g++.dg/modules/merge-20.h
+ 778fe9cb18c40b1afc49a8e5a2f0aef5  gcc/testsuite/g++.dg/modules/merge-20_a.H
+ 6f0d50489a391402d2cbd19055ca5d0a  gcc/testsuite/g++.dg/modules/merge-20_b.C
+ be8c261cfa813b26cb16b8b3aebaf9ec  gcc/testsuite/g++.dg/modules/merge-21_a.C
+ 7cd3f2e8de05b1dd669c3ff993d03b3a  gcc/testsuite/g++.dg/modules/merge-21_b.C
+ c7141313017295f3b98183a39be9dfd2  gcc/testsuite/g++.dg/modules/merge-21_c.C
+ a9756c1c5ac2dc00c4b157e7951cb465  gcc/testsuite/g++.dg/modules/merge-21_d.C
  4f1ab1a658f8fe8b82d453787cd70235  gcc/testsuite/g++.dg/modules/merge-2_a.H
  8cdb66c1a7c6fd5f699a54755e0262c3  gcc/testsuite/g++.dg/modules/merge-2_b.C
  bafe05354251f1f0df54dbb55d13354f  gcc/testsuite/g++.dg/modules/merge-3_a.H
*************** b1edad776f663405432e237b01562da9  gcc/te
*** 27019,27027 ****
  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
--- 34532,34540 ----
  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
! c0071e86f2256a84a36d91c76980a8bb  gcc/testsuite/g++.dg/modules/mod-decl-1.C
  2ab7e1970f6fdd4ecc60b34844bd2ce3  gcc/testsuite/g++.dg/modules/mod-decl-2_a.C
! be5eeeb154ea473699b2ad36025d37e5  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
*************** edf99b9cce0faf25cf9ad4ef1969818c  gcc/te
*** 27029,27034 ****
--- 34542,34548 ----
  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
+ 3c534a7a360248fbd1ed205a887dc49d  gcc/testsuite/g++.dg/modules/mod-decl-9.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
*************** b66a905fae26f7efc4eaf3f3c60a6b65  gcc/te
*** 27057,27071 ****
  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
! 9fc8de4ea84d52d9c619890b0581ed9e  gcc/testsuite/g++.dg/modules/namespace-1_c.C
  c95c31df178449622df4cc13fb8d490f  gcc/testsuite/g++.dg/modules/namespace-2_a.C
! 8a66c0b70a51ea5adc5bd9d77821246d  gcc/testsuite/g++.dg/modules/namespace-2_b.C
! ecd73f07c59c7479f5dd6eefeceeaf84  gcc/testsuite/g++.dg/modules/namespace-3_a.C
! 1d79204018988774f2737d60d38da3d0  gcc/testsuite/g++.dg/modules/namespace-3_b.C
  c9c28ac9e2974c410a59c8e8dcf70517  gcc/testsuite/g++.dg/modules/namespace-4_a.C
  309e15d16714b62c7df72adfedb0e0c1  gcc/testsuite/g++.dg/modules/namespace-4_b.C
  fa60a80639cb24311477303e0d98d2b7  gcc/testsuite/g++.dg/modules/namespace-4_c.C
--- 34571,34608 ----
  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
! ad33ab4d11aa0f19480ef8a7cc915c23  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
+ 522ea2d0697f7dd4d211f07fa012628f  gcc/testsuite/g++.dg/modules/namespace-10_a.C
+ c4e2bef9f271df6507d07f9534e10fc1  gcc/testsuite/g++.dg/modules/namespace-10_b.C
+ b970ff5435fa22b6f219b692f621bed8  gcc/testsuite/g++.dg/modules/namespace-10_c.C
+ 522ea2d0697f7dd4d211f07fa012628f  gcc/testsuite/g++.dg/modules/namespace-11_a.C
+ 8bd7c9bc6bc6420a27fcfa01da459409  gcc/testsuite/g++.dg/modules/namespace-11_b.C
+ 1a4722733f0faef247f75ca253527150  gcc/testsuite/g++.dg/modules/namespace-11_c.C
+ 16465126f101e83b3563394ad1efa4dc  gcc/testsuite/g++.dg/modules/namespace-12_a.C
+ 9b622a44d3f7299cd41ff2819e176ecd  gcc/testsuite/g++.dg/modules/namespace-12_b.C
+ f92c13ff85afb4a0161600875f67c936  gcc/testsuite/g++.dg/modules/namespace-13_a.C
+ 7e3d78ad1b1423daa748c69ce5c76acc  gcc/testsuite/g++.dg/modules/namespace-13_b.C
+ 6e877e7ac8cbedc8eae33e55ecd8e2f5  gcc/testsuite/g++.dg/modules/namespace-13_c.C
+ 254507f98bfffaecbdc1b0bf153f97af  gcc/testsuite/g++.dg/modules/namespace-14_a.C
+ 49c5b9733a2750cf56cc92934b796714  gcc/testsuite/g++.dg/modules/namespace-14_b.C
+ 80cafb329c9ed370e4f5bc57bf2fb820  gcc/testsuite/g++.dg/modules/namespace-14_c.C
+ 70c50f0547e248c3eace148df0ffe4d5  gcc/testsuite/g++.dg/modules/namespace-14_d.C
+ 7f12f718e48c2e857ea3368e196a30e3  gcc/testsuite/g++.dg/modules/namespace-15_a.C
+ b02e012e3fe6df1deadb2b6c08aee478  gcc/testsuite/g++.dg/modules/namespace-15_b.C
+ 9d938581c2f0bbacf98f05762e4ca2ec  gcc/testsuite/g++.dg/modules/namespace-16_a.C
+ a9638b26b6321d94457e9e43bed55221  gcc/testsuite/g++.dg/modules/namespace-16_b.C
+ 373b62f20b7106a4cb635969e59b28c7  gcc/testsuite/g++.dg/modules/namespace-16_c.C
+ e28683c6caacdc8a9428c0c5663e47f1  gcc/testsuite/g++.dg/modules/namespace-16_d.C
+ bc491f67c578360461f5270610e8475d  gcc/testsuite/g++.dg/modules/namespace-17_a.C
+ 8c70e4b3a6a0c5b83eaaaed0207b4dbe  gcc/testsuite/g++.dg/modules/namespace-17_b.C
+ e727afa8d683c4b5f7f126200709fbd3  gcc/testsuite/g++.dg/modules/namespace-18_a.C
+ a9deabe077b0dc1965ed48c9d5c86c68  gcc/testsuite/g++.dg/modules/namespace-18_b.C
  ebce3d8effe71472ad6b1910c0b435f6  gcc/testsuite/g++.dg/modules/namespace-1_a.C
  c34c17e18223f5c84607e68a5f2dd81a  gcc/testsuite/g++.dg/modules/namespace-1_b.C
! d35b80efe49eb34a9b0c6be1e97ef76a  gcc/testsuite/g++.dg/modules/namespace-1_c.C
  c95c31df178449622df4cc13fb8d490f  gcc/testsuite/g++.dg/modules/namespace-2_a.C
! 983e860a12a6b0dbd6bf88d3fdf8db36  gcc/testsuite/g++.dg/modules/namespace-2_b.C
  c9c28ac9e2974c410a59c8e8dcf70517  gcc/testsuite/g++.dg/modules/namespace-4_a.C
  309e15d16714b62c7df72adfedb0e0c1  gcc/testsuite/g++.dg/modules/namespace-4_b.C
  fa60a80639cb24311477303e0d98d2b7  gcc/testsuite/g++.dg/modules/namespace-4_c.C
*************** c7ee628b9bb8433e87d87a5ed98d0da6  gcc/te
*** 27076,27081 ****
--- 34613,34622 ----
  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
+ 40a947a17164c4f66d9cb7f3fb8121ef  gcc/testsuite/g++.dg/modules/namespace-8_a.C
+ 3807710fb21e17df0a770ff60750e70d  gcc/testsuite/g++.dg/modules/namespace-8_b.C
+ 1c90ba7b966bbeeaad94e2a5fe23742a  gcc/testsuite/g++.dg/modules/namespace-9_a.C
+ 696f96d984fd8e7028cb1ee43b30f765  gcc/testsuite/g++.dg/modules/namespace-9_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
*************** fce3f558aeb8001c53b2a58bdd35b90c  gcc/te
*** 27102,27107 ****
--- 34643,34652 ----
  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
+ f607f8896343cb10bfe1c533ab9b3f28  gcc/testsuite/g++.dg/modules/noexcept-5.h
+ 2a6066ee8de5da718d523238d43c0045  gcc/testsuite/g++.dg/modules/noexcept-5_a.C
+ 7df3f08ca2357d94302931ed7331bc7d  gcc/testsuite/g++.dg/modules/noexcept-5_b.C
+ 2a252bbd723530e61e33b6df1e1c2bfc  gcc/testsuite/g++.dg/modules/noexcept-5_c.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
*************** df0879669024f953e4247de3f790c925  gcc/te
*** 27130,27135 ****
--- 34675,34682 ----
  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
+ ba1e3e023c66579ea90cd696be9028a2  gcc/testsuite/g++.dg/modules/omp-4_a.C
+ fb7053defa2947d4e330cf1da3f8c573  gcc/testsuite/g++.dg/modules/omp-4_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
*************** e957d0bb77992ee1df76972e1b650438  gcc/te
*** 27157,27162 ****
--- 34704,34718 ----
  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
+ afab773c25b7dd1da9c63c46a8e56b96  gcc/testsuite/g++.dg/modules/part-10_a.C
+ 035af910866cb4d5ef467691a00390ef  gcc/testsuite/g++.dg/modules/part-10_b.C
+ 61c11bba6e9e0d2acb6c526bdf45a817  gcc/testsuite/g++.dg/modules/part-10_c.C
+ 45aaddfd6bcadefc6a897cad2f3c8bbb  gcc/testsuite/g++.dg/modules/part-10_d.C
+ 48a8472ca96b0f63e66d537146468c1b  gcc/testsuite/g++.dg/modules/part-11_a.C
+ 589ef0f7ed3e54007bef1bc3e4786e79  gcc/testsuite/g++.dg/modules/part-11_b.C
+ 0968ac1c13f417b9bf3cb86f09e51e4d  gcc/testsuite/g++.dg/modules/part-11_c.C
+ b214bb9855a87606d5686f0f7ac8c52b  gcc/testsuite/g++.dg/modules/part-11_d.C
+ 083aa9d1e97214e4158f7220127517ea  gcc/testsuite/g++.dg/modules/part-11_e.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
*************** d71ad1e42d5edd10bf65dd64c81a4107  gcc/te
*** 27261,27267 ****
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
  ce1fbbd73d685e48bf6b219484083996  gcc/testsuite/g++.dg/modules/pr106820_a.H
  d7c5aacc3100ff130d9b06f0b4d7b551  gcc/testsuite/g++.dg/modules/pr106820_b.C
! 633de5cc96e42a8f75edab46b98b2a45  gcc/testsuite/g++.dg/modules/pr108080.H
  d6c4487b2cdfe513fca59a9da2b03d10  gcc/testsuite/g++.dg/modules/pr113580_a.C
  2d13920b57e09bfba57cfacc02b5548b  gcc/testsuite/g++.dg/modules/pr113580_b.C
  b0187e4110d3e1feaedea59af55274e1  gcc/testsuite/g++.dg/modules/pr114005_a.C
--- 34817,34823 ----
  57c308104a9d589b59baa6c5289ef1ae  gcc/testsuite/g++.dg/modules/pr106761_b.C
  ce1fbbd73d685e48bf6b219484083996  gcc/testsuite/g++.dg/modules/pr106820_a.H
  d7c5aacc3100ff130d9b06f0b4d7b551  gcc/testsuite/g++.dg/modules/pr106820_b.C
! 0e300dd7ed7b402f26750dab3b720316  gcc/testsuite/g++.dg/modules/pr108080.H
  d6c4487b2cdfe513fca59a9da2b03d10  gcc/testsuite/g++.dg/modules/pr113580_a.C
  2d13920b57e09bfba57cfacc02b5548b  gcc/testsuite/g++.dg/modules/pr113580_b.C
  b0187e4110d3e1feaedea59af55274e1  gcc/testsuite/g++.dg/modules/pr114005_a.C
*************** d684f71f3f20bed75ccc9aecab05ecdb  gcc/te
*** 27297,27302 ****
--- 34853,34868 ----
  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
+ 6ce43bd3660c441d33ba8366665bbd54  gcc/testsuite/g++.dg/modules/pr119844_a.C
+ 392ae29759fb872beb821c7a47f07a1c  gcc/testsuite/g++.dg/modules/pr119844_b.C
+ c612aa7562a08eee08fd881b3b27fee6  gcc/testsuite/g++.dg/modules/pr120040_a.C
+ 680ac168b034a19e8070cf8c66cd3edc  gcc/testsuite/g++.dg/modules/pr120040_b.C
+ 625496a3dbc3dab3e9ee3fd5aa044187  gcc/testsuite/g++.dg/modules/pr122053_a.C
+ 1b9a9e771ff94ed09a2f483d4eb9b884  gcc/testsuite/g++.dg/modules/pr122053_b.C
+ 2b317cc9d17067098caad41a9ab4b86e  gcc/testsuite/g++.dg/modules/pr122922_a.C
+ acc8849da8a5b2d5ba59c3913e5a6714  gcc/testsuite/g++.dg/modules/pr122922_b.C
+ ce200ee8e54e28186fa57d5c31f18364  gcc/testsuite/g++.dg/modules/pr124485_a.C
+ b53027aecd2fdb64d47f59c4def0b8d9  gcc/testsuite/g++.dg/modules/pr124485_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
*************** eef775ab5fb3f5f47aeb09bf155720ca  gcc/te
*** 27319,27325 ****
  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
--- 34885,34891 ----
  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
! 3b57239cebd6a9be77f0a0f44afdcca6  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
*************** b203d4c40a623398d42b8317bb02be40  gcc/te
*** 27353,27359 ****
  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
--- 34919,34925 ----
  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
! ed12c375840353637924f6c1d37d2b9b  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
*************** a8cbc7218d2f85e1382a0c6fab6b026c  gcc/te
*** 27447,27452 ****
--- 35013,35026 ----
  0944092d3f91b04b84818ee55ea1cdcb  gcc/testsuite/g++.dg/modules/preproc-2_b.C
  c6e1edb52b5891ae1f08bf6d3cf18168  gcc/testsuite/g++.dg/modules/printf-1_a.H
  9c1772c0b13c48601f0ed1233cc497f1  gcc/testsuite/g++.dg/modules/printf-1_b.C
+ b41e83b0fbbe80aa3d6788f61b378834  gcc/testsuite/g++.dg/modules/reflect-1_a.H
+ 2400f655fe26c75ad6acf92a914b4d13  gcc/testsuite/g++.dg/modules/reflect-1_b.C
+ c64c2927735efa85bfebeebc7ee18116  gcc/testsuite/g++.dg/modules/reflect-2_a.H
+ 22927d822ec062f7e7777855b3baaa11  gcc/testsuite/g++.dg/modules/reflect-2_b.C
+ 13a3787901cb1f5cc96ae40f4cf1ebd4  gcc/testsuite/g++.dg/modules/reflect-2_c.C
+ 4a4b748a9a64af00a57a343b42ac8204  gcc/testsuite/g++.dg/modules/reflect-3_a.H
+ 8986c11936084abe8a2318c4948930a6  gcc/testsuite/g++.dg/modules/reflect-3_b.C
+ a14758aa576615ac598562e690667136  gcc/testsuite/g++.dg/modules/reflect-3_c.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
*************** da0cfcb5ac1aec80b1194aff6f469086  gcc/te
*** 27454,27459 ****
--- 35028,35039 ----
  381497aeb07dcdcf0ac1dff8bae080e4  gcc/testsuite/g++.dg/modules/scc-2.C
  1ea36c9c27e88f193688e35c7e951ff1  gcc/testsuite/g++.dg/modules/shadow-1_a.C
  049e6f7d1e704ee70bcb37a5fe369595  gcc/testsuite/g++.dg/modules/shadow-1_b.C
+ d45376729207e4cfed2bc5fd08566e8d  gcc/testsuite/g++.dg/modules/splice-scope-tree_a.C
+ 3f1d1ad50918dd7069ad4793c05567ff  gcc/testsuite/g++.dg/modules/splice-scope-tree_b.C
+ 53de506d5cdbf9ce04c575dd3302dd90  gcc/testsuite/g++.dg/modules/src-loc-1.h
+ 903450e142559451ac9a44c43999cfa9  gcc/testsuite/g++.dg/modules/src-loc-1_a.H
+ 75032200eb312d5290471c55ee50f11f  gcc/testsuite/g++.dg/modules/src-loc-1_b.C
+ 992537fab884d1aa501da374dbaabb89  gcc/testsuite/g++.dg/modules/src-loc-1_c.C
  705fd48d90f803e5220981d3e79d4db7  gcc/testsuite/g++.dg/modules/stat-mem-1.h
  aae07c059c641c03943c0e067167d486  gcc/testsuite/g++.dg/modules/stat-mem-1_a.H
  df985f4dcd12d98035a56d56fcdd7015  gcc/testsuite/g++.dg/modules/stat-mem-1_b.C
*************** a77c891669f0a055187ee6fa412c556b  gcc/te
*** 27613,27620 ****
--- 35193,35208 ----
  78ad19733ba75cd1add96ab6253916a2  gcc/testsuite/g++.dg/modules/tpl-friend-18_a.C
  0f347960cdc623a32af4678fbc686f1e  gcc/testsuite/g++.dg/modules/tpl-friend-18_b.C
  f9cb26c60747d2f029b81b085c2cfd0b  gcc/testsuite/g++.dg/modules/tpl-friend-18_c.C
+ dd2b326a8be0ea4de68d4eb25ff13b1f  gcc/testsuite/g++.dg/modules/tpl-friend-19_a.C
+ e3bd50a245519b8174ffa1fb5209898b  gcc/testsuite/g++.dg/modules/tpl-friend-19_b.C
  051a2753ec2e8d615e18875ab2746fa8  gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C
  2d9be0b173bceba0cbfd5a1ee4909f4c  gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C
+ d46392e2e61c96272e82ad0024f14ea6  gcc/testsuite/g++.dg/modules/tpl-friend-20_a.C
+ b4e69615ec86a3c4ede133d9854f3546  gcc/testsuite/g++.dg/modules/tpl-friend-20_b.C
+ d1d4183ea84a4413d4d7349cc9a82217  gcc/testsuite/g++.dg/modules/tpl-friend-20_c.C
+ 28b2c7bcc99c18730b439e7cc39743b6  gcc/testsuite/g++.dg/modules/tpl-friend-21_a.C
+ 5af0c25597d36141144015f5cb18b8d0  gcc/testsuite/g++.dg/modules/tpl-friend-21_b.C
+ 494c2316322b443b61733b1be3fbc844  gcc/testsuite/g++.dg/modules/tpl-friend-22.C
  d36e0a1f34b1d7f2cacd00844d768335  gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C
  4511743d659541c1148b76a234b62a41  gcc/testsuite/g++.dg/modules/tpl-friend-2_b.C
  95a880cc0f3eee2ff8309d2183f7f9d4  gcc/testsuite/g++.dg/modules/tpl-friend-3_a.C
*************** ab9ad3f69ee578c68df73507b4f930a9  gcc/te
*** 27627,27634 ****
  b51b053beacc19bf223fb0111d5cc38e  gcc/testsuite/g++.dg/modules/tpl-friend-6_b.C
  940f3e9291fe7841eb211bd483df6203  gcc/testsuite/g++.dg/modules/tpl-friend-7_a.C
  47ca0ba1815983a6f1f480f0edf3d827  gcc/testsuite/g++.dg/modules/tpl-friend-7_b.C
! 2f120706e28ff59f870efb60b9ffe17d  gcc/testsuite/g++.dg/modules/tpl-friend-8_a.H
! f491c55bfd930e25725bbc56c05907dd  gcc/testsuite/g++.dg/modules/tpl-friend-8_b.C
  9ef1cd5364bcb19c7287ad5314406701  gcc/testsuite/g++.dg/modules/tpl-friend-9.C
  34f345480583a302fca05d661038880e  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1.cc
  429f3d1daac109d3a2717ed74c3368a4  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1.h
--- 35215,35222 ----
  b51b053beacc19bf223fb0111d5cc38e  gcc/testsuite/g++.dg/modules/tpl-friend-6_b.C
  940f3e9291fe7841eb211bd483df6203  gcc/testsuite/g++.dg/modules/tpl-friend-7_a.C
  47ca0ba1815983a6f1f480f0edf3d827  gcc/testsuite/g++.dg/modules/tpl-friend-7_b.C
! b9e20075a1fd7bf724ef955f0dc87ba9  gcc/testsuite/g++.dg/modules/tpl-friend-8_a.H
! d5e6f8dd39c4f9a728a49df944374eda  gcc/testsuite/g++.dg/modules/tpl-friend-8_b.C
  9ef1cd5364bcb19c7287ad5314406701  gcc/testsuite/g++.dg/modules/tpl-friend-9.C
  34f345480583a302fca05d661038880e  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1.cc
  429f3d1daac109d3a2717ed74c3368a4  gcc/testsuite/g++.dg/modules/tpl-friend-merge-1.h
*************** abb264131cf69ea3d4038a76ed813597  gcc/te
*** 27695,27700 ****
--- 35283,35290 ----
  d92fe811980f743f6ceae665d0e6d815  gcc/testsuite/g++.dg/modules/typename-1_b.C
  f0018549a1dd967c9debb3cdb1131d36  gcc/testsuite/g++.dg/modules/typename-friend_a.C
  f1d985b13d698bcccc55e9f689df6a56  gcc/testsuite/g++.dg/modules/typename-friend_b.C
+ 95430cb0fdc82d1b20c87acb2f708439  gcc/testsuite/g++.dg/modules/ubsan-1_a.C
+ 40f350225331274c8eb8178ccf2b1fdb  gcc/testsuite/g++.dg/modules/ubsan-1_b.C
  634f316800fb64083c45650e2e916e91  gcc/testsuite/g++.dg/modules/unnamed-1_a.C
  fcd88fa087afa6876483c9180896600f  gcc/testsuite/g++.dg/modules/unnamed-1_b.C
  b56edd1f3ed182e1e681ca48a66740bf  gcc/testsuite/g++.dg/modules/unnamed-2.C
*************** a6538f381f12a0cd3a9e46e8089d2b15  gcc/te
*** 27751,27756 ****
--- 35341,35352 ----
  d2536d9ce980b930e5bd5e99319d1f01  gcc/testsuite/g++.dg/modules/using-30_c.C
  c42022b1e3d2c0964d349eec1c2253a7  gcc/testsuite/g++.dg/modules/using-31_a.C
  b9c78848e5510504b2065d85656d575b  gcc/testsuite/g++.dg/modules/using-31_b.C
+ bef5e193834f5468e4e4fc83a16d475d  gcc/testsuite/g++.dg/modules/using-32_a.C
+ 2dd22af7e6631945332b03fde27ff5db  gcc/testsuite/g++.dg/modules/using-32_b.C
+ 52f40637384516ccc35ac0f9f6315285  gcc/testsuite/g++.dg/modules/using-33_a.C
+ 82f21c15665bead6f4f0ec71d334df05  gcc/testsuite/g++.dg/modules/using-33_b.C
+ cff39b3c5704c947970d545b589f018a  gcc/testsuite/g++.dg/modules/using-34_a.C
+ f9a04157084cce9ec15b68e1b42b116b  gcc/testsuite/g++.dg/modules/using-34_b.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
*************** fb2dff43314c2b3715f353986395f3c8  gcc/te
*** 27804,27813 ****
--- 35400,35419 ----
  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
+ 274356b5635e24d5fcb22c624bf3780b  gcc/testsuite/g++.dg/modules/vtt-3_a.C
+ e322c3e2e2a5b94fb9e669c285d188b4  gcc/testsuite/g++.dg/modules/vtt-3_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
+ 32bda9067b266262f4e1131abc94bca8  gcc/testsuite/g++.dg/modules/warn-spec-3_a.C
+ 3043cd59d7e332d6f4e8f61c6bb432d8  gcc/testsuite/g++.dg/modules/warn-spec-3_b.C
+ 952c780f52f4b4b510d04d6b1c74dd28  gcc/testsuite/g++.dg/modules/warn-spec-3_c.C
+ 4a95f9f95cc176fb103da75a87383e40  gcc/testsuite/g++.dg/modules/warn-spec-4_a.C
+ fb2cb7f453ee44770338d0f4c1ece654  gcc/testsuite/g++.dg/modules/warn-spec-4_b.C
+ 09babc23a403552ae323e53244ed68b1  gcc/testsuite/g++.dg/modules/warn-spec-5_a.C
+ 280f3e3384660ceaa81d4c86f10d45e4  gcc/testsuite/g++.dg/modules/warn-spec-5_b.C
+ 842130adcc7ea89fabb5566ba25918b9  gcc/testsuite/g++.dg/modules/warn-spec-5_c.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
*************** ff334232cd6b06ca02860f7d9e35573b  gcc/te
*** 27834,27840 ****
  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
--- 35440,35446 ----
  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
! afa034c7dd3e67253d6a031a76130f3c  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
*************** f676f1263407b9de534eb36cbb67fc3f  gcc/te
*** 27848,27857 ****
  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
  8782d87c3ab6e3b20b317d9f1492e146  gcc/testsuite/g++.dg/opt/20050511-1.C
  5e1f1ec360f2ae54c78ee347de5c583f  gcc/testsuite/g++.dg/opt/20181025-1.C
--- 35454,35463 ----
  9cfea6bd54523dac2d912c5139815bcb  gcc/testsuite/g++.dg/musttail14.C
  bc6a20391fb03a102361a1ef161f36c9  gcc/testsuite/g++.dg/musttail6.C
  c869389871d17ef78c3e0d5f69924366  gcc/testsuite/g++.dg/musttail7.C
! fb6950cbb076d7da55a56c590cbfc523  gcc/testsuite/g++.dg/musttail8.C
! a8160be5c427e989337a9e60ca1149bc  gcc/testsuite/g++.dg/musttail9.C
  328d5426468f09a9a108df6191684b78  gcc/testsuite/g++.dg/no-stack-protector-attr-2.C
! d2e46c2469499fd1b1cb32a384d6bc81  gcc/testsuite/g++.dg/no-stack-protector-attr-3.C
  020cc92178f45d27f797218781bfe02c  gcc/testsuite/g++.dg/no-stack-protector-attr.C
  8782d87c3ab6e3b20b317d9f1492e146  gcc/testsuite/g++.dg/opt/20050511-1.C
  5e1f1ec360f2ae54c78ee347de5c583f  gcc/testsuite/g++.dg/opt/20181025-1.C
*************** eb2e0f01c9a4d46c1646751931cacef7  gcc/te
*** 27860,27871 ****
--- 35466,35479 ----
  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
+ a8cdf3fcce3ac96fddc691b6de1ea61d  gcc/testsuite/g++.dg/opt/always_inline2.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
  004765f1bd46208118158a52b348e859  gcc/testsuite/g++.dg/opt/array2.C
  8ec7cd2bb0f2a747c58511cdba0677c9  gcc/testsuite/g++.dg/opt/asm1.C
  c9481d742a48253660d16743a6beecf9  gcc/testsuite/g++.dg/opt/asm2.C
+ 26841e6ff204f6a3aceb000496a86233  gcc/testsuite/g++.dg/opt/auto-init-sra-pr121894.C
  cd9d658bcc74632f8c5f64180e52c3e8  gcc/testsuite/g++.dg/opt/bitfield1.C
  2196be4aeda3f2fca55756098ae04451  gcc/testsuite/g++.dg/opt/bool1.C
  15dd66151b129bfdbe9cd873521b3467  gcc/testsuite/g++.dg/opt/builtins1.C
*************** c11dcb63c226e2ccd7df1403d7c85717  gcc/te
*** 27994,28002 ****
  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
--- 35602,35610 ----
  3a3099818facb90281fb9d64bda62586  gcc/testsuite/g++.dg/opt/mpx.C
  48f5588e7762def5a628cec018cfc8bc  gcc/testsuite/g++.dg/opt/musttail1.C
  3dc23d9a26bb23d2b377a5113858afef  gcc/testsuite/g++.dg/opt/musttail2.C
! b37acf7c9a9418fc07fb815bcf9d1fae  gcc/testsuite/g++.dg/opt/musttail3.C
! d5955f0a70de31afb30bed8fa56f8b3c  gcc/testsuite/g++.dg/opt/musttail4.C
! 4aff36c42f9097b65d041a1edeb2ac9d  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
*************** b8fef9a1bd09e90415f3e35f5466c85c  gcc/te
*** 28066,28076 ****
  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
  149c3b47d16cfa08669bf79341552440  gcc/testsuite/g++.dg/opt/pr119327.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
--- 35674,35690 ----
  6b9ff4b9b47e58f0f5a801795c933b05  gcc/testsuite/g++.dg/opt/pr112374.C
  825c715cc564416b76db4cdff16d60ca  gcc/testsuite/g++.dg/opt/pr113705.C
  0324d31ab64ecdfb74347e2e96dd74d2  gcc/testsuite/g++.dg/opt/pr117439.C
! 5ac69c158405ad58b01c11aff2cd35c4  gcc/testsuite/g++.dg/opt/pr119274.C
  149c3b47d16cfa08669bf79341552440  gcc/testsuite/g++.dg/opt/pr119327.C
  f974ff4ce09c3f50fcec3f4ce9c39925  gcc/testsuite/g++.dg/opt/pr119518.C
! c60b844a013ddc3832a59b1cd376b1ad  gcc/testsuite/g++.dg/opt/pr119613.C
  8ae5f63f132f2e69255225e052069238  gcc/testsuite/g++.dg/opt/pr119614.C
+ b67c374c96c5b9bf7bfc34ab5c497627  gcc/testsuite/g++.dg/opt/pr120629.C
+ 9db6e9a160a496988df91d0d0b96bc85  gcc/testsuite/g++.dg/opt/pr122083-1.C
+ 71e71bffbc009df79284647622bf0ca6  gcc/testsuite/g++.dg/opt/pr122184-1.C
+ d566a0635f6a1e3ba1148b6b36789cd2  gcc/testsuite/g++.dg/opt/pr122184-2.C
+ 46bab0272c3e399fa4db680833cb9a89  gcc/testsuite/g++.dg/opt/pr122394.C
+ 4be173d1439f1f7bba5720eb1e9c30c0  gcc/testsuite/g++.dg/opt/pr123724.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
*************** fe9b6c3dabf0ae1d3eb188f56c992822  gcc/te
*** 28170,28176 ****
  18dd1a114766366695a4ed34bf5f0741  gcc/testsuite/g++.dg/opt/pr55281.C
  f555a4552399a1314507b7d9744f7eef  gcc/testsuite/g++.dg/opt/pr55329.C
  eb316460089208481c6b3e5a0c34a90a  gcc/testsuite/g++.dg/opt/pr55331.C
! e19ebb209e95191eb4d52fa66eacd47f  gcc/testsuite/g++.dg/opt/pr55717.C
  a11366306b88724f9bb36fdef806b6bd  gcc/testsuite/g++.dg/opt/pr56381.C
  47b528a0159c73411ef4285b052d60be  gcc/testsuite/g++.dg/opt/pr56999.C
  11efe66e14d9aba903f11007f0f3a4e8  gcc/testsuite/g++.dg/opt/pr57411.C
--- 35784,35790 ----
  18dd1a114766366695a4ed34bf5f0741  gcc/testsuite/g++.dg/opt/pr55281.C
  f555a4552399a1314507b7d9744f7eef  gcc/testsuite/g++.dg/opt/pr55329.C
  eb316460089208481c6b3e5a0c34a90a  gcc/testsuite/g++.dg/opt/pr55331.C
! d987da5bd153ec979a69d629669af617  gcc/testsuite/g++.dg/opt/pr55717.C
  a11366306b88724f9bb36fdef806b6bd  gcc/testsuite/g++.dg/opt/pr56381.C
  47b528a0159c73411ef4285b052d60be  gcc/testsuite/g++.dg/opt/pr56999.C
  11efe66e14d9aba903f11007f0f3a4e8  gcc/testsuite/g++.dg/opt/pr57411.C
*************** b5c6104c29743bbd0bba0fb8c0978bd7  gcc/te
*** 28188,28194 ****
  bc581baefa9c2cdf340c7afe5ec42620  gcc/testsuite/g++.dg/opt/pr59947.C
  fcc0cbf12c3c1ff2231451798c2c5d37  gcc/testsuite/g++.dg/opt/pr60002.C
  460232703752f4b1c801d9c715d86146  gcc/testsuite/g++.dg/opt/pr60597.C
! cd9ce81573f1dd55ed9926ad0afbe423  gcc/testsuite/g++.dg/opt/pr60849.C
  2ca5ee004fc73e412a39de0dd38e1b4c  gcc/testsuite/g++.dg/opt/pr60912.C
  08e7585d2d80f49eb43743bb5ae7f9f1  gcc/testsuite/g++.dg/opt/pr61456.C
  6cfd7f0d8649e554551af4ecdbfa227e  gcc/testsuite/g++.dg/opt/pr61654.C
--- 35802,35808 ----
  bc581baefa9c2cdf340c7afe5ec42620  gcc/testsuite/g++.dg/opt/pr59947.C
  fcc0cbf12c3c1ff2231451798c2c5d37  gcc/testsuite/g++.dg/opt/pr60002.C
  460232703752f4b1c801d9c715d86146  gcc/testsuite/g++.dg/opt/pr60597.C
! d81bb7992322fa23cee68aac1e373396  gcc/testsuite/g++.dg/opt/pr60849.C
  2ca5ee004fc73e412a39de0dd38e1b4c  gcc/testsuite/g++.dg/opt/pr60912.C
  08e7585d2d80f49eb43743bb5ae7f9f1  gcc/testsuite/g++.dg/opt/pr61456.C
  6cfd7f0d8649e554551af4ecdbfa227e  gcc/testsuite/g++.dg/opt/pr61654.C
*************** cd9ce81573f1dd55ed9926ad0afbe423  gcc/te
*** 28200,28206 ****
  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
--- 35814,35820 ----
  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
! 2bf59a1a968e94a7356116d94daac795  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
*************** a9fbf233b631f1d45170b9aacad1f922  gcc/te
*** 28244,28250 ****
  97574f7cfa38ba2094043dc3a7f02589  gcc/testsuite/g++.dg/opt/pr81715.C
  2b4d4f8e6529784b4ac0ea783ee0f03d  gcc/testsuite/g++.dg/opt/pr82159-2.C
  2ef205fc60b004319bdd85aaab41122a  gcc/testsuite/g++.dg/opt/pr82159.C
! de2c75d60389e1ec0cbe062c8582d2d9  gcc/testsuite/g++.dg/opt/pr82577.C
  d30ca1c821e579353187057dde122039  gcc/testsuite/g++.dg/opt/pr82778.C
  3b97830b162c62ccdbddf6d88cdf1f24  gcc/testsuite/g++.dg/opt/pr82929.C
  51275b1dfdc4bd6a07a6ff88ac8d81c3  gcc/testsuite/g++.dg/opt/pr83084.C
--- 35858,35864 ----
  97574f7cfa38ba2094043dc3a7f02589  gcc/testsuite/g++.dg/opt/pr81715.C
  2b4d4f8e6529784b4ac0ea783ee0f03d  gcc/testsuite/g++.dg/opt/pr82159-2.C
  2ef205fc60b004319bdd85aaab41122a  gcc/testsuite/g++.dg/opt/pr82159.C
! f12629545bd704e0e749e77fc392aa50  gcc/testsuite/g++.dg/opt/pr82577.C
  d30ca1c821e579353187057dde122039  gcc/testsuite/g++.dg/opt/pr82778.C
  3b97830b162c62ccdbddf6d88cdf1f24  gcc/testsuite/g++.dg/opt/pr82929.C
  51275b1dfdc4bd6a07a6ff88ac8d81c3  gcc/testsuite/g++.dg/opt/pr83084.C
*************** dacd41d6dbf618fb881768d6a068d7f1  gcc/te
*** 28297,28302 ****
--- 35911,35917 ----
  2f5723dc00ebdebb54dc9e15de17ee39  gcc/testsuite/g++.dg/opt/pr96354.C
  dcb0e957efba822ddb1534eef4cc12de  gcc/testsuite/g++.dg/opt/pr96722.C
  19a7ef730f644c2da2b365f4a10de104  gcc/testsuite/g++.dg/opt/pr96780.C
+ bcc6f19cf50811cf5bac609fe1c6bb36  gcc/testsuite/g++.dg/opt/pr96780_cpp23.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
*************** d314ec5e414fa9ff7becb1b3ec214a79  gcc/te
*** 28341,28347 ****
  da113259afc60dbf3dd7e421650ce386  gcc/testsuite/g++.dg/opt/static4.C
  e6a6097b4d5bd61ae38897f3b753019c  gcc/testsuite/g++.dg/opt/static5.C
  f8fa04e44f6fd70dc42a62899c9f64d6  gcc/testsuite/g++.dg/opt/static6.C
! a183aae17f1d8c8615291ebf7a5dc391  gcc/testsuite/g++.dg/opt/store-merging-1.C
  6252c7bf23bf186b1723587134a83a82  gcc/testsuite/g++.dg/opt/store-merging-2.C
  b7ff171a7ea369be5eef1fa7876f131e  gcc/testsuite/g++.dg/opt/store-merging-3.C
  12b141d678db6c6a275748357e7fc1d2  gcc/testsuite/g++.dg/opt/store-merging-4.C
--- 35956,35962 ----
  da113259afc60dbf3dd7e421650ce386  gcc/testsuite/g++.dg/opt/static4.C
  e6a6097b4d5bd61ae38897f3b753019c  gcc/testsuite/g++.dg/opt/static5.C
  f8fa04e44f6fd70dc42a62899c9f64d6  gcc/testsuite/g++.dg/opt/static6.C
! 2609bab67fa0e7f8f778d0b11fc830ab  gcc/testsuite/g++.dg/opt/store-merging-1.C
  6252c7bf23bf186b1723587134a83a82  gcc/testsuite/g++.dg/opt/store-merging-2.C
  b7ff171a7ea369be5eef1fa7876f131e  gcc/testsuite/g++.dg/opt/store-merging-3.C
  12b141d678db6c6a275748357e7fc1d2  gcc/testsuite/g++.dg/opt/store-merging-4.C
*************** a0196ebfddfdcb265613530b34c75302  gcc/te
*** 28391,28403 ****
  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
  641a219149b93d616c99181899a7eb19  gcc/testsuite/g++.dg/other/anon5.C
  1c68df289b2577a8e2753eaf82704fed  gcc/testsuite/g++.dg/other/anon6.C
  6bdea0a90642ef923b08522ad0f6f67b  gcc/testsuite/g++.dg/other/anon7.C
! f282d7d63120a2f2e0ee707e7dd2fe1e  gcc/testsuite/g++.dg/other/anon8.C
  2138aca3dce7e8ea857b666c6463bc03  gcc/testsuite/g++.dg/other/arm-neon-1.C
  9d297649b5a43f6461774469f0468593  gcc/testsuite/g++.dg/other/armv7m-1.C
  ceb0c0d2e878f1b7898a912bfe02d365  gcc/testsuite/g++.dg/other/array1.C
--- 36006,36019 ----
  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
+ fe4ccc701c313926fdf04eb36eca6435  gcc/testsuite/g++.dg/other/anon-union8.C
  25bec11b40119085408d52eaa5b86f6e  gcc/testsuite/g++.dg/other/anon2.C
! 459d65add342ef87588ce96c8871a57f  gcc/testsuite/g++.dg/other/anon3.C
  735bc52cab8eca56a711c2c10845c981  gcc/testsuite/g++.dg/other/anon4.C
  641a219149b93d616c99181899a7eb19  gcc/testsuite/g++.dg/other/anon5.C
  1c68df289b2577a8e2753eaf82704fed  gcc/testsuite/g++.dg/other/anon6.C
  6bdea0a90642ef923b08522ad0f6f67b  gcc/testsuite/g++.dg/other/anon7.C
! b2d06a246c33e627f4feb29bb2649186  gcc/testsuite/g++.dg/other/anon8.C
  2138aca3dce7e8ea857b666c6463bc03  gcc/testsuite/g++.dg/other/arm-neon-1.C
  9d297649b5a43f6461774469f0468593  gcc/testsuite/g++.dg/other/armv7m-1.C
  ceb0c0d2e878f1b7898a912bfe02d365  gcc/testsuite/g++.dg/other/array1.C
*************** f7ea45387f20b854810727825bbdc313  gcc/te
*** 28487,28492 ****
--- 36103,36109 ----
  c5b26d15a4924f5e39dad2e8b5b7608a  gcc/testsuite/g++.dg/other/enum1.C
  c544bdd6560cc758c745269cd7fa1806  gcc/testsuite/g++.dg/other/enum2.C
  0067ce75ae387639a9f67e6ceb464f94  gcc/testsuite/g++.dg/other/enum3.C
+ e0dd0877361f62e7b22c7129962122c1  gcc/testsuite/g++.dg/other/enum4.C
  b7da9102c9531c30691a1aee48af69dd  gcc/testsuite/g++.dg/other/error1.C
  ad201a1b3557a9b3293504d7508b5726  gcc/testsuite/g++.dg/other/error10.C
  3c4bc8f8209191a16ce6898de421c3a9  gcc/testsuite/g++.dg/other/error11.C
*************** eda67a8394a25b381e47971e78264eba  gcc/te
*** 28562,28569 ****
  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
--- 36179,36186 ----
  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
! 27eabfd8aa40ef3fb4f1382b3ddf69de  gcc/testsuite/g++.dg/other/i386-2.C
! 1e0dbc81c0a4edd132960b24f8edb8ac  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
*************** c5b17ec8776b6efea2d581feee1eee63  gcc/te
*** 28617,28622 ****
--- 36234,36240 ----
  7f6f8196eb6eae36b43ff96f94e48737  gcc/testsuite/g++.dg/other/pr113617.C
  a9facf6d9509cb68d6b2b62cd3645688  gcc/testsuite/g++.dg/other/pr113617.h
  f4bb431c848d4b8591c30c861f41d6cd  gcc/testsuite/g++.dg/other/pr117516.C
+ c6c30515575b8f356d858cc811ca7d51  gcc/testsuite/g++.dg/other/pr123331.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
*************** d84032d5d61187d741ca91d1d16ee607  gcc/te
*** 28906,28912 ****
--- 36524,36532 ----
  3d4935439f09d7756194078a14580819  gcc/testsuite/g++.dg/parse/attr2.C
  d6c48fcb5fb2cc2eca51bdf02a511666  gcc/testsuite/g++.dg/parse/attr3.C
  9ca7ebe83672a0e3c639a4eff33fa711  gcc/testsuite/g++.dg/parse/attr4.C
+ f91706807a58d1674acd4ede0b772db1  gcc/testsuite/g++.dg/parse/auto-struct-param.C
  73272b6d0088d70ce32ad135b8b8bdd1  gcc/testsuite/g++.dg/parse/bitfield1.C
+ 4ee85a4403fc531e7f9e839bd484f65c  gcc/testsuite/g++.dg/parse/bitfield10.C
  44f7fcda1355d2713f1553e89b1837b8  gcc/testsuite/g++.dg/parse/bitfield2.C
  8ba3c4b4e1071c4bc6a0af4986fa5735  gcc/testsuite/g++.dg/parse/bitfield3.C
  b325bb9ea4e508f973b222d3c07380fd  gcc/testsuite/g++.dg/parse/bitfield4.C
*************** c5147fdec1f8af57aa91c7960d61a37c  gcc/te
*** 28932,28937 ****
--- 36552,36558 ----
  8e7b288b4c83f50703e3121d871e7ca1  gcc/testsuite/g++.dg/parse/colon-autocorrect-2.C
  cc7bbad3182c61322827fb53d2c0de46  gcc/testsuite/g++.dg/parse/comma1.C
  7a61c8e71deeb5afa8198794ebdf7d32  gcc/testsuite/g++.dg/parse/comma2.C
+ 98a1a2f21d1a9e354ec5c32d17f0b632  gcc/testsuite/g++.dg/parse/comma3.C
  4c4fb9d735c72b92a2a26f198f25d1e5  gcc/testsuite/g++.dg/parse/concat1.C
  73b5fec6848a7932aba299c38c57d8ed  gcc/testsuite/g++.dg/parse/cond1.C
  5b95db4d3d95193611271dcf7d869fe5  gcc/testsuite/g++.dg/parse/cond2.C
*************** c3945b36146c7d629c7336eb3f9329fe  gcc/te
*** 29035,29044 ****
  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
! 31da095055ef151d5be0868d53a4bdcb  gcc/testsuite/g++.dg/parse/ctor2.C
  851ffd08face1b11f5eff629189ea51e  gcc/testsuite/g++.dg/parse/ctor3.C
  c98adb0de8743928eaf1466baf071cbf  gcc/testsuite/g++.dg/parse/ctor4.C
  38f499b6bc73e7a54e6e1dd10ff2bf15  gcc/testsuite/g++.dg/parse/ctor5.C
--- 36656,36666 ----
  758a5593fac9b92bf48e5bc6573d64dd  gcc/testsuite/g++.dg/parse/crash78a.C
  37c0cb89d800249b63e524b045e2782b  gcc/testsuite/g++.dg/parse/crash79.C
  8192e78f11aebd3019eab4fc03de8002  gcc/testsuite/g++.dg/parse/crash80.C
+ 9312e5f821efad7b8541c62377238ab9  gcc/testsuite/g++.dg/parse/crash81.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
! 428511ff6e4b2c7ef0d1d79c2d52ee02  gcc/testsuite/g++.dg/parse/ctor2.C
  851ffd08face1b11f5eff629189ea51e  gcc/testsuite/g++.dg/parse/ctor3.C
  c98adb0de8743928eaf1466baf071cbf  gcc/testsuite/g++.dg/parse/ctor4.C
  38f499b6bc73e7a54e6e1dd10ff2bf15  gcc/testsuite/g++.dg/parse/ctor5.C
*************** c4144e09bf19fa4b0932506c5eb3e8ee  gcc/te
*** 29062,29067 ****
--- 36684,36691 ----
  4ed8de70cfd1762fc0699616785fe265  gcc/testsuite/g++.dg/parse/defarg18a.C
  5bdfd56298ee8adf145a54351ba8a1cb  gcc/testsuite/g++.dg/parse/defarg19.C
  1bff48df8c11aeda15e3471bf1a33226  gcc/testsuite/g++.dg/parse/defarg2.C
+ 391992d48b82b49e8ff1682a5e58d837  gcc/testsuite/g++.dg/parse/defarg20.C
+ 4990ad714b5ae28d0c5eec0a10489f26  gcc/testsuite/g++.dg/parse/defarg21.C
  09fddda5e825bb04b1493087728c9162  gcc/testsuite/g++.dg/parse/defarg3.C
  0385e46623d8f7f6c4993e05a03c73fd  gcc/testsuite/g++.dg/parse/defarg4.C
  3dd23b6818ff46d947d8229efad73d5c  gcc/testsuite/g++.dg/parse/defarg5.C
*************** f925dbe1528712dd5921699a83e6b23c  gcc/te
*** 29221,29228 ****
  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
--- 36845,36854 ----
  1f0cba57d6bb8594c938edf51e17e937  gcc/testsuite/g++.dg/parse/linkage2.C
  f860807cf54031b8df626f746711d411  gcc/testsuite/g++.dg/parse/linkage3.C
  8104de8c0208b62f2ca257fc4c007f84  gcc/testsuite/g++.dg/parse/linkage4.C
! 232ea5b868a4c2015e765670abfdbf15  gcc/testsuite/g++.dg/parse/linkage5.C
  ea86d1a073f0bda0eeb3149364adc0f4  gcc/testsuite/g++.dg/parse/linkage6.C
+ dbca39ab1fc41edf6b81909d13a0d37c  gcc/testsuite/g++.dg/parse/linkage7.C
+ bb02d7c56a6e42275331f655236aa4b1  gcc/testsuite/g++.dg/parse/linkage8.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
*************** eb7d271a7110d4e8fc3f749e65b2288f  gcc/te
*** 29263,29269 ****
  69077da5839ad8d28331fbad77fcd87e  gcc/testsuite/g++.dg/parse/no-typename1.C
  aa5411fd5e6b230e1e272f2eabca94bc  gcc/testsuite/g++.dg/parse/no-value1.C
  d3d5c74c2536d2bbc64765e6108f9905  gcc/testsuite/g++.dg/parse/non-dependent1.C
! 73062b089778c12a0028db31493ae2c0  gcc/testsuite/g++.dg/parse/non-dependent2.C
  4c962ba814ec62b887039d1d3eb9e82b  gcc/testsuite/g++.dg/parse/non-dependent3.C
  301b99fe0e3e5ec394c359f6ae5c6580  gcc/testsuite/g++.dg/parse/non-templ1.C
  975159f65456dba4b16d2ea9f6f10aac  gcc/testsuite/g++.dg/parse/nontype1.C
--- 36889,36895 ----
  69077da5839ad8d28331fbad77fcd87e  gcc/testsuite/g++.dg/parse/no-typename1.C
  aa5411fd5e6b230e1e272f2eabca94bc  gcc/testsuite/g++.dg/parse/no-value1.C
  d3d5c74c2536d2bbc64765e6108f9905  gcc/testsuite/g++.dg/parse/non-dependent1.C
! 47dcde73fe650b0237b53a3dce6b96af  gcc/testsuite/g++.dg/parse/non-dependent2.C
  4c962ba814ec62b887039d1d3eb9e82b  gcc/testsuite/g++.dg/parse/non-dependent3.C
  301b99fe0e3e5ec394c359f6ae5c6580  gcc/testsuite/g++.dg/parse/non-templ1.C
  975159f65456dba4b16d2ea9f6f10aac  gcc/testsuite/g++.dg/parse/nontype1.C
*************** a0fee4f3ee4678b54afd993b619baa05  gcc/te
*** 29308,29313 ****
--- 36934,36940 ----
  dfa745316c10162491bb418266c2b932  gcc/testsuite/g++.dg/parse/pr116071.C
  732ccde523003692267913067f6a0ccd  gcc/testsuite/g++.dg/parse/pr120471.C
  225e1d7f8cf80186eac35ff37acc9379  gcc/testsuite/g++.dg/parse/pr120940.C
+ 2c83db83aed27c707a2c8d18e73ebfa5  gcc/testsuite/g++.dg/parse/pr121443.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
*************** ba5fea52e589d10cf797adaaeee748ac  gcc/te
*** 29423,29428 ****
--- 37050,37057 ----
  a31feb6abdee70df8465893bfc01cc3f  gcc/testsuite/g++.dg/parse/template3.C
  62935399288bb5a662f7a6214e1cbb16  gcc/testsuite/g++.dg/parse/template30.C
  7bbe9405de4476f557431f61bbc055be  gcc/testsuite/g++.dg/parse/template31.C
+ ac012cc2d776e77244da576ff788c387  gcc/testsuite/g++.dg/parse/template32.C
+ 1c45950cbc06c556df49ffcd971a522c  gcc/testsuite/g++.dg/parse/template33.C
  17872444c3e507c8ec724d519d4c6457  gcc/testsuite/g++.dg/parse/template4.C
  eb5012efbf2e76d0649338687d64eab1  gcc/testsuite/g++.dg/parse/template5.C
  36ce6bc0b81d40546501089e276c612d  gcc/testsuite/g++.dg/parse/template6.C
*************** cbccebd52f80be1acc21283b8d2ec373  gcc/te
*** 29451,29457 ****
  395c7fdd493455c7e9ebc3b33b0a1c1c  gcc/testsuite/g++.dg/parse/typename3.C
  a7bf52f847dc688d8603b5d1b1ca8521  gcc/testsuite/g++.dg/parse/typename4.C
  979c20e0b12da5f2d9ab3fc8b1d0e674  gcc/testsuite/g++.dg/parse/typename5.C
! 4b927bd8b5a48134a8c3189cc3af28b3  gcc/testsuite/g++.dg/parse/typename6.C
  421915ff4fa7afa0ee5427c10622ecb8  gcc/testsuite/g++.dg/parse/typename7.C
  fc99557b544b211def78f05030375621  gcc/testsuite/g++.dg/parse/typename8.C
  35ab20568ffabae7969974eae553395b  gcc/testsuite/g++.dg/parse/typename9.C
--- 37080,37086 ----
  395c7fdd493455c7e9ebc3b33b0a1c1c  gcc/testsuite/g++.dg/parse/typename3.C
  a7bf52f847dc688d8603b5d1b1ca8521  gcc/testsuite/g++.dg/parse/typename4.C
  979c20e0b12da5f2d9ab3fc8b1d0e674  gcc/testsuite/g++.dg/parse/typename5.C
! 31ee4e55127afe1e20bb91cd1fd231e8  gcc/testsuite/g++.dg/parse/typename6.C
  421915ff4fa7afa0ee5427c10622ecb8  gcc/testsuite/g++.dg/parse/typename7.C
  fc99557b544b211def78f05030375621  gcc/testsuite/g++.dg/parse/typename8.C
  35ab20568ffabae7969974eae553395b  gcc/testsuite/g++.dg/parse/typename9.C
*************** e831cec93609978519f8f94b9c7e0a97  gcc/te
*** 29464,29469 ****
--- 37093,37104 ----
  3c77b612897459ac063cdd9973cc337f  gcc/testsuite/g++.dg/parse/undefined6.C
  51aa2c13898ac16fd8a1a4a06126600a  gcc/testsuite/g++.dg/parse/undefined7.C
  af673838e50cc77997dda4e3240550bb  gcc/testsuite/g++.dg/parse/uneval1.C
+ 87410eb8ab9fdd8b27c6d5cacc5b12b0  gcc/testsuite/g++.dg/parse/union1.C
+ ff30a9e8a4677e1d35ba028487639612  gcc/testsuite/g++.dg/parse/union2.C
+ e22f0cae190c5b4b7ecc6853b6ff1b15  gcc/testsuite/g++.dg/parse/union3.C
+ 7ff392ca3fe32e905b9ab5b7ddc2cd40  gcc/testsuite/g++.dg/parse/union4.C
+ afbf54153cfcbde56fcd5c798392ed4f  gcc/testsuite/g++.dg/parse/union5.C
+ 6a7e61c9641124b450c98d2e186956b9  gcc/testsuite/g++.dg/parse/union6.C
  92ada8b4167dd116c5c66ea62a120b06  gcc/testsuite/g++.dg/parse/unnamed1.C
  360bd7fc805f109039114cc041982c84  gcc/testsuite/g++.dg/parse/unnamed2.C
  6bd4c0f7191355f693af56ab02582e5d  gcc/testsuite/g++.dg/parse/using1.C
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 29485,29492 ****
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-1.Hs
  2c0817d088bccb3d2e72fe1a30899a59  gcc/testsuite/g++.dg/pch/line-map-2.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-2.Hs
! 3de8e87d02fb3b00ee93cf5d0f4a94f5  gcc/testsuite/g++.dg/pch/line-map-3.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-3.Hs
  3456d98b10198c0bf9091088ba05d0f0  gcc/testsuite/g++.dg/pch/local-1.C
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
  736c76aa75561ebe78be5895bc205db9  gcc/testsuite/g++.dg/pch/main-file-warnings.C
--- 37120,37129 ----
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-1.Hs
  2c0817d088bccb3d2e72fe1a30899a59  gcc/testsuite/g++.dg/pch/line-map-2.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-2.Hs
! 54f075c01ad730aced52dfbed38e152e  gcc/testsuite/g++.dg/pch/line-map-3.C
  29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-3.Hs
+ 60d8465aedea379514e04f24f1a6cd17  gcc/testsuite/g++.dg/pch/line-map-4.C
+ 29dd06c9a93f1d28d7d1b11b164a7efe  gcc/testsuite/g++.dg/pch/line-map-4.Hs
  3456d98b10198c0bf9091088ba05d0f0  gcc/testsuite/g++.dg/pch/local-1.C
  1b5d28bf11bae4996001396e1ffe083b  gcc/testsuite/g++.dg/pch/local-1.Hs
  736c76aa75561ebe78be5895bc205db9  gcc/testsuite/g++.dg/pch/main-file-warnings.C
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 29497,29503 ****
  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
--- 37134,37140 ----
  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
! c3ade072a04564341db920f252bdfbbb  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
*************** b7d97b8f67f65ae1e90b8db3474b6e48  gcc/te
*** 29526,29531 ****
--- 37163,37169 ----
  667e18d65092886bfa6db626eb370e7c  gcc/testsuite/g++.dg/pch/uninst.Hs
  3c027648f765cf5846e0b1be267760f6  gcc/testsuite/g++.dg/pch/wchar-1.C
  67d1ff82e247bea84a92bc888972c000  gcc/testsuite/g++.dg/pch/wchar-1.Hs
+ 708c2f4c123df4c945aaf34b81254832  gcc/testsuite/g++.dg/pid_t-1.C
  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
*************** b393922db8d338bed7f3bcf037edd19c  gcc/te
*** 29542,29559 ****
  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
--- 37180,37197 ----
  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
! 0b43184437ee38ac40cd671b01adb2f2  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
! 649a9b4c04ffbac71af84efe7b87fe2d  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
! 67cf82e34825298adb69e14878eb5af8  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
*************** f678b424d2148346313809851fbbe611  gcc/te
*** 29593,29603 ****
  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
  d817d87f4590a7694dcb15ea0a0856a3  gcc/testsuite/g++.dg/pr115605.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
--- 37231,37248 ----
  665d46641e66feec86e6007d6a6a9128  gcc/testsuite/g++.dg/pr112822.C
  6aff6ca7cddcaa75a97c54158353102d  gcc/testsuite/g++.dg/pr113217.C
  adfc90a4ec5f7e6acacbdafc592a2862  gcc/testsuite/g++.dg/pr113673.C
+ 0d8a07ea8cac23cae017f961577f3b8c  gcc/testsuite/g++.dg/pr114025.C
  6431e5522e8138d482199836afdeb823  gcc/testsuite/g++.dg/pr114501_0.C
+ 17184bd6e6dc1ff12f2c96ef0f2afa52  gcc/testsuite/g++.dg/pr114969.C
  ad9259e6bdf3bdde202871cc62bd27bb  gcc/testsuite/g++.dg/pr115232.C
  d817d87f4590a7694dcb15ea0a0856a3  gcc/testsuite/g++.dg/pr115605.C
! c3ec8c8f271e45e00fd96018adef8585  gcc/testsuite/g++.dg/pr117222.C
  907af190ec2f3efd086d2b352c9934cd  gcc/testsuite/g++.dg/pr117919.C
+ e736fe25d4b99f710b70de0825fffdc1  gcc/testsuite/g++.dg/pr121345.C
+ 80867666af42eef238ead0c293e5bc0e  gcc/testsuite/g++.dg/pr121757.C
+ e6de60b5642934aef50f416afd0dfef5  gcc/testsuite/g++.dg/pr122348.C
+ 0ad246e348b6ea4bf54b74b0d8e3dce0  gcc/testsuite/g++.dg/pr123383.C
+ 9b72294c06cceb517f37832e017f79c1  gcc/testsuite/g++.dg/pr123575.C
  2ac64817a39fe1a5c2dc328f4233cda1  gcc/testsuite/g++.dg/pr37742.C
  32b2fbda29ffd2ac2181c43c971f3a7d  gcc/testsuite/g++.dg/pr44328.C
  e43b4ea2d038b181b57782d5d56d22ba  gcc/testsuite/g++.dg/pr44486.C
*************** d0caf9e5362287726dc95d5165f20feb  gcc/te
*** 29777,29783 ****
  ed2c407a8454e62219c76dc3c5b72a1e  gcc/testsuite/g++.dg/pr89242.C
  7287759250de84d3108a523dee756970  gcc/testsuite/g++.dg/pr89790.C
  35c17f0646594d5891b1fa427e1c3ea7  gcc/testsuite/g++.dg/pr90338.C
- 73735f0d288c2d08e6d7150b4af65ae1  gcc/testsuite/g++.dg/pr90462.C
  edffccfb11f8c2904fa921c0561d1d9a  gcc/testsuite/g++.dg/pr90773-1.h
  3b24e07ec2e2fe92e9e0e41335fb1b36  gcc/testsuite/g++.dg/pr90773-1a.C
  ade4b8d60a1f2cb059d6fbb5a0692ff3  gcc/testsuite/g++.dg/pr90773-1b.C
--- 37422,37427 ----
*************** b6e066cc704bbace8cbfa3d84d6416c9  gcc/te
*** 29831,29836 ****
--- 37475,38054 ----
  811592037db74bbc53431e930fefbe1a  gcc/testsuite/g++.dg/pubtypes.C
  c858352ed9c3656275116995879c5a8a  gcc/testsuite/g++.dg/recip_sqrt_mult_1.C
  ba996bbdd4fa7d29eb83826ce56286db  gcc/testsuite/g++.dg/recip_sqrt_mult_2.C
+ 8d058da2979b2281ea7296d308098434  gcc/testsuite/g++.dg/reflect/access_context1.C
+ 0718aa80b2f3f6003982c05c87f30063  gcc/testsuite/g++.dg/reflect/access_context2.C
+ 5672929e36bfce1255d60bd4305dcc71  gcc/testsuite/g++.dg/reflect/access_context3.C
+ 79b6c11dad254773021e78868fb03cbb  gcc/testsuite/g++.dg/reflect/adl1.C
+ 5c46e879dd2e662303fadc44a009d5a0  gcc/testsuite/g++.dg/reflect/alias1.C
+ b6b6837c9c6945d15aae1007c9655611  gcc/testsuite/g++.dg/reflect/alias2.C
+ a1fd3a6a97a773f4f193235ad05dca1c  gcc/testsuite/g++.dg/reflect/alignment_of1.C
+ db186235554be9b7c4c4cd1d64102448  gcc/testsuite/g++.dg/reflect/alignment_of2.C
+ 11bc606636185e720abfec102a446450  gcc/testsuite/g++.dg/reflect/annotations1.C
+ e0ee95e9b95793ee4d57f8204bf8645d  gcc/testsuite/g++.dg/reflect/annotations10.C
+ f6da6bc220f84f52571fc202af3e6006  gcc/testsuite/g++.dg/reflect/annotations11.C
+ d0688f26f2ebb5828f6f48cc79bc7f61  gcc/testsuite/g++.dg/reflect/annotations12.C
+ 8d81fca4d65c911f50361a306552693f  gcc/testsuite/g++.dg/reflect/annotations13.C
+ d74843286cf1eb52ed6cfd02d075cf2b  gcc/testsuite/g++.dg/reflect/annotations14.C
+ c38c5ec06f234c9f6702e4c3ac079d6e  gcc/testsuite/g++.dg/reflect/annotations15.C
+ c0110e1b5cd947792635c901d4495d19  gcc/testsuite/g++.dg/reflect/annotations16.C
+ 56cf933eba135a5f5d3be35d021e7135  gcc/testsuite/g++.dg/reflect/annotations17.C
+ 68421d9fea46dcde0540a2edbeb3750b  gcc/testsuite/g++.dg/reflect/annotations18.C
+ cde9ad9488133ece9333eb048f65f1e1  gcc/testsuite/g++.dg/reflect/annotations2.C
+ b31ed4442038ed211b83481f0c6b097f  gcc/testsuite/g++.dg/reflect/annotations3.C
+ 95036b72f565c8ac8e22eb21a94626f1  gcc/testsuite/g++.dg/reflect/annotations4.C
+ fe0836ae8bc2eae4db9cf55e6fe58e5e  gcc/testsuite/g++.dg/reflect/annotations5.C
+ 52183ac252419247bd1a55d28d356534  gcc/testsuite/g++.dg/reflect/annotations6.C
+ 7197de7986e56e47fffcc516a0a6e28d  gcc/testsuite/g++.dg/reflect/annotations7.C
+ bae6d6398266dd286951a779994c5fea  gcc/testsuite/g++.dg/reflect/annotations8.C
+ 82bae5061eb1327bb8aad907bc7464e6  gcc/testsuite/g++.dg/reflect/annotations9.C
+ 92881a77a05ad9d04320fc70d49d0772  gcc/testsuite/g++.dg/reflect/anon1.C
+ 240095cc5fa8d5e850cc3b6a3df6cdf5  gcc/testsuite/g++.dg/reflect/anon2.C
+ c43e40fe08389dac58e1fabc0937b315  gcc/testsuite/g++.dg/reflect/anon3.C
+ 952c09f4c08d3854d99361fdfcff4fb9  gcc/testsuite/g++.dg/reflect/anon4.C
+ 71a5a17d31dea5a7a7d60fd3b36453dc  gcc/testsuite/g++.dg/reflect/bases_of1.C
+ 50d204becc5a564d003524bbda54d480  gcc/testsuite/g++.dg/reflect/bases_of2.C
+ a3ca02798bae6834626899e3f48626d9  gcc/testsuite/g++.dg/reflect/bases_of3.C
+ 817512416d8343f0871b4548743aabf7  gcc/testsuite/g++.dg/reflect/bit_cast.C
+ 118a467750da473b2ad68973e520b6c9  gcc/testsuite/g++.dg/reflect/bit_size_of1.C
+ cdfee9c92cd1c39030b9538abaa0bbc0  gcc/testsuite/g++.dg/reflect/bitfield1.C
+ 26489e1481d28e38679c10fb0945c3d0  gcc/testsuite/g++.dg/reflect/can_substitute1.C
+ cf1ce97bd56b5845905e4696d6e21793  gcc/testsuite/g++.dg/reflect/class1.C
+ 7e1297bc870fe6904620a1d784bd3929  gcc/testsuite/g++.dg/reflect/class2.C
+ 92d9b5b1bf8f84c19d0b739b4cf4482c  gcc/testsuite/g++.dg/reflect/common_reference1.C
+ 487cfa186771c9640f8860d544bb7f50  gcc/testsuite/g++.dg/reflect/common_type1.C
+ cd206cb5ea84f41a1db6f893297a8a28  gcc/testsuite/g++.dg/reflect/compare1.C
+ eb84036c2fb391317cdd8fb25e15cd20  gcc/testsuite/g++.dg/reflect/compare10.C
+ 69b694ff95906eceb103f53ff258b9aa  gcc/testsuite/g++.dg/reflect/compare11.C
+ 77f46ccfa338c4f9a75ef678d7ba5555  gcc/testsuite/g++.dg/reflect/compare2.C
+ 7c0c70816017268061a751c3bdbd538f  gcc/testsuite/g++.dg/reflect/compare3.C
+ 43bc2faf991123b2c587dad97132a94c  gcc/testsuite/g++.dg/reflect/compare4.C
+ 26ff3fb9d84661a03b28e40511fef415  gcc/testsuite/g++.dg/reflect/compare5.C
+ 09e1efe5771d8ca7e58515943f5072d6  gcc/testsuite/g++.dg/reflect/compare6.C
+ 443f23055fa6ef1c04dd052255304335  gcc/testsuite/g++.dg/reflect/compare7.C
+ c904467a71b469ad19ac245ff86a688f  gcc/testsuite/g++.dg/reflect/compare8.C
+ 40feb1042d1daefbdcd0fb6ba0f035b9  gcc/testsuite/g++.dg/reflect/compare9.C
+ 93f7d56c10957b5c536f0f5607120434  gcc/testsuite/g++.dg/reflect/compat1.C
+ 5099ae69183a971da3cd6780a7dbe8f9  gcc/testsuite/g++.dg/reflect/complete1.C
+ 6ebdd8c877eaf75c6836160eee60d974  gcc/testsuite/g++.dg/reflect/concept1.C
+ 11137d680afe19be9fda652628f4f9aa  gcc/testsuite/g++.dg/reflect/constant_of1.C
+ 787273832fdeace9aa387d16b45d5acc  gcc/testsuite/g++.dg/reflect/constant_of2.C
+ 6dce9c471620ac11e8a1153d76aa0a38  gcc/testsuite/g++.dg/reflect/constant_of3.C
+ 1c22ff6e7c79248772173a4ea6a2ab41  gcc/testsuite/g++.dg/reflect/constant_of4.C
+ 1d4b479547e165a5412e14a9326aa4cf  gcc/testsuite/g++.dg/reflect/constant_of5.C
+ 3d9b10f1a2d3aca6f83b412c5a85a79d  gcc/testsuite/g++.dg/reflect/constant_of6.C
+ edd0d59ec76c7c78594e6927a836e933  gcc/testsuite/g++.dg/reflect/constant_of7.C
+ 5e07eb68edac99f52a53cce16ac70187  gcc/testsuite/g++.dg/reflect/constant_of8.C
+ 7673ffd369326cd2652da80b94a78095  gcc/testsuite/g++.dg/reflect/constant_of9.C
+ 5c824cee5e2baf1b8ac5eb19ca0e3b55  gcc/testsuite/g++.dg/reflect/crash1.C
+ cd4269abf864d20403d8fb31ce477f2c  gcc/testsuite/g++.dg/reflect/crash10.C
+ 2422949d84e97172554e5d85efc5bbb5  gcc/testsuite/g++.dg/reflect/crash11.C
+ da1beb4185a29d67525e0c2662e3bf48  gcc/testsuite/g++.dg/reflect/crash12.C
+ e1bc1bead47e5c70581c4fd484464fff  gcc/testsuite/g++.dg/reflect/crash13.C
+ 62281952b5574c91ff9d4b26736166ed  gcc/testsuite/g++.dg/reflect/crash14.C
+ a53dc121d95af0b575afde7329733e7f  gcc/testsuite/g++.dg/reflect/crash15.C
+ 3c9c6caa587b938ca6655f331d023b2e  gcc/testsuite/g++.dg/reflect/crash16.C
+ 9ca9f1b75f738a678aa5371ad5e2f83c  gcc/testsuite/g++.dg/reflect/crash17.C
+ fd4d2ba7da42a991ae7f0513e8331f00  gcc/testsuite/g++.dg/reflect/crash18.C
+ 309589a647e1e59e65023ba6a7a660c4  gcc/testsuite/g++.dg/reflect/crash19.C
+ aedec6415587682cae64f0232f5869ed  gcc/testsuite/g++.dg/reflect/crash2.C
+ 14ecac878204c1c4bb0ceace08351966  gcc/testsuite/g++.dg/reflect/crash20.C
+ 29a468e1665b85e6ec85bdf769e09233  gcc/testsuite/g++.dg/reflect/crash21.C
+ fe3eb312d2cb0bd41c622979383748d5  gcc/testsuite/g++.dg/reflect/crash22.C
+ f8a45c06b569517b400e04c1e8b83fa7  gcc/testsuite/g++.dg/reflect/crash23.C
+ d69af9b43443999127305847e0961348  gcc/testsuite/g++.dg/reflect/crash3.C
+ 08df10fc9089ca9b7056d12d68c3ef8f  gcc/testsuite/g++.dg/reflect/crash4.C
+ dd86fc7e909711154b284147a6956686  gcc/testsuite/g++.dg/reflect/crash5.C
+ bb1f8ef1f398381c552b719d90f00b29  gcc/testsuite/g++.dg/reflect/crash6.C
+ 5c36ae6c6399a8e7b2df47ece2f93822  gcc/testsuite/g++.dg/reflect/crash7.C
+ d7c8a0736148c190a05cdcf0be278b45  gcc/testsuite/g++.dg/reflect/crash8.C
+ 1887a5b2c89f86441a2513cbe86a0371  gcc/testsuite/g++.dg/reflect/crash9.C
+ 40e0b83e9f5e4ebd7cb42b81d404427d  gcc/testsuite/g++.dg/reflect/ctad1.C
+ 48485d1b5fa30776dc43286baed70612  gcc/testsuite/g++.dg/reflect/ctad2.C
+ a9e2cdfbbd48c446276861eac975e686  gcc/testsuite/g++.dg/reflect/current_class1.C
+ a62b17736737c20ad3cc85624fbd03c9  gcc/testsuite/g++.dg/reflect/current_class2.C
+ 7c8dd401466452efde37fb47896afe10  gcc/testsuite/g++.dg/reflect/current_function1.C
+ abe64eefcda9fd970ebcb9a20a6a1e05  gcc/testsuite/g++.dg/reflect/current_function2.C
+ 0e619c7a366594b345d4deedcce937a7  gcc/testsuite/g++.dg/reflect/current_namespace1.C
+ 78264bb85ba3fc9eed3eeb93f4c19f36  gcc/testsuite/g++.dg/reflect/cwg3149.C
+ 4e6d9aa2459457638b2bf169d9aa74d9  gcc/testsuite/g++.dg/reflect/cwg3153.C
+ 70bab2b27c8038d6662ee1a47f3a127b  gcc/testsuite/g++.dg/reflect/data_member_spec1.C
+ 7a39a909b30dd98b1d59e84153ab5cb1  gcc/testsuite/g++.dg/reflect/data_member_spec2.C
+ d9a7fd232d445f9b66afc3bae1204b42  gcc/testsuite/g++.dg/reflect/data_member_spec3.C
+ 7d8b3fad71e1451f1bb83533b5f928bd  gcc/testsuite/g++.dg/reflect/data_member_spec4.C
+ 75f2be1ae6fe4c4db45c2f6394a71646  gcc/testsuite/g++.dg/reflect/data_member_spec5.C
+ b988f6afebcc77aaf14d6b50dc6c33f8  gcc/testsuite/g++.dg/reflect/data_member_spec6.C
+ 6827b79a9f3b384d097887b34d32d277  gcc/testsuite/g++.dg/reflect/data_member_spec7.C
+ a90bbaada7db11433927609f58ce9807  gcc/testsuite/g++.dg/reflect/dealias1.C
+ ba847f7d57294ccd6b282e81baaaf83b  gcc/testsuite/g++.dg/reflect/dealias2.C
+ c9d4dece58db866f00e39bcc4cadb5f8  gcc/testsuite/g++.dg/reflect/dealias3.C
+ 32ac321c1bbb2d8cc91186a3d6039f67  gcc/testsuite/g++.dg/reflect/decltype1.C
+ 3fc7a14995ce0268dbe3d3811f8d6943  gcc/testsuite/g++.dg/reflect/decltype2.C
+ 0812d60a7ffe2d181412a252920fcaee  gcc/testsuite/g++.dg/reflect/defarg1.C
+ 35fb9a6b3789fdd6b10d806ba69be6d5  gcc/testsuite/g++.dg/reflect/define_aggregate1.C
+ 878bb2f33fc60ea5547e45259744a7a2  gcc/testsuite/g++.dg/reflect/define_aggregate10.C
+ f0f21ad05d20f33170e5464386bbc04a  gcc/testsuite/g++.dg/reflect/define_aggregate2.C
+ 39bd2120b97c0707f5d4525b080369ff  gcc/testsuite/g++.dg/reflect/define_aggregate3.C
+ 04bc06581deb87721ec02d1eb0d3ea6e  gcc/testsuite/g++.dg/reflect/define_aggregate4.C
+ 1bc6bc2f0fee0e8ab828d7554483c997  gcc/testsuite/g++.dg/reflect/define_aggregate5.C
+ af1bbac17b682c9735c44fb46bb8fb14  gcc/testsuite/g++.dg/reflect/define_aggregate6.C
+ f9e6bc494fdb593194e70adcd9d4b105  gcc/testsuite/g++.dg/reflect/define_aggregate7.C
+ 922185c5927538589de28c076986b9a7  gcc/testsuite/g++.dg/reflect/define_aggregate8.C
+ f1ede9a4cbcc839fab9cf35f8ac6f8ed  gcc/testsuite/g++.dg/reflect/define_aggregate9.C
+ 11d83620f7051ba50394a864952db60e  gcc/testsuite/g++.dg/reflect/define_static_array1.C
+ 388f1c5706640dbdf3b8e6017b3e4834  gcc/testsuite/g++.dg/reflect/define_static_array2.C
+ 76b6ad1540a13225c11e60306e2fe45c  gcc/testsuite/g++.dg/reflect/define_static_array3.C
+ 8f4ed059665ea7a94243fa99cb792e98  gcc/testsuite/g++.dg/reflect/define_static_array4.C
+ c02515caef100c916d56859e612c414f  gcc/testsuite/g++.dg/reflect/define_static_array5.C
+ b8ed99a2435372d4ed69a4f92647aa9c  gcc/testsuite/g++.dg/reflect/define_static_array6.C
+ 29f60cd4f06a2aeaa33d6d03cd800fb1  gcc/testsuite/g++.dg/reflect/define_static_object1.C
+ 3629a70faac44351a2c0c453ef9dbe51  gcc/testsuite/g++.dg/reflect/define_static_object2.C
+ b7ed52abe86f4f7c8db2ebf610edeae3  gcc/testsuite/g++.dg/reflect/define_static_string1.C
+ 74a9da651383d9b624e829c74d8705b9  gcc/testsuite/g++.dg/reflect/dep1.C
+ 2090f130f698bc9d2d5ad0f675b42168  gcc/testsuite/g++.dg/reflect/dep10.C
+ a91076163632559f3333bcb1ef96b8fa  gcc/testsuite/g++.dg/reflect/dep11.C
+ 089422c88e9ccacf9cadda5dd1e7a5aa  gcc/testsuite/g++.dg/reflect/dep12.C
+ 27d9460a193ce7d4e90cab55cbd94bee  gcc/testsuite/g++.dg/reflect/dep13.C
+ 488bc5c168024b6b780c8eb7f6bcfbdb  gcc/testsuite/g++.dg/reflect/dep14.C
+ 5ad7826c151890919478e6df81f4d9c8  gcc/testsuite/g++.dg/reflect/dep2.C
+ 0c0dac16104f8e96f71d07858c4a3a86  gcc/testsuite/g++.dg/reflect/dep3.C
+ 88c6774c1f0b10dc1375bd9a535099cb  gcc/testsuite/g++.dg/reflect/dep4.C
+ 30730b548ed644442fe883f13984f294  gcc/testsuite/g++.dg/reflect/dep5.C
+ 27fd41741e15cae97a2741d3df1680b6  gcc/testsuite/g++.dg/reflect/dep6.C
+ caadd2bfc2b0a8223c1bd926f856e2da  gcc/testsuite/g++.dg/reflect/dep7.C
+ a971aae130c7a95be14b62e161cd2ba6  gcc/testsuite/g++.dg/reflect/dep8.C
+ e206f01c179e8a843dc93974bf8abcf8  gcc/testsuite/g++.dg/reflect/dep9.C
+ 32068df79a54a0924e4b71a0e9ecefb3  gcc/testsuite/g++.dg/reflect/diag1.C
+ 6ef30130fe2f6384f72a814710d11be3  gcc/testsuite/g++.dg/reflect/diag1a.C
+ 2817a16255677086c5cd9aa7e01b7966  gcc/testsuite/g++.dg/reflect/diag1b.C
+ c383f7bdf34cc8248e3fb9c61011574a  gcc/testsuite/g++.dg/reflect/diag2.C
+ 32ccc692cd8f4f800d5b7cf0f8c10e82  gcc/testsuite/g++.dg/reflect/diag3.C
+ 1533eb5d112721a72e26e68b9d092170  gcc/testsuite/g++.dg/reflect/diag4.C
+ 20539bb1e62472f10fa8334f10ff9cd3  gcc/testsuite/g++.dg/reflect/diag5.C
+ db85d7c65c5f57d9c7f5d259e7145883  gcc/testsuite/g++.dg/reflect/diag6.C
+ 6e51e54469631fcaf1fd97c86928c65e  gcc/testsuite/g++.dg/reflect/display_string_of1.C
+ bfb32884dd0c74934dec0a8d6ce03d92  gcc/testsuite/g++.dg/reflect/eh1.C
+ 8cab0986acf9fb4bd447cea1a90ab571  gcc/testsuite/g++.dg/reflect/eh10.C
+ d543768d4691f8f8de3a895373766cb8  gcc/testsuite/g++.dg/reflect/eh2.C
+ 1f1e3e76e5396dd5212128aa8d5efd8a  gcc/testsuite/g++.dg/reflect/eh3.C
+ 3e46ad73df6f3ebee6a89f0408144e7e  gcc/testsuite/g++.dg/reflect/eh4.C
+ 2d8332fa4e636235f83374acfbf34a3e  gcc/testsuite/g++.dg/reflect/eh5.C
+ 38a234dee576194a3715a8e511d1426f  gcc/testsuite/g++.dg/reflect/eh6.C
+ 921aab29773ecf5634effce9886572e5  gcc/testsuite/g++.dg/reflect/eh7.C
+ faafb1e5e8bfafbcd2e2ae683d5c5f07  gcc/testsuite/g++.dg/reflect/eh8.C
+ 63da1b212dc6641e5f3a67e84ed1a68f  gcc/testsuite/g++.dg/reflect/eh9.C
+ 2b40a02f1ed53b6bab1a344d5edd8aa2  gcc/testsuite/g++.dg/reflect/enumerators_of1.C
+ 04d9a22b5b43c4289de935dbccac2ed6  gcc/testsuite/g++.dg/reflect/error1.C
+ 7c7c53e3fca775308e60aaef6f744fa7  gcc/testsuite/g++.dg/reflect/error10.C
+ 2c9f13a2651383956671a08269662579  gcc/testsuite/g++.dg/reflect/error11.C
+ 274736df915df8a9983053ee6560cbc0  gcc/testsuite/g++.dg/reflect/error12.C
+ 69edf1172a90d65c86d8d9bb69b88b21  gcc/testsuite/g++.dg/reflect/error2.C
+ eb3f835094fc060a3320066f75665133  gcc/testsuite/g++.dg/reflect/error3.C
+ 5caf93c84084cbeab5b7f76875d678ae  gcc/testsuite/g++.dg/reflect/error4.C
+ 9c99904432f0705cdef14013388e31f7  gcc/testsuite/g++.dg/reflect/error5.C
+ 6dad71fc45a878bcafd4500cde907505  gcc/testsuite/g++.dg/reflect/error6.C
+ b6e5358e929ecce99496e00535aeba9d  gcc/testsuite/g++.dg/reflect/error8.C
+ 9c8bebf2a51bdac66f56ebcd8d2e79b5  gcc/testsuite/g++.dg/reflect/error9.C
+ b8eb86b029a2ffb0d23c96945ba35e78  gcc/testsuite/g++.dg/reflect/expansion-stmt1.C
+ d0c3aa9a3c90bdcdec43e03e5dbf0a42  gcc/testsuite/g++.dg/reflect/expansion-stmt2.C
+ ef71588876bf0ee65b0798ae88ee95e0  gcc/testsuite/g++.dg/reflect/expansion-stmt3.C
+ 92058e6db958dd512a0f906581bd91a8  gcc/testsuite/g++.dg/reflect/expr1.C
+ a8a15705ab8187b001c195f1cec551cf  gcc/testsuite/g++.dg/reflect/expr10.C
+ dd2e7162c7d5dd2ca76a4c15861d9607  gcc/testsuite/g++.dg/reflect/expr11.C
+ 37a868e08a2fb9d0c6b2664b9ccdd800  gcc/testsuite/g++.dg/reflect/expr12.C
+ d9fff53183f3cbc21c2786ee54aac085  gcc/testsuite/g++.dg/reflect/expr13.C
+ cb62b6f411eaa0edabe6a10520d7652c  gcc/testsuite/g++.dg/reflect/expr14.C
+ 7d931bd0fd71d114fa6a17dce607e802  gcc/testsuite/g++.dg/reflect/expr15.C
+ f3f33f49043a48d1ae3edf4ed1f5e2f3  gcc/testsuite/g++.dg/reflect/expr16.C
+ 8a9b940805893540797936869da281d7  gcc/testsuite/g++.dg/reflect/expr2.C
+ 4b1fb75674597a85fb0234f3b45e8f9e  gcc/testsuite/g++.dg/reflect/expr3.C
+ 6db5cf1cb9ce8e043687a3df14680bc3  gcc/testsuite/g++.dg/reflect/expr4.C
+ 2f5078e222bbbc165f5206961c222ffb  gcc/testsuite/g++.dg/reflect/expr5.C
+ 7d020fd4ecbc4b1230e2e19a4dd74baf  gcc/testsuite/g++.dg/reflect/expr6.C
+ 160b9d3b4135ae1cabc2c2562502ca2f  gcc/testsuite/g++.dg/reflect/expr7.C
+ 1cd7741d2f6f90710374d1931630135d  gcc/testsuite/g++.dg/reflect/expr8.C
+ 8fe2397dfdbd64875570160305cc0f58  gcc/testsuite/g++.dg/reflect/expr9.C
+ ae495996d548d703161c69615987ad3a  gcc/testsuite/g++.dg/reflect/extent1.C
+ fc8eb9caec31ed43b28a325abfd37d2c  gcc/testsuite/g++.dg/reflect/extract1.C
+ d06fc880f882040192ade82d9d976678  gcc/testsuite/g++.dg/reflect/extract10.C
+ e84593bf159c34f20e485a74c1b6a95e  gcc/testsuite/g++.dg/reflect/extract11.C
+ 44596b8acd054952983a5a4fb33bd17a  gcc/testsuite/g++.dg/reflect/extract2.C
+ 515a58bb25a97ee5979dc2cc0a4acce9  gcc/testsuite/g++.dg/reflect/extract3.C
+ 31ce562c358fd306cdee178e270282ea  gcc/testsuite/g++.dg/reflect/extract4.C
+ a6e387dcf0ed9a031e5cfe55cef693b1  gcc/testsuite/g++.dg/reflect/extract5.C
+ 6938f681b7c80a76c17efc98dc5f3ce2  gcc/testsuite/g++.dg/reflect/extract6.C
+ a8d56dba67d3e38c69cd73989942b6f9  gcc/testsuite/g++.dg/reflect/extract7.C
+ 90a098a09645b4fdee9a2712e997fdbc  gcc/testsuite/g++.dg/reflect/extract8.C
+ dd2227984481efc068df9fad2db70d23  gcc/testsuite/g++.dg/reflect/extract9.C
+ c3aa2325e200938257a287ca1049e4ed  gcc/testsuite/g++.dg/reflect/feat1.C
+ 893f25349a91dbac520876ed52d48b19  gcc/testsuite/g++.dg/reflect/feat2.C
+ 78b10d57b8ad646d835c19304f1cbd12  gcc/testsuite/g++.dg/reflect/feat3.C
+ 161f0254b359ce954f72124bb202c5a7  gcc/testsuite/g++.dg/reflect/has_c_language_linkage1.C
+ 15b93d7620d02c60b28beb4fefd6951b  gcc/testsuite/g++.dg/reflect/has_default_argument1.C
+ 626e46c43bca50953d0c173af0e61317  gcc/testsuite/g++.dg/reflect/has_default_argument2.C
+ 1ba9c0afbd3d3bfee8cdbd06bce926cc  gcc/testsuite/g++.dg/reflect/has_default_member_initializer1.C
+ ad9d237ed8234f3163d2b9a8acbde932  gcc/testsuite/g++.dg/reflect/has_external_linkage1.C
+ 28080947cbe6438236a470a7c524eb31  gcc/testsuite/g++.dg/reflect/has_external_linkage2.C
+ 0bac0e8ea55a7df3bc484a9d849e94b3  gcc/testsuite/g++.dg/reflect/has_identifier1.C
+ f3106ee1db11e843e05f71450e20d8b8  gcc/testsuite/g++.dg/reflect/has_identifier2.C
+ 3a5b659b19871056077a9193dce7574b  gcc/testsuite/g++.dg/reflect/has_identifier3.C
+ 67a1dc2d6d970a18e4b9fdf8a8fb6435  gcc/testsuite/g++.dg/reflect/has_internal_linkage1.C
+ c9c2fafb4e508a2604bd0e8375351d8b  gcc/testsuite/g++.dg/reflect/has_internal_linkage2.C
+ 579f5f3a28946b54f432a9aaf6ac1bd1  gcc/testsuite/g++.dg/reflect/has_linkage1.C
+ f425cc4c94b98bd21593783d21892327  gcc/testsuite/g++.dg/reflect/has_module_linkage1.C
+ 66f043c96f1021fe0f1a2bdfa3c2f4ca  gcc/testsuite/g++.dg/reflect/has_module_linkage2.C
+ 4ce029dab96644e608063a8020ae2138  gcc/testsuite/g++.dg/reflect/has_parent1.C
+ cb850cd3338c9749c0b33d924ed00a57  gcc/testsuite/g++.dg/reflect/has_template_arguments1.C
+ de0f55ef9b96c27bd58bd2fbbc36e8cb  gcc/testsuite/g++.dg/reflect/has_template_arguments2.C
+ 90b2fb1d5a2ff9be2149247a2409b5da  gcc/testsuite/g++.dg/reflect/has_template_arguments3.C
+ ab1db2b0eb404ff32ef9a7071d76c8fd  gcc/testsuite/g++.dg/reflect/has_template_arguments4.C
+ c06bd497360c05fbf80ffb2ffdbffe27  gcc/testsuite/g++.dg/reflect/identifier_of1.C
+ 4e38907428d25d2a0cf80b5f56cf6f64  gcc/testsuite/g++.dg/reflect/identifier_of2.C
+ 1c9e03241b17bfeb65c31a850c4486d8  gcc/testsuite/g++.dg/reflect/identifier_of3.C
+ 1e2c2dcb3d05269583ceaf415358474f  gcc/testsuite/g++.dg/reflect/init1.C
+ ec949dc698d4dd0b434d6c269db3d31d  gcc/testsuite/g++.dg/reflect/init10.C
+ 8dc0d0d0fae9dfaf4da9774c4db397c3  gcc/testsuite/g++.dg/reflect/init11.C
+ 31b74d4045244358f5ddf0340022aa0b  gcc/testsuite/g++.dg/reflect/init12.C
+ 94efec18a5d3953240068549411fd160  gcc/testsuite/g++.dg/reflect/init13.C
+ aa8f04eae840cf292352166e158cfd5c  gcc/testsuite/g++.dg/reflect/init14.C
+ 2f7952cde0bb918e80b859c86f0f6aed  gcc/testsuite/g++.dg/reflect/init15.C
+ 8e50886b33b97c105f268ac4464d550c  gcc/testsuite/g++.dg/reflect/init16.C
+ d90fcc99ddaeb5505678c7c407e0ab75  gcc/testsuite/g++.dg/reflect/init17.C
+ 314f62be0110f9e0a46fdc1b7585aebd  gcc/testsuite/g++.dg/reflect/init2.C
+ 0512b3bdec0b0fd28051477e9423aa67  gcc/testsuite/g++.dg/reflect/init3.C
+ d46e1560ddd6be61c86743909c517b4e  gcc/testsuite/g++.dg/reflect/init4.C
+ 16e06e6f77463e4d204ed502c4b1312b  gcc/testsuite/g++.dg/reflect/init5.C
+ cb936d17683d7e8c4aa4694bf2e3c5da  gcc/testsuite/g++.dg/reflect/init6.C
+ 0fca34cd6f2a0742f9ad6095c3e5c333  gcc/testsuite/g++.dg/reflect/init7.C
+ 8c024b9064bedc0871c9233763f8946f  gcc/testsuite/g++.dg/reflect/init8.C
+ 4194935886cfb2b11d58b4ee27a10524  gcc/testsuite/g++.dg/reflect/init9.C
+ e32daebcb5a2c3af4591a9461a061429  gcc/testsuite/g++.dg/reflect/is_accessible1.C
+ 230691c7d478727c1d03d6ce04564045  gcc/testsuite/g++.dg/reflect/is_accessible2.C
+ ac791bc807fe0c7b53e76d5da44218ff  gcc/testsuite/g++.dg/reflect/is_alias_template1.C
+ 8a8199f0b8ee781f2f20ab30ab7aad23  gcc/testsuite/g++.dg/reflect/is_assignment1.C
+ 6086c12db6ae18199911def135e2ab6a  gcc/testsuite/g++.dg/reflect/is_bit_field1.C
+ 00448bb312c6a82f8b783fb2c261eca2  gcc/testsuite/g++.dg/reflect/is_class_member1.C
+ e787aed23c696a86456b0bb63c55c905  gcc/testsuite/g++.dg/reflect/is_class_template1.C
+ 69d27261600ef7e9bb5da4837bfdf6c8  gcc/testsuite/g++.dg/reflect/is_complete_type1.C
+ 49cc91ffb05d6a9ba6ef6b45d3e540b6  gcc/testsuite/g++.dg/reflect/is_complete_type2.C
+ 907a9b51160c4994e0564b44dda5824d  gcc/testsuite/g++.dg/reflect/is_concept1.C
+ 38a31d7e4824271d0377098550b08aa7  gcc/testsuite/g++.dg/reflect/is_const1.C
+ 64df49905b691d820e4d1acd6536884c  gcc/testsuite/g++.dg/reflect/is_constructible_type1.C
+ edcf11d1d04e007df81b6c1b604ade38  gcc/testsuite/g++.dg/reflect/is_constructible_type2.C
+ bd09d4860633e0abef89800db481ef7b  gcc/testsuite/g++.dg/reflect/is_constructor_template1.C
+ f4a56a950a2bd5cb78ade91ca7986fe8  gcc/testsuite/g++.dg/reflect/is_constuctor1.C
+ e1f633c9f453273819581afe1fb408d1  gcc/testsuite/g++.dg/reflect/is_conversion_function1.C
+ a32b4b1121b495b62b9da9215c71cb93  gcc/testsuite/g++.dg/reflect/is_conversion_function_template1.C
+ fc7d12ed2fbda5d665f037d6d31ecc14  gcc/testsuite/g++.dg/reflect/is_copy_assignment1.C
+ 098c5f6de879f4dd66fe2c00c4b3944a  gcc/testsuite/g++.dg/reflect/is_copy_constructor1.C
+ a12567cab383b4fdd8868ff799d7a158  gcc/testsuite/g++.dg/reflect/is_data_member_spec1.C
+ d22a9ab03353b81e172ea389664d7bf9  gcc/testsuite/g++.dg/reflect/is_default_constructor1.C
+ 4a92c70c0eb651a0622b66edba7da291  gcc/testsuite/g++.dg/reflect/is_defaulted1.C
+ 02d19eba89632140a460396b72fe6939  gcc/testsuite/g++.dg/reflect/is_defaulted2.C
+ 9d914a3626ffbaa15ce334a8e0e4aade  gcc/testsuite/g++.dg/reflect/is_deleted1.C
+ a052e75c54216eda3a7ed548767640a4  gcc/testsuite/g++.dg/reflect/is_deleted2.C
+ 7c870cef82b333b4702c415f72d762a3  gcc/testsuite/g++.dg/reflect/is_destructor1.C
+ e790c039e0e092e68f38b1726e16d237  gcc/testsuite/g++.dg/reflect/is_enumerable_type1.C
+ 9e9917be672f086d123062004e2a548d  gcc/testsuite/g++.dg/reflect/is_enumerator1.C
+ cf4b29f5a184c24c75624cfadbb6701c  gcc/testsuite/g++.dg/reflect/is_explicit1.C
+ df9b3bf5132e39f8a09c99bc27987315  gcc/testsuite/g++.dg/reflect/is_explicit2.C
+ bb48a0d872f20ef6d7a8880e98ad7086  gcc/testsuite/g++.dg/reflect/is_explicit_object_parameter1.C
+ 0e60388c629805e49960eeff70b54b1b  gcc/testsuite/g++.dg/reflect/is_final1.C
+ 022e42914195fa993b27771e411ee773  gcc/testsuite/g++.dg/reflect/is_function1.C
+ 2ec721685f4dab9159ca7c561879cc8d  gcc/testsuite/g++.dg/reflect/is_function2.C
+ 52b79b1608fc475b9f652f7ca0aad11f  gcc/testsuite/g++.dg/reflect/is_function3.C
+ dc2700d74f2ac3d126ee43abd7bd1494  gcc/testsuite/g++.dg/reflect/is_function_parameter1.C
+ 54ff5cd094e84d34cd5ed11eb6f70ae9  gcc/testsuite/g++.dg/reflect/is_function_parameter2.C
+ 89fcf27380bcee287e4235b29d14f531  gcc/testsuite/g++.dg/reflect/is_function_template1.C
+ fe85ee0d81fdd578dd4d16749aa89960  gcc/testsuite/g++.dg/reflect/is_function_template2.C
+ cd8b335479481d42fd594239cc723ab9  gcc/testsuite/g++.dg/reflect/is_function_type1.C
+ 2ed9d6800ea08083368dcdb43e9291b0  gcc/testsuite/g++.dg/reflect/is_literal_operator1.C
+ 2312dfdc3b8372d327a2e3a5d3aee00b  gcc/testsuite/g++.dg/reflect/is_literal_operator_template1.C
+ fc45e1ef9f58bd6a7614052a84b65bba  gcc/testsuite/g++.dg/reflect/is_lrvalue_reference_qualified1.C
+ 43c9413daf18e8ff5cc5f909733189b0  gcc/testsuite/g++.dg/reflect/is_move_assignment1.C
+ 562bd53ef6bf04ba8783413c8d9e77dd  gcc/testsuite/g++.dg/reflect/is_move_constructor1.C
+ 657b4c425375b43a4520a9477578289d  gcc/testsuite/g++.dg/reflect/is_mutable_member1.C
+ 726c080b8acbafed09570c6c58a1ae15  gcc/testsuite/g++.dg/reflect/is_namespace1.C
+ b2f7380f8fb82d61118b86f574efdf5b  gcc/testsuite/g++.dg/reflect/is_namespace_alias1.C
+ 2eeb1dfdffa04726a6facc2444612271  gcc/testsuite/g++.dg/reflect/is_namespace_member1.C
+ 8e979c5b8844a6520767c6efb09db89c  gcc/testsuite/g++.dg/reflect/is_noexcept1.C
+ ef7e9d0ca8688dc92475afb0aa712b4d  gcc/testsuite/g++.dg/reflect/is_noexcept2.C
+ 529256eb00d725cf4e7fe378768231fd  gcc/testsuite/g++.dg/reflect/is_noexcept3.C
+ 251cf6db3cd6d8fe18e0a994d7f2da41  gcc/testsuite/g++.dg/reflect/is_noexcept4.C
+ 2315aabaecef6a5b6556b8d384a700b1  gcc/testsuite/g++.dg/reflect/is_nonstatic_data_member1.C
+ 1e283c86c818492e229ab35822b90502  gcc/testsuite/g++.dg/reflect/is_object1.C
+ 9b9e3859a91aeb1c0e35e658a1cb1d74  gcc/testsuite/g++.dg/reflect/is_object2.C
+ 29590f8c59c0a00a852aa6909b49260b  gcc/testsuite/g++.dg/reflect/is_operator_function1.C
+ d5a1181af8bc4b25a3d2d724c0de83eb  gcc/testsuite/g++.dg/reflect/is_operator_function_template1.C
+ d705a2403f21ad32aef3e6e9ee763a23  gcc/testsuite/g++.dg/reflect/is_override1.C
+ c84e630a475f3025f5312fe34c916da1  gcc/testsuite/g++.dg/reflect/is_pure_virtual1.C
+ 5c516ec29647a5b84282fb28bc6f8fb2  gcc/testsuite/g++.dg/reflect/is_special_member_function1.C
+ cffc8a013897fb3553865b86ba72383a  gcc/testsuite/g++.dg/reflect/is_static_member1.C
+ a149b1bd1090219b0caa06c742c06766  gcc/testsuite/g++.dg/reflect/is_string_literal1.C
+ 6a2dd82163d65ba7fc78cc6dd274b5db  gcc/testsuite/g++.dg/reflect/is_structured_binding1.C
+ 31d287ccca4858cb6b7df144cc6561b4  gcc/testsuite/g++.dg/reflect/is_structured_binding2.C
+ 22fc644c4713c89f3848019502ad5414  gcc/testsuite/g++.dg/reflect/is_template1.C
+ 6b3899b9d8f829c417d46017b448ab60  gcc/testsuite/g++.dg/reflect/is_template2.C
+ 7524642bd3d0cae7277d3d6f359027c3  gcc/testsuite/g++.dg/reflect/is_type1.C
+ 9a7e60d8d9d1f2373102bc3e89c24efb  gcc/testsuite/g++.dg/reflect/is_type_alias1.C
+ 5ef17f140c864f9de364d596c3bc2575  gcc/testsuite/g++.dg/reflect/is_type_alias2.C
+ b4f796ba62257af7b6ef0a628e7be5a7  gcc/testsuite/g++.dg/reflect/is_type_alias3.C
+ cf1cf059b14dedec267b9d3eb14af4f6  gcc/testsuite/g++.dg/reflect/is_user_declared1.C
+ 2f2d410caf560ef61b04c889247f4558  gcc/testsuite/g++.dg/reflect/is_user_declared2.C
+ 08aeb095ec65f5b697c384d840034c3e  gcc/testsuite/g++.dg/reflect/is_user_provided1.C
+ cbd23b6c51de10b29357473a9adff8bc  gcc/testsuite/g++.dg/reflect/is_user_provided2.C
+ be1eaf6b618184982ede799eaa0b231e  gcc/testsuite/g++.dg/reflect/is_vararg_function1.C
+ 3b091e4035f42a5253b3b44f84c04b1f  gcc/testsuite/g++.dg/reflect/is_variable1.C
+ c9981a6f6220d8cb1be4791c68f39805  gcc/testsuite/g++.dg/reflect/is_variable_template1.C
+ bcbfe7a6746a7cf5019e4beb91dfc6e1  gcc/testsuite/g++.dg/reflect/is_virtual1.C
+ 1a53c150bd12e5b766549b40d9f21ca8  gcc/testsuite/g++.dg/reflect/is_volatile1.C
+ 7effab42f9c3e5cdce4834001aa7051d  gcc/testsuite/g++.dg/reflect/json-parser.C
+ 75564b7e49fd2ca4aec72df58d4ce257  gcc/testsuite/g++.dg/reflect/lex1.C
+ 5047184a71ebc4613c16d57f58d02456  gcc/testsuite/g++.dg/reflect/lex2.C
+ f6803b822ccb79238b24868d977699f4  gcc/testsuite/g++.dg/reflect/lwg4556.C
+ 7eb326f1731ded10f833d6bc1b6a8a35  gcc/testsuite/g++.dg/reflect/mangle1.C
+ 8adb63c51e98fb1692e89416e0887655  gcc/testsuite/g++.dg/reflect/mangle2.C
+ ea720c7f072506efc4d68f19c28f450d  gcc/testsuite/g++.dg/reflect/mangle3.C
+ db2ad60789319025e03e2cd9afc4409b  gcc/testsuite/g++.dg/reflect/mangle4.C
+ 13986cd705d67b3899c41c5cf5ce22c2  gcc/testsuite/g++.dg/reflect/mangle5.C
+ 2f2f67f28be6797089b2072e815b969d  gcc/testsuite/g++.dg/reflect/mangle6.C
+ a3a095f76106493121ca9f08dbb03b9e  gcc/testsuite/g++.dg/reflect/member-visibility1.C
+ ad855dfbd2b8005bd8560472ce0cf5b4  gcc/testsuite/g++.dg/reflect/member-visibility2.C
+ 2682080dfb339e8cc080b395ee8d0a02  gcc/testsuite/g++.dg/reflect/member1.C
+ 798c02332c1f9a2f17309c4a50856e1b  gcc/testsuite/g++.dg/reflect/member10.C
+ 0cba845b2bb01c6139ddd64d9f8b5f57  gcc/testsuite/g++.dg/reflect/member11.C
+ 762fdbd174cf2ac6c75d9d8bd1eb3321  gcc/testsuite/g++.dg/reflect/member12.C
+ 4a7bf7a5063fd95a42f10e1f9db20c3b  gcc/testsuite/g++.dg/reflect/member13.C
+ a511d0918588fcdaf7f7e67daf993ddd  gcc/testsuite/g++.dg/reflect/member14.C
+ 01e8d8deebec5d7349d2120b2cd5afba  gcc/testsuite/g++.dg/reflect/member15.C
+ a1cdb8bf7f9f643fcc25e69a9a742a11  gcc/testsuite/g++.dg/reflect/member16.C
+ e0239469386941b146064cb464bd03c8  gcc/testsuite/g++.dg/reflect/member17.C
+ 67ae698b3600eacd0ebb7033eb1537f3  gcc/testsuite/g++.dg/reflect/member18.C
+ d7bf4b2b4a12e0e7c5f568c235fe50c9  gcc/testsuite/g++.dg/reflect/member19.C
+ 8ebf4e8f059ee7695e3d2f4523f941e8  gcc/testsuite/g++.dg/reflect/member2.C
+ 5a76580cb5157802057a41baaeb6e392  gcc/testsuite/g++.dg/reflect/member20.C
+ 181521b03df5dc478a1ac9257c71682a  gcc/testsuite/g++.dg/reflect/member21.C
+ 8f0a225791758f8c40167f8e5110273d  gcc/testsuite/g++.dg/reflect/member22.C
+ 030145065ba1d9976a7d6a1a1d2274c7  gcc/testsuite/g++.dg/reflect/member23.C
+ 15ab3614f7ae1299d4e7d568ee2727f4  gcc/testsuite/g++.dg/reflect/member3.C
+ 70bee80f7f1e470fddab439ae8fdc529  gcc/testsuite/g++.dg/reflect/member4.C
+ 6fe67e7658a6bcb1550c6e320e9b1cb3  gcc/testsuite/g++.dg/reflect/member5.C
+ 79c751852acda9ad8561484ab2530cea  gcc/testsuite/g++.dg/reflect/member6.C
+ 6d9e2822017983605345c83cd6394e56  gcc/testsuite/g++.dg/reflect/member7.C
+ 6587073d195a9349db99c70b4f9a4f02  gcc/testsuite/g++.dg/reflect/member8.C
+ 33fa6f389e0fccc76ade8dfeb1535b4c  gcc/testsuite/g++.dg/reflect/member9.C
+ d1fd504ae938ad7e3b0edbf6834ec3b4  gcc/testsuite/g++.dg/reflect/members_of1.C
+ 003961dd53b2e05e53a6b911f852ef9c  gcc/testsuite/g++.dg/reflect/members_of10.C
+ c44e1d6dfaecfb4f263c78b17ed1b8c7  gcc/testsuite/g++.dg/reflect/members_of11.C
+ 623575016974295708d960e75d733062  gcc/testsuite/g++.dg/reflect/members_of12.C
+ a2c5daff71c5cc0345db4bd0e912e669  gcc/testsuite/g++.dg/reflect/members_of13.C
+ 689453102e4425f8d2c4ff89cb939595  gcc/testsuite/g++.dg/reflect/members_of2.C
+ 80a032eb31d0998f2d288e303356773a  gcc/testsuite/g++.dg/reflect/members_of3.C
+ 5ececa99994de569abffae1671b71870  gcc/testsuite/g++.dg/reflect/members_of4.C
+ eeea9a3cb3222c174ae79fde2539c7f7  gcc/testsuite/g++.dg/reflect/members_of5.C
+ 763692ff1741b8de0f544f2807ba4579  gcc/testsuite/g++.dg/reflect/members_of6.C
+ 55c41f09598b3c53288722e46c53c1cf  gcc/testsuite/g++.dg/reflect/members_of7.C
+ a34036db3004285985809be77695e11a  gcc/testsuite/g++.dg/reflect/members_of8.C
+ 169c8d5cfb9f547eba5a0e6a93850eb7  gcc/testsuite/g++.dg/reflect/members_of9.C
+ 5dfe729351628682329b585f411b52cb  gcc/testsuite/g++.dg/reflect/metafn-ptr1.C
+ 0c252e6ce559f33e421b9e84cf6b5a37  gcc/testsuite/g++.dg/reflect/no-exceptions1.C
+ 7c4ac5668a4ab5ce81ebe2774d6394b7  gcc/testsuite/g++.dg/reflect/no-exceptions2.C
+ 7ea29fd9a046e870ea501c8573ded819  gcc/testsuite/g++.dg/reflect/ns1.C
+ ad7d207d3074d99c1a99266c5b2127f9  gcc/testsuite/g++.dg/reflect/ns2.C
+ 5bed6b939e587040c075e70083201181  gcc/testsuite/g++.dg/reflect/ns3.C
+ d651773731e4ea962187b9e5a30570ca  gcc/testsuite/g++.dg/reflect/ns4.C
+ 0b7259d3184e59599aeead7ca291964b  gcc/testsuite/g++.dg/reflect/ns5.C
+ 33a30930e2e875396b90cb726be2f04d  gcc/testsuite/g++.dg/reflect/ns6.C
+ b028075830c73967c5119fee2f30c861  gcc/testsuite/g++.dg/reflect/null1.C
+ c6a71c4b6f87d8009162c82104ba6ea6  gcc/testsuite/g++.dg/reflect/null2.C
+ 9d8f7299a9aea98b5c1b82f0f3a3dc30  gcc/testsuite/g++.dg/reflect/null3.C
+ 43e0baff1477b6b498e5c1d34b4afe5d  gcc/testsuite/g++.dg/reflect/null4.C
+ 0213453633af68fab3da41d83281e0be  gcc/testsuite/g++.dg/reflect/null5.C
+ a2d565e73332bd6625619f67e5568365  gcc/testsuite/g++.dg/reflect/null6.C
+ ff22c9122c2c0fa7a5a06f539fcb9abe  gcc/testsuite/g++.dg/reflect/object_of1.C
+ 87988cb2a7a1da0cf4b8c94fa491b634  gcc/testsuite/g++.dg/reflect/object_of2.C
+ 655256ebf0d921eb7e5600d6494c42e0  gcc/testsuite/g++.dg/reflect/object_of3.C
+ 6f855a2823d74e720da5dd0986bd2163  gcc/testsuite/g++.dg/reflect/odr1.C
+ 09f2262749d7e8a324ecc271ec93e9ef  gcc/testsuite/g++.dg/reflect/offset_of1.C
+ 60f05f5be2c37cfef3de42182f69eb4e  gcc/testsuite/g++.dg/reflect/omp_depend1.C
+ 4cd54aaf4e23e6f2094814d7392296e8  gcc/testsuite/g++.dg/reflect/omp_taskwait1.C
+ 019759857338107cc6359f1fb1e6f013  gcc/testsuite/g++.dg/reflect/operator_of1.C
+ 2b0f744432e465559b5b58287819bbc2  gcc/testsuite/g++.dg/reflect/override1.C
+ 7dde213d58e8c1daafbfbfd5af17e5d5  gcc/testsuite/g++.dg/reflect/p2996-1.C
+ c634a4b2a4486a5b4a43633d2a0618c7  gcc/testsuite/g++.dg/reflect/p2996-10.C
+ 8ab6c5344e4f14b6050ed7b2bb4a49a4  gcc/testsuite/g++.dg/reflect/p2996-11.C
+ 6a8db1aef2d38fcafb349443b7e1a398  gcc/testsuite/g++.dg/reflect/p2996-12.C
+ 95f61b87bf0f7af7877307fa4cb06b06  gcc/testsuite/g++.dg/reflect/p2996-13.C
+ c4f82004380def285e0c839c569ff078  gcc/testsuite/g++.dg/reflect/p2996-14.C
+ 822323c6d3dfaa1f2c37385c1613bd12  gcc/testsuite/g++.dg/reflect/p2996-15.C
+ f63b81a3e6c7f2893e26afa00ccbc394  gcc/testsuite/g++.dg/reflect/p2996-16.C
+ 24605b6093caf5b93ff52758f0687abc  gcc/testsuite/g++.dg/reflect/p2996-17.C
+ b1714ceceb7e0124f79215552325258d  gcc/testsuite/g++.dg/reflect/p2996-18.C
+ 922ffbde1e1334493256d8bd37992afa  gcc/testsuite/g++.dg/reflect/p2996-19.C
+ abe6014fb8c7f438570842d11c32af7d  gcc/testsuite/g++.dg/reflect/p2996-2.C
+ 4baf88fa735613b6429392065c80f061  gcc/testsuite/g++.dg/reflect/p2996-20.C
+ 4ea1963c6976a08dcebd218bceb27637  gcc/testsuite/g++.dg/reflect/p2996-21.C
+ 380a351dd42d378245189d701e554ac4  gcc/testsuite/g++.dg/reflect/p2996-3.C
+ eec5e622402895b1825771f818559221  gcc/testsuite/g++.dg/reflect/p2996-4.C
+ 7660dc545dd65b782812f90cd7e599f0  gcc/testsuite/g++.dg/reflect/p2996-5.C
+ a50a28893edab692cde4895922fbf011  gcc/testsuite/g++.dg/reflect/p2996-6.C
+ 483ff485a9eeab292d6f65ad722ac089  gcc/testsuite/g++.dg/reflect/p2996-7.C
+ 29508caa5267d69f643d177e8e88e1f0  gcc/testsuite/g++.dg/reflect/p2996-8.C
+ 7aa636eff74b58a4aab107bd1ff7b138  gcc/testsuite/g++.dg/reflect/p2996-9.C
+ 33f83a94b5f10759ddee0f6d0306ba58  gcc/testsuite/g++.dg/reflect/p3394-1.C
+ f634f671906a4dd818a3550429747fcf  gcc/testsuite/g++.dg/reflect/p3491-1.C
+ 4b19aace4fcf0826ec6564807f25c8ea  gcc/testsuite/g++.dg/reflect/p3491-2.C
+ 2113071ef107b79c5882a0afe32e9a9b  gcc/testsuite/g++.dg/reflect/p3491-3.C
+ 9534bbaaa9101abab94bc5ffa3a293f6  gcc/testsuite/g++.dg/reflect/pack-index1.C
+ d769c20d76953f9e88aaec8b648608d2  gcc/testsuite/g++.dg/reflect/parameters_of1.C
+ 157793e98058b0e2274b5549412cd0a5  gcc/testsuite/g++.dg/reflect/parameters_of2.C
+ 85f420fd03c5ea1a6d9590d66abccd31  gcc/testsuite/g++.dg/reflect/parameters_of3.C
+ 436765e9e2030a27512366eaab66c37e  gcc/testsuite/g++.dg/reflect/parameters_of4.C
+ 22cf22648a9e3d3b08f4ff8def822d38  gcc/testsuite/g++.dg/reflect/parameters_of5.C
+ 27f03672191efb3132b9a4258c69a3fc  gcc/testsuite/g++.dg/reflect/parameters_of6.C
+ a51ba46fac5afc88adb4713e3d136a72  gcc/testsuite/g++.dg/reflect/parameters_of7.C
+ 0ee2cee54b894b3d12f09f8a07bc93e0  gcc/testsuite/g++.dg/reflect/parameters_of8.C
+ d6715d284c87d041e08a5fbebff9821e  gcc/testsuite/g++.dg/reflect/parent_of1.C
+ 55769fcd329e50bcfdf1c40931b35db5  gcc/testsuite/g++.dg/reflect/parm1.C
+ ee2a5065f194d0c1d1360c2d2a8f5d8b  gcc/testsuite/g++.dg/reflect/parm2.C
+ 20137ba8760da5d42ba55a0ab0d862fe  gcc/testsuite/g++.dg/reflect/parm3.C
+ 092c4aaf815b9da7b48dab330b6ce09d  gcc/testsuite/g++.dg/reflect/parm4.C
+ 5c2ff0b11bd0883a8da358feed43b5ee  gcc/testsuite/g++.dg/reflect/parm5.C
+ 45bdac50580e4c40dbd5ec689fbf5f3e  gcc/testsuite/g++.dg/reflect/parse1.C
+ c8112e4afd5ef66c1289210e075fbec4  gcc/testsuite/g++.dg/reflect/parse2.C
+ 8c5ab92d4afd63a2fd45539e6f05de30  gcc/testsuite/g++.dg/reflect/parse3.C
+ a0ed9ab19598e5557df6ce3cd0eb27b5  gcc/testsuite/g++.dg/reflect/parse4.C
+ 5ee820f60af15dc3d5e8520149a79b0d  gcc/testsuite/g++.dg/reflect/parse5.C
+ 8bad4ab31da94f87f0784a0c78e0a153  gcc/testsuite/g++.dg/reflect/parse6.C
+ 306b4ad2098e8b750ed54e51a41def85  gcc/testsuite/g++.dg/reflect/pr122634-1.C
+ a69973f9ba9d90dda2aa3c51a3581fae  gcc/testsuite/g++.dg/reflect/pr122634-2.C
+ bcea9ee60707a95dc9fe1a749981578a  gcc/testsuite/g++.dg/reflect/pr123404.C
+ d4968ca0625d3f393961f76e9655b84d  gcc/testsuite/g++.dg/reflect/pr123612.C
+ 6c1159b0d54c4859a992ca4b8182c68b  gcc/testsuite/g++.dg/reflect/pr124012.C
+ 23abb8eef645c1d8425f55d4469a1f73  gcc/testsuite/g++.dg/reflect/pr124227.C
+ 21163d77f163d23e3dc80cd1c30a9ae5  gcc/testsuite/g++.dg/reflect/pr124689.C
+ d1618ed5affc804f7f8cda302ecd3b2e  gcc/testsuite/g++.dg/reflect/pr124790.C
+ 121fa58431980b8ab5bd16473ccf8c21  gcc/testsuite/g++.dg/reflect/pr124792.C
+ e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
+ 4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
+ 8a49e7b1ad0cad9ac48fdcf37ad900cf  gcc/testsuite/g++.dg/reflect/range_args.C
+ 4a00c41972f2f14fa56db9ca726a463a  gcc/testsuite/g++.dg/reflect/reflect_constant1.C
+ 5d7610e1d1ccaf86552c4b68c0f0dcb1  gcc/testsuite/g++.dg/reflect/reflect_constant2.C
+ 2b1261b43d4d2862c007e4b67ac4dec0  gcc/testsuite/g++.dg/reflect/reflect_constant3.C
+ 56f4fab1f9cc258fffbbed8a454aa738  gcc/testsuite/g++.dg/reflect/reflect_constant4.C
+ 6ee37dab12c8d079c1e93833a4178610  gcc/testsuite/g++.dg/reflect/reflect_constant5.C
+ ea20b4d36f8c09e8db8dc22ebff369b1  gcc/testsuite/g++.dg/reflect/reflect_constant6.C
+ c9a28f1923f13abf7706e0302ed5209c  gcc/testsuite/g++.dg/reflect/reflect_constant7.C
+ f95ce0044b4db49d5f146e5fbe45875c  gcc/testsuite/g++.dg/reflect/reflect_constant8.C
+ 853d9cf6eccdb9acbc7b5f43613db0db  gcc/testsuite/g++.dg/reflect/reflect_constant9.C
+ 61d0a64ce5f607baeb67ce80bb50f4d7  gcc/testsuite/g++.dg/reflect/reflect_constant_array1.C
+ dadda107af5d7dd69715a4f20236adcf  gcc/testsuite/g++.dg/reflect/reflect_constant_array10.C
+ 0e1fde754081d183f9fa8134f9e44c84  gcc/testsuite/g++.dg/reflect/reflect_constant_array11.C
+ b1917b5ba841920599e01cb07bcd5bbe  gcc/testsuite/g++.dg/reflect/reflect_constant_array2.C
+ 50112030f94d83d432e32d44f823fcb3  gcc/testsuite/g++.dg/reflect/reflect_constant_array3.C
+ 5142cc73273428503aa2dbaf27e9128d  gcc/testsuite/g++.dg/reflect/reflect_constant_array4.C
+ b29f09bce5fedc3211b6eb400cc62e72  gcc/testsuite/g++.dg/reflect/reflect_constant_array5.C
+ 10cca31db14cf9dbc2eb39aa6b5c7046  gcc/testsuite/g++.dg/reflect/reflect_constant_array6.C
+ 8e6f55ab6834dd537136aaffcee77d98  gcc/testsuite/g++.dg/reflect/reflect_constant_array7.C
+ 9801a13ac8ff3735afc5f6be337a0893  gcc/testsuite/g++.dg/reflect/reflect_constant_array8.C
+ 783f530541a10963f84beeb7bb122ede  gcc/testsuite/g++.dg/reflect/reflect_constant_array9.C
+ 7282880efced8bee225c43aec4c50a71  gcc/testsuite/g++.dg/reflect/reflect_constant_string1.C
+ cc8c2137143cd854b6630dc3dcd4973f  gcc/testsuite/g++.dg/reflect/reflect_constant_string2.C
+ 1e3345a57a06ffa1bd23a544151f8b02  gcc/testsuite/g++.dg/reflect/reflect_function1.C
+ 7da537591cf227c4369675668096edf2  gcc/testsuite/g++.dg/reflect/reflect_function2.C
+ da5ef12464e2e90dfdfbebc6048074af  gcc/testsuite/g++.dg/reflect/reflect_object1.C
+ 219eed74893dc72a1ea85c285ae8bc02  gcc/testsuite/g++.dg/reflect/reflect_object2.C
+ 58189cd2fe7a510e516a09a9e032e291  gcc/testsuite/g++.dg/reflect/reflect_object3.C
+ 6f1b1f516dd8c8457f4d83096b939473  gcc/testsuite/g++.dg/reflect/reflect_object4.C
+ 3467b818a4428e27d79059fb69239f72  gcc/testsuite/g++.dg/reflect/return_type_of1.C
+ 0f44fc97754345cb42d2c2b6567feca7  gcc/testsuite/g++.dg/reflect/return_type_of2.C
+ 384bd4b8aef59f5885e5d97091cfaf54  gcc/testsuite/g++.dg/reflect/serialize1.C
+ 39dc9b081eff03a935ca3c033af42d20  gcc/testsuite/g++.dg/reflect/serialize2.C
+ f42afa22be98b32fdbba8bc038b1565e  gcc/testsuite/g++.dg/reflect/serialize3.C
+ acdd73b149c3c54aa0d80b81c86a5a4c  gcc/testsuite/g++.dg/reflect/size_of1.C
+ b54591a1a4cb544aba9831eba6b8174b  gcc/testsuite/g++.dg/reflect/source_location_of1.C
+ 82420344ec3910dc9c675d2a50b6dd1a  gcc/testsuite/g++.dg/reflect/source_location_of2.C
+ ae74f7e0fcb5cd481ffc4f5cdabaaea7  gcc/testsuite/g++.dg/reflect/splice1.C
+ 97e5f556b97d037ef366e43588c23406  gcc/testsuite/g++.dg/reflect/splice10.C
+ af18aac150e2da16b8511edc29458f59  gcc/testsuite/g++.dg/reflect/splice11.C
+ d20c15bde9b075e8a72181fbeddab319  gcc/testsuite/g++.dg/reflect/splice12.C
+ 181522d91c03754a636d5ed4033852e0  gcc/testsuite/g++.dg/reflect/splice13.C
+ 72689e6800e3d32f9204809856f50e61  gcc/testsuite/g++.dg/reflect/splice14.C
+ c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
+ e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
+ c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
+ 7b92bf1022d7ac9417aab2524b0e6682  gcc/testsuite/g++.dg/reflect/splice5.C
+ 0badbfd09ec045739bf918587cc70dcf  gcc/testsuite/g++.dg/reflect/splice6.C
+ 6738eaccb426d5d58c46b54bbd7b4bfb  gcc/testsuite/g++.dg/reflect/splice7.C
+ 52791f318015d99618ee0d3ccfe2de5f  gcc/testsuite/g++.dg/reflect/splice8.C
+ 6ae78eb52f6a9a466d32687acdb99f98  gcc/testsuite/g++.dg/reflect/splice9.C
+ d83516569f96b60f16ca10d6af0c3fdd  gcc/testsuite/g++.dg/reflect/splicing-base1.C
+ 5b08c4bd5ec55584fe063a1ede09bf93  gcc/testsuite/g++.dg/reflect/splicing-base2.C
+ 161c6b2b6c32e9474a22d401880f7e25  gcc/testsuite/g++.dg/reflect/splicing-base3.C
+ 828b34ddd835b0457a4d3b42b1f39fe4  gcc/testsuite/g++.dg/reflect/splicing-base4.C
+ deb8d7929a75c59a3b5e1acffe8dbc2e  gcc/testsuite/g++.dg/reflect/storage_duration1.C
+ f84dc9ba34cda9fdc1466eac8199bf97  gcc/testsuite/g++.dg/reflect/storage_duration2.C
+ ef83de902dee2f6fe942c29156f8503f  gcc/testsuite/g++.dg/reflect/storage_duration3.C
+ deddb1584f584cf686cd42b793483827  gcc/testsuite/g++.dg/reflect/subobjects_of1.C
+ 61f47186bb7769959e6cbcf0b286ddbe  gcc/testsuite/g++.dg/reflect/substitute1.C
+ 7412640ef90c2fa539ef91699f15ed14  gcc/testsuite/g++.dg/reflect/substitute2.C
+ fb988bd3ed4b676491a6a1bc94c867aa  gcc/testsuite/g++.dg/reflect/substitute3.C
+ e24c084d73cca9b28a4c473c5918117f  gcc/testsuite/g++.dg/reflect/substitute4.C
+ 127280869c2a6dcc31194aacecdbe006  gcc/testsuite/g++.dg/reflect/substitute5.C
+ 38ca28226f1eeb270c2ef69782415db2  gcc/testsuite/g++.dg/reflect/substitute6.C
+ bad9d4a9d39f990c8a9aeecbfc28f07e  gcc/testsuite/g++.dg/reflect/substitute7.C
+ 41d388bcacebad49d2c3fd3646f62c3e  gcc/testsuite/g++.dg/reflect/symbol_of1.C
+ 50aad9cdb1b735a5db8189b077851c47  gcc/testsuite/g++.dg/reflect/symbol_of2.C
+ 3c4a6b28fbbc43055df381d76f413b2f  gcc/testsuite/g++.dg/reflect/template_arguments_of1.C
+ 8e9280f6ad4e5c65f03dccb8e51aefc7  gcc/testsuite/g++.dg/reflect/template_arguments_of2.C
+ 0b36ea79af1e6323ae15815e8e4759d3  gcc/testsuite/g++.dg/reflect/template_arguments_of3.C
+ 1f1fd5a223dd428cc68eb012d03a95ae  gcc/testsuite/g++.dg/reflect/template_of1.C
+ 78bf7ef59fdf5c4f4b28ea75eaa5f4d4  gcc/testsuite/g++.dg/reflect/template_of2.C
+ 89e96f6ffe32cd4e10add49c5348c9d4  gcc/testsuite/g++.dg/reflect/template_of3.C
+ 5ff33f8b7b91d646ec538fe100609b93  gcc/testsuite/g++.dg/reflect/test.json
+ 64112525decdfd942b3bb45931514e96  gcc/testsuite/g++.dg/reflect/tuple1.C
+ ff49ad2327b77188c9be7008d37b0fa1  gcc/testsuite/g++.dg/reflect/tuple2.C
+ 108c9f28791a9fec38b31b04cf7ec18f  gcc/testsuite/g++.dg/reflect/type1.C
+ 7ddd44fc3b31dc7a9800814c464043fa  gcc/testsuite/g++.dg/reflect/type10.C
+ 9c43b4082295c4623ff424298cbfe7f6  gcc/testsuite/g++.dg/reflect/type11.C
+ b468479b1feb70e677c72b4fb0612f94  gcc/testsuite/g++.dg/reflect/type2.C
+ d8a3c8c16d619e634a0ac785558d78a3  gcc/testsuite/g++.dg/reflect/type3.C
+ 1ea86d8cc75b073a21cfdfda5218f35e  gcc/testsuite/g++.dg/reflect/type4.C
+ 39553b040f3d67b3d526e7de4b0114cb  gcc/testsuite/g++.dg/reflect/type5.C
+ 24d6f2c3c38ba068c15e41ac86337573  gcc/testsuite/g++.dg/reflect/type6.C
+ 40a69e9361b22f6a58fc25815bc4b804  gcc/testsuite/g++.dg/reflect/type7.C
+ 0d9163acdbee795ad2d759efb9b92ee4  gcc/testsuite/g++.dg/reflect/type8.C
+ 428c7497ade86d1054c19afa40e9b052  gcc/testsuite/g++.dg/reflect/type9.C
+ a97f51af196e9b66ef9d840989598a75  gcc/testsuite/g++.dg/reflect/type_of1.C
+ 2cbbc76b7de463f6b1d9d308ec90a956  gcc/testsuite/g++.dg/reflect/type_of2.C
+ 04ceff367fd1cae985265e6d71d444db  gcc/testsuite/g++.dg/reflect/type_of3.C
+ 923b99a2592b5b36ddaef3f2fa7327dd  gcc/testsuite/g++.dg/reflect/type_rels1.C
+ 9180e7348d8521febdaba8e0dee848e6  gcc/testsuite/g++.dg/reflect/type_trait1.C
+ a66e1dc9964c7702e9ecdb5be8553fb5  gcc/testsuite/g++.dg/reflect/type_trait10.C
+ 4fb586d7efeeabc9fafb9d8f9f4ec796  gcc/testsuite/g++.dg/reflect/type_trait11.C
+ 9b33e0cb088a6815bc1f1c4cb74a8aa5  gcc/testsuite/g++.dg/reflect/type_trait12.C
+ 485cae337b48a98f34af212dc8b5ceb5  gcc/testsuite/g++.dg/reflect/type_trait13.C
+ bc0bf40e9258e25c6c46ff13963f154e  gcc/testsuite/g++.dg/reflect/type_trait14.C
+ 06a1343d9aeb1caa65048fdecda31245  gcc/testsuite/g++.dg/reflect/type_trait2.C
+ c957460ae45089ece9b5352a7de1f5fc  gcc/testsuite/g++.dg/reflect/type_trait3.C
+ 6a48574284311a70358d27e1b45595b3  gcc/testsuite/g++.dg/reflect/type_trait4.C
+ 0fec151174dbffb695ffa7fb194523bf  gcc/testsuite/g++.dg/reflect/type_trait5.C
+ 7c9280bc78006b6ed6b75ff5c1c9facc  gcc/testsuite/g++.dg/reflect/type_trait6.C
+ 0cb8ffc5aa03364efe260c9bc9c2a638  gcc/testsuite/g++.dg/reflect/type_trait8.C
+ d9fed6fe6bccb0abd2890360744d1a95  gcc/testsuite/g++.dg/reflect/type_trait9.C
+ edcec8a84ae93d9cffb3a7cd96c90b7d  gcc/testsuite/g++.dg/reflect/u8display_string_of1.C
+ 069b12fc99736e061dda304c7240e4b0  gcc/testsuite/g++.dg/reflect/u8identifier_of1.C
+ 41ca774b408bb80d08217f17926a5cfd  gcc/testsuite/g++.dg/reflect/u8symbol_of1.C
+ 66e9924618e01c3871c0c6349d9353c8  gcc/testsuite/g++.dg/reflect/underlying_type1.C
+ 7411de583d43c552e7b071b948639d1b  gcc/testsuite/g++.dg/reflect/using1.C
+ 3480e0132e11bbdaa8bce4bee580750a  gcc/testsuite/g++.dg/reflect/using2.C
+ f84807ff51acb72fe4c1370c2591148e  gcc/testsuite/g++.dg/reflect/value_or_object1.C
+ b6fc6119f5cfb5fe32a5e8b8cb496342  gcc/testsuite/g++.dg/reflect/variable_of1.C
+ 698263b907a62caf5450f66f2c18a05f  gcc/testsuite/g++.dg/reflect/variable_of2.C
+ 84ccc302f81b355370729ab12c7ec54b  gcc/testsuite/g++.dg/reflect/variable_of3.C
+ b20c7245cc70a16f4549d5de46d19bde  gcc/testsuite/g++.dg/reflect/variant1.C
+ 52f1b07fcecf5b7dfd7849245a01cd09  gcc/testsuite/g++.dg/reflect/variant2.C
+ 9eb3efd54c1e30ffca6cb34a1f4136d1  gcc/testsuite/g++.dg/reflect/vector1.C
+ 62d016174539cb0e54555fc2d57fa012  gcc/testsuite/g++.dg/reflect/visibility1.C
  2bcb8e987d41c50dbd1de216296fd071  gcc/testsuite/g++.dg/rtti/anon-ns1.C
  7345c9463c7d47c7d425463846af6b14  gcc/testsuite/g++.dg/rtti/crash1.C
  34c4c8f1721c4f70c2261dcc1b0a7630  gcc/testsuite/g++.dg/rtti/crash2.C
*************** b0c0786c803eaf05e6755f729c87257e  gcc/te
*** 29872,29883 ****
  3bf0c0d4697ad1ada3cda87b9bc2dc61  gcc/testsuite/g++.dg/rtti/typeid8.C
  1f8ec1c3ba15e07e5cd63d52ea64abab  gcc/testsuite/g++.dg/rtti/typeid9.C
  1f6dccfd0b7bb5ffeb1fce36767c67d0  gcc/testsuite/g++.dg/rtti/undeclared1.C
  aee2d86d69331bf86f4fc179eaf2f8aa  gcc/testsuite/g++.dg/semicolon-fixits.C
  358da784b700bf42b91032b2ceb71406  gcc/testsuite/g++.dg/simulate-thread/atomics-1.C
  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
--- 38090,38108 ----
  3bf0c0d4697ad1ada3cda87b9bc2dc61  gcc/testsuite/g++.dg/rtti/typeid8.C
  1f8ec1c3ba15e07e5cd63d52ea64abab  gcc/testsuite/g++.dg/rtti/typeid9.C
  1f6dccfd0b7bb5ffeb1fce36767c67d0  gcc/testsuite/g++.dg/rtti/undeclared1.C
+ 13ec6b1e53a69c190e7472f3d0c0202e  gcc/testsuite/g++.dg/sarif-output/logical-locations-1.C
+ 001f2d6fa6aa48fa72bcae762239962e  gcc/testsuite/g++.dg/sarif-output/logical-locations-1.py
+ b755386b601011353d28c87a9a68a77a  gcc/testsuite/g++.dg/sarif-output/logical-locations-2.C
+ 36f6783f5de1456e225c3021b9d1c711  gcc/testsuite/g++.dg/sarif-output/logical-locations-2.py
+ 3cabfac1c8007a189f66bf9bcb77d4fc  gcc/testsuite/g++.dg/sarif-output/logical-locations-3.C
+ b4bd37522628a12b55d31f340b563b70  gcc/testsuite/g++.dg/sarif-output/logical-locations-3.py
+ b9b3fabc9e6afa312812a2e1b60f46e7  gcc/testsuite/g++.dg/sarif-output/sarif-output.exp
  aee2d86d69331bf86f4fc179eaf2f8aa  gcc/testsuite/g++.dg/semicolon-fixits.C
  358da784b700bf42b91032b2ceb71406  gcc/testsuite/g++.dg/simulate-thread/atomics-1.C
  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
! 1a78e41a8328531c0ed234576113ef8e  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
*** 29887,29893 ****
  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
--- 38112,38118 ----
  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
! 8b5c8011390653df7d00f5ba0229c43f  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
*************** db994e5b10fcb3e8ba3d62cd17b3ae65  gcc/te
*** 29934,29939 ****
--- 38159,38165 ----
  62aa8921c6705fdab59b10a7be7f39b9  gcc/testsuite/g++.dg/tc1/dr161.C
  3e61e5bdc2b1492780331f39f942586f  gcc/testsuite/g++.dg/tc1/dr164.C
  5825ece278cc051f3204f72abb191317  gcc/testsuite/g++.dg/tc1/dr166.C
+ 18c42ebaf610df10d811e4b47e7ff0d1  gcc/testsuite/g++.dg/tc1/dr176-2.C
  41924759177f1face88bf750afa5a403  gcc/testsuite/g++.dg/tc1/dr176.C
  54a7e43eb51f59e7eae694e23b7ef1f6  gcc/testsuite/g++.dg/tc1/dr179.C
  9704d0caf0975b804de4cf5a0218a1db  gcc/testsuite/g++.dg/tc1/dr185.C
*************** f5dd522ddee3217946f5d8e187a18f08  gcc/te
*** 29945,29951 ****
  4fb82d7e4a9796fa0b4736a115fcd5de  gcc/testsuite/g++.dg/tc1/dr217-2.C
  f95188ab9a32c62f14c6cecc4da4c6b7  gcc/testsuite/g++.dg/tc1/dr217.C
  9c539eaced56bf5f6dfcc87de03577a2  gcc/testsuite/g++.dg/tc1/dr48.C
! 2d505ce906bacb84abf98000ee1f70ad  gcc/testsuite/g++.dg/tc1/dr49.C
  67859d251420e5fcec24790feb06b815  gcc/testsuite/g++.dg/tc1/dr52.C
  6a9b2ff3865ebd4b9b4a24ea9e5fa1e0  gcc/testsuite/g++.dg/tc1/dr68.C
  99fbd5404170a32ec3b81a4c87114aa9  gcc/testsuite/g++.dg/tc1/dr74.C
--- 38171,38177 ----
  4fb82d7e4a9796fa0b4736a115fcd5de  gcc/testsuite/g++.dg/tc1/dr217-2.C
  f95188ab9a32c62f14c6cecc4da4c6b7  gcc/testsuite/g++.dg/tc1/dr217.C
  9c539eaced56bf5f6dfcc87de03577a2  gcc/testsuite/g++.dg/tc1/dr48.C
! dcf79af8632ce6fdd27c0dfd42e7aed1  gcc/testsuite/g++.dg/tc1/dr49.C
  67859d251420e5fcec24790feb06b815  gcc/testsuite/g++.dg/tc1/dr52.C
  6a9b2ff3865ebd4b9b4a24ea9e5fa1e0  gcc/testsuite/g++.dg/tc1/dr68.C
  99fbd5404170a32ec3b81a4c87114aa9  gcc/testsuite/g++.dg/tc1/dr74.C
*************** f75072de1c2abdfca708b732cbfafa89  gcc/te
*** 30180,30193 ****
  44d05d042dc79a79585f17b3bcda6ec0  gcc/testsuite/g++.dg/template/crash103.C
  1225a54926913e691b51137aef8b5d33  gcc/testsuite/g++.dg/template/crash104.C
  f07fd8a3820e9db30fbbab54d71dd891  gcc/testsuite/g++.dg/template/crash105.C
! f19bbfba4bb14d6e3ff2d65c8da05557  gcc/testsuite/g++.dg/template/crash106.C
  792c7b5aeb05b03e17861b41172963b0  gcc/testsuite/g++.dg/template/crash107.C
  01e34c6dbadd8c372851425abdb78adb  gcc/testsuite/g++.dg/template/crash108.C
  b3167df4bc44e634fce27a27e383e9a4  gcc/testsuite/g++.dg/template/crash109.C
  b9d6c3e2462b2f141eef9706fb73f7ad  gcc/testsuite/g++.dg/template/crash11.C
  bc34a5c1a684295dab662a89dc6697f6  gcc/testsuite/g++.dg/template/crash110.C
  f5c17c8c05a6c2d1d6b29054c88125a1  gcc/testsuite/g++.dg/template/crash111.C
! cafccb8ed409984b3ee5d4f9079957fa  gcc/testsuite/g++.dg/template/crash112.C
  eefdeb6db423d33961319f597beaebfa  gcc/testsuite/g++.dg/template/crash113.C
  9cf3fd890329936ea0594b310d9a64c1  gcc/testsuite/g++.dg/template/crash114.C
  ef817469f252f778c53765d1bbf1e129  gcc/testsuite/g++.dg/template/crash115.C
--- 38406,38419 ----
  44d05d042dc79a79585f17b3bcda6ec0  gcc/testsuite/g++.dg/template/crash103.C
  1225a54926913e691b51137aef8b5d33  gcc/testsuite/g++.dg/template/crash104.C
  f07fd8a3820e9db30fbbab54d71dd891  gcc/testsuite/g++.dg/template/crash105.C
! f7adbbf195de7e6c3dcc4fd4325a3b5c  gcc/testsuite/g++.dg/template/crash106.C
  792c7b5aeb05b03e17861b41172963b0  gcc/testsuite/g++.dg/template/crash107.C
  01e34c6dbadd8c372851425abdb78adb  gcc/testsuite/g++.dg/template/crash108.C
  b3167df4bc44e634fce27a27e383e9a4  gcc/testsuite/g++.dg/template/crash109.C
  b9d6c3e2462b2f141eef9706fb73f7ad  gcc/testsuite/g++.dg/template/crash11.C
  bc34a5c1a684295dab662a89dc6697f6  gcc/testsuite/g++.dg/template/crash110.C
  f5c17c8c05a6c2d1d6b29054c88125a1  gcc/testsuite/g++.dg/template/crash111.C
! 84836a0a390a3f18de7863dcbb8138a6  gcc/testsuite/g++.dg/template/crash112.C
  eefdeb6db423d33961319f597beaebfa  gcc/testsuite/g++.dg/template/crash113.C
  9cf3fd890329936ea0594b310d9a64c1  gcc/testsuite/g++.dg/template/crash114.C
  ef817469f252f778c53765d1bbf1e129  gcc/testsuite/g++.dg/template/crash115.C
*************** df27fa537f93cbc7c2d2e1f1d60aee3e  gcc/te
*** 30210,30215 ****
--- 38436,38442 ----
  9c6b765ef2765893236204902d1a1e19  gcc/testsuite/g++.dg/template/crash130.C
  89f747766be706a5f5c19c7e4868993b  gcc/testsuite/g++.dg/template/crash131.C
  8295637f711a0ce2e777cc798e8a6d00  gcc/testsuite/g++.dg/template/crash132.C
+ 1a52449e00b05d795dcabb33ba6911e5  gcc/testsuite/g++.dg/template/crash133.C
  7c732ef3b17279bd746eb1196b0d76fe  gcc/testsuite/g++.dg/template/crash14.C
  e50e217f7da35dc497156675b2547e44  gcc/testsuite/g++.dg/template/crash15.C
  0b7b35a94bb1a8a5457b2c3bd299d5e2  gcc/testsuite/g++.dg/template/crash16.C
*************** c96940bb22962f4c0c4140417e941221  gcc/te
*** 30344,30349 ****
--- 38571,38577 ----
  36be74ab38dfc08e2e1dd78b440aebf1  gcc/testsuite/g++.dg/template/defarg22.C
  45f4e97e2c13e9d490a347d7a32d446d  gcc/testsuite/g++.dg/template/defarg23.C
  822c19c10de6090a592642ff360f031f  gcc/testsuite/g++.dg/template/defarg23a.C
+ 36f1d4de0ec0c5f1df2983890e4b2db8  gcc/testsuite/g++.dg/template/defarg24.C
  e55baeaf118c452b9f707b8236ee86b1  gcc/testsuite/g++.dg/template/defarg3.C
  85fedaa782f4c82823c89324e1881131  gcc/testsuite/g++.dg/template/defarg4.C
  84d085b3ed907df1747cc523efd8d714  gcc/testsuite/g++.dg/template/defarg5.C
*************** e55baeaf118c452b9f707b8236ee86b1  gcc/te
*** 30353,30364 ****
  bbc0cedc0c23e5084b73fd2bd7d12be0  gcc/testsuite/g++.dg/template/defarg9.C
  08e2480f72bcb72f3f0c69f74625bd4c  gcc/testsuite/g++.dg/template/delete1.C
  f64b5dcbfa3d3051a358c8d1c1e8a878  gcc/testsuite/g++.dg/template/delete2.C
! 405318b0ed9079d8a3152d85bfbe6fc3  gcc/testsuite/g++.dg/template/dependent-args1.C
  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
--- 38581,38593 ----
  bbc0cedc0c23e5084b73fd2bd7d12be0  gcc/testsuite/g++.dg/template/defarg9.C
  08e2480f72bcb72f3f0c69f74625bd4c  gcc/testsuite/g++.dg/template/delete1.C
  f64b5dcbfa3d3051a358c8d1c1e8a878  gcc/testsuite/g++.dg/template/delete2.C
! 4820802a013c4ae847e44af5c8e547b3  gcc/testsuite/g++.dg/template/dependent-args1.C
  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
+ 5ba9018528a9791e64425a869d0b3993  gcc/testsuite/g++.dg/template/dependent-base6.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
*************** ecf4a5a96a9a66275db51c43656e4549  gcc/te
*** 30379,30384 ****
--- 38608,38614 ----
  5a8510fe4f107344e120dad60a01d61e  gcc/testsuite/g++.dg/template/dependent-name16.C
  821354ce1318166659eba50d9ae2f7bc  gcc/testsuite/g++.dg/template/dependent-name17.C
  e8a32b9dc0ab464b7f14ed88342967c0  gcc/testsuite/g++.dg/template/dependent-name18.C
+ 95cef29e581db16b7553a10027c170e2  gcc/testsuite/g++.dg/template/dependent-name19.C
  18d61b100652dfe4816b8b9c6cefa923  gcc/testsuite/g++.dg/template/dependent-name2.C
  03c5fb73327b7854a036dd70874ee185  gcc/testsuite/g++.dg/template/dependent-name3.C
  147338e18276d105fca28005404df2a8  gcc/testsuite/g++.dg/template/dependent-name4.C
*************** b9e41ae6abb7bd214530b9d8fee49b42  gcc/te
*** 30467,30473 ****
  ab2750d62bfb7afdc283b7fa1c8c2a0a  gcc/testsuite/g++.dg/template/error42.C
  d58d76bac4c95f750552f6b080278a6d  gcc/testsuite/g++.dg/template/error43.C
  b001446d33d8c616d09be4d167938ac3  gcc/testsuite/g++.dg/template/error44.C
! 7671645c3f9a57016a5fee9111ddb609  gcc/testsuite/g++.dg/template/error45.C
  b0ef65753d1383f38d67a443d42d26ef  gcc/testsuite/g++.dg/template/error46.C
  1f61d6479aa7ef6c2bc8a2661b08959a  gcc/testsuite/g++.dg/template/error47.C
  afa89a3122c9da6cc0dd12ddd6d1fe41  gcc/testsuite/g++.dg/template/error48.C
--- 38697,38703 ----
  ab2750d62bfb7afdc283b7fa1c8c2a0a  gcc/testsuite/g++.dg/template/error42.C
  d58d76bac4c95f750552f6b080278a6d  gcc/testsuite/g++.dg/template/error43.C
  b001446d33d8c616d09be4d167938ac3  gcc/testsuite/g++.dg/template/error44.C
! 60a3e24142c5ca02022a9227b33515dc  gcc/testsuite/g++.dg/template/error45.C
  b0ef65753d1383f38d67a443d42d26ef  gcc/testsuite/g++.dg/template/error46.C
  1f61d6479aa7ef6c2bc8a2661b08959a  gcc/testsuite/g++.dg/template/error47.C
  afa89a3122c9da6cc0dd12ddd6d1fe41  gcc/testsuite/g++.dg/template/error48.C
*************** d8f7b87db1014927f2070e74b2efaaf2  gcc/te
*** 30624,30638 ****
  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
  bead5f49843ac4a923c8b06419fc1688  gcc/testsuite/g++.dg/template/function1.C
  4b00efc6df70febef975b0e3b186b589  gcc/testsuite/g++.dg/template/incomplete1.C
  6eb242700c6d66d2e369769157f668e1  gcc/testsuite/g++.dg/template/incomplete10.C
  013b3193d7f45f44f8c7e8a4b8e35e24  gcc/testsuite/g++.dg/template/incomplete11.C
  df3a53ea10f472305fa74419388585e8  gcc/testsuite/g++.dg/template/incomplete12.C
  df42e6e9d79980210f8fc115b6f3ea26  gcc/testsuite/g++.dg/template/incomplete2.C
  0b05707ff39fe3ad9f22ea6ba6d5be2c  gcc/testsuite/g++.dg/template/incomplete3.C
  8b8acaf760a13971063951b263ef315c  gcc/testsuite/g++.dg/template/incomplete4.C
--- 38854,38872 ----
  ae55d6e48a2ac8b72c938dc82c696408  gcc/testsuite/g++.dg/template/friend84.C
  7b1e5908f61421fb93ba70039b7baafb  gcc/testsuite/g++.dg/template/friend85.C
  40f2052ca29ac45703070d7e1c57ce4d  gcc/testsuite/g++.dg/template/friend86.C
! 8b5a278d3c02cae63edfc0733831aca7  gcc/testsuite/g++.dg/template/friend87.C
! caaef5f71ace9c745eacf4ef132c6647  gcc/testsuite/g++.dg/template/friend88.C
! 99ddfedf4b85949e6b8e3db74361caa3  gcc/testsuite/g++.dg/template/friend89.C
  59b5bf61b7f6210d3cf3b9b45692794a  gcc/testsuite/g++.dg/template/friend9.C
  d5d24fc94d133229a10c5b13f44c253b  gcc/testsuite/g++.dg/template/func1.C
! 363cfac4cb9c49757acf9e6f0861b62e  gcc/testsuite/g++.dg/template/func2.C
  bead5f49843ac4a923c8b06419fc1688  gcc/testsuite/g++.dg/template/function1.C
+ afca637314dc606fbc716b5e0d5ae345  gcc/testsuite/g++.dg/template/implicit-func-cast.C
  4b00efc6df70febef975b0e3b186b589  gcc/testsuite/g++.dg/template/incomplete1.C
  6eb242700c6d66d2e369769157f668e1  gcc/testsuite/g++.dg/template/incomplete10.C
  013b3193d7f45f44f8c7e8a4b8e35e24  gcc/testsuite/g++.dg/template/incomplete11.C
  df3a53ea10f472305fa74419388585e8  gcc/testsuite/g++.dg/template/incomplete12.C
+ a0d453defe6300da06373d21bd6d2fc4  gcc/testsuite/g++.dg/template/incomplete13.C
  df42e6e9d79980210f8fc115b6f3ea26  gcc/testsuite/g++.dg/template/incomplete2.C
  0b05707ff39fe3ad9f22ea6ba6d5be2c  gcc/testsuite/g++.dg/template/incomplete3.C
  8b8acaf760a13971063951b263ef315c  gcc/testsuite/g++.dg/template/incomplete4.C
*************** d57d3d6b5c4c1d0a3fa0910f3184bb28  gcc/te
*** 30682,30687 ****
--- 38916,38922 ----
  d7b25ce77b1c73d29c031fd124333dbd  gcc/testsuite/g++.dg/template/koenig11.C
  2a237bf85b5110767ee2d7fc60431d5d  gcc/testsuite/g++.dg/template/koenig12.C
  910b9b56e4cf571a16e7268a8f27dd9c  gcc/testsuite/g++.dg/template/koenig12a.C
+ d0291b965ab3606ec7e7df782790a3e6  gcc/testsuite/g++.dg/template/koenig13.C
  5e527c865bacdb52386cdb2f216a99d4  gcc/testsuite/g++.dg/template/koenig2.C
  84d2678d3ce8241c254dd0501f0e4816  gcc/testsuite/g++.dg/template/koenig3.C
  56c1c2325d188ec369a6eca6c10766b7  gcc/testsuite/g++.dg/template/koenig4.C
*************** eb665dfa7b7ea47842e7a0ca1a4046e2  gcc/te
*** 30973,30978 ****
--- 39208,39214 ----
  e4d0b292389630976cca25f6a5808a1e  gcc/testsuite/g++.dg/template/permissive-error3.C
  14967698fd85bf0506454b2df17f8d2a  gcc/testsuite/g++.dg/template/pr108206.C
  47c32753e30b4754695e8eabfcc1e9f5  gcc/testsuite/g++.dg/template/pr119138.C
+ 7ccb75d299fb426ac22efe4f1aa75da1  gcc/testsuite/g++.dg/template/pr123354.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
*************** e7699dc6713eb2041a3064c5cc10fff3  gcc/te
*** 31038,31046 ****
  e3539961676c85fc14ad54d717fafa85  gcc/testsuite/g++.dg/template/pr84789-2.C
  f9c791f333bf12a2d0a7609b1f5cf14e  gcc/testsuite/g++.dg/template/pr84789-3.C
  20b10f8119db7b0a73997efa700be57a  gcc/testsuite/g++.dg/template/pr84789.C
! f368b131327ccd89f130c0ffe98f77e1  gcc/testsuite/g++.dg/template/pr84973-2.C
! fe4d69247e887e4b87e6706ee310db96  gcc/testsuite/g++.dg/template/pr84973-3.C
! 2f08e4c7e1e6d3c290db495e8b8cfd64  gcc/testsuite/g++.dg/template/pr84973.C
  5f0c1ddec987dfd60d84feba40e8e16c  gcc/testsuite/g++.dg/template/pr86246.C
  ea749346946df04f33fc44d7271b65a6  gcc/testsuite/g++.dg/template/pr86706.C
  d45b71572fb4de15f5f76231a1703560  gcc/testsuite/g++.dg/template/pr87989.C
--- 39274,39282 ----
  e3539961676c85fc14ad54d717fafa85  gcc/testsuite/g++.dg/template/pr84789-2.C
  f9c791f333bf12a2d0a7609b1f5cf14e  gcc/testsuite/g++.dg/template/pr84789-3.C
  20b10f8119db7b0a73997efa700be57a  gcc/testsuite/g++.dg/template/pr84789.C
! a1ff681298b1114d1374a82407241e3e  gcc/testsuite/g++.dg/template/pr84973-2.C
! fd78e35515ddd67bd6e34911d02c5934  gcc/testsuite/g++.dg/template/pr84973-3.C
! 0e036b6aad5125093d23d91b6ab41192  gcc/testsuite/g++.dg/template/pr84973.C
  5f0c1ddec987dfd60d84feba40e8e16c  gcc/testsuite/g++.dg/template/pr86246.C
  ea749346946df04f33fc44d7271b65a6  gcc/testsuite/g++.dg/template/pr86706.C
  d45b71572fb4de15f5f76231a1703560  gcc/testsuite/g++.dg/template/pr87989.C
*************** f2ec7f2b1831f06db667b8a52e15b433  gcc/te
*** 31141,31146 ****
--- 39377,39383 ----
  c8ace1218ccb0299924650338fcf4488  gcc/testsuite/g++.dg/template/recurse2.C
  e3c6a3810fd63d656f047c7fe7e3d09f  gcc/testsuite/g++.dg/template/recurse3.C
  3e3e16c6c4a27889ab806fcd2bbae879  gcc/testsuite/g++.dg/template/recurse4.C
+ 4de5efeea06ba8458c9a7d5d465c4953  gcc/testsuite/g++.dg/template/recurse5.C
  c7309345696ac164222361961daab266  gcc/testsuite/g++.dg/template/redecl1.C
  6931ae73eaf26b6f436460259c61e3bb  gcc/testsuite/g++.dg/template/redecl2.C
  397a393f391e401bd8e5e28d01882ef8  gcc/testsuite/g++.dg/template/redecl3.C
*************** a7bf058a51ee7236a37311a73bf15c69  gcc/te
*** 31164,31169 ****
--- 39401,39407 ----
  b3e926a09671bb6d64fb4f63dde975e0  gcc/testsuite/g++.dg/template/scope4.C
  ef990e1f472156561fef3a8840a530bd  gcc/testsuite/g++.dg/template/scope5.C
  0186275439ee5dd117414c26c3ceb2be  gcc/testsuite/g++.dg/template/scope6.C
+ 0372c7fe1503c1ccdde650238ca268fa  gcc/testsuite/g++.dg/template/sfinae-deleted-pr119343.C
  2cd0b64dfe6040cab0c7b4c02fb0ac81  gcc/testsuite/g++.dg/template/sfinae-dr1227.C
  36d5f7006523591a6edce8992d5ed328  gcc/testsuite/g++.dg/template/sfinae-dr657.C
  d4a6fe33f1456d026d068d25f316aa9c  gcc/testsuite/g++.dg/template/sfinae1.C
*************** fd186f6ad5502f92e5c2137c6fc41c9a  gcc/te
*** 31174,31180 ****
  737c3ec214ee800394d0e74a09b6bcd0  gcc/testsuite/g++.dg/template/sfinae14.C
  342781775b0e1a80ce495730cb3c43ce  gcc/testsuite/g++.dg/template/sfinae15.C
  37aa08b679e2bc731dc1f5806f3107dc  gcc/testsuite/g++.dg/template/sfinae16.C
! 2bc096ac62072d7fefd78642d341f372  gcc/testsuite/g++.dg/template/sfinae17.C
  c69bb3273ce27c4b44754551d50caaf4  gcc/testsuite/g++.dg/template/sfinae18.C
  defcae158cfa0bf28425c808da6cab35  gcc/testsuite/g++.dg/template/sfinae19.C
  70f01340c8cb2308848032098ae3f7e7  gcc/testsuite/g++.dg/template/sfinae2.C
--- 39412,39418 ----
  737c3ec214ee800394d0e74a09b6bcd0  gcc/testsuite/g++.dg/template/sfinae14.C
  342781775b0e1a80ce495730cb3c43ce  gcc/testsuite/g++.dg/template/sfinae15.C
  37aa08b679e2bc731dc1f5806f3107dc  gcc/testsuite/g++.dg/template/sfinae16.C
! a26a3322687a3e937c15c250206107c5  gcc/testsuite/g++.dg/template/sfinae17.C
  c69bb3273ce27c4b44754551d50caaf4  gcc/testsuite/g++.dg/template/sfinae18.C
  defcae158cfa0bf28425c808da6cab35  gcc/testsuite/g++.dg/template/sfinae19.C
  70f01340c8cb2308848032098ae3f7e7  gcc/testsuite/g++.dg/template/sfinae2.C
*************** c26c19c6753e65db02ae97efd8a54af2  gcc/te
*** 31530,31541 ****
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! 2a8c59f8866b77fe70f624e3d722097d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! f4ebaa2e9bc5b065a4c81b1ec15efe2c  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
--- 39768,39782 ----
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! a3c6e48df168850652cb297ec24efd8d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
+ 38dc881d7d74999fc87ed1a57cd80467  gcc/testsuite/g++.dg/tls/pr107393-1.C
+ 3e8b82ad37eda79842616d21d72f67db  gcc/testsuite/g++.dg/tls/pr107393-2.C
+ 4d0f6d5fd9dcc1027b43da5343e07659  gcc/testsuite/g++.dg/tls/pr121889.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! 0ceb6a01aeecd4ce8dd293985c91a3de  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
*************** d54d30d3cb7d22ef6dcf853c987684ca  gcc/te
*** 31549,31555 ****
  3971bb57343c826f45d6ee9d1ae9426a  gcc/testsuite/g++.dg/tls/thread_local-ice4.C
  561a86cb313bd1bff66cba28b1bdabc4  gcc/testsuite/g++.dg/tls/thread_local-ice5.C
  205f16ac56fe213b501ed73b2325eb31  gcc/testsuite/g++.dg/tls/thread_local-order1.C
! cd04ac1aa5870c39d6fdfbc222fb74d0  gcc/testsuite/g++.dg/tls/thread_local-order2.C
  ca282be2e7af69bac998143a70c8e05c  gcc/testsuite/g++.dg/tls/thread_local-wrap1.C
  6a3d154a71ce5d0a28e8ab06d3b4f097  gcc/testsuite/g++.dg/tls/thread_local-wrap2.C
  e4cfba8fd55d0168821bd21efa0237d8  gcc/testsuite/g++.dg/tls/thread_local-wrap3.C
--- 39790,39796 ----
  3971bb57343c826f45d6ee9d1ae9426a  gcc/testsuite/g++.dg/tls/thread_local-ice4.C
  561a86cb313bd1bff66cba28b1bdabc4  gcc/testsuite/g++.dg/tls/thread_local-ice5.C
  205f16ac56fe213b501ed73b2325eb31  gcc/testsuite/g++.dg/tls/thread_local-order1.C
! 277f817063d47b1cad8c333ef2a23c7b  gcc/testsuite/g++.dg/tls/thread_local-order2.C
  ca282be2e7af69bac998143a70c8e05c  gcc/testsuite/g++.dg/tls/thread_local-wrap1.C
  6a3d154a71ce5d0a28e8ab06d3b4f097  gcc/testsuite/g++.dg/tls/thread_local-wrap2.C
  e4cfba8fd55d0168821bd21efa0237d8  gcc/testsuite/g++.dg/tls/thread_local-wrap3.C
*************** cf26e329259baed2e3c2675d10b71343  gcc/te
*** 31589,31595 ****
  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
--- 39830,39836 ----
  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
! 693b847c77d96dccd2b80497f855f16a  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
*************** b8417aa0335eeb4b3381d508ea7f5c38  gcc/te
*** 31669,31675 ****
  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
--- 39910,39916 ----
  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
! d5ab30185341ba181f3b103040f9d0b8  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
*************** bbb4b68b2b55f3e5d143dfc3cb49196e  gcc/te
*** 31707,31713 ****
  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
--- 39948,39954 ----
  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
! 6457bd26444160ec232ee87474dfdb49  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
*************** b931a980765738dfeb91c55227e1c3c3  gcc/te
*** 31726,31731 ****
--- 39967,39973 ----
  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
+ 9bca72f220e2ebe6bac6f4067678e4a9  gcc/testsuite/g++.dg/torture/noncall-eh-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
*************** ccefc659a7c47911812c4aa74e717a3c  gcc/te
*** 31749,31755 ****
  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
--- 39991,39997 ----
  e0f2cfb1a1f922a19280efa88e1e5f1c  gcc/testsuite/g++.dg/torture/pr105142.C
  55421b614773ff9e900b6ad17ffe7df3  gcc/testsuite/g++.dg/torture/pr105189.C
  2f5be7c92fa23dea959ab17d5b766c87  gcc/testsuite/g++.dg/torture/pr105577.C
! 70131fdc7fbf1ff9e093e9eaa3589142  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
*************** c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/te
*** 31767,31772 ****
--- 40009,40015 ----
  6766aa21b009a63d71d22aa6baba228d  gcc/testsuite/g++.dg/torture/pr111245.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
+ 5c620542544d327d513aa9525aba2286  gcc/testsuite/g++.dg/torture/pr112400.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  c9d2586b0e3709f19a931052b6c72363  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
*************** e8b09238e87e73505d31392aeef0e4b5  gcc/te
*** 31783,31797 ****
  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
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
  34ccf862a19942e4a76e7409c03669c6  gcc/testsuite/g++.dg/torture/pr120119-1.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
--- 40026,40061 ----
  786d0a5ec87e00507e8d07cca9bb139c  gcc/testsuite/g++.dg/torture/pr116842.C
  1e0447a2dc08b798ed33be384cdea31a  gcc/testsuite/g++.dg/torture/pr116902.C
  f052d3af1586cf42bf5ec8d92e1621ac  gcc/testsuite/g++.dg/torture/pr116927-1.C
+ 433f2d5d832623625319b4192fc7b69c  gcc/testsuite/g++.dg/torture/pr117217-1.C
+ 370446845d836416f63d6f4ab2dbab30  gcc/testsuite/g++.dg/torture/pr117217-2.C
  17ed764fa5d3f0ee6d17ed54d9664c47  gcc/testsuite/g++.dg/torture/pr117341-1.C
  372a5372bc2611240b35fde2512f27e9  gcc/testsuite/g++.dg/torture/pr118320.C
! 53cb287dc9989d9c34db179316468293  gcc/testsuite/g++.dg/torture/pr118521.C
  2bffdcc852269ef39931c90697749c65  gcc/testsuite/g++.dg/torture/pr118795.C
  63536614f7fbde6017f097b11aa3e6d9  gcc/testsuite/g++.dg/torture/pr118973.C
  f298eddbaaad3dfdc15f6cf9683ff08a  gcc/testsuite/g++.dg/torture/pr11911.C
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
+ 736ee33c46ea4f87e83844e8cbe04d6c  gcc/testsuite/g++.dg/torture/pr119969.C
+ b13ff64f74236106c58ee8eec24c78a6  gcc/testsuite/g++.dg/torture/pr120098.C
  34ccf862a19942e4a76e7409c03669c6  gcc/testsuite/g++.dg/torture/pr120119-1.C
+ a7a00125ef903c9e5ba25788e8c60eab  gcc/testsuite/g++.dg/torture/pr120721.C
+ 4d68e68ec1a7391fe652111cdb89b309  gcc/testsuite/g++.dg/torture/pr120987-1.C
+ 75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
+ e30112bafecf7e102dd01711a1d22a24  gcc/testsuite/g++.dg/torture/pr122380.C
+ 335f20fd55847f9861ff378b9be0f1bc  gcc/testsuite/g++.dg/torture/pr122589.C
+ 04115c46931023150cac2508ab43b9ff  gcc/testsuite/g++.dg/torture/pr122663.C
+ ca9be1f2aa5374ea9f72ea31bc874ec1  gcc/testsuite/g++.dg/torture/pr123040.C
+ 2fa3f60c4a0ae3a4528024698d6d2c3c  gcc/testsuite/g++.dg/torture/pr123596.C
+ fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
+ 045de4cec99c01bff5389660b8937e19  gcc/testsuite/g++.dg/torture/pr123729.C
+ 6f13a12612ea67402e5ee7928ab2f956  gcc/testsuite/g++.dg/torture/pr123820-1.C
+ 1aa558892fb81543beeef357c4f49d60  gcc/testsuite/g++.dg/torture/pr124086-1.C
+ 947406bbc75c3117568a96cd4a4cc34b  gcc/testsuite/g++.dg/torture/pr124130.C
+ 61fcf1bc001bfcf25117da95aaa8edd8  gcc/testsuite/g++.dg/torture/pr124135-1.C
+ 101facde39ac59f9b142786ef251d0ca  gcc/testsuite/g++.dg/torture/pr124135-2.C
+ 8e35f2bc9bda0c081ac5347d83e9f80c  gcc/testsuite/g++.dg/torture/pr124137.C
+ 9e83dc5ec48088cace8aa33ee2acb251  gcc/testsuite/g++.dg/torture/pr124875.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
*************** ce1cdfddb6a49b62f6948eebbab0fa93  gcc/te
*** 31957,31963 ****
  ee8375d5f72145ceeddc40d924396c8f  gcc/testsuite/g++.dg/torture/pr51198.C
  20a6ffa4067b26d2c7eb5f5389c68cf6  gcc/testsuite/g++.dg/torture/pr51344.C
  f12a51ed402174a6e7f165aae6f052d9  gcc/testsuite/g++.dg/torture/pr51436.C
! 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
--- 40221,40227 ----
  ee8375d5f72145ceeddc40d924396c8f  gcc/testsuite/g++.dg/torture/pr51198.C
  20a6ffa4067b26d2c7eb5f5389c68cf6  gcc/testsuite/g++.dg/torture/pr51344.C
  f12a51ed402174a6e7f165aae6f052d9  gcc/testsuite/g++.dg/torture/pr51436.C
! fe50b8c6c2ce8995f995f17f19b6ab99  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
*************** c4901bbe41ce1310894b59ad5e94230b  gcc/te
*** 32146,32152 ****
  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
--- 40410,40416 ----
  2ea00b74c66f7b415383da9b9e2d1015  gcc/testsuite/g++.dg/torture/pr81365.C
  3b3a07eb1cd5bd893a2cd5e7522dd666  gcc/testsuite/g++.dg/torture/pr81462.C
  06c8ed447e11354d4a95ce6c21d10111  gcc/testsuite/g++.dg/torture/pr81659.C
! 08f2d30d6b3fe6bf97f850b6e4bbb8db  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
*************** b867c1c86a41c3f98e0e77c27964fd00  gcc/te
*** 32170,32177 ****
  83254597583931853d8d25224f6bade3  gcc/testsuite/g++.dg/torture/pr84190.C
  dea7b576a4c2e4d3fcde36a40bb8ba54  gcc/testsuite/g++.dg/torture/pr84233.C
  4a9036890e3b15f433b44402e613b15d  gcc/testsuite/g++.dg/torture/pr84502.C
! 17b768d13833c7decabab6d0767f4274  gcc/testsuite/g++.dg/torture/pr84961-1.C
! 6e66206d45b8fa6e745c399f62812a06  gcc/testsuite/g++.dg/torture/pr84961-2.C
  af5940472f4c91cb8f333e474f25bb06  gcc/testsuite/g++.dg/torture/pr85013.C
  0687a59cd48270e6d3f94f336c4f404e  gcc/testsuite/g++.dg/torture/pr85078.C
  ebccddf8491308f2f5774f0f5bc65c1b  gcc/testsuite/g++.dg/torture/pr85334.C
--- 40434,40441 ----
  83254597583931853d8d25224f6bade3  gcc/testsuite/g++.dg/torture/pr84190.C
  dea7b576a4c2e4d3fcde36a40bb8ba54  gcc/testsuite/g++.dg/torture/pr84233.C
  4a9036890e3b15f433b44402e613b15d  gcc/testsuite/g++.dg/torture/pr84502.C
! 596a7e3e0ce920575934e0b9b834268c  gcc/testsuite/g++.dg/torture/pr84961-1.C
! 457f648268f817ed75ac24127cbd870a  gcc/testsuite/g++.dg/torture/pr84961-2.C
  af5940472f4c91cb8f333e474f25bb06  gcc/testsuite/g++.dg/torture/pr85013.C
  0687a59cd48270e6d3f94f336c4f404e  gcc/testsuite/g++.dg/torture/pr85078.C
  ebccddf8491308f2f5774f0f5bc65c1b  gcc/testsuite/g++.dg/torture/pr85334.C
*************** f901926c5a1ac060933c9852ce091ab1  gcc/te
*** 32234,32240 ****
  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
--- 40498,40504 ----
  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
! 98e99f580369652477cf3d34189397bc  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
*************** d53f4a36bfd00298b6b687881aad6861  gcc/te
*** 32245,32251 ****
  2aa74f86eb0a63ab07e4ff6ab3e3bec7  gcc/testsuite/g++.dg/torture/stackalign/unwind-1.C
  6764e5471934a26fbf6d90847e9a6d8b  gcc/testsuite/g++.dg/torture/stackalign/unwind-2.C
  860e4d2471279287c9143a2b9bb0e563  gcc/testsuite/g++.dg/torture/stackalign/unwind-3.C
! 4d8c80bb64655e322537b863f0eb652b  gcc/testsuite/g++.dg/torture/stackalign/unwind-4.C
  22f292e5d79a03f64a7536467d29b689  gcc/testsuite/g++.dg/torture/stackalign/unwind-5.C
  2a4f41d0ba2571b1211bd73b3edb34d4  gcc/testsuite/g++.dg/torture/stackalign/unwind-6.C
  5afe578074ff640a77903318faea8e72  gcc/testsuite/g++.dg/torture/str_empty.C
--- 40509,40515 ----
  2aa74f86eb0a63ab07e4ff6ab3e3bec7  gcc/testsuite/g++.dg/torture/stackalign/unwind-1.C
  6764e5471934a26fbf6d90847e9a6d8b  gcc/testsuite/g++.dg/torture/stackalign/unwind-2.C
  860e4d2471279287c9143a2b9bb0e563  gcc/testsuite/g++.dg/torture/stackalign/unwind-3.C
! e97310713964062f64d8b8c89bf801b9  gcc/testsuite/g++.dg/torture/stackalign/unwind-4.C
  22f292e5d79a03f64a7536467d29b689  gcc/testsuite/g++.dg/torture/stackalign/unwind-5.C
  2a4f41d0ba2571b1211bd73b3edb34d4  gcc/testsuite/g++.dg/torture/stackalign/unwind-6.C
  5afe578074ff640a77903318faea8e72  gcc/testsuite/g++.dg/torture/str_empty.C
*************** a6b6c621d64b00088b0f48ed440c6eef  gcc/te
*** 32278,32289 ****
  b6c068331ea8c597c13f4878202542bd  gcc/testsuite/g++.dg/torture/vshuf-v8qi.C
  fd3e16a63f00c852c7ac13cbaf5de3b5  gcc/testsuite/g++.dg/torture/vshuf-v8si.C
  b61be4cebf40ca9123f6df364b96b5ba  gcc/testsuite/g++.dg/tree-prof/devirt.C
  a81edc9bf01081e718252aca8399bdb7  gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C
  db79913aa881f831880f857f30d6dde3  gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C
  7f3dca5a6193f0f1e49c0109249d7e8f  gcc/testsuite/g++.dg/tree-prof/indir-call-recursive-inlining.C
  2d47f898b6bc4eb5afc1d14262819ed9  gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C
  ba1e590b1e37707f808a653458061d38  gcc/testsuite/g++.dg/tree-prof/morefunc.C
! 1b75d0b53d952884237359b367cab464  gcc/testsuite/g++.dg/tree-prof/partition1.C
  af2fa43fadaaa0ab335db11ff3777b4f  gcc/testsuite/g++.dg/tree-prof/partition2.C
  d6a9a88244e600744ad0a540928c9a69  gcc/testsuite/g++.dg/tree-prof/partition3.C
  8b1a6218138e41949b91924376f8fa41  gcc/testsuite/g++.dg/tree-prof/pr35545.C
--- 40542,40554 ----
  b6c068331ea8c597c13f4878202542bd  gcc/testsuite/g++.dg/torture/vshuf-v8qi.C
  fd3e16a63f00c852c7ac13cbaf5de3b5  gcc/testsuite/g++.dg/torture/vshuf-v8si.C
  b61be4cebf40ca9123f6df364b96b5ba  gcc/testsuite/g++.dg/tree-prof/devirt.C
+ 7db026581bc6a8da2b98a7d949160f40  gcc/testsuite/g++.dg/tree-prof/eh1.C
  a81edc9bf01081e718252aca8399bdb7  gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C
  db79913aa881f831880f857f30d6dde3  gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C
  7f3dca5a6193f0f1e49c0109249d7e8f  gcc/testsuite/g++.dg/tree-prof/indir-call-recursive-inlining.C
  2d47f898b6bc4eb5afc1d14262819ed9  gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C
  ba1e590b1e37707f808a653458061d38  gcc/testsuite/g++.dg/tree-prof/morefunc.C
! 6a35fffaab42aa356bfcb45900bf8558  gcc/testsuite/g++.dg/tree-prof/partition1.C
  af2fa43fadaaa0ab335db11ff3777b4f  gcc/testsuite/g++.dg/tree-prof/partition2.C
  d6a9a88244e600744ad0a540928c9a69  gcc/testsuite/g++.dg/tree-prof/partition3.C
  8b1a6218138e41949b91924376f8fa41  gcc/testsuite/g++.dg/tree-prof/pr35545.C
*************** e5c358735afed9e9c54950b2b1516563  gcc/te
*** 32296,32302 ****
  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
--- 40561,40567 ----
  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
! 73e764584e165269ecc891dc578d9386  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
*************** e5c358735afed9e9c54950b2b1516563  gcc/te
*** 32307,32326 ****
  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
--- 40572,40594 ----
  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
+ 30b2438f1473559df105c0da4dbe8cea  gcc/testsuite/g++.dg/tree-ssa/copy-prop-aggregate-sra-1.C
+ d5faa1fd9db0537a20703336005ef3a9  gcc/testsuite/g++.dg/tree-ssa/copy-prop-aggregate-sra-2.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
! 07b1e4890a409f46ccb7c36b8d58049a  gcc/testsuite/g++.dg/tree-ssa/cselim-1.C
! f1e2d69bd2d28a11de3244540a082bbc  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-1.C
! fdea8740a4efff7898008f8e6da28c25  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-2.C
! ad96242e37b4386a1eb698f51eb26453  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-3.C
! 558e625d85467aa5b2eadfe32416a254  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-4.C
! f150b5f8f86c59a95cb4bd08efbcaeee  gcc/testsuite/g++.dg/tree-ssa/cxa_atexit-5.C
! 5a95aa2041af792391b042ddbd2ee407  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
! 4d4ba7adeaa38214edcbdf53e8aab503  gcc/testsuite/g++.dg/tree-ssa/deque-1.C
! 156bd361f7267877e385ad46398a1638  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
*************** d049885f4d053577c545356b2aed7783  gcc/te
*** 32355,32361 ****
  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
--- 40623,40629 ----
  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
! 2e94d74d37d26fff24ad120b1785858a  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
*** 32365,32370 ****
--- 40633,40639 ----
  9ea732e01391f201c070578af2e42c8a  gcc/testsuite/g++.dg/tree-ssa/obj-type-ref.C
  6474aef48daec343e8355cccf7ae5d56  gcc/testsuite/g++.dg/tree-ssa/phiopt-1.C
  daf046d4911258823d8a9f8947354f8c  gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C
+ 8db319629bbacdaa031619e6f674f8c5  gcc/testsuite/g++.dg/tree-ssa/pr100038.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
*************** a311d1ab8635e5105a1bbfc32c26cf9c  gcc/te
*** 32382,32401 ****
  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
--- 40651,40673 ----
  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
! 8ff0b5d1a04de19b6bf1a5bb923ec2e1  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
! 1090e45b1a9f80fe73e3eb3ed4bb9c71  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
! bd9c2b59a2d08bc8b4c7a43415693ca4  gcc/testsuite/g++.dg/tree-ssa/pr116868.C
! 73c27718ec3b9a0e61a4bcb3fb1a28a3  gcc/testsuite/g++.dg/tree-ssa/pr117123.C
! 82fde88840bd9ced80ca703c33fb8d73  gcc/testsuite/g++.dg/tree-ssa/pr117965-1.C
! 201851a6bde948fe39368db60e2fedc7  gcc/testsuite/g++.dg/tree-ssa/pr117965-2.C
  284302237efd60e1d517c0925cad7644  gcc/testsuite/g++.dg/tree-ssa/pr118924.C
+ ed3340a40acd33f762437309c5501969  gcc/testsuite/g++.dg/tree-ssa/pr119903-1.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
*************** c8bd1a4a60ae7b3886c575e82da06256  gcc/te
*** 32497,32503 ****
  b3721c1012726f86c682c19ffbad76a6  gcc/testsuite/g++.dg/tree-ssa/pr41961.C
  f56be237c5b4f819e8b8a838af2ff0dc  gcc/testsuite/g++.dg/tree-ssa/pr42337.C
  e2c24d55a6b2e21cfe1781dded2f3465  gcc/testsuite/g++.dg/tree-ssa/pr43411.C
! 4ae64fe9713a771de3eec6d2ef7baf39  gcc/testsuite/g++.dg/tree-ssa/pr44706.C
  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
--- 40769,40775 ----
  b3721c1012726f86c682c19ffbad76a6  gcc/testsuite/g++.dg/tree-ssa/pr41961.C
  f56be237c5b4f819e8b8a838af2ff0dc  gcc/testsuite/g++.dg/tree-ssa/pr42337.C
  e2c24d55a6b2e21cfe1781dded2f3465  gcc/testsuite/g++.dg/tree-ssa/pr43411.C
! d662adaafef27c4bdf3fb51359f45842  gcc/testsuite/g++.dg/tree-ssa/pr44706.C
  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
*************** deec61f943ce8761e57e704eca7387bf  gcc/te
*** 32513,32519 ****
  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
--- 40785,40791 ----
  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
! 1090e45b1a9f80fe73e3eb3ed4bb9c71  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
*************** d76420e1226aa1468c75b30c5f6c8137  gcc/te
*** 32527,32533 ****
  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
--- 40799,40805 ----
  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
! 6373a3366c155773f78b9bf8b545c4ed  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
*** 32539,32545 ****
  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
--- 40811,40817 ----
  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
! 1c27778608f1c91a1c26b5b9c9673c92  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
*************** e3fc8e52e34eeab2a0ee22888a080920  gcc/te
*** 32559,32565 ****
  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
--- 40831,40837 ----
  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
! f7c2d3f700bfbeb8d709897a026f72e6  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
*************** cbfe7d75cb5b5c7850564b006625c5e3  gcc/te
*** 32569,32574 ****
--- 40841,40850 ----
  f115b68cd787a27ea9c1c1050f60230c  gcc/testsuite/g++.dg/tree-ssa/restrict1.C
  4cf4b44ab3ea1e0ad116a3e615779fc1  gcc/testsuite/g++.dg/tree-ssa/restrict2.C
  d66caabc31972e027155b7fba60994d6  gcc/testsuite/g++.dg/tree-ssa/restrict3.C
+ 23cda23d6cb5e1459c0a1d97cc4d41c8  gcc/testsuite/g++.dg/tree-ssa/simple-dse-1.C
+ e823f1aacd3ce2d9732db83a5b1f979d  gcc/testsuite/g++.dg/tree-ssa/simple-dse-2.C
+ 775e5d28ebad4e74de8d91bc5fb58783  gcc/testsuite/g++.dg/tree-ssa/simple-dse-3.C
+ a436ce2671ec80a11cefef876c96debe  gcc/testsuite/g++.dg/tree-ssa/simple-dse-4.C
  4b409387c124f6c52a3b106d015e09fa  gcc/testsuite/g++.dg/tree-ssa/sra-1.C
  87104854c43fb4a94509d8c2be560247  gcc/testsuite/g++.dg/tree-ssa/sra-eh-1.C
  7e99777ba86155c2eae8cd6e9f2f9239  gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C
*************** cbba22e9568932c7e9798b4143e8babf  gcc/te
*** 32580,32592 ****
  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
  0fb08fd6d187247ae5872931e884061c  gcc/testsuite/g++.dg/tree-ssa/tmmti.C
  d0016ead88409af28f506089528155ae  gcc/testsuite/g++.dg/tree-ssa/value-expr1.C
  ee5f35c1e0d0183f37f4bef5ff673e11  gcc/testsuite/g++.dg/tree-ssa/value-expr2.C
  67826d6c8638dba46a4b37835998f34a  gcc/testsuite/g++.dg/tree-ssa/volatile1.C
  927ac273b42ce90eecf5fb0ad135f1c0  gcc/testsuite/g++.dg/tree-ssa/volatile2.C
  2f2cb4fe0eb03e7d7bb6cb25c9e775b0  gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
--- 40856,40871 ----
  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
! 4f26cbba2a7cc7465dbc9110c160cd8a  gcc/testsuite/g++.dg/tree-ssa/string-1.C
! cba0d4ad4eb20d07d7b8faa8a679415f  gcc/testsuite/g++.dg/tree-ssa/string-strlen-1.C
  23df56c1ec29f9a5d4f481355d17c3dc  gcc/testsuite/g++.dg/tree-ssa/strlenopt-1.C
  948d00fc979cc2bd7b0f86e83a4eb496  gcc/testsuite/g++.dg/tree-ssa/strlenopt-2.C
+ 28c806e9459e7d7405ec4d864fbc4f37  gcc/testsuite/g++.dg/tree-ssa/strlenopt-3.C
  2a5935f325533fa199bc7f5e3b2b36d5  gcc/testsuite/g++.dg/tree-ssa/tail-call-1.C
  0fb08fd6d187247ae5872931e884061c  gcc/testsuite/g++.dg/tree-ssa/tmmti.C
  d0016ead88409af28f506089528155ae  gcc/testsuite/g++.dg/tree-ssa/value-expr1.C
  ee5f35c1e0d0183f37f4bef5ff673e11  gcc/testsuite/g++.dg/tree-ssa/value-expr2.C
+ 3305506c315412907d9095dfb88e572b  gcc/testsuite/g++.dg/tree-ssa/vector-compare-1.C
  67826d6c8638dba46a4b37835998f34a  gcc/testsuite/g++.dg/tree-ssa/volatile1.C
  927ac273b42ce90eecf5fb0ad135f1c0  gcc/testsuite/g++.dg/tree-ssa/volatile2.C
  2f2cb4fe0eb03e7d7bb6cb25c9e775b0  gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
*************** cd932ca55aa9252a2188bb383ac82ed7  gcc/te
*** 32601,32607 ****
  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
--- 40880,40886 ----
  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
! 10fd9d2fa3c8c17c1310ebc9e42ffef0  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
*************** f8e72092c06f4ebdc16407b25d48593a  gcc/te
*** 32619,32624 ****
--- 40898,40905 ----
  5f6adf84c6b049487918b36dbd808b87  gcc/testsuite/g++.dg/ubsan/div-by-zero-2.C
  25697e9d3c9eae68321ae8a6d93e1ddf  gcc/testsuite/g++.dg/ubsan/div-by-zero-3.C
  f37ad4b9712d576fe6db63c0d8c23c18  gcc/testsuite/g++.dg/ubsan/float-cast-overflow-bf.C
+ d3afbc1de579855378953714928162a6  gcc/testsuite/g++.dg/ubsan/module-1-aux.cc
+ 72ede99d236f8831fbf4c4f999a9ead6  gcc/testsuite/g++.dg/ubsan/module-1.C
  c7511655f2d54310866c998269060e60  gcc/testsuite/g++.dg/ubsan/null-1.C
  58dd5b6b76901b231167f7516ed08820  gcc/testsuite/g++.dg/ubsan/null-2.C
  5579e272add390f8945bdcaa9eb5868a  gcc/testsuite/g++.dg/ubsan/null-3.C
*************** ceefdce8629af65f842f11d82ad86264  gcc/te
*** 32711,32717 ****
  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
--- 40992,40998 ----
  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
! 0bb76615856453ad12e02e3427a1380e  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
*************** c299a2e8f2fcb74286fbc4d6d1cf115d  gcc/te
*** 32743,32755 ****
  5786bf78cee1b70c9836b60ec34f42ba  gcc/testsuite/g++.dg/uninit-pred-3_a.C
  e7062d8b8ae34f0a4f8b5b407e180316  gcc/testsuite/g++.dg/uninit-pred-3_b.C
  5ee1b7f723d2f67283e9a5a7eb0c38f1  gcc/testsuite/g++.dg/uninit-pred-4.C
! d403029994bed5e01d1267a0905e9d3c  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
! 9a63e9b5506271a4e3d1932baef3c60c  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
  f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
- 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
--- 41024,41035 ----
  5786bf78cee1b70c9836b60ec34f42ba  gcc/testsuite/g++.dg/uninit-pred-3_a.C
  e7062d8b8ae34f0a4f8b5b407e180316  gcc/testsuite/g++.dg/uninit-pred-3_b.C
  5ee1b7f723d2f67283e9a5a7eb0c38f1  gcc/testsuite/g++.dg/uninit-pred-4.C
! fbf3c2ee5d22db5d628b589e960354de  gcc/testsuite/g++.dg/uninit-pred-5.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop-1_a.C
! fb9b4b2ef2067f8347522c6501c079b3  gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C
  f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
  bb3b906322f73b1bfddaab3658a0314e  gcc/testsuite/g++.dg/vect/pr102226.cc
  fe723c4381a898f584795d9e20c58d72  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
*************** b7574f2c87be7256484ba89a7bb8ec06  gcc/te
*** 32773,32783 ****
--- 41053,41068 ----
  1e03af311dcaa23b477b4a5718d84d03  gcc/testsuite/g++.dg/vect/pr116674.cc
  0ce4b36a20f45df8b6cff16c2a001cca  gcc/testsuite/g++.dg/vect/pr116817.cc
  db187ae2fd0c35306cac339c19f6fcf6  gcc/testsuite/g++.dg/vect/pr117776.cc
+ a045a81b6625a89ef0797ce8a3b56200  gcc/testsuite/g++.dg/vect/pr121685-1.cc
+ 9b9c687f1e4fd2f993684bbcadddc323  gcc/testsuite/g++.dg/vect/pr122647.cc
+ bba355f1416732af96685d763f01f5d1  gcc/testsuite/g++.dg/vect/pr123315.cc
+ ac94a32beb40b85bf51677a9f718aca3  gcc/testsuite/g++.dg/vect/pr123525-2.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/testsuite/g++.dg/vect/pr21734_2.cc
  64678e82148d6ddd615a2f78c5736bbf  gcc/testsuite/g++.dg/vect/pr22543.cc
+ 03ccc0ade9921d28c91fc0537845194b  gcc/testsuite/g++.dg/vect/pr26197.cc
  316093142a5fba134bf3b94e8d8854e8  gcc/testsuite/g++.dg/vect/pr33426-ivdep-2.cc
  7707162cfa9dc8631360eee5e8fd4654  gcc/testsuite/g++.dg/vect/pr33426-ivdep-3.cc
  c122c9018c94553a728a76828044ae1f  gcc/testsuite/g++.dg/vect/pr33426-ivdep-4.cc
*************** f9ec9f29d29198d0fd2269ad44e55b21  gcc/te
*** 32804,32810 ****
  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
--- 41089,41095 ----
  4665de842fe7961eed5fad345695a420  gcc/testsuite/g++.dg/vect/pr60836.cc
  b7b79e1c6424f4373d8f860593191fd9  gcc/testsuite/g++.dg/vect/pr60896.cc
  2de94c5a0cf4dc2ff2b7fb5f335afddf  gcc/testsuite/g++.dg/vect/pr61171.cc
! f63b1efc785b49e934e34e56b6127db9  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
*************** b83eac59b493f9c580ee676cf4be54bc  gcc/te
*** 32854,32860 ****
  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
  3bc95c24ca829b61efcb7f80670d3ab5  gcc/testsuite/g++.dg/vect/simd-mask-store-bool.cc
--- 41139,41145 ----
  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
! 5bad2c02e3b9d6339a702112e758d35c  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
  3bc95c24ca829b61efcb7f80670d3ab5  gcc/testsuite/g++.dg/vect/simd-mask-store-bool.cc
*************** e0f6d3736914a93338f16db9c5870cd0  gcc/te
*** 32867,32872 ****
--- 41152,41158 ----
  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
+ 616a960b77182ec176f01e354ded157c  gcc/testsuite/g++.dg/vect/vect-alias-checks.C
  d5f45690807f08a2a0090e727170476f  gcc/testsuite/g++.dg/vect/vect-early-break_1.cc
  3b8018e956215e12fd3e4b987dc6434c  gcc/testsuite/g++.dg/vect/vect-early-break_2.cc
  c344792dcd15e12c998f5c8a2cf536b7  gcc/testsuite/g++.dg/vect/vect-early-break_3.cc
*************** bb04402a5286da0c2b2bd970e15a7c0a  gcc/te
*** 32875,32881 ****
  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
--- 41161,41170 ----
  7509f0d1c7df2744d657804a467cd882  gcc/testsuite/g++.dg/vect/vect-early-break_6.cc
  750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
! d755361dca7e8678de65cef4fd2ec24d  gcc/testsuite/g++.dg/vect/vect-pr107690.cc
! 49fdf67831ace426ac5fdb16e24fcf32  gcc/testsuite/g++.dg/vect/vect-pr124037.cc
! 0a23130ea4ce46e0a0236cd4d6c8e7fa  gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
! 27913e4564f67b015965c39a5afd64d0  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
*************** d134ce6bbd6942500dee155278c6d0c1  gcc/te
*** 32896,32903 ****
  85946d6c4d80b74fc3bf7351777c73a0  gcc/testsuite/g++.dg/warn/Walways-true-3.C
  b40dbeaf2e568c93093f4ad87f6ac81c  gcc/testsuite/g++.dg/warn/Warray-bounds-10.C
  97555d7f68183f45a66353b91d1af8ef  gcc/testsuite/g++.dg/warn/Warray-bounds-11.C
! 2123f61403306ff8d528996d09bd5843  gcc/testsuite/g++.dg/warn/Warray-bounds-12.C
! 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
--- 41185,41192 ----
  85946d6c4d80b74fc3bf7351777c73a0  gcc/testsuite/g++.dg/warn/Walways-true-3.C
  b40dbeaf2e568c93093f4ad87f6ac81c  gcc/testsuite/g++.dg/warn/Warray-bounds-10.C
  97555d7f68183f45a66353b91d1af8ef  gcc/testsuite/g++.dg/warn/Warray-bounds-11.C
! df97049f247b3f44756561ceb24765cf  gcc/testsuite/g++.dg/warn/Warray-bounds-12.C
! a30534d573f1683bab0e67de9cddae18  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
*************** a51e59121ac395643cb3896da790dc94  gcc/te
*** 32905,32915 ****
  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
--- 41194,41204 ----
  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
! 479eac9bace83bd1586c265894bf5ddd  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
! 01c2c24b5a90b331ada253753636d7d9  gcc/testsuite/g++.dg/warn/Warray-bounds-23.C
! 78921612008412b82fa6d71f72a19977  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
*************** d53003b93dc25906e11f3f1291fb8a1d  gcc/te
*** 32921,32926 ****
--- 41210,41216 ----
  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
+ c8f48b82a7da2056f0a7f7f6b8c98137  gcc/testsuite/g++.dg/warn/Warray-bounds-pr122824.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
*************** eccc2b2ed947b72890c78d9f36703c07  gcc/te
*** 33045,33051 ****
  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
--- 41335,41341 ----
  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
! 7ac6c44a2b5195d1cb76bd9acfd5b4fb  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
*************** c84bc79847f1966edf2b1f4b3b013e19  gcc/te
*** 33093,33098 ****
--- 41383,41398 ----
  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
+ d554bb6f7fc49fa2be2114e5d2f1bd07  gcc/testsuite/g++.dg/warn/Wkeyword-macro-1.C
+ 46a0dc2739da6ef3dec0ccf4a8f1bd5d  gcc/testsuite/g++.dg/warn/Wkeyword-macro-10.C
+ 17e77e62941094c0a88c7c296201a543  gcc/testsuite/g++.dg/warn/Wkeyword-macro-2.C
+ 31939dacc894b83bf87b967919a9307f  gcc/testsuite/g++.dg/warn/Wkeyword-macro-3.C
+ 71baa2423aeb61871029c7b12296cb6c  gcc/testsuite/g++.dg/warn/Wkeyword-macro-4.C
+ 83fee327e6fc0bbe0709d117b4f27389  gcc/testsuite/g++.dg/warn/Wkeyword-macro-5.C
+ a3c8283eeafbf13da92766551f2fd977  gcc/testsuite/g++.dg/warn/Wkeyword-macro-6.C
+ 38e532ebecc98d98f7557ddf768e02ca  gcc/testsuite/g++.dg/warn/Wkeyword-macro-7.C
+ 6c18f4104646e8e76f55c7503bd06a73  gcc/testsuite/g++.dg/warn/Wkeyword-macro-8.C
+ 54ec408185e87ed7c6df79dfec246f29  gcc/testsuite/g++.dg/warn/Wkeyword-macro-9.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
*************** a5706ac002500d657b5e8cd77cc6c62e  gcc/te
*** 33102,33111 ****
  1184b1df4ae243b5ab6917e0e3b219b6  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-2.C
  beb0dbeb6a47cd7fb34d04b431670905  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-3.C
  d183cd43f2c2caf1b71024ba3762ff44  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc.C
! 74decc16b8ca63b12db874b7dde868cf  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-2.C
  5c4cad449e21fe0fade92c9c0d19fb5f  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-3.C
  da3dbc8526151b41f4a741a5d5e51eae  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-4.C
! f53b1f90733acd430c8cdf6142c6d0ae  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-5.C
  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
--- 41402,41413 ----
  1184b1df4ae243b5ab6917e0e3b219b6  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-2.C
  beb0dbeb6a47cd7fb34d04b431670905  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-3.C
  d183cd43f2c2caf1b71024ba3762ff44  gcc/testsuite/g++.dg/warn/Wmismatched-dealloc.C
! c64dfbca6c8c86f3fd65230eca021a72  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-10.C
! f72bc349aab475639613f4efcb794547  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-11.C
! 42ee652001dccee4183620c0e4744fe5  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-2.C
  5c4cad449e21fe0fade92c9c0d19fb5f  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-3.C
  da3dbc8526151b41f4a741a5d5e51eae  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-4.C
! fef7a83173bbbc642fd475e4c5dbf6ea  gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-5.C
  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
*************** f828038b7b0977748fac3e57cac5a3da  gcc/te
*** 33239,33245 ****
  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
  0e28ebda7065f7059d79a98e99db30e3  gcc/testsuite/g++.dg/warn/Wredundant-tags-4.C
  b5fa8f1f45a9c16b2aa47993efc28c1f  gcc/testsuite/g++.dg/warn/Wredundant-tags-5.C
  aa433c8b434b585085cf45fcb9ea785a  gcc/testsuite/g++.dg/warn/Wredundant-tags-5.h
--- 41541,41547 ----
  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
! b933fc025dabb367b650f9e8e6c61505  gcc/testsuite/g++.dg/warn/Wredundant-tags-3.C
  0e28ebda7065f7059d79a98e99db30e3  gcc/testsuite/g++.dg/warn/Wredundant-tags-4.C
  b5fa8f1f45a9c16b2aa47993efc28c1f  gcc/testsuite/g++.dg/warn/Wredundant-tags-5.C
  aa433c8b434b585085cf45fcb9ea785a  gcc/testsuite/g++.dg/warn/Wredundant-tags-5.h
*************** c9a313a018bffcf8c74feab4d7de24ee  gcc/te
*** 33292,33299 ****
  ffad6b5038655c4c4e389de3106c88b0  gcc/testsuite/g++.dg/warn/Wshadow-16.C
  38815e928f4e863202914977f5520b74  gcc/testsuite/g++.dg/warn/Wshadow-17.C
  e8c004a48240f458631dbb4f69010a3a  gcc/testsuite/g++.dg/warn/Wshadow-18.C
! dc9f3667d2ff384c4e1712f9c90ccaed  gcc/testsuite/g++.dg/warn/Wshadow-19.C
  6a6527871d476c4275232fa53d041994  gcc/testsuite/g++.dg/warn/Wshadow-2.C
  c6d10f027652eb4c20869c7eaeebb358  gcc/testsuite/g++.dg/warn/Wshadow-3.C
  2e33a5dd790901f2d6f4cc57f311efc6  gcc/testsuite/g++.dg/warn/Wshadow-4.C
  85648d81584ab8f2c756bca959506afc  gcc/testsuite/g++.dg/warn/Wshadow-5.C
--- 41594,41603 ----
  ffad6b5038655c4c4e389de3106c88b0  gcc/testsuite/g++.dg/warn/Wshadow-16.C
  38815e928f4e863202914977f5520b74  gcc/testsuite/g++.dg/warn/Wshadow-17.C
  e8c004a48240f458631dbb4f69010a3a  gcc/testsuite/g++.dg/warn/Wshadow-18.C
! 1a12f89f5d97086936d0db3301d450f0  gcc/testsuite/g++.dg/warn/Wshadow-19.C
  6a6527871d476c4275232fa53d041994  gcc/testsuite/g++.dg/warn/Wshadow-2.C
+ 38acd8e34d74b4a63f5d327c293f6815  gcc/testsuite/g++.dg/warn/Wshadow-20.C
+ 608c607a1bd076c052de8925ab7b63dc  gcc/testsuite/g++.dg/warn/Wshadow-21.C
  c6d10f027652eb4c20869c7eaeebb358  gcc/testsuite/g++.dg/warn/Wshadow-3.C
  2e33a5dd790901f2d6f4cc57f311efc6  gcc/testsuite/g++.dg/warn/Wshadow-4.C
  85648d81584ab8f2c756bca959506afc  gcc/testsuite/g++.dg/warn/Wshadow-5.C
*************** bab7e5656bf0736ab8cd5ae9256981d6  gcc/te
*** 33359,33365 ****
  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
--- 41663,41669 ----
  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
! a110eb8d1a08b132e559af7d328fda69  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
*************** fe4c6303d7ec13423e71cfb150c05d00  gcc/te
*** 33406,33412 ****
  01a8663e3575b9fdd6f13fef9387d669  gcc/testsuite/g++.dg/warn/Wuninitialized-10.C
  5133d39459a0fa751e7c8606e7d29b94  gcc/testsuite/g++.dg/warn/Wuninitialized-11.C
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
! 95978d0f61d66a9c1693abb0b01ebd1b  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
  f499f45369dbf11e5e717927f1eb3141  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
--- 41710,41716 ----
  01a8663e3575b9fdd6f13fef9387d669  gcc/testsuite/g++.dg/warn/Wuninitialized-10.C
  5133d39459a0fa751e7c8606e7d29b94  gcc/testsuite/g++.dg/warn/Wuninitialized-11.C
  6cbb1f3c3335added60923dffee22b16  gcc/testsuite/g++.dg/warn/Wuninitialized-12.C
! 7bc87e0868519c67f33c147398fad169  gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
  87d9fc9607c558f95bb00777d8ae53d9  gcc/testsuite/g++.dg/warn/Wuninitialized-14.C
  f499f45369dbf11e5e717927f1eb3141  gcc/testsuite/g++.dg/warn/Wuninitialized-15.C
  c0b5caca7ef146b3aa1249ecd34b6ed9  gcc/testsuite/g++.dg/warn/Wuninitialized-16.C
*************** d6ab64b605a24d07d95eb4282b431dac  gcc/te
*** 33430,33435 ****
--- 41734,41740 ----
  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
+ 3a7f20e52d738766db49016af0b45bf3  gcc/testsuite/g++.dg/warn/Wuninitialized-35.C
  be5b47714ba41b25933660896d6c7427  gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
  1f013ef9d737e679cea70e842d47a7ce  gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
  5d5a54e16a8f1ca7a7dc521b9a20af28  gcc/testsuite/g++.dg/warn/Wuninitialized-6.C
*************** b34fd3a8e6fc2ca19e369ffca3d3e57c  gcc/te
*** 33469,33478 ****
--- 41774,41786 ----
  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
+ bc890abbaaaa85de5a610141e3c0de8a  gcc/testsuite/g++.dg/warn/Wunused-local-typedefs-5.C
  e140cca8081c2c0eae03e581e393acb2  gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C
  f4f3cab40f639491cc5a09f1d424f9ce  gcc/testsuite/g++.dg/warn/Wunused-parm-1.C
  848ae9477cb535f02cefe842f45ed6e8  gcc/testsuite/g++.dg/warn/Wunused-parm-10.C
  054afa451b4cbe3068c1711a0332437f  gcc/testsuite/g++.dg/warn/Wunused-parm-11.C
+ d981aa1c5abcafccb44df0496d23b54a  gcc/testsuite/g++.dg/warn/Wunused-parm-12.C
+ adbbc8b3cfd31af65a938acabfc8bd05  gcc/testsuite/g++.dg/warn/Wunused-parm-13.C
  b17926dc040110c67174d5c4203f7fee  gcc/testsuite/g++.dg/warn/Wunused-parm-2.C
  e2b1e313bf63113458031cd03d300763  gcc/testsuite/g++.dg/warn/Wunused-parm-3.C
  f11e1a6a7c64d32c0698605c42c159c1  gcc/testsuite/g++.dg/warn/Wunused-parm-4.C
*************** f11e1a6a7c64d32c0698605c42c159c1  gcc/te
*** 33483,33489 ****
  6e35ef68908ea1627bbf0f12306891ed  gcc/testsuite/g++.dg/warn/Wunused-parm-9.C
  b70117657eaf5edbb95110248d7ee800  gcc/testsuite/g++.dg/warn/Wunused-result-1.C
  fba202d17d94d19c21e05a678c6a5ab1  gcc/testsuite/g++.dg/warn/Wunused-result-2.C
! 9f58f786374ace9197727c146cea66dd  gcc/testsuite/g++.dg/warn/Wunused-value-1.C
  4f806576508d70a95ed2a3e232685cdb  gcc/testsuite/g++.dg/warn/Wunused-var-1.C
  898eca8edc4214a3f0d47032d1e29a12  gcc/testsuite/g++.dg/warn/Wunused-var-10.C
  16cd18b051568e2b0d1ed53dfcd6fc38  gcc/testsuite/g++.dg/warn/Wunused-var-11.C
--- 41791,41798 ----
  6e35ef68908ea1627bbf0f12306891ed  gcc/testsuite/g++.dg/warn/Wunused-parm-9.C
  b70117657eaf5edbb95110248d7ee800  gcc/testsuite/g++.dg/warn/Wunused-result-1.C
  fba202d17d94d19c21e05a678c6a5ab1  gcc/testsuite/g++.dg/warn/Wunused-result-2.C
! 533f8f8ffb2ce1d144efdcc8db0a35f5  gcc/testsuite/g++.dg/warn/Wunused-value-1.C
! fa65c8a17eb4d8c1f0c9d7ddacd6222e  gcc/testsuite/g++.dg/warn/Wunused-value-2.C
  4f806576508d70a95ed2a3e232685cdb  gcc/testsuite/g++.dg/warn/Wunused-var-1.C
  898eca8edc4214a3f0d47032d1e29a12  gcc/testsuite/g++.dg/warn/Wunused-var-10.C
  16cd18b051568e2b0d1ed53dfcd6fc38  gcc/testsuite/g++.dg/warn/Wunused-var-11.C
*************** fba202d17d94d19c21e05a678c6a5ab1  gcc/te
*** 33495,33501 ****
  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
  0c5df293cc7c104d4640b26ebae4ed15  gcc/testsuite/g++.dg/warn/Wunused-var-21.C
  5d6aae3538559dce1f197ff269ee52f8  gcc/testsuite/g++.dg/warn/Wunused-var-22.C
--- 41804,41810 ----
  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
! 4ebf35a24bae9aea2f42ccede2d7021b  gcc/testsuite/g++.dg/warn/Wunused-var-2.C
  e7274165f26fc70eff73fddbd77e3811  gcc/testsuite/g++.dg/warn/Wunused-var-20.C
  0c5df293cc7c104d4640b26ebae4ed15  gcc/testsuite/g++.dg/warn/Wunused-var-21.C
  5d6aae3538559dce1f197ff269ee52f8  gcc/testsuite/g++.dg/warn/Wunused-var-22.C
*************** a0153f267ad41a4cf2f1dec39837d246  gcc/te
*** 33518,33523 ****
--- 41827,41835 ----
  998a3f10f988e7baba9b261f4e42d7fb  gcc/testsuite/g++.dg/warn/Wunused-var-38.C
  34eb935534f258b4cdd6d7f1b0bb2b6e  gcc/testsuite/g++.dg/warn/Wunused-var-39.C
  62e5565091b4ee3f018515196f818bf3  gcc/testsuite/g++.dg/warn/Wunused-var-4.C
+ 606f86572bc9564c5ed0c9466b934826  gcc/testsuite/g++.dg/warn/Wunused-var-40.C
+ 839875d50b4cd9e29a5ec7ec6e3caa5c  gcc/testsuite/g++.dg/warn/Wunused-var-41.C
+ 0ff99bf5bf8ae9c044ba947d933dc4fc  gcc/testsuite/g++.dg/warn/Wunused-var-42.C
  d9191ea69f8ac18b1043d3d093b1f0d4  gcc/testsuite/g++.dg/warn/Wunused-var-5.C
  87a6fe8bfeffa1f31aecfb6dc5c8fc8e  gcc/testsuite/g++.dg/warn/Wunused-var-6.C
  b81dd316dd30881afe998cc16667340f  gcc/testsuite/g++.dg/warn/Wunused-var-7.C
*************** b54db3adf6b298085f3c9eaca4c15e9d  gcc/te
*** 33638,33643 ****
--- 41950,41956 ----
  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
+ aab6d1ccc0cf1b4143d4f8748434fc1d  gcc/testsuite/g++.dg/warn/ignore-virtual-move-assign.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
*************** f5f5c1617ee81b4a95bfe5a2c43b2cf3  gcc/te
*** 33691,33699 ****
  d74d3f1134fc9317d64b97e367110830  gcc/testsuite/g++.dg/warn/noreturn-9.C
  6bf805aeb1fce3c4508783b3ce563adb  gcc/testsuite/g++.dg/warn/null4.C
  6f35bd3e5569d67dc2013936b13b8a45  gcc/testsuite/g++.dg/warn/oldcast1.C
! 56f13549bb1dc600d31a20dc40f3d843  gcc/testsuite/g++.dg/warn/overflow-warn-1.C
! 8446d02be839a3692707d4cca385823e  gcc/testsuite/g++.dg/warn/overflow-warn-3.C
! ef971e083f028f6e44e1d007699ec3c6  gcc/testsuite/g++.dg/warn/overflow-warn-4.C
  4a9f855779aa7cb0488ab564acde90fc  gcc/testsuite/g++.dg/warn/overflow-warn-5.C
  e36e0e34c32010c5c54008377dce599e  gcc/testsuite/g++.dg/warn/overflow-warn-6.C
  3c647e62ea816b4c56976d6e778444db  gcc/testsuite/g++.dg/warn/pedantic1.C
--- 42004,42012 ----
  d74d3f1134fc9317d64b97e367110830  gcc/testsuite/g++.dg/warn/noreturn-9.C
  6bf805aeb1fce3c4508783b3ce563adb  gcc/testsuite/g++.dg/warn/null4.C
  6f35bd3e5569d67dc2013936b13b8a45  gcc/testsuite/g++.dg/warn/oldcast1.C
! 9a55bfc82383afd1acd42eedb05b2f12  gcc/testsuite/g++.dg/warn/overflow-warn-1.C
! 6062ff132956f5c97d16b085f393e1cf  gcc/testsuite/g++.dg/warn/overflow-warn-3.C
! e3de91d852ab5e5ba9a100fb96946ad7  gcc/testsuite/g++.dg/warn/overflow-warn-4.C
  4a9f855779aa7cb0488ab564acde90fc  gcc/testsuite/g++.dg/warn/overflow-warn-5.C
  e36e0e34c32010c5c54008377dce599e  gcc/testsuite/g++.dg/warn/overflow-warn-6.C
  3c647e62ea816b4c56976d6e778444db  gcc/testsuite/g++.dg/warn/pedantic1.C
*************** b095255e81269c7739d80713d78edfb0  gcc/te
*** 33717,33722 ****
--- 42030,42036 ----
  cf0c4d575c42bdb9c6e7c4896c869563  gcc/testsuite/g++.dg/warn/pr121133-3.C
  05cce23e42b4b2cd226ee30196b78b71  gcc/testsuite/g++.dg/warn/pr121133-4.C
  5fab7f879534ef351718dc73d825b667  gcc/testsuite/g++.dg/warn/pr12242.C
+ ccfc25f7b944cf4879d3a4c05a352fd1  gcc/testsuite/g++.dg/warn/pr123374.C
  5ea14e490362652b825c770f9d00d814  gcc/testsuite/g++.dg/warn/pr13358-2.C
  5af7a1b2eded6ae8e6b38e3c1b5e15a6  gcc/testsuite/g++.dg/warn/pr13358-3.C
  94b8517c60747ecac37644cd78124eca  gcc/testsuite/g++.dg/warn/pr13358-4.C
*************** b731b5d32c1f477ed23555d37dcf870a  gcc/te
*** 33750,33755 ****
--- 42064,42071 ----
  62fde56fd55223e0af2436edca399912  gcc/testsuite/g++.dg/warn/pr79290.C
  a57e4640a3dda500c8eb3374c6e1ae4c  gcc/testsuite/g++.dg/warn/pr80635-1.C
  00a4731317a08cb84ce3e84b766012b4  gcc/testsuite/g++.dg/warn/pr80635-2.C
+ 1efdd2404496d13f3ceb813faad94aa0  gcc/testsuite/g++.dg/warn/pr80635-3.C
+ d45e55706b6ed06ede9cf076d944cb48  gcc/testsuite/g++.dg/warn/pr80635-4.C
  b396f058eef27622b6e932e0515dc223  gcc/testsuite/g++.dg/warn/pr81119.C
  ad68bbb45548b2f681a5f0e57f41ef19  gcc/testsuite/g++.dg/warn/pr81275-1.C
  0faf646f98471e86eee5164be65067cd  gcc/testsuite/g++.dg/warn/pr81275-2.C
*************** df6eec31c99dfed294a6e4192dd69f3f  gcc/te
*** 33801,33807 ****
  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
--- 42117,42123 ----
  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
! 4849842989a22de70c92711785ced96d  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
*************** f3fc1f6861ab16ba7eaf8a5da2bda79e  gcc/te
*** 33814,33819 ****
--- 42130,42136 ----
  cb2dc9676afd95b7735a016564c8fd0c  gcc/testsuite/g++.dg/warn/uninit-pr74765.C
  4cdbc10f60c2aab00b399523a5cb099d  gcc/testsuite/g++.dg/warn/uninit-pr82800.C
  28f5cbc738c708f5e12210ff79249ce5  gcc/testsuite/g++.dg/warn/uninit-pr93100.C
+ 1ddab9cdc6e57f790d8a65c8f5ec66c4  gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C
  f61b425b296038544edfc817dc29fd84  gcc/testsuite/g++.dg/warn/unit-1.C
  b90595080713a3c154e188ca44093e52  gcc/testsuite/g++.dg/warn/unused-fn1.C
  d10b13b30c4f610f231317924054b5ee  gcc/testsuite/g++.dg/warn/unused-result1-Werror.C
*************** da80b7e97d4e9ee67decc3ead64065ff  gcc/te
*** 33940,33946 ****
  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
--- 42257,42263 ----
  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
! 2eb5a7b41ae5e6020f8e427ff54c4668  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
*************** e4681da1536da14176b6242aa0cde9a4  gcc/te
*** 34858,34864 ****
  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
--- 43175,43181 ----
  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
! a0f8b5fc0f23bb9f52271931adf2eaf9  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
*************** d2fc50e3e2e5832d3cb6945d13759363  gcc/te
*** 35202,35208 ****
  b0c65347d9c4f297c3a2a451a8826279  gcc/testsuite/g++.old-deja/g++.mike/eh28.C
  b7ee4c7bc6f0c7167eca23b9efdb9f8c  gcc/testsuite/g++.old-deja/g++.mike/eh29.C
  b7fa20379a5b48ef16b0a75fd8198fb6  gcc/testsuite/g++.old-deja/g++.mike/eh3.C
! 1dc3deea4e99a8ba7ca8ec0b2d018452  gcc/testsuite/g++.old-deja/g++.mike/eh30.C
  68bc71cf1693b679ec89fdfbdca319d7  gcc/testsuite/g++.old-deja/g++.mike/eh31.C
  17875da95a253b79fa1e5e982394cdf2  gcc/testsuite/g++.old-deja/g++.mike/eh32.C
  c57b3f69b4396a7bd59c0659cac52b65  gcc/testsuite/g++.old-deja/g++.mike/eh33.C
--- 43519,43525 ----
  b0c65347d9c4f297c3a2a451a8826279  gcc/testsuite/g++.old-deja/g++.mike/eh28.C
  b7ee4c7bc6f0c7167eca23b9efdb9f8c  gcc/testsuite/g++.old-deja/g++.mike/eh29.C
  b7fa20379a5b48ef16b0a75fd8198fb6  gcc/testsuite/g++.old-deja/g++.mike/eh3.C
! 1daacd811e61437103af886d044c05c4  gcc/testsuite/g++.old-deja/g++.mike/eh30.C
  68bc71cf1693b679ec89fdfbdca319d7  gcc/testsuite/g++.old-deja/g++.mike/eh31.C
  17875da95a253b79fa1e5e982394cdf2  gcc/testsuite/g++.old-deja/g++.mike/eh32.C
  c57b3f69b4396a7bd59c0659cac52b65  gcc/testsuite/g++.old-deja/g++.mike/eh33.C
*************** c02eafb028d82f1c577cfa700db86211  gcc/te
*** 35399,35405 ****
  e79018dfdcda343a7caddbb25a5b7da3  gcc/testsuite/g++.old-deja/g++.mike/p4736a.C
  9fc1513d5865274bf37c59b71c8f97ae  gcc/testsuite/g++.old-deja/g++.mike/p4736b.C
  c1acbf8597dd2cbb95d9cb9fc5e04912  gcc/testsuite/g++.old-deja/g++.mike/p4736c.C
! 8ac43191f98210fa0bcfdc44d55770e3  gcc/testsuite/g++.old-deja/g++.mike/p4750.C
  1a935fddf8f373c48dd3eee1ba9c897d  gcc/testsuite/g++.old-deja/g++.mike/p5469.C
  8ea133c89aeac2630522f766a59283bf  gcc/testsuite/g++.old-deja/g++.mike/p5469a.C
  7862ccbfc24631e1c8cc9f04873dfb41  gcc/testsuite/g++.old-deja/g++.mike/p5571.C
--- 43716,43722 ----
  e79018dfdcda343a7caddbb25a5b7da3  gcc/testsuite/g++.old-deja/g++.mike/p4736a.C
  9fc1513d5865274bf37c59b71c8f97ae  gcc/testsuite/g++.old-deja/g++.mike/p4736b.C
  c1acbf8597dd2cbb95d9cb9fc5e04912  gcc/testsuite/g++.old-deja/g++.mike/p4736c.C
! 76e567545ba5a7549bd7c376716a8ba5  gcc/testsuite/g++.old-deja/g++.mike/p4750.C
  1a935fddf8f373c48dd3eee1ba9c897d  gcc/testsuite/g++.old-deja/g++.mike/p5469.C
  8ea133c89aeac2630522f766a59283bf  gcc/testsuite/g++.old-deja/g++.mike/p5469a.C
  7862ccbfc24631e1c8cc9f04873dfb41  gcc/testsuite/g++.old-deja/g++.mike/p5571.C
*************** c0514fbc4a06765f363ceaa37f304896  gcc/te
*** 35646,35652 ****
  157f8168456e389ac4f34a5082e75a7c  gcc/testsuite/g++.old-deja/g++.oliva/friend1.C
  410d7d1fd1d6e3575100642f8c9a65e8  gcc/testsuite/g++.old-deja/g++.oliva/inline1.C
  a48a17255f32b3a66ffe19bec30a72f3  gcc/testsuite/g++.old-deja/g++.oliva/linkage1-main.cc
! 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
--- 43963,43969 ----
  157f8168456e389ac4f34a5082e75a7c  gcc/testsuite/g++.old-deja/g++.oliva/friend1.C
  410d7d1fd1d6e3575100642f8c9a65e8  gcc/testsuite/g++.old-deja/g++.oliva/inline1.C
  a48a17255f32b3a66ffe19bec30a72f3  gcc/testsuite/g++.old-deja/g++.oliva/linkage1-main.cc
! 3710022a1cb18e52a7d37075a71ac403  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
*************** ccfaa381b4b7ddc2ae21136f982f0584  gcc/te
*** 35968,35974 ****
  024add5304c41b827990193948da5b1f  gcc/testsuite/g++.old-deja/g++.other/instan1.C
  7c7aaab427900113172f72ddcd0b0c5e  gcc/testsuite/g++.old-deja/g++.other/lex1.C
  613b5a3314421e3acbbf7e53221024cb  gcc/testsuite/g++.old-deja/g++.other/lineno1.C
! 8c62ee37ef42b6a370fd60335a40f4aa  gcc/testsuite/g++.old-deja/g++.other/lineno2.C
  5e52821ca49563fbc530d8e6757296ea  gcc/testsuite/g++.old-deja/g++.other/lineno3.C
  259b00ebc759f1c2be8bf93afcc1c26c  gcc/testsuite/g++.old-deja/g++.other/lineno4.C
  adce56a08250b8174bedb4599c59675a  gcc/testsuite/g++.old-deja/g++.other/lineno5.C
--- 44285,44291 ----
  024add5304c41b827990193948da5b1f  gcc/testsuite/g++.old-deja/g++.other/instan1.C
  7c7aaab427900113172f72ddcd0b0c5e  gcc/testsuite/g++.old-deja/g++.other/lex1.C
  613b5a3314421e3acbbf7e53221024cb  gcc/testsuite/g++.old-deja/g++.other/lineno1.C
! 900c3269f81de6a200e6181d964ceb9f  gcc/testsuite/g++.old-deja/g++.other/lineno2.C
  5e52821ca49563fbc530d8e6757296ea  gcc/testsuite/g++.old-deja/g++.other/lineno3.C
  259b00ebc759f1c2be8bf93afcc1c26c  gcc/testsuite/g++.old-deja/g++.other/lineno4.C
  adce56a08250b8174bedb4599c59675a  gcc/testsuite/g++.old-deja/g++.other/lineno5.C
*************** be430db3c83c1e77ffcbbbd0b1311df6  gcc/te
*** 36806,36812 ****
  6af909875fa9f90e1e7206db6ad54117  gcc/testsuite/g++.old-deja/g++.pt/t35.C
  1f2805de9d0dd928b7dc9d6396f793df  gcc/testsuite/g++.old-deja/g++.pt/t35a.C
  c84f5cedd02a6127c6506cfa331391da  gcc/testsuite/g++.old-deja/g++.pt/t36.C
! 5bfa822496df4acc8fb3a2b97bead3b0  gcc/testsuite/g++.old-deja/g++.pt/t37.C
  2e421a22074476f104dce2246485a180  gcc/testsuite/g++.old-deja/g++.pt/t37a.C
  75bc3e70f5f3963a4a43e97741cf1de7  gcc/testsuite/g++.old-deja/g++.pt/t38.C
  94fb3f4d92db5a0db2265c73873ffa25  gcc/testsuite/g++.old-deja/g++.pt/t39.C
--- 45123,45129 ----
  6af909875fa9f90e1e7206db6ad54117  gcc/testsuite/g++.old-deja/g++.pt/t35.C
  1f2805de9d0dd928b7dc9d6396f793df  gcc/testsuite/g++.old-deja/g++.pt/t35a.C
  c84f5cedd02a6127c6506cfa331391da  gcc/testsuite/g++.old-deja/g++.pt/t36.C
! b66416f3e9abdf6a8b07155b43c852ce  gcc/testsuite/g++.old-deja/g++.pt/t37.C
  2e421a22074476f104dce2246485a180  gcc/testsuite/g++.old-deja/g++.pt/t37a.C
  75bc3e70f5f3963a4a43e97741cf1de7  gcc/testsuite/g++.old-deja/g++.pt/t38.C
  94fb3f4d92db5a0db2265c73873ffa25  gcc/testsuite/g++.old-deja/g++.pt/t39.C
*************** e4bacbe47abba3ebf1104b50d7cf9249  gcc/te
*** 36933,36945 ****
  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/testsuite/g++.old-deja/g++.robertl/eb104.C
  3659e47043ebbb544b5bad1e021405df  gcc/testsuite/g++.old-deja/g++.robertl/eb105.C
! 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
--- 45250,45262 ----
  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
! 9a391792097d18dff700f1f4229f9d70  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/testsuite/g++.old-deja/g++.robertl/eb104.C
  3659e47043ebbb544b5bad1e021405df  gcc/testsuite/g++.old-deja/g++.robertl/eb105.C
! 16a7df1eff310588240b57d7514b958a  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
*************** a085e6cf1eca394616113132643a792e  gcc/te
*** 37039,37045 ****
  1eb9a1d899e84b46785ab32efead0469  gcc/testsuite/g++.old-deja/g++.robertl/eb80.C
  78c03dfd8616d6624f4aa754373b8727  gcc/testsuite/g++.old-deja/g++.robertl/eb81.C
  ecb46cabaa1f14e48503417b0826e628  gcc/testsuite/g++.old-deja/g++.robertl/eb82.C
! 56310fd9753a3eedbd6a8e72fcce013e  gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
  82ebc0a368a4d3db129faff1d32ded02  gcc/testsuite/g++.old-deja/g++.robertl/eb84.C
  451d74d332d1ebd3febbf9f2fdef05d5  gcc/testsuite/g++.old-deja/g++.robertl/eb86.C
  1b1d44ab52323a9942ada2f5c6a0042c  gcc/testsuite/g++.old-deja/g++.robertl/eb87.C
--- 45356,45362 ----
  1eb9a1d899e84b46785ab32efead0469  gcc/testsuite/g++.old-deja/g++.robertl/eb80.C
  78c03dfd8616d6624f4aa754373b8727  gcc/testsuite/g++.old-deja/g++.robertl/eb81.C
  ecb46cabaa1f14e48503417b0826e628  gcc/testsuite/g++.old-deja/g++.robertl/eb82.C
! 601125547d612ca917029b5cd7b66253  gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
  82ebc0a368a4d3db129faff1d32ded02  gcc/testsuite/g++.old-deja/g++.robertl/eb84.C
  451d74d332d1ebd3febbf9f2fdef05d5  gcc/testsuite/g++.old-deja/g++.robertl/eb86.C
  1b1d44ab52323a9942ada2f5c6a0042c  gcc/testsuite/g++.old-deja/g++.robertl/eb87.C
*************** f0d75f94742cf514d429d51c4d4df58c  gcc/te
*** 37074,37086 ****
  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/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
--- 45391,45404 ----
  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
! eeef6240808ffddb8665506b1b3089d3  gcc/testsuite/g++.old-deja/old-deja.exp
! 1a38d39749e2fe1fa608d50e2234b094  gcc/testsuite/g++.target/aarch64/aarch64.exp
! 50c3d2f409c711a9588f70a884c9fb77  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
! 367010127e0524d4acb1ca0077e6698d  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp
  992600153061bcf9c4f34a765c2c8f7e  gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C
+ 47365b148e98b34169cc06e2310a4853  gcc/testsuite/g++.target/aarch64/atomic_store_with_stshh.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/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
*************** cbb30a4d3c73f183db77e6da8a13e3a9  gcc/te
*** 37090,37112 ****
  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
--- 45408,45465 ----
  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
+ 5c7d9c457935aed97ec5411da8248b77  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C
+ 8768115d444f864192b9eed7e675cd58  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C
+ 6ae7e639f92550ad23b9ec3fe950fa14  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C
+ c754d2f61e3f358a939788eebebd8ce3  gcc/testsuite/g++.target/aarch64/fmv-selection1.C
+ b76f4161df54c8629782ef9e0d754bca  gcc/testsuite/g++.target/aarch64/fmv-selection2.C
+ 92d941a86c475ff25a3e7235670ace84  gcc/testsuite/g++.target/aarch64/fmv-selection3.C
+ 7d5fc8331b20a5eae5ded76aa7a7d05f  gcc/testsuite/g++.target/aarch64/fmv-selection4.C
+ 38703815c1796540f8aecfaf1bc2cf26  gcc/testsuite/g++.target/aarch64/fmv-selection5.C
+ 5aaa612386dce37ca3d7571d955a991d  gcc/testsuite/g++.target/aarch64/fmv-selection6.C
+ 6c415ea98a837545a1d7268521c43f72  gcc/testsuite/g++.target/aarch64/fmv-selection7.C
  8d30bac01e24683c2d4e58c15ccb4a99  gcc/testsuite/g++.target/aarch64/fp8_mangling.C
  e488781ad97c2cdafc1c66ede7aa1e0f  gcc/testsuite/g++.target/aarch64/fp8_scalar_typecheck_2.C
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
  277b5d3e6c910137a4093c33ad09513e  gcc/testsuite/g++.target/aarch64/lane-bound-1.C
! 1d4d4a8de3da70578c27a82a12ea16d2  gcc/testsuite/g++.target/aarch64/mv-1.C
! 58ae6c894ed5d99c839b1c81b5a97e52  gcc/testsuite/g++.target/aarch64/mv-and-mvc-error1.C
! ec07e0126ff8d719e4bd754ac0832156  gcc/testsuite/g++.target/aarch64/mv-and-mvc-error2.C
! a17023c8b8a75987e2f6e22048b1a6a1  gcc/testsuite/g++.target/aarch64/mv-and-mvc-error3.C
! f9c816e11be2c3ccda058034e7d7ced9  gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C
! 5996f76c5dc2c10268e90ada8a82f601  gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C
! a1a60bca035f8f311226147d1158241e  gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C
! b19ce4ea0a0bc08bdd001978bf2abb12  gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C
! 324c59e0d0a4884680f51d50c00d9869  gcc/testsuite/g++.target/aarch64/mv-cpu-features.C
! 8d2a32642ea29e8bd5424824b7cca34c  gcc/testsuite/g++.target/aarch64/mv-error1.C
! ea0619cbe10911dcca70e535067d6e46  gcc/testsuite/g++.target/aarch64/mv-error2.C
! 979c02e9b8d1a3dc5d30ec5b6188db42  gcc/testsuite/g++.target/aarch64/mv-error3.C
! 03d34330e3bd067c7120b1231d8e4bd6  gcc/testsuite/g++.target/aarch64/mv-error4.C
! 18706616d044ed2011f22655fba6fb73  gcc/testsuite/g++.target/aarch64/mv-error5.C
! f3dd8881f8de095d8643f79b80e59e27  gcc/testsuite/g++.target/aarch64/mv-error6.C
! 64aa4e34c460ec0610cac4f45c9601ee  gcc/testsuite/g++.target/aarch64/mv-error7.C
! bb04d310d9aeb868b6d45865338642f2  gcc/testsuite/g++.target/aarch64/mv-error8.C
! 48d1f2ca95056b77c6d78e74ad9b692f  gcc/testsuite/g++.target/aarch64/mv-pragma.C
! 745abe274e13fcf82b8d32023c43155a  gcc/testsuite/g++.target/aarch64/mv-symbols1.C
! a9a8292d84794b6548bec9bd891f0fae  gcc/testsuite/g++.target/aarch64/mv-symbols10.C
! 8621c58d2bdbe143b5688c4bb639e865  gcc/testsuite/g++.target/aarch64/mv-symbols11.C
! 42df51f18b6ac565bbc53fa33d53b929  gcc/testsuite/g++.target/aarch64/mv-symbols12.C
! 06562fb55fc2c0a4e4e0d029ae6309b3  gcc/testsuite/g++.target/aarch64/mv-symbols13.C
! acc31fb5c33dbea2d9a976e8027f43d7  gcc/testsuite/g++.target/aarch64/mv-symbols2.C
! 756567fd6adf497b7ff7a776b1fd1865  gcc/testsuite/g++.target/aarch64/mv-symbols3.C
! 034020d7a23138b6bcdb90aa1dea0722  gcc/testsuite/g++.target/aarch64/mv-symbols4.C
! e6f1fa1fe4b50498f93a4b85d7dc36ae  gcc/testsuite/g++.target/aarch64/mv-symbols5.C
! 78cd0cfd54ab7d1a1f57ee950942f25c  gcc/testsuite/g++.target/aarch64/mv-symbols6.C
! e052aeb0b1c0c71a8c0988f09fa4f73a  gcc/testsuite/g++.target/aarch64/mv-symbols7.C
! d0e48d875681155d4d876ec0000ea30f  gcc/testsuite/g++.target/aarch64/mv-symbols8.C
! 18f1f429700cdb4c752ea944f60681b3  gcc/testsuite/g++.target/aarch64/mv-symbols9.C
! d4b779e4ea92fb94762b14bbd77d1ef3  gcc/testsuite/g++.target/aarch64/mvc-error1.C
! 5d58902a540cbbcdaec186b52e664cb6  gcc/testsuite/g++.target/aarch64/mvc-error2.C
! 4efebffa315440fbfcc099a15970e251  gcc/testsuite/g++.target/aarch64/mvc-symbols1.C
! 9b82c13ebfb83bbf05485deaba395be3  gcc/testsuite/g++.target/aarch64/mvc-symbols2.C
! cb3703685c9d5d1dea7ddb9b1e75905d  gcc/testsuite/g++.target/aarch64/mvc-symbols3.C
! 894c3e02c93fdfa48d0fdbd4a413958d  gcc/testsuite/g++.target/aarch64/mvc-symbols4.C
! 1aafb43e0b8dc4fe6aedfdaeffe11794  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
*** 37124,37131 ****
--- 45477,45489 ----
  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
+ 642fe82936cfa8f9a1ed358581691f4f  gcc/testsuite/g++.target/aarch64/pr113356.C
  c30fa1a8e837444d0a3e1e6be628b06d  gcc/testsuite/g++.target/aarch64/pr116074.C
  c8698b784efebd06777683e03d5bbfc7  gcc/testsuite/g++.target/aarch64/pr117048.C
+ 6bf6be8a46ca37d38164b2be2534e2c7  gcc/testsuite/g++.target/aarch64/pr119498.C
+ 47d08c40b71990fcfb466ef02b924211  gcc/testsuite/g++.target/aarch64/pr121290_1.C
+ 8e1e90695dc0c9fe994d520fb00bb0c8  gcc/testsuite/g++.target/aarch64/pr122890.C
+ cee7440840fa58ea5280af197f3054eb  gcc/testsuite/g++.target/aarch64/pr124126-1.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
*************** ba9d23bf9864be2b6061429c3faa49b7  gcc/te
*** 37135,37153 ****
  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
--- 45493,45517 ----
  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
! 3b38e06caad3949480bf46d44a3158ac  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 00803b5568ce5aa2825d27a84a218b6f  gcc/testsuite/g++.target/aarch64/sme/aarch64-sme.exp
  3de0947a17512aedda9a0acc7bcb39ed  gcc/testsuite/g++.target/aarch64/sme/exceptions_1.C
! 1b679872aed66bac54ec7e7cc118420f  gcc/testsuite/g++.target/aarch64/sme/exceptions_2.C
! a93aac7b8d9ba9f0fc52a933336b88b7  gcc/testsuite/g++.target/aarch64/sme/exceptions_2_nosve.C
  6617c08f1c35a7b00949b2a7c76d1e15  gcc/testsuite/g++.target/aarch64/sme/keyword_macros_1.C
+ c9198836844a7336e686dd975a80fbbd  gcc/testsuite/g++.target/aarch64/sme/sme_throw_1.C
+ 9a3b7e2498f4259da15a71f2850ec227  gcc/testsuite/g++.target/aarch64/sme/sme_throw_2.C
  7c9f331f9af372aa80eabfedf84ae4d1  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_1.C
  7fce27ec45311cf4d170ad324de8da10  gcc/testsuite/g++.target/aarch64/sme/streaming_mode_2.C
! a1e80c97392f15c445626accf3d33f52  gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp
! fc961318316b49991b985e2fdd2be83d  gcc/testsuite/g++.target/aarch64/spaceship_1.C
! 4501fff92ad989d592916380d816d0d7  gcc/testsuite/g++.target/aarch64/spaceship_2.C
! 43ef3ca7cf2796812900332b2f3aa1c3  gcc/testsuite/g++.target/aarch64/spaceship_3.C
! 91f78220f524fb09dfa3d0ea8955d68c  gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
! 546af9a83b6016321f7eca8e57bd79bf  gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
  a6360472eed92aa68d9de7e0dcbbc077  gcc/testsuite/g++.target/aarch64/sve/abd_1.C
! 4be94bbd6cb338300aa5e5978429a0f3  gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! 8557a44767a06130662d2936d0845a90  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
*************** cd7682bd90a892784fc019e3e84ef480  gcc/te
*** 37184,37191 ****
  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
--- 45548,45555 ----
  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
! 8d1b5d70661c624bad4cd32db258c9e3  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C
! 35eff1fb3244cb4714435fb0cbc5f6d7  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
*************** fd781106015aa6f32bb0ad12d1e80935  gcc/te
*** 37195,37201 ****
  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
  d240ace103b7a81954fe13e097eef13f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_6.C
  907f52337519a36ac48fa5195f4a4a6f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_7.C
  a7eae168d83de853575601b19b0a73a1  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_8.C
--- 45559,45565 ----
  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
! 22623a1bf6348258468f423ec5b64867  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_5.C
  d240ace103b7a81954fe13e097eef13f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_6.C
  907f52337519a36ac48fa5195f4a4a6f  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_7.C
  a7eae168d83de853575601b19b0a73a1  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/mangle_8.C
*************** f6b082767289902da5b51e2ea99eaec8  gcc/te
*** 37207,37212 ****
--- 45571,45577 ----
  8839c0294dd9b4f02061f7ccec0155d0  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set3_2.C
  f948ce0d4740d47197d2a7ecac1ef831  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set4_1.C
  ecb3597f101e2673e21ba02eaa395815  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/set4_2.C
+ 9e5989e0799379420871cda7518a9146  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/svbool_ternary.C
  fa5e83f89b6f2a3c984c9481e39db16c  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/svcount_1.C
  7b6a008db87cc2f429ad09a2de9f0001  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/type_redef_1.c
  5638adba83295d016410bd89da9975c8  gcc/testsuite/g++.target/aarch64/sve/acle/general-c++/type_redef_10.c
*************** f515b18aeb1d66984b8b5d71e9fc0b3c  gcc/te
*** 37273,37278 ****
--- 45638,45644 ----
  f3ce91773bd0b4a3127c481ccd50f20e  gcc/testsuite/g++.target/aarch64/sve/dup_sel_4.C
  88995b2addb79f14a72ba650d83a3920  gcc/testsuite/g++.target/aarch64/sve/dup_sel_5.C
  9e6f261244b524db00958d47111eef62  gcc/testsuite/g++.target/aarch64/sve/dup_sel_6.C
+ ed268bb0c6479d4c5a1aa2efea8c023a  gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.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
*************** ab6c5e333d0a740ae5ecff69966813a2  gcc/te
*** 37281,37286 ****
--- 45647,45654 ----
  420c5e0492e7721ea27176c74cff65f5  gcc/testsuite/g++.target/aarch64/sve/pr116595.C
  a36c6629cdaa92f5a41aa0c862cf5a54  gcc/testsuite/g++.target/aarch64/sve/pr119610-sve.C
  48b79fc3f836bb02ceace04c37ddd7c4  gcc/testsuite/g++.target/aarch64/sve/pr119706.C
+ 81119ead1d39599a647b5c79f9d21a85  gcc/testsuite/g++.target/aarch64/sve/pr121449.C
+ ca5585fa39dd81b6d4b16a223b4a2624  gcc/testsuite/g++.target/aarch64/sve/pr121536.cc
  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
*************** d4ca4a940822b140b8a1ada40f4e60af  gcc/te
*** 37290,37307 ****
  6979d0ef19d61a437acf8559362a5af8  gcc/testsuite/g++.target/aarch64/sve/pr99813.C
  eb290283439217e61bf7146ea947386f  gcc/testsuite/g++.target/aarch64/sve/static-var-in-template.C
  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
--- 45658,45684 ----
  6979d0ef19d61a437acf8559362a5af8  gcc/testsuite/g++.target/aarch64/sve/pr99813.C
  eb290283439217e61bf7146ea947386f  gcc/testsuite/g++.target/aarch64/sve/static-var-in-template.C
  221b0724e04f13318fe418921311ae33  gcc/testsuite/g++.target/aarch64/sve/tls_2.C
+ f2969d067e4c537b5662ae46aa21e47a  gcc/testsuite/g++.target/aarch64/sve/unpacked_binary_bf16_1.C
+ 3c9eab8b5dd49173ece65c23ccd7e870  gcc/testsuite/g++.target/aarch64/sve/unpacked_binary_bf16_2.C
+ 1a2d0298a4b483775c5e71824c6036c5  gcc/testsuite/g++.target/aarch64/sve/unpacked_cond_binary_bf16_1.C
+ 5c32ea0805dbb4b9c90f857628a9d479  gcc/testsuite/g++.target/aarch64/sve/unpacked_cond_binary_bf16_2.C
+ a21910cb9043df4e7ef2322d677df3d0  gcc/testsuite/g++.target/aarch64/sve/unpacked_cond_ternary_bf16_1.C
+ d7baa97b1e91c8ad9fcb434a0053a110  gcc/testsuite/g++.target/aarch64/sve/unpacked_cond_ternary_bf16_2.C
+ dce32aea51adbbcef1d491ec9d56b979  gcc/testsuite/g++.target/aarch64/sve/unpacked_ternary_bf16_1.C
+ 62de9352e4c09a28a48876779ec87783  gcc/testsuite/g++.target/aarch64/sve/unpacked_ternary_bf16_2.C
  a107043aa6d78c7f248ca1ffca6ac183  gcc/testsuite/g++.target/aarch64/sve/vcond_1.C
  aa928203aafdb1f6793fe73d77390fc9  gcc/testsuite/g++.target/aarch64/sve/vcond_1_run.C
! 6611cbfe5e8b727f44757076bd15d23a  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
! eb2aca171042b562febe4c10065f1ee1  gcc/testsuite/g++.target/aarch64/virtual-lto.C
! 0707e039d5311ec3d5db1e035d06a6d6  gcc/testsuite/g++.target/arm/arm.exp
! d0eaacd5173a9a25d7ce41b86ccf8153  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
! ebc10d8ec26c6ea8fd94735d0746ccd3  gcc/testsuite/g++.target/arm/mve.exp
! aa963809b3e294030584ae6ab010e997  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/te
*** 37309,37315 ****
  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
--- 45686,45693 ----
  4c06abe7b8d5bd183704907c3993392c  gcc/testsuite/g++.target/arm/pr102842.C
  94ea7d9cba55dd53f98f172e81e0c7ad  gcc/testsuite/g++.target/arm/pr103676.C
  d8845d0576030f586cc8563067a1c9ed  gcc/testsuite/g++.target/arm/pr107080.C
! 023450725b2253895cce9b11597040bf  gcc/testsuite/g++.target/arm/pr115485.C
! 6b40540ffb648d95c060284c9f2e9f1f  gcc/testsuite/g++.target/arm/pr120424.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
*************** f99409e2780aca9ffc3ba3b9dbfcaef8  gcc/te
*** 37323,37329 ****
  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
--- 45701,45707 ----
  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
! a4b56f75b1c7a9c36b4bde986f84756d  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
*************** e7211c828135e4ab4ce9ebe66058eea0  gcc/te
*** 37335,37345 ****
--- 45713,45725 ----
  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
+ 7e57525fdad02c8211a0b10c338753fd  gcc/testsuite/g++.target/i386/avx512-pr71921.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
+ 8763b4590fa0e7aa581be6701962a55f  gcc/testsuite/g++.target/i386/avx512fp16-pr123607.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
*************** c43ec17ecd6eea23639c975ca544d15b  gcc/te
*** 37352,37357 ****
--- 45732,45741 ----
  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
+ 60c5bf14a1938214fb6ec30c76d3922f  gcc/testsuite/g++.target/i386/cf_check-1.C
+ d308b2d49958c216374d7230f881c421  gcc/testsuite/g++.target/i386/cf_check-2.C
+ 0f972b96ac972bbb60579043ae03425f  gcc/testsuite/g++.target/i386/cf_check-3.C
+ 4bcace90538010060ca0b5e8a764462e  gcc/testsuite/g++.target/i386/cf_check-4.C
  7a33fea3b2ecb10736e762b211f6ae42  gcc/testsuite/g++.target/i386/crc32-4.C
  ea7a625a5c087724f70333c1b6ad80fc  gcc/testsuite/g++.target/i386/empty-class1.C
  5c480abcec0d76095612ae8099a7315e  gcc/testsuite/g++.target/i386/empty-class2.C
*************** ce8e2501180e952788ad7bfbfebcd617  gcc/te
*** 37368,37378 ****
  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
--- 45752,45776 ----
  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
! c5672ec6c30293b5d8a683f77ad2fab1  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
+ 938f3d3aa97c11e636572fd743ee72b6  gcc/testsuite/g++.target/i386/mangle-ldbl-1.C
+ fb6172109b269722e02aa230bd3522d8  gcc/testsuite/g++.target/i386/mangle-ldbl-2.C
  ae8574e23abf3d9af1504b3bec6f9ec6  gcc/testsuite/g++.target/i386/mangling-alias1.C
+ b7e1f3365f4173c07b92bd12be740cee  gcc/testsuite/g++.target/i386/memset-pr101366-1.C
+ 2c7dc95d6ad45af2e4977347261d684f  gcc/testsuite/g++.target/i386/memset-pr101366-2.C
+ 14b9d07d764e10ea8c93f20423913422  gcc/testsuite/g++.target/i386/memset-pr108585-1a.C
+ 30de8090fe698b080715e95dd4578512  gcc/testsuite/g++.target/i386/memset-pr108585-1b.C
+ 087c122c6125afd5603610259a957f95  gcc/testsuite/g++.target/i386/memset-pr118276-1a.C
+ fd21c4733c188d0f80c33f7479852a52  gcc/testsuite/g++.target/i386/memset-pr118276-1b.C
+ c86685c26af44bf5c35f829b79362b3c  gcc/testsuite/g++.target/i386/memset-pr118276-1c.C
+ d1b609c14400a770816be904e2e0cee2  gcc/testsuite/g++.target/i386/mv-symbols1.C
+ c0b24207688618b815731387510d9bed  gcc/testsuite/g++.target/i386/mv-symbols2.C
+ b621d2ff4930c57a97eff571164cd394  gcc/testsuite/g++.target/i386/mv-symbols3.C
+ 630bd692c85631af0f1159167b54178b  gcc/testsuite/g++.target/i386/mv-symbols4.C
+ 7b6d81513820d7fe37461618d6e2c06e  gcc/testsuite/g++.target/i386/mv-symbols5.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
*** 37382,37388 ****
  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
--- 45780,45786 ----
  7bd56e010086961d6b148fa238972ab3  gcc/testsuite/g++.target/i386/mv13.C
  51ba34bcfd4aa85e44bfffe933c6081a  gcc/testsuite/g++.target/i386/mv14.C
  fd2faa1ce293884909e71ac1de0fa72f  gcc/testsuite/g++.target/i386/mv15.C
! 6c7612441ca801174198d7aa9b453e69  gcc/testsuite/g++.target/i386/mv16.C
  5d29a5380a7809fd409e2a8fbce62e46  gcc/testsuite/g++.target/i386/mv17.C
  fefb95a7923263c40f6ccbf9f5345d5e  gcc/testsuite/g++.target/i386/mv18.C
  2020e957a2dbc426e1e4a2974db97293  gcc/testsuite/g++.target/i386/mv19.C
*************** bc255ba4628b94d5377f0ba915ad26da  gcc/te
*** 37396,37402 ****
  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
--- 45794,45800 ----
  c3abd0fb44ca490064aaa6988814d40c  gcc/testsuite/g++.target/i386/mv26.C
  203c2fb05767e713a362682a2dcedfc7  gcc/testsuite/g++.target/i386/mv27.C
  40932b515fb9f24850535ab3021f3da7  gcc/testsuite/g++.target/i386/mv28.C
! 564e257b536db045b9bce6baaf544c40  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
*************** dc39143004995c38b524d1b929c9c96c  gcc/te
*** 37407,37412 ****
--- 45805,45814 ----
  3b58c2bbe7b4b5baffcd354353b6daef  gcc/testsuite/g++.target/i386/mv7.C
  c2d5d87b3488ab338dcccb9091181331  gcc/testsuite/g++.target/i386/mv8.C
  95cfb2367a4c0ee22bbee8a3f260ef2f  gcc/testsuite/g++.target/i386/mv9.C
+ 8d7c7951a883b42e55801c2dd20b6d78  gcc/testsuite/g++.target/i386/mvc-symbols1.C
+ 27be0855705ca551409efda354c7792e  gcc/testsuite/g++.target/i386/mvc-symbols2.C
+ 26179b0d8e69cab406e6430a59097190  gcc/testsuite/g++.target/i386/mvc-symbols3.C
+ e64a0b5e7c6fdf60a7781eda297065c2  gcc/testsuite/g++.target/i386/mvc-symbols4.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
*************** e7c4ad8e3b4d2a6588c231359cacaffb  gcc/te
*** 37437,37442 ****
--- 45839,45845 ----
  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
+ 45b969acc08044941db7a8b6e0be0747  gcc/testsuite/g++.target/i386/pr103750.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
*************** e10a0652aff7df3b5d31aabc5b83fc4e  gcc/te
*** 37475,37486 ****
--- 45878,45891 ----
  67d8378f149029e8703f825a6227065a  gcc/testsuite/g++.target/i386/pr108711.C
  198bde5a37731f00084d791cde389e8b  gcc/testsuite/g++.target/i386/pr108934.C
  2a4ccb802022f75d63eec8145d6f1f29  gcc/testsuite/g++.target/i386/pr109676.C
+ a4adf43c60d7a3c6a6f670384fdf2871  gcc/testsuite/g++.target/i386/pr109780-1.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
+ d6fb8115dbf51499f6980e87ccc401ea  gcc/testsuite/g++.target/i386/pr112824-2.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/te
*** 37489,37499 ****
  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
--- 45894,45921 ----
  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
! b9e1a8877e91c1b75f7244434ca27969  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
+ 38180dda246555aa4a3e76db7cd452f1  gcc/testsuite/g++.target/i386/pr120036.C
+ 8648be4dade032c24c786b68f4353c67  gcc/testsuite/g++.target/i386/pr120819.C
+ fe0c4541682a8b2806aac4868c0ee61c  gcc/testsuite/g++.target/i386/pr120830.C
+ 8881751e1efd14bcab3460abca01e627  gcc/testsuite/g++.target/i386/pr122446-1.C
+ 431f2273aedbab5747602c80152b78fd  gcc/testsuite/g++.target/i386/pr122446-amxavx512.C
+ e7e909b0858a352117bc6ee5a8fcafc7  gcc/testsuite/g++.target/i386/pr122446-amxbf16.C
+ b48e2095b969e9e4d541b80007eaed1f  gcc/testsuite/g++.target/i386/pr122446-amxcomplex.C
+ ea015573ee8ddabae38c2a615f8228fb  gcc/testsuite/g++.target/i386/pr122446-amxfp16.C
+ 38f98e80df657040e7cd34e280ccd4c0  gcc/testsuite/g++.target/i386/pr122446-amxfp8.C
+ 59ffb1a0656cc43a87c4b7e240fb28c6  gcc/testsuite/g++.target/i386/pr122446-amxint8.C
+ d127e2f7300195708178a6cec8648544  gcc/testsuite/g++.target/i386/pr122446-amxmovrs.C
+ f5a1d06c17cacf90f627c83c8b800a78  gcc/testsuite/g++.target/i386/pr122446-amxtf32.C
+ ffbb5e0bd5668625c6d5cef769228118  gcc/testsuite/g++.target/i386/pr122446-amxtile.C
+ 59940f4c4aa7fabb09c136a75c51dbfc  gcc/testsuite/g++.target/i386/pr122906-1.C
+ fe98d8bd643079ebf7d12496d3189d03  gcc/testsuite/g++.target/i386/pr123779.C
+ 359da1e47be4e887387ecc78a9efb8cc  gcc/testsuite/g++.target/i386/pr124002.C
+ 8f297166e83d789d19e7836ae95ce7f3  gcc/testsuite/g++.target/i386/pr124136.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
*************** db3c3a9d9f798eff6348f0813dccc376  gcc/te
*** 37501,37509 ****
  e8a006e5050e191010d1a6ecff4873a3  gcc/testsuite/g++.target/i386/pr58372.C
  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
--- 45923,45933 ----
  e8a006e5050e191010d1a6ecff4873a3  gcc/testsuite/g++.target/i386/pr58372.C
  a9182e6d928d363b56a91bded6231bb9  gcc/testsuite/g++.target/i386/pr59492.C
  43859c370dc310a07fe27e045648c6cd  gcc/testsuite/g++.target/i386/pr61747.C
+ 3096cea7de83e629a794ba91b285a279  gcc/testsuite/g++.target/i386/pr71921.C
  012e05b29975321373f213709028cdd2  gcc/testsuite/g++.target/i386/pr79173-1.C
! 6f35902f19eeea336cfa082d15cc8b42  gcc/testsuite/g++.target/i386/pr80566-1.C
  416c15961210911f05403163d661a2e5  gcc/testsuite/g++.target/i386/pr80566-2.C
+ d4f5b66ebc38c1d8b40fcbe48e7a1f34  gcc/testsuite/g++.target/i386/pr81501-1.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
*************** afb8b6ab7d54fa8eab8865a52a46caa4  gcc/te
*** 37542,37547 ****
--- 45966,45972 ----
  eafc363e633aef7542e621d7ecaa914e  gcc/testsuite/g++.target/i386/pr99108.C
  3660db29974db1f63f1a1f458c8894db  gcc/testsuite/g++.target/i386/pr99679-1.C
  b3fdfe2866e1905292894d815f1fa291  gcc/testsuite/g++.target/i386/pr99679-2.C
+ 34f905a0359d6dd61671b90ee3d5a45a  gcc/testsuite/g++.target/i386/shrink_wrap_separate.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
*************** c06ceb436623685585c49fb701481265  gcc/te
*** 37551,37579 ****
  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
! 580dcc09db78d63c393f7d3c75b38ada  gcc/testsuite/g++.target/loongarch/bytepick.C
  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
--- 45976,46020 ----
  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
+ 99f041cd98285900f98c95042bbb14b5  gcc/testsuite/g++.target/i386/vect-pragma-target-1.C
+ c8c24d88b9d93938e4018923d3db0ce3  gcc/testsuite/g++.target/i386/vect-pragma-target-2.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
! 5748e06a0fe23938095b8e334b5b0d1b  gcc/testsuite/g++.target/loongarch/bytepick.C
  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
! 3647cef85ffdc7143f3bc44908265e99  gcc/testsuite/g++.target/loongarch/got-load.C
! d9eec2dceb20f7f4bdf8b8ff2a9cac35  gcc/testsuite/g++.target/loongarch/loongarch.exp
! 3ca321fec4f8a0fe6d220d0669db80a4  gcc/testsuite/g++.target/loongarch/mv-symbols1.C
! 4f24154ce83c15998949b612c0307178  gcc/testsuite/g++.target/loongarch/mv-symbols2.C
! 45ce9b941b67b36a1b91aa9b4c4aa6cd  gcc/testsuite/g++.target/loongarch/mv-symbols3.C
! 3e646c5c867d1be9cc2b80918a66b5aa  gcc/testsuite/g++.target/loongarch/mv-symbols4.C
! 457c033d971303c469b91bff719ad7c6  gcc/testsuite/g++.target/loongarch/mv-symbols5.C
! 5ea77ebc34e20f2d867861d653c4c6b1  gcc/testsuite/g++.target/loongarch/mv-symbols6.C
! 3846f891b36119ac958fe29fab75d4ba  gcc/testsuite/g++.target/loongarch/mvc-symbols1.C
! 5fc5daedec691a8c7258f9426c5d1042  gcc/testsuite/g++.target/loongarch/mvc-symbols2.C
! 80a6adb07b9e7c5e7ab52c5b8d239a46  gcc/testsuite/g++.target/loongarch/mvc-symbols3.C
! c79154d30246903274765e2b9d7c357f  gcc/testsuite/g++.target/loongarch/mvc-symbols4.C
! 24bcd366c1f73bbdb2384bbd350965f1  gcc/testsuite/g++.target/loongarch/mvc-symbols5.C
  3e379ce66f2b5fd83481c50aad661033  gcc/testsuite/g++.target/loongarch/pr106096.C
! ea39586991aa764e867af747da8c3d65  gcc/testsuite/g++.target/loongarch/pr106828.C
! beefcfa1d7ebe27a8c765de46d63bba5  gcc/testsuite/g++.target/loongarch/pr117575.C
! ad61712893b927ca473f6020f822e9e2  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
! 34027ba6b82f6c1a149bf8647e25f782  gcc/testsuite/g++.target/m68k/m68k.exp
! 81632d210f253f0896365b822284f2fb  gcc/testsuite/g++.target/m68k/mangle-ldbl-1.C
! 46b65ffac45b6dbad83a94dc6387d5b7  gcc/testsuite/g++.target/m68k/mangle-ldbl-2.C
  a1d5220e55816987e989ecef9b9914ad  gcc/testsuite/g++.target/m68k/pr116244.C
  0326a0afb833c5dbd49b5d623c8dd93b  gcc/testsuite/g++.target/mips/cxx17_empty_base.C
! 691c8f4c219f056c55313e2ef37edba8  gcc/testsuite/g++.target/mips/mips.exp
  dcd3af289f36f150df28be99b5efc7ed  gcc/testsuite/g++.target/mips/pr102024.C
  436543179ef45c1a7c596bfa70c8ef1d  gcc/testsuite/g++.target/msp430/data-attributes.C
! 1da32168f543e27ae1c61c7be6cd3060  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
*************** f99409e2780aca9ffc3ba3b9dbfcaef8  gcc/te
*** 37588,37594 ****
  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
--- 46029,46035 ----
  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
! 962240565ebfac8beadd987949f3eda3  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
*************** ac49cc2a622b01c5caa9253f83c5bdee  gcc/te
*** 37620,37626 ****
  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
--- 46061,46071 ----
  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
! ed682c5c32c8c40365c63058db820371  gcc/testsuite/g++.target/powerpc/mvc-symbols1.C
! 6f672fa678cee60fe23718bec1acfbb6  gcc/testsuite/g++.target/powerpc/mvc-symbols2.C
! 363132ff2406d4af14ddb7f074f68c0e  gcc/testsuite/g++.target/powerpc/mvc-symbols3.C
! 0d3b918c9a70db4e886e0846302f1fc2  gcc/testsuite/g++.target/powerpc/mvc-symbols4.C
! cc4d04298434a77aa7b0c95e3cc260f1  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
*************** dc88c4a16670b88873deaa496d62f7e0  gcc/te
*** 37661,37697 ****
  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
--- 46106,46169 ----
  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
+ 2c7a50d8ba8d7d540f019c302b27e707  gcc/testsuite/g++.target/pr124597.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
! b4de5ba6621c79e105240dc29381f31d  gcc/testsuite/g++.target/pru/pru.exp
  4b11a77cc6e6a6d127ce6f11252f605a  gcc/testsuite/g++.target/riscv/_Float16.C
+ 7ad236bbb073e375a26917238b5d3b48  gcc/testsuite/g++.target/riscv/abi/empty-struct+union-1.cc
+ 051947fc5192875d9ad4b0dc07aed862  gcc/testsuite/g++.target/riscv/abi/empty-struct+union-2.cc
+ 78ca50d563f26a17b07d6b86e08e95db  gcc/testsuite/g++.target/riscv/abi/empty-struct+union-3.cc
+ 888a26663657dd1c15bdd3fa77087303  gcc/testsuite/g++.target/riscv/abi/empty-struct+union-4.cc
+ ad089dd7b8ee3d4c84e9efe2c4e32936  gcc/testsuite/g++.target/riscv/abi/empty-struct-1.cc
+ 37d95628f67cab1eb5bf82d0d71cadf4  gcc/testsuite/g++.target/riscv/abi/empty-struct-10.cc
+ e2fd6c66e6cefa5e7180d038a858e702  gcc/testsuite/g++.target/riscv/abi/empty-struct-11.cc
+ 193cb91f2209b416aaebbed7b482cf8a  gcc/testsuite/g++.target/riscv/abi/empty-struct-12.cc
+ c7763dd23aa37ce6119c30e1bf4a6c00  gcc/testsuite/g++.target/riscv/abi/empty-struct-2.cc
+ 7c8f30103aeafca45c080562ae153d56  gcc/testsuite/g++.target/riscv/abi/empty-struct-3.cc
+ 0438c564f35e317fbd501e576e6b8f84  gcc/testsuite/g++.target/riscv/abi/empty-struct-4.cc
+ d983e99999e28de158c7765bddefeaa7  gcc/testsuite/g++.target/riscv/abi/empty-struct-5.cc
+ 8982ca01eba30b34b9d6a64295399440  gcc/testsuite/g++.target/riscv/abi/empty-struct-6.cc
+ 4cfaba5ab9ae28b0e0363c0e1f03dccd  gcc/testsuite/g++.target/riscv/abi/empty-struct-7.cc
+ 0fe46c098c4b7de812563a3f0aaf071e  gcc/testsuite/g++.target/riscv/abi/empty-struct-8.cc
+ 4e46d18fbffbca723075e0ab43180071  gcc/testsuite/g++.target/riscv/abi/empty-struct-9.cc
+ ab72ab4063586af4a9bb4ed9537b4e52  gcc/testsuite/g++.target/riscv/abi/empty-union-1.cc
+ efdc2d04c4ec3a467d6143dee9cea8fd  gcc/testsuite/g++.target/riscv/abi/empty-union-2.cc
+ 34295d3b8f08063041be20094ab9d8a3  gcc/testsuite/g++.target/riscv/abi/empty-union-3.cc
+ 6a13c963d0bd67b527dca4993c7dda4f  gcc/testsuite/g++.target/riscv/abi/empty-union-4.cc
  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
! 249bfd52c38dfb0d435f570090b62bd0  gcc/testsuite/g++.target/riscv/mv-symbols2.C
! 615fcfeeb8405364989999823949504e  gcc/testsuite/g++.target/riscv/mv-symbols3.C
! 5f8f93b57d4c3fa9eba2c6fc06ff3abe  gcc/testsuite/g++.target/riscv/mv-symbols4.C
! 508eeedfc6c0cc51fa2ef6d5e9e939af  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
! 014c61bbae64e614a8717bb82492cd74  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
+ d8ba8c12676113bab781623c9b4c8a1f  gcc/testsuite/g++.target/riscv/pr119832.C
+ a8a857220d4221ed70fa20fdbdf0cfca  gcc/testsuite/g++.target/riscv/pr122692-run-1.C
+ 605f86e49704fde491263d58c2ccade7  gcc/testsuite/g++.target/riscv/pr122692-run-2.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
  ac37e529bda1269045c3681cc4b425dd  gcc/testsuite/g++.target/riscv/pr97682.C
+ daceaf1f0da7e5c955e4b13180536bca  gcc/testsuite/g++.target/riscv/redundant-andi.C
  6e6f612caa7b4f4e5eea9cd6bba4227b  gcc/testsuite/g++.target/riscv/redundant-bitmap-1.C
  7079827a2e9106d7dd26baf0312903e6  gcc/testsuite/g++.target/riscv/redundant-bitmap-2.C
  5e656f7ba916750fdf3fd708236e7e9a  gcc/testsuite/g++.target/riscv/redundant-bitmap-3.C
  005a07d6ed445202a5333c84693b6d73  gcc/testsuite/g++.target/riscv/redundant-bitmap-4.C
! 298036a55c22381fe720f6a41a1a2fdf  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
+ 5cf8aba8614b6e7a77dd44f21cedac0c  gcc/testsuite/g++.target/riscv/rvv/autovec/pr123074.C
+ 81a8396006a903276bfc03dd5c96149c  gcc/testsuite/g++.target/riscv/rvv/autovec/pr123118.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
*************** e296551bbee90148974ff78d5066caf7  gcc/te
*** 37724,37733 ****
  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
  4b5a44a1819e9404a2b1305798c19846  gcc/testsuite/g++.target/s390/pr100281-2.C
--- 46196,46212 ----
  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
+ c815e2b915616e550da03257a0782d3c  gcc/testsuite/g++.target/riscv/rvv/base/pr122448.C
+ 5278ec1993abdc95652f6d706ddaa862  gcc/testsuite/g++.target/riscv/rvv/base/pr123806.C
+ bb74b6c9495308ab73ce64ff3cfd9543  gcc/testsuite/g++.target/riscv/rvv/base/pr123808-2.C
+ 1079f987e4481f60dedf174de12857cb  gcc/testsuite/g++.target/riscv/rvv/base/pr123808.C
  979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/g++.target/riscv/rvv/base/riscv_vector.h
! 874d1adf030c6930443f00e75573b0e8  gcc/testsuite/g++.target/riscv/rvv/rvv.exp
! 0f6d3519b642a314a2ed539fd0c405c3  gcc/testsuite/g++.target/riscv/rvv/xtheadvector/pr116593.C
  737eebb4901981753937ddcc65184708  gcc/testsuite/g++.target/s390/atomic-align-1.C
+ a4ea51c05f73fa50108f4536f172c84a  gcc/testsuite/g++.target/s390/builtin-array-arg-1.C
+ 4c0f4d71038ac725005db5f6fb2c806e  gcc/testsuite/g++.target/s390/float16-1.C
+ 6e0a54777a08fbf43783feea7cfd4c21  gcc/testsuite/g++.target/s390/float16-2.C
  74f02d12b4213817c3460e1eebfa9eae  gcc/testsuite/g++.target/s390/mi-thunk.C
  93b786c04aacd9a92606e85c55410461  gcc/testsuite/g++.target/s390/pr100281-1.C
  4b5a44a1819e9404a2b1305798c19846  gcc/testsuite/g++.target/s390/pr100281-2.C
*************** f536562eba9a9954ace3a616ac52f438  gcc/te
*** 37744,37753 ****
  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
--- 46223,46239 ----
  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
! d7689988bda934df8a112ceee887ccab  gcc/testsuite/g++.target/s390/s390.exp
  9ff1a8d8d1c6f294a317244992dec97a  gcc/testsuite/g++.target/s390/zvec-templ-1.C
+ f27916a1de2b23d247fca90eb0d7191a  gcc/testsuite/g++.target/sh/sh.exp
+ 09b8b53ce09543cb0dc494095977eb30  gcc/testsuite/g++.target/sh/torture/pr55212-c311.C
+ c459a9b755a4a6fec4beda7e103a9a34  gcc/testsuite/g++.target/sh/torture/pr55212-c333.C
+ 4c6c9e7f4529efcc8e887f067527d612  gcc/testsuite/g++.target/sh/torture/pr55212-c373.C
+ 74ee7729e1f98918660311f23db5e309  gcc/testsuite/g++.target/sh/torture/pr55212-c384.C
+ 810cbbd931332a2875c95ba17d0d4166  gcc/testsuite/g++.target/sh/torture/pr55212-c413.C
+ 0fa9f5acb348e8e9c4650d51b489be3c  gcc/testsuite/g++.target/sh/torture/sh-torture.exp
  9ec75dfed03d43e4480e98ac02f604a7  gcc/testsuite/g++.target/xtensa/pr95571.C
! dec6f1cdafe485fc846e6dfc971ba38c  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
*************** d95d3791be79edb41b4192d2696815fb  gcc/te
*** 37953,37959 ****
  f6669c2a749498d487e22ebfc2435eba  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
  04a8a9f37c8348589a3110b86c07ae26  gcc/testsuite/gcc.c-torture/compile/20030319-1.c
  636afeca97e7bba8823cca3efc1e7df1  gcc/testsuite/gcc.c-torture/compile/20030320-1.c
! 94d7088d3f5f8a2ae799c04f964efbfe  gcc/testsuite/gcc.c-torture/compile/20030323-1.c
  73bf3aed397c6b3c6218590a3f60d762  gcc/testsuite/gcc.c-torture/compile/20030330-1.c
  6948cd26b8e708cff8d37323f927fb52  gcc/testsuite/gcc.c-torture/compile/20030331-1.c
  57016aeddadea6003ad54539984737c9  gcc/testsuite/gcc.c-torture/compile/20030405-1.c
--- 46439,46445 ----
  f6669c2a749498d487e22ebfc2435eba  gcc/testsuite/gcc.c-torture/compile/20030314-1.c
  04a8a9f37c8348589a3110b86c07ae26  gcc/testsuite/gcc.c-torture/compile/20030319-1.c
  636afeca97e7bba8823cca3efc1e7df1  gcc/testsuite/gcc.c-torture/compile/20030320-1.c
! e75539741e2053ff92f3de72c1e88753  gcc/testsuite/gcc.c-torture/compile/20030323-1.c
  73bf3aed397c6b3c6218590a3f60d762  gcc/testsuite/gcc.c-torture/compile/20030330-1.c
  6948cd26b8e708cff8d37323f927fb52  gcc/testsuite/gcc.c-torture/compile/20030331-1.c
  57016aeddadea6003ad54539984737c9  gcc/testsuite/gcc.c-torture/compile/20030405-1.c
*************** c037cb218a407576629fa49b2d51de87  gcc/te
*** 38594,38600 ****
  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
--- 47080,47086 ----
  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
! 0289e7b7400e8114041bb23c8556371d  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
*************** a2656a59d00f50e3a24dc4e71bfb3973  gcc/te
*** 38786,38791 ****
--- 47272,47278 ----
  9b56cc2b8b8b471730e0b14ce4b78300  gcc/testsuite/gcc.c-torture/compile/pr103813.c
  4a6f867d2a09bace8b7a324f6a4f5237  gcc/testsuite/gcc.c-torture/compile/pr104327.c
  43abe0671a6ea621a4ca89fda41e49b8  gcc/testsuite/gcc.c-torture/compile/pr104499.c
+ acee4f72cc5b1f29df02485de18a69c0  gcc/testsuite/gcc.c-torture/compile/pr105192.c
  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
*************** eea87d83e17b279b87e26692758e741d  gcc/te
*** 38860,38872 ****
--- 47347,47370 ----
  55a54152820578acabaf82298af82f50  gcc/testsuite/gcc.c-torture/compile/pr116009.c
  a36b5332929fccce3ba46aacdd6e1984  gcc/testsuite/gcc.c-torture/compile/pr116348.c
  49d6139389714e075cde88f08d4d1f2e  gcc/testsuite/gcc.c-torture/compile/pr116516.c
+ 4b342b76caa9e8e213c9b81ca64d1333  gcc/testsuite/gcc.c-torture/compile/pr116600.c
  0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
  50f2676721fef746c58625b6346f5755  gcc/testsuite/gcc.c-torture/compile/pr117449.c
  7885242b11fb54f407c5b67910c8c93a  gcc/testsuite/gcc.c-torture/compile/pr118362.c
  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
+ ab667119ae39828bcd103bb5c5434cdc  gcc/testsuite/gcc.c-torture/compile/pr120250.c
  ba307c947af4df2e0ff2f70272caf68a  gcc/testsuite/gcc.c-torture/compile/pr120807.c
+ b20dd8a4cdcf6dd51489456d26453893  gcc/testsuite/gcc.c-torture/compile/pr122066.c
+ 46eb20294e18878710a761cb15ba8fd5  gcc/testsuite/gcc.c-torture/compile/pr122588-1.c
+ 9696537bbd1354b5d13d3e674cf11570  gcc/testsuite/gcc.c-torture/compile/pr123069.c
+ 9f275c2b6e96b2a9fdee0b1a4aee96e9  gcc/testsuite/gcc.c-torture/compile/pr123365.c
+ 8c484e5df297a43329f4182432f35fda  gcc/testsuite/gcc.c-torture/compile/pr123386.c
+ ffc2d0352a16ed7c76c12152bde69753  gcc/testsuite/gcc.c-torture/compile/pr123703.c
+ b8b52e8f02c4a8a36a13b5243b69bbe6  gcc/testsuite/gcc.c-torture/compile/pr124250.c
+ 2d7ab09400234f73cb2751fd18e97cce  gcc/testsuite/gcc.c-torture/compile/pr124280.c
+ 39f558958106fc6454b8884cf937791f  gcc/testsuite/gcc.c-torture/compile/pr124643.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
*************** f3d1870400b51dddb584a124428d8c1d  gcc/te
*** 39176,39181 ****
--- 47674,47680 ----
  c9e3281a601b3492cb99a7a1d45d7588  gcc/testsuite/gcc.c-torture/compile/pr42196-1.c
  21c33c4a4e17ca99b5e677f9fc459670  gcc/testsuite/gcc.c-torture/compile/pr42196-2.c
  a491a00d59bc3267fc9a8396ddd708b5  gcc/testsuite/gcc.c-torture/compile/pr42196-3.c
+ dee3c5587a6b544648a992c590c6064d  gcc/testsuite/gcc.c-torture/compile/pr42196-4.c
  ac9974a1e65b3d4e3c0ffc20a6dcce95  gcc/testsuite/gcc.c-torture/compile/pr42234.c
  fad0d9cc93e33fc0747f9ef8037c2920  gcc/testsuite/gcc.c-torture/compile/pr42237.c
  04967bea8f9bf8d7f655cc454e8ec54c  gcc/testsuite/gcc.c-torture/compile/pr42299.c
*************** caa74354806f94b1777d3d438547d909  gcc/te
*** 40564,40570 ****
  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
--- 49063,49069 ----
  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
! 8ed74e4c40c39782befb9460ad555cf4  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
*** 40574,40580 ****
  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
--- 49073,49079 ----
  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
! 08eafdccb801fc771b01bedb926d5810  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
*************** fef8c8e0e438a70ba68e11025e033af6  gcc/te
*** 40631,40636 ****
--- 49130,49137 ----
  97dffb77bfdc924b76a1c91809febb87  gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.x
  6f905cdc469586014bb19fd748162b58  gcc/testsuite/gcc.c-torture/execute/builtins/memset-lib.c
  52867f894dd88e60bcf0182d12a00624  gcc/testsuite/gcc.c-torture/execute/builtins/memset.c
+ 99438348a0fb8c16f611b552687c659a  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1-lib.c
+ 4f5330e68c8f3e38cba895db53031a61  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-1.c
  99438348a0fb8c16f611b552687c659a  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c
  300d9ab3d9df6e85085c874f460a689f  gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c
  8e258d2fc5daa60d7007d842cf555b36  gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c
*************** d5b51664c6ca431aadc9eb21024bcb22  gcc/te
*** 40715,40724 ****
  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
--- 49216,49225 ----
  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
! 58587e62eb9cc194bcfb8dc1e76d673a  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
! 7a43d690795c57accd55a88e271ed41b  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
*************** e329c7fca0108570e81273f5b62d90e0  gcc/te
*** 40764,40770 ****
  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
--- 49265,49271 ----
  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
! f47ffd852148f2c1dd564a0623060c24  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
*************** c70578fda10ba34906c056f0cfa7d7f4  gcc/te
*** 40835,40841 ****
  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
--- 49336,49342 ----
  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
! 67b6505626334cc6b3a5bf54948bfa3b  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
*************** cf63bfb7d81a1506c5a7f642d12550d0  gcc/te
*** 41025,41031 ****
--- 49526,49539 ----
  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
+ 6cd050f88ca0f122ca3d062c32ebb9cf  gcc/testsuite/gcc.c-torture/execute/pr120630.c
  eda2af339f8dd266a02b2d61a5444a03  gcc/testsuite/gcc.c-torture/execute/pr120677.c
+ d41fd1ea09327fdf9b68f657aea5661c  gcc/testsuite/gcc.c-torture/execute/pr122000.c
+ 529fc2a1e92dc790d3766cd8554fc89c  gcc/testsuite/gcc.c-torture/execute/pr122943.c
+ 55bc090de1c97a85eaf8103e85c7cb36  gcc/testsuite/gcc.c-torture/execute/pr123753.c
+ cb4c82184137c0933c1bae60a7df15bc  gcc/testsuite/gcc.c-torture/execute/pr123864.c
+ 95b7f2d687a5a5e2df1e09fad845a195  gcc/testsuite/gcc.c-torture/execute/pr123978.c
+ 256e8d04f36f265861609fbe23468388  gcc/testsuite/gcc.c-torture/execute/pr124358.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
*************** eede5846406062fe63057e8df56a6ca6  gcc/te
*** 41034,41040 ****
  4fc9e57f7b945eb1b204095a3d029480  gcc/testsuite/gcc.c-torture/execute/pr17078-1.c
  dba3bcf10039bcb1ecc6bf45d0cd1bd8  gcc/testsuite/gcc.c-torture/execute/pr17133.c
  d3d985122f6386b1abb505ddf6992aca  gcc/testsuite/gcc.c-torture/execute/pr17252.c
! c2c1f07190241a4c0ba2cab43a1f718a  gcc/testsuite/gcc.c-torture/execute/pr17377.c
  5f75ea59963aba30c9a23d96579453f7  gcc/testsuite/gcc.c-torture/execute/pr19005.c
  aa9ab7b3132881e662d2a7075ddb4ec4  gcc/testsuite/gcc.c-torture/execute/pr19449.c
  2acb24beb962e468d2f1c1ea9dfc3777  gcc/testsuite/gcc.c-torture/execute/pr19515.c
--- 49542,49548 ----
  4fc9e57f7b945eb1b204095a3d029480  gcc/testsuite/gcc.c-torture/execute/pr17078-1.c
  dba3bcf10039bcb1ecc6bf45d0cd1bd8  gcc/testsuite/gcc.c-torture/execute/pr17133.c
  d3d985122f6386b1abb505ddf6992aca  gcc/testsuite/gcc.c-torture/execute/pr17252.c
! f26ffd56ec3e7b5355ec92cd9d40e27e  gcc/testsuite/gcc.c-torture/execute/pr17377.c
  5f75ea59963aba30c9a23d96579453f7  gcc/testsuite/gcc.c-torture/execute/pr19005.c
  aa9ab7b3132881e662d2a7075ddb4ec4  gcc/testsuite/gcc.c-torture/execute/pr19449.c
  2acb24beb962e468d2f1c1ea9dfc3777  gcc/testsuite/gcc.c-torture/execute/pr19515.c
*************** cb0b728c50be57775ce5c56aa25f4545  gcc/te
*** 41695,41702 ****
  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
--- 50203,50210 ----
  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
! 7cc6912823bc4dccc8e6bba4f4f6603f  gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
! cd9e32e54c42224f334bd77584e38795  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
*************** c69bc42cc08ae08138f337ef58c638f6  gcc/te
*** 41734,41740 ****
  ce6b1c788064aa70e5abe4bfce85fa42  gcc/testsuite/gcc.dg/20020122-2.c
  c55791661c0233f5c555ecb739a287b1  gcc/testsuite/gcc.dg/20020122-3.c
  a7c72bd6aaf9dfbb7dc938acbaa6464d  gcc/testsuite/gcc.dg/20020122-4.c
! 6512b138fef74e603cc7c1c6d5e1f0ce  gcc/testsuite/gcc.dg/20020201-1.c
  a314ab9d8d3e4818826dc35a5aed87e4  gcc/testsuite/gcc.dg/20020206-1.c
  08a65114d547473faf30f0e9b44e2237  gcc/testsuite/gcc.dg/20020210-1.c
  43068890ac80566aa7e98dba534ea0c4  gcc/testsuite/gcc.dg/20020219-1.c
--- 50242,50248 ----
  ce6b1c788064aa70e5abe4bfce85fa42  gcc/testsuite/gcc.dg/20020122-2.c
  c55791661c0233f5c555ecb739a287b1  gcc/testsuite/gcc.dg/20020122-3.c
  a7c72bd6aaf9dfbb7dc938acbaa6464d  gcc/testsuite/gcc.dg/20020122-4.c
! 6e8ad0855b118001da2add136237af3d  gcc/testsuite/gcc.dg/20020201-1.c
  a314ab9d8d3e4818826dc35a5aed87e4  gcc/testsuite/gcc.dg/20020206-1.c
  08a65114d547473faf30f0e9b44e2237  gcc/testsuite/gcc.dg/20020210-1.c
  43068890ac80566aa7e98dba534ea0c4  gcc/testsuite/gcc.dg/20020219-1.c
*************** da093a504dd5180ba0a2d674a33283b6  gcc/te
*** 41761,41767 ****
  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
--- 50269,50275 ----
  9460cc0e67fb619fc3dd04804f75c660  gcc/testsuite/gcc.dg/20020607-2.c
  b540c59b566647ef61a8c9670457783b  gcc/testsuite/gcc.dg/20020919-1.c
  00c4bd06c0cec25940b5ddd95e12906c  gcc/testsuite/gcc.dg/20021006-1.c
! c925ef18f0b57f651894a0514dddccf0  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
*************** cda741cce59ba0dcd70871f300400003  gcc/te
*** 41918,41924 ****
  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
--- 50426,50432 ----
  eba607c17011c649eb3d7e1c5513ffdd  gcc/testsuite/gcc.dg/Foundation.framework/empty
  509fc4e45ca169a2f01541865c72e7d9  gcc/testsuite/gcc.dg/O16384.c
  5572aaa0a05957fff2416d1f5f7c0cc6  gcc/testsuite/gcc.dg/PR68002.c
! ab0a5466c25cc8d7c25f5ac2aef00b49  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
*************** aaf0c5347a83074f9bddec09f86caea5  gcc/te
*** 42071,42077 ****
  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
--- 50579,50585 ----
  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
! 8b402749d58bc7525f24fec3ec454258  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
*************** afd1e9e12b9f03d47bc7d0a07df0c5d5  gcc/te
*** 42081,42087 ****
  8062c6aa0e8bde1eb625eb32bf6be129  gcc/testsuite/gcc.dg/Warray-parameter-7.c
  a8dc9cdf9fada2be584320b55edec236  gcc/testsuite/gcc.dg/Warray-parameter-8.c
  2991b35700cc4b55ee85a6af0af3aa7c  gcc/testsuite/gcc.dg/Warray-parameter-9.c
! e99b377200ee21d2df02171cbe56461b  gcc/testsuite/gcc.dg/Warray-parameter.c
  09bb4331b7486fe7f81374366f7df056  gcc/testsuite/gcc.dg/Wattribute-alias.c
  335e155c329413d2a8e0eaf02def9f82  gcc/testsuite/gcc.dg/Wattributes-1.c
  3726bb79299560facdb4e0a352f6c5c2  gcc/testsuite/gcc.dg/Wattributes-10.c
--- 50589,50595 ----
  8062c6aa0e8bde1eb625eb32bf6be129  gcc/testsuite/gcc.dg/Warray-parameter-7.c
  a8dc9cdf9fada2be584320b55edec236  gcc/testsuite/gcc.dg/Warray-parameter-8.c
  2991b35700cc4b55ee85a6af0af3aa7c  gcc/testsuite/gcc.dg/Warray-parameter-9.c
! b6f5b28cd943ea0c1668e3c7c3db7013  gcc/testsuite/gcc.dg/Warray-parameter.c
  09bb4331b7486fe7f81374366f7df056  gcc/testsuite/gcc.dg/Wattribute-alias.c
  335e155c329413d2a8e0eaf02def9f82  gcc/testsuite/gcc.dg/Wattributes-1.c
  3726bb79299560facdb4e0a352f6c5c2  gcc/testsuite/gcc.dg/Wattributes-10.c
*************** c01d908b8b1ca87be88f727b6cd6e491  gcc/te
*** 42263,42268 ****
--- 50771,50786 ----
  756b797936acd5f6c41a6d5ccfc696b9  gcc/testsuite/gcc.dg/Wint-in-bool-context-4.c
  74e00c0632715138d6110d495d44182c  gcc/testsuite/gcc.dg/Wjump-misses-init-1.c
  afe3ee2ad32e9663adf1bf0ad0d91263  gcc/testsuite/gcc.dg/Wjump-misses-init-2.c
+ 7725ba86cd3bf4ec82b60cda265eced4  gcc/testsuite/gcc.dg/Wjump-misses-init-3.c
+ 04b32f13004526dbf872680cca245159  gcc/testsuite/gcc.dg/Wkeyword-macro-1.c
+ f38e314ca07f2035de420a4ef6e6a924  gcc/testsuite/gcc.dg/Wkeyword-macro-2.c
+ 11351ab3b65b72bf6179db0f8b3aede0  gcc/testsuite/gcc.dg/Wkeyword-macro-3.c
+ 8e6100bf5a58b9c84250bed2df638073  gcc/testsuite/gcc.dg/Wkeyword-macro-4.c
+ a68215e1de9a9666d29d37cc2a7d30d0  gcc/testsuite/gcc.dg/Wkeyword-macro-5.c
+ c4c56b2925ef8fa79daa1767570b503e  gcc/testsuite/gcc.dg/Wkeyword-macro-6.c
+ 8b2378f73a6d71acdfffa1c6751cdcb1  gcc/testsuite/gcc.dg/Wkeyword-macro-7.c
+ 4b72eba1083e13406366f9a294a69de0  gcc/testsuite/gcc.dg/Wkeyword-macro-8.c
+ a128a0eb3ee39014c9c4d33c95610b74  gcc/testsuite/gcc.dg/Wkeyword-macro-9.c
  623d989fba31af9cb3c8d7eab5cb6b66  gcc/testsuite/gcc.dg/Wlarger-than.c
  6f7f5aa958b936dbca6e4316ef2ba901  gcc/testsuite/gcc.dg/Wlarger-than2.c
  9323a6a92dcf4c5b25b6c5bbd0d9345b  gcc/testsuite/gcc.dg/Wlarger-than3.c
*************** fe1b12514d94c73791e0a965cfc2a6ce  gcc/te
*** 42286,42291 ****
--- 50804,50810 ----
  d2ae1e4b2fef59498e152708d155c0ae  gcc/testsuite/gcc.dg/Wmissing-parameter-type.c
  cae851a97f94d8ee7b316fc225a43f4d  gcc/testsuite/gcc.dg/Wmissing-profile.c
  c26e007c4c37c6a75ec7ae5f4b7772d7  gcc/testsuite/gcc.dg/Wmissing-variable-declarations.c
+ 69bffc588aca48800de6eae3fc04c7b0  gcc/testsuite/gcc.dg/Wmultiple-parameter-fwd-decl-lists.c
  cf21dd47d3e7a7fd332e4ebdad43f47f  gcc/testsuite/gcc.dg/Wnested-externs-1.c
  7fdd14ff39022d393dca83d4d3b830d1  gcc/testsuite/gcc.dg/Wnested-externs-2.c
  2fb7927f6cb43b738ac0c6c4695c7fed  gcc/testsuite/gcc.dg/Wno-all.c
*************** b4cc34b145ee2695a25e012a95c4991b  gcc/te
*** 42397,42402 ****
--- 50916,50923 ----
  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
+ e3876d97f839271f4168ca208fff3b3e  gcc/testsuite/gcc.dg/Wreturn-nested-1.c
+ 895e2eb756376d6c5f90e07ac14679e9  gcc/testsuite/gcc.dg/Wreturn-nested-2.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
*************** f84a62b2c04fd0a9824305fdbf33ca9a  gcc/te
*** 42428,42434 ****
  7d527fafe1db806347cfb826be8f7ac6  gcc/testsuite/gcc.dg/Wstrict-flex-arrays-2.c
  1ab9973f43ef639043dfbd2f42f2c6c7  gcc/testsuite/gcc.dg/Wstrict-flex-arrays-3.c
  b70ddb0fb0f39ff0a77446d94a7b7efb  gcc/testsuite/gcc.dg/Wstrict-flex-arrays.c
- af59ad0b143483efd888a257a65c26fc  gcc/testsuite/gcc.dg/Wstrict-overflow-1.c
  1110716453a4773019d5bb6410117baf  gcc/testsuite/gcc.dg/Wstrict-overflow-10.c
  5949afbfe54027b57c5a7ff340e5c3d8  gcc/testsuite/gcc.dg/Wstrict-overflow-11.c
  a202b608fa712e5194f82040deca3921  gcc/testsuite/gcc.dg/Wstrict-overflow-12.c
--- 50949,50954 ----
*************** f5a92a0de23b213fa01a61cf7fe1ae34  gcc/te
*** 42504,42510 ****
  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
--- 51024,51030 ----
  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
! b1c3da24f9514a3d2af92c76fdb1b45f  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
*************** b3dd7695cafc782eb7786677833eb8d0  gcc/te
*** 42581,42586 ****
--- 51101,51108 ----
  8dda1d9f2869873526f33401a22c0fdd  gcc/testsuite/gcc.dg/Wtraditional-conversion-2.c
  a993425606a320dabd8cdab4291f3f58  gcc/testsuite/gcc.dg/Wtraditional-conversion-3.c
  d0cf5da873f60ffed04db27addaddbc2  gcc/testsuite/gcc.dg/Wtraditional-conversion.c
+ 0da3b70d18a2610bd3bf89011dd3445d  gcc/testsuite/gcc.dg/Wtrampolines-2.c
+ d895bf0f05a8d47f13c69801b67a7a08  gcc/testsuite/gcc.dg/Wtrampolines-3.c
  78aae72048361e8d0b7698f3eb592160  gcc/testsuite/gcc.dg/Wtrampolines.c
  2347d4bb7ee3bb8370c5d630037dad8c  gcc/testsuite/gcc.dg/Wtype-limits-Wextra.c
  5e19c5bcf607ee7e7a37111eb99adade  gcc/testsuite/gcc.dg/Wtype-limits-no.c
*************** c0135afc5269c6f871dc2d0d446ace02  gcc/te
*** 42637,42642 ****
--- 51159,51165 ----
  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
+ 9ee6254543a1b4db98b5c18222848f7f  gcc/testsuite/gcc.dg/Wzero-as-null-pointer-constant-2.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
*************** b3869c9bd68bb9659f230f48bf56f83c  gcc/te
*** 42672,42686 ****
  f69e8cd9fd4e56cc65e71a4dfef997a4  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue-2.c
  1a5f9e3123194efaadd5fb7ab38396df  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue.c
  86d6d6ec23a415364e5fca0ca3cc5e2e  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-minimal.c
! 78a5d2ec1775604f51f65022cb368643  gcc/testsuite/gcc.dg/analyzer/CWE-131-examples.c
  4656af16261a46b3b0a549b8e725fb72  gcc/testsuite/gcc.dg/analyzer/SARD-tc1909-stack_overflow_loop.c
  05d3112c6482099e76531347972f0253  gcc/testsuite/gcc.dg/analyzer/SARD-tc293-basic-00045-min.c
  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
--- 51195,51209 ----
  f69e8cd9fd4e56cc65e71a4dfef997a4  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue-2.c
  1a5f9e3123194efaadd5fb7ab38396df  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-dedupe-issue.c
  86d6d6ec23a415364e5fca0ca3cc5e2e  gcc/testsuite/gcc.dg/analyzer/CVE-2005-1689-minimal.c
! b38d1686617d8aa1933236608c29d4c8  gcc/testsuite/gcc.dg/analyzer/CWE-131-examples.c
  4656af16261a46b3b0a549b8e725fb72  gcc/testsuite/gcc.dg/analyzer/SARD-tc1909-stack_overflow_loop.c
  05d3112c6482099e76531347972f0253  gcc/testsuite/gcc.dg/analyzer/SARD-tc293-basic-00045-min.c
  d396ac30a4549605a8b91e88fb32d4e3  gcc/testsuite/gcc.dg/analyzer/SARD-tc841-basic-00182-min.c
! 90d9154a7bf843287e4e70facbd3622b  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
! f1a4d668b7cdedcf120b9151c47abb67  gcc/testsuite/gcc.dg/analyzer/analyzer-decls.h
! b79e0a62aa2f1f6ddbde53ae68723039  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
*************** e335d916bb1026d6d9d508119e1eb9e8  gcc/te
*** 42691,42745 ****
  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
  cdf915de6aa445e00b8a320d8b7b09dc  gcc/testsuite/gcc.dg/analyzer/clobbers-2.c
! 2faef601592f61931a6a0fa8bf058245  gcc/testsuite/gcc.dg/analyzer/combined-conditionals-1.c
! a60083781c2444fc0afb93119adde9cd  gcc/testsuite/gcc.dg/analyzer/compound-assignment-2.c
! ea761a32a87e7dd14f7f4d83472c0e79  gcc/testsuite/gcc.dg/analyzer/compound-assignment-3.c
  35edd75cc1b9d2fe7a9c53aeed561185  gcc/testsuite/gcc.dg/analyzer/computed-goto-pr110529.c
! 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
  8985d4acdbaec3ea42e821c7cd37e427  gcc/testsuite/gcc.dg/analyzer/data-model-16.c
! 2dd1b0e38379c6d256ce6fb601769518  gcc/testsuite/gcc.dg/analyzer/data-model-17.c
  7eb55f055f46c9020d8e30ecaf87a8ec  gcc/testsuite/gcc.dg/analyzer/data-model-19.c
! 371eec1ad04a75769d9181344d71fa85  gcc/testsuite/gcc.dg/analyzer/data-model-20a.c
  60c1562137794e4c7d5ca3e93f330449  gcc/testsuite/gcc.dg/analyzer/data-model-23.c
! 8b3936ae8969f3a1152ef7885922b4ad  gcc/testsuite/gcc.dg/analyzer/data-model-5.c
! 50de8dcfc0305e565c234999fa450fed  gcc/testsuite/gcc.dg/analyzer/data-model-5b.c
! d932e32ee23667f73c2b38527aaef2a9  gcc/testsuite/gcc.dg/analyzer/data-model-5c.c
! be7aafbe051db1d04fdb6dda26644e29  gcc/testsuite/gcc.dg/analyzer/data-model-7.c
  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
--- 51214,51272 ----
  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
! 547d14b64da11d27560966f1bedbc1c6  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
! 03f5f86c202ab62fa009d75e763887f3  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
  cdf915de6aa445e00b8a320d8b7b09dc  gcc/testsuite/gcc.dg/analyzer/clobbers-2.c
! 26b574d596cd0be2bea5774f51bc82e1  gcc/testsuite/gcc.dg/analyzer/combined-conditionals-1.c
! 2b09ee8231ba0be571cf18e5142dc07a  gcc/testsuite/gcc.dg/analyzer/compound-assignment-2.c
! 44715ed46e4acd3c40da90b86159714e  gcc/testsuite/gcc.dg/analyzer/compound-assignment-3.c
  35edd75cc1b9d2fe7a9c53aeed561185  gcc/testsuite/gcc.dg/analyzer/computed-goto-pr110529.c
! d21405ff7bef57360e2a0ce49f7b6578  gcc/testsuite/gcc.dg/analyzer/conditionals-3.c
  1c0a20304d7da2a80255211819446599  gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c
+ 6fa62fa4ce6b89f125994523d89747a3  gcc/testsuite/gcc.dg/analyzer/conditionals-pr124451-_Bool.c
+ f7f2f6440758ebcd9d9bdb513e1c1b24  gcc/testsuite/gcc.dg/analyzer/conditionals-pr124451-enum.c
  8cfdc88c0b5a96aa0b303a5409085dfc  gcc/testsuite/gcc.dg/analyzer/conditionals-trans.c
! a22df4e24cdaae6bb5e5e29c94ed2ad2  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
! 337c9beb072c81d3286e3a687c8e0abf  gcc/testsuite/gcc.dg/analyzer/data-model-15.c
  8985d4acdbaec3ea42e821c7cd37e427  gcc/testsuite/gcc.dg/analyzer/data-model-16.c
! 49aacc1687b6817491235bcae185bac3  gcc/testsuite/gcc.dg/analyzer/data-model-17.c
  7eb55f055f46c9020d8e30ecaf87a8ec  gcc/testsuite/gcc.dg/analyzer/data-model-19.c
! 0f8af0a865b7a39c3ac04eeb934ede71  gcc/testsuite/gcc.dg/analyzer/data-model-20a.c
  60c1562137794e4c7d5ca3e93f330449  gcc/testsuite/gcc.dg/analyzer/data-model-23.c
! ade163ad8a14198b85331977b5253cb5  gcc/testsuite/gcc.dg/analyzer/data-model-5.c
! 4454d6816eb4badc35b979ebcd97c9bb  gcc/testsuite/gcc.dg/analyzer/data-model-5b.c
! 959e489bac0fbc6a3703b019a52e5825  gcc/testsuite/gcc.dg/analyzer/data-model-5c.c
! fd6b9c1ae3833951eb92de84a938f778  gcc/testsuite/gcc.dg/analyzer/data-model-7.c
  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
! 712ec8c7393a23d983955c94ba653324  gcc/testsuite/gcc.dg/analyzer/divide-by-zero-ice-pr124433.c
! a70bd968ac0c129391eec81725101b61  gcc/testsuite/gcc.dg/analyzer/divide-by-zero-pr124195-1.c
! 79f1ff0cd918a19b54f93e743e066e42  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
! 60ee6abfbc9b8a834263465dbfa1757b  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
  9bd730005568e90798a30108ba063dd2  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1.h
! 4e5e050f1dbeb0767a0aea2f11ed4576  gcc/testsuite/gcc.dg/analyzer/edges-1.c
! e4f5f0f12f1e7e036e34e445b543a149  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
! ff72443bf2e662f8008604b236bcb901  gcc/testsuite/gcc.dg/analyzer/explode-1.c
! 521af64119d2db5f3e14c297cb177b2a  gcc/testsuite/gcc.dg/analyzer/explode-2.c
  6e0e82d3dccb93752bd0cdb45f686bd1  gcc/testsuite/gcc.dg/analyzer/explode-2a.c
! 9e318b6725be489d6ffa48842f71ae89  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
*************** bc582825362c52d624022049329ae632  gcc/te
*** 42749,42757 ****
  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
--- 51276,51284 ----
  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
! 7930bc99b9bbe3d847b7cc860fe52715  gcc/testsuite/gcc.dg/analyzer/fd-datagram-socket.c
  827dcc603f79b7aa5453b7b4dfba4665  gcc/testsuite/gcc.dg/analyzer/fd-dup-1.c
! ed8eba52dd7f1eb134584f4495efc229  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
*************** a6c2c6cbd200de5abc7c929fe49fe265  gcc/te
*** 42761,42777 ****
  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/testsuite/gcc.dg/analyzer/file-2.c
  74551d8bd5683960b9795e840ed3cad4  gcc/testsuite/gcc.dg/analyzer/file-CWE-1341-example.c
  60112ba55cc527ed2f374a5469b8bb21  gcc/testsuite/gcc.dg/analyzer/file-paths-1.c
  75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
  9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
  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
--- 51288,51312 ----
  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
! 9682511ec5d108fa033c68ee43d722a5  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
+ a66c078d5308a5d866c8a896a395850c  gcc/testsuite/gcc.dg/analyzer/fexceptions-1.c
+ e22f76937985c3910da40f56f9d7126a  gcc/testsuite/gcc.dg/analyzer/fexceptions-2.c
  b29483f2758f47b95759473be5a64ba6  gcc/testsuite/gcc.dg/analyzer/file-2.c
  74551d8bd5683960b9795e840ed3cad4  gcc/testsuite/gcc.dg/analyzer/file-CWE-1341-example.c
  60112ba55cc527ed2f374a5469b8bb21  gcc/testsuite/gcc.dg/analyzer/file-paths-1.c
  75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
  9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
+ 471e212ffaba7e73946663e02bd3f81d  gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c
+ 5595310af02dfa91a81b62875727bbee  gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c
+ c30d5e3cc23b459e19c55fd156c02af1  gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c
+ ea5c7bdef4e00ca0b3adb38aa8d5887b  gcc/testsuite/gcc.dg/analyzer/ice-pr124104.c
+ 1832b1f205af8fe5f2253c3e3a8ffa57  gcc/testsuite/gcc.dg/analyzer/ice-pr124375-1.c
+ 60d93eb15cf72ca12df24f529bfd89cd  gcc/testsuite/gcc.dg/analyzer/ice-pr124375-2.c
  155a92eb05a1d79d891ec61b021a400d  gcc/testsuite/gcc.dg/analyzer/infinite-loop-1.c
! 6656f307410ce53b848c53694a60327b  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
  ad7c2c590985fadaba524fa5f6d48979  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
  865e5f8c81482626d2e9eae5344bcf6e  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-13.c
  f0aff4423fc2056f3172a11bb1c0157f  gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
*************** f4e3e9fe67ce001d0a4d83f475ee2e1e  gcc/te
*** 42780,42802 ****
  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
  48af698d604d6cf95b9b6eef5ebccf8c  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-gc.c
  213c59cf6fda65fb41294c9ac6b79be6  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros.c
! f6eca473e81f5ce33bb1b762a1b81570  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-1.c
! ce2df64c56f969befe08b42840c421cb  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
! b49e62432626c0897551e05e4bc5b647  gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c
  5c1afdb0e8d48de62c20901771c1c269  gcc/testsuite/gcc.dg/analyzer/null-terminated-strings-1.c
  aaddc4b9a407ce80be75f1c757af9df4  gcc/testsuite/gcc.dg/analyzer/operations.c
  3b27232f5cf255ca8253bb7b23b7a3c0  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-4.c
--- 51315,51339 ----
  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
! 71d387b818b7a10bc90fce2d4c3853a3  gcc/testsuite/gcc.dg/analyzer/malloc-many-paths-2.c
! d1ece36e95143a9c5cc008adb38c3524  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
! bfcaf2a6892cf4c91bc0dac810231fdb  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
! acc662379756e41ce6873fb8ee91f0b1  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
  48af698d604d6cf95b9b6eef5ebccf8c  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros-gc.c
  213c59cf6fda65fb41294c9ac6b79be6  gcc/testsuite/gcc.dg/analyzer/named-constants-via-macros.c
! 2120bf0a3275d6e161ffd6b3b7cf271e  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-1.c
! 9cd6217b9db63b38bbf530921833bcee  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
! 09490f42f4a9472c51c240f8b680c186  gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c
! f4f1e3497a434ef6745436e53a443879  gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c
! 86c2576df6e78cc46dfbd6f36acfcd54  gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c
  5c1afdb0e8d48de62c20901771c1c269  gcc/testsuite/gcc.dg/analyzer/null-terminated-strings-1.c
  aaddc4b9a407ce80be75f1c757af9df4  gcc/testsuite/gcc.dg/analyzer/operations.c
  3b27232f5cf255ca8253bb7b23b7a3c0  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-4.c
*************** faa7ff928bbead8437bd5382e61c0356  gcc/te
*** 42835,42854 ****
  9da3ee312a53989520c6f6fd2a0a2e2a  gcc/testsuite/gcc.dg/analyzer/pipe-void-return.c
  2a2f495dec7f278925ae67dee036fcc1  gcc/testsuite/gcc.dg/analyzer/pipe2-1.c
  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
! 7138137bac372bfd3b7fd1aacfa6cd73  gcc/testsuite/gcc.dg/analyzer/pr103892.c
  15fc590ce739292d51fb1d190f57dc81  gcc/testsuite/gcc.dg/analyzer/pr104224-split.c
! df5dee0e0e92ecf4b97f80a2aff5b9de  gcc/testsuite/gcc.dg/analyzer/pr104224.c
  3958e5b363cc2d23a66c560293b47837  gcc/testsuite/gcc.dg/analyzer/pr104369-1.c
  0e7003703b36e6f081ce012e161cf5e3  gcc/testsuite/gcc.dg/analyzer/pr104369-2.c
  193bbc40b5d1663602f78ebcf3ec7d09  gcc/testsuite/gcc.dg/analyzer/pr104417.c
  740583ce32547a8d87a3cd63946b90f2  gcc/testsuite/gcc.dg/analyzer/pr104434-const.c
! bd08c3118e654f97ec8726f35f798dfe  gcc/testsuite/gcc.dg/analyzer/pr104434-nonconst.c
  0eae8bc57da919ca1bbfbe4b5652153e  gcc/testsuite/gcc.dg/analyzer/pr104434.h
  9f88d9ad0d5d0c458ae8f1fe6079c8f5  gcc/testsuite/gcc.dg/analyzer/pr104560-1.c
  20851e8be3d1f3da1cf23c165c453e68  gcc/testsuite/gcc.dg/analyzer/pr105074.c
--- 51372,51391 ----
  9da3ee312a53989520c6f6fd2a0a2e2a  gcc/testsuite/gcc.dg/analyzer/pipe-void-return.c
  2a2f495dec7f278925ae67dee036fcc1  gcc/testsuite/gcc.dg/analyzer/pipe2-1.c
  3f583dbde80b3efe12b65cefa6758f9f  gcc/testsuite/gcc.dg/analyzer/pr100011.c
! bb03496c89ed9ec6826c435e06d59526  gcc/testsuite/gcc.dg/analyzer/pr101143.c
  71129fa06e1b067223c303245054200a  gcc/testsuite/gcc.dg/analyzer/pr101547.c
! ede03965a2ca65a678aa4cf597d81f7e  gcc/testsuite/gcc.dg/analyzer/pr101837.c
  8e41b138580137917cf3c8483f35abbb  gcc/testsuite/gcc.dg/analyzer/pr101875.c
  60b2a5e408979c204812ee09c755be9d  gcc/testsuite/gcc.dg/analyzer/pr101983-main.c
! e4ed56e29fb65b00154fe0693e9ac3a3  gcc/testsuite/gcc.dg/analyzer/pr101983-not-main.c
! 7cef3bb0037082099722a9661bd22d03  gcc/testsuite/gcc.dg/analyzer/pr103892.c
  15fc590ce739292d51fb1d190f57dc81  gcc/testsuite/gcc.dg/analyzer/pr104224-split.c
! 3c81db62c0f7d4f9f9f6415119ec40a6  gcc/testsuite/gcc.dg/analyzer/pr104224.c
  3958e5b363cc2d23a66c560293b47837  gcc/testsuite/gcc.dg/analyzer/pr104369-1.c
  0e7003703b36e6f081ce012e161cf5e3  gcc/testsuite/gcc.dg/analyzer/pr104369-2.c
  193bbc40b5d1663602f78ebcf3ec7d09  gcc/testsuite/gcc.dg/analyzer/pr104417.c
  740583ce32547a8d87a3cd63946b90f2  gcc/testsuite/gcc.dg/analyzer/pr104434-const.c
! 49036e6da8e7c685ba2ee2069a132beb  gcc/testsuite/gcc.dg/analyzer/pr104434-nonconst.c
  0eae8bc57da919ca1bbfbe4b5652153e  gcc/testsuite/gcc.dg/analyzer/pr104434.h
  9f88d9ad0d5d0c458ae8f1fe6079c8f5  gcc/testsuite/gcc.dg/analyzer/pr104560-1.c
  20851e8be3d1f3da1cf23c165c453e68  gcc/testsuite/gcc.dg/analyzer/pr105074.c
*************** c5aaf610718cba5c59ae6937f43eb7db  gcc/te
*** 42860,42874 ****
  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
--- 51397,51411 ----
  12cfe5485a3c7938cc01216a44d4866e  gcc/testsuite/gcc.dg/analyzer/pr110882.c
  64c9d1e955b493cfb0d775e89b36b0d6  gcc/testsuite/gcc.dg/analyzer/pr113505.c
  d69ed87a55d888352718347a2a8941ed  gcc/testsuite/gcc.dg/analyzer/pr61861.c
! 55d0467249f5ef62758368bddf750f0e  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-signed-char.c
! 8cc3898af0a69e855c7e410e054bcdc7  gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-unsigned-char.c
! cc4f1b774a13c67a9f8bbca94a00ad9f  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility-2.c
  f89e5ecde804b807979bb260986f6283  gcc/testsuite/gcc.dg/analyzer/pr93355-localealias-feasibility.c
! 7a157f71154c27cccf447319b7894134  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
! 062e75d5b97243b2b5a71f3f2225ffa9  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
*************** cc34da4a6b5eb3ea00a6b83e365e3c54  gcc/te
*** 42881,42900 ****
  e1cc82ec2de0b3a6c6717f542456a7f7  gcc/testsuite/gcc.dg/analyzer/pr96651-2.c
  78c898bb617df573bb4a638f1a5c61ea  gcc/testsuite/gcc.dg/analyzer/pr96860-1.c
  31a9bfe2d10d9507c3d3caf182f7947b  gcc/testsuite/gcc.dg/analyzer/pr98293.c
! e30ab4cce96a744448409fe77f3c5efa  gcc/testsuite/gcc.dg/analyzer/pr98599-a.c
  b8dedb68ebd6efc83061dc56ccf05a12  gcc/testsuite/gcc.dg/analyzer/pr98599-b.c
  11ed5b2e2254591f0a152015c2b66245  gcc/testsuite/gcc.dg/analyzer/pr99042.c
  db49279a7bbbbb8a7993d65e3a0ed602  gcc/testsuite/gcc.dg/analyzer/pr99044-1.c
  78974bca049e6fe858c117ebc2ed130b  gcc/testsuite/gcc.dg/analyzer/pr99193-1.c
  dc948ef5af4dbb9b2512860f38fde8ed  gcc/testsuite/gcc.dg/analyzer/pr99269.c
! 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/testsuite/gcc.dg/analyzer/setjmp-6.c
  27cf1c2faaa334e8717833bc2394aa77  gcc/testsuite/gcc.dg/analyzer/setjmp-7.c
--- 51418,51439 ----
  e1cc82ec2de0b3a6c6717f542456a7f7  gcc/testsuite/gcc.dg/analyzer/pr96651-2.c
  78c898bb617df573bb4a638f1a5c61ea  gcc/testsuite/gcc.dg/analyzer/pr96860-1.c
  31a9bfe2d10d9507c3d3caf182f7947b  gcc/testsuite/gcc.dg/analyzer/pr98293.c
! 9bad64c281c6e35ff43fffc72c382a93  gcc/testsuite/gcc.dg/analyzer/pr98599-a.c
  b8dedb68ebd6efc83061dc56ccf05a12  gcc/testsuite/gcc.dg/analyzer/pr98599-b.c
  11ed5b2e2254591f0a152015c2b66245  gcc/testsuite/gcc.dg/analyzer/pr99042.c
  db49279a7bbbbb8a7993d65e3a0ed602  gcc/testsuite/gcc.dg/analyzer/pr99044-1.c
  78974bca049e6fe858c117ebc2ed130b  gcc/testsuite/gcc.dg/analyzer/pr99193-1.c
  dc948ef5af4dbb9b2512860f38fde8ed  gcc/testsuite/gcc.dg/analyzer/pr99269.c
! 760d282773b2d4d98456bf3a594f1ae0  gcc/testsuite/gcc.dg/analyzer/pr99771-1.c
! a55a4fe03e6a80771f12fb4644fcc8b4  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
+ ea5f6545a0500e9b8546f5b2369edd35  gcc/testsuite/gcc.dg/analyzer/putenv-ice-pr124232.c
  ee803c3283890e05fed6552fbff9532c  gcc/testsuite/gcc.dg/analyzer/read-pr108661.c
! e6c03cf9f77085ecc39468b65564f91b  gcc/testsuite/gcc.dg/analyzer/sensitive-1.c
  235b23e579165b5bc29ded1884282ac0  gcc/testsuite/gcc.dg/analyzer/setjmp-1.c
! fe4be8124d5734512798cf22dfcdb323  gcc/testsuite/gcc.dg/analyzer/setjmp-3-sarif.py
! 13e31ba970fb55743f999be7f7c61fc0  gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
  fc3a3a42af2e0edb17f7af2cf30f4343  gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
  c04d5fc1dea77f1e99f32e5ee47e000f  gcc/testsuite/gcc.dg/analyzer/setjmp-6.c
  27cf1c2faaa334e8717833bc2394aa77  gcc/testsuite/gcc.dg/analyzer/setjmp-7.c
*************** c3d6877dc6b6aaf933b97e6748b315cc  gcc/te
*** 42914,42922 ****
  8959874363aade3ab965125e11d3ded5  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-6.c
  041939ea34c3dd2bdd2d95257e5520ad  gcc/testsuite/gcc.dg/analyzer/single-field.c
  7c5d373abe7dc75a1f4304f4d2e0548b  gcc/testsuite/gcc.dg/analyzer/sprintf-1.c
  5c72aedcce8177798415d32e0a8bf938  gcc/testsuite/gcc.dg/analyzer/stdarg-1-ms_abi.c
  ae7b0d56b5a779d9be16f41d3efb6e03  gcc/testsuite/gcc.dg/analyzer/stdarg-1-sysv_abi.c
! 83eea51c7616c3097a43f056ac9be295  gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
  1b2f767530b25f94b104129c38517103  gcc/testsuite/gcc.dg/analyzer/stdarg-2.c
  18157b6be7cfe6d468cac095357f27e1  gcc/testsuite/gcc.dg/analyzer/stdarg-3.c
  b76452713c6522655217df51194d0da5  gcc/testsuite/gcc.dg/analyzer/stdarg-fmtstring-1.c
--- 51453,51470 ----
  8959874363aade3ab965125e11d3ded5  gcc/testsuite/gcc.dg/analyzer/sigsetjmp-6.c
  041939ea34c3dd2bdd2d95257e5520ad  gcc/testsuite/gcc.dg/analyzer/single-field.c
  7c5d373abe7dc75a1f4304f4d2e0548b  gcc/testsuite/gcc.dg/analyzer/sprintf-1.c
+ bd01d7652844027b55001e0ebb2e652a  gcc/testsuite/gcc.dg/analyzer/state-diagram-1-sarif.py
+ d1b457374dc0f96c3cd72b2fa5b156ac  gcc/testsuite/gcc.dg/analyzer/state-diagram-1.c
+ abde205c5f5c45914abf04811fbb5c2a  gcc/testsuite/gcc.dg/analyzer/state-diagram-2.c
+ 2d1c3f36c5428e3dc3a66a4baf126291  gcc/testsuite/gcc.dg/analyzer/state-diagram-3.c
+ fb663b32ae2101d0ee651ad8022f76a9  gcc/testsuite/gcc.dg/analyzer/state-diagram-4.c
+ 36ec6924e080d8cc33c6ef5a8034723b  gcc/testsuite/gcc.dg/analyzer/state-diagram-5-html.c
+ 60dba72896ae9f4c697d7ea32e335e57  gcc/testsuite/gcc.dg/analyzer/state-diagram-5-html.py
+ 5c1c96d355dbb445ed1eba2027214107  gcc/testsuite/gcc.dg/analyzer/state-diagram-5-sarif.c
+ a410a16c7b6b05d515b138647c81c4d0  gcc/testsuite/gcc.dg/analyzer/state-diagram-5-sarif.py
  5c72aedcce8177798415d32e0a8bf938  gcc/testsuite/gcc.dg/analyzer/stdarg-1-ms_abi.c
  ae7b0d56b5a779d9be16f41d3efb6e03  gcc/testsuite/gcc.dg/analyzer/stdarg-1-sysv_abi.c
! 96ab304152a6a2ac9edc9d12be105e41  gcc/testsuite/gcc.dg/analyzer/stdarg-1.c
  1b2f767530b25f94b104129c38517103  gcc/testsuite/gcc.dg/analyzer/stdarg-2.c
  18157b6be7cfe6d468cac095357f27e1  gcc/testsuite/gcc.dg/analyzer/stdarg-3.c
  b76452713c6522655217df51194d0da5  gcc/testsuite/gcc.dg/analyzer/stdarg-fmtstring-1.c
*************** b76452713c6522655217df51194d0da5  gcc/te
*** 42925,42933 ****
  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
  e5ebb4cb43a0185a3db0a087bcc84310  gcc/testsuite/gcc.dg/analyzer/strcpy-4.c
  939f0764862017a61847c1022904c655  gcc/testsuite/gcc.dg/analyzer/strdup-1.c
--- 51473,51481 ----
  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
! 134423fe242d5fcd6c70f9d027d95bbc  gcc/testsuite/gcc.dg/analyzer/strchr-1.c
! 73f2d5778cc33feca3cbd46c97af6cb3  gcc/testsuite/gcc.dg/analyzer/strcmp-1.c
! 6289f2890ad200c3237f37dcb304fbd0  gcc/testsuite/gcc.dg/analyzer/strcpy-1.c
  6e61416a1a965596212f4c4d92797b7c  gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
  e5ebb4cb43a0185a3db0a087bcc84310  gcc/testsuite/gcc.dg/analyzer/strcpy-4.c
  939f0764862017a61847c1022904c655  gcc/testsuite/gcc.dg/analyzer/strdup-1.c
*************** f0210a810518059661764eb58e636dbe  gcc/te
*** 42936,42945 ****
  776c83102066dafdfd4919f6bee676e7  gcc/testsuite/gcc.dg/analyzer/strndup-pr108252.c
  23c8551e7b91e875fc63b06d0ee8ebee  gcc/testsuite/gcc.dg/analyzer/switch-enum-1.c
  53337379f22adbe0c556208521ce5a99  gcc/testsuite/gcc.dg/analyzer/switch-enum-2.c
! 1bfea655cf31477f91fa6063725b00da  gcc/testsuite/gcc.dg/analyzer/switch-enum-taint-1.c
  1ae41d6ad8432356289b35c29e394269  gcc/testsuite/gcc.dg/analyzer/switch-no-short-enum-1.c
  e6d9f21a20d9f28508aa4f4b6b10ddec  gcc/testsuite/gcc.dg/analyzer/switch-short-enum-1.c
! 94d50b44acb880793de0436efdd4b8a5  gcc/testsuite/gcc.dg/analyzer/switch.c
  c8bc6833de96ea946301995b38dec3db  gcc/testsuite/gcc.dg/analyzer/symbolic-9.c
  1662916a25de3947c746e0bb53b4b717  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2011-2210-1.c
  d3672c86889d469bbd43ac562f0ca1a4  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
--- 51484,51493 ----
  776c83102066dafdfd4919f6bee676e7  gcc/testsuite/gcc.dg/analyzer/strndup-pr108252.c
  23c8551e7b91e875fc63b06d0ee8ebee  gcc/testsuite/gcc.dg/analyzer/switch-enum-1.c
  53337379f22adbe0c556208521ce5a99  gcc/testsuite/gcc.dg/analyzer/switch-enum-2.c
! e44623257313453be5fa88b090f28d06  gcc/testsuite/gcc.dg/analyzer/switch-enum-taint-1.c
  1ae41d6ad8432356289b35c29e394269  gcc/testsuite/gcc.dg/analyzer/switch-no-short-enum-1.c
  e6d9f21a20d9f28508aa4f4b6b10ddec  gcc/testsuite/gcc.dg/analyzer/switch-short-enum-1.c
! 0d80adcc7ac75b99c877dd383ee692a5  gcc/testsuite/gcc.dg/analyzer/switch.c
  c8bc6833de96ea946301995b38dec3db  gcc/testsuite/gcc.dg/analyzer/symbolic-9.c
  1662916a25de3947c746e0bb53b4b717  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2011-2210-1.c
  d3672c86889d469bbd43ac562f0ca1a4  gcc/testsuite/gcc.dg/analyzer/taint-CVE-2020-13143-1.c
*************** d573cbba3ca2a25fc89d2a7473c5f423  gcc/te
*** 42951,42970 ****
  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
! 3151c42d285ada08441b98096e4cb487  gcc/testsuite/gcc.dg/analyzer/taint-assert.c
  94a5f5322aa801cf745282a4cb42bfc9  gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c
  df0366e06e6b9d19dce5a23691e50271  gcc/testsuite/gcc.dg/analyzer/taint-read-index-1.c
  720d8a76446c424458c3556aa734ee7e  gcc/testsuite/gcc.dg/analyzer/taint-read-offset-1.c
  78e4b1ed06f4e63bcfa3802ec15ad857  gcc/testsuite/gcc.dg/analyzer/taint-size-1.c
  693f55ef817f864e0343827ad154c880  gcc/testsuite/gcc.dg/analyzer/taint-size-access-attr-1.c
  507a86fc44de383ae22b8933825e4bd0  gcc/testsuite/gcc.dg/analyzer/taint-write-index-1.c
! 922f4476faefdb4c464bb41571cd3305  gcc/testsuite/gcc.dg/analyzer/taint-write-offset-1.c
  5c37a718a5792e1d46f1e4ed86dbc98a  gcc/testsuite/gcc.dg/analyzer/test-alloca.h
  486419cac8d180eb2b80b19e520f0727  gcc/testsuite/gcc.dg/analyzer/test-assert.h
  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
--- 51499,51518 ----
  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
! 7228d7b34c4f6867f77fda68257e26e2  gcc/testsuite/gcc.dg/analyzer/taint-assert.c
  94a5f5322aa801cf745282a4cb42bfc9  gcc/testsuite/gcc.dg/analyzer/taint-divisor-1.c
  df0366e06e6b9d19dce5a23691e50271  gcc/testsuite/gcc.dg/analyzer/taint-read-index-1.c
  720d8a76446c424458c3556aa734ee7e  gcc/testsuite/gcc.dg/analyzer/taint-read-offset-1.c
  78e4b1ed06f4e63bcfa3802ec15ad857  gcc/testsuite/gcc.dg/analyzer/taint-size-1.c
  693f55ef817f864e0343827ad154c880  gcc/testsuite/gcc.dg/analyzer/taint-size-access-attr-1.c
  507a86fc44de383ae22b8933825e4bd0  gcc/testsuite/gcc.dg/analyzer/taint-write-index-1.c
! 1fb46abadcd32472f1c507019f21e3c4  gcc/testsuite/gcc.dg/analyzer/taint-write-offset-1.c
  5c37a718a5792e1d46f1e4ed86dbc98a  gcc/testsuite/gcc.dg/analyzer/test-alloca.h
  486419cac8d180eb2b80b19e520f0727  gcc/testsuite/gcc.dg/analyzer/test-assert.h
  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
! bf6b79ba0443d3b67f515174d528340f  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
*************** adcdfc937d1369e1864074215a1cd12c  gcc/te
*** 42974,42992 ****
  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
! 8d709abc006dc3a0451121f9d45c50b3  gcc/testsuite/gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c
  2a944db68262f05280b26c9c165685c9  gcc/testsuite/gcc.dg/analyzer/torture/intptr_t.c
  fbd2e05a9e1bee211c5fd03bb02f863a  gcc/testsuite/gcc.dg/analyzer/torture/leak-pr102308-1.c
  8f5b6da995738b027bfc202c0abfeb53  gcc/testsuite/gcc.dg/analyzer/torture/leak-pr102308-2.c
! fe447f16fa32a6662b71d48cefafbccc  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-1.c
  b8568508a8d8d6b0005149ac11f93783  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-2.c
  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
--- 51522,51542 ----
  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
! d31cd9527a48524e11069281c92681ad  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
! 2542099bfd1e3067fad9b5ea97b355cb  gcc/testsuite/gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c
! afd1ce4f8872947758e30f3cd5a71723  gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c
! bc41fb75b5978c15bb8832df53632d87  gcc/testsuite/gcc.dg/analyzer/torture/ice-pr117491.c
  2a944db68262f05280b26c9c165685c9  gcc/testsuite/gcc.dg/analyzer/torture/intptr_t.c
  fbd2e05a9e1bee211c5fd03bb02f863a  gcc/testsuite/gcc.dg/analyzer/torture/leak-pr102308-1.c
  8f5b6da995738b027bfc202c0abfeb53  gcc/testsuite/gcc.dg/analyzer/torture/leak-pr102308-2.c
! 29222b50dba34b5607f2adde855674d4  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-1.c
  b8568508a8d8d6b0005149ac11f93783  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-2.c
  707a0e095b5e167db1cb6f2fa2cad4da  gcc/testsuite/gcc.dg/analyzer/torture/loop-inc-ptr-3.c
  52faf878195ceb4ad78e8c760c4f86f4  gcc/testsuite/gcc.dg/analyzer/torture/poc.c
! 0d56f5d634627a58d134043d4ba07770  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
*************** caf07d8cfdac2dc0343b0db220cb61e8  gcc/te
*** 42999,43014 ****
  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
  422d18402c0c3d4f0678d2f2eb3bdbb7  gcc/testsuite/gcc.dg/analyzer/torture/pr93451.c
  edff473b255c0dea0c18477a32ff789c  gcc/testsuite/gcc.dg/analyzer/torture/pr93544.c
! 7d61ba3b8fe5f40159915f93daf67457  gcc/testsuite/gcc.dg/analyzer/torture/pr93647.c
  32a48f1dc8e9a869a6baba13956aa4aa  gcc/testsuite/gcc.dg/analyzer/torture/pr93649.c
  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
--- 51549,51564 ----
  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
! c8abd94324b28485afc08856e6e02be1  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
  422d18402c0c3d4f0678d2f2eb3bdbb7  gcc/testsuite/gcc.dg/analyzer/torture/pr93451.c
  edff473b255c0dea0c18477a32ff789c  gcc/testsuite/gcc.dg/analyzer/torture/pr93544.c
! c20da04ddcafb9fcbaf63d68a963fc64  gcc/testsuite/gcc.dg/analyzer/torture/pr93647.c
  32a48f1dc8e9a869a6baba13956aa4aa  gcc/testsuite/gcc.dg/analyzer/torture/pr93649.c
  049209558c45a95b2d1cfb0369c75138  gcc/testsuite/gcc.dg/analyzer/torture/pr93947.c
! 7826650ea8491ff0996ddb84facdd55e  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
*************** cc641b4453a1b743c66c43ea1c92e357  gcc/te
*** 43034,43048 ****
  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
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
! 4ad6acd95f4f163ad0a0d3d4599de6ee  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
--- 51584,51598 ----
  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
! eeaca85322ad838dd4a816b8b9922442  gcc/testsuite/gcc.dg/analyzer/untracked-1.c
! dfddc8d0ab7498760be0e921b1d2dd88  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
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
! b92747001f0c33cd573e848e3814d495  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
*************** c11a907de50c52966dc3fac763e376b5  gcc/te
*** 43084,43091 ****
  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
--- 51634,51641 ----
  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
! e8f9574f1002387b520427c731d628de  gcc/testsuite/gcc.dg/aru-2.c
! 4515ba2b6d94ef19f8681e85c5f721a7  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
*************** c9481d742a48253660d16743a6beecf9  gcc/te
*** 43168,43173 ****
--- 51718,51738 ----
  bcbbadd260cb26dea44e22620dc945b0  gcc/testsuite/gcc.dg/asm-a.c
  854712dcdce9c518846f9d22895c1fff  gcc/testsuite/gcc.dg/asm-b.c
  e370903640e76bf4ef407aafe0286689  gcc/testsuite/gcc.dg/asm-fs-1.c
+ 9efce8a7bcfa7d5ea26744979670b6df  gcc/testsuite/gcc.dg/asm-hard-reg-1.c
+ fcd16a3b4752fbbf0e1c77740e687fbd  gcc/testsuite/gcc.dg/asm-hard-reg-2.c
+ f60c7b0f361b02f30b6eca3c14c7a5ed  gcc/testsuite/gcc.dg/asm-hard-reg-3.c
+ 26952dfd8a68ceffad0b6d737199db7f  gcc/testsuite/gcc.dg/asm-hard-reg-4.c
+ 5570e0994cf3a287da4b422fdc9395e9  gcc/testsuite/gcc.dg/asm-hard-reg-5.c
+ cc74ad07bc21697eab1ac4bdbb25f0f5  gcc/testsuite/gcc.dg/asm-hard-reg-6.c
+ 1a27715b4b755fb46b13300fd15e4690  gcc/testsuite/gcc.dg/asm-hard-reg-7.c
+ 518c17261bb078d2460f83de54b6ca4e  gcc/testsuite/gcc.dg/asm-hard-reg-8.c
+ ab980f0237f5796fbeebe76bc741601c  gcc/testsuite/gcc.dg/asm-hard-reg-9.c
+ b8c52e60689e1b1842e4e05f9f0a21fb  gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c
+ 9db82ff602331dd327582c106428d7c7  gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c
+ b7d7ad2352b64cd5b5f59527de4a95d9  gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c
+ 524d418a9c4592d83ab9f5d9048f817c  gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c
+ a4862e2e0b5c04818a6438ae16091cec  gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c
+ 1ec5c1bd0d09a10946894557c718d3e9  gcc/testsuite/gcc.dg/asm-hard-reg-error-6.c
  6c3cba24c3d3fbf660605697935b9be5  gcc/testsuite/gcc.dg/asm-names.c
  9c3b7de14ce6ac49627b91e2808376e5  gcc/testsuite/gcc.dg/asm-pr24146.c
  bb1414d3448a4d73560e8bf9f884913a  gcc/testsuite/gcc.dg/asm-qual-1.c
*************** ceea17365edd23ebeee261b54fa830ff  gcc/te
*** 43187,43198 ****
  e02d18b933cd31187ef17173ef98db12  gcc/testsuite/gcc.dg/atomic-compare-exchange-2.c
  550a65284e1b6454e4da4c03ffb9cdb8  gcc/testsuite/gcc.dg/atomic-compare-exchange-3.c
  287e9415eadf96bfb96497defdc68310  gcc/testsuite/gcc.dg/atomic-compare-exchange-4.c
! 2c3b610a871fc5f2e3dcc453cf1d067b  gcc/testsuite/gcc.dg/atomic-compare-exchange-5.c
  63d32a9901a6b00e2c2e9d3bb76aace5  gcc/testsuite/gcc.dg/atomic-exchange-1.c
  289dc7bffd031ee0b3cbfe8e9e9f9474  gcc/testsuite/gcc.dg/atomic-exchange-2.c
  8fad7f08b6fee0ca4b76714770e57129  gcc/testsuite/gcc.dg/atomic-exchange-3.c
  12ba26ba6d9ca42590a7dc16bcd19c1a  gcc/testsuite/gcc.dg/atomic-exchange-4.c
! 249767b6183b7a0d00443f997f50f805  gcc/testsuite/gcc.dg/atomic-exchange-5.c
  692b1edce3ec7ca95a8ff1f3274c7c17  gcc/testsuite/gcc.dg/atomic-fence.c
  40f4c2530e3e7d01d27faab1d79d493a  gcc/testsuite/gcc.dg/atomic-fetch-bool.c
  b0ef609e3671be889eb71f25fd978656  gcc/testsuite/gcc.dg/atomic-flag.c
--- 51752,51763 ----
  e02d18b933cd31187ef17173ef98db12  gcc/testsuite/gcc.dg/atomic-compare-exchange-2.c
  550a65284e1b6454e4da4c03ffb9cdb8  gcc/testsuite/gcc.dg/atomic-compare-exchange-3.c
  287e9415eadf96bfb96497defdc68310  gcc/testsuite/gcc.dg/atomic-compare-exchange-4.c
! bb1c362c6b10b75a99b90f5ed06c8536  gcc/testsuite/gcc.dg/atomic-compare-exchange-5.c
  63d32a9901a6b00e2c2e9d3bb76aace5  gcc/testsuite/gcc.dg/atomic-exchange-1.c
  289dc7bffd031ee0b3cbfe8e9e9f9474  gcc/testsuite/gcc.dg/atomic-exchange-2.c
  8fad7f08b6fee0ca4b76714770e57129  gcc/testsuite/gcc.dg/atomic-exchange-3.c
  12ba26ba6d9ca42590a7dc16bcd19c1a  gcc/testsuite/gcc.dg/atomic-exchange-4.c
! 7a6e183425adbe93d2dcddbb0aa54456  gcc/testsuite/gcc.dg/atomic-exchange-5.c
  692b1edce3ec7ca95a8ff1f3274c7c17  gcc/testsuite/gcc.dg/atomic-fence.c
  40f4c2530e3e7d01d27faab1d79d493a  gcc/testsuite/gcc.dg/atomic-fetch-bool.c
  b0ef609e3671be889eb71f25fd978656  gcc/testsuite/gcc.dg/atomic-flag.c
*************** a7301ca78640eb0fd9f6dbfaba1a0d39  gcc/te
*** 43204,43210 ****
  b1998ee17242ce05e154d6665cbbe6e9  gcc/testsuite/gcc.dg/atomic-load-2.c
  089b633ec721221e134eb2a3453b1321  gcc/testsuite/gcc.dg/atomic-load-3.c
  2d61450adcac745207ef6b91c4b7f242  gcc/testsuite/gcc.dg/atomic-load-4.c
! b782a9319c78e4cd48d440f6571114fb  gcc/testsuite/gcc.dg/atomic-load-5.c
  54e0383156b91e89c615fee2f0e9685a  gcc/testsuite/gcc.dg/atomic-lockfree-aux.c
  672785de3be6eb365c5b5c7e699b8a5f  gcc/testsuite/gcc.dg/atomic-lockfree.c
  3915600ec7069639d41efde3f9c5015f  gcc/testsuite/gcc.dg/atomic-noinline-aux.c
--- 51769,51775 ----
  b1998ee17242ce05e154d6665cbbe6e9  gcc/testsuite/gcc.dg/atomic-load-2.c
  089b633ec721221e134eb2a3453b1321  gcc/testsuite/gcc.dg/atomic-load-3.c
  2d61450adcac745207ef6b91c4b7f242  gcc/testsuite/gcc.dg/atomic-load-4.c
! c0ad245906ede3c6ad6d0cc52fca8845  gcc/testsuite/gcc.dg/atomic-load-5.c
  54e0383156b91e89c615fee2f0e9685a  gcc/testsuite/gcc.dg/atomic-lockfree-aux.c
  672785de3be6eb365c5b5c7e699b8a5f  gcc/testsuite/gcc.dg/atomic-lockfree.c
  3915600ec7069639d41efde3f9c5015f  gcc/testsuite/gcc.dg/atomic-noinline-aux.c
*************** b782a9319c78e4cd48d440f6571114fb  gcc/te
*** 43213,43219 ****
  03a845cbf6612332113df329921b0f2d  gcc/testsuite/gcc.dg/atomic-op-2.c
  567237db781deb12b3e30ebd74cc0f98  gcc/testsuite/gcc.dg/atomic-op-3.c
  e7710598dce73052d83e8bc41ad3e45c  gcc/testsuite/gcc.dg/atomic-op-4.c
! 1d863d254d9240422285f0c9e26e523d  gcc/testsuite/gcc.dg/atomic-op-5.c
  871f2213830251361d9506ad9b05ab9c  gcc/testsuite/gcc.dg/atomic-op-6.c
  0c559132ac4793a69b667808c285dafb  gcc/testsuite/gcc.dg/atomic-op-optimize.c
  0eb08d386ca84b3bbfc6715587d8da62  gcc/testsuite/gcc.dg/atomic-param.c
--- 51778,51784 ----
  03a845cbf6612332113df329921b0f2d  gcc/testsuite/gcc.dg/atomic-op-2.c
  567237db781deb12b3e30ebd74cc0f98  gcc/testsuite/gcc.dg/atomic-op-3.c
  e7710598dce73052d83e8bc41ad3e45c  gcc/testsuite/gcc.dg/atomic-op-4.c
! fb39a474862cb957623e961c36f179c5  gcc/testsuite/gcc.dg/atomic-op-5.c
  871f2213830251361d9506ad9b05ab9c  gcc/testsuite/gcc.dg/atomic-op-6.c
  0c559132ac4793a69b667808c285dafb  gcc/testsuite/gcc.dg/atomic-op-optimize.c
  0eb08d386ca84b3bbfc6715587d8da62  gcc/testsuite/gcc.dg/atomic-param.c
*************** a461c4051aa09ddd6b2950b456a5e208  gcc/te
*** 43223,43231 ****
  545525b36d206ad84981240a7c2026ed  gcc/testsuite/gcc.dg/atomic-store-2.c
  b6d936bcef333630cc9629b477556dad  gcc/testsuite/gcc.dg/atomic-store-3.c
  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
--- 51788,51796 ----
  545525b36d206ad84981240a7c2026ed  gcc/testsuite/gcc.dg/atomic-store-2.c
  b6d936bcef333630cc9629b477556dad  gcc/testsuite/gcc.dg/atomic-store-3.c
  cfbaa184996beeec40d054222582f88d  gcc/testsuite/gcc.dg/atomic-store-4.c
! d18dbc72ab4cee689682b2e6743a36df  gcc/testsuite/gcc.dg/atomic-store-5.c
! 5a5c3085ac5542c9934508d99f345231  gcc/testsuite/gcc.dg/atomic-store-6.c
! d7d98dc2c2d4b1989f7b5167ed806f36  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
*************** a40448e5fa79d5f463c4408a645a3bb7  gcc/te
*** 43299,43305 ****
  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
--- 51864,51870 ----
  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
! 04b69ebba7dae09b619bb8e6345fa184  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
*************** c4aab9d4106e9ae98e0807ad6bf14aa5  gcc/te
*** 43322,43327 ****
--- 51887,51897 ----
  02d7d6aadac12a028dedd724bb71f324  gcc/testsuite/gcc.dg/attr-assume_aligned-2.c
  381dde82adbf6ab920a6cf273228f01e  gcc/testsuite/gcc.dg/attr-assume_aligned-3.c
  6e85d9fda9c397d492aa648ec798d6b8  gcc/testsuite/gcc.dg/attr-assume_aligned-4.c
+ fe74c08f53b5b1b964c2c929159f1ba2  gcc/testsuite/gcc.dg/attr-btf-decl-tag-1.c
+ 639efce79e2202ae51b79dbab04b296e  gcc/testsuite/gcc.dg/attr-btf-decl-tag-2.c
+ c8d6492dff078586424be8f03528b2be  gcc/testsuite/gcc.dg/attr-btf-type-tag-1.c
+ 14c788d0842de64233e3a81d972dbf5b  gcc/testsuite/gcc.dg/attr-btf-type-tag-2.c
+ 41894487d9e76835ab065db00cac9ff5  gcc/testsuite/gcc.dg/attr-btf-type-tag-3.c
  98639a922ccd34ef430959327ab91ce7  gcc/testsuite/gcc.dg/attr-copy-2.c
  b2c4e769d6b76333376078e568f8eaa8  gcc/testsuite/gcc.dg/attr-copy-3.c
  3366e3a3db8c8a30d5a7e6f8c872146d  gcc/testsuite/gcc.dg/attr-copy-4.c
*************** af689fcf0e6540f0e5a60c11473f2f49  gcc/te
*** 43392,43398 ****
  d6f7c46e3498df8dad35d4281fd48b44  gcc/testsuite/gcc.dg/auto-init-uninit-14.c
  5ffaeba3da6f0c7ac9d8346effb216aa  gcc/testsuite/gcc.dg/auto-init-uninit-15.c
  5be5b751280a109e8bb4dfcb9acb6384  gcc/testsuite/gcc.dg/auto-init-uninit-16.c
! fdfdc981e23a2b1ece9d480a29675f01  gcc/testsuite/gcc.dg/auto-init-uninit-17.c
  a5758b25bb46b199ceb2adc8b48e41a0  gcc/testsuite/gcc.dg/auto-init-uninit-18.c
  120b99dd5651a9ab10bbfca8febd26ce  gcc/testsuite/gcc.dg/auto-init-uninit-19.c
  a4c05cf84a9c561c56b9a31ff5c6ab81  gcc/testsuite/gcc.dg/auto-init-uninit-2.c
--- 51962,51968 ----
  d6f7c46e3498df8dad35d4281fd48b44  gcc/testsuite/gcc.dg/auto-init-uninit-14.c
  5ffaeba3da6f0c7ac9d8346effb216aa  gcc/testsuite/gcc.dg/auto-init-uninit-15.c
  5be5b751280a109e8bb4dfcb9acb6384  gcc/testsuite/gcc.dg/auto-init-uninit-16.c
! 5aeaca063a49bb556049dd3c17e1633c  gcc/testsuite/gcc.dg/auto-init-uninit-17.c
  a5758b25bb46b199ceb2adc8b48e41a0  gcc/testsuite/gcc.dg/auto-init-uninit-18.c
  120b99dd5651a9ab10bbfca8febd26ce  gcc/testsuite/gcc.dg/auto-init-uninit-19.c
  a4c05cf84a9c561c56b9a31ff5c6ab81  gcc/testsuite/gcc.dg/auto-init-uninit-2.c
*************** da68ac31262c3fbaefafb059699ba37f  gcc/te
*** 43420,43426 ****
  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
--- 51990,51996 ----
  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
! 53258e932e4fd1464f793ab17975aae6  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
*************** f36bbd087ac3ea147e58ddaa13c05621  gcc/te
*** 43480,43489 ****
  f4fb130600932752f20fe058b47563f5  gcc/testsuite/gcc.dg/autopar/reduc-7.c
  cb2d9cc2278a24ee2bd07758846c491e  gcc/testsuite/gcc.dg/autopar/reduc-8.c
  a72aed4598b891bea75a07eca33210c9  gcc/testsuite/gcc.dg/autopar/reduc-9.c
  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
--- 52050,52060 ----
  f4fb130600932752f20fe058b47563f5  gcc/testsuite/gcc.dg/autopar/reduc-7.c
  cb2d9cc2278a24ee2bd07758846c491e  gcc/testsuite/gcc.dg/autopar/reduc-8.c
  a72aed4598b891bea75a07eca33210c9  gcc/testsuite/gcc.dg/autopar/reduc-9.c
+ 7d9914b3949e0939a639f8e93d7225a6  gcc/testsuite/gcc.dg/autopar/runtime-auto.c
  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
! 6c8363518f7f811f9f3d3ec42376d1f1  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
*************** d217543f954eb3f31e246355824f653a  gcc/te
*** 43592,43597 ****
--- 52163,52173 ----
  43db7c5f800ce763fcf885501389882a  gcc/testsuite/gcc.dg/bitint-122.c
  7d02ff9539e664bbbcfc85b464d916c1  gcc/testsuite/gcc.dg/bitint-123.c
  11e6d8eaf7b16f3f8aeaf1c2e626996f  gcc/testsuite/gcc.dg/bitint-124.c
+ c446cf331d60d19eea3950d7f444f8b3  gcc/testsuite/gcc.dg/bitint-125.c
+ 240ade406c4daf5c641e5c4f0bdd5ef5  gcc/testsuite/gcc.dg/bitint-126.c
+ 3fa6e340272f61c5b425b6a54732c94f  gcc/testsuite/gcc.dg/bitint-127.c
+ a7f36d213cef759e44b1ea369391b70d  gcc/testsuite/gcc.dg/bitint-128.c
+ ad4a12ff2a965c06e2883de49f8fafcc  gcc/testsuite/gcc.dg/bitint-129.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
*************** a01e3a82ad637d2bd98e5f55ec051cfe  gcc/te
*** 43612,43618 ****
  f2fd3f66238a769b6b8646a44a1187ac  gcc/testsuite/gcc.dg/bitint-29.c
  ebc1b2e969808b30e5a3b76f4f336d34  gcc/testsuite/gcc.dg/bitint-3.c
  549dedddb5ef6207ce457ce1e4bf8b46  gcc/testsuite/gcc.dg/bitint-30.c
! a3f54a460ab861053aea9b3fea5ea7c3  gcc/testsuite/gcc.dg/bitint-31.c
  49c3bc08813cea383767dedb2d145769  gcc/testsuite/gcc.dg/bitint-32.c
  5d41c4fb8fed8ffa0df8e9e4c2820ffa  gcc/testsuite/gcc.dg/bitint-33.c
  6051db01d14d62e1d01c53c4cefa3485  gcc/testsuite/gcc.dg/bitint-34.c
--- 52188,52194 ----
  f2fd3f66238a769b6b8646a44a1187ac  gcc/testsuite/gcc.dg/bitint-29.c
  ebc1b2e969808b30e5a3b76f4f336d34  gcc/testsuite/gcc.dg/bitint-3.c
  549dedddb5ef6207ce457ce1e4bf8b46  gcc/testsuite/gcc.dg/bitint-30.c
! a86d7fd8a0463f8a27e2774021ede92f  gcc/testsuite/gcc.dg/bitint-31.c
  49c3bc08813cea383767dedb2d145769  gcc/testsuite/gcc.dg/bitint-32.c
  5d41c4fb8fed8ffa0df8e9e4c2820ffa  gcc/testsuite/gcc.dg/bitint-33.c
  6051db01d14d62e1d01c53c4cefa3485  gcc/testsuite/gcc.dg/bitint-34.c
*************** e20f46b6e703ff1284f1cfe79f6c7f15  gcc/te
*** 43687,43692 ****
--- 52263,52269 ----
  727f3fa86769627fd757f9544ec5e9a4  gcc/testsuite/gcc.dg/bitint-97.c
  a22b186996615c2d8eb05ea8bf3fbf0f  gcc/testsuite/gcc.dg/bitint-98.c
  fb2deb63f2c015cb881ba1519e9cf788  gcc/testsuite/gcc.dg/bitint-99.c
+ efa627642d8459ac1fc4848a6c128408  gcc/testsuite/gcc.dg/bitintext.h
  6453b594ca416ac818e19554b58e489e  gcc/testsuite/gcc.dg/boolcomplex-1.c
  29dee620c099065fec233358259a8a12  gcc/testsuite/gcc.dg/bss.c
  7cf86654b95ba4af389e830b28a868e1  gcc/testsuite/gcc.dg/builtin-addc-1.c
*************** d040792d1dd4c9dd03defd6b33b73ca3  gcc/te
*** 43702,43708 ****
  686e8a08e2ea9e8c895de2a53b5d7166  gcc/testsuite/gcc.dg/builtin-arith-overflow-4.c
  42993f464b05f08b455aede39114a000  gcc/testsuite/gcc.dg/builtin-arith-overflow-4a.c
  57438e502d4a94ddefa57cc49b25f836  gcc/testsuite/gcc.dg/builtin-arith-overflow-5.c
! 451f7ecc855ee325551342a0928e36e3  gcc/testsuite/gcc.dg/builtin-assume-aligned-1.c
  81addba5c0e1838ae8925847f9549ba9  gcc/testsuite/gcc.dg/builtin-assume-aligned-2.c
  e37f4aca281a2c82829d2bf1650d5193  gcc/testsuite/gcc.dg/builtin-bswap-1.c
  8c6c4e4a58a4f180971e576b4fabe804  gcc/testsuite/gcc.dg/builtin-bswap-10.c
--- 52279,52285 ----
  686e8a08e2ea9e8c895de2a53b5d7166  gcc/testsuite/gcc.dg/builtin-arith-overflow-4.c
  42993f464b05f08b455aede39114a000  gcc/testsuite/gcc.dg/builtin-arith-overflow-4a.c
  57438e502d4a94ddefa57cc49b25f836  gcc/testsuite/gcc.dg/builtin-arith-overflow-5.c
! e1b404ff3b34ca8f09597bbb3eaff8bb  gcc/testsuite/gcc.dg/builtin-assume-aligned-1.c
  81addba5c0e1838ae8925847f9549ba9  gcc/testsuite/gcc.dg/builtin-assume-aligned-2.c
  e37f4aca281a2c82829d2bf1650d5193  gcc/testsuite/gcc.dg/builtin-bswap-1.c
  8c6c4e4a58a4f180971e576b4fabe804  gcc/testsuite/gcc.dg/builtin-bswap-10.c
*************** b152d7b3044cd4c130385716be2c314d  gcc/te
*** 43729,43735 ****
  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
--- 52306,52314 ----
  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
! 2336f8e7bf1931f87b53961724c68cf6  gcc/testsuite/gcc.dg/builtin-counted-by-ref-2.c
! d094610036854466ee966eb5ab997c34  gcc/testsuite/gcc.dg/builtin-counted-by-ref-3.c
! fba124c0528b07b38d8f23c5569ffdcb  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
*************** e06e75338accc1d77eb96706931ab719  gcc/te
*** 43820,43829 ****
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
  273adb61fc527a0a98332844df1a5b16  gcc/testsuite/gcc.dg/builtin-unreachable-3.c
  3f5b321aedbde585bb267c9931d87096  gcc/testsuite/gcc.dg/builtin-unreachable-4.c
! b00d36d0215e29686de9f6563afb4e87  gcc/testsuite/gcc.dg/builtin-unreachable-5.c
! 805cca243e4ddc4c6a264af39e4c36ab  gcc/testsuite/gcc.dg/builtin-unreachable-6.c
! 55f574298f80b352e4b2c682678ec628  gcc/testsuite/gcc.dg/builtin-unreachable-6a.c
! aae01c51ba49859a16f212d42a613073  gcc/testsuite/gcc.dg/builtins-1.c
  de826bd2faea31ca3887af383ff62b8f  gcc/testsuite/gcc.dg/builtins-10.c
  960461c95930d3d3bd3e2a49ed939d49  gcc/testsuite/gcc.dg/builtins-11.c
  5da18cb2c9d6ce408e877d7434076293  gcc/testsuite/gcc.dg/builtins-12.c
--- 52399,52409 ----
  9399d77d3b11b0d63ba66560d1d4696d  gcc/testsuite/gcc.dg/builtin-unreachable-2.c
  273adb61fc527a0a98332844df1a5b16  gcc/testsuite/gcc.dg/builtin-unreachable-3.c
  3f5b321aedbde585bb267c9931d87096  gcc/testsuite/gcc.dg/builtin-unreachable-4.c
! fec2581d59bb58ef7c4c861215d227a9  gcc/testsuite/gcc.dg/builtin-unreachable-5.c
! 7a5b3d15b44ab72489bbf43453ddc27c  gcc/testsuite/gcc.dg/builtin-unreachable-6.c
! 6fb6aed3fa7e3b9ef55e8808af87a20b  gcc/testsuite/gcc.dg/builtin-unreachable-6a.c
! 26a73461f86eaa077d3df2dfa3aaef2a  gcc/testsuite/gcc.dg/builtin-unreachable-7.c
! f009865cc5f42ab2ba4a4ed671729f1a  gcc/testsuite/gcc.dg/builtins-1.c
  de826bd2faea31ca3887af383ff62b8f  gcc/testsuite/gcc.dg/builtins-10.c
  960461c95930d3d3bd3e2a49ed939d49  gcc/testsuite/gcc.dg/builtins-11.c
  5da18cb2c9d6ce408e877d7434076293  gcc/testsuite/gcc.dg/builtins-12.c
*************** d176e423452b3b1dc2b591de90fb7b79  gcc/te
*** 43907,43912 ****
--- 52487,52493 ----
  fe3d87d9d937306c1cfb738ab291a1d0  gcc/testsuite/gcc.dg/c11-atomic-3.c
  92b6577d9ca27307e52b72fdc2e81cf8  gcc/testsuite/gcc.dg/c11-atomic-4.c
  5a7729ff2127958a8608ff174eed4821  gcc/testsuite/gcc.dg/c11-atomic-5.c
+ 07b663f93baedf729a289eeeee600bb7  gcc/testsuite/gcc.dg/c11-atomic-6.c
  37ee2eb758051ab7950639101c00d66e  gcc/testsuite/gcc.dg/c11-attr-syntax-1.c
  949aa9b8b20c27f20aef9e7521d77e35  gcc/testsuite/gcc.dg/c11-attr-syntax-2.c
  e3e7905df28d319258a82d3d6f793f44  gcc/testsuite/gcc.dg/c11-attr-syntax-3.c
*************** b91ad092585928cae19e2202e523cd0f  gcc/te
*** 43954,43961 ****
  c53e29473a432e9147fe890097930727  gcc/testsuite/gcc.dg/c11-fordecl-3.c
  80c5d30cdf15155bb2620598168fb1c0  gcc/testsuite/gcc.dg/c11-fordecl-4.c
  8472bf4fa0a02e831b47e014c3d8ff39  gcc/testsuite/gcc.dg/c11-generic-1.c
! 9067e724c4ff52e45f30d96d1baf4aa5  gcc/testsuite/gcc.dg/c11-generic-2.c
  edccfa9a6ec4138450a583864191741b  gcc/testsuite/gcc.dg/c11-generic-3.c
  54cb44acbc237391a83fc858cdcffbf9  gcc/testsuite/gcc.dg/c11-keywords-1.c
  3db892ff7dff5c32a37d9f3b20627c73  gcc/testsuite/gcc.dg/c11-labels-1.c
  22f625932f22946e080ea3988bd9f854  gcc/testsuite/gcc.dg/c11-labels-2.c
--- 52535,52543 ----
  c53e29473a432e9147fe890097930727  gcc/testsuite/gcc.dg/c11-fordecl-3.c
  80c5d30cdf15155bb2620598168fb1c0  gcc/testsuite/gcc.dg/c11-fordecl-4.c
  8472bf4fa0a02e831b47e014c3d8ff39  gcc/testsuite/gcc.dg/c11-generic-1.c
! 296de8ede1fe4f472eea9e0146a8185a  gcc/testsuite/gcc.dg/c11-generic-2.c
  edccfa9a6ec4138450a583864191741b  gcc/testsuite/gcc.dg/c11-generic-3.c
+ e7821cd5031d5348d5f39e8482076c3a  gcc/testsuite/gcc.dg/c11-generic-4.c
  54cb44acbc237391a83fc858cdcffbf9  gcc/testsuite/gcc.dg/c11-keywords-1.c
  3db892ff7dff5c32a37d9f3b20627c73  gcc/testsuite/gcc.dg/c11-labels-1.c
  22f625932f22946e080ea3988bd9f854  gcc/testsuite/gcc.dg/c11-labels-2.c
*************** cd00c6feebac836c0ec488202c21d6a7  gcc/te
*** 44024,44029 ****
--- 52606,52612 ----
  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
+ e4306708fae3682874b9f361ce349d27  gcc/testsuite/gcc.dg/c23-array-negative-1.c
  56a76c282330c2c4b41a50ff88a0fbe2  gcc/testsuite/gcc.dg/c23-attr-deprecated-1.c
  53adbd495ae22c30a0897a05151c5708  gcc/testsuite/gcc.dg/c23-attr-deprecated-2.c
  41f182ba922399f53fd715de3a0e37e4  gcc/testsuite/gcc.dg/c23-attr-deprecated-3.c
*************** e8f58dbbfb83be247111a3f5787823b9  gcc/te
*** 44056,44062 ****
  eaec7e8d3dab1a92f077a291b2a45008  gcc/testsuite/gcc.dg/c23-attr-syntax-3.c
  cd50c105926a1e51a64176d2120e47f2  gcc/testsuite/gcc.dg/c23-attr-syntax-4.c
  f0cb85efadba331ca2d15c7afc61de69  gcc/testsuite/gcc.dg/c23-attr-syntax-5.c
! 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
--- 52639,52645 ----
  eaec7e8d3dab1a92f077a291b2a45008  gcc/testsuite/gcc.dg/c23-attr-syntax-3.c
  cd50c105926a1e51a64176d2120e47f2  gcc/testsuite/gcc.dg/c23-attr-syntax-4.c
  f0cb85efadba331ca2d15c7afc61de69  gcc/testsuite/gcc.dg/c23-attr-syntax-5.c
! 13084ae1021fc48606f66549943e2cf7  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
*************** fd92418c98ab7a53a0f7ffab5cc23336  gcc/te
*** 44078,44084 ****
  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
--- 52661,52667 ----
  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
! 1375b648ec5198d79a2385508507ead6  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
*************** fca4c7f52a46ab4ff35166ad34a2092f  gcc/te
*** 44091,44096 ****
--- 52674,52680 ----
  c4253823407e42b2041cd4f87c079b68  gcc/testsuite/gcc.dg/c23-complit-6.c
  822939abe10b0e2ccf49d5bb1a71561e  gcc/testsuite/gcc.dg/c23-complit-7.c
  6c015cd3478782c8fdd2dd00957cdea2  gcc/testsuite/gcc.dg/c23-complit-8.c
+ 7c5ebf042769fc394238e8d5d5d28eeb  gcc/testsuite/gcc.dg/c23-complit-9.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
*************** b1e829d25f4878e349058ba7965d3339  gcc/te
*** 44156,44161 ****
--- 52740,52746 ----
  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
+ 6d33d6447b413d81be55f82b585ac569  gcc/testsuite/gcc.dg/c23-generic-5.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
*************** b0d1ce51d648932c87697a86eb202ce9  gcc/te
*** 44172,44177 ****
--- 52757,52766 ----
  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
+ 9148986047f0ec9feb86929b593fc835  gcc/testsuite/gcc.dg/c23-incomplete-1.c
+ d98fffe0944ebabdb8cddf3fcb42ed42  gcc/testsuite/gcc.dg/c23-incomplete-2.c
+ 02feca3cf2ed44037534350fdd060074  gcc/testsuite/gcc.dg/c23-incomplete-3.c
+ 09cfaebf64bb28b6417fe85149538bd3  gcc/testsuite/gcc.dg/c23-incomplete-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
*************** b848314d57077287ea6ff193d8529161  gcc/te
*** 44214,44223 ****
--- 52803,52820 ----
  5c8791535515e3b1c795b799f05b12de  gcc/testsuite/gcc.dg/c23-qual-5.c
  bc1e9282cce3b4231a088bf436fc52ad  gcc/testsuite/gcc.dg/c23-qual-6.c
  012092bdf34bf023214876741a993409  gcc/testsuite/gcc.dg/c23-qual-7.c
+ fe5cf03d5905906d6478785f1bb66b67  gcc/testsuite/gcc.dg/c23-register-array-1.c
+ 3a0e63c991e6107de3d83513f63ed324  gcc/testsuite/gcc.dg/c23-register-array-2.c
+ e958a6c84b6c4bddff027d2eb58fa62f  gcc/testsuite/gcc.dg/c23-register-array-3.c
+ 8167a57e11166df1a20be8d56519b6e6  gcc/testsuite/gcc.dg/c23-register-array-4.c
  34d8438d87acaf8fa9206428b49e558e  gcc/testsuite/gcc.dg/c23-static-assert-1.c
  3b637fe4a5a85647b2b98c7a38f85d19  gcc/testsuite/gcc.dg/c23-static-assert-2.c
  e76c7613e08d9be9fd22a634a8e630c2  gcc/testsuite/gcc.dg/c23-static-assert-3.c
  375ec5c262f63ebb0db351c9dfa205d6  gcc/testsuite/gcc.dg/c23-static-assert-4.c
+ 293e42337dab72a627e3831c54ca3f6e  gcc/testsuite/gcc.dg/c23-static-assert-5.c
+ ead067ee79d188adabd09d746dea8811  gcc/testsuite/gcc.dg/c23-static-assert-6.c
+ c88c4b1eb0ad2103e072181c168bc875  gcc/testsuite/gcc.dg/c23-static-assert-7.c
+ 5574cbc8590cff623d41be6e165fe1f9  gcc/testsuite/gcc.dg/c23-static-assert-8.c
  e2f7b6f80f4e3f26cdae30d836c2bd71  gcc/testsuite/gcc.dg/c23-stdarg-1.c
  4adf5b256bfda9a8b69296115e125d44  gcc/testsuite/gcc.dg/c23-stdarg-10.c
  522c6f2f0e0582bfdffa2f93a5852e3a  gcc/testsuite/gcc.dg/c23-stdarg-11.c
*************** f925d06fc9124ac699ada0a9108d874b  gcc/te
*** 44273,44279 ****
  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
--- 52870,52876 ----
  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
! e38db450d0fe33a86f243690fc3c1559  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
*************** f2a4898d3ca2464c3600e2f890f8307c  gcc/te
*** 44293,44298 ****
--- 52890,52897 ----
  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
+ 851f930a2da512e8f6020dae62d44380  gcc/testsuite/gcc.dg/c2y-anon-init-1.c
+ a69498f454527d6b2d0970e2c516bd48  gcc/testsuite/gcc.dg/c2y-array-negative-1.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/te
*** 44300,44308 ****
  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
--- 52899,52912 ----
  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
+ ba9398946908672e05cf040d4a0a29e5  gcc/testsuite/gcc.dg/c2y-function-qual-1.c
  f2a473638b83447f8d1205f5d6251d92  gcc/testsuite/gcc.dg/c2y-generic-1.c
  33ed56b095cc441bd571917111dfb781  gcc/testsuite/gcc.dg/c2y-generic-2.c
! 5d33469235b824c78f73c5152cc25218  gcc/testsuite/gcc.dg/c2y-generic-3.c
! 8a980c49506a6eafac197032debd2d37  gcc/testsuite/gcc.dg/c2y-generic-4.c
! 61e426c807f07249b33bc48fcb2c13de  gcc/testsuite/gcc.dg/c2y-generic-5.c
! 82a47163df4d1981a696041136143bda  gcc/testsuite/gcc.dg/c2y-generic-6.c
! 9c6e1c749b0bcd5c4744884c34b3499d  gcc/testsuite/gcc.dg/c2y-generic-7.c
  98704a88665294812bcac95656b06058  gcc/testsuite/gcc.dg/c2y-if-decls-1.c
  48d839375c465a02424ec02f3ce5039e  gcc/testsuite/gcc.dg/c2y-if-decls-10.c
  2b576c06f00d531cb0473cc879db458c  gcc/testsuite/gcc.dg/c2y-if-decls-11.c
*************** e0c7fb6332e3fb8d44fbd96d709b0f77  gcc/te
*** 44326,44340 ****
--- 52930,52968 ----
  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
+ 31941941d5fc68fbc13dbced3a93c2dd  gcc/testsuite/gcc.dg/c2y-incomplete-1.c
+ fac4d983506fe771aab24bcdf0cd6eb5  gcc/testsuite/gcc.dg/c2y-incomplete-2.c
+ 41c1686e328289238d317f92a564bf4c  gcc/testsuite/gcc.dg/c2y-incomplete-3.c
+ 77d172c4982337245a2db4ab7ae0212f  gcc/testsuite/gcc.dg/c2y-incomplete-4.c
+ ce3cf65f30ec08fb8bae602157536bc2  gcc/testsuite/gcc.dg/c2y-incomplete-5.c
+ 4f2c0342859eaf05bddab76191975b41  gcc/testsuite/gcc.dg/c2y-init-1.c
+ 92164865b962db361132c2825c1a5576  gcc/testsuite/gcc.dg/c2y-init-2.c
+ e9e31c634e0b64fe6ae8bddd6b578f5b  gcc/testsuite/gcc.dg/c2y-init-3.c
+ 8445ec4e0665a4141a7afa27a0e6c095  gcc/testsuite/gcc.dg/c2y-inline-1.c
+ 2b3f94dac416975326ac382d854e7d20  gcc/testsuite/gcc.dg/c2y-linkage-1.c
+ 95420752b61a34eafb01a473a5863268  gcc/testsuite/gcc.dg/c2y-linkage-2.c
+ 09ba37b2a96ac4e03a09f7acb2736946  gcc/testsuite/gcc.dg/c2y-linkage-3.c
+ 109ba18845bc4a1f0eeb0dccae1d5ad1  gcc/testsuite/gcc.dg/c2y-linkage-4.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
+ ae93aae7f7b6e46952f9aada1a846a03  gcc/testsuite/gcc.dg/c2y-named-loops-8.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
+ 274acfa89da9daf37a8a94e489cf5c1a  gcc/testsuite/gcc.dg/c2y-pointer-1.c
+ 71956a9335d91df7ca0b75edbc0375a8  gcc/testsuite/gcc.dg/c2y-register-array-1.c
+ 1d8585ebd75d9d65e8c701ca2c704a84  gcc/testsuite/gcc.dg/c2y-register-array-2.c
+ 6e588677d43bb7ff98d01a88480060fc  gcc/testsuite/gcc.dg/c2y-register-array-3.c
+ 2b7359e19e88c655c7a556e8dd93dc49  gcc/testsuite/gcc.dg/c2y-static-assert-1.c
+ 240341bb941102d611552e8ac1f27f16  gcc/testsuite/gcc.dg/c2y-static-assert-2.c
+ b61f5235794003acf6c8d45f08a31523  gcc/testsuite/gcc.dg/c2y-static-assert-3.c
+ 77265c96a036bfbd59c9e3edb4e03785  gcc/testsuite/gcc.dg/c2y-static-assert-4.c
+ 01e04472b1c1f83f93ccb20602c5ddee  gcc/testsuite/gcc.dg/c2y-storage-class-1.c
+ a12d7d6a5d3610300ee36a0d18f2abf3  gcc/testsuite/gcc.dg/c2y-struct-empty-1.c
  7b91caa232dcb33030877f5bf290f5da  gcc/testsuite/gcc.dg/c2y-switch-1.c
  7c1a09cbecfd008dbe8308919ad52ff9  gcc/testsuite/gcc.dg/c2y-switch-2.c
  11574f2264dab8c604726d84b221eb44  gcc/testsuite/gcc.dg/c2y-switch-3.c
*************** bd34927c7e8ef0637a91744aa30c8e22  gcc/te
*** 44574,44580 ****
  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
--- 53202,53208 ----
  7bcfb1562ffc5ec66175fdcc52054745  gcc/testsuite/gcc.dg/charset/attribute2.c
  d256d028f437be7e103b223e7c20fe96  gcc/testsuite/gcc.dg/charset/builtin1.c
  a00066d47a6f8dc20ebf4861a2541212  gcc/testsuite/gcc.dg/charset/builtin2.c
! 8f8070e6f9f836de558ef0caef8a35d8  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
*************** d9e45b781a97ee5ac71b788011eae52c  gcc/te
*** 44591,44598 ****
  63f9f4f172f1c35d6e9325335509bbae  gcc/testsuite/gcc.dg/cleanup-7.c
  4b3f3381c96015f94c259a34b69db093  gcc/testsuite/gcc.dg/cleanup-8.c
  2b48928f2bd195ac844588f7ca503b99  gcc/testsuite/gcc.dg/cleanup-9.c
! d97c7a7f40ee37cdc08f53d694b5b6c4  gcc/testsuite/gcc.dg/cmp-mem-const-1.c
! 58abb24caf7c9dea1b8dd01beb6a4c64  gcc/testsuite/gcc.dg/cmp-mem-const-2.c
  0e0404e574882e746f083b4e342b199e  gcc/testsuite/gcc.dg/cmp-mem-const-3.c
  1e7f131c6c9aac4217b1aa657fe6deac  gcc/testsuite/gcc.dg/cmp-mem-const-4.c
  fbf489c058782ade1afff9b3e1a414f1  gcc/testsuite/gcc.dg/cmp-mem-const-5.c
--- 53219,53226 ----
  63f9f4f172f1c35d6e9325335509bbae  gcc/testsuite/gcc.dg/cleanup-7.c
  4b3f3381c96015f94c259a34b69db093  gcc/testsuite/gcc.dg/cleanup-8.c
  2b48928f2bd195ac844588f7ca503b99  gcc/testsuite/gcc.dg/cleanup-9.c
! 511209a2170cfb8d8b536d67b3012d4b  gcc/testsuite/gcc.dg/cmp-mem-const-1.c
! ff9b76460e8f733216b81ea35e9a0e97  gcc/testsuite/gcc.dg/cmp-mem-const-2.c
  0e0404e574882e746f083b4e342b199e  gcc/testsuite/gcc.dg/cmp-mem-const-3.c
  1e7f131c6c9aac4217b1aa657fe6deac  gcc/testsuite/gcc.dg/cmp-mem-const-4.c
  fbf489c058782ade1afff9b3e1a414f1  gcc/testsuite/gcc.dg/cmp-mem-const-5.c
*************** c7cb5e1831bea1746c3a206e4c26e3ec  gcc/te
*** 44620,44626 ****
  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
--- 53248,53254 ----
  ed52253f6b0d3e0e42d8c7d911691e47  gcc/testsuite/gcc.dg/compare8.c
  e505e91e0c3898015606540b084a3cf3  gcc/testsuite/gcc.dg/compare9.c
  320a670a68ed763f73f02634dc198ac9  gcc/testsuite/gcc.dg/compat/compat-common.h
! f14cef34fe8351a8a8c1bd4f93713903  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
*************** d74b89e56176fb529e8bb7e7a09ce41d  gcc/te
*** 44647,44657 ****
  c7861cb9c33a40ea18f9ec149a743d3e  gcc/testsuite/gcc.dg/compat/pr38736_y.c
  4b4f71db780c1bc3362df9cd3b1def0d  gcc/testsuite/gcc.dg/compat/pr83487-1.h
  5aefef89b7f6fcc39055c1c13e62beb0  gcc/testsuite/gcc.dg/compat/pr83487-1_main.c
! fd52b0802e292ace71c85d5851e68895  gcc/testsuite/gcc.dg/compat/pr83487-1_x.c
! d6b2b417ba65a5d7347f0a752ff6f92e  gcc/testsuite/gcc.dg/compat/pr83487-1_y.c
  e6ec5fd8a835190c85e1459361275004  gcc/testsuite/gcc.dg/compat/pr83487-2_main.c
! 6a9d90ad6f1a85dc86df7105f60b8b3f  gcc/testsuite/gcc.dg/compat/pr83487-2_x.c
! 326f9f7b07c245c3d1a881e59bb69309  gcc/testsuite/gcc.dg/compat/pr83487-2_y.c
  fc5dafe10d6650cf4d9a8fd5fb187f59  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_main.c
  34b45138296b5aa7dd411fa08de1df98  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_x.c
  ebfa2ff6c25bd35bc7465e300b17eb47  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_y.c
--- 53275,53285 ----
  c7861cb9c33a40ea18f9ec149a743d3e  gcc/testsuite/gcc.dg/compat/pr38736_y.c
  4b4f71db780c1bc3362df9cd3b1def0d  gcc/testsuite/gcc.dg/compat/pr83487-1.h
  5aefef89b7f6fcc39055c1c13e62beb0  gcc/testsuite/gcc.dg/compat/pr83487-1_main.c
! 411c60b5048001a92e29a155931a4f8a  gcc/testsuite/gcc.dg/compat/pr83487-1_x.c
! bdd724dfe84caf9ba4748600cfe3e3f3  gcc/testsuite/gcc.dg/compat/pr83487-1_y.c
  e6ec5fd8a835190c85e1459361275004  gcc/testsuite/gcc.dg/compat/pr83487-2_main.c
! c0537193758bec02c372c8e6562b8fdb  gcc/testsuite/gcc.dg/compat/pr83487-2_x.c
! 2bed7d8454da35d29b23e6055a60a8ea  gcc/testsuite/gcc.dg/compat/pr83487-2_y.c
  fc5dafe10d6650cf4d9a8fd5fb187f59  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_main.c
  34b45138296b5aa7dd411fa08de1df98  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_x.c
  ebfa2ff6c25bd35bc7465e300b17eb47  gcc/testsuite/gcc.dg/compat/scalar-by-value-1_y.c
*************** a2b373d1eb2ec6aa198281313f6c7dad  gcc/te
*** 44799,44805 ****
  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
--- 53427,53433 ----
  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
! 0d9c0894b6758bc18016d6e98b6e9ceb  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
*************** d05bdce55447fc39d09a1133e04e88b4  gcc/te
*** 44869,44874 ****
--- 53497,53503 ----
  45e735b0d33fac192a119347115d5b0c  gcc/testsuite/gcc.dg/completion-4.c
  649ce6d53eeda31c7cb4947fab7ac38f  gcc/testsuite/gcc.dg/completion-5.c
  a86556f4f0c72c0bee2f104440830505  gcc/testsuite/gcc.dg/complex-1.c
+ 79e8cd8a2d1264875feb64c5169b21d2  gcc/testsuite/gcc.dg/complex-10.c
  ec2d607c705e532267dc3c09849c554f  gcc/testsuite/gcc.dg/complex-2.c
  da2226add6799fd192e2b367404d1b0b  gcc/testsuite/gcc.dg/complex-2.h
  7cbd734da9d8330b57f4e78af353b9f2  gcc/testsuite/gcc.dg/complex-3.c
*************** da2226add6799fd192e2b367404d1b0b  gcc/te
*** 44876,44881 ****
--- 53505,53512 ----
  40fff02642e5e2ead0c4b58bc10042b7  gcc/testsuite/gcc.dg/complex-5.c
  c7dc328831cb2f54c434fe280fbc315a  gcc/testsuite/gcc.dg/complex-6.c
  680764f447f89f563460401a948f1554  gcc/testsuite/gcc.dg/complex-7.c
+ 3d803b4e2db8420754d245b81b5a6dab  gcc/testsuite/gcc.dg/complex-8.c
+ 14643bb2cd507c440adbd5f14eeb8c81  gcc/testsuite/gcc.dg/complex-9.c
  e4076ab8b4eaeecdcbb527dfc36e6b0a  gcc/testsuite/gcc.dg/compound-literal-1.c
  6f0c2274db9a2a034c64efad43a3d3c4  gcc/testsuite/gcc.dg/compound-literal-cast-lvalue-1.c
  0f6847b008a2fc6d389626675248c378  gcc/testsuite/gcc.dg/compound-lvalue-1.c
*************** e3f3945c878b9cf4fa5b3f0074bd6302  gcc/te
*** 44893,44901 ****
--- 53524,53551 ----
  e781844c1655d36c9b6e04d59aad8996  gcc/testsuite/gcc.dg/const-float80.c
  46fd50d67e377613dde0e2f128244fd8  gcc/testsuite/gcc.dg/const-uniq-1.c
  45c05b0df046fbbbc9ea0cea8b6eca6a  gcc/testsuite/gcc.dg/constructor-1.c
+ 9ace5acfa86a758e14f176c294be8083  gcc/testsuite/gcc.dg/constructor-2.c
  79de76f1d9fe6810bc65fa1f39adc1dc  gcc/testsuite/gcc.dg/conv-1.c
  3a476a2d0c391587638c234c7b082c5a  gcc/testsuite/gcc.dg/conv-2.c
  89b18c0becd2933f025acc401a0aeaf8  gcc/testsuite/gcc.dg/conv-3.c
+ 272bd8e9bc2a4630f64de65202c56a4f  gcc/testsuite/gcc.dg/counted-by-anonymous-2-char.c
+ ca7e5de7ae44ae6b5bb729e4d9eadc6f  gcc/testsuite/gcc.dg/counted-by-anonymous-2-float.c
+ 5974c46e70b053892338147c6afd43d1  gcc/testsuite/gcc.dg/counted-by-anonymous-2-struct.c
+ 1e0d8659de1de8612c7cf5d3f8f49b0f  gcc/testsuite/gcc.dg/counted-by-anonymous-2-union.c
+ f90b8d83aba1cc7359d672c46fd07a9a  gcc/testsuite/gcc.dg/counted-by-anonymous-2.c
+ 2e612baabc05d361cda086f6a663da17  gcc/testsuite/gcc.dg/counted-by-anonymous-3.c
+ 5b22fc4910c9bfeecd988a4d23f85456  gcc/testsuite/gcc.dg/counted-by-anonymous.c
+ c797c0159985b6cfaaf4ab160451c3a4  gcc/testsuite/gcc.dg/countof-compat.c
+ cfd1e5fcba6e1e17d853d6d14a40057b  gcc/testsuite/gcc.dg/countof-compile.c
+ 608b1948fb6a190311fada69744220cd  gcc/testsuite/gcc.dg/countof-no-compat.c
+ 7eafaa58e5bb4cc4c83cb69e9e31f04c  gcc/testsuite/gcc.dg/countof-pedantic-errors.c
+ 81a7004a604039f5fe3afa412103c8ef  gcc/testsuite/gcc.dg/countof-pedantic.c
+ 3c990b81bd268128dda0c1c13b15d2b6  gcc/testsuite/gcc.dg/countof-stdcountof.c
+ 473d7d2d415511d975bd4b75ac461589  gcc/testsuite/gcc.dg/countof-vla.c
+ 95d803733514c62f5030f851cf4d6576  gcc/testsuite/gcc.dg/countof-vmt.c
+ d3099a3667b8afecd160ce8735eef28f  gcc/testsuite/gcc.dg/countof-zero-compile.c
+ 21bc98d5821bf6957c3d97d727cfc3a1  gcc/testsuite/gcc.dg/countof-zero.c
+ 19e2ff748d93d4aa52715d07da439c17  gcc/testsuite/gcc.dg/countof.c
  6bc56500657f8c3b71b20af4c69e967f  gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h
  efe7e7710c90559c2ce6e719d57e85cf  gcc/testsuite/gcc.dg/cpp/19921210-1.c
  fd87d37c0d8c780e43c22463e7f47466  gcc/testsuite/gcc.dg/cpp/19930510-1.c
*************** bb2749ce61406c502f805c626d9dc647  gcc/te
*** 44934,44940 ****
  428a0b9041a42a9b17dcbddb7ffc135b  gcc/testsuite/gcc.dg/cpp/Wsignprom.c
  e0949a6df091cf08947f37f2651c3fee  gcc/testsuite/gcc.dg/cpp/Wtrigraphs-2.c
  a172b9d48b7f785f2bdf32a66bf33533  gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c
! bbf9f55d936e5adc719ff33b213ff395  gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
  9133b60797fd27c2069996efa899ffac  gcc/testsuite/gcc.dg/cpp/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/Wunused.h
  ff2f8ae252d248760a4dc489195f5aa3  gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c
--- 53584,53590 ----
  428a0b9041a42a9b17dcbddb7ffc135b  gcc/testsuite/gcc.dg/cpp/Wsignprom.c
  e0949a6df091cf08947f37f2651c3fee  gcc/testsuite/gcc.dg/cpp/Wtrigraphs-2.c
  a172b9d48b7f785f2bdf32a66bf33533  gcc/testsuite/gcc.dg/cpp/Wtrigraphs.c
! 63e55525cba029e9d98b88e18680345e  gcc/testsuite/gcc.dg/cpp/Wunknown-pragmas-1.c
  9133b60797fd27c2069996efa899ffac  gcc/testsuite/gcc.dg/cpp/Wunused.c
  722ce436983657fc4f00220b26f8fa36  gcc/testsuite/gcc.dg/cpp/Wunused.h
  ff2f8ae252d248760a4dc489195f5aa3  gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c
*************** d6fdc59bae27f9e3097840361d13c67a  gcc/te
*** 44951,44957 ****
  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
--- 53601,53607 ----
  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
! 62296d3292a756e5231ca1d043291629  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
*************** d68bbbb751c339c43ba063269cc07d20  gcc/te
*** 44991,44996 ****
--- 53641,53647 ----
  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
+ 08da87e8d9fcc226944785df027f6e95  gcc/testsuite/gcc.dg/cpp/c2y-counter-1.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
*************** d62663c6040cd44ce9ceaef5ef47e6be  gcc/te
*** 45057,45063 ****
  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
--- 53708,53714 ----
  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
! 98a4b82b857ef8bddac4ddb67193b6db  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
*************** af960c05f0a6ab2d5eb3aa99551fa658  gcc/te
*** 45099,45104 ****
--- 53750,53756 ----
  b7bb414df09ccb2077133b21ba630ce8  gcc/testsuite/gcc.dg/cpp/error-1.c
  6a2ac941bc99ce6af7ed79d05fbb5aed  gcc/testsuite/gcc.dg/cpp/escape-1.c
  3f966d736c5e8d8df46521821e7b2f3c  gcc/testsuite/gcc.dg/cpp/escape-2.c
+ 504e24adde05d05df423940a050d7f16  gcc/testsuite/gcc.dg/cpp/escape-3.i
  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
*************** e9e7b9fd51bf1a0bc663ce351365c3dc  gcc/te
*** 45254,45264 ****
  114af49c7f0ebbbf1b2b6dfe7d7533fe  gcc/testsuite/gcc.dg/cpp/paste1.c
  94e0adf57f2b5278d73eb9a32e60922c  gcc/testsuite/gcc.dg/cpp/paste10.c
  9d96877703c996f27d65edaad60a6bb4  gcc/testsuite/gcc.dg/cpp/paste11.c
! 2fe98a7a1ae2662014d620877db58205  gcc/testsuite/gcc.dg/cpp/paste12-2.c
! 5fec141019612b7401c48ada6c30f5c2  gcc/testsuite/gcc.dg/cpp/paste12.c
  5b69fbb204585bf861b3297b852698f5  gcc/testsuite/gcc.dg/cpp/paste13.c
! eb4d5790e82cf57b54d62067446c3fab  gcc/testsuite/gcc.dg/cpp/paste14-2.c
! 632eb9a18d60be74ca546d99563ac50a  gcc/testsuite/gcc.dg/cpp/paste14.c
  92d4208f409847f43e4f44c65e8e9cf9  gcc/testsuite/gcc.dg/cpp/paste15.c
  73cb9dc770d371315e506c932e447978  gcc/testsuite/gcc.dg/cpp/paste16.c
  b3476c801fefa2be844c46391e92a98b  gcc/testsuite/gcc.dg/cpp/paste17.c
--- 53906,53916 ----
  114af49c7f0ebbbf1b2b6dfe7d7533fe  gcc/testsuite/gcc.dg/cpp/paste1.c
  94e0adf57f2b5278d73eb9a32e60922c  gcc/testsuite/gcc.dg/cpp/paste10.c
  9d96877703c996f27d65edaad60a6bb4  gcc/testsuite/gcc.dg/cpp/paste11.c
! c4bbc17abe4963012b98d97dffb741da  gcc/testsuite/gcc.dg/cpp/paste12-2.c
! b64fd12c84e85e98ef9bd8a023cc5033  gcc/testsuite/gcc.dg/cpp/paste12.c
  5b69fbb204585bf861b3297b852698f5  gcc/testsuite/gcc.dg/cpp/paste13.c
! 1306bae1e993904ba29b34711f5e9963  gcc/testsuite/gcc.dg/cpp/paste14-2.c
! 7aad28db47f8b4d819497890cf051a1e  gcc/testsuite/gcc.dg/cpp/paste14.c
  92d4208f409847f43e4f44c65e8e9cf9  gcc/testsuite/gcc.dg/cpp/paste15.c
  73cb9dc770d371315e506c932e447978  gcc/testsuite/gcc.dg/cpp/paste16.c
  b3476c801fefa2be844c46391e92a98b  gcc/testsuite/gcc.dg/cpp/paste17.c
*************** c91822df8000f6656b2e707c3c4b9776  gcc/te
*** 45308,45314 ****
  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
  b5ad224e236fc4a36c19d3cfb71bb8da  gcc/testsuite/gcc.dg/cpp/pr43195.h
  5d1998992379b4be30cd8c1ab25a11c2  gcc/testsuite/gcc.dg/cpp/pr60014-1.c
--- 53960,53966 ----
  bd82104282e72a261de145d68de5bf94  gcc/testsuite/gcc.dg/cpp/pr35313.c
  67a7898c1ca67039c34609f9181a51ee  gcc/testsuite/gcc.dg/cpp/pr35322.c
  cd284656aaf570a6f621480512077abd  gcc/testsuite/gcc.dg/cpp/pr36320.c
! f2e1ffe2d42874ffec7aa8ba1a2dd88b  gcc/testsuite/gcc.dg/cpp/pr36674.i
  305ae9c95b1a4224816adfdc5af2f157  gcc/testsuite/gcc.dg/cpp/pr43195.c
  b5ad224e236fc4a36c19d3cfb71bb8da  gcc/testsuite/gcc.dg/cpp/pr43195.h
  5d1998992379b4be30cd8c1ab25a11c2  gcc/testsuite/gcc.dg/cpp/pr60014-1.c
*************** fb8d966edc2bb4f9de1858ef3f07c225  gcc/te
*** 45474,45480 ****
  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
--- 54126,54132 ----
  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
! c06d900455dde3dcb13a35029a1502f2  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
*************** ddbb4c428a1399bf8a6f61e6246bd347  gcc/te
*** 45622,45628 ****
  ea8e81ccf9b0e8a7d31a02ddf10f3ae7  gcc/testsuite/gcc.dg/cse_recip.c
  dc6685bcab4cd7ed276483fd8d031507  gcc/testsuite/gcc.dg/ctor1.c
  13a7eb422d70031061c88832496b4b3b  gcc/testsuite/gcc.dg/cwsc0.c
! d9dc93acb42ceaf059f158db6f7ea6d2  gcc/testsuite/gcc.dg/cwsc1.c
  fb2cff7f2512c80434d59d702b80e754  gcc/testsuite/gcc.dg/darwin-20040812-1.c
  e3c60516eb9991f352d93d33fde752d3  gcc/testsuite/gcc.dg/darwin-aligned-globals.c
  3010db4d547a5bce8e8559d5cc724330  gcc/testsuite/gcc.dg/darwin-cfstring-1.c
--- 54274,54280 ----
  ea8e81ccf9b0e8a7d31a02ddf10f3ae7  gcc/testsuite/gcc.dg/cse_recip.c
  dc6685bcab4cd7ed276483fd8d031507  gcc/testsuite/gcc.dg/ctor1.c
  13a7eb422d70031061c88832496b4b3b  gcc/testsuite/gcc.dg/cwsc0.c
! c1e612aca82705aa421876a2ea779ffe  gcc/testsuite/gcc.dg/cwsc1.c
  fb2cff7f2512c80434d59d702b80e754  gcc/testsuite/gcc.dg/darwin-20040812-1.c
  e3c60516eb9991f352d93d33fde752d3  gcc/testsuite/gcc.dg/darwin-aligned-globals.c
  3010db4d547a5bce8e8559d5cc724330  gcc/testsuite/gcc.dg/darwin-cfstring-1.c
*************** c96e3c21321d56aede07abd31354a939  gcc/te
*** 45685,45690 ****
--- 54337,54346 ----
  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
+ d298c4721cebb5a8f071eab27b318f8b  gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-1.c
+ 00c336bdaa98567cb9cf2be49510efed  gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-2.c
+ eff23ceb0f1de5254c1fc2d6b2dc4c88  gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-3.c
+ 29df75987dd344ca574b3d1c1ef08644  gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-4.c
  ce8db6beea057b08db18a29b3b5f953c  gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c
  2746c1a8ff992beba556a0403d9731cf  gcc/testsuite/gcc.dg/debug/btf/btf-enum-small.c
  42dec2bdf221f13367de97714fa15ce3  gcc/testsuite/gcc.dg/debug/btf/btf-enum64-1.c
*************** d88796e35daf5eabf6a8ee3cc6c5e9b7  gcc/te
*** 45705,45723 ****
  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
--- 54361,54385 ----
  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
+ 3aa1cdcf5cf5e8085ce4fda769c0721c  gcc/testsuite/gcc.dg/debug/btf/btf-prune-4.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
+ d602e3674a676911120a20508b76d197  gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-1.c
+ 9264589947bc0741c4b336d2bf5d9b7b  gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-2.c
+ 8dd6eb33f522bef261178155da7be27a  gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-3.c
+ 113ae47e293c5c32caf7c6d0f70e99e3  gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-4.c
+ efb30782d5bded2a55ab56cdbe5b9c15  gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-c2x-1.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
! fe32587b986378a8aeafebd3c9e32bdf  gcc/testsuite/gcc.dg/debug/btf/btf-variables-5.c
! ba9fce3db36856692d53f5ced696c2e2  gcc/testsuite/gcc.dg/debug/btf/btf.exp
  5ecf1b1eaf3904ce2c2a142f45569a49  gcc/testsuite/gcc.dg/debug/codeview/codeview-1.c
! ac5b5231af4040f2f4d746de5cd7756b  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
*************** da5f00c608fbf4af0b9daad6f59e1bbe  gcc/te
*** 45732,45737 ****
--- 54394,54400 ----
  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
+ 601f379be5a4781c563b082bb1866937  gcc/testsuite/gcc.dg/debug/ctf/ctf-array-7.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
*************** c0d039a95e585c41b8569a928fd651b2  gcc/te
*** 45746,45751 ****
--- 54409,54415 ----
  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
+ 174e6b7902582ff04c8a4052a8dc4ea6  gcc/testsuite/gcc.dg/debug/ctf/ctf-decl-tag-1.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
*************** ea3e1069a2acd8e148e4906ca26ae173  gcc/te
*** 45774,45783 ****
--- 54438,54449 ----
  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
+ 87c0f5e153c942762d307689392cd8db  gcc/testsuite/gcc.dg/debug/ctf/ctf-struct-3.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
+ 0f4bcfcd596072c9b305d872b3ee8e97  gcc/testsuite/gcc.dg/debug/ctf/ctf-type-tag-1.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/te
*** 45788,45794 ****
  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
--- 54454,54460 ----
  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
! c88373d078999fc4ff10c52515a7feb1  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
*** 45796,45802 ****
  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
--- 54462,54468 ----
  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
! bf931a909dcc34c7e5501a2cb3799976  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
*** 45817,45822 ****
--- 54483,54504 ----
  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
+ bfc259e0656af3d084cf786df7535a72  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-1.c
+ 6113ca1e1c16494adb2dc948aebfed6c  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-2.c
+ eaa551be9dc9704721cc33f22856eef5  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-3.c
+ dbfd4c139d6c08de91de37faab7bf31f  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-4.c
+ 3c184fbe7ebe2d2e81766c5325995284  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-5.c
+ 5be8af3b5cd7eae8acf97ed4349673e4  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-6.c
+ e8ffaef1e5ddad10d30dde6092d1ca8c  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-1.c
+ 3b30c4afc23cdb5ce0e6fc418ebfca45  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-10.c
+ 07e124a08c7e6e1cca6a1ca11d1e8de9  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-2.c
+ bc5beaa36d2293e00c01efee8ea5c0e1  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-3.c
+ 1b3b63f426af37e039c92befd6aa6920  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-4.c
+ 4b3673387710f1728c2a25cc6d2db799  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-5.c
+ 0860b44a2a37ebbfeda85ac97bdce31f  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-6.c
+ 4f1165474d27ac295826152b6dc69bd3  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-7.c
+ 958a7e0be6527e4d917ff1ef284a7580  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-8.c
+ 97adcc7dd7ee63e9d93ea2f773181fa9  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-9.c
  bdc28ca82c4aedd54c51bdc86bec14a5  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c
  4b7a125fecbeb3f74e765f6067334894  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c
  160bdd9acd7baf6b98a6468e849e1720  gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c
*************** fbe375bf9288bf092b7cef1996c14a1f  gcc/te
*** 45835,45841 ****
  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
--- 54517,54523 ----
  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
! 65bc0a73f1d2baf8df24a74d9d5a98e2  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
*************** e2f52a89972160427f649396e34b1d0c  gcc/te
*** 45864,45870 ****
  4e1fecf5ecf52fb6fb5fda7ea3f6eda7  gcc/testsuite/gcc.dg/debug/dwarf2/nested_fun.c
  edee97b42c75ecf594a2c63a31f4c416  gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-attribute.c
  cbcc356a35e8a8665137c7ae64ec5914  gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-keyword.c
! 937e8a07b611d24efb44f969833a3cb8  gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c
  65c779aa27fde2981a8fd2eb1b54c195  gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c
  54b366032eed667161eee7783123c310  gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c
  88466c37a4317f483dad470b7d9a7949  gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c
--- 54546,54552 ----
  4e1fecf5ecf52fb6fb5fda7ea3f6eda7  gcc/testsuite/gcc.dg/debug/dwarf2/nested_fun.c
  edee97b42c75ecf594a2c63a31f4c416  gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-attribute.c
  cbcc356a35e8a8665137c7ae64ec5914  gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-keyword.c
! 1e5b1f52a31f16f937cd807e0a2b5045  gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c
  65c779aa27fde2981a8fd2eb1b54c195  gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c
  54b366032eed667161eee7783123c310  gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c
  88466c37a4317f483dad470b7d9a7949  gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c
*************** c468bc46d49a90772b63f81541d1cdf0  gcc/te
*** 46027,46033 ****
  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
! 143efb0e67af1d841185aad9485eab11  gcc/testsuite/gcc.dg/dfp/bitint-10.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
--- 54709,54715 ----
  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
! 435b0150048fc1bac0fc9aef60754472  gcc/testsuite/gcc.dg/dfp/bitint-10.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
*************** ccb86bca1db885e54fa8d30063aa6a9a  gcc/te
*** 46035,46041 ****
  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
! 5aad3660822951a77e1e44e866886f80  gcc/testsuite/gcc.dg/dfp/bitint-9.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
--- 54717,54723 ----
  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
! 1df031fb70e425a8b18bde73eb6df5ef  gcc/testsuite/gcc.dg/dfp/bitint-9.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
*************** a090c33bcd231aab578d44d3bed73e2c  gcc/te
*** 46056,46064 ****
  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
--- 54738,54746 ----
  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
! dfb06b9000b55c9f7293dcaa773034dc  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-1.c
  3008ddb0f8396353a207aa7e1689f7af  gcc/testsuite/gcc.dg/dfp/c23-decimal64x-2.c
! 5fb0de69a91350aba3843f2d31f013d6  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
*************** dfe075c7272c802e4c6f44b1a66f1302  gcc/te
*** 46088,46094 ****
  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
--- 54770,54776 ----
  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
! 852897bb4f74413460fdc0857649a6c2  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
*************** b6f9108cd4878577de83d43be75185ce  gcc/te
*** 46110,46116 ****
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
  82ea312c34b2d7bbfe3d7dc309a1831f  gcc/testsuite/gcc.dg/dfp/pr108068.c
  ea6fd7375471549c289fdf2b28049341  gcc/testsuite/gcc.dg/dfp/pr118560.c
! 59bca99093471aec4689a575eb6354c1  gcc/testsuite/gcc.dg/dfp/pr120631.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
--- 54792,54798 ----
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
  82ea312c34b2d7bbfe3d7dc309a1831f  gcc/testsuite/gcc.dg/dfp/pr108068.c
  ea6fd7375471549c289fdf2b28049341  gcc/testsuite/gcc.dg/dfp/pr118560.c
! b9ab9342a3fa794be9b6f9302b6694a3  gcc/testsuite/gcc.dg/dfp/pr120631.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
*************** ef8eb17f7da56bfde3d6840acb400831  gcc/te
*** 46145,46151 ****
  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
--- 54827,54833 ----
  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
! 67eb063c190205bc0cc305b8c9c69522  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
*************** c5d748774fb2199480c81f1cce289faf  gcc/te
*** 46157,46162 ****
--- 54839,54847 ----
  04707756a63a267ab3d35958405b9e23  gcc/testsuite/gcc.dg/diag-aka-5a.c
  6352145b16e092ab70b3d7b63fb176ac  gcc/testsuite/gcc.dg/diag-aka-5b.c
  f69d4a18ba089cfb7153cf4e77aa059f  gcc/testsuite/gcc.dg/diag-sanity.c
+ e1b1d36b22a339889d25652d245ae055  gcc/testsuite/gcc.dg/diagnostic-cfgs-html.py
+ 0b651585bad263f816050af6131c5515  gcc/testsuite/gcc.dg/diagnostic-cfgs-sarif.py
+ a281fa0c56b2e8acd29ae3fc81adedfd  gcc/testsuite/gcc.dg/diagnostic-cfgs.c
  28833629ad112b005f0e6a4297ccfb9a  gcc/testsuite/gcc.dg/diagnostic-input-charset-1.c
  3bc26289f49ad5037172748300ad2581  gcc/testsuite/gcc.dg/diagnostic-input-utf8-bom.c
  c62d15575797919e845abb5fb04433d2  gcc/testsuite/gcc.dg/diagnostic-range-bad-called-object.c
*************** ba60814aadf21741cc3e6781a96f6801  gcc/te
*** 46248,46263 ****
--- 54933,54956 ----
  36d60a18cc2d81c2f3553d9d74463b9e  gcc/testsuite/gcc.dg/enum2.c
  2fced693aa6aaf7f0a1c26e95d86359f  gcc/testsuite/gcc.dg/enum3.c
  01594dd7e5d51839556337bd883f71dc  gcc/testsuite/gcc.dg/errno-1.c
+ e5b6d040e9bb909c04161316f8bacb50  gcc/testsuite/gcc.dg/errno-2.c
+ c56151bd4d3567927d789b07e22c4cb3  gcc/testsuite/gcc.dg/errno-3.c
+ 3204d8ff85b11b9a94ae2cead0f817ba  gcc/testsuite/gcc.dg/errno-4.c
  0584a868861c4b01ea6696ebc6613d03  gcc/testsuite/gcc.dg/ext-elim-1.c
  bbb87d2a73c29d36f6bb6b3dec4a2b02  gcc/testsuite/gcc.dg/extra-semi-1.c
  5ecbeae6593123b1ac9b91979c9faf1b  gcc/testsuite/gcc.dg/extra-semi-2.c
  8a92262e99815477a062c82d552896e8  gcc/testsuite/gcc.dg/extra-semi-3.c
  c54a3052ec2d03b003a96b460fc1509c  gcc/testsuite/gcc.dg/extract_recip_3.c
  426a2aa59ea6c60129fd2d8b0a70e0ac  gcc/testsuite/gcc.dg/extract_recip_4.c
+ 35f5cc84e689a31f5a9c0e3b12718126  gcc/testsuite/gcc.dg/fabs-plus-zero-1.c
+ 1058dac9688f459be05471df0301cf7d  gcc/testsuite/gcc.dg/fabs-plus-zero-2.c
  7185df85b1b68b5a6448c792f88d01fa  gcc/testsuite/gcc.dg/fail_always_inline.c
  635a708f0d3160a61cc28f440b7af0d5  gcc/testsuite/gcc.dg/fail_always_inline2.c
  65d997c1872a855cefb9e7177015a53a  gcc/testsuite/gcc.dg/falign-labels-1.c
  2bc0342a25d7d1e316ce2fb511a55ca2  gcc/testsuite/gcc.dg/fastmath-1.c
+ fba32def2172ff2492b932c3edefec3a  gcc/testsuite/gcc.dg/fatal-error-html.py
+ 7b5f81b070e3d174eccc61ceb522baef  gcc/testsuite/gcc.dg/fatal-error-sarif.py
+ f6296745cf7c1bfd8a80d1a938961849  gcc/testsuite/gcc.dg/fatal-error.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
*************** f3a876eb6a0816f6085df8f93e7edd6d  gcc/te
*** 46293,46299 ****
  4120724485645be638383c7fa28e9070  gcc/testsuite/gcc.dg/fixed-point/allop.c
  283593bbe1174a9581831a667120157a  gcc/testsuite/gcc.dg/fixed-point/binary.c
  0bea133ab644808fbf42aef7c37b38ac  gcc/testsuite/gcc.dg/fixed-point/bit-complement.c
! 6ffb0657e2acf6009afaf4a8a6578bdf  gcc/testsuite/gcc.dg/fixed-point/bitint-1.c
  db2e33a998a710ce021678da0caa8f09  gcc/testsuite/gcc.dg/fixed-point/call-by-value.c
  283d6b07483b7a12d06e1477ed57ef1b  gcc/testsuite/gcc.dg/fixed-point/cast-bad.c
  c1539bf8d5fb4755eff7267143193524  gcc/testsuite/gcc.dg/fixed-point/composite-type.c
--- 54986,54992 ----
  4120724485645be638383c7fa28e9070  gcc/testsuite/gcc.dg/fixed-point/allop.c
  283593bbe1174a9581831a667120157a  gcc/testsuite/gcc.dg/fixed-point/binary.c
  0bea133ab644808fbf42aef7c37b38ac  gcc/testsuite/gcc.dg/fixed-point/bit-complement.c
! 6b8e85deed970065a5758c7bcc4b46ae  gcc/testsuite/gcc.dg/fixed-point/bitint-1.c
  db2e33a998a710ce021678da0caa8f09  gcc/testsuite/gcc.dg/fixed-point/call-by-value.c
  283d6b07483b7a12d06e1477ed57ef1b  gcc/testsuite/gcc.dg/fixed-point/cast-bad.c
  c1539bf8d5fb4755eff7267143193524  gcc/testsuite/gcc.dg/fixed-point/composite-type.c
*************** ba9babbdf6b9b9adbb2294699c69fb2e  gcc/te
*** 46312,46318 ****
  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
--- 55005,55011 ----
  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
! f5867787c40adb5f5b002cb3601b4f32  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
*************** b26ec4207090108ad96e87a3a0dbcd15  gcc/te
*** 46351,46357 ****
  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
--- 55044,55050 ----
  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
! 02b9bbfeaeee4c7583d0b0116c1b7752  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
*************** ef50af421660786db0fe02810452b32f  gcc/te
*** 46359,46365 ****
  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
--- 55052,55059 ----
  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
! 0c0c4a41f6e50911dd3bf8175e72e715  gcc/testsuite/gcc.dg/flex-array-counted-by-pr121000.c
! 079390c1d98770d2afb23500baeb74ce  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
*************** ee5011d0e6b7fccb87df0fdf4ed4cdaf  gcc/te
*** 46445,46451 ****
  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
--- 55139,55145 ----
  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
! 3ad306b125e6533a764853e4018baa5c  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
*************** e402946ef4c438476731cd807abb0d0b  gcc/te
*** 46531,46540 ****
--- 55225,55236 ----
  76f7470b6189ce228d02129a9dfc4c00  gcc/testsuite/gcc.dg/fold-reassoc-3.c
  0aa598ad8e6c4c320f618d9c96e61a6d  gcc/testsuite/gcc.dg/fold-reduc-1.c
  536db83e6ff0dfa4712a9eeb27f67863  gcc/testsuite/gcc.dg/fold-rotate-1.c
+ 45f862e7a0eb58a934d20e0a3268358b  gcc/testsuite/gcc.dg/fold-round-1.c
  443a53fe759251a4e155769053066cfb  gcc/testsuite/gcc.dg/fold-stringops-1.c
  8bbad26c96bd55f1858e4bdfca0ae1c7  gcc/testsuite/gcc.dg/fold-stringops-2.c
  ab16f59df61d1fa7462735be7c89e03e  gcc/testsuite/gcc.dg/fold-stringops-3.c
  4f2210865daf0cf05e105331c6f9aa8b  gcc/testsuite/gcc.dg/fold-sub.c
+ 66e88c7ea501b2ebc7bffa9b4d386d9c  gcc/testsuite/gcc.dg/fold-vecperm-1.c
  c90dbb8934ec1b212a0e4ecc9b3ca3d5  gcc/testsuite/gcc.dg/fold-xor-1.c
  7d493f5554d1ace59edbb4ff7c5827d9  gcc/testsuite/gcc.dg/fold-xor-2.c
  df2f1c4756e53a97a67a96197444b1c1  gcc/testsuite/gcc.dg/fold-xor-3.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 46595,46606 ****
  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
  76b3d68f4d248a85562e894eb00f75c7  gcc/testsuite/gcc.dg/format/diag-2.c
! 4b091c1e85a61834e81c1e1af1595a86  gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
  859d88caa1eeeb23ca9b76526b3a4f3e  gcc/testsuite/gcc.dg/format/errmk-1.c
  07bb1882393eddf8452ebd19e6a983d2  gcc/testsuite/gcc.dg/format/ext-1.c
  3577888fe5114465e0ca15f283d3e87f  gcc/testsuite/gcc.dg/format/ext-10.c
--- 55291,55303 ----
  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
! d0cadc3c4a24250334c4419a1d8bb229  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
  76b3d68f4d248a85562e894eb00f75c7  gcc/testsuite/gcc.dg/format/diag-2.c
! 5964767ea0368f36b723f8f22b2dc9ad  gcc/testsuite/gcc.dg/format/diagnostic-ranges-html.py
! 014b97f7e69a48e2a765439bbd73799a  gcc/testsuite/gcc.dg/format/diagnostic-ranges.c
  859d88caa1eeeb23ca9b76526b3a4f3e  gcc/testsuite/gcc.dg/format/errmk-1.c
  07bb1882393eddf8452ebd19e6a983d2  gcc/testsuite/gcc.dg/format/ext-1.c
  3577888fe5114465e0ca15f283d3e87f  gcc/testsuite/gcc.dg/format/ext-10.c
*************** d48360a30dc24fbd67e388a9848b02d3  gcc/te
*** 46613,46619 ****
  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
--- 55310,55316 ----
  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
! 6c1a87f2da0d16c8427f9f7fbcf3a1a1  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
*************** b545fd5015b04774ac8c95c87722bfc2  gcc/te
*** 46748,46754 ****
  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
--- 55445,55451 ----
  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
! c03b7986b16e324c69d30de40be5dec9  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
*************** c22f32307f45a41035662597ec36c291  gcc/te
*** 46820,46825 ****
--- 55517,55524 ----
  5ae9db3d6582f388d273d0ed7ec56bf9  gcc/testsuite/gcc.dg/gimplefe-54.c
  2d95286bb836d5694f1e829fdd422c4d  gcc/testsuite/gcc.dg/gimplefe-55.c
  e79c01b4e6117435c5f54b610c2bfb67  gcc/testsuite/gcc.dg/gimplefe-56.c
+ d446f4f9020b0aa4ff3a348d62c0952b  gcc/testsuite/gcc.dg/gimplefe-57.c
+ 10d7a7e88f50cf802d3b03ff88b40d61  gcc/testsuite/gcc.dg/gimplefe-58.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
*************** f01a8a4d620c24644f7618e21e2f811b  gcc/te
*** 46831,46836 ****
--- 55530,55536 ----
  d075e1ed2b2fb5d21ab476c50aaaa7d4  gcc/testsuite/gcc.dg/gimplefe-error-13.c
  ab3f4797f7365b2acf6d2c39beef404f  gcc/testsuite/gcc.dg/gimplefe-error-14.c
  bc09becefd492db7bf633407020cd40e  gcc/testsuite/gcc.dg/gimplefe-error-15.c
+ 882a0515f9cf927baf5a0bc8a8100cda  gcc/testsuite/gcc.dg/gimplefe-error-16.c
  8732eebb459e2274a07edcd677b00f18  gcc/testsuite/gcc.dg/gimplefe-error-2.c
  ada325f0b72d6ab38e2125c5cbc606b4  gcc/testsuite/gcc.dg/gimplefe-error-3.c
  c633216963c8d3e5cf26c00e55663895  gcc/testsuite/gcc.dg/gimplefe-error-4.c
*************** f19ba5ec082add7d45bee659e0ca766a  gcc/te
*** 46841,46846 ****
--- 55541,55548 ----
  26801e8c9b6cda7f34e1c7d9c7458645  gcc/testsuite/gcc.dg/gimplefe-error-9.c
  a7deb2e877a1f5f71b5144b4d0e6f4ab  gcc/testsuite/gcc.dg/globalalias-2.c
  af413f2a965da90de86711f81ac54bc6  gcc/testsuite/gcc.dg/globalalias.c
+ 70b891a9648a92e71459e138df1764d9  gcc/testsuite/gcc.dg/gnu-compoundlit-1.c
+ 6c37d98c3ca3c5cd01ada8b4d1f6ae88  gcc/testsuite/gcc.dg/gnu-compoundlit-2.c
  644bbd61aaed9ff26399d6df215c0bf6  gcc/testsuite/gcc.dg/gnu-cond-expr-1.c
  b51074560898490ec9b135be86916e73  gcc/testsuite/gcc.dg/gnu-cond-expr-2.c
  dae93188c3869bbff623a97d9f7b2b08  gcc/testsuite/gcc.dg/gnu-cond-expr-3.c
*************** c16263fe97e9a67347f142108b0ef45c  gcc/te
*** 46895,46900 ****
--- 55597,55604 ----
  8274444b50d1968c43296a7054673b34  gcc/testsuite/gcc.dg/gnu23-tag-composite-3.c
  62aa66dd9de4209944d261bb9c728665  gcc/testsuite/gcc.dg/gnu23-tag-composite-4.c
  55eb38c543312d9a8ec407d5dc57ab64  gcc/testsuite/gcc.dg/gnu23-tag-composite-5.c
+ 7ae4d5682427c0dd075f516246144195  gcc/testsuite/gcc.dg/gnu23-tag-composite-6.c
+ a6caaa5568690e5f317a2dbc51131bff  gcc/testsuite/gcc.dg/gnu23-tag-composite-7.c
  c85fa6543a15d51c958fa06a431c31a0  gcc/testsuite/gcc.dg/gnu23-tag-enum-1.c
  91a4022639b4da631739955963491d18  gcc/testsuite/gcc.dg/gnu23-typeof-1.c
  f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/testsuite/gcc.dg/gnu23-utf8char-1.c
*************** f4cdcfdd20fcbe93fb5c641aa6f0e1e7  gcc/te
*** 46902,46907 ****
--- 55606,55612 ----
  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
+ a2d545d3e206ae422c22cd916d81210f  gcc/testsuite/gcc.dg/gnu23-varmod-3.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
*************** ae8f65ff46d5c742b9d555f0c48fdbe3  gcc/te
*** 46928,46936 ****
  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
--- 55633,55641 ----
  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
! 37a47c3febae897adb2daf28838cbb05  gcc/testsuite/gcc.dg/goacc-gomp/goacc-gomp.exp
  e301304e13590c1ce7f775ce00ef95b0  gcc/testsuite/gcc.dg/goacc/acc_on_device-1.c
! 98dd7efaec7b2e401c4f8af9499c08d9  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
*************** f0990e08177a1fbd146dd2412ed83858  gcc/te
*** 46944,46955 ****
  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
  9f6b029b44fcf2bb92347a23a181f157  gcc/testsuite/gcc.dg/gomp/appendix-a/a.13.1.c
  77a66b53ecd95069a709e8111dfa6b14  gcc/testsuite/gcc.dg/gomp/appendix-a/a.14.1.c
  a0d4ed79bdccaf93384583be0da5f955  gcc/testsuite/gcc.dg/gomp/appendix-a/a.17.1.c
--- 55649,55660 ----
  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
! 5625bc692e46419de06b7a3ca5faa6b5  gcc/testsuite/gcc.dg/gomp/adjust-args-1.c
  dfc82995e2790a51a71b8e0c0dce494a  gcc/testsuite/gcc.dg/gomp/adjust-args-2.c
! fbd470b5c744eb8ede5a6dfbf5191602  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
! 974b0bd66cd8a1ea44253c3763f37f25  gcc/testsuite/gcc.dg/gomp/appendix-a/a.12.1.c
  9f6b029b44fcf2bb92347a23a181f157  gcc/testsuite/gcc.dg/gomp/appendix-a/a.13.1.c
  77a66b53ecd95069a709e8111dfa6b14  gcc/testsuite/gcc.dg/gomp/appendix-a/a.14.1.c
  a0d4ed79bdccaf93384583be0da5f955  gcc/testsuite/gcc.dg/gomp/appendix-a/a.17.1.c
*************** c26b1bfa8b2fd75cff129c324e36de96  gcc/te
*** 46968,46974 ****
  1a0cfd09bdf1c79167af51d9578dea2f  gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c
  0fa6b16fbeac1ad260538a69d9904f2d  gcc/testsuite/gcc.dg/gomp/appendix-a/a.32.1.c
  fc7a4eb85d3bfa6815fe4eaf8a6a82ab  gcc/testsuite/gcc.dg/gomp/appendix-a/a.33.1.c
! 82c17d2f324664ac666facf1f9c9857b  gcc/testsuite/gcc.dg/gomp/appendix-a/a.33.2.c
  f042c1ea359c6163e90c08ec6a8ce159  gcc/testsuite/gcc.dg/gomp/appendix-a/a.34.1.c
  128d64b60414894b162f19ab71d5d2c3  gcc/testsuite/gcc.dg/gomp/appendix-a/a.34.2.c
  25be279d4a4ad1581f1c7ee08b4ec035  gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.1.c
--- 55673,55679 ----
  1a0cfd09bdf1c79167af51d9578dea2f  gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c
  0fa6b16fbeac1ad260538a69d9904f2d  gcc/testsuite/gcc.dg/gomp/appendix-a/a.32.1.c
  fc7a4eb85d3bfa6815fe4eaf8a6a82ab  gcc/testsuite/gcc.dg/gomp/appendix-a/a.33.1.c
! 05fe856f4e1bede0a5550556fbe628f1  gcc/testsuite/gcc.dg/gomp/appendix-a/a.33.2.c
  f042c1ea359c6163e90c08ec6a8ce159  gcc/testsuite/gcc.dg/gomp/appendix-a/a.34.1.c
  128d64b60414894b162f19ab71d5d2c3  gcc/testsuite/gcc.dg/gomp/appendix-a/a.34.2.c
  25be279d4a4ad1581f1c7ee08b4ec035  gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.1.c
*************** acb5ff1fe34bdf360b3e8e1e27057c7c  gcc/te
*** 46984,46993 ****
  83fc5a160131e46d52401ed9a0270d52  gcc/testsuite/gcc.dg/gomp/asm-1.c
  c621352105a88501ea8e5c4fc6e9fcba  gcc/testsuite/gcc.dg/gomp/atomic-5.c
  22d57060102bd3c8f22f99655931b078  gcc/testsuite/gcc.dg/gomp/atomic-6.c
! 9d5e328cfe678cb16eabf676b756fc19  gcc/testsuite/gcc.dg/gomp/attrs-1.c
  59f5d245f76bec29ae3b105889cee234  gcc/testsuite/gcc.dg/gomp/attrs-10.c
  376224e439fd43dc8fa95175058f50bc  gcc/testsuite/gcc.dg/gomp/attrs-11.c
! e8b616706b9c40849f964ad4a202b00e  gcc/testsuite/gcc.dg/gomp/attrs-12.c
  084158cc52f11341a8fbb96431709d68  gcc/testsuite/gcc.dg/gomp/attrs-13.c
  66527d497a633f14d7da5a413d20e745  gcc/testsuite/gcc.dg/gomp/attrs-14.c
  aa260eb274881fa02bada2bc687fdf65  gcc/testsuite/gcc.dg/gomp/attrs-15.c
--- 55689,55698 ----
  83fc5a160131e46d52401ed9a0270d52  gcc/testsuite/gcc.dg/gomp/asm-1.c
  c621352105a88501ea8e5c4fc6e9fcba  gcc/testsuite/gcc.dg/gomp/atomic-5.c
  22d57060102bd3c8f22f99655931b078  gcc/testsuite/gcc.dg/gomp/atomic-6.c
! f2627dd496e5491c43423befc896bc76  gcc/testsuite/gcc.dg/gomp/attrs-1.c
  59f5d245f76bec29ae3b105889cee234  gcc/testsuite/gcc.dg/gomp/attrs-10.c
  376224e439fd43dc8fa95175058f50bc  gcc/testsuite/gcc.dg/gomp/attrs-11.c
! 10471f1fe55a09d9cc36bc88bc9355a4  gcc/testsuite/gcc.dg/gomp/attrs-12.c
  084158cc52f11341a8fbb96431709d68  gcc/testsuite/gcc.dg/gomp/attrs-13.c
  66527d497a633f14d7da5a413d20e745  gcc/testsuite/gcc.dg/gomp/attrs-14.c
  aa260eb274881fa02bada2bc687fdf65  gcc/testsuite/gcc.dg/gomp/attrs-15.c
*************** e340eb07b9f188f317bb98a5577daa45  gcc/te
*** 46995,47010 ****
  744a1509f5ab693bd510c6b74a4cff45  gcc/testsuite/gcc.dg/gomp/attrs-17.c
  9bbc6b1d4ebe68b61a8f02c75f95fb66  gcc/testsuite/gcc.dg/gomp/attrs-18.c
  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
  803d262323a774183d3eae0af96fee8d  gcc/testsuite/gcc.dg/gomp/attrs-8.c
! 948a086fc4c6d2178ab6e46fcdc486c3  gcc/testsuite/gcc.dg/gomp/attrs-9.c
  a1f891c5f0f993b065eb9127f4ee7b48  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-1.c
  80778aa54c71da9bdae48d0379f97195  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-2.c
  60b339df3891e877c545e9053ad60cf5  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-3.c
--- 55700,55715 ----
  744a1509f5ab693bd510c6b74a4cff45  gcc/testsuite/gcc.dg/gomp/attrs-17.c
  9bbc6b1d4ebe68b61a8f02c75f95fb66  gcc/testsuite/gcc.dg/gomp/attrs-18.c
  7be94eac97d57b71b671b087cef568fd  gcc/testsuite/gcc.dg/gomp/attrs-19.c
! 0de5b9714799967f289505473a33b77e  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
! c94e9a88056536f4eb182b39e59b69d5  gcc/testsuite/gcc.dg/gomp/attrs-4.c
! e93da1c9ddd7cc63369ecd94a0e78259  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
  803d262323a774183d3eae0af96fee8d  gcc/testsuite/gcc.dg/gomp/attrs-8.c
! 86969d7192961246d9b23f31e26d0001  gcc/testsuite/gcc.dg/gomp/attrs-9.c
  a1f891c5f0f993b065eb9127f4ee7b48  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-1.c
  80778aa54c71da9bdae48d0379f97195  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-2.c
  60b339df3891e877c545e9053ad60cf5  gcc/testsuite/gcc.dg/gomp/bad-array-section-c-3.c
*************** eb3d22faee81e2f045c308cb5d0e684b  gcc/te
*** 47016,47033 ****
  5bdf2d77d1853d97a643ac387a3d4898  gcc/testsuite/gcc.dg/gomp/barrier-1.c
  4cc557fc04cdc32100defee25270433a  gcc/testsuite/gcc.dg/gomp/barrier-2.c
  23825024eeec4f1d1ec2539c8661d97f  gcc/testsuite/gcc.dg/gomp/block-1.c
! 24937ceae4814ecb18d438678ba39fba  gcc/testsuite/gcc.dg/gomp/block-10.c
  64de75e0ae05fb493c94bd4478f76721  gcc/testsuite/gcc.dg/gomp/block-11.c
  74cfed5ed15ed35dda1f905c2d4d4352  gcc/testsuite/gcc.dg/gomp/block-2.c
  7e23367a32ca91b0c3aaf931300e581c  gcc/testsuite/gcc.dg/gomp/block-3.c
  546fc61745b9a7596ccf9ae67da7be8b  gcc/testsuite/gcc.dg/gomp/block-4.c
! 7d48803787049e31369b0f411af741c7  gcc/testsuite/gcc.dg/gomp/block-5.c
  836974bc19e48b4ba237e9be1404d281  gcc/testsuite/gcc.dg/gomp/block-6.c
  b6791d2dc8bbcd1cde186bf6d48381b1  gcc/testsuite/gcc.dg/gomp/block-7.c
  9d8e30eba0019473bc7e43fcdc6b48c1  gcc/testsuite/gcc.dg/gomp/block-8.c
! 79682352a0c94e668e3de0e2a7fa1c22  gcc/testsuite/gcc.dg/gomp/block-9.c
  4910624b952a49e6626cc2f12abebbbf  gcc/testsuite/gcc.dg/gomp/cancel-1.c
! 5c863da63bc2a44607b745b56d4373e8  gcc/testsuite/gcc.dg/gomp/clause-1.c
  c7d834ccfdd2998d05058b9180e9a6e9  gcc/testsuite/gcc.dg/gomp/clause-2.c
  35f32eab0b4f5b2fd922d3d1706043d6  gcc/testsuite/gcc.dg/gomp/collapse-1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/gomp/combined-1.c
--- 55721,55738 ----
  5bdf2d77d1853d97a643ac387a3d4898  gcc/testsuite/gcc.dg/gomp/barrier-1.c
  4cc557fc04cdc32100defee25270433a  gcc/testsuite/gcc.dg/gomp/barrier-2.c
  23825024eeec4f1d1ec2539c8661d97f  gcc/testsuite/gcc.dg/gomp/block-1.c
! 6c8bd39765cc2b3f677aefe68eb00ab1  gcc/testsuite/gcc.dg/gomp/block-10.c
  64de75e0ae05fb493c94bd4478f76721  gcc/testsuite/gcc.dg/gomp/block-11.c
  74cfed5ed15ed35dda1f905c2d4d4352  gcc/testsuite/gcc.dg/gomp/block-2.c
  7e23367a32ca91b0c3aaf931300e581c  gcc/testsuite/gcc.dg/gomp/block-3.c
  546fc61745b9a7596ccf9ae67da7be8b  gcc/testsuite/gcc.dg/gomp/block-4.c
! 6b4cdb863ee97db6dcf84a0ba8acd1e1  gcc/testsuite/gcc.dg/gomp/block-5.c
  836974bc19e48b4ba237e9be1404d281  gcc/testsuite/gcc.dg/gomp/block-6.c
  b6791d2dc8bbcd1cde186bf6d48381b1  gcc/testsuite/gcc.dg/gomp/block-7.c
  9d8e30eba0019473bc7e43fcdc6b48c1  gcc/testsuite/gcc.dg/gomp/block-8.c
! 613aad86ea0efe67ed061400b388cb92  gcc/testsuite/gcc.dg/gomp/block-9.c
  4910624b952a49e6626cc2f12abebbbf  gcc/testsuite/gcc.dg/gomp/cancel-1.c
! 33cc69d683f6197768c3d727603a421e  gcc/testsuite/gcc.dg/gomp/clause-1.c
  c7d834ccfdd2998d05058b9180e9a6e9  gcc/testsuite/gcc.dg/gomp/clause-2.c
  35f32eab0b4f5b2fd922d3d1706043d6  gcc/testsuite/gcc.dg/gomp/collapse-1.c
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/gomp/combined-1.c
*************** a711c9451bdf512fdc17116c6ecdc398  gcc/te
*** 47037,47049 ****
  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
--- 55742,55760 ----
  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
+ 7b2543468f17a89ea0ff9cf4f888aa5f  gcc/testsuite/gcc.dg/gomp/declare-mapper-10.c
+ f8f36c2928f3dc4295a92789d3d12a13  gcc/testsuite/gcc.dg/gomp/declare-mapper-11.c
+ 352a35f47290ab485f720463b95f6818  gcc/testsuite/gcc.dg/gomp/declare-mapper-13.c
  9855504c29153e58227e4911a1d26e10  gcc/testsuite/gcc.dg/gomp/declare-simd-1.c
  dbf4fad9a516a5e21a83632a1bc47d48  gcc/testsuite/gcc.dg/gomp/declare-simd-2.c
! c55b2e6efe68494c18d8c4156c6b12b6  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
+ 152a743c8e1c85299fd27e5eb3a7af96  gcc/testsuite/gcc.dg/gomp/declare-variant-3.c
+ ccce92068aaec4ffe8e3c1817beae292  gcc/testsuite/gcc.dg/gomp/deprecate-1.c
+ d72b55aefb31276fa8a6bd1fcdd9c071  gcc/testsuite/gcc.dg/gomp/deprecate-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
*************** d04c18e8518877b08e0371599b6643ed  gcc/te
*** 47079,47101 ****
  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
  a4271cf7824f2a837486e7951ee23884  gcc/testsuite/gcc.dg/gomp/macro-1.c
  eabb0107af4ef893414bb3cef506ad03  gcc/testsuite/gcc.dg/gomp/macro-2.c
  0d468ea6d8d3343f4663748bf3bf83ac  gcc/testsuite/gcc.dg/gomp/macro-3.c
! d77e47d829660c96c43f189c259292a5  gcc/testsuite/gcc.dg/gomp/macro-4.c
! 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
  42242e5f88e1b5f1a49c9fb6ca8bd64a  gcc/testsuite/gcc.dg/gomp/notify-new-function-3.c
  33fdbcf36749189e365ff8da25f16925  gcc/testsuite/gcc.dg/gomp/notify-new-function.c
--- 55790,55813 ----
  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
! 57f07c5aecfe802ea15d2797c3ddd451  gcc/testsuite/gcc.dg/gomp/gomp.exp
! ebbc854baa805bfd34a95a315f2fec38  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
  a4271cf7824f2a837486e7951ee23884  gcc/testsuite/gcc.dg/gomp/macro-1.c
  eabb0107af4ef893414bb3cef506ad03  gcc/testsuite/gcc.dg/gomp/macro-2.c
  0d468ea6d8d3343f4663748bf3bf83ac  gcc/testsuite/gcc.dg/gomp/macro-3.c
! 706fb6a671ca86d26b60cc558688ef85  gcc/testsuite/gcc.dg/gomp/macro-4.c
! abe9cc810a50c25d083acf1f31acb657  gcc/testsuite/gcc.dg/gomp/map-csm-dep.c
! 5c8b0bdcf46581b6d311c7c9f2c7e6a4  gcc/testsuite/gcc.dg/gomp/master-1.c
! 87fd0cb2d893aee0d5e5833dba0b5f3d  gcc/testsuite/gcc.dg/gomp/master-2.c
! dd514aae0118659f75fd79ba54dffbc9  gcc/testsuite/gcc.dg/gomp/master-3.c
  8ec8b9b7973df31c9332b5f69c4e940d  gcc/testsuite/gcc.dg/gomp/max_vf-1.c
! 1109ad1c64c1e236bb22f8c492a6c3dd  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
! ba4a4b612fe2da8d0104b8f992d036bc  gcc/testsuite/gcc.dg/gomp/nesting-1.c
  b8a262a38fc2393baa245eefd42cb523  gcc/testsuite/gcc.dg/gomp/notify-new-function-2.c
  42242e5f88e1b5f1a49c9fb6ca8bd64a  gcc/testsuite/gcc.dg/gomp/notify-new-function-3.c
  33fdbcf36749189e365ff8da25f16925  gcc/testsuite/gcc.dg/gomp/notify-new-function.c
*************** d7769c446568c18d557180c850cf3b4a  gcc/te
*** 47111,47122 ****
  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
! 886891c0b0bbb38214a01a9e71882530  gcc/testsuite/gcc.dg/gomp/pr104517.c
  cd38ec3195ea21395e6d6950ff620410  gcc/testsuite/gcc.dg/gomp/pr104532.c
! 0c8d7b49664fa54dbd4054b13e8a3133  gcc/testsuite/gcc.dg/gomp/pr104757.c
  a633f425b4fdde0a7b6f0aa6aa2f2754  gcc/testsuite/gcc.dg/gomp/pr108435.c
! 20a3ca0acce7dbf1520d374c9470fc34  gcc/testsuite/gcc.dg/gomp/pr110485.c
  7d1b62adb42c340855e993cf480a19ec  gcc/testsuite/gcc.dg/gomp/pr114075.c
  7a163e65fe52b23fc85f2daa18c442ee  gcc/testsuite/gcc.dg/gomp/pr25874.c
  597de3ed24e1bc1c650af918589d83c3  gcc/testsuite/gcc.dg/gomp/pr25989.c
  0bd3e8dc860de61dd8e09229c090e1f5  gcc/testsuite/gcc.dg/gomp/pr25990.c
--- 55823,55836 ----
  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
! b1214c5a563a503de27f1a26efe2c8d5  gcc/testsuite/gcc.dg/gomp/pr104517.c
  cd38ec3195ea21395e6d6950ff620410  gcc/testsuite/gcc.dg/gomp/pr104532.c
! 4353955ae562044ee8f04ce54dcc72d6  gcc/testsuite/gcc.dg/gomp/pr104757.c
  a633f425b4fdde0a7b6f0aa6aa2f2754  gcc/testsuite/gcc.dg/gomp/pr108435.c
! e3e4142185603ce8e378d6382feeb5b4  gcc/testsuite/gcc.dg/gomp/pr110485.c
  7d1b62adb42c340855e993cf480a19ec  gcc/testsuite/gcc.dg/gomp/pr114075.c
+ ec1d4016ba60492b723014b99d2804e6  gcc/testsuite/gcc.dg/gomp/pr121453.c
+ c80489ac8415077c5335cf251371d6e9  gcc/testsuite/gcc.dg/gomp/pr123876.c
  7a163e65fe52b23fc85f2daa18c442ee  gcc/testsuite/gcc.dg/gomp/pr25874.c
  597de3ed24e1bc1c650af918589d83c3  gcc/testsuite/gcc.dg/gomp/pr25989.c
  0bd3e8dc860de61dd8e09229c090e1f5  gcc/testsuite/gcc.dg/gomp/pr25990.c
*************** d7b0a14ad2e9881fe4ffe9b30f36c3a8  gcc/te
*** 47134,47140 ****
  5cc6c0ce1caf9ae58fd5942e57a40a0b  gcc/testsuite/gcc.dg/gomp/pr29955.c
  c5ee594378ac792cf2fff87af7a358ea  gcc/testsuite/gcc.dg/gomp/pr29965-1.c
  884b807214b7af5973de23b25df484e2  gcc/testsuite/gcc.dg/gomp/pr29965-2.c
! 6098040ee2b261719e67beb1cd7d79b4  gcc/testsuite/gcc.dg/gomp/pr29965-3.c
  8e42dd5f80e8bc2ea521bfc0f4632d64  gcc/testsuite/gcc.dg/gomp/pr29965-4.c
  caf3f8d640964957534f8b2c392515a6  gcc/testsuite/gcc.dg/gomp/pr29965-5.c
  35ff646abf77150705de53d2e8018b6b  gcc/testsuite/gcc.dg/gomp/pr29965-6.c
--- 55848,55854 ----
  5cc6c0ce1caf9ae58fd5942e57a40a0b  gcc/testsuite/gcc.dg/gomp/pr29955.c
  c5ee594378ac792cf2fff87af7a358ea  gcc/testsuite/gcc.dg/gomp/pr29965-1.c
  884b807214b7af5973de23b25df484e2  gcc/testsuite/gcc.dg/gomp/pr29965-2.c
! ac19277214a5bb3ef428488d44668aa7  gcc/testsuite/gcc.dg/gomp/pr29965-3.c
  8e42dd5f80e8bc2ea521bfc0f4632d64  gcc/testsuite/gcc.dg/gomp/pr29965-4.c
  caf3f8d640964957534f8b2c392515a6  gcc/testsuite/gcc.dg/gomp/pr29965-5.c
  35ff646abf77150705de53d2e8018b6b  gcc/testsuite/gcc.dg/gomp/pr29965-6.c
*************** cc8041c6e88604cf0785123c6ef16e67  gcc/te
*** 47152,47158 ****
  0f030aafac8100358252c6446ec01a30  gcc/testsuite/gcc.dg/gomp/pr35738-2.c
  99adef961edcdf5b725c34919712904a  gcc/testsuite/gcc.dg/gomp/pr35738.c
  e1692d27d5d26cefebe4fc393c15fddb  gcc/testsuite/gcc.dg/gomp/pr35751.c
! ca3e6f1780ac0a60027cbe93e57cbbf1  gcc/testsuite/gcc.dg/gomp/pr35818.c
  69a2450c0fa691c572e271fe41d1b4e7  gcc/testsuite/gcc.dg/gomp/pr36790.c
  66a71e605a69356e168b6840b1cfe6f1  gcc/testsuite/gcc.dg/gomp/pr38633.c
  514cd6cfd6d72a935e5dbc2d1b3609f4  gcc/testsuite/gcc.dg/gomp/pr38676.c
--- 55866,55872 ----
  0f030aafac8100358252c6446ec01a30  gcc/testsuite/gcc.dg/gomp/pr35738-2.c
  99adef961edcdf5b725c34919712904a  gcc/testsuite/gcc.dg/gomp/pr35738.c
  e1692d27d5d26cefebe4fc393c15fddb  gcc/testsuite/gcc.dg/gomp/pr35751.c
! 9c64e09d966dc737ab1881e2c3bf0ca8  gcc/testsuite/gcc.dg/gomp/pr35818.c
  69a2450c0fa691c572e271fe41d1b4e7  gcc/testsuite/gcc.dg/gomp/pr36790.c
  66a71e605a69356e168b6840b1cfe6f1  gcc/testsuite/gcc.dg/gomp/pr38633.c
  514cd6cfd6d72a935e5dbc2d1b3609f4  gcc/testsuite/gcc.dg/gomp/pr38676.c
*************** ef3626bfd9a01c1b3e4b0d6ca7d55c1a  gcc/te
*** 47206,47212 ****
  37d75bd2c93a4769c375069e84c59ff3  gcc/testsuite/gcc.dg/gomp/pr90637.c
  7b7c5619e17caf4ff7de95c0ea515fde  gcc/testsuite/gcc.dg/gomp/pr90900.c
  05d60743092504cb97cd1b69bc287d30  gcc/testsuite/gcc.dg/gomp/pr91063.c
! ed760ac8f4b74b9e23f9f524135a1729  gcc/testsuite/gcc.dg/gomp/pr91216.c
  c5e93f26d77634fb8db0acbd556b6ce8  gcc/testsuite/gcc.dg/gomp/pr92557.c
  d3c061d3fd7dc8cf903b23054af3c7ea  gcc/testsuite/gcc.dg/gomp/pr95108.c
  da512b545678729b0d7bcd5bacb007b4  gcc/testsuite/gcc.dg/gomp/pr95315-2.c
--- 55920,55926 ----
  37d75bd2c93a4769c375069e84c59ff3  gcc/testsuite/gcc.dg/gomp/pr90637.c
  7b7c5619e17caf4ff7de95c0ea515fde  gcc/testsuite/gcc.dg/gomp/pr90900.c
  05d60743092504cb97cd1b69bc287d30  gcc/testsuite/gcc.dg/gomp/pr91063.c
! 62a91c16c4027e5bb2fa4bc829e57754  gcc/testsuite/gcc.dg/gomp/pr91216.c
  c5e93f26d77634fb8db0acbd556b6ce8  gcc/testsuite/gcc.dg/gomp/pr92557.c
  d3c061d3fd7dc8cf903b23054af3c7ea  gcc/testsuite/gcc.dg/gomp/pr95108.c
  da512b545678729b0d7bcd5bacb007b4  gcc/testsuite/gcc.dg/gomp/pr95315-2.c
*************** f027428463eb3710e7fbcd6d2994dcdc  gcc/te
*** 47227,47233 ****
  b72fe99f861779472bd3b1cf3587d478  gcc/testsuite/gcc.dg/gomp/sections-3.c
  9f60edc949854690c68fa7fb1e8b3157  gcc/testsuite/gcc.dg/gomp/sections-4.c
  3204cae0e47462621115d4cebb22d26d  gcc/testsuite/gcc.dg/gomp/sharing-1.c
! a7ac9c7250e12a3e2fa3681701b90c4f  gcc/testsuite/gcc.dg/gomp/sharing-2.c
  883a70127feb584b7b7699b066cd3ee5  gcc/testsuite/gcc.dg/gomp/sharing-3.c
  5202c32cea52b95c1af73171cd56c299  gcc/testsuite/gcc.dg/gomp/simd-1.c
  126d0fa445584b17786d97ff1868b4b2  gcc/testsuite/gcc.dg/gomp/simd-2.c
--- 55941,55947 ----
  b72fe99f861779472bd3b1cf3587d478  gcc/testsuite/gcc.dg/gomp/sections-3.c
  9f60edc949854690c68fa7fb1e8b3157  gcc/testsuite/gcc.dg/gomp/sections-4.c
  3204cae0e47462621115d4cebb22d26d  gcc/testsuite/gcc.dg/gomp/sharing-1.c
! cc9c3bf36a2258391cc3f744beab5e1f  gcc/testsuite/gcc.dg/gomp/sharing-2.c
  883a70127feb584b7b7699b066cd3ee5  gcc/testsuite/gcc.dg/gomp/sharing-3.c
  5202c32cea52b95c1af73171cd56c299  gcc/testsuite/gcc.dg/gomp/simd-1.c
  126d0fa445584b17786d97ff1868b4b2  gcc/testsuite/gcc.dg/gomp/simd-2.c
*************** c14634a323696079f49ec83c65002f01  gcc/te
*** 47240,47261 ****
  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
! 2c7c35d918725944cf4998bb474f579d  gcc/testsuite/gcc.dg/gomp/static-chunk-size-one.c
  871d2afbf0f76e5d008f733eaf14a059  gcc/testsuite/gcc.dg/gomp/static.c
  0e4b88bcdaea3e0ec538494446e27cde  gcc/testsuite/gcc.dg/gomp/target-1.c
  3dbda1e12ff1651f658704d415f7e84f  gcc/testsuite/gcc.dg/gomp/target-2.c
  f4db87341b852ee623c705e71718a425  gcc/testsuite/gcc.dg/gomp/target-3.c
! 75d44dfc9bd2f54678db46f137d93851  gcc/testsuite/gcc.dg/gomp/target-simd-clone-1.c
! 790750059a6e05605748d80ed13b2533  gcc/testsuite/gcc.dg/gomp/target-simd-clone-2.c
! 197a8cb4f6ec466d5b1a893b782ca807  gcc/testsuite/gcc.dg/gomp/target-simd-clone-3.c
! 2001adac7fd0443995c870d016dc942c  gcc/testsuite/gcc.dg/gomp/target-simd-clone-4.c
! 3fbd6734676ad4d7e53588b62f00ad50  gcc/testsuite/gcc.dg/gomp/target-simd-clone-5.c
! a7bf6ee9fa703ae99b4686c9b2f89e6a  gcc/testsuite/gcc.dg/gomp/target-simd-clone-6.c
! 519a7ee0f368b6e5458c6dc8e908c57d  gcc/testsuite/gcc.dg/gomp/target-simd-clone-7.c
! 4194b833734d9667d0af0a863e2a97a3  gcc/testsuite/gcc.dg/gomp/target-simd-clone-8.c
  f2e9b1993ad0ade2480d28889a6b9b76  gcc/testsuite/gcc.dg/gomp/task-detach-1.c
  4741c3d5f20c56daf5979276c5b6f618  gcc/testsuite/gcc.dg/gomp/taskgroup-1.c
  b98a2bc5c4eb574a9dd2efa360dc67c3  gcc/testsuite/gcc.dg/gomp/teams-1.c
--- 55954,55975 ----
  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
! 98dbbd197e8c7c832cd21e157df3bf0e  gcc/testsuite/gcc.dg/gomp/sink-fold-1.c
! 30b3501cdbf4af67a36f7003998e9d4b  gcc/testsuite/gcc.dg/gomp/sink-fold-2.c
! 606fbcb4bc3e953e4f15ee070118b30f  gcc/testsuite/gcc.dg/gomp/sink-fold-3.c
! 70a7ec49c02ac39036b5861d1f2c0e08  gcc/testsuite/gcc.dg/gomp/static-chunk-size-one.c
  871d2afbf0f76e5d008f733eaf14a059  gcc/testsuite/gcc.dg/gomp/static.c
  0e4b88bcdaea3e0ec538494446e27cde  gcc/testsuite/gcc.dg/gomp/target-1.c
  3dbda1e12ff1651f658704d415f7e84f  gcc/testsuite/gcc.dg/gomp/target-2.c
  f4db87341b852ee623c705e71718a425  gcc/testsuite/gcc.dg/gomp/target-3.c
! e8502240a53ed3691cccc3dfbd31284c  gcc/testsuite/gcc.dg/gomp/target-simd-clone-1.c
! 6bec24e1f2fb1a11acdc41a081184974  gcc/testsuite/gcc.dg/gomp/target-simd-clone-2.c
! 0cf064bf89a3e78761424f019fe51930  gcc/testsuite/gcc.dg/gomp/target-simd-clone-3.c
! 60e08c424f42790add8c9ca492896b3b  gcc/testsuite/gcc.dg/gomp/target-simd-clone-4.c
! 9f03362a6c45246370042a9c83e1b5e3  gcc/testsuite/gcc.dg/gomp/target-simd-clone-5.c
! b1358972fe2a10fb26da61e7d1eb740f  gcc/testsuite/gcc.dg/gomp/target-simd-clone-6.c
! 1fcb9f31332b993a1244cbb24cc39abf  gcc/testsuite/gcc.dg/gomp/target-simd-clone-7.c
! 4c762abb1d209e8caf3d872571b59130  gcc/testsuite/gcc.dg/gomp/target-simd-clone-8.c
  f2e9b1993ad0ade2480d28889a6b9b76  gcc/testsuite/gcc.dg/gomp/task-detach-1.c
  4741c3d5f20c56daf5979276c5b6f618  gcc/testsuite/gcc.dg/gomp/taskgroup-1.c
  b98a2bc5c4eb574a9dd2efa360dc67c3  gcc/testsuite/gcc.dg/gomp/teams-1.c
*************** b67cfbf3900e01ed3c366e88b3a04171  gcc/te
*** 47263,47271 ****
  cd8b1db623a07d865bb9a34cd8affe37  gcc/testsuite/gcc.dg/gomp/tls-2.c
  f0694a8a27ae0ef269767479c6b54201  gcc/testsuite/gcc.dg/gomp/udr-1.c
  84f6fddc1b541b53471d9bd5725c75db  gcc/testsuite/gcc.dg/gomp/udr-2.c
! ce7f414e0b315f56a4c5e6b6f61c2ddf  gcc/testsuite/gcc.dg/gomp/udr-3.c
  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
--- 55977,55986 ----
  cd8b1db623a07d865bb9a34cd8affe37  gcc/testsuite/gcc.dg/gomp/tls-2.c
  f0694a8a27ae0ef269767479c6b54201  gcc/testsuite/gcc.dg/gomp/udr-1.c
  84f6fddc1b541b53471d9bd5725c75db  gcc/testsuite/gcc.dg/gomp/udr-2.c
! 5aaa2dbf78fff9702e257e3058fc3441  gcc/testsuite/gcc.dg/gomp/udr-3.c
  79c19553e59dc76750e93a7bd9060361  gcc/testsuite/gcc.dg/gomp/udr-4.c
  cc2e57695051196863b0f1a101527357  gcc/testsuite/gcc.dg/gomp/uninit-1.c
+ e91b375d195d25c2b5c0c8d16a68e0bc  gcc/testsuite/gcc.dg/gomp/unprototyped-variant.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
*************** cfedaaddfeda77968993663f7e37987f  gcc/te
*** 47321,47330 ****
  2938bd0a5bdc45475d35a26d96c71ca6  gcc/testsuite/gcc.dg/gomp/workshare-reduction-52.c
  4e398d4d5909351ef9752a02f04b6f71  gcc/testsuite/gcc.dg/gomp/workshare-reduction-53.c
  19ae01668faaef04b6a995fddccb377b  gcc/testsuite/gcc.dg/gomp/workshare-reduction-54.c
! fa859d3c8dc0edd7717a5700534778a1  gcc/testsuite/gcc.dg/gomp/workshare-reduction-55.c
! dbdd021233f94e550403b75f2bdf6dd1  gcc/testsuite/gcc.dg/gomp/workshare-reduction-56.c
! de49b65eb2b8668c892c47f076f60c68  gcc/testsuite/gcc.dg/gomp/workshare-reduction-57.c
! 081e8310d38bea80390bae918c6ca77f  gcc/testsuite/gcc.dg/gomp/workshare-reduction-58.c
  aba8a8e26f208ee83ae63af77603e8c1  gcc/testsuite/gcc.dg/gomp/workshare-reduction-6.c
  b835bdff50415240205741c1ff82e34c  gcc/testsuite/gcc.dg/gomp/workshare-reduction-7.c
  c5bb6915ffe79aed2ac1d1472ee37b04  gcc/testsuite/gcc.dg/gomp/workshare-reduction-8.c
--- 56036,56045 ----
  2938bd0a5bdc45475d35a26d96c71ca6  gcc/testsuite/gcc.dg/gomp/workshare-reduction-52.c
  4e398d4d5909351ef9752a02f04b6f71  gcc/testsuite/gcc.dg/gomp/workshare-reduction-53.c
  19ae01668faaef04b6a995fddccb377b  gcc/testsuite/gcc.dg/gomp/workshare-reduction-54.c
! 747c4362af917b0027514e6d0ad5bd7b  gcc/testsuite/gcc.dg/gomp/workshare-reduction-55.c
! 78251ec49e1fd8aeac2d19dc9fe148aa  gcc/testsuite/gcc.dg/gomp/workshare-reduction-56.c
! 5baba9399f3982d1ef2ee525754b6260  gcc/testsuite/gcc.dg/gomp/workshare-reduction-57.c
! e4de04760de37e3677079032387c18e5  gcc/testsuite/gcc.dg/gomp/workshare-reduction-58.c
  aba8a8e26f208ee83ae63af77603e8c1  gcc/testsuite/gcc.dg/gomp/workshare-reduction-6.c
  b835bdff50415240205741c1ff82e34c  gcc/testsuite/gcc.dg/gomp/workshare-reduction-7.c
  c5bb6915ffe79aed2ac1d1472ee37b04  gcc/testsuite/gcc.dg/gomp/workshare-reduction-8.c
*************** d52311b9c131d936e432ecb0ead28e52  gcc/te
*** 47340,47353 ****
  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
--- 56055,56068 ----
  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
! 414f89b5866ece38c44348166986acc7  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
! 882bd1f62ad16a8234ca13dd2fd38306  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
*************** dc4ea50a2b8b5f8a90e7ca48cfc84e1d  gcc/te
*** 47362,47368 ****
  f4f91bfeddd48d931aa70678eff73a93  gcc/testsuite/gcc.dg/graphite/id-27.c
  cf10dc340bbc3af2672f86cf3ba235f7  gcc/testsuite/gcc.dg/graphite/id-29.c
  c1da01b3cb61caad476700b8df79f79b  gcc/testsuite/gcc.dg/graphite/id-3.c
! 4c6aab07b311a809beeaf2cecd8161d9  gcc/testsuite/gcc.dg/graphite/id-30.c
  84d69bc8bd9b435df3a4cbc2118e51d3  gcc/testsuite/gcc.dg/graphite/id-4.c
  c612c58f0d4611e434d9a1fa1181dc54  gcc/testsuite/gcc.dg/graphite/id-5.c
  8d8ced72fff3502352fe11a215e629e8  gcc/testsuite/gcc.dg/graphite/id-6.c
--- 56077,56083 ----
  f4f91bfeddd48d931aa70678eff73a93  gcc/testsuite/gcc.dg/graphite/id-27.c
  cf10dc340bbc3af2672f86cf3ba235f7  gcc/testsuite/gcc.dg/graphite/id-29.c
  c1da01b3cb61caad476700b8df79f79b  gcc/testsuite/gcc.dg/graphite/id-3.c
! faaf8935561d4820fdc6e67afd538bb2  gcc/testsuite/gcc.dg/graphite/id-30.c
  84d69bc8bd9b435df3a4cbc2118e51d3  gcc/testsuite/gcc.dg/graphite/id-4.c
  c612c58f0d4611e434d9a1fa1181dc54  gcc/testsuite/gcc.dg/graphite/id-5.c
  8d8ced72fff3502352fe11a215e629e8  gcc/testsuite/gcc.dg/graphite/id-6.c
*************** b9aafcde73d659e8a8f12aec94a7cb09  gcc/te
*** 47632,47639 ****
  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
  04fe16ddebdaa6c28737262d0bc304de  gcc/testsuite/gcc.dg/guality/ipa-sra-1.c
--- 56347,56354 ----
  46fe10dc7c2a1b21f0d7af66c601ad44  gcc/testsuite/gcc.dg/guality/drap.c
  35524176317603e370c0e34f6d8bd9ae  gcc/testsuite/gcc.dg/guality/example.c
  163a14c7ee9331fc07d3026f1cde9d39  gcc/testsuite/gcc.dg/guality/guality.c
! 9d932888c53d0861ed741956748848d4  gcc/testsuite/gcc.dg/guality/guality.exp
! bba006bb14e8c87a0c0ad605f571cf68  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
  04fe16ddebdaa6c28737262d0bc304de  gcc/testsuite/gcc.dg/guality/ipa-sra-1.c
*************** d4d46f0bcf41225e72b23884cc6722bb  gcc/te
*** 47737,47746 ****
  4145640799f181a64b6a3215e095230c  gcc/testsuite/gcc.dg/heap-trampoline-1.c
  47a19efbf7957f2fc0bb31a641354fe3  gcc/testsuite/gcc.dg/hex-round-1.c
  beabf14243b2b65800f0733144ef725e  gcc/testsuite/gcc.dg/hex-round-2.c
! 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
--- 56452,56467 ----
  4145640799f181a64b6a3215e095230c  gcc/testsuite/gcc.dg/heap-trampoline-1.c
  47a19efbf7957f2fc0bb31a641354fe3  gcc/testsuite/gcc.dg/hex-round-1.c
  beabf14243b2b65800f0733144ef725e  gcc/testsuite/gcc.dg/hex-round-2.c
! e53c319fb18841f9ab1a6ffdba8fbe8a  gcc/testsuite/gcc.dg/hierarchical-discriminator-loop-version.c
! 47c273e8b92553aced918fabe93f193e  gcc/testsuite/gcc.dg/hierarchical-discriminator-unroll.c
! 2bd4cb42a014c0c267c5772f1b188e25  gcc/testsuite/gcc.dg/hierarchical-discriminator-vect-version.c
! f1b7ee466e0b8a46506eb8961e978791  gcc/testsuite/gcc.dg/hoist-register-pressure-1.c
! 84c59d235cc9b07db93fa6a429d5acdc  gcc/testsuite/gcc.dg/hoist-register-pressure-2.c
! 4ef804ff2cb0d89ce76e288be1a3345d  gcc/testsuite/gcc.dg/hoist-register-pressure-3.c
! 698351b52fb9271b564cb85d3f50e4d9  gcc/testsuite/gcc.dg/html-output/html-output.exp
! a018345881bf4270a8876a6eeba3dbd1  gcc/testsuite/gcc.dg/html-output/missing-semicolon.c
! 1738400167da7a01fff515e4fb1fc285  gcc/testsuite/gcc.dg/html-output/missing-semicolon.py
! 8e1e3c815a32f9bfa55fd0281e1e02fb  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
*** 47762,47768 ****
  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
--- 56483,56489 ----
  3fcd24000493dccbffcab8d7f571db16  gcc/testsuite/gcc.dg/ifcvt-1.c
  788cdc139607df186471194c57393d9b  gcc/testsuite/gcc.dg/ifcvt-2.c
  1406d8ef80fc3e9a51abb05637775214  gcc/testsuite/gcc.dg/ifcvt-3.c
! be46d80022e13a076753467f8f1afcb4  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
*************** c98bd8084443af9809a9b85283a91966  gcc/te
*** 47855,47860 ****
--- 56576,56583 ----
  50e20d44cf899b50a377dfbe7b59c8e6  gcc/testsuite/gcc.dg/instrument-2.c
  0d49d6b891baf686b7989dc2f3e27fd4  gcc/testsuite/gcc.dg/instrument-3.c
  6077153710c7f48ed85417e157b3a87e  gcc/testsuite/gcc.dg/instrument-4.c
+ 963b69ae1db3b89a567c14d649ec5c41  gcc/testsuite/gcc.dg/int-bwise-opt-1.c
+ 93fdb4b353fe6ff68d0f24593d0c967c  gcc/testsuite/gcc.dg/int-bwise-opt-2.c
  a481d0a49a4bf2aa98254e8df226bcd5  gcc/testsuite/gcc.dg/intermod-1.c
  22557d653f291c76fc7092fa90747b0a  gcc/testsuite/gcc.dg/intmax_t-1.c
  623aed8859c8d8790d8542fcad873744  gcc/testsuite/gcc.dg/invalid-call-1.c
*************** d4c1a7113a33d3c2137dc2348b102dc0  gcc/te
*** 47872,47878 ****
  43d5c0e314a3292dcc193afd2be619bf  gcc/testsuite/gcc.dg/ipa/iinline-5.c
  c7f0626e05751d9c20b2246acd8fee16  gcc/testsuite/gcc.dg/ipa/iinline-6.c
  9cdfc8f1f86ba8ace89ecfd4d060e448  gcc/testsuite/gcc.dg/ipa/iinline-7.c
! f46b592a81a9f58646c56f40d5705a05  gcc/testsuite/gcc.dg/ipa/iinline-attr.c
  b396e5f65410b5143443d020f227239a  gcc/testsuite/gcc.dg/ipa/iinline-cstagg-1.c
  5c4798c50999146427b6978726ba79ca  gcc/testsuite/gcc.dg/ipa/iinline-cstagg-2.c
  7dd63b0614a8121704ba4953d8c90e49  gcc/testsuite/gcc.dg/ipa/inline-1.c
--- 56595,56601 ----
  43d5c0e314a3292dcc193afd2be619bf  gcc/testsuite/gcc.dg/ipa/iinline-5.c
  c7f0626e05751d9c20b2246acd8fee16  gcc/testsuite/gcc.dg/ipa/iinline-6.c
  9cdfc8f1f86ba8ace89ecfd4d060e448  gcc/testsuite/gcc.dg/ipa/iinline-7.c
! 0a0236a87efbc4a56efbeb8d138eae73  gcc/testsuite/gcc.dg/ipa/iinline-attr.c
  b396e5f65410b5143443d020f227239a  gcc/testsuite/gcc.dg/ipa/iinline-cstagg-1.c
  5c4798c50999146427b6978726ba79ca  gcc/testsuite/gcc.dg/ipa/iinline-cstagg-2.c
  7dd63b0614a8121704ba4953d8c90e49  gcc/testsuite/gcc.dg/ipa/inline-1.c
*************** e6abb860376b654b78c23a68c2741729  gcc/te
*** 47905,47910 ****
--- 56628,56634 ----
  86a9990992fcc01dbfcaf9edc8f17ad6  gcc/testsuite/gcc.dg/ipa/ipa-clone-1.c
  62bf4f8be35fb3861ecd4ec28a86fd95  gcc/testsuite/gcc.dg/ipa/ipa-clone-2.c
  283ef27eb9ca69eb6559ad3a16f5a2a4  gcc/testsuite/gcc.dg/ipa/ipa-clone-3.c
+ 1ddf4548bbd975acfb991d99da804187  gcc/testsuite/gcc.dg/ipa/ipa-clone-4.c
  21dac75ea97a14ffe10d8b2ef5d8f98e  gcc/testsuite/gcc.dg/ipa/ipa-icf-1.c
  aad0970c041ba314191663390ed3c676  gcc/testsuite/gcc.dg/ipa/ipa-icf-10.c
  a6af17ee59bc6e0ab3fd8984c6024386  gcc/testsuite/gcc.dg/ipa/ipa-icf-11.c
*************** f389ed7606a4bab674d66dc4dcbd5533  gcc/te
*** 47998,48004 ****
  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
--- 56722,56728 ----
  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
! 30b755a74cd4a0145dc465bc91164770  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
*************** e43488a98150e7c008bf0103c8e4ce76  gcc/te
*** 48011,48019 ****
  69e429cd0f09966a98176cdd47d10f33  gcc/testsuite/gcc.dg/ipa/ipcp-agg-11.c
  f130caee5e1d8d48e06a1ae3dd7dc477  gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
  3082a67a035dc63460c6f4a03a24bd9c  gcc/testsuite/gcc.dg/ipa/ipcp-agg-13.c
! c71233f7e2ddb4a8889ca1fe57ea62cc  gcc/testsuite/gcc.dg/ipa/ipcp-agg-2.c
! b30637ee2dfddd2f33e1f6f41de2efa3  gcc/testsuite/gcc.dg/ipa/ipcp-agg-3.c
! 4a75430bf24423bed7faf54d834e000d  gcc/testsuite/gcc.dg/ipa/ipcp-agg-4.c
  23c0de326784817a77ed7245787492c2  gcc/testsuite/gcc.dg/ipa/ipcp-agg-5.c
  30e84204197f772ab1add837d69909e2  gcc/testsuite/gcc.dg/ipa/ipcp-agg-6.c
  3cbca90b547c38415ee1ca57ae01192c  gcc/testsuite/gcc.dg/ipa/ipcp-agg-7.c
--- 56735,56744 ----
  69e429cd0f09966a98176cdd47d10f33  gcc/testsuite/gcc.dg/ipa/ipcp-agg-11.c
  f130caee5e1d8d48e06a1ae3dd7dc477  gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
  3082a67a035dc63460c6f4a03a24bd9c  gcc/testsuite/gcc.dg/ipa/ipcp-agg-13.c
! bb7f2f542e3c53c649c932741917c6d9  gcc/testsuite/gcc.dg/ipa/ipcp-agg-14.c
! 0a522bb2b027c0d76d28f8eb4616e60e  gcc/testsuite/gcc.dg/ipa/ipcp-agg-2.c
! 060492d5a925bdf719684d42a8b8f80f  gcc/testsuite/gcc.dg/ipa/ipcp-agg-3.c
! 3943c5826b97534617ce1d67d0cd164f  gcc/testsuite/gcc.dg/ipa/ipcp-agg-4.c
  23c0de326784817a77ed7245787492c2  gcc/testsuite/gcc.dg/ipa/ipcp-agg-5.c
  30e84204197f772ab1add837d69909e2  gcc/testsuite/gcc.dg/ipa/ipcp-agg-6.c
  3cbca90b547c38415ee1ca57ae01192c  gcc/testsuite/gcc.dg/ipa/ipcp-agg-7.c
*************** d8f0256cde05093b9738e8287c58d5c3  gcc/te
*** 48073,48079 ****
  e39432b4ae7797e55b13f6d2fd29a4a6  gcc/testsuite/gcc.dg/ipa/pr119852.c
  fc7c9c751d59b444d0ab30c4d9029491  gcc/testsuite/gcc.dg/ipa/pr120044-1.c
  538e5a7542c72b7ea4e4375cbebde001  gcc/testsuite/gcc.dg/ipa/pr120044-2.c
! 3c119ebca762218e529eb71f0df740de  gcc/testsuite/gcc.dg/ipa/pr120295.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
--- 56798,56808 ----
  e39432b4ae7797e55b13f6d2fd29a4a6  gcc/testsuite/gcc.dg/ipa/pr119852.c
  fc7c9c751d59b444d0ab30c4d9029491  gcc/testsuite/gcc.dg/ipa/pr120044-1.c
  538e5a7542c72b7ea4e4375cbebde001  gcc/testsuite/gcc.dg/ipa/pr120044-2.c
! 565d3e382e01fcd9c41e557858bca548  gcc/testsuite/gcc.dg/ipa/pr120295.c
! 2b41b4e284752d0785412cf47f5b3f6d  gcc/testsuite/gcc.dg/ipa/pr122458.c
! 888d33a20f8dcb2d65f085d84f66723e  gcc/testsuite/gcc.dg/ipa/pr123542.c
! 187b807400791bf18a7a1f9f9ce8a4a7  gcc/testsuite/gcc.dg/ipa/pr123543.c
! 72900ba4925dafc06ee62e16c28d6287  gcc/testsuite/gcc.dg/ipa/pr124777.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
*************** fcc7dce8774036ba93e1fe9211b4421d  gcc/te
*** 48163,48168 ****
--- 56892,56898 ----
  2f98d70b4613eb7789fd16ce01458a0a  gcc/testsuite/gcc.dg/ipa/remref-6.c
  a4676419cc3a331d3b9012027515cd35  gcc/testsuite/gcc.dg/ipa/remref-7.c
  930b7aab3d43c8aa2dca624660702723  gcc/testsuite/gcc.dg/ipa/symver1.c
+ 366508dbd765f013a732263eefea64d2  gcc/testsuite/gcc.dg/ipa/vrp-from-cst-agg-1.c
  3c328ddcd5d7a795c5f00f06d206b8e2  gcc/testsuite/gcc.dg/ipa/vrp1.c
  2ab8d962e85eaf6f689f3049f44347b5  gcc/testsuite/gcc.dg/ipa/vrp2.c
  03985c8cc09afefc99b9871d9d7c38ae  gcc/testsuite/gcc.dg/ipa/vrp3.c
*************** ca3258d951d902a684b95b8e188acdd8  gcc/te
*** 48189,48194 ****
--- 56919,56925 ----
  ae7bcf6f4a20a62efe1f640c131c15cb  gcc/testsuite/gcc.dg/large-size-array-6.c
  b9d0331e6e845cb0d7f26561f4753f77  gcc/testsuite/gcc.dg/large-size-array.c
  a1511014730573ca08fa055a4f00aa75  gcc/testsuite/gcc.dg/lazy-ptr-test.c
+ 88851b8cf9c6435c9fd930dcc84939e0  gcc/testsuite/gcc.dg/licm-self-write-partial-alias.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
*************** a7add68c69c48bffecd543855bc97366  gcc/te
*** 48405,48410 ****
--- 57136,57143 ----
  313b5ef23d14915b2a6f61b519f95205  gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c
  8c3a2c4fa0f190c6d2749b5524ab98c4  gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c
  5a674e54883d5de8ea06860e38b0cd2e  gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c
+ 18e88a9f17f78b46c1ce166e48f8d785  gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c
+ 7e33f6cf523487191171fa66361dc197  gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c
  77a8ef1bedade751008154d0c1ea49c8  gcc/testsuite/gcc.dg/lto/c-compatible-types-1_0.c
  2efe9845bc7f2a94bdb6da1ddfe698fc  gcc/testsuite/gcc.dg/lto/c-compatible-types-1_1.c
  fd5005c6fbb07e4f27713809ef1f5759  gcc/testsuite/gcc.dg/lto/chkp-privatize-1_1.c
*************** e22501e605edeaceeca043b437e49ba9  gcc/te
*** 48414,48431 ****
  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
  99c5a2a8670ef4b0b82cb919884648f5  gcc/testsuite/gcc.dg/lto/modref-1_1.c
! f98a566b3b2ff6733ed676024f2fb9f5  gcc/testsuite/gcc.dg/lto/modref-2_0.c
  81b29b4be5c510dcb3e2600cad9e406b  gcc/testsuite/gcc.dg/lto/modref-3_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-3_1.c
  cbe8129904b881293ad63c724322c5f7  gcc/testsuite/gcc.dg/lto/modref-4_0.c
--- 57147,57170 ----
  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
+ 0ab1d9c12b11fc29d938c6ffbab9e60e  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-1_0.c
+ 1489831d6f8e66aea79da990281b193c  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-1_1.c
+ 312850ddd7ea136e88525e0962088c11  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-2_0.c
+ 1cf11d42f9ca42a298e97a28c243bf75  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-2_1.c
+ 312850ddd7ea136e88525e0962088c11  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-3_0.c
+ 1489831d6f8e66aea79da990281b193c  gcc/testsuite/gcc.dg/lto/fnptr-from-rec-3_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
! 619166a7394d388ad90749b2df3e54b8  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
  99c5a2a8670ef4b0b82cb919884648f5  gcc/testsuite/gcc.dg/lto/modref-1_1.c
! 5b169ea7e4377d5b74d4e4bc6b8d1733  gcc/testsuite/gcc.dg/lto/modref-2_0.c
  81b29b4be5c510dcb3e2600cad9e406b  gcc/testsuite/gcc.dg/lto/modref-3_0.c
  1eb5a5a9618f46e44dc9d6ee2a4c8bc4  gcc/testsuite/gcc.dg/lto/modref-3_1.c
  cbe8129904b881293ad63c724322c5f7  gcc/testsuite/gcc.dg/lto/modref-4_0.c
*************** d043bebe314f4799a1f686632b791cca  gcc/te
*** 48474,48479 ****
--- 57213,57229 ----
  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
+ f5f860d71dee47b53b433d6f33223758  gcc/testsuite/gcc.dg/lto/pr122515_0.c
+ 42ad058eb75d3c988533e8f8eecd45c5  gcc/testsuite/gcc.dg/lto/pr122515_1.c
+ c8348d97dcd57b983e2c4c696a5e8450  gcc/testsuite/gcc.dg/lto/pr122515_2.c
+ bc6aab4d748ab26c406bcfcfd94e43f4  gcc/testsuite/gcc.dg/lto/pr122515_3.c
+ b58dd1aaa3132751d46233b1e6a00a3e  gcc/testsuite/gcc.dg/lto/pr122515_4.c
+ e93496b3dab62466b11fccc4eb64033f  gcc/testsuite/gcc.dg/lto/pr122515_5.c
+ ce39b21091008775415dbe099db0aaf5  gcc/testsuite/gcc.dg/lto/pr122515_6.c
+ 7f03e9f210325e44859aafac7ad2f239  gcc/testsuite/gcc.dg/lto/pr122515_7.c
+ 6028a2dec4dfcb2bf14d8b228fb95959  gcc/testsuite/gcc.dg/lto/pr122515_8.c
+ ba260514a6f9ba02270018e5ccb3fc9c  gcc/testsuite/gcc.dg/lto/pr122515_9.c
+ dd18439fd9c81ba8af7f920a1dd80a20  gcc/testsuite/gcc.dg/lto/pr122603_0.c
  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
*************** e3ddc8e23b73e7cb4adfdd561a49abfd  gcc/te
*** 48527,48532 ****
--- 57277,57284 ----
  729e7df711f59da5edc3a02fe050b9eb  gcc/testsuite/gcc.dg/lto/pr60461_0.c
  fb92fea16dbb92181a81b79e2e378036  gcc/testsuite/gcc.dg/lto/pr60720_0.c
  06c25fe0c80b8959051a62f8f034710a  gcc/testsuite/gcc.dg/lto/pr60720_1.c
+ ccafcbcd2accc57e1b54fe7ab4fdd851  gcc/testsuite/gcc.dg/lto/pr60779_0.c
+ 1a1c88217af601fc3c63c36ed0c97179  gcc/testsuite/gcc.dg/lto/pr60779_1.c
  c1c0cfd303506bc9c3f34fb6cf1e23cd  gcc/testsuite/gcc.dg/lto/pr60820_0.c
  c712274fdef323c534029cdcf691aa73  gcc/testsuite/gcc.dg/lto/pr60820_1.c
  3ce380dc49e4f5afb926994881824b04  gcc/testsuite/gcc.dg/lto/pr60911_0.c
*************** a03a5109c087726181cf7cc2241d1a9e  gcc/te
*** 48599,48604 ****
--- 57351,57366 ----
  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
+ d3373213fac75fe8c0cf9a95609aee57  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_0.c
+ 0b8c0686fa89ada1fa46aaffc51ae2d6  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-1_1.c
+ d879ca69386462507d34baeeaac6ff87  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-2_0.c
+ fce9b0e78881985f76e0dd77bf2834f2  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-2_1.c
+ 6ced18e2b5e01709247b972ac330e680  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_0.c
+ db7afbef19e4085f817f6d5503e94797  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_1.c
+ bb7cf904df61848bdf84886837612bb9  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c
+ 06309190fd3e222a7f4615a1e35b909a  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_1.c
+ fe37f244fa55d46efa4078f405290af2  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_0.c
+ e37f3db6688d550dbb2243182e4579f0  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_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
*************** a9c2bd4786300d7cf805e7ef57335a2c  gcc/te
*** 48621,48630 ****
  d0f7ad775f7535709bd76a4c558f1a51  gcc/testsuite/gcc.dg/mallign.c
  3c60c6cb5a37e01b4d0de4ac16f26aed  gcc/testsuite/gcc.dg/march-generic.c
  5fffcdfefb3c530e1b472e8397d647cb  gcc/testsuite/gcc.dg/march.c
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
  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
--- 57383,57402 ----
  d0f7ad775f7535709bd76a4c558f1a51  gcc/testsuite/gcc.dg/mallign.c
  3c60c6cb5a37e01b4d0de4ac16f26aed  gcc/testsuite/gcc.dg/march-generic.c
  5fffcdfefb3c530e1b472e8397d647cb  gcc/testsuite/gcc.dg/march.c
+ fffc1f01ecc10021cef74e15e08fad3d  gcc/testsuite/gcc.dg/match-shift-cmp-1.c
+ 0b19e7abaef451fb227de98d34d09fdb  gcc/testsuite/gcc.dg/match-shift-cmp-2.c
+ 325d75b709c57e72d762110f2a66880d  gcc/testsuite/gcc.dg/match-shift-cmp-3.c
+ 7245e1622421f01ab02be845ef1593d2  gcc/testsuite/gcc.dg/match-shift-cmp-4.c
+ 0efffa9397eb6847acb19abd7e120a63  gcc/testsuite/gcc.dg/match-shift-cmp-5.c
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
+ bd2e41e652def384951c8733f2f6bdef  gcc/testsuite/gcc.dg/maxof-bitint.c
+ bc43eadbcc258fb925ae3aab6cc86544  gcc/testsuite/gcc.dg/maxof-bitint575.c
+ c2b3499a26514d073c13073e910b634b  gcc/testsuite/gcc.dg/maxof-compile.c
+ afb46d3efe9fa5148ca27b11fd844901  gcc/testsuite/gcc.dg/maxof-pedantic-errors.c
+ 0f84ba164a38f6740ab534e4b77a4509  gcc/testsuite/gcc.dg/maxof-pedantic.c
  2eb99e685dc27ff7c74d04a147795043  gcc/testsuite/gcc.dg/memchr-2.c
! bdfc8c87006d14c0ee31f6a4c43f456e  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
*************** d46511208ba88b755c518bb5aa8112c3  gcc/te
*** 48636,48644 ****
  27c87483c7fcbea0947ee744dcfb316a  gcc/testsuite/gcc.dg/memcpy-1.c
  8e6769f9d74d9d0099ca1a2532fd72e8  gcc/testsuite/gcc.dg/memcpy-2.c
  d2e1206d26231777e76c9f21d67f4425  gcc/testsuite/gcc.dg/memcpy-3.c
! 5499ece0538a867efb7141bf70324361  gcc/testsuite/gcc.dg/memcpy-4.c
  a41ae21b628c0476195ce6dac94a92e9  gcc/testsuite/gcc.dg/memcpy-5.c
! 83ee9b3ae88b49791ab853275953d636  gcc/testsuite/gcc.dg/memcpy-6.c
  2e6979f3473f103c4c6ce0c0c0f8fd2d  gcc/testsuite/gcc.dg/memmove-1.c
  5224fb409821b04de2514e6f18e31023  gcc/testsuite/gcc.dg/memmove-2.c
  e8c4bdf333f001f5a197e7a3ad522e1d  gcc/testsuite/gcc.dg/memmove-3.c
--- 57408,57416 ----
  27c87483c7fcbea0947ee744dcfb316a  gcc/testsuite/gcc.dg/memcpy-1.c
  8e6769f9d74d9d0099ca1a2532fd72e8  gcc/testsuite/gcc.dg/memcpy-2.c
  d2e1206d26231777e76c9f21d67f4425  gcc/testsuite/gcc.dg/memcpy-3.c
! d8e1bd2272d2e582c95e1ac1b65751e9  gcc/testsuite/gcc.dg/memcpy-4.c
  a41ae21b628c0476195ce6dac94a92e9  gcc/testsuite/gcc.dg/memcpy-5.c
! cd715b827680874ba4d68c7e82d6e6e6  gcc/testsuite/gcc.dg/memcpy-6.c
  2e6979f3473f103c4c6ce0c0c0f8fd2d  gcc/testsuite/gcc.dg/memmove-1.c
  5224fb409821b04de2514e6f18e31023  gcc/testsuite/gcc.dg/memmove-2.c
  e8c4bdf333f001f5a197e7a3ad522e1d  gcc/testsuite/gcc.dg/memmove-3.c
*************** fa7e2ec267c69f9aa6ae24b29640585d  gcc/te
*** 48676,48682 ****
  b87d71c2f1bfd0836125574d83354c7f  gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c
  e493111d21e55c655eba6eaa3ebdda47  gcc/testsuite/gcc.dg/multiword-1.c
  81e6e40eddcff3122bc5a5a43a41acdc  gcc/testsuite/gcc.dg/nand.c
! 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
--- 57448,57454 ----
  b87d71c2f1bfd0836125574d83354c7f  gcc/testsuite/gcc.dg/multiple-overflow-warn-3.c
  e493111d21e55c655eba6eaa3ebdda47  gcc/testsuite/gcc.dg/multiword-1.c
  81e6e40eddcff3122bc5a5a43a41acdc  gcc/testsuite/gcc.dg/nand.c
! 8b243eadc57016a9a984dd81e030ee2b  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
*************** b054d23fd7d868a509aeb363dc7e8ffc  gcc/te
*** 48779,48785 ****
  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
--- 57551,57557 ----
  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
! 3e7615b6035ea6d392188bc204bd915e  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
*************** f11c04bf8d63c625d3b6257f4785bb60  gcc/te
*** 48815,48820 ****
--- 57587,57595 ----
  651344fe733fa7735632a9520a50f8ba  gcc/testsuite/gcc.dg/nonnull-1.c
  07b34390c5507d6aa09434802e5b61a8  gcc/testsuite/gcc.dg/nonnull-10.c
  38e52279b515e8d3e7adf38ec42bc32c  gcc/testsuite/gcc.dg/nonnull-11.c
+ d3f627c13c63b85243d5aa74bf71f222  gcc/testsuite/gcc.dg/nonnull-12.c
+ 88bce285c71ff2958299044a29d095b4  gcc/testsuite/gcc.dg/nonnull-13.c
+ d014ab67b303cec73f41cbc3cc96f77d  gcc/testsuite/gcc.dg/nonnull-14.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/te
*** 48822,48828 ****
  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
--- 57597,57603 ----
  e1e1132fa7369727498c14f35a94281c  gcc/testsuite/gcc.dg/nonnull-6.c
  fc042eaad3066a30b59b100c8d3fdb9c  gcc/testsuite/gcc.dg/nonnull-7.c
  7967c6f010c04e7b18af2536c24a6a07  gcc/testsuite/gcc.dg/nonnull-8.c
! 796a2f7fb35f295f0bdd58b208547aff  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
*************** f5b4a2950b6c77e79b23979cb814ea61  gcc/te
*** 48850,48855 ****
--- 57625,57631 ----
  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
+ 4473ef7aeb6975e7bb56d4d12858b0f6  gcc/testsuite/gcc.dg/old-style-prom-4.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
*************** ae1be7c8a9157aa5984b4ba25923b8e3  gcc/te
*** 48900,48906 ****
  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
--- 57676,57682 ----
  ddeb76cd34e791893c0f539fdab879bb  gcc/testsuite/gcc.dg/params/LICENSE
  dbe49534045bebcd393d3d0d5ccec28a  gcc/testsuite/gcc.dg/params/README
  72fd72bf411d9a81e4369f95ab44e6d1  gcc/testsuite/gcc.dg/params/blocksort-part.c
! c4ddf47f0f6b623446bff8e8d748f02d  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
*************** b01e42858e0423266a42ce48f5963765  gcc/te
*** 48984,48990 ****
  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
--- 57760,57766 ----
  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
! 2d02612002361bd7887ec878a8187954  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
*************** e7f8739287177652901843bb49b729db  gcc/te
*** 49043,49048 ****
--- 57819,57825 ----
  3fb15b43f77e2c2c948a15f8437476e4  gcc/testsuite/gcc.dg/pic-3.c
  08d8bf606d2349825433d688bb7b8259  gcc/testsuite/gcc.dg/pic-4.c
  1310eec5a596f6f3f1034c18543936a3  gcc/testsuite/gcc.dg/pic-macro-define.c
+ b64f1adf308cadbde122769c24e1f10a  gcc/testsuite/gcc.dg/pid_t-1.c
  de302da8d7737a4e96d474e241080339  gcc/testsuite/gcc.dg/pie-1.c
  d3b785ef540cb4e67cd67fada4080a39  gcc/testsuite/gcc.dg/pie-2.c
  a1104a3ff24cf683d1a597e325c9f573  gcc/testsuite/gcc.dg/pie-3.c
*************** d9f2439f176b4f73afa0c30baa468855  gcc/te
*** 49053,49062 ****
  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
--- 57830,57839 ----
  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
! 9b9be0012df81682b4e3d530fd858332  gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc
! 5867991ade2460ff758bf1c9acb53ea5  gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.cc
! 5ca0a78bc13a9f93219a600bd3f503b5  gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc
! fc075c448c113621c1f33dafad36ea09  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
*************** c8b296cff91e0dc2cbddba1d03bda22e  gcc/te
*** 49069,49077 ****
  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
--- 57846,57860 ----
  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
! 40152da94873a453612f018f2bedc6b9  gcc/testsuite/gcc.dg/plugin/crash-test-nested-ice-html.py
! 8ce7b57d4e70274d3fc06b4026c725ce  gcc/testsuite/gcc.dg/plugin/crash-test-nested-ice-sarif.py
! 33fa37cd40332b2344cccbffd9acb4dd  gcc/testsuite/gcc.dg/plugin/crash-test-nested-ice.c
! b7781bc13218fe0a7931b8b94cbf228c  gcc/testsuite/gcc.dg/plugin/crash-test-nested-write-through-null-html.py
! 2c8b4656128d7c3ae223e746068e8df9  gcc/testsuite/gcc.dg/plugin/crash-test-nested-write-through-null-sarif.py
! 291db98b71fd518cee0fe121d4d9bb47  gcc/testsuite/gcc.dg/plugin/crash-test-nested-write-through-null.c
! 3333d94ad6aeaef96f8f360fbb86bc40  gcc/testsuite/gcc.dg/plugin/crash-test-write-through-null-sarif.c
! 378954d104a4557a5b27e3e39c3de042  gcc/testsuite/gcc.dg/plugin/crash-test-write-through-null-stderr.c
! fe8b11287b636cbc97d256fbd9ee7e9f  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
*** 49080,49102 ****
  2fe90d668bb3a5c6c5bf999732d4ba2f  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-plain.c
  703aa583a7e531e21f36720dc5060a1a  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-separate-events.c
  82d440b1e4dce5930ce8d0eb753b41e8  gcc/testsuite/gcc.dg/plugin/diagnostic-test-expressions-1.c
  909ef50476981adc6482e08a95f8f5dd  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-1.c
  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
--- 57863,57897 ----
  2fe90d668bb3a5c6c5bf999732d4ba2f  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-plain.c
  703aa583a7e531e21f36720dc5060a1a  gcc/testsuite/gcc.dg/plugin/diagnostic-path-format-separate-events.c
  82d440b1e4dce5930ce8d0eb753b41e8  gcc/testsuite/gcc.dg/plugin/diagnostic-test-expressions-1.c
+ 732465885728f1f8db010bcdc04dd064  gcc/testsuite/gcc.dg/plugin/diagnostic-test-graphs-html.c
+ 8e3f36ccd34f3a01727845d526a29ee6  gcc/testsuite/gcc.dg/plugin/diagnostic-test-graphs-html.py
+ 9fd38029a33519cf7e44d1f8653aa738  gcc/testsuite/gcc.dg/plugin/diagnostic-test-graphs-sarif.c
+ c9a71bb22094924ec0c655c680eae543  gcc/testsuite/gcc.dg/plugin/diagnostic-test-graphs-sarif.py
+ d2f6a008f3f994524a314168ca293bec  gcc/testsuite/gcc.dg/plugin/diagnostic-test-graphs.c
  909ef50476981adc6482e08a95f8f5dd  gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-1.c
  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
+ 2c9483e9d5c0705e4216466c0d4cb610  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.c
+ c206914683a80689e3bf23af3c671f70  gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py
  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
+ e3280433d09f2752901f5709a219ebab  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-html.c
+ 1218b1fa70d7150133462f6f97c066d8  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-html.py
+ 4927941c268e926a9856721912e38127  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-no-show-nesting.c
  8bb6f1549a3f246f5d74433c28016694  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-sarif.c
  8ca83dcbe01e2a05522660abb59deb5b  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-sarif.py
! 62fe65e08a13c8b5fe7fe645bf13d10c  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-show-nesting.c
! 90d02e26265104b35a62094a1842fab3  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-indented-show-levels.c
! 24004ab98159bde7df9754ff9705b69e  gcc/testsuite/gcc.dg/plugin/diagnostic-test-nesting-text-indented-unicode.c
! 3d9dfecb01570e6bb939c3e1ea646af1  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
! aa01caff792d42166912b838479f96af  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.c
! bc17d4fe49a94a5706f9bcef474031c2  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-2.py
! 9c0af25560d6f1bb77ab2c9926f2b350  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.c
! 4e32b40390f2106a445623caa3a97dac  gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-4.py
  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/te
*** 49105,49117 ****
  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
! e6d483f4d25a7c647c63671ff7dc5c50  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c
  a59c3c55e77b2ab336a32f5ffc9ed6ba  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw.c
  8d518bbaaec0b4d6c532cae93ab3eaff  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c
  3f8571aac41f9a607da0ac8cca932644  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-color.c
  7288fef9790277fe3bb349e82cef1875  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
  c1874b847baa5d41d58aa2db643143da  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-no-labels.c
  2c7e32cd8f076c6b6406aef7209045e7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
  39f1ab78432ac25892fad284e179d8ac  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-trees-1.c
  bb20191ab0ad6e0d6ba368003d857339  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-1.c
  1a45355cf06403e775b5d7ab5b2a59f7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-2.c
--- 57900,57913 ----
  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
! 23b67c1167871870119bf469a67fdd70  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c
  a59c3c55e77b2ab336a32f5ffc9ed6ba  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-bw.c
  8d518bbaaec0b4d6c532cae93ab3eaff  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c
  3f8571aac41f9a607da0ac8cca932644  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-color.c
  7288fef9790277fe3bb349e82cef1875  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
  c1874b847baa5d41d58aa2db643143da  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-no-labels.c
  2c7e32cd8f076c6b6406aef7209045e7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
+ 07721d53fa9641d19eb23ad4e87142ac  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-locus.py
  39f1ab78432ac25892fad284e179d8ac  gcc/testsuite/gcc.dg/plugin/diagnostic-test-show-trees-1.c
  bb20191ab0ad6e0d6ba368003d857339  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-1.c
  1a45355cf06403e775b5d7ab5b2a59f7  gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-2.c
*************** bb20191ab0ad6e0d6ba368003d857339  gcc/te
*** 49122,49144 ****
  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
--- 57918,57939 ----
  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
! d5a25be6497ce0fdc9ba7e87979ee0b1  gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc
! 84ed0757ba99c1e83f1a5e4fefddc5ae  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.cc
! e91a0d74ecaca2e7119153c437141b86  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_graphs.cc
! d4d1eb70aaafc800a751ded4bc9f9fd6  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.cc
! 04b1c27ed8364e0abc5c25eef8f78fc1  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.cc
  75e9c4ca32ac5c1329afb3fd1be6a829  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_nesting.cc
! 6b5f14156aa7c5541850ec104761ab34  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.cc
! e307a04d154ca529b2e780215b255dad  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc
! 5a7575f0a8605ea8a15a136481b6c505  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.cc
! ac48582404b79145b5d9911649cfbd68  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_text_art.cc
! 35b21ecd7b9c196c7811d1b485da063b  gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.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
! 5b0ef269e1d59eb14a6e7a30b137f556  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
*************** c1994b3e108cc9c7befbc1b7c93a70ff  gcc/te
*** 49148,49161 ****
  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
! bbcd0beb988096a6d621125f04655e2b  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2011-1078-2.c
  8c9984262c9a8cd64eaa5696bad121c3  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2014-1446-1.c
! b05ae8584845daeb59ab2a2d859880ad  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2017-18549-1.c
  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
--- 57943,57956 ----
  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
! d5c6dcb1b5f5d52db1a286f730305c8e  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2011-1078-1.c
! 08631c1ce9adb711aecccccca9a2fe20  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2011-1078-2.c
  8c9984262c9a8cd64eaa5696bad121c3  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2014-1446-1.c
! 3a6523c02c168e01602a18a3b7fda221  gcc/testsuite/gcc.dg/plugin/infoleak-CVE-2017-18549-1.c
  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
! f9c7b381fd9a66507c89840b72cbbd96  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
*************** f22c386d32e16704e73e0ad284bf1ad1  gcc/te
*** 49163,49168 ****
--- 57958,57964 ----
  4644aff4e3d9b41ef0b44eb441b3e574  gcc/testsuite/gcc.dg/plugin/known-fns-1.c
  d3e84ae842f69911a3ac0ceb96542627  gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c
  b584a46252319e63ce8a18cd3d89f07c  gcc/testsuite/gcc.dg/plugin/location-overflow-test-2.c
+ fe003478e6d8c2bb947402b78ce24063  gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c
  9e170fe1467d0a1b2ec0d3baf50cff4b  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047-1.h
  668a3b5ad920346b135fa852ca249d17  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047-2.h
  be795e2075413ef468ce241bac4503e2  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047.c
*************** d599542d2bc9679a29260101b5c82178  gcc/te
*** 49173,49185 ****
  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
! 47922d1e280d753ecebc1c5e88e9463e  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
! 15d6ac5e32e6d81f4432170c9841a27a  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
! cb2a99ae3709baa43a8722d591d81b1c  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
--- 57969,57981 ----
  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
! 7479ba64fd39bd986a4fcd1d7f758b35  gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc
  c323b7b4ac0cf2caa641c6bb31350375  gcc/testsuite/gcc.dg/plugin/must-tail-call-1.c
! b9fca9ae555d82d8d6ac6396e5ef2615  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
! 74507d705f0c76d8fca8f5c47725ff04  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
*************** f932a68db380ed55129ab7dc6df6698a  gcc/te
*** 49195,49205 ****
  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
--- 57991,58002 ----
  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
+ 560049d478ac5c677c2fab6a819ba70b  gcc/testsuite/gcc.dg/plugin/progress_notifications_plugin.cc
  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
! d99526b298e9dfd46c825e5ad65e0b91  gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc
  00a1b96bbcffd09bac3474dd95024a53  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1-fixed.c
  23796e19f3d5fa6dd7da57577c891b75  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-1.c
  88e4aa7c8e5b18cfd476fd5ab8d06ff8  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521-2-fixed.c
*************** c3b2df2d08297b00430498f9bb8ba530  gcc/te
*** 49213,49222 ****
  6197eb6a55be4bb0911aef2bdace74a3  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521.h
  c1a578dbfc8ffb7d4721396689b33c19  gcc/testsuite/gcc.dg/plugin/taint-antipatterns-1.c
  f2c52ae1d377095c434748afcd91b675  gcc/testsuite/gcc.dg/plugin/taint-modulus.c
! 4afd7887a8997709037b71e2ef67f3d8  gcc/testsuite/gcc.dg/plugin/taint-pr112850-precise.c
! fee49b17633c5728f24afc848db018d3  gcc/testsuite/gcc.dg/plugin/taint-pr112850-too-complex.c
! ab90a57b9447cc9bb60c34f5be763ba6  gcc/testsuite/gcc.dg/plugin/taint-pr112850-unsanitized.c
! 7d45017453a6982b93404b647076e465  gcc/testsuite/gcc.dg/plugin/taint-pr112850.c
  e375ae0fb9e58470ad097820ae515e6a  gcc/testsuite/gcc.dg/plugin/taint-pr112927.c
  80638b300518f1017e5c81ccc529aeeb  gcc/testsuite/gcc.dg/plugin/taint-pr112974.c
  cde77cccdd4200c20b184e23ad8888a2  gcc/testsuite/gcc.dg/plugin/taint-pr112975.c
--- 58010,58019 ----
  6197eb6a55be4bb0911aef2bdace74a3  gcc/testsuite/gcc.dg/plugin/taint-CVE-2011-0521.h
  c1a578dbfc8ffb7d4721396689b33c19  gcc/testsuite/gcc.dg/plugin/taint-antipatterns-1.c
  f2c52ae1d377095c434748afcd91b675  gcc/testsuite/gcc.dg/plugin/taint-modulus.c
! c65804a1e9f12ef15a90a7abbb0db6e4  gcc/testsuite/gcc.dg/plugin/taint-pr112850-precise.c
! ab572e88e60265c4e90367567c58f18b  gcc/testsuite/gcc.dg/plugin/taint-pr112850-too-complex.c
! 8b3196d5f1bf57c089777a5c45d8feed  gcc/testsuite/gcc.dg/plugin/taint-pr112850-unsanitized.c
! ddb2f97a831edb4850e74b125cd29fe2  gcc/testsuite/gcc.dg/plugin/taint-pr112850.c
  e375ae0fb9e58470ad097820ae515e6a  gcc/testsuite/gcc.dg/plugin/taint-pr112927.c
  80638b300518f1017e5c81ccc529aeeb  gcc/testsuite/gcc.dg/plugin/taint-pr112974.c
  cde77cccdd4200c20b184e23ad8888a2  gcc/testsuite/gcc.dg/plugin/taint-pr112975.c
*************** cec4c2edab704d04ba9649b787ed5274  gcc/te
*** 49240,49245 ****
--- 58037,58060 ----
  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
+ 87303172cad22f129e26b5f5d00848f7  gcc/testsuite/gcc.dg/pointer-counted-by-1.c
+ 91902a81aef8ffab5dc550774f889ce2  gcc/testsuite/gcc.dg/pointer-counted-by-10.c
+ 235b8ad4c1e8f7d345e8f9bfd0d4be3a  gcc/testsuite/gcc.dg/pointer-counted-by-2.c
+ 6bc63e6bb461685aa63789d592261cd1  gcc/testsuite/gcc.dg/pointer-counted-by-3.c
+ 55dda7861fc83456d204db29704a9e1b  gcc/testsuite/gcc.dg/pointer-counted-by-4-char.c
+ 0bec7f1bff0c50976006236a89c9c4e0  gcc/testsuite/gcc.dg/pointer-counted-by-4-float.c
+ 5f707f3db1b27de3b959ba40397d9ce6  gcc/testsuite/gcc.dg/pointer-counted-by-4-struct.c
+ 8fc07e8d2e760e2759c331eeab3c7a61  gcc/testsuite/gcc.dg/pointer-counted-by-4-union.c
+ bb6e049ffc6c0ec7e94a6c13bac6c792  gcc/testsuite/gcc.dg/pointer-counted-by-4-void.c
+ a0acf8d13390e8848447fc73fb2b9827  gcc/testsuite/gcc.dg/pointer-counted-by-4.c
+ 4fb7e10140c253ff0ffeb53bb3ad166e  gcc/testsuite/gcc.dg/pointer-counted-by-5.c
+ ae7c56102b7bab6c5480c80a081567d9  gcc/testsuite/gcc.dg/pointer-counted-by-6.c
+ cb2a225c4939c4a047c2574e784b9149  gcc/testsuite/gcc.dg/pointer-counted-by-7.c
+ bf966c5170e7d5a196dbbed9b62c61d6  gcc/testsuite/gcc.dg/pointer-counted-by-8.c
+ 60dd9bdbbdf292a0cb9bf8d4a0cadb6a  gcc/testsuite/gcc.dg/pointer-counted-by-9.c
+ d181d80816e4d3b133dc856fe8132a79  gcc/testsuite/gcc.dg/pointer-counted-by-pr122982.c
+ 3cff3609a2ae388c53d9c12d872e8647  gcc/testsuite/gcc.dg/pointer-counted-by-pr123500.c
+ fab3b399e4fdba4426e862fa979f170a  gcc/testsuite/gcc.dg/pointer-counted-by.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
*************** d98596956367fc29b9341da6c0f03f55  gcc/te
*** 49291,49296 ****
--- 58106,58113 ----
  2eebdeb5aef44432de1498de14cbf4e6  gcc/testsuite/gcc.dg/pr101266.c
  a7ea71615239b0d5a09bdb20e483a02f  gcc/testsuite/gcc.dg/pr101285-1.c
  cbe7e390158f186ae3fd0f808bea7563  gcc/testsuite/gcc.dg/pr101294.c
+ 280ab2738fa9f4a59440b24de22faee0  gcc/testsuite/gcc.dg/pr101312-1.c
+ 1e4a8d2edc5aa23b12908e90b5487800  gcc/testsuite/gcc.dg/pr101312-2.c
  2eebc584a5365593600a3822a1b3e97d  gcc/testsuite/gcc.dg/pr101364-1.c
  70303171ed7f5b2cba05e6b98daad2ab  gcc/testsuite/gcc.dg/pr101384.c
  566100ed369cb8ddbb77ca59ac7f4416  gcc/testsuite/gcc.dg/pr101403.c
*************** ef83c05a9501eeb220dfbcfbe176575e  gcc/te
*** 49337,49343 ****
  3cc3131778a8709d2331de3fa630fd84  gcc/testsuite/gcc.dg/pr102892-2.c
  c045562529677f5cb7d484f9a1528485  gcc/testsuite/gcc.dg/pr102897.c
  c8eff45b51c94e89b3b09b1a17943808  gcc/testsuite/gcc.dg/pr102950.c
! bdd6d43d4d29c6364c8fcfdc04dc9dc7  gcc/testsuite/gcc.dg/pr102983.c
  788d5650aced9b0553d7571feda572c6  gcc/testsuite/gcc.dg/pr103003.c
  11b2d6d5fe2e6b7e01f567ce3bb16ad4  gcc/testsuite/gcc.dg/pr103028.c
  7ee0c5d807884f2fbee926b391d31764  gcc/testsuite/gcc.dg/pr103062.c
--- 58154,58160 ----
  3cc3131778a8709d2331de3fa630fd84  gcc/testsuite/gcc.dg/pr102892-2.c
  c045562529677f5cb7d484f9a1528485  gcc/testsuite/gcc.dg/pr102897.c
  c8eff45b51c94e89b3b09b1a17943808  gcc/testsuite/gcc.dg/pr102950.c
! 70700ef4a8a88233db350816c2b529c9  gcc/testsuite/gcc.dg/pr102983.c
  788d5650aced9b0553d7571feda572c6  gcc/testsuite/gcc.dg/pr103003.c
  11b2d6d5fe2e6b7e01f567ce3bb16ad4  gcc/testsuite/gcc.dg/pr103028.c
  7ee0c5d807884f2fbee926b391d31764  gcc/testsuite/gcc.dg/pr103062.c
*************** ebccf814e2974ae2d3fef79375fc2a74  gcc/te
*** 49488,49494 ****
  c16717b833d5db5a9a8e0b0649ed37bf  gcc/testsuite/gcc.dg/pr107262.c
  4f0d5b8c78199ceef742ba745999898c  gcc/testsuite/gcc.dg/pr107300.c
  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
--- 58305,58310 ----
*************** e1e8d414ac951f379fb6ccff06784511  gcc/te
*** 49555,49564 ****
--- 58371,58395 ----
  9b50390957b3a6b9f2fe49adac18f30b  gcc/testsuite/gcc.dg/pr108947.c
  971cdaa7be51531f55247a24459108ed  gcc/testsuite/gcc.dg/pr108970.c
  b2cc9b3414f5f8e47e69d7429d38f51b  gcc/testsuite/gcc.dg/pr109008.c
+ 69170d84426c278bdb152b01175d91f1  gcc/testsuite/gcc.dg/pr109071.c
+ b354120003ebe6540cb585f00ef63b17  gcc/testsuite/gcc.dg/pr109071_1.c
+ 1bc7163662d2a18efa22907033efd05b  gcc/testsuite/gcc.dg/pr109071_10.c
+ c411003f6dea1c488f83ad17f8c4ff36  gcc/testsuite/gcc.dg/pr109071_11.c
+ c817914f87fc9cf0fea3bdeb3bc7edf5  gcc/testsuite/gcc.dg/pr109071_12.c
+ f1b5212f962a3830e802cc9367a9d14c  gcc/testsuite/gcc.dg/pr109071_2.c
+ cb2821cf0ef103fd2e6b5f1dcaef98b2  gcc/testsuite/gcc.dg/pr109071_3.c
+ 11088fc9f995b2188fe0f254f29c0a99  gcc/testsuite/gcc.dg/pr109071_4.c
+ 1f2d434691eb738e4bd9591871e25b15  gcc/testsuite/gcc.dg/pr109071_5.c
+ e0a0d97dda2dcd485960fdcceef63680  gcc/testsuite/gcc.dg/pr109071_6.c
+ 01426d15aeae1bf174adb86ba4422b89  gcc/testsuite/gcc.dg/pr109071_7.c
+ 7b5c9f3da805fa46fdbe8803e4c7d986  gcc/testsuite/gcc.dg/pr109071_8.c
+ 2627b625af00d9afd2f8f83b36098a3e  gcc/testsuite/gcc.dg/pr109071_9.c
  512c120b715e6b5d557ed0a011de510f  gcc/testsuite/gcc.dg/pr109115.c
  b108b00c49aeb9d5d164d8d72e3dcc50  gcc/testsuite/gcc.dg/pr109187.c
  c66fee8d96a854eabadb8ee243caabd6  gcc/testsuite/gcc.dg/pr109230.c
  fef759074d2405b19218d52a2f1d4c87  gcc/testsuite/gcc.dg/pr109238.c
+ 2452f78f1250d8450bd43ff624d0375c  gcc/testsuite/gcc.dg/pr109267-1.c
+ 29c5a68571c10dce111bfab3d03b0494  gcc/testsuite/gcc.dg/pr109267-2.c
  024ef2629cf4c28ff2dfffc47f34bf27  gcc/testsuite/gcc.dg/pr109274.c
  0c748fdbad039c05fc772087b11f05ae  gcc/testsuite/gcc.dg/pr109301.c
  7fdf5b5bab6aec81de409bfb1430ba9f  gcc/testsuite/gcc.dg/pr109303.c
*************** b4bb8ae97fc12f1c66b22b9149ca7a2b  gcc/te
*** 49567,49572 ****
--- 58398,58404 ----
  45f9003776530da05643fd2fcd9640b8  gcc/testsuite/gcc.dg/pr109392.c
  bfcc628fc6999e234d82894274b24215  gcc/testsuite/gcc.dg/pr109393.c
  c84c4385dc7b913c1ab044bf620d7696  gcc/testsuite/gcc.dg/pr109409.c
+ e3305bd5445d5fff018b1f9ab0c905d3  gcc/testsuite/gcc.dg/pr109410-2.c
  8c5ddd68de1ed874eb52f91b7136909e  gcc/testsuite/gcc.dg/pr109410.c
  3399ef12e5625e30f72a928ee7afca74  gcc/testsuite/gcc.dg/pr109412.c
  86a351ab8a6255c1c7e39f673dcac916  gcc/testsuite/gcc.dg/pr109417.c
*************** fa2fa7c87accd361a3ffc55669286d2b  gcc/te
*** 49586,49591 ****
--- 58418,58424 ----
  fc2d5987f0935ba7fb72456a74052a3a  gcc/testsuite/gcc.dg/pr110266.c
  df6d4a5a1ae23e4c54fe887c609a4b7c  gcc/testsuite/gcc.dg/pr110279-1.c
  4d010b0a841ae58fbceaa23059d37d44  gcc/testsuite/gcc.dg/pr110279-2.c
+ 1050781a889340be9d24578e2787c40d  gcc/testsuite/gcc.dg/pr110405.c
  44cc8bdb8e24be94e67c6e9b8820384b  gcc/testsuite/gcc.dg/pr110436.c
  1bfa7501393c86817caa57b323c5f302  gcc/testsuite/gcc.dg/pr110461.c
  d7d11e1fe70efcc887bf72a552f64cdb  gcc/testsuite/gcc.dg/pr110496.c
*************** ba9310e68600c6b4b7c1527b5a5cf11c  gcc/te
*** 49621,49627 ****
  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
  4f842151b1830fe13f002a8c7d0757c0  gcc/testsuite/gcc.dg/pr111683-2.c
--- 58454,58460 ----
  6e14588163beffcf47ea7884dce92104  gcc/testsuite/gcc.dg/pr111303.c
  283ae18e472c603f77f7f5bd12528fb9  gcc/testsuite/gcc.dg/pr111355.c
  01e07e5f8d4143761d4e83039ef70da1  gcc/testsuite/gcc.dg/pr111407.c
! 00f8129adf87e8e2df349fa3e0585603  gcc/testsuite/gcc.dg/pr111409.c
  ad92d0e6b224b22bbd94fa951c90fc58  gcc/testsuite/gcc.dg/pr111599.c
  010daf0af0cc91370932a98cc477bc7f  gcc/testsuite/gcc.dg/pr111683-1.c
  4f842151b1830fe13f002a8c7d0757c0  gcc/testsuite/gcc.dg/pr111683-2.c
*************** b3bff2025ea2829f369b883345a9ac4d  gcc/te
*** 49671,49676 ****
--- 58504,58510 ----
  09c144492c54d8c957d2554d144ab1fe  gcc/testsuite/gcc.dg/pr113492.c
  2540e8b10d6e78d08e6fe572298fb0b7  gcc/testsuite/gcc.dg/pr113596.c
  78dd45f553f44492c5c325398210f4ec  gcc/testsuite/gcc.dg/pr113602.c
+ 54e0b10dfff1e49ad643460e0c38599e  gcc/testsuite/gcc.dg/pr113632.c
  df6f93c285d5bce25f758e2e93482ded  gcc/testsuite/gcc.dg/pr113659.c
  5fb0ea265bfa7fd7916b4541b551b5bc  gcc/testsuite/gcc.dg/pr113688.c
  57d872032d8ecee35cd1542ada8db1b5  gcc/testsuite/gcc.dg/pr113693.c
*************** b200221e1cccaf2dc905de01fccdb601  gcc/te
*** 49690,49695 ****
--- 58524,58530 ----
  5f50cdb1b2a60a511ba8bff25319527f  gcc/testsuite/gcc.dg/pr114211.c
  6c8f2e684eee8bd8983196eac859b465  gcc/testsuite/gcc.dg/pr114293.c
  7cd5609790e8cb3ba4ad54ccf122a48a  gcc/testsuite/gcc.dg/pr114310.c
+ 515c43500db3a26f76f2414cea3d0aae  gcc/testsuite/gcc.dg/pr114331.c
  4940ffe18e12cb373bdf01efe4350809  gcc/testsuite/gcc.dg/pr114361.c
  e99866ca9e56b885a0004e2f573a6158  gcc/testsuite/gcc.dg/pr114493-1.c
  a9aec6149bb0f845a5689f70e87d6879  gcc/testsuite/gcc.dg/pr114493-2.c
*************** c55a5bd235aa037a0b2b6c77b9b5c9da  gcc/te
*** 49700,49705 ****
--- 58535,58541 ----
  8d675fa965ab88a772c5a3c7d82c11e3  gcc/testsuite/gcc.dg/pr114605.c
  1a8b1f5632629c5678465877e9a08481  gcc/testsuite/gcc.dg/pr114661.c
  e9b4e6a3163919c9542ac3ea134e8c03  gcc/testsuite/gcc.dg/pr114713.c
+ 9b1141e2dd4b26b07c548dec717acdc1  gcc/testsuite/gcc.dg/pr114725.c
  7cd2e921ecf04e193b97e3f54d49fb3c  gcc/testsuite/gcc.dg/pr114727.c
  18db873e30d811e6904623797ead2825  gcc/testsuite/gcc.dg/pr114753.c
  278b6ea6998e142ef9ecea8b30a97701  gcc/testsuite/gcc.dg/pr114768.c
*************** fa53e159fc414cd332dc23393a95dabf  gcc/te
*** 49711,49717 ****
  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
--- 58547,58553 ----
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  aef58d29c1a9501b32c4805c56d8ce28  gcc/testsuite/gcc.dg/pr114930.c
  dbdd5914f6fc5bb4897a0171fe0c720c  gcc/testsuite/gcc.dg/pr114931.c
! 63302c89f986f7cc3ae9fb3eff0b48f5  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
*************** c8dd934a48d7e3b1838eba0a9b59da95  gcc/te
*** 49728,49749 ****
  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
--- 58564,58590 ----
  6c0df97ca3f09d4762984f0d81f33807  gcc/testsuite/gcc.dg/pr115933.c
  40adca9ff556941ac292b50c8dcf350d  gcc/testsuite/gcc.dg/pr116003.c
  8a0ca2cbf65dafe6cccb9a0465069fcc  gcc/testsuite/gcc.dg/pr116034.c
+ 6adb8da8e1b0e69504276878042cf1d4  gcc/testsuite/gcc.dg/pr116053-1.c
  c44ac8a093cda751002f1697cad3bee4  gcc/testsuite/gcc.dg/pr116284.c
  7820d64b46e8082950940bc4a0bfba8c  gcc/testsuite/gcc.dg/pr116290.c
  d21d6fbc6fc43c655a90fc622dc9b3c2  gcc/testsuite/gcc.dg/pr116336.c
! 1617ba16a5c3da647313ff6115a8a6eb  gcc/testsuite/gcc.dg/pr116357.c
  4c67e27f1fbd89fff89dde4e36bf9a5e  gcc/testsuite/gcc.dg/pr116372.c
  7d6461bbfe4e766b9dcb02e2aec22645  gcc/testsuite/gcc.dg/pr116405.c
+ b7d6fb3e14f86c09ea6f178c014109c3  gcc/testsuite/gcc.dg/pr116479.c
  6eaf2c622feb5e0d2e5ca44ab5759351  gcc/testsuite/gcc.dg/pr116481.c
+ 849572df683294a5f3ad6bb81ee17c53  gcc/testsuite/gcc.dg/pr116546.c
  8a82ecc27f5e5be1a3a5e59a3465ebcf  gcc/testsuite/gcc.dg/pr116588.c
  92460a4ebec7f60dcffc9eb68058c6b8  gcc/testsuite/gcc.dg/pr116726.c
+ 409f923c5a0369bc3b49bed2d7ee1b6c  gcc/testsuite/gcc.dg/pr116815.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
+ 7ed571380ea3c44358d23d8dc9a197ff  gcc/testsuite/gcc.dg/pr116892.c
  74e00ad1edb39167550d49fdf426dbd3  gcc/testsuite/gcc.dg/pr116905.c
! 30e612a40ca91f0c5bc0fd60ee91ba15  gcc/testsuite/gcc.dg/pr116906-1.c
! 1889ebae6b69af848f3c763860cf4e40  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
*************** f721b513a9ffc969859bf3f862b29fc8  gcc/te
*** 49751,49756 ****
--- 58592,58598 ----
  809d1e4fe382fd35194849af2413cb9f  gcc/testsuite/gcc.dg/pr117239.c
  f0bfdc371f7d13f5d1419895ec6f7cf3  gcc/testsuite/gcc.dg/pr117245.c
  22c935f2bff095783388f4e05eabe99b  gcc/testsuite/gcc.dg/pr117254.c
+ 67d673064c0c7ee83efde9d89e86c5d3  gcc/testsuite/gcc.dg/pr117375.c
  2fdaaf6f7a5cac0bc0536de3a8e9cc31  gcc/testsuite/gcc.dg/pr117391.c
  508b7efd3e428ac089a9b5def12ba01c  gcc/testsuite/gcc.dg/pr117398.c
  2c69d08dac7e115034a90e432cc57ef2  gcc/testsuite/gcc.dg/pr117433.c
*************** c58313e1bf77e3d1ff2095259c66e353  gcc/te
*** 49766,49772 ****
  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
--- 58608,58614 ----
  e56e36e1c606f9cbe62e6a1a0ca7467e  gcc/testsuite/gcc.dg/pr117816.c
  9cd6e60e0bac47dfb7ea3d7bac4bc4fd  gcc/testsuite/gcc.dg/pr117828.c
  807d0d56ce32e54174f9a651a110d179  gcc/testsuite/gcc.dg/pr117866.c
! a9b7e27368950c079dd2d482456c2c40  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
*************** fd22cdc8f5c1d5a0506c32e0942e724b  gcc/te
*** 49774,49779 ****
--- 58616,58622 ----
  35ebbd529a45964e8eadd10e9c3a0561  gcc/testsuite/gcc.dg/pr118081.c
  798b5b539c31a7cb9030cd143870282e  gcc/testsuite/gcc.dg/pr118207.c
  81146ef53dd64af6e946aea09bb38c81  gcc/testsuite/gcc.dg/pr118224.c
+ 848cc41b568ca24609cd5ca056833d13  gcc/testsuite/gcc.dg/pr118254.c
  a76b575ed115f3b030187e2b490b147c  gcc/testsuite/gcc.dg/pr118288.c
  4abff84379a45f296022062f3b8cb5a9  gcc/testsuite/gcc.dg/pr118325.c
  f5dcfb06fbf4ecf1c229e05c21143475  gcc/testsuite/gcc.dg/pr118376.c
*************** b5e7a407f14fa4279d446639d6cf4794  gcc/te
*** 49794,49803 ****
--- 58637,58652 ----
  d08452d24c97493e2434ecdd8c5310c4  gcc/testsuite/gcc.dg/pr118817.c
  2b2d20742f9707962adb7ed6abf1aaff  gcc/testsuite/gcc.dg/pr118860.c
  000c93ab2283d35bc8262ea9d115e9b4  gcc/testsuite/gcc.dg/pr118895.c
+ b9759ceecb4f9361feb7576740cd7ba6  gcc/testsuite/gcc.dg/pr118946-1.c
+ 2bc77a865f5ed044c609c7e4633d1a53  gcc/testsuite/gcc.dg/pr118947-1.c
+ eaa8bc67e566af882ae8ca653097943c  gcc/testsuite/gcc.dg/pr118948-1.c
  cccc06652033bffb0ed73a8f12d234c2  gcc/testsuite/gcc.dg/pr119001-1.c
  c7a64c754e3bec3fcb350f02eeca455c  gcc/testsuite/gcc.dg/pr119001-2.c
+ 22c72fb8f0ea443ab61c2bcc7fc0c042  gcc/testsuite/gcc.dg/pr119039-1.c
+ a29c116eab78178f6a285bf4e9f01e15  gcc/testsuite/gcc.dg/pr119039-2.c
  33c13391b7d0c5d156ce1488a8cece3f  gcc/testsuite/gcc.dg/pr119071.c
  a3d075dd1b96232581aa40c9e02294e1  gcc/testsuite/gcc.dg/pr119151.c
+ 6b5bb26672e398cc957c3f920dbb6d50  gcc/testsuite/gcc.dg/pr119160.c
  23b8c99f9e2dfda91a95f1195ab38bfd  gcc/testsuite/gcc.dg/pr119183.c
  5b4015cb994569a43c505c35b96cda44  gcc/testsuite/gcc.dg/pr119204.c
  749c769f6f099fb46192e06fcacafc89  gcc/testsuite/gcc.dg/pr119287.c
*************** df4d4396a3fcd7580f78a2404eec37a4  gcc/te
*** 49809,49814 ****
--- 58658,58664 ----
  dcac2b425761465ac490dca6bbf91418  gcc/testsuite/gcc.dg/pr119493-2.c
  c1277bce749b8ccc1290ccba56123e5e  gcc/testsuite/gcc.dg/pr119594.c
  a38b813746f78dafd9d21f9226897ece  gcc/testsuite/gcc.dg/pr119612.c
+ 3a763a8a1fe7fdcba334793aad2e991d  gcc/testsuite/gcc.dg/pr119651.c
  049190a5759317b31fbb993a0bbcaeac  gcc/testsuite/gcc.dg/pr119664.c
  d46c3d817ec7eb626ac716e18003ed0b  gcc/testsuite/gcc.dg/pr119712.c
  e33af444b933ae4b76c6fd6ea535e112  gcc/testsuite/gcc.dg/pr119717.c
*************** e33af444b933ae4b76c6fd6ea535e112  gcc/te
*** 49816,49828 ****
--- 58666,58759 ----
  2518844f3bab4851f61e1608c80ae741  gcc/testsuite/gcc.dg/pr120057-1.c
  cb7b5505103ef079e746dd619a21ee86  gcc/testsuite/gcc.dg/pr120057-2.c
  5db833c38de3e5ade44290c729fb748c  gcc/testsuite/gcc.dg/pr120074.c
+ c1520f6dceb2ad219f9c1f006e65ea92  gcc/testsuite/gcc.dg/pr120277.c
+ d1fb0fcf1b0cfd267a038359c1a6435b  gcc/testsuite/gcc.dg/pr120303.c
  5bcef1d2686ff4144a4a4fcce9aad3ec  gcc/testsuite/gcc.dg/pr120353.c
  419de75d508972d0daecf2c3b360b2c8  gcc/testsuite/gcc.dg/pr120354.c
+ 689934c8e3065936b13e4d29e7945bf3  gcc/testsuite/gcc.dg/pr120380.c
+ fa5bb8fde0acecb33a479faffc86bd94  gcc/testsuite/gcc.dg/pr120381.c
+ 00ae80f6bc28b04e42c74bc9c2084c39  gcc/testsuite/gcc.dg/pr120447.c
  9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
+ 17a1e237b6ae68e2d4122d0a05fef1df  gcc/testsuite/gcc.dg/pr120510.c
+ 7e5ecdaab28f17bb60a37435dfa95af7  gcc/testsuite/gcc.dg/pr120525.c
+ fb8a0a60fb2754e29f845aad904922d4  gcc/testsuite/gcc.dg/pr120560.c
+ 529713b98b912597ae0fe979488eb31a  gcc/testsuite/gcc.dg/pr120630.c
  4a9d9632d82cf6c4f4f4acbad8ab018d  gcc/testsuite/gcc.dg/pr120638.c
+ b2094ecb5faddf978d10235a88f83571  gcc/testsuite/gcc.dg/pr120660.c
+ d2c0f87695635c09b6a893cd2d5c5478  gcc/testsuite/gcc.dg/pr120661-1.c
+ 799c5822cecd54a85c86ba442df0a63e  gcc/testsuite/gcc.dg/pr120661-2.c
+ 3617a8786eb32339e9abd40e5a0323eb  gcc/testsuite/gcc.dg/pr120701.c
+ c0c525eecd2cd89c13015bbfc26de2b7  gcc/testsuite/gcc.dg/pr120929.c
  c57884e34f257e33d206372fc675b716  gcc/testsuite/gcc.dg/pr121035.c
+ 6382d29706200ffee3fc8c0bb2ec393a  gcc/testsuite/gcc.dg/pr121081.c
+ f67888cb77a175aca5793c68c576187f  gcc/testsuite/gcc.dg/pr121104.c
  d602fec0c129037ce49acd7cccfd6266  gcc/testsuite/gcc.dg/pr121202.c
+ 942ef1841a793e5e296b868a6cfed912  gcc/testsuite/gcc.dg/pr121216.c
+ f3420ae2cec7581a0ad483e1abb174f2  gcc/testsuite/gcc.dg/pr121217.c
  7032b52dc2dd1e6cab514293c2d0b276  gcc/testsuite/gcc.dg/pr121322.c
+ 5d7224a5e3a015d4a5682c4597843dae  gcc/testsuite/gcc.dg/pr121391-1.c
+ a900268f8486ddee095c80302941ad60  gcc/testsuite/gcc.dg/pr121391-2.c
+ 205897ef272ce576adc8067b35b643a8  gcc/testsuite/gcc.dg/pr121468.c
+ a0985c9ac5a161a568f68afc0223c2c1  gcc/testsuite/gcc.dg/pr121506.c
+ 71c6e591a8086e2ab9fa3d6ce6f55e7b  gcc/testsuite/gcc.dg/pr121507.c
+ c43dd17628b8fb1f84264b202bffe1c1  gcc/testsuite/gcc.dg/pr121519.c
+ a0e82361440276cacba8161b406fa08c  gcc/testsuite/gcc.dg/pr121619.c
+ 4a0b062157a946d90ff3c34224ea0c66  gcc/testsuite/gcc.dg/pr121663.c
+ 109f8e8eead34ee30b66b43e4ce66cb4  gcc/testsuite/gcc.dg/pr121675.c
+ 596e137d1ef1fc5f142c61692ba512ae  gcc/testsuite/gcc.dg/pr121678.c
+ bf675da3de2d4a46664269703dd05797  gcc/testsuite/gcc.dg/pr121852.c
+ 6fcab1257c633aee2384f0d8fa3854e0  gcc/testsuite/gcc.dg/pr121921-1.c
+ 1268172e76401131acc77ad9fccb845f  gcc/testsuite/gcc.dg/pr121987.c
+ 3675df2622072bf0e5cccbf94e93a50f  gcc/testsuite/gcc.dg/pr122126_vextr.c
+ b975ebfa27ac446e553bacbb75421590  gcc/testsuite/gcc.dg/pr122126_vset.c
+ ea90b28181a941740c845e0095310a27  gcc/testsuite/gcc.dg/pr122200.c
+ 47e5eee5a7b9e8a561523488f8af584f  gcc/testsuite/gcc.dg/pr122343-1.c
+ e6de60b5642934aef50f416afd0dfef5  gcc/testsuite/gcc.dg/pr122348.c
+ 97e3ae8b831374d54e4e70a229baa234  gcc/testsuite/gcc.dg/pr122572.c
+ afbbdc9160c7bbb463b8a9a0ccecc1ec  gcc/testsuite/gcc.dg/pr122756.c
+ 6f902818ec608b0949c72df134c134a3  gcc/testsuite/gcc.dg/pr122773.c
+ 7344e7d40edaaaf0a7feba4fc50f3e85  gcc/testsuite/gcc.dg/pr122898.c
+ 5d8de0f478875a33cda1113051b9b2a0  gcc/testsuite/gcc.dg/pr122925.c
+ acdecc3711a0a56635d3de4e2064206c  gcc/testsuite/gcc.dg/pr122947.c
+ 9f4094b7196b5eab8c79608995a96efc  gcc/testsuite/gcc.dg/pr122991.c
+ 9fcb8913b9a18055b2a811284d59780e  gcc/testsuite/gcc.dg/pr123018.c
+ 1bf4d4ea489124fe631321c4cf1d7d17  gcc/testsuite/gcc.dg/pr123048.c
+ 8d183af1add0c55a02ce4b5c0c03915c  gcc/testsuite/gcc.dg/pr123109-scalar.c
+ fd6c60c5d614fb23d302992511d2b983  gcc/testsuite/gcc.dg/pr123109-vector.c
+ 4bb95b7b27d5cf33c1f6f21056e27c11  gcc/testsuite/gcc.dg/pr123110-1.c
+ 5e8f304c4d6cec9c5b0a6f0ed430bd96  gcc/testsuite/gcc.dg/pr123114.c
+ a7854fc3636527bc932319df4a19bc42  gcc/testsuite/gcc.dg/pr123205.c
+ 3190514d319cec9f570a97df97be613b  gcc/testsuite/gcc.dg/pr123294-1.c
+ 9458a512908504ff59f92077cde8c882  gcc/testsuite/gcc.dg/pr123295-1.c
+ 5fbcf85870a8e9883872a384e3cf5e12  gcc/testsuite/gcc.dg/pr123300.c
+ 785eb6e7b2c08f02c9e8a5f33f827f1a  gcc/testsuite/gcc.dg/pr123309.c
+ 42c347a411cbc63b24f2602bf954a4b7  gcc/testsuite/gcc.dg/pr123314.c
+ afeafc726f9068066b4e782197455056  gcc/testsuite/gcc.dg/pr123319.c
+ abcd5a197963ed0347e0d79e6d9ce62f  gcc/testsuite/gcc.dg/pr123356-1.c
+ ce83c5e57a56f41479e8822e32d633ea  gcc/testsuite/gcc.dg/pr123356-2.c
+ ceb2232519d250481d028677d0ad0be9  gcc/testsuite/gcc.dg/pr123424.c
+ 3e218010f127737b8ec6efbf8cb00273  gcc/testsuite/gcc.dg/pr123431.c
+ 4288ef3d117ee2b6aabf0d6303eeb663  gcc/testsuite/gcc.dg/pr123435-1.c
+ 4e3fe4e93ab76bd43ab7833b477c70e9  gcc/testsuite/gcc.dg/pr123435-2.c
+ b2e314205231dfc3005d83207407379b  gcc/testsuite/gcc.dg/pr123447.c
+ 8777f8d696013813d0ef12bf2fd19ecd  gcc/testsuite/gcc.dg/pr123461-1.c
+ 0da2c71eea90fdad386d74777acfa661  gcc/testsuite/gcc.dg/pr123463.c
+ 6446106101a7a7ffa68140971682fb4f  gcc/testsuite/gcc.dg/pr123472.c
+ e43dcd43531182c1839bc3842972ef9a  gcc/testsuite/gcc.dg/pr123475.c
+ 2e58c4d553f61913c629f0f4e16cef6c  gcc/testsuite/gcc.dg/pr123537.c
+ 40c720d493fdf466beac8d906dcdb821  gcc/testsuite/gcc.dg/pr123544.c
+ b64bff50aa325d3cdf648a6b7fec2e46  gcc/testsuite/gcc.dg/pr123656.c
+ 1d51dc92bcea9d1f45d53070aed9c180  gcc/testsuite/gcc.dg/pr123672.c
+ 46c8447cd9ed9e727c11f1f0d3e8967d  gcc/testsuite/gcc.dg/pr123716.c
+ 01c4bfafe1ef8627df22f4a8e2581122  gcc/testsuite/gcc.dg/pr123803-1.c
+ c862a5d1aff47e4a5a9bc1b257f3fd19  gcc/testsuite/gcc.dg/pr123856.c
+ 5cd501fa005281d9c622810307478c79  gcc/testsuite/gcc.dg/pr123882.c
+ f402be89e4891c76c691c8144fe168f7  gcc/testsuite/gcc.dg/pr124138.c
+ 5bc3929959db4e7efdda8bc02c4c7e26  gcc/testsuite/gcc.dg/pr124454-1.c
+ f733cdb22a88b058648393623d505a3f  gcc/testsuite/gcc.dg/pr124476.c
+ 0b8c4e1486bc61b4cdb4efb2e7f08d74  gcc/testsuite/gcc.dg/pr124635.c
+ 0ced2b8b876682f9fea2fd8e8fc8b6a9  gcc/testsuite/gcc.dg/pr124671.c
+ f85e3805a900aeb94e96e6ea1712a125  gcc/testsuite/gcc.dg/pr124809.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** ed16befde6c8a1872f3b428d5b8ec674  gcc/te
*** 50095,50101 ****
  6989f81f45263c78d14dac55c9cd9110  gcc/testsuite/gcc.dg/pr32338-2.c
  bbcf89428a53027116f738ebeb0279aa  gcc/testsuite/gcc.dg/pr32370.c
  40d9c1be205a16b2df51e265f7dad83e  gcc/testsuite/gcc.dg/pr32374.c
! be3e07c28f6c7e01eee65fb82051b527  gcc/testsuite/gcc.dg/pr32450.c
  02076881055977d63706c40842de7c17  gcc/testsuite/gcc.dg/pr32559.c
  4f94bb5ec2c9746f5cf4ceb867151e62  gcc/testsuite/gcc.dg/pr32573.c
  1cd571b1500619697e33cdb824b0e175  gcc/testsuite/gcc.dg/pr32721.c
--- 59026,59032 ----
  6989f81f45263c78d14dac55c9cd9110  gcc/testsuite/gcc.dg/pr32338-2.c
  bbcf89428a53027116f738ebeb0279aa  gcc/testsuite/gcc.dg/pr32370.c
  40d9c1be205a16b2df51e265f7dad83e  gcc/testsuite/gcc.dg/pr32374.c
! 617dbe3888b2cd4ca2149dd3904de319  gcc/testsuite/gcc.dg/pr32450.c
  02076881055977d63706c40842de7c17  gcc/testsuite/gcc.dg/pr32559.c
  4f94bb5ec2c9746f5cf4ceb867151e62  gcc/testsuite/gcc.dg/pr32573.c
  1cd571b1500619697e33cdb824b0e175  gcc/testsuite/gcc.dg/pr32721.c
*************** debe1bb0f742ad6fe5c8e1d3952c624d  gcc/te
*** 50298,50304 ****
  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
--- 59229,59235 ----
  aa9bb852bac4875a61c8c9843bf4ef2e  gcc/testsuite/gcc.dg/pr41345.c
  5e470e4479566106d5d2e9abcb6f2094  gcc/testsuite/gcc.dg/pr41454.c
  dd22a4c4500ebaa0f16e25ca72fdacf8  gcc/testsuite/gcc.dg/pr41470.c
! 90e3f9333c2f23321b075a73f6ccf681  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
*************** bdf225977f6fa941dd47201d70740d51  gcc/te
*** 50359,50365 ****
  a538ba5435cd3b326641d9fa1ec6bd10  gcc/testsuite/gcc.dg/pr43557-2.c
  d99f23b3a3c3fc3eb2ae1a4a37dcab7a  gcc/testsuite/gcc.dg/pr43562.c
  da3a11a81d6baa587f3928a163d7f343  gcc/testsuite/gcc.dg/pr43564.c
! e415d69104a6c3a1501ac297eac4da71  gcc/testsuite/gcc.dg/pr43643.c
  124390b09843414aa638992f3a4705a2  gcc/testsuite/gcc.dg/pr43670.c
  c0057c21378b571cccb57351b9ef9acd  gcc/testsuite/gcc.dg/pr43730.c
  e7531c0be062d752d1ed493e5d39c393  gcc/testsuite/gcc.dg/pr43783.c
--- 59290,59296 ----
  a538ba5435cd3b326641d9fa1ec6bd10  gcc/testsuite/gcc.dg/pr43557-2.c
  d99f23b3a3c3fc3eb2ae1a4a37dcab7a  gcc/testsuite/gcc.dg/pr43562.c
  da3a11a81d6baa587f3928a163d7f343  gcc/testsuite/gcc.dg/pr43564.c
! c717c30e6f5dc28d8f41dd2946f276d2  gcc/testsuite/gcc.dg/pr43643.c
  124390b09843414aa638992f3a4705a2  gcc/testsuite/gcc.dg/pr43670.c
  c0057c21378b571cccb57351b9ef9acd  gcc/testsuite/gcc.dg/pr43730.c
  e7531c0be062d752d1ed493e5d39c393  gcc/testsuite/gcc.dg/pr43783.c
*************** c02fa2301e188a2a455f9e563251e0ab  gcc/te
*** 50698,50704 ****
  1d8c36210d3670ed7233860a3ae6d969  gcc/testsuite/gcc.dg/pr55122.c
  2feff382cd1763b0f7fcb4d1fbd09d8c  gcc/testsuite/gcc.dg/pr55150-1.c
  318809cf4617ac74fa55ca4c401067dd  gcc/testsuite/gcc.dg/pr55150-2.c
! aa91db30f4a67a45b35a7ea2607df8a7  gcc/testsuite/gcc.dg/pr55152-2.c
  815043146bd85da5bcefd5235fc403ab  gcc/testsuite/gcc.dg/pr55152.c
  6ce0cac6549a893cdf7f5bffc7f596ba  gcc/testsuite/gcc.dg/pr55153.c
  33b8d22c163e4008eca016572aae682e  gcc/testsuite/gcc.dg/pr55191.c
--- 59629,59635 ----
  1d8c36210d3670ed7233860a3ae6d969  gcc/testsuite/gcc.dg/pr55122.c
  2feff382cd1763b0f7fcb4d1fbd09d8c  gcc/testsuite/gcc.dg/pr55150-1.c
  318809cf4617ac74fa55ca4c401067dd  gcc/testsuite/gcc.dg/pr55150-2.c
! e9600b480b1d58fd2d8390da11f517f3  gcc/testsuite/gcc.dg/pr55152-2.c
  815043146bd85da5bcefd5235fc403ab  gcc/testsuite/gcc.dg/pr55152.c
  6ce0cac6549a893cdf7f5bffc7f596ba  gcc/testsuite/gcc.dg/pr55153.c
  33b8d22c163e4008eca016572aae682e  gcc/testsuite/gcc.dg/pr55191.c
*************** ca7c319ae573ff4f2c1fdde105b552b8  gcc/te
*** 50837,50843 ****
  fd5b5565eb3ceb4dc405f80234ea32f5  gcc/testsuite/gcc.dg/pr60866.c
  3ec83a08d3278e16deac219a0e98716f  gcc/testsuite/gcc.dg/pr60915.c
  d2c91f0601aece029dd3340da8167e6d  gcc/testsuite/gcc.dg/pr61045.c
! 84adfd4024a86c81cd70c690727d8f78  gcc/testsuite/gcc.dg/pr61053.c
  fd6d55cfa9bf35d351e1a730e13d5043  gcc/testsuite/gcc.dg/pr61058.c
  e2d94f81ab73335d50800841dbd4b12c  gcc/testsuite/gcc.dg/pr61060.c
  5a9d386362e104a85e47611c5e368830  gcc/testsuite/gcc.dg/pr61077.c
--- 59768,59774 ----
  fd5b5565eb3ceb4dc405f80234ea32f5  gcc/testsuite/gcc.dg/pr60866.c
  3ec83a08d3278e16deac219a0e98716f  gcc/testsuite/gcc.dg/pr60915.c
  d2c91f0601aece029dd3340da8167e6d  gcc/testsuite/gcc.dg/pr61045.c
! 7e8260bbaa56f4b68aa8639ccf340ad4  gcc/testsuite/gcc.dg/pr61053.c
  fd6d55cfa9bf35d351e1a730e13d5043  gcc/testsuite/gcc.dg/pr61058.c
  e2d94f81ab73335d50800841dbd4b12c  gcc/testsuite/gcc.dg/pr61060.c
  5a9d386362e104a85e47611c5e368830  gcc/testsuite/gcc.dg/pr61077.c
*************** a4e31857d29e491c9e10cab0c7418999  gcc/te
*** 51017,51023 ****
  17af0c6fd22852d41bf563af796ba75d  gcc/testsuite/gcc.dg/pr67964.c
  1b92876bfdf74cd013905bc13a4e3425  gcc/testsuite/gcc.dg/pr68024.c
  bafa800c13b3f396448834609a245b9f  gcc/testsuite/gcc.dg/pr68088_1.c
! 3e58ba46cf918c627ca4d4b6df760309  gcc/testsuite/gcc.dg/pr68090.c
  69c3e3367401a89ffe9e39ef1317df1c  gcc/testsuite/gcc.dg/pr68112.c
  fe7ef582e37d9691649dc50a2e0357f2  gcc/testsuite/gcc.dg/pr68129_1.c
  18d42254aaeedf3ee06abcca146f8308  gcc/testsuite/gcc.dg/pr68134.c
--- 59948,59954 ----
  17af0c6fd22852d41bf563af796ba75d  gcc/testsuite/gcc.dg/pr67964.c
  1b92876bfdf74cd013905bc13a4e3425  gcc/testsuite/gcc.dg/pr68024.c
  bafa800c13b3f396448834609a245b9f  gcc/testsuite/gcc.dg/pr68088_1.c
! 16e50d4d6ac9f78c1bba7e261bd5a01f  gcc/testsuite/gcc.dg/pr68090.c
  69c3e3367401a89ffe9e39ef1317df1c  gcc/testsuite/gcc.dg/pr68112.c
  fe7ef582e37d9691649dc50a2e0357f2  gcc/testsuite/gcc.dg/pr68129_1.c
  18d42254aaeedf3ee06abcca146f8308  gcc/testsuite/gcc.dg/pr68134.c
*************** a45d8a7ea58bf6c772c8fa0d9d6f1ca5  gcc/te
*** 51187,51199 ****
  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
--- 60118,60131 ----
  e122dc98b70e5fc3d729057a5419c246  gcc/testsuite/gcc.dg/pr77975.c
  a777a206da2c1bfe3ba53d32fb8b2e9c  gcc/testsuite/gcc.dg/pr78138.c
  427e79810052c59fa2a8c9b43fbdfa29  gcc/testsuite/gcc.dg/pr78148.c
! 1c5977aa48ef3ba86e7ea298adde53d4  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
! ec6de6dc7e87c891763ef77447eb4094  gcc/testsuite/gcc.dg/pr78408-1.c
! 6561e92da3decd7e94ff333e0a4bcccd  gcc/testsuite/gcc.dg/pr78408-2.c
! 8674b992e5bdd9a84d819eb0da93b58a  gcc/testsuite/gcc.dg/pr78408-3.c
  6f2d058063e1aeba0dd1950b50cd76e6  gcc/testsuite/gcc.dg/pr78445.c
  3fcd5b7bdc484a6133ea1b07bf2bd0a7  gcc/testsuite/gcc.dg/pr78468.c
  bc1678a9ca084c4a9b93bc2d19365725  gcc/testsuite/gcc.dg/pr78526.c
*************** b0750cc8ba04869cc1e70217f4eebdbc  gcc/te
*** 51486,51494 ****
  51488233d2ef3dad91c1b1404439bff0  gcc/testsuite/gcc.dg/pr87483.c
  b1250df26ff8ccc22fe46e310c4934e6  gcc/testsuite/gcc.dg/pr87485.c
  a357c4dca7ce74a04dd61ff432ff8404  gcc/testsuite/gcc.dg/pr87490.c
! 9f5835dddff06438d1493a4e9eb56c06  gcc/testsuite/gcc.dg/pr87600-1.c
! 941bf2bb808441fd8f30ce9dc0733891  gcc/testsuite/gcc.dg/pr87600-2.c
! 28c810126f7d3c5ae3071696d39f9f29  gcc/testsuite/gcc.dg/pr87600.h
  b7d45912d0dac5e2ce046c07528b0357  gcc/testsuite/gcc.dg/pr87672.c
  1e2ee0fcf0cc52376376b86486419c06  gcc/testsuite/gcc.dg/pr87746.c
  224228e72fa0c94015acbd06f5823e98  gcc/testsuite/gcc.dg/pr87790.c
--- 60418,60427 ----
  51488233d2ef3dad91c1b1404439bff0  gcc/testsuite/gcc.dg/pr87483.c
  b1250df26ff8ccc22fe46e310c4934e6  gcc/testsuite/gcc.dg/pr87485.c
  a357c4dca7ce74a04dd61ff432ff8404  gcc/testsuite/gcc.dg/pr87490.c
! 2074c70265dd55ff5184741b46a809c2  gcc/testsuite/gcc.dg/pr87600-1.c
! 7374c7fb7ac6f5385bc4d7a0939d9f1e  gcc/testsuite/gcc.dg/pr87600-2.c
! 0918291826befd2f5bff5fb1d8072547  gcc/testsuite/gcc.dg/pr87600-3.c
! 74d28a5be04fc65ca20ae9dde0fb1194  gcc/testsuite/gcc.dg/pr87600.h
  b7d45912d0dac5e2ce046c07528b0357  gcc/testsuite/gcc.dg/pr87672.c
  1e2ee0fcf0cc52376376b86486419c06  gcc/testsuite/gcc.dg/pr87746.c
  224228e72fa0c94015acbd06f5823e98  gcc/testsuite/gcc.dg/pr87790.c
*************** be04382a35ebb1cfae1b2168f1693a94  gcc/te
*** 51517,51522 ****
--- 60450,60456 ----
  8611c934627a016395d5e38661ac812a  gcc/testsuite/gcc.dg/pr88444.c
  ca44df045802a83545871c2e454164d1  gcc/testsuite/gcc.dg/pr88563.c
  9bc22a141d09239c0b7e4cda9f0c7526  gcc/testsuite/gcc.dg/pr88568.c
+ 5f8ce6e613ad12bec6228bed0c30533b  gcc/testsuite/gcc.dg/pr88576.c
  3d03b712ec5ddcf1011a2e3ad2937fab  gcc/testsuite/gcc.dg/pr88594.c
  bcac07b1acca5a8196371cf13c0b577a  gcc/testsuite/gcc.dg/pr88598-1.c
  4065bf341ff8b4584332321904868639  gcc/testsuite/gcc.dg/pr88598-2.c
*************** b6a6442523e13cc8d22cef6d9b29643f  gcc/te
*** 51548,51554 ****
  b8275290466222c56ac76a85e9dc3e4f  gcc/testsuite/gcc.dg/pr89211.c
  6d86fe504f8715d8b161e54c57b05401  gcc/testsuite/gcc.dg/pr8927-1.c
  805c3b6133ae2a2da39e43c108f2cb04  gcc/testsuite/gcc.dg/pr89278.c
! 13b0978ff33d0cbc1a13a239910c73d5  gcc/testsuite/gcc.dg/pr89313.c
  a5a40cce7e2363c072bc64b0d5c4e25b  gcc/testsuite/gcc.dg/pr89314.c
  f7950ed4d54333553c86f865d0081b4f  gcc/testsuite/gcc.dg/pr89340.c
  e0bb97c06584dce3955740a9322025ef  gcc/testsuite/gcc.dg/pr89342.c
--- 60482,60488 ----
  b8275290466222c56ac76a85e9dc3e4f  gcc/testsuite/gcc.dg/pr89211.c
  6d86fe504f8715d8b161e54c57b05401  gcc/testsuite/gcc.dg/pr8927-1.c
  805c3b6133ae2a2da39e43c108f2cb04  gcc/testsuite/gcc.dg/pr89278.c
! 9f6074ff8f226351303b0a1939b89695  gcc/testsuite/gcc.dg/pr89313.c
  a5a40cce7e2363c072bc64b0d5c4e25b  gcc/testsuite/gcc.dg/pr89314.c
  f7950ed4d54333553c86f865d0081b4f  gcc/testsuite/gcc.dg/pr89340.c
  e0bb97c06584dce3955740a9322025ef  gcc/testsuite/gcc.dg/pr89342.c
*************** c94491c9101acbf5f3f978e24437879b  gcc/te
*** 51575,51580 ****
--- 60509,60515 ----
  e6faf0945d1f5f965c65759fe557a7d4  gcc/testsuite/gcc.dg/pr89734.c
  85a523bf44ade39913dc381d9bef54fe  gcc/testsuite/gcc.dg/pr89737.c
  6b4a47585c7d60c9cfe3d8323359f4e4  gcc/testsuite/gcc.dg/pr89795.c
+ 091a7f94e0d5361cc7dea150a7bcc1a1  gcc/testsuite/gcc.dg/pr89828.c
  6ef8056a7d60ac6e86aa28b8cd5e3b41  gcc/testsuite/gcc.dg/pr89984.c
  a24193887db72f1e75b2698c04b4ef32  gcc/testsuite/gcc.dg/pr90010.c
  6c043904623c4fbb3870bdf4cf56d084  gcc/testsuite/gcc.dg/pr90037.c
*************** bcd4b5d9c82e28d29459255dca15732c  gcc/te
*** 51588,51595 ****
  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
--- 60523,60530 ----
  007da9cc3379de76a6986f6c8d62f1aa  gcc/testsuite/gcc.dg/pr90733.c
  afa570e1edc03a94c45eb741b09cab0a  gcc/testsuite/gcc.dg/pr90756.c
  a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
! 5886ac77855adf1bbbf2e48e7c67e8a3  gcc/testsuite/gcc.dg/pr90838-2.c
! 8dc65b4ac368efb9857253224f40b65a  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
*************** c4703ef02cfa1fa41deda3412f80e980  gcc/te
*** 51600,51605 ****
--- 60535,60541 ----
  ae6290a43a38f48e933c747a1d1f3299  gcc/testsuite/gcc.dg/pr91134.c
  0835b2ca75603c1c11ac781095ca851d  gcc/testsuite/gcc.dg/pr91172.c
  b3a812009694e752663ca04925320324  gcc/testsuite/gcc.dg/pr91181.c
+ 453b3243dd5e97f67c50f13b57a5677c  gcc/testsuite/gcc.dg/pr91191.c
  21693825c7ee6a622528dd5b0f082c27  gcc/testsuite/gcc.dg/pr91193-1.c
  9289e5ec8b9b1fb287c7605916ca8fae  gcc/testsuite/gcc.dg/pr91193-2.c
  196c4342cb2568a603593ef3a72ee31d  gcc/testsuite/gcc.dg/pr91195.c
*************** dbee3538a18bef45f3a54729b574ae13  gcc/te
*** 51684,51694 ****
  fd36e17ce5abb4e77212836c4aa61205  gcc/testsuite/gcc.dg/pr94526.c
  d2666025ae58c20e36d06243ec17b107  gcc/testsuite/gcc.dg/pr94574.c
  ea3f6e969ab9dbd27c6e364f6cd1e41c  gcc/testsuite/gcc.dg/pr94589-1.c
! 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
--- 60620,60630 ----
  fd36e17ce5abb4e77212836c4aa61205  gcc/testsuite/gcc.dg/pr94526.c
  d2666025ae58c20e36d06243ec17b107  gcc/testsuite/gcc.dg/pr94574.c
  ea3f6e969ab9dbd27c6e364f6cd1e41c  gcc/testsuite/gcc.dg/pr94589-1.c
! 5efa39dda2a7362c4a77e20cff834bae  gcc/testsuite/gcc.dg/pr94589-2.c
  27b4c51b7060236f318a98e7dfe635d6  gcc/testsuite/gcc.dg/pr94589-3.c
! ff1ea6723ba5f97b174e3719ef7092da  gcc/testsuite/gcc.dg/pr94589-4.c
! 7735aed032e40772cf70078c92544254  gcc/testsuite/gcc.dg/pr94589-5.c
! 3f415487cf7489c02d6cb504e8979a05  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
*************** bb0f91c384e2b0c10f6a2b569f227ce2  gcc/te
*** 51802,51808 ****
  b31656f3d589501279f9b3957d76e7d8  gcc/testsuite/gcc.dg/pr97725.c
  2cafeb388acee553eacac0843032a2b5  gcc/testsuite/gcc.dg/pr97737.c
  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
--- 60738,60744 ----
  b31656f3d589501279f9b3957d76e7d8  gcc/testsuite/gcc.dg/pr97725.c
  2cafeb388acee553eacac0843032a2b5  gcc/testsuite/gcc.dg/pr97737.c
  cdfeca036db478839d22133998667f05  gcc/testsuite/gcc.dg/pr97741.c
! 8d11994a1a131620d37960ef3e45bdd2  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
*************** dd83a8b867ef8c886adacb097f55bc6b  gcc/te
*** 51814,51819 ****
--- 60750,60757 ----
  071d2ae1bd35b15c3f27a168b4050eb2  gcc/testsuite/gcc.dg/pr97955.c
  2fbd889735fcfc930838d4d0e5f735b3  gcc/testsuite/gcc.dg/pr97979.c
  25eabe894b19890870bd6364b863658a  gcc/testsuite/gcc.dg/pr97981.c
+ fa958ac207273b090e64c87c7bab9a7a  gcc/testsuite/gcc.dg/pr97986-1.c
+ d2ae17f41ffd43a3d17a1bdb3a9b4c66  gcc/testsuite/gcc.dg/pr97986-2.c
  3f8832bc33cb7145586e46cab40d393c  gcc/testsuite/gcc.dg/pr98029.c
  21a998d56f162b789d08957b34fcad4c  gcc/testsuite/gcc.dg/pr98099.c
  ec1830becced622760bda688ca2bb126  gcc/testsuite/gcc.dg/pr9814-1.c
*************** d604d9323f647ba625472c89e0281422  gcc/te
*** 51902,51907 ****
--- 60840,60847 ----
  398b3637b52a2ef982352b439856518c  gcc/testsuite/gcc.dg/predict-21.c
  181477d5de6bdd236d866a9634540fc3  gcc/testsuite/gcc.dg/predict-22.c
  cca79e9f199f3f1a6650b2b63e71902f  gcc/testsuite/gcc.dg/predict-23.c
+ 335be611540de3e875cf4401009971ae  gcc/testsuite/gcc.dg/predict-24.c
+ 8b0d9408a5ad2a4a2fbed34a39a12d3e  gcc/testsuite/gcc.dg/predict-25.c
  db02424a4c19e49ec9d7f6697aa99832  gcc/testsuite/gcc.dg/predict-3.c
  305021fbe14adc964b339f63ed4ed8f0  gcc/testsuite/gcc.dg/predict-4.c
  18ff4271089e0d93667ccab1cfa2a459  gcc/testsuite/gcc.dg/predict-5.c
*************** a69c0ed8db7dad6898af9609fa119bf4  gcc/te
*** 51946,51951 ****
--- 60886,60892 ----
  3b2f1be1b5ec4ce996ea925a2f8c167c  gcc/testsuite/gcc.dg/qual-return-9.c
  fa6e4618c862111306143bc22d6cb230  gcc/testsuite/gcc.dg/range-test-1.c
  b40a9d0cd8cc04909a88242a822ab148  gcc/testsuite/gcc.dg/range.h
+ 3c8f44b263fa2b19a5a74fed11d8fb2c  gcc/testsuite/gcc.dg/raw-string-1.c
  e4f44dea457e219eca0cd8bd565720f4  gcc/testsuite/gcc.dg/readonly-loc.c
  98eea3e821d725fdf285fd95a678691a  gcc/testsuite/gcc.dg/real-const-1.c
  ce5d2100f84d4a4e7bfd36cbbcf3718c  gcc/testsuite/gcc.dg/recip_sqrt_mult_1.c
*************** a107a9eae4cd59d68f55abfc11da7cec  gcc/te
*** 52007,52015 ****
  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
--- 60948,60959 ----
  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
+ 4a909bafc9c1db21d4b311d7fafd2dca  gcc/testsuite/gcc.dg/rtl/i386/vector_eq-2.c
+ 15525cb0069579146b25b83c9e5e7bcb  gcc/testsuite/gcc.dg/rtl/i386/vector_eq-3.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
! 7c5684bd93ee5f194df629270a23a3fb  gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c
! 63412a6bd4b847e5c4b62a88063ce6c0  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
*************** eb7e84bf599d4eff95e62177de9c772a  gcc/te
*** 52044,52073 ****
  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
  8ecbb4fd22f228acc936096f5fed21fb  gcc/testsuite/gcc.dg/self-right-shift.c
--- 60988,61020 ----
  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
! a9c2a9a116a50db8a0aea90b1457b93c  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
+ 11c406043066508f1c8c1d68038c665f  gcc/testsuite/gcc.dg/sarif-output/extra-semicolon.c
+ f5241916ba89197ea97f36973548b7d1  gcc/testsuite/gcc.dg/sarif-output/extra-semicolon.py
+ a51277a7038f05a21017012e098d749d  gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c
  8f8b84d2a2c3a40aa471376ef3ad86d4  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-1.h
  d3793bbe48652d7af1be40301a35eae3  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-2.h
  579c4b601aac5ae14e1340f88250575d  gcc/testsuite/gcc.dg/sarif-output/include-chain-1.c
  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
! 472dad2057e4615f1f0f19f292968314  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
! 670d7794a5d54e56bb9da430aa144d80  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
! 698351b52fb9271b564cb85d3f50e4d9  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
! 625b1a0bef817e688d28adcc057c5e5d  gcc/testsuite/gcc.dg/scantest-lto.c
  61448b028e590daa16b590a3a8025e23  gcc/testsuite/gcc.dg/sccopy-1.c
  d5126a2bd42a9c1593aedafecf29da00  gcc/testsuite/gcc.dg/section1.c
  8ecbb4fd22f228acc936096f5fed21fb  gcc/testsuite/gcc.dg/self-right-shift.c
*************** e177bd4a7f3cb433b33b2c59e4e0af3d  gcc/te
*** 52092,52098 ****
  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
--- 61039,61045 ----
  3294e4a5b74b99e369aaf413c51c9d9a  gcc/testsuite/gcc.dg/sibcall-1.c
  85669fc6c7689b5f5969e64fcf9cfade  gcc/testsuite/gcc.dg/sibcall-10.c
  2c3c94a61ed7b9f075ac496625f3df59  gcc/testsuite/gcc.dg/sibcall-11.c
! 32fa26d1e66fffb29d5b6d0e97431379  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
*************** ac450aef065e56a1638882d4941fdb1f  gcc/te
*** 52100,52105 ****
--- 61047,61053 ----
  62808c704ae0941d6882eb2639725b7e  gcc/testsuite/gcc.dg/sibcall-7.c
  ffee6308d78dda55af86280534155756  gcc/testsuite/gcc.dg/sibcall-8.c
  a9d1837d9fddf7d1517a251715a86a60  gcc/testsuite/gcc.dg/sibcall-9.c
+ ca6a2d6bca53665f4741a3469a1d4b88  gcc/testsuite/gcc.dg/sign-extend.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
*************** e7edbe5a2c71be83020688e5b9a6ae0d  gcc/te
*** 52117,52130 ****
  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
--- 61065,61078 ----
  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
! a31574d28aa0eaff1fc8c4bbccb6e38c  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
! 23a597c0870b162e131dfed969f7f63b  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
! 9fd0d84fb6a99cf5518505da1a7a902c  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
*************** b5774d82d5e7a13f47820c57cf1db3ea  gcc/te
*** 52168,52176 ****
  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
--- 61116,61124 ----
  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
! ec2127ac731a3b7ede207705d612cf8c  gcc/testsuite/gcc.dg/special/mips-abi.exp
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.dg/special/mips-abi.s
! 92ac52535b3b2df81184c6e3a08e865a  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
*************** dfb751744ae63c43f989ee13f0e517d6  gcc/te
*** 52297,52303 ****
  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
--- 61245,61251 ----
  5acf2012225c2563f5111699dc108d4e  gcc/testsuite/gcc.dg/sso/s6.c
  2881d668843202ec4c4e53caf7d29b7c  gcc/testsuite/gcc.dg/sso/s7.c
  dc1e222143fcffd35ee8b32c36dfe5e9  gcc/testsuite/gcc.dg/sso/s8.c
! 9dac79967a2ba8b457bfac3895ccac96  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
*************** fc94c5cf1382c5cc791f1e082f1bc93b  gcc/te
*** 52310,52317 ****
  382bc869de8f91b15abcc492492c27d8  gcc/testsuite/gcc.dg/sso/t9.c
  4bb868e2d5ae5ad0f471895fe036ce9d  gcc/testsuite/gcc.dg/sso/u5.c
  6a94b217dd2dc52bd804b559734d7d6d  gcc/testsuite/gcc.dg/sso/u6.c
! aadb80509f82b46b30f6e6764a2e2dd1  gcc/testsuite/gcc.dg/ssp-1.c
! 07c428d62b7171c3d051c3770f57156c  gcc/testsuite/gcc.dg/ssp-2.c
  b764f892e6c6f673878a4e8da208c16b  gcc/testsuite/gcc.dg/ssp-3.c
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
--- 61258,61265 ----
  382bc869de8f91b15abcc492492c27d8  gcc/testsuite/gcc.dg/sso/t9.c
  4bb868e2d5ae5ad0f471895fe036ce9d  gcc/testsuite/gcc.dg/sso/u5.c
  6a94b217dd2dc52bd804b559734d7d6d  gcc/testsuite/gcc.dg/sso/u6.c
! 69a6b654bb2d47347ae4dbf0251161dd  gcc/testsuite/gcc.dg/ssp-1.c
! 64df1b69389530e2e479e5b53cee55e8  gcc/testsuite/gcc.dg/ssp-2.c
  b764f892e6c6f673878a4e8da208c16b  gcc/testsuite/gcc.dg/ssp-3.c
  5843aab6624989ad947aa1f77c816bce  gcc/testsuite/gcc.dg/ssp-4.c
  70e6f2a4c4d5735002d0b1f7dd18ddd2  gcc/testsuite/gcc.dg/stack-check-10.c
*************** a4e7912ba45315f15f41a05f18653c74  gcc/te
*** 52328,52336 ****
  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
  f448887cba9d374d141b220fa79ed665  gcc/testsuite/gcc.dg/stdckdint-2.c
  f4760013e77ec339cce4491012f46d96  gcc/testsuite/gcc.dg/stdint-width-1.c
--- 61276,61284 ----
  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
! 2fc7a54e6e7a910c04f974413edfe394  gcc/testsuite/gcc.dg/stack-usage-1.c
  198c846924d490e8eba17829d0caf626  gcc/testsuite/gcc.dg/stack-usage-2.c
! 3375b039bdaf5a1d18366c0c2f11f507  gcc/testsuite/gcc.dg/stackprotectexplicit1.c
  6e9664759f9a2a278adb8639495ec2e1  gcc/testsuite/gcc.dg/stdckdint-1.c
  f448887cba9d374d141b220fa79ed665  gcc/testsuite/gcc.dg/stdckdint-2.c
  f4760013e77ec339cce4491012f46d96  gcc/testsuite/gcc.dg/stdint-width-1.c
*************** bb26c0da7df248d044cf5f83428206bf  gcc/te
*** 52352,52359 ****
  6dfbd7669b05fa32377f1d387f6b10fd  gcc/testsuite/gcc.dg/store_merging_15.c
  a9371402086b38138c9017bde847bf83  gcc/testsuite/gcc.dg/store_merging_16.c
  26403e8ae1d70e44af1f5f33343f4a2a  gcc/testsuite/gcc.dg/store_merging_17.c
! 7a99330458cafca53d5652eb17cf7a70  gcc/testsuite/gcc.dg/store_merging_18.c
! 13cc1dd3f3c86243edc35d95deff2795  gcc/testsuite/gcc.dg/store_merging_19.c
  516117f10841e46c17e880197dde01b3  gcc/testsuite/gcc.dg/store_merging_2.c
  974e9bde77a5300698b30ff61c50d1e9  gcc/testsuite/gcc.dg/store_merging_20.c
  ff5638c9cb6bd567e0a1a1acee287fe2  gcc/testsuite/gcc.dg/store_merging_21.c
--- 61300,61307 ----
  6dfbd7669b05fa32377f1d387f6b10fd  gcc/testsuite/gcc.dg/store_merging_15.c
  a9371402086b38138c9017bde847bf83  gcc/testsuite/gcc.dg/store_merging_16.c
  26403e8ae1d70e44af1f5f33343f4a2a  gcc/testsuite/gcc.dg/store_merging_17.c
! 4b15c0eecc4e37fd27332be74ce5bc79  gcc/testsuite/gcc.dg/store_merging_18.c
! 46049504ac4c633e849f89e09628e3eb  gcc/testsuite/gcc.dg/store_merging_19.c
  516117f10841e46c17e880197dde01b3  gcc/testsuite/gcc.dg/store_merging_2.c
  974e9bde77a5300698b30ff61c50d1e9  gcc/testsuite/gcc.dg/store_merging_20.c
  ff5638c9cb6bd567e0a1a1acee287fe2  gcc/testsuite/gcc.dg/store_merging_21.c
*************** b6afda10a5c27a727b0d08f21d516d4e  gcc/te
*** 52485,52491 ****
  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
--- 61433,61439 ----
  266cb582a2b22ec485ff4459934b2dff  gcc/testsuite/gcc.dg/strlenopt-78.c
  19ad1d7297ba36f34f9d6cafb32b03df  gcc/testsuite/gcc.dg/strlenopt-79.c
  3483f22866ff8ad2f086a39d551abaeb  gcc/testsuite/gcc.dg/strlenopt-8.c
! d74278cb20b35a255c293a65cb178fc8  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
*************** c66363249ca43baee9f09bde5baeb896  gcc/te
*** 52512,52517 ****
--- 61460,61466 ----
  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
+ edef350b4a9e0e8719343e4da222a540  gcc/testsuite/gcc.dg/struct-alias-2.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
*************** ac2cd2a457dc103b2a7239970846ea88  gcc/te
*** 52562,52567 ****
--- 61511,61517 ----
  9407bf5ea124fe12c7b85eb64edd26d4  gcc/testsuite/gcc.dg/tls/alias-1.c
  d3ba9e4ca8835a4c881d04331bc19e75  gcc/testsuite/gcc.dg/tls/alpha-1.c
  1cc4a80c9088f4e403b8d48504f712c5  gcc/testsuite/gcc.dg/tls/asm-1.c
+ 94c282565479205ba758284ad8a37be1  gcc/testsuite/gcc.dg/tls/data-sections-1.c
  b05b43d75435d93d400ab9deb87b4827  gcc/testsuite/gcc.dg/tls/debug-1.c
  afbcc1fa79a9ce40765e7481e29d01d6  gcc/testsuite/gcc.dg/tls/diag-1.c
  00fa7425da9b4f106f06d9cd99291179  gcc/testsuite/gcc.dg/tls/diag-2.c
*************** a25e6d22e39772bf36ad7e281b7e57e8  gcc/te
*** 52610,52619 ****
  796d5642fd9a5bf2871955a7f51a2b2c  gcc/testsuite/gcc.dg/tls/section-1.c
  b6230b3887f6b80a34081478f9506950  gcc/testsuite/gcc.dg/tls/section-2.c
  bd750cfcc2981be8695d1ba87cf4e02d  gcc/testsuite/gcc.dg/tls/struct-1.c
  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
--- 61560,61570 ----
  796d5642fd9a5bf2871955a7f51a2b2c  gcc/testsuite/gcc.dg/tls/section-1.c
  b6230b3887f6b80a34081478f9506950  gcc/testsuite/gcc.dg/tls/section-2.c
  bd750cfcc2981be8695d1ba87cf4e02d  gcc/testsuite/gcc.dg/tls/struct-1.c
+ ba73729a8d83a7b4b93fafded221f84a  gcc/testsuite/gcc.dg/tls/struct-2.c
  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
! a317b0fb8cae552087aeb10c5c9d00ca  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
*************** fe3f545b4342e4629b8e3f50ec72aa75  gcc/te
*** 52703,52709 ****
  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
--- 61654,61660 ----
  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
! 83923851b17df03bb0a94967810fdb54  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
*************** c2a46e867e783aa09ce428803ff2eb1f  gcc/te
*** 52853,52859 ****
  fb1ac4ca7d21a0ebd69de3b13f313e3c  gcc/testsuite/gcc.dg/torture/bitint-61.c
  ec46adffd1b71b37080f2c2fdfd30dbb  gcc/testsuite/gcc.dg/torture/bitint-62.c
  12041a6757f63a687858dedea1213648  gcc/testsuite/gcc.dg/torture/bitint-63.c
! 46e3e76051e6a69f02c46d10e1cacefa  gcc/testsuite/gcc.dg/torture/bitint-64.c
  d3fc0f9dcd751a3330cf8dad7a58f270  gcc/testsuite/gcc.dg/torture/bitint-65.c
  32852fe0c4231daaf28127cda08a71f6  gcc/testsuite/gcc.dg/torture/bitint-66.c
  308ffdbb2d530e7bb0d9566dcc845610  gcc/testsuite/gcc.dg/torture/bitint-67.c
--- 61804,61810 ----
  fb1ac4ca7d21a0ebd69de3b13f313e3c  gcc/testsuite/gcc.dg/torture/bitint-61.c
  ec46adffd1b71b37080f2c2fdfd30dbb  gcc/testsuite/gcc.dg/torture/bitint-62.c
  12041a6757f63a687858dedea1213648  gcc/testsuite/gcc.dg/torture/bitint-63.c
! 83257a510a72e691a61174dc5bc35c20  gcc/testsuite/gcc.dg/torture/bitint-64.c
  d3fc0f9dcd751a3330cf8dad7a58f270  gcc/testsuite/gcc.dg/torture/bitint-65.c
  32852fe0c4231daaf28127cda08a71f6  gcc/testsuite/gcc.dg/torture/bitint-66.c
  308ffdbb2d530e7bb0d9566dcc845610  gcc/testsuite/gcc.dg/torture/bitint-67.c
*************** d74952b1e73d78295fc0ccb16c0a8b6f  gcc/te
*** 52868,52875 ****
--- 61819,61839 ----
  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
+ e5e2d1086821d7f61f870b51487c30ef  gcc/testsuite/gcc.dg/torture/bitint-78.c
+ 46f45efde03eb55094be29f7a7d477e0  gcc/testsuite/gcc.dg/torture/bitint-79.c
  cf2a2337cf009457d836bd48e49c0af3  gcc/testsuite/gcc.dg/torture/bitint-8.c
+ fa228ee9fbe53472bf0fbc0d82dbf06c  gcc/testsuite/gcc.dg/torture/bitint-80.c
+ 8ccddc7d4c25a0d622af001f456097fb  gcc/testsuite/gcc.dg/torture/bitint-81.c
+ 6ce8637cd350c339b1f3d14f609b9f31  gcc/testsuite/gcc.dg/torture/bitint-82.c
+ 25ae478f26e4b1f0fbc9427fc6d848a3  gcc/testsuite/gcc.dg/torture/bitint-83.c
+ d855a0135427383c84dcb22a8f97fca3  gcc/testsuite/gcc.dg/torture/bitint-84.c
+ 368a2f51dfadfa4e9fbd0017065b6a83  gcc/testsuite/gcc.dg/torture/bitint-85.c
+ df47ffb52bc4112cf0bb370223322f50  gcc/testsuite/gcc.dg/torture/bitint-86.c
+ fcb27f5c6615c1e7ae4a3e66d1e30947  gcc/testsuite/gcc.dg/torture/bitint-87.c
+ 598dc993d57a9418ab60b38aa38e0187  gcc/testsuite/gcc.dg/torture/bitint-88.c
+ 1ad26beb2787e4e7686056e041ec37ca  gcc/testsuite/gcc.dg/torture/bitint-89.c
  4d03bd57dac0507a44cc15b9afacd8a3  gcc/testsuite/gcc.dg/torture/bitint-9.c
+ 227bb4a5290ed530d603df629fbbde77  gcc/testsuite/gcc.dg/torture/bitint-90.c
  cf9904d4026e69bddaf745011bbaaab3  gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
  c3c39411545c83e500562780b71883b6  gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
  3799cfeec447b62af156b116f77ae4e8  gcc/testsuite/gcc.dg/torture/builtin-convert-1.c
*************** b04080329963def55af4aa7a95268fbe  gcc/te
*** 52899,52907 ****
  fa7bdb79eb170773050b26a5ed2ae1ec  gcc/testsuite/gcc.dg/torture/builtin-math-3.c
  86c9312908e71a32a216fd720343d58f  gcc/testsuite/gcc.dg/torture/builtin-math-4.c
  091ba46b9b5948f7b1173f21c6c558b6  gcc/testsuite/gcc.dg/torture/builtin-math-5.c
! 35aafd27620207da2f66dd0e44ff780f  gcc/testsuite/gcc.dg/torture/builtin-math-6.c
  6f699b99531328babffd4ec110ba2fd7  gcc/testsuite/gcc.dg/torture/builtin-math-7.c
  c77f4d57bad6850b166ed11f47ce8a4e  gcc/testsuite/gcc.dg/torture/builtin-math-8.c
  d7925eb09751128af786d99274bd0ab7  gcc/testsuite/gcc.dg/torture/builtin-minmax-1.c
  8fb73f7d131e21da3236db0dd505ca7d  gcc/testsuite/gcc.dg/torture/builtin-modf-1.c
  5463770205f265e1ec6ff8e46d339667  gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c
--- 61863,61872 ----
  fa7bdb79eb170773050b26a5ed2ae1ec  gcc/testsuite/gcc.dg/torture/builtin-math-3.c
  86c9312908e71a32a216fd720343d58f  gcc/testsuite/gcc.dg/torture/builtin-math-4.c
  091ba46b9b5948f7b1173f21c6c558b6  gcc/testsuite/gcc.dg/torture/builtin-math-5.c
! 2a86d2b8d17f5c82a3b1eac7e071ce50  gcc/testsuite/gcc.dg/torture/builtin-math-6.c
  6f699b99531328babffd4ec110ba2fd7  gcc/testsuite/gcc.dg/torture/builtin-math-7.c
  c77f4d57bad6850b166ed11f47ce8a4e  gcc/testsuite/gcc.dg/torture/builtin-math-8.c
+ 66c47832fbdd5fbbcb932d9af3bb0a39  gcc/testsuite/gcc.dg/torture/builtin-math-9.c
  d7925eb09751128af786d99274bd0ab7  gcc/testsuite/gcc.dg/torture/builtin-minmax-1.c
  8fb73f7d131e21da3236db0dd505ca7d  gcc/testsuite/gcc.dg/torture/builtin-modf-1.c
  5463770205f265e1ec6ff8e46d339667  gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c
*************** b465b03e50a5f0e6eb3f4fc778cae87c  gcc/te
*** 52913,52918 ****
--- 61878,61884 ----
  c1b87db2a9e9bd9b79aeb89e694fd159  gcc/testsuite/gcc.dg/torture/builtin-round-roundevenf128.c
  9e1b5d427790f2b01d5620a8b551a56a  gcc/testsuite/gcc.dg/torture/builtin-rounding-1.c
  e09f1e946db0ab1dc4d3acd77ea2b116  gcc/testsuite/gcc.dg/torture/builtin-self.c
+ c2dc4a738c80577d7e4b917e325e63aa  gcc/testsuite/gcc.dg/torture/builtin-shufflevector-pr123156.c
  fe01d458fb1e7b307aca4d27de62eff0  gcc/testsuite/gcc.dg/torture/builtin-sin-mpfr-1.c
  8d42dae4813a5c391a3481a72ac9c577  gcc/testsuite/gcc.dg/torture/builtin-sprintf.c
  23e1ea0bdd97005c1b4f8564d23f2b6a  gcc/testsuite/gcc.dg/torture/builtin-sqrt-cmp-1.c
*************** dca6b9a0b04be64d1fd91290469bb98b  gcc/te
*** 52925,52930 ****
--- 61891,61898 ----
  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
+ 705b36bbe754ddbc90ceb67b64137876  gcc/testsuite/gcc.dg/torture/copy-prop-aggr-zero-1.c
+ a2d2883c0635a3bb375a77e1f0c84092  gcc/testsuite/gcc.dg/torture/copy-prop-aggr-zero-2.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
*************** d8668812771260f53e423fb652ede14e  gcc/te
*** 52999,53005 ****
  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/testsuite/gcc.dg/torture/dfp-default-init-1.c
  309fb84632cbbf1dec8848dc9a808a83  gcc/testsuite/gcc.dg/torture/dfp-default-init-2.c
  f0a0abbf88d90c241d5a79a842755381  gcc/testsuite/gcc.dg/torture/dfp-default-init-3.c
--- 61967,61973 ----
  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
! 6457bd26444160ec232ee87474dfdb49  gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
  e2fc2f6efb6228b3bdb1290bc22490fe  gcc/testsuite/gcc.dg/torture/dfp-default-init-1.c
  309fb84632cbbf1dec8848dc9a808a83  gcc/testsuite/gcc.dg/torture/dfp-default-init-2.c
  f0a0abbf88d90c241d5a79a842755381  gcc/testsuite/gcc.dg/torture/dfp-default-init-3.c
*************** e09f593e2cab835f9fb2f42fef184aaf  gcc/te
*** 53096,53102 ****
  ee74520c41d30f86fc2e503c64a2c642  gcc/testsuite/gcc.dg/torture/floatn-tg-3.h
  e9f715c66fe1cd22e199951430100c47  gcc/testsuite/gcc.dg/torture/floatn-tg.h
  7734647dadb81caf0ae1f96df53c47f9  gcc/testsuite/gcc.dg/torture/fp-compare.c
! 22243b77af41eed18d4fe83d73572fd0  gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c
  4a1efbe908d1984e5c7866446e422e72  gcc/testsuite/gcc.dg/torture/fp-int-convert-2.c
  a0c11f3d8611b2fea52d09cbf0b71da3  gcc/testsuite/gcc.dg/torture/fp-int-convert-double.c
  ebde1fd0494ae1b65f239981255691c9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float.c
--- 62064,62070 ----
  ee74520c41d30f86fc2e503c64a2c642  gcc/testsuite/gcc.dg/torture/floatn-tg-3.h
  e9f715c66fe1cd22e199951430100c47  gcc/testsuite/gcc.dg/torture/floatn-tg.h
  7734647dadb81caf0ae1f96df53c47f9  gcc/testsuite/gcc.dg/torture/fp-compare.c
! d705de05b1fcd07ca6b17e738d0e19db  gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c
  4a1efbe908d1984e5c7866446e422e72  gcc/testsuite/gcc.dg/torture/fp-int-convert-2.c
  a0c11f3d8611b2fea52d09cbf0b71da3  gcc/testsuite/gcc.dg/torture/fp-int-convert-double.c
  ebde1fd0494ae1b65f239981255691c9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float.c
*************** b5ce592010c8698105487afa7089b8b1  gcc/te
*** 53132,53137 ****
--- 62100,62106 ----
  ff646b4bbd5d24fb83db416b6482d625  gcc/testsuite/gcc.dg/torture/ftrapv-1.c
  9479cb5c7a5a2913427912c1cb622377  gcc/testsuite/gcc.dg/torture/ftrapv-2.c
  e4726c7b6c2132e9442ce94f5e871ee3  gcc/testsuite/gcc.dg/torture/hardbool-5a.c
+ 84d8315f76ebb27e0bd2171e1f7f505b  gcc/testsuite/gcc.dg/torture/hardbool-ai.c
  37f39797ffb910048aa5846da3a00a56  gcc/testsuite/gcc.dg/torture/hardbool-i-5a.c
  a513263f77c45368937762cf8bc80e24  gcc/testsuite/gcc.dg/torture/hardbool-i.c
  c66f8eb3ff74118b0efdd2d7f2e831b2  gcc/testsuite/gcc.dg/torture/hardbool-ll-5a.c
*************** a060cc3d6f98bac643c4fd7ad707692c  gcc/te
*** 53142,53148 ****
  919b3972807507a9e338f8d2ea8b829b  gcc/testsuite/gcc.dg/torture/hardbool-ul.c
  37bdb2715c8275f99b5dce763a3c4f9d  gcc/testsuite/gcc.dg/torture/hardbool-us-5a.c
  c607e9ba043b49a404bff7052c271656  gcc/testsuite/gcc.dg/torture/hardbool-us.c
! 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
--- 62111,62118 ----
  919b3972807507a9e338f8d2ea8b829b  gcc/testsuite/gcc.dg/torture/hardbool-ul.c
  37bdb2715c8275f99b5dce763a3c4f9d  gcc/testsuite/gcc.dg/torture/hardbool-us-5a.c
  c607e9ba043b49a404bff7052c271656  gcc/testsuite/gcc.dg/torture/hardbool-us.c
! f9b043c76d29a6e8c8952961769cdd35  gcc/testsuite/gcc.dg/torture/hardbool-vi.c
! 96978b22f397d05509906206940cef34  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
*************** cee315c60d4bb9871399c0c79c06b497  gcc/te
*** 53169,53178 ****
--- 62139,62151 ----
  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
+ 96926b050759d9ba7bb56a4b349cdba0  gcc/testsuite/gcc.dg/torture/int-bwise-opt-1.c
  d8de96ae2b044149f75e65807303c0d8  gcc/testsuite/gcc.dg/torture/ipa-pta-1.c
  215abff408789603b6bcd0b72b9dbb37  gcc/testsuite/gcc.dg/torture/ipa-pta-2.c
  67e032a26a6dcb61fd477f98f6504336  gcc/testsuite/gcc.dg/torture/ipa-pta-3.c
  613d2e7400ad0760d1e2dc6e98d7a11e  gcc/testsuite/gcc.dg/torture/ldist-1.c
+ 31a2d36c8013be7fca9a3b92e9633b69  gcc/testsuite/gcc.dg/torture/malloc-1.c
+ 1899a9f33a340005fa15b98700675903  gcc/testsuite/gcc.dg/torture/malloc-2.c
  f32edc3251f74574163ecae11d39ecba  gcc/testsuite/gcc.dg/torture/matrix-1.c
  ab399e04c1e827e9481a8168c5e3a3f3  gcc/testsuite/gcc.dg/torture/matrix-2.c
  a397aa54be3f8e0f5ba40494ea6c1e4b  gcc/testsuite/gcc.dg/torture/matrix-3.c
*************** c17159dabf628310bc542029267ef6ef  gcc/te
*** 53317,53322 ****
--- 62290,62296 ----
  9e13dab25399fb10996bbceba359de9a  gcc/testsuite/gcc.dg/torture/pr107115.c
  366b77cfd22f49d273d0dcf2caf64235  gcc/testsuite/gcc.dg/torture/pr107176.c
  917ef0b6176966a68d17d6bd6285446b  gcc/testsuite/gcc.dg/torture/pr107301.c
+ e36bece3cbcac8068401f049f5db92ec  gcc/testsuite/gcc.dg/torture/pr107389.c
  478730bb4770bc629982821178a47f1f  gcc/testsuite/gcc.dg/torture/pr107407.c
  f533117b3ab96be08cf3daab9f874c30  gcc/testsuite/gcc.dg/torture/pr107435.c
  8a45c1212793c3a86f7cf259756d9723  gcc/testsuite/gcc.dg/torture/pr107447.c
*************** f5aad1409cbbb9e3039cb7da55080bc6  gcc/te
*** 53349,53354 ****
--- 62323,62329 ----
  14f1b7a5c96c7b0b8a599f2567caf3e0  gcc/testsuite/gcc.dg/torture/pr109652.c
  2187f595796e8269bf267180b56e18a8  gcc/testsuite/gcc.dg/torture/pr109689.c
  c1a87948bd38764af99342569982d720  gcc/testsuite/gcc.dg/torture/pr109940.c
+ cfb24796cf777565d6ee8e3cc9faa0c1  gcc/testsuite/gcc.dg/torture/pr110043.c
  c68e0fca588779377278aa9e84380d07  gcc/testsuite/gcc.dg/torture/pr110176.c
  0c0edd5cb473e3baec880eabda166963  gcc/testsuite/gcc.dg/torture/pr110228.c
  37a4a130bd302ce957ac9e65b5949c60  gcc/testsuite/gcc.dg/torture/pr110243.c
*************** fd4292c0fcabd728ea0a1a6dbef87843  gcc/te
*** 53369,53374 ****
--- 62344,62350 ----
  b6cc54f5d02a9045680d8ba8b767f7b8  gcc/testsuite/gcc.dg/torture/pr110924.c
  4dd66a9e59fc17c29835a93cd50deb03  gcc/testsuite/gcc.dg/torture/pr110979.c
  fa1cc5eb743efae6b534499912897d96  gcc/testsuite/gcc.dg/torture/pr111000.c
+ 7423e38f878a6e56fb7be82847619a5b  gcc/testsuite/gcc.dg/torture/pr111036.c
  1dd35b4e28b7f72f0b12fbe3e5efb60a  gcc/testsuite/gcc.dg/torture/pr111048.c
  b3155d2832f93397879a73cc5d6f43b5  gcc/testsuite/gcc.dg/torture/pr111128.c
  a5aabe56aa9f2db146fb1185eabbfacb  gcc/testsuite/gcc.dg/torture/pr111137.c
*************** c5684166faf02044b5d8930cae3d92a2  gcc/te
*** 53409,53415 ****
  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
--- 62385,62391 ----
  71e6b4437bf381edd99e9e6fdd633492  gcc/testsuite/gcc.dg/torture/pr112856.c
  956dc9b1dc1c726c549e9e69ca1db5ec  gcc/testsuite/gcc.dg/torture/pr112859.c
  0da1b162b4d30cd723409c71ad927d22  gcc/testsuite/gcc.dg/torture/pr112991.c
! a32d35aee2736c3fe59d10710c7d2dbf  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
*************** a416af0125bad612c0cf46a5d6401e54  gcc/te
*** 53467,53473 ****
--- 62443,62451 ----
  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
+ d55420193b502affe4f12bc50e33bc30  gcc/testsuite/gcc.dg/torture/pr116296.c
  2681c6cd00e71033ee5e58d3d2e24776  gcc/testsuite/gcc.dg/torture/pr116343.c
+ fbebe679c0053fe0dbd10a5567a4afc8  gcc/testsuite/gcc.dg/torture/pr116353.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
*************** cc5e15b25cfa4f406844719a12e50aff  gcc/te
*** 53487,53492 ****
--- 62465,62471 ----
  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
+ 0508b8a43b91a97ac4e40c99f8f5215f  gcc/testsuite/gcc.dg/torture/pr116835.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
*************** a8c77450164d982f6f0dcc79256dc3b3  gcc/te
*** 53512,53518 ****
  5af2c3f9d3b0fc4e4e5f1587b7b54559  gcc/testsuite/gcc.dg/torture/pr117492-1.c
  63b796d5b3b10504df9b0de833d5782f  gcc/testsuite/gcc.dg/torture/pr117496-1.c
  eddfc0d7cd1c070bdf2c737c7d6c0fd6  gcc/testsuite/gcc.dg/torture/pr117546.c
! 318fa402aa23281002f7acad59c9cdf6  gcc/testsuite/gcc.dg/torture/pr117567.c
  211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
  fbc66d37323062d4dfeea9f5f179a29e  gcc/testsuite/gcc.dg/torture/pr117811.c
  a54993330e7b027c17c4eb45e9a8e2fc  gcc/testsuite/gcc.dg/torture/pr117859-1.c
--- 62491,62497 ----
  5af2c3f9d3b0fc4e4e5f1587b7b54559  gcc/testsuite/gcc.dg/torture/pr117492-1.c
  63b796d5b3b10504df9b0de833d5782f  gcc/testsuite/gcc.dg/torture/pr117496-1.c
  eddfc0d7cd1c070bdf2c737c7d6c0fd6  gcc/testsuite/gcc.dg/torture/pr117546.c
! 953525de358e8126fd41ec2c5112f257  gcc/testsuite/gcc.dg/torture/pr117567.c
  211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
  fbc66d37323062d4dfeea9f5f179a29e  gcc/testsuite/gcc.dg/torture/pr117811.c
  a54993330e7b027c17c4eb45e9a8e2fc  gcc/testsuite/gcc.dg/torture/pr117859-1.c
*************** bfdab77482901ca4badc096a22704326  gcc/te
*** 53540,53557 ****
  acc45859ec226bf8d285f9821bc84cff  gcc/testsuite/gcc.dg/torture/pr119973.c
  8759f48b7e824cedc5d50fae356fb24b  gcc/testsuite/gcc.dg/torture/pr120006.c
  faa7f4600800bdbdaab47877d0fb7746  gcc/testsuite/gcc.dg/torture/pr120043.c
  e1b9ad351c56aebfaff790ff4002bf6e  gcc/testsuite/gcc.dg/torture/pr120182.c
  0c3297c6ebf6e4adcaeec164dfe8e9ac  gcc/testsuite/gcc.dg/torture/pr120211-1.c
  68b7b9a81ceb31b6b33b9a797a7f6c30  gcc/testsuite/gcc.dg/torture/pr120242.c
  e9469d38b4234580f9b2284233404b3c  gcc/testsuite/gcc.dg/torture/pr120341-1.c
  aef01c040da8abd2a1e547ed6a07eb5a  gcc/testsuite/gcc.dg/torture/pr120341-2.c
! 12e839fd30c3a301bab4708aee3c9815  gcc/testsuite/gcc.dg/torture/pr120347.c
  590593d14c26e1d9ed776d01fc734a3c  gcc/testsuite/gcc.dg/torture/pr120369-1.c
  437bb98a945fa9a075fd7999043aea48  gcc/testsuite/gcc.dg/torture/pr120627.c
! e6e17b2280f19928b738f46328c5dcf7  gcc/testsuite/gcc.dg/torture/pr120654.c
  d9a43196d2efe2fcc49c98e125a9d6b3  gcc/testsuite/gcc.dg/torture/pr120736.c
  a789d5fa70ddcb7ea1760ee8688e331c  gcc/testsuite/gcc.dg/torture/pr120813.c
  e23df6b1422011499b9a500d2bf25add  gcc/testsuite/gcc.dg/torture/pr120944.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
--- 62519,62621 ----
  acc45859ec226bf8d285f9821bc84cff  gcc/testsuite/gcc.dg/torture/pr119973.c
  8759f48b7e824cedc5d50fae356fb24b  gcc/testsuite/gcc.dg/torture/pr120006.c
  faa7f4600800bdbdaab47877d0fb7746  gcc/testsuite/gcc.dg/torture/pr120043.c
+ 849af32ae6aef1e9b7999f2c32ff0f83  gcc/testsuite/gcc.dg/torture/pr120059-1.c
+ 52b5e2430d6e31ce28c98ffd5968f540  gcc/testsuite/gcc.dg/torture/pr120122-1.c
  e1b9ad351c56aebfaff790ff4002bf6e  gcc/testsuite/gcc.dg/torture/pr120182.c
  0c3297c6ebf6e4adcaeec164dfe8e9ac  gcc/testsuite/gcc.dg/torture/pr120211-1.c
  68b7b9a81ceb31b6b33b9a797a7f6c30  gcc/testsuite/gcc.dg/torture/pr120242.c
+ d7e534063dbbe45d1c825101bbe000c2  gcc/testsuite/gcc.dg/torture/pr120258-1.c
+ a0d2174875961d5bb3004aad3d93d7d7  gcc/testsuite/gcc.dg/torture/pr120276.c
+ 353122537d1fab324ea4a55eef804498  gcc/testsuite/gcc.dg/torture/pr120322.c
  e9469d38b4234580f9b2284233404b3c  gcc/testsuite/gcc.dg/torture/pr120341-1.c
  aef01c040da8abd2a1e547ed6a07eb5a  gcc/testsuite/gcc.dg/torture/pr120341-2.c
! 4a4948f29f25c101f9c54f3a82dbd2f2  gcc/testsuite/gcc.dg/torture/pr120347.c
  590593d14c26e1d9ed776d01fc734a3c  gcc/testsuite/gcc.dg/torture/pr120369-1.c
  437bb98a945fa9a075fd7999043aea48  gcc/testsuite/gcc.dg/torture/pr120627.c
! 15a8688591ba36e20af2698689b7985d  gcc/testsuite/gcc.dg/torture/pr120654.c
  d9a43196d2efe2fcc49c98e125a9d6b3  gcc/testsuite/gcc.dg/torture/pr120736.c
  a789d5fa70ddcb7ea1760ee8688e331c  gcc/testsuite/gcc.dg/torture/pr120813.c
  e23df6b1422011499b9a500d2bf25add  gcc/testsuite/gcc.dg/torture/pr120944.c
+ 2109362b50e367ef8730288e7461163d  gcc/testsuite/gcc.dg/torture/pr120951-1.c
+ 8d649d57fe1e60239f2949a9cbec8646  gcc/testsuite/gcc.dg/torture/pr121103-1.c
+ e0878b10bf90cdd28ee181056e4566f9  gcc/testsuite/gcc.dg/torture/pr121116.c
+ a0f8ab77c0d77ef71974e1bd49ecec66  gcc/testsuite/gcc.dg/torture/pr121194.c
+ d2430d6556dc52a9bbbe49c5c2c11a91  gcc/testsuite/gcc.dg/torture/pr121236-1.c
+ f8a854c0c2ad5880ebf82f9849b5c566  gcc/testsuite/gcc.dg/torture/pr121279-1.c
+ caef6a7d552fd1a8c6eb337dabda5f59  gcc/testsuite/gcc.dg/torture/pr121295-1.c
+ d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
+ 95b4b751532b50f7c9ba478b05d5f9a3  gcc/testsuite/gcc.dg/torture/pr121382.c
+ 577eaa64c9beb28198ba6b01b4065b0a  gcc/testsuite/gcc.dg/torture/pr121422-1.c
+ c06f548f435382c42c50e8e66b702266  gcc/testsuite/gcc.dg/torture/pr121422-2.c
+ 0646579839fceb4f511ae3c6f4122d62  gcc/testsuite/gcc.dg/torture/pr121478-1.c
+ f42b1c4e861e4207759994e34bbd715d  gcc/testsuite/gcc.dg/torture/pr121514.c
+ ff2c52aac3ef2c69160c96ab57a638ef  gcc/testsuite/gcc.dg/torture/pr121649.c
+ 65afbddf71e988e03a780ba874f578fb  gcc/testsuite/gcc.dg/torture/pr121656.c
+ ce9e02c12e351b909cd41d27cbe670cc  gcc/testsuite/gcc.dg/torture/pr121661-1.c
+ 8c70b765139663212d50df6e388155b7  gcc/testsuite/gcc.dg/torture/pr121695-1.c
+ 0a7fe9f8201216f1c14d41d7e2b3175d  gcc/testsuite/gcc.dg/torture/pr121756.c
+ 457e3a0b9245c7c5a7794754dce78fe5  gcc/testsuite/gcc.dg/torture/pr121829.c
+ 949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
+ 864f636916f6866905d019b279576014  gcc/testsuite/gcc.dg/torture/pr121962-1.c
+ a0fb3a08e712a34686912f981529e52a  gcc/testsuite/gcc.dg/torture/pr122012.c
+ 703af8635a99ab983c44dc87e5fa40fd  gcc/testsuite/gcc.dg/torture/pr122016.c
+ a8d4d484b0c9f610869201cb69ba7f05  gcc/testsuite/gcc.dg/torture/pr122079-1.c
+ efa374cf4f5d41b91ecac6e1e98ac293  gcc/testsuite/gcc.dg/torture/pr122079-2.c
+ a53ed0c2a08c21b00c8d5487bbc823d7  gcc/testsuite/gcc.dg/torture/pr122079-3.c
+ d4560440fd7b3647f8780537a59e4716  gcc/testsuite/gcc.dg/torture/pr122188.c
+ fcc3a6f68a967a257f515d11f06532c2  gcc/testsuite/gcc.dg/torture/pr122212.c
+ 86ec8497180b8c6845f5efb789a8d30e  gcc/testsuite/gcc.dg/torture/pr122497-1.c
+ 9c3c67f35d37e9bc1f80a29aa6076d40  gcc/testsuite/gcc.dg/torture/pr122502-2.c
+ d9ab318bf88df260c040cad6b5bc8c90  gcc/testsuite/gcc.dg/torture/pr122502.c
+ 98c07926a433421f3c019c7e8bf58ed7  gcc/testsuite/gcc.dg/torture/pr122537.c
+ 71ac92084dafbcb1599ceaab894a55dd  gcc/testsuite/gcc.dg/torture/pr122599-1.c
+ a9aaac3c1ee96431c6d95bd2eb3c3f27  gcc/testsuite/gcc.dg/torture/pr122608.c
+ 92cb155ee587c0fd7ecfd8db4495488b  gcc/testsuite/gcc.dg/torture/pr122615.c
+ 92f30598e112ad6d42615bba68d59abc  gcc/testsuite/gcc.dg/torture/pr122616.c
+ 4be6dbd9c5c7d7ab2fa698210dd2d02c  gcc/testsuite/gcc.dg/torture/pr122629-1.c
+ 217270b9747dc47945d67f9c656c4520  gcc/testsuite/gcc.dg/torture/pr122629-2.c
+ 03db6841f6edfc51bda3ddb9cad31dc4  gcc/testsuite/gcc.dg/torture/pr122637-1.c
+ 096c0c5e2932e96be4d50815255488fa  gcc/testsuite/gcc.dg/torture/pr122701.c
+ 722eb20c697e8e9ea3d3416290d1cfb2  gcc/testsuite/gcc.dg/torture/pr122735.c
+ 5cd6652f199c6a2d791cf78271bf9229  gcc/testsuite/gcc.dg/torture/pr122835.c
+ 61ae03371e683338d99762a97b9f10f9  gcc/testsuite/gcc.dg/torture/pr122847-1.c
+ 599ac258574b276ce3335b78a5a77da0  gcc/testsuite/gcc.dg/torture/pr122873.c
+ a72ae7e01256a00a4331a97695f441c8  gcc/testsuite/gcc.dg/torture/pr123027.c
+ 3142210a35bdb6d31b5c4bb65cf8e9e4  gcc/testsuite/gcc.dg/torture/pr123061.c
+ 10b3b873efcbbc683b1b7bc118deaf44  gcc/testsuite/gcc.dg/torture/pr123107.c
+ 79bdbd48c656f88157f60e23c2556cbb  gcc/testsuite/gcc.dg/torture/pr123144.c
+ 3a1d55accd96ed1cdb4288ae0cee4ba3  gcc/testsuite/gcc.dg/torture/pr123175-1.c
+ da77a77d83fbed693e335d038191f726  gcc/testsuite/gcc.dg/torture/pr123175-2.c
+ 53e66b5cadafe7e2c98dde34bf157702  gcc/testsuite/gcc.dg/torture/pr123267-1.c
+ e03287adad00d313766ecc2e039fb9b5  gcc/testsuite/gcc.dg/torture/pr123298.c
+ 11091949fe6774584df4fe838c80617e  gcc/testsuite/gcc.dg/torture/pr123310.c
+ 696ea16080bb129f974e534dd41b1ac9  gcc/testsuite/gcc.dg/torture/pr123382-1.c
+ 46a4a57171daf43cca2c2be68546f06a  gcc/testsuite/gcc.dg/torture/pr123382-2.c
+ 0cd9b5f403d655ca4804a15fc23543fd  gcc/testsuite/gcc.dg/torture/pr123416.c
+ 31008858fedcd65ab763c86127409b2f  gcc/testsuite/gcc.dg/torture/pr123530.c
+ 7d1a217129f5166f7cde3b004649bea9  gcc/testsuite/gcc.dg/torture/pr123636.c
+ ea90221ab80b5c3561ffc7665d2a343a  gcc/testsuite/gcc.dg/torture/pr123645-1.c
+ c6c07c813f67e0f94f1352f2810dfcff  gcc/testsuite/gcc.dg/torture/pr123645-2.c
+ 0264a38a252a9bd05d889f4ee2e9545e  gcc/testsuite/gcc.dg/torture/pr123745-1.c
+ 2b277b12c644f4c0f67813086cbd7ef8  gcc/testsuite/gcc.dg/torture/pr123778-1.c
+ 053ce33a7901c282d6579ebfeeb644e7  gcc/testsuite/gcc.dg/torture/pr123799.c
+ 6e235fefa779bbc6fdeefda19a5dd44e  gcc/testsuite/gcc.dg/torture/pr123822-1.c
+ 50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
+ 846de4745dc42cf6d9abe36308df2301  gcc/testsuite/gcc.dg/torture/pr123887-2.c
+ 45e84720260c50c6a2acdec6f8eec9ca  gcc/testsuite/gcc.dg/torture/pr123887.c
+ e551c09a78d645c98f9a47869b65d718  gcc/testsuite/gcc.dg/torture/pr123994.c
+ 3be454aef87a09d034e5c6ccafe0c9f8  gcc/testsuite/gcc.dg/torture/pr124041.c
+ 3512b1f432642c2b26467b9236415c88  gcc/testsuite/gcc.dg/torture/pr124062-1.c
+ c1c484a49281243452ee6209dd770016  gcc/testsuite/gcc.dg/torture/pr124108.c
+ d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.c
+ c71760bcf2c56e1252676a03c592c3b0  gcc/testsuite/gcc.dg/torture/pr124435.c
+ e394027559c72da3f714e1f0bce86a7c  gcc/testsuite/gcc.dg/torture/pr124555.c
+ f54649dd921a475b17a284fe02bd4133  gcc/testsuite/gcc.dg/torture/pr124649-1.c
+ c1ddd64344f6a24b8a5231563aac75d5  gcc/testsuite/gcc.dg/torture/pr124692.c
+ b569af91dd7275609d58f4469ba9e826  gcc/testsuite/gcc.dg/torture/pr124742-1.c
+ 92b05cf47c62f81f5220c4a17533fce2  gcc/testsuite/gcc.dg/torture/pr124810.c
+ 16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
+ c2d3ac4b0fce6da2e8aaeaf741803572  gcc/testsuite/gcc.dg/torture/pr124891.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
*************** b52155a2e58c25fbabea9977d45c5677  gcc/te
*** 53604,53610 ****
  49f6a0851e080912fd19062f488cbc0f  gcc/testsuite/gcc.dg/torture/pr28045.c
  afdecf17af13f7482a9ea8034efdb7d5  gcc/testsuite/gcc.dg/torture/pr28230.c
  fbe642db16b19b53febbbec0c7658be4  gcc/testsuite/gcc.dg/torture/pr28268.c
! 8ab611a96c384922f3aab35d30f30d0c  gcc/testsuite/gcc.dg/torture/pr28814.c
  17758d320a330406d6d6b9da0e52672e  gcc/testsuite/gcc.dg/torture/pr28900.c
  01c896608ef1e0d48c4fabba4d2e5b61  gcc/testsuite/gcc.dg/torture/pr29119.c
  af880fd7ebbdfbb729ee37825f5025fe  gcc/testsuite/gcc.dg/torture/pr29446.c
--- 62668,62674 ----
  49f6a0851e080912fd19062f488cbc0f  gcc/testsuite/gcc.dg/torture/pr28045.c
  afdecf17af13f7482a9ea8034efdb7d5  gcc/testsuite/gcc.dg/torture/pr28230.c
  fbe642db16b19b53febbbec0c7658be4  gcc/testsuite/gcc.dg/torture/pr28268.c
! 126e761a8506e4df0e1899f24010f13c  gcc/testsuite/gcc.dg/torture/pr28814.c
  17758d320a330406d6d6b9da0e52672e  gcc/testsuite/gcc.dg/torture/pr28900.c
  01c896608ef1e0d48c4fabba4d2e5b61  gcc/testsuite/gcc.dg/torture/pr29119.c
  af880fd7ebbdfbb729ee37825f5025fe  gcc/testsuite/gcc.dg/torture/pr29446.c
*************** d583ad8ec3a0208319ac7ca2a2777572  gcc/te
*** 53770,53775 ****
--- 62834,62841 ----
  9474957971dc73b3f75c66585f78e5ff  gcc/testsuite/gcc.dg/torture/pr49079.c
  d2e8e8ec11a434bb591012dff5dfb3d4  gcc/testsuite/gcc.dg/torture/pr49169.c
  c76a42a4317e797c45b161adab53530a  gcc/testsuite/gcc.dg/torture/pr49217.c
+ c07c91bf8b8b1cd1d6d5f578ceeb15d5  gcc/testsuite/gcc.dg/torture/pr49330-1.c
+ 4be431d88f52bc75e52dc90970ab0a99  gcc/testsuite/gcc.dg/torture/pr49330-2.c
  fe91d9c51239c8d4bb750fa869683aef  gcc/testsuite/gcc.dg/torture/pr49518.c
  31f4b190fadae5b194a73d28988a0c56  gcc/testsuite/gcc.dg/torture/pr49603.c
  3f33f6456a27739e6e648a1b71ea26ff  gcc/testsuite/gcc.dg/torture/pr49651.c
*************** e3778178e3b66643e8489268917624c5  gcc/te
*** 54053,54058 ****
--- 63119,63125 ----
  06f8201f26f20cabf75e12a925d12cac  gcc/testsuite/gcc.dg/torture/pr65077.c
  ed0c6bc242e97e81c55f11b25a27105d  gcc/testsuite/gcc.dg/torture/pr65270-1.c
  95efec2948196b43558e06546f6f1ff3  gcc/testsuite/gcc.dg/torture/pr65270-2.c
+ 3a060f6d521ac18899dc65568406ab18  gcc/testsuite/gcc.dg/torture/pr65270-3.c
  f3e0d0fa5867ae62dead0056b4b057ef  gcc/testsuite/gcc.dg/torture/pr65517.c
  449a51242640b8e157ba8d8a2096b474  gcc/testsuite/gcc.dg/torture/pr65961.c
  c68db82489a10495af29c1c44142ace7  gcc/testsuite/gcc.dg/torture/pr66076.c
*************** da4037959e336e19cb95c25f91f8eb52  gcc/te
*** 54196,54202 ****
  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
--- 63263,63269 ----
  5fc6843d84c7c67303a3c2a76863da48  gcc/testsuite/gcc.dg/torture/pr70740-1.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
  058fe139380690d2ec38aa882c1f7908  gcc/testsuite/gcc.dg/torture/pr70780.c
! f9df1631c4c33a5154dad703a315ba1f  gcc/testsuite/gcc.dg/torture/pr70935.c
  b6bb0c63d9e968f4f16f282365518a50  gcc/testsuite/gcc.dg/torture/pr70941.c
  7ad5c43092d6ab1c1cd22f4cc97b73b3  gcc/testsuite/gcc.dg/torture/pr70985.c
  9915e21032257877059e42dd288106d1  gcc/testsuite/gcc.dg/torture/pr70986-1.c
*************** b1dc948dbe2e4e262af2a3b5dbfad2e9  gcc/te
*** 54384,54390 ****
  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
  7f1150514530c325d4ab11a44bfef85e  gcc/testsuite/gcc.dg/torture/pr85168.c
  4a262d46aeb406a4774a474eee1d9e1b  gcc/testsuite/gcc.dg/torture/pr85244-1.c
--- 63451,63457 ----
  e03db596324f51251c0ce2c64b12cad2  gcc/testsuite/gcc.dg/torture/pr84775.c
  338306ad9189df8561bc7d987508b89b  gcc/testsuite/gcc.dg/torture/pr84803.c
  f5f1c6e563476cf4c72a652712ad2748  gcc/testsuite/gcc.dg/torture/pr84811.c
! a429ef2bfd3602d63f84e815a87d1143  gcc/testsuite/gcc.dg/torture/pr84830.c
  6561bd91779cfb10bb91f9a474943592  gcc/testsuite/gcc.dg/torture/pr84929.c
  7f1150514530c325d4ab11a44bfef85e  gcc/testsuite/gcc.dg/torture/pr85168.c
  4a262d46aeb406a4774a474eee1d9e1b  gcc/testsuite/gcc.dg/torture/pr85244-1.c
*************** b4f22a4d03e15783a08326646103718e  gcc/te
*** 54570,54575 ****
--- 63637,63643 ----
  bb157f4a51d2cdf6bf7f85020478cfab  gcc/testsuite/gcc.dg/torture/pr99652-1.c
  2fff8ca65194be4ac8378ccc98a0bf27  gcc/testsuite/gcc.dg/torture/pr99652-2.c
  f2d36d390723c0b2f171dce75acc904f  gcc/testsuite/gcc.dg/torture/pr99694.c
+ 785061a25ae083837d58ac1470c6ffaa  gcc/testsuite/gcc.dg/torture/pr99782-1.c
  2712af19a1b0692a370799c3da75f379  gcc/testsuite/gcc.dg/torture/pr99824.c
  1e1d5d7c1a9f7fb97f53ed28cd4d5c93  gcc/testsuite/gcc.dg/torture/pr99880.c
  34e5b5ddc6995292f18effac74e9fcce  gcc/testsuite/gcc.dg/torture/pr99947.c
*************** b82f09e52f40b5e142ca17a69421bfad  gcc/te
*** 54588,54601 ****
  9bedd7550914e2e483d55e47c44723e3  gcc/testsuite/gcc.dg/torture/restrict-5.c
  b4bc986eae683153ce2c232320c5bd27  gcc/testsuite/gcc.dg/torture/restrict-6.c
  568321b2b1eea2f97749015ca7f0b1b0  gcc/testsuite/gcc.dg/torture/restrict-7.c
! 68022ba88e6b60bc23bcb69aeb8b97e1  gcc/testsuite/gcc.dg/torture/restrict-8.c
  3fb5e467cdd5b7f8c0d248b59f046ff6  gcc/testsuite/gcc.dg/torture/ssa-fre-1.c
  ec800839f6046083f21d40a82b2942fc  gcc/testsuite/gcc.dg/torture/ssa-fre-2.c
  ef26911618617d51e6ffc39ca7a78dc2  gcc/testsuite/gcc.dg/torture/ssa-fre-3.c
  0973b111af619a63a2fc0d48845e1210  gcc/testsuite/gcc.dg/torture/ssa-fre-4.c
  21e1c7ca64fde86602f4b6e1f1fc190d  gcc/testsuite/gcc.dg/torture/ssa-fre-5.c
  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
--- 63656,63669 ----
  9bedd7550914e2e483d55e47c44723e3  gcc/testsuite/gcc.dg/torture/restrict-5.c
  b4bc986eae683153ce2c232320c5bd27  gcc/testsuite/gcc.dg/torture/restrict-6.c
  568321b2b1eea2f97749015ca7f0b1b0  gcc/testsuite/gcc.dg/torture/restrict-7.c
! d913f838ec1f626e3108016066c77f2f  gcc/testsuite/gcc.dg/torture/restrict-8.c
  3fb5e467cdd5b7f8c0d248b59f046ff6  gcc/testsuite/gcc.dg/torture/ssa-fre-1.c
  ec800839f6046083f21d40a82b2942fc  gcc/testsuite/gcc.dg/torture/ssa-fre-2.c
  ef26911618617d51e6ffc39ca7a78dc2  gcc/testsuite/gcc.dg/torture/ssa-fre-3.c
  0973b111af619a63a2fc0d48845e1210  gcc/testsuite/gcc.dg/torture/ssa-fre-4.c
  21e1c7ca64fde86602f4b6e1f1fc190d  gcc/testsuite/gcc.dg/torture/ssa-fre-5.c
  e210efee65ce4c71ee51c42800c7d958  gcc/testsuite/gcc.dg/torture/ssa-fre-6.c
! 98546ad997e6f9f15778f5919ba77243  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
*************** eeb7cdfccbec69227ac2915527d61fa3  gcc/te
*** 54637,54648 ****
  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
  df7b12dbf9d331f62fd4d971bf2212d0  gcc/testsuite/gcc.dg/torture/tls/run-ie.c
--- 63705,63717 ----
  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
! 5b822bd38ae0fec0ad9b675235efb99c  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
+ 966176fdcfc7f8479cc69c120c9080ca  gcc/testsuite/gcc.dg/torture/tls-return-1.c
  9ff09cb739592baf30552acd2b24f79f  gcc/testsuite/gcc.dg/torture/tls/pr104777.c
  ed0fa1d073845fed5b0352c474ef8b77  gcc/testsuite/gcc.dg/torture/tls/run-gd.c
  df7b12dbf9d331f62fd4d971bf2212d0  gcc/testsuite/gcc.dg/torture/tls/run-ie.c
*************** a7dd8959cd95d178e51f986a468a0a72  gcc/te
*** 54652,54658 ****
  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
--- 63721,63727 ----
  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
! 743424d94cb3941bea2e7077b2d6b890  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
*************** d2e1860fa8199fa9cae01ffe45caa0c0  gcc/te
*** 54662,54669 ****
  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
--- 63731,63739 ----
  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
! a2fa4a55ce8fbbb549f006c693524abb  gcc/testsuite/gcc.dg/torture/vec-cvt-1.c
  70a7b1e7d786a67e8b07f4d2d0baba21  gcc/testsuite/gcc.dg/torture/vect-bool-1.c
+ d78a2ef37d672306b0b94ccae92d42cf  gcc/testsuite/gcc.dg/torture/vect-permute-ice.c
  b8ce84a799f856b87c466889006803da  gcc/testsuite/gcc.dg/torture/vector-1.c
  8f292f1e4488a6043de93ca455705faf  gcc/testsuite/gcc.dg/torture/vector-2.c
  1068f619a2d020c28178195b20b8ecd8  gcc/testsuite/gcc.dg/torture/vector-shift2.c
*************** e9fd20c6a5ee817fc329cc085c9032eb  gcc/te
*** 54707,54713 ****
--- 63777,63795 ----
  4fbcebb70fe7512862cd2a9642fd2605  gcc/testsuite/gcc.dg/transparent-union-6.c
  8d1595003065ecd1d4556067ec7e25cc  gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
  3efe9018c42617fad26ca176fc3306fd  gcc/testsuite/gcc.dg/tree-prof/20050826-2.c
+ 9c537759c05659b9e3cc8ad98d65510a  gcc/testsuite/gcc.dg/tree-prof/afdo-crossmodule-1.c
+ c5768a698cd9d7a3225b3924d427c6cc  gcc/testsuite/gcc.dg/tree-prof/afdo-crossmodule-1b.c
+ 752f7da7123552ecbd5f01fb7952d252  gcc/testsuite/gcc.dg/tree-prof/afdo-inline.c
+ 5c5bc14de73bceee78f740efa04c39b7  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-basic-0.c
+ 627e134e62e708dcdbd6e02b9ab4f496  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-basic-1.c
+ 021c60269b8772067ac1deb0dccbb54a  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-header-0.c
+ 5c0007bbd6b0786c7939a4015c94acb7  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-header-0.h
+ f0a48dbae47a54ff6387cbba70d4d314  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-header-1.c
+ 1178cb7c893299527502d074ddde6028  gcc/testsuite/gcc.dg/tree-prof/afdo-lto_priv-header-1.h
+ 6002203bc07005ca0e9c543037930992  gcc/testsuite/gcc.dg/tree-prof/afdo-vpt-earlyinline.c
  7fea89044d1cae3c25a1775dd049cbe7  gcc/testsuite/gcc.dg/tree-prof/bb-reorg.c
+ 81362d69c7e6d3814714d9e07f30a093  gcc/testsuite/gcc.dg/tree-prof/clone-merge-1.c
+ ea5950f6fc294482e6c79818fb3837d4  gcc/testsuite/gcc.dg/tree-prof/clone-test.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
*************** cf7f678829144365c7c6e3436f2fe6c9  gcc/te
*** 54718,54729 ****
  8a7ed79d9687fd79c9c1f831e7e7995b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c
  26029d99148f25b6e5936d8536719f05  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1.c
  af6029c2bad38cfb5326e5a120549d06  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1a.c
! aa1766806b0aae39d0f83f4e18d3fa48  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-2.c
  1a6a44bdec75a8550a766d6afea7e532  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-malloc.c
  85d5018bec782bddcb3e3782c0be5143  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-topn.c
  f3d50d6757f0db7ac4ee44425c687545  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
  954750bebc2263af14be18c3b9de4c11  gcc/testsuite/gcc.dg/tree-prof/init-array.c
  5db2d8c69929de2cc39824b4fc51389a  gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
  1e3e76b5776790d0a8807f337635bcbe  gcc/testsuite/gcc.dg/tree-prof/loop-split-1.c
  87c3e8970d3d4eb3263f4bf93551e5d6  gcc/testsuite/gcc.dg/tree-prof/loop-split-2.c
  024848445b421f484722fad17deb1e8c  gcc/testsuite/gcc.dg/tree-prof/loop-split-3.c
--- 63800,63812 ----
  8a7ed79d9687fd79c9c1f831e7e7995b  gcc/testsuite/gcc.dg/tree-prof/crossmodule-indircall-1a.c
  26029d99148f25b6e5936d8536719f05  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1.c
  af6029c2bad38cfb5326e5a120549d06  gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1a.c
! 759ac2076697eacbc5538d0c982af377  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-2.c
  1a6a44bdec75a8550a766d6afea7e532  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-malloc.c
  85d5018bec782bddcb3e3782c0be5143  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof-topn.c
  f3d50d6757f0db7ac4ee44425c687545  gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
  954750bebc2263af14be18c3b9de4c11  gcc/testsuite/gcc.dg/tree-prof/init-array.c
  5db2d8c69929de2cc39824b4fc51389a  gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
+ 80a5946ccf27d2e3c3ddefe6b64c43db  gcc/testsuite/gcc.dg/tree-prof/ipa-cp-1.c
  1e3e76b5776790d0a8807f337635bcbe  gcc/testsuite/gcc.dg/tree-prof/loop-split-1.c
  87c3e8970d3d4eb3263f4bf93551e5d6  gcc/testsuite/gcc.dg/tree-prof/loop-split-2.c
  024848445b421f484722fad17deb1e8c  gcc/testsuite/gcc.dg/tree-prof/loop-split-3.c
*************** e7aeca94f621518a6e6709ceaeb4e162  gcc/te
*** 54761,54767 ****
  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
--- 63844,63850 ----
  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
! 8965e7f4aba4b27bf0b0e85de8db2dc6  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
*** 54788,54794 ****
  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
--- 63871,63877 ----
  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
! 55fa56b378ccbab7eb7cd3de2748f29c  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
*************** b7cfff07af56229a84adabedb33d4c58  gcc/te
*** 54841,54847 ****
  6981b5341c901b7de7b6c21a71f47eb1  gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c
  4b0817bcc2c6890a7266c638a0d32f45  gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c
  f675c641c9613200d6c10a8327621a00  gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c
! d64f06b6bc60f2a26df5a85f00b45925  gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
--- 63924,63930 ----
  6981b5341c901b7de7b6c21a71f47eb1  gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c
  4b0817bcc2c6890a7266c638a0d32f45  gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c
  f675c641c9613200d6c10a8327621a00  gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c
! bbf8c5a60b99077a95362d46779a9683  gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
  3d74f7a86f1ec677f56458b70548904e  gcc/testsuite/gcc.dg/tree-ssa/20031113-1.c
  ccbf57ac62324c514aa4cbd38bbd36a7  gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
  046d6c6897e5fb6982e21292a9f79c4a  gcc/testsuite/gcc.dg/tree-ssa/20040121-1.c
*************** ce5aafb4955372c5794fefbc1ca41606  gcc/te
*** 54888,54894 ****
  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
--- 63971,63977 ----
  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
! 27c3c80bd18fcc11c266242e9593a9a2  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
*************** d605c0b7d6a001365bda6d24ef97cbb5  gcc/te
*** 54974,54982 ****
  ac00cf20aa901dad53cb68baa97cc1f8  gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c
  151b70acaafa11170c060a221c5cb1f7  gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c
  9d10ba95e8f24da60dec445a85298578  gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c
! b945d8c281862d959c57df0356e60697  gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c
  ad829088c2d182fe6e84645dc44f07e6  gcc/testsuite/gcc.dg/tree-ssa/bit-assoc.c
  b0045d2d08c49e824e2e272c7dcb35d1  gcc/testsuite/gcc.dg/tree-ssa/bit1neg-1.c
  8dbf4ef5de01b617ef64b9e8fdf74796  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-1.c
  bb4b8f021ae28e9eb1296a3f9c98bb4e  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-2.c
  b99a791d3dbef7a8c3f50eb93840c713  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-3.c
--- 64057,64072 ----
  ac00cf20aa901dad53cb68baa97cc1f8  gcc/testsuite/gcc.dg/tree-ssa/backprop-3.c
  151b70acaafa11170c060a221c5cb1f7  gcc/testsuite/gcc.dg/tree-ssa/backprop-4.c
  9d10ba95e8f24da60dec445a85298578  gcc/testsuite/gcc.dg/tree-ssa/backprop-5.c
! efa2bb6bd9a362254dd3391a43a800d2  gcc/testsuite/gcc.dg/tree-ssa/backprop-6.c
  ad829088c2d182fe6e84645dc44f07e6  gcc/testsuite/gcc.dg/tree-ssa/bit-assoc.c
  b0045d2d08c49e824e2e272c7dcb35d1  gcc/testsuite/gcc.dg/tree-ssa/bit1neg-1.c
+ 5d6bac4cd841cbdee08ff003c81dc559  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.1.c
+ 0eea1a3b4817d9939a653b3974ae2c83  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.2.c
+ a61bc4cf12b8ecc7dae5ef81d62826bf  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.3.c
+ 7e8711b5cbde855df7c2ad3941a805a4  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.4.c
+ e7bb8bd5e98baa50d2da17c628260307  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.5.c
+ 216ac83b68fa6ba61ff446c9fe1a0b40  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.6.c
+ f818656fe314cf91a442d5c3d9de320d  gcc/testsuite/gcc.dg/tree-ssa/bit_op_cvt.h
  8dbf4ef5de01b617ef64b9e8fdf74796  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-1.c
  bb4b8f021ae28e9eb1296a3f9c98bb4e  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-2.c
  b99a791d3dbef7a8c3f50eb93840c713  gcc/testsuite/gcc.dg/tree-ssa/bitcmp-3.c
*************** b99a791d3dbef7a8c3f50eb93840c713  gcc/te
*** 54986,54991 ****
--- 64076,64085 ----
  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
+ 97fb8d20280a75e3d3f66b55eaf50ad0  gcc/testsuite/gcc.dg/tree-ssa/bitops-12.c
+ a8868bafeb00368f220d5fa2d1e3815d  gcc/testsuite/gcc.dg/tree-ssa/bitops-13.c
+ 9624855862f3f81a5ae029baebe216a6  gcc/testsuite/gcc.dg/tree-ssa/bitops-14.c
+ 5b205b8dadb24b4360bd42ba31bee229  gcc/testsuite/gcc.dg/tree-ssa/bitops-15.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
*************** bc51e4802e1c8004fa81811aa33d2f94  gcc/te
*** 55000,55006 ****
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
! 742f567216c0be2caa14fcbafbc39587  gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
  477c9bbae1c44b978deaeeea49bbc1c3  gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
  6456c884df1bb657483d18f1928e9b0e  gcc/testsuite/gcc.dg/tree-ssa/bool-14.c
  877dfe3646023f8ad0a722fb9f947d04  gcc/testsuite/gcc.dg/tree-ssa/bool-15.c
--- 64094,64100 ----
  2ecf267e7c02e16be8be3c79c3e74dab  gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
  2fbcc9d1e1290309e1f23fa115b1f65d  gcc/testsuite/gcc.dg/tree-ssa/bool-10.c
  fee4ba51742ec36ab144364e8dc30006  gcc/testsuite/gcc.dg/tree-ssa/bool-11.c
! 2d0d1468044ef4b898eecd52b032d962  gcc/testsuite/gcc.dg/tree-ssa/bool-12.c
  477c9bbae1c44b978deaeeea49bbc1c3  gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
  6456c884df1bb657483d18f1928e9b0e  gcc/testsuite/gcc.dg/tree-ssa/bool-14.c
  877dfe3646023f8ad0a722fb9f947d04  gcc/testsuite/gcc.dg/tree-ssa/bool-15.c
*************** ed01fecf47b756a152f04241a3582230  gcc/te
*** 55023,55036 ****
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
  bd2c59ee2a95d110f018a0a696fdbba8  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-4.c
  7a3696ade38cde0d635a753ee35afba7  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-5.c
! a675dbefe299a9799d2385e87612ad42  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
! 8d435b18ff373bbb3a6e11e3d4df5278  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
  b0091ca4cfe440c8c17995c3fb8ccd29  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-1.c
  c93e92df25ea2d7624ab5bb540a59254  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-2.c
  f0cfa91457dd949c26c5d6636ad1a511  gcc/testsuite/gcc.dg/tree-ssa/builtin-free.c
! 3425ff42c1c6f97af1e08dc15884c8d3  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
  5ff7ec25810daa2b2c09d56aa89297c2  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-2.c
! e867184736b513170c0f3bc6ad396d21  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
  f44c1a01b8f375501cb37e1baaac95b1  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-1.c
  eb9b6e4fecb1f58f765424a67c2b6ca9  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-2.c
  cc227fc1cc6d10a58e03dcd84a92a069  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-1.c
--- 64117,64130 ----
  09801fa8130e8dd4207500ebac85229c  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-3.c
  bd2c59ee2a95d110f018a0a696fdbba8  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-4.c
  7a3696ade38cde0d635a753ee35afba7  gcc/testsuite/gcc.dg/tree-ssa/builtin-expect-5.c
! 3411ca09df73ebf41ba51f5e0b6869da  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
! 7fd751b659cd1630b1072536e2f5d0f0  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
  b0091ca4cfe440c8c17995c3fb8ccd29  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-1.c
  c93e92df25ea2d7624ab5bb540a59254  gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-warn-2.c
  f0cfa91457dd949c26c5d6636ad1a511  gcc/testsuite/gcc.dg/tree-ssa/builtin-free.c
! 3892a06ef5da1b28aabfa3d0b150c80b  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
  5ff7ec25810daa2b2c09d56aa89297c2  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-2.c
! 9c989bed0c5b72eb358865d449d68569  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
  f44c1a01b8f375501cb37e1baaac95b1  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-1.c
  eb9b6e4fecb1f58f765424a67c2b6ca9  gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-warn-2.c
  cc227fc1cc6d10a58e03dcd84a92a069  gcc/testsuite/gcc.dg/tree-ssa/builtin-snprintf-1.c
*************** c28ce339deffeb750f2c7f2cb8c8aa31  gcc/te
*** 55094,55103 ****
  c96169d5c29c6dc315a817531e40c48b  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-8.c
  872985c14c0a1024ddaf7e02e728827a  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-9.c
  3f3120466fd06983562ec970505aaf86  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf.c
! f22d4bb060b76be93303eb733dde236d  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
! 9df35f57df940eb42a44144ca85a6c3e  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
! bd0e09f37c905aa13bbb2d522a84d767  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
! 435b64746afba8c4755679ab7ad1358d  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
--- 64188,64197 ----
  c96169d5c29c6dc315a817531e40c48b  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-8.c
  872985c14c0a1024ddaf7e02e728827a  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-9.c
  3f3120466fd06983562ec970505aaf86  gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf.c
! 904442dc63dd1807cfaeae2506b405c4  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
! 9ed8adf4cddf1c6aea23e6c1e06a5b13  gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
! b9252c3b93123f5ce39d3896900ca645  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
! b36e2e1c8d3822ca8e1628ca508a0374  gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
  aeea5f7137fe38c1de403df2897890fe  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-generic.c
  481ec0a559daa3d23650750794586529  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-2.c
  d60687d3346161f39aee81b214d1486d  gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-3.c
*************** c6fde7f848ca518e02ad03f5144ebf9b  gcc/te
*** 55110,55119 ****
--- 64204,64220 ----
  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
+ 184e7b42b76ba805650b4d7e1a0d106f  gcc/testsuite/gcc.dg/tree-ssa/calloc-10.c
+ fa3af5bbfda93482f8ef1fa67a5c8887  gcc/testsuite/gcc.dg/tree-ssa/calloc-11.c
+ 33602208e0c3de2b6b93bb698eb1f34d  gcc/testsuite/gcc.dg/tree-ssa/calloc-12.c
  60199bed80e510c230537c5f4d852a5b  gcc/testsuite/gcc.dg/tree-ssa/calloc-2.c
  b5bac817fa7c7a456a8e73848dfde207  gcc/testsuite/gcc.dg/tree-ssa/calloc-3.c
  99ba8314164b834571c8f16cca8ac3fc  gcc/testsuite/gcc.dg/tree-ssa/calloc-4.c
  a4f18eca886b653efaca825607a6bfd3  gcc/testsuite/gcc.dg/tree-ssa/calloc-5.c
+ a33e3fab9975ed6a1ace55702b71f5fd  gcc/testsuite/gcc.dg/tree-ssa/calloc-6.c
+ 3f54f19a686c28b697193236f9ae52a7  gcc/testsuite/gcc.dg/tree-ssa/calloc-7.c
+ e4c3c7463d438f5af879471c4f547bc2  gcc/testsuite/gcc.dg/tree-ssa/calloc-8.c
+ df99a25b5f7628216c93de5ee8ddb6cb  gcc/testsuite/gcc.dg/tree-ssa/calloc-9.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
*************** edbd9c8149ee7f7444bccf51ba92d4d3  gcc/te
*** 55129,55134 ****
--- 64230,64236 ----
  a3b38bae98a3e59b214495d7876b628d  gcc/testsuite/gcc.dg/tree-ssa/clz-long-long.c
  b81775b8e2a31310b44c81245fcf9eec  gcc/testsuite/gcc.dg/tree-ssa/clz-long.c
  33f85eb0abc0ef1a76d386a351d636de  gcc/testsuite/gcc.dg/tree-ssa/cmp-1.c
+ fb25857d234677e77b3d70ba58f5a982  gcc/testsuite/gcc.dg/tree-ssa/cmp-2.c
  f4e19c8828a0d6f955101c070bea8b7b  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-1.c
  a39dab289b7a420b65c6f1cfa6d4b033  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-2.c
  67cdad9dd803b591ec81ea144f12ade1  gcc/testsuite/gcc.dg/tree-ssa/cmpbit-3.c
*************** c51305b57b6a71a526e50a8fb191e467  gcc/te
*** 55163,55168 ****
--- 64265,64274 ----
  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
+ bc009876b7c6d6631a4147b81b3e22f8  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-10.c
+ 8fd4daab6dbf8eb1cfcd8fd48f789cbb  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-11.c
+ 278320fc185c5d86fc66245701a90aa2  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-12.c
+ e0f2db853fca999c02cdf79ba1194a7a  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-13.c
  0cf82fedd0523d48a3c11ee74277d669  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-2.c
  363d3e4ac12b479eddce56ba34c2afd4  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-3.c
  a0f533cf1734bcf6ffb5fc5a84378862  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-4.c
*************** a0f533cf1734bcf6ffb5fc5a84378862  gcc/te
*** 55172,55194 ****
  ba534422ad0a79e177e4df595590f346  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-8.c
  bbd27c9626a85b85613edc25e673f5b8  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-9.c
  8fbc9eee0416b3a104acac36b4f55468  gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c
  48504e3950251da5400c954fc79fbb47  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-1.c
  88685d259411b8277a35ca6a1e889adb  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-2.c
  ab9071615cb96e67306f62799834192d  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-3.c
  3e33363df98971ca2810932b7646d933  gcc/testsuite/gcc.dg/tree-ssa/counts-1.c
  cb85a2159e6429ded025be9506d3d3ec  gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c
  eff8f806b1a91fc87bafb5aaff55fd32  gcc/testsuite/gcc.dg/tree-ssa/cswtch-3.c
  b51831242139a92b34dbcd60cebb1cd5  gcc/testsuite/gcc.dg/tree-ssa/cswtch-4.c
  480e4d735335d00028f58f451947cfe1  gcc/testsuite/gcc.dg/tree-ssa/cswtch-5.c
  59e69728c798843be3e7e01a41019422  gcc/testsuite/gcc.dg/tree-ssa/cswtch.c
! 3a98d5ff303f51c628fb855f94b30645  gcc/testsuite/gcc.dg/tree-ssa/ctz-char.c
! 2693b3a5d1d97d4cb3f14fea48ab348f  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-char.c
! 8c15d450f70c55e1df99047b1f5ebadd  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-int.c
! 1562a40decbf6829917394385b2e15c7  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-long-long.c
! 9352768f3425f32a544c025e45842abf  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-long.c
! 9b1b0e048c8f97b78d9a81a7d35ff0cd  gcc/testsuite/gcc.dg/tree-ssa/ctz-int.c
! bc15b035f75616d49ae3217feb655970  gcc/testsuite/gcc.dg/tree-ssa/ctz-long-long.c
! 0b0b6aee09e8f5c99b5dd453262a9560  gcc/testsuite/gcc.dg/tree-ssa/ctz-long.c
  00a5789f4787f29247de180d1f75c125  gcc/testsuite/gcc.dg/tree-ssa/cunroll-1.c
  32eb8903d0c34fb7ebbfdf653428cab1  gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
  5e78a0f7c81199d9572e9eb72b2b9b6c  gcc/testsuite/gcc.dg/tree-ssa/cunroll-11.c
--- 64278,64319 ----
  ba534422ad0a79e177e4df595590f346  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-8.c
  bbd27c9626a85b85613edc25e673f5b8  gcc/testsuite/gcc.dg/tree-ssa/copy-headers-9.c
  8fbc9eee0416b3a104acac36b4f55468  gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c
+ 0a5f29c17c4bea69de1397cf77148a9a  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-1.c
+ a7469adfbda853628ff89a7cbd24a157  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-arg-1.c
+ 2f250f0e1e47e486ebffa648de678b82  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-arg-2.c
+ 01b1b6fceaa12b65220a2003fe30396f  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-memcpy-1.c
+ edf08219ede3b6ca737fe14a29546f0f  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-memcpy-2.c
+ 96123921194345418e33ce301b55844b  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c
+ bf69f6c6a5af6135641da35464d6adbf  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-sra-1.c
+ 26535898276be84d4c9b1dd5c518291c  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-struct-1.c
+ 4e3f86968b3beec7e0f58cad74c609c4  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-union-1.c
+ e75105ea343803ddefbd84e37e7efb04  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-zero-1.c
+ 76f3437adf133b031c8eb882a5aad339  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-zero-2.c
+ 6a4acde203c5efba907eeaf8582ef991  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-zero-3.c
  48504e3950251da5400c954fc79fbb47  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-1.c
  88685d259411b8277a35ca6a1e889adb  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-2.c
  ab9071615cb96e67306f62799834192d  gcc/testsuite/gcc.dg/tree-ssa/copy-sign-3.c
  3e33363df98971ca2810932b7646d933  gcc/testsuite/gcc.dg/tree-ssa/counts-1.c
+ 59586da5802c2692704af77142f2cdc1  gcc/testsuite/gcc.dg/tree-ssa/cselim-1.c
+ 51c7fe6b74c96edaad81a1100523cefb  gcc/testsuite/gcc.dg/tree-ssa/cselim-2.c
+ a526cdc2d8e4bdccc12e3c268f05167b  gcc/testsuite/gcc.dg/tree-ssa/cselim-3.c
+ 87cfb5f2ac7de7373e23d0716af3b247  gcc/testsuite/gcc.dg/tree-ssa/cselim-4.c
  cb85a2159e6429ded025be9506d3d3ec  gcc/testsuite/gcc.dg/tree-ssa/cswtch-2.c
  eff8f806b1a91fc87bafb5aaff55fd32  gcc/testsuite/gcc.dg/tree-ssa/cswtch-3.c
  b51831242139a92b34dbcd60cebb1cd5  gcc/testsuite/gcc.dg/tree-ssa/cswtch-4.c
  480e4d735335d00028f58f451947cfe1  gcc/testsuite/gcc.dg/tree-ssa/cswtch-5.c
+ 67d0a347d377cdd5876ed6d3ffc4103b  gcc/testsuite/gcc.dg/tree-ssa/cswtch-6.c
+ a7ee922e30693d72b161287620162cc4  gcc/testsuite/gcc.dg/tree-ssa/cswtch-7.c
  59e69728c798843be3e7e01a41019422  gcc/testsuite/gcc.dg/tree-ssa/cswtch.c
! 5240ca6fda47d5773cd7adbd74043508  gcc/testsuite/gcc.dg/tree-ssa/ctz-ch.c
! 0c2e8b89d38d92078d06d1cdf2afb596  gcc/testsuite/gcc.dg/tree-ssa/ctz-char.c
! dcd8e98ed7d206d39eae19ea623d2985  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-char.c
! 8040629cefe8139efef7e9b6c12bd92c  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-int.c
! 1e484fb4ddedc4a228416ca6a9660a31  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-long-long.c
! e3ad70e4e3c4aea531b751d7029d71cf  gcc/testsuite/gcc.dg/tree-ssa/ctz-complement-long.c
! 927bdbb7181c03596675da8973ddd620  gcc/testsuite/gcc.dg/tree-ssa/ctz-int.c
! 228d7880ca99b024c05fdb8caf55b0bd  gcc/testsuite/gcc.dg/tree-ssa/ctz-long-long.c
! 47d23689fc9ca5f4e36d43d15c42aec9  gcc/testsuite/gcc.dg/tree-ssa/ctz-long.c
  00a5789f4787f29247de180d1f75c125  gcc/testsuite/gcc.dg/tree-ssa/cunroll-1.c
  32eb8903d0c34fb7ebbfdf653428cab1  gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
  5e78a0f7c81199d9572e9eb72b2b9b6c  gcc/testsuite/gcc.dg/tree-ssa/cunroll-11.c
*************** c4d85f1a0ac2c091e026cf0d052e2f21  gcc/te
*** 55294,55301 ****
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
  cb909e7812f73f90414b63042c95d199  gcc/testsuite/gcc.dg/tree-ssa/forwprop-4.c
! eb894750e8c2c762096d861a6009f51a  gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
! a7f663adfd228e0c28c58bd9894c4b57  gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
  d56422e63543fcf4bf4b78d825c534da  gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
  0f6dc2b3b3469af9cd27d5b5cd97353c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
--- 64419,64428 ----
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
  cb909e7812f73f90414b63042c95d199  gcc/testsuite/gcc.dg/tree-ssa/forwprop-4.c
! de0d5a27a8224396ca0f19ef47a34440  gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
! 99810cfc2b17fdd6bdac29f89a6810cf  gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
! 961671e379d822c42f99331eae6766b4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-42.c
! 6f6a5439ce598d5e47d2d756af6c116e  gcc/testsuite/gcc.dg/tree-ssa/forwprop-43.c
  d56422e63543fcf4bf4b78d825c534da  gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
  0f6dc2b3b3469af9cd27d5b5cd97353c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
*************** c5da678cf578c57faa40129378929cf4  gcc/te
*** 55309,55319 ****
  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
--- 64436,64446 ----
  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
! bc0a5f96f64e1c6e169d1a488ebe4712  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
! 5831c731ed57952618b9e96fb519e5c8  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
! db4cf86d4c6944262e0e00dd03b29ace  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
! acf55a2a50daef94fee7e4893c59907f  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
! 37c9fed32573c35d409e60155727a9ce  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
*************** e801619e0f762ef77d5184a84e241aaf  gcc/te
*** 55349,55354 ****
--- 64476,64483 ----
  f13f933c98b03cde87730a731e3f3ec1  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr69489-2.c
  408be13ffcf3fa2e3e04aaf399eaf89f  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr71503.c
  8f97d9a50bdf036c88ea79617b4bea19  gcc/testsuite/gcc.dg/tree-ssa/ifc-pr71683.c
+ da843661f081a86a5b27ab185c18e616  gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-1.c
+ 93203f53e877f42f10c7df972b2351fb  gcc/testsuite/gcc.dg/tree-ssa/ifcvt-fix-trunc-2.c
  9863a7166ce42777205a510fff36e2ee  gcc/testsuite/gcc.dg/tree-ssa/inline-1.c
  140b6a02c1d8bf595fc72633853e48f4  gcc/testsuite/gcc.dg/tree-ssa/inline-10.c
  5f4ae2376e18749c34804d61bb1d74f7  gcc/testsuite/gcc.dg/tree-ssa/inline-11.c
*************** f36615df20e02ab31418994441d3c87a  gcc/te
*** 55364,55369 ****
--- 64493,64499 ----
  e1aa4da1fccf6c1381e18889b6eb6b7b  gcc/testsuite/gcc.dg/tree-ssa/inline-9.c
  06bf1138daa5aebb13049172ebbe0ca8  gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
  5b23b073bf0eb14ec16d5475e0244d1f  gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
+ 649ae47c5053c9c9c9e999565712a5f6  gcc/testsuite/gcc.dg/tree-ssa/int-bwise-opt-vect01.c
  9307968a8a5259ab05b85852a6be47e5  gcc/testsuite/gcc.dg/tree-ssa/integer-addr.c
  c976bad1cd05db7c6e1a6af67ae0ad02  gcc/testsuite/gcc.dg/tree-ssa/interposition.c
  d595e9d579debb1bd97efd9247321ae6  gcc/testsuite/gcc.dg/tree-ssa/ipa-cp-1.c
*************** b32b026becf23fab737eba130bd8f041  gcc/te
*** 55406,55412 ****
  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
--- 64536,64542 ----
  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
! 6b9813fa0b60ed8490f1e19e962ec2c3  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
*************** f2fb3151add498ea76d57eb5397270d9  gcc/te
*** 55552,55557 ****
--- 64682,64688 ----
  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
+ 12d912e24657e2b7d272708953b4aa05  gcc/testsuite/gcc.dg/tree-ssa/max-bitcmp-1.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
*************** e9ccf5561ec154e17b83f854b31ffdb3  gcc/te
*** 55683,55690 ****
  23ce2f2fa5c30c3b31998ecd5455631c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-38.c
  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
--- 64814,64821 ----
  23ce2f2fa5c30c3b31998ecd5455631c  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-38.c
  a66b4d75c24b7b87fa85665ce41632e4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-39.c
  abf36d925f7053c105cfd3f71d64a6a7  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
! 469d8ec83aa0cdb5460ffa0c2a5600b4  gcc/testsuite/gcc.dg/tree-ssa/phi-opt-40.c
! 30a4e921a5b006a8c137e48d39b25f78  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
*************** cef3bfd56530a07f8eb43ec1a8c7552d  gcc/te
*** 55707,55712 ****
--- 64838,64849 ----
  f26d2e01babf45dbaeac6dc0140557e7  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c
  d5f82ca4c500006079bdac0858cef071  gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
  a39b55be53be7f30c85f02bc40f6fa4d  gcc/testsuite/gcc.dg/tree-ssa/phiprop-1.c
+ b18b8b5a19422d636c72d991386bfa91  gcc/testsuite/gcc.dg/tree-ssa/phiprop-2.c
+ c9f923dcdec530eca2a76cd5cf05811f  gcc/testsuite/gcc.dg/tree-ssa/phiprop-3.c
+ 0a77714a6bb4bec9e4f3491e7f4eb6e0  gcc/testsuite/gcc.dg/tree-ssa/phiprop-4.c
+ a59c22283273a34f30ce22dde07f3196  gcc/testsuite/gcc.dg/tree-ssa/phiprop-5.c
+ a373fe7eea9abb50c80552ad04b31a91  gcc/testsuite/gcc.dg/tree-ssa/phiprop-6.c
+ b81bd9d701231f46eb3358086e0bc3ed  gcc/testsuite/gcc.dg/tree-ssa/phiprop-7.c
  b81bf617d471d744150338432db43dc6  gcc/testsuite/gcc.dg/tree-ssa/popcount-max.c
  c7d4b48e1b7fabc4a3165b3279573966  gcc/testsuite/gcc.dg/tree-ssa/popcount.c
  698a1a5b66251de92ebeb4f655fd8be8  gcc/testsuite/gcc.dg/tree-ssa/popcount2.c
*************** f0d0f5ce7e02f1935c0890532a1e742e  gcc/te
*** 55723,55732 ****
--- 64860,64871 ----
  716a24cb96a9a81fe87f8660900098d4  gcc/testsuite/gcc.dg/tree-ssa/pow_fold_1.c
  0341d659d040511e18c036b7dd477420  gcc/testsuite/gcc.dg/tree-ssa/pr100359.c
  6804f4f388ad8b533f34eb3de20dac4d  gcc/testsuite/gcc.dg/tree-ssa/pr100794.c
+ 41bae7edef09ff93179fecf381ed4683  gcc/testsuite/gcc.dg/tree-ssa/pr101024-1.c
  d5dace55f72aa8ccb51636dff79f5ccc  gcc/testsuite/gcc.dg/tree-ssa/pr101824.c
  cc9f8c702d219c1fe6887d926a6617f8  gcc/testsuite/gcc.dg/tree-ssa/pr101856.c
  c3925f4a4c97c2d1ae9800c4011550d8  gcc/testsuite/gcc.dg/tree-ssa/pr101941-1.c
  cce90032144405ca7da9448ff0ff237f  gcc/testsuite/gcc.dg/tree-ssa/pr102232.c
+ fbf563a2f70a70fc731349015147afea  gcc/testsuite/gcc.dg/tree-ssa/pr102486.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
*************** e7f331e191d07635b3ac2b406e62617c  gcc/te
*** 55788,55793 ****
--- 64927,64933 ----
  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
+ fbe3ccf98a91a4b513e988408a1f670d  gcc/testsuite/gcc.dg/tree-ssa/pr108358-a.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
*************** c894a43d6d18577fb0be67375fb6fe32  gcc/te
*** 55803,55808 ****
--- 64943,64953 ----
  3adb7e9f8a25b141deab6a826dbf4d2a  gcc/testsuite/gcc.dg/tree-ssa/pr109934.c
  59a24d80466c265cf89ff1a407f6bc52  gcc/testsuite/gcc.dg/tree-ssa/pr109938.c
  867364fc143bc4b929132a4541e2c148  gcc/testsuite/gcc.dg/tree-ssa/pr109986.c
+ c69223b14227dd48ef984ddebea146e9  gcc/testsuite/gcc.dg/tree-ssa/pr110068-1.c
+ 35780670b7c73afa3286be4a193ea187  gcc/testsuite/gcc.dg/tree-ssa/pr110091-1.c
+ a29652be7575e97306f58c914dec9cf8  gcc/testsuite/gcc.dg/tree-ssa/pr110091-2.c
+ 92856f6f7724cca2946206d6aa8887e2  gcc/testsuite/gcc.dg/tree-ssa/pr110091-3.c
+ e9780f6bfef2470c514a416df09577be  gcc/testsuite/gcc.dg/tree-ssa/pr110091-4.c
  d858508cab283f80f2c10b71c55f18cf  gcc/testsuite/gcc.dg/tree-ssa/pr110269.c
  1a43d4aa287797f77da28ba29ac7e784  gcc/testsuite/gcc.dg/tree-ssa/pr110293-1.c
  cf18292fc8e047eca4019ed9a5986464  gcc/testsuite/gcc.dg/tree-ssa/pr110334.c
*************** d995b9152fb033c1efa90b7c0930e6f9  gcc/te
*** 55815,55821 ****
  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
--- 64960,64966 ----
  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
! 51baeb9644850777d1f7c201cd4b0858  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
*************** b098058bf56a706b588ea3466b2d21f0  gcc/te
*** 55835,55840 ****
--- 64980,64986 ----
  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
+ 7d2821a8e9f6d119e895315af0317341  gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c
  9c0683e4499be406ba003816f4bd0db5  gcc/testsuite/gcc.dg/tree-ssa/pr114760-1.c
  5d8a744b9f15d7ea3d51feac8d667c77  gcc/testsuite/gcc.dg/tree-ssa/pr114760-2.c
  8710d339fbc689e052900f47a175994e  gcc/testsuite/gcc.dg/tree-ssa/pr114864.c
*************** ad2bfdd6a893fdb581e5cffc0c618d52  gcc/te
*** 55862,55869 ****
--- 65008,65030 ----
  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
+ 269c5fb72451371e1dde1dd85e06c989  gcc/testsuite/gcc.dg/tree-ssa/pr118902-1.c
  b0891b1dddf226da47f4f976abdd7cb0  gcc/testsuite/gcc.dg/tree-ssa/pr119085.c
+ 57ff0383e68939ef220160496c71921a  gcc/testsuite/gcc.dg/tree-ssa/pr119683.c
+ 9f16ee3f51fd11f2ecc69288d35eb523  gcc/testsuite/gcc.dg/tree-ssa/pr120080.c
+ 7f3a7c07aebf7f97b00e05ed858383da  gcc/testsuite/gcc.dg/tree-ssa/pr120231-1.c
+ dab88e25e03ff735e2c1de465e1513fc  gcc/testsuite/gcc.dg/tree-ssa/pr120231-2.c
+ aeb12077d90e06af9a00cc755a37915a  gcc/testsuite/gcc.dg/tree-ssa/pr120231-3.c
  ef9f94de68c006babcf9169489ed1b51  gcc/testsuite/gcc.dg/tree-ssa/pr121264.c
+ f4c56a02709c699f81b07b81dd1a2c1e  gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c
+ 1f4ed1b8fa56e5300281263805887fd0  gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c
+ 6564cdc8a2e0bef445546d4a4df278f9  gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c
+ 73226ac793de9237622d64ee6a7399cc  gcc/testsuite/gcc.dg/tree-ssa/pr122478.c
+ de81b2d2951773077a5d5e6d9db8a8e4  gcc/testsuite/gcc.dg/tree-ssa/pr122588-1.c
+ ab985bcbd18463ddcc0cb59b8a091e7d  gcc/testsuite/gcc.dg/tree-ssa/pr122629-1.c
+ 71eb14b3ae5faf81c5226dc766d48edd  gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
+ fa32f3c662bc31e5bbf4daa360b9c87f  gcc/testsuite/gcc.dg/tree-ssa/pr123372.c
+ 0054e44a9d7f98f16363e68bc8142e0f  gcc/testsuite/gcc.dg/tree-ssa/pr124746-1.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** fc05082a4654700efb64a6850ebe2949  gcc/te
*** 55991,55997 ****
  9f9141fd955640b20014b74999b32076  gcc/testsuite/gcc.dg/tree-ssa/pr30314.c
  b30f3a905d9cb1c07a3b7b7325d275a2  gcc/testsuite/gcc.dg/tree-ssa/pr30375.c
  573cf597efe5e1b29a3d6c30a72feb89  gcc/testsuite/gcc.dg/tree-ssa/pr30978.c
! 1abc5a684a68d03301f4fc1147b86a17  gcc/testsuite/gcc.dg/tree-ssa/pr31261.c
  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
--- 65152,65158 ----
  9f9141fd955640b20014b74999b32076  gcc/testsuite/gcc.dg/tree-ssa/pr30314.c
  b30f3a905d9cb1c07a3b7b7325d275a2  gcc/testsuite/gcc.dg/tree-ssa/pr30375.c
  573cf597efe5e1b29a3d6c30a72feb89  gcc/testsuite/gcc.dg/tree-ssa/pr30978.c
! a471c96a60a01dfc07a0d410442f77a8  gcc/testsuite/gcc.dg/tree-ssa/pr31261.c
  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
*************** eb1ea00725f3a86beb6c3baebf704e84  gcc/te
*** 56005,56011 ****
  154046a019ef50cebaae66d96f28c7a1  gcc/testsuite/gcc.dg/tree-ssa/pr32681.c
  5fe3553c49e6e39653e5897134d971bf  gcc/testsuite/gcc.dg/tree-ssa/pr32821.c
  236bd55713a55cf7e62b2e55986ee5d0  gcc/testsuite/gcc.dg/tree-ssa/pr32901.c
! 7ac64f02c2e7ad2c0bfd9d28432f2d23  gcc/testsuite/gcc.dg/tree-ssa/pr32964.c
  03f0d3f359d3c5b2b51d1994e5a9d64a  gcc/testsuite/gcc.dg/tree-ssa/pr33172.c
  c0b1ea740a5de641d691f47e5943e2ca  gcc/testsuite/gcc.dg/tree-ssa/pr33723.c
  857c0a561eba78e1ef0e7c2d51090fc0  gcc/testsuite/gcc.dg/tree-ssa/pr33920.c
--- 65166,65172 ----
  154046a019ef50cebaae66d96f28c7a1  gcc/testsuite/gcc.dg/tree-ssa/pr32681.c
  5fe3553c49e6e39653e5897134d971bf  gcc/testsuite/gcc.dg/tree-ssa/pr32821.c
  236bd55713a55cf7e62b2e55986ee5d0  gcc/testsuite/gcc.dg/tree-ssa/pr32901.c
! 109d0fecef8b668c0dee4399464abbc5  gcc/testsuite/gcc.dg/tree-ssa/pr32964.c
  03f0d3f359d3c5b2b51d1994e5a9d64a  gcc/testsuite/gcc.dg/tree-ssa/pr33172.c
  c0b1ea740a5de641d691f47e5943e2ca  gcc/testsuite/gcc.dg/tree-ssa/pr33723.c
  857c0a561eba78e1ef0e7c2d51090fc0  gcc/testsuite/gcc.dg/tree-ssa/pr33920.c
*************** a616cf05ad4b0662588c437132967815  gcc/te
*** 56015,56021 ****
  cd4367b0a06a6ddc678bb82ef79e9178  gcc/testsuite/gcc.dg/tree-ssa/pr34244.c
  9a53a14953415500efa378b3c8629d45  gcc/testsuite/gcc.dg/tree-ssa/pr34635-1.c
  e6eaee55ed098e8181ec180a8a0cdd50  gcc/testsuite/gcc.dg/tree-ssa/pr34635.c
! d825c4d9b72ba6641cffb8c61f662340  gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
  d7ea78bb3712cbac061e6498a5947a50  gcc/testsuite/gcc.dg/tree-ssa/pr35287.c
  d85d16a112cc50f7814e25d00a7bf55d  gcc/testsuite/gcc.dg/tree-ssa/pr36181.c
  d225a29621cff47f99749a95f0ed3a1d  gcc/testsuite/gcc.dg/tree-ssa/pr36326.c
--- 65176,65182 ----
  cd4367b0a06a6ddc678bb82ef79e9178  gcc/testsuite/gcc.dg/tree-ssa/pr34244.c
  9a53a14953415500efa378b3c8629d45  gcc/testsuite/gcc.dg/tree-ssa/pr34635-1.c
  e6eaee55ed098e8181ec180a8a0cdd50  gcc/testsuite/gcc.dg/tree-ssa/pr34635.c
! 0017cb2f2019750d7a860041a68d801c  gcc/testsuite/gcc.dg/tree-ssa/pr35286.c
  d7ea78bb3712cbac061e6498a5947a50  gcc/testsuite/gcc.dg/tree-ssa/pr35287.c
  d85d16a112cc50f7814e25d00a7bf55d  gcc/testsuite/gcc.dg/tree-ssa/pr36181.c
  d225a29621cff47f99749a95f0ed3a1d  gcc/testsuite/gcc.dg/tree-ssa/pr36326.c
*************** a2fced1270cbdc50e78585c0f2078558  gcc/te
*** 56051,56056 ****
--- 65212,65218 ----
  e229772ee53d3e2888b309d217fc8ce6  gcc/testsuite/gcc.dg/tree-ssa/pr45397.c
  592ff825eb1ae28f2cc9fc5efa4063f8  gcc/testsuite/gcc.dg/tree-ssa/pr45427.c
  ef6ec480a985cb16007d515286369fd3  gcc/testsuite/gcc.dg/tree-ssa/pr46076.c
+ 8793af956556b38743f84824ebfff4c6  gcc/testsuite/gcc.dg/tree-ssa/pr46555.c
  2dee61dac00605930a2ca04d021577af  gcc/testsuite/gcc.dg/tree-ssa/pr47059.c
  e79e571a7bf87c1c43e941c3999280f2  gcc/testsuite/gcc.dg/tree-ssa/pr47286.c
  97fe9c848e0059a42c793036887ac8ec  gcc/testsuite/gcc.dg/tree-ssa/pr47392.c
*************** c63243a8574ce97ea22e7dde21b469c6  gcc/te
*** 56072,56078 ****
  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
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
--- 65234,65241 ----
  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
! e3a0265c95af021d160770625ca1867e  gcc/testsuite/gcc.dg/tree-ssa/pr57361-1.c
! d3f39eb4737f3f2f2e0a7ef9ea6cc0b7  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
  c4bed0849dd869035230ef14c12f5167  gcc/testsuite/gcc.dg/tree-ssa/pr58958.c
*************** bc785bd4625086bc4105460c4bac2646  gcc/te
*** 56180,56185 ****
--- 65343,65349 ----
  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
+ cfed94ae142d56a89ce3ea3f4b9767ea  gcc/testsuite/gcc.dg/tree-ssa/pr78154-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
*************** ff3e9d8662e05b8f3c81f35670655ad3  gcc/te
*** 56198,56204 ****
  47b41d52f868619ba15cafed8ebc7a8d  gcc/testsuite/gcc.dg/tree-ssa/pr79408.c
  4250bf4e67db8a045092c6cc64afe76a  gcc/testsuite/gcc.dg/tree-ssa/pr79448-2.c
  267ec15a1b0f6bdb0566f626d0600e04  gcc/testsuite/gcc.dg/tree-ssa/pr79448.c
! d4aa7c24d6416b188d1742fc7862c0d5  gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
  2e59ff7af74f0aa2ffe66d00e6246b21  gcc/testsuite/gcc.dg/tree-ssa/pr79697.c
  63cdbac8b60e9574d8c08e0c48248fbc  gcc/testsuite/gcc.dg/tree-ssa/pr79800.c
  e2b1e4435a5f961c380a8fe172c61123  gcc/testsuite/gcc.dg/tree-ssa/pr79803.c
--- 65362,65368 ----
  47b41d52f868619ba15cafed8ebc7a8d  gcc/testsuite/gcc.dg/tree-ssa/pr79408.c
  4250bf4e67db8a045092c6cc64afe76a  gcc/testsuite/gcc.dg/tree-ssa/pr79448-2.c
  267ec15a1b0f6bdb0566f626d0600e04  gcc/testsuite/gcc.dg/tree-ssa/pr79448.c
! e1f0b312cb573aab13c1ffabec7233cd  gcc/testsuite/gcc.dg/tree-ssa/pr79691.c
  2e59ff7af74f0aa2ffe66d00e6246b21  gcc/testsuite/gcc.dg/tree-ssa/pr79697.c
  63cdbac8b60e9574d8c08e0c48248fbc  gcc/testsuite/gcc.dg/tree-ssa/pr79800.c
  e2b1e4435a5f961c380a8fe172c61123  gcc/testsuite/gcc.dg/tree-ssa/pr79803.c
*************** d33f4213b2023b5f7798fbdda71e4dce  gcc/te
*** 56221,56227 ****
  b32558d490c5c73277ce27875bb1bfc0  gcc/testsuite/gcc.dg/tree-ssa/pr81588.c
  6da94e378d2807aa10551762fa89a6c6  gcc/testsuite/gcc.dg/tree-ssa/pr81620-1.c
  12aef6fb81e4885a0f93eb2c000f331d  gcc/testsuite/gcc.dg/tree-ssa/pr81620-2.c
! fdce0a001914fdb36e217ac7fb305fd7  gcc/testsuite/gcc.dg/tree-ssa/pr81627.c
  e5092fb25b6f25aec065f319edc5aa8c  gcc/testsuite/gcc.dg/tree-ssa/pr81741.c
  24cc934a07086354accf389a7abdcc92  gcc/testsuite/gcc.dg/tree-ssa/pr81744.c
  19a84f872ab2582af0078ed8363bb611  gcc/testsuite/gcc.dg/tree-ssa/pr81799.c
--- 65385,65391 ----
  b32558d490c5c73277ce27875bb1bfc0  gcc/testsuite/gcc.dg/tree-ssa/pr81588.c
  6da94e378d2807aa10551762fa89a6c6  gcc/testsuite/gcc.dg/tree-ssa/pr81620-1.c
  12aef6fb81e4885a0f93eb2c000f331d  gcc/testsuite/gcc.dg/tree-ssa/pr81620-2.c
! 4f7cd098e8ac5e1ff59bb254ac4a8158  gcc/testsuite/gcc.dg/tree-ssa/pr81627.c
  e5092fb25b6f25aec065f319edc5aa8c  gcc/testsuite/gcc.dg/tree-ssa/pr81741.c
  24cc934a07086354accf389a7abdcc92  gcc/testsuite/gcc.dg/tree-ssa/pr81744.c
  19a84f872ab2582af0078ed8363bb611  gcc/testsuite/gcc.dg/tree-ssa/pr81799.c
*************** dbb3bd52ee698a572581470fc02636bb  gcc/te
*** 56240,56247 ****
  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
--- 65404,65411 ----
  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
! 5e573e20040589191cf5106889770f33  gcc/testsuite/gcc.dg/tree-ssa/pr83403-1.c
! fec47a0a3e0dbb0b4a1509a438549fa5  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
*************** c5ffd6d4bede70b5bdd0e2b785a79766  gcc/te
*** 56328,56334 ****
  a102dbb914eaebfac7b2a2226a1b25c8  gcc/testsuite/gcc.dg/tree-ssa/pr92712-3.c
  a11359c472cb26b9988e9e82b35093c5  gcc/testsuite/gcc.dg/tree-ssa/pr92734-2.c
  3663a39ac9a69a1ff68fb0de1ecf2840  gcc/testsuite/gcc.dg/tree-ssa/pr92734.c
! 8edbd6e66e0161b4832f9cec2bcfec47  gcc/testsuite/gcc.dg/tree-ssa/pr92834.c
  7dfc09abf1b28ac3735cb4bd89a16ccd  gcc/testsuite/gcc.dg/tree-ssa/pr92930.c
  ca014276e5f9cd1e1500f2830781f240  gcc/testsuite/gcc.dg/tree-ssa/pr93118.c
  019fdc71b1f5726bb310324278d3460f  gcc/testsuite/gcc.dg/tree-ssa/pr93121-1.c
--- 65492,65498 ----
  a102dbb914eaebfac7b2a2226a1b25c8  gcc/testsuite/gcc.dg/tree-ssa/pr92712-3.c
  a11359c472cb26b9988e9e82b35093c5  gcc/testsuite/gcc.dg/tree-ssa/pr92734-2.c
  3663a39ac9a69a1ff68fb0de1ecf2840  gcc/testsuite/gcc.dg/tree-ssa/pr92734.c
! e900263f883f27e1d8ac80e9006235c6  gcc/testsuite/gcc.dg/tree-ssa/pr92834.c
  7dfc09abf1b28ac3735cb4bd89a16ccd  gcc/testsuite/gcc.dg/tree-ssa/pr92930.c
  ca014276e5f9cd1e1500f2830781f240  gcc/testsuite/gcc.dg/tree-ssa/pr93118.c
  019fdc71b1f5726bb310324278d3460f  gcc/testsuite/gcc.dg/tree-ssa/pr93121-1.c
*************** e438df2d333e51a54de1eaf993fc89f3  gcc/te
*** 56380,56385 ****
--- 65544,65550 ----
  8e1587090a7715a9871b035c0d8441b8  gcc/testsuite/gcc.dg/tree-ssa/pr95649.c
  c6af84a8aff126c3fa99b857da4a410d  gcc/testsuite/gcc.dg/tree-ssa/pr95699.c
  8e9c05f529c069211365519d5eeba631  gcc/testsuite/gcc.dg/tree-ssa/pr95731.c
+ ebe093419bb24384ef7b36dba9bb1ff7  gcc/testsuite/gcc.dg/tree-ssa/pr95801.c
  a43f5375ab3cccb18ca71f3f0527e303  gcc/testsuite/gcc.dg/tree-ssa/pr95804.c
  ef25b14aec06c09126d8700e9e6c651e  gcc/testsuite/gcc.dg/tree-ssa/pr95867.c
  3fa5aa65dbfa04de9d6f766b9f6059b7  gcc/testsuite/gcc.dg/tree-ssa/pr95906.c
*************** a0647084804b90be3e8bdad82c7777a9  gcc/te
*** 56400,56407 ****
  a73a95372785101c5f4de5e36a62d6a1  gcc/testsuite/gcc.dg/tree-ssa/pr96688.c
  70188bafba9d185995a25fd8835ab428  gcc/testsuite/gcc.dg/tree-ssa/pr96691.c
  7b531ae0c6a470cf7a1f01a121524cb9  gcc/testsuite/gcc.dg/tree-ssa/pr96730.c
! daeb1c528ad4784407e7da4fe6db99d8  gcc/testsuite/gcc.dg/tree-ssa/pr96779-disabled.c
! 9522287958089c6c057c70702b091d11  gcc/testsuite/gcc.dg/tree-ssa/pr96779.c
  83c579881e1867fc68ce84f7d2d6c782  gcc/testsuite/gcc.dg/tree-ssa/pr96782.c
  f1814d9f48268164f5abca2ef9ff90f6  gcc/testsuite/gcc.dg/tree-ssa/pr96789.c
  7ce01d5539f42257afefbfc03dd79f4c  gcc/testsuite/gcc.dg/tree-ssa/pr96820.c
--- 65565,65572 ----
  a73a95372785101c5f4de5e36a62d6a1  gcc/testsuite/gcc.dg/tree-ssa/pr96688.c
  70188bafba9d185995a25fd8835ab428  gcc/testsuite/gcc.dg/tree-ssa/pr96691.c
  7b531ae0c6a470cf7a1f01a121524cb9  gcc/testsuite/gcc.dg/tree-ssa/pr96730.c
! d84bc61aefb899c22f593c599c43b132  gcc/testsuite/gcc.dg/tree-ssa/pr96779-disabled.c
! 254df303cd938801df3b3fc71576613b  gcc/testsuite/gcc.dg/tree-ssa/pr96779.c
  83c579881e1867fc68ce84f7d2d6c782  gcc/testsuite/gcc.dg/tree-ssa/pr96782.c
  f1814d9f48268164f5abca2ef9ff90f6  gcc/testsuite/gcc.dg/tree-ssa/pr96789.c
  7ce01d5539f42257afefbfc03dd79f4c  gcc/testsuite/gcc.dg/tree-ssa/pr96820.c
*************** c43846e7d9bad55e57bb6582cda21f23  gcc/te
*** 56439,56445 ****
  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
--- 65604,65610 ----
  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
! b8b2b0c1df8fac526583169e86def318  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
*************** cceaedde089c4379aba5e897d3594959  gcc/te
*** 56447,56456 ****
  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
--- 65612,65621 ----
  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
! 037d2ae2793b7ab6ee80a904cdc1a712  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
! 50b9b056862631cd544a4574a7b4a57b  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
*************** caec31b6e1784bb308ed0a58b70ee166  gcc/te
*** 56471,56476 ****
--- 65636,65642 ----
  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
+ af2a63631fd05babb7f4b9042b7b9665  gcc/testsuite/gcc.dg/tree-ssa/ptrdiff-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
*************** f217e7eaaf0fa982496dcfbf0c1b65fa  gcc/te
*** 56564,56580 ****
  345f346d2664e3f4e7b0d92c6b91cd55  gcc/testsuite/gcc.dg/tree-ssa/scev-13.c
  8c83b125bec2afaa6eba2f0385dc4625  gcc/testsuite/gcc.dg/tree-ssa/scev-14.c
  d396c36b9f0d747b966a2da9958bc3ac  gcc/testsuite/gcc.dg/tree-ssa/scev-15.c
  4323482b616b668100a20fa9ef8249fa  gcc/testsuite/gcc.dg/tree-ssa/scev-2.c
  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
  549723cdcfb863f339c41fe0af39103f  gcc/testsuite/gcc.dg/tree-ssa/slsr-11.c
--- 65730,65749 ----
  345f346d2664e3f4e7b0d92c6b91cd55  gcc/testsuite/gcc.dg/tree-ssa/scev-13.c
  8c83b125bec2afaa6eba2f0385dc4625  gcc/testsuite/gcc.dg/tree-ssa/scev-14.c
  d396c36b9f0d747b966a2da9958bc3ac  gcc/testsuite/gcc.dg/tree-ssa/scev-15.c
+ 9c8abcab6bd02788731e27ea02ed49a8  gcc/testsuite/gcc.dg/tree-ssa/scev-16.c
+ a4a9a2df2f16e298a4ad4bce64ed365b  gcc/testsuite/gcc.dg/tree-ssa/scev-17.c
  4323482b616b668100a20fa9ef8249fa  gcc/testsuite/gcc.dg/tree-ssa/scev-2.c
  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
! 53a183c291d407ab71bafb7445d214a2  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
+ 06258fdaa6a7e494fc1382efb0ace703  gcc/testsuite/gcc.dg/tree-ssa/sincos-ice-on-ifn_sin-call.c
  2cb74ffdd8d4210ad1c6bbaddbd8a8b6  gcc/testsuite/gcc.dg/tree-ssa/slsr-1.c
  a2527727970eaab3e3d043e5e4379256  gcc/testsuite/gcc.dg/tree-ssa/slsr-10.c
  549723cdcfb863f339c41fe0af39103f  gcc/testsuite/gcc.dg/tree-ssa/slsr-11.c
*************** d03cb3596196779855c74f48d36a97a2  gcc/te
*** 56615,56621 ****
  c9d54e802a416f03458eaee182da0547  gcc/testsuite/gcc.dg/tree-ssa/slsr-5.c
  6bab782ff13aa39d302f080d3c157946  gcc/testsuite/gcc.dg/tree-ssa/slsr-6.c
  47f4aa00fc6ef30ae0f1b03e5733a572  gcc/testsuite/gcc.dg/tree-ssa/slsr-7.c
! f5cbb278145ac126dcce52ba55a7e986  gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
  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
--- 65784,65790 ----
  c9d54e802a416f03458eaee182da0547  gcc/testsuite/gcc.dg/tree-ssa/slsr-5.c
  6bab782ff13aa39d302f080d3c157946  gcc/testsuite/gcc.dg/tree-ssa/slsr-6.c
  47f4aa00fc6ef30ae0f1b03e5733a572  gcc/testsuite/gcc.dg/tree-ssa/slsr-7.c
! dfe8d5ab532409e84d48b549d54eaf25  gcc/testsuite/gcc.dg/tree-ssa/slsr-8.c
  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
*************** d25bed281c9e52c5070488f498c6e1ac  gcc/te
*** 56626,56633 ****
  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
--- 65795,65802 ----
  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
! 7306543330c7415c1a56433c3640a1da  gcc/testsuite/gcc.dg/tree-ssa/split-path-6.c
! 46474197a5896cf18dd8ec96929014da  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
*************** e92489c90dd47c31b76500ce339319b1  gcc/te
*** 56652,56658 ****
  7b3f5a61b9f4a3f5a778aab896139fe2  gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
  677df0479e77e329b2cee6fbc674ed5f  gcc/testsuite/gcc.dg/tree-ssa/sra-longjmp-1.c
  b25208e2c31a217147d4f793dbfb7cb8  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
! 6b25812d84cb808691e7459f2ec58990  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
  d024d06922004215bb3d85a5e207ece3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
  487e8ba99622856ccdbd48030a99e293  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c
  377101857ba6c322f80507dfdbb9900c  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-13.c
--- 65821,65827 ----
  7b3f5a61b9f4a3f5a778aab896139fe2  gcc/testsuite/gcc.dg/tree-ssa/sra-9.c
  677df0479e77e329b2cee6fbc674ed5f  gcc/testsuite/gcc.dg/tree-ssa/sra-longjmp-1.c
  b25208e2c31a217147d4f793dbfb7cb8  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
! 153930606347bc56c7175cc52bff734e  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
  d024d06922004215bb3d85a5e207ece3  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
  487e8ba99622856ccdbd48030a99e293  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c
  377101857ba6c322f80507dfdbb9900c  gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-13.c
*************** fe380a1f1df354382cdc2b0804d55603  gcc/te
*** 56704,56710 ****
  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
--- 65873,65879 ----
  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
! f238b8e7102e4443eb09b9918e03f492  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
*** 56730,56736 ****
  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
! 342510956765f8f3e21a344fc1792bae  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
--- 65899,65905 ----
  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
! 27603b4afcb616272359ef0ea3981f69  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
*************** a2846d57ec83eed658cd1060b55e2581  gcc/te
*** 56777,56782 ****
--- 65946,65954 ----
  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
+ c1528b0ee15b822aeca5e0f171b77bc8  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-52.c
+ 16f6bc7d2e1f131a7c3b029a142d6555  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-53.c
+ dce9f66b040546116ff946641046c8f6  gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-54.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
*************** c1d1b89464c021a62101f69087a9fc75  gcc/te
*** 56786,56793 ****
  e38a8e54b4ea0d0d8fd4e9176e26de28  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-100.c
  4c8f24912f15202c6672c6017ec6d769  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-101.c
  c00143ba60133588bfbe318454aa251f  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-102.c
! 1c953f589e84249a6420f207f2c26c21  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-104.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-11.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-12.c
  b95088c9ed88a484349d681f36871312  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
  87ba541be7f38ef117b8b5cc09ff4932  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c
--- 65958,65973 ----
  e38a8e54b4ea0d0d8fd4e9176e26de28  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-100.c
  4c8f24912f15202c6672c6017ec6d769  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-101.c
  c00143ba60133588bfbe318454aa251f  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-102.c
! 0cc31127b41ca29df77bfd0d5d443291  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-104.c
! 4877d0c4dfb0947d295fd9245fd0be9a  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-105.c
! c696d7723e6935b64e8868efdada71d9  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-106.c
! 69437e124b7cceb5fdc45c11f735ad4d  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-107.c
! 8feae9527c722412189548752871178d  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-108.c
! 1c8adc8ead2883bcec8e9fb990e55c8e  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-109.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-11.c
+ 78f5b94faf6fa73b44dd51964967e5c2  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-110.c
+ e17e18c4987b53f256b8271310af6347  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-111.c
+ 1c4e46dde7b0fe083a98ab1723ffd455  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-112.c
  5561c38451474a42839647e4e156c010  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-12.c
  b95088c9ed88a484349d681f36871312  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-13.c
  87ba541be7f38ef117b8b5cc09ff4932  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-14.c
*************** bdd118cacb70c602f9b6144807aed06b  gcc/te
*** 56816,56822 ****
  9295a85b7eaca263fe82d8c5db5c9866  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-37.c
  23c7e5d5de23663f4479f76019bd23c8  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-38.c
  e79a627ae58b7541d9fb6ec03eaefbee  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-39.c
! 98710f3eb345ffc2c171f327941aab58  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-4.c
  4f9f2f8a69a18dadc2d2311dd2010e64  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-40.c
  61f6db090bbdb7f6f163215fb9dcab0b  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-41.c
  b3258310d328ad03515294509e93b1cb  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-42.c
--- 65996,66002 ----
  9295a85b7eaca263fe82d8c5db5c9866  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-37.c
  23c7e5d5de23663f4479f76019bd23c8  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-38.c
  e79a627ae58b7541d9fb6ec03eaefbee  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-39.c
! 1f64092eb5d5df1768a0a686716da525  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-4.c
  4f9f2f8a69a18dadc2d2311dd2010e64  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-40.c
  61f6db090bbdb7f6f163215fb9dcab0b  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-41.c
  b3258310d328ad03515294509e93b1cb  gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-42.c
*************** bc1b0eb9d58483a9f609b164efd64d18  gcc/te
*** 56925,56930 ****
--- 66105,66111 ----
  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
+ 982d2d128f70750a32db6150ef8991ef  gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-26.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
*************** f0ab808bc7ab00190cca716326795a29  gcc/te
*** 56941,56947 ****
  631621254fe71f5105a2e243570a8e2b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-16.c
  b04092c4b2d39c984fa7aa82a6aad8de  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-17.c
  0565ba1ba619b5ac95527755d8f0be3b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-18.c
! 20ad0633b8315a9b7f9b23effa2923a0  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c
  52a0d7217e700af17b3673ef6a1aac50  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c
  99d285efd4538bbb029bfe2322df1117  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-20.c
  77f5f7ec1f8332f700045b37b4c61e92  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-21.c
--- 66122,66128 ----
  631621254fe71f5105a2e243570a8e2b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-16.c
  b04092c4b2d39c984fa7aa82a6aad8de  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-17.c
  0565ba1ba619b5ac95527755d8f0be3b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-18.c
! 57c41816f37ba35a577403924bf8f68a  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c
  52a0d7217e700af17b3673ef6a1aac50  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c
  99d285efd4538bbb029bfe2322df1117  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-20.c
  77f5f7ec1f8332f700045b37b4c61e92  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-21.c
*************** bc456ba2c91652bd2140d56987cba543  gcc/te
*** 56954,56964 ****
  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
  887ebbb6fc9fa28141e943ea74380c78  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-34.c
  39d8ac143c15d11301c705a380a6769b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c
  bd3ae093f96e1ef4c6e63e83f1c59945  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c
  38403894c988bb66d103ea06dcfd401d  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c
--- 66135,66147 ----
  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
! 644f4a09cd96b02d2b840537fb419c75  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
  887ebbb6fc9fa28141e943ea74380c78  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-34.c
+ 687638685378b722aa22c4ce7ad8dc2e  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-35.c
+ c66b7cafbeff222b06fe998e7922efb9  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-36.c
  39d8ac143c15d11301c705a380a6769b  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c
  bd3ae093f96e1ef4c6e63e83f1c59945  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c
  38403894c988bb66d103ea06dcfd401d  gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c
*************** d869cf884bf06167758bc9df313cee97  gcc/te
*** 56984,56989 ****
--- 66167,66173 ----
  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
+ 1b2868fc75b0422f80ae23c634ed5621  gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-23.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
*************** f8d79acf16a7b0f25c65f787eb80a4f0  gcc/te
*** 56998,57004 ****
  639917ac728fb50216b5d641326a2d4e  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-13.c
  2d2a4c5d9176f15e6d84e8b7ebd76656  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c
  d27e19cbc74977f6d1e4eb7b508acbd2  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-15.c
! 97654a0ac48e6a645068fcebe3d8d8ed  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-16.c
  7b67e9ddb035d2cd169ccd1452a8d47a  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-17.c
  054da81e5ac60be0a91010d71ddf9ee8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-18.c
  4b0f41e665ea108724b1c5c7fc582cd4  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-19.c
--- 66182,66188 ----
  639917ac728fb50216b5d641326a2d4e  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-13.c
  2d2a4c5d9176f15e6d84e8b7ebd76656  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c
  d27e19cbc74977f6d1e4eb7b508acbd2  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-15.c
! eba056f8fdfc01dd50d19a42ad34bd50  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-16.c
  7b67e9ddb035d2cd169ccd1452a8d47a  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-17.c
  054da81e5ac60be0a91010d71ddf9ee8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-18.c
  4b0f41e665ea108724b1c5c7fc582cd4  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-19.c
*************** bb7e1bd5cca1d575ddd8aece7fd041b1  gcc/te
*** 57031,57042 ****
--- 66215,66230 ----
  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
+ 6ebda68234691e1005135b52db111110  gcc/testsuite/gcc.dg/tree-ssa/switch-5.c
+ 3b6457a6a1acf50e4110c7c4fe47290b  gcc/testsuite/gcc.dg/tree-ssa/switch-6.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
+ 8e050902c6523619c0bef4d901fc7d9c  gcc/testsuite/gcc.dg/tree-ssa/tailcall-14.c
+ 4a14fb1c6bba875b5de54f297404045a  gcc/testsuite/gcc.dg/tree-ssa/tailcall-15.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
*************** e84424985e065b3a1999b1ea596c8e5c  gcc/te
*** 57056,57062 ****
  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
--- 66244,66250 ----
  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
! 57382fa4ec0346591756d18d45ef68c7  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
*************** a12895e160ece0f553a23b23be8acc70  gcc/te
*** 57080,57085 ****
--- 66268,66274 ----
  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
+ eea142fd036a9cca50ef0e3ca244244e  gcc/testsuite/gcc.dg/tree-ssa/vla-1.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
*************** b62f715ee8b8937cdca8e5fb3f4a31b7  gcc/te
*** 57105,57110 ****
--- 66294,66306 ----
  dcd6b7c8149e3e1bf62ecdac2c39dce3  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-1.c
  ebac22fe693910194996cdf239108af7  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-2.c
  c7772445382b7be958fdb8b4b189ab2a  gcc/testsuite/gcc.dg/tree-ssa/vrp-float-signbit-3.c
+ d5ed70ec9ab2dd8a83d1a9ffcd187132  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-1.c
+ 1aad51bb9bf56af7e20c54c72bd852fb  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-2.c
+ 556918d1b50638909a155f913c9ce798  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-3.c
+ c357233e58ef311b1373027fe085936c  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-4.c
+ 63364c254b5272a68ed9aa3ec449453e  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-5.c
+ 3dedc9d679f868f503cb11a78b6a5401  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-6.c
+ 991d629b156ecf31676c1e9d61465dbc  gcc/testsuite/gcc.dg/tree-ssa/vrp-from-cst-agg-7.c
  b8bce41399c7a872e19e6af776f1b0e8  gcc/testsuite/gcc.dg/tree-ssa/vrp-loop-1.c
  65e1c44626dcbb799fcde072f844d5ee  gcc/testsuite/gcc.dg/tree-ssa/vrp-loop-2.c
  05c12d9d18ddba971b5eade05baa3576  gcc/testsuite/gcc.dg/tree-ssa/vrp-unreachable-1.c
*************** a2d068c8b5d5ecb7aeb9d6f60f75690b  gcc/te
*** 57147,57152 ****
--- 66343,66349 ----
  a62799429f8c8c8beabf64b3b102d402  gcc/testsuite/gcc.dg/tree-ssa/vrp121.c
  27747820246d9edefc91db9bb938f68f  gcc/testsuite/gcc.dg/tree-ssa/vrp122.c
  fffdbdc5b093f3e6f5bcd7eddb0c788b  gcc/testsuite/gcc.dg/tree-ssa/vrp123.c
+ 393a73f607a36f6b6c5318313255562b  gcc/testsuite/gcc.dg/tree-ssa/vrp124.c
  5c02e78e0a19d3b4ab362211af9c057d  gcc/testsuite/gcc.dg/tree-ssa/vrp13.c
  7e4e2677592121fe637fead20ff82420  gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
  88a28f67649717d0c28edf297d3bc70c  gcc/testsuite/gcc.dg/tree-ssa/vrp15.c
*************** c65bb38d621cd1fe2b1533770dfec13c  gcc/te
*** 57235,57241 ****
  09c180f580447bfea8ff91ad81781be3  gcc/testsuite/gcc.dg/tree-ssa/vrp97.c
  a2633c9b66a328f6153f6fe74603b46f  gcc/testsuite/gcc.dg/tree-ssa/vrp98-1.c
  f7edf6151c35b222fd66fe727f22a15a  gcc/testsuite/gcc.dg/tree-ssa/vrp98.c
! 9bebb10790801ab5fff1fc3c72bfbc17  gcc/testsuite/gcc.dg/tree-ssa/vrp99.c
  6a9b24ebec6820a8ec39fb106a33a0db  gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c
  1674280740676ac853a0c40326c7a3bd  gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c
  1de3cdbef0251dc14d21f1fc5e419d05  gcc/testsuite/gcc.dg/tree-ssa/wnull-dereference.c
--- 66432,66438 ----
  09c180f580447bfea8ff91ad81781be3  gcc/testsuite/gcc.dg/tree-ssa/vrp97.c
  a2633c9b66a328f6153f6fe74603b46f  gcc/testsuite/gcc.dg/tree-ssa/vrp98-1.c
  f7edf6151c35b222fd66fe727f22a15a  gcc/testsuite/gcc.dg/tree-ssa/vrp98.c
! 42cb8e7345d49b18b264b19715d8ea83  gcc/testsuite/gcc.dg/tree-ssa/vrp99.c
  6a9b24ebec6820a8ec39fb106a33a0db  gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c
  1674280740676ac853a0c40326c7a3bd  gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c
  1de3cdbef0251dc14d21f1fc5e419d05  gcc/testsuite/gcc.dg/tree-ssa/wnull-dereference.c
*************** bb62f82a973334db1c0ebf75b17bcdf8  gcc/te
*** 57244,57256 ****
  016029e7b08dbc8fe1d266551df2fdd3  gcc/testsuite/gcc.dg/tree-ssa/writeonly.c
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
  0986037c6e0724a89f8308100f3f920f  gcc/testsuite/gcc.dg/tsan/atomic-fence.c
  c0761616b56e6c13ccfbf05810c3ad42  gcc/testsuite/gcc.dg/tsan/pr106984.c
  93c01dbb8a77851bfbe99fc7c806d056  gcc/testsuite/gcc.dg/tsan/pr111736.c
  66723ae098123069493e416708ef5146  gcc/testsuite/gcc.dg/tsan/pr88017.c
  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
--- 66441,66454 ----
  016029e7b08dbc8fe1d266551df2fdd3  gcc/testsuite/gcc.dg/tree-ssa/writeonly.c
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
  0986037c6e0724a89f8308100f3f920f  gcc/testsuite/gcc.dg/tsan/atomic-fence.c
+ 73556ef30029b1269c82de229e676243  gcc/testsuite/gcc.dg/tsan/atomic-invalid.c
  c0761616b56e6c13ccfbf05810c3ad42  gcc/testsuite/gcc.dg/tsan/pr106984.c
  93c01dbb8a77851bfbe99fc7c806d056  gcc/testsuite/gcc.dg/tsan/pr111736.c
  66723ae098123069493e416708ef5146  gcc/testsuite/gcc.dg/tsan/pr88017.c
  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
! 30a13b3002d66119969bd90c997a0bfa  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
*************** e2c0ae3b7ed6cf4f7eed5c4ed76ee410  gcc/te
*** 57303,57308 ****
--- 66501,66509 ----
  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
+ 6975f30222afb309a1d34fbcf2c11e38  gcc/testsuite/gcc.dg/ubsan/counted-by-anonymous-bounds-1.c
+ e879e7f722c6198cac405eb30a81f528  gcc/testsuite/gcc.dg/ubsan/counted-by-anonymous-bounds-2.c
+ 93bd48937a1990338e7ee1a9df544652  gcc/testsuite/gcc.dg/ubsan/counted-by-anonymous-bounds.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
*************** b6636fcf606d4b2a9b3c129b082bc808  gcc/te
*** 57313,57318 ****
--- 66514,66529 ----
  3325507ff87bcf4f63df3972ec6895c4  gcc/testsuite/gcc.dg/ubsan/ipa-icf-1.c
  20138e45bcf86067b02f18ee36d2a451  gcc/testsuite/gcc.dg/ubsan/object-size-9.c
  4e0da97c15afa52d7e5b234e4f20fb83  gcc/testsuite/gcc.dg/ubsan/object-size-dyn.c
+ ff67662e443c4c2342a61fcc8b49fa51  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-124230-char.c
+ a54b7ba09da80c0c34480370f680bd80  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-124230-float.c
+ 6347b95d14e1d49cc381a4e01ce31162  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-124230-struct.c
+ a1ffc0a57c0651fd28b468f33372ff64  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-124230-union.c
+ e996be05f2813b3912182783baab0bc8  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-124230.c
+ 05bb20a3d7386d43eb1e3dd852eeffe3  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-2.c
+ 9a2a9a3d06ff9ff7cb6952d4035bdbe0  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-3.c
+ 90a10543424a4e0854a58f9c2eaea888  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-4.c
+ 375104140062d628a4e0b31a63aecb44  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds-5.c
+ 15f2a453c54d88e665f619a8a24c6684  gcc/testsuite/gcc.dg/ubsan/pointer-counted-by-bounds.c
  bd23f40ca964648dca24107dcc929765  gcc/testsuite/gcc.dg/ubsan/pr103456.c
  dc95648d25ed66b53703856ca8bf9c89  gcc/testsuite/gcc.dg/ubsan/pr106099.c
  cefdc2a9eb13f2095c81dff3665fcbe2  gcc/testsuite/gcc.dg/ubsan/pr107183.c
*************** f7352e346071f20c88b4cda3aefaf007  gcc/te
*** 57324,57329 ****
--- 66535,66542 ----
  07fea3b40997114ec3071642a71f05f0  gcc/testsuite/gcc.dg/ubsan/pr112741.c
  9d35f4aafed7065254d5bcbd8e4b3469  gcc/testsuite/gcc.dg/ubsan/pr113012.c
  cae65f7755e556ca92edd7478099c942  gcc/testsuite/gcc.dg/ubsan/pr120837.c
+ 8473c3619b7325ec5d561c11f2efaeff  gcc/testsuite/gcc.dg/ubsan/pr124969-1.c
+ a8e0fe987e40b1ffd24d2a5334369eec  gcc/testsuite/gcc.dg/ubsan/pr124969-2.c
  8b53119c2975ba4eb7e0a8a3f21049bc  gcc/testsuite/gcc.dg/ubsan/pr63690.c
  7a3b89a11b570c0d6817707c745a9fba  gcc/testsuite/gcc.dg/ubsan/pr67279.c
  c9a455b03d901e306e1836d50e9e37d6  gcc/testsuite/gcc.dg/ubsan/pr67662.c
*************** e95ed112f0ea45770ff240c4770cd2c7  gcc/te
*** 57349,57355 ****
  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
--- 66562,66568 ----
  a6de1d906f46c35c2202d196fcbdba1a  gcc/testsuite/gcc.dg/ubsan/pr89284.c
  51557943b6a5571078dca811d526d7d8  gcc/testsuite/gcc.dg/ubsan/pr94423.c
  0f09425e087253b3e4d9360b845cfa01  gcc/testsuite/gcc.dg/ubsan/pr95810.c
! 3199d6db3d64512e9f6db1d878500ca9  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
*************** c611b4ad3ec4bad367027a6ab1ef6505  gcc/te
*** 57398,57404 ****
  8c17d6053629a76d697c5750e0ab6be0  gcc/testsuite/gcc.dg/uninit-15.c
  92cf714efeaed3ffe0cd867508cfe505  gcc/testsuite/gcc.dg/uninit-16.c
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
! 728401b250e40769899aeaa5eb3c4f2e  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
  2a426f79de81351d47cb171978b08347  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
--- 66611,66617 ----
  8c17d6053629a76d697c5750e0ab6be0  gcc/testsuite/gcc.dg/uninit-15.c
  92cf714efeaed3ffe0cd867508cfe505  gcc/testsuite/gcc.dg/uninit-16.c
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
! 6d9097c58f221810416c0c204a93c44c  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
  2a426f79de81351d47cb171978b08347  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
*************** e2b774abf8d7e4cc810bee5ab597c4cc  gcc/te
*** 57463,57468 ****
--- 66676,66682 ----
  5ab5ce2cb9b25a98ce70a6310fc6a88d  gcc/testsuite/gcc.dg/uninit-pr106866.c
  d302509e7e4d06b47b78ba3214c7fc0e  gcc/testsuite/gcc.dg/uninit-pr106881.c
  bb6370e51fdfc71eb406f2d9d7e1f004  gcc/testsuite/gcc.dg/uninit-pr107839.c
+ a75c734308844a93020556c58b54742b  gcc/testsuite/gcc.dg/uninit-pr108466-1.c
  10779a14525372affcb25a7e7209e309  gcc/testsuite/gcc.dg/uninit-pr108547.c
  a0d21e844c69e57b42877341fb99cf0d  gcc/testsuite/gcc.dg/uninit-pr111397.c
  499c474f28073285766d0bb22cfa9e09  gcc/testsuite/gcc.dg/uninit-pr111489.c
*************** ec22e39e2b160e6444e03b5dcacc93f3  gcc/te
*** 57503,57508 ****
--- 66717,66723 ----
  2e37ae395e46a8e8e62921557b5db451  gcc/testsuite/gcc.dg/uninit-pr95136.c
  b9a90a31f9367e9fca92ba238b6fe065  gcc/testsuite/gcc.dg/uninit-pr98578.c
  776c442039a1091c603d900bd9f272bf  gcc/testsuite/gcc.dg/uninit-pr98583.c
+ d0cc734c519900cf3818df0c3dad96d4  gcc/testsuite/gcc.dg/uninit-pr99959.c
  4d968f2db69dec7e5f880146576fc801  gcc/testsuite/gcc.dg/uninit-pred-10.c
  1c6a6934369db3cfac321448a75a0f01  gcc/testsuite/gcc.dg/uninit-pred-11.c
  ba0a14121a9b141b05ad92194338f663  gcc/testsuite/gcc.dg/uninit-pred-12.c
*************** c17f9d40557afd23540fbdc6dee10e2d  gcc/te
*** 57523,57529 ****
  05f38c38c613725dd896471fbc94ef85  gcc/testsuite/gcc.dg/uninit-pred-6_c.c
  840114fbb15ec153ec3965fd3d60423e  gcc/testsuite/gcc.dg/uninit-pred-6_d.c
  ddb0d9d02246d260424316fc51c4b34f  gcc/testsuite/gcc.dg/uninit-pred-6_e.c
! 7fc529e05e88623e8a1680b679c615b4  gcc/testsuite/gcc.dg/uninit-pred-7_a.c
  19e220a29cccab9dbda4e645d69c30b2  gcc/testsuite/gcc.dg/uninit-pred-7_b.c
  ae9f63955208be4c16b0ba30bd16f5b4  gcc/testsuite/gcc.dg/uninit-pred-7_c.c
  7a3eae1faebb33a9f5f883ebc298164a  gcc/testsuite/gcc.dg/uninit-pred-7_d.c
--- 66738,66745 ----
  05f38c38c613725dd896471fbc94ef85  gcc/testsuite/gcc.dg/uninit-pred-6_c.c
  840114fbb15ec153ec3965fd3d60423e  gcc/testsuite/gcc.dg/uninit-pred-6_d.c
  ddb0d9d02246d260424316fc51c4b34f  gcc/testsuite/gcc.dg/uninit-pred-6_e.c
! c952a211dfbeabaa3bb844dee353ec14  gcc/testsuite/gcc.dg/uninit-pred-7_a.c
! c31aa3a35c3468eded241119f0f38c8d  gcc/testsuite/gcc.dg/uninit-pred-7_a_a.c
  19e220a29cccab9dbda4e645d69c30b2  gcc/testsuite/gcc.dg/uninit-pred-7_b.c
  ae9f63955208be4c16b0ba30bd16f5b4  gcc/testsuite/gcc.dg/uninit-pred-7_c.c
  7a3eae1faebb33a9f5f883ebc298164a  gcc/testsuite/gcc.dg/uninit-pred-7_d.c
*************** e4b537e85147239a3fc4b998be3eac4c  gcc/te
*** 57545,57550 ****
--- 66761,66767 ----
  9fa2cff5bcff4df8b1fc7bf0d88b061b  gcc/testsuite/gcc.dg/union-cast-2.c
  b909732314b5b1dd0dbae5d059adef6f  gcc/testsuite/gcc.dg/union-cast-3.c
  dc36e1fc63bcc8c697aee2fadba2036d  gcc/testsuite/gcc.dg/union-cast-4.c
+ b2cccb9e569370f7b92ab35d360f96d2  gcc/testsuite/gcc.dg/union-composite-type.c
  ae4d67d87a0b04934eeaae8a208e5575  gcc/testsuite/gcc.dg/union-duplicate-field.c
  a7ac2b6782378edf99026215c26ce37f  gcc/testsuite/gcc.dg/unordered-1.c
  fced4847e686e50fcf2f9178fed8ec41  gcc/testsuite/gcc.dg/unordered-2.c
*************** e3db8ed02ca0ecad28455ac3f0b93696  gcc/te
*** 57572,57578 ****
  b9094e47fb1bcf5228d5a172f181d34c  gcc/testsuite/gcc.dg/unused-7.c
  a356a547d4f122d4cbb05a15d0ae98a9  gcc/testsuite/gcc.dg/unused-8a.c
  615e1e240a379f560bb499664764aa19  gcc/testsuite/gcc.dg/unused-8b.c
! 9a3cc991317dbcc7a05600e051eee3a6  gcc/testsuite/gcc.dg/unused-9.c
  2d4474648183006b06c5f9854456f93f  gcc/testsuite/gcc.dg/unused-variable-1.c
  a2064d0ab63f355ec70a8ba78cc0aad3  gcc/testsuite/gcc.dg/unused-variable-2.c
  24b35e461fad54da15489dc416f4b3e6  gcc/testsuite/gcc.dg/unused-variable-3.c
--- 66789,66795 ----
  b9094e47fb1bcf5228d5a172f181d34c  gcc/testsuite/gcc.dg/unused-7.c
  a356a547d4f122d4cbb05a15d0ae98a9  gcc/testsuite/gcc.dg/unused-8a.c
  615e1e240a379f560bb499664764aa19  gcc/testsuite/gcc.dg/unused-8b.c
! 6b148d345c0ca5c976aa0c8e6baf461b  gcc/testsuite/gcc.dg/unused-9.c
  2d4474648183006b06c5f9854456f93f  gcc/testsuite/gcc.dg/unused-variable-1.c
  a2064d0ab63f355ec70a8ba78cc0aad3  gcc/testsuite/gcc.dg/unused-variable-2.c
  24b35e461fad54da15489dc416f4b3e6  gcc/testsuite/gcc.dg/unused-variable-3.c
*************** c07b9d4e3ca9cf5bb3e5b307145e90ff  gcc/te
*** 57612,57641 ****
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  676e89c6b3d0e18d0a9ec4b5f95072e9  gcc/testsuite/gcc.dg/vec-perm-lower.c
! f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
! 6830ebc59ec37676c0ffa608cbbf0dbf  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
! 7f512dc347a6a290aad93ca27e40d3cf  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
! 810b6c567d5cc65ed09e5f629749c726  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! 9f70d133cf0f8ca01ddfad668acea211  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
! 0ab6a3fe4028fa52387afcf07048d42b  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
! 0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
! f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
! f03f156261b27743d553f9fe6d7d101c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! d8070175db1427b96725412f7f707e00  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
! 0624b7385890a947f64e52ebba25b5c4  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
! 480e3a6ad5c66a146fe08e5b9f5bcbbf  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
! a959c9cd4dfb9164c103f8c61740e6ab  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
! f7665d7d0aa1b90766acc485626018a6  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
! 3aceef80872b677e6b60251bfe10b13c  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
! 013f85cb6d747ae2935ef1404e22d4d8  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! 61cff5751ac047afd81084622de56210  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
! 466c6438cbf21bd48800a6bd2bce72af  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
! 9f9afc3ac1c180057b7c583bd065c471  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
! 6f596ecff4c2737731de5f27856f1a79  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
! fc3f9485da33ab149e612932c91c2cb1  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
  fe265996a9ba43da01bf88128f9404f7  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
--- 66829,66859 ----
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  676e89c6b3d0e18d0a9ec4b5f95072e9  gcc/testsuite/gcc.dg/vec-perm-lower.c
! 4b03f610c766f4868dc1f6a9231a92dd  gcc/testsuite/gcc.dg/vect/O-pr46167.c
! 80376cabe7282c0a5547826a1f72c583  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
! 0244865eb965be6b0206c2093916569c  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
! ea91598a5eed7ffd481f6cbfc45b1f10  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! e683131579ddd6937a0965e90ccdd39f  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
! d83c8e1a6ac50599dfc86b5c8c8c4f12  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
! e0bf38ffbf9adb96791fc1b83e79fe3d  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
! 5171b87956f5231c0b9628f3a000fe44  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
! 7a7595cf8e0394aef95ce42b17efbd9c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! bb7b6533aa6e26f74d69bb6e8f2b7d48  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
! b2c7bd060363e41c80aae3b983955694  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
! 69aeb7f04d8d1ded086be822fc9b914a  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
! cd7c0988aa07fbdb79c0f1b0e5bd81d3  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
! 34a6eb045b3bfaf4f22270fcfd2a3794  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
! 5e99548572b3c36bed9be3d83166ddbb  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
! 9c8d14cbf3cfa02ca8f8270addce7414  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! 9d79d6ac04ce5e31d62c95e2874e9173  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
! f2d863976486b2799e4a623feb897fab  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
! 608f24e183cbe3e235bec9f40501b273  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
! e86c161fb300e8dcfa9a91f7d9a396ec  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
! 0709a21c113137ed1fe8ec266ae4032e  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
  fe265996a9ba43da01bf88128f9404f7  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
+ f6f5dfefafd6c8e1ad7d55c69208890a  gcc/testsuite/gcc.dg/vect/bb-slp-12.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
*************** f270872fadd92760313d996e3897ae0d  gcc/te
*** 57664,57673 ****
  167edde777120c9bbb2baa8d8b1962a6  gcc/testsuite/gcc.dg/vect/bb-slp-36.c
  d9b82f24ec441bd4ed9946db9792733c  gcc/testsuite/gcc.dg/vect/bb-slp-37.c
  7bcff90b9863e84eae294cff0b865427  gcc/testsuite/gcc.dg/vect/bb-slp-38.c
! 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
--- 66882,66891 ----
  167edde777120c9bbb2baa8d8b1962a6  gcc/testsuite/gcc.dg/vect/bb-slp-36.c
  d9b82f24ec441bd4ed9946db9792733c  gcc/testsuite/gcc.dg/vect/bb-slp-37.c
  7bcff90b9863e84eae294cff0b865427  gcc/testsuite/gcc.dg/vect/bb-slp-38.c
! 190410e1fef8da664b76927524f2d9c4  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
! 53e1a4b454c8edeed16827fca00d8b77  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
*************** bc23526547bfbe3d5724aba7cd30e796  gcc/te
*** 57684,57690 ****
  282e214d76f206f19be94906193df2d5  gcc/testsuite/gcc.dg/vect/bb-slp-54.c
  26ea60176ceb55d6a9f68d55da12eead  gcc/testsuite/gcc.dg/vect/bb-slp-55.c
  f6f8e2090f5d8d3cd0224f32d3592771  gcc/testsuite/gcc.dg/vect/bb-slp-56.c
! a6375b757b6e1250b67fba30647311fa  gcc/testsuite/gcc.dg/vect/bb-slp-57.c
  1e9c87c5632512dcac49bac1a9a3fb59  gcc/testsuite/gcc.dg/vect/bb-slp-58.c
  f98c36a85842c3528928d9455929dfcf  gcc/testsuite/gcc.dg/vect/bb-slp-59.c
  70097c9bab004cdd540c4469854ec47f  gcc/testsuite/gcc.dg/vect/bb-slp-6.c
--- 66902,66908 ----
  282e214d76f206f19be94906193df2d5  gcc/testsuite/gcc.dg/vect/bb-slp-54.c
  26ea60176ceb55d6a9f68d55da12eead  gcc/testsuite/gcc.dg/vect/bb-slp-55.c
  f6f8e2090f5d8d3cd0224f32d3592771  gcc/testsuite/gcc.dg/vect/bb-slp-56.c
! f93b02d31aed00cc3e4e8f9ee580d661  gcc/testsuite/gcc.dg/vect/bb-slp-57.c
  1e9c87c5632512dcac49bac1a9a3fb59  gcc/testsuite/gcc.dg/vect/bb-slp-58.c
  f98c36a85842c3528928d9455929dfcf  gcc/testsuite/gcc.dg/vect/bb-slp-59.c
  70097c9bab004cdd540c4469854ec47f  gcc/testsuite/gcc.dg/vect/bb-slp-6.c
*************** e25a8f3320f641e5055cfc1e0a955c40  gcc/te
*** 57712,57718 ****
  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
--- 66930,66939 ----
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
! 1d364b88cee484a12627a6441eb0a73e  gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c
! a2a31f73b067f86314a45763557dbbb3  gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c
! 9c7f6add6d5a9e38d559986146f82f20  gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c
! e1585b42cfd6432c0219b429481cdcfe  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
  b2a7701b9eeacd6cecdcda7c9036129a  gcc/testsuite/gcc.dg/vect/bb-slp-conditional_store_1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
*************** be86bc81622216478087ebb0eb3b5c80  gcc/te
*** 57756,57762 ****
--- 66977,66987 ----
  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
+ 449a56358af2ecccab64ebf0a2c70ef8  gcc/testsuite/gcc.dg/vect/bb-slp-pr115777.c
+ 536ff3716470f738cfa7ae45d07e10f8  gcc/testsuite/gcc.dg/vect/bb-slp-pr119181.c
  7985ca78d6f56c0a2c1475513068be88  gcc/testsuite/gcc.dg/vect/bb-slp-pr119960-1.c
+ 63bead846dcbd7cde9d80df1101fda79  gcc/testsuite/gcc.dg/vect/bb-slp-pr120808.c
+ c7ebf5ca82162d225346ddd17f7cd2e2  gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c
  d46400927215059ca9b31c5b97f6e386  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
  7e19c3d3a663aa66906a8c708aec1d4e  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
*************** ce6f3b76b7f5757740b1751047c0460e  gcc/te
*** 57795,57844 ****
  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
! 429950609915964e7a3cd614c65e710e  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
! 335b50f9d0620fef3b559405e2765383  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
! 68b0f033eb8e82ab065c3397e55b80d8  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
! da01a04c92638828913a7e1b47407c8c  gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
! b6ce92f01b0a8720a15a8af7995a1dde  gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
! 53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
! d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
! 62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 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
--- 67020,67068 ----
  9d6a9459aa3801194418e6facab73b4c  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
  11810aa5a9fd50609553a0f8341084cc  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
  e9a7f92621e123a2f43bd6eb8a377ec4  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
! fc8c785166c2bf723856a358abae638a  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c
! f3f8f88ffc2fdbd76104d8c2df9d5a2c  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c
! 95726074b91226ec9408baaf51f6fc5f  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c
! 10728fb4a6950c82cb6bc9d0eb53db56  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c
! 9c1bae87de05b1d234e79606fac9e2ed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c
! fe3215787c8e8f2ed17a1b9c757b5bcb  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c
! 392b14f43eb42a8d099e93a67238f482  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
! 3c29986989a350bcbf82d2501296e7ed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
! 7875ef38a4f22fd8067ef974de90f4ec  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
! 365c5378e95d6a83b16661ad030b00e0  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
! 5783832c933d2ed6c0cf921f8ccc3753  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
! 87e4526cc9df43f2a40e361af1b14bae  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
! be69beba870ab0e8027df3a96e1e3a99  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c
! a2b6574b490bdeae547c7c3d79c95eed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c
! ebaebc19e7f2353f823de1f12e1687af  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c
! fa9e975179c7549630562771c7beb477  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c
! 696fb756ddff68598ae74b6574bf930a  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c
! 8bf53e580f4f0838c8bb08429abb3cc6  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c
! 63d0650eadca149641643cc10372f0dc  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c
! 7872d9eb2f30f8baf7e42f5ccc6980ad  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c
! d039718def2f3937914a518ee3bf2343  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c
! 1fc38485361104e297d916db73278323  gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
! f98f85041aa7e74dc854e5f95344a5e7  gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
! 9224167900cc04aa98d04baedf23218f  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
! 19f8b0e0747b407b42b8b3e84a37cb27  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
! aae47587c5f9a941e4124e02c8f15982  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 437c859df52d34bdba6b31ad2a45dbe9  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
! b63209d5f0331da4f3a28d32c2d7ae4a  gcc/testsuite/gcc.dg/vect/complex/complex.exp
! 25c417974becda51f30b458c8bd136e6  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
! 8024221a9e17bb7c493d008d00d70fa7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
! 54eb093dbdffbcd90c078ffda3d3000a  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
! 93b8b2dbb2616c94964b483223d953e4  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c
! f665de684a4402a83ad5818e28d6e5a9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c
! 71f906ad3b08f012d600d3888982a90e  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
! 57e15b7ef9d601bd655447090b2bb7d3  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
! 5da6146e756349ba0bab013ace542879  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
! 42d4073a33be8c23ddc5e9a5cd81a38d  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! 2768b51e3bf269abcd2b7ab0b65916db  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
! 28d905e18264d0f2bad4f29f19e792ad  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
*************** c2d3c1958834ef5542166c46b1c7339b  gcc/te
*** 57849,57868 ****
  ea6917669593abb97e9cf1eeba2057fa  gcc/testsuite/gcc.dg/vect/complex/pr102819-8.c
  15cf5145d6285f1d05a5616d443c75b4  gcc/testsuite/gcc.dg/vect/complex/pr102819-9.c
  c4d0e466bb43191fd4268600967b5fdc  gcc/testsuite/gcc.dg/vect/complex/pr103169.c
! 570ca4e6366a30d735a804fb6c316edc  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c
! a567071450c728dd8b5541e58b73bc27  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c
! ef1e47c49bc248403363127fd2733ae0  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
! 39803097953fcecb8bdaad4ea2f6de20  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
! 7ad4c85c9fefa6711da9c3e6184c822c  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c
! bcb67819eb28363a86adad46990edf31  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c
! eb33c9aba50486ac13a7328fde376230  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
! dc4950313316b732f84a3dbc6a45f70d  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c
  f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c
  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
--- 67073,67093 ----
  ea6917669593abb97e9cf1eeba2057fa  gcc/testsuite/gcc.dg/vect/complex/pr102819-8.c
  15cf5145d6285f1d05a5616d443c75b4  gcc/testsuite/gcc.dg/vect/complex/pr102819-9.c
  c4d0e466bb43191fd4268600967b5fdc  gcc/testsuite/gcc.dg/vect/complex/pr103169.c
! 4db4ea078fa277084b80bb83a203f932  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c
! f6129d990db7db496ee9ef710eb8e86c  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c
! 02ed7a9ee4d6e2832566fa8e8a460d39  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c
! 38e8b2da7ddfeaca63228413ccba47d8  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c
! af56e75bfa2da2ceee7d5d8676b3a1f9  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c
! c3b134c9e97720530a5641472ef8b4ae  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c
! f24209d345c312cc0279c60b1296f66d  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c
! 0c7eacecf52548d9ea111297d1c75f78  gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c
! 470ca12a06e049b67c0f0a2ed5f247ba  gcc/testsuite/gcc.dg/vect/complex/vect-complex-operations-run.c
  05fc220f1ddbdb4d47d859b5d07869e2  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c
  f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c
  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
! 66fd642670cc8fca7e5b9447c0871e66  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
*************** a0cfa86bcfadab7dd7bfdc45d44a30ee  gcc/te
*** 57887,57893 ****
  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
--- 67112,67118 ----
  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
! 1fe6013eb399ebeb6ec2ca74307b0726  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
*************** f2317f19938996a698ef438051827fa8  gcc/te
*** 57912,57926 ****
  6ce36d21bab8c8f0d1ec0445949787e6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-12.c
  9142a47e0d92eb815a6ab62fb813409b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
  64ebc5c00b3b93cf3fba373248930a4a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
! f90613eca1398e841f666ecb38eb4e66  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
! a538aa2c6d6d5fe669b39929cfc50b18  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c
! 6c4cb21484bc65e227288f39312dc57b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
! e5ce45ad08253ab1421aa37cc580e7cc  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c
  337c7b64a5d457f02c8492fd2fa1aafd  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c
  e5fb34ed6bac60fc3bd747c1f7d59d62  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c
! c77e3227751bb9a8c7a7cf75ddc22830  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c
  26123072fa512c52055c97c7c76b8ce5  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-11.c
! f798ac51e1550c7537bbd99e35e62d16  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-12.c
  19081e29f1e62a6af5f2b3541e3347d3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-13.c
  045f71cd9dc60802f1b1538cff78a188  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-14.c
  33cd89200cb4fcc1b82602b00dc1b812  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
--- 67137,67151 ----
  6ce36d21bab8c8f0d1ec0445949787e6  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-12.c
  9142a47e0d92eb815a6ab62fb813409b  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
  64ebc5c00b3b93cf3fba373248930a4a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
! 8d1751a18b2a65b1ef2d2d4a7f5d40cb  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
! 941b601c33bccfd497e7110163f12d9e  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c
! ea4da70468b59ce0d4ef8aeec203ad02  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
! 19c65d4b3358f2c9e99bcfc5745f3e1c  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c
  337c7b64a5d457f02c8492fd2fa1aafd  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c
  e5fb34ed6bac60fc3bd747c1f7d59d62  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c
! c29a43edcdf9ea39fcd2785676a73227  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c
  26123072fa512c52055c97c7c76b8ce5  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-11.c
! 6f4bf2c4a507528f38d259981fb499fc  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-12.c
  19081e29f1e62a6af5f2b3541e3347d3  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-13.c
  045f71cd9dc60802f1b1538cff78a188  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-14.c
  33cd89200cb4fcc1b82602b00dc1b812  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
*************** f798ac51e1550c7537bbd99e35e62d16  gcc/te
*** 57930,57936 ****
  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
--- 67155,67161 ----
  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
! 9937b597ae9adc5fa7d9e858a542cdfa  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
*** 57940,57947 ****
  9be8169d72cecf51be42dac4d682221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr112387-2.c
  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
--- 67165,67172 ----
  9be8169d72cecf51be42dac4d682221a  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr112387-2.c
  cafa8dfe3e91d7693561c1b355e97072  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-1.c
  696cb400499d38d8d660ac378dfec2f9  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-2.c
! f06ecddcdacee3220d70892b6f26ae1e  gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/pr113112-3.c
! 091864f8a0ff9d4054520080b51148b9  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
*************** d80bfc6c78f7b2de2fe9e7c1d6d6021b  gcc/te
*** 57956,57962 ****
  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
--- 67181,67187 ----
  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
! 4f6bceb10ec93d41d797ffe2cbac3136  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
*************** bf09afbba6493ac87c2ff39ded34ec66  gcc/te
*** 57977,57982 ****
--- 67202,67212 ----
  aca7d2373617a1be34881ac1c7f666c3  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr104582-2.c
  45453c03b2d83b8c253a510f6a157bdd  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr104582-3.c
  220ca37927f70593ad75a493a099ae58  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr104582-4.c
+ af1a8b32e71c4979a967ab326a54bace  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr122573.c
+ 9186fecdc3fdbd1e29c457ed6c3ec015  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123190-1.c
+ 4b5a237cf055ed5b96ca7403d59bb3f7  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123190-2.c
+ 8fea677abf30f1b5c86576427478aa41  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c
+ 65d55853388c31894d07b296d0d577bf  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123603.c
  adf307e0a12bcc8d31b97d83adb3e848  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr30843.c
  ec5c6a4d5052e20e84aa5eb95742d36f  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr64909.c
  e094ee1a12f158fa8be372b1974af637  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr69297.c
*************** e094ee1a12f158fa8be372b1974af637  gcc/te
*** 57985,58004 ****
  f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c
  396130749e6b4f9ec773821041143ba0  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c
  d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c
  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
--- 67215,67232 ----
  f69c055c238cc0217c98e86380f16061  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c
  396130749e6b4f9ec773821041143ba0  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c
  d13254c5eb24a8e02c724470d3f22c66  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-68.c
+ f2976042c525e5f95f95c9e6a6567575  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-epil-1.c
  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
! 8860086a2b3e2174a392f3d46c756988  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
  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
! 1b9f860b9fc08700480114e90cf75ea0  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
*************** fd5615699c1f8eee1f32b1e5347d1b09  gcc/te
*** 58011,58092 ****
  18b443a6542ecf233ed9863c434b9020  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
  2ba8ef3f1c7b4b49a6d7dcdd4309f45a  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  0a6857153fdf055681069ad0998981d5  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
! 468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  ddaaf03843db012c82a284d40a6b6d82  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
! cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  bd34fbf40b5ec76d35a3c504583c1c49  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  1afc983220c4adf37e3e3dfabc291c08  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! 5e809f76a90b3214ed4c5c22b9ed3546  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! 31f492da75d5c984323816dc8ff1e160  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! 5d97c676fcf52690b27698a4ae640549  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
! 632a3b961d87adfe616ad7b6caf77e2a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 5c8d741d16bae59236f53f3e4139bde3  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
! dc3a3bc9b79895046a5bf0cec43c1125  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
! 444765775ff88c35d3dd9a64404c4c9b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! 2aae889e51be404f0bcf161226bbd576  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! b3129ec8ea8c7da6a0173ab2b1fe7290  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 135ec340fd3635c4013bfc7b877ecf35  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 4c7c5b36a98813fdee9001398294329c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! fb91845c9fa6afcad36991bdeb58de13  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
! da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
! f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! 5184bb3c35060df529c04971144b043d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! 733389f42b2f0989683c4925e91966fe  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 633c8ed2387eb126f8f6cca1e27c3713  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! e7b5de1894b484ced0e49d90a7968a99  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! 7eb0dd5173ffba4f1ea3b31b1a809652  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
! 9f50f69fcb296a448ce0f982fb9b64e9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 72e4890bb4c779fc0dd23ae637b24b82  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! 34c1f4c303fffc2f4383bc2136ea8b12  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 7bc65670a413530a863b18bbb7954090  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! 735727110e852301d8d1d7ac36fca871  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! 6b127c94dc5bb97f5e607eeedd0bbff9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! ec6fe1711153176d2e700ad62a181692  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! 02cb63b256d7ab498f11c4d83bebf638  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! 8ca71521b63e0a2f3280f94f4aad2cb1  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 76d9a39c8c26bd3e366b44bcc6d6ce6c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! f1a74ad4034497d9cd8c0f6653cd832c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 2785d935171620f92974cd3b73efe8d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! 696e58e1a9d66a6229a4418239470e20  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 5212f6bfc76ea8cf4d27d31bf55dec68  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
! e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
! 41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 53e50c2db81ec518548336c2fb3ade49  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
! b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! 360dc7646e2c622420ad6a4cf2a6f88c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
! b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! 0fec78cf46f702db1cd1beb06e8a395c  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 62b924276842bb4d5327577b000f9187  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
! 376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! adc82a204a804f0f74bd416c874eedca  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 090d505f1e2211973a16cffcb0d4e7f0  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! f6d719f2f0c5479786a8b86a479327a1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! 95ca43c5701ec86ab475429a67375132  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! d4404b4f2f9ff09ef71a31254c4aafcd  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 412234e30d445edf3132f3e4bbb4836e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! fe015b93da5ee269e8f46ec570a18d14  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! 7bca351db6f0e3ef6ca3c55ab7db9024  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! 0ec1438efe6d02e461b3c52a5631997e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! fa930dcbe795913d5ac14d8459b69e60  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! e99507d97e91edb5c0d902cf8de380ea  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
! 9bb7e0736983a747bdf909b641ac8345  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 3461f63ca373760633bb8e942938ee38  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! 5cbbfffc47dc1a776b1c2d5db5d4db62  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! c07fd28f097aea3bc73cf3f4db1ed84c  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 70703e0cfc465cf5bb67b058bf9f9418  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! 7d1936518e449c572147bc1855b05712  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! c5a5b5a62e09fcafc91522f67de660b1  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
! deb80b9e42227ef9cf3ab1d7f28f3f42  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
! 9d154ff23b4a783dc0c623860ab1b50c  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 25ecbed72fa7aedfcb243446098a1493  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
! 80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
! 98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
  b52369b6d8f04b0c881bc45f36229c29  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
  34ca5a23c391d8e94a50e08413e1c1a3  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
  33eaf9b1a8730ca065ae2e7a6bc38cbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
--- 67239,67318 ----
  18b443a6542ecf233ed9863c434b9020  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
  2ba8ef3f1c7b4b49a6d7dcdd4309f45a  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  0a6857153fdf055681069ad0998981d5  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
! aa65cb012b6762798df98673e46b1427  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  ddaaf03843db012c82a284d40a6b6d82  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
! 62bf7dbd828be47cdd2b6b6fb661bae4  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  bd34fbf40b5ec76d35a3c504583c1c49  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  1afc983220c4adf37e3e3dfabc291c08  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! f4a4ebe6e6583037ce50879b339fd1d1  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! 1e443df1b871561a155d785269335233  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! 421fd29291f3cec93426c32cc8d46e9f  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
! 8128df877afb6bf9bbd67cb29edc198a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 5aecaf400b60324fb852efa8edf49146  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
! 67a7e2d874360791ce5238bf100414d1  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
! 8a083f0a82f9b3fedb183ea484843052  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! ec63d9a08d595d33b3b137c0767c0622  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! 6c738d64a48e45b2cfd37a25847617df  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 90cfc29be572c25cf0c674ee80d12eed  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 1b75989f679586b6a7f7f5bb3b256017  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! 5a68c4a816b4393e1450c33adeae517b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
! b4e93d304f4b94737b00189bf6c601e6  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
! 28bd1008a951cba79eb5190a7470f9c4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! bb250880b98a0d066efc7a71f7ae1963  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! 29311b45ed8390b379678d91838bd4fa  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 22d53ff712d849fefd996a583ed642d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! b0cb8b1927f5803fb1df85b0f3a41915  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! d5db79273e9a16e6b47076b3fcffec59  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
! 0e9e9d30f1698f8d3d18fc77fac369ff  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 86a4c2956426d921b07db0e99e69c97d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! db1594d86d6938c0c89b99a50fb92eb7  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 8394cc3faf00ca24e99b77a1f8b2a7c5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! ee00cf5c1133b2bfe6c35288fa377235  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! 30602bd2343f92f43cb3ee3c0d9e8718  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! 9a61dd70a1321824971097c2dcfb984b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! d1b92e6eb9008438c4518fe84bf2c868  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! f760ab0c0074981748dc3430370c47dd  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 2226a34630c12759d9721e64a43f052e  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! fc677ea93229e48e967af4df28b3770c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 64e575a6bf27b529da5d06267eddafbe  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! c7ff9ed1f262eff550cad9e0fa905240  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 2d8661a4f09cb1ff94bd159936885c53  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
! 5b2d7af2cc19472c26bc3aa8cc88a490  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
! 652cce420157afa647bc5cce9dde69a6  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 16e6039e1053c4248c2aeeba655520ff  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
! 0d775a2052527afc0fe6d1960c9a2bb9  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! cecec42e5ac8fb062eeee43bc68490dc  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
! 9132b2f071f852baf60d43b5ea264647  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! a46e6dee57174f16ba8dc881edff9898  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 40f11910c79605f67f67e4f2c216800d  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
! ed06c7cea6b8cc0dfafa0ab3bdb39950  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! e6f91fe89f91e8738ab81339ff636a43  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 0bdeac58d5658700ce1b1f67da8b1137  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! 7fb4bc67b1683d018481f4c637a1cd73  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! 73d39913aa16d9b785d7aeb771fdacb0  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! f377218948b70e4e824d41ecf64af2c1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 1bb738dc50b67240c6ee47120d456cae  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! 0de6adb5121840a7b5a393252230eeab  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! b3546c1da1041b10f8994b25052fe95a  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! fecad5c68b07c7ad16832faca6324007  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! 313579d762f27b3083356fc800191bc6  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! 05c92eb12484f3914a222f12d5d580f5  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
! 728bd2f2e78eab8a2b7f48666804385c  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 376e46096266be010946ce6184ace8dc  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! cea8e7a5c9f799d3bd5dfe8e37a702bb  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! 56586c8f68f589a09124770825212e39  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 741b191260a228d5c02c3938f6cd1647  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 0d06c53878b77a7bf2911710fac2141d  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 0d06c53878b77a7bf2911710fac2141d  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! 541bf7b69658ca9e44df18fa75d8095b  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! 66bc14f8d83f53f5970c560b73137793  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
! 0d795e779a122f00eafc1498e7f78be6  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
! d808bff65671fbe5dfbeca4b2b57d532  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 62f3ebb6c85de393441286b8cda1439f  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  b52369b6d8f04b0c881bc45f36229c29  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
  34ca5a23c391d8e94a50e08413e1c1a3  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
  33eaf9b1a8730ca065ae2e7a6bc38cbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
*************** e3e508292ca1590ab77169664af862ce  gcc/te
*** 58104,58119 ****
  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
  3ecab99ec0e71cbd846419df9b53e360  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-2.c
  fe7973cef663532a2f4c56171265cdb3  gcc/testsuite/gcc.dg/vect/pr100756.c
! eef9d53f7fc64f5bf484207cbabd7414  gcc/testsuite/gcc.dg/vect/pr101145.c
  3b10b998010f5d41be4ff11dca903549  gcc/testsuite/gcc.dg/vect/pr101145.inc
! 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
--- 67330,67347 ----
  d866824beb16c364d08cb67b007de602  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
  72076a525ae063dab9eb52662fd1fa9f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
  d062d4d3b84fbec28d4d1580ea69bb21  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
+ fdb8e6f129b8c4a7ba126ac6826dec36  gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c
+ 0a6905258629272942ddabf2d0a884f7  gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
  3ecab99ec0e71cbd846419df9b53e360  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-2.c
  fe7973cef663532a2f4c56171265cdb3  gcc/testsuite/gcc.dg/vect/pr100756.c
! 565ee6664b0d124a0b4023e59b9e7cec  gcc/testsuite/gcc.dg/vect/pr101145.c
  3b10b998010f5d41be4ff11dca903549  gcc/testsuite/gcc.dg/vect/pr101145.inc
! 379699e3b481413d82eff6b4c74f4f2b  gcc/testsuite/gcc.dg/vect/pr101145_1.c
! 66e3613e2d25ea009ef49c8ab0369859  gcc/testsuite/gcc.dg/vect/pr101145_2.c
! 5b70d168c4201ced2049435ce6f6d51a  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
*************** fd7e1b94d8c4315a2364eebdd0c788df  gcc/te
*** 58135,58140 ****
--- 67363,67399 ----
  5b80820316db69308b9fa48a7a5d642b  gcc/testsuite/gcc.dg/vect/pr103864.c
  0b8307de60b9a1e2b8798ec8a7ad4ad5  gcc/testsuite/gcc.dg/vect/pr104112-1.c
  860f8bb39577a05db59d8465da979c26  gcc/testsuite/gcc.dg/vect/pr104112-2.c
+ dc0555d66f900c926b0655e6c6159722  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-2.c
+ 95d785e583afc2d702a51b44b1d8bd1b  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div-pow2.c
+ 141c1295e8bfe095d770df4d5d6efa49  gcc/testsuite/gcc.dg/vect/pr104116-ceil-div.c
+ 67475b861da603a4e68eedd2852ab163  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-2.c
+ 4539597b29c215fa683e673143786b04  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod-pow2.c
+ 437ae7c0dedde53e8620ca52c5f3e82a  gcc/testsuite/gcc.dg/vect/pr104116-ceil-mod.c
+ 271c9d3fc35cd7ed138ebc675bdd2ade  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-2.c
+ 4ca54f633dd829b8d221f0c940f736e2  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv-pow2.c
+ ac65ccedb9bfc216d606417206a85424  gcc/testsuite/gcc.dg/vect/pr104116-ceil-udiv.c
+ 2444be95aae0148d80e071328257d680  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-2.c
+ 2444be95aae0148d80e071328257d680  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod-pow2.c
+ cc42cd793ce34bdc5258ae76113b1200  gcc/testsuite/gcc.dg/vect/pr104116-ceil-umod.c
+ 573a135411a67d69ab104e09f12071d6  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-2.c
+ 608ec7a0c90819b8b39e154c1be86a7d  gcc/testsuite/gcc.dg/vect/pr104116-floor-div-pow2.c
+ 70e199582bfb86f0e1de52848c66e732  gcc/testsuite/gcc.dg/vect/pr104116-floor-div.c
+ 9e985d6e5ced3315e44fab3f80f048cf  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-2.c
+ c3f72b0dd975cb100fb6fdc85359d7c6  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod-pow2.c
+ a5a3f9ba0b36f4154aa590cf49f48394  gcc/testsuite/gcc.dg/vect/pr104116-floor-mod.c
+ ca12c692c661ba35e53e695cf1d50982  gcc/testsuite/gcc.dg/vect/pr104116-round-div-2.c
+ 95e714bee36e3acce7927887087affae  gcc/testsuite/gcc.dg/vect/pr104116-round-div-pow2.c
+ 59063a6dadff3e0efec44cc7626694ca  gcc/testsuite/gcc.dg/vect/pr104116-round-div.c
+ ab9f34143f7c572d18035e4eda923e4d  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-2.c
+ df5b121d77c52415b22ddf2aaa8ce6c0  gcc/testsuite/gcc.dg/vect/pr104116-round-mod-pow2.c
+ a9de7a99b924146a7cdebe1e1b9791f4  gcc/testsuite/gcc.dg/vect/pr104116-round-mod.c
+ 39bad2ca4d06c28ee9d322e66e7bf74a  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-2.c
+ 8c065604ae09c8cf1ec563a2418c9662  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv-pow2.c
+ bdf89e0e47be714e3422d563687a7291  gcc/testsuite/gcc.dg/vect/pr104116-round-udiv.c
+ f9482f3ef9599f8f0e846d39973c4a79  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-2.c
+ 527749409f98a8b20e70a77a2c474468  gcc/testsuite/gcc.dg/vect/pr104116-round-umod-pow2.c
+ 4e6ad723c89ac5369ac8e7718da60dbd  gcc/testsuite/gcc.dg/vect/pr104116-round-umod.c
+ d33efbcf222533f6785f05ca9292d4c3  gcc/testsuite/gcc.dg/vect/pr104116.h
  b53f19c5cce29955511b5d817d2f0418  gcc/testsuite/gcc.dg/vect/pr104152.c
  793fae35b1a1e920435aac3954c23d69  gcc/testsuite/gcc.dg/vect/pr104445.c
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
*************** ccbd4ad0ec4d5c7d66ae8a17324026a8  gcc/te
*** 58157,58165 ****
  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
--- 67416,67424 ----
  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
! 8eeb3ae9994a9e4f75cd002d56da68a5  gcc/testsuite/gcc.dg/vect/pr109011-2.c
  42b182a1a8b9c89fc2d121f68bfbc2c0  gcc/testsuite/gcc.dg/vect/pr109011-3.c
! 3c178b900b5708f37d58507e8712d2d6  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
*************** f5749a6330ea4377b859350a23760b4a  gcc/te
*** 58245,58253 ****
--- 67504,67545 ----
  62642e73757697e1b2dcd5c23bbf8739  gcc/testsuite/gcc.dg/vect/pr119586.c
  c5b12e4f92ab5e7e64670a57c8f91e86  gcc/testsuite/gcc.dg/vect/pr119640.c
  ae171ef5347c321225b18e5907b1331b  gcc/testsuite/gcc.dg/vect/pr119757.c
+ 995a5e1b0b9a33d36b37aaabd5975353  gcc/testsuite/gcc.dg/vect/pr120687-1.c
+ 5c5333f2593161ead9aefcdce900d925  gcc/testsuite/gcc.dg/vect/pr120687-2.c
+ c8c99d2a0032d8f2ba36897e414a36c6  gcc/testsuite/gcc.dg/vect/pr120687-3.c
  7df91aea22a8a2dc08bd0d355fa30fae  gcc/testsuite/gcc.dg/vect/pr120817.c
+ cb063349fff16961efef1c8645314115  gcc/testsuite/gcc.dg/vect/pr120922.c
+ 2be1877919c42126fe95ae4d0c3f1c3f  gcc/testsuite/gcc.dg/vect/pr121034.c
  ea5b3c05fffa7f697082308298dd7c5c  gcc/testsuite/gcc.dg/vect/pr121049.c
  3ccd618a730abdb13ec305c26f14ac22  gcc/testsuite/gcc.dg/vect/pr121059.c
+ 2820048815e23cc9b1e22c9d0eae0575  gcc/testsuite/gcc.dg/vect/pr121126.c
+ 35aee7fd79849fcf98591bd2e8513861  gcc/testsuite/gcc.dg/vect/pr121509.c
+ 4b9614c5618217293023b4e9183d7fcc  gcc/testsuite/gcc.dg/vect/pr121638.c
+ 60bff40ff6b8164be9848d671cc43701  gcc/testsuite/gcc.dg/vect/pr121659.c
+ 8ddb58cb5b5d906a26881a4ac7bb2382  gcc/testsuite/gcc.dg/vect/pr121686.c
+ e6b1c0eea780f2608df20380f263a6d8  gcc/testsuite/gcc.dg/vect/pr121744-1.c
+ fe71df0cf859d65ae142b535f5c03b1d  gcc/testsuite/gcc.dg/vect/pr121754.c
+ 838c28f2e0f0090560a473c2cf5880a9  gcc/testsuite/gcc.dg/vect/pr121758.c
+ 6fcb6fd116ca771471e029793e00ac1a  gcc/testsuite/gcc.dg/vect/pr121767.c
+ a235811cfa051b76b4dd21ee24e8cc63  gcc/testsuite/gcc.dg/vect/pr121768.c
+ f1a49246f84d8fbab3d2b6aa5c89949e  gcc/testsuite/gcc.dg/vect/pr121830.c
+ 0ba61b060cc8efa3aae233cd974d2dae  gcc/testsuite/gcc.dg/vect/pr121949_1.c
+ 5eec2c7bb3d50c6a8bbd695d7caec0e7  gcc/testsuite/gcc.dg/vect/pr121949_2.c
+ 67399a1e5fca0d02800db020357f3722  gcc/testsuite/gcc.dg/vect/pr121949_3.c
+ 8cbd2daa28dcf298c1e79004b6ec12cf  gcc/testsuite/gcc.dg/vect/pr122023.c
+ 08c808506725be00bdf4d84893d5e2e2  gcc/testsuite/gcc.dg/vect/pr122158.c
+ 98753a41f3e4540c72096a83675cd6cc  gcc/testsuite/gcc.dg/vect/pr122419.c
+ e03974cf820416eaa10caff64b08ab41  gcc/testsuite/gcc.dg/vect/pr122475.c
+ d5fa86813a9f054c9df50e4e05d5fbc3  gcc/testsuite/gcc.dg/vect/pr122680.c
+ d2b36be7e59029cef1dd2fecf866de62  gcc/testsuite/gcc.dg/vect/pr122797.c
+ 72763d9273f88d0ae6d2adb1c7239efb  gcc/testsuite/gcc.dg/vect/pr122850.c
+ ae7dd7b535828dd877ea453ce08b1b4b  gcc/testsuite/gcc.dg/vect/pr122855.c
+ 13a0e19b576c184d6a3d2a5e046b1d77  gcc/testsuite/gcc.dg/vect/pr122969.c
+ 1e57bd875cece14e0d06e2d617c8ef1c  gcc/testsuite/gcc.dg/vect/pr123032.c
+ 1a89666cdf0f2352dc6a3b60a35d5526  gcc/testsuite/gcc.dg/vect/pr123038.c
+ 2838d9516eba265f0e0975f689ddd518  gcc/testsuite/gcc.dg/vect/pr123043.c
+ 17c5c38b2c03547dce34b548af8a2143  gcc/testsuite/gcc.dg/vect/pr123525.c
+ 86e3be2c542c86cb2ddd62c5080014e5  gcc/testsuite/gcc.dg/vect/pr123731.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
*************** f30d407737f2728f358eaa8c48d9305f  gcc/te
*** 58289,58295 ****
  add0478fcb7c990e62d74816bf0f22fd  gcc/testsuite/gcc.dg/vect/pr33373b.c
  bcd16b0fa588b7a812873ef0ae64bd86  gcc/testsuite/gcc.dg/vect/pr33597.c
  57e82be9ebe23e1fc8790caa80060710  gcc/testsuite/gcc.dg/vect/pr33707.c
! 023cde2687bcb1ddfcadd45e2fde132d  gcc/testsuite/gcc.dg/vect/pr33804.c
  d24482a9f820b34b4c664d7caff34295  gcc/testsuite/gcc.dg/vect/pr33833.c
  f2e384b79e71e99d03856813309aa20e  gcc/testsuite/gcc.dg/vect/pr33846.c
  2fddacf1bdf2f2af653ce8577f6b0c31  gcc/testsuite/gcc.dg/vect/pr33866.c
--- 67581,67587 ----
  add0478fcb7c990e62d74816bf0f22fd  gcc/testsuite/gcc.dg/vect/pr33373b.c
  bcd16b0fa588b7a812873ef0ae64bd86  gcc/testsuite/gcc.dg/vect/pr33597.c
  57e82be9ebe23e1fc8790caa80060710  gcc/testsuite/gcc.dg/vect/pr33707.c
! 54cf45f6560bd7aed50cad26313b6636  gcc/testsuite/gcc.dg/vect/pr33804.c
  d24482a9f820b34b4c664d7caff34295  gcc/testsuite/gcc.dg/vect/pr33833.c
  f2e384b79e71e99d03856813309aa20e  gcc/testsuite/gcc.dg/vect/pr33846.c
  2fddacf1bdf2f2af653ce8577f6b0c31  gcc/testsuite/gcc.dg/vect/pr33866.c
*************** d0c3ebc940ef2c059fe594b3393e984f  gcc/te
*** 58395,58401 ****
  6cf90bb7c9e5ccaa4e444f8754fef4d5  gcc/testsuite/gcc.dg/vect/pr59591-2.c
  8e9ca825271ad66a6369d2c08958f324  gcc/testsuite/gcc.dg/vect/pr59594.c
  5d6830edc1bc232319270056d2e1b51a  gcc/testsuite/gcc.dg/vect/pr59651.c
! 8c139ed20f643904b9b1975ab1815c1b  gcc/testsuite/gcc.dg/vect/pr59984.c
  bce45b63e374b50d341f0fc6164eed56  gcc/testsuite/gcc.dg/vect/pr60012.c
  f2202cae0d8b24fc77b7ee1599bba372  gcc/testsuite/gcc.dg/vect/pr60092-2.c
  58539c47f3dda9c13c058356ee38eb2e  gcc/testsuite/gcc.dg/vect/pr60092.c
--- 67687,67693 ----
  6cf90bb7c9e5ccaa4e444f8754fef4d5  gcc/testsuite/gcc.dg/vect/pr59591-2.c
  8e9ca825271ad66a6369d2c08958f324  gcc/testsuite/gcc.dg/vect/pr59594.c
  5d6830edc1bc232319270056d2e1b51a  gcc/testsuite/gcc.dg/vect/pr59651.c
! a532c9d824ff11aecdc18a9301f8fcc9  gcc/testsuite/gcc.dg/vect/pr59984.c
  bce45b63e374b50d341f0fc6164eed56  gcc/testsuite/gcc.dg/vect/pr60012.c
  f2202cae0d8b24fc77b7ee1599bba372  gcc/testsuite/gcc.dg/vect/pr60092-2.c
  58539c47f3dda9c13c058356ee38eb2e  gcc/testsuite/gcc.dg/vect/pr60092.c
*************** ecf30a3d5633aea4fdce036a11b8e64f  gcc/te
*** 58638,58645 ****
  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
--- 67930,67937 ----
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
  87bfdffda71b264daea1b1742cc20c24  gcc/testsuite/gcc.dg/vect/pr99856.c
! 3ffa8fcf241af92366643b1bcc32e7b5  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
! 86d771634d2b7fa7eea3ba51fe345727  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
  500849b2c5bbe591a6f628290b4c27f8  gcc/testsuite/gcc.dg/vect/slp-1.c
  a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
  db6cec1737270a80437be4570eff0caf  gcc/testsuite/gcc.dg/vect/slp-11a.c
*************** b938790e21681ca7c15aa47e31279a7a  gcc/te
*** 58657,58663 ****
  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
--- 67949,67955 ----
  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
! 6476143917ba3c1e8b6684d5f7ae50ba  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
*************** d63a3ba805f750904ac56d5a3099e28f  gcc/te
*** 58667,58673 ****
  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
--- 67959,67965 ----
  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
! 8ea043f00d5a9e69d3e0c505e6e9b7c8  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
*************** de649522f3ab7b00ae0b659e97a5d056  gcc/te
*** 58698,58707 ****
  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
--- 67990,68000 ----
  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
+ b3d1d50601e1d014727ad5f5b5569a98  gcc/testsuite/gcc.dg/vect/slp-58.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
! ee96509a9a84e59990ca558f739e9e58  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
*************** e3434b5fbbd9da1602aeb7cb6c89079b  gcc/te
*** 58709,58715 ****
  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
--- 68002,68008 ----
  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
! 3587af22cf5cd2cc2e2ff67321ba7a00  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/te
*** 58717,58723 ****
  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
! f619a85155e0660effc9ac07e331a211  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
  c4ace72884528e85d1a015eb8250a628  gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c
  effcb9be59afe85fa806a754bcb7c5e1  gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c
  dced205d4b7229b2015bdcec33c917e2  gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c
--- 68010,68016 ----
  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
! 64e23f13bee7f671abf1abfe29f62c79  gcc/testsuite/gcc.dg/vect/slp-multitypes-3.c
  c4ace72884528e85d1a015eb8250a628  gcc/testsuite/gcc.dg/vect/slp-multitypes-4.c
  effcb9be59afe85fa806a754bcb7c5e1  gcc/testsuite/gcc.dg/vect/slp-multitypes-5.c
  dced205d4b7229b2015bdcec33c917e2  gcc/testsuite/gcc.dg/vect/slp-multitypes-6.c
*************** e75c09f3eb5fab5920e6bbe5a24c7bd6  gcc/te
*** 58744,58749 ****
--- 68037,68044 ----
  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
+ efeaa043d177e194cd96123499e925b1  gcc/testsuite/gcc.dg/vect/slp-reduc-13.c
+ 6eed17012acaa278bddfae1307bc5559  gcc/testsuite/gcc.dg/vect/slp-reduc-14.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
*************** df438928392b81c11f2a1e3220ae04a3  gcc/te
*** 58756,58766 ****
  066c96f1ae2a9f0f0508e5f06659427c  gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c
  bce659f36d2c583cb99462b31ce124ad  gcc/testsuite/gcc.dg/vect/slp-simd-clone-1.c
  b0a87850d8d88048ac704db35dcc2459  gcc/testsuite/gcc.dg/vect/slp-simd-clone-2.c
! 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
--- 68051,68061 ----
  066c96f1ae2a9f0f0508e5f06659427c  gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c
  bce659f36d2c583cb99462b31ce124ad  gcc/testsuite/gcc.dg/vect/slp-simd-clone-1.c
  b0a87850d8d88048ac704db35dcc2459  gcc/testsuite/gcc.dg/vect/slp-simd-clone-2.c
! af29abb65e6b1d76eb0832249ab100f7  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
! ef2ac77de2fba07b5997a1a10b11f73f  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
  2bded60305772f7de251bb70ce5ae96f  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
*************** b35c2e9856d8c47fe15c1afbe3df715a  gcc/te
*** 58785,58791 ****
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
  762ca438d6f2445bb7f2c91d1d1379f0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
  45cc297ae1f89f389a55977a2b04ed2b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
! 642c46feeade837a191b39791c9ee4d8  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  4e01e7fa88e60e8debd0e967b8c44037  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
--- 68080,68086 ----
  d964fdd5bad3468a8e455bfbee9320f3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s123.c
  762ca438d6f2445bb7f2c91d1d1379f0  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1232.c
  45cc297ae1f89f389a55977a2b04ed2b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s124.c
! 40d08e9ed1570a9e89fa6cdce362aada  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1244.c
  4e01e7fa88e60e8debd0e967b8c44037  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s125.c
  46026f923782ba797469188e75c2eec4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1251.c
  0d1a85b433572bbc136855de9237264a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s126.c
*************** d2c04f154fe19d1bbe3122411e1a40a3  gcc/te
*** 58817,58823 ****
  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
--- 68112,68118 ----
  b71770bd4d06a2b7f9fde9712a65c3f5  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s221.c
  b84daf94d5420dacd3c16dcbfacc6a6f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s222.c
  94793fbf15296b407dffc513cc4dd31c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2233.c
! c8d12e6ee83f2964e988306b46ac935a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2244.c
  82cb8aac70d8509850b10cc461029b2a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2251.c
  66bcca697fbebc67cb130e5ba4835d39  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s2275.c
  d4f9975e79eab52657233b186b72ea6b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s231.c
*************** f2feb5fc14947b3e4ec897d183397960  gcc/te
*** 58852,58858 ****
  edde27caeb90674dfc63f9c173c1b91f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s281.c
  96fbfc156c3b3288d2ff073c66fd45f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s291.c
  487436a657a10164bf9f61b4a31677bf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s292.c
! bb61c333ca489dc9c9ff444266758423  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s293.c
  190e37171bed3c92de9d86fa1e13fa24  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s311.c
  68fbc3db2225942315dd9388c277f3b1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3110.c
  c4ba7b02ba746cdf97742ae6e5697134  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3111.c
--- 68147,68153 ----
  edde27caeb90674dfc63f9c173c1b91f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s281.c
  96fbfc156c3b3288d2ff073c66fd45f1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s291.c
  487436a657a10164bf9f61b4a31677bf  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s292.c
! bb5810a49bf17086ecf69ccf009cc520  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s293.c
  190e37171bed3c92de9d86fa1e13fa24  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s311.c
  68fbc3db2225942315dd9388c277f3b1  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3110.c
  c4ba7b02ba746cdf97742ae6e5697134  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3111.c
*************** c317cb696a26bea6d51beb4b38e72094  gcc/te
*** 58872,58878 ****
  226f54e6f293495fd6c000a73ed8b7a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s323.c
  61d0197203c46e31e39c8c4f8ad9e853  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3251.c
  5c71ac7653e5a2836d2465a9f13c6ede  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s331.c
! bf0687fd782a94fee64bb5a6231b7710  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s332.c
  1fa698b706ad7a329bb8f12d8c9de007  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s341.c
  a574c6728b7b30ed7cb79cad1aca2a5b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s342.c
  e54027ff8457ca286ef1dc9996df732c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s343.c
--- 68167,68173 ----
  226f54e6f293495fd6c000a73ed8b7a3  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s323.c
  61d0197203c46e31e39c8c4f8ad9e853  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s3251.c
  5c71ac7653e5a2836d2465a9f13c6ede  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s331.c
! 5cac7a5b023043891aa16b2fbfdd2a9a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s332.c
  1fa698b706ad7a329bb8f12d8c9de007  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s341.c
  a574c6728b7b30ed7cb79cad1aca2a5b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s342.c
  e54027ff8457ca286ef1dc9996df732c  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s343.c
*************** da2e0ca1db6e6911aecfa27990b0f4e7  gcc/te
*** 58898,58905 ****
  71c7e2710eb0d787abf80641134c8464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s452.c
  0a53ab45e8069125854b0ad478690528  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s453.c
  8840c708a7f2798298113799bfaaea0b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s471.c
! 7d9d5fc521d92219b5cd950f9bf40394  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s481.c
! 6d1198c692415eb73b7ee5001abac6ec  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s482.c
  ab963c718fe086a0fc72501588ceb52f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s491.c
  69786ca5ac25ed37637f1c1fc9a0ea8f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-va.c
  e66f09a7a57dbc6fd0a0e6f0ae175ceb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vag.c
--- 68193,68200 ----
  71c7e2710eb0d787abf80641134c8464  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s452.c
  0a53ab45e8069125854b0ad478690528  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s453.c
  8840c708a7f2798298113799bfaaea0b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s471.c
! 7afc5738054449c717de03bd3b7ea65e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s481.c
! 28c309bc28e2ad058c3571f6f6549de4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s482.c
  ab963c718fe086a0fc72501588ceb52f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s491.c
  69786ca5ac25ed37637f1c1fc9a0ea8f  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-va.c
  e66f09a7a57dbc6fd0a0e6f0ae175ceb  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vag.c
*************** ba59522d2af9dbc0b642d30b265fdf9a  gcc/te
*** 58914,58923 ****
  42c1ba5434e11e120f6521a99a4038b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vsumr.c
  7702b6822f030833bc4a403f92677c1b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtv.c
  545119600337faa91e46af0c7bce64ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtvtv.c
! 908fa625b55d7d283163e9dfb4e3cb97  gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c
! 6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
! 9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
! e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
  03fe06df10b299e2d376f21ab86f344f  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
  913dbf0c258c7c344cd97cc8aea9deeb  gcc/testsuite/gcc.dg/vect/vect-1.c
  05b07deb7bdb2c5192e4d8862461bc08  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
--- 68209,68218 ----
  42c1ba5434e11e120f6521a99a4038b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vsumr.c
  7702b6822f030833bc4a403f92677c1b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtv.c
  545119600337faa91e46af0c7bce64ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtvtv.c
! e9bb761ce41dc561789ce93cdc860323  gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c
! 6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c
! 9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c
! e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c
  03fe06df10b299e2d376f21ab86f344f  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
  913dbf0c258c7c344cd97cc8aea9deeb  gcc/testsuite/gcc.dg/vect/vect-1.c
  05b07deb7bdb2c5192e4d8862461bc08  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
*************** e86e5429216f0575dccdbd37b55c1d2f  gcc/te
*** 58945,58956 ****
  b88f0d8217846f39fb7138984d5ddf24  gcc/testsuite/gcc.dg/vect/vect-11a.c
  e84f9b903393cfff2edd99b358cb865a  gcc/testsuite/gcc.dg/vect/vect-12.c
  95f25cab76044b57a520d91c3ba37cff  gcc/testsuite/gcc.dg/vect/vect-120.c
! 266369f9048f1fb1639742a63dff3a04  gcc/testsuite/gcc.dg/vect/vect-121.c
  431235f3577c15265e729e9e747c2bf1  gcc/testsuite/gcc.dg/vect/vect-122.c
  eb957e8021e48e5316de303f90acf93d  gcc/testsuite/gcc.dg/vect/vect-123.c
  17e1fd733b776ac37fe82aa4e0e672c7  gcc/testsuite/gcc.dg/vect/vect-124.c
  d1187d0e4af6272062f2c0272cefedc0  gcc/testsuite/gcc.dg/vect/vect-125.c
  2f1d70fac40824a935446a6fbe98a4b9  gcc/testsuite/gcc.dg/vect/vect-126.c
  d6bd417d3eca5baa91e6702748a3c1cc  gcc/testsuite/gcc.dg/vect/vect-13.c
  2f4ebdd8f30675c3e85c475850edbf37  gcc/testsuite/gcc.dg/vect/vect-14.c
  1a0be8fa1ed53c514993f7dcb4962ac8  gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
--- 68240,68252 ----
  b88f0d8217846f39fb7138984d5ddf24  gcc/testsuite/gcc.dg/vect/vect-11a.c
  e84f9b903393cfff2edd99b358cb865a  gcc/testsuite/gcc.dg/vect/vect-12.c
  95f25cab76044b57a520d91c3ba37cff  gcc/testsuite/gcc.dg/vect/vect-120.c
! 4e7def8503d10451991de80aa9396935  gcc/testsuite/gcc.dg/vect/vect-121.c
  431235f3577c15265e729e9e747c2bf1  gcc/testsuite/gcc.dg/vect/vect-122.c
  eb957e8021e48e5316de303f90acf93d  gcc/testsuite/gcc.dg/vect/vect-123.c
  17e1fd733b776ac37fe82aa4e0e672c7  gcc/testsuite/gcc.dg/vect/vect-124.c
  d1187d0e4af6272062f2c0272cefedc0  gcc/testsuite/gcc.dg/vect/vect-125.c
  2f1d70fac40824a935446a6fbe98a4b9  gcc/testsuite/gcc.dg/vect/vect-126.c
+ fdc14626a4ceb8299c001f97cc969cc8  gcc/testsuite/gcc.dg/vect/vect-127.c
  d6bd417d3eca5baa91e6702748a3c1cc  gcc/testsuite/gcc.dg/vect/vect-13.c
  2f4ebdd8f30675c3e85c475850edbf37  gcc/testsuite/gcc.dg/vect/vect-14.c
  1a0be8fa1ed53c514993f7dcb4962ac8  gcc/testsuite/gcc.dg/vect/vect-15-big-array.c
*************** f525f408cc53838fb0ce7152f99e3967  gcc/te
*** 59010,59016 ****
  789540c67f5c83928236c471f23897f5  gcc/testsuite/gcc.dg/vect/vect-68.c
  73bf7fdba8047add01fa876a80073ecd  gcc/testsuite/gcc.dg/vect/vect-7.c
  e775c704825e6f8ddf67091fe0b9138b  gcc/testsuite/gcc.dg/vect/vect-70.c
! 43675b1bdbd3bcf7877c0f912d01d7e1  gcc/testsuite/gcc.dg/vect/vect-71.c
  d5f5323f5bacf3c38fc4ff6a0214501a  gcc/testsuite/gcc.dg/vect/vect-72.c
  6d81900a7f9804f00d30a95e12bc5e15  gcc/testsuite/gcc.dg/vect/vect-73-big-array.c
  7d47b4d36e26c7006e980dbec040a231  gcc/testsuite/gcc.dg/vect/vect-73.c
--- 68306,68312 ----
  789540c67f5c83928236c471f23897f5  gcc/testsuite/gcc.dg/vect/vect-68.c
  73bf7fdba8047add01fa876a80073ecd  gcc/testsuite/gcc.dg/vect/vect-7.c
  e775c704825e6f8ddf67091fe0b9138b  gcc/testsuite/gcc.dg/vect/vect-70.c
! f3186a62ea0d53c22996d909211b6c03  gcc/testsuite/gcc.dg/vect/vect-71.c
  d5f5323f5bacf3c38fc4ff6a0214501a  gcc/testsuite/gcc.dg/vect/vect-72.c
  6d81900a7f9804f00d30a95e12bc5e15  gcc/testsuite/gcc.dg/vect/vect-73-big-array.c
  7d47b4d36e26c7006e980dbec040a231  gcc/testsuite/gcc.dg/vect/vect-73.c
*************** e92fad84a9315029cc8841880f84eea6  gcc/te
*** 59123,59129 ****
--- 68419,68429 ----
  ef0aa33c5f3ea85c398891ed13668325  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-4.c
  025744c3d46021403ca00270449bf8e6  gcc/testsuite/gcc.dg/vect/vect-bitfield-write-5.c
  154c42706e014b10ba6740d5b2ec9fb1  gcc/testsuite/gcc.dg/vect/vect-bool-1.c
+ 7c6176e3191b7c6a8d4dd62529bdae49  gcc/testsuite/gcc.dg/vect/vect-bool-2.c
+ 8f28274cdb2e8ee92a556e4c19774a25  gcc/testsuite/gcc.dg/vect/vect-bool-3.c
  88ece9587087a3d3d1b4461a490bb1e1  gcc/testsuite/gcc.dg/vect/vect-bool-cmp-2.c
+ 82c9fa09f07b7ac0c20bd2080ce597ea  gcc/testsuite/gcc.dg/vect/vect-bool-cmp-3.c
+ ca950fbced4bba24f02e06491332ac8c  gcc/testsuite/gcc.dg/vect/vect-bool-cmp-4.c
  4afd16e3b53b6f4c3915509813624fde  gcc/testsuite/gcc.dg/vect/vect-bool-cmp.c
  ce4ee72e06224b881e9d4dba216500c3  gcc/testsuite/gcc.dg/vect/vect-bswap16.c
  9e66be7556b2d11cacfd42f03990f256  gcc/testsuite/gcc.dg/vect/vect-bswap16a.c
*************** c35993d21df9a7d36f655e03f1da3108  gcc/te
*** 59138,59143 ****
--- 68438,68444 ----
  3cd897ddd5a4a1bdca666ca184b9656f  gcc/testsuite/gcc.dg/vect/vect-cond-11.c
  7c19802622ded8e0ba7ba5d19673294d  gcc/testsuite/gcc.dg/vect/vect-cond-12.c
  4e2cff5d95b6b574089710090fa8adac  gcc/testsuite/gcc.dg/vect/vect-cond-13.c
+ 8e03a29d3eff0561b605725b3c1f0f17  gcc/testsuite/gcc.dg/vect/vect-cond-14.c
  712c13b79dff5bb5217da812c8ede340  gcc/testsuite/gcc.dg/vect/vect-cond-2.c
  697d2d18248367ca2f7da44a1a2d6362  gcc/testsuite/gcc.dg/vect/vect-cond-3.c
  fa5262a239c6fe2f2348e1acc12d6208  gcc/testsuite/gcc.dg/vect/vect-cond-4.c
*************** eaa73217c152faaac7e01f0ac44c6ff2  gcc/te
*** 59214,59220 ****
  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
--- 68515,68521 ----
  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
! 80ec0aae6cce77bbe92fe1fd18f3f845  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
*************** ea7c9a746e3125f6b434072c00ea29fa  gcc/te
*** 59239,59245 ****
  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
--- 68540,68546 ----
  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
! 919f5e4b685951efcf45187ef9c49261  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/te
*** 59249,59255 ****
  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
--- 68550,68556 ----
  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
! 57637e8ef1f38c45ddbfbec65c0e7a18  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
*************** a9f60b255bd045a55a1c552ca8a26db4  gcc/te
*** 59257,59264 ****
  3081c4b62e6b3d9d8577275748ef795d  gcc/testsuite/gcc.dg/vect/vect-early-break_135-pr120143.c
  d69a35cfdc5358c8603e5c2e35112d75  gcc/testsuite/gcc.dg/vect/vect-early-break_135-pr120211.c
  b14a7c563931d32378d5a7c177b4a9c9  gcc/testsuite/gcc.dg/vect/vect-early-break_136-pr120357.c
! 40ef6dac17d7e04eaed85a5b371dc2eb  gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.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
--- 68558,68574 ----
  3081c4b62e6b3d9d8577275748ef795d  gcc/testsuite/gcc.dg/vect/vect-early-break_135-pr120143.c
  d69a35cfdc5358c8603e5c2e35112d75  gcc/testsuite/gcc.dg/vect/vect-early-break_135-pr120211.c
  b14a7c563931d32378d5a7c177b4a9c9  gcc/testsuite/gcc.dg/vect/vect-early-break_136-pr120357.c
! 280dd6767953dbee28e3b8fa1dca3574  gcc/testsuite/gcc.dg/vect/vect-early-break_137-pr121190.c
! 4cde691f9b46b73da3fd792615e89948  gcc/testsuite/gcc.dg/vect/vect-early-break_138-pr121020.c
! 34a0ecf50bb294439c27ca86196e9202  gcc/testsuite/gcc.dg/vect/vect-early-break_139.c
  73bc7475d6af2bd77455abec5df316e4  gcc/testsuite/gcc.dg/vect/vect-early-break_14.c
+ 0f94ea8d32566351c449ef0923f780bb  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_1.c
+ fca55cf03db9d8a5e743486b3427a96a  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_2.c
+ 8cbd75311a4ecc168ec09085f538c7d0  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_3.c
+ 25d4d94bafb1405becf55cc15f94275e  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_4.c
+ e3f3a36d35d6f9ef525a93d5cb0eb94b  gcc/testsuite/gcc.dg/vect/vect-early-break_141-pr123089.c
+ 8f74fa2d62f970a3a928d0976fced17c  gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c
+ a3686e933f3ef959607d7c15f14f689b  gcc/testsuite/gcc.dg/vect/vect-early-break_143-pr124142.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
*************** c6478ec076451d018cdfd7229ea3d987  gcc/te
*** 59285,59293 ****
  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
--- 68595,68603 ----
  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
! 424b5dbc3b606e03269242101abc0ee2  gcc/testsuite/gcc.dg/vect/vect-early-break_39.c
  b79992b539b9fdd81c73ef95ccc8a698  gcc/testsuite/gcc.dg/vect/vect-early-break_4.c
! 771e96a4b1ae42e4ef83ce5c66faeb50  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
*************** cedec433c63e1267dec0f94451d7b0f7  gcc/te
*** 59310,59316 ****
  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
--- 68620,68626 ----
  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
! 34a6aa171c5d5165e2ad05f7f6c99f16  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
*************** f85ef0b99140422d78068ad18a39e03b  gcc/te
*** 59362,59376 ****
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
! 8dd709fc543f80ce70588b05e38be7ae  gcc/testsuite/gcc.dg/vect/vect-fmax-2.c
! b913a0ce97e1075ed9731f6e62b860bf  gcc/testsuite/gcc.dg/vect/vect-fmax-3.c
  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
--- 68672,68686 ----
  b10686cc9cc745d9a4e579ee285eae2d  gcc/testsuite/gcc.dg/vect/vect-fma-2.c
  f26bda59075ce8ddcb0291dc86a118b3  gcc/testsuite/gcc.dg/vect/vect-fma-3.c
  609ec8572941506ac02bdead3631cf1a  gcc/testsuite/gcc.dg/vect/vect-fmax-1.c
! ff69a9e19928b3a1de48ce1b898d4a45  gcc/testsuite/gcc.dg/vect/vect-fmax-2.c
! d6b11f32049737083a9d8a816c7de6db  gcc/testsuite/gcc.dg/vect/vect-fmax-3.c
  f7641c61bbf333053e42be5bfa67d8e4  gcc/testsuite/gcc.dg/vect/vect-fmin-1.c
! 0cde09c690b3ca2b483cb6ce9cc4115e  gcc/testsuite/gcc.dg/vect/vect-fmin-2.c
! c8add09e1cb63057bdcddaad5063ed57  gcc/testsuite/gcc.dg/vect/vect-fmin-3.c
! aa4d55beb7ae830d92493c5e12169a5a  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
! 611a3e22c9ed05ba2a4659c9bb8d7292  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
*************** d317da023f28bcc842f91f92f1b90a87  gcc/te
*** 59411,59416 ****
--- 68721,68728 ----
  4b150e87dac554fceef613b915933fc7  gcc/testsuite/gcc.dg/vect/vect-iv-9.c
  90c475a933e6b5782b7addead927023e  gcc/testsuite/gcc.dg/vect/vect-ivdep-1.c
  493ca8152f570c674714f0d614c3c345  gcc/testsuite/gcc.dg/vect/vect-ivdep-2.c
+ 9c782f6879db3473c9e3352c24b1e831  gcc/testsuite/gcc.dg/vect/vect-licm-hoist-1.c
+ eb1a21b7f2440c971dde0756255f12e8  gcc/testsuite/gcc.dg/vect/vect-licm-hoist-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
*************** c38511a26575a66a65ddd31d3bc229da  gcc/te
*** 59558,59566 ****
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
  a0e208729117f798ee5200a51a9c258b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 8689fbd68c008546f301818654595aab  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  8006cd394692bd071c0417ad10367515  gcc/testsuite/gcc.dg/vect/vect-pr120927-2.c
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
  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
--- 68870,68900 ----
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
  a0e208729117f798ee5200a51a9c258b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 1c42d671be1b7f9328d9e98de98078e3  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  8006cd394692bd071c0417ad10367515  gcc/testsuite/gcc.dg/vect/vect-pr120927-2.c
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
+ 34f7ddeeced3df59f00aad249918cde2  gcc/testsuite/gcc.dg/vect/vect-pr122301.c
+ 38b50de096973e5884e0480a8ff70084  gcc/testsuite/gcc.dg/vect/vect-pr122308.c
+ 9b7d08bd46b08a5ff0de86e9089db096  gcc/testsuite/gcc.dg/vect/vect-pr122370.c
+ 33db8d4fdefa7e079cbc466d7bb47c90  gcc/testsuite/gcc.dg/vect/vect-pr122371.c
+ b8e2c3a6d75f12e0a954c022b6f17018  gcc/testsuite/gcc.dg/vect/vect-pr122406-1.c
+ 5981abb0e1e9f12ff678653ca24ba8e8  gcc/testsuite/gcc.dg/vect/vect-pr122406-2.c
+ f4b106f1a647b041f524318378f476f5  gcc/testsuite/gcc.dg/vect/vect-pr122793.c
+ a27087df4989bb70386182ff7f74facf  gcc/testsuite/gcc.dg/vect/vect-pr122844.c
+ 5346702060f2a1fdcbef60b8759f436c  gcc/testsuite/gcc.dg/vect/vect-pr123002.c
+ efc5db1b97ea06d470c57048d8966ea1  gcc/testsuite/gcc.dg/vect/vect-pr123221.c
+ 745e1ec106fc11cf54190bfa02bb194e  gcc/testsuite/gcc.dg/vect/vect-pr123316.c
+ 8392d6836424887c8615331c1ad6592d  gcc/testsuite/gcc.dg/vect/vect-pr12358.c
+ 3a218a9e901cfc31c777e22723a03123  gcc/testsuite/gcc.dg/vect/vect-pr123697.c
+ 1e6309f79486c269225382b2ee7a0a41  gcc/testsuite/gcc.dg/vect/vect-pr123755-2.c
+ 8d72fe60d77b174c40a9709fbc10c86b  gcc/testsuite/gcc.dg/vect/vect-pr123755.c
+ 71a5a3f0c2e34ed3e033a36a47f5cf20  gcc/testsuite/gcc.dg/vect/vect-pr123756.c
+ 86a15a6fc01f17ec534cc4e8962c430f  gcc/testsuite/gcc.dg/vect/vect-pr123983.c
+ bcf507d9ada85546ab41fae1d6c34c2c  gcc/testsuite/gcc.dg/vect/vect-pr124037.c
+ da160a8349fe2e0daa932c3bd967f635  gcc/testsuite/gcc.dg/vect/vect-pr124677.c
+ 260ab9d6cedafb5f4f528e8d6bc65324  gcc/testsuite/gcc.dg/vect/vect-pr124743.c
+ 09beadb34e2b0bfa6179ef89f2e6d9f7  gcc/testsuite/gcc.dg/vect/vect-pr124802.c
+ 464c872c62ad2fc5d241ed918e0cf5de  gcc/testsuite/gcc.dg/vect/vect-pr61247.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  b860939f62d716a264f763f82b69b2c8  gcc/testsuite/gcc.dg/vect/vect-prefetch-drop.c
*************** afaa45daeb6740febad38b149bba00f4  gcc/te
*** 59589,59601 ****
  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
--- 68923,68950 ----
  6dfb966ec0651e1f0bfd61ae96ee63b4  gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
  c0dc4d999a9dd3a90639e4eb6b307722  gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
  deb8ecbd7cdb913c066f7d366640b30b  gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
! 7dcb07a99aa409d47c88828c13a5e626  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-1.c
! 305dc49d9d54c9d26f184002cdf6913a  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-2.c
! 31507c476806bed6c83fb87ff29626ab  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-3.c
! 944aae833aae5153224e35b08e0ea236  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-4.c
! 93baa7e7c71b404edacf7884d7e5e068  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-5.c
! b7c24a23aee0d3ac28fa9d2ec4e6a853  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-6.c
! 0dc7b76abd5a4caf72792d5bea915c03  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-7.c
! 898c7c93d2596d095c8765dbaa9e94ab  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-8.c
! afe6347a8709d8ee3ab05fb400dfb21d  gcc/testsuite/gcc.dg/vect/vect-reduc-bool-9.c
! 3df909b2097967a2dd822ed4c37cb91f  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-1.c
! ef3d183d97032daec0ec4dd0412e62d6  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-2.c
! 2009b4262f91795d01c4086c784d480c  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-3.c
! 2e35d1b22df9525893973bbb16ad765b  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-4.c
! eadb7c6a8a2212db42de9f8db55af6c2  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-5.c
  a0fd49ab473516c9610de45e68c1d2a2  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-1.c
  0f4af0d0347b33a4fe5e55c707df1a5d  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-2.c
  190c8787f98acde286950b67d8a0e781  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-3.c
  9b8d64f48db60867dc60b9217f03555b  gcc/testsuite/gcc.dg/vect/vect-reduc-chain-dot-slp-4.c
+ 137e839c836da0efd1abf91162990b5a  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-1.c
+ 6e03f3ea11f72547023ed45e5e473a05  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-2.c
+ 8973a625b6511f40e4e03b24bbcf3159  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-3.c
+ ba18f9c5868c96055013b2f288be87c2  gcc/testsuite/gcc.dg/vect/vect-reduc-cond-add-1.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
*************** b6aeb022dde69e8ffe448352fd61d3bd  gcc/te
*** 59623,59629 ****
  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
--- 68972,68978 ----
  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
! 94c3a4b110737f6d4ecadd37f16062de  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
*************** f2115c849db56b36f9016249488854e1  gcc/te
*** 59631,59636 ****
--- 68980,68988 ----
  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
+ 5a047fffab5ffa5652052278da8f1079  gcc/testsuite/gcc.dg/vect/vect-reduc-fma-1.c
+ 662def9c47c47b6908ba751b0377351d  gcc/testsuite/gcc.dg/vect/vect-reduc-fma-2.c
+ cbcd5638a88db2be71e21c46ac579881  gcc/testsuite/gcc.dg/vect/vect-reduc-fma-3.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
  1eef69f3a699802657df0415b9475266  gcc/testsuite/gcc.dg/vect/vect-reduc-in-order-3.c
*************** bd52e3921544e1711ab57051060881cb  gcc/te
*** 59647,59653 ****
  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
  a97648332804477d3b1a53fb5ddfa560  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-1.c
  cc77fc24b5c39d53318d789666b5c9d0  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-2.c
--- 68999,69005 ----
  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
! 9241d4a10e702b2c5c8623b66351fafd  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2c.c
  427dcb0ed4cb20c8579fd8447ff07df3  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-3.c
  a97648332804477d3b1a53fb5ddfa560  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-1.c
  cc77fc24b5c39d53318d789666b5c9d0  gcc/testsuite/gcc.dg/vect/vect-reduc-sad-2.c
*************** e15c9b03d8e1d3a7a5ee1c79b19ba163  gcc/te
*** 59710,59738 ****
  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
! 17860616151d9700d7693707e8b6be2b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-15.c
  b0cb1e21e14035b1194c4f3f4e68becc  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16.c
  c36c3ad97cfbf1be43ad8307f7b3eba0  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16b.c
! 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
--- 69062,69094 ----
  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
! 30e6b39032aa9fdb4085633c47d10d22  gcc/testsuite/gcc.dg/vect/vect-simd-clone-15.c
  b0cb1e21e14035b1194c4f3f4e68becc  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16.c
  c36c3ad97cfbf1be43ad8307f7b3eba0  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16b.c
! 235df25db312428ee0327cc99566c491  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16c.c
! 1dedb37c82844ddd86275fde6d32c493  gcc/testsuite/gcc.dg/vect/vect-simd-clone-16d.c
! c99a6f17d5c50b5dc9f77be61d2cedbb  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
! 8914ba9fbe02eab11aa1bdc58c53f2d5  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17c.c
! 2c5804b394976fd97e4251f6e3a5f024  gcc/testsuite/gcc.dg/vect/vect-simd-clone-17d.c
! 83de6bb57b6a762dd73ae2de9741dab7  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
! adae6c0d76240f5c777e53659ee248f0  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18c.c
! a3d17e5ab474fc3beb8862101208a853  gcc/testsuite/gcc.dg/vect/vect-simd-clone-18d.c
! 97451112609f52a56a33737531e88660  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
+ b99bb00397518c13462f451f39b15cb2  gcc/testsuite/gcc.dg/vect/vect-simd-clone-22.c
+ 0de2b2799e45a60c69b93dd9f859a18e  gcc/testsuite/gcc.dg/vect/vect-simd-clone-22a.c
+ 2ef0a87aede76c2639e64fdef7c6773b  gcc/testsuite/gcc.dg/vect/vect-simd-clone-23.c
+ 1ed40877d01483d7576a73c131f0720a  gcc/testsuite/gcc.dg/vect/vect-simd-clone-24.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
*************** bc0f68b226839ed569e371de527479fe  gcc/te
*** 59740,59745 ****
--- 69096,69102 ----
  e0f38a9b3ec0f742abed22cd672aa982  gcc/testsuite/gcc.dg/vect/vect-simd-clone-7.c
  c3250637f281a41b33f82d785f31ae71  gcc/testsuite/gcc.dg/vect/vect-simd-clone-8.c
  068515d98cb76263014fe2d1f01ac267  gcc/testsuite/gcc.dg/vect/vect-simd-clone-9.c
+ ac505120490b0eacba4e6c11d4f832b8  gcc/testsuite/gcc.dg/vect/vect-simd-clone-pr123794.c
  881d4e505bcbd60c6207348fb3385c98  gcc/testsuite/gcc.dg/vect/vect-simd-pr121130.c
  6e90abcda205699fc9e9fbcaeb293a8e  gcc/testsuite/gcc.dg/vect/vect-singleton_1.c
  c007274fcf98c292ac6a9827d7cc665e  gcc/testsuite/gcc.dg/vect/vect-strided-a-mult.c
*************** dacaab2848ce0cac26021e40c45f6986  gcc/te
*** 59783,59788 ****
--- 69140,69159 ----
  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
+ db073e8e46c5bf7927a443b0eee7bbbf  gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_1.c
+ 952c8d08bf0fae0e83edc26c4d666f20  gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_2.c
+ 7091041c74f71a2afd6b43e0c0571928  gcc/testsuite/gcc.dg/vect/vect-uncounted-prolog-peel_3.c
+ b0e70e0f2ffd2196553b00c59f02bed8  gcc/testsuite/gcc.dg/vect/vect-uncounted-run_1.c
+ 21d2a8bb2b8e06944ff1ead18bb38991  gcc/testsuite/gcc.dg/vect/vect-uncounted-run_2.c
+ 75296732077eb3f522d929ebfeab87f1  gcc/testsuite/gcc.dg/vect/vect-uncounted-run_3.c
+ 2d214c1f716376dc795b6e89c7d34e2b  gcc/testsuite/gcc.dg/vect/vect-uncounted-run_4.c
+ e272c1df119c914b1c664282d40591b6  gcc/testsuite/gcc.dg/vect/vect-uncounted_1.c
+ 99b9cb6bbf68684a1596f785900aafae  gcc/testsuite/gcc.dg/vect/vect-uncounted_2.c
+ 23ed0940ec35af12b6c3324bf81398ff  gcc/testsuite/gcc.dg/vect/vect-uncounted_3.c
+ c5dc885a4fd607cf61e6a4a5532975c8  gcc/testsuite/gcc.dg/vect/vect-uncounted_4.c
+ e055b43566f39136325b4d4c24a4d8e7  gcc/testsuite/gcc.dg/vect/vect-uncounted_5.c
+ 3c8aa56df5d4e35482f5b5128e67bad1  gcc/testsuite/gcc.dg/vect/vect-uncounted_6.c
+ f00939e32c095af0055aa9bb01c682df  gcc/testsuite/gcc.dg/vect/vect-uncounted_7.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
*************** b4f31e51d7444b0dbc43aff2dc3d5426  gcc/te
*** 59794,59816 ****
  28cfda3bc854be355322e26b1cadc604  gcc/testsuite/gcc.dg/vect/vect-widen-mult-2.c
  c409a040921012445ba61789d66778ab  gcc/testsuite/gcc.dg/vect/vect-widen-mult-3.c
  6928783caf5a4aaf0261975fe55ca576  gcc/testsuite/gcc.dg/vect/vect-widen-mult-4.c
! b8d465b886de8f059bcf419385dfa565  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c
! 6d5435b75eea3429d44a61b22d96dea7  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c
  9297df8190d814d4a7e82544e483ca78  gcc/testsuite/gcc.dg/vect/vect-widen-mult-extern-1.c
! 611f9bbbf3e4c95565b2232c8fbc80be  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c
! 1f445f4e00fabf096f808f689b53397e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c
  0ca4cfa6145afbdc4b13e3ca575fe327  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s16.c
  ef6123bca5b0e71a26d4094e2c7ab7e2  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s8.c
  4d8384a6755a406e8a0acfa99c50425e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-sum.c
! 821f75c53b8b7fc52d6a748921350808  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
! 4f6079115944850e56fe66afdfbe3762  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c
! 72c5fffdc3e8d1e48e931707a796b379  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-u32.c
! 9d064300c8131a8b12d42e840a0218ef  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8.c
  3f152091dccbd974d6c65fe6f1a3e9eb  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s16.c
  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
--- 69165,69187 ----
  28cfda3bc854be355322e26b1cadc604  gcc/testsuite/gcc.dg/vect/vect-widen-mult-2.c
  c409a040921012445ba61789d66778ab  gcc/testsuite/gcc.dg/vect/vect-widen-mult-3.c
  6928783caf5a4aaf0261975fe55ca576  gcc/testsuite/gcc.dg/vect/vect-widen-mult-4.c
! 4f98687a598882780fd6e66f32a316e2  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-s16.c
! dcf32e10eadcb638f464b7b3dac6b5e4  gcc/testsuite/gcc.dg/vect/vect-widen-mult-const-u16.c
  9297df8190d814d4a7e82544e483ca78  gcc/testsuite/gcc.dg/vect/vect-widen-mult-extern-1.c
! 1610f5b8739467a0ce76ee64012183b1  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half-u8.c
! 19a2e1f6c8cfac84103282469dfdfc5a  gcc/testsuite/gcc.dg/vect/vect-widen-mult-half.c
  0ca4cfa6145afbdc4b13e3ca575fe327  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s16.c
  ef6123bca5b0e71a26d4094e2c7ab7e2  gcc/testsuite/gcc.dg/vect/vect-widen-mult-s8.c
  4d8384a6755a406e8a0acfa99c50425e  gcc/testsuite/gcc.dg/vect/vect-widen-mult-sum.c
! 80bc92e96ec3650799d9a3bcb7d17769  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
! dd358cf9949b492d8381a5c5da511117  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-s16-s32.c
! caec8b8c2f8388721c36040b6b6122ae  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8-u32.c
! 3ed0e6fbf3cc8b5c041dd1014fec56a7  gcc/testsuite/gcc.dg/vect/vect-widen-mult-u8.c
  3f152091dccbd974d6c65fe6f1a3e9eb  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s16.c
  57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
  5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
  aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! b38a14c325875326a09d4fec31426f3a  gcc/testsuite/gcc.dg/vect/vect.exp
  9c10d2393bb90978e04161ff14df3a4a  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
  4749e5664952bdad254e75583138cd9f  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
  32baa51c29f3f1f6ab2dc0f47bb4b324  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
*************** cef7070b381518da6b1a5af1d304f9f6  gcc/te
*** 59848,59854 ****
  65032f980ed26d35986016868f58f5fb  gcc/testsuite/gcc.dg/visibility-b.c
  3914edf5bc61ae4a7f8bfe7daf7a917f  gcc/testsuite/gcc.dg/visibility-c.c
  86ff2e0220006b62079262b0a60c8325  gcc/testsuite/gcc.dg/visibility-d.c
! 2258ff3f0170625e89bd91bc89305caf  gcc/testsuite/gcc.dg/vla-1.c
  3a3971b57d9b9c24f86e7ec58832e1cc  gcc/testsuite/gcc.dg/vla-10.c
  156d8c0cb6e36f02ea60ab74130dbbb3  gcc/testsuite/gcc.dg/vla-11.c
  6279bb892b45c144be8f0f592f512f57  gcc/testsuite/gcc.dg/vla-12.c
--- 69219,69225 ----
  65032f980ed26d35986016868f58f5fb  gcc/testsuite/gcc.dg/visibility-b.c
  3914edf5bc61ae4a7f8bfe7daf7a917f  gcc/testsuite/gcc.dg/visibility-c.c
  86ff2e0220006b62079262b0a60c8325  gcc/testsuite/gcc.dg/visibility-d.c
! d6fb9bdd6cbcc9aead0f2cd253b0d182  gcc/testsuite/gcc.dg/vla-1.c
  3a3971b57d9b9c24f86e7ec58832e1cc  gcc/testsuite/gcc.dg/vla-10.c
  156d8c0cb6e36f02ea60ab74130dbbb3  gcc/testsuite/gcc.dg/vla-11.c
  6279bb892b45c144be8f0f592f512f57  gcc/testsuite/gcc.dg/vla-12.c
*************** e24d0f20e739156ac3cf1c83cb940873  gcc/te
*** 59877,59884 ****
  18f8fa8a55cbcb4e18bf8230f6f1d37f  gcc/testsuite/gcc.dg/vla-init-1.c
  0cc7ec34ad1b21fe811a038e5f9a3f15  gcc/testsuite/gcc.dg/vla-init-2.c
  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
--- 69248,69255 ----
  18f8fa8a55cbcb4e18bf8230f6f1d37f  gcc/testsuite/gcc.dg/vla-init-1.c
  0cc7ec34ad1b21fe811a038e5f9a3f15  gcc/testsuite/gcc.dg/vla-init-2.c
  3ebc83a0a0f2edba6c53937797fcfaef  gcc/testsuite/gcc.dg/vla-init-3.c
! b6af5789aab1e4a210dcd7fd3471a0e6  gcc/testsuite/gcc.dg/vla-init-4.c
! 00259120ba3ce394259501452fe828c7  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/te
*** 59888,59893 ****
--- 69259,69265 ----
  748ee2e2a4c0cc944dd2c73fdb89639c  gcc/testsuite/gcc.dg/vla-stexp-7.c
  4fdda7517bab551abdccdbb2c0bfa91e  gcc/testsuite/gcc.dg/vla-stexp-8.c
  63edc5c02ff6dbde1e6ad24652084b7e  gcc/testsuite/gcc.dg/vla-stexp-9.c
+ 5e398abe4b9def996f9a4439513432dd  gcc/testsuite/gcc.dg/vla-tert-1.c
  b6e4ad0c2b06bc17958fb57b495b011f  gcc/testsuite/gcc.dg/vmx/1b-01.c
  192ca75d85cf89c0dbaa4e9b66bf8ce1  gcc/testsuite/gcc.dg/vmx/1b-02.c
  26ad98ef01158cbabae0393a498f540a  gcc/testsuite/gcc.dg/vmx/1b-03.c
*************** b74b4229263d70abbf112c2c622f29ba  gcc/te
*** 60018,60024 ****
  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
--- 69390,69396 ----
  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
! 42d7e9cf669242967237236d58a83ade  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
*** 60048,60054 ****
  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
--- 69420,69426 ----
  f5b5cb2b526a46cc84be22a60b28910d  gcc/testsuite/gcc.dg/vshift-7.c
  e24f2248b6dfe2458324a1f859ecb3c3  gcc/testsuite/gcc.dg/vxworks/initpri1.c
  082cdb5ff1a15b2384040533828cac32  gcc/testsuite/gcc.dg/vxworks/initpri2.c
! 0f460f4cb82e64fad5e18287821155f9  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
*************** b2257f5f913dd4b4b9eb7a2ea834a710  gcc/te
*** 60065,60090 ****
  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
--- 69437,69462 ----
  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
! 82268ff726408d6d1dd389e9fa276252  gcc/testsuite/gcc.dg/weak/weak-1.c
! 47e348c3bf69f1ac4e77a7e6775eab08  gcc/testsuite/gcc.dg/weak/weak-10.c
! 4cc915fd7b2b58568f2d25eb02eb7d93  gcc/testsuite/gcc.dg/weak/weak-11.c
! 6a4c8637b29e1066a89a037f09e6eb6f  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
! 7ef88e6e9ff3f5fe32159894ab2fdcb8  gcc/testsuite/gcc.dg/weak/weak-15.c
! 70f0f33b074b7a65550d11e7abf26459  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
! 46f38e8750278a2082d7160cad862f6d  gcc/testsuite/gcc.dg/weak/weak-2.c
! 836d17851c672789435c696a2006e5b7  gcc/testsuite/gcc.dg/weak/weak-3.c
! defe364699a190498189f6d096b47e63  gcc/testsuite/gcc.dg/weak/weak-4.c
! 92f1c0b2be142ec5036dd5b3870db65c  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
! 47a28517c3b6bc14e937a35d1cafcae4  gcc/testsuite/gcc.dg/weak/weak-9.c
! 96a157a924a887c26c95b6351ebc16b0  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
*************** fde5cbed4304481836e4888bd782a081  gcc/te
*** 60117,60223 ****
  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
! c400cc0e03e4317110d582fdba04ace0  gcc/testsuite/gcc.misc-tests/gcov-10b.c
! 0c8ac613f2d2a35706fd7c8b7b16a1a9  gcc/testsuite/gcc.misc-tests/gcov-11.c
! eee8f00567cf54ebbed65a4f71c7d314  gcc/testsuite/gcc.misc-tests/gcov-12.c
! 1aac355a176cb811b951b73ea58ef6c7  gcc/testsuite/gcc.misc-tests/gcov-13.c
! a95cd74daf7751d37ad0e80b754f3ef8  gcc/testsuite/gcc.misc-tests/gcov-14.c
! a7fcf55fbb07ad31be551305d543313e  gcc/testsuite/gcc.misc-tests/gcov-15.c
! a19cb340410a6420dbacef02fec4bcd8  gcc/testsuite/gcc.misc-tests/gcov-16.c
! 90ae2485842728f278e979faa45ad805  gcc/testsuite/gcc.misc-tests/gcov-17.c
! 70c6f6b4d1974332d8e93bc9a3457028  gcc/testsuite/gcc.misc-tests/gcov-18.c
! a1241f25f3288ad9f494cee117c43506  gcc/testsuite/gcc.misc-tests/gcov-19.c
! 26d3ee0bab7bc8a86b5239d64728101d  gcc/testsuite/gcc.misc-tests/gcov-1a.c
! 7a8ab4c1f62f1462575863cae613404b  gcc/testsuite/gcc.misc-tests/gcov-2.c
! 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
! 9f0a4f4ae87d9c8e7ee70f27c75d5114  gcc/testsuite/gcc.misc-tests/gcov-6.c
! 5324617bdeb58cd08b3e16f20f9e3c50  gcc/testsuite/gcc.misc-tests/gcov-7.c
! cd07c3504059efe7fb7533158e061864  gcc/testsuite/gcc.misc-tests/gcov-8.c
! c80d5a6473bfd6e4b6e87a183c6d05b5  gcc/testsuite/gcc.misc-tests/gcov-9.c
  2e9ddc8005d8dbaf76953e1c6efcc168  gcc/testsuite/gcc.misc-tests/gcov-pr114599.c
  532090f95d4315be0d583fcdf9aa2328  gcc/testsuite/gcc.misc-tests/gcov-pr114601.c
  8114252892791c2c861a0b816aa62dbe  gcc/testsuite/gcc.misc-tests/gcov-pr114681.c
! 0df3e4ffd1610249fe85ed5bdd64727a  gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
! 21f13efd8f57c103a63da9546f8a4c63  gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
! 0ff4a1fb9692c697b091ed4523db6462  gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
! 1cc3507fd048b41853b3f26324570915  gcc/testsuite/gcc.misc-tests/gcov-pr85332.c
! 64551f89f8d714e5c9229b25764d2c6d  gcc/testsuite/gcc.misc-tests/gcov-pr85338.c
! 772680c804fa85a46b0e530f2d7f0bd2  gcc/testsuite/gcc.misc-tests/gcov-pr85350.c
! 7528aca2251aa136d1d3f9e5ead9f9d6  gcc/testsuite/gcc.misc-tests/gcov-pr85372.c
! cd738df03ae207debc1ad168ab05d024  gcc/testsuite/gcc.misc-tests/gcov-pr86536.c
! 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
--- 69489,69599 ----
  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
+ c402d14338f9008939eef038395f1a7f  gcc/testsuite/gcc.dg/zero-extend.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
! bf0166dfa5d8535dda7dfc330d4fe125  gcc/testsuite/gcc.misc-tests/acker1.exp
  77cec6e0fd95e9ae200e495071d1ae9a  gcc/testsuite/gcc.misc-tests/arm-isr.c
! 80380fa7925fe142c729ff705afcd956  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
! d8a5582ad7177854ed66cd0b9dfbab66  gcc/testsuite/gcc.misc-tests/bprob.exp
! cab0488838a24c49176395ecd2429957  gcc/testsuite/gcc.misc-tests/dectest.exp
  a11bded9860644075434da1f07b7f1bf  gcc/testsuite/gcc.misc-tests/dhry.c
! a0e0a36f95b638628b96d2b6348ddfd2  gcc/testsuite/gcc.misc-tests/dhry.exp
  850c45b3c3b492adf09b115c0d2d2286  gcc/testsuite/gcc.misc-tests/dhry.h
! 4edb992c7063d470716954e6be467980  gcc/testsuite/gcc.misc-tests/gcov-1.c
! 485ca34c05c542ca7f7813bdae993d5c  gcc/testsuite/gcc.misc-tests/gcov-10.c
! 28d6cf5350374b69173f5cdf0fe4826e  gcc/testsuite/gcc.misc-tests/gcov-10b.c
! 99ac2b624d533e40bd72e9c0bd306da4  gcc/testsuite/gcc.misc-tests/gcov-11.c
! 7b48304ed6cf8db8ecbc3981066cdc48  gcc/testsuite/gcc.misc-tests/gcov-12.c
! e6b92539aad49fd864490cec7080b490  gcc/testsuite/gcc.misc-tests/gcov-13.c
! c7ac4a7ab73f1691f9b4a862572c231a  gcc/testsuite/gcc.misc-tests/gcov-14.c
! cbf6bf065ad255a035c8a4ecfef0b332  gcc/testsuite/gcc.misc-tests/gcov-15.c
! c7e8979eb7e4f7fb8c2e008a087966cd  gcc/testsuite/gcc.misc-tests/gcov-16.c
! 40a4ab93d915ef5160ce00fc07f5df4c  gcc/testsuite/gcc.misc-tests/gcov-17.c
! edb762bd836db8f67c45c7c8ce884c3e  gcc/testsuite/gcc.misc-tests/gcov-18.c
! 5190fab0b34ee07f94ad2e9d06ebbdfb  gcc/testsuite/gcc.misc-tests/gcov-19.c
! dc772b7fae7491c9aa2f65ee68d607a7  gcc/testsuite/gcc.misc-tests/gcov-1a.c
! 9f80d59aaaa2f2622f9b6a71fdef446e  gcc/testsuite/gcc.misc-tests/gcov-2.c
! d7f04c06f30a806d546036145b21e45b  gcc/testsuite/gcc.misc-tests/gcov-20.c
  7cbc5cb8d89f137fee58e670e9b96f48  gcc/testsuite/gcc.misc-tests/gcov-21.c
! 60fef848f2dd5d55557cd799f8e3475d  gcc/testsuite/gcc.misc-tests/gcov-22.c
  42d1963cdce75dce5b9a65c3937419ba  gcc/testsuite/gcc.misc-tests/gcov-23.c
! ee0ba269917a420abcca395ad38b524a  gcc/testsuite/gcc.misc-tests/gcov-24.c
! 31628208404bff0ec14b21acea3b0108  gcc/testsuite/gcc.misc-tests/gcov-25.c
! 32d56f3c339953d0c4cfadc72fb51dfd  gcc/testsuite/gcc.misc-tests/gcov-26.c
! b968fcc4d85aae78066422161712adf6  gcc/testsuite/gcc.misc-tests/gcov-27.c
! e849b1f9c287a448bf8c2017ed97f8af  gcc/testsuite/gcc.misc-tests/gcov-28.c
! 298b7a4aa97865c16d5df3d22765e4ad  gcc/testsuite/gcc.misc-tests/gcov-29.c
! bfde4845f4a814d2ee6c2745349086cc  gcc/testsuite/gcc.misc-tests/gcov-3.c
! 76667198561bcf4ba7a75aef4b55d87b  gcc/testsuite/gcc.misc-tests/gcov-30.c
  13e63323e5ef1451f30fd4147d4fe687  gcc/testsuite/gcc.misc-tests/gcov-31.c
! 7c02027c3366cd008faec72d37682fff  gcc/testsuite/gcc.misc-tests/gcov-32.c
! 36e6bfa6f1fa471f408919b16be06d89  gcc/testsuite/gcc.misc-tests/gcov-33.c
! 30dd2d3737a7401831c1575abfa0519e  gcc/testsuite/gcc.misc-tests/gcov-34.c
! 90f74ccb28fbeaad6e27b19106c0c11e  gcc/testsuite/gcc.misc-tests/gcov-4.c
! bd636e850bb2e90101ecf2fb90c0cfed  gcc/testsuite/gcc.misc-tests/gcov-4b.c
! 6141d011350f6aaa61e89b47b68d3efa  gcc/testsuite/gcc.misc-tests/gcov-5b.c
! 2d7a310fa9667d81898720958238852f  gcc/testsuite/gcc.misc-tests/gcov-6.c
! 8d2a2286810200ae0ae2bce850e94653  gcc/testsuite/gcc.misc-tests/gcov-7.c
! b76086dacb74bfaa16182713e3441f38  gcc/testsuite/gcc.misc-tests/gcov-8.c
! 0cb1d75dce4d0c4ecc019b5b3adc17f1  gcc/testsuite/gcc.misc-tests/gcov-9.c
  2e9ddc8005d8dbaf76953e1c6efcc168  gcc/testsuite/gcc.misc-tests/gcov-pr114599.c
  532090f95d4315be0d583fcdf9aa2328  gcc/testsuite/gcc.misc-tests/gcov-pr114601.c
  8114252892791c2c861a0b816aa62dbe  gcc/testsuite/gcc.misc-tests/gcov-pr114681.c
! 27ac6bc3ed41bc9f32417703220d72fe  gcc/testsuite/gcc.misc-tests/gcov-pr123855.c
! a946bc93f49605b83cfdb2bc72accd8e  gcc/testsuite/gcc.misc-tests/gcov-pr83813.c
! ab12d088013c689404c40977ae636e6b  gcc/testsuite/gcc.misc-tests/gcov-pr84758.c
! 988d6df927366ba7aa9c2a859fd9326f  gcc/testsuite/gcc.misc-tests/gcov-pr85217.c
! 722e46ec336f76a02701253df7663347  gcc/testsuite/gcc.misc-tests/gcov-pr85332.c
! 0667dc34d28798dfcdacb06873c14dba  gcc/testsuite/gcc.misc-tests/gcov-pr85338.c
! fc640f33ff98feb0c834615794d7aaa1  gcc/testsuite/gcc.misc-tests/gcov-pr85350.c
! 98e3a30fb36c088fb25df6f9ba71527b  gcc/testsuite/gcc.misc-tests/gcov-pr85372.c
! c56fa5b753e3a38d25b795aa919662a8  gcc/testsuite/gcc.misc-tests/gcov-pr86536.c
! 22db3cf76287916a1706357636402303  gcc/testsuite/gcc.misc-tests/gcov-pr90574-1.c
! c7d6a37fe8a8d7a2ef52ce982f5b0ff4  gcc/testsuite/gcc.misc-tests/gcov-pr90574-2.c
  64595fd213798d37265f5eb087bb77f2  gcc/testsuite/gcc.misc-tests/gcov-pr94029.c
! 3ed37effcee8c0013a7c1868f4832965  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
! 884afe40ca561325c70d2f5cda267229  gcc/testsuite/gcc.misc-tests/godump.exp
! f731ef4e8b8a1177e16a9aee832ccdb6  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
! ac95267ce6379b7f5d302257c14033ea  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
! 24e3d0a031b7852355511d1ae61cccd6  gcc/testsuite/gcc.misc-tests/linkage.exp
  1d8fa0a1210ed4c4bf0ff4dfa959f060  gcc/testsuite/gcc.misc-tests/matrix1.c
! 2401a49a4631fb737e9a10d01b09502e  gcc/testsuite/gcc.misc-tests/matrix1.exp
  b45579fdac6008721502ddecb5df29d8  gcc/testsuite/gcc.misc-tests/mg-2.c
! 36e6bedd4345d03f604403eeee3ba6f6  gcc/testsuite/gcc.misc-tests/mg-2.exp
  fb7a4e029ce05eea8ba0f03f9033caa2  gcc/testsuite/gcc.misc-tests/mg.c
! b656d217b1ddc88a7c1749790cc1eeba  gcc/testsuite/gcc.misc-tests/mg.exp
! 2f8dc42186491b3b0a332242c96ad1bd  gcc/testsuite/gcc.misc-tests/options.exp
! 58bc67c1b899c6ca9507726eb3a11469  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
! 9be654fcf7de4fd76ca787673a554a36  gcc/testsuite/gcc.misc-tests/outputs.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
! 8b124ef23e45ad61bc2c14ba0e1096cc  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
! 8826d63f165d86f2dbd4e777a2dae9df  gcc/testsuite/gcc.misc-tests/sort2.exp
! 96673a4bb8bf18ac0be598567bad1cdc  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
! 57f969a985d9ef78dbdd6e810f9fc352  gcc/testsuite/gcc.target/aarch64/_Float16_cmp_1.c
! 865edda886df62d4336b7ea0048b0664  gcc/testsuite/gcc.target/aarch64/_Float16_cmp_2.c
! fe0762363702a748f37303212b74368a  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
*************** b51362df070ad6ef73f3c62bb1acacfb  gcc/te
*** 60348,60354 ****
  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
--- 69724,69767 ----
  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
! 3ca947023315197c183375ae4cee13ca  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/aarch64-json-tunings.exp
! c41c3c82e40a959ce42bbca09520721d  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-1.c
! 90037c973ffb88fde9e99552a82daac2  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-1.json
! 6aec94665449ebdc106c79fd1dc87b3b  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-2.c
! f10fb71be971b386c1435dd7a73bed30  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/boolean-2.json
! 28054314c6f83d044a8e3a228759620b  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty-brackets.c
! 8a80554c91d9fca8acb82f023de02f11  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty-brackets.json
! 5a2bb8d28db6d726a39e6548571f49db  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty.c
! d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/empty.json
! 1f4dfd2064e0dec13f5e2d75c3997f40  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-1.c
! 32f9294b1c6ff138335444046376cbd4  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-1.json
! b7f71ce8fe73301bf9faedef3d43ba87  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-2.c
! 6969276b3f16faa60d8118a48c0b0ff4  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/enum-2.json
! f191272203e59cac9d6fcce6781c5753  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-1.c
! e5f0919a0522ba8874235985c94b1017  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-1.json
! c39cb930698e63beb2cf35d7828d9eb1  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-2.c
! 604dc6d356d8e5a677ebde1f93a56a5a  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-2.json
! 2dda1c989b254f9dacb1ccaf80dbc477  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-3.c
! 9887bbaeb53ed9d9c46bf6bd599e4740  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/integer-3.json
! f2f24f137ba8e41bfba52ff16300cb27  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/malformed.c
! 46ce55021bfcfaa0201c9d35a10abe05  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/malformed.json
! d8daf5c5b4887453eed2474facceee40  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/nullptr-issue-info.c
! 2d1d60a1c908728aed24ed2c4d374b8b  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/nullptr-issue-info.json
! 377dce274560487e627195e83c2c3a32  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-1.c
! 50167c397eec39acb3c9b4dc06f6be3e  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-1.json
! 2a9b0f42b06ecffa008129935ffb9f91  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-2.c
! 9d55374cce51a92db948769b7b32b684  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/string-2.json
! eb826b713833e370e6d170582e842f84  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/test-all.c
! 13cce99b62e5897642cf931f7c29b2ea  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/test-all.json
! 1ecc61f0c8d79fc1416684a81177759e  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unidentified-key.c
! 232ecf5e2b44c88fec69ba7b6686c6d9  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unidentified-key.json
! e19ff859e29720c77e2469cde93c9c02  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-1.c
! 9959818ad5b78a20c43488905fe180ec  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-1.json
! 80d6d997dbac9458420e3be6e02ba4e3  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-2.c
! ebca7b8faf2ae7e9f0fbf1a0d0e04a36  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-2.json
! dd1939cbada5e6e27fe78e7b38948e91  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-3.c
! 3e77d1943b1b4013c5480dce2c545f68  gcc/testsuite/gcc.target/aarch64/aarch64-json-tunings/unsigned-3.json
! b181b8b7f8b3cbb7c18d79630341961e  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
*** 60364,60372 ****
  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
--- 69777,69788 ----
  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
! 8f88bd456c760f16b7890a5d7c737492  gcc/testsuite/gcc.target/aarch64/acle/acle.exp
  cb3e8020430a2ad0a4a6603145f25950  gcc/testsuite/gcc.target/aarch64/acle/acle_fma.c
+ a398a8cde23b80acd1694d02782f847d  gcc/testsuite/gcc.target/aarch64/acle/acle_sqrt.c
  a545b8f7fc60af12576f85397e1733cb  gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c
+ 0bf250a6d37e5d42c73dac559da5ddce  gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-1.c
+ 25e08e40b9eef0597ddff96b9c752f1c  gcc/testsuite/gcc.target/aarch64/acle/asm-inlined-sysreg-2.c
  d75448581ffe687b59d90766e852e7df  gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c
  80f5f996bc3addf12ec6ed7a7a97d085  gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c
  62e20cc9b647dedfdd26cf101e10f58e  gcc/testsuite/gcc.target/aarch64/acle/bti_def.c
*************** acaaa7b0871f73bf93a15b8ccdd87575  gcc/te
*** 60380,60386 ****
  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
--- 69796,69802 ----
  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
! 01fdb83b04e7ce7619bfd39a9c8b8eb0  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
*************** b78a4169933a9354d9c9f02a41a28212  gcc/te
*** 60413,60419 ****
  c2eae4877980c06eaa23ea8db426a5c1  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-3.c
  a9efd5e0ebc228f128308006c2db9c2b  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0.c
  bbcc298547eb556312f83b765ff6baef  gcc/testsuite/gcc.target/aarch64/acle/ls64_strict_align.c
! ff3a09d9afde293ac1598cb7530ead9d  gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c
  42f386dac12d330a687e58d7027f0c47  gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c
  dad27dd9a8b076099818ec56a74ef781  gcc/testsuite/gcc.target/aarch64/acle/memtag_2a.c
  e2be4748443bb6caa176b86d28972388  gcc/testsuite/gcc.target/aarch64/acle/memtag_3.c
--- 69829,69835 ----
  c2eae4877980c06eaa23ea8db426a5c1  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0-3.c
  a9efd5e0ebc228f128308006c2db9c2b  gcc/testsuite/gcc.target/aarch64/acle/ls64_st64bv0.c
  bbcc298547eb556312f83b765ff6baef  gcc/testsuite/gcc.target/aarch64/acle/ls64_strict_align.c
! a6b97d3c920a4b589738d78cf9cdbbc2  gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c
  42f386dac12d330a687e58d7027f0c47  gcc/testsuite/gcc.target/aarch64/acle/memtag_2.c
  dad27dd9a8b076099818ec56a74ef781  gcc/testsuite/gcc.target/aarch64/acle/memtag_2a.c
  e2be4748443bb6caa176b86d28972388  gcc/testsuite/gcc.target/aarch64/acle/memtag_3.c
*************** b2d6f261b85fc4c40364afc833ecb5e2  gcc/te
*** 60423,60428 ****
--- 69839,69847 ----
  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
+ cb2535b12d22ed2d65b724ad88f45bc4  gcc/testsuite/gcc.target/aarch64/acle/pld_pli.c
+ 7b0a676ffe20810daa88e8d54e62369b  gcc/testsuite/gcc.target/aarch64/acle/pld_pli_illegal.c
+ 0a69bf9729408f6be58df7afb5e98546  gcc/testsuite/gcc.target/aarch64/acle/pldir.c
  4f75ca7b0d38f756a18d8f9574e56fd4  gcc/testsuite/gcc.target/aarch64/acle/pmull64.c
  7891d663249f27cbe3e8c65142207451  gcc/testsuite/gcc.target/aarch64/acle/pr108140.c
  e15fb874d0ae7c74f74b2eb5bd8f8bf3  gcc/testsuite/gcc.target/aarch64/acle/pr110100.c
*************** e15fb874d0ae7c74f74b2eb5bd8f8bf3  gcc/te
*** 60432,60448 ****
  0d5ba16c2924cc1abd60d5f6e84bb892  gcc/testsuite/gcc.target/aarch64/acle/rng_1.c
  cb84d7d74821259d1a47775dd18c13c8  gcc/testsuite/gcc.target/aarch64/acle/rng_2.c
  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
--- 69851,69872 ----
  0d5ba16c2924cc1abd60d5f6e84bb892  gcc/testsuite/gcc.target/aarch64/acle/rng_1.c
  cb84d7d74821259d1a47775dd18c13c8  gcc/testsuite/gcc.target/aarch64/acle/rng_2.c
  a204aadb3f5fc384dd117c7c09175029  gcc/testsuite/gcc.target/aarch64/acle/rwsr-1.c
! 596da75607dfa463c209980dba2ef791  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
! 8106917e4e230850cff2d4b822ab17d8  gcc/testsuite/gcc.target/aarch64/acle/rwsr-armv8p9.c
! 4b740eebf57233eb3b1870edc182e194  gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-1.c
! b0d5a47ed3f3a88ea0ea5945efdeb663  gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c
  b478e4234b2713f0df0d417dd9d13425  gcc/testsuite/gcc.target/aarch64/acle/rwsr-ungated.c
! 060ba83ef96f0e9ba1957beb7670ae4f  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
  10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
  1627c4e768e0f137d5dca5de857b5c77  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
  b17ad011788c422a42d7da3d5a869239  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
  aa779f716e05ff6a4acc890465c03576  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
  f67a4b5e44d64eb195dea3cc6d237bba  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
+ 6ffc828da3c2dedc3b76d0a506c2b2c3  gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c
+ 69b7ae757bf4ea226057e38353f3af1e  gcc/testsuite/gcc.target/aarch64/acle/vmmlaq_f16_mf8.c
+ ab48b114d61d03d84807a12fe0ebf312  gcc/testsuite/gcc.target/aarch64/acle/vmmlaq_f32_mf8.c
  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
*** 60450,60456 ****
  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
--- 69874,69880 ----
  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
! 1b1d3935c9f2236e15404050005df779  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
*************** b30f56c46834b427133c97c6f19cda62  gcc/te
*** 60631,60637 ****
  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
--- 70055,70061 ----
  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
! 21a3de75df7671f3a8a4fcb600d4b5aa  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
*************** ab7951fe68fbc1de8a165fc90b1f997f  gcc/te
*** 60651,60659 ****
  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
--- 70075,70083 ----
  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
! 118df8917459c3386762c7dd93ce0d73  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x2.c
! 0f2dd292eb8248438f04a22ff3519d22  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1x3.c
! 6c4df20948576941787a6cf0380e4fb4  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
*************** fa0fde9d815d3df3998ebe17cb5ce4f6  gcc/te
*** 60932,60940 ****
  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
--- 70356,70364 ----
  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
! e644823367baf8241f7d88ff34102e38  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x2.c
! e7a5e20017ab7fea3652aa2e9b448e17  gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vst1x3.c
! 4c2a0af92224a94d1d4c45daa2cbe0be  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
*************** ba8b0dfe81019139ed5b239fb9d22ae0  gcc/te
*** 61034,61039 ****
--- 70458,70465 ----
  f73e7d4ce7c3e327e953b946f2617247  gcc/testsuite/gcc.target/aarch64/aes_1.c
  d1d74e6c3fd8740a204f8a685d723756  gcc/testsuite/gcc.target/aarch64/aes_2.c
  ae9d490ad1228549fa8e44e7c17ec959  gcc/testsuite/gcc.target/aarch64/aes_xor_combine.c
+ ac955eae2263ff93e35a9a51ab29008a  gcc/testsuite/gcc.target/aarch64/and-be.c
+ df8491d7fa143b8700a96bb39ecfea17  gcc/testsuite/gcc.target/aarch64/and-le.c
  b144bbaff9193d702e5e6e91e1c21a7a  gcc/testsuite/gcc.target/aarch64/and_const.c
  5625f9d0aa6dd393a4e54a9d8f0df277  gcc/testsuite/gcc.target/aarch64/and_const2.c
  e4ce46d425f8ea0594bf48b8fec9250a  gcc/testsuite/gcc.target/aarch64/ands_1.c
*************** a5475847de61efdab06cd4fa43cf0e12  gcc/te
*** 61055,61065 ****
  33c8c4a9517616d8bfab58294e955e04  gcc/testsuite/gcc.target/aarch64/asm-5.c
  371e1b24318679345c92f1610a479910  gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c
  82342c21bec311241ac523023fc12855  gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c
! 2c45c7e11ae5e10b1fdf9f05c07a383c  gcc/testsuite/gcc.target/aarch64/asm-flag-1.c
  dec6fa45fd2a29df2bb34f29716542bd  gcc/testsuite/gcc.target/aarch64/asm-flag-3.c
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
  58ce71dec34e038ef9935b9ddf669c0b  gcc/testsuite/gcc.target/aarch64/asm-flag-7.c
  d1ef31752e82f204d0e8943181982368  gcc/testsuite/gcc.target/aarch64/asm-x-constraint-1.c
  9ddf4430e4abf2352e0ad119aab27915  gcc/testsuite/gcc.target/aarch64/asm-y-constraint-1.c
  4243a23aa0a384578b2d05d3f99be487  gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
--- 70481,70493 ----
  33c8c4a9517616d8bfab58294e955e04  gcc/testsuite/gcc.target/aarch64/asm-5.c
  371e1b24318679345c92f1610a479910  gcc/testsuite/gcc.target/aarch64/asm-adder-clobber-lr.c
  82342c21bec311241ac523023fc12855  gcc/testsuite/gcc.target/aarch64/asm-adder-no-clobber-lr.c
! ff4b10d04e8e57b34aa0d3331d2977a3  gcc/testsuite/gcc.target/aarch64/asm-flag-1.c
  dec6fa45fd2a29df2bb34f29716542bd  gcc/testsuite/gcc.target/aarch64/asm-flag-3.c
  84cc9bafe1857dc2a9bd4ae96b8c27e3  gcc/testsuite/gcc.target/aarch64/asm-flag-5.c
  81557d2f721a4a556b0a0651b5d87cbd  gcc/testsuite/gcc.target/aarch64/asm-flag-6.c
  58ce71dec34e038ef9935b9ddf669c0b  gcc/testsuite/gcc.target/aarch64/asm-flag-7.c
+ 375f0c6e1488193a7f098d82f5eba427  gcc/testsuite/gcc.target/aarch64/asm-hard-reg-1.c
+ a9fdebc57818793aef3a5e64bd82fd28  gcc/testsuite/gcc.target/aarch64/asm-hard-reg-2.c
  d1ef31752e82f204d0e8943181982368  gcc/testsuite/gcc.target/aarch64/asm-x-constraint-1.c
  9ddf4430e4abf2352e0ad119aab27915  gcc/testsuite/gcc.target/aarch64/asm-y-constraint-1.c
  4243a23aa0a384578b2d05d3f99be487  gcc/testsuite/gcc.target/aarch64/assembler_arch_1.c
*************** e7b8ba1ea741c7a9f79ac8356c698d78  gcc/te
*** 61093,61098 ****
--- 70521,70527 ----
  93824c67e68bdb907e2208d5e59a5324  gcc/testsuite/gcc.target/aarch64/atomic-store.c
  54ef40f0c37a67de10bb882fb6956099  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c
  51e5228d8a5c0d375800a8ddb69247ca  gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c
+ d7319fbdbe4b031be6113a2932d0fc2b  gcc/testsuite/gcc.target/aarch64/atomic_store_with_stshh.c
  07437ce12511a14a25ac0b125b050902  gcc/testsuite/gcc.target/aarch64/attr-aligned.c
  ce18e5026a485a8f7703a20b7d6f26ed  gcc/testsuite/gcc.target/aarch64/auto-init-1.c
  f5b1276588c9d9ba2f92070dd86994a1  gcc/testsuite/gcc.target/aarch64/auto-init-2.c
*************** aa553ecd38d6f1390bde2fd58eeb4ba6  gcc/te
*** 61106,61129 ****
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 75bf69853931f2294dca7448c331e569  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
  8617f8a139394f10f8c1a9448a322dc0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! ba17361507bd54cc99fb2816d4863eaa  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
  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
--- 70535,70564 ----
  6152eb7bd8e8fb962404c859fd655d9d  gcc/testsuite/gcc.target/aarch64/auto-init-padding-10.c
  ba3b80a743046593df9ed388ceb66f03  gcc/testsuite/gcc.target/aarch64/auto-init-padding-11.c
  cfcd3e6d235151d91afb31b338a749e2  gcc/testsuite/gcc.target/aarch64/auto-init-padding-12.c
! 59ce76852a41a8dba6f8bbb0b402d4cc  gcc/testsuite/gcc.target/aarch64/auto-init-padding-2.c
  8617f8a139394f10f8c1a9448a322dc0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-3.c
! c740d070c3520d4e9f09e4e4e4850dca  gcc/testsuite/gcc.target/aarch64/auto-init-padding-4.c
  418b10ba7b8091584dc3bcc8c4ccefc7  gcc/testsuite/gcc.target/aarch64/auto-init-padding-5.c
  a8a16d0937642cc260a09db6d3387b40  gcc/testsuite/gcc.target/aarch64/auto-init-padding-6.c
  de76859b307e32b03a98f03a94e54fe0  gcc/testsuite/gcc.target/aarch64/auto-init-padding-7.c
  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
+ b785f49ae012e7412b1a8a0d3047a5b6  gcc/testsuite/gcc.target/aarch64/autovec_param_asimd-only_2.c
  7632a80f967a85c739c65907412d3e7a  gcc/testsuite/gcc.target/aarch64/autovec_param_default.c
+ 131877c3b79050f7e92ef232f426c0d2  gcc/testsuite/gcc.target/aarch64/autovec_param_default_2.c
  15466f8f8ba340a60a545826e971f8a7  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd.c
+ 3679e7c33aa7136c47e84c732616cf36  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-asimd_2.c
  216ddfcf3c5a91ee9c5b0930b72c3046  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve.c
+ 5e3bc57edfd17dfc6a62a336868e979d  gcc/testsuite/gcc.target/aarch64/autovec_param_prefer-sve_2.c
  2e8212454ab53b66dd614df027a20c52  gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only.c
+ c6cf8bf0cb1b39440a64d8f476f6edc2  gcc/testsuite/gcc.target/aarch64/autovec_param_sve-only_2.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
+ 702b2037dd57663f46b3925af934a1bf  gcc/testsuite/gcc.target/aarch64/avoid-store-forwarding-be.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
*************** dcd90531dfe31a64f5aa5522b9c8807a  gcc/te
*** 61137,61142 ****
--- 70572,70578 ----
  b69ac5f2f29059073281b00ba6975f78  gcc/testsuite/gcc.target/aarch64/bfloat16_vector_typecheck_2.c
  61dac314ba6a1629bed37f7dc73024de  gcc/testsuite/gcc.target/aarch64/bfxil_1.c
  6378518f0a698c129d49f6f5eb229d63  gcc/testsuite/gcc.target/aarch64/bfxil_2.c
+ 143051d9ab51f309a7e6281068c33a69  gcc/testsuite/gcc.target/aarch64/bic-1.c
  6dc62170423fa4b690cc016a9b80d5a7  gcc/testsuite/gcc.target/aarch64/bic-bitmask-1.c
  e83c37f9be2990a7cda9a4dded6d46e3  gcc/testsuite/gcc.target/aarch64/bic_imm_1.c
  fdee6dc65f1aea1fb6a62ac64d03d92d  gcc/testsuite/gcc.target/aarch64/bics_1.c
*************** f29221b3dc2d27ac71c726e119cac0ff  gcc/te
*** 61161,61175 ****
  c45ad55864031fa75ffa4f831160438a  gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c
  0b8cf058ef48ad79bf7930ffa7dada5f  gcc/testsuite/gcc.target/aarch64/branch-protection-option.c
  cb2d59ab293179fb8d00b44de02f2556  gcc/testsuite/gcc.target/aarch64/bsl-idiom.c
! db5fd5b64a2eb4eb636d6dfdb413c130  gcc/testsuite/gcc.target/aarch64/bti-1.c
  1f3ef5067a390251f12ef6026d548694  gcc/testsuite/gcc.target/aarch64/bti-2.c
  b78c22df355563107f991e1e75999388  gcc/testsuite/gcc.target/aarch64/bti-3.c
  ab6bc72e5251715038d4dfdf5a92be3c  gcc/testsuite/gcc.target/aarch64/bti-4.c
  82ebc34e179e256a16633eeed8f5931d  gcc/testsuite/gcc.target/aarch64/builtin-bswap-1.c
  33f370cd2a619d45e68ba5747504d94e  gcc/testsuite/gcc.target/aarch64/builtin-bswap-2.c
  ac800c0500abf9ea311dffda98f211fe  gcc/testsuite/gcc.target/aarch64/builtin_apply-1.c
- 8afdfea25c5c0f6b7a714287496d0ffd  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c
- ebfe61998b217972759700f67918b7b9  gcc/testsuite/gcc.target/aarch64/builtin_pld_pli_illegal.c
  6927a6e9009b152efa44797dcae0c93a  gcc/testsuite/gcc.target/aarch64/builtin_sadd_128.c
  65465f2ba4ff1bba0055376633cc793f  gcc/testsuite/gcc.target/aarch64/builtin_saddl.c
  ca79e3e8e48412cc54e6a8e998f1e0c7  gcc/testsuite/gcc.target/aarch64/builtin_saddll.c
--- 70597,70620 ----
  c45ad55864031fa75ffa4f831160438a  gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c
  0b8cf058ef48ad79bf7930ffa7dada5f  gcc/testsuite/gcc.target/aarch64/branch-protection-option.c
  cb2d59ab293179fb8d00b44de02f2556  gcc/testsuite/gcc.target/aarch64/bsl-idiom.c
! d11d9c9eb2dba2a0c44760aab15f7702  gcc/testsuite/gcc.target/aarch64/bti-1.c
  1f3ef5067a390251f12ef6026d548694  gcc/testsuite/gcc.target/aarch64/bti-2.c
  b78c22df355563107f991e1e75999388  gcc/testsuite/gcc.target/aarch64/bti-3.c
  ab6bc72e5251715038d4dfdf5a92be3c  gcc/testsuite/gcc.target/aarch64/bti-4.c
+ 7edb52bfe612f5736169a14eecb511c7  gcc/testsuite/gcc.target/aarch64/build-attributes/aarch64-build-attributes.exp
+ 2562151402300567ba4eb56469a89394  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-bti.c
+ 585dc82ed045f19a56835efd9446698a  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-define-nok.c
+ eda66e71a5871b2bdec96d99b0617377  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-define-ok.c
+ 25272f0efe74d4e62080555d8a08619c  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-gcs.c
+ c8dea11415a69a37c67739e217bec165  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-pac.c
+ b00668d5ffde6d0f936e2fa8c72ca826  gcc/testsuite/gcc.target/aarch64/build-attributes/build-attribute-standard.c
+ abd3e1e0417d9d1552bf0fb608740072  gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-bti.c
+ a77472ae4daab7a782d0b7919e3b78b8  gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-gcs.c
+ ce0a270d0ab654727a943988b0a3ce49  gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-pac.c
+ 6fb91caca48df0d04635c25d87072ffd  gcc/testsuite/gcc.target/aarch64/build-attributes/no-build-attribute-standard.c
  82ebc34e179e256a16633eeed8f5931d  gcc/testsuite/gcc.target/aarch64/builtin-bswap-1.c
  33f370cd2a619d45e68ba5747504d94e  gcc/testsuite/gcc.target/aarch64/builtin-bswap-2.c
  ac800c0500abf9ea311dffda98f211fe  gcc/testsuite/gcc.target/aarch64/builtin_apply-1.c
  6927a6e9009b152efa44797dcae0c93a  gcc/testsuite/gcc.target/aarch64/builtin_sadd_128.c
  65465f2ba4ff1bba0055376633cc793f  gcc/testsuite/gcc.target/aarch64/builtin_saddl.c
  ca79e3e8e48412cc54e6a8e998f1e0c7  gcc/testsuite/gcc.target/aarch64/builtin_saddll.c
*************** dcbe68009cf519fec972930376254917  gcc/te
*** 61206,61211 ****
--- 70651,70662 ----
  9076c91dd96afebc8e0bbbc789c574fb  gcc/testsuite/gcc.target/aarch64/cmp-2.c
  1a49adb9a8d6e9ec4b9691318b915da9  gcc/testsuite/gcc.target/aarch64/cmp.c
  4ba06f31ec1c28eaeb88b7a0a8160041  gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c
+ 45c7b1036a43d057f57494cfac923496  gcc/testsuite/gcc.target/aarch64/cmpbr-1.c
+ 9c89b5c429968bdee454519519915008  gcc/testsuite/gcc.target/aarch64/cmpbr-2.c
+ 30def1aed0f72b4de05071d990411f92  gcc/testsuite/gcc.target/aarch64/cmpbr-3.c
+ 9ad011820658da0adf00e992677c5a87  gcc/testsuite/gcc.target/aarch64/cmpbr-4.c
+ 284a9e1dc225fd1f94fa5595de5a9fb3  gcc/testsuite/gcc.target/aarch64/cmpbr-5.c
+ eebc0417878d7c88189b1642d56018d0  gcc/testsuite/gcc.target/aarch64/cmpbr.c
  ee389eae370cb027260e737bcb692a7d  gcc/testsuite/gcc.target/aarch64/cmpelim_mult_uses_1.c
  7b5054f497a38f6f6603006f2d632a05  gcc/testsuite/gcc.target/aarch64/cmpimm_branch_1.c
  2750359abb653ac649405e9099ca1643  gcc/testsuite/gcc.target/aarch64/cmpimm_cset_1.c
*************** aace2ed034a2ab98ac7097658cded7d2  gcc/te
*** 61215,61221 ****
  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
--- 70666,70672 ----
  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
! a2e6f6e7a8f02da191244797f9e17159  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
*************** f0d278d66f3c6d099e299ada3c0f2f5a  gcc/te
*** 61227,61233 ****
  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
--- 70678,70684 ----
  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
! 8f88bd456c760f16b7890a5d7c737492  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
*************** c5a25189d013bff63967d8ba4395e70f  gcc/te
*** 61297,61312 ****
--- 70748,70767 ----
  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
+ 16f041e0977d84cf970b45d1212dae98  gcc/testsuite/gcc.target/aarch64/crc-1.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
+ 8df746cffc9d4647e7289a491fefbabf  gcc/testsuite/gcc.target/aarch64/crc-2.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
+ e64b445f3de5c32ef9fe6dabc536caaf  gcc/testsuite/gcc.target/aarch64/crc-3.c
  e9b2f2c412037d1ed54a8e6f2c8a2106  gcc/testsuite/gcc.target/aarch64/crc-4-pmul.c
+ 9a34e996498825327ef6f4346f4aab8e  gcc/testsuite/gcc.target/aarch64/crc-4.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/te
*** 61314,61322 ****
  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
--- 70769,70777 ----
  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
! e2cd635b22fe74637e15f3a4258fa177  gcc/testsuite/gcc.target/aarch64/crc-builtin-pmul64.c
  ece697e668e940eba5e40b8d0151eacd  gcc/testsuite/gcc.target/aarch64/crc-coremark-16bitdata-pmul.c
! 5c24bb8d4dbaf7766e7b35acce956b83  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
*************** bcc8d0d4f1ea5c4c0db13df4e8a52917  gcc/te
*** 61329,61342 ****
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
  0fcb30ee0ed54592f917c0a2ca39da92  gcc/testsuite/gcc.target/aarch64/csel_bfx_2.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
! 84a090e1555a75d7d6e3d23e245a0d46  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
  a7cc9f628dc551103dcae76f4c42f571  gcc/testsuite/gcc.target/aarch64/csinc-3.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
  50a331be5c5ce2cf83a1e168d92246b2  gcc/testsuite/gcc.target/aarch64/csinv-2.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
! daa118ed7835c32ea71c32e65d22689f  gcc/testsuite/gcc.target/aarch64/csneg-1.c
  51f175c396c9a9a9251dd98f94a7ebf4  gcc/testsuite/gcc.target/aarch64/cssc_1.c
  05ea5743886230b700d9517872bc7739  gcc/testsuite/gcc.target/aarch64/cssc_2.c
  f8584ef5813441112b0bfb8283a130fd  gcc/testsuite/gcc.target/aarch64/cssc_3.c
--- 70784,70797 ----
  e127674777b8d02e7ad1d0d85afb8eda  gcc/testsuite/gcc.target/aarch64/csel_bfx_1.c
  0fcb30ee0ed54592f917c0a2ca39da92  gcc/testsuite/gcc.target/aarch64/csel_bfx_2.c
  0f38f1bf69aced631eb538fe6f944aad  gcc/testsuite/gcc.target/aarch64/csel_imms_inc_1.c
! c3a7b8115754dea15611ee43f3ce2ad6  gcc/testsuite/gcc.target/aarch64/csinc-1.c
  af3d0bc9d40b3fb7c6426688a1d29602  gcc/testsuite/gcc.target/aarch64/csinc-2.c
  a7cc9f628dc551103dcae76f4c42f571  gcc/testsuite/gcc.target/aarch64/csinc-3.c
  eebd6ca7c2a0fe9846bf88388a00d172  gcc/testsuite/gcc.target/aarch64/csinv-1.c
  50a331be5c5ce2cf83a1e168d92246b2  gcc/testsuite/gcc.target/aarch64/csinv-2.c
  6410b551a20f2f0c610819e3d5145b76  gcc/testsuite/gcc.target/aarch64/csinv-neg-1.c
  dee20761ab09d0689a56f667594a30a7  gcc/testsuite/gcc.target/aarch64/csinv-neg.c
! 5fb2d0cfb6a4d733e5e6526abecfbd83  gcc/testsuite/gcc.target/aarch64/csneg-1.c
  51f175c396c9a9a9251dd98f94a7ebf4  gcc/testsuite/gcc.target/aarch64/cssc_1.c
  05ea5743886230b700d9517872bc7739  gcc/testsuite/gcc.target/aarch64/cssc_2.c
  f8584ef5813441112b0bfb8283a130fd  gcc/testsuite/gcc.target/aarch64/cssc_3.c
*************** f8584ef5813441112b0bfb8283a130fd  gcc/te
*** 61344,61354 ****
  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
--- 70799,70812 ----
  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
! 8501198f53731bd7e02e01dcd420970d  gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
  a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/testsuite/gcc.target/aarch64/declare-simd-1.c
! e57188457d19c572c1c7ca575a6aa71b  gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
+ 3488e2eafe407d3b6120c7194ed905bb  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c
+ 69d1e677362acf66e406e0f76cb24fff  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c
+ 44e0ea6a8b4b6be2787d845af653ac9a  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.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/te
*** 61357,61378 ****
  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
--- 70815,70837 ----
  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
! f2c4a1c8449840e049da3e2b01f2ee85  gcc/testsuite/gcc.target/aarch64/eor3-opt.c
! e2b939847435466ae5f175860d954925  gcc/testsuite/gcc.target/aarch64/erratas_opt_0.c
! 1d4d9b9dfc6a10337e12db3aeed04473  gcc/testsuite/gcc.target/aarch64/erratas_opt_1.c
! 5c2a6e6584904f92e18e528293ff7c83  gcc/testsuite/gcc.target/aarch64/erratas_opt_10.c
! dc83763b6362cdb39a4cc881b91963fb  gcc/testsuite/gcc.target/aarch64/erratas_opt_11.c
! 278a4af9ef102a6c75dc38347e0d7fe7  gcc/testsuite/gcc.target/aarch64/erratas_opt_12.c
! a44b525a45e7e6a70406f7e460f58f3e  gcc/testsuite/gcc.target/aarch64/erratas_opt_13.c
! 2177753ba642bbf3c0c3d99711a5b96a  gcc/testsuite/gcc.target/aarch64/erratas_opt_14.c
! 71d221a43d814e1e24417319c2f56b05  gcc/testsuite/gcc.target/aarch64/erratas_opt_15.c
! 963336466ec106da872cb7f403ff17a6  gcc/testsuite/gcc.target/aarch64/erratas_opt_2.c
! e316515df3925eeea508e98eaf4d36cf  gcc/testsuite/gcc.target/aarch64/erratas_opt_3.c
! 11dc64ff66ba9a03832fc8a174141b3a  gcc/testsuite/gcc.target/aarch64/erratas_opt_4.c
! 5663efc9e4355d7937c40712df15ed26  gcc/testsuite/gcc.target/aarch64/erratas_opt_5.c
! c4a779c0dfad47cc3c94584c8284f007  gcc/testsuite/gcc.target/aarch64/erratas_opt_6.c
! c1d4beaa57ab1d5d3ad0e7504bfcfb77  gcc/testsuite/gcc.target/aarch64/erratas_opt_7.c
! 50f5bb1fb7a8cdb83bd2fc246c19d107  gcc/testsuite/gcc.target/aarch64/erratas_opt_8.c
! 08f48c3de5be979d8fe151c8ab964092  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
*************** f9169397bf470048c41876d5ff1f24a7  gcc/te
*** 61412,61423 ****
  75b06b7d31f887b42eaed60fcbd375b5  gcc/testsuite/gcc.target/aarch64/feature-memtag-backport.c
  d256d1ca6afee8c9f035975033b2b6c6  gcc/testsuite/gcc.target/aarch64/feature-sha3-backport.c
  1910bf77e3f13c7816c4d38120f1dabb  gcc/testsuite/gcc.target/aarch64/feature-sm4-backport.c
! 86d107005c385fe3591907b81522aaf8  gcc/testsuite/gcc.target/aarch64/ffs.c
  9c5bbea35483b24fc9a870096facec01  gcc/testsuite/gcc.target/aarch64/fix_extend1.c
  abddc9f1fca0b1871d2b5fa9f425d10a  gcc/testsuite/gcc.target/aarch64/fix_trunc1.c
  08efe84ed3a8a3a4d9a85a6d64eb9cae  gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c
  bd03ecf6b19690f6dc1bbbd227d20b37  gcc/testsuite/gcc.target/aarch64/floatdihf2_1.c
! e72513b4caa62260940a267106d0a423  gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
  d1278d287cb5cdd487a5dc5eb1a39f07  gcc/testsuite/gcc.target/aarch64/fmadd.c
  09f48eba4ef72a066deca3509e7bedca  gcc/testsuite/gcc.target/aarch64/fmaxmin.c
  591fdb9779be4d849e1234f176b71721  gcc/testsuite/gcc.target/aarch64/fmaxnm_1.c
--- 70871,70882 ----
  75b06b7d31f887b42eaed60fcbd375b5  gcc/testsuite/gcc.target/aarch64/feature-memtag-backport.c
  d256d1ca6afee8c9f035975033b2b6c6  gcc/testsuite/gcc.target/aarch64/feature-sha3-backport.c
  1910bf77e3f13c7816c4d38120f1dabb  gcc/testsuite/gcc.target/aarch64/feature-sm4-backport.c
! abd619065b2bb89f1db8ad4689a1764b  gcc/testsuite/gcc.target/aarch64/ffs.c
  9c5bbea35483b24fc9a870096facec01  gcc/testsuite/gcc.target/aarch64/fix_extend1.c
  abddc9f1fca0b1871d2b5fa9f425d10a  gcc/testsuite/gcc.target/aarch64/fix_trunc1.c
  08efe84ed3a8a3a4d9a85a6d64eb9cae  gcc/testsuite/gcc.target/aarch64/float_truncate_zero.c
  bd03ecf6b19690f6dc1bbbd227d20b37  gcc/testsuite/gcc.target/aarch64/floatdihf2_1.c
! aa9467ab274bda62d313ac3b2dc6601b  gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c
  d1278d287cb5cdd487a5dc5eb1a39f07  gcc/testsuite/gcc.target/aarch64/fmadd.c
  09f48eba4ef72a066deca3509e7bedca  gcc/testsuite/gcc.target/aarch64/fmaxmin.c
  591fdb9779be4d849e1234f176b71721  gcc/testsuite/gcc.target/aarch64/fmaxnm_1.c
*************** fd8eaccaf40008c602225ab8f19de8a8  gcc/te
*** 61427,61432 ****
--- 70886,70901 ----
  30e3c44bc534f7de8a54f95076511219  gcc/testsuite/gcc.target/aarch64/fmla_intrinsic_1.c
  a1c65ee205fc9435b83f0955d7d41618  gcc/testsuite/gcc.target/aarch64/fmls.c
  50b074aca322c6ef27dff4382b239263  gcc/testsuite/gcc.target/aarch64/fmls_intrinsic_1.c
+ 687262571a1a236200467b16eceb1c52  gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
+ aff061eacafbdaf6e349cbe277f5bf64  gcc/testsuite/gcc.target/aarch64/fmov-1-le.c
+ d7158a0314465faa26f03807df2f17ae  gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
+ 1780bc2ed9c4427dffcc9b3c129496a7  gcc/testsuite/gcc.target/aarch64/fmov-2-le.c
+ dd020506019bf89a5511e3cfe350b9e5  gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
+ c70f8bcee6928604cec9eee5d5845a3d  gcc/testsuite/gcc.target/aarch64/fmov-3-le.c
+ 4a279f30c36644db5160ed71c99bec8f  gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
+ 150ed79703f567e3bf426a2fc0ea5174  gcc/testsuite/gcc.target/aarch64/fmov-4-le.c
+ 3a24737421bd9ee18c3d06f0f822cf55  gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
+ 25983680f8bb32f72c8c67a2eba60d50  gcc/testsuite/gcc.target/aarch64/fmov-5-le.c
  c4fd6df43c9e9e5b7239b8df0bebf345  gcc/testsuite/gcc.target/aarch64/fmovd-zero-mem.c
  92f126169f4b80f84e3a069a088c9866  gcc/testsuite/gcc.target/aarch64/fmovd-zero-reg.c
  4909e9d6cca81f22114a60c988473146  gcc/testsuite/gcc.target/aarch64/fmovd.c
*************** c3c69a71f2670cdbe2550868228987d2  gcc/te
*** 61440,61445 ****
--- 70909,70920 ----
  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
+ 4b072ad4f5f24b3ae258dfeec3cf71fd  gcc/testsuite/gcc.target/aarch64/fmv_priority.in
+ 676aefd4d27baa1c246f6b3c56b6214e  gcc/testsuite/gcc.target/aarch64/fmv_priority1.c
+ 3d897ec851e12175c8d0dac7529b977d  gcc/testsuite/gcc.target/aarch64/fmv_priority2.c
+ 31553f4e5bc8d8a3220c4e0b6cbd117c  gcc/testsuite/gcc.target/aarch64/fmv_priority3.c
+ 9d04808f7170c3c7496eabf18e6cab74  gcc/testsuite/gcc.target/aarch64/fmv_priority_error1.c
+ 544d40816df6084a30ed483c8626e6c7  gcc/testsuite/gcc.target/aarch64/fmv_priority_error2.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
*************** a1212235242dd12baac6ac6d3f0f04ad  gcc/te
*** 61451,61457 ****
  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
--- 70926,70932 ----
  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
! 19359feeb3591f95935a28b09ce711e5  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
*************** e415b924a99a0696f070ee6cf8357d54  gcc/te
*** 61487,61493 ****
  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
--- 70962,70968 ----
  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
! a3f09a5788feef95b851aa9332288837  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
*************** d4478d5c58fa56a9cc215142b0ce6f2d  gcc/te
*** 61501,61510 ****
  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
--- 70976,70992 ----
  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
! c71f35b136aecc2648340659971fff67  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_rewire.c
  b90f3600518fbc46af4cd4bd1cdb7186  gcc/testsuite/gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c
+ 106284fcb8d4f14b9dfaa01405c56a9c  gcc/testsuite/gcc.target/aarch64/ifunc-resolver-0.c
+ 02a74851ea781f988a2c063092f4e50d  gcc/testsuite/gcc.target/aarch64/ifunc-resolver-1.c
+ 044b0e3e7e02e2c3c57736a3c9881f85  gcc/testsuite/gcc.target/aarch64/ifunc-resolver-2.c
+ daa1ab14a7d07dfaf0acb873c9446480  gcc/testsuite/gcc.target/aarch64/ifunc-resolver-3.c
+ 64c85a93f06cc8113fe1533cf8499d20  gcc/testsuite/gcc.target/aarch64/ifunc-resolver-4.c
+ f35b30ef2635f1e7f2f0073bc1ce518e  gcc/testsuite/gcc.target/aarch64/ifunc-resolver.in
  af0e32f53ec629289269248abb106c2e  gcc/testsuite/gcc.target/aarch64/iinline-attr-1.c
  7673570b4adf4ddf395a94b20d54e4bb  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison-1.c
+ f6cdcf70148922242a9b7462db2e04cb  gcc/testsuite/gcc.target/aarch64/imm_choice_comparison-2.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
*************** e133d603af3ecab67fb41464a457b091  gcc/te
*** 61524,61538 ****
  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/testsuite/gcc.target/aarch64/ldapr-zext.c
  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
--- 71006,71023 ----
  825a05cc66dd3bb694b37457fcfbf490  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
+ 991106b935a581db429c79eb1313b434  gcc/testsuite/gcc.target/aarch64/inszero_split_1.c
  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
! 62c012b4c7538ce969e5111f5f65ea32  gcc/testsuite/gcc.target/aarch64/ldapr-sext.c
  d8466196c5738675b4083dd4447f2cdc  gcc/testsuite/gcc.target/aarch64/ldapr-zext.c
  68214d6b949317dd07f6359cdaaaf7d5  gcc/testsuite/gcc.target/aarch64/ldapr.c
+ 6492402d8581a7944221089a0d003267  gcc/testsuite/gcc.target/aarch64/ldapur.c
+ 7947fa5c9683636bc0e2075dc13f1204  gcc/testsuite/gcc.target/aarch64/ldapur_avoid.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
*************** f63af0e2c637d2d9ca8823625488dcda  gcc/te
*** 61547,61553 ****
  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
--- 71032,71038 ----
  1f6c2cb1d0138cf6fab877c2e97f2ee1  gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
  1df852b19573d2ea3b90e47cd4c3cb14  gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
  ffedc0ef46ae1e25eb82fb4257a7f56e  gcc/testsuite/gcc.target/aarch64/ldp_stp_17.c
! 3a55fffd11d3423c5e90823f9fde479a  gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
  c5975ec22e631fd84b727d806f60c43b  gcc/testsuite/gcc.target/aarch64/ldp_stp_19.c
  a942ef178dbff47e07909da75486489e  gcc/testsuite/gcc.target/aarch64/ldp_stp_2.c
  9e261e1619ca4e81d153ea9758d5be03  gcc/testsuite/gcc.target/aarch64/ldp_stp_20.c
*************** b50e1f81d7305cfe5249cb4bd2be5e6f  gcc/te
*** 61593,61598 ****
--- 71078,71109 ----
  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
+ 8540bb84a700a548a308ce55edcbe16e  gcc/testsuite/gcc.target/aarch64/memtag/alloca-1.c
+ 2de13ace21585ee3fc28086addef5613  gcc/testsuite/gcc.target/aarch64/memtag/alloca-2.c
+ 08559db553386a4e5abd9156d6cf18fe  gcc/testsuite/gcc.target/aarch64/memtag/alloca-3.c
+ b7ef11add7fe67aa82583bd030e7e4d0  gcc/testsuite/gcc.target/aarch64/memtag/arguments-1.c
+ 2f289d1c73f55d3ca6ab4d026dbd5639  gcc/testsuite/gcc.target/aarch64/memtag/arguments-2.c
+ 648dd0befca4c514d5ed932a4f538158  gcc/testsuite/gcc.target/aarch64/memtag/arguments-3.c
+ 24281e882e236cc48318591f07780bf9  gcc/testsuite/gcc.target/aarch64/memtag/arguments-4.c
+ e60f98256d2c3174ee010df8ba0b99d4  gcc/testsuite/gcc.target/aarch64/memtag/arguments.c
+ ca65a1819840555f5018fc3778a8d415  gcc/testsuite/gcc.target/aarch64/memtag/basic-1.c
+ a258103afbe24fca467d43ec89acb4b3  gcc/testsuite/gcc.target/aarch64/memtag/basic-3.c
+ 2dd8ed38c1c49513bc471cca98a64eaf  gcc/testsuite/gcc.target/aarch64/memtag/basic-struct.c
+ 0010c727ea158eafe6796f2c69f4a804  gcc/testsuite/gcc.target/aarch64/memtag/cfi-mte-memtag-frame-1.c
+ 986b9b5a67efd4ea4233b8940ea32760  gcc/testsuite/gcc.target/aarch64/memtag/large-array.c
+ e3454b8aba00fb02bddbd459b5e54489  gcc/testsuite/gcc.target/aarch64/memtag/local-no-escape.c
+ 20c0a290d5ed8b3831a7e6d8edf3c81c  gcc/testsuite/gcc.target/aarch64/memtag/memtag.exp
+ 7113c937818c3dc1312446bbe88d3c2f  gcc/testsuite/gcc.target/aarch64/memtag/mte-sig.h
+ 831f287dd9fa0aaae4de4f92f296f1e1  gcc/testsuite/gcc.target/aarch64/memtag/no-sanitize-attribute.c
+ 26bf3e3e962b2c712ec7fcfa795e5666  gcc/testsuite/gcc.target/aarch64/memtag/texec-1.c
+ 1dc4ec3d04dd74b958bc9846dcf186ba  gcc/testsuite/gcc.target/aarch64/memtag/texec-2.c
+ 7e86151c1b6efd3b3824d31097f4af85  gcc/testsuite/gcc.target/aarch64/memtag/texec-3.c
+ ecbb11b978700a54c48bac46cb92d757  gcc/testsuite/gcc.target/aarch64/memtag/value-init.c
+ 11097c8d1c5fcf869e68abac1250b33b  gcc/testsuite/gcc.target/aarch64/memtag/vararray-gimple.c
+ c42951cba4b532f35f74ae2978d26f1c  gcc/testsuite/gcc.target/aarch64/memtag/vararray.c
+ 5cc15223a1de62d8acb2eea746d6efa2  gcc/testsuite/gcc.target/aarch64/memtag/vla-1.c
+ f8513bf8b3440dcb55c3304490cabb8b  gcc/testsuite/gcc.target/aarch64/memtag/vla-2.c
+ dd25cb10e93fc2aa1601b491a4e85c25  gcc/testsuite/gcc.target/aarch64/memtag/zero-init.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
*************** ec17587eb946389b46a3469b4ec76732  gcc/te
*** 61609,61614 ****
--- 71120,71133 ----
  d2975f7c701c2a4ea6b0a9d184d948aa  gcc/testsuite/gcc.target/aarch64/min_plus_5.c
  6a36a3923a86bb78a9b80e79c524c20f  gcc/testsuite/gcc.target/aarch64/min_plus_6.c
  dca9505b42b2f6c7239de3ce44690e1e  gcc/testsuite/gcc.target/aarch64/min_plus_7.c
+ 5e88c7749f96e67a7b8fcee82a864c48  gcc/testsuite/gcc.target/aarch64/mingw/long_double_size.c
+ d4ac8ae270bd6cc66c3f1a3fd58864e9  gcc/testsuite/gcc.target/aarch64/mingw/mingw.exp
+ aac5b0a2d815cfee6d6e67caa6c7e72a  gcc/testsuite/gcc.target/aarch64/mingw/minimal_new_del.C
+ 7cfd292a52f5e9954493826946105c32  gcc/testsuite/gcc.target/aarch64/mingw/variadic_hfa.c
+ b06138d586b63a143c0e41f96d6b0d0d  gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva1.c
+ 6ff64bc0b14295516d4e07a61038b406  gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva2.c
+ f385eefce3409bb962d35cc652357cc3  gcc/testsuite/gcc.target/aarch64/mingw/variadic_hva3.c
+ 5ae56c00b38446fe95b7db31dae48056  gcc/testsuite/gcc.target/aarch64/mingw/variadic_int.c
  1d85598730d5bd30a9357549e14379f6  gcc/testsuite/gcc.target/aarch64/mla_intrinsic_1.c
  9117b783d4f390342f3a6e2e9f2b230e  gcc/testsuite/gcc.target/aarch64/mls_intrinsic_1.c
  8ae8760a71399434214ac816531278b6  gcc/testsuite/gcc.target/aarch64/mneg-1.c
*************** b8aed2f1d41cb75f276523cd82c36bbb  gcc/te
*** 61689,61696 ****
--- 71208,71263 ----
  475e77af16debcf9fbdd8ee444d9a7a5  gcc/testsuite/gcc.target/aarch64/mult-synth_4.c
  75729350e479bd19e771b32da82d2301  gcc/testsuite/gcc.target/aarch64/mult-synth_5.c
  7109c6ca9fae844ddbfcec4c93ed1ba6  gcc/testsuite/gcc.target/aarch64/mult-synth_6.c
+ 0d2363e48facea886403e856f8475b5b  gcc/testsuite/gcc.target/aarch64/mv-1.c
+ 6e311ae929a4fbc73adb18aa45b88b47  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c
+ 80aca6f2e0f7a4c966345ff9d8e969c2  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c
+ 9766cec2082c416cd130df5c3e56ef8d  gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c
+ 8aea2f025cd62e9c66d390d95805e834  gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c
+ 8ab640b215a17d643ebd05252b57697d  gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c
+ 04b565385646931ad9e6cfc74409c239  gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c
+ 464ac664f36618f84ddfc0f30f65009b  gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c
+ 6026a9f553078fc509e8d93fac0d63c6  gcc/testsuite/gcc.target/aarch64/mv-error1.c
+ 815b4a4a8bd009b919ecedb23e734cd1  gcc/testsuite/gcc.target/aarch64/mv-error10.c
+ 62a84fead9572495d7970fed2b222474  gcc/testsuite/gcc.target/aarch64/mv-error11.c
+ a0a0ad7f8ba90f0f861aa4ead8f00cd8  gcc/testsuite/gcc.target/aarch64/mv-error12.c
+ 5d787ee02076ad662e384afb1f6be29e  gcc/testsuite/gcc.target/aarch64/mv-error2.c
+ f9bb2368707ac00a6620de38f7e42014  gcc/testsuite/gcc.target/aarch64/mv-error3.c
+ 03d34330e3bd067c7120b1231d8e4bd6  gcc/testsuite/gcc.target/aarch64/mv-error4.c
+ 912365e80013e5d775f407b8a8e106fe  gcc/testsuite/gcc.target/aarch64/mv-error5.c
+ 222c7c7780504239d7505b3da613858a  gcc/testsuite/gcc.target/aarch64/mv-error6.c
+ fa1a41aecffccd6cebf6e8ffaf5fce15  gcc/testsuite/gcc.target/aarch64/mv-error7.c
+ 938833518b127d6afd115099a5a32a93  gcc/testsuite/gcc.target/aarch64/mv-error8.c
+ 8dc8d31ccdaad1c8549d61c236532b6f  gcc/testsuite/gcc.target/aarch64/mv-error9.c
+ 39ffd3249f3c91dcbc36c4448b216b0b  gcc/testsuite/gcc.target/aarch64/mv-symbols1.c
+ 8c212d0042ad6b1512f361c7f7e4dede  gcc/testsuite/gcc.target/aarch64/mv-symbols10.c
+ f6a88059abac6448e025c40814c31a17  gcc/testsuite/gcc.target/aarch64/mv-symbols11.c
+ 0b30d501636aa277695b58be578c6307  gcc/testsuite/gcc.target/aarch64/mv-symbols12.c
+ dbde67a5b2eaf033104c747092aacd29  gcc/testsuite/gcc.target/aarch64/mv-symbols13.c
+ c97c73b4747983de1aada63984813b52  gcc/testsuite/gcc.target/aarch64/mv-symbols14.c
+ 225291f8e700a640724d8a6d907b9a1c  gcc/testsuite/gcc.target/aarch64/mv-symbols2.c
+ 30b59341cc714dc412dc546df6149319  gcc/testsuite/gcc.target/aarch64/mv-symbols3.c
+ 9655329e469504b240b4bb2b7c034eb2  gcc/testsuite/gcc.target/aarch64/mv-symbols4.c
+ 6c7eada146d3035c3e43dc616ccc8ef5  gcc/testsuite/gcc.target/aarch64/mv-symbols5.c
+ 113400ac77f6a69e64641498513b190b  gcc/testsuite/gcc.target/aarch64/mv-symbols6.c
+ 72765fee34ea90326489840ba2d35845  gcc/testsuite/gcc.target/aarch64/mv-symbols7.c
+ 7c591b454a4d54108a99632bb728340d  gcc/testsuite/gcc.target/aarch64/mv-symbols8.c
+ 263eb0672cea3e11c7fa0ff71bfc66b3  gcc/testsuite/gcc.target/aarch64/mv-symbols9.c
+ c2bcea3e34ac5aa166a1fe69d0ab446e  gcc/testsuite/gcc.target/aarch64/mvc-error1.c
+ c2bcea3e34ac5aa166a1fe69d0ab446e  gcc/testsuite/gcc.target/aarch64/mvc-error2.c
+ 6398f1b7affb35ce4792917d1813900e  gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c
+ 8dd8156da8c76bfa43fe46b26f93252a  gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c
+ 1dddfdef95889cccff8512fddbe4c9e3  gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c
+ e7fc7805aef84cb0a2c8d05886a042ca  gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c
+ d5401b1ca800e0142c1b5d16be3ddc57  gcc/testsuite/gcc.target/aarch64/mvc-warning1.c
  3151dfcfde3b7d6684635da1ef1cd34b  gcc/testsuite/gcc.target/aarch64/mvn-cmeq0-1.c
  0da02c92f522f70dac5f559b786a6a5b  gcc/testsuite/gcc.target/aarch64/mvn_zero_ext.c
+ ff3ad9c45c4dfa0d8fa4b74eb89ddf3b  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-1.c
+ 7862a768e306a4dfa50081701e7c460f  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-2.c
+ c0921723f41125298bfcb2f99d6e1a7e  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-3.c
+ 9e4f226b3c0763fa681794f0b712e9c2  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-4.c
+ 47b39e9eb26f2b282f0147230216746d  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-5.c
+ bb109097afac3e13d316d2b02cb19eb1  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-6.c
+ 5fcabd9028a5065372e7966d013aa9c3  gcc/testsuite/gcc.target/aarch64/narrow-gp-writes-7.c
  18b4be822d23c74967c07303bd28f766  gcc/testsuite/gcc.target/aarch64/narrow_high-intrinsics.c
  c62a8a637de4eb00aef16c6f2aa34f7e  gcc/testsuite/gcc.target/aarch64/narrow_high_combine.c
  3e63ffed4a3fdf8f59d1d0a5a648365c  gcc/testsuite/gcc.target/aarch64/narrow_zero_high_half.c
*************** face3a8c6631236fedad3dce5526b762  gcc/te
*** 61706,61715 ****
  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
--- 71273,71278 ----
*************** f3b5922b8b4354df5f810cfdcfd0f7e6  gcc/te
*** 61740,61745 ****
--- 71303,71309 ----
  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
+ 8daf2d27f08d7ccca85ae92c69c9127e  gcc/testsuite/gcc.target/aarch64/options_set_30.c
  e721f980e1e7a9648d77300c2f6ea0e5  gcc/testsuite/gcc.target/aarch64/options_set_4.c
  9c2ebf89a44fab00a57afc61e1a1fe86  gcc/testsuite/gcc.target/aarch64/options_set_5.c
  3da7d2bb75f9e314375a2e3a933c689d  gcc/testsuite/gcc.target/aarch64/options_set_6.c
*************** e721f980e1e7a9648d77300c2f6ea0e5  gcc/te
*** 61747,61752 ****
--- 71311,71341 ----
  d28ce23985b773a211ff26743e9e661d  gcc/testsuite/gcc.target/aarch64/options_set_8.c
  55ae452185bb0bb101f614fc4fa21cd9  gcc/testsuite/gcc.target/aarch64/options_set_9.c
  2ba9e0951fadcf5ce5f2eab080c09a68  gcc/testsuite/gcc.target/aarch64/orr_imm_1.c
+ 588d2e2dfdd80b688f338634b7d1dd0e  gcc/testsuite/gcc.target/aarch64/pch/aarch64-pch.exp
+ a6744e260d36942daafb6b2fcf3e4e19  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.c
+ 7b90a6e9d561b2c19e6c612960e8ef70  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle.hs
+ 5a5b4234700c182421280262006aff02  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.c
+ 7b90a6e9d561b2c19e6c612960e8ef70  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_acle_include_post.hs
+ 4478fcdd1aefee96e33faf1c4b60215d  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.c
+ 97e98018fd0a42839432bb5716c601bb  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple.hs
+ 4775f635f85fab86b3e43edddb4d3731  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.c
+ 97e98018fd0a42839432bb5716c601bb  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_multiple_include_post.hs
+ c1cc84ca237825286acc5b291c488ad3  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.c
+ eea843b45fced370cf40e4fd8434b286  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon.hs
+ 66efb2495a5e78783e0592acaf913f90  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.c
+ eea843b45fced370cf40e4fd8434b286  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_include_post.hs
+ 0b52c4a1f6b3f91ec85ce6e2ce5d7f99  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.c
+ c0b11c30b275c5fd2113fe2a4ecac4af  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge.hs
+ 48d3f71076eb2c9a167ad14ae32a23de  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.c
+ c0b11c30b275c5fd2113fe2a4ecac4af  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_neon_sve_bridge_include_post.hs
+ b2bd58eb682ff2375e24885036453e0e  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.c
+ 408bbbd938ffecc7c0bf0e2b87b2864b  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme.hs
+ 6b00da17b87978f4062502ae983d70b2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.c
+ 408bbbd938ffecc7c0bf0e2b87b2864b  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sme_include_post.hs
+ 957c9a141aeddbfd748594553077d14e  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.c
+ 58d8436df4c6af25396ff8f2e09b91c2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve.hs
+ 8e6da171896c5c3446074fa59d4c2cd4  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.c
+ 58d8436df4c6af25396ff8f2e09b91c2  gcc/testsuite/gcc.target/aarch64/pch/pch_arm_sve_include_post.hs
  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
*************** af75b46ad5491c060e4ce3eb0ed013ce  gcc/te
*** 61767,61778 ****
  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
--- 71356,71368 ----
  8b0d385fe1c7d3d070af7c1e30ebc3e3  gcc/testsuite/gcc.target/aarch64/popcnt10.c
  d1b5fb86f3b9b04975e173b6d850c6ba  gcc/testsuite/gcc.target/aarch64/popcnt11.c
  4ca2f39c4f53d62f6d444b1158e2d996  gcc/testsuite/gcc.target/aarch64/popcnt12.c
+ 7fb6d4ae9872ae6b535b09f33ddc3390  gcc/testsuite/gcc.target/aarch64/popcnt13.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
! e5f446ee7a8bf59f8a69767e708fbfb0  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
*************** f3f6d3e236c744bb128945fb5e3609df  gcc/te
*** 61833,61845 ****
  ea64f6f6caa9947f9a065dae92817770  gcc/testsuite/gcc.target/aarch64/pr112406.c
  c83a09a0e16c61674cfbebcc059ceb22  gcc/testsuite/gcc.target/aarch64/pr112573.c
  fb47e676224180b04e459251a5e0250a  gcc/testsuite/gcc.target/aarch64/pr112787.c
  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
--- 71423,71441 ----
  ea64f6f6caa9947f9a065dae92817770  gcc/testsuite/gcc.target/aarch64/pr112406.c
  c83a09a0e16c61674cfbebcc059ceb22  gcc/testsuite/gcc.target/aarch64/pr112573.c
  fb47e676224180b04e459251a5e0250a  gcc/testsuite/gcc.target/aarch64/pr112787.c
+ 912d48bfa0282dfee42cbe04b74efb90  gcc/testsuite/gcc.target/aarch64/pr113027-1.c
+ 6de4dfa6a7668db8e6b259b5b9fd90a6  gcc/testsuite/gcc.target/aarch64/pr113027-2.c
+ 9f3105d6b4abfc3900b4d073cdc99532  gcc/testsuite/gcc.target/aarch64/pr113027-3.c
+ d52678c8336070999a146024b464dd25  gcc/testsuite/gcc.target/aarch64/pr113027-4.c
+ 2b9e884b3ab2566e1626e27c19345ec9  gcc/testsuite/gcc.target/aarch64/pr113027-5.c
+ 71e559353ed378a385d35d71c561dfd6  gcc/testsuite/gcc.target/aarch64/pr113027-6.c
+ c20c32749f133df2c65c8758bcfe6e77  gcc/testsuite/gcc.target/aarch64/pr113027-7.c
  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
  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/te
*** 61847,61852 ****
--- 71443,71449 ----
  5e8481e02f3cfad1b565c1fcf18a51b0  gcc/testsuite/gcc.target/aarch64/pr113613.c
  c3b3090c8cc6b28f90027aceb08f6ad7  gcc/testsuite/gcc.target/aarch64/pr113618.c
  65b79dfa682a9ae7b9e39d7180ffd699  gcc/testsuite/gcc.target/aarch64/pr114196.c
+ 36053cf59cb8f7ed3c6851b00c7a8da0  gcc/testsuite/gcc.target/aarch64/pr114528.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
*************** e95d7302a79bebe0c38e93d641a753d8  gcc/te
*** 61857,61870 ****
  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
--- 71454,71514 ----
  a6d803116c5502ac93d2caf6f0967b1c  gcc/testsuite/gcc.target/aarch64/pr116229.c
  aad77ff8d57a3f0e3712d2f32526716c  gcc/testsuite/gcc.target/aarch64/pr116258.c
  c69e2dc6d322a3ad98f53ae8c628e6fb  gcc/testsuite/gcc.target/aarch64/pr116358.c
+ b3a7bf40d43246be9cd6805bf7c7fe3f  gcc/testsuite/gcc.target/aarch64/pr116815-1.c
+ 13425e50160d38b9018f9b059250ec25  gcc/testsuite/gcc.target/aarch64/pr116815-2.c
+ 6d621bac16b2c458318d29ddbee715e8  gcc/testsuite/gcc.target/aarch64/pr116815-3.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
! 55d3d2a44c366471b3a5bc5c2b176169  gcc/testsuite/gcc.target/aarch64/pr118348_1.c
! cf174bb4218a2ff6650d0ab674702881  gcc/testsuite/gcc.target/aarch64/pr118348_2.c
  5afea9764e794ec9500d7840136687e8  gcc/testsuite/gcc.target/aarch64/pr119046.c
+ 4fb924f3ca58066d57cd648491945933  gcc/testsuite/gcc.target/aarch64/pr120986-1.c
+ 5241d1fa0054bba161f762b7a981eb41  gcc/testsuite/gcc.target/aarch64/pr121240.c
+ 83ac293146b05a62ec4a19e52751ebd1  gcc/testsuite/gcc.target/aarch64/pr121253.c
+ a67b71d65cb6bd7b6c05a378464741e6  gcc/testsuite/gcc.target/aarch64/pr121290_1.c
+ 892174de9af2227aa0fffc09fa6c5597  gcc/testsuite/gcc.target/aarch64/pr121290_2.c
+ 1f51c0f7dbbc3cc0b583f9d52a21505d  gcc/testsuite/gcc.target/aarch64/pr121290_3.c
+ 64cb9b1e14577523fd3ff2306b1eaa44  gcc/testsuite/gcc.target/aarch64/pr121300.c
+ c34d772e393da040a9ab73442d231d49  gcc/testsuite/gcc.target/aarch64/pr121853_1.c
+ bf526d120c538bd714985ac66c46f7bb  gcc/testsuite/gcc.target/aarch64/pr121853_2.c
+ 4821dff6c48b3d6689b8fe50feaeb1c0  gcc/testsuite/gcc.target/aarch64/pr122069_1.c
+ 4c7c0d46a40719aecb2fdb238a2c596c  gcc/testsuite/gcc.target/aarch64/pr122069_2.c
+ fd8128a2ace2daef0e57c5d400699061  gcc/testsuite/gcc.target/aarch64/pr122069_3.c
+ 660be217a5e8446a50ffef18eb8fa6e0  gcc/testsuite/gcc.target/aarch64/pr122069_4.c
+ 00a887e152d5697873b564b81bde2621  gcc/testsuite/gcc.target/aarch64/pr122190.c
+ 79403b7eced8101bc36bd5d2168fe88b  gcc/testsuite/gcc.target/aarch64/pr122675-1.c
+ a3eced7f24ee79ab13a4e8a7aeabda86  gcc/testsuite/gcc.target/aarch64/pr122749_1.c
+ f8e5b1d256eff000dbd7c9ef8dda38f6  gcc/testsuite/gcc.target/aarch64/pr122749_2.c
+ 299e436e943dfdf2fdb89a262f7ad938  gcc/testsuite/gcc.target/aarch64/pr122749_3.c
+ d1f63d3874ca9b62a6ab0001bcda491c  gcc/testsuite/gcc.target/aarch64/pr122749_4.c
+ a46470f241246648914de81c0eb539de  gcc/testsuite/gcc.target/aarch64/pr122749_5.c
+ d40c57c94476edba36e4d35196e3cc09  gcc/testsuite/gcc.target/aarch64/pr122749_6.c
+ 1d285741d4c5d8b352a0c7dc87f62573  gcc/testsuite/gcc.target/aarch64/pr122749_8.c
+ cc264892d43515aac20ba8afaaf15d29  gcc/testsuite/gcc.target/aarch64/pr122749_9.c
+ 43f64e2ecaed3e7e114e33394cdb9066  gcc/testsuite/gcc.target/aarch64/pr122763.c
+ 891d4e0624727f3778442b4412904fe3  gcc/testsuite/gcc.target/aarch64/pr123017_1.c
+ b19750d7ad94a45a0676b41ee667dab7  gcc/testsuite/gcc.target/aarch64/pr123017_2.c
+ f79aeeb83d4a0d143dccfa2cb843cc52  gcc/testsuite/gcc.target/aarch64/pr123017_3.c
+ 2c75a77689a0571c6259e94e431b0462  gcc/testsuite/gcc.target/aarch64/pr123017_4.c
+ 0da69e7d40288cff0a7db38b96b3ffcb  gcc/testsuite/gcc.target/aarch64/pr123017_5.c
+ ec79fa3be7327c757d4abcecfe6afb40  gcc/testsuite/gcc.target/aarch64/pr123017_6.c
+ 3c99f5bd7556f75f513af4ccabe65c85  gcc/testsuite/gcc.target/aarch64/pr123017_7.c
+ b15614b849a2403ba76800ef1356aab5  gcc/testsuite/gcc.target/aarch64/pr123026.c
+ c07ef6a79a7748d8a1cd83670cbc3173  gcc/testsuite/gcc.target/aarch64/pr123094-1.c
+ 98a4eb67a4078cb117ea1c80d44fee14  gcc/testsuite/gcc.target/aarch64/pr123206.c
+ f278ce8788e95ff6c4d2d30e0e50237e  gcc/testsuite/gcc.target/aarch64/pr123238.c
+ 95306727ea8db0e2fdb8e199f754c587  gcc/testsuite/gcc.target/aarch64/pr123285-1.c
+ 3525a5777032197cdd1e39b2aad94c29  gcc/testsuite/gcc.target/aarch64/pr123294-1.c
+ 085f7e2087fb0cf8d5d9a44259bb616c  gcc/testsuite/gcc.target/aarch64/pr123548.c
+ def5c2749854b129e22c1e5c9a817159  gcc/testsuite/gcc.target/aarch64/pr123786.c
+ d5b3fbe2571cb9f95ff3b80e54a79a15  gcc/testsuite/gcc.target/aarch64/pr123791.c
+ 0fb432038c1a084913bbbe8d8d8b8bd8  gcc/testsuite/gcc.target/aarch64/pr123792.c
+ a588c84982135f60225d2a017f7b53df  gcc/testsuite/gcc.target/aarch64/pr124078-1.c
+ 3416e11e7fd77f36803f713303e6145a  gcc/testsuite/gcc.target/aarch64/pr124167.c
+ 092b09603aba6f2d4c58084993c984b1  gcc/testsuite/gcc.target/aarch64/pr124572.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
*************** d8cfefc063686118062e9fc3b774907b  gcc/te
*** 61875,61881 ****
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
  da1fc7d53b5f8b6e99f57a2a7b7ac849  gcc/testsuite/gcc.target/aarch64/pr62262.c
  5b090e5d951a21826fd629be991b5411  gcc/testsuite/gcc.target/aarch64/pr62308.c
! b39607ed8246d1c1e4730c6984888a15  gcc/testsuite/gcc.target/aarch64/pr63304_1.c
  5195785cc7216a9662357829a66aa2c7  gcc/testsuite/gcc.target/aarch64/pr63424.c
  baf71778326c44f90d27479f00af7a63  gcc/testsuite/gcc.target/aarch64/pr63874.c
  193743022291a9918f493ad3090965ec  gcc/testsuite/gcc.target/aarch64/pr64263_1.c
--- 71519,71525 ----
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
  da1fc7d53b5f8b6e99f57a2a7b7ac849  gcc/testsuite/gcc.target/aarch64/pr62262.c
  5b090e5d951a21826fd629be991b5411  gcc/testsuite/gcc.target/aarch64/pr62308.c
! 32cd403212b0827f42a447c050158e6a  gcc/testsuite/gcc.target/aarch64/pr63304_1.c
  5195785cc7216a9662357829a66aa2c7  gcc/testsuite/gcc.target/aarch64/pr63424.c
  baf71778326c44f90d27479f00af7a63  gcc/testsuite/gcc.target/aarch64/pr63874.c
  193743022291a9918f493ad3090965ec  gcc/testsuite/gcc.target/aarch64/pr64263_1.c
*************** b1a43ba633267af53e035e52d824d83e  gcc/te
*** 61884,61889 ****
--- 71528,71534 ----
  c8f85510fcedfd5fda7fe58be4530841  gcc/testsuite/gcc.target/aarch64/pr65235_1.c
  5d760fe6744091dbc9b5e29939f63c7f  gcc/testsuite/gcc.target/aarch64/pr65491_1.c
  fe2dde4dc1496e201292c4be3d1995af  gcc/testsuite/gcc.target/aarch64/pr65624.c
+ f8126237cf26526ae89a038ad613c27b  gcc/testsuite/gcc.target/aarch64/pr66462.c
  4ae80103de3fb651878fcd8edf496474  gcc/testsuite/gcc.target/aarch64/pr66776.c
  6184e08332c62fb090c99cfd6d2518c4  gcc/testsuite/gcc.target/aarch64/pr66912.c
  a134a225066dc537fbe378e60de12e5e  gcc/testsuite/gcc.target/aarch64/pr68102_1.c
*************** ed80808a6a48521e174e06ce44642e0c  gcc/te
*** 61962,61983 ****
  c117eaeade3674a6a21013315de55b26  gcc/testsuite/gcc.target/aarch64/pr99873_1.c
  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
  d0bcbc3d9ff4ecc6817a33d0d9f3aed3  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c
  70cc2797179c765a9f3a6178b9cedc73  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_2.c
  86a8787839e88d2267f016ea88262ae8  gcc/testsuite/gcc.target/aarch64/profile.c
  48d743cb731002c6490f875730d154df  gcc/testsuite/gcc.target/aarch64/reg-alloc-1.c
  74688db113854841ef6e7ea639b44f4c  gcc/testsuite/gcc.target/aarch64/reg-alloc-2.c
  d6af8901d4df3dbbd85fb4a872ad6e99  gcc/testsuite/gcc.target/aarch64/reg-alloc-3.c
! ae41f7b64717901920ce9a6a8098b825  gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
  c27a4c6f9c9e7aee309e6f023d713539  gcc/testsuite/gcc.target/aarch64/reload-valid-spoff.c
  12027036f3324e61c799dd687707f327  gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c
  3a6d132840352f3644dba08c59522fcb  gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c
--- 71607,71636 ----
  c117eaeade3674a6a21013315de55b26  gcc/testsuite/gcc.target/aarch64/pr99873_1.c
  c45bc47433163208f0aec414ada73705  gcc/testsuite/gcc.target/aarch64/pr99873_2.c
  18c52a2faa4e83538abeef107e3b4d8a  gcc/testsuite/gcc.target/aarch64/pr99873_3.c
! ae5cf71ae02c3cde7a67cfb54ec03bbe  gcc/testsuite/gcc.target/aarch64/pr99988.c
  6abd9df2e9c6482903f6b17629c288d1  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
  be30d927e2df67d4fe2786d0d026bbaa  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  38af83405c4b19363e539e8f2589d817  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
! 972a5c7af8c5f5f358e348fde045bc9c  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
! b5ff836b5a987f9feaf35c5f8ec9f4db  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.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
+ da19e78ba6b795bf6d056fba82d425f7  gcc/testsuite/gcc.target/aarch64/preserve_none_1.c
+ e8cef49c693fcaea364b5c6a5f1b0ba5  gcc/testsuite/gcc.target/aarch64/preserve_none_2.c
+ 6666e04f1fc6734c26f86b5bcfb57eaa  gcc/testsuite/gcc.target/aarch64/preserve_none_3.c
+ 81531e915fe63718751a4ae5e0976253  gcc/testsuite/gcc.target/aarch64/preserve_none_4.c
+ ca87a92f658f31bd2868ad52e53005a1  gcc/testsuite/gcc.target/aarch64/preserve_none_5.c
+ 5fba9467f68256235ee9fec318000547  gcc/testsuite/gcc.target/aarch64/preserve_none_6.c
+ ed3b3e076aa90a5fdffe91d0217a74e8  gcc/testsuite/gcc.target/aarch64/preserve_none_mingw_1.c
  d0bcbc3d9ff4ecc6817a33d0d9f3aed3  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c
  70cc2797179c765a9f3a6178b9cedc73  gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_2.c
  86a8787839e88d2267f016ea88262ae8  gcc/testsuite/gcc.target/aarch64/profile.c
  48d743cb731002c6490f875730d154df  gcc/testsuite/gcc.target/aarch64/reg-alloc-1.c
  74688db113854841ef6e7ea639b44f4c  gcc/testsuite/gcc.target/aarch64/reg-alloc-2.c
  d6af8901d4df3dbbd85fb4a872ad6e99  gcc/testsuite/gcc.target/aarch64/reg-alloc-3.c
! 0ab15f2e56392789e6c87021dce0be6f  gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
  c27a4c6f9c9e7aee309e6f023d713539  gcc/testsuite/gcc.target/aarch64/reload-valid-spoff.c
  12027036f3324e61c799dd687707f327  gcc/testsuite/gcc.target/aarch64/return_address_sign_1.c
  3a6d132840352f3644dba08c59522fcb  gcc/testsuite/gcc.target/aarch64/return_address_sign_2.c
*************** b6a18fb1ecc9f56b3894553675bc0455  gcc/te
*** 61988,62011 ****
  4c29e6ea2fa29c84d350a343b163fe54  gcc/testsuite/gcc.target/aarch64/return_address_sign_builtin.c
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
  2f04362c27a9d92b5c3630595d13128b  gcc/testsuite/gcc.target/aarch64/rev16_2.c
  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
  a93f1f3ea917533aaecb0c213be0f4d9  gcc/testsuite/gcc.target/aarch64/set_fpsr64_1.c
--- 71641,71667 ----
  4c29e6ea2fa29c84d350a343b163fe54  gcc/testsuite/gcc.target/aarch64/return_address_sign_builtin.c
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
  2f04362c27a9d92b5c3630595d13128b  gcc/testsuite/gcc.target/aarch64/rev16_2.c
+ 9d675c0fb01039b325cce7ecf1d17cbb  gcc/testsuite/gcc.target/aarch64/rev_32_1.c
+ 120ae9c510685fac18aa061aeb3b7517  gcc/testsuite/gcc.target/aarch64/rev_32_2.c
+ 590e0c1306f1f77443c03492cf102a50  gcc/testsuite/gcc.target/aarch64/rev_32_3.c
  a6b0a3d46a5a5170f93dc87f2d7171b5  gcc/testsuite/gcc.target/aarch64/ror.c
! de3baab34a4f59a99dc737c4063eb91d  gcc/testsuite/gcc.target/aarch64/ror_2.c
  6a7b4c2858dc4092dd8e5eead61374c3  gcc/testsuite/gcc.target/aarch64/ror_3.c
  d67c6012aab7b0d167366ecd8d9c9f29  gcc/testsuite/gcc.target/aarch64/rot_to_bswap.c
! 84df7bd8d598e8ef1bbd0fad51087fcc  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
! 7dc0c6fbdfe9de9534488f6d2eafd666  gcc/testsuite/gcc.target/aarch64/saturating_arithmetic_1.c
! 4cc8787e94dcc4ba1da1673dd910986e  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
! 49520376acef3c7fb07d0bdd6ead705b  gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c
! 2fc6ff8843a82335d82fabde33dbe9e5  gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c
  b0af57cfaade3214be10647c1c8b885d  gcc/testsuite/gcc.target/aarch64/sdiv_costs_1.c
  3e8ce149782bdd987aa781b057d78ceb  gcc/testsuite/gcc.target/aarch64/set_fpcr64_1.c
  a93f1f3ea917533aaecb0c213be0f4d9  gcc/testsuite/gcc.target/aarch64/set_fpsr64_1.c
*************** b44e92a535087a99a3ac716388f1c979  gcc/te
*** 62016,62032 ****
  19f17e7dd89f8110e5c9f67f57238f8a  gcc/testsuite/gcc.target/aarch64/sha2_2.c
  ce1f8e207a7a24660c494ecf8dd545c2  gcc/testsuite/gcc.target/aarch64/sha2_3.c
  b6aa615b85ae40b63a22dbc7071fd902  gcc/testsuite/gcc.target/aarch64/sha3.h
! 32f4f51563b0d7be120e5d5009ab1e3e  gcc/testsuite/gcc.target/aarch64/sha3_1.c
! b452d4c86751bd11bf03b8ca21d25bf4  gcc/testsuite/gcc.target/aarch64/sha3_2.c
! 7bbc7a27b67681b713096a7ab9ed18a3  gcc/testsuite/gcc.target/aarch64/sha3_3.c
! 720a26afca0daa0c0583c3cbf5f2c7d0  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_1.c
! e35638303a0cd435f199e6e2d3d6e7c6  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_2.c
! 426a463bcea5af95b04b1d22b1bbacc9  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_3.c
! a363537d70052012f4777fd050c01616  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_4.c
! 15ab2e89615616e6256107a14fec5826  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c
! 50727fb397c1155a47819bce866a95bf  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c
! 02194799b94f05acf17b63ab5c06347f  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c
! 18c96dea861729b7500d35a579132122  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c
  a165f88ed1988f9840bbb02ea02df7de  gcc/testsuite/gcc.target/aarch64/shift_and_operator-1.c
  8944288dbff8e1e27c9948e6640f93d5  gcc/testsuite/gcc.target/aarch64/shift_wide_invalid_1.c
  82788cbb043cb268dfa4db7129b0952a  gcc/testsuite/gcc.target/aarch64/shl-combine-2.c
--- 71672,71688 ----
  19f17e7dd89f8110e5c9f67f57238f8a  gcc/testsuite/gcc.target/aarch64/sha2_2.c
  ce1f8e207a7a24660c494ecf8dd545c2  gcc/testsuite/gcc.target/aarch64/sha2_3.c
  b6aa615b85ae40b63a22dbc7071fd902  gcc/testsuite/gcc.target/aarch64/sha3.h
! 0e1d7a62f7703b3f36fc44bcf4596484  gcc/testsuite/gcc.target/aarch64/sha3_1.c
! 14eadc9c0aa9df2274e0d27fdd199be8  gcc/testsuite/gcc.target/aarch64/sha3_2.c
! 7cd7f2ba7ac06db85b53e098824fe6c9  gcc/testsuite/gcc.target/aarch64/sha3_3.c
! 8290b001857e70f2bb00f9e9980ea2f1  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_1.c
! d1691b06335c7599e23fe146c1e9bf0d  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_2.c
! 2b4c1d692aa2c1f603c926f7a2622b73  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_3.c
! 6aed31210dfd913f96ccd1b464ac2424  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_4.c
! 2806254d55378ae16f07f3f0c3bfd53e  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_5.c
! f5d057a98c1e37c0afb2e8ff06734df1  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_6.c
! c405a6381ecd38226656193a872614d6  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_7.c
! b561dd4fb4871240c2f7d5ed61ad7bf3  gcc/testsuite/gcc.target/aarch64/shadow_call_stack_8.c
  a165f88ed1988f9840bbb02ea02df7de  gcc/testsuite/gcc.target/aarch64/shift_and_operator-1.c
  8944288dbff8e1e27c9948e6640f93d5  gcc/testsuite/gcc.target/aarch64/shift_wide_invalid_1.c
  82788cbb043cb268dfa4db7129b0952a  gcc/testsuite/gcc.target/aarch64/shl-combine-2.c
*************** df616b441a15b0fdbf888d04c5fe95fb  gcc/te
*** 62047,62053 ****
  9e585f963d3e92c62da9f74870533f70  gcc/testsuite/gcc.target/aarch64/shrn-combine-9.c
  61520e36e20fbdca6fded10ce66f096c  gcc/testsuite/gcc.target/aarch64/signbit-1.c
  d6d84820bf58577dda59d8f5e7e556f1  gcc/testsuite/gcc.target/aarch64/signbit-2.c
! 7378ad57a7e281bf3f87ce9a0d494e69  gcc/testsuite/gcc.target/aarch64/signbitv2sf.c
  d2757938fad3b14f583150a49e03367e  gcc/testsuite/gcc.target/aarch64/signbitv4sf.c
  b3b3cf4271262efc97f836f3073eda48  gcc/testsuite/gcc.target/aarch64/simd/addlv_1.c
  ec1e7259ab590008de3be293d2d948c0  gcc/testsuite/gcc.target/aarch64/simd/addlv_zext.c
--- 71703,71709 ----
  9e585f963d3e92c62da9f74870533f70  gcc/testsuite/gcc.target/aarch64/shrn-combine-9.c
  61520e36e20fbdca6fded10ce66f096c  gcc/testsuite/gcc.target/aarch64/signbit-1.c
  d6d84820bf58577dda59d8f5e7e556f1  gcc/testsuite/gcc.target/aarch64/signbit-2.c
! 7b3d0bb71a1cc12f48302e6738f9c6f0  gcc/testsuite/gcc.target/aarch64/signbitv2sf.c
  d2757938fad3b14f583150a49e03367e  gcc/testsuite/gcc.target/aarch64/signbitv4sf.c
  b3b3cf4271262efc97f836f3073eda48  gcc/testsuite/gcc.target/aarch64/simd/addlv_1.c
  ec1e7259ab590008de3be293d2d948c0  gcc/testsuite/gcc.target/aarch64/simd/addlv_zext.c
*************** ec1e7259ab590008de3be293d2d948c0  gcc/te
*** 62055,62060 ****
--- 71711,71720 ----
  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
+ 72be1ebc64d79e94982f9d78b63cf762  gcc/testsuite/gcc.target/aarch64/simd/bcax_d.c
+ 0ec852a5bebc92dc4db3c9cef0bf4621  gcc/testsuite/gcc.target/aarch64/simd/bic_orn_1.c
+ 01b72f15b2160b080aed7f803e4707ac  gcc/testsuite/gcc.target/aarch64/simd/combine_ext.c
+ 16006fd02427e5686f254ac115ef7715  gcc/testsuite/gcc.target/aarch64/simd/eor3_d.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
*************** e21253a0b461c19afa3bd87ea01f5460  gcc/te
*** 62105,62110 ****
--- 71765,71776 ----
  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
+ 8da4ebe81998ed1bfd39b7435e9f9076  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_1.c
+ 048c05fd5d8a233357c18cd4fac0af1d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_2.c
+ 231fbc62550eac68af09fe0296ecc2b7  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_3.c
+ 597879377be3eeffce3944b61e8c8aec  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_4.c
+ cddb2940de62ee127a5f70eb1ee8525d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c
+ 2e0c31554895b90848474b60de0e3b87  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_6.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
  f1c9e2aa3c435c9efdc1ea83da4e1eeb  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_2.c
*************** df08a7f1b91a8c0f914aab7f291c95e7  gcc/te
*** 62113,62122 ****
  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
--- 71779,71789 ----
  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
! 490999093edf0ba9bd6941da62d8c8cd  gcc/testsuite/gcc.target/aarch64/simd/mf8_data_1.c
  7a8dbe7357968ea67da61dae6606ebcd  gcc/testsuite/gcc.target/aarch64/simd/mf8_data_2.c
! 77bcecb95fea0e774f3b59d6735b0334  gcc/testsuite/gcc.target/aarch64/simd/pr117048.c
  2797bd4410da16b66ebb2f474c595ee5  gcc/testsuite/gcc.target/aarch64/simd/pr117048_2.c
+ 67e9f00dffaa6f894241ef054cf29a1e  gcc/testsuite/gcc.target/aarch64/simd/pr121749.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
*************** afa7e585db839996b7ab991a21ae5c22  gcc/te
*** 62137,62147 ****
  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
! 620e5ff16ce4b53a27dc1881cdbb5e4b  gcc/testsuite/gcc.target/aarch64/simd/vabal_combine.c
  433cb4ec4520c807f8d4a73e400502ae  gcc/testsuite/gcc.target/aarch64/simd/vadd_poly_1.c
  674bb632e572dd98991d41294ce32e90  gcc/testsuite/gcc.target/aarch64/simd/vaddlv_1.c
  644c7b6ceda9f8b60fb839e127602e3c  gcc/testsuite/gcc.target/aarch64/simd/vbsl_f64_1.c
--- 71804,71815 ----
  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
! 49c23dcae2e2d311e0f4fe9e8c7c0993  gcc/testsuite/gcc.target/aarch64/simd/shrn2subhn.c
! 798f0a97a5a7e31d999b8826e2a534a9  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
! 696125d25702feaec88cb8239775e1a2  gcc/testsuite/gcc.target/aarch64/simd/usubl2.c
  433cb4ec4520c807f8d4a73e400502ae  gcc/testsuite/gcc.target/aarch64/simd/vadd_poly_1.c
  674bb632e572dd98991d41294ce32e90  gcc/testsuite/gcc.target/aarch64/simd/vaddlv_1.c
  644c7b6ceda9f8b60fb839e127602e3c  gcc/testsuite/gcc.target/aarch64/simd/vbsl_f64_1.c
*************** eb612e50dff956594dedc023c01c005d  gcc/te
*** 62534,62549 ****
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
  d1a781848976d72dd29ad2008392d1ea  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
! 96b414deb2ef664ef0e319c9d099a140  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
  6a557c704c6bec3b13f23ea346e9813c  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  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
--- 72202,72217 ----
  9ed21057ed9603af458520370acef207  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
  d1a781848976d72dd29ad2008392d1ea  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
  e24e752cdfaae08d96c7ec56c0ef75fd  gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
! 8c5c95b1adf034575e4c12451b3fe9a1  gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c
  1720e6906e4df69467a464d77453cbb9  gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c
  6a557c704c6bec3b13f23ea346e9813c  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
  ea10ab0509dcbe5d25695d4b7db37790  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
  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
! d605cc6f43e7d0f49fb2237cae418d2e  gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
  95e880a9b2777120f2cedeadb9eff8ee  gcc/testsuite/gcc.target/aarch64/sm3_sm4.c
! 2f33bc410968f18e5627aaac988da1a2  gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme-acle-asm.exp
! 1851a1ed8e4d98a6ce6469f324ce2c34  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
*************** adca2f981624506582c96131391eaa05  gcc/te
*** 62589,62597 ****
  6eed916e46e887f59effeb7f2397fe99  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za64.c
  9e20e21d6b32e47a2f99ed5f7fa4123d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za8.c
  ca37cd4da880af941c271dbc05e04bdb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_s.c
! 3a62e9f46e3206db1e44a67d2cc47e52  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_sc.c
  a7d999a2574d1cc57f0543781f520910  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_s.c
! 589bf1cb46f51f14f8000e84a2288243  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_sc.c
  689872f2851b269fd85891987f813e43  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za32.c
  6ca41c0f301e40b5141dc795c89d1981  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za64.c
  c2e981bc8504bd54c6bc37823e964cfb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za32.c
--- 72257,72265 ----
  6eed916e46e887f59effeb7f2397fe99  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za64.c
  9e20e21d6b32e47a2f99ed5f7fa4123d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za8.c
  ca37cd4da880af941c271dbc05e04bdb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_s.c
! edd51597a3210034715bf6254cb6f1e0  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_sc.c
  a7d999a2574d1cc57f0543781f520910  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_s.c
! 2fc173de1b80ed91d7e5ff88ce5ca4db  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_sc.c
  689872f2851b269fd85891987f813e43  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za32.c
  6ca41c0f301e40b5141dc795c89d1981  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za64.c
  c2e981bc8504bd54c6bc37823e964cfb  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za32.c
*************** da7e2bf92e718d8da2021eafd533aac9  gcc/te
*** 62604,62631 ****
  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
  30178df775f7eeeccabf84a70732b6d1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za64.c
! 1af84d56dda07892566ba3ff4598ae4c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za8.c
! 7be891326b4081f07577a68a4e0d4b51  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za128.c
  db7ec863bbc5f42e3eaaf7d41c078f60  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za16.c
  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
--- 72272,72300 ----
  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
! 3176b0aaac0729f782c2981b152b2838  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
  30178df775f7eeeccabf84a70732b6d1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za64.c
! 9bbdbd2f4f7223e441b51e06fde3d217  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za8.c
! 1aee9629c3ec0e9a320b0d1e545e3841  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za128.c
  db7ec863bbc5f42e3eaaf7d41c078f60  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za16.c
  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
! dbc86278f829fba89a0fe31c897fefe7  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
! 3d25db1ad0afebd094545ea84e5f3aae  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_bf16.c
! 840005f252294243ace12ff7d5c6ef0a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f16.c
! ce7f61fdd320c854577401af81f7c2d4  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f32.c
! 24ddf3db4f334ebe87c4dacc577c50a1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_f64.c
! 589e8495ffffaa00332f61fd0e70587b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_mf8.c
! 91a6c7952a3e12c0dc12f395162fae56  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s16.c
! 140dea06c2a63f12aa1cfeae3b45a418  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s32.c
! 4d1a33db10b9d8309a31c0d67aa11be8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s64.c
! b484f4e09608622165b4b3ff193dad13  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_s8.c
! 460c33ca47010b78e006ddface805b08  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u16.c
! 9e58a54ddefabef835a663a6e4ad220e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u32.c
! 420869caff110ba03a219c0dbb0d6f6a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/revd_u64.c
! 18e20b3d14d5d844ff81a8286d4363fd  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
*************** afe5f92fba438a5edf0ca3d4ee4f6cfa  gcc/te
*** 62647,62689 ****
  b2fc6537ae3c1d84e8716570b5d7d886  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za64.c
  a66e4dda27a961dc538b08fa7707a40a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za8.c
  3383963da499e0b608220c4696a1e0dd  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_s.c
! 121651e9287f886b738ec261b51bc7df  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_sc.c
  b8cc2e9d88a0a16faa538934b519cf89  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_s.c
! 80fa7369c2170c75856dcfe3fd5e7060  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_sc.c
  884ad364bb1ee23f5265448ecc43dc16  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za32.c
  3e205476351a45bf8306b7e60c397b11  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za64.c
  fa1cc0af91efbfbe4114931cd0014196  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za32.c
  950f4c612e85d459a5680f63cea26930  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za64.c
! 4d1fb7432458952bb9ff41df13f2c2e5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/test_sme_acle.h
  751ac5c0bca8fa2442b9cc92355f0bb1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/undef_za.c
  8b4bf8582e42d9776dbf25df79244f31  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za32.c
  cbdfbc444eb1d7272d5ea088132d03e1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za64.c
  9a90415d76c978c2a518d07445500729  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za32.c
  ccd27a6410d0b8d06baa13f3b77e3f6b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za64.c
! 2aeebf3cb36e9041a437578eb1bcaf14  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za128.c
  ea94fdd9a03eec3b7233f34dcd984904  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za16.c
  da72391aef5386ede43d8abba91108bc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za32.c
  373b2be3979a0e482990678e58ead6f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za64.c
! bce80ec3805c30acfd6ac59e2f0fed54  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za8.c
! e4e174198cf387557de99fcff7e17e47  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za128.c
  f148fda3adffbb0b0223fa8587320002  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za16.c
  1e9f4355184d9731ee41cc213447b4a5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za32.c
  afe62fa89b5483576738572de037298b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za64.c
! 5174cd33cb05315c467a5cbabefa3c0e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za8.c
  7ebbe5326f328e43b785fd6ee8bd7f7d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_mask_za.c
  29c4dd1f8bae70ea4c5926d2fc011e3e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_za.c
  d6f0c95fd7a6f5179274aac3f6cc20c4  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_1.c
  dadcd855a787ed42d61441acfdf07035  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_2.c
  ee7a30eb13293817fbc0761ba471e1dc  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_3.c
! 20f0fd449cd7c00774afe0e41e6b997a  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_1.c
  84feb7d27fbd53171100e87b74c92cb0  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_10.c
! d97792582b32991bd0603548569a5a10  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_11.c
  11e2ce1b161d5c2f033e70deb98ef99d  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_2.c
! 484b7eb2527c452159f353eabdaf3c5a  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_3.c
  c383c91adda41f85554329e5922e2985  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_4.c
! 515b852d1df6173cbfe26c7630a4f25e  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
  4e2634a31bc12398a54af681595dc441  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5_scp.c
! 35854782f79aaf94cc1b5dfccec50023  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_6.c
  ae1c24c734208ab54ab2b41e77807099  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_7.c
  0b857738a499c8c5fc14530a95778882  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
  1e94c17baaf235985865fcc0080d29aa  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
--- 72316,72361 ----
  b2fc6537ae3c1d84e8716570b5d7d886  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za64.c
  a66e4dda27a961dc538b08fa7707a40a  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za8.c
  3383963da499e0b608220c4696a1e0dd  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_s.c
! 75cbaaf497f46c1508c4f1298308f31e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_sc.c
  b8cc2e9d88a0a16faa538934b519cf89  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_s.c
! d4738e439979d5bfb2d5ba22153afc41  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_sc.c
  884ad364bb1ee23f5265448ecc43dc16  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za32.c
  3e205476351a45bf8306b7e60c397b11  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za64.c
  fa1cc0af91efbfbe4114931cd0014196  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za32.c
  950f4c612e85d459a5680f63cea26930  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za64.c
! 59c5606f5bea6e7ae5e3300d832d0717  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/test_sme_acle.h
  751ac5c0bca8fa2442b9cc92355f0bb1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/undef_za.c
  8b4bf8582e42d9776dbf25df79244f31  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za32.c
  cbdfbc444eb1d7272d5ea088132d03e1  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za64.c
  9a90415d76c978c2a518d07445500729  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za32.c
  ccd27a6410d0b8d06baa13f3b77e3f6b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za64.c
! 1f07fb9ae14e83845a9b72bb95bcac81  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za128.c
  ea94fdd9a03eec3b7233f34dcd984904  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za16.c
  da72391aef5386ede43d8abba91108bc  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za32.c
  373b2be3979a0e482990678e58ead6f8  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za64.c
! 8427e6a1850599d75d3563aac21ce43c  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za8.c
! 889c793a830b2028dea7c59efabfe26e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za128.c
  f148fda3adffbb0b0223fa8587320002  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za16.c
  1e9f4355184d9731ee41cc213447b4a5  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za32.c
  afe62fa89b5483576738572de037298b  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za64.c
! 70aaa36332d7cdcf09b41a5149f98090  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za8.c
  7ebbe5326f328e43b785fd6ee8bd7f7d  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_mask_za.c
  29c4dd1f8bae70ea4c5926d2fc011e3e  gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_za.c
  d6f0c95fd7a6f5179274aac3f6cc20c4  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_1.c
  dadcd855a787ed42d61441acfdf07035  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_2.c
  ee7a30eb13293817fbc0761ba471e1dc  gcc/testsuite/gcc.target/aarch64/sme/arm_neon_3.c
! dfeb9468e1b18f8f90c9751f42f42c04  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_1.c
  84feb7d27fbd53171100e87b74c92cb0  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_10.c
! 474123d4ffaf34a7e158ae1e06a11311  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_11.c
! 276cb8cddf1e61aee496b874b1944dc6  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_11_nosve.c
! 07e98f7f643b7f1d820fc85fafad17c1  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_1_nosve.c
  11e2ce1b161d5c2f033e70deb98ef99d  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_2.c
! 138b6fa9dabf69c0fa68c3594c8c617a  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_3.c
! 977a5ac4cbdd2c59504cec4c27eed7da  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_3_nosve.c
  c383c91adda41f85554329e5922e2985  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_4.c
! 1ec3c2e5b7fddab8d19e9e73dd2856d4  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
  4e2634a31bc12398a54af681595dc441  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5_scp.c
! 95b19a0fcbe47cf208127ca4474c2639  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_6.c
  ae1c24c734208ab54ab2b41e77807099  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_7.c
  0b857738a499c8c5fc14530a95778882  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
  1e94c17baaf235985865fcc0080d29aa  gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
*************** b1a33a791c89383f575f412606f068a3  gcc/te
*** 62693,62700 ****
  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
  879f8cbda3bac2a9515ac7b25fe72355  gcc/testsuite/gcc.target/aarch64/sme/inlining_12.c
  cf0ef9d94d28540fd020773ed51d6006  gcc/testsuite/gcc.target/aarch64/sme/inlining_13.c
  bd862476d0822e624003a284b6549ab7  gcc/testsuite/gcc.target/aarch64/sme/inlining_14.c
--- 72365,72372 ----
  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
! 6c03deff04e9af5b436db5415f96f864  gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c
! f45b72225fb0d71f35b6a6b77c7cb8b8  gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c
  879f8cbda3bac2a9515ac7b25fe72355  gcc/testsuite/gcc.target/aarch64/sme/inlining_12.c
  cf0ef9d94d28540fd020773ed51d6006  gcc/testsuite/gcc.target/aarch64/sme/inlining_13.c
  bd862476d0822e624003a284b6549ab7  gcc/testsuite/gcc.target/aarch64/sme/inlining_14.c
*************** e8f3940401f61957e271283ead08f9df  gcc/te
*** 62706,62727 ****
  8e5db10a32a8ef428edb2cb2171af8b3  gcc/testsuite/gcc.target/aarch64/sme/inlining_6.c
  4b42b91f7c58b38a6117a5c277e18f5a  gcc/testsuite/gcc.target/aarch64/sme/inlining_7.c
  07e3d6d42e241c26ef2af7d1e45830cb  gcc/testsuite/gcc.target/aarch64/sme/inlining_8.c
! 181e43a1fdbcc5f311e49c4511f67d15  gcc/testsuite/gcc.target/aarch64/sme/inlining_9.c
  b3810edd100268236942967f1ddc5f1c  gcc/testsuite/gcc.target/aarch64/sme/keyword_macros_1.c
! 14a65a5144a79377e26550f0795bb4de  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
  26c5b65254a5e6fffb46740bb729dcde  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_scp.c
  c9d369dea4ca29ccd648d788cfb8ea09  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_ts.c
  8b77b15e6a3831e3b0fed7e89decf181  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_2.c
  1cac7b6477b6f8a18e8af2c0382a7c19  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_3.c
  bbf6f844429d0a09aa8e59fff5c21e3e  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_4.c
! 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
! adb1015c9aa632296ceca120cacf20e3  gcc/testsuite/gcc.target/aarch64/sme/pr121028.c
  b4e79a733b5f7121eaeed1af03f9454b  gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
  e1bebbe2531d4c2ec4fb9cfa4437f1cb  gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
  fab5f8d90e717b628f306df26d55a4c6  gcc/testsuite/gcc.target/aarch64/sme/sibcall_3.c
--- 72378,72401 ----
  8e5db10a32a8ef428edb2cb2171af8b3  gcc/testsuite/gcc.target/aarch64/sme/inlining_6.c
  4b42b91f7c58b38a6117a5c277e18f5a  gcc/testsuite/gcc.target/aarch64/sme/inlining_7.c
  07e3d6d42e241c26ef2af7d1e45830cb  gcc/testsuite/gcc.target/aarch64/sme/inlining_8.c
! 1f4fd6ac1194382f19cfb0c1abb67f01  gcc/testsuite/gcc.target/aarch64/sme/inlining_9.c
  b3810edd100268236942967f1ddc5f1c  gcc/testsuite/gcc.target/aarch64/sme/keyword_macros_1.c
! 3cfd28c478957407a1a22a25631e018b  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
! 03c37ea9cd6945db11f3c43a838afd20  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_nosve.c
  26c5b65254a5e6fffb46740bb729dcde  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_scp.c
  c9d369dea4ca29ccd648d788cfb8ea09  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1_ts.c
  8b77b15e6a3831e3b0fed7e89decf181  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_2.c
  1cac7b6477b6f8a18e8af2c0382a7c19  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_3.c
  bbf6f844429d0a09aa8e59fff5c21e3e  gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_4.c
! d58cb56f27af67ddaa9934aaac02fa57  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
! d17183152eaebed55ce739c38fbe9dc7  gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
! e41817248a56088fa5916baafe036a84  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
! e313bd6c063889c99f5705a3a6eb1bc3  gcc/testsuite/gcc.target/aarch64/sme/pr121028.c
! 7d97d6a94b7d56da78720f808e65bcff  gcc/testsuite/gcc.target/aarch64/sme/pr121414_1.c
  b4e79a733b5f7121eaeed1af03f9454b  gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
  e1bebbe2531d4c2ec4fb9cfa4437f1cb  gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
  fab5f8d90e717b628f306df26d55a4c6  gcc/testsuite/gcc.target/aarch64/sme/sibcall_3.c
*************** fdf31615d4c23a6cda30ff2ff1493fcd  gcc/te
*** 62733,62747 ****
  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
--- 72407,72422 ----
  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
! 4d9577c81fc117dbb22c930c6def7e07  gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
! b7af7bf902560e918072ce4f6b182b36  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
! d56377ce5d6b9441de3a3319a04b09f9  gcc/testsuite/gcc.target/aarch64/sme/vect-dotprod-twoway.c
! ab196fc9c4bb32d83b8374173cb42642  gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
! ba4e617407787f350ba9873a5fc9a297  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
*** 62755,62761 ****
  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
--- 72430,72436 ----
  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
! a26d70a476bb46f4e4d73a7dc2170773  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
*************** af0c9bfd94289339a9a89b18b0914058  gcc/te
*** 62796,62801 ****
--- 72471,72488 ----
  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
+ f48bd16a939e9ab82b7b537be31cdcb6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f16_x2.c
+ cb39bafd7f1ec3a1b9fae6e8ac98273d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f16_x4.c
+ e6bc896f638dea3004486e0bff469448  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f32_x2.c
+ ba4fa24b421dafca0a6d3a277452e783  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f32_x4.c
+ a33eee480aed958d313c8f08a6b7721e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f64_x2.c
+ e8b0e1743305b67cb519f685dca1dae8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amax_f64_x4.c
+ 9280b2c1b1bafc15611e88c7c0fbac05  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f16_x2.c
+ 2fc4b95001dcdffdf448c8326ced5948  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f16_x4.c
+ 04ed1f401c315abfa915f6cd37e9e312  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f32_x2.c
+ 0837f1f391961e96e8408427fc53fe27  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f32_x4.c
+ f0d8dc407890f68e1ecf65f3ffce52f9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f64_x2.c
+ b0f91f85afc32cc5f62e3990d1d2456a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/amin_f64_x4.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
*************** ba056a05a11764def1104c2563563d51  gcc/te
*** 62840,62860 ****
--- 72527,72557 ----
  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
  84da17a32976df75d7f7fa54f68383d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_f32_u32_x4.c
+ 7f1e19ba0807e583ef485b980c468b46  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c
+ 3ab577ce7c7552174f605a735650ed3e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c
+ d8474c5f45e12eed9c464867f2cc7612  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c
+ 204478c3aea054e20bc973139f7426db  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c
  cd04bfeb885395f8141a5eb5e79d513b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_s32_f32_x2.c
  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
+ 90742e69be923e36837dbd965e837a62  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_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
+ 64d67aad8d75b51ca4e234428bf37b8e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c
  6d2e06bbf42e9a73d30281a2ef54d819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_f32.c
  2254e8fce53e727c3c39066718e987a5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_f32.c
  9f7f258d6d152e8e4e9e0d166efba1b4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_s32.c
  2f90e9c4c59aa90dc949d2e18df4e7c5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_u32.c
+ 66c7a4f5ded3417d75bd5ade0872b536  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za16_mf8_vg1x2.c
+ ece04ffa870e27476d0694e9c05f32ac  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za16_mf8_vg1x4.c
  ab2c50d389ce596e612f83960accb2dd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_bf16_vg1x2.c
  f3383da05b8415a028db9fe4e9dee86d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_bf16_vg1x4.c
  b2871916905b229d9cc96af203c2d741  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_f16_vg1x2.c
  ea1a13d45c82cd47b92921e3513d1ec0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_f16_vg1x4.c
+ 69a57c09a55dee79a685bf9d011c938c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_mf8_vg1x2.c
+ fd60a8c8d016568152c5a3278e1e8b2f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_mf8_vg1x4.c
  93e08ac06b2d77511340f3b3a0374f96  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s16_vg1x2.c
  4a562ab5adbf64b62ef8e1f7525cb01c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s16_vg1x4.c
  92492c0194aecf44c6056cb012d27b8a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za32_s8_vg1x2.c
*************** c241c089b8ab3d16858bc39b4a02e19a  gcc/te
*** 62868,62878 ****
--- 72565,72583 ----
  9a73744c0c4e15b184bb36bb5d86ae30  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_u16_vg1x2.c
  b32cddc1437ee499dde6e742aa28993a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_lane_za64_u16_vg1x4.c
  6945f4b4c7935aa74ad875b92039760a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_s32.c
+ f69228a174a67079638ad80f6bd42dd0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_single_za16_mf8_vg1x2.c
+ a579620b6b6b827e936a0d746404416d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_single_za16_mf8_vg1x4.c
+ 5b0eb67d660fb3a5de6791af916e94ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_single_za32_mf8_vg1x2.c
+ 65fc110b401f8361b844c37b7712ccca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_single_za32_mf8_vg1x4.c
  c2aaad259d2a6d2baebf63670e518d4d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_u32.c
+ 6f51023f41f7fee60401af89a1f3345b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za16_mf8_vg1x2.c
+ e9c4be9af1411580ba528948fd912f2b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za16_mf8_vg1x4.c
  e72a24bf1038ad0cfed16980562835a0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_bf16_vg1x2.c
  3c8cd5a7e9c5313d6c1a0fccdce2b8ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_bf16_vg1x4.c
  58a998e9fc8953759988e09405eb2905  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_f16_vg1x2.c
  df41634a7123886fe211986bf918fb4a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_f16_vg1x4.c
+ 862a2b70ee494fe4002bba9e5b18d3b8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_mf8_vg1x2.c
+ 55ff9d0fbf5a4a055c755aa5ccd4851c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_mf8_vg1x4.c
  10c2803320491fe65673116cd34586b4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s16_vg1x2.c
  04bb1427235664c256e6164d937fafa7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s16_vg1x4.c
  57fc0da4ef01858c3bd1143c52640282  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/dot_za32_s8_vg1x2.c
*************** fd711e03fbc48fac32d3db9738b2539a  gcc/te
*** 62893,62898 ****
--- 72598,72605 ----
  ec28ac62c31ac197347d69e24ca27c4b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f32_x4.c
  bc8df40372b0f731a6871943d2ab3d25  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f64_x2.c
  480bec1ce3078fd4ddcb3297f81410c6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_f64_x4.c
+ 8bf19248ae2413fb057e1a69ccd299f0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_mf8_x2.c
+ 64bc05dfa16d16a601d06dc5fe799e08  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_mf8_x4.c
  46afdc84064c30f9d92f7ea89ccb2e23  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s16_x2.c
  99893261a2fc793b5afacb05b832cebd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s16_x4.c
  629fce5d4ce9540938e5f017fdcbd38f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ld1_s32_x2.c
*************** ac28407540ca7d4670210e42b0413a4f  gcc/te
*** 62917,62922 ****
--- 72624,72631 ----
  025875bb629aa93a7bb5c12d02b9de14  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f32_x4.c
  33d0b99b37f569fb7b3f617fb5689944  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f64_x2.c
  613a440a5220603023e1b77335a36710  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_f64_x4.c
+ 0e7f34a1f072285b1c84e7c0b814002c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_mf8_x2.c
+ a1f79d28804635ac5efccc1770f1f2ca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_mf8_x4.c
  827e86f3330b1dff7f134ea89ed9038e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s16_x2.c
  3fc5c355fb70c84f73cee8bb58426260  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s16_x4.c
  2092a53e766007efb6e6ceae6ab8a47d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_s32_x2.c
*************** b9d0323dc24096969b137aaab76541fa  gcc/te
*** 62933,62939 ****
  1a4e2272de71258ed8b7a81d9b83e598  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u64_x4.c
  0fdddd40362dbc3ca9408781a54be2ab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x2.c
  3d7bda376291648afa3479cbb4c3efd1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x4.c
! c7f09758f4bb785e6b263957585a6f89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldr_zt.c
  b4d3512b25df8114001668c075e950e4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16.c
  cc20708c03f9c819104c981fa264a30d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x2.c
  7a212674582b9e8f4340d5e01a9cb5cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x4.c
--- 72642,72648 ----
  1a4e2272de71258ed8b7a81d9b83e598  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u64_x4.c
  0fdddd40362dbc3ca9408781a54be2ab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x2.c
  3d7bda376291648afa3479cbb4c3efd1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldnt1_u8_x4.c
! 9ebc588d4c755370b8da6f8362b3d61e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/ldr_zt.c
  b4d3512b25df8114001668c075e950e4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16.c
  cc20708c03f9c819104c981fa264a30d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x2.c
  7a212674582b9e8f4340d5e01a9cb5cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_bf16_x4.c
*************** d98cb63fafbcb39cb8f837016598f6b1  gcc/te
*** 62943,62948 ****
--- 72652,72660 ----
  42f101ab3042eb94971d68202f636556  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32.c
  eb26cc608e004138fb870e9348821929  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32_x2.c
  60184d0e40319b2932792c4114580d99  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_f32_x4.c
+ d91f54651f8e5793e085688ad8200281  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8.c
+ 8a383144b380582fed972357264bac4f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x2.c
+ 86687b034499a9d5dcfbbd7560fe5565  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_mf8_x4.c
  1694e3ca21c302ce86249490fbb0e794  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16.c
  8fdaa275e37d30cb9ee3c646f8cb724c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16_x2.c
  12b4d502b5badcbf68ae2a297c7f9628  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti2_s16_x4.c
*************** f79f511e6b87c6ed8a95684c98baf3ab  gcc/te
*** 62970,62975 ****
--- 72682,72689 ----
  d25c8900eeb896830b7632be3b86be7b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32.c
  0309e5cb32e0c53ff8a6a68da5159b55  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32_x2.c
  bdaae4f992811602f00a12e2a21e092e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_f32_x4.c
+ 1312692946080de781588bd411d203d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8.c
+ 697432e7d015fcff90ad8634e428d7f7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_mf8_x2.c
  84f2072544313415ad0ece87b1820a2f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16.c
  a7ed33896e6accd40476f6c3a3000da7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16_x2.c
  868cd86e41159cfa48eec65febc5ef11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/luti4_s16_x4.c
*************** c3095abbff4813fdbbc4af601f3e18be  gcc/te
*** 63054,63059 ****
--- 72768,72776 ----
  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
+ ea6daac23d2efb6d6b2f43b3fbd5e905  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_mf8_vg2x1.c
+ 3aba03b4781f0a5c5c863052a9a78e43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_mf8_vg2x2.c
+ 04fa6a69b8e14bc4097a93f977962100  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za16_mf8_vg2x4.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
*************** dfb654d5cca6e8ae4af339f674e1c298  gcc/te
*** 63062,63067 ****
--- 72779,72787 ----
  851c7429fa19845aeac6535fc21995ce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f16_vg2x4.c
  605c99d708a551eb9d61cf6405ac0d36  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f32_vg1x2.c
  736dc28ccda7c8c969756ba859a0c69a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_f32_vg1x4.c
+ b7c888a3562751045cf9a9f5a305500f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_mf8_vg4x1.c
+ 27cc40f1a82bae7bb2c5669458786291  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_mf8_vg4x2.c
+ 391c0a574ce4eec6b552c806b218210d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_mf8_vg4x4.c
  da1bb70a7c975d01d610292968d9808b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x1.c
  361ffb48db4e8a94bbb3c7e80ffa7b99  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x2.c
  be69420dc7c3db71cc8fc51f125acdb1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_lane_za32_s16_vg2x4.c
*************** c6255fa319a4b66adeb3cb556740ea16  gcc/te
*** 63086,63091 ****
--- 72806,72814 ----
  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
+ d7dc981c48e34d0923177d91ddb2fdfe  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_mf8_vg2x1.c
+ 9bfc937667ede66868753d2a86540711  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_mf8_vg2x2.c
+ e1201e087371720227a5fb4c9b2c35d7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za16_mf8_vg2x4.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
*************** b149fc5d7701d711fcfefe85a2b96f0f  gcc/te
*** 63094,63099 ****
--- 72817,72825 ----
  e1fca5a6dd25bcf3b84d97289bc23532  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f16_vg2x4.c
  efad5786de17e50e9bb6046a0d9cd6fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f32_vg1x2.c
  afec910f85fddc00f6091f412fe1cdb9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_f32_vg1x4.c
+ 0bc6ea4807d66056077d616f1c76fb69  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_mf8_vg4x1.c
+ 1d08f8c0c9e28a9a06536be718be89d2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_mf8_vg4x2.c
+ 528cf39faff444d5ff385045f7c3884f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_mf8_vg4x4.c
  37e2a2923b4104f053cba18952e3da9a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x1.c
  16bbd82d866991203f6325014edf413d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x2.c
  9c04f6aa6c7220c79238821e2006390c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mla_za32_s16_vg2x4.c
*************** b859a5f522518a13c1400caaf256ce86  gcc/te
*** 63180,63189 ****
--- 72906,72919 ----
  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
+ 2c4d8fc7091a07eddd92f324591ddef3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za16_mf8.c
  03b18bc928708b61d9b4f0973cf53572  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32.c
+ 15f1c1bae241ba3fb941c1c9edb1a220  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mopa_za32_mf8.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
+ 780e8095f57566123b3586c781c8536d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mul_bf16_x2.c
+ cd54535dc5d72aa10e588e1ec2d9adf3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/mul_bf16_x4.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
*************** dcd97a7da607faf4b907979a110e5460  gcc/te
*** 63247,63271 ****
  22384a721e6d418e149b4136c69495ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za32_vg4.c
  98705f7b7f755a54623039a2d8980ce9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg2.c
  b2fa91bf485e03450c469b7e96adf0ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg4.c
! 397be31d27b4fd44b0bf0cbe50b21529  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg2.c
! 079468c1e3a20ceca46e25bd039c227c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg4.c
  2fcd4b6a03679d8cb0f73d645e8adac0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg2.c
  7a921093a09000dcffea26864f035209  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg4.c
  4dae55a5d39614f12a4c3d380e17f62e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg2.c
  f080e4f3a28f3e13b7efb13501a54181  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg4.c
  37e029d82bd9a648bbbab068156e7106  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg2.c
  00cdc5de25dd1ca0dc2d10c65b0b3686  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg4.c
! 01f823db3386eb46e747428c1807821f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg2.c
! d4a169fc127815c1341ba7f3b5bba23e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg4.c
  78bed5693ad4628d22ab254f2560a50d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x2.c
  2df6e5f019a3667aefeca502f3c47d22  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x4.c
  29833bfe7c380c2594982be73a3089de  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x2.c
  da5383a278d11964e3e04cdc3435cf1e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x4.c
  6a50b3cbf0c7083b01e400ac4f5cef0f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x2.c
  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
--- 72977,73001 ----
  22384a721e6d418e149b4136c69495ad  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za32_vg4.c
  98705f7b7f755a54623039a2d8980ce9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg2.c
  b2fa91bf485e03450c469b7e96adf0ff  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za64_vg4.c
! 02df1d87bb637185e255afe0602caf38  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg2.c
! 5f58732082e47e57dcebcd95e9deed3b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_hor_za8_vg4.c
  2fcd4b6a03679d8cb0f73d645e8adac0  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg2.c
  7a921093a09000dcffea26864f035209  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za16_vg4.c
  4dae55a5d39614f12a4c3d380e17f62e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg2.c
  f080e4f3a28f3e13b7efb13501a54181  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za32_vg4.c
  37e029d82bd9a648bbbab068156e7106  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg2.c
  00cdc5de25dd1ca0dc2d10c65b0b3686  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za64_vg4.c
! 0d7da4f5e2b9492070580bb78bb63e38  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg2.c
! 07aa8bede87aee9743e698f027910d03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_ver_za8_vg4.c
  78bed5693ad4628d22ab254f2560a50d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x2.c
  2df6e5f019a3667aefeca502f3c47d22  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za16_vg1x4.c
  29833bfe7c380c2594982be73a3089de  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x2.c
  da5383a278d11964e3e04cdc3435cf1e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za32_vg1x4.c
  6a50b3cbf0c7083b01e400ac4f5cef0f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x2.c
  8a4e55c7aacf430f54a254c660be21be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za64_vg1x4.c
! 2bd67fcda8b2d56a51424e5dbb8cc836  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x2.c
! 9f90e21098a84baf258c43c1a5a192cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/read_za8_vg1x4.c
! 294696568e4489e1ed53e9497710a196  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/te
*** 63275,63283 ****
  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
--- 73005,73014 ----
  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
! c8301f351f430b7e494b1f9ea03eaa2b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8.c
! 2cfd968149d8c501ff41ce504b38f38b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8_vg2.c
! d569f1ee402bf9e9226ef0e504c6f226  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_hor_za8_vg4.c
! 34fa95c47d4e8103fac3def4e08cb4c2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za128.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
*************** ae3dd455ea91da6374e11e1135e760ec  gcc/te
*** 63287,63303 ****
  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
--- 73018,73034 ----
  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
! f5f691a7321855f5f6e2fb346a9b06a2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za8.c
! 9d4f37d862e7ffe079859278ba998fa1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_ver_za8_vg2.c
! 18f8a8f86d662d567ac010b306de98b3  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
! ed3e830027c25d3f4c5784a2a6ab6831  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/readz_za8_vg1x2.c
! bdefeb3911c24dfd986b494d8499d11e  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
*************** d22a3bd90868146ac9eae1229a4aba9c  gcc/te
*** 63322,63327 ****
--- 73053,73066 ----
  e7e3a27c2a468ff586b8fd1d17f67a3c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u64_x4.c
  0f56106e7a5b42675422b40b315e4035  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u8_x2.c
  5786b6152b5ef772386c1c2fb329421e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/rshl_u8_x4.c
+ 2ccee7f91a0281fc51b99741bf62bd86  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_bf16_x2.c
+ 6707c18a834df6c3481c9d531f137086  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_bf16_x4.c
+ 96e801545b46e198cafd5bf78e8186bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f16_x2.c
+ 1660ab2e87730b2b1942ae0a9f403e9a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f16_x4.c
+ 2659aca53ba2437b47e8c73e49d301cd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f32_x2.c
+ d7132bd971ab4ffded2226315176f496  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f32_x4.c
+ 134ca48a8ccf500c8672ddab80599615  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f64_x2.c
+ ee93fd654af8a65ea269fa1cfe75a816  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/scale_f64_x4.c
  f2d9a2b1123be589ca2a71591a6388bd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_bf16_x2.c
  9f0b4021df6d37447f6daef5b6ab57c8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_bf16_x4.c
  94e0b3b236eb1f558e70a7b0a2327094  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f16_x2.c
*************** f2d9a2b1123be589ca2a71591a6388bd  gcc/te
*** 63330,63335 ****
--- 73069,73076 ----
  301ba82185eceb6f3f5de9d75bac8e07  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f32_x4.c
  ab2ce556585e3d28560a869392c75078  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f64_x2.c
  354553af8574a13d5380f1d696d5860b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_f64_x4.c
+ cddf7549cf40d92ed3133115da60d37d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_mf8_x2.c
+ 0ff90456ef58c9df1b9e725b28614c03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_mf8_x4.c
  7368aed510f0e4194854086d5454fa89  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s16_x2.c
  df75020973319b98e2cd2a75afac4f43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s16_x4.c
  15da70995b12578e38738bf7a6217434  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sel_s32_x2.c
*************** c89de4c4973fff658674bf6ef6ac5fc8  gcc/te
*** 63354,63359 ****
--- 73095,73102 ----
  cf61894ecddf408dfc83cfcb0e7d1cb3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f32_x4.c
  ad579961e19d0d85367bdcf34340fa94  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f64_x2.c
  68419cb130b208da9e647653ffb25cd7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_f64_x4.c
+ b448a0b73ce6995c441348af8c535276  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_mf8_x2.c
+ aa030b2ec30d3ac6acccfdde34417e8a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_mf8_x4.c
  0586ba9db0c665667b86e164facaf72c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s16_x2.c
  fedff4e7c4a9cfc9b4169cf5e566c4be  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s16_x4.c
  e6f1cdae88967383b79add0f64a00fe4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/st1_s32_x2.c
*************** fea934017e1c3a38cf60b1bdc9beb2cd  gcc/te
*** 63378,63383 ****
--- 73121,73128 ----
  64d215d8dc2a47190cb23ce57e3b75d3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f32_x4.c
  40045651bf1fc2ce69709880e25c430d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f64_x2.c
  613bc24b14e5613a8f2eb31f0b65d29a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_f64_x4.c
+ 2f973dcbc04337d7e4674f51ee35fd64  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_mf8_x2.c
+ 25baef818371d039829157c5745c6f15  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_mf8_x4.c
  2c853ed75bb21ee95507a8e4589afacc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s16_x2.c
  c62276ba80c8c95003018d969787a704  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s16_x4.c
  7c8df31f7e8717bdbb3f7047ee9438bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_s32_x2.c
*************** f70a5a96b64575dac42f3727dc450746  gcc/te
*** 63394,63400 ****
  4111107dc8932be7625d4b3aaf5316ec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u64_x4.c
  7e951600e2af6dbece5b7117e794424b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x2.c
  6ea50065904b86f9dbfe28c9c9424f43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x4.c
! 6970dc6f5eb1d6e13d52233576cc1a98  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/str_zt.c
  dc93a4d3f0ddf5dff57d1d6d3f4cac55  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x2.c
  89f1dd3525839f289f9245f5818bf2c1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x4.c
  9cb8e56faaab92f905b9ace561951dd7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_u32_vg1x2.c
--- 73139,73145 ----
  4111107dc8932be7625d4b3aaf5316ec  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u64_x4.c
  7e951600e2af6dbece5b7117e794424b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x2.c
  6ea50065904b86f9dbfe28c9c9424f43  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/stnt1_u8_x4.c
! 9111d40251004a51bab0130ceaf6f33c  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/str_zt.c
  dc93a4d3f0ddf5dff57d1d6d3f4cac55  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x2.c
  89f1dd3525839f289f9245f5818bf2c1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_s32_vg1x4.c
  9cb8e56faaab92f905b9ace561951dd7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sub_write_za32_u32_vg1x2.c
*************** d82e91485d24b0cf4d2e422ec8011966  gcc/te
*** 63424,63430 ****
  2a4121b5645664402b571daa21f66172  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x2.c
  41e685821a5fe75dbce4d2e681110882  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x4.c
  98cf869ad1fbee9b39a6b7f1280c3819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/suvdot_lane_za32_s8_vg1x4.c
! 548e83ffcea63c963ba83c5ea81ed6ae  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/test_sme2_acle.h
  77448bea927d957f1775dca6bf314aca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x2.c
  6ff10bfdd5d3166a1ab489104cca1a03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x4.c
  333d3ddf0f4bd44c3833ce2351276405  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s32_x2.c
--- 73169,73178 ----
  2a4121b5645664402b571daa21f66172  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x2.c
  41e685821a5fe75dbce4d2e681110882  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/sudot_za32_s8_vg1x4.c
  98cf869ad1fbee9b39a6b7f1280c3819  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/suvdot_lane_za32_s8_vg1x4.c
! b74e78c5909672747659866c986dac52  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svluti4_zt_1.c
! 8a6cd380615f75bb6112bae2d65feecd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svwrite_lane_zt_1.c
! b6d814e93a4000475e51da4472709330  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/svwrite_zt_1.c
! 03c6fb9f45e91c1f8d4582649d0ab648  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/test_sme2_acle.h
  77448bea927d957f1775dca6bf314aca  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x2.c
  6ff10bfdd5d3166a1ab489104cca1a03  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s16_x4.c
  333d3ddf0f4bd44c3833ce2351276405  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/unpk_s32_x2.c
*************** d6dab91015e04b1853f319c0a7e6691b  gcc/te
*** 63450,63455 ****
--- 73198,73205 ----
  6bf9ae7e79ac67d45d000c1f365f3146  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f32_x4.c
  18faf3dd9672e4d292be8d0f18d2f135  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f64_x2.c
  05c4c4205d20cac690d1529257a885d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_f64_x4.c
+ e09eb4c50b895c072565a7a4ce63b820  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_mf8_x2.c
+ 318257c780d20a0b5c8cf8d717e2c4b9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_mf8_x4.c
  15ba3cffef42aba66d0b9cd5d1d33ac2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s16_x2.c
  25079efb21b21b2c0aa081d1ceef88cf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s16_x4.c
  528e6f5700ddc8c482fc990c2f168270  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzp_s32_x2.c
*************** a495ba03e7e1a5a29c1dcc1f3d0a5818  gcc/te
*** 63474,63479 ****
--- 73224,73231 ----
  8f9628bb164d18f06b25c496a65b16c4  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f32_x4.c
  83b093f818e8392ccb5ca2da204b6276  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f64_x2.c
  74e3f1dd0f9f2acb06bce06562dc90b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_f64_x4.c
+ febc03d9e3a03b45c7468b692d7f4385  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_mf8_x2.c
+ caa9b6840c90fc503f30dba7286b3b67  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_mf8_x4.c
  cb70e5cde8378503c9816d6b5aa42cce  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s16_x2.c
  a6853395408f9abc4ba57223a8b2c753  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s16_x4.c
  2f3049745414e3cbdffe73e5da8ca931  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_s32_x2.c
*************** eda4fc79216524b6cb9154bf8b067119  gcc/te
*** 63490,63495 ****
--- 73242,73248 ----
  afb014686120f06a945893b033dda57d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u64_x4.c
  daa4e38c02cf0ca5769991e0166e4d87  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u8_x2.c
  52484e276b7a6f988dffef97c0d2edab  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/uzpq_u8_x4.c
+ 8491dbecd5558fbdedecf46855ff0dfd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za16_mf8_vg1x2.c
  1ba51add008e0c2e66608411aa967bbf  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_bf16_vg1x2.c
  0a8b7d35821e04f411e8debb4e8cbece  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_f16_vg1x2.c
  8fab3c1fb029c9eb5eeb1213d20d92a7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_s16_vg1x2.c
*************** db787b3df5de3b90a1778c9e31cfeb87  gcc/te
*** 63498,63503 ****
--- 73251,73258 ----
  fcd07f204caee5fb5f0b3544c2afad20  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za32_u8_vg1x4.c
  842e777f6b8a4364818dce4bf498b72f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za64_s16_vg1x4.c
  ca9fec7655002d228c407324be5f1085  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdot_lane_za64_u16_vg1x4.c
+ 1e80567ee2628e7aea761b9cc281156a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdotb_lane_za32_mf8_vg1x4.c
+ a8ef6a2dc9f8bf3aa206a545c35afba1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/vdott_lane_za32_mf8_vg1x4.c
  9b20af2c8c04297e1df69b26834a69a2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b16.c
  7b6b13feb83a0eacd12b12f200d086d9  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b32.c
  5a498c4d2e0347fdf29c36d6de6b5ac3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/whilege_b64.c
*************** ce9ea0a1e105ac8397d4f8251d29964b  gcc/te
*** 63536,63559 ****
  1b9b67591a207398f36c9cd0650b703e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za32_vg4.c
  d4494a698dd329d5da6754fa4e7dc45d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg2.c
  0777e54b63a250b29b9bd6988e2e38b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg4.c
! 670d25f205c0eedc73d9c6e364336cbd  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg2.c
! d465761f5c6c8f8ca7a8c8e6d4fb18e2  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg4.c
  c8973aaea30e9995e738c714f292182a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg2.c
  1773aa1973a99056c4275f25b78b8d42  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg4.c
  c62bfc1a475dc826e807ce41969d402b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg2.c
  0fa8585311f0689dc058b933752b5b45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg4.c
  b2f8974228ba195e65552b8de779565a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg2.c
  9eff54b0fa429f57309cafeb578844bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg4.c
! 71ed2b767f2e2c554260b9008f161563  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg2.c
! 47e01e12f80fd1a7aba6cc8771753b46  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg4.c
  674714d9eeefa4f2a12d5f52af0eb67a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x2.c
  4e33796e0252308e8c6a664bdf147984  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x4.c
  35c11179e1ab2d62f5d8dedbd8a2e424  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x2.c
  51b72e45dc7628585d3babe9e6520018  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x4.c
  7530007f0abed0b9257c4f7e70144548  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x2.c
  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
--- 73291,73314 ----
  1b9b67591a207398f36c9cd0650b703e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za32_vg4.c
  d4494a698dd329d5da6754fa4e7dc45d  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg2.c
  0777e54b63a250b29b9bd6988e2e38b5  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za64_vg4.c
! 8ef9b868222568871e6e20a74a6dccc8  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg2.c
! 5ca7b5303f3dd24a071ab319dfb73f29  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_hor_za8_vg4.c
  c8973aaea30e9995e738c714f292182a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg2.c
  1773aa1973a99056c4275f25b78b8d42  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za16_vg4.c
  c62bfc1a475dc826e807ce41969d402b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg2.c
  0fa8585311f0689dc058b933752b5b45  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za32_vg4.c
  b2f8974228ba195e65552b8de779565a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg2.c
  9eff54b0fa429f57309cafeb578844bc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za64_vg4.c
! a1e00c7740194182cd744265f240e6a3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg2.c
! c2f1e8a9f72e83a5a62b656b870c7584  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_ver_za8_vg4.c
  674714d9eeefa4f2a12d5f52af0eb67a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x2.c
  4e33796e0252308e8c6a664bdf147984  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za16_vg1x4.c
  35c11179e1ab2d62f5d8dedbd8a2e424  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x2.c
  51b72e45dc7628585d3babe9e6520018  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za32_vg1x4.c
  7530007f0abed0b9257c4f7e70144548  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x2.c
  35d20bc558182139cae7d1d2a122f1a6  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za64_vg1x4.c
! 824c2389b2dc033c715526bf95241bb3  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/write_za8_vg1x2.c
! 40ebccfe822360cf94e802429fad38de  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
*************** d538457193e82209a0d220b1c033a680  gcc/te
*** 63571,63576 ****
--- 73326,73333 ----
  bac4fe4e5ac70753ee5177f2969f3841  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f32_x4.c
  46dc1d485d7c1205f84ef4632e91f56f  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f64_x2.c
  31058aca5c18a01e07b9b974cc487005  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_f64_x4.c
+ 0b6dbb74ea97169e31fc80abeba5d4a7  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_mf8_x2.c
+ a896496f3daf515075204f0cbf068ce1  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_mf8_x4.c
  a9d48207530f099ff594a1b18d031eea  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s16_x2.c
  74ce02da3509100e586849c24b45a0bb  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s16_x4.c
  b40e0c1edf9cb88ffb94d20727e31451  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zip_s32_x2.c
*************** dbb23c5b36ef91174f62bf7cba4d6ddc  gcc/te
*** 63595,63600 ****
--- 73352,73359 ----
  0e4e5b6d8e08a0013271805c26b040fc  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f32_x4.c
  20d1e257707ab6b3cc94fb1901b0a78b  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f64_x2.c
  1875ce085d0022daf6469e864cf13e93  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_f64_x4.c
+ a715b6ed4a41fb15b7cbed16b20eec11  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_mf8_x2.c
+ 46ef0c213d5bdfac6d9732eb1b13a923  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_mf8_x4.c
  f99dc0c1c035702cd63c19800e9c660e  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s16_x2.c
  2cbbab3075d7fd872ccc1976e83309da  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s16_x4.c
  8a4d5eda0c73963e7a58244b96ee6a8a  gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/zipq_s32_x2.c
*************** e996cd8c829a02c64b035caa943ddf85  gcc/te
*** 63657,63665 ****
  f60705b79c18983e5449cb2640888da9  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-16.c
  88257f5a4ca972bb5e1bc6a5a4eca89e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
  14d0d8388a620d2cf045430fae29bb5b  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
! 6ccb0fbe36746268e24f8912f1eabee6  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
  d7433841ac09c91656c5bb63b8e8a09a  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c
! 3615b928f50ecd37b55bccdd18e7b615  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
  4d593b97a712f1c1b227372e57c2b116  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-3.c
  dbd54994dcdef6b44b1f3378ddd01e83  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-4.c
  f4a154bf65900f64fd155fb1f95ddd80  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c
--- 73416,73424 ----
  f60705b79c18983e5449cb2640888da9  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-16.c
  88257f5a4ca972bb5e1bc6a5a4eca89e  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
  14d0d8388a620d2cf045430fae29bb5b  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
! db78d726d905a2a406160f39fc4e0ecb  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
  d7433841ac09c91656c5bb63b8e8a09a  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c
! f334cdf544b1e7205b7bd65b165d83c5  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
  4d593b97a712f1c1b227372e57c2b116  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-3.c
  dbd54994dcdef6b44b1f3378ddd01e83  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-4.c
  f4a154bf65900f64fd155fb1f95ddd80  gcc/testsuite/gcc.target/aarch64/stack-check-prologue-5.c
*************** b80ee08d736c3560f1d085793990beb9  gcc/te
*** 63710,63724 ****
  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
--- 73469,73483 ----
  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
! e167da86f6c5873db8bb74254126a09c  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
! 70974fa4d71d1581f708cb38c1723275  gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
! e1cd7dfd475b001942c21ff676580e4d  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
*************** e716ac2dd0b6a489e0a066923531fe33  gcc/te
*** 64661,64674 ****
  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
--- 74420,74433 ----
  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
! 93bec38f83aa08ea078a190a36ce60b6  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s16.c
! 4f42232f407acd56314fee0d0ff008e5  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s32.c
! 729ad62f6cb28217b9d2f1501b162f8c  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s64.c
! 56c4878136209bdc3156de990353cecf  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_s8.c
! 6def2e7ca37494f570e330b41d18842f  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u16.c
! 6993cbec8b136cc2cbabb54c90558144  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u32.c
! 465a374b40b8fec960f6f658afb9e57b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/mul_u64.c
! 59e9a7a2c74e7a644223ce578131448e  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
*************** fcaf02aa6e3f5dd268b404a8bca92a89  gcc/te
*** 64938,64943 ****
--- 74697,74703 ----
  70ed6caad6bebfbd14964ddc6501850d  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f16.c
  f59ab9c85fd6537f7058c727584ef917  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f32.c
  1149f1a40c9e53498525ec14c42c596b  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/rsqrts_f64.c
+ ba73ed42f34ceff6f3c5313107e07538  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_bf16.c
  d0c344e021b53ed378987fc003c6ebe3  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f16.c
  15480ccc211ec663b27b52c1242a64d2  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f32.c
  8a83c9b2bbf3519308df61aaa9649795  gcc/testsuite/gcc.target/aarch64/sve/acle/asm/scale_f64.c
*************** dc551677ea18cee7d0d0f71db2863e0d  gcc/te
*** 65161,65167 ****
  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
--- 74921,74927 ----
  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
! fe0e1c95eaba0c19ac0dd670a18e9c53  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
*************** ab754b624c1f73a03d94c9a531641505  gcc/te
*** 65382,65391 ****
  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
--- 75142,75152 ----
  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
+ e0eb712bd056761f180dd27d1d859d13  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/bfscale.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
*************** af6d17482a59d82ecf6030c429377322  gcc/te
*** 65396,65404 ****
  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
--- 75157,75165 ----
  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
*************** c6d84b0aa9031d9da4500f61b64a39f3  gcc/te
*** 65409,65435 ****
  5bce92e13a71d078ea2b471f6627ffb7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_1.c
  61eff29e192c9bd062c059e6f70bca74  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_opt_n_1.c
  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
--- 75170,75196 ----
  5bce92e13a71d078ea2b471f6627ffb7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_1.c
  61eff29e192c9bd062c059e6f70bca74  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_wide_opt_n_1.c
  3519ef42cc2ea6e6aa95a2a27424c013  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_int_m_1.c
! f9955aa5a242019d5f14e9a158e3caa5  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
! c96d3a47ee2acb763efd2c090f17139f  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
! f9f135938166b2604a42239db904b7a2  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
*************** ce13014966a94f4ea101d9f8892229a4  gcc/te
*** 65439,65448 ****
  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
--- 75200,75210 ----
  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
! 0b8070f0b4f23fdf28da8255b1b7a2de  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/dot_half_za_slice_lane_fpm.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
  81b920eaea7dfd6f7200b74a745af83f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/extq_1.c
*************** ec11eff8f5009ed3e03c5cf524c5878a  gcc/te
*** 65460,65467 ****
  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
--- 75222,75229 ----
  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
! f4436f4b0a253e7d8a602f62f72d1053  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/gnu_vectors_1.c
! 7c804025b77b0b4622a2afa33d9c512b  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
*************** f59dc77f036374e8d1ce0da9dd091f96  gcc/te
*** 65501,65507 ****
  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
  01966f84e39b32dd676a007b9f6cff2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_4.c
--- 75263,75269 ----
  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
! 74b1e39bf96baa10e75af14b5b45e298  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
  01966f84e39b32dd676a007b9f6cff2e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/mmla_4.c
*************** ef1c49097e0bab8ac8f2b3b769937427  gcc/te
*** 65541,65549 ****
  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
--- 75303,75311 ----
  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
! 17a961c8281d3b2f5fcbf260f7bb1b5a  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
! 82aa2f3a93b6b1f34884221fc6f3707c  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
*************** db6a7f40ba388da3a0fcea32db830c02  gcc/te
*** 65554,65567 ****
  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
  dd949f1aaa34adff76b9ec0730190812  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast256_run.c
  415df05f3abc8db59c80ac9f28da4c36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tbl_tuple_1.c
  6f84f9e2a4fb3cb8125a835db8703669  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_1.c
  4b11535a21d8f9931c92d09236b5027d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lane_1.c
--- 75316,75332 ----
  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
  af84471fa52113a559843350049c942e  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svboolx4_1.c
! 9ac08e0396fe0a10e6f77a1a5a039b3d  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
  dd949f1aaa34adff76b9ec0730190812  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svlast256_run.c
+ 5c21aac2cfe747779475a733b928a41f  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svluti4_zt_1.c
+ 1bf14b35b9056b9096253a0801409170  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svwrite_lane_zt_1.c
+ c17d49fcbc1f462e0d829ea8c83666d7  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svwrite_zt_1.c
  415df05f3abc8db59c80ac9f28da4c36  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/tbl_tuple_1.c
  6f84f9e2a4fb3cb8125a835db8703669  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_1.c
  4b11535a21d8f9931c92d09236b5027d  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_bfloat16_lane_1.c
*************** b3c9cac37ce7a099fe7e4802e538596c  gcc/te
*** 65574,65588 ****
  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
--- 75339,75353 ----
  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
! 0b56ef36cd5fd987196c883c5db3bee0  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/ternary_mfloat8_lane_1.c
! 6dfc7000c388d7d8127c07889c80038d  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
! 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
*************** b64ceb135019ca0468a29f479670b23e  gcc/te
*** 65616,65624 ****
  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
--- 75381,75389 ----
  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
! 266c933f6115b89555ee3924bb26c487  gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_convertxn_narrow_1.c
! 5e0cfbfffb71a7a4fd1c7fd2ca78ca32  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
*************** a7b214e73cc85486f612e05af76a069e  gcc/te
*** 65631,65656 ****
  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
  065185852393d4ba6508c94833c67eb2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_3.c
  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
  4eea3d7baf0e2958356c0c33600e72e4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_2.c
--- 75396,75426 ----
  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
! 3a75de126814667dab64643f6698ab61  gcc/testsuite/gcc.target/aarch64/sve/acle/general/acge_1.c
! e332cb9bc1c571ee1bf10410a78a2d5b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/acgt_1.c
! 76daaa14c4e1e4bff596d8f18116d560  gcc/testsuite/gcc.target/aarch64/sve/acle/general/acle_1.c
! f1244fcb32ddc0f3d61678f9cd118ff3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/aclt_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
! 68d17e82076281840af8bbba6076c5b0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
  c837aa90d4f65fe43a41a1df66ecddaa  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_2.c
  065185852393d4ba6508c94833c67eb2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_3.c
  dbd822adb848a971885a06967432c628  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_4.c
  cffa63a742186323feab22505915a6e9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_5.c
! e1e1569e7833d66a82f4148d1aae172a  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
+ 6257abaca6dbe01c7e69c5f185dfaee8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_9.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
  4eea3d7baf0e2958356c0c33600e72e4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_2.c
*************** f05f061869c6f335b6395f5250ec83ee  gcc/te
*** 65660,65675 ****
  649722b7feeb54ead3f4ff347e8ef4db  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c
  3e4d3053ca7b442dbfeb54e8df14d433  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpa_1.c
  41715679da86b4845c2da3233725d0f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpb_1.c
! 4e7a3ff45a72f35e2476f4e660886eb0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_1.c
! 60577eb222495e42c0d4e2d7e2ce19a3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_2.c
  890d0907288d2b72f9ec70456e205a4c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_3.c
  493d587eaeaa014288091839539ed594  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cnot_1.c
  8670785b5e7c8b75fb219f0ddae33190  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_1.c
  9e41721b4dcb606909b3efa814293f4e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_pat_1.c
  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
! 2c4b75f5af375e44324610f217676d50  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
--- 75430,75491 ----
  649722b7feeb54ead3f4ff347e8ef4db  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_2.c
  3e4d3053ca7b442dbfeb54e8df14d433  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpa_1.c
  41715679da86b4845c2da3233725d0f2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkpb_1.c
! 4eb0e7c06a697f064ea648ace047b292  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_1.c
! 720ac1a84f70325302706073ebb6655d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_2.c
  890d0907288d2b72f9ec70456e205a4c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_3.c
+ 3f5b590fcce499c04831d6d89361a82d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_4.c
+ 355cd9c7b126e5ce98c67b41ab629fbc  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_5.c
+ 9988bd59ae63dc72f419d1e01f3d616d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpeq_6.c
+ c20afc79e7f8b6b17c9d14d4560ec1c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_1.c
+ 6a870012de90ce05192e5d39a9726b84  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_2.c
+ cdd1b380c78f3f784258c553ef99a76c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_3.c
+ 219ddba67537efe970cb71d1a45e9399  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_4.c
+ 83bae7bff318b52e06c850b9ef6d59e3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_5.c
+ 6cd856b0f5f1baddfb519cbc1c17d2f7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_6.c
+ eeaab42434d364218d68629977844155  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_7.c
+ 273f1a5439f75799d23ddf9f8b3f45ab  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_8.c
+ 91587f90325f8b91b4b8242d80db3dc7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpge_9.c
+ 0d8a1ad5360c6fe1275670822c868f84  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_1.c
+ 67c8aebd2ef13fc6934764ad4de82009  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_2.c
+ 607765e12a3d2df430b6313e2c618000  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_3.c
+ a904fb991b59aa2f1851fba221df1885  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_4.c
+ c2287eaa773bcdcf4443fbd6af2d08af  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_5.c
+ 1aab4b59d03a0f203de95ab68a886885  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_6.c
+ 4f4029f8dc00309094f0ccd52a0c08f1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_7.c
+ 841cd31f439fd562bd03ea81f3dfdb69  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_8.c
+ 9b1a5aa8c93ccf875898beb74a98c2c5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpgt_9.c
+ a95940f33925e4f48d92a4a039ee6b0b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_1.c
+ f9b6afb9c9e16299fcf6e171942e83e2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_2.c
+ bdee712feab801031936f61c7702f048  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_3.c
+ 1ea04730da7cd3886bd6d88f6fdabd45  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_4.c
+ 7243e79c0737b415b989a95858bae339  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_5.c
+ 569b5c57bbce11aeaee95ae6b4b8b46b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_6.c
+ d4bbca47ba6f9fc2b817a970eb1018d8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_7.c
+ 600aed17c4fe18af3b6fbc9d40f78e65  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_8.c
+ c1fc5391b53cc8ed6ecff62d1dbeb760  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmple_9.c
+ b5b345df346635e51d632ffe787933a7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_1.c
+ 67867137345bce28b02c7c87f2c260a4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_2.c
+ 3983f534370aa742e754cd6f7a0f79c0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_3.c
+ ef9ca26ad273052560a22d52c196a52c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_4.c
+ 0e50fb1aed1ceb2775e01b02d79c3961  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_5.c
+ 670ab1f4730bc4e39c44008f30a1c753  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_6.c
+ d8e996627e7276bbf99faa67f191620b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_7.c
+ 9bd8ac014cb18163bbafbc4beffc9f33  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_8.c
+ ec8a7da374188dae71eb4c42ebc62329  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmplt_9.c
+ 379102598fc19a39762409568385274a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_1.c
+ a70dec2465dfc8bb2755f51f9a976ca7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_2.c
+ e4c79814a0ed1be7872913ffa1b07a94  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_3.c
+ 5d237e884c540653cbf5ffface56c09d  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_4.c
+ a1f49719a6a2f5d52bed7574b5f19664  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpne_5.c
+ 20338404eea8edc0ba93110522fbcddc  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cmpuo_1.c
  493d587eaeaa014288091839539ed594  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cnot_1.c
  8670785b5e7c8b75fb219f0ddae33190  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_1.c
  9e41721b4dcb606909b3efa814293f4e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cntb_pat_1.c
  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
! 3e73a503600e07b17bb8c9d3ecb3bef4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cops.c
! 2c7b7b97a194070a3802ca49f8a03b57  gcc/testsuite/gcc.target/aarch64/sve/acle/general/cops_bool.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
*************** fb0b99833eb0c168abc014e0554a156c  gcc/te
*** 65678,65687 ****
--- 75494,75505 ----
  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
+ 72d5b2d98c0d3d52b3e368f448ebdddc  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dup_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
+ 81ab5371a6242cf223a814b0a9885f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_13.c
  114ed394614bf74c8e525a8cb9b78390  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
  0936add06a30e2393cebcf86fef22d59  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
  22a321f22dfb836a546f0c91f6823e8a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
*************** fe2921ebbd482cc73ae92d1bf808ade5  gcc/te
*** 65698,65703 ****
--- 75516,75522 ----
  f3ee29e74dc3e46b11b221f1f9979758  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_6.c
  b9ed110da6cf263fcc856e58cf1348f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_7.c
  df183dee14d76baa105e0554407121c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_8.c
+ 1596906da0f1b4eeebd026b9684b9897  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
  4a00b5ab16a909e72cf55e18b2a5429b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eor_1.c
  c41c67f44c22e68000696077b274f5ac  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eqne_dup_1.c
  68be4a7d9fc95686fd0f20ee08808483  gcc/testsuite/gcc.target/aarch64/sve/acle/general/inline_1.c
*************** b36b54bea7bee04bed45d73a87ac0322  gcc/te
*** 65720,65732 ****
--- 75539,75559 ----
  ae44d68f203e7d5a17d19738cfbc53a0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/nosve_4.c
  8034766df46983adb7740540ad8ef5f1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/nosve_5.c
  78ad5fddb404ddbcdc5f197b1740e50a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/nosve_6.c
+ 00194d868204fecd55737027de6b4001  gcc/testsuite/gcc.target/aarch64/sve/acle/general/not_1.c
  23037c19fa0b1b3f5bcac32c8d73393c  gcc/testsuite/gcc.target/aarch64/sve/acle/general/nrv_1.c
  618eed08c799209fcc7e876e7bc1f5a9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/orn_1.c
  c43619dc0345cb75df63193d4ecf32a5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/orr_1.c
  f467f9ddc87398511c12147760e80eb4  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_1.c
+ 0a35f14f6f82735e897ca461fd10bd66  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_2.c
+ acdd75031b126bdb8ede449a87a8b4c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_3.c
+ eb5400f39cf4b8034ce9bf768b42f01e  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_4.c
+ dc5cc4bd54f699543e29d49d190cf7f3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_5.c
+ 4505bd757cf0718372154e481c4a2da0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_6.c
+ 453c5ef83bc5137397e38e9f3c9d6da9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/perm_7.c
  bb3a7f2587d8584d185738649f93a6f6  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pfirst_1.c
  4a5457bf98a3061b6c949b777ceca410  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_1.c
  6d3b0cbb6b0b88e0030fbf0003faa4c9  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_2.c
+ 0d1a441abf9343b89608d4826b9155f7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pnext_3.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
*************** c4e807392dbe7079bb88acf040351299  gcc/te
*** 65736,65741 ****
--- 75563,75571 ----
  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
+ 89320642fc28eb425a70fa1fc222f0b2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr120718.c
+ c1f0d92266055a62f8c3a0b32cffca32  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr121118_1.c
+ 4b3b421e52a2297ee3fdf3f39e2b6294  gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr123392.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
*************** bf328a0ed3cadaf01cdcd516cb16a2eb  gcc/te
*** 65751,65765 ****
--- 75581,75599 ----
  21cf8f26265cb4080b1703c09d296dc5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_5.c
  ef386f442776c7325a9c4120d5f0f1cd  gcc/testsuite/gcc.target/aarch64/sve/acle/general/qincb_1.c
  884f0309ada7f457179926eca68ecf14  gcc/testsuite/gcc.target/aarch64/sve/acle/general/rev-1.c
+ 52959d72e6279c53e3e28e80ecb896fe  gcc/testsuite/gcc.target/aarch64/sve/acle/general/rev_2.c
  b73d2b4b9aeaceb7898b89f8e147cc04  gcc/testsuite/gcc.target/aarch64/sve/acle/general/stack_vars_1.c
  a60971180940fb9126dc3f2440073c3a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/struct_1.c
  9404c4e4b822b81b48891a1fe0625266  gcc/testsuite/gcc.target/aarch64/sve/acle/general/temporaries_1.c
  01c228bca66f0def69756fae10d3ddbf  gcc/testsuite/gcc.target/aarch64/sve/acle/general/undef_1.c
  de2f1d6ff8c05a5ea5ffb81b8ce61ce2  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unoptimized_1.c
+ fd677c49e04614f005b51ddc46291259  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unpkhi_1.c
+ 3cecabd6642340418348a991676fa78b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/unpklo_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
+ daa82a42e977306c4d1764e7fced8896  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_13.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
*************** cbc14176bcaf520187ca5e1cb7a290ba  gcc/te
*** 65772,65778 ****
  f4c9f8f5a8d604bc447fb7d463e7735f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_2.c
  14793ed2e5397935138c3dfaf3068f34  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_3.c
  0806391c016c8debb474b7d2ccb7f9e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_4.c
! 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
--- 75606,75613 ----
  f4c9f8f5a8d604bc447fb7d463e7735f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_2.c
  14793ed2e5397935138c3dfaf3068f34  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_3.c
  0806391c016c8debb474b7d2ccb7f9e1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_4.c
! a01ecfddff6a97f8ab51ac44399e1b21  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_5.c
! 8d27746de2e197744e83115819fe44f7  gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilelt_6.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
*************** b77d57f6ab3a698dfef1798ec4ada94d  gcc/te
*** 65786,65792 ****
  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
--- 75621,75628 ----
  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
! 1daf19df597a9b2315d45de48190c8c5  gcc/testsuite/gcc.target/aarch64/sve/adr_7.c
! 4d6f55d2e55ef850e5912c9bb834274e  gcc/testsuite/gcc.target/aarch64/sve/arith_1.c
  efb1c357526ad1218a7cda47ab799c9e  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_1.c
  d21de60c71043234f5e72b2fc5db1cbd  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_2.c
  ca05d4d119e7e722a18d2fcc13759d76  gcc/testsuite/gcc.target/aarch64/sve/asrdiv_3.c
*************** d4b0fcf49dbdac56043aee98347c8ccf  gcc/te
*** 65854,65860 ****
  ae054ca80eef5370f60b398f80ca624e  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4_run.c
  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
--- 75690,75696 ----
  ae054ca80eef5370f60b398f80ca624e  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_4_run.c
  de20c023bfdec615e3bef202481b8941  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5.c
  f76243fd74d976c03e9e9c6e2d0e09af  gcc/testsuite/gcc.target/aarch64/sve/cond_arith_5_run.c
! 4284c6aa8428caa5765f8965c8b50e49  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
*************** e342b7fa2ce17d6cfd00030f2f3965d3  gcc/te
*** 65905,65939 ****
  b7e78bb84de099569d29a829e069cbdf  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_3_run.c
  c1b6e314ccc33e03e318141e9a67069b  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4.c
  55463c73d53ad6c6f93532abb0d0d552  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4_run.c
! af64548da7f47f6a202ea5953ca15ef1  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c
  52ad44c429dd4422f4d2b6df0bc07c76  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1_run.c
  0e39b871b01c57f14ac862a3eb53f539  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2.c
  4f4c4f4271455020fb6894fc107221cc  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2_run.c
! a9011591514f41bfbf412e1d14722ccd  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c
  ddd887045f18a8bdbd5ea03c2be74ead  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3_run.c
  ed0725bcf9e92ab9ac36431f961b9cc4  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4.c
  5d0164ab19fb2d3a475e4c49404e6d37  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4_run.c
! 255724ac8f1fd5046f2a61e3ffe96ff6  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c
  4143d896ad644326abf04f2b78eb5657  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5_run.c
  7c79e4a6bddad22f81765621d082f8f7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6.c
  6b9d997f46ff754be60685b03f7f9f9b  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6_run.c
! 50a9691073a09c419c2eb6f74d1163d9  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c
  bcbe3911107a0e5f6ec93ba07374f7cf  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7_run.c
  2582af230415294ef0fdbbce5eaf98b7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8.c
  536b8c04dedf9aea2a6d0bffbcbed9db  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8_run.c
! 122f43160b9c9681ce52d47414f6a442  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c
  985c02baa1eb3b8662cea45d283cdd8d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1_run.c
  4126dfd7f4389791ba015171cd50d14a  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2.c
  73bc939fd112bd89fb6ebcf9c2b3c1d7  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2_run.c
! c36a4e3f148f7cb41bef2e12e3c78894  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c
  43b9e59595cc7b2077539f3a4c3ed6ab  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3_run.c
  52416dc564668b88d5f9fadb4eef79a2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4.c
  5a317dfa59b3956cff5f1499b918bd91  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4_run.c
! 2ff6bcc714c4f4bfe23cad232b6323dc  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c
  85cfccab508119dd4190588ea187006d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5_run.c
  4868f87f122beefa61bfa0b0bb178c95  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6.c
  3a0da1ce19d97db921f6f2eee2a79cdb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6_run.c
! f83306845da84bdf6848aae05c5a2e09  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c
  072ae2d9a5e9d32d48faa5e62b996609  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7_run.c
  64db42388579ec976e07f51afc168086  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8.c
  cb1bf1ff48a5e6bb1ba79530c0b05adb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8_run.c
--- 75741,75775 ----
  b7e78bb84de099569d29a829e069cbdf  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_3_run.c
  c1b6e314ccc33e03e318141e9a67069b  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4.c
  55463c73d53ad6c6f93532abb0d0d552  gcc/testsuite/gcc.target/aarch64/sve/cond_fadd_4_run.c
! 522b2b22a6513e32c8b3d8daea434091  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c
  52ad44c429dd4422f4d2b6df0bc07c76  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1_run.c
  0e39b871b01c57f14ac862a3eb53f539  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2.c
  4f4c4f4271455020fb6894fc107221cc  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_2_run.c
! 9bdcc5492ddc34480b3276f2dd744781  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c
  ddd887045f18a8bdbd5ea03c2be74ead  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3_run.c
  ed0725bcf9e92ab9ac36431f961b9cc4  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4.c
  5d0164ab19fb2d3a475e4c49404e6d37  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_4_run.c
! 5385f472173e0093e79ed44e8f754cae  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c
  4143d896ad644326abf04f2b78eb5657  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5_run.c
  7c79e4a6bddad22f81765621d082f8f7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6.c
  6b9d997f46ff754be60685b03f7f9f9b  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_6_run.c
! 6415ab916f51b37ff8781f55ac80ef28  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c
  bcbe3911107a0e5f6ec93ba07374f7cf  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7_run.c
  2582af230415294ef0fdbbce5eaf98b7  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8.c
  536b8c04dedf9aea2a6d0bffbcbed9db  gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_8_run.c
! d53074302b671ed0213d95351f985dc3  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c
  985c02baa1eb3b8662cea45d283cdd8d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1_run.c
  4126dfd7f4389791ba015171cd50d14a  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2.c
  73bc939fd112bd89fb6ebcf9c2b3c1d7  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_2_run.c
! cfc1ede9abf6a933d31c314278c77af2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c
  43b9e59595cc7b2077539f3a4c3ed6ab  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3_run.c
  52416dc564668b88d5f9fadb4eef79a2  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4.c
  5a317dfa59b3956cff5f1499b918bd91  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_4_run.c
! 228d357fbe66d8fa4103feecf2d74d8e  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c
  85cfccab508119dd4190588ea187006d  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5_run.c
  4868f87f122beefa61bfa0b0bb178c95  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6.c
  3a0da1ce19d97db921f6f2eee2a79cdb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_6_run.c
! 590f584446e957a355839677680aeb32  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c
  072ae2d9a5e9d32d48faa5e62b996609  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7_run.c
  64db42388579ec976e07f51afc168086  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8.c
  cb1bf1ff48a5e6bb1ba79530c0b05adb  gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_8_run.c
*************** e0705706a25a622a4b620338485c3a81  gcc/te
*** 65941,65947 ****
  780caf8bf7717806fd0f84c048ee97eb  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_1_run.c
  b52b14b2138a13194cbcff7473ba55c2  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2.c
  9b41da0f2564c3e3cd852e1d56df5f02  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2_run.c
! db31a01de9a664cdd1699730c8547625  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c
  b3f9c3240fdec2e7408c3b787bce4286  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3_run.c
  64405df4d9f806fb4184767b01f9c860  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4.c
  17d8db4e44cf467bc1ad2287738ba543  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4_run.c
--- 75777,75783 ----
  780caf8bf7717806fd0f84c048ee97eb  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_1_run.c
  b52b14b2138a13194cbcff7473ba55c2  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2.c
  9b41da0f2564c3e3cd852e1d56df5f02  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_2_run.c
! 91360f9fed72086b784ec8ca1f5f9c23  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c
  b3f9c3240fdec2e7408c3b787bce4286  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3_run.c
  64405df4d9f806fb4184767b01f9c860  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4.c
  17d8db4e44cf467bc1ad2287738ba543  gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_4_run.c
*************** f2191497eb739d9ec3a96c5a36857dfd  gcc/te
*** 65950,65956 ****
  ee8d2477e2e6cf35e0492bebab2e9489  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_1_run.c
  788b065dda79085ad117d4c5ee3206af  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2.c
  b49937ef28a030ead746bd998f7615f8  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2_run.c
! c4faae715d420146a671be7133e7d2d5  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c
  1f4683a4b21ba9b1d47640e96be2a910  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3_run.c
  22726669d5957ace143b58895f3023ee  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4.c
  ef680420f6ef6266e296ac66c3bcb651  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4_run.c
--- 75786,75792 ----
  ee8d2477e2e6cf35e0492bebab2e9489  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_1_run.c
  788b065dda79085ad117d4c5ee3206af  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2.c
  b49937ef28a030ead746bd998f7615f8  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_2_run.c
! acb3ec20afbb72325d43b93ff2d327da  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c
  1f4683a4b21ba9b1d47640e96be2a910  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3_run.c
  22726669d5957ace143b58895f3023ee  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4.c
  ef680420f6ef6266e296ac66c3bcb651  gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_4_run.c
*************** a04b176d1f4debec96b6eb4ccec14017  gcc/te
*** 66047,66060 ****
  71c5caab96e622a30a87c1e7d8fe0048  gcc/testsuite/gcc.target/aarch64/sve/cost_model_11.c
  246db2ce2d061b4faf830feefc2d4165  gcc/testsuite/gcc.target/aarch64/sve/cost_model_12.c
  f5f51f0ce22434617d58b4330621ef23  gcc/testsuite/gcc.target/aarch64/sve/cost_model_13.c
! c5c994981c93e2e000c8d8ff085fc54e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_14.c
  d5b139bd861ddd97284d5f818eb70a78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
  e918451f74d084e54a9a7ceb98f0bf8e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_2.c
  8814c7380f5de0a24225ed6e4ac88c89  gcc/testsuite/gcc.target/aarch64/sve/cost_model_3.c
! bd604bfadfafeee51abf031d456ada7f  gcc/testsuite/gcc.target/aarch64/sve/cost_model_4.c
! 51a1e8a5cf0138fd5b2354face18a382  gcc/testsuite/gcc.target/aarch64/sve/cost_model_5.c
! cc0c9e0c6024d95df387c59dbbc3b810  gcc/testsuite/gcc.target/aarch64/sve/cost_model_6.c
! 287d12acddbd300dbe42a10ea2ecfd6a  gcc/testsuite/gcc.target/aarch64/sve/cost_model_7.c
  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
--- 75883,75900 ----
  71c5caab96e622a30a87c1e7d8fe0048  gcc/testsuite/gcc.target/aarch64/sve/cost_model_11.c
  246db2ce2d061b4faf830feefc2d4165  gcc/testsuite/gcc.target/aarch64/sve/cost_model_12.c
  f5f51f0ce22434617d58b4330621ef23  gcc/testsuite/gcc.target/aarch64/sve/cost_model_13.c
! ff2b9241bd177f9b139fbf6fbf043cb3  gcc/testsuite/gcc.target/aarch64/sve/cost_model_14.c
  d5b139bd861ddd97284d5f818eb70a78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
+ 82239b2f3077b0e6169d2e18be25268d  gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c
+ b78d0d1274ed1cd074cd6302e8ae2dcc  gcc/testsuite/gcc.target/aarch64/sve/cost_model_17.c
+ 37d810c6bbb9c676752ca4c72f3439ab  gcc/testsuite/gcc.target/aarch64/sve/cost_model_18.c
+ a7a8828e5abc7518b53781c38c0daa76  gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c
  e918451f74d084e54a9a7ceb98f0bf8e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_2.c
  8814c7380f5de0a24225ed6e4ac88c89  gcc/testsuite/gcc.target/aarch64/sve/cost_model_3.c
! a8a25f8db5e9498491012098a710bc72  gcc/testsuite/gcc.target/aarch64/sve/cost_model_4.c
! 0add08eb61d6826ccc492635d021fc78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_5.c
! b194a978ee74059cc3e702a67f6efd7d  gcc/testsuite/gcc.target/aarch64/sve/cost_model_6.c
! e6056f8769c9e755c4865c320478f63c  gcc/testsuite/gcc.target/aarch64/sve/cost_model_7.c
  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
*************** d40889fae1768a14cef6690dad5cc3e8  gcc/te
*** 66067,66077 ****
--- 75907,75920 ----
  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
+ a3c2384d6eb0f93991acb4c6b23fee98  gcc/testsuite/gcc.target/aarch64/sve/dup-insr-1.c
+ 4368190aeea11dd122ed02d629622b24  gcc/testsuite/gcc.target/aarch64/sve/dup-insr-2.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
  f75cd152d1ea63349f09ef48040ff809  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_3.c
+ dc3237178be6599bbf6062f3731243ef  gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c
  f8aebeb8f0a738c291cd7acbf0c1cd2e  gcc/testsuite/gcc.target/aarch64/sve/ext_1.c
  5a6168e8f8698cd82ef986d8c867fcc0  gcc/testsuite/gcc.target/aarch64/sve/ext_2.c
  d0e1d8fee3d430dd78f1f6b60a9c0f79  gcc/testsuite/gcc.target/aarch64/sve/ext_3.c
*************** d0e1d8fee3d430dd78f1f6b60a9c0f79  gcc/te
*** 66080,66090 ****
  c586ed3d32d5df8a6105efcebd07dd98  gcc/testsuite/gcc.target/aarch64/sve/extend_2.c
  4063928cf46e04fc803834e77ff45a36  gcc/testsuite/gcc.target/aarch64/sve/extend_3.c
  216fd1111249112979d7d82a869c8495  gcc/testsuite/gcc.target/aarch64/sve/extend_4.c
! 04191a4d4d75417424c3d95727822922  gcc/testsuite/gcc.target/aarch64/sve/extract_1.c
! 45d4ff9780e3f5ccc2de4d60744d91e4  gcc/testsuite/gcc.target/aarch64/sve/extract_2.c
! 38ce0204158a9156bd579c55e039828a  gcc/testsuite/gcc.target/aarch64/sve/extract_3.c
! 242819b8729a14c05843c059ae623c03  gcc/testsuite/gcc.target/aarch64/sve/extract_4.c
  78032a462f8d255b37f9ae88a948b638  gcc/testsuite/gcc.target/aarch64/sve/extract_5.c
  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
--- 75923,75934 ----
  c586ed3d32d5df8a6105efcebd07dd98  gcc/testsuite/gcc.target/aarch64/sve/extend_2.c
  4063928cf46e04fc803834e77ff45a36  gcc/testsuite/gcc.target/aarch64/sve/extend_3.c
  216fd1111249112979d7d82a869c8495  gcc/testsuite/gcc.target/aarch64/sve/extend_4.c
! 4342c61fca900bd9282eb44e5b1de16c  gcc/testsuite/gcc.target/aarch64/sve/extract_1.c
! 953a88c9d956303bd9fdbee772753698  gcc/testsuite/gcc.target/aarch64/sve/extract_2.c
! b29187dd713f9031aad922d669e91910  gcc/testsuite/gcc.target/aarch64/sve/extract_3.c
! 55a05a208cea023e99527342f237a2ec  gcc/testsuite/gcc.target/aarch64/sve/extract_4.c
  78032a462f8d255b37f9ae88a948b638  gcc/testsuite/gcc.target/aarch64/sve/extract_5.c
+ e0de69a03b3b020b9fb39370eafda702  gcc/testsuite/gcc.target/aarch64/sve/extract_last_128.c
  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
*************** b1f34999111510e2f313342976d93991  gcc/te
*** 66123,66128 ****
--- 75967,75974 ----
  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
+ c88a31bae93602f8e799fc7c08ccddb9  gcc/testsuite/gcc.target/aarch64/sve/fold_to_highpart_1.c
+ d78e13694c172efacf8d824d3b5062b1  gcc/testsuite/gcc.target/aarch64/sve/fold_to_highpart_2.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
*************** bd8ad36b193f06daf43a6e95db5aef0d  gcc/te
*** 66160,66166 ****
  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
--- 76006,76012 ----
  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
! 9cb4914b10e6d25144bd6ca1d83087a5  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
*************** d098f88d65a88babb305124cb2cb7666  gcc/te
*** 66198,66203 ****
--- 76044,76051 ----
  cb93afa281da4a2d3cf91e28d3cc69bf  gcc/testsuite/gcc.target/aarch64/sve/ld1r_1.c
  aad68f8e924a8c091e990343009eb711  gcc/testsuite/gcc.target/aarch64/sve/ld1r_2.c
  8c6fc9ab810188210a988ce10c21452b  gcc/testsuite/gcc.target/aarch64/sve/ld1r_2_run.c
+ 035072d856617adf9545fdab7c0ec9ea  gcc/testsuite/gcc.target/aarch64/sve/ldst_ptrue_128_to_neon.c
+ b7a8d8626343550884700e0f894b1406  gcc/testsuite/gcc.target/aarch64/sve/ldst_ptrue_pat_128_to_neon.c
  1ea09f2a19c46ad516d0eb5b6d131af4  gcc/testsuite/gcc.target/aarch64/sve/live_1.c
  923bb31c870842be1bdc0760f07e09fa  gcc/testsuite/gcc.target/aarch64/sve/live_1_run.c
  39ed1486d973a97f97b58e0b6c511eab  gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_1.c
*************** b7284adec21d80573a852744d3773966  gcc/te
*** 66262,66267 ****
--- 76110,76116 ----
  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
+ 360f665ab7f041b257409ffaa81a2b56  gcc/testsuite/gcc.target/aarch64/sve/mask_load_2.c
  f6a3d086c2e96143317e844a1a523358  gcc/testsuite/gcc.target/aarch64/sve/mask_load_slp_1.c
  33047a915e1581d35186161bbca699ee  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_1.c
  606025785cdd6d1660f408e9fe34b4b3  gcc/testsuite/gcc.target/aarch64/sve/mask_scatter_store_2.c
*************** bb1234eb13ea14f4c41d1b1c3fb36a31  gcc/te
*** 66296,66302 ****
  31a237aa8702170aa5dae24d46fbd35e  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_3.c
  1a41c5a000a8569d571836bc9d072a51  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_4.c
  ed8c00bb799512fa988960af6397117a  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_5.c
! 7869ba42049d38dc9e0e673f198b615f  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c
  09ebdb04872424b83aad0af43f03dfa4  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_7.c
  6aea5bdfc452b758750b7b674e6562ae  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_8.c
  3a2b3ac68ec5a5d4dbd3ece209e5d84c  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_9.c
--- 76145,76151 ----
  31a237aa8702170aa5dae24d46fbd35e  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_3.c
  1a41c5a000a8569d571836bc9d072a51  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_4.c
  ed8c00bb799512fa988960af6397117a  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_5.c
! b960e941e12ef960b109511b7e86511b  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c
  09ebdb04872424b83aad0af43f03dfa4  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_7.c
  6aea5bdfc452b758750b7b674e6562ae  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_8.c
  3a2b3ac68ec5a5d4dbd3ece209e5d84c  gcc/testsuite/gcc.target/aarch64/sve/mixed_size_9.c
*************** c1b4210e7c857e81f9f5dd17c8019137  gcc/te
*** 66323,66337 ****
  82a96e648c528899d2018dd434c8c574  gcc/testsuite/gcc.target/aarch64/sve/override_sve_width_1.c
  88297aa00c0ea56bf3fce0f8ccae0962  gcc/testsuite/gcc.target/aarch64/sve/pack_1.c
  d3c80688ca6e46a07411a695aff6365c  gcc/testsuite/gcc.target/aarch64/sve/pack_1_run.c
! a560e8d33bc4b495e1f23d0645271de2  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1.c
  40250c68c4a2717b364222c87b1065a7  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c
! bd0ea7412913a5ce083ddea4613bd169  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_unsigned_1.c
  38e3035a77b1dca0127d31c369ecc94a  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_unsigned_1_run.c
! 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
--- 76172,76186 ----
  82a96e648c528899d2018dd434c8c574  gcc/testsuite/gcc.target/aarch64/sve/override_sve_width_1.c
  88297aa00c0ea56bf3fce0f8ccae0962  gcc/testsuite/gcc.target/aarch64/sve/pack_1.c
  d3c80688ca6e46a07411a695aff6365c  gcc/testsuite/gcc.target/aarch64/sve/pack_1_run.c
! b77934473484d435442fe6d45fab9ccf  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1.c
  40250c68c4a2717b364222c87b1065a7  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_signed_1_run.c
! b6a10f01c0e7852c04bd29416af21fd9  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_unsigned_1.c
  38e3035a77b1dca0127d31c369ecc94a  gcc/testsuite/gcc.target/aarch64/sve/pack_fcvt_unsigned_1_run.c
! d9ca3ace725686a9292fe9e1d496d379  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
! 60e2953c658840fee595e33dfdd01d56  gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
! 5ea2d21295dbde4f04dab1e20eca2bcb  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c
  12aa85f0e82269d5ce573bf2a833c8e4  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_2.c
  ff3fcd6f14498877abd750ef54b75814  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_3.c
  687e745f899a3a5a0d1d2cf63a2eb6fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_4.c
*************** c1006feea3c9b78bab24f56562463c2b  gcc/te
*** 66401,66409 ****
  95b39f5e70575f426a47e83d7975f948  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_7.c
  67f30b172f3a75ebd579c8c1533513d1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_8.c
  13d714787495af941d7e4d798bb6c2b4  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_9.c
! f18202de4dff9630d08a3ca727a71cc6  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_1.c
  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
--- 76250,76258 ----
  95b39f5e70575f426a47e83d7975f948  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_7.c
  67f30b172f3a75ebd579c8c1533513d1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_8.c
  13d714787495af941d7e4d798bb6c2b4  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_9.c
! 885a126a4eccdeaefa0435d427a3b548  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_1.c
  8ce7d348db223538fc712dc7bc5b77bb  gcc/testsuite/gcc.target/aarch64/sve/pcs/asm_2.c
! 30a8009979400181e5674c5358351fb7  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
*************** d3aa01a293830f92f6727f864fa00976  gcc/te
*** 66426,66442 ****
  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
--- 76275,76291 ----
  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
! 575464aff122024c96b94cef8ef2cece  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
! 603656a8a482372609787a2a94bd82d0  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
! 83965b8e59489a75de8e8f47f5458a64  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c
  884b16b34842e8df61c7b592e1b3ddbd  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_1024.c
  34b02df48c6dc194c54ed03f4f029fed  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_128.c
  32241c7f00245fd98f5c5f3e220e7585  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6_2048.c
*************** d3252738fa0db5bfceb3e80d9754a54f  gcc/te
*** 66482,66526 ****
  859d5154812c85cbc1e73c45328f242a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_2048.c
  4f44041e2c506ee8f11eda5ef8e6d82a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_256.c
  10f8dc4eefc15929b133ffd9eb7d8dcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_512.c
! 139d23c174acc64b4bf4cf3ef2a0fbe5  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_128.c
  dbe89864fb99377871dd0d209abfd059  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_256.c
  ff2ac4b70a46e17015348c2091d8ca97  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_512.c
  4d884f04b08f8626de41656c2dc89c2b  gcc/testsuite/gcc.target/aarch64/sve/pcs/unprototyped_1.c
  dbe533f64021d2fa4e2cf74186903196  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_1.c
! 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
! 891c4efe75f04b2650a60ecc278f3998  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s8.c
! c8051d438f3559bb51bdf7f23df5e8b4  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u16.c
! 3bda56f7c9d9a02448bb01c7fa1ac729  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u32.c
! 64f58d32f1f6e53fb82de95204847208  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u64.c
! be784ca9a5ddf6f066bc7915b4142d38  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u8.c
  85a82347712f37364a3d0b53b010504a  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_nosc.c
  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/testsuite/gcc.target/aarch64/sve/peel_ind_3.c
  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
--- 76331,76389 ----
  859d5154812c85cbc1e73c45328f242a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_2048.c
  4f44041e2c506ee8f11eda5ef8e6d82a  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_256.c
  10f8dc4eefc15929b133ffd9eb7d8dcc  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_2_512.c
! 284884206f1f6904d0af7df86bab5340  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_128.c
  dbe89864fb99377871dd0d209abfd059  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_256.c
  ff2ac4b70a46e17015348c2091d8ca97  gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_3_512.c
  4d884f04b08f8626de41656c2dc89c2b  gcc/testsuite/gcc.target/aarch64/sve/pcs/unprototyped_1.c
  dbe533f64021d2fa4e2cf74186903196  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_1.c
! 137a20c72bf0967e9dfa06e3cfc38442  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f16.c
! 028675972ec81ed19039f2ca5accca46  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f32.c
! 8ce890de233e7e66ba419b4ed95c2b3c  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_f64.c
! 7ff5e0f7e041ef151a559f8cd2980ccc  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_mf8.c
! f7b0aacec1e45b10755438874af7ee95  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s16.c
! cd2cb5c3e2da9ab31c1481d7b9a003a6  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s32.c
! 0e8e75badae172b7078216345703be3a  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s64.c
! 2fe9e4d3396f4bf240618b5c1122244f  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_s8.c
! 1483e0851596b8848875d53f9258327b  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u16.c
! 5e2d5ac9a0afccfd7a1471ffc1b8b487  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u32.c
! f08d260351556fa526d2efd22741feac  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u64.c
! c4376c1119d32edd62dbdbdd08e49357  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_2_u8.c
  85a82347712f37364a3d0b53b010504a  gcc/testsuite/gcc.target/aarch64/sve/pcs/varargs_3_nosc.c
  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
! 8bef931766847ec59104d2c0e634ebdc  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_10.c
  97cb7e7106f61ce2e128ef8e2b287a5c  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_10_run.c
+ 48f4ea91fe32d9db4dadfae2c0a0c3ff  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_11.c
+ c7be3d386d00158fa4fd485f85997a4a  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_11_run.c
+ 7ddff511133c5f683dc6a1b874d8d99c  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_12.c
+ cf5911e80d16a3e85670a00b9b169a70  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_12_run.c
+ d3421111b9d0c71bb816a189ca9c6c62  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_13.c
+ 218cc357e6fab35253ba0c9af84d11b1  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_13_run.c
+ c3358aa7b955c665c757a81bdcdcb97d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_14.c
+ 19c5097d7e7f2a6df3239d55402b6c14  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_14_run.c
+ c3358aa7b955c665c757a81bdcdcb97d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_15.c
+ fb6baf73912dea8e3fa8332b961542f3  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_15_run.c
+ c3358aa7b955c665c757a81bdcdcb97d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_16.c
+ d539b9b1cb1d3660f07351b16bfe12ba  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_16_run.c
+ 1f9ed3d52287b537bc5db440e591252a  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_17.c
+ 5d3087fe0f6aef08674b523b2be56be7  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_17_run.c
  554f0eec3d39895e8e465acc9954378d  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_1_run.c
! 11928fb92734ba578ca3c71362426cd8  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2.c
  40ef61fe1aa9144c65314b0f7a98fa78  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_2_run.c
  f247489d5a83c25a52bba3f69ccf6256  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_3.c
  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
! 296886176649f0150a4995388ccf9532  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_5.c
  18a6ad16f13652d9952e15b1750c616b  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_5_run.c
! 336a20adec6314980abd0ddc33469541  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_6.c
  b1e0ab67bd9b4e977b64d2d732eb8645  gcc/testsuite/gcc.target/aarch64/sve/peel_ind_6_run.c
! a0d8941570721c4f6ebf3bbc7cd76220  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
! 172591c112a8b5c061dcff6562b7b7ed  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
*************** dd3e101cb045787be845e9304a8e7712  gcc/te
*** 66555,66561 ****
  4926ec7d3490e08069b61317f82b1b8a  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction.c
  3814331ee6720cedc5a8dfcac60d00cd  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction_wide.c
  f39127ce179dc24aa6d22b4e592f8aea  gcc/testsuite/gcc.target/aarch64/sve/pfalse-shift_right_imm.c
! c8a2e98f22c98163c6c8effa275cae7c  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store.c
  21411e023bc24bbb15125db9398cebfb  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_index.c
  f07c3cdd899cd5b59fde4f3d94e83812  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_offset.c
  d599ad800782107a46820288dae6e455  gcc/testsuite/gcc.target/aarch64/sve/pfalse-storexn.c
--- 76418,76424 ----
  4926ec7d3490e08069b61317f82b1b8a  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction.c
  3814331ee6720cedc5a8dfcac60d00cd  gcc/testsuite/gcc.target/aarch64/sve/pfalse-reduction_wide.c
  f39127ce179dc24aa6d22b4e592f8aea  gcc/testsuite/gcc.target/aarch64/sve/pfalse-shift_right_imm.c
! a0ddefef0f204efc6871d2d019fd2905  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store.c
  21411e023bc24bbb15125db9398cebfb  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_index.c
  f07c3cdd899cd5b59fde4f3d94e83812  gcc/testsuite/gcc.target/aarch64/sve/pfalse-store_scatter_offset.c
  d599ad800782107a46820288dae6e455  gcc/testsuite/gcc.target/aarch64/sve/pfalse-storexn.c
*************** df238b64cc974628a48afaac0cd271a1  gcc/te
*** 66595,66602 ****
  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
--- 76458,76491 ----
  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
! 49634f528a782a09d2e4cdcc681eee91  gcc/testsuite/gcc.target/aarch64/sve/pr119156_1.c
! eb595403e04074873b00c432743dde72  gcc/testsuite/gcc.target/aarch64/sve/pr119351.c
  fba890ec69e5613e555983284ebab389  gcc/testsuite/gcc.target/aarch64/sve/pr119351_run.c
+ ecd052b8b25dcdd22b9bc9b4afdddf04  gcc/testsuite/gcc.target/aarch64/sve/pr121604_brk.c
+ 84d53e47a2bd0ee9db70c24448d92f33  gcc/testsuite/gcc.target/aarch64/sve/pr122069_1.c
+ f3c32f052e49d3e8c461ebbc88a7bd49  gcc/testsuite/gcc.target/aarch64/sve/pr122069_2.c
+ 7bfa8eb7f05bafc051b2cd771b750e7e  gcc/testsuite/gcc.target/aarch64/sve/pr122103_1.c
+ d6acea087a556597ab3449954e06312f  gcc/testsuite/gcc.target/aarch64/sve/pr122103_2.c
+ 82452ade67914232d12ec034c617682b  gcc/testsuite/gcc.target/aarch64/sve/pr122103_3.c
+ a0596bc98ced318afc176ba91f279b2f  gcc/testsuite/gcc.target/aarch64/sve/pr122103_4.c
+ c61eb748774c3997f4f52d2a5d4132a2  gcc/testsuite/gcc.target/aarch64/sve/pr122103_5.c
+ bcf63cd298e561e95388f76d4fa49d65  gcc/testsuite/gcc.target/aarch64/sve/pr122103_6.c
+ 787f78e68b3a0cfcc289602c07c04347  gcc/testsuite/gcc.target/aarch64/sve/pr122749_1.c
+ 67062eaec9ae3224c36751ccaefbce3c  gcc/testsuite/gcc.target/aarch64/sve/pr122749_11.c
+ af03b22c378349ae57e38d7657eaaf8b  gcc/testsuite/gcc.target/aarch64/sve/pr122749_12.c
+ 17d8890d0565405194a5f2ece2074a3f  gcc/testsuite/gcc.target/aarch64/sve/pr122749_13.c
+ 93cb300faa8c50ec6bd23f8afdcc9f65  gcc/testsuite/gcc.target/aarch64/sve/pr122749_14.c
+ d42dd1ea70f8104be50f2b828342ef9a  gcc/testsuite/gcc.target/aarch64/sve/pr122749_2.c
+ 06187abc9003f2d1adb2e02157405091  gcc/testsuite/gcc.target/aarch64/sve/pr122749_3.c
+ 7146345d7bbba48a49c1bf4ab9a84ed3  gcc/testsuite/gcc.target/aarch64/sve/pr122749_4.c
+ 0f6b741c106e1ed50c39671efe5cf753  gcc/testsuite/gcc.target/aarch64/sve/pr122749_5.c
+ b88eab54dea3d3e5a60ff794d3268d8e  gcc/testsuite/gcc.target/aarch64/sve/pr122749_6.c
+ d4ac7a84edd49408935038ba429c4a6d  gcc/testsuite/gcc.target/aarch64/sve/pr122749_8.c
+ aab87b2d9daa75eaf07f2f4e47d63c11  gcc/testsuite/gcc.target/aarch64/sve/pr122749_9.c
+ 806909efa49b7a7a797b079996626314  gcc/testsuite/gcc.target/aarch64/sve/pr123697.c
+ 8d516514d55b6987b8c79e9e3ce2bdb1  gcc/testsuite/gcc.target/aarch64/sve/pr123767.c
+ 777fa618dc2e814b8354442c6286d350  gcc/testsuite/gcc.target/aarch64/sve/pr123897.c
+ 91a4ca000e76de583f0631d5cb19a12a  gcc/testsuite/gcc.target/aarch64/sve/pr123898.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
*** 66614,66620 ****
  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
--- 76503,76509 ----
  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
! 58dac0eb9ed3737fb1dc6ce672960c6e  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
*************** a866cb5b08078d8fe7c2f8ead2f55150  gcc/te
*** 66643,66655 ****
  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
  be3bc45b321c4b84deacc9d04819a288  gcc/testsuite/gcc.target/aarch64/sve/recip_1.c
  10036db7501b487e51b495a4a2d24cca  gcc/testsuite/gcc.target/aarch64/sve/recip_1_run.c
  3add3c4eeb186f7df0ea71734e4f8388  gcc/testsuite/gcc.target/aarch64/sve/recip_2.c
--- 76532,76545 ----
  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
! 8d3c229f6dadd0c3f09f5f06ee9cc573  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_1.c
! 5a60ebd350ae5163b8b5cad1a672c63f  gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_2.c
! 4f3511b8c284631ce25bfb4ac9aa76d3  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
+ d9e5fc3ae7f311f70ee05c06f1575ee5  gcc/testsuite/gcc.target/aarch64/sve/ptrue_ldr_str.c
  be3bc45b321c4b84deacc9d04819a288  gcc/testsuite/gcc.target/aarch64/sve/recip_1.c
  10036db7501b487e51b495a4a2d24cca  gcc/testsuite/gcc.target/aarch64/sve/recip_1_run.c
  3add3c4eeb186f7df0ea71734e4f8388  gcc/testsuite/gcc.target/aarch64/sve/recip_2.c
*************** a8c77b95bd5326b0cdaee7971136285d  gcc/te
*** 66726,66738 ****
  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
--- 76616,76631 ----
  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
+ a5ae2342f8f72007966a656463efd22c  gcc/testsuite/gcc.target/aarch64/sve/shift_rev_1.c
+ 9e87971c4050e3bb84b6706a071995d7  gcc/testsuite/gcc.target/aarch64/sve/shift_rev_2.c
+ a6c0f7a9c973fa9d847b30b27ee5b521  gcc/testsuite/gcc.target/aarch64/sve/shift_rev_3.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
! bd41758e7f9337d1504182a29ac2f34a  gcc/testsuite/gcc.target/aarch64/sve/single_1.c
! 0021a0b0c231fa7c1306d6bfb4968e05  gcc/testsuite/gcc.target/aarch64/sve/single_2.c
! c69b4bba1e19dad1933f8dab40b611ec  gcc/testsuite/gcc.target/aarch64/sve/single_3.c
! 6a7ed656f683a5152eaca3d77adad186  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
*************** a421d5e1fc09e2a43ba0b51529d4676c  gcc/te
*** 66803,66812 ****
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
  7bb9d9ea37daaacbf18621685d270327  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
  e46489e97fa0b54c4ca2d629d83b5ae0  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 0fc11e16f784b5a11d733d97272640fe  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
! 739efc32763daeb96b2e4d3126d70691  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
  21f69cb5983d978f0940cd4276f79f38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
  85e5cc4b396e8562e07edd1d651a5d11  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
  3570da632a0c77f29e0b51bb74695f19  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
--- 76696,76705 ----
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
  7bb9d9ea37daaacbf18621685d270327  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
  e46489e97fa0b54c4ca2d629d83b5ae0  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 9c4919c4f580d47a4d376141d0409833  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
! 874639c6e54b8300c1a3e278de48e09a  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
  21f69cb5983d978f0940cd4276f79f38  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
  85e5cc4b396e8562e07edd1d651a5d11  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
  3570da632a0c77f29e0b51bb74695f19  gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
*************** b4ad4ea3e1b8b235e71beb9786be1032  gcc/te
*** 66876,66892 ****
  d3805ccb98774fc60783e0d714834aa0  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c
  8f91aaf06d470b496de41940f3e49d4c  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c
  32a0ff26410cd0894dafd6f7f0d291a2  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c
! b57de878cb338939c71466f3393bfaf2  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1.c
  e7a3b62d81ab7c0991182b370fdfe06f  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1_run.c
  6831c41ec32a11ef4790d4d2c2a2b2ae  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1.c
  0dac8ce2706a1e811d4ef39d2e7c0c52  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1_run.c
  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
--- 76769,76872 ----
  d3805ccb98774fc60783e0d714834aa0  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_signed_1_run.c
  8f91aaf06d470b496de41940f3e49d4c  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1.c
  32a0ff26410cd0894dafd6f7f0d291a2  gcc/testsuite/gcc.target/aarch64/sve/unpack_fcvt_unsigned_1_run.c
! fcbf89de7cda852a69ca11af8d2b9dd8  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1.c
  e7a3b62d81ab7c0991182b370fdfe06f  gcc/testsuite/gcc.target/aarch64/sve/unpack_float_1_run.c
  6831c41ec32a11ef4790d4d2c2a2b2ae  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1.c
  0dac8ce2706a1e811d4ef39d2e7c0c52  gcc/testsuite/gcc.target/aarch64/sve/unpack_signed_1_run.c
  5fc3acd66e8ad342f32e01a87a71ead4  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1.c
  61ef61cfc6c64004c59a9698eaaf6e47  gcc/testsuite/gcc.target/aarch64/sve/unpack_unsigned_1_run.c
+ cbb583e769346a705a9db461beac3cce  gcc/testsuite/gcc.target/aarch64/sve/unpacked_builtin_fmax_1.c
+ 3ab7a2f6a722a3131c217e8487c03083  gcc/testsuite/gcc.target/aarch64/sve/unpacked_builtin_fmax_2.c
+ f98eb15f5da9c587cbd1580ea81e5fbf  gcc/testsuite/gcc.target/aarch64/sve/unpacked_builtin_fmin_1.c
+ cbe11590ece9cd105540edd94c362e47  gcc/testsuite/gcc.target/aarch64/sve/unpacked_builtin_fmin_2.c
+ 3f65e7887a5656b25906f7d1b2c438af  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_builtin_fmax_1.c
+ 7b2a3e67203ecae75dfff1bc82f78828  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_builtin_fmax_2.c
+ 8fff1349c5ac21d174e07a4f8dd38434  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_builtin_fmin_1.c
+ 922200369a42973194c9ffa778b7ed4e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_builtin_fmin_2.c
+ d1a0e57ad5dfe004c98097ce46500520  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_cvtf_1.c
+ 0d69b015b580bb570e5654163b582ed1  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fabs_1.c
+ 1c4878d0b33c17d59a4cd75faa0fc67c  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fadd_1.c
+ 9037c0139622af74a2fc9ee267505606  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fadd_2.c
+ 08f38ba7a09366db8ac60d2e12db8456  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fcvt_1.c
+ c33fc567781611336499b31852c61259  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fcvtz_1.c
+ 0f5f9d4420133526a5c8284fe7432d8f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fdiv_1.c
+ 1155b707f83a45e300817fb3361e0be5  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fdiv_2.c
+ ccc42fc28c14703e041fd7c1c35a9244  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmaxnm_1.c
+ d4f79f5c5d9d579985e09c283922f657  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmaxnm_2.c
+ 9cf2f8650cfa8bf692e88ced6671bab2  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fminnm_1.c
+ 34d14c2dfe1f6a10be2abb69ac73ed1f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fminnm_2.c
+ 7b741cb1bcb3f1f5f9552f849df675a8  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmla_1.c
+ a035fbd90dc84e1b9d5167586735bf91  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmla_2.c
+ 5abd2e69bf871fdd9653380696a0342f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmls_1.c
+ e5bb4362d0ddd57bcf7a61a137100040  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmls_2.c
+ ccb24dc405151cf8e646e111b7ce5514  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmul_1.c
+ 6228b334487750911e0e99b8e68eb160  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fmul_2.c
+ 069ecd4a2b183d322e8facd1e446fcee  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fneg_1.c
+ 5a5f108d3d0bce6a755b237457312069  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c
+ c25c74f5c1e906f2783768960504fd68  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmla_2.c
+ f3e268301efe179bb883f21b6577c5c1  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c
+ 6d85d1dccad93b48274d4662f01040ce  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fnmls_2.c
+ ebd8cdc7fe2cbb8de5fcb08dc199bdf9  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frinta_1.c
+ 9894e7df79d05098df7d47f84878cf6a  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frinta_2.c
+ 11b10c25c0181ea348fd2c16bdf36f23  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frinti_1.c
+ c5dbe0f561a5572079d3e303a7db6aaf  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frintm_1.c
+ d481cf4a2ab0cc169ad85e9c84f01760  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frintp_1.c
+ 0d4f8c8ff4646a69730213b74ca16eb0  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frintx_1.c
+ c9cc1727956e7a03a48bd31118124788  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_frintz_1.c
+ 0ba39ded12f66b3b3c5019f1ab650a70  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fsubr_1.c
+ 6692505e8b51f35da97c06006a29cb29  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cond_fsubr_2.c
+ a2b8cc7a8d9d0d79ca11573d406f7f6d  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cvtf_1.c
+ 8e60d86282221f5b0f2ca4fb58eb76f8  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cvtf_2.c
+ ea24ecb4164b07ea882a7df9a25bae2e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_cvtf_3.c
+ 13d5025f41f71daa00011567791bb0d6  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fabs_1.c
+ 8a9f3906e78fe5bc65a615b8dec4e42c  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fadd_1.c
+ 4e078634520afd28b68f0af789569b50  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fadd_2.c
+ 30ed6269d6e0348a31d60f5834b0f4a6  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcm_1.c
+ c64a67d6ed2bf2b1ee2654a6ab54faec  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcm_2.c
+ f97f494d93b00c2c0927d5724526059c  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcm_combines_1.c
+ 2fbc0aba3bac940317167f6b66bc8a52  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcm_combines_2.c
+ 274cee25dc1d6c69e609830904c1c0a9  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcvt_1.c
+ cc5ae2e9ab4c84fdefc8af75fc17d5ab  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcvt_2.c
+ 53191c2f3e19f7d558c0a0e9ad1a7755  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcvtz_1.c
+ 0b800e2a318d40e9898cab825ffe9a5f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fcvtz_2.c
+ 380053c36fe5deaf302d6d1aa62fb267  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fdiv_1.c
+ b2171bd2b588aa5acb2e5ab240c2c863  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fdiv_2.c
+ 6990b1905547fb549a3c0037145c19f2  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fdiv_3.c
+ 90991060d5187e3e4a551e6844f226e3  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmaxnm_1.c
+ 676b9f5ab7fd0d4bcf286ea474a80964  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmaxnm_2.c
+ cab94f764a3ca73ed38202f14cc3fd19  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fminnm_1.c
+ 7b65fff751fd4988d48526c4a17010a3  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fminnm_2.c
+ f53f9faaf6f67e40fd74748ab5c47d14  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmla_1.c
+ 99b052d338cea16d55490983643fab4f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmla_2.c
+ 905186b1ee93c06b1b1de75ec75994ad  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmls_1.c
+ eefcb10f021ed8f88e8f431455473f7c  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmls_2.c
+ b7775c7a3a06011254f2b820b3eae29e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmul_1.c
+ 6fe41f6f621c177359a0a7e3916bd16d  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fmul_2.c
+ 9e008589364239009e835aa3ce893ae4  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fneg_1.c
+ f3bb22048ae0dbc30aa6869c976aa44c  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_1.c
+ cb983b53e8e875de59fc147b714ab5a9  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmla_2.c
+ 1b177ea207fa2a35b2c6e05fdcd6d79a  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_1.c
+ f152e4c06bd07df527a2d80fe33033c2  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fnmls_2.c
+ b6e17b2a303210f45a78ce69da1755c5  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frinta_1.c
+ 1b0091a8a0ac4545afe9b83226f3bb1f  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frinta_2.c
+ eafc008f74ceddbb517d3e092f002801  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frinti_1.c
+ 1d4e38e0dc4066365dfc747dce92b914  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frinti_2.c
+ 9a706078f813f737ac27d1b46eac9ca7  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintm_1.c
+ 6cb472f7723a40c804f7067d143cc971  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintm_2.c
+ 18fa8c411d1aa78f7f53f0a43825997e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintp_1.c
+ 3d4bda49704b3bda84389db7fb4466af  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintp_2.c
+ cb144f78bcd7ceeffd7ad20818648d4e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintx_1.c
+ b13c7c8deb78b44b53ec57f1d9a8710e  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintx_2.c
+ c69bc5c2ed909df6c1b3374ddd5f3b2d  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintz_1.c
+ 0bd4cd33c9f33955d7346492744e9b1b  gcc/testsuite/gcc.target/aarch64/sve/unpacked_frintz_2.c
+ a776e5d06dee43e7816ef9453b3f3c06  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fsubr_1.c
+ 15d554c4d9d7f3a379a7a0ff18c71c74  gcc/testsuite/gcc.target/aarch64/sve/unpacked_fsubr_2.c
  f202a910bae302c6c775c55d23a33bc1  gcc/testsuite/gcc.target/aarch64/sve/unroll-1.c
! 82b631f365f09efa84b18f9701bb4691  gcc/testsuite/gcc.target/aarch64/sve/usminmax_di.c
! 005f08575d1d854ae09654733efbc7f5  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c
  d876021ee15812d1dc53c0bd7c9fc144  gcc/testsuite/gcc.target/aarch64/sve/uzp1_1_run.c
  8ba1fc382a2b8650ed30c02eee9a7784  gcc/testsuite/gcc.target/aarch64/sve/uzp1_2.c
! 4e291a75fd818b8b338132694d9a2a6d  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c
  66e61d21118cd1e4b400b1d34e9315d1  gcc/testsuite/gcc.target/aarch64/sve/uzp2_1_run.c
  2d21cc9ed403bcbfc4ff06c504640862  gcc/testsuite/gcc.target/aarch64/sve/uzp2_2.c
  2a54bf5c1976c784a0f37398d02e302d  gcc/testsuite/gcc.target/aarch64/sve/var_stride_1.c
*************** fa91a29c1966fde184724e0d4d381ac5  gcc/te
*** 66912,66924 ****
  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
! 1a0931ed55007e7a69ff88d9db179e2c  gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c
  1076b3d0a4814dc2017baef0dec9641c  gcc/testsuite/gcc.target/aarch64/sve/vcond_14_run.c
! 083de6c52baa5d58facb2283d1ad0e7f  gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c
  5a44eb563cd9c95817da23afdb9394ec  gcc/testsuite/gcc.target/aarch64/sve/vcond_15_run.c
! fbe87754cf05ae39628fa258e35d957f  gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c
  dd5f9825588ddadcfbe38ab5bdcd4df0  gcc/testsuite/gcc.target/aarch64/sve/vcond_16_run.c
  9e123cbd01378010565e2e2ff8437b0a  gcc/testsuite/gcc.target/aarch64/sve/vcond_17.c
  aa58567ac1c63869f31f67f66b03c29e  gcc/testsuite/gcc.target/aarch64/sve/vcond_17_run.c
--- 76892,76904 ----
  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
! 7bf6926c7196e4c82264e956fa38be13  gcc/testsuite/gcc.target/aarch64/sve/vcond_13.c
  39711b19fd2ae1805fd3fb75093c507f  gcc/testsuite/gcc.target/aarch64/sve/vcond_13_run.c
! 36a965b5dec53b0d955254ba1b30d65b  gcc/testsuite/gcc.target/aarch64/sve/vcond_14.c
  1076b3d0a4814dc2017baef0dec9641c  gcc/testsuite/gcc.target/aarch64/sve/vcond_14_run.c
! 12008be71cc06f2e9e80271145778da8  gcc/testsuite/gcc.target/aarch64/sve/vcond_15.c
  5a44eb563cd9c95817da23afdb9394ec  gcc/testsuite/gcc.target/aarch64/sve/vcond_15_run.c
! dcc8cc6b7e9c664befc1cbd245820007  gcc/testsuite/gcc.target/aarch64/sve/vcond_16.c
  dd5f9825588ddadcfbe38ab5bdcd4df0  gcc/testsuite/gcc.target/aarch64/sve/vcond_16_run.c
  9e123cbd01378010565e2e2ff8437b0a  gcc/testsuite/gcc.target/aarch64/sve/vcond_17.c
  aa58567ac1c63869f31f67f66b03c29e  gcc/testsuite/gcc.target/aarch64/sve/vcond_17_run.c
*************** d9a593d9ae51818560567a860b55b22f  gcc/te
*** 66965,66971 ****
  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
  8f996475a52aff431b850bf794a5aeb4  gcc/testsuite/gcc.target/aarch64/sve/while_1.c
  bf66f155c3e51c7d9f592a9699731758  gcc/testsuite/gcc.target/aarch64/sve/while_10.c
--- 76945,76985 ----
  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
! a9d1a54dd15004ca1ac15860f21d4605  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch.c
! 1fb4ea54d9770b1c794a26a03bd3ae47  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_10.c
! c99ce080c87a17b92edd82354f354c5e  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_11.c
! 97bd72765a04b95d67aa58c153bb1038  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_12.c
! ed20d570634618501c755bc7964b8a4a  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_13.c
! c8d457152145e3626a04326e99c314fb  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_14.c
! efeda3733bd034f4969bc699d7a22419  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_15.c
! b6518dc2fb6c56524ef170f253a178a5  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_16.c
! e229b8062c7895178d143eef74353349  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_2.c
! d783b1ea4a1a9759701a47ae8033f16c  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_3.c
! 97bd72765a04b95d67aa58c153bb1038  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_4.c
! ed20d570634618501c755bc7964b8a4a  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_5.c
! 2cffcb6d82a07d720e0d1e55e7e4dc6c  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_7.c
! efeda3733bd034f4969bc699d7a22419  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_8.c
! 2838f078448a140a20fa1820971fdbc0  gcc/testsuite/gcc.target/aarch64/sve/vect-early-break-cbranch_9.c
! 190b7b40bc5fbd9ecc93b2a8f790fe17  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-1.c
! 2bbddba6a899298423033b3062a9a381  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-10.c
! b6981766fe944a9c6c9c51f6a5b66324  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-11.c
! 67a1d5f12f98b017b1fa2b2a08edcc74  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-12.c
! c6b0fbb892864462cdca848d2e991908  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-13.c
! 482ffb7d4fd12112f987b443188eefb4  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-14.c
! a75e80a6f56f3083cb6d7d2db92cb36c  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-15.c
! ebb36b287466899ae93cef8461c6dc39  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-16.c
! edca110eb8b8a42667ca01f1e0d4aaf8  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-17.c
! bf992986a2da0a21868958cee0d10443  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-18.c
! 9ced1e55612b89a283e2b6ea9cf544f2  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-19.c
! 547dd9c0ba17b467338150696968e057  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-2.c
! 81ad7f960099d07db1bd4733ebc4083c  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-20.c
! 974136ef96e8b61574685039177914b1  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-3.c
! 6d532b8553d36f2e590e6728927bb649  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-4.c
! 55ec67030deaea7c01ba0643728aefa3  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-5.c
! 85f047e48ad9f90d1f0347cb6e532861  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-6.c
! 7259ef4cdd51092907ceefd84572f162  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-7.c
! 12978375cb332a3483ab669ce4cc9062  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-8.c
! a425f478505b12c7af785eb9c7bdc914  gcc/testsuite/gcc.target/aarch64/sve/vect-reduc-bool-9.c
  f0756c53ff3a98bc41d556c52afe94e6  gcc/testsuite/gcc.target/aarch64/sve/vusdot-autovec.c
  8f996475a52aff431b850bf794a5aeb4  gcc/testsuite/gcc.target/aarch64/sve/while_1.c
  bf66f155c3e51c7d9f592a9699731758  gcc/testsuite/gcc.target/aarch64/sve/while_10.c
*************** bf66f155c3e51c7d9f592a9699731758  gcc/te
*** 66973,66990 ****
  8005b0ab9d7eedc978d5b99f7de4fa47  gcc/testsuite/gcc.target/aarch64/sve/while_3.c
  0186967af4403f0f512a25d1c41fc1e0  gcc/testsuite/gcc.target/aarch64/sve/while_4.c
  fd4824fd92e0b806bf8d2e820d9e2c5c  gcc/testsuite/gcc.target/aarch64/sve/while_6.c
! 432632d5abefa44cd95c1b3b901c2720  gcc/testsuite/gcc.target/aarch64/sve/while_7.c
  e0827e71dc0b198a8866bfb6f12de9f0  gcc/testsuite/gcc.target/aarch64/sve/while_8.c
! 0bd6e1dd04054025d14be1102f2f9c66  gcc/testsuite/gcc.target/aarch64/sve/while_9.c
  27d8ceeb490cb745489607f06b508b65  gcc/testsuite/gcc.target/aarch64/sve/xorsign_1.c
  f243fb7673b198d762744d4c5937bfb6  gcc/testsuite/gcc.target/aarch64/sve/xorsign_1_run.c
  e13b38f2990120fb563c7e3296667346  gcc/testsuite/gcc.target/aarch64/sve/zip1_1.c
  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
--- 76987,77004 ----
  8005b0ab9d7eedc978d5b99f7de4fa47  gcc/testsuite/gcc.target/aarch64/sve/while_3.c
  0186967af4403f0f512a25d1c41fc1e0  gcc/testsuite/gcc.target/aarch64/sve/while_4.c
  fd4824fd92e0b806bf8d2e820d9e2c5c  gcc/testsuite/gcc.target/aarch64/sve/while_6.c
! d56013852a700217e713a6bc374cab92  gcc/testsuite/gcc.target/aarch64/sve/while_7.c
  e0827e71dc0b198a8866bfb6f12de9f0  gcc/testsuite/gcc.target/aarch64/sve/while_8.c
! b9893dda4a7c7e766d6503b50fda4902  gcc/testsuite/gcc.target/aarch64/sve/while_9.c
  27d8ceeb490cb745489607f06b508b65  gcc/testsuite/gcc.target/aarch64/sve/xorsign_1.c
  f243fb7673b198d762744d4c5937bfb6  gcc/testsuite/gcc.target/aarch64/sve/xorsign_1_run.c
  e13b38f2990120fb563c7e3296667346  gcc/testsuite/gcc.target/aarch64/sve/zip1_1.c
  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
! 79342e7c66f5eb51502bb642795fab86  gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
! 9ddcaa4af291a12ea7f45f6f9888625c  gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
! f179c32c8bc050a723c3579e473aaed7  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
*************** e5d8b37658250431fa3464a88fcf6f71  gcc/te
*** 67270,67275 ****
--- 77284,77292 ----
  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
+ ab75632cc9764d4c2a95c78cb9e92896  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/fmmla_f8f16mm_sve2.c
+ bd2faaa8379abc5d6dc0f94d51e0603c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/fmmla_f8f32mm_sve2.c
+ 3bef647f0f7b57b8421e22563f6cc3cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/fmmla_sve_f16f32mm.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
*************** f774d3e0d7016c324b45d3a211aacc89  gcc/te
*** 67308,67313 ****
--- 77325,77332 ----
  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
+ 1d5507e88eefda8dd4f9c6fd735f25fb  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_mf8_x2.c
+ fb371e2fdf3361a50cbceecc2444e07c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ld1_mf8_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
*************** ebadc36dc160d8ffc0360e8c8e81dddd  gcc/te
*** 67392,67397 ****
--- 77411,77418 ----
  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
+ fec080cdb249a68ee318a00f8bf5f6f3  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_mf8_x2.c
+ 56d7eb8b9c4cdd22c80f4a00484a931e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/ldnt1_mf8_x4.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
*************** b9b880247845019946d9397ae50a7dcf  gcc/te
*** 67887,67904 ****
  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
--- 77908,77926 ----
  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
! 6dcdd634683cc5bf89527f1b3aa8bbe1  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_bf16.c
! 012a6600194eaffae32608214f7961c9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f16.c
! 8f78cd01c576e45a1c23352b4a45549e  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f32.c
! 3139d30903d8bd1998eaa0bf27d502dd  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_f64.c
! 8c457d56ca87881e9d85f89925c16ef4  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_mf8.c
! 57d9d47866b138860f9596ecf5f33c3f  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s16.c
! 3a81d4e766ce2c370d5f1e889ebb6571  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s32.c
! 7579a7ee86d83cfb156bfd8326fc64b9  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s64.c
! c1b1f25927be0ef1d0776d5609fa76f7  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_s8.c
! 28e02d840ab26dfbfdd422470b9a0664  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u16.c
! 3ba755e3a4fcf839884e3245bac1c47b  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u32.c
! 439b4003f6ccff9474809f43a320434c  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/revd_u64.c
! 1e000b1c81ff64e2c2bc15b428bc2184  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
*************** f118c99cdc23826f1992b4999085a9e4  gcc/te
*** 68100,68105 ****
--- 78122,78129 ----
  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
+ f05158ae048b4408dc40ed550d346bc8  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_mf8_x2.c
+ a693f4caaffcdc093043a5e3aa9b1d03  gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/stnt1_mf8_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
*************** f6109ccab2b862ae05ae03274ecbfd7d  gcc/te
*** 68355,68368 ****
--- 78379,78398 ----
  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
+ 8bf3d04737f437db862d5854d48f19cf  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/match_4.c
+ d3b59161e9e7ae37491fe223a994fac0  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/nmatch_1.c
+ 154437619908e96189d38f8f31309e80  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilege_1.c
+ f36e48ee61c65b8a5d0abe23195edad3  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilegt_1.c
  2ae9a0dc7a880248710c83f875b9a887  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilerw_1.c
  3b4778b66c8585691c1190455d3cfc91  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilerw_2.c
  c05da7ef1a9d9198333ab71234110681  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilerw_3.c
  f19d9cab518ade5054964a9a86ed21d6  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilerw_4.c
+ 40a21210ee791320557629e69bdc0435  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilerw_5.c
  e1b15e476877c8f2c744653c81c512d9  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilewr_1.c
  3c6c761c7accb7f9f34bf069acb29c14  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilewr_2.c
  aef04c78854b1edddae98ae00659cd01  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilewr_3.c
  a08e078470cc1c37a2df43e2e585497e  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilewr_4.c
+ 2a2b498a0361dc0091118bd23a46b41c  gcc/testsuite/gcc.target/aarch64/sve2/acle/general/whilewr_5.c
  f23df8d77bb63840931d1aee39d47578  gcc/testsuite/gcc.target/aarch64/sve2/average_1.c
  21204d3f95cbab44767f0443370c95b4  gcc/testsuite/gcc.target/aarch64/sve2/bcax_1.c
  74c3605a720149110e52ba4d1a65faa9  gcc/testsuite/gcc.target/aarch64/sve2/bitsel_1.c
*************** db510fed2a207b35df2126caab14bc03  gcc/te
*** 68372,68382 ****
--- 78402,78414 ----
  c0db897049451d05160e3d761c3e6da0  gcc/testsuite/gcc.target/aarch64/sve2/div-by-bitmask_1.c
  4c1f47b22f95b90c917c3c6e70530e4e  gcc/testsuite/gcc.target/aarch64/sve2/dupq_1.c
  89d5827d6649de87899d14beeaa9a82b  gcc/testsuite/gcc.target/aarch64/sve2/dupq_1_run.c
+ 6cf392a332495a2c13ccb608c1258a78  gcc/testsuite/gcc.target/aarch64/sve2/eon_bsl2n.c
  601e2a51cde2e0a9fd3515f4fbdf4eb7  gcc/testsuite/gcc.target/aarch64/sve2/eor3_1.c
  c2a0ae9f14c1928de3aea64ee37d1b25  gcc/testsuite/gcc.target/aarch64/sve2/extq_1.c
  15b722686c47673716a78737275cada5  gcc/testsuite/gcc.target/aarch64/sve2/extq_1_run.c
  6699c8d574b87c7018fc5b494c65cb7f  gcc/testsuite/gcc.target/aarch64/sve2/gather_earlyclobber.c
  34c844ca053b9c871341786139fbf872  gcc/testsuite/gcc.target/aarch64/sve2/mulhrs_1.c
+ 0b91cc9cabeae09648d1f1532c0ecf1c  gcc/testsuite/gcc.target/aarch64/sve2/nbsl_nor_nand_neon.c
  b360e0ac1da1500645df64fce4fab7dd  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_1.c
  4446107d252cac5778f692095515b222  gcc/testsuite/gcc.target/aarch64/sve2/nlogic_2.c
  d58c6c7544d2d10908ad86e2a7eb5617  gcc/testsuite/gcc.target/aarch64/sve2/pfalse-binary.c
*************** f5f6f291e9c1c848a46c8ef91ca99f58  gcc/te
*** 68406,68411 ****
--- 78438,78451 ----
  429b387819fe31e459436020f966ae50  gcc/testsuite/gcc.target/aarch64/sve2/pr109636_1.c
  b1f13471701b0335894317ae214cc68c  gcc/testsuite/gcc.target/aarch64/sve2/pr116934.c
  3fcc51d99dc7ff15a8bb60da25dc470e  gcc/testsuite/gcc.target/aarch64/sve2/pr120999.c
+ b2d92d06e51698908b628bbf67a8336b  gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
+ 0f6c07a30f53dc4aadca1b9cf6c3a8db  gcc/testsuite/gcc.target/aarch64/sve2/pr121604_pmov.c
+ 71aa3386ca6d074587616bfcb73848d4  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_1.c
+ cf400ce94034485f8a16a1cbd287c372  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_2.c
+ 0585c8051a613504bc26d003f880104b  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_3.c
+ fd41242b07a3e957c67e6fe4c4c2bc33  gcc/testsuite/gcc.target/aarch64/sve2/pr122069_4.c
+ 0cf6f58c25a80144f7412d79b9d48d66  gcc/testsuite/gcc.target/aarch64/sve2/pr123053.c
+ a1e717c0cbeba75388ce3e7b3922fe64  gcc/testsuite/gcc.target/aarch64/sve2/pr123775.c
  3ddfd16fcbf89890fd9785fec8f0c081  gcc/testsuite/gcc.target/aarch64/sve2/shracc_1.c
  8cd4d6e010de57b57d5d8fb325fa79bb  gcc/testsuite/gcc.target/aarch64/sve2/unpred_mul_1.c
  826ee7c8b41bb7da016220e1f67b1306  gcc/testsuite/gcc.target/aarch64/sve2/uzpq_1.c
*************** b89bd7b9ce6a66501a3114f0ec37a670  gcc/te
*** 68485,68491 ****
  d4f0527a7281831e68658ac869eb3f53  gcc/testsuite/gcc.target/aarch64/test_frame_7.c
  5cff3820ab838755eba034e080cfb5a6  gcc/testsuite/gcc.target/aarch64/test_frame_8.c
  2448073ffbe1d605c9ff8c449a4ab04c  gcc/testsuite/gcc.target/aarch64/test_frame_9.c
! e305e52e017cd5650701a9b9bac24e7e  gcc/testsuite/gcc.target/aarch64/test_frame_common.h
  f981bb5d7ae1c0cf6fecfb1807c0d512  gcc/testsuite/gcc.target/aarch64/thunderxloadpair.c
  8dd4e974d5491f99917133956c1abdfb  gcc/testsuite/gcc.target/aarch64/thunderxnoloadpair.c
  57d3879383caede287d61f1b6ba2ebab  gcc/testsuite/gcc.target/aarch64/tls_1.x
--- 78525,78531 ----
  d4f0527a7281831e68658ac869eb3f53  gcc/testsuite/gcc.target/aarch64/test_frame_7.c
  5cff3820ab838755eba034e080cfb5a6  gcc/testsuite/gcc.target/aarch64/test_frame_8.c
  2448073ffbe1d605c9ff8c449a4ab04c  gcc/testsuite/gcc.target/aarch64/test_frame_9.c
! 674866e3ee98c94654ecc01207e8329e  gcc/testsuite/gcc.target/aarch64/test_frame_common.h
  f981bb5d7ae1c0cf6fecfb1807c0d512  gcc/testsuite/gcc.target/aarch64/thunderxloadpair.c
  8dd4e974d5491f99917133956c1abdfb  gcc/testsuite/gcc.target/aarch64/thunderxnoloadpair.c
  57d3879383caede287d61f1b6ba2ebab  gcc/testsuite/gcc.target/aarch64/tls_1.x
*************** a2ccf9bfd1d0bb840b23c25e1bdec31c  gcc/te
*** 68497,68505 ****
  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
--- 78537,78548 ----
  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
! 1b70ecf3cbcc8c1200a05541eda82588  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
+ 626bb6bb64c1bbe8eb5e2b92bf925aeb  gcc/testsuite/gcc.target/aarch64/torture/pr120986-2.c
+ d03b2f46140f14ae9b2101813aec3525  gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
+ 164477999ab21aa17183a55d49bb0d71  gcc/testsuite/gcc.target/aarch64/torture/pr124491.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
*** 68511,68516 ****
--- 78554,78560 ----
  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
+ b7768547f670e0af5185d873e5dbc62e  gcc/testsuite/gcc.target/aarch64/torture/xar-zero.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
*************** e096738dd28b2289464e1c1af2eb63e6  gcc/te
*** 68526,68531 ****
--- 78570,78576 ----
  a5b09578629531d465aefeed46ebae10  gcc/testsuite/gcc.target/aarch64/ubfiz_lsl_1.c
  36ad666b8760a3d2de950ba38d4a02c6  gcc/testsuite/gcc.target/aarch64/ubfx_lsr_1.c
  652ecb3b586494e30accfd65a8789592  gcc/testsuite/gcc.target/aarch64/umaddl_combine_1.c
+ 2632de6f4ddc0eee7d3f74b8d7da2621  gcc/testsuite/gcc.target/aarch64/unroll-vect.c
  14511b62983ad9e3291b049908b6d8d8  gcc/testsuite/gcc.target/aarch64/unsigned-float.c
  5bf9b14f9edfcac479f50a8da124cb46  gcc/testsuite/gcc.target/aarch64/usaba_1.c
  906a218fd0162c7785f09ed6656bec74  gcc/testsuite/gcc.target/aarch64/usadv16qi-dotprod.c
*************** a0d7ee23594a897783efec837fcc9a89  gcc/te
*** 68585,68605 ****
  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/testsuite/gcc.target/aarch64/vect-abs-compile.c
  150dad31fb1f398493599dab4ec3cc43  gcc/testsuite/gcc.target/aarch64/vect-abs.c
  20454cae5b2646ccb3f5b66c7d23be8f  gcc/testsuite/gcc.target/aarch64/vect-abs.x
  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
  82a1b7c6de9e1d98e38135298f34c932  gcc/testsuite/gcc.target/aarch64/vect-faddv.x
--- 78630,78659 ----
  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
! 767bc7332af83dd2a294e88db4db168a  gcc/testsuite/gcc.target/aarch64/vec-init-single-const.c
  c04188bb2b4a3589f00728d8e90d679f  gcc/testsuite/gcc.target/aarch64/vec-rot-exec.c
! f66a2dc11214cc437d96ec038cc0e85e  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/testsuite/gcc.target/aarch64/vect-abs-compile.c
  150dad31fb1f398493599dab4ec3cc43  gcc/testsuite/gcc.target/aarch64/vect-abs.c
  20454cae5b2646ccb3f5b66c7d23be8f  gcc/testsuite/gcc.target/aarch64/vect-abs.x
  f5c728d57ec7b4ccd629be9ae3daa4e9  gcc/testsuite/gcc.target/aarch64/vect-add-sub-cond.c
+ d1048da76a8288fba979b423a69446fc  gcc/testsuite/gcc.target/aarch64/vect-addhn_1.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
! 43ef4a0332aa6c94272b53d31377c4fd  gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
  921eb3232364cb2927f013733b5a0473  gcc/testsuite/gcc.target/aarch64/vect-dotprod-twoway-hisi.c
! abdce3709a72bca62c1e5456ca237dff  gcc/testsuite/gcc.target/aarch64/vect-early-break-addhn_1.c
! 3b8e1c37010cf385f367822b8561c891  gcc/testsuite/gcc.target/aarch64/vect-early-break-addhn_2.c
! e818a724f4c5260560b070d619a024d8  gcc/testsuite/gcc.target/aarch64/vect-early-break-addhn_3.c
! ab08763b54762184a8ae8c80693773fc  gcc/testsuite/gcc.target/aarch64/vect-early-break-addhn_4.c
! a9f61e586e81d0f289956499270ccd07  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch.c
! c36b3f9592d3383498d2dc74eac2db18  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch_2.c
! 6b20afb997c30629b357f5f2f64d45a8  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch_3.c
! 6883aa565bbbc67e1a379fccb5b6beb2  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch_4.c
! e74bf4c93fdcbf01ae35c0e6b275b17d  gcc/testsuite/gcc.target/aarch64/vect-early-break-cbranch_5.c
  d7d37bd9558713b30e8774cf2b0adc67  gcc/testsuite/gcc.target/aarch64/vect-faddv-compile.c
  561fb26098c56226b672e381ee1cfb4f  gcc/testsuite/gcc.target/aarch64/vect-faddv.c
  82a1b7c6de9e1d98e38135298f34c932  gcc/testsuite/gcc.target/aarch64/vect-faddv.x
*************** f50a652e084124d8ff86c1deef24bfb8  gcc/te
*** 68629,68635 ****
  c1dc1c8c4bf53ce9009691cb397b17fb  gcc/testsuite/gcc.target/aarch64/vect-init-5.c
  26dd8bf29d2e8f9af75b704ea97ddfa6  gcc/testsuite/gcc.target/aarch64/vect-init-ld1.c
  310a12e8a8fcdda5a8a175bb1d12d9a6  gcc/testsuite/gcc.target/aarch64/vect-ld1r-compile-fp.c
! 9bfd7d1c48718facb5521e65bd9a349a  gcc/testsuite/gcc.target/aarch64/vect-ld1r-compile.c
  2836275b3fd3ae0087cc9c8cbe47b112  gcc/testsuite/gcc.target/aarch64/vect-ld1r-fp.c
  4ee0b8b86a7f46934c75e16f60f7d87b  gcc/testsuite/gcc.target/aarch64/vect-ld1r.c
  2621a790d86978ccb62d0d3442f8c3ef  gcc/testsuite/gcc.target/aarch64/vect-ld1r.x
--- 78683,78689 ----
  c1dc1c8c4bf53ce9009691cb397b17fb  gcc/testsuite/gcc.target/aarch64/vect-init-5.c
  26dd8bf29d2e8f9af75b704ea97ddfa6  gcc/testsuite/gcc.target/aarch64/vect-init-ld1.c
  310a12e8a8fcdda5a8a175bb1d12d9a6  gcc/testsuite/gcc.target/aarch64/vect-ld1r-compile-fp.c
! 68e2a1bacfbf9c79bcae7e758965fa34  gcc/testsuite/gcc.target/aarch64/vect-ld1r-compile.c
  2836275b3fd3ae0087cc9c8cbe47b112  gcc/testsuite/gcc.target/aarch64/vect-ld1r-fp.c
  4ee0b8b86a7f46934c75e16f60f7d87b  gcc/testsuite/gcc.target/aarch64/vect-ld1r.c
  2621a790d86978ccb62d0d3442f8c3ef  gcc/testsuite/gcc.target/aarch64/vect-ld1r.x
*************** c1dc1c8c4bf53ce9009691cb397b17fb  gcc/te
*** 68637,68643 ****
--- 78691,78707 ----
  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
+ ea006d3da1a52b8f8493d0338ef90b7e  gcc/testsuite/gcc.target/aarch64/vect-pr121754.c
  a5ea701024dc372e404e47fd661308b9  gcc/testsuite/gcc.target/aarch64/vect-prefetch-drop.c
+ 2af99d8dd9ff5822c74d7118a0df5d49  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-1.c
+ 005d82753eef918d295135630e703616  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-2.c
+ 7415d2de2d12bf6469a9cd4c65c0f933  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-3.c
+ 557c2203b7d05dab445f8ab4ae938d65  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-4.c
+ 2e90e6fc0e79b7b9c59cec0c3d2db757  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-5.c
+ 0af0654e0bfbcf9050f318caa335686d  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-6.c
+ 7a6b67c1e320b9b0bb38a2f93b5af8c0  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-7.c
+ d7998cc373ed0d124e6bb2496619f98f  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-8.c
+ ee50d59cde6553fbc8a60b764d8304bf  gcc/testsuite/gcc.target/aarch64/vect-reduc-bool-9.c
  ded4af2ae02936eb4be45e9e08f45373  gcc/testsuite/gcc.target/aarch64/vect-reduc-or_1.c
  cbb6981a9f5fba990ee2d0f5e5e38a50  gcc/testsuite/gcc.target/aarch64/vect-shr-reg-run.c
  f0d2e1dd6eaa2c17de51dc5c456d92a1  gcc/testsuite/gcc.target/aarch64/vect-shr-reg.c
*************** b492ca2077d7ff66c6b66f4ab082437f  gcc/te
*** 68688,68693 ****
--- 78752,78758 ----
  ee75ba585648b3f8f825cadccf3a5ef0  gcc/testsuite/gcc.target/aarch64/vect_unary_1.c
  2f90e98a90f4eb622cc3f403c199b293  gcc/testsuite/gcc.target/aarch64/vect_unary_2.c
  d8b7bf172e8cfd96979b54e10c4e2570  gcc/testsuite/gcc.target/aarch64/vect_urhadd_1.c
+ b4884357a6a8e2c986e0030d9523d970  gcc/testsuite/gcc.target/aarch64/vector-compare-5.c
  739575d641b47c254cda6c8d642702f9  gcc/testsuite/gcc.target/aarch64/vector_initialization_nostack.c
  91822962d5a71129a8f94a0f50f2c42b  gcc/testsuite/gcc.target/aarch64/vector_intrinsics.c
  95218e69f648c2bc58f35d3130871871  gcc/testsuite/gcc.target/aarch64/vector_intrinsics_asm.c
*************** cfcefa0eda1f9dc2b828001739a59b3c  gcc/te
*** 68706,68711 ****
--- 78771,78777 ----
  db4bc54a5e1d217544b1f34004b2b698  gcc/testsuite/gcc.target/aarch64/vld1-vst1_1.c
  fee0e93ef0f9f011f34cd4553e9b4687  gcc/testsuite/gcc.target/aarch64/vld1_lane-o0.c
  868cc2ead39bb6a9cf3f94c412d7b992  gcc/testsuite/gcc.target/aarch64/vld1_lane.c
+ b0ee78468bfd1829b9d1693f3a6ec160  gcc/testsuite/gcc.target/aarch64/vld2-1.c
  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
*************** e916fcf0c3130fc5102d03f2d729ff64  gcc/te
*** 68748,68754 ****
  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
--- 78814,78820 ----
  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
! 941eafc659fb2e3ecf4eac67350b6d5f  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
*************** f439076be9a48a135c5fa2921d660d58  gcc/te
*** 68761,68767 ****
  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
--- 78827,78833 ----
  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
! ecd667d7ea25421b8101e2e8b25db455  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
*************** de6da4a52a0859ffa9a053a8c13e86cc  gcc/te
*** 68849,68855 ****
  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
--- 78915,78921 ----
  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
! f82f88fcfb079a2edf59e7f2d16981c9  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
*************** b39c0e6513279f1844d9242a3025b258  gcc/te
*** 68865,68870 ****
--- 78931,78937 ----
  8eefae5f99500e9e022dd899051be8c9  gcc/testsuite/gcc.target/arc/builtin_arc_aligned-2.c
  c63670e596c246f3002a0f44ce341617  gcc/testsuite/gcc.target/arc/builtin_arc_aligned-3.c
  dff840d406fa0b5fbf3926a7ff2acda2  gcc/testsuite/gcc.target/arc/builtin_eh.c
+ 8b0e508a7e5d50f852a79f5b84ee4c74  gcc/testsuite/gcc.target/arc/builtin_fls_const.c
  f6f24cca348367d018fd26540705d2d6  gcc/testsuite/gcc.target/arc/builtin_general.c
  a174cff0daf5e9c6bdff55dd5c147b70  gcc/testsuite/gcc.target/arc/builtin_norm-1.c
  2fae32f7bc16961fe85e3b052588e81c  gcc/testsuite/gcc.target/arc/builtin_norm-2.c
*************** a8ef1d01a0865b83aab1825f39789150  gcc/te
*** 68896,68901 ****
--- 78963,78969 ----
  faeadd9b775f7efdb556fab9131531ce  gcc/testsuite/gcc.target/arc/enter-dw2-1.c
  44b5768bc6140e92ed2010b885a0f7bb  gcc/testsuite/gcc.target/arc/extvsi-1.c
  1739e65eb5e46676f54b11ff2d56e570  gcc/testsuite/gcc.target/arc/extvsi-2.c
+ 2a522def2cd4fe765d9e9ad13c133af2  gcc/testsuite/gcc.target/arc/extvsi-3.c
  d9d9cdf928da4c195b1a99dad0aeda06  gcc/testsuite/gcc.target/arc/extzv-1.c
  548254c3a241c8551ebb0aa5d94e45c4  gcc/testsuite/gcc.target/arc/firq-1.c
  4e583df9e864022980d99fd265bb3ab5  gcc/testsuite/gcc.target/arc/firq-2.c
*************** d9d9cdf928da4c195b1a99dad0aeda06  gcc/te
*** 68903,68909 ****
  e6a1e115fbf28d06087d516fa4896471  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
  3d599566405fe6df0acac7b4a16c3ca5  gcc/testsuite/gcc.target/arc/firq-6.c
! 64cd64d9aa6eb0154a5465c1457c2f0b  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
  b408ece5b1b90c502d91b8d9356f6f82  gcc/testsuite/gcc.target/arc/insv-2.c
--- 78971,78977 ----
  e6a1e115fbf28d06087d516fa4896471  gcc/testsuite/gcc.target/arc/firq-4.c
  fea7af7c12eb392f30364e1362155d21  gcc/testsuite/gcc.target/arc/firq-5.c
  3d599566405fe6df0acac7b4a16c3ca5  gcc/testsuite/gcc.target/arc/firq-6.c
! 2bf808e015fe8e6dd1aefd20d2673ab4  gcc/testsuite/gcc.target/arc/fma-1.c
  d84b29a4749c8b59782ed7037960886b  gcc/testsuite/gcc.target/arc/ieee_eq.c
  9f963e71c7574105d5690f43341ba8ca  gcc/testsuite/gcc.target/arc/insv-1.c
  b408ece5b1b90c502d91b8d9356f6f82  gcc/testsuite/gcc.target/arc/insv-2.c
*************** a529c2ffb799aba9d11091bc1d38ee4f  gcc/te
*** 68965,68985 ****
--- 79033,79058 ----
  012f554a21500528757f52f4fe9e6f6a  gcc/testsuite/gcc.target/arc/movbi_cl-1.c
  ea02e52a5a6f8e2ca3e8ad695065812f  gcc/testsuite/gcc.target/arc/movh_cl-1.c
  2e66e2adbfa68ec4f18f2f3cbc6da26b  gcc/testsuite/gcc.target/arc/movl-1.c
+ 4e91dc8406a53fb1ba577a128c8fcca5  gcc/testsuite/gcc.target/arc/movv2hi-be.c
  b28f6252aaf3288f7754a0c50786df34  gcc/testsuite/gcc.target/arc/mspfp.c
  2da9746a54337c45dfb1f4da6bd37fd5  gcc/testsuite/gcc.target/arc/mswape.c
  4ee070d89a7b3e774eaf40214625cf03  gcc/testsuite/gcc.target/arc/mul64-1.c
  51a65655bfba373cbacabf27deec612c  gcc/testsuite/gcc.target/arc/mul64.c
  46c5b1c885d49d863f7518670ae85e9c  gcc/testsuite/gcc.target/arc/mulsi3_highpart-1.c
  793d7938e24de8127c5230bc8a1799e9  gcc/testsuite/gcc.target/arc/mulsi3_highpart-2.c
+ 9c0d303a43e545b5f9e03c9a79846ec9  gcc/testsuite/gcc.target/arc/mult-cmp0.c
  a55caab34589aaad4b44c2b23036a38a  gcc/testsuite/gcc.target/arc/mxy.c
  cb20618eea943bb5260b4d5b424f7756  gcc/testsuite/gcc.target/arc/naked-1.c
  77013bd7a2cc422045b496b9aa750111  gcc/testsuite/gcc.target/arc/naked-2.c
+ 730ad9e34f796bf1bd99d30e19c8e2c1  gcc/testsuite/gcc.target/arc/no-barrel-shifter.c
  c2635eb729f09720a184a5826e218569  gcc/testsuite/gcc.target/arc/no-dpfp-lrsr.c
  44056921f356727d2dbdf06018554b44  gcc/testsuite/gcc.target/arc/nps400-1.c
  58fc9721ecffbfdff197d4585c412004  gcc/testsuite/gcc.target/arc/nps400-cpu-flag.c
  a6f761c17339470bb07c2d99265ec06d  gcc/testsuite/gcc.target/arc/nv-cache.c
  18a4082484710c4349aebc15d3720bf1  gcc/testsuite/gcc.target/arc/or-cnst-size.c
  5a4576d30026a60f39a87cbe7efe00a6  gcc/testsuite/gcc.target/arc/or-cnst-size2.c
+ de759f7221704650463acdd0d5ae5767  gcc/testsuite/gcc.target/arc/overflow-1.c
+ d922a33e54be8b2a8c17b699460c81c4  gcc/testsuite/gcc.target/arc/overflow-2.c
  4d26da527c4326cbce22405e70988c60  gcc/testsuite/gcc.target/arc/pic-1.c
  8ac75d73a43ffeabafa566330b0b646a  gcc/testsuite/gcc.target/arc/pic-2.c
  a6dcc28a587998a1e31f18709aa0f66c  gcc/testsuite/gcc.target/arc/pmpyd.c
*************** d059b2e33fe3944d4609bef74df38413  gcc/te
*** 69048,69054 ****
  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
--- 79121,79127 ----
  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
! 4cb17d3d2f34c3cf41f8b9669f79ec00  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
*** 69103,69109 ****
  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
--- 79176,79182 ----
  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
! da38f98895968d92c894dcdf7dbbf86f  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
*************** deee7c31c5c250e8d2a4897962cdea6b  gcc/te
*** 69136,69147 ****
  624f21c628f0db266ffbb61efa0744c4  gcc/testsuite/gcc.target/arm/acle/ldcl.c
  3bab4e19ec4b17521402dfe4ef493288  gcc/testsuite/gcc.target/arm/acle/mcr.c
  7762e55b0ca2ef639e394dcbf0310e9d  gcc/testsuite/gcc.target/arm/acle/mcr2.c
! 835054b801b16b5cdedbb209ce908545  gcc/testsuite/gcc.target/arm/acle/mcrr.c
! ad33a8d60b3b2cd3d4f1a464974118d3  gcc/testsuite/gcc.target/arm/acle/mcrr2.c
  eee783c37d90eef12bf5d89dd9e9f34c  gcc/testsuite/gcc.target/arm/acle/mrc.c
  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
--- 79209,79220 ----
  624f21c628f0db266ffbb61efa0744c4  gcc/testsuite/gcc.target/arm/acle/ldcl.c
  3bab4e19ec4b17521402dfe4ef493288  gcc/testsuite/gcc.target/arm/acle/mcr.c
  7762e55b0ca2ef639e394dcbf0310e9d  gcc/testsuite/gcc.target/arm/acle/mcr2.c
! dfd2b10cfdc1cd7abe9d9c7e78ce4524  gcc/testsuite/gcc.target/arm/acle/mcrr.c
! afda16d3c97c2103efa481403bc85b15  gcc/testsuite/gcc.target/arm/acle/mcrr2.c
  eee783c37d90eef12bf5d89dd9e9f34c  gcc/testsuite/gcc.target/arm/acle/mrc.c
  1089abf6533526d82e14c2c80d726483  gcc/testsuite/gcc.target/arm/acle/mrc2.c
! 8d93c83d44d4793e5a63a292987b3195  gcc/testsuite/gcc.target/arm/acle/mrrc.c
! 328ad16bf3e69ce775fb3225bd750980  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
*************** f2a5ad411f636671016e7bd6ad858b09  gcc/te
*** 69157,69180 ****
  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
! aba97f9977e18f8c2b8fd7ce559b513f  gcc/testsuite/gcc.target/arm/acle/simd32.c
  ad7292efdc490279906e7c95bdda09d7  gcc/testsuite/gcc.target/arm/acle/simd32_sel.c
  142b21041a309b18a6c1b2d726793af0  gcc/testsuite/gcc.target/arm/acle/stc.c
  69fb9fba690d815775812437aa4169cb  gcc/testsuite/gcc.target/arm/acle/stc2.c
  c65022a81cf8898ea37c82f9a6fe227f  gcc/testsuite/gcc.target/arm/acle/stc2l.c
  fc648f69779c2ae9f4075ca8aed84b4f  gcc/testsuite/gcc.target/arm/acle/stcl.c
  040dfdd8abd27c81f014da36e605a1ca  gcc/testsuite/gcc.target/arm/addr-modes-float.c
! e83f97202504a386d4e913ce29128f75  gcc/testsuite/gcc.target/arm/addr-modes-int.c
  d21ea73439704c16e82e0898ae8bc79e  gcc/testsuite/gcc.target/arm/addr-modes.h
! ec521664e76bf483f95c66515ae27933  gcc/testsuite/gcc.target/arm/aes-fuse-1.c
! bb4f62dc6804b99787551bd2e1ee1c9f  gcc/testsuite/gcc.target/arm/aes-fuse-2.c
  beeedfa6811e6847c3cf97dc8034edc6  gcc/testsuite/gcc.target/arm/aes_xor_combine.c
  4c670413ffa35c00c8cf86a9eda18d8b  gcc/testsuite/gcc.target/arm/anddi3-opt.c
  dfc4bf650d099d2aff3f9e5f3d4b62ac  gcc/testsuite/gcc.target/arm/anddi3-opt2.c
  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
--- 79230,79253 ----
  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
! 47c5900b5c85abcbf51f999b553935ca  gcc/testsuite/gcc.target/arm/acle/simd32.c
  ad7292efdc490279906e7c95bdda09d7  gcc/testsuite/gcc.target/arm/acle/simd32_sel.c
  142b21041a309b18a6c1b2d726793af0  gcc/testsuite/gcc.target/arm/acle/stc.c
  69fb9fba690d815775812437aa4169cb  gcc/testsuite/gcc.target/arm/acle/stc2.c
  c65022a81cf8898ea37c82f9a6fe227f  gcc/testsuite/gcc.target/arm/acle/stc2l.c
  fc648f69779c2ae9f4075ca8aed84b4f  gcc/testsuite/gcc.target/arm/acle/stcl.c
  040dfdd8abd27c81f014da36e605a1ca  gcc/testsuite/gcc.target/arm/addr-modes-float.c
! b604cc7251da4bfb8a20a095cd4444c8  gcc/testsuite/gcc.target/arm/addr-modes-int.c
  d21ea73439704c16e82e0898ae8bc79e  gcc/testsuite/gcc.target/arm/addr-modes.h
! 22aa6ac448a2401f8d5141e8c3cab826  gcc/testsuite/gcc.target/arm/aes-fuse-1.c
! fa423ed9adef04f77c3e87ee2b99d233  gcc/testsuite/gcc.target/arm/aes-fuse-2.c
  beeedfa6811e6847c3cf97dc8034edc6  gcc/testsuite/gcc.target/arm/aes_xor_combine.c
  4c670413ffa35c00c8cf86a9eda18d8b  gcc/testsuite/gcc.target/arm/anddi3-opt.c
  dfc4bf650d099d2aff3f9e5f3d4b62ac  gcc/testsuite/gcc.target/arm/anddi3-opt2.c
  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
! c6e96c51cf0a291237d6cb1b4aeb08bd  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
*************** b84f1f7cf1693c2d82dffe64a42da3b4  gcc/te
*** 69185,69201 ****
  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
! 662f95b68b4da4be16c54b9f1ab1730c  gcc/testsuite/gcc.target/arm/asm-flag-1.c
  f3fa0198457b98710b26072dfa716655  gcc/testsuite/gcc.target/arm/asm-flag-3.c
  e9acf444a22759b1ea52f56e919edf4a  gcc/testsuite/gcc.target/arm/asm-flag-4.c
  d594ca95d990ca9c3f2561ed11ac28ca  gcc/testsuite/gcc.target/arm/asm-flag-5.c
--- 79258,79274 ----
  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
! 5b3a2c86441e5d4b83712d58687052e0  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
! 99e1cbeb4911db07afb48911459483aa  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
! c69f1e0f027fc631442a0a5361397ee1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
! 3d2926f698dbbca5b0360a451b00aeba  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
! 4a5eb9a1db0e1434f2c59a010562f031  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
  992185bff8a637178d6613bb76a8369c  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-3.c
! 653ceffd9d77cb2069b6d3b069feadb4  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-1.c
  4bad0a804fdff0fae8f92991ef639b11  gcc/testsuite/gcc.target/arm/armv8_2-fp16-scalar-2.c
! 134e847d0826c2c0982624c72c75bdd1  gcc/testsuite/gcc.target/arm/asm-flag-1.c
  f3fa0198457b98710b26072dfa716655  gcc/testsuite/gcc.target/arm/asm-flag-3.c
  e9acf444a22759b1ea52f56e919edf4a  gcc/testsuite/gcc.target/arm/asm-flag-4.c
  d594ca95d990ca9c3f2561ed11ac28ca  gcc/testsuite/gcc.target/arm/asm-flag-5.c
*************** b623510ec705d6b7193e2c0e2a0f5f94  gcc/te
*** 69266,69289 ****
  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
! e82342fa684459ff8667e9b61d0a7224  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_2.c
  3d1619ca156d9442f835868012752a98  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_1.c
! 713be387902863185c43e0479009cf62  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_2.c
  a30e0a4d7a48b01ccc07bd5be4a0d065  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_1.c
! 9083033564e6fc8e449d986191be65da  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_2.c
  fd023d3635562de2ff5e0ed5260d21d5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_1.c
  3a97f76c1b98b4d2244bb1a213d2e4b5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_2.c
  6fd7f87aeac118d347a74f2afe95ddc0  gcc/testsuite/gcc.target/arm/bics_1.c
  6f5448d43fe1db047a8d790ae666a6c8  gcc/testsuite/gcc.target/arm/bics_2.c
! 8a87a44de79b9c816f5b48c40b96038e  gcc/testsuite/gcc.target/arm/bics_3.c
  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
--- 79339,79362 ----
  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
! e8ab41d916d8e2b8cf6767a9c6f7a7bc  gcc/testsuite/gcc.target/arm/bfloat16_scalar_1_2.c
  0c2940f05ea77e9f0bdcba867434e70a  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_1.c
! f65c4b7a27a8aec0d8103faccb863fe2  gcc/testsuite/gcc.target/arm/bfloat16_scalar_2_2.c
  16b8dfe53a0a7665d068bc910c72ced3  gcc/testsuite/gcc.target/arm/bfloat16_scalar_3_1.c
! e8ab41d916d8e2b8cf6767a9c6f7a7bc  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
! 9ae9028157abc62f080659db0deab915  gcc/testsuite/gcc.target/arm/bfloat16_simd_1_2.c
  3d1619ca156d9442f835868012752a98  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_1.c
! f6f05a47f13ea1da4f4c79d7eccea4e8  gcc/testsuite/gcc.target/arm/bfloat16_simd_2_2.c
  a30e0a4d7a48b01ccc07bd5be4a0d065  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_1.c
! 04842fa2d7ec5aa982fc3d231022ef93  gcc/testsuite/gcc.target/arm/bfloat16_simd_3_2.c
  fd023d3635562de2ff5e0ed5260d21d5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_1.c
  3a97f76c1b98b4d2244bb1a213d2e4b5  gcc/testsuite/gcc.target/arm/bfloat16_vector_typecheck_2.c
  6fd7f87aeac118d347a74f2afe95ddc0  gcc/testsuite/gcc.target/arm/bics_1.c
  6f5448d43fe1db047a8d790ae666a6c8  gcc/testsuite/gcc.target/arm/bics_2.c
! bb8779ec6753d310940a4eb1fc908080  gcc/testsuite/gcc.target/arm/bics_3.c
  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
*************** e5306c98e7af9542607cef498d9d4cab  gcc/te
*** 69304,69309 ****
--- 79377,79383 ----
  bf06244dec6dc49e0817b03e4494a90f  gcc/testsuite/gcc.target/arm/builtin_uaddll.c
  f842ae48d03fd71d6c4251ee6b88d526  gcc/testsuite/gcc.target/arm/builtin_usubl.c
  33305e972aaa5cd2660665305329c212  gcc/testsuite/gcc.target/arm/builtin_usubll.c
+ 00d46b35880659bc8001ea4047b5bb1c  gcc/testsuite/gcc.target/arm/cbz-range.c
  528a1cc7ada5bc63c0c59152d86b8557  gcc/testsuite/gcc.target/arm/cbz.c
  78f9bef0e50a143219120e7b5b4af7b9  gcc/testsuite/gcc.target/arm/cmp-1.c
  97376f46024c436de8ce633177de6e0b  gcc/testsuite/gcc.target/arm/cmp-2.c
*************** a4114cf2b3bd0ac0af3dffbbe0b40004  gcc/te
*** 69322,69327 ****
--- 79396,79403 ----
  b3421fbdc1418b61214986622eb978f2  gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c
  dfde9b7816ac82223f119b2bfaa13341  gcc/testsuite/gcc.target/arm/cmse/baseline/union-1.c
  a3d5632079324bffb4dfe7cfa572dbe5  gcc/testsuite/gcc.target/arm/cmse/baseline/union-2.c
+ ab09e683e17dc7ce2c4d91c6a8e0d933  gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c
+ fc61b6892330cc23f0df8333d5d5ff47  gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c
  3a696ba550dff106d39149511c0b0de5  gcc/testsuite/gcc.target/arm/cmse/bitfield-1.c
  41ae1c120ef99d0e6c273119cef9cd11  gcc/testsuite/gcc.target/arm/cmse/bitfield-2.c
  5a79322cba867ee3afdfb353047e9ad7  gcc/testsuite/gcc.target/arm/cmse/bitfield-3.c
*************** ebdb15be89bef0e9c175a92e85f05897  gcc/te
*** 69340,69346 ****
  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
  266f2af407dee9fa3bf85b781282684c  gcc/testsuite/gcc.target/arm/cmse/cmse-3.c
--- 79416,79423 ----
  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
! 2b929af00dad162524dec248d1b72aa3  gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
! a5e3d47fdebe7e5dea4aaa5a6dbfbfa6  gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
  d307e00dde7714d2f353a08b08451b57  gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c
  aee7e08137af9ad5cb0dc780a0c319de  gcc/testsuite/gcc.target/arm/cmse/cmse-20.c
  266f2af407dee9fa3bf85b781282684c  gcc/testsuite/gcc.target/arm/cmse/cmse-3.c
*************** ce1fe2059d8e263b0f3d889cb1392892  gcc/te
*** 69349,69355 ****
  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
--- 79426,79432 ----
  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
! a15a41d8053e90613a0ba98ebf02ab85  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
*************** b67dc35cb041e665b0436a8b3c1dbbf9  gcc/te
*** 69388,69393 ****
--- 79465,79471 ----
  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
+ faca3c21de94fc80fda6fd51e8115e33  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.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
*************** f32c9a4cdef7ef83fecd67301b456a9d  gcc/te
*** 69403,69412 ****
--- 79481,79493 ----
  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
+ 1f19eefa0007defa3ca45a7482abfc1e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c
+ 807c36fe1a023b784abbb41c04bd3fb3  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.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
+ 40df0729b706e4e5aa6fb504927583cd  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.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/te
*** 69414,69426 ****
--- 79495,79511 ----
  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
+ b4f8619085f032943e4c8a193542e258  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c
  cb60008d5e98eeaf45a18dec48047164  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-1.c
  bfdbc743afa8415599bab6c48cb26d64  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-2.c
+ bc5ddeb704b470aff4db297ad27825e6  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c
  8cd1e54844f2fab111ede15dfc983556  gcc/testsuite/gcc.target/arm/cmse/pr100333.c
  c7feddd41b8ab7d0bcc61e9ba67a259a  gcc/testsuite/gcc.target/arm/cmse/pr99725.c
  dc937ad7bdd38e233f8eb2871fbab365  gcc/testsuite/gcc.target/arm/cmse/struct-1.c
  018f6e1e401b9f8f53cb13da1c5fcef7  gcc/testsuite/gcc.target/arm/cmse/union-1.x
  4b49e4c79c02f37ae492dd2e76ef29e7  gcc/testsuite/gcc.target/arm/cmse/union-2.x
+ 00b490e0defc9861facd27d1446d45db  gcc/testsuite/gcc.target/arm/cmse/union-3.x
+ 1e947232907f7ad0b0de9dc9f2203863  gcc/testsuite/gcc.target/arm/cmse/union-4.x
  2dc71ce174b431509377d1ffd99a8551  gcc/testsuite/gcc.target/arm/cold-lc.c
  415862d2bb4d1d07b30f96b9f6b103ae  gcc/testsuite/gcc.target/arm/combine-cmp-shift.c
  4aca50869b79ab15beb4a0ff13338a21  gcc/testsuite/gcc.target/arm/combine-movs.c
*************** abba2731624485a0118e2059f5e1c67a  gcc/te
*** 69447,69456 ****
  529ee033072e89caff1af64c606c76f1  gcc/testsuite/gcc.target/arm/crypto-vldrq_p128.c
  bb083e005abbb16dbe033e2482207d43  gcc/testsuite/gcc.target/arm/crypto-vmull_high_p64.c
  37e2ee21032f90da762fb5f45f40f238  gcc/testsuite/gcc.target/arm/crypto-vmullp64.c
! 29b9196639857b0146df64c3ba42355e  gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
! a9b3df72353269bd050c7b85d3ed348a  gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
! 92a25df2b230221aed44f25c1a57ca78  gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
! b89aeea2c461c8f8163664d31e5b8962  gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
  6c1bc826969319ba979de980b58983ea  gcc/testsuite/gcc.target/arm/crypto-vsha1su0q_u32.c
  9e6b3d146a41dd65032d0bb51b482b3a  gcc/testsuite/gcc.target/arm/crypto-vsha1su1q_u32.c
  c0785176ffe81b127778365b94d2f068  gcc/testsuite/gcc.target/arm/crypto-vsha256h2q_u32.c
--- 79532,79541 ----
  529ee033072e89caff1af64c606c76f1  gcc/testsuite/gcc.target/arm/crypto-vldrq_p128.c
  bb083e005abbb16dbe033e2482207d43  gcc/testsuite/gcc.target/arm/crypto-vmull_high_p64.c
  37e2ee21032f90da762fb5f45f40f238  gcc/testsuite/gcc.target/arm/crypto-vmullp64.c
! 446104562e55decf3a31caee093b6597  gcc/testsuite/gcc.target/arm/crypto-vsha1cq_u32.c
! b091a6d42efd78a5ea2b738a41f7db5e  gcc/testsuite/gcc.target/arm/crypto-vsha1h_u32.c
! a699e2f1b04ecea5e52a5634738c3e4c  gcc/testsuite/gcc.target/arm/crypto-vsha1mq_u32.c
! cb350e0285bdad99b40c339b8e999776  gcc/testsuite/gcc.target/arm/crypto-vsha1pq_u32.c
  6c1bc826969319ba979de980b58983ea  gcc/testsuite/gcc.target/arm/crypto-vsha1su0q_u32.c
  9e6b3d146a41dd65032d0bb51b482b3a  gcc/testsuite/gcc.target/arm/crypto-vsha1su1q_u32.c
  c0785176ffe81b127778365b94d2f068  gcc/testsuite/gcc.target/arm/crypto-vsha256h2q_u32.c
*************** e4e7e97477f4d414552607a539ce1961  gcc/te
*** 69460,69466 ****
  ed2b50cc975209c386ac092f41e1de71  gcc/testsuite/gcc.target/arm/crypto-vstrq_p128.c
  b9c14ca46b24367094afd644db9eaf9a  gcc/testsuite/gcc.target/arm/csinc-1.c
  d76eded64cae6085a1584ebc332960fc  gcc/testsuite/gcc.target/arm/csinv-1.c
! f260318b0e6b2694e5754bdaaf9bcdf2  gcc/testsuite/gcc.target/arm/csneg.c
  04180c39197ac7213180f12bdd3f5a76  gcc/testsuite/gcc.target/arm/ctz.c
  e74ff9f47d550052bb53055028bce7ad  gcc/testsuite/gcc.target/arm/data-rel-1.c
  8761624a901e2a8e7d1b277c5e540b4c  gcc/testsuite/gcc.target/arm/data-rel-2.c
--- 79545,79551 ----
  ed2b50cc975209c386ac092f41e1de71  gcc/testsuite/gcc.target/arm/crypto-vstrq_p128.c
  b9c14ca46b24367094afd644db9eaf9a  gcc/testsuite/gcc.target/arm/csinc-1.c
  d76eded64cae6085a1584ebc332960fc  gcc/testsuite/gcc.target/arm/csinv-1.c
! cd168a5d88c048d7130a8b4da2202507  gcc/testsuite/gcc.target/arm/csneg.c
  04180c39197ac7213180f12bdd3f5a76  gcc/testsuite/gcc.target/arm/ctz.c
  e74ff9f47d550052bb53055028bce7ad  gcc/testsuite/gcc.target/arm/data-rel-1.c
  8761624a901e2a8e7d1b277c5e540b4c  gcc/testsuite/gcc.target/arm/data-rel-2.c
*************** f7f17803a6b1738e8dc92505f13e319c  gcc/te
*** 69472,69478 ****
  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
--- 79557,79563 ----
  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
! 09c6a20c1dc5be14c490addc15c6148c  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
*************** e95ad2780e346935674e8e065a322d1d  gcc/te
*** 69484,69493 ****
  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
--- 79569,79575 ----
  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
! d8203dd017181ab133e278b2250a10d4  gcc/testsuite/gcc.target/arm/fp16-aapcs.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
*************** bd73c95524d9f1019271a9aa2e06bcfa  gcc/te
*** 69514,69520 ****
  9806585bc3a2be7f7426638320d9394d  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-7.c
  f091bc050a5c31d7a6ceeca78aa27839  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-8.c
  3d7448d9e0e2a2cb30266768959fc9af  gcc/testsuite/gcc.target/arm/fp16-compile-ieee-9.c
- d777e2316d0e2a16e9703621b8fb9659  gcc/testsuite/gcc.target/arm/fp16-compile-none-1.c
  60b76176e5d7246f095182cd02e97e14  gcc/testsuite/gcc.target/arm/fp16-compile-none-2.c
  e1bf55d078ccc0f4928c49eb854cdd2c  gcc/testsuite/gcc.target/arm/fp16-compile-vcvt.c
  8d796d7bd29e4649bde373195abd883c  gcc/testsuite/gcc.target/arm/fp16-inf.c
--- 79596,79601 ----
*************** cb9e119b328b5c2a1e304f019876ecad  gcc/te
*** 69561,69583 ****
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
  0e04489397aa1c1db41d2fe6d47ed574  gcc/testsuite/gcc.target/arm/headmerge-2.c
  b7fc1639bee153568add250d53ea751f  gcc/testsuite/gcc.target/arm/identical-invariants.c
! 6b37d9e567d7851e4e037dc6ffb87d9c  gcc/testsuite/gcc.target/arm/ifcvt-size-check.c
  8584a9f991443ef7f54d4d5430591db3  gcc/testsuite/gcc.target/arm/interrupt-1.c
  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
--- 79642,79664 ----
  ecf3e369bf7ea3b785fa7c81fca39ca9  gcc/testsuite/gcc.target/arm/headmerge-1.c
  0e04489397aa1c1db41d2fe6d47ed574  gcc/testsuite/gcc.target/arm/headmerge-2.c
  b7fc1639bee153568add250d53ea751f  gcc/testsuite/gcc.target/arm/identical-invariants.c
! 65b53bdc4356148e3666f4e6a91e21b2  gcc/testsuite/gcc.target/arm/ifcvt-size-check.c
  8584a9f991443ef7f54d4d5430591db3  gcc/testsuite/gcc.target/arm/interrupt-1.c
  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
! bc8a51f7d60d525838b5735d67fbda46  gcc/testsuite/gcc.target/arm/ivopts-2.c
! 03da67048daf58177fd289f47a8e80b9  gcc/testsuite/gcc.target/arm/ivopts-3.c
! 9d3bdbe8d2d4e2e3033944d7704a661f  gcc/testsuite/gcc.target/arm/ivopts-4.c
! 5e41daf8ab3411b1ac1597c2a760ec01  gcc/testsuite/gcc.target/arm/ivopts-5.c
  371c001d833d940cd40d8aa3fee9915d  gcc/testsuite/gcc.target/arm/ivopts-orig_biv-inc.c
! aaf1767c15a83bfbd59e30737843d56c  gcc/testsuite/gcc.target/arm/ivopts.c
! f34b883201d67907215163e81a1e647d  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
! b6d21b184b9363ec63310029743b3ec8  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
*************** bf821309d2cd93b8c0d6b0704742bc45  gcc/te
*** 69590,69597 ****
  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
--- 79671,79678 ----
  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
! 907fdd46667ce02cd530e6e361337e71  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
! f362f2eaa3aeccd8f36ea7acbbc1b897  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
*************** fd9597acaf90b4fc0a611739248cecea  gcc/te
*** 69602,69608 ****
  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
--- 79683,79689 ----
  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
! af94e342ff2dea36837acc918c624002  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
*************** ba5017b591e31d9d25de0072928e8d5a  gcc/te
*** 69622,69629 ****
  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
--- 79703,79708 ----
*************** aa168ab73051b82a62ea3739df9b7948  gcc/te
*** 69637,69645 ****
  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
--- 79716,79724 ----
  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
! 245115ae7c12633599d874a25657d9cb  gcc/testsuite/gcc.target/arm/multilib.exp
  1c6df99c167e122c3ce87f610c408a1e  gcc/testsuite/gcc.target/arm/mve/dlstp-compile-asm-1.c
! 77d3814c02278cb525be3b9b8ff07d7a  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
*************** fffad35934f526817fc333e82d0e79bb  gcc/te
*** 69657,69663 ****
--- 79736,79744 ----
  f7aa4c937541029a5bd3fe618bef6974  gcc/testsuite/gcc.target/arm/mve/general/double_pragmas_1.c
  e787e32385a63c5e015b59725e3d0250  gcc/testsuite/gcc.target/arm/mve/general/nomve_1.c
  398e4816db99fac1f05cd83d7d9911ec  gcc/testsuite/gcc.target/arm/mve/general/preserve_user_namespace_1.c
+ 2250da8fa6c9a11e681ab30e5a28beff  gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl-various-ranges.c
  2884159c19b60a0ae3743c8a1b9c6729  gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl.c
+ 9771ae4e87fe4c9924a3ea4b95fbd696  gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll-various-ranges.c
  c52dd6cedef3761b071c005d8eda4014  gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll.c
  8742cb74c36fe44acebeaf852842a44d  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve-vldstr16-no-writeback.c
  755209da383c0bfcbef14b5d5e67e63c  gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c
*************** ab72cfcef8400549b3b4d4d318e4955e  gcc/te
*** 69696,69717 ****
--- 79777,79815 ----
  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
+ e14ba2541ff3c89f58cdffd7fb521907  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-2-f16.c
+ 265568cd3de7b1069f8262b440a9fa8e  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-2-f32.c
+ bf378714d79fc87ae8d2ba5ba38abac9  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-3-f16.c
+ 15aec943165a84d58ffd2c936ae9d803  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-3-f32.c
+ 84354c69eb2873c22b365b20f28334de  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-4-f16.c
+ 3b67b13f1d91d7d82ceff8afa29b36dc  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-f16.c
+ 63d6ed204826c1801633a1d22c899278  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr117814-f32.c
  c6565beafc869833d2a6dd9484818c2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr118332.c
+ 1073bc89c952fc9eb9cdb6a1efd78a78  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122175.c
+ b52bd79f0b568c75adaa75c022b0e2a0  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c
  b64a60d68e969b641b8652c2bd4eef0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
  e49e7d0224d2de2b6eb25c3a244cd391  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat64.c
  d3f751fb7834048caebc57c00a0b0669  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqshl.c
+ 5cb2c711c38b13329aa756f2a4968c7e  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqshl_check_shift.c
  c0cd3e4f7024a2d04161bf43e25946bd  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqshll.c
+ d88239b6df241f6ab76ae6233b7927c6  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqshll_check_shift.c
  c592daa4ef9e858226a39a15cbcce7f6  gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c
+ c352808f55caea652c23718cc7208e5b  gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr_check_shift.c
  32506ffcab61d385978e678775ecdfc4  gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c
+ 6242755c29d31f88bb69027c7aaf473b  gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl_check_shift.c
  63e8f801047717a4c67ec4b431ad5b83  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqrshl.c
  c2c0bfc897d413e333c946737ac284e5  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqrshll_sat48.c
  e368cc732c7e899ba1b61e691ec9cf54  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqrshll_sat64.c
  a2ff13f6a420e0605a2d5aa88a89f4cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c
+ cc1d59b7c6e6574b40218dce684027c0  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl_check_shift.c
  b4430c11f798899421400d043a89abdc  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c
+ e927ba6f04155896185ed8500fd73527  gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll_check_shift.c
  1e7b52567c15d2613d2cde7ed108ea4f  gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c
+ 9281ae427c73337372c8546b4b19b980  gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr_check_shift.c
  d52c4cdf2fa9730d39064e0328ae17a0  gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c
+ d6128ff87a744e64df8e4c39e3cfdb13  gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl_check_shift.c
  bafc5915396c36dd0b92a94db86a8b26  gcc/testsuite/gcc.target/arm/mve/intrinsics/vabavq_p_s16.c
  13b7a0be8d75d3a39dfabddd0d2929a1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vabavq_p_s32.c
  210b43751f72df75b561694983081d5c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vabavq_p_s8.c
*************** f800954ed63838e287ff6e1a23290ce0  gcc/te
*** 69767,69774 ****
  42477f6df1dda97231658c67dd1c33b3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c
  ec6423961de9ca5f2cb66d89043d66e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c
  87dfc338f1af58cdf73c1f2e3a644405  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c
! 0e70b98bf29cbcedc33a3c6c66128fd0  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
! 76884627c97729162f401bd38f98783f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
  90c91eea3a5177e36dd45a9543b728a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c
  15e2481ce5d9bea739ce6b372c3d433e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c
  30849dd964b0e504a851831adfe15591  gcc/testsuite/gcc.target/arm/mve/intrinsics/vaddlvaq_p_s32.c
--- 79865,79873 ----
  42477f6df1dda97231658c67dd1c33b3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c
  ec6423961de9ca5f2cb66d89043d66e8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c
  87dfc338f1af58cdf73c1f2e3a644405  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c
! 50e0a047cebdb35ac47d77a3b8ce7dd7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq-check-carry.c
! e43c5c55acb5b3a4298f4a7ec83f8eac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c
! 546e8e74f477c43934e3b9daf9721338  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c
  90c91eea3a5177e36dd45a9543b728a4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c
  15e2481ce5d9bea739ce6b372c3d433e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c
  30849dd964b0e504a851831adfe15591  gcc/testsuite/gcc.target/arm/mve/intrinsics/vaddlvaq_p_s32.c
*************** b16eb4dae838ed49e53f7c7a2d51615f  gcc/te
*** 69879,69887 ****
  379305fd24a862f238629854c414dee6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_f32.c
  a8bfc54a0b707b20b1e4337a873d1141  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_f16.c
  8b752c095c13aaa5b248cac872529034  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_f32.c
! 1c2dc2fc6339f159195d92c2987b135e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_s16.c
  746dd2a1cd67a54ed37d839514563937  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_s32.c
! 78d54654b68d817b4f9b11747f9774ab  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_u16.c
  3da9b316f166be2b0b1bef8b36a77698  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_u32.c
  b38d694edb554777c912d3d8b351542f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_s16.c
  e0f29475bccd8d3c60702fb4a340ce3e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_s32.c
--- 79978,79986 ----
  379305fd24a862f238629854c414dee6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_f32.c
  a8bfc54a0b707b20b1e4337a873d1141  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_f16.c
  8b752c095c13aaa5b248cac872529034  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_f32.c
! 6645e237ef6a7718a846b6be1f14e729  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_s16.c
  746dd2a1cd67a54ed37d839514563937  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_s32.c
! 23800fa69c42944a6f985c4ac98a4a1a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_u16.c
  3da9b316f166be2b0b1bef8b36a77698  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_n_u32.c
  b38d694edb554777c912d3d8b351542f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_s16.c
  e0f29475bccd8d3c60702fb4a340ce3e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_s32.c
*************** e0f29475bccd8d3c60702fb4a340ce3e  gcc/te
*** 69889,69897 ****
  5b7dec9e9a47f3693c0ad453c5f70d0b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u16.c
  f82dce197d257352e69ae046fe7e17b7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u32.c
  981cb4a3d8d3c985810e2af50820e729  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u8.c
! b800334fa42fe33f6d447e96a271b86f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_s16.c
  32552c66d34e62a84fa1c34edea165d1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_s32.c
! bd9f6e74be4e9f7031bf83b1b68d0b67  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_u16.c
  64c8ce72f7403217eca720fdff91052b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_u32.c
  0a34875894b53d7fe0391138f5ef2daf  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_s16.c
  0006ca8192ad47c0dc56b383f2736f35  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_s32.c
--- 79988,79996 ----
  5b7dec9e9a47f3693c0ad453c5f70d0b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u16.c
  f82dce197d257352e69ae046fe7e17b7  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u32.c
  981cb4a3d8d3c985810e2af50820e729  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_m_u8.c
! e999f4f63c7f59e59d4be21d91c4f9ec  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_s16.c
  32552c66d34e62a84fa1c34edea165d1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_s32.c
! 29f8c8ed91aef3ce211503973d026051  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_u16.c
  64c8ce72f7403217eca720fdff91052b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_n_u32.c
  0a34875894b53d7fe0391138f5ef2daf  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_s16.c
  0006ca8192ad47c0dc56b383f2736f35  gcc/testsuite/gcc.target/arm/mve/intrinsics/vbicq_s32.c
*************** dc3bbe82f0ada40b2478603578aa8315  gcc/te
*** 70366,70372 ****
  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
--- 80465,80471 ----
  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
! d391bc93ef31500f2f133b8090c2b1d7  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
*************** fb0ced273ef16306ca42c89de5e05c4c  gcc/te
*** 70443,70458 ****
  bd107c34bdf08a12683facdbe50fc31a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_f32.c
  33fd50313bb612ca3d11f34913c71905  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_m_f16.c
  dff25999b2db1e26ece4cb6a143094ae  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_m_f32.c
! a7885a4fa2e376a4d4dfb0fc044917d3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_f16.c
! fb1a495fd4d60ccc8dd701b99908f8ff  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_f32.c
! 53b72f9961c6673f642721664ef92661  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s16.c
! bea9e8fdf93c00a8cc8388ed6bee43d4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s32.c
! 118164a375f651a3817e6fa89c2b9482  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s64.c
! 81fe049808f30df435aae27084ffd7f5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s8.c
! ca8fc175292b81b70decf89029745e9b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u16.c
! ead51aa932f54ce080e763a9d560716f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u32.c
! a3b7d26a1d14371254a3c36462110c35  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u64.c
! 555de40671413a541c288777ba86e237  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u8.c
  456367251ea09d02e1b559ac0fda6cd4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c
  666a634c92812f22f3e579287bf86de2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c
  90add2bcd9e418fec40810e0db7340d6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c
--- 80542,80557 ----
  bd107c34bdf08a12683facdbe50fc31a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_f32.c
  33fd50313bb612ca3d11f34913c71905  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_m_f16.c
  dff25999b2db1e26ece4cb6a143094ae  gcc/testsuite/gcc.target/arm/mve/intrinsics/vfmsq_m_f32.c
! 6d7ed90e1f533a2224b39406bc8fda0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_f16.c
! 8c7ddb5708dee27f673441b55fcdea25  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_f32.c
! 9fcee01d34285aa8f1c7be566d1acdc3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s16.c
! 33ceb385864d79073ae67e051ffb51ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s32.c
! 9417af4a54ca72b71160b6b56151a2a2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s64.c
! 1a9332a8f5a1b9fb0e1a8bc340319255  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_s8.c
! 46b8ff1b7ebca6787608019fc4445985  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u16.c
! f9e80e8ea2cb03f67d231209b66ba250  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u32.c
! 1344c2ac11b9262494ab8e35fbb1ef04  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u64.c
! 2fbaa8a701dfaac06e10944124c98850  gcc/testsuite/gcc.target/arm/mve/intrinsics/vgetq_lane_u8.c
  456367251ea09d02e1b559ac0fda6cd4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c
  666a634c92812f22f3e579287bf86de2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c
  90add2bcd9e418fec40810e0db7340d6  gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c
*************** eaca578057885ae943c817131017c789  gcc/te
*** 71110,71118 ****
  b9436ee142cf012cba4bc0227caee592  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u16.c
  54347a155ea714bcb9e212dc3462b701  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u32.c
  c800aa91b52274f68917941cd1190c7e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u8.c
! 17eaebdff48759b34a8e10340656b777  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_s16.c
  d4021f40246bd789c67f5fbc021f570d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_s32.c
! baf325d27e3cc75fa283ed038be71f09  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_u16.c
  e2c3f8d807e6df670b182639697d61d2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_u32.c
  f0a632576ce63037f3bf0c52cfdeaab4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_s16.c
  be099bfa149c919b97ff87b3ac9e563a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_s32.c
--- 81209,81217 ----
  b9436ee142cf012cba4bc0227caee592  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u16.c
  54347a155ea714bcb9e212dc3462b701  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u32.c
  c800aa91b52274f68917941cd1190c7e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulq_x_u8.c
! 1ecc461eacff322e4e70e4468e408e38  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_s16.c
  d4021f40246bd789c67f5fbc021f570d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_s32.c
! 451c7697f29e12d8e4e3b98f74ba421d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_u16.c
  e2c3f8d807e6df670b182639697d61d2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_n_u32.c
  f0a632576ce63037f3bf0c52cfdeaab4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_s16.c
  be099bfa149c919b97ff87b3ac9e563a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_s32.c
*************** b810569b55c0974c561012a54fdccd5d  gcc/te
*** 71120,71128 ****
  aaf1ee37ab90a8743accdac607e5ddbd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u16.c
  36c55ee3b8a6e46022a1c372de48d144  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u32.c
  1c0b99695cb6d99decfe778dad796bb1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u8.c
! ded3a05dba6e22eedd7087187a6a0860  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_s16.c
  c5fac965cbef4b881d9a1f2d98150781  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_s32.c
! c69943ff532db85c43c96ccec2f33c06  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_u16.c
  3984fdd8ff00f38d51ee6d0a12c1d577  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_u32.c
  98f05c45e70804bc87c31ef7bb1496c3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_s16.c
  9fd8ff0080b31d26e95e8154662b8b1d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_s32.c
--- 81219,81227 ----
  aaf1ee37ab90a8743accdac607e5ddbd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u16.c
  36c55ee3b8a6e46022a1c372de48d144  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u32.c
  1c0b99695cb6d99decfe778dad796bb1  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_m_u8.c
! 8a835299c26823b053879511337d7e5a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_s16.c
  c5fac965cbef4b881d9a1f2d98150781  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_s32.c
! 69bb1727970db5a83942b6b918fcf52a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_u16.c
  3984fdd8ff00f38d51ee6d0a12c1d577  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_n_u32.c
  98f05c45e70804bc87c31ef7bb1496c3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_s16.c
  9fd8ff0080b31d26e95e8154662b8b1d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_s32.c
*************** c69943ff532db85c43c96ccec2f33c06  gcc/te
*** 71130,71138 ****
  01a1541f848b77189ff1703e153057f2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u16.c
  57c84dfaf5a0ecb71406f24f4f636f1e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u32.c
  5fac6cff0ac97247f74de50048bb21ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u8.c
! a0e4fe8dfaeea84686a6c1c2003f745d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_s16.c
  1816737324959d4cf189b1504224ba7d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_s32.c
! ef855992672862b7ac27892241bbddaa  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_u16.c
  5a07bf783a2ff4e7ffbb9b22e931232d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_u32.c
  b0dab0d07df2863f1f1023447370dcb3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_s16.c
  5a8c455825f86d346471e9f54aaa661c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_s32.c
--- 81229,81237 ----
  01a1541f848b77189ff1703e153057f2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u16.c
  57c84dfaf5a0ecb71406f24f4f636f1e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u32.c
  5fac6cff0ac97247f74de50048bb21ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_u8.c
! d7cec11fac57c4fd296f6f6baf946a4d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_s16.c
  1816737324959d4cf189b1504224ba7d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_s32.c
! 7a8ac4b5dbff39528e65dc83efbf6cc5  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_u16.c
  5a07bf783a2ff4e7ffbb9b22e931232d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_n_u32.c
  b0dab0d07df2863f1f1023447370dcb3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_s16.c
  5a8c455825f86d346471e9f54aaa661c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vmvnq_x_s32.c
*************** d6b79c1e1c2d8e751f7c2c105dae3898  gcc/te
*** 71183,71191 ****
  cb9e716f57810b5c1ce6abeabe0ab472  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_f32.c
  66867bf3d434113ee927a217680b23cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_f16.c
  3a172a074a4862a157f14b3801bb1210  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_f32.c
! b679f6fa084af2157a4702ed3a8f933a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_s16.c
  bc4d6f06ce904236acedd8a196b21d7c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_s32.c
! ed3915612cd34365a95b50948d8c57b8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_u16.c
  6967987fe0e53d1d43cf04820504e0fc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_u32.c
  3e4edba2c408373fa1fdf38e3667d5f2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_s16.c
  b3ef2c205b2e4d7abe823331a5e5cb82  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_s32.c
--- 81282,81290 ----
  cb9e716f57810b5c1ce6abeabe0ab472  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_f32.c
  66867bf3d434113ee927a217680b23cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_f16.c
  3a172a074a4862a157f14b3801bb1210  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_f32.c
! 1e3384ba9ab1b9b3fd37a092bfd22f68  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_s16.c
  bc4d6f06ce904236acedd8a196b21d7c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_s32.c
! 9b36e50834f20708a55479fe14d3a813  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_u16.c
  6967987fe0e53d1d43cf04820504e0fc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_n_u32.c
  3e4edba2c408373fa1fdf38e3667d5f2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_s16.c
  b3ef2c205b2e4d7abe823331a5e5cb82  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_s32.c
*************** ba90459935c5f1da32c14f639fd69799  gcc/te
*** 71193,71201 ****
  694e181768ab2f46aa267229ea46bae8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u16.c
  7b254947d9d53ee8601410e8fc9a4cda  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u32.c
  0d21a013db6a37220f36994890a724b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u8.c
! cb7920d9b05c231d39b1aee4377b7e85  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_s16.c
  682b50d539082f12948c3a093d482c86  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_s32.c
! b3fa31f2ab0bcb4b34769d23a58f0547  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_u16.c
  5c588306a470470d47e69c94f3e20b92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_u32.c
  430b11d797496fa82cff7776e25e2c97  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_s16.c
  788a771e8e4508f41d3f90fc9f7fb05a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_s32.c
--- 81292,81300 ----
  694e181768ab2f46aa267229ea46bae8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u16.c
  7b254947d9d53ee8601410e8fc9a4cda  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u32.c
  0d21a013db6a37220f36994890a724b2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_m_u8.c
! b74ba12311da26177a09b55170c0a081  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_s16.c
  682b50d539082f12948c3a093d482c86  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_s32.c
! 77d49599f653ecf64fd2e2b80f02fd02  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_u16.c
  5c588306a470470d47e69c94f3e20b92  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_n_u32.c
  430b11d797496fa82cff7776e25e2c97  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_s16.c
  788a771e8e4508f41d3f90fc9f7fb05a  gcc/testsuite/gcc.target/arm/mve/intrinsics/vorrq_s32.c
*************** ad0f72f16f1436835769ad26f4554b5b  gcc/te
*** 71748,71768 ****
  fe4b54b2c4e751934615b7c2ebfd87cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c
  f2b889d1844a15b18389534c4050fd3b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c
  ed711f516d90a10c0e04b55f40a058fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c
! 22706fd4cb189bfba2724217e07083d8  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
! 0f8daa925acd949859c832c7d986478e  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
  a42ff09d93993a96614fefa3d6e96505  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c
  a719098a51cc49f83ff59264834d4b4c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c
  af70db4174c1713b590a6d5ba294aa2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f16.c
  25befadfa1ca09ed85081c818a46c071  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f32.c
  c9fa67c20fec9ef097315c2e0664eb2f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s16.c
  0e904d54afafee544aac46db74a0fb78  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s32.c
  def367f33eb6f2d3b377c08209d4e3ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s64.c
  8260100dce01c5f54338df06aed56da3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s8.c
  bfc6037993ab8de2e59e1fc18bd8c747  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c
  3aebb2229ee3c92f32168bc434c06dcc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u16.c
  b6849ec20ab5271453eb6a6910746ff2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u32.c
  770546f9f98bbba226ff4a00ebb7d508  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u64.c
  ed0f72d390ea11c3168e5e335bdec21d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u8.c
  43bf3461554f8584a060f10ca2b64b30  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s16.c
  90cc10b3fc55e08237e3835d79ec63d2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s32.c
  f4a3da6eaaa7a3e3bef7efe2a0c4d05d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s8.c
--- 81847,81877 ----
  fe4b54b2c4e751934615b7c2ebfd87cd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c
  f2b889d1844a15b18389534c4050fd3b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c
  ed711f516d90a10c0e04b55f40a058fe  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c
! eecc04e0264dc2ab8b3824ea39698090  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c
! 1bd6cfd4525432a0c7ad3aeac010f72c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c
  a42ff09d93993a96614fefa3d6e96505  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c
  a719098a51cc49f83ff59264834d4b4c  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c
  af70db4174c1713b590a6d5ba294aa2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f16.c
+ 129aeadac921d2ca72b2f8de15e511dd  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f16_bounds.c
  25befadfa1ca09ed85081c818a46c071  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f32.c
+ 893f42f63e7d110bb31fc90b9cb4af73  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_f32_bounds.c
  c9fa67c20fec9ef097315c2e0664eb2f  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s16.c
+ b5577408eaab901f48139ae4dfda8198  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s16_bounds.c
  0e904d54afafee544aac46db74a0fb78  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s32.c
+ 17e64233409cfc5dfd9bdcf727340f66  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s32_bounds.c
  def367f33eb6f2d3b377c08209d4e3ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s64.c
+ bbf421c5707865a2bfadcd27f1925803  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s64_bounds.c
  8260100dce01c5f54338df06aed56da3  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s8.c
+ 6267831047491beeeb715ac403fe68ac  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s8_bounds.c
  bfc6037993ab8de2e59e1fc18bd8c747  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c
  3aebb2229ee3c92f32168bc434c06dcc  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u16.c
+ 2f6704ee691108310872bb899dc52c9b  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u16_bounds.c
  b6849ec20ab5271453eb6a6910746ff2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u32.c
+ 2e7fc0bab16e6d2e14d2f27d46ac3942  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u32_bounds.c
  770546f9f98bbba226ff4a00ebb7d508  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u64.c
+ 305794d5be59ffc0cd058f735398a5f4  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u64_bounds.c
  ed0f72d390ea11c3168e5e335bdec21d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u8.c
+ eb79a73a3a3d592dcb0a6326c0e45f78  gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u8_bounds.c
  43bf3461554f8584a060f10ca2b64b30  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s16.c
  90cc10b3fc55e08237e3835d79ec63d2  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s32.c
  f4a3da6eaaa7a3e3bef7efe2a0c4d05d  gcc/testsuite/gcc.target/arm/mve/intrinsics/vshlcq_m_s8.c
*************** d5068cbd7a08c2cb2252064ce7d7f5b2  gcc/te
*** 72089,72095 ****
  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
--- 82198,82204 ----
  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
! 74451aeff8130861774df7a49b560bde  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
*************** d104c798882729bd8931c673334d0232  gcc/te
*** 72133,72138 ****
--- 82242,82248 ----
  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
+ 2844cdec13cd0820b83cc92387cb6ea6  gcc/testsuite/gcc.target/arm/mve/pr122858.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
*** 72154,72159 ****
--- 82264,82271 ----
  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
+ ac20adafaa278263e92b9a745a6cb0da  gcc/testsuite/gcc.target/arm/neon-smax16.c
+ 329671596e7c24a6fcb5c9d102bf7c37  gcc/testsuite/gcc.target/arm/neon-smin16.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
*************** c2682b969fcec66bb2ebb2442ff4221b  gcc/te
*** 72272,72277 ****
--- 82384,82395 ----
  39327fb26a438561d0617a9bfe99c59f  gcc/testsuite/gcc.target/arm/pr115188.c
  01f3623877a32b45af0d229eab49f4cf  gcc/testsuite/gcc.target/arm/pr117675.c
  bc84b25bc522b6ed07bd7885605c00d7  gcc/testsuite/gcc.target/arm/pr120351.c
+ ac8dc8b9b19050248df37eef095827b0  gcc/testsuite/gcc.target/arm/pr121065.c
+ 863c5b161ff9984d5925d994f7529af0  gcc/testsuite/gcc.target/arm/pr121773.c
+ 28d64a7401aed8110aaad23c15c26372  gcc/testsuite/gcc.target/arm/pr122111.c
+ 82da20b2c4061a368f405dbeb1cdb341  gcc/testsuite/gcc.target/arm/pr123271.c
+ 8120924509f8b52f39137165dd663164  gcc/testsuite/gcc.target/arm/pr124134.c
+ 236563c6007691d6571ab9e909e2c81e  gcc/testsuite/gcc.target/arm/pr124933.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
*************** fb7ca982317505366c93c07e9b92b72a  gcc/te
*** 72299,72305 ****
  d8b987b87850e95ff360d2e9cb8b68e7  gcc/testsuite/gcc.target/arm/pr42879.c
  8dc5ba1f369b2c8434ddba2b57f99669  gcc/testsuite/gcc.target/arm/pr43137.c
  54eaa734563d8ef237864db2cd0d66a5  gcc/testsuite/gcc.target/arm/pr43404.c
! 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
--- 82417,82423 ----
  d8b987b87850e95ff360d2e9cb8b68e7  gcc/testsuite/gcc.target/arm/pr42879.c
  8dc5ba1f369b2c8434ddba2b57f99669  gcc/testsuite/gcc.target/arm/pr43137.c
  54eaa734563d8ef237864db2cd0d66a5  gcc/testsuite/gcc.target/arm/pr43404.c
! 954a00a2a9b48f052c5ff79a404d40ef  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/te
*** 72307,72315 ****
  aeba150bfdf5a821a1b2043e1f4af966  gcc/testsuite/gcc.target/arm/pr44999.c
  a4c4698a5fe84412c8b996b75146c2b1  gcc/testsuite/gcc.target/arm/pr45094.c
  6bf421f50d2e131c53639d3bf5eae6ab  gcc/testsuite/gcc.target/arm/pr45447.c
! 05ebe81bfef095b878b1e64ff7846f85  gcc/testsuite/gcc.target/arm/pr45701-1.c
! 9ac256e7126f169ab5ec39056a034e16  gcc/testsuite/gcc.target/arm/pr45701-2.c
! 18881ad8d2240959127b8e69c0334d9c  gcc/testsuite/gcc.target/arm/pr45701-3.c
  36686297e5d882e8e063d16c42dff77e  gcc/testsuite/gcc.target/arm/pr46329.c
  af020e627d5f93cc2c57a41e3bc37e28  gcc/testsuite/gcc.target/arm/pr46631.c
  60541329250f48e1676764a4d6b79d2f  gcc/testsuite/gcc.target/arm/pr46788.c
--- 82425,82433 ----
  aeba150bfdf5a821a1b2043e1f4af966  gcc/testsuite/gcc.target/arm/pr44999.c
  a4c4698a5fe84412c8b996b75146c2b1  gcc/testsuite/gcc.target/arm/pr45094.c
  6bf421f50d2e131c53639d3bf5eae6ab  gcc/testsuite/gcc.target/arm/pr45447.c
! 88cf4f9ca618d46c3a47015c701709e8  gcc/testsuite/gcc.target/arm/pr45701-1.c
! d009b3b2742a8ea5bbfd2aae8ef93ce4  gcc/testsuite/gcc.target/arm/pr45701-2.c
! 00b4c400a05b3d5c71ba0c742cc98cbb  gcc/testsuite/gcc.target/arm/pr45701-3.c
  36686297e5d882e8e063d16c42dff77e  gcc/testsuite/gcc.target/arm/pr46329.c
  af020e627d5f93cc2c57a41e3bc37e28  gcc/testsuite/gcc.target/arm/pr46631.c
  60541329250f48e1676764a4d6b79d2f  gcc/testsuite/gcc.target/arm/pr46788.c
*************** dd89c1faa772f50df78a54a9514f4728  gcc/te
*** 72361,72369 ****
  80d8b2b95ce38433be26f63633a0c397  gcc/testsuite/gcc.target/arm/pr60657.c
  8944fa0da632677ab8035fce58e92bb2  gcc/testsuite/gcc.target/arm/pr60663.c
  8b14f6a79d37229ed4d5153fe3389de1  gcc/testsuite/gcc.target/arm/pr61948.c
! 5fdae85bb8a321060a991fe154549488  gcc/testsuite/gcc.target/arm/pr63210.c
  090e3a4d2e2fdbab7b1d5b0be5ab12a3  gcc/testsuite/gcc.target/arm/pr63408.c
- fa16e93b765a2fccfc78b8366cc5f187  gcc/testsuite/gcc.target/arm/pr64208.c
  224b028685bb00477b6281c95ad71ca7  gcc/testsuite/gcc.target/arm/pr64453.c
  ba50e02461bee64efbeb4ab6a3ee0cbb  gcc/testsuite/gcc.target/arm/pr64460_1.c
  2bb90e87e1c20dc94ca4d0d10b66f32e  gcc/testsuite/gcc.target/arm/pr64600_1.c
--- 82479,82486 ----
  80d8b2b95ce38433be26f63633a0c397  gcc/testsuite/gcc.target/arm/pr60657.c
  8944fa0da632677ab8035fce58e92bb2  gcc/testsuite/gcc.target/arm/pr60663.c
  8b14f6a79d37229ed4d5153fe3389de1  gcc/testsuite/gcc.target/arm/pr61948.c
! ad767c6aaa3399bd309669ff6733b494  gcc/testsuite/gcc.target/arm/pr63210.c
  090e3a4d2e2fdbab7b1d5b0be5ab12a3  gcc/testsuite/gcc.target/arm/pr63408.c
  224b028685bb00477b6281c95ad71ca7  gcc/testsuite/gcc.target/arm/pr64453.c
  ba50e02461bee64efbeb4ab6a3ee0cbb  gcc/testsuite/gcc.target/arm/pr64460_1.c
  2bb90e87e1c20dc94ca4d0d10b66f32e  gcc/testsuite/gcc.target/arm/pr64600_1.c
*************** f7764fa4377a6050626f28e9a6bdc097  gcc/te
*** 72411,72417 ****
  d818fe5994fb2978716480bd4e16254f  gcc/testsuite/gcc.target/arm/pr79058.c
  e9273f96fab761cd7ea5079114cf850a  gcc/testsuite/gcc.target/arm/pr79131-1.c
  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
--- 82528,82533 ----
*************** f166772eb305e39c8ddb1bc5b4fe1592  gcc/te
*** 72449,72457 ****
  ffaef2f11095458b1dee423809dce0fa  gcc/testsuite/gcc.target/arm/pr98931.c
  dfc2cd714cdc3607e121f73074613d5d  gcc/testsuite/gcc.target/arm/pr99592.c
  ea503c77c48a0e40d96c6afcc7523f85  gcc/testsuite/gcc.target/arm/pr99596.c
- 8791a633f5b84ed5331bf9cba1e68e6e  gcc/testsuite/gcc.target/arm/pr99724.c
  38e2ef1e7dbe41d15f1fe7459a11571d  gcc/testsuite/gcc.target/arm/pr99727.c
- 0fbbfb8f043defb1e2b0991415909c85  gcc/testsuite/gcc.target/arm/pr99786.c
  ec5230c6f63b4a45740b6ae0d8e7b39c  gcc/testsuite/gcc.target/arm/pr99977.c
  a2aa1366d4e45f7e19b9247149707b37  gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c
  1cf1f843bbe280fb321fd7e18480fcd9  gcc/testsuite/gcc.target/arm/pragma_arch_attribute_1b.c
--- 82565,82571 ----
*************** db7ec071e6a678f3295bcbcba117b2c3  gcc/te
*** 72475,72481 ****
  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
--- 82589,82595 ----
  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
! 6f0c5ec6cd202ee9da40d4efd63a61a3  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
*************** f2610d7575b26d3fa4727d383179637f  gcc/te
*** 72500,72506 ****
  cffb59f8fe9ec70efaff181d133efaf9  gcc/testsuite/gcc.target/arm/simd/bf16_ma_2.c
  fde2c43a7c47fe7ce9ddd5247cf0715e  gcc/testsuite/gcc.target/arm/simd/bf16_mmla_1.c
  f86742a960fc1c2bd4175fbdab1ce6af  gcc/testsuite/gcc.target/arm/simd/bf16_vldn_1.c
! c85c6e997259bc6ea785859ca3cd0503  gcc/testsuite/gcc.target/arm/simd/bf16_vstn_1.c
  4cb183a1602cdf7e8df9808095457c17  gcc/testsuite/gcc.target/arm/simd/fp16fml_high.c
  86a910fbea8e786089563912a699727e  gcc/testsuite/gcc.target/arm/simd/fp16fml_lane_high.c
  ce6bfdecafebf5d96e30584ac5bde11f  gcc/testsuite/gcc.target/arm/simd/fp16fml_lane_low.c
--- 82614,82620 ----
  cffb59f8fe9ec70efaff181d133efaf9  gcc/testsuite/gcc.target/arm/simd/bf16_ma_2.c
  fde2c43a7c47fe7ce9ddd5247cf0715e  gcc/testsuite/gcc.target/arm/simd/bf16_mmla_1.c
  f86742a960fc1c2bd4175fbdab1ce6af  gcc/testsuite/gcc.target/arm/simd/bf16_vldn_1.c
! d138dd36cdbc0aeae4d19064c2462bac  gcc/testsuite/gcc.target/arm/simd/bf16_vstn_1.c
  4cb183a1602cdf7e8df9808095457c17  gcc/testsuite/gcc.target/arm/simd/fp16fml_high.c
  86a910fbea8e786089563912a699727e  gcc/testsuite/gcc.target/arm/simd/fp16fml_lane_high.c
  ce6bfdecafebf5d96e30584ac5bde11f  gcc/testsuite/gcc.target/arm/simd/fp16fml_lane_low.c
*************** ac6c1f0bd9ddea47b998e6d6fe81f3f3  gcc/te
*** 72559,72565 ****
  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
--- 82673,82679 ----
  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
! 9782037cc99aa21be00aebeea775e55c  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
*************** fda45d52e2070b6f03ce26c5f2f21d9d  gcc/te
*** 72573,72579 ****
  0319dc2665b102f172d97dc610d63799  gcc/testsuite/gcc.target/arm/simd/vect-dot-u8.c
  8e5d88eef0890cd5cf63cc64c80d96a8  gcc/testsuite/gcc.target/arm/simd/vextQf32_1.c
  1877fed963644ac239dae282d98ddfbd  gcc/testsuite/gcc.target/arm/simd/vextQp16_1.c
! 850b679907e2dcc8255e04ff194cd91a  gcc/testsuite/gcc.target/arm/simd/vextQp64_1.c
  5f3cef4ef90f61dc5adff5229cb0e178  gcc/testsuite/gcc.target/arm/simd/vextQp8_1.c
  f756b467d28619f570087e77c6dca98c  gcc/testsuite/gcc.target/arm/simd/vextQs16_1.c
  e473ece6b049004597cfc7d31d31ceec  gcc/testsuite/gcc.target/arm/simd/vextQs32_1.c
--- 82687,82693 ----
  0319dc2665b102f172d97dc610d63799  gcc/testsuite/gcc.target/arm/simd/vect-dot-u8.c
  8e5d88eef0890cd5cf63cc64c80d96a8  gcc/testsuite/gcc.target/arm/simd/vextQf32_1.c
  1877fed963644ac239dae282d98ddfbd  gcc/testsuite/gcc.target/arm/simd/vextQp16_1.c
! d7291552f0b9a86f8806b9c918b3717d  gcc/testsuite/gcc.target/arm/simd/vextQp64_1.c
  5f3cef4ef90f61dc5adff5229cb0e178  gcc/testsuite/gcc.target/arm/simd/vextQp8_1.c
  f756b467d28619f570087e77c6dca98c  gcc/testsuite/gcc.target/arm/simd/vextQs16_1.c
  e473ece6b049004597cfc7d31d31ceec  gcc/testsuite/gcc.target/arm/simd/vextQs32_1.c
*************** a2d62181a57faca3679c1d04633f0100  gcc/te
*** 72649,72654 ****
--- 82763,82769 ----
  20d53f9709a5da5939ad2beda57da127  gcc/testsuite/gcc.target/arm/simd/vrev64u16_1.c
  edc2f7dcab25bf120ba46d27a47f5f30  gcc/testsuite/gcc.target/arm/simd/vrev64u32_1.c
  b6aa67a56498fa3f1770c6c790e6436b  gcc/testsuite/gcc.target/arm/simd/vrev64u8_1.c
+ 6a7b9581bb49e9fb7b7a3aff798cfbec  gcc/testsuite/gcc.target/arm/simd/vset_lane_u8.c
  3f038bbe6481f47cf13116c352cfb5b1  gcc/testsuite/gcc.target/arm/simd/vst1_base_xN_1.c
  579c1d9e1df05810febb3dd4de25d358  gcc/testsuite/gcc.target/arm/simd/vst1_bf16_1.c
  68f09882d8947ef998e4944ba4ae48f0  gcc/testsuite/gcc.target/arm/simd/vst1_bf16_xN_1.c
*************** a84e7e550093e2969e1e9f59824f4052  gcc/te
*** 72733,72739 ****
  8008a7e138765cf948a213e51ecfb80d  gcc/testsuite/gcc.target/arm/smlaltt-1.c
  61ccb5d8433a6f8e4eae1fe9703cf28f  gcc/testsuite/gcc.target/arm/smlatb-1.c
  75b19de937a605ce7ed7e1026e54bbf8  gcc/testsuite/gcc.target/arm/smlatt-1.c
! ed39b4c31a81f4f17ea556e45805a496  gcc/testsuite/gcc.target/arm/split-live-ranges-for-shrink-wrap.c
  3ebeca3ed0f25632879b6c5261fa73b9  gcc/testsuite/gcc.target/arm/ssadv16qi.c
  2e30a53910cdcc3b73ee4ec5cef30bcb  gcc/testsuite/gcc.target/arm/stack-checking.c
  3e7aee3ca3268716b7e56cda15a6ccc3  gcc/testsuite/gcc.target/arm/stack-corruption.c
--- 82848,82854 ----
  8008a7e138765cf948a213e51ecfb80d  gcc/testsuite/gcc.target/arm/smlaltt-1.c
  61ccb5d8433a6f8e4eae1fe9703cf28f  gcc/testsuite/gcc.target/arm/smlatb-1.c
  75b19de937a605ce7ed7e1026e54bbf8  gcc/testsuite/gcc.target/arm/smlatt-1.c
! 3ac69cc815d15b748ea87c1062de7290  gcc/testsuite/gcc.target/arm/split-live-ranges-for-shrink-wrap.c
  3ebeca3ed0f25632879b6c5261fa73b9  gcc/testsuite/gcc.target/arm/ssadv16qi.c
  2e30a53910cdcc3b73ee4ec5cef30bcb  gcc/testsuite/gcc.target/arm/stack-checking.c
  3e7aee3ca3268716b7e56cda15a6ccc3  gcc/testsuite/gcc.target/arm/stack-corruption.c
*************** c2b556510a6d5c54101374760111a06e  gcc/te
*** 72743,72749 ****
  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
--- 82858,82864 ----
  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
! e9768573f09ed99f388842ad2465bd1d  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
*************** a437779b91f79339828db4b1f35dc134  gcc/te
*** 72788,72794 ****
  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
--- 82903,82909 ----
  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
! d453998aeb1cbc11fac19f7fb9d8d4bb  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
*************** f0eb5e8a3b3eb97189a9cf149049fdb4  gcc/te
*** 72809,72815 ****
  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
--- 82924,82930 ----
  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
! f5dc21d31c426e6bafaa99ba81251950  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
*************** ad889dc702c92663961bc564b883d787  gcc/te
*** 72853,72859 ****
  05c3589a49c42a1f66dba99c2e67575f  gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c
  f0d030e6fbffef2383334d1424090ccf  gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c
  56d8ff7bdf563dcd918699bd8ae01ee9  gcc/testsuite/gcc.target/arm/volatile-bitfields-4.c
! ff14f375f3415d01a476840f37b062b0  gcc/testsuite/gcc.target/arm/vrinta-ce.c
  22c159438f9959b6666b395d5c6aecbe  gcc/testsuite/gcc.target/arm/vrintaf32.c
  c9f286d71ee58c4562f8ce595d9435f7  gcc/testsuite/gcc.target/arm/vrintaf64.c
  7ae924766d744675519935afb228f3db  gcc/testsuite/gcc.target/arm/vrintmf32.c
--- 82968,82974 ----
  05c3589a49c42a1f66dba99c2e67575f  gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c
  f0d030e6fbffef2383334d1424090ccf  gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c
  56d8ff7bdf563dcd918699bd8ae01ee9  gcc/testsuite/gcc.target/arm/volatile-bitfields-4.c
! 76aa87f069cd2a3471fd342b14dd01ec  gcc/testsuite/gcc.target/arm/vrinta-ce.c
  22c159438f9959b6666b395d5c6aecbe  gcc/testsuite/gcc.target/arm/vrintaf32.c
  c9f286d71ee58c4562f8ce595d9435f7  gcc/testsuite/gcc.target/arm/vrintaf64.c
  7ae924766d744675519935afb228f3db  gcc/testsuite/gcc.target/arm/vrintmf32.c
*************** c75ed40c88ef10849c23f953624d1ae2  gcc/te
*** 72901,72913 ****
  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
--- 83016,83032 ----
  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
! cbf15f553970ed58451a0c6ccb35367e  gcc/testsuite/gcc.target/avr/avr.exp
! 5c31309787a1c63d40dce18c252c37a1  gcc/testsuite/gcc.target/avr/cmpdi-1.c
  a6701935d18c8ed062555c8a48454bc9  gcc/testsuite/gcc.target/avr/dev-specific-rmw.c
+ 14ec7b85b2ab003574d858aa229c3112  gcc/testsuite/gcc.target/avr/dtofx.c
  2028ceccf9f97e5e84e9adf6beb7597e  gcc/testsuite/gcc.target/avr/exit-abort.h
+ 6c83d167de5a523cffe112594bd1cd56  gcc/testsuite/gcc.target/avr/fminfmax-1.c
+ f99b6b374e8532e344331366048bd0b9  gcc/testsuite/gcc.target/avr/fxtod.c
  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
! 39d5183bcccdcbaf0fa2b39eb9db77ad  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
*************** b61291f78078147f21c923a3c8b81a63  gcc/te
*** 72951,72956 ****
--- 83070,83079 ----
  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
+ b4c1968ee63a61f92dc6808c44852bd9  gcc/testsuite/gcc.target/avr/pr121198.c
+ c8dee67a2567af17cd08c345a4ef3aea  gcc/testsuite/gcc.target/avr/pr122220.c
+ abbae4b0f7390ccdb0c5394f5172173a  gcc/testsuite/gcc.target/avr/pr122222-sitod.c
+ 3bab20e720a24864ff16abcddb328b14  gcc/testsuite/gcc.target/avr/pr123583.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
*************** cbd676b663043514bbc26a8a6c3b7a9d  gcc/te
*** 72988,72993 ****
--- 83111,83117 ----
  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
+ d0517d381fce8d1c143604ebcf5f58cc  gcc/testsuite/gcc.target/avr/sincos-1.c
  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
*************** b8b2cc371ccf507014a9861408530661  gcc/te
*** 73001,73007 ****
  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
--- 83125,83131 ----
  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
! 24d66410d24ecd32ff01dd14f8ce1ff9  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
*************** e6f8c16f16933f4321616345f9504093  gcc/te
*** 73063,73070 ****
  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
  4c0fa0954da76b8e5a21293cd6818d53  gcc/testsuite/gcc.target/avr/torture/pr119989-flashx-1.c
--- 83187,83194 ----
  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
! aff142ef3e2a10cb9a2057fe0de70eff  gcc/testsuite/gcc.target/avr/torture/pr118591-1.c
! 06c9fed732ed8e65dced7b85d5645223  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
  4c0fa0954da76b8e5a21293cd6818d53  gcc/testsuite/gcc.target/avr/torture/pr119989-flashx-1.c
*************** f0df0c8f4daf66789854622391d700cf  gcc/te
*** 73079,73084 ****
--- 83203,83209 ----
  59f291298a5520267ffaa080ff9af660  gcc/testsuite/gcc.target/avr/torture/pr120423-1.c
  335e928612eeba541ace98419cfa1588  gcc/testsuite/gcc.target/avr/torture/pr120423-116389.c
  63785ceba6e301ca68abd46c75c8f6a8  gcc/testsuite/gcc.target/avr/torture/pr120423-2.c
+ d0438290469e79373f6dd3933d324608  gcc/testsuite/gcc.target/avr/torture/pr122187.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
*************** ab53af0eb6dbfe2791a8ac1bbaf0c11f  gcc/te
*** 73093,73104 ****
  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
--- 83218,83229 ----
  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
! 0ee2d1c29e2c413f092fb7ed58bd42a6  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
! 5b81d3a02d06e237e2778e155887df2f  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
*************** b132d1738c80be39010cd2b0314aba73  gcc/te
*** 73150,73156 ****
  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
--- 83275,83281 ----
  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
! de9fa96ac83655f6b3168f2fad0b81cb  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
*** 73163,73169 ****
  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
--- 83288,83294 ----
  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
! 0ccd91706bba113ee9b50d6616f736f1  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
*************** f270d8c52b1c8ecda06456b02342c806  gcc/te
*** 73380,73402 ****
  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
! e548674ceff126911c821129892cc7b4  gcc/testsuite/gcc.target/bpf/btfext-funcinfo.c
  764fe5926bb10fe72fe4f44a1b56005a  gcc/testsuite/gcc.target/bpf/builtin-load.c
  c15ffd0fcf13b8089eb979818ca695d3  gcc/testsuite/gcc.target/bpf/constant-calls-1.c
  308ec3c13b184f3b2a8e46ea0f32f4c8  gcc/testsuite/gcc.target/bpf/constant-calls-2.c
  0a35b0d6dab89db0e09c72c9ad75162e  gcc/testsuite/gcc.target/bpf/core-attr-1.c
  6e576aec6dd862637a199f3cbdb0f2be  gcc/testsuite/gcc.target/bpf/core-attr-2.c
! aa148331f65710cec43d1bf4d93d05b5  gcc/testsuite/gcc.target/bpf/core-attr-3.c
! 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
--- 83505,83531 ----
  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
! 310671518434648c2d65e5054e93dbaf  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
! 96fc35d6dbcd0838545c0f81650f715f  gcc/testsuite/gcc.target/bpf/btfext-funcinfo.c
! 70e3d53a6ac9dc8b0f50d5f64c1ee874  gcc/testsuite/gcc.target/bpf/btfext-lineinfo.c
  764fe5926bb10fe72fe4f44a1b56005a  gcc/testsuite/gcc.target/bpf/builtin-load.c
  c15ffd0fcf13b8089eb979818ca695d3  gcc/testsuite/gcc.target/bpf/constant-calls-1.c
  308ec3c13b184f3b2a8e46ea0f32f4c8  gcc/testsuite/gcc.target/bpf/constant-calls-2.c
  0a35b0d6dab89db0e09c72c9ad75162e  gcc/testsuite/gcc.target/bpf/core-attr-1.c
  6e576aec6dd862637a199f3cbdb0f2be  gcc/testsuite/gcc.target/bpf/core-attr-2.c
! 87edf052bc21baff7997d9a29176752c  gcc/testsuite/gcc.target/bpf/core-attr-3.c
! de1b83233977983adc8596602b5749c5  gcc/testsuite/gcc.target/bpf/core-attr-4.c
! c51889c2bf85a582a70c55135d1c956a  gcc/testsuite/gcc.target/bpf/core-attr-5.c
! 75d332756c3c8ddbd61a86623ba7e2f4  gcc/testsuite/gcc.target/bpf/core-attr-6.c
! bedbbde0a1a4be31a0f04c1407a568f9  gcc/testsuite/gcc.target/bpf/core-attr-7.c
! 2c0b0ad00a1d31ff918ced56424cb4de  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
+ ac9f5d9a42b535295f5f2ffd87a22856  gcc/testsuite/gcc.target/bpf/core-btf-tag-1.c
+ a7ade3ae7abc8d43039c51f86e80fb68  gcc/testsuite/gcc.target/bpf/core-btf-tag-2.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
*************** b813d8fe9de40e92d053612c2870377f  gcc/te
*** 73459,73470 ****
--- 83588,83604 ----
  61717431b5a0ac29696b8966fcffb82d  gcc/testsuite/gcc.target/bpf/memmove-2.c
  519cc9b302f9a6af82ee23578c42d978  gcc/testsuite/gcc.target/bpf/memset-1.c
  08e35dee7813883fc06d43011a5b8b95  gcc/testsuite/gcc.target/bpf/memset-2.c
+ 0c8e7c4772a00a99d142dbfe93d3278c  gcc/testsuite/gcc.target/bpf/memset-3.c
+ eef45c16412589bc9f60b84f2eba2f47  gcc/testsuite/gcc.target/bpf/memset-4.c
  adb6b92de0215aeb6afd970f07e89f03  gcc/testsuite/gcc.target/bpf/mulsidi3-zeroextend-pseudoc.c
  290115ca392c41eb0b1d03361f774e46  gcc/testsuite/gcc.target/bpf/naked-1.c
  848cfe50cbcfdb0ecd5397dde4709429  gcc/testsuite/gcc.target/bpf/naked-2.c
  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
+ d1aee374109953d9e684f7be2e84a1d0  gcc/testsuite/gcc.target/bpf/pr122141-1.c
+ e56d1cb25bc538d9307fec9fd2bcbc4c  gcc/testsuite/gcc.target/bpf/pr122141-2.c
+ c8aba7b175bf78148729a0f6a418ad98  gcc/testsuite/gcc.target/bpf/pr123556.c
  a4661a9ead246d0e0f4bf3d6f6049805  gcc/testsuite/gcc.target/bpf/pseudoc-atomic-memaddr-op.c
  9ae63023d712a4740d04e5f6abd0bccd  gcc/testsuite/gcc.target/bpf/regs-availability-1.c
  dc210944850146bb727cbe535853bf0f  gcc/testsuite/gcc.target/bpf/sdiv-1.c
*************** b460526d0eaa50cb9a920c16a0074c0e  gcc/te
*** 73477,73483 ****
--- 83611,83626 ----
  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
+ 2ed7774ff0cc3500c54ddca2afaf6c57  gcc/testsuite/gcc.target/bpf/torture/bpf-torture.exp
+ 5671b6a403e8abc453f2c3b71795c139  gcc/testsuite/gcc.target/bpf/torture/invalid-memory-access.c
+ c592285575200caa91a0fb9b8e1cca85  gcc/testsuite/gcc.target/bpf/torture/memcpy.c
+ 8005a32e8ccee91f06f60dd07462a927  gcc/testsuite/gcc.target/bpf/torture/memmove.c
+ 0c41b70772cd8825925e5cec227069d4  gcc/testsuite/gcc.target/bpf/torture/memset.c
+ e5edda9f074169992b79e0d7de0e5eeb  gcc/testsuite/gcc.target/bpf/torture/naked.c
+ 71d7696bcf2b7ad5856712473957d259  gcc/testsuite/gcc.target/bpf/torture/nop.c
+ ef44bc19472e5000fa9cdc8484c8716b  gcc/testsuite/gcc.target/bpf/torture/trace_openat.c
  657b196a2414bfd6480a9ed6066f8819  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
+ 70736aae1028ba5081bf762ead456cda  gcc/testsuite/gcc.target/bpf/zero-ext.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
  a9d478d7af0e0b31660f3b7e507a6318  gcc/testsuite/gcc.target/cris/asm-other.S
*************** da811515083d9ddf056500903ebb758b  gcc/te
*** 73492,73498 ****
  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
--- 83635,83641 ----
  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
! 305a2f753b39ff47e15affce2fa2c823  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
*************** b08e4db62a9fb0f97ea3211c38828a92  gcc/te
*** 73563,73569 ****
  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
--- 83706,83712 ----
  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
! d0075ed2eb7f8cdb0c505840b7eea175  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
*** 73591,73597 ****
  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
--- 83734,83740 ----
  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
! 86a1edc968ab42daaf270603675e7e4b  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
*** 73601,73607 ****
  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
--- 83744,83750 ----
  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
! b7b5a61c7ca6e84a6961142a640b46cc  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
*** 73644,73650 ****
  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
--- 83787,83793 ----
  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
! ae1c71dc4dc64d9a0441bc718d901f1d  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
*** 73685,73691 ****
  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
--- 83828,83836 ----
  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
! bc0a15683fdc05ad205021d1fec58d0e  gcc/testsuite/gcc.target/frv/frv.exp
! 8c52cace4a5c79fc5928c5f5710f44d0  gcc/testsuite/gcc.target/gcn/addr-space-convert-1.c
! 6ed451ec1919c43af0ebd88a92e05d05  gcc/testsuite/gcc.target/gcn/addr-space-convert-2.c
  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
*** 73744,73753 ****
  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
  4e6c56ab172baa7aa93d0febfa33ccdf  gcc/testsuite/gcc.target/gcn/simd-math-1.c
  e44eff572cbf9d441776358c84f710c4  gcc/testsuite/gcc.target/gcn/simd-math-2.c
  4244ab42f721cbdd08bdae5d5b626e57  gcc/testsuite/gcc.target/gcn/simd-math-3-16.c
--- 83889,83899 ----
  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
! e340633d8314dbf662caefa0f6a69c15  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
+ 109519f971fcc4d089e6254b8b3f39af  gcc/testsuite/gcc.target/gcn/pr124044.c
  4e6c56ab172baa7aa93d0febfa33ccdf  gcc/testsuite/gcc.target/gcn/simd-math-1.c
  e44eff572cbf9d441776358c84f710c4  gcc/testsuite/gcc.target/gcn/simd-math-2.c
  4244ab42f721cbdd08bdae5d5b626e57  gcc/testsuite/gcc.target/gcn/simd-math-3-16.c
*************** ce760812e4b170974727020f0343cd99  gcc/te
*** 73846,73851 ****
--- 83992,83998 ----
  2bb715a1712dc578dd08a452e8f80b5f  gcc/testsuite/gcc.target/gcn/simd-math-5-short-run.c
  1e92a961b8be80eff95e0d94ee494725  gcc/testsuite/gcc.target/gcn/simd-math-5-short.c
  5b91a51bf3c209f29ece25c29f8a556b  gcc/testsuite/gcc.target/gcn/simd-math-5.c
+ 75dbb2289fff9e4c7433211e4be8d975  gcc/testsuite/gcc.target/gcn/sincos-ice-on-ifn_sin-call-1.c
  c725bb6cd1ad5f29265111af6e3d86e5  gcc/testsuite/gcc.target/gcn/smax_1.c
  6e933396760a7a72a37422dcce7d607d  gcc/testsuite/gcc.target/gcn/smax_1_run.c
  02843a6f601ee9bd8b48f6beb255868a  gcc/testsuite/gcc.target/gcn/smin_1.c
*************** c1f2f58ff01ac0af9bac1540222140eb  gcc/te
*** 73868,73874 ****
  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
--- 84015,84021 ----
  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
! 28c7c1bc0ed9043a160305a66da81453  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
*** 73878,73884 ****
  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
--- 84025,84031 ----
  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
! cdb504af1edbc5a03e1710635c9ba2f0  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
*************** e42ece46b9162197da33170eb29e9c26  gcc/te
*** 73898,73904 ****
  15fc64d4cac9724062264d2a58c4894a  gcc/testsuite/gcc.target/i386/20011119-1.c
  6e9c1b44e61009b8fe9f66a99d59a0f1  gcc/testsuite/gcc.target/i386/20020201-3.c
  df8b684ced3c67573d1feada188938b6  gcc/testsuite/gcc.target/i386/20020218-1.c
! ba54f9b0c866b8f8b35145c85e815cee  gcc/testsuite/gcc.target/i386/20020224-1.c
  8c6ac3ccbfa7309d7f004530bc027745  gcc/testsuite/gcc.target/i386/20020426-1.c
  81bebcf75e16cf88e51a784c865c16d7  gcc/testsuite/gcc.target/i386/20020523.c
  84c40a03d2d79e5bebb4a73ab2b24f5a  gcc/testsuite/gcc.target/i386/20020531-1.c
--- 84045,84051 ----
  15fc64d4cac9724062264d2a58c4894a  gcc/testsuite/gcc.target/i386/20011119-1.c
  6e9c1b44e61009b8fe9f66a99d59a0f1  gcc/testsuite/gcc.target/i386/20020201-3.c
  df8b684ced3c67573d1feada188938b6  gcc/testsuite/gcc.target/i386/20020218-1.c
! 730094a8a8a10ff80fdb112a9cb660c3  gcc/testsuite/gcc.target/i386/20020224-1.c
  8c6ac3ccbfa7309d7f004530bc027745  gcc/testsuite/gcc.target/i386/20020426-1.c
  81bebcf75e16cf88e51a784c865c16d7  gcc/testsuite/gcc.target/i386/20020523.c
  84c40a03d2d79e5bebb4a73ab2b24f5a  gcc/testsuite/gcc.target/i386/20020531-1.c
*************** ba54f9b0c866b8f8b35145c85e815cee  gcc/te
*** 73907,73913 ****
  489303cb175b4f8022fe7d831bef0fe6  gcc/testsuite/gcc.target/i386/20030217-1.c
  41e29ea15c2438cdb075d08b5368c25f  gcc/testsuite/gcc.target/i386/20030217-2.c
  a3e554dab8a93a4d3090e2c2ca07addf  gcc/testsuite/gcc.target/i386/20030926-1.c
! 3b6c04d1af10fdb1e9317d6b0a34a660  gcc/testsuite/gcc.target/i386/20040112-1.c
  23e274aa6bf5841c3542d212ba52d17e  gcc/testsuite/gcc.target/i386/20050113-1.c
  d1076fdd8a8da68773355e333bf1e717  gcc/testsuite/gcc.target/i386/20051216-1.c
  9c2b1a032cf616abe10eceed52867464  gcc/testsuite/gcc.target/i386/20060125-1.c
--- 84054,84060 ----
  489303cb175b4f8022fe7d831bef0fe6  gcc/testsuite/gcc.target/i386/20030217-1.c
  41e29ea15c2438cdb075d08b5368c25f  gcc/testsuite/gcc.target/i386/20030217-2.c
  a3e554dab8a93a4d3090e2c2ca07addf  gcc/testsuite/gcc.target/i386/20030926-1.c
! 0b950f2c377b855a8965330671d83d12  gcc/testsuite/gcc.target/i386/20040112-1.c
  23e274aa6bf5841c3542d212ba52d17e  gcc/testsuite/gcc.target/i386/20050113-1.c
  d1076fdd8a8da68773355e333bf1e717  gcc/testsuite/gcc.target/i386/20051216-1.c
  9c2b1a032cf616abe10eceed52867464  gcc/testsuite/gcc.target/i386/20060125-1.c
*************** ae8b5a5d686fedd54544f4210ebf0d66  gcc/te
*** 74006,74012 ****
  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
--- 84153,84159 ----
  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
! d946e35265c94b5e06f45c925ea03015  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
*************** a93a298f547274ed3c2b935fceada10f  gcc/te
*** 74015,74070 ****
  de43766ff547a704d67f8c662bc93c66  gcc/testsuite/gcc.target/i386/amxavx512-cvtrowps2ph-2.c
  cc0603febc979dbf700b27494eacbc42  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
  0787eb1011631a123144aa2e9fe5b9f2  gcc/testsuite/gcc.target/i386/amxcomplex-asmatt-1.c
! 971dbba18c823297793b59421738511a  gcc/testsuite/gcc.target/i386/amxcomplex-asmintel-1.c
  88abb806331f7455dfc053e7bfa9993d  gcc/testsuite/gcc.target/i386/amxcomplex-cmmimfp16ps-2.c
  5029635b15d7dd713761d53e4630a666  gcc/testsuite/gcc.target/i386/amxcomplex-cmmrlfp16ps-2.c
  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
--- 84162,84206 ----
  de43766ff547a704d67f8c662bc93c66  gcc/testsuite/gcc.target/i386/amxavx512-cvtrowps2ph-2.c
  cc0603febc979dbf700b27494eacbc42  gcc/testsuite/gcc.target/i386/amxavx512-movrow-2.c
  3e5ed8f51d1403b179db592f12cb019c  gcc/testsuite/gcc.target/i386/amxbf16-asmatt-1.c
! 56eacc542ab2a1453a34424301380e68  gcc/testsuite/gcc.target/i386/amxbf16-asmintel-1.c
  c4406ef230e7a6bb0e7b45b2f94958e9  gcc/testsuite/gcc.target/i386/amxbf16-dpbf16ps-2.c
  0787eb1011631a123144aa2e9fe5b9f2  gcc/testsuite/gcc.target/i386/amxcomplex-asmatt-1.c
! 4a8b5d514b0a549de6d01da6a871cace  gcc/testsuite/gcc.target/i386/amxcomplex-asmintel-1.c
  88abb806331f7455dfc053e7bfa9993d  gcc/testsuite/gcc.target/i386/amxcomplex-cmmimfp16ps-2.c
  5029635b15d7dd713761d53e4630a666  gcc/testsuite/gcc.target/i386/amxcomplex-cmmrlfp16ps-2.c
  0a13ebe83385a9aedb0a82cf5504a96b  gcc/testsuite/gcc.target/i386/amxfp16-asmatt-1.c
! 6367ac8d32cb21d49cfff80aef3427bd  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
! ac831a6e0f9a32623f8760f8cb0414ca  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
! 2a1a600bd028c3c6663894e5e2dbe1ac  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
! c6e05c63e432fabb376eb84512c8c136  gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
! 452a0b261c066d49a3c3f303a70b6db8  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
! a44cf006e7d7dc3c6c4f6644cfe192cb  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
! fd1b7cbd5c658f65380f068fc3718869  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
! ba89fea607a6fdcf2c649f9b83887f09  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
+ 08bbfd375d8c3815f761d62ed480569e  gcc/testsuite/gcc.target/i386/apx-broadcast.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
*************** b6e599b4cc96f57de7a64c27e3c92aa3  gcc/te
*** 74086,74092 ****
  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
--- 84222,84228 ----
  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
! a0e6b1231d46a713748b5a9108bbad5b  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
*** 74095,74107 ****
  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
--- 84231,84244 ----
  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
! 3728bc527c22e7d020089e67e42d0ad3  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
+ d8e5e32378321997699dcc76d26eae5e  gcc/testsuite/gcc.target/i386/apx-pr124892.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
*************** ba815e440bcd2af0a357a066d6a64dbf  gcc/te
*** 74109,74114 ****
--- 84246,84252 ----
  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
+ dcf2a424ef2dff7b26c8b3f00c3e2cb3  gcc/testsuite/gcc.target/i386/apx-zu-3.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
*** 74131,74136 ****
--- 84269,84276 ----
  3e9a12e002713da0e72fa6fb23a52948  gcc/testsuite/gcc.target/i386/asm-flag-5.c
  12e90c2a4e4c615ce5067b4215a5d18b  gcc/testsuite/gcc.target/i386/asm-flag-6.c
  c9e95a50e4c08ce058a523de15b6c8fd  gcc/testsuite/gcc.target/i386/asm-flag-7.c
+ 9f878b07bed3798501be7940ffac2844  gcc/testsuite/gcc.target/i386/asm-hard-reg-1.c
+ 015b6f5d9bfe5601f3d2f1cb938f63d2  gcc/testsuite/gcc.target/i386/asm-hard-reg-2.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
*************** c34fe5a5178e9716c0f68ffb47564686  gcc/te
*** 74140,74146 ****
  e212830c10c9237069ec30aa0332cf29  gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
  29ff688e49690bf34e23911fb0d6a871  gcc/testsuite/gcc.target/i386/attr-optimize.c
  9702921db90d8706268aafc9574e606d  gcc/testsuite/gcc.target/i386/attr-returns_twice-1.c
! b417781449436dad69aae8b9300baa1a  gcc/testsuite/gcc.target/i386/attributes-error.c
  c5769e4bf1f7b51f13a03c7ff48d082a  gcc/testsuite/gcc.target/i386/auto-init-1.c
  a3b2a7fcd16487cd88b6531a2abdb3e8  gcc/testsuite/gcc.target/i386/auto-init-2.c
  c46f439f53ca80682916bbfc2b5411ce  gcc/testsuite/gcc.target/i386/auto-init-21.c
--- 84280,84287 ----
  e212830c10c9237069ec30aa0332cf29  gcc/testsuite/gcc.target/i386/attr-nocf-check-3a.c
  29ff688e49690bf34e23911fb0d6a871  gcc/testsuite/gcc.target/i386/attr-optimize.c
  9702921db90d8706268aafc9574e606d  gcc/testsuite/gcc.target/i386/attr-returns_twice-1.c
! 966125831ce146055328a7f437fcab82  gcc/testsuite/gcc.target/i386/attributes-error.c
! c8dcf3d02ef1d5204219fbedf8198045  gcc/testsuite/gcc.target/i386/attributes-ignore.c
  c5769e4bf1f7b51f13a03c7ff48d082a  gcc/testsuite/gcc.target/i386/auto-init-1.c
  a3b2a7fcd16487cd88b6531a2abdb3e8  gcc/testsuite/gcc.target/i386/auto-init-2.c
  c46f439f53ca80682916bbfc2b5411ce  gcc/testsuite/gcc.target/i386/auto-init-21.c
*************** a34b4fb61dcd1e5a3c0daf5d7d6fae65  gcc/te
*** 74158,74171 ****
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
  473ceb78530da54ed3602515d3b9132d  gcc/testsuite/gcc.target/i386/auto-init-padding-12.c
  4f2518506ddb10348964cfef12cf036f  gcc/testsuite/gcc.target/i386/auto-init-padding-2.c
! 5955fe5e2e6b460774295b57f682aa37  gcc/testsuite/gcc.target/i386/auto-init-padding-3.c
  5808936c24c459a0e1287fdfc80ea90f  gcc/testsuite/gcc.target/i386/auto-init-padding-4.c
  1085d3449618e196dd587e70afc232f0  gcc/testsuite/gcc.target/i386/auto-init-padding-5.c
  32c7c92b291fd1e003108bba56cddeda  gcc/testsuite/gcc.target/i386/auto-init-padding-6.c
  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
--- 84299,84312 ----
  da9a874cc43d515ca40fe91f469c7339  gcc/testsuite/gcc.target/i386/auto-init-padding-11.c
  473ceb78530da54ed3602515d3b9132d  gcc/testsuite/gcc.target/i386/auto-init-padding-12.c
  4f2518506ddb10348964cfef12cf036f  gcc/testsuite/gcc.target/i386/auto-init-padding-2.c
! 71b118c75728f046182e8dd1b4a8494c  gcc/testsuite/gcc.target/i386/auto-init-padding-3.c
  5808936c24c459a0e1287fdfc80ea90f  gcc/testsuite/gcc.target/i386/auto-init-padding-4.c
  1085d3449618e196dd587e70afc232f0  gcc/testsuite/gcc.target/i386/auto-init-padding-5.c
  32c7c92b291fd1e003108bba56cddeda  gcc/testsuite/gcc.target/i386/auto-init-padding-6.c
  64889694d1cb3280b3aa71fa1424dec5  gcc/testsuite/gcc.target/i386/auto-init-padding-7.c
  6833c0fc00c0e05839ef7fc0ebe6662f  gcc/testsuite/gcc.target/i386/auto-init-padding-8.c
! 49b8952e523cb48cea8a1c789b521398  gcc/testsuite/gcc.target/i386/auto-init-padding-9.c
! 6d269f763b677e113f37ab0f5e75583e  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
*************** f5710388bf6592fabf21f6aa05044790  gcc/te
*** 74216,74222 ****
  0573dc96587f464eab32fb45381cd9c3  gcc/testsuite/gcc.target/i386/avx-lrint-vec.c
  3391c9dd1dd0dbbac597a660fd5fb010  gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c
  b4097136b326678c552cf24792f79fe8  gcc/testsuite/gcc.target/i386/avx-mul-1.c
! e27aba9c25cfb5a48bac6c6354a97826  gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c
  d03de2728a4eea3b7b83d89fd40a8c2c  gcc/testsuite/gcc.target/i386/avx-ne-convert-vbcstnebf162ps-2.c
  e098abacd326fa403ba8d8834cb92f59  gcc/testsuite/gcc.target/i386/avx-ne-convert-vbcstnesh2ps-2.c
  71c717dba99f2d7206135f53e0fd85bd  gcc/testsuite/gcc.target/i386/avx-ne-convert-vcvtneebf162ps-2.c
--- 84357,84363 ----
  0573dc96587f464eab32fb45381cd9c3  gcc/testsuite/gcc.target/i386/avx-lrint-vec.c
  3391c9dd1dd0dbbac597a660fd5fb010  gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c
  b4097136b326678c552cf24792f79fe8  gcc/testsuite/gcc.target/i386/avx-mul-1.c
! ddb203e8d406794be0981fb2de25afa5  gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c
  d03de2728a4eea3b7b83d89fd40a8c2c  gcc/testsuite/gcc.target/i386/avx-ne-convert-vbcstnebf162ps-2.c
  e098abacd326fa403ba8d8834cb92f59  gcc/testsuite/gcc.target/i386/avx-ne-convert-vbcstnesh2ps-2.c
  71c717dba99f2d7206135f53e0fd85bd  gcc/testsuite/gcc.target/i386/avx-ne-convert-vcvtneebf162ps-2.c
*************** a949df5855de5e28ac03e14aab0dc89c  gcc/te
*** 74239,74245 ****
  fbcf5aac4ed190f64069f1418687d5f1  gcc/testsuite/gcc.target/i386/avx-pr88189-1.c
  811083ceed1ed00408a07db7a4aa3156  gcc/testsuite/gcc.target/i386/avx-pr88189-2.c
  1c9185cead3a2c1e4e9fab1c12b3fcb0  gcc/testsuite/gcc.target/i386/avx-pr89984.c
! 33cf4cb35f83f41bef6cbda92c6d1856  gcc/testsuite/gcc.target/i386/avx-pr93078.c
  9b926829d7de933c61b0300157acbfc5  gcc/testsuite/gcc.target/i386/avx-pr93637.c
  46ee48008ccc6f38ce2c3d2ee84252a9  gcc/testsuite/gcc.target/i386/avx-pr94680.c
  542e7d75a9987542b5e477a240592ae7  gcc/testsuite/gcc.target/i386/avx-pr99563.c
--- 84380,84386 ----
  fbcf5aac4ed190f64069f1418687d5f1  gcc/testsuite/gcc.target/i386/avx-pr88189-1.c
  811083ceed1ed00408a07db7a4aa3156  gcc/testsuite/gcc.target/i386/avx-pr88189-2.c
  1c9185cead3a2c1e4e9fab1c12b3fcb0  gcc/testsuite/gcc.target/i386/avx-pr89984.c
! 905cb81d8089d547dd057dcea4e8d51c  gcc/testsuite/gcc.target/i386/avx-pr93078.c
  9b926829d7de933c61b0300157acbfc5  gcc/testsuite/gcc.target/i386/avx-pr93637.c
  46ee48008ccc6f38ce2c3d2ee84252a9  gcc/testsuite/gcc.target/i386/avx-pr94680.c
  542e7d75a9987542b5e477a240592ae7  gcc/testsuite/gcc.target/i386/avx-pr99563.c
*************** e496930891266115a9ceee7c7de0cac4  gcc/te
*** 74768,74960 ****
  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
--- 84909,85059 ----
  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
! 1729a1f762e4d28d34a21d6a5d163d87  gcc/testsuite/gcc.target/i386/avx10-check.h
  00a4c8062c1c2d022d49ff16fc125e09  gcc/testsuite/gcc.target/i386/avx10-helper.h
! 91ee0c4c75970b0663eec27dec967ee1  gcc/testsuite/gcc.target/i386/avx10-minmax-helper.h
  d493060b0a2454334d4eb6941a14ad8b  gcc/testsuite/gcc.target/i386/avx10-os-support.h
! 3ca528977553962fce3bc10b01fc3684  gcc/testsuite/gcc.target/i386/avx10_1-1.c
! 5c3d062a700faeb9c475895d59881aed  gcc/testsuite/gcc.target/i386/avx10_1-2.c
! 83836eb7c19ebd0a3cb10c1b38859560  gcc/testsuite/gcc.target/i386/avx10_1-3.c
! ba28fa2f54eaa9223f6892f84f5a47df  gcc/testsuite/gcc.target/i386/avx10_1-4.c
! f6fc2ac3d31c81e3d9c7b73d90f59b85  gcc/testsuite/gcc.target/i386/avx10_1-5.c
! 6d38cceea8e161aeffa01313f400100c  gcc/testsuite/gcc.target/i386/avx10_1-6.c
! 8171b277bd12f9a75849bb34438003a6  gcc/testsuite/gcc.target/i386/avx10_1-7.c
! 997d6928cf20833d78a02bc47506d4ed  gcc/testsuite/gcc.target/i386/avx10_2-bf16-1.c
! c39c590aaa4356d5b403bc01b7783823  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-cmp-1.c
! c5f278f4dccfd134d9a3e2aa2a67703d  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-fma-1.c
! 57227ba784085be4629883789ed368bc  gcc/testsuite/gcc.target/i386/avx10_2-bf16-vector-operations-1.c
! 76ee3b70f25c64cb9b951d654c13073e  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
! 49731970251e140949ebf0a9dca5d84f  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
! 839bfe312b9bf147895c3e85fd6874b9  gcc/testsuite/gcc.target/i386/avx10_2-convert-1.c
! 9042f995d107933908f24b29657ef1f0  gcc/testsuite/gcc.target/i386/avx10_2-media-1.c
! 56990d02b87728c95a15573638ae1769  gcc/testsuite/gcc.target/i386/avx10_2-minmax-1.c
! 47a5dab35b2b917f1d4c5b6e477f6627  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
! b4a1927c931b8d7d2db97fa832391d68  gcc/testsuite/gcc.target/i386/avx10_2-pr124294.c
! 7f70c3fddea0473820a89abc96523295  gcc/testsuite/gcc.target/i386/avx10_2-pr124341.c
! 2069fc0ccb52a5d108ccb3dc947847f0  gcc/testsuite/gcc.target/i386/avx10_2-pr124349-2.c
! 08b72689ae08221da32807545d916afe  gcc/testsuite/gcc.target/i386/avx10_2-pr124349.c
! cb98d94646b2520b2ad879a3a7daa717  gcc/testsuite/gcc.target/i386/avx10_2-satcvt-1.c
! 60a72d0c1e55bd425da17835c9d885cb  gcc/testsuite/gcc.target/i386/avx10_2-vaddbf16-2.c
! 43e4fed44125a0ba83d21beca0f9f0ea  gcc/testsuite/gcc.target/i386/avx10_2-vaddbf16-2.h
! 27f8b398de5197386cc63ecae500c030  gcc/testsuite/gcc.target/i386/avx10_2-vcmpbf16-2.c
! 7fc6990f79d3960f3bf970300cdda824  gcc/testsuite/gcc.target/i386/avx10_2-vcmpbf16-2.h
  30ba0b108963355c7d6479e5a7a140f7  gcc/testsuite/gcc.target/i386/avx10_2-vcomisbf16-1.c
  42318f176ca12752055da19f248404c5  gcc/testsuite/gcc.target/i386/avx10_2-vcomisbf16-2.c
! 087d6ef1b54e53ad09215f3f65203f74  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8-2.c
! 3ad0167e77c0598f3ead0d68f18512ee  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8-2.h
! a08bc96d0cbeb4738a8e063bc906d0e8  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8s-2.c
! 28cb2689cc8618525f3696051f942d11  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2bf8s-2.h
! fcaf642da0f609b1d7fdad467c42dd94  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8-2.c
! f51f3ca73895adb5a0d577d37c1e2d56  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8-2.h
! b6a64ad87bd50266f9206d43e597cec6  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8s-2.c
! 05f7db9ce125c23efa051fbd7d4a7608  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ph2hf8s-2.h
! 082aa07e7a1c5d06adb54752a93a810c  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ps2phx-2.c
! 4d51f1ed31b839c1757a3c57fb945534  gcc/testsuite/gcc.target/i386/avx10_2-vcvt2ps2phx-2.h
! a50a7452e788936499597d2cee77d30e  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162ibs-2.c
! 988ee4bb97c458f4d5cbe3d5ed364f1d  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162ibs-2.h
! 6597046ef03ba0e08c21545639994af2  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162iubs-2.c
! cbbfdba14e906608ac3fb692d563bc17  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbf162iubs-2.h
! c0882cd192cf6d66491fd7645e06463e  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8-2.c
! d2200a204130188d6f15c620a638f367  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8-2.h
! b69ceaff7375c3c96328fdc6a1b7fe62  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8s-2.c
! cb75b6699558a0beffa3de6ae51c1042  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2bf8s-2.h
! baf4b5b0fdbc82bb7fdc32f743a756e2  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8-2.c
! 48af39a11563329ac6c59e5ecb1dfbc3  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8-2.h
! 01aeef5a0f5c1490b5f6ba5117f04494  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8s-2.c
! 1586e05e14215ee4a6286517ff05b3f8  gcc/testsuite/gcc.target/i386/avx10_2-vcvtbiasph2hf8s-2.h
! cefbbbc9b90a66ba495bd6a04eab8315  gcc/testsuite/gcc.target/i386/avx10_2-vcvthf82ph-2.c
! 1788001cd25d7ad8a605aceb9c6a76d0  gcc/testsuite/gcc.target/i386/avx10_2-vcvthf82ph-2.h
! f5fc2942d665a9cb04089c4350cc46c0  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8-2.c
! 59b0cd9b0dc818cb603e207f3004a047  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8-2.h
! 712f8d8afd5fcbb49cc402c519270130  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8s-2.c
! 62491607ef39187e74da7b10fcd9cacd  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2bf8s-2.h
! 427e087799f9777a6838f829e28f0621  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8-2.c
! 38771ff846bdbcb6a5d07630616c00f5  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8-2.h
! f097508ec9ccd5b2b675fd493a885c23  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8s-2.c
! 9bbf0833f624f212db0540c20f8a3d74  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2hf8s-2.h
! 09d9e790a450b72b34e6f2950c06bf88  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2ibs-2.c
! 570830f44c134adbad40bcf5b24e4699  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2ibs-2.h
! cec06a6942d3109583bc6cd478bb2cf2  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2iubs-2.c
! f20f760e25b65ebef1394990a82144d9  gcc/testsuite/gcc.target/i386/avx10_2-vcvtph2iubs-2.h
! 65ff536a2511e0687c91cc2091722421  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2ibs-2.c
! 16d614e5bc3f6fb8757e90b4ff33d712  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2ibs-2.h
! dd0dee06e7b8d50569762e3582114577  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.c
! 440a4dff055784e8eda50092c00c1c86  gcc/testsuite/gcc.target/i386/avx10_2-vcvtps2iubs-2.h
! ccff87639d00d3d3d62b5c3281e53d20  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162ibs-2.c
! 5f3f75daaa7bd9582716285ada4db591  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162ibs-2.h
! eb00e1976a448df8b28636f5e4a08c70  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162iubs-2.c
! 718d67bedc62bc346916f918233b79cd  gcc/testsuite/gcc.target/i386/avx10_2-vcvttbf162iubs-2.h
! 4c10ce453fca8e3372cfca5265d8c460  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2dqs-2.c
! b9632b7163f804dae730a5c86a6c48e7  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2dqs-2.h
! b08d3b1dc4487f1d32b1e108f5083ef5  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2qqs-2.c
! ed46b5ebd7c6863e5b1fc01b51641e01  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2qqs-2.h
! 24c0ce1212780018b83f83e3345fb886  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2udqs-2.c
! ce232f8173db76fe23c7dc1d15e62d71  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2udqs-2.h
! 178cea34fdfdbcace9d05de431dcd0a7  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2uqqs-2.c
! 508f4995409e18bd5b5f0cd1ac0f314a  gcc/testsuite/gcc.target/i386/avx10_2-vcvttpd2uqqs-2.h
! cbd720df9ac52d2af7be56df1518770f  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2ibs-2.c
! 141cecbb8ac35ce4f9329d23f2538a5d  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2ibs-2.h
! 76c97f34c5f1e26ded2d15f7ffa5c78f  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2iubs-2.c
! 44ca9d64f1f580ee475f5c9418702504  gcc/testsuite/gcc.target/i386/avx10_2-vcvttph2iubs-2.h
! cc15f7cb4c1f077d7fb2c5af2bb461ec  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2dqs-2.c
! 3119af5f4deb30d04ae5907066f281b3  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2dqs-2.h
! 911a1ef4ea4b027e3128f4f75d178e3d  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2ibs-2.c
! 77d97258e9706e3a7adda1d0c991799b  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2ibs-2.h
! 0c1ecbc8dc1d491a898aec2161718e6a  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2iubs-2.c
! 6a6a08d6248803b7a4ec5e88df3237d9  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2iubs-2.h
! 0681f1f9de0a51159854ee23051536c0  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2qqs-2.c
! d6c5f8d6bcd2215dbaa518a3351581f4  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2qqs-2.h
! 97664ccc3beabd09508caa9137349ebc  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2udqs-2.c
! 12364e518a227dbd31e6ce1744642aac  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2udqs-2.h
! 30a6aa249b4357647f01e69326ad93e8  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2uqqs-2.c
! 66f380c97c90f0da171e96425c47f274  gcc/testsuite/gcc.target/i386/avx10_2-vcvttps2uqqs-2.h
  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
! 87787fc9535c769257b4b540caa37165  gcc/testsuite/gcc.target/i386/avx10_2-vdivbf16-2.c
! 6f039130c9482c42a257b6372c76ac81  gcc/testsuite/gcc.target/i386/avx10_2-vdivbf16-2.h
! b13ab1a7a5a5df77adcb5d2f247472c1  gcc/testsuite/gcc.target/i386/avx10_2-vdpphps-2.c
! 8e291933e9ad209435c9b999fff5c9c5  gcc/testsuite/gcc.target/i386/avx10_2-vdpphps-2.h
! d54a627dbe38964bad115644fc3c6068  gcc/testsuite/gcc.target/i386/avx10_2-vfmaddXXXbf16-2.c
! e3dfcb91bb1cca3a72c2f5b777a3659b  gcc/testsuite/gcc.target/i386/avx10_2-vfmaddXXXbf16-2.h
! bef9b863308159df96d3a996cedb5082  gcc/testsuite/gcc.target/i386/avx10_2-vfmsubXXXbf16-2.c
! 1049f5684cefde13a9a99484a2de3bf9  gcc/testsuite/gcc.target/i386/avx10_2-vfmsubXXXbf16-2.h
! 7ca56f983a06d41747df4bbd27b7dfb0  gcc/testsuite/gcc.target/i386/avx10_2-vfnmaddXXXbf16-2.c
! 78de40999e2ed817a9f305e0614dde36  gcc/testsuite/gcc.target/i386/avx10_2-vfnmaddXXXbf16-2.h
! dedd05050052f96acff506caabc00d9d  gcc/testsuite/gcc.target/i386/avx10_2-vfnmsubXXXbf16-2.c
! c615edbb5c2c4fe7ed8e1d738ed2666b  gcc/testsuite/gcc.target/i386/avx10_2-vfnmsubXXXbf16-2.h
! 3715b5b12d74562d942a1968b898f443  gcc/testsuite/gcc.target/i386/avx10_2-vfpclassbf16-2.c
! 94a4f60c6c43931ab643a10c73e7cc74  gcc/testsuite/gcc.target/i386/avx10_2-vfpclassbf16-2.h
! d83d717d3bb4a1ad4929e3d8d79b4cfd  gcc/testsuite/gcc.target/i386/avx10_2-vgetexpbf16-2.c
! 42419a1dc6be8cfd24f2894a99e5be92  gcc/testsuite/gcc.target/i386/avx10_2-vgetexpbf16-2.h
! b6c2c306607906c05ab5c498ada5fb7e  gcc/testsuite/gcc.target/i386/avx10_2-vgetmantbf16-2.c
! 7e4f10fb3ae891a032405ccf0dc65f11  gcc/testsuite/gcc.target/i386/avx10_2-vgetmantbf16-2.h
! 36bee00f18a57f05293e3b240342188a  gcc/testsuite/gcc.target/i386/avx10_2-vmaxbf16-2.c
! 156076023bb7eccbe8fc24b880b5e7a1  gcc/testsuite/gcc.target/i386/avx10_2-vmaxbf16-2.h
! cfd0235428ba0ab4e842cd7fb0f52f49  gcc/testsuite/gcc.target/i386/avx10_2-vminbf16-2.c
! dc5d435a9a8dc8e42a9dce74bc2c60e7  gcc/testsuite/gcc.target/i386/avx10_2-vminbf16-2.h
! 4bd791d7ed4aa180aa8eaeb043996add  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxbf16-2.c
! b34f9d45344f55b01226cab39472944c  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxbf16-2.h
! c87dad5c42e32a5cd16b0b6f937ec15e  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxpd-2.c
! 5bbdf8aeb3fb318a92b9ff11fb7050a2  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxpd-2.h
! 53d5516acafb789682505a8ff031f2cd  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxph-2.c
! 9dfbacd161bb640eed238d06c60ceb97  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxph-2.h
! e1cad27d2c6e4987f5342d56b842c447  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxps-2.c
! 6c0d16ecdcf5c19a25d18cbaf45b8b83  gcc/testsuite/gcc.target/i386/avx10_2-vminmaxps-2.h
  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
*************** bac4f34cd375ea90f366d6ed546e5d66  gcc/te
*** 74962,74988 ****
  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
--- 85061,85108 ----
  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
! 4c185b3c7e8429c94b956f5dd282b361  gcc/testsuite/gcc.target/i386/avx10_2-vmpsadbw-2.c
! 46b3fee4fea97a0caee0bbb6b4d21ba2  gcc/testsuite/gcc.target/i386/avx10_2-vmpsadbw-2.h
! 10966d11c24867abe111c2bf5ad3342f  gcc/testsuite/gcc.target/i386/avx10_2-vmulbf16-2.c
! d26aef734e27572eec31a17f52e67054  gcc/testsuite/gcc.target/i386/avx10_2-vmulbf16-2.h
! 28a72ee93672835273fea2a4347022f3  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssd-2.c
! c7956203821e5cbe924c65a71b624c9f  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssd-2.h
! 8c0f87411cc41cf223c4949573a4521f  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssds-2.c
! 6d209ff7a7cc8c334f6e1a5c56a740e8  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbssds-2.h
! bc5818e4593d8e1cd64266c53777708e  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsud-2.c
! d3c0bdc863c1c82ab0899d796e2607b9  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsud-2.h
! 61ae362f554facf5ba290271f061a185  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsuds-2.c
! ee1a7aa351b5791697b30a7c9f16c9f7  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbsuds-2.h
! 4825ad7e9eedeb3faba3746c1ce0703b  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuud-2.c
! 407fa0e9d3a035bb86ab4e8e844564d9  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuud-2.h
! b82ac21bf78df34cf723350526d2bf3b  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuuds-2.c
! 2878b93e97c0378ac10c24a8373277e1  gcc/testsuite/gcc.target/i386/avx10_2-vpdpbuuds-2.h
! 3055af754174cfc9846fccafefe3d2e7  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsud-2.c
! 8da8ae7d1c2e2496c0ea84e1fcdfefc2  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsud-2.h
! a1448bedbc24ad20094b650b8e2ad6c8  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsuds-2.c
! 3a9c007bfc4eb4ff3330b1a98108b07b  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwsuds-2.h
! 1b4511f37ee127f2832433a7f6d0c60f  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusd-2.c
! bffe354b3df715e392e01db70d9bcafd  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusd-2.h
! 8375d5f045e0c247a9877a606a89dd3c  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusds-2.c
! ad21736395b493c2017dfdabbe045b7c  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwusds-2.h
! 031388b1ae90f9dc3f742324c91933b3  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuud-2.c
! f52d3a4f104a55cf12089092c1daada5  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuud-2.h
! 80a2eb28638aa39e13be2f6ce163fe45  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuuds-2.c
! a29e9de8c709dd9335f2bdfaba72f91a  gcc/testsuite/gcc.target/i386/avx10_2-vpdpwuuds-2.h
! 86e5fff12a3a052acb5273ec076a8eba  gcc/testsuite/gcc.target/i386/avx10_2-vrcpbf16-2.c
! 46b0829ee8b09cea761d62e4d77e9d4a  gcc/testsuite/gcc.target/i386/avx10_2-vrcpbf16-2.h
! a914626199d6837b939d2d9c6724238f  gcc/testsuite/gcc.target/i386/avx10_2-vreducebf16-2.c
! 4a6731fb6fc8f9df24503262433a7482  gcc/testsuite/gcc.target/i386/avx10_2-vreducebf16-2.h
! 5adeedd4d6bc9c16a19620328952d079  gcc/testsuite/gcc.target/i386/avx10_2-vrndscalebf16-2.c
! 159889c9d12a553e6ae1fa0aa856ffad  gcc/testsuite/gcc.target/i386/avx10_2-vrndscalebf16-2.h
! bcd2f6f9d563c1dca35e0919942afb93  gcc/testsuite/gcc.target/i386/avx10_2-vrsqrtbf16-2.c
! f9e28d77b89c8949143aa8c2481886cc  gcc/testsuite/gcc.target/i386/avx10_2-vrsqrtbf16-2.h
! 776caafae159ccdafba686a89c347773  gcc/testsuite/gcc.target/i386/avx10_2-vscalefbf16-2.c
! 499fd99f0a48c0a34d1690877d19c200  gcc/testsuite/gcc.target/i386/avx10_2-vscalefbf16-2.h
! 17186562b12ebc9bda08d4a4b0dab822  gcc/testsuite/gcc.target/i386/avx10_2-vsqrtbf16-2.c
! d81413b6a389b9c429c81094c74985f1  gcc/testsuite/gcc.target/i386/avx10_2-vsqrtbf16-2.h
! 4425ec7a194a3f48dfc1626cf127f5ff  gcc/testsuite/gcc.target/i386/avx10_2-vsubbf16-2.c
! ca61a759f79aa371e5752cff3c0b6ee2  gcc/testsuite/gcc.target/i386/avx10_2-vsubbf16-2.h
  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
*************** fc947f34726683e647d69ddeb686b4f9  gcc/te
*** 75210,75216 ****
  565bf3b608d46ffa478cea7f71da94ce  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtb-2.c
  c17a573d014dc354a740be9a96f48947  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtd-1.c
  ad6db12610471bd4d5ac8d7b1b90b967  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtd-2.c
! 529dcc4c431a68f336d274cae9671b49  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c
  4adf23c504409e09a11479940c07d0e8  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-2.c
  493a948add64fe46ddf03688cf9a2468  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtw-1.c
  c36ee3dc66e482b82a15cc57b299140d  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtw-2.c
--- 85330,85336 ----
  565bf3b608d46ffa478cea7f71da94ce  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtb-2.c
  c17a573d014dc354a740be9a96f48947  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtd-1.c
  ad6db12610471bd4d5ac8d7b1b90b967  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtd-2.c
! c8ff8ee1fa8018e49f3fe244068310eb  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-1.c
  4adf23c504409e09a11479940c07d0e8  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtq-2.c
  493a948add64fe46ddf03688cf9a2468  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtw-1.c
  c36ee3dc66e482b82a15cc57b299140d  gcc/testsuite/gcc.target/i386/avx2-vpcmpgtw-2.c
*************** aaef10fa24c4bc67258e89962335eaed  gcc/te
*** 75451,75457 ****
  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
--- 85571,85581 ----
  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
! f9ef9d2f70301a0565d680658cc23ea7  gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm-2.c
! 49265d04ee10b4e7181ad14bd41b80a7  gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm-3.c
! f2390ce54cefc64e6a614f90cba7eb46  gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm-4.c
! f6db673a0d2b4f29c01198a6212ea97e  gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm-5.c
! 7aa7515e32b70ec6c02da2e71adfd933  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
*************** d29c79e3f90ea13ca131538d02e8cbea  gcc/te
*** 75474,75487 ****
  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
  63e7956c8ca198ce2181d80ed229bbbb  gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-1.c
  cec20eb9c1925a45f98a14c4507287f3  gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-2.c
  935f53a8b6597ba96c0e84ef8ed552a4  gcc/testsuite/gcc.target/i386/avx512bf16vl-cvtness2sbh-1.c
  f877c7aff68980a873311e9e3029ab4e  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtne2ps2bf16-1.c
! 1e43b2fef5c316c799de12e0b7d6539e  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c
! 98b5aec84f1eef594c6bd9570935562f  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c
  3df523677ab1d5b0815a28ada548ad0f  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtpbh2ps-1.c
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
--- 85598,85611 ----
  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
! 265a53593c941a00566cc5297de7f275  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c
  85f9fe6854d98f374a63df40394fb8cd  gcc/testsuite/gcc.target/i386/avx512bf16-vcvtpbh2ps-1.c
  63e7956c8ca198ce2181d80ed229bbbb  gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-1.c
  cec20eb9c1925a45f98a14c4507287f3  gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-2.c
  935f53a8b6597ba96c0e84ef8ed552a4  gcc/testsuite/gcc.target/i386/avx512bf16vl-cvtness2sbh-1.c
  f877c7aff68980a873311e9e3029ab4e  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtne2ps2bf16-1.c
! 01341fadae2bbafb1014bb5900e49516  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1a.c
! 22db5fad662e1b48e287482a06a2acf5  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1b.c
  3df523677ab1d5b0815a28ada548ad0f  gcc/testsuite/gcc.target/i386/avx512bf16vl-vcvtpbh2ps-1.c
  4d0bcbe3e5ed908d180434ef26bd4a3a  gcc/testsuite/gcc.target/i386/avx512bf16vl-vdpbf16ps-1.c
  1c17eded698566bf1d33a8808168935d  gcc/testsuite/gcc.target/i386/avx512bitalg-pr97770-1.c
*************** e5a7b594a43b43d7c5fb9a42e551f0f1  gcc/te
*** 75492,75501 ****
  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
--- 85616,85627 ----
  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
! 2cf3fbbb33bcd830814fe9573b75b820  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
+ 6581ef9df6c5a4405444da740b69c52b  gcc/testsuite/gcc.target/i386/avx512bmm-1.c
+ cd81465cf03fcdafd419bd70419a61a9  gcc/testsuite/gcc.target/i386/avx512bmmvl-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
*************** bce67b236520c561f93006d5bd66eea1  gcc/te
*** 75550,75555 ****
--- 85676,85682 ----
  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
+ 29ed04afa1960d9493543b0fd6d0fa1c  gcc/testsuite/gcc.target/i386/avx512bw-pr123744.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
*************** aa76e419ea439da7ae72280b04d232b8  gcc/te
*** 75591,75613 ****
  252195c21a085a32b6eabfa3110379dd  gcc/testsuite/gcc.target/i386/avx512bw-vec-set-2.c
  16bb16a08e4faedb360f8c53d0f1b03f  gcc/testsuite/gcc.target/i386/avx512bw-vect-simd-11.c
  ddea7551446f3624078280bf402b1246  gcc/testsuite/gcc.target/i386/avx512bw-vect-simd-15.c
! 1a10b49e0a47ebdf8748c52df3108c6b  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c
  b36d91ed2b1544179ebaf8ce02e87137  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c
! 8ae3d7310aa70ab51a46f71ecf59efc5  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-1.c
  6604cbd1523e1681a152d42d3da723ff  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-2.c
  f2c09f0461fc411ac562588f78dbad13  gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-1.c
  880140ded63d84cb98c028b6681de716  gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-2.c
  b3fc0e2ed6ad4663554cfe6beb7c728c  gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-1.c
  763b98e1b688bba4973179a8a0f0f792  gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-2.c
! f5d4e33fe73fd19617089f23235ef6aa  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-1.c
  c528acbf638ead7e00a72c7f6a8e2676  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-2.c
  7774011f206efe680c3c0bc56566322d  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-3.c
! 57add79bdc825ef2ec63e229833a0bd1  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-1.c
  1fdf5436b492e9245f483d8368e3c711  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-2.c
  2fdbbc63f2a17935b64972a5141ef964  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-3.c
! d837708b1c7e483b262950e1ad83ec08  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-1.c
  4846959fd9d170b8cdc5c5ad55f81af5  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-2.c
! a603784067a3b8a533167ff3484c72fe  gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-1.c
  c3144a7e199274bc432a709f34f645b6  gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-2.c
  144cb54d1460e38389ba347123db3213  gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-1.c
  e00573153b9a4ab0adf7f235ee2cefa0  gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-2.c
--- 85718,85740 ----
  252195c21a085a32b6eabfa3110379dd  gcc/testsuite/gcc.target/i386/avx512bw-vec-set-2.c
  16bb16a08e4faedb360f8c53d0f1b03f  gcc/testsuite/gcc.target/i386/avx512bw-vect-simd-11.c
  ddea7551446f3624078280bf402b1246  gcc/testsuite/gcc.target/i386/avx512bw-vect-simd-15.c
! 9e778e55081e03b5ed67cd0a2c334a9e  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c
  b36d91ed2b1544179ebaf8ce02e87137  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-2.c
! aa12e2c56f62efc5ed6db99be6a794e1  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-1.c
  6604cbd1523e1681a152d42d3da723ff  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu8-2.c
  f2c09f0461fc411ac562588f78dbad13  gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-1.c
  880140ded63d84cb98c028b6681de716  gcc/testsuite/gcc.target/i386/avx512bw-vpabsb-2.c
  b3fc0e2ed6ad4663554cfe6beb7c728c  gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-1.c
  763b98e1b688bba4973179a8a0f0f792  gcc/testsuite/gcc.target/i386/avx512bw-vpabsw-2.c
! 44f9824ecd2ed301646ede8cbc83b56e  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-1.c
  c528acbf638ead7e00a72c7f6a8e2676  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-2.c
  7774011f206efe680c3c0bc56566322d  gcc/testsuite/gcc.target/i386/avx512bw-vpackssdw-3.c
! ce0a606339497cb50a29fcab05a9eabe  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-1.c
  1fdf5436b492e9245f483d8368e3c711  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-2.c
  2fdbbc63f2a17935b64972a5141ef964  gcc/testsuite/gcc.target/i386/avx512bw-vpacksswb-3.c
! cee4455004c2694aa4346aa19b754efa  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-1.c
  4846959fd9d170b8cdc5c5ad55f81af5  gcc/testsuite/gcc.target/i386/avx512bw-vpackusdw-2.c
! 574f68ed1537e2484d7d24eed6f9a315  gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-1.c
  c3144a7e199274bc432a709f34f645b6  gcc/testsuite/gcc.target/i386/avx512bw-vpackuswb-2.c
  144cb54d1460e38389ba347123db3213  gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-1.c
  e00573153b9a4ab0adf7f235ee2cefa0  gcc/testsuite/gcc.target/i386/avx512bw-vpaddb-2.c
*************** ddee045bf26d24bb3c8c4957af9831a0  gcc/te
*** 75625,75631 ****
  167461ae051833f02dbe65e6c16defe8  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-1b.c
  ceeb85e9addcfe4b03eb11f284116f03  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-2.c
  c98c741ace98c244bd47dbae09219719  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-3.c
! 642ccfbc2b444966fb6f736f43a1365c  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-4.c
  ac642c69450b2e9b0c33da8f5d6e1d9c  gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-1.c
  af8b08f383c590cdbafafb5f76e3d6a5  gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-2.c
  26895417270e5c34338d865bdcae4e13  gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-1.c
--- 85752,85758 ----
  167461ae051833f02dbe65e6c16defe8  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-1b.c
  ceeb85e9addcfe4b03eb11f284116f03  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-2.c
  c98c741ace98c244bd47dbae09219719  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-3.c
! 5680e6af22eb05fbd1fd1d9547e78a4a  gcc/testsuite/gcc.target/i386/avx512bw-vpalignr-4.c
  ac642c69450b2e9b0c33da8f5d6e1d9c  gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-1.c
  af8b08f383c590cdbafafb5f76e3d6a5  gcc/testsuite/gcc.target/i386/avx512bw-vpavgb-2.c
  26895417270e5c34338d865bdcae4e13  gcc/testsuite/gcc.target/i386/avx512bw-vpavgw-1.c
*************** c0a8430e227e9d73df2153bc79a4f127  gcc/te
*** 75641,75647 ****
  cd50d653b82c72218798d269f8b09ed6  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-2.c
  331fc645a1c81c3c37a8440362235343  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-1.c
  598c9df1695e77a9fb8307742402f261  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c
! 527c40dc3f481c4c82a6ce9865dfbee7  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c
  ff58674ac01e02619e7fbb42218197ed  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c
  526de46f6f9d6a57e8e51767b22ca73e  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c
  e4564a6c91e83263596c29a118ae7926  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c
--- 85768,85774 ----
  cd50d653b82c72218798d269f8b09ed6  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastb-2.c
  331fc645a1c81c3c37a8440362235343  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-1.c
  598c9df1695e77a9fb8307742402f261  gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c
! 2e3bfd1a6ad309e4ea50ada1e3d6cc96  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c
  ff58674ac01e02619e7fbb42218197ed  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c
  526de46f6f9d6a57e8e51767b22ca73e  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c
  e4564a6c91e83263596c29a118ae7926  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c
*************** eb2d9a728125165e33668488f8537623  gcc/te
*** 75691,75707 ****
  306b00a58b1f3f358da2fc093ce27ae1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpnequw-2.c
  a88b44ed8b499572661bf13c5e83a0b1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpneqw-1.c
  5f7a1b19066291003f40cb3cebffe750  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpneqw-2.c
! 0c5d436c36b160e96940a0ed5156068a  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c
  8c151290624d1563aad645f057a554f1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-2.c
! c153e1069c3dada49b7f9da180f67758  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c
  954b0a84c42b39482b89b0506867efe1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-2.c
! 8ddb3c88b8d23236798db3082e44d4a8  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c
  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
  f40a7631c127fd2925fd3718c0eb98b6  gcc/testsuite/gcc.target/i386/avx512bw-vpextr-1.c
  574de53d7b28b596082bd03f153b7f3b  gcc/testsuite/gcc.target/i386/avx512bw-vpinsr-1.c
--- 85818,85834 ----
  306b00a58b1f3f358da2fc093ce27ae1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpnequw-2.c
  a88b44ed8b499572661bf13c5e83a0b1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpneqw-1.c
  5f7a1b19066291003f40cb3cebffe750  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpneqw-2.c
! ee126a844d3f1db2773a6585bde4c282  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-1.c
  8c151290624d1563aad645f057a554f1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpub-2.c
! edb883570cebf256d072f58348f756d9  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-1.c
  954b0a84c42b39482b89b0506867efe1  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpuw-2.c
! 3c4f333fdf203985c76c571a6d8ed619  gcc/testsuite/gcc.target/i386/avx512bw-vpcmpw-1.c
  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
! 7cb80b795e0afc52aeebd2e80056f833  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-1.c
  f9b93ac6a209e1d15c715127c3a22db7  gcc/testsuite/gcc.target/i386/avx512bw-vpermw-2.c
  f40a7631c127fd2925fd3718c0eb98b6  gcc/testsuite/gcc.target/i386/avx512bw-vpextr-1.c
  574de53d7b28b596082bd03f153b7f3b  gcc/testsuite/gcc.target/i386/avx512bw-vpinsr-1.c
*************** d89a3e7fea8841425db8f8334b6bf852  gcc/te
*** 75738,75748 ****
  8a56f5d9d1e0901d2961599ce258247b  gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c
  ed602259785dd505ce43fedc83608fa2  gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c
  8c716e1e77b74aecf16d86bbff7fb082  gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-1.c
! 082edd4008d3b3a00b57e8d3ea996a89  gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-2.c
  c0e8486201586986f95de6373b432fd4  gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-1.c
  9504524787b82a0ccf486f89f4fe27e1  gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-2.c
  7d06d207fbd0d03584e33f481722e2be  gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-1.c
! 7d6fcb3c926679157d1535ecb9ef00af  gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-2.c
  36fd23835105aebbfe3ccb58e069edda  gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-1.c
  6d3d5643ba38c610b31450cf8057ed44  gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-2.c
  e3957d749c8301db81228d71e2ed5352  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhrsw-1.c
--- 85865,85875 ----
  8a56f5d9d1e0901d2961599ce258247b  gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c
  ed602259785dd505ce43fedc83608fa2  gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c
  8c716e1e77b74aecf16d86bbff7fb082  gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-1.c
! ed032789779e27c0435b031047918860  gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-2.c
  c0e8486201586986f95de6373b432fd4  gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-1.c
  9504524787b82a0ccf486f89f4fe27e1  gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-2.c
  7d06d207fbd0d03584e33f481722e2be  gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-1.c
! ba3077b35872eb082d61ddfcf74b8bfe  gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-2.c
  36fd23835105aebbfe3ccb58e069edda  gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-1.c
  6d3d5643ba38c610b31450cf8057ed44  gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-2.c
  e3957d749c8301db81228d71e2ed5352  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhrsw-1.c
*************** eec6fff8d303fc85528c723caf8f5f06  gcc/te
*** 75750,75756 ****
  7845230a4ce4e6533cb4092b797b3249  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhrsw-3.c
  d3197b5f7dc09e0e37b2cb02e134bef7  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhuw-1.c
  42b1db5dfb2a76f532d624b284c225ea  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhuw-2.c
! e8f3d6149ab039d72c059b5c9f18d8db  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhw-1.c
  8a3e2d58cb4983d1fe8836cc919d941e  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhw-2.c
  e01fa9196841d492825e7eb6b9e4c87a  gcc/testsuite/gcc.target/i386/avx512bw-vpmullw-1.c
  0d5a0a20d5556de7ae2f2ab1821a1383  gcc/testsuite/gcc.target/i386/avx512bw-vpmullw-2.c
--- 85877,85883 ----
  7845230a4ce4e6533cb4092b797b3249  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhrsw-3.c
  d3197b5f7dc09e0e37b2cb02e134bef7  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhuw-1.c
  42b1db5dfb2a76f532d624b284c225ea  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhuw-2.c
! 1e8cce036261708b07b7fb9a825ca124  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhw-1.c
  8a3e2d58cb4983d1fe8836cc919d941e  gcc/testsuite/gcc.target/i386/avx512bw-vpmulhw-2.c
  e01fa9196841d492825e7eb6b9e4c87a  gcc/testsuite/gcc.target/i386/avx512bw-vpmullw-1.c
  0d5a0a20d5556de7ae2f2ab1821a1383  gcc/testsuite/gcc.target/i386/avx512bw-vpmullw-2.c
*************** b2f4e5d58a8e5fb3eef5b948c74b725c  gcc/te
*** 75889,75928 ****
  145bb45aae56c18ed0d264acbdf3b3c9  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2qq-2.c
  6c80da1a273a40cb27a285b9acaf1aa0  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2uqq-1.c
  fa2445840040ccb33bcae61cdc7c66ce  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2uqq-2.c
! 4c893dcea06aa912142a79032db18fc1  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c
  9b8f2d23ed0564e67761556a0b24514e  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-2.c
! cacc0ba80d95abc87a8ee077bdc331e1  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c
  9557d86e3a50548518cc46cae35f33e0  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-2.c
! 34e65d5466b18ecf608aea87b753c004  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c
  87e3d1d0fcbdeb9d0cba3b4eeea4964d  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-2.c
! 84c6ebfe2ccb3b7bce1b95ffa4bba617  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c
  b322de8f80d77715d924f2ed50c5de6a  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-2.c
  a762a92320d777313946457e60450f6c  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2qq-1.c
  2322843d8629e40abee50dc5a2b2b2ab  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2qq-2.c
  bb435422249c876cffc07bc01f08365e  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2uqq-1.c
  2065722b8a48236a7c1908def30581b1  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2uqq-2.c
! 29b630f9d538d7ccb8c3365d6bad756d  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c
  f7fa789cf88fc2cb70ca9cc4f03c56b7  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-2.c
! 55b71620664b8b069a6ffd5e643d14fd  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c
  de3622d9f6431935151edfe54ddbfdce  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-2.c
! 95f3a6fe199ad930cdc5e2954879fccc  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c
  180b7c8caefb80b8382490967552396b  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-2.c
! 79fd1683a946f2bbc23254161070242d  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c
  c6fff99f79cc8e88ced4f5a82ef63289  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-2.c
! fb280344b8b691500b120d857d776ff9  gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c
! d846c7209b5bac971f214f29ca3fd506  gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c
  637fbc2ce18041be1304c818a117bb4a  gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-2.c
  65bb840647d16323f540ee4bd308361a  gcc/testsuite/gcc.target/i386/avx512dq-vextracti32x8-1.c
! 7869763c97a223b866eabfebf8b8e84f  gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c
  79963a0599d5d2ec618f013e34c2c105  gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-2.c
! 9f5da72fd81f13b128a24d00ca7d11f0  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c
  381963168b9a50e823c8375ae95a0d8c  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-2.c
! e44436f82377cc5b5cff6a5347fd450e  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c
  b3fc381ca0059d17a2d9812d9231ff01  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-2.c
! 315a3604df8b1e1c374a98f932da6925  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c
  320c1383cbb8e4ce07f067792bb52fd4  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1b.c
  5cd4bb271105b6457a2a496768007256  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-2.c
! 8acc20767c397abf4448f2913287a865  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c
  7fc53c6d107e4e8b76a7a062a0e6ef7e  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1b.c
  d2a9855a64040f30e43740f4abffd5eb  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-2.c
  1fb9353e1dd69f5c4b4f8968fba855ff  gcc/testsuite/gcc.target/i386/avx512dq-vinsert-1.c
--- 86016,86055 ----
  145bb45aae56c18ed0d264acbdf3b3c9  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2qq-2.c
  6c80da1a273a40cb27a285b9acaf1aa0  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2uqq-1.c
  fa2445840040ccb33bcae61cdc7c66ce  gcc/testsuite/gcc.target/i386/avx512dq-vcvtpd2uqq-2.c
! d4e7cab88cbbdf68264def0edbfcd73a  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-1.c
  9b8f2d23ed0564e67761556a0b24514e  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2qq-2.c
! c1b7ada1a198f766b400a458a9b7fae8  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-1.c
  9557d86e3a50548518cc46cae35f33e0  gcc/testsuite/gcc.target/i386/avx512dq-vcvtps2uqq-2.c
! 48602312d66bc0d6fd0584e522027cf7  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-1.c
  87e3d1d0fcbdeb9d0cba3b4eeea4964d  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2pd-2.c
! e607287c4d426631388ec8aa7d1a5408  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-1.c
  b322de8f80d77715d924f2ed50c5de6a  gcc/testsuite/gcc.target/i386/avx512dq-vcvtqq2ps-2.c
  a762a92320d777313946457e60450f6c  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2qq-1.c
  2322843d8629e40abee50dc5a2b2b2ab  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2qq-2.c
  bb435422249c876cffc07bc01f08365e  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2uqq-1.c
  2065722b8a48236a7c1908def30581b1  gcc/testsuite/gcc.target/i386/avx512dq-vcvttpd2uqq-2.c
! e06d8d3c46b3d438654b1e2ec7ff3262  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-1.c
  f7fa789cf88fc2cb70ca9cc4f03c56b7  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2qq-2.c
! a21de645ee3872f2aa5b2c85763182ce  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-1.c
  de3622d9f6431935151edfe54ddbfdce  gcc/testsuite/gcc.target/i386/avx512dq-vcvttps2uqq-2.c
! 727bc7a18a860d6e41aa5f8f32eae4c0  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-1.c
  180b7c8caefb80b8382490967552396b  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2pd-2.c
! d023e2d36f0cbcee41004c1f96d3bba4  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-1.c
  c6fff99f79cc8e88ced4f5a82ef63289  gcc/testsuite/gcc.target/i386/avx512dq-vcvtuqq2ps-2.c
! 4ac9ccb897f7a2e284df889ae84cd018  gcc/testsuite/gcc.target/i386/avx512dq-vextractf32x8-1.c
! a6bf3a83158921944e5077166e5d9914  gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-1.c
  637fbc2ce18041be1304c818a117bb4a  gcc/testsuite/gcc.target/i386/avx512dq-vextractf64x2-2.c
  65bb840647d16323f540ee4bd308361a  gcc/testsuite/gcc.target/i386/avx512dq-vextracti32x8-1.c
! d0597c19c22d633d074877551c8913ba  gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-1.c
  79963a0599d5d2ec618f013e34c2c105  gcc/testsuite/gcc.target/i386/avx512dq-vextracti64x2-2.c
! 41a0514949446c2a52d1f3d3172b46dd  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-1.c
  381963168b9a50e823c8375ae95a0d8c  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasspd-2.c
! 9627f3720ec9901c62b2a9caeb200add  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-1.c
  b3fc381ca0059d17a2d9812d9231ff01  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassps-2.c
! 671a6dbf17329ddfca6ed70e1db8d6c1  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1.c
  320c1383cbb8e4ce07f067792bb52fd4  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-1b.c
  5cd4bb271105b6457a2a496768007256  gcc/testsuite/gcc.target/i386/avx512dq-vfpclasssd-2.c
! fbf564f020a3fec94cbac615de13c20e  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1.c
  7fc53c6d107e4e8b76a7a062a0e6ef7e  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-1b.c
  d2a9855a64040f30e43740f4abffd5eb  gcc/testsuite/gcc.target/i386/avx512dq-vfpclassss-2.c
  1fb9353e1dd69f5c4b4f8968fba855ff  gcc/testsuite/gcc.target/i386/avx512dq-vinsert-1.c
*************** aaa13a719a973c3617c0af3dc79614c1  gcc/te
*** 75946,75954 ****
  cf7f5cea9d0391cb48bb3a1a927d96bc  gcc/testsuite/gcc.target/i386/avx512dq-vpmovm2q-2.c
  76b11d1ee69ab3efc6dccd085a7b1309  gcc/testsuite/gcc.target/i386/avx512dq-vpmovq2m-1.c
  9fc78389fd92e0e294479f64c7844fdd  gcc/testsuite/gcc.target/i386/avx512dq-vpmovq2m-2.c
! 7c199e03e4250877b6020f2c5952db7a  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c
  bd05449132ec0ffcf7f9d2cee42d3d84  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-2.c
! 76f236fa5796b5046b3d42523dbe4575  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c
  97aa2bc606e77d01e676dc674146f07f  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-4.c
  05c9050d2203136979ca6f6a60da73fc  gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c
  f0c9881b20109961ade437de8e3cd48c  gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-2.c
--- 86073,86081 ----
  cf7f5cea9d0391cb48bb3a1a927d96bc  gcc/testsuite/gcc.target/i386/avx512dq-vpmovm2q-2.c
  76b11d1ee69ab3efc6dccd085a7b1309  gcc/testsuite/gcc.target/i386/avx512dq-vpmovq2m-1.c
  9fc78389fd92e0e294479f64c7844fdd  gcc/testsuite/gcc.target/i386/avx512dq-vpmovq2m-2.c
! e3df910416a724a3d44deb0c3157f44d  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-1.c
  bd05449132ec0ffcf7f9d2cee42d3d84  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-2.c
! b3248bd1edbd16af3d7147d5c7ff2273  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-3.c
  97aa2bc606e77d01e676dc674146f07f  gcc/testsuite/gcc.target/i386/avx512dq-vpmullq-4.c
  05c9050d2203136979ca6f6a60da73fc  gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-1.c
  f0c9881b20109961ade437de8e3cd48c  gcc/testsuite/gcc.target/i386/avx512dq-vrangepd-2.c
*************** f783e66b09f316c2dde663ba5ce3186a  gcc/te
*** 76097,76103 ****
  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
--- 86224,86230 ----
  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
! fe1e00fcba271e150aabe139bea9210e  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
*************** d35963959d5b010c3b26b967f48d3608  gcc/te
*** 76172,76178 ****
  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/testsuite/gcc.target/i386/avx512f-pr100267-ps-2.c
  7371abf8df649ac78965cd397d5f5a42  gcc/testsuite/gcc.target/i386/avx512f-pr101471.c
--- 86299,86305 ----
  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
! dc5980341ce02c4a2fc105557649aa38  gcc/testsuite/gcc.target/i386/avx512f-pr100267-1.c
  96968590e0e38d8ab07a46aa232aaa22  gcc/testsuite/gcc.target/i386/avx512f-pr100267-pd-2.c
  f52100c2d13572e0728cca2f85b0fcde  gcc/testsuite/gcc.target/i386/avx512f-pr100267-ps-2.c
  7371abf8df649ac78965cd397d5f5a42  gcc/testsuite/gcc.target/i386/avx512f-pr101471.c
*************** dc7877a60c094039a172aa23afb1e37c  gcc/te
*** 76181,76190 ****
--- 86308,86321 ----
  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
+ 87bd629f02bb8cddd2ca32e53635ac2b  gcc/testsuite/gcc.target/i386/avx512f-pr103750-3.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
+ f20f5c3dc20ef0309b2a3dc9fdde483e  gcc/testsuite/gcc.target/i386/avx512f-pr124138-1.c
+ efe0a21951178063e3b3f10cf90f0adb  gcc/testsuite/gcc.target/i386/avx512f-pr124138-2.c
+ 1f47d4671c0dd3d13b733838385048ed  gcc/testsuite/gcc.target/i386/avx512f-pr124315.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
*************** a940544da86cef217be8f69bb1db86fd  gcc/te
*** 76220,76226 ****
  d8f5b8a616877bf994ca908404ac88d4  gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c
  845a5a253dac36d4bc2305b59320b360  gcc/testsuite/gcc.target/i386/avx512f-pr89445.c
  cf8d8483e8f8c207b3c3ece46a4e37a0  gcc/testsuite/gcc.target/i386/avx512f-pr91157.c
! 511655e8c59bc5de8e8126288db856ec  gcc/testsuite/gcc.target/i386/avx512f-pr93078.c
  d02e54fef14f48afcc720ef0004da5fa  gcc/testsuite/gcc.target/i386/avx512f-pr93673.c
  f5e4ec9ac91161d240ce6224588d20f2  gcc/testsuite/gcc.target/i386/avx512f-pr94300.c
  0ec29bad25960f18650afa1c9967c8eb  gcc/testsuite/gcc.target/i386/avx512f-pr94343.c
--- 86351,86357 ----
  d8f5b8a616877bf994ca908404ac88d4  gcc/testsuite/gcc.target/i386/avx512f-pr88547-2.c
  845a5a253dac36d4bc2305b59320b360  gcc/testsuite/gcc.target/i386/avx512f-pr89445.c
  cf8d8483e8f8c207b3c3ece46a4e37a0  gcc/testsuite/gcc.target/i386/avx512f-pr91157.c
! f99d612115c2bcfe0a9e1886b9f5c12a  gcc/testsuite/gcc.target/i386/avx512f-pr93078.c
  d02e54fef14f48afcc720ef0004da5fa  gcc/testsuite/gcc.target/i386/avx512f-pr93673.c
  f5e4ec9ac91161d240ce6224588d20f2  gcc/testsuite/gcc.target/i386/avx512f-pr94300.c
  0ec29bad25960f18650afa1c9967c8eb  gcc/testsuite/gcc.target/i386/avx512f-pr94343.c
*************** c64f8e63f9233fd8382fefc82e756df8  gcc/te
*** 76230,76236 ****
  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
--- 86361,86367 ----
  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
! d512f1d715ed2c63470362d6c0faac12  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
*************** bde726e6f2cd1d9530e50b14cc19e926  gcc/te
*** 76330,76339 ****
  41d510e7de08b1869d765e1c54d9255a  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastsd-2.c
  ea8f5f1fd33b05c11b1eb82ffd2b9d26  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastss-1.c
  faab2215d293f4db6f1cb7890858be20  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastss-2.c
! e1194584e5c0e8505292895eb783e28f  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c
  3eb9d7bb1cd30f1cc232c846f58e9923  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c
  9d1bfb54da4127452b23a69245924448  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-3.c
! 5e54fc5875eaff2d721688cf22b140db  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c
  fb965451870058fc0338da3bf4ca50a1  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c
  695e2674186a97e2190a76ef6bf0e306  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-3.c
  cfc57dcbbde8b4d4956d3ef4c768f651  gcc/testsuite/gcc.target/i386/avx512f-vcmpsd-1.c
--- 86461,86470 ----
  41d510e7de08b1869d765e1c54d9255a  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastsd-2.c
  ea8f5f1fd33b05c11b1eb82ffd2b9d26  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastss-1.c
  faab2215d293f4db6f1cb7890858be20  gcc/testsuite/gcc.target/i386/avx512f-vbroadcastss-2.c
! 6296f2ed8566b09892a01367dfa2d523  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-1.c
  3eb9d7bb1cd30f1cc232c846f58e9923  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-2.c
  9d1bfb54da4127452b23a69245924448  gcc/testsuite/gcc.target/i386/avx512f-vcmppd-3.c
! 8226689f1864d66a3bf15cf6f4b0a8d4  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-1.c
  fb965451870058fc0338da3bf4ca50a1  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-2.c
  695e2674186a97e2190a76ef6bf0e306  gcc/testsuite/gcc.target/i386/avx512f-vcmpps-3.c
  cfc57dcbbde8b4d4956d3ef4c768f651  gcc/testsuite/gcc.target/i386/avx512f-vcmpsd-1.c
*************** bb6be2a9a907a862e8c31a78903ad8d9  gcc/te
*** 76362,76368 ****
  a00344fd22dfb56132d7eaecf7add3e4  gcc/testsuite/gcc.target/i386/avx512f-vcvtph2ps-2.c
  f5522e3e73f476001fbe3a8f66cc6384  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2dq-1.c
  87eebaeff42392b29a47cfb53aa537a3  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2dq-2.c
! 0b81cc2453cbb0f7f49351ea0b6b126f  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c
  c58d5e0518f9a55f9357771ec2f9b77a  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-2.c
  3c686cf13670ff01f2452dffabbe0339  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-1.c
  bb93618c24644f5f810bc9f925e52ac6  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-2.c
--- 86493,86499 ----
  a00344fd22dfb56132d7eaecf7add3e4  gcc/testsuite/gcc.target/i386/avx512f-vcvtph2ps-2.c
  f5522e3e73f476001fbe3a8f66cc6384  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2dq-1.c
  87eebaeff42392b29a47cfb53aa537a3  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2dq-2.c
! 1c8883353d80fd0a54ab827fc7728532  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-1.c
  c58d5e0518f9a55f9357771ec2f9b77a  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2pd-2.c
  3c686cf13670ff01f2452dffabbe0339  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-1.c
  bb93618c24644f5f810bc9f925e52ac6  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-2.c
*************** bb93618c24644f5f810bc9f925e52ac6  gcc/te
*** 76370,76392 ****
  cb55e2121d04013d132458bef594f03e  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-sae.c
  c85c4875b511f42975a9021c9b8a893a  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2udq-1.c
  0401f46259a989a5d63841ab8f7d40c0  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2udq-2.c
! 5471924da73ff85fc9b17915453eaa53  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c
! 61bf0307c819e1a758af99678f370912  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c
  fa5045d7a2853246cd65ac66bbc1c25e  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2ss-1.c
! 2b64a629599e855806321961f461bf15  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c
  e1612ae877e65f79e5e0a14da93e04b4  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-2.c
! 94671f9c6b480b93fa995af6f7b4436d  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c
  0de9d4841f86111871bac66bd04cdda5  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-2.c
  802ca463aff6cf1f35ba352a0abbb8e1  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd-1.c
  d67300af7605421bbfc0e49e08cc8186  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c
! 723bd2b12ae682c2d019ccf3dacebee8  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c
  51ecce6659f2c5abd9188b36ac2510f7  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c
  857482b2cffdb8d8256c05e32d493b12  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2sd-1.c
! c6c7a503ecd10c2d06f6cf9a8fccd53a  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c
! b6f2ce5a9582289409b475f0ac818d2b  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c
! 5be229a9240abfa4a205058b98ed1e94  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c
  461898db0c8b804b70a27de9bee12a50  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-2.c
! 03119af99acaaee04f31e7835a3d2033  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c
  2216f47b4ef0bce9f18195d80e34029d  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-2.c
  a99c2662f1ed54285a3cbe7c6b7a7b3d  gcc/testsuite/gcc.target/i386/avx512f-vcvttpd2dq-1.c
  e938eb7c36f66d70c5fc3f191e0131b1  gcc/testsuite/gcc.target/i386/avx512f-vcvttpd2dq-2.c
--- 86501,86523 ----
  cb55e2121d04013d132458bef594f03e  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2ph-sae.c
  c85c4875b511f42975a9021c9b8a893a  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2udq-1.c
  0401f46259a989a5d63841ab8f7d40c0  gcc/testsuite/gcc.target/i386/avx512f-vcvtps2udq-2.c
! 007da9ce90fc8fbffe2b2d1b83ddada5  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si-1.c
! f4131a000a874cbacf2e174be0deb80b  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2si64-1.c
  fa5045d7a2853246cd65ac66bbc1c25e  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2ss-1.c
! 74d006da5d406a46f3376885899b0614  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-1.c
  e1612ae877e65f79e5e0a14da93e04b4  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi-2.c
! 095b87291ecb10f354b04afe4fc5030a  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-1.c
  0de9d4841f86111871bac66bd04cdda5  gcc/testsuite/gcc.target/i386/avx512f-vcvtsd2usi64-2.c
  802ca463aff6cf1f35ba352a0abbb8e1  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd-1.c
  d67300af7605421bbfc0e49e08cc8186  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2sd64-1.c
! a995eca64b21caada3590e6218372cc9  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss-1.c
  51ecce6659f2c5abd9188b36ac2510f7  gcc/testsuite/gcc.target/i386/avx512f-vcvtsi2ss64-1.c
  857482b2cffdb8d8256c05e32d493b12  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2sd-1.c
! abdde05d988dfa02f2b0aeaa4c2dfd05  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si-1.c
! ff29f270580664e9b54ef99217fde4a3  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2si64-1.c
! 27bf75685689f1dd04f1c99af05458a6  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-1.c
  461898db0c8b804b70a27de9bee12a50  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi-2.c
! 374a0877d639004df866b4f7be5fb330  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-1.c
  2216f47b4ef0bce9f18195d80e34029d  gcc/testsuite/gcc.target/i386/avx512f-vcvtss2usi64-2.c
  a99c2662f1ed54285a3cbe7c6b7a7b3d  gcc/testsuite/gcc.target/i386/avx512f-vcvttpd2dq-1.c
  e938eb7c36f66d70c5fc3f191e0131b1  gcc/testsuite/gcc.target/i386/avx512f-vcvttpd2dq-2.c
*************** fd6fbfad164318058e62d88f2fa9e6bb  gcc/te
*** 76396,76416 ****
  09f5f282f9942b7c8980c663b7a68f1f  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2dq-2.c
  e326559f86137fcfe36b810dbc864f7c  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2udq-1.c
  e3c8d8d5cdacdd70621f86d3941c64eb  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2udq-2.c
! 9c5417461b16949e8bbae3d9a3b0007d  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c
  5087b04ba9442364f5bad8e631a426ed  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-2.c
! 1340670500cdffa12be659a1b379c61e  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c
  478ae5208e7b5917c23c9c3263132e13  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-2.c
! b9429b4927ccc534c338b46f342195bb  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c
  8506bcd15826041a710eda70edbff5b7  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-2.c
! fad57887ade4e15793d1217e7e1ad59c  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c
  c3df10309a48442b950098d95a83b6b0  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-2.c
! 537fbaf2d28ce6c120ea47cd4a5dd5e2  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c
  76ac16970f4a4bc15e576cd5aff4789e  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-2.c
! 8d311f73b4f9fe734ae5f4d46fc8c1bf  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c
  f44d540b01a97992e7969d90d0621eef  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-2.c
! 525318d081f532e15a4e92f6218eca82  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c
  206aa1e7d40a4430674f50b148639dc0  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-2.c
! e92099d93ae9f2617ac57480ad418269  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c
  a8fd5ae752b69f78e55af10766938030  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-2.c
  8045fe423910f16e69e485f89e741d37  gcc/testsuite/gcc.target/i386/avx512f-vcvtudq2pd-1.c
  16071cf285581a2dda5f1c721d3e2ef0  gcc/testsuite/gcc.target/i386/avx512f-vcvtudq2pd-2.c
--- 86527,86547 ----
  09f5f282f9942b7c8980c663b7a68f1f  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2dq-2.c
  e326559f86137fcfe36b810dbc864f7c  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2udq-1.c
  e3c8d8d5cdacdd70621f86d3941c64eb  gcc/testsuite/gcc.target/i386/avx512f-vcvttps2udq-2.c
! 5bd6af7f8f0cd633eaaddeec908bca47  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-1.c
  5087b04ba9442364f5bad8e631a426ed  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si-2.c
! 369ba9c487f1c2d7a9ce91e413784eb3  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-1.c
  478ae5208e7b5917c23c9c3263132e13  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2si64-2.c
! b28e9345bb975568c31659220a7362a7  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-1.c
  8506bcd15826041a710eda70edbff5b7  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi-2.c
! 8c62f0e4964f771999eb413f881c2122  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-1.c
  c3df10309a48442b950098d95a83b6b0  gcc/testsuite/gcc.target/i386/avx512f-vcvttsd2usi64-2.c
! e53ba07c834dee12df5f4a26f8d911a7  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-1.c
  76ac16970f4a4bc15e576cd5aff4789e  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si-2.c
! f04fcad777ed0aaac66d2c5731c07d5c  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-1.c
  f44d540b01a97992e7969d90d0621eef  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2si64-2.c
! 134a87e437386508da1c21cc045bed1a  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-1.c
  206aa1e7d40a4430674f50b148639dc0  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi-2.c
! 3d58c675e28706dff89131df87e2ebf1  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-1.c
  a8fd5ae752b69f78e55af10766938030  gcc/testsuite/gcc.target/i386/avx512f-vcvttss2usi64-2.c
  8045fe423910f16e69e485f89e741d37  gcc/testsuite/gcc.target/i386/avx512f-vcvtudq2pd-1.c
  16071cf285581a2dda5f1c721d3e2ef0  gcc/testsuite/gcc.target/i386/avx512f-vcvtudq2pd-2.c
*************** fd53867852deb53d0ca22ad2de8d7adf  gcc/te
*** 76434,76440 ****
  b5e4cd18a2247fe8c73f3ec6f8f9beb7  gcc/testsuite/gcc.target/i386/avx512f-vdivss-1.c
  37bc1f025f764010883a7d33e587a6a9  gcc/testsuite/gcc.target/i386/avx512f-vdivss-2.c
  3d1a356d368a114ff4f4f5ce2918a939  gcc/testsuite/gcc.target/i386/avx512f-vdivss-3.c
! 708c12de1370a83a2980fb98a399a5d1  gcc/testsuite/gcc.target/i386/avx512f-vec-init.c
  53ee450644f8170f381cf40eb5ef85fe  gcc/testsuite/gcc.target/i386/avx512f-vec-set-2.c
  0cac8e1e01a7b0e7c1e81c1fa3676acb  gcc/testsuite/gcc.target/i386/avx512f-vec-unpack.c
  44f99bcaccd5e7e590676abb96268078  gcc/testsuite/gcc.target/i386/avx512f-vect-fmaddsubXXXpd.c
--- 86565,86571 ----
  b5e4cd18a2247fe8c73f3ec6f8f9beb7  gcc/testsuite/gcc.target/i386/avx512f-vdivss-1.c
  37bc1f025f764010883a7d33e587a6a9  gcc/testsuite/gcc.target/i386/avx512f-vdivss-2.c
  3d1a356d368a114ff4f4f5ce2918a939  gcc/testsuite/gcc.target/i386/avx512f-vdivss-3.c
! 2fa289c2f52fbd5e857caf50b5af0cdd  gcc/testsuite/gcc.target/i386/avx512f-vec-init.c
  53ee450644f8170f381cf40eb5ef85fe  gcc/testsuite/gcc.target/i386/avx512f-vec-set-2.c
  0cac8e1e01a7b0e7c1e81c1fa3676acb  gcc/testsuite/gcc.target/i386/avx512f-vec-unpack.c
  44f99bcaccd5e7e590676abb96268078  gcc/testsuite/gcc.target/i386/avx512f-vect-fmaddsubXXXpd.c
*************** d47b93e003c8d44986c06137b1e887a7  gcc/te
*** 76454,76466 ****
  7ca29bb899b42e3bd100324cd1ae7ac5  gcc/testsuite/gcc.target/i386/avx512f-vexpandpd-2.c
  56c621e8cd949ef74a66c3346988fbd1  gcc/testsuite/gcc.target/i386/avx512f-vexpandps-1.c
  73ae6d1c46e469f48c28311970fbfeb6  gcc/testsuite/gcc.target/i386/avx512f-vexpandps-2.c
! 3e825a6ee1139e6b3382ecbe8c04db87  gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c
  60bd7781f7a70f2214c51db1a967ea50  gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-2.c
! 71d480a9e2fb9f70f23889c558a07542  gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c
  1152fa710692c3cd7bed9092a515f6e0  gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-2.c
  f13ec4d6935c8e808a92e0b1a9e7f099  gcc/testsuite/gcc.target/i386/avx512f-vextracti32x4-1.c
  d1a053f1f9637b75161602a5c9712e41  gcc/testsuite/gcc.target/i386/avx512f-vextracti32x4-2.c
! 3a8a458df6f39a08df8d2a6dde8309c3  gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c
  c0f9884b6c7750706e77b509c267b387  gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-2.c
  af3c9f5fcebb6e86a11ff01f1bba8f60  gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-1.c
  d3c27ab350b891bc40b7059a1531c0f5  gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
--- 86585,86597 ----
  7ca29bb899b42e3bd100324cd1ae7ac5  gcc/testsuite/gcc.target/i386/avx512f-vexpandpd-2.c
  56c621e8cd949ef74a66c3346988fbd1  gcc/testsuite/gcc.target/i386/avx512f-vexpandps-1.c
  73ae6d1c46e469f48c28311970fbfeb6  gcc/testsuite/gcc.target/i386/avx512f-vexpandps-2.c
! d8163b07c741854d8137fa748ce789b0  gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-1.c
  60bd7781f7a70f2214c51db1a967ea50  gcc/testsuite/gcc.target/i386/avx512f-vextractf32x4-2.c
! a6788216e40e2a760ba22b961fa3488c  gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-1.c
  1152fa710692c3cd7bed9092a515f6e0  gcc/testsuite/gcc.target/i386/avx512f-vextractf64x4-2.c
  f13ec4d6935c8e808a92e0b1a9e7f099  gcc/testsuite/gcc.target/i386/avx512f-vextracti32x4-1.c
  d1a053f1f9637b75161602a5c9712e41  gcc/testsuite/gcc.target/i386/avx512f-vextracti32x4-2.c
! f4213f1d21d0d66d5b43576c77c583ff  gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-1.c
  c0f9884b6c7750706e77b509c267b387  gcc/testsuite/gcc.target/i386/avx512f-vextracti64x4-2.c
  af3c9f5fcebb6e86a11ff01f1bba8f60  gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-1.c
  d3c27ab350b891bc40b7059a1531c0f5  gcc/testsuite/gcc.target/i386/avx512f-vfixupimmpd-2.c
*************** c3302fc1e61a77338a62d7a99ac2afe1  gcc/te
*** 76565,76579 ****
  7d342e5548fa1f3350bc9475fc020b7f  gcc/testsuite/gcc.target/i386/avx512f-vminss-1.c
  9a808fc23c61e6c6947ee5474e1389cf  gcc/testsuite/gcc.target/i386/avx512f-vminss-2.c
  1d28629ec1a4a7bcefe25fd77fd5decd  gcc/testsuite/gcc.target/i386/avx512f-vminss-3.c
! fcfe01c60bc3c40da90f554fa0564673  gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c
  6f68dc2ac14a9fc6e6b7a5f3f61a127d  gcc/testsuite/gcc.target/i386/avx512f-vmovapd-2.c
! 74fd360f7fcb0753850eaa1dd42189b6  gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c
  9ccd3a7e0f4689d95fba34318579ad51  gcc/testsuite/gcc.target/i386/avx512f-vmovaps-2.c
  001366044976eacf28f574403e24ccd6  gcc/testsuite/gcc.target/i386/avx512f-vmovddup-1.c
  f7e1c9b5681f2fc34fb47ea47fb9f5ed  gcc/testsuite/gcc.target/i386/avx512f-vmovddup-2.c
  a35235fccccbc6c32f0ee01ea6389320  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa32-1.c
  6843391920328a69a666b06ff4e19087  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa32-2.c
! 39b8955057d4e2d9146afe225660a1b5  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c
  e9d078b68039e687af930b0d7c6ae089  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-2.c
  9bf1c297b3ca0529be2337617bffe27e  gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-1.c
  af872aea16e9bb4f89e8c7c52d5722f0  gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c
--- 86696,86710 ----
  7d342e5548fa1f3350bc9475fc020b7f  gcc/testsuite/gcc.target/i386/avx512f-vminss-1.c
  9a808fc23c61e6c6947ee5474e1389cf  gcc/testsuite/gcc.target/i386/avx512f-vminss-2.c
  1d28629ec1a4a7bcefe25fd77fd5decd  gcc/testsuite/gcc.target/i386/avx512f-vminss-3.c
! 2b816c3bc89e6d717a5a6f64a25800b0  gcc/testsuite/gcc.target/i386/avx512f-vmovapd-1.c
  6f68dc2ac14a9fc6e6b7a5f3f61a127d  gcc/testsuite/gcc.target/i386/avx512f-vmovapd-2.c
! a8f119299437ddc429c83e4c58f6e721  gcc/testsuite/gcc.target/i386/avx512f-vmovaps-1.c
  9ccd3a7e0f4689d95fba34318579ad51  gcc/testsuite/gcc.target/i386/avx512f-vmovaps-2.c
  001366044976eacf28f574403e24ccd6  gcc/testsuite/gcc.target/i386/avx512f-vmovddup-1.c
  f7e1c9b5681f2fc34fb47ea47fb9f5ed  gcc/testsuite/gcc.target/i386/avx512f-vmovddup-2.c
  a35235fccccbc6c32f0ee01ea6389320  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa32-1.c
  6843391920328a69a666b06ff4e19087  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa32-2.c
! 915b0e34586cf8c6c220daeaee628a51  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-1.c
  e9d078b68039e687af930b0d7c6ae089  gcc/testsuite/gcc.target/i386/avx512f-vmovdqa64-2.c
  9bf1c297b3ca0529be2337617bffe27e  gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-1.c
  af872aea16e9bb4f89e8c7c52d5722f0  gcc/testsuite/gcc.target/i386/avx512f-vmovdqu32-2.c
*************** fe1c1693a8b51d59d5d5d5b10bb13abf  gcc/te
*** 76624,76630 ****
  fa47b76d69a60b5a5f20b8ca18892899  gcc/testsuite/gcc.target/i386/avx512f-vpandd-2.c
  2f1649a26810f9242cb7dd59deae7154  gcc/testsuite/gcc.target/i386/avx512f-vpandnd-1.c
  ee5a92103ab9077a24429ebf80c90964  gcc/testsuite/gcc.target/i386/avx512f-vpandnd-2.c
! 0c2231574c8164c176f2f0de2628c2e5  gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c
  e98ab3839f1a1dd1c3b91c16e7242681  gcc/testsuite/gcc.target/i386/avx512f-vpandnq-2.c
  8380b37114862fe7817f883e816f75a8  gcc/testsuite/gcc.target/i386/avx512f-vpandq-1.c
  7c23c776445c4658cbe1fd383146c4e5  gcc/testsuite/gcc.target/i386/avx512f-vpandq-2.c
--- 86755,86761 ----
  fa47b76d69a60b5a5f20b8ca18892899  gcc/testsuite/gcc.target/i386/avx512f-vpandd-2.c
  2f1649a26810f9242cb7dd59deae7154  gcc/testsuite/gcc.target/i386/avx512f-vpandnd-1.c
  ee5a92103ab9077a24429ebf80c90964  gcc/testsuite/gcc.target/i386/avx512f-vpandnd-2.c
! bec8a53a21b2bf7ab0c1dd696d33e6bb  gcc/testsuite/gcc.target/i386/avx512f-vpandnq-1.c
  e98ab3839f1a1dd1c3b91c16e7242681  gcc/testsuite/gcc.target/i386/avx512f-vpandnq-2.c
  8380b37114862fe7817f883e816f75a8  gcc/testsuite/gcc.target/i386/avx512f-vpandq-1.c
  7c23c776445c4658cbe1fd383146c4e5  gcc/testsuite/gcc.target/i386/avx512f-vpandq-2.c
*************** e98ab3839f1a1dd1c3b91c16e7242681  gcc/te
*** 76632,76659 ****
  f0bbc53daeed10bb8766b883d5c0c203  gcc/testsuite/gcc.target/i386/avx512f-vpblendmd-2.c
  251a99def88f580d82db89f5ec00a907  gcc/testsuite/gcc.target/i386/avx512f-vpblendmq-1.c
  6bdbad17c98c034b06064dd5c043ff6d  gcc/testsuite/gcc.target/i386/avx512f-vpblendmq-2.c
! 246a35e1a446af3d2f0bdbc4f9eee6f8  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c
  4f9e796749bfc5c269e5fcb894f43213  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-2.c
! f6e9ee0f49a9136048b8c607f1f8293a  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c
  aaac1408b5ce290b12e396f2a7423275  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-2.c
  b35f385754d7adcf5a33661dff6d0ee5  gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c
! 54663b0d44a4c576ba5aaf106a9d9ea8  gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c
  ca3cbe4bf0bd33e5b9a8b91834012346  gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-2.c
  4a0b6a1b300ae1c484b8811362ed18f7  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-1.c
  d6853934ff8391c6aea8eb369fbb6d41  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-2.c
! 5004fd492cca60d7446526871b902c7b  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c
  ffb2026db54e7bf1c7db73db940cfe40  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-2.c
  868d105f114147b76ec8a490642e1e5e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-1.c
  a7ed0687d14f918e7b2a28126dd1564e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-2.c
! 8200d3dd2772196ad8cf4e498de2a419  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c
  0c6de1bdf6c1b0f7e67855ffa54f7d45  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-2.c
! c70fba917004f7aa3e3da8968495d597  gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c
  02968ca0040ede699f9da757f4b3aa12  gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-2.c
! 585d6d3456e7e6036f3c7b8d76a3be5b  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c
  ace615b2239ebda8b04d57fb3dd9c902  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-2.c
! 36f97139088cf082d7a6dfb7abfcb25f  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c
  9b67cfcd016b4f114c24fdd3ea5ac9b1  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-2.c
! 2e568f2f20af62ba1e756d62a8159a0a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c
  677dafc30e2c32a2144b2139533f2db0  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-2.c
  3a4d88496414b29a1468121ab9e60026  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-1.c
  bd110a6af386a35002710b701fdf4a39  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-2.c
--- 86763,86790 ----
  f0bbc53daeed10bb8766b883d5c0c203  gcc/testsuite/gcc.target/i386/avx512f-vpblendmd-2.c
  251a99def88f580d82db89f5ec00a907  gcc/testsuite/gcc.target/i386/avx512f-vpblendmq-1.c
  6bdbad17c98c034b06064dd5c043ff6d  gcc/testsuite/gcc.target/i386/avx512f-vpblendmq-2.c
! c08e770dc14debf8dd59ef0976d8e803  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-1.c
  4f9e796749bfc5c269e5fcb894f43213  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastd-2.c
! d937f7fd932b4221f0bbe9d16821efe2  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-1.c
  aaac1408b5ce290b12e396f2a7423275  gcc/testsuite/gcc.target/i386/avx512f-vpbroadcastq-2.c
  b35f385754d7adcf5a33661dff6d0ee5  gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c
! 6986d864e0d3811def6b2ba481e743dd  gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c
  ca3cbe4bf0bd33e5b9a8b91834012346  gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-2.c
  4a0b6a1b300ae1c484b8811362ed18f7  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-1.c
  d6853934ff8391c6aea8eb369fbb6d41  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-2.c
! 1f5bc0d58172c99b9b53bbb8aae7751a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c
  ffb2026db54e7bf1c7db73db940cfe40  gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-2.c
  868d105f114147b76ec8a490642e1e5e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-1.c
  a7ed0687d14f918e7b2a28126dd1564e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-2.c
! 6c0e75ea32d66185f7ee71f3d27d00ed  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-1.c
  0c6de1bdf6c1b0f7e67855ffa54f7d45  gcc/testsuite/gcc.target/i386/avx512f-vpcmpequq-2.c
! e3f2e380f858387e88dd4f0f899cd091  gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-1.c
  02968ca0040ede699f9da757f4b3aa12  gcc/testsuite/gcc.target/i386/avx512f-vpcmpged-2.c
! adf56c5eb84aebac88000dc404aaedc2  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-1.c
  ace615b2239ebda8b04d57fb3dd9c902  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeq-2.c
! 265b307906adc9022570f4d194a22fed  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-1.c
  9b67cfcd016b4f114c24fdd3ea5ac9b1  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-2.c
! b2a19da357b4e13e3929ebf7b0e219a0  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c
  677dafc30e2c32a2144b2139533f2db0  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-2.c
  3a4d88496414b29a1468121ab9e60026  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-1.c
  bd110a6af386a35002710b701fdf4a39  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-2.c
*************** bd110a6af386a35002710b701fdf4a39  gcc/te
*** 76661,76697 ****
  c65f3ed9955cb3c6d6630f04c06c055e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-2.c
  7291ad1630408b42d0017a9e34002f46  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-1.c
  8d9ff7f79681cc7cfe828a8184468d68  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-2.c
! 624deced74e64a105f8d97e25aea5c7d  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-1.c
  be7848d5df575aa4628a92c57b4a7b9c  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-2.c
! 1dd62b5d2a11bf820918e53d1f1753ee  gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c
  b81a1a12c76aabfb9fe7a922aac2cea2  gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-2.c
! fb9e0830d0e117ed6dfe6145a358a643  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c
  a2db23c9b4498c85b19faa4b2991d0fc  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-2.c
! fc487497bf8ac74b9e2703c9346d30a6  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c
  f36445e41a1d7b960b707a3a2c5bb8af  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-2.c
! 78143a97834cfaddee90f74a23771dd6  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c
  aee9bb8fd0dc8d04f465d53fd6d95da3  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-2.c
! 8345a7509fc73845c33c9c00bae84e51  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c
  749d36fbc9ade6d9dbc3fb3d21212366  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-2.c
! fb84652ea2f43d93aab1113140095c5a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c
  10cb639c1c0a01b4583e8e9ad36f74ca  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-2.c
! a785bcfb995a8226b9a9b258841d8d9f  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c
  2dc86bbe1dc25ee8d425826603caa094  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-2.c
! 16eedd9b13ee4da4bf191d5bf55e2fcb  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c
  502120f8e91191afea7128893c761d49  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-2.c
! 72bf509c93cd703ce9b0820b268499c6  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c
  6eb9c1ca04f70a6a896151e40b4ace8f  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-2.c
! db64ecaf7ddaaef749bc26f50af7e3bc  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c
  4adbf6e699def310bb6e9e486798aec3  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-2.c
! 6e1b36076a0d064087e98569ab6880c8  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c
  6ac0181abfe7483ef1b8440d5e01748d  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-2.c
! 2e4aa02377e1d15ecc1a253b37c4e6a8  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c
  1b0d562e1bdce1d648a306f10df08d5a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-2.c
! 944d48d463ecd817610cf5b0b76d9dfa  gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c
  9e3d3a9f66d739098528a6e45d8c9b3e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-2.c
! a6451c4914c5e548ed0b6b1e89bc6f14  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c
  168050657750b10d1ebfeaae01fe19da  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-2.c
! 9818d935e35295611c375d42862183bb  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c
  c7a149a80b76351d66c8c6d26298bece  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-2.c
  604f26dd3cd6a40229c6c51cb663acb7  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-1.c
  60c29a1b9e21aa53fd0c293e7f092802  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
--- 86792,86828 ----
  c65f3ed9955cb3c6d6630f04c06c055e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-2.c
  7291ad1630408b42d0017a9e34002f46  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-1.c
  8d9ff7f79681cc7cfe828a8184468d68  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-2.c
! d4e1abafeb49cc2acb336fc751249028  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-1.c
  be7848d5df575aa4628a92c57b4a7b9c  gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtuq-2.c
! ae6210b0951d9f4bdb413dfa8a574d91  gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-1.c
  b81a1a12c76aabfb9fe7a922aac2cea2  gcc/testsuite/gcc.target/i386/avx512f-vpcmpled-2.c
! 9a204ff42873ec8dad22c9a7d3ef0e57  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-1.c
  a2db23c9b4498c85b19faa4b2991d0fc  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleq-2.c
! fe1fd9d0b1f4f46874ac4afd17aec75a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-1.c
  f36445e41a1d7b960b707a3a2c5bb8af  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleud-2.c
! 66941ac6fd2283db114f45f6741afdf3  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-1.c
  aee9bb8fd0dc8d04f465d53fd6d95da3  gcc/testsuite/gcc.target/i386/avx512f-vpcmpleuq-2.c
! 59bd99d438a6354310447f5483b8c8f0  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-1.c
  749d36fbc9ade6d9dbc3fb3d21212366  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltd-2.c
! 2e871b46dcbc26be688f1a51b8a8fcf0  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-1.c
  10cb639c1c0a01b4583e8e9ad36f74ca  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltq-2.c
! c59f4e40b21153a9bc14a7bba1dec6e7  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-1.c
  2dc86bbe1dc25ee8d425826603caa094  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltud-2.c
! e980a9cc942ca1bb945d5db24d494809  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-1.c
  502120f8e91191afea7128893c761d49  gcc/testsuite/gcc.target/i386/avx512f-vpcmpltuq-2.c
! bc37df0af4c1946292c16a7976022c1d  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-1.c
  6eb9c1ca04f70a6a896151e40b4ace8f  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqd-2.c
! 005bc86d787b5e7146b76f779070a65f  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-1.c
  4adbf6e699def310bb6e9e486798aec3  gcc/testsuite/gcc.target/i386/avx512f-vpcmpneqq-2.c
! f12d8b4489cb5becfe009527893e7e72  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-1.c
  6ac0181abfe7483ef1b8440d5e01748d  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequd-2.c
! 3ec0807bf348f068d318d0128fc8ba13  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-1.c
  1b0d562e1bdce1d648a306f10df08d5a  gcc/testsuite/gcc.target/i386/avx512f-vpcmpnequq-2.c
! 6cadd21c392376f92701e04a47bb20c9  gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-1.c
  9e3d3a9f66d739098528a6e45d8c9b3e  gcc/testsuite/gcc.target/i386/avx512f-vpcmpq-2.c
! 9408e5fa178024a1fc320fc4ae310a05  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-1.c
  168050657750b10d1ebfeaae01fe19da  gcc/testsuite/gcc.target/i386/avx512f-vpcmpud-2.c
! 81f6be8a8d20f7a2a19aaac69d619fa8  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-1.c
  c7a149a80b76351d66c8c6d26298bece  gcc/testsuite/gcc.target/i386/avx512f-vpcmpuq-2.c
  604f26dd3cd6a40229c6c51cb663acb7  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-1.c
  60c29a1b9e21aa53fd0c293e7f092802  gcc/testsuite/gcc.target/i386/avx512f-vpcompressb-2.c
*************** b8fd0a04d5cddf24de912198ddb13b5d  gcc/te
*** 76942,76950 ****
  e91856445184c77672314c948cf06e11  gcc/testsuite/gcc.target/i386/avx512f-vrcp14sd-2.c
  1a21587fcf03abe0109559ac07f8349c  gcc/testsuite/gcc.target/i386/avx512f-vrcp14ss-1.c
  71f331da51ab04208a8df90851157200  gcc/testsuite/gcc.target/i386/avx512f-vrcp14ss-2.c
! e37e49d4cca1522d9cf91e660ec08113  gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c
  d8348cd10c65a8bcbbe9bfef756c9c0d  gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c
! 8884d87bfe764b0d3d3f408c18f4ef56  gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c
  0b30697aa9cdbd4e09c2d4ff0ccebd29  gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-2.c
  48f936c262900fac0a0565bfabb2616f  gcc/testsuite/gcc.target/i386/avx512f-vrndscalesd-1.c
  df55ca7ad521ffb1fe1216ccea7e0cd1  gcc/testsuite/gcc.target/i386/avx512f-vrndscalesd-2.c
--- 87073,87081 ----
  e91856445184c77672314c948cf06e11  gcc/testsuite/gcc.target/i386/avx512f-vrcp14sd-2.c
  1a21587fcf03abe0109559ac07f8349c  gcc/testsuite/gcc.target/i386/avx512f-vrcp14ss-1.c
  71f331da51ab04208a8df90851157200  gcc/testsuite/gcc.target/i386/avx512f-vrcp14ss-2.c
! 53747c483befd4e7445cf37c8ead4a92  gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-1.c
  d8348cd10c65a8bcbbe9bfef756c9c0d  gcc/testsuite/gcc.target/i386/avx512f-vrndscalepd-2.c
! 3e31f0e8a529a1d889ced962800aa5ca  gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-1.c
  0b30697aa9cdbd4e09c2d4ff0ccebd29  gcc/testsuite/gcc.target/i386/avx512f-vrndscaleps-2.c
  48f936c262900fac0a0565bfabb2616f  gcc/testsuite/gcc.target/i386/avx512f-vrndscalesd-1.c
  df55ca7ad521ffb1fe1216ccea7e0cd1  gcc/testsuite/gcc.target/i386/avx512f-vrndscalesd-2.c
*************** e0b4781ba3e58056c22bc6ed34bf9300  gcc/te
*** 77022,77028 ****
  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
--- 87153,87159 ----
  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
! 18609501378377c3957059d79b8d9cb7  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
*************** e79f5471eaed0e7487f965113398d268  gcc/te
*** 77053,77060 ****
  7d142a72bda1319294e9d63cc7c29ac2  gcc/testsuite/gcc.target/i386/avx512fp16-builtin-sqrt-1.c
  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
--- 87184,87191 ----
  7d142a72bda1319294e9d63cc7c29ac2  gcc/testsuite/gcc.target/i386/avx512fp16-builtin-sqrt-1.c
  b9ed1e48c2076ab8bd9adfc96519f6d4  gcc/testsuite/gcc.target/i386/avx512fp16-builtin_shuffle-1.c
  262fe61d867c3bf99c20653180a2b0e0  gcc/testsuite/gcc.target/i386/avx512fp16-complex-constraints.c
! 88adebbeb939f4406c5c0f04b0a34943  gcc/testsuite/gcc.target/i386/avx512fp16-complex-fma.c
! 907c613e36c0c6fe7fbadf4bffd07e4f  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
*************** cd26c5b9b2d79ae190b4c24e39a2ac2e  gcc/te
*** 77064,77069 ****
--- 87195,87201 ----
  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
+ c0aba89383e573771d0b9ccacbca61eb  gcc/testsuite/gcc.target/i386/avx512fp16-pr124335.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
*************** d8fdbf8479f340e4dada9fd9d4d4649a  gcc/te
*** 77080,77086 ****
  bb19b6456e461ee55adaea68e25306be  gcc/testsuite/gcc.target/i386/avx512fp16-typecast-1.c
  075feb1c6dfc181a118be15ca0b8279a  gcc/testsuite/gcc.target/i386/avx512fp16-typecast-2.c
  f3aa626e8982c538133c093073e01998  gcc/testsuite/gcc.target/i386/avx512fp16-v4hf-concat.c
! 8cae00e836f4c29d226b376aa355088e  gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c
  e51ccead2e5f0e0e02cdfe0d131376fc  gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1b.c
  3c404aa6e8ee2ac8e2ce86b07ca2d11b  gcc/testsuite/gcc.target/i386/avx512fp16-vaddsh-1a.c
  c48b75bd903c6fab4a51b670640f8def  gcc/testsuite/gcc.target/i386/avx512fp16-vaddsh-1b.c
--- 87212,87218 ----
  bb19b6456e461ee55adaea68e25306be  gcc/testsuite/gcc.target/i386/avx512fp16-typecast-1.c
  075feb1c6dfc181a118be15ca0b8279a  gcc/testsuite/gcc.target/i386/avx512fp16-typecast-2.c
  f3aa626e8982c538133c093073e01998  gcc/testsuite/gcc.target/i386/avx512fp16-v4hf-concat.c
! 2c7c3340e0b17c5b140ff3a12050f10e  gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1a.c
  e51ccead2e5f0e0e02cdfe0d131376fc  gcc/testsuite/gcc.target/i386/avx512fp16-vaddph-1b.c
  3c404aa6e8ee2ac8e2ce86b07ca2d11b  gcc/testsuite/gcc.target/i386/avx512fp16-vaddsh-1a.c
  c48b75bd903c6fab4a51b670640f8def  gcc/testsuite/gcc.target/i386/avx512fp16-vaddsh-1b.c
*************** d6de4b27839b50aa7f7235e70ba88db1  gcc/te
*** 77099,77125 ****
  d3897e3a0500cc75be7d131ecb48cec4  gcc/testsuite/gcc.target/i386/avx512fp16-vcondmn-loop-2.c
  516af3c915e00103f083826fd646a8f0  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtdq2ph-1a.c
  858a696a1e43aa6e419c664d59d904d5  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtdq2ph-1b.c
! 044b5228a853d72a5a6943bde8f6d375  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c
  d738d302b8d2099a4c50ff9b3a0897db  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1b.c
! 17b9246bb3bfc5ac74fc1e235804d15e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c
  63710fbad7391208aa8853c726a6f54e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1b.c
! 1e653fc43be65a92c0695ee281033911  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c
  17fae81c13b871ac02e8305fd7173880  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1b.c
! ba049bb7e2b62f35c17e3f271884b047  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c
  96fc57ece0b649f952e93ec2ae44aba5  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1b.c
! c853c89d65cc419305064f8494e9dbb4  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c
  cdf1e363360abd70acc5adba8973b158  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1b.c
! e0f302a3d2cd93ec8dc0594641c9c8da  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c
  294b90a63ef0ba58104e53065d64d054  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1b.c
! b0056fe75d855a568120044f78077863  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c
  76c02b4daea3ce9a9a465d9518f2a85e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1b.c
! 80ce4f1ec1e8b272482e75c58f518d33  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c
  1baa4ebd136e93322f10ce6968f5a15c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1b.c
! 51c29c6bd997ba6ee25a84403ba07b29  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c
  1e461e4939d4312cec5981ce6e372995  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1b.c
! b7c23a85cbec24b08e6ce959951b7d70  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c
  6a23e173d2e508a1767c09c8f5661ab9  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1b.c
! 6c3c5cd60ff068bdf621d6a4d90cda0e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c
  926a053321b9bf1f0cdc4ce390639eb8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1b.c
  777e752120c89cf94d80970a53f6b8a4  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsd2sh-1a.c
  3036678309bc4a21dbcf666f9758f105  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsd2sh-1b.c
--- 87231,87257 ----
  d3897e3a0500cc75be7d131ecb48cec4  gcc/testsuite/gcc.target/i386/avx512fp16-vcondmn-loop-2.c
  516af3c915e00103f083826fd646a8f0  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtdq2ph-1a.c
  858a696a1e43aa6e419c664d59d904d5  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtdq2ph-1b.c
! 59163b1386b238ef86788089b2c7c59d  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1a.c
  d738d302b8d2099a4c50ff9b3a0897db  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtpd2ph-1b.c
! 0e21d2ef2667ddb833f0bf5320ce9426  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1a.c
  63710fbad7391208aa8853c726a6f54e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2dq-1b.c
! ae50d64a3749573eeecc749f461431e2  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1a.c
  17fae81c13b871ac02e8305fd7173880  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2pd-1b.c
! 90c5ceaf4fbec81a35c3ac0d80e6b4fd  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1a.c
  96fc57ece0b649f952e93ec2ae44aba5  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2psx-1b.c
! 36ae55146f325e1dddf7c0705e7c767c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1a.c
  cdf1e363360abd70acc5adba8973b158  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2qq-1b.c
! 84a7b75e33b666d763324ba955b8a438  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1a.c
  294b90a63ef0ba58104e53065d64d054  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2udq-1b.c
! 635ada0e918eb62eff7ca3c96c677ca4  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1a.c
  76c02b4daea3ce9a9a465d9518f2a85e  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uqq-1b.c
! b02fa5a6f413d68f9765d68de7641023  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1a.c
  1baa4ebd136e93322f10ce6968f5a15c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2uw-1b.c
! dd57b24974b1f338da785919a85f0cf6  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1a.c
  1e461e4939d4312cec5981ce6e372995  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtph2w-1b.c
! c3c6d87a7e0a5270867726e5e07842e9  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1a.c
  6a23e173d2e508a1767c09c8f5661ab9  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtps2ph-1b.c
! 8579c5c85888c089f0ddfe8fa66089a2  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1a.c
  926a053321b9bf1f0cdc4ce390639eb8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtqq2ph-1b.c
  777e752120c89cf94d80970a53f6b8a4  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsd2sh-1a.c
  3036678309bc4a21dbcf666f9758f105  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsd2sh-1b.c
*************** d3461534523d4723896427a11a5b792c  gcc/te
*** 77141,77157 ****
  7c5c465dd7cb0d65f9dfd55b09a52fe1  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsi2sh64-1b.c
  1b92c9e72dffaf2d33ee368621f082c8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtss2sh-1a.c
  7d3f5161f70cfd2e6c411de91c7d61c8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtss2sh-1b.c
! ff9d7456240b818006d3a8065121464f  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c
  5b07e9e15b4605bc2dcaeb4bef0a58f1  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1b.c
! 6db746c5a1ece3a098cf0887c45682fd  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c
  6705cf69f80712a02ee984a5ce1af4d0  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1b.c
! 8abf170ae79e1e56b9d2c381bc407ca3  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c
  ec0246b141250bee48adf61342347212  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1b.c
! 981b1eec7ff1c7d10c3c5f6a97b31b73  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c
  f1c28b001d9d1a6143bc8ef91f0e4ab8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1b.c
! 2dfb9cb31e1cf69b1e004f0680558514  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c
  a0b9d8aefb40699d0fcbc6bad023e571  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1b.c
! e2f21352e0bdb253ab43600b1791832c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c
  0900c8d29804a5b9a7f025c9a3b5f34b  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1b.c
  c3176b010bb8c1e11cf63b13652157c3  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2si-1a.c
  a8ecbf52ad049c2898815b51904ee653  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2si-1b.c
--- 87273,87289 ----
  7c5c465dd7cb0d65f9dfd55b09a52fe1  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtsi2sh64-1b.c
  1b92c9e72dffaf2d33ee368621f082c8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtss2sh-1a.c
  7d3f5161f70cfd2e6c411de91c7d61c8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtss2sh-1b.c
! e8b78371b1bd9b8cd9c84091548b414a  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1a.c
  5b07e9e15b4605bc2dcaeb4bef0a58f1  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2dq-1b.c
! 8e82ff99ac6dae7afbbc984117ef7901  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1a.c
  6705cf69f80712a02ee984a5ce1af4d0  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2qq-1b.c
! b1904aaca456e92e70ea849288e9330b  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1a.c
  ec0246b141250bee48adf61342347212  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2udq-1b.c
! f85136f670cf4b688b96b73d649b456c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1a.c
  f1c28b001d9d1a6143bc8ef91f0e4ab8  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uqq-1b.c
! 6e29c72cf7a46a040f7682df506dd0bc  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1a.c
  a0b9d8aefb40699d0fcbc6bad023e571  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2uw-1b.c
! 109aed6591f93ff74d5ae00d8b275198  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1a.c
  0900c8d29804a5b9a7f025c9a3b5f34b  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttph2w-1b.c
  c3176b010bb8c1e11cf63b13652157c3  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2si-1a.c
  a8ecbf52ad049c2898815b51904ee653  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2si-1b.c
*************** f7cc8f9979f71534cd0f98a716377f01  gcc/te
*** 77163,77169 ****
  67a22d0e46956df441b87d2050b136ad  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2usi64-1b.c
  f300e5690eee8a70e26b63133e67e631  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtudq2ph-1a.c
  bf77c0756dc9d7614cd8149c27e5dd46  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtudq2ph-1b.c
! f6a95650dbd625f91ba528ec678afa2d  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c
  de66d7dafe3a5094bc177b3d6d11fcfc  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1b.c
  15cf68b71d78ad4df2914caa1d5f946c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtusi2sh-1a.c
  59b3693777bf7617cc3327be1954eedf  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtusi2sh-1b.c
--- 87295,87301 ----
  67a22d0e46956df441b87d2050b136ad  gcc/testsuite/gcc.target/i386/avx512fp16-vcvttsh2usi64-1b.c
  f300e5690eee8a70e26b63133e67e631  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtudq2ph-1a.c
  bf77c0756dc9d7614cd8149c27e5dd46  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtudq2ph-1b.c
! 6ad3d2f2bb888de9d3a3ea56dd519b82  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1a.c
  de66d7dafe3a5094bc177b3d6d11fcfc  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtuqq2ph-1b.c
  15cf68b71d78ad4df2914caa1d5f946c  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtusi2sh-1a.c
  59b3693777bf7617cc3327be1954eedf  gcc/testsuite/gcc.target/i386/avx512fp16-vcvtusi2sh-1b.c
*************** dfb6ca5d914d1eea44e47f0da8492abc  gcc/te
*** 77182,77192 ****
  93d4037e4b1bcfbff5ef4f6e0c19029f  gcc/testsuite/gcc.target/i386/avx512fp16-vector-bitwise-1a.c
  d4b57d9f3aa7074a24bc9928558d3db1  gcc/testsuite/gcc.target/i386/avx512fp16-vector-bitwise-1b.c
  3050a280871a042d43e4c6a93073186f  gcc/testsuite/gcc.target/i386/avx512fp16-vector-complex-float.c
! 0b7fa0baa231faeec79d6b7fca8f5054  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c
  7176e6cd788bb9afe553a220482b8400  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1b.c
  ab0c29d856546f3202673bc6ab6e9d2c  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcsh-1a.c
  769f5f5a3f1b35b120c8630f8bd298cc  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcsh-1b.c
! 3e22f3e83f5b2776374025d7e3c746ee  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c
  fbfe0f5b055de1170d676187d8245ee7  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1b.c
  17643cc337dbcdb21bd8d63eab0e8272  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcsh-1a.c
  183ff51271c98036b62042cac8a8bd2f  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcsh-1b.c
--- 87314,87324 ----
  93d4037e4b1bcfbff5ef4f6e0c19029f  gcc/testsuite/gcc.target/i386/avx512fp16-vector-bitwise-1a.c
  d4b57d9f3aa7074a24bc9928558d3db1  gcc/testsuite/gcc.target/i386/avx512fp16-vector-bitwise-1b.c
  3050a280871a042d43e4c6a93073186f  gcc/testsuite/gcc.target/i386/avx512fp16-vector-complex-float.c
! 2ffe68f21f04b4bd9c072177c4f7ee52  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1a.c
  7176e6cd788bb9afe553a220482b8400  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcph-1b.c
  ab0c29d856546f3202673bc6ab6e9d2c  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcsh-1a.c
  769f5f5a3f1b35b120c8630f8bd298cc  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmaddcsh-1b.c
! 93924d9458ce50274b1e2f5b021d89c7  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1a.c
  fbfe0f5b055de1170d676187d8245ee7  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcph-1b.c
  17643cc337dbcdb21bd8d63eab0e8272  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcsh-1a.c
  183ff51271c98036b62042cac8a8bd2f  gcc/testsuite/gcc.target/i386/avx512fp16-vfcmulcsh-1b.c
*************** fbfe0f5b055de1170d676187d8245ee7  gcc/te
*** 77194,77200 ****
  8598de8426ac28bdbf5f9799905b7486  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXph-1b.c
  52f6994430c8d8366f9cda5ef1845a96  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXsh-1a.c
  4a748e0516d2bfc96da9397da14a2a64  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXsh-1b.c
! 3b6225af15bd320a6dab51a119123543  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c
  1a306272d4fc868d7ecd669e50631f9e  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1b.c
  2d673752cca80967628712ee109fc09d  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcsh-1a.c
  d1e79d7908611df9a92ac7d57407f5ec  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcsh-1b.c
--- 87326,87332 ----
  8598de8426ac28bdbf5f9799905b7486  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXph-1b.c
  52f6994430c8d8366f9cda5ef1845a96  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXsh-1a.c
  4a748e0516d2bfc96da9397da14a2a64  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddXXXsh-1b.c
! ba79d672c6b4bb8c31bc564d197cceed  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1a.c
  1a306272d4fc868d7ecd669e50631f9e  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcph-1b.c
  2d673752cca80967628712ee109fc09d  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcsh-1a.c
  d1e79d7908611df9a92ac7d57407f5ec  gcc/testsuite/gcc.target/i386/avx512fp16-vfmaddcsh-1b.c
*************** e830542eb55b6ac3322fd6497f785b45  gcc/te
*** 77206,77212 ****
  3ce94584461f3832e956ef0d70837f39  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubXXXsh-1b.c
  078fafa833e4c25be7266c6cd513ad50  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubaddXXXph-1a.c
  6785a076589fe99a58b0e58468c2e00c  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubaddXXXph-1b.c
! d0a1f720b0c79273e78db5f773f3047e  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c
  6755ac53da586e48ab8f02029d94ca42  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1b.c
  c088bd1be6269b59dc9cc3bda7c0a302  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcsh-1a.c
  aa72ade853de6ca4954622f0c35d0396  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcsh-1b.c
--- 87338,87344 ----
  3ce94584461f3832e956ef0d70837f39  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubXXXsh-1b.c
  078fafa833e4c25be7266c6cd513ad50  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubaddXXXph-1a.c
  6785a076589fe99a58b0e58468c2e00c  gcc/testsuite/gcc.target/i386/avx512fp16-vfmsubaddXXXph-1b.c
! 3533d20bdc003cda2763159decabe674  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1a.c
  6755ac53da586e48ab8f02029d94ca42  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcph-1b.c
  c088bd1be6269b59dc9cc3bda7c0a302  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcsh-1a.c
  aa72ade853de6ca4954622f0c35d0396  gcc/testsuite/gcc.target/i386/avx512fp16-vfmulcsh-1b.c
*************** ea860d9a8011d5b1556db183aaf57b93  gcc/te
*** 77218,77227 ****
  baf31fdbb66bd1db60ed18831c7eb2a8  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXph-1b.c
  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
  0417db62f6b2ee90248403220b8a9b50  gcc/testsuite/gcc.target/i386/avx512fp16-vgetexpph-1b.c
--- 87350,87359 ----
  baf31fdbb66bd1db60ed18831c7eb2a8  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXph-1b.c
  9b38556b6dac137c53ce931f1f296cca  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1a.c
  c871215766439133615180b4861bbc02  gcc/testsuite/gcc.target/i386/avx512fp16-vfnmsubXXXsh-1b.c
! 20366ad54c7543d0a4a8b7ebcbe57a57  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
! 4167d41540f16ce5f357c14daab39ac7  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
  0417db62f6b2ee90248403220b8a9b50  gcc/testsuite/gcc.target/i386/avx512fp16-vgetexpph-1b.c
*************** c2b8ad6e5aa2d5ac597249334de18936  gcc/te
*** 77249,77259 ****
  dae692b0e1d837991138ec852d90c1d2  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-3b.c
  7043b6a71bec66be11e4af66b87eda03  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-4a.c
  6b1429b77a9f481ebb4c012fbb708e5c  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-4b.c
! caf040594bdc6bb64044942cbca91779  gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c
  241884b1dda90fbbc81872442f78ff2b  gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1b.c
  3ee24fc0537f9163f446b55411da155f  gcc/testsuite/gcc.target/i386/avx512fp16-vmulsh-1a.c
  d8361c88b678e85dbea8d9c132aef948  gcc/testsuite/gcc.target/i386/avx512fp16-vmulsh-1b.c
! e1c09a8a3f89395dc1e995f33c144c76  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c
  4a1e2b67404e756caf4595c860220d46  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1b.c
  43d1a14153aa8b4af6a1c68f594fb363  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpsh-1a.c
  bf03643c5dd4168e27f57d9caa97e40c  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpsh-1b.c
--- 87381,87391 ----
  dae692b0e1d837991138ec852d90c1d2  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-3b.c
  7043b6a71bec66be11e4af66b87eda03  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-4a.c
  6b1429b77a9f481ebb4c012fbb708e5c  gcc/testsuite/gcc.target/i386/avx512fp16-vmovw-4b.c
! 2b555524073808368ce9ef86e6e10e17  gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1a.c
  241884b1dda90fbbc81872442f78ff2b  gcc/testsuite/gcc.target/i386/avx512fp16-vmulph-1b.c
  3ee24fc0537f9163f446b55411da155f  gcc/testsuite/gcc.target/i386/avx512fp16-vmulsh-1a.c
  d8361c88b678e85dbea8d9c132aef948  gcc/testsuite/gcc.target/i386/avx512fp16-vmulsh-1b.c
! 57e26748e88c5cd7e1d3ebd8570c011b  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1a.c
  4a1e2b67404e756caf4595c860220d46  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpph-1b.c
  43d1a14153aa8b4af6a1c68f594fb363  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpsh-1a.c
  bf03643c5dd4168e27f57d9caa97e40c  gcc/testsuite/gcc.target/i386/avx512fp16-vrcpsh-1b.c
*************** bf03643c5dd4168e27f57d9caa97e40c  gcc/te
*** 77265,77271 ****
  6970f755e6a68b27cc588df81723848f  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscaleph-1b.c
  1dea081e32e89a263e3782d92308d42f  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscalesh-1a.c
  df4228e144329f00444801f62d705964  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscalesh-1b.c
! db5f22cc6451291ec9f1b52a992a40b8  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c
  c03a6fd4dae639987f2f4fd9293201c1  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1b.c
  6bbcebe17b0358483254a9deef8746b9  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1a.c
  e22965ad7f8ae66186f596cb545534c5  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1b.c
--- 87397,87403 ----
  6970f755e6a68b27cc588df81723848f  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscaleph-1b.c
  1dea081e32e89a263e3782d92308d42f  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscalesh-1a.c
  df4228e144329f00444801f62d705964  gcc/testsuite/gcc.target/i386/avx512fp16-vrndscalesh-1b.c
! 1e2156397cb7bdacb186b328746c0aa5  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1a.c
  c03a6fd4dae639987f2f4fd9293201c1  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtph-1b.c
  6bbcebe17b0358483254a9deef8746b9  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1a.c
  e22965ad7f8ae66186f596cb545534c5  gcc/testsuite/gcc.target/i386/avx512fp16-vrsqrtsh-1b.c
*************** e22965ad7f8ae66186f596cb545534c5  gcc/te
*** 77273,77279 ****
  7d0e35d69ba82cec1eeb05dc952ecd82  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1b.c
  245119bf0a8838235d99ccded98653b8  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1a.c
  893f3813fb89f59b802c9104f2599e8c  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1b.c
! abec174f2ad4aeb106fa898023f0c25d  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c
  286c719055a41b2de9a89a1e50237a73  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1b.c
  7f0e430fe76b4b9471d4b08faf16cd46  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtsh-1a.c
  eea70f7ec894dc0734720f1168d66a60  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtsh-1b.c
--- 87405,87411 ----
  7d0e35d69ba82cec1eeb05dc952ecd82  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefph-1b.c
  245119bf0a8838235d99ccded98653b8  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1a.c
  893f3813fb89f59b802c9104f2599e8c  gcc/testsuite/gcc.target/i386/avx512fp16-vscalefsh-1b.c
! 8d8a36e81bf7908f8f5b41c8d5a3f77b  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1a.c
  286c719055a41b2de9a89a1e50237a73  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtph-1b.c
  7f0e430fe76b4b9471d4b08faf16cd46  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtsh-1a.c
  eea70f7ec894dc0734720f1168d66a60  gcc/testsuite/gcc.target/i386/avx512fp16-vsqrtsh-1b.c
*************** a2e2af8ff03c5796d335ffb9b6d5cc1c  gcc/te
*** 77281,77290 ****
  d3064bc8e32fbd4b222b12baf22ca2f0  gcc/testsuite/gcc.target/i386/avx512fp16-vsubph-1b.c
  3ceefff146ab36e49f465a71bb91897a  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1a.c
  a1f4b75339c19727d3758c22b23b84a4  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1b.c
! 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
--- 87413,87422 ----
  d3064bc8e32fbd4b222b12baf22ca2f0  gcc/testsuite/gcc.target/i386/avx512fp16-vsubph-1b.c
  3ceefff146ab36e49f465a71bb91897a  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1a.c
  a1f4b75339c19727d3758c22b23b84a4  gcc/testsuite/gcc.target/i386/avx512fp16-vsubsh-1b.c
! 138cb068fbcd58bbcd96b9dfb34da3af  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
! a047d78dfdd4df74e0489ca1aa22d951  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
*************** d22f16d05588a4dd223b55a41aab4cbd  gcc/te
*** 77295,77343 ****
  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
! 668e017a3e6b9bff2a578d15fedc9030  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c
  2574a54024be5d6ef518e2bae25cd6f6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1b.c
  47c7f79bcaeb11267d2a809293d9ae93  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1a.c
  e548c5f165233a6b0f52bddfd00b604f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1b.c
  78ad59fb4291984c765815bac8d15b10  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1a.c
  7eda7b75b02475ecbb3bf828b4513c00  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1b.c
! fd67ae5beec610a3518bdd0c9a4212d1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c
  c51fc319163db9850e50b2ff767b1449  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1b.c
! 384dc5d09ca0b0a5e0ffa26660f0731c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c
  4bc563fd9fd760397f3b6cb9403c7d94  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1b.c
  89a1295ec1248ce7907c7cd349363ea6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2pd-1a.c
  54b82109d1b758809669c9c001109738  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2pd-1b.c
! 75e6fa7d77f0dcbbbade9245e6f55603  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c
  9cd301a4712fb86b9f581e94b4e71769  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1b.c
! b0cdc454ecd13953d35fb609837e5cd7  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c
  66015b922981ef8f2b16a4a41c533d9f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1b.c
! 8188707b3e279fbd54dceda89548a016  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c
  db7598788dae76f78020c785009721c3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1b.c
! caee8c232f489232793fdd47973dc69f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c
  d0087d75beb636dc4ec7112b39ba21b5  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1b.c
! 8b86e2aa730e06d2d86d76b97f32971f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c
  b7f54d63aa3eda2a3826307367d8ab78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1b.c
! a84fd08e7947e929005dfa30d7e6717e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c
  4818a70d8bce5721d79026659532d901  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1b.c
! 6ddb98e826509d0cdb9f9b9e14e97343  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c
  51326d2ae9d80f0e96dfe27a549d0a53  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1b.c
! c5e861c073b31db31447a512e34a8026  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c
  0e22e2def8bf797a1f8ea124a117ab29  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1b.c
! 74e018dcc2ab8593f1d3e979fc862f8d  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c
  f61a3cb3ecc48e639fa2d08a1bac4171  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1b.c
  524f0c14e50098060aa74b78f6f2e6bd  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2qq-1a.c
  101c2c792d6f8135697f455d6bc440ea  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2qq-1b.c
! acb6a3fda5187e8c8a55df89ca4cccc6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c
  918d141cd128e05bd5cbcd4fd86875e5  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1b.c
  18867b5683bb205fdbfd85cad94f343c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uqq-1a.c
  6258ab08947763f721c03de622dd0350  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uqq-1b.c
! 92a79c6248f15e5f308c8a527bff54df  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c
  0b10bb8dd7ba8c0c09ee68befdfc846d  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1b.c
! 17de217c1d369e872a49099e5cf05bca  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c
  5b59071f5475bd6fab2593a27e43382b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1b.c
  dbd04e3756dfea50a6f561e08e7b3f4a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtudq2ph-1a.c
  dffc6dba60c0fae2dc5ffef7d6730bbc  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtudq2ph-1b.c
! 76e0cfcc126a26f8071fa9c7bc593864  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c
  996e891bfa25db9be49bd068bf43c87e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1b.c
  1afc681e8b1e961b1d39eb12a28d505a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuw2ph-1a.c
  ce915f9aa41b8c0ad0d5bfd50d48dce2  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuw2ph-1b.c
--- 87427,87475 ----
  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
! 2e5cd0c27412f7b146c1662ded94efa8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1a.c
  2574a54024be5d6ef518e2bae25cd6f6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vaddph-1b.c
  47c7f79bcaeb11267d2a809293d9ae93  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1a.c
  e548c5f165233a6b0f52bddfd00b604f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcmpph-1b.c
  78ad59fb4291984c765815bac8d15b10  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1a.c
  7eda7b75b02475ecbb3bf828b4513c00  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtdq2ph-1b.c
! a2f55cc3a85ac9378ee1e7a520575146  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1a.c
  c51fc319163db9850e50b2ff767b1449  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtpd2ph-1b.c
! ff9216a1397c173f3d672d2ca6b40a6a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1a.c
  4bc563fd9fd760397f3b6cb9403c7d94  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2dq-1b.c
  89a1295ec1248ce7907c7cd349363ea6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2pd-1a.c
  54b82109d1b758809669c9c001109738  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2pd-1b.c
! 78cfd2b6e3ff1c5bc2672d8a7fb3a1fd  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1a.c
  9cd301a4712fb86b9f581e94b4e71769  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2psx-1b.c
! 298b9145a99b82ad5c33ebc97a92dc2a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1a.c
  66015b922981ef8f2b16a4a41c533d9f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2qq-1b.c
! efb6db14651604eb403ddb834a453d3e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1a.c
  db7598788dae76f78020c785009721c3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2udq-1b.c
! 2d7448d9e0e8059fb6f0079c6bedd66e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1a.c
  d0087d75beb636dc4ec7112b39ba21b5  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uqq-1b.c
! 560763f1c5845cf684835283c4bd5052  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1a.c
  b7f54d63aa3eda2a3826307367d8ab78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2uw-1b.c
! b326f4507009b4b386480591ab3e6725  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1a.c
  4818a70d8bce5721d79026659532d901  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtph2w-1b.c
! a1eb3791b5ccc97ae5c1217ceca56f1f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1a.c
  51326d2ae9d80f0e96dfe27a549d0a53  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtps2ph-1b.c
! ab4abbbb727af892608f4ad5eef73efc  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1a.c
  0e22e2def8bf797a1f8ea124a117ab29  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtqq2ph-1b.c
! 370687a6c1f239d60f51193fecc3ccca  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1a.c
  f61a3cb3ecc48e639fa2d08a1bac4171  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2dq-1b.c
  524f0c14e50098060aa74b78f6f2e6bd  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2qq-1a.c
  101c2c792d6f8135697f455d6bc440ea  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2qq-1b.c
! 1d9f9443c556bd234aa490063e1bf4cd  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1a.c
  918d141cd128e05bd5cbcd4fd86875e5  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2udq-1b.c
  18867b5683bb205fdbfd85cad94f343c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uqq-1a.c
  6258ab08947763f721c03de622dd0350  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uqq-1b.c
! 5ae7c4ab2afbde9de833a49e5992cf42  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1a.c
  0b10bb8dd7ba8c0c09ee68befdfc846d  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2uw-1b.c
! bb46b40a53f277d4aee72f94cc0bc5e6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1a.c
  5b59071f5475bd6fab2593a27e43382b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvttph2w-1b.c
  dbd04e3756dfea50a6f561e08e7b3f4a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtudq2ph-1a.c
  dffc6dba60c0fae2dc5ffef7d6730bbc  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtudq2ph-1b.c
! 38160f776f6c6f303ce1ba8de0c2b913  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1a.c
  996e891bfa25db9be49bd068bf43c87e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuqq2ph-1b.c
  1afc681e8b1e961b1d39eb12a28d505a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuw2ph-1a.c
  ce915f9aa41b8c0ad0d5bfd50d48dce2  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtuw2ph-1b.c
*************** eefc96e7b40bd13cadc405b15f10ad07  gcc/te
*** 77345,77357 ****
  9ef10cbc9797265ae13dbae561ad1676  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1b.c
  fff2a9cfd16fc5853b1107b9fbb4527c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1a.c
  936e00e626512e1c797d60b896fb10ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1b.c
! 0746bbc58449a87d9711475b0ef6a0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c
  3a1da4c9373179778309ff3b777580a3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1b.c
! 1b2109245a774f87cb04912a57232f71  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c
  71064dd7fa29fe1871e7b3f57e0bb9df  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1b.c
  0cfd72100648de4a848e438643d518d7  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddXXXph-1a.c
  7c9286eebe289ec3ec465759be5f1200  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddXXXph-1b.c
! 3a8f9ea4e5dd1084a63e35b1a5702220  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c
  13bc91b70f04f0183bb4009774c46679  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1b.c
  b55c044547754292b9c4604f3b8be15c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1a.c
  b22adf2c3a3abab18f4e9e1724077d69  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1b.c
--- 87477,87489 ----
  9ef10cbc9797265ae13dbae561ad1676  gcc/testsuite/gcc.target/i386/avx512fp16vl-vcvtw2ph-1b.c
  fff2a9cfd16fc5853b1107b9fbb4527c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1a.c
  936e00e626512e1c797d60b896fb10ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vdivph-1b.c
! 1a61afb577420205a38b37028d2e1034  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1a.c
  3a1da4c9373179778309ff3b777580a3  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmaddcph-1b.c
! d4fb390c8a027d0ada24862d464db520  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1a.c
  71064dd7fa29fe1871e7b3f57e0bb9df  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfcmulcph-1b.c
  0cfd72100648de4a848e438643d518d7  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddXXXph-1a.c
  7c9286eebe289ec3ec465759be5f1200  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddXXXph-1b.c
! a9833a5891ffe7460c9e101bd10869dd  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1a.c
  13bc91b70f04f0183bb4009774c46679  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddcph-1b.c
  b55c044547754292b9c4604f3b8be15c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1a.c
  b22adf2c3a3abab18f4e9e1724077d69  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmaddsubXXXph-1b.c
*************** f744d8527e03baa047d4955ab72ebdcf  gcc/te
*** 77359,77371 ****
  46eee71ea9496d64338eef0411fd23c1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubXXXph-1b.c
  65f17a4591f6c611466c4c39b45186b9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1a.c
  efbed2b76f297f283a4e744a943eb080  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1b.c
! 32cd690a50f6de2fdda27dfa10f617a6  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c
  6b4f528f59b6634179db1191164c630c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1b.c
  12ab6867a0b80213d0f7006370d96dce  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1a.c
  8a2fd5dd39eba6562561d91702b6147a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1b.c
  814bc54a52a34da228a1b13605fc56f0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1a.c
  595b5846335c3c0a86b8db17e0f60f78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1b.c
! 1749cfb3b31eedd0e0f4abe9aff2cb6f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c
  33c3e06fb0746731f8072b54c08551fa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1b.c
  ef47275bb5b5e9cd3b674c4c46801a5f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1a.c
  0bae68e74ad4f94f4ad5adf1402f8418  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1b.c
--- 87491,87503 ----
  46eee71ea9496d64338eef0411fd23c1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubXXXph-1b.c
  65f17a4591f6c611466c4c39b45186b9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1a.c
  efbed2b76f297f283a4e744a943eb080  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmsubaddXXXph-1b.c
! 2ba05fe7662e7cabf4986f77ea60990e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1a.c
  6b4f528f59b6634179db1191164c630c  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfmulcph-1b.c
  12ab6867a0b80213d0f7006370d96dce  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1a.c
  8a2fd5dd39eba6562561d91702b6147a  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmaddXXXph-1b.c
  814bc54a52a34da228a1b13605fc56f0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1a.c
  595b5846335c3c0a86b8db17e0f60f78  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfnmsubXXXph-1b.c
! d66908de56cc3befeac3c099c33342b7  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1a.c
  33c3e06fb0746731f8072b54c08551fa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vfpclassph-1b.c
  ef47275bb5b5e9cd3b674c4c46801a5f  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1a.c
  0bae68e74ad4f94f4ad5adf1402f8418  gcc/testsuite/gcc.target/i386/avx512fp16vl-vgetexpph-1b.c
*************** edab8b1a84af22b7e06cc8a03d449cdf  gcc/te
*** 77375,77393 ****
  144d71f745f870de3bed2f56253f5def  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1b.c
  c508fa63b82d7e8485231005e838faab  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1a.c
  2ac14e17c7d8bea08c38524d9ce767de  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1b.c
! 553e723ff2415a9cdbc699fa31c7538e  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c
  c23f725b208d00b2a17b0eeff0f4e4e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1b.c
! ff4516d71292cd5af79c95c27649973b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c
  73ea27999df3c8f3b4d3df583b0e4d8b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1b.c
  a19dadf2648d4aba0db44a3a6bc14483  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1a.c
  874335942c5b3e9038faae6a630c32b8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1b.c
  8bc4593197ca60bcd96f53f036241ec9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1a.c
  c4e22178ec6623c8299ad06eb75c68b0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1b.c
! d9a2c270bf8fe66405b8f9c8501ad830  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c
  a9b4f598a9d799ddfa6d58ecaa25e0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1b.c
  6d023fb1acf67f582c34ee1446e9fb84  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1a.c
  a593f4f9d8ba870b0eed0981c3824f3b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1b.c
! 7e73fe2e2df29207a028d2954f7ea930  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c
  f79eb1ae00681f2da24450b180fb9d92  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1b.c
  09bb88db303e43f561ea2094ee199daa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1a.c
  c02bc805f1179c259ec57d0a754f44e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1b.c
--- 87507,87525 ----
  144d71f745f870de3bed2f56253f5def  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmaxph-1b.c
  c508fa63b82d7e8485231005e838faab  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1a.c
  2ac14e17c7d8bea08c38524d9ce767de  gcc/testsuite/gcc.target/i386/avx512fp16vl-vminph-1b.c
! 85badc636b85d4e116170ca01f596b4b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1a.c
  c23f725b208d00b2a17b0eeff0f4e4e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vmulph-1b.c
! 106f118290f7851842969834fb617807  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1a.c
  73ea27999df3c8f3b4d3df583b0e4d8b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrcpph-1b.c
  a19dadf2648d4aba0db44a3a6bc14483  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1a.c
  874335942c5b3e9038faae6a630c32b8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vreduceph-1b.c
  8bc4593197ca60bcd96f53f036241ec9  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1a.c
  c4e22178ec6623c8299ad06eb75c68b0  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrndscaleph-1b.c
! b71306fe6cefca4e0e68733fa9c589d8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1a.c
  a9b4f598a9d799ddfa6d58ecaa25e0ae  gcc/testsuite/gcc.target/i386/avx512fp16vl-vrsqrtph-1b.c
  6d023fb1acf67f582c34ee1446e9fb84  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1a.c
  a593f4f9d8ba870b0eed0981c3824f3b  gcc/testsuite/gcc.target/i386/avx512fp16vl-vscalefph-1b.c
! 08694ee827ba6c2bb4b20882e2f046b8  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1a.c
  f79eb1ae00681f2da24450b180fb9d92  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsqrtph-1b.c
  09bb88db303e43f561ea2094ee199daa  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1a.c
  c02bc805f1179c259ec57d0a754f44e1  gcc/testsuite/gcc.target/i386/avx512fp16vl-vsubph-1b.c
*************** ae1ccb7e2041f3482999d81701ee97ed  gcc/te
*** 77398,77404 ****
  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
--- 87530,87536 ----
  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
! 1db5e42f29e831ea8506ba844a1a040c  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
*************** c0ef55ca688d812ce21255d44fb1a7d9  gcc/te
*** 77477,77491 ****
  c1fc8c403bea321e9edbec8f46fe2fd8  gcc/testsuite/gcc.target/i386/avx512vl-or-si-ymm-1.c
  5eaf41121795442d2f0736d687d1f1e5  gcc/testsuite/gcc.target/i386/avx512vl-pack-1.c
  994c768ea6f011cb5852de30a104bd2e  gcc/testsuite/gcc.target/i386/avx512vl-pack-2.c
! 6d27b8ca57a36d88c859330ff725fb7e  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c
  26d1511d7f94a147fff46e5c7b585b00  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-pd-2.c
  677f7e556dddad5fe5ca2d37be1cdfa4  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-ps-2.c
  283b4877d58ced6f0c220db178d854a5  gcc/testsuite/gcc.target/i386/avx512vl-pr100648.c
  94073157c7c18d465b0898342cfaf127  gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c
  283543f4907a911dc1da7cea2581ece6  gcc/testsuite/gcc.target/i386/avx512vl-pr106721.c
  1156c3947fee64640053c33ec3a1d627  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-1.c
  de717f1cf1bd87731a52727c854e17f3  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-2.c
  ff7d4b178317336c918bd3d476aa77a8  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-3.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
  7cff0350d919ed5edc42e841b11e38f2  gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c
--- 87609,87626 ----
  c1fc8c403bea321e9edbec8f46fe2fd8  gcc/testsuite/gcc.target/i386/avx512vl-or-si-ymm-1.c
  5eaf41121795442d2f0736d687d1f1e5  gcc/testsuite/gcc.target/i386/avx512vl-pack-1.c
  994c768ea6f011cb5852de30a104bd2e  gcc/testsuite/gcc.target/i386/avx512vl-pack-2.c
! b797edd22d4e7e81caca22f64d06f39d  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-1.c
  26d1511d7f94a147fff46e5c7b585b00  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-pd-2.c
  677f7e556dddad5fe5ca2d37be1cdfa4  gcc/testsuite/gcc.target/i386/avx512vl-pr100267-ps-2.c
  283b4877d58ced6f0c220db178d854a5  gcc/testsuite/gcc.target/i386/avx512vl-pr100648.c
  94073157c7c18d465b0898342cfaf127  gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c
+ 49cfe28a332e1719c1056e2074f41051  gcc/testsuite/gcc.target/i386/avx512vl-pr103750-1.c
+ 4e8a8e7fc8841ea09a2ef875178e3364  gcc/testsuite/gcc.target/i386/avx512vl-pr103750-2.c
  283543f4907a911dc1da7cea2581ece6  gcc/testsuite/gcc.target/i386/avx512vl-pr106721.c
  1156c3947fee64640053c33ec3a1d627  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-1.c
  de717f1cf1bd87731a52727c854e17f3  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-2.c
  ff7d4b178317336c918bd3d476aa77a8  gcc/testsuite/gcc.target/i386/avx512vl-pr112435-3.c
+ f66d7d39f6629aaa01b835c3db736017  gcc/testsuite/gcc.target/i386/avx512vl-pr124367.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
  7cff0350d919ed5edc42e841b11e38f2  gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c
*************** f21047fbfa17b906e640bc6515007b2a  gcc/te
*** 77567,77575 ****
  e4ddbd71ef2d7d5216ca7ad71fd2bdc9  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastsd-2.c
  58e3f49191aeb6bcb14c2d8fbb43155d  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastss-1.c
  48a2387331a39c577c1361244a782eb5  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastss-2.c
! 16d37fc43772d94b224bd20b0b8c3584  gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c
  521483bf2df07219c380bcef5d423c53  gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-2.c
! 78b8edf051124f353a00274a9fb1ac5d  gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c
  d71a8de92a0b35053aef0e0bd3e44f3e  gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-2.c
  a73dcafcd0e78eb661d1280e63a1ff15  gcc/testsuite/gcc.target/i386/avx512vl-vcompresspd-1.c
  5e54bd8c83b864b7de36a1cd7cff6844  gcc/testsuite/gcc.target/i386/avx512vl-vcompresspd-2.c
--- 87702,87710 ----
  e4ddbd71ef2d7d5216ca7ad71fd2bdc9  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastsd-2.c
  58e3f49191aeb6bcb14c2d8fbb43155d  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastss-1.c
  48a2387331a39c577c1361244a782eb5  gcc/testsuite/gcc.target/i386/avx512vl-vbroadcastss-2.c
! 503fade0e869ebeb84d90df1b3cbcc45  gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-1.c
  521483bf2df07219c380bcef5d423c53  gcc/testsuite/gcc.target/i386/avx512vl-vcmppd-2.c
! d6028996b4e31a365ca27203ab86f4e9  gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-1.c
  d71a8de92a0b35053aef0e0bd3e44f3e  gcc/testsuite/gcc.target/i386/avx512vl-vcmpps-2.c
  a73dcafcd0e78eb661d1280e63a1ff15  gcc/testsuite/gcc.target/i386/avx512vl-vcompresspd-1.c
  5e54bd8c83b864b7de36a1cd7cff6844  gcc/testsuite/gcc.target/i386/avx512vl-vcompresspd-2.c
*************** a73dcafcd0e78eb661d1280e63a1ff15  gcc/te
*** 77581,77590 ****
  6dd6969e7a61221a3a0de4cd582ead9f  gcc/testsuite/gcc.target/i386/avx512vl-vcvtdq2ps-2.c
  733fff5dc1727f74c9dcb9847d217591  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2dq-1.c
  d7ea6edadf48104bfaaea869ee64c034  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2dq-2.c
! 152d8645459a4e64ede54d73094fe629  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c
  480cf88b17091acad80e8e0a94b8c9e5  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-2.c
  fee5bd9160a6da64b7f1104bb5a4fa02  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2qq-2.c
! ddb0b188eff1e6242b903d8dcb3e195f  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c
  54474921804a78f3d098583afc61d955  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-2.c
  7a5b733e8fb17f83c4659efb4a7aa3af  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2uqq-2.c
  51990c0b10eca0e58aa6a97395c1811b  gcc/testsuite/gcc.target/i386/avx512vl-vcvtph2ps-1.c
--- 87716,87725 ----
  6dd6969e7a61221a3a0de4cd582ead9f  gcc/testsuite/gcc.target/i386/avx512vl-vcvtdq2ps-2.c
  733fff5dc1727f74c9dcb9847d217591  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2dq-1.c
  d7ea6edadf48104bfaaea869ee64c034  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2dq-2.c
! ef5bebef330ffe0fdbe92f5695de97be  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-1.c
  480cf88b17091acad80e8e0a94b8c9e5  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2ps-2.c
  fee5bd9160a6da64b7f1104bb5a4fa02  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2qq-2.c
! f7ed5a4c4dd149461ca8abc4edabb723  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-1.c
  54474921804a78f3d098583afc61d955  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2udq-2.c
  7a5b733e8fb17f83c4659efb4a7aa3af  gcc/testsuite/gcc.target/i386/avx512vl-vcvtpd2uqq-2.c
  51990c0b10eca0e58aa6a97395c1811b  gcc/testsuite/gcc.target/i386/avx512vl-vcvtph2ps-1.c
*************** cddd4301ee7f38cba741ce20a0b67206  gcc/te
*** 77606,77618 ****
  b18a465eac56600c74cacf37c52960e8  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2dq-1.c
  7e52e2f2f551cfb91e36ee8e3372dde7  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2dq-2.c
  2e942c2c9972ea46c7f1cf59be40cba2  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2qq-2.c
! e2ba82ea0c2f576073f1c3715c01902c  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c
  c75c7b5968ff11e695db113d87b19b17  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-2.c
  dd801b7954765a286c666526d24b9229  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2uqq-2.c
  f06b223de725e3834246e3035ffe4e2f  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2dq-1.c
  5133e03e756a40380b8ea8e8a58ae844  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2dq-2.c
  15d607af0a6203bd3b7426469273dd82  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2qq-2.c
! 74c8737f85711880e5c65b0a034611d4  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c
  4df11cff6205628359700d442552f66b  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-2.c
  67bbb5ee8fe8ef93de3f7f2e2d339da8  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2uqq-2.c
  350cab8da17033c16c85e93486300ac6  gcc/testsuite/gcc.target/i386/avx512vl-vcvtudq2pd-1.c
--- 87741,87753 ----
  b18a465eac56600c74cacf37c52960e8  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2dq-1.c
  7e52e2f2f551cfb91e36ee8e3372dde7  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2dq-2.c
  2e942c2c9972ea46c7f1cf59be40cba2  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2qq-2.c
! 6e24c40208037211dccfeb54a3ef1eab  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-1.c
  c75c7b5968ff11e695db113d87b19b17  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2udq-2.c
  dd801b7954765a286c666526d24b9229  gcc/testsuite/gcc.target/i386/avx512vl-vcvttpd2uqq-2.c
  f06b223de725e3834246e3035ffe4e2f  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2dq-1.c
  5133e03e756a40380b8ea8e8a58ae844  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2dq-2.c
  15d607af0a6203bd3b7426469273dd82  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2qq-2.c
! e499b5f12e8ecffa5ad142907a2ee2b7  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-1.c
  4df11cff6205628359700d442552f66b  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2udq-2.c
  67bbb5ee8fe8ef93de3f7f2e2d339da8  gcc/testsuite/gcc.target/i386/avx512vl-vcvttps2uqq-2.c
  350cab8da17033c16c85e93486300ac6  gcc/testsuite/gcc.target/i386/avx512vl-vcvtudq2pd-1.c
*************** bc593febb93d58f8369137d8eddc8d88  gcc/te
*** 77631,77637 ****
  8caa2c813166460feffee1f4e9897cdd  gcc/testsuite/gcc.target/i386/avx512vl-vexpandpd-2.c
  f7bcfedeb21945e06c855231aa062858  gcc/testsuite/gcc.target/i386/avx512vl-vexpandps-1.c
  dbc06e067bb58225023ebcfac4b2b65e  gcc/testsuite/gcc.target/i386/avx512vl-vexpandps-2.c
! 3274a948e82b1eb7b3ab52fe4396b3f5  gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c
  09c6d63d63fa075a8262998229c87ab8  gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-2.c
  0045ebf4b624d6c182825d2537dac378  gcc/testsuite/gcc.target/i386/avx512vl-vextractf64x2-2.c
  e8ea698a6673fd34677b4480aa03168b  gcc/testsuite/gcc.target/i386/avx512vl-vextracti32x4-1.c
--- 87766,87772 ----
  8caa2c813166460feffee1f4e9897cdd  gcc/testsuite/gcc.target/i386/avx512vl-vexpandpd-2.c
  f7bcfedeb21945e06c855231aa062858  gcc/testsuite/gcc.target/i386/avx512vl-vexpandps-1.c
  dbc06e067bb58225023ebcfac4b2b65e  gcc/testsuite/gcc.target/i386/avx512vl-vexpandps-2.c
! a1c61e14029114356b5f309e2928365e  gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-1.c
  09c6d63d63fa075a8262998229c87ab8  gcc/testsuite/gcc.target/i386/avx512vl-vextractf32x4-2.c
  0045ebf4b624d6c182825d2537dac378  gcc/testsuite/gcc.target/i386/avx512vl-vextractf64x2-2.c
  e8ea698a6673fd34677b4480aa03168b  gcc/testsuite/gcc.target/i386/avx512vl-vextracti32x4-1.c
*************** bbf5d335cde2813c4a5a8ad9af1fbb3b  gcc/te
*** 77677,77683 ****
  52f39be84b7c7706e1b15c6e2b4952b4  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantpd-2.c
  405bb47c14cb768ccaf025b0f593c168  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantps-1.c
  01c6359460f1b25ce41c065dc8cb796f  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantps-2.c
! 001eae36b3b6503f930afc24369a6326  gcc/testsuite/gcc.target/i386/avx512vl-vinsert-1.c
  1b24059ae5c96b8e485bbebaab9fc500  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf32x4-1.c
  f5cb77ce98010772ed858dca8bb5fcfd  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf32x4-2.c
  46f449615ccf131bf6fb64fcfefcfb00  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf64x2-2.c
--- 87812,87818 ----
  52f39be84b7c7706e1b15c6e2b4952b4  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantpd-2.c
  405bb47c14cb768ccaf025b0f593c168  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantps-1.c
  01c6359460f1b25ce41c065dc8cb796f  gcc/testsuite/gcc.target/i386/avx512vl-vgetmantps-2.c
! 679370333921f0bad97a3743646c2fae  gcc/testsuite/gcc.target/i386/avx512vl-vinsert-1.c
  1b24059ae5c96b8e485bbebaab9fc500  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf32x4-1.c
  f5cb77ce98010772ed858dca8bb5fcfd  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf32x4-2.c
  46f449615ccf131bf6fb64fcfefcfb00  gcc/testsuite/gcc.target/i386/avx512vl-vinsertf64x2-2.c
*************** b6af513d22fb518acdb7e44e6a3202a2  gcc/te
*** 77694,77708 ****
  1b73dee3283c348d0af4a95337b9ca67  gcc/testsuite/gcc.target/i386/avx512vl-vminpd-2.c
  561cbfc3cacacd033cecdb80bf9fe62b  gcc/testsuite/gcc.target/i386/avx512vl-vminps-1.c
  7cdfbbe34eea82ac0c11e64772bffa96  gcc/testsuite/gcc.target/i386/avx512vl-vminps-2.c
! 9717ed0f7b626f9fbc3c1f2e3118405d  gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c
  bd652ca671d905542642f7043c128890  gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-2.c
! b592affd9524490683f039e2abeddc73  gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c
  90794c8663f5935d70ead7256db55f40  gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-2.c
  88d84a2674ad919f33a60e692d969db8  gcc/testsuite/gcc.target/i386/avx512vl-vmovddup-1.c
  b7a7eb992180804faecbf94a91fbbdf0  gcc/testsuite/gcc.target/i386/avx512vl-vmovddup-2.c
  dd6ca08f30e6fe74cfa6b6391d255ff7  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa32-1.c
  056deee40089caf20195f78d8cf9b26b  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa32-2.c
! 91516f1c7934dd1608e8876c1aa72f60  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c
  559a8fb17d2c67c0dbc28efc30d1f36e  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-2.c
  be52bf7ed3992b7c5bd6ff1d5f444dd6  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c
  45b8b31faa417a25330dd6ae632d5fdd  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-1.c
--- 87829,87843 ----
  1b73dee3283c348d0af4a95337b9ca67  gcc/testsuite/gcc.target/i386/avx512vl-vminpd-2.c
  561cbfc3cacacd033cecdb80bf9fe62b  gcc/testsuite/gcc.target/i386/avx512vl-vminps-1.c
  7cdfbbe34eea82ac0c11e64772bffa96  gcc/testsuite/gcc.target/i386/avx512vl-vminps-2.c
! 68e6678d22106796c0bb0d25e35dcaa0  gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-1.c
  bd652ca671d905542642f7043c128890  gcc/testsuite/gcc.target/i386/avx512vl-vmovapd-2.c
! b90e606c00edd81e97703a7868a8aa3d  gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-1.c
  90794c8663f5935d70ead7256db55f40  gcc/testsuite/gcc.target/i386/avx512vl-vmovaps-2.c
  88d84a2674ad919f33a60e692d969db8  gcc/testsuite/gcc.target/i386/avx512vl-vmovddup-1.c
  b7a7eb992180804faecbf94a91fbbdf0  gcc/testsuite/gcc.target/i386/avx512vl-vmovddup-2.c
  dd6ca08f30e6fe74cfa6b6391d255ff7  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa32-1.c
  056deee40089caf20195f78d8cf9b26b  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa32-2.c
! b44a9d035467a8e95e20b721508e94d0  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-1.c
  559a8fb17d2c67c0dbc28efc30d1f36e  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqa64-2.c
  be52bf7ed3992b7c5bd6ff1d5f444dd6  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu16-2.c
  45b8b31faa417a25330dd6ae632d5fdd  gcc/testsuite/gcc.target/i386/avx512vl-vmovdqu32-1.c
*************** ab3a898bef808da0e2077523142e653c  gcc/te
*** 77752,77758 ****
  f2229aac2fd4705b15642fbb038c1cf1  gcc/testsuite/gcc.target/i386/avx512vl-vpaddw-2.c
  6f550c16862cd1f08cb6e9bde3f061d7  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-2.c
  f01e51af9b92f0458f9f655ec0aea54d  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-3.c
! b691a111b99e5450681727e8c7759bde  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-4.c
  4fed29f1f6572514acff14e5a5c0a94f  gcc/testsuite/gcc.target/i386/avx512vl-vpandd-1.c
  4b6687035c332ea06b0f7736d1ad374b  gcc/testsuite/gcc.target/i386/avx512vl-vpandd-2.c
  2f0c181096ab851fa9d2fa49bcb20f50  gcc/testsuite/gcc.target/i386/avx512vl-vpandnd-1.c
--- 87887,87893 ----
  f2229aac2fd4705b15642fbb038c1cf1  gcc/testsuite/gcc.target/i386/avx512vl-vpaddw-2.c
  6f550c16862cd1f08cb6e9bde3f061d7  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-2.c
  f01e51af9b92f0458f9f655ec0aea54d  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-3.c
! c112e852ea16b84f07177aaab85b16a1  gcc/testsuite/gcc.target/i386/avx512vl-vpalignr-4.c
  4fed29f1f6572514acff14e5a5c0a94f  gcc/testsuite/gcc.target/i386/avx512vl-vpandd-1.c
  4b6687035c332ea06b0f7736d1ad374b  gcc/testsuite/gcc.target/i386/avx512vl-vpandd-2.c
  2f0c181096ab851fa9d2fa49bcb20f50  gcc/testsuite/gcc.target/i386/avx512vl-vpandnd-1.c
*************** f7dc4ecda884ea919f5f5e92f42a2423  gcc/te
*** 77782,77867 ****
  0a6110618dbaf708dc79f526123252e6  gcc/testsuite/gcc.target/i386/avx512vl-vpbroadcastw-2.c
  cd857c56f1a6f4a6714e145144145e41  gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c
  26d001984e4d8897c20587e5d666400b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpb-2.c
! 0330c591ce0afdf87a34311e1ba7be93  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c
  0bc34b4a04332da118d323d0c85c1e02  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-2.c
  61e2f702b60e5952a8b040117acfa2dc  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqb-2.c
  ccb846b28442adff8cddf40e762fc170  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-1.c
  30282bfbce0d80a1c6236203901a82b0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-2.c
! 7336e9978d33721a01aa6636a28803be  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c
  8e5dc0632852f73edd4b7c87c3ec1ffe  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-2.c
  34b199460d019bcceb635c7293b2d409  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequb-2.c
  1a6954454700b04bc8aeca6a560a5304  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-1.c
  f0a2df8cddbc2f20daee55cb96297234  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-2.c
! 7569fe5ed67a0b3a87cbf6bd8d8f20d8  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c
  03e7c4974a7878b178447c16ccb6dd76  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-2.c
  7f137851a2723e3b5c577cac2fc00b60  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequw-2.c
  e0f1c020e31ed8abd688678278d910d7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqw-2.c
  19c5d0e601df3d73f9fbd7f28604358d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeb-2.c
  3e4abb855d1bc1f819d6a33240e008d5  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpged-1.c
  2f7900f888ea7da4a14df3ed7849e43f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpged-2.c
! 6b3408a6e5592567ed3e560d2881ef3e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeq-1.c
  f7e0c3a221cbdef84e1ccf641032ecb2  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeq-2.c
  e2e07695947b9badb627a9e157f4ad4e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeub-2.c
  2e09fbf8d7b909dbcf152130bacb7a9d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeud-1.c
  63b52d27130dc0c52602651aa801221a  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeud-2.c
! 0ed463f7b40402947fd5ed0653223e8b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuq-1.c
  a530d29994e1e42afeb1335af87cd6c7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuq-2.c
  b23fc9cfdc226b3b43b3e8733e86a1be  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuw-2.c
  753f655bba28c15253493e74a4cb6e8d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgew-2.c
  05d8bed70b1a3a80022e1ab6e08a5def  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtb-2.c
  56f9e3faa84044a0f297709102c813fe  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-1.c
  15b541e379c1f114378100100df0d4de  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-2.c
! c896d2a004826dfcac5d7c89dcfe7416  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-1.c
  5c2f6fdc945a8a334a4a3f8ae287ee35  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-2.c
  cf836c489d6d9804a96eec54b032c212  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtub-2.c
  52f89865915e64e3abae1181e4fafecb  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-1.c
  1cbab7fc3f4c1e2440826210d18156cb  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-2.c
! d3216dedf3289a124a34ae0665bcc2a0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuq-1.c
  af22e560c0a9ab33776f863d079fe289  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuq-2.c
  c0167edea99bc8627afa2c571cfbc098  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuw-2.c
  08603bc4c0c4f087b9b6c1350c33a502  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtw-2.c
  bdfdb2e909d27adb9ee14c0e535ee64e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleb-2.c
  9c16f288105dbb7ad7e4a6a1603704db  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpled-1.c
  22ee381653ab620bc42d01b2762e964e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpled-2.c
! 4a91ee59973b105fa98bef7d71b59fde  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleq-1.c
  e4cdad074d9c1e1d4b11bec1b98c43b0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleq-2.c
  e5a9c1facb7444e998ddd59e7a3698b7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleub-2.c
  368f71a2e0c7fd7b79030a8b36271398  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleud-1.c
  ec19724280ab750af31fe2b1f5ced014  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleud-2.c
! d24c03e1692c37543fb3828b366c3c1c  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuq-1.c
  3f2b6e11bae54b115bbbd7dbbdee3c93  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuq-2.c
  5dda7d72ccf60b3e4f938e235f96c94d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuw-2.c
  a5887335194bf71eec7f43eb7004f547  gcc/testsuite/gcc.target/i386/avx512vl-vpcmplew-2.c
  6ed0d1a75241a2e5801fcf0b2ca2fe4f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltb-2.c
  1310286a74a53b12c2e69ae9ce73fbc0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltd-1.c
  b32d6eddd7d6a2474cd73cde256a11af  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltd-2.c
! 553d1ce0ac2a4ddc411b0edd917ad85e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltq-1.c
  ef18e272792c52afff0543811ca0f225  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltq-2.c
  02db0c1dd8477d5cc4e74ab0a5a365f9  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltub-2.c
  a4b533df7f2fa64777672965a2d93202  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltud-1.c
  58092d92cd26b057add07770ccf3802d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltud-2.c
! 0a92a090559b0b163a78b34d889c60f6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuq-1.c
  363f29a6c5332fbcf97fed0538bc548e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuq-2.c
  5e802543a7c3cdd3bca3e662bbf04cd4  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuw-2.c
  de0766028f53a20aa347ba5c159b50e3  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltw-2.c
  1ced16362a82a11f808b5a64067e7545  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqb-2.c
  9594cddf7ac2b003fd1fa6704cc48c0d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqd-1.c
  23999c7503e6c7fbd5d7639940b4121f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqd-2.c
! 3a5385e0f9e926e98610d7441723d12d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqq-1.c
  e38c3246f68a5838f8e45d58fc64e38d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqq-2.c
  b514afa16f011307fc2ef147aa22e047  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequb-2.c
  a58a8656b93ff5f4788f6f1c540cc053  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequd-1.c
  15eb2b53a228424bada5e92b042894f7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequd-2.c
! c00dae47ae1455910b510d40e982a2a5  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequq-1.c
  3f6f9a8bd3d23611138b15ce7e423322  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequq-2.c
  cd7f3fd860141288d2d3b52036d685b2  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequw-2.c
  32f2e7072ce6e300769323cc82efc5a1  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqw-2.c
! e11936ec7d5d1cad3280b332e8b5436c  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c
  e6ee29155464ba4f854e36436c73e16b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-2.c
  8ec8c403a7c77e812001c0126229d798  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpub-2.c
! b6ba8fad3a289081683cd42175ce01e3  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c
  4f81ae5592b50f76ae301abaab860a72  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-2.c
! a2c316e85cf1db765e9ee9a53ced388f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c
  0421f91a556804cea02c315ea567ddc6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-2.c
  f58201ac16ad74264db1d9335b90a003  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuw-2.c
  3b93b5708b6a5857882fe8d951d1ac11  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpw-2.c
--- 87917,88002 ----
  0a6110618dbaf708dc79f526123252e6  gcc/testsuite/gcc.target/i386/avx512vl-vpbroadcastw-2.c
  cd857c56f1a6f4a6714e145144145e41  gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c
  26d001984e4d8897c20587e5d666400b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpb-2.c
! 5ac0d409ec98654ffcd260d2b9538413  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c
  0bc34b4a04332da118d323d0c85c1e02  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-2.c
  61e2f702b60e5952a8b040117acfa2dc  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqb-2.c
  ccb846b28442adff8cddf40e762fc170  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-1.c
  30282bfbce0d80a1c6236203901a82b0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-2.c
! bff4b6dd92b2dabdbf2303987fd5bca7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c
  8e5dc0632852f73edd4b7c87c3ec1ffe  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-2.c
  34b199460d019bcceb635c7293b2d409  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequb-2.c
  1a6954454700b04bc8aeca6a560a5304  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-1.c
  f0a2df8cddbc2f20daee55cb96297234  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-2.c
! e9956177d33706cbaccc57a3229651a3  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-1.c
  03e7c4974a7878b178447c16ccb6dd76  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequq-2.c
  7f137851a2723e3b5c577cac2fc00b60  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequw-2.c
  e0f1c020e31ed8abd688678278d910d7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqw-2.c
  19c5d0e601df3d73f9fbd7f28604358d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeb-2.c
  3e4abb855d1bc1f819d6a33240e008d5  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpged-1.c
  2f7900f888ea7da4a14df3ed7849e43f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpged-2.c
! e01ebbb8b26389beb1a56ef6401924a9  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeq-1.c
  f7e0c3a221cbdef84e1ccf641032ecb2  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeq-2.c
  e2e07695947b9badb627a9e157f4ad4e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeub-2.c
  2e09fbf8d7b909dbcf152130bacb7a9d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeud-1.c
  63b52d27130dc0c52602651aa801221a  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeud-2.c
! 1b0ac1202b346ad2724fdf1a6a6d4e2f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuq-1.c
  a530d29994e1e42afeb1335af87cd6c7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuq-2.c
  b23fc9cfdc226b3b43b3e8733e86a1be  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuw-2.c
  753f655bba28c15253493e74a4cb6e8d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgew-2.c
  05d8bed70b1a3a80022e1ab6e08a5def  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtb-2.c
  56f9e3faa84044a0f297709102c813fe  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-1.c
  15b541e379c1f114378100100df0d4de  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-2.c
! 26d4abc344d524c3aba8e43bc9328c9b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-1.c
  5c2f6fdc945a8a334a4a3f8ae287ee35  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-2.c
  cf836c489d6d9804a96eec54b032c212  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtub-2.c
  52f89865915e64e3abae1181e4fafecb  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-1.c
  1cbab7fc3f4c1e2440826210d18156cb  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-2.c
! faeb17aa7760a4b74a6e0a10a8c87754  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuq-1.c
  af22e560c0a9ab33776f863d079fe289  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuq-2.c
  c0167edea99bc8627afa2c571cfbc098  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtuw-2.c
  08603bc4c0c4f087b9b6c1350c33a502  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtw-2.c
  bdfdb2e909d27adb9ee14c0e535ee64e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleb-2.c
  9c16f288105dbb7ad7e4a6a1603704db  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpled-1.c
  22ee381653ab620bc42d01b2762e964e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpled-2.c
! d128ddcd9233ac5527f1f83f67752bec  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleq-1.c
  e4cdad074d9c1e1d4b11bec1b98c43b0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleq-2.c
  e5a9c1facb7444e998ddd59e7a3698b7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleub-2.c
  368f71a2e0c7fd7b79030a8b36271398  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleud-1.c
  ec19724280ab750af31fe2b1f5ced014  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleud-2.c
! 5c5c1de78b3cf38068f5c190b7d3b502  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuq-1.c
  3f2b6e11bae54b115bbbd7dbbdee3c93  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuq-2.c
  5dda7d72ccf60b3e4f938e235f96c94d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpleuw-2.c
  a5887335194bf71eec7f43eb7004f547  gcc/testsuite/gcc.target/i386/avx512vl-vpcmplew-2.c
  6ed0d1a75241a2e5801fcf0b2ca2fe4f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltb-2.c
  1310286a74a53b12c2e69ae9ce73fbc0  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltd-1.c
  b32d6eddd7d6a2474cd73cde256a11af  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltd-2.c
! 9dbd675a09164f03255b00c61fb72d4f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltq-1.c
  ef18e272792c52afff0543811ca0f225  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltq-2.c
  02db0c1dd8477d5cc4e74ab0a5a365f9  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltub-2.c
  a4b533df7f2fa64777672965a2d93202  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltud-1.c
  58092d92cd26b057add07770ccf3802d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltud-2.c
! 600b23fc76728a96ec0a4dca4f6b2f63  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuq-1.c
  363f29a6c5332fbcf97fed0538bc548e  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuq-2.c
  5e802543a7c3cdd3bca3e662bbf04cd4  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltuw-2.c
  de0766028f53a20aa347ba5c159b50e3  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpltw-2.c
  1ced16362a82a11f808b5a64067e7545  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqb-2.c
  9594cddf7ac2b003fd1fa6704cc48c0d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqd-1.c
  23999c7503e6c7fbd5d7639940b4121f  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqd-2.c
! 6371a4e9933faeb5963c71725fc0d7cf  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqq-1.c
  e38c3246f68a5838f8e45d58fc64e38d  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqq-2.c
  b514afa16f011307fc2ef147aa22e047  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequb-2.c
  a58a8656b93ff5f4788f6f1c540cc053  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequd-1.c
  15eb2b53a228424bada5e92b042894f7  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequd-2.c
! 65409eec31f195cc1d53098e0bd05249  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequq-1.c
  3f6f9a8bd3d23611138b15ce7e423322  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequq-2.c
  cd7f3fd860141288d2d3b52036d685b2  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpnequw-2.c
  32f2e7072ce6e300769323cc82efc5a1  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpneqw-2.c
! 065ffd63c0ba3868869b5f7307680b79  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-1.c
  e6ee29155464ba4f854e36436c73e16b  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpq-2.c
  8ec8c403a7c77e812001c0126229d798  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpub-2.c
! e627c4eadada91bdbc4152b5dc6b3cab  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-1.c
  4f81ae5592b50f76ae301abaab860a72  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpud-2.c
! a6734c06e81b4f8122a347bfdc6e53c6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-1.c
  0421f91a556804cea02c315ea567ddc6  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuq-2.c
  f58201ac16ad74264db1d9335b90a003  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpuw-2.c
  3b93b5708b6a5857882fe8d951d1ac11  gcc/testsuite/gcc.target/i386/avx512vl-vpcmpw-2.c
*************** a04eae0d97147748e91f0a1c3cb481dc  gcc/te
*** 78029,78035 ****
  cc32ad2101ced4775f9a0f47f076823a  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhrsw-3.c
  6ba002033debb0c1f5514ae9eca66dab  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhuw-2.c
  60a7c7484888c6ec4389292d159d350d  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhw-2.c
! 7c0edc289b1d5d88b84ed9e028afd355  gcc/testsuite/gcc.target/i386/avx512vl-vpmulld-1.c
  77fc43d97c0670ba510f5924e220ea71  gcc/testsuite/gcc.target/i386/avx512vl-vpmulld-2.c
  f9ba97b50f2829719e34d93438697f3a  gcc/testsuite/gcc.target/i386/avx512vl-vpmullq-2.c
  cd9af6e1a34bccdfb097a343a87808ae  gcc/testsuite/gcc.target/i386/avx512vl-vpmullw-2.c
--- 88164,88170 ----
  cc32ad2101ced4775f9a0f47f076823a  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhrsw-3.c
  6ba002033debb0c1f5514ae9eca66dab  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhuw-2.c
  60a7c7484888c6ec4389292d159d350d  gcc/testsuite/gcc.target/i386/avx512vl-vpmulhw-2.c
! b5fa649d906633e217fe64bf27652ea5  gcc/testsuite/gcc.target/i386/avx512vl-vpmulld-1.c
  77fc43d97c0670ba510f5924e220ea71  gcc/testsuite/gcc.target/i386/avx512vl-vpmulld-2.c
  f9ba97b50f2829719e34d93438697f3a  gcc/testsuite/gcc.target/i386/avx512vl-vpmullq-2.c
  cd9af6e1a34bccdfb097a343a87808ae  gcc/testsuite/gcc.target/i386/avx512vl-vpmullw-2.c
*************** ac6c7bc2ee7675dc70020738c525bf7d  gcc/te
*** 78139,78145 ****
  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
  140e2f20ab306c12156b6edade05988c  gcc/testsuite/gcc.target/i386/avx512vl-vptestmd-2.c
  62814a93b35b9d97e6ee2c27f619a1a8  gcc/testsuite/gcc.target/i386/avx512vl-vptestmq-1.c
  3f56fd981dda1b327f2d10429e3a16d5  gcc/testsuite/gcc.target/i386/avx512vl-vptestmq-2.c
--- 88274,88280 ----
  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
! 477f7f21eb20df99e3ee8cbaf5696762  gcc/testsuite/gcc.target/i386/avx512vl-vptestmd-1.c
  140e2f20ab306c12156b6edade05988c  gcc/testsuite/gcc.target/i386/avx512vl-vptestmd-2.c
  62814a93b35b9d97e6ee2c27f619a1a8  gcc/testsuite/gcc.target/i386/avx512vl-vptestmq-1.c
  3f56fd981dda1b327f2d10429e3a16d5  gcc/testsuite/gcc.target/i386/avx512vl-vptestmq-2.c
*************** d8084141e791dfdf62ee3dc66173d458  gcc/te
*** 78246,78251 ****
--- 88381,88387 ----
  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
+ 8ac2377d76855df8d689ea84214237dd  gcc/testsuite/gcc.target/i386/avx_vbroadcastf128.c
  5da8354c1b0f081b6c64be550d4b604e  gcc/testsuite/gcc.target/i386/avxfp-1.c
  96da42bfb9b55e417c89693514ae20a6  gcc/testsuite/gcc.target/i386/avxfp-2.c
  886ec1208d19dfac1038071807c2c23b  gcc/testsuite/gcc.target/i386/avxneconvert-1.c
*************** b581c7e9554c3e76b8ca8481c7c36168  gcc/te
*** 78272,78283 ****
  674019fac54e0c27947386666000a1c8  gcc/testsuite/gcc.target/i386/bitfield2.c
  f453ea0129a9fcdd06a9ec24524c1cb9  gcc/testsuite/gcc.target/i386/bitfield3.c
  9a4090444bb3ef253261728d33aa87e3  gcc/testsuite/gcc.target/i386/bittest.c
! 1efa0c8157f05bec88ec14bf171c17de  gcc/testsuite/gcc.target/i386/bitwise_mask_op-1.c
  6f59afd7fbef39ba5e5377903ca13bdf  gcc/testsuite/gcc.target/i386/bitwise_mask_op-2.c
  e1228efcdb6bf353fa7c28bd12b9b98c  gcc/testsuite/gcc.target/i386/bitwise_mask_op-3.c
  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
--- 88408,88421 ----
  674019fac54e0c27947386666000a1c8  gcc/testsuite/gcc.target/i386/bitfield2.c
  f453ea0129a9fcdd06a9ec24524c1cb9  gcc/testsuite/gcc.target/i386/bitfield3.c
  9a4090444bb3ef253261728d33aa87e3  gcc/testsuite/gcc.target/i386/bittest.c
! 173019f7dbfd3763f8cf21626bd4c4db  gcc/testsuite/gcc.target/i386/bitwise_mask_op-1.c
  6f59afd7fbef39ba5e5377903ca13bdf  gcc/testsuite/gcc.target/i386/bitwise_mask_op-2.c
  e1228efcdb6bf353fa7c28bd12b9b98c  gcc/testsuite/gcc.target/i386/bitwise_mask_op-3.c
  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
+ 4c7a41937909671e6a848d67ab99758e  gcc/testsuite/gcc.target/i386/blendv-to-maxmin.c
+ f47aa581c5d4253d8776c7e857e87954  gcc/testsuite/gcc.target/i386/blendv-to-pand.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
*************** a9b1dee6ec200856939709d32118cf4d  gcc/te
*** 78383,78391 ****
--- 88521,88568 ----
  98071546dc47914bb36a912c7912aca2  gcc/testsuite/gcc.target/i386/builtin-bswap-3.c
  3605b461ca62ccb4a3f70ccc13695ed5  gcc/testsuite/gcc.target/i386/builtin-bswap-4.c
  aa862ceda0d7a76c1857d703604c7cf7  gcc/testsuite/gcc.target/i386/builtin-bswap-5.c
+ 1cbbb5c11d03ef14cc572f92367e634c  gcc/testsuite/gcc.target/i386/builtin-copysign-2.c
+ d9fd556f0a900f1eeb821282dd2fdfc3  gcc/testsuite/gcc.target/i386/builtin-copysign-3.c
+ 05a95e1275df019f68cbb9b92c22a753  gcc/testsuite/gcc.target/i386/builtin-copysign-4.c
+ 05b8121d5ab95264781fe0c86c3733ad  gcc/testsuite/gcc.target/i386/builtin-copysign-5.c
+ dd9e244450fc1186bb05177aa40dd649  gcc/testsuite/gcc.target/i386/builtin-copysign-6.c
+ b2b902794a834905273f7d6e545af4a5  gcc/testsuite/gcc.target/i386/builtin-copysign-7.c
+ 1652649eed3f3b6f25fe15e21b1602e8  gcc/testsuite/gcc.target/i386/builtin-copysign-8a.c
+ 5b70b593c48a53059fc4b6c69cdfc01e  gcc/testsuite/gcc.target/i386/builtin-copysign-8b.c
  04d6147486a507d49f5d165aac499b5d  gcc/testsuite/gcc.target/i386/builtin-copysign.c
+ 16a1772ee3b6cb3710aa245189c0ff5d  gcc/testsuite/gcc.target/i386/builtin-fabs-1.c
+ eb024e3b157728adf6d4f14b1bd4c69d  gcc/testsuite/gcc.target/i386/builtin-fabs-2.c
  83540904d3592a74a85860a8850ad325  gcc/testsuite/gcc.target/i386/builtin-has-attribute.c
  c9f542098c7044c5b8ac4b18be20d199  gcc/testsuite/gcc.target/i386/builtin-issignaling-1.c
+ 00f3a2e0884f14386a27e5f6080b09a2  gcc/testsuite/gcc.target/i386/builtin-memmove-10.c
+ af6879dd68c18d6fb9135172c62780cf  gcc/testsuite/gcc.target/i386/builtin-memmove-11a.c
+ ec930842b833b3711093a46ebc85c416  gcc/testsuite/gcc.target/i386/builtin-memmove-11b.c
+ 165cd0152d8823f6bc085362e3c1e3cd  gcc/testsuite/gcc.target/i386/builtin-memmove-11c.c
+ b0d7fa80c57d909ccc81bb2bf072a145  gcc/testsuite/gcc.target/i386/builtin-memmove-12.c
+ a43827f5cac3fad0889c3d3d9c92ea6a  gcc/testsuite/gcc.target/i386/builtin-memmove-13.c
+ 5f0a205134ff8b7d5f1c8b73624ee28e  gcc/testsuite/gcc.target/i386/builtin-memmove-14.c
+ 538bc485ceef7bba90b73a4408c439b5  gcc/testsuite/gcc.target/i386/builtin-memmove-15.c
+ 1f23c4a706489ed24893fbc9e5894432  gcc/testsuite/gcc.target/i386/builtin-memmove-1a.c
+ 25092f6b662fe49e65ebf33d1e9d00f9  gcc/testsuite/gcc.target/i386/builtin-memmove-1b.c
+ 04cfc49e9c98196fafafe6a9d2bd63e7  gcc/testsuite/gcc.target/i386/builtin-memmove-1c.c
+ 8f82517cf2ac06ec2c9a754bd80cd5ce  gcc/testsuite/gcc.target/i386/builtin-memmove-1d.c
+ 4f52271adc28fe9450474559ab192a54  gcc/testsuite/gcc.target/i386/builtin-memmove-2a.c
+ 6c4d20822889bb12c9dccc184ff98b26  gcc/testsuite/gcc.target/i386/builtin-memmove-2b.c
+ 456f2a67b9cffa6d345eb8871843181f  gcc/testsuite/gcc.target/i386/builtin-memmove-2c.c
+ 8d3cac8dea815952a9453375c62f0847  gcc/testsuite/gcc.target/i386/builtin-memmove-2d.c
+ c03ec11dae08b921274367fccfff4635  gcc/testsuite/gcc.target/i386/builtin-memmove-3a.c
+ 51e17918d85ae5dea2d8e5c9e44893da  gcc/testsuite/gcc.target/i386/builtin-memmove-3b.c
+ b0bd03a9bae01f8478ace240843b0c38  gcc/testsuite/gcc.target/i386/builtin-memmove-3c.c
+ 742da95dce892654aaa0b9d0230ed8cc  gcc/testsuite/gcc.target/i386/builtin-memmove-4a.c
+ b513687e036749fb0d2d4024817ee82a  gcc/testsuite/gcc.target/i386/builtin-memmove-4b.c
+ 4cd9725f93ecd25f6925fe9d6302f0c1  gcc/testsuite/gcc.target/i386/builtin-memmove-4c.c
+ 34c225f06d7c81f4ae4395fca44611eb  gcc/testsuite/gcc.target/i386/builtin-memmove-5a.c
+ fe84c520316ec8080638ec05df143518  gcc/testsuite/gcc.target/i386/builtin-memmove-5b.c
+ f82f80bb66dc97a91e18b9c9e23ce790  gcc/testsuite/gcc.target/i386/builtin-memmove-5c.c
+ f8242baffe6049ab6171deca32bc1858  gcc/testsuite/gcc.target/i386/builtin-memmove-6.c
+ af8deba3ec387b5885200e18bc784860  gcc/testsuite/gcc.target/i386/builtin-memmove-7.c
+ 9805f45c28f2fa5c3f205001f2258c6e  gcc/testsuite/gcc.target/i386/builtin-memmove-8.c
+ ec44fa62b70ca6336bf8860bd05b5486  gcc/testsuite/gcc.target/i386/builtin-memmove-9.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
*************** dfd6d048c4cc790cbf85d5080d1b5a6e  gcc/te
*** 78423,78428 ****
--- 88600,88606 ----
  e420c76b5d51167be532aea06e242b7d  gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c
  ecf5960debbf0be72bff47ede8c8800e  gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c
  8f1538b43a15c0827f66b6f4352ef5fb  gcc/testsuite/gcc.target/i386/cet-notrack-icf-4.c
+ c62171467fd6ad70fac732b022943ed4  gcc/testsuite/gcc.target/i386/cet-pr124366.c
  b8e1eda2f252f129a90e54617fa39500  gcc/testsuite/gcc.target/i386/cet-property-1.c
  f03688bba56369ec92f324db56599b3d  gcc/testsuite/gcc.target/i386/cet-property-2.c
  a4dff4664eff59fc1d1d6ac49e52a6b6  gcc/testsuite/gcc.target/i386/cet-rdssp-1.c
*************** a2960f70e9092f35ab7846d97bc2cd2a  gcc/te
*** 78437,78447 ****
--- 88615,88630 ----
  d9248423c9f1c716a36c066054a7f5b9  gcc/testsuite/gcc.target/i386/cet-switch-2.c
  b20d49e3df7ecba263d6a023f199461f  gcc/testsuite/gcc.target/i386/cet-switch-3.c
  5f04987af425e4bdd6af970c8dbd52c7  gcc/testsuite/gcc.target/i386/cf_check-1.c
+ f4872e03d1c7304a4bec272a2fe13dce  gcc/testsuite/gcc.target/i386/cf_check-10.c
+ d7c38121c6376676dd85c9457538537e  gcc/testsuite/gcc.target/i386/cf_check-11.c
  509c1c95f3a1096c762b7fd019e83e4e  gcc/testsuite/gcc.target/i386/cf_check-2.c
  77f13ccc769fbeb31556af0dea458693  gcc/testsuite/gcc.target/i386/cf_check-3.c
  5c3b7040795451a42f588086b955b02d  gcc/testsuite/gcc.target/i386/cf_check-4.c
  365b20e670ddcffaf52fe6a4f718095f  gcc/testsuite/gcc.target/i386/cf_check-5.c
  e3bc6bdf24f38e69ec436864405bc65d  gcc/testsuite/gcc.target/i386/cf_check-6.c
+ 225c417de9175a95e5527845dca32cb3  gcc/testsuite/gcc.target/i386/cf_check-7.c
+ 5c8d09cd4849698374e9325b9233a400  gcc/testsuite/gcc.target/i386/cf_check-8.c
+ 89c6eae337ef104e2bfd58d5fabdc05b  gcc/testsuite/gcc.target/i386/cf_check-9.c
  d236bc684017e128d2809e943a21a577  gcc/testsuite/gcc.target/i386/cldemote-1.c
  993cba0e31e78353b3247fbc2d6ab5e5  gcc/testsuite/gcc.target/i386/cleanup-1.c
  661baae059c4a949fc8987d711d9be61  gcc/testsuite/gcc.target/i386/cleanup-2.c
*************** c4aea5211e55d55e35576a08520c127a  gcc/te
*** 78453,78459 ****
  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
--- 88636,88642 ----
  538ab6e8a06c514c724312c46aa4c439  gcc/testsuite/gcc.target/i386/cmov1.c
  fd0466945d68b3ee20c00b8032326680  gcc/testsuite/gcc.target/i386/cmov10.c
  df17ff93ab67a6d01ce2486635e9755d  gcc/testsuite/gcc.target/i386/cmov11.c
! ce081131d73d01ca1f13fa8eef5504ae  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
*************** a624ecc6ad55c00744cc7479a41b013e  gcc/te
*** 78525,78535 ****
  a041a47c0d060a13626e87e95e95dec3  gcc/testsuite/gcc.target/i386/cond_op_maxmin_w-2.c
  06f71debb8664e614ef07b38e8636e88  gcc/testsuite/gcc.target/i386/cond_op_shift_d-1.c
  7f1ceb4b292c3084e0d069f4b668a15e  gcc/testsuite/gcc.target/i386/cond_op_shift_d-2.c
! 6e7a73c89aeeeb44357cf86928793ef9  gcc/testsuite/gcc.target/i386/cond_op_shift_q-1.c
  4cd1930b02e6784fccbe626cb06c210a  gcc/testsuite/gcc.target/i386/cond_op_shift_q-2.c
! bfc87b8dbf2807918e6513dc6f484f57  gcc/testsuite/gcc.target/i386/cond_op_shift_ud-1.c
  5bb4dded7a8347833adbe0dfe971c29d  gcc/testsuite/gcc.target/i386/cond_op_shift_ud-2.c
! cd9ef7962ff5bf0b678c169a4ae85ea8  gcc/testsuite/gcc.target/i386/cond_op_shift_uq-1.c
  dab356ea11d5fa31aa2ad62b03eaba0e  gcc/testsuite/gcc.target/i386/cond_op_shift_uq-2.c
  4d9dea8d178b3ac2ddadb8211e6e9270  gcc/testsuite/gcc.target/i386/cond_op_shift_uw-1.c
  91bf73c2fd62790b28f15e1a555e949e  gcc/testsuite/gcc.target/i386/cond_op_shift_uw-2.c
--- 88708,88718 ----
  a041a47c0d060a13626e87e95e95dec3  gcc/testsuite/gcc.target/i386/cond_op_maxmin_w-2.c
  06f71debb8664e614ef07b38e8636e88  gcc/testsuite/gcc.target/i386/cond_op_shift_d-1.c
  7f1ceb4b292c3084e0d069f4b668a15e  gcc/testsuite/gcc.target/i386/cond_op_shift_d-2.c
! 62c6fbea8ec9b5847a563d3efd65bc3a  gcc/testsuite/gcc.target/i386/cond_op_shift_q-1.c
  4cd1930b02e6784fccbe626cb06c210a  gcc/testsuite/gcc.target/i386/cond_op_shift_q-2.c
! 9c92c2257c6a7aaa2fc27f3bf56b8e3c  gcc/testsuite/gcc.target/i386/cond_op_shift_ud-1.c
  5bb4dded7a8347833adbe0dfe971c29d  gcc/testsuite/gcc.target/i386/cond_op_shift_ud-2.c
! 2698ec07eb03e5495469e1b2a35eee17  gcc/testsuite/gcc.target/i386/cond_op_shift_uq-1.c
  dab356ea11d5fa31aa2ad62b03eaba0e  gcc/testsuite/gcc.target/i386/cond_op_shift_uq-2.c
  4d9dea8d178b3ac2ddadb8211e6e9270  gcc/testsuite/gcc.target/i386/cond_op_shift_uw-1.c
  91bf73c2fd62790b28f15e1a555e949e  gcc/testsuite/gcc.target/i386/cond_op_shift_uw-2.c
*************** d0c34e512b83cbc46667be5492815364  gcc/te
*** 78537,78542 ****
--- 88720,88726 ----
  afdc9039171e569adb39b65867a89df3  gcc/testsuite/gcc.target/i386/cond_op_shift_w-2.c
  e1be9a615bd653f1910c323be509006e  gcc/testsuite/gcc.target/i386/const-in-bss.c
  09e05c9be2759d0d28e2c1d573b5b5c0  gcc/testsuite/gcc.target/i386/conversion.c
+ 653053493362024a1a4a4e405f95e133  gcc/testsuite/gcc.target/i386/crc-builtin-crc32.c
  46758c775ccdb73df90a9e3cde676f5e  gcc/testsuite/gcc.target/i386/crc32-1.c
  d54f2d3757317775b86d2e38b987ecec  gcc/testsuite/gcc.target/i386/crc32-2.c
  de30da9f8215170a20bb4d88e630e8ff  gcc/testsuite/gcc.target/i386/crc32-3.c
*************** c1320fd604803bc04257c984f1e3ba77  gcc/te
*** 78713,78719 ****
  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
--- 88897,88903 ----
  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
! 31a53e1ba0b01416e951e4f68667e2c8  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
*************** d95f56a3f95ba78c3fdb5f418f8d953a  gcc/te
*** 78763,78770 ****
  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
--- 88947,88954 ----
  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
! 6fce00ba4205b3345483ddb0b41bfd82  gcc/testsuite/gcc.target/i386/i386.exp
! 54fbad7801a2d00fda57d33ed36e1acd  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
*************** de7e3424272806d6bdcaeafb426132f0  gcc/te
*** 78810,78817 ****
  6634641527cf4a67bc2ffa072bf43d67  gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
  e3fefa84c66af43982bfc64e3a0014aa  gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
  b03ee7d51ec7e327f350d2ac72c73745  gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
! 76b5340f3d1cae758f7f24f209df6970  gcc/testsuite/gcc.target/i386/indirect-thunk-5.c
! 44ba2c34bc32936af532c39182517a5f  gcc/testsuite/gcc.target/i386/indirect-thunk-6.c
  cd9517f2fb2890df6ac085a32cef6533  gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
  136c6b3bb1163a3077d4207bfc4e5275  gcc/testsuite/gcc.target/i386/indirect-thunk-8.c
  c6d529ddda0429e0c528b2de3c8384d4  gcc/testsuite/gcc.target/i386/indirect-thunk-9.c
--- 88994,89001 ----
  6634641527cf4a67bc2ffa072bf43d67  gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
  e3fefa84c66af43982bfc64e3a0014aa  gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
  b03ee7d51ec7e327f350d2ac72c73745  gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
! 0528225deeeeed5ec2bbebb1b2380ecf  gcc/testsuite/gcc.target/i386/indirect-thunk-5.c
! 594adf911b484a90d3518f853fc79aa7  gcc/testsuite/gcc.target/i386/indirect-thunk-6.c
  cd9517f2fb2890df6ac085a32cef6533  gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
  136c6b3bb1163a3077d4207bfc4e5275  gcc/testsuite/gcc.target/i386/indirect-thunk-8.c
  c6d529ddda0429e0c528b2de3c8384d4  gcc/testsuite/gcc.target/i386/indirect-thunk-9.c
*************** b5c55c2b2dcc4dc18bdc6f9480aa3f1e  gcc/te
*** 78836,78843 ****
  673c8eac98371e92b7a913b2206da532  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
  4afea13bb72bb242966023f3e5b2942a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
  213c4ee5c69d2614a59b48449aa3a7b1  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
! d60595421b98710f0053736975cb92fb  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c
! 159efa6bc07479836c1f52e007ec64f0  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c
  7caad64af2c8b081cc9641db901f52f1  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
  38223cb82cf9505ad00ae5f39795236b  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c
  10472248234411fb1063837b89c71e06  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c
--- 89020,89027 ----
  673c8eac98371e92b7a913b2206da532  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
  4afea13bb72bb242966023f3e5b2942a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
  213c4ee5c69d2614a59b48449aa3a7b1  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
! d40126e8caba69cf8aacf8788082855f  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c
! 1d6ef53adc935b45aed2853c9969bf08  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c
  7caad64af2c8b081cc9641db901f52f1  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
  38223cb82cf9505ad00ae5f39795236b  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c
  10472248234411fb1063837b89c71e06  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c
*************** d692db3f4cee8e5a7dffecaeeda7be7c  gcc/te
*** 78845,78852 ****
  af6da2e88ba8fff102851e5d8fa6b8d1  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
  d00c6a6fc15007fb5177523229284eeb  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
  39e1131dd1cebc38cd205d7dfd29dd5b  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
! 22d3ec31148d7eb42f889f412e80b98e  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c
! 4bb39d2b0069f6a250bb165c0280899d  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c
  9b18301c6819350bef178c74ce5003b1  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
  3fca7ab3c0cbea1ed9c2df3bdb80bf9b  gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
  a09ada0e82af6f6e6522d77d6b3e549d  gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
--- 89029,89036 ----
  af6da2e88ba8fff102851e5d8fa6b8d1  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
  d00c6a6fc15007fb5177523229284eeb  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
  39e1131dd1cebc38cd205d7dfd29dd5b  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
! fc4b6a3cea40556d676ce9cbe7a6ef9f  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c
! 601b3740b00c9589168423cfe2073ac9  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c
  9b18301c6819350bef178c74ce5003b1  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
  3fca7ab3c0cbea1ed9c2df3bdb80bf9b  gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
  a09ada0e82af6f6e6522d77d6b3e549d  gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
*************** b8833946f76f120528a455a8a038099f  gcc/te
*** 78867,78873 ****
  d458a0e32cb2349bcd36f8d2d34f5f8d  gcc/testsuite/gcc.target/i386/interrupt-13.c
  4609c90dc9ad28bf220f5f449014a1f4  gcc/testsuite/gcc.target/i386/interrupt-14.c
  08e23012b58fe85be0d87a2f9137b0a4  gcc/testsuite/gcc.target/i386/interrupt-15.c
! c6e693b5f9a7c73ab931ca1a8b1030cf  gcc/testsuite/gcc.target/i386/interrupt-16.c
  0bd3898f1b1d458377a8614055066514  gcc/testsuite/gcc.target/i386/interrupt-17.c
  6442ee0aaf57b80fc0c0555b49479df5  gcc/testsuite/gcc.target/i386/interrupt-18.c
  2a92ed875b52c83373107688535325d5  gcc/testsuite/gcc.target/i386/interrupt-19.c
--- 89051,89057 ----
  d458a0e32cb2349bcd36f8d2d34f5f8d  gcc/testsuite/gcc.target/i386/interrupt-13.c
  4609c90dc9ad28bf220f5f449014a1f4  gcc/testsuite/gcc.target/i386/interrupt-14.c
  08e23012b58fe85be0d87a2f9137b0a4  gcc/testsuite/gcc.target/i386/interrupt-15.c
! 5be70a9ac25a5e57fefbc0c9c47ba844  gcc/testsuite/gcc.target/i386/interrupt-16.c
  0bd3898f1b1d458377a8614055066514  gcc/testsuite/gcc.target/i386/interrupt-17.c
  6442ee0aaf57b80fc0c0555b49479df5  gcc/testsuite/gcc.target/i386/interrupt-18.c
  2a92ed875b52c83373107688535325d5  gcc/testsuite/gcc.target/i386/interrupt-19.c
*************** aba6d2eff079b06e7cd71c9e907153e1  gcc/te
*** 78933,78947 ****
  e1e7267fec37636815e8272359b19e18  gcc/testsuite/gcc.target/i386/isa-check.h
  65d088e6c80d576745db2b97808153d0  gcc/testsuite/gcc.target/i386/keylocker-aesdec128kl.c
  3f797e1e0510f8b7a3d1cb266bd34b05  gcc/testsuite/gcc.target/i386/keylocker-aesdec256kl.c
! c1df16373f27617a0c52dc119835a641  gcc/testsuite/gcc.target/i386/keylocker-aesdecwide128kl.c
! f1728b5e83b3ce3c8eaebf907d52fe30  gcc/testsuite/gcc.target/i386/keylocker-aesdecwide256kl.c
  20cc66c33612b34dc60f7990ce4a8778  gcc/testsuite/gcc.target/i386/keylocker-aesenc128kl.c
  7d6318be1e679ff633411e06bdf9bc8b  gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c
! 365be795bdc65acb8232f4fc0f710d08  gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c
! 599484c2f5122d14ad244cba89c2c0e0  gcc/testsuite/gcc.target/i386/keylocker-aesencwide256kl.c
  c6f6aaff47d064fbceed4cfbcb5b9279  gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c
  a468c392fd8838d0198cfb8b367d4b6d  gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c
  78393ec91600382e98db57e560deaea9  gcc/testsuite/gcc.target/i386/keylocker-loadiwkey.c
  6a61f297f5746de86187140f048ab655  gcc/testsuite/gcc.target/i386/l_fma_1.h
  c598c1d2a127be1189b3dfe020919429  gcc/testsuite/gcc.target/i386/l_fma_2.h
  8aa60b44b83369f838965e6e8e99c4e7  gcc/testsuite/gcc.target/i386/l_fma_3.h
--- 89117,89133 ----
  e1e7267fec37636815e8272359b19e18  gcc/testsuite/gcc.target/i386/isa-check.h
  65d088e6c80d576745db2b97808153d0  gcc/testsuite/gcc.target/i386/keylocker-aesdec128kl.c
  3f797e1e0510f8b7a3d1cb266bd34b05  gcc/testsuite/gcc.target/i386/keylocker-aesdec256kl.c
! 5b1d9962042c03ee924a65a73c530f65  gcc/testsuite/gcc.target/i386/keylocker-aesdecwide128kl.c
! 880e6942c8374aa77e726bf9dcbbe198  gcc/testsuite/gcc.target/i386/keylocker-aesdecwide256kl.c
  20cc66c33612b34dc60f7990ce4a8778  gcc/testsuite/gcc.target/i386/keylocker-aesenc128kl.c
  7d6318be1e679ff633411e06bdf9bc8b  gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c
! eea09433ae07509586cf81bfe0eba660  gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c
! 16580a1f221bb2dc081d4e87f9e6e3c4  gcc/testsuite/gcc.target/i386/keylocker-aesencwide256kl.c
  c6f6aaff47d064fbceed4cfbcb5b9279  gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c
  a468c392fd8838d0198cfb8b367d4b6d  gcc/testsuite/gcc.target/i386/keylocker-encodekey256.c
  78393ec91600382e98db57e560deaea9  gcc/testsuite/gcc.target/i386/keylocker-loadiwkey.c
+ 75eec9ddfedd16dad1c34342d4bb3a1a  gcc/testsuite/gcc.target/i386/keylocker-pr123217.c
+ 756d96c509b9d211464cf07af4df2b2c  gcc/testsuite/gcc.target/i386/kortest_ccz-1.c
  6a61f297f5746de86187140f048ab655  gcc/testsuite/gcc.target/i386/l_fma_1.h
  c598c1d2a127be1189b3dfe020919429  gcc/testsuite/gcc.target/i386/l_fma_2.h
  8aa60b44b83369f838965e6e8e99c4e7  gcc/testsuite/gcc.target/i386/l_fma_3.h
*************** d2234ab09253f045697088ae34493c42  gcc/te
*** 78977,78983 ****
  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
--- 89163,89170 ----
  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
! f4ed896bb9835e6df92207441148aba1  gcc/testsuite/gcc.target/i386/lea-3.c
! 43c8adb8b1edd319250935059bdfae00  gcc/testsuite/gcc.target/i386/lea-4.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
*************** a697ff9e2f8fc0bffc90007a1118893e  gcc/te
*** 79038,79044 ****
  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
--- 89225,89231 ----
  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
! cdf83d1af82543a2561799f083adfb7c  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
*************** f82327ef3caa200d8024822491c53316  gcc/te
*** 79049,79059 ****
  cda0d89452347311cc45a79be2d8f0fc  gcc/testsuite/gcc.target/i386/memcpy-1.c
  6497cb2d22febb00a904f50025d863bd  gcc/testsuite/gcc.target/i386/memcpy-2.c
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
! 27b4fc4c0b0ecbd4614a4e9af86a6a18  gcc/testsuite/gcc.target/i386/memcpy-pr95886.c
! b5176a7f12717b0fd4c9162a139871e9  gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c
  b82d9188c52a269893b5ac6b25f9e515  gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c
  619cbc26dc85de4ded3f5a985d0a23a2  gcc/testsuite/gcc.target/i386/memcpy-strategy-11.c
! b001554c0c381f992911b1e7a465a6b8  gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c
  18088286a0546a409434dcbafef0a896  gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c
  6e857b4eb94b8707c380e73efcbc5a51  gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c
  1d25fe95e37e523bbb1237cd2cfdcc7a  gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c
--- 89236,89263 ----
  cda0d89452347311cc45a79be2d8f0fc  gcc/testsuite/gcc.target/i386/memcpy-1.c
  6497cb2d22febb00a904f50025d863bd  gcc/testsuite/gcc.target/i386/memcpy-2.c
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
! 61f067e97ef7661b328544cddc4fce84  gcc/testsuite/gcc.target/i386/memcpy-pr120683-1.c
! 8f8c3263b945d5fa20416c5350a95511  gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c
! 63c118b7e6a0a26cd108a76df42e6012  gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c
! 5f8385a4100cd2b2cd865a42ddfd8409  gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c
! 9af0550266423cd0c6988ca9fce3b1bb  gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c
! a3dce149f913aa9a1be49097945e5fc4  gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c
! 66b297ce70efd6a9cf68acc847d77809  gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c
! 50517fb5d4646033c91f4ffec32d7d69  gcc/testsuite/gcc.target/i386/memcpy-pr120708-1.c
! 3cf7b29a1b5359f4e7c6819c7d0fef69  gcc/testsuite/gcc.target/i386/memcpy-pr120708-2.c
! 5cb0b1e67d33f6577154b5348833c2ea  gcc/testsuite/gcc.target/i386/memcpy-pr120708-3.c
! a2854f7fe83760cab7c18efaa883fa19  gcc/testsuite/gcc.target/i386/memcpy-pr120708-4.c
! cab1fad7719db80bf7a5c712c8e07f67  gcc/testsuite/gcc.target/i386/memcpy-pr120708-5.c
! 59f59b38785765ee58f5364967ec6317  gcc/testsuite/gcc.target/i386/memcpy-pr120708-6.c
! ddb515e6955a2e895cb9e026084d6457  gcc/testsuite/gcc.target/i386/memcpy-pr95886.c
! 11e1d1767b79743e4e65a799f3369907  gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c
  b82d9188c52a269893b5ac6b25f9e515  gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c
  619cbc26dc85de4ded3f5a985d0a23a2  gcc/testsuite/gcc.target/i386/memcpy-strategy-11.c
! 4bb27cf351b9a20aabcf7d2fa1d5efe0  gcc/testsuite/gcc.target/i386/memcpy-strategy-12.c
! 44dcb4858ee7dffcecaaa96814b9b8c2  gcc/testsuite/gcc.target/i386/memcpy-strategy-13.c
! a948cf11841f5be3746dbd9613e72c59  gcc/testsuite/gcc.target/i386/memcpy-strategy-14.c
! 81a646881b73313339b3c5553f5de316  gcc/testsuite/gcc.target/i386/memcpy-strategy-15.c
! 043547bc2d2818c5fb11e83082688790  gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c
  18088286a0546a409434dcbafef0a896  gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c
  6e857b4eb94b8707c380e73efcbc5a51  gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c
  1d25fe95e37e523bbb1237cd2cfdcc7a  gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c
*************** b001554c0c381f992911b1e7a465a6b8  gcc/te
*** 79061,79080 ****
  ee6163f62ab711d692467ababe19d6e8  gcc/testsuite/gcc.target/i386/memcpy-strategy-7.c
  340d39f8d8ef39d53004ab646169990b  gcc/testsuite/gcc.target/i386/memcpy-strategy-8.c
  2dd9e14dd90d6b63ab5fb4222847a72d  gcc/testsuite/gcc.target/i386/memcpy-strategy-9.c
! 5a0fd04cbd019d9f36835345ab0db6ad  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c
! c84ec8a2cd4608e33d447c561108ce97  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c
  40cce91585f47cde61390171cd489668  gcc/testsuite/gcc.target/i386/memset-1.c
  5d42d8053ea9c0f90ccef1a5662638be  gcc/testsuite/gcc.target/i386/memset-strategy-1.c
  e34fc4954adf255e63dd959604f68e95  gcc/testsuite/gcc.target/i386/memset-strategy-2.c
  ab2b88f0bcce4626b92af0e20a2b1f62  gcc/testsuite/gcc.target/i386/memset-strategy-3.c
  20e5e2cabbded0b26bce978e68dfb2f0  gcc/testsuite/gcc.target/i386/memset-strategy-4.c
  fad1f723fea113cd6e9ed9c154a8ac50  gcc/testsuite/gcc.target/i386/memset-strategy-5.c
  260e12efd7f892d89efa62914317673f  gcc/testsuite/gcc.target/i386/memset-strategy-6.c
  1dd9248dd03293c1a1b721052bea480b  gcc/testsuite/gcc.target/i386/memset-strategy-7.c
  1af29c0ee5e0fa8803b6dd0354a23dee  gcc/testsuite/gcc.target/i386/memset-strategy-8.c
  ff0a702aa0efe0f21e105da81c274eb6  gcc/testsuite/gcc.target/i386/memset-strategy-9.c
! abacd2e1491b7c40915d4be18c0229b4  gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c
! 87dbca58e427b20c0f83b7a2aefbd38a  gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c
  0f0d6bfb1ded50a271c2d5125c308eaf  gcc/testsuite/gcc.target/i386/merge-1.c
  c4570886a9f211d78bbdd2e42072c902  gcc/testsuite/gcc.target/i386/minmax-1.c
  0ff9b1c7cefc9d6f11d41b132dc6cca7  gcc/testsuite/gcc.target/i386/minmax-10.c
--- 89265,89325 ----
  ee6163f62ab711d692467ababe19d6e8  gcc/testsuite/gcc.target/i386/memcpy-strategy-7.c
  340d39f8d8ef39d53004ab646169990b  gcc/testsuite/gcc.target/i386/memcpy-strategy-8.c
  2dd9e14dd90d6b63ab5fb4222847a72d  gcc/testsuite/gcc.target/i386/memcpy-strategy-9.c
! 229037e2f4a7e551952f59d46c8a2267  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c
! f6fd4449a72ddd84f5687641334109d2  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c
  40cce91585f47cde61390171cd489668  gcc/testsuite/gcc.target/i386/memset-1.c
+ 144bb3ce21d3fddaf775a954d9b26afe  gcc/testsuite/gcc.target/i386/memset-pr120683-1.c
+ d89075b38cba9757a17e02807f14afae  gcc/testsuite/gcc.target/i386/memset-pr120683-10.c
+ 2a950977ad569a565f9af272e2c31dba  gcc/testsuite/gcc.target/i386/memset-pr120683-11.c
+ 94b4f8a026590940e722a0b5f30940d7  gcc/testsuite/gcc.target/i386/memset-pr120683-12.c
+ cb5d15399cf15d6f102944b1fe038e88  gcc/testsuite/gcc.target/i386/memset-pr120683-13.c
+ 46815c785fe46d0da893cbc07e54c512  gcc/testsuite/gcc.target/i386/memset-pr120683-14.c
+ a379b3507b29499a9ede7c8c939598d6  gcc/testsuite/gcc.target/i386/memset-pr120683-15.c
+ 90ac5e5a9ca2fb087d80f8882c461fc3  gcc/testsuite/gcc.target/i386/memset-pr120683-16.c
+ c37c678bd03304bb7e11c3175b9196cb  gcc/testsuite/gcc.target/i386/memset-pr120683-17.c
+ 0b0adec333421a45cd5ca2ef9873b1c9  gcc/testsuite/gcc.target/i386/memset-pr120683-18.c
+ d64e517fb6c251b2b1f9ca2fa05cd8ab  gcc/testsuite/gcc.target/i386/memset-pr120683-19.c
+ c097ce9a797cf4f3badca0ca8225a807  gcc/testsuite/gcc.target/i386/memset-pr120683-2.c
+ 48249301f175b45e952f9cd329f1aaad  gcc/testsuite/gcc.target/i386/memset-pr120683-20.c
+ 5d42d1991dbda70d10c23af9324419d7  gcc/testsuite/gcc.target/i386/memset-pr120683-21.c
+ 817811fc900504468b2abcd53d6e438e  gcc/testsuite/gcc.target/i386/memset-pr120683-22.c
+ 945b704b9cf2635a4ad41110cbb2240b  gcc/testsuite/gcc.target/i386/memset-pr120683-23.c
+ 7c5a7c0f16d9029e59fa5e082bbfa0a6  gcc/testsuite/gcc.target/i386/memset-pr120683-3.c
+ 7bc91f7bb0ac2ec4eb5ea3e7faee0256  gcc/testsuite/gcc.target/i386/memset-pr120683-4.c
+ 3d5b44dc66cd49adeea1534cf1418f6d  gcc/testsuite/gcc.target/i386/memset-pr120683-5.c
+ 24cb5e20050ba9e0889a599525ecc0a9  gcc/testsuite/gcc.target/i386/memset-pr120683-6.c
+ 5712eca2727131914b34b143f2ca248b  gcc/testsuite/gcc.target/i386/memset-pr120683-7.c
+ 5ab4a94a2f8aeb20bbb713449c6c9de9  gcc/testsuite/gcc.target/i386/memset-pr120683-8.c
+ dde2c8f3ed2090b842bca4dbe94e62ce  gcc/testsuite/gcc.target/i386/memset-pr120683-9.c
+ d40214a38af3060ba1bba456c7399a32  gcc/testsuite/gcc.target/i386/memset-pr120708-1.c
+ 131f444cf3fea918073579825312e430  gcc/testsuite/gcc.target/i386/memset-pr120708-2.c
+ 981dc73b4759f32831e3d2c772a5a363  gcc/testsuite/gcc.target/i386/memset-pr70308-1a.c
+ e6313174eb3f079ab8670e5754034490  gcc/testsuite/gcc.target/i386/memset-pr70308-1b.c
  5d42d8053ea9c0f90ccef1a5662638be  gcc/testsuite/gcc.target/i386/memset-strategy-1.c
+ eda96df37fdef4ddbead9ea2a24d7804  gcc/testsuite/gcc.target/i386/memset-strategy-10.c
+ 80f552aba0b3173b7903784b13ff17d9  gcc/testsuite/gcc.target/i386/memset-strategy-11.c
+ 02939d69e3c8cdd4b15b50bd83322ba8  gcc/testsuite/gcc.target/i386/memset-strategy-12.c
+ 6d3ac1d71d2783a2d169fab1267386e1  gcc/testsuite/gcc.target/i386/memset-strategy-13.c
+ 58bfce62a58f473b1dd0dc599a4a3aac  gcc/testsuite/gcc.target/i386/memset-strategy-14.c
+ 42dfcbe76f482f1cc458b2d38bec4d47  gcc/testsuite/gcc.target/i386/memset-strategy-15.c
+ 87a904e845122510f206442a6c10f24a  gcc/testsuite/gcc.target/i386/memset-strategy-16.c
  e34fc4954adf255e63dd959604f68e95  gcc/testsuite/gcc.target/i386/memset-strategy-2.c
+ 779e343039c7a7c389207738c50e6d8a  gcc/testsuite/gcc.target/i386/memset-strategy-25.c
+ a94047349a1abfeda6fc4e2dcf8263fe  gcc/testsuite/gcc.target/i386/memset-strategy-26.c
+ 7450283d0eb74c8d5f86beff98d12f17  gcc/testsuite/gcc.target/i386/memset-strategy-27.c
+ 5afca45ae7031a0cf4da807090dedffe  gcc/testsuite/gcc.target/i386/memset-strategy-28.c
+ b3df0b7131b5bce7bf021f2e3d7641d3  gcc/testsuite/gcc.target/i386/memset-strategy-29.c
  ab2b88f0bcce4626b92af0e20a2b1f62  gcc/testsuite/gcc.target/i386/memset-strategy-3.c
+ a64da96a4e20f4289069675f0b8177c3  gcc/testsuite/gcc.target/i386/memset-strategy-30.c
+ ff1b7cf76c072b384368284dd0926f42  gcc/testsuite/gcc.target/i386/memset-strategy-31.c
  20e5e2cabbded0b26bce978e68dfb2f0  gcc/testsuite/gcc.target/i386/memset-strategy-4.c
  fad1f723fea113cd6e9ed9c154a8ac50  gcc/testsuite/gcc.target/i386/memset-strategy-5.c
  260e12efd7f892d89efa62914317673f  gcc/testsuite/gcc.target/i386/memset-strategy-6.c
  1dd9248dd03293c1a1b721052bea480b  gcc/testsuite/gcc.target/i386/memset-strategy-7.c
  1af29c0ee5e0fa8803b6dd0354a23dee  gcc/testsuite/gcc.target/i386/memset-strategy-8.c
  ff0a702aa0efe0f21e105da81c274eb6  gcc/testsuite/gcc.target/i386/memset-strategy-9.c
! 80d1cd925374a8fc14d44d7e92e78160  gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c
! a08549a6dd0270bcbb432de3edc8040f  gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c
  0f0d6bfb1ded50a271c2d5125c308eaf  gcc/testsuite/gcc.target/i386/merge-1.c
  c4570886a9f211d78bbdd2e42072c902  gcc/testsuite/gcc.target/i386/minmax-1.c
  0ff9b1c7cefc9d6f11d41b132dc6cca7  gcc/testsuite/gcc.target/i386/minmax-10.c
*************** d342ed599b70d74fac5ae924c1a4a586  gcc/te
*** 79084,79091 ****
  fe06960188ec5cc97489b2af74d70a7c  gcc/testsuite/gcc.target/i386/minmax-3.c
  5760adec235bd90e28e149784a2dd119  gcc/testsuite/gcc.target/i386/minmax-4.c
  d4c118eef6b8875d77744f1ffe44777e  gcc/testsuite/gcc.target/i386/minmax-5.c
! 036d7236e17ac64b72e0827de729208e  gcc/testsuite/gcc.target/i386/minmax-6.c
! 07ceb25b9f45c41125f7a2b2889a6e5c  gcc/testsuite/gcc.target/i386/minmax-7.c
  72997bf36a09ab6e36d6be7b9917f67c  gcc/testsuite/gcc.target/i386/minmax-8.c
  594b46b8314909192567bd4a3b7a2b54  gcc/testsuite/gcc.target/i386/minmax-9.c
  be79d4764ced90c9229ac843869cdc05  gcc/testsuite/gcc.target/i386/mmx-1.c
--- 89329,89336 ----
  fe06960188ec5cc97489b2af74d70a7c  gcc/testsuite/gcc.target/i386/minmax-3.c
  5760adec235bd90e28e149784a2dd119  gcc/testsuite/gcc.target/i386/minmax-4.c
  d4c118eef6b8875d77744f1ffe44777e  gcc/testsuite/gcc.target/i386/minmax-5.c
! 783cc636ce6666bb0cd6c259bc2e95e1  gcc/testsuite/gcc.target/i386/minmax-6.c
! 4cbd2382e31502b879c6af2aeea362eb  gcc/testsuite/gcc.target/i386/minmax-7.c
  72997bf36a09ab6e36d6be7b9917f67c  gcc/testsuite/gcc.target/i386/minmax-8.c
  594b46b8314909192567bd4a3b7a2b54  gcc/testsuite/gcc.target/i386/minmax-9.c
  be79d4764ced90c9229ac843869cdc05  gcc/testsuite/gcc.target/i386/mmx-1.c
*************** ceabed34440a4d5e7379a87fe03c334e  gcc/te
*** 79119,79124 ****
--- 89364,89370 ----
  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
+ e1f5575d42c42c2ad22430f9a18c058e  gcc/testsuite/gcc.target/i386/movrs-pr124461.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
*************** b37f306ab147d6fbfd89376226165e2f  gcc/te
*** 79137,79143 ****
  2b02ee46ed233dc14d5b15819cfff28b  gcc/testsuite/gcc.target/i386/mvc14.c
  0dbd1cf7be9a494f5666af53dffb29c8  gcc/testsuite/gcc.target/i386/mvc15.c
  e302a983fa569ca9c52105401b06e054  gcc/testsuite/gcc.target/i386/mvc16.c
! ef7c58db6b2b11956cdae67dd45533ec  gcc/testsuite/gcc.target/i386/mvc17.c
  564e05556bd7de96a3147d7330c78901  gcc/testsuite/gcc.target/i386/mvc2.c
  81972b6ec7b16a2464f2f27fb8863604  gcc/testsuite/gcc.target/i386/mvc3.c
  b1d4c5cfd15d435b380b98085cd82466  gcc/testsuite/gcc.target/i386/mvc4.c
--- 89383,89389 ----
  2b02ee46ed233dc14d5b15819cfff28b  gcc/testsuite/gcc.target/i386/mvc14.c
  0dbd1cf7be9a494f5666af53dffb29c8  gcc/testsuite/gcc.target/i386/mvc15.c
  e302a983fa569ca9c52105401b06e054  gcc/testsuite/gcc.target/i386/mvc16.c
! 31407ab69a80705cefa016441d8da1aa  gcc/testsuite/gcc.target/i386/mvc17.c
  564e05556bd7de96a3147d7330c78901  gcc/testsuite/gcc.target/i386/mvc2.c
  81972b6ec7b16a2464f2f27fb8863604  gcc/testsuite/gcc.target/i386/mvc3.c
  b1d4c5cfd15d435b380b98085cd82466  gcc/testsuite/gcc.target/i386/mvc4.c
*************** d4f46b5271ce6dccc8d803376c5790f5  gcc/te
*** 79153,79188 ****
  53573eabfe7a88bc5c685842328a0bfb  gcc/testsuite/gcc.target/i386/neg-zext-1.c
  17e0a5a79b5ebe25244934057a3faf0f  gcc/testsuite/gcc.target/i386/neg-zext-2.c
  a7f204e20c0df5dad30eac30c4a089ab  gcc/testsuite/gcc.target/i386/nest-1.c
! dd28f3910c1c820877396bdada67b53a  gcc/testsuite/gcc.target/i386/no-callee-saved-1.c
! 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
  7c0013e877ad677f03dc9f16afde12ee  gcc/testsuite/gcc.target/i386/no-callee-saved-4.c
  3945dff670a00bd729c9d700c0e429d3  gcc/testsuite/gcc.target/i386/no-callee-saved-5.c
  b72976450abb440a20ee8bbbcbe9d3da  gcc/testsuite/gcc.target/i386/no-callee-saved-6.c
! 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
  a65bbca9b86c46807492d802fca8baad  gcc/testsuite/gcc.target/i386/noplt-4.c
! 84ddf7309982a9ebeae364e8c9e0839c  gcc/testsuite/gcc.target/i386/noplt-gd-1.c
  4e963de7e8d025b829efae993924f607  gcc/testsuite/gcc.target/i386/noplt-gd-2.c
  3fd2b999734183004edb097587e0d1a7  gcc/testsuite/gcc.target/i386/noplt-gd-3.c
! aa6d9d86a4583e5cb0865bd1ea62fcf2  gcc/testsuite/gcc.target/i386/noplt-ld-1.c
  26973ef0b31c34190c8a13700443694f  gcc/testsuite/gcc.target/i386/noplt-ld-2.c
  d84c245c19907cbcb51ec1260f2f2e75  gcc/testsuite/gcc.target/i386/noplt-ld-3.c
  724ac6ecb21390d732dee529300ac27a  gcc/testsuite/gcc.target/i386/nrv1.c
--- 89399,89437 ----
  53573eabfe7a88bc5c685842328a0bfb  gcc/testsuite/gcc.target/i386/neg-zext-1.c
  17e0a5a79b5ebe25244934057a3faf0f  gcc/testsuite/gcc.target/i386/neg-zext-2.c
  a7f204e20c0df5dad30eac30c4a089ab  gcc/testsuite/gcc.target/i386/nest-1.c
! 30f81baa74eb17e2f287e035925477c6  gcc/testsuite/gcc.target/i386/no-callee-saved-1.c
! 4db6dbf3a78ed414f7c6ea5b1cad2d77  gcc/testsuite/gcc.target/i386/no-callee-saved-10.c
  f3e395b65622feac99889a0a7b3407ca  gcc/testsuite/gcc.target/i386/no-callee-saved-11.c
! b0015a9bcc0c4efd0261a58f3798d964  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
! 9204056c1841f39e08a93f36fd4f926c  gcc/testsuite/gcc.target/i386/no-callee-saved-16.c
  603a6e01b2f7a9cfee08f9a76db61c4a  gcc/testsuite/gcc.target/i386/no-callee-saved-17.c
! aab3453cf3c5253a20cbcf5fb2b738c5  gcc/testsuite/gcc.target/i386/no-callee-saved-18.c
! a6f5ac6b7558804a95dea96184f06f84  gcc/testsuite/gcc.target/i386/no-callee-saved-19a.c
! ca984eb5a4172e6503f1c7a2e6bbc687  gcc/testsuite/gcc.target/i386/no-callee-saved-19b.c
! c5ee5e55b45788755521be86a2c5fc93  gcc/testsuite/gcc.target/i386/no-callee-saved-19c.c
! 21b12be45c4ce2ede3553313b2400cbd  gcc/testsuite/gcc.target/i386/no-callee-saved-19d.c
! 77b3f3d78832f0b1c64e5b05b673aa9d  gcc/testsuite/gcc.target/i386/no-callee-saved-19e.c
! a14afc4545978be3365714810486fa76  gcc/testsuite/gcc.target/i386/no-callee-saved-2.c
! 1706fd64433a7760cdc1f03b531cc111  gcc/testsuite/gcc.target/i386/no-callee-saved-3.c
  7c0013e877ad677f03dc9f16afde12ee  gcc/testsuite/gcc.target/i386/no-callee-saved-4.c
  3945dff670a00bd729c9d700c0e429d3  gcc/testsuite/gcc.target/i386/no-callee-saved-5.c
  b72976450abb440a20ee8bbbcbe9d3da  gcc/testsuite/gcc.target/i386/no-callee-saved-6.c
! 91ce8e7334f6685e1162fd58720224ea  gcc/testsuite/gcc.target/i386/no-callee-saved-7.c
! d3aa3fdd97d8af1545b4ad8a07d4d869  gcc/testsuite/gcc.target/i386/no-callee-saved-8.c
! adb9a921b0738fbc19853dbc3cfe9bf3  gcc/testsuite/gcc.target/i386/no-callee-saved-9.c
! 5ddb42184fe06678b1e6b2401e6afbdf  gcc/testsuite/gcc.target/i386/nop-mcount-m16.c
! 92d9fb2d7f42096be9b83ca172427c12  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
  a65bbca9b86c46807492d802fca8baad  gcc/testsuite/gcc.target/i386/noplt-4.c
! 6cc61518f7f5512527275d96468f64d4  gcc/testsuite/gcc.target/i386/noplt-gd-1.c
  4e963de7e8d025b829efae993924f607  gcc/testsuite/gcc.target/i386/noplt-gd-2.c
  3fd2b999734183004edb097587e0d1a7  gcc/testsuite/gcc.target/i386/noplt-gd-3.c
! 0a63a7779f11a9af767245e5cf8c1b05  gcc/testsuite/gcc.target/i386/noplt-ld-1.c
  26973ef0b31c34190c8a13700443694f  gcc/testsuite/gcc.target/i386/noplt-ld-2.c
  d84c245c19907cbcb51ec1260f2f2e75  gcc/testsuite/gcc.target/i386/noplt-ld-3.c
  724ac6ecb21390d732dee529300ac27a  gcc/testsuite/gcc.target/i386/nrv1.c
*************** a2da30b33f626c449124b741d63ff50f  gcc/te
*** 79214,79220 ****
  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
--- 89463,89469 ----
  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
! 36080cefa85cce36242ea5d1041b44c5  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
*************** e015c782d5b49dadd97d26626e42640b  gcc/te
*** 79223,79229 ****
  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
--- 89472,89478 ----
  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
! 3f352e077aa32a95ab59664c0de0c3a0  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
*************** ec64d74d91ed819f110fdc6f8f90197e  gcc/te
*** 79244,79250 ****
  8a9325754f481fbe42e35a28aa1b451b  gcc/testsuite/gcc.target/i386/pie-copyrelocs-3.c
  9f8568a66133d16283b57d8a97c3dc49  gcc/testsuite/gcc.target/i386/pie-copyrelocs-4.c
  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
--- 89493,89499 ----
  8a9325754f481fbe42e35a28aa1b451b  gcc/testsuite/gcc.target/i386/pie-copyrelocs-3.c
  9f8568a66133d16283b57d8a97c3dc49  gcc/testsuite/gcc.target/i386/pie-copyrelocs-4.c
  f91cf99532e69c383485f6be3f62eb99  gcc/testsuite/gcc.target/i386/pie.c
! 4173a5731d7387a48c275274bcdd9728  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
*************** cbaafd43310e10a7ba4ce687bafe06da  gcc/te
*** 79254,79264 ****
  89d909d7d758041e829631ac800bf196  gcc/testsuite/gcc.target/i386/pieces-memcpy-15.c
  437a6c001b5f504cb8a978424f9f229c  gcc/testsuite/gcc.target/i386/pieces-memcpy-16.c
  a0fc0b89838032f850b17823a354b986  gcc/testsuite/gcc.target/i386/pieces-memcpy-17.c
! ce99ca62859e3b5ee0e5695b59309237  gcc/testsuite/gcc.target/i386/pieces-memcpy-18.c
! b5f6fb3aaac27e15ae52d9111e60d98d  gcc/testsuite/gcc.target/i386/pieces-memcpy-19.c
  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
--- 89503,89513 ----
  89d909d7d758041e829631ac800bf196  gcc/testsuite/gcc.target/i386/pieces-memcpy-15.c
  437a6c001b5f504cb8a978424f9f229c  gcc/testsuite/gcc.target/i386/pieces-memcpy-16.c
  a0fc0b89838032f850b17823a354b986  gcc/testsuite/gcc.target/i386/pieces-memcpy-17.c
! 7a34703054f1d16fc3e3de2cc1b87012  gcc/testsuite/gcc.target/i386/pieces-memcpy-18.c
! 9c7d83d79e63cea325215f50547e660a  gcc/testsuite/gcc.target/i386/pieces-memcpy-19.c
  279c04d20615905ca5bf2f44eb5a231d  gcc/testsuite/gcc.target/i386/pieces-memcpy-2.c
! 6a4eab7501e3febcfbba6ddf600581cc  gcc/testsuite/gcc.target/i386/pieces-memcpy-20.c
! 9d90237b50551a44a67d354724502ebb  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
*************** cd997974279df052137a9eb6b7161224  gcc/te
*** 79269,79303 ****
  4a7d1a3d782fc80de77eb424e11408a6  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
  a2c913299d352a6451775b290ec1815e  gcc/testsuite/gcc.target/i386/pieces-memset-1.c
  c41f980df778f8d15a4483383b7d8511  gcc/testsuite/gcc.target/i386/pieces-memset-10.c
! 36699977c9823831dcdc918a5f0e56e6  gcc/testsuite/gcc.target/i386/pieces-memset-11.c
  bee0e3ab99ebaaa281b982a8bb48cf7c  gcc/testsuite/gcc.target/i386/pieces-memset-12.c
  45f3a78ec4b0fcf169b2aa73d9282e11  gcc/testsuite/gcc.target/i386/pieces-memset-13.c
! f638273a9ead84bb946dc71dd7abee3a  gcc/testsuite/gcc.target/i386/pieces-memset-14.c
  d058923567ffc9376b1bfb6ba2c93340  gcc/testsuite/gcc.target/i386/pieces-memset-15.c
  b4a884cb8469cb35d8158bcb48c6e6a5  gcc/testsuite/gcc.target/i386/pieces-memset-16.c
  d6f6e6aa1a4cbbc851db78c34979ab20  gcc/testsuite/gcc.target/i386/pieces-memset-17.c
  b3f4ffe2d016b082155af80884489ade  gcc/testsuite/gcc.target/i386/pieces-memset-18.c
  c97e68fa59c5f886baf83a2e12c998f6  gcc/testsuite/gcc.target/i386/pieces-memset-19.c
! 5b2eac126ff01faf8648524199b8f0a2  gcc/testsuite/gcc.target/i386/pieces-memset-2.c
! 686f24b785543586a710fc3267072466  gcc/testsuite/gcc.target/i386/pieces-memset-20.c
  840c89477629ff575f8f87882dd486db  gcc/testsuite/gcc.target/i386/pieces-memset-21.c
  c5387195c56efb1dc4ee3aea30c3e6cc  gcc/testsuite/gcc.target/i386/pieces-memset-22.c
! 48e21ce9e2f53676f915a11496d611cf  gcc/testsuite/gcc.target/i386/pieces-memset-23.c
  27817c160b2383c67e9c259b1b249d1d  gcc/testsuite/gcc.target/i386/pieces-memset-24.c
  345c60f8fb0fd9595e972159cb0346d5  gcc/testsuite/gcc.target/i386/pieces-memset-25.c
  4f087c0b5fb21c6da53d8bd6bacd505b  gcc/testsuite/gcc.target/i386/pieces-memset-26.c
  e0bb92a526955a1789440ebafb809f58  gcc/testsuite/gcc.target/i386/pieces-memset-27.c
  1c439878817e3fad97e118a4daddf77e  gcc/testsuite/gcc.target/i386/pieces-memset-28.c
! 7018e77ee0514f6fe0ee280b75f6ab0f  gcc/testsuite/gcc.target/i386/pieces-memset-29.c
  bb245b3bbe402f7fd5e914e9819a64e1  gcc/testsuite/gcc.target/i386/pieces-memset-3.c
! dfdb563e4ff7bbe491b12bbbe647b9dc  gcc/testsuite/gcc.target/i386/pieces-memset-30.c
  4920af6ef8af7487a957349a29dbab5a  gcc/testsuite/gcc.target/i386/pieces-memset-31.c
  5a1d68c281d8c3d69242275385fca73b  gcc/testsuite/gcc.target/i386/pieces-memset-32.c
! 924e5e7e92512605ec9367e612f23eb7  gcc/testsuite/gcc.target/i386/pieces-memset-33.c
! 16f63d88d853af6b12c879750e183960  gcc/testsuite/gcc.target/i386/pieces-memset-34.c
  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
--- 89518,89552 ----
  4a7d1a3d782fc80de77eb424e11408a6  gcc/testsuite/gcc.target/i386/pieces-memcpy-9.c
  a2c913299d352a6451775b290ec1815e  gcc/testsuite/gcc.target/i386/pieces-memset-1.c
  c41f980df778f8d15a4483383b7d8511  gcc/testsuite/gcc.target/i386/pieces-memset-10.c
! 64b92480d31d1713e4ced63f50dcb992  gcc/testsuite/gcc.target/i386/pieces-memset-11.c
  bee0e3ab99ebaaa281b982a8bb48cf7c  gcc/testsuite/gcc.target/i386/pieces-memset-12.c
  45f3a78ec4b0fcf169b2aa73d9282e11  gcc/testsuite/gcc.target/i386/pieces-memset-13.c
! 044621b765b2c4905ec8f2524f4e0f0e  gcc/testsuite/gcc.target/i386/pieces-memset-14.c
  d058923567ffc9376b1bfb6ba2c93340  gcc/testsuite/gcc.target/i386/pieces-memset-15.c
  b4a884cb8469cb35d8158bcb48c6e6a5  gcc/testsuite/gcc.target/i386/pieces-memset-16.c
  d6f6e6aa1a4cbbc851db78c34979ab20  gcc/testsuite/gcc.target/i386/pieces-memset-17.c
  b3f4ffe2d016b082155af80884489ade  gcc/testsuite/gcc.target/i386/pieces-memset-18.c
  c97e68fa59c5f886baf83a2e12c998f6  gcc/testsuite/gcc.target/i386/pieces-memset-19.c
! 8bb7a2cdbd70a44a708055c032a985c3  gcc/testsuite/gcc.target/i386/pieces-memset-2.c
! 5a372288b951a009be554d0914924688  gcc/testsuite/gcc.target/i386/pieces-memset-20.c
  840c89477629ff575f8f87882dd486db  gcc/testsuite/gcc.target/i386/pieces-memset-21.c
  c5387195c56efb1dc4ee3aea30c3e6cc  gcc/testsuite/gcc.target/i386/pieces-memset-22.c
! 98c68e0b6a2c620026fb47275baba8ae  gcc/testsuite/gcc.target/i386/pieces-memset-23.c
  27817c160b2383c67e9c259b1b249d1d  gcc/testsuite/gcc.target/i386/pieces-memset-24.c
  345c60f8fb0fd9595e972159cb0346d5  gcc/testsuite/gcc.target/i386/pieces-memset-25.c
  4f087c0b5fb21c6da53d8bd6bacd505b  gcc/testsuite/gcc.target/i386/pieces-memset-26.c
  e0bb92a526955a1789440ebafb809f58  gcc/testsuite/gcc.target/i386/pieces-memset-27.c
  1c439878817e3fad97e118a4daddf77e  gcc/testsuite/gcc.target/i386/pieces-memset-28.c
! 1a885b5fc3ac3d260e8253ebe6c81fbf  gcc/testsuite/gcc.target/i386/pieces-memset-29.c
  bb245b3bbe402f7fd5e914e9819a64e1  gcc/testsuite/gcc.target/i386/pieces-memset-3.c
! 9e17f5db11177b5e7875de236be5d359  gcc/testsuite/gcc.target/i386/pieces-memset-30.c
  4920af6ef8af7487a957349a29dbab5a  gcc/testsuite/gcc.target/i386/pieces-memset-31.c
  5a1d68c281d8c3d69242275385fca73b  gcc/testsuite/gcc.target/i386/pieces-memset-32.c
! c34c46570862c2e08cd26df3722fa4ef  gcc/testsuite/gcc.target/i386/pieces-memset-33.c
! 4eac1caeead50771a30ab0b831775dd8  gcc/testsuite/gcc.target/i386/pieces-memset-34.c
  181b017254dd31eb2223399402d99647  gcc/testsuite/gcc.target/i386/pieces-memset-35.c
  2470a2e9bf55b8c93f14b390efa3a27b  gcc/testsuite/gcc.target/i386/pieces-memset-36.c
! 9a26a9dbfd66ef7e02dd7f92d9c117a7  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/te
*** 79305,79317 ****
  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
! 8f0614f1d8cbc09d9e6e515b9c85586c  gcc/testsuite/gcc.target/i386/pieces-memset-47.c
! fab4224ceed336ed6902793909c0c6c2  gcc/testsuite/gcc.target/i386/pieces-memset-48.c
! 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
--- 89554,89566 ----
  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
! 594c3b20aef6081c4b6fa3cead77414c  gcc/testsuite/gcc.target/i386/pieces-memset-44.c
! 32440b246e7ae403174c7dc12f5acd38  gcc/testsuite/gcc.target/i386/pieces-memset-45.c
! 3647374ee718421444609e296cfa0ad2  gcc/testsuite/gcc.target/i386/pieces-memset-46.c
! eb85498cf73e7590b98d2c24cd3bedd7  gcc/testsuite/gcc.target/i386/pieces-memset-47.c
! 126f946213273fb7469ca8d668469964  gcc/testsuite/gcc.target/i386/pieces-memset-48.c
! 9f2ed79a200ad2a71bf00d1e582aae79  gcc/testsuite/gcc.target/i386/pieces-memset-49.c
! 51ed74ecbf2110bdc708d17611a3663d  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
*************** d6be9416b5a692dcf10f49538e62c72a  gcc/te
*** 79357,79364 ****
  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
  0386e3fab23fe7e48eee2cfa3b04d7ff  gcc/testsuite/gcc.target/i386/pr100865-11b.c
  e292a240560fbabcde2b3e6709148e38  gcc/testsuite/gcc.target/i386/pr100865-11c.c
--- 89606,89613 ----
  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
! 78f0e3844baaf11368a3e02e0e0e61a7  gcc/testsuite/gcc.target/i386/pr100865-10a.c
! 216788a5980b50f5799c0c181e94faa0  gcc/testsuite/gcc.target/i386/pr100865-10b.c
  f5bc9b077ed43bdc9a703fbae0412df9  gcc/testsuite/gcc.target/i386/pr100865-11a.c
  0386e3fab23fe7e48eee2cfa3b04d7ff  gcc/testsuite/gcc.target/i386/pr100865-11b.c
  e292a240560fbabcde2b3e6709148e38  gcc/testsuite/gcc.target/i386/pr100865-11c.c
*************** bfc29b0613a8b50ad05723222e02fca0  gcc/te
*** 79366,79376 ****
  05ff62d2aea9db819682757c26e4d599  gcc/testsuite/gcc.target/i386/pr100865-12b.c
  609a6efc8f26048c66413a6b2cd5337e  gcc/testsuite/gcc.target/i386/pr100865-12c.c
  34a761a63cd2014d84ca26fea2853a7f  gcc/testsuite/gcc.target/i386/pr100865-2.c
! b8b50f6180977b3f28c7afe9ded05d31  gcc/testsuite/gcc.target/i386/pr100865-3.c
! ae222d570e09d9116b7c2f9853f5e702  gcc/testsuite/gcc.target/i386/pr100865-4a.c
! a90afdf44dd3d8d415e8841ab25031cf  gcc/testsuite/gcc.target/i386/pr100865-4b.c
  78ea55b8818c2a0569b83153050c7528  gcc/testsuite/gcc.target/i386/pr100865-5a.c
! f61ed5d74862aeb9b691e538e77da134  gcc/testsuite/gcc.target/i386/pr100865-5b.c
  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
--- 89615,89625 ----
  05ff62d2aea9db819682757c26e4d599  gcc/testsuite/gcc.target/i386/pr100865-12b.c
  609a6efc8f26048c66413a6b2cd5337e  gcc/testsuite/gcc.target/i386/pr100865-12c.c
  34a761a63cd2014d84ca26fea2853a7f  gcc/testsuite/gcc.target/i386/pr100865-2.c
! 41996af8c078f368a0eaf732c28fde57  gcc/testsuite/gcc.target/i386/pr100865-3.c
! 94272e9b3ca7a0c9f0bce53428b05cbd  gcc/testsuite/gcc.target/i386/pr100865-4a.c
! 7205f8bbba2d63098a67ea2e0f0a2a3a  gcc/testsuite/gcc.target/i386/pr100865-4b.c
  78ea55b8818c2a0569b83153050c7528  gcc/testsuite/gcc.target/i386/pr100865-5a.c
! d251b3b4e25ec1e31408e14d0c051fb6  gcc/testsuite/gcc.target/i386/pr100865-5b.c
  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
*************** e0bc688540cd8ed83ce6df81886303a5  gcc/te
*** 79410,79415 ****
--- 89659,89673 ----
  d4e20b825c09cf6794e6e5b597c7335f  gcc/testsuite/gcc.target/i386/pr101504.c
  dc16503e73180cbb7d121cbbe8978dea  gcc/testsuite/gcc.target/i386/pr101617.c
  5d41fc380eccae6344c39847965d0da0  gcc/testsuite/gcc.target/i386/pr101636.c
+ 74510e56c36bf6436d3a857c8f12e09a  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_and_vqi.c
+ 6e82ebb2d926f0cc02c7d8d2200e79d3  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_di.c
+ 4f194aefcbc83d33c15b2df662e17c72  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_hi.c
+ 836c85d539817aef8556121a3d59d456  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_ior_vqi.c
+ af6e23fd5453083c4ed2dd493c5754d2  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_qi.c
+ 87b04fcd2651035c6e704d956770f789  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_si.c
+ 4e11f543612fd0f86b61353dfd0126a1  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vdi.c
+ 3661dab76680ac122fac13334b468383  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vqi.c
+ ff4e1d818f49c6a5f38e589da88739b7  gcc/testsuite/gcc.target/i386/pr101639_reduc_mask_vsi.c
  12da55d83461aa19e9bc27fe99056a71  gcc/testsuite/gcc.target/i386/pr101668.c
  b974d1c1eb2c64f7c28acd2f356d3503  gcc/testsuite/gcc.target/i386/pr101685.c
  b34b7e9dae2a643708a6bf0b5f9b5bad  gcc/testsuite/gcc.target/i386/pr101716.c
*************** bafa333a176943cfc5ba57dcd53348db  gcc/te
*** 79524,79534 ****
  a631b59a82e0094f919cb4604edc35d2  gcc/testsuite/gcc.target/i386/pr103762-1c.c
  f7b20e275fb7245fb9757294a2d72c1f  gcc/testsuite/gcc.target/i386/pr103771-2.c
  94dae865f304453dfde03d14b8ace0cf  gcc/testsuite/gcc.target/i386/pr103771-3.c
  905c8c3d05e777381083e5dc308f6bbd  gcc/testsuite/gcc.target/i386/pr103771.c
  99c899ad45a3b907e5fe8f05e32242c4  gcc/testsuite/gcc.target/i386/pr103773-2.c
  339445d43abea93de6668ce9bec736ac  gcc/testsuite/gcc.target/i386/pr103773.c
  707ace5cc27a449d2433235218896e8a  gcc/testsuite/gcc.target/i386/pr103774.c
! 53abd38eebfefc9c7e39e5cfe0275fda  gcc/testsuite/gcc.target/i386/pr103785.c
  08e318251579ee56031bc5c6adb37a01  gcc/testsuite/gcc.target/i386/pr103861-2.c
  61ad63bb78255545f127846f3e287145  gcc/testsuite/gcc.target/i386/pr103861-3.c
  e9083d915db0485d104f15a6afbe9dfd  gcc/testsuite/gcc.target/i386/pr103861-4.c
--- 89782,89795 ----
  a631b59a82e0094f919cb4604edc35d2  gcc/testsuite/gcc.target/i386/pr103762-1c.c
  f7b20e275fb7245fb9757294a2d72c1f  gcc/testsuite/gcc.target/i386/pr103771-2.c
  94dae865f304453dfde03d14b8ace0cf  gcc/testsuite/gcc.target/i386/pr103771-3.c
+ 1d06b4793e0ec6ac430d52bd3ee6f986  gcc/testsuite/gcc.target/i386/pr103771-4.c
+ e0d248b981c3637733cd8ada0c6e7f2f  gcc/testsuite/gcc.target/i386/pr103771-5.c
+ a569933e8bd6c1c90234d58999b8264f  gcc/testsuite/gcc.target/i386/pr103771-6.c
  905c8c3d05e777381083e5dc308f6bbd  gcc/testsuite/gcc.target/i386/pr103771.c
  99c899ad45a3b907e5fe8f05e32242c4  gcc/testsuite/gcc.target/i386/pr103773-2.c
  339445d43abea93de6668ce9bec736ac  gcc/testsuite/gcc.target/i386/pr103773.c
  707ace5cc27a449d2433235218896e8a  gcc/testsuite/gcc.target/i386/pr103774.c
! 19fab35e443184f5b75fff5d1db35cd3  gcc/testsuite/gcc.target/i386/pr103785.c
  08e318251579ee56031bc5c6adb37a01  gcc/testsuite/gcc.target/i386/pr103861-2.c
  61ad63bb78255545f127846f3e287145  gcc/testsuite/gcc.target/i386/pr103861-3.c
  e9083d915db0485d104f15a6afbe9dfd  gcc/testsuite/gcc.target/i386/pr103861-4.c
*************** eb14eddf6e5656136e935eaa1eb82b99  gcc/te
*** 79574,79580 ****
  edf62206a68a4c58a0dec6fbdc090c31  gcc/testsuite/gcc.target/i386/pr104441-1a.c
  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
  9afbd8cbff177a7e555fe32de7558c2e  gcc/testsuite/gcc.target/i386/pr104451.c
  f34a56063b53daa2722dd66e280f5aab  gcc/testsuite/gcc.target/i386/pr104453.c
  30d7b1638a5f604ac4353737e0db1816  gcc/testsuite/gcc.target/i386/pr104458.c
--- 89835,89841 ----
  edf62206a68a4c58a0dec6fbdc090c31  gcc/testsuite/gcc.target/i386/pr104441-1a.c
  7847083e5431fa0d0f90a6966b944b11  gcc/testsuite/gcc.target/i386/pr104441-1b.c
  9db2b13a34fc86475d27728a925461c5  gcc/testsuite/gcc.target/i386/pr104446.c
! 64d3f21fd2e4a710ff40b27d7be49163  gcc/testsuite/gcc.target/i386/pr104447.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
*************** a92681d4c2c5095462e23684946fe9fd  gcc/te
*** 79585,79591 ****
  6f32caf69432ac867dd42051bcfa22a8  gcc/testsuite/gcc.target/i386/pr104502.c
  2bb2b636832da9741d92fab7c29a5ffc  gcc/testsuite/gcc.target/i386/pr104551.c
  3201dd2903e2d244e5e562f28327059d  gcc/testsuite/gcc.target/i386/pr104610-2.c
! b1ac4c44221a37640b0fc40086d39cb8  gcc/testsuite/gcc.target/i386/pr104610.c
  21083ed0382a1c184689d3a9ee1bc7ee  gcc/testsuite/gcc.target/i386/pr104637.c
  1c3cbf71b8260b841b1623172a27e2dd  gcc/testsuite/gcc.target/i386/pr104658.c
  c10378a2d73ee5141b52663c27dd9ab3  gcc/testsuite/gcc.target/i386/pr104664.c
--- 89846,89852 ----
  6f32caf69432ac867dd42051bcfa22a8  gcc/testsuite/gcc.target/i386/pr104502.c
  2bb2b636832da9741d92fab7c29a5ffc  gcc/testsuite/gcc.target/i386/pr104551.c
  3201dd2903e2d244e5e562f28327059d  gcc/testsuite/gcc.target/i386/pr104610-2.c
! 36e5cfcdd25c13ac8384fda907a7960e  gcc/testsuite/gcc.target/i386/pr104610.c
  21083ed0382a1c184689d3a9ee1bc7ee  gcc/testsuite/gcc.target/i386/pr104637.c
  1c3cbf71b8260b841b1623172a27e2dd  gcc/testsuite/gcc.target/i386/pr104658.c
  c10378a2d73ee5141b52663c27dd9ab3  gcc/testsuite/gcc.target/i386/pr104664.c
*************** bbd4316e9550f452c0b86cf4e3ecf4a8  gcc/te
*** 79682,79689 ****
  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
--- 89943,89950 ----
  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
! db4c0429f3849e92a97358dd999effe6  gcc/testsuite/gcc.target/i386/pr106060-2.c
! 4d6040b4efe9721902384beb5e0ce209  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
*************** a13005b8d335d0bb4a94a393643b9675  gcc/te
*** 79732,79738 ****
  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
--- 89993,89999 ----
  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
! a7eccdbbf3de4d0269b1c93130a1424a  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
*************** f41bcc9cec5b788807bebdd7850d9984  gcc/te
*** 79767,79773 ****
  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
--- 90028,90034 ----
  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
! c341b75abb475df08466bf91a8376ced  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
*************** fdb825079d00bd7662b2d22d85896ebf  gcc/te
*** 79782,79787 ****
--- 90043,90049 ----
  20757fb988762a2246bdc505aaf4d3ef  gcc/testsuite/gcc.target/i386/pr109011-w2.c
  1675944d49d0d21e6ed54ac1de036ca6  gcc/testsuite/gcc.target/i386/pr109052-2.c
  06350ebd5780be04cce09335e3042ce5  gcc/testsuite/gcc.target/i386/pr109052.c
+ 3fa725e356d16614323ab4902b6ced68  gcc/testsuite/gcc.target/i386/pr109093-1.c
  4951625cf53f5113b1aa560d5d82ceb2  gcc/testsuite/gcc.target/i386/pr109109-1.c
  b1a0a8623e789df1f0aa53476ec194b6  gcc/testsuite/gcc.target/i386/pr109109-2.c
  c53a3d9bef0c2240ee08db4b18471dbd  gcc/testsuite/gcc.target/i386/pr109117-1.c
*************** c53a3d9bef0c2240ee08db4b18471dbd  gcc/te
*** 79789,79798 ****
  52be5e84981a88e5c246ca3d21014b7e  gcc/testsuite/gcc.target/i386/pr109173-1.c
  dc74ed1bf908a060467845b63e837101  gcc/testsuite/gcc.target/i386/pr109174-1.c
  a643678ff500c5823e0dfd6f13a78767  gcc/testsuite/gcc.target/i386/pr109276.c
! 0c97b030ebc254d658a2a94036b21e96  gcc/testsuite/gcc.target/i386/pr109362.c
  53f3c713c5195f8b1c6f3756b973b949  gcc/testsuite/gcc.target/i386/pr109458.c
  3d997ce0e13218819a2d74880f4ade56  gcc/testsuite/gcc.target/i386/pr109504.c
  ca03ac246410edffe018806fae9bc377  gcc/testsuite/gcc.target/i386/pr109520.c
  abd4572edbe8fd903a9187e979f0564a  gcc/testsuite/gcc.target/i386/pr109807.c
  b5200af3303388d353bf85ab73fac84f  gcc/testsuite/gcc.target/i386/pr109825.c
  22f1825b4e8265962dce9925a8bc92d8  gcc/testsuite/gcc.target/i386/pr109900.c
--- 90051,90063 ----
  52be5e84981a88e5c246ca3d21014b7e  gcc/testsuite/gcc.target/i386/pr109173-1.c
  dc74ed1bf908a060467845b63e837101  gcc/testsuite/gcc.target/i386/pr109174-1.c
  a643678ff500c5823e0dfd6f13a78767  gcc/testsuite/gcc.target/i386/pr109276.c
! 2611b03821dc49d72f579ec50f0550c6  gcc/testsuite/gcc.target/i386/pr109362.c
  53f3c713c5195f8b1c6f3756b973b949  gcc/testsuite/gcc.target/i386/pr109458.c
  3d997ce0e13218819a2d74880f4ade56  gcc/testsuite/gcc.target/i386/pr109504.c
  ca03ac246410edffe018806fae9bc377  gcc/testsuite/gcc.target/i386/pr109520.c
+ 37480520e8633023907bcbc30d4475fa  gcc/testsuite/gcc.target/i386/pr109780-1.c
+ e1191465316da48fe16c42042aee46c4  gcc/testsuite/gcc.target/i386/pr109780-2.c
+ cdbbe1a4f593e2d2530aa43e0001f59a  gcc/testsuite/gcc.target/i386/pr109780-3.c
  abd4572edbe8fd903a9187e979f0564a  gcc/testsuite/gcc.target/i386/pr109807.c
  b5200af3303388d353bf85ab73fac84f  gcc/testsuite/gcc.target/i386/pr109825.c
  22f1825b4e8265962dce9925a8bc92d8  gcc/testsuite/gcc.target/i386/pr109900.c
*************** bee23171881c8628b022e11c82af1737  gcc/te
*** 79823,79829 ****
  a9e9b13ffffb6326bdaaf3a4037cac8b  gcc/testsuite/gcc.target/i386/pr110227.c
  7c4e6a1aee658b34e96c1c14c2cbf28b  gcc/testsuite/gcc.target/i386/pr110232.c
  7f0cde3ec2fdeaca91525ac49787aa22  gcc/testsuite/gcc.target/i386/pr110309.c
! b6245dfe719261e91e59f38dfe5a4812  gcc/testsuite/gcc.target/i386/pr110310.c
  4ad7a316776972272f625f2de53164d6  gcc/testsuite/gcc.target/i386/pr110372.c
  68e0d40a0818ba1b85cd95dc7ce0b1e4  gcc/testsuite/gcc.target/i386/pr110438.c
  674aa758380ee7d3317eb3b15cc45aac  gcc/testsuite/gcc.target/i386/pr110452.c
--- 90088,90094 ----
  a9e9b13ffffb6326bdaaf3a4037cac8b  gcc/testsuite/gcc.target/i386/pr110227.c
  7c4e6a1aee658b34e96c1c14c2cbf28b  gcc/testsuite/gcc.target/i386/pr110232.c
  7f0cde3ec2fdeaca91525ac49787aa22  gcc/testsuite/gcc.target/i386/pr110309.c
! 81f55a64cc2d99e58b11a42c46a2a575  gcc/testsuite/gcc.target/i386/pr110310.c
  4ad7a316776972272f625f2de53164d6  gcc/testsuite/gcc.target/i386/pr110372.c
  68e0d40a0818ba1b85cd95dc7ce0b1e4  gcc/testsuite/gcc.target/i386/pr110438.c
  674aa758380ee7d3317eb3b15cc45aac  gcc/testsuite/gcc.target/i386/pr110452.c
*************** b8e579818f606e61adda2b0a5f6d00eb  gcc/te
*** 79834,79840 ****
  dd3eccd855c45cecccb9c94bedec70a1  gcc/testsuite/gcc.target/i386/pr110591-2.c
  0e9fb9528717f574331e65eecf6b55c5  gcc/testsuite/gcc.target/i386/pr110591.c
  910a215c38515accc609e599aa44b29f  gcc/testsuite/gcc.target/i386/pr110598.c
! 75afd745fea78079d6bc6909053977bf  gcc/testsuite/gcc.target/i386/pr110701.c
  f212514a427070216dde696c2051d1d5  gcc/testsuite/gcc.target/i386/pr110717-2.c
  b103630dbb646d2ae85ba29c9f6f1057  gcc/testsuite/gcc.target/i386/pr110717.c
  d9f9c066154ea6fed146f6dcf67c639c  gcc/testsuite/gcc.target/i386/pr110762-v4hf.c
--- 90099,90105 ----
  dd3eccd855c45cecccb9c94bedec70a1  gcc/testsuite/gcc.target/i386/pr110591-2.c
  0e9fb9528717f574331e65eecf6b55c5  gcc/testsuite/gcc.target/i386/pr110591.c
  910a215c38515accc609e599aa44b29f  gcc/testsuite/gcc.target/i386/pr110598.c
! 77a5c2c592eaba708fd19129d3d9cc4c  gcc/testsuite/gcc.target/i386/pr110701.c
  f212514a427070216dde696c2051d1d5  gcc/testsuite/gcc.target/i386/pr110717-2.c
  b103630dbb646d2ae85ba29c9f6f1057  gcc/testsuite/gcc.target/i386/pr110717.c
  d9f9c066154ea6fed146f6dcf67c639c  gcc/testsuite/gcc.target/i386/pr110762-v4hf.c
*************** f27b0d61fbaf16e0f8696c50b922015c  gcc/te
*** 79851,79865 ****
  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/testsuite/gcc.target/i386/pr111267.c
  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
--- 90116,90131 ----
  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
! a5bdaa68446709fce2f8071ee1434f7d  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/testsuite/gcc.target/i386/pr111267.c
  9355c41ef1e78b70305475dee4bed5c8  gcc/testsuite/gcc.target/i386/pr111306.c
  1459550770245224c9edce111674e4e5  gcc/testsuite/gcc.target/i386/pr111340.c
+ 4f57dde561e6120bd1e725a174ba2cf2  gcc/testsuite/gcc.target/i386/pr111657-1.c
  5792d8414a49aa4afbf19fa324e6fc73  gcc/testsuite/gcc.target/i386/pr111657.c
! 9b61b4c7f629c440acbc471b05b25789  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
*** 79868,79875 ****
  603eaebdbc5d49ed79685f9993d08daa  gcc/testsuite/gcc.target/i386/pr111820-2.c
  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
--- 90134,90139 ----
*************** a6040be6551808763efaec7c170a9508  gcc/te
*** 79918,79924 ****
  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
  2f2dbd2c371a9961cb21196f2ee6f88d  gcc/testsuite/gcc.target/i386/pr113122-4.c
  234a82d280e8430bcdddf0d13ef70971  gcc/testsuite/gcc.target/i386/pr113133-1.c
  9fb3fb011da6ec53a9b79e09b5677dbc  gcc/testsuite/gcc.target/i386/pr113133-2.c
--- 90182,90188 ----
  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
! 992a68b5060631d9f38e6f543a7791f0  gcc/testsuite/gcc.target/i386/pr113122-3.c
  2f2dbd2c371a9961cb21196f2ee6f88d  gcc/testsuite/gcc.target/i386/pr113122-4.c
  234a82d280e8430bcdddf0d13ef70971  gcc/testsuite/gcc.target/i386/pr113133-1.c
  9fb3fb011da6ec53a9b79e09b5677dbc  gcc/testsuite/gcc.target/i386/pr113133-2.c
*************** bd1cafada5f0044d73bfd97b075ee1ac  gcc/te
*** 79973,79979 ****
  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
--- 90237,90243 ----
  a92b6563a79368bbca34432a840644a1  gcc/testsuite/gcc.target/i386/pr115299.c
  7b7e18701757d2e67dea575cf9b05922  gcc/testsuite/gcc.target/i386/pr115321.c
  beee5a2627011ee9deaa9161648359d8  gcc/testsuite/gcc.target/i386/pr115384.c
! 24f0912b432005f810a5c221bbb2d46d  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
*************** ae4ee357225c00ac286e183fee7b266a  gcc/te
*** 79983,79989 ****
  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
--- 90247,90253 ----
  324dce510f57c52847b8a618b2c5eafe  gcc/testsuite/gcc.target/i386/pr115749.c
  eb7e87be69198c687bb867fd649b611e  gcc/testsuite/gcc.target/i386/pr115796.c
  99bd8cb8feeb63bd4ef7afd002426817  gcc/testsuite/gcc.target/i386/pr115843.c
! 7b4b1f18f5fc39440b9b4d78d3b47a8f  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
*************** f465b493ef4cd8fedb8eb45d4397bdf2  gcc/te
*** 79997,80010 ****
  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
--- 90261,90274 ----
  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
  5d7ed648796e3bb1badb99e986fd299a  gcc/testsuite/gcc.target/i386/pr116512.c
! 8e60e9aaa7e5010e46a423fda04b10c4  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
+ b0ca893acbcebd62e1a629d54c72cdfe  gcc/testsuite/gcc.target/i386/pr116815.c
  15bae7870bdfe5399b1490ea96088982  gcc/testsuite/gcc.target/i386/pr116839.c
! 07e44fcf59a87b811e189ac1285419e2  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
*************** bc6fa580d6a8811a7eb7c509c082a543  gcc/te
*** 80018,80026 ****
  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
--- 90282,90289 ----
  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
! 637caf64e5bf54243a2283b2ad4e6ad9  gcc/testsuite/gcc.target/i386/pr117240_avx512f.c
  da692b8fe7fe8e3d33b45f3f919da356  gcc/testsuite/gcc.target/i386/pr117296.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
*************** ff72d102e6495b395a41c9ca344439f9  gcc/te
*** 80034,80049 ****
  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
--- 90297,90317 ----
  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
+ 568e67a3d2e1f459fbe474e59f248d01  gcc/testsuite/gcc.target/i386/pr117839-1a.c
+ 85c6f30c7af9f57afd13c4835c6a4753  gcc/testsuite/gcc.target/i386/pr117839-1b.c
+ b3b074d0d46662a421a46ccd8c6a9024  gcc/testsuite/gcc.target/i386/pr117839-2.c
+ 2e7f59532288a833101c61f048549348  gcc/testsuite/gcc.target/i386/pr117839-3a.c
+ 4f36e762711d454d020d6f95654acc6a  gcc/testsuite/gcc.target/i386/pr117839-3b.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
! c8bdea6c9ffbbf9001f21d299c7e8460  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
! 623809d94f642238dedfef9a3a243000  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
*************** e7f6a568e551d3786797d6f56294b949  gcc/te
*** 80076,80108 ****
  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
  1404641b6882eb8151341efedd467313  gcc/testsuite/gcc.target/i386/pr120427-1.c
  b912addc770944f54b5baa8db2467d9d  gcc/testsuite/gcc.target/i386/pr120427-2.c
  c87152a8a84d546309327b3da89eb566  gcc/testsuite/gcc.target/i386/pr120427-3.c
  f5a1252b1fe24ea2b97ff3762c399ed9  gcc/testsuite/gcc.target/i386/pr120427-4.c
  16984aa55364473d08d90334f60bf59e  gcc/testsuite/gcc.target/i386/pr120427-5.c
  e33b63cd8f6d60b286b2286424f25714  gcc/testsuite/gcc.target/i386/pr120908.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
  12e796120a8d76792772ddd159f57f3f  gcc/testsuite/gcc.target/i386/pr121274.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
  6a09a31c8162440929d99a05b6983c5a  gcc/testsuite/gcc.target/i386/pr14552.c
  e0e0a92c78bf564587af65728ae84707  gcc/testsuite/gcc.target/i386/pr15184-1.c
! f2b5aa949434305bb4f137d654b5f62e  gcc/testsuite/gcc.target/i386/pr15184-2.c
  d4aa6113ea62bc36639d93e1e44a1210  gcc/testsuite/gcc.target/i386/pr17390.c
  2e4c03f3bc4f33ebf1fe63318811709f  gcc/testsuite/gcc.target/i386/pr17692.c
  d3dae857859b68227163d1fc45aaf67c  gcc/testsuite/gcc.target/i386/pr18041-1.c
--- 90344,90538 ----
  b8172e9b0b80f9484c5df81036fc03af  gcc/testsuite/gcc.target/i386/pr118815.c
  0f3590e2e1a5ad51d95272730fbebe25  gcc/testsuite/gcc.target/i386/pr118936.c
  a29824de389210a43ed1b8d66fd67fc4  gcc/testsuite/gcc.target/i386/pr118940.c
+ 72b11cb5abc3f7bc24cf668f7c6c133c  gcc/testsuite/gcc.target/i386/pr118994-1.c
+ e2c348310fb018fd99488d16afdd02a4  gcc/testsuite/gcc.target/i386/pr118994-2.c
+ 9535f883e80c112c73ae6e362946da10  gcc/testsuite/gcc.target/i386/pr119103.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
! 585957011c1a198acac62a364eb8cc3a  gcc/testsuite/gcc.target/i386/pr119386-1.c
! f2f4c3891b4c7711105299435de5a9c0  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
! 9f5fc319370713ca538c4ff5dba50a70  gcc/testsuite/gcc.target/i386/pr119784a.c
  038406363ec46be9b531268d03546b94  gcc/testsuite/gcc.target/i386/pr119784b.c
+ d3fd8df69f54080b300d3fa63445f693  gcc/testsuite/gcc.target/i386/pr119795.c
+ 1eb4ee8a31ea901f2b8b18e1346e6d95  gcc/testsuite/gcc.target/i386/pr119884.c
+ 2cc171f199bf9e81728d6f33d15ea6c0  gcc/testsuite/gcc.target/i386/pr119919.c
+ 0a65f7a12fa8d04fa79c2af4b21b5f14  gcc/testsuite/gcc.target/i386/pr120031.c
+ 499323eca85489bbeb8478e0a1c91241  gcc/testsuite/gcc.target/i386/pr120032-1.c
+ 8b7deb747f63c3654334325f025937b4  gcc/testsuite/gcc.target/i386/pr120032-2.c
+ 20bea83e4863880948ed90566766c909  gcc/testsuite/gcc.target/i386/pr120032-3.c
+ dd47421a141f36dc244e35b0237335f0  gcc/testsuite/gcc.target/i386/pr120360.c
  1404641b6882eb8151341efedd467313  gcc/testsuite/gcc.target/i386/pr120427-1.c
  b912addc770944f54b5baa8db2467d9d  gcc/testsuite/gcc.target/i386/pr120427-2.c
  c87152a8a84d546309327b3da89eb566  gcc/testsuite/gcc.target/i386/pr120427-3.c
  f5a1252b1fe24ea2b97ff3762c399ed9  gcc/testsuite/gcc.target/i386/pr120427-4.c
  16984aa55364473d08d90334f60bf59e  gcc/testsuite/gcc.target/i386/pr120427-5.c
+ ba011de94e8c76e7b3328d4e8e3327b8  gcc/testsuite/gcc.target/i386/pr120434-1.c
+ 3cfa365a3c52dad131baec47ad46e76d  gcc/testsuite/gcc.target/i386/pr120434-2.c
+ 252fe8c2e6c536aceb69a6f43a4279b3  gcc/testsuite/gcc.target/i386/pr120553.c
+ b8ebdafc2fa7c81ba75987868812e914  gcc/testsuite/gcc.target/i386/pr120689.c
+ 4419e520f3b880b2f55a7a1c5ee551f6  gcc/testsuite/gcc.target/i386/pr120691.c
+ 9c574bf548e6423ff47b97232d310a9b  gcc/testsuite/gcc.target/i386/pr120728.c
+ 26580d939ed25dfa9d160c6061a8abe9  gcc/testsuite/gcc.target/i386/pr120741.c
+ f2500ee7427a6f301e7b39b11a7dc2e0  gcc/testsuite/gcc.target/i386/pr120839-1a.c
+ 6009e404334a78187aaeb2704495e1fa  gcc/testsuite/gcc.target/i386/pr120839-1b.c
+ 72adea6e74a9cbeb50c29b19823ebe18  gcc/testsuite/gcc.target/i386/pr120839-2.c
+ c1a42e6abf341c78082c17c60365086c  gcc/testsuite/gcc.target/i386/pr120840-1a.c
+ b69eb677daef92be04da1f0e0218c44e  gcc/testsuite/gcc.target/i386/pr120840-1b.c
+ 90c426e3f9f68074b3688e77c0a85c20  gcc/testsuite/gcc.target/i386/pr120840-1c.c
+ b157fbe2632de5156079590d5faadfd7  gcc/testsuite/gcc.target/i386/pr120840-1d.c
+ 4b9fcb69739d672e799c27a972aaf97d  gcc/testsuite/gcc.target/i386/pr120881-1a.c
+ be5b82c04ee4bc5470f2a54c12758197  gcc/testsuite/gcc.target/i386/pr120881-1b.c
+ dc5699b1ed908f2743344eb7eccdf1b4  gcc/testsuite/gcc.target/i386/pr120881-1c.c
+ ee181f50a327c5ee8df5da7cab955ca5  gcc/testsuite/gcc.target/i386/pr120881-1d.c
+ 9e01dd8a47d1204b9266fddba59ae6da  gcc/testsuite/gcc.target/i386/pr120881-2a.c
+ 307d8a4169ca59164e9e13b544538eab  gcc/testsuite/gcc.target/i386/pr120881-2b.c
  e33b63cd8f6d60b286b2286424f25714  gcc/testsuite/gcc.target/i386/pr120908.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
+ 6a25be6d33ab51c368ed8c183ba0aa29  gcc/testsuite/gcc.target/i386/pr120936-1.c
+ 1bdeaca98bb5b1fa8361226c6393cb12  gcc/testsuite/gcc.target/i386/pr120936-10.c
+ b295978527c57d1d168202b01305b1e8  gcc/testsuite/gcc.target/i386/pr120936-11.c
+ eefb4b4eea3e31af3dfd2f3cacfee486  gcc/testsuite/gcc.target/i386/pr120936-12.c
+ c8123c9fc6a80e42416267a80d9de9d0  gcc/testsuite/gcc.target/i386/pr120936-2.c
+ 333853ab2fde81e9aaa0226bee84a90b  gcc/testsuite/gcc.target/i386/pr120936-3.c
+ 60cfa2f2738a9b2bd49f8c3ad5e101e8  gcc/testsuite/gcc.target/i386/pr120936-4.c
+ 7ea8e247e402e1014327254f47d30cb1  gcc/testsuite/gcc.target/i386/pr120936-5.c
+ dce72b92e3248a6f50bb05e57e7400f1  gcc/testsuite/gcc.target/i386/pr120936-6.c
+ e46459a506a641702fdeaa8713b478db  gcc/testsuite/gcc.target/i386/pr120936-7.c
+ b56b7319ec16cc733aa742b3020839be  gcc/testsuite/gcc.target/i386/pr120936-8.c
+ 41a473a58436434cb766d45d789ce070  gcc/testsuite/gcc.target/i386/pr120936-9.c
+ 7aab49fe981257c8717fc97ce53ade31  gcc/testsuite/gcc.target/i386/pr120941-1.c
+ 56e6214e78411271065383bb6b1486a7  gcc/testsuite/gcc.target/i386/pr121015.c
+ 7169595edef2ff6ffd51efdb76f2cbfc  gcc/testsuite/gcc.target/i386/pr121062-1.c
+ 5652a3df7a8eedd930822cda2fa45a36  gcc/testsuite/gcc.target/i386/pr121062-2.c
+ 24252ca24cbd1c83a159d66504360be7  gcc/testsuite/gcc.target/i386/pr121062-3a.c
+ b8ed1da53d7ba7c91e9b2842fb7537a1  gcc/testsuite/gcc.target/i386/pr121062-3b.c
+ 183b6220a84aa496944825165f599d72  gcc/testsuite/gcc.target/i386/pr121062-3c.c
+ c2c742123569404e7198c6df1a36f70c  gcc/testsuite/gcc.target/i386/pr121062-4.c
+ ea3bd3c87f1bfab3ecd4b10938603f3e  gcc/testsuite/gcc.target/i386/pr121062-5.c
+ 83011205f508dd00327e23a37b671164  gcc/testsuite/gcc.target/i386/pr121062-6.c
+ 2eba911200c45b8588594a65f754ab19  gcc/testsuite/gcc.target/i386/pr121062-7.c
+ 927272ffdae3f94ea61b2ef5928406b8  gcc/testsuite/gcc.target/i386/pr121208-1a.c
+ 7c72ec30b35b3a4cd38b36be39966e1b  gcc/testsuite/gcc.target/i386/pr121208-1b.c
+ 4bc0f0b5cb9d3cd77907d3b642e0f8db  gcc/testsuite/gcc.target/i386/pr121208-2a.c
+ 26d68c5cba57817989670af4634fe936  gcc/testsuite/gcc.target/i386/pr121208-2b.c
+ d4ebe08b4cb963582547d8bb5712e712  gcc/testsuite/gcc.target/i386/pr121208-3a.c
+ 5064c3ab2b92e2f20dcd604d557d738c  gcc/testsuite/gcc.target/i386/pr121208-3b.c
+ 321ee1eab147503f464757be23aa19a6  gcc/testsuite/gcc.target/i386/pr121230.c
  12e796120a8d76792772ddd159f57f3f  gcc/testsuite/gcc.target/i386/pr121274.c
+ 9e5e7825e0736b7812bd1fc447f5443f  gcc/testsuite/gcc.target/i386/pr121303.c
+ d776a3b50c6898b016b55e83ce09a8f1  gcc/testsuite/gcc.target/i386/pr121410.c
+ 04a35de4c1236189e2a79120121c9b9b  gcc/testsuite/gcc.target/i386/pr121497.c
+ 03795a7004932e2bf1d168c07ef28bcd  gcc/testsuite/gcc.target/i386/pr121540-1.c
+ ddf82710152a977ee9b135ac1ed24bee  gcc/testsuite/gcc.target/i386/pr121540-2.c
+ e6b30d1b12ce6371b1496537f813409b  gcc/testsuite/gcc.target/i386/pr121541-1a.c
+ 2a443e96f43e220ef6d334076ece0b0b  gcc/testsuite/gcc.target/i386/pr121541-1b.c
+ 084e33f76e80334e52b27d1524ffa03d  gcc/testsuite/gcc.target/i386/pr121541-2.c
+ 61193cebab7f2e3d31c656fa88d7c598  gcc/testsuite/gcc.target/i386/pr121541-3.c
+ 2dc3b7effccafde04f6a1a6979dfda02  gcc/testsuite/gcc.target/i386/pr121541-4.c
+ 49453a7f94bae8710b481412068b8c3a  gcc/testsuite/gcc.target/i386/pr121541-5a.c
+ 49647fa6eb097d991a160b581c3ad123  gcc/testsuite/gcc.target/i386/pr121541-5b.c
+ acecf2f1dc8cd91c8c8b1bdd86ee2f01  gcc/testsuite/gcc.target/i386/pr121571.c
+ 01537400901755ab7517f93176f78533  gcc/testsuite/gcc.target/i386/pr121572-1a.c
+ 68b576a781e6a2dc5f79397f2956beaf  gcc/testsuite/gcc.target/i386/pr121572-1b.c
+ 7fe4d8dc41303448e9d4b3659eb12e8e  gcc/testsuite/gcc.target/i386/pr121572-2a.c
+ 04e55eb00b90402ca90af7e818eb8d3c  gcc/testsuite/gcc.target/i386/pr121572-2b.c
+ ab4d263df7abea222d27ba922a50fcf9  gcc/testsuite/gcc.target/i386/pr121607-1a.c
+ 8cc594ac59b59b7e05f0e4eabade820d  gcc/testsuite/gcc.target/i386/pr121607-1b.c
+ ba2aa593bb49ad417a1529200ff3424c  gcc/testsuite/gcc.target/i386/pr121635-1a.c
+ 1e963869ee6652e4c62df7f542bcf115  gcc/testsuite/gcc.target/i386/pr121635-1b.c
+ 0d37ccf4ce47e7dcde6ab825c6bbaf52  gcc/testsuite/gcc.target/i386/pr121658.c
+ 5c1b31e5d120f3cb48033e31d21e3cd4  gcc/testsuite/gcc.target/i386/pr121668-1a.c
+ ebb5cc46535371def38195e7c3778750  gcc/testsuite/gcc.target/i386/pr121668-1b.c
+ 0dfb5c5486263ad7ae9f9ed8ddc6e436  gcc/testsuite/gcc.target/i386/pr121694-1a.c
+ b0e272e5b09d7d22e6b9a829085ecef5  gcc/testsuite/gcc.target/i386/pr121694-1b.c
+ 069d9d6f52f424f321e424a7b0cd8cb0  gcc/testsuite/gcc.target/i386/pr121699.c
+ e17710962215b2fb5e88ba71ef85c9a1  gcc/testsuite/gcc.target/i386/pr121725-1a.c
+ f9eebd6cace65460975a88f37b9e15eb  gcc/testsuite/gcc.target/i386/pr121725-1b.c
+ 671eb6b6dd41d0afefc1347129213f3d  gcc/testsuite/gcc.target/i386/pr121726.c
+ 5f918da94624837422839151fb9030bf  gcc/testsuite/gcc.target/i386/pr121861-1a.c
+ 2f572062e15d70ca97f9876842049bc9  gcc/testsuite/gcc.target/i386/pr121861-1b.c
+ 0424be5958b1e4555f4bc906f8604a14  gcc/testsuite/gcc.target/i386/pr121934-1a.c
+ fb77d6d584e12d8b7ad993884cf05d65  gcc/testsuite/gcc.target/i386/pr121934-1b.c
+ fb7079c680caec2d7b9895e6acd32870  gcc/testsuite/gcc.target/i386/pr121934-2a.c
+ fb1cd84171e92c4f4f9c1c6354aa2c73  gcc/testsuite/gcc.target/i386/pr121934-2b.c
+ bfd29f032b9eb39df2f519ce5350db9a  gcc/testsuite/gcc.target/i386/pr121934-3a.c
+ 0cd9fa5082a6b75e02ac308b895e0d43  gcc/testsuite/gcc.target/i386/pr121934-3b.c
+ 179416d6c3102d7d079cd2e1f46ba340  gcc/testsuite/gcc.target/i386/pr121934-4a.c
+ dff684f08a4dc4184ca929f14d99767e  gcc/testsuite/gcc.target/i386/pr121934-4b.c
+ d2e0d6146b057e3b3cbcbdb57a656d82  gcc/testsuite/gcc.target/i386/pr121934-5a.c
+ 9049f7716994299e74114bae9313a56b  gcc/testsuite/gcc.target/i386/pr121934-5b.c
+ f6ba2146f2b5caaa456530852bc3b175  gcc/testsuite/gcc.target/i386/pr122021-0.c
+ 600ff3c5da35f468b87a23e0d1678a3e  gcc/testsuite/gcc.target/i386/pr122104.c
+ e5e8ba4f460f32c4d01f7295cd3635e6  gcc/testsuite/gcc.target/i386/pr122150.c
+ 4ee092e04b4910e875927065ac6cfd1f  gcc/testsuite/gcc.target/i386/pr122180.c
+ bc47c79dae6f9fafe54d99c3d5a9a226  gcc/testsuite/gcc.target/i386/pr122266.c
+ 85964ed6a10a9c791bd0dbd8ec2ad31e  gcc/testsuite/gcc.target/i386/pr122320-mask16.c
+ 04bbaaa2b8e4401a6aa49e2c71f2c0b7  gcc/testsuite/gcc.target/i386/pr122320-mask2.c
+ ae9cefa4d949ae63e9380aeb14fae221  gcc/testsuite/gcc.target/i386/pr122320-mask32.c
+ ff0a586f8aaac7078fb79402d3f0df4b  gcc/testsuite/gcc.target/i386/pr122320-mask4.c
+ 9a861d0f957f59a5dc5e7cafeddd1343  gcc/testsuite/gcc.target/i386/pr122320-mask64.c
+ f6a03ec739c3c632b84006aa8e240dae  gcc/testsuite/gcc.target/i386/pr122320-mask8.c
+ 45326b5bfc3d272e40b81aeae891e3cf  gcc/testsuite/gcc.target/i386/pr122343-1a.c
+ f07910007f1912527ae919b6677082a3  gcc/testsuite/gcc.target/i386/pr122343-1b.c
+ 9780bc58fb18cd60275a1f2b0a92d8e2  gcc/testsuite/gcc.target/i386/pr122343-2a.c
+ 6aae25738ac220210fc9c72a006b981c  gcc/testsuite/gcc.target/i386/pr122343-2b.c
+ 5bc6e9971e62b41ae74fb31f56b1c156  gcc/testsuite/gcc.target/i386/pr122343-3.c
+ 3fa492381514ec5dfa39196008fa28d6  gcc/testsuite/gcc.target/i386/pr122343-4a.c
+ b2a41015134301ed8f0b1f49f522f97f  gcc/testsuite/gcc.target/i386/pr122343-4b.c
+ b4e6503fcde0c5e1fe990ba2d612f2cf  gcc/testsuite/gcc.target/i386/pr122343-5a.c
+ 0b5ad6ab6bd66b78bfd5fb0d0f8eddaa  gcc/testsuite/gcc.target/i386/pr122343-5b.c
+ 9616fc5d411acc9e7234b569b59a5657  gcc/testsuite/gcc.target/i386/pr122343-6a.c
+ 9372a8680b4f9db4a59d56239d200316  gcc/testsuite/gcc.target/i386/pr122343-6b.c
+ 0935219317f53279b008ff0b87ba6ad1  gcc/testsuite/gcc.target/i386/pr122343-7.c
+ a23e3aee9cb7b8d2fe5895c930cac402  gcc/testsuite/gcc.target/i386/pr122390-1.c
+ 160b6bb9cb1df1775f284996fcddbc62  gcc/testsuite/gcc.target/i386/pr122390.c
+ beaa59876937a489a8ce9f276a586c83  gcc/testsuite/gcc.target/i386/pr122457.c
+ b5fef8fb540e17f32442a50d6ee40f1e  gcc/testsuite/gcc.target/i386/pr122518.c
+ 93c2651b636b33af98942b4d04ed3a85  gcc/testsuite/gcc.target/i386/pr122534.c
+ 609faa828d84f786709fd1c4f7c03431  gcc/testsuite/gcc.target/i386/pr122598.c
+ 405fadb5a4007fdee8be974babcb3550  gcc/testsuite/gcc.target/i386/pr122675-1.c
+ 68c5cb935b4b7d76ed31899761e6b756  gcc/testsuite/gcc.target/i386/pr123027.c
+ 6631a523638aaa28883a1480bb393315  gcc/testsuite/gcc.target/i386/pr123121.c
+ 2931c5829c33b01bbef9a329552be2bb  gcc/testsuite/gcc.target/i386/pr123210.c
+ 51d42fc40aa1faa649ea3595c2494314  gcc/testsuite/gcc.target/i386/pr123238.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
+ 8be8732e201b30755cf471a1f8ac1cf6  gcc/testsuite/gcc.target/i386/pr123319.c
+ fd0c95fcad577a49c3553f21604c3b61  gcc/testsuite/gcc.target/i386/pr123484.c
+ 5263cb01b17b6df3496a998c2a8e70d8  gcc/testsuite/gcc.target/i386/pr123489.c
+ 0c572aee98b871b5098fcc5a78b5d069  gcc/testsuite/gcc.target/i386/pr123523.c
+ 22075af1d8889b20a319ee5c1ddae745  gcc/testsuite/gcc.target/i386/pr123583.c
+ 9949ec20bd5dbd25bf3dad6832f9205f  gcc/testsuite/gcc.target/i386/pr123585.c
+ 3b4a91b334d1b19a6101a3fc7575990f  gcc/testsuite/gcc.target/i386/pr123958.c
+ fbfd31ba28ddc5c31ac2fd9d714443bb  gcc/testsuite/gcc.target/i386/pr124056.c
+ d27914ddcfa1d9a135c3e7189bd6af10  gcc/testsuite/gcc.target/i386/pr124098.c
+ 47cf91db1dea0c9b92db6c1fae08c91e  gcc/testsuite/gcc.target/i386/pr124194.c
+ dcd126d8cd1a8a25624089d6f707cc1e  gcc/testsuite/gcc.target/i386/pr124407-1.c
+ 101572df1dd23dde5382be2d1a1478fe  gcc/testsuite/gcc.target/i386/pr124407-2.c
+ 20438ee87f52efda141c43d1f08416e1  gcc/testsuite/gcc.target/i386/pr124696.c
+ bea9ac1f62d27e3b10bc9739d9cbeb54  gcc/testsuite/gcc.target/i386/pr124697-1a.c
+ 2040d361ee3379e7489acc7a96fd0980  gcc/testsuite/gcc.target/i386/pr124697-1b.c
+ dede77ce3cdb201804de164c3fa75a23  gcc/testsuite/gcc.target/i386/pr124697-2a.c
+ f742c249f29b11f89b622821fd3fb16b  gcc/testsuite/gcc.target/i386/pr124697-2b.c
+ 4b1741905c7d5ce52bb9bd21f47032fd  gcc/testsuite/gcc.target/i386/pr124697-3a.c
+ 15318146a68ad41d94a3e46ad3a169f1  gcc/testsuite/gcc.target/i386/pr124697-3b.c
+ 2ff14347296d11b5e3b328e3957e5191  gcc/testsuite/gcc.target/i386/pr124710-1.c
+ 79c874a97f648ff278ec1765414620b1  gcc/testsuite/gcc.target/i386/pr124710-2.c
+ 2b6a1448e119f38191ae1fc1974e8033  gcc/testsuite/gcc.target/i386/pr124759.c
+ 317da1bafce144f5671a08a96200b001  gcc/testsuite/gcc.target/i386/pr124877-1.c
+ ffc68fd0ff2ba113062cd86cae484d7d  gcc/testsuite/gcc.target/i386/pr124877-2.c
+ f06caa7312f1bda837e182ee5d6c518e  gcc/testsuite/gcc.target/i386/pr124877-3.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
  6a09a31c8162440929d99a05b6983c5a  gcc/testsuite/gcc.target/i386/pr14552.c
  e0e0a92c78bf564587af65728ae84707  gcc/testsuite/gcc.target/i386/pr15184-1.c
! 6e05e2de2734ee776c5605772d318712  gcc/testsuite/gcc.target/i386/pr15184-2.c
  d4aa6113ea62bc36639d93e1e44a1210  gcc/testsuite/gcc.target/i386/pr17390.c
  2e4c03f3bc4f33ebf1fe63318811709f  gcc/testsuite/gcc.target/i386/pr17692.c
  d3dae857859b68227163d1fc45aaf67c  gcc/testsuite/gcc.target/i386/pr18041-1.c
*************** dcfc47d5c6f74562228eb399293c4bc5  gcc/te
*** 80165,80171 ****
  86281a53df1b24c8068e4bf1b184d74b  gcc/testsuite/gcc.target/i386/pr31628.c
  5ce3efb86f23dc0eae07a9a326f046aa  gcc/testsuite/gcc.target/i386/pr31799.c
  9131ed1be82a4a4fecdc9d0aa2021134  gcc/testsuite/gcc.target/i386/pr31854.c
! d8f0d132b6babb11136a862b1d0d3d15  gcc/testsuite/gcc.target/i386/pr31985.c
  dfd05b1f491f52c6fed332039ead357a  gcc/testsuite/gcc.target/i386/pr32000-1.c
  a07b3ac10c2e8d8960d5f94aacc75325  gcc/testsuite/gcc.target/i386/pr32000-2.c
  9b916b67c68cce873259ce7198b6593b  gcc/testsuite/gcc.target/i386/pr32065-1.c
--- 90595,90601 ----
  86281a53df1b24c8068e4bf1b184d74b  gcc/testsuite/gcc.target/i386/pr31628.c
  5ce3efb86f23dc0eae07a9a326f046aa  gcc/testsuite/gcc.target/i386/pr31799.c
  9131ed1be82a4a4fecdc9d0aa2021134  gcc/testsuite/gcc.target/i386/pr31854.c
! 723f65b70ac04de211e2805093263e39  gcc/testsuite/gcc.target/i386/pr31985.c
  dfd05b1f491f52c6fed332039ead357a  gcc/testsuite/gcc.target/i386/pr32000-1.c
  a07b3ac10c2e8d8960d5f94aacc75325  gcc/testsuite/gcc.target/i386/pr32000-2.c
  9b916b67c68cce873259ce7198b6593b  gcc/testsuite/gcc.target/i386/pr32065-1.c
*************** a15920d2bd39af2c6ba3dd59c538061f  gcc/te
*** 80250,80256 ****
  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
  647b8598ba487950d294f619c5b49897  gcc/testsuite/gcc.target/i386/pr36613.c
--- 90680,90688 ----
  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
! 2029a045ea358abec88da8d5729dd7aa  gcc/testsuite/gcc.target/i386/pr36503-5.c
! 6ee0e6d2d365d186637ddd09db598d0a  gcc/testsuite/gcc.target/i386/pr36503-6.c
! 3786920028431ee2bbb88e6cd16d4a1e  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
  647b8598ba487950d294f619c5b49897  gcc/testsuite/gcc.target/i386/pr36613.c
*************** eef17532c50df5a9a0ab9230ca0764a0  gcc/te
*** 80357,80363 ****
  b05f423e2e73dc286c577252283d529f  gcc/testsuite/gcc.target/i386/pr43799.c
  171a677c5298c0c69b83154415e55228  gcc/testsuite/gcc.target/i386/pr43869.c
  e5b6fcba4b57a5ffec09acc18c64fa8e  gcc/testsuite/gcc.target/i386/pr44071.c
! fe7b39654f9875009b006cea04a66b32  gcc/testsuite/gcc.target/i386/pr44130.c
  ee71afab95575089e9dde62fa2f3df3b  gcc/testsuite/gcc.target/i386/pr44144.c
  d0f7915dcdfe2b7a2b805eb41ed113f5  gcc/testsuite/gcc.target/i386/pr44180.c
  e9659dc1406a18f55a3b02a13536af51  gcc/testsuite/gcc.target/i386/pr44223.c
--- 90789,90795 ----
  b05f423e2e73dc286c577252283d529f  gcc/testsuite/gcc.target/i386/pr43799.c
  171a677c5298c0c69b83154415e55228  gcc/testsuite/gcc.target/i386/pr43869.c
  e5b6fcba4b57a5ffec09acc18c64fa8e  gcc/testsuite/gcc.target/i386/pr44071.c
! f4866d14647779953ac526fe1959e050  gcc/testsuite/gcc.target/i386/pr44130.c
  ee71afab95575089e9dde62fa2f3df3b  gcc/testsuite/gcc.target/i386/pr44144.c
  d0f7915dcdfe2b7a2b805eb41ed113f5  gcc/testsuite/gcc.target/i386/pr44180.c
  e9659dc1406a18f55a3b02a13536af51  gcc/testsuite/gcc.target/i386/pr44223.c
*************** a0e8df751a0532abc2f56fae74b35ceb  gcc/te
*** 80455,80460 ****
--- 90887,90893 ----
  3e9f3d5fd14abd4982a1d20d13a214ba  gcc/testsuite/gcc.target/i386/pr48723.c
  b26834e660d14d009bf72740343d1f1e  gcc/testsuite/gcc.target/i386/pr49002-1.c
  1744d1b6525d493782f9f5936b33c289  gcc/testsuite/gcc.target/i386/pr49002-2.c
+ 74d0526592919ac67cdfd47d4d2ef17f  gcc/testsuite/gcc.target/i386/pr49095-2.c
  9a5e5122d19c99f875dbca1a673ddfd2  gcc/testsuite/gcc.target/i386/pr49095.c
  a294cc6e4c63c7891b458d6b03b24d18  gcc/testsuite/gcc.target/i386/pr49168-1.c
  eba01282bb2f285e74cc7ec9b9fb8ff7  gcc/testsuite/gcc.target/i386/pr49244-1.c
*************** e19a49534393888b259603e0f3e6ab58  gcc/te
*** 80635,80641 ****
  8535b7377d32162c5d39914b810ccd30  gcc/testsuite/gcc.target/i386/pr59021.c
  c8b6cbfc183ed308ff9d22ce7f8d26c1  gcc/testsuite/gcc.target/i386/pr59034-1.c
  5df596275c698c54cff0a51dbcbc2507  gcc/testsuite/gcc.target/i386/pr59034-2.c
! 2a2e85992a798cf8c800cba729fc183d  gcc/testsuite/gcc.target/i386/pr59099.c
  49750bf1b6cd9ca89a9af479b3340e40  gcc/testsuite/gcc.target/i386/pr59133.c
  a5c0be72d6530c0595bcdb5b02b1aa15  gcc/testsuite/gcc.target/i386/pr59153.c
  61002d434c87bb477be739b084eda1c6  gcc/testsuite/gcc.target/i386/pr59363.c
--- 91068,91074 ----
  8535b7377d32162c5d39914b810ccd30  gcc/testsuite/gcc.target/i386/pr59021.c
  c8b6cbfc183ed308ff9d22ce7f8d26c1  gcc/testsuite/gcc.target/i386/pr59034-1.c
  5df596275c698c54cff0a51dbcbc2507  gcc/testsuite/gcc.target/i386/pr59034-2.c
! 07fd51690eaa19278255c9880f4fe04e  gcc/testsuite/gcc.target/i386/pr59099.c
  49750bf1b6cd9ca89a9af479b3340e40  gcc/testsuite/gcc.target/i386/pr59133.c
  a5c0be72d6530c0595bcdb5b02b1aa15  gcc/testsuite/gcc.target/i386/pr59153.c
  61002d434c87bb477be739b084eda1c6  gcc/testsuite/gcc.target/i386/pr59363.c
*************** b61debdb92ace49afb06ba6614674f37  gcc/te
*** 80707,80713 ****
  c2ad80ced67848aa724c64790fae16e7  gcc/testsuite/gcc.target/i386/pr61423.c
  c862a3c17ff7c49e42a7fd543dbaf3ab  gcc/testsuite/gcc.target/i386/pr61446.c
  41c81c5a9c11d9139ad858d341f4ab52  gcc/testsuite/gcc.target/i386/pr61572.c
! 051e752e6f5f3b5c6c426d1626da2a1e  gcc/testsuite/gcc.target/i386/pr61599-1.c
  e12bd6c5d5e4249892681c3ca63428e6  gcc/testsuite/gcc.target/i386/pr61599-2.c
  2ee0efa258974320c9447d777ed0cd1e  gcc/testsuite/gcc.target/i386/pr61794.c
  0af95498db628ce9ab87f06bcc3818c2  gcc/testsuite/gcc.target/i386/pr61801.c
--- 91140,91146 ----
  c2ad80ced67848aa724c64790fae16e7  gcc/testsuite/gcc.target/i386/pr61423.c
  c862a3c17ff7c49e42a7fd543dbaf3ab  gcc/testsuite/gcc.target/i386/pr61446.c
  41c81c5a9c11d9139ad858d341f4ab52  gcc/testsuite/gcc.target/i386/pr61572.c
! 1b5906a32aa17cde9f8724d58e9fb49e  gcc/testsuite/gcc.target/i386/pr61599-1.c
  e12bd6c5d5e4249892681c3ca63428e6  gcc/testsuite/gcc.target/i386/pr61599-2.c
  2ee0efa258974320c9447d777ed0cd1e  gcc/testsuite/gcc.target/i386/pr61794.c
  0af95498db628ce9ab87f06bcc3818c2  gcc/testsuite/gcc.target/i386/pr61801.c
*************** d411131829e4182bcd0f01c491669453  gcc/te
*** 80725,80731 ****
  50ea06065d2e674f38033361f71fea26  gcc/testsuite/gcc.target/i386/pr63534.c
  30aaae44143ac2a44f16e0db0cec0af6  gcc/testsuite/gcc.target/i386/pr63538.c
  561aeb698494e71bb2a1de5b9848f5f5  gcc/testsuite/gcc.target/i386/pr63542-1.c
! c2179fbbe68a40ce1e3486b98db6a47f  gcc/testsuite/gcc.target/i386/pr63542-2.c
  9c17e1a161d05dcffaa896376c5ecc02  gcc/testsuite/gcc.target/i386/pr63563.c
  2fcd7ee701194c088717496858a15fbc  gcc/testsuite/gcc.target/i386/pr63600.c
  2627f49323472299eefe598c4ad807db  gcc/testsuite/gcc.target/i386/pr63618.c
--- 91158,91164 ----
  50ea06065d2e674f38033361f71fea26  gcc/testsuite/gcc.target/i386/pr63534.c
  30aaae44143ac2a44f16e0db0cec0af6  gcc/testsuite/gcc.target/i386/pr63538.c
  561aeb698494e71bb2a1de5b9848f5f5  gcc/testsuite/gcc.target/i386/pr63542-1.c
! d7b3fe2ae786fa77ccf1a14c1ca16e9f  gcc/testsuite/gcc.target/i386/pr63542-2.c
  9c17e1a161d05dcffaa896376c5ecc02  gcc/testsuite/gcc.target/i386/pr63563.c
  2fcd7ee701194c088717496858a15fbc  gcc/testsuite/gcc.target/i386/pr63600.c
  2627f49323472299eefe598c4ad807db  gcc/testsuite/gcc.target/i386/pr63618.c
*************** d548b0a42c2a8273243b4f40f7984176  gcc/te
*** 80740,80746 ****
  b8384e79be5b03b1f22407289a440318  gcc/testsuite/gcc.target/i386/pr63910.c
  ac964f4b563acffae35942f124a29c33  gcc/testsuite/gcc.target/i386/pr63947.c
  1b750ef58ac019853f6b938d46949f6f  gcc/testsuite/gcc.target/i386/pr64061.c
! 2c5760f15af5650d70f6f00a2d1a1b27  gcc/testsuite/gcc.target/i386/pr64110.c
  516133a673f4f174a446f2fc7a80e412  gcc/testsuite/gcc.target/i386/pr64114.c
  94d8e5dfaec499764e8cbb0fff1583fb  gcc/testsuite/gcc.target/i386/pr64291-1.c
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
--- 91173,91179 ----
  b8384e79be5b03b1f22407289a440318  gcc/testsuite/gcc.target/i386/pr63910.c
  ac964f4b563acffae35942f124a29c33  gcc/testsuite/gcc.target/i386/pr63947.c
  1b750ef58ac019853f6b938d46949f6f  gcc/testsuite/gcc.target/i386/pr64061.c
! 8ec31d1cc6c39bd19597d47e7851b676  gcc/testsuite/gcc.target/i386/pr64110.c
  516133a673f4f174a446f2fc7a80e412  gcc/testsuite/gcc.target/i386/pr64114.c
  94d8e5dfaec499764e8cbb0fff1583fb  gcc/testsuite/gcc.target/i386/pr64291-1.c
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
*************** b5a1195fb0000fa62d98484dc9e5e87b  gcc/te
*** 81137,81142 ****
--- 91570,91581 ----
  616daf2d4d783e488553e78b6c46d260  gcc/testsuite/gcc.target/i386/pr79173-10.c
  480c378e954d49ead07ff613c02aa220  gcc/testsuite/gcc.target/i386/pr79173-11.c
  7b3c56c3a7c4a5016a3ea348a5e0d550  gcc/testsuite/gcc.target/i386/pr79173-12.c
+ baf0732cf42a94b060c4de633778b4f5  gcc/testsuite/gcc.target/i386/pr79173-13.c
+ e916d5e1a945f303e2a85d7790faab02  gcc/testsuite/gcc.target/i386/pr79173-14.c
+ c9998116e2318243f3968fddeb6e204a  gcc/testsuite/gcc.target/i386/pr79173-15.c
+ a3b492fb2ea1a804dc72f32b39337d7e  gcc/testsuite/gcc.target/i386/pr79173-16.c
+ 0f3a227d412ba32302bbede4b5ce7546  gcc/testsuite/gcc.target/i386/pr79173-17.c
+ 0d6779043f5ed635a63b754d791b1bb1  gcc/testsuite/gcc.target/i386/pr79173-18.c
  170afdaa9dbc731764f764f8d5d55a1c  gcc/testsuite/gcc.target/i386/pr79173-2.c
  072519c437f2f5a7fa2fade014904329  gcc/testsuite/gcc.target/i386/pr79173-3.c
  dccb59824fde7bfbcbe8da947d024b4f  gcc/testsuite/gcc.target/i386/pr79173-4.c
*************** e87a1036e3d593a87a4a827a14cc72fd  gcc/te
*** 81220,81225 ****
--- 91659,91681 ----
  affabb2536eb040c140a3110204ca3b0  gcc/testsuite/gcc.target/i386/pr81375.c
  4a3389f7f2146d2198f9c46d5209ba9f  gcc/testsuite/gcc.target/i386/pr81471.c
  a85ee44d1991b911c0a14a0e8939bb37  gcc/testsuite/gcc.target/i386/pr81481.c
+ b0eb04ea5e0c7aa6434a41170e84a43a  gcc/testsuite/gcc.target/i386/pr81501-10a.c
+ 38b9550cd77b5f279e2b588ddc76d6cd  gcc/testsuite/gcc.target/i386/pr81501-10b.c
+ 49f2bd348bc0c97b64c039a6fdaa9dbb  gcc/testsuite/gcc.target/i386/pr81501-1a.c
+ 4b8d0ec30e9b61c7510c80d9ba4bad50  gcc/testsuite/gcc.target/i386/pr81501-1b.c
+ f5088b3f2961fb9ffbd5ceadc26d760d  gcc/testsuite/gcc.target/i386/pr81501-2a.c
+ 13c6721a3b142da19b30f6b9a42610ad  gcc/testsuite/gcc.target/i386/pr81501-2b.c
+ 01dc720b6cfac216f5b59112ed0b69d0  gcc/testsuite/gcc.target/i386/pr81501-3.c
+ 3459742406cd98cf47edaeb8cf806b94  gcc/testsuite/gcc.target/i386/pr81501-4a.c
+ 0939ad65d9678179a87fd238c7f4296e  gcc/testsuite/gcc.target/i386/pr81501-4b.c
+ 8ec0262e477e9813fa7217f3039c6abf  gcc/testsuite/gcc.target/i386/pr81501-5.c
+ 18bfd936ffddcd8f44ae75f8acf4a90a  gcc/testsuite/gcc.target/i386/pr81501-6a.c
+ 001a37bca675a7d7155af97f00951320  gcc/testsuite/gcc.target/i386/pr81501-6b.c
+ c5d9c610d13134afa7166c610226d443  gcc/testsuite/gcc.target/i386/pr81501-7.c
+ d3e84013d1d0c1e90b33acbb0aa94b4a  gcc/testsuite/gcc.target/i386/pr81501-8a.c
+ 2ad09f0a4f76d4863b867c4a5a89c2bc  gcc/testsuite/gcc.target/i386/pr81501-8b.c
+ 6ef43606449e15e084bf4ae857c01f40  gcc/testsuite/gcc.target/i386/pr81501-9a.c
+ ef06226735cb8e2622b200b43aed628c  gcc/testsuite/gcc.target/i386/pr81501-9b.c
  98d0e76fde3f746743a32d52d393ac1e  gcc/testsuite/gcc.target/i386/pr81502.c
  66ae4c056da07dc7620743fcea9a3d76  gcc/testsuite/gcc.target/i386/pr81563.c
  487cad21d9bb2d8bb734efc861a4e1ca  gcc/testsuite/gcc.target/i386/pr81639.c
*************** bc9d6a8d154ce394c0572ac7f1b29989  gcc/te
*** 81244,81251 ****
  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
--- 91700,91707 ----
  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
! fe18eef083c5c64986de67cb83d3dda7  gcc/testsuite/gcc.target/i386/pr82142a.c
! 7776a330e1401d184565f7477df6a65f  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
*************** af640e6417bda894b964dcafe04ebb19  gcc/te
*** 81284,81290 ****
  ad0f59e4fe0e9407ebaddb65a2989530  gcc/testsuite/gcc.target/i386/pr82659-6.c
  e73aed461dc16fd9b7669c6321cda770  gcc/testsuite/gcc.target/i386/pr82662.c
  fcb18a6ebf93b2667c4106b03dea5945  gcc/testsuite/gcc.target/i386/pr82673.c
! 63efe3801cd250766ce11b7933f4bcf7  gcc/testsuite/gcc.target/i386/pr82699-1.c
  4bacd6d34ff9fea3fd2f47f877ea4d79  gcc/testsuite/gcc.target/i386/pr82699-2.c
  13e9bbe297f4f4f90fb9a5e5135b57dd  gcc/testsuite/gcc.target/i386/pr82699-3.c
  2ce43f369a7a3b048a6cdb447bb9890e  gcc/testsuite/gcc.target/i386/pr82699-4.c
--- 91740,91746 ----
  ad0f59e4fe0e9407ebaddb65a2989530  gcc/testsuite/gcc.target/i386/pr82659-6.c
  e73aed461dc16fd9b7669c6321cda770  gcc/testsuite/gcc.target/i386/pr82662.c
  fcb18a6ebf93b2667c4106b03dea5945  gcc/testsuite/gcc.target/i386/pr82673.c
! 0a176b418a2f7b11b154e2af29cd8110  gcc/testsuite/gcc.target/i386/pr82699-1.c
  4bacd6d34ff9fea3fd2f47f877ea4d79  gcc/testsuite/gcc.target/i386/pr82699-2.c
  13e9bbe297f4f4f90fb9a5e5135b57dd  gcc/testsuite/gcc.target/i386/pr82699-3.c
  2ce43f369a7a3b048a6cdb447bb9890e  gcc/testsuite/gcc.target/i386/pr82699-4.c
*************** bce12f30738edf2774ad07623978e78c  gcc/te
*** 81508,81514 ****
  96469657c46a5db9e093206d585159bb  gcc/testsuite/gcc.target/i386/pr88796.c
  7af4459509529efc78f8cbe44f73cabd  gcc/testsuite/gcc.target/i386/pr88809-2.c
  8497072c958cb5494396edf468b39239  gcc/testsuite/gcc.target/i386/pr88809.c
! 9d682528b30cb290cfb279d4345c67ed  gcc/testsuite/gcc.target/i386/pr88828-0.c
  1631afdc742b2d2a76424ee57448ca33  gcc/testsuite/gcc.target/i386/pr88828-1.c
  168b94889653fec10c76f9f092653a2e  gcc/testsuite/gcc.target/i386/pr88828-1a.c
  6a5173e40ac3a2d73ca7b06d5b823813  gcc/testsuite/gcc.target/i386/pr88828-1b.c
--- 91964,91970 ----
  96469657c46a5db9e093206d585159bb  gcc/testsuite/gcc.target/i386/pr88796.c
  7af4459509529efc78f8cbe44f73cabd  gcc/testsuite/gcc.target/i386/pr88809-2.c
  8497072c958cb5494396edf468b39239  gcc/testsuite/gcc.target/i386/pr88809.c
! f55e8b5a9a98d64953ede9b467fb6edf  gcc/testsuite/gcc.target/i386/pr88828-0.c
  1631afdc742b2d2a76424ee57448ca33  gcc/testsuite/gcc.target/i386/pr88828-1.c
  168b94889653fec10c76f9f092653a2e  gcc/testsuite/gcc.target/i386/pr88828-1a.c
  6a5173e40ac3a2d73ca7b06d5b823813  gcc/testsuite/gcc.target/i386/pr88828-1b.c
*************** c477d7333d280aa9ba0232f363826175  gcc/te
*** 81567,81573 ****
  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
! 8fd9dedd92faca691ac7497433f4e7d5  gcc/testsuite/gcc.target/i386/pr89618-2.c
  8d11eaa1821254c815377b2af471ed8f  gcc/testsuite/gcc.target/i386/pr89618.c
  7a4a0653050f553879a39852089ab9b9  gcc/testsuite/gcc.target/i386/pr89676.c
  8c3d1b44db7a8ab2be0a823e6604c679  gcc/testsuite/gcc.target/i386/pr89684.c
--- 92023,92029 ----
  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
! a41d7f9c6f0661f0053e46490638ad39  gcc/testsuite/gcc.target/i386/pr89618-2.c
  8d11eaa1821254c815377b2af471ed8f  gcc/testsuite/gcc.target/i386/pr89618.c
  7a4a0653050f553879a39852089ab9b9  gcc/testsuite/gcc.target/i386/pr89676.c
  8c3d1b44db7a8ab2be0a823e6604c679  gcc/testsuite/gcc.target/i386/pr89684.c
*************** adae3156ab4e2f317ef6a23cbd52a09e  gcc/te
*** 81584,81591 ****
  61421458c0cd694e7f45d147f09c71dd  gcc/testsuite/gcc.target/i386/pr89984-1.c
  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
--- 92040,92047 ----
  61421458c0cd694e7f45d147f09c71dd  gcc/testsuite/gcc.target/i386/pr89984-1.c
  4675458af6efdc7039a76f2ca0824f6a  gcc/testsuite/gcc.target/i386/pr89984-2.c
  0fde4fbe7c3ef420d3178fba128d51e7  gcc/testsuite/gcc.target/i386/pr90007.c
! a7e4330876ef271143c6421ba5f2cf85  gcc/testsuite/gcc.target/i386/pr90096.c
! 03727d78154d7afb6c2b92042103043a  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
*** 81596,81603 ****
  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
  78277186e5e9fff510631438a31733a5  gcc/testsuite/gcc.target/i386/pr90765-2.c
--- 92052,92063 ----
  79825d8e4562ba47624b18d80f41d52b  gcc/testsuite/gcc.target/i386/pr90510.c
  71daed2fce58de22bfa193c1d29d8205  gcc/testsuite/gcc.target/i386/pr90547.c
  cd32b51927f32216f74b09c3940931d8  gcc/testsuite/gcc.target/i386/pr90552.c
! daaf5dca7f0bcaff7df841628e698088  gcc/testsuite/gcc.target/i386/pr90579.c
  3333c9fab61d2b0a85919c2f2bcabcf7  gcc/testsuite/gcc.target/i386/pr90693-2.c
+ abe8a59c26b149ad14f8d4056fbcad42  gcc/testsuite/gcc.target/i386/pr90693-3.c
+ 922e080c15dbf15c45236be5280d0b63  gcc/testsuite/gcc.target/i386/pr90693-4.c
+ 530f6f5aecf81bc578c20d2758728457  gcc/testsuite/gcc.target/i386/pr90693-5.c
+ 6bd029c23103dff0d237303b8cef906b  gcc/testsuite/gcc.target/i386/pr90693-6.c
  ab0b47df71ffc980ef55fd8e562bb640  gcc/testsuite/gcc.target/i386/pr90693.c
  bedac99974c4a13a1a78b62b24233122  gcc/testsuite/gcc.target/i386/pr90765-1.c
  78277186e5e9fff510631438a31733a5  gcc/testsuite/gcc.target/i386/pr90765-2.c
*************** bedac99974c4a13a1a78b62b24233122  gcc/te
*** 81607,81622 ****
  6c3a811981bba7062182e9c01219471b  gcc/testsuite/gcc.target/i386/pr90773-12.c
  593c73526bae9b94c84a95ce2bbc7e30  gcc/testsuite/gcc.target/i386/pr90773-13.c
  f7e21a56566f8559fcba70f3cda721fe  gcc/testsuite/gcc.target/i386/pr90773-14.c
! bc6806d14eb4d9fac9f78751c494bb2b  gcc/testsuite/gcc.target/i386/pr90773-15.c
! 06df718acc299d530a1ea5b6fa3f889d  gcc/testsuite/gcc.target/i386/pr90773-16.c
! 22e9c0a2d6c467c1b378db4d4ca5a26c  gcc/testsuite/gcc.target/i386/pr90773-17.c
  91b619d01a947fbd9e263614f1000278  gcc/testsuite/gcc.target/i386/pr90773-18.c
  700d4a7ed37c9f9247b66f3967dc24c1  gcc/testsuite/gcc.target/i386/pr90773-19.c
  f80a713960f0646d35d5cd99ddc87102  gcc/testsuite/gcc.target/i386/pr90773-2.c
! 5fa9c561dde23d97ac790aff8cb8e83d  gcc/testsuite/gcc.target/i386/pr90773-20.c
! 2b433e52b2c381c1508a26267c24ea60  gcc/testsuite/gcc.target/i386/pr90773-21.c
! 9705238b58cde2fb78fac84b31c2572c  gcc/testsuite/gcc.target/i386/pr90773-22.c
! 8ef00f74aefd7db4b0e39743ffa5bc4c  gcc/testsuite/gcc.target/i386/pr90773-23.c
  02a80269a71a00c4d622823fa50ec6dd  gcc/testsuite/gcc.target/i386/pr90773-24.c
  b9441c7790b11e31803b469f75453364  gcc/testsuite/gcc.target/i386/pr90773-25.c
  7a537e43b7169ce5c42b66a28332fa9a  gcc/testsuite/gcc.target/i386/pr90773-26.c
--- 92067,92082 ----
  6c3a811981bba7062182e9c01219471b  gcc/testsuite/gcc.target/i386/pr90773-12.c
  593c73526bae9b94c84a95ce2bbc7e30  gcc/testsuite/gcc.target/i386/pr90773-13.c
  f7e21a56566f8559fcba70f3cda721fe  gcc/testsuite/gcc.target/i386/pr90773-14.c
! 0fdb660390b755ba9d18a4a05ed5455a  gcc/testsuite/gcc.target/i386/pr90773-15.c
! 9090e0362d7860afaf0aa65b2b0634ed  gcc/testsuite/gcc.target/i386/pr90773-16.c
! c48294add9b28d052daf4ec43673f18f  gcc/testsuite/gcc.target/i386/pr90773-17.c
  91b619d01a947fbd9e263614f1000278  gcc/testsuite/gcc.target/i386/pr90773-18.c
  700d4a7ed37c9f9247b66f3967dc24c1  gcc/testsuite/gcc.target/i386/pr90773-19.c
  f80a713960f0646d35d5cd99ddc87102  gcc/testsuite/gcc.target/i386/pr90773-2.c
! c7e91b176bb2dd0b36f216cf347e9afe  gcc/testsuite/gcc.target/i386/pr90773-20.c
! b9676142efad188f0bc17506be0ad85c  gcc/testsuite/gcc.target/i386/pr90773-21.c
! 8c5560428e9a937dcfe3d1ba208629f3  gcc/testsuite/gcc.target/i386/pr90773-22.c
! 34618f53c1c57804c4f2f7102c383546  gcc/testsuite/gcc.target/i386/pr90773-23.c
  02a80269a71a00c4d622823fa50ec6dd  gcc/testsuite/gcc.target/i386/pr90773-24.c
  b9441c7790b11e31803b469f75453364  gcc/testsuite/gcc.target/i386/pr90773-25.c
  7a537e43b7169ce5c42b66a28332fa9a  gcc/testsuite/gcc.target/i386/pr90773-26.c
*************** b2fcdfda276151a68e045de262ee33af  gcc/te
*** 81648,81659 ****
  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
  2927fee3df69b51f89e75e36cc47211e  gcc/testsuite/gcc.target/i386/pr91400-2.c
  3b4e2b2c32d8bdc5a1a5b4ef145bdefc  gcc/testsuite/gcc.target/i386/pr91408.c
! 465260947117edd42727cff06d0c488e  gcc/testsuite/gcc.target/i386/pr91446.c
  ab6ee2072fb61291268093129ba13ec6  gcc/testsuite/gcc.target/i386/pr91461-1.c
  de1bf3bf26a0088e97654cd462f8a1f6  gcc/testsuite/gcc.target/i386/pr91461-2.c
  811082e592579f750af07ca87c986f2c  gcc/testsuite/gcc.target/i386/pr91461-3.c
--- 92108,92120 ----
  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
+ a0123b6ce1a0dc4a402359a389d97551  gcc/testsuite/gcc.target/i386/pr91384-1.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
  2927fee3df69b51f89e75e36cc47211e  gcc/testsuite/gcc.target/i386/pr91400-2.c
  3b4e2b2c32d8bdc5a1a5b4ef145bdefc  gcc/testsuite/gcc.target/i386/pr91408.c
! 11ef6b9690be9d4442808cf91cf4c920  gcc/testsuite/gcc.target/i386/pr91446.c
  ab6ee2072fb61291268093129ba13ec6  gcc/testsuite/gcc.target/i386/pr91461-1.c
  de1bf3bf26a0088e97654cd462f8a1f6  gcc/testsuite/gcc.target/i386/pr91461-2.c
  811082e592579f750af07ca87c986f2c  gcc/testsuite/gcc.target/i386/pr91461-3.c
*************** acc82a5b459bf1433e5f0d6d4849c00a  gcc/te
*** 81673,81678 ****
--- 92134,92159 ----
  5fb213fa5e0ab6c88a7d2383ba1ca01b  gcc/testsuite/gcc.target/i386/pr91897.c
  687f863eea94486d55855598514b0fe5  gcc/testsuite/gcc.target/i386/pr91931.c
  6215e5c1c60551469fcc11ffa5c90472  gcc/testsuite/gcc.target/i386/pr91994.c
+ 7b2e31351a834503ea31d18b2dbfbe50  gcc/testsuite/gcc.target/i386/pr92080-1.c
+ b954f1adefeb2933a8727f030aaad230  gcc/testsuite/gcc.target/i386/pr92080-10.c
+ a57fa4dbe9117c322d8074bcbdb6ea8d  gcc/testsuite/gcc.target/i386/pr92080-11.c
+ efc3d15d88f41f75da5fd5dafeb0838f  gcc/testsuite/gcc.target/i386/pr92080-12.c
+ e1a47196028cf3d7d1da3ad695db60b3  gcc/testsuite/gcc.target/i386/pr92080-13.c
+ 7c666da60bf0f91a71a0449e0dc05fe9  gcc/testsuite/gcc.target/i386/pr92080-14.c
+ be1e0e8eba7c0a6e5b4edccfb5c6ee30  gcc/testsuite/gcc.target/i386/pr92080-15.c
+ 7e4ed332aefc3d639a093680c490517e  gcc/testsuite/gcc.target/i386/pr92080-16.c
+ 00d36324dbc5a854d6da6f2af81f548c  gcc/testsuite/gcc.target/i386/pr92080-17.c
+ 0af0fd636c3a72d334625b16a51242d3  gcc/testsuite/gcc.target/i386/pr92080-18.c
+ 494c2614cf731267b1b0f41709bfbca9  gcc/testsuite/gcc.target/i386/pr92080-19.c
+ 72ca6ad41495194d27cf4156a0bea46d  gcc/testsuite/gcc.target/i386/pr92080-2.c
+ 9f76fe3dbb6aaa484156a9bd978c2795  gcc/testsuite/gcc.target/i386/pr92080-20.c
+ 73df614139165bdfb32ab10a3c44d83b  gcc/testsuite/gcc.target/i386/pr92080-3.c
+ c3e24199aeda4b65cda3b346d62e1697  gcc/testsuite/gcc.target/i386/pr92080-4.c
+ 702188c1e03fe0a24e85ab24a7f84520  gcc/testsuite/gcc.target/i386/pr92080-5.c
+ 4ea0fd7499220024ceb4177b492f2717  gcc/testsuite/gcc.target/i386/pr92080-6.c
+ 8d0410d59fb75607e5dd3583b871c65a  gcc/testsuite/gcc.target/i386/pr92080-7.c
+ 7c3f24ee792f8822e074a397f720611f  gcc/testsuite/gcc.target/i386/pr92080-8.c
+ c83d1ae642d084fba7770a0f544e0e85  gcc/testsuite/gcc.target/i386/pr92080-9.c
  d5de5038fabac265e5095e101b5eaba4  gcc/testsuite/gcc.target/i386/pr92140.c
  65ef4f6834292cf57241c2aac98ba28b  gcc/testsuite/gcc.target/i386/pr92180.c
  cb7d2b73c1aa814d4874833bf6d514f4  gcc/testsuite/gcc.target/i386/pr92190.c
*************** ed9ca6b6e7a5f74d080f80bb7fb9c2e9  gcc/te
*** 81729,81737 ****
  00cf6279198438d4bb24c7415d6332cd  gcc/testsuite/gcc.target/i386/pr93395.c
  8afa6fc9b9a61e004c0c1d39a49db1b1  gcc/testsuite/gcc.target/i386/pr93492-1.c
  c9eb5d38661bdb8e79a65ba04d5c0825  gcc/testsuite/gcc.target/i386/pr93492-2.c
! 291af42ebb9633dc68339da0ad2d68d9  gcc/testsuite/gcc.target/i386/pr93492-3.c
  dfe601dd62f0bb43b4f06b62a5ddeb31  gcc/testsuite/gcc.target/i386/pr93492-4.c
! 11eab759ab2b2f59db81f74fd0a8dc53  gcc/testsuite/gcc.target/i386/pr93492-5.c
  16c32cf33e45444168010f2d660b185b  gcc/testsuite/gcc.target/i386/pr93611.c
  9387bfde104289ddf53adc9ae95c43ef  gcc/testsuite/gcc.target/i386/pr93654.c
  0cbbfb6a80b114bf60fcfd0fce913fdb  gcc/testsuite/gcc.target/i386/pr93656.c
--- 92210,92218 ----
  00cf6279198438d4bb24c7415d6332cd  gcc/testsuite/gcc.target/i386/pr93395.c
  8afa6fc9b9a61e004c0c1d39a49db1b1  gcc/testsuite/gcc.target/i386/pr93492-1.c
  c9eb5d38661bdb8e79a65ba04d5c0825  gcc/testsuite/gcc.target/i386/pr93492-2.c
! bda63b7c2e9b673fe13b351d76185686  gcc/testsuite/gcc.target/i386/pr93492-3.c
  dfe601dd62f0bb43b4f06b62a5ddeb31  gcc/testsuite/gcc.target/i386/pr93492-4.c
! 614126f0d614a7561cad50b575054363  gcc/testsuite/gcc.target/i386/pr93492-5.c
  16c32cf33e45444168010f2d660b185b  gcc/testsuite/gcc.target/i386/pr93611.c
  9387bfde104289ddf53adc9ae95c43ef  gcc/testsuite/gcc.target/i386/pr93654.c
  0cbbfb6a80b114bf60fcfd0fce913fdb  gcc/testsuite/gcc.target/i386/pr93656.c
*************** feab5f45e1e18afc892095125a4b26a2  gcc/te
*** 81819,81825 ****
  0f2eaf1c814cc6f796229e239db8cf94  gcc/testsuite/gcc.target/i386/pr95483-2.c
  732ce5897b50a7bdc89573fcd64bfaf7  gcc/testsuite/gcc.target/i386/pr95483-3.c
  2ae2f5ad6b7aab32a5b5c61ea3ba9083  gcc/testsuite/gcc.target/i386/pr95483-4.c
! d2ae5fbb5b95a1788b56e6179a62c6bd  gcc/testsuite/gcc.target/i386/pr95483-5.c
  ba3da982ef27c8bafb0f0fcdf517161f  gcc/testsuite/gcc.target/i386/pr95483-6.c
  f072219a90178a8fc4afbacca65f147c  gcc/testsuite/gcc.target/i386/pr95483-7.c
  932a73ed81bfc47dbffb9c18480f2f1e  gcc/testsuite/gcc.target/i386/pr95535-1.c
--- 92300,92306 ----
  0f2eaf1c814cc6f796229e239db8cf94  gcc/testsuite/gcc.target/i386/pr95483-2.c
  732ce5897b50a7bdc89573fcd64bfaf7  gcc/testsuite/gcc.target/i386/pr95483-3.c
  2ae2f5ad6b7aab32a5b5c61ea3ba9083  gcc/testsuite/gcc.target/i386/pr95483-4.c
! 7d3f9a924cccb0ac34f142d681ef2b84  gcc/testsuite/gcc.target/i386/pr95483-5.c
  ba3da982ef27c8bafb0f0fcdf517161f  gcc/testsuite/gcc.target/i386/pr95483-6.c
  f072219a90178a8fc4afbacca65f147c  gcc/testsuite/gcc.target/i386/pr95483-7.c
  932a73ed81bfc47dbffb9c18480f2f1e  gcc/testsuite/gcc.target/i386/pr95535-1.c
*************** c39efc4096726785a0d8fb50d2037679  gcc/te
*** 81991,81997 ****
  a3e5a8589b650ac289a1ebcf789619f6  gcc/testsuite/gcc.target/i386/pr99754-1.c
  4b02ca6501588dc1490c310e786ee13e  gcc/testsuite/gcc.target/i386/pr99754-2.c
  5f031f82b484c0f439288d4926362365  gcc/testsuite/gcc.target/i386/pr99863.c
! 3e24fab4cd6a98c884b490eae74a3aaf  gcc/testsuite/gcc.target/i386/pr99881.c
  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
--- 92472,92478 ----
  a3e5a8589b650ac289a1ebcf789619f6  gcc/testsuite/gcc.target/i386/pr99754-1.c
  4b02ca6501588dc1490c310e786ee13e  gcc/testsuite/gcc.target/i386/pr99754-2.c
  5f031f82b484c0f439288d4926362365  gcc/testsuite/gcc.target/i386/pr99863.c
! e2033457a6fda578099d3b1c2092a4fa  gcc/testsuite/gcc.target/i386/pr99881.c
  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/te
*** 82001,82006 ****
--- 92482,92518 ----
  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
+ fddba6de81aa7fea6584273dc6b3df67  gcc/testsuite/gcc.target/i386/preserve-none-1.c
+ c67d46e36d4a7e968e0fcaa3891ff96e  gcc/testsuite/gcc.target/i386/preserve-none-10.c
+ 811a5506483777c40996276aca5ecc5e  gcc/testsuite/gcc.target/i386/preserve-none-11.c
+ 49e228ad7941593d66503db15bb82424  gcc/testsuite/gcc.target/i386/preserve-none-12.c
+ af443a637b1bbe94c00fa9497d96f7bb  gcc/testsuite/gcc.target/i386/preserve-none-13.c
+ f57a82588645a68210589a6abc683ddb  gcc/testsuite/gcc.target/i386/preserve-none-14.c
+ b6a1cde1548013b66be47a3cd36c9945  gcc/testsuite/gcc.target/i386/preserve-none-15.c
+ 6f0b161e274978fc465705acdebb3969  gcc/testsuite/gcc.target/i386/preserve-none-16.c
+ f85582df9bec9b4c497c5bb05affa30b  gcc/testsuite/gcc.target/i386/preserve-none-17.c
+ 39b85791a1f4d96f8f6146862340680f  gcc/testsuite/gcc.target/i386/preserve-none-18.c
+ 21024146d5998abe9f0de92fd6da0b0f  gcc/testsuite/gcc.target/i386/preserve-none-19.c
+ 4d774ef666e5d98759b5daea23ae8434  gcc/testsuite/gcc.target/i386/preserve-none-2.c
+ d18b3df1e3458bb621e6394d59a53306  gcc/testsuite/gcc.target/i386/preserve-none-20.c
+ 56306971eee8f608a87c6e88e789d411  gcc/testsuite/gcc.target/i386/preserve-none-21.c
+ 7fca32d4ccac7b8ffc8719cb67604ae3  gcc/testsuite/gcc.target/i386/preserve-none-22.c
+ 8278a9c28c9e6fe75e54ebbf4ae4f66a  gcc/testsuite/gcc.target/i386/preserve-none-23.c
+ 2fc1e21de8668eb81132effc8f8e0472  gcc/testsuite/gcc.target/i386/preserve-none-24.c
+ 36f2af5f54d89fbd52ffdf607d1db23c  gcc/testsuite/gcc.target/i386/preserve-none-25.c
+ 9d3023190f814ae2fde64e821fac4c21  gcc/testsuite/gcc.target/i386/preserve-none-26.c
+ 5ea7540107de09ca0cacc2dfec3c9ced  gcc/testsuite/gcc.target/i386/preserve-none-27.c
+ 0f9776af8b8488b29fa61bb575a00bba  gcc/testsuite/gcc.target/i386/preserve-none-28.c
+ 5f2905c546cf5433d248b437627259d5  gcc/testsuite/gcc.target/i386/preserve-none-29.c
+ 4d6d3a141ed7d56dbf2ec080c3638899  gcc/testsuite/gcc.target/i386/preserve-none-3.c
+ b501a62760784713bfc543b44dc04688  gcc/testsuite/gcc.target/i386/preserve-none-30a.c
+ 620285a0fd83ac6165eadbe66fc5638c  gcc/testsuite/gcc.target/i386/preserve-none-30b.c
+ 637c2bec6ad35c42f783e0a3b31021f4  gcc/testsuite/gcc.target/i386/preserve-none-4.c
+ aeb341ec372b4ad17f7d946f744a6d78  gcc/testsuite/gcc.target/i386/preserve-none-5.c
+ 7b282944b063006f6e2ff7c67ebb74b7  gcc/testsuite/gcc.target/i386/preserve-none-6.c
+ 192f3b1fb9a6904f97a6c55cb3648351  gcc/testsuite/gcc.target/i386/preserve-none-7.c
+ 46ee3b21d6fbb4874e2cc387dc76894f  gcc/testsuite/gcc.target/i386/preserve-none-8.c
+ dbaa3ccce2e7bd8e259f97b2d272cf9c  gcc/testsuite/gcc.target/i386/preserve-none-9.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
*************** f1d942e689de2f23040c5e669c9dcb1b  gcc/te
*** 82029,82038 ****
--- 92541,92552 ----
  e2839913fadc6a00676c8f02deb3f59e  gcc/testsuite/gcc.target/i386/recip-divf.c
  4557dbe9ae51590eba29dc37199cf9e4  gcc/testsuite/gcc.target/i386/recip-sqrtf.c
  3e22a439d0d08ad9c95292f2967fbe0d  gcc/testsuite/gcc.target/i386/recip-vec-divf-avx.c
+ 9817db8f2f9691df3d501155592caffd  gcc/testsuite/gcc.target/i386/recip-vec-divf-fma.c
  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
+ 8d7f031cc6d3b9e16f0bc0d367cf2533  gcc/testsuite/gcc.target/i386/reduc-pshuf.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
*************** c05d22a930ef3f74451ec3e9d4db1b74  gcc/te
*** 82108,82115 ****
  08b28bfac5203b2af9b0fb068727a87c  gcc/testsuite/gcc.target/i386/sha512msg1-2.c
  1d13c923e2137e0e9947a181060c5ef9  gcc/testsuite/gcc.target/i386/sha512msg2-2.c
  e0ace5d39e9cc7930c86ec3fac2a2562  gcc/testsuite/gcc.target/i386/sha512rnds2-2.c
  11a4bd4138e7963e0cd81b6e0197cfe6  gcc/testsuite/gcc.target/i386/shift_mask.c
! b575f46102e75c61317492fad36873d8  gcc/testsuite/gcc.target/i386/shrink_wrap_1.c
  db687b7347e27fd960300505daa014ee  gcc/testsuite/gcc.target/i386/shuf-concat.c
  2a6e1d7c1d6cc43b2c0c5bc706ded8a7  gcc/testsuite/gcc.target/i386/sibcall-1.c
  19523776640101268df1d976cbbc2f7e  gcc/testsuite/gcc.target/i386/sibcall-2.c
--- 92622,92638 ----
  08b28bfac5203b2af9b0fb068727a87c  gcc/testsuite/gcc.target/i386/sha512msg1-2.c
  1d13c923e2137e0e9947a181060c5ef9  gcc/testsuite/gcc.target/i386/sha512msg2-2.c
  e0ace5d39e9cc7930c86ec3fac2a2562  gcc/testsuite/gcc.target/i386/sha512rnds2-2.c
+ ee83ab3d7af07a61b43a69ecb4581e78  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-1.c
+ 134abe762bb465da1b9aed9f8569ce8d  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-2.c
+ 59b3726b3fa2a69c347fc834960c4bb7  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-3.c
+ c62277376d2a18d4875b451e08be9e76  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-5.c
+ 877f13bdda2b37a38cecc3c3ba5c3fe6  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-6.c
+ edff9e226673b891726d5eea3e541e34  gcc/testsuite/gcc.target/i386/shift-gf2p8affine-7.c
+ 4c0d248ab3aafed2f2b94f6389657ab5  gcc/testsuite/gcc.target/i386/shift-v16qi-4.c
  11a4bd4138e7963e0cd81b6e0197cfe6  gcc/testsuite/gcc.target/i386/shift_mask.c
! b39a3b78ac05770ba2a7d8dbc79d20ff  gcc/testsuite/gcc.target/i386/shrink-wrap-separate-mingw.c
! c61417c2c76f6531fd55ba0d9dd50c27  gcc/testsuite/gcc.target/i386/shrink_wrap_1.c
! 7e3a3c43c01a63ddc2a276fb376d9486  gcc/testsuite/gcc.target/i386/shrink_wrap_separate_check_lea.c
  db687b7347e27fd960300505daa014ee  gcc/testsuite/gcc.target/i386/shuf-concat.c
  2a6e1d7c1d6cc43b2c0c5bc706ded8a7  gcc/testsuite/gcc.target/i386/sibcall-1.c
  19523776640101268df1d976cbbc2f7e  gcc/testsuite/gcc.target/i386/sibcall-2.c
*************** db687b7347e27fd960300505daa014ee  gcc/te
*** 82118,82124 ****
  c243f1e5e2ec3b5d5c6b3cce7b8a72e4  gcc/testsuite/gcc.target/i386/sibcall-5.c
  3288b667ab55dc3a3c06aa6c14ac408d  gcc/testsuite/gcc.target/i386/sibcall-6.c
  8ab0233c20facad388523472063e20c8  gcc/testsuite/gcc.target/i386/sibcall-7.c
! 1e6b8140e2a187bfb4908a886ee4d76a  gcc/testsuite/gcc.target/i386/sibcall-8.c
  3001d63a83bb1d685960823efc333364  gcc/testsuite/gcc.target/i386/signbit-1.c
  2f0289ffcedbdb4af3f936dc5e9bdeb4  gcc/testsuite/gcc.target/i386/signbit-2.c
  b5540c2e6c4aa6f5730ae17876c12e1f  gcc/testsuite/gcc.target/i386/signbit-3.c
--- 92641,92647 ----
  c243f1e5e2ec3b5d5c6b3cce7b8a72e4  gcc/testsuite/gcc.target/i386/sibcall-5.c
  3288b667ab55dc3a3c06aa6c14ac408d  gcc/testsuite/gcc.target/i386/sibcall-6.c
  8ab0233c20facad388523472063e20c8  gcc/testsuite/gcc.target/i386/sibcall-7.c
! 1b239aa75b1aecc9b2b83f4040327117  gcc/testsuite/gcc.target/i386/sibcall-8.c
  3001d63a83bb1d685960823efc333364  gcc/testsuite/gcc.target/i386/signbit-1.c
  2f0289ffcedbdb4af3f936dc5e9bdeb4  gcc/testsuite/gcc.target/i386/signbit-2.c
  b5540c2e6c4aa6f5730ae17876c12e1f  gcc/testsuite/gcc.target/i386/signbit-3.c
*************** a91c690a2baabf7fb9fbf56c14d88bed  gcc/te
*** 82129,82140 ****
  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
--- 92652,92663 ----
  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-1b.c
! 11e02986892841c63086024b2e08ad24  gcc/testsuite/gcc.target/i386/sm4-check.h
  d3d755c099a0d9093b8e3e5488d4fca0  gcc/testsuite/gcc.target/i386/sm4key4-2.c
! 2114c85ba6940c59c3a11b0d40f7c767  gcc/testsuite/gcc.target/i386/sm4key4-avx10_2-2.c
  aad85a16999958388a426758d91d43f4  gcc/testsuite/gcc.target/i386/sm4rnds4-2.c
! fef15352d3c9af3d2ddf79a74ff8e219  gcc/testsuite/gcc.target/i386/sm4rnds4-avx10_2-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
*** 82148,82156 ****
  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
--- 92671,92679 ----
  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
! ff55b5f18a780244be00457bb8fcf8f3  gcc/testsuite/gcc.target/i386/sse-12.c
! cf9c97c0abfff2f0eb77349397a69677  gcc/testsuite/gcc.target/i386/sse-13.c
! f107027ef01062628bd31b407f3ff016  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
*** 82159,82167 ****
  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
--- 92682,92690 ----
  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
! 945a604e9ae7cbdf42bb4c546aee01c8  gcc/testsuite/gcc.target/i386/sse-22.c
  1c2df57cb3d7d6a3daf4084135ba9b1b  gcc/testsuite/gcc.target/i386/sse-22a.c
! efbd4e97f282fcd78e986c0b71e242a1  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
*************** ff4a381ee5305c9a18c5754c13c12790  gcc/te
*** 82725,82730 ****
--- 93248,93256 ----
  e74f5b8f16d9e3c28227ea31186f816a  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3.c
  a2f5b0c7365f7c93751ba3a6aa3eee83  gcc/testsuite/gcc.target/i386/sse4_1-set-v16qi-3a.c
  72524fc8a79531162d13f560e0d144fe  gcc/testsuite/gcc.target/i386/sse4_1-stv-1.c
+ 9ce5a17c10cee7fb9d36935428716f0a  gcc/testsuite/gcc.target/i386/sse4_1-stv-10.c
+ 829dfd2a2a0b2fdc7afb230e794b5e3a  gcc/testsuite/gcc.target/i386/sse4_1-stv-11.c
+ 02b9051251a317f88ea262388e1a7158  gcc/testsuite/gcc.target/i386/sse4_1-stv-12.c
  0d4ea3fb9a13317ac032d3b746eb211a  gcc/testsuite/gcc.target/i386/sse4_1-stv-2.c
  7ccf320367db828d9231b02a5a2706de  gcc/testsuite/gcc.target/i386/sse4_1-stv-3.c
  60adbd8686ae10af58220efca0984cce  gcc/testsuite/gcc.target/i386/sse4_1-stv-4.c
*************** b3082251265483716a53827b31517936  gcc/te
*** 82807,82817 ****
  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
  750a7405dd4a2eeed037db510a92fe3e  gcc/testsuite/gcc.target/i386/stack-check-17.c
! f4f31f4c82164ce7b9fec1c877d2f06a  gcc/testsuite/gcc.target/i386/stack-check-18.c
! 85ba669397fb051dbc3e76f146553033  gcc/testsuite/gcc.target/i386/stack-check-19.c
  ca5571ee490db85826dd15cbfd5c6555  gcc/testsuite/gcc.target/i386/stack-prot-guard.c
  79da87a540843a0e1db2e7c3a4c97b4a  gcc/testsuite/gcc.target/i386/stack-prot-kernel.c
  915a1e795ed7f5bdc16dea9e8b895e29  gcc/testsuite/gcc.target/i386/stack-prot-sym.c
--- 93333,93344 ----
  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
! 4d5b022ba48d0703844d30e35dceab26  gcc/testsuite/gcc.target/i386/stack-check-11.c
  663ee911f5f6c14483010012c61ad672  gcc/testsuite/gcc.target/i386/stack-check-12.c
  750a7405dd4a2eeed037db510a92fe3e  gcc/testsuite/gcc.target/i386/stack-check-17.c
! 71e5823ee8ff8e3d846b5174c1173624  gcc/testsuite/gcc.target/i386/stack-check-18.c
! 8d863fbbb497366592d9900bf050ad98  gcc/testsuite/gcc.target/i386/stack-check-19.c
! 6d828053525a31dec8d546a5f991ca0f  gcc/testsuite/gcc.target/i386/stack-clash-protection.c
  ca5571ee490db85826dd15cbfd5c6555  gcc/testsuite/gcc.target/i386/stack-prot-guard.c
  79da87a540843a0e1db2e7c3a4c97b4a  gcc/testsuite/gcc.target/i386/stack-prot-kernel.c
  915a1e795ed7f5bdc16dea9e8b895e29  gcc/testsuite/gcc.target/i386/stack-prot-sym.c
*************** e797e3acc17ea660fd93c0911e210be1  gcc/te
*** 82830,82843 ****
  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
--- 93357,93370 ----
  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
! 76107bccd60e215443ca74408232db5b  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
! e95bfe7c7f6954ef002bbc2b98729f11  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
*************** fde1ac7b82e671a22c599f0160131e2d  gcc/te
*** 82846,82851 ****
--- 93373,93379 ----
  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
+ 09a22ac13c352dbd3a542c30d657899d  gcc/testsuite/gcc.target/i386/tct-ipa-inline-ice.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
*************** cd1514bc672897ccd336522e7e4b9c75  gcc/te
*** 82876,82885 ****
  be3365966668001dda567754312a4f5e  gcc/testsuite/gcc.target/i386/udivmod-8.c
  9d15628fbee0275cb7429604d186f49a  gcc/testsuite/gcc.target/i386/udotprodint8_emulate.c
  0109d1a4e225b3755673fbaf77ba3cec  gcc/testsuite/gcc.target/i386/uintr-1.c
! 350a9926055dac3bb8d57db4885aff10  gcc/testsuite/gcc.target/i386/uintr-2.c
  208db11f3088f797e0d34eef91005d8f  gcc/testsuite/gcc.target/i386/uintr-3.c
  aa8882f65b02471cd35761336907d3b6  gcc/testsuite/gcc.target/i386/uintr-4.c
! 38b0d60b7eb7ac9ac0c4402d1b2575f0  gcc/testsuite/gcc.target/i386/uintr-5.c
  3df1f9aef42723bbbd0f795be1e64913  gcc/testsuite/gcc.target/i386/umod-1.c
  80c6ab83e85c9918b290e01c4d8514c5  gcc/testsuite/gcc.target/i386/umod-2.c
  bc81fc7aec323184dc275b97962476e5  gcc/testsuite/gcc.target/i386/umod-3.c
--- 93404,93413 ----
  be3365966668001dda567754312a4f5e  gcc/testsuite/gcc.target/i386/udivmod-8.c
  9d15628fbee0275cb7429604d186f49a  gcc/testsuite/gcc.target/i386/udotprodint8_emulate.c
  0109d1a4e225b3755673fbaf77ba3cec  gcc/testsuite/gcc.target/i386/uintr-1.c
! 911a93d36744ba5b1de2b7c736d39ad7  gcc/testsuite/gcc.target/i386/uintr-2.c
  208db11f3088f797e0d34eef91005d8f  gcc/testsuite/gcc.target/i386/uintr-3.c
  aa8882f65b02471cd35761336907d3b6  gcc/testsuite/gcc.target/i386/uintr-4.c
! c574722a02bcb4448aa068b358b0d3ce  gcc/testsuite/gcc.target/i386/uintr-5.c
  3df1f9aef42723bbbd0f795be1e64913  gcc/testsuite/gcc.target/i386/umod-1.c
  80c6ab83e85c9918b290e01c4d8514c5  gcc/testsuite/gcc.target/i386/umod-2.c
  bc81fc7aec323184dc275b97962476e5  gcc/testsuite/gcc.target/i386/umod-3.c
*************** b3482aa074e044edfb2a4c72e5c1d085  gcc/te
*** 82888,82893 ****
--- 93416,93422 ----
  133d7eb15ead287c2ef11a8162780801  gcc/testsuite/gcc.target/i386/unroll-1.c
  c30812b4c7eb367ec8e5f4aba349d66b  gcc/testsuite/gcc.target/i386/user_msr-1.c
  d817f6a5d58eae58bff8e4083f7945db  gcc/testsuite/gcc.target/i386/user_msr-2.c
+ aa50202a413f80a35396415eec316d08  gcc/testsuite/gcc.target/i386/user_msr-pr123217.c
  aafb0010ebceff249236af3aa1f22e2b  gcc/testsuite/gcc.target/i386/vararg-1.c
  3b8acabb2f18b3fd13f3871729bac23f  gcc/testsuite/gcc.target/i386/vararg-10.c
  2869209769b52916ee551938b0c572f1  gcc/testsuite/gcc.target/i386/vararg-2.c
*************** f2246fb526840289cc94bd7e8b0c994a  gcc/te
*** 82943,82952 ****
  9e17a1e6928bcaccff7de2228ffe1189  gcc/testsuite/gcc.target/i386/vect-double-2.c
  4c9ce05e33ac7d3784a3f13d53e110ed  gcc/testsuite/gcc.target/i386/vect-double-2a.c
  96ca3bdabd9bff8485a81bfe7ace5884  gcc/testsuite/gcc.target/i386/vect-epilogues-1.c
  17c2d170d498fc9c2649c0cb8d5bd3b9  gcc/testsuite/gcc.target/i386/vect-epilogues-2.c
! 21d76cc37d837035f538fac85d36fdf4  gcc/testsuite/gcc.target/i386/vect-epilogues-3.c
! a6ff603f96682f9f6d8b7309ee1c3088  gcc/testsuite/gcc.target/i386/vect-epilogues-4.c
! 249b46507d08e98058d76d830dc7822a  gcc/testsuite/gcc.target/i386/vect-epilogues-5.c
  44589af45370ba4865592d1e9e717b40  gcc/testsuite/gcc.target/i386/vect-float16-1.c
  22c6e6a37c837040af7566c0ebd70233  gcc/testsuite/gcc.target/i386/vect-float16-10.c
  412a2e12fa51e461ac9fc29d0bcadfae  gcc/testsuite/gcc.target/i386/vect-float16-11.c
--- 93472,93486 ----
  9e17a1e6928bcaccff7de2228ffe1189  gcc/testsuite/gcc.target/i386/vect-double-2.c
  4c9ce05e33ac7d3784a3f13d53e110ed  gcc/testsuite/gcc.target/i386/vect-double-2a.c
  96ca3bdabd9bff8485a81bfe7ace5884  gcc/testsuite/gcc.target/i386/vect-epilogues-1.c
+ cef1d09ae109a88edd147d2165e4038d  gcc/testsuite/gcc.target/i386/vect-epilogues-10.c
  17c2d170d498fc9c2649c0cb8d5bd3b9  gcc/testsuite/gcc.target/i386/vect-epilogues-2.c
! 0cdc2fbe9ff36733bd7f8f345b352aa9  gcc/testsuite/gcc.target/i386/vect-epilogues-3.c
! 96d83c1100ee48a3e94fc3aea99f8c6b  gcc/testsuite/gcc.target/i386/vect-epilogues-4.c
! bd48480826774a1e0edcea9a018ebf1b  gcc/testsuite/gcc.target/i386/vect-epilogues-5.c
! 4a3752854f880672ab695720ea3d815d  gcc/testsuite/gcc.target/i386/vect-epilogues-6.c
! 435fdad515e19a24fb9864655d011255  gcc/testsuite/gcc.target/i386/vect-epilogues-7.c
! a358ef7adfa9247678cbb184ee0193f6  gcc/testsuite/gcc.target/i386/vect-epilogues-8.c
! 1e7f3c1715eabbf2bb11450edbe63326  gcc/testsuite/gcc.target/i386/vect-epilogues-9.c
  44589af45370ba4865592d1e9e717b40  gcc/testsuite/gcc.target/i386/vect-float16-1.c
  22c6e6a37c837040af7566c0ebd70233  gcc/testsuite/gcc.target/i386/vect-float16-10.c
  412a2e12fa51e461ac9fc29d0bcadfae  gcc/testsuite/gcc.target/i386/vect-float16-11.c
*************** f9b3af027a9b6ed15ac79a3d3003a815  gcc/te
*** 82965,82970 ****
--- 93499,93506 ----
  df8fe973095a25b0038e0371af9053d4  gcc/testsuite/gcc.target/i386/vect-fmsubaddXXXps.c
  82dc60fe528d41ccd86fd9e442fb288f  gcc/testsuite/gcc.target/i386/vect-gather-1.c
  339b25c1c15e2ab8d1fcf9cb530f1171  gcc/testsuite/gcc.target/i386/vect-insert-1.c
+ 8936928d8ff1e7db1caee5a46d4fc1b4  gcc/testsuite/gcc.target/i386/vect-mask-epilogue-1.c
+ ae97a3ad8f5bc6ff37bc63dc72934d9c  gcc/testsuite/gcc.target/i386/vect-mask-epilogue-2.c
  82437418330b1ff76bf6a36967bd247c  gcc/testsuite/gcc.target/i386/vect-mulv4qi.c
  c0a8e3de707fb78f4441c0fe831dc041  gcc/testsuite/gcc.target/i386/vect-mulv8qi.c
  d6be07090948813f683ac84038744ff7  gcc/testsuite/gcc.target/i386/vect-pack-trunc-1.c
*************** c50397e875cfec6d318c0ef41dbe3596  gcc/te
*** 82976,82989 ****
  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
--- 93512,93530 ----
  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
+ 207e7402dad5569d0ba57a38fee6a48d  gcc/testsuite/gcc.target/i386/vect-pr122736.c
  515f451843087285cae4273f2866f93b  gcc/testsuite/gcc.target/i386/vect-pr67800.c
! 2d95d6fd458e66a2e6ff98ed01238327  gcc/testsuite/gcc.target/i386/vect-pr82426-2.c
! 7677260c5e9615f8adc02d0d8774dfd6  gcc/testsuite/gcc.target/i386/vect-pr82426.c
  c94d34a8add7450a1085d0dbbfca7403  gcc/testsuite/gcc.target/i386/vect-pr97352.c
+ 9bc8ccb91aec8a71c04a9fa162e725f8  gcc/testsuite/gcc.target/i386/vect-pragma-target-1.c
+ a04043a4ea34632928d0e9f94e464533  gcc/testsuite/gcc.target/i386/vect-pragma-target-2.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
+ a4dbe83161bc5daddec5db7f5327c277  gcc/testsuite/gcc.target/i386/vect-shift-1.c
  a82a9d393bb05c8976c4e48d693bd432  gcc/testsuite/gcc.target/i386/vect-shiftv4qi-2.c
! 70ce09136c23f60572b9e937e5bdcdcb  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
*************** e050839388ed939e6ea93e65d85f8264  gcc/te
*** 83001,83007 ****
  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
--- 93542,93554 ----
  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
! 01c07dea688ead7e87f11cab974529f8  gcc/testsuite/gcc.target/i386/vect_unroll-1.c
! f145e94613ff35758e6b8b1e46f85968  gcc/testsuite/gcc.target/i386/vect_unroll-2.c
! 368143b2360daf14fa7aef450051941b  gcc/testsuite/gcc.target/i386/vect_unroll-3.c
! 2c0dda4e1cb28f684b52e9f027f26ba9  gcc/testsuite/gcc.target/i386/vect_unroll-4.c
! 9197d64fe201e07181f36859e3c75198  gcc/testsuite/gcc.target/i386/vect_unroll-5.c
! 18eba7f0b960843d668e4106fa8febe0  gcc/testsuite/gcc.target/i386/vect_unroll-6.c
! b1175b617267193c68cf104b0264d75d  gcc/testsuite/gcc.target/i386/vectorize-aocl1.c
  8392cd251159c612f1d39b348071c359  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
  2b02856d49c831f0cc8cd5bce35766d7  gcc/testsuite/gcc.target/i386/vectorize2.c
*************** d9550dbca205ca245040a4868f69e106  gcc/te
*** 83020,83030 ****
  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
--- 93567,93577 ----
  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
! 768a2f669543d890bd5edfcd058a9aa3  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
! 0dc7aeb0f5451a876670a7b2a5290ece  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
*************** d313cc77f313c4dd63cd510957fdd87c  gcc/te
*** 83151,83157 ****
  04745ab7394d1702daa975607c216973  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
  c8dd24e1b18af774be1f6fa045252612  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
  2e396378f3ddbd9c2d4a3a214f00eeda  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! 844ff919190ce8569bfc0a5820c77ff5  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
  ec39e4f7e99d99e583f0ad35694883c0  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
--- 93698,93704 ----
  04745ab7394d1702daa975607c216973  gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c
  c8dd24e1b18af774be1f6fa045252612  gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c
  2e396378f3ddbd9c2d4a3a214f00eeda  gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c
! 96e58fb14a56bdee8017b21ceb0c5f18  gcc/testsuite/gcc.target/i386/zero-scratch-regs-23.c
  edede09b1afb458f310c448a3a2ffa14  gcc/testsuite/gcc.target/i386/zero-scratch-regs-24.c
  a7c92b064cd3dfa35552d030d9c88443  gcc/testsuite/gcc.target/i386/zero-scratch-regs-25.c
  ec39e4f7e99d99e583f0ad35694883c0  gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c
*************** a0db901c2d58c6ec7373c71e5e9f5f96  gcc/te
*** 83162,83167 ****
--- 93709,93715 ----
  bc37db967928436168b8c1061133369a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-30.c
  436c4c4db448d2a78bd0a4ff74e64d3a  gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c
  66378b9cfd36021151804e3b9acaa10c  gcc/testsuite/gcc.target/i386/zero-scratch-regs-32.c
+ a802b4b3fcbb11b953e3a919e483099b  gcc/testsuite/gcc.target/i386/zero-scratch-regs-33.c
  eadfc0a02336a6e52dffc2fcf8dfcf59  gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c
  66756a81f305b4e4d2c8a4d048f9a6ab  gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c
  1c155a5b2fa12b705e2c04f01342749d  gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c
*************** e50239a34975c5fbc852ce8f339c44ea  gcc/te
*** 83197,83209 ****
  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
  16e1396fec5164ccc957d13dccfdbc5b  gcc/testsuite/gcc.target/ia64/pr42542-1.c
  1b8db9215acd28ec852832eb4f47b483  gcc/testsuite/gcc.target/ia64/pr42542-2.c
--- 93745,93758 ----
  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
! 2c982331372682777006eb57ac95b294  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
+ b0da15d96ece6c4adef1a5fa34bec7aa  gcc/testsuite/gcc.target/ia64/pr121535.c
  5fac14a30ee1cf89bf281483c6706a7a  gcc/testsuite/gcc.target/ia64/pr29682.c
  16e1396fec5164ccc957d13dccfdbc5b  gcc/testsuite/gcc.target/ia64/pr42542-1.c
  1b8db9215acd28ec852832eb4f47b483  gcc/testsuite/gcc.target/ia64/pr42542-2.c
*************** e7cfcf35d3576cc348fad814806318e1  gcc/te
*** 83229,83423 ****
  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
! 9d4f972a3175f736a746ae031fb25e7a  gcc/testsuite/gcc.target/loongarch/attr-model-4.c
! 02f1973aec4f57a84c09f2b6bc6eaf79  gcc/testsuite/gcc.target/loongarch/attr-model-5.c
! f9bd26f98b04e99789925370214a2a06  gcc/testsuite/gcc.target/loongarch/attr-model-diag.c
! b0da33fc443024e77c7b605056bff4ae  gcc/testsuite/gcc.target/loongarch/attr-model-test.c
! 10a58b0c68aafdaa8704cc0ab8a37e3c  gcc/testsuite/gcc.target/loongarch/avg-ceil-lasx.c
! 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
  1dfea9ab319ea08d9da234c41d4b88e7  gcc/testsuite/gcc.target/loongarch/div-1.c
  82faab3f51217ce0561916dde4f4f801  gcc/testsuite/gcc.target/loongarch/div-2.c
  7247cc240dabb3c9514ba4b0a07278c5  gcc/testsuite/gcc.target/loongarch/div-3.c
  adc95e9ab59294f8040ec17904b73569  gcc/testsuite/gcc.target/loongarch/div-4.c
- 190971c88d51a5f97fe7426a50068cb5  gcc/testsuite/gcc.target/loongarch/div-div32.c
- a8652f3f7c02977b31b644cea4e31481  gcc/testsuite/gcc.target/loongarch/div-no-div32.c
- 6e5197f221248d28ac06cac538a2363d  gcc/testsuite/gcc.target/loongarch/divf.c
  40042c7bbd496ecf64b96ae4ff1f8fdc  gcc/testsuite/gcc.target/loongarch/eh_return-normal-return.c
- 1ae9338e5985e5f9077cdebb9c2bb358  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-extreme-tls-desc.c
- 21b95a5d0d6bd05f5d9790ef4a88439e  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-lto.c
- 1c89c7fbe655876c33ea49ba08f726d6  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-2.c
- 5f992d8bcd502efa354f5ce03c484ef6  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-3.c
- bdaf93b46f27a28e6b3cb3969710f26d  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store-no-anchor.c
- bb6ab9b0cdb20096c989643240d23a65  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-single-load-store.c
- 34306a7899f2b0f1cb8e0ca52c24dcfe  gcc/testsuite/gcc.target/loongarch/explicit-relocs-auto-tls-desc.c
- 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
! c9d08bb72896d9b4861ce4073ec5e57f  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-1.c
! 6d758f852068391aa189ac79c376aa60  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-2.c
! f72ce6aeb8beb0eff27354c07ef71cd1  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-3.c
! ab6db876a44193a92b0a1625c65eb4e7  gcc/testsuite/gcc.target/loongarch/flt-abi-isa-4.c
  aaaf53a882a8a0ae0583d851021e03cc  gcc/testsuite/gcc.target/loongarch/fmax-fmin.c
- fee1bedd25e7db9b4e91f3ede9e05608  gcc/testsuite/gcc.target/loongarch/frint.c
- 2f79a7482d38a9632f39b484c09a8f2f  gcc/testsuite/gcc.target/loongarch/fscaleb.c
- 40d69683116e216d2295e4600c830736  gcc/testsuite/gcc.target/loongarch/ftint-no-inexact.c
- 0f9dff1aa6e85e49a03dbcbdf4658c96  gcc/testsuite/gcc.target/loongarch/ftint.c
- ad86dc957e0557262d3e3b556956b2a0  gcc/testsuite/gcc.target/loongarch/func-call-1.c
- 6555886ed6fbe8f4e24de3a291a45553  gcc/testsuite/gcc.target/loongarch/func-call-2.c
- 5dbc11856d74098fe100931eb49438cb  gcc/testsuite/gcc.target/loongarch/func-call-3.c
- 6e7acd767b1c4bd09452cd99a2adea72  gcc/testsuite/gcc.target/loongarch/func-call-4.c
- 9e65a4490117f796bf975aa39588fccb  gcc/testsuite/gcc.target/loongarch/func-call-5.c
- f4006ce8b6051f06f10f9d4f5591b9ee  gcc/testsuite/gcc.target/loongarch/func-call-6.c
- ff8685804997300a25a532b1f5c17e96  gcc/testsuite/gcc.target/loongarch/func-call-7.c
- decd98512ab21ae74a09e32a6abfc080  gcc/testsuite/gcc.target/loongarch/func-call-8.c
- 28eaa615b63650546298adaaa97138fb  gcc/testsuite/gcc.target/loongarch/func-call-extreme-1.c
- abc2b0838f859cb5034e6b9c9d18c92e  gcc/testsuite/gcc.target/loongarch/func-call-extreme-2.c
- eb2a26811e189c046efddce2a403655a  gcc/testsuite/gcc.target/loongarch/func-call-extreme-3.c
- 53f7e2bf828ce03ea819bf054c3f5246  gcc/testsuite/gcc.target/loongarch/func-call-extreme-4.c
- ff0e2aebfb4d1d5589a93141d243ada3  gcc/testsuite/gcc.target/loongarch/func-call-extreme-5.c
- 4dfba11663b761b721dae15e3da8b055  gcc/testsuite/gcc.target/loongarch/func-call-extreme-6.c
- 2a224d8ac2c945f49aabfa8e72480cdc  gcc/testsuite/gcc.target/loongarch/func-call-medium-1.c
- f6b7479169616c267e977f0e4b51f5e8  gcc/testsuite/gcc.target/loongarch/func-call-medium-2.c
- 43e04457b33459e3eb8aaf53726aaad9  gcc/testsuite/gcc.target/loongarch/func-call-medium-3.c
- eb1c2859a54e94bb4ffc91ace282a688  gcc/testsuite/gcc.target/loongarch/func-call-medium-4.c
- 688abdafec41a13b5ed3e398a95c59a6  gcc/testsuite/gcc.target/loongarch/func-call-medium-5.c
- 88d4d9f38daa1da73fd5c65a4d728df4  gcc/testsuite/gcc.target/loongarch/func-call-medium-6.c
- 0821cc90410456526313b711771dd54e  gcc/testsuite/gcc.target/loongarch/func-call-medium-7.c
- 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
! ab8d85a261f0846c278e2d6db2c6ab77  gcc/testsuite/gcc.target/loongarch/mulw_d_w.c
! a82bd0c91438f0a8e295e7cb52d0c28d  gcc/testsuite/gcc.target/loongarch/mulw_d_wu.c
! fd0c004c00698c398646c63b4784aec2  gcc/testsuite/gcc.target/loongarch/popcnt.c
! cae8b3c3dd5f2d63f52f320672dc070b  gcc/testsuite/gcc.target/loongarch/popcount.c
  d6f2200e900b3d85d0a491db3bfa13bc  gcc/testsuite/gcc.target/loongarch/pr106459.c
  087dab2b9c082de756b93456f039cdb7  gcc/testsuite/gcc.target/loongarch/pr107713-1.c
  dfafc65f0a89ca5ee45ebec52ceac527  gcc/testsuite/gcc.target/loongarch/pr107713-2.c
  ee611d581d29c00b7178ec95c3dc6e82  gcc/testsuite/gcc.target/loongarch/pr107731.c
- 251e6e0daf2f383d861cd4cc3d6dbab7  gcc/testsuite/gcc.target/loongarch/pr109465-1.c
- 0be0571edd267d6daa792723973599b0  gcc/testsuite/gcc.target/loongarch/pr109465-2.c
- 6e2aba711dd54f39182efa0211e7c661  gcc/testsuite/gcc.target/loongarch/pr109465-3.c
  28cb26eb126183368e892a65835d3354  gcc/testsuite/gcc.target/loongarch/pr111334.c
! ec09b6aa0ae7b7a9eac9fb924e19c04c  gcc/testsuite/gcc.target/loongarch/pr112476-1.c
! a9d4722a275cd3486436322291f39c73  gcc/testsuite/gcc.target/loongarch/pr112476-2.c
! 015955305b62cb203ef217c6e29fe08a  gcc/testsuite/gcc.target/loongarch/pr112476-3.c
! 6c1f996e20dd99168f1dd9b6c6f40b00  gcc/testsuite/gcc.target/loongarch/pr112476-4.c
! 9b9319e8de39dcffbe873584b20d35a5  gcc/testsuite/gcc.target/loongarch/pr113033.c
! 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
! 359760e5160f4b52d2fa349806589a0d  gcc/testsuite/gcc.target/loongarch/pr121064.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
- 0f0929ffb430681fa30b2b435c3a1aea  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-h.c
- 741a56f765e9ca1db0263f22cf381eb7  gcc/testsuite/gcc.target/loongarch/rotl-with-vrotr-w.c
- 7dc4a61c0b96fca5ec769fe35befac24  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-b.c
- 280f9daaa9214e2c695cd02105bca31e  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-d.c
- 83a5f2fef9371e8f93530c6cba35f019  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-h.c
- caf6ff4ee29f7a81608a744d8b8bf49e  gcc/testsuite/gcc.target/loongarch/rotl-with-xvrotr-w.c
- 3443535afd7371e731be6ab37b74d55a  gcc/testsuite/gcc.target/loongarch/rotrw.c
- 6d04fd6ea7131893bf5730d8748cd0df  gcc/testsuite/gcc.target/loongarch/sad-lasx.c
- da965754e87b0f0ce1cc22b3fbb7298a  gcc/testsuite/gcc.target/loongarch/sad-lsx.c
  46f4e137231cac38e7e10152e3340365  gcc/testsuite/gcc.target/loongarch/short-circuit.c
  f46bb4d68c80f94cd959f7aefc8389e4  gcc/testsuite/gcc.target/loongarch/shrink-wrap.c
- 294f8a20e4eec5c0c40de71226677399  gcc/testsuite/gcc.target/loongarch/sign-extend-1.c
- ff53d68fc0f97e1b389fbdfc6b733d9e  gcc/testsuite/gcc.target/loongarch/sign-extend-2.c
- 503978ebbda9df9f9d2896d9898ab7b0  gcc/testsuite/gcc.target/loongarch/sign-extend-bitwise.c
- 969f8c63d5313b0ef2802d00df27886a  gcc/testsuite/gcc.target/loongarch/slt-sign-extend.c
- 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
--- 93778,93999 ----
  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
! eff69bc35d048fa62601a9d8fcef96e4  gcc/testsuite/gcc.target/loongarch/attr-check-error-message.c
! 6614f3555f96772a1c779329ac2439da  gcc/testsuite/gcc.target/loongarch/attr-check-error-message1.c
! 5530609893948652dbab8e030453c29d  gcc/testsuite/gcc.target/loongarch/attr-check-error-message2.c
! aea81ea95bc6b967587d435009752975  gcc/testsuite/gcc.target/loongarch/attr-check-error-message3.c
! edc5a6df33394b986a07c146289a3cd0  gcc/testsuite/gcc.target/loongarch/attr-check-error-message4.c
! 33e69c3ecf0711abc4767f5a23874b67  gcc/testsuite/gcc.target/loongarch/attr-check-error-message5.c
! 64c890914de64eca086414a511780c52  gcc/testsuite/gcc.target/loongarch/attr-check-error-message6.c
! b802a624eca3aa681adda2c112397671  gcc/testsuite/gcc.target/loongarch/attr-check-error-message7.c
! edfa6fd37ae9e96819d786435dd288a4  gcc/testsuite/gcc.target/loongarch/attr-check-warning-message1.c
! f4484d2432334104697dde09661cf134  gcc/testsuite/gcc.target/loongarch/attr-check-warning-message2.c
! 54041ab515cf3c7ebdab3c84b7d0f83a  gcc/testsuite/gcc.target/loongarch/attr-check-warning-message3.c
  dd4cbc8672952e717ba1b8b556dd0b49  gcc/testsuite/gcc.target/loongarch/bitwise-shift-reassoc-clobber.c
! 83cf2c4fac5fe267840ffbd21284e610  gcc/testsuite/gcc.target/loongarch/bstrins-5.c
! 413e1e730a03ef2e6fbdbc5826f0b0b0  gcc/testsuite/gcc.target/loongarch/bstrins-6.c
  ca8ab2fdd097231be9dd3f7bfdcebb7b  gcc/testsuite/gcc.target/loongarch/builtin_thread_pointer.c
  00fd27046cb10694212b8b3aa9811204  gcc/testsuite/gcc.target/loongarch/cas-acquire.c
  b4c0f3fd4670da4309e2a028316c3c4c  gcc/testsuite/gcc.target/loongarch/direct-extern-2.c
  1dfea9ab319ea08d9da234c41d4b88e7  gcc/testsuite/gcc.target/loongarch/div-1.c
  82faab3f51217ce0561916dde4f4f801  gcc/testsuite/gcc.target/loongarch/div-2.c
  7247cc240dabb3c9514ba4b0a07278c5  gcc/testsuite/gcc.target/loongarch/div-3.c
  adc95e9ab59294f8040ec17904b73569  gcc/testsuite/gcc.target/loongarch/div-4.c
  40042c7bbd496ecf64b96ae4ff1f8fdc  gcc/testsuite/gcc.target/loongarch/eh_return-normal-return.c
  ddf9ecd0daf6d14ef98de40e7fd68f34  gcc/testsuite/gcc.target/loongarch/fcopysign.c
! b91ffe240e28453bec3b93f2dfadd5a4  gcc/testsuite/gcc.target/loongarch/float-load.c
  aaaf53a882a8a0ae0583d851021e03cc  gcc/testsuite/gcc.target/loongarch/fmax-fmin.c
  5ba70284a6a6ec5af264e116cc217292  gcc/testsuite/gcc.target/loongarch/jump-table-annotate.c
! b0834d84380fe1ed2bc2a69bb9b939c9  gcc/testsuite/gcc.target/loongarch/la32/and.c
! 6736beefa8aa9aba876013f4225eddb5  gcc/testsuite/gcc.target/loongarch/la32/la32.exp
! de5d3d8a8aa9df887548104cbac9d373  gcc/testsuite/gcc.target/loongarch/la32/memcpy.c
! 0135e8dc8789ca56e6592d26d3bcbb95  gcc/testsuite/gcc.target/loongarch/la32/trunc_int_for_mode.c
! a6d76184ab8ab5eabc181a864d04aac5  gcc/testsuite/gcc.target/loongarch/la64/add-const.c
! 50a420804148a8a49953e00f95110c7d  gcc/testsuite/gcc.target/loongarch/la64/alsl-cost.c
! c16fea0d740f8946249d8d3ff6230152  gcc/testsuite/gcc.target/loongarch/la64/alsl_wu.c
! 15ee798ecf70fcf1ff54f0779a16f074  gcc/testsuite/gcc.target/loongarch/la64/and-large-immediate-opt.c
! 78d4e82afd447d6a8daeacd48e58bc86  gcc/testsuite/gcc.target/loongarch/la64/arch-func-attr-1.c
! 09e65435c71217bb197e267e1389d15f  gcc/testsuite/gcc.target/loongarch/la64/arch-pragma-attr-1.c
! 9f6a0067cf273ede4ba33d3824d023ff  gcc/testsuite/gcc.target/loongarch/la64/attr-model-1.c
! 432baf56ded24535d315bd2e867a8be3  gcc/testsuite/gcc.target/loongarch/la64/attr-model-2.c
! a7210513dd89b8e683a00184ee4478a4  gcc/testsuite/gcc.target/loongarch/la64/attr-model-3.c
! 9d4f972a3175f736a746ae031fb25e7a  gcc/testsuite/gcc.target/loongarch/la64/attr-model-4.c
! 02f1973aec4f57a84c09f2b6bc6eaf79  gcc/testsuite/gcc.target/loongarch/la64/attr-model-5.c
! eaedeb33f4a944f6ddcb113a7cd3ed14  gcc/testsuite/gcc.target/loongarch/la64/attr-model-6.c
! f9bd26f98b04e99789925370214a2a06  gcc/testsuite/gcc.target/loongarch/la64/attr-model-diag.c
! b0da33fc443024e77c7b605056bff4ae  gcc/testsuite/gcc.target/loongarch/la64/attr-model-test.c
! cd00ceeea45683383cf6ab2205253ad0  gcc/testsuite/gcc.target/loongarch/la64/bitint-alignments.c
! 5c715c6d7b8151a147fb4a6fb41b3be0  gcc/testsuite/gcc.target/loongarch/la64/bitint-args.c
! 301277270ef16c20c5a857394b26d4e3  gcc/testsuite/gcc.target/loongarch/la64/bitint-sizes.c
! e21ed5cafc7ccdbe2f139e72a1f702e1  gcc/testsuite/gcc.target/loongarch/la64/bitwise-shift-reassoc.c
! 414d78d00363c1e5dd854d23224b39d7  gcc/testsuite/gcc.target/loongarch/la64/bitwise_extend.c
! 3c95ec617ab685105bc31c59fb62dd42  gcc/testsuite/gcc.target/loongarch/la64/bstrins-1.c
! 0ef8c999aed72455a824deb73e462b46  gcc/testsuite/gcc.target/loongarch/la64/bstrins-2.c
! 5e8c1d5ca86d29f8a0ee54ea74388ce1  gcc/testsuite/gcc.target/loongarch/la64/bstrins-3.c
! 70325dffd4df0df0528c85bd49dbc2f8  gcc/testsuite/gcc.target/loongarch/la64/bstrins-4.c
! d6d72f67d9c86c49fe483871b08cc2c0  gcc/testsuite/gcc.target/loongarch/la64/bstrpick_alsl_paired.c
! 9c31e2b0b719536d37a3b720ea2be5ad  gcc/testsuite/gcc.target/loongarch/la64/bytepick_combine.c
! 828a53a834899f6cac56d99b1ec04d3b  gcc/testsuite/gcc.target/loongarch/la64/bytepick_shift_128.c
! 40d027f26b529d9286fbb712ca2a7342  gcc/testsuite/gcc.target/loongarch/la64/can_inline_1.c
! 7c4687586877a635387320076067d17b  gcc/testsuite/gcc.target/loongarch/la64/can_inline_2.c
! a1db2bbf996d48ba701c8efc582dad3d  gcc/testsuite/gcc.target/loongarch/la64/can_inline_3.c
! a1783fd9344ba40d5aa08ba39ced7efb  gcc/testsuite/gcc.target/loongarch/la64/can_inline_4.c
! e7871060f6568ccbaf0d8c13ef970b0e  gcc/testsuite/gcc.target/loongarch/la64/can_inline_5.c
! bde7ba2405e4971efe4fb79faf6333ec  gcc/testsuite/gcc.target/loongarch/la64/can_inline_6.c
! 866599c9e8b38ceef59bdaefc066abd5  gcc/testsuite/gcc.target/loongarch/la64/cmodel-extreme-1.c
! 69239f6c22a4bce44a4b781091a5a1dc  gcc/testsuite/gcc.target/loongarch/la64/cmodel-extreme-2.c
! d984aef61afc8f09af4c880507f6c6e6  gcc/testsuite/gcc.target/loongarch/la64/cmodel-func-attr-1.c
! 50ab91c6f8ea866c2cdb3d64e26052d2  gcc/testsuite/gcc.target/loongarch/la64/cmodel-pragma-attr-1.c
! 6c4891b18c6bd1154b7ea8237dc05a30  gcc/testsuite/gcc.target/loongarch/la64/cmov_ii.c
! 9efb1cedf311f58b73a175fae939dc78  gcc/testsuite/gcc.target/loongarch/la64/compare-both-non-zero.c
! 1faf96722faacc0ff389b62bf83b34ea  gcc/testsuite/gcc.target/loongarch/la64/conditional-move-opt-1.c
! 9f48ac8201f97bdbd1ec5edcd8f2984e  gcc/testsuite/gcc.target/loongarch/la64/conditional-move-opt-2.c
! 5f9e7145f8a500557b5629f8d93ad860  gcc/testsuite/gcc.target/loongarch/la64/conditional-move-opt-3.c
! d714312bcf2901d8e4e91206a319c6bb  gcc/testsuite/gcc.target/loongarch/la64/const-double-zero-stx.c
! c794f526430241ad83fd3ca5415524f0  gcc/testsuite/gcc.target/loongarch/la64/crc-sext.c
! 2ea39544bfe26567ec668ca7a33a8a5e  gcc/testsuite/gcc.target/loongarch/la64/direct-extern-1.c
! 190971c88d51a5f97fe7426a50068cb5  gcc/testsuite/gcc.target/loongarch/la64/div-div32.c
! a8652f3f7c02977b31b644cea4e31481  gcc/testsuite/gcc.target/loongarch/la64/div-no-div32.c
! 6e5197f221248d28ac06cac538a2363d  gcc/testsuite/gcc.target/loongarch/la64/divf.c
! 1ae9338e5985e5f9077cdebb9c2bb358  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-extreme-tls-desc.c
! 21b95a5d0d6bd05f5d9790ef4a88439e  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-lto.c
! 1c89c7fbe655876c33ea49ba08f726d6  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-2.c
! 5f992d8bcd502efa354f5ce03c484ef6  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-3.c
! bdaf93b46f27a28e6b3cb3969710f26d  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-no-anchor.c
! bb6ab9b0cdb20096c989643240d23a65  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store.c
! 34306a7899f2b0f1cb8e0ca52c24dcfe  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-tls-desc.c
! a0974c41c2d76b1294fb1d2efc48bd2f  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-tls-ld-gd.c
! 45ece568055adcf16495ad5a85ce6044  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-auto-tls-le-ie.c
! 692c2e25f06c20d20bed12d9a727afdf  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-extreme-auto-tls-ld-gd.c
! 4ff34634e3c8d0e461fe9d3c5047e953  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-extreme-tls-desc.c
! b90d585b99c59a2e3f6f7cce1bac5d6a  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-medium-auto-tls-ld-gd.c
! aaabc24a35d397c6567d048e65a87c90  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-medium-call36-auto-tls-ld-gd.c
! ad5117326114603de5f0e93ecd058244  gcc/testsuite/gcc.target/loongarch/la64/explicit-relocs-tls-desc.c
! b3b1176da6306a0ff9bbd0410c4995b3  gcc/testsuite/gcc.target/loongarch/la64/extendsidi2-combine.c
! 119ee122b14ed99349ce1179d5100a0e  gcc/testsuite/gcc.target/loongarch/la64/fclass-compile.c
! 2adb5c2fba43850d5c2b753f7a75ef1b  gcc/testsuite/gcc.target/loongarch/la64/fclass-run.c
! 256bb0a8b0fff1f225a70fa39849ccd6  gcc/testsuite/gcc.target/loongarch/la64/flogb.c
! c9d08bb72896d9b4861ce4073ec5e57f  gcc/testsuite/gcc.target/loongarch/la64/flt-abi-isa-1.c
! 6d758f852068391aa189ac79c376aa60  gcc/testsuite/gcc.target/loongarch/la64/flt-abi-isa-2.c
! f72ce6aeb8beb0eff27354c07ef71cd1  gcc/testsuite/gcc.target/loongarch/la64/flt-abi-isa-3.c
! ab6db876a44193a92b0a1625c65eb4e7  gcc/testsuite/gcc.target/loongarch/la64/flt-abi-isa-4.c
! fee1bedd25e7db9b4e91f3ede9e05608  gcc/testsuite/gcc.target/loongarch/la64/frint.c
! 2f79a7482d38a9632f39b484c09a8f2f  gcc/testsuite/gcc.target/loongarch/la64/fscaleb.c
! 40d69683116e216d2295e4600c830736  gcc/testsuite/gcc.target/loongarch/la64/ftint-no-inexact.c
! 0f9dff1aa6e85e49a03dbcbdf4658c96  gcc/testsuite/gcc.target/loongarch/la64/ftint.c
! ad86dc957e0557262d3e3b556956b2a0  gcc/testsuite/gcc.target/loongarch/la64/func-call-1.c
! 6555886ed6fbe8f4e24de3a291a45553  gcc/testsuite/gcc.target/loongarch/la64/func-call-2.c
! 5dbc11856d74098fe100931eb49438cb  gcc/testsuite/gcc.target/loongarch/la64/func-call-3.c
! 6e7acd767b1c4bd09452cd99a2adea72  gcc/testsuite/gcc.target/loongarch/la64/func-call-4.c
! 9e65a4490117f796bf975aa39588fccb  gcc/testsuite/gcc.target/loongarch/la64/func-call-5.c
! f4006ce8b6051f06f10f9d4f5591b9ee  gcc/testsuite/gcc.target/loongarch/la64/func-call-6.c
! ff8685804997300a25a532b1f5c17e96  gcc/testsuite/gcc.target/loongarch/la64/func-call-7.c
! decd98512ab21ae74a09e32a6abfc080  gcc/testsuite/gcc.target/loongarch/la64/func-call-8.c
! 28eaa615b63650546298adaaa97138fb  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-1.c
! abc2b0838f859cb5034e6b9c9d18c92e  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-2.c
! eb2a26811e189c046efddce2a403655a  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-3.c
! 53f7e2bf828ce03ea819bf054c3f5246  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-4.c
! ff0e2aebfb4d1d5589a93141d243ada3  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-5.c
! 4dfba11663b761b721dae15e3da8b055  gcc/testsuite/gcc.target/loongarch/la64/func-call-extreme-6.c
! 2a224d8ac2c945f49aabfa8e72480cdc  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-1.c
! 1969f1afb76a1ee1a23042d919bcb99f  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-2.c
! 92de0fba3a1e22e6d72202e7355e66b0  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-3.c
! 688abdafec41a13b5ed3e398a95c59a6  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-5.c
! 88d4d9f38daa1da73fd5c65a4d728df4  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-6.c
! 0821cc90410456526313b711771dd54e  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-7.c
! 6649897103ef58074cf4038c9f752b73  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-8.c
! 6ab9f24cca6a9ec8103e6ba80f494143  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-call36-1.c
! b9e59385233aedda5e9e3d95bfa2f29c  gcc/testsuite/gcc.target/loongarch/la64/func-call-medium-call36.c
! 1ca3c467f8697ea29a6e96864e967c97  gcc/testsuite/gcc.target/loongarch/la64/imm-load.c
! d7a3a4b5e884b4ba96b4ba493eb19316  gcc/testsuite/gcc.target/loongarch/la64/imm-load1.c
! c74ac6255a37860200cb087c773ff537  gcc/testsuite/gcc.target/loongarch/la64/invariant-recip.c
! 3ba155e74bf102a7b43de002c3068a51  gcc/testsuite/gcc.target/loongarch/la64/la64.exp
! 98ef5580c4aefc9fc806240653123084  gcc/testsuite/gcc.target/loongarch/la64/larch-frecipe-builtin.c
! 707da34d54e7998fc65722528a071870  gcc/testsuite/gcc.target/loongarch/la64/larch-frecipe-intrinsic.c
! 580cbd76e6364fdb160e63e4aace9a97  gcc/testsuite/gcc.target/loongarch/la64/lasx-func-attr-1.c
! 50e5afd436ad3b4f977fbbe4b5538229  gcc/testsuite/gcc.target/loongarch/la64/lasx-pragma-attr-1.c
! 4000dc14b31fce222ef708b8954c6b31  gcc/testsuite/gcc.target/loongarch/la64/lsx-func-attr-1.c
! 7fcb4a95a2d9dce2bbad3443335383e2  gcc/testsuite/gcc.target/loongarch/la64/lsx-pragma-attr-1.c
! 6fd3a91ad4fcbff919f3f7121bd94819  gcc/testsuite/gcc.target/loongarch/la64/math-float-128.c
! 6c85cdc89871ad17739456446ddcbeab  gcc/testsuite/gcc.target/loongarch/la64/mem-and-mask-opt.c
! 9fb3b8610b37b8332c61ea243a7f7eef  gcc/testsuite/gcc.target/loongarch/la64/memcpy-vec-1.c
! f8e85c0fabedb15da4e203ea4c1d6792  gcc/testsuite/gcc.target/loongarch/la64/memcpy-vec-2.c
! 9bdb8bae55f19f1a7d359c4bf87a4ba8  gcc/testsuite/gcc.target/loongarch/la64/memcpy-vec-3.c
! 99b1919a6979934ee049264960691fb7  gcc/testsuite/gcc.target/loongarch/la64/mode-tieable-opt.c
! e26420568eb59260ac109ca747ecbf46  gcc/testsuite/gcc.target/loongarch/la64/mov-zero-2.c
! 4931eef8fe508d14b75d3631fe8bbafc  gcc/testsuite/gcc.target/loongarch/la64/movcf2gr-via-fr.c
! bb6ea01b244f2c3e617730a44580a7bc  gcc/testsuite/gcc.target/loongarch/la64/movcf2gr.c
! 24d980eb7e8265126262771e4989fbd5  gcc/testsuite/gcc.target/loongarch/la64/movsf.c
! d23b33973d13d263ab78b5b4e0b94ef3  gcc/testsuite/gcc.target/loongarch/la64/mul-const-reduction.c
! a81bb88e2af3a8501ccdfe54556bf467  gcc/testsuite/gcc.target/loongarch/la64/mulh_wu.c
! ab8d85a261f0846c278e2d6db2c6ab77  gcc/testsuite/gcc.target/loongarch/la64/mulw_d_w.c
! a82bd0c91438f0a8e295e7cb52d0c28d  gcc/testsuite/gcc.target/loongarch/la64/mulw_d_wu.c
! 251e6e0daf2f383d861cd4cc3d6dbab7  gcc/testsuite/gcc.target/loongarch/la64/pr109465-1.c
! 0be0571edd267d6daa792723973599b0  gcc/testsuite/gcc.target/loongarch/la64/pr109465-2.c
! 6e2aba711dd54f39182efa0211e7c661  gcc/testsuite/gcc.target/loongarch/la64/pr109465-3.c
! b4671c279162dd2c1fd844929bdbbc6b  gcc/testsuite/gcc.target/loongarch/la64/pr113148.c
! 25f1f19f59d10bccef4e82021564ba66  gcc/testsuite/gcc.target/loongarch/la64/pr114861.c
! 1709ea55f48beb189a29c30f090ace12  gcc/testsuite/gcc.target/loongarch/la64/pr118561.c
! c6044525076dd7327380db8ab6c79150  gcc/testsuite/gcc.target/loongarch/la64/pr118828-2.c
! d9d14da72bb9c30da6076a724cdf6fa0  gcc/testsuite/gcc.target/loongarch/la64/pr118828-3.c
! b651e2531d68e2147b152deacbe8ad11  gcc/testsuite/gcc.target/loongarch/la64/pr118828-4.c
! a7ba2e5c68834495ccecdd75f123f220  gcc/testsuite/gcc.target/loongarch/la64/pr118828.c
! 31e639d66ad61d9aa6ddaa05d8baeb5d  gcc/testsuite/gcc.target/loongarch/la64/pr118843.c
! bfebec3a4dbfa9680a4285589498905c  gcc/testsuite/gcc.target/loongarch/la64/pr119127.c
! acf1fac916847c2064b8d2bbb6535828  gcc/testsuite/gcc.target/loongarch/la64/pr121542.c
! 754f11f1533603a4d550b593afc0c673  gcc/testsuite/gcc.target/loongarch/la64/pr121634.c
! d1eee63ffd26f53d2b788cb0eb55f5a6  gcc/testsuite/gcc.target/loongarch/la64/pr121875.c
! c0b3c2d2c2cbc5d300bfaec7c2d3e519  gcc/testsuite/gcc.target/loongarch/la64/pr123320.c
! 3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/la64/prolog-opt.c
! 1bfa30f99dc5f04f569fbff68640ab19  gcc/testsuite/gcc.target/loongarch/la64/recip-divf.c
! dfa82d46bae04856dd91309f03684574  gcc/testsuite/gcc.target/loongarch/la64/recip-sqrtf.c
! 1075563283e6d2ab3492f10a46a844ad  gcc/testsuite/gcc.target/loongarch/la64/relocs-symbol-noaddend.c
! b25665b969e5ff79a774f344cd8f02c0  gcc/testsuite/gcc.target/loongarch/la64/revb.c
! b6b376728d20351c33b093f21d54677e  gcc/testsuite/gcc.target/loongarch/la64/rotl-with-rotr.c
! 3443535afd7371e731be6ab37b74d55a  gcc/testsuite/gcc.target/loongarch/la64/rotrw.c
! 294f8a20e4eec5c0c40de71226677399  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-1.c
! ff53d68fc0f97e1b389fbdfc6b733d9e  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-2.c
! 3205391a09a9ea1564d339b7462d3608  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-3.c
! 6368cb5faa231e38fa7ec80586084a64  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-4.c
! 32bfdab51a9d5ec46f98aa105f20cad2  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-5.c
! 91be18c4ce300ca642ff3c3d69ce4acc  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-6.c
! 503978ebbda9df9f9d2896d9898ab7b0  gcc/testsuite/gcc.target/loongarch/la64/sign-extend-bitwise.c
! 6f84ea4a3d11d3be47a589d544ec42f5  gcc/testsuite/gcc.target/loongarch/la64/sign_extend_ashift.c
! 969f8c63d5313b0ef2802d00df27886a  gcc/testsuite/gcc.target/loongarch/la64/slt-sign-extend.c
! bf64f97d74ef11f20bfde63932d56667  gcc/testsuite/gcc.target/loongarch/la64/smuldi3_highpart.c
! 2f74f2f5fe892da58b8f6baf6aa297c8  gcc/testsuite/gcc.target/loongarch/la64/spill-less.c
! 803ffb89ba4bbdbdb90c999bf781d4cc  gcc/testsuite/gcc.target/loongarch/la64/sqrtf.c
! 5c59a0f71afe5e1247603961548ac0fc  gcc/testsuite/gcc.target/loongarch/la64/switch-qi.c
! 1ac501cd30db722f9955c498127b25bf  gcc/testsuite/gcc.target/loongarch/la64/tls-extreme-macro.c
! d764570a061f9e358a8c312e0f52b532  gcc/testsuite/gcc.target/loongarch/la64/tls-gd-noplt.c
! d3511a1f030e8253dbf6b20c73d33105  gcc/testsuite/gcc.target/loongarch/la64/tls-ie-extreme.c
! 59f8afcb4e93c86d7da2ab3c90529db3  gcc/testsuite/gcc.target/loongarch/la64/tls-ie-norelax.c
! 2a0b997731ed1ae360413e97d22d1e5c  gcc/testsuite/gcc.target/loongarch/la64/tls-ie-relax.c
! 273aefb7dcb812b056ec4f65efdd49ff  gcc/testsuite/gcc.target/loongarch/la64/tls-le-relax.c
! da307b3ed6f25b19b64faf3b5b9c456e  gcc/testsuite/gcc.target/loongarch/la64/widen-mul-rtx-cost-signed.c
! 85b7855a23d37a98585aa5df332a0722  gcc/testsuite/gcc.target/loongarch/la64/widen-mul-rtx-cost-unsigned.c
! daa985dfac90c17791ed0549fd2b0181  gcc/testsuite/gcc.target/loongarch/la64/zero-size-field-pass.c
! c5a3a773bb277e1c1071f9d892d1ed48  gcc/testsuite/gcc.target/loongarch/la64/zero-size-field-ret.c
! 7b7aa24ffb57990b688042ea2b1dafa1  gcc/testsuite/gcc.target/loongarch/larch-builtin.c
! b7250b3f47ec606e68b7c1665a7ae8e6  gcc/testsuite/gcc.target/loongarch/loongarch.exp
  d6f2200e900b3d85d0a491db3bfa13bc  gcc/testsuite/gcc.target/loongarch/pr106459.c
  087dab2b9c082de756b93456f039cdb7  gcc/testsuite/gcc.target/loongarch/pr107713-1.c
  dfafc65f0a89ca5ee45ebec52ceac527  gcc/testsuite/gcc.target/loongarch/pr107713-2.c
  ee611d581d29c00b7178ec95c3dc6e82  gcc/testsuite/gcc.target/loongarch/pr107731.c
  28cb26eb126183368e892a65835d3354  gcc/testsuite/gcc.target/loongarch/pr111334.c
! 2e6b9ab7fc5c12acdd68bc4887db082e  gcc/testsuite/gcc.target/loongarch/pr115752.c
  dde2cba27bc4292492e4c0dd492a70e0  gcc/testsuite/gcc.target/loongarch/pr119408.c
! 1dd25b33f6fd8d4c4dc750865d86f404  gcc/testsuite/gcc.target/loongarch/pr121906.c
! 0626ac54385b7d00394be7a0b09850a1  gcc/testsuite/gcc.target/loongarch/pr122695-1.c
! fb640df1e5eb969859e5c360f608dec4  gcc/testsuite/gcc.target/loongarch/pr122695-2.c
! a7b8424d31ff38e61388847501535b2d  gcc/testsuite/gcc.target/loongarch/pr123171.c
! d8ba98681e844aa3cab41dadb293ad62  gcc/testsuite/gcc.target/loongarch/pragma-la64V1_1-2.c
! 94f43e2ce509bac58eba454a85dd7a33  gcc/testsuite/gcc.target/loongarch/pragma-la64V1_1.c
  596c5238ab0cc321a3b51db7071941d8  gcc/testsuite/gcc.target/loongarch/regname-float-abi.c
  1eb5918b9e848616f17c8675b198b827  gcc/testsuite/gcc.target/loongarch/regname-fp-s9.c
  46f4e137231cac38e7e10152e3340365  gcc/testsuite/gcc.target/loongarch/short-circuit.c
  f46bb4d68c80f94cd959f7aefc8389e4  gcc/testsuite/gcc.target/loongarch/shrink-wrap.c
  e1615ec0889043a33798fc33df9c0c5e  gcc/testsuite/gcc.target/loongarch/smulsi3_highpart.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
*************** b0d8451f1600fb7ed044bb4afac6c54e  gcc/te
*** 83435,83489 ****
  9ddc825310e2f1207621093040d11658  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-6.c
  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/testsuite/gcc.target/loongarch/tls-ie-extreme.c
! 59f8afcb4e93c86d7da2ab3c90529db3  gcc/testsuite/gcc.target/loongarch/tls-ie-norelax.c
! 2a0b997731ed1ae360413e97d22d1e5c  gcc/testsuite/gcc.target/loongarch/tls-ie-relax.c
! 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
--- 94011,94050 ----
  9ddc825310e2f1207621093040d11658  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-6.c
  835c129cffc725b50f77270d00d701aa  gcc/testsuite/gcc.target/loongarch/stack-check-prologue-7.c
  6cc96f2ff91ce012328dc2190416bdf3  gcc/testsuite/gcc.target/loongarch/stack-check-prologue.h
  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
! 5476461186e33f60cdf514b4363e881a  gcc/testsuite/gcc.target/loongarch/trap-1.c
! 75db51c40cf15cf674f98cd2664252bd  gcc/testsuite/gcc.target/loongarch/trap-default.c
  bb57d24452eb2fea309f990edfa5de1c  gcc/testsuite/gcc.target/loongarch/umulsi3_highpart.c
  20592e6b1e8a0f3b8742b7beb0f51ae2  gcc/testsuite/gcc.target/loongarch/va_arg.c
! c32afe294b6ac61449492b3292f7530d  gcc/testsuite/gcc.target/loongarch/vect-mode-tieable.c
! fdc09cb25851254e708f2d7b35b30157  gcc/testsuite/gcc.target/loongarch/vector/lasx/abd-lasx.c
! 10a58b0c68aafdaa8704cc0ab8a37e3c  gcc/testsuite/gcc.target/loongarch/vector/lasx/avg-ceil-lasx.c
! 38e4e62393ad811f1092ea45b0c52b77  gcc/testsuite/gcc.target/loongarch/vector/lasx/avg-floor-lasx.c
! ba1f9cd7776de398eabc15fb6f7d523b  gcc/testsuite/gcc.target/loongarch/vector/lasx/fnmam4-vec.c
! 310196e47529f6c726239009748a1dc8  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-andn-iorn.c
! ff04753758847e0200cd4aee08b80f4a  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
  fe6faa6ba0306efed8c468b31f250333  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-divf.c
+ 422b961441dba2c6db58a57ace03db0d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-extract-even_odd-opt.c
  63c0a41070b08339598b12401f6f0275  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-frecipe-builtin.c
+ dd89cf931606852d264a068d0da89f48  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-func-attr-2.c
+ 906d80bea4f1077ff428fa3626503bcb  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-pragma-attr-2.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
+ de06cc3da65946f38baaa81bb163fca6  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-reduc-1.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
+ f4767f7e42f7ea8cf7def350ea5c64f2  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-struct-move.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
! 1d6158e1f121c126a0fae3e7dcca1254  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
*************** eabada13f32856fa41e6cac69f561cf4  gcc/te
*** 83578,83583 ****
--- 94139,94145 ----
  766453875b0d43b6c8bb99abbe5b9557  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c
  26672a5dbc3041697a045017e0cde737  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c
  77f3d7a82751f9eb11467be3889070b2  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c
+ ddbedf8146075e517a459f40ac70f9e4  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi-2.c
  748ffb4edd4561ec7feb3fec60b26a91  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c
  0a8c73176bb28027c671b5d568ef09bb  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c
  bbd1785f04afb1fd3106fdd0526be638  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c
*************** e6d073e359cda464e138b1b808209a07  gcc/te
*** 83619,83624 ****
--- 94181,94187 ----
  d8e031a7672d551daeb9c0343f196b90  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
  1d2659e78407c128a3305bd53e7d8751  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
  c6091d6b4d13af307c56751cc58f5e22  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c
+ 253049b59bb1e2fdd28eb33f646c488d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpermi_q-opt.c
  30a0eb65ea8739a2ebc0d73f416eb624  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpermi_q.c
  b5d94eacfaeb18df1a5ba78a6988a18d  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
  5bedc8766d3982d413dc2aae27eb52cf  gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
*************** eb7720d1ee0f7dde86471e1b8ad3b82f  gcc/te
*** 83688,83699 ****
  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
  21062258537eee99097cccdc4b7c1956  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-divf.c
  2549c56a693f1d0960c7cc8ba86e0067  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-sqrtf.c
  fb3c160369677c07483fb4dc63539faa  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip.c
--- 94251,94307 ----
  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
! de83bbcbb03e37b7d3c3619033b6882e  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr112476-2.c
! 178cabcb86491ff3ad0921dced4838d3  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr112476-4.c
! 9b9319e8de39dcffbe873584b20d35a5  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr113033.c
! 970835a22a2eef8dad1be6ea6edc6402  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr123521.c
! 91b4f4f5d2c5b786b45fad8edab6e2a3  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr123766.c
! 1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/vector/lasx/pragma-push-pop.c
! 7c1d85beb3eaf3489d693d57eb51dcd2  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-b.c
! e3b0049caf475cc1fdd98f6d52e6c7ae  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-d.c
! cecd9f8159d8c4d5b14c7d7037f45906  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-h.c
! 8c146b452afb556897e11012fd5851ed  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-w.c
! 6d04fd6ea7131893bf5730d8748cd0df  gcc/testsuite/gcc.target/loongarch/vector/lasx/sad-lasx.c
! 18e238abfacb1352fe7e95b0b7b889f2  gcc/testsuite/gcc.target/loongarch/vector/lasx/strict-align.c
! 70483635c3588614c2e0a2041be7876c  gcc/testsuite/gcc.target/loongarch/vector/lasx/vec_pack_unpack_256.c
! 112af8185d79088b4a51d1c2a0ce64cc  gcc/testsuite/gcc.target/loongarch/vector/lasx/vec_reduc_half.c
! 590522d9e3f47096ccc8e0a658c2812f  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-concat-128-256-result.c
! be2f81347a1bc18228cbe68f8a6676df  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-concat-128-256.c
! 4978a46fd91b35d00996d6af20419bc4  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-extract-256-128-result.c
! 820ed6aaf6680052a63ae40334b2617a  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-extract-256-128.c
! 13cec58c7391a5cef41368197f850947  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-extract.c
! e938ebb81df2ed0b44e7fabc3afc2107  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-frint-no-inexact.c
! 179412aced110fd38bdd89629658990a  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-frint.c
! 2edf870f7beff0da25d59180ebfb5e0c  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-ftint-no-inexact.c
! f6f3d1bdc697b2c550948539a48d2ed4  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-ftint.c
! d67d0b2dd1af9cfdc8605e911d35033d  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-insert-128-256-result.c
! 77fb9fd3de6fc5b3b1a643753b89d93c  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-insert-128-256.c
! e174ae75eabb1baa10e7ef9e75e93275  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-ld-st-imm12.c
! 537c2448576790bc3b9448c2a930f5f0  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-muh.c
! 1f7b7228148fe23bb98c9ae0d151646c  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-rotr.c
! 0a2e2eac72cfcca97984627c1e764927  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-shuf-fp.c
! 42bb88d1ea7d5aa2572afc7cb9d13bff  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-slp-two-operator.c
! 453da6047ce09c69691270feaa485c69  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-widen-add.c
! c4a5bf3904159f6c4f6e17ee0da90889  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-widen-mul.c
! 3ed720b4bc387e4269bf3226dd3fdfe5  gcc/testsuite/gcc.target/loongarch/vector/lasx/vect-widen-sub.c
! 10ddd292b7613ff19e60e7031e01d5b7  gcc/testsuite/gcc.target/loongarch/vector/lasx/vfmax-vfmin.c
! dc2394fc2f65e2df2041cf81f93decfe  gcc/testsuite/gcc.target/loongarch/vector/lasx/vrepli.c
! a005b26aa548eee07a39a18e458d0abc  gcc/testsuite/gcc.target/loongarch/vector/lasx/wide-mul-reduc-1.c
! c1d9bd83ec7fb2ffe482949572f2b0d3  gcc/testsuite/gcc.target/loongarch/vector/lasx/wide-mul-reduc-2.c
! 5fa559c98e0a76dc9bf4159c33983127  gcc/testsuite/gcc.target/loongarch/vector/lasx/xvfcmp-d.c
! d606d6c0d753daa5c9b1f46734a96bbf  gcc/testsuite/gcc.target/loongarch/vector/lasx/xvfcmp-f.c
! 191265dcfa2e8f1566354ffd570b3564  gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
! 9c9daf846165a43b8331181f335522dc  gcc/testsuite/gcc.target/loongarch/vector/lsx/abd-lsx.c
! e6be30166471664309a52d26e4caaad6  gcc/testsuite/gcc.target/loongarch/vector/lsx/avg-ceil-lsx.c
! a85403ab7a61ba6f56d2c3150b9f8bcb  gcc/testsuite/gcc.target/loongarch/vector/lsx/avg-floor-lsx.c
  5d55305c4d66b32dd004f424d4a0a0fb  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-abs.c
! d4c4c9d0b9ae0369cd930c837d2425b7  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-andn-iorn.c
! 6a9047e8dd670a2f365e1b54d968da7b  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
+ 08ecc6d7a6749ae690a432b527687be9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-func-attr-2.c
  7fd4b4d80ef3b95b73b71b66d9e6cd92  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-1.c
+ 2ff50940f45f70c1c0e511eeb9f27d97  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-pragma-attr-2.c
  21062258537eee99097cccdc4b7c1956  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-divf.c
  2549c56a693f1d0960c7cc8ba86e0067  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-sqrtf.c
  fb3c160369677c07483fb4dc63539faa  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip.c
*************** e84275b7667c2d79a9ec36554a0a0ff8  gcc/te
*** 83734,83740 ****
  cd8d19881388a5f6b39dfcba7f117cde  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vcond-2.c
  b2b648fbb2867c84e9f49bfc3fce51ee  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c
  31a97a86424b3714d7f6dccb4be9d209  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c
! 93970ab0ec124181f94e7cf40603c7b3  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vec-construct-opt.c
  d36022645c83931e253e55310ed5e242  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c
  97d7f446a9a9bd22f76abc0db7d87330  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c
  727349918eaca621d2c907e505552319  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c
--- 94342,94348 ----
  cd8d19881388a5f6b39dfcba7f117cde  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vcond-2.c
  b2b648fbb2867c84e9f49bfc3fce51ee  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c
  31a97a86424b3714d7f6dccb4be9d209  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c
! 5158c7079bdf006d810f548286d2ad3d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vec-construct-opt.c
  d36022645c83931e253e55310ed5e242  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c
  97d7f446a9a9bd22f76abc0db7d87330  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c
  727349918eaca621d2c907e505552319  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c
*************** e2aeb686c929d21655a56b41ff82b987  gcc/te
*** 83791,83796 ****
--- 94399,94405 ----
  f9f6637e34ded5af025ddf799b0dd1f7  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c
  04017bc91621d05d67abd13e9c9705cc  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c
  9b2425b4d722accf67b41a8487f0fa83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c
+ ff7ee617e3113467b709dcde88457b18  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi-2.c
  6ff8009674b1b0aacde6adf1cc03478d  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c
  9a97926cb00a679d29797fdb19a15f8e  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c
  4e790fa00c3e4756b044c3ee8eafc818  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c
*************** d9ab49aa7d7730596242bed46b4c7bed  gcc/te
*** 83899,83917 ****
  87366d24b56b7a97edbfcb4983a57a52  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c
  5c8f61426f6c4882be1e61b33f277961  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign-run.c
  ee9aafb340a5c2597a6f656ccbd8a374  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign.c
  70005d5f6a26c8e3f8e5afe7cdc53bbf  gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
- 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
- 3bce0fc3b123701a83000672e3455ccc  gcc/testsuite/gcc.target/loongarch/xvfcmp-f.c
- 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
--- 94508,94540 ----
  87366d24b56b7a97edbfcb4983a57a52  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c
  5c8f61426f6c4882be1e61b33f277961  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign-run.c
  ee9aafb340a5c2597a6f656ccbd8a374  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-xorsign.c
+ 99145c3f37b9ab131e0ed0ffe3cb707d  gcc/testsuite/gcc.target/loongarch/vector/lsx/mov-zero-1.c
+ fd0c004c00698c398646c63b4784aec2  gcc/testsuite/gcc.target/loongarch/vector/lsx/popcnt.c
+ cae8b3c3dd5f2d63f52f320672dc070b  gcc/testsuite/gcc.target/loongarch/vector/lsx/popcount.c
+ ec09b6aa0ae7b7a9eac9fb924e19c04c  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr112476-1.c
+ 015955305b62cb203ef217c6e29fe08a  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr112476-3.c
+ dbfbd76701c5c3e6c8ed37ced1ba9cc7  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr119084.c
+ 359760e5160f4b52d2fa349806589a0d  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr121064.c
+ 4fb67de6ceaa4d3d0dfff318541b470b  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr122097.c
+ 76be8fbd02020c0b574be8ba3ce9b597  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123117.c
+ 559fe74ad49c6f3f986d68a4822b9041  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123766.c
+ c09c273ba4acff5a9b6ac824b23ab663  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123807.c
+ 2ddebd413eaa67833fbe9045727d296a  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-b.c
+ b4792704ae2560835ce2844ab052bd96  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-d.c
+ 0f0929ffb430681fa30b2b435c3a1aea  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-h.c
+ 741a56f765e9ca1db0263f22cf381eb7  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-w.c
+ da965754e87b0f0ce1cc22b3fbb7298a  gcc/testsuite/gcc.target/loongarch/vector/lsx/sad-lsx.c
+ bbbc51cc2b6669a160c181fc1ab12412  gcc/testsuite/gcc.target/loongarch/vector/lsx/vec_pack_unpack_128.c
+ 28d0cf4f00f5bdd8404d0daedaac3307  gcc/testsuite/gcc.target/loongarch/vector/lsx/vect-frint-scalar-no-inexact.c
+ a065ef972535f71ed1b7b9d5a37c43be  gcc/testsuite/gcc.target/loongarch/vector/lsx/vect-frint-scalar.c
+ c73656f986e7e0217bc13b99a227b4b3  gcc/testsuite/gcc.target/loongarch/vector/lsx/vect-shift-imm-round.c
+ a78d6c1fd79f5c1d8a67aa38a8dc8943  gcc/testsuite/gcc.target/loongarch/vector/lsx/vector-func-attr-1.c
+ 58826efcc90333c707edc8514608dfc0  gcc/testsuite/gcc.target/loongarch/vector/lsx/vector-pragma-attr-1.c
+ 32fede0d9373ef10c92cbfd15cda3c85  gcc/testsuite/gcc.target/loongarch/vector/lsx/vfcmp-d.c
+ c08e307370de6dd5122f517ca9b88bd3  gcc/testsuite/gcc.target/loongarch/vector/lsx/vfcmp-f.c
+ 10ce9c8f9619651c9d46b51e45ae26da  gcc/testsuite/gcc.target/loongarch/vector/lsx/xorsign-run.c
+ 9b099d473b8bfb835da7cb656ac3e3f3  gcc/testsuite/gcc.target/loongarch/vector/lsx/xorsign.c
  70005d5f6a26c8e3f8e5afe7cdc53bbf  gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
  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
*************** aa59fb938dc80d0bfebfc946cdbfbabf  gcc/te
*** 83920,83930 ****
  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
--- 94543,94554 ----
  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
! ba57eedbf5c1a0e771c097bdc97ad38a  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
+ 77c5233e7d3a49a5fb6dc52970f065f6  gcc/testsuite/gcc.target/m68k/pr120169.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
*************** bce9fa2c6f1e56b2fc1016479a2343a7  gcc/te
*** 83985,83992 ****
  5b2981de420be71c356c495dfca11de9  gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c
  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
--- 94609,94617 ----
  5b2981de420be71c356c495dfca11de9  gcc/testsuite/gcc.target/microblaze/isa/nofcmp.c
  a816dff6f0a70651b4a2baba36df01bf  gcc/testsuite/gcc.target/microblaze/isa/nofloat.c
  7bd8c4012b4e818f846d60047de3d957  gcc/testsuite/gcc.target/microblaze/isa/pcmp.c
+ f45b5b3a93982c8808b97cea207f6871  gcc/testsuite/gcc.target/microblaze/isa/pr103383.c
  215c22e1a44b562b1792467518f5da2c  gcc/testsuite/gcc.target/microblaze/isa/vanilla.c
! bf545e76a6a180ba7357b95b798e52e2  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
*************** cd2c03a51a97923d710850a4e2fd7a03  gcc/te
*** 84069,84074 ****
--- 94694,94700 ----
  a96d84214b187b42a6e24c4bab58f789  gcc/testsuite/gcc.target/mips/bswap-4.c
  29bd7f8cebfb02a2fc8965b0af28e99a  gcc/testsuite/gcc.target/mips/bswap-5.c
  2230520d1ef1886463333fd2dcedd190  gcc/testsuite/gcc.target/mips/bswap-6.c
+ 046ac5d585f0739ff71348fb441aeb07  gcc/testsuite/gcc.target/mips/bswap-7.c
  b1facdebb98463584872620656c72843  gcc/testsuite/gcc.target/mips/cache-1.c
  8d323ceb7871f85137e0362bd4c6f6c1  gcc/testsuite/gcc.target/mips/call-1.c
  2769e44af5992b59408b5ca732dc6fda  gcc/testsuite/gcc.target/mips/call-1u.c
*************** a800917b7b48d6278887db7b70ae66bd  gcc/te
*** 84082,84091 ****
  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
  b3872e53b5af94b99567753dea47cf86  gcc/testsuite/gcc.target/mips/call-from-init.c
  1e3ebd7c668ef91c3268b4d9d3507fa0  gcc/testsuite/gcc.target/mips/call-saved-1.c
  f39ef2837642b28b3aa687896843d386  gcc/testsuite/gcc.target/mips/call-saved-2.c
--- 94708,94717 ----
  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
! d9feb7745a8a13f915c1969bf7bf10a4  gcc/testsuite/gcc.target/mips/call-clobbered-1.c
! d76d7252a14dfa6999ae4a0237911de7  gcc/testsuite/gcc.target/mips/call-clobbered-2.c
! 8377eed11b269dec4d4be6c908cceb63  gcc/testsuite/gcc.target/mips/call-clobbered-3.c
! dde99d8e40091b2cea23e78a549580a1  gcc/testsuite/gcc.target/mips/call-clobbered-5.c
  b3872e53b5af94b99567753dea47cf86  gcc/testsuite/gcc.target/mips/call-from-init.c
  1e3ebd7c668ef91c3268b4d9d3507fa0  gcc/testsuite/gcc.target/mips/call-saved-1.c
  f39ef2837642b28b3aa687896843d386  gcc/testsuite/gcc.target/mips/call-saved-2.c
*************** b6598997f99e11ea5cde760f16bc51b8  gcc/te
*** 84099,84105 ****
  251d8644980f5886f8aeb79798fe635a  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr1.c
  36fa48d478ea5b5df27bfa51749b03bc  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr2.c
  ddd414d2cdff7059cb5e0c601ad632cc  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr3.c
! 0e811556243ef05a090351b71010af15  gcc/testsuite/gcc.target/mips/clear-cache-1.c
  10c7701a3904364c72d3dc09d3612abd  gcc/testsuite/gcc.target/mips/clear-cache-2.c
  d8720bdab5bd3ac1a9a2656e6a83f553  gcc/testsuite/gcc.target/mips/clo.c
  bd664be1fa493e8551398de32f3a5bec  gcc/testsuite/gcc.target/mips/clz.c
--- 94725,94731 ----
  251d8644980f5886f8aeb79798fe635a  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr1.c
  36fa48d478ea5b5df27bfa51749b03bc  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr2.c
  ddd414d2cdff7059cb5e0c601ad632cc  gcc/testsuite/gcc.target/mips/cfgcleanup-jalr3.c
! 20c23283ee932afc0a28b5ef0ce3ded9  gcc/testsuite/gcc.target/mips/clear-cache-1.c
  10c7701a3904364c72d3dc09d3612abd  gcc/testsuite/gcc.target/mips/clear-cache-2.c
  d8720bdab5bd3ac1a9a2656e6a83f553  gcc/testsuite/gcc.target/mips/clo.c
  bd664be1fa493e8551398de32f3a5bec  gcc/testsuite/gcc.target/mips/clz.c
*************** e2e919bd6b3b44667f3b169474d912da  gcc/te
*** 84143,84149 ****
  3a7a1efa69d960feb2aefc4d6841aeb3  gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
  cd92c7c6a33b95d2beff640bfb2cca21  gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
  8f312a4384d0edd42a8c70f5537ed215  gcc/testsuite/gcc.target/mips/ds-schedule-1.c
! 7c4b64a6450664d6468ca4b607d335ba  gcc/testsuite/gcc.target/mips/ds-schedule-2.c
  2e550bb9bfe216a5044f885d26d86320  gcc/testsuite/gcc.target/mips/dse-1.c
  6d3b0a83bc9777d9f8466fbae645a376  gcc/testsuite/gcc.target/mips/dsp-ctrl.c
  b55929dabbb4b0c1f9cfa4c6e4b0c589  gcc/testsuite/gcc.target/mips/dsp-lhx.c
--- 94769,94775 ----
  3a7a1efa69d960feb2aefc4d6841aeb3  gcc/testsuite/gcc.target/mips/dpaq_sa_l_w.c
  cd92c7c6a33b95d2beff640bfb2cca21  gcc/testsuite/gcc.target/mips/dpsq_sa_l_w.c
  8f312a4384d0edd42a8c70f5537ed215  gcc/testsuite/gcc.target/mips/ds-schedule-1.c
! 42096c931d824aaf45154f5a225134ed  gcc/testsuite/gcc.target/mips/ds-schedule-2.c
  2e550bb9bfe216a5044f885d26d86320  gcc/testsuite/gcc.target/mips/dse-1.c
  6d3b0a83bc9777d9f8466fbae645a376  gcc/testsuite/gcc.target/mips/dsp-ctrl.c
  b55929dabbb4b0c1f9cfa4c6e4b0c589  gcc/testsuite/gcc.target/mips/dsp-lhx.c
*************** b5002e9e5369181413c9ffddd38c11f9  gcc/te
*** 84244,84258 ****
  70c94adace0bd7cd35010911da9c9139  gcc/testsuite/gcc.target/mips/inline-memcpy-5.c
  dd64e8cdd004ba4494a3398edaa48b08  gcc/testsuite/gcc.target/mips/ins-1.c
  e737a9665e4a01684c7b0ba43c089aa0  gcc/testsuite/gcc.target/mips/ins-2.c
! f0cc976eb19a1cda0da8bf34ccd5d2cb  gcc/testsuite/gcc.target/mips/insn-casesi.c
  8d025fa13e3eeb7a1a9af24f95ad80dd  gcc/testsuite/gcc.target/mips/insn-pseudo-1.c
  be554e053cbd112c609e099a1ceb0b40  gcc/testsuite/gcc.target/mips/insn-pseudo-2.c
  d7d788527850d4c290833ed5b4202f22  gcc/testsuite/gcc.target/mips/insn-pseudo-3.c
  e7490a676f50b43dff9fbe84ff3bd95e  gcc/testsuite/gcc.target/mips/insn-pseudo-4.c
! 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
--- 94870,94884 ----
  70c94adace0bd7cd35010911da9c9139  gcc/testsuite/gcc.target/mips/inline-memcpy-5.c
  dd64e8cdd004ba4494a3398edaa48b08  gcc/testsuite/gcc.target/mips/ins-1.c
  e737a9665e4a01684c7b0ba43c089aa0  gcc/testsuite/gcc.target/mips/ins-2.c
! 3c29f4b79852cf0a3c2c18758fb4ea0b  gcc/testsuite/gcc.target/mips/insn-casesi.c
  8d025fa13e3eeb7a1a9af24f95ad80dd  gcc/testsuite/gcc.target/mips/insn-pseudo-1.c
  be554e053cbd112c609e099a1ceb0b40  gcc/testsuite/gcc.target/mips/insn-pseudo-2.c
  d7d788527850d4c290833ed5b4202f22  gcc/testsuite/gcc.target/mips/insn-pseudo-3.c
  e7490a676f50b43dff9fbe84ff3bd95e  gcc/testsuite/gcc.target/mips/insn-pseudo-4.c
! c8aefa46e21a06ac59acbe4454ac6aba  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
! 0ea6c6aa9fb11528cbc08b378a98895e  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
*************** d231e6bcd981687f765ebf5b64bfe33d  gcc/te
*** 84260,84266 ****
  182598bf33431d1933c4b21d158da61d  gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
  b9b37165daf384acae5e8b1e3d7be3ab  gcc/testsuite/gcc.target/mips/interrupt_handler-4.c
  73aeef2267882b6a02feebd9800975bb  gcc/testsuite/gcc.target/mips/interrupt_handler-5.c
! 5bf183bc3d0bab75584f2bbe67f8ba82  gcc/testsuite/gcc.target/mips/interrupt_handler-bug-1.c
  15d2f2b6900591b7978be720228ab67e  gcc/testsuite/gcc.target/mips/interrupt_handler.c
  a7e445246bdadc16c000f403c940751f  gcc/testsuite/gcc.target/mips/lazy-binding-1.c
  c18b68f8aaa7ea2fe5f6c6d2449e955d  gcc/testsuite/gcc.target/mips/long-calls-pg.c
--- 94886,94892 ----
  182598bf33431d1933c4b21d158da61d  gcc/testsuite/gcc.target/mips/interrupt_handler-3.c
  b9b37165daf384acae5e8b1e3d7be3ab  gcc/testsuite/gcc.target/mips/interrupt_handler-4.c
  73aeef2267882b6a02feebd9800975bb  gcc/testsuite/gcc.target/mips/interrupt_handler-5.c
! a0e4c15633d46820eb5db12ca94c650b  gcc/testsuite/gcc.target/mips/interrupt_handler-bug-1.c
  15d2f2b6900591b7978be720228ab67e  gcc/testsuite/gcc.target/mips/interrupt_handler.c
  a7e445246bdadc16c000f403c940751f  gcc/testsuite/gcc.target/mips/lazy-binding-1.c
  c18b68f8aaa7ea2fe5f6c6d2449e955d  gcc/testsuite/gcc.target/mips/long-calls-pg.c
*************** bbca9daae904a8021f6601711b374b9a  gcc/te
*** 84276,84281 ****
--- 94902,94908 ----
  7bad33ffaa0d5f28c0292bd3a8f1990b  gcc/testsuite/gcc.target/mips/lxc1-sxc1-1.c
  32e8c4673b5166757f1bf22ec18927ed  gcc/testsuite/gcc.target/mips/lxc1-sxc1-2.c
  5a30e65eee1fd4da333668bdbbba2bff  gcc/testsuite/gcc.target/mips/madd-1.c
+ f5d3751daa1b5af439fe00d9328ad5db  gcc/testsuite/gcc.target/mips/madd-10.c
  26704c4dbeb6551d1302fd148169a838  gcc/testsuite/gcc.target/mips/madd-2.c
  d5290a56a230b5523e07e0a3a01d8d36  gcc/testsuite/gcc.target/mips/madd-3.c
  ac7d5969c5c27829d984af11967234a8  gcc/testsuite/gcc.target/mips/madd-4.c
*************** be556d603f230ccc0ab40b5a834b5623  gcc/te
*** 84290,84296 ****
--- 94917,94927 ----
  1660492e57b6adbaf9ed4a6f2df03717  gcc/testsuite/gcc.target/mips/maddu-2.c
  3500999b29ed05c27bf103acfbd6f659  gcc/testsuite/gcc.target/mips/maddu-3.c
  5eb0a529ed68f3a91f6d6ebbc3349cc4  gcc/testsuite/gcc.target/mips/maddu-4.c
+ 50ad78bc86b86353dc6e26f3ca5a129c  gcc/testsuite/gcc.target/mips/maddu-5.c
+ da820ac3cba4604d00fed1e4ee298dc1  gcc/testsuite/gcc.target/mips/max-1.c
  3716fa4b375b446283272f9569dacf34  gcc/testsuite/gcc.target/mips/memcpy-1.c
+ 4a38b040efb5a22fb9f1f2b5fda6a87e  gcc/testsuite/gcc.target/mips/memcpy-2.c
+ 054465d382f44158822e3f14595c3ab4  gcc/testsuite/gcc.target/mips/min-1.c
  cd3e6ee872a98f50548b07562176981b  gcc/testsuite/gcc.target/mips/mips-3d-1.c
  9e2d5a797e2a158f81a36f81b4c844bf  gcc/testsuite/gcc.target/mips/mips-3d-2.c
  7c25eb6263a1d5cf1448f526b1909c8f  gcc/testsuite/gcc.target/mips/mips-3d-3.c
*************** e29cf040ff47381ec220169736b7446a  gcc/te
*** 84305,84311 ****
  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
--- 94936,94943 ----
  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
! 3de1aeb6add591d9503ba7210563c97d  gcc/testsuite/gcc.target/mips/mips-msubf.c
! fbc7e4a970627321e0dbc46d1f8c3662  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
*** 84322,84328 ****
  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
--- 94954,94960 ----
  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
! ca34dd03577202e55dfbe91aa754a48a  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
*** 84346,84352 ****
  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
--- 94978,94984 ----
  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
! 0d78f980c9e0f6d810ec514e519cb42f  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
*************** b238c2e658160f86a7797e1d34586a82  gcc/te
*** 84376,84387 ****
  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
--- 95008,95019 ----
  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
! 48b4ccdbec5c1377c68d0df3fc223582  gcc/testsuite/gcc.target/mips/movdf-1.c
! dd634234af3bdd8c2ca8cd60a5f94be9  gcc/testsuite/gcc.target/mips/movdf-2.c
! cb244edf66e3de7a88fb4634837d6e0b  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
! 91a96efe9d0e07e40a18d3449294663d  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
*** 84391,84397 ****
  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
--- 95023,95029 ----
  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
! 6c9ffbd53124d94b25a3b14d37fdba95  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
*************** c6281d635f1218de28eeb6e3d8c91741  gcc/te
*** 84400,84409 ****
--- 95032,95043 ----
  9cd9439f9afb731bd60ec8eaf5c7923f  gcc/testsuite/gcc.target/mips/msub-6.c
  2f83a78f91d73c6b7a619798c0c0aa9b  gcc/testsuite/gcc.target/mips/msub-7.c
  52e1e7b242d344f769a5f35235fc4db4  gcc/testsuite/gcc.target/mips/msub-8.c
+ 8879a97c396723edbd9a59256b4877ba  gcc/testsuite/gcc.target/mips/msub-9.c
  884563deea9b2b960e8325cd8581122c  gcc/testsuite/gcc.target/mips/msubu-1.c
  62815b41239b22dbbf35e8bb5b0097e5  gcc/testsuite/gcc.target/mips/msubu-2.c
  bface0aca9b963178e8efcf64308e3df  gcc/testsuite/gcc.target/mips/msubu-3.c
  092fb750ee234369f5f81bc4f6de669d  gcc/testsuite/gcc.target/mips/msubu-4.c
+ d21c259c7f6b7e684562a3be88237063  gcc/testsuite/gcc.target/mips/msubu-5.c
  23e0f0773a3d23f0ec5ee4b2a7a13933  gcc/testsuite/gcc.target/mips/mulsize-1.c
  58dcc716a4fe8a1717b6614e63441e55  gcc/testsuite/gcc.target/mips/mulsize-2.c
  d69fbecea51158cee00d6a58977fb5a3  gcc/testsuite/gcc.target/mips/mulsize-3.c
*************** d9537ef2c19af319564e2250b13e87eb  gcc/te
*** 84437,84446 ****
  188faa7f93836d6181b84b0d8f5bd56b  gcc/testsuite/gcc.target/mips/nans-legacy.c
  2dec741c6cbf2473a9575734a23fbadd  gcc/testsuite/gcc.target/mips/nansf-2008.c
  142879458336206fe2ddf2c11906d9cf  gcc/testsuite/gcc.target/mips/nansf-legacy.c
! 20d0b2f9c4f8e8ea6175aed6329fea7b  gcc/testsuite/gcc.target/mips/near-far-1.c
! c9fd8782f6037918acc80f097a70f080  gcc/testsuite/gcc.target/mips/near-far-2.c
! 4116df478321b6d1fef26ec4ce85be8b  gcc/testsuite/gcc.target/mips/near-far-3.c
! e248684349bfadbae82c88be679db835  gcc/testsuite/gcc.target/mips/near-far-4.c
  0286d70e67dd74c194361d3f46620838  gcc/testsuite/gcc.target/mips/neg-abs-1.c
  c77f6fdf640ae93847a6d40929497561  gcc/testsuite/gcc.target/mips/neg-abs-2.c
  a29b791eba1acee9f3fe915945db7f59  gcc/testsuite/gcc.target/mips/nmadd-1.c
--- 95071,95080 ----
  188faa7f93836d6181b84b0d8f5bd56b  gcc/testsuite/gcc.target/mips/nans-legacy.c
  2dec741c6cbf2473a9575734a23fbadd  gcc/testsuite/gcc.target/mips/nansf-2008.c
  142879458336206fe2ddf2c11906d9cf  gcc/testsuite/gcc.target/mips/nansf-legacy.c
! 5f697928814daeb63791db1c93d1b384  gcc/testsuite/gcc.target/mips/near-far-1.c
! 937f15a4997e81c2ea32cedaf1f9b24f  gcc/testsuite/gcc.target/mips/near-far-2.c
! 07b17116bc49230aadba1351b85d3dea  gcc/testsuite/gcc.target/mips/near-far-3.c
! 3938b8ccbd3a4b77519ba15782f06d83  gcc/testsuite/gcc.target/mips/near-far-4.c
  0286d70e67dd74c194361d3f46620838  gcc/testsuite/gcc.target/mips/neg-abs-1.c
  c77f6fdf640ae93847a6d40929497561  gcc/testsuite/gcc.target/mips/neg-abs-2.c
  a29b791eba1acee9f3fe915945db7f59  gcc/testsuite/gcc.target/mips/nmadd-1.c
*************** f42f0801a44d06285cee316810947fb7  gcc/te
*** 84497,84502 ****
--- 95131,95139 ----
  a5fe054c259b2b857e58ca81fc2ee790  gcc/testsuite/gcc.target/mips/pr104914.c
  06ed58a6932750afce22db3b1b18fd17  gcc/testsuite/gcc.target/mips/pr106462.c
  f4c42702a09deae0e3423bd519f5d2eb  gcc/testsuite/gcc.target/mips/pr113179.c
+ 10df6ab6468540b3137b55bfa859aa2d  gcc/testsuite/gcc.target/mips/pr118608-1.c
+ d94b3d17f04b0d29c304b6948a6267ba  gcc/testsuite/gcc.target/mips/pr118608-2.c
+ 0917b16aeea28b9e3c8682c85f47e46e  gcc/testsuite/gcc.target/mips/pr123833.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
*************** f95e6890f2bc69d7a36990c9bc30b80c  gcc/te
*** 84508,84514 ****
  e280a48499a0d63b7fc3310f475b6258  gcc/testsuite/gcc.target/mips/pr51513-1.c
  5fd51acee72ccc4c46ae6414e0b48a2f  gcc/testsuite/gcc.target/mips/pr51513-2.c
  322792d2ec07c9e621c098f32513e328  gcc/testsuite/gcc.target/mips/pr52125.c
! d526f2ae01ac6cfa2e492c540a0c6f56  gcc/testsuite/gcc.target/mips/pr54240.c
  16bf586e6551b9052ad841307f40acbf  gcc/testsuite/gcc.target/mips/pr55315.c
  03fc0f42e7c40dad6deb69e4b8b5d98f  gcc/testsuite/gcc.target/mips/pr56524.c
  0b360d767e5fb6d71b355df1b16f546e  gcc/testsuite/gcc.target/mips/pr59137.c
--- 95145,95151 ----
  e280a48499a0d63b7fc3310f475b6258  gcc/testsuite/gcc.target/mips/pr51513-1.c
  5fd51acee72ccc4c46ae6414e0b48a2f  gcc/testsuite/gcc.target/mips/pr51513-2.c
  322792d2ec07c9e621c098f32513e328  gcc/testsuite/gcc.target/mips/pr52125.c
! acc32b367ac67398100183d6cf0eccfb  gcc/testsuite/gcc.target/mips/pr54240.c
  16bf586e6551b9052ad841307f40acbf  gcc/testsuite/gcc.target/mips/pr55315.c
  03fc0f42e7c40dad6deb69e4b8b5d98f  gcc/testsuite/gcc.target/mips/pr56524.c
  0b360d767e5fb6d71b355df1b16f546e  gcc/testsuite/gcc.target/mips/pr59137.c
*************** d946887666581a01ba252e6f7f60ff15  gcc/te
*** 84523,84528 ****
--- 95160,95167 ----
  ae0e3bf279bfdc631da5f4c109d681d3  gcc/testsuite/gcc.target/mips/pr82981.c
  d16ca6ac6a955a86b18beecc197b9ccf  gcc/testsuite/gcc.target/mips/pr88349.c
  883d2c60e32348644a3be6f91c7e2b65  gcc/testsuite/gcc.target/mips/pr91769.c
+ 3dc38d66638e297cf82d822bb9ad52bb  gcc/testsuite/gcc.target/mips/pr99217-2.c
+ eb60b05f029f5cbd0dbadc2472f4ed8d  gcc/testsuite/gcc.target/mips/pr99217.c
  a3d18616f89634c190f4bb31b9165dbc  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-1.c
  668f845b2b56ba796d8efa350bd5f072  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-10.c
  32ddce9e3a3bbe0a7c0283da638073ae  gcc/testsuite/gcc.target/mips/r10k-cache-barrier-11.c
*************** b3f59212bf809a14822a7aee9a411f87  gcc/te
*** 84572,84577 ****
--- 95211,95217 ----
  491baa18f2c0deb9e10caf0bc6e1e223  gcc/testsuite/gcc.target/mips/stack-1.c
  6e79dbc3a0af72de552421bbe4a6f61d  gcc/testsuite/gcc.target/mips/timode-1.c
  a86b961bb98cc78bb112bdcdd699c25e  gcc/testsuite/gcc.target/mips/timode-2.c
+ b68720b13622069cfd7c72dd640ea645  gcc/testsuite/gcc.target/mips/tls-1.c
  b12c41572ab632d89ce9dc38a8a7a8e0  gcc/testsuite/gcc.target/mips/truncate-1.c
  1c6320a6efea26501be1de9b2f9fc79f  gcc/testsuite/gcc.target/mips/truncate-2.c
  6970f9ad42f848454e3aa2107f301b47  gcc/testsuite/gcc.target/mips/truncate-3.c
*************** e8ccb7e6be9b4a5a6ee6f2e94fc961da  gcc/te
*** 84701,84707 ****
  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
--- 95341,95347 ----
  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
! b6d09ee50dcef154ab6c63fbcea2a25f  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
*** 84751,84757 ****
  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
--- 95391,95397 ----
  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
! fa2db69e9721457f28e0b692be043067  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
*************** ed923a0b262a632aa491326cf2743570  gcc/te
*** 84799,84805 ****
  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
--- 95439,95445 ----
  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
! 68a17c8c2a58c8014dee19c2766a4744  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
*************** dd4edeaa5bae2549fa0790bb949f2a76  gcc/te
*** 84848,84858 ****
  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
--- 95488,95513 ----
  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
+ 4862c0ced4b995d2e92479f02da5aa6b  gcc/testsuite/gcc.target/nvptx/march-map=sm_100.c
+ d217a2398171a690f608a92909556204  gcc/testsuite/gcc.target/nvptx/march-map=sm_100a.c
+ e4e9c9d4a894f056c5e7e6d86b73ffe6  gcc/testsuite/gcc.target/nvptx/march-map=sm_100f.c
+ fb4ff70cfc063f9026a737a03ffe80fb  gcc/testsuite/gcc.target/nvptx/march-map=sm_101.c
+ aded1b49ac984919f3b21e1ce2938e36  gcc/testsuite/gcc.target/nvptx/march-map=sm_101a.c
+ a698b1c0d39b161c1ceda524a4922127  gcc/testsuite/gcc.target/nvptx/march-map=sm_101f.c
+ 559b87690cc539bb8240720ead34ff29  gcc/testsuite/gcc.target/nvptx/march-map=sm_103.c
+ d72b5b95f88080c004e3f5e7debbb373  gcc/testsuite/gcc.target/nvptx/march-map=sm_103a.c
+ 4e37be33aff7f6aaf3f3a62b7b2c66e0  gcc/testsuite/gcc.target/nvptx/march-map=sm_103f.c
+ a5a1c4d95b95512378c79360dad4c93c  gcc/testsuite/gcc.target/nvptx/march-map=sm_120.c
+ a0a0245bfdb6f38bdc546a331d7b1c07  gcc/testsuite/gcc.target/nvptx/march-map=sm_120a.c
+ 76ea021ec80e3a7eed4dabc7714c617b  gcc/testsuite/gcc.target/nvptx/march-map=sm_120f.c
+ 6ac23ff771e758d59fbdc29156d55b46  gcc/testsuite/gcc.target/nvptx/march-map=sm_121.c
+ 64049b6a9e108b27df1676b49388ce4e  gcc/testsuite/gcc.target/nvptx/march-map=sm_121a.c
+ d2109a4ee0b846e0dba28af0957730ee  gcc/testsuite/gcc.target/nvptx/march-map=sm_121f.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
! a71e1b4b73e57f09c05d7c76660560bb  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
*************** d5dff4229bf2002ee105ec2e9c8ca63b  gcc/te
*** 84870,84875 ****
--- 95525,95531 ----
  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
+ f5450d939a5355c2d4d5955b25515b66  gcc/testsuite/gcc.target/nvptx/march=sm_50.c
  cb9d8e8835055f77639301fe42459f14  gcc/testsuite/gcc.target/nvptx/march=sm_52.c
  0601021f45410aa7fa56ed7ea27904ff  gcc/testsuite/gcc.target/nvptx/march=sm_53.c
  a1d50cdd7bd07553ee378e39a75aa675  gcc/testsuite/gcc.target/nvptx/march=sm_61.c
*************** ea7e7665df27eebcf186519e2077269b  gcc/te
*** 84878,84883 ****
--- 95534,95540 ----
  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
+ edc5c701526f0efdc17f8b00d54da4a4  gcc/testsuite/gcc.target/nvptx/mptx=4.0.c
  9ea9acf5f9e1658066ce2f6c50b8b163  gcc/testsuite/gcc.target/nvptx/mptx=4.1.c
  a5dde36e4466d98be79cade6931a198c  gcc/testsuite/gcc.target/nvptx/mptx=4.2.c
  0eb02595b9f938776de42a71f317c938  gcc/testsuite/gcc.target/nvptx/mptx=5.0.c
*************** fb0e44378720162460683cbfd0dbdc52  gcc/te
*** 84892,84898 ****
  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
--- 95549,95555 ----
  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
! 0b5fade41776a106e66bbdfe8050e025  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
*************** d80d32ac8bc1886121a5fa462b7c058f  gcc/te
*** 84949,84961 ****
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
  d59f1ded63c010f7c70d8914ff035369  gcc/testsuite/gcc.target/or1k/args-2.c
  2d02b13dc91536f4e79cec3dc8ff4842  gcc/testsuite/gcc.target/or1k/cmov-1.c
  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/testsuite/gcc.target/or1k/return-4.c
  4ba1efdf24b285631d997edcdee7bc29  gcc/testsuite/gcc.target/or1k/ror-1.c
--- 95606,95620 ----
  ba248cc080b98b0f2298851bf5ff50ee  gcc/testsuite/gcc.target/nvptx/weak.c
  cee646afb17baca3bd611110a0d24362  gcc/testsuite/gcc.target/or1k/args-1.c
  d59f1ded63c010f7c70d8914ff035369  gcc/testsuite/gcc.target/or1k/args-2.c
+ 7a16a4efb516dd93d0072b82240fcb4d  gcc/testsuite/gcc.target/or1k/call-1.c
  2d02b13dc91536f4e79cec3dc8ff4842  gcc/testsuite/gcc.target/or1k/cmov-1.c
  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
! 12ae868dfb598fb35cde9f3deb2aa240  gcc/testsuite/gcc.target/or1k/got-1.c
! cdffa4b9237da98d7598debeadcb29fd  gcc/testsuite/gcc.target/or1k/or1k.exp
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
! 19a50da79764b52ec4c567f7aac53bdd  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
  ea95f7612f0049e3a94038c123a0e60d  gcc/testsuite/gcc.target/or1k/return-4.c
  4ba1efdf24b285631d997edcdee7bc29  gcc/testsuite/gcc.target/or1k/ror-1.c
*************** ea95f7612f0049e3a94038c123a0e60d  gcc/te
*** 84964,84970 ****
  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
--- 95623,95629 ----
  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
! b4b23d170c4612db0ee92870b6097015  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
*************** f4f552e021ab8e9edb5d3f5ce6c2c692  gcc/te
*** 85072,85077 ****
--- 95731,95737 ----
  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
+ 0be538d61b5ab4b6c5d00a86ea4fae51  gcc/testsuite/gcc.target/powerpc/altivec-39.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
*************** ed343c63973b66c0e986170ee496a1bd  gcc/te
*** 85108,85113 ****
--- 95768,95775 ----
  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
+ 6ab0c2c5c17e69db0ab917861a4fc5cc  gcc/testsuite/gcc.target/powerpc/asm-hard-reg-1.c
+ 8b94894ab4636e7b86b5f534c2b1dd18  gcc/testsuite/gcc.target/powerpc/asm-hard-reg-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
*************** be590d32c282fed1e0d1751f1c81c2c8  gcc/te
*** 85119,85125 ****
  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
--- 95781,95787 ----
  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
! 2aee79a80293cca0d3d0779907a1dced  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
*************** cb18f5be95ab3fbf67fc1c5e4ef5ba2b  gcc/te
*** 85237,85243 ****
  13d1d93ef325676e26cb149464158713  gcc/testsuite/gcc.target/powerpc/block-cmp-2.c
  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
--- 95899,95905 ----
  13d1d93ef325676e26cb149464158713  gcc/testsuite/gcc.target/powerpc/block-cmp-2.c
  c46592d7ef2d4d65a6e7d37781eb6aa8  gcc/testsuite/gcc.target/powerpc/block-cmp-3.c
  27f0261afae3e1d9a6470641dcf8cf23  gcc/testsuite/gcc.target/powerpc/block-cmp-4.c
! 4ec558244f0dd31816ab009c12ab4b2a  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
*************** c02928696f09c7fc9c99174083ecb49c  gcc/te
*** 85297,85308 ****
  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
--- 95959,95970 ----
  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
! dc57c7d2d3ef6cbd9f55a24e38ba3fca  gcc/testsuite/gcc.target/powerpc/builtins-1-p9-runnable.c
! eb4a92e11c4dbaa1349a599229f58e2a  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
! d6c24c818a5c4052a06c8a9739fdc474  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
*************** ce1f3ad7eb43ff7d5709418e9886c843  gcc/te
*** 85422,85428 ****
  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
--- 96084,96090 ----
  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
! cf1cbab4a385b3b1e5c3010e8a1630ba  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
*************** a601d3174509557affb7c56b0d7f0a1b  gcc/te
*** 86009,86015 ****
  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
--- 96671,96677 ----
  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
! e0f12a19e3dcc476fc7733857e9cb437  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
*************** a1ca0398bda92fa2d58fffbdae74b412  gcc/te
*** 86079,86086 ****
  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
--- 96741,96748 ----
  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
! bc54b3c82b736a368aa4cc5816436f5e  gcc/testsuite/gcc.target/powerpc/power11-3.c
! a8ec1d96b165799aeda7c574cbdf2d25  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
*************** dbe8b7a61a7368d65f67bfc4131425cf  gcc/te
*** 86097,86103 ****
  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
--- 96759,96765 ----
  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
! db7bd2c4cf1191ce2a7f507e134563be  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
*************** e6b0503077f4ef65c73a5ee91d64a1e4  gcc/te
*** 86176,86182 ****
  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
--- 96838,96844 ----
  0a52159bfa51b1365996904b04ac429e  gcc/testsuite/gcc.target/powerpc/pr103127.c
  3a624f553d6aa779c9ac3ded4d4e2396  gcc/testsuite/gcc.target/powerpc/pr103316.c
  98706d03de6e03b69eeeb2965b987553  gcc/testsuite/gcc.target/powerpc/pr103353.c
! 0f42c3453fc643d36f313c59df4fb9ea  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
*************** deb12224fed195721b2ddc8b70e46a23  gcc/te
*** 86293,86298 ****
--- 96955,96961 ----
  3944b7ca9b08abe29fedfeabbbd32d5a  gcc/testsuite/gcc.target/powerpc/pr116170.c
  68e7a002ed920723f1529e366afe30de  gcc/testsuite/gcc.target/powerpc/pr116415.c
  da26cb6383a24e6a94a6c247d777f6b8  gcc/testsuite/gcc.target/powerpc/pr118663.c
+ 800df636a3d7634e8c0d66c59de11951  gcc/testsuite/gcc.target/powerpc/pr121007.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
*************** bbd1992756a4c4fe9d76f64a98906a99  gcc/te
*** 86712,86718 ****
  1a34cb04196163f6d0a2e3709cc44498  gcc/testsuite/gcc.target/powerpc/rldimi.h
  0b98b15bfe27a9531df238b5d463e141  gcc/testsuite/gcc.target/powerpc/rlwimi-0.c
  2e2e5c64753a3b7795f80767d6dcafa7  gcc/testsuite/gcc.target/powerpc/rlwimi-1.c
! 0c3e4164fb0b167d67ef2c5b562a311e  gcc/testsuite/gcc.target/powerpc/rlwimi-2.c
  070c5b1cc8767dba79b14177a49b6c62  gcc/testsuite/gcc.target/powerpc/rlwimi.h
  cb9311ea78ac15dc0539eca763a2e985  gcc/testsuite/gcc.target/powerpc/rlwinm-0.c
  bbfaa45598e85e85311c592cd3685c70  gcc/testsuite/gcc.target/powerpc/rlwinm-1.c
--- 97375,97381 ----
  1a34cb04196163f6d0a2e3709cc44498  gcc/testsuite/gcc.target/powerpc/rldimi.h
  0b98b15bfe27a9531df238b5d463e141  gcc/testsuite/gcc.target/powerpc/rlwimi-0.c
  2e2e5c64753a3b7795f80767d6dcafa7  gcc/testsuite/gcc.target/powerpc/rlwimi-1.c
! 3912c03f1d277e71a8ed7b841789773d  gcc/testsuite/gcc.target/powerpc/rlwimi-2.c
  070c5b1cc8767dba79b14177a49b6c62  gcc/testsuite/gcc.target/powerpc/rlwimi.h
  cb9311ea78ac15dc0539eca763a2e985  gcc/testsuite/gcc.target/powerpc/rlwinm-0.c
  bbfaa45598e85e85311c592cd3685c70  gcc/testsuite/gcc.target/powerpc/rlwinm-1.c
*************** fd9b9d79f5d4fcce7f8a5ca32a7a7385  gcc/te
*** 86734,86740 ****
  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
--- 97397,97403 ----
  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
! 3245565b5c5504cf6f2b3fb2644dab83  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
*************** e735fcab6e5fe4b25e235274950c7c3b  gcc/te
*** 87502,87508 ****
  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
--- 98165,98171 ----
  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
! 532d211f6ec70739565f5ce2e3ec1862  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
*************** eac1daf20200582d78f7b10b7024f1e1  gcc/te
*** 87614,87627 ****
  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
--- 98277,98298 ----
  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
! 43f0fd0f288b1f8b1684ec180b394ca9  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
! 48ee9cd54a5b90dfbb5863a2e48a09c8  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-10.c
! 57c9502895b5ef5cc036b4a24bc9dae2  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-11.c
! 85dab13ddf2c377ae5582da8786f518a  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-12.c
! 7e81559fd15bfe837065dcaf03ed5979  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-13.c
! 7c6cffdf3e1f05d2dec66c7d197e7517  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-14.c
! f4f27e95eeb7fb1d9c950a2108741642  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-15.c
! 8b8ea43be20a8eef8443ed25138feb09  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-16.c
! 010576f2b2aab2ba4b2ad7648f1e1bde  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
! 7de03072344d92fc674ff7667f7ec1f3  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-3.c
! 12501e17b8d40780150226d4e3dbe7cb  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
! f0050538b645310e4d0979e24d795aa2  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-5.c
! 058efb373d839b169530858336b15c64  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
! 376ac48340c386427a1be7e5e884993a  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
! 6a6f6da892e6ab1ee90807017ab944d9  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-8.c
! a9b38e5a37de52ced500d53d1d518b95  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-9.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
*************** a71f924d37c55643c417681737768eee  gcc/te
*** 87666,87683 ****
  6b66e7c3542bcb548f7be2dc15327a78  gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
  8c19dc6643f242dac0f633e28aed3859  gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
  b76541e78d6c0a4a83f038a91722260c  gcc/testsuite/gcc.target/pru/lshiftrtdi-1.c
! 3ef624a9acc199b79a2e7fdb3d02524e  gcc/testsuite/gcc.target/pru/mabi-ti-1.c
! 139ed36d4d0fc027ab815f8bbfd4ab0f  gcc/testsuite/gcc.target/pru/mabi-ti-2.c
! 19eab9f9f5dfcf20929abd7149593d5d  gcc/testsuite/gcc.target/pru/mabi-ti-3.c
  2aedf3d3d162d1199881386fb1b8dea6  gcc/testsuite/gcc.target/pru/mabi-ti-4.c
! 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
--- 98337,98360 ----
  6b66e7c3542bcb548f7be2dc15327a78  gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
  8c19dc6643f242dac0f633e28aed3859  gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
  b76541e78d6c0a4a83f038a91722260c  gcc/testsuite/gcc.target/pru/lshiftrtdi-1.c
! 6932f7fce6c443f0bf0311d62b51f17d  gcc/testsuite/gcc.target/pru/mabi-ti-1.c
! 904c471d0d2b167535127117f4491907  gcc/testsuite/gcc.target/pru/mabi-ti-11.c
! 901e62817ac6f5bf01e71887fd225a2f  gcc/testsuite/gcc.target/pru/mabi-ti-12.c
! 6ae40782f369503bd4e50e8004238e60  gcc/testsuite/gcc.target/pru/mabi-ti-2.c
! 7bb892064da78563aa2326b6d555e4a3  gcc/testsuite/gcc.target/pru/mabi-ti-3.c
  2aedf3d3d162d1199881386fb1b8dea6  gcc/testsuite/gcc.target/pru/mabi-ti-4.c
! 7e241dd67d0e43eecda8778237fc30f1  gcc/testsuite/gcc.target/pru/mabi-ti-5.c
! 2fd14696206d973c8b8f6243a1fbf68b  gcc/testsuite/gcc.target/pru/mabi-ti-6.c
! a0ddd4d4af5dc8819cb7f610be61a493  gcc/testsuite/gcc.target/pru/mabi-ti-7.c
! f55f7776340776c2c6c8e95f64add536  gcc/testsuite/gcc.target/pru/mabi-ti-8.c
! 69430092bd3ad25727d7df931bb1eea6  gcc/testsuite/gcc.target/pru/mabi-ti-9.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
+ 700a684c637b8155f4f21430ce097a7c  gcc/testsuite/gcc.target/pru/mov64-subreg-1.c
+ 14be4aa3b7ce3dc143d9c097fb22db96  gcc/testsuite/gcc.target/pru/mov64-subreg-2.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
*************** b8b52424b352c9c8f70592d6f03b5a86  gcc/te
*** 87695,87703 ****
  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
--- 98372,98383 ----
  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
+ a2adc38ea81d4b1f232d63a0b78bb763  gcc/testsuite/gcc.target/pru/pr122415-1.c
+ 1d811b1ad6445573f221f8e8147603df  gcc/testsuite/gcc.target/pru/pr122415-2.c
  95d60ee7241a44ee286f73a59e590913  gcc/testsuite/gcc.target/pru/pr64366.c
+ 5f7730ea294934e3f6cf1feee72812d4  gcc/testsuite/gcc.target/pru/pragma-ctable_entry-2.c
  aa63cbae8ab220e484f3dfce0053edb2  gcc/testsuite/gcc.target/pru/pragma-ctable_entry.c
! 29aed1ff9e2488063daacf67013b79ee  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
*************** cd709a10461254ddf2db66c3d68f0ea1  gcc/te
*** 87746,87751 ****
--- 98426,98467 ----
  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
+ 0cfdc07acceee424bc655ccb693726aa  gcc/testsuite/gcc.target/riscv/abi/empty-struct+union-1.c
+ b575b2237dc9a77e278ba7542ff78aa1  gcc/testsuite/gcc.target/riscv/abi/empty-struct+union-2.c
+ d8713b1117dde94d4267571bbb989106  gcc/testsuite/gcc.target/riscv/abi/empty-struct+union-3.c
+ 3086d6d838454c98b3b708c48b7018c5  gcc/testsuite/gcc.target/riscv/abi/empty-struct+union-4.c
+ 474b1ecf53f04d466d872ffc0ff74140  gcc/testsuite/gcc.target/riscv/abi/empty-struct-1.c
+ 721bd41b4c077a8714b91d9f2df325d2  gcc/testsuite/gcc.target/riscv/abi/empty-struct-10.c
+ 0fb40a84190c25281b6f54471a3ae39f  gcc/testsuite/gcc.target/riscv/abi/empty-struct-11.c
+ ec83bb39b50a227cf46fe26bbe15f2f1  gcc/testsuite/gcc.target/riscv/abi/empty-struct-12.c
+ 0fa834ff9cdad61c19364b0abce41223  gcc/testsuite/gcc.target/riscv/abi/empty-struct-2.c
+ fc20762b9bff6ab11eb9a14b3e232ca8  gcc/testsuite/gcc.target/riscv/abi/empty-struct-3.c
+ 8fc01206b67801489ded6b65e0b6387a  gcc/testsuite/gcc.target/riscv/abi/empty-struct-4.c
+ d983e99999e28de158c7765bddefeaa7  gcc/testsuite/gcc.target/riscv/abi/empty-struct-5.c
+ 8982ca01eba30b34b9d6a64295399440  gcc/testsuite/gcc.target/riscv/abi/empty-struct-6.c
+ 4cfaba5ab9ae28b0e0363c0e1f03dccd  gcc/testsuite/gcc.target/riscv/abi/empty-struct-7.c
+ 0fe46c098c4b7de812563a3f0aaf071e  gcc/testsuite/gcc.target/riscv/abi/empty-struct-8.c
+ 8c861603152f93c12da6e26599ffcb1e  gcc/testsuite/gcc.target/riscv/abi/empty-struct-9.c
+ e98f2d19ed80ab018f96ccb526890413  gcc/testsuite/gcc.target/riscv/abi/empty-union-1.c
+ 721df8213c987d55dc1efd55bfbafae1  gcc/testsuite/gcc.target/riscv/abi/empty-union-2.c
+ 7d48ff4649bb5427ff973053ef53e5d2  gcc/testsuite/gcc.target/riscv/abi/empty-union-3.c
+ 53023d2cb0d32036037f60841e0d7247  gcc/testsuite/gcc.target/riscv/abi/empty-union-4.c
+ 4e8d927a6877a7cb244569dd880971cf  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-1.c
+ 6c871301aec7f045c94bb6e785aabfbf  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-10.c
+ d7ad132ef53c423fc6dbd37e7fb5cfa4  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-11.c
+ d791463cbf4d81912f179b794757cf70  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-12.c
+ 157732bfc87d1bf9e29119ec02a3d83e  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-13.c
+ e109a39229586538415a1482ff6c201c  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-14.c
+ a8ee97882c0e8e2f12765b3ad84e253e  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-2.c
+ 0c017a08132c882b0c6806ad87eac0be  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-3.c
+ 39e4387a147a77a5cffabd57cde0a4d9  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-4.c
+ 092533039313c2e2b9dcd79b592661c9  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-5.c
+ 73eee15ee0ad0408a0858b581ed29b97  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-6.c
+ 4979d12265209e12d2875767b4d8aafc  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-7.c
+ e2370c38a87d4cc60085fb7a8e611db5  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-8.c
+ b6c3a11e4c9bd3883b232d9dc584ebf4  gcc/testsuite/gcc.target/riscv/abi/vls-gpr-9.c
+ e576467327b6885418c9d8748492593a  gcc/testsuite/gcc.target/riscv/add-synthesis-1.c
+ 615a0e0c970edc01fb1779359e6d4069  gcc/testsuite/gcc.target/riscv/add-synthesis-2.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
*************** d28b3e0cd4c8d88dfbd81c0049f4940d  gcc/te
*** 87794,87814 ****
  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
--- 98510,98530 ----
  0745f2476ccbbc966b0ebd8b5fbf11ce  gcc/testsuite/gcc.target/riscv/addsiblt.c
  70613b0005dcedb224fe7dbf372effb4  gcc/testsuite/gcc.target/riscv/addsibltu.c
  7f5f81dedc0258852f700a537d380ce2  gcc/testsuite/gcc.target/riscv/addsibne.c
! 9148c08223d6389ea291148fa6166150  gcc/testsuite/gcc.target/riscv/addsieq.c
! e294a602f81cbc9bdb2c78b2adaddeb4  gcc/testsuite/gcc.target/riscv/addsifeq.c
! 42331ea95d7c3874b8e69f15f6f705ee  gcc/testsuite/gcc.target/riscv/addsifge.c
! 07051c34099a05a83e2f69890851fdd5  gcc/testsuite/gcc.target/riscv/addsifgt.c
! 57adde61cef6123261d5d7330f05ab82  gcc/testsuite/gcc.target/riscv/addsifle.c
! 3bd829fcff0880ebdcb3e9d2911a73e6  gcc/testsuite/gcc.target/riscv/addsiflt.c
! 3ec93f7d9e4dc5189d016767dfd2b6a9  gcc/testsuite/gcc.target/riscv/addsifne.c
! 35ee771567dbdbcc72bbafd38ba47644  gcc/testsuite/gcc.target/riscv/addsige.c
! e39dcafdb519eeeb870baff1c07113fc  gcc/testsuite/gcc.target/riscv/addsigeu.c
! 26695ab7be63b2558784d598fbb8407d  gcc/testsuite/gcc.target/riscv/addsigt.c
! 9bc05c2fd29680c1e39a420ede020583  gcc/testsuite/gcc.target/riscv/addsigtu.c
! b4b87bd3fb48e1e9186718cf54229d3e  gcc/testsuite/gcc.target/riscv/addsile.c
! 01bf5c16c88aa8fd786e5823b3971d75  gcc/testsuite/gcc.target/riscv/addsileu.c
! dd2a69827b362a49d563fade314835c6  gcc/testsuite/gcc.target/riscv/addsilt.c
! 98f3f8eeab3bdab67ea5844bd6855403  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
*************** d594c9d7dfe329a54fd3d48468deda8f  gcc/te
*** 87824,87830 ****
  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
--- 98540,98546 ----
  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
! c70bca20c7bd6aa021b2e89d48d2d2ce  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
*************** aeea4287f00bf622bcedbf5a392818f6  gcc/te
*** 87834,87839 ****
--- 98550,98556 ----
  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
+ f8f8f84b9b7d18ee657dd8e6ba587056  gcc/testsuite/gcc.target/riscv/amo/pr121213.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
*************** df377ec0cbcf210a4125b328032459b6  gcc/te
*** 87876,87882 ****
  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
--- 98593,98599 ----
  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
! 81f4190132f50428aa2a6092a2b6b2ea  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
*************** bbe9e4b6ffa08c8591303cf986cd45bf  gcc/te
*** 87889,87895 ****
  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
--- 98606,98612 ----
  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
! 20d4f84326c8e8b15d8aeda20502141d  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
*************** e576291427abca3f72d30a431447959b  gcc/te
*** 87924,87930 ****
  1a1b708bbda0ed6bf621da9fed1ab33d  gcc/testsuite/gcc.target/riscv/arch-22.cc
  62a149fb3cda7f5ee93bf5f7f6075888  gcc/testsuite/gcc.target/riscv/arch-23.c
  b75c106ec27cc7342a78fa97b18b9780  gcc/testsuite/gcc.target/riscv/arch-24.c
! 83ec5e0597bd6f95add3938e95dfdb21  gcc/testsuite/gcc.target/riscv/arch-25.c
  47c92173c555b7e9676906e4937da88a  gcc/testsuite/gcc.target/riscv/arch-26.c
  6fb005412f8c5d07a35f36ea4f160eff  gcc/testsuite/gcc.target/riscv/arch-27.c
  904d29c140d0ab6500fe45798bf9bc06  gcc/testsuite/gcc.target/riscv/arch-28.c
--- 98641,98647 ----
  1a1b708bbda0ed6bf621da9fed1ab33d  gcc/testsuite/gcc.target/riscv/arch-22.cc
  62a149fb3cda7f5ee93bf5f7f6075888  gcc/testsuite/gcc.target/riscv/arch-23.c
  b75c106ec27cc7342a78fa97b18b9780  gcc/testsuite/gcc.target/riscv/arch-24.c
! a99ef868c83bd39fb6b29b64fc3669fa  gcc/testsuite/gcc.target/riscv/arch-25.c
  47c92173c555b7e9676906e4937da88a  gcc/testsuite/gcc.target/riscv/arch-26.c
  6fb005412f8c5d07a35f36ea4f160eff  gcc/testsuite/gcc.target/riscv/arch-27.c
  904d29c140d0ab6500fe45798bf9bc06  gcc/testsuite/gcc.target/riscv/arch-28.c
*************** f7737384a7159c5bd9e77bc68c389061  gcc/te
*** 87946,87956 ****
--- 98663,98709 ----
  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
+ 7be02cc81fc5fe78b43fb71dcc3c3afd  gcc/testsuite/gcc.target/riscv/arch-45.c
+ 936fbd75b112c3c681b0bde692d7344b  gcc/testsuite/gcc.target/riscv/arch-46.c
+ d2849a782af5feeff9a0e140e5dc5935  gcc/testsuite/gcc.target/riscv/arch-47.c
+ 01f9351fc443e06042e5fa20f07c8b06  gcc/testsuite/gcc.target/riscv/arch-48.c
+ 4bc56ca04c014f10bc8290513d25e3f2  gcc/testsuite/gcc.target/riscv/arch-49.c
  c94d482c7ef976b5a86a9679daf9ddc1  gcc/testsuite/gcc.target/riscv/arch-5.c
+ c757fc49f54223fc5d30159e042cdbd4  gcc/testsuite/gcc.target/riscv/arch-50.c
+ 1ce8ea52ed40d6f9cb466d50bdae791f  gcc/testsuite/gcc.target/riscv/arch-51.c
+ b4225e859cdd92f35ddd7b8b8b438a8c  gcc/testsuite/gcc.target/riscv/arch-52.c
+ dd599081b6389dfcc55c5f74d69f763b  gcc/testsuite/gcc.target/riscv/arch-53.c
+ bec789a6108435830e82b6fdd221cb51  gcc/testsuite/gcc.target/riscv/arch-54.c
+ 8b84caba9ce32304ca1b5db7befd5c29  gcc/testsuite/gcc.target/riscv/arch-55.c
+ f6c8f50458c8df94ccafb1928e48202a  gcc/testsuite/gcc.target/riscv/arch-56.c
+ 0c96ef9c808f4ca24e79e559697eea21  gcc/testsuite/gcc.target/riscv/arch-57.c
+ ff856fed5ddef759c9032d497def7520  gcc/testsuite/gcc.target/riscv/arch-58.c
+ 1347057ac85e5b42b22bfa5afbfbb569  gcc/testsuite/gcc.target/riscv/arch-59.c
  2cd6ade559b1ab254703146aa7008e18  gcc/testsuite/gcc.target/riscv/arch-6.c
+ 106936adac7a80b5a01db383e2095b7a  gcc/testsuite/gcc.target/riscv/arch-60.c
  81519955d6644acb55c78120405494a5  gcc/testsuite/gcc.target/riscv/arch-7.c
  def4ef484e9166f9a01c65a411a9d916  gcc/testsuite/gcc.target/riscv/arch-8.c
  618e0be396e7e79ffa293a23f42b305d  gcc/testsuite/gcc.target/riscv/arch-9.c
+ d37b490a0532ea8f76a812425d43d972  gcc/testsuite/gcc.target/riscv/arch-rva23s.c
+ cb0683e276e65e19eb1889ad89f776c0  gcc/testsuite/gcc.target/riscv/arch-rvb23s.c
+ 4b09da836713b995147d1ddf4b15f791  gcc/testsuite/gcc.target/riscv/arch-shlocofideleg.c
+ 4cc6a17415a162ed3a1f16b10f116eb1  gcc/testsuite/gcc.target/riscv/arch-smcsrind.c
+ b5b81669c4bd638c4b3b2a03da3402c7  gcc/testsuite/gcc.target/riscv/arch-smrnmi.c
+ 8f8880aaeaad3b06025ff64692da84bb  gcc/testsuite/gcc.target/riscv/arch-ss-1.c
+ 9a1dbf0f19051d79f59b8e40f579d8d7  gcc/testsuite/gcc.target/riscv/arch-ss-2.c
+ 56b05692699a43b167fa1d917de183b6  gcc/testsuite/gcc.target/riscv/arch-ssccptr.c
+ 228b4b08ec87c3aab0b819d614940092  gcc/testsuite/gcc.target/riscv/arch-sscounterenw.c
+ 747803496e0db732a7ac3c8b93f70c1f  gcc/testsuite/gcc.target/riscv/arch-sstvala.c
+ 12abb6568b8040d0ee34155127879caf  gcc/testsuite/gcc.target/riscv/arch-sstvecd.c
+ e3b6089c5a49102f5c6487e6f6d34f73  gcc/testsuite/gcc.target/riscv/arch-ssu64xl.c
+ ff7fbac41990f8bf42295b600d22c33d  gcc/testsuite/gcc.target/riscv/arch-unset-1.c
+ 3a4fbdb774bb76449e7cf8623a121214  gcc/testsuite/gcc.target/riscv/arch-unset-2.c
+ c7b45bc32e4a79b9e13b5b44d05d2e24  gcc/testsuite/gcc.target/riscv/arch-unset-3.c
+ 85de41fcf6ff9844281db0ea95e87d0b  gcc/testsuite/gcc.target/riscv/arch-unset-4.c
+ 9268e7392f71c9469c8d277852e033f8  gcc/testsuite/gcc.target/riscv/arch-unset-5.c
+ 7e53fcd0c393d0469b2cf1b3dd12ede9  gcc/testsuite/gcc.target/riscv/arch-zilsd-1.c
+ 83e721438e2c0dd15045ac3efa1ac2e5  gcc/testsuite/gcc.target/riscv/arch-zilsd-2.c
+ 58222be4f3ce6587fb5478cdb70474e6  gcc/testsuite/gcc.target/riscv/arch-zilsd-3.c
  6be92dc237b576e8f4ddb6f36b3e74d2  gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c
  f7c93a7f1ac8c63ea33743634bd47e7d  gcc/testsuite/gcc.target/riscv/attribute-1.c
  84dfe009e450695f476bc4133d7a8351  gcc/testsuite/gcc.target/riscv/attribute-10.c
*************** df6bb22f015faf57e6409f769b75db07  gcc/te
*** 87972,87982 ****
  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
--- 98725,98745 ----
  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
! aa474c2e8591def728bc394e33415651  gcc/testsuite/gcc.target/riscv/attribute-c-1.c
! 3ea6cb60befd078be9b03934d7933c2f  gcc/testsuite/gcc.target/riscv/attribute-c-2.c
! 632c0b1a006971d58b6041eb38529ee6  gcc/testsuite/gcc.target/riscv/attribute-c-3.c
! e4ec2405a7e0dd24443fee20a97a173f  gcc/testsuite/gcc.target/riscv/attribute-c-4.c
! 3d482a560d0581001e114e6ca367c144  gcc/testsuite/gcc.target/riscv/attribute-c-5.c
! 02ac4542496e4a3332cd83da703608cd  gcc/testsuite/gcc.target/riscv/attribute-c-6.c
! 6af4193bfc1aff1ea567eaae4a3afa91  gcc/testsuite/gcc.target/riscv/attribute-c-7.c
! ff6a6eb8a8ecbdb572230719c3979ffe  gcc/testsuite/gcc.target/riscv/attribute-c-8.c
! f3e95dfef6fe130ad0cd7293e1f9301e  gcc/testsuite/gcc.target/riscv/attribute-zce-1.c
! de4aad186db1699e7a1c579eacca24f8  gcc/testsuite/gcc.target/riscv/attribute-zce-2.c
! 317a36045c038af971baf417e032ee47  gcc/testsuite/gcc.target/riscv/attribute-zce-3.c
! 0e193122ac4c7b12a1de8876dc48ff1e  gcc/testsuite/gcc.target/riscv/attribute-zce-4.c
  3df27341bf15cae561a9680429bae764  gcc/testsuite/gcc.target/riscv/bclr-for-simode-1.c
+ 40eb658c86c8f9d61968188b246610a2  gcc/testsuite/gcc.target/riscv/bclr-lowest-set-bit-1.c
+ dafbb9f1e1691d3d70f62ae5201b1965  gcc/testsuite/gcc.target/riscv/bext-ext-2.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
*************** c6a17fe16a8de24e823815f272f8e895  gcc/te
*** 87984,87991 ****
--- 98747,98762 ----
  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
+ a900b4ae158def8ab326c6875424b82e  gcc/testsuite/gcc.target/riscv/bitint-32-on-rv64.c
+ 514d8a30ef5907af23194f37b0aceb6b  gcc/testsuite/gcc.target/riscv/bitint-alignments.c
+ 1468f9f7b39bfaa0cc408217ce4b6bc3  gcc/testsuite/gcc.target/riscv/bitint-args.c
+ 3fdc6864e2eaf2cad1a528ed5efae324  gcc/testsuite/gcc.target/riscv/bitint-sizes.c
  244404494e46bf644ff8a21bfd0fe745  gcc/testsuite/gcc.target/riscv/branch-1.c
  5ff9fc5e4ee023e4133be50b0e41bac7  gcc/testsuite/gcc.target/riscv/bset-for-simode-1.c
+ 4b54c8f5ed08f52993b3ed6d5d8fd7a1  gcc/testsuite/gcc.target/riscv/can_inline_p_test-01.c
+ 0d78b9ddee2595bb5b0d4485039f7093  gcc/testsuite/gcc.target/riscv/can_inline_p_test-02.c
+ b07c59f3676bf272330d39cf6b74f9c8  gcc/testsuite/gcc.target/riscv/can_inline_p_test-03.c
+ 963485645bed02e45a93e6cc72126a5d  gcc/testsuite/gcc.target/riscv/can_inline_p_test-04.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
*************** daa3032f375d369c3db592013c53266c  gcc/te
*** 88001,88006 ****
--- 98772,98778 ----
  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
+ fc853c6d51e65d38d06c170746cd7304  gcc/testsuite/gcc.target/riscv/constraint-cR-pair.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
*************** ce38011c6154f93d71861589c50fc10a  gcc/te
*** 88063,88069 ****
  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
--- 98835,98841 ----
  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
! e67f6ec1460fa16f0e0b794a61ed9cd8  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
*************** fe7b0d6a20bcf36ecad16f21e83f9bd1  gcc/te
*** 88270,88275 ****
--- 99042,99048 ----
  ecd6e84eb56477df4903f802ee263ba9  gcc/testsuite/gcc.target/riscv/cv-simd-xor-h-compile-1.c
  a4c468f0dabef5849f00b0ea4f2d7f34  gcc/testsuite/gcc.target/riscv/cv-simd-xor-sc-b-compile-1.c
  17b7c1576f018ab4efdccb6753514ad2  gcc/testsuite/gcc.target/riscv/cv-simd-xor-sc-h-compile-1.c
+ 46e194f9e717407cdd4260454ee4b571  gcc/testsuite/gcc.target/riscv/czero-bext.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
*************** b24e931e97473ad3344268fc34d9a089  gcc/te
*** 88310,88316 ****
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
  8f051d0b3bea4d4fffe124ffc69cc499  gcc/testsuite/gcc.target/riscv/interrupt-4.c
  9123fc821c454516a841bd5d016f9f25  gcc/testsuite/gcc.target/riscv/interrupt-5.c
! 9505a89fb61ad2da955a88ba280be95d  gcc/testsuite/gcc.target/riscv/interrupt-conflict-mode.c
  adbaeb88f854d032ccb024f677c39231  gcc/testsuite/gcc.target/riscv/interrupt-debug.c
  c7ca14eb060960c19c3fd942f85d5fe3  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-1.c
  c36c6439efa266a1451a2f487ec7e09b  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-2.c
--- 99083,99089 ----
  2c4e63df0ea453e7839094f9d7beb67b  gcc/testsuite/gcc.target/riscv/interrupt-3.c
  8f051d0b3bea4d4fffe124ffc69cc499  gcc/testsuite/gcc.target/riscv/interrupt-4.c
  9123fc821c454516a841bd5d016f9f25  gcc/testsuite/gcc.target/riscv/interrupt-5.c
! 81118c6628b335c0d383666fa49a332e  gcc/testsuite/gcc.target/riscv/interrupt-conflict-mode.c
  adbaeb88f854d032ccb024f677c39231  gcc/testsuite/gcc.target/riscv/interrupt-debug.c
  c7ca14eb060960c19c3fd942f85d5fe3  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-1.c
  c36c6439efa266a1451a2f487ec7e09b  gcc/testsuite/gcc.target/riscv/interrupt-fcsr-2.c
*************** c36c6439efa266a1451a2f487ec7e09b  gcc/te
*** 88318,88330 ****
  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
--- 99091,99109 ----
  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
+ a1e26ab7f1c0fd4128be164780eb6afc  gcc/testsuite/gcc.target/riscv/interrupt-rnmi.c
  756572791a9293ef57d0855c156c1c04  gcc/testsuite/gcc.target/riscv/interrupt-smode.c
! 371709295f3134754428c912bd5e3ee4  gcc/testsuite/gcc.target/riscv/ior-synthesis-1.c
! 016fae660b0d8d24c12a8ce81c7bc0c0  gcc/testsuite/gcc.target/riscv/ior-synthesis-2.c
! b656a9e0d73427727bb0cc6df44334ab  gcc/testsuite/gcc.target/riscv/jump-table-large-code-model.c
  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
+ a9f24eff74b34541ebef24d8965f1336  gcc/testsuite/gcc.target/riscv/lto/pr110812_0.c
+ b5b03b4580c0a785c21ea9454eef6421  gcc/testsuite/gcc.target/riscv/lto/pr110812_1.c
+ f7b7f525bf208a2c94029f5066e420ac  gcc/testsuite/gcc.target/riscv/lto/riscv-lto.exp
+ 979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/lto/riscv_vector.h
  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
*************** b1501e176991bdafb852ead7111b522d  gcc/te
*** 88338,88348 ****
--- 99117,99139 ----
  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
+ dcced0272e68ebd6c311b4e558088af7  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-kunminghu.c
  65e147ffc7d34e1068d4e84bee668245  gcc/testsuite/gcc.target/riscv/mcpu-xiangshan-nanhu.c
+ 19de394d94684c3e89cb1d285acca034  gcc/testsuite/gcc.target/riscv/mcpu-xt-c908.c
+ 5d2dc88e796367136b1b55f8a62f3937  gcc/testsuite/gcc.target/riscv/mcpu-xt-c908v.c
+ 2dac1a57501dfbf980c64965da3faff3  gcc/testsuite/gcc.target/riscv/mcpu-xt-c910.c
+ ff231335f542050ad4fec2d9fb0a1456  gcc/testsuite/gcc.target/riscv/mcpu-xt-c910v2.c
+ f4d15f0f76038ce87073049d4d456ff6  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920.c
+ 8499a3cd439fb6c9b5053ff1651105af  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920v2.c
  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
+ 155b4b4616cf38c809b507b28b13ffd5  gcc/testsuite/gcc.target/riscv/mipscondmov.c
+ bc8bb3f906e5bd1b6d9079aad3307e5a  gcc/testsuite/gcc.target/riscv/mipsprefetch.c
  ec03a01a1787f67f3d9feb5acba7fd89  gcc/testsuite/gcc.target/riscv/mode-switch-ice-1.c
+ dac2e910720bdf6a800fc9ba5980ff14  gcc/testsuite/gcc.target/riscv/modifier-H-error-1.c
+ 5a41a6a8ba4701ce0738ab05274c8fcf  gcc/testsuite/gcc.target/riscv/modifier-H-error-2.c
+ 6fa5147420b7c7d81f99313d5a3a612d  gcc/testsuite/gcc.target/riscv/modifier-H.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
*************** e51815ddb1131553c1d3c8f51d41d185  gcc/te
*** 88622,88627 ****
--- 99413,99422 ----
  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
+ ace2cf4b0d86b2a712b3e98f816f1d75  gcc/testsuite/gcc.target/riscv/mvc-warning1.c
+ b79b998aeb58db66bd0a67b99288020e  gcc/testsuite/gcc.target/riscv/nozicond-1.c
+ 2ac773c640cc233a0124069480b6f47d  gcc/testsuite/gcc.target/riscv/nozicond-2.c
+ 4925e10a6ae58d941956f63cfa564202  gcc/testsuite/gcc.target/riscv/nozicond-3.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
*************** be3a460fbc91fac50c9b2e03c9f88b5f  gcc/te
*** 88650,88655 ****
--- 99445,99451 ----
  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
+ dba52449a145af61b04631454334d086  gcc/testsuite/gcc.target/riscv/pr108016.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
*************** f69135840e05c772e53aa1bd017926c5  gcc/te
*** 88662,88672 ****
  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
--- 99458,99470 ----
  3d20448ba5b8832a124255aa2e84a97f  gcc/testsuite/gcc.target/riscv/pr112478.c
  15f456db6fb5e46494c853d4c141ca96  gcc/testsuite/gcc.target/riscv/pr113095.c
  864744f90db4078acc5574a9ccae9114  gcc/testsuite/gcc.target/riscv/pr113506.c
+ 9d70c1379c63763252909de831509855  gcc/testsuite/gcc.target/riscv/pr113715.c
  9bb9353191b107cdeaf920a4e0796e31  gcc/testsuite/gcc.target/riscv/pr113742.c
  bba0977f2acac23e269d463cd1b7ba52  gcc/testsuite/gcc.target/riscv/pr114087-1.c
! 3a13abdacb2f605296c9cdde148a27b7  gcc/testsuite/gcc.target/riscv/pr114139.c
  a7b01bd6393c053eb2052773c0ca4b69  gcc/testsuite/gcc.target/riscv/pr114277.c
  55a41664e9844961c91357e97dc9ba27  gcc/testsuite/gcc.target/riscv/pr114442.c
+ 5bbe0709a8dfddcf22a4bc65aa5e494e  gcc/testsuite/gcc.target/riscv/pr114512.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
*************** ab84d0aa4d50e17da2b9c83b6d4e7746  gcc/te
*** 88678,88684 ****
  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
--- 99476,99482 ----
  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
! 19703d4748331a9bd0178f6809e1452f  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
*************** dd62c9c64de00a6e7a48a6d47e29baec  gcc/te
*** 88710,88728 ****
  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
  2bc8f4e965541e4fc96271a069a25fb6  gcc/testsuite/gcc.target/riscv/pr118241-b.cc
! b2926d7d0c3ebd0521abd5b1bd13e5f8  gcc/testsuite/gcc.target/riscv/pr118241.c
  8c91cf2796ff0e2ea816e9d35b520e8d  gcc/testsuite/gcc.target/riscv/pr118248.c
! b62a32eafb5e661786b5ef2b03b30be9  gcc/testsuite/gcc.target/riscv/pr119971.c
  0cdcf97373ed486ded9f3c10ef04348d  gcc/testsuite/gcc.target/riscv/pr120714.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
--- 99508,99581 ----
  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
! 20acc0c6e9278e77bb8e0c95e78631ca  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
! a04df1bb92934d34ced7a6c04371bd15  gcc/testsuite/gcc.target/riscv/pr118170.c
  2bc8f4e965541e4fc96271a069a25fb6  gcc/testsuite/gcc.target/riscv/pr118241-b.cc
! a0414657daa6221b34457b2d257d1cf3  gcc/testsuite/gcc.target/riscv/pr118241.c
  8c91cf2796ff0e2ea816e9d35b520e8d  gcc/testsuite/gcc.target/riscv/pr118248.c
! 2635a8ce323c6f470fcbe6331ea7497b  gcc/testsuite/gcc.target/riscv/pr118410-1.c
! acc8133b241415ea173b4e1e06147a04  gcc/testsuite/gcc.target/riscv/pr118410-2.c
! 8c47402dadb9fd32b53e1cd83b57dc70  gcc/testsuite/gcc.target/riscv/pr119275.c
! bf00cac22e30fab76ac74c7b2e5af207  gcc/testsuite/gcc.target/riscv/pr119830.c
! 3852261f17cf66abc75e896fa7c07501  gcc/testsuite/gcc.target/riscv/pr119971.c
! d7b10be51739976c3b0ea4b16c390ba8  gcc/testsuite/gcc.target/riscv/pr120137.c
! a21d4b9178b49fb0fb65552af24e2832  gcc/testsuite/gcc.target/riscv/pr120154.c
! 372a3609365f2da8909b851ec64299ba  gcc/testsuite/gcc.target/riscv/pr120223.c
! 5eae803c1b040dbbb059ce96fc1b5474  gcc/testsuite/gcc.target/riscv/pr120333.c
! 4f37f1ab5c897b7d856cd69b7a0d1b97  gcc/testsuite/gcc.target/riscv/pr120368.c
! 2c1cc888103a7f151db04550ea30ea67  gcc/testsuite/gcc.target/riscv/pr120553-1.c
! 75188b477b9af85016e8bd0515f31112  gcc/testsuite/gcc.target/riscv/pr120553-2.c
! 3e9602da76e5cd67c12dd17c3d623ac4  gcc/testsuite/gcc.target/riscv/pr120553-3.c
! 913f1e0524de5446a17d2300da55b54e  gcc/testsuite/gcc.target/riscv/pr120553-4.c
! b2e2688bf4539077ba541a5c6d72fc5d  gcc/testsuite/gcc.target/riscv/pr120553-5.c
! 0d1f65efbcd94e91c5cfb218bf433ad0  gcc/testsuite/gcc.target/riscv/pr120553-6.c
! ceb3a68ee73bf0860222addabfa4e62b  gcc/testsuite/gcc.target/riscv/pr120553-7.c
! e70f44b248ae6fb211c33c6023159241  gcc/testsuite/gcc.target/riscv/pr120553-8.c
! d8e76b4cd45daa82499151eedc966298  gcc/testsuite/gcc.target/riscv/pr120659.c
! 5209003e1af2c30db39a214e7aa84709  gcc/testsuite/gcc.target/riscv/pr120674.c
  0cdcf97373ed486ded9f3c10ef04348d  gcc/testsuite/gcc.target/riscv/pr120714.c
+ f87f98ceea03639b9d09f120d310a5b9  gcc/testsuite/gcc.target/riscv/pr120811.c
+ 6437d8ec53cc1530c20baacd9ca47eba  gcc/testsuite/gcc.target/riscv/pr121113.c
+ b0a08bcc636090d105d825a0a3d1b159  gcc/testsuite/gcc.target/riscv/pr121136.c
+ 25c459137bd9938c72fff727f3c7b5d4  gcc/testsuite/gcc.target/riscv/pr121160.c
+ 0b64699a31b25d6d22c6908dabe89a74  gcc/testsuite/gcc.target/riscv/pr121531.c
+ 772299c8bb90d3144f704368bdbc7dff  gcc/testsuite/gcc.target/riscv/pr121778-1.c
+ 49f89ac2be2926412e68fbe76976697f  gcc/testsuite/gcc.target/riscv/pr121778-2.c
+ 1519612960758f4e24d6b228c6ecc3a7  gcc/testsuite/gcc.target/riscv/pr121778.c
+ f2efb1e403760ba651384395f140d44c  gcc/testsuite/gcc.target/riscv/pr121787-1.c
+ 6704284cca589a739b8ae2118470d94d  gcc/testsuite/gcc.target/riscv/pr121787-2.c
+ 052b9719ef24512ba3a9a1495eebcb2a  gcc/testsuite/gcc.target/riscv/pr121878.c
+ 149f75652a924ff51d7326419cef1b1e  gcc/testsuite/gcc.target/riscv/pr121937.c
+ 5da4efb1b887254a32f3e50ca5a0ea7e  gcc/testsuite/gcc.target/riscv/pr121982.c
+ ea89beffad7d3445e7faf4e7b1b31944  gcc/testsuite/gcc.target/riscv/pr121983.c
+ 80279953f9ce781df5f45c709bf29af0  gcc/testsuite/gcc.target/riscv/pr122051.c
+ bc59de83765bb844925a1922677b3910  gcc/testsuite/gcc.target/riscv/pr122106.c
+ 0f5f042a5df3f42e8e3634b538a557e9  gcc/testsuite/gcc.target/riscv/pr122114.c
+ cddeabddc47c1e2e434be321884dbb80  gcc/testsuite/gcc.target/riscv/pr122147.c
+ bf010688ceeadb1d6c96536579c3ddd5  gcc/testsuite/gcc.target/riscv/pr122215.c
+ 5e651c455514b3ec306f584a9708ee34  gcc/testsuite/gcc.target/riscv/pr122675-1.c
+ 6068a5f2303e752be2ee748be0491832  gcc/testsuite/gcc.target/riscv/pr122769.c
+ 7bb06177e50b345e5b51df54446f5561  gcc/testsuite/gcc.target/riscv/pr123010.c
+ fff9d84e7d142a27609a7e87d10bfded  gcc/testsuite/gcc.target/riscv/pr123092.c
+ 61858fbf3627a6a698ef76b904f1ab7b  gcc/testsuite/gcc.target/riscv/pr123274.c
+ ba319008fc3d471c58bb29fc9d29ccbc  gcc/testsuite/gcc.target/riscv/pr123278.c
+ 6eca389fe57f7e888581742c60e40dd4  gcc/testsuite/gcc.target/riscv/pr123318.c
+ c5510efb0e85b94c43e177d92c8bfa96  gcc/testsuite/gcc.target/riscv/pr123322.c
+ 36f2729f33d66359ae39ca96a9075786  gcc/testsuite/gcc.target/riscv/pr123380.c
+ ac11119f9210fdbe0a0f2e3211742dd1  gcc/testsuite/gcc.target/riscv/pr123911.c
+ a06f50eaf9ffceda3f1e44f0fe8c75f8  gcc/testsuite/gcc.target/riscv/pr124674.c
+ 69d56981252d3b0a103f35813b487836  gcc/testsuite/gcc.target/riscv/pr124818.c
  37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
+ 8eba488c3d26a288644785954ea86af2  gcc/testsuite/gcc.target/riscv/pr52345.c
+ db206807e7e87fc388e039471812c6e0  gcc/testsuite/gcc.target/riscv/pr58727.c
+ ae7832d0dbfbabb51f555f2e9c3138bc  gcc/testsuite/gcc.target/riscv/pr64345.c
+ 9a44cd39f0fe595fcf632b001e4b7d12  gcc/testsuite/gcc.target/riscv/pr67731.c
  10400130cc47973d43925669f3c795ed  gcc/testsuite/gcc.target/riscv/pr84660.c
+ 0de80b47fe4987561bbabd21726f22d9  gcc/testsuite/gcc.target/riscv/pr91420.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
*************** f95453a04d25316c015010a3d66699b8  gcc/te
*** 88731,88736 ****
--- 99584,99591 ----
  4a09604ef4cdb81da6aaf6179b4347d1  gcc/testsuite/gcc.target/riscv/pr96759.c
  f8e1480c639bcda238e3c7485f51f85e  gcc/testsuite/gcc.target/riscv/pr98777.c
  576ffdec066d69c35af0753463b174ae  gcc/testsuite/gcc.target/riscv/pr99702.c
+ 20010a916485eb48b91e76fab90ee728  gcc/testsuite/gcc.target/riscv/pragma-target-1.c
+ 894e5b67455a0ab27e45ff41f549c1e7  gcc/testsuite/gcc.target/riscv/pragma-target-2.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
*************** b22db7cfa496fe0bb94903110522efed  gcc/te
*** 88741,88747 ****
  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
  10ce20b4a3c09fe45ad7f7591166acdd  gcc/testsuite/gcc.target/riscv/predef-2.c
  1dae05fb7ee217e838eabf1f45e7114e  gcc/testsuite/gcc.target/riscv/predef-20.c
  42182dd604c357b7c179981ed12114de  gcc/testsuite/gcc.target/riscv/predef-21.c
--- 99596,99602 ----
  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
! a5e976aa0dff1643b4f1d0681591fc25  gcc/testsuite/gcc.target/riscv/predef-19.c
  10ce20b4a3c09fe45ad7f7591166acdd  gcc/testsuite/gcc.target/riscv/predef-2.c
  1dae05fb7ee217e838eabf1f45e7114e  gcc/testsuite/gcc.target/riscv/predef-20.c
  42182dd604c357b7c179981ed12114de  gcc/testsuite/gcc.target/riscv/predef-21.c
*************** fc91c5b8329ab8027668ea16eff02262  gcc/te
*** 88771,88777 ****
  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
  97165fe4d2fc842c6cfa418fba4d7c14  gcc/testsuite/gcc.target/riscv/predef-align-2.c
  9f0a4d7fa71879a2a32cb548b90e48d7  gcc/testsuite/gcc.target/riscv/predef-align-3.c
--- 99626,99632 ----
  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
! 8f16c8a19685a22ebdc72ac36615f75f  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
  97165fe4d2fc842c6cfa418fba4d7c14  gcc/testsuite/gcc.target/riscv/predef-align-2.c
  9f0a4d7fa71879a2a32cb548b90e48d7  gcc/testsuite/gcc.target/riscv/predef-align-3.c
*************** d390be4025bd4e328a4cf9c19aa7a1c6  gcc/te
*** 88783,88788 ****
--- 99638,99644 ----
  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
+ 7efece809ef8519f2e413fdd90622c34  gcc/testsuite/gcc.target/riscv/predef-smt-1.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
*************** fc3ba1bab139687a4821b5159329f0f5  gcc/te
*** 88792,88807 ****
  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
  cbdfece595adf310fc82fb6d6a77a7e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c
  fb13eb42f5f3a0b2a5afb3a09d77ff4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c
--- 99648,99695 ----
  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
! 845ff6df44bca50a866a9996c29403ba  gcc/testsuite/gcc.target/riscv/riscv.exp
! 979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/riscv_vector.h
  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
! 5ce61fdd32ee2675499ea219efbbfaf4  gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
! 357cd805c38f184a636930ce39b4f902  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
+ 081392dfe0eff61072d6f16699ed95c9  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg.h
+ c45b2fad78a59db52de9e340233e554c  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i16-from-i32.c
+ c168a13dbbf727aedfd7a56a8b1e112a  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i16-from-i64.c
+ d8436d1e4dcf3a4805b94701ca0bb43e  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i32-from-i64.c
+ 293bc9acc0586578dfa342259102e743  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i64-from-i128.c
+ ee01ca88385c684737d307e788a41992  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i16.c
+ 1146f80f452656812102f2ce916ba71a  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i32.c
+ 0fe5a2dadcde4ae9a1902e619e2f74ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i64.c
+ e1d678b716113456b7b617d600c7cf3f  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i16-from-i32.c
+ cf9e6991145427abf209cb49676043f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i16-from-i64.c
+ c080d0497a19845884cce7376c6f1b88  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i32-from-i64.c
+ 8d3c0335fd038d44b8474636677c66df  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i64-from-i128.c
+ b567d064b633bcc5892587abf126cbd2  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i16.c
+ e3cb3e16ba0a638aad631d2d0e569d51  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i32.c
+ 40f241f8ba9ecb4dcf6979b282bf9f85  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i64.c
+ 5a13bc625c651e6dc843fa123870f429  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_data.h
+ 36ac1a6d2a8dbd6f318aa551328354b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i16-from-i32.c
+ c1e6533b08293d4b5dcaacb46a4a858b  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i16-from-i64.c
+ 01037ff3f982a375eb56f210bdcede74  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i32-from-i64.c
+ 41d6c1ce41b0a4c7a50e37180afd71a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i64-from-i128.c
+ 3194b24560b37628ac4a337f916bf99f  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i8-from-i16.c
+ 2c05874b923bd9d5e40b17be6acca4dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i8-from-i32.c
+ 4607959c420c20b650d970e94a003457  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-1-i8-from-i64.c
+ 30f94d053f8447641715854a36bf0666  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i16-from-i32.c
+ 0530db6b2bf8021f61791373def267cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i16-from-i64.c
+ 282c281b56556ba1271e97e8962e8710  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i32-from-i64.c
+ 2e56de0c9e39628d011caf40f18aa7c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i64-from-i128.c
+ 26dcd6a99568a0e0c15d4f88c23fa327  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i8-from-i16.c
+ ccebf9d0d5590c48c6cfdda69f1c8842  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i8-from-i32.c
+ 46c16130d5bb1abea67af9f76eae9369  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_floor-run-1-i8-from-i64.c
+ c741cae5e21d28ce38de150928d9ac2e  gcc/testsuite/gcc.target/riscv/rvv/autovec/avg_run.h
  703460f530006a4fc7115645853f1a43  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-run.c
  cbdfece595adf310fc82fb6d6a77a7e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv32gcv.c
  fb13eb42f5f3a0b2a5afb3a09d77ff4e  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/copysign-rv64gcv.c
*************** de2cab5a8e2da69a8db8d226339e52a8  gcc/te
*** 88836,88844 ****
  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
--- 99724,99732 ----
  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
! 9a253dcb392103fee0bf5a2149fcd9ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv-nofm.c
  fa28d1b860b1fc6524ba539f3efa0e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vadd-rv32gcv.c
! 2041b4dfd703ca1ea5db77e1aa3b2416  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
*************** cc95a006cb086fccbd8375666fee1208  gcc/te
*** 88852,88861 ****
  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
--- 99740,99749 ----
  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
! 271e6bcf2e520091e54183d65cb8660f  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv-nofm.c
! 9d43535a71a58a0bc3e0e9fa7bf5a2f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv32gcv.c
! 0d1ad463f3ce2b726642195fda6372d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vdiv-rv64gcv-nofm.c
! 73f1f97d56da474653ee7aa1f8c6b0da  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
*** 88870,88878 ****
  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
--- 99758,99766 ----
  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
! ee60d2085fce199bcc261ffde12157b0  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv-nofm.c
  0e268df12613f677b5a90ca5e0fabb79  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vmul-rv32gcv.c
! f8099b47782a8966cb89756d51126e28  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
*** 88881,88897 ****
  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
--- 99769,99785 ----
  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
! 5eca7022cf37a1a7e8da13966d3c9f45  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vrem-rv32gcv.c
! ebeda02df2858abb6e6ebeec4a2b251c  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
! 28146197954c46e489a3b32902f0483d  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv-nofm.c
  a8fa812d905b55ae57ce821d94f1ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/binop/vsub-rv32gcv.c
! 9250115d4e79c202a387c4f32f09876e  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
*************** f9ae179d5dd3e09d82fde9d15aab3ade  gcc/te
*** 88904,88910 ****
  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
--- 99792,99798 ----
  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
! 40027ec872b06e4bc32b9b4da88d6d1d  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
*************** c1946464052d50d80561e48089950996  gcc/te
*** 88998,89021 ****
  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
--- 99886,99909 ----
  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
! cdff74f6404960815f9c880e5bbd7228  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
! 5f59c1a5cbf4b6fe60dee209ef429f14  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
! 1a27a132d23dbb025210faef33c96a79  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-1.c
! 58790830c0058b60283568738772f347  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-2.c
! 648bcc31ef8876efee9ac98b7895b094  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fadd-3.c
! 159fab8156054dd14a86e260a906a496  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
! d8d8b24ab149434da9c983bff5dca531  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
! f020c313c57ddb38c60cc99f26978157  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-3.c
! 99a1c63b733a9572f10541eeb72425aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-4.c
! 95345468bad73b1b2b6edc6032382674  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fma_fnma-5.c
! 3a4d5efd8cd62ecf5ffbb43056e63683  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
*** 89026,89080 ****
  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
--- 99914,99968 ----
  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
! a8c7ffda81a0533f0b3e53d91dc04b17  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-1.c
! ff85fb707f448fe6bfe0f4498355d634  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-2.c
! f735ff17c414b6e9cd8a693a87317c07  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax-3.c
! 6fca4413a262f0f5ed510371c0b7c472  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
! f804b01e12f944a2de16df398c521535  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-1.c
! a7befebc9fbe8f987a1256244d0c8ef2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-2.c
! 49fb1a60c0caf84406718c737ffe56c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmax_zvfh-3.c
! 411d8bf6656bbf169d3dcebfe17fb873  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
! ee7faf05028a05a0e52a1d2f72702077  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-1.c
! f02d2b478d12448e97281af679f7c067  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-2.c
! 3c71b9b1dda83caee03936a8a2c51ef8  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin-3.c
! f3ffbbe0e94b3536ae1bc7d38c93ed0e  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
! 5249f005c7a28c954a67a49a9ae0a20d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-1.c
! ea1ab8561acd7305be8eccb6c44fca8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-2.c
! 27b8cf79b59ff61df14b74ca28c336cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmin_zvfh-3.c
! 0dd02476c025ea1827654ff48826e75b  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
! 0726206c3d1eb5a14cda8d2438342fe3  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
! 66725cbc74367e0db01d71dbb654e7cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-3.c
! 346ff445b89be27a0d75d0a0c936475d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-4.c
! 346ff445b89be27a0d75d0a0c936475d  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fms_fnms-5.c
! 91d899809256eaaa6b6e0c7576cc4a17  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
! cc124d4ef156a1200c4cc2f460acb3cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-1.c
! db5129e931e1074a87bd3bb2776141f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-2.c
! ce9047192477aa8651199a7ac98967ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-3.c
! ae25484d76d66908dcd88321fc1928e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_fmul-4.c
! 9d05353698a07d35d4c8a515bc4ce348  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
*************** ade16f059b010bf66d77fcf2968ef4e1  gcc/te
*** 89212,89219 ****
--- 100100,100112 ----
  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
+ 39451ecb16e938f3287f1cbe959d0989  gcc/testsuite/gcc.target/riscv/rvv/autovec/dyn-lmul-conv-1.c
+ cfe267c9e6bccf4218caaffe53763ef9  gcc/testsuite/gcc.target/riscv/rvv/autovec/dyn-lmul-conv-2.c
  20b13d398df88501296ba6a72e6c9c15  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-1.c
  ff340d9c6dee8784837f8941d76ecb52  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-2.c
+ 5522a5c36ca95ef215635928ff0690c4  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-3.c
+ 98c9ad8647e73c3d00ffb9b02387030e  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-4.c
+ 4eec1c208618208817133e20728e6cb7  gcc/testsuite/gcc.target/riscv/rvv/autovec/early-break-5.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
*************** d90ca4ab32f893e58362b7afbe85e6fd  gcc/te
*** 89351,89361 ****
  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
--- 100244,100257 ----
  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
! edd0a4ba6a9489214ca39d04c6a65fdc  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
+ f7a8ba49de6d1e5b275e35f45edbf009  gcc/testsuite/gcc.target/riscv/rvv/autovec/max-vect-1.c
+ 2b66681c6de1c53f888f788a0ccfb6da  gcc/testsuite/gcc.target/riscv/rvv/autovec/max-vect-2.c
  03b6c6282f299ea1ba67e487d39d0d18  gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c
+ ab21455fe24976076ab6c6ae759350ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/param-autovec-mode.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
*************** cdcb3f79dcdc39964352b1cfd0a498a9  gcc/te
*** 89374,89380 ****
  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
  8296af47d5dbbf6472d921747ddab15d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c
  ad63bb25169ac08133a112caeb9cd138  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.h
  7d205209316fb0bf3e4ccf0b60b1fdf4  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-2.c
--- 100270,100276 ----
  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
! 5ed68f728ccf46bedcde0b8db6a7ae7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/select_vl-2.c
  8296af47d5dbbf6472d921747ddab15d  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.c
  ad63bb25169ac08133a112caeb9cd138  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-1.h
  7d205209316fb0bf3e4ccf0b60b1fdf4  gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/single_rgroup-2.c
*************** b3a6b5754323ff046d0acf52bece9724  gcc/te
*** 89434,89440 ****
  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
--- 100330,100336 ----
  544c93334e9505407b1533999361a83c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
  20919065c4bce35bbdddfe89476925b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111318.c
  fa61a6cc5030ebab9e9162f82fc6aa29  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
! 60ee52212638b315a8ad9540a60415bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
  3a2c69eacd5c8132c78e54208d48b0b3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111486.c
  77a9a13f8e8e8a260a2b8c48ff1729e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111548.c
  200c284a34655274d55a300b2d41b4b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111751.c
*************** ea1a52d4d4520c9759f08c40d864ed64  gcc/te
*** 89470,89476 ****
  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
--- 100366,100372 ----
  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
! 8ecb9c61d54e68de697979addcdb22cb  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
*************** da5abfc57f298d619d789eb91a345428  gcc/te
*** 89501,89506 ****
--- 100397,100404 ----
  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
+ 194049337deda59cac12e5a7a00a6824  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118019-2.c
+ 543d78b92660650a48c2def352cee227  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118019-3.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/te
*** 89508,89517 ****
--- 100406,100465 ----
  b383a140231f763cc0d532c0ed651bc9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118182-1.c
  eba0d19494d2301c112e8ee69e4533e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118182-2.c
  e5794d88a1109065814ce4f8f2246087  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118832.c
+ 3fdfa217fb215691c225e7e02191c539  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c
+ 78bdb3d6d00c0f71bd0fa471f037d22f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c
  1064dbbae3b2f7e04909839e8152b061  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118950.c
  e7ca8fe6239410f9affbff1106fd2d15  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr119114.c
  446b0327be112ddedf3f8db6bc96d603  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr119224.c
  97a2ebde6fd6564be1fe7abc131eb066  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120356.c
+ d089ebc71ed2d229654df324ccecea76  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378-1.c
+ f3a9ddca4f092e66d160c682c897eab0  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378-2.c
+ 17dd3c0282d1ec39655b88b23d9407a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378-3.c
+ 1eddb2cc7c5ba2d1d837f5842181cd73  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120378-4.c
+ 21cad2ea7a1a5a2e645eed965ace99dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120652-1.c
+ 600f9912922423684f29884007330d55  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120652-2.c
+ b81941261eb74f03f85b72b205359f75  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120652-3.c
+ 7fc7aa17b0d67ed9ebe9082530c252eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr120652.h
+ e551adccc3ae041941558e7ebb4dd965  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121334.c
+ 1159bf825f9c6c94effd66005702c75f  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121510.c
+ 34869ae69595f572c19e98413f9d760b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121582.c
+ ed132fcfade8212b992e822b341be9eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121742.c
+ eda1f0d5c82c50988ede53858da3cabd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121780.c
+ cbc44c5c7fa77e3f0d3efc55779bba4b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121781.c
+ ca9ef4de6ed36716b972a6b4efc63e85  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121845.c
+ 357366e34138686786040d7711285496  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121910.c
+ 4391e6797005cb9bdd7698ba6f01b338  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-1.c
+ 1385d31da5b11692f4c684335afd7eef  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-2.c
+ 403ae1b13c73ca937a46464ccd97b4d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-3.c
+ 040be8cae021f68719b780ccd836b646  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-4.c
+ ff34ed0a7c5ef570af53aaf279c855c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-5.c
+ 8b1af0e1a26f557b1aaf24d3ef7100b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959-run-1.c
+ e69ac673a560685af831869d72b01154  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121959.h
+ 311a627408ac72490b3120be31a63ff3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121985.c
+ 505e3d028e24b575ded98597fbccdbfd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122124.c
+ e990c042b373d09f16b69f4b30f0ac20  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122321.c
+ f0e27c8a70ef385c8afee48411a152f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122445.c
+ 9e392034c9515123dd44a7ee88bd8905  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c
+ f282bbefbf97b6d53a628679bbaa73c0  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122635-1.c
+ b2dd0767e7d7daf54047f6721f5c4fc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122635-2.c
+ e9bf253f97d3c3c03e1f3421d9da5ed2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122846.c
+ cf72fc61666d019de029c8143c4c42a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122970.c
+ 4c249548c54ca3fd544c8943a9d28b77  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c
+ 159ba529f2ab9b94d86dd9c7121d5aec  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c
+ c447bf3b1ca59703351696005c25a811  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123097-run.c
+ f7f343c3de4454209ad958bd70574bf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123097.c
+ 9c1bbd3ecbed8403a5df89411fa20a31  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123301.c
+ 2f0b7e899c4345c6d370e174e7d4b2dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123317-run-1.c
+ d6f32022613367c165768e009d673ee3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123317-run-2.c
+ 2ca459b948998f212e7c63db48a126a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123317-run-3.c
+ f975c36225a2f74a7a6020b07ad719f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123317-run-4.c
+ 26832b17589cc511f51734659c1f2c14  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123317-run.h
+ e894a5c8e8bd464dcdd9c92665222f35  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123381.c
+ c10f8db5df2b65c9fba341cccb30fe9c  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123414.c
+ 3bc5599b02b046096a6eb9e4366940ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123910.c
+ 435f94201bb6109ed80f56efab255e18  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123916.c
+ 081d884e59fdb4543c2fe6b2860dada3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123925.c
+ 7d8cbc2b37ba78b4c9e24546d49e35a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123940.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
*************** c45fc8b957d3795551007dc8778f0905  gcc/te
*** 89540,89545 ****
--- 100488,100494 ----
  806b456b7c04a495d9c07f1c78339fd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-7.c
  dcd95e6b0ffbcd67134508285cf0dd7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-8.c
  079315192f9f57442a4c0d1132f7ec72  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last_run-9.c
+ 92189b0ad615f2d3623f1b871af4cb09  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/pr123501.c
  32208ad008f41245be33936306a955c8  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-1.c
  e1f86fc6350b92e9f73b5a34874e1310  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-10.c
  2166358447adcc350e54279c2a70a7b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-2.c
*************** d52f616fd3b07a4d65fc4fa9119dcfda  gcc/te
*** 89548,89555 ****
  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
--- 100497,100520 ----
  fa602ac5a67a9bd2f41190760f8ee254  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-5.c
  9b3b6c980f900d0e5e31449c80ba1989  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-6.c
  f830bc7889b5d1360c2788743d753f7f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-7.c
! 8896cc2ec1b579581ca3e02c0ee09430  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-8.c
  14ed314f7535c6f005f8429685917cd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-9.c
+ 7240802c32f17783ff1c02ece2399973  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-1-run.c
+ 9d0bff7b30611d272f690f55d8030e43  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-1.c
+ d724ef67b180c1b786cad51d65abeb29  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-2-run.c
+ 2ba4b5ab6d8b64d15f84327b9560a409  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-2.c
+ 11e3ab9d83a30a8dc296eb27ad6d3902  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-3-run.c
+ d098d941c205bdae59bd07f3c659f9ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-3.c
+ dedff2f33dc910fa1f68ea2a759ad721  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-4-run.c
+ 70b1d49be3930f6a21d04fdc3cd973af  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-4.c
+ 9e6018d99e8d759517c5c266afc69b55  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-5-run.c
+ 8ead926e14b74baa62521239370c5e1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-5.c
+ f3cb8c2e919250c1c5c535cb784f8f70  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-6-run.c
+ 820e3fa20253fa4808232a3ff4c7296c  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-6.c
+ b364ca1981818cecbb13465b70c23ba6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-7-run.c
+ c100cc3fd611725f78312c4408148650  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-7.c
+ c1b7c74a0e70531cef7519721e5e9ff6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-8-run.c
+ e6cd9ea69c640eb0a252e4da30d07f39  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/reduc-bool-8.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
*** 89578,89588 ****
  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
--- 100543,100553 ----
  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
! 5fa95aaa8929bc6e9eec7e2afd1138f1  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
! f4d542c8b9470f87144c5b8a93008508  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
*************** a34d327beaf5542af2a60e0b64d39717  gcc/te
*** 89615,89620 ****
--- 100580,100596 ----
  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
+ 7b538b48e46bffcc2fd7200c7e87420a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-1-i16.c
+ 52ca0e1a1bb7537a87c1d39cf9e94146  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-1-i32.c
+ a0aff92bf1905e8d3c6ba4337e4c888e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-1-i64.c
+ 5209b588a556fc5310e4e14bd59fdf17  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-1-i8.c
+ f63c9b288c71e4c8138b29b277430432  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-run-1-i16.c
+ 224a5418c643ff57e5208e14f51ce9f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-run-1-i32.c
+ c9484920bdef7ef029e3c5651c27a5fe  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-run-1-i64.c
+ df57dfbc4e39682cb0f7568ec53ecb52  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm-run-1-i8.c
+ d92bbcd643cb45b724e85335f4d110f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm_type_check-1-i16.c
+ e52af1e50657adeb9ef0df22ae04edfa  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm_type_check-1-i32.c
+ 6dda8daab079fdce2bd0c82d885ce60f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_s_add_imm_type_check-1-i8.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
*************** ea4a0f67292eac140da7b98ebfbbb996  gcc/te
*** 89775,89780 ****
--- 100751,100762 ----
  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
+ 37c614347045c5aff714178c9baa4071  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u16-from-u32.c
+ 89d89a00b2c365dbb53dc0c235f01cf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u16-from-u64.c
+ 44cf89d3d7fc89f0ca77d3802320644e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u32-from-u64.c
+ 3840cfa466d1d1b2eb9d7a61ba9f4d5d  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u8-from-u16.c
+ 34dff1cb0f6d4b5c6be876c2c3973cf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u8-from-u32.c
+ f9329361b6b63559ee792d41ed919032  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-9-u8-from-u64.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
*************** d23bc2f30ad839e092fa19a37476169e  gcc/te
*** 89807,89812 ****
--- 100789,100800 ----
  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
+ 0026377b3a4223915044e729ed17201c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u16-from-u32.c
+ 8f99956b4058b4b2309fa86bb8f8ea00  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u16-from-u64.c
+ 4c7dee5ac593db3a531f7f186c1dc6b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u32-from-u64.c
+ 2726317dbb794820465016faf4abc0a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u8-from-u16.c
+ 34f663de84f22d80f312f51f6bdafcb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u8-from-u32.c
+ 2726317dbb794820465016faf4abc0a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_add-run-9-u8-from-u64.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
*************** db97640af72813d09c8b3b9bc1943e59  gcc/te
*** 89862,89867 ****
--- 100850,100863 ----
  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
+ 6f84fbeb2081fbc4e9afa8f609371d94  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u16.c
+ 26b375b5757effa251014b2aeea89e65  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u32.c
+ fab50cfa57eb272c16250055597282cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u64.c
+ 3de47c532a820fea8a61724c8d2aae4c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-11-u8.c
+ 2ddc13db5aa35517b9e45037ad214871  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u16.c
+ 08a4f66722cab0c63feaa074f282a90b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u32.c
+ e0018dda37bc4f1c7f0f488b09e96f99  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-u64.c
+ f930c5d5e44169f220f06b1cd2f96eef  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-12-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
*************** b4ee88850bdf58ae558a9834969c2bd1  gcc/te
*** 89894,89939 ****
  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
--- 100890,100943 ----
  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
! 8f608be3eecadc9f0be5a6383342dfb1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u16.c
! 3f1a58ca5b432be7de19ddbdf6ddd3e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u32.c
! 4b833feaf0686c75695ba1811d182f9a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u64.c
! 64cabf82fe96e6da83c52a57d76e07a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-1-u8.c
! d0f4e1ebfb3a4452f38c27fcbe6187a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u16.c
! b9a1e6677f05d3195ee22a2ba95598bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u32.c
! 9b3d63c635ab6d65e410c337808581b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u64.c
! 7557869a70d1ea3a3edd7a36db126eb8  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-10-u8.c
! 62d322ca89add23ee52a474bbb312931  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u16.c
! 95ddd520c04d6ddde2c3f1b74a941809  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u32.c
! 60c725e1e63afa32b9ec3418b98352b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u64.c
! 4d4d997f28239cb11a94eaa90bda465a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-11-u8.c
! dcff374177da8d30583a9f8d443fccc2  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u16.c
! fa72041d63e924f8e89aa3302613359a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u32.c
! cdfe442b3e9d767ee463d9097459b1f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u64.c
! 1f997c8b005e2b61a28fce9da97bc948  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-12-u8.c
! b3d176cfcd760672647efa717606b07c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u16.c
! f11f8f3eb9ce96d158fb3a7c5db50e29  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u32.c
! 4214ffd951c980fda045446344bd3869  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u64.c
! 4f14dae70156a1102ce2706044f7be8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-2-u8.c
! 0f68505f164777d629bb95f60c6e4e68  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u16.c
! 8d09dd92135bb2491e304d31b76d0117  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u32.c
! b9a053d1ed345ce1387b2625d420410c  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u64.c
! 9c82fef27027289d4d5e26ffb4cc1a2f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-3-u8.c
! eb9cbe7ab99e4c6b6c95e91649b597a6  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u16.c
! 803081753c964cfedc9041bcfc45b44f  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u32.c
! 15eff335d61f2b3b9a90a96d01b0405a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u64.c
! 21278f446a2360a6e03c736647ed0e88  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-4-u8.c
! 85ec54099ffd2b1708f68258bbc648e5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u16.c
! a8fda7eaf246ff64acda34a070f5c2af  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u32.c
! d4b5ae51d0af091d14937af990345b74  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u64.c
! 2339e58e7f4149fcfe9c9ca34429b78b  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-5-u8.c
! 48b5d4b25832811e63c337aa0b51cc50  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u16.c
! 70ab33ae01cd9245439d29577137ea7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u32.c
! 89438cd0f66da50806546efd8d45ef51  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u64.c
! 1d3bb8db39ce8e20213c2e56b9bffa8a  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-6-u8.c
! 6cece2eb16be87fdf72dee64255140cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u16.c
! 6423cf8401f51ad0fb7ac9fcca2f08d5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u32.c
! a4f86fec892f49bfbc4d43464e0384c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u64.c
! ee792e53392bf711f786d141e08a2110  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-7-u8.c
! d3acc94eeb93bfab5d49dc343798bd32  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u16.c
! be39a29690fbfda4a4070e5faad0a2dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u32.c
! b2c0e1e164b2263ebb650bdb336aaf71  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u64.c
! 1870f348266d40ecebcbade07d293519  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-8-u8.c
! 8ac343958de658cee77fa386ba90a415  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u16.c
! f17a285f95404b0095894e611af1f067  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u32.c
! f9a39f302ae414450b78d60c9901d039  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub-run-9-u64.c
! 5859f4039f23186dd2bfa8b1f1b4d95a  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
*************** b3623744beb4280e52fad318705b4610  gcc/te
*** 89966,89974 ****
  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
--- 100970,100978 ----
  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
! 21b34458f735729383e5d5cf8ec45718  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-1-u16.c
! 564271f5cf181c68a64fafe02d00c15e  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat/vec_sat_u_sub_trunc-1-u32.c
! 6bb344b349801093203dc47415617279  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
*************** d494615974498ca393b73a2eadfc5dea  gcc/te
*** 90023,90031 ****
--- 101027,101039 ----
  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
+ 245c87d4d4cd099399fee8052b46a245  gcc/testsuite/gcc.target/riscv/rvv/autovec/sat_add-cost-1.c
  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
+ 2ba53da72c8581d9539b778945f4cf48  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slide-run.h
+ f8dab1a5e995006acd7b3ef2dc4f2bcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slidedown-run.c
+ 1663e10813b7026e0300785ca2de3ca6  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slideup-run.c
  8e40a987eb306df9e33adf3d96c885ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c
  e361b814d6c1a2db0378e33bb0f45a2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c
  3576af7e98c5aa20081a56bb4b37c74d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c
*************** a9e43e12d05f5060efb91812c5538d27  gcc/te
*** 90186,90191 ****
--- 101194,101200 ----
  9ad0b4eb2ccb28e0fd1adef5c8454588  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-7.c
  324b3f01b2d22096ed23e1c7b389fd80  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-8.c
  5690b06a34bd472837c2573a580ce080  gcc/testsuite/gcc.target/riscv/rvv/autovec/struct/struct_vect_run-9.c
+ b9148e8a25b68a52c556bbef58f30e37  gcc/testsuite/gcc.target/riscv/rvv/autovec/subreg-extract.c
  3ec4558b8a9b8151a6ec061952ce0d1e  gcc/testsuite/gcc.target/riscv/rvv/autovec/template-1.h
  68af9e429e1d21a9b0a022aaea868104  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-1.c
  462e8176f898c1c5eb2f95c5289e157e  gcc/testsuite/gcc.target/riscv/rvv/autovec/ternop/ternop-10.c
*************** d700db1f930733fdbd313bf89720f0b0  gcc/te
*** 90498,90504 ****
  83e6dc1995a15780ac580d7539d56e36  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-3.c
  4392cb67d79b614fe40eafbab14483b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-4.c
  3bf9e5664d3defdbbf5c2a9b1fbce4e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-5.c
! d15d43b7a75ff677b061c9e55b720363  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-6.c
  2e16238a38c4e7a5d0a702db0dee4797  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-1.c
  74635431f43d2f1a6933b055dd25692b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-2.c
  b3bcd506c350c34cc4adaa0a66028adb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-3.c
--- 101507,101513 ----
  83e6dc1995a15780ac580d7539d56e36  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-3.c
  4392cb67d79b614fe40eafbab14483b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-4.c
  3bf9e5664d3defdbbf5c2a9b1fbce4e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-5.c
! a134513ba68a9a6c683ee2b667056860  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat-6.c
  2e16238a38c4e7a5d0a702db0dee4797  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-1.c
  74635431f43d2f1a6933b055dd25692b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-2.c
  b3bcd506c350c34cc4adaa0a66028adb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/repeat_run-3.c
*************** a57153c5795f4e1a6d4cfb4702343803  gcc/te
*** 90510,90516 ****
  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
--- 101519,101532 ----
  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
! f7e247eb8bdf16a4868f4fff31a14923  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.c
! 2761f3f732e71421249a98794cd7c82a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.h
! 427a7a5ff256a6261e7cac5bfc63bdd2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-1.c
! 7037d0b7f314378828748d3cb621f1d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-2.c
! 00f4296852fbe301269b8e71153d1fe6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-perm.h
! 3186ba14e19af1727799431ff9da0f7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-1.c
! 0b8409a2b7e9ab3d60abedfd258159b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-2.c
! b36633c19b388332a46c2d831d64b9dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-perm.h
  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
*************** a46e2469358be5cd090ef9c30487d38f  gcc/te
*** 90537,90548 ****
  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
! 99dc5cd621fd744af09d3cc4cc07d7b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-1.c
! 54a6cc53a3947a533272cb86d096e7ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-2.c
! 6a77ddcde9aec47bfb46cb76cbeb970a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-3.c
! c4f1e57a8dcde0d7416e239ed9cb99f0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-4.c
! 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
--- 101553,101564 ----
  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
! 529639583855663c08bb8c7850efe0ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-1.c
! 8aba7a7b76dda3e6a5df8c344c7e874c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-2.c
! 4eb798e553b2577fee6ea882fc4a943b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-3.c
! 45f2fd8fd5ae4ac56d21e8996be1837b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-4.c
! c93cf42525a1c616ab0e12687755dfc0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/avg-5.c
! 648888d42e42549adab8222e0efc29a7  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
*************** a683300743c56e236d288fa13ea11c3c  gcc/te
*** 90701,90731 ****
  3f2ffb43c12de26613083945580971b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c
  6fe03985d98850ddcda9f0d5d1c6840e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c
  aab11716eafff284c09fcb265c92b7d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-1.c
! 1e922b47bcf6f04f2301fbb55b813a0f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-2.c
! ca5f40ae383d5a40b39d9d039bbede0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-3.c
  958d5ec738e78b1fae00ae61aa5624ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-1.c
  9a353e32cb9d5cf6c7af5e87b0dfc56b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-2.c
  ff57240ac36b402917240469534083e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-3.c
  0972ed15b2e9133996a7f4a98b2f015e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-1.c
! 8407bfe3aec7265bf4cbb4231b339a48  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-2.c
  c80c0e73d4a722ffbd131b5923b0fd4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-3.c
! d5b4cb0e9c27371faf4d923898285946  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-4.c
  66d599d0f18818b6ce81fc69d7dd339d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-5.c
  953f23db04f3533860c00f11b5138a22  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-1.c
! 0ec8b38055f6791877784297c3990a5f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-2.c
  3c95d542c38d48a74942a54dcfe5d1d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-3.c
! 61572b7474ea759dd3f02eed4ce4e8fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-4.c
  0b12df402b882c7a78f3fbfb6061435a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-5.c
  8ab0ce2e3db3521d31c4f619d0736c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-1.c
! 53659cc4151769dfbf205087b7ac6849  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-2.c
! 9b77f21164063d92fa8cd90e6adf9df7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-3.c
  5f90d4fc9d91914db44c364d1d41faa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-1.c
  ff5670e76438ca5c0014a46dd2388e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-2.c
  716cb9a267638ed0eb1a14cb65ff8021  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c
  229001d194302d1195788b71e5d80f31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c
  eb18a26d357fa5c90fbcac9da3b08316  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-1.c
! 505f015adea5779746d2b66c6d22f2b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-2.c
! 6027dcd685624654da95d438dc7a2b9b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-3.c
  f0afd593f55cfc1c47f0ccf8b11aa7ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-1.c
  b29b047741809e570aad0086779fb0b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-2.c
  b7aa88f7d555a716d28f50d341b6f9d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-3.c
--- 101717,101747 ----
  3f2ffb43c12de26613083945580971b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c
  6fe03985d98850ddcda9f0d5d1c6840e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c
  aab11716eafff284c09fcb265c92b7d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-1.c
! 1b3b1ee94ec7dd3f8be81f3b326f88ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-2.c
! 464c0092a979bfb3e8a6cfc75d22a196  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-add-3.c
  958d5ec738e78b1fae00ae61aa5624ec  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-1.c
  9a353e32cb9d5cf6c7af5e87b0dfc56b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-2.c
  ff57240ac36b402917240469534083e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-div-3.c
  0972ed15b2e9133996a7f4a98b2f015e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-1.c
! bb3bcc1b12f652c860e7955831f6c563  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-2.c
  c80c0e73d4a722ffbd131b5923b0fd4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-3.c
! 4ceef42667da1480466286cff1cb87e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-4.c
  66d599d0f18818b6ce81fc69d7dd339d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-max-5.c
  953f23db04f3533860c00f11b5138a22  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-1.c
! be514ccc458cbe3e2cdc1127f6590023  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-2.c
  3c95d542c38d48a74942a54dcfe5d1d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-3.c
! 8d018af69c76842896ffde3f19269309  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-4.c
  0b12df402b882c7a78f3fbfb6061435a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-min-5.c
  8ab0ce2e3db3521d31c4f619d0736c55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-1.c
! d4b2c0bf538a73b0edb6a1e9b8d69a6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-2.c
! 6ed9d5d39703f6246291773ae3dc3a07  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-mul-3.c
  5f90d4fc9d91914db44c364d1d41faa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-1.c
  ff5670e76438ca5c0014a46dd2388e8b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnj-2.c
  716cb9a267638ed0eb1a14cb65ff8021  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c
  229001d194302d1195788b71e5d80f31  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c
  eb18a26d357fa5c90fbcac9da3b08316  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-1.c
! 26bde7fc4b66da7f9c02aedd9c3d3d86  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-2.c
! 636e24b7d90c081f23a8a72833fee0e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sub-3.c
  f0afd593f55cfc1c47f0ccf8b11aa7ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-1.c
  b29b047741809e570aad0086779fb0b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-2.c
  b7aa88f7d555a716d28f50d341b6f9d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/fma-3.c
*************** f95d4e0ecca41e722099be6b52b3efe7  gcc/te
*** 90969,90977 ****
  35044d6a949091b4c23addf451f035ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
  0026b1e2310b7242895d290cff3f1e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h
  2d052315288cbb1a315add9fb76abbc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c
  836cc87f131d9d080542fe18ca8f7841  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c
! f1082aad0502554eeebed17813742243  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c
! c63c1dda7e0edaae3a19ada81d8d2297  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c
  b3a10f963daabd4c0545bcbe870d8b78  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-template.h
  37f00fa125caf733543d0cf3aa59e817  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-1.c
  b352fdfb9e52a7c01a1b2bedc6b37b32  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-10.c
--- 101985,102369 ----
  35044d6a949091b4c23addf451f035ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-rv64.c
  0026b1e2310b7242895d290cff3f1e9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vmv-imm-template.h
  2d052315288cbb1a315add9fb76abbc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vreinterpet-fixed.c
+ 87849d7964143c9089fe644a1546804e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f16.c
+ 14ea824138979ca768c89701a4a54b0b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f32.c
+ 34931a5dc109f7f5c69e4bc818a3b046  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-1-f64.c
+ b870c5da78293f9343f0b46b523057fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f16.c
+ a560ff181b5a7c4464c79b272c360886  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f32.c
+ 4b36fff36b0dc58ad3ec35bab8e36bdc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-2-f64.c
+ 621084b9f3eb457503f7fd9c4b954dc6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f16.c
+ 0e93d5a441ff1a86fd469a33a5c2ae1c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f32.c
+ 4493696b3123503af532e0b11fda6f67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-3-f64.c
+ 0f6bae4aaf481ed935efdf93db5f65e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f16.c
+ 1688960ad63b10d019febbd85cca0b74  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f32.c
+ 0927ecacaf1354fcbbea5b4047c662f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-4-f64.c
+ 6c326f2ef219232bd692592851dea36f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-5-f16.c
+ 582b3946c2648a6fd77b44891678961d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-5-f32.c
+ 61ddb108c385ba6d96b73dfcb9ee9b45  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-5-f64.c
+ ab91d46cdc94442ba7a46dd05dbd587e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-6-f16.c
+ 23d5f3132dfb8b1cda490dc14948565f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-6-f32.c
+ 00a55aacb718a7144743cd350bdd5fd7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-6-f64.c
+ 42f18d4624b34fc5a92e43a4a5f5efbe  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-7-f16.c
+ ad8d4e4a77e528e72a6dfd745564cc02  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-7-f32.c
+ cb3628887549e8d62d8882ff985ad2b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-7-f64.c
+ a6c4dcae709fe1dfda79a57791ed31fd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-8-f16.c
+ 68803e578b8f1626110d92e73abc668d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-8-f32.c
+ 3349c34336ffe1fb89300df7b96bc799  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf-8-f64.c
+ 47c87bc0103b0e785da83f97943b8f79  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_binop.h
+ 9af4503c8568347b92545f1553fe6f63  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_binop_data.h
+ 8defdab5f95bd04f24f032b99346d64f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_binop_run.h
+ 3dd5045edba818d381f9a75baffb6e4f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_binop_widen_run.h
+ 5ac387603c0d24689924b3d78ba4bbf9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop.h
+ 1c4119935df2b0a9b4ab87cf47a3cdd7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_data.h
+ 2714f0d833a302283af9fa8d888862ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_run.h
+ 941e2ccb37cdbf0216c404d1a4cd6745  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_mulop_widen_run.h
+ cc2deaa4a8f5a676ee82e518d861ad8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfadd-run-1-f16.c
+ df17ded1813952e0dc26134bba5300f4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfadd-run-1-f32.c
+ 7c020f2d9162f83679eee68ac3769a99  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfadd-run-1-f64.c
+ 09d0368981957734f8c4ed4b287ce552  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmacc-run-1-f16.c
+ 7eb8dc7e69dd9f6638980e77cd6e6efe  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmacc-run-1-f32.c
+ db6c9fd046686fdd17cc7ffc5fbfe33a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmacc-run-1-f64.c
+ 70e39ec96c65eb4b15338a6f01c31f35  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f16.c
+ f111fb341a6ca7e95c2fa3bb7c758f27  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f32.c
+ 93a4d811d524303ed690e8cd8e527806  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmadd-run-1-f64.c
+ 32113394f543e4d228b7b080d062ad66  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmax-run-1-f16.c
+ 5a61d4730456370e236977a8dfa427ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmax-run-1-f32.c
+ c1fcbf312e90a96c389be06d51936655  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmax-run-1-f64.c
+ d27502785051afe00e32a706dbee68a7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f16.c
+ 0cc96fee340215857657e90f9a2accf5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f32.c
+ d49b5d2fbe0dd978b8551455e7a6d8e0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmin-run-1-f64.c
+ 81c6429e35980a6f8f11053a8e4cd1db  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsac-run-1-f16.c
+ 007ec5abf9cca9e34ba75e11dd5d4f2e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsac-run-1-f32.c
+ 706fdab09ac27674ccdcb6d34688ccb8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsac-run-1-f64.c
+ c1a16976849fd541d4886de3eb0b0626  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f16.c
+ bdefbf3eeea1f08fffd42d2bde350dea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f32.c
+ 5a1f7f5afdbbfcecd97cb5d7098ff707  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmsub-run-1-f64.c
+ f750025406a79da09992376ecfca4061  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmul-run-1-f16.c
+ c47bb897700d0ee67dd0364d6a732177  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmul-run-1-f32.c
+ d23a27c26210204a6e5dabaa5dd2794c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfmul-run-1-f64.c
+ 49db4d5a9f12b695bfda1ef3aa0fc334  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmacc-run-1-f16.c
+ 87786f9293eedd4f262ccf4e09d478f9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmacc-run-1-f32.c
+ 634b2fb5bed1d8ed41e55b271de9400c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmacc-run-1-f64.c
+ fb70148e0cd734ac545ebc3dc0fb2d9e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmadd-run-1-f16.c
+ 9c4307fc1db29e045adc4a9f15ddca66  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmadd-run-1-f32.c
+ 0515f842a58d067880c5658e5addbece  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmadd-run-1-f64.c
+ 68f94378d47af5f42f981e3332cbe37d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsac-run-1-f16.c
+ 585be3a51575d87dbf0cd1d5cbe0d062  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsac-run-1-f32.c
+ 127ff44000f971b8e7e5ba53d71a55fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsac-run-1-f64.c
+ cccfcab51157cbdfe5b3ce1e69f86f86  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsub-run-1-f16.c
+ dfc52616a58f523908e41a5a4e0f72b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsub-run-1-f32.c
+ 813960aebe71c2622a67c2b2649a8973  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfnmsub-run-1-f64.c
+ c5a398684cc3097ee089765ed1c54ecc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrdiv-run-1-f16.c
+ b080bc38a76d40ca808fbf3333b77a9d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrdiv-run-1-f32.c
+ 46be4b470e57e94da0aff80cfd40faf5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrdiv-run-1-f64.c
+ 619437355f9c7be69b140f55a1b5af19  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrsub-run-1-f16.c
+ 1e74fd51e5a826c65d745f5b405b10cf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrsub-run-1-f32.c
+ 3c441bec61c2bed97be0291c2e20e22f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfrsub-run-1-f64.c
+ d1c66aa9e4cc12b96c9e036e3ac168aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfsub-run-1-f16.c
+ f7584579007624e91e383029b4098dc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfsub-run-1-f32.c
+ 1ce12273e99c9cca6a801b1f4b9ed2e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfsub-run-1-f64.c
+ 4dc889668edfec6a81d565e59b4f8c02  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwadd-run-1-f16.c
+ ded4716aab0f77b043dcf334d75d8977  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwadd-run-1-f32.c
+ 8bc077f6f11a58d8f2c0d968d53dcbb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwadd-run-2-f16.c
+ 689513c500d53ef70dea7ee8d6bd2755  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwadd-run-2-f32.c
+ 74c500447444b56fb97c54f48f041427  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmacc-run-1-f16.c
+ 3d2a7164ecf998191c3df62b3eb98cb0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmacc-run-1-f32.c
+ 9503a935992e9ecaecb773b7e5f8851c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmsac-run-1-f16.c
+ c8ea40c4b9abb00be5f9636824cb84e2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmsac-run-1-f32.c
+ ed33abf9aab8c3dfc9a8ed27753b4be2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmul-run-1-f16.c
+ fd89b4773b8eedf6943915fc7e324ee3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwmul-run-1-f32.c
+ 3c1d868422caee3c370aec6df6fcd5d1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f16.c
+ 12dbee70f513595c141538484edde7ca  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmacc-run-1-f32.c
+ 19660cbbf3b61c67838e558f4b806c60  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f16.c
+ 99b2ebb0aea4ec8f59a77cce1a6130c5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwnmsac-run-1-f32.c
+ f1ef6fa13c480640b814506c7de90cc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwsub-run-1-f16.c
+ 5d4615048131f4bf8808b05375d398e8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwsub-run-1-f32.c
+ 06ed78876e2ec7112f61e7ad4d7ca9ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwsub-run-2-f16.c
+ 8964a9709f073f1429277aa175e9ac29  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vf_vfwsub-run-2-f32.c
+ c588550ddb15f80b017d2c332910752b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i16.c
+ d6776d81d30cc50aab86cdff3bf86592  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i32.c
+ 42bbf76e4625c99754b7532dee819929  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i64.c
+ 5d99730c4d83fa83ad427a9845284a5e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-i8.c
+ 4201a95f317ea67a928f4dca981cf53d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c
+ a8330712e2fcc1ae795a7fba42a8c473  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c
+ 3e6332a27c7a7bcdff5714fa98cfc038  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c
+ dfc1fe43dc67edfdc33c95f227f71ea6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u8.c
+ b13bb596c708ea6fb9ab3881149e2c03  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i16.c
+ 76fec68f4d36c39839ecdfd1dc02a225  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i32.c
+ bd15578e69f21a028ed6ed939d6fd8f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i64.c
+ cc97ac8a2b8817a7574f3957cf3c1fb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-i8.c
+ e6bd4dc2a3293f4d155a71133fd19b06  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c
+ d1cf461282ddaf2cdca70111d9995aac  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c
+ ac0245e07dbeda6045b1003b8bfe4d01  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c
+ 953d9409bd2de2debd25e8ffc668df3e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u8.c
+ deacfb6035d0882d9d6c11eef8fdb9cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i16.c
+ ef05c5bfef88f9925e898f5a734d452d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i32.c
+ 9745bb796b9d72851eb9952421f50466  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i64.c
+ 7afa02934fc3433840cbe479f70b3198  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-i8.c
+ ea70d997fe6a98ff8e4f8c49d0bb66a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c
+ 6a97517d08d68126d9d366db0c63bd70  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c
+ a67f9e0eea6695714c9be105d2481a02  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c
+ 71cbb6b78ff04ce301386e9f130428b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u8.c
+ 120431fe0f19fd18041ebf450a6a4049  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i16.c
+ 8994b4fbe26f836304488a11e64f166c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i32.c
+ 078211b180753b98d636d01a52acbc8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i64.c
+ efa3b3358427b6e92bb3efc1cdeb6f0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-i8.c
+ 25741448765d1c7ed43e519a0de4c169  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u16.c
+ a12b21806c0f22dae0f8f473ea6896fa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u32.c
+ ca341fca818cb99083ad58acfecd8c93  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u64.c
+ 35d91f854633d6f36be1293e9816502c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-4-u8.c
+ 3065818f8b599805b28d573675c0b3ed  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i16.c
+ f78d78e695eb52672b7a5acc1872dc41  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i32.c
+ 3361a2d1c4a05c0a142897ea24b047f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i64.c
+ 383bf3aae639953d66dc67a8bba3d83d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-i8.c
+ fdb72943819106aa01860b0a858869a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u16.c
+ 4df7e42fc12e4c737f42b3859a438190  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u32.c
+ 0f50305a4ecff6c53bc2a49d18dc9bc1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u64.c
+ c0d2dc778bdba70e4e594ada64d93971  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-5-u8.c
+ b14704a09e7f5609b8c11550cdbedfb6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i16.c
+ 4023d7e0ece1452ad88b1cf9588a43a2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i32.c
+ f372c6788e7aa9ed24e4ebabd3a987a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i64.c
+ 7acb2ce18c2729ef24ff69c4cdb44596  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-i8.c
+ c5a422eaee2f9f4bbe8ea2121f35e643  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u16.c
+ b3aa0e8cae8271f3f2414adb4228fc36  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u32.c
+ e667a6f4e365feca79f2b51e903efd4d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u64.c
+ 4d2978a8ac6194e1d031a04e5df5d63d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-6-u8.c
+ ddf54106623ccc30e43522c91db9f08a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-i16.c
+ b18681535fd48293e486f41e6c065f37  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-i32.c
+ fb53469a8a1b87439b25dac95eaf3d1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-i64.c
+ 7cad1bae86f2fa72093dd83402c54133  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-i8.c
+ d571d84f0813f68179888606b63b50a4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-u16.c
+ bb3d21d4284904d9a83d853e198c3cb3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-u32.c
+ 7831e156ccebb41613cce03ab43a93e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-u64.c
+ 3c96aba29fe23754f8f5f20635be58a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm-1-u8.c
+ b887dd7f528aeb0a2bd4efd5e646e7c2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-fixed-vxrm.h
+ 64accfeafbf85b7a47b974f6ecf9093e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-1-i16.c
+ ec0be8951e0bc5f8bfb4b348b1b2906c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-1-i32.c
+ c25dc0173ee9340036f36579446af1bc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-1-i64.c
+ b1630a9f24c66e3aef16ec1533ec9858  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-1-i8.c
+ ee4d762425ee9fa02262080e983ca873  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-2-i16.c
+ 5d626ba2da195a652a2105c23a20ae55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-2-i32.c
+ 88e007e2959685531c378dac85ba045b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-2-i64.c
+ 4f1fb3b33d2e8c4e3ee908d7a745dbd9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-2-i8.c
+ 6bc03863e9396ffec0cab95831663a6d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-3-i16.c
+ d0716e3befd7d8676e3f95ddfc26cf11  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-3-i32.c
+ 68f38cf2fee3b275e68ad7b4c0590852  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-3-i64.c
+ a668be35e3b0365efdcb1644b843f8f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-merge-3-i8.c
+ 2109ccc38c2ba57f3e2529a73346fedb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary.h
+ 4a8dba372a8c3b056810396fc9c97ccf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_data.h
+ ccb9cff4438796fd5c2c015df2204a55  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_binary_run.h
+ 847718238428fcf0d191c5e8f66f2c60  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary.h
+ 0ac4abbac6b69050fc3b142e914fe58c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary_data.h
+ c85dc3b707dc1a4b1175687216f66132  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_ternary_run.h
+ 2f23b92e9170e127daeb5d9860d9767f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-i16.c
+ aa5affb189e4fe4c4c6908a851c52957  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-i32.c
+ 032764f0d87dd7e09ee3369db366511e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-i64.c
+ 458a67b6c4eeec39ad0b594374a7f5ab  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-i8.c
+ f288a5fc807bdc77bee9717143d67597  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-u16.c
+ 860d84262a791e6cc4312140ac229fba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-u32.c
+ 2c4c3e82c67a62f06978342e91910797  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-u64.c
+ ce8703e0013182a56e306f3658c5b838  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-1-u8.c
+ b7e3ca4f3724d970ceeca6f3f0bc52a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-i16.c
+ 809745bc4c77caa3b5cb3565d1c9a239  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-i32.c
+ be91d1e64f790ccf1486d70b78f1d01b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-i64.c
+ c8a01a22da328ed80c4403592308e01e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-i8.c
+ f3adf69dff97d824215d7c29b9fe1a29  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-u16.c
+ 0448402560d1292c749a7c7fab249be1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-u32.c
+ 08e38b36ffaef00487a91b0f19461df8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-u64.c
+ d32f71e1b92cdda6e99df5d2f7aa8348  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vaadd-run-2-u8.c
+ f82d1e3332267f884d6990983f9a5c50  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i16.c
+ 9f3b8184fd845e5425e43d0e12950ff1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i32.c
+ 5e6b1620895fd56e1d1b787b1b328794  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i64.c
+ caaf496913168e97eaf6f183c1947c6a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-i8.c
+ c997257cfa5d9bea648ef7efa7983d37  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u16.c
+ ef81b48e5e8a897c210cce3e761266b6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u32.c
+ 6872270b4229c383721e1e747891b40e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u64.c
+ 16f77494fa58ce0796073cd11ebcf8a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vadd-run-1-u8.c
+ c3bdac68b5276566075c97accbe309b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-i16.c
+ a0c95c64253610a3898ae09fa589f583  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-i32.c
+ d3e59daefd7047dbd6bd8467b4cd211c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-i64.c
+ dfe0d1469cc9bea2a38a44a5b748dae8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-i8.c
+ f45220ac5d3b632c2b85a02c4ba7b949  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u16.c
+ 6c202fff5843e60c2537c34d55f27524  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u32.c
+ fd7186aaa46dcb3f9896b7632d2e89dc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u64.c
+ daed14994427ff6ab8a37961118d2c0c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vand-run-1-u8.c
+ c1e3449c1a3d3eeadf318388de16a788  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i16.c
+ 1b8c0616d5552ab885ce14c8f0edee16  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i32.c
+ 7cdec64d2c7d3cd13aeef2a42caeea89  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i64.c
+ dc2b6bed194fc74b370b25a3dc744b75  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-i8.c
+ 23475411dab833c5215a743009981f64  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u16.c
+ 7ecbf5a0a0464699bf38031217fcf372  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u32.c
+ c6540253f4e8566becbeb0ec46e18999  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u64.c
+ fae1dd6ff530da227dc062a923a9e722  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vdiv-run-1-u8.c
+ b3ddd2fabd78494e6ae8426eaf553c58  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-i16.c
+ f19b30a56162b2266661e15b7c9f54f2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-i32.c
+ 746520e904286c61eb0373eed062a3cc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-i64.c
+ e77f9e1565d0b150acfb84d452a122fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-i8.c
+ c8491bcba1b39370cea742eeded61ee8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-u16.c
+ e67da9cf4c254eb008ce18f47aaac8d4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-u32.c
+ 8f4b590f9ab86cd5293dc42854c49c8a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-u64.c
+ c7c7d52fab2f6dd8f1e74befef0a7903  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmacc-run-1-u8.c
+ 2569250b226683e9e82166426ded1961  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-i16.c
+ f7a399e2773bccb20cd5c0aa20997f7c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-i32.c
+ e0f63a68e3b13adb58ab7b8cddb31c5a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-i64.c
+ 76e05ba883b28b87b2c6ad7b159333e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-i8.c
+ e2f90fd45bc22f0305485026aa6d714f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-u16.c
+ 17040d90105320ec2f1cacda2f439ed1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-u32.c
+ 20a4bbf0a93e1a2fb4fad9ec21a0acea  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-u64.c
+ 07234c87f02b00a519b6805df7fbaf17  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmadd-run-1-u8.c
+ 2b79e264f1dc49a63af57d99ff396f1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-i16.c
+ f30b3319aafd6ecd31ae1419cbf2ddc3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-i32.c
+ bb761d4e9d5897d36d3c611bd5ec2bef  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-i64.c
+ bcf4341174e0dbd7d7d68ef1d9869c41  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-i8.c
+ ac08fe7f5b019b7bdc08edd9e115433b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-u16.c
+ d0a51834ba94e9d277fdeba7b5aa054d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-u32.c
+ e93891976e9d7b283a38355bfc4ec95e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-u64.c
+ 642c565bddef8e4666bddbe3043cee67  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-1-u8.c
+ e2158c811baa45676ac11b74fc8c0cc8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-i16.c
+ 8c0daaa41d2ca5ca4326b9acf07b7c03  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-i32.c
+ 7d55418f453a723400c5b73eeb01c052  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-i64.c
+ 9e4018e0b5f9135b4e8a9c8732c1ecc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-i8.c
+ c076a7fbd7f8c0673e5d3a4a627b78a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-u16.c
+ c80030fd3090eea241059b04eac15ce2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-u32.c
+ a27a441c7767509bda668e7decb95a38  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-u64.c
+ d2885df0e08ae7841dcf17483e5e95de  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmax-run-2-u8.c
+ 50932012d2c876da6d93d9846a8bc1f6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmerge-run-1-i16.c
+ d9b024f7c6997aa585bb508ddc981895  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmerge-run-1-i32.c
+ 0d2d7e5b28d5587108943ef3a9ba2382  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmerge-run-1-i64.c
+ 67f54aef80f2d38a195d44177fa0130b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmerge-run-1-i8.c
+ c9e0d3e065557b4fc3c492151baeb351  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-i16.c
+ a26ea6f800cd4cc286de522caf3f734f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-i32.c
+ 82cfb25b3a508d6596087f549dd5f559  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-i64.c
+ 47815f64ee7f3c2b9eb33c417be63727  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-i8.c
+ b700ad820ffefff6b2f1d630e4df4dda  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-u16.c
+ 0eddb35a04f29187ed018c67723958e1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-u32.c
+ 6923ba1aafd23aae3d9c535613955425  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-u64.c
+ d8c613464c106af994a1910ae50db6f3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-1-u8.c
+ 2e152ca37a7e218863cd8c7aa41b8405  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-i16.c
+ 8d434d7b2e317d3f0570c78a30136d4b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-i32.c
+ a1b9f8ae5b1f332e5b48755b28e40cdb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-i64.c
+ 601bfe399957256eadd78a76da4194d6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-i8.c
+ 3866f4c66171817617db9e41a4a572ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-u16.c
+ 535e49e9df34ef1ca5da4d694786afe2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-u32.c
+ 2b9d8e190f843a7c4a8946cc51f91351  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-u64.c
+ 2de3c2ecf1ee7b545dbebb663de55351  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmin-run-2-u8.c
+ 161a80cac55bf528d30b42422a55250c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-i16.c
+ a87b1325bcd418d2c35ec3ec414d2efb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-i32.c
+ af39bb531df9d78fb100a8bc074d5527  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-i64.c
+ 2b975a93eaf661237da5350f1da35b87  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-i8.c
+ 5483ec69e3403d357acce66f98b2a214  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-u16.c
+ 8a062701030c2179b34b5cdbe2e5affb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-u32.c
+ 066197fc9e9481f3a6397992b977191b  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-u64.c
+ cfeabedcaa487c67a2318497a6bd3a39  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmseq-run-1-u8.c
+ 3cc032015168c6b3794786d6dcde9ed4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsleu-run-1-u16.c
+ 31db282cecb214965122ecd6a679fc34  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsleu-run-1-u32.c
+ 22bd7911fba0c179f8ac7164b391afa0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsleu-run-1-u64.c
+ 5e9d9eb5c0d7a92ccb7d05968048fbfa  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsleu-run-1-u8.c
+ feb1c042565686ae5320d1f85f40d64c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmslt-run-1-i16.c
+ eba89c257c6a48dfedc0a0d2549e4755  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmslt-run-1-i32.c
+ a3fa1a1070feaa2a16a19d13968894f1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmslt-run-1-i64.c
+ b993c90b209864deb26293adbcbf4d47  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmslt-run-1-i8.c
+ 443e3e725a8805539e6f6f0707e24e23  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsltu-run-1-u16.c
+ de0be748ebac41beb791e67a7e969c93  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsltu-run-1-u32.c
+ 5c700fdc87c3f4d8d98a4b5d5de51597  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsltu-run-1-u64.c
+ d6f0fade1f4c13cf30fb858c67176891  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsltu-run-1-u8.c
+ ba07450cba89795d0ffb8d40b885b494  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-i16.c
+ 2318de34fc5b6b3c00d6a2024b706bb0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-i32.c
+ 39dfa43d1b70cfe850fcf48eb0a6f84a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-i64.c
+ 367b5f1a92121de3fb3537b7c96e018f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-i8.c
+ 22c96a134d1c6f1fc7b2a5f9f563ebba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-u16.c
+ 8e342c536d74decb8ffb365614d41a3d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-u32.c
+ 787271c522d64daefb3b0b87c28259e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-u64.c
+ eb3d40ba506e2158ad71b1267e423ba0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmsne-run-1-u8.c
+ 9076cf8f652bb87f5614bdec4824fc2f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i16.c
+ f3610778d536959133cfda7115cd7ca8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i32.c
+ 8b6a8f2a6c0bc3be747fd220041e321f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i64.c
+ 7422ef85e90b4a00f37f77f709ef9219  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vmul-run-1-i8.c
+ b832f6d37389d43e947365b3afa7e451  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-i16.c
+ 0023c701fda95f8b19391542eb19766f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-i32.c
+ d7f0c9531f0771e19f9eb4571fc4aaf3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-i64.c
+ 8091679f354bf5245d5099a2132a44e3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-i8.c
+ d38cc5eacf38ee8c46ddfc6741e55f49  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-u16.c
+ 4b305da1750a150804f656236c4c6d88  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-u32.c
+ 5c57d808cb14bf88e534144384ff9d84  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-u64.c
+ 9e526ccbd489e17b36c4700d53b1ec1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsac-run-1-u8.c
+ b32ec45e048288dd660cb7bd9fe39ca6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-i16.c
+ ef295077b13dabf5dc84cd05ae8b91ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-i32.c
+ 569a70c81bb061371e217c7a3cb211bf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-i64.c
+ 0aac830e5d28f3c7518bc5f1cdd9f641  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-i8.c
+ 9ce42312010ca18779c2a27045c2309c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-u16.c
+ 7d5bc1eff47686e1367db14ffa3bc0b9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-u32.c
+ e28808b6d3f873aab358c141409b2f59  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-u64.c
+ e99e237eda9462011999d0559d609d0e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vnmsub-run-1-u8.c
+ 90a5b2f99307ef1d58eb01275ec12ab5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-i16.c
+ 73f8419d7d51dd6d9657973ca7153119  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-i32.c
+ 6559ebf5f269f0c83f81f6a5726fdaf8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-i64.c
+ 700a3ee7e26d54bf41c1ae316cf8e81e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-i8.c
+ 051cd42c80b1154f8220053f6c96d523  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-u16.c
+ 7245f5e0966d792119ec51a8ebb291ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-u32.c
+ 4cd87b01be0bac5ab9dec32a29319afd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-u64.c
+ 1c1b89506ddf16d88d008bd2d69edd40  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vor-run-1-u8.c
+ 04a11915eeea04d07f32ceac004e5c81  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-i16.c
+ 637eb769575e9055254c5318bffb1fa4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-i32.c
+ 5e1d5d946c58f496e52c83600b4886c6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-i64.c
+ 3b3103d073764431091e6475c492d359  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-i8.c
+ 28a59c4b3d2169f5971dc4c21c97831c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-u16.c
+ a73f2841fb1cfbee8e7a74989aa0b037  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-u32.c
+ ad7761f0fe4a6a519e1c227545379c9f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-u64.c
+ 27b8b252ce77a531734c2a9d419d8124  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrem-run-1-u8.c
+ 8937d0b839506b10a763ee6df5caa4cd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-i16.c
+ 533eedb668b26c7e7bc78800d6f64c07  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-i32.c
+ cc285905b88b66b772a37b10056a36dd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-i64.c
+ ab1ea727d2290cb4de9b7e7d2093eec9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-i8.c
+ 0db874f526e1b30f0acdf8ca2319fadf  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-u16.c
+ fdff265e90fd902eca5c517ac99fba20  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-u32.c
+ 8fad85d94c2ebb8b2c7a97448400e42d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-u64.c
+ abd281c20ca983dae4ef633a58d18c7d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vrsub-run-1-u8.c
+ 6229cd9e08933ce479a9cb59564c1f79  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-i16.c
+ a5dd444163542d9f25596fc735060332  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-i32.c
+ 1431e7bdad0e4afe39ac3b3fec7d08b4  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-i64.c
+ ca1c1eba4bbdc2084d01e4b4ab1b3601  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-i8.c
+ c49b5794481494dbda1c29ece2adec2e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-u16.c
+ df9e0c9800ce12120d8d53bf84d3105e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-u32.c
+ 501ae6cc28ba3b917c2de06df7726a27  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-u64.c
+ df6190dacbf26bd43b381290da73d10a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsadd-run-1-u8.c
+ f71373853af9db78c072e214fac56ae9  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-i16.c
+ 7a6832cbea7932d3c304de68045bf22d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-i32.c
+ 300cc2ee36db36796f17e7f0476f3113  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-i64.c
+ 130549535a6c8e96bef150d83049d676  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-i8.c
+ 2c413baef58c32fa638317386bb6adb6  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-u16.c
+ a6db8ffba7d62150d3bcffc5ed474cdb  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-u32.c
+ 95acf3267aef2576362e82f345479fd5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-u64.c
+ 4c57c0630d94eee378a1a88ab7de195a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vssub-run-1-u8.c
+ 63ecf62c70647f5af85690b50449a4a3  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-i16.c
+ e0a029ed9e4f9f4ab4383ebb4a63f046  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-i32.c
+ 7ec38b653f84c7041b0b862f361c9822  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-i64.c
+ 243226f9f57a3ed67d4295c3232d1ea7  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-i8.c
+ 4769e8321800efc6a2c6e69fb16ca80f  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-u16.c
+ 10bbd930713d9d02d87a6861d8201dc0  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-u32.c
+ 0e5d7afeb387b9c36c90fcf1d8fd7134  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-u64.c
+ d8e11260f6cbaa9942a95a889d2d3dcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vsub-run-1-u8.c
+ cd9582a571be922d7f5168551101aad8  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vwaddu-run-1-u64.c
+ 2da13652edcde5941995c901f9ba3fe2  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vwmaccu-run-1-u64.c
+ 7227b4aa0c31514a16902df6b7f2b746  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vwmulu-run-1-u64.c
+ ad1022e3817bd53fd617f6f5d70c099e  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vwsubu-run-1-u64.c
+ a0289a49fbec6d012c69ed3175a98cc5  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-i16.c
+ 8f2d02d5d8980d2c4e052c4379664339  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-i32.c
+ 9b067e08dc0bd77cc07cc4461f85c9ef  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-i64.c
+ 52c0ac3c4909c902189a78dd9fc2bccd  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-i8.c
+ 4b4e01ade183cdfeee237953674426a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u16.c
+ 8f2d02d5d8980d2c4e052c4379664339  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u32.c
+ 8d7233deaa2c5490a9767684770727ae  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u64.c
+ 840249b053ac4f1f4bb99aa3c0ecdc82  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_vxor-run-1-u8.c
+ 042f499f6f2875387a35ceff604c562d  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h
+ 5b6b67defbdc3e91c7af0a868e29d490  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h
+ 817a372ed3135f20efb96a1ef454973c  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_vx_run.h
+ 91e3cccb4807b06cfb9b970d64abd56a  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h
+ 68c2c33e731d54fe3dbede7e8039c3fc  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c
+ a016bd5873c1f292b96e8dc99e7e6821  gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwsubu-run-1-u64.c
  836cc87f131d9d080542fe18ca8f7841  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-run.c
! aeb0d50dcb40664d3bf3d024edf8eed6  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c
! 4643fde202857860772ea93f75bc542e  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c
  b3a10f963daabd4c0545bcbe870d8b78  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/vec-avg-template.h
  37f00fa125caf733543d0cf3aa59e817  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-1.c
  b352fdfb9e52a7c01a1b2bedc6b37b32  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen-10.c
*************** a8b154f3ebc705a72dd58140a6419d33  gcc/te
*** 91022,91035 ****
  c4ce5811a887d193e1ff4f3353c39632  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-6.c
  8187bff72b496df98c214a34eb4957eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-7.c
  c3a6ba3dd89b27bf15bc5242257c3228  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-8.c
! 406ced79391c090487c50169c76abfa6  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-1.c
  526e5a62cb0908c681251c17247e28e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c
  9e8ce3e7531b579d60705be38d675d10  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-3.c
  5bc7e93977e41e71ef2b5104d50d3ad5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl1024b-1.c
  bb696bb70ba5d6a5cf32c3bc353b2245  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c
  77a0049927e216f53855d1654e96bf1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c
  4977551e9b49addfd8e8e4be79842ad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl2048b-1.c
! 005422d27b46987f97b39f2283c2de34  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl256b-1.c
  9c95fed71effdbc2f37f97fae11282b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl4096b-1.c
  6671a333c7d6186112a5915ed44213b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl512b-1.c
  c154a520867dfdc08eea575ce160e4a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-1.c
--- 102414,102427 ----
  c4ce5811a887d193e1ff4f3353c39632  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-6.c
  8187bff72b496df98c214a34eb4957eb  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-7.c
  c3a6ba3dd89b27bf15bc5242257c3228  gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_run_zvfh-8.c
! e3913554dd183888dbead2e30810963f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-1.c
  526e5a62cb0908c681251c17247e28e9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-2.c
  9e8ce3e7531b579d60705be38d675d10  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f-3.c
  5bc7e93977e41e71ef2b5104d50d3ad5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl1024b-1.c
  bb696bb70ba5d6a5cf32c3bc353b2245  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-1.c
  77a0049927e216f53855d1654e96bf1b  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl128b-2.c
  4977551e9b49addfd8e8e4be79842ad2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl2048b-1.c
! da73e0f0d3b0226590d73693b27b6e03  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl256b-1.c
  9c95fed71effdbc2f37f97fae11282b2  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl4096b-1.c
  6671a333c7d6186112a5915ed44213b1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32f_zvl512b-1.c
  c154a520867dfdc08eea575ce160e4a0  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x-1.c
*************** d5db82e84e090e7af1a8e302f7933759  gcc/te
*** 91039,91048 ****
  5788bfee296b1ead3262a21866b49a8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c
  64040c24c8d11cbac79e8ee90c1a8555  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c
  85d4ff61aa53dcdb909003374b62aa1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl2048b-1.c
! 1f10ce1b92f30dcaad1fab75e9adee08  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl256b-1.c
  abd8a3184e218e70a4a64ddd64e8be65  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl4096b-1.c
  7591e6439b1ce8bf6516a32d504618a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl512b-1.c
! 5e6f7d6b6f640248df93a502d81ed96f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-1.c
  b127736d78362b7857b7b2c0aa215df9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c
  06a773055bb47a1a9d0026cb5a239ae1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-3.c
  82c5727175f76a8933af14d4f269bdc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl1024b-1.c
--- 102431,102440 ----
  5788bfee296b1ead3262a21866b49a8f  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-1.c
  64040c24c8d11cbac79e8ee90c1a8555  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl128b-2.c
  85d4ff61aa53dcdb909003374b62aa1d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl2048b-1.c
! c41b9a25857076a8b6c28a92df10b77d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl256b-1.c
  abd8a3184e218e70a4a64ddd64e8be65  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl4096b-1.c
  7591e6439b1ce8bf6516a32d504618a5  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve32x_zvl512b-1.c
! e68d4be09ffa85175f231425fb911e14  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-1.c
  b127736d78362b7857b7b2c0aa215df9  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-2.c
  06a773055bb47a1a9d0026cb5a239ae1  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d-3.c
  82c5727175f76a8933af14d4f269bdc4  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl1024b-1.c
*************** f4b66618991adc6ed1836af6b7ab1696  gcc/te
*** 91052,91058 ****
  36da0e50a1f4295e4a69e2d8dacbffba  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl256b-1.c
  6c64ac6da33d722229c95d58e2aa6a3e  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl4096b-1.c
  f674e95fd20c15bbb4b89561a30bce95  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl512b-1.c
! 96d7bd659933c8f23a8d6059fc78274d  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-1.c
  ab3b34c3c66af1b657d522e1caceae51  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c
  e775fc2017ad37c7d2c4cfe4ae5b0515  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-3.c
  5914484ae94b4c3fa439068a6ee9593c  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl1024b-1.c
--- 102444,102450 ----
  36da0e50a1f4295e4a69e2d8dacbffba  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl256b-1.c
  6c64ac6da33d722229c95d58e2aa6a3e  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl4096b-1.c
  f674e95fd20c15bbb4b89561a30bce95  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64d_zvl512b-1.c
! 5cda479569d800d05eef9efe149f1bf4  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-1.c
  ab3b34c3c66af1b657d522e1caceae51  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-2.c
  e775fc2017ad37c7d2c4cfe4ae5b0515  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f-3.c
  5914484ae94b4c3fa439068a6ee9593c  gcc/testsuite/gcc.target/riscv/rvv/autovec/zve64f_zvl1024b-1.c
*************** a80e25331725ae6098c3261099a7ef2b  gcc/te
*** 91102,91107 ****
--- 102494,102502 ----
  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
+ 818561775093434bd47685b5a83249e5  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc-sibcall-indirect-1.c
+ 39dd3a50f30a057c886036aa16f2e34e  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc-sibcall-indirect-2.c
+ 92698a9261b204d6754409365c7fcb3b  gcc/testsuite/gcc.target/riscv/rvv/base/abi-call-variant_cc-sibcall.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
*************** a12844f0084e0e0246932d95226af1bf  gcc/te
*** 91320,91325 ****
--- 102715,102721 ----
  b06ed08bf3da5416e1d78a9dabf45320  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-4.c
  815e6f8ac54e92d2fc4ae4690f90efd0  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy-5.c
  a6a0efbccb5c7ec4343d758307d8a44a  gcc/testsuite/gcc.target/riscv/rvv/base/cpymem-strategy.h
+ e79abad469c6a31420d992a282467962  gcc/testsuite/gcc.target/riscv/rvv/base/crc-builtin-zvbc.c
  f8d68eda8e75610f3abd8282856cc66e  gcc/testsuite/gcc.target/riscv/rvv/base/dup-1.c
  4b95c2c6a750dec788a04b8733aedbfa  gcc/testsuite/gcc.target/riscv/rvv/base/dup-2.c
  acb83c56941b40cd27490db738df6ef7  gcc/testsuite/gcc.target/riscv/rvv/base/fixed-point-vxrm-error.c
*************** fcd85807d47d1aa732644c6bd29bc460  gcc/te
*** 91371,91381 ****
  b36ecfab5f19f93cd5be02a5babd866a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-46.c
  fab92414b9a7c56752b0ea31adced714  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-47.c
  a55c02c67f3b358d7e6da6a7550ef5f6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-48.c
! eed554b49a3c8232bc7bd92ff5ac0eb0  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c
  896f1d3dbe5b5af8ebd6303a1de7c12c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-5.c
! 4f6996eef065476942ef23dfbebf269e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c
  02f331cbc7b14fa4be5724465d6b0457  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-51.c
! 4aad4c2238cb796585547629087bf63e  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c
  93ab4f336e951a11c1ab696d53615540  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-53.c
  92a06e1471b270521b5e87369cb8aae6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c
  44da02ffc9cab20c646b37a4dc7cfe41  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-55.c
--- 102767,102777 ----
  b36ecfab5f19f93cd5be02a5babd866a  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-46.c
  fab92414b9a7c56752b0ea31adced714  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-47.c
  a55c02c67f3b358d7e6da6a7550ef5f6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-48.c
! b08918e67de1bbe4f071623126637fd1  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-49.c
  896f1d3dbe5b5af8ebd6303a1de7c12c  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-5.c
! 200c8d66adfb6fde6e86e4113b84622b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-50.c
  02f331cbc7b14fa4be5724465d6b0457  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-51.c
! 3bcd0d7f144f54f0f2b3359c3cfdd26b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-52.c
  93ab4f336e951a11c1ab696d53615540  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-53.c
  92a06e1471b270521b5e87369cb8aae6  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-54.c
  44da02ffc9cab20c646b37a4dc7cfe41  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-55.c
*************** a1b3434fd11a0481b121c48ed2900eaa  gcc/te
*** 91399,91406 ****
  8c91437fa7b567afad5bfbc8bdc85f90  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c
  07ed1e2a91dfeb3efc3559a2d1cda889  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c
  1923a5b6a5f592a57920be56f0f46f37  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c
! 16ff834f10fe54188b5e6c19c61fc08b  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
! aef9064e046dcc8ead4d17055fcf7504  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c
  ce84e742fbfec32a98cefdb30a7de997  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c
  9e0506a9831857769313ef1dfd4a357f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c
  efcfd0a5b252d8eb20e72455c8c11751  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-8.c
--- 102795,102802 ----
  8c91437fa7b567afad5bfbc8bdc85f90  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-71.c
  07ed1e2a91dfeb3efc3559a2d1cda889  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-72.c
  1923a5b6a5f592a57920be56f0f46f37  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-73.c
! 221b4ec6df47580950a6ebd735a51c85  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-74.c
! fe34a93a6b7cc99cb65d142eff6b7cbf  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-75.c
  ce84e742fbfec32a98cefdb30a7de997  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-76.c
  9e0506a9831857769313ef1dfd4a357f  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-77.c
  efcfd0a5b252d8eb20e72455c8c11751  gcc/testsuite/gcc.target/riscv/rvv/base/float-point-dynamic-frm-8.c
*************** cfeb2916d3c635fdc870fa4dd68db703  gcc/te
*** 91613,91619 ****
  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
--- 103009,103015 ----
  7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
  3e2ec7778c99a6a0261ab2f4a6450f3e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
  1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
! 096b804168636ee17c9d4636018e26fb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
  ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
  01113869871bb1fbcb103fb4d9b60577  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-23.c
  dfb14b9db17d26fe2fff40418d1cf459  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-24.c
*************** f10c8a28c2ba2edec9fa062fd123d3b4  gcc/te
*** 91646,91654 ****
  8a2027e07eb7430d366baa6fba6f7079  gcc/testsuite/gcc.target/riscv/rvv/base/pr112743-2.c
  0c46defe129bdb46798119637cb7a2e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-1.c
  e07baf5d5588ed4ad8db81844c63e8ef  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-2.c
  7d23412f70ebee5a6d681dd440b5cef3  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-1.c
  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
--- 103042,103052 ----
  8a2027e07eb7430d366baa6fba6f7079  gcc/testsuite/gcc.target/riscv/rvv/base/pr112743-2.c
  0c46defe129bdb46798119637cb7a2e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-1.c
  e07baf5d5588ed4ad8db81844c63e8ef  gcc/testsuite/gcc.target/riscv/rvv/base/pr113420-2.c
+ 2fc8174572643a76175313a5aada78fe  gcc/testsuite/gcc.target/riscv/rvv/base/pr113666.c
  7d23412f70ebee5a6d681dd440b5cef3  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-1.c
  cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
! d806ad060ae7740379c2b929ee5e88eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr113829.c
! 101dd11c83f09bca39560af6bddf7b96  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
*************** c68a73138459484ead0cddce6ce27d08  gcc/te
*** 91684,91690 ****
  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
--- 103082,103097 ----
  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
! 9e9d5697b1d1ba9cb4041f8ebf17039b  gcc/testsuite/gcc.target/riscv/rvv/base/pr119115.c
! abe5cb852d5c8b368720c2010f7dde5c  gcc/testsuite/gcc.target/riscv/rvv/base/pr119164.c
! 3086321c9a12d3eecd8f1f9ad8ecac7a  gcc/testsuite/gcc.target/riscv/rvv/base/pr120436.c
! 250f19182eb5aac9b6a01d7c594e8f5f  gcc/testsuite/gcc.target/riscv/rvv/base/pr122270-1.c
! b0032fffb6e1860da7ca94cd7252c411  gcc/testsuite/gcc.target/riscv/rvv/base/pr122652.c
! 1fb93600882c294d9641935b1aacb938  gcc/testsuite/gcc.target/riscv/rvv/base/pr122656-1.c
! 64bada55e64f1bf5909df579653ca6f5  gcc/testsuite/gcc.target/riscv/rvv/base/pr122656-2.c
! 2fb442e926debbe3c4b2f0853b8339dd  gcc/testsuite/gcc.target/riscv/rvv/base/pr122869.c
! 2b4a47169174b6b026d7e3f6b2462760  gcc/testsuite/gcc.target/riscv/rvv/base/pr123626.c
! 15b1508bb10427fc88af9cfc478fb814  gcc/testsuite/gcc.target/riscv/rvv/base/pr123780.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
*************** dfab2d120358e9347328896588f09d7f  gcc/te
*** 91723,91750 ****
  f0ef727ad421676bfc8524d445606492  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-2.c
  6c7cdecd10fb8854fb71be95c2dd58c6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-3.c
  8c21b304dcf8bfcea2ca1180cbeec2d2  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-4.c
! 40304c1228c3f33ee86cb65b66b166f9  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-5.c
! 49814f1ed128714363358aa09ed20c73  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-6.c
! 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
  a85c20b09341fb9b656cbb4e2cc40cc5  gcc/testsuite/gcc.target/riscv/rvv/base/spill-11.c
  d67966f60af6ffd06d6dfd62500deefd  gcc/testsuite/gcc.target/riscv/rvv/base/spill-12.c
  8f5c57aeb751465e3f56bc4345add388  gcc/testsuite/gcc.target/riscv/rvv/base/spill-13.c
! cf8b6dc4083b1e4bd545fbaf5e9c384f  gcc/testsuite/gcc.target/riscv/rvv/base/spill-2.c
! 96ab399af80c81b130ecd4fd1539c3c6  gcc/testsuite/gcc.target/riscv/rvv/base/spill-3.c
! a9ae98c3cb85eb97221a7f243a49c2d5  gcc/testsuite/gcc.target/riscv/rvv/base/spill-4.c
! 4b8d7ede136e8fba098bc6aa2b0ed72c  gcc/testsuite/gcc.target/riscv/rvv/base/spill-5.c
! 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
--- 103130,103157 ----
  f0ef727ad421676bfc8524d445606492  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-2.c
  6c7cdecd10fb8854fb71be95c2dd58c6  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-3.c
  8c21b304dcf8bfcea2ca1180cbeec2d2  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-4.c
! 6664771566394a52d726e74dda9c8b1b  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-5.c
! 6daee8ed72e60f230e10827d13ea871e  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-6.c
! 13f53785a7384e28366f1fa2fe211302  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-7.c
! 24d9548de200fc4e0a34539da4df8b00  gcc/testsuite/gcc.target/riscv/rvv/base/scalar_move-8.c
! dfa7bdc703178385c7e9fe50842850c2  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
! 3fbbfac9be409bc2caba5939fdfd1b9b  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
  3dc45f55b6b22fe5bcbfcb754d4d19c3  gcc/testsuite/gcc.target/riscv/rvv/base/spill-10.c
  a85c20b09341fb9b656cbb4e2cc40cc5  gcc/testsuite/gcc.target/riscv/rvv/base/spill-11.c
  d67966f60af6ffd06d6dfd62500deefd  gcc/testsuite/gcc.target/riscv/rvv/base/spill-12.c
  8f5c57aeb751465e3f56bc4345add388  gcc/testsuite/gcc.target/riscv/rvv/base/spill-13.c
! e8ea0f42bb8a05b5e45a37e22183f419  gcc/testsuite/gcc.target/riscv/rvv/base/spill-2.c
! 71c4308c0ce5a9314ceb3babd5d42b47  gcc/testsuite/gcc.target/riscv/rvv/base/spill-3.c
! 52ccdc710e663a07c5765bedff23fa22  gcc/testsuite/gcc.target/riscv/rvv/base/spill-4.c
! ea51b3046d27cb4232083ad58e342335  gcc/testsuite/gcc.target/riscv/rvv/base/spill-5.c
! 9cd6cc8699dff55b5e50570afdb258f4  gcc/testsuite/gcc.target/riscv/rvv/base/spill-6.c
! cd7d71531d3a4db16672ace20df690d6  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
*************** bd5fe2ac8c7ea125bd674e1aa8150399  gcc/te
*** 91916,91922 ****
  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
--- 103323,103741 ----
  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
! 2865ee85ce614d77ff279bf2235dfe51  gcc/testsuite/gcc.target/riscv/rvv/pr120297.c
! 999cc44bdd25aaa38b1dfd62ba9b84ab  gcc/testsuite/gcc.target/riscv/rvv/pr121073.c
! 86731b52476b518fce91bf0158bbd223  gcc/testsuite/gcc.target/riscv/rvv/pr122474.c
! e1f5047958163bd4a7c56181c616e105  gcc/testsuite/gcc.target/riscv/rvv/pr124038.c
! 6fea082cc5d5719bf16939b0f1ec6357  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
! 5478c0c8327ff5286acd21adf7801a3b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_128bit_vector.c
! 7474e3b118ab01afd89adaf5d29c7e26  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_256bit_vector.c
! b0ad6114de72318c274762ca3a6f767b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_32bit_vector.c
! 7e9ec5a2da14b05732bed143b69a4636  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_64bit_vector.c
! 541280295666f9512b838b5429929d57  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_all_mixed.c
! 9bbd1b78c5bc17ebfa5368400a8cb1fe  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_call_mixed_function.c
! 111e782212bd1809a62e53ef4d33241c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_different_vector_elements.c
! 25846eff84bc60cc7d9abaf90f698ff7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_different_vectors_struct.c
! 4bbd167dc1bb6e4cd750ab4f6e7ee570  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_different_width_vectors_struct.c
! 199e86a48014de090ea51ff1ce92c8c9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_equivalent_struct.c
! 2856676d7bbcd9727a6fad3c81058624  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_four_registers.c
! eea8dcc6cd95613a7149e59355fc6be3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_fp_vs_int_vectors.c
! 7ea344e10546d70a7e92bee8154f8cfb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_large_vector_small_abi_vlen.c
! e69214563f73f872edddb111942f7a87  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_args.c
! 1fa31682fcf5131814898601fa016e92  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_float_vector.c
! 83c686cb872627ce8f57fbb67d872e07  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_int_vector.c
! 77885e9e0d91dc965807e324298090ed  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_struct.c
! 1fda6b4f65108534c1e9967bdb424796  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_struct_advanced.c
! a9b2ee4d55bfd0e36f27b22300a04772  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_mixed_vector_types_struct.c
! bb7964e2a98216faf703785c33a2c407  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_multiple_unions.c
! da8d24a47ca04e39b9ed568225610595  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_multiple_vectors.c
! eb9f985161bb6da6319c4bfce811f0f3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_multiple_with_small_abi_vlen.c
! 099be1ff9a28a22972d161568460fe98  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_register_exhaustion.c
! f2b6de3df030ac9343a4ed7ddda87479  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_register_exhaustion_mixed.c
! 33bd7da38fbed940e43967a370b27811  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_register_pressure_scenarios.c
! 7a8c1b58ae81dbf36340edd57a03471b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_same_vectors_struct.c
! 66eb7c5fd79659f92a8a8e5db5e29902  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_simple_union.c
! 8f151310bbc16d1573f70c26ad4d4a46  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_single_register.c
! 783b26083641ff6496ce98e60f03f08d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_single_vector_struct.c
! b8dea25f4236c2922f58dc8082facc56  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_struct_different_abi_vlen.c
! 9a028907f0eb3163150e67d4a3675dfe  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_struct_eight_128bit_vectors.c
! 6d53dd6cf305b4b2b8bc038fc15aec95  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_struct_five_256bit_vectors.c
! 65d2d9d9a211b7999cbd8244741828a8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_struct_four_256bit_vectors.c
! 47becaf99e673537762df1f73c70c567  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_struct_nine_128bit_vectors.c
! 596eccf89f42254e375eb50be7964290  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_two_registers.c
! d4d6b876af2e231e1f0c1e22154a8ca9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_vector_array_struct.c
! 47b21f14bf3a8b9fa3b8fed8d03c7d70  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_128bit_vector.c
! 1bf0fd99a1a8e9062e0180f4f399e248  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_256bit_vector.c
! a0e2f67770887e1cb422cae18d2d6366  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_32bit_vector.c
! a6a30eb0151d447199548825773d0d12  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_64bit_vector.c
! c6045ca74e49e0636fb2ba108f844004  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_all_mixed.c
! adefbf6dc9a60f069a3bb3b3a9616781  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_call_mixed_function.c
! d04fe8b2547b6cf9886549294ffc1374  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_different_vector_elements.c
! 0dccdcfb59e601d20f10c86cdfc8596f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_different_vectors_struct.c
! 627b2ddd443e1e91415d484572d0e1eb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_different_width_vectors_struct.c
! ec18864d2e4460cdd11a1b5ea0a44ebd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_equivalent_struct.c
! b4327304a7a74765a44a9e9b0ad48860  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_four_registers.c
! 8ce84ed7eebc8439889601d932e592f9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_fp_vs_int_vectors.c
! 07f5c17d5f2e6eea2ae3710cfb14306d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_large_vector_small_abi_vlen.c
! 48a43a296eeec308eb7e7a85c656dbf7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_args.c
! fd41639aaac4827d5af2fed7c17270ee  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_float_vector.c
! 37cb2186b8d9d7bb38713847d095fcd4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_int_vector.c
! 0be369635887cb5a854ad14c48b57b5f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_struct.c
! abaf8065dd10773d34a0f2dfd0927607  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_struct_advanced.c
! 6254c818e5edb9c153885cfe74a05000  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_mixed_vector_types_struct.c
! f408732f0e4ae7aea06a483eff3b1843  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_multiple_unions.c
! e2d90315d0c5a4c40c1dbea8d7b4eaed  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_multiple_vectors.c
! c7fd642cb7cfd6664494ec865baa7540  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_multiple_with_small_abi_vlen.c
! 59e23eb3308e403418980784117bcf6d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_register_exhaustion.c
! 809ae81cafe0c31958d16ebe9c7eac86  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_register_exhaustion_mixed.c
! 818aeb910160b056d87f57ab13d41bc4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_register_pressure_scenarios.c
! 3b7a8fec1a2208ba9a323716bcecb055  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_same_vectors_struct.c
! bd951dea40fcee8c28567885ccdef761  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_simple_union.c
! 54f425c26233eb013dd52b94519360c2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_single_register.c
! 416d5ad48de5c38ba7b507576d827d07  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_single_vector_struct.c
! 1f5cb9b19a95a7f6914f3c3d99f78388  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_struct_different_abi_vlen.c
! 65343a798ae5e6e72fd99c2dbc499509  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_struct_eight_128bit_vectors.c
! 1b5c4d50ff203108316f630e226378ab  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_struct_five_256bit_vectors.c
! 84983a1edc79caebf9155dc7e83e5ea0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_struct_four_256bit_vectors.c
! 0634550fb8b0cdfaf456b2699efa69bb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_struct_nine_128bit_vectors.c
! 4fc1271d4ada5ad825d0e62a63e889b0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_two_registers.c
! 4cbe5fdca552432bc57f0773defeadb7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-64/test_vector_array_struct.c
! ddab59d25be90d1ebb0aa5d48bdf6690  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_128bit_vector.c
! e88f6e059543afe309c06e8187f4f299  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_256bit_vector.c
! 7b9e907ced4ee6b53d3d58b96ab9a9ee  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_32bit_vector.c
! 77b6ad45d3ffd814d8c3f53f669e0761  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_64bit_vector.c
! 15f9591f2b8584319117a25b337d369e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_all_mixed.c
! d0a8e683ec42bedeb8773ebec06be9bd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_call_mixed_function.c
! 4ea0edfdae33f5653f12e94d43d8d3d2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_different_vector_elements.c
! 2060bc46d6ca8fd7f59d3709e619f736  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_different_vectors_struct.c
! 1520b1e29dc78f334965a311776a8941  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_different_width_vectors_struct.c
! f19fe9f535f23183fa6db7fd9da32768  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_equivalent_struct.c
! f8f39612baad29b5cf52a1611a37aa7c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_four_registers.c
! c652628c9089e05a92d4c5688c49248d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_fp_vs_int_vectors.c
! 78d9919db6c060869b88b28e25595b8d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_large_vector_small_abi_vlen.c
! d3fde8ed08793d9488d22e7fe6e34e9a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_args.c
! ef46a95e41d9a5c745a820ab6dd52230  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_float_vector.c
! 10874283f0ff7b13b63f86e29d41bbbb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_int_vector.c
! e718b95149f48a32b8aceeede0784287  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_struct.c
! 26d01e6b8ba69168a6c8ebde80bd7fa1  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_struct_advanced.c
! 6bd493256a1d6313be15ba82fe398ad6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_mixed_vector_types_struct.c
! 93272df38a396eaf42a4d94074485e2d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_multiple_unions.c
! 9084727f789a73a3e961531e314ae587  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_multiple_vectors.c
! 3677bcf88a9a58a8ac983d84f96752ee  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_multiple_with_small_abi_vlen.c
! 7a6a595af8e381e03983e5a5c5295e9a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_register_exhaustion.c
! ac570668c8ed60b421e3902a82e88a73  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_register_exhaustion_mixed.c
! ef1249c6731568c324cabd1f5829b1a6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_register_pressure_scenarios.c
! fa46d30ad339710e506ee85b1dab5305  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_same_vectors_struct.c
! 1b81826deacd466c3fb6caedc18402b9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_simple_union.c
! 2242bc485c22465b6dfc3e0c4f430cdb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_single_register.c
! 42bb0b1243fe31f7cf348ce1ff0d5c61  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_single_vector_struct.c
! 7093b7b40e0e93f305cbdedf8b52c515  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_struct_different_abi_vlen.c
! 344a78e1341594ed8f64a0e5dfe7cd9f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_struct_eight_128bit_vectors.c
! daeeca91ac739e078e30de0ee86bd188  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_struct_five_256bit_vectors.c
! 7985ef368e6abf61be2cb85274fa4e45  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_struct_four_256bit_vectors.c
! 7fce8b38b5846487db7666095d6e2a68  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_struct_nine_128bit_vectors.c
! 0acb224c78253bbd3d00c894e0f3c5ef  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_two_registers.c
! 896bc78be86065361f6241d2df6647b2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-32/test_vector_array_struct.c
! a4d51739d08ea60ccbfe31f8b1330e52  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_128bit_vector.c
! b84086a8b194b3a8dcd6816419eeee4d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_256bit_vector.c
! de16213d5a10b3afbad6d5ac8c34351d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_32bit_vector.c
! a041118041a60d8037011b86d7a5b3fc  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_64bit_vector.c
! 229c4aa231cc5388a1160b34196cec50  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_all_mixed.c
! b6281d639c0adcff8b60f0bfa5185e24  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_call_mixed_function.c
! 997d8a40972f095c91dbac89e70ed2f9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_different_vector_elements.c
! d0fd6507f01ba7b7dff9ac3979de9b65  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_different_vectors_struct.c
! 2707002c9fcef336ee66c89c56d44118  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_different_width_vectors_struct.c
! a3ca50dd9e75b6bc7f44a6bb0f163f65  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_equivalent_struct.c
! fdeddfc66cb9f43fa892f8f4555fcab2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_four_registers.c
! c11f4e6a9ce52313a44b2732560dde1f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_fp_vs_int_vectors.c
! 443644fc2bd182597e1c18651ada81db  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_large_vector_small_abi_vlen.c
! 84c256a4e8ad0ff8cfe515dc75f15341  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_args.c
! 47c616d0853b7f3ad27b4ce9f54e42bc  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_float_vector.c
! a0dba3ba0a12011fb6d8ccaad6bf2135  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_int_vector.c
! 71e0c271a83ffdec1ba0b13dcafc4d5d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_struct.c
! 8942f7e3305cfe844ffc1702af2894e8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_struct_advanced.c
! 751c8b56e162b0b758f256b86c881563  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_mixed_vector_types_struct.c
! 71208f8e8413566278754904f0d85fb1  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_multiple_unions.c
! 44ee30472317cde3c0c1fc80366b2001  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_multiple_vectors.c
! d7b29a926a69c04512ca3c27d6dccd76  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_multiple_with_small_abi_vlen.c
! 8dd85abf66185999b1b6bb1930f55c40  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_register_exhaustion.c
! 1010bf6711a692d069c59bc7ca80cbbb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_register_exhaustion_mixed.c
! 13356a84b79e14cac940637408b97890  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_register_pressure_scenarios.c
! 150390c372aeefdbc869e36dbc7555f2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_same_vectors_struct.c
! c5b0ef6f51bb61ef0f62f9bebd2f314b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_simple_union.c
! c93c414875e55eb0db2d4ad59c3b999f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_single_register.c
! a8d6c9e225d5f2a2fa3dbb4722470adf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_single_vector_struct.c
! a115ec6594dc7a43f9c6250046dc3ed8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_struct_different_abi_vlen.c
! 9e4586058adea224b0a77ee907410568  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_struct_eight_128bit_vectors.c
! 5bbe3aa9a3c41213cd48a9cb4a7f3344  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_struct_five_256bit_vectors.c
! 9a43f3dc57bf0a86bbbbcf81f503f9d0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_struct_four_256bit_vectors.c
! d3fd2f41ce73eb8feed771014676129b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_struct_nine_128bit_vectors.c
! b23f5634327ef3a894ef7c5f8d75e24b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_two_registers.c
! f8903861ea9c0e7de2de9a06eba843f4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-256-xlen-64/test_vector_array_struct.c
! bfe54cd7e0107f6987537e8e86a46592  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_128bit_vector.c
! 9084105adcf73961c996443c86fdfc70  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_256bit_vector.c
! 02a18860e3eb8d9063d646f019f1b4d1  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_32bit_vector.c
! ba1a6f162fa39933a5bc0935ee036b30  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_64bit_vector.c
! 991cb3f24be457585740c0fb28139549  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_all_mixed.c
! 319f39656b0ca2cf7a21b7e56e161c2d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_call_mixed_function.c
! e2ed861e647f20ae271d6abcefe9b91a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_different_vector_elements.c
! 19c1e5342f3aae6c2a565a5f4b5e5972  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_different_vectors_struct.c
! 2ef68ac8c7c4d26340dc5f4eb6c06809  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_different_width_vectors_struct.c
! 31d177972854d088c8ef960ac32dc33d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_equivalent_struct.c
! d73d295a48bdf91f690ef7653b50f0c7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_four_registers.c
! 480b6d636b8e8e453acf228a2d08260b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_fp_vs_int_vectors.c
! 6b72344bc649dc28b6b478dce6604b9e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_large_vector_small_abi_vlen.c
! ee6686c31f69219339047aa0f2e91126  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_args.c
! 9e0d212ff69b9e7fac63fe5396089d68  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_float_vector.c
! 8787699fbf7b117d50c49912cfcd0ffa  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_int_vector.c
! 26287ceaa63e757fc2970f6ca1ff9f03  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_struct.c
! f4b8818006c31ffc16e9d491bba221a7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_struct_advanced.c
! 9cb749e5315470bf336f4f659b31b3ed  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_mixed_vector_types_struct.c
! b8e01c97c002d4b6b5e824b84f4afa4e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_multiple_unions.c
! 0367497c4c05d9f4f0967a521d922c5d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_multiple_vectors.c
! d876422c760e5fcdb8b610be9139d432  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_multiple_with_small_abi_vlen.c
! a454a936f65bc4ecb0d7e26b309a5fdf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_register_exhaustion.c
! 9f8a27f6000d7343d72e4bbb9a6fb3b7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_register_exhaustion_mixed.c
! 60aca0e3919bb1aae2dcc52a8a85ae06  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_register_pressure_scenarios.c
! f2e912594ef3d8dec057ef5382b14e10  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_same_vectors_struct.c
! 23df487dddd50064c386633347f0de0d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_simple_union.c
! 21185351ac79d313e5de413a1be78650  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_single_register.c
! 1c72ecc806cf26938b38df93a3d44f32  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_single_vector_struct.c
! 7534b57d26fa04915d51b68206c9d06f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_struct_different_abi_vlen.c
! 7b32ec03ff9cf0e8261320e6d3e24131  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_struct_eight_128bit_vectors.c
! 395a903107ec50dabaab5d4a7f32838f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_struct_five_256bit_vectors.c
! aa146beb84d752a712a9f69fcf249be9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_struct_four_256bit_vectors.c
! 1c93bcb1a75e25c4d08e36023b2dd884  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_struct_nine_128bit_vectors.c
! e0ff040ee680578dff61ac9d87e251aa  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_two_registers.c
! b5cc948a96e4d871e2e3eb9e88651f9b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-32/test_vector_array_struct.c
! d8e004119505c74ccbfc4c7c14ff6da6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_128bit_vector.c
! 5413786ac3b69a81c81c9769edb38252  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_256bit_vector.c
! 761118abbba98f468a0c15af5ff5558d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_32bit_vector.c
! 10cfa383635f0d75d23db35c749bedc3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_64bit_vector.c
! ffa92eecab70649d3dfed2e2768114e8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_all_mixed.c
! 3ba29520b644f22530324f5358f630c7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_call_mixed_function.c
! 2ba79304b2bd769448ca16f49410a0d1  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_different_vector_elements.c
! b2c76d5f0ab3e1c02d22aecff8791912  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_different_vectors_struct.c
! b247106aae9e036a08307f075d0fddc4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_different_width_vectors_struct.c
! 37a7dfe115c3a8b94fb55020a5767e13  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_equivalent_struct.c
! f058e6f73dbdbbc9564da8902393a9bd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_four_registers.c
! ece40446a8bef38a699405c1683f09b8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_fp_vs_int_vectors.c
! 25b0ecb12745de9ba9bd936b274faa37  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_large_vector_small_abi_vlen.c
! 1e5d20c3670e83cc5592eafd6a9b94c2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_args.c
! d235d51899e1fbbfc2a4dbc8790c40d9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_float_vector.c
! f476125d3930c36133126992c9ff73b0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_int_vector.c
! fb52bab0938bafa2950e22796390a4fb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_struct.c
! 8b2bc2d9c80f9adcd6c3d0c566c05f75  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_struct_advanced.c
! d18c1a53fe15ac71792a13726bc735c3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_mixed_vector_types_struct.c
! a2d98b8283d338278cbc72fd181acdb7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_multiple_unions.c
! 292e121b303b45870f65529dfd237f37  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_multiple_vectors.c
! f7364a9171a43d999c7fa288a22ee318  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_multiple_with_small_abi_vlen.c
! f5e6e2334f6f182e5961b504cede0450  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_register_exhaustion.c
! 9cb3750d1fc5047526f076b58558dcea  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_register_exhaustion_mixed.c
! f8ee80fb71bbebd9f15be868c04d6eb8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_register_pressure_scenarios.c
! cc698b17af087aee5aded163f7b79880  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_same_vectors_struct.c
! 5a2140c0703733928241abaebde47a46  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_simple_union.c
! d717fc6c6f42e3a7fcff69954e18ca6b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_single_register.c
! 9ff45755f176aa941d4fbebe9906f026  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_single_vector_struct.c
! 246399ad229b389d4c012d1cdf773044  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_struct_different_abi_vlen.c
! 649b02beaf3fdd78461b5a36dcdee023  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_struct_eight_128bit_vectors.c
! bb98f3fe5537d38f7c87238a33cd251a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_struct_five_256bit_vectors.c
! 88668f1975cb4f9f7bee3ba57576eb14  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_struct_four_256bit_vectors.c
! de5d6d8e9bb01de1eacb5a165cb8969a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_struct_nine_128bit_vectors.c
! 13d0a41323903e904794bb94b3f253a6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_two_registers.c
! d806c72e96a4228449a6ae818f05b86c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-32-xlen-64/test_vector_array_struct.c
! 95c4e99c83e5ab2e7ef6777906509cd5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_128bit_vector.c
! ccb813d38776db172d95d6eab10f3850  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_256bit_vector.c
! da6166d588a37eb5bccc2a221e4abe6f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_32bit_vector.c
! 691b36c127f21b687367743997f278e8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_64bit_vector.c
! 17c3bb6e100cd67df1d4a8a494b12c92  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_all_mixed.c
! ac77da88e3a3997fde1bbb2abdb20a15  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_call_mixed_function.c
! 10e262e3ae142ad405d32644cdba485c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_different_vector_elements.c
! 8396546d79e73b31b2527ab7b6813c4a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_different_vectors_struct.c
! f010901b9fe1e76e395711d59cba147a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_different_width_vectors_struct.c
! eb12870aaad47704b9d260697093c016  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_equivalent_struct.c
! 74a2dfa7411d52edc869a0e0cf07d0df  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_four_registers.c
! a1629f026b733fa8be4c4b1290b0c262  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_fp_vs_int_vectors.c
! a53de99e2cc81596b41a76b5c064d6cf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_large_vector_small_abi_vlen.c
! bc79def279f7ef923ede770cc0fe697c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_args.c
! fac96865b4a41a4c2a2333d5adf1f419  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_float_vector.c
! dcbff4d42a3f0a72e5f4088b8668502b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_int_vector.c
! f50c783e26a6395f1aec036fef1d27a8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_struct.c
! 9370f23b0335bbb9451a6900eeb895de  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_struct_advanced.c
! 81f6ded68b513ee7f8ae827d949c8890  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_mixed_vector_types_struct.c
! 3a5c3c191580d114397a1bd0b89d2fd2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_multiple_unions.c
! 0827de3c9526aeb805be4bbc4f2e41a0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_multiple_vectors.c
! acd75cd1a44871e28d95628f6a39d403  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_multiple_with_small_abi_vlen.c
! e03c4f74010e1c7e374c98918e2ab5fd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_register_exhaustion.c
! a9ec49dc33ef1733a23e95d96ef1a353  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_register_exhaustion_mixed.c
! 6a2847516f96298f96dec7697d934cad  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_register_pressure_scenarios.c
! 4ed40351b0e80583790abef14e497f67  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_same_vectors_struct.c
! ebf34ee2645133fa307d9a4004906406  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_simple_union.c
! d4a5a13e18cb22cdca5b6eb55aede2e2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_single_register.c
! b67cf45afdabab83adc227d7fffebf86  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_single_vector_struct.c
! 73b622c678fc22959009d0c8eb68e205  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_struct_different_abi_vlen.c
! adf6fd5380cf2530302ba6cac6567a0c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_struct_eight_128bit_vectors.c
! ec9c9307c79e5792ed7113895e503f7a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_struct_five_256bit_vectors.c
! 55da6e7a27569f3de68a172c68954894  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_struct_four_256bit_vectors.c
! de6f0ace8c3f190c29db008b50d4e142  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_struct_nine_128bit_vectors.c
! 4289b19a27224a0e437bf7d15b35995d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_two_registers.c
! 095240967b579da4786e8c0a33063ab4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-32/test_vector_array_struct.c
! 0d340f1c093ef42d2b28067a763ccf97  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_128bit_vector.c
! 97b9b86cf7e270dce2b0b13cbb4e12d5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_256bit_vector.c
! beaec68c53a8618de2821a8810d8b9f9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_32bit_vector.c
! dd084a1629886928215b965255fe0561  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_64bit_vector.c
! d3776e4dc6376a6cdfe9d0cc3077d4dc  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_all_mixed.c
! ff1f02d74ca026521c4b186ee3b83eb0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_call_mixed_function.c
! ad7bd94d790e7335e00038edcf066924  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_different_vector_elements.c
! 68cf9b3520c9f2717aba3bdc61d8e5f0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_different_vectors_struct.c
! ec85a1f6534eaf31a58e0ead0451cb2b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_different_width_vectors_struct.c
! 891881a9988ee91e9fbd6252c96d98fa  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_equivalent_struct.c
! c3510c6f0bc2e77be726748f6a6bdbe2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_four_registers.c
! e6768ae7465645857ff7e34cafe1c0cd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_fp_vs_int_vectors.c
! 3c2e86950fe1025ef3ece06647812644  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_large_vector_small_abi_vlen.c
! 57bd2f84f888ddcfd4e3a5e5cf854123  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_args.c
! 3c96f1daff3def648c038132b8941023  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_float_vector.c
! afbd6ba1af4efb98a005e8db12c61b1b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_int_vector.c
! d34e250a76d9c134a54c9c5b5e8d664b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_struct.c
! eb5cdf915631647224f512b8bf3cc7a2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_struct_advanced.c
! 6151296f5a89a9e7e7e71bbebcfb8603  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_mixed_vector_types_struct.c
! 514e25e516eef8c7406c4f1589cd82d5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_multiple_unions.c
! debe7267397c9941004465520157bc0f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_multiple_vectors.c
! c5510eb613a7146747a5a0b03a8944d4  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_multiple_with_small_abi_vlen.c
! 90f9ceb24203c17df50cdcf8bb840831  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_register_exhaustion.c
! 9f4613042c0880e9e644ccf635b47c89  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_register_exhaustion_mixed.c
! 35061b1c10ae5f2c9b62449d3db40678  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_register_pressure_scenarios.c
! b458d634b9dd14b27c9e9543613d66cb  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_same_vectors_struct.c
! fc47fc8484ff0c15446219f72c9f634f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_simple_union.c
! 8e4ee359599a39599ddde3d9b7573d36  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_single_register.c
! 5868f3edbe0b0a827601cc0650fb9d61  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_single_vector_struct.c
! 9d237c3f24c4c9b4d96574a0bdc0553d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_struct_different_abi_vlen.c
! 2bbdfa16c7c25ffb189302c558e164a0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_struct_eight_128bit_vectors.c
! 7f21f8d5e3214b210e99bdd0611a4000  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_struct_five_256bit_vectors.c
! 8a9579308e2170ae63e9032072597c70  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_struct_four_256bit_vectors.c
! 17f4927b7bbfe807823f385910dd6485  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_struct_nine_128bit_vectors.c
! e22293ebf92d9385df5d709978dc08e8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_two_registers.c
! 2e52dc8e187e8d57a5d3866718c724d5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-512-xlen-64/test_vector_array_struct.c
! d8764d117f573b2007c3ee92ebec110a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_128bit_vector.c
! c7d56d9deb9fe42fe9c8f2126a36db46  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_256bit_vector.c
! dacf0acc912592f12a461b41bc816e7b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_32bit_vector.c
! 99fa94c83ca155a20d153944c784c55a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_64bit_vector.c
! 1e058b0eb6c830e6c4c60080c29ed8e2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_all_mixed.c
! fa465a969b320d011481d62ea8f53fab  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_call_mixed_function.c
! 051148c84212c613a33f4c4c7d02faec  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_different_vector_elements.c
! 0c3b71f3d1b0b9d2f8605b87c9966048  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_different_vectors_struct.c
! 35b579407c644b69c305796fa53ca9f0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_different_width_vectors_struct.c
! c3e8b7916892b587d3c726bf7d863267  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_equivalent_struct.c
! 30a3505485b9284278f22d65b277ab7f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_four_registers.c
! 963fa836aa9729e8d96fb41c6453d17b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_fp_vs_int_vectors.c
! d1915b28ac6b6534925b78fd1b6d18ab  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_large_vector_small_abi_vlen.c
! b890cb69087663db1c067337754a3d87  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_args.c
! 68e4444f45ced776fd9477f669f5b101  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_float_vector.c
! 80f56c495d002af09f999e0ef4f49a6a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_int_vector.c
! 179b70b663d6e0e84efacc8774d91ea2  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_struct.c
! 303924ab9fc538815b0e75f0048d56bd  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_struct_advanced.c
! ae98a20038487912e18f63c37c3ec696  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_mixed_vector_types_struct.c
! 53fcad501d43c55190b4395e5eb09d75  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_multiple_unions.c
! 21e4d2b488eecdddff6b3f77e97f3530  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_multiple_vectors.c
! b007589f27ea9e605fd0ea0d6b70889f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_multiple_with_small_abi_vlen.c
! d34938e84e77ec59dd11a608d06f10cf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_register_exhaustion.c
! e18de44a0ece195d5ef13e634c542f62  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_register_exhaustion_mixed.c
! 5bc2a60a5dcad949696b09d92117656c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_register_pressure_scenarios.c
! 3f6eafa977d32e8af37d82e5d571a25b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_same_vectors_struct.c
! 8525ec35caf0bfb936d7fb14187acbbf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_simple_union.c
! 53ce2647107bc53d21e5502b219b778b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_single_register.c
! 4b591ade492c3c631268029e3883cc80  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_single_vector_struct.c
! cf55c2c50331b6e49e6b06652d181976  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_struct_different_abi_vlen.c
! b7562d7e4eed9ea4a2552681b5137779  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_struct_eight_128bit_vectors.c
! d58aaa6a0189033176d8a6c6f5d75a98  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_struct_five_256bit_vectors.c
! c6e2da72b7e9ed5cee2fe596930167e8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_struct_four_256bit_vectors.c
! 68c8ef9bfd19b97b515c2c491bd27b67  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_struct_nine_128bit_vectors.c
! 0d4ec39e3b5213b56f2382f5aa1f263f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_two_registers.c
! 5d24492538fdc27cbe6eed3003d48bab  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-32/test_vector_array_struct.c
! 9de907100438fa1810f2b81d71bc8bca  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_128bit_vector.c
! 553354ead23403d45bf816d430a71626  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_256bit_vector.c
! ee5ac7177abda4beb3227b6b7564d9e5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_32bit_vector.c
! a9a40888bde22006e250ca3432cbdc2a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_64bit_vector.c
! 6611710ecaa152a328bb7c7d12d284c0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_all_mixed.c
! d3004ff3c7631ca97a641fd797f7b52c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_call_mixed_function.c
! 79754fcdce221a60e8f057025e3c4581  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_different_vector_elements.c
! 2f3b91d71540fed84dd05f80fa22be5b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_different_vectors_struct.c
! 60a9352f87c5b790abc48b708155f821  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_different_width_vectors_struct.c
! 5c3763fb8ed83868d76d4c623fd89722  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_equivalent_struct.c
! 4582f4b359cee4dad59ea6d2dae8bc71  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_four_registers.c
! cb01be42eeaaf283e4329b2d21fcfba5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_fp_vs_int_vectors.c
! 8ede2ab9960efd273d79089d9e16295c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_large_vector_small_abi_vlen.c
! 949a6ba463f5cf12278b57de00a9dcac  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_args.c
! d4d75e05ca6dc318eb75564c6958fd64  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_float_vector.c
! 0e76d35c4995022cb3e5db8f2cb9afac  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_int_vector.c
! cb3bd5e4750aee6a4796ee3818ce6bd7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_struct.c
! 0f4542de3fe96c14caa1aa3c254df8d5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_struct_advanced.c
! 22d0ae1aa2ff768d35556e19b8bdc062  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_mixed_vector_types_struct.c
! 46677cde5dc8136e93715cf18a4f28a8  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_multiple_unions.c
! 1a5ee2408ce0e87d9e109e35e84a9c01  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_multiple_vectors.c
! a20acdd97ce2c14085a8a6767c950a46  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_multiple_with_small_abi_vlen.c
! 08737380ccb1040495a160646b346ad3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_register_exhaustion.c
! 419b5f42f5d77f4e39bfdecfa0d46dfe  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_register_exhaustion_mixed.c
! 15ff891829c7121aa72bf918f8598f70  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_register_pressure_scenarios.c
! 359ed536886a2b5e3a1e391d2c369811  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_same_vectors_struct.c
! 007d9e28366999cae732b359c90e3d7e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_simple_union.c
! a1ae98a7d514fb6e30340ec8769a357e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_single_register.c
! d07fe86874b1d9bd0048f1fbedb913e5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_single_vector_struct.c
! 4f2c869c1f0dc770e0fe47d1171f0a8f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_struct_different_abi_vlen.c
! 1094d7b8738bfa6c825b37169976d46a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_struct_eight_128bit_vectors.c
! 3f5e3f4718de5829e0d52b16a611eda6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_struct_five_256bit_vectors.c
! 0d0b0d4f3ebe509c648fed717ae211e7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_struct_four_256bit_vectors.c
! c2c5e89456dd564f3a00ba20023b40b7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_struct_nine_128bit_vectors.c
! 4de3d2172579e0127679cb90b45c8f1e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_two_registers.c
! 936e05629aee5cd6323901085bd93b39  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-64-xlen-64/test_vector_array_struct.c
! 888eefbb3f466a6f9e2ec718072ac134  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_128bit_vector.h
! ef86b52fd0021f0c611c83edaaf5da87  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_256bit_vector.h
! bb5d374bfcb55006598021195003d105  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_32bit_vector.h
! 7148437864df54cd475428fe6e5fe517  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_64bit_vector.h
! 60dea62695f65d6fa89e0ecfc4957852  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_all_mixed.h
! ba57f7b3a122cea807a5c39d7c5dd92c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_call_mixed_function.h
! b10cabfeb6be9972792e3bc144ae9cee  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_different_vector_elements.h
! 2b46959eacdeae05b518f5d576979140  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_different_vectors_struct.h
! e2c8bb738d6681ed56b1e7c5149fbe43  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_different_width_vectors_struct.h
! e4bb04b20b2b2f33c86aea9c3ee45a54  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_equivalent_struct.h
! c4de682e008ed0d4baaf1999858b102f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_four_registers.h
! ddada2e696b01e83da17f2aff85c3784  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_fp_vs_int_vectors.h
! 034ce9afd2801416b0b61b986c183791  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_large_vector_small_abi_vlen.h
! 88f5e39e9864e52f54c0cf8d2c7810e1  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_args.h
! 0548228b6d4a204970384b0e318c6c6f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_float_vector.h
! a47c8ecb6a351515689bd561e6b6d958  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_int_vector.h
! 8c11151e441fd8e932e1f753a1583059  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_struct.h
! be600053d4023bf2ea6049f0e15ca32a  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_struct_advanced.h
! a5774eaded1c81534e29062e41366acf  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_mixed_vector_types_struct.h
! d3cbd8bb35f3f3032225dfaa816f97ca  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_multiple_unions.h
! 105a948991bfc207068415b3a911c4a3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_multiple_vectors.h
! 0ec6b908f9ac05720639c851c53674c0  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_multiple_with_small_abi_vlen.h
! 3aa00f3f5058c1b806cfade4dd63a688  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_register_exhaustion.h
! eadbe3d8b7aad01ca532a33526867ee7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_register_exhaustion_mixed.h
! 089ac3062c46bbfd6b79730c75516750  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_register_pressure_scenarios.h
! aaa919c949e76bcccd13991bfdeb4ab9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_same_vectors_struct.h
! ff60449d539a15dd1e48c498c1af2a4b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_simple_union.h
! 81cf60dc03fb065fb9a2e7c672845bcc  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_single_register.h
! c7a93a4f50f1171508a6761decdcd4b7  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_single_vector_struct.h
! 729af74038871a86786ea3f2aec739e9  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_struct_different_abi_vlen.h
! 4a1fe605f3b33083563e2bc9e31d8bed  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_struct_eight_128bit_vectors.h
! af9424f2e0fb816623eabd06ff445cd6  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_struct_five_256bit_vectors.h
! 2165e1835b83027b7d20157723d8cdbe  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_struct_four_256bit_vectors.h
! 4e6ad7e1eb54bfb1831df3a873bb834e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_struct_nine_128bit_vectors.h
! 6edebadc51d685154461e38fea7093d3  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_two_registers.h
! 586dd7b5fbb7ee4cd0443e5f5a8b4e27  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/common/test_vector_array_struct.h
! 93e36453a96e46e2d5432c6866cf2559  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/riscv-vls-cc.exp
! d765ff8ee76981e10c3f6bfc4185f76e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_128_abi_vlen_large_vector.c
! a2af258497515d741c81bc5f2338252e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_128_abi_vlen_medium_vector.c
! ebd99929633e4a76ea1875a335c40e91  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_256_abi_vlen_large_vector.c
! 51e999e239970ac411ce6178eb143b11  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_256_abi_vlen_very_large_vector.c
! 002bd0fd1761be63f378b742e9acd7f5  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_32_abi_vlen_medium_vector.c
! 7b1db05fa45d187c3e13b96dfa8ea53e  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_32_abi_vlen_small_vector.c
! f9e4db696e4e65f444ae6c79d8c5555c  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_64_abi_vlen_medium_vector.c
! 6935161a755ae18bcbc98e96bb08ab3d  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/test_64_abi_vlen_small_vector.c
! c8b42d8f89f7472e8d75ba5bfb15156f  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/vls-cc-common.h
! 3031ac06b49f9e9c72d0902a20286c30  gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul-autovec.c
! 4aa5bc6baedf8ea5084481a3ed9f82f4  gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul.c
  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
*************** a5a183977a10bab9c4d173183e0ad73b  gcc/te
*** 91937,91943 ****
  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
  03eefaf2721a633344ec8c04abe3dc0b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-1.c
  6b779dd6c4c77db46646f5d8b6f2e215  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-10.c
  3f648bede26319c7e3a73050a7bfd946  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-100.c
--- 103756,103762 ----
  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
! ed4dc1834d85c4488b81245e8ced3fef  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_prop-2.c
  03eefaf2721a633344ec8c04abe3dc0b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-1.c
  6b779dd6c4c77db46646f5d8b6f2e215  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-10.c
  3f648bede26319c7e3a73050a7bfd946  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-100.c
*************** ddd1d9abea631f3e020388dafc07d465  gcc/te
*** 91961,91972 ****
  b24cc019652df35507375fa00adc3788  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-19.c
  47b5f867ac8b47962d877f8ed6592b98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-2.c
  f94586f8a444e654ba0f0cada142b1b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-20.c
! e9790061a65ac76dacf9f734bd855739  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
  256d22070cd91b8806a778e254692355  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-22.c
  ed416055de6cdce7b0aeccd46bb98e00  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-23.c
  7a9b2413a6e8a3a78e885676ba970267  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-24.c
  be1cc3999aa851cf17480e41a214079a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-25.c
! d74cd41f6d59beacc916eb88d39e50d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
  987339bf0d8453df97965a5ec9631729  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-27.c
  854162a9a442f47706303e0ae14e994b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-28.c
  9ed206cad21ff52eb51d3a22b9f57b5b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-29.c
--- 103780,103791 ----
  b24cc019652df35507375fa00adc3788  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-19.c
  47b5f867ac8b47962d877f8ed6592b98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-2.c
  f94586f8a444e654ba0f0cada142b1b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-20.c
! 70c594d513a97c55533183beb92827f2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
  256d22070cd91b8806a778e254692355  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-22.c
  ed416055de6cdce7b0aeccd46bb98e00  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-23.c
  7a9b2413a6e8a3a78e885676ba970267  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-24.c
  be1cc3999aa851cf17480e41a214079a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-25.c
! 997b91ec2181d32ed7486a8b6ccfc1b2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
  987339bf0d8453df97965a5ec9631729  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-27.c
  854162a9a442f47706303e0ae14e994b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-28.c
  9ed206cad21ff52eb51d3a22b9f57b5b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-29.c
*************** cb2167e096c8381b0cdad25496ab8e72  gcc/te
*** 91977,91989 ****
  f93d01a4769012de04e02ac44e05cd46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-33.c
  e4457fcb3c7eb7d9b0612ce8e58acd93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-34.c
  4b3f57506f7bb41746d7ebfed21be19d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-35.c
! ee08e471795cc953a8159c8367235ec2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-36.c
! dd6de1b486b2dafa5919c7d69c11ccf5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-37.c
  fc113c8d95b51954d7f9871c93446b9f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-38.c
! a257665e3d63cec5cac3c4516dc204c9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
  17d98ea8a8a651bc5ea1c12a8a76e844  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-4.c
  e982f410da548fc73557e74cb4ca7db4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-40.c
! f70ac786c994b15fc8f8329c3cb2482d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
  5536be35d117b4e0304189c057e3c4ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-42.c
  2c1fdce0036da496dd235afc113768d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-43.c
  2497d83b565b03f282e5bbb58bb7a7bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-44.c
--- 103796,103808 ----
  f93d01a4769012de04e02ac44e05cd46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-33.c
  e4457fcb3c7eb7d9b0612ce8e58acd93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-34.c
  4b3f57506f7bb41746d7ebfed21be19d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-35.c
! db0a5b3b6100b7acab9712793560a780  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-36.c
! baad1a844810f4188b5c66116c07d376  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-37.c
  fc113c8d95b51954d7f9871c93446b9f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-38.c
! a45963b5d080e72125bbac7d426add30  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
  17d98ea8a8a651bc5ea1c12a8a76e844  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-4.c
  e982f410da548fc73557e74cb4ca7db4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-40.c
! 419dc6bfe8177790c95f1c53e74f8179  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
  5536be35d117b4e0304189c057e3c4ea  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-42.c
  2c1fdce0036da496dd235afc113768d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-43.c
  2497d83b565b03f282e5bbb58bb7a7bc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-44.c
*************** a0413f9e29b8677e40fbfa6a9abc7a7c  gcc/te
*** 91999,92005 ****
  a3af7d1671248b55b14f0bdda3176c98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-53.c
  2d4eba1dec03d899b4483542293ee04d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-54.c
  785bb8526efb4ae22435bc2f02a20198  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-55.c
! 46ef4b470e694b029a73d83e4440b8a4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-56.c
  1cbb4c610a13c59e8ebee85065cff5a2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-57.c
  67fd570a5f5d1e175ddb907dab2a621e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-58.c
  899e3eee3656e0aebb614699b6492ed6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-59.c
--- 103818,103824 ----
  a3af7d1671248b55b14f0bdda3176c98  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-53.c
  2d4eba1dec03d899b4483542293ee04d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-54.c
  785bb8526efb4ae22435bc2f02a20198  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-55.c
! 0b5692bbef750ad340e3e429edb5422d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-56.c
  1cbb4c610a13c59e8ebee85065cff5a2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-57.c
  67fd570a5f5d1e175ddb907dab2a621e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-58.c
  899e3eee3656e0aebb614699b6492ed6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-59.c
*************** ba056af537a5d0b759601127a968797b  gcc/te
*** 92011,92022 ****
  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
! c8745a34391dc3ce6cdf2b040e087d27  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-71.c
  f2f91c15600a97d75086ee5b84bb3615  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-72.c
  716bad4db4144e599582db84f4aa2d03  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-73.c
  c7d1ca1bf7b1a51e76ee195a511b4761  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-74.c
--- 103830,103841 ----
  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
! b25a47afc8ae99293fd9c8294c187303  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-67.c
! 1cc15041e816e1c706a17d21c1d05b5a  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
! 6a711654eab8f2e0a6faf4fb0bed738c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-71.c
  f2f91c15600a97d75086ee5b84bb3615  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-72.c
  716bad4db4144e599582db84f4aa2d03  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-73.c
  c7d1ca1bf7b1a51e76ee195a511b4761  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-74.c
*************** e5381974a3b2ccf0d38f73344c8a9078  gcc/te
*** 92050,92056 ****
  1b25858552b8cb437258bf278146d5d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/dump-1.c
  9d2e430896393111a9b4c22466c8a590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-1.c
  c7b01ead74b1c2140b6970629d7e0580  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-2.c
! 315f0ba2615efa932566161e1a556ac9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-3.c
  7aceacf5477c84c7acc88af610e405c8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-5.c
  6692ec4f04940cef34ff878f4ce2afe6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-6.c
  a011894c73696ec886b4c6812c8c84cb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-7.c
--- 103869,103875 ----
  1b25858552b8cb437258bf278146d5d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/dump-1.c
  9d2e430896393111a9b4c22466c8a590  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-1.c
  c7b01ead74b1c2140b6970629d7e0580  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-2.c
! cb13238cde1f41aa866697bb3c76cddb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-3.c
  7aceacf5477c84c7acc88af610e405c8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-5.c
  6692ec4f04940cef34ff878f4ce2afe6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-6.c
  a011894c73696ec886b4c6812c8c84cb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/ffload-7.c
*************** abd694235777f7b62db96e3787996c15  gcc/te
*** 92094,92101 ****
  e91b00c5f2ae57cbcc2481ba24b57f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
  23a2401e8a0d3a8966d904a613e17daa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
  38036ffecdbfd641cd09bf4d96837f77  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! 0086f55b1860acb897467cdb85e62b2a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! f008cdc108039e8acfec80c66a29deb7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
  c70d0b9cdaf8882f26b7606e319bc3c3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
  8bb23274aa1549837c9839211712d1f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
  6d8ff049c03f5447bc7a341925c0ad05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr108270.c
--- 103913,103920 ----
  e91b00c5f2ae57cbcc2481ba24b57f0d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-3.c
  23a2401e8a0d3a8966d904a613e17daa  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-4.c
  38036ffecdbfd641cd09bf4d96837f77  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-5.c
! ed23e473da64ff540c6b1656e0e3b2a6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-6.c
! 95c874b82a10943aa01d92ae98a2dfa8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-7.c
  c70d0b9cdaf8882f26b7606e319bc3c3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-8.c
  8bb23274aa1549837c9839211712d1f3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/imm_switch-9.c
  6d8ff049c03f5447bc7a341925c0ad05  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr108270.c
*************** c0713b9aa6ed439fab330ab7223032dc  gcc/te
*** 92132,92137 ****
--- 103951,103958 ----
  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
+ 214ad7d07e6a288b395d3cef7ca24962  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr117974.c
+ 1b8009a0ebc38d1aa9051f39e5badf50  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr121485.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
*************** aa4ddbbbf67691c72071a00529ecc48a  gcc/te
*** 92187,92197 ****
  8c51a7469b86f6d410266ba0c13c4f6b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-14.c
  ea2b33efc025442329a336a059925ff7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-15.c
  3f07a9149e9ac4032c6fd871d0371a4c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-16.c
! f2f84382347e414758c259f0dfead3dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c
! 8d5d22a52619a43923c5730f8975d232  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c
! 70b874dbbfe0f7b62ec5990a886cc963  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c
  02ec03ccfb668b351de40962b4525774  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-2.c
! 00eb1c6edc60407a4a44d70cee21366b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c
  cde86dd4e44b53be452f5c6b6d1c01da  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-21.c
  2242fb56ee1673059d261659fbcaae30  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-22.c
  b0e5119c93d15f64cec2ddf78c015be6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-23.c
--- 104008,104018 ----
  8c51a7469b86f6d410266ba0c13c4f6b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-14.c
  ea2b33efc025442329a336a059925ff7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-15.c
  3f07a9149e9ac4032c6fd871d0371a4c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-16.c
! 75d1f0f0b1c9a12031ea53c461bd2b15  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-17.c
! cffec56716c682862b9366cda346ab51  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-18.c
! c9a0a7608ef26fb3e1598a09299a3152  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-19.c
  02ec03ccfb668b351de40962b4525774  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-2.c
! 7db23cf82bc61c50eb46d36ada54cde8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-20.c
  cde86dd4e44b53be452f5c6b6d1c01da  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-21.c
  2242fb56ee1673059d261659fbcaae30  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-22.c
  b0e5119c93d15f64cec2ddf78c015be6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-23.c
*************** d0dea6c8a28aa1c26e005ab315fca9d2  gcc/te
*** 92254,92287 ****
  3d02a71fa34038921ccb98e0c537ccec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-7.c
  8c1390fd8c9921d4aad502d083521554  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-8.c
  eff1c636b7f4ff36ff201478217ffe22  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-9.c
! a5e9bd1d34550efab0a0cde227466e33  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c
! 3489bc352c2377763790f9b04d1693b5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c
! 220700d69fce99f96ade0c3cb45bc2d6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c
! d185ed08a8bf01d91d8039964f9d5f7f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c
! db2aa9990b0ba91c492b400b060cb49c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c
! 5494ef93aa3c31dce8f8673ec7f9993b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c
! 28a1983dc07c40909d30fd6a9d84d43e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c
! 79076be85780892917a9ab177c2a2935  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c
! 960f006023126b13afdf938105ab7986  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c
! 0b0eae7e8f8218c1e55b62140fb28586  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c
! e1c87d34b8bd73b511b2d3868775fbeb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c
! b87fa7c9f39de26ce15ec301b4a958ce  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c
! bab6ccb139d6c7228ae725b02c3d3325  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c
! 83246851f9501d24de397d44731b7f66  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c
! f7af20d2e884a20337c389c826799a93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c
! 342d38c7151163a98c4db6e30f1c10dd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c
! cb113c7b54a6a60c7044faa20eaa7f5a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c
! 269d9785f3907865a6d920ab25b4a211  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c
! 2c5fad4764d8686b9db957a6057e98cb  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c
! 056afccfe0378f095d689712a8fd52c0  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c
! c679601e707e809a64b2eb05a12c2d70  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c
! 52c245616a6c42e3ce432b260a4e4dd8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c
! 4c50eeb81015f398ff357cf9089a0988  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c
! a0348ea66b4f187c97cc979fbb9ca107  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c
! 44b68fa28e2cace1095ae14560f04140  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c
! 3972ca87425b7d5352c64cb3dde228b1  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c
! e1a7473c20e7d6a781346a53e1cf152f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c
! 801bce09593a22e256997b0ba958b3df  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c
  c5d930996fd2346c7d36b4092b881546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-1.c
  c94cb0330d8863795da4992df2f5a5a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-10.c
  e129fdd9dd41d20ad1e909b64b9a7600  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-11.c
--- 104075,104108 ----
  3d02a71fa34038921ccb98e0c537ccec  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-7.c
  8c1390fd8c9921d4aad502d083521554  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-8.c
  eff1c636b7f4ff36ff201478217ffe22  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_miss_default-9.c
! 23b0e57cbef8f1ae8efbc7dd57d94ee4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-1.c
! 526c5d21d3d8ff221341ec908997d04e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-10.c
! f1b9793f4186387645c312d75fd5656b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-11.c
! ebf2f0f448d5880c82cd1817b6c1829e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-12.c
! 828bd756327ab86fc83df722a5915bf2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-13.c
! 4b66221bf53fef4efdb1ec671f694495  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-14.c
! 4e8744ca5b86f6e884d67a3f070c221d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-15.c
! f8ec9648f9ee9602da1c7a4d896efa38  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-16.c
! a98877c802b8f3c673f61c9388aa90d2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-17.c
! a98a49f984b1b10f9f7a778aeb09cbee  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-18.c
! 38ff12a54d95202cab81eef861a44b2d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-19.c
! 0da11b8534a367ea7e3c41376e402368  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-2.c
! 8c24e713cd1874bec5f9723a50b3220d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-20.c
! e9e1a0aa5904517a2ae633e2afaca42f  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-21.c
! b5d103b8cd4044752b40cc0d424a742b  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-22.c
! 3ebd4a679ef84b4d385732c3c52af225  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-23.c
! 8e7b5a4d9436a46fa7ba740992a0e9ac  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-24.c
! 3c6100ea30b2d575e037a7033d6b3e4a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-25.c
! 7753def230b9238b4ef152782e3c6f8c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-26.c
! 10ce435eac65dd984d59fd594009e109  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-27.c
! ed5a27fe5d671a5af2c6ac7cb481078d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-28.c
! 6b0a21c103750e6e1310e3f685869be8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-3.c
! d4d46175435cafe7bf4be0f0cd72832e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-4.c
! beb2db79dafc591bd48e14dd4ec0af33  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-5.c
! 2c562b791ada7bff5e6deb14ae28cbf9  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-6.c
! fe96e01dc398ac35bcab00a60f66e13e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-7.c
! fc2c1b2eb95399df39ff57d991e8bd1e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-8.c
! 0512351dc27c3fd037dad44a4f36e6ab  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_phi-9.c
  c5d930996fd2346c7d36b4092b881546  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-1.c
  c94cb0330d8863795da4992df2f5a5a8  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-10.c
  e129fdd9dd41d20ad1e909b64b9a7600  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_single_block-11.c
*************** f36bd3acc515a31959dd9e5b03716209  gcc/te
*** 92339,92345 ****
  42371f3cec1f548824c992973fa73962  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-2.c
  a2b89786800f8429d801237a3b473a0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-20.c
  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
--- 104160,104166 ----
  42371f3cec1f548824c992973fa73962  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-2.c
  a2b89786800f8429d801237a3b473a0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-20.c
  c621e73f024d332f72690f6f94c043ad  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-21.c
! 0e7b4d3b6bf1e7cf2ec65e3b80ac0368  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
*************** fff2976108519ec62768f18b012c9590  gcc/te
*** 92361,92382 ****
  949f235392597ff9b824f9430107ab0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c
  e827f0ca0f57ceeee3bfb3ebf59daa93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-13.c
  22dbf2d3870aedbdac2461ccd96f7e6a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-14.c
! 6d5d426c0976b78985fb6472b9f31c41  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c
  152d71e37b937c99de6c3186ebc09167  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-16.c
  b767f73987768bb7d7766b74f2414566  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-17.c
  764110eeea245506020fffc7c97b96fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c
  27b3163c7cc3ddd01b9ada46db53df1a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-19.c
! 164b8945ed6553400e691e2b94b9eb83  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-2.c
  ad64c08f922f72ad597d7b6f3fe69035  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-20.c
  f353ff22b3d33ab76e2d0ef9b8df7a38  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-3.c
! ed887cfb0c3d7c35703bd016f17dafc4  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-4.c
  d5f9bb03f6b98e53fb108d8fd014f713  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-5.c
  055bfb9c23b3e7eb33041e6f2cc311f6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-6.c
  b3330bdc7e59d45053b22dc4e53f3689  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-7.c
  6a22e60d3918a423ec81d82018d74f9e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-8.c
  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
--- 104182,104243 ----
  949f235392597ff9b824f9430107ab0e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-12.c
  e827f0ca0f57ceeee3bfb3ebf59daa93  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-13.c
  22dbf2d3870aedbdac2461ccd96f7e6a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-14.c
! 27ee9e0bbeed46697035a84b631ae9e2  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-15.c
  152d71e37b937c99de6c3186ebc09167  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-16.c
  b767f73987768bb7d7766b74f2414566  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-17.c
  764110eeea245506020fffc7c97b96fd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-18.c
  27b3163c7cc3ddd01b9ada46db53df1a  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-19.c
! d17a0185572fe7333bcae93211f2b815  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-2.c
  ad64c08f922f72ad597d7b6f3fe69035  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-20.c
  f353ff22b3d33ab76e2d0ef9b8df7a38  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-3.c
! 8435b3ccbac2c3025e9a841083eb901d  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-4.c
  d5f9bb03f6b98e53fb108d8fd014f713  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-5.c
  055bfb9c23b3e7eb33041e6f2cc311f6  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-6.c
  b3330bdc7e59d45053b22dc4e53f3689  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-7.c
  6a22e60d3918a423ec81d82018d74f9e  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-8.c
  609e1d2aef82a23de55a584b6e847de3  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvlmax-9.c
  9c2f522a14fc0f4d937d128fb08e4647  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
! 0fcc9fd70a59d0ab221be846457ab2c8  gcc/testsuite/gcc.target/riscv/rvv/vtype-call-clobbered.c
! df97e12b59ff507489560f2a99975e77  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/andes_vector.h
! 637442de843d549714e205454bb6b13f  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dots.c
! 77bc779cc75172943fb341dde833285a  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotsu.c
! 38d6296b6898dbac79c1f114d1bab5ba  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotu.c
! 5dceb8a9aa1f936aa2baf748d5aebf88  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfncvtbf16s.c
! b194770c847e87f66757cb8c74b1baf6  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfpmadb.c
! 2f063c9aae22303454f487dc35d7b467  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfpmadt.c
! 36ab0b968da95ed9f4ec5e579e1676d6  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfwcvtsbf16.c
! dd71f303834fa0446524d39d7ada0ea5  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vln8.c
! df97e12b59ff507489560f2a99975e77  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/andes_vector.h
! b631782b5d066b02a62d6d9cccdb0b8d  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dots.c
! 4af974bf60f02ddec0ee98537d676cfb  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotsu.c
! 614150574b344362fdb32a1d3d9531bf  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotu.c
! 1adeb7ad34edc66798ab4bd2eeed63e0  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfncvtbf16s.c
! f5653e679edfa59449a4333976d8d5ea  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfpmadb.c
! f4c14078aa2189a9153f32e2d6802840  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfpmadt.c
! 2d66523b5c922227f41b11e8a54c545d  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfwcvtsbf16.c
! 9767e600e3e3d3df22eef0b3ccc89572  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vln8.c
! 9742f4da8c36074ded9f2ca5db07ecc5  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/andes_vector.h
! 1f18373dfc52f9f8770289f6ec3d851c  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dots.c
! 15776a6883539ff6060f00fcce5c2b5b  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotsu.c
! 713b410e848f0bd24812ce83bf754b99  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotu.c
! 08ce298da6faa6ec25e69b0ac1cc8c1e  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfncvtbf16s.c
! fdc22092b0a09327b1a3117277fd0560  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfpmadb.c
! f0dd2e44836f9a55b93e0b678b2e077f  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfpmadt.c
! df976c287ae79d074bb903dd4f3909cf  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfwcvtsbf16.c
! 50b866a484595cc300bae68ac03c37c8  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vln8.c
! 9742f4da8c36074ded9f2ca5db07ecc5  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/andes_vector.h
! fea40b0149ae4dde7dee336712697c30  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dots.c
! 39dfad2fff0efbe9346bfd08d35042bb  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotsu.c
! ea619bdb61ec500565c7b25f7382e4d8  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotu.c
! 409c0d5bcde19816cb43db4104167be0  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfncvtbf16s.c
! b0313aa063c6b89c749f0bf083cffb23  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfpmadb.c
! ea8e770cd4669b67ce8cefc0057168d3  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfpmadt.c
! df976c287ae79d074bb903dd4f3909cf  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfwcvtsbf16.c
! c0de26fe3372b45983b9f17d17fb86ac  gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vln8.c
! e0318f5cdc094037bd383d17cc611346  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_f.c
! a3895b5dae542b6e77191b5fddf4e7f9  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_i.c
! 401001c7498b3b97f4daf79627fdaef9  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_v.c
! 1834e4c9a90085cbabc622668d3afe9f  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_x.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/te
*** 92387,92400 ****
  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
--- 104248,104269 ----
  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
+ d5c19f8b7c4f58c65db3d708af55c80e  gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sifive_vector.h
  fc54d12a0cef4c8da27d6f46343e89eb  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector.c
! 80698f0ea2b45f848a640c6a55351dcc  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
+ 013ca4446da937590547bb850a947ecf  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr120461.c
+ e0096129e78eb7f5e7a4f3231097c187  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr120642.c
+ e8e71b223dd9d7fee839474c55a75e59  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr123969.c
+ 4881cdf86600eb0940a8c82416f44a09  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr123971.c
+ b804f461139f6ef0af6f4985aac87bbe  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/pr124147.c
  3b6f5cabe79dc861ffb53d3e1f5799fb  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/prefix.c
+ f0eaf74e1355fb42d801d65c8e79d1c5  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/riscv_th_vector.h
+ 979e78c5ed1d2ba91a46584480362b26  gcc/testsuite/gcc.target/riscv/rvv/xtheadvector/riscv_vector.h
  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
*************** a8f53ad5180333afb72d569d125c3922  gcc/te
*** 92403,92661 ****
  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
--- 104272,104569 ----
  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
! db6ff9d4e85186271359188a0b365a35  gcc/testsuite/gcc.target/riscv/sat/sat_arith.h
! 89d90b13c13c2658dcc8319771cd755f  gcc/testsuite/gcc.target/riscv/sat/sat_arith_data.h
! e52f03a6378cd78f7ea04149c2b8215a  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i16.c
! 1de70dbaccb7e9fe73b8e90ec7430b4d  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i32.c
! 6dd05b951b562cf5989d09deeb486a57  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i64.c
! 27764d8afbb61f9070bd0b735160ba5c  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-1-i8.c
! 4b3df78c3237864a2593004c110032ba  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i16.c
! 7b813f073dc70ee38e89cd23a34933ce  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i32.c
! 8288eaac7cd985bf5c7e650f6cf4c22d  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i64.c
! c1bc61394089055ab8f40daf316920cc  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-2-i8.c
! 5bf4a08714346f57fad73d1e0f18e374  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i16.c
! fd00fb810a3f1b91a1c6c74e81b5ee39  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i32.c
! 11ca6a34c066dd6f617fe2c9428e9775  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i64.c
! 4fdef1719975a88ceef8628a2668abb8  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-3-i8.c
! 93b62cadbbf9d5cea4386780fcb6f9d1  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i16.c
! c41617da0fe4cbbda84bd21222cbd454  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i32.c
! 77476b6088eaeb539602541abcd36ce9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i64.c
! cc6928ab3ee4c4c4f4456720930ef771  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-4-i8.c
! 634ba98e940c9c6f33677dcfefc6b104  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i16.c
! 7b6c5db714705b4afa9ebd15fa90a65c  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i32.c
! 8b100542d57ff431e5765209e4853e43  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i64.c
! 4f8e21ff8d8d1bed7b2bfe1308d80aa6  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-1-i8.c
! 73cc8caf6e89e5655649979db2808e71  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i16.c
! b1ad7c5e48ebd8b3411b9d8ca3b1ca72  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i32.c
! 506a7af5a281f0debfca2f21913f4606  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i64.c
! a711bc6ad2f2735b2df948902e0d7d52  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-2-i8.c
! bea9d00786c30de8d0df322637d9d49a  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i16.c
! c22d78e134a110bbc089622b01a67f24  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i32.c
! 040cf70d2a5b6e1b0bf92238bda98c60  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i64.c
! 3a3bd11290ab1a8138d712cda97efea1  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-3-i8.c
! edc07df569a4e6d093432c6521d37de9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i16.c
! 6e83c7922f64fc9d85b2170bafc28fac  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i32.c
! 2428660a63725b50a7e40a560fc733f6  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i64.c
! cf4917bef60ef16a75366154ef792dfa  gcc/testsuite/gcc.target/riscv/sat/sat_s_add-run-4-i8.c
! 528cb7a35dfa376168d45ce4e432fbb6  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-i16.c
! 426d6e58fcf9a8a31cdcdc51feea6e0c  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-i32.c
! b9dae29e2ea3744b52a5f6bab457861a  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-i64.c
! c6e4ce21d17d15acdd34b41ad652ea63  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-1-i8.c
! 2a44ea85f7a78b2af64db039222401a0  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i16.c
! 1c1c35e8b0946be1b650de2f0590d5be  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i32.c
! 9a51b6e0ed0a2b467e90457cf4301ebb  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i64.c
! 57415f0ddc6f3507841dcef4d2134207  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-2-i8.c
! 194d1aa63a23ecbc52c282602dee47e8  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1-i16.c
! b6c05474c1e42c3da50dba2524519d3e  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1-i32.c
! bebbfe3ec914363870604dd8ac4deb8c  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1-i64.c
! d5476a9625b2e72d3532d647b6bf4d1d  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-1-i8.c
! a4b60331fe2f752ce161081b8bcdd275  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i16.c
! 650012f631a91baab099ef65ccb99af1  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i32.c
! 281e4b74556749ada23a30d0d750f728  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i64.c
! 93cfd3e4c44855f4307ca910f4d80a52  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm-run-2-i8.c
! 659c3b9c2b70b894dc633748c3f56890  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-1-i16.c
! 5355149b6c04b1eae8c847ab040357a9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-1-i32.c
! 69ad40c6f5b2b845ba28b763a2b07586  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-1-i8.c
! 846b4c034c52e1ba01068025a5e77f24  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i16.c
! 5355149b6c04b1eae8c847ab040357a9  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i32.c
! de74c9cd17a3a83f5892b7207aba8ec2  gcc/testsuite/gcc.target/riscv/sat/sat_s_add_imm_type_check-2-i8.c
! 3f8ec8f95a74b0df73797de97bcd199f  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i16.c
! 2063a27ee5a05f3d6d6c62dd43ac1c61  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i32.c
! 3a8d63861616f3c3a91509c405a46751  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i64.c
! db0b5e11da23362ca56469c02c0dba89  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-1-i8.c
! ed5497d08897d1963576a768d7c415bf  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i16.c
! d73b6c215cfb07dd79728efbc5ad7b53  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i32.c
! 08070e1fc649ef17c1f163d4326a3cfc  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i64.c
! 285833db66c91a28456cf044bf8b6af4  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-2-i8.c
! fd2ff297b74fc12237edb50568babe26  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i16.c
! a089aea28e92ab662acba5de9e11d072  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i32.c
! 29667297cbbbd694eed79ed314b7428d  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i64.c
! effc06f49b0c83f3db34cf456618a600  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-3-i8.c
! 31e952e03ec40fdc7e9c413fddcf6a6d  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i16.c
! 6eb5d76b0903754dd2dcb47a81144b4d  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i32.c
! 90fead7533a3d82bf90ba3d1f780f5dc  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i64.c
! 3668dde205ff5fd297fedc643edf2081  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-4-i8.c
! 608daf4ba32a68765f9e052a74e116c8  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i16.c
! b2bf0b435fd59a395185c4bd9d88618e  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i32.c
! fb41d1cad35931aaed241983ee217259  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i64.c
! 4ebed47b3b39cf1336c534369a60eec0  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-1-i8.c
! 3e3bcdb9b42cca62efe0d94a5a5fdbc5  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i16.c
! 3d403c809661c2eea0441cdfef62a20a  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i32.c
! 2a71ef8aa5790788f9575093c57e8f82  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i64.c
! 9b0114f27bd0d6c83c2be5ca4a57ba48  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-2-i8.c
! 22621a715cd37b6be54b75bcbca33b04  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i16.c
! 7f5318b04be3c76c4c6de0f19b1edd11  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i32.c
! 83e414a94c33c5d145aadcfb005bc8f7  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i64.c
! 4fb490faab74c45c3d6aa5e7037bdc5a  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-3-i8.c
! 93cd6b2406b1fc742bf57ca7950278a7  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i16.c
! 5de395d3d2261a36f2c67a42c328637c  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i32.c
! d30aada616d652468a6453cd505a87f9  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i64.c
! 7f2e175b5a241a0127316a36d567eca6  gcc/testsuite/gcc.target/riscv/sat/sat_s_sub-run-4-i8.c
! 6b7cbe616d69e8002ebd0f4b0067b5df  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i16-to-i8.c
! 44e2a8b7d1e73bc8d062f77e142f9f68  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i32-to-i16.c
! 94acb05397d00399508dddfa3034ec06  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i32-to-i8.c
! 12dcc04571ac997e7b037cf716d903c8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i16.c
! d1f254339cd5e0762630843b6edac077  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i32.c
! 8e8b6c510d207375e0d0276e96ba0f3f  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-1-i64-to-i8.c
! 228ac55ab6d7111c06363e13d19fe50f  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i16-to-i8.c
! a01e23057ea28a6fb13d1fada7ddbca8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i32-to-i16.c
! ef10965b3cfde44b9bf974869b21ef56  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i32-to-i8.c
! 158d341cabeafef8504550a7d6cd07bf  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i16.c
! b79fb96183b6f96efcf8b0280830319a  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i32.c
! 9f157b00dfb5b2a7a3c64d2a4064685f  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-2-i64-to-i8.c
! a3d6d0b083a20b93a23a85674ff4666a  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i16-to-i8.c
! 6e77fbd6ee3d4dad58f5eb27d9f70bc4  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i32-to-i16.c
! 48cebdc85697c74a07c3042fa8f19921  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i32-to-i8.c
! 3282b63afda093c9856ede38ce898d96  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i16.c
! 70659a7b53c57debdd4fbb9b0b3d216a  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i32.c
! 4cb91ffbcf000a8c78e09bf92f918475  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-3-i64-to-i8.c
! b58092921f9f5ed1bc01c6858fb69798  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i16-to-i8.c
! 10222501b9ac8c27d651849be35a9eb1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i32-to-i16.c
! 03871064edcf36fe041865548adf7244  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i32-to-i8.c
! ee98663c680265bad007a5be4128651e  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i16.c
! 149f749a2dc713c3bd9ed776a0fe52b9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i32.c
! 8a7d9528543c25f8a8c0a99b4f2ad185  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-4-i64-to-i8.c
! 7ca9dd32914258a328470ec729f2a620  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i16-to-i8.c
! eaf2ba4daf21699f2f0d523c2fc35463  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i32-to-i16.c
! ac4123938642d2ebe2b239762c4371a3  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i32-to-i8.c
! d1aa194f89d6a286d63633ac74a40077  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i16.c
! e78e525e5ea93b66fc310418944902ea  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i32.c
! a7be7544ebd8761d44a7df68a0ebd13b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-5-i64-to-i8.c
! 8a4debe179448c3aa08e96587ad5a201  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i16-to-i8.c
! 5040e78211271a20cb3a3704f3c39cbf  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i32-to-i16.c
! 797076dfc174bde62744163fe8f0692d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i32-to-i8.c
! fd1b5bebb669c82f6459c03f79688020  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i16.c
! 41469c0d35c3ebb239d4291b1e7ab5f8  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i32.c
! 70295824389350a088342f8c50654100  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-6-i64-to-i8.c
! dd3f9961ee4e5143fc99e10a0e44025b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i16-to-i8.c
! d94702a5014cab132bff4cace1881e26  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i32-to-i16.c
! 0caf676e214199c448cc25061dfc63f5  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i32-to-i8.c
! 45142e3d4efb6ad682ebc9617810cc87  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i16.c
! 78600fe058f8188fa79d48172f5e468b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i32.c
! 08232d512b61be410e6abe3ec8f74975  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-7-i64-to-i8.c
! 33aa24fe42c6d12f23d8a7de2c8ef93b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i16-to-i8.c
! 95ec5f375ca379b1fbcfd6b1368de308  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i32-to-i16.c
! 4862ff82769dcc468e9d736df058ef8c  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i32-to-i8.c
! 48445fd533561af41aef8cd7593af7ff  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i16.c
! 93028e30ae441fb626eae7675034290d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i32.c
! 7dcf208bb8615b2de04e71c88a7135c4  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-8-i64-to-i8.c
! 9b3408d796cc81aced32ade98e5a7b0e  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i16-to-i8.c
! 52718ac49f76f29ba9a537bc9c5ff3f0  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i16.c
! e4b93bad5603f57a110af30271df8c36  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i32-to-i8.c
! c040658f27bf67c01cdae47c840505e6  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i16.c
! 45eea2c7acc2f993e634d26d810b8a47  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i32.c
! 35967a46f9b2304ee5a658944a63e67b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-1-i64-to-i8.c
! 6ca0fe73a90b1f4f0bfff589ae51a961  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i16-to-i8.c
! 0f3a244418e883b5329259e193bb1673  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i16.c
! 9e0af428e1dc50821c8e7b3c3923c866  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i32-to-i8.c
! 32aed0a96f9d20f3465b013816525866  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i16.c
! 561f63f088d45b08c22c9b346da4e966  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i32.c
! d100d2efc663392cbf19384483d3c27b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-2-i64-to-i8.c
! 24fad33f2c720917f6c1d383e80f1fdf  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i16-to-i8.c
! fdeae53dd8a8aa5a68fe65998e7354d5  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i16.c
! ee723e5ba8518fd58811b2def0227a76  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i32-to-i8.c
! 992597b26834685f2921d42a9e388f21  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i16.c
! d99ed76163d994c04eeb6de70215bed9  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i32.c
! d80efdbe33e88f7372df72e5c6e8f219  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-3-i64-to-i8.c
! 94ddffa008ce925b1ce8319844ebe2f1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i16-to-i8.c
! 8dfa1cabd46f57165f8b3195684a329d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i16.c
! 5919ce01c2547b56705c34538972a9ca  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i32-to-i8.c
! 508fde64d19d94f809c1415d2d9bf265  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i16.c
! 9cb453b90a58c85f42a1da1d038d122d  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i32.c
! bd4ee37848e20e5dcd0232ef3fcf6f93  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-4-i64-to-i8.c
! ff79083cb44f2287130b3007bb5e7653  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i16-to-i8.c
! 98d15299a39a6cd17d77f78f130b5cb1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i16.c
! 785c0dbb5936a707f09f386d3edf73aa  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i32-to-i8.c
! 6dea355460505cbd2e7e5bad0379ac46  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i16.c
! e417f572dc4dd572ca5da74386bffc26  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i32.c
! da5d7eb97389fe091ea172f69899b4c4  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-5-i64-to-i8.c
! 2427986fff895b2202eab52a646c4b42  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i16-to-i8.c
! 19aa174ec87befbd0abbd00ee1f26dea  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i16.c
! 6949f0460dd4039c1b4b8c3eafbbe284  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i32-to-i8.c
! db807989b1de5c69ccea34960dbc095b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i16.c
! 084cbc09c4003fc74429b0be89f2c9fb  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i32.c
! b664e82776c607af8c8cd2415e764c57  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-6-i64-to-i8.c
! ccddfc976541518584f62c8e02c3ce44  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i16-to-i8.c
! 38030f0cf0e3f4976b3b45fe8b2d33b7  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i16.c
! 5113465beaff86e089a1f89b4ce19d4b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i32-to-i8.c
! b9527f11a9a81d047a24151fb7d059de  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i16.c
! fc26d3830d392369eece432c5e26fb1b  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i32.c
! 7b0393dec4bb62cbd949a9ce2910a216  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-7-i64-to-i8.c
! a1b01ef988913db389b66cfc97849e5f  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i16-to-i8.c
! ed7354d052f4c1044b40d9060a4b31e1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i16.c
! 319b80f5a1d200b55b8a4d8c2e177cf1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i32-to-i8.c
! 37df9631b97ce86ff4e8146052561106  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i16.c
! 5db1216b5077a7673313efe3de23bc18  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i32.c
! 7a43db355aa45d40fe8d515fe1f83cb1  gcc/testsuite/gcc.target/riscv/sat/sat_s_trunc-run-8-i64-to-i8.c
! 2f5174b3384c55554a8843931de1c577  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u16.c
! 0b859b532f995b1292c809e77a82a45f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u32.c
! a0feedb9361209aacd2d16c5ac8d9f21  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u64.c
! d61efd9be35b655ade76604daa619b6c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-1-u8.c
! 1bbc67ba82023270e4b3656432eb18f0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u16.c
! 0ff7bd3be458869f171af2104f0b9ead  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u32.c
! 5c93291a726079a43c09cb25a3f59be9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u64.c
! c3a88deb178d077c9fc9838786dcefe8  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-2-u8.c
! 2ac6ab1184575c34daec2c9b993afc5c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u16.c
! 927fad6774572255ce46701115fdfd95  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u32.c
! 218ed5c9ee999e9234cbc07ddf7701ee  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u64.c
! d05c84a83b6d89dd15384dd0874ce003  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-3-u8.c
! b99564528354d049135ace4cfddd405d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u16.c
! 0b20f40dd20b8aab2dc08b1d2ccba9ab  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u32.c
! 8b2d3ef31f6a93a2c147f0ec38701baa  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u64.c
! 674c138efc0a303117bc82da87ef8df0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-4-u8.c
! 5691b7b6ce3500368bec193e3dab820c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u16.c
! 61e2666b4670ed37e98685d0473d544f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u32.c
! 7d8f0a6d9dd80818ac6b126305b6ed06  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u64.c
! 7d07f6f3fa0e8554f09de6b136b161ef  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-5-u8.c
! 8ab9598065c877f649a71ccb32396d12  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u16.c
! f2eb2991897f99b4a070a321c522bd13  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u32.c
! f8b193c0679d5a3c67abd2571b7d930a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u64.c
! 179d7cd1db84158fd58658a5da8dfd42  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-6-u8.c
! 196e437e4858fa8f7d27620d5e963366  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u16-from-u32.c
! 00b8cfaf668487f7a8c8761a1e7fd5a0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u16-from-u64.c
! 397d0e246b92c33836c4dc0e9331b56a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u32-from-u64.c
! 411db43e27aeb5b779751c7523bbe018  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u8-from-u16.c
! 2999f54af1e8026e2f1a7e53a0f94cc3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u8-from-u32.c
! 71bf5f9ac92822434bc486d6c6913a07  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-7-u8-from-u64.c
! 91ea803e7ddc052793d7e4dfc8394b92  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-8-u16.c
! 2f05ee62edee1ef8dc3157892d2b0b36  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-8-u32.c
! a9bcd7e6fe3f1c08179d9e4d57193a28  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-8-u64.c
! 693cf77b8c3d716ab37a09307187fc41  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-8-u8.c
! 4837c15e0c8dfa7eecd494b79385c105  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-9-u16.c
! 82ce13125858327f1583d1a4efd3ca83  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-9-u32.c
! 4ca2ed37593f28a111189143b7810285  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-9-u64.c
! a904497db03f73e7de8b557e25f6b385  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-9-u8.c
! 31d76b84da64d10ea5b22fdd4f5be8f2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u16.c
! 9a622f228c3faa95e783147f1370ebf9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u32.c
! f6c8a38f627a880030c5796f4da2686e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u64.c
! b85f853f5ebfaebcf503b10d51133035  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-1-u8.c
! 9790b0f619aacc3a692259a65b04d5ff  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u16.c
! 3972dc42b7f8bf2dd4c0f96a0968b1d4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u32.c
! 3c6d2e26ba603c97ec805aadc128bc2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u64.c
! c147c7963a4ea33bf85790fe86dc4744  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-2-u8.c
! d53b7d9ac2e9fc7d969fc6fb7a362c46  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u16.c
! 20cd1f2b8041a5b2c36ab796372bbf66  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u32.c
! 6bf2016a65600964d6a2e13f2c05f78d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u64.c
! 72682a5d8b8e3aa6975d0fa4b2cfe157  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-3-u8.c
! 8cd75e0ca8193c2c8b3193a852fb33b4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u16.c
! bbe9350056344994545e1bc5e747f418  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u32.c
! ae2cd7c2eded3778694557cc6e8cf388  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u64.c
! 4ae05ea7b5e33486715ab79fd11c3dc4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-4-u8.c
! a0390ce9635867e005f5307c1bd9da3f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u16.c
! a8acc51f768d50c4938be47552aa5585  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u32.c
! e138d4d8367b156c76baa96c6a023fb3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u64.c
! a2467330c45c2ea7c7dc9d819a6f6f12  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-5-u8.c
! 51312cf70d653bbffc80b767bc08271e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u16.c
! 073894f9a55c94852f474d135537dfb8  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u32.c
! 52d5c1aa319b4419793f0a0309141b8c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u64.c
! 376bc4ccff842219940a16b9e2775762  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-6-u8.c
! d07a104e5333ce25cfe9ac473b65d4af  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u32.c
! 62cf139d7e5fa9d1877c2b65f8bc7b6d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u16-from-u64.c
! 0dc565ff6e66e44d1fec997ac181ead2  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u32-from-u64.c
! 047d211f5ca3225cdb91697c0cee161a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u16.c
! 137bf5a969a8ee4a5b5233bd668f9530  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u32.c
! 59eef9b24b516bcebc311cfb904f64f7  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-7-u8-from-u64.c
! 661e89138afd0c4af72600df1ee8e8b4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-8-u16.c
! 76b5617183dbe1efd761a2cc93516805  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-8-u32.c
! 9090edab94efa3e3e53432c7ae6c54d9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-8-u64.c
! 53c57a5d0ebecd570d38bb3e5674b037  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-8-u8.c
! abe8eb93d59266f95050bdfad7b8021b  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-9-u16.c
! c0006542ce61674310dbae51d512f1fb  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-9-u32.c
! 79bc7fe68dd48ca5b4df4c0f6fcf7a3d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-9-u64.c
! d7c296a592bba0a44f2bba4ee6e1b9c0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add-run-9-u8.c
! 1bd9dacdfc4086d15839a2c59a13219a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u16.c
! aac3af7c06e383040cad10df2cd3aa66  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u32.c
! 2e0635410b88b5548708ed02505d2ef6  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u64.c
! 187ba004d559669cb75c87725113c5fd  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-1-u8.c
! e691bbd3aa47dda8cb1a3b230c20842f  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u16.c
! 5f2f4a9b1ec5264aa52b7802a8c1f81e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u32.c
! 5dba7badb9c59b4af497764b483ba5f9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u64.c
! 0e5db2bb45e360a83f40e76ca452558e  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-2-u8.c
! 495d5e49fa7ce734c9a42639c6e73681  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u16.c
! eb4945ea9d66f6197ba3ffb8e9357c06  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u32.c
! b4671a8f1cbf6d434399efc76daccc51  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u64.c
! a6546547a1cd363d1b88279d075e4f05  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-3-u8.c
! ebc554499936854c349a4ce75368d0a7  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u16.c
! 4163848428ee114c89912e5996d803c4  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u32.c
! e8a7272fefa9d1bd994b6ae9567b91bc  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u64.c
! 93b1605fb175df8a6bbea3972bcfed88  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-4-u8.c
! 14a296769249327ac4ffc1d072806ad3  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u16.c
! 96bbfa67fb8303644323100ade468639  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u32.c
! 61cead759b131bdffbb8c6d881b12cad  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u64.c
! 062b4219a69f15663b942e6cfe2b5c66  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-1-u8.c
! 2eefc0134201a1d111ae75897183739c  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u16.c
! a886c0953533453f3f9cfddae4228a54  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u32.c
! e4f22d3c8e6d74e3b46a5090b250cf47  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u64.c
! 2d3a839977c930fbac340e0121a1c7a9  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-2-u8.c
! 0e91635120187a6cf8111dd80397e60a  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u16.c
! 60c253b653f8ee8b18bc56257f48455d  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u32.c
! 9f2a9f430e279be83c93c09b38652499  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u64.c
! b6a0a377ba719991251c17a002ac5034  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-3-u8.c
! 3a8f02f8241adbcbbe5420a49d53aef8  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u16.c
! d44a174ab4144c79b92c1bd4c5133ff0  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u32.c
! 30901eea04f311bd51f3fc386d0acae1  gcc/testsuite/gcc.target/riscv/sat/sat_u_add_imm-run-4-u64.c
! 3fe7b1903dd87c3e93deff5b092b8a13  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
*************** e1c2f1de82d739e459728af66d5dd616  gcc/te
*** 92716,92936 ****
  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
--- 104624,104998 ----
  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
! 56cb4f9b53c87580767ba1d82e03cc0d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u16-from-u128.c
! 821e094056be5457ca15b88e19089dcf  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u16-from-u32.c
! f2859d2015a9ff09b82d77fb7eb788dc  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u16-from-u64.c
! 58655b9331e61fadd96bcc0c4c763f03  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u128.c
! c3255dd535e583c1c4e685cbcd5b897e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u32-from-u64.c
! e9bcdbd172215088daea1a3b507b73b3  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u64-from-u128.c
! 0ab5a9ba4e2a4a91ebda3290517e4de7  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u8-from-u128.c
! 88f7e512a5ea7d2342403292b9b1e63c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u8-from-u16.c
! 705eba5d5ba747ca0ed8d33d118caa0a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u8-from-u32.c
! 8f5b49f79c449509292db41d9e65eb55  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-1-u8-from-u64.c
! 251cfaed4fc07574d958d0681d1dfec5  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-2-u16-from-u64.c
! 5b0850fbdfe60f0c7b2f6b7451708398  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-2-u32-from-u64.c
! 6543eb493f3a5de8524d7043324fb135  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-2-u8-from-u64.c
! 3ad49991c16ca99f3ab7d9759757e4f3  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-3-u16.c
! c00ace0b027f7e7b8f7fc73737789f57  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-3-u32.c
! 2254754e9f4987daf69ae6a7d18e8ee3  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-3-u64.c
! 4098d9b5a2ae40f79c74ed04d860ed78  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-3-u8.c
! 73de67c9a5eab8af47f432a5e5d1ab5a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u16-from-u128.c
! 1b6661ec72c87db1111732482fcebf34  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u16-from-u32.c
! 918b8b319026f92c12f87ccd533c9acb  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u16-from-u64.c
! 41d6935caac803235bbcc3e1cb0429c8  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u16-from-u64.rv32.c
! e882dab8cdc1a014c2e02b257e6fae1a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u32-from-u128.c
! 634db61f425926d120594a83a0f7bec2  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u32-from-u64.c
! 530fe6a8dc2694203476c2f3b530a368  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u32-from-u64.rv32.c
! 5629799ae1e359873b2b948dc1db66c5  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u64-from-u128.c
! b648b4211ca93534f45f273ea6d78a35  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u8-from-u128.c
! ba33ef8f801fa9b4136623078f1e83e6  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u8-from-u16.c
! 45b781334a1d553fd23aae9af4ebb630  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u8-from-u32.c
! 2bd5aa55e46cd6c14bde0bb9f30b3e4d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u8-from-u64.c
! 30506ca71dfb8809f6d3f511330fd947  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-4-u8-from-u64.rv32.c
! d496c8d4dc05c854274538f7fa986a6c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u16-from-u128.c
! 8071c7d80a911d21764cc2ef7cf50133  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u16-from-u32.c
! daed606783ba715078c763063fb71494  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u16-from-u64.rv32.c
! a711d148641e918a923032686e7feb20  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u16-from-u64.rv64.c
! 07a35d81d55a51a7aebac3d7770ea1d5  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u32-from-u128.c
! 362cf62d1e446f2903a7b55bebb6dcaa  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u32-from-u64.rv32.c
! 93a494f44670cf10df41e01ec4352d48  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u32-from-u64.rv64.c
! 0c5fcd6a99b79df59c2708ae7aa20783  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u64-from-u128.c
! f2a29f2daa827152046119e065d7e74c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u8-from-u128.c
! 63ca9da7e17ebdde93dbb1517a3152b2  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u8-from-u16.c
! ae253cdb3b48e6898f25a6a884085caf  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u8-from-u32.c
! 46f39225e1d986ce206163d2f348ac1e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u8-from-u64.rv32.c
! cbe5fc9dc5bb96c2c91e2afdfa0a7c81  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-5-u8-from-u64.rv64.c
! 9247bd53000cbd57332fcfa13602fb82  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u16-from-u128.c
! 9a183539857b831db1646e520d9a53ce  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u16-from-u32.c
! 9f4bcf22c54f1c2603ed739e25d47c04  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u16-from-u64.rv32.c
! 86e7e2707b933d361f3a08eee7d7744d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u16-from-u64.rv64.c
! e0389e6eb531cc3123ab18dc40b9ce8c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u32-from-u128.c
! bfa214e835df04a9526323412b239e0f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u32-from-u64.rv32.c
! b041ce7fa9c02872d2037f0a6531c56f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u32-from-u64.rv64.c
! 8e58b1d36cce34fdbef559241201e4ce  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u64-from-u128.c
! d1bf56463c7251298be6700786292ee2  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u8-from-u128.c
! f08f0341d3d7d898dcbbd582622f1741  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u8-from-u16.c
! 0c457c9034f5a6377b147780fa547d3e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u8-from-u32.c
! 64acf71832c8c7f696b0263808956dbd  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u8-from-u64.rv32.c
! b4e4c4acee9b76f38d2e98140190a408  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-6-u8-from-u64.rv64.c
! 213f269ae489c3a81750181f7536eb4b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u16-from-u128.c
! c765f2904bce2bf57c940fc6fe4d2bc6  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u16-from-u32.c
! c4953e0fd4239b4967606f368ebc2324  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u16-from-u64.rv32.c
! 30690b884159544d90ed5ba472969f77  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u16-from-u64.rv64.c
! f1901705d0ae0ff942c65b26e4d3edee  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u32-from-u128.c
! dfb2f79758f1aaa712dcb04384982a93  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u32-from-u64.rv32.c
! 44ff21134bedfcf414aecc7d52ff0e51  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u32-from-u64.rv64.c
! 6ce34c9dc172cc9a1615b1264e4a4738  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u64-from-u128.c
! 9521d0846ad0981135b4f822b1205d8c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u8-from-u128.c
! 5eff7b9e2063dd2966364b4f97c1479f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u8-from-u16.c
! 0a8e6031d05b173d6829d2c50e44334d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u8-from-u32.c
! ca0a367aaf1d0704d8d137d8e655fcd2  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u8-from-u64.rv32.c
! ed7099efb5382a6d68e5be28d3a401da  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-7-u8-from-u64.rv64.c
! 0ce34f9b7a600b6308cf3d42c834807d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u16-from-u128.c
! 9a49c9d1bcc533ab32259a7008c62db4  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u16-from-u32.c
! 008daca37dae5e789b3eba70f89f8d90  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u16-from-u64.rv32.c
! 9cea8d28faca06fcac55a01adfe9c95f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u16-from-u64.rv64.c
! 076541926bba6c9f78024783141a8d95  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u32-from-u128.c
! ed5c2ef12447ebe84e9a9e145f1eac8a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u32-from-u64.rv32.c
! 62f19a54cfd1e338790a198cbbc83ebc  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u32-from-u64.rv64.c
! 03ea16dc907f2eab4f385654a54567c3  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u64-from-u128.c
! a21a9ff681920f425633f9f241745446  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u8-from-u128.c
! 68a498b70a175143e9a53ee5621fa9fe  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u8-from-u16.c
! 90a05cb7c861dbd31c9679d150765a44  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u8-from-u32.c
! 00c0815377e8ef9343a5e3ef13bbfc84  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u8-from-u64.rv32.c
! f13ed051f5f3f0dfdd47c846125bfba1  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-8-u8-from-u64.rv64.c
! bf3cc27ddc2ea3d61c508c988cc37520  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u16-from-u128.c
! e532a922f2b1c193ca39bdfa1e70bdba  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u16-from-u32.c
! b343a3fe775fb03e665506a088734673  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u16-from-u64.c
! cb3764339bb4dd182762014603d2b96d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u32-from-u128.c
! f7d9d657759a7857b9a1ffa3acee4898  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u32-from-u64.c
! 9e81a43db38c46a557e405f8b9c1d1aa  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u64-from-u128.c
! 6dc9370e4dcf085a25f0a560f2ac2974  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u8-from-u128.c
! 454d165b2d142ec005388001913be36b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u8-from-u16.c
! 631a6cbb82be1a736c10114ddc36aba7  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u8-from-u32.c
! 2b833161e8665020db80afff90181f22  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u8-from-u64.c
! 6e4e3e7e8157d61d92fd2d57b879983c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-3-u16.c
! 7c4b9349b8740bc9b8a5febcbb96897c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-3-u32.c
! 4c1f4994dcf2fb5cd55247f60b8383f3  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-3-u64.c
! e0061662ada0ac0320a626578bfd01f1  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-3-u8.c
! 94ce12328ba00a92617876d347edfcec  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u16-from-u128.c
! d0ed1ba8de32ab54bdc94322bdf1a5da  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u16-from-u32.c
! 8dc1ec869737a052d948ba1c02e8cf2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u16-from-u64.c
! 2c6a28512ed290c9b2574f17b9d72fa5  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u16-from-u64.rv32.c
! 9fda448b3fed4def315d12909601bfad  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u32-from-u128.c
! f321bc1a9459f02c0d4951e7e09988c4  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u32-from-u64.c
! ed0957c56643f0f3bef9aca9b0ee0cab  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u32-from-u64.rv32.c
! 619ddfe553bc3ee09226b82531e70030  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u64-from-u128.c
! 42c47e65fe582062bce977c849738004  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u8-from-u128.c
! 566ecc869255d6df7bff5e1bafa42099  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u8-from-u16.c
! 669bf12578f4f22bf2931da570c60419  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u8-from-u32.c
! f321bc1a9459f02c0d4951e7e09988c4  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u8-from-u64.c
! ed0957c56643f0f3bef9aca9b0ee0cab  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-4-u8-from-u64.rv32.c
! e06c27366478438cf5df8391e3dc236c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u16-from-u128.c
! eab1eb352b821667b8b92563a937d6f8  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u16-from-u32.c
! ae9bb21fd86190394214c04215931509  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u16-from-u64.c
! 805a27a831075137fa55c7cd447cc83b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u32-from-u128.c
! 46f2f184bd9c1cf73825efe61a913d70  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u32-from-u64.c
! c2ca006bc7edb3f2955e6195faa37d32  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u64-from-u128.c
! 0930c67a6b16634171d7906257f5c04d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u8-from-u128.c
! 535055b68ed73f2d7d5b863617b9c15f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u8-from-u16.c
! 59365e028b7d97757228ecf92633684b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u8-from-u32.c
! ef26294b4e42f4cda3877129c397e6b6  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-5-u8-from-u64.c
! 5070cd9304c2ae1039e021a535b3fc46  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u16-from-u128.c
! 805500b2603ee28decca3b2715393a6c  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u16-from-u32.c
! c4f94dff2a5d24fc9665e137cf1205e9  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u16-from-u64.c
! 1839efee75434bd5f24727cef120cd7e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u32-from-u128.c
! 992ed4ae72316594f2644752f0437a28  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u32-from-u64.c
! bb5ec1f458c12fce3953f4abdff7370e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u64-from-u128.c
! 5070cd9304c2ae1039e021a535b3fc46  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u8-from-u128.c
! d3e459ae2615348c3e9dcfedadaa2cbe  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u8-from-u16.c
! 190681ca561aea583411819535100887  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u8-from-u32.c
! e29132a3cc256c80f2904f908242a106  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-6-u8-from-u64.c
! 1cad1d143ce61c06688e1ca65d9fbe7b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u128.c
! f656c6b7c5109fac89bfa9141be88bb1  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u32.c
! 257fb4243c1e436cffd84567da07100f  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u16-from-u64.c
! 0af141d140a84c72b2ee5dee5568ca3e  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u32-from-u128.c
! daa1453aff927b041e71368adf45447a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u32-from-u64.c
! 327e04825ecc04d45adf981439c9e0ee  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u64-from-u128.c
! 1cad1d143ce61c06688e1ca65d9fbe7b  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u128.c
! cce4c4153cab02cae52f9a2c2bf17476  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u16.c
! c62be36f24cdc6b4eb80d6e4bdb2ab5d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u32.c
! dd6d6e0b818ddd6bc69a3b409901c4bd  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-7-u8-from-u64.c
! 2a8d10314d0a376da5859b40eab526f9  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u16-from-u128.c
! 5c0083cac1bd75ce5b48316bb7ecbe45  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u16-from-u32.c
! 973bbc37b54ca296c825fd85425e6bce  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u16-from-u64.c
! 4c8b759f4e3ab50d70a7084127d23345  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u32-from-u128.c
! b966a034644b939e81689459ecccac53  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u32-from-u64.c
! 26a4383fe84ef666a30cb2a993da6f5a  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u64-from-u128.c
! 2a8d10314d0a376da5859b40eab526f9  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u8-from-u128.c
! 96194d20c5d70e9b0ff95678e738305d  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u8-from-u16.c
! 5a9f95c1554125bff5ce431a0f74a4e9  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u8-from-u32.c
! 601fbb518a0377a1fabd7cf270cfe3cf  gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-8-u8-from-u64.c
! fdd9d0d3a36236e0472d000f8833d982  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u16.c
! e3e2bd9a544f75219a218a5520d41e4e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u32.c
! 7239f33d03967abfe59724a5530c6c52  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u64.c
! bc87203dc4715841e91a4f984f03734b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-1-u8.c
! 50dfeaf960ef9370b312708c84ff3b00  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u16.c
! a00815a408e8ad447a89cfffa63ef8aa  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u32.c
! d98c8561b96a09536c7aabf3fe5b89e7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u64.c
! e51e6155085200931c7217e7b98b4d4e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-10-u8.c
! 38c781031909268a40154f6fab4f1e9e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u16.c
! 7c7456c4e71f6158bcc28dd1b3d33ab1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u32.c
! dd1d3182a0a8005fa92f3cba1e06f134  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u64.c
! eb5f540aa65588af6e3f6140191b4d2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-11-u8.c
! d8293591f25818b453399e042f91f0de  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u16.c
! d812b33970975e0304f6c1262e9fd0db  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u32.c
! 0e02ae17273bec258baa375b4a14d850  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u64.c
! de85dfe94967439a74fb0eebdc03235e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-12-u8.c
! bcb9786bca6ec85f10f1b3c8982492fb  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u16.c
! 5d8c673e8216130fc39b889ad2e4d2da  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u32.c
! f0ac03476a2dc0bb4a6cc08c24afc934  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u64.c
! 86c01a88759b3b20a0040bdefe26da9e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-2-u8.c
! 47141f36397b2beb3b8c039bdaaaf746  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u16.c
! 54108fa9d8d920b7d936e1e9dfdaf119  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u32.c
! 6e35544812b668da8ff0d0c2c7b97e18  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u64.c
! 4926dd615796201acc6b33db30497a97  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-3-u8.c
! ab22934f864b62e9669053bc8865dd7f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u16.c
! 41539ba1121425fdfd1a42080d4eadf1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u32.c
! ee5629ed1963de814272164ee3bd2f4d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u64.c
! dd048d6c81259c96ff0423bb024dc14e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-4-u8.c
! f86bb3025a3c2ab107b24ca459e9be84  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u16.c
! 329e9d7c1a8b7ea109ac560fe66fb030  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u32.c
! 7d910825c809ffec34146a160672dda7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u64.c
! 22198e9eb2020f2ad91b3dc96be21492  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-5-u8.c
! fff6481478d0284c90ce83203898c7b7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u16.c
! 6585b94ee8e1176b32d60879d5289c01  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u32.c
! 774a10aaa8e319b4f2a32252fa2a74d1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u64.c
! 9ea1e53d3ff7b5ff9fccb8b1b8ed524a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-6-u8.c
! 6cc92596d47fa76577c4798ec9928868  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u16.c
! aab2931690ecc89903055e609459582a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u32.c
! df3e5320051529e41304d409566bab86  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u64.c
! 6b668ef404663c7be859474ca3971521  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-7-u8.c
! 901409b57d0ee07898d148a2e38e140b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u16.c
! 1d135ff07fd2bfbc20c1d175cf024a2e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u32.c
! a8f17d4c137a50f6cd8ae6350cacda09  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u64.c
! 5af4d9916b6798cb420dd9a1e3a117a5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-8-u8.c
! 64b5149164fd8d49db80dd9f49b8bf80  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u16.c
! 15f49c1ba28239f3c73a2f46133a1c7a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u32.c
! 74d28a417583cb729d13906bc72c62e1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u64.c
! 34ed215507cc2884804eb3d6cb43633f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-9-u8.c
! 530c92f46979f3d6c2646f6edc6e3673  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u16.c
! ad3d69a4aeafd738ee3d27c23cfa66c6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u32.c
! 706a7f023373f9eb8ffa1791ac4892cc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u64.c
! c0474950fba61d7583e55f089fd0211e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-1-u8.c
! 8099d0604ec06fe9a1bce2aaf34c8b3b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u16.c
! ba4d26ff265b30eb6c173dbf2b13d513  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u32.c
! 488d0c6f7c5cbf3e466498b660113b46  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u64.c
! d5dd359ca1c9bb1246b303637c5e7b6a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-10-u8.c
! 9b64f4aa49d0eac910c0209cc377a58b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u16.c
! 59adbc49f98c4f23311c1fcbb2458a87  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u32.c
! e04a79f9f21f7a7a00327d375c1706e3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u64.c
! 3ada20cc70d2c85295cf06caa9146e3a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-11-u8.c
! ad80e86b368668baa2f61520e69bb53d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u16.c
! 6e0ec121226c3c07baf300d7eb80b541  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u32.c
! 0e90bd4e272fa7342ea3f08f3c9239a5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u64.c
! 5b5545c2649f739a3f3a87d4980ac5a5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-12-u8.c
! 0ddf2bbfc4e6d1ce3ffbd960e3079b2c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u16.c
! 7cbd15222bd0db8ab62a0f0d28396bb7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u32.c
! 2a57a1f47ff6e39cc46558d84fada0dd  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u64.c
! 145b62c32a8e6300ab04251c8120f74b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-2-u8.c
! 1670b3168b9c5b07799871b3b4103068  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u16.c
! 78eaafe2a7ecd439de099c3a1a63a4e4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u32.c
! 035291ec5cbe5a422f0ffa2a3bb984db  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u64.c
! aedd56442cd53a829a497be9e7e0b556  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-3-u8.c
! 9b80b81a1faed651bb505ddecd412171  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u16.c
! c022ff3dd338c784cefdd9ddd199d9a6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u32.c
! c8c7b37b3799b325ff4af83f6f2f580c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u64.c
! 18cb09fc643d8eced54b2fa07dec9ed9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-4-u8.c
! dcde2d2f17f715c591a75e904bdd63a0  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u16.c
! b3c3995d541fb86eff1936d063c2fd59  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u32.c
! acb202fe672e506552dceda1873f996c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u64.c
! 17033ddff3eeb4c0765236df99432cb9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-5-u8.c
! 60ea422ac0c06a401e7bbb1befb1f6e9  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u16.c
! e5123be215a314934340ea3d67bffd5b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u32.c
! 36c6a12b02f76afd288e4ef260ac09ca  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u64.c
! 9684f34ae6f336ee816857fea59ef86d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-6-u8.c
! e9c06697491cd95c09328d73b99dd178  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u16.c
! 7e843fb79dc4fee34d5e440af5965771  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u32.c
! 24eb317f5b5f1ab102954aa5852fdc28  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u64.c
! f26cc5bb9a0af281a654ab19af6ffc2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-7-u8.c
! 84ac49d3910f4b4df505a89c44b83ce3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u16.c
! ab692a7c4b6e7f90777609416009d4a4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u32.c
! 7fbf1d08cb86046df7dd95b5d667a142  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u64.c
! 2749e639b3bf9e2a8990cb8250d4efba  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-8-u8.c
! 1b7554283c5e98dd50a4c55b5f25e134  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u16.c
! dc8b9bb17c1d17f44b141af58786c234  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u32.c
! c2605f40d4d6c9b2c0257b43552ec08d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u64.c
! ce15d28df2a0d69bed829996ff1060df  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub-run-9-u8.c
! 593efb64cbe327bb73a3a1d5e0c9fec5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-1.c
! 17d09e0747179808c78ac2b4e3954318  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-2.c
! f3bcc20a5a81e541acfc06d5f940790e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-3.c
! ac4e7a94df7428df95f58b279ea7bc1d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16-4.c
! e893b6b1beb8eb567c5ca7e945f9573e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u16.c
! 49a39ae6324d084326aa4fc9e2df3109  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-1.c
! a5b85c46cf4273102a55760d1c9f4a2a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-2.c
! 41e46e463062a2137eb13ee783c5ce72  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-3.c
! 3415272df9eebc47fd9c08a7fc081424  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32-4.c
! 035f9327c0fcbda8e3daf03ae199d509  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u32.c
! 6b91c2ec7f410ac4e75f3e6fa07f9bc3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64-1.c
! b765b6b25c92b8aa08b0c1d684472b33  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64-2.c
! f66c3b1e35db67a008327a714995870c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u64.c
! 7d2748ad7bae01d85a79ea6f69dd17c6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-1.c
! 97588a74114843fb82c2badd8bff9aac  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-2.c
! 3c21d8951776da652edc2a58715f0929  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-3.c
! 96df2ff2a308b0f51cb83fa5f01d1643  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8-4.c
! fe001c98d55954c67a4d829ec65f9405  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-1-u8.c
! 1e7d1570740330237d54acbe35d900a3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-1.c
! 7a494c75be695787780f4f0a91882768  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-2.c
! fbbc29eba93f4104fd6a512a9e8773dc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16-3.c
! abccce240654b75e06ff3a4782670a5a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u16.c
! 35a8b9389cf891632c7bd0ee55ad8e1d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-1.c
! 66d9b1456c2c2b150f33fe62292b80cf  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-2.c
! 7b9d3d57d59bf61cd0ef920ad4146fce  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32-3.c
! b8826485e8d61606a304961ba9844e1f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u32.c
! 9a78cc13bae5d18e4bbf72033381c858  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u64-1.c
! 3dd57e69bcb0690ac5445f1881fb8fde  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u64.c
! e09438b68fdd6d086435889bddd65677  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-1.c
! 10815e56ef49af9b33bf83e37be52f71  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-2.c
! 988a9e7f952ca50efdf581bd06e7a1af  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8-3.c
! 13be41aa821257bc9635796ac59fa62a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-2-u8.c
! dfaaec03958667a711b63944b8139f99  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16-1.c
! c7066a3c3ce6bfd6ffc11068f5558a47  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16-2.c
! 5684efa70325dc3d05bc27c160e9d63c  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u16.c
! f4c02384b2c627cbfd163b1878d9a1e4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32-1.c
! 7d2fc5024ce579ccbf934e347c9498ef  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32-2.c
! a3faf7d9afcebd480cebee8aa4f8a81e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u32.c
! 23c0ed21bf91afbd7ecbdd158f32f9f3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u64.c
! 84b5c2d03d8046b83c3b312e390070d5  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8-1.c
! d84dce46018a400ae8a98b2a9225ce48  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8-2.c
! 5be3ab70b45a2ad1a87050ff44828ca1  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-3-u8.c
! 07fc60b08f362176738c3bb10a5e0e17  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16-1.c
! 54626bbcc18aada5a58162287204014d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16-2.c
! 17aed0816dac2915253b973d550d10fe  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u16.c
! 35a8b9389cf891632c7bd0ee55ad8e1d  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32-1.c
! 66d9b1456c2c2b150f33fe62292b80cf  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32-2.c
! def66f4892789c813302183fdd7c81ab  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u32.c
! 3dd57e69bcb0690ac5445f1881fb8fde  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u64.c
! d634360d120374cf6c1ec5951bd21a5f  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8-1.c
! c6670cb6518a6fafadf439205e9f182b  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8-2.c
! e6d3e213f4c77a24fbe87f3235d897b6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-4-u8.c
! fc8da7422e62b0611413fbb070b094ec  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u16.c
! f50a5ec55f5eb9c52bb6e0a9c9881cfc  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u32.c
! cb056b92cd7764f1d1a02788e8174ba7  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u64.c
! e3230b70a2d2e73cdbf3671517873f6e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-1-u8.c
! e9cca0837d1c6e649192075ad1dc2acb  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u16.c
! 922c08151e965f21e98507a4a49bd5ad  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u32.c
! 1f354c11f3b48d063b41083b30e65844  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u64.c
! 41619a2727a7c72c883618b5fd82acd3  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-2-u8.c
! 6e9cc08ecab4e15d3d666c46d398219a  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u16.c
! ebdf367653bb1373ab80b9b4245d5beb  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u32.c
! 90796ecd88ea2c61775a16a1d6af5842  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u64.c
! a97c066b0167fd5f467fe6944d8c9372  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-3-u8.c
! 9279bb89aeeee7d8e57bcab3eb9b4de4  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u16.c
! e62b3b8d94cca737c4b1753309c1dfb6  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u32.c
! 9289ecf49734c5ae1625db14e779fc26  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u64.c
! 42541ae28750ca5f7daa840bbc06e35e  gcc/testsuite/gcc.target/riscv/sat/sat_u_sub_imm-run-4-u8.c
! dfa425e8b27b976cd03e8c24cb55cecf  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u16.c
! 7c73ce1b5b9c9781d763c4b4e2073089  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u32.c
! 6d29708dcf58e00bdb8f9d9ad78f2476  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u64.c
! 2be7fb60f71475d6451866279af007e0  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-1-u8.c
! 52a7a6b2ce285a93e3c6e8353df9a148  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u16.c
! a27520bdf9f93ee70026add71a26f405  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u32.c
! 1c5c64252be44b44298fb7b952917d69  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u64.c
! 2b941772e801bfa777fba65d44688a2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-2-u8.c
! 963b7404d7b1039e409561a3ede9780f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u16.c
! 110dc3a3ff75a070f9b514345541d5ee  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u32.c
! 7d52f39e98b4c2942a182afc0c1b584b  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u64.c
! 94419403d2725058972b412de22519cc  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-3-u8.c
! 47a102915fb93018e232f3b55654205d  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u16.c
! c1690264ebfa2210cb131ce66b991190  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u32.c
! 6895d66c40b94aac868762362f564e9f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u64.c
! 49cdaa5f5fac7d1fd84f769ac88d4030  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-4-u8.c
! 79f22fd4fdba665904d179c146a9287b  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u16.c
! 7b0b665c22148b7418663029d84141ea  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u32.c
! 9c683b3e2a5484080ab8451326154278  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u64.c
! 1dce7190a59cf24b3394c68b681ec67e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-5-u8.c
! 2b69e53cf84efb373a751b2a23d16599  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u16.c
! d46d9155be8e6c3ce642ee9aec2192fc  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u32.c
! 6a9328b7ea2fbbae43ea822b1a3915a2  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u64.c
! a36436a4962a492c19e04dd904fdbc2f  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-6-u8.c
! 83485ff93e4a1b1e11f531b2cfa234bf  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u16.c
! f4547c37d688a1c07c45242073862ffe  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u32.c
! 7ed0c7699f4fa7e63f44200a88b71c92  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u64.c
! 59c4a9724e9573d6ac0cb3800b96b0cf  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-1-u8.c
! 6effc2dca08dd1293b75e9073872b8e1  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u16.c
! c2cd946eec662cbb6b9e50f689de23ec  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u32.c
! 1b02e489784fbd9cc5ca514732574b97  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u64.c
! 004619dab9594bb78b5f45688fb71d09  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-2-u8.c
! a24797ce66ea59633455ef28e55e5272  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u16.c
! 8a2f783859a73b8d782e162f35915525  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u32.c
! 97edf5bbdfb76146e4bb0a9c1b477397  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u64.c
! 619815b76a4e50540246c9d437fbf1df  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-3-u8.c
! 1f261ed64519c2d575c35a42bdc85579  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u16.c
! 1f261ed64519c2d575c35a42bdc85579  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u32.c
! fddea6c17dedf07f0ffe70852b61aa9e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u64.c
! f750d8f2c7d455588493b627d92d5f9e  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-4-u8.c
! 86584a37b0d6b57b959ab9a8bb181bd7  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u16.c
! 74fc760ecaf664cc894981ddbf76ac55  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u32.c
! a230d88a6414cef1b20b222e3a1adbee  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u64.c
! e0047640d284156084cdead292669b5d  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-5-u8.c
! d540a13d769b59e48d987e79fe6d5acb  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u16.c
! 54b3ef21612601e14338f0070a9a7e6a  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u32.c
! dbbc7a1e875d3bcd97b9aab3bf11ab0a  gcc/testsuite/gcc.target/riscv/sat/sat_u_trunc-run-6-u64.c
! f6f7acec076cc9157b5ce994bcba39d6  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
+ 05145b7cd62c027dd216fbf4c9e98b18  gcc/testsuite/gcc.target/riscv/sat/widen-mul-0.c
+ 05fb656721ededa11fa864f9cfe3dbf2  gcc/testsuite/gcc.target/riscv/sat/widen-mul-1.c
+ 663395b5b66e507724ae0c81d37a3e0f  gcc/testsuite/gcc.target/riscv/sat/widen-mul-2.c
+ 95e41646c332613a9c77d61a8d41c8ff  gcc/testsuite/gcc.target/riscv/sat/widen-mul-3.c
+ af8f66bcecc0112ea97f9cce9bf9f4b9  gcc/testsuite/gcc.target/riscv/sat/widen-mul.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
*************** e235c279f7ce15f9087254bf97918762  gcc/te
*** 92941,92946 ****
--- 105003,105009 ----
  88dbe500ee71e24bf3a5827524daa6a6  gcc/testsuite/gcc.target/riscv/save-restore-8.c
  ca1e563124a7035c98d86fadbdd1371d  gcc/testsuite/gcc.target/riscv/save-restore-9.c
  7da6d66a53ccd636e543f8018347d057  gcc/testsuite/gcc.target/riscv/save-restore-cfi-2.c
+ 80b725c5d705cb9cae7f47b7ffb79417  gcc/testsuite/gcc.target/riscv/save-restore-cfi-3.c
  01eaf37800a68468ef47b20ff1881af4  gcc/testsuite/gcc.target/riscv/save-restore-cfi.c
  2a8ac42ddf2e78abef108bf169ba5c06  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-32.c
  5d76e4c7052e08abbf4abfe2242a732d  gcc/testsuite/gcc.target/riscv/scalar_bitmanip_intrinsic-64-emulated.c
*************** a84224faacb7d93a1bd4c61397928413  gcc/te
*** 92971,92977 ****
  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
--- 105034,105040 ----
  98c83ba3b448e8be3a69620427e8a37b  gcc/testsuite/gcc.target/riscv/shorten-memrefs-6.c
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  5c6f219d3c6f78457ccc2f81108fa5cf  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
! 52ab5a107742fe4b4967ec31e30faef6  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
  82d8412eb43370360f8ac3c0fc0ce4fe  gcc/testsuite/gcc.target/riscv/sign-extend-1.c
  cc32dda6538c5a12c022772b1eb4f6f0  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c
  21c1c7f3bfe8b89696e3a49318610d40  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-64.c
*************** b094c95e67c7236f65fdb03707497d4f  gcc/te
*** 92989,92994 ****
--- 105052,105058 ----
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
  6bdd3e0dc6b0f53ca23248ab17fdebaa  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
+ 66e4f2f8f9704c3bf9d940e3ac922074  gcc/testsuite/gcc.target/riscv/snez.c
  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
*************** b415bb951ba55d3b5e901876751b51e8  gcc/te
*** 93030,93036 ****
  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
--- 105094,105100 ----
  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
! f6c69573e846720818ee65a925b0af14  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
  7304074a0af5a5e8dbb86e7f5c0467c8  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c
  09a9691c0cf30e284d645d7330825235  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c
  e95dcee6d2cd4bf984685e71d71ae504  gcc/testsuite/gcc.target/riscv/switch-qi.c
*************** bac0361fb33136b0e86b4e2258eb58d4  gcc/te
*** 93077,93087 ****
--- 105141,105174 ----
  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
+ 5113a41d84be2ed5d353a55508f13946  gcc/testsuite/gcc.target/riscv/target-attr-bad-11.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
  29a602b7f814b2f1c3f0991f0e0525b8  gcc/testsuite/gcc.target/riscv/ventana-16122.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
+ 6d3d9a73b1f2951561a607e43dc3ee05  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-1.c
+ bbea78b03a366ef3b9959235222dcca0  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-2.c
+ e7110de4ebd4f3cb73cdb7b613277e98  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-3.c
+ 1a0c39ebc1e124b9221f47723a6992c5  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-4.c
+ 6aa07536803637239445adf16eb9a95a  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-5.c
+ 41d69068183cd3169a41c201bd259262  gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-6.c
+ 922da5bf863dce7cf0e8ab2cdda4b258  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-1.c
+ 73b8797c006e4c6a9ce935bf4c399367  gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-2.c
+ f644581474db59b3e3cb0642c5256527  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c
+ 76b7601388ff5b8a560c86f5a04ec28d  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-10.c
+ 465a74d8f1553c256b81aff9b796cbf5  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-11.c
+ 2bc2e8f621e2a2008d3b5feb50ea3fd9  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-2.c
+ c19eab8b0b1082ce3883a7d6095b71fd  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-3.c
+ 6ff2fdde708feab93d4e05beff5e6a1c  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-4.c
+ bc29f2c371cb4af7a709c5fbe461dd87  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-5.c
+ a14040d24689010e05e0438605f25d85  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-6.c
+ fd162cca32b8c2cfa445df6c13e31c3f  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-7.c
+ f25ebf355237e8ce7705dcccdff35a0d  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-8.c
+ 8c04b3203c8f60387071542a21380de2  gcc/testsuite/gcc.target/riscv/xandes/xandesperf-9.c
+ 46c65ef5612e82f5d9ee2842af6c427b  gcc/testsuite/gcc.target/riscv/xor-synthesis-1.c
+ 857d7c1adabe9cb7d94b5f83613082d2  gcc/testsuite/gcc.target/riscv/xor-synthesis-2.c
+ 9eb551876f81b7e2201fe6c61dc463a0  gcc/testsuite/gcc.target/riscv/xor-synthesis-3.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
*************** d1cbe536eae2db873177ca9010a38ec0  gcc/te
*** 93124,93138 ****
  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
--- 105211,105226 ----
  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
! 2ac4895cd3fc46a1ee91a4f95a04f5cc  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-xtheadfmv-medany.c
! d72002750d8f9f6f373c1ba680c9a5da  gcc/testsuite/gcc.target/riscv/xtheadfmemidx-zfa-medany.c
  d76591e96cef314b7108574103443924  gcc/testsuite/gcc.target/riscv/xtheadfmemidx.c
! 2bafb510f62e2b47544bf39329a60de2  gcc/testsuite/gcc.target/riscv/xtheadfmv-fmv.c
  32ba3840c2e6fc20c916dbf78497a77f  gcc/testsuite/gcc.target/riscv/xtheadfmv.c
! 04ea7db9e549c8548de56cf563098db0  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
+ c44c97e642c5bcc347287316564266b7  gcc/testsuite/gcc.target/riscv/xtheadmemidx-bug.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
*************** ada8ab5ecb79eb9a7c676ead41d16895  gcc/te
*** 93157,93162 ****
--- 105245,105251 ----
  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
+ 46c4eaf7fc54b3a879b2aff3881f11af  gcc/testsuite/gcc.target/riscv/zalrsc.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
*************** cf1c8476f01377285a0b1c08de6df67b  gcc/te
*** 93167,93185 ****
  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
  5dbae90a34a2a69760f83a81cd1339e7  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-02.c
  631834ee0d029b2cdbfa2459fe9543fc  gcc/testsuite/gcc.target/riscv/zbb-li-rotr.c
  3aa6b271c776af41bb52f19f6d2be52b  gcc/testsuite/gcc.target/riscv/zbb-min-max-02.c
  cc6086a551f06fe43ba1143dd3b45a0f  gcc/testsuite/gcc.target/riscv/zbb-min-max-03.c
  034755623c7d07978a584f1f4a9fca31  gcc/testsuite/gcc.target/riscv/zbb-min-max.c
  3ef81d36e50eb61cd5acb30a75c2df00  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
  ae2eedb5d93df4bf4c2298ef65fc68d4  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
--- 105256,105275 ----
  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
! 2e6bd091b9b1d2d6fcb7fdfa8aa1641f  gcc/testsuite/gcc.target/riscv/zba-shNadd-10.c
! 85bbbaeaa23916a0c9e7e6745ed586de  gcc/testsuite/gcc.target/riscv/zba-shadd.c
  ee390913829a46a6ce5004198d82bb62  gcc/testsuite/gcc.target/riscv/zba-shadduw.c
! 1e372c3919a67ae0d4e075b9c20347e5  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
! a051ed98697d928f921972ad228d616d  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-01.c
! cc1048ad15d6f0a5bad76a5c0525c334  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-02.c
  1631a0846b45d351dfd85d51d24d1e0a  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-01.c
  5dbae90a34a2a69760f83a81cd1339e7  gcc/testsuite/gcc.target/riscv/zbb-andn-orn-xnor-02.c
  631834ee0d029b2cdbfa2459fe9543fc  gcc/testsuite/gcc.target/riscv/zbb-li-rotr.c
  3aa6b271c776af41bb52f19f6d2be52b  gcc/testsuite/gcc.target/riscv/zbb-min-max-02.c
  cc6086a551f06fe43ba1143dd3b45a0f  gcc/testsuite/gcc.target/riscv/zbb-min-max-03.c
+ ea1b6a61c1909e52158b60625a154098  gcc/testsuite/gcc.target/riscv/zbb-min-max-04.c
  034755623c7d07978a584f1f4a9fca31  gcc/testsuite/gcc.target/riscv/zbb-min-max.c
  3ef81d36e50eb61cd5acb30a75c2df00  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-01.c
  ae2eedb5d93df4bf4c2298ef65fc68d4  gcc/testsuite/gcc.target/riscv/zbb-rol-ror-02.c
*************** dc6f8b5f80e721870422c74d7b5d0cb2  gcc/te
*** 93190,93195 ****
--- 105280,105286 ----
  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
+ f4db64759704b4c644a500e71b6685ab  gcc/testsuite/gcc.target/riscv/zbb-sext.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
*************** ea829f72cd66a60c972658322a071ce9  gcc/te
*** 93252,93258 ****
  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
--- 105343,105349 ----
  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
! 9e938b65fc4a2342ba61ecfaa35b4a1c  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
*************** ba47b75208cc6c431c72274b32d7fd1d  gcc/te
*** 93273,93278 ****
--- 105364,105370 ----
  b8f6723972246fcf0c403bc0a4fff8b8  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_imm_reg.c
  e92eba08f2739947db68fef062bd932f  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_imm_return_reg_reg.c
  c5e49a277aa6f0a5b9a5eca8c469a469  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg.c
+ 6112e534b1b04803b00f47bd0fb0657a  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_reg_return_reg_reg.c
  c0e16418fcba4200f353fc05cb0cb2cd  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_0_imm.c
  08ba82f98c56bbe8ad4ab57c378fadb7  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_imm_imm.c
  871a65c271bbf0b6d94aeedf867cb4c3  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_compare_reg_return_imm_reg.c
*************** e1529a0ad7554cca8abf99b95845847f  gcc/te
*** 93283,93292 ****
  f741e193bb3f2f4fbea1bd529b1140b6  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_reg_reg.c
  6ab36e0533ed582948d75c21b09cbf78  gcc/testsuite/gcc.target/riscv/zicond-sfb-primitiveSemantics.c
  a009fbb003840ecc4d7a50c463fa72da  gcc/testsuite/gcc.target/riscv/zicond-xor-01.c
! 7e2d2d4e63580844a236c47de8a815cb  gcc/testsuite/gcc.target/riscv/zicond_ifcvt_opt.c
  bb2b3e0ab01f1ec16e989024621b390a  gcc/testsuite/gcc.target/riscv/zihintpause-1.c
  2b3fb44b9845e2008eee1f6ba7b44bc4  gcc/testsuite/gcc.target/riscv/zihintpause-2.c
  b93bb61a6adb25211cec61b639273181  gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c
  d96c5cb0ac69fd365634d1203364b2db  gcc/testsuite/gcc.target/riscv/zknd32.c
  6e2cf258e5cd8bad0c1d9153cdb923ad  gcc/testsuite/gcc.target/riscv/zknd64.c
  90d1bacbe4e275bfd699a8d6170e616c  gcc/testsuite/gcc.target/riscv/zkne32.c
--- 105375,105387 ----
  f741e193bb3f2f4fbea1bd529b1140b6  gcc/testsuite/gcc.target/riscv/zicond-primitiveSemantics_return_reg_reg.c
  6ab36e0533ed582948d75c21b09cbf78  gcc/testsuite/gcc.target/riscv/zicond-sfb-primitiveSemantics.c
  a009fbb003840ecc4d7a50c463fa72da  gcc/testsuite/gcc.target/riscv/zicond-xor-01.c
! 2df968b08a4587cf0ef8cb76cb4ef0ee  gcc/testsuite/gcc.target/riscv/zicond_ifcvt_opt.c
  bb2b3e0ab01f1ec16e989024621b390a  gcc/testsuite/gcc.target/riscv/zihintpause-1.c
  2b3fb44b9845e2008eee1f6ba7b44bc4  gcc/testsuite/gcc.target/riscv/zihintpause-2.c
  b93bb61a6adb25211cec61b639273181  gcc/testsuite/gcc.target/riscv/zihintpause-noarch.c
+ 70e2ba21009e1db30b88fe6569ef97c9  gcc/testsuite/gcc.target/riscv/zilsd-code-gen-split-subreg-1.c
+ c4d11819daad481809a78407b7815f76  gcc/testsuite/gcc.target/riscv/zilsd-code-gen-split-subreg-2.c
+ f7d12c5379fd73c039260ba85d51a8a7  gcc/testsuite/gcc.target/riscv/zilsd-code-gen.c
  d96c5cb0ac69fd365634d1203364b2db  gcc/testsuite/gcc.target/riscv/zknd32.c
  6e2cf258e5cd8bad0c1d9153cdb923ad  gcc/testsuite/gcc.target/riscv/zknd64.c
  90d1bacbe4e275bfd699a8d6170e616c  gcc/testsuite/gcc.target/riscv/zkne32.c
*************** a0cd6680010fd9a12a6101dee4eb47c6  gcc/te
*** 93322,93328 ****
  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
--- 105417,105423 ----
  04ae612bf84c17e229c2b4c90dc89f3a  gcc/testsuite/gcc.target/riscv/zvksg.c
  8876f172658e226208bd18f447206495  gcc/testsuite/gcc.target/riscv/zvksh.c
  702f93a4f3a34ee27b679a252f812acc  gcc/testsuite/gcc.target/riscv/zvkt.c
! bdb68891ed5bf841ae7a76c1a2b670c8  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
*** 93342,93348 ****
  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
--- 105437,105443 ----
  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
! 9770d8681c86c1a845862c1b624fc3ba  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
*************** f27f299747d9862a0ca9a3ab3770f1c4  gcc/te
*** 93367,93387 ****
  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
  062c9cbdb4b33e5a9c45bd579c02df3b  gcc/testsuite/gcc.target/s390/asm-machine-2.c
  46b0c503c4e6198758f37694ae9566d1  gcc/testsuite/gcc.target/s390/asm-machine-3.c
  4ac155357942947a9caec612263831f1  gcc/testsuite/gcc.target/s390/asm-machine-4.c
  705a9e97aaf2d837c67542509852ce62  gcc/testsuite/gcc.target/s390/atomic-align-1.c
  acb0386d8fc9ec46feddca150e92bbeb  gcc/testsuite/gcc.target/s390/atomic-align-2.c
  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
--- 105462,105496 ----
  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
! c0c4ac5a6c6d8183d286a65e11351313  gcc/testsuite/gcc.target/s390/arch13/bitops-1.c
! e06741a8741ba8ec94b2d802e4574d83  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
+ 77ddc4010e02bc058f8df5a13b8cced7  gcc/testsuite/gcc.target/s390/asm-constant-1.c
+ 394c9c146974e9a7e13f1b58ea0df5ed  gcc/testsuite/gcc.target/s390/asm-hard-reg-1.c
+ 62c75d1d7df914897b00cdff5647499f  gcc/testsuite/gcc.target/s390/asm-hard-reg-2.c
+ 19d1c822df73af7a606839c325b0c9a9  gcc/testsuite/gcc.target/s390/asm-hard-reg-3.c
+ 76a5114e97c45c4bb3bbfc0904c4d48f  gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c
+ 84138939e380b2f20dbb02f0badeed4d  gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c
+ 726670c3cb7e8783d33f7f1e0b312e66  gcc/testsuite/gcc.target/s390/asm-hard-reg-6.c
+ bea465af3dbf1024e44e1574fe16c539  gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c
+ 21a010549cf12740c375e5ece6e37dbb  gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h
  bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/testsuite/gcc.target/s390/asm-machine-1.c
  062c9cbdb4b33e5a9c45bd579c02df3b  gcc/testsuite/gcc.target/s390/asm-machine-2.c
  46b0c503c4e6198758f37694ae9566d1  gcc/testsuite/gcc.target/s390/asm-machine-3.c
  4ac155357942947a9caec612263831f1  gcc/testsuite/gcc.target/s390/asm-machine-4.c
  705a9e97aaf2d837c67542509852ce62  gcc/testsuite/gcc.target/s390/atomic-align-1.c
  acb0386d8fc9ec46feddca150e92bbeb  gcc/testsuite/gcc.target/s390/atomic-align-2.c
+ 8ddeb7085aada11eb00c5b2a7387a8aa  gcc/testsuite/gcc.target/s390/bitint-1.c
+ abe0623b0841a0bdbc34b281de0dd0d0  gcc/testsuite/gcc.target/s390/bitint-2.c
+ e89e24e20f008ad8effa9e3f2fd9d042  gcc/testsuite/gcc.target/s390/bitint-3.c
+ cdfaf0f556535d7f3ffb05c59924a233  gcc/testsuite/gcc.target/s390/bitint-4.c
  381808a4590567090c1e800f04ae55f5  gcc/testsuite/gcc.target/s390/bswap-1.c
  2750052bc05f059828b76c05a2a7da2e  gcc/testsuite/gcc.target/s390/bswaphi-1.c
+ b1e7540142373435ec864919ea80e8c4  gcc/testsuite/gcc.target/s390/builtin-array-arg-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
*************** c5136e0bb58277988b6c8fb48db7921f  gcc/te
*** 93403,93411 ****
--- 105512,105535 ----
  3df32b127f6505d5afe3b8ea351491f1  gcc/testsuite/gcc.target/s390/dwarfregtable-2.c
  e4935aebfbac92efa594724b44e77822  gcc/testsuite/gcc.target/s390/dwarfregtable-3.c
  a726659c2ae1fb309562a9b72e3c2160  gcc/testsuite/gcc.target/s390/fcall-saved.c
+ e94dcf472bccaf6bc8319b00c5dbfe57  gcc/testsuite/gcc.target/s390/ffs-1.c
+ fe9d0881a008474329f40ac5043460f3  gcc/testsuite/gcc.target/s390/float16-1-2.h
+ c405438f80470749a67f679ec7f3062f  gcc/testsuite/gcc.target/s390/float16-1.c
+ 887728bfa7fbeffdd2e2e8dbfc4cb32d  gcc/testsuite/gcc.target/s390/float16-10.c
+ 981e6d92e2359d5a16a18a6b41bcf023  gcc/testsuite/gcc.target/s390/float16-2.c
+ a5e1bc7c8da6d23b401dfce8586fc424  gcc/testsuite/gcc.target/s390/float16-3.c
+ aaa1d977ca98cdc7592d36c62a71e4e2  gcc/testsuite/gcc.target/s390/float16-4.c
+ 8459a58bd355e10a2098f442bc8852a0  gcc/testsuite/gcc.target/s390/float16-5.c
+ 79c2d6a0d4a3cf4d2b477d92d55ac75a  gcc/testsuite/gcc.target/s390/float16-6.c
+ fbea89ce8db4c6773f2e55d4e474ca38  gcc/testsuite/gcc.target/s390/float16-7.c
+ 27cabea95c7e50931c4eed6ada1e3d5e  gcc/testsuite/gcc.target/s390/float16-8.c
+ 9340a54cb171614ca482ea1eac18ceb5  gcc/testsuite/gcc.target/s390/float16-9.c
+ b4a273b32224e9cf9bcc48bcfea42bb6  gcc/testsuite/gcc.target/s390/float16-signbit.h
  b76aabe27bc8e57b089f23dadbb05795  gcc/testsuite/gcc.target/s390/float_t-1.c
  893bc834068fdeaf65a05649de7ee1a1  gcc/testsuite/gcc.target/s390/float_t-2.c
  9d34a3245581ff3208ddbda615ef6617  gcc/testsuite/gcc.target/s390/flogr-1.c
+ d7d4fa685a6e49b79f2998b7b01a68f8  gcc/testsuite/gcc.target/s390/fminmax-1.c
+ c634b66997aef6ea6be272161d55b9af  gcc/testsuite/gcc.target/s390/fminmax-2.c
  2f2404c29092408bd406cc2e185ee7d4  gcc/testsuite/gcc.target/s390/fp2int1.c
  9b770970bea6710409e92c9a84d3a5d3  gcc/testsuite/gcc.target/s390/frame-addr1.c
  c7958dc9fa4da0d50fe09b45a6790ac0  gcc/testsuite/gcc.target/s390/frame-addr2.c
*************** d94841af420f4745c433040de2753088  gcc/te
*** 93482,93492 ****
  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
--- 105606,105616 ----
  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
! 2c7b9c55c8431a78c587fa6dfd32e12d  gcc/testsuite/gcc.target/s390/isfinite-isinf-isnormal-signbit-2.c
! ef2c5743cfecad7fa099e99612f0f0e1  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
! 91bc2877aa0bfe7d8d59f1e2b0d68dbf  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
*************** a4589217f85d225cee7d91649add59dc  gcc/te
*** 93508,93514 ****
  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
  10c6b7fde71de9dd63f0385af3e8bf9a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.inc
  48899608a96c6cef698fb830e8be0679  gcc/testsuite/gcc.target/s390/md/atomic_exchange-1.c
--- 105632,105638 ----
  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
! 0f503fcf0cca864c9e45098ba6fd7616  gcc/testsuite/gcc.target/s390/md/andc-splitter-2.c
  9cf080f05a65a6c75f29f573c2a8c74a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.c
  10c6b7fde71de9dd63f0385af3e8bf9a  gcc/testsuite/gcc.target/s390/md/atomic_compare_exchange-1.inc
  48899608a96c6cef698fb830e8be0679  gcc/testsuite/gcc.target/s390/md/atomic_exchange-1.c
*************** e487655bbd959e42358a2a891b8712b8  gcc/te
*** 93529,93534 ****
--- 105653,105659 ----
  89187d4ded3bce370dc2fc5e2b6166b6  gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c
  7848d2e49973e98fd02e545a79bb6b05  gcc/testsuite/gcc.target/s390/mul-signed-overflow-2.c
  4ebab6f204bac7a0c329a474cfea88ba  gcc/testsuite/gcc.target/s390/mul-wide.c
+ b1409a345cc01bf1c136d5086d63118d  gcc/testsuite/gcc.target/s390/narrow-logical-op-1.c
  ee3f00537b1c391d545c37c6ea4a145c  gcc/testsuite/gcc.target/s390/nearestint-1.c
  062259b85f76e8eaa4f342bcb50de319  gcc/testsuite/gcc.target/s390/nobp-function-pointer-attr.c
  fea682ccb6ddf5d48ba2e5b9a2ef8ae6  gcc/testsuite/gcc.target/s390/nobp-function-pointer-nothunk.c
*************** e282b73f72ab6c2a629448cad8de65a7  gcc/te
*** 93581,93586 ****
--- 105706,105712 ----
  ddd06bb7aa032539e1d7f788e2ddb31f  gcc/testsuite/gcc.target/s390/pr119873-3.c
  8e924805f1a0bbe1a1a2871be67a0970  gcc/testsuite/gcc.target/s390/pr119873-4.c
  c5b09d072962be55a3b282895afe41d6  gcc/testsuite/gcc.target/s390/pr119873-5.c
+ d49455031d1c0b8c6740f90cf831720a  gcc/testsuite/gcc.target/s390/pr124079.c
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** c638a86bd5bf24acab1490492cbfb557  gcc/te
*** 93631,93646 ****
  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
  cf53aab8a3ab2532dd55b65c25e2cda5  gcc/testsuite/gcc.target/s390/sigfpe-eh.c
  f7b099f000b8bc666ec6322dfb1ecd5f  gcc/testsuite/gcc.target/s390/stack-clash-1.c
  bc3d746388a64b8efc8d54c61733e6ad  gcc/testsuite/gcc.target/s390/stack-clash-2.c
  2fa5c1396a5010a1cc712e1a8a2aa834  gcc/testsuite/gcc.target/s390/stack-clash-3.c
  9aaf7372b57bb00dcc00776ce67cbfff  gcc/testsuite/gcc.target/s390/stack-clash-4.c
  416604f1f6966a9841843e4274cc86c1  gcc/testsuite/gcc.target/s390/stack-clash-5.c
  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
--- 105757,105790 ----
  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
! 82c60672eaa0813617a93a6fb6cf9fe8  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
  cf53aab8a3ab2532dd55b65c25e2cda5  gcc/testsuite/gcc.target/s390/sigfpe-eh.c
+ 8c05a71f4e72a0fc48388feb7fdeea99  gcc/testsuite/gcc.target/s390/signbit-1.c
+ 08a01d9c5d63501120c7652975353ce3  gcc/testsuite/gcc.target/s390/signbit-2.c
+ 34ecf5673a8c72ecf06c4978b2aaa1ee  gcc/testsuite/gcc.target/s390/signbit-3.c
+ fb49cb5faaf20b762d43467146af96b8  gcc/testsuite/gcc.target/s390/signbit-4.c
+ ebdfb1a4340375c0ebbb8a412d625890  gcc/testsuite/gcc.target/s390/signbit-5.c
+ b4c0850a8f8c3541e465f59c2166d615  gcc/testsuite/gcc.target/s390/signbit.h
+ 040f6acdce8703e588d2d87d37de0206  gcc/testsuite/gcc.target/s390/spaceship-fp-1.c
+ 4cf06bafe20f34bd32bdf1d213a42344  gcc/testsuite/gcc.target/s390/spaceship-fp-2.c
+ 39b29f1e89d880d1f015996c8a81cca1  gcc/testsuite/gcc.target/s390/spaceship-fp-3.c
+ 1e2f255f06505badd272f4e93af58cee  gcc/testsuite/gcc.target/s390/spaceship-fp-4.c
+ 9cda6dbef9f45f501b5a1244f631e11f  gcc/testsuite/gcc.target/s390/spaceship-int-1.c
+ 1b0075219ee538c7ef21739eed19ff2e  gcc/testsuite/gcc.target/s390/spaceship-int-2.c
+ a4145c88799e654f926cb8d212d71829  gcc/testsuite/gcc.target/s390/spaceship-int-3.c
  f7b099f000b8bc666ec6322dfb1ecd5f  gcc/testsuite/gcc.target/s390/stack-clash-1.c
  bc3d746388a64b8efc8d54c61733e6ad  gcc/testsuite/gcc.target/s390/stack-clash-2.c
  2fa5c1396a5010a1cc712e1a8a2aa834  gcc/testsuite/gcc.target/s390/stack-clash-3.c
  9aaf7372b57bb00dcc00776ce67cbfff  gcc/testsuite/gcc.target/s390/stack-clash-4.c
  416604f1f6966a9841843e4274cc86c1  gcc/testsuite/gcc.target/s390/stack-clash-5.c
+ 4da9c1f267a9b26bd7252e43441c1dd2  gcc/testsuite/gcc.target/s390/stack-protector-guard-global-1.c
+ f4dd83de04bc9987ed038654890e8f5c  gcc/testsuite/gcc.target/s390/stack-protector-guard-global-2.c
+ b5daee4f83823db3b6ec431c58bd0892  gcc/testsuite/gcc.target/s390/stack-protector-guard-global-3.c
+ 21c461ecf01490118d4e756f70eb4dba  gcc/testsuite/gcc.target/s390/stack-protector-guard-global-4.c
+ d6f96ad5c638b20cfc8abae2975a39ca  gcc/testsuite/gcc.target/s390/stack-protector-guard-tls-1.c
  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
*************** ed8807784132f9e94878b1bae2639eb9  gcc/te
*** 93746,93751 ****
--- 105890,105897 ----
  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
+ 13ec17668ab763edb0f51028d04fd865  gcc/testsuite/gcc.target/s390/vector/cstoreti-1.c
+ 12edf735060133c36443e9629e6d1dd4  gcc/testsuite/gcc.target/s390/vector/cstoreti-2.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
*************** a565e2f8dd12c39ee081427f9a742ed8  gcc/te
*** 93827,93859 ****
  7172609cf3d7574fd601ded9003eb60a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-2.h
  cacde4c297655c59e5767214d140056f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-3.h
  abd57b1682e8716a3218094c4bf9cec3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-7.h
! 10f763f49843594082ed6e111541f3e2  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c
! 19c597446cfa4da344ac547d6a3bdf70  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c
! d33abdd465f4209f0414de05c349653b  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c
! 9d2e1ee2a40fbfb5a57d6cbd45168c07  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c
! e770b34dbf363215a6051b789b90e974  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c
! 53dddd9b047a3df2392779a3764037db  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c
! 153d8a228586550504c014bd06484f1a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c
! ada2b9b2b8df0cfdabaf20b41b0a65f0  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c
! bc45cc7c4b51be2f491414209559c220  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c
! c4bfbd8958774aa5955cf3a6c8f5fb77  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c
! c35cbcfe48dc273d14940b790bb3ff09  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c
! 8b0615e73a71f47e5f535d17ded839f3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c
! be44d6c3c4d8055ce8fd43e62a287c12  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c
! 6b7b8c64675220c39817413d5d5d322f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c
! 18f4664c4d1a14140be566917ccb73fd  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c
! e234d0268236221dbf51755b0be4aca1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c
  6987c4cf29e1ce5a359faf0d1b6d2409  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-1.h
  1be087c55f77a74d9d4f749b223320a1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-2.h
  0611839c929c24b2af8573f8569dfd65  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-3.h
  bef5e60d91c914bf7de9023a9ab9f6b9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-7.h
! 722b2bf1dc8f0eaf2fe36ba4b1c93e29  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
  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
--- 105973,106012 ----
  7172609cf3d7574fd601ded9003eb60a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-2.h
  cacde4c297655c59e5767214d140056f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-3.h
  abd57b1682e8716a3218094c4bf9cec3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-7.h
! 8b282e87ca14aae90bcda990916beb00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c
! baf04e1af6843951ae69ff1b514ad398  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c
! 6a1485987e377995503aca3e8ae3f2fc  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c
! e753ac12861543e55f694fae86d88671  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c
! 271217bbc8f3733377a41afd3ff6afe9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c
! b749d827b2b517970ae38e42d558d315  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c
! 045b4d3041a7ed17852ff9e9f8ede9d3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c
! 32199f6f3815197f122e844329fad166  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c
! aa231958c30f2d739f813379ede6fb23  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c
! 2f252d338c36d79ad9da15c968c766e4  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c
! 7a3ae2e0dcf513c5c41f3fef5fd9a5e3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c
! 07b63350207f7b5f86643e358fe54efc  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c
! 57c65ac5c53f99a2e200ca8a2db89bd6  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c
! deb6a1b644da1995c7d038adfd670091  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c
! 998169029555d9ad2a2155e073d9b415  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c
! bffd2a31f045a49ed041fb06c40d1cd5  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c
  6987c4cf29e1ce5a359faf0d1b6d2409  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-1.h
  1be087c55f77a74d9d4f749b223320a1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-2.h
  0611839c929c24b2af8573f8569dfd65  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-3.h
  bef5e60d91c914bf7de9023a9ab9f6b9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-7.h
! 071400cad4fbc56048b43c44323629fe  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
+ e5a0d225e223a496d21dbc38f267e4f8  gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c
+ cd2bb8cc2344798548447dc2e2dee5de  gcc/testsuite/gcc.target/s390/vector/pattern-avg-2.c
+ 4898a67bf40a0253adf2960511aff52c  gcc/testsuite/gcc.target/s390/vector/pattern-mulh-1.c
+ 84012b25c9d455df9a346ad5d1f0de07  gcc/testsuite/gcc.target/s390/vector/pattern-mulh-2.c
  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
+ 1f884c46b6be0a2bad36df12dce8d9be  gcc/testsuite/gcc.target/s390/vector/reduc-binops-1.c
+ 45142c8552bd5f5606c361f9d12f749c  gcc/testsuite/gcc.target/s390/vector/reduc-minmax-1.c
+ 4e722110a7d4b083bc3359b9158e47ad  gcc/testsuite/gcc.target/s390/vector/reduc-plus-1.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
*************** aa3e4f00345b3711bbfa1e907634ef21  gcc/te
*** 93896,93901 ****
--- 106049,106059 ----
  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
+ 72dc5736e07f8fae137490b945aa10e8  gcc/testsuite/gcc.target/s390/vector/vec-extract-1.c
+ eea8e6a3c052ed4eea4f064eb34a6934  gcc/testsuite/gcc.target/s390/vector/vec-extract-2.c
+ 8066e7e6cd84cf09bd4091bd61ca2068  gcc/testsuite/gcc.target/s390/vector/vec-extract-3.c
+ 080d5a5940cda232622556e63bcb8fd7  gcc/testsuite/gcc.target/s390/vector/vec-extract-4.c
+ efc6d8fb8b8219e18b8e9fd10f98e72a  gcc/testsuite/gcc.target/s390/vector/vec-float16-1.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
*************** b149a03c83e407974152eb2857fa31fd  gcc/te
*** 93908,93914 ****
--- 106066,106075 ----
  ff8a9ec0d970b55dd483a1d16ac9c94e  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
+ 6ef587966b363a02d4d92c17291005c6  gcc/testsuite/gcc.target/s390/vector/vec-perm-merge-1.c
+ 49d2d93d83391e6a89cb6fb3c01b3c59  gcc/testsuite/gcc.target/s390/vector/vec-perm-pack-1.c
  604b357bf5bdc9c25e2e900ed77fd858  gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c
+ ac53c0a1cd9b9e491894529575db4008  gcc/testsuite/gcc.target/s390/vector/vec-set-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
*************** fe08bebade581e6652104b69d817cb40  gcc/te
*** 93941,93946 ****
--- 106102,106109 ----
  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
+ 13824b843d98dbf8a6f08e7e871c92e0  gcc/testsuite/gcc.target/s390/vector/vlgv-zero-extend-1.c
+ 9cb05e4cc60c0400f1d15923597213d1  gcc/testsuite/gcc.target/s390/vector/vlgv-zero-extend-2.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
*************** b5858f375001f368a5271a2649982a89  gcc/te
*** 93959,93964 ****
--- 106122,106128 ----
  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
+ 700cc48e8badd004d747c1cc677760bc  gcc/testsuite/gcc.target/s390/vxe3/vcmp-1.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
*************** c421014e2cc4b73264d790284ab5572b  gcc/te
*** 94047,94053 ****
  c510e08487f29d55308ff7e6e92099e1  gcc/testsuite/gcc.target/s390/zvector/set-element-bswap-2.c
  039076901eabcee22c3632af316fd5d8  gcc/testsuite/gcc.target/s390/zvector/set-element-bswap-3.c
  37bcaad0074056fd492f7d54c312c3a0  gcc/testsuite/gcc.target/s390/zvector/vec-_Bool.c
! 52639af19eb9820f01b9c5381a9fc995  gcc/testsuite/gcc.target/s390/zvector/vec-addc-u128.c
  8ff1ed12c88c0f19d703adc7a5a4a566  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c
  3dda159673a45586bb1e0d489527d0c6  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-2.c
  ccdf3c2d3031ce42906139030ba856e1  gcc/testsuite/gcc.target/s390/zvector/vec-dbl-math-compile-1.c
--- 106211,106217 ----
  c510e08487f29d55308ff7e6e92099e1  gcc/testsuite/gcc.target/s390/zvector/set-element-bswap-2.c
  039076901eabcee22c3632af316fd5d8  gcc/testsuite/gcc.target/s390/zvector/set-element-bswap-3.c
  37bcaad0074056fd492f7d54c312c3a0  gcc/testsuite/gcc.target/s390/zvector/vec-_Bool.c
! d2cd1a74b3b6b4112d6f60e8e615d000  gcc/testsuite/gcc.target/s390/zvector/vec-addc-u128.c
  8ff1ed12c88c0f19d703adc7a5a4a566  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c
  3dda159673a45586bb1e0d489527d0c6  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-2.c
  ccdf3c2d3031ce42906139030ba856e1  gcc/testsuite/gcc.target/s390/zvector/vec-dbl-math-compile-1.c
*************** d5753d3f6bf92409af4a8ed1584a9000  gcc/te
*** 94117,94122 ****
--- 106281,106287 ----
  4a850593fc1a7bbabb90b46094c87964  gcc/testsuite/gcc.target/sh/hiconst.c
  ae8390e15b5eaf5fd9c40f8bb42c7724  gcc/testsuite/gcc.target/sh/memset.c
  cdd0e79dc0c4fb2425cf6753e465a85e  gcc/testsuite/gcc.target/sh/mfmovd.c
+ 9b3b2f0ae0e623bcfdf99761d1dad634  gcc/testsuite/gcc.target/sh/pr111814.c
  9439f7da71328f8113b757d9c4130319  gcc/testsuite/gcc.target/sh/pr21255-1.c
  de6f77c59627b198d6e5048192e2f128  gcc/testsuite/gcc.target/sh/pr21255-2-mb.c
  475ae84e95ba85931d38a06a5d6f12f8  gcc/testsuite/gcc.target/sh/pr21255-2-ml.c
*************** afac6d20e33b6a8fe9636a4a68d97023  gcc/te
*** 94212,94218 ****
  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/testsuite/gcc.target/sh/pr54236-4.c
  8d8ed377061cbfdec118e736ef175028  gcc/testsuite/gcc.target/sh/pr54236-5.c
--- 106377,106383 ----
  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
! ab0f913acf929c89113a5c541d23ec4a  gcc/testsuite/gcc.target/sh/pr54236-2.c
  2217adb687f17b2a8d5e9bc1ac45e0fd  gcc/testsuite/gcc.target/sh/pr54236-3.c
  cfc2a9a1d84ca3daaf2daa138a4954a3  gcc/testsuite/gcc.target/sh/pr54236-4.c
  8d8ed377061cbfdec118e736ef175028  gcc/testsuite/gcc.target/sh/pr54236-5.c
*************** f01a6228581302d6d97b59085e8b8b1a  gcc/te
*** 94231,94236 ****
--- 106396,106402 ----
  6eb5add3ca1c643966e1cb503a52ead4  gcc/testsuite/gcc.target/sh/pr54760-6.c
  591dd31cc0ab14f1cf2e4efd0c73a6c2  gcc/testsuite/gcc.target/sh/pr55146.c
  f347bb22f41ec16d4bc6301927325f40  gcc/testsuite/gcc.target/sh/pr55160.c
+ b7884938bd707424792dbcdd54c246cb  gcc/testsuite/gcc.target/sh/pr55212-c248.c
  8f717e44414a43985e9764ae6fd48b44  gcc/testsuite/gcc.target/sh/pr55303-1.c
  e1ee5790a1ff9502dcff1b9d308673c5  gcc/testsuite/gcc.target/sh/pr55303-2.c
  2e2164e7dcbf7f288bb8b6c95f7c502d  gcc/testsuite/gcc.target/sh/pr55303-3.c
*************** bb895226639a1aae7be7b56a7158df50  gcc/te
*** 94272,94277 ****
--- 106438,106444 ----
  7cf900944e15c19b0347cf838fc4aa68  gcc/testsuite/gcc.target/sh/pr64851-4.c
  1e560b149f127fbbe8e19a0786737e83  gcc/testsuite/gcc.target/sh/pr6526.c
  96ccc21c08a032884c88704b49d3a916  gcc/testsuite/gcc.target/sh/pr67675.c
+ 954cde0ffb96f31618f11766e0a02713  gcc/testsuite/gcc.target/sh/pr67731.c
  3f7b73faf0fd1d90a4ea83808baabeda  gcc/testsuite/gcc.target/sh/pragma-isr-nosave_low_regs.c
  4f89e60f52b3ae8a20bde13055248307  gcc/testsuite/gcc.target/sh/pragma-isr-trap-exit.c
  db7a02bef0ea1d74a99297c9ee53c525  gcc/testsuite/gcc.target/sh/pragma-isr-trapa.c
*************** db7a02bef0ea1d74a99297c9ee53c525  gcc/te
*** 94280,94286 ****
  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
--- 106447,106453 ----
  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
! 69f320a3b79d7a1a714dc21c1ef3e941  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
*** 94319,94325 ****
  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
--- 106486,106492 ----
  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
! 119e3911d06fa1e4484186fb510b0ac5  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
*************** beb5f32bbfe67092637981daab63c0e9  gcc/te
*** 94350,94357 ****
  51da71a9631e2769588765c1734024be  gcc/testsuite/gcc.target/sparc/bmaskbshuf-1.c
  2fde479e25184fdcc6f9e94d0b5c15ad  gcc/testsuite/gcc.target/sparc/bmaskbshuf-2.c
  019da970597edf6187323a8e6d8d3fd7  gcc/testsuite/gcc.target/sparc/cas64.c
! d221487dd70d0c776eff96c67b8adc06  gcc/testsuite/gcc.target/sparc/cbcond-1.c
! 4e0309e28118036178fe963e1c3da82a  gcc/testsuite/gcc.target/sparc/cbcond-2.c
  8b7e178ec9569253b3b34020d323079f  gcc/testsuite/gcc.target/sparc/cmask.c
  61fdcc3e39deca7e4f123378b814dd0f  gcc/testsuite/gcc.target/sparc/combined-1.c
  be4e8621f0151086de802a20702cd1af  gcc/testsuite/gcc.target/sparc/combined-2.c
--- 106517,106524 ----
  51da71a9631e2769588765c1734024be  gcc/testsuite/gcc.target/sparc/bmaskbshuf-1.c
  2fde479e25184fdcc6f9e94d0b5c15ad  gcc/testsuite/gcc.target/sparc/bmaskbshuf-2.c
  019da970597edf6187323a8e6d8d3fd7  gcc/testsuite/gcc.target/sparc/cas64.c
! c3668404ae0a813bc8180945066174cd  gcc/testsuite/gcc.target/sparc/cbcond-1.c
! fad6c23fce09da74b193fe540d9797ee  gcc/testsuite/gcc.target/sparc/cbcond-2.c
  8b7e178ec9569253b3b34020d323079f  gcc/testsuite/gcc.target/sparc/cmask.c
  61fdcc3e39deca7e4f123378b814dd0f  gcc/testsuite/gcc.target/sparc/combined-1.c
  be4e8621f0151086de802a20702cd1af  gcc/testsuite/gcc.target/sparc/combined-2.c
*************** a6501f830b7d1b9e944beb9e5db075f6  gcc/te
*** 94415,94423 ****
  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
! 444e8beace1b4de7dfc39e780fc67fac  gcc/testsuite/gcc.target/sparc/overflow-3.c
! 2d8b17d688d100fd3cb6453f855222b0  gcc/testsuite/gcc.target/sparc/overflow-4.c
! 8475c91c4d278191b81ca429107475b1  gcc/testsuite/gcc.target/sparc/overflow-5.c
  49458c6e2cd69ad6620fa55db5d3621f  gcc/testsuite/gcc.target/sparc/overflow-6.c
  0e446c8782cfda1bf1b2b7467cdf43af  gcc/testsuite/gcc.target/sparc/pdist-2.c
  77281e86e797be1ef8a0784c9a4db58a  gcc/testsuite/gcc.target/sparc/pdist-3.c
--- 106582,106590 ----
  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
! 929fac4de5794cc7dd75063b7cd5643e  gcc/testsuite/gcc.target/sparc/overflow-3.c
! 2b280b8f1ebeda91133b6198d7023607  gcc/testsuite/gcc.target/sparc/overflow-4.c
! 45415694e5915a0b26b450975729e990  gcc/testsuite/gcc.target/sparc/overflow-5.c
  49458c6e2cd69ad6620fa55db5d3621f  gcc/testsuite/gcc.target/sparc/overflow-6.c
  0e446c8782cfda1bf1b2b7467cdf43af  gcc/testsuite/gcc.target/sparc/pdist-2.c
  77281e86e797be1ef8a0784c9a4db58a  gcc/testsuite/gcc.target/sparc/pdist-3.c
*************** e5c267912e5c8f2e18ebb9ce814789ba  gcc/te
*** 94439,94445 ****
  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
  0fdc378e88ad378a181a8f7ba247889f  gcc/testsuite/gcc.target/sparc/sparc-constant-1.c
  eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/testsuite/gcc.target/sparc/sparc-dwarf2.c
--- 106606,106612 ----
  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
! 86b61b1c570605c6bd99309aaee7206b  gcc/testsuite/gcc.target/sparc/small-struct-1.c
  9ffd7b94418f62e4bc1700c00a93b9ff  gcc/testsuite/gcc.target/sparc/sparc-align-1.c
  0fdc378e88ad378a181a8f7ba247889f  gcc/testsuite/gcc.target/sparc/sparc-constant-1.c
  eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/testsuite/gcc.target/sparc/sparc-dwarf2.c
*************** eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/te
*** 94451,94466 ****
  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
--- 106618,106633 ----
  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
! 2beea1f4d6dac65ba6099a688c546ad0  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
! 5d69e23986a330c5632e88c446563bf7  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
! aacbb54603a04293c4726975701e79e5  gcc/testsuite/gcc.target/sparc/tls-ld-int32.c
! f8f04155149d7e154ff020500de3846d  gcc/testsuite/gcc.target/sparc/tls-ld-int64.c
! cf1d390af6b698ab0105725934a96cf0  gcc/testsuite/gcc.target/sparc/tls-ld-int8.c
! 458fae1401e8a86ee3bb5140c465a875  gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c
! 680e790ef1525cd30fafd387876f6b4f  gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c
! c517847a8ded7a9a5488b6ba862f368d  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
*************** c6e8cea536062af6f23168b438e096e3  gcc/te
*** 94497,94503 ****
  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
--- 106664,106670 ----
  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
! 8e447f63b23eb29b4d9c491a80e40578  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
*** 94513,94522 ****
  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
--- 106680,106689 ----
  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
! fac905f235a0c5777dd95a8e09beb5bf  gcc/testsuite/gcc.target/tic6x/tic6x.exp
  670857f86bef69c76dcf7d725b01b954  gcc/testsuite/gcc.target/tic6x/weak-call.c
  1842497af5066e493839b7a75e67e2a7  gcc/testsuite/gcc.target/v850/pr104400.c
! 8bce22429c5e806629da06557f02d73e  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
*** 94736,94742 ****
  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
--- 106903,106909 ----
  86b2c92ff217edc7b11b2d6f5cba77c6  gcc/testsuite/gcc.target/vax/pr56875.c
  22629a1b386f420f06d6c23ff8e35b7f  gcc/testsuite/gcc.target/vax/push.c
  aa49cef95004b6430e3fd36b1edc76bc  gcc/testsuite/gcc.target/vax/setmem.c
! 63c4c07f607a0c59e50d1f6ba25a32fd  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
*** 94748,94760 ****
  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
--- 106915,106927 ----
  22e4f821af1c93516061d0c9e939e1d1  gcc/testsuite/gcc.target/visium/overflow16.c
  ed48eae7631e0c3fec552abc3abf6370  gcc/testsuite/gcc.target/visium/overflow32.c
  9038dededd39b0c0f41798e290669394  gcc/testsuite/gcc.target/visium/overflow8.c
! ee9ade71bfe049d8d35211a8e255dd99  gcc/testsuite/gcc.target/visium/visium.exp
! 90cd5deedb85dcc1e6c7561c723a2836  gcc/testsuite/gcc.target/x86_64/abi/README.gcc
! dda670ea3efae8738a20c25b63d85a70  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
! c5f1909b12dcb04485c8e1e3ddde459b  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
*** 94764,94770 ****
  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
--- 106931,106937 ----
  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
! 93465a913084793e0a7fb64ae2cf02c4  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
*** 94774,94786 ****
  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
--- 106941,106953 ----
  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
! dd2c32c94b7e7e1aae592cda52d4b38a  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
! d087e4d9ebd1b38e3ccc3960ba2e074f  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
*** 94789,94795 ****
  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
--- 106956,106962 ----
  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
! dd2c32c94b7e7e1aae592cda52d4b38a  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
*** 94814,94827 ****
  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
--- 106981,106994 ----
  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
! b07489450701204e7234ad1d0226d291  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
! 5f7b35d97ae61a910b25339a2d801fbd  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
*** 94831,94837 ****
  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
--- 106998,107004 ----
  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
! a888762107207bca6de148b832807407  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
*** 94858,94864 ****
  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
--- 107025,107031 ----
  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
! 71dd0aa00aa62e93cbefe99434bd681b  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
*** 94867,94873 ****
  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
--- 107034,107040 ----
  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
! 7b77af717bba6a40aeee2b7b02502429  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
*** 94879,94888 ****
  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
--- 107046,107055 ----
  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
! c276016ed54aa5a9d06fbffc6b9744db  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
! da4ac5e782fe573b2a2c95c287757295  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
*************** cca8438331c1dbd3622e6daf22ed8b80  gcc/te
*** 95043,95048 ****
--- 107210,107216 ----
  64e295712ba529fdd2946db085c3daa2  gcc/testsuite/gcc.target/xstormy16/extendhisi2.c
  bbb7c5b98d9519c006ff558814a151b3  gcc/testsuite/gcc.target/xstormy16/mulhi.c
  4a0719312b17c05f941d354fa5c2ce77  gcc/testsuite/gcc.target/xstormy16/neghi2.c
+ 57855fcbcc4959da8439dd480ea6e426  gcc/testsuite/gcc.target/xstormy16/pr118358.c
  7d65d15259c94137a10663d2aeeb1c8a  gcc/testsuite/gcc.target/xstormy16/rotatehi-1.c
  39555eb5da0832d8df88935b6e9d9974  gcc/testsuite/gcc.target/xstormy16/sfr/01_const_to_sfrb.c
  b5a738a34194b338b92901ea41e83d81  gcc/testsuite/gcc.target/xstormy16/sfr/02_const_to_sfrw.c
*************** a59d8540caf1d52d46e1879c433e534c  gcc/te
*** 95122,95152 ****
  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
  1a07128767cc4b46376ceb321c59f191  gcc/testsuite/gcc.target/xtensa/bswap-O2.c
  a9416652aa64c95df384346392cbfe6e  gcc/testsuite/gcc.target/xtensa/bswap-Os.c
  838815dfe721339bb146bb1ed3ca5c93  gcc/testsuite/gcc.target/xtensa/check_zero_byte.c
! 5a104f8eacc55b9d4292f91bb5b77563  gcc/testsuite/gcc.target/xtensa/constsynth_2insns.c
! d7d13a4de1bb8d4900eec10ef3010828  gcc/testsuite/gcc.target/xtensa/constsynth_3insns.c
! c1831e6dbeb2aec9e1b98afc4cc0902f  gcc/testsuite/gcc.target/xtensa/constsynth_double.c
! 28eaa56254e255a49e278e3a342b35e0  gcc/testsuite/gcc.target/xtensa/elim_GP_regmove_0.c
! ce29d96a29845fe03357acacff463e16  gcc/testsuite/gcc.target/xtensa/elim_GP_regmove_1.c
  553083855fb266d0dde46053f5331304  gcc/testsuite/gcc.target/xtensa/elim_callee_saved.c
  67f6bc3272f355380928a1c0a5bf2049  gcc/testsuite/gcc.target/xtensa/funnel_shifter.c
  5dd88a67050813a2722e394515530667  gcc/testsuite/gcc.target/xtensa/mabi-call0.c
  55cb36db164b6243fa3041628937695c  gcc/testsuite/gcc.target/xtensa/mabi-windowed.c
- a15a47e169752fa5ceea299d07d5f088  gcc/testsuite/gcc.target/xtensa/one_cmpl_abs.c
  b7bda6f199a1b6771b9270aa47b61b64  gcc/testsuite/gcc.target/xtensa/pr108919.c
  fc75a0f9bf2050602dba2ff080a220b4  gcc/testsuite/gcc.target/xtensa/pr91880.c
  acfb44b971ca766549ce4e3d2974f084  gcc/testsuite/gcc.target/xtensa/pr94584.c
  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
--- 107290,107319 ----
  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
! 72580bde0b5a7ff4a9c75bcc61cec441  gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
  595309c78fd38c2a937734586cd28ee1  gcc/testsuite/gcc.target/xstormy16/zextendhisi2.c
  eacc096a7f94a630ed769a6bed50453d  gcc/testsuite/gcc.target/xtensa/BALL-BNALL.c
+ 9ca42e6e88ebb2200258bf7345d65c0e  gcc/testsuite/gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c
  2c169e3ed7b7968f235d883ab0a5457a  gcc/testsuite/gcc.target/xtensa/bswap-O1.c
  1a07128767cc4b46376ceb321c59f191  gcc/testsuite/gcc.target/xtensa/bswap-O2.c
  a9416652aa64c95df384346392cbfe6e  gcc/testsuite/gcc.target/xtensa/bswap-Os.c
+ f625b520634625396ff614b2d30226c3  gcc/testsuite/gcc.target/xtensa/bswap-SSAI8.c
  838815dfe721339bb146bb1ed3ca5c93  gcc/testsuite/gcc.target/xtensa/check_zero_byte.c
! 82b5ec1f9d9ffbe01b02c82df162e7a5  gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs0.c
! 59a988433ac941267aef52e6721b866d  gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs5.c
! f1eebb736461b5a966e9f19ca27855c5  gcc/testsuite/gcc.target/xtensa/constsynthV2_Os.c
  553083855fb266d0dde46053f5331304  gcc/testsuite/gcc.target/xtensa/elim_callee_saved.c
  67f6bc3272f355380928a1c0a5bf2049  gcc/testsuite/gcc.target/xtensa/funnel_shifter.c
  5dd88a67050813a2722e394515530667  gcc/testsuite/gcc.target/xtensa/mabi-call0.c
  55cb36db164b6243fa3041628937695c  gcc/testsuite/gcc.target/xtensa/mabi-windowed.c
  b7bda6f199a1b6771b9270aa47b61b64  gcc/testsuite/gcc.target/xtensa/pr108919.c
  fc75a0f9bf2050602dba2ff080a220b4  gcc/testsuite/gcc.target/xtensa/pr91880.c
  acfb44b971ca766549ce4e3d2974f084  gcc/testsuite/gcc.target/xtensa/pr94584.c
  ef29d88bcc9a62033efa0a6e41a3e7d8  gcc/testsuite/gcc.target/xtensa/pr98285.c
  a948656f4ea504ef065dc8d743d6ae01  gcc/testsuite/gcc.target/xtensa/shifts.c
  9c340cc6ce0b118b23559c6dff251397  gcc/testsuite/gcc.target/xtensa/sibcalls.c
! 2c5d8f95fd01233c60e94e97736300af  gcc/testsuite/gcc.target/xtensa/xtensa.exp
! aa3491e07897b878d753fc7841d64865  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
*** 95202,95210 ****
  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
--- 107369,107377 ----
  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
! 18d398eb25e816a9a1e637b514ef652f  gcc/testsuite/gcc.test-framework/gen_directive_tests
! 82a8d1f2cd15f6650a8ae53a5cb270a9  gcc/testsuite/gcc.test-framework/test-framework.awk
! ac51cd5db869952279e9025913713ebc  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
*************** da2b0654320e4a3e4253428041d8edf9  gcc/te
*** 95217,95233 ****
  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
  f270d380aa68ee40ee568c5490d0f454  gcc/testsuite/gdc.dg/attr_allocsize2.d
  0e6f8fa8bca677dfe2539d1eb9471abc  gcc/testsuite/gdc.dg/attr_alwaysinline1.d
--- 107384,107400 ----
  42d3851d5f369d7a3feb436c0b56019c  gcc/testsuite/gdc.dg/Wmismatched_enum.d
  ba3ec121536606fdf9d34aff37b9da35  gcc/testsuite/gdc.dg/Wpadded.d
  9bc103c321c35752bcd99c0bd239f20b  gcc/testsuite/gdc.dg/Wunused_value.d
! 1f77ffb1c4fdda3aa3116c2099ce82d3  gcc/testsuite/gdc.dg/analyzer/analyzer.exp
  63318cc46d15d60fe163e071e030c6d8  gcc/testsuite/gdc.dg/analyzer/pr111537.d
  684da8abc6d44a02e6b361d163e350c1  gcc/testsuite/gdc.dg/array1.d
! ce9fa7ecd334cd6b160190a2cfe6e745  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
! d7dc412aa2eda93fd8b5c2550b912c07  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
! a493ed4dc4884bc5886b19e89ee6cfbf  gcc/testsuite/gdc.dg/asm5.d
  31a8b77972532af3d4c1e4b565ffd968  gcc/testsuite/gdc.dg/attr_allocsize1.d
  f270d380aa68ee40ee568c5490d0f454  gcc/testsuite/gdc.dg/attr_allocsize2.d
  0e6f8fa8bca677dfe2539d1eb9471abc  gcc/testsuite/gdc.dg/attr_alwaysinline1.d
*************** f270d380aa68ee40ee568c5490d0f454  gcc/te
*** 95236,95241 ****
--- 107403,107409 ----
  5aadd05334dd3bcbd6d1ecf04ebb243d  gcc/testsuite/gdc.dg/attr_exclusions2.d
  5f49845b5fe778c43e9dcaa88e4c416d  gcc/testsuite/gdc.dg/attr_flatten1.d
  68b05459d20c0226090a3e38852d2a9b  gcc/testsuite/gdc.dg/attr_module.d
+ ae06f042026e4016c822ff150f7296ed  gcc/testsuite/gdc.dg/attr_no_split_stack.d
  2c20bba384ddb9d4109200b5c5907057  gcc/testsuite/gdc.dg/attr_noclone1.d
  4531c8abdd2325c664ae527ddc223c42  gcc/testsuite/gdc.dg/attr_noicf1.d
  5d5f56373cf77cbdaea3672f40a3de75  gcc/testsuite/gdc.dg/attr_noinline1.d
*************** b47a6bd68504c63165e1edc61f861583  gcc/te
*** 95278,95285 ****
  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
--- 107446,107453 ----
  0aaff757c8c0406ea7a86643ad642fb3  gcc/testsuite/gdc.dg/cast1.d
  f0faa9e9b1922b0c3e9de308dadd1056  gcc/testsuite/gdc.dg/copy1.d
  191c7332d72a7ccafbe3cfaa328fd410  gcc/testsuite/gdc.dg/ctfeintrinsics.d
! 145faaa7c054d113ea9ee081abdf8260  gcc/testsuite/gdc.dg/debug/debug.exp
! 6b38ba08a848dbe2c8bc644e9a7d9428  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
*************** bcf389e3992a960c831b1dafe53a539c  gcc/te
*** 95291,95307 ****
  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
  9d0b9084661f19d1dc4522e26fa4c876  gcc/testsuite/gdc.dg/gdc122.d
--- 107459,107478 ----
  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
+ 1edf2de8f02edbe977e4455229af5ba4  gcc/testsuite/gdc.dg/debug/pr123263.d
  0121ae6408f107a6bf6f915c24102bd3  gcc/testsuite/gdc.dg/debug/trivial.d
! af22045a959ddc0c2cc8b9216e2ec4aa  gcc/testsuite/gdc.dg/dg.exp
! 1f25f7140ea236c33498050fa3d25fc3  gcc/testsuite/gdc.dg/driver_debuglib.d
! bfb9dc003b6110d37dc4b62c222afe7d  gcc/testsuite/gdc.dg/driver_defaultlib.d
  738cb13f46975c2c4e05fd4d2864afda  gcc/testsuite/gdc.dg/driver_fonly1.d
  3ab866f47c35938e530f75c1a359e7d2  gcc/testsuite/gdc.dg/driver_fonly2.d
  3e3e4464fc963f4f4a57434be63c992f  gcc/testsuite/gdc.dg/driver_fonly3.d
! 316a7a2d56cfe6a5829804cb60a5cfd5  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
! c69a3dd720569faf707784a61e92e802  gcc/testsuite/gdc.dg/gcov.exp
! 8b9d8ea26faad8490925cea6d0b166d5  gcc/testsuite/gdc.dg/gcov1.d
  0da416e7dcac2139d3182637a81efbfe  gcc/testsuite/gdc.dg/gdc108.d
  5761ceeebbd93d112778a153a688475a  gcc/testsuite/gdc.dg/gdc121.d
  9d0b9084661f19d1dc4522e26fa4c876  gcc/testsuite/gdc.dg/gdc122.d
*************** bd9bf93de2cd3be03b2f48ec7a107774  gcc/te
*** 95345,95351 ****
  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
--- 107516,107522 ----
  eb8f845d76d9f6d311238210d295fa21  gcc/testsuite/gdc.dg/gdc67.d
  4944b9a0b1f22fb68fabb167f1506524  gcc/testsuite/gdc.dg/gdc71.d
  4ea93bb5e289cd13e04ae74dc11fcf09  gcc/testsuite/gdc.dg/gdc77.d
! 4e8cf22b42b5e7b2bf6201e5f9d8ed2c  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
*************** c1371b9d51218c700b58595265d42b2d  gcc/te
*** 95374,95380 ****
  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
--- 107545,107551 ----
  7ae8eee97923fab094ae5ca5a1eca902  gcc/testsuite/gdc.dg/imports/pr92216.d
  8120e5c267785a8c8b8eb099660e9a14  gcc/testsuite/gdc.dg/intrinsics.d
  6548f02fc0c4042868151b5d244e80ad  gcc/testsuite/gdc.dg/intrinsics_reject.d
! 3a685201d003e861caff827e53db3e92  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
*** 95383,95389 ****
  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
--- 107554,107560 ----
  7d27bb4ae013be8b6cb21a42a730353d  gcc/testsuite/gdc.dg/pr100882a.d
  167004b1d3ea4a1c36668f029fbe4290  gcc/testsuite/gdc.dg/pr100882b.d
  c0f2db1fcb83cbb41fda8295889368ff  gcc/testsuite/gdc.dg/pr100882c.d
! dba89f8dc08d0b9a58b7d258ff38559b  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
*************** a2d402e0596a4abb1dc6e25b11e9aa9c  gcc/te
*** 95425,95430 ****
--- 107596,107612 ----
  72d81c5bd5b1ad40ec304fe72a725695  gcc/testsuite/gdc.dg/pr117115.d
  a81f29fc44be5cd208351e9e8b4a742b  gcc/testsuite/gdc.dg/pr117621.d
  0b4ca5d336606fc94e656b8731b0a78e  gcc/testsuite/gdc.dg/pr119139.d
+ ad51c6065b49988f50a3f799a0e5f9a3  gcc/testsuite/gdc.dg/pr121477.d
+ d9ff6161866e2870e0df96f834797f71  gcc/testsuite/gdc.dg/pr122817.d
+ e4d8064a02951cfe69cf639a94128dd0  gcc/testsuite/gdc.dg/pr123046.d
+ 9ce0fee5b0fbb84c1de9a43ef50b9462  gcc/testsuite/gdc.dg/pr123264.d
+ e89ebd75d9b162289c929675222e8501  gcc/testsuite/gdc.dg/pr123407a.d
+ a45efe7a1d6f8b7f15f7befa3e7b1768  gcc/testsuite/gdc.dg/pr123407b.d
+ 69d3ed5a5a7a71ad897f5f4d6f52654e  gcc/testsuite/gdc.dg/pr123411.d
+ 4e7020df6ad139d4b43104ca5b97d142  gcc/testsuite/gdc.dg/pr123419.d
+ 56c2a0939424aafd465f15ffdd08847b  gcc/testsuite/gdc.dg/pr123798.d
+ dd315fdb117d70623ce6b07b3cb8adda  gcc/testsuite/gdc.dg/pr123995.d
+ 902fe3e7f279d73fc960a4f4cd198bc1  gcc/testsuite/gdc.dg/pr124922.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/te
*** 95432,95438 ****
  aa2d8c1877494580482a3ecd53273c14  gcc/testsuite/gdc.dg/pr90136a.d
  8da24faca8bd7e53b1b35f77886e3c00  gcc/testsuite/gdc.dg/pr90136b.d
  2268967ca63a17d4ce6711255dbfe36e  gcc/testsuite/gdc.dg/pr90136c.d
! 8a30d0c28f872107d7f7e74674a11567  gcc/testsuite/gdc.dg/pr90601.d
  8a837e0b3fba99cf4023482b96f88084  gcc/testsuite/gdc.dg/pr90650a.d
  f638c5e447bcee1678d424bc788ce5d9  gcc/testsuite/gdc.dg/pr90650b.d
  1b70c40a24017e49d5474d3553acac65  gcc/testsuite/gdc.dg/pr91238.d
--- 107614,107620 ----
  aa2d8c1877494580482a3ecd53273c14  gcc/testsuite/gdc.dg/pr90136a.d
  8da24faca8bd7e53b1b35f77886e3c00  gcc/testsuite/gdc.dg/pr90136b.d
  2268967ca63a17d4ce6711255dbfe36e  gcc/testsuite/gdc.dg/pr90136c.d
! ec680f8cf881b6b7776810d1af286b7d  gcc/testsuite/gdc.dg/pr90601.d
  8a837e0b3fba99cf4023482b96f88084  gcc/testsuite/gdc.dg/pr90650a.d
  f638c5e447bcee1678d424bc788ce5d9  gcc/testsuite/gdc.dg/pr90650b.d
  1b70c40a24017e49d5474d3553acac65  gcc/testsuite/gdc.dg/pr91238.d
*************** dc97b4112b134cae3d15aab92424d97a  gcc/te
*** 95463,95469 ****
  a55903f9c72658c02ea18841f80bff0c  gcc/testsuite/gdc.dg/pr98427.d
  2ff2dd55acd20dffe2b5e58febe66c8b  gcc/testsuite/gdc.dg/pr98457.d
  3b746393a80b865ba51671750bc32bb9  gcc/testsuite/gdc.dg/pr99914.d
! a236812cd6f3973a12c60a0d7ee4701c  gcc/testsuite/gdc.dg/rtti1.d
  2586587f34ed7ef788014cd87436908f  gcc/testsuite/gdc.dg/simd1.d
  a182c1f547b3b5d1ac97048fc88292b8  gcc/testsuite/gdc.dg/simd10447.d
  391b914cb5a7ad86f4f5b923fd3ef898  gcc/testsuite/gdc.dg/simd12776.d
--- 107645,107652 ----
  a55903f9c72658c02ea18841f80bff0c  gcc/testsuite/gdc.dg/pr98427.d
  2ff2dd55acd20dffe2b5e58febe66c8b  gcc/testsuite/gdc.dg/pr98457.d
  3b746393a80b865ba51671750bc32bb9  gcc/testsuite/gdc.dg/pr99914.d
! dd16ff549f4be13eb8b00f7f25f299af  gcc/testsuite/gdc.dg/rtti1.d
! 86607b0cce3bd6a2c15b254af6f615fb  gcc/testsuite/gdc.dg/rtti2.d
  2586587f34ed7ef788014cd87436908f  gcc/testsuite/gdc.dg/simd1.d
  a182c1f547b3b5d1ac97048fc88292b8  gcc/testsuite/gdc.dg/simd10447.d
  391b914cb5a7ad86f4f5b923fd3ef898  gcc/testsuite/gdc.dg/simd12776.d
*************** f0043ec96c6a4b20386957bb95d026e5  gcc/te
*** 95504,95510 ****
  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
--- 107687,107693 ----
  1633c66380e59ee711011b5084db8e21  gcc/testsuite/gdc.dg/simd2j.d
  ae514e1e0dc35f480c8a12eb626e8e37  gcc/testsuite/gdc.dg/simd7951.d
  e6da23dd8d6593b3e693bba3c6655d0e  gcc/testsuite/gdc.dg/special1.d
! 08313cab45a37756005e02ed7d9ece71  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
*************** de9193ce38f7ef3ee1cc3a94fc8a92dc  gcc/te
*** 95559,95564 ****
--- 107742,107749 ----
  ad67c2aef0ecf01677e58695b0cc5d36  gcc/testsuite/gdc.dg/torture/pr113758.d
  c3a3fcac804266bf984aad50e1f84157  gcc/testsuite/gdc.dg/torture/pr114171.d
  a1ef8a304026fe097c3f6356f2dd2b2a  gcc/testsuite/gdc.dg/torture/pr117002.d
+ 07b590affdb88374b53601052d66c8a8  gcc/testsuite/gdc.dg/torture/pr120096.d
+ 18190856d5dece191ecd40c185c2b684  gcc/testsuite/gdc.dg/torture/pr123422.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
*************** d21b6150a8d726bb469bed3f4c7015d8  gcc/te
*** 95610,95633 ****
  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/testsuite/gdc.test/compilable/a3682.d
  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
  ab71c99c2e31e96bdb735e5c870e7ed3  gcc/testsuite/gdc.test/compilable/b12504.d
  24947d925dcac5d1e172b8d8425fee4e  gcc/testsuite/gdc.test/compilable/b15206.d
  c6f64fcc66716ad719d6a22796d0fbec  gcc/testsuite/gdc.test/compilable/b15428.d
--- 107795,107820 ----
  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
! 0c23277d1307b1591c751c4a7fed1406  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
! fdb20b4456e1c62ffc98884e6a7cb2a4  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/testsuite/gdc.test/compilable/a3682.d
  695153e68a4a8b3579aeca75fd920e75  gcc/testsuite/gdc.test/compilable/aggr_alignment.d
+ 24b3ff793970506873798454402bf054  gcc/testsuite/gdc.test/compilable/alias_param_qual.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
+ c99048f6a48149a74f35c56b60d26739  gcc/testsuite/gdc.test/compilable/autoreflambda.d
  42ddfcff51dacb470df4e5adfdbfd451  gcc/testsuite/gdc.test/compilable/b11118.d
! 61b5d76fa46075ace79b43eeb0c67597  gcc/testsuite/gdc.test/compilable/b12001.d
! 788020e690d5a1dd58a8b1f8cc224a0b  gcc/testsuite/gdc.test/compilable/b1215.d
  ab71c99c2e31e96bdb735e5c870e7ed3  gcc/testsuite/gdc.test/compilable/b12504.d
  24947d925dcac5d1e172b8d8425fee4e  gcc/testsuite/gdc.test/compilable/b15206.d
  c6f64fcc66716ad719d6a22796d0fbec  gcc/testsuite/gdc.test/compilable/b15428.d
*************** a8b6758c3ba22d9d2f071a8dc18ecab5  gcc/te
*** 95679,95685 ****
  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
--- 107866,107872 ----
  2195ce4127b8a9f492fa85a2796e69c1  gcc/testsuite/gdc.test/compilable/checkimports3.d
  e9bc0ee21bdd74cb21b6395788d7c0f1  gcc/testsuite/gdc.test/compilable/chkformat.d
  3f35daa0fd4ae106ce4b0b87093d646d  gcc/testsuite/gdc.test/compilable/commontype.d
! 5a3ee15dbab5b7097ba7f0de282e9905  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
*************** b69be4810e3ae0bc0ca5518561733f11  gcc/te
*** 95691,95697 ****
  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
--- 107878,107884 ----
  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
! a5d8a382d6db9bd3b8ca8148660adc72  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
*************** b4b3da555766eb0b4b5db38e61553d4f  gcc/te
*** 95776,95793 ****
  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
  3d6162e3c3db730ccaa118a759d35fa7  gcc/testsuite/gdc.test/compilable/diag3243.d
  08a6091d350abf130fa4da0f7a69b863  gcc/testsuite/gdc.test/compilable/dip22.d
  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
--- 107963,107982 ----
  e84e0d42d3044dbde3d74652eb93e92d  gcc/testsuite/gdc.test/compilable/debugInference.d
  5fb42fddd5e4bf43c346eb684e1ddbb2  gcc/testsuite/gdc.test/compilable/debuginfo.d
  377e08c5bfca6bccec8079835ce5172d  gcc/testsuite/gdc.test/compilable/defa.d
! 32655e096e2f9a83572e0fdfd362aac3  gcc/testsuite/gdc.test/compilable/depmsg.d
  91d811dc652f420e22d87ecf1e4d5b9c  gcc/testsuite/gdc.test/compilable/deprecate14283.d
  9dc53bd58d2680d3a49733c74e54e36a  gcc/testsuite/gdc.test/compilable/deprecated_override.d
! 9292561294e480def7a109965e12e0e1  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
+ dd4677fb4993d319e42b235979eaf1e8  gcc/testsuite/gdc.test/compilable/diag20916.d
  3d6162e3c3db730ccaa118a759d35fa7  gcc/testsuite/gdc.test/compilable/diag3243.d
  08a6091d350abf130fa4da0f7a69b863  gcc/testsuite/gdc.test/compilable/dip22.d
  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
+ 4624308e8c87fbfed4972f89af8e839b  gcc/testsuite/gdc.test/compilable/dotvar_ref_return.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
*************** ae1f4203bf550794e707ed5be806367b  gcc/te
*** 95838,95844 ****
  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
--- 108027,108033 ----
  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
! a0fe9723b29083805d3e9936dfcd579d  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
*************** cb6818365b29b41ad47f5424c409e99c  gcc/te
*** 95864,95871 ****
--- 108053,108064 ----
  ef173d2cdbc0bc5a02f0c5d0cbd51949  gcc/testsuite/gdc.test/compilable/extra-files/serenity7190/core/Model.d
  9f668d225fea83eafca80d0c1f8e96b8  gcc/testsuite/gdc.test/compilable/extra-files/test16080b.d
  1eb726ec1e3b3c09d563bfeba4931136  gcc/testsuite/gdc.test/compilable/extra-files/test20280a.d
+ 99d80ccd7867c7259503fd44c26fe0d6  gcc/testsuite/gdc.test/compilable/extra-files/test21331.d
+ 718c3f34332e4cfe777a85adad9af785  gcc/testsuite/gdc.test/compilable/extra-files/test21359a.d
+ 6abe6aaad8522f898caca71202655bb2  gcc/testsuite/gdc.test/compilable/extra-files/test21359b.d
  fb236a7127b6d48fe9a40a7cf59bdd47  gcc/testsuite/gdc.test/compilable/extra-files/test23626a.d
  2ce64eff388d8039e70e7c45b5f951a7  gcc/testsuite/gdc.test/compilable/extra-files/test23626b.d
+ c90249f71debdedafd244d316d129d4b  gcc/testsuite/gdc.test/compilable/extra-files/ucn_vars.i
  52dedd0bc0265044807934e4f228636d  gcc/testsuite/gdc.test/compilable/fail137.d
  513a2b1874c3c5a798b1586ac310cc31  gcc/testsuite/gdc.test/compilable/fail260.d
  b552f44c7ef16a065db8c305bc20c029  gcc/testsuite/gdc.test/compilable/fieldwise.d
*************** bdc5603a01b589a3ad148a565edf3bce  gcc/te
*** 95880,95887 ****
  1646038aa524792b66b4e87f78390e1e  gcc/testsuite/gdc.test/compilable/fix21585.d
  856cfe13aa8bb90d5bc353192c47acb3  gcc/testsuite/gdc.test/compilable/fix21647.d
  ee268250692a50def2153c685c32d7ec  gcc/testsuite/gdc.test/compilable/fix21684.d
  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
--- 108073,108082 ----
  1646038aa524792b66b4e87f78390e1e  gcc/testsuite/gdc.test/compilable/fix21585.d
  856cfe13aa8bb90d5bc353192c47acb3  gcc/testsuite/gdc.test/compilable/fix21647.d
  ee268250692a50def2153c685c32d7ec  gcc/testsuite/gdc.test/compilable/fix21684.d
+ 36dd2f69f87075849d4d032b546a566a  gcc/testsuite/gdc.test/compilable/fix21894.d
+ 2498316f7b74aebdc88fcae821e9a27c  gcc/testsuite/gdc.test/compilable/fix21945.d
  9f30e0d0feb7d3b7c285ce54964333ab  gcc/testsuite/gdc.test/compilable/fix22180.d
! 0dc5f3e098cb578a0699e7923a49dd29  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
*************** f6dc0b6e038af5071ee1975e134b72f2  gcc/te
*** 95958,95969 ****
  f42b040cc735f147de9e381788dcc63b  gcc/testsuite/gdc.test/compilable/imports/checkimports3c.d
  692529dfdfa147098a56106a9b118e36  gcc/testsuite/gdc.test/compilable/imports/cimports2a.i
  6274b24fdb136ad0547252b1bd73b757  gcc/testsuite/gdc.test/compilable/imports/cimports2b.i
! 181e788a386ac8cb359ed9cd7b9eeffd  gcc/testsuite/gdc.test/compilable/imports/cstuff3.c
  957c95be0044c62b0a6c57145ffd62c8  gcc/testsuite/gdc.test/compilable/imports/defaa.d
  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
--- 108153,108164 ----
  f42b040cc735f147de9e381788dcc63b  gcc/testsuite/gdc.test/compilable/imports/checkimports3c.d
  692529dfdfa147098a56106a9b118e36  gcc/testsuite/gdc.test/compilable/imports/cimports2a.i
  6274b24fdb136ad0547252b1bd73b757  gcc/testsuite/gdc.test/compilable/imports/cimports2b.i
! fd7759c67a46d908c24bc7178a2e1989  gcc/testsuite/gdc.test/compilable/imports/cstuff3.c
  957c95be0044c62b0a6c57145ffd62c8  gcc/testsuite/gdc.test/compilable/imports/defaa.d
  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
! 583eedfa3d3e939227a0767410feb826  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
*************** a3ec949c029ba8d789fb2062d3d42b03  gcc/te
*** 95980,95985 ****
--- 108175,108181 ----
  9168068939f17dfd1fe8311083b1b8ae  gcc/testsuite/gdc.test/compilable/imports/g313staticif.d
  9168068939f17dfd1fe8311083b1b8ae  gcc/testsuite/gdc.test/compilable/imports/g313stringmixin.d
  9168068939f17dfd1fe8311083b1b8ae  gcc/testsuite/gdc.test/compilable/imports/g313templatemixin.d
+ 1fede6e392dceebdba3a1cb310fc91b6  gcc/testsuite/gdc.test/compilable/imports/h20184.h
  1d15877df5e20c5ffc6c757bf0dcf02b  gcc/testsuite/gdc.test/compilable/imports/ice11054a.d
  c1ca533d08e73bc66136050ee7b7c9e8  gcc/testsuite/gdc.test/compilable/imports/ice11300a.d
  2056faa392dbead9570c704db50b8806  gcc/testsuite/gdc.test/compilable/imports/ice13403a.d
*************** c2a53211d7370f7da0d508d30c736f20  gcc/te
*** 96000,96005 ****
--- 108196,108205 ----
  d827eb3984b4481ec333627e31ee09fa  gcc/testsuite/gdc.test/compilable/imports/imp16798.d
  b30b6080ecb6542eb56edd90c23c9b30  gcc/testsuite/gdc.test/compilable/imports/imp17434a.d
  ea65566139853a79da85531efc2f6d87  gcc/testsuite/gdc.test/compilable/imports/imp17434b.d
+ ac28cd8cd40e77f929a988767feb260b  gcc/testsuite/gdc.test/compilable/imports/imp18127a.c
+ ac28cd8cd40e77f929a988767feb260b  gcc/testsuite/gdc.test/compilable/imports/imp18127b.c
+ 4460ef1084fdf08073ce3e470a812dae  gcc/testsuite/gdc.test/compilable/imports/imp20344.c
+ d09af707f3fc351f810a8c42d09cda6a  gcc/testsuite/gdc.test/compilable/imports/imp20499.c
  c1d1d74046f5a2e29b3546ad753f2ff9  gcc/testsuite/gdc.test/compilable/imports/imp21832.d
  1c35e431433b3fb94161638f9c282174  gcc/testsuite/gdc.test/compilable/imports/imp22122.d
  a667727c02ccc971d7c05c508de4ada9  gcc/testsuite/gdc.test/compilable/imports/imp22625.c
*************** ed6b446a1bba02028807741f49a0b12c  gcc/te
*** 96117,96122 ****
--- 108317,108323 ----
  d654e41d3edb7b700db7d883613c57c9  gcc/testsuite/gdc.test/compilable/imports/test21464a.d
  e00a356527fd9de68672afcd288ed7d8  gcc/testsuite/gdc.test/compilable/imports/test21501b.d
  1bab730cb011f8e9b10ea5b2125d66b5  gcc/testsuite/gdc.test/compilable/imports/test21501c.d
+ 1426772c74b19837d4dc9b0b93b138ed  gcc/testsuite/gdc.test/compilable/imports/test22480b.d
  51ca7edb1da87ea549ea40ae10a57096  gcc/testsuite/gdc.test/compilable/imports/test22685b.d
  9ab422df3123c1496f5dc9fe36ad6df5  gcc/testsuite/gdc.test/compilable/imports/test22685c.d
  02a2590e246aa059b8b0a4cb52842f7d  gcc/testsuite/gdc.test/compilable/imports/test22714a.d
*************** e1b2201bb7bef13edd5b1dd62a016069  gcc/te
*** 96180,96186 ****
  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
--- 108381,108387 ----
  13a308ac0197720d622c5e96c15af2f1  gcc/testsuite/gdc.test/compilable/inliner.d
  a2c2b21595b3ee690554e1ff236b06d9  gcc/testsuite/gdc.test/compilable/inliner2.d
  57536b137580aa96501e0f145ed436bc  gcc/testsuite/gdc.test/compilable/interpret3.d
! 63a9df5abde3831737853ccf2362b3fc  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
*************** ae88d21e8bfd01b05f4afba75f1e9a03  gcc/te
*** 96193,96198 ****
--- 108394,108400 ----
  c0f06c2e74f038183aab3cc3cf221b3e  gcc/testsuite/gdc.test/compilable/issue16044.d
  b910b30d7854e09339dcc3d2fb33a7f1  gcc/testsuite/gdc.test/compilable/issue16472.d
  7bcbdbaec218cd3d09ad98dd4abbe588  gcc/testsuite/gdc.test/compilable/issue18097.d
+ fe44e24d12d83471ac0d96c9207e7023  gcc/testsuite/gdc.test/compilable/issue19163.d
  9233bd62bb2a9f406c9aca87b21e05fc  gcc/testsuite/gdc.test/compilable/issue19925.d
  84569a59fa72cede17db7adb47fece04  gcc/testsuite/gdc.test/compilable/issue20339.d
  daa2c8dffcb01b4cb7fedae1b33794fa  gcc/testsuite/gdc.test/compilable/issue20362.d
*************** d44936b3c2d3be5638fdb042d88ff414  gcc/te
*** 96215,96223 ****
--- 108417,108430 ----
  2d1583b71f98db376391828cdebcd86e  gcc/testsuite/gdc.test/compilable/issue21880.d
  5d3024e94e16444e74e762a86e97ac5a  gcc/testsuite/gdc.test/compilable/issue21882.d
  24aa1bef43803bf7945269f6dbb963db  gcc/testsuite/gdc.test/compilable/issue21905.d
+ 30afcf5d02c0acf54673fe68edc9d66e  gcc/testsuite/gdc.test/compilable/issue21997.d
  4803db4022ac5a18c1ba3362a8d75239  gcc/testsuite/gdc.test/compilable/issue22130.d
+ 866dd500385364fa7a2dc0342870e51a  gcc/testsuite/gdc.test/compilable/issue22254.d
+ 0ad231f03afd872b0f475753be1ad143  gcc/testsuite/gdc.test/compilable/issue22397.d
+ 71b8274123e64cab2d37e06c33428cb6  gcc/testsuite/gdc.test/compilable/issue22448.d
  f725ac9468f8266d38b3b800c3de49d5  gcc/testsuite/gdc.test/compilable/issue22646.d
  d709501e56b18dfceb4ac84745302890  gcc/testsuite/gdc.test/compilable/issue22682.d
+ 5f6688983431cc66805864ffe839cbc1  gcc/testsuite/gdc.test/compilable/issue22769.d
  87ad8472814b8ec81a7279eb5624af7d  gcc/testsuite/gdc.test/compilable/issue22854.d
  07e9955d34050593bd26a0af011eeae2  gcc/testsuite/gdc.test/compilable/issue22975.d
  6febadbbf0173c101fca008948c0ffeb  gcc/testsuite/gdc.test/compilable/issue23391.d
*************** e48bb3f9b4ce7ea2fd0e40439d3ed734  gcc/te
*** 96232,96244 ****
  e91a92c9c06d7b2d9d69ab65e6d5d8b4  gcc/testsuite/gdc.test/compilable/json.d
  0dbed47c0a9e6379e5441611de2fdd43  gcc/testsuite/gdc.test/compilable/json20742.d
  b250222652a93e5b4bdcc759db2b45ce  gcc/testsuite/gdc.test/compilable/line.d
  ef508e45d854adfd4d46622db5b51b8a  gcc/testsuite/gdc.test/compilable/minimal.d
  4990d90debeabfbce3e25456ea3e80cd  gcc/testsuite/gdc.test/compilable/minimal2.d
  0b7708bb7ff6eae9428be2b56c06e0fd  gcc/testsuite/gdc.test/compilable/minimal3.d
  81b29659c83d32c1150fdcbfb8ebc393  gcc/testsuite/gdc.test/compilable/mixin.d
  c0a34931ae605eeb3d2920a2ea74eb71  gcc/testsuite/gdc.test/compilable/mixinTemplateMangling.d
  4d64b8d079b2551742ff35ba2d23cb22  gcc/testsuite/gdc.test/compilable/mixintempl.d
! b6a5dd6f5f5e40ec69f5d95cff610577  gcc/testsuite/gdc.test/compilable/mixintype.d
  7f66ba09b458afa472d31fc5f9015147  gcc/testsuite/gdc.test/compilable/mixintype2.d
  12cc7909584b66e9017a50fdd8e9ca50  gcc/testsuite/gdc.test/compilable/must_use_assign.d
  4609d14d7f0e432204e446fc10286d5b  gcc/testsuite/gdc.test/compilable/must_use_initialize.d
--- 108439,108452 ----
  e91a92c9c06d7b2d9d69ab65e6d5d8b4  gcc/testsuite/gdc.test/compilable/json.d
  0dbed47c0a9e6379e5441611de2fdd43  gcc/testsuite/gdc.test/compilable/json20742.d
  b250222652a93e5b4bdcc759db2b45ce  gcc/testsuite/gdc.test/compilable/line.d
+ 81194db17fd0569e05c785b06816e85f  gcc/testsuite/gdc.test/compilable/mangle1.d
  ef508e45d854adfd4d46622db5b51b8a  gcc/testsuite/gdc.test/compilable/minimal.d
  4990d90debeabfbce3e25456ea3e80cd  gcc/testsuite/gdc.test/compilable/minimal2.d
  0b7708bb7ff6eae9428be2b56c06e0fd  gcc/testsuite/gdc.test/compilable/minimal3.d
  81b29659c83d32c1150fdcbfb8ebc393  gcc/testsuite/gdc.test/compilable/mixin.d
  c0a34931ae605eeb3d2920a2ea74eb71  gcc/testsuite/gdc.test/compilable/mixinTemplateMangling.d
  4d64b8d079b2551742ff35ba2d23cb22  gcc/testsuite/gdc.test/compilable/mixintempl.d
! 7bf5f2854c88f47cfa167672828d5d78  gcc/testsuite/gdc.test/compilable/mixintype.d
  7f66ba09b458afa472d31fc5f9015147  gcc/testsuite/gdc.test/compilable/mixintype2.d
  12cc7909584b66e9017a50fdd8e9ca50  gcc/testsuite/gdc.test/compilable/must_use_assign.d
  4609d14d7f0e432204e446fc10286d5b  gcc/testsuite/gdc.test/compilable/must_use_initialize.d
*************** b6a5dd6f5f5e40ec69f5d95cff610577  gcc/te
*** 96253,96270 ****
  3f429b7fd1182c86a4ee7ddda577063d  gcc/testsuite/gdc.test/compilable/named_arguments_ifti.d
  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
  2026505b4c5299ff0ad966add4ef2d4e  gcc/testsuite/gdc.test/compilable/previewin.d
  600189166a802a0fdc956497de7efadd  gcc/testsuite/gdc.test/compilable/protattr.d
  20b93d64c0f1a131967d443511e7bb0c  gcc/testsuite/gdc.test/compilable/protection.d
  cb143d7698f10438d8c8cf1f61f40f48  gcc/testsuite/gdc.test/compilable/protection/aggregate/mod14275.d
--- 108461,108482 ----
  3f429b7fd1182c86a4ee7ddda577063d  gcc/testsuite/gdc.test/compilable/named_arguments_ifti.d
  234250ba55c9db35a7a38bbdebebc0ac  gcc/testsuite/gdc.test/compilable/nestedtempl0.d
  0692185f429a12ae9a98b28baf6bc8e1  gcc/testsuite/gdc.test/compilable/nestedtempl1.d
+ fa8e253edd8226e41e23c37fab785e79  gcc/testsuite/gdc.test/compilable/new_xdtor.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
! 5c932b51d7bcf76be75074ceae5b3559  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
+ dc3766723ef48e6875b04c61621d2b21  gcc/testsuite/gdc.test/compilable/pragmamangle1.d
+ b2853fbcb6f2e8393dd11467aad098ff  gcc/testsuite/gdc.test/compilable/pragmamangle2.d
  2026505b4c5299ff0ad966add4ef2d4e  gcc/testsuite/gdc.test/compilable/previewin.d
+ cbd1a962c33ae13ce3a77bfe965ba9e7  gcc/testsuite/gdc.test/compilable/profilegc_typename.d
  600189166a802a0fdc956497de7efadd  gcc/testsuite/gdc.test/compilable/protattr.d
  20b93d64c0f1a131967d443511e7bb0c  gcc/testsuite/gdc.test/compilable/protection.d
  cb143d7698f10438d8c8cf1f61f40f48  gcc/testsuite/gdc.test/compilable/protection/aggregate/mod14275.d
*************** cb69cd9c07c4efaaa81841b22628a64e  gcc/te
*** 96292,96305 ****
  d1bae8a7d648de90882dfe330925715c  gcc/testsuite/gdc.test/compilable/scope_tuple_expansion.d
  882b736d1262f755a317ddc6156a5b43  gcc/testsuite/gdc.test/compilable/scopeinfer.d
  b58883b15934c7e71a25e7843fcbd199  gcc/testsuite/gdc.test/compilable/segfaultgolf.d
! 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
--- 108504,108518 ----
  d1bae8a7d648de90882dfe330925715c  gcc/testsuite/gdc.test/compilable/scope_tuple_expansion.d
  882b736d1262f755a317ddc6156a5b43  gcc/testsuite/gdc.test/compilable/scopeinfer.d
  b58883b15934c7e71a25e7843fcbd199  gcc/testsuite/gdc.test/compilable/segfaultgolf.d
! 0998e2c567b544e66b07348098329963  gcc/testsuite/gdc.test/compilable/shared.d
  fd1eeff8f6c846eeb29e20921f5da298  gcc/testsuite/gdc.test/compilable/shared_destructor.d
  badf98b7c4bd98928b7900f50021dd58  gcc/testsuite/gdc.test/compilable/sharedopt.d
! a5ede992e0b55bb7b82de23ec7a12a16  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
+ 19fa9678bc50fd08f78490fa04ccfd29  gcc/testsuite/gdc.test/compilable/struct_allMembers.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
*************** a31fd9f2cc10a6447171c8ddf4fe8946  gcc/te
*** 96327,96332 ****
--- 108540,108546 ----
  f0584c1b2c098c52e274ad8b664c4946  gcc/testsuite/gdc.test/compilable/test11563.d
  1a72cdc04edb98f95460beb07b42aa06  gcc/testsuite/gdc.test/compilable/test11656.d
  29dcee761ee66cd4df7f6580bc4cc656  gcc/testsuite/gdc.test/compilable/test1170.d
+ 6e8b851a0e23d4575b88f0fff1b8e10b  gcc/testsuite/gdc.test/compilable/test11720.d
  6f29e1c2c94e9aa39045848ad7a4e0bf  gcc/testsuite/gdc.test/compilable/test11824.d
  0db92c92cecb1382ce4798c061531a12  gcc/testsuite/gdc.test/compilable/test11847.d
  8bf0ff47ef3b2433a9fa48e24c536bc7  gcc/testsuite/gdc.test/compilable/test11914.d
*************** bbcda40bdaf31c69195f2b752d783ab7  gcc/te
*** 96373,96379 ****
  d08eb915c0915356c5a6a6cfb65fc12c  gcc/testsuite/gdc.test/compilable/test14747.d
  2715a539d70e535ba7ff6e6c97ef43da  gcc/testsuite/gdc.test/compilable/test14781.d
  afc327b884abbf80232d16e085c874da  gcc/testsuite/gdc.test/compilable/test14831.d
! ce3583d666a02f9aeb875d1e3214809a  gcc/testsuite/gdc.test/compilable/test14838.d
  9006649e9e8c8f1a23086a5ced20b516  gcc/testsuite/gdc.test/compilable/test14929.d
  fd79d2256c9f3b641f6858510f031dec  gcc/testsuite/gdc.test/compilable/test14962.d
  1413a891a6e34f5017ae82469f21b4d5  gcc/testsuite/gdc.test/compilable/test14973.d
--- 108587,108593 ----
  d08eb915c0915356c5a6a6cfb65fc12c  gcc/testsuite/gdc.test/compilable/test14747.d
  2715a539d70e535ba7ff6e6c97ef43da  gcc/testsuite/gdc.test/compilable/test14781.d
  afc327b884abbf80232d16e085c874da  gcc/testsuite/gdc.test/compilable/test14831.d
! 7358a77abf4a68743e5daa53db7ec92c  gcc/testsuite/gdc.test/compilable/test14838.d
  9006649e9e8c8f1a23086a5ced20b516  gcc/testsuite/gdc.test/compilable/test14929.d
  fd79d2256c9f3b641f6858510f031dec  gcc/testsuite/gdc.test/compilable/test14962.d
  1413a891a6e34f5017ae82469f21b4d5  gcc/testsuite/gdc.test/compilable/test14973.d
*************** f939195a756583414ca62eca1c507ae4  gcc/te
*** 96450,96456 ****
  b7bee84af0ad6009095814d5a080d445  gcc/testsuite/gdc.test/compilable/test17059.d
  e87f48da66ddb31559c11628da10640e  gcc/testsuite/gdc.test/compilable/test17130.d
  16dce14bbec02c568631b0ba49045080  gcc/testsuite/gdc.test/compilable/test17143.d
! 463575820b4e2a41b812f728846774a7  gcc/testsuite/gdc.test/compilable/test17146.d
  603435cff972cf545cbfd4cbaf7675c6  gcc/testsuite/gdc.test/compilable/test17168.d
  9f322d85f59db5aacfceee570828f699  gcc/testsuite/gdc.test/compilable/test17215.d
  34a4f761ce44732e8d98f2154d655148  gcc/testsuite/gdc.test/compilable/test17339.d
--- 108664,108670 ----
  b7bee84af0ad6009095814d5a080d445  gcc/testsuite/gdc.test/compilable/test17059.d
  e87f48da66ddb31559c11628da10640e  gcc/testsuite/gdc.test/compilable/test17130.d
  16dce14bbec02c568631b0ba49045080  gcc/testsuite/gdc.test/compilable/test17143.d
! 0aab03a2c2b660262e0aab4898de4d75  gcc/testsuite/gdc.test/compilable/test17146.d
  603435cff972cf545cbfd4cbaf7675c6  gcc/testsuite/gdc.test/compilable/test17168.d
  9f322d85f59db5aacfceee570828f699  gcc/testsuite/gdc.test/compilable/test17215.d
  34a4f761ce44732e8d98f2154d655148  gcc/testsuite/gdc.test/compilable/test17339.d
*************** fef3ccf128a702c92d1bb16b7150d66d  gcc/te
*** 96489,96494 ****
--- 108703,108709 ----
  d6dac6c332c8fa1b92e2550a20ceba4b  gcc/testsuite/gdc.test/compilable/test18030.d
  19884833b956eb2a61eb0e50846fbbe0  gcc/testsuite/gdc.test/compilable/test18099.d
  8c96dcf6167f002cfbba1551b126f451  gcc/testsuite/gdc.test/compilable/test18115.d
+ d291fcf302db5ca4a091411d5118997b  gcc/testsuite/gdc.test/compilable/test18127.d
  c983c55e7d4bad138553fa05aba16c85  gcc/testsuite/gdc.test/compilable/test18199.d
  b4c81e9573b790a45cd69a6adbc14b5d  gcc/testsuite/gdc.test/compilable/test18216.d
  ef2ed248a84e6cc602afeafacee55114  gcc/testsuite/gdc.test/compilable/test18251.d
*************** d523541b4c08ac260322ace25b248689  gcc/te
*** 96559,96564 ****
--- 108774,108780 ----
  5ea370d44e37e2ab55164aed83d8ea5c  gcc/testsuite/gdc.test/compilable/test19840.d
  0452ceca89cb72fc05d62c952c5fa7ab  gcc/testsuite/gdc.test/compilable/test19873.d
  0f6d3efebaf509724fd1be0e609f4721  gcc/testsuite/gdc.test/compilable/test19895.d
+ 04100a2cdc95384d6c3ed3b1f259f431  gcc/testsuite/gdc.test/compilable/test19905.d
  6959520dbe36e098ae727a4a9cdfdfe3  gcc/testsuite/gdc.test/compilable/test19912.d
  d3a145e0b8eb81046cf531f549124b3f  gcc/testsuite/gdc.test/compilable/test19936.d
  bd3b792f2e9fae4293f32a0195335936  gcc/testsuite/gdc.test/compilable/test19941.d
*************** cf29d6236afe9b9f4de2703982b9cd04  gcc/te
*** 96570,96586 ****
  f057bd33146438b011d455ce44cb5173  gcc/testsuite/gdc.test/compilable/test20039.d
  6345092bc04eb33a1b3873e1b6c0b770  gcc/testsuite/gdc.test/compilable/test20051.d
  b41606c2bc70ec2ddd69b8a97364d10e  gcc/testsuite/gdc.test/compilable/test20065.d
! 195ec41a9aadb6a762eeffa3fa1af74c  gcc/testsuite/gdc.test/compilable/test20100.d
  9482701b9e381297b6f37a1d0ce10792  gcc/testsuite/gdc.test/compilable/test20136.d
  779521e06838c0618e724ed04abf939b  gcc/testsuite/gdc.test/compilable/test20138.d
  acf65fea78fda931df435e170b4ff10e  gcc/testsuite/gdc.test/compilable/test20151a.d
  38f8f7828f75ee6da7c68edadee72d84  gcc/testsuite/gdc.test/compilable/test20181.d
  adacdca47b1782c409a13f7cae679385  gcc/testsuite/gdc.test/compilable/test20201.d
  7e7e889dc8289b4e1c60ca28fa97e657  gcc/testsuite/gdc.test/compilable/test20236.d
  9c9235445cfb7a0250eb9c627c45a97d  gcc/testsuite/gdc.test/compilable/test20280.d
  f770c7a5fb39b162b577f96d2ed51ab6  gcc/testsuite/gdc.test/compilable/test20296.d
  70311f9c04e984a9ba6a30958f3f246f  gcc/testsuite/gdc.test/compilable/test20318.d
  ec0561bd53dbd289f5e8f522895490cd  gcc/testsuite/gdc.test/compilable/test20326.d
  ee95259c574b365a1a30e980b06cd328  gcc/testsuite/gdc.test/compilable/test20367.d
  539d6f16bf63038504e9260d0363dbab  gcc/testsuite/gdc.test/compilable/test20388.d
  bfa3b260bba42f69ddab55c994c20dbc  gcc/testsuite/gdc.test/compilable/test20406.d
--- 108786,108805 ----
  f057bd33146438b011d455ce44cb5173  gcc/testsuite/gdc.test/compilable/test20039.d
  6345092bc04eb33a1b3873e1b6c0b770  gcc/testsuite/gdc.test/compilable/test20051.d
  b41606c2bc70ec2ddd69b8a97364d10e  gcc/testsuite/gdc.test/compilable/test20065.d
! 540d4efd741e61e13f804855ce945a91  gcc/testsuite/gdc.test/compilable/test20100.d
  9482701b9e381297b6f37a1d0ce10792  gcc/testsuite/gdc.test/compilable/test20136.d
  779521e06838c0618e724ed04abf939b  gcc/testsuite/gdc.test/compilable/test20138.d
  acf65fea78fda931df435e170b4ff10e  gcc/testsuite/gdc.test/compilable/test20151a.d
  38f8f7828f75ee6da7c68edadee72d84  gcc/testsuite/gdc.test/compilable/test20181.d
+ 847a49b5336cca902c29eba0b99aace0  gcc/testsuite/gdc.test/compilable/test20184.d
  adacdca47b1782c409a13f7cae679385  gcc/testsuite/gdc.test/compilable/test20201.d
  7e7e889dc8289b4e1c60ca28fa97e657  gcc/testsuite/gdc.test/compilable/test20236.d
  9c9235445cfb7a0250eb9c627c45a97d  gcc/testsuite/gdc.test/compilable/test20280.d
  f770c7a5fb39b162b577f96d2ed51ab6  gcc/testsuite/gdc.test/compilable/test20296.d
  70311f9c04e984a9ba6a30958f3f246f  gcc/testsuite/gdc.test/compilable/test20318.d
  ec0561bd53dbd289f5e8f522895490cd  gcc/testsuite/gdc.test/compilable/test20326.d
+ 4202582713ebca18c0d2231decf771ef  gcc/testsuite/gdc.test/compilable/test20344.d
+ b02fc3b30c6e783f47defd4ce8e142b1  gcc/testsuite/gdc.test/compilable/test20365.d
  ee95259c574b365a1a30e980b06cd328  gcc/testsuite/gdc.test/compilable/test20367.d
  539d6f16bf63038504e9260d0363dbab  gcc/testsuite/gdc.test/compilable/test20388.d
  bfa3b260bba42f69ddab55c994c20dbc  gcc/testsuite/gdc.test/compilable/test20406.d
*************** bfa3b260bba42f69ddab55c994c20dbc  gcc/te
*** 96589,96594 ****
--- 108808,108814 ----
  8d0f1a5a1e86cb9fd37c885bfe11dc84  gcc/testsuite/gdc.test/compilable/test20420.d
  a9bd99abed44befe910f7cb0409c337b  gcc/testsuite/gdc.test/compilable/test20427.d
  56c36e1b133f904122f59921311ead7a  gcc/testsuite/gdc.test/compilable/test20488.d
+ d45d2ff8a4ee7f100bb900a0ad0bfbe2  gcc/testsuite/gdc.test/compilable/test20499.d
  5d7a8d265f4f29667ecde34793879f65  gcc/testsuite/gdc.test/compilable/test20530.d
  06b732fa6a39c017318cbc16939f52fa  gcc/testsuite/gdc.test/compilable/test20537.d
  ce9651e5787ae3d47ac7f573ab68bdfd  gcc/testsuite/gdc.test/compilable/test20596.d
*************** f365ea24492d5a85d7a8825a2be7411b  gcc/te
*** 96614,96621 ****
--- 108834,108843 ----
  dbf2fba3b0e01ab05f8e2bdd9a3b8c81  gcc/testsuite/gdc.test/compilable/test20923.d
  2a127ee7235b95f33861ac54bfc49053  gcc/testsuite/gdc.test/compilable/test20958.d
  e1c4ec84eedeb5a0cc94e1f9bc4e5cbe  gcc/testsuite/gdc.test/compilable/test20990.d
+ 302c3d572f3da6df2f41dcaa4cf9c502  gcc/testsuite/gdc.test/compilable/test21039.d
  e7496866f23a58a93b9b6db19e13e796  gcc/testsuite/gdc.test/compilable/test21050.d
  bec53864a2bc465c93fe4d228284bc43  gcc/testsuite/gdc.test/compilable/test21058.d
+ 530ce434b634fe824b7a83f59c41f35f  gcc/testsuite/gdc.test/compilable/test21073.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
*************** c2783ee4a416f517c72d376739cda631  gcc/te
*** 96628,96649 ****
  0ba90edd374f89515b149c9045f12ad4  gcc/testsuite/gdc.test/compilable/test21299a.d
  0ee42ed10154a17167c5ff263b2f4b76  gcc/testsuite/gdc.test/compilable/test21299b.d
  f7ebbab88f0a4f86e71b06e130f593ee  gcc/testsuite/gdc.test/compilable/test21299c.d
! effd503ab143f07a377f69a6abd2e2ab  gcc/testsuite/gdc.test/compilable/test21299d.d
  35ca710712a0eaa3d821e4f0342671d7  gcc/testsuite/gdc.test/compilable/test21330.d
  1798a08bb6bc5d4d9cfb0e43f52c0214  gcc/testsuite/gdc.test/compilable/test21372.d
  98a7dd18d329068251146d297fab72d7  gcc/testsuite/gdc.test/compilable/test21398.d
  c6744c3207244c878cf6f0574302e3f2  gcc/testsuite/gdc.test/compilable/test21414.d
  f7b07a5a3e3bfac17af47439bb8ec413  gcc/testsuite/gdc.test/compilable/test21432.d
  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
  0764ce96c9ce4f3d70b3836da9d6630d  gcc/testsuite/gdc.test/compilable/test21667.d
  87f44e1d5fff91756fb573a11f351e2b  gcc/testsuite/gdc.test/compilable/test21668.d
  4a9ef9534274a7261d8cf88a58baebab  gcc/testsuite/gdc.test/compilable/test21680.d
  bfa238fa3d3abfcad805ef346ae86472  gcc/testsuite/gdc.test/compilable/test21719.d
  0f65bb2b07e0bc8dcb7e5d89eaf5b3f7  gcc/testsuite/gdc.test/compilable/test21742.d
  f10bc099db72cc0c133046af052d7a78  gcc/testsuite/gdc.test/compilable/test21743.d
--- 108850,108881 ----
  0ba90edd374f89515b149c9045f12ad4  gcc/testsuite/gdc.test/compilable/test21299a.d
  0ee42ed10154a17167c5ff263b2f4b76  gcc/testsuite/gdc.test/compilable/test21299b.d
  f7ebbab88f0a4f86e71b06e130f593ee  gcc/testsuite/gdc.test/compilable/test21299c.d
! 3593698740c8203726d12fb303bef757  gcc/testsuite/gdc.test/compilable/test21299d.d
  35ca710712a0eaa3d821e4f0342671d7  gcc/testsuite/gdc.test/compilable/test21330.d
+ fb73df52386a4853f612838bce8363f3  gcc/testsuite/gdc.test/compilable/test21331.sh
+ 559d7ce3f7f50529f0cf75779d7c9c3f  gcc/testsuite/gdc.test/compilable/test21359.sh
  1798a08bb6bc5d4d9cfb0e43f52c0214  gcc/testsuite/gdc.test/compilable/test21372.d
  98a7dd18d329068251146d297fab72d7  gcc/testsuite/gdc.test/compilable/test21398.d
  c6744c3207244c878cf6f0574302e3f2  gcc/testsuite/gdc.test/compilable/test21414.d
+ 2727942e4553437e85ff13dc61609b30  gcc/testsuite/gdc.test/compilable/test21416.d
  f7b07a5a3e3bfac17af47439bb8ec413  gcc/testsuite/gdc.test/compilable/test21432.d
  ba9fd4b88ca0267441472f1febace9ae  gcc/testsuite/gdc.test/compilable/test21438.d
  3f1b768c6d2a4190f6a0e7e142cea814  gcc/testsuite/gdc.test/compilable/test21464.d
+ b131c6442aea98d1e588db16b27a37b5  gcc/testsuite/gdc.test/compilable/test21476.d
+ eb854a5f354773f08ac907a58e7fb559  gcc/testsuite/gdc.test/compilable/test21495.d
  6aae9ab24e30cc1449c46abe03e9439e  gcc/testsuite/gdc.test/compilable/test21501a.d
+ 0954e81cdf17033b2c5e6f676723805b  gcc/testsuite/gdc.test/compilable/test21504a.d
+ 53d9e158cfd176986fa8c4f8f65856f3  gcc/testsuite/gdc.test/compilable/test21504b.d
  efef74ea28668cfb5bd423850b20fc1c  gcc/testsuite/gdc.test/compilable/test21514.d
+ 9959057e7dc37c0ead21531d77de783f  gcc/testsuite/gdc.test/compilable/test21543.d
  9c28314750a684e306e8009cc05f2c6d  gcc/testsuite/gdc.test/compilable/test21591.d
+ ecd65be5997aefc19e7c08dde34fedb9  gcc/testsuite/gdc.test/compilable/test21637.d
  4b14068114e43c728903370792cda6d8  gcc/testsuite/gdc.test/compilable/test21659.d
  f308f3be6a8928891a3703e099815b37  gcc/testsuite/gdc.test/compilable/test21661.d
  0764ce96c9ce4f3d70b3836da9d6630d  gcc/testsuite/gdc.test/compilable/test21667.d
  87f44e1d5fff91756fb573a11f351e2b  gcc/testsuite/gdc.test/compilable/test21668.d
  4a9ef9534274a7261d8cf88a58baebab  gcc/testsuite/gdc.test/compilable/test21680.d
+ bdb2b4862266301b202b64757967d899  gcc/testsuite/gdc.test/compilable/test21707.d
  bfa238fa3d3abfcad805ef346ae86472  gcc/testsuite/gdc.test/compilable/test21719.d
  0f65bb2b07e0bc8dcb7e5d89eaf5b3f7  gcc/testsuite/gdc.test/compilable/test21742.d
  f10bc099db72cc0c133046af052d7a78  gcc/testsuite/gdc.test/compilable/test21743.d
*************** a9244fe6f2b8ede1fa5bec2486685adc  gcc/te
*** 96656,96661 ****
--- 108888,108895 ----
  03e154b66e0ed0416386439812111279  gcc/testsuite/gdc.test/compilable/test21830.d
  bc7975fb011749a023500cb1a40cae84  gcc/testsuite/gdc.test/compilable/test21831.d
  7523071ea2543e26e45e5bf23bdd52cc  gcc/testsuite/gdc.test/compilable/test21832.d
+ 1f3a3d73257c7b3480bd26d4d5758810  gcc/testsuite/gdc.test/compilable/test21835.d
+ 752dfbc27e23079d0769be5f2834339f  gcc/testsuite/gdc.test/compilable/test21839.d
  6f5f3be0b3b35cb77d6cade261792f9d  gcc/testsuite/gdc.test/compilable/test21850.d
  031f91ebad1f7a90775adfbea13c93e7  gcc/testsuite/gdc.test/compilable/test21861.d
  9d6857891098eee0f95c918781d462a2  gcc/testsuite/gdc.test/compilable/test21876.d
*************** f0737d79f6456280c78a209165f4d539  gcc/te
*** 96671,96682 ****
--- 108905,108923 ----
  0a2c768ea20b238aef210b779c6be802  gcc/testsuite/gdc.test/compilable/test22228.d
  7f79a8ba6e17f04bc68a544afa1f4e7e  gcc/testsuite/gdc.test/compilable/test22254.d
  cd14028e6c63884cd62d8e8f5f122123  gcc/testsuite/gdc.test/compilable/test22292.d
+ 1c18eb850095e6120ccabb102f6452bc  gcc/testsuite/gdc.test/compilable/test22323.d
+ 9574a1cf0335cbc64ad8fffe5a93d6b3  gcc/testsuite/gdc.test/compilable/test22381.d
+ d9bbd5089e80e4d6c30315f520f4b05d  gcc/testsuite/gdc.test/compilable/test22383.d
  00f62f1242fafcf68f4d6010324917b8  gcc/testsuite/gdc.test/compilable/test22388.d
  d9bd3b9153d70453fbc2d383d0c00068  gcc/testsuite/gdc.test/compilable/test22390.d
  c3ad9ddce7a481ae3eceabc801dc2d60  gcc/testsuite/gdc.test/compilable/test22410.d
  65f8254f25cb4c8306d198aa1a754dd6  gcc/testsuite/gdc.test/compilable/test22420.d
  09e28d8639702c9abcd1422f5f548fea  gcc/testsuite/gdc.test/compilable/test22421.d
+ 03a691ac899f3f6bad4379e5a658a276  gcc/testsuite/gdc.test/compilable/test22480.d
+ 5bead42c60c2b45e76f23e7c004fe325  gcc/testsuite/gdc.test/compilable/test22501.d
  ce0a15ff2227846c0b33f5967b2e682c  gcc/testsuite/gdc.test/compilable/test22510.d
+ fde8c792b0361644b8385469e8d7fff2  gcc/testsuite/gdc.test/compilable/test22543.d
+ cfcd43aa98bed7f846ef473c671bb68a  gcc/testsuite/gdc.test/compilable/test22544.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
*************** d2f5f11274cb1bc2aceb1062858500d5  gcc/te
*** 96693,96698 ****
--- 108934,108940 ----
  7591114e0810d21b5f28a3159a1703bf  gcc/testsuite/gdc.test/compilable/test22714.d
  f574ca50ea8bff40d0be73e922b0c00a  gcc/testsuite/gdc.test/compilable/test22734.d
  f6f4d810653cc85742e61925d50a5476  gcc/testsuite/gdc.test/compilable/test22739.d
+ 29356722d822e731b10a2250aa72b223  gcc/testsuite/gdc.test/compilable/test22752.d
  72961d372efc32661c19b5d72c1194c5  gcc/testsuite/gdc.test/compilable/test22760.d
  aa87689770ed32b270abbc0c18e24e50  gcc/testsuite/gdc.test/compilable/test22784.d
  a13568e3baba05e9f1d3fdf1dd09aeb6  gcc/testsuite/gdc.test/compilable/test22813.d
*************** b6fa7fb8b6be39ac614122daf3b72230  gcc/te
*** 96700,96706 ****
  3ce6d345a8a1370ca8e0335c59ee3e11  gcc/testsuite/gdc.test/compilable/test22859.d
  5045cc574731b81b8e89337c37a97779  gcc/testsuite/gdc.test/compilable/test22860.d
  300c7a5a04905fb4e773274af32f50e9  gcc/testsuite/gdc.test/compilable/test22865.d
! 5e21d274547f621284add858e8815642  gcc/testsuite/gdc.test/compilable/test22916.d
  507222c7ae19a95bd88c720e54c83222  gcc/testsuite/gdc.test/compilable/test22919.d
  bed218d1e903acd1adf1a4db4ee2df53  gcc/testsuite/gdc.test/compilable/test22952.d
  a92fa3d1edefb6370e848a80b53e97ed  gcc/testsuite/gdc.test/compilable/test22988.d
--- 108942,108948 ----
  3ce6d345a8a1370ca8e0335c59ee3e11  gcc/testsuite/gdc.test/compilable/test22859.d
  5045cc574731b81b8e89337c37a97779  gcc/testsuite/gdc.test/compilable/test22860.d
  300c7a5a04905fb4e773274af32f50e9  gcc/testsuite/gdc.test/compilable/test22865.d
! a1b02a88fac5065d7fed350ef81de885  gcc/testsuite/gdc.test/compilable/test22916.d
  507222c7ae19a95bd88c720e54c83222  gcc/testsuite/gdc.test/compilable/test22919.d
  bed218d1e903acd1adf1a4db4ee2df53  gcc/testsuite/gdc.test/compilable/test22952.d
  a92fa3d1edefb6370e848a80b53e97ed  gcc/testsuite/gdc.test/compilable/test22988.d
*************** ebf5b789d4a31be2e939321d6490d585  gcc/te
*** 96716,96722 ****
  ef94e36ea4b149caeaa44951f0d8aa68  gcc/testsuite/gdc.test/compilable/test23145.d
  f8b8b1e13145441d1c69d68cde48b4c4  gcc/testsuite/gdc.test/compilable/test23166.d
  4f765e28fd4c1a48432ad744c956c3f9  gcc/testsuite/gdc.test/compilable/test23168.d
! 4fa99fe8979b3c75eac8f3e18f9f4ae4  gcc/testsuite/gdc.test/compilable/test23169.d
  e839f70004c90a7a3783e0b05662a616  gcc/testsuite/gdc.test/compilable/test23172.d
  b699d40488d1619d331aa57ab786b0e4  gcc/testsuite/gdc.test/compilable/test23173.d
  88e0f7dab62fcddda2de75f0d13d6b08  gcc/testsuite/gdc.test/compilable/test23174.d
--- 108958,108964 ----
  ef94e36ea4b149caeaa44951f0d8aa68  gcc/testsuite/gdc.test/compilable/test23145.d
  f8b8b1e13145441d1c69d68cde48b4c4  gcc/testsuite/gdc.test/compilable/test23166.d
  4f765e28fd4c1a48432ad744c956c3f9  gcc/testsuite/gdc.test/compilable/test23168.d
! bbf126ae9fbf872b4c94a2d0b9b197d0  gcc/testsuite/gdc.test/compilable/test23169.d
  e839f70004c90a7a3783e0b05662a616  gcc/testsuite/gdc.test/compilable/test23172.d
  b699d40488d1619d331aa57ab786b0e4  gcc/testsuite/gdc.test/compilable/test23173.d
  88e0f7dab62fcddda2de75f0d13d6b08  gcc/testsuite/gdc.test/compilable/test23174.d
*************** d6adb0700c796d7765e510c8288ad2f1  gcc/te
*** 96755,96760 ****
--- 108997,109003 ----
  bdd0c06634db6f2e18e57ba56c34f729  gcc/testsuite/gdc.test/compilable/test23789.d
  4cd1791956fa3c3a1364cada8370a6bf  gcc/testsuite/gdc.test/compilable/test23799.d
  d92784a5ee910f2865d3cc39254088cc  gcc/testsuite/gdc.test/compilable/test23812.d
+ 346a677b20e51ec5f2afcc46088f50a7  gcc/testsuite/gdc.test/compilable/test23857.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
*************** e0817cf6d028348d1ceb1d42fe85c006  gcc/te
*** 96769,96778 ****
--- 109012,109024 ----
  256ff7120fd910fd94d381724ea3c32f  gcc/testsuite/gdc.test/compilable/test23986.d
  675cd4f907ba41f1837587f403a62dc7  gcc/testsuite/gdc.test/compilable/test24013.d
  c94cae03cc6914ae6e20e7c016f9c9d4  gcc/testsuite/gdc.test/compilable/test24022.d
+ f580859211eb39522ce6154e0c28c2d5  gcc/testsuite/gdc.test/compilable/test24055.d
+ f3795c5673ff149abd1596e2ff53feb2  gcc/testsuite/gdc.test/compilable/test24061.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
+ 3111df59f5cfb5bf4224cdbcff79ed15  gcc/testsuite/gdc.test/compilable/test24295.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
*************** f8b0ae6368c0ee13f2e4e71e66c90b9a  gcc/te
*** 96782,96788 ****
  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
  65b2f8459513797e86e01bd50b1bb608  gcc/testsuite/gdc.test/compilable/test313a.d
  8b0a688ad726eb9d76224ef39e11e0f3  gcc/testsuite/gdc.test/compilable/test313b.d
  84d3cbf662e0b76bf448874c485eedb3  gcc/testsuite/gdc.test/compilable/test313c.d
--- 109028,109034 ----
  2f2e2bcd75caf71f208f6b63b17e5a58  gcc/testsuite/gdc.test/compilable/test24762.d
  330c2acf4539ef672ad9c8cf0faa0c5e  gcc/testsuite/gdc.test/compilable/test25.d
  912661e1615a2dd8fe14dbd20528f7ba  gcc/testsuite/gdc.test/compilable/test2991.d
! bd3858765f0732d50648f2a89ed532ed  gcc/testsuite/gdc.test/compilable/test3004.d
  65b2f8459513797e86e01bd50b1bb608  gcc/testsuite/gdc.test/compilable/test313a.d
  8b0a688ad726eb9d76224ef39e11e0f3  gcc/testsuite/gdc.test/compilable/test313b.d
  84d3cbf662e0b76bf448874c485eedb3  gcc/testsuite/gdc.test/compilable/test313c.d
*************** ceec4bcd5a404c18ed0f108ec1f5bf5e  gcc/te
*** 96803,96808 ****
--- 109049,109055 ----
  6d1e9687702234190693f0e531ac8839  gcc/testsuite/gdc.test/compilable/test5227.d
  46edec42d5338d9ae35bd08f80fc52d1  gcc/testsuite/gdc.test/compilable/test55.d
  d1f87c40fa0c0b62b9db8f077f690237  gcc/testsuite/gdc.test/compilable/test59.d
+ cd4cd770f9fc248d99ce5678ac34434b  gcc/testsuite/gdc.test/compilable/test5973.d
  10e8d5e8b165758a31cd3921e3649fe5  gcc/testsuite/gdc.test/compilable/test6013.d
  ba4310ed7e27a9658657147c4a8aea8a  gcc/testsuite/gdc.test/compilable/test602.d
  f203cdad472a1ac06cee89c4e3557d42  gcc/testsuite/gdc.test/compilable/test6056a.d
*************** db533e40440813c61fa46fb37a6f18b6  gcc/te
*** 96819,96824 ****
--- 109066,109072 ----
  783342e2cfeb88610e0a04d00450ea41  gcc/testsuite/gdc.test/compilable/test6552.d
  189fccabae6a301202fc7fad174d5203  gcc/testsuite/gdc.test/compilable/test66.d
  5beb11822a09654b517cd74fe05fb47a  gcc/testsuite/gdc.test/compilable/test67.d
+ 020d85eb88809fb9eff87180b65573b5  gcc/testsuite/gdc.test/compilable/test6777.d
  ae68fa3295e63c9b13e9139b6948f21f  gcc/testsuite/gdc.test/compilable/test68.d
  1564b6ec3ad7bfb5d4f94c2dfa5ae2c7  gcc/testsuite/gdc.test/compilable/test69.d
  326c080f81967572de05e4f09d015008  gcc/testsuite/gdc.test/compilable/test6999.d
*************** a87be655c4091663d3c237215652472b  gcc/te
*** 96845,96851 ****
  eaba2f9e0498b9ed178c566dafb0fdb6  gcc/testsuite/gdc.test/compilable/test8631.d
  08bb23688c8e4ed3cfff98aaf0746861  gcc/testsuite/gdc.test/compilable/test8675.d
  d05922c2aef84723761f8fb16e36080c  gcc/testsuite/gdc.test/compilable/test8696.d
! 9ec77bfd4d36feaf576dfdad323c5edd  gcc/testsuite/gdc.test/compilable/test8717.d
  c798616b54ddda7a7bf8ea476c6eb3b1  gcc/testsuite/gdc.test/compilable/test8802.d
  e532a2b8c5e6c299df90ad9c90a77d72  gcc/testsuite/gdc.test/compilable/test8898.d
  29ce48087b649b50daa3ab302b6764a1  gcc/testsuite/gdc.test/compilable/test8922a.d
--- 109093,109099 ----
  eaba2f9e0498b9ed178c566dafb0fdb6  gcc/testsuite/gdc.test/compilable/test8631.d
  08bb23688c8e4ed3cfff98aaf0746861  gcc/testsuite/gdc.test/compilable/test8675.d
  d05922c2aef84723761f8fb16e36080c  gcc/testsuite/gdc.test/compilable/test8696.d
! 5399625960cb218158ff315698899187  gcc/testsuite/gdc.test/compilable/test8717.d
  c798616b54ddda7a7bf8ea476c6eb3b1  gcc/testsuite/gdc.test/compilable/test8802.d
  e532a2b8c5e6c299df90ad9c90a77d72  gcc/testsuite/gdc.test/compilable/test8898.d
  29ce48087b649b50daa3ab302b6764a1  gcc/testsuite/gdc.test/compilable/test8922a.d
*************** cb22ffc739f8c5974f6ea959deba7a91  gcc/te
*** 96876,96882 ****
  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
--- 109124,109130 ----
  04a1d813881cd51192cda468efbf0030  gcc/testsuite/gdc.test/compilable/test9672.d
  97ad594fc0c94302d7abeff0abdca1fd  gcc/testsuite/gdc.test/compilable/test9692.d
  4e8c514f4c47e8cc668194d301fadc34  gcc/testsuite/gdc.test/compilable/test9692a.d
! 931f42f281cdb8e1492c24e6a0959828  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
*************** a8aff1c75bc0695071a90cb5aa15971e  gcc/te
*** 96891,96906 ****
  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
  f8d3fd67e69cbc3faa127c9ea1a7ee45  gcc/testsuite/gdc.test/compilable/testfwdref.d
! 301628c09e0db2d57d3f84616f1c098c  gcc/testsuite/gdc.test/compilable/testgotoskips.d
  acdc78c2e0880e10d12d0ba711e9c3a2  gcc/testsuite/gdc.test/compilable/testheader1.d
  b6a425aea90992550c5b5f5b1b61165d  gcc/testsuite/gdc.test/compilable/testheader12567a.d
  1e2747d468b376e4d3a04f38f0813ea8  gcc/testsuite/gdc.test/compilable/testheader12567b.d
--- 109139,109157 ----
  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
+ 0dad1be4cc3fc5708f281f149ee698a5  gcc/testsuite/gdc.test/compilable/test_isOverlapped.d
+ 715bed429eea38ce40a2bb92f81be5a2  gcc/testsuite/gdc.test/compilable/test_nosharedaccess_ctor_nested_new.d
+ 0cca9bfd34eb23f6c5f8cf320b20d6d2  gcc/testsuite/gdc.test/compilable/test_nosharedaccess_shared_struct_literal.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
! 7d2819928630a8c04d34107f84d2fe76  gcc/testsuite/gdc.test/compilable/testcstuff3.d
! 8a2f4baae6db9e52532dbbeadd58f914  gcc/testsuite/gdc.test/compilable/testdefines.d
  035c837c9828677c99e64cf928df76e6  gcc/testsuite/gdc.test/compilable/testdip1008.d
! 60b49879d79b161f2ed703dc3f8dc0b5  gcc/testsuite/gdc.test/compilable/testexpression.d
  165adaaca3d4cb680db8e8f7bef830af  gcc/testsuite/gdc.test/compilable/testfptr.d
  f8d3fd67e69cbc3faa127c9ea1a7ee45  gcc/testsuite/gdc.test/compilable/testfwdref.d
! 6958a8bc2ada5ab898827480fcd22cb0  gcc/testsuite/gdc.test/compilable/testgotoskips.d
  acdc78c2e0880e10d12d0ba711e9c3a2  gcc/testsuite/gdc.test/compilable/testheader1.d
  b6a425aea90992550c5b5f5b1b61165d  gcc/testsuite/gdc.test/compilable/testheader12567a.d
  1e2747d468b376e4d3a04f38f0813ea8  gcc/testsuite/gdc.test/compilable/testheader12567b.d
*************** c5edf683ca0bd30ac0d1d5b44a632f2d  gcc/te
*** 96917,96948 ****
  04f186437495743a1bb1ca150d9b1c9c  gcc/testsuite/gdc.test/compilable/testpostblit.d
  b4b221ef317b956132f4d2d2b4addb1d  gcc/testsuite/gdc.test/compilable/testprofile.d
  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
! 1f313881c51241b6e69f1c399d78ade7  gcc/testsuite/gdc.test/compilable/vgc3.d
  1f7b74cc98b46eee4066e8614f446c78  gcc/testsuite/gdc.test/compilable/vtemplates.d
  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
--- 109168,109204 ----
  04f186437495743a1bb1ca150d9b1c9c  gcc/testsuite/gdc.test/compilable/testpostblit.d
  b4b221ef317b956132f4d2d2b4addb1d  gcc/testsuite/gdc.test/compilable/testprofile.d
  96e4dccded26d5a2f5c94a77a811bf2a  gcc/testsuite/gdc.test/compilable/testpull1810.d
! da494213f007c40bec310d7bd2671704  gcc/testsuite/gdc.test/compilable/testsctreturn.d
  2b0d22bb4f0da744c1a7d324b1673eb7  gcc/testsuite/gdc.test/compilable/testtempl2.d
! 707a010fec83b262a57601eb75167f63  gcc/testsuite/gdc.test/compilable/traits.d
! 1b2750dc3092c04117822067f5a9ff94  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
+ 3d0cf08e5cdeddccd0c5b4aa6d06fe03  gcc/testsuite/gdc.test/compilable/ucn.d
  ac9e751e20c95911b8e0c1bc570c6124  gcc/testsuite/gdc.test/compilable/uda.d
+ b506100d6c4c03665c3acdb43bf8f992  gcc/testsuite/gdc.test/compilable/uda_lambda.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
! fe9e048bbb7b3d5de97c4d791647288e  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
! e68c4737e3b9cba7d72a6ae772a73fa7  gcc/testsuite/gdc.test/compilable/vgc3.d
  1f7b74cc98b46eee4066e8614f446c78  gcc/testsuite/gdc.test/compilable/vtemplates.d
  fe3fe69f3ba0159a4ec76976ea3bf053  gcc/testsuite/gdc.test/compilable/vtemplates_list.d
  6abb1560fbe9e7a13c92048cd6f7cc17  gcc/testsuite/gdc.test/compilable/warn12809.d
! 199c4287b2e3278dce02af3d3e7d64f8  gcc/testsuite/gdc.test/compilable/warn3882.d
  3619290d2eaa470d906ed2d6f8b6c204  gcc/testsuite/gdc.test/compilable/zerosize.d
+ 20857b1ec07413bb103229624bdc3bb5  gcc/testsuite/gdc.test/compilable/zerosize2.d
+ 5dcea90226c0713269c1f867b68c0d33  gcc/testsuite/gdc.test/fail_compilation/aa_assign.d
  0c74ef80707c77da3fffdc3a03c5ab16  gcc/testsuite/gdc.test/fail_compilation/aa_init.d
  18907c6d791bf506f12bb09b49c6a960  gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d
+ d86cc74edb93235b703e193357798d8b  gcc/testsuite/gdc.test/fail_compilation/aaerrors.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
*************** e0066ba6846a84c27c5813f1eae1f740  gcc/te
*** 96950,96955 ****
--- 109206,109212 ----
  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
+ ff61cfe25c4f389aa962ba1913c5fda8  gcc/testsuite/gdc.test/fail_compilation/array_literal_assign.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
*************** b19c540895e68030d7f79aea6ba21213  gcc/te
*** 96972,96990 ****
  9f5fddb69316e96061459681be8eacf1  gcc/testsuite/gdc.test/fail_compilation/b20011.d
  365ab715a73fe9c494170233e038c30b  gcc/testsuite/gdc.test/fail_compilation/b20780.d
  82cdbb62978f6d1599220b6ee9f9a92b  gcc/testsuite/gdc.test/fail_compilation/b20875.d
! a146d0446299030be7023391776dc61c  gcc/testsuite/gdc.test/fail_compilation/b23686.d
! 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
--- 109229,109249 ----
  9f5fddb69316e96061459681be8eacf1  gcc/testsuite/gdc.test/fail_compilation/b20011.d
  365ab715a73fe9c494170233e038c30b  gcc/testsuite/gdc.test/fail_compilation/b20780.d
  82cdbb62978f6d1599220b6ee9f9a92b  gcc/testsuite/gdc.test/fail_compilation/b20875.d
! a51027c6ad0be50e60e1ed6513601d5e  gcc/testsuite/gdc.test/fail_compilation/b23686.d
! 9c480ac9a5523a59d7126dd4319a3873  gcc/testsuite/gdc.test/fail_compilation/b3841.d
  4f14c24ff5b09173d0eaac42b8afff9e  gcc/testsuite/gdc.test/fail_compilation/b6227.d
! 0a7a028ccd2159d16b47d139125cdb3b  gcc/testsuite/gdc.test/fail_compilation/betterc.d
  6c9e7c3fa8a5746db70b4f4968c65b2f  gcc/testsuite/gdc.test/fail_compilation/binexperr.d
! b35ffcac8d8987c90e2cc8e14342b851  gcc/testsuite/gdc.test/fail_compilation/biterrors.d
! d6cd87ab50e11b71a82a339ea6ac8b0b  gcc/testsuite/gdc.test/fail_compilation/biterrors2.d
! 3c61ec6819a61d3264c4f7d3c7deefe6  gcc/testsuite/gdc.test/fail_compilation/biterrors3.d
! 47cd22ae55459e423969a9d7911292fd  gcc/testsuite/gdc.test/fail_compilation/biterrors4.d
! 8c26fcda9988b50b78b90f8020555527  gcc/testsuite/gdc.test/fail_compilation/biterrors5.d
! 2d6ce55704631700932ffbc867c7d0fd  gcc/testsuite/gdc.test/fail_compilation/biterrors6.d
! f61aa3ce9879df7f3a6e93e29d544161  gcc/testsuite/gdc.test/fail_compilation/biterrors7.d
! f736032a994fad9391201972bad10ff3  gcc/testsuite/gdc.test/fail_compilation/bitintro.d
  b78609eaae9e87219c94c7141e00c79d  gcc/testsuite/gdc.test/fail_compilation/bool_cast.d
! 5f0d8073eda5526b1b67dabead57de6f  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
*************** e10319cae3a1fe5d89a6e7220f4d3617  gcc/te
*** 96993,97008 ****
  68e9d113721c19252710aced1e3ddae2  gcc/testsuite/gdc.test/fail_compilation/bug5096.d
  dfcfc941a23106dfb4aa633010d25044  gcc/testsuite/gdc.test/fail_compilation/bug5b.d
  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
! 4e83f64920318dc56ac80f35d4b3915f  gcc/testsuite/gdc.test/fail_compilation/checkimports2.d
  8a6171185d2dd87f03987ee20a936db9  gcc/testsuite/gdc.test/fail_compilation/chkformat.d
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
--- 109252,109268 ----
  68e9d113721c19252710aced1e3ddae2  gcc/testsuite/gdc.test/fail_compilation/bug5096.d
  dfcfc941a23106dfb4aa633010d25044  gcc/testsuite/gdc.test/fail_compilation/bug5b.d
  6f8846856815fb29b1378e1e5f6d1130  gcc/testsuite/gdc.test/fail_compilation/bug8150a.d
! 7fac4a6bebc5ba031815bbe3390774a8  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
+ cafe95ffd9c108f7659758d3501d05e1  gcc/testsuite/gdc.test/fail_compilation/cast_system.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
! c42e646fa86ea361649c0ba1c40b48bc  gcc/testsuite/gdc.test/fail_compilation/checkimports2.d
  8a6171185d2dd87f03987ee20a936db9  gcc/testsuite/gdc.test/fail_compilation/chkformat.d
  9797e02f098d52d0de89e8253f84b6c3  gcc/testsuite/gdc.test/fail_compilation/circ10280.d
  6a293d0ed6519f3f6657000a879d53c2  gcc/testsuite/gdc.test/fail_compilation/class1.d
*************** c33ee0f46dedb5c9567ef568034758f7  gcc/te
*** 97017,97023 ****
  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
--- 109277,109283 ----
  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
! f7ecc0602f63d030e1434d543a799360  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
*************** db15b40f5c9b739572526640e6de1311  gcc/te
*** 97039,97057 ****
  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
  55324cf5a63fdb7f5f16fb3f858ec68a  gcc/testsuite/gdc.test/fail_compilation/diag10099.d
--- 109299,109317 ----
  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
! 3100b8cf87b1bfb0f7f0bc3ededb6d51  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
! 6e5add877d9aa1b130d3ef873ecb65a5  gcc/testsuite/gdc.test/fail_compilation/dep_d1_ops.d
! 845ead7a4c6d71014c9fd7c2bc68f668  gcc/testsuite/gdc.test/fail_compilation/depmsg.d
! bcd5f3aef5c111b16932cf1906fb7668  gcc/testsuite/gdc.test/fail_compilation/depmsg15814.d
! 9851cfb788496cb5c958f23cd21a75bb  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
! 3a40ea2b28797e413b0d98f2e87a6403  gcc/testsuite/gdc.test/fail_compilation/deprecatedImports.d
! 12006a0f23bae9fa0c9d6095a352e33b  gcc/testsuite/gdc.test/fail_compilation/deprecatedTemplates.d
! 2a6f760b1ee716cdc71cdac29cd1d737  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
  55324cf5a63fdb7f5f16fb3f858ec68a  gcc/testsuite/gdc.test/fail_compilation/diag10099.d
*************** c8b81e8d799716ffe482b951a7a5784c  gcc/te
*** 97062,97072 ****
  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
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! 385a50670d70680f814de8492f6c3440  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
  af1ef4e6b4bea31048da901e6e7ef3ec  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
--- 109322,109331 ----
  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
  dd45182458a38798c019f84bfd252373  gcc/testsuite/gdc.test/fail_compilation/diag10415.d
  1b5e8da546ae6c6b10920988d411edb2  gcc/testsuite/gdc.test/fail_compilation/diag10688.d
  3325c9050495bdf5823b3250f244d278  gcc/testsuite/gdc.test/fail_compilation/diag10768.d
! 3c0488568b6c7307839d8d9427c11bab  gcc/testsuite/gdc.test/fail_compilation/diag10783.d
  9435511e2251f51140243460475ba28b  gcc/testsuite/gdc.test/fail_compilation/diag10792.d
  29ca6c80d3d81d3547800e40caef32f1  gcc/testsuite/gdc.test/fail_compilation/diag10805.d
  af1ef4e6b4bea31048da901e6e7ef3ec  gcc/testsuite/gdc.test/fail_compilation/diag10862.d
*************** c55c37667c762888dabdff8ce9120e49  gcc/te
*** 97101,97107 ****
  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
--- 109360,109366 ----
  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
! f09345090c6be5aba5a2dd99d2a100be  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
*** 97112,97121 ****
  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
! 3808501546013484e5ead4ac99b5e9ee  gcc/testsuite/gdc.test/fail_compilation/diag14875.d
! 0848129f9b98ce7abe14b2dee27a777d  gcc/testsuite/gdc.test/fail_compilation/diag14876.d
  5c4ad04d22fbe55f5b07497287ced691  gcc/testsuite/gdc.test/fail_compilation/diag15001.d
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
  3cab5d2691dfff48d4950d494d943e02  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
--- 109371,109380 ----
  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
! 892d6d4286b141d0c5188b2e54e61838  gcc/testsuite/gdc.test/fail_compilation/diag14235.d
  a9ab100aae0780694501ba90b3941bf1  gcc/testsuite/gdc.test/fail_compilation/diag14818.d
! 509de3b4ced4b81d76b154066e81a12c  gcc/testsuite/gdc.test/fail_compilation/diag14875.d
! f998086dd538cc0ebad248353dcbdd7c  gcc/testsuite/gdc.test/fail_compilation/diag14876.d
  5c4ad04d22fbe55f5b07497287ced691  gcc/testsuite/gdc.test/fail_compilation/diag15001.d
  953302c17eef47eba4fc4c5c3ee18f2b  gcc/testsuite/gdc.test/fail_compilation/diag15186.d
  3cab5d2691dfff48d4950d494d943e02  gcc/testsuite/gdc.test/fail_compilation/diag15209.d
*************** f28f753c50d24ae45fd4aacf60d88ef4  gcc/te
*** 97126,97133 ****
  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
  2f18d41b0a3ab8f0ee83bcce80a39e84  gcc/testsuite/gdc.test/fail_compilation/diag18460.d
--- 109385,109392 ----
  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
! 84a1981d44eb498d4ad8574f555dee1f  gcc/testsuite/gdc.test/fail_compilation/diag16499.d
! a5c20f6d522d7a7b50a359fe0aef1751  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
  2f18d41b0a3ab8f0ee83bcce80a39e84  gcc/testsuite/gdc.test/fail_compilation/diag18460.d
*************** ef13cff5613132d38394dfcda321198a  gcc/te
*** 97138,97148 ****
  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
--- 109397,109410 ----
  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
! 28f95cec52787b47b97fe2e541d7b19f  gcc/testsuite/gdc.test/fail_compilation/diag20888.d
! caaa964391666ff7bc69e62806b8b9b4  gcc/testsuite/gdc.test/fail_compilation/diag21167.d
! 55c5653347a260180af8cdd312dac7be  gcc/testsuite/gdc.test/fail_compilation/diag21381.d
! 5e426c7437019019ad056f073bcc9e0c  gcc/testsuite/gdc.test/fail_compilation/diag21413.d
  b233b20e604b69dca9939988d5ecf22f  gcc/testsuite/gdc.test/fail_compilation/diag21883.d
! 26e6c715793ca83eabb742a5e695bb89  gcc/testsuite/gdc.test/fail_compilation/diag23295.d
  f66e20c29e1a7326b2bb6f3603ba6ec5  gcc/testsuite/gdc.test/fail_compilation/diag23355.d
! 62cfcbe2b4669975008759933d624932  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
*************** df337ef4561ea1d5044bc4478536d6e3  gcc/te
*** 97167,97173 ****
  3bcb67ff32795e5bf90bde0f3b4d6ac3  gcc/testsuite/gdc.test/fail_compilation/diag7050a.d
  07ff7f8f2a13bf0921970d7c3d1c2e01  gcc/testsuite/gdc.test/fail_compilation/diag7050b.d
  3a23c3ed3923fa49618d35afdd940b4b  gcc/testsuite/gdc.test/fail_compilation/diag7050c.d
! 7c885eec1871684720d3024f0856053f  gcc/testsuite/gdc.test/fail_compilation/diag7420.d
  252a223cd20470f5209e7ee4bcf254ac  gcc/testsuite/gdc.test/fail_compilation/diag7477.d
  b0bb0a7eed29aa54814135d9d2b2a25a  gcc/testsuite/gdc.test/fail_compilation/diag7747.d
  c054c437713978aaa4afae9d1d969336  gcc/testsuite/gdc.test/fail_compilation/diag7998.d
--- 109429,109435 ----
  3bcb67ff32795e5bf90bde0f3b4d6ac3  gcc/testsuite/gdc.test/fail_compilation/diag7050a.d
  07ff7f8f2a13bf0921970d7c3d1c2e01  gcc/testsuite/gdc.test/fail_compilation/diag7050b.d
  3a23c3ed3923fa49618d35afdd940b4b  gcc/testsuite/gdc.test/fail_compilation/diag7050c.d
! 980f357a6dbcd88adec60e6b334aee20  gcc/testsuite/gdc.test/fail_compilation/diag7420.d
  252a223cd20470f5209e7ee4bcf254ac  gcc/testsuite/gdc.test/fail_compilation/diag7477.d
  b0bb0a7eed29aa54814135d9d2b2a25a  gcc/testsuite/gdc.test/fail_compilation/diag7747.d
  c054c437713978aaa4afae9d1d969336  gcc/testsuite/gdc.test/fail_compilation/diag7998.d
*************** ff3b86a24c6b08b8abda906070e72c91  gcc/te
*** 97191,97210 ****
  883b3aa087c353de52e9d7ef2f1e11d3  gcc/testsuite/gdc.test/fail_compilation/diag8928.d
  af1cb4b4feff9afa7b9413ce3435a35b  gcc/testsuite/gdc.test/fail_compilation/diag9004.d
  1ca0cbaa5486bbb1fca649821e5fd454  gcc/testsuite/gdc.test/fail_compilation/diag9148.d
! bcf18ce030ed62b36660197352b4407b  gcc/testsuite/gdc.test/fail_compilation/diag9191.d
  e9a684b92a19f3209b93cfa703068084  gcc/testsuite/gdc.test/fail_compilation/diag9210a.d
  8460a9ca71067e6480f1127357582fac  gcc/testsuite/gdc.test/fail_compilation/diag9247.d
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
  e5728c06dedf56eb3929dbbabbe45550  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
! e79225b5e67e900ce187e333f87cf6dd  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  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
--- 109453,109472 ----
  883b3aa087c353de52e9d7ef2f1e11d3  gcc/testsuite/gdc.test/fail_compilation/diag8928.d
  af1cb4b4feff9afa7b9413ce3435a35b  gcc/testsuite/gdc.test/fail_compilation/diag9004.d
  1ca0cbaa5486bbb1fca649821e5fd454  gcc/testsuite/gdc.test/fail_compilation/diag9148.d
! 21b94799224cf942d35ba85fc2e3e19b  gcc/testsuite/gdc.test/fail_compilation/diag9191.d
  e9a684b92a19f3209b93cfa703068084  gcc/testsuite/gdc.test/fail_compilation/diag9210a.d
  8460a9ca71067e6480f1127357582fac  gcc/testsuite/gdc.test/fail_compilation/diag9247.d
  87826ac2f6bbb76e4f3765ad1364c54d  gcc/testsuite/gdc.test/fail_compilation/diag9250.d
  e5728c06dedf56eb3929dbbabbe45550  gcc/testsuite/gdc.test/fail_compilation/diag9312.d
  b28a3eecd7c36ded5aca587073cebd78  gcc/testsuite/gdc.test/fail_compilation/diag9357.d
! 0c493e6dab74d0a8cdfb6036ba8e4d6b  gcc/testsuite/gdc.test/fail_compilation/diag9358.d
  b7b293d85267d1066cc299d96cd9f665  gcc/testsuite/gdc.test/fail_compilation/diag9398.d
  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
! 7dfdbb3239622cdfc4b82137cdaa139d  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
*************** b2151ee28b841591b0cdb081270a98ef  gcc/te
*** 97215,97220 ****
--- 109477,109483 ----
  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
+ 7fc7c1f4ef3abd685ceae5cbf89e5938  gcc/testsuite/gdc.test/fail_compilation/diag_ptr_conversion.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
*************** e1334bfa3c8929594ff2e598c2ee7a92  gcc/te
*** 97226,97232 ****
  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
--- 109489,109495 ----
  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
! e90212cb0cb91f01a193b66df9bafe53  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
*************** cc934f60ce92291db90fae9aa247c1cc  gcc/te
*** 97237,97247 ****
--- 109500,109513 ----
  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
+ 21ffa5b30c5fb5220bce04bf5a9158a8  gcc/testsuite/gdc.test/fail_compilation/edition_switch.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
+ c0b0c4a1af0bf94185945c9f590198b9  gcc/testsuite/gdc.test/fail_compilation/enum_auto_increment.d
  7a7a1aaeb4fc6b303510c71e5a9a9dd1  gcc/testsuite/gdc.test/fail_compilation/enum_function.d
  0b0991fe537454dbe30a83326f834f7a  gcc/testsuite/gdc.test/fail_compilation/enum_init.d
+ aa714a13793b9c8c148f77194da08328  gcc/testsuite/gdc.test/fail_compilation/enum_member.d
  f76cf9db0833afa5687645d4c74a9897  gcc/testsuite/gdc.test/fail_compilation/extra-files/bar11453.d
  99acc5a7305edac00837d2641c2f1bb9  gcc/testsuite/gdc.test/fail_compilation/extra-files/foo11453.d
  84bebd871a01f556191f22e1fa9eace9  gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d
*************** d847ec9b26b5bec6dbd9d1e1d981d2e5  gcc/te
*** 97267,97273 ****
  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
--- 109533,109539 ----
  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
! 4f673eeae1c96c5b5b89f62b05d1da79  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
*************** c940487a344f7c48e40c0e52ecfc7865  gcc/te
*** 97303,97309 ****
  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
--- 109569,109575 ----
  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
! 730096645cd253f2bb959732df06f1fb  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
*************** ec1235e210fe787ad9f07dbed709c281  gcc/te
*** 97330,97336 ****
  b93dc74048b99ba0c82a6709839b2ef1  gcc/testsuite/gdc.test/fail_compilation/fail12764.d
  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
--- 109596,109601 ----
*************** a8d7867a148f15ddcee565f5f6e59fd6  gcc/te
*** 97355,97361 ****
  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
--- 109620,109626 ----
  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
! 5c1336f7e50089437ee24a29155e00f6  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
*************** e3e5a1338c4fb6fa1b922916d383f3ea  gcc/te
*** 97381,97387 ****
  08062d15f112cde31d64eca7adc16b43  gcc/testsuite/gdc.test/fail_compilation/fail15068.d
  89068db75229e01f201f1fd7999c5049  gcc/testsuite/gdc.test/fail_compilation/fail15089.d
  855ab11f0bd62621b99dfea1cb130c26  gcc/testsuite/gdc.test/fail_compilation/fail153.d
! 8ffd2e63fb125b33d3573d667ed80e1f  gcc/testsuite/gdc.test/fail_compilation/fail15361.d
  9d037c59d1e7a468338f3f3f381d91c4  gcc/testsuite/gdc.test/fail_compilation/fail154.d
  fa3efd5f1dac35e6525caf67700e7ec2  gcc/testsuite/gdc.test/fail_compilation/fail15414.d
  05f7a47faed85447c3c860dd46f9ce69  gcc/testsuite/gdc.test/fail_compilation/fail155.d
--- 109646,109652 ----
  08062d15f112cde31d64eca7adc16b43  gcc/testsuite/gdc.test/fail_compilation/fail15068.d
  89068db75229e01f201f1fd7999c5049  gcc/testsuite/gdc.test/fail_compilation/fail15089.d
  855ab11f0bd62621b99dfea1cb130c26  gcc/testsuite/gdc.test/fail_compilation/fail153.d
! 65d0c0b15d03aac34782e50e52161ce0  gcc/testsuite/gdc.test/fail_compilation/fail15361.d
  9d037c59d1e7a468338f3f3f381d91c4  gcc/testsuite/gdc.test/fail_compilation/fail154.d
  fa3efd5f1dac35e6525caf67700e7ec2  gcc/testsuite/gdc.test/fail_compilation/fail15414.d
  05f7a47faed85447c3c860dd46f9ce69  gcc/testsuite/gdc.test/fail_compilation/fail155.d
*************** b8e5e7c3a81b656da38456cb46d2e9b4  gcc/te
*** 97389,97395 ****
  8d6777061a04969663e28b186960951b  gcc/testsuite/gdc.test/fail_compilation/fail15550.d
  6bb28b4e2ee304c5c47507988ed9e0ee  gcc/testsuite/gdc.test/fail_compilation/fail156.d
  c239fcb718b674ffcd8dc38c08d3fbbe  gcc/testsuite/gdc.test/fail_compilation/fail15616a.d
! 98490d66059e3ce1ce70608f18f04aec  gcc/testsuite/gdc.test/fail_compilation/fail15616b.d
  7d7ffd0ff905b470836f6184abd71ad4  gcc/testsuite/gdc.test/fail_compilation/fail15616c.d
  eb25ca31055afa86912f9701e7994607  gcc/testsuite/gdc.test/fail_compilation/fail15616d.d
  3be4ce307a92d11b64cfa9d4f03f4445  gcc/testsuite/gdc.test/fail_compilation/fail15626.d
--- 109654,109660 ----
  8d6777061a04969663e28b186960951b  gcc/testsuite/gdc.test/fail_compilation/fail15550.d
  6bb28b4e2ee304c5c47507988ed9e0ee  gcc/testsuite/gdc.test/fail_compilation/fail156.d
  c239fcb718b674ffcd8dc38c08d3fbbe  gcc/testsuite/gdc.test/fail_compilation/fail15616a.d
! e331452e3069192dc14336b5d29efdf4  gcc/testsuite/gdc.test/fail_compilation/fail15616b.d
  7d7ffd0ff905b470836f6184abd71ad4  gcc/testsuite/gdc.test/fail_compilation/fail15616c.d
  eb25ca31055afa86912f9701e7994607  gcc/testsuite/gdc.test/fail_compilation/fail15616d.d
  3be4ce307a92d11b64cfa9d4f03f4445  gcc/testsuite/gdc.test/fail_compilation/fail15626.d
*************** c684ab29bcabeefed5b53fffe9d3f70e  gcc/te
*** 97399,97412 ****
  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
  2694b11905d32c2ad0acc36f3e854623  gcc/testsuite/gdc.test/fail_compilation/fail162.d
  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
--- 109664,109677 ----
  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
! 4ee7290dab1ea06941a458f6d3ab7b50  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
  2694b11905d32c2ad0acc36f3e854623  gcc/testsuite/gdc.test/fail_compilation/fail162.d
  99c094fe5a883a7d9a9adcbd82f194c1  gcc/testsuite/gdc.test/fail_compilation/fail16206a.d
  7e34a6b4dd39ae5c562fa3e43ae5b267  gcc/testsuite/gdc.test/fail_compilation/fail16206b.d
! c0180a04ebb11a1d25801509b68aba93  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
*************** f8d46bb7603384631c0a6f26126398b0  gcc/te
*** 97445,97453 ****
  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
--- 109710,109718 ----
  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
! 3ac2773cb7f4152c6f948f739f7510cd  gcc/testsuite/gdc.test/fail_compilation/fail18093.d
  56cadbe6e1c6957cb43ae7179c59a572  gcc/testsuite/gdc.test/fail_compilation/fail18143.d
! 1b77e14a5215ba3c2c8ee9353abad6a9  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
*************** c6069fa300de28f36ced064a9fb2c11c  gcc/te
*** 97472,97482 ****
  2fdc35b53dda4e331869a58020543b2d  gcc/testsuite/gdc.test/fail_compilation/fail19076.d
  8265e9a9f4a973f41fa5ceaf867da9f3  gcc/testsuite/gdc.test/fail_compilation/fail19098.d
  38e2cba6bcb50a692990ffe7b96fb049  gcc/testsuite/gdc.test/fail_compilation/fail19099.d
! 4b7c2eb3deabee996dfef13d144e38b1  gcc/testsuite/gdc.test/fail_compilation/fail19103.d
  90c7cdd15ee714303e1566bc4af7044c  gcc/testsuite/gdc.test/fail_compilation/fail19181.d
  2658559b7e065a4d9a88423a76b0a1f8  gcc/testsuite/gdc.test/fail_compilation/fail19182.d
  8c7b72f8d54d7f8f256985e65bb7a17b  gcc/testsuite/gdc.test/fail_compilation/fail192.d
! cb45a8d0aca2fe6efbfa04a0cb5363f7  gcc/testsuite/gdc.test/fail_compilation/fail19202.d
  a96c3ad1d04fa66b706308dc41b66044  gcc/testsuite/gdc.test/fail_compilation/fail19209.d
  1a63c8e4c4907e65fbcabdddb90c28a6  gcc/testsuite/gdc.test/fail_compilation/fail193.d
  49b0951b6bd9018b435dc2653ada2216  gcc/testsuite/gdc.test/fail_compilation/fail19319a.d
--- 109737,109747 ----
  2fdc35b53dda4e331869a58020543b2d  gcc/testsuite/gdc.test/fail_compilation/fail19076.d
  8265e9a9f4a973f41fa5ceaf867da9f3  gcc/testsuite/gdc.test/fail_compilation/fail19098.d
  38e2cba6bcb50a692990ffe7b96fb049  gcc/testsuite/gdc.test/fail_compilation/fail19099.d
! e21c5224842922c537ecd7c8c05cb897  gcc/testsuite/gdc.test/fail_compilation/fail19103.d
  90c7cdd15ee714303e1566bc4af7044c  gcc/testsuite/gdc.test/fail_compilation/fail19181.d
  2658559b7e065a4d9a88423a76b0a1f8  gcc/testsuite/gdc.test/fail_compilation/fail19182.d
  8c7b72f8d54d7f8f256985e65bb7a17b  gcc/testsuite/gdc.test/fail_compilation/fail192.d
! a91b9414402e8038833fadcba805eab1  gcc/testsuite/gdc.test/fail_compilation/fail19202.d
  a96c3ad1d04fa66b706308dc41b66044  gcc/testsuite/gdc.test/fail_compilation/fail19209.d
  1a63c8e4c4907e65fbcabdddb90c28a6  gcc/testsuite/gdc.test/fail_compilation/fail193.d
  49b0951b6bd9018b435dc2653ada2216  gcc/testsuite/gdc.test/fail_compilation/fail19319a.d
*************** a96c3ad1d04fa66b706308dc41b66044  gcc/te
*** 97487,97493 ****
  255cbdd802a2bc528e235738c17ed595  gcc/testsuite/gdc.test/fail_compilation/fail19447.d
  7594dbc07383fa13599d213acea6e03a  gcc/testsuite/gdc.test/fail_compilation/fail195.d
  676dfacf37090247608e1eabe58d4327  gcc/testsuite/gdc.test/fail_compilation/fail19520.d
! 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
--- 109752,109758 ----
  255cbdd802a2bc528e235738c17ed595  gcc/testsuite/gdc.test/fail_compilation/fail19447.d
  7594dbc07383fa13599d213acea6e03a  gcc/testsuite/gdc.test/fail_compilation/fail195.d
  676dfacf37090247608e1eabe58d4327  gcc/testsuite/gdc.test/fail_compilation/fail19520.d
! 5aee39f5c518333f81ee7ec7555755d7  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
*************** a39e0b393e266193ce76af1931c80a84  gcc/te
*** 97500,97509 ****
  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
! 780f3b6248e47c31d92b599b12301358  gcc/testsuite/gdc.test/fail_compilation/fail19898a.d
! 261252defe5c1323d54bb76d7faa286d  gcc/testsuite/gdc.test/fail_compilation/fail19898b.d
! 6dd5bad406278481b7d4badda46d5b83  gcc/testsuite/gdc.test/fail_compilation/fail199.d
! 20732ebad089aa6fc8fd4b82c40d461a  gcc/testsuite/gdc.test/fail_compilation/fail19911a.d
  170403a4dd923340bba9ba4156ebf981  gcc/testsuite/gdc.test/fail_compilation/fail19911b.d
  101b104019651b69a88cfb47215cca16  gcc/testsuite/gdc.test/fail_compilation/fail19911c.d
  a69de6e1a6d36384bc5bf67a94a6c25f  gcc/testsuite/gdc.test/fail_compilation/fail19912a.d
--- 109765,109774 ----
  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
! 9309072bb10b6b9fb041eb2210a6f454  gcc/testsuite/gdc.test/fail_compilation/fail19898a.d
! 1590d1e0569cb38aa08948fca421aa31  gcc/testsuite/gdc.test/fail_compilation/fail19898b.d
! 1d93fdcc20d52d26c7aa40e529d0427c  gcc/testsuite/gdc.test/fail_compilation/fail199.d
! e00d8657cfeaa2c5cd98018533b66ce8  gcc/testsuite/gdc.test/fail_compilation/fail19911a.d
  170403a4dd923340bba9ba4156ebf981  gcc/testsuite/gdc.test/fail_compilation/fail19911b.d
  101b104019651b69a88cfb47215cca16  gcc/testsuite/gdc.test/fail_compilation/fail19911c.d
  a69de6e1a6d36384bc5bf67a94a6c25f  gcc/testsuite/gdc.test/fail_compilation/fail19912a.d
*************** becdd446e8d1be604695109a29f49407  gcc/te
*** 97524,97530 ****
  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
--- 109789,109795 ----
  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
! 7bd76ef48319b3b5202e9e02c9f72910  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/te
*** 97537,97542 ****
--- 109802,109808 ----
  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
+ f3b8d54a0e7783bfac8fceac473c34de  gcc/testsuite/gdc.test/fail_compilation/fail20365.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
*************** a649ac93b356e5395cdc675d27cf880b  gcc/te
*** 97558,97564 ****
  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
! 2df401d99a377d325d0b1760271c0430  gcc/testsuite/gdc.test/fail_compilation/fail20779.d
  e25875742d38b2256849c5f96a657b4e  gcc/testsuite/gdc.test/fail_compilation/fail208.d
  1914c2dc5143c9ef94e5b825286dc3f7  gcc/testsuite/gdc.test/fail_compilation/fail20800.d
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
--- 109824,109830 ----
  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
! 847c06801f6305142572d750365700ad  gcc/testsuite/gdc.test/fail_compilation/fail20779.d
  e25875742d38b2256849c5f96a657b4e  gcc/testsuite/gdc.test/fail_compilation/fail208.d
  1914c2dc5143c9ef94e5b825286dc3f7  gcc/testsuite/gdc.test/fail_compilation/fail20800.d
  1d857f10e8666b47c8a9ce6c4fd44aaa  gcc/testsuite/gdc.test/fail_compilation/fail209.d
*************** b0b9a19ac01ca365168a5af1f8cd3c34  gcc/te
*** 97574,97589 ****
  a09e8da91153ed93d9aaeab41ad454e5  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
  11c327ae74ea5071c0ad376800875d7b  gcc/testsuite/gdc.test/fail_compilation/fail21314.d
  13ad9b137c1b6f7e351e545d9935bdd4  gcc/testsuite/gdc.test/fail_compilation/fail215.d
  71a09b4bf6b48720fcf973edfe6c3e01  gcc/testsuite/gdc.test/fail_compilation/fail21508.d
  fa51ba78aed7e51b5bea920cbb76cf2c  gcc/testsuite/gdc.test/fail_compilation/fail21508_2.d
! b609044adbbd843d6cf44718cec2033d  gcc/testsuite/gdc.test/fail_compilation/fail21547.d
  a83d55be79bbfec18976ece3917ef4c3  gcc/testsuite/gdc.test/fail_compilation/fail216.d
  44dfb54c7dfa91e3e045066a94d75e10  gcc/testsuite/gdc.test/fail_compilation/fail217.d
  850fcf15e46bcdbe4eb0284e6f555af5  gcc/testsuite/gdc.test/fail_compilation/fail218.d
! 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
--- 109840,109858 ----
  a09e8da91153ed93d9aaeab41ad454e5  gcc/testsuite/gdc.test/fail_compilation/fail21275.d
  2d9df3ff3291444912ae26c1928ab756  gcc/testsuite/gdc.test/fail_compilation/fail213.d
  11c327ae74ea5071c0ad376800875d7b  gcc/testsuite/gdc.test/fail_compilation/fail21314.d
+ c2c66b29db884a5de0335a912e088d0a  gcc/testsuite/gdc.test/fail_compilation/fail21414.d
  13ad9b137c1b6f7e351e545d9935bdd4  gcc/testsuite/gdc.test/fail_compilation/fail215.d
  71a09b4bf6b48720fcf973edfe6c3e01  gcc/testsuite/gdc.test/fail_compilation/fail21508.d
  fa51ba78aed7e51b5bea920cbb76cf2c  gcc/testsuite/gdc.test/fail_compilation/fail21508_2.d
! 80f95c47d3889857b2f348f667752131  gcc/testsuite/gdc.test/fail_compilation/fail21547.d
  a83d55be79bbfec18976ece3917ef4c3  gcc/testsuite/gdc.test/fail_compilation/fail216.d
+ 9016d3c58d5a828a3d8ee0e094aae17c  gcc/testsuite/gdc.test/fail_compilation/fail21660.d
+ e1932faf29a519adcbb8d7148afdda6c  gcc/testsuite/gdc.test/fail_compilation/fail21693.d
  44dfb54c7dfa91e3e045066a94d75e10  gcc/testsuite/gdc.test/fail_compilation/fail217.d
  850fcf15e46bcdbe4eb0284e6f555af5  gcc/testsuite/gdc.test/fail_compilation/fail218.d
! 93a51bd121c41516aeb1023b17fce342  gcc/testsuite/gdc.test/fail_compilation/fail21830.d
! f328ad3b4ba1ba4859f755b0bc582c8e  gcc/testsuite/gdc.test/fail_compilation/fail21831.d
! c727291f114942c620a219d50c18619c  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
*************** b70b339a1dbd5b5807d24c2f37fb9ac3  gcc/te
*** 97609,97625 ****
  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
  31fb74dd9708f5d3461a97b5c69b8b7b  gcc/testsuite/gdc.test/fail_compilation/fail22634.d
  dfc179a746f3347228c84002d6454d7f  gcc/testsuite/gdc.test/fail_compilation/fail22729.d
! 524d3aa06d43f7dc07b54abd5885156c  gcc/testsuite/gdc.test/fail_compilation/fail22749.d
  1ea5d3c5ce687f6d852e58c95382d8e4  gcc/testsuite/gdc.test/fail_compilation/fail22780.d
  c24efc95b4a07d93082131c006e2dd80  gcc/testsuite/gdc.test/fail_compilation/fail228.d
  a3b880eeeee3718d39ad9eea41a126bd  gcc/testsuite/gdc.test/fail_compilation/fail22825a.d
--- 109878,109895 ----
  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
! 9b89b06dcffe6e980ba1d09f4a818e5f  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
! b95dacd100d2b9ac249178878244ca76  gcc/testsuite/gdc.test/fail_compilation/fail22351.d
  799711bea752be4d7389b8f4f64279d7  gcc/testsuite/gdc.test/fail_compilation/fail22366.d
+ 4f6c851fc423674d2ea1b9bc04808d8e  gcc/testsuite/gdc.test/fail_compilation/fail22384.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
  31fb74dd9708f5d3461a97b5c69b8b7b  gcc/testsuite/gdc.test/fail_compilation/fail22634.d
  dfc179a746f3347228c84002d6454d7f  gcc/testsuite/gdc.test/fail_compilation/fail22729.d
! b3cf59df3a322cc9b9fc6bed0875d069  gcc/testsuite/gdc.test/fail_compilation/fail22749.d
  1ea5d3c5ce687f6d852e58c95382d8e4  gcc/testsuite/gdc.test/fail_compilation/fail22780.d
  c24efc95b4a07d93082131c006e2dd80  gcc/testsuite/gdc.test/fail_compilation/fail228.d
  a3b880eeeee3718d39ad9eea41a126bd  gcc/testsuite/gdc.test/fail_compilation/fail22825a.d
*************** a3b880eeeee3718d39ad9eea41a126bd  gcc/te
*** 97628,97633 ****
--- 109898,109904 ----
  1474f9e478cfabdf9cfb8fbb2cd67ac7  gcc/testsuite/gdc.test/fail_compilation/fail22857.d
  d66caeff2039e96ff6d7fabe194052e5  gcc/testsuite/gdc.test/fail_compilation/fail22881.d
  3ae4abd2e5f005a36efb80d18fa58cc6  gcc/testsuite/gdc.test/fail_compilation/fail229.d
+ c72f9b1f909a882301ee44c6e1e30a54  gcc/testsuite/gdc.test/fail_compilation/fail22925.d
  b870fb01a2c3232f3cff62cc0b90ac88  gcc/testsuite/gdc.test/fail_compilation/fail23.d
  048e20a40216cbded5b201acc227180b  gcc/testsuite/gdc.test/fail_compilation/fail231.d
  3ee0844b26847d9399784b8860d279d8  gcc/testsuite/gdc.test/fail_compilation/fail23108a.d
*************** ed8c100dddbce2063a566b89b2a95a90  gcc/te
*** 97638,97644 ****
  e670a6f21877da59644ba71444695a18  gcc/testsuite/gdc.test/fail_compilation/fail23181.d
  2549171f6c1309bbbd88a2c8d62fdd92  gcc/testsuite/gdc.test/fail_compilation/fail232.d
  75e8bd002cad820145fda155dc230d5e  gcc/testsuite/gdc.test/fail_compilation/fail23406.d
! 25ca171756a24d6a546fee80980ae236  gcc/testsuite/gdc.test/fail_compilation/fail23439.d
  7ee3ebb5d13dbddf32d93e977302a4b1  gcc/testsuite/gdc.test/fail_compilation/fail235.d
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
--- 109909,109915 ----
  e670a6f21877da59644ba71444695a18  gcc/testsuite/gdc.test/fail_compilation/fail23181.d
  2549171f6c1309bbbd88a2c8d62fdd92  gcc/testsuite/gdc.test/fail_compilation/fail232.d
  75e8bd002cad820145fda155dc230d5e  gcc/testsuite/gdc.test/fail_compilation/fail23406.d
! 649bdb4d303d85ff1da77d592bdcd58c  gcc/testsuite/gdc.test/fail_compilation/fail23439.d
  7ee3ebb5d13dbddf32d93e977302a4b1  gcc/testsuite/gdc.test/fail_compilation/fail235.d
  bce999b9720203f9099ef1b72855dfcc  gcc/testsuite/gdc.test/fail_compilation/fail23574.d
  32e3bda98a0a6039d7cd102fc87c52fa  gcc/testsuite/gdc.test/fail_compilation/fail23591.d
*************** bddcd4dcfd80181fc5ee0c70064b2f44  gcc/te
*** 97650,97657 ****
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
  2338811f64a5d62e8626f9140f17f512  gcc/testsuite/gdc.test/fail_compilation/fail23773.d
  4a8fd0d0aa5a78d5e2cc385d4dde86d1  gcc/testsuite/gdc.test/fail_compilation/fail23816.d
! 63c4cb1482071a3225629a97d589ced9  gcc/testsuite/gdc.test/fail_compilation/fail23822.d
! 2bbbc973211c19852af426b9791805d3  gcc/testsuite/gdc.test/fail_compilation/fail23826.d
  91dc5d6862a8e8b61474ae34d4f35df4  gcc/testsuite/gdc.test/fail_compilation/fail23861.d
  ae65504ee5368439f87cba230c2fbb6c  gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d
  faf12ba22575387527878d9b8beb717a  gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d
--- 109921,109928 ----
  2a244612779b0550d045b21c333c9491  gcc/testsuite/gdc.test/fail_compilation/fail23760.d
  2338811f64a5d62e8626f9140f17f512  gcc/testsuite/gdc.test/fail_compilation/fail23773.d
  4a8fd0d0aa5a78d5e2cc385d4dde86d1  gcc/testsuite/gdc.test/fail_compilation/fail23816.d
! 881d1681b929b4f86feb89167807754f  gcc/testsuite/gdc.test/fail_compilation/fail23822.d
! dfccfe01beb69238fce86b0bd188a4eb  gcc/testsuite/gdc.test/fail_compilation/fail23826.d
  91dc5d6862a8e8b61474ae34d4f35df4  gcc/testsuite/gdc.test/fail_compilation/fail23861.d
  ae65504ee5368439f87cba230c2fbb6c  gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d
  faf12ba22575387527878d9b8beb717a  gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d
*************** faf12ba22575387527878d9b8beb717a  gcc/te
*** 97659,97676 ****
  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
  32fcbff00baf822bf2ce671f0392cd07  gcc/testsuite/gdc.test/fail_compilation/fail248.d
  1432abd10178e496542c8711a387ca7e  gcc/testsuite/gdc.test/fail_compilation/fail249.d
--- 109930,109947 ----
  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
! 58336ed8c5a2497d87e569fb020e6c48  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
! decf9899709d0ca5671fd1de16e5c5b7  gcc/testsuite/gdc.test/fail_compilation/fail243.d
  d70d131a4da1f17234e2be04471f3b3f  gcc/testsuite/gdc.test/fail_compilation/fail24301.d
! 87d4c986b9e4f60a81cb4ca2d8bade21  gcc/testsuite/gdc.test/fail_compilation/fail244.d
  007e12f5e848b3a7fa39bf61fd6bb525  gcc/testsuite/gdc.test/fail_compilation/fail24485.d
! d3f0de5d47dbf413ead23abba277f9ad  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
! 11df68463deaba2e88c7df71d9b7a123  gcc/testsuite/gdc.test/fail_compilation/fail246.d
  958904cb5cb1e8986e403a18801ebdc8  gcc/testsuite/gdc.test/fail_compilation/fail247.d
  32fcbff00baf822bf2ce671f0392cd07  gcc/testsuite/gdc.test/fail_compilation/fail248.d
  1432abd10178e496542c8711a387ca7e  gcc/testsuite/gdc.test/fail_compilation/fail249.d
*************** f1243a2544274acdb7b8aa344b404728  gcc/te
*** 97685,97694 ****
  f53e57a9e89cd741a5c46961166a1f5a  gcc/testsuite/gdc.test/fail_compilation/fail258.d
  d138575c329ecfa57cf9cdef90d6a04a  gcc/testsuite/gdc.test/fail_compilation/fail259.d
  8bdf284f0442d1e350010cdeee56fe59  gcc/testsuite/gdc.test/fail_compilation/fail261.d
! ab516084e0ebe83389b0d25ed5ba9c2c  gcc/testsuite/gdc.test/fail_compilation/fail262.d
  c51491aa0af86210cebf6d968db16751  gcc/testsuite/gdc.test/fail_compilation/fail263.d
  e3aaf70f1ee3ab9d4bdf647065681c97  gcc/testsuite/gdc.test/fail_compilation/fail264.d
! 39db887c3d88309df3aa3250bad00373  gcc/testsuite/gdc.test/fail_compilation/fail265.d
  66755deef86b85fc3267384c4ddaf5f5  gcc/testsuite/gdc.test/fail_compilation/fail2656.d
  6a0bb865f1c8b263df951b6b5e37a617  gcc/testsuite/gdc.test/fail_compilation/fail267.d
  b4f9f353ed280cf239cfd6c89845489d  gcc/testsuite/gdc.test/fail_compilation/fail27.d
--- 109956,109965 ----
  f53e57a9e89cd741a5c46961166a1f5a  gcc/testsuite/gdc.test/fail_compilation/fail258.d
  d138575c329ecfa57cf9cdef90d6a04a  gcc/testsuite/gdc.test/fail_compilation/fail259.d
  8bdf284f0442d1e350010cdeee56fe59  gcc/testsuite/gdc.test/fail_compilation/fail261.d
! d8adcdb0871b13abfcfe4345c8b63c09  gcc/testsuite/gdc.test/fail_compilation/fail262.d
  c51491aa0af86210cebf6d968db16751  gcc/testsuite/gdc.test/fail_compilation/fail263.d
  e3aaf70f1ee3ab9d4bdf647065681c97  gcc/testsuite/gdc.test/fail_compilation/fail264.d
! 8b03dd27970bb07b7e3da04e07a44522  gcc/testsuite/gdc.test/fail_compilation/fail265.d
  66755deef86b85fc3267384c4ddaf5f5  gcc/testsuite/gdc.test/fail_compilation/fail2656.d
  6a0bb865f1c8b263df951b6b5e37a617  gcc/testsuite/gdc.test/fail_compilation/fail267.d
  b4f9f353ed280cf239cfd6c89845489d  gcc/testsuite/gdc.test/fail_compilation/fail27.d
*************** b206f94fcd91613bf06fad61e79f3c3d  gcc/te
*** 97721,97727 ****
  ccf07a8d9da2e18e2df9789595f228b8  gcc/testsuite/gdc.test/fail_compilation/fail302.d
  83cbeb4a4f4e877683998a5dc8350383  gcc/testsuite/gdc.test/fail_compilation/fail303.d
  55c689bdd0e95596a127ae06b8d223da  gcc/testsuite/gdc.test/fail_compilation/fail304.d
- a4476518c57fe9ca01a6fe8b42385325  gcc/testsuite/gdc.test/fail_compilation/fail305.d
  ef026933cf422af0367257bfe21bd10a  gcc/testsuite/gdc.test/fail_compilation/fail306.d
  c6bb6e98c1536367c7fff657247aeddc  gcc/testsuite/gdc.test/fail_compilation/fail307.d
  fcac9ad4babc1ce01a89dae4b91d6e7d  gcc/testsuite/gdc.test/fail_compilation/fail308.d
--- 109992,109997 ----
*************** db25d22f16a253b8379657cc5e4d9fc8  gcc/te
*** 97749,97755 ****
  78b83d0a6dd2d5ee5974ca3a4f7224d4  gcc/testsuite/gdc.test/fail_compilation/fail333.d
  4404e9f66c6ddceb6eebdb6fedd1978a  gcc/testsuite/gdc.test/fail_compilation/fail334.d
  efff0f2ea1051cc3f03bca692e4cdd58  gcc/testsuite/gdc.test/fail_compilation/fail335.d
! 4c3dd0c6267aacd55f117739256d6166  gcc/testsuite/gdc.test/fail_compilation/fail336.d
  ca1565a5e3c6d530f6ac211c98dbb3c9  gcc/testsuite/gdc.test/fail_compilation/fail337.d
  1cc9295ba07308631d8c59cdc8721d82  gcc/testsuite/gdc.test/fail_compilation/fail34.d
  6582ef9395b3a7c9090f7a2f29d70e43  gcc/testsuite/gdc.test/fail_compilation/fail340.d
--- 110019,110025 ----
  78b83d0a6dd2d5ee5974ca3a4f7224d4  gcc/testsuite/gdc.test/fail_compilation/fail333.d
  4404e9f66c6ddceb6eebdb6fedd1978a  gcc/testsuite/gdc.test/fail_compilation/fail334.d
  efff0f2ea1051cc3f03bca692e4cdd58  gcc/testsuite/gdc.test/fail_compilation/fail335.d
! 6032215d28b304a4678d29f7b47a8aed  gcc/testsuite/gdc.test/fail_compilation/fail336.d
  ca1565a5e3c6d530f6ac211c98dbb3c9  gcc/testsuite/gdc.test/fail_compilation/fail337.d
  1cc9295ba07308631d8c59cdc8721d82  gcc/testsuite/gdc.test/fail_compilation/fail34.d
  6582ef9395b3a7c9090f7a2f29d70e43  gcc/testsuite/gdc.test/fail_compilation/fail340.d
*************** ca1565a5e3c6d530f6ac211c98dbb3c9  gcc/te
*** 97757,97763 ****
  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
--- 110027,110033 ----
  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
! 56f43d062f72b58f6d4194dcf9543316  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
*************** b199f60d67e76de7b69aae541852e953  gcc/te
*** 97785,97793 ****
  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
- 2dd6f8c6cb1ecf6625d1650733ce0145  gcc/testsuite/gdc.test/fail_compilation/fail41.d
  9a5300a416e69f83924621c9653cffd1  gcc/testsuite/gdc.test/fail_compilation/fail42.d
! 6df76bbb49a6a24e29515a2adaf498cd  gcc/testsuite/gdc.test/fail_compilation/fail4206.d
  1c898e536a38e8e36a14c0f6dbef6fb5  gcc/testsuite/gdc.test/fail_compilation/fail4269a.d
  9ba1cccc0e4d3d97b624134d3c515590  gcc/testsuite/gdc.test/fail_compilation/fail4269b.d
  c4ab43e7f9f9156f14bc34890fdae39c  gcc/testsuite/gdc.test/fail_compilation/fail4269c.d
--- 110055,110062 ----
  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
  9a5300a416e69f83924621c9653cffd1  gcc/testsuite/gdc.test/fail_compilation/fail42.d
! 23426dc78422f1107e522420608e4879  gcc/testsuite/gdc.test/fail_compilation/fail4206.d
  1c898e536a38e8e36a14c0f6dbef6fb5  gcc/testsuite/gdc.test/fail_compilation/fail4269a.d
  9ba1cccc0e4d3d97b624134d3c515590  gcc/testsuite/gdc.test/fail_compilation/fail4269b.d
  c4ab43e7f9f9156f14bc34890fdae39c  gcc/testsuite/gdc.test/fail_compilation/fail4269c.d
*************** b83368b28a1b737542921912061d84e7  gcc/te
*** 97796,97838 ****
  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
! a6a77add0076b5e3ad154a22b0cfa6a4  gcc/testsuite/gdc.test/fail_compilation/fail4375a.d
! 5320abdda0b338c2df13d57990c94119  gcc/testsuite/gdc.test/fail_compilation/fail4375b.d
! 53c848c7a6607038edf0fb69e5964773  gcc/testsuite/gdc.test/fail_compilation/fail4375c.d
! b6dc946ef55f26e5f870c0bbd82c0e3e  gcc/testsuite/gdc.test/fail_compilation/fail4375d.d
! 85326c548f7ab1fc9317e4222c58dde6  gcc/testsuite/gdc.test/fail_compilation/fail4375e.d
! e7dc4809f7c94af0e5c7712ca2348ef1  gcc/testsuite/gdc.test/fail_compilation/fail4375f.d
! df830f99014a154b104125288e65efe1  gcc/testsuite/gdc.test/fail_compilation/fail4375g.d
! ecf5abd857257e5bdd8cb354c7476bc5  gcc/testsuite/gdc.test/fail_compilation/fail4375h.d
! 21ffd8a1dd8654236ebbc77a75c6f3ce  gcc/testsuite/gdc.test/fail_compilation/fail4375i.d
! bdabdda3133911bf92a2a98a2a63267f  gcc/testsuite/gdc.test/fail_compilation/fail4375j.d
! defcf63f8997b8f976d6fdd2e58e68e9  gcc/testsuite/gdc.test/fail_compilation/fail4375k.d
! 9ddfb01d759afbc910f2e88b0bd1478a  gcc/testsuite/gdc.test/fail_compilation/fail4375l.d
! 28cd530b45b084ce3af90d9840c7d9c2  gcc/testsuite/gdc.test/fail_compilation/fail4375m.d
! de747fd099a46f18978e2343e72c77ac  gcc/testsuite/gdc.test/fail_compilation/fail4375o.d
! b2f712af514c9d243b3b3395aca19ac6  gcc/testsuite/gdc.test/fail_compilation/fail4375p.d
! 3fb118810cd7e91a6285517619dc8a72  gcc/testsuite/gdc.test/fail_compilation/fail4375q.d
! e7c20eb9a3f83f9b20154ea2c720d7e1  gcc/testsuite/gdc.test/fail_compilation/fail4375r.d
! 59a945b86d2b000d7ee7eabeb48a415d  gcc/testsuite/gdc.test/fail_compilation/fail4375s.d
! 82a7d1b9f2c635ca9f2e22846c670925  gcc/testsuite/gdc.test/fail_compilation/fail4375t.d
! ba33104491c78e8f9646e3b2adfb0b1c  gcc/testsuite/gdc.test/fail_compilation/fail4375u.d
! e5f5b8c585b71fcb450e00705b24c482  gcc/testsuite/gdc.test/fail_compilation/fail4375v.d
! dfb8698771b62c207148e09fcae46f45  gcc/testsuite/gdc.test/fail_compilation/fail4375w.d
! 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
  029768f51289e2430d70ddb60913a531  gcc/testsuite/gdc.test/fail_compilation/fail4923.d
  56535cbb92d2cfd2a7cefcad0cb06450  gcc/testsuite/gdc.test/fail_compilation/fail4958.d
! 7cadc743ec6ea6990f3fc43299232b1e  gcc/testsuite/gdc.test/fail_compilation/fail50.d
  533a1731cf53e4f1f14412b77b064ebe  gcc/testsuite/gdc.test/fail_compilation/fail51.d
  e886866695de1f510d706d9a43753164  gcc/testsuite/gdc.test/fail_compilation/fail5153.d
  14fd3593221a20b67cff3c4048c0a10a  gcc/testsuite/gdc.test/fail_compilation/fail52.d
--- 110065,110107 ----
  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
! 359774789d38ed1df677ff8721355b47  gcc/testsuite/gdc.test/fail_compilation/fail4375a.d
! 71da7f20768d837863562362eaa8a706  gcc/testsuite/gdc.test/fail_compilation/fail4375b.d
! 21ad01b386952943ad65e5f6e263a56b  gcc/testsuite/gdc.test/fail_compilation/fail4375c.d
! 811babe2da12911f737ef815ac92b84e  gcc/testsuite/gdc.test/fail_compilation/fail4375d.d
! e3f40a7d2a0cf280bf7ebfae447530f6  gcc/testsuite/gdc.test/fail_compilation/fail4375e.d
! 587a1ea9343057110ac3f5cc889728f7  gcc/testsuite/gdc.test/fail_compilation/fail4375f.d
! f80e25e1be08d66ea7fe5f5de3eee442  gcc/testsuite/gdc.test/fail_compilation/fail4375g.d
! 6f9addfbe185a4b39ca583245de13c7f  gcc/testsuite/gdc.test/fail_compilation/fail4375h.d
! d59f07dfa69ef4bcf7fec83371d8f9ad  gcc/testsuite/gdc.test/fail_compilation/fail4375i.d
! d8119bfa266a33676c5ee13370066eac  gcc/testsuite/gdc.test/fail_compilation/fail4375j.d
! 30caa630c31b7c91d8f7155ceb2cf96c  gcc/testsuite/gdc.test/fail_compilation/fail4375k.d
! d4413c09a37176e7ffce197c84c206b6  gcc/testsuite/gdc.test/fail_compilation/fail4375l.d
! d0b51b912d80d1d5c112fd86dee5a3c8  gcc/testsuite/gdc.test/fail_compilation/fail4375m.d
! 18fe44a65861dab2f44449a7ad337eeb  gcc/testsuite/gdc.test/fail_compilation/fail4375o.d
! 8e6163ac41e62d42c828617f0d8ccbfe  gcc/testsuite/gdc.test/fail_compilation/fail4375p.d
! 045ad89558b1defe5e1cdea04d89c202  gcc/testsuite/gdc.test/fail_compilation/fail4375q.d
! 7c95a6cc4cd1e239752a2061a777962b  gcc/testsuite/gdc.test/fail_compilation/fail4375r.d
! eb9bf8ca6a45c8af0af11f79b5ddea56  gcc/testsuite/gdc.test/fail_compilation/fail4375s.d
! 58cea4c3d55d794d57ab5bb43051ce21  gcc/testsuite/gdc.test/fail_compilation/fail4375t.d
! 81d7154e0d990a43b1b9ace4cf48d569  gcc/testsuite/gdc.test/fail_compilation/fail4375u.d
! 8c63fdbde5cd0949753cb10d8b676fdb  gcc/testsuite/gdc.test/fail_compilation/fail4375v.d
! fa3460a1a007f66b8fbd6f5a0d23e3c1  gcc/testsuite/gdc.test/fail_compilation/fail4375w.d
! bd70b8a84d54e6cf8c09e780955734f2  gcc/testsuite/gdc.test/fail_compilation/fail4375x.d
! ceb015af3aaf0e5a0f4c4cdb4b64b3e9  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
! d982e39361afdc509d39ee04e66fb36e  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
  029768f51289e2430d70ddb60913a531  gcc/testsuite/gdc.test/fail_compilation/fail4923.d
  56535cbb92d2cfd2a7cefcad0cb06450  gcc/testsuite/gdc.test/fail_compilation/fail4958.d
! 596bf742ee4af17c2900adebc118bc10  gcc/testsuite/gdc.test/fail_compilation/fail50.d
  533a1731cf53e4f1f14412b77b064ebe  gcc/testsuite/gdc.test/fail_compilation/fail51.d
  e886866695de1f510d706d9a43753164  gcc/testsuite/gdc.test/fail_compilation/fail5153.d
  14fd3593221a20b67cff3c4048c0a10a  gcc/testsuite/gdc.test/fail_compilation/fail52.d
*************** cd3307a3394091a0065c50345d1d27c8  gcc/te
*** 97845,97850 ****
--- 110114,110120 ----
  12f19bd2092f28fd800b72dfcccc6cd1  gcc/testsuite/gdc.test/fail_compilation/fail57.d
  240a3c909830bbc7f5edbb0a6ccb216c  gcc/testsuite/gdc.test/fail_compilation/fail5733.d
  f1ac319343e4b0d8ed18c047531d98e6  gcc/testsuite/gdc.test/fail_compilation/fail58.d
+ f93769c76850f0b989d3a439f9819ef8  gcc/testsuite/gdc.test/fail_compilation/fail5851.d
  45b24679cc558f5c53c822e8b63c94db  gcc/testsuite/gdc.test/fail_compilation/fail59.d
  0fa8371b53286c121ee2f9322b175961  gcc/testsuite/gdc.test/fail_compilation/fail5953a1.d
  496d05e780a77d4ce554c8f3df532f36  gcc/testsuite/gdc.test/fail_compilation/fail5953a2.d
*************** c04bb3b9d9f2c77e67d846ea284d05c6  gcc/te
*** 97860,97872 ****
  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
--- 110130,110142 ----
  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
! b0f24838312fb1f983a10eca15fbf01c  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
! 7c8e79bbfd309470c15b137331e4e77b  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
*************** f7e1bc01ea39b39faf431443b7b05fdb  gcc/te
*** 97912,97923 ****
  fed4ca464ca0ae6580a0b5b2a2ce9520  gcc/testsuite/gdc.test/fail_compilation/fail80_m64.d
  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
  8ce73b67eb8c02689f6c74f0c6c4193a  gcc/testsuite/gdc.test/fail_compilation/fail8724.d
  6324239509ea9f6553dfade72674d6d3  gcc/testsuite/gdc.test/fail_compilation/fail9.d
  de5e3db7840518024a9cc35ee16543aa  gcc/testsuite/gdc.test/fail_compilation/fail9063.d
--- 110182,110193 ----
  fed4ca464ca0ae6580a0b5b2a2ce9520  gcc/testsuite/gdc.test/fail_compilation/fail80_m64.d
  d23a686d3b61373f5fd2c443c37f8c69  gcc/testsuite/gdc.test/fail_compilation/fail8179b.d
  9daa45699d661b992d2b8bb4113d3424  gcc/testsuite/gdc.test/fail_compilation/fail8217.d
! 8bca4509aee252548ed16de65500b4b7  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
! 7d7ed12c71d23f7379d9bc7813c19c5a  gcc/testsuite/gdc.test/fail_compilation/fail8631.d
! ebb8c2ec549d19701fcf042aaf31eb29  gcc/testsuite/gdc.test/fail_compilation/fail8691.d
  8ce73b67eb8c02689f6c74f0c6c4193a  gcc/testsuite/gdc.test/fail_compilation/fail8724.d
  6324239509ea9f6553dfade72674d6d3  gcc/testsuite/gdc.test/fail_compilation/fail9.d
  de5e3db7840518024a9cc35ee16543aa  gcc/testsuite/gdc.test/fail_compilation/fail9063.d
*************** a8fe53493be780e3cc67f316ab517f81  gcc/te
*** 97950,97956 ****
  d7723e17b36d09ef6c3adb1b595d1521  gcc/testsuite/gdc.test/fail_compilation/fail9766.d
  9544d69dd512570f57eb0e3f1c5d6b94  gcc/testsuite/gdc.test/fail_compilation/fail9773.d
  007549037b1dc58b235123d494310c31  gcc/testsuite/gdc.test/fail_compilation/fail9790.d
! 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
--- 110220,110226 ----
  d7723e17b36d09ef6c3adb1b595d1521  gcc/testsuite/gdc.test/fail_compilation/fail9766.d
  9544d69dd512570f57eb0e3f1c5d6b94  gcc/testsuite/gdc.test/fail_compilation/fail9773.d
  007549037b1dc58b235123d494310c31  gcc/testsuite/gdc.test/fail_compilation/fail9790.d
! ce451f97cc5cf4aeec378394710dc8d9  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
*************** d1920a0ad9ef7df56e67e67aed392ab6  gcc/te
*** 97966,97985 ****
  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
  d10e2cbb7d05c7fc6b72017ac15d0380  gcc/testsuite/gdc.test/fail_compilation/failinout2.d
  903af167e01111a4b04e269bf83653a9  gcc/testsuite/gdc.test/fail_compilation/failob1.d
--- 110236,110260 ----
  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
! eecb48546ca01120752958343bb782c7  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
+ 55f8fc64a438163d1c5b893ad4cd60d3  gcc/testsuite/gdc.test/fail_compilation/fail_contracts5.d
  695faa3012289c1132b755b3a4e17c6b  gcc/testsuite/gdc.test/fail_compilation/fail_isZeroInit.d
! 6e5a610dcd348aff50686d80560dd073  gcc/testsuite/gdc.test/fail_compilation/fail_opover.d
! bfcbfa85e5315ed47bf323f28aba6c7a  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
! ace42ed977e08959eda339a9ad9e9397  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
+ af75b79d6d542c788467a2f89d174463  gcc/testsuite/gdc.test/fail_compilation/failexpression1.d
+ d0ab681eebdc006f0e465ef97fea7194  gcc/testsuite/gdc.test/fail_compilation/failexpression2.d
+ 0bbca34b7836256a551b1a0a94e3c820  gcc/testsuite/gdc.test/fail_compilation/failexpression3.d
+ 2e97ac5db0fe0c5e9729fcff58baecc7  gcc/testsuite/gdc.test/fail_compilation/failexpression4.d
  572be48d5a0a5235990cd885758cfa21  gcc/testsuite/gdc.test/fail_compilation/failinout1.d
  d10e2cbb7d05c7fc6b72017ac15d0380  gcc/testsuite/gdc.test/fail_compilation/failinout2.d
  903af167e01111a4b04e269bf83653a9  gcc/testsuite/gdc.test/fail_compilation/failob1.d
*************** d10e2cbb7d05c7fc6b72017ac15d0380  gcc/te
*** 97988,98000 ****
  d5f5f9e3ec363ba8c6f1846ec95974e1  gcc/testsuite/gdc.test/fail_compilation/failsafea.d
  b103e7dea688095eeac13c4d83e09207  gcc/testsuite/gdc.test/fail_compilation/failsafeb.d
  c8c5548edad867bb7b10e6a3658657d1  gcc/testsuite/gdc.test/fail_compilation/failsafec.d
  b1fa83e7e767b866edc1118f9d0f686f  gcc/testsuite/gdc.test/fail_compilation/fix17349.d
  6ee13248a66eac0a69cd1d5e1b701e92  gcc/testsuite/gdc.test/fail_compilation/fix18575.d
  24f0a089eaaac69432f496cae56e5343  gcc/testsuite/gdc.test/fail_compilation/fix19018.d
  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
--- 110263,110283 ----
  d5f5f9e3ec363ba8c6f1846ec95974e1  gcc/testsuite/gdc.test/fail_compilation/failsafea.d
  b103e7dea688095eeac13c4d83e09207  gcc/testsuite/gdc.test/fail_compilation/failsafeb.d
  c8c5548edad867bb7b10e6a3658657d1  gcc/testsuite/gdc.test/fail_compilation/failsafec.d
+ 6ca31823c1f87c6957ee1aef53766dc3  gcc/testsuite/gdc.test/fail_compilation/finalswitch.d
  b1fa83e7e767b866edc1118f9d0f686f  gcc/testsuite/gdc.test/fail_compilation/fix17349.d
  6ee13248a66eac0a69cd1d5e1b701e92  gcc/testsuite/gdc.test/fail_compilation/fix18575.d
  24f0a089eaaac69432f496cae56e5343  gcc/testsuite/gdc.test/fail_compilation/fix19018.d
  beb8c8bfc3f0f76ee64efc3806c61af0  gcc/testsuite/gdc.test/fail_compilation/fix19059.d
  70b0c808cb74e8359925dbd5e0749db7  gcc/testsuite/gdc.test/fail_compilation/fix19246.d
+ 5a4da095f1b7243987c41e4de614302b  gcc/testsuite/gdc.test/fail_compilation/fix19613.d
+ 03c1cd3afb7e773dcbd4bfeaf9b7c129  gcc/testsuite/gdc.test/fail_compilation/fix20075.d
+ ed3d9e6fec5cb7ccd6fd7ba3e7c8e053  gcc/testsuite/gdc.test/fail_compilation/fix20318.d
+ da8beb3b2c7b19c6afea39a0890f8c09  gcc/testsuite/gdc.test/fail_compilation/fix20867.d
+ 7e144e4f6d68f658a479304e5ba43959  gcc/testsuite/gdc.test/fail_compilation/fix21042.d
+ 149684b466b205310aa2b032695417a9  gcc/testsuite/gdc.test/fail_compilation/fix21165.d
+ fa388f3b1e2bd7d7b0754d8a22a1c2fd  gcc/testsuite/gdc.test/fail_compilation/fix21166.d
  0274ff4a725fd57aeec4d55356e37e66  gcc/testsuite/gdc.test/fail_compilation/fix21585.d
! 77b384203491f1bdc2961636077b7482  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
*************** d70aafa6b9062aa0a03de1dadb2afa0e  gcc/te
*** 98005,98010 ****
--- 110288,110294 ----
  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
+ 9fad192966267a43c8f4ef01176b9a60  gcc/testsuite/gdc.test/fail_compilation/foreach_seq.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
*************** b94cf7c5d997c21f8f03c57183a54d79  gcc/te
*** 98014,98024 ****
--- 110298,110310 ----
  de5626af47ff3ba9b6515b76feb685f5  gcc/testsuite/gdc.test/fail_compilation/gag4269e.d
  1c5dbec32aacf828ebfcf458f4f95c23  gcc/testsuite/gdc.test/fail_compilation/gag4269f.d
  50bdb8c3ca2c1f21870986f7ffcb432b  gcc/testsuite/gdc.test/fail_compilation/gag4269g.d
+ 77ea213889e907bc2eb36c27b2e4b320  gcc/testsuite/gdc.test/fail_compilation/getMember_private.d
  9ce1ef30ce0032c5863af2b5db1a1096  gcc/testsuite/gdc.test/fail_compilation/goto1.d
  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
+ b5036ed161ad22cd7c182e930e3f5f21  gcc/testsuite/gdc.test/fail_compilation/hidden_ctor.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
*************** e62ed8964d5af64c7355c7ae27059665  gcc/te
*** 98038,98048 ****
  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
--- 110324,110334 ----
  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
! acc3e07852df7a95bb9c9072a6b81d30  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
! 896f8e32a65daf99eca19b9b7a42f5cd  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
*** 98054,98065 ****
  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
  861874f2b059070cff718bf324774753  gcc/testsuite/gdc.test/fail_compilation/ice11922.d
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
--- 110340,110351 ----
  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
! 5e81e0262d9e68c0df24056125050303  gcc/testsuite/gdc.test/fail_compilation/ice11822.d
  7026d9811c4f8d0be77cedf33a89c5df  gcc/testsuite/gdc.test/fail_compilation/ice11849b.d
! cc7f6f0fb8fcbf9aa0bc36aadc38759f  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
! 307213e48a8f458e8e33b29fc0aa18da  gcc/testsuite/gdc.test/fail_compilation/ice11919.d
  861874f2b059070cff718bf324774753  gcc/testsuite/gdc.test/fail_compilation/ice11922.d
  c0767fee9a9a4f4f482ae2a5bc0348ab  gcc/testsuite/gdc.test/fail_compilation/ice11925.d
  b770417113d0cfab995e016c1a96463c  gcc/testsuite/gdc.test/fail_compilation/ice11926.d
*************** c1cd5c3fda15a812481eeb4a54119f47  gcc/te
*** 98106,98113 ****
  f4410cf62c66bd36b26cfd923568793c  gcc/testsuite/gdc.test/fail_compilation/ice13465b.d
  2758dd2a496a5538d3b0f220c968d7c2  gcc/testsuite/gdc.test/fail_compilation/ice13563.d
  e119a3d6ce481c2065b18f9d8e145b75  gcc/testsuite/gdc.test/fail_compilation/ice1358.d
! a2859dc4361a77e0eb5ace8ca45bc965  gcc/testsuite/gdc.test/fail_compilation/ice13644.d
! 0d9c63a4372887fa2c9ddfabef18be5e  gcc/testsuite/gdc.test/fail_compilation/ice13788.d
  1d17aa4e231fc30eec7c34f0c354d3cc  gcc/testsuite/gdc.test/fail_compilation/ice13816.d
  92a72287950ae5199eac2b586d1aab4a  gcc/testsuite/gdc.test/fail_compilation/ice13835.d
  536656bafa8e999ecd89a1eb9af4e1c9  gcc/testsuite/gdc.test/fail_compilation/ice13921.d
--- 110392,110399 ----
  f4410cf62c66bd36b26cfd923568793c  gcc/testsuite/gdc.test/fail_compilation/ice13465b.d
  2758dd2a496a5538d3b0f220c968d7c2  gcc/testsuite/gdc.test/fail_compilation/ice13563.d
  e119a3d6ce481c2065b18f9d8e145b75  gcc/testsuite/gdc.test/fail_compilation/ice1358.d
! b473d2ba80b6e6fbd7c11a673e4c822d  gcc/testsuite/gdc.test/fail_compilation/ice13644.d
! 163f4c71e12d6932e6e547d1f7c8f581  gcc/testsuite/gdc.test/fail_compilation/ice13788.d
  1d17aa4e231fc30eec7c34f0c354d3cc  gcc/testsuite/gdc.test/fail_compilation/ice13816.d
  92a72287950ae5199eac2b586d1aab4a  gcc/testsuite/gdc.test/fail_compilation/ice13835.d
  536656bafa8e999ecd89a1eb9af4e1c9  gcc/testsuite/gdc.test/fail_compilation/ice13921.d
*************** cb3699bbacaa54f2e5ba747855d5ce6a  gcc/te
*** 98147,98153 ****
  83a94d1761f590591624eebfdaa39a1a  gcc/testsuite/gdc.test/fail_compilation/ice18753.d
  175f446c561c5cfe4761f731f185264d  gcc/testsuite/gdc.test/fail_compilation/ice18803a.d
  6a97098a32d555be1373c768d9a16d4d  gcc/testsuite/gdc.test/fail_compilation/ice18803b.d
! a4b0b8ec30a45276b6adabbc1fdef687  gcc/testsuite/gdc.test/fail_compilation/ice19755.d
  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
--- 110433,110439 ----
  83a94d1761f590591624eebfdaa39a1a  gcc/testsuite/gdc.test/fail_compilation/ice18753.d
  175f446c561c5cfe4761f731f185264d  gcc/testsuite/gdc.test/fail_compilation/ice18803a.d
  6a97098a32d555be1373c768d9a16d4d  gcc/testsuite/gdc.test/fail_compilation/ice18803b.d
! 0036835b1e566dc158f32892ae1d7872  gcc/testsuite/gdc.test/fail_compilation/ice19755.d
  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
*************** d827a7d6476666f5353bab5882e65beb  gcc/te
*** 98158,98164 ****
  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
--- 110444,110450 ----
  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
! f617e48adf4e8a8750523ce202b8c972  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
*************** f1d18a3fe42974d8d7e5230df6193002  gcc/te
*** 98182,98196 ****
  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
  446455d0c6069f1e8102e7017c0dfd3a  gcc/testsuite/gdc.test/fail_compilation/ice9254b.d
  223503f61ab56f07a89ea8848b5381e8  gcc/testsuite/gdc.test/fail_compilation/ice9254c.d
! c0168cedd088e2e9a5a07f337acc63c3  gcc/testsuite/gdc.test/fail_compilation/ice9273a.d
  c0748d027ca80dcd3c1826ef09692f1e  gcc/testsuite/gdc.test/fail_compilation/ice9273b.d
! 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
--- 110468,110482 ----
  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
! 9c778c87328b2b5dd081d93fd28345ec  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
  446455d0c6069f1e8102e7017c0dfd3a  gcc/testsuite/gdc.test/fail_compilation/ice9254b.d
  223503f61ab56f07a89ea8848b5381e8  gcc/testsuite/gdc.test/fail_compilation/ice9254c.d
! 9cd50131605a0c79c078b5063b323b12  gcc/testsuite/gdc.test/fail_compilation/ice9273a.d
  c0748d027ca80dcd3c1826ef09692f1e  gcc/testsuite/gdc.test/fail_compilation/ice9273b.d
! b95a2aa86672167e417e09fc1726afb7  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
*************** c655742868f7c302fb02d9f969f29129  gcc/te
*** 98297,98302 ****
--- 110583,110590 ----
  2a466412f1524eb0743d62122e94a64e  gcc/testsuite/gdc.test/fail_compilation/imports/imp15896.d
  d0e4233fc485fb20385bfdc07f1ec961  gcc/testsuite/gdc.test/fail_compilation/imports/imp15925.d
  ac7b1cc16acca22cc2139c936ecd68b2  gcc/testsuite/gdc.test/fail_compilation/imports/imp17602.d
+ 762841f918b42c46cbcd7eff89b2088e  gcc/testsuite/gdc.test/fail_compilation/imports/imp18127a.c
+ eedabf079163bf48794b055c0f4e6359  gcc/testsuite/gdc.test/fail_compilation/imports/imp18127b.c
  2481ba7d85a43004094571ea9b36a7ea  gcc/testsuite/gdc.test/fail_compilation/imports/imp18979.d
  0a545f6bc6b90f0d5f3fc0ab10e15ee3  gcc/testsuite/gdc.test/fail_compilation/imports/imp19661.d
  bcb928821f462337afe2f7bcc3727525  gcc/testsuite/gdc.test/fail_compilation/imports/imp2.d
*************** fce681bb0ca8dad5487bd5cf765fcdf5  gcc/te
*** 98382,98392 ****
  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
! 228c0e856fef257f01690c217369e065  gcc/testsuite/gdc.test/fail_compilation/issue21203.d
  e5a789aee346b0176c7893f97233f1f3  gcc/testsuite/gdc.test/fail_compilation/issue21295.d
  aaacbe0abd96d4ce739e14a25d356bbd  gcc/testsuite/gdc.test/fail_compilation/issue21378.d
  5e735bf467996700e9f93b3e9a3cc62a  gcc/testsuite/gdc.test/fail_compilation/issue21685_main.d
! d49468106948994ead5dcae315f26258  gcc/testsuite/gdc.test/fail_compilation/issue22682.d
  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
--- 110670,110683 ----
  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
! 4fad08014a2b160718bb257c5432ac34  gcc/testsuite/gdc.test/fail_compilation/issue21203.d
  e5a789aee346b0176c7893f97233f1f3  gcc/testsuite/gdc.test/fail_compilation/issue21295.d
  aaacbe0abd96d4ce739e14a25d356bbd  gcc/testsuite/gdc.test/fail_compilation/issue21378.d
+ 854df194f5d491deff843077eca6f69b  gcc/testsuite/gdc.test/fail_compilation/issue21630.d
  5e735bf467996700e9f93b3e9a3cc62a  gcc/testsuite/gdc.test/fail_compilation/issue21685_main.d
! 3baea52d3314eeb6c8d2a0d3636737cd  gcc/testsuite/gdc.test/fail_compilation/issue22147.d
! 6875cf68757fb3a91ba46607abb69535  gcc/testsuite/gdc.test/fail_compilation/issue22394.d
! 35de435491f03c8d32d42ab649b73de6  gcc/testsuite/gdc.test/fail_compilation/issue22682.d
  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
*************** ef6df1f550d6df9e01d4ed57c279827c  gcc/te
*** 98395,98407 ****
  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
  7ea7a0f4d8242cca72bdd431719ef39c  gcc/testsuite/gdc.test/fail_compilation/main.d
! 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
--- 110686,110698 ----
  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
! fbd472c25982c3f31c96310ebff7c859  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
! 7584ac4b37f6c87f445085c8ea8c741a  gcc/testsuite/gdc.test/fail_compilation/lookup.d
  7ea7a0f4d8242cca72bdd431719ef39c  gcc/testsuite/gdc.test/fail_compilation/main.d
! 3e4f4eaff877cb2b0ece48a4a4e54846  gcc/testsuite/gdc.test/fail_compilation/mangle1.d
! 2e3fda54d38f526771c20e8b22f5b9c3  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/te
*** 98409,98415 ****
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
  e989bc20ccc902b7b13e1fb834ef6d37  gcc/testsuite/gdc.test/fail_compilation/mixin_template.d
! 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
--- 110700,110707 ----
  ecd7a73e2fa554a62e68917642aafebd  gcc/testsuite/gdc.test/fail_compilation/mixin.d
  f96c464b4446946a260985b08542d13f  gcc/testsuite/gdc.test/fail_compilation/mixin_gc.d
  e989bc20ccc902b7b13e1fb834ef6d37  gcc/testsuite/gdc.test/fail_compilation/mixin_template.d
! 6b2d0de268d18685cba5a7a1ad948d23  gcc/testsuite/gdc.test/fail_compilation/mixinexpr.d
! ebbd6df1965c4589c1b631dbfc31123f  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
*************** cd5b0a21b5a36cf880301591ac049c46  gcc/te
*** 98418,98427 ****
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
  3b5523de4749c7d852011ec85e276c84  gcc/testsuite/gdc.test/fail_compilation/must_use_template.d
  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
--- 110710,110720 ----
  15d90fcac6117dd6570d4a46b94403c8  gcc/testsuite/gdc.test/fail_compilation/must_use_reserved.d
  3b5523de4749c7d852011ec85e276c84  gcc/testsuite/gdc.test/fail_compilation/must_use_template.d
  58c5aee0e2a980b40b64d7c83f667cb6  gcc/testsuite/gdc.test/fail_compilation/must_use_union.d
! 4e275a9b7cafb3e870d3000d1b60d4d4  gcc/testsuite/gdc.test/fail_compilation/named_arguments_error.d
! cccf9556475cd3ea0662164e17623086  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
+ b03c666b366408e0f6e35b717be51015  gcc/testsuite/gdc.test/fail_compilation/named_arguments_struct_literal.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
*************** ab6d443dc3b56b7483fbf6f157f18a25  gcc/te
*** 98432,98440 ****
  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
--- 110725,110734 ----
  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
! 004825171b66cef007f2b57c74ada98c  gcc/testsuite/gdc.test/fail_compilation/nogc3.d
! 6d4641097841c4c893aaac8bbf3b23b8  gcc/testsuite/gdc.test/fail_compilation/nonvoid_return.d
  c8b4217102e777fe4800029d365d5c18  gcc/testsuite/gdc.test/fail_compilation/noreturn.d
! 7618f7795cdff02d191df612e0ca090e  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
*************** e6f22eab255ad6a3bc7b96076d62384d  gcc/te
*** 98442,98449 ****
  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
--- 110736,110744 ----
  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
! d78d5047e34a4bd627ce3e6e2c55d570  gcc/testsuite/gdc.test/fail_compilation/obsolete_body.d
  6c4deb58342e6a1a2b351f73fa8c4f97  gcc/testsuite/gdc.test/fail_compilation/onemember_overloads.d
+ fa75c5126db4ae360bb0fd5c121d5b35  gcc/testsuite/gdc.test/fail_compilation/opApply_return.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
*************** ee0f98e38d945599e338a3fc8d2939ed  gcc/te
*** 98458,98496 ****
  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
  4807590bdc410e8cbce87fc3a1702bf7  gcc/testsuite/gdc.test/fail_compilation/protattr3.d
  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
--- 110753,110799 ----
  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
! 358b7cc49af8f089798e26ccab332d38  gcc/testsuite/gdc.test/fail_compilation/placenew.d
! 5d8dd901e9476cc938a20da432cdbf5a  gcc/testsuite/gdc.test/fail_compilation/powinline.d
  43ab37c4d5efd97e06d285a38b720f23  gcc/testsuite/gdc.test/fail_compilation/pragmainline.d
+ 9bf141ce98f461f3e65192d250b7f3f5  gcc/testsuite/gdc.test/fail_compilation/pragmamangle1.d
+ 8f583fe0a591f7b88d262d52b1d43783  gcc/testsuite/gdc.test/fail_compilation/pragmamangle2.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
+ ebb4c8cde85aacefd73d916601e41f66  gcc/testsuite/gdc.test/fail_compilation/previewin3.d
  93e29273b61b90ecaf1f9b852538f7ca  gcc/testsuite/gdc.test/fail_compilation/protattr1.d
  39580b47e16e03fa696b3ed195381f0f  gcc/testsuite/gdc.test/fail_compilation/protattr2.d
  4807590bdc410e8cbce87fc3a1702bf7  gcc/testsuite/gdc.test/fail_compilation/protattr3.d
  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
! 01e7ae9e272c37e8cd162f3bc68ffc81  gcc/testsuite/gdc.test/fail_compilation/pull12941.d
  3fd870b41855f158c759eee9a2348829  gcc/testsuite/gdc.test/fail_compilation/reg6769.d
! bd2469aa7537fa379eec42b570267b1f  gcc/testsuite/gdc.test/fail_compilation/reserved_version.d
! 8d785aee8c9a7a3be6ac362eecafb236  gcc/testsuite/gdc.test/fail_compilation/reserved_version_switch.d
! e96eff7f9ea26c15a8cb419dae8e0308  gcc/testsuite/gdc.test/fail_compilation/retref2.d
! 5ad6ba415b8dce2c63d1d87499a08c9c  gcc/testsuite/gdc.test/fail_compilation/retscope.d
! 7441e0d6d591b7d658d05962c59bc329  gcc/testsuite/gdc.test/fail_compilation/retscope2.d
! 89e875679059aff5312602341e8390de  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
! 46866ed78c32675dadbd4c0900888a83  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
+ 2708f20a8ecadd73bfbb5ba8a4ffef90  gcc/testsuite/gdc.test/fail_compilation/safeprintf.d
  2b37237676e0fa2ce594762f8609768c  gcc/testsuite/gdc.test/fail_compilation/safer.d
  b1afbd31bbf1526499dfe85a03975c14  gcc/testsuite/gdc.test/fail_compilation/scope_class.d
! d488d6ef0241ca2d2262296455c8aa00  gcc/testsuite/gdc.test/fail_compilation/scope_infer_diagnostic.d
! da54a1d44613ea21dc18df6ca44291ca  gcc/testsuite/gdc.test/fail_compilation/seq_assign.d
! 1eaa4eb758f73274cdce250861ba6504  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
+ a33f48109ca196bead768979f69b90b6  gcc/testsuite/gdc.test/fail_compilation/staticarray.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/te
*** 98499,98504 ****
--- 110802,110808 ----
  69da8fec6e17cf06c0720278a97abb96  gcc/testsuite/gdc.test/fail_compilation/staticforeach2.d
  bb6598a0d52b49923b14222dee510692  gcc/testsuite/gdc.test/fail_compilation/staticforeach3.d
  5fc86afe292de65847c2d5b768bc361e  gcc/testsuite/gdc.test/fail_compilation/staticforeach4.d
+ 8f60fd62ca4de2de65cb2c8c0eae3f5f  gcc/testsuite/gdc.test/fail_compilation/struct_rvalue_assign.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/te
*** 98506,98512 ****
  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
--- 110810,110816 ----
  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
! 5f4a669fdac0be95ceffec221bd854fb  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
*************** b1a863df2965ab06a1e78f8741936e04  gcc/te
*** 98526,98539 ****
  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
--- 110830,110843 ----
  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
! f9ff185ff6307e53e8ba9a46a872e1dd  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
! bccf59c6f516cbdfa377142e4e65e9f5  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/te
*** 98543,98557 ****
  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
  9abfc5bd4dee2b4e29f7125683c4cc06  gcc/testsuite/gdc.test/fail_compilation/test15925.d
! 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
--- 110847,110861 ----
  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
! 00e31f6f5cf412c69090d58e7b05fe2f  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
  9abfc5bd4dee2b4e29f7125683c4cc06  gcc/testsuite/gdc.test/fail_compilation/test15925.d
! 354253f1e66ec1fe548eccab81bc5f8a  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
! 2898246d056e427aa8055eb50d131a41  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
*************** e0a809992bf27ecb5271695352b3ac48  gcc/te
*** 98563,98574 ****
  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
--- 110867,110878 ----
  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
! 9e20216562d1c2ca425260c42f9e2fb4  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
! d536a638cb08fb0ba0693cfef97dc96e  gcc/testsuite/gdc.test/fail_compilation/test17422.d
! 0b31d5e6d5e319d618fb54101ec5c926  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
*************** c393b650cec6437b218d580e31495c49  gcc/te
*** 98580,98588 ****
  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
--- 110884,110893 ----
  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
! b5aadc295da9ce27518b46d7a1194b7c  gcc/testsuite/gdc.test/fail_compilation/test17977.d
! b2935056546224cf8dc2e78a225995a1  gcc/testsuite/gdc.test/fail_compilation/test18127.d
  3dedce972ccebf636e59731359e082a2  gcc/testsuite/gdc.test/fail_compilation/test18130.d
! 97ab2f4ec24ed4d1173832455c5686c0  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
*************** a7ce5f99b98911510dfe6b0cd43df779  gcc/te
*** 98593,98616 ****
  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
! 384652f7c502f0235624ad7b7ea50a47  gcc/testsuite/gdc.test/fail_compilation/test20515.d
  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
--- 110898,110922 ----
  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
! 03169d059200353c337d7578d524561f  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
! 762b137012a4cba57d77379245b728b3  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
! 3cf998ffa0d432fb7113a8825e909a8d  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
! 1ec5e00b780611f1a65c85484d4798c4  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
! 3c73d219083b0be583561802c8fb2a64  gcc/testsuite/gdc.test/fail_compilation/test20489.d
! b5e634756f598e337b5df3902fc925df  gcc/testsuite/gdc.test/fail_compilation/test20515.d
  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
*************** c7993efeed291ea587d7d83fec1d1d87  gcc/te
*** 98623,98629 ****
  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
--- 110929,110937 ----
  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
! 9ff190a2097b6271719565c3f478ca3a  gcc/testsuite/gdc.test/fail_compilation/test20863a.d
! 374a3d15ee3988df93c1e4562e9640c2  gcc/testsuite/gdc.test/fail_compilation/test20863b.d
! db1c38f05e35f891f0f6d09468a2d678  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
*************** a90917d34352a06426f399bae530c5b1  gcc/te
*** 98634,98650 ****
  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
  a3522f54348a3c5f14028c34c44f5884  gcc/testsuite/gdc.test/fail_compilation/test21380.d
  ec3a327e60b99c4b5c8c64c7ec034e09  gcc/testsuite/gdc.test/fail_compilation/test21443.d
! 6dabe8de5e4bd17a89063b4c1c944ca1  gcc/testsuite/gdc.test/fail_compilation/test21477.d
  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
--- 110942,110964 ----
  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
! c6c3ac32c41e4803c7d5f93bc2ea61d9  gcc/testsuite/gdc.test/fail_compilation/test21215.d
! 489ed8ec843fb0fca6b50321caeef8ce  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
! 5f3cfb90101443397ce4912a74d858a3  gcc/testsuite/gdc.test/fail_compilation/test21259.d
! cc164e8a770721c00699a6c88a4bf7bb  gcc/testsuite/gdc.test/fail_compilation/test21304.d
! 5aa4572983f63ff6267d8f11778b19c4  gcc/testsuite/gdc.test/fail_compilation/test21317.d
  0eab8d2a17e3211f93dc6c87bf3f5d8c  gcc/testsuite/gdc.test/fail_compilation/test21319.d
  ad28f1ade07eee78214d73c592d30316  gcc/testsuite/gdc.test/fail_compilation/test21353.d
  a3522f54348a3c5f14028c34c44f5884  gcc/testsuite/gdc.test/fail_compilation/test21380.d
+ af63c0fab5328661d05768310ef644d5  gcc/testsuite/gdc.test/fail_compilation/test21408.d
+ ed7dc3e9a66e7ca675b3061c9bd660a3  gcc/testsuite/gdc.test/fail_compilation/test21429.d
  ec3a327e60b99c4b5c8c64c7ec034e09  gcc/testsuite/gdc.test/fail_compilation/test21443.d
! 03e8bf379a729a626e8bd0ed32364c99  gcc/testsuite/gdc.test/fail_compilation/test21477.d
  d89c86b00de50c0eff1176ba2eac046a  gcc/testsuite/gdc.test/fail_compilation/test21518.d
! d48e82ef6f2dbb5339beb2f0ecf80e3b  gcc/testsuite/gdc.test/fail_compilation/test21546.d
! 18759e9d486a917fa510eafe7fc83d52  gcc/testsuite/gdc.test/fail_compilation/test21634.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
*************** d9418f88b8337499a2b6b4fd09e36a8e  gcc/te
*** 98660,98665 ****
--- 110974,110980 ----
  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
+ eccf84927ec66eced2dc981440aea94c  gcc/testsuite/gdc.test/fail_compilation/test22397.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
*************** ca15912fd7a40502368f8963b289d24b  gcc/te
*** 98672,98680 ****
  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
--- 110987,110996 ----
  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
! 870b182f32f19b685a3f24b60985e150  gcc/testsuite/gdc.test/fail_compilation/test23073.d
  87ff548a38e50d9b93fa8b5973b82742  gcc/testsuite/gdc.test/fail_compilation/test23112.d
! 45f853ce2776f78966e13c397c899945  gcc/testsuite/gdc.test/fail_compilation/test23145.d
! c6b791ceecd13f224ff487f8ff51ba8d  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
*************** e010725215b2db70af4d945e37f73a50  gcc/te
*** 98683,98704 ****
  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/testsuite/gdc.test/fail_compilation/test24110.d
  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
--- 110999,111019 ----
  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
! bd3211cf17e71359ac0f6590b1667105  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
! e9a03a7e905c0bc33ad25c478cda7515  gcc/testsuite/gdc.test/fail_compilation/test23968.d
! 16140978adce2d540f9e9ab60bda7abb  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
! 90df0f8e49ad09b6fae9869fc6124ee7  gcc/testsuite/gdc.test/fail_compilation/test24084.d
  cc41e8d4f1cad67ff1bf2aec36d096da  gcc/testsuite/gdc.test/fail_compilation/test24110.d
  14870badd278a51ab882abb61fdb2fcb  gcc/testsuite/gdc.test/fail_compilation/test24157.d
  6f1c6290717f99af3bff7bd3c0ff19e5  gcc/testsuite/gdc.test/fail_compilation/test24159.d
! e5bc904144bb3b39a96a614d2f9101b1  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
*************** c64d6105a3f8d4a01b5583058c8019c7  gcc/te
*** 98717,98732 ****
  41061beff9b304e814bb0fc6540a8cf3  gcc/testsuite/gdc.test/fail_compilation/test6883.d
  e5c1326640ea3425f6b79d83f241800c  gcc/testsuite/gdc.test/fail_compilation/test8509.d
  83923140d1196510fca82ee22be2c06e  gcc/testsuite/gdc.test/fail_compilation/test8556.d
  ec4dab98798d55fe2c57ec7dd6dca969  gcc/testsuite/gdc.test/fail_compilation/test8751.d
! 9987979df64ce091d9dfc23c6d91f4c9  gcc/testsuite/gdc.test/fail_compilation/test9150.d
  34ae587b738bae66fe38677dce368618  gcc/testsuite/gdc.test/fail_compilation/test9176.d
  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
--- 111032,111049 ----
  41061beff9b304e814bb0fc6540a8cf3  gcc/testsuite/gdc.test/fail_compilation/test6883.d
  e5c1326640ea3425f6b79d83f241800c  gcc/testsuite/gdc.test/fail_compilation/test8509.d
  83923140d1196510fca82ee22be2c06e  gcc/testsuite/gdc.test/fail_compilation/test8556.d
+ 141b9f548b88b47069422ed2be025a5f  gcc/testsuite/gdc.test/fail_compilation/test8662.d
  ec4dab98798d55fe2c57ec7dd6dca969  gcc/testsuite/gdc.test/fail_compilation/test8751.d
! 832f4fe58cc854d7095a62f60cbb26fc  gcc/testsuite/gdc.test/fail_compilation/test9150.d
  34ae587b738bae66fe38677dce368618  gcc/testsuite/gdc.test/fail_compilation/test9176.d
  52d9b83392589d6bdf1fd43ad1236fe0  gcc/testsuite/gdc.test/fail_compilation/test9701.d
! ecb9231d4edfa2cfdfff943a0477ba69  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
! 1b2c2148feb5b903828cb6ff9abf8e29  gcc/testsuite/gdc.test/fail_compilation/test_isOverlapped_errors.d
! 6bed13e8122cf47cf74d7799d64afe03  gcc/testsuite/gdc.test/fail_compilation/test_switch_error.d
! d85dc340f8e1ad482cf7f4ec2320a01f  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
*************** f03859c9cd24a3002ec74d5d1b89b641  gcc/te
*** 98738,98755 ****
  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
--- 111055,111074 ----
  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
+ 41609ca2dc94aa582064380a76c93697  gcc/testsuite/gdc.test/fail_compilation/type_as_initializer.d
  5f18f0800b788f0e7bd364090a8dae34  gcc/testsuite/gdc.test/fail_compilation/typeerrors.d
+ e182c4a1bce941c4039d48cb27f8a20c  gcc/testsuite/gdc.test/fail_compilation/uda_lambda.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
! 451cbbd62139afdded65f502cfa02205  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
! 1b00cb631a01907a2bd76767c939c61b  gcc/testsuite/gdc.test/fail_compilation/varargsstc.d
  8437920cfdf5995ccf08a1ad910b2bc8  gcc/testsuite/gdc.test/fail_compilation/vector_cast.d
! a08da8104579ee7ecb9da52e4a9afa12  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
*************** fffd6a71ea335ebf0f5417f81dfef7db  gcc/te
*** 98767,98773 ****
  bdd33dd9645eddf6b5b83f304fcff332  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
! 3de44536ba2ca82e220dcd6a0a086dce  gcc/testsuite/gdc.test/runnable/b10562.d
  65c4da6831a7756860e462a8e30bc23e  gcc/testsuite/gdc.test/runnable/b16278.d
  de5dbaa120df255398848177bccef4ac  gcc/testsuite/gdc.test/runnable/b16360.d
  a8689a639669b0a19dad584fd5012058  gcc/testsuite/gdc.test/runnable/b17073.d
--- 111086,111092 ----
  bdd33dd9645eddf6b5b83f304fcff332  gcc/testsuite/gdc.test/runnable/aliasthis.d
  f3a2bbb7a464d93f63ab0326b83fa7ab  gcc/testsuite/gdc.test/runnable/arrayop.d
  4fcc9ce7ecc0df34147cd85b65cb05da  gcc/testsuite/gdc.test/runnable/auto1.d
! 55c43b778de747a1289ff26155dfe139  gcc/testsuite/gdc.test/runnable/b10562.d
  65c4da6831a7756860e462a8e30bc23e  gcc/testsuite/gdc.test/runnable/b16278.d
  de5dbaa120df255398848177bccef4ac  gcc/testsuite/gdc.test/runnable/b16360.d
  a8689a639669b0a19dad584fd5012058  gcc/testsuite/gdc.test/runnable/b17073.d
*************** a420878da7fa335abc9583e4499d0666  gcc/te
*** 98781,98792 ****
  81eae29e5dcdce2710e97b024a39e9d5  gcc/testsuite/gdc.test/runnable/bench1.d
  c619f23869eb2baf6ff686c8cf48f2d4  gcc/testsuite/gdc.test/runnable/betterc.d
  3d3cfce1b32d3c3367406afbb4f3a671  gcc/testsuite/gdc.test/runnable/bettercUnittest.d
! 46a1099e38da8d7d5c8b44bda27616c8  gcc/testsuite/gdc.test/runnable/bit.d
  370e709a442934770ca5c055271aba94  gcc/testsuite/gdc.test/runnable/bitops.d
  5e171d0543cb3d1795498b099bcc4509  gcc/testsuite/gdc.test/runnable/bug11155.d
  57c36c5c550ccf929d7ef16b40d40d52  gcc/testsuite/gdc.test/runnable/bug12928.d
  9ff4fc16d2151e151650b90656838c4b  gcc/testsuite/gdc.test/runnable/bug16146.d
! 33630c57e32ef7ea1ea8c8b9e4cbdf7d  gcc/testsuite/gdc.test/runnable/bug19652.d
  546af3fae34682e4fc189d2cda31ed4a  gcc/testsuite/gdc.test/runnable/bug5.d
  d939e36fd09244321c35ddc5937a0203  gcc/testsuite/gdc.test/runnable/bug7068.d
  50fea055820fc103d004302bc63f3c85  gcc/testsuite/gdc.test/runnable/bug846.d
--- 111100,111111 ----
  81eae29e5dcdce2710e97b024a39e9d5  gcc/testsuite/gdc.test/runnable/bench1.d
  c619f23869eb2baf6ff686c8cf48f2d4  gcc/testsuite/gdc.test/runnable/betterc.d
  3d3cfce1b32d3c3367406afbb4f3a671  gcc/testsuite/gdc.test/runnable/bettercUnittest.d
! 50d37325500eae55d195d3f258196458  gcc/testsuite/gdc.test/runnable/bit.d
  370e709a442934770ca5c055271aba94  gcc/testsuite/gdc.test/runnable/bitops.d
  5e171d0543cb3d1795498b099bcc4509  gcc/testsuite/gdc.test/runnable/bug11155.d
  57c36c5c550ccf929d7ef16b40d40d52  gcc/testsuite/gdc.test/runnable/bug12928.d
  9ff4fc16d2151e151650b90656838c4b  gcc/testsuite/gdc.test/runnable/bug16146.d
! bc392985034f7a6b06ce7b89cb260119  gcc/testsuite/gdc.test/runnable/bug19652.d
  546af3fae34682e4fc189d2cda31ed4a  gcc/testsuite/gdc.test/runnable/bug5.d
  d939e36fd09244321c35ddc5937a0203  gcc/testsuite/gdc.test/runnable/bug7068.d
  50fea055820fc103d004302bc63f3c85  gcc/testsuite/gdc.test/runnable/bug846.d
*************** af2f95c5ef65b51539eef86ea15fa531  gcc/te
*** 98795,98807 ****
  01d3a2d553dcbd78448c6408c8ceee96  gcc/testsuite/gdc.test/runnable/casting.d
  758ec98959b2e2a7360601dbda5e44bb  gcc/testsuite/gdc.test/runnable/cdcmp.d
  1a404880fefc71429b66061fd57938df  gcc/testsuite/gdc.test/runnable/class_opCmp.d
! e8ff6f3ea6dc635e21038617aaa22d6c  gcc/testsuite/gdc.test/runnable/closure.d
  9856034684b8c1120eedb0ec55938558  gcc/testsuite/gdc.test/runnable/complex.d
  6b5e44de6530379279b7cc0d9eaee155  gcc/testsuite/gdc.test/runnable/complex3.d
! ce7051ac19199f716966b7818a002c9b  gcc/testsuite/gdc.test/runnable/constfold.d
  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
--- 111114,111126 ----
  01d3a2d553dcbd78448c6408c8ceee96  gcc/testsuite/gdc.test/runnable/casting.d
  758ec98959b2e2a7360601dbda5e44bb  gcc/testsuite/gdc.test/runnable/cdcmp.d
  1a404880fefc71429b66061fd57938df  gcc/testsuite/gdc.test/runnable/class_opCmp.d
! e7305d083ae23c32db91322f1e310b23  gcc/testsuite/gdc.test/runnable/closure.d
  9856034684b8c1120eedb0ec55938558  gcc/testsuite/gdc.test/runnable/complex.d
  6b5e44de6530379279b7cc0d9eaee155  gcc/testsuite/gdc.test/runnable/complex3.d
! a10f1fbb2f27f7e942cc0670fb3624e4  gcc/testsuite/gdc.test/runnable/constfold.d
  a080e4860261d16428bca6fb30d66159  gcc/testsuite/gdc.test/runnable/cppdtor.d
  2b92f65e8a84b3091a6b268e98f92815  gcc/testsuite/gdc.test/runnable/ctorpowtests.d
! 3f5f010cdf399eaeff520185c43b37a5  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
*************** b26c0b2a01e9fdb64c30f43232af99e2  gcc/te
*** 98816,98821 ****
--- 111135,111141 ----
  581c42b7603f87a68265acd7a83b3784  gcc/testsuite/gdc.test/runnable/extra-files/lib13742b.d
  b84ed80fbde5df36ca03c501094f53ba  gcc/testsuite/gdc.test/runnable/extra-files/minimal/object.d
  d873fde62be42dc6d7ebe69a8307e263  gcc/testsuite/gdc.test/runnable/extra-files/moreBettercUnittests.d
+ 2c532f1794db341b228160ffd577177d  gcc/testsuite/gdc.test/runnable/extra-files/sectiondefs.d
  2c076cf7e6b85703744bf5e46ebcaa8c  gcc/testsuite/gdc.test/runnable/extra-files/std14198/array.d
  d964a72afe8c1ec8814ea7b333fbc2f5  gcc/testsuite/gdc.test/runnable/extra-files/std14198/conv.d
  efe9afe1d7c82f88fcf975b64807b7c4  gcc/testsuite/gdc.test/runnable/extra-files/std14198/format.d
*************** d8fb229e4130b79d115c02f142b30900  gcc/te
*** 98833,98839 ****
  9564304c11653927716e970854c4a462  gcc/testsuite/gdc.test/runnable/foreach2.d
  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
--- 111153,111159 ----
  9564304c11653927716e970854c4a462  gcc/testsuite/gdc.test/runnable/foreach2.d
  040e4fa767a7fc2e188c99cbc64f3de7  gcc/testsuite/gdc.test/runnable/foreach3.d
  2b8527464d5784704510e2c0b53be4e1  gcc/testsuite/gdc.test/runnable/foreach4.d
! 898b8d8a073b745a5dcfc53df418f7f5  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
*************** cb452631c311ff185975ed99bde00241  gcc/te
*** 98933,98938 ****
--- 111253,111259 ----
  6448f2440740e1334549739876dd8af1  gcc/testsuite/gdc.test/runnable/imports/module_with_tests.d
  833bf7270986a5b44ab97cb3ff91e5a6  gcc/testsuite/gdc.test/runnable/imports/ovs1528a.d
  7e3d3940b6985eaf7173938ae0aa86ff  gcc/testsuite/gdc.test/runnable/imports/ovs1528b.d
+ fb2596d2cc366bf608a1eeff8b99b4fa  gcc/testsuite/gdc.test/runnable/imports/pragmainline_a.d
  5c314ae1e95f9a1f188468e78aafb5c6  gcc/testsuite/gdc.test/runnable/imports/pubprivtmpla.d
  0e5997fe41346867cb8799fa64b9ae10  gcc/testsuite/gdc.test/runnable/imports/standalone_b.d
  61da9b8c6eb2a3e3db927c8bb97c019f  gcc/testsuite/gdc.test/runnable/imports/std11069array.d
*************** bba54e3d289eaaf3f6cd33759ce1ec8f  gcc/te
*** 98956,98961 ****
--- 111277,111283 ----
  20f5158c99342f104346877478f8037d  gcc/testsuite/gdc.test/runnable/imports/template_ovs3.d
  c47eff29f10b58aa41dde3712e983c77  gcc/testsuite/gdc.test/runnable/imports/test10441b.d
  1b90787d82532ef6ecec7c27852069a0  gcc/testsuite/gdc.test/runnable/imports/test10441c.d
+ 28bd60356fa06ebed4721fbb5544e52a  gcc/testsuite/gdc.test/runnable/imports/test10442a.d
  c2936f1e2dfad4952ac027ffb029f917  gcc/testsuite/gdc.test/runnable/imports/test10573a.d
  b0b287b9c1345d279f14a509b9473fe6  gcc/testsuite/gdc.test/runnable/imports/test10736a.d
  16f7ae7a23cb4d90417952d73a918b12  gcc/testsuite/gdc.test/runnable/imports/test10736b.d
*************** c84519b4071a05841382b567953be0b4  gcc/te
*** 99032,99041 ****
--- 111354,111365 ----
  1eb788b52d7a55d4c36cf1adab17983a  gcc/testsuite/gdc.test/runnable/imports/ufcs5c.d
  eca2528a4b2f620d2c38d1abb893652c  gcc/testsuite/gdc.test/runnable/imports/ufcs5d.d
  25e6928fcac8b8805188099fa463c745  gcc/testsuite/gdc.test/runnable/imports/ufcs5e.d
+ c7d3c21b237a99f7cfa6f2802e3e1efa  gcc/testsuite/gdc.test/runnable/imports/你好.d
  6bc98429fb6b456e0a601db6162025c0  gcc/testsuite/gdc.test/runnable/inclusive_incontracts.d
  aaf6f341932e9b3a995159cd37bdc066  gcc/testsuite/gdc.test/runnable/inline.d
  f7d709d852581fa8afa0dd0d20f5b2a3  gcc/testsuite/gdc.test/runnable/inline14560.d
  ee1705daa5f4bdf4268af3e439e38e22  gcc/testsuite/gdc.test/runnable/inline3.d
+ a4a73e9702637fa3cc5e29d4ee206d26  gcc/testsuite/gdc.test/runnable/inline4.d
  d64b5e3f0b00940814668d067bf9aaea  gcc/testsuite/gdc.test/runnable/inline7625.d
  983143edb6966dadb405abd8072847f2  gcc/testsuite/gdc.test/runnable/inner.d
  48cfd849752443e6d9839e935e8143b7  gcc/testsuite/gdc.test/runnable/interface.d
*************** ca24fa67843e9b5f04f6e36b4156cd09  gcc/te
*** 99048,99059 ****
  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
--- 111372,111388 ----
  8e5a2ed2af9dfcc61cdfcfe2e2c82869  gcc/testsuite/gdc.test/runnable/issue11070.d
  34bbbe816cec89b7cf9ad1cf88a3c866  gcc/testsuite/gdc.test/runnable/issue16995.d
  e48c402ca69b796fd05c63bb3760b2a1  gcc/testsuite/gdc.test/runnable/issue18919.d
+ 7d691fce5c1d4cc651cb56a7941bf372  gcc/testsuite/gdc.test/runnable/issue20578.d
+ 4f7e9b0792f45584b2b2e919b42801cb  gcc/testsuite/gdc.test/runnable/issue22069.d
+ 2460eafb51cdd924fc7f4d08167ad32c  gcc/testsuite/gdc.test/runnable/issue22481.d
+ 55f56516105c9cb62dcfe31a91aaa60f  gcc/testsuite/gdc.test/runnable/issue22621.d
+ 1f9f306ffdb3cbc021e6ef80aa93937c  gcc/testsuite/gdc.test/runnable/issue22639.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
! b0af1e59e4be825c8679ca64aea474c2  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
*************** e041b1e4a58fab7adb641895e58bfae9  gcc/te
*** 99093,99138 ****
  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
  63d69507976c1d1d8944e81e01b7e5ed  gcc/testsuite/gdc.test/runnable/structlit.d
  3e3face435bb217d55099a4d3b63ee8e  gcc/testsuite/gdc.test/runnable/template1.d
  415d0f5479b379a2060b96d579202da6  gcc/testsuite/gdc.test/runnable/template13478.d
  69d08426f0323e8fbc44d4d87fa314c4  gcc/testsuite/gdc.test/runnable/template2.d
--- 111422,111473 ----
  f937e0b38b1fcd4d891537f30945028b  gcc/testsuite/gdc.test/runnable/m1.d
  e9f9b0b614372eb03b080d1810c3f513  gcc/testsuite/gdc.test/runnable/manboy.d
  d24d09db909070bae7a41375df4c3e2b  gcc/testsuite/gdc.test/runnable/mangle.d
! 7bbc4ba51d100fa479ded9e3adf89568  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
! 2e06f16c0f39b3195b4a7860a4cede0a  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
! 3ef60aa4246b69d1ab40d1c581ec0500  gcc/testsuite/gdc.test/runnable/noreturn2.d
  4ddffe568a5a604293830865cf0b15b8  gcc/testsuite/gdc.test/runnable/nrvo.d
  03897e35749dc0677dab013ba59cd344  gcc/testsuite/gdc.test/runnable/nulltype.d
+ a4c66aa01f43edb8b05a90c822de9c26  gcc/testsuite/gdc.test/runnable/opcolon.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
! b26db2183e8f8ed6f130e648bf843554  gcc/testsuite/gdc.test/runnable/opover3.d
! 295da9b2ced5c402823cbd49efe87e5f  gcc/testsuite/gdc.test/runnable/overload.d
  c4e996cd3850a6ed5cd0b4537df85ad3  gcc/testsuite/gdc.test/runnable/pi.d
! 3eef5c673fa1363f30d1b32894007fa8  gcc/testsuite/gdc.test/runnable/placenew.d
  671e921d7ba20a1141f56c07be62b586  gcc/testsuite/gdc.test/runnable/polysemous.d
+ c6a196e97fee14926a01acb9400359e0  gcc/testsuite/gdc.test/runnable/powinline.d
+ e14c333d197fe72d40c95219dc130377  gcc/testsuite/gdc.test/runnable/pragmainline.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
! 968b38b6be60603abb192c4759ffe697  gcc/testsuite/gdc.test/runnable/real_to_float.d
! 5aa619dac98c65942e48723d4e8c6d88  gcc/testsuite/gdc.test/runnable/runnable.exp
! 811d53cea23b6bdb5bf367da38ead3f8  gcc/testsuite/gdc.test/runnable/rvalue1.d
  8323b83c1399a259f3d262fb199b2205  gcc/testsuite/gdc.test/runnable/s2ir.d
! 868f1faac96fd1c0c0b80615feefb758  gcc/testsuite/gdc.test/runnable/sctor.d
  89fdd86c8139312e4c554792b0cf02be  gcc/testsuite/gdc.test/runnable/sctor2.d
! 56961e49f5e5c47ee438cbc20660cc3a  gcc/testsuite/gdc.test/runnable/sdtor.d
  493987b1f414fd9708186d61ca59520a  gcc/testsuite/gdc.test/runnable/standalone_modctor.d
! 4fc7b9d27e31e04834523bd5c0fbf4c7  gcc/testsuite/gdc.test/runnable/staticaa.d
! 55313e05ada2153d996187532ae65a55  gcc/testsuite/gdc.test/runnable/staticarray.d
  75cf9f0bc1b0762705a8a2b6eb89811e  gcc/testsuite/gdc.test/runnable/staticforeach.d
  f73d5e95eed9a6db4b396ed99ff5b347  gcc/testsuite/gdc.test/runnable/statictor.d
! 7cda5e9e2c3f4deb2286c6a29799dd79  gcc/testsuite/gdc.test/runnable/stress.d
  63d69507976c1d1d8944e81e01b7e5ed  gcc/testsuite/gdc.test/runnable/structlit.d
+ 138e1526d343e1395b02b32ee82891d9  gcc/testsuite/gdc.test/runnable/structlit_rvalue.d
  3e3face435bb217d55099a4d3b63ee8e  gcc/testsuite/gdc.test/runnable/template1.d
  415d0f5479b379a2060b96d579202da6  gcc/testsuite/gdc.test/runnable/template13478.d
  69d08426f0323e8fbc44d4d87fa314c4  gcc/testsuite/gdc.test/runnable/template2.d
*************** c67680cbb0418c1b03462bc82e84c512  gcc/te
*** 99140,99149 ****
  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
  05cefcbd270114fadcde3e36e557c635  gcc/testsuite/gdc.test/runnable/test10.d
  11b39f38ddea4db0c346c184ae043158  gcc/testsuite/gdc.test/runnable/test10378.d
  b3fd0ebdae332c633f7c121f913b9c27  gcc/testsuite/gdc.test/runnable/test10441.d
  e18bc12e62affabc6544f2dbb5151592  gcc/testsuite/gdc.test/runnable/test10573.d
  8e7ea5d0ec3fc33fe73cce78bc3f67f8  gcc/testsuite/gdc.test/runnable/test10619.d
  e4718969afdb09b1a5d8a84122c280ed  gcc/testsuite/gdc.test/runnable/test10736.d
--- 111475,111485 ----
  5b81345d7ef03f9c02b13172e567dfea  gcc/testsuite/gdc.test/runnable/template3.d
  b264e56ec823b77824223c7435498b7d  gcc/testsuite/gdc.test/runnable/template4.d
  a2b15bcca5ded36d826ccac559bfe9fc  gcc/testsuite/gdc.test/runnable/template8.d
! 0c0a207bfe781f9cc35f95f720c494f3  gcc/testsuite/gdc.test/runnable/template9.d
  05cefcbd270114fadcde3e36e557c635  gcc/testsuite/gdc.test/runnable/test10.d
  11b39f38ddea4db0c346c184ae043158  gcc/testsuite/gdc.test/runnable/test10378.d
  b3fd0ebdae332c633f7c121f913b9c27  gcc/testsuite/gdc.test/runnable/test10441.d
+ 110e865073814a75e6d43e14c99601a0  gcc/testsuite/gdc.test/runnable/test10442.d
  e18bc12e62affabc6544f2dbb5151592  gcc/testsuite/gdc.test/runnable/test10573.d
  8e7ea5d0ec3fc33fe73cce78bc3f67f8  gcc/testsuite/gdc.test/runnable/test10619.d
  e4718969afdb09b1a5d8a84122c280ed  gcc/testsuite/gdc.test/runnable/test10736.d
*************** d6e1e5269dea90ebb80516ea92c9e793  gcc/te
*** 99193,99198 ****
--- 111529,111535 ----
  04a9fdc94ca9047b806f9859f89879b3  gcc/testsuite/gdc.test/runnable/test17258.d
  72abd9516be307601fc1f3e37554bd23  gcc/testsuite/gdc.test/runnable/test17337.d
  fe612a16687aaab1a8d0ebe237ee0116  gcc/testsuite/gdc.test/runnable/test17338.d
+ f3c50380079dbc6ebc412b2cdeea4ddd  gcc/testsuite/gdc.test/runnable/test17487.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
*************** cff02d44bbc8c8bfe6c49cafa1a3e6d4  gcc/te
*** 99245,99252 ****
--- 111582,111592 ----
  f8d0b21a1212e2dd2a2291217b19a6d4  gcc/testsuite/gdc.test/runnable/test20025.d
  afafe1c6791104a920ce60c8d9b7a1d7  gcc/testsuite/gdc.test/runnable/test20036.d
  00bcf9ef4601142dccb9c6258ec13a68  gcc/testsuite/gdc.test/runnable/test20130.d
+ 444db5dbe55e71f498a11ca356b4f05e  gcc/testsuite/gdc.test/runnable/test20275.d
+ 9326d594146c6e230c06413dbb82f7a7  gcc/testsuite/gdc.test/runnable/test20301.d
  a48fbfbafa74fe1264728e81e04e18c5  gcc/testsuite/gdc.test/runnable/test20365.d
  934611688c4128ebda7e15cb6381177e  gcc/testsuite/gdc.test/runnable/test20401.d
+ bf3d19deaed1c8f0fe61a2fd08ba0c3f  gcc/testsuite/gdc.test/runnable/test20473.d
  4d700b55de424e2292361b6931802ab8  gcc/testsuite/gdc.test/runnable/test20520.d
  c018162c45215d0fab46be18b8757454  gcc/testsuite/gdc.test/runnable/test20565.d
  c34a3bb33a8160038fa96df171e91f03  gcc/testsuite/gdc.test/runnable/test20603.d
*************** df5295a7feb17c4c53da844e70aa21e3  gcc/te
*** 99268,99288 ****
--- 111608,111641 ----
  43c17807177bc1eee7ed52b69cffa7e6  gcc/testsuite/gdc.test/runnable/test21403.d
  d65e02fb5c7cae086fa0bf2467a474a6  gcc/testsuite/gdc.test/runnable/test21416.d
  684fb8bd8d224295c0126d6852e6b871  gcc/testsuite/gdc.test/runnable/test21424.d
+ f708ec1820e736ee42baa851e9190c5d  gcc/testsuite/gdc.test/runnable/test21429.d
+ 0f0c53d19e9f033b2f0ae674ae2b2ea3  gcc/testsuite/gdc.test/runnable/test21435.d
+ ba6045b23a8a5a77e07fe904d6fc81bb  gcc/testsuite/gdc.test/runnable/test21478a.d
+ 343de45d4717d1336cac2ccbb3ee4bf0  gcc/testsuite/gdc.test/runnable/test21478b.d
  39cc7f7ee06df8b588e510e65fc811d1  gcc/testsuite/gdc.test/runnable/test21479.d
  116b00b8fc3478f501974453de61c5f4  gcc/testsuite/gdc.test/runnable/test21506.d
  3958eb12c59cc6063b2604b011a74128  gcc/testsuite/gdc.test/runnable/test21515.d
  d941ec5e142e2721e810526ac3a6e649  gcc/testsuite/gdc.test/runnable/test21586.d
+ dcf9d4faeb5eff7a1042fe032871a776  gcc/testsuite/gdc.test/runnable/test21660.d
+ c5f9db9b9f6ce14db8902a64175721ad  gcc/testsuite/gdc.test/runnable/test21757.d
  b294faec8f737c988ebc5c7803e537f6  gcc/testsuite/gdc.test/runnable/test21772.d
  b891c5d6dc21bffa2578a6c34884d103  gcc/testsuite/gdc.test/runnable/test21821.d
  0696ce7be75b98ed274e814bc15abdf9  gcc/testsuite/gdc.test/runnable/test21822.d
  6bdac6d28c5dd31504f6e1444284463a  gcc/testsuite/gdc.test/runnable/test21833.d
  8372dd352568da47d2662ffb3c04723c  gcc/testsuite/gdc.test/runnable/test22.d
+ 442d267022999ddb638f690edc008d9a  gcc/testsuite/gdc.test/runnable/test22079.d
  23a666ea8d812fe58b4fabc22d2dff49  gcc/testsuite/gdc.test/runnable/test22163.d
  513cf903348b953f1ce7a6d2a644197e  gcc/testsuite/gdc.test/runnable/test22175.d
  8c18bfc2cbf345895aba30706c009647  gcc/testsuite/gdc.test/runnable/test22205.d
  35da0e21d4e4c72d89890781d0d0b227  gcc/testsuite/gdc.test/runnable/test22209.d
  3fd45665b8058347938dee89fa2b5db0  gcc/testsuite/gdc.test/runnable/test22227.d
  a4f94c1d976d5924615a341b59c02cff  gcc/testsuite/gdc.test/runnable/test22278.d
+ 57a6dee149aacbc92c106b30468bf19f  gcc/testsuite/gdc.test/runnable/test22384.d
+ 47bc806fd09efd7f5b5a3804d9a326df  gcc/testsuite/gdc.test/runnable/test22422.d
+ 4a38a100762fd1e96d6c3102e5a3b45e  gcc/testsuite/gdc.test/runnable/test22427.d
+ ae35fc876acb71eab0b9438f3c25e5fe  gcc/testsuite/gdc.test/runnable/test22489.d
+ 0b741612de2c7ef20f3de31e6e553a0b  gcc/testsuite/gdc.test/runnable/test22594.d
+ 6001d779ed2055df76b5073d61388954  gcc/testsuite/gdc.test/runnable/test22659.d
  466e87133a4466011049e76fb568724a  gcc/testsuite/gdc.test/runnable/test22717.d
  4e7e9eefc89ca412abd98b785f5b0e5a  gcc/testsuite/gdc.test/runnable/test22945.d
  7b9b70b26722ff45da43cbea96c9804e  gcc/testsuite/gdc.test/runnable/test23.d
*************** a02b38929f80793790180f89ef3156fe  gcc/te
*** 99310,99316 ****
  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
  a3c22bc745459314253eee2870f757bf  gcc/testsuite/gdc.test/runnable/test3.d
  ffaf83ea8a632fb76a8460f34eb92204  gcc/testsuite/gdc.test/runnable/test30.d
--- 111663,111669 ----
  6888aff994544ace3f7e0ac79dafeeba  gcc/testsuite/gdc.test/runnable/test24819.d
  e43b4cf71ecb19e496e033806a50978e  gcc/testsuite/gdc.test/runnable/test24884.d
  19afe194dcce9c253540c7831e8f23a2  gcc/testsuite/gdc.test/runnable/test27.d
! 89c174e9c8a4b32de21c78542d60a263  gcc/testsuite/gdc.test/runnable/test28.d
  29e2b1f92dca63b5a1e49cedf1c77026  gcc/testsuite/gdc.test/runnable/test29.d
  a3c22bc745459314253eee2870f757bf  gcc/testsuite/gdc.test/runnable/test3.d
  ffaf83ea8a632fb76a8460f34eb92204  gcc/testsuite/gdc.test/runnable/test30.d
*************** fa0fb7940f5997754ddc62b33c7baebd  gcc/te
*** 99327,99333 ****
  dbb7cf02e89580245e392f454e17f2d8  gcc/testsuite/gdc.test/runnable/test4.d
  d445cf99d6bb9f33a8aaaf381e971853  gcc/testsuite/gdc.test/runnable/test40.d
  d506eb18768952fea6d63fd1d70743ce  gcc/testsuite/gdc.test/runnable/test41.d
! 1096ee4b07759d9f312624cc36819e23  gcc/testsuite/gdc.test/runnable/test42.d
  9b2bf264f7de133b083d60a2a96dc8e2  gcc/testsuite/gdc.test/runnable/test42a.d
  b67bb973e1e91f489cd97933211256b9  gcc/testsuite/gdc.test/runnable/test435.d
  851d793586ab17a91e80426908e8a089  gcc/testsuite/gdc.test/runnable/test45.d
--- 111680,111686 ----
  dbb7cf02e89580245e392f454e17f2d8  gcc/testsuite/gdc.test/runnable/test4.d
  d445cf99d6bb9f33a8aaaf381e971853  gcc/testsuite/gdc.test/runnable/test40.d
  d506eb18768952fea6d63fd1d70743ce  gcc/testsuite/gdc.test/runnable/test41.d
! 4685bc14bcebd4311b112dacd195e2ff  gcc/testsuite/gdc.test/runnable/test42.d
  9b2bf264f7de133b083d60a2a96dc8e2  gcc/testsuite/gdc.test/runnable/test42a.d
  b67bb973e1e91f489cd97933211256b9  gcc/testsuite/gdc.test/runnable/test435.d
  851d793586ab17a91e80426908e8a089  gcc/testsuite/gdc.test/runnable/test45.d
*************** b2b82040db73be53e8f83f2298816647  gcc/te
*** 99363,99379 ****
  a36fae813a6f89e1190c485e88612051  gcc/testsuite/gdc.test/runnable/test9495.d
  2abc5225f15f7f14b991388996254323  gcc/testsuite/gdc.test/runnable/testCopyCtor.d
  04d6c9fc22712b82cdfb3e523ac200dd  gcc/testsuite/gdc.test/runnable/testOpApply.d
  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
  8d2dd2e88a1daa40f5a0fe6f0bac44a7  gcc/testsuite/gdc.test/runnable/testarray.d
  728bb57b12620d5afb89fc3a275536d7  gcc/testsuite/gdc.test/runnable/testassert.d
  5c93e14bd7b6c858ef32800173172b43  gcc/testsuite/gdc.test/runnable/testassert_debug.d
! 7496c9ee55b24b40fe9921c1dad615d3  gcc/testsuite/gdc.test/runnable/testassign.d
  b68337b7fabe389fc57cd2fd733b78a9  gcc/testsuite/gdc.test/runnable/testbounds.d
  29912bc8a59c79356e5423ea4b009c91  gcc/testsuite/gdc.test/runnable/testbounds_off.d
  b5d03efe728963696491f3c036bc8f5c  gcc/testsuite/gdc.test/runnable/testbounds_on.d
--- 111716,111734 ----
  a36fae813a6f89e1190c485e88612051  gcc/testsuite/gdc.test/runnable/test9495.d
  2abc5225f15f7f14b991388996254323  gcc/testsuite/gdc.test/runnable/testCopyCtor.d
  04d6c9fc22712b82cdfb3e523ac200dd  gcc/testsuite/gdc.test/runnable/testOpApply.d
+ 2ac708d53ac5b9630517c9b27ac2f7db  gcc/testsuite/gdc.test/runnable/test_delegate_init_in_struct.d
  260a12227aa14fbfc0f873ac59b4b56e  gcc/testsuite/gdc.test/runnable/test_dip1006.d
  485f2946d7bdaf0ea4b8db7b7d178772  gcc/testsuite/gdc.test/runnable/test_dip1006b.d
+ 00a9a8e461bebe7dba1eb3abddb9f6b9  gcc/testsuite/gdc.test/runnable/test_real_array_param.d
  64823d97fc941d462f398d0b7bcbe896  gcc/testsuite/gdc.test/runnable/testaa.d
! 04cff62388ad94caacbbad1d1be88df7  gcc/testsuite/gdc.test/runnable/testaa2.d
! 8592b21a60f2a207b8246d9c8f1861ab  gcc/testsuite/gdc.test/runnable/testaa3.d
  3f7c65678e5e6729e1c6bc9fe1965999  gcc/testsuite/gdc.test/runnable/testaliascast.d
  eeb45913ea76b2a0c6255a669d3edb7e  gcc/testsuite/gdc.test/runnable/testappend.d
  8d2dd2e88a1daa40f5a0fe6f0bac44a7  gcc/testsuite/gdc.test/runnable/testarray.d
  728bb57b12620d5afb89fc3a275536d7  gcc/testsuite/gdc.test/runnable/testassert.d
  5c93e14bd7b6c858ef32800173172b43  gcc/testsuite/gdc.test/runnable/testassert_debug.d
! f3d8556c56dc5320b4320eb517bc7251  gcc/testsuite/gdc.test/runnable/testassign.d
  b68337b7fabe389fc57cd2fd733b78a9  gcc/testsuite/gdc.test/runnable/testbounds.d
  29912bc8a59c79356e5423ea4b009c91  gcc/testsuite/gdc.test/runnable/testbounds_off.d
  b5d03efe728963696491f3c036bc8f5c  gcc/testsuite/gdc.test/runnable/testbounds_on.d
*************** b5d03efe728963696491f3c036bc8f5c  gcc/te
*** 99381,99387 ****
  0b41649fd2039059a2d124ed2090e407  gcc/testsuite/gdc.test/runnable/testbtst.d
  5740d6d8a37f8c8de92b0ae5dea79b24  gcc/testsuite/gdc.test/runnable/testcgelem.d
  f3a5c8190fa5a3106b4d549439f19057  gcc/testsuite/gdc.test/runnable/testclass.d
! accd74cefedab8045dc0d0e3ede1cdc1  gcc/testsuite/gdc.test/runnable/testconst.d
  ca19a464a9598a2c7376e8812c2a1115  gcc/testsuite/gdc.test/runnable/testconstsection.d
  6993e1f19ad9f9572367f9d934f3ab1c  gcc/testsuite/gdc.test/runnable/testcontracts.d
  04177eb403d124b27e25923e062b4968  gcc/testsuite/gdc.test/runnable/testdefault_after_variadic.d
--- 111736,111742 ----
  0b41649fd2039059a2d124ed2090e407  gcc/testsuite/gdc.test/runnable/testbtst.d
  5740d6d8a37f8c8de92b0ae5dea79b24  gcc/testsuite/gdc.test/runnable/testcgelem.d
  f3a5c8190fa5a3106b4d549439f19057  gcc/testsuite/gdc.test/runnable/testclass.d
! 395d53d1d537aeddc1bdfc2ad795d389  gcc/testsuite/gdc.test/runnable/testconst.d
  ca19a464a9598a2c7376e8812c2a1115  gcc/testsuite/gdc.test/runnable/testconstsection.d
  6993e1f19ad9f9572367f9d934f3ab1c  gcc/testsuite/gdc.test/runnable/testcontracts.d
  04177eb403d124b27e25923e062b4968  gcc/testsuite/gdc.test/runnable/testdefault_after_variadic.d
*************** dc17b590e0cb85107a4fde452455b4ec  gcc/te
*** 99391,99397 ****
  d4b8fc507dc0ddd3ca7b3066a52e32e1  gcc/testsuite/gdc.test/runnable/testfloat.d
  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
--- 111746,111752 ----
  d4b8fc507dc0ddd3ca7b3066a52e32e1  gcc/testsuite/gdc.test/runnable/testfloat.d
  75351cd126af64a558dbdd6e40e6a87c  gcc/testsuite/gdc.test/runnable/testgc2.d
  7427aee7adf5bff99ac3a7bcf0cf8b2c  gcc/testsuite/gdc.test/runnable/testgc3.d
! a4854d14642693390a5294ca15c49347  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
*************** ea6b138a5a50c9283634631f6784ac67  gcc/te
*** 99407,99413 ****
  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
--- 111762,111768 ----
  ea09d28ca0f7a07d495d48a79486d5c2  gcc/testsuite/gdc.test/runnable/testrightthis.d
  61ae5027a5905f389d3bbaaf074fd1ff  gcc/testsuite/gdc.test/runnable/testsafe.d
  d0dc7f6c1e3a712292d48eb9d40557d0  gcc/testsuite/gdc.test/runnable/testscope.d
! 8c90442973df1f30960c2429cac5db95  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
*************** a057534673f57c614b996fe87140df21  gcc/te
*** 99420,99428 ****
  9be15b72b386165ca16cdf973c293d24  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
  91642219e5787400e311db2dee1e8591  gcc/testsuite/gdc.test/runnable/traits_getVirtualIndex.d
! dea7fc25fd89a2df3918f62a896ba033  gcc/testsuite/gdc.test/runnable/traits_initSymbol.d
  f75e70758ecdcd92eb5f200d8337bb7e  gcc/testsuite/gdc.test/runnable/tuple_default_parameters.d
! 76488c99011e2857cfb40345b12f7a84  gcc/testsuite/gdc.test/runnable/uda.d
  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
--- 111775,111783 ----
  9be15b72b386165ca16cdf973c293d24  gcc/testsuite/gdc.test/runnable/traits_getPointerBitmap.d
  7b5c0c588a5500319a2ccc41819e3b29  gcc/testsuite/gdc.test/runnable/traits_getUnitTests.d
  91642219e5787400e311db2dee1e8591  gcc/testsuite/gdc.test/runnable/traits_getVirtualIndex.d
! cb58b785c37b8dda0770b69beaeaa89d  gcc/testsuite/gdc.test/runnable/traits_initSymbol.d
  f75e70758ecdcd92eb5f200d8337bb7e  gcc/testsuite/gdc.test/runnable/tuple_default_parameters.d
! b455b1e292a0319e5bd33e906f321862  gcc/testsuite/gdc.test/runnable/uda.d
  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
*************** c5d22add9745e52907bb2497b9bd620f  gcc/te
*** 99433,99438 ****
--- 111788,111794 ----
  c4ca938331c5dd4dfd6be89a399e767b  gcc/testsuite/gdc.test/runnable/wc2.d
  4d06d3860e7413e844746844806a9595  gcc/testsuite/gdc.test/runnable/wc3.d
  492eaa5a75592c5036878c8bf2596a61  gcc/testsuite/gdc.test/runnable/whetstone.d
+ 72cf4d51c9df30785ed8fd5c72850d20  gcc/testsuite/gdc.test/runnable/with.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
*************** b87b34b2dab8f6f449a9d5ac854c90ec  gcc/te
*** 99471,99477 ****
  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
--- 111827,111833 ----
  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
! 4cc4ba89ad126946492ad74e6dab3f17  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
*************** bae6fbb9933e0823463f7462947dad25  gcc/te
*** 99503,99509 ****
  3fc3ab6be4a1d40fa912f79266310049  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c
  deb2afc397aadbc83f8819a89dcb0863  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.f90
  493f148b6a7dd90fd225dc872efcaafc  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c
! 699d08d2d81b3261fa0225cedd053eb4  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.f90
  43e94ff57a77d249f5b5b157595602ca  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c
  7269f20d2d641bd0cfcb965e0c3f58c7  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.f90
  62f2a2fe705fbcf105b9fa5657feb4f4  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_19.f90
--- 111859,111865 ----
  3fc3ab6be4a1d40fa912f79266310049  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c
  deb2afc397aadbc83f8819a89dcb0863  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.f90
  493f148b6a7dd90fd225dc872efcaafc  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.c
! 324fae8d9e5fab8c8f567613d97551fd  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_17.f90
  43e94ff57a77d249f5b5b157595602ca  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.c
  7269f20d2d641bd0cfcb965e0c3f58c7  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_18.f90
  62f2a2fe705fbcf105b9fa5657feb4f4  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_19.f90
*************** cbe33d1d01d7cc0022a9b6df9e8e910a  gcc/te
*** 99607,99612 ****
--- 111963,111969 ----
  777ea3356726306ad54815decc4f1d40  gcc/testsuite/gfortran.dg/actual_array_vect_1.f90
  1098c7580b5baa9bfd878f93707ade1d  gcc/testsuite/gfortran.dg/actual_pointer_function_1.f90
  55f04e692d8438ae5dd1d7d237e67389  gcc/testsuite/gfortran.dg/actual_procedure_1.f90
+ 880c2ca2795fd0f44c310affdf75fd2d  gcc/testsuite/gfortran.dg/actual_procedure_2.f
  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
*************** d4b4b4bcc6dcd02542142d705a240525  gcc/te
*** 99620,99626 ****
  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
  12cc66b2c60fce62b831cdd3a0975181  gcc/testsuite/gfortran.dg/aliasing_dummy_4.f90
--- 111977,111983 ----
  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
! 5a0af2c0b79726ebc046ac394bc09f57  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
  12cc66b2c60fce62b831cdd3a0975181  gcc/testsuite/gfortran.dg/aliasing_dummy_4.f90
*************** d922e822af6878c17645657a31f3a9ee  gcc/te
*** 99637,99642 ****
--- 111994,112000 ----
  f082841753f64949d8329e00653460ec  gcc/testsuite/gfortran.dg/alloc_comp_assign_14.f08
  85b8ed4293af5c7bd2103a9d510c2d38  gcc/testsuite/gfortran.dg/alloc_comp_assign_15.f03
  ae9a8153879a562e6eaad8b096b2f86b  gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03
+ 24801c6979936a4bda1ff676ac369104  gcc/testsuite/gfortran.dg/alloc_comp_assign_17.f90
  552851693306221f925e1819ce51de3f  gcc/testsuite/gfortran.dg/alloc_comp_assign_2.f90
  42f08bf1aab342b9e46a1eca61a4eba8  gcc/testsuite/gfortran.dg/alloc_comp_assign_3.f90
  46cc93b771f780be474234fcd524c4e6  gcc/testsuite/gfortran.dg/alloc_comp_assign_4.f90
*************** a44209b4b22b50ba22251b2901229b35  gcc/te
*** 99680,99685 ****
--- 112038,112046 ----
  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
+ ae3501ce59bfdd9cf6fd3ff72cfbec71  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_5.f90
+ 8a8c438589596ffc00cb8d920f8ccdb6  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_6.f90
+ 44f92878d8c6c52798e461918976dd97  gcc/testsuite/gfortran.dg/alloc_comp_deep_copy_7.f90
  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
*************** eae1c01e9cd07e06f5b2053c9c8e8d0c  gcc/te
*** 99842,99848 ****
  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
--- 112203,112209 ----
  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
! f66138b5b1db9b924188b9e6d434545c  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
*************** e1cea00268c9eb57abc50ee584fd93aa  gcc/te
*** 99855,99861 ****
  c6556ebb6443566c88e0551ae2f19d60  gcc/testsuite/gfortran.dg/analyzer/pr93993.f90
  6569bd8079beec5c6b5b0f599d0af012  gcc/testsuite/gfortran.dg/analyzer/pr96949.f90
  38a12134549120c872485b2894677eec  gcc/testsuite/gfortran.dg/analyzer/pr97668.f
! 3c6755fb31e8694ecc7b0bdcbfed1016  gcc/testsuite/gfortran.dg/analyzer/uninit-pr63311.f90
  b9a4dd9ce1dc5ec1be98f33811c4eba8  gcc/testsuite/gfortran.dg/and_or_xor.f90
  fb1c5569f69a4b48d53284a6e6fe1b9e  gcc/testsuite/gfortran.dg/anint_1.f90
  f19486a23086c5de84ef69f54a0e6794  gcc/testsuite/gfortran.dg/any_all_1.f90
--- 112216,112222 ----
  c6556ebb6443566c88e0551ae2f19d60  gcc/testsuite/gfortran.dg/analyzer/pr93993.f90
  6569bd8079beec5c6b5b0f599d0af012  gcc/testsuite/gfortran.dg/analyzer/pr96949.f90
  38a12134549120c872485b2894677eec  gcc/testsuite/gfortran.dg/analyzer/pr97668.f
! a4157de7774b799fee4fb7f5ea55c8de  gcc/testsuite/gfortran.dg/analyzer/uninit-pr63311.f90
  b9a4dd9ce1dc5ec1be98f33811c4eba8  gcc/testsuite/gfortran.dg/and_or_xor.f90
  fb1c5569f69a4b48d53284a6e6fe1b9e  gcc/testsuite/gfortran.dg/anint_1.f90
  f19486a23086c5de84ef69f54a0e6794  gcc/testsuite/gfortran.dg/any_all_1.f90
*************** dbfad5e8b5cf874428e1b4374f3f75e1  gcc/te
*** 99869,99875 ****
  76ffaeb49d8f6b0d2645829fb196c220  gcc/testsuite/gfortran.dg/argument_checking_12.f90
  49809609a408d29129289719ace22e54  gcc/testsuite/gfortran.dg/argument_checking_13.f90
  75637f318d12921b9ae87cf37cdb9216  gcc/testsuite/gfortran.dg/argument_checking_14.f90
! 1902ff87d35e0bf5b994fc85e38c8e91  gcc/testsuite/gfortran.dg/argument_checking_15.f90
  2f5a10924c0b14d8e5917293d1055742  gcc/testsuite/gfortran.dg/argument_checking_16.f90
  6e283f775be3991e1a1dda6a0da414c3  gcc/testsuite/gfortran.dg/argument_checking_17.f90
  9b7ce5d3bab9b5892af4076e08ba2181  gcc/testsuite/gfortran.dg/argument_checking_18.f90
--- 112230,112236 ----
  76ffaeb49d8f6b0d2645829fb196c220  gcc/testsuite/gfortran.dg/argument_checking_12.f90
  49809609a408d29129289719ace22e54  gcc/testsuite/gfortran.dg/argument_checking_13.f90
  75637f318d12921b9ae87cf37cdb9216  gcc/testsuite/gfortran.dg/argument_checking_14.f90
! c046cae127630c618248d600fa3bff12  gcc/testsuite/gfortran.dg/argument_checking_15.f90
  2f5a10924c0b14d8e5917293d1055742  gcc/testsuite/gfortran.dg/argument_checking_16.f90
  6e283f775be3991e1a1dda6a0da414c3  gcc/testsuite/gfortran.dg/argument_checking_17.f90
  9b7ce5d3bab9b5892af4076e08ba2181  gcc/testsuite/gfortran.dg/argument_checking_18.f90
*************** cb8920b39d43f8d36d7c87cd6ce3188a  gcc/te
*** 99882,99887 ****
--- 112243,112249 ----
  4696d0b0990f3672f510ad45684ab381  gcc/testsuite/gfortran.dg/argument_checking_24.f90
  e96279b8586c27726b6d13e5aef5f5ce  gcc/testsuite/gfortran.dg/argument_checking_25.f90
  41fda9edc825e051657e0ef512854333  gcc/testsuite/gfortran.dg/argument_checking_26.f90
+ c14ff6618ca60358eed38607ccf6e442  gcc/testsuite/gfortran.dg/argument_checking_27.f90
  9420e2390509236501a51aceaffd8fec  gcc/testsuite/gfortran.dg/argument_checking_3.f90
  ca22fc708f8e1b6425943105c693f41e  gcc/testsuite/gfortran.dg/argument_checking_4.f90
  6ef91b131477d21bf8c75369daea1d04  gcc/testsuite/gfortran.dg/argument_checking_5.f90
*************** a2d9a0d935dd860f2e485600db57ecb8  gcc/te
*** 99988,99993 ****
--- 112350,112356 ----
  f4a1e0c66adc8865d3ed362a2b0afa51  gcc/testsuite/gfortran.dg/array_constructor_type_7.f03
  66cf672a0d9e01d80e5d04dd43a9586e  gcc/testsuite/gfortran.dg/array_constructor_type_8.f03
  4afe2c619ccaae47cf397fe69d0fc8a2  gcc/testsuite/gfortran.dg/array_constructor_type_9.f
+ 419cf9eaa877bfd9544489dd08b9e1d0  gcc/testsuite/gfortran.dg/array_constructor_typespec_1.f90
  7de10c270cdf9e6ae0d118fe6a75e3d0  gcc/testsuite/gfortran.dg/array_function_1.f90
  3afaa99751f4b884afdb193178002cf8  gcc/testsuite/gfortran.dg/array_function_2.f90
  784dbde53c3024a9ece796b66df76ad0  gcc/testsuite/gfortran.dg/array_function_3.f90
*************** cfb56bed1db04d96734deed0393fb2a1  gcc/te
*** 99998,100004 ****
  f3a0a84d4a4a1d1fba1105d21046304c  gcc/testsuite/gfortran.dg/array_initializer_2.f90
  2b4bef0c22c911f907559277d9291ac5  gcc/testsuite/gfortran.dg/array_initializer_3.f90
  021599e65323169090e12174251e8a88  gcc/testsuite/gfortran.dg/array_memcpy_1.f90
! 6db23df20fcfa5ffcb500ca0fd0be821  gcc/testsuite/gfortran.dg/array_memcpy_2.f90
  8765b47c330e73bab802dd963be5347e  gcc/testsuite/gfortran.dg/array_memcpy_3.f90
  bf6adc4a22ea07b1ef96cd964979323f  gcc/testsuite/gfortran.dg/array_memcpy_4.f90
  b6760654ceec06f2d9d8da1fb2905d41  gcc/testsuite/gfortran.dg/array_memcpy_5.f90
--- 112361,112367 ----
  f3a0a84d4a4a1d1fba1105d21046304c  gcc/testsuite/gfortran.dg/array_initializer_2.f90
  2b4bef0c22c911f907559277d9291ac5  gcc/testsuite/gfortran.dg/array_initializer_3.f90
  021599e65323169090e12174251e8a88  gcc/testsuite/gfortran.dg/array_memcpy_1.f90
! cfed2dbddab4951a7d33f47dfdc5a4f2  gcc/testsuite/gfortran.dg/array_memcpy_2.f90
  8765b47c330e73bab802dd963be5347e  gcc/testsuite/gfortran.dg/array_memcpy_3.f90
  bf6adc4a22ea07b1ef96cd964979323f  gcc/testsuite/gfortran.dg/array_memcpy_4.f90
  b6760654ceec06f2d9d8da1fb2905d41  gcc/testsuite/gfortran.dg/array_memcpy_5.f90
*************** ca5ed9b7a4b086d732df1a505d87813b  gcc/te
*** 100040,100047 ****
  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
! eede070a28c17448e8635dfa208829ae  gcc/testsuite/gfortran.dg/asan/array_constructor_1.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
  32f63bfc5a1fd9dda988b63c860b03bd  gcc/testsuite/gfortran.dg/asan/finalize_1.f90
--- 112403,112410 ----
  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
! bc053b737dfa9b94047dc769c31f6a67  gcc/testsuite/gfortran.dg/asan/array_constructor_1.f90
! cbd03f59c658425aa443e870f7904e76  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
  32f63bfc5a1fd9dda988b63c860b03bd  gcc/testsuite/gfortran.dg/asan/finalize_1.f90
*************** e9f58df1de071d2b106b16b3af8f6764  gcc/te
*** 100055,100060 ****
--- 112418,112425 ----
  2fadd08fe3904fa5e7b9e433747dd9e5  gcc/testsuite/gfortran.dg/assign_10.f90
  5a14c8021ea0007a87c0f2d24385903b  gcc/testsuite/gfortran.dg/assign_11.f90
  77968474ca7077dddd7b87844075962e  gcc/testsuite/gfortran.dg/assign_12.f90
+ 26913a24bb1ab1b93e82daf23e222c52  gcc/testsuite/gfortran.dg/assign_13.f90
+ 50e0aed1817a8d058a505bc64871b0dc  gcc/testsuite/gfortran.dg/assign_14.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
*************** d3d333698144b6bad92425ebed117768  gcc/te
*** 100141,100146 ****
--- 112506,112514 ----
  e0fe6119bfcf724ee51375d3156cacc5  gcc/testsuite/gfortran.dg/associate_73.f90
  151edd623643e466e74fa24488fd3142  gcc/testsuite/gfortran.dg/associate_74.f90
  9324e6abeab7018b1551e0a075cd2085  gcc/testsuite/gfortran.dg/associate_75.f90
+ 69c9adbbfbe876b0ebe43dc051936ce2  gcc/testsuite/gfortran.dg/associate_76.f90
+ 455dfc6f26983668bd6203def9eb927b  gcc/testsuite/gfortran.dg/associate_77.f90
+ 741671a391caf8cb1c98e29e99735660  gcc/testsuite/gfortran.dg/associate_78.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
*************** cf71c08bba011121c789ca925ca3d13b  gcc/te
*** 100163,100169 ****
  6376d7ef6f137372a501dd7c8547864d  gcc/testsuite/gfortran.dg/associative_1.f90
  04280cc7719e51d18a6ad4510745c528  gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90
  e41613f37c052bf20cb9d34a7bb40da1  gcc/testsuite/gfortran.dg/assumed_charlen_arg_2.f90
! f1b97532f52bd477910c18b834c07594  gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
  79be251ea13580f77617d862fabdf3e8  gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
  f484c374c6a3a4d7adab5922c2c33aec  gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90
  3e7ad4729a2eede254b95374bf8409c8  gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90
--- 112531,112537 ----
  6376d7ef6f137372a501dd7c8547864d  gcc/testsuite/gfortran.dg/associative_1.f90
  04280cc7719e51d18a6ad4510745c528  gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90
  e41613f37c052bf20cb9d34a7bb40da1  gcc/testsuite/gfortran.dg/assumed_charlen_arg_2.f90
! ff3363838b35dd694a367379e4bc573b  gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
  79be251ea13580f77617d862fabdf3e8  gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
  f484c374c6a3a4d7adab5922c2c33aec  gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90
  3e7ad4729a2eede254b95374bf8409c8  gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90
*************** c4b15a25aeb90adb2fe3894279378ec7  gcc/te
*** 100271,100277 ****
  31e9278c6f1c25f6970f1455223ed3c0  gcc/testsuite/gfortran.dg/auto_save_1.f90
  1a947433e8a63996953999f840b27565  gcc/testsuite/gfortran.dg/auto_save_2.f90
  bfe48b30aaf214bae7afa7bb0bbc78bf  gcc/testsuite/gfortran.dg/automatic_1.f90
! b347390b63a364594179b619dec33a75  gcc/testsuite/gfortran.dg/automatic_char_len_1.f90
  0bb10fbdd251207409a82e8715768a6e  gcc/testsuite/gfortran.dg/automatic_char_len_2.f90
  c8b2f59a74a35af78ffe04eabc9fc9e5  gcc/testsuite/gfortran.dg/automatic_default_init_1.f90
  73d6e8707024d85b939354155ff259a3  gcc/testsuite/gfortran.dg/automatic_module_variable.f90
--- 112639,112645 ----
  31e9278c6f1c25f6970f1455223ed3c0  gcc/testsuite/gfortran.dg/auto_save_1.f90
  1a947433e8a63996953999f840b27565  gcc/testsuite/gfortran.dg/auto_save_2.f90
  bfe48b30aaf214bae7afa7bb0bbc78bf  gcc/testsuite/gfortran.dg/automatic_1.f90
! 0c5e0340b282071ce6aa790d53b89d10  gcc/testsuite/gfortran.dg/automatic_char_len_1.f90
  0bb10fbdd251207409a82e8715768a6e  gcc/testsuite/gfortran.dg/automatic_char_len_2.f90
  c8b2f59a74a35af78ffe04eabc9fc9e5  gcc/testsuite/gfortran.dg/automatic_default_init_1.f90
  73d6e8707024d85b939354155ff259a3  gcc/testsuite/gfortran.dg/automatic_module_variable.f90
*************** d863afb920048efbca3bf6b678a61dec  gcc/te
*** 100301,100307 ****
  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
! cd4aa7232c928332e81cd4789dde35b5  gcc/testsuite/gfortran.dg/bessel_6.f90
  71cc71770bb1326fb30cecdef3599e69  gcc/testsuite/gfortran.dg/bessel_7.f90
  9969185b5b657469b14a9f67f9a454ce  gcc/testsuite/gfortran.dg/besxy.f90
  93acf2e57d0045b0633aab0d87f61c61  gcc/testsuite/gfortran.dg/bind-c-char-descr.f90
--- 112669,112675 ----
  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
! 1ca68baec1ccf4598573d4e7df804d39  gcc/testsuite/gfortran.dg/bessel_6.f90
  71cc71770bb1326fb30cecdef3599e69  gcc/testsuite/gfortran.dg/bessel_7.f90
  9969185b5b657469b14a9f67f9a454ce  gcc/testsuite/gfortran.dg/besxy.f90
  93acf2e57d0045b0633aab0d87f61c61  gcc/testsuite/gfortran.dg/bind-c-char-descr.f90
*************** f67bf789222aca1ff5d48cab6c1ec64c  gcc/te
*** 100343,100348 ****
--- 112711,112717 ----
  be8936d928c2cd968e9d77975d4626be  gcc/testsuite/gfortran.dg/bind_c_dts_driver.c
  cb20c6d9ff58740bc410a0d861435a4d  gcc/testsuite/gfortran.dg/bind_c_implicit_vars.f03
  cb9ccf001da2d7d1cf77a7d2e9ebeed2  gcc/testsuite/gfortran.dg/bind_c_module.f90
+ 8a7966d3a124002e000afedcfc5dfc1f  gcc/testsuite/gfortran.dg/bind_c_module_proc.f90
  74a4370d67a610f90e4eed4db0901687  gcc/testsuite/gfortran.dg/bind_c_optional-1.f90
  65e0bb83cbf49d5a78d319d060fe4102  gcc/testsuite/gfortran.dg/bind_c_optional-2.f90
  fe8c5e542693077295c21e4aaab6c998  gcc/testsuite/gfortran.dg/bind_c_procs.f03
*************** c0d788f5fa3898fea232e169e1b1fbd0  gcc/te
*** 100421,100432 ****
  d2102c94673affc257d3e7376d873240  gcc/testsuite/gfortran.dg/binding_label_tests_32.f90
  71cba30c6667a8dc0eed115b1e1f658d  gcc/testsuite/gfortran.dg/binding_label_tests_33.f90
  0ea77c375a124a9cf3c87ab488e29638  gcc/testsuite/gfortran.dg/binding_label_tests_34.f90
  30bf7172a6348994b72ba6a37d0e1844  gcc/testsuite/gfortran.dg/binding_label_tests_4.f03
  27695dee78547e7050f28a42fe933cf4  gcc/testsuite/gfortran.dg/binding_label_tests_5.f03
  07f203142fb7f0e2e9ab4fdd1b57c16f  gcc/testsuite/gfortran.dg/binding_label_tests_6.f03
  92c3aa6793310e0fc0ef96627b7115b6  gcc/testsuite/gfortran.dg/binding_label_tests_7.f03
  1ba5e1aa94f2e353584000ae5e1760f2  gcc/testsuite/gfortran.dg/binding_label_tests_8.f03
! 27287860f62493c0bced36b54fd65cee  gcc/testsuite/gfortran.dg/binding_label_tests_9.f03
  4dcec81a95bc80bdc09eb14c2f3d69c8  gcc/testsuite/gfortran.dg/bit_comparison_1.F90
  5ad9801370ec52af61582b228e96e186  gcc/testsuite/gfortran.dg/bit_comparison_2.F90
  d0963b59e8306b981e29fc1f005f2dee  gcc/testsuite/gfortran.dg/blas_gemm_routines.f
--- 112790,112802 ----
  d2102c94673affc257d3e7376d873240  gcc/testsuite/gfortran.dg/binding_label_tests_32.f90
  71cba30c6667a8dc0eed115b1e1f658d  gcc/testsuite/gfortran.dg/binding_label_tests_33.f90
  0ea77c375a124a9cf3c87ab488e29638  gcc/testsuite/gfortran.dg/binding_label_tests_34.f90
+ 25e8c9238196849a558c35ff0fc853f7  gcc/testsuite/gfortran.dg/binding_label_tests_35.f90
  30bf7172a6348994b72ba6a37d0e1844  gcc/testsuite/gfortran.dg/binding_label_tests_4.f03
  27695dee78547e7050f28a42fe933cf4  gcc/testsuite/gfortran.dg/binding_label_tests_5.f03
  07f203142fb7f0e2e9ab4fdd1b57c16f  gcc/testsuite/gfortran.dg/binding_label_tests_6.f03
  92c3aa6793310e0fc0ef96627b7115b6  gcc/testsuite/gfortran.dg/binding_label_tests_7.f03
  1ba5e1aa94f2e353584000ae5e1760f2  gcc/testsuite/gfortran.dg/binding_label_tests_8.f03
! 3f821417aa3cc25fd80b07b72e8fa56c  gcc/testsuite/gfortran.dg/binding_label_tests_9.f03
  4dcec81a95bc80bdc09eb14c2f3d69c8  gcc/testsuite/gfortran.dg/bit_comparison_1.F90
  5ad9801370ec52af61582b228e96e186  gcc/testsuite/gfortran.dg/bit_comparison_2.F90
  d0963b59e8306b981e29fc1f005f2dee  gcc/testsuite/gfortran.dg/blas_gemm_routines.f
*************** a55e030873dd3ed21b29b10669bfe719  gcc/te
*** 100479,100485 ****
  a2f76eca5ccc5ab54f50921f58e74199  gcc/testsuite/gfortran.dg/bound_5.f90
  a10bdff349043061c24ed4617b114c28  gcc/testsuite/gfortran.dg/bound_6.f90
  f36c2ee69da3a20951ff618d8c153000  gcc/testsuite/gfortran.dg/bound_7.f90
! 79ae6408deb6de8873553a468eefd03c  gcc/testsuite/gfortran.dg/bound_8.f90
  20b4378ec5d7f67596986f854f336780  gcc/testsuite/gfortran.dg/bound_9.f90
  a5e7c88c753868b606e43c1faa6f8b5f  gcc/testsuite/gfortran.dg/bound_resolve_after_error_1.f90
  c790ba1b682d5921194128ba48f39633  gcc/testsuite/gfortran.dg/bound_simplification_1.f90
--- 112849,112855 ----
  a2f76eca5ccc5ab54f50921f58e74199  gcc/testsuite/gfortran.dg/bound_5.f90
  a10bdff349043061c24ed4617b114c28  gcc/testsuite/gfortran.dg/bound_6.f90
  f36c2ee69da3a20951ff618d8c153000  gcc/testsuite/gfortran.dg/bound_7.f90
! a4a459acf190f70dd621725e76845ffe  gcc/testsuite/gfortran.dg/bound_8.f90
  20b4378ec5d7f67596986f854f336780  gcc/testsuite/gfortran.dg/bound_9.f90
  a5e7c88c753868b606e43c1faa6f8b5f  gcc/testsuite/gfortran.dg/bound_resolve_after_error_1.f90
  c790ba1b682d5921194128ba48f39633  gcc/testsuite/gfortran.dg/bound_simplification_1.f90
*************** c3c402867cc595cbe2e51291eb207948  gcc/te
*** 100509,100514 ****
--- 112879,112885 ----
  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
+ d0aa29bccee67fc6ecfd7b9482ffc253  gcc/testsuite/gfortran.dg/bounds_check_28.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
*************** f145202f2e2e4fd5f13808086de4de58  gcc/te
*** 100540,100546 ****
  8d10f29783ca2636d630f6e16779efcd  gcc/testsuite/gfortran.dg/bounds_check_strlen_4.f90
  1aa5b9216e33e8838fd724d3e1bed124  gcc/testsuite/gfortran.dg/bounds_check_strlen_5.f90
  16f160adab405d2865524fb26248a5e9  gcc/testsuite/gfortran.dg/bounds_check_strlen_6.f90
! 7b8c22c7676300c564acfd64ee119862  gcc/testsuite/gfortran.dg/bounds_check_strlen_7.f90
  c30e78fbf3112b007eba97e774e774dc  gcc/testsuite/gfortran.dg/bounds_check_strlen_8.f90
  34236eab75fb8d629eaf4c8cc9b07287  gcc/testsuite/gfortran.dg/bounds_check_strlen_9.f90
  48a0a6419e6dd7d01cfee97271120f06  gcc/testsuite/gfortran.dg/bounds_temporaries_1.f90
--- 112911,112917 ----
  8d10f29783ca2636d630f6e16779efcd  gcc/testsuite/gfortran.dg/bounds_check_strlen_4.f90
  1aa5b9216e33e8838fd724d3e1bed124  gcc/testsuite/gfortran.dg/bounds_check_strlen_5.f90
  16f160adab405d2865524fb26248a5e9  gcc/testsuite/gfortran.dg/bounds_check_strlen_6.f90
! 64634c173d61ba7d45fc278d33ad6ea1  gcc/testsuite/gfortran.dg/bounds_check_strlen_7.f90
  c30e78fbf3112b007eba97e774e774dc  gcc/testsuite/gfortran.dg/bounds_check_strlen_8.f90
  34236eab75fb8d629eaf4c8cc9b07287  gcc/testsuite/gfortran.dg/bounds_check_strlen_9.f90
  48a0a6419e6dd7d01cfee97271120f06  gcc/testsuite/gfortran.dg/bounds_temporaries_1.f90
*************** eeb705b4f4aa28e01f56aacb185b94fc  gcc/te
*** 100581,100587 ****
  065d7ce5f8cd35fce5aa00bbb508d25c  gcc/testsuite/gfortran.dg/c-interop/allocatable-optional-pointer.f90
  7efc95be5c5106a9bf6039c07064a0e9  gcc/testsuite/gfortran.dg/c-interop/allocate-c.c
  9e8db9a70f750726f64c33febc6a16f7  gcc/testsuite/gfortran.dg/c-interop/allocate-errors-c.c
! 5bea52eb5a1ddcb30cd03891814af5be  gcc/testsuite/gfortran.dg/c-interop/allocate-errors.f90
  05f89be57bd3eb0d2ff1bd4941e2e60c  gcc/testsuite/gfortran.dg/c-interop/allocate.f90
  e5f92ae76ded5019bcd5b9eb19704367  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-1.f90
  79616ca59904b274ec0e478fc09c195e  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-2.f90
--- 112952,112958 ----
  065d7ce5f8cd35fce5aa00bbb508d25c  gcc/testsuite/gfortran.dg/c-interop/allocatable-optional-pointer.f90
  7efc95be5c5106a9bf6039c07064a0e9  gcc/testsuite/gfortran.dg/c-interop/allocate-c.c
  9e8db9a70f750726f64c33febc6a16f7  gcc/testsuite/gfortran.dg/c-interop/allocate-errors-c.c
! 6e4bb31745a42258e5143a67e6e5f8e7  gcc/testsuite/gfortran.dg/c-interop/allocate-errors.f90
  05f89be57bd3eb0d2ff1bd4941e2e60c  gcc/testsuite/gfortran.dg/c-interop/allocate.f90
  e5f92ae76ded5019bcd5b9eb19704367  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-1.f90
  79616ca59904b274ec0e478fc09c195e  gcc/testsuite/gfortran.dg/c-interop/argument-association-assumed-rank-2.f90
*************** fac1e0eef372f71d706c30f1311cf959  gcc/te
*** 100592,100598 ****
  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
--- 112963,112969 ----
  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
! 433869ff2ac3cd2870ca00cdc5679566  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
*************** e7845079fed9556e24e81cbef23553a5  gcc/te
*** 100652,100658 ****
  1f13fc559e846572e031858b1cf1b37b  gcc/testsuite/gfortran.dg/c-interop/dump-descriptors.h
  89d82b92bc4c2251ff33ce0597515857  gcc/testsuite/gfortran.dg/c-interop/establish-c.c
  4c0aab859957f43e833ebf072d19a909  gcc/testsuite/gfortran.dg/c-interop/establish-errors-c.c
! 695d3501330320fd2fcaf7ceb0c3064e  gcc/testsuite/gfortran.dg/c-interop/establish-errors.f90
  52c864e4ff51fdd927a77b9b65d08bd6  gcc/testsuite/gfortran.dg/c-interop/establish.f90
  2bf373e6fe157a7d2e0e61a18c448c93  gcc/testsuite/gfortran.dg/c-interop/explicit-interface.f90
  bac3970412e6e8c295c91c7badfc1ed0  gcc/testsuite/gfortran.dg/c-interop/fc-descriptor-1-c.c
--- 113023,113029 ----
  1f13fc559e846572e031858b1cf1b37b  gcc/testsuite/gfortran.dg/c-interop/dump-descriptors.h
  89d82b92bc4c2251ff33ce0597515857  gcc/testsuite/gfortran.dg/c-interop/establish-c.c
  4c0aab859957f43e833ebf072d19a909  gcc/testsuite/gfortran.dg/c-interop/establish-errors-c.c
! cbb7e511bd99c2568db2ab1c74dfb8f2  gcc/testsuite/gfortran.dg/c-interop/establish-errors.f90
  52c864e4ff51fdd927a77b9b65d08bd6  gcc/testsuite/gfortran.dg/c-interop/establish.f90
  2bf373e6fe157a7d2e0e61a18c448c93  gcc/testsuite/gfortran.dg/c-interop/explicit-interface.f90
  bac3970412e6e8c295c91c7badfc1ed0  gcc/testsuite/gfortran.dg/c-interop/fc-descriptor-1-c.c
*************** fc500f0e1e015dc2b1ccf8395cd8f271  gcc/te
*** 100711,100716 ****
--- 113082,113089 ----
  2b3338eacfff7cc2972bf1ab2bbbc35d  gcc/testsuite/gfortran.dg/c-interop/pr103390-7.f90
  bd423adafd725c2228e295920c0db510  gcc/testsuite/gfortran.dg/c-interop/pr103390-8.f90
  7a18ab512bbfa99610eab9a334ac7e3c  gcc/testsuite/gfortran.dg/c-interop/pr103390-9.f90
+ b683abf61ea06d7efc3e4062b47b0cc5  gcc/testsuite/gfortran.dg/c-interop/pr113338-c.c
+ ed87e2fec2f9d4885b1d841367f7bdde  gcc/testsuite/gfortran.dg/c-interop/pr113338.f90
  018d95c070c83cb9218fee64ae6c8a08  gcc/testsuite/gfortran.dg/c-interop/rank-class.f90
  5d109d67e9b883cd251cc70baa52140c  gcc/testsuite/gfortran.dg/c-interop/rank.f90
  62fad9ceb8076e8ceaf3276465cad430  gcc/testsuite/gfortran.dg/c-interop/removed-restrictions-1.f90
*************** dbe58bcdb66f90cfc9e3358597d71eea  gcc/te
*** 100729,100742 ****
  e04ce607324dd117cb79909a3a55e52d  gcc/testsuite/gfortran.dg/c-interop/section-4-c.c
  43953b073cf2e3502ab02a01a0db803b  gcc/testsuite/gfortran.dg/c-interop/section-4.f90
  6299ca938c512577be5d346f58775549  gcc/testsuite/gfortran.dg/c-interop/section-errors-c.c
! 6a61d474d1ba1dc1b9e56f4b6925dca0  gcc/testsuite/gfortran.dg/c-interop/section-errors.f90
  76b562ab2ca8b93fcbba75da4b5b6fbb  gcc/testsuite/gfortran.dg/c-interop/select-c.c
  161cf498294177a2ca4734acb4bb7620  gcc/testsuite/gfortran.dg/c-interop/select-errors-c.c
! 1b95794132e18ea7f418635a1ebeb359  gcc/testsuite/gfortran.dg/c-interop/select-errors.f90
  63defbc1d580bc1619132930b999e4fa  gcc/testsuite/gfortran.dg/c-interop/select.f90
  b938f031add6fdf905ba591f3d774d5f  gcc/testsuite/gfortran.dg/c-interop/setpointer-c.c
  7bdf3282cdd9f30d40bf7d3f590f1a6b  gcc/testsuite/gfortran.dg/c-interop/setpointer-errors-c.c
! 6e5582f7ee0b714e41e4b21e170c6bf0  gcc/testsuite/gfortran.dg/c-interop/setpointer-errors.f90
  52ff1bd7b3517447505781a7322f7dce  gcc/testsuite/gfortran.dg/c-interop/setpointer.f90
  f8bf2b092e452913039c546a00e42a70  gcc/testsuite/gfortran.dg/c-interop/shape-bindc.f90
  5ed6955a56207ea64ca8b13512f4ddcd  gcc/testsuite/gfortran.dg/c-interop/shape-poly.f90
--- 113102,113115 ----
  e04ce607324dd117cb79909a3a55e52d  gcc/testsuite/gfortran.dg/c-interop/section-4-c.c
  43953b073cf2e3502ab02a01a0db803b  gcc/testsuite/gfortran.dg/c-interop/section-4.f90
  6299ca938c512577be5d346f58775549  gcc/testsuite/gfortran.dg/c-interop/section-errors-c.c
! 8512ca11dc9d4e5e9e93c135fc2c91a1  gcc/testsuite/gfortran.dg/c-interop/section-errors.f90
  76b562ab2ca8b93fcbba75da4b5b6fbb  gcc/testsuite/gfortran.dg/c-interop/select-c.c
  161cf498294177a2ca4734acb4bb7620  gcc/testsuite/gfortran.dg/c-interop/select-errors-c.c
! 72d64d2a2f6c91bc357c5b668f662684  gcc/testsuite/gfortran.dg/c-interop/select-errors.f90
  63defbc1d580bc1619132930b999e4fa  gcc/testsuite/gfortran.dg/c-interop/select.f90
  b938f031add6fdf905ba591f3d774d5f  gcc/testsuite/gfortran.dg/c-interop/setpointer-c.c
  7bdf3282cdd9f30d40bf7d3f590f1a6b  gcc/testsuite/gfortran.dg/c-interop/setpointer-errors-c.c
! 9b9993410f4cf9b5328963b0b13a9347  gcc/testsuite/gfortran.dg/c-interop/setpointer-errors.f90
  52ff1bd7b3517447505781a7322f7dce  gcc/testsuite/gfortran.dg/c-interop/setpointer.f90
  f8bf2b092e452913039c546a00e42a70  gcc/testsuite/gfortran.dg/c-interop/shape-bindc.f90
  5ed6955a56207ea64ca8b13512f4ddcd  gcc/testsuite/gfortran.dg/c-interop/shape-poly.f90
*************** f1171b22010cb5ffdc5f3d7a3370bdcf  gcc/te
*** 100791,100803 ****
  29c532057814482ac15d86376b90909b  gcc/testsuite/gfortran.dg/c_f_pointer_logical.f03
  714b95efbc27be7c9d3a1476268dd317  gcc/testsuite/gfortran.dg/c_f_pointer_logical_driver.c
  3f1850aff3d8555d7f9a5c35024e4640  gcc/testsuite/gfortran.dg/c_f_pointer_shape_test.f90
! 315077a613b8102e36f21e22539cc788  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_2.f03
! 0137a0eb0d17c670894c279c5bdc08dd  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_2_driver.c
  79ad65a07c5fba41141d69b8eb8101eb  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_3.f03
! 7157afa87951c0b05ed794a1539bfd38  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_4.f03
! 0137a0eb0d17c670894c279c5bdc08dd  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_4_driver.c
  6292043fad207297ab75ed0d1f1422be  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_5.f90
  e63e1cb2a2a983de3e177c8704129d32  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_6.f90
  0aa6e86dc29b145c26a1e0c9347d3b44  gcc/testsuite/gfortran.dg/c_f_pointer_tests.f90
  bcf9cbe8f6dcade38e751db85acbf9b4  gcc/testsuite/gfortran.dg/c_f_pointer_tests_2.f03
  3fe88d45ed4469bd39dc91bac863922d  gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90
--- 113164,113178 ----
  29c532057814482ac15d86376b90909b  gcc/testsuite/gfortran.dg/c_f_pointer_logical.f03
  714b95efbc27be7c9d3a1476268dd317  gcc/testsuite/gfortran.dg/c_f_pointer_logical_driver.c
  3f1850aff3d8555d7f9a5c35024e4640  gcc/testsuite/gfortran.dg/c_f_pointer_shape_test.f90
! dd6d080e21728a151261b9ccacc3479d  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_2.f03
  79ad65a07c5fba41141d69b8eb8101eb  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_3.f03
! 9f42b19f33c52ed6bc1590e9c84ca76b  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_4.f03
  6292043fad207297ab75ed0d1f1422be  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_5.f90
  e63e1cb2a2a983de3e177c8704129d32  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_6.f90
+ ac3ba9c29c592109c6d26f54e29002f9  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_7.f90
+ 36833d4c893f9e6c706f74c2124bb31b  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_8.f90
+ abb5d14ac0e594bde9b4c3e68d5a85a1  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_9.f90
+ dace97a128875a29cc4162e799166d4b  gcc/testsuite/gfortran.dg/c_f_pointer_shape_tests_driver.c
  0aa6e86dc29b145c26a1e0c9347d3b44  gcc/testsuite/gfortran.dg/c_f_pointer_tests.f90
  bcf9cbe8f6dcade38e751db85acbf9b4  gcc/testsuite/gfortran.dg/c_f_pointer_tests_2.f03
  3fe88d45ed4469bd39dc91bac863922d  gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90
*************** b09906ea02ce8406cdd3e27bb94de042  gcc/te
*** 100809,100814 ****
--- 113184,113190 ----
  f82e9b9c0fd2496c70490c91bc661d8b  gcc/testsuite/gfortran.dg/c_f_pointer_tests_9.f90
  d4987bd92136fbe1dc0dbed4d878bc35  gcc/testsuite/gfortran.dg/c_f_tests_driver.c
  6225c3ed3e9774c1780dabafdb403bbb  gcc/testsuite/gfortran.dg/c_funloc_tests.f03
+ 50477914f8343ce12f792f525c61b042  gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90
  e3d7c198fc7009b223f98b2e4884b462  gcc/testsuite/gfortran.dg/c_funloc_tests_2.f03
  98e3aa16d995b23cb7838243c47d7edf  gcc/testsuite/gfortran.dg/c_funloc_tests_3.f03
  4e9d85f4aad841105271457e917b0066  gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c
*************** e3d7c198fc7009b223f98b2e4884b462  gcc/te
*** 100816,100823 ****
  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
  3fc97d796867c00b63bcdccb04232885  gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
  4b6d52265411683cdb8530282a8dff39  gcc/testsuite/gfortran.dg/c_kind_int128_test1.f03
--- 113192,113200 ----
  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
! c584b712c310fcef8e2418ef0145cf8a  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
+ 885a61e43f249cb0957e72eed77a6de3  gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90
  f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
  3fc97d796867c00b63bcdccb04232885  gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
  4b6d52265411683cdb8530282a8dff39  gcc/testsuite/gfortran.dg/c_kind_int128_test1.f03
*************** e4d7ef475af82a5dc1b05dd73885bacd  gcc/te
*** 100935,100941 ****
  6a998347f3136efdc8133a58d643c28a  gcc/testsuite/gfortran.dg/char_length_21.f90
  48366607fb703befb92c636b2a39cf86  gcc/testsuite/gfortran.dg/char_length_22.f90
  42c9f80560aaea2dbcfb65dba526220a  gcc/testsuite/gfortran.dg/char_length_23.f90
! b2e1d2ed1aab51063eaf609837a841c8  gcc/testsuite/gfortran.dg/char_length_3.f90
  42288e3a6a5e65a93ff263a2699523f8  gcc/testsuite/gfortran.dg/char_length_4.f90
  aaac5efdc99114f02621a434cad13c72  gcc/testsuite/gfortran.dg/char_length_5.f90
  c7b02f7179910772238aef0d2a8c6a01  gcc/testsuite/gfortran.dg/char_length_6.f90
--- 113312,113318 ----
  6a998347f3136efdc8133a58d643c28a  gcc/testsuite/gfortran.dg/char_length_21.f90
  48366607fb703befb92c636b2a39cf86  gcc/testsuite/gfortran.dg/char_length_22.f90
  42c9f80560aaea2dbcfb65dba526220a  gcc/testsuite/gfortran.dg/char_length_23.f90
! 2d1d01b6e0f8c776d23c45abb89d9ea2  gcc/testsuite/gfortran.dg/char_length_3.f90
  42288e3a6a5e65a93ff263a2699523f8  gcc/testsuite/gfortran.dg/char_length_4.f90
  aaac5efdc99114f02621a434cad13c72  gcc/testsuite/gfortran.dg/char_length_5.f90
  c7b02f7179910772238aef0d2a8c6a01  gcc/testsuite/gfortran.dg/char_length_6.f90
*************** bd5f87ec53f49e6a8981f467e5bb9e41  gcc/te
*** 101144,101149 ****
--- 113521,113527 ----
  d7de9573af1b1b97fe9d86450aa3a0af  gcc/testsuite/gfortran.dg/class_array_21.f03
  91de14bd0e1e34515a91a4245b3da873  gcc/testsuite/gfortran.dg/class_array_22.f03
  ead9e764a198bfb098ed6bc432712080  gcc/testsuite/gfortran.dg/class_array_23.f03
+ 9840782c78dd0706c5345e75fd6e0689  gcc/testsuite/gfortran.dg/class_array_24.f90
  b5fd99d851b46b95300feac81c24ebf1  gcc/testsuite/gfortran.dg/class_array_3.f03
  38a17a95f960b99768a15d9116701526  gcc/testsuite/gfortran.dg/class_array_4.f03
  b4dd99bc2d3d2741e6f3769df3b8d9e0  gcc/testsuite/gfortran.dg/class_array_5.f03
*************** dbc20d52e3c86639db916ad3c6392de8  gcc/te
*** 101168,101173 ****
--- 113546,113552 ----
  784981c65487b4a0183cad86f46120aa  gcc/testsuite/gfortran.dg/class_dummy_7.f90
  0cc6ac2d4005a9c12c43562be1747080  gcc/testsuite/gfortran.dg/class_dummy_8.f90
  2bfebae5013cc0462982590edf427c4f  gcc/testsuite/gfortran.dg/class_dummy_9.f90
+ 35e23120f2117bdd41eea9932266635b  gcc/testsuite/gfortran.dg/class_elemental_1.f90
  2f2b6b89c03eb0121abcd60df79d27ee  gcc/testsuite/gfortran.dg/class_is_1.f90
  84f9ccdf2ee8c8cfe397a0c82a7730af  gcc/testsuite/gfortran.dg/class_nameclash.f90
  9602d01ce3a47f3e2255aba5f234d1ae  gcc/testsuite/gfortran.dg/class_optional_1.f90
*************** ceda0022b0324d13515320cbc5635d79  gcc/te
*** 101196,101202 ****
  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
--- 113575,113581 ----
  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
! 1db627d54251a2d0cd802b16cbdeb948  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
*************** c3ff223c334c03e16db45ce26e2eea4a  gcc/te
*** 101207,101225 ****
  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
  a66257c48ed0bc4c478299b74ba345d5  gcc/testsuite/gfortran.dg/coarray/coindexed_6.f90
  15ab41c852cd60d830935f5537d52e99  gcc/testsuite/gfortran.dg/coarray/coindexed_7.f90
  f3a5dbd5b18b49f30a47e9c6ddf0ef10  gcc/testsuite/gfortran.dg/coarray/collectives_1.f90
--- 113586,113606 ----
  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
! 70b6826ced0aac4e971ce971d39be3d3  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! ad7091b1dd04bc290e97427ef774cf08  gcc/testsuite/gfortran.dg/coarray/caf.exp
  a1093e682d1d78384f50968f6210e05f  gcc/testsuite/gfortran.dg/coarray/class_1.f90
! efbd93f7ffe8fbf5291dda937b7e6f15  gcc/testsuite/gfortran.dg/coarray/co_reduce_string.f90
! 88d3841a11fa3b39443f1e16cb47b9ec  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
  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
! 7cf72b85281df8e111376ec8e9c2dd6f  gcc/testsuite/gfortran.dg/coarray/coindexed_1.f90
  1f59f392da595105e79dd8ba8c180ec9  gcc/testsuite/gfortran.dg/coarray/coindexed_2.f90
! 60a649f0fcf9f9348545e8145c3fffcb  gcc/testsuite/gfortran.dg/coarray/coindexed_3.f08
  43d788d504cdfa97e23c07739b149766  gcc/testsuite/gfortran.dg/coarray/coindexed_4.f08
+ 5933c98717d2d15bfea6d39b14625d6c  gcc/testsuite/gfortran.dg/coarray/coindexed_5.f90
  a66257c48ed0bc4c478299b74ba345d5  gcc/testsuite/gfortran.dg/coarray/coindexed_6.f90
  15ab41c852cd60d830935f5537d52e99  gcc/testsuite/gfortran.dg/coarray/coindexed_7.f90
  f3a5dbd5b18b49f30a47e9c6ddf0ef10  gcc/testsuite/gfortran.dg/coarray/collectives_1.f90
*************** f4aec2f0ed199113d979b69a74d8afa5  gcc/te
*** 101229,101246 ****
  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
! 69e67a47c4572bb8954e710fb63e1241  gcc/testsuite/gfortran.dg/coarray/event_4.f08
  d5151e59e2e1e14dc716281be617a2b7  gcc/testsuite/gfortran.dg/coarray/fail_image_1.f08
  f2e0d8eab800c2440470c47e27dbc818  gcc/testsuite/gfortran.dg/coarray/fail_image_2.f08
! 550ba8c1ff1a87edf22c84bbaf1b23c8  gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08
! 46fd85e4e0f66017776125b64c85dcae  gcc/testsuite/gfortran.dg/coarray/failed_images_2.f08
  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
--- 113610,113630 ----
  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
+ e99aefb326449f983d5dd1d853e8c2cf  gcc/testsuite/gfortran.dg/coarray/deallocate_sync.f90
  61d8ff5ed498aef60c19139e15e861d1  gcc/testsuite/gfortran.dg/coarray/dummy_1.f90
  a63070b05e27b7e6fd60da3efbd0dcad  gcc/testsuite/gfortran.dg/coarray/dummy_2.f90
! beb9cfc34928bcf678412adc977ccc22  gcc/testsuite/gfortran.dg/coarray/dummy_3.f90
! 528565bf33819e2fd993beb183ad8ac5  gcc/testsuite/gfortran.dg/coarray/event_1.f90
  5c76c994fc104238808f24409769c109  gcc/testsuite/gfortran.dg/coarray/event_2.f90
! 4714bb54d0d588a1c74041e91d5eb1e9  gcc/testsuite/gfortran.dg/coarray/event_3.f08
! 2167ab2b759730e2208b66846c9e8162  gcc/testsuite/gfortran.dg/coarray/event_4.f08
  d5151e59e2e1e14dc716281be617a2b7  gcc/testsuite/gfortran.dg/coarray/fail_image_1.f08
  f2e0d8eab800c2440470c47e27dbc818  gcc/testsuite/gfortran.dg/coarray/fail_image_2.f08
! f640ccf3bcb851ae00c2af7ff4249314  gcc/testsuite/gfortran.dg/coarray/failed_images_1.f08
! e8cbe43e934a13234b4f3cc1ba408856  gcc/testsuite/gfortran.dg/coarray/failed_images_2.f08
! 700b4ae6eb731834c7556eefdd686a6c  gcc/testsuite/gfortran.dg/coarray/form_team_1.f90
  88d10faf7f4df40c6602b0e2d7316de4  gcc/testsuite/gfortran.dg/coarray/get_array.f90
+ 9f0caaf4a22d534f9336939b49630c8e  gcc/testsuite/gfortran.dg/coarray/get_team_1.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/te
*** 101248,101263 ****
  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
! 68c7f39bcc384d6a12c665b99acc0286  gcc/testsuite/gfortran.dg/coarray/image_status_1.f08
! 5b9d9e29d54188b581dc483d442cd2a3  gcc/testsuite/gfortran.dg/coarray/image_status_2.f08
  39fd5d0aa5cb6030accb3b9880487667  gcc/testsuite/gfortran.dg/coarray/lib_realloc_1.f90
! 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
--- 113632,113648 ----
  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
! 0e6a1e4e8399885b27ed0fa94a042e72  gcc/testsuite/gfortran.dg/coarray/image_status_1.f08
! 42bcc5933156d55c563ac2f69826f293  gcc/testsuite/gfortran.dg/coarray/image_status_2.f08
  39fd5d0aa5cb6030accb3b9880487667  gcc/testsuite/gfortran.dg/coarray/lib_realloc_1.f90
! abcf811b80d48e38511f05c9f9c35ff6  gcc/testsuite/gfortran.dg/coarray/lock_1.f90
! 9a1264ff54bf211495a7b8076e0a5d7c  gcc/testsuite/gfortran.dg/coarray/lock_2.f90
! efb29d736acd0856101d74c653c44839  gcc/testsuite/gfortran.dg/coarray/lock_3.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
! 5e656806880d0fe976c13558f95dda86  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
*************** febcb2298d9879a0df44772e249cb87a  gcc/te
*** 101270,101276 ****
  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
--- 113655,113661 ----
  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
! a6c52ba28eaadbfd14d3c204ae01be4d  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/te
*** 101279,101299 ****
  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
  ac59a53542ba1c45e3d363202502b8d7  gcc/testsuite/gfortran.dg/coarray/this_image_2.f90
  006a73081fcf3549f75666795a40153d  gcc/testsuite/gfortran.dg/coarray_1.f90
! 556050f34b46dd462db787077cccaf59  gcc/testsuite/gfortran.dg/coarray_10.f90
  67aaadc572d2c00aa2d3389f87f0bd5d  gcc/testsuite/gfortran.dg/coarray_11.f90
  7e3b8c86ae974b8e72515cbd7d6243d8  gcc/testsuite/gfortran.dg/coarray_12.f90
  153a17a1d1205d1ac64bf6bbb965d841  gcc/testsuite/gfortran.dg/coarray_13.f90
! e08486b636a2e274b143c8af55f6777e  gcc/testsuite/gfortran.dg/coarray_14.f90
  3f13567f9ad391e0016c04e83d62970f  gcc/testsuite/gfortran.dg/coarray_15.f90
  c6a0c1d2cb2a007db6f999e0e1fccf1f  gcc/testsuite/gfortran.dg/coarray_16.f90
  f3811361487b4309fbf46c6f31aefaa2  gcc/testsuite/gfortran.dg/coarray_17.f90
--- 113664,113685 ----
  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
! 3f2217914d71b86268be06d9aa2bba67  gcc/testsuite/gfortran.dg/coarray/stopped_images_1.f08
! bf7a2fa1f93b2aeb6923c232104f3b0d  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
! 1c2dc953c0fe2494a8d2d4ecaa8aac11  gcc/testsuite/gfortran.dg/coarray/sync_1.f90
! 01e1eb3862a8d45db4047c66d5b42fcd  gcc/testsuite/gfortran.dg/coarray/sync_3.f90
! 88f2efa9940621c9d125b2ea4290fe80  gcc/testsuite/gfortran.dg/coarray/sync_team.f90
  5822c2d89d9063829c412517b5498373  gcc/testsuite/gfortran.dg/coarray/this_image_1.f90
  ac59a53542ba1c45e3d363202502b8d7  gcc/testsuite/gfortran.dg/coarray/this_image_2.f90
  006a73081fcf3549f75666795a40153d  gcc/testsuite/gfortran.dg/coarray_1.f90
! 9efb10d8493ba550191277cb285305a9  gcc/testsuite/gfortran.dg/coarray_10.f90
  67aaadc572d2c00aa2d3389f87f0bd5d  gcc/testsuite/gfortran.dg/coarray_11.f90
  7e3b8c86ae974b8e72515cbd7d6243d8  gcc/testsuite/gfortran.dg/coarray_12.f90
  153a17a1d1205d1ac64bf6bbb965d841  gcc/testsuite/gfortran.dg/coarray_13.f90
! 863fbb85aa43fe72968b90a6746cc6e8  gcc/testsuite/gfortran.dg/coarray_14.f90
  3f13567f9ad391e0016c04e83d62970f  gcc/testsuite/gfortran.dg/coarray_15.f90
  c6a0c1d2cb2a007db6f999e0e1fccf1f  gcc/testsuite/gfortran.dg/coarray_16.f90
  f3811361487b4309fbf46c6f31aefaa2  gcc/testsuite/gfortran.dg/coarray_17.f90
*************** ae84ff8684b83df37cd04c93355bb779  gcc/te
*** 101333,101339 ****
  bdfb211ff859c6346ab45b3805256ba0  gcc/testsuite/gfortran.dg/coarray_46.f90
  0196f422e481e5ac5cb151f859805e29  gcc/testsuite/gfortran.dg/coarray_47.f90
  71dbc67a835765d79b82368a016a86e2  gcc/testsuite/gfortran.dg/coarray_48.f90
! c158873a9363ff1c59e6f85586024f23  gcc/testsuite/gfortran.dg/coarray_49.f90
  ef172e1d19584d7e55648b555dbf8fa3  gcc/testsuite/gfortran.dg/coarray_5.f90
  4d55736255408e9194fe072b21934cf9  gcc/testsuite/gfortran.dg/coarray_50.f90
  337935b709715398df39ee0eeaaec67b  gcc/testsuite/gfortran.dg/coarray_6.f90
--- 113719,113725 ----
  bdfb211ff859c6346ab45b3805256ba0  gcc/testsuite/gfortran.dg/coarray_46.f90
  0196f422e481e5ac5cb151f859805e29  gcc/testsuite/gfortran.dg/coarray_47.f90
  71dbc67a835765d79b82368a016a86e2  gcc/testsuite/gfortran.dg/coarray_48.f90
! d738202832446496c200e0608392b6b9  gcc/testsuite/gfortran.dg/coarray_49.f90
  ef172e1d19584d7e55648b555dbf8fa3  gcc/testsuite/gfortran.dg/coarray_5.f90
  4d55736255408e9194fe072b21934cf9  gcc/testsuite/gfortran.dg/coarray_50.f90
  337935b709715398df39ee0eeaaec67b  gcc/testsuite/gfortran.dg/coarray_6.f90
*************** f3b8d83af012a8804b15f5016664e973  gcc/te
*** 101366,101383 ****
  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
  6de791f875807c75d853f11a61b02a94  gcc/testsuite/gfortran.dg/coarray_collectives_1.f90
  f786196105e5eab366818d3158fe2542  gcc/testsuite/gfortran.dg/coarray_collectives_10.f90
  0d35dfac2bd81fdbdc59b60fb76857f2  gcc/testsuite/gfortran.dg/coarray_collectives_11.f90
! f875f58ef0e5f0068e265edfc2e22a74  gcc/testsuite/gfortran.dg/coarray_collectives_12.f90
  f786196105e5eab366818d3158fe2542  gcc/testsuite/gfortran.dg/coarray_collectives_13.f90
  40a35e69ccae42ac62c1930fea293795  gcc/testsuite/gfortran.dg/coarray_collectives_14.f90
  65556528ee2d4495d0b0289380c93113  gcc/testsuite/gfortran.dg/coarray_collectives_15.f90
! 92024a7873a758e1cdad6bfb5d88b469  gcc/testsuite/gfortran.dg/coarray_collectives_16.f90
  e17c609e4211d75cb1a9c28a7cba2d7d  gcc/testsuite/gfortran.dg/coarray_collectives_17.f90
  4f5eb2d221195014dcc5ae60b433d454  gcc/testsuite/gfortran.dg/coarray_collectives_18.f90
  6a77158845ff40d594f51460f18a7035  gcc/testsuite/gfortran.dg/coarray_collectives_2.f90
--- 113752,113769 ----
  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
! 93a1d1dba7982219d9830aa797a2ebce  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
  6de791f875807c75d853f11a61b02a94  gcc/testsuite/gfortran.dg/coarray_collectives_1.f90
  f786196105e5eab366818d3158fe2542  gcc/testsuite/gfortran.dg/coarray_collectives_10.f90
  0d35dfac2bd81fdbdc59b60fb76857f2  gcc/testsuite/gfortran.dg/coarray_collectives_11.f90
! d45c4f84cb4bb33f1ba7d7c83e891465  gcc/testsuite/gfortran.dg/coarray_collectives_12.f90
  f786196105e5eab366818d3158fe2542  gcc/testsuite/gfortran.dg/coarray_collectives_13.f90
  40a35e69ccae42ac62c1930fea293795  gcc/testsuite/gfortran.dg/coarray_collectives_14.f90
  65556528ee2d4495d0b0289380c93113  gcc/testsuite/gfortran.dg/coarray_collectives_15.f90
! fae5303cac24da67573f82ad585a134b  gcc/testsuite/gfortran.dg/coarray_collectives_16.f90
  e17c609e4211d75cb1a9c28a7cba2d7d  gcc/testsuite/gfortran.dg/coarray_collectives_17.f90
  4f5eb2d221195014dcc5ae60b433d454  gcc/testsuite/gfortran.dg/coarray_collectives_18.f90
  6a77158845ff40d594f51460f18a7035  gcc/testsuite/gfortran.dg/coarray_collectives_2.f90
*************** d8b0925104e27edfd7554327aec7e656  gcc/te
*** 101388,101393 ****
--- 113774,113781 ----
  3868ecdad997c64216510129983de4eb  gcc/testsuite/gfortran.dg/coarray_collectives_8.f90
  c4be70fad6f83b1cee9a4a4829c74d53  gcc/testsuite/gfortran.dg/coarray_collectives_9.f90
  967c97a8edd55b3e24d9f53bacf51ab2  gcc/testsuite/gfortran.dg/coarray_critical_1.f90
+ c9f5d0b619e02c01e5a95b9a39ad015d  gcc/testsuite/gfortran.dg/coarray_critical_2.f90
+ f45302450737eca2b18efb44aab5205e  gcc/testsuite/gfortran.dg/coarray_critical_3.f90
  80a6683cc6d6fe77e4c0a0173c349d52  gcc/testsuite/gfortran.dg/coarray_data_1.f90
  a6268ae9ec2d8edede67d81bcbcf16f1  gcc/testsuite/gfortran.dg/coarray_data_2.f90
  9548b18ea57c3895468bd270375183d8  gcc/testsuite/gfortran.dg/coarray_dependency_1.f90
*************** e205d4e5e4d4760bb720f1a9ede26ffe  gcc/te
*** 101403,101419 ****
  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
! c132dbfa1738d526e8055c025c1641e0  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
! 074eddb0df81baa8fa98afe087fec459  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
  23b8603e7d1d4aaf27f154ffeffe5241  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
--- 113791,113807 ----
  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
! e94286cdb22c2e10ad7c89fd01bc6ec2  gcc/testsuite/gfortran.dg/coarray_lib_this_image_1.f90
! e3f2e306122ba2b82d99fcdcf38a388f  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
! 83bf59c0d8e4ecf8510b94d23cfb1069  gcc/testsuite/gfortran.dg/coarray_lock_3.f90
! 5b662516b0846930a9822c5d11db3acb  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
! a61646c8d2a54bc1972126b81acf1cef  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
  23b8603e7d1d4aaf27f154ffeffe5241  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
*************** c15a01f85f0059696c3135040a4f2fc3  gcc/te
*** 101435,101443 ****
  7e0ae006a51c482281b3ce9e41151630  gcc/testsuite/gfortran.dg/coarray_stopped_images_1.f08
  02137ab63da8c69fd9162c7b4a473d96  gcc/testsuite/gfortran.dg/coarray_subobject_1.f90
  f167ac47517d62f94f60b1824d6a54d8  gcc/testsuite/gfortran.dg/coarray_sync.f90
! 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
--- 113823,113832 ----
  7e0ae006a51c482281b3ce9e41151630  gcc/testsuite/gfortran.dg/coarray_stopped_images_1.f08
  02137ab63da8c69fd9162c7b4a473d96  gcc/testsuite/gfortran.dg/coarray_subobject_1.f90
  f167ac47517d62f94f60b1824d6a54d8  gcc/testsuite/gfortran.dg/coarray_sync.f90
! 86eadbc5aea847c9a8c4fa768546a294  gcc/testsuite/gfortran.dg/coarray_sync_memory.f90
! e2ef3d6acd9120c00428ae7a7d8a81e6  gcc/testsuite/gfortran.dg/coarray_this_image_1.f90
! 537a8817919e8f685f96377c5c47622f  gcc/testsuite/gfortran.dg/coarray_this_image_2.f90
! 470c4506166bcdcf81004a342d391722  gcc/testsuite/gfortran.dg/coarray_this_image_3.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
*************** af48ab22b7ab737b6bda79506c549444  gcc/te
*** 101462,101470 ****
  46fc0e335342f8f0944e95adf5b0fdeb  gcc/testsuite/gfortran.dg/common_2.f90
  12fec303851959d537303ad2bba9aa02  gcc/testsuite/gfortran.dg/common_20.f90
  19d12ed2a13126b3a920f744ce92b00c  gcc/testsuite/gfortran.dg/common_21.f90
! f1da6751bbd1a6186b7f03b7f7e77113  gcc/testsuite/gfortran.dg/common_22.f90
  06e2065883402fa9fd2aeb3912ca2fb7  gcc/testsuite/gfortran.dg/common_23.f90
! d3d62d1603bee1c8f8a03953e6eebba0  gcc/testsuite/gfortran.dg/common_24.f
  d5539b20ee7c35bfc0fcb236052a68ea  gcc/testsuite/gfortran.dg/common_25.f90
  70a95b679d7df7dca534b69660b7f48b  gcc/testsuite/gfortran.dg/common_26.f90
  d92cf739756be07096c110006ed91771  gcc/testsuite/gfortran.dg/common_27.f90
--- 113851,113859 ----
  46fc0e335342f8f0944e95adf5b0fdeb  gcc/testsuite/gfortran.dg/common_2.f90
  12fec303851959d537303ad2bba9aa02  gcc/testsuite/gfortran.dg/common_20.f90
  19d12ed2a13126b3a920f744ce92b00c  gcc/testsuite/gfortran.dg/common_21.f90
! 408f0e06e51fdbe1f4f7ef46fd670434  gcc/testsuite/gfortran.dg/common_22.f90
  06e2065883402fa9fd2aeb3912ca2fb7  gcc/testsuite/gfortran.dg/common_23.f90
! 1191cffb296fbca0e679154d92f70403  gcc/testsuite/gfortran.dg/common_24.f
  d5539b20ee7c35bfc0fcb236052a68ea  gcc/testsuite/gfortran.dg/common_25.f90
  70a95b679d7df7dca534b69660b7f48b  gcc/testsuite/gfortran.dg/common_26.f90
  d92cf739756be07096c110006ed91771  gcc/testsuite/gfortran.dg/common_27.f90
*************** d638b45296c13f0789f6ce82d511bb31  gcc/te
*** 101504,101509 ****
--- 113893,113907 ----
  6428b158457136009640e18a3e6db4a8  gcc/testsuite/gfortran.dg/complex_write.f90
  b9804b4b0a71d39afd82b778f0536a3e  gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_1.f90
  d57b192629fc2adfa507680ea3f866e8  gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90
+ bc5de422f01d00b0a50e35932b3cbcbf  gcc/testsuite/gfortran.dg/conditional_1.f90
+ 28780a004b527e8991287378f8b3573e  gcc/testsuite/gfortran.dg/conditional_2.f90
+ 687dffbcf917c61a8281febd55ecc702  gcc/testsuite/gfortran.dg/conditional_3.f90
+ be6c047dfeeb22064687f248e12d9cab  gcc/testsuite/gfortran.dg/conditional_4.f90
+ 1836668643d261891e9d6217e1294a8c  gcc/testsuite/gfortran.dg/conditional_5.f90
+ b7bb68ee1c419c0a1e40030a56c8161f  gcc/testsuite/gfortran.dg/conditional_6.f90
+ a540ede6b4052d7248d7afe7976e7704  gcc/testsuite/gfortran.dg/conditional_7.f90
+ f30051f868ae3d54bb09f691d4ee4be9  gcc/testsuite/gfortran.dg/conditional_8.f90
+ 972d186aecbee599ccfe3c9a9ff30234  gcc/testsuite/gfortran.dg/conditional_9.f90
  b2591a1967b937b0841fc5fb3f73d5ce  gcc/testsuite/gfortran.dg/conflicts.f90
  64f1ee1dbe6f1744d125233e48c831fa  gcc/testsuite/gfortran.dg/conflicts_2.f90
  54782d6556ddbba18903dff6510de207  gcc/testsuite/gfortran.dg/constant_shape.f90
*************** cb50185eaf87f5357dad5873642eec33  gcc/te
*** 101531,101536 ****
--- 113929,113935 ----
  5a8601e6c51ea544ca9179e464325eb0  gcc/testsuite/gfortran.dg/contiguous_13.f90
  52a454e4516aaff2011d2696c96ca5ab  gcc/testsuite/gfortran.dg/contiguous_14.f90
  8621637c284842966acb59cdbfe4e51a  gcc/testsuite/gfortran.dg/contiguous_15.f90
+ ffb54aced92284f6168ef0953f0396ea  gcc/testsuite/gfortran.dg/contiguous_16.f90
  9975df3f787a3eaea63dd5664ff235eb  gcc/testsuite/gfortran.dg/contiguous_2.f90
  a59d0430a52a3cf47c280856725dee23  gcc/testsuite/gfortran.dg/contiguous_3.f90
  b81d56e35fe81ed4c9f6f67cca8a0ab2  gcc/testsuite/gfortran.dg/contiguous_4.f90
*************** a173a721e029bdc0b90a673b0904b8d6  gcc/te
*** 101561,101566 ****
--- 113960,113966 ----
  3e6601d715c346714d5942c158ecc96f  gcc/testsuite/gfortran.dg/convert_1.f90
  7324ef3f1b4d2fab3c0499953f90a804  gcc/testsuite/gfortran.dg/convert_2.f90
  b73e43096f62363b41d344c3d78cf850  gcc/testsuite/gfortran.dg/convert_implied_open.f90
+ 1e5ab9679df93746b1c9171450599736  gcc/testsuite/gfortran.dg/coshape_1.f90
  cb123993b8b746b2fefcde93c5977299  gcc/testsuite/gfortran.dg/count_init_expr.f03
  f8a4ca21ccf302214564ec0d59e8fd51  gcc/testsuite/gfortran.dg/count_mask_1.f90
  1ff91b4ba7ccca5457a6d7232889d928  gcc/testsuite/gfortran.dg/coverage.f90
*************** adf3e611b5d9dd41324a93faee4fe2c9  gcc/te
*** 101644,101650 ****
  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
--- 114044,114050 ----
  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
! 21eef603c966441fca63fd646b371dda  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
*************** ea87431a0369f9e7268297efe801335a  gcc/te
*** 101713,101723 ****
  762985a925b90674163cd0316a6f3ff0  gcc/testsuite/gfortran.dg/dec_logical_xor_1.f90
  519c3622603d8bdfcdd819606ab71a39  gcc/testsuite/gfortran.dg/dec_logical_xor_2.f90
  7634f260da3c6ee6123a7feaf3e1ab68  gcc/testsuite/gfortran.dg/dec_logical_xor_3.f03
! 8d3b7a76092171be38187b81f8a3ec85  gcc/testsuite/gfortran.dg/dec_math.f90
  11fbf6587979490cca68492521824101  gcc/testsuite/gfortran.dg/dec_math_2.f90
! f007474e5e62779dd82a956460020608  gcc/testsuite/gfortran.dg/dec_math_3.f90
  89e13391077c863487552207c651a1aa  gcc/testsuite/gfortran.dg/dec_math_4.f90
! c72afcd1bf036ac396f29c7e70a4f3bd  gcc/testsuite/gfortran.dg/dec_math_5.f90
  9f5739a83e88bd4a8b6a45ff713e1e4f  gcc/testsuite/gfortran.dg/dec_parameter_1.f
  5d6d04868c5d0b68526b644166397060  gcc/testsuite/gfortran.dg/dec_parameter_2.f90
  fda7b33d4e9546e000649a147e272b6b  gcc/testsuite/gfortran.dg/dec_parameter_3.f90
--- 114113,114124 ----
  762985a925b90674163cd0316a6f3ff0  gcc/testsuite/gfortran.dg/dec_logical_xor_1.f90
  519c3622603d8bdfcdd819606ab71a39  gcc/testsuite/gfortran.dg/dec_logical_xor_2.f90
  7634f260da3c6ee6123a7feaf3e1ab68  gcc/testsuite/gfortran.dg/dec_logical_xor_3.f03
! 6c2657198caaa08b6452cb68d6a5d9b9  gcc/testsuite/gfortran.dg/dec_math.f90
  11fbf6587979490cca68492521824101  gcc/testsuite/gfortran.dg/dec_math_2.f90
! 29e815bce13b86ce80bd1fed6e71fc7c  gcc/testsuite/gfortran.dg/dec_math_3.f90
  89e13391077c863487552207c651a1aa  gcc/testsuite/gfortran.dg/dec_math_4.f90
! 4e9c51c540ad0e6488e481ffa53adcb2  gcc/testsuite/gfortran.dg/dec_math_5.f90
! da0272c8efe7f1b873e98e2e83f1bc1b  gcc/testsuite/gfortran.dg/dec_math_6.f90
  9f5739a83e88bd4a8b6a45ff713e1e4f  gcc/testsuite/gfortran.dg/dec_parameter_1.f
  5d6d04868c5d0b68526b644166397060  gcc/testsuite/gfortran.dg/dec_parameter_2.f90
  fda7b33d4e9546e000649a147e272b6b  gcc/testsuite/gfortran.dg/dec_parameter_3.f90
*************** c8ca7a67e0b9c502e7883c6187a3b1f3  gcc/te
*** 101816,101822 ****
--- 114217,114225 ----
  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
+ 215823acf008351c1205acdb4e513f5e  gcc/testsuite/gfortran.dg/deferred_character_39.f90
  5eede6c791f6d272034f9b84850ac6af  gcc/testsuite/gfortran.dg/deferred_character_4.f90
+ 275c559e2b873bfb22981e7661280822  gcc/testsuite/gfortran.dg/deferred_character_40.f90
  981b809300de368e8fac65be4b40099c  gcc/testsuite/gfortran.dg/deferred_character_5.f90
  b8df78111bec4d4d4b97da6a15228361  gcc/testsuite/gfortran.dg/deferred_character_6.f90
  6163ba94de2460d966743791f731e1d6  gcc/testsuite/gfortran.dg/deferred_character_7.f90
*************** dee6967c044d8780d274607ace40fce8  gcc/te
*** 101840,101845 ****
--- 114243,114249 ----
  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
+ bd92eee4a8e719086355949bd9fba572  gcc/testsuite/gfortran.dg/defined_assignment_13.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
*************** cf5153f1f09bb80f5a964ce90c83a5dc  gcc/te
*** 101973,101983 ****
  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
--- 114377,114383 ----
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
! a54adebfa3c2513da7c57a3210b9850e  gcc/testsuite/gfortran.dg/dg.exp
  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
*************** b7c2b03696caf836ff1ab415f5f62cfa  gcc/te
*** 102052,102057 ****
--- 114452,114458 ----
  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
+ 88014773464896ec2c1ed0b171cd12fa  gcc/testsuite/gfortran.dg/do_concurrent_typespec_1.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
*************** ed385d9e717244e5d05866b9cb454905  gcc/te
*** 102146,102152 ****
  4b59bf0c44a7eace63fee6c4a9acfd5a  gcc/testsuite/gfortran.dg/dynamic_dispatch_6.f03
  dd0c1c857031fcb77db2e68d93532305  gcc/testsuite/gfortran.dg/dynamic_dispatch_7.f03
  dd013ee4400372db84f09ca56d8b3ba3  gcc/testsuite/gfortran.dg/dynamic_dispatch_8.f03
! 971f2ffe3a968e94613324a9dd4c1923  gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03
  a1e324dbac8b102aef7ffffd392b4a70  gcc/testsuite/gfortran.dg/e_d_fmt.f90
  ab75703951551fc147b1dd27c8bfd042  gcc/testsuite/gfortran.dg/edit_real_1.f90
  1ca998f810cc468a20cfcb95e9b68e5f  gcc/testsuite/gfortran.dg/elemental_args_check_1.f90
--- 114547,114553 ----
  4b59bf0c44a7eace63fee6c4a9acfd5a  gcc/testsuite/gfortran.dg/dynamic_dispatch_6.f03
  dd0c1c857031fcb77db2e68d93532305  gcc/testsuite/gfortran.dg/dynamic_dispatch_7.f03
  dd013ee4400372db84f09ca56d8b3ba3  gcc/testsuite/gfortran.dg/dynamic_dispatch_8.f03
! 41ffe34d70806d4faa3f520f4882c096  gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03
  a1e324dbac8b102aef7ffffd392b4a70  gcc/testsuite/gfortran.dg/e_d_fmt.f90
  ab75703951551fc147b1dd27c8bfd042  gcc/testsuite/gfortran.dg/edit_real_1.f90
  1ca998f810cc468a20cfcb95e9b68e5f  gcc/testsuite/gfortran.dg/elemental_args_check_1.f90
*************** dde6c08dab677880bb894b2143cf090b  gcc/te
*** 102230,102236 ****
  df7fd6f7581d27330f0013f9a3246e99  gcc/testsuite/gfortran.dg/entry_20.f90
  72628f114c4fb8fab6905f4a0f29e09f  gcc/testsuite/gfortran.dg/entry_21.f90
  37e5c5438d0e0514b44e64686d3843da  gcc/testsuite/gfortran.dg/entry_22.f90
! 0db0be3b4ced16a50d8129fd0aa3d8fa  gcc/testsuite/gfortran.dg/entry_23.f
  736b641c8447236bf4ebf1806522d583  gcc/testsuite/gfortran.dg/entry_24.f90
  6b39a2792de2f424e5fca65e4dd34f47  gcc/testsuite/gfortran.dg/entry_25.f90
  e58384fbdf9d19ad690ac1eae7664064  gcc/testsuite/gfortran.dg/entry_26.f90
--- 114631,114637 ----
  df7fd6f7581d27330f0013f9a3246e99  gcc/testsuite/gfortran.dg/entry_20.f90
  72628f114c4fb8fab6905f4a0f29e09f  gcc/testsuite/gfortran.dg/entry_21.f90
  37e5c5438d0e0514b44e64686d3843da  gcc/testsuite/gfortran.dg/entry_22.f90
! ff3ba925448e5c5b221fdec03f58d4dd  gcc/testsuite/gfortran.dg/entry_23.f
  736b641c8447236bf4ebf1806522d583  gcc/testsuite/gfortran.dg/entry_24.f90
  6b39a2792de2f424e5fca65e4dd34f47  gcc/testsuite/gfortran.dg/entry_25.f90
  e58384fbdf9d19ad690ac1eae7664064  gcc/testsuite/gfortran.dg/entry_26.f90
*************** d81f48fb709cb415740904f8c05dbefd  gcc/te
*** 102278,102284 ****
  f9b7a86e792764d97f0b5939361c929d  gcc/testsuite/gfortran.dg/eoshift_5.f90
  01f5663dbbe448ffcae13215519a2976  gcc/testsuite/gfortran.dg/eoshift_6.f90
  adae9a19ec811bbf55918625d353631f  gcc/testsuite/gfortran.dg/eoshift_7.f90
! 66a20460746717880ff13c94688798f8  gcc/testsuite/gfortran.dg/eoshift_8.f90
  f68f16bc720811c1bd9729ac85be7f58  gcc/testsuite/gfortran.dg/eoshift_9.f90
  d23c3cf960da52cea7987d80d427ca33  gcc/testsuite/gfortran.dg/eoshift_bounds_1.f90
  498461068b03a38305d4fb9508177f88  gcc/testsuite/gfortran.dg/eoshift_large_1.f90
--- 114679,114685 ----
  f9b7a86e792764d97f0b5939361c929d  gcc/testsuite/gfortran.dg/eoshift_5.f90
  01f5663dbbe448ffcae13215519a2976  gcc/testsuite/gfortran.dg/eoshift_6.f90
  adae9a19ec811bbf55918625d353631f  gcc/testsuite/gfortran.dg/eoshift_7.f90
! cb4d33ab0ef6f8d96bec05a5a558d952  gcc/testsuite/gfortran.dg/eoshift_8.f90
  f68f16bc720811c1bd9729ac85be7f58  gcc/testsuite/gfortran.dg/eoshift_9.f90
  d23c3cf960da52cea7987d80d427ca33  gcc/testsuite/gfortran.dg/eoshift_bounds_1.f90
  498461068b03a38305d4fb9508177f88  gcc/testsuite/gfortran.dg/eoshift_large_1.f90
*************** d9dcad9e03bd8c27d5f76eaa4cf71a0e  gcc/te
*** 102304,102310 ****
  debb6284910bc9893ee8d64655d67794  gcc/testsuite/gfortran.dg/equiv_pure.f90
  7068ea1b9ef6f4e1c0602de0112c99c8  gcc/testsuite/gfortran.dg/equiv_substr.f90
  1a93c19b7b17152e8d50abaa1075e512  gcc/testsuite/gfortran.dg/erf.f90
! eb8b6bf7208f1b2c958420a7c10478b2  gcc/testsuite/gfortran.dg/erf_2.F90
  a8fc794bdc228830fdce4b036804b410  gcc/testsuite/gfortran.dg/erf_3.F90
  4896a13f6fa4af7bce5540bb1d7edf28  gcc/testsuite/gfortran.dg/erfc_scaled_1.f90
  6ff6465694368d012e66b39c130fe7ae  gcc/testsuite/gfortran.dg/erfc_scaled_2.f90
--- 114705,114711 ----
  debb6284910bc9893ee8d64655d67794  gcc/testsuite/gfortran.dg/equiv_pure.f90
  7068ea1b9ef6f4e1c0602de0112c99c8  gcc/testsuite/gfortran.dg/equiv_substr.f90
  1a93c19b7b17152e8d50abaa1075e512  gcc/testsuite/gfortran.dg/erf.f90
! 13db7911403b37123bca161c1962ab25  gcc/testsuite/gfortran.dg/erf_2.F90
  a8fc794bdc228830fdce4b036804b410  gcc/testsuite/gfortran.dg/erf_3.F90
  4896a13f6fa4af7bce5540bb1d7edf28  gcc/testsuite/gfortran.dg/erfc_scaled_1.f90
  6ff6465694368d012e66b39c130fe7ae  gcc/testsuite/gfortran.dg/erfc_scaled_2.f90
*************** ea90081d3cd8fedd1e22f5d111802ece  gcc/te
*** 102372,102378 ****
  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
--- 114773,114779 ----
  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
! bfb30719592e25feea6d64c8daad785c  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
*************** e3f8979302c39ffbf6c7c03d08fc1562  gcc/te
*** 102450,102461 ****
  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
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
  64ead876be3dc730e11de6b0cdf756a3  gcc/testsuite/gfortran.dg/findloc_2.f90
--- 114851,114866 ----
  4a82b3bd0b6fd8d978b3278deeaf8249  gcc/testsuite/gfortran.dg/finalize_56.f90
  9d1fdf3e8a1de7a8307fa3520fa3dbfd  gcc/testsuite/gfortran.dg/finalize_57.f90
  51b8bf932be238b91e30f73f65cbee55  gcc/testsuite/gfortran.dg/finalize_58.f90
! 717a66306d43d34d3fede84fdb402762  gcc/testsuite/gfortran.dg/finalize_59.f90
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
  cccfd4eb98b07f30fc6a43462ae1078b  gcc/testsuite/gfortran.dg/finalize_60.f90
+ 51e31db84f6ad06fd2677048b3bc3292  gcc/testsuite/gfortran.dg/finalize_61.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
+ bae7dedae44fd034e5baf82ba38f2cc4  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_1.f90
+ ac37f07a8afd3aed83a0effb3df1e910  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90
+ ce393849d1dddc7e370952edc00467f5  gcc/testsuite/gfortran.dg/finalizer_self_assign.f90
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
  64ead876be3dc730e11de6b0cdf756a3  gcc/testsuite/gfortran.dg/findloc_2.f90
*************** cff02ee06837fc928051c3d36f6a221f  gcc/te
*** 102481,102487 ****
  1aa0cb748fde34e4900b801c5153a308  gcc/testsuite/gfortran.dg/fmt_en_ru.f90
  dd95e364741a524c16a2ca767db39620  gcc/testsuite/gfortran.dg/fmt_en_rz.f90
  51f4c68b5c689084070ee71c915fb347  gcc/testsuite/gfortran.dg/fmt_error.f90
! b95d99d2316fd9982bd82df8f1886832  gcc/testsuite/gfortran.dg/fmt_error_10.f
  4cc40888a17d146df1ece1cfbc9da885  gcc/testsuite/gfortran.dg/fmt_error_11.f03
  f0ca55042d3247d09d7bc304c059cc3a  gcc/testsuite/gfortran.dg/fmt_error_2.f90
  08714edf3b0ddedeaaa8832ea4399b48  gcc/testsuite/gfortran.dg/fmt_error_3.f90
--- 114886,114892 ----
  1aa0cb748fde34e4900b801c5153a308  gcc/testsuite/gfortran.dg/fmt_en_ru.f90
  dd95e364741a524c16a2ca767db39620  gcc/testsuite/gfortran.dg/fmt_en_rz.f90
  51f4c68b5c689084070ee71c915fb347  gcc/testsuite/gfortran.dg/fmt_error.f90
! 7463d17886a02a57aa8451c5b45f6385  gcc/testsuite/gfortran.dg/fmt_error_10.f
  4cc40888a17d146df1ece1cfbc9da885  gcc/testsuite/gfortran.dg/fmt_error_11.f03
  f0ca55042d3247d09d7bc304c059cc3a  gcc/testsuite/gfortran.dg/fmt_error_2.f90
  08714edf3b0ddedeaaa8832ea4399b48  gcc/testsuite/gfortran.dg/fmt_error_3.f90
*************** f8ae667c3d38aaadda84633fe1ec2778  gcc/te
*** 102505,102511 ****
  5dc0458b02b01e6d25132c6741011392  gcc/testsuite/gfortran.dg/fmt_g0_1.f08
  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
--- 114910,114916 ----
  5dc0458b02b01e6d25132c6741011392  gcc/testsuite/gfortran.dg/fmt_g0_1.f08
  e3a0f3ed872ed9b377820f0e8b2044a7  gcc/testsuite/gfortran.dg/fmt_g0_2.f08
  d216b76ed81c95ec2cbca83beb2a093d  gcc/testsuite/gfortran.dg/fmt_g0_3.f08
! f9d5f33916962f8e875a1fb84f71d7a3  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
*************** afb11a602b566cba010f9624d3692084  gcc/te
*** 102553,102559 ****
  701fade2a840cb9e3bf581edbedf810c  gcc/testsuite/gfortran.dg/fmt_zero_check.f90
  dc9ed2a13668303e52d0d4105a0e1f59  gcc/testsuite/gfortran.dg/fmt_zero_digits.f90
  cfe6a6fc0d5896e149acf8cbc9e53b9a  gcc/testsuite/gfortran.dg/fmt_zero_precision.f90
! e726baedb69caffaea12b6d40c53573c  gcc/testsuite/gfortran.dg/fmt_zero_width.f90
  93823024165c02ff6aafa96f78929937  gcc/testsuite/gfortran.dg/fold_nearest.f90
  75a4fd131c42b25fa39d55337b1c123a  gcc/testsuite/gfortran.dg/forall_1.f90
  38dac57f72b75131409460563ea3b3ce  gcc/testsuite/gfortran.dg/forall_10.f90
--- 114958,114964 ----
  701fade2a840cb9e3bf581edbedf810c  gcc/testsuite/gfortran.dg/fmt_zero_check.f90
  dc9ed2a13668303e52d0d4105a0e1f59  gcc/testsuite/gfortran.dg/fmt_zero_digits.f90
  cfe6a6fc0d5896e149acf8cbc9e53b9a  gcc/testsuite/gfortran.dg/fmt_zero_precision.f90
! c5f0bf04de4a4b119484f04ca7a7a445  gcc/testsuite/gfortran.dg/fmt_zero_width.f90
  93823024165c02ff6aafa96f78929937  gcc/testsuite/gfortran.dg/fold_nearest.f90
  75a4fd131c42b25fa39d55337b1c123a  gcc/testsuite/gfortran.dg/forall_1.f90
  38dac57f72b75131409460563ea3b3ce  gcc/testsuite/gfortran.dg/forall_10.f90
*************** a2b1e430bb2cc8d70eba7fac7bd65222  gcc/te
*** 102688,102694 ****
  187b6bafbcb47078a9179429514df673  gcc/testsuite/gfortran.dg/g77/971102-1.f
  af9c112eb07711d9fd15f399baaf4056  gcc/testsuite/gfortran.dg/g77/980310-1.f
  5603b62c2dfbcfbf268ea90890767b9a  gcc/testsuite/gfortran.dg/g77/980310-2.f
! fc04ff3c961cd8631037c4f56a785261  gcc/testsuite/gfortran.dg/g77/980310-3.f
  f18e25de58b98ac8e8ffbb9fd068860c  gcc/testsuite/gfortran.dg/g77/980310-4.f
  62d0c29d875e0cec64a6cd67ebe884c4  gcc/testsuite/gfortran.dg/g77/980310-6.f
  064a09bd36816e7258b1c5928f3e9e87  gcc/testsuite/gfortran.dg/g77/980310-7.f
--- 115093,115099 ----
  187b6bafbcb47078a9179429514df673  gcc/testsuite/gfortran.dg/g77/971102-1.f
  af9c112eb07711d9fd15f399baaf4056  gcc/testsuite/gfortran.dg/g77/980310-1.f
  5603b62c2dfbcfbf268ea90890767b9a  gcc/testsuite/gfortran.dg/g77/980310-2.f
! f43d42e9b903355c2ae35a7ac58cf7ea  gcc/testsuite/gfortran.dg/g77/980310-3.f
  f18e25de58b98ac8e8ffbb9fd068860c  gcc/testsuite/gfortran.dg/g77/980310-4.f
  62d0c29d875e0cec64a6cd67ebe884c4  gcc/testsuite/gfortran.dg/g77/980310-6.f
  064a09bd36816e7258b1c5928f3e9e87  gcc/testsuite/gfortran.dg/g77/980310-7.f
*************** f87880c019d70b5c8e9649c7f81decb8  gcc/te
*** 102713,102719 ****
  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
--- 115118,115124 ----
  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
! b7d2adb600725daec7b0a48ab4c071e1  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
*************** f2d4fcb471aa8f0cf129964a1a121b8b  gcc/te
*** 102732,102738 ****
  6126cc749cf41955b761ed99cbbb94cb  gcc/testsuite/gfortran.dg/g77/erfc.f
  903343bf82f349e4b7516c4ea259d0ec  gcc/testsuite/gfortran.dg/g77/f77-edit-apostrophe-out.f
  da022bb5c0f5da33bb7bf90d63f48432  gcc/testsuite/gfortran.dg/g77/f77-edit-colon-out.f
! 849d82e6e0567c5951c54deecb3af6d1  gcc/testsuite/gfortran.dg/g77/f77-edit-h-out.f
  ef44a7fec70868f50311728cd2f1443e  gcc/testsuite/gfortran.dg/g77/f77-edit-i-in.f
  68f1690859fa33b60eca874423346325  gcc/testsuite/gfortran.dg/g77/f77-edit-i-out.f
  f1d77276e2ca62dd595339541550c132  gcc/testsuite/gfortran.dg/g77/f77-edit-s-out.f
--- 115137,115143 ----
  6126cc749cf41955b761ed99cbbb94cb  gcc/testsuite/gfortran.dg/g77/erfc.f
  903343bf82f349e4b7516c4ea259d0ec  gcc/testsuite/gfortran.dg/g77/f77-edit-apostrophe-out.f
  da022bb5c0f5da33bb7bf90d63f48432  gcc/testsuite/gfortran.dg/g77/f77-edit-colon-out.f
! 7a4f78a1a97dca4e391641debf969499  gcc/testsuite/gfortran.dg/g77/f77-edit-h-out.f
  ef44a7fec70868f50311728cd2f1443e  gcc/testsuite/gfortran.dg/g77/f77-edit-i-in.f
  68f1690859fa33b60eca874423346325  gcc/testsuite/gfortran.dg/g77/f77-edit-i-out.f
  f1d77276e2ca62dd595339541550c132  gcc/testsuite/gfortran.dg/g77/f77-edit-s-out.f
*************** f1d77276e2ca62dd595339541550c132  gcc/te
*** 102740,102748 ****
  32479de579e3888726f7f547da56f9ea  gcc/testsuite/gfortran.dg/g77/f77-edit-t-in.f
  5b655890765cdfb06e030a7724cfe91a  gcc/testsuite/gfortran.dg/g77/f77-edit-t-out.f
  a6c4b2bec854cf2b1e63b754044a60d3  gcc/testsuite/gfortran.dg/g77/f77-edit-x-out.f
! f102f6b3f117e1d429d467dd7060671d  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f
! c9f51fa26c0f0863989933fd1d01bf0b  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f
! 37963d283a33f8defd75b40ec2e76306  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f
  96977883421b175b67be1118b794bd56  gcc/testsuite/gfortran.dg/g77/ffixed-form-1.f
  29ff9a4381ca8c02a6e5817b0a713d27  gcc/testsuite/gfortran.dg/g77/ffixed-form-2.f
  57194471031e9d956071d8b5b26dad72  gcc/testsuite/gfortran.dg/g77/ffixed-line-length-0.f
--- 115145,115153 ----
  32479de579e3888726f7f547da56f9ea  gcc/testsuite/gfortran.dg/g77/f77-edit-t-in.f
  5b655890765cdfb06e030a7724cfe91a  gcc/testsuite/gfortran.dg/g77/f77-edit-t-out.f
  a6c4b2bec854cf2b1e63b754044a60d3  gcc/testsuite/gfortran.dg/g77/f77-edit-x-out.f
! abb61e626ce951319f5e7f7e0fd21a23  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f
! c27e718f93faccd2080492d4b4f8052b  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f
! 9e0651de1d1f5c62e85c06b246b7140a  gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f
  96977883421b175b67be1118b794bd56  gcc/testsuite/gfortran.dg/g77/ffixed-form-1.f
  29ff9a4381ca8c02a6e5817b0a713d27  gcc/testsuite/gfortran.dg/g77/ffixed-form-2.f
  57194471031e9d956071d8b5b26dad72  gcc/testsuite/gfortran.dg/g77/ffixed-line-length-0.f
*************** c34f0338bfd38cc5789eae9ef9b39d98  gcc/te
*** 102755,102762 ****
  b76273e7af403caabc68f7f1973b211c  gcc/testsuite/gfortran.dg/g77/fno-underscoring.f
  51a2c0c69a512565c359338191e9e39e  gcc/testsuite/gfortran.dg/g77/funderscoring.f
  38ab98bd5d8549b0b5d1751e0a010433  gcc/testsuite/gfortran.dg/g77/int8421.f
! 338eb90af5e7e87b307a46204faa4341  gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f
! ae88a47a36ff81768bbc94c2fccb750c  gcc/testsuite/gfortran.dg/g77/intrinsic-unix-erf.f
  b95bed0058de43a18f0b95b0a13babee  gcc/testsuite/gfortran.dg/g77/labug1.f
  5cd5db2f5585dc7595a6f6ad12e9e45d  gcc/testsuite/gfortran.dg/g77/large_vec.f
  7ebb2b647b7391d93f548e6b083eeb94  gcc/testsuite/gfortran.dg/g77/le.f
--- 115160,115167 ----
  b76273e7af403caabc68f7f1973b211c  gcc/testsuite/gfortran.dg/g77/fno-underscoring.f
  51a2c0c69a512565c359338191e9e39e  gcc/testsuite/gfortran.dg/g77/funderscoring.f
  38ab98bd5d8549b0b5d1751e0a010433  gcc/testsuite/gfortran.dg/g77/int8421.f
! 8e584f0b8d96bd9db19bec53647eabff  gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f
! a76baa91eff149189d47776cee94ee55  gcc/testsuite/gfortran.dg/g77/intrinsic-unix-erf.f
  b95bed0058de43a18f0b95b0a13babee  gcc/testsuite/gfortran.dg/g77/labug1.f
  5cd5db2f5585dc7595a6f6ad12e9e45d  gcc/testsuite/gfortran.dg/g77/large_vec.f
  7ebb2b647b7391d93f548e6b083eeb94  gcc/testsuite/gfortran.dg/g77/le.f
*************** b05969f53054593dd395b4ea04ad9c70  gcc/te
*** 102802,102807 ****
--- 115207,115214 ----
  b8f902f76eb78d41248d3f43e7203c3e  gcc/testsuite/gfortran.dg/generic_33.f90
  4705e58dd699635bea41b395496c1088  gcc/testsuite/gfortran.dg/generic_34.f90
  37cd6187e808ee365884bcbc55152cbf  gcc/testsuite/gfortran.dg/generic_35.f90
+ 2ecee9dd67a37d46386d24fb1f25af74  gcc/testsuite/gfortran.dg/generic_36-1.f90
+ a5bbbc17d24a1ce19bfca4527daacdab  gcc/testsuite/gfortran.dg/generic_36-2.f90
  a5a419e931b944ccee23f03064f3067a  gcc/testsuite/gfortran.dg/generic_4.f90
  6b638ae392f7e94c1592d0efbc053876  gcc/testsuite/gfortran.dg/generic_5.f90
  dc5927a86c1c614c2ff8285c60cf86f9  gcc/testsuite/gfortran.dg/generic_6.f90
*************** dc5927a86c1c614c2ff8285c60cf86f9  gcc/te
*** 102809,102814 ****
--- 115216,115225 ----
  0693d36931aa7cbf93670c0a9b2ef1ae  gcc/testsuite/gfortran.dg/generic_8.f90
  a82f9f84e4990bbf61e77c1d4b17a059  gcc/testsuite/gfortran.dg/generic_9.f90
  db58873e32f4e2d9ac682fe5fd7f61ec  gcc/testsuite/gfortran.dg/generic_actual_arg.f90
+ f711e9e62535439d0e7e08ab609a1fd7  gcc/testsuite/gfortran.dg/generic_stmt_1.f90
+ 2b2b5797afa37c866edb2144f8cd0708  gcc/testsuite/gfortran.dg/generic_stmt_2.f90
+ 92d54294107fbf2867f0877f11e0296c  gcc/testsuite/gfortran.dg/generic_stmt_3.f90
+ 272e94ec47ba95ef136b55b8ccf82544  gcc/testsuite/gfortran.dg/generic_stmt_4.f90
  fae23b41460270e976cf93da0fa8c1ca  gcc/testsuite/gfortran.dg/generic_typebound_operator_1.f90
  dde1a2efd44a1842615d10e590968dd6  gcc/testsuite/gfortran.dg/getenv_1.f90
  c0e505ce7e71351fb9249932cf5da47d  gcc/testsuite/gfortran.dg/global_references_1.f90
*************** a1927f72df8d7dff60593a75c817fd91  gcc/te
*** 102823,102831 ****
  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
--- 115234,115248 ----
  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
! f1a8713ca7f4d3cd72ae8a412f19527f  gcc/testsuite/gfortran.dg/goacc-gomp/goacc-gomp.exp
  66b451ac1ef6dc37e41acf5ef7d3a7f8  gcc/testsuite/gfortran.dg/goacc-gomp/mixed-1.f
! dcb62a65f464c0c26b4f75641f80a92d  gcc/testsuite/gfortran.dg/goacc-gomp/nesting-fail-1.f95
! f062d49184fa5ca95a859017d0ac7c8d  gcc/testsuite/gfortran.dg/goacc-gomp/pr102330-1.f90
! 48ca8116986d11118ccd5f91de23860e  gcc/testsuite/gfortran.dg/goacc-gomp/pr108382.f90
! a6770caefb05f127ef2000ee00ed4d83  gcc/testsuite/gfortran.dg/goacc-gomp/pr63858.f
! 1df11935775af1f0859dfd7fbb101022  gcc/testsuite/gfortran.dg/goacc-gomp/pr93329.f90
! 4beebc6402fc920e7e48f720eb42638c  gcc/testsuite/gfortran.dg/goacc-gomp/pr93463.f90
! ca804f2df22c482ff1ff6d8e4e966c95  gcc/testsuite/gfortran.dg/goacc/acc-wait-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
*************** d4c2919d4f88b391fb32fcbe225f7214  gcc/te
*** 102901,102907 ****
  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
--- 115318,115324 ----
  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
! cb4134e30709429524d694aca503076c  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
*************** dc0ed8100589e01d391b4954bad7b048  gcc/te
*** 102964,102980 ****
  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
  30617b4201e681ce9fc02f97597b907d  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-1.f90
  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
--- 115381,115398 ----
  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
  30617b4201e681ce9fc02f97597b907d  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-1.f90
  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
! 7b1e67dbca99a233df3d0cb00cdccd5d  gcc/testsuite/gfortran.dg/goacc/parameter-3.f90
! 30d9a34d05be79deacc5c5e3b2a4a58e  gcc/testsuite/gfortran.dg/goacc/parameter-4.f90
! 0ac202fe426db02790533e5b5a8a5712  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
+ 25e0ac1a3686ba9ae8a974d05f23ebf5  gcc/testsuite/gfortran.dg/goacc/pr120723.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
*************** fff3ef606b07a0c12c2323afa6fe446d  gcc/te
*** 102992,103001 ****
  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
  75656a375a89cf61af800fc27b130ac1  gcc/testsuite/gfortran.dg/goacc/pr93464.f90
  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
--- 115410,115418 ----
  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
  53e5e05b763f714373036ee3c31c7f01  gcc/testsuite/gfortran.dg/goacc/pr93464-2.f90
  75656a375a89cf61af800fc27b130ac1  gcc/testsuite/gfortran.dg/goacc/pr93464.f90
+ ba2a8d7a8e35b46aaac36905f8c65c5b  gcc/testsuite/gfortran.dg/goacc/pr93554.f90
  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
*************** f85d6127bac477d11ee5f336d29750d8  gcc/te
*** 103020,103027 ****
  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
--- 115437,115444 ----
  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
! 5fec6bc529db9b8144a36fb1e197e10e  gcc/testsuite/gfortran.dg/goacc/routine-1.f90
! 679044b6c31722bca9be99788e034ad0  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
*************** f8465776106b63fb5b5ceb95fe4f98f6  gcc/te
*** 103062,103074 ****
  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
--- 115479,115492 ----
  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
! ec6f1af4201fcc3c0c1471347159a131  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
! 5e630960049f800f3953c07494d16c2a  gcc/testsuite/gfortran.dg/gomp/52-deps.f90
! ca08846090699b11a20208a800d4cf04  gcc/testsuite/gfortran.dg/gomp/adjust-args-1.f90
! 76b2ebce9597635baaba14b561380adc  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
*************** baf9504f9deb0d762ee67843795c34ad  gcc/te
*** 103083,103089 ****
  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
  e417d854c53b75c2ba1bf99e780e44f9  gcc/testsuite/gfortran.dg/gomp/affinity-clause-3.f90
--- 115501,115507 ----
  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
! 94e0b1a391c6ba6a3db4cd88eaf08340  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
  e417d854c53b75c2ba1bf99e780e44f9  gcc/testsuite/gfortran.dg/gomp/affinity-clause-3.f90
*************** c20c9f1e0f2b7f6bc763a7e20b0857ef  gcc/te
*** 103101,103126 ****
  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
--- 115519,115545 ----
  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
! 1427e63cdfa6a6ee32467781b3cdc26a  gcc/testsuite/gfortran.dg/gomp/allocate-14.f90
! 4502284686c6bf4f4967dbf067276b5a  gcc/testsuite/gfortran.dg/gomp/allocate-15.f90
! 32066313030d772ed76eb71e1b3b3625  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
! 8332d54a8612efaffd56b742ccc46420  gcc/testsuite/gfortran.dg/gomp/allocate-5.f90
! 8c46487581140059e2ecbcffbb0495a4  gcc/testsuite/gfortran.dg/gomp/allocate-6.f90
! ec8293d35d2af0891574bfa038e7d749  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
! 4acd7d30dbb157b399ab53244bf88e88  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
+ e98b64bfaca60de48d18e4479c7bacf7  gcc/testsuite/gfortran.dg/gomp/allocate-static-3.f90
  fdba6887e6e07e9db7286a8aa1e260ed  gcc/testsuite/gfortran.dg/gomp/allocators-1.f90
  de1aa465fd55a6b4c24514982405ff85  gcc/testsuite/gfortran.dg/gomp/allocators-2.f90
! bfb655d90e0515502b27574637d7ae99  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
! c46ee3001e6c3fe9109f03db804703a3  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
*************** be2dfd843076b56ef43acf3c66d28133  gcc/te
*** 103132,103138 ****
  55c5aae303b2f414fe109487e76782b1  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.5.f90
  278fa02dc8d4218d856eb17c980f99c5  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.6.f90
  90986eca2e190029a1be567e9d9846da  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.7.f90
! 413c067e7423e6fc7b582856bea3ee0e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.12.1.f90
  7a87a14d2d66fd2a9e2fe2d04374165f  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.13.1.f90
  c57b8b6fdd416d7fcfb528ec1563cd6e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.14.1.f90
  8e79d45a1a7efedc931e5b6e6dcd2cfc  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.17.1.f90
--- 115551,115557 ----
  55c5aae303b2f414fe109487e76782b1  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.5.f90
  278fa02dc8d4218d856eb17c980f99c5  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.6.f90
  90986eca2e190029a1be567e9d9846da  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.11.7.f90
! 620b87073ad85a0d0f7c1f7296a1f6ed  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.12.1.f90
  7a87a14d2d66fd2a9e2fe2d04374165f  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.13.1.f90
  c57b8b6fdd416d7fcfb528ec1563cd6e  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.14.1.f90
  8e79d45a1a7efedc931e5b6e6dcd2cfc  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.17.1.f90
*************** e892480f878db9fb2d75388365b0d38f  gcc/te
*** 103159,103165 ****
  99ee5875ce6758020fa75de42d1b90b0  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90
  182731c8064c6ef83beb1d10cd03700b  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.32.1.f90
  157bb81ef8b8706d56531116aacc2653  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.1.f90
! 4ab99a44c0b5a623c5d27396d9bd8a6b  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.2.f90
  13e7971a3ccc5154115ae4400e728436  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.4.f90
  9dcaa38074193fce881c5e333df03933  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.34.1.f90
  c26a8d31ffc0f840e7afe8c4ba17c2cb  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.34.2.f90
--- 115578,115584 ----
  99ee5875ce6758020fa75de42d1b90b0  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.31.3.f90
  182731c8064c6ef83beb1d10cd03700b  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.32.1.f90
  157bb81ef8b8706d56531116aacc2653  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.1.f90
! eb450683759701b48961ff9454fda9ba  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.2.f90
  13e7971a3ccc5154115ae4400e728436  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.33.4.f90
  9dcaa38074193fce881c5e333df03933  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.34.1.f90
  c26a8d31ffc0f840e7afe8c4ba17c2cb  gcc/testsuite/gfortran.dg/gomp/appendix-a/a.34.2.f90
*************** f1a766f8696c6d4c654b209e78e352ce  gcc/te
*** 103185,103190 ****
--- 115604,115610 ----
  5e6389d0abcd7c2f90b6a1cd61ef9bc3  gcc/testsuite/gfortran.dg/gomp/assume-3.f90
  4bee16d209be417ce87c236f99f90dfb  gcc/testsuite/gfortran.dg/gomp/assume-4.f90
  0812a6a2cc0b6a44ec3668a36bd6b33b  gcc/testsuite/gfortran.dg/gomp/assume-5.f90
+ 30dac29cc0761f5fc713cce3937c6a81  gcc/testsuite/gfortran.dg/gomp/assume-6.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
*************** f23f31e3aab2957fab88d7b7ca1212de  gcc/te
*** 103205,103213 ****
  2c61c6d91bbeab8332c3c329ee9f8d12  gcc/testsuite/gfortran.dg/gomp/atomic-28.f90
  2627f4c7f22f907c1019851b2ae1c79f  gcc/testsuite/gfortran.dg/gomp/atomic.f90
  bab96c8ce5beeb0e7d9e4dae2fd0ea5f  gcc/testsuite/gfortran.dg/gomp/block-1.f90
! cdeec4fa3718656bb266e0931e5ea9fb  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_20.f90
! c54c9f00f1ab04f0a3eca118ed8aded7  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_21.f90
! 065c8d5b071a3096774849b90c0341dd  gcc/testsuite/gfortran.dg/gomp/cancel-1.f90
  6240d21497a94815867abd53e7fcfe68  gcc/testsuite/gfortran.dg/gomp/cancel-2.f90
  c2875e99b414fbced20c5c41d21b04c4  gcc/testsuite/gfortran.dg/gomp/cancel-3.f90
  08ea5c242fb3441982cd27d2f7c57be0  gcc/testsuite/gfortran.dg/gomp/cancel-4.f90
--- 115625,115633 ----
  2c61c6d91bbeab8332c3c329ee9f8d12  gcc/testsuite/gfortran.dg/gomp/atomic-28.f90
  2627f4c7f22f907c1019851b2ae1c79f  gcc/testsuite/gfortran.dg/gomp/atomic.f90
  bab96c8ce5beeb0e7d9e4dae2fd0ea5f  gcc/testsuite/gfortran.dg/gomp/block-1.f90
! d0b0d25288015346fe70bbdd2a17a0fd  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_20.f90
! 9b34858cc418b77000523bdcf058231d  gcc/testsuite/gfortran.dg/gomp/c_ptr_tests_21.f90
! e127562a3cc3cd2a0f5fc205fb43115e  gcc/testsuite/gfortran.dg/gomp/cancel-1.f90
  6240d21497a94815867abd53e7fcfe68  gcc/testsuite/gfortran.dg/gomp/cancel-2.f90
  c2875e99b414fbced20c5c41d21b04c4  gcc/testsuite/gfortran.dg/gomp/cancel-3.f90
  08ea5c242fb3441982cd27d2f7c57be0  gcc/testsuite/gfortran.dg/gomp/cancel-4.f90
*************** c2875e99b414fbced20c5c41d21b04c4  gcc/te
*** 103217,103267 ****
  00da5110c651c599834b4c04bf8015d5  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-2.f90
  8dbac5414be8ed46decf2134d6ea91fc  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-3.f90
  a8f0294a171f1359d6f5abd04324e891  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-4.f90
! b04d01c8918c4b0e4cfbbca2ac07c3a9  gcc/testsuite/gfortran.dg/gomp/clauses-1.f90
  bd13412ef41ad9bb27fc856062b6ee6c  gcc/testsuite/gfortran.dg/gomp/collapse1.f90
  17fe5ffccf79b4cae3361dc0b3b52283  gcc/testsuite/gfortran.dg/gomp/collapse2.f90
  36990c2a4b5e499e3cd93ef78508f038  gcc/testsuite/gfortran.dg/gomp/combined-if.f90
  ab16bdb71b7351b88eb2848c3dac063a  gcc/testsuite/gfortran.dg/gomp/copyprivate-1.f90
  384b77d140293cc0185bfcfbe6ea5dcc  gcc/testsuite/gfortran.dg/gomp/copyprivate-2.f90
  5889f294d23bf018b629ca16a28a09c2  gcc/testsuite/gfortran.dg/gomp/crayptr1.f90
! 4009d52a55ca8f5b28f926033fbbbabe  gcc/testsuite/gfortran.dg/gomp/crayptr2.f90
  fa862d5202e8a9940ce10e5de251b964  gcc/testsuite/gfortran.dg/gomp/crayptr3.f90
  1c6644a88dc4bee98beb52bb4342fee9  gcc/testsuite/gfortran.dg/gomp/crayptr4.f90
  4a434ccf995f8c325ad483ae77b66d9f  gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
  f771e918155eed02d90e026b9c163449  gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90
! 10b7fa8c03c3dfc00eb7345f9e992ad6  gcc/testsuite/gfortran.dg/gomp/declare-simd-2.f90
  2a1d11803d89a25e412300a0b880260f  gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90
  28aceea38e0468eae02d0b21b6326b34  gcc/testsuite/gfortran.dg/gomp/declare-simd-4.f90
  7ad1e2a95d3e303d0d364e2ebe69c5c9  gcc/testsuite/gfortran.dg/gomp/declare-simd-5.f90
! a10e905c3b5e37a46edf6f7918dd2815  gcc/testsuite/gfortran.dg/gomp/declare-simd-6.f90
  cea31a6d0391b4b71427da07ff8d34f1  gcc/testsuite/gfortran.dg/gomp/declare-simd-coarray-lib.f90
! 3efc7a1651bd3761d7b6f4bbc264313a  gcc/testsuite/gfortran.dg/gomp/declare-target-1.f90
! 28034efd191b59bb1825f666172304ea  gcc/testsuite/gfortran.dg/gomp/declare-target-2.f90
! f707bc4b48b8007c8be68aaa46e1d1e1  gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90
! cd36c1dc647fda3c47998959ae255f2e  gcc/testsuite/gfortran.dg/gomp/declare-target-5.f90
! 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
--- 115637,115689 ----
  00da5110c651c599834b4c04bf8015d5  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-2.f90
  8dbac5414be8ed46decf2134d6ea91fc  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-3.f90
  a8f0294a171f1359d6f5abd04324e891  gcc/testsuite/gfortran.dg/gomp/class-firstprivate-4.f90
! bb8d17daa736763480ede1e386d49311  gcc/testsuite/gfortran.dg/gomp/clauses-1.f90
  bd13412ef41ad9bb27fc856062b6ee6c  gcc/testsuite/gfortran.dg/gomp/collapse1.f90
  17fe5ffccf79b4cae3361dc0b3b52283  gcc/testsuite/gfortran.dg/gomp/collapse2.f90
  36990c2a4b5e499e3cd93ef78508f038  gcc/testsuite/gfortran.dg/gomp/combined-if.f90
  ab16bdb71b7351b88eb2848c3dac063a  gcc/testsuite/gfortran.dg/gomp/copyprivate-1.f90
  384b77d140293cc0185bfcfbe6ea5dcc  gcc/testsuite/gfortran.dg/gomp/copyprivate-2.f90
  5889f294d23bf018b629ca16a28a09c2  gcc/testsuite/gfortran.dg/gomp/crayptr1.f90
! e747f35261c244bfefe1a3b6df142197  gcc/testsuite/gfortran.dg/gomp/crayptr2.f90
  fa862d5202e8a9940ce10e5de251b964  gcc/testsuite/gfortran.dg/gomp/crayptr3.f90
  1c6644a88dc4bee98beb52bb4342fee9  gcc/testsuite/gfortran.dg/gomp/crayptr4.f90
  4a434ccf995f8c325ad483ae77b66d9f  gcc/testsuite/gfortran.dg/gomp/crayptr5.f90
  f771e918155eed02d90e026b9c163449  gcc/testsuite/gfortran.dg/gomp/declare-simd-1.f90
! 57864e06c09c2a6cc2c1d34d921c8d24  gcc/testsuite/gfortran.dg/gomp/declare-simd-2.f90
  2a1d11803d89a25e412300a0b880260f  gcc/testsuite/gfortran.dg/gomp/declare-simd-3.f90
  28aceea38e0468eae02d0b21b6326b34  gcc/testsuite/gfortran.dg/gomp/declare-simd-4.f90
  7ad1e2a95d3e303d0d364e2ebe69c5c9  gcc/testsuite/gfortran.dg/gomp/declare-simd-5.f90
! 89255e5c450a7fda37edb4af83a554ba  gcc/testsuite/gfortran.dg/gomp/declare-simd-6.f90
  cea31a6d0391b4b71427da07ff8d34f1  gcc/testsuite/gfortran.dg/gomp/declare-simd-coarray-lib.f90
! e337894451585edf7ae71841ac449bab  gcc/testsuite/gfortran.dg/gomp/declare-target-1.f90
! a70b5cf1419864009b8f60fd08fc07bb  gcc/testsuite/gfortran.dg/gomp/declare-target-2.f90
! a50cb4db8f9af6c4ba00e5bf9eaa0bbd  gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90
! cad618a3903f5ad965051d8bd30274eb  gcc/testsuite/gfortran.dg/gomp/declare-target-5.f90
! 96e45ce07429c6c7461942f584032013  gcc/testsuite/gfortran.dg/gomp/declare-target-6.f90
! fb64490f245057ee339d9ce9f0fcf876  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90
! ff8c3bb21c311c8ba15ff9e5247ebee0  gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90
! 7a36bcfb523b9374c112d74f398a2272  gcc/testsuite/gfortran.dg/gomp/declare-variant-1.f90
! f2d2f518ceca8e61af1653ad69b92c92  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
! f924ecdf775a3565c48bb1cfea519dc0  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
! 664a2c4df3f5dd5e318c82384fd77662  gcc/testsuite/gfortran.dg/gomp/declare-variant-17.f90
  21e881b2155c903e6c0fe82aa43cc421  gcc/testsuite/gfortran.dg/gomp/declare-variant-18.f90
  580901d43ef2a15dfd465a1a022ae115  gcc/testsuite/gfortran.dg/gomp/declare-variant-19.f90
! ed683a89c7027522aeb6eeffa4f9eb50  gcc/testsuite/gfortran.dg/gomp/declare-variant-2.f90
! 603fe8503ea79621c6ae2bea1b62521f  gcc/testsuite/gfortran.dg/gomp/declare-variant-20.f90
  1c8256ee6ef1a6a182d532c7902f031d  gcc/testsuite/gfortran.dg/gomp/declare-variant-21.f90
+ a00784a7c97219249c4d304acc76bce8  gcc/testsuite/gfortran.dg/gomp/declare-variant-22.f90
  0c8a0993785896857c3c01c9eb136c8e  gcc/testsuite/gfortran.dg/gomp/declare-variant-2a.f90
  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
! 13973259f6a5a98a9fddf5cea3b62ac9  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
*************** fa41d6dd0ec4bc45beb3cbce04bf821d  gcc/te
*** 103282,103289 ****
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
  149b6cbd5ca01b24f687f2b432729419  gcc/testsuite/gfortran.dg/gomp/depend-6.f90
! fcda5a12452ac185d1c306d0e8222556  gcc/testsuite/gfortran.dg/gomp/depend-iterator-1.f90
! 55c61de7187ed22caab746d7474c5e93  gcc/testsuite/gfortran.dg/gomp/depend-iterator-2.f90
  8559f178a456958c370535d4d838c9d7  gcc/testsuite/gfortran.dg/gomp/depend-iterator-3.f90
  1531f847e56d02d5d23beb0a2ff5cd9c  gcc/testsuite/gfortran.dg/gomp/depobj-1.f90
  1db04c92916620d84c79364d4cc275b9  gcc/testsuite/gfortran.dg/gomp/depobj-2.f90
--- 115704,115711 ----
  b925235365ea6a6930ecc74136916763  gcc/testsuite/gfortran.dg/gomp/depend-4.f90
  c8d298cef2970ce3ead77751bfa3b24b  gcc/testsuite/gfortran.dg/gomp/depend-5.f90
  149b6cbd5ca01b24f687f2b432729419  gcc/testsuite/gfortran.dg/gomp/depend-6.f90
! 74775590a88c2132d92954e571525719  gcc/testsuite/gfortran.dg/gomp/depend-iterator-1.f90
! 277094a6bf85ed9fd5befd812cd95bc9  gcc/testsuite/gfortran.dg/gomp/depend-iterator-2.f90
  8559f178a456958c370535d4d838c9d7  gcc/testsuite/gfortran.dg/gomp/depend-iterator-3.f90
  1531f847e56d02d5d23beb0a2ff5cd9c  gcc/testsuite/gfortran.dg/gomp/depobj-1.f90
  1db04c92916620d84c79364d4cc275b9  gcc/testsuite/gfortran.dg/gomp/depobj-2.f90
*************** c6c0a114dc31d5c006e20ffa43eec35c  gcc/te
*** 103304,103309 ****
--- 115726,115733 ----
  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
+ b8a179ca20ec807e40c928b3a14147fe  gcc/testsuite/gfortran.dg/gomp/dyn_groupprivate-1.f90
+ a0cce0063b9cdfbe266e9bdad336a80d  gcc/testsuite/gfortran.dg/gomp/dyn_groupprivate-2.f90
  aa1be4316dee2804f538b30041f7be95  gcc/testsuite/gfortran.dg/gomp/error-1.f90
  0d3656be08c9011e56a522c5e7cddebd  gcc/testsuite/gfortran.dg/gomp/error-2.f90
  79e1726bb3cc84913d21c0af63e764a6  gcc/testsuite/gfortran.dg/gomp/error-3.f90
*************** d3b68a58adb3f5eb2533a30d870f100e  gcc/te
*** 103312,103318 ****
  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
--- 115736,115749 ----
  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
! 3c77cc554a87685891a7f77758bd36e0  gcc/testsuite/gfortran.dg/gomp/gomp.exp
! e52932aa9226a804d3d0e4307153d1f5  gcc/testsuite/gfortran.dg/gomp/groupprivate-1.f90
! 9cc4abb07953d1d269daa8692f797fa8  gcc/testsuite/gfortran.dg/gomp/groupprivate-2.f90
! 800607f306915139c76b86d502781a09  gcc/testsuite/gfortran.dg/gomp/groupprivate-3.f90
! f713651d757bfd384979c66014b44946  gcc/testsuite/gfortran.dg/gomp/groupprivate-4.f90
! 6f39af90d777638e20c319ab947b7236  gcc/testsuite/gfortran.dg/gomp/groupprivate-5.f90
! 261d16055be0b87bc6c0f82c346717f4  gcc/testsuite/gfortran.dg/gomp/groupprivate-6.f90
! db4f6771a343d62fbf008aec0952b548  gcc/testsuite/gfortran.dg/gomp/groupprivate-7.f90
  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
*************** bab74adf4eb79eb22ea45dc4908e7686  gcc/te
*** 103321,103375 ****
  dd8eb14846f7f04270cbe1aa6c76b6d5  gcc/testsuite/gfortran.dg/gomp/imperfect3.f90
  2c3dad51a1302b32e7e17c9fa25832fd  gcc/testsuite/gfortran.dg/gomp/imperfect4.f90
  8412a3b549c1235c04041ce37c52246c  gcc/testsuite/gfortran.dg/gomp/imperfect5.f90
! c20118617178c3c6359815c5134a798a  gcc/testsuite/gfortran.dg/gomp/implicit-save.f90
  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
! 4dd4181b247ac3f79a6523a11f774cdc  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-1.f90
  af04268cd1ba9085e47cbae173428261  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-2.f90
  8da702190ab885b30f172e950f2352c7  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-3.f90
  18ac4502ea33e5ec7eb9987e4f08464a  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-4.f90
  0324d1aeff2c9703006e512f071b9b0f  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-5.f90
! fcfec1b14709740892410ae1c647ba42  gcc/testsuite/gfortran.dg/gomp/linear-1.f90
! 6371b71518c3bb790af2e59601569454  gcc/testsuite/gfortran.dg/gomp/linear-2.f90
! bfeddbad49017a5997209b1c1ce90c42  gcc/testsuite/gfortran.dg/gomp/linear-3.f90
! 710df3527ce9a75d9c8e3893dc293417  gcc/testsuite/gfortran.dg/gomp/linear-4.f90
  7ac1c4413579cb25270f7dceaccbea46  gcc/testsuite/gfortran.dg/gomp/linear-5.f90
! f2a3c11754d246dbe83f8e48b00ea061  gcc/testsuite/gfortran.dg/gomp/linear-6.f90
  a4e7ef5926daf8429df01accd234ddc2  gcc/testsuite/gfortran.dg/gomp/linear-7.f90
  8b81f69306667f7ab92ce3e8cd7a31cf  gcc/testsuite/gfortran.dg/gomp/linear-8.f90
  1bf1a25963d70f206f6b9615dd00b4a3  gcc/testsuite/gfortran.dg/gomp/loop-1.f90
  5d73b1ef8bdead30a661e4167a05e72c  gcc/testsuite/gfortran.dg/gomp/loop-2.f90
  9fc7632ae864eb649dcb18b7f8cab32c  gcc/testsuite/gfortran.dg/gomp/loop-3.f90
! d9fb1de547303f6296a47031238a2a91  gcc/testsuite/gfortran.dg/gomp/loop-4.f90
  f9ef443961a79bdf37522ed835fb9343  gcc/testsuite/gfortran.dg/gomp/loop-5.f90
! 30f19939f66f9036dd94e47a44d71909  gcc/testsuite/gfortran.dg/gomp/loop-exit.f90
  dec560a080ae2757b0acb2325c3aafab  gcc/testsuite/gfortran.dg/gomp/map-1.f90
  11c284b49207de0bcded24256310f939  gcc/testsuite/gfortran.dg/gomp/map-10.f90
  4fc3198a0e28b8286278dfad0e0e1315  gcc/testsuite/gfortran.dg/gomp/map-11.f90
! 8d37da92969529c86d4aefed77de6d7a  gcc/testsuite/gfortran.dg/gomp/map-12.f90
  43569bbc57024a10628df3c4be381f2a  gcc/testsuite/gfortran.dg/gomp/map-2.f90
! c2d8019d8ca18a09c79c939c0a1030f0  gcc/testsuite/gfortran.dg/gomp/map-3.f90
  cd9740173b89307e8f51dcf62b1f0874  gcc/testsuite/gfortran.dg/gomp/map-4.f90
  b76492fcf2fb1505fe0530d8302d7581  gcc/testsuite/gfortran.dg/gomp/map-5.f90
! d9692272c0b81e1742bb5a587d004640  gcc/testsuite/gfortran.dg/gomp/map-6.f90
! 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
--- 115752,115809 ----
  dd8eb14846f7f04270cbe1aa6c76b6d5  gcc/testsuite/gfortran.dg/gomp/imperfect3.f90
  2c3dad51a1302b32e7e17c9fa25832fd  gcc/testsuite/gfortran.dg/gomp/imperfect4.f90
  8412a3b549c1235c04041ce37c52246c  gcc/testsuite/gfortran.dg/gomp/imperfect5.f90
! a400fe9e2f90ccec8d1035d1c0c68ec7  gcc/testsuite/gfortran.dg/gomp/implicit-save.f90
  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
! fd8beb621042a5dfb3a9cdfcd84fba1e  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
! cde9d29b769dbd004139a1e72ec40746  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-1.f90
! fc9274d85ec1319f74d45c9f5ea0f5cd  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-2.f90
! 40b788b2ec8eac9c2223ee5e8426b7f2  gcc/testsuite/gfortran.dg/gomp/is_device_ptr-3.f90
! 251838e2adcdabdf8d2e9f7a9765f511  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-1.f90
  af04268cd1ba9085e47cbae173428261  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-2.f90
  8da702190ab885b30f172e950f2352c7  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-3.f90
  18ac4502ea33e5ec7eb9987e4f08464a  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-4.f90
  0324d1aeff2c9703006e512f071b9b0f  gcc/testsuite/gfortran.dg/gomp/lastprivate-conditional-5.f90
! 0bb217e47cd795cc64f29735e243e326  gcc/testsuite/gfortran.dg/gomp/linear-1.f90
! 07c54677f6cc8aabb333b680b26484f0  gcc/testsuite/gfortran.dg/gomp/linear-2.f90
! f4b439cb265e7f1ce2f6ddea1b686593  gcc/testsuite/gfortran.dg/gomp/linear-3.f90
! 47a0fa4d14d4d34af376c43849c915f6  gcc/testsuite/gfortran.dg/gomp/linear-4.f90
  7ac1c4413579cb25270f7dceaccbea46  gcc/testsuite/gfortran.dg/gomp/linear-5.f90
! 817d822e49d968d77d12bb49db59b8ac  gcc/testsuite/gfortran.dg/gomp/linear-6.f90
  a4e7ef5926daf8429df01accd234ddc2  gcc/testsuite/gfortran.dg/gomp/linear-7.f90
  8b81f69306667f7ab92ce3e8cd7a31cf  gcc/testsuite/gfortran.dg/gomp/linear-8.f90
  1bf1a25963d70f206f6b9615dd00b4a3  gcc/testsuite/gfortran.dg/gomp/loop-1.f90
  5d73b1ef8bdead30a661e4167a05e72c  gcc/testsuite/gfortran.dg/gomp/loop-2.f90
  9fc7632ae864eb649dcb18b7f8cab32c  gcc/testsuite/gfortran.dg/gomp/loop-3.f90
! dc10655e180ad0a1051825a91031195e  gcc/testsuite/gfortran.dg/gomp/loop-4.f90
  f9ef443961a79bdf37522ed835fb9343  gcc/testsuite/gfortran.dg/gomp/loop-5.f90
! 6c5fd0bf7897ea9671386beeacb6687d  gcc/testsuite/gfortran.dg/gomp/loop-exit.f90
  dec560a080ae2757b0acb2325c3aafab  gcc/testsuite/gfortran.dg/gomp/map-1.f90
  11c284b49207de0bcded24256310f939  gcc/testsuite/gfortran.dg/gomp/map-10.f90
  4fc3198a0e28b8286278dfad0e0e1315  gcc/testsuite/gfortran.dg/gomp/map-11.f90
! daa02c0c6e2b5fd126431451fffed529  gcc/testsuite/gfortran.dg/gomp/map-12.f90
  43569bbc57024a10628df3c4be381f2a  gcc/testsuite/gfortran.dg/gomp/map-2.f90
! 0099fa1c745288d7f8036322555c6ef9  gcc/testsuite/gfortran.dg/gomp/map-3.f90
  cd9740173b89307e8f51dcf62b1f0874  gcc/testsuite/gfortran.dg/gomp/map-4.f90
  b76492fcf2fb1505fe0530d8302d7581  gcc/testsuite/gfortran.dg/gomp/map-5.f90
! 7240be7896831071d3b33bc6142bef90  gcc/testsuite/gfortran.dg/gomp/map-6.f90
! 9386777c02f9d7c5173fb0e8c2171f11  gcc/testsuite/gfortran.dg/gomp/map-7.f90
! 7d7d346af5f07416c14bd1e65e77ee39  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
+ 3342189171517704ceefc26729c9af1c  gcc/testsuite/gfortran.dg/gomp/map-subarray-3.f90
+ 50d9e88ef3e24f6a0f0bcc698af2f0bb  gcc/testsuite/gfortran.dg/gomp/map-subarray-4.f90
+ 0fcf24902afdfb50ca313bb63e127456  gcc/testsuite/gfortran.dg/gomp/map-subarray-5.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
*************** e4611087ccbe2da89ff845309c4f0a28  gcc/te
*** 103377,103382 ****
--- 115811,115817 ----
  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
+ ef9f0e624a6e1138111483e1e9cb634b  gcc/testsuite/gfortran.dg/gomp/master-construct-dep.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
*************** b8def6b976bafaca7cf4bbe147909f92  gcc/te
*** 103394,103411 ****
  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
! d4bd33dd71cfc2687d89a40ce9aa0059  gcc/testsuite/gfortran.dg/gomp/nesting-3.f90
  eab54daacd3e5d6012cfbac3a0c1cb18  gcc/testsuite/gfortran.dg/gomp/non-rectangular-loop.f90
  5eb69ee32fb2e3a0ddb2b6d84e0e175c  gcc/testsuite/gfortran.dg/gomp/nontemporal-1.f90
  50c115c8124a5d89918f3466d7eab60a  gcc/testsuite/gfortran.dg/gomp/nontemporal-2.f90
  f9188ccb0e23b81607240441c3714df2  gcc/testsuite/gfortran.dg/gomp/nothing-1.f90
  178861091b905131233646d13eaba131  gcc/testsuite/gfortran.dg/gomp/nothing-2.f90
  3cc8ac1a4c71ccef2cd14409d43c0c2f  gcc/testsuite/gfortran.dg/gomp/nowait-1.f90
! cd03f8a0d20132fe216e0272244aea16  gcc/testsuite/gfortran.dg/gomp/nowait-2.f90
  490e293ad86c435fc0bcef164624d407  gcc/testsuite/gfortran.dg/gomp/nowait-3.f90
! 25610cd5dd461e9fd48920a34199b821  gcc/testsuite/gfortran.dg/gomp/nowait-4.f90
! cd03f8a0d20132fe216e0272244aea16  gcc/testsuite/gfortran.dg/gomp/nowait-5.f90
  cfb5a1542d4d90f61e5067fcaac3be80  gcc/testsuite/gfortran.dg/gomp/nowait-6.f90
  dd9162259e2bd075657e964692c7a68b  gcc/testsuite/gfortran.dg/gomp/nowait-7.f90
  2bdc0b4bf54d9d026d81bf850163570e  gcc/testsuite/gfortran.dg/gomp/nowait-8.f90
--- 115829,115846 ----
  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
! e169ede8459ff98cc22e90213e014227  gcc/testsuite/gfortran.dg/gomp/nesting-2.f90
! 406ee0443b981dd427ad450419ee61c7  gcc/testsuite/gfortran.dg/gomp/nesting-3.f90
  eab54daacd3e5d6012cfbac3a0c1cb18  gcc/testsuite/gfortran.dg/gomp/non-rectangular-loop.f90
  5eb69ee32fb2e3a0ddb2b6d84e0e175c  gcc/testsuite/gfortran.dg/gomp/nontemporal-1.f90
  50c115c8124a5d89918f3466d7eab60a  gcc/testsuite/gfortran.dg/gomp/nontemporal-2.f90
  f9188ccb0e23b81607240441c3714df2  gcc/testsuite/gfortran.dg/gomp/nothing-1.f90
  178861091b905131233646d13eaba131  gcc/testsuite/gfortran.dg/gomp/nothing-2.f90
  3cc8ac1a4c71ccef2cd14409d43c0c2f  gcc/testsuite/gfortran.dg/gomp/nowait-1.f90
! aff8e89c09aeddf7d5d3aadbfb8f7d84  gcc/testsuite/gfortran.dg/gomp/nowait-2.f90
  490e293ad86c435fc0bcef164624d407  gcc/testsuite/gfortran.dg/gomp/nowait-3.f90
! b9b467a2c2fb48ee863302212151d989  gcc/testsuite/gfortran.dg/gomp/nowait-4.f90
! aff8e89c09aeddf7d5d3aadbfb8f7d84  gcc/testsuite/gfortran.dg/gomp/nowait-5.f90
  cfb5a1542d4d90f61e5067fcaac3be80  gcc/testsuite/gfortran.dg/gomp/nowait-6.f90
  dd9162259e2bd075657e964692c7a68b  gcc/testsuite/gfortran.dg/gomp/nowait-7.f90
  2bdc0b4bf54d9d026d81bf850163570e  gcc/testsuite/gfortran.dg/gomp/nowait-8.f90
*************** d63391da91e43519d530db761b208cc9  gcc/te
*** 103416,103421 ****
--- 115851,115858 ----
  5d43e477ab60e438b8824d612b24022d  gcc/testsuite/gfortran.dg/gomp/omp_clauses1.f90
  41fb58e8b2edcf7fe98876928e703e8e  gcc/testsuite/gfortran.dg/gomp/omp_do1.f90
  818c401459cd690f09b6456c6af28b9a  gcc/testsuite/gfortran.dg/gomp/omp_do_concurrent.f90
+ 5f5a0d1616e63425912fcb98974f741c  gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device-2.f90
+ 37f87166b7a86247ca4651413f18dda0  gcc/testsuite/gfortran.dg/gomp/omp_get_num_devices_initial_device.f90
  c1f9abec8f22e154bb77201af2f18b23  gcc/testsuite/gfortran.dg/gomp/omp_parallel_1.f90
  073107c55ddf84d8db682f826501e5d5  gcc/testsuite/gfortran.dg/gomp/omp_parse1.f90
  3940c2cd145907f9545b48f9cd30792d  gcc/testsuite/gfortran.dg/gomp/omp_parse2.f
*************** bdca03c79b16b5f9c19e5c92941f5888  gcc/te
*** 103425,103448 ****
  fec41b5c6a0b000823f8815e41c46849  gcc/testsuite/gfortran.dg/gomp/omx-1.f
  f4c867d57c42e9ff424e7bf8e63aca27  gcc/testsuite/gfortran.dg/gomp/omx-2.f
  31f5c4996a25be6d38e18faf28b150b4  gcc/testsuite/gfortran.dg/gomp/openmp-simd-1.f90
! 2b03c97061d19eddde270a6c9dd3fc38  gcc/testsuite/gfortran.dg/gomp/openmp-simd-2.f90
! 7b53af38ad214d98f0d0550bbb80b654  gcc/testsuite/gfortran.dg/gomp/openmp-simd-3.f90
  c86578519526f3523481033c61923ccb  gcc/testsuite/gfortran.dg/gomp/openmp-simd-4.f90
  962b3bb368923a3267954c83793c7d97  gcc/testsuite/gfortran.dg/gomp/openmp-simd-5.f90
  9ace4e530b40cdfe46ee82285a4c3007  gcc/testsuite/gfortran.dg/gomp/openmp-simd-6.f90
  727d8f8adf8d29e41a1fd2901fc06410  gcc/testsuite/gfortran.dg/gomp/openmp-simd-7.f90
  0ad011db4bd5ba5d76c5d459ca3559de  gcc/testsuite/gfortran.dg/gomp/openmp-simd-8.f90
  ab6d18741860d8f9094676890b96e068  gcc/testsuite/gfortran.dg/gomp/order-1.f90
! 618c952f5bbb7326c70d6e7a786f679d  gcc/testsuite/gfortran.dg/gomp/order-2.f90
  f5feeab5c486d27ccc1c9005dc112eff  gcc/testsuite/gfortran.dg/gomp/order-3.f90
  f8e40f23828c760759b3893792acb659  gcc/testsuite/gfortran.dg/gomp/order-4.f90
  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
--- 115862,115885 ----
  fec41b5c6a0b000823f8815e41c46849  gcc/testsuite/gfortran.dg/gomp/omx-1.f
  f4c867d57c42e9ff424e7bf8e63aca27  gcc/testsuite/gfortran.dg/gomp/omx-2.f
  31f5c4996a25be6d38e18faf28b150b4  gcc/testsuite/gfortran.dg/gomp/openmp-simd-1.f90
! bd88a2ad371d6ec3982331d16e220930  gcc/testsuite/gfortran.dg/gomp/openmp-simd-2.f90
! e7b92e07a4fb7ab99fbe633c4c26c946  gcc/testsuite/gfortran.dg/gomp/openmp-simd-3.f90
  c86578519526f3523481033c61923ccb  gcc/testsuite/gfortran.dg/gomp/openmp-simd-4.f90
  962b3bb368923a3267954c83793c7d97  gcc/testsuite/gfortran.dg/gomp/openmp-simd-5.f90
  9ace4e530b40cdfe46ee82285a4c3007  gcc/testsuite/gfortran.dg/gomp/openmp-simd-6.f90
  727d8f8adf8d29e41a1fd2901fc06410  gcc/testsuite/gfortran.dg/gomp/openmp-simd-7.f90
  0ad011db4bd5ba5d76c5d459ca3559de  gcc/testsuite/gfortran.dg/gomp/openmp-simd-8.f90
  ab6d18741860d8f9094676890b96e068  gcc/testsuite/gfortran.dg/gomp/order-1.f90
! 995e372cac7f414c6d8406155e85671b  gcc/testsuite/gfortran.dg/gomp/order-2.f90
  f5feeab5c486d27ccc1c9005dc112eff  gcc/testsuite/gfortran.dg/gomp/order-3.f90
  f8e40f23828c760759b3893792acb659  gcc/testsuite/gfortran.dg/gomp/order-4.f90
  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
! 90ec41dc331ac7669999c960eda7265b  gcc/testsuite/gfortran.dg/gomp/order-8.f90
! 41cb4c2035ba0db4f124531a1646d6ab  gcc/testsuite/gfortran.dg/gomp/order-9.f90
! 9f9f67726dedce0b7ada760b7075ff24  gcc/testsuite/gfortran.dg/gomp/parallel-master-1.f90
! 52a2936d315828f32d6e92776c565212  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/te
*** 103450,103455 ****
--- 115887,115895 ----
  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
+ 390de4d65a27e4b7a8643dbffb713189  gcc/testsuite/gfortran.dg/gomp/pr101760.f90
+ 8b20a4cfa3b2f8bd56fdd2e034a5a32a  gcc/testsuite/gfortran.dg/gomp/pr102314.f90
+ e32d4057d47aefb786a7e251839952e3  gcc/testsuite/gfortran.dg/gomp/pr102430.f90
  8c46c1ee06eca3c9ecb211ced2a97c89  gcc/testsuite/gfortran.dg/gomp/pr102431.f90
  a1a9be8c9080ba2ba338bc6f63b406e3  gcc/testsuite/gfortran.dg/gomp/pr102621.f90
  f523f11e31c8d7a378a90e54f4cc9a88  gcc/testsuite/gfortran.dg/gomp/pr103643.f90
*************** b229abc8cb06bd3633deb0bb940ede08  gcc/te
*** 103458,103476 ****
  3a0477f99d8b3db6f5412df79f7e0e6e  gcc/testsuite/gfortran.dg/gomp/pr104428.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
  18ff1e9a70f7c58228a1509531b146db  gcc/testsuite/gfortran.dg/gomp/pr107214-5.f90
  edeec1fe2488c7117f56e10734af03dc  gcc/testsuite/gfortran.dg/gomp/pr107214-6.f90
  697c52a53eea166cade44a3f935b8caf  gcc/testsuite/gfortran.dg/gomp/pr107214-7.f90
! 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
--- 115898,115937 ----
  3a0477f99d8b3db6f5412df79f7e0e6e  gcc/testsuite/gfortran.dg/gomp/pr104428.f90
  39842b4010b4165bbe821ffc8a903991  gcc/testsuite/gfortran.dg/gomp/pr104757.f90
  b0de5c5053146f58fe1939b9523524e5  gcc/testsuite/gfortran.dg/gomp/pr104826.f90
+ 03811fc7f20cf49b1a8a3abfaefa951a  gcc/testsuite/gfortran.dg/gomp/pr104827.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
  18ff1e9a70f7c58228a1509531b146db  gcc/testsuite/gfortran.dg/gomp/pr107214-5.f90
  edeec1fe2488c7117f56e10734af03dc  gcc/testsuite/gfortran.dg/gomp/pr107214-6.f90
  697c52a53eea166cade44a3f935b8caf  gcc/testsuite/gfortran.dg/gomp/pr107214-7.f90
! 75a523b6ea1c03878cc3bdc6a6346971  gcc/testsuite/gfortran.dg/gomp/pr107214-8.f90
  3beded12a494129bebcc732d85089896  gcc/testsuite/gfortran.dg/gomp/pr107214.f90
+ 999f28c36a4332b9862398973c6f4c18  gcc/testsuite/gfortran.dg/gomp/pr107421.f90
+ 9413acb66d424e7e859e5b387d479808  gcc/testsuite/gfortran.dg/gomp/pr107425.f90
+ 0c6f80bb0ae8c8d07f18df0d3258975b  gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90
+ d0c7e1a3df66c15367b6e07098cf779d  gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90
+ 36c3126b45f005a82111a661b477015f  gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90
+ d8f2aa7090a6dfeba5744e9103fe3bb4  gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90
  616305573acc701769497c1eee637edc  gcc/testsuite/gfortran.dg/gomp/pr114825.f90
  14e2080dbf20d40b1e1572419572cae5  gcc/testsuite/gfortran.dg/gomp/pr115103.f90
  7e57554851ec1cc8a84c063d08c5e85b  gcc/testsuite/gfortran.dg/gomp/pr118790.f90
  6b771a999bde94f57725dc0bd1605b06  gcc/testsuite/gfortran.dg/gomp/pr118965-1.f90
  a4c8e1c741144a0563b7496c35105b96  gcc/testsuite/gfortran.dg/gomp/pr118965-2.f90
+ 519e028cf612ea2d3d6381668ebefc55  gcc/testsuite/gfortran.dg/gomp/pr120180-1.f90
+ d8441305cc895069c13e58f9c1ac4a87  gcc/testsuite/gfortran.dg/gomp/pr120180-2.f90
+ 92194975f61318898bc23ee16a7cd111  gcc/testsuite/gfortran.dg/gomp/pr121452-1.f90
+ 65ede81e6274b2feb64f3e425568715b  gcc/testsuite/gfortran.dg/gomp/pr121452-2.f90
+ 9c2ce128fe51a9730eeae1c0fbc874c7  gcc/testsuite/gfortran.dg/gomp/pr121452-3.f90
+ e08b5cb5191d39e48e3ab1627a6218e0  gcc/testsuite/gfortran.dg/gomp/pr122306-1.f90
+ e3b3c69a2373d8201d048f4a790adc2d  gcc/testsuite/gfortran.dg/gomp/pr122306-2.f90
+ 2b5d02b88f2eb6639bfe155113a237ae  gcc/testsuite/gfortran.dg/gomp/pr122369-1.f90
+ 9da7fda92bce49d154e8d89e5eba94e1  gcc/testsuite/gfortran.dg/gomp/pr122369-2.f90
+ e4bbe444c8eb024e8bf626c941dab7fb  gcc/testsuite/gfortran.dg/gomp/pr122369-3.f90
+ c5e8d48c22353973cc8de5fcf02acbc7  gcc/testsuite/gfortran.dg/gomp/pr122369-4.f90
+ e9d70b4aa944dcb0ee140243cbe8d9c5  gcc/testsuite/gfortran.dg/gomp/pr122508-1.f90
+ b6b48bf58535134c6b2959754f728508  gcc/testsuite/gfortran.dg/gomp/pr122508-2.f90
+ c5dea1d96afbb344ea6c43b443c11e89  gcc/testsuite/gfortran.dg/gomp/pr122570.f
  9a6817790a272cd8153d4303d324c00f  gcc/testsuite/gfortran.dg/gomp/pr26224.f
  d2c74a71f2bea0005d853821e6f0142c  gcc/testsuite/gfortran.dg/gomp/pr27573.f90
  a65c4577a606ba1bdab50e690b269b04  gcc/testsuite/gfortran.dg/gomp/pr29759.f90
*************** abbd279cc7e81d89b58dd804d829ed65  gcc/te
*** 103496,103502 ****
  0784fa1cf4bc9ef82345c80d2f32b6f0  gcc/testsuite/gfortran.dg/gomp/pr45595.f90
  b1d0dcbfd8ebb1bf70bf3d4c08b4e6a8  gcc/testsuite/gfortran.dg/gomp/pr45597.f90
  8be15365cc348700632eb03e92eedffc  gcc/testsuite/gfortran.dg/gomp/pr47331.f90
! 128d8dd37fe27c11274b9de08392f9b9  gcc/testsuite/gfortran.dg/gomp/pr48117.f90
  62851f39d208792f5cfb76e509e86f00  gcc/testsuite/gfortran.dg/gomp/pr48611.f90
  a48ce96e50db497ce8703576a8ef40a4  gcc/testsuite/gfortran.dg/gomp/pr48794-2.f90
  66c2d2d7f643cc553c6340c0786db036  gcc/testsuite/gfortran.dg/gomp/pr48794.f90
--- 115957,115963 ----
  0784fa1cf4bc9ef82345c80d2f32b6f0  gcc/testsuite/gfortran.dg/gomp/pr45595.f90
  b1d0dcbfd8ebb1bf70bf3d4c08b4e6a8  gcc/testsuite/gfortran.dg/gomp/pr45597.f90
  8be15365cc348700632eb03e92eedffc  gcc/testsuite/gfortran.dg/gomp/pr47331.f90
! ddfb3c8c60839caf1d3c787d3e9254c3  gcc/testsuite/gfortran.dg/gomp/pr48117.f90
  62851f39d208792f5cfb76e509e86f00  gcc/testsuite/gfortran.dg/gomp/pr48611.f90
  a48ce96e50db497ce8703576a8ef40a4  gcc/testsuite/gfortran.dg/gomp/pr48794-2.f90
  66c2d2d7f643cc553c6340c0786db036  gcc/testsuite/gfortran.dg/gomp/pr48794.f90
*************** bb35c5bd7245c0d5e4e5f3ed549e7fef  gcc/te
*** 103527,103533 ****
  47d37571010202f39839c25cbfc3f791  gcc/testsuite/gfortran.dg/gomp/pr77665.f90
  e5f0ff2c94fb41e447563955917d04b7  gcc/testsuite/gfortran.dg/gomp/pr77666.f90
  8968b6642e6ba9ea7870f963ca23770a  gcc/testsuite/gfortran.dg/gomp/pr77973.f90
! 3a11d068cb262058109de03c2147fc09  gcc/testsuite/gfortran.dg/gomp/pr78026.f03
  30ccc07af8b92b2bff3f8e459336b7f5  gcc/testsuite/gfortran.dg/gomp/pr78260-2.f90
  82944b2dcb4533aa8669aa80570f7ac9  gcc/testsuite/gfortran.dg/gomp/pr78260-3.f90
  818814829feac80dc1d477b80fcec48f  gcc/testsuite/gfortran.dg/gomp/pr78260.f90
--- 115988,115994 ----
  47d37571010202f39839c25cbfc3f791  gcc/testsuite/gfortran.dg/gomp/pr77665.f90
  e5f0ff2c94fb41e447563955917d04b7  gcc/testsuite/gfortran.dg/gomp/pr77666.f90
  8968b6642e6ba9ea7870f963ca23770a  gcc/testsuite/gfortran.dg/gomp/pr77973.f90
! 1c91e79439d6589886a15eaab01cbb43  gcc/testsuite/gfortran.dg/gomp/pr78026.f03
  30ccc07af8b92b2bff3f8e459336b7f5  gcc/testsuite/gfortran.dg/gomp/pr78260-2.f90
  82944b2dcb4533aa8669aa80570f7ac9  gcc/testsuite/gfortran.dg/gomp/pr78260-3.f90
  818814829feac80dc1d477b80fcec48f  gcc/testsuite/gfortran.dg/gomp/pr78260.f90
*************** cfd3639436beee7a175e6d834a4c6834  gcc/te
*** 103541,103547 ****
  9b10d6e97e6ec036398bc75fe623a968  gcc/testsuite/gfortran.dg/gomp/pr80918.f90
  f5bcea31678114301e0da9c5d60bb564  gcc/testsuite/gfortran.dg/gomp/pr81887.f90
  92640e276a3deabcb0817b450e3c007f  gcc/testsuite/gfortran.dg/gomp/pr82568.f90
! 13b62b43e8c430a8a748b9782ee8d3d1  gcc/testsuite/gfortran.dg/gomp/pr83977.f90
  28b8381f9a6407f3fbdf2a45fe796f66  gcc/testsuite/gfortran.dg/gomp/pr84116.f90
  eaf9460f4ff975f6fc6dcd6a8c5f1500  gcc/testsuite/gfortran.dg/gomp/pr85313.f90
  793bc6a890f694516d4634a933a5cb43  gcc/testsuite/gfortran.dg/gomp/pr85703.f90
--- 116002,116008 ----
  9b10d6e97e6ec036398bc75fe623a968  gcc/testsuite/gfortran.dg/gomp/pr80918.f90
  f5bcea31678114301e0da9c5d60bb564  gcc/testsuite/gfortran.dg/gomp/pr81887.f90
  92640e276a3deabcb0817b450e3c007f  gcc/testsuite/gfortran.dg/gomp/pr82568.f90
! 3e883cb0a570efeffb160741369886c4  gcc/testsuite/gfortran.dg/gomp/pr83977.f90
  28b8381f9a6407f3fbdf2a45fe796f66  gcc/testsuite/gfortran.dg/gomp/pr84116.f90
  eaf9460f4ff975f6fc6dcd6a8c5f1500  gcc/testsuite/gfortran.dg/gomp/pr85313.f90
  793bc6a890f694516d4634a933a5cb43  gcc/testsuite/gfortran.dg/gomp/pr85703.f90
*************** c2c9b1a1db79eedb25331d3565231b66  gcc/te
*** 103554,103570 ****
  6399dd6d481972c65426ae5a0fe674a2  gcc/testsuite/gfortran.dg/gomp/pr89651.f90
  1365d33484c21cf6b603f60889b019a4  gcc/testsuite/gfortran.dg/gomp/pr92977.f90
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
! a921eeb5697bd066712d41d66d374930  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
  f832e5b53ac5754d0490d912e4da9ec6  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
! bcd0369b2e799c3808032efd4c583295  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
! 5a122e0df6f86c9b8f25e3ef0a8de595  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
! 10754ed15a5d6410e61e98492ddcc1a6  gcc/testsuite/gfortran.dg/gomp/pr99928-2.f90
! b564582f56873e1c1671ba8472cd4e7c  gcc/testsuite/gfortran.dg/gomp/pr99928-3.f90
! 40b4f2ef3f3552b786fcb7c63c204257  gcc/testsuite/gfortran.dg/gomp/pr99928-4.f90
! eccea57d37be5c510137e35d54db87b2  gcc/testsuite/gfortran.dg/gomp/pr99928-5.f90
! 64fdae01dc0866fd9b34a72b18aa5d62  gcc/testsuite/gfortran.dg/gomp/pr99928-6.f90
! 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
--- 116015,116033 ----
  6399dd6d481972c65426ae5a0fe674a2  gcc/testsuite/gfortran.dg/gomp/pr89651.f90
  1365d33484c21cf6b603f60889b019a4  gcc/testsuite/gfortran.dg/gomp/pr92977.f90
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
! a60737a927ad7417e1231dbf1000e5c1  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
! a3f6ee03ab79b516d4db9359c21a4896  gcc/testsuite/gfortran.dg/gomp/pr95163.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
+ 8512ba21f2d6bfcb3e878c6c91c4dc17  gcc/testsuite/gfortran.dg/gomp/pr98203.f90
  f832e5b53ac5754d0490d912e4da9ec6  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
! 3331e8d7e65132fd0fcdd59cd90008dc  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
! f594249cbf60d2fa369812e54fded373  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
! 513a3bb13311279addee26524fb5ecc1  gcc/testsuite/gfortran.dg/gomp/pr99928-2.f90
! dbdef7b2e91bd33ee274e75308d2100f  gcc/testsuite/gfortran.dg/gomp/pr99928-3.f90
! eae1176f0c05b615807a8bdfb3dcf8f6  gcc/testsuite/gfortran.dg/gomp/pr99928-4.f90
! aa10d7859d6e78ba5db003536a9084f9  gcc/testsuite/gfortran.dg/gomp/pr99928-5.f90
! 03d4e66579f2284d5a506560657e8460  gcc/testsuite/gfortran.dg/gomp/pr99928-6.f90
! abcd35866af3bc5d5a8997b7059216f0  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
*************** fb0554238513491cab61f8c72f0fb5d5  gcc/te
*** 103575,103581 ****
  14ea0275f3cac52c76c9b2a736035336  gcc/testsuite/gfortran.dg/gomp/reduction-task-2.f90
  a68adcaed6526211be8ca88c99cd653f  gcc/testsuite/gfortran.dg/gomp/reduction-task-2a.f90
  20a03aafef1e43b54b78e701de6e7518  gcc/testsuite/gfortran.dg/gomp/reduction-task-3.f90
! 59e444df8ec8f5ea9859b5aef4d75865  gcc/testsuite/gfortran.dg/gomp/reduction1.f90
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
--- 116038,116044 ----
  14ea0275f3cac52c76c9b2a736035336  gcc/testsuite/gfortran.dg/gomp/reduction-task-2.f90
  a68adcaed6526211be8ca88c99cd653f  gcc/testsuite/gfortran.dg/gomp/reduction-task-2a.f90
  20a03aafef1e43b54b78e701de6e7518  gcc/testsuite/gfortran.dg/gomp/reduction-task-3.f90
! bf0767aabd916c2064887ad44208e156  gcc/testsuite/gfortran.dg/gomp/reduction1.f90
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  9c7956cb365de1302caa4e1e6ffdfdcc  gcc/testsuite/gfortran.dg/gomp/reduction4.f90
*************** aa73cc15d0a821884197ef200cc49dc8  gcc/te
*** 103588,103596 ****
  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
--- 116051,116059 ----
  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
! 86dc4fab74ee4e416f2fb1685938a696  gcc/testsuite/gfortran.dg/gomp/requires-4.f90
  871c853d1a33aa6ec90100b274b61e26  gcc/testsuite/gfortran.dg/gomp/requires-5.f90
! 1e626ceb2dc76f28ceeda7c7e5e1c8e0  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
*************** d56094ad174ac9dd36a007adf8c4fb31  gcc/te
*** 103607,103623 ****
  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
  c7709e0ef8d893a3fa9d2e893d1cb1a7  gcc/testsuite/gfortran.dg/gomp/scope-1.f90
  6d5ecca1c74a442d5b324bc5e3b1524a  gcc/testsuite/gfortran.dg/gomp/scope-2.f90
  c4ea98725e5c211b45cc9e83b4dca2be  gcc/testsuite/gfortran.dg/gomp/scope-5.f90
  70cbd3f99d5ec34e89e7f2fb12f0938e  gcc/testsuite/gfortran.dg/gomp/scope-6.f90
  79dfa2e9e4441b4f7baa74120274ac19  gcc/testsuite/gfortran.dg/gomp/sharing-1.f90
  9dd19a9e9dfc0e4a98f98e8a7fc69049  gcc/testsuite/gfortran.dg/gomp/sharing-2.f90
! 61ab8721e9576883e27967dd80ebb199  gcc/testsuite/gfortran.dg/gomp/sharing-3.f90
  b3d1280c39c6cae9dddab498b1e1eeb4  gcc/testsuite/gfortran.dg/gomp/sharing-4.f90
! 1be41e06c2542eaeda3f3dc714dd101a  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-1.f90
! d492a0ba11cd7662d12ae10d05c32cae  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-2.f90
  2645b64d7f38b00ac8056bed5284cfb5  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-3.f90
  5aa2e0ee8670be7d60e95eb876e49faa  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-4.f90
  0938cf42002e64246f5cfad387f8c0ed  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-5.f90
--- 116070,116086 ----
  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
! ae1839837ca664fa39559a7e703441e7  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
  c7709e0ef8d893a3fa9d2e893d1cb1a7  gcc/testsuite/gfortran.dg/gomp/scope-1.f90
  6d5ecca1c74a442d5b324bc5e3b1524a  gcc/testsuite/gfortran.dg/gomp/scope-2.f90
  c4ea98725e5c211b45cc9e83b4dca2be  gcc/testsuite/gfortran.dg/gomp/scope-5.f90
  70cbd3f99d5ec34e89e7f2fb12f0938e  gcc/testsuite/gfortran.dg/gomp/scope-6.f90
  79dfa2e9e4441b4f7baa74120274ac19  gcc/testsuite/gfortran.dg/gomp/sharing-1.f90
  9dd19a9e9dfc0e4a98f98e8a7fc69049  gcc/testsuite/gfortran.dg/gomp/sharing-2.f90
! fc64cb37c3738dda4203d0b7f045abdc  gcc/testsuite/gfortran.dg/gomp/sharing-3.f90
  b3d1280c39c6cae9dddab498b1e1eeb4  gcc/testsuite/gfortran.dg/gomp/sharing-4.f90
! 7be819d09c269efea52ae9d2a290478b  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-1.f90
! 5d4fae4bcc40648259edea77f34ad30a  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-2.f90
  2645b64d7f38b00ac8056bed5284cfb5  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-3.f90
  5aa2e0ee8670be7d60e95eb876e49faa  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-4.f90
  0938cf42002e64246f5cfad387f8c0ed  gcc/testsuite/gfortran.dg/gomp/strictly-structured-block-5.f90
*************** d492a0ba11cd7662d12ae10d05c32cae  gcc/te
*** 103633,103650 ****
  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
  3c3ee23796192e475b1597bfe4ae9d72  gcc/testsuite/gfortran.dg/gomp/target-parallel1.f90
  69d4ca23e09530908dad71ad87c932c1  gcc/testsuite/gfortran.dg/gomp/target-update-1.f90
! 919bd1d4b3eea35828ead5f8cf204a98  gcc/testsuite/gfortran.dg/gomp/target1.f90
  b75e4a6eaec211becf176c75768a3f3d  gcc/testsuite/gfortran.dg/gomp/target2.f90
  4a93baff2b168f10d86571d18de637ba  gcc/testsuite/gfortran.dg/gomp/target3.f90
  15b47b840694124950869755ba30ce6f  gcc/testsuite/gfortran.dg/gomp/task-detach-1.f90
! 6c1d12034e3ca377a04b7373ef678265  gcc/testsuite/gfortran.dg/gomp/taskloop-1.f90
! ccb7b4451c217a9dd2635e672900c087  gcc/testsuite/gfortran.dg/gomp/taskloop-2.f90
  694a3a8185e7fe47817679c2aeb886c8  gcc/testsuite/gfortran.dg/gomp/taskwait-depend-nowait-1.f90
  1b22afe90e22c058fc805c2720b68de8  gcc/testsuite/gfortran.dg/gomp/taskwait.f90
  c3cfb4ba20d0cf306196d4a7cfcbd04d  gcc/testsuite/gfortran.dg/gomp/teams-3.f90
--- 116096,116114 ----
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
+ d2ca8da69a3b478409a3711ceaa62604  gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90
  a81fcf292a341e29920f0576722dfd3e  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
  874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
  533ad130fc9c9f6a430f9cdefc575831  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-2.f90
  3c3ee23796192e475b1597bfe4ae9d72  gcc/testsuite/gfortran.dg/gomp/target-parallel1.f90
  69d4ca23e09530908dad71ad87c932c1  gcc/testsuite/gfortran.dg/gomp/target-update-1.f90
! ace8eeae9c6c9db051a9c0f4380b3cf1  gcc/testsuite/gfortran.dg/gomp/target1.f90
  b75e4a6eaec211becf176c75768a3f3d  gcc/testsuite/gfortran.dg/gomp/target2.f90
  4a93baff2b168f10d86571d18de637ba  gcc/testsuite/gfortran.dg/gomp/target3.f90
  15b47b840694124950869755ba30ce6f  gcc/testsuite/gfortran.dg/gomp/task-detach-1.f90
! e9189a7fc6380cd6f8b7c7d629f9dd38  gcc/testsuite/gfortran.dg/gomp/taskloop-1.f90
! 5795aa6a070f3603b5b698a910c8ae20  gcc/testsuite/gfortran.dg/gomp/taskloop-2.f90
  694a3a8185e7fe47817679c2aeb886c8  gcc/testsuite/gfortran.dg/gomp/taskwait-depend-nowait-1.f90
  1b22afe90e22c058fc805c2720b68de8  gcc/testsuite/gfortran.dg/gomp/taskwait.f90
  c3cfb4ba20d0cf306196d4a7cfcbd04d  gcc/testsuite/gfortran.dg/gomp/teams-3.f90
*************** f2587050f986e340a57d1dff27f19650  gcc/te
*** 103765,103774 ****
  691f6ca9c2e2576d299447ffcbc1b4b2  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-52.f90
  fe0a3478e4428c993a82f7b6e0a66c7b  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-53.f90
  e5a965c0d4fde40f267b99ad13512653  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-54.f90
! bab0bace2772a0e3433627668852a5c2  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-55.f90
! fb627f186c63129ab959ab9b1fd3d46c  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-56.f90
! 26f92a3276f3a5c5b7329197037922bc  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-57.f90
! 99cae2704f821f984f06c5a51e636448  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-58.f90
  4fe9b6c63d41bbfdcd688517fbcb9a45  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-6.f90
  3b44c5b537ef809faf8036a38c923073  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-7.f90
  f5b9adb72b23db9e9be45e89cefe8af0  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-8.f90
--- 116229,116238 ----
  691f6ca9c2e2576d299447ffcbc1b4b2  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-52.f90
  fe0a3478e4428c993a82f7b6e0a66c7b  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-53.f90
  e5a965c0d4fde40f267b99ad13512653  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-54.f90
! fd699d1dd641c91bd9bce60f5b0e58ae  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-55.f90
! 0a68551d081825cbde4f86b012697df7  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-56.f90
! ea4dce83295553cdcaa4bcbcad574c1d  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-57.f90
! 361fd6e63567665ef83b531c10c39dc2  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-58.f90
  4fe9b6c63d41bbfdcd688517fbcb9a45  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-6.f90
  3b44c5b537ef809faf8036a38c923073  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-7.f90
  f5b9adb72b23db9e9be45e89cefe8af0  gcc/testsuite/gfortran.dg/gomp/workshare-reduction-8.f90
*************** b668767cebd1d81ba2d2ca1138456cbe  gcc/te
*** 103791,103797 ****
  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
--- 116255,116261 ----
  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
! 2febfeea9e8c2855e94162f04689b26e  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
*************** c5a256733781be2dc88ea518b8758391  gcc/te
*** 103893,103900 ****
  daa1172ed1d5a6072057b20aaca3b1ec  gcc/testsuite/gfortran.dg/graphite/scop-1.f
  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
  f6dc189e3efd8e05cb4f9668eaf8fdbe  gcc/testsuite/gfortran.dg/guality/pr120193.f90
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
--- 116357,116364 ----
  daa1172ed1d5a6072057b20aaca3b1ec  gcc/testsuite/gfortran.dg/graphite/scop-1.f
  702b0cdf61e5478dccaf83e842bc3466  gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90
  7f4798472e54ab24309f0edab16c91d1  gcc/testsuite/gfortran.dg/graphite/vect-pr94043.f90
! 6d96f31789e9318047e153d50e613791  gcc/testsuite/gfortran.dg/guality/arg1.f90
! 4f65ccf420e9a7c519d9a87031a8248d  gcc/testsuite/gfortran.dg/guality/guality.exp
  d4160e104059a3b57d5b80ddb9140570  gcc/testsuite/gfortran.dg/guality/pr119190.f90
  f6dc189e3efd8e05cb4f9668eaf8fdbe  gcc/testsuite/gfortran.dg/guality/pr120193.f90
  9e2790792b04c03a1a0860c862a27b4b  gcc/testsuite/gfortran.dg/guality/pr41558.f90
*************** fd1ab87dcb96b3b35e429092acdf62f6  gcc/te
*** 103906,103912 ****
  a805b53e8b625f6394676474b375610b  gcc/testsuite/gfortran.dg/hollerith6.f90
  3804a606661c44dcde42354efd909caf  gcc/testsuite/gfortran.dg/hollerith7.f90
  b3294424eef26299725174c763e3af18  gcc/testsuite/gfortran.dg/hollerith8.f90
! 28f596789f308540326b3fac6fbf8670  gcc/testsuite/gfortran.dg/hollerith_1.f90
  d2fa4aab758aef0119d4ea5d8a30eefa  gcc/testsuite/gfortran.dg/hollerith_9.f90
  f31f6526046c5b28c1e7c52a531c8cae  gcc/testsuite/gfortran.dg/hollerith_character_array_constructor.f90
  3bd31693d62de8131d8e4953932d1526  gcc/testsuite/gfortran.dg/hollerith_f95.f90
--- 116370,116376 ----
  a805b53e8b625f6394676474b375610b  gcc/testsuite/gfortran.dg/hollerith6.f90
  3804a606661c44dcde42354efd909caf  gcc/testsuite/gfortran.dg/hollerith7.f90
  b3294424eef26299725174c763e3af18  gcc/testsuite/gfortran.dg/hollerith8.f90
! f24901be030a69e70dca99f743cd8a16  gcc/testsuite/gfortran.dg/hollerith_1.f90
  d2fa4aab758aef0119d4ea5d8a30eefa  gcc/testsuite/gfortran.dg/hollerith_9.f90
  f31f6526046c5b28c1e7c52a531c8cae  gcc/testsuite/gfortran.dg/hollerith_character_array_constructor.f90
  3bd31693d62de8131d8e4953932d1526  gcc/testsuite/gfortran.dg/hollerith_f95.f90
*************** b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/te
*** 103952,103958 ****
  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
--- 116416,116422 ----
  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
! 56d255be8ee494594d6dd1d0943726ff  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
*************** b75cb93f87f099ad715aceb9cb7b1bf2  gcc/te
*** 104037,104052 ****
  1f7a9307002a1f0f2a5f8eb76998dcda  gcc/testsuite/gfortran.dg/implied_do_io_6.f90
  2b548a8a46da28ac4ce23e2509a886fc  gcc/testsuite/gfortran.dg/implied_do_io_7.f90
  1b11291348a686162c0e48c6b1b5cd66  gcc/testsuite/gfortran.dg/implied_do_io_8.f90
  a8761a2aaffb7680e80dcad5eceada12  gcc/testsuite/gfortran.dg/implied_shape_1.f08
  f9528d7042bf84bf037d6e2b109272ec  gcc/testsuite/gfortran.dg/implied_shape_2.f90
  1b2b68c816459c1a9395771e9851de87  gcc/testsuite/gfortran.dg/implied_shape_3.f08
  0ec311cea2ac2c8347726d9488fca576  gcc/testsuite/gfortran.dg/implied_shape_4.f90
  c4dc7637ce6ee75800a350bddf95a6b2  gcc/testsuite/gfortran.dg/implied_shape_5.f90
! e6959f502764a61ef25925560ccc35a1  gcc/testsuite/gfortran.dg/import.f90
  ea1b1f8cf0ee787e7d0c693d6c3fc9e2  gcc/testsuite/gfortran.dg/import10.f90
  16022a993227b688a8bfceb5feae8495  gcc/testsuite/gfortran.dg/import11.f90
  94cf154a5c4d1c75d4ab7c9ed320a2c9  gcc/testsuite/gfortran.dg/import2.f90
! 7502ee662ca0c26ef7b3a6547c048936  gcc/testsuite/gfortran.dg/import3.f90
  149a0814da75f9fc28e2a049ff78ce07  gcc/testsuite/gfortran.dg/import4.f90
  c72354bb17ff03ee11a1bd2d82c56207  gcc/testsuite/gfortran.dg/import5.f90
  a3cc802a819f33ed71f4945553bb4ac6  gcc/testsuite/gfortran.dg/import6.f90
--- 116501,116519 ----
  1f7a9307002a1f0f2a5f8eb76998dcda  gcc/testsuite/gfortran.dg/implied_do_io_6.f90
  2b548a8a46da28ac4ce23e2509a886fc  gcc/testsuite/gfortran.dg/implied_do_io_7.f90
  1b11291348a686162c0e48c6b1b5cd66  gcc/testsuite/gfortran.dg/implied_do_io_8.f90
+ f9c9e0932087ab8751e466c8efd22612  gcc/testsuite/gfortran.dg/implied_do_io_9.f90
  a8761a2aaffb7680e80dcad5eceada12  gcc/testsuite/gfortran.dg/implied_shape_1.f08
  f9528d7042bf84bf037d6e2b109272ec  gcc/testsuite/gfortran.dg/implied_shape_2.f90
  1b2b68c816459c1a9395771e9851de87  gcc/testsuite/gfortran.dg/implied_shape_3.f08
  0ec311cea2ac2c8347726d9488fca576  gcc/testsuite/gfortran.dg/implied_shape_4.f90
  c4dc7637ce6ee75800a350bddf95a6b2  gcc/testsuite/gfortran.dg/implied_shape_5.f90
! 574b3a996c7d0296245696e3d39abad6  gcc/testsuite/gfortran.dg/import.f90
  ea1b1f8cf0ee787e7d0c693d6c3fc9e2  gcc/testsuite/gfortran.dg/import10.f90
  16022a993227b688a8bfceb5feae8495  gcc/testsuite/gfortran.dg/import11.f90
+ 3a3b6144cda61f31853ff73e0f058d0a  gcc/testsuite/gfortran.dg/import12.f90
+ 27134ec24c0219c1db134d0adb0b2d4b  gcc/testsuite/gfortran.dg/import13.f90
  94cf154a5c4d1c75d4ab7c9ed320a2c9  gcc/testsuite/gfortran.dg/import2.f90
! 4c9cdc951a2a6aeea2342059d53b0476  gcc/testsuite/gfortran.dg/import3.f90
  149a0814da75f9fc28e2a049ff78ce07  gcc/testsuite/gfortran.dg/import4.f90
  c72354bb17ff03ee11a1bd2d82c56207  gcc/testsuite/gfortran.dg/import5.f90
  a3cc802a819f33ed71f4945553bb4ac6  gcc/testsuite/gfortran.dg/import6.f90
*************** ec558a82bb4b8209168624a762e13383  gcc/te
*** 104146,104152 ****
  488f14e62a4815a2fdf65173e83ea2af  gcc/testsuite/gfortran.dg/initialization_6.f90
  452645ba47a1260f909898a7313d9d8f  gcc/testsuite/gfortran.dg/initialization_7.f90
  cc4d6e061d5fbfc0742e0c48dad42d09  gcc/testsuite/gfortran.dg/initialization_8.f90
! d4d8a181bcb7eb756cf1498c62c9f6e7  gcc/testsuite/gfortran.dg/initialization_9.f90
  1cc76d4c1acac6297df84e3574966378  gcc/testsuite/gfortran.dg/inline_matmul_1.f90
  77f3febffafae6303787ea418d1d31d5  gcc/testsuite/gfortran.dg/inline_matmul_10.f90
  78ba6e618e4a1cd6e7597233a5e8e65d  gcc/testsuite/gfortran.dg/inline_matmul_11.f90
--- 116613,116619 ----
  488f14e62a4815a2fdf65173e83ea2af  gcc/testsuite/gfortran.dg/initialization_6.f90
  452645ba47a1260f909898a7313d9d8f  gcc/testsuite/gfortran.dg/initialization_7.f90
  cc4d6e061d5fbfc0742e0c48dad42d09  gcc/testsuite/gfortran.dg/initialization_8.f90
! 113aa5e18ce48309d252bdc0c12429de  gcc/testsuite/gfortran.dg/initialization_9.f90
  1cc76d4c1acac6297df84e3574966378  gcc/testsuite/gfortran.dg/inline_matmul_1.f90
  77f3febffafae6303787ea418d1d31d5  gcc/testsuite/gfortran.dg/inline_matmul_10.f90
  78ba6e618e4a1cd6e7597233a5e8e65d  gcc/testsuite/gfortran.dg/inline_matmul_11.f90
*************** acad20cfccb57d2647ecdf23fe5b886a  gcc/te
*** 104154,104160 ****
  fbf80885f0b7ba963b15836edf5d44e2  gcc/testsuite/gfortran.dg/inline_matmul_13.f90
  3f2f902262a56ac5434afbf85af50515  gcc/testsuite/gfortran.dg/inline_matmul_14.f90
  28d702d90ec2e4642ca7fe47281a7389  gcc/testsuite/gfortran.dg/inline_matmul_15.f90
! b7733e0b9862cb91e03cf6880071acc4  gcc/testsuite/gfortran.dg/inline_matmul_16.f90
  900a106ff5119b0b92900038676e75a2  gcc/testsuite/gfortran.dg/inline_matmul_17.f90
  dee6ff6cec856fe1f42312c1d4fd4807  gcc/testsuite/gfortran.dg/inline_matmul_18.f90
  2d0cc489aae9a8f125cf641cb1912f6c  gcc/testsuite/gfortran.dg/inline_matmul_19.f90
--- 116621,116627 ----
  fbf80885f0b7ba963b15836edf5d44e2  gcc/testsuite/gfortran.dg/inline_matmul_13.f90
  3f2f902262a56ac5434afbf85af50515  gcc/testsuite/gfortran.dg/inline_matmul_14.f90
  28d702d90ec2e4642ca7fe47281a7389  gcc/testsuite/gfortran.dg/inline_matmul_15.f90
! 510883dff0910547171496c50f6e7aca  gcc/testsuite/gfortran.dg/inline_matmul_16.f90
  900a106ff5119b0b92900038676e75a2  gcc/testsuite/gfortran.dg/inline_matmul_17.f90
  dee6ff6cec856fe1f42312c1d4fd4807  gcc/testsuite/gfortran.dg/inline_matmul_18.f90
  2d0cc489aae9a8f125cf641cb1912f6c  gcc/testsuite/gfortran.dg/inline_matmul_19.f90
*************** e5a418513e079e50ea576e021cf5ad8e  gcc/te
*** 104165,104170 ****
--- 116632,116638 ----
  1545bc137f7bcb397e7986a3324b63be  gcc/testsuite/gfortran.dg/inline_matmul_23.f90
  89a35f94060b171becdc54771a02040b  gcc/testsuite/gfortran.dg/inline_matmul_24.f90
  d5dddad98efc37928795b446cb8d6501  gcc/testsuite/gfortran.dg/inline_matmul_25.f90
+ 4887d0ef96e236941f816ecf873abb25  gcc/testsuite/gfortran.dg/inline_matmul_26.f90
  ffdb4ca68f61f3bd618415335c9c7c21  gcc/testsuite/gfortran.dg/inline_matmul_3.f90
  f95e5fd479c839cfa9cb3ac127ee7584  gcc/testsuite/gfortran.dg/inline_matmul_4.f90
  6cb787ca0dac6ea814c8af4ac7cb8022  gcc/testsuite/gfortran.dg/inline_matmul_5.f90
*************** f9b5b9b94495a638b782238b568ce680  gcc/te
*** 104219,104233 ****
  666e3cc15f36ed1a1563118d5ffb6869  gcc/testsuite/gfortran.dg/int_range_io_1.f90
  8ad0e5ed51c054fefd4a1619ce84a9e3  gcc/testsuite/gfortran.dg/integer_exponentiation_1.f90
  a784a7cc799cc5fc849a973a4ebff429  gcc/testsuite/gfortran.dg/integer_exponentiation_2.f90
! c7199a7f7c51b93670e965da1d668e97  gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
  ae15efd6a7c1892fccaf99f1b6fa020b  gcc/testsuite/gfortran.dg/integer_exponentiation_4.f90
! ce503c26e91680933d6b2da36dae11d3  gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
  5436c9710c4dbacc08026642a5d88b2d  gcc/testsuite/gfortran.dg/integer_exponentiation_6.F90
  0015da9ffa828cd555fcffad1c400715  gcc/testsuite/gfortran.dg/integer_exponentiation_7.f90
  05d602dc265060112a645567473b9a65  gcc/testsuite/gfortran.dg/integer_plus.f90
  ba84e533d9d999d5cafa2eeaa917daa3  gcc/testsuite/gfortran.dg/intent_decl_1.f90
  9a94a4b4c3991300273d3eff16279572  gcc/testsuite/gfortran.dg/intent_optimize_1.f90
! 7bbab5a91b2699198db773733c4a13d4  gcc/testsuite/gfortran.dg/intent_optimize_10.f90
  22c1f90f08c40546088dde105474e28c  gcc/testsuite/gfortran.dg/intent_optimize_2.f90
  88021d562ad8f075c52113ab0ba9582c  gcc/testsuite/gfortran.dg/intent_optimize_3.f90
  91ea197b8dde98766b625414c120237d  gcc/testsuite/gfortran.dg/intent_optimize_4.f90
--- 116687,116701 ----
  666e3cc15f36ed1a1563118d5ffb6869  gcc/testsuite/gfortran.dg/int_range_io_1.f90
  8ad0e5ed51c054fefd4a1619ce84a9e3  gcc/testsuite/gfortran.dg/integer_exponentiation_1.f90
  a784a7cc799cc5fc849a973a4ebff429  gcc/testsuite/gfortran.dg/integer_exponentiation_2.f90
! 01de1bbadea2c30ff3054eaa5deb9494  gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
  ae15efd6a7c1892fccaf99f1b6fa020b  gcc/testsuite/gfortran.dg/integer_exponentiation_4.f90
! b9c90ea6ebc627389cab2b42a9fc8dea  gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
  5436c9710c4dbacc08026642a5d88b2d  gcc/testsuite/gfortran.dg/integer_exponentiation_6.F90
  0015da9ffa828cd555fcffad1c400715  gcc/testsuite/gfortran.dg/integer_exponentiation_7.f90
  05d602dc265060112a645567473b9a65  gcc/testsuite/gfortran.dg/integer_plus.f90
  ba84e533d9d999d5cafa2eeaa917daa3  gcc/testsuite/gfortran.dg/intent_decl_1.f90
  9a94a4b4c3991300273d3eff16279572  gcc/testsuite/gfortran.dg/intent_optimize_1.f90
! 403fb14307cbba890ba36a6473f91432  gcc/testsuite/gfortran.dg/intent_optimize_10.f90
  22c1f90f08c40546088dde105474e28c  gcc/testsuite/gfortran.dg/intent_optimize_2.f90
  88021d562ad8f075c52113ab0ba9582c  gcc/testsuite/gfortran.dg/intent_optimize_3.f90
  91ea197b8dde98766b625414c120237d  gcc/testsuite/gfortran.dg/intent_optimize_4.f90
*************** aaf42fffbdb274f0f43b9ed58d6cde7f  gcc/te
*** 104266,104272 ****
  b81939fbc1e04cd0f35d5940d11a69b2  gcc/testsuite/gfortran.dg/interface_13.f90
  85acf338bc6bb2a0c454031cec28f2e3  gcc/testsuite/gfortran.dg/interface_14.f90
  d924bdc542707fe8acced1b7741859cd  gcc/testsuite/gfortran.dg/interface_15.f90
! c56e26fb28b30b5d6bc86f44ec3d4fe4  gcc/testsuite/gfortran.dg/interface_16.f90
  1ceed116ae517ff6cfc92393589f25bf  gcc/testsuite/gfortran.dg/interface_17.f90
  0e38de22b8a37860231db85750ab6248  gcc/testsuite/gfortran.dg/interface_18.f90
  9d523e845bda900d7e8d6428e3203666  gcc/testsuite/gfortran.dg/interface_19.f90
--- 116734,116740 ----
  b81939fbc1e04cd0f35d5940d11a69b2  gcc/testsuite/gfortran.dg/interface_13.f90
  85acf338bc6bb2a0c454031cec28f2e3  gcc/testsuite/gfortran.dg/interface_14.f90
  d924bdc542707fe8acced1b7741859cd  gcc/testsuite/gfortran.dg/interface_15.f90
! 0aa52a11d14267ff737dfda030c764a8  gcc/testsuite/gfortran.dg/interface_16.f90
  1ceed116ae517ff6cfc92393589f25bf  gcc/testsuite/gfortran.dg/interface_17.f90
  0e38de22b8a37860231db85750ab6248  gcc/testsuite/gfortran.dg/interface_18.f90
  9d523e845bda900d7e8d6428e3203666  gcc/testsuite/gfortran.dg/interface_19.f90
*************** b3de2cdb7dfd995e8d4a97fabcc29a38  gcc/te
*** 104327,104332 ****
--- 116795,116801 ----
  e797a26594e33f4316a85af1fe223cbc  gcc/testsuite/gfortran.dg/interface_abstract_3.f90
  a30d85d2601e16438a18162122cbc190  gcc/testsuite/gfortran.dg/interface_abstract_4.f90
  bb1e6a032a10a9e1ff7d9a5d79c13aa6  gcc/testsuite/gfortran.dg/interface_abstract_5.f90
+ a584146c98b61024b29fba4d0cf9aa8c  gcc/testsuite/gfortran.dg/interface_abstract_6.f90
  33a2f608c30f217c3799ca2ecec2ffec  gcc/testsuite/gfortran.dg/interface_assignment_1.f90
  4f0c646f0732570a97ff9a9dc8755be6  gcc/testsuite/gfortran.dg/interface_assignment_2.f90
  91f77567fb0079c826db40c2ce9296c0  gcc/testsuite/gfortran.dg/interface_assignment_3.f90
*************** c20fd15a7b2e66c8ae01f70d95fb7779  gcc/te
*** 104392,104398 ****
  8de5b5da5c0b6404e976e90dd262d8ee  gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
  01e0ee064d6086b30abccca8fc43a7e3  gcc/testsuite/gfortran.dg/intrinsic_actual_2.f90
  783e2c030e71ba529911e2569d83793f  gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90
! 8bbf9648b56711afd349b09f68edd79c  gcc/testsuite/gfortran.dg/intrinsic_actual_4.f90
  6a393f5eb99e093b9217f6ea5f8bb9d0  gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_1.f90
  73b6ad811e05c03fda87e9cec3f657cc  gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_2.f90
  11c58964c4de125227080f9765b50025  gcc/testsuite/gfortran.dg/intrinsic_bounds_1.f90
--- 116861,116867 ----
  8de5b5da5c0b6404e976e90dd262d8ee  gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
  01e0ee064d6086b30abccca8fc43a7e3  gcc/testsuite/gfortran.dg/intrinsic_actual_2.f90
  783e2c030e71ba529911e2569d83793f  gcc/testsuite/gfortran.dg/intrinsic_actual_3.f90
! ecaacf1a8e6cf6d27acf0728314a8bfa  gcc/testsuite/gfortran.dg/intrinsic_actual_4.f90
  6a393f5eb99e093b9217f6ea5f8bb9d0  gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_1.f90
  73b6ad811e05c03fda87e9cec3f657cc  gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_2.f90
  11c58964c4de125227080f9765b50025  gcc/testsuite/gfortran.dg/intrinsic_bounds_1.f90
*************** c00773edfc881b17f13e26aebff995c8  gcc/te
*** 104446,104452 ****
  9cf20b378a83e3ec18b3c34171141908  gcc/testsuite/gfortran.dg/invalid_interface_assignment.f90
  6e1095726bcbc85e84cf16b7a8c20978  gcc/testsuite/gfortran.dg/invalid_name.f90
  1a3e3b21266531966f2fcdb0ff566863  gcc/testsuite/gfortran.dg/invalid_procedure_name.f90
! 537443ae507e59e46fee44b874d75eb7  gcc/testsuite/gfortran.dg/io_constraints_1.f90
  e8802e8eb3b2f944cc72a425d0f1fafb  gcc/testsuite/gfortran.dg/io_constraints_10.f90
  9efd536c9404cdcc82d85987ffb83e7f  gcc/testsuite/gfortran.dg/io_constraints_11.f90
  b54c0bbc265e975c83078b5bf84ad306  gcc/testsuite/gfortran.dg/io_constraints_12.f90
--- 116915,116921 ----
  9cf20b378a83e3ec18b3c34171141908  gcc/testsuite/gfortran.dg/invalid_interface_assignment.f90
  6e1095726bcbc85e84cf16b7a8c20978  gcc/testsuite/gfortran.dg/invalid_name.f90
  1a3e3b21266531966f2fcdb0ff566863  gcc/testsuite/gfortran.dg/invalid_procedure_name.f90
! 0dc2969d7204416727e07391dfe077bc  gcc/testsuite/gfortran.dg/io_constraints_1.f90
  e8802e8eb3b2f944cc72a425d0f1fafb  gcc/testsuite/gfortran.dg/io_constraints_10.f90
  9efd536c9404cdcc82d85987ffb83e7f  gcc/testsuite/gfortran.dg/io_constraints_11.f90
  b54c0bbc265e975c83078b5bf84ad306  gcc/testsuite/gfortran.dg/io_constraints_12.f90
*************** b54c0bbc265e975c83078b5bf84ad306  gcc/te
*** 104456,104462 ****
  bd0a0b1f1b238022fb299e855b62d052  gcc/testsuite/gfortran.dg/io_constraints_16.f90
  1bc5976d401a2f4f9f3da730d64e1898  gcc/testsuite/gfortran.dg/io_constraints_17.f90
  d0d965566bc4d217be1c357a0e3e6f30  gcc/testsuite/gfortran.dg/io_constraints_18.f90
! 57148c32c9f17a73d6a95327e54e88fa  gcc/testsuite/gfortran.dg/io_constraints_2.f90
  c98833fbd70a07ed455392f1eee2388f  gcc/testsuite/gfortran.dg/io_constraints_3.f90
  3214be0ec292a992b7a113f1492101d3  gcc/testsuite/gfortran.dg/io_constraints_4.f90
  02e331fdf3845fb50165b48043754683  gcc/testsuite/gfortran.dg/io_constraints_5.f90
--- 116925,116931 ----
  bd0a0b1f1b238022fb299e855b62d052  gcc/testsuite/gfortran.dg/io_constraints_16.f90
  1bc5976d401a2f4f9f3da730d64e1898  gcc/testsuite/gfortran.dg/io_constraints_17.f90
  d0d965566bc4d217be1c357a0e3e6f30  gcc/testsuite/gfortran.dg/io_constraints_18.f90
! b26dcfd0b010ed8fb32314cdbc6583e3  gcc/testsuite/gfortran.dg/io_constraints_2.f90
  c98833fbd70a07ed455392f1eee2388f  gcc/testsuite/gfortran.dg/io_constraints_3.f90
  3214be0ec292a992b7a113f1492101d3  gcc/testsuite/gfortran.dg/io_constraints_4.f90
  02e331fdf3845fb50165b48043754683  gcc/testsuite/gfortran.dg/io_constraints_5.f90
*************** ae3f6e29ad3108163b5c5c6a5f70ef7c  gcc/te
*** 104495,104500 ****
--- 116964,116970 ----
  ce08d00725a7d8d4e9547e8bf55eaa4b  gcc/testsuite/gfortran.dg/is_contiguous_2.f90
  b6282b55783f0b1b931571f793113587  gcc/testsuite/gfortran.dg/is_contiguous_3.f90
  d64f2f360e5963a4bea9642fa7bf28c2  gcc/testsuite/gfortran.dg/is_contiguous_4.f90
+ ebc7811d4f30308fbc8ee420f6168425  gcc/testsuite/gfortran.dg/is_contiguous_5.f90
  765cb2ca72a98a43c69ea99a61aa0a59  gcc/testsuite/gfortran.dg/is_iostat_end_eor_1.f90
  ca491b51342a862f4f525db35073fe93  gcc/testsuite/gfortran.dg/is_iostat_end_eor_2.f90
  e29de44a3798652da0c04b03153d2639  gcc/testsuite/gfortran.dg/ishft_1.f90
*************** a6d9cfceb231c2cf1ded28bdcd94313b  gcc/te
*** 104611,104617 ****
  2cde76e6e4f3175cf21675c3a4e3dcc4  gcc/testsuite/gfortran.dg/logint_1.f
  e8369cf8500479fa8592d6ad221df22b  gcc/testsuite/gfortran.dg/logint_2.f
  cc537c18cadc7f751e2b61f5197b80e7  gcc/testsuite/gfortran.dg/logint_3.f
! bceaa8a4fe443dfa65fe359c0d6dc0fe  gcc/testsuite/gfortran.dg/longline.f
  0af1b4d38764adaf6e9835a621ee8cc6  gcc/testsuite/gfortran.dg/longnames.f90
  6c3c532ad4024941faec1e9a3d703f48  gcc/testsuite/gfortran.dg/loop_interchange_1.f90
  eddf2c0ffcc85c9aa70fb04bb2c9b0b0  gcc/testsuite/gfortran.dg/loop_interchange_2.f
--- 117081,117087 ----
  2cde76e6e4f3175cf21675c3a4e3dcc4  gcc/testsuite/gfortran.dg/logint_1.f
  e8369cf8500479fa8592d6ad221df22b  gcc/testsuite/gfortran.dg/logint_2.f
  cc537c18cadc7f751e2b61f5197b80e7  gcc/testsuite/gfortran.dg/logint_3.f
! 9a4cf31db6ca061ae294396741f12571  gcc/testsuite/gfortran.dg/longline.f
  0af1b4d38764adaf6e9835a621ee8cc6  gcc/testsuite/gfortran.dg/longnames.f90
  6c3c532ad4024941faec1e9a3d703f48  gcc/testsuite/gfortran.dg/loop_interchange_1.f90
  eddf2c0ffcc85c9aa70fb04bb2c9b0b0  gcc/testsuite/gfortran.dg/loop_interchange_2.f
*************** eee4e4b1f7234702e72fe778c0d2621b  gcc/te
*** 104655,104661 ****
  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
--- 117125,117131 ----
  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
! 0437f7ea90355be92502dc734e98686d  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
*************** f2ea8cac46240547e280d6a47be8828d  gcc/te
*** 104716,104721 ****
--- 117186,117192 ----
  368ecceacb36bc8031de56fda6503830  gcc/testsuite/gfortran.dg/matmul_argument_types.f90
  6a883e202e2a5a1a5860d1565dec8edf  gcc/testsuite/gfortran.dg/matmul_blas_1.f
  862897f6121e8bc995b9373ab8e7d097  gcc/testsuite/gfortran.dg/matmul_blas_2.f90
+ 05eae8cfcedc07a6dbeb1d289e51a49b  gcc/testsuite/gfortran.dg/matmul_blas_3.f90
  6ed82ab65a659c5528ba6467505d80bd  gcc/testsuite/gfortran.dg/matmul_bounds_1.f90
  558e4b3b400485cd87bcbf000d42d188  gcc/testsuite/gfortran.dg/matmul_bounds_10.f90
  4d7f2fcf253e75af46fd09c44b1cd2ee  gcc/testsuite/gfortran.dg/matmul_bounds_11.f90
*************** aedab00c95be355c3ec0c7306612ae62  gcc/te
*** 104883,104889 ****
  bcd06aff3687f3f238806a9663c12a72  gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90
  38871edb72439a4017f330c646f35bba  gcc/testsuite/gfortran.dg/module_parameter_array_refs_2.f90
  89a9de2b0cafeb53a607f32b62e97a7d  gcc/testsuite/gfortran.dg/module_private_1.f90
! 38991a7b3b01dda59db6b907061a225a  gcc/testsuite/gfortran.dg/module_private_2.f90
  caecc4fd8aa5de5428a7b4a6c3ee736b  gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90
  478fc43019f81e4b49fc455a31b7b167  gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
  dc51be0dd4adb5f65c5a6c3ffad81c8f  gcc/testsuite/gfortran.dg/module_procedure_1.f90
--- 117354,117360 ----
  bcd06aff3687f3f238806a9663c12a72  gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90
  38871edb72439a4017f330c646f35bba  gcc/testsuite/gfortran.dg/module_parameter_array_refs_2.f90
  89a9de2b0cafeb53a607f32b62e97a7d  gcc/testsuite/gfortran.dg/module_private_1.f90
! 7536c9c0b974b088ce6fd6596dd07bb6  gcc/testsuite/gfortran.dg/module_private_2.f90
  caecc4fd8aa5de5428a7b4a6c3ee736b  gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90
  478fc43019f81e4b49fc455a31b7b167  gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
  dc51be0dd4adb5f65c5a6c3ffad81c8f  gcc/testsuite/gfortran.dg/module_procedure_1.f90
*************** e2d7817fb979c570de1d1ec245d73737  gcc/te
*** 104907,104912 ****
--- 117378,117384 ----
  1a6b285341301728841910bcd834c219  gcc/testsuite/gfortran.dg/modulo_check.f90
  7b95771e74b4db9019fa5288844d8bd7  gcc/testsuite/gfortran.dg/move_alloc.f90
  8fa7ec6193e5858a8b302fe6da84427b  gcc/testsuite/gfortran.dg/move_alloc_10.f90
+ 851ede5340ecd54a55e142ac86d35cf3  gcc/testsuite/gfortran.dg/move_alloc_11.f90
  645b6b4b36489dac04618c450d130861  gcc/testsuite/gfortran.dg/move_alloc_12.f90
  48c1f0421f6bed37fe20c8dcbf82b981  gcc/testsuite/gfortran.dg/move_alloc_13.f90
  ce4a2de4f48ab6400126ed2d15424c28  gcc/testsuite/gfortran.dg/move_alloc_14.f90
*************** e1e5a4925af334c9600c11958ed2f050  gcc/te
*** 104916,104921 ****
--- 117388,117394 ----
  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
+ 11f35b94893b989ed77ee7ff0273b28f  gcc/testsuite/gfortran.dg/move_alloc_20.f03
  90c4233696a4210dd1411df4ce816345  gcc/testsuite/gfortran.dg/move_alloc_3.f90
  b0771aa8a26d9687e9c6aa4f179d533d  gcc/testsuite/gfortran.dg/move_alloc_4.f90
  8d2c9767bfa9b064e0efaf0685019480  gcc/testsuite/gfortran.dg/move_alloc_5.f90
*************** c31049d80a6d5f251553cf67a645cfbc  gcc/te
*** 104937,104942 ****
--- 117410,117417 ----
  cda99c4f9b1e1ca808103eba31168058  gcc/testsuite/gfortran.dg/mvbits_9.f90
  ab43a12e9d7dd4f0eed4d087fc19a84f  gcc/testsuite/gfortran.dg/named_interface.f90
  7841bdfa2894b1c8f28e061e0d78ca99  gcc/testsuite/gfortran.dg/namelist_1.f90
+ 33eb50db1247aefc95a8f0bcc1c23951  gcc/testsuite/gfortran.dg/namelist_100.f90
+ 6d976ec444b00238a9bfc57f681c6c05  gcc/testsuite/gfortran.dg/namelist_101.f90
  02a533763d199c5afa28bec631ca6b9e  gcc/testsuite/gfortran.dg/namelist_11.f
  fadabd8643639e650a8499262b9a767e  gcc/testsuite/gfortran.dg/namelist_12.f
  637100e10c22e1d286db1ce10741e289  gcc/testsuite/gfortran.dg/namelist_13.f90
*************** f6900646010877f1bf8da73bad033bbb  gcc/te
*** 105030,105037 ****
  b28986ef259fe186d84c0622f1c5f76b  gcc/testsuite/gfortran.dg/namelist_96.f90
  19c3d1357394b2399e1ff5d6f9694a51  gcc/testsuite/gfortran.dg/namelist_97.f90
  a2df4ca61a2b12380764cd69635191f0  gcc/testsuite/gfortran.dg/namelist_98.f90
  843ad75abd3258ea2565083edf16cbc3  gcc/testsuite/gfortran.dg/namelist_args.f90
! b8f12d194aa9b2cfb5214297f897456c  gcc/testsuite/gfortran.dg/namelist_assumed_char.f90
  73de646ecd69b0bf965fecc1ccd64052  gcc/testsuite/gfortran.dg/namelist_blockdata.f
  b4b317ef7f0e3b328cd2408c834c565e  gcc/testsuite/gfortran.dg/namelist_char_only.f90
  ab1962cc90efed9c77a456b69eee06b6  gcc/testsuite/gfortran.dg/namelist_empty.f90
--- 117505,117513 ----
  b28986ef259fe186d84c0622f1c5f76b  gcc/testsuite/gfortran.dg/namelist_96.f90
  19c3d1357394b2399e1ff5d6f9694a51  gcc/testsuite/gfortran.dg/namelist_97.f90
  a2df4ca61a2b12380764cd69635191f0  gcc/testsuite/gfortran.dg/namelist_98.f90
+ 3d1c3a664770361e673a1115d1b5f688  gcc/testsuite/gfortran.dg/namelist_99.f90
  843ad75abd3258ea2565083edf16cbc3  gcc/testsuite/gfortran.dg/namelist_args.f90
! 12a7b6c1ef4d3529ee1dd458eb8c4a0f  gcc/testsuite/gfortran.dg/namelist_assumed_char.f90
  73de646ecd69b0bf965fecc1ccd64052  gcc/testsuite/gfortran.dg/namelist_blockdata.f
  b4b317ef7f0e3b328cd2408c834c565e  gcc/testsuite/gfortran.dg/namelist_char_only.f90
  ab1962cc90efed9c77a456b69eee06b6  gcc/testsuite/gfortran.dg/namelist_empty.f90
*************** d8d9fc1bd3990f780a4edabec5168b98  gcc/te
*** 105104,105109 ****
--- 117580,117586 ----
  af0220988dae78874b44c32c38151dba  gcc/testsuite/gfortran.dg/no_unit_error_1.f90
  744d0a7b2bbb9a92d07c6349adea50b1  gcc/testsuite/gfortran.dg/noadv_size.f90
  c58d0becf9ff2fd332bb1bb3252ba243  gcc/testsuite/gfortran.dg/noinline.f90
+ 76bb5adbc8453ce3b3805d9671bb097a  gcc/testsuite/gfortran.dg/non_lvalue_1.f90
  40fc0414c2765c255df26d0c34749b0e  gcc/testsuite/gfortran.dg/non_module_public.f90
  77360dec8f5c7897afaa0c9d1c0c4a0c  gcc/testsuite/gfortran.dg/nonreturning_statements.f90
  6a9f6b9442c4556d3016d04dfbecd983  gcc/testsuite/gfortran.dg/noreturn-1.f90
*************** eb6af590881f3e995fc6b2c78089f277  gcc/te
*** 105142,105148 ****
  f202e3843710f9492560538fa53c3847  gcc/testsuite/gfortran.dg/nullify_2.f90
  768d37ebff7930db8f8a99ac16b90d32  gcc/testsuite/gfortran.dg/nullify_3.f90
  3f59630d77d85f381c44bc0119d513ee  gcc/testsuite/gfortran.dg/nullify_4.f90
! bcf5d721d90103bd1208f8548c93c54e  gcc/testsuite/gfortran.dg/num_images_1.f90
  2b630ef1ec72104833ded7049a1347a1  gcc/testsuite/gfortran.dg/o_fast_stacksize.f90
  97d9003b405f5e3d56a941b54189717c  gcc/testsuite/gfortran.dg/old_style_init.f90
  07622fe916d0b006deb7094aca26b228  gcc/testsuite/gfortran.dg/oldstyle_1.f90
--- 117619,117625 ----
  f202e3843710f9492560538fa53c3847  gcc/testsuite/gfortran.dg/nullify_2.f90
  768d37ebff7930db8f8a99ac16b90d32  gcc/testsuite/gfortran.dg/nullify_3.f90
  3f59630d77d85f381c44bc0119d513ee  gcc/testsuite/gfortran.dg/nullify_4.f90
! c468f110b9e13429ddd04c499381047e  gcc/testsuite/gfortran.dg/num_images_1.f90
  2b630ef1ec72104833ded7049a1347a1  gcc/testsuite/gfortran.dg/o_fast_stacksize.f90
  97d9003b405f5e3d56a941b54189717c  gcc/testsuite/gfortran.dg/old_style_init.f90
  07622fe916d0b006deb7094aca26b228  gcc/testsuite/gfortran.dg/oldstyle_1.f90
*************** e548fbe30e98c9d7ac1106482dbc7e3e  gcc/te
*** 105171,105177 ****
  86113f32e1c3798e72e4dc686fde343e  gcc/testsuite/gfortran.dg/openacc-define-3.f90
  13b9efd2d6877e1ce4634b24aac8b5fc  gcc/testsuite/gfortran.dg/openmp-define-1.f90
  7c3311ed70efe122c0482f92398333c9  gcc/testsuite/gfortran.dg/openmp-define-2.f90
! 9fb28c099543f7f38e9a0dbcdb890070  gcc/testsuite/gfortran.dg/openmp-define-3.f90
  1053eca20a7e15049ebb36ade3724790  gcc/testsuite/gfortran.dg/operator_1.f90
  b17cec21502c8794736dc737cec00cef  gcc/testsuite/gfortran.dg/operator_2.f90
  0dd70087c9deb3c1435a846982d5b717  gcc/testsuite/gfortran.dg/operator_3.f90
--- 117648,117654 ----
  86113f32e1c3798e72e4dc686fde343e  gcc/testsuite/gfortran.dg/openacc-define-3.f90
  13b9efd2d6877e1ce4634b24aac8b5fc  gcc/testsuite/gfortran.dg/openmp-define-1.f90
  7c3311ed70efe122c0482f92398333c9  gcc/testsuite/gfortran.dg/openmp-define-2.f90
! 0b6021e0e31e3ddb700bd3e9c2c68182  gcc/testsuite/gfortran.dg/openmp-define-3.f90
  1053eca20a7e15049ebb36ade3724790  gcc/testsuite/gfortran.dg/operator_1.f90
  b17cec21502c8794736dc737cec00cef  gcc/testsuite/gfortran.dg/operator_2.f90
  0dd70087c9deb3c1435a846982d5b717  gcc/testsuite/gfortran.dg/operator_3.f90
*************** c61e4e9f6a32de1ca3041987ea6be2b8  gcc/te
*** 105263,105289 ****
  4091b0cda1b37aa9933aa0582f11916a  gcc/testsuite/gfortran.dg/past_eor.f90
  32e3a39285b3fee302b4ce0aa317c62f  gcc/testsuite/gfortran.dg/pdt_1.f03
  87a73e9cfd1a075484405f19dbac3abe  gcc/testsuite/gfortran.dg/pdt_10.f03
! bbf73734b60d2500381f37fc07248411  gcc/testsuite/gfortran.dg/pdt_11.f03
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 5e6d6f4eb70dbb7b23751aa6e68d6fdd  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
! 4483aa08269048d225897572d0fe2d01  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
  1be387788d3dfc3e6ad6918a8d5f4291  gcc/testsuite/gfortran.dg/pdt_19.f03
  3d1ced13c0fde7696153e2188eee96b6  gcc/testsuite/gfortran.dg/pdt_2.f03
! 9d88d900642baf2f0a480cf44ee666db  gcc/testsuite/gfortran.dg/pdt_20.f03
  28c0797012a570952b5f39fde15bd010  gcc/testsuite/gfortran.dg/pdt_21.f03
! 28a0c6d98df2dac988135f6fd894acea  gcc/testsuite/gfortran.dg/pdt_22.f03
! 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
! 467e7b0f7ffea3a05b9ac591c2ac05ee  gcc/testsuite/gfortran.dg/pdt_3.f03
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
--- 117740,117766 ----
  4091b0cda1b37aa9933aa0582f11916a  gcc/testsuite/gfortran.dg/past_eor.f90
  32e3a39285b3fee302b4ce0aa317c62f  gcc/testsuite/gfortran.dg/pdt_1.f03
  87a73e9cfd1a075484405f19dbac3abe  gcc/testsuite/gfortran.dg/pdt_10.f03
! 5a0999252f018311918f94dfff91e9e1  gcc/testsuite/gfortran.dg/pdt_11.f03
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 8ba202bf43566eb130123dcf3081c8f0  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
! a4a19dee7375d5813e90c984aec32f53  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
  1be387788d3dfc3e6ad6918a8d5f4291  gcc/testsuite/gfortran.dg/pdt_19.f03
  3d1ced13c0fde7696153e2188eee96b6  gcc/testsuite/gfortran.dg/pdt_2.f03
! 81b13391439498364f679131cdcd43ab  gcc/testsuite/gfortran.dg/pdt_20.f03
  28c0797012a570952b5f39fde15bd010  gcc/testsuite/gfortran.dg/pdt_21.f03
! 3210a766069bc40d129607cfcfa58040  gcc/testsuite/gfortran.dg/pdt_22.f03
! 80859b95d06bb3b0d7f79b4a46b4e709  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
! b7850b870694f099600d54c31ecfcd07  gcc/testsuite/gfortran.dg/pdt_26.f03
! f01af67b109adaf1b93b0098bc7de134  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
! e1c1e0938f7ad887363fea7ce87c4e8f  gcc/testsuite/gfortran.dg/pdt_3.f03
  1f42496cb72089bef450a6df6a13c299  gcc/testsuite/gfortran.dg/pdt_30.f90
  d586eb557b29a67b9fa981d71d443c8b  gcc/testsuite/gfortran.dg/pdt_31.f03
  e5bda49b00d9e9f9b204003142ebb089  gcc/testsuite/gfortran.dg/pdt_32.f03
*************** f5ecad1df1c3f9e7d4bf8d95be2b45a5  gcc/te
*** 105293,105303 ****
--- 117770,117835 ----
  2c477caa6ab50061d5b01d9970af1903  gcc/testsuite/gfortran.dg/pdt_35.f03
  2588a29b1e8d5e652dd511316facfa46  gcc/testsuite/gfortran.dg/pdt_36.f03
  9abf2f0827863994cae83f3e9a57bbe0  gcc/testsuite/gfortran.dg/pdt_37.f03
+ bf9b6323f7816780db5e9b60fb1b8dee  gcc/testsuite/gfortran.dg/pdt_38.f03
+ bec2533e5df9f9752162a8a81cc206d2  gcc/testsuite/gfortran.dg/pdt_39.f03
  26c6f55cb76e1a76617fc3167f296a53  gcc/testsuite/gfortran.dg/pdt_4.f03
+ 5a1a0909b561f7bfa9564d4a626d9f7c  gcc/testsuite/gfortran.dg/pdt_40.f03
+ 5061f7ef70cf2d270a5ff3643419a520  gcc/testsuite/gfortran.dg/pdt_41.f03
+ 332622c9d68e723173599ee918559f52  gcc/testsuite/gfortran.dg/pdt_42.f03
+ 26458fabdc3fb974b6ac96e29effd590  gcc/testsuite/gfortran.dg/pdt_43.f03
+ c81eb638a36b687e5dc5d831b100a2ae  gcc/testsuite/gfortran.dg/pdt_44.f03
+ 21fba33fca53db94c9d9c501ea7a1a0d  gcc/testsuite/gfortran.dg/pdt_45.f03
+ 3d693f5ae134fee41983008264ef3bb0  gcc/testsuite/gfortran.dg/pdt_46.f03
+ 743c13d00cb00139a1f209ced4c4ee65  gcc/testsuite/gfortran.dg/pdt_47.f03
+ 6300d0e63eabdd0e66d6748d290dfdd3  gcc/testsuite/gfortran.dg/pdt_48.f03
+ b89a8aa7030c869fe0210fab0f943107  gcc/testsuite/gfortran.dg/pdt_49.f03
+ 76d2005236b1088d103403938267e6e3  gcc/testsuite/gfortran.dg/pdt_50.f03
+ 1888f05e005525e88931abedd8a19054  gcc/testsuite/gfortran.dg/pdt_51.f03
+ 7d90ca2b7f479f61fde636fdfc7de7a4  gcc/testsuite/gfortran.dg/pdt_52.f03
+ 2704deb60c31f295fd0ec82e8b4a8bef  gcc/testsuite/gfortran.dg/pdt_53.f03
+ 4f8973b48c0722defa9fac5a7e1e45f0  gcc/testsuite/gfortran.dg/pdt_54.f03
+ 912e3a17faabb651d9cfe7b495314e53  gcc/testsuite/gfortran.dg/pdt_55.f03
+ c8268112a25855a7d481b68d88cd5849  gcc/testsuite/gfortran.dg/pdt_56.f03
+ 4c9df43a3147b0d88edf8e884cd7539f  gcc/testsuite/gfortran.dg/pdt_57.f03
+ dfae0584c34f174386746029a2bbf0b1  gcc/testsuite/gfortran.dg/pdt_58.f03
+ a5070ccaa9b85c10608985b219421c39  gcc/testsuite/gfortran.dg/pdt_59.f03
  65d2ad728417ad3174fc1ce2b51a458d  gcc/testsuite/gfortran.dg/pdt_6.f03
+ 9dbc08fbae591c5a9da5818dd56b234e  gcc/testsuite/gfortran.dg/pdt_60.f03
+ e8c4c8bb9c03a99a4368a372096fdfb9  gcc/testsuite/gfortran.dg/pdt_61.f03
+ 44e4aa2dabc782efe50146abb024d7ce  gcc/testsuite/gfortran.dg/pdt_62.f03
+ a4dd26f2891055a5842e6732191c51f8  gcc/testsuite/gfortran.dg/pdt_63.f03
+ bd24b2acc55e464c3c06d5812e34478e  gcc/testsuite/gfortran.dg/pdt_64.f03
+ 9d6cb27f1bfd7fd4a30c1c828a28b2d6  gcc/testsuite/gfortran.dg/pdt_65.f03
+ c05f9d42843923ff0207255c3c60c7eb  gcc/testsuite/gfortran.dg/pdt_66.f03
+ 726eb58b6e3de0c02eb2e26cb07fb5fd  gcc/testsuite/gfortran.dg/pdt_67.f03
+ a5f0e5f6d1a0cf4437ef6c2b7d002852  gcc/testsuite/gfortran.dg/pdt_68.f03
+ 3444ff42a2ca850ccc8b0a46fec4a950  gcc/testsuite/gfortran.dg/pdt_69.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
+ eadd9a59a070a2b3455cb8918d9cbed1  gcc/testsuite/gfortran.dg/pdt_70.f03
+ 70790cc3e59c68bac699d7f64450affc  gcc/testsuite/gfortran.dg/pdt_71.f03
+ e60c95d1e5b5c7e5f4c5c95f09cb14e5  gcc/testsuite/gfortran.dg/pdt_72.f03
+ c6f893cb449a80625f83167f1ff5ba51  gcc/testsuite/gfortran.dg/pdt_73.f03
+ 8d4993c59b25b275c9be746b415c88a7  gcc/testsuite/gfortran.dg/pdt_74.f03
+ 8ccbb94fe607aa377b82a359ac1d2ab7  gcc/testsuite/gfortran.dg/pdt_75.f03
+ 872e5a262b625630f6c8518c84192fe0  gcc/testsuite/gfortran.dg/pdt_76.f03
+ e7b56697ac64f36257ec59b471922aaa  gcc/testsuite/gfortran.dg/pdt_77.f03
+ 3d080e764a86b6c6b89cec537323af50  gcc/testsuite/gfortran.dg/pdt_78.f03
+ 4747be1a3cc11eccca3b4eae7a5beaef  gcc/testsuite/gfortran.dg/pdt_79.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
+ 50b90d7df8b77f8225042795ce534280  gcc/testsuite/gfortran.dg/pdt_80.f03
+ 08059a1fb646b56d0e4c4e079cca8ad9  gcc/testsuite/gfortran.dg/pdt_81.f03
+ f6695b4fb594606f02af64d62e1c0b75  gcc/testsuite/gfortran.dg/pdt_82.f03
+ 563711530085cf404f4c3314b360a937  gcc/testsuite/gfortran.dg/pdt_83.f03
+ b4209f9f96c7dd6b54f255bf23c1dc15  gcc/testsuite/gfortran.dg/pdt_84.f03
+ 874410c75a218763c32521b445ecf6f0  gcc/testsuite/gfortran.dg/pdt_85.f03
+ 2ca21ac09e6b30c6b75c52a6caaa7b45  gcc/testsuite/gfortran.dg/pdt_86.f03
+ 549d910fb6edbb2f39bd52042f69ba19  gcc/testsuite/gfortran.dg/pdt_87.f03
+ f545f62c1e71dc7bd67638aeeb2db587  gcc/testsuite/gfortran.dg/pdt_88.f03
+ 9a4d72f9f692366ff871a56578313f20  gcc/testsuite/gfortran.dg/pdt_89.f03
  c621629f10feffbfa9fef1441a610e53  gcc/testsuite/gfortran.dg/pdt_9.f03
+ d990a49ad7534a4a10800a8a538fa04a  gcc/testsuite/gfortran.dg/pdt_90.f03
+ fda16d44f3a45aad8ceeb1e18d56f6f1  gcc/testsuite/gfortran.dg/pdt_91.f03
+ ce217e87870d47796b72f99a0b0f46b7  gcc/testsuite/gfortran.dg/pdt_generic_1.f90
  4555f630cb01a40d0eaf421fd7ad9e77  gcc/testsuite/gfortran.dg/pointer_1.f90
  b836f09e53badc9a7066eb5692c28f74  gcc/testsuite/gfortran.dg/pointer_2.f90
  620a59a97d6aa806a934ba7f7e67e932  gcc/testsuite/gfortran.dg/pointer_array_1.f90
*************** d3ff5b316cd12c550dcd3a53eb6f9f8a  gcc/te
*** 105320,105325 ****
--- 117852,117858 ----
  00d9a53a9858ef445138e77a1d29a1a0  gcc/testsuite/gfortran.dg/pointer_assign_12.f90
  ffdb03e59c952fefddde0fe00786a386  gcc/testsuite/gfortran.dg/pointer_assign_14.f90
  31e6165ecfe4f550ef7881351986d7f5  gcc/testsuite/gfortran.dg/pointer_assign_15.f90
+ 2dfed32902e7ce844ad19f8bd2170a38  gcc/testsuite/gfortran.dg/pointer_assign_16.f90
  8716a372c931ca96cb06c0d77f6b27b1  gcc/testsuite/gfortran.dg/pointer_assign_2.f90
  9ff66a633865089dac5ced6229e1b3ba  gcc/testsuite/gfortran.dg/pointer_assign_3.f90
  7d74d21e75c683b97fd68d13a54b02a1  gcc/testsuite/gfortran.dg/pointer_assign_4.f90
*************** a3ab8fbef738997039cfd45f350461a3  gcc/te
*** 105397,105403 ****
--- 117930,117938 ----
  77eca811eac1f80edb0f33c68ac0c4d3  gcc/testsuite/gfortran.dg/power_7.f90
  457d6bb30d331f4d3250628bdae53dc3  gcc/testsuite/gfortran.dg/power_8.f90
  e13b5dd50c332ea865cb6fabb5f79f29  gcc/testsuite/gfortran.dg/pr100154.f90
+ d7642fe0f50bb28f873042d6721e3ffb  gcc/testsuite/gfortran.dg/pr100155.f90
  c9e427811a6c55713cbb096365eec807  gcc/testsuite/gfortran.dg/pr100193.f90
+ a7f1c1fb2de0acfdd19303c2a0d29d73  gcc/testsuite/gfortran.dg/pr100194.f90
  e08828a7d864f8531a58aa25e1b58894  gcc/testsuite/gfortran.dg/pr100273.f90
  fc0ae38e4fdc2d7761aba57181c97b51  gcc/testsuite/gfortran.dg/pr100551.f90
  17f130e627232745d6279696b6984514  gcc/testsuite/gfortran.dg/pr100949.f90
*************** bd85853c23b25f6e0f0a43e2fb0dd907  gcc/te
*** 105408,105415 ****
--- 117943,117953 ----
  00eaff2aeb07d3b9bbb1b67083921aaf  gcc/testsuite/gfortran.dg/pr101158.f90
  8e40caa9023b2b568477f8b0a6586cd9  gcc/testsuite/gfortran.dg/pr101264.f90
  06195337ab81a49e4bf967a8c395b5a3  gcc/testsuite/gfortran.dg/pr101267.f90
+ 11ea42fd49c5077c0f944a39b2b04c38  gcc/testsuite/gfortran.dg/pr101281.f90
  515f43ee1c3a7f37818b2b4bd6abedd7  gcc/testsuite/gfortran.dg/pr101327.f90
  5f313e258f1ed6c76274dff3e05fedd8  gcc/testsuite/gfortran.dg/pr101329.f90
+ 4052f8acbf81f14108c618edadd93bb1  gcc/testsuite/gfortran.dg/pr101399_1.f90
+ 60071a8b369689148938009cd1ac945a  gcc/testsuite/gfortran.dg/pr101399_2.f90
  afe21b866be9162c6b654dc6771e6ead  gcc/testsuite/gfortran.dg/pr101514.f90
  07e5cf776d8ec123397377da02e784fb  gcc/testsuite/gfortran.dg/pr101536.f90
  43d1631cdea391ffd9bdb8fc395a7ae5  gcc/testsuite/gfortran.dg/pr101762.f90
*************** afe21b866be9162c6b654dc6771e6ead  gcc/te
*** 105418,105445 ****
  9689aaf0cb9d6642b812ab9cd61eff8a  gcc/testsuite/gfortran.dg/pr102180.f90
  47ed02e060fe8963c8b302d989d30b44  gcc/testsuite/gfortran.dg/pr102190.f90
  75ccec9005d1d4a2d9ed0cea1bf10434  gcc/testsuite/gfortran.dg/pr102332.f90
  1dd53d463caf1e16e47d0fe9cbf2309f  gcc/testsuite/gfortran.dg/pr102366.f90
! 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
  ce86820082e25f5aad2607f9163c3cf4  gcc/testsuite/gfortran.dg/pr103312.f90
  ab2e9f64b18aaf6df9600288ded6ce51  gcc/testsuite/gfortran.dg/pr103366.f90
  9e00f34ad9d6d78b98007d4ad68251f5  gcc/testsuite/gfortran.dg/pr103389.f90
  f2ba2e64941d368a0af432859dc114fe  gcc/testsuite/gfortran.dg/pr103471.f90
  5403c8d36e959e2211ecc4f2a1db6e1c  gcc/testsuite/gfortran.dg/pr103475.f90
  b624133cafd19857eb2915c507731455  gcc/testsuite/gfortran.dg/pr103504.f90
  0ca27f571c157feff083b371f4147538  gcc/testsuite/gfortran.dg/pr103505.f90
  bb48aa0d2e0434d5fff259663b128e23  gcc/testsuite/gfortran.dg/pr103506_1.f90
  dc7a57f897711dfb7a3fba377198c10c  gcc/testsuite/gfortran.dg/pr103588.f90
  a27b232d198fc2463c04af17903b1b4c  gcc/testsuite/gfortran.dg/pr103606.f90
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
--- 117956,117990 ----
  9689aaf0cb9d6642b812ab9cd61eff8a  gcc/testsuite/gfortran.dg/pr102180.f90
  47ed02e060fe8963c8b302d989d30b44  gcc/testsuite/gfortran.dg/pr102190.f90
  75ccec9005d1d4a2d9ed0cea1bf10434  gcc/testsuite/gfortran.dg/pr102332.f90
+ 0f742b974936fdac370e3cdae600e6ab  gcc/testsuite/gfortran.dg/pr102333.f90
  1dd53d463caf1e16e47d0fe9cbf2309f  gcc/testsuite/gfortran.dg/pr102366.f90
! 85172103204e3a5e8205c18bba97977a  gcc/testsuite/gfortran.dg/pr102458.f90
  cbd40bc334c217d37c198b1f27373810  gcc/testsuite/gfortran.dg/pr102458b.f90
+ 44bc627bf6c28a64567fdb75fe688fdc  gcc/testsuite/gfortran.dg/pr102459.f90
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
  73ad9dd0e1a553e17865bdfdf09510d0  gcc/testsuite/gfortran.dg/pr102532.f90
+ 4efde3b7d107b33c9c8792e23b683d17  gcc/testsuite/gfortran.dg/pr102596.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
+ 322a54b0e735415005b9446efbfd32f0  gcc/testsuite/gfortran.dg/pr102619.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
+ 2ea3fdef39f1131d6aa1210e7ea17513  gcc/testsuite/gfortran.dg/pr103139.f90
  95206e73bd86fd997d85643e08c24a44  gcc/testsuite/gfortran.dg/pr103258.f90
  4b404e5693e05cfd48ecd00e22ac323d  gcc/testsuite/gfortran.dg/pr103259.f90
  48782be659f3ec5c8d9cba03ca6cc43d  gcc/testsuite/gfortran.dg/pr103286.f90
  ce86820082e25f5aad2607f9163c3cf4  gcc/testsuite/gfortran.dg/pr103312.f90
  ab2e9f64b18aaf6df9600288ded6ce51  gcc/testsuite/gfortran.dg/pr103366.f90
+ f5b2d7909d22359486a362b6e2b6e6d2  gcc/testsuite/gfortran.dg/pr103367.f90
  9e00f34ad9d6d78b98007d4ad68251f5  gcc/testsuite/gfortran.dg/pr103389.f90
  f2ba2e64941d368a0af432859dc114fe  gcc/testsuite/gfortran.dg/pr103471.f90
  5403c8d36e959e2211ecc4f2a1db6e1c  gcc/testsuite/gfortran.dg/pr103475.f90
  b624133cafd19857eb2915c507731455  gcc/testsuite/gfortran.dg/pr103504.f90
  0ca27f571c157feff083b371f4147538  gcc/testsuite/gfortran.dg/pr103505.f90
  bb48aa0d2e0434d5fff259663b128e23  gcc/testsuite/gfortran.dg/pr103506_1.f90
+ 28a2da8782b99d7cb750c9809c9acb09  gcc/testsuite/gfortran.dg/pr103508.f90
  dc7a57f897711dfb7a3fba377198c10c  gcc/testsuite/gfortran.dg/pr103588.f90
  a27b232d198fc2463c04af17903b1b4c  gcc/testsuite/gfortran.dg/pr103606.f90
  ea7b00fcccc1df091b8087b16e502d92  gcc/testsuite/gfortran.dg/pr103607.f90
*************** b46bd97116489e6e683fb2b742d3b37e  gcc/te
*** 105461,105467 ****
  7d09118ed5915e3ef92dba4a6d9cd54c  gcc/testsuite/gfortran.dg/pr104349.f90
  257c4284afc1b3bc810b7c880cbe249a  gcc/testsuite/gfortran.dg/pr104351.f90
  5b0868c84244a96dfe5b07e4df03eaa7  gcc/testsuite/gfortran.dg/pr104429.f90
! d54a9a735e74cc7d08959a7e744ae292  gcc/testsuite/gfortran.dg/pr104466.f90
  20b528a5635e11a2c7db46289cab958c  gcc/testsuite/gfortran.dg/pr104528.f
  f2033aa803ce0a0763522fb821b7bdf6  gcc/testsuite/gfortran.dg/pr104554.f90
  c1548c06295e664f7406329767d563ab  gcc/testsuite/gfortran.dg/pr104555.f90
--- 118006,118012 ----
  7d09118ed5915e3ef92dba4a6d9cd54c  gcc/testsuite/gfortran.dg/pr104349.f90
  257c4284afc1b3bc810b7c880cbe249a  gcc/testsuite/gfortran.dg/pr104351.f90
  5b0868c84244a96dfe5b07e4df03eaa7  gcc/testsuite/gfortran.dg/pr104429.f90
! b4ff79b7d0893d8d65011da7ca95eb5b  gcc/testsuite/gfortran.dg/pr104466.f90
  20b528a5635e11a2c7db46289cab958c  gcc/testsuite/gfortran.dg/pr104528.f
  f2033aa803ce0a0763522fb821b7bdf6  gcc/testsuite/gfortran.dg/pr104554.f90
  c1548c06295e664f7406329767d563ab  gcc/testsuite/gfortran.dg/pr104555.f90
*************** aadce1b09e2a4d220805726af0c7f109  gcc/te
*** 105474,105479 ****
--- 118019,118025 ----
  7a5b7a18d621b5e1b9d04b73e259ddd4  gcc/testsuite/gfortran.dg/pr104849.f90
  35a7804825dacf412e34e3f973b467f1  gcc/testsuite/gfortran.dg/pr104908.f90
  a5bb6d9b844f014490dab5e87b60244c  gcc/testsuite/gfortran.dg/pr105152.f90
+ 472e7c3181a65bf922fc24aa4a286685  gcc/testsuite/gfortran.dg/pr105168.f90
  ff052278fd65d5823600af4550f5eae7  gcc/testsuite/gfortran.dg/pr105205.f90
  22283af469347d85bd1fe4dae42939a3  gcc/testsuite/gfortran.dg/pr105230.f90
  0d13bd4f2344022f31050b761cea6e41  gcc/testsuite/gfortran.dg/pr105361.f90
*************** d4b65efea892e3a54acdb92a298fc582  gcc/te
*** 105499,105504 ****
--- 118045,118051 ----
  0677f2dac82b1b95cde8edf69efd60a9  gcc/testsuite/gfortran.dg/pr106918.f90
  09719e2d59fe58682ef7a737cdf01620  gcc/testsuite/gfortran.dg/pr106934.f90
  e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
+ 1b7098a64b99eb214b607f599b3eb32f  gcc/testsuite/gfortran.dg/pr106946.f90
  a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
  eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
  054c58cb24c0bee4ea0b5fcf3cdbf86d  gcc/testsuite/gfortran.dg/pr106999.f90
*************** b4c38adb4e9d005c1c883b2efff25b07  gcc/te
*** 105540,105553 ****
  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
  f2965c649a5f8dcb271f4f49f656cfff  gcc/testsuite/gfortran.dg/pr109948.f90
  898c3ea8360d1452c5f815b15dc6f6f8  gcc/testsuite/gfortran.dg/pr110221.f
  7e8f4bd708c5e8d2c848ebda68cfa3e5  gcc/testsuite/gfortran.dg/pr110224.f90
  998a85b06cf4402e9dcaa8e7dd203ee2  gcc/testsuite/gfortran.dg/pr110415.f90
  47cd542147bf162109f2595723968363  gcc/testsuite/gfortran.dg/pr110996.f90
! 73c24aa3bc97b0687036c0da0f6bf2b2  gcc/testsuite/gfortran.dg/pr111022.f90
  65d07fd1935686cb66ec42fe6d001afd  gcc/testsuite/gfortran.dg/pr111853.f90
  6176c5192c44068787a0e803e38dacbd  gcc/testsuite/gfortran.dg/pr111880.f90
  2430bfa735afe7c9a37da0ceb3ba47a1  gcc/testsuite/gfortran.dg/pr111891.f90
--- 118087,118103 ----
  b7b6edb61862ad55069c70c4744ad157  gcc/testsuite/gfortran.dg/pr109265.f90
  78ada5d286128144e86af4a4c1aac9cc  gcc/testsuite/gfortran.dg/pr109345.f90
  05aad7d3d7d82955070028e39fdf28af  gcc/testsuite/gfortran.dg/pr109358.f90
+ 177c71b2af7ff0342ee4829742717d26  gcc/testsuite/gfortran.dg/pr109512.f90
  f309d722fd5c0108897e848739b09dbb  gcc/testsuite/gfortran.dg/pr109662-a.f90
  87aa7841fecf66956c29baf129e68fb9  gcc/testsuite/gfortran.dg/pr109662.f90
+ 8d235bb163056c04ca2b4c16a3221c29  gcc/testsuite/gfortran.dg/pr109788.f90
  f2965c649a5f8dcb271f4f49f656cfff  gcc/testsuite/gfortran.dg/pr109948.f90
  898c3ea8360d1452c5f815b15dc6f6f8  gcc/testsuite/gfortran.dg/pr110221.f
  7e8f4bd708c5e8d2c848ebda68cfa3e5  gcc/testsuite/gfortran.dg/pr110224.f90
  998a85b06cf4402e9dcaa8e7dd203ee2  gcc/testsuite/gfortran.dg/pr110415.f90
+ 0aa416b9f025b96460e1495d9883e74c  gcc/testsuite/gfortran.dg/pr110877.f90
  47cd542147bf162109f2595723968363  gcc/testsuite/gfortran.dg/pr110996.f90
! 8fee6a25342cd239d821dc8fef4eb847  gcc/testsuite/gfortran.dg/pr111022.f90
  65d07fd1935686cb66ec42fe6d001afd  gcc/testsuite/gfortran.dg/pr111853.f90
  6176c5192c44068787a0e803e38dacbd  gcc/testsuite/gfortran.dg/pr111880.f90
  2430bfa735afe7c9a37da0ceb3ba47a1  gcc/testsuite/gfortran.dg/pr111891.f90
*************** f715b6386f4a20f6cad01cbb51dffd3b  gcc/te
*** 105556,105567 ****
  d24ae0514cf8372947462a582502bca5  gcc/testsuite/gfortran.dg/pr112406.f90
  aa358931bdcdffc331e74ec0c69f4a2a  gcc/testsuite/gfortran.dg/pr112407a.f90
  75beb8de36fb348963c6214f20178363  gcc/testsuite/gfortran.dg/pr112407b.f90
! 49386e415982e1a2f18ad84457b9937e  gcc/testsuite/gfortran.dg/pr112459.f90
  551b794393ba12749122575dffd8b57a  gcc/testsuite/gfortran.dg/pr113363.f90
  364da327aa8d67798baabc45b77d535a  gcc/testsuite/gfortran.dg/pr113503_1.f90
  55dbfeee77bbcb338fb214ad0357a8da  gcc/testsuite/gfortran.dg/pr113503_2.f90
  57f789001fbff5df460557a54ec241a4  gcc/testsuite/gfortran.dg/pr113956.f90
  b90d3cad8caadc96fae5e6ac9b101803  gcc/testsuite/gfortran.dg/pr114012.f90
  d832d83a7f0305ed5af20dce6be24b4b  gcc/testsuite/gfortran.dg/pr114304-2.f90
  439f95a81137197be61b0747f76ecd0f  gcc/testsuite/gfortran.dg/pr114304.f90
  e91d746b0b9de2b6ed5529fb46921a0b  gcc/testsuite/gfortran.dg/pr114535d.f90
--- 118106,118119 ----
  d24ae0514cf8372947462a582502bca5  gcc/testsuite/gfortran.dg/pr112406.f90
  aa358931bdcdffc331e74ec0c69f4a2a  gcc/testsuite/gfortran.dg/pr112407a.f90
  75beb8de36fb348963c6214f20178363  gcc/testsuite/gfortran.dg/pr112407b.f90
! f40ebb8b0ba477daa44de7b09716213b  gcc/testsuite/gfortran.dg/pr112459.f90
! 88ac7aacaefcc6dc121e1009ed168d75  gcc/testsuite/gfortran.dg/pr112877-1.f90
  551b794393ba12749122575dffd8b57a  gcc/testsuite/gfortran.dg/pr113363.f90
  364da327aa8d67798baabc45b77d535a  gcc/testsuite/gfortran.dg/pr113503_1.f90
  55dbfeee77bbcb338fb214ad0357a8da  gcc/testsuite/gfortran.dg/pr113503_2.f90
  57f789001fbff5df460557a54ec241a4  gcc/testsuite/gfortran.dg/pr113956.f90
  b90d3cad8caadc96fae5e6ac9b101803  gcc/testsuite/gfortran.dg/pr114012.f90
+ 072165b4d418d0423b7f3443a1223861  gcc/testsuite/gfortran.dg/pr114021.f90
  d832d83a7f0305ed5af20dce6be24b4b  gcc/testsuite/gfortran.dg/pr114304-2.f90
  439f95a81137197be61b0747f76ecd0f  gcc/testsuite/gfortran.dg/pr114304.f90
  e91d746b0b9de2b6ed5529fb46921a0b  gcc/testsuite/gfortran.dg/pr114535d.f90
*************** c2c29ab4a03f3fce7c592346c758df55  gcc/te
*** 105575,105580 ****
--- 118127,118133 ----
  2cdd9da41524094c8df35fef567a26c5  gcc/testsuite/gfortran.dg/pr115281.f90
  862aedc97da38fe9b3319406b768d9c0  gcc/testsuite/gfortran.dg/pr115348.f90
  d1ba07988d4687e1f81b063e8b20cefa  gcc/testsuite/gfortran.dg/pr117060.f90
+ 11dc8ce2014fcc972a0f950352c90cc8  gcc/testsuite/gfortran.dg/pr117077.f90
  6c3af77c51cf7ae784cf117509d09064  gcc/testsuite/gfortran.dg/pr117730_a.f90
  c409953e60b511d0f73cda8df16bc1dc  gcc/testsuite/gfortran.dg/pr117730_b.f90
  9d60e354f12f632752ec6e7da4915d39  gcc/testsuite/gfortran.dg/pr117763.f90
*************** c409953e60b511d0f73cda8df16bc1dc  gcc/te
*** 105584,105589 ****
--- 118137,118144 ----
  d8b2b1281d8bcf0eb181e2643ffb6265  gcc/testsuite/gfortran.dg/pr117820.f90
  f12b0640f8ed3bdc0c826763af5ffd1f  gcc/testsuite/gfortran.dg/pr117901.f90
  dcb4fe6d926f672dd118a4a8ec9b6625  gcc/testsuite/gfortran.dg/pr118640.f90
+ f0fc5f4f012c7d561fbfac50ce2eac53  gcc/testsuite/gfortran.dg/pr119136.f90
+ 86ed735b34078d76c3e00aee11815c32  gcc/testsuite/gfortran.dg/pr119273.f90
  21d662c2190def3714e2bdeb64b9dce2  gcc/testsuite/gfortran.dg/pr119502.f90
  bfe9a93946cdb6a9b66dd7249e65330d  gcc/testsuite/gfortran.dg/pr119836_1.f90
  1c099fc2477935ea4f6d6e213b94eb2f  gcc/testsuite/gfortran.dg/pr119836_2.f90
*************** e79a5fff5c4841ba8e2da41f54be1c1c  gcc/te
*** 105602,105610 ****
  4787146fc7e8109511f0d22d056e2127  gcc/testsuite/gfortran.dg/pr120191_2.f90
  05457962d41eef6a41a3de889144d78a  gcc/testsuite/gfortran.dg/pr120191_3.f90
  b1cb2c9a52574c2df5df49bd13ee7e5d  gcc/testsuite/gfortran.dg/pr120196.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
! e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
  fb5f15b3c2517fe0b8083e8530c9bf2c  gcc/testsuite/gfortran.dg/pr15164.f90
  146cca656e75166f32a0ec1cdb216ee2  gcc/testsuite/gfortran.dg/pr15324.f90
  7f8e1de010f46d132b567298a02ba30d  gcc/testsuite/gfortran.dg/pr15332.f
--- 118157,118192 ----
  4787146fc7e8109511f0d22d056e2127  gcc/testsuite/gfortran.dg/pr120191_2.f90
  05457962d41eef6a41a3de889144d78a  gcc/testsuite/gfortran.dg/pr120191_3.f90
  b1cb2c9a52574c2df5df49bd13ee7e5d  gcc/testsuite/gfortran.dg/pr120196.f90
+ 94f286710243a0388de6f82a32d72ca5  gcc/testsuite/gfortran.dg/pr120743.f90
+ 9a63937be6d5e03574fd9c46968454c5  gcc/testsuite/gfortran.dg/pr121234.f90
+ a01a62a01e9e7263ce5c3eb6b06e96a7  gcc/testsuite/gfortran.dg/pr121472.f90
+ 2c5769bb5fd02bd8b8791d960937aa78  gcc/testsuite/gfortran.dg/pr121475.f90
+ 6be9000a862f8c64a384c1727d879f04  gcc/testsuite/gfortran.dg/pr121627.f90
+ cf5eb5dbc3807278a7f8e6a11e5b41bf  gcc/testsuite/gfortran.dg/pr121743.f90
+ 6df685f9b4cb8f7874082b4e9d9e61f5  gcc/testsuite/gfortran.dg/pr122513-2.f90
+ b6e7e7e8bea9878d7980ddcd5a97c5f5  gcc/testsuite/gfortran.dg/pr122513.f90
+ b9c77c8cd78fcd9e57fbfafe732a8c95  gcc/testsuite/gfortran.dg/pr122936.f90
+ a010e074bf1f3f114db1b857bef5511f  gcc/testsuite/gfortran.dg/pr122949.f90
+ fa053690c35a7cf0e14a876e94c10140  gcc/testsuite/gfortran.dg/pr122957.f90
+ ca5d5af755aea457c1fd083af79f190d  gcc/testsuite/gfortran.dg/pr123375.f90
+ fb1e8e16263374f736a90ec7790bb21b  gcc/testsuite/gfortran.dg/pr123772.f03
+ f0d9a36dd6cfab9c2393885c55a61dd1  gcc/testsuite/gfortran.dg/pr123868.f90
+ f5fb3cbcb5e6e13e6a56fcf9422a2863  gcc/testsuite/gfortran.dg/pr123943.f90
+ 3f0ceacb39f3b09500a6fc9f7bfe00d4  gcc/testsuite/gfortran.dg/pr123947_1.f90
+ 5914721145d2b8dda6c660d4cb1803dc  gcc/testsuite/gfortran.dg/pr123947_2.f90
+ 321edf4c22cc24a529062a30ef0158f2  gcc/testsuite/gfortran.dg/pr123949.f90
+ 348d095bf62be63000e464d805a812fb  gcc/testsuite/gfortran.dg/pr123952.f90
+ 9aa1b21c93a3838e52245be748b9b301  gcc/testsuite/gfortran.dg/pr124161.f90
+ 39137ae7aabd3246fa806bae5346ef6a  gcc/testsuite/gfortran.dg/pr124208.f90
+ 2cb76d13b09d255f773e5188ba2693fa  gcc/testsuite/gfortran.dg/pr124235.f90
+ 5bfaeea8d13a5035cf46aaab485c2803  gcc/testsuite/gfortran.dg/pr124450.f90
+ 144821371bd6ce572a8615f51fea4d9f  gcc/testsuite/gfortran.dg/pr124543.f90
+ 864111c6768fee3f647605c5cf8db475  gcc/testsuite/gfortran.dg/pr124567.f90
+ c82475796fec905fbcbddbebc480ad15  gcc/testsuite/gfortran.dg/pr124739.f90
+ 8d5b416e1b358553fdc69e965bc1db7e  gcc/testsuite/gfortran.dg/pr124780.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
! 2b5f18b773a5db29b0a2ee2d8cce767c  gcc/testsuite/gfortran.dg/pr15140.f90
  fb5f15b3c2517fe0b8083e8530c9bf2c  gcc/testsuite/gfortran.dg/pr15164.f90
  146cca656e75166f32a0ec1cdb216ee2  gcc/testsuite/gfortran.dg/pr15324.f90
  7f8e1de010f46d132b567298a02ba30d  gcc/testsuite/gfortran.dg/pr15332.f
*************** f851b163e156a483d8a18c14113e9005  gcc/te
*** 105640,105646 ****
  3c1b21be918629039e10a6e59277c1bc  gcc/testsuite/gfortran.dg/pr19936_1.f90
  7fe5c318350a52400c5dbd328ca6b65f  gcc/testsuite/gfortran.dg/pr19936_2.f90
  a21cc4ab33b1cfd66732338936f2a4af  gcc/testsuite/gfortran.dg/pr19936_3.f90
! b1fe6db6bcd57e8bc562a71aa19e1572  gcc/testsuite/gfortran.dg/pr20086.f90
  01a68912089c2a49dcfdd51df5cbad6f  gcc/testsuite/gfortran.dg/pr20124.f90
  d91f06baabd88440484dcf05933f814b  gcc/testsuite/gfortran.dg/pr20163-2.f
  0ffb4d70b4fb6128277f164aae67ce50  gcc/testsuite/gfortran.dg/pr20257.f90
--- 118222,118228 ----
  3c1b21be918629039e10a6e59277c1bc  gcc/testsuite/gfortran.dg/pr19936_1.f90
  7fe5c318350a52400c5dbd328ca6b65f  gcc/testsuite/gfortran.dg/pr19936_2.f90
  a21cc4ab33b1cfd66732338936f2a4af  gcc/testsuite/gfortran.dg/pr19936_3.f90
! ab1112c434d8125c49613a81fd241391  gcc/testsuite/gfortran.dg/pr20086.f90
  01a68912089c2a49dcfdd51df5cbad6f  gcc/testsuite/gfortran.dg/pr20124.f90
  d91f06baabd88440484dcf05933f814b  gcc/testsuite/gfortran.dg/pr20163-2.f
  0ffb4d70b4fb6128277f164aae67ce50  gcc/testsuite/gfortran.dg/pr20257.f90
*************** d5a07e4fb254ff561108269c0ecffae6  gcc/te
*** 105720,105726 ****
  128d1f5873432fbeef9032aaaa925a0a  gcc/testsuite/gfortran.dg/pr40587.f
  dde08f832232073a8cfbe9c29db74aea  gcc/testsuite/gfortran.dg/pr40839.f90
  286d79105e3446494611fa9a0c712111  gcc/testsuite/gfortran.dg/pr40999.f
! afda857ec6094e64314700e9fead3e36  gcc/testsuite/gfortran.dg/pr41011.f
  87db7da7fa3903f49a2b7e9debf84bc7  gcc/testsuite/gfortran.dg/pr41043.f90
  ecfd0b4a9534a80a0116f800e59bfe69  gcc/testsuite/gfortran.dg/pr41126.f90
  a7d7af093c8bc9ae9ee2e1f6c7147a31  gcc/testsuite/gfortran.dg/pr41162.f
--- 118302,118308 ----
  128d1f5873432fbeef9032aaaa925a0a  gcc/testsuite/gfortran.dg/pr40587.f
  dde08f832232073a8cfbe9c29db74aea  gcc/testsuite/gfortran.dg/pr40839.f90
  286d79105e3446494611fa9a0c712111  gcc/testsuite/gfortran.dg/pr40999.f
! 234a2fa456ebea30aa91802b121edb15  gcc/testsuite/gfortran.dg/pr41011.f
  87db7da7fa3903f49a2b7e9debf84bc7  gcc/testsuite/gfortran.dg/pr41043.f90
  ecfd0b4a9534a80a0116f800e59bfe69  gcc/testsuite/gfortran.dg/pr41126.f90
  a7d7af093c8bc9ae9ee2e1f6c7147a31  gcc/testsuite/gfortran.dg/pr41162.f
*************** d03f1dd77bd6dee9a89da7373579df73  gcc/te
*** 105848,105854 ****
  0a4cedf3603ebfbe3f5092a5c5b439c8  gcc/testsuite/gfortran.dg/pr61318.f90
  b4a7352be56f63fec4426a00db50fae5  gcc/testsuite/gfortran.dg/pr61335.f90
  6dedb63c784b5018b208a0535bbce9a1  gcc/testsuite/gfortran.dg/pr61454.f90
! 2c95c461b017b811d75f842a5f254b83  gcc/testsuite/gfortran.dg/pr61669.f90
  218031233fb6ed3ee1eed0974239fbdb  gcc/testsuite/gfortran.dg/pr61765.f90
  7b90c70cbc880439a85c8761bb9d61c0  gcc/testsuite/gfortran.dg/pr61775.f90
  4a29b0cc0691a044e0395d99832117d4  gcc/testsuite/gfortran.dg/pr61921.f90
--- 118430,118436 ----
  0a4cedf3603ebfbe3f5092a5c5b439c8  gcc/testsuite/gfortran.dg/pr61318.f90
  b4a7352be56f63fec4426a00db50fae5  gcc/testsuite/gfortran.dg/pr61335.f90
  6dedb63c784b5018b208a0535bbce9a1  gcc/testsuite/gfortran.dg/pr61454.f90
! af85cf99f97b350aab2242869a5a5de8  gcc/testsuite/gfortran.dg/pr61669.f90
  218031233fb6ed3ee1eed0974239fbdb  gcc/testsuite/gfortran.dg/pr61765.f90
  7b90c70cbc880439a85c8761bb9d61c0  gcc/testsuite/gfortran.dg/pr61775.f90
  4a29b0cc0691a044e0395d99832117d4  gcc/testsuite/gfortran.dg/pr61921.f90
*************** fe55b4afdea6006daace9aa79199e551  gcc/te
*** 105950,105956 ****
  f98605838f661ab05c8e58bbe0ec37a4  gcc/testsuite/gfortran.dg/pr69739.f90
  ad1c20f5706de185c8d1a0e845e5710d  gcc/testsuite/gfortran.dg/pr69867.f90
  5d287811020bdabb61dcc6757135eb94  gcc/testsuite/gfortran.dg/pr69955.f90
! 29610fdfa7dcc34c2dbc61b21af1103e  gcc/testsuite/gfortran.dg/pr69962.f90
  c718be52c08cbfe5941dc1bb7a50bcb5  gcc/testsuite/gfortran.dg/pr69987.f90
  e3df725d919fbea72dd53c26d3c3fc1b  gcc/testsuite/gfortran.dg/pr70006.f90
  7f656e5a6d13d6ab788f5c3e8fb90572  gcc/testsuite/gfortran.dg/pr70040.f90
--- 118532,118538 ----
  f98605838f661ab05c8e58bbe0ec37a4  gcc/testsuite/gfortran.dg/pr69739.f90
  ad1c20f5706de185c8d1a0e845e5710d  gcc/testsuite/gfortran.dg/pr69867.f90
  5d287811020bdabb61dcc6757135eb94  gcc/testsuite/gfortran.dg/pr69955.f90
! 32eae45af02bad04ece42a07c4bcea17  gcc/testsuite/gfortran.dg/pr69962.f90
  c718be52c08cbfe5941dc1bb7a50bcb5  gcc/testsuite/gfortran.dg/pr69987.f90
  e3df725d919fbea72dd53c26d3c3fc1b  gcc/testsuite/gfortran.dg/pr70006.f90
  7f656e5a6d13d6ab788f5c3e8fb90572  gcc/testsuite/gfortran.dg/pr70040.f90
*************** d676dbff55fa3a1bfc2c5c723ab4b0e6  gcc/te
*** 105995,106000 ****
--- 118577,118584 ----
  c80f60155bcb84d08e36147df56ee2a7  gcc/testsuite/gfortran.dg/pr77391.f90
  98fa011f3b9cb0fda809c579d18e2aff  gcc/testsuite/gfortran.dg/pr77406.f90
  fecc61bbfc16293b15103804392e0bd2  gcc/testsuite/gfortran.dg/pr77414.f90
+ 78965c868f16f11cbff9aec9504ba604  gcc/testsuite/gfortran.dg/pr77415_1.f90
+ b093c5bb912dc337cd65afad2e986ddf  gcc/testsuite/gfortran.dg/pr77415_2.f90
  273708f3f44a1085948126b236c9f875  gcc/testsuite/gfortran.dg/pr77420_1.f90
  85915b4b10039334da3368e57192ff34  gcc/testsuite/gfortran.dg/pr77420_2.f90
  2549339a920645cd51edb2c436ea56ab  gcc/testsuite/gfortran.dg/pr77420_3.f90
*************** f166fdd0a6158ee4997aa03d50735f03  gcc/te
*** 106033,106040 ****
--- 118617,118626 ----
  5b2aa5e5d8aa97b69f0cc98bc9709f3f  gcc/testsuite/gfortran.dg/pr78741.f90
  18ef55c7791c30ff0793ca246df65036  gcc/testsuite/gfortran.dg/pr78758.f90
  c7abc49e43c3b6377a0e019f9f4292ac  gcc/testsuite/gfortran.dg/pr79315.f90
+ 76b2c561e2cc2dffb48457fae519ab01  gcc/testsuite/gfortran.dg/pr79524.f90
  7dde52ec5dffa2ae8586c577cf97f742  gcc/testsuite/gfortran.dg/pr79886.f90
  c0b10ae015725070f4297a1ba8927463  gcc/testsuite/gfortran.dg/pr79966.f90
+ fe74c3fed9a136e563c87518eea95a29  gcc/testsuite/gfortran.dg/pr80012.f90
  21b5f06229f04696cc787b63748c5de0  gcc/testsuite/gfortran.dg/pr80494.f90
  8b9f5c1760222d8600a5216a165e1f97  gcc/testsuite/gfortran.dg/pr80668.f90
  0862a1113ce961f726cabf0e14020ca9  gcc/testsuite/gfortran.dg/pr80752.f90
*************** e338cfba2f466abedf9af92b52cd6fb3  gcc/te
*** 106054,106059 ****
--- 118640,118646 ----
  b6ff04901e3aee18765a74bf65804e38  gcc/testsuite/gfortran.dg/pr82253.f90
  344be7c0602202457870166d368441e0  gcc/testsuite/gfortran.dg/pr82314.f90
  7f04eca318ca64e1442ceabc31fab9fb  gcc/testsuite/gfortran.dg/pr82397.f
+ 9f2daedbf44298499832b2b6d72eb79f  gcc/testsuite/gfortran.dg/pr82721.f90
  5e9eb92684de357b4c23a7f04959db82  gcc/testsuite/gfortran.dg/pr82774.f90
  616772c135ee9b14c410dcd23fdbc3e4  gcc/testsuite/gfortran.dg/pr82973.f90
  0a918cecf6f52a31004b77728cb30038  gcc/testsuite/gfortran.dg/pr83113.f90
*************** fd7937a762c5733d3533bba0d9b05a6e  gcc/te
*** 106068,106077 ****
--- 118655,118666 ----
  95b2ba5b10167fedc1a075877a7a103b  gcc/testsuite/gfortran.dg/pr84088.f90
  ee7b5aa850a8be8a1ed15f2fcdca347a  gcc/testsuite/gfortran.dg/pr84117.f90
  c41bc69547a048a19ccb1adc57ce3bca  gcc/testsuite/gfortran.dg/pr84155.f90
+ e6d08fa65e9eb602b71f0e6a8b44a739  gcc/testsuite/gfortran.dg/pr84245.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
+ 393795c1c91adc9f5adfd59c5ef5c172  gcc/testsuite/gfortran.dg/pr84779.f90
  a4758a568b5ef9b888cb911bc4cdd259  gcc/testsuite/gfortran.dg/pr84784.f90
  41e0ad3a735d1f75c8f837590c9d8293  gcc/testsuite/gfortran.dg/pr84868.f90
  bb61cbbb8a58939e43f49e77c93df95f  gcc/testsuite/gfortran.dg/pr84869.f90
*************** cc82665e1d54c6a2d5a100788c474853  gcc/te
*** 106079,106084 ****
--- 118668,118674 ----
  42d21294436ebefdc995a697f0266fd9  gcc/testsuite/gfortran.dg/pr85082.f90
  4355c9f07079d67c1134f6106f8fcb0b  gcc/testsuite/gfortran.dg/pr85138_1.f90
  024b55ef8c68dc11bd1d65bbc8cf1b13  gcc/testsuite/gfortran.dg/pr85138_2.f90
+ 9c97d6fc9b5f00f49d5a36517bc8222d  gcc/testsuite/gfortran.dg/pr85352.f90
  bf416564a457b9444387855732e4d265  gcc/testsuite/gfortran.dg/pr85357.f90
  286fa2d8f5b3fa55fd3173261d6b4eea  gcc/testsuite/gfortran.dg/pr85520.f90
  3daad136d0cfc95d8964dc923c7cc4ac  gcc/testsuite/gfortran.dg/pr85521_1.f90
*************** c6d3d1ffedb5b952a8712db0cf31c809  gcc/te
*** 106162,106167 ****
--- 118752,118758 ----
  45bdaaba50a371d379854f3b6895d276  gcc/testsuite/gfortran.dg/pr88964.f90
  d0e021239a321dbde0c39d7f370068c8  gcc/testsuite/gfortran.dg/pr89077.f90
  a2461a16a54c67eb1031deda70d3c512  gcc/testsuite/gfortran.dg/pr89084.f90
+ f3fbf1380652a88bf0a5d643b52e4a3d  gcc/testsuite/gfortran.dg/pr89092.f90
  be4f5532cbaa58d083d822b627ffe5de  gcc/testsuite/gfortran.dg/pr89253.f
  eb191e16157f03cba56fb00422bb2852  gcc/testsuite/gfortran.dg/pr89266.f90
  2726f9a132f249a727072d95e5f0aee3  gcc/testsuite/gfortran.dg/pr89344.f90
*************** a50919bcdb1d810ce2f68bd6b22ee53b  gcc/te
*** 106229,106234 ****
--- 118820,118827 ----
  80c38334d4c2234ca4df7f0176fd911f  gcc/testsuite/gfortran.dg/pr91943.f90
  f47280c21d6106d254997e6f8dfc8428  gcc/testsuite/gfortran.dg/pr91945.f90
  3f0d651103a337f28b2bc24f57d468a5  gcc/testsuite/gfortran.dg/pr91959.f90
+ 9ace4410c7d6051b4bc3dfb4b478cd75  gcc/testsuite/gfortran.dg/pr91960_1.f90
+ 1ce699a04d21670ef1f80fb9b9dd1de0  gcc/testsuite/gfortran.dg/pr91960_2.f90
  08fda0592c5d30dce05f0478585e75bd  gcc/testsuite/gfortran.dg/pr92018.f90
  272b67d76fa6d4258e045be0ee78f536  gcc/testsuite/gfortran.dg/pr92019.f90
  cd47c5f771e296971301643af5583dfa  gcc/testsuite/gfortran.dg/pr92050.f90
*************** cd47c5f771e296971301643af5583dfa  gcc/te
*** 106238,106243 ****
--- 118831,118838 ----
  8623fdd6c6daabe9a4f011dbfe739aa7  gcc/testsuite/gfortran.dg/pr92277.f90
  f9f3f23d1f0e555393704aacc1883399  gcc/testsuite/gfortran.dg/pr92537.f90
  046e4aaa6db5ee0c20856d4a366b6343  gcc/testsuite/gfortran.dg/pr92586.f90
+ 32cf1aafbe9511dbafe4de8d2ac60d97  gcc/testsuite/gfortran.dg/pr92613.f90
+ 16ef421144d4e1c92ef3108573f95612  gcc/testsuite/gfortran.dg/pr92613_2.f90
  7383008a151433faa521410955d94a9f  gcc/testsuite/gfortran.dg/pr92629.f90
  4f42dad4b149f18ca843630273713f7d  gcc/testsuite/gfortran.dg/pr92781.f90
  4dd22e19ac67028e19b5789647a9a64b  gcc/testsuite/gfortran.dg/pr92874.f90
*************** f9cd7fe0c8cb7be5b0846aa6c3eb0b93  gcc/te
*** 106280,106302 ****
  9a2df63b77cda57168f292b09bde71b3  gcc/testsuite/gfortran.dg/pr93686_4.f90
  0636d4a049257c8e3f6c32b4b7309697  gcc/testsuite/gfortran.dg/pr93714_1.f90
  93b8b244bce4583a43c29d892e177744  gcc/testsuite/gfortran.dg/pr93714_2.f90
  4d2e245917c39b1bcaeea6010bcb6284  gcc/testsuite/gfortran.dg/pr93792.f90
  8b7bf068692a6a31b63dd4963c050e98  gcc/testsuite/gfortran.dg/pr93835.f08
  6736173bcc319bca35f5453a7bca947b  gcc/testsuite/gfortran.dg/pr94030_1.f90
  b0f8acfae3746c459e5af7bcca222814  gcc/testsuite/gfortran.dg/pr94030_2.f90
  3fbf8e84b18aab42f89f48c0c8a9a41a  gcc/testsuite/gfortran.dg/pr94285.f90
  f17ab40b1ca95ac01da77049baa72103  gcc/testsuite/gfortran.dg/pr94329.f90
  bf6d4fa9d116ccede014485a892d0d71  gcc/testsuite/gfortran.dg/pr94380.f90
  b9faba8aac0e0dd38443caeb527db93d  gcc/testsuite/gfortran.dg/pr94397.F90
  16d161f7900dd36eabcbaea6cd9c1b6e  gcc/testsuite/gfortran.dg/pr94708.f90
  b3aa92652c768e489db71c4bdec58492  gcc/testsuite/gfortran.dg/pr95053.f
  4643a453de4a8df5432d833cf8bfa122  gcc/testsuite/gfortran.dg/pr95053_2.f90
  9a887ac1c462736f729ec4ec967c8be2  gcc/testsuite/gfortran.dg/pr95053_3.f90
  a6b1d851f4c5b6cfffa8f56c8f9cd150  gcc/testsuite/gfortran.dg/pr95088.f90
  4d706dda2f553109876e49a390c1b156  gcc/testsuite/gfortran.dg/pr95089.f90
! 81355955ad98611710451ef6e76d9dbe  gcc/testsuite/gfortran.dg/pr95090.f90
  10a1157f7a9fa8f2042a563c98a25914  gcc/testsuite/gfortran.dg/pr95091.f90
  7d3e3457f90590b31740ffdd3a4866a3  gcc/testsuite/gfortran.dg/pr95104.f90
  66c58770643ed3f1944820fa6790cc27  gcc/testsuite/gfortran.dg/pr95340.f90
  395135621c98fea610c5f2b17feb7637  gcc/testsuite/gfortran.dg/pr95342.f90
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
--- 118875,118903 ----
  9a2df63b77cda57168f292b09bde71b3  gcc/testsuite/gfortran.dg/pr93686_4.f90
  0636d4a049257c8e3f6c32b4b7309697  gcc/testsuite/gfortran.dg/pr93714_1.f90
  93b8b244bce4583a43c29d892e177744  gcc/testsuite/gfortran.dg/pr93714_2.f90
+ 9a8647e0b1ef01e06d45cc2715ae05e8  gcc/testsuite/gfortran.dg/pr93715.f90
  4d2e245917c39b1bcaeea6010bcb6284  gcc/testsuite/gfortran.dg/pr93792.f90
+ 1c1c17dce5c14eb846c34e6f6eba3b12  gcc/testsuite/gfortran.dg/pr93814.f90
+ 5494bfcb0d61c11d34ea0b6e4e610c45  gcc/testsuite/gfortran.dg/pr93832.f90
  8b7bf068692a6a31b63dd4963c050e98  gcc/testsuite/gfortran.dg/pr93835.f08
  6736173bcc319bca35f5453a7bca947b  gcc/testsuite/gfortran.dg/pr94030_1.f90
  b0f8acfae3746c459e5af7bcca222814  gcc/testsuite/gfortran.dg/pr94030_2.f90
  3fbf8e84b18aab42f89f48c0c8a9a41a  gcc/testsuite/gfortran.dg/pr94285.f90
  f17ab40b1ca95ac01da77049baa72103  gcc/testsuite/gfortran.dg/pr94329.f90
+ 606c0d796566955abff716dca0065850  gcc/testsuite/gfortran.dg/pr94377.f90
  bf6d4fa9d116ccede014485a892d0d71  gcc/testsuite/gfortran.dg/pr94380.f90
  b9faba8aac0e0dd38443caeb527db93d  gcc/testsuite/gfortran.dg/pr94397.F90
  16d161f7900dd36eabcbaea6cd9c1b6e  gcc/testsuite/gfortran.dg/pr94708.f90
+ e49db1fd07a952483324884a3682a4e8  gcc/testsuite/gfortran.dg/pr94978.f90
  b3aa92652c768e489db71c4bdec58492  gcc/testsuite/gfortran.dg/pr95053.f
  4643a453de4a8df5432d833cf8bfa122  gcc/testsuite/gfortran.dg/pr95053_2.f90
  9a887ac1c462736f729ec4ec967c8be2  gcc/testsuite/gfortran.dg/pr95053_3.f90
  a6b1d851f4c5b6cfffa8f56c8f9cd150  gcc/testsuite/gfortran.dg/pr95088.f90
  4d706dda2f553109876e49a390c1b156  gcc/testsuite/gfortran.dg/pr95089.f90
! d267294a3d8606296d53a310c654cb98  gcc/testsuite/gfortran.dg/pr95090.f90
  10a1157f7a9fa8f2042a563c98a25914  gcc/testsuite/gfortran.dg/pr95091.f90
  7d3e3457f90590b31740ffdd3a4866a3  gcc/testsuite/gfortran.dg/pr95104.f90
+ e11cb19990efd60513bbac52ee105f02  gcc/testsuite/gfortran.dg/pr95338.f90
  66c58770643ed3f1944820fa6790cc27  gcc/testsuite/gfortran.dg/pr95340.f90
  395135621c98fea610c5f2b17feb7637  gcc/testsuite/gfortran.dg/pr95342.f90
  b9d5894d240b89777d50d53e0cd60929  gcc/testsuite/gfortran.dg/pr95373_1.f90
*************** b8bfd1cf7e719488d1db3ded54f068b2  gcc/te
*** 106330,106335 ****
--- 118931,118937 ----
  662210e69dcf405442181d9c4c2a91ec  gcc/testsuite/gfortran.dg/pr95827.f90
  62cd2c3c38efcf3442a00b172c23a0f1  gcc/testsuite/gfortran.dg/pr95828.f90
  f2cfdbd57b646ea77c8d2d572b0b4a79  gcc/testsuite/gfortran.dg/pr95829.f90
+ 153dd2ab3bb579bad81f3ed62e079ff2  gcc/testsuite/gfortran.dg/pr95879.f90
  4624ef21d27373ca19abedc766bf24c8  gcc/testsuite/gfortran.dg/pr95880.f90
  5f79fc5c2f7a030ad1b82b4793b0c8a7  gcc/testsuite/gfortran.dg/pr95881.f90
  5f9a08444201a18392648013e972a14a  gcc/testsuite/gfortran.dg/pr95882_1.f90
*************** d56be000adb4e5f4b724c408cb3ef497  gcc/te
*** 106358,106365 ****
  2524ffbe2910a6b3473a3c31d7998a36  gcc/testsuite/gfortran.dg/pr96436_10.f90
  d5903f6b335e4ec014953d7d04a5333d  gcc/testsuite/gfortran.dg/pr96436_2.f90
  dde1a77e8079263845b0f3cd32842e75  gcc/testsuite/gfortran.dg/pr96436_3.f90
! 3c131319a4ec01e581295df53116f78a  gcc/testsuite/gfortran.dg/pr96436_4.f90
! e32640ff3b1830463b0d782d066a4c7d  gcc/testsuite/gfortran.dg/pr96436_5.f90
  bb672f4853167965dbd2fb64d85d3a06  gcc/testsuite/gfortran.dg/pr96436_6.f90
  aee380fea7e3e2a16dae6bf8d81c92f5  gcc/testsuite/gfortran.dg/pr96436_7.f90
  1cb7ddf98a011abb0604916e9800bcd8  gcc/testsuite/gfortran.dg/pr96436_8.f90
--- 118960,118967 ----
  2524ffbe2910a6b3473a3c31d7998a36  gcc/testsuite/gfortran.dg/pr96436_10.f90
  d5903f6b335e4ec014953d7d04a5333d  gcc/testsuite/gfortran.dg/pr96436_2.f90
  dde1a77e8079263845b0f3cd32842e75  gcc/testsuite/gfortran.dg/pr96436_3.f90
! 6ce3f89882d9dab8c0ecb5d02f7d6e38  gcc/testsuite/gfortran.dg/pr96436_4.f90
! 95a32c61771693db9f911e0fd052002f  gcc/testsuite/gfortran.dg/pr96436_5.f90
  bb672f4853167965dbd2fb64d85d3a06  gcc/testsuite/gfortran.dg/pr96436_6.f90
  aee380fea7e3e2a16dae6bf8d81c92f5  gcc/testsuite/gfortran.dg/pr96436_7.f90
  1cb7ddf98a011abb0604916e9800bcd8  gcc/testsuite/gfortran.dg/pr96436_8.f90
*************** c8c260dea52e24ac6be6641b8f123d9a  gcc/te
*** 106369,106374 ****
--- 118971,118977 ----
  a056a75dc3c7830d385da1c0b9d587bc  gcc/testsuite/gfortran.dg/pr96711.f90
  a94ae73a3b6b9628990c54fb08f2950c  gcc/testsuite/gfortran.dg/pr96737.f90
  74a709306836d044b8cd43d035aecdf2  gcc/testsuite/gfortran.dg/pr96859.f90
+ 3b72f7e6589a60bc5e040e31c77484b8  gcc/testsuite/gfortran.dg/pr96986.f90
  76f063a5164cc2eff42c50fc9b9989a1  gcc/testsuite/gfortran.dg/pr97036.f90
  70cac68f93e5398eb60f3aa67f709e6a  gcc/testsuite/gfortran.dg/pr97095.f
  f219dfba008fc41e9e809107b3498d57  gcc/testsuite/gfortran.dg/pr97272.f90
*************** fd451ea4b1a79fa9abd2cf68f7412b28  gcc/te
*** 106458,106463 ****
--- 119061,119067 ----
  9320a3af3b59853e788ce2c3b67864d0  gcc/testsuite/gfortran.dg/proc_decl_28.f90
  2934e7195cdccd1e48244488c1c65fe0  gcc/testsuite/gfortran.dg/proc_decl_29.f90
  16c107e1f480b5af263a3b24682145bf  gcc/testsuite/gfortran.dg/proc_decl_3.f90
+ fd4afe19d40a633c195f934e575928c5  gcc/testsuite/gfortran.dg/proc_decl_30.f90
  a8525fbfa5dd7f02a6b578bdaa7287ee  gcc/testsuite/gfortran.dg/proc_decl_4.f90
  fe8d4f1e3d50a724aa39ae0786c170a8  gcc/testsuite/gfortran.dg/proc_decl_5.f90
  db3fe18298b61a4ca63d026cd283db3b  gcc/testsuite/gfortran.dg/proc_decl_6.f90
*************** d0d0c5e014e720d14becdb10cd74d6bb  gcc/te
*** 106594,106604 ****
  87345d6aca5d6bb9dadf055c45143fb2  gcc/testsuite/gfortran.dg/proc_ptr_result_6.f90
  c273afb240dd8ee8117b49f657c81476  gcc/testsuite/gfortran.dg/proc_ptr_result_7.f90
  1bc2a24244817d91ffb8efd08f27b2df  gcc/testsuite/gfortran.dg/proc_ptr_result_8.f90
  6cafac779e307ea3e5eea77636f44059  gcc/testsuite/gfortran.dg/procedure_lvalue.f90
  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
--- 119198,119209 ----
  87345d6aca5d6bb9dadf055c45143fb2  gcc/testsuite/gfortran.dg/proc_ptr_result_6.f90
  c273afb240dd8ee8117b49f657c81476  gcc/testsuite/gfortran.dg/proc_ptr_result_7.f90
  1bc2a24244817d91ffb8efd08f27b2df  gcc/testsuite/gfortran.dg/proc_ptr_result_8.f90
+ 6e0c70764f29cc296e1c4358b6daec78  gcc/testsuite/gfortran.dg/proc_target_1.f90
  6cafac779e307ea3e5eea77636f44059  gcc/testsuite/gfortran.dg/procedure_lvalue.f90
  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
! 0e014f5ee634d0320fa0825b554cfa3c  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
*************** d1fb25c2d89c26a98edcfffc14882c3e  gcc/te
*** 106612,106618 ****
  5d7bbbfcefc1b5f07177f63161d102c1  gcc/testsuite/gfortran.dg/protected_5.f90
  ddf6a96210acd9846d96c96f4d91e038  gcc/testsuite/gfortran.dg/protected_6.f90
  52dff839978be3dcf2e894769b9a6a7c  gcc/testsuite/gfortran.dg/protected_7.f90
! 8823218c8e39e313a365821aff2faabe  gcc/testsuite/gfortran.dg/protected_8.f90
  73ab7ba9b0a193e7d3835ba4228e5045  gcc/testsuite/gfortran.dg/protected_9.f90
  9bd44f03cb1f3b37599ac931fdefe6cc  gcc/testsuite/gfortran.dg/ptr-func-1.f90
  b6c22a1a69dfaeda3ed576a61060580d  gcc/testsuite/gfortran.dg/ptr-func-2.f90
--- 119217,119223 ----
  5d7bbbfcefc1b5f07177f63161d102c1  gcc/testsuite/gfortran.dg/protected_5.f90
  ddf6a96210acd9846d96c96f4d91e038  gcc/testsuite/gfortran.dg/protected_6.f90
  52dff839978be3dcf2e894769b9a6a7c  gcc/testsuite/gfortran.dg/protected_7.f90
! cb43adc087dd83db2ebabfeed3100cf7  gcc/testsuite/gfortran.dg/protected_8.f90
  73ab7ba9b0a193e7d3835ba4228e5045  gcc/testsuite/gfortran.dg/protected_9.f90
  9bd44f03cb1f3b37599ac931fdefe6cc  gcc/testsuite/gfortran.dg/ptr-func-1.f90
  b6c22a1a69dfaeda3ed576a61060580d  gcc/testsuite/gfortran.dg/ptr-func-2.f90
*************** f19a3e696f77f97e6aa2d83addab4ac4  gcc/te
*** 106627,106633 ****
  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
  d103e889cb7d81b0f6805dbfc1c68c26  gcc/testsuite/gfortran.dg/public_private_module_3.f90
  84ea34192deaf0c1463e5796a16847a2  gcc/testsuite/gfortran.dg/public_private_module_4.f90
  a7c876a660d440bd1bfe0f762107a374  gcc/testsuite/gfortran.dg/public_private_module_5.f90
--- 119232,119238 ----
  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
! 49160e67e683a86326398387d510d296  gcc/testsuite/gfortran.dg/public_private_module_2.f90
  d103e889cb7d81b0f6805dbfc1c68c26  gcc/testsuite/gfortran.dg/public_private_module_3.f90
  84ea34192deaf0c1463e5796a16847a2  gcc/testsuite/gfortran.dg/public_private_module_4.f90
  a7c876a660d440bd1bfe0f762107a374  gcc/testsuite/gfortran.dg/public_private_module_5.f90
*************** e9e87e079e88e1bdbe28a6f7713a7a67  gcc/te
*** 106648,106653 ****
--- 119253,119259 ----
  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
+ 543bc5f0aa252f9446e08c49a605c1e4  gcc/testsuite/gfortran.dg/pure_result.f90
  b2cfcc9d08774d6140c45f9ef26bf787  gcc/testsuite/gfortran.dg/quad_1.f90
  fbd7c496dd01e2a55c3629660efbc939  gcc/testsuite/gfortran.dg/quad_2.f90
  e60be2de79803cde8c8bb591d7bc648a  gcc/testsuite/gfortran.dg/quad_3.f90
*************** eef9c4fb4632664f421c4067e9f7dd53  gcc/te
*** 106889,106894 ****
--- 119495,119501 ----
  bcec3240f40aa5093a05d7cd8024acf3  gcc/testsuite/gfortran.dg/save_6.f90
  751220763a6526f3644c983c901f1c25  gcc/testsuite/gfortran.dg/save_7.f90
  6be5b43eab49c79032e7249345565e1c  gcc/testsuite/gfortran.dg/save_8.f90
+ 54c44419e66a3bf4083075200afb117b  gcc/testsuite/gfortran.dg/save_alloc_character_1.f90
  969e348eec71de0c469550da97db323d  gcc/testsuite/gfortran.dg/save_common.f90
  8077a483f690b8b2a62c945c63fa4b57  gcc/testsuite/gfortran.dg/save_parameter.f90
  1a1f478cd1af5c7ca0f1139bd3142853  gcc/testsuite/gfortran.dg/save_result.f90
*************** fe8536ad63d0a16274b5bc4f784951a1  gcc/te
*** 106919,106924 ****
--- 119526,119532 ----
  b7f0fac05667f630e8f9b90aebe1fea4  gcc/testsuite/gfortran.dg/select_char_1.f90
  4bf875de20300472ec17d50aced7e0ab  gcc/testsuite/gfortran.dg/select_char_2.f90
  9f98379d27ae7878917fe08a1c19379f  gcc/testsuite/gfortran.dg/select_char_3.f90
+ 940d47f5d16eb43c90d00e589e757088  gcc/testsuite/gfortran.dg/select_contiguous.f90
  37e908eef4b56dca409c4daba93bdcfc  gcc/testsuite/gfortran.dg/select_rank_1.f90
  b7f688acbe6b27032e2d16f367317b58  gcc/testsuite/gfortran.dg/select_rank_2.f90
  de48eaee117c9656a2db00a7ffbe9cb9  gcc/testsuite/gfortran.dg/select_rank_3.f90
*************** fd6ab0a5e316e2999bc498f35a3c0877  gcc/te
*** 106971,106976 ****
--- 119579,119585 ----
  4030940822c0b2a93cef17754637d715  gcc/testsuite/gfortran.dg/select_type_49.f90
  652809f8153234254b8b67a7efca979e  gcc/testsuite/gfortran.dg/select_type_5.f03
  c49dfaa1a2a6089d06b0254006e229bf  gcc/testsuite/gfortran.dg/select_type_50.f90
+ a8352826e9f0fa4c72ba19289828641b  gcc/testsuite/gfortran.dg/select_type_51.f90
  d4874fed6108821dfa28ab998af7855a  gcc/testsuite/gfortran.dg/select_type_6.f03
  3acc63d3709ace8561c2455ee8125fbc  gcc/testsuite/gfortran.dg/select_type_7.f03
  701c50cf2ae8ae92625bdf57c4ff5f6f  gcc/testsuite/gfortran.dg/select_type_8.f03
*************** f880b02e14636db1562c8d548386d1b5  gcc/te
*** 107031,107036 ****
--- 119640,119647 ----
  b018d403c909bd48aff95ffa51504bc5  gcc/testsuite/gfortran.dg/simd-builtins-7.h
  917ca17cb2401da8f1cf3b663d10e88f  gcc/testsuite/gfortran.dg/simd-builtins-8.f90
  d46cd2541777ff44df1246a7347c88ae  gcc/testsuite/gfortran.dg/simd-builtins-8.h
+ 25d59ff54a10bd0ef51ca3c9191a22d9  gcc/testsuite/gfortran.dg/simd-builtins-9.f90
+ 69c3ad8625856804aa22add020ee46ed  gcc/testsuite/gfortran.dg/simd-builtins-9.h
  f4292a6253c083744adc81c628aebb23  gcc/testsuite/gfortran.dg/simpleif_1.f90
  91056d9ca23bef5e1c2753b954256442  gcc/testsuite/gfortran.dg/simpleif_2.f90
  e5b189998f851622a73dfa0f57dc1819  gcc/testsuite/gfortran.dg/simplify_argN_1.f90
*************** aad042410419391c67cbcfe80381dfd6  gcc/te
*** 107068,107073 ****
--- 119679,119685 ----
  74d9192c674d36c49dd61638c0ed9427  gcc/testsuite/gfortran.dg/spec_expr_7.f90
  a85036393b2e190e3e232bfbc36020f8  gcc/testsuite/gfortran.dg/spec_expr_8.f90
  0e550c9c828d36891d4457d13bac694c  gcc/testsuite/gfortran.dg/spec_expr_9.f90
+ bfebd159d765556210feff79e2f8415d  gcc/testsuite/gfortran.dg/spec_statement_in_exec.f90
  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
*************** d8e60069f2b97e982ac574a084348519  gcc/te
*** 107077,107086 ****
--- 119689,119703 ----
  d3b8cb87c0d4560033de0eefb87ccd93  gcc/testsuite/gfortran.dg/spellcheck-procedure_1.f90
  615c3c141205bbe081c8a3e34df2c7a5  gcc/testsuite/gfortran.dg/spellcheck-procedure_2.f90
  2839437f9a11c4c8b6415703f56a7325  gcc/testsuite/gfortran.dg/spellcheck-structure.f90
+ c87f2d8d8a0e67cd2540c251262e631e  gcc/testsuite/gfortran.dg/split_1.f90
+ cfe18507090c53ee49ce6c7099f5be98  gcc/testsuite/gfortran.dg/split_2.f90
+ 95e53ef3b6e47d6e553122bd597d5057  gcc/testsuite/gfortran.dg/split_3.f90
+ 52b32dd079d2ab56dd854dc5d464fb54  gcc/testsuite/gfortran.dg/split_4.f90
  1fdd8f1d3aa20721e1933ead1efffc62  gcc/testsuite/gfortran.dg/spread_bounds_1.f90
  90560dd43afb04df0d4436add6187afd  gcc/testsuite/gfortran.dg/spread_init_expr.f03
  9739831622df43894c7628df7fbfdbe7  gcc/testsuite/gfortran.dg/spread_init_expr_2.f90
  4d184b91375f44c5b92a49fa87c9a38e  gcc/testsuite/gfortran.dg/spread_scalar_source.f90
+ cbcb6c80dd99e8b1762d2e2825690464  gcc/testsuite/gfortran.dg/spread_scalar_zerosize.f90
  1d00f5b498cd877e60af5bf7a6780831  gcc/testsuite/gfortran.dg/spread_shape_1.f90
  066e3aa75ad023aada1229f37bfa9c17  gcc/testsuite/gfortran.dg/spread_simplify_1.f90
  4a6636fb35b05d54b152a2bb04221e10  gcc/testsuite/gfortran.dg/spread_size_limit.f90
*************** c8b716cee316206a2cc9482d0e553937  gcc/te
*** 107088,107093 ****
--- 119705,119712 ----
  660cebcc8ffff86cb4ccb16d81f894fb  gcc/testsuite/gfortran.dg/spread_zerosize_1.f90
  3a0b66bd350086053b26eb6d89399496  gcc/testsuite/gfortran.dg/stat_1.f90
  3d99e8b3d3ffdc87f7cb331267201841  gcc/testsuite/gfortran.dg/stat_2.f90
+ 77ddf0f1deec155e2c90aa22e28e94a8  gcc/testsuite/gfortran.dg/stat_3.f90
+ 3a9136e7aae8563f4e5c8eb4889853de  gcc/testsuite/gfortran.dg/stat_4.f90
  6fd4f51de0ba02b7c11c54cc3d2847c3  gcc/testsuite/gfortran.dg/statement_function_1.f90
  5fc47d7780848b7c842c444d94dc4eca  gcc/testsuite/gfortran.dg/statement_function_2.f90
  dbb65e9cc1aa2d7834531d84c81cb2d0  gcc/testsuite/gfortran.dg/statement_function_3.f
*************** a613feb27e8e5adc7cb1fa1ae85d2092  gcc/te
*** 107158,107163 ****
--- 119777,119783 ----
  22ee495f1a896edbc49a08ff4c8ab74f  gcc/testsuite/gfortran.dg/string_length_2.f90
  e963c4744d55ef72757f5498e8f5d24a  gcc/testsuite/gfortran.dg/string_length_3.f90
  20d9ed8c5a22a61701284d70e137fca6  gcc/testsuite/gfortran.dg/string_length_4.f90
+ be89d2f0f47546c791c0aff357215abf  gcc/testsuite/gfortran.dg/string_length_5.f90
  97c8198bad4ee1d737d8dcf71ef53812  gcc/testsuite/gfortran.dg/string_null_compare_1.f
  1580c27fb69ee08df42bbee7b629c607  gcc/testsuite/gfortran.dg/string_pad_trunc.f90
  3194cca2b2581964987280c70f05554a  gcc/testsuite/gfortran.dg/structure_constructor_1.f03
*************** aa943f2bec85bb461999d2cb2adfc73a  gcc/te
*** 107204,107209 ****
--- 119824,119830 ----
  701cab3628ee98dbcccc1d64e72d4ed6  gcc/testsuite/gfortran.dg/submodule_31.f08
  2d0d1435c8fc29f13f4d8d923dcdddc5  gcc/testsuite/gfortran.dg/submodule_32.f08
  e87560f12976c9545d8b7ae479b2618c  gcc/testsuite/gfortran.dg/submodule_33.f08
+ ce6def9eadc42b1a4cd9adf6d9fe55ee  gcc/testsuite/gfortran.dg/submodule_34.f90
  68f9f70d888318a31160ba732171726f  gcc/testsuite/gfortran.dg/submodule_4.f08
  d470cf2de70b478f82f67f0729c09b76  gcc/testsuite/gfortran.dg/submodule_5.f08
  125419a41557152ac79de8af903ef20a  gcc/testsuite/gfortran.dg/submodule_6.f08
*************** a925dc24dc88f988a2c3d72d6db706b6  gcc/te
*** 107241,107249 ****
  8e267cb653bd786b2d52174413cdf5c5  gcc/testsuite/gfortran.dg/t_editing.f
  fc74a7b1dea5845099aae90ddbe0d2a9  gcc/testsuite/gfortran.dg/tab_continuation.f
  f5ffda893867e5bb3e11896536b411b9  gcc/testsuite/gfortran.dg/team_change_1.f90
  9ad3f21542a6018c6af843e0389b2a4e  gcc/testsuite/gfortran.dg/team_end_1.f90
  a579a2ebae177c6c8937cb2a5faa8bb7  gcc/testsuite/gfortran.dg/team_form_1.f90
! 15ed3e89c4ebdef04cdbb00f244e973d  gcc/testsuite/gfortran.dg/team_number_1.f90
  6c122fbf3d741247673a2078eece276c  gcc/testsuite/gfortran.dg/temporary_1.f90
  c745f4ff35ab6a66b342ec611f072f93  gcc/testsuite/gfortran.dg/temporary_2.f90
  aca8c0fe21750183affe5272cba5e787  gcc/testsuite/gfortran.dg/temporary_3.f90
--- 119862,119879 ----
  8e267cb653bd786b2d52174413cdf5c5  gcc/testsuite/gfortran.dg/t_editing.f
  fc74a7b1dea5845099aae90ddbe0d2a9  gcc/testsuite/gfortran.dg/tab_continuation.f
  f5ffda893867e5bb3e11896536b411b9  gcc/testsuite/gfortran.dg/team_change_1.f90
+ 4c72e2e12b115d4b9fb56c851dfd1a9f  gcc/testsuite/gfortran.dg/team_change_2.f90
+ ae44913762018fc6abc0d71eaefa7118  gcc/testsuite/gfortran.dg/team_change_3.f90
  9ad3f21542a6018c6af843e0389b2a4e  gcc/testsuite/gfortran.dg/team_end_1.f90
+ 187bfbb7a5e3f8ad22576971f426ec11  gcc/testsuite/gfortran.dg/team_end_2.f90
+ 0579b6f7a7af90ba1e08bb037b5df71a  gcc/testsuite/gfortran.dg/team_end_3.f90
  a579a2ebae177c6c8937cb2a5faa8bb7  gcc/testsuite/gfortran.dg/team_form_1.f90
! e214774323eb8f7cb55483f3c6d28c7f  gcc/testsuite/gfortran.dg/team_form_2.f90
! cea49456ead7a613d2cd9d4dfdb7b3b6  gcc/testsuite/gfortran.dg/team_form_3.f90
! d7ffe31f6d9cca347398b492cd545696  gcc/testsuite/gfortran.dg/team_get_1.f90
! 133f909212e2f9312b1c3c8163bd2cfb  gcc/testsuite/gfortran.dg/team_number_1.f90
! 4dd2f060153431695f3d811e20879ce4  gcc/testsuite/gfortran.dg/team_sync_1.f90
! 8b4a1fede3095b1edeb9a3cecf8f92db  gcc/testsuite/gfortran.dg/team_sync_2.f90
  6c122fbf3d741247673a2078eece276c  gcc/testsuite/gfortran.dg/temporary_1.f90
  c745f4ff35ab6a66b342ec611f072f93  gcc/testsuite/gfortran.dg/temporary_2.f90
  aca8c0fe21750183affe5272cba5e787  gcc/testsuite/gfortran.dg/temporary_3.f90
*************** c00e10e2dedc2a4d4050941a3ae36ab2  gcc/te
*** 107266,107271 ****
--- 119896,119902 ----
  d175a283aab741037bd1bdee76a76fa5  gcc/testsuite/gfortran.dg/transfer_array_intrinsic_4.f90
  c5cef3aa9c3895b4e6b38e993481ff14  gcc/testsuite/gfortran.dg/transfer_array_intrinsic_5.f90
  446033cb0484da91a769a31c11989942  gcc/testsuite/gfortran.dg/transfer_array_subref.f90
+ f3cfa4f9bf47a8662e4b6c7ad0aaf36f  gcc/testsuite/gfortran.dg/transfer_array_subref_2.f90
  fdabd8c65dcb8fb1bfe06c29c937c219  gcc/testsuite/gfortran.dg/transfer_assumed_size_1.f90
  1c08633181f8b50ad8fd08ed1f4f207f  gcc/testsuite/gfortran.dg/transfer_char_kind4.f90
  0d5a3d18a1eeb0de1ca65d86e1cd68f8  gcc/testsuite/gfortran.dg/transfer_check_1.f90
*************** ad625f0340741a09e4be8d42e070139e  gcc/te
*** 107278,107283 ****
--- 119909,119915 ----
  7f1199fe5fa90085dcbb4f81cbcf7062  gcc/testsuite/gfortran.dg/transfer_class_2.f90
  4003da30901edcfc6adf19924dc746a2  gcc/testsuite/gfortran.dg/transfer_class_3.f90
  d9a1040ed4fe93e5d91936d8b26af4cc  gcc/testsuite/gfortran.dg/transfer_class_4.f90
+ d265a0bb0e3067107f69caac520518ea  gcc/testsuite/gfortran.dg/transfer_class_5.f90
  dc67674921059cc6c14a48ba9f6e8515  gcc/testsuite/gfortran.dg/transfer_hollerith_1.f90
  adc172acf631bf550ac06d92fba37d99  gcc/testsuite/gfortran.dg/transfer_intrinsic_1.f90
  e26ab1b7e21f778b1135b8600958bcd1  gcc/testsuite/gfortran.dg/transfer_intrinsic_2.f90
*************** a9c38f145300eee1aaca2ccee4d418fd  gcc/te
*** 107461,107469 ****
  5fcbccbbe6f25c7610a63673951af1d0  gcc/testsuite/gfortran.dg/ubound_1.f90
  3487e8fcd11181a286e307cf481c7df0  gcc/testsuite/gfortran.dg/ubsan/bind-c-intent-out-2.f90
  5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.f90
  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
--- 120093,120102 ----
  5fcbccbbe6f25c7610a63673951af1d0  gcc/testsuite/gfortran.dg/ubound_1.f90
  3487e8fcd11181a286e307cf481c7df0  gcc/testsuite/gfortran.dg/ubsan/bind-c-intent-out-2.f90
  5cc6a12dda884ede65175d2892af6333  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_8.f90
+ 1c469dba0af5ca608c386643d45c9456  gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90
  ddea8e97d88b939147b22730616832d2  gcc/testsuite/gfortran.dg/ubsan/pr101624.f90
  e291127c769443ec31b3cab6dcce2f99  gcc/testsuite/gfortran.dg/ubsan/pr106062.f90
! e09be876a1fe6d9ea8576e3b6017ca0a  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
*************** bad45dd88b63d1ef062aa575fbe31791  gcc/te
*** 107578,107584 ****
  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
  a5bacc6abd14312805d91c2c53d4d15e  gcc/testsuite/gfortran.dg/use_11.f90
--- 120211,120217 ----
  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
! 0977d95f89992559e07880e6ebdea338  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
  a5bacc6abd14312805d91c2c53d4d15e  gcc/testsuite/gfortran.dg/use_11.f90
*************** d38ea460211b9bb867b36021bc67dc80  gcc/te
*** 107615,107621 ****
  0815a5f295ad9faf095341a90f134162  gcc/testsuite/gfortran.dg/use_only_1.f90
  2949dc3fa7229ee86f33eb0a01e7aa86  gcc/testsuite/gfortran.dg/use_only_2.f90
  77e322e7edcfac5c11ef4801498946fd  gcc/testsuite/gfortran.dg/use_only_3.f90
! 7005ad6464486a50c2bc9c94a84af493  gcc/testsuite/gfortran.dg/use_only_3.inc
  0bc12188c69d6278707d2df2084ee089  gcc/testsuite/gfortran.dg/use_only_4.f90
  ed757944c5eca5f36eaa6c42a33c04db  gcc/testsuite/gfortran.dg/use_only_5.f90
  e67a4a11f35c66e08fb4bb3279634a7a  gcc/testsuite/gfortran.dg/use_only_6.f90
--- 120248,120254 ----
  0815a5f295ad9faf095341a90f134162  gcc/testsuite/gfortran.dg/use_only_1.f90
  2949dc3fa7229ee86f33eb0a01e7aa86  gcc/testsuite/gfortran.dg/use_only_2.f90
  77e322e7edcfac5c11ef4801498946fd  gcc/testsuite/gfortran.dg/use_only_3.f90
! 5dc4dadc8ec9f12caf5970642ff4a9c7  gcc/testsuite/gfortran.dg/use_only_3.inc
  0bc12188c69d6278707d2df2084ee089  gcc/testsuite/gfortran.dg/use_only_4.f90
  ed757944c5eca5f36eaa6c42a33c04db  gcc/testsuite/gfortran.dg/use_only_5.f90
  e67a4a11f35c66e08fb4bb3279634a7a  gcc/testsuite/gfortran.dg/use_only_6.f90
*************** cec1ec6b2f905bb78b1700c94091bc21  gcc/te
*** 107682,107687 ****
--- 120315,120321 ----
  8454549da966b8a759972284f6ec3aec  gcc/testsuite/gfortran.dg/utf8_2.f03
  b8deb964e1494b3f3e7d2122ae130518  gcc/testsuite/gfortran.dg/utf8_3.f03
  17a95a4c64acfd3e2b0ddfd821176912  gcc/testsuite/gfortran.dg/value_1.f90
+ 1ea47d2a65e7d0581521acdc773b080f  gcc/testsuite/gfortran.dg/value_10.f90
  c0b7e645eca87d1072072c6b6e4a9126  gcc/testsuite/gfortran.dg/value_2.f90
  f55ce021238826090cc2feb968b15b3d  gcc/testsuite/gfortran.dg/value_3.f90
  044c3ac7d69169cd8171c69b76f48001  gcc/testsuite/gfortran.dg/value_4.c
*************** e0681ebf1cc0d7c0c6333d4894f4bb3d  gcc/te
*** 107693,107721 ****
  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
  6955f4b4c2942cbbeef05b640bfbe5fe  gcc/testsuite/gfortran.dg/vax_structure_1.f90
! a4a40dfa54475d3aef79ace11bd49427  gcc/testsuite/gfortran.dg/vect/O3-bb-slp-1.f
! 5a91d82e185e92f0f07255424bfe1445  gcc/testsuite/gfortran.dg/vect/O3-bb-slp-2.f
! 2275410732e79dcfc00faf303cb53d17  gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90
! 1454ba871ddfcd5aa0d4ee0bb7396904  gcc/testsuite/gfortran.dg/vect/O3-pr39595.f
! 711b74ce954f9e1413a8488fd57dc7c0  gcc/testsuite/gfortran.dg/vect/O3-pr49957.f
! 9243ed67b943be91e6a07b12cdbb85ed  gcc/testsuite/gfortran.dg/vect/Ofast-pr50414.f90
! b0e1d086d792aaa6f0448d6f6045949c  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445.f
! 28296343b1fb8d395ff884d9ce8d3357  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445a.f
! 2354717dc5aeba72ec7af1bd778056ac  gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
! ac8f5b820a1162a057bd4f98f8edb48c  gcc/testsuite/gfortran.dg/vect/fast-math-pr33299.f90
! eb8f63c129d8618d429aa78bba083c23  gcc/testsuite/gfortran.dg/vect/fast-math-pr37021.f90
! 5b7763b48d017e67bac2ada753e63c9c  gcc/testsuite/gfortran.dg/vect/fast-math-pr38968.f90
! e871e2ebc515b55aca26aac10d43819c  gcc/testsuite/gfortran.dg/vect/fast-math-real8-pr40801.f90
! 666bbe38184b24b7685eea553de2eb5a  gcc/testsuite/gfortran.dg/vect/fast-math-rnflow-trs2a2.f90
! eddd77f861f74465d78c92f841676d26  gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90
! 83e10153ac0827ff314148f5779aa542  gcc/testsuite/gfortran.dg/vect/mask-store-1.f90
! c4cdbb7826f698ed16a2354d36deafa1  gcc/testsuite/gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90
! ca22fb0f028313d733f9f90efd6b98e6  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32377.f90
! 19e92e71600fa931dce3409e389d0482  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32457.f90
  bba5c2c089f258e8640ba52dab163abe  gcc/testsuite/gfortran.dg/vect/pr100981-1.f90
  ca55d89300492a406b4293654a75c058  gcc/testsuite/gfortran.dg/vect/pr106253.f
  0fb16b96f846451901a2b858e2047150  gcc/testsuite/gfortran.dg/vect/pr107254.f90
--- 120327,120356 ----
  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
+ e5be8cf75a5ab044021569a922a61105  gcc/testsuite/gfortran.dg/value_optional_3.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
  6955f4b4c2942cbbeef05b640bfbe5fe  gcc/testsuite/gfortran.dg/vax_structure_1.f90
! 6d9d87e046d5e2dce5789bd051203772  gcc/testsuite/gfortran.dg/vect/O3-bb-slp-1.f
! 753c6c76a50b639d5c76e22fd98c7766  gcc/testsuite/gfortran.dg/vect/O3-bb-slp-2.f
! 49ff4576e22c5d0fceebb1c6406e627a  gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90
! 94bc6d8f4fb094460e32c39700c8cb0f  gcc/testsuite/gfortran.dg/vect/O3-pr39595.f
! e55ec8d9daf1c614d21937ae01f84935  gcc/testsuite/gfortran.dg/vect/O3-pr49957.f
! 0ec8f6bd7ef8e2a0a7a531aa6afa71b3  gcc/testsuite/gfortran.dg/vect/Ofast-pr50414.f90
! 13598abbddb5b9ee63bf15efc20d0105  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445.f
! a88745a83a42c5b8ce8b807df73925ab  gcc/testsuite/gfortran.dg/vect/cost-model-pr34445a.f
! 6799bafb4a7a0a2e2add6346abbcdd20  gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f
! 9c68ccd89a9db945b96c9e6e900e948f  gcc/testsuite/gfortran.dg/vect/fast-math-pr33299.f90
! 65b6d8ee79744b1b9274cdada2334ccd  gcc/testsuite/gfortran.dg/vect/fast-math-pr37021.f90
! 388c5108d63457e164af07a3ba0a406d  gcc/testsuite/gfortran.dg/vect/fast-math-pr38968.f90
! 22b8630df647a1a01a4baee647131b74  gcc/testsuite/gfortran.dg/vect/fast-math-real8-pr40801.f90
! bae3dceddbd52faa6adf0c971d4b37c2  gcc/testsuite/gfortran.dg/vect/fast-math-rnflow-trs2a2.f90
! 91c17f3419a9afa884c99026e6b86ca8  gcc/testsuite/gfortran.dg/vect/fast-math-vect-8.f90
! 939269d813d598542e8d3e28f03d6bde  gcc/testsuite/gfortran.dg/vect/mask-store-1.f90
! 9ebabc044fe76b205f33d0ec2334e694  gcc/testsuite/gfortran.dg/vect/no-fre-no-copy-prop-O3-pr51704.f90
! 05aba6656890c09fbe360c48ecfcc201  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32377.f90
! ea4d750230000511f017f56f9714b1ce  gcc/testsuite/gfortran.dg/vect/no-vfa-pr32457.f90
  bba5c2c089f258e8640ba52dab163abe  gcc/testsuite/gfortran.dg/vect/pr100981-1.f90
  ca55d89300492a406b4293654a75c058  gcc/testsuite/gfortran.dg/vect/pr106253.f
  0fb16b96f846451901a2b858e2047150  gcc/testsuite/gfortran.dg/vect/pr107254.f90
*************** ed99007df506ce091870da0cdbff417d  gcc/te
*** 107725,107730 ****
--- 120360,120367 ----
  b6cbc2d7f0f983561ecfb1e889cc9564  gcc/testsuite/gfortran.dg/vect/pr115528.f
  82e3d5f4f3c4f37d7f7c646d31ed6168  gcc/testsuite/gfortran.dg/vect/pr115710.f90
  3392d3d67c1af3233bcb1cb1563137c7  gcc/testsuite/gfortran.dg/vect/pr116956.f90
+ 968b7f70f6ea492d4668938e2d929b2c  gcc/testsuite/gfortran.dg/vect/pr123016.f90
+ 69ce1acd2174b1da669fa0ee2dcfcd74  gcc/testsuite/gfortran.dg/vect/pr123986.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
*************** e3ed6ec2719e9380031e3e22af66563e  gcc/te
*** 107750,107761 ****
  e908da4224e8c1e801b93e3fde2381b1  gcc/testsuite/gfortran.dg/vect/pr69882.f90
  8be888cc0b6731a3a012553b4bf9398b  gcc/testsuite/gfortran.dg/vect/pr69980.f90
  cefc2799ac1f1f0963931200eb469fc0  gcc/testsuite/gfortran.dg/vect/pr70043.f90
  44e4c7039bf8aa2059bc3842f955c44d  gcc/testsuite/gfortran.dg/vect/pr77848.f
  abf68e470c0aa7bc77cac4f589082522  gcc/testsuite/gfortran.dg/vect/pr81303.f
  677875c22fcbdaacf0630aebbf7740ee  gcc/testsuite/gfortran.dg/vect/pr83232.f90
  8b92a1fffaa166252123bd512e3f07ff  gcc/testsuite/gfortran.dg/vect/pr84913.f90
  9be04baf09b73ee331ee919269c7ee1d  gcc/testsuite/gfortran.dg/vect/pr85853.f90
! 48c80a6c163523eb726f99224a1e283a  gcc/testsuite/gfortran.dg/vect/pr86421.f90
  34153245fea2ed8b978b0ee75953c440  gcc/testsuite/gfortran.dg/vect/pr89535.f90
  9ab34e9e659f29537ab1a84a0cc37823  gcc/testsuite/gfortran.dg/vect/pr90681.f
  228d01744ff334cf0b8c02d689a04b1e  gcc/testsuite/gfortran.dg/vect/pr90913.f90
--- 120387,120399 ----
  e908da4224e8c1e801b93e3fde2381b1  gcc/testsuite/gfortran.dg/vect/pr69882.f90
  8be888cc0b6731a3a012553b4bf9398b  gcc/testsuite/gfortran.dg/vect/pr69980.f90
  cefc2799ac1f1f0963931200eb469fc0  gcc/testsuite/gfortran.dg/vect/pr70043.f90
+ 175fe6cf2d2426897e9641b896ed9db4  gcc/testsuite/gfortran.dg/vect/pr70102.f
  44e4c7039bf8aa2059bc3842f955c44d  gcc/testsuite/gfortran.dg/vect/pr77848.f
  abf68e470c0aa7bc77cac4f589082522  gcc/testsuite/gfortran.dg/vect/pr81303.f
  677875c22fcbdaacf0630aebbf7740ee  gcc/testsuite/gfortran.dg/vect/pr83232.f90
  8b92a1fffaa166252123bd512e3f07ff  gcc/testsuite/gfortran.dg/vect/pr84913.f90
  9be04baf09b73ee331ee919269c7ee1d  gcc/testsuite/gfortran.dg/vect/pr85853.f90
! fff400d55f6a88218a7de082bdb1006e  gcc/testsuite/gfortran.dg/vect/pr86421.f90
  34153245fea2ed8b978b0ee75953c440  gcc/testsuite/gfortran.dg/vect/pr89535.f90
  9ab34e9e659f29537ab1a84a0cc37823  gcc/testsuite/gfortran.dg/vect/pr90681.f
  228d01744ff334cf0b8c02d689a04b1e  gcc/testsuite/gfortran.dg/vect/pr90913.f90
*************** e3172873ebcacc53ed7031ec75e9c916  gcc/te
*** 107783,107789 ****
  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
--- 120421,120428 ----
  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
! a28c6b7265042047039bb29c34ef4fcd  gcc/testsuite/gfortran.dg/vect/vect-pr123741.f90
! 63685ce7b1b014c886fd36e1f224aec3  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
*************** a18037d4cd40a9b71b1fccb366b8bb98  gcc/te
*** 107887,107898 ****
  6b4ee0836270382d2156cb123c8a81cc  gcc/testsuite/gfortran.dg/whole_file_21.f90
  95904efb0094351524b8a8c3e4d346b3  gcc/testsuite/gfortran.dg/whole_file_22.f90
  48d188b23d1934c7e0f9a9a4727befd9  gcc/testsuite/gfortran.dg/whole_file_23.f90
! f15f35dea5daf5072bc742d39a6ea8e2  gcc/testsuite/gfortran.dg/whole_file_24.f90
  fdc5c0f5bfa9d58cdbb7272feaecb4af  gcc/testsuite/gfortran.dg/whole_file_25.f90
  363d36f52afd89e304d4745277e8fd39  gcc/testsuite/gfortran.dg/whole_file_26.f90
  70c32c74c38503b11d76209ea975e9c6  gcc/testsuite/gfortran.dg/whole_file_27.f90
  ddf222fc2848fa957e7eafad525da8cf  gcc/testsuite/gfortran.dg/whole_file_28.f90
! 778a633219af44fd7b4bc705c65ec21d  gcc/testsuite/gfortran.dg/whole_file_29.f90
  aeaf773b672971d35e6d38565abcaf7d  gcc/testsuite/gfortran.dg/whole_file_3.f90
  b7d9cdec49b9afb853813b5a2ff7f5f1  gcc/testsuite/gfortran.dg/whole_file_30.f90
  432f4a4ea6314fb586cbe60e7e00b992  gcc/testsuite/gfortran.dg/whole_file_31.f90
--- 120526,120537 ----
  6b4ee0836270382d2156cb123c8a81cc  gcc/testsuite/gfortran.dg/whole_file_21.f90
  95904efb0094351524b8a8c3e4d346b3  gcc/testsuite/gfortran.dg/whole_file_22.f90
  48d188b23d1934c7e0f9a9a4727befd9  gcc/testsuite/gfortran.dg/whole_file_23.f90
! e9aa88fa4aa80a16e4a8997ccd9630eb  gcc/testsuite/gfortran.dg/whole_file_24.f90
  fdc5c0f5bfa9d58cdbb7272feaecb4af  gcc/testsuite/gfortran.dg/whole_file_25.f90
  363d36f52afd89e304d4745277e8fd39  gcc/testsuite/gfortran.dg/whole_file_26.f90
  70c32c74c38503b11d76209ea975e9c6  gcc/testsuite/gfortran.dg/whole_file_27.f90
  ddf222fc2848fa957e7eafad525da8cf  gcc/testsuite/gfortran.dg/whole_file_28.f90
! 94d68e04bcbb710ff6484d65fde7c64b  gcc/testsuite/gfortran.dg/whole_file_29.f90
  aeaf773b672971d35e6d38565abcaf7d  gcc/testsuite/gfortran.dg/whole_file_3.f90
  b7d9cdec49b9afb853813b5a2ff7f5f1  gcc/testsuite/gfortran.dg/whole_file_30.f90
  432f4a4ea6314fb586cbe60e7e00b992  gcc/testsuite/gfortran.dg/whole_file_31.f90
*************** c9823efc4e3d9bdf48de2ccdbac46410  gcc/te
*** 107956,107962 ****
  695f4821cfc3d581586e00ce3b00b6cc  gcc/testsuite/gfortran.dg/wtruncate_fix.f
  ba29d8e2c036ab7319a984089a922f73  gcc/testsuite/gfortran.dg/wunused-parameter.f90
  42a39b8e757a674c811e7d19a5c41a28  gcc/testsuite/gfortran.dg/wunused-parameter_2.f90
! 6241896c88fbdcb0db012a34e8b95e65  gcc/testsuite/gfortran.dg/x_slash_1.f
  ba8277e5e7a193bd234c3801e4e5e435  gcc/testsuite/gfortran.dg/x_slash_2.f
  118deed9d7384913bfa909eabcd7efae  gcc/testsuite/gfortran.dg/zero_array_components_1.f90
  f32f4f6650669a28c4176a48b729c5a7  gcc/testsuite/gfortran.dg/zero_length_1.f90
--- 120595,120601 ----
  695f4821cfc3d581586e00ce3b00b6cc  gcc/testsuite/gfortran.dg/wtruncate_fix.f
  ba29d8e2c036ab7319a984089a922f73  gcc/testsuite/gfortran.dg/wunused-parameter.f90
  42a39b8e757a674c811e7d19a5c41a28  gcc/testsuite/gfortran.dg/wunused-parameter_2.f90
! 431903bc29935ae03d87a2f7520b4524  gcc/testsuite/gfortran.dg/x_slash_1.f
  ba8277e5e7a193bd234c3801e4e5e435  gcc/testsuite/gfortran.dg/x_slash_2.f
  118deed9d7384913bfa909eabcd7efae  gcc/testsuite/gfortran.dg/zero_array_components_1.f90
  f32f4f6650669a28c4176a48b729c5a7  gcc/testsuite/gfortran.dg/zero_length_1.f90
*************** b60b1e83048adf872f1f5827680dc3ed  gcc/te
*** 107984,107990 ****
  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
--- 120623,120629 ----
  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
! 93219a141e1c5b5f0e524af987cbae36  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
*** 108132,108138 ****
  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
--- 120771,120777 ----
  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
! 09b511d575b52cc4435918ac081f19d8  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
*** 108305,108317 ****
  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
--- 120944,120959 ----
  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
! ea03fb5ca9bd2d3e425e988e74bfcaa3  gcc/testsuite/gfortran.target/aarch64/aarch64.exp
  c37460d9fc2ef94382053354df0c3ef3  gcc/testsuite/gfortran.target/aarch64/pr116234.f
+ f49a9e5ed9144077a6174c71610d8918  gcc/testsuite/gfortran.target/aarch64/pr122408_1.f90
+ 6890252516b3245a15477e317869c38e  gcc/testsuite/gfortran.target/aarch64/pr122408_2.f90
+ 4cf281323629b728b4290a96ac918826  gcc/testsuite/gfortran.target/aarch64/pr123628.f90
  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
! bf8caffc23b0db11c70d4ba0acf558fc  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
*************** db8afdf5ed6aa3065c2d97091ed4668d  gcc/te
*** 108319,108331 ****
  3d1a820fbabf2b09a0663d760af54b26  gcc/testsuite/gm2.dg/doc/examples/pass/hellopim.mod
  66c568233a4ecff42698933a265bb3dd  gcc/testsuite/gm2.dg/doc/examples/plugin/fail/assignvalue.mod
  e76f2825196989e398cd2f3a186ca7b2  gcc/testsuite/gm2.dg/doc/examples/plugin/fail/doc-examples-plugin-fail.exp
  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
--- 120961,120991 ----
  3d1a820fbabf2b09a0663d760af54b26  gcc/testsuite/gm2.dg/doc/examples/pass/hellopim.mod
  66c568233a4ecff42698933a265bb3dd  gcc/testsuite/gm2.dg/doc/examples/plugin/fail/assignvalue.mod
  e76f2825196989e398cd2f3a186ca7b2  gcc/testsuite/gm2.dg/doc/examples/plugin/fail/doc-examples-plugin-fail.exp
+ 1e7e9bc1193e0f5adca7da8ec843a29c  gcc/testsuite/gm2.dg/doc/examples/run/pass/doc-examples-run-pass.exp
+ 8f55f7eaf880171edf867055931cc02d  gcc/testsuite/gm2.dg/doc/examples/run/pass/exampleadd2.mod
  8336252a5212ce63a317267e8e2bad76  gcc/testsuite/gm2.dg/pim/fail/badopaque.mod
  e6f3c702e8ca5bfbe627dcb752971fdb  gcc/testsuite/gm2.dg/pim/fail/badopaque2.mod
! a7df5c35f2bc87c32142f5b6ded3c8ce  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
! de4ede524274f9710ef8bf904fe6ec06  gcc/testsuite/gm2.dg/spell/iso/fail/badimport.mod
! 0683e282cbd968a6f1dfa78c956bd80d  gcc/testsuite/gm2.dg/spell/iso/fail/badimport2.mod
! 6109d687a613909b86fef68d3b2436b1  gcc/testsuite/gm2.dg/spell/iso/fail/badimport3.mod
! dad8856ff49fe71a7752d5bad615ab0a  gcc/testsuite/gm2.dg/spell/iso/fail/badimport4.mod
! bac3b2f6653a8c5706652acb80672851  gcc/testsuite/gm2.dg/spell/iso/fail/badspellabs.mod
! 629a261c471eee1fd867cb40ab126a66  gcc/testsuite/gm2.dg/spell/iso/fail/badspelladr.mod
! 36f7e140b207b9b84c44ebecea4be888  gcc/testsuite/gm2.dg/spell/iso/fail/badspellcap.mod
! edf32dae39d7f97c1f99ea0c9ea39d79  gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr.mod
! cdb83929f80ad92243c71528cad990f1  gcc/testsuite/gm2.dg/spell/iso/fail/badspellchr2.mod
! a3bbb4dbef969c23d45ab317340d6968  gcc/testsuite/gm2.dg/spell/iso/fail/badspelldec.mod
! d50214c543cdb5c517b6403b6d22eaa5  gcc/testsuite/gm2.dg/spell/iso/fail/badspellexcl.mod
! a5e57fa132253a43e0c0249910ffd45e  gcc/testsuite/gm2.dg/spell/iso/fail/badspellinc.mod
! ed18ae57bd12eb7e4afbec5f51238b8f  gcc/testsuite/gm2.dg/spell/iso/fail/badspellincl.mod
! fba1c621a45c06d14612cfa475f94517  gcc/testsuite/gm2.dg/spell/iso/fail/badspellnew.mod
! 910ca9bef7c2a9c2b16d30443bcd21c9  gcc/testsuite/gm2.dg/spell/iso/fail/badspellsize.mod
! 2dcba0fe0cfbbf9ae4a1a80eb761fa58  gcc/testsuite/gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp
! f8106e6cfe3ff2e00a64011fdc09ec12  gcc/testsuite/gm2/base-lang/pass/SYSTEM.def
! 60d00e18e126604df9335bb83e6daba3  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
*************** a404a06b27f2f3690d5a8d4f8469ecc6  gcc/te
*** 108365,108371 ****
  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
--- 121025,121031 ----
  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
! 6f848fcb314cc2b873302fea44fe9f4a  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
*************** b6b99ae1ddb54345a79d34fc2b664bd3  gcc/te
*** 108374,108385 ****
  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
--- 121034,121045 ----
  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
! 5787834cdf26c0c9564aa3a8e62722bc  gcc/testsuite/gm2/calling-c/datatypes/unbounded/run/pass/c.def
! 1429d11caec6cd32341a57b56e229396  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
! edd63171772b2f93d269e3b1bc93799c  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
! e2e5109051535aa4c0d741d69777b488  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
*** 108391,108397 ****
  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
--- 121051,121057 ----
  cc95df1776134eba4ad71eb32843594a  gcc/testsuite/gm2/complex/pass/arith4.mod
  c141ca31b357038eb6a4044b26998792  gcc/testsuite/gm2/complex/pass/arith5.mod
  7c255046cd47befaf8df0f28d083acd4  gcc/testsuite/gm2/complex/pass/arith6.mod
! ab4007ba86f939900d91a4a11288cd34  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
*** 108410,108424 ****
  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
--- 121070,121084 ----
  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
! 8c7eb7898d612aa5f7b21f3c71436e0e  gcc/testsuite/gm2/complex/run/pass/complex-run-pass.exp
! 3209e1b8d92cbe7dc70a56b9952bd41e  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
! da388b4390a12588d88a8c47551b848a  gcc/testsuite/gm2/cpp/default/pass/cpp-default-pass.exp
  d6adcb8a3ecd322645053f435759b3e1  gcc/testsuite/gm2/cpp/fail/another.h
! a1dbd1ce61f90748d77e3c452315b778  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
*** 108426,108432 ****
  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
--- 121086,121092 ----
  6ee77d1f3bced323a9c3a5ac371d3edb  gcc/testsuite/gm2/cpp/longstrimp.mod
  cf65d09dda713bbf29dd8228b5d8f1ba  gcc/testsuite/gm2/cpp/pass/arrayhuge.mod
  0efa028fc951d0c2d739c5865ec67f50  gcc/testsuite/gm2/cpp/pass/arrayhuge2.mod
! aa4fa8984fe418f15cd39af2aa53c66c  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
*** 108435,108448 ****
  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
--- 121095,121108 ----
  5ef1095727e696ab9baedcdb557ac534  gcc/testsuite/gm2/cpp/pass/testlong4.mod
  c06281a00fcf9225eeab039d3bab8deb  gcc/testsuite/gm2/cpp/setchar2.mod
  e46cfd304772efbdb8aaaa105735a0ce  gcc/testsuite/gm2/cpp/setchar6.mod
! 255e707c314ea1fed81f94524e67b712  gcc/testsuite/gm2/cse/fail/cse-fail.exp
  0b01e3d7bc6e315a8af5f12ba42e44bc  gcc/testsuite/gm2/cse/fail/testcse38.mod
! 7e5b27dc7e1a91ba2a4a7fbcc7c7660c  gcc/testsuite/gm2/cse/pass/cse-pass.exp
  1c74dc0e36dbbc5a6e89107500fe154b  gcc/testsuite/gm2/cse/pass/m2t.c
  f6a0ca3f9c588ab94a33ea5c826b6db4  gcc/testsuite/gm2/cse/pass/testb.mod
! 5310cde0fd2fcbd52a2c085b98f4f041  gcc/testsuite/gm2/cse/pass/testbuiltin.def
  2a890abfe4e4089097ab4050a7bf76bd  gcc/testsuite/gm2/cse/pass/testbuiltin.mod
! ffd829b030d37f097d33512b8cd64f3f  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
*** 108488,108499 ****
  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
--- 121148,121159 ----
  b37a68e352a1ba44f56085db993e889e  gcc/testsuite/gm2/cse/pass/testcse49.mod
  18b2ed6c5d23cd40adba92138f147f2a  gcc/testsuite/gm2/cse/pass/testcse5.c
  fcbe40c5a0ec515e75bf5de944218c14  gcc/testsuite/gm2/cse/pass/testcse5.mod
! 635ffb1143a11be93e32bcccf9933be3  gcc/testsuite/gm2/cse/pass/testcse50.def
  554574aac3e8e3b152685f5779a212d2  gcc/testsuite/gm2/cse/pass/testcse50.mod
  94447b3f9a412bef7c25a8e23c897b26  gcc/testsuite/gm2/cse/pass/testcse51.mod
! 8a3938d28239455ad393537cc8e57335  gcc/testsuite/gm2/cse/pass/testcse52.def
  e53ab184e1fbdc30838f0344eabeb02e  gcc/testsuite/gm2/cse/pass/testcse52.mod
! e6dc48d29d311d3f02d1333ac2f35f0f  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
*** 108505,108511 ****
  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
--- 121165,121171 ----
  3e451550ca1bd860854772690e42ac33  gcc/testsuite/gm2/cse/pass/testcse9.c
  432517d8243f4e378c79ed1e3ba18795  gcc/testsuite/gm2/cse/pass/testsize.mod
  0510433e35c0c6ead54c427e60a0608f  gcc/testsuite/gm2/dynamic/pass/add.mod
! 3041772a13545e16f8a759d2f237f84b  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
*** 108582,108588 ****
  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
--- 121242,121248 ----
  fd74cb161932e961aeee3f3424fc7dff  gcc/testsuite/gm2/dynamic/pass/testparam2.mod
  1f1adbd8785d1b11b5e5c6fd59878eaf  gcc/testsuite/gm2/dynamic/pass/testproc.mod
  916d253edf0216aa6a05a3013d95f80e  gcc/testsuite/gm2/dynamic/pass/testproc2.c
! 8c7456ded747b96f924ebd045b9b6305  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
*** 108596,108602 ****
  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
--- 121256,121262 ----
  3028b5ea514299b7b507faed98474ac4  gcc/testsuite/gm2/dynamic/pass/testwith.mod
  1d1918c66dc6092a319002631fb176bd  gcc/testsuite/gm2/dynamic/pass/testzero.mod
  8ca370572635d09208363a548175c222  gcc/testsuite/gm2/dynamic/pass/wc.mod
! 83e5ed23ca3f361cf23faf4f3e0f0832  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
*************** e9a2009d44fdbd3ac42d7b6cb091fe43  gcc/te
*** 108608,108613 ****
--- 121268,121275 ----
  4b934d4c7b65834470d0b4d42b1d55a4  gcc/testsuite/gm2/errors/fail/badexpr.mod
  604ba73cefe9cef918e32fc0a4222473  gcc/testsuite/gm2/errors/fail/badfor.mod
  5df468079bdaff39ae193d84b106a403  gcc/testsuite/gm2/errors/fail/badhigh.mod
+ 9799ba401e8b8edf5bf58a97653b68ed  gcc/testsuite/gm2/errors/fail/badindrtype.mod
+ 9a1ee657d67016d94de4949e66bb3d61  gcc/testsuite/gm2/errors/fail/badindrtype2.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
*************** e9bb4f2b34ca31f67cf64ba38c53e4ed  gcc/te
*** 108616,108622 ****
  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
--- 121278,121284 ----
  a1ff75d5b3074c746e2e507afe7cacb7  gcc/testsuite/gm2/errors/fail/binarygeneric.mod
  daa7df11be2555fd40053e562964a10b  gcc/testsuite/gm2/errors/fail/binarygenericconst.mod
  5f0ba02dc58adc7420e4178eb32a14db  gcc/testsuite/gm2/errors/fail/end.mod
! f89e1bf337b48ef7c40361daf666f4cc  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
*************** c96b810859f2e6ef4edf5ff7dc529f4a  gcc/te
*** 108629,108635 ****
  1c74513cb6b9e5a64bd9cee59f114c8b  gcc/testsuite/gm2/errors/fail/testaddress.mod
  b216126a15c2f1df24c97bd8f2ad35ba  gcc/testsuite/gm2/errors/fail/testarray.mod
  faa7a855b35a4e5dd95c265442dca3a7  gcc/testsuite/gm2/errors/fail/testbit.mod
! c7227e5aef2e04956b54c83a17a5089b  gcc/testsuite/gm2/errors/fail/testbit2.mod
  b2e683d47ba38167a78ab304d11a6bbc  gcc/testsuite/gm2/errors/fail/testcase.mod
  c89b442f99164e238eac6613a62777a0  gcc/testsuite/gm2/errors/fail/testcomment.mod
  172c3ea670754d2deacc87441eefc3a4  gcc/testsuite/gm2/errors/fail/testcomment2.mod
--- 121291,121297 ----
  1c74513cb6b9e5a64bd9cee59f114c8b  gcc/testsuite/gm2/errors/fail/testaddress.mod
  b216126a15c2f1df24c97bd8f2ad35ba  gcc/testsuite/gm2/errors/fail/testarray.mod
  faa7a855b35a4e5dd95c265442dca3a7  gcc/testsuite/gm2/errors/fail/testbit.mod
! 9227c94d3d2c0fde30acdaf42158df9c  gcc/testsuite/gm2/errors/fail/testbit2.mod
  b2e683d47ba38167a78ab304d11a6bbc  gcc/testsuite/gm2/errors/fail/testcase.mod
  c89b442f99164e238eac6613a62777a0  gcc/testsuite/gm2/errors/fail/testcomment.mod
  172c3ea670754d2deacc87441eefc3a4  gcc/testsuite/gm2/errors/fail/testcomment2.mod
*************** a6bc643db8b638307100a87e854fb7e3  gcc/te
*** 108641,108647 ****
  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
--- 121303,121309 ----
  9e408a4d57d5234f441dcfcf5d115bc5  gcc/testsuite/gm2/errors/fail/testexp.mod
  0f082d396f21174008565cb7d399d091  gcc/testsuite/gm2/errors/fail/testfio.mod
  8b6650ef557295365b031a6e64c5517a  gcc/testsuite/gm2/errors/fail/testimport.mod
! ba4a3202d7b36312a36b33424bff20b5  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
*************** f4786048f6d3d7fad5cf09b27b332f20  gcc/te
*** 108664,108745 ****
  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
--- 121326,121407 ----
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/errors/options
  f782465b24a5c28876d1e145d32d4e6d  gcc/testsuite/gm2/errors/testchar.mod
  4fcab4c7c6702b981524ecfe52bc63ea  gcc/testsuite/gm2/errors/testsub2.mod
! cf07e2082194c85fd5328382e4bb0049  gcc/testsuite/gm2/examples/callingC/pass/examples-callingC-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/pass/hello.mod
! 9a5c35fc2bda42719066daf6e993388b  gcc/testsuite/gm2/examples/callingC/pass/libprintf.def
  6e696af32835a08458b941ee9c14701d  gcc/testsuite/gm2/examples/callingC/run/pass/c.c
! 8c09a1729886becb5fc127d1e53bf2be  gcc/testsuite/gm2/examples/callingC/run/pass/c.def
! 8ca8032aad6f9d0db808d58096ef6d96  gcc/testsuite/gm2/examples/callingC/run/pass/examples-callingC-run-pass.exp
  3585b7d87fd6e397d7595aaea07a819e  gcc/testsuite/gm2/examples/callingC/run/pass/hello.mod
! 9a5c35fc2bda42719066daf6e993388b  gcc/testsuite/gm2/examples/callingC/run/pass/libprintf.def
  9b1ea64716f9741f93057ecf55e5651c  gcc/testsuite/gm2/examples/callingC/run/pass/m.mod
! fd31b7f1fbf3c13ae18b812863325e40  gcc/testsuite/gm2/examples/cpp/pass/examples-cpp-pass.exp
  c79f3fc8141103ba51b9920fbba67f2d  gcc/testsuite/gm2/examples/cpp/pass/hello.mod
! 60cc85f07edf3633ed8e4d2d8c162bcd  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
! c9896963bf48ea3490325359ca31571a  gcc/testsuite/gm2/examples/cppDef/pass/examples-cppDef-pass.exp
! 9a5c35fc2bda42719066daf6e993388b  gcc/testsuite/gm2/examples/cppDef/pass/libprintf.def
! fcebbaab16ff8af8560832ec3602c8f7  gcc/testsuite/gm2/examples/hello/pass/examples-hello-pass.exp
  005a4f8e755fd4bc126cc939a5219fb4  gcc/testsuite/gm2/examples/hello/pass/hello.mod
! 20222369d000d5a8806070a841c707e4  gcc/testsuite/gm2/examples/map/pass/AdvMap.def
  ce5c06dd8ccd4257094b6d7fe0f6636f  gcc/testsuite/gm2/examples/map/pass/AdvMap.mod
! 25124633dfd75a2d636a108e39fac4df  gcc/testsuite/gm2/examples/map/pass/BoxMap.def
  7387b893fd77937cb206a439869baee0  gcc/testsuite/gm2/examples/map/pass/BoxMap.mod
! dd1e7f96ab3873dcd5740c1a19188434  gcc/testsuite/gm2/examples/map/pass/Chance.def
  1897fd7e181b9490c5df1b90b27bde34  gcc/testsuite/gm2/examples/map/pass/Chance.mod
! 663d12da7ac406503048ba379cb9a475  gcc/testsuite/gm2/examples/map/pass/Find.def
  217f7bc3d46176754d27ca8de06253b9  gcc/testsuite/gm2/examples/map/pass/Find.mod
! 8237145305938c68152c729f9cb7239c  gcc/testsuite/gm2/examples/map/pass/Geometry.def
  bf7c8164c2fac2b572b4e67c2edb96e7  gcc/testsuite/gm2/examples/map/pass/Geometry.mod
! 212260e1304d4d656a65af604778f3ae  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
! 9528e515cb9ce4d816ab341add8a626f  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
! 883fa22ca9891c69f7bfda400a82bade  gcc/testsuite/gm2/examples/map/pass/StoreCoord.def
  623b87a418f18dba104d8f3f8415b70a  gcc/testsuite/gm2/examples/map/pass/StoreCoord.mod
! 883fa22ca9891c69f7bfda400a82bade  gcc/testsuite/gm2/examples/map/pass/StoreCoords.def
  0f3582d823dac9d70750d368064dd135  gcc/testsuite/gm2/examples/map/pass/StoreCoords.mod
! 359d6dde092ea6cbc2c45f287de66209  gcc/testsuite/gm2/examples/map/pass/WriteMap.def
  984f2435f042117e1d11b236495373b5  gcc/testsuite/gm2/examples/map/pass/WriteMap.mod
! cf07e2082194c85fd5328382e4bb0049  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
! e053dfdfe9aa5144e482bafb8da3f071  gcc/testsuite/gm2/exceptions/run/pass/cpp.def
! 29ed527e1c6f1192ee0ea8ed963123ff  gcc/testsuite/gm2/exceptions/run/pass/exceptions-run-pass.exp
  5dfbb5b9b594bdca8adb56dfdeeef1e0  gcc/testsuite/gm2/exceptions/run/pass/libexcept.mod
! 306a5c1c9c0800f7c3f8923482c3efe9  gcc/testsuite/gm2/exceptions/run/pass/m2test.def
  60f35975489507b9e88065f7c2133491  gcc/testsuite/gm2/exceptions/run/pass/m2test.mod
! 1d58740c78747c4536523ef1387093df  gcc/testsuite/gm2/exceptions/run/pass/mycpp.cpp
! 07e8dcb498df2339d45c9dd40b411c49  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
! ff1b14da73b8afc15382f7a57801b262  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
! 745328affe3e29e855aba1cc645c3784  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
! 69ea2ab45b920df93415f1ba277f1936  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
! a2f22403206a3a0310b853948e6556bf  gcc/testsuite/gm2/extensions/pass/co.def
  d159d4a216d3d0b11a27343572db5b4a  gcc/testsuite/gm2/extensions/pass/co.mod
! 50fa3b110e6e069893dc7fbf4e45efa8  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
*** 108748,108754 ****
  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
--- 121410,121416 ----
  261fde70e790b820117f4ae44eb97471  gcc/testsuite/gm2/extensions/pass/int8p.mod
  15c237b555bd2fd8f5ba57d93e9d8f42  gcc/testsuite/gm2/extensions/pass/intsize8.mod
  0e28d95a61e7a4cfa672b7377c173e1b  gcc/testsuite/gm2/extensions/pass/jmp.mod
! 46d56b1a7feef1869948cad23ed4f888  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
*************** a830ce3cb9b626f041a4e9d36fc31471  gcc/te
*** 108756,108762 ****
  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
--- 121418,121424 ----
  058986cbc2e8bccb371e06f4bb391970  gcc/testsuite/gm2/extensions/pass/set8a.mod
  fc28f44846ac7d40a1fcd68808a61333  gcc/testsuite/gm2/extensions/pass/set8b.mod
  e2b5c579814b64fc78fb6c6bcc07dc7d  gcc/testsuite/gm2/extensions/pass/testco.mod
! f2b52a8653e94281d91a865bf35e7d4b  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
*** 108780,108787 ****
  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
--- 121442,121449 ----
  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
! e1121079348fa738f385aa952d472771  gcc/testsuite/gm2/extensions/run/pass/cvararg.def
! a9fca8c61456ca74d34de0c6c10b5c7d  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
*************** d57d404053c6ef9d1aaa90cdc440ae24  gcc/te
*** 108801,108809 ****
  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
--- 121463,121471 ----
  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
! 4c801d1c5eac862dee68336f9ac492ae  gcc/testsuite/gm2/fpu/pass/fp.def
  f421eb8626c024ae88d4db4325d7c4e5  gcc/testsuite/gm2/fpu/pass/fp.mod
! f77261eb1c45bfcfb104a5ca164dcb1d  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
*** 108813,108828 ****
  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
--- 121475,121490 ----
  d96589c2c2844064714e9b438501b89f  gcc/testsuite/gm2/fpu/pass/testfpu2.mod
  d08e0de57399712f8aa4cf7d257cf968  gcc/testsuite/gm2/fpu/pass/testfpu3.mod
  16c6c47aa8e76194eb5c0953f55f524c  gcc/testsuite/gm2/fpu/pass/testsin.mod
! 088024ea742c1c0774ebaed4bcec3f99  gcc/testsuite/gm2/imports/fail/imports-fail.exp
  eedc0a60a90c35fc25ca1db3bc48b54d  gcc/testsuite/gm2/imports/fail/localmodule2.mod
! 0b5f4a90ddd659c5ef8d3896269893a8  gcc/testsuite/gm2/imports/run/pass/c.def
  8e6474927fa522c9ea64fd6594fd9e18  gcc/testsuite/gm2/imports/run/pass/c.mod
! a000e5af0f213b9babfd4fcc8c56e237  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
! e8e39a4d3b80ac850478e6896e875017  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
*** 108847,108861 ****
  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
--- 121509,121523 ----
  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
! 96de90ba87158f18f7f6f940935303d9  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
! 2987eb18d666e490278ffe51ddf34963  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
! 640d161950394c2095bec75c6634ef09  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
*************** c83034aeb54185cebc6b47fc6f9aa445  gcc/te
*** 108879,108886 ****
  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
--- 121541,121548 ----
  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
! 82702f0c7b65959741b6401432cf2926  gcc/testsuite/gm2/iso/const/pass/iso-const-pass.exp
! 36211f3eb85241f9e93e5664a46480db  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
*************** dd62aea9ecf3ee966fdbe990c06704ab  gcc/te
*** 108890,108898 ****
--- 121552,121563 ----
  5d08cec83a9fd8cfa6b718baa93a2715  gcc/testsuite/gm2/iso/fail/badarray2.mod
  58fa04b34b089f4e639362653e1de965  gcc/testsuite/gm2/iso/fail/badarray3.mod
  08d72567eef98d824fdfea58dfd60bd0  gcc/testsuite/gm2/iso/fail/badassignment.mod
+ 740b56d0a4227ac8cf44108b7bb7509a  gcc/testsuite/gm2/iso/fail/badconst.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
+ 506688098905128cbb95cb623988ffdb  gcc/testsuite/gm2/iso/fail/badfield.mod
+ 993bbbb3a9360a35440f7ccc10c5418f  gcc/testsuite/gm2/iso/fail/badfield2.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
*************** c5ec5527b4bca04a200369be3b0d5133  gcc/te
*** 108904,108914 ****
--- 121569,121584 ----
  5ed1fa10cc675bda041dcdeeed28c41f  gcc/testsuite/gm2/iso/fail/badparam4.mod
  fecf4459acd65abc1b71561dc22d7689  gcc/testsuite/gm2/iso/fail/badparamarray.def
  8d98913215f9c558c4398522b8124ee1  gcc/testsuite/gm2/iso/fail/badparamarray.mod
+ 748601c23c0789ba8722338f05adc47a  gcc/testsuite/gm2/iso/fail/badprocedure.mod
+ 5af62fd22e657facab2aad5df40935ab  gcc/testsuite/gm2/iso/fail/badprocedure2.mod
  518c491ae8e4302554ef1995489cf08f  gcc/testsuite/gm2/iso/fail/badreturn.mod
  0bb573a71a0bb154185c5bcf52cef146  gcc/testsuite/gm2/iso/fail/badreturn2.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
+ 2184fd6fe14d3d471195318b7a08e84c  gcc/testsuite/gm2/iso/fail/badset4.mod
+ 8bfb7a192d991d31e762debe1330c2b4  gcc/testsuite/gm2/iso/fail/badtype.mod
+ 7e577b964a2f84e4559b4250993b7a49  gcc/testsuite/gm2/iso/fail/badvar.mod
  f593f212781741b8aa437f58c318720a  gcc/testsuite/gm2/iso/fail/bug10.mod
  cbba0194d3c34b32af7b1bc671474c98  gcc/testsuite/gm2/iso/fail/bug8.mod
  84b83814bc8182b14296d50e0b2f705c  gcc/testsuite/gm2/iso/fail/bug9.mod
*************** f49b7289c3d53c23285ff6ef46149e99  gcc/te
*** 108926,108936 ****
  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
--- 121596,121606 ----
  3ffd37fed98f69e69af9d930e9a86876  gcc/testsuite/gm2/iso/fail/constsubrange.mod
  8cd75979edf8234541dc58c2f7704add  gcc/testsuite/gm2/iso/fail/constsubrange2.mod
  4e821bb67abc742b556822995a64ea5e  gcc/testsuite/gm2/iso/fail/constsubrange3.mod
! 13aa3d100329018c5b2eb9e95e38e4ff  gcc/testsuite/gm2/iso/fail/defa.def
  4a1db953e98692055dccdc1c8fc43159  gcc/testsuite/gm2/iso/fail/defa.mod
! c19c2177569b51421b1c5777911faa6a  gcc/testsuite/gm2/iso/fail/defb.def
  3c6b5115568c4d660aa89060b63544f8  gcc/testsuite/gm2/iso/fail/defb.mod
! 68a1a4e82c99cf93196c199eb2a8e05d  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
*************** da1fbaf8a9296190ba11825db23d9833  gcc/te
*** 108938,108945 ****
  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
--- 121608,121615 ----
  c3173bcd0ed0659dee99ac9f9499c016  gcc/testsuite/gm2/iso/fail/forloopbyvar4.mod
  0802ea9862df9d877feebbc30c52f7db  gcc/testsuite/gm2/iso/fail/forloopbyvar5.mod
  adf60801fbf18218634d0cdfefbb6767  gcc/testsuite/gm2/iso/fail/forloopbyzero.mod
! 319bc4d366dfe8af9a05f355132028b9  gcc/testsuite/gm2/iso/fail/iso-fail.exp
! da2a61fe5bf32a512196b2e3f70ad916  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
*************** f96a686b7ebdd680d1ea27c0d2f8b49e  gcc/te
*** 108961,108969 ****
  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
--- 121631,121639 ----
  cd05f4056e7fa080d31647f017a369f3  gcc/testsuite/gm2/iso/fail/varient.mod
  ed6563e70916bce0539862ce8bf92344  gcc/testsuite/gm2/iso/fail/varient2.mod
  a0958c3dc000796522d937a4dabacd02  gcc/testsuite/gm2/iso/future/builtinlj.mod
! 55d787eddbd16484d7b66e536a0275ef  gcc/testsuite/gm2/iso/pass/ChanConsts.def
  b548e6cf07722a4141620bf090c7453a  gcc/testsuite/gm2/iso/pass/ChanConsts.mod
! 1a45a3f26e89117bc0f5943c227eede5  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
*************** c36139631daa5f71b97439df4c9d9968  gcc/te
*** 108996,109003 ****
  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
--- 121666,121673 ----
  1af42c7c84e203d3875f8c6ddc86590f  gcc/testsuite/gm2/iso/pass/expproc2.mod
  863bd7112d8597f55bc724ce68bf3394  gcc/testsuite/gm2/iso/pass/forloopbyconst.mod
  debbfd5917212ec7f4292381bb96ac54  gcc/testsuite/gm2/iso/pass/forloopbyvar3.mod
! cffc1231e8a2834eb27166828dae3a00  gcc/testsuite/gm2/iso/pass/iso-pass.exp
! b1c1aada8ef5975a50a3b4445abf5deb  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
*** 109014,109022 ****
  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
--- 121684,121692 ----
  4673308df9fe8082809963a37af79361  gcc/testsuite/gm2/iso/pass/subassign.mod
  de6f6670582027aff90b457bfa265df7  gcc/testsuite/gm2/iso/pass/testaddindr.mod
  1199df9529b8860654e70038121cb6f1  gcc/testsuite/gm2/iso/pass/testarrayunbounded.mod
! cf377f090c27dbf4cdd2d7e17989edfe  gcc/testsuite/gm2/iso/pass/testconv.def
  dfca0dd59c3c7312a6b41fa51e0b066b  gcc/testsuite/gm2/iso/pass/testconv.mod
! 6761442119f5b4cfa3e78006f17d0352  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
*************** fe2cff5a6de73f88d5d36f1989be93d3  gcc/te
*** 109040,109045 ****
--- 121710,121716 ----
  d71a6ac0e0221fe50dc256107211dd31  gcc/testsuite/gm2/iso/run/pass/adraddress.mod
  68113bc0c0aa774be83e0af4a4e7ba12  gcc/testsuite/gm2/iso/run/pass/adrunbounded3.mod
  a0eb439d9f4cc681b21fe56bfdb9af1a  gcc/testsuite/gm2/iso/run/pass/array9.mod
+ 192fda650c17db8c61259fa4af204b6b  gcc/testsuite/gm2/iso/run/pass/assigncons.mod
  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
*************** c83034aeb54185cebc6b47fc6f9aa445  gcc/te
*** 109052,109076 ****
  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
  7b2fcdc6261cbefe83d48f9a7e242eda  gcc/testsuite/gm2/iso/run/pass/conststrarray.mod
  4dfe8fae139497f03d3adba7f0cfd5ac  gcc/testsuite/gm2/iso/run/pass/constvec3.mod
  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
  934be849c50957ef2bbfb56adecc7ce8  gcc/testsuite/gm2/iso/run/pass/importself.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
--- 121723,121748 ----
  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
+ 42156cf6b2411cca376390d527631f65  gcc/testsuite/gm2/iso/run/pass/constructor3.mod
  7b2fcdc6261cbefe83d48f9a7e242eda  gcc/testsuite/gm2/iso/run/pass/conststrarray.mod
  4dfe8fae139497f03d3adba7f0cfd5ac  gcc/testsuite/gm2/iso/run/pass/constvec3.mod
  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
! dff111da16a57ce7d6ea9fa94f572ed2  gcc/testsuite/gm2/iso/run/pass/except3.cpp
  ba514aa29332bacc0035fe9edad9d4c4  gcc/testsuite/gm2/iso/run/pass/except4.mod
! 09a9e9f472c44fa63355afac1f0ce66c  gcc/testsuite/gm2/iso/run/pass/except5.cpp
  517736f3e4685a93515bb5ea51dd7019  gcc/testsuite/gm2/iso/run/pass/except5.mod
! b53b1498c0867c4f3c1983f457e04b3f  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
! 89030a8222af6eef7c348c1a70356128  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
  934be849c50957ef2bbfb56adecc7ce8  gcc/testsuite/gm2/iso/run/pass/importself.mod
  6c43786a6103c10ca7df3fb5094e1ce7  gcc/testsuite/gm2/iso/run/pass/int8field.mod
! 92155f9bbfb1c30c8f61d28656902404  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
*************** e011dc8b55ca1eab0785cef2ccdbf70e  gcc/te
*** 109086,109102 ****
  e065a11aad8d3334009e6bf5cc07d763  gcc/testsuite/gm2/iso/run/pass/onebyte2.mod
  fb11b2a9365b1717ae526deb38c41220  gcc/testsuite/gm2/iso/run/pass/onebyte3.mod
  ed15b32cac5558baf070bf13e20fb6ab  gcc/testsuite/gm2/iso/run/pass/packed.mod
  a392f2b779747b49f3bf8c1425b4f578  gcc/testsuite/gm2/iso/run/pass/proc.c
  ae1b3c93233365bbbcb2f5542962646a  gcc/testsuite/gm2/iso/run/pass/proc.mod
  63a34382ce27483885e44450151679a1  gcc/testsuite/gm2/iso/run/pass/proc2.mod
  0e331f85f9cbbd156ac97565d33fda86  gcc/testsuite/gm2/iso/run/pass/returnrecord.mod
  8fedf77113d653a5d34a508088470225  gcc/testsuite/gm2/iso/run/pass/shift.mod
  3f14a46336d423e5cb9de1c089eea96a  gcc/testsuite/gm2/iso/run/pass/shift2.mod
  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
  04ed99500b2e87921a155bbca42a942e  gcc/testsuite/gm2/iso/run/pass/strcons3.mod
--- 121758,121784 ----
  e065a11aad8d3334009e6bf5cc07d763  gcc/testsuite/gm2/iso/run/pass/onebyte2.mod
  fb11b2a9365b1717ae526deb38c41220  gcc/testsuite/gm2/iso/run/pass/onebyte3.mod
  ed15b32cac5558baf070bf13e20fb6ab  gcc/testsuite/gm2/iso/run/pass/packed.mod
+ d2643e6b68b9b2cd7f0a6d1aa9eafac0  gcc/testsuite/gm2/iso/run/pass/printsize.mod
  a392f2b779747b49f3bf8c1425b4f578  gcc/testsuite/gm2/iso/run/pass/proc.c
  ae1b3c93233365bbbcb2f5542962646a  gcc/testsuite/gm2/iso/run/pass/proc.mod
  63a34382ce27483885e44450151679a1  gcc/testsuite/gm2/iso/run/pass/proc2.mod
+ f6b96df9f159dc0f5652d5f7f45aceb4  gcc/testsuite/gm2/iso/run/pass/proc_test.mod
  0e331f85f9cbbd156ac97565d33fda86  gcc/testsuite/gm2/iso/run/pass/returnrecord.mod
+ 9131704c57e025c5d430ed3f921f1513  gcc/testsuite/gm2/iso/run/pass/setcons.mod
+ 346a1582840a2e083f48f3541f7e5ab3  gcc/testsuite/gm2/iso/run/pass/setcons2.mod
+ d6da0e36cb77069ba83fb40a1a52ec21  gcc/testsuite/gm2/iso/run/pass/setcons3.mod
+ c108009a4a0517faf179f720676fa5df  gcc/testsuite/gm2/iso/run/pass/setcons4.mod
+ 50b2504115bce1cb9e63bbef7c61eb3a  gcc/testsuite/gm2/iso/run/pass/setcons5.mod
  8fedf77113d653a5d34a508088470225  gcc/testsuite/gm2/iso/run/pass/shift.mod
  3f14a46336d423e5cb9de1c089eea96a  gcc/testsuite/gm2/iso/run/pass/shift2.mod
  e11beea7b7818fdfd024c43f20393bd9  gcc/testsuite/gm2/iso/run/pass/shift3.mod
! 84c8cb2dc1f06e10eac3027fd1b3de0f  gcc/testsuite/gm2/iso/run/pass/shift4.mod
  a3a9bfe46b5a2ad99d516b933303594a  gcc/testsuite/gm2/iso/run/pass/shorttest.mod
! 2090f70104c51ef471fb404e67606c4a  gcc/testsuite/gm2/iso/run/pass/simple
  0fa8f6bac59d5b939cee67f911d96f9d  gcc/testsuite/gm2/iso/run/pass/simplelarge.mod
+ d50a73e868bd51ec1f09c0c5763043ff  gcc/testsuite/gm2/iso/run/pass/simplelarge2.mod
+ 306880b3ca08cc0d29b5adf1b2b8f04c  gcc/testsuite/gm2/iso/run/pass/simplelarge3.mod
+ 6b56b952358e439de3c077cab1da4ae6  gcc/testsuite/gm2/iso/run/pass/simplelarge4.mod
  9faeaea3c4d878cb86d98cb51b4ee431  gcc/testsuite/gm2/iso/run/pass/strcons.mod
  60a7bd468fc8261e7b7dc9630d14b2d9  gcc/testsuite/gm2/iso/run/pass/strcons2.mod
  04ed99500b2e87921a155bbca42a942e  gcc/testsuite/gm2/iso/run/pass/strcons3.mod
*************** a54ec8a7fb388143dcdf9bf6ba8a0358  gcc/te
*** 109107,109115 ****
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
  4d7687bca068e2077f170b6c8590e9e6  gcc/testsuite/gm2/iso/run/pass/testclock.mod
  8b34e4874d9f5cb694efcb8924f36ea9  gcc/testsuite/gm2/iso/run/pass/testclock2.mod
! 7bf6b9debcb93e4d790de77b832f7e02  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
! b0965c512d33d48ba22ab6ec0cbb43e1  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
  55a2e1b2fa8f3546a13e3bc16789e644  gcc/testsuite/gm2/iso/run/pass/tinyconst.mod
  6b3c53dbe456b9b80f18c5392bcd61eb  gcc/testsuite/gm2/iso/run/pass/tinyconst2.mod
  26361435d9dff9b02335fdb966c2811a  gcc/testsuite/gm2/iso/run/pass/tinyconst3.mod
--- 121789,121801 ----
  31f73a7b9921b81db0836fefb79b1a18  gcc/testsuite/gm2/iso/run/pass/testarray.mod
  4d7687bca068e2077f170b6c8590e9e6  gcc/testsuite/gm2/iso/run/pass/testclock.mod
  8b34e4874d9f5cb694efcb8924f36ea9  gcc/testsuite/gm2/iso/run/pass/testclock2.mod
! 26e2c554038755249409a6ef06a89aef  gcc/testsuite/gm2/iso/run/pass/testgeneric.mod
! 341e2db42cde5dfd0ef5c2ca9e24d40c  gcc/testsuite/gm2/iso/run/pass/testgeneric2.mod
! 095b4626814d73cc835695e5217e3a16  gcc/testsuite/gm2/iso/run/pass/testgeneric3.mod
! 99d641369219445a259b434e4bf47ad4  gcc/testsuite/gm2/iso/run/pass/testgeneric4.mod
! 55e236e59f3db4f55effcd92505287cd  gcc/testsuite/gm2/iso/run/pass/testgeneric5.mod
  2099fa3a5b7dcee8b0ecac40aba33545  gcc/testsuite/gm2/iso/run/pass/testlarge.mod
! 7b2aa03eef51583de3c83f4e2e72974e  gcc/testsuite/gm2/iso/run/pass/testsystem.mod
  55a2e1b2fa8f3546a13e3bc16789e644  gcc/testsuite/gm2/iso/run/pass/tinyconst.mod
  6b3c53dbe456b9b80f18c5392bcd61eb  gcc/testsuite/gm2/iso/run/pass/tinyconst2.mod
  26361435d9dff9b02335fdb966c2811a  gcc/testsuite/gm2/iso/run/pass/tinyconst3.mod
*************** c58783000fdf657d736883de5f9c0e66  gcc/te
*** 109129,109135 ****
  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
--- 121815,121821 ----
  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
! f02e655217d432aee088cccb85e6b188  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
*** 109142,109148 ****
  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
--- 121828,121834 ----
  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
! ef2aef15b91d5a72053649e988b121f0  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
*************** ffe3859b8cbbed7ff7dedbdc8ba61bdf  gcc/te
*** 109158,109164 ****
  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
  a678ad29e6501579ae0715c3d544730f  gcc/testsuite/gm2/isolib/run/pass/testdelete2.mod
--- 121844,121850 ----
  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
! 2facbb7e4c16f022a1454b641c291fca  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
  a678ad29e6501579ae0715c3d544730f  gcc/testsuite/gm2/isolib/run/pass/testdelete2.mod
*************** d090d3879801d41d7c6558ac9d7a72a7  gcc/te
*** 109180,109204 ****
  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
--- 121866,121890 ----
  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
! dc8a7ea23c9ad155971b77c72361e435  gcc/testsuite/gm2/libs/a.def
  401be10a7c2b78bf15c555d81fbff436  gcc/testsuite/gm2/libs/a.mod
! 5b3e86ed62b5bb1d867015da257422fc  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
! 86910e0f2425ed15076b4ca628e80bc9  gcc/testsuite/gm2/link/externalscaffold/pass/link-externalscaffold-pass.exp
  b7ca4351724a2591b8a8ca4451a7a44b  gcc/testsuite/gm2/link/externalscaffold/pass/scaffold.c
! cb598394741b19e9a51bc797af911b8d  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
! 766aa5deea7084537f2195c472f3fe41  gcc/testsuite/gm2/link/nondefaultext/pass/link-nondefaultext-pass.exp
  aa515547392bf65d8ff6de37572453f7  gcc/testsuite/gm2/link/pim/fail/import.mod
! be61ae0ef23c5d327cd826278c8d31b6  gcc/testsuite/gm2/link/pim/fail/link-pim-fail.exp
! 83e5ed23ca3f361cf23faf4f3e0f0832  gcc/testsuite/gm2/link/pim/pass/link-pim-pass.exp
  8a50d2a21ae4fff8f675a6613ac56bf8  gcc/testsuite/gm2/link/pimc/pass/README
! d3db10086e32d5d58b0cba6cd88e9741  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
*** 109213,109236 ****
  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
--- 121899,121922 ----
  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
! 247717b1f0f3c058b47f5568a6f3da52  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
! 9289985d3cbefb808ae364484a2e01b6  gcc/testsuite/gm2/linking/libarchive/pass/c.def
! 16705b1688e447f2d97a1727a7d3b178  gcc/testsuite/gm2/linking/libarchive/pass/d.def
! d4093a171bb4538f22334d72f333eb49  gcc/testsuite/gm2/linking/libarchive/pass/e.def
! 23debac30fb619586129f6aeb1fa4034  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
! 3a1c505de26780fd092b1b96f7992fff  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
! e988febc8630ad652255aaca5a0d40d2  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
! e7ceffd79eedf887e0e69884df169990  gcc/testsuite/gm2/pim/fail/b.def
! b05c97da97da5e4bf2e386f6e9ecebd8  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
*************** db7436cc6948424e65700d7b6597862f  gcc/te
*** 109250,109255 ****
--- 121936,121942 ----
  ecdbb910ccdbf4a9ff9978bb73c88f41  gcc/testsuite/gm2/pim/fail/badpointer4.mod
  3b70d947b4ea67fb7afcaddfd1ba2418  gcc/testsuite/gm2/pim/fail/badprocbool.mod
  1a8f950ee43a0dfff7a19a75a075d9c8  gcc/testsuite/gm2/pim/fail/badproccard.mod
+ b435128d6ff9a0301472d7f603852478  gcc/testsuite/gm2/pim/fail/badprocedure.mod
  07d625c5434862792bce301cb2616c92  gcc/testsuite/gm2/pim/fail/badprocint.mod
  dbe65c434f0a6b28ab79a771b3662b3f  gcc/testsuite/gm2/pim/fail/badprocint2.mod
  212d8402f510392bda8bdfb7796944e8  gcc/testsuite/gm2/pim/fail/badproctype.mod
*************** c08ed0a5562d22ab62d13213541fcf63  gcc/te
*** 109291,109297 ****
  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
--- 121978,121984 ----
  9ef4769bf6ee7b9e2b95cbde24aca032  gcc/testsuite/gm2/pim/fail/forloop.mod
  8c952329bcbaf0b1ee0b8952a3b94b82  gcc/testsuite/gm2/pim/fail/forloopby.mod
  5aa9ea61b8279a2548ef04550b219d9c  gcc/testsuite/gm2/pim/fail/func.mod
! cf852d809e41a052f6ae35cb51eb23f0  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
*** 109311,109317 ****
  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
--- 121998,122004 ----
  0558acf54770c349f1d2896416c431cd  gcc/testsuite/gm2/pim/fail/opaque2.mod
  dbc7f420f29d7f33702b0a087b13dfe5  gcc/testsuite/gm2/pim/fail/opasfail.mod
  faec561d3f04b0e2ce0744d90d7cfc89  gcc/testsuite/gm2/pim/fail/opcpfail.mod
! 750e3ffd12c6a2b56af013fd105a3f70  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
*************** fee9872b16570ba80886c91358d5072a  gcc/te
*** 109337,109352 ****
  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
  ac435dc05f7be0c0c817cd3bc9cfb976  gcc/testsuite/gm2/pim/pass/ReturnType.mod
--- 122024,122039 ----
  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
! c29f5ba047a8a3bfc0cff9d22b72d6a6  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
! 2445f015e17e1be6a5074987e346d6b8  gcc/testsuite/gm2/pim/no-options/run/pass/pim-no-options-run-pass.exp
  121645d120989117b58eed5131eeb2d3  gcc/testsuite/gm2/pim/options/bounds/fail/IdentifierBug.mod
! 58cf6b39bcab7dd29fe5c211b4e01fee  gcc/testsuite/gm2/pim/options/bounds/fail/pim-options-bounds-fail.exp
! 4f36b6d13dd531c80bf3abd33922cc07  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
! db1845ec936126ab219d6f44299f6b0e  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
  ac435dc05f7be0c0c817cd3bc9cfb976  gcc/testsuite/gm2/pim/pass/ReturnType.mod
*************** c880ff974ae25f51a15b2a40d5700609  gcc/te
*** 109401,109407 ****
  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
--- 122088,122094 ----
  92f0a1750a5727d57578c68264b5def3  gcc/testsuite/gm2/pim/pass/assignment3.mod
  985baf679a37178096ce38f5b066e1c8  gcc/testsuite/gm2/pim/pass/assignment4.mod
  a65219c98879b7453a7b11a7fef0d98e  gcc/testsuite/gm2/pim/pass/badpointer.mod
! 87ffb4a4120c458148cfc0cae7cb43f3  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
*** 109412,109418 ****
  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
--- 122099,122105 ----
  77009e89e217696e6333e4f50b495de3  gcc/testsuite/gm2/pim/pass/bitsetfunc.mod
  f514c8b223d38484bea5e885ef3d32e9  gcc/testsuite/gm2/pim/pass/block.mod
  ca6e5474515e87eca56b65ebfae71927  gcc/testsuite/gm2/pim/pass/blockindirect.mod
! 161a041a01f1c76cb726ed44221a7862  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
*** 109425,109431 ****
  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
--- 122112,122118 ----
  09c34e333ce6e0fec99402ef3ec06cbd  gcc/testsuite/gm2/pim/pass/charset.mod
  8e07e59517c05396c84ba115c9e6b4dc  gcc/testsuite/gm2/pim/pass/charset2.mod
  01691912ad8fee8a7774966522a21b23  gcc/testsuite/gm2/pim/pass/charset3.mod
! c00015d4858fafc2d0c0e5ffb34acfce  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
*** 109443,109450 ****
  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
--- 122130,122137 ----
  4d653dfa70d668596c153ec4b27e5d18  gcc/testsuite/gm2/pim/pass/convert3.mod
  a9de62ee5fe3a819af9a0ebae89caba1  gcc/testsuite/gm2/pim/pass/convert4.mod
  388393520871e25e1926856dc63d7f8d  gcc/testsuite/gm2/pim/pass/danglingelse.mod
! c6c623ef9bf1a18f71aec4e846116a9c  gcc/testsuite/gm2/pim/pass/debug
! db77ba754cb99d93d41cf19616a1c0b4  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
*************** c5ba6a075ea2d754fd6c5cf5d0f63063  gcc/te
*** 109464,109470 ****
  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
--- 122151,122157 ----
  980e2dfb1098fe6b13c71f6fefe6cd49  gcc/testsuite/gm2/pim/pass/forward.mod
  a1c6c93cfe8fff16854d0c7e5cc45fbf  gcc/testsuite/gm2/pim/pass/function.mod
  ad0050bee37026a93c829a61da2f0938  gcc/testsuite/gm2/pim/pass/function2.mod
! ac79b9e134fdba60e93e1726d3f5d092  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
*************** f8a265d8d064329a48d8fb8a627463fe  gcc/te
*** 109477,109485 ****
  0e0dfb52c307c38cab7fcc3a2a14fa5a  gcc/testsuite/gm2/pim/pass/highbit2.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
--- 122164,122172 ----
  0e0dfb52c307c38cab7fcc3a2a14fa5a  gcc/testsuite/gm2/pim/pass/highbit2.mod
  deec7e02a3ff68e431b9625fb1dc63b5  gcc/testsuite/gm2/pim/pass/highexp.mod
  f9cd141a6b4217bff724f01cca0dd4dd  gcc/testsuite/gm2/pim/pass/impa.mod
! 9b055e3741f5914dcf0aec15905aecf5  gcc/testsuite/gm2/pim/pass/impb.def
  67e33a57d6237c7251dd814eedb08fab  gcc/testsuite/gm2/pim/pass/impb.mod
! c620e782b70f7b5dd6e829420a1f8c46  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
*** 109491,109503 ****
  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
--- 122178,122190 ----
  04c715e96ab247ecdcdb73c2d9081ff8  gcc/testsuite/gm2/pim/pass/impk.mod
  1a50d3515abda343ad2ebeffd8e0e05e  gcc/testsuite/gm2/pim/pass/impl.mod
  e57ae096b6d3ce135039ecb411a3d678  gcc/testsuite/gm2/pim/pass/impm.mod
! b13e5ce4a0237bd8544ccde07e8da5b1  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
! 0eab98002983d806cbd93cd05da84c51  gcc/testsuite/gm2/pim/pass/impp.def
  b78b3932342406cf8f0fc91232816931  gcc/testsuite/gm2/pim/pass/impp.mod
! 6c7e5a6682a0e7e5496ed86fb77b8599  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
*************** a01824e9392048cdee8e74897973abad  gcc/te
*** 109541,109548 ****
  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
--- 122228,122235 ----
  238b45a9809404f5deabcf8889b09ef6  gcc/testsuite/gm2/pim/pass/multiple.mod
  b408764127983c912f0b8184f1c1283b  gcc/testsuite/gm2/pim/pass/multiset.mod
  f1765eec0788d176a0b5bc918d962a3f  gcc/testsuite/gm2/pim/pass/multtypes.mod
! 822900347b4a0fe0ec86de498e9327d3  gcc/testsuite/gm2/pim/pass/mydef.def
! 4507aea87d3f480df7a3507a488fb22b  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
*************** b7e8089bc85513d14963311687c21a0b  gcc/te
*** 109557,109573 ****
  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
--- 122244,122260 ----
  f0c264cd2fd831374d7ff201fd2355db  gcc/testsuite/gm2/pim/pass/nulcharcase.mod
  21d0bc70c0827a7cc774339b834044f6  gcc/testsuite/gm2/pim/pass/nulcharvar.mod
  23f18c1c8f0e5f5b526a360f7cd5695d  gcc/testsuite/gm2/pim/pass/onezero.mod
! cacd611acb0b85a026952d4d3556b898  gcc/testsuite/gm2/pim/pass/opaque.def
  c6460639ba2522774d63b3bd4d00fe6a  gcc/testsuite/gm2/pim/pass/opaque.mod
  024b3dc7f39261f7cb26e3b9a4978904  gcc/testsuite/gm2/pim/pass/opaque2.mod
! 152e6344a96d96c0a9caa57c46a7cba9  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
! 28c1a15cdf6bd773f99578c59f0d79d3  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
*** 109583,109595 ****
  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
--- 122270,122282 ----
  a006deb2b0f2e97d9d9f794958383cd8  gcc/testsuite/gm2/pim/pass/procmod31.mod
  1e9f2ad44a7ac856a7ab2640e92afac8  gcc/testsuite/gm2/pim/pass/procmod4.mod
  7877ec402b339579d1fa9b7105c56adc  gcc/testsuite/gm2/pim/pass/procmod5.mod
! 1223ca174f113910245cc2daad47fd84  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
! 6fe2523403618860435d1ea999c4bd61  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
*************** b84564bb1fb7c6e56867692fc2741bd9  gcc/te
*** 109598,109604 ****
  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
--- 122285,122291 ----
  0304569045d8cb7150bff529f14fdb39  gcc/testsuite/gm2/pim/pass/ptrarray2.mod
  55ea4ffb039720c977f13f532dea66dd  gcc/testsuite/gm2/pim/pass/ptrarray3.mod
  47abed44bfdf839f3ca139cdb50753ea  gcc/testsuite/gm2/pim/pass/ptrcard.mod
! ac7fbefbaece8005da43a21467a37e69  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
*** 109611,109621 ****
  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
--- 122298,122308 ----
  c5fa84af45085633d26e5b2aa981e9ec  gcc/testsuite/gm2/pim/pass/record1.mod
  972f20925d6449209e97da30c39855f7  gcc/testsuite/gm2/pim/pass/record10.mod
  810f2b56b9e944581f49b1ed39f6b196  gcc/testsuite/gm2/pim/pass/record11.mod
! 9f8a738746c19aa73982804150fc1530  gcc/testsuite/gm2/pim/pass/record12.def
! 43ff73b21d19a532ef1298ee1994e4d0  gcc/testsuite/gm2/pim/pass/record13.def
! 4cee5a09564d0c5d19b27816ec384799  gcc/testsuite/gm2/pim/pass/record14.def
! b7d879b961d411e0acc43065d5895cd6  gcc/testsuite/gm2/pim/pass/record15.def
! 81cb5bd42a21e9a1548b981a221ad45b  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
*** 109629,109635 ****
  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
--- 122316,122322 ----
  76cad0910073d24227d3f55e4771a3d1  gcc/testsuite/gm2/pim/pass/recordarray2.mod
  acfdeaa19c6ac31f80f4ff4daf94f512  gcc/testsuite/gm2/pim/pass/redef.mod
  3bcee76a5a70a53fce55f8df3522cb34  gcc/testsuite/gm2/pim/pass/set10.mod
! e649d35caa8a37676eb51289c1784ef6  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
*** 109685,109691 ****
  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
--- 122372,122378 ----
  bd93ed27bb4295dac0b15c0a6d42dbec  gcc/testsuite/gm2/pim/pass/stringassign.mod
  8fba0e3a8dd422f9aa165f6e89c6f2b8  gcc/testsuite/gm2/pim/pass/stringopaq.mod
  c3b57326a6ac7273da7f438ea5ab5767  gcc/testsuite/gm2/pim/pass/strings.mod
! dcbece7793ca7ab64e817bdc9a61a7fd  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
*** 109738,109744 ****
  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
--- 122425,122431 ----
  a1d9044d42bf5d2e656ddce7432f6928  gcc/testsuite/gm2/pim/pass/testparam2.mod
  554a454005daf4c40a260a606d378cd9  gcc/testsuite/gm2/pim/pass/testparam3.mod
  d328942477ab4c4bbd5e7a038d58b452  gcc/testsuite/gm2/pim/pass/testpimsize.mod
! 4e2d68b250331874c04796e15b027b89  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
*** 109768,109774 ****
  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
--- 122455,122461 ----
  12a6e0911bd7a3400d9526d11a2a6f08  gcc/testsuite/gm2/pim/pass/tinyarray4.mod
  24c6ffbb2f4a986b7fe5ee54eaafd5f8  gcc/testsuite/gm2/pim/pass/tinyarray5.mod
  9f61dc6c2b7c1d9c88f1365923e9996b  gcc/testsuite/gm2/pim/pass/tinyarray6.mod
! 3b93a0fc673e80bc391a0ad07dafd112  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
*** 109813,109819 ****
  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
--- 122500,122506 ----
  9f4c7d0d91aa2f2dca6bdd4c532e52ee  gcc/testsuite/gm2/pim/pass/tinyset6.mod
  395314c56cd4515846b905de8e33183b  gcc/testsuite/gm2/pim/pass/tinyset7.mod
  5cacbc141f72c044eea9d232f86e400c  gcc/testsuite/gm2/pim/pass/tinystate.mod
! b135fb49bfd0cc44c4444f6f7c903ecd  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
*** 109823,109829 ****
  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
--- 122510,122516 ----
  d87152d739e2438b9ae53e42dc0abbd6  gcc/testsuite/gm2/pim/pass/tinyvar5.mod
  0b84cfce0a2e43992b71613749e52a4d  gcc/testsuite/gm2/pim/pass/tinyvarient.mod
  29afe8976c40602a83fcb12b023cac5a  gcc/testsuite/gm2/pim/pass/tinyvarient2.mod
! 1d4facadf557377328227fee3f4aeef9  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
*** 109836,109852 ****
  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
--- 122523,122539 ----
  76c21c8cea07a5a153b6684bf8484c3e  gcc/testsuite/gm2/pim/pass/tinywith5.mod
  f50e06ec9f678f9007b20fa5ec68a9df  gcc/testsuite/gm2/pim/pass/tinywith6.mod
  d16408cac5fecde82827df06e17255e0  gcc/testsuite/gm2/pim/pass/trunc.mod
! 61bad79a75ee025cdc72ee4e97af047a  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
! d7e9539b7c7db521b22acaafe8c2a613  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
! d8d56385bd9c7aec5ab995c138005906  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
*** 109860,109866 ****
  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
--- 122547,122553 ----
  3824e675327ed427d28e873ed0efdda4  gcc/testsuite/gm2/pim/pass/varient6.mod
  6710f36f07ea1a65aa8f9423649f1a8d  gcc/testsuite/gm2/pim/pass/varient7.mod
  622383e6e6007cea8b6bcf26b62650c4  gcc/testsuite/gm2/pim/pass/varient8.mod
! 046ba7f2625ecd0ed119909df959eaa4  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
*************** d43f17e8e1c17b4cb6dd87d87fcc45c0  gcc/te
*** 109869,109877 ****
  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
--- 122556,122564 ----
  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
! aa4267c24e61851c9ae81b7986beceba  gcc/testsuite/gm2/pim/run/fail/pim-run-fail.exp
  6174b2e1489669bd0373fae444f5162a  gcc/testsuite/gm2/pim/run/pass/Countdown.mod
! 130562142ae203c8914ae2a8105607d6  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
*** 109899,109905 ****
  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
--- 122586,122592 ----
  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
! 327392b16aa2480ef9814638adfc8c0f  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
*************** a354604ff0a57790519a73ae758a4def  gcc/te
*** 109951,109957 ****
  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
--- 122638,122644 ----
  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
! f7c84ab52e4b1167fcfbf1c7d988aa53  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
*************** ecc069a883b11e1e7f11a466e2dfb3c6  gcc/te
*** 109960,109971 ****
  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
--- 122647,122658 ----
  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
! 8185940a657a5f83bf3a50371176fa34  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
! 4a6acd60c595ed737c2338fd9a7fcf4d  gcc/testsuite/gm2/pim/run/pass/sys.def
  c505955d69348d8bea797b775d67141d  gcc/testsuite/gm2/pim/run/pass/sys.mod
! 1a8c1ef7ff084638e9f4fca6c8a24d4c  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
*************** fae349b27e5da7066f8332ae9b00ec1a  gcc/te
*** 109995,110001 ****
  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
--- 122682,122688 ----
  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
! c98594612f8927d8dd9b14fbfc5d8bc6  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
*** 110011,110036 ****
  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
--- 122698,122723 ----
  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
! a0ff0ed52a3071e6e5f3c07139b365ff  gcc/testsuite/gm2/pimcoroutines/pass/pimcoroutines-pass.exp
! 40f6f7881cbc45a76cee4a2855b54b0d  gcc/testsuite/gm2/pimcoroutines/run/pass/pimcoroutines-run-pass.exp
  c953eb0b38fdc8c2f9526508f1594b00  gcc/testsuite/gm2/pimcoroutines/run/pass/testtime.mod
! e6be75d76d0d4da5c5d556f42c3a0561  gcc/testsuite/gm2/pimlib/base/run/pass/FIO.mod
  0de2a4029cfe9e1ca579c68f9596e248  gcc/testsuite/gm2/pimlib/base/run/pass/StrLib.mod
! e81dda2b6efd454a6830f7c18fc29e8e  gcc/testsuite/gm2/pimlib/base/run/pass/pimlib-base-run-pass.exp
  0dcaef09d969b7670f7ae3450706ad2a  gcc/testsuite/gm2/pimlib/base/run/pass/testconvert.mod
! 8b68da3db3c70505e1f1a03127cc63e3  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
! 2865345efeac539fc9f252e27bc9b1ee  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
! ecd4ed2401da084393745460c39e28c6  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
! 9332bd897586fa1269bdfb1a18c05eb1  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
*************** d3c9e9c643b707e6298f82ba170ee883  gcc/te
*** 110040,110054 ****
  90894de07b46fc09b2259d3be72ef874  gcc/testsuite/gm2/pimlib/logitech/run/pass/teststrings.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
  76daa6e0a708d61cec05576090e6b8ac  gcc/testsuite/gm2/pimlib/run/pass/format2.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
  e1370374caa4a3a31fefd6609cc7df7f  gcc/testsuite/gm2/pimlib/run/pass/testdelete.mod
  248b32cb4654932e670ca1f4528b0e6d  gcc/testsuite/gm2/pimlib/run/pass/testfiobinary.mod
  e5d5befc7aececd211929f46bd11fdda  gcc/testsuite/gm2/pimlib/run/pass/testgetopt.mod
--- 122727,122742 ----
  90894de07b46fc09b2259d3be72ef874  gcc/testsuite/gm2/pimlib/logitech/run/pass/teststrings.mod
  00248d5f46033daa8b9856ff2869e3e5  gcc/testsuite/gm2/pimlib/logitech/run/pass/timedate.mod
  cb7f18d9d8e9955ad964a25e931aacba  gcc/testsuite/gm2/pimlib/logitech/run/pass/writeoct.mod
! bdbdb3b2bad3cefa08f38ec19f3ee1ee  gcc/testsuite/gm2/pimlib/pass/pimlib-pass.exp
  b434571f14dc637407f321e185093bce  gcc/testsuite/gm2/pimlib/run/pass/format.mod
  76daa6e0a708d61cec05576090e6b8ac  gcc/testsuite/gm2/pimlib/run/pass/format2.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
! 9332bd897586fa1269bdfb1a18c05eb1  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
+ 0df86f87c43328c4bf5d097adbd8d3ca  gcc/testsuite/gm2/pimlib/run/pass/testclose.mod
  e1370374caa4a3a31fefd6609cc7df7f  gcc/testsuite/gm2/pimlib/run/pass/testdelete.mod
  248b32cb4654932e670ca1f4528b0e6d  gcc/testsuite/gm2/pimlib/run/pass/testfiobinary.mod
  e5d5befc7aececd211929f46bd11fdda  gcc/testsuite/gm2/pimlib/run/pass/testgetopt.mod
*************** e5d5befc7aececd211929f46bd11fdda  gcc/te
*** 110058,110069 ****
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  94dfcc8f117db06f4006eb96be4e84f8  gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod
  1aa30b418b9ca42daba58742ea25f51f  gcc/testsuite/gm2/pimlib/run/pass/testwritechar.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
--- 122746,122764 ----
  15b6dac89ee25f9c41909c8cab7033a9  gcc/testsuite/gm2/pimlib/run/pass/testreal4.mod
  94dfcc8f117db06f4006eb96be4e84f8  gcc/testsuite/gm2/pimlib/run/pass/testwrite.mod
  1aa30b418b9ca42daba58742ea25f51f  gcc/testsuite/gm2/pimlib/run/pass/testwritechar.mod
+ 20fbf2aa758ea7dcbf39c0bf6fa647e2  gcc/testsuite/gm2/pimlib/wideset/run/pass/bitset.mod
+ df8a86ca3739571a64ea25c02b7760ef  gcc/testsuite/gm2/pimlib/wideset/run/pass/bitset2.mod
+ 7e4d9ffe9602639cb5228c229a944974  gcc/testsuite/gm2/pimlib/wideset/run/pass/colorset.mod
+ f04d8cff59769f6ce7fa4937576d2529  gcc/testsuite/gm2/pimlib/wideset/run/pass/colorset2.mod
+ 84f2c480ee9a2365ae65ae854e700aff  gcc/testsuite/gm2/pimlib/wideset/run/pass/colorset3.mod
+ f8a265d8d064329a48d8fb8a627463fe  gcc/testsuite/gm2/pimlib/wideset/run/pass/highbit.mod
+ 0e0dfb52c307c38cab7fcc3a2a14fa5a  gcc/testsuite/gm2/pimlib/wideset/run/pass/highbit2.mod
  d42665273dfdf6111268f44c425bef5a  gcc/testsuite/gm2/projects/README
  9a671ebc8f4bdad366a08a252439855c  gcc/testsuite/gm2/projects/iso/run/pass/halma/halma.mod
! 176b0213f3fb59f78ddbe3f7f359f9b0  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
! 176b0213f3fb59f78ddbe3f7f359f9b0  gcc/testsuite/gm2/projects/iso/run/pass/hello/projects-iso-run-pass-hello.exp
! 09c8c7a21307fac3dd27479183404da1  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
*** 110071,110103 ****
  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
--- 122766,122798 ----
  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
! eff5d89ea9468e5c1925b1a88026ce04  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
! ce4944825cc4305bba56c97488b56982  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
! 1fdba2fbdc5273f8b3dc8c6b600940ae  gcc/testsuite/gm2/projects/pim/run/pass/pegfive/projects-pim-run-pass-pegfive.exp
! efd9b571c77daa00f19fc8e39a28d998  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.def
  f707e419c0eb663f20c80d0045e4869f  gcc/testsuite/gm2/projects/pim/run/pass/random/AdvMap.mod
! 08632a6ff89986724c53db822b1ed1b4  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.def
  383d833f6efdf2909d176baf61335b2a  gcc/testsuite/gm2/projects/pim/run/pass/random/BoxMap.mod
! d7d068d0ee7d997548bb7ef5fd23c564  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.def
  4adb8779ff4e9c2c34ba6b1fa12effa7  gcc/testsuite/gm2/projects/pim/run/pass/random/Chance.mod
! f6abc876c6e5358a9ae6287b8265ba9c  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.def
  ab72bd0daafa0e8b0900a7f43ccd2f01  gcc/testsuite/gm2/projects/pim/run/pass/random/Geometry.mod
! afd65311a45a57706a877b4895e565f2  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
! 68240565fbf1a0fe588ae7b8096ba0f4  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.def
  b2b160dcd71c2f413a7eed59b599fa32  gcc/testsuite/gm2/projects/pim/run/pass/random/MapOptions.mod
! 89e71dbe6ee5c7ea950923573421b898  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.def
  103afaefb845239205ee2541954f0925  gcc/testsuite/gm2/projects/pim/run/pass/random/Options.mod
! 48595de1afccb4016f4d6ab2c056ddd4  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.def
  819d3e9d2b079f4b97e31e6214e41c09  gcc/testsuite/gm2/projects/pim/run/pass/random/RoomMap.mod
! e046740483a7d98614c80f60296a79cc  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.def
  5c8ec95ce0f78e147b663701cb731629  gcc/testsuite/gm2/projects/pim/run/pass/random/StoreCoords.mod
! 1b23dc11af99a4ad5d554486c7520939  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.def
  308ee15c56c2918de6a28404214c0acb  gcc/testsuite/gm2/projects/pim/run/pass/random/WriteMap.mod
! 0bbfc204120e2e1cd60692bf71659782  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
*** 110109,110115 ****
  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
--- 122804,122810 ----
  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
! 349374cfa766efd8efebae18fd66f294  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
*** 110132,110152 ****
  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
--- 122827,122847 ----
  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
! 15e1d8b14c3ea2b6dbd0d1e822aefeac  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
! 233938b598cf3a277239111240df0914  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
! 11aad3e40be05da1259d1c616341c387  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
! bdbdb3b2bad3cefa08f38ec19f3ee1ee  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
*** 110175,110187 ****
  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
--- 122870,122882 ----
  ad124094663a263f87604c66c8bed248  gcc/testsuite/gm2/run/pass/testsize2.mod
  5eac39bf3a7f2b4fc816d39f813db8a1  gcc/testsuite/gm2/run/pass/testsize3.mod
  a8207e849e4daaf6ca35472bca71613d  gcc/testsuite/gm2/run/pass/wr.mod
! da147a64dfcd7379e1fcbf9822de948d  gcc/testsuite/gm2/scripts/addit
! f7d5745cf212b4c7fa7d78e615e8eda9  gcc/testsuite/gm2/scripts/comp
  bc4fb8293716280f63a60e50901eb7d2  gcc/testsuite/gm2/scripts/compile
! 2a787b589f261df3caaa7df3111c2b5b  gcc/testsuite/gm2/scripts/compileiso
! 6f2d880fb0dadbb2bdbf0ee9560f0f1b  gcc/testsuite/gm2/scripts/link
! db2426f1345261e0722184b1d171a6e2  gcc/testsuite/gm2/scripts/regression
! 117dfc8f3c5c6ed80c48bda0f79e7c0d  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
*************** aa3c4815956d171d0e938e2782804b9e  gcc/te
*** 110189,110195 ****
  d8c359eaf5bfe17b72acf803597e7ca2  gcc/testsuite/gm2/sets/run/pass/multisetrotate.mod
  0c802e181b74348e0d7f9fd0773e4780  gcc/testsuite/gm2/sets/run/pass/multisetrotate2.mod
  ab7e1398170dff65bd057db02e77b1c6  gcc/testsuite/gm2/sets/run/pass/multisetrotate3.mod
! b53fc3968aac8216081bd1c5453da5a4  gcc/testsuite/gm2/sets/run/pass/multisetrotate4.mod
  4995eaf88b79a9912ec4eba14e86819b  gcc/testsuite/gm2/sets/run/pass/multisetshift.mod
  a155fada107d87016bad68f7e11008a2  gcc/testsuite/gm2/sets/run/pass/multisetshift2.mod
  7ada01035fd7c7f1f579e0fa7723fc92  gcc/testsuite/gm2/sets/run/pass/multisimple.mod
--- 122884,122891 ----
  d8c359eaf5bfe17b72acf803597e7ca2  gcc/testsuite/gm2/sets/run/pass/multisetrotate.mod
  0c802e181b74348e0d7f9fd0773e4780  gcc/testsuite/gm2/sets/run/pass/multisetrotate2.mod
  ab7e1398170dff65bd057db02e77b1c6  gcc/testsuite/gm2/sets/run/pass/multisetrotate3.mod
! 101d9798a5d3e6febee7cc9824bcc7c4  gcc/testsuite/gm2/sets/run/pass/multisetrotate4.mod
! 9a415f2542875d5ad359273b4020dcb1  gcc/testsuite/gm2/sets/run/pass/multisetrotate5.mod
  4995eaf88b79a9912ec4eba14e86819b  gcc/testsuite/gm2/sets/run/pass/multisetshift.mod
  a155fada107d87016bad68f7e11008a2  gcc/testsuite/gm2/sets/run/pass/multisetshift2.mod
  7ada01035fd7c7f1f579e0fa7723fc92  gcc/testsuite/gm2/sets/run/pass/multisimple.mod
*************** e3b8b2f95a8138a3f33aec58db37144c  gcc/te
*** 110203,110213 ****
  716e8f0148242eec6b616365ef63f876  gcc/testsuite/gm2/sets/run/pass/setarith2.mod
  2e8b6ab5db57096743916a62daa1e64c  gcc/testsuite/gm2/sets/run/pass/setarith3.mod
  f6de503823ee276a69e70bc77f56435d  gcc/testsuite/gm2/sets/run/pass/setarith4.mod
  59a9282687d742828693ca1ab889fda1  gcc/testsuite/gm2/sets/run/pass/setrotate.mod
  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
--- 122899,122911 ----
  716e8f0148242eec6b616365ef63f876  gcc/testsuite/gm2/sets/run/pass/setarith2.mod
  2e8b6ab5db57096743916a62daa1e64c  gcc/testsuite/gm2/sets/run/pass/setarith3.mod
  f6de503823ee276a69e70bc77f56435d  gcc/testsuite/gm2/sets/run/pass/setarith4.mod
+ 246e6f8d099bde6e926543b7940304fb  gcc/testsuite/gm2/sets/run/pass/setcard.mod
+ bfe5c298caf628e7a78fae5472f62888  gcc/testsuite/gm2/sets/run/pass/setincl.mod
  59a9282687d742828693ca1ab889fda1  gcc/testsuite/gm2/sets/run/pass/setrotate.mod
  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
! 57a5b7ff51a140960868290a3370108c  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
*** 110217,110224 ****
  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
--- 122915,122922 ----
  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
! 450fa2bba4638b29b938eb20d30fb855  gcc/testsuite/gm2/sets/run/pass/simplepacked.mod
! 069b079ce9cac36c3f8e32627b339633  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
*** 110229,110246 ****
  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
--- 122927,122944 ----
  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
! ca158bc02e818a689630456929c3044b  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
! 22b7aba5c0e4d5e5d72837e5ea2a4ed0  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
! 6af2708e271ced8fd35335c24ceeccdb  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
*** 110248,110271 ****
  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
--- 122946,122969 ----
  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
! 710d5a73040449e948f041db1bb08152  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
! b7e9d3aaf7937e79b3f2062835befd2a  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.def
  67c1a6dab4f5a933639218de8073e9aa  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin4.mod
! 2f3c7c408b27de33ba6bda292c214463  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.def
  a989edc6b74e670ec7c89f213419e335  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin5.mod
! 739685e24367dd434b873299df661601  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.def
  afd5f57bb803a371d6b8000f8692d515  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin6.mod
! 214da5acfe6b95c44a1540ab6233e368  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.def
  72762bbca9ba29b7baab4256d2d8306e  gcc/testsuite/gm2/switches/check-all/plugin/pim2/fail/plugin7.mod
! 2376e4669f3d502e9924644fef95dffd  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
! 82b58e5d72f3e77c0597033bd253b637  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
*** 110277,110344 ****
  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
  a6e8cb2a9ab54e9865ad3892aa0b5941  gcc/testsuite/gm2/switches/pedantic-params/fail/arrayofchar.def
  6c859878e0873eb436e217b7385b4881  gcc/testsuite/gm2/switches/pedantic-params/fail/arrayofchar.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
--- 122975,123046 ----
  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
! 34db544bfaa70adec312e077ca295acc  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
! 4181ecc15be46190d245cdc3f044d52c  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
! f6ec798105d9bb2ed1c6e8fa0c7c1503  gcc/testsuite/gm2/switches/check-all/run/pass/switches-check-all-run-pass.exp
! 490f9846fabcdaa3d8a09add96e497e7  gcc/testsuite/gm2/switches/extended-opaque/fail/a.def
  b34821311a68dbc583de9ce160ff5d24  gcc/testsuite/gm2/switches/extended-opaque/fail/a.mod
! de3d073fe6281102ec9dc16601b392c9  gcc/testsuite/gm2/switches/extended-opaque/fail/switches-extended-opaque-fail.exp
! 490f9846fabcdaa3d8a09add96e497e7  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
! 374da96d1ddca279b5b748d7afb775b7  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
! 4c0332e9094be6cab3aa34fcf58938ff  gcc/testsuite/gm2/switches/iso/run/pass/switches-iso-run-pass.exp
! 48000a26feae93c44b3a443de8c99686  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
! d1f405aef021530dc644099d25fb1826  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
! 600a08d5f885f1ac73bfe62c71ef2e23  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
! a42d227b4c9b2ef5eeef51e5b3a3c223  gcc/testsuite/gm2/switches/optimization/run/pass/switches-optimization-run-pass.exp
! d65dda79e94096ce4ca58abf36872c80  gcc/testsuite/gm2/switches/pathnameroot/pass/switches-pathnameroot-pass.exp
! 94499bba5bea19225a6636d8b2bf8fad  gcc/testsuite/gm2/switches/pathnameroot/pass/test.mod
! 35b97574c0277e95c3e75ad775bae694  gcc/testsuite/gm2/switches/pathnameroot/pass/testlib/m2/foo.def
! 168846a05b356ca89dbdb44fa89f8b31  gcc/testsuite/gm2/switches/pathnameroot/pass/testlib/m2/foo.mod
! 6b04174b71c8570d593859bcf9aba8a3  gcc/testsuite/gm2/switches/pedantic-params/fail/a.def
  d083f2149e966c7f4a3cf7a592213e6e  gcc/testsuite/gm2/switches/pedantic-params/fail/a.mod
  a6e8cb2a9ab54e9865ad3892aa0b5941  gcc/testsuite/gm2/switches/pedantic-params/fail/arrayofchar.def
  6c859878e0873eb436e217b7385b4881  gcc/testsuite/gm2/switches/pedantic-params/fail/arrayofchar.mod
! b4493b5bed5af90c6fef2a588f2f4134  gcc/testsuite/gm2/switches/pedantic-params/fail/switches-pedantic-params-fail.exp
! e0e70246f59a0c1671659e0c377959cd  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.def
  fd422a739cead1ddd9341f7ffef6c32a  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod
! f25ef30ea2ef6eb3e27b530deb752e1e  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.def
  0bcc2d7b0cd1e82595b33fe9b803d2e1  gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod
! e41d097676b6cd438a686e1eea320fd8  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
! cce8bb4f95e94044381828f9e3aafdc2  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
! 392138c76f7126cf35c011eeb72a282f  gcc/testsuite/gm2/switches/pic/run/pass/switches-pic-run-pass.exp
  72595eba68a1caa34641927dc7b21d9b  gcc/testsuite/gm2/switches/pim2/run/pass/modulus.mod
! 0141a318490b04c6e9b4cabe31130f42  gcc/testsuite/gm2/switches/pim2/run/pass/switches-pim2-run-pass.exp
  113d1259345fa7dedde31514c400a268  gcc/testsuite/gm2/switches/pim3/run/pass/modulus.mod
! 3e94a0a548f5bb6911b09335b22d70fe  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
! eea945a1413e6654126d43feae4b6f0a  gcc/testsuite/gm2/switches/pim4/run/pass/switches-pim4-run-pass.exp
  28c8626586a9f9b4615e6438a5bec649  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/cascadedif.mod
! 011a66ff55c3ac295f248298e567a94b  gcc/testsuite/gm2/switches/uninit-variable-checking/cascade/fail/switches-uninit-variable-checking-cascade-fail.exp
! aec2beaaa66138046449189f4aeb57f6  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
*** 110354,110360 ****
  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
--- 123056,123062 ----
  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
! c618fe9a1d259739e8d84e70fa6b1103  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
*** 110364,110370 ****
  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
--- 123066,123072 ----
  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
! c9f6b8187e5b4113d5b3c2b245c02332  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
*** 110378,110384 ****
  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
--- 123080,123086 ----
  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
! 13e2c23b11f070a9b0f9529231a9e7c7  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
*** 110389,110395 ****
  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
--- 123091,123097 ----
  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
! 2556ffa56ed186438464a8ed54658be9  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
*** 110400,110407 ****
  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
--- 123102,123109 ----
  1c8e292e685936cbc9fdbfb7128f734a  gcc/testsuite/gm2/types/prog35.mod
  8d689912b47842ee7f86fc04a2657097  gcc/testsuite/gm2/types/real.mod
  686ca26679509e30a5f211809900ac49  gcc/testsuite/gm2/types/run/pass/d.c
! dd1b7a78388ca4cde7b4b7ae53a09122  gcc/testsuite/gm2/types/run/pass/d.def
! 0032449908a3d005ed87425eafc8bc24  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
*** 110411,110425 ****
  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
--- 123113,123129 ----
  767f35e2fe10661062bc2013ca978a22  gcc/testsuite/gm2/types/type4.mod
  9613c77c4b0cf18f1619ad8350c9c3b7  gcc/testsuite/gm2/types/varient.mod
  222c0b6352ac7db11b7ea622a1371af8  gcc/testsuite/gm2/types/word.mod
! e1d4cffc8781652bfa6df05118050313  gcc/testsuite/gm2/ulmlib/pass/ulmlib-pass.exp
! ea6870537293328dae8ceaaf5d2f8e5f  gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
! e1d4cffc8781652bfa6df05118050313  gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
  8abe9ef3450094aa1c3e3d69af88cd3c  gcc/testsuite/gm2/warnings/returntype/fail/badreturn.mod
! 642ed58e351103082d925355f63ed8e6  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
! 0d682f1be1d2fc486ab6aecd3b7492aa  gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
! b45efaef78d42754f240530322db9add  gcc/testsuite/gm2/warnings/style/fail/badvarname.mod
! b0b2a7c55a31f5086eaee9eeac472dd5  gcc/testsuite/gm2/warnings/style/fail/warnings-style-fail.exp
  21ceb11eb92493844b53651eace4980f  gcc/testsuite/gm2/warnings/todo/nestedproc6.mod
  7054cf0beb9a62521e9760c31dd7d529  gcc/testsuite/gm2/warnings/todo/options
  34e6e04b35f94b9498a0c1809c555ea5  gcc/testsuite/gm2/warnings/todo/testfor.mod
*************** f8aa1b9b6d8605d6d8f8640d0af378d3  gcc/te
*** 110441,110446 ****
--- 123145,123151 ----
  1ab0ba269ad1e4ee5cc0b2651374a2a5  gcc/testsuite/gnat.dg/access1.adb
  6d63d89266459501cbab795f893986a6  gcc/testsuite/gnat.dg/access10.adb
  1fd18942315c2275f2f19f6664a7deea  gcc/testsuite/gnat.dg/access11.adb
+ 9e00b6c352fa4cf22e7a02928ac146cf  gcc/testsuite/gnat.dg/access12.adb
  943026829386ee6566add3daafeab5a1  gcc/testsuite/gnat.dg/access2.adb
  2fa4700bffd8945e6a0f90d0475d0d69  gcc/testsuite/gnat.dg/access3.adb
  85a2981071298449aa62b8862bba17d1  gcc/testsuite/gnat.dg/access3.ads
*************** b3a316ada43c24ff36cbe71860fae91c  gcc/te
*** 110538,110543 ****
--- 123243,123261 ----
  26bbb4b239255e447bbe6c32ccb6f5f3  gcc/testsuite/gnat.dg/aggr30.adb
  3c5d0783cbdc3181db59d9f27a9e1a2d  gcc/testsuite/gnat.dg/aggr30.ads
  4c012319986c2dce532428fea4934ee2  gcc/testsuite/gnat.dg/aggr31.adb
+ f202185bfd0a21aad1b2b2a3c53f0530  gcc/testsuite/gnat.dg/aggr32.adb
+ c08e4f7d35898f0bc9c4996849adc409  gcc/testsuite/gnat.dg/aggr32_pkg-child.ads
+ 1057b1221f0bd9331d17412ee8c29e1d  gcc/testsuite/gnat.dg/aggr32_pkg.ads
+ 2e81bb438686c4b5e8022356634d0f32  gcc/testsuite/gnat.dg/aggr33.adb
+ fbdb338ed0af1dd948f3a9a5e3ee1805  gcc/testsuite/gnat.dg/aggr34.adb
+ 0849064da3e768041e2dec19d47f5461  gcc/testsuite/gnat.dg/aggr34_pkg1.adb
+ add67b8a04a202421f2564cbcbcdbc88  gcc/testsuite/gnat.dg/aggr34_pkg1.ads
+ 59299ad44fc7c1448bdc355f64dda579  gcc/testsuite/gnat.dg/aggr34_pkg2.adb
+ 564b8aed71e56ea8798f32904183e4cf  gcc/testsuite/gnat.dg/aggr34_pkg2.ads
+ dc8fcab04675e97bd3b1a9cc9ea62b81  gcc/testsuite/gnat.dg/aggr34_pkg3.ads
+ de08963200919efd0d17eb3a00430d13  gcc/testsuite/gnat.dg/aggr35.adb
+ 437905f29fbe199a1751c27f0bd4d394  gcc/testsuite/gnat.dg/aggr35_pkg.adb
+ f43b0a38be6632f578965e09556359d0  gcc/testsuite/gnat.dg/aggr35_pkg.ads
  35168b6dce753ec723ff0dcf21d977d0  gcc/testsuite/gnat.dg/aggr4.adb
  a12ec40d7ebc1ab08b05b0d1f6a57bc4  gcc/testsuite/gnat.dg/aggr7.adb
  39fba9f7f4870b15e9c37bcf9a358858  gcc/testsuite/gnat.dg/aggr8.adb
*************** d7604b4d2f401c17008d23ef48c7da56  gcc/te
*** 110547,110552 ****
--- 123265,123271 ----
  df440a8d2b7c252235b3f3f62f354573  gcc/testsuite/gnat.dg/ai12_0086_example.adb
  35031b3b1cfbf9db80dbdb131ad67e3e  gcc/testsuite/gnat.dg/aliased1.adb
  350ca7c5974d0f4a72eaff0670854d4b  gcc/testsuite/gnat.dg/aliased2.adb
+ 91df6592265b0ecc3368f0d1b3cbf8d2  gcc/testsuite/gnat.dg/aliased3.adb
  fc20c665ce493e3af920ca3b8b338e2e  gcc/testsuite/gnat.dg/aliased_prefix_accessibility.adb
  3a0cc839327fdbbc751e133fa95e98b4  gcc/testsuite/gnat.dg/aliasing1.adb
  a4902656656cf1933e27aa840c492aae  gcc/testsuite/gnat.dg/aliasing1.ads
*************** d845359337435f578035928aae3a54a9  gcc/te
*** 110576,110581 ****
--- 123295,123302 ----
  710f0098af79353fbabe70716868b46c  gcc/testsuite/gnat.dg/allocator.adb
  9ce9e39be8e332ea909ef77b7a0955c0  gcc/testsuite/gnat.dg/allocator2.adb
  337bdf33957aa3def74f1c62d778d5de  gcc/testsuite/gnat.dg/allocator2.ads
+ cb13bebe3bf57c562e8c516aa539cae9  gcc/testsuite/gnat.dg/allocator3.adb
+ e139f6c5620dbb672262cf6b6382edc7  gcc/testsuite/gnat.dg/allocator4.adb
  bbc4e723041a85252bdd22da4896f11f  gcc/testsuite/gnat.dg/allocator_maxalign1.adb
  e092999a834f75b4b2227b818a8fa1bd  gcc/testsuite/gnat.dg/allocator_maxalign2.adb
  f9d8770ca5c9726aa3c53cd819807ead  gcc/testsuite/gnat.dg/allocator_maxalign2.ads
*************** d2cec4b227cf238055a701ff7f013b44  gcc/te
*** 110679,110684 ****
--- 123400,123406 ----
  9fde978feba73542c3b3f2f59d9f5f9c  gcc/testsuite/gnat.dg/assign_from_packed_pixels.ads
  4be5e03b411318fc574c05cf953667bd  gcc/testsuite/gnat.dg/asynch.adb
  926c8b6a28f7843bfa4b034ba910f7e1  gcc/testsuite/gnat.dg/asynch.ads
+ 0528bd9649513a75604a0cfbb81a2418  gcc/testsuite/gnat.dg/asynch2.adb
  ab8d6519d24b9674ec96064e6d94523a  gcc/testsuite/gnat.dg/atomic1.adb
  027b7b9cd1047fa0b6622db64743cd51  gcc/testsuite/gnat.dg/atomic10.adb
  fd4af63fce2ba980aed74d494acc32e2  gcc/testsuite/gnat.dg/atomic11.adb
*************** a3aafda888b314cbe8fd57998d9b3641  gcc/te
*** 110788,110799 ****
--- 123510,123526 ----
  a6e35afa831e08d00bea9f8dd9d1c5cc  gcc/testsuite/gnat.dg/class_wide4_pkg.ads
  6f0b71d19accf04ffe787577bc890101  gcc/testsuite/gnat.dg/class_wide4_pkg2.ads
  2041db616468910158f99f72a9467b90  gcc/testsuite/gnat.dg/class_wide5.adb
+ 76d437e51eee910f469c26e9bde381f4  gcc/testsuite/gnat.dg/class_wide6.adb
+ ec8339b01391b60c0097685c5640b366  gcc/testsuite/gnat.dg/class_wide6.ads
+ 69008c4722213db2b99481e08565903b  gcc/testsuite/gnat.dg/class_wide6_pkg.ads
  ac267a2812409b3404f6c1aeba441861  gcc/testsuite/gnat.dg/compile_time_error1.adb
  57fc90e8cb732f14dd016b721d2f642f  gcc/testsuite/gnat.dg/compile_time_error1.ads
  700f4e47ddc89d253b13b2580930d21d  gcc/testsuite/gnat.dg/compile_time_error1_pkg.ads
  74ca656bc33692c00600828733edeca3  gcc/testsuite/gnat.dg/complex1.adb
  eabd848befe131fde7677a9da2ddf20b  gcc/testsuite/gnat.dg/complex1_pkg.ads
  0b8796322445f41bce527a08ee2783de  gcc/testsuite/gnat.dg/component_size.adb
+ 13eb5d243ed2779f56be7f0f26132a53  gcc/testsuite/gnat.dg/component_value1.adb
+ 7ad5ed9511b0c4ff7e5173963b1e276c  gcc/testsuite/gnat.dg/component_value2.adb
  65f042f7c7f3ba5cd72d9c078386a46e  gcc/testsuite/gnat.dg/compose.adb
  ac069379af0132c56a9f326aa688d9f0  gcc/testsuite/gnat.dg/concat1.adb
  d0d9950b243700f01e3cfad18d2b6139  gcc/testsuite/gnat.dg/concat1_pkg.adb
*************** a74903b20d1e5ae5e1f78ffa1ae48709  gcc/te
*** 110840,110845 ****
--- 123567,123574 ----
  50888c7d99e2853decd40633487df615  gcc/testsuite/gnat.dg/controlled7.adb
  9d7358f62eca1d9c1121bd8dd35c321f  gcc/testsuite/gnat.dg/controlled7.ads
  842882f2462282baa39af36da13b3c66  gcc/testsuite/gnat.dg/controlled8.adb
+ c4f92448e8d8937478f45d759675b3e0  gcc/testsuite/gnat.dg/controlled9.adb
+ 5dec8d4396a6c2de6a11ceaf7fade239  gcc/testsuite/gnat.dg/controlled9_pkg.ads
  2caa8502521e04928a03cde494abb0d9  gcc/testsuite/gnat.dg/controlled_record.adb
  1cd9edd01689b9de7916433d8b3c9211  gcc/testsuite/gnat.dg/controlled_record.ads
  37378155e6b901ea7e1e6d4b579bdd19  gcc/testsuite/gnat.dg/conv_bug.adb
*************** dc7b3ebaa7caa13b60d6eb8a552ad48d  gcc/te
*** 110922,110928 ****
  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
--- 123651,123657 ----
  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
! c0904606968c7e67f53ee9eff6da6806  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
*** 111197,111204 ****
  8c236e214d430f44a72a4fb521b9961f  gcc/testsuite/gnat.dg/frunaligned1.ads
  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
--- 123926,123933 ----
  8c236e214d430f44a72a4fb521b9961f  gcc/testsuite/gnat.dg/frunaligned1.ads
  d0689d7d2df99b8a9bdfa7461addbca6  gcc/testsuite/gnat.dg/g_tables.adb
  42a1a84a561d8513a3ddb03c1873df86  gcc/testsuite/gnat.dg/g_tables.ads
! af4e98fe9c6f2a8676391953c0620804  gcc/testsuite/gnat.dg/gcov/check.adb
! fdda33896f4bfadf0bf85c8e121c91be  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
*** 111232,111239 ****
--- 123961,123984 ----
  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
+ 723ce0ce8ad5f32a4545060ea1497dcd  gcc/testsuite/gnat.dg/generic_inst15.adb
+ 8cdbeaa75ec1a34f9425e5de9b2c48ce  gcc/testsuite/gnat.dg/generic_inst15_pkg-g.ads
+ 8a0469f67965b0510cf7ae79d1408f8b  gcc/testsuite/gnat.dg/generic_inst15_pkg.ads
+ 805df358d6aa478a18c1f6bc0729ce95  gcc/testsuite/gnat.dg/generic_inst16.adb
+ 7079f833540535d9e5214ea3439184fc  gcc/testsuite/gnat.dg/generic_inst16_pkg-child-grandchild.ads
+ cbda4ce37f542285b521cda175f88ae8  gcc/testsuite/gnat.dg/generic_inst16_pkg-child.ads
+ dd47c03d89ee0f8e064407c83ce2bd8a  gcc/testsuite/gnat.dg/generic_inst16_pkg.ads
+ f2632b1a519e9ef9974bffe9e87a626f  gcc/testsuite/gnat.dg/generic_inst16_proc.adb
+ 8cff9a48dce3a564b54a3bb3f90eb85d  gcc/testsuite/gnat.dg/generic_inst16_proc.ads
+ a6acccbfcec2dc1f0f381b66c6d99f52  gcc/testsuite/gnat.dg/generic_inst17.adb
+ b9526cc8e5f05439111aa969555337fe  gcc/testsuite/gnat.dg/generic_inst18.adb
+ b5916e544f6608c5d56d2cd4f13b5ffc  gcc/testsuite/gnat.dg/generic_inst19.adb
  bfa8ba450e641250f8eccf95997dd260  gcc/testsuite/gnat.dg/generic_inst2.adb
  063cf5c93b1a85bf617a62be0da63bdb  gcc/testsuite/gnat.dg/generic_inst2.ads
+ 9754b7078322105e191275ecef261619  gcc/testsuite/gnat.dg/generic_inst20-sub.adb
+ 0681c30c9efac88d67f6a19fb0a024db  gcc/testsuite/gnat.dg/generic_inst20.adb
+ c840150e814260285b976366030a3845  gcc/testsuite/gnat.dg/generic_inst20.ads
+ 880a867ce16ece050ac942a64c433ca4  gcc/testsuite/gnat.dg/generic_inst21.adb
  2faefd507420ceafdccad8d472e66202  gcc/testsuite/gnat.dg/generic_inst2_c.ads
  1997a63f7761d0c3157019f91d059346  gcc/testsuite/gnat.dg/generic_inst3.adb
  ec082cac4cc6410759efb287bf918b11  gcc/testsuite/gnat.dg/generic_inst3_kafka_lib-topic.ads
*************** b2972400f8198e97c2fd7c2f94d0bed1  gcc/te
*** 111308,111313 ****
--- 124053,124061 ----
  a13dcdcaaf629d0a05ce4f001f14eab5  gcc/testsuite/gnat.dg/ifaces.adb
  e1afa83d3d4d79fd8be206b806058e1f  gcc/testsuite/gnat.dg/ifaces.ads
  d01b68d39a7e69d7d1a7649de0cf23be  gcc/testsuite/gnat.dg/image1.adb
+ e0d13570f862b017fdb00db5d9f41a7d  gcc/testsuite/gnat.dg/implicit_deref1.adb
+ 49e7fb50319758bcb479a922576d69be  gcc/testsuite/gnat.dg/implicit_deref2.adb
+ 4cede41d4ff65b71f2516bff6b1d067b  gcc/testsuite/gnat.dg/implicit_deref3.adb
  88448f9df86bdfbab72ab7e3969091fc  gcc/testsuite/gnat.dg/implicit_param.adb
  5b5706a749f9e2175696bbd58caaf846  gcc/testsuite/gnat.dg/implicit_param_pkg.ads
  35e00b5917b2a6b72371101941e20683  gcc/testsuite/gnat.dg/import1.adb
*************** ec09b316f95699b7f12d9bfa709c9e2a  gcc/te
*** 111457,111462 ****
--- 124205,124211 ----
  b4403186d926b98d81bf74273fbdd747  gcc/testsuite/gnat.dg/iter5.adb
  f755b068c4d637453db94629c3c405ed  gcc/testsuite/gnat.dg/iter5_pkg.ads
  7c24008f7846098944f65c4134ed3975  gcc/testsuite/gnat.dg/iter6.adb
+ f81dad5b681759920793751c1a1799f2  gcc/testsuite/gnat.dg/iter7.adb
  52e284e2eb886ee34b0b3277d11c4499  gcc/testsuite/gnat.dg/itype.adb
  a13cf13b784e8e31eb211878f32d8ac3  gcc/testsuite/gnat.dg/itype.ads
  6e6397753611cdca3dfc55e25547deb9  gcc/testsuite/gnat.dg/itypes.adb
*************** fb6550ce07cad44a375af2fd3012b578  gcc/te
*** 111513,111518 ****
--- 124262,124271 ----
  efe1ef2c8689ede7a2b3cbc6d7c20ca3  gcc/testsuite/gnat.dg/limited_with7.adb
  cee08c997b095f2bcb58affa1cb7ff08  gcc/testsuite/gnat.dg/limited_with7.ads
  46cb1b8cb1fe997cfdcca60b40e3af0f  gcc/testsuite/gnat.dg/limited_with7_pkg.ads
+ 5573a481ed7753a2f401ae4351e53382  gcc/testsuite/gnat.dg/limited_with8.adb
+ e52e76d9d4bbb46855e6284bf43390a7  gcc/testsuite/gnat.dg/limited_with8_pkg1.ads
+ 7a7cd4138d848b4a7cc74f8932107232  gcc/testsuite/gnat.dg/limited_with8_pkg2.adb
+ e6e20fc582f163fbc92f724038c9ffbd  gcc/testsuite/gnat.dg/limited_with8_pkg2.ads
  bf791540ed27e282888b92614b5bb915  gcc/testsuite/gnat.dg/linkedlist.adb
  40dfe1efcee13ecd8e542eb0c4dbb341  gcc/testsuite/gnat.dg/loop_address.adb
  f0b84a52fd304069c6d2f79acc1c5551  gcc/testsuite/gnat.dg/loop_address2.adb
*************** c0f02b651aa311a5b5cddd400f9701ed  gcc/te
*** 111640,111645 ****
--- 124393,124400 ----
  fb19807d91f445350623ae19eb1b5aee  gcc/testsuite/gnat.dg/lto28_pkg3.ads
  d38a63c50972ebf0d60bc6959e5d130f  gcc/testsuite/gnat.dg/lto29.adb
  92924880135ec84fd65e4fecf6055807  gcc/testsuite/gnat.dg/lto29_pkg.ads
+ 0bb4f053befcf73a4d457f035ee97b6a  gcc/testsuite/gnat.dg/lto30.adb
+ 5889bf52461acb4efaa37c6ba94a8f31  gcc/testsuite/gnat.dg/lto30.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
*** 111661,111666 ****
--- 124416,124423 ----
  2ae11fd4a1acf9b36a65534e58e92abb  gcc/testsuite/gnat.dg/machine_attr1.ads
  198e584cc0cef45ce405667052c23e05  gcc/testsuite/gnat.dg/machine_attr2.adb
  a43575908eb1e17e2afdeb4ea7308f2a  gcc/testsuite/gnat.dg/machine_attr2.ads
+ bccaa87c03ccc69e4140839ab7027547  gcc/testsuite/gnat.dg/machine_attr3.adb
+ ff25cfad1be580a61ffb931854f7e942  gcc/testsuite/gnat.dg/machine_attr3.ads
  cc1ed6ae65ad5b0d5af3f2f3767e091e  gcc/testsuite/gnat.dg/machine_code1.adb
  d3f7e556abc113803210eb76117456b0  gcc/testsuite/gnat.dg/matrix1.adb
  ebbd44798662a03d43697c3bec8dc4b4  gcc/testsuite/gnat.dg/max_align.adb
*************** e2c8479333425ea75c63f23a2938caf3  gcc/te
*** 111740,111745 ****
--- 124497,124503 ----
  d50145f03dccc1452d670a7462c428c6  gcc/testsuite/gnat.dg/object_overflow3.adb
  a855945053dc41dfa1c42e3b145ac9af  gcc/testsuite/gnat.dg/object_overflow4.adb
  4c53d9e0e30637a7ed0c2d2612c24354  gcc/testsuite/gnat.dg/object_overflow5.adb
+ ee8407f66f469368f14f8872ed05d1b2  gcc/testsuite/gnat.dg/object_overflow6.adb
  53698f2a4889ebd4c6c88ba6283a2214  gcc/testsuite/gnat.dg/object_size1.adb
  e4e9b879fcb6c0fae2ce6dc54901dbba  gcc/testsuite/gnat.dg/oconst1.adb
  54f4ef39aa8725fc1134c89f1a561281  gcc/testsuite/gnat.dg/oconst1.ads
*************** f8a43d7dd54caabde100374f7144dfc3  gcc/te
*** 111775,111780 ****
--- 124533,124540 ----
  ab899fc6f72925f8084209d5187582d5  gcc/testsuite/gnat.dg/opt106_pkg1.ads
  acc696967fd0d2302cfab5304ee3a970  gcc/testsuite/gnat.dg/opt106_pkg2.adb
  e4a127b46129811de1774562e29fb8fc  gcc/testsuite/gnat.dg/opt106_pkg2.ads
+ 9d150b19ff3791d45b239fbe539ca3ec  gcc/testsuite/gnat.dg/opt107.adb
+ b639e95e2056957733aa779c0c757061  gcc/testsuite/gnat.dg/opt107_pkg.ads
  5d50fb38b1ab84c39760906cb103c522  gcc/testsuite/gnat.dg/opt10_pkg.ads
  603264d4afdd2fd2174ea9c4cf4653ed  gcc/testsuite/gnat.dg/opt11.adb
  53160585b3a5d820b653e1e0d5f14c75  gcc/testsuite/gnat.dg/opt11.ads
*************** ca98602bd726e6e8ddbebb3c4b65f0a8  gcc/te
*** 112117,112122 ****
--- 124877,124887 ----
  064d12236a5c1215b72e88bd09d6696a  gcc/testsuite/gnat.dg/prefix1.ads
  44b1484811be62cb2477a1085cf56d34  gcc/testsuite/gnat.dg/prefix2.adb
  32f82de6508bf8f6a0d20f850f638498  gcc/testsuite/gnat.dg/prefix2.ads
+ fbfc5611002ff9c704db3269f5fcabd2  gcc/testsuite/gnat.dg/prefix3.adb
+ add304a2cd2d59821dea899362093069  gcc/testsuite/gnat.dg/prefix3_pkg.adb
+ 1d9b1884739f5fc32ffdca914ea90992  gcc/testsuite/gnat.dg/prefix3_pkg.ads
+ 3372ba396a449f3b5e1394881b6677d1  gcc/testsuite/gnat.dg/prefix4.adb
+ 7d40b6e578a7602141138b7c83607865  gcc/testsuite/gnat.dg/prefix4_pkg.ads
  1cd7dd16873b27f1e5bc896924554185  gcc/testsuite/gnat.dg/private_overriding.adb
  67fc1f73b2e24628841b19a37424a4dd  gcc/testsuite/gnat.dg/profile_warning.adb
  3be6aedb24cbe63f63ad93e27d8946b1  gcc/testsuite/gnat.dg/profile_warning.ads
*************** a4f83930fb87bd91e5bb42db50c8d318  gcc/te
*** 112146,112156 ****
--- 124911,124924 ----
  c0f68295e348ad36a641d8edeff2cfc6  gcc/testsuite/gnat.dg/prot9_pkg1.ads
  4cd15245a3399652865b3c6a9daf87ad  gcc/testsuite/gnat.dg/prot9_pkg2.ads
  8b9d81034e4a3268cbc4aae764775fd9  gcc/testsuite/gnat.dg/prot_def.adb
+ 00f160c0176ca352cbe49cfb9735cb39  gcc/testsuite/gnat.dg/protected_deref1.adb
  ca3a0803b3696ed0b41f6d8cbb5b962b  gcc/testsuite/gnat.dg/protected_func.adb
  f010d95f371dbccc1be8c51d48eb4db5  gcc/testsuite/gnat.dg/protected_func.ads
  ce1ec39ed99de56ced45d8b9f86bc85a  gcc/testsuite/gnat.dg/protected_null.adb
  e6da11fd6483154a13820d7470de4efb  gcc/testsuite/gnat.dg/protected_self_ref1.adb
  bffe9a3ac9d57a27e4b093a45da1b8bf  gcc/testsuite/gnat.dg/protected_self_ref2.adb
+ 62202830fb6c22f702d33b1d441e5bdb  gcc/testsuite/gnat.dg/protected_subtype1.adb
+ 490f367919990d8653ae99b43c2f2f82  gcc/testsuite/gnat.dg/protected_type1.adb
  75bce0278f16cfe77a4b103d59d4add4  gcc/testsuite/gnat.dg/pure_function1.adb
  16af05a0ec944108ab97d67c7b40ffdf  gcc/testsuite/gnat.dg/pure_function1.ads
  e0718db21208bd252d027916a866bcae  gcc/testsuite/gnat.dg/pure_function2.adb
*************** dc262de3547bdd707bae595ff3f7bad4  gcc/te
*** 112162,112167 ****
--- 124930,124936 ----
  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
+ e1775204b0488ec4f599a1dd54641058  gcc/testsuite/gnat.dg/put_image2.adb
  86264155418d37c3c433352efc4d7216  gcc/testsuite/gnat.dg/quote.adb
  14ca6ec6ac239ab1d151eea57c9f41a0  gcc/testsuite/gnat.dg/raise_ce.adb
  02b35cb51408b925b49e3ad8ff0a7ea4  gcc/testsuite/gnat.dg/raise_expr.adb
*************** d470ada2b4a8aa6d586007ab8f6e7e5f  gcc/te
*** 112177,112182 ****
--- 124946,124957 ----
  fde5d5ed0c271572ac7da0e31e22bc5c  gcc/testsuite/gnat.dg/range_check7.adb
  25b5534a4bc4502074ce6463c2f5e96b  gcc/testsuite/gnat.dg/rational_arithmetic.ads
  46cc8f530fa18a6afd30b9d241f7967e  gcc/testsuite/gnat.dg/recursive_call.adb
+ 85a55db824671af62dedb2987941d2fe  gcc/testsuite/gnat.dg/reduce1.adb
+ 0b27bcc5788ce003bc049b34d20d5c88  gcc/testsuite/gnat.dg/reduce2.adb
+ cc69f06d5cf4cbc8c70e417d3db3148b  gcc/testsuite/gnat.dg/reduce3.adb
+ 5870b8cebdd6ce91693a485c5a6854d5  gcc/testsuite/gnat.dg/reduce4.adb
+ 001425eca43e1ece9e65dd7929459079  gcc/testsuite/gnat.dg/reduce5.adb
+ 4bfff26122d5903178ba10ce7dc12f6c  gcc/testsuite/gnat.dg/reduce6.adb
  50be8d98f4f9ac99d64926a10596a2df  gcc/testsuite/gnat.dg/ref_type.adb
  5457827e708b7bfc92ffe5610655a443  gcc/testsuite/gnat.dg/ref_type.ads
  222b5d10f23a2e8e8a5e4d41e86e66ed  gcc/testsuite/gnat.dg/regpat1.adb
*************** e51121d34de5e0d22067137864528c8a  gcc/te
*** 112199,112204 ****
--- 124974,124983 ----
  b08ade850be1a0a80325c1a93e9c9043  gcc/testsuite/gnat.dg/renaming16.adb
  0278c64b189f758651064d6a8aeac4db  gcc/testsuite/gnat.dg/renaming16_pkg.ads
  5eaaed2371da7238ac1bdfe70068edcc  gcc/testsuite/gnat.dg/renaming17.adb
+ b500c932c841816b5021e1c75ea367c9  gcc/testsuite/gnat.dg/renaming18.adb
+ c5efcc4f060d2f0a4631ae36d5810188  gcc/testsuite/gnat.dg/renaming19.adb
+ 752a692645433e09b387d74d8d38f17e  gcc/testsuite/gnat.dg/renaming19_pkg.adb
+ b0079ceab1606d08d1276fc014b7e6e2  gcc/testsuite/gnat.dg/renaming19_pkg.ads
  3afb13f37cfc3455f0f0be64d053892f  gcc/testsuite/gnat.dg/renaming2.adb
  1a954da0b1e7e11673319b058eb82146  gcc/testsuite/gnat.dg/renaming3.adb
  9c415422ce59266c9af89e8d3fd1df74  gcc/testsuite/gnat.dg/renaming4.ads
*************** a724a65c9f2a5cf8ecec2c03607a451a  gcc/te
*** 112301,112306 ****
--- 125080,125086 ----
  db841c4103c0b74b3177994b8f223338  gcc/testsuite/gnat.dg/spark2.adb
  b12025d6da94678d017aff1a1210338a  gcc/testsuite/gnat.dg/spark2.ads
  e61a107864022f528a267703547c0a10  gcc/testsuite/gnat.dg/spark3.adb
+ 0b088f7d001ace31eb2c1cec4f871f29  gcc/testsuite/gnat.dg/specs/abstract1.ads
  0655d24f018576946af2af51c7ca3f5e  gcc/testsuite/gnat.dg/specs/abstract_limited.ads
  3f1656a8b66dfdcd71ad2e3f365bcaa1  gcc/testsuite/gnat.dg/specs/abstract_private.ads
  436c4150f98e2b211eb1d9cd00f49698  gcc/testsuite/gnat.dg/specs/access1.ads
*************** b6962b44f81ad681bf6bfb2bc80e5383  gcc/te
*** 112309,112314 ****
--- 125089,125097 ----
  c60566bc09d6f157c601d0691f67aa4e  gcc/testsuite/gnat.dg/specs/access_constant.ads
  a3aeba60c0c92acaa70248375acbbdbb  gcc/testsuite/gnat.dg/specs/access_constant_decl.ads
  60ca8801e0e8eccd8fec16ac238b860c  gcc/testsuite/gnat.dg/specs/aggr1.ads
+ 32d247327e117ebc5575470ee0186869  gcc/testsuite/gnat.dg/specs/aggr10.ads
+ b7160b72842f69638428bd8734f6ed79  gcc/testsuite/gnat.dg/specs/aggr11.ads
+ 7ead03d52ff6c05100ffd07ad0a17bcd  gcc/testsuite/gnat.dg/specs/aggr12.ads
  fe82e660f7a4e411f57c2b234839d4c8  gcc/testsuite/gnat.dg/specs/aggr2.ads
  5742258b0ea3fc3e05f71406d1b1322b  gcc/testsuite/gnat.dg/specs/aggr3.ads
  c8246a5026bc2feaf77f0681b54b41ea  gcc/testsuite/gnat.dg/specs/aggr3_pkg.ads
*************** bc5d484f0195c40f96573375913aad6a  gcc/te
*** 112316,112322 ****
--- 125099,125107 ----
  899dd011c869ddd3d306efe8a8ba47c9  gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads
  b028802f236df04a9a038de337a5c2dc  gcc/testsuite/gnat.dg/specs/aggr5.ads
  8317714735f6bcf3820730db670ecec1  gcc/testsuite/gnat.dg/specs/aggr6.ads
+ 57ec76624056e533c277432e503fe83c  gcc/testsuite/gnat.dg/specs/aggr7.ads
  d85e98dad301b07f80ba5ad3d5adbe63  gcc/testsuite/gnat.dg/specs/aggr8.ads
+ 8d9f49d860ee6a20314b8b77bfff71c6  gcc/testsuite/gnat.dg/specs/aggr9.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
*************** bfb26e1cdacb2ba2f03eb976978bb43f  gcc/te
*** 112339,112347 ****
--- 125124,125134 ----
  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
+ 9b7de00350e4ab77eabfdece45deb6e4  gcc/testsuite/gnat.dg/specs/class_wide1.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
+ 1b5bc7a958785888d92b2bc158d9b271  gcc/testsuite/gnat.dg/specs/component_size1.ads
  6ddb33b9bab31efa0f5ebea912ad04a7  gcc/testsuite/gnat.dg/specs/concat1.ads
  e4425aac5fb5227ddf52028562a63704  gcc/testsuite/gnat.dg/specs/concat1_pkg.ads
  de3a8d42e10071e7f2dab8b41ed160f1  gcc/testsuite/gnat.dg/specs/cond_expr1.ads
*************** e63c264218dd1c2dc831e7d0283b1f18  gcc/te
*** 112366,112371 ****
--- 125153,125159 ----
  74bd24da39fc0a795240eaa56746b666  gcc/testsuite/gnat.dg/specs/discr5.ads
  e4392f7b06cad4011c1b8d6b8192bc34  gcc/testsuite/gnat.dg/specs/discr6.ads
  53c16b267b914c115c6ecaf74af068f2  gcc/testsuite/gnat.dg/specs/discr7.ads
+ 215b4cb743d920f65fa2e41a7dceeb5b  gcc/testsuite/gnat.dg/specs/discr8.ads
  a78fb7cbf02009e1325caab8c3a179c2  gcc/testsuite/gnat.dg/specs/double_record_extension1.ads
  7b07a208cf739b0fe10deedba049a3bc  gcc/testsuite/gnat.dg/specs/double_record_extension2.ads
  35336c4ca96cbe852e268dc958a45791  gcc/testsuite/gnat.dg/specs/double_record_extension3.ads
*************** a7bd734382497172aa271ae6f28c2872  gcc/te
*** 112382,112387 ****
--- 125170,125177 ----
  bc790bd930f8c4f971b8268bdda83659  gcc/testsuite/gnat.dg/specs/fe_inlining_helper.ads
  07a75ac7ade09270a3df5c08ed7d6c00  gcc/testsuite/gnat.dg/specs/finalizable1.ads
  8b2c27da0d1a366c730abf05792e6535  gcc/testsuite/gnat.dg/specs/finalizable2.ads
+ 5fae0e6ce0bf0682f90b885b0187cba4  gcc/testsuite/gnat.dg/specs/float_literal1.ads
+ 2af75a02119e9603ae73638b2cc012e4  gcc/testsuite/gnat.dg/specs/float_literal2.ads
  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/te
*** 112389,112394 ****
--- 125179,125209 ----
  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
+ 5d5cb7a49acfaa5943a6da3c8556db44  gcc/testsuite/gnat.dg/specs/generic_inst3.ads
+ 5eb74ab82203e9ec8672d15f0b59e0cc  gcc/testsuite/gnat.dg/specs/generic_inst3_pkg1.adb
+ 9f946cfeaca1a840772cb64a3c3379f8  gcc/testsuite/gnat.dg/specs/generic_inst3_pkg1.ads
+ cef73f5a59a44c65840f3e48ae81a8fc  gcc/testsuite/gnat.dg/specs/generic_inst3_pkg2.ads
+ d0330f791cc618e6684cc4b6018cbe6f  gcc/testsuite/gnat.dg/specs/generic_inst3_pkg3-child.ads
+ 31297f964710ac609d21fff9fa351082  gcc/testsuite/gnat.dg/specs/generic_inst3_pkg3.ads
+ 98f234b5baedaad42b85458c439275a2  gcc/testsuite/gnat.dg/specs/generic_inst4-child1.ads
+ 6b7ec4192e6648cf92a404b6f3f1ff19  gcc/testsuite/gnat.dg/specs/generic_inst4-child2.ads
+ 8ce552b8e7cb10cc5d28cbd647a45dbc  gcc/testsuite/gnat.dg/specs/generic_inst4.ads
+ e5bd592b729f3a221c44b1d47e431798  gcc/testsuite/gnat.dg/specs/generic_inst5.ads
+ 029ecd56dca31aed4b0ad9438b349541  gcc/testsuite/gnat.dg/specs/generic_inst5_pkg1.ads
+ ec3147943e1840cf222e233c36c34282  gcc/testsuite/gnat.dg/specs/generic_inst5_pkg2.ads
+ fb3162e1e6a376d7c08844580159f732  gcc/testsuite/gnat.dg/specs/generic_inst6.ads
+ 9bda5b7e44ed4f01f0e559e1943fd498  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg1-child-grand1.ads
+ 7e754595cb8016d3ac6ba12350b8164c  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg1-child-grand2.ads
+ 2a3afc99517f6165c9816587c95b6af7  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg1-child.ads
+ 4b588264880adac8f16b828ce46aba7c  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg1.ads
+ 6f19af274252b7522e1d8c842971808e  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg2.ads
+ d0cb31bf0b8e3cd0e3dc700f0accb597  gcc/testsuite/gnat.dg/specs/generic_inst6_pkg3.ads
+ 6f8060e304c62d67ba464421147c0dc2  gcc/testsuite/gnat.dg/specs/generic_inst7.ads
+ 3c9c5180751fdabe5a5c34ad71c62a0d  gcc/testsuite/gnat.dg/specs/generic_inst8.ads
+ 603dc7bb96a67a45149a57c792b3a9b8  gcc/testsuite/gnat.dg/specs/generic_inst9.ads
+ 6c443910afd1ea91afe5c30f9aa19915  gcc/testsuite/gnat.dg/specs/generic_inst9_pkg1.ads
+ 0fdb30fec451477236ccab80a698d186  gcc/testsuite/gnat.dg/specs/generic_inst9_pkg2-g.ads
+ b379cdb5941ac871a72d8418d0795beb  gcc/testsuite/gnat.dg/specs/generic_inst9_pkg2.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
*************** e79713b5757a3f8a05926964d5c26b04  gcc/te
*** 112398,112405 ****
  bb0e77998b46620c791eef69edc120e4  gcc/testsuite/gnat.dg/specs/interface5.ads
  2964ca5392547150aa2109dc092cc2e2  gcc/testsuite/gnat.dg/specs/last_bit.ads
  843de13b4d5cc30db54743bb74dedbf4  gcc/testsuite/gnat.dg/specs/limited1.ads
! f1e4623f01bee0dbc4135d608ad4e311  gcc/testsuite/gnat.dg/specs/limited_with4.ads
! f8ce8abd47440a8ef0caa15042246467  gcc/testsuite/gnat.dg/specs/limited_with4_pkg.ads
  5ca7e9884e00c38a3fcb9117d299b396  gcc/testsuite/gnat.dg/specs/linker_alias.ads
  5a8043c489b5a93e81c2d3ae4b7347c4  gcc/testsuite/gnat.dg/specs/linker_section.ads
  dd066b85e801f4e3550fdee77334f998  gcc/testsuite/gnat.dg/specs/loop_optimization1.ads
--- 125213,125227 ----
  bb0e77998b46620c791eef69edc120e4  gcc/testsuite/gnat.dg/specs/interface5.ads
  2964ca5392547150aa2109dc092cc2e2  gcc/testsuite/gnat.dg/specs/last_bit.ads
  843de13b4d5cc30db54743bb74dedbf4  gcc/testsuite/gnat.dg/specs/limited1.ads
! 47a2a1ac65eb1d05179f5b5e883e3e1b  gcc/testsuite/gnat.dg/specs/limited_with1.ads
! c6a3adc27e1a0ad870d8ad5bc97cca72  gcc/testsuite/gnat.dg/specs/limited_with1_pkg.ads
! b537fdb6d08e70a4a9d52849869d7769  gcc/testsuite/gnat.dg/specs/limited_with2-child1.ads
! 1785a516aed141278b3ae8ff8b2fa746  gcc/testsuite/gnat.dg/specs/limited_with2-child2.ads
! b5db75c3e893265140fda7b901376d2f  gcc/testsuite/gnat.dg/specs/limited_with2.ads
! fbedcb4ad7f2c4e1005641325af96acb  gcc/testsuite/gnat.dg/specs/limited_with3-child-grandchild-grandgrandchild.ads
! 4825dd5c9d78470959a4f658e124ed25  gcc/testsuite/gnat.dg/specs/limited_with3-child-grandchild.ads
! 17aae2f71cf406a1e253530584097a2d  gcc/testsuite/gnat.dg/specs/limited_with3-child.ads
! 2c85f81ae35fa72b5f14adce251e570b  gcc/testsuite/gnat.dg/specs/limited_with3.ads
  5ca7e9884e00c38a3fcb9117d299b396  gcc/testsuite/gnat.dg/specs/linker_alias.ads
  5a8043c489b5a93e81c2d3ae4b7347c4  gcc/testsuite/gnat.dg/specs/linker_section.ads
  dd066b85e801f4e3550fdee77334f998  gcc/testsuite/gnat.dg/specs/loop_optimization1.ads
*************** bac1e8c2c28486c2dacd74f69ad37ca6  gcc/te
*** 112414,112419 ****
--- 125236,125243 ----
  8a6a0905a2e9d263001e69e19b9657c3  gcc/testsuite/gnat.dg/specs/lto3_pkg2.adb
  1d6fe3d382f738feda5c7c3faea04614  gcc/testsuite/gnat.dg/specs/lto3_pkg2.ads
  bd5a6ea89b23bd5629784ef6f9f822ab  gcc/testsuite/gnat.dg/specs/machine_attribute.ads
+ b1a7d26ec14c2e4b30e7f5732498d30e  gcc/testsuite/gnat.dg/specs/mutably_tagged1.ads
+ 348317dec7fec51cad1a52676c67e983  gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads
  a573c4fbee048b518c86be4ea7e21d27  gcc/testsuite/gnat.dg/specs/no_streams.ads
  d470d680d139ab860f9207e4c6a63125  gcc/testsuite/gnat.dg/specs/noinline1.ads
  750425a1e2a00ca741c599016cfcbb7b  gcc/testsuite/gnat.dg/specs/noinline3.ads
*************** e5ba939d3c279c5b6a8f745c0873635b  gcc/te
*** 112457,112463 ****
--- 125281,125291 ----
  1ffc926f5fa0093e97a56785f5de974e  gcc/testsuite/gnat.dg/specs/private1.ads
  8789c55b908f87861cc84839fcf5c8e8  gcc/testsuite/gnat.dg/specs/private2.ads
  1a54485794dbb614c393e5e7884acc69  gcc/testsuite/gnat.dg/specs/private2_pkg.ads
+ 7b27b6bdd1df4f3312e7f8c1e8faf020  gcc/testsuite/gnat.dg/specs/private3-child.ads
+ a84edadaee1ab9facb33753c1ef587df  gcc/testsuite/gnat.dg/specs/private3.ads
  fc55b1bcb0c272bc29027f58c8607f74  gcc/testsuite/gnat.dg/specs/private_with.ads
+ 62015b00bc714be758cfb5d9667148d1  gcc/testsuite/gnat.dg/specs/profile1.ads
+ 3cbbbcdd33c1cd2f5801d65eb79d3cb4  gcc/testsuite/gnat.dg/specs/put_image2.ads
  38c51300d90d115072862fad182112ba  gcc/testsuite/gnat.dg/specs/renaming1.ads
  3b6772c48920aaa7f63a032ce18244a2  gcc/testsuite/gnat.dg/specs/renaming2.ads
  f16ac17ba73b5454cac752f8f68ab33b  gcc/testsuite/gnat.dg/specs/renaming2_pkg1.ads
*************** dd11fa8c12b9ae6c22d0229f9abfe2d2  gcc/te
*** 112488,112494 ****
  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
--- 125316,125322 ----
  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
! c59f00095b1100eb3e5c7a18ba4bf327  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
*************** a7458b24c06bfe4873fec60e537ee095  gcc/te
*** 112499,112504 ****
--- 125327,125333 ----
  e94b6ea5e07d9380ae10002aa76ade27  gcc/testsuite/gnat.dg/specs/static_initializer5_pkg.ads
  a65c4a8c984d594228e4f7d608e2599a  gcc/testsuite/gnat.dg/specs/storage.ads
  d18907c1dc4d160224e5e6db86bd673c  gcc/testsuite/gnat.dg/specs/storage_offset1.ads
+ 4f11fd322a2d30404700de48b0987ed7  gcc/testsuite/gnat.dg/specs/style1.ads
  de51b75218396f3ea74fbbdb7bf0a1c7  gcc/testsuite/gnat.dg/specs/sync_iface_test.ads
  695465ef8fa0e9f92e00b972db65e813  gcc/testsuite/gnat.dg/specs/tag1.ads
  4f45d4c948fae2897544b170d1db5ad2  gcc/testsuite/gnat.dg/specs/tag2.ads
*************** de366240409b1c3413cd274333487fb7  gcc/te
*** 112509,112515 ****
--- 125338,125350 ----
  67001591d13a2654ac5b7435e121cb10  gcc/testsuite/gnat.dg/specs/unchecked_convert2.ads
  a013922e8c147a09784a5aca21aa3a65  gcc/testsuite/gnat.dg/specs/unchecked_union1.ads
  fbc11dba24887c4af40c8660f7168a67  gcc/testsuite/gnat.dg/specs/unchecked_union2.ads
+ bc8a00cafe93a77626f7d163fb369bcf  gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
  c8cf8a4c8db78f809bd3550ca820e6a5  gcc/testsuite/gnat.dg/specs/universal_fixed.ads
+ d3a5054f56a79aec493b187a6ce64653  gcc/testsuite/gnat.dg/specs/unknown_discr1.ads
+ 5238a0473015a85e1ecb51e38ef41fac  gcc/testsuite/gnat.dg/specs/unknown_discr1_pkg-child.ads
+ 310a21f02e107b0cd4abbae5e441e047  gcc/testsuite/gnat.dg/specs/unknown_discr1_pkg-g.ads
+ df80ee104d6cfa84009bc5ebe09950d3  gcc/testsuite/gnat.dg/specs/unknown_discr1_pkg-inst.ads
+ 5e9cc0b2e65ed848874fcb6d9fb08525  gcc/testsuite/gnat.dg/specs/unknown_discr1_pkg.ads
  956da2e940d0e7706607f91ce39d70ad  gcc/testsuite/gnat.dg/specs/variant_part.ads
  12e2e0159b45a86a40c49bc020048d43  gcc/testsuite/gnat.dg/specs/varsize_return.ads
  8bea113f401f2dd5575f665633d17e57  gcc/testsuite/gnat.dg/specs/varsize_return2.ads
*************** ee874e3a5ed130d124c36bc00620ecf7  gcc/te
*** 112585,112591 ****
  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
--- 125420,125426 ----
  f98695363c137c382d6de62ada73bc3c  gcc/testsuite/gnat.dg/sso/s6.adb
  932dcf06c9a657de839f1236ad1ce3a7  gcc/testsuite/gnat.dg/sso/s7.adb
  f876cc05ea75ed91c3f5cfb97ed0a9ae  gcc/testsuite/gnat.dg/sso/s8.adb
! 6a59108cf16ba1141b95f14087e52174  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
*************** cf6061ac7a16f74b48144be58c3da5e2  gcc/te
*** 112679,112684 ****
--- 125514,125520 ----
  5759a9e98b8bd75d202c89de02d3ae17  gcc/testsuite/gnat.dg/subp_inst_pkg.adb
  840b0c423abf6b2fae281aeda3118ba0  gcc/testsuite/gnat.dg/subp_inst_pkg.ads
  9ef2fc6a5b60d79af93069621bd1eac2  gcc/testsuite/gnat.dg/subpools1.adb
+ c4309006e0231d77ac58ae3bc3749a5b  gcc/testsuite/gnat.dg/subpools2.adb
  222b053d2f80b1a83bb11792bfddb673  gcc/testsuite/gnat.dg/suppress_initialization.adb
  1157c9aa08eff66ee964d92800c6cc34  gcc/testsuite/gnat.dg/suppress_initialization2.adb
  5182608e851d6647f1d27fb402e17eaf  gcc/testsuite/gnat.dg/suppress_initialization2.ads
*************** f175b16d43d86bada669751e2223586b  gcc/te
*** 112846,112851 ****
--- 125682,125688 ----
  bb65c4fde027a30c686dc94b413d88df  gcc/testsuite/gnat.dg/unchecked_union1.adb
  1394b7d36fa61e7f3417caa6cf755de5  gcc/testsuite/gnat.dg/unchecked_union2.adb
  22691e0b30f29e2232672977844f75c1  gcc/testsuite/gnat.dg/unchecked_union3.adb
+ a5d89ecafbb5dd31c1a79cf5513d61ed  gcc/testsuite/gnat.dg/unchecked_union4.adb
  9bcc7fe177662a52afe92c8e863cb022  gcc/testsuite/gnat.dg/uninit_array.adb
  8e53621d67942b5d53e2c54dd1648dd7  gcc/testsuite/gnat.dg/uninit_array.ads
  be51b72e76043adb990a3e95f4c40554  gcc/testsuite/gnat.dg/uninit_array_pkg.ads
*************** a78709499f75b434faad5c3ce31121e8  gcc/te
*** 112861,112866 ****
--- 125698,125707 ----
  cd1ae8bd0a64f513e4a2f5cf6f3ddf35  gcc/testsuite/gnat.dg/unroll4.adb
  7d073fe12b9aad1d0208bc4837ded6fb  gcc/testsuite/gnat.dg/unroll4.ads
  9ea3823af135f00304442c546f455041  gcc/testsuite/gnat.dg/unroll4_pkg.ads
+ 0c380665cb8866e926609d97d60e74d3  gcc/testsuite/gnat.dg/use_type1.adb
+ 2ff25aab3331ed26139d02e26ef160d7  gcc/testsuite/gnat.dg/use_type2.adb
+ ca0cc4af1afd7c89b8c00147944eface  gcc/testsuite/gnat.dg/use_type3.adb
+ 6d0aca8baae14ff48033848e1e8f6c56  gcc/testsuite/gnat.dg/use_type4.adb
  9e88b7ce099b1d8cf08618b19708a2f3  gcc/testsuite/gnat.dg/valid1.adb
  b9b78fbd058ac9dfd657617df5ab8b4c  gcc/testsuite/gnat.dg/valid4.adb
  978b7483f1bef09979e22217b25587be  gcc/testsuite/gnat.dg/valid4_pkg.adb
*************** a3b42c057449bd7a2264e8b26a74f2d3  gcc/te
*** 112909,112914 ****
--- 125750,125759 ----
  0be620055c94064f491efaae19cdebea  gcc/testsuite/gnat.dg/vect17.ads
  9ad8e3c0bd2394501db2ab8d4d6969c5  gcc/testsuite/gnat.dg/vect18.adb
  061f8b3edbdb38a5059a5f71b88e29b3  gcc/testsuite/gnat.dg/vect18.ads
+ 08a62b0b5eb23f8760f350a2108f2aac  gcc/testsuite/gnat.dg/vect19.adb
+ 501312a1b6ddd567f8144281c4f69ae6  gcc/testsuite/gnat.dg/vect19.ads
+ a8518609bafba77ecdb911225a9b3058  gcc/testsuite/gnat.dg/vect19_pkg.adb
+ fa7e22d86edf9126f6f2c15020748c22  gcc/testsuite/gnat.dg/vect19_pkg.ads
  aba88b50a3b92ff875cca1546236f2ef  gcc/testsuite/gnat.dg/vect1_pkg.ads
  2f22ddf34c5d49dc6ca69c13a8e95b71  gcc/testsuite/gnat.dg/vect2.adb
  53cb8d8d9568f464e3c9b0238adc3420  gcc/testsuite/gnat.dg/vect2.ads
*************** a60d5bd3c7d97738a821caa2b6320a63  gcc/te
*** 113000,113005 ****
--- 125845,125853 ----
  0cdebd32eacd337e71c8db2ab9d37a99  gcc/testsuite/gnat.dg/warn32.adb
  3c7023a211454ed0b601f4509949969b  gcc/testsuite/gnat.dg/warn33.adb
  831b1f99f5a5a1534ee78ccfa364a4d6  gcc/testsuite/gnat.dg/warn33_pkg.ads
+ 39cca47bb47cf534b57f5fb91e1dd22b  gcc/testsuite/gnat.dg/warn34.adb
+ 4af842296c07e12c924b32d01cde728c  gcc/testsuite/gnat.dg/warn35.adb
+ b0802eb2de4cf36c5b6490eca1178e3f  gcc/testsuite/gnat.dg/warn36.adb
  3973b8e21a39fdc98663d8d4c6b3ae18  gcc/testsuite/gnat.dg/warn4.adb
  30bdcc5f53e82fa0a748765edd2d8e03  gcc/testsuite/gnat.dg/warn5.adb
  99d15089537d8f6f3bed5ba4b1675ffc  gcc/testsuite/gnat.dg/warn6.adb
*************** dd1a1376bad078a4b0eda0ead4a2ea6a  gcc/te
*** 113022,113028 ****
  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
--- 125870,125876 ----
  00f78e8b316dd9541a723b06890c4406  gcc/testsuite/go.dg/arrayclear.go
  ac8af654d131c62dc2127d399247a353  gcc/testsuite/go.dg/cmpstring.go
  47e6563411ed24d0afefc1878c094034  gcc/testsuite/go.dg/concatstring.go
! 3270a4c342c0bd758432993b6f5d6015  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
*************** a06ac97125a90b106e6e0dfd7a0cd8cb  gcc/te
*** 113036,113042 ****
  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
--- 125884,125890 ----
  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
! 409b253bad98c9752cbfd2206253906f  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
*** 113064,113070 ****
  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
--- 125912,125918 ----
  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
! 99743b0ac481e836a891d924cb2f194c  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
*** 115009,115018 ****
  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
--- 127857,127867 ----
  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
! fef92b23b20b3d99fdd95fa493cfd0bb  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
+ cc87407a90e831ba28a6511b6f1dd45c  gcc/testsuite/jit.dg/test-abi.c
  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
*************** c96b8b75ba517dc647306c0f299c9b2d  gcc/te
*** 115024,115029 ****
--- 127873,127879 ----
  2fdb2d029b4d2ac2ee6075d0b41dd30f  gcc/testsuite/jit.dg/test-always_inline-attribute.c
  c9f821ccc1905c2cf6da3b515300cc71  gcc/testsuite/jit.dg/test-arith-overflow.c
  978312b6ef29d047612e4077b2776108  gcc/testsuite/jit.dg/test-array-as-pointer.c
+ 84aad5caec55ba699bf86ba7d0133998  gcc/testsuite/jit.dg/test-arrays-u64.c
  b6b657ddbcecefb50b21259cc5711010  gcc/testsuite/jit.dg/test-arrays.c
  56ce2077b85dacdbb546575eb90002b6  gcc/testsuite/jit.dg/test-asm.c
  f73f1fd00c548879b2e9693e182a41a6  gcc/testsuite/jit.dg/test-asm.cc
*************** c1c4ffe41bbf76d4a61fec8d9b42486c  gcc/te
*** 115037,115043 ****
  af0a18ef8912906bb36ca88219c06667  gcc/testsuite/jit.dg/test-calling-external-function.c
  fcf20b943f3e9affe23adec9277064a7  gcc/testsuite/jit.dg/test-calling-function-ptr.c
  e3bf5c17797aeaea60953345b0ec836b  gcc/testsuite/jit.dg/test-cast.c
! 1abc657df5f9cfb2b57bf23048e54d17  gcc/testsuite/jit.dg/test-cold-attribute.c
  dc3f5924516f317d0e822022186a89d9  gcc/testsuite/jit.dg/test-combination.c
  2e035396a65d6176ba9798f667c5621a  gcc/testsuite/jit.dg/test-compile-to-assembler.c
  897c5ab27b1fd560e0e9f30525797a81  gcc/testsuite/jit.dg/test-compile-to-dynamic-library.c
--- 127887,127893 ----
  af0a18ef8912906bb36ca88219c06667  gcc/testsuite/jit.dg/test-calling-external-function.c
  fcf20b943f3e9affe23adec9277064a7  gcc/testsuite/jit.dg/test-calling-function-ptr.c
  e3bf5c17797aeaea60953345b0ec836b  gcc/testsuite/jit.dg/test-cast.c
! 6bfe3202df4a59189a757d8df0af0d9d  gcc/testsuite/jit.dg/test-cold-attribute.c
  dc3f5924516f317d0e822022186a89d9  gcc/testsuite/jit.dg/test-combination.c
  2e035396a65d6176ba9798f667c5621a  gcc/testsuite/jit.dg/test-compile-to-assembler.c
  897c5ab27b1fd560e0e9f30525797a81  gcc/testsuite/jit.dg/test-compile-to-dynamic-library.c
*************** f34e7ef4d055ab7b719406f4af743422  gcc/te
*** 115048,115059 ****
  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/testsuite/jit.dg/test-empty.c
  7e92c7a2ed10887fff56fcf4d7ef3c64  gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
  6eef66aeae471d259e994ed25ea486f5  gcc/testsuite/jit.dg/test-error-array-as-pointer.c
! b501163b23478ab847f9a8fc171c6713  gcc/testsuite/jit.dg/test-error-array-bounds.c
  dfb836afb65b1ee5048efb971be3da83  gcc/testsuite/jit.dg/test-error-assign-readonly.c
  f23891ab41cf83348b68a92bd977a460  gcc/testsuite/jit.dg/test-error-bad-assignment-op.c
  d3cb545cb98c0633bfc443fcdebf1e86  gcc/testsuite/jit.dg/test-error-bad-assignment.c
--- 127898,127909 ----
  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
! 516f4392cfbfd0ee7385eab7cd81b743  gcc/testsuite/jit.dg/test-debuginfo.c
  20dd26ba5e2717d52d4e1067972e1d67  gcc/testsuite/jit.dg/test-dot-product.c
  ee645b37b25f2a3eddfb21e8be20336d  gcc/testsuite/jit.dg/test-empty.c
  7e92c7a2ed10887fff56fcf4d7ef3c64  gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
  6eef66aeae471d259e994ed25ea486f5  gcc/testsuite/jit.dg/test-error-array-as-pointer.c
! 633cd8e17706507d7ed2c65f11084d28  gcc/testsuite/jit.dg/test-error-array-bounds.c
  dfb836afb65b1ee5048efb971be3da83  gcc/testsuite/jit.dg/test-error-assign-readonly.c
  f23891ab41cf83348b68a92bd977a460  gcc/testsuite/jit.dg/test-error-bad-assignment-op.c
  d3cb545cb98c0633bfc443fcdebf1e86  gcc/testsuite/jit.dg/test-error-bad-assignment.c
*************** c30e992400ec4b86a3837aec895c3125  gcc/te
*** 115110,115116 ****
  e59d4ca4b4a7162b5ac13cde3142adff  gcc/testsuite/jit.dg/test-error-global-init-too-small-array.c
  ab7fbff2fa080ed6b5e45ec0af5b68fe  gcc/testsuite/jit.dg/test-error-global-lvalue-init.c
  b21857c87ae190649a07a80d301aa419  gcc/testsuite/jit.dg/test-error-global-nonconst-init.c
! 1c46030d316755aa57d2e4bc9ab71f72  gcc/testsuite/jit.dg/test-error-impossible-must-tail-call.c
  44f838482cec805a0b62f60dbb637074  gcc/testsuite/jit.dg/test-error-index-not-a-numeric-type.c
  458e3bddb454410827b163729a08ec20  gcc/testsuite/jit.dg/test-error-local-used-from-other-function.c
  59405aa3ae28110136ced21d59bec6ff  gcc/testsuite/jit.dg/test-error-mismatching-types-in-assignment-fn-ptr.c
--- 127960,127966 ----
  e59d4ca4b4a7162b5ac13cde3142adff  gcc/testsuite/jit.dg/test-error-global-init-too-small-array.c
  ab7fbff2fa080ed6b5e45ec0af5b68fe  gcc/testsuite/jit.dg/test-error-global-lvalue-init.c
  b21857c87ae190649a07a80d301aa419  gcc/testsuite/jit.dg/test-error-global-nonconst-init.c
! 60dd78935b0d9ff69198762a9cf8faaa  gcc/testsuite/jit.dg/test-error-impossible-must-tail-call.c
  44f838482cec805a0b62f60dbb637074  gcc/testsuite/jit.dg/test-error-index-not-a-numeric-type.c
  458e3bddb454410827b163729a08ec20  gcc/testsuite/jit.dg/test-error-local-used-from-other-function.c
  59405aa3ae28110136ced21d59bec6ff  gcc/testsuite/jit.dg/test-error-mismatching-types-in-assignment-fn-ptr.c
*************** c9c33e452e2adfd9c4e9baf94b297ac1  gcc/te
*** 115130,115135 ****
--- 127980,127986 ----
  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
+ 8f5043dc15274d1eac9a74645c4e8cd3  gcc/testsuite/jit.dg/test-error-target-info.c
  6f36977fd7c2de6fbb1824c26f384642  gcc/testsuite/jit.dg/test-error-unreachable-block.c
  136909b4e2c9dd4206e002a48198e9da  gcc/testsuite/jit.dg/test-error-unrecognized-dump.c
  f8978b292e5e62e13f742d863657bb61  gcc/testsuite/jit.dg/test-error-unterminated-block.c
*************** e75fb18f9aff909b3c6639a4dac3074c  gcc/te
*** 115177,115182 ****
--- 128028,128034 ----
  2819f51a64e319d697134a1319b760b1  gcc/testsuite/jit.dg/test-returning-function-ptr.c
  a5626b9d860be98a2945e6db0103eb86  gcc/testsuite/jit.dg/test-setting-alignment.c
  43c10dea1efb77b54218e22f2b879311  gcc/testsuite/jit.dg/test-signed-char.c
+ d3b508236f8f599ed02eedc6eedec458  gcc/testsuite/jit.dg/test-sized-float.c
  62528d4a27e27c4755becb0dbd93db39  gcc/testsuite/jit.dg/test-sizeof.c
  baa5fe6e699066fd8ffc5bcfe6d2bc19  gcc/testsuite/jit.dg/test-special-chars.c
  c8398a3f73dd4b289b3b1e611cb3bf23  gcc/testsuite/jit.dg/test-string-literal.c
*************** c8398a3f73dd4b289b3b1e611cb3bf23  gcc/te
*** 115184,115189 ****
--- 128036,128042 ----
  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
+ d0856fd6384c8aaf331fc9c325f6769a  gcc/testsuite/jit.dg/test-target-info.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
*************** e309c53b14c724939a1564046c6a5df2  gcc/te
*** 115200,115292 ****
  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
! 6776dc14224e93d5b805dfe09d5ad6df  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
! d73fc42d5648ab78fab5fe8b42d8d398  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
--- 128053,128149 ----
  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
! cd4a5242a6299bf07ae68930118e8233  gcc/testsuite/lib/algol68-dg.exp
! 80cb9a2026bf46e78788ae1f8b1221ce  gcc/testsuite/lib/algol68-torture.exp
! dabc48bdd1455b865688d3dabe597e6b  gcc/testsuite/lib/algol68.exp
! 60b5f18e3a538e957590e0394629cf98  gcc/testsuite/lib/asan-dg.exp
! bb8712f452f854cee6d083078515ae10  gcc/testsuite/lib/atomic-dg.exp
! 4e8b26052e4c1825ea29c99616711f20  gcc/testsuite/lib/c-compat.exp
! d77c2841e9c0003dce5381cb8b120538  gcc/testsuite/lib/c-torture.exp
! 8576b490701e02cbe35d4ae5aab611bb  gcc/testsuite/lib/clearcap.exp
! 0259a699d220132fdb69449a1763b511  gcc/testsuite/lib/cobol-dg.exp
! e5305446f94875951d7f3cb2c30ed3d5  gcc/testsuite/lib/cobol.exp
! b401339daa0cdb69f56b1f0814a0780d  gcc/testsuite/lib/compat.exp
! 9442af1765e99a76233f71733b7062da  gcc/testsuite/lib/copy-file.exp
! 72602cb2e92b5d59285244dd0d0e5483  gcc/testsuite/lib/dejapatches.exp
! a36f7a11eef97e9926ec12ffc8b26ee4  gcc/testsuite/lib/dg-pch.exp
! fcbf8eb2a14541bdc9d966bf758cf488  gcc/testsuite/lib/dg-test-cleanup.exp
! 923e0b95cff5c76d4439a0242519f685  gcc/testsuite/lib/file-format.exp
! a1935fc2fb38938a9de4348b36350eda  gcc/testsuite/lib/fortran-modules.exp
! a0ed36c59884ca42f622cc1d30faff4d  gcc/testsuite/lib/fortran-torture.exp
! 999cfa769885f2a876551163115fe602  gcc/testsuite/lib/g++-dg.exp
! 8f61c91e9ce681c3472f2a307c7d7f00  gcc/testsuite/lib/g++.exp
! 2ebe67e0e1de7772a7339a397dba5dc4  gcc/testsuite/lib/gcc-defs.exp
! 4509e498c1b9c26e0114d658e21335ff  gcc/testsuite/lib/gcc-dg.exp
! 5a6de494accc5d43d4daa0ed3d05846b  gcc/testsuite/lib/gcc-gdb-test.exp
! 5d43c86c0be2338b09999f28a2d4ae79  gcc/testsuite/lib/gcc-simulate-thread.exp
! f137fa2e280bd8fee6a57544dbe520a8  gcc/testsuite/lib/gcc.exp
! c9227c4c135d0c2dda85d1e50917d3d8  gcc/testsuite/lib/gcov.exp
! 1ab113b2aab75f691397f0a23c85a675  gcc/testsuite/lib/gdc-dg.exp
! 47d9d384596e60d78772d4cbb578d9fe  gcc/testsuite/lib/gdc-utils.exp
! 659d28254b74bb134c269af0f05ac5d1  gcc/testsuite/lib/gdc.exp
! 8275af7d4f065301c60ecc40130d01f6  gcc/testsuite/lib/gfortran-dg.exp
! a1d88f62e82c416786fab3efbde626fa  gcc/testsuite/lib/gfortran.exp
! 1e6ba4107591d7bfa00ec6e95ce147ea  gcc/testsuite/lib/gm2-dg.exp
! 0774e47b52c082bd43a29243f560d631  gcc/testsuite/lib/gm2-simple.exp
! 7c766a4b5316c022b4084502d42098e4  gcc/testsuite/lib/gm2-torture.exp
! 974f21e0c436aea08ec3cced7720b3ab  gcc/testsuite/lib/gm2.exp
! 015ac22c23de7b878b2cdbeb0eed5de2  gcc/testsuite/lib/gnat-dg.exp
! 3611f756316887e8b9dee3812c7f42b0  gcc/testsuite/lib/gnat.exp
! 08d230654bcde5fa6d7e179b4f50529f  gcc/testsuite/lib/go-dg.exp
! af452bfcd099f7ad757c0709565fb6f2  gcc/testsuite/lib/go-torture.exp
! c0366f2c31a7d5fba486ea04c6f08b9a  gcc/testsuite/lib/go.exp
! 569a9bbf0bbca4b3648f90532f4b4b21  gcc/testsuite/lib/htmltest.py
! c0b7997d28c0e4c1e52d9c22fe7612a7  gcc/testsuite/lib/hwasan-dg.exp
! d1598d17d16fc7cf6093cc0ceb65e958  gcc/testsuite/lib/lto.exp
! 8788f5bd86ca545e5cc667a7883372aa  gcc/testsuite/lib/mike-g++.exp
! 3252f65e1ec61c730a6ac983f56b3fd7  gcc/testsuite/lib/mike-gcc.exp
! 6cae4002752080c9ace9f60df166aefe  gcc/testsuite/lib/modules.exp
! b90dc65710017ff6d014328eff6a2582  gcc/testsuite/lib/multiline.exp
! 022d547f21eb20895b81855a146ae740  gcc/testsuite/lib/obj-c++-dg.exp
! cc0ad95b0f3d6b4ef54e287b438acb10  gcc/testsuite/lib/obj-c++.exp
! 69e607978ceda983e6061fefeaa8d96f  gcc/testsuite/lib/objc-dg.exp
! 44678cf784ca0a436d03cb945916378d  gcc/testsuite/lib/objc-torture.exp
! 22d44c2e1a00dd55c3db56c6d8392f80  gcc/testsuite/lib/objc.exp
! 327125e0f9770fa0fdc3ed8f820c8fb2  gcc/testsuite/lib/options.exp
! 4837951677485b41199b6215388f44c4  gcc/testsuite/lib/plugin-support.exp
! 0b47cfd7dff343f4c4e9785998f240c7  gcc/testsuite/lib/print-stack.exp
! 82be545bb9c2d70a74bf4eb4d5a8ecb8  gcc/testsuite/lib/profopt.exp
! 4ef74e524e3ef5f3dec8824220faea8a  gcc/testsuite/lib/prune.exp
! 52ac0ffa39ac607ccf00f72889b6058a  gcc/testsuite/lib/rust-dg.exp
! d84a04f02b348b9b24a659413d60a25b  gcc/testsuite/lib/rust.exp
! 5511a9eae428714e07ad1c813baad87f  gcc/testsuite/lib/sarif-replay-dg.exp
! 3f6bc95ca836ad8d02ea838d4a252bb9  gcc/testsuite/lib/sarif-replay.exp
  cdfac88acd33dec95625eb0cca4bc571  gcc/testsuite/lib/sarif-schema-2.1.0.json
  808895f3fef94ae1653cf826a4c6c9de  gcc/testsuite/lib/sarif-schema-2.2-prerelease-2024-08-08.json
! 5a6cedce32c4c01005adb940226eae62  gcc/testsuite/lib/sarif.py
! 0eaf8d4c599d230033d941eb4d7b6e51  gcc/testsuite/lib/scanasm.exp
! 81addbeaa55d8c8d361049d045d21b6e  gcc/testsuite/lib/scandump.exp
! daccee9e5e177dcd385268830f15bd84  gcc/testsuite/lib/scanhtml.exp
! a33ed92a9095d29763dd3ba2493b26d7  gcc/testsuite/lib/scanipa.exp
! 907fd2c95b387627db1ef01a7111570d  gcc/testsuite/lib/scanlang.exp
! 7f1aa3b1c580955b0cc6825949fcc66a  gcc/testsuite/lib/scanltrans.exp
! db8100f4ec0262eeb2c99e9eaffe546e  gcc/testsuite/lib/scanoffload.exp
! 3b2f1ca84792949db9253e44e835fc59  gcc/testsuite/lib/scanoffloadipa.exp
! 898221caadca6a62674ccf022e39d1b2  gcc/testsuite/lib/scanoffloadrtl.exp
! d8b0ac4d429708884c384b15b26da1c4  gcc/testsuite/lib/scanoffloadtree.exp
! 851f49e0de52aa5e1e70b5504f1ea27c  gcc/testsuite/lib/scanrtl.exp
! de9eeadec9703aff96169206e31a3a22  gcc/testsuite/lib/scansarif.exp
! 500d5ba9cb874cb3eaa8515fcaa035d3  gcc/testsuite/lib/scantree.exp
! 275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
! 9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
! 6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 9739f719e63980393bbd25fcd6a05cbb  gcc/testsuite/lib/target-supports.exp
! b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
! 98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
! 0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
! e675757b03beb04537aee4804ce2b33d  gcc/testsuite/lib/torture-options.exp
! 1a749a8957b3590edfb69e2da5a8f986  gcc/testsuite/lib/tsan-dg.exp
! 0f0401cc67f3eaa1342cc68a0fddea07  gcc/testsuite/lib/ubsan-dg.exp
! 94777fc3b2eee746fb82ccbed0869ce8  gcc/testsuite/lib/valgrind.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
! def047b53d82996a441864d4f9a6780b  gcc/testsuite/lib/wrapper.exp
  a4a9359c5b5661d671b4a762e567d302  gcc/testsuite/libgdiagnostics.dg/libgdiagnostics.exp
  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/te
*** 115295,115301 ****
  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
--- 128152,128158 ----
  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
! 936e4ff3a50edcb8d81d2ad5076a701d  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
*************** a94d6ed40eb56b13b3aa84af9140e7aa  gcc/te
*** 115303,115314 ****
  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
--- 128160,128176 ----
  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
! 00c816edbc3a50d853332da7e3423c11  gcc/testsuite/libgdiagnostics.dg/test-logical-location-c.py
! 5e005c4b2bb45b1bc008da94aef65a7b  gcc/testsuite/libgdiagnostics.dg/test-logical-location.c
! a3ceaadd005179c882a804f755357620  gcc/testsuite/libgdiagnostics.dg/test-logical-location.cc
! 0954fc5933c71934713867617f72434f  gcc/testsuite/libgdiagnostics.dg/test-message-buffer-c.py
! d57fc2a0f3c7008b2d60cefb8625c318  gcc/testsuite/libgdiagnostics.dg/test-message-buffer.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
! cf17d819d0790440744ffd04fca02cc5  gcc/testsuite/libgdiagnostics.dg/test-multiple-lines.c
! 835720a23698d89b73c5e6cf6081b8cf  gcc/testsuite/libgdiagnostics.dg/test-nested-logical-locations-json-c.py
! d99e58b0d09b00c936b9bd4f82c99516  gcc/testsuite/libgdiagnostics.dg/test-nested-logical-locations-json.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
*************** d97a2ede9b276271fe7da53d984c46c9  gcc/te
*** 115317,115323 ****
  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
--- 128179,128185 ----
  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
! b8c9298c1e5181b37249dc384761a1f4  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/te
*** 115326,115332 ****
  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
--- 128188,128194 ----
  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
! 383042a4dcef40d37ac0fe41f5c976e2  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
*** 115392,115398 ****
  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
--- 128254,128260 ----
  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
! 158c28b54facc7adcddfaa5e4547d8a4  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
*************** e5b9f9a44ce01382be2feb246ccb5ad4  gcc/te
*** 115413,115421 ****
  3f2a93d293bef7fad64048537a3de594  gcc/testsuite/obj-c++.dg/except-1.mm
  9b7dbb53a1521f0dba0bac968d2366a4  gcc/testsuite/obj-c++.dg/exceptions-1.mm
  75c69779710528ad6eb5c5a4e15d704d  gcc/testsuite/obj-c++.dg/exceptions-2.mm
! 61ad959bfd2af3a7229fd3007bbbad4d  gcc/testsuite/obj-c++.dg/exceptions-3.mm
  29974ab84afb1070ecafab3397b6737f  gcc/testsuite/obj-c++.dg/exceptions-4.mm
! e823b71ffc5adeccdc463015d5d92bcf  gcc/testsuite/obj-c++.dg/exceptions-5.mm
  1b780eb4d9705d8bb7f2c05f76733e8e  gcc/testsuite/obj-c++.dg/exceptions-6.mm
  a6aad066984a23da19fb3353abeb2c33  gcc/testsuite/obj-c++.dg/exceptions-7.mm
  4badf47503df73cc6045dcf63685bcfc  gcc/testsuite/obj-c++.dg/extern-c-1.mm
--- 128275,128283 ----
  3f2a93d293bef7fad64048537a3de594  gcc/testsuite/obj-c++.dg/except-1.mm
  9b7dbb53a1521f0dba0bac968d2366a4  gcc/testsuite/obj-c++.dg/exceptions-1.mm
  75c69779710528ad6eb5c5a4e15d704d  gcc/testsuite/obj-c++.dg/exceptions-2.mm
! f413a517d69673569e656ebd148e2174  gcc/testsuite/obj-c++.dg/exceptions-3.mm
  29974ab84afb1070ecafab3397b6737f  gcc/testsuite/obj-c++.dg/exceptions-4.mm
! 333203d62cede351699990511790bd41  gcc/testsuite/obj-c++.dg/exceptions-5.mm
  1b780eb4d9705d8bb7f2c05f76733e8e  gcc/testsuite/obj-c++.dg/exceptions-6.mm
  a6aad066984a23da19fb3353abeb2c33  gcc/testsuite/obj-c++.dg/exceptions-7.mm
  4badf47503df73cc6045dcf63685bcfc  gcc/testsuite/obj-c++.dg/extern-c-1.mm
*************** e2f09d3bd8c76cb2cc3877eabe1635a2  gcc/te
*** 115456,115462 ****
  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
--- 128318,128324 ----
  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
! d500b2357b58f959faf55b93f6a60878  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
*** 115497,115503 ****
  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
--- 128359,128365 ----
  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
! 01c11a49fa9185114a90a841b93476ed  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
*** 115589,115595 ****
  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
--- 128451,128457 ----
  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
! b5316eee5b473dad40de079bac691768  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
*** 115638,115644 ****
  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
--- 128500,128506 ----
  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
! 132348d0415f75603da1dcb656f7494c  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
*** 115690,115696 ****
  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
--- 128552,128558 ----
  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
! e79029b5ed49a350e7e1e47da0b6ec78  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
*************** dc8c5ec7b9abe64c54eabc2d60a81066  gcc/te
*** 115757,115763 ****
  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
--- 128619,128625 ----
  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
! 10e8af3c9a70bfdc1774edfbb76cab7e  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
*** 115772,115778 ****
  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
--- 128634,128640 ----
  3b8fd8c2ee22e0099d80e4fa89e2befc  gcc/testsuite/objc.dg/alias.m
  d1b6c3f1ea4ae2a41059c91bb5a2b852  gcc/testsuite/objc.dg/anon-1.m
  84caaa988ddff2a3ef9a3c9c9bfe6fbf  gcc/testsuite/objc.dg/at-class-1.m
! dfd3fe162f7e9659f60ed1776a248032  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
*** 115839,115845 ****
  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
--- 128701,128707 ----
  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
! 09f5d152b39745ccc8ff8fbafa35f656  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
*************** af1f88eec3b11606777ae67c0f56c07b  gcc/te
*** 115904,115910 ****
  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
--- 128766,128772 ----
  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
! 91e230740d03339976094c8d915e8878  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
*** 115942,115948 ****
  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
--- 128804,128810 ----
  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
! 28caa8b196c7f0f9b27e581cef35e1a8  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
*************** d6bb76e151385d5dcc0bccac5e79fa6e  gcc/te
*** 115996,116004 ****
  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
--- 128858,128866 ----
  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
! 8b0383979ed83037b04c4432d43a562d  gcc/testsuite/objc.dg/pch/pch.exp
  9d6541dc0a9955231b38937f98c5b78a  gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m
! 9e0ac6856d5ed75be659c5fc6bba2a1f  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
*** 116095,116101 ****
  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
--- 128957,128963 ----
  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
! 5aef081a239f2099e4dc49aeee9b27f3  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
*************** c68f58f9b78cac0eac5ea8f58620014d  gcc/te
*** 116136,116152 ****
  727fbdef0d5c1f394af9e449351158cc  gcc/testsuite/objc.dg/shadow-2.m
  00a9d1763a3673adacb1898e1c61ef7f  gcc/testsuite/objc.dg/sizeof-1.m
  563627927440cc105f37f27a8d91f249  gcc/testsuite/objc.dg/special/load-category-1.h
! a3938d257215e3c079e79ea03a2043d9  gcc/testsuite/objc.dg/special/load-category-1.m
  c64683a48c4b54f91b2855f105ac3015  gcc/testsuite/objc.dg/special/load-category-1a.m
  a49252a001b806cbd83791f46c29c19c  gcc/testsuite/objc.dg/special/load-category-2.h
! ab13bce13fdb5a3de66f0f350804fc0d  gcc/testsuite/objc.dg/special/load-category-2.m
  c531fbd47d6cd6f34fd4a1161fe41d36  gcc/testsuite/objc.dg/special/load-category-2a.m
  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
  44c850eb724ab694c1eea579910821bd  gcc/testsuite/objc.dg/static-1.m
  911d824641cc5460f0bb8428edcd155b  gcc/testsuite/objc.dg/stret-1.m
--- 128998,129014 ----
  727fbdef0d5c1f394af9e449351158cc  gcc/testsuite/objc.dg/shadow-2.m
  00a9d1763a3673adacb1898e1c61ef7f  gcc/testsuite/objc.dg/sizeof-1.m
  563627927440cc105f37f27a8d91f249  gcc/testsuite/objc.dg/special/load-category-1.h
! 48f1cf24dc9c16b0de5e3bc7a0504f0b  gcc/testsuite/objc.dg/special/load-category-1.m
  c64683a48c4b54f91b2855f105ac3015  gcc/testsuite/objc.dg/special/load-category-1a.m
  a49252a001b806cbd83791f46c29c19c  gcc/testsuite/objc.dg/special/load-category-2.h
! 04455d4b064cf08dbc22245543cff612  gcc/testsuite/objc.dg/special/load-category-2.m
  c531fbd47d6cd6f34fd4a1161fe41d36  gcc/testsuite/objc.dg/special/load-category-2a.m
  b5566392b676a4381c9fba425af46d22  gcc/testsuite/objc.dg/special/load-category-3.h
! 9e46017b83261bc00e3bea4bea10f873  gcc/testsuite/objc.dg/special/load-category-3.m
  84e0d0ac9e785e6c7a2c3961f9fef351  gcc/testsuite/objc.dg/special/load-category-3a.m
! 7f46e3c84209b36c3d5979a4422d4a65  gcc/testsuite/objc.dg/special/special.exp
  a771ad2e4109d3b6d673ea6ae3dfaa4f  gcc/testsuite/objc.dg/special/unclaimed-category-1.h
! d2e9a2872b3c0ea672f55965613d9b66  gcc/testsuite/objc.dg/special/unclaimed-category-1.m
  fd73b19f16303df474ad98a05e01cd6a  gcc/testsuite/objc.dg/special/unclaimed-category-1a.m
  44c850eb724ab694c1eea579910821bd  gcc/testsuite/objc.dg/static-1.m
  911d824641cc5460f0bb8428edcd155b  gcc/testsuite/objc.dg/stret-1.m
*************** d14e2bc0e149efd8ad9b13c9f1e48081  gcc/te
*** 116161,116167 ****
  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
--- 129023,129029 ----
  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
! 5268a485295952b1e45ec56145380739  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
*** 116199,116205 ****
  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
--- 129061,129067 ----
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
  5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
! 2f4c81db065b9c3d940e88b07227e184  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
  8affcfa2f40a88a07d936c0472352a61  gcc/testsuite/objc.dg/torture/tls/thr-init-3.m
*************** f0a85fb06bc40a59b3b67e37b68bf8a9  gcc/te
*** 116234,116240 ****
  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
--- 129096,129102 ----
  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
! 1a0af2b87a14f876f63e4a4bf9633f57  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
*** 116292,116298 ****
  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
--- 129154,129160 ----
  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
! c08add9f45373e8c8f1afcafbb1e282e  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
*** 116302,116308 ****
  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
--- 129164,129170 ----
  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
! 5dc79b15aa538add846b3a9cd0cc13f4  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
*** 116343,117657 ****
  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
! 74543bdf60d90fdb77b3d59541bb46b8  gcc/testsuite/rust/compile/bad_as_bool_char.rs
! 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
! 9f90a1bd410498c56e3df950032a988d  gcc/testsuite/rust/compile/braced_macro_statements3.rs
! 47737309318071d3754311d3548c9919  gcc/testsuite/rust/compile/break-rust1.rs
! f64766615234c46909d9751865f81a2f  gcc/testsuite/rust/compile/break-rust2.rs
! 812730b6446f2b373e760a953997b1bf  gcc/testsuite/rust/compile/break-rust3.rs
! aee0d6e5e5a54d891b1d4faa7e35d45f  gcc/testsuite/rust/compile/break1.rs
! 6fbcb9d99ff911062023af6b888080d7  gcc/testsuite/rust/compile/break2.rs
! 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
! 56ded507756f2a2acbcd3e159441eb69  gcc/testsuite/rust/compile/cfg4.rs
! 51f569c35a6280f5867ea405af7c5ff0  gcc/testsuite/rust/compile/cfg5.rs
! 727e67cc591a11b8f3b7b5d059bab114  gcc/testsuite/rust/compile/cfg6.rs
! 0446be9193127a70c4d35ca699820a60  gcc/testsuite/rust/compile/changed_intrinsics.rs
! 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
! 35b2389068cb824405eb2d9143bcbaf5  gcc/testsuite/rust/compile/const1.rs
! 20a071af13cc659f510fa8e507de1155  gcc/testsuite/rust/compile/const10.rs
! 7e8914522c5084bfdf3d535d03eceba9  gcc/testsuite/rust/compile/const2.rs
! 855ac0599ce037105c7396a1d029191b  gcc/testsuite/rust/compile/const3.rs
! dfa3b2217fe0156c62492956eee3bcf4  gcc/testsuite/rust/compile/const4.rs
! 5add53f8414bc2b7767a350b5f3d3a02  gcc/testsuite/rust/compile/const5.rs
! 6f09394721c26be6597f0ff04ead414b  gcc/testsuite/rust/compile/const6.rs
! 2306998d870c3bc52160a7c4dfe66bbf  gcc/testsuite/rust/compile/const7.rs
! f39e120a441c7e4182741b883f1ef05d  gcc/testsuite/rust/compile/const8.rs
! dd04212a2e511e939aedac8b2ea59543  gcc/testsuite/rust/compile/const9.rs
! 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
! 3773ca6c54665e210cd154606f67acae  gcc/testsuite/rust/compile/debug-diagnostics-off.rs
! 222c8f58dfc19b5378f44e80ecd5742b  gcc/testsuite/rust/compile/debug-diagnostics-on.rs
! 3a2fbeb7503eda8a0196db052fcca359  gcc/testsuite/rust/compile/decl_macro1.rs
! 7ec686f7ddc3ea3d3b8e03244c6d1b4f  gcc/testsuite/rust/compile/decl_macro2.rs
! bbb07a308e077d8068c1a25e119fce9c  gcc/testsuite/rust/compile/decl_macro3.rs
! 6efc94f19385c3060fca68fd09bac1cc  gcc/testsuite/rust/compile/decl_macro4.rs
! 15fae62741d18e742ca7c0320a61cc95  gcc/testsuite/rust/compile/decl_macro5.rs
! 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
! 9f4c15c76e3e3e3dd4ebd6f61e8db065  gcc/testsuite/rust/compile/doc_isolated_cr_block_comment.rs
! d4173b37d75e489fc580f69e4c6666c9  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
! 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/testsuite/rust/compile/generics12.rs
! 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
! d59e1a706f4d5ecf85ccc8929983dda4  gcc/testsuite/rust/compile/issue-1019.rs
! 8a6b6780af800c7792766eb1ad1c2bc2  gcc/testsuite/rust/compile/issue-1023.rs
! 7a5ff9315269435c4fb1fd09aa42022a  gcc/testsuite/rust/compile/issue-1031.rs
! 8b4a10a57fa50214c30abf33d38f3a66  gcc/testsuite/rust/compile/issue-1034.rs
! 755da4cdeb7d21c007a7642f64d68f9f  gcc/testsuite/rust/compile/issue-1073.rs
! 3170bfed67ee0e280928743013eff0bb  gcc/testsuite/rust/compile/issue-1089.rs
! fa137bc0614a02dafb820751293a47c7  gcc/testsuite/rust/compile/issue-1089/test_mod.rs
! 5bc4421c6f0beece14d7eebae0ab5139  gcc/testsuite/rust/compile/issue-1128.rs
! 215a61ae1ef8ce9d4340a872f9af817f  gcc/testsuite/rust/compile/issue-1129-1.rs
! f980ebe6c33cb30b8f4299b79ee7561a  gcc/testsuite/rust/compile/issue-1129-2.rs
! 4acb3f85a12df3668daf9a543af1ada0  gcc/testsuite/rust/compile/issue-1130.rs
! 394647e04c828e25c1ded1f4d211bc98  gcc/testsuite/rust/compile/issue-1131.rs
! ce6c31e5fae9866aa4ca6c414ee67207  gcc/testsuite/rust/compile/issue-1152.rs
! 78129bcac4f89afdb7ea3ca84dc33cb0  gcc/testsuite/rust/compile/issue-1165.rs
! f00d2daefba13bef1d236d250e76bdff  gcc/testsuite/rust/compile/issue-1173.rs
! c83436fe2fc9fdb75d44d97cc581d491  gcc/testsuite/rust/compile/issue-1226.rs
! 8917da2935c56ecd5715cb3db5ad71a3  gcc/testsuite/rust/compile/issue-1234.rs
! 706b52a679ef815e77dcde70b34d8625  gcc/testsuite/rust/compile/issue-1235.rs
! de949b167bc251dd36a632e5a01aa6d0  gcc/testsuite/rust/compile/issue-1237.rs
! 17400e163df5334bbe8aac2038ec3043  gcc/testsuite/rust/compile/issue-1251.rs
! 8dd9a76c7a3fcfb15bfffaac22520456  gcc/testsuite/rust/compile/issue-1271.rs
! 526c2f3c9b8826f2087440064a08e246  gcc/testsuite/rust/compile/issue-1272.rs
! 5eccf21e9b433a6af0158f37bd7516a6  gcc/testsuite/rust/compile/issue-1289.rs
! ab3c15cae592f9bf4cd733d3f1430996  gcc/testsuite/rust/compile/issue-1323-1.rs
! fb1288c6929fb7277dde0d2cd35829d6  gcc/testsuite/rust/compile/issue-1323-2.rs
! b8672e41b3df45a83b26554acb9ba9d1  gcc/testsuite/rust/compile/issue-1361.rs
! 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
! 71ddc9537accfcbd06be474ee0fbcf50  gcc/testsuite/rust/compile/issue-2040.rs
! 89b0d4e232b08d023e1100161cb559db  gcc/testsuite/rust/compile/issue-2042.rs
! 82af822ebfeef07e952cdec1a5b9f713  gcc/testsuite/rust/compile/issue-2043.rs
! ca0d7bd0e4d6edab91eb3295f5243e78  gcc/testsuite/rust/compile/issue-2070.rs
! f7a4c3ed09ab45e1c096495fc9d675c6  gcc/testsuite/rust/compile/issue-2105.rs
! 5c9cb53adc5a191a5cdfb0c5eea5267f  gcc/testsuite/rust/compile/issue-2106.rs
! f677239cb2f1a8fc0b98b677dc10622c  gcc/testsuite/rust/compile/issue-2125.rs
! 504cf2293bfc6eb2b4f36b0904c7cdc8  gcc/testsuite/rust/compile/issue-2135.rs
! 1993ac90460c0c5343a2547406c0744b  gcc/testsuite/rust/compile/issue-2136-1.rs
! 7b5a2c0de4e8fb1cdd841f8f326ab459  gcc/testsuite/rust/compile/issue-2136-2.rs
! c3eb1a72b4023b45dfd5148bc5d0e7a5  gcc/testsuite/rust/compile/issue-2139.rs
! b1331689a90b28eba6a364bd355124d0  gcc/testsuite/rust/compile/issue-2142.rs
! 176f6f3432e7bbbbef12eec2f4b0b07c  gcc/testsuite/rust/compile/issue-2165.rs
! 719daee73aad302e472c21c06bd97edb  gcc/testsuite/rust/compile/issue-2166.rs
! dd3f2a097c79b709dd16483c4a1e248c  gcc/testsuite/rust/compile/issue-2178.rs
! da2420dd88aae313552959890eda2887  gcc/testsuite/rust/compile/issue-2187.rs
! 88ea8b6193ca0e9b0446deb7155ef254  gcc/testsuite/rust/compile/issue-2188.rs
! bf7653a0772e6020b3f449cd76d88f20  gcc/testsuite/rust/compile/issue-2189.rs
! 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
! f9d4a6bcd21c2fad3da335b4458cd917  gcc/testsuite/rust/compile/issue-2772-2.rs
! a1c3a349606e6b480d37913f89e3264b  gcc/testsuite/rust/compile/issue-2775.rs
! 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
! f8f243df4bb6d8ad64bad3b19771c416  gcc/testsuite/rust/compile/issue-635-1.rs
! 4ebac20282b976fe52f1017d59feaccb  gcc/testsuite/rust/compile/issue-635-2.rs
! c246745d3c0109f707a97eb978d8efc8  gcc/testsuite/rust/compile/issue-850.rs
! d0bc7a1825bed2205c11837dfb95d94d  gcc/testsuite/rust/compile/issue-852.rs
! 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
! 55468641e4b8308c6e8ba0e77f4d257f  gcc/testsuite/rust/compile/match4.rs
! 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
! 18348ac5b621923f3e14d010510eb8ce  gcc/testsuite/rust/compile/missing_constructor_fields.rs
! 775854480777f26a721b17fa79300bac  gcc/testsuite/rust/compile/missing_return1.rs
! 3488d558ea779e419eb5939f19689484  gcc/testsuite/rust/compile/mod_missing_middle.rs
! 6847e46e8fb1faccc912a128920d7966  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/both_path.rs
! 5a19b08ad9c6d2b2a7206a0bac429af9  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not.rs
! 0c698b207d7baa3852f8a068f236bac4  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not/other.rs
! cd05644ed63556d4b86d76594e45c19b  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/inner_path.rs
! 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/testsuite/rust/compile/name_resolution6.rs
! 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
! e1276ff6c1d3f1fc6fdfb0a1e3812efd  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
! 1bd2c1a4dbfa8382bcaf5f76daa62080  gcc/testsuite/rust/compile/parse_complex_generic_application.rs
! 544d5b140c46a68a1b223a58fed49c32  gcc/testsuite/rust/compile/parse_complex_generic_application2.rs
! ac7d528f48d6a84b3e60f20a514d6cf7  gcc/testsuite/rust/compile/parse_empty_tuple_pattern.rs
! 7b85f8417fcc86423cfe4746076018be  gcc/testsuite/rust/compile/parse_generic_path_expr.rs
! 37c7aff5159b5715fc8cd7a7745826e1  gcc/testsuite/rust/compile/parse_global_path_generic.rs
! 211a4d8d85277f4b17c185612ae9d99e  gcc/testsuite/rust/compile/parse_invalid_specialization.rs
! fa1b080c05380ac0134d408be302d780  gcc/testsuite/rust/compile/parse_item_default_macro.rs
! 7db46b087a9339ddd439310cfee25358  gcc/testsuite/rust/compile/parse_pub_unit_type.rs
! 114e68344ffd8da36992cebba2f47a5f  gcc/testsuite/rust/compile/parse_range.rs
! 9d33d486f2d0ec95adbc86fda39b9f62  gcc/testsuite/rust/compile/parse_specialization.rs
! 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
! fe3b879720289aae0e7b44856a4354c7  gcc/testsuite/rust/compile/privacy4.rs
! c0843b42d79bf0c882db183800c4e8ec  gcc/testsuite/rust/compile/privacy5.rs
! d70eb64b7474083aaf938052cf551ce2  gcc/testsuite/rust/compile/privacy6.rs
! 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
! 4d03e64527f8bdfbe648b8d3d0d8a3e8  gcc/testsuite/rust/compile/stmt_with_block_dot.rs
! 570a954443a78c2e050e56451d9f74a7  gcc/testsuite/rust/compile/stmt_with_block_err1.rs
! cb2ba2189235c85921385195ef70db47  gcc/testsuite/rust/compile/stringify.rs
! 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
! e523e1100be82cdc849bfc94efa58c3e  gcc/testsuite/rust/compile/torture/alt_patterns1.rs
! 9c037ed72d92be90dd811fb6f830c3a7  gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs
! 700e78324e0228664e548115a92deb3c  gcc/testsuite/rust/compile/torture/array_const_fold_1.rs
! 977eb70c73e224801b9274751d21f449  gcc/testsuite/rust/compile/torture/array_const_fold_2.rs
! d08195bb155c58b625aaa9e394d06c4c  gcc/testsuite/rust/compile/torture/array_function.rs
! c3e01a95d652e8c7c268b324a2911f80  gcc/testsuite/rust/compile/torture/array_type_infer.rs
! 6eb6e6ff52af6e9b7afd0b827ed9cbec  gcc/testsuite/rust/compile/torture/array_zero_length.rs
! d8dd161fac9318a0470043dfee8c0c20  gcc/testsuite/rust/compile/torture/arrays1.rs
! f51aa4c941042d8c31ec23157e91d1da  gcc/testsuite/rust/compile/torture/arrays2.rs
! 5ca1a0eacac6a0f825a32e310b4b4874  gcc/testsuite/rust/compile/torture/arrays3.rs
! f13bc2644c23f9b77870bdffd7143d6c  gcc/testsuite/rust/compile/torture/arrays4.rs
! 2866889ac005072b680cb19cc12aa0c1  gcc/testsuite/rust/compile/torture/arrays5.rs
! d5d1af9be28084065ca5bb0e0d583b32  gcc/testsuite/rust/compile/torture/arrays6.rs
! 7bf2f74b7a46f5ef883797b759f5a23a  gcc/testsuite/rust/compile/torture/arrays_index1.rs
! f6ef7fea1ef5fc900269037059a043f9  gcc/testsuite/rust/compile/torture/arrays_index2.rs
! b8c2c7b3c891bc3a263e763f2163c358  gcc/testsuite/rust/compile/torture/arrays_index3.rs
! 92723e1529e3f0e7c0f3f8c66635a91f  gcc/testsuite/rust/compile/torture/as_bool_char.rs
! ea7b41e80e0f70a838cd7436f2141d07  gcc/testsuite/rust/compile/torture/associated_types1.rs
! 0a97b462b38130103f86ca35421a3c6a  gcc/testsuite/rust/compile/torture/autoderef1.rs
! 167fe74868ba7bded3851a9357f3b2dc  gcc/testsuite/rust/compile/torture/block_expr1.rs
! a065c1c958a9fdc1a842ebdb363ccb6c  gcc/testsuite/rust/compile/torture/block_expr2.rs
! 59314587deca275c222d9a32bb897ef1  gcc/testsuite/rust/compile/torture/block_expr3.rs
! f0b47694ec4ba423955383a4cf821c5e  gcc/testsuite/rust/compile/torture/block_expr4.rs
! d493591eb7774b7c3575597109cc0fb1  gcc/testsuite/rust/compile/torture/block_expr5.rs
! ed716fa84a3690b39c0af91ffa28108e  gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs
! 30f83d0f9026d598483f7bba93a46893  gcc/testsuite/rust/compile/torture/bom.rs
! 152ab6386f68ecd72a8f1847206bab27  gcc/testsuite/rust/compile/torture/bom_comment.rs
! 62b52bf276a440da57e4c858a447359e  gcc/testsuite/rust/compile/torture/bom_shebang.rs
! becfe673b19d48d9d128de9bc9a949f9  gcc/testsuite/rust/compile/torture/bom_whitespace.rs
! 6ca799beafae2ef48bf31ba40d4a8497  gcc/testsuite/rust/compile/torture/bools_eq.rs
! 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
! 72e2f506e45df556fa2b8d1216b47eb4  gcc/testsuite/rust/compile/torture/cast2.rs
! 309e013725ea6fb5ffeb6d3177dcae27  gcc/testsuite/rust/compile/torture/cast3.rs
! 0039b9e25398a0b3429e3eb29ff940a0  gcc/testsuite/rust/compile/torture/cfg_attr.rs
! a6c52e49acead3e0c70ad1d2fb7b2c56  gcc/testsuite/rust/compile/torture/char1.rs
! 787e82fbe52e29c6353ef02980e52abf  gcc/testsuite/rust/compile/torture/check-doc-attr-string.rs
! 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
! a04178aea3ceec839354c3ffd84b69f3  gcc/testsuite/rust/compile/torture/constant2.rs
! a85eef33b70b974480146ba0bdfe1b07  gcc/testsuite/rust/compile/torture/constant3.rs
! bf13c513e09bfcead7789ecde8acfb5c  gcc/testsuite/rust/compile/torture/deadcode1.rs
! d1a4004c5a6ded0d144af392d0cd79ed  gcc/testsuite/rust/compile/torture/deadcode2.rs
! 868137a24ca97d6b622c7db394321f3a  gcc/testsuite/rust/compile/torture/deref1.rs
! 76752387f75dbaba8935de0f308c3e83  gcc/testsuite/rust/compile/torture/deref_function.rs
! 8999f29296027efbe4203ab972aabca2  gcc/testsuite/rust/compile/torture/doc_comment.rs
! 9052e782c6bd21ebdeacd2ef37c971db  gcc/testsuite/rust/compile/torture/enum1.rs
! 36c2a8fd2c29ef6fb5566c975128b2f4  gcc/testsuite/rust/compile/torture/extern_mod1.rs
! 8278937d0cc6eda70c0ed9f40ea2d918  gcc/testsuite/rust/compile/torture/extern_mod1/modules/mod.rs
! 4c781d2c921d6401c22d96d426d243de  gcc/testsuite/rust/compile/torture/extern_mod2.rs
! 1490d84b237737cb823c9217c7c951a1  gcc/testsuite/rust/compile/torture/float1.rs
! 648d8471d92dd7e628efe64b7fe0cca3  gcc/testsuite/rust/compile/torture/float_types.rs
! 785a9da1467d65ab0f9ceccec94af674  gcc/testsuite/rust/compile/torture/forward_decl_1.rs
! 24d01e3069aeb01f7861e76a23500dcf  gcc/testsuite/rust/compile/torture/forward_decl_2.rs
! d77e665974d88bd08a4471b05f5bff0a  gcc/testsuite/rust/compile/torture/forward_decl_3-unsafe.rs
! 857a877b0ff7ff3ac0a864d41f3dadb7  gcc/testsuite/rust/compile/torture/forward_decl_3.rs
! b3b1f6a81cb3ee39ad4729bfe15303db  gcc/testsuite/rust/compile/torture/forward_decl_4.rs
! 2c1ad94a05348c22ca6b9ae58142a32d  gcc/testsuite/rust/compile/torture/forward_decl_5.rs
! 2a14ed73eb56715fac47961c7ad1d224  gcc/testsuite/rust/compile/torture/func1.rs
! 459ebd43954a1ec8ff304444907f2f6a  gcc/testsuite/rust/compile/torture/func2.rs
! d1c0aa9304b5787c6af6b4adee81e1bf  gcc/testsuite/rust/compile/torture/function_reference1.rs
! 7bda593163cfcc89e3e33a263bf1fea0  gcc/testsuite/rust/compile/torture/function_reference2.rs
! 6dbc5c586e725ca1a1cc60af5f5be2f1  gcc/testsuite/rust/compile/torture/function_reference3.rs
! 317e79768c71ad90371a40260f219cc9  gcc/testsuite/rust/compile/torture/function_reference4.rs
! 3b97df70ef74272be2a2605b52b4b5dd  gcc/testsuite/rust/compile/torture/generics1.rs
! 5ff2340496c5b48f548eb513d5b7488e  gcc/testsuite/rust/compile/torture/generics10.rs
! b2697cc5c9f4457b27d4c264e8407fc8  gcc/testsuite/rust/compile/torture/generics11.rs
! 05d52a3a14b8316ba830e1ea730a3295  gcc/testsuite/rust/compile/torture/generics12.rs
! db851b2fea371e2916ed5435d3bc7f80  gcc/testsuite/rust/compile/torture/generics13.rs
! 0f930b04d60b6ac62e2deefc8e7e3ac2  gcc/testsuite/rust/compile/torture/generics14.rs
! 6441550ec69066b45ae93335066e9593  gcc/testsuite/rust/compile/torture/generics15.rs
! 9c0802697ebed4a4d7e4e9172637e275  gcc/testsuite/rust/compile/torture/generics16.rs
! 2214b3aa630479332cdbbb106394054d  gcc/testsuite/rust/compile/torture/generics17.rs
! d9d7d8c489196c9a6c93567d0edd8ce0  gcc/testsuite/rust/compile/torture/generics18.rs
! 47151d7ec62f6bfb2de4e8ea5bfd9442  gcc/testsuite/rust/compile/torture/generics19.rs
! 9c90b4767a1b8ed98fd538e870c5b91c  gcc/testsuite/rust/compile/torture/generics2.rs
! 70cc9131186fad582a3be7fb4a33fc09  gcc/testsuite/rust/compile/torture/generics20.rs
! d1019e1ecc6b6bb4492444918e309ac6  gcc/testsuite/rust/compile/torture/generics21.rs
! 9c2604f90bf58fa95df39fad20cda120  gcc/testsuite/rust/compile/torture/generics22.rs
! 6975f6b51450a7b4085785ab2e9cef58  gcc/testsuite/rust/compile/torture/generics23.rs
! 4ddae093d8041c88576cb979d0f275d5  gcc/testsuite/rust/compile/torture/generics24.rs
! 199f3b2a701734a9a1a5110a68c68725  gcc/testsuite/rust/compile/torture/generics25.rs
! 5aa5968e934404978f5864bc1db0b051  gcc/testsuite/rust/compile/torture/generics26.rs
! a68de14d9507aaeceb6657f4512e3638  gcc/testsuite/rust/compile/torture/generics27.rs
! e993964b19f3868f0e783d56b28cb59c  gcc/testsuite/rust/compile/torture/generics28.rs
! 1b2718ceda8c540bebdcf901cec2d17f  gcc/testsuite/rust/compile/torture/generics29.rs
! 133ba33a6bb38cd49660c3969da8c5b1  gcc/testsuite/rust/compile/torture/generics3.rs
! 7f886438800de6006de15f375b5a81a1  gcc/testsuite/rust/compile/torture/generics30.rs
! 182632540dd7df72ff8b5c42353f40c0  gcc/testsuite/rust/compile/torture/generics31.rs
! 1f9762fbcf921d6b0f6ca48d605a477a  gcc/testsuite/rust/compile/torture/generics32.rs
! 9a77e5d1b23834a3c0d1b4e8ccc935c9  gcc/testsuite/rust/compile/torture/generics4.rs
! 483296edb928d44c7fe068c809c63f6a  gcc/testsuite/rust/compile/torture/generics5.rs
! 406b86ae2686701e4025a6edc7d38367  gcc/testsuite/rust/compile/torture/generics6.rs
! 0c16fbff0f5be8e1e807134374491f7b  gcc/testsuite/rust/compile/torture/generics7.rs
! 061722f813044a39c5e6add379e2361d  gcc/testsuite/rust/compile/torture/generics8.rs
! 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
! 5a4fa3b5df30ae14697c9542b49aa6fb  gcc/testsuite/rust/compile/torture/ifunaryexpr.rs
! 920a12b829b8f984526c871e31cbf212  gcc/testsuite/rust/compile/torture/impl_block1.rs
! 3feb539a3f0b8e4e51fe4d0a3c63fdb4  gcc/testsuite/rust/compile/torture/impl_block2.rs
! 77b149fb26a75cf6fa0484833034954c  gcc/testsuite/rust/compile/torture/impl_block3.rs
! e6ca0f899f79ff3ab33db86267a4fa7d  gcc/testsuite/rust/compile/torture/impl_block_unused.rs
! 05c689f230ac5a87f83bff028418698e  gcc/testsuite/rust/compile/torture/implicit_returns1.rs
! 513b61c876729d12da26c3f39e7abd3a  gcc/testsuite/rust/compile/torture/infer_type1.rs
! ee57cea6d4167d2f5a2c826ae72aa749  gcc/testsuite/rust/compile/torture/inner_attributes.rs
! 5d4b318bf8adfb7808db0e4f3513deac  gcc/testsuite/rust/compile/torture/integer_inference_var1.rs
! c38d658293c258583fcb0ad0d0aa7271  gcc/testsuite/rust/compile/torture/integer_inference_var2.rs
! a41ad9d29fc8cc2864d3b3d1da781fe4  gcc/testsuite/rust/compile/torture/integer_inference_var3.rs
! d98f733774408fbc7514e5b75b429cca  gcc/testsuite/rust/compile/torture/integer_inference_var4.rs
! 31b1b4b7d065b79b397ca6e80713ceb3  gcc/testsuite/rust/compile/torture/integer_inference_var5.rs
! f469e2f4fbffc501a3af510d57f34eee  gcc/testsuite/rust/compile/torture/integer_types.rs
! 906c1f27e3997d318e9ced007c8ebfd6  gcc/testsuite/rust/compile/torture/intrinsics-2.rs
! e3188dd1c7e160729f1e8a5729872685  gcc/testsuite/rust/compile/torture/intrinsics-3.rs
! dcb1a07fb0aba84c09789af4ce07af3f  gcc/testsuite/rust/compile/torture/intrinsics-4.rs
! 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
! eb9a18a11a36ee7eff79d3a3a90ad645  gcc/testsuite/rust/compile/torture/issue-1024.rs
! a1a13eab8bcde2ebbf6e34eb2ebdc501  gcc/testsuite/rust/compile/torture/issue-1075.rs
! c51c4090ceb7ff2903431e4a9e718bdb  gcc/testsuite/rust/compile/torture/issue-1432.rs
! 406d54681d65b703831615467b4b2080  gcc/testsuite/rust/compile/torture/issue-1434.rs
! 0a94e4e590827340ac355febfaf48a28  gcc/testsuite/rust/compile/torture/issue-1506.rs
! d2ea54fc5123b7133cb502bb359f4643  gcc/testsuite/rust/compile/torture/issue-1555.rs
! 57afbe29d9c276c8f0cc0ff3f4fd06a1  gcc/testsuite/rust/compile/torture/issue-368.rs
! 1ca37ba8abf7606ed2782a4540814137  gcc/testsuite/rust/compile/torture/issue-808.rs
! 8147ad365b7b87ab30cc3b1052ac4872  gcc/testsuite/rust/compile/torture/issue-862.rs
! a00e20788944e7fa491d3d02050c4c95  gcc/testsuite/rust/compile/torture/issue-893-2.rs
! 96b6794763231168699397f0622edecc  gcc/testsuite/rust/compile/torture/issue-893.rs
! 29595aa1cff98b0f7c31b0ed5c6aebdf  gcc/testsuite/rust/compile/torture/lazybooleanexpr_function.rs
! c10b4099a456471bb802b8619bf1d0ce  gcc/testsuite/rust/compile/torture/lifetime1.rs
! 6c4d9e27b81996de7d2fe38f1889e809  gcc/testsuite/rust/compile/torture/literals1.rs
! 5436e5021544624f5d914c619ede242c  gcc/testsuite/rust/compile/torture/loop1.rs
! 569683530539f1513d7dfd077d8655dd  gcc/testsuite/rust/compile/torture/loop2.rs
! 92263c30af29bc34b45c066bd9540389  gcc/testsuite/rust/compile/torture/loop3.rs
! a5ea45ff3f424b52045901564e91727b  gcc/testsuite/rust/compile/torture/loop4.rs
! 2a731f676b729fbdbd60950b6c1d414e  gcc/testsuite/rust/compile/torture/loop5.rs
! 0deba5a9492af06167afd85b5aae10f7  gcc/testsuite/rust/compile/torture/loop6.rs
! a2f062effffd93b9d4d03f11cc887052  gcc/testsuite/rust/compile/torture/loop7.rs
! 860e13cc132eedc2762390e4369b7571  gcc/testsuite/rust/compile/torture/loop8.rs
! ca9dd83628017851a8b3df880ee109e4  gcc/testsuite/rust/compile/torture/macro-issue1403.rs
! 0fe7135c253e1779307b62895e7896f6  gcc/testsuite/rust/compile/torture/macro_as_expr.rs
! c0bfaa09dece2bd9a9a8d9ccb1a8d74a  gcc/testsuite/rust/compile/torture/match1.rs
! f18ca58ac8c829be8dded35e104f53db  gcc/testsuite/rust/compile/torture/methods1.rs
! 823b6eff156f670d2aad9e053ba7875d  gcc/testsuite/rust/compile/torture/methods2.rs
! 3a32b14d3786cd73a15f20a723dbf526  gcc/testsuite/rust/compile/torture/methods3.rs
! 537d4d6c56d0b2442c41d69f77dd5725  gcc/testsuite/rust/compile/torture/mod-nameresolve.rs
! 447aba16aa7e276048faea7ba27a7bea  gcc/testsuite/rust/compile/torture/mod1.rs
! eae809c284afe8f3d4ca29d7b61dfeb2  gcc/testsuite/rust/compile/torture/mod2.rs
! a23c36b851ab81323eb71eda6f576132  gcc/testsuite/rust/compile/torture/mod3.rs
! d1e08ad9924d246f8402392cdfdcf5bc  gcc/testsuite/rust/compile/torture/modules/valid_path.rs
! 5e2f80b4dea8a468b3c354b206e9a349  gcc/testsuite/rust/compile/torture/must_use1.rs
! a4ae03a1a0dfacb8e11195dc839c5fd1  gcc/testsuite/rust/compile/torture/must_use2.rs
! 1c8f90f487042a33bb8e0acf08090e60  gcc/testsuite/rust/compile/torture/name_resolve1.rs
! 0d384f2eff5a12ea261d549e0115dd38  gcc/testsuite/rust/compile/torture/negation_function.rs
! 072ec96cc0b4beeeaa8ff3e1732f82e4  gcc/testsuite/rust/compile/torture/nested_fn1.rs
! 025bde78888e090048811d489549bb39  gcc/testsuite/rust/compile/torture/nested_fn2.rs
! dfa972595ce960e7bcf241361e3dbbf7  gcc/testsuite/rust/compile/torture/nested_struct1.rs
! 767b1f4d6e5547d33f8529d8b59b3513  gcc/testsuite/rust/compile/torture/never_type1.rs
! 814385cb7dcdc27aede29309bce0c3cd  gcc/testsuite/rust/compile/torture/not_shebang.rs
! f4a2aa66a4c4665f1875940b26eee985  gcc/testsuite/rust/compile/torture/not_shebang_block_comment.rs
! 9fbc5a9fa9d3c08941827115e1fd4741  gcc/testsuite/rust/compile/torture/not_shebang_comment.rs
! 1185529fd28001be1092c9fa202f9f1d  gcc/testsuite/rust/compile/torture/not_shebang_multiline_comment.rs
! 37c3b775f772f4708128f6027e4814a4  gcc/testsuite/rust/compile/torture/not_shebang_spaces.rs
! 7bb7007e218d70f518b100ce80dda102  gcc/testsuite/rust/compile/torture/parameter_usage1.rs
! dded9e8144069d4e60ad55cc51f7de67  gcc/testsuite/rust/compile/torture/parens1.rs
! 658046990826e4e71acd11340df976c6  gcc/testsuite/rust/compile/torture/phantom_data.rs
! d6398d24645efaf33f81b4a0ef4191db  gcc/testsuite/rust/compile/torture/pointer1.rs
! f0959ff1bd276d250ccc42f37bc85bdc  gcc/testsuite/rust/compile/torture/primconsts.rs
! 86bd151b079ea074d3f82107f256da13  gcc/testsuite/rust/compile/torture/prims_struct_eq.rs
! c9a952038b3c64a2ff4d80788a35f854  gcc/testsuite/rust/compile/torture/range-lang-item1.rs
! 6cd9f44ec6aba9d36d17df7766fcccf7  gcc/testsuite/rust/compile/torture/raw_identifiers.rs
! f8a99c53051766f9e444d92c260fefc1  gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs
! b47fc558f700188bb4d2e500abbcdc80  gcc/testsuite/rust/compile/torture/recursive_fn1.rs
! 385fe0e0389af5f147a93864f4ff403a  gcc/testsuite/rust/compile/torture/return_function.rs
! 42eb8d3ecf2dbf38e572bb4467d2620c  gcc/testsuite/rust/compile/torture/scoping1.rs
! 884af9078907e478ec37cc09ebee07c0  gcc/testsuite/rust/compile/torture/self_type1.rs
! 214b4cb816cfa2765943b5abb1ca5b25  gcc/testsuite/rust/compile/torture/shadow1.rs
! 7160f0834357ccab131fad8abb3f56a3  gcc/testsuite/rust/compile/torture/shadow2.rs
! 60df959f51b786e01de5ae4a395febc0  gcc/testsuite/rust/compile/torture/shebang.rs
! c69ed76a8220e239b633155dac6d42de  gcc/testsuite/rust/compile/torture/shebang_plus_attr.rs
! 5338d7ab3bfddd125f08e26dd879ff83  gcc/testsuite/rust/compile/torture/shebang_plus_attr2.rs
! b34ff12bc54ecc479386b13aae00e3e0  gcc/testsuite/rust/compile/torture/static_function.rs
! a5acfed74ed9a3e1e49ae8edfbcc2358  gcc/testsuite/rust/compile/torture/static_var1.rs
! 3364b7fcad92499312b0abc1451e31fd  gcc/testsuite/rust/compile/torture/stmt_with_block1.rs
! d8d918da82d5e21f625668fc7ba949ec  gcc/testsuite/rust/compile/torture/str1.rs
! 287e52ca3f72a2017abca46f03e69fa7  gcc/testsuite/rust/compile/torture/struct_access1.rs
! ea8bfc82833f20ff34dcc6f6bc27445a  gcc/testsuite/rust/compile/torture/struct_base_init_1.rs
! 6f3237cdeeb445f04937aca5a522bcd2  gcc/testsuite/rust/compile/torture/struct_decl.rs
! 51c46aeb3e268e02cd296e9df9588d7d  gcc/testsuite/rust/compile/torture/struct_init.rs
! 3b2b873fcdf89be79a3bfc603b6d060e  gcc/testsuite/rust/compile/torture/struct_init_10.rs
! b2a3b370e68df47caf0800896c52d14d  gcc/testsuite/rust/compile/torture/struct_init_11.rs
! 5944f7cd26a3e2a9fc4678d1b0f2f354  gcc/testsuite/rust/compile/torture/struct_init_2.rs
! 3a9072e81232f373b7d2151f7b8f0534  gcc/testsuite/rust/compile/torture/struct_init_3.rs
! ee7382b0f606db87f9c72e296c629917  gcc/testsuite/rust/compile/torture/struct_init_4.rs
! 07826d147baa6c252be0edca8bf09e2d  gcc/testsuite/rust/compile/torture/struct_init_5.rs
! 282583f0420a6552bb36304796342bac  gcc/testsuite/rust/compile/torture/struct_init_6.rs
! 98289abf829d048df50a67c6babdffe5  gcc/testsuite/rust/compile/torture/struct_init_7.rs
! 2ca1ceb27b8f20b6041cf81949f17264  gcc/testsuite/rust/compile/torture/struct_init_8.rs
! a880259cc4562c6b06c0ff44af84c26e  gcc/testsuite/rust/compile/torture/struct_init_9.rs
! bf6541107d91ebc0ef79cd469d3f4bee  gcc/testsuite/rust/compile/torture/top_attr.rs
! d4f57670a81afad59941a6c623282365  gcc/testsuite/rust/compile/torture/traits1.rs
! 61886dbe934d68917b4abea481d0bd11  gcc/testsuite/rust/compile/torture/traits10.rs
! f145bf1f2e7b55ca9b25a7316db60ce2  gcc/testsuite/rust/compile/torture/traits11.rs
! 447dd2f36086393aa87ff7ee8c86b8af  gcc/testsuite/rust/compile/torture/traits12.rs
! 50447cafdc2ba6810aba0da218731a2f  gcc/testsuite/rust/compile/torture/traits13.rs
! 51626e7b4a464cfff01baa71cd4330db  gcc/testsuite/rust/compile/torture/traits14.rs
! 531b1c96a82bdc1b9685543b827bd08c  gcc/testsuite/rust/compile/torture/traits15.rs
! 368d3bce3b2fd0a8488db698a170dd61  gcc/testsuite/rust/compile/torture/traits16.rs
! c8c47f8e55013811bc4996f575619fbc  gcc/testsuite/rust/compile/torture/traits17.rs
! de6056a9a0306d6a5caade358268bf8e  gcc/testsuite/rust/compile/torture/traits18.rs
! af0a278cecf22cabd9cce06c4aaba2bf  gcc/testsuite/rust/compile/torture/traits19.rs
! 47505dfdbb68c3690cb03333aaa75fd7  gcc/testsuite/rust/compile/torture/traits2.rs
! 24a0048b71276f60c8a283e46d795534  gcc/testsuite/rust/compile/torture/traits3.rs
! 4b4c1672882620f4efe5b069ce7a7e70  gcc/testsuite/rust/compile/torture/traits4.rs
! 5dcbe7a312d4506f459c969c4c583bb5  gcc/testsuite/rust/compile/torture/traits5.rs
! c17e5e7936f9df88e607fa6b4b726d9d  gcc/testsuite/rust/compile/torture/traits6.rs
! 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
! 09cb66c0ec4c5093bd43e3dcb0a5fca7  gcc/testsuite/rust/compile/torture/tuple_enum_variants.rs
! bae016c82821d665347de4f15da7e8c4  gcc/testsuite/rust/compile/torture/tuple_field_access.rs
! f7b292d171cb3aa823c4cf623afee37e  gcc/testsuite/rust/compile/torture/tuple_function.rs
! 5a8d212733102f4030263d401808799e  gcc/testsuite/rust/compile/torture/tuple_index.rs
! ebe873609098fe274f6bfc9bcfee24f0  gcc/testsuite/rust/compile/torture/tuple_struct1.rs
! 82b8dcf0ca459ffcb7c908865ec096ce  gcc/testsuite/rust/compile/torture/tuple_struct2.rs
! c85b4725fd765fa8f11f621592503d4c  gcc/testsuite/rust/compile/torture/tuple_struct_unit.rs
! 3e8efce6a9f5b4d962fc29080cc6d3ce  gcc/testsuite/rust/compile/torture/tuple_struct_unused.rs
! 91653d43d26472196651c1eb02a9236c  gcc/testsuite/rust/compile/torture/type-alias1.rs
! 1a3c0471582bf7ac4e909100ef47aeb9  gcc/testsuite/rust/compile/torture/type-alias2.rs
! df45b6a3410d2f09b93837757f554415  gcc/testsuite/rust/compile/torture/type_infer1.rs
! 5f4205c009b2ccf860b3ba17510c2fbc  gcc/testsuite/rust/compile/torture/type_infer2.rs
! 49b75d1bb6dbc6bd60b0a47ec849da30  gcc/testsuite/rust/compile/torture/type_infer3.rs
! ec86251919e467ab5186531cd6a92662  gcc/testsuite/rust/compile/torture/type_infer4.rs
! 9413710487c9cd03848ff0631f1c45f2  gcc/testsuite/rust/compile/torture/type_infer5.rs
! 9a1d3397cb0d4280760f707a3e3ec180  gcc/testsuite/rust/compile/torture/type_infer6.rs
! 7eb873e0558dd7b8a986cc4f978dff4c  gcc/testsuite/rust/compile/torture/unary_operators.rs
! 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
! c460107b92fbee448a060097a3202705  gcc/testsuite/rust/compile/torture/unit_type2.rs
! aea52178c5e92e622fa835425e3334a9  gcc/testsuite/rust/compile/torture/unit_type3.rs
! 84d674e0ec8bae6f18ac4d048b46ed04  gcc/testsuite/rust/compile/torture/unit_type4.rs
! ad40fa8d55b548571a10a7820592e0d4  gcc/testsuite/rust/compile/torture/unit_type5.rs
! 2a38063c216212d1b2623241cd8047a2  gcc/testsuite/rust/compile/torture/unsafe1.rs
! bb916dc7383dfffe2bd083ac6d8b5520  gcc/testsuite/rust/compile/torture/unsafe2.rs
! b5f9a01c4ceb113cef5f95a9be82a126  gcc/testsuite/rust/compile/torture/unsafe3.rs
! 9601c13a3d8bb391d20b36ffee880e60  gcc/testsuite/rust/compile/torture/unsafe4.rs
! 4da7a1cfccf50708481d6149ee3dc497  gcc/testsuite/rust/compile/torture/unused.rs
! 36952c647d326deae7313e17cfa35c71  gcc/testsuite/rust/compile/torture/unused1.rs
! 011e23a9b276286f198468298bc8fb7c  gcc/testsuite/rust/compile/torture/unused_struct.rs
! 9fcdc00fb6fbe7500a819719c27a59e1  gcc/testsuite/rust/compile/torture/unused_struct_field.rs
! e29cac3aeb678adaa01b17ac8e9018f8  gcc/testsuite/rust/compile/torture/usize1.rs
! 836ea2f9678655a119c8f84c64006314  gcc/testsuite/rust/compile/torture/utf8_identifiers.rs
! 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
! 8fc5acce95af60347e458ab63a37bc0e  gcc/testsuite/rust/compile/traits11.rs
! 25f3ed6b4486b4561a145b1bba89af44  gcc/testsuite/rust/compile/traits12.rs
! 7d02d6279266c95632aa93eff2485a8b  gcc/testsuite/rust/compile/traits2.rs
! 7eac844ed096af032284a4fb4a80de53  gcc/testsuite/rust/compile/traits3.rs
! a225b4c57ba672661c1d29da450cefc9  gcc/testsuite/rust/compile/traits4.rs
! 49e1b15d3c9095e0f37e9505924bfabc  gcc/testsuite/rust/compile/traits5.rs
! 70d0cd3be0d16286ab28eb106f68408d  gcc/testsuite/rust/compile/traits6.rs
! 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/testsuite/rust/compile/tuple_struct1.rs
! 3a1197db3bd55512ebf6f3f6c9cc82b4  gcc/testsuite/rust/compile/tuple_struct2.rs
! 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
! 5575f8e36d7f8fc301e84dfb3a182fa3  gcc/testsuite/rust/compile/unsafe2.rs
! 40a486ea3c004b99b422ac2e7710de83  gcc/testsuite/rust/compile/unsafe3.rs
! 4e9524c05d08f52841deb8cd1659ea8a  gcc/testsuite/rust/compile/unsafe4.rs
! 45e71f540ac5e3c0f5540fe1226f5e64  gcc/testsuite/rust/compile/unsafe5.rs
! dc6dd39f63dac8868fe265acb5c3a242  gcc/testsuite/rust/compile/unsafe6.rs
! 9746952d340627b4fb744b9ec1cee076  gcc/testsuite/rust/compile/unsafe7.rs
! 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/testsuite/rust/compile/while_let_expr.rs
! 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
! 08a045beac132b26b7d1b09ee02a7bd4  gcc/testsuite/rust/execute/torture/atomic_store.rs
! 64ec49dcf61c1ec23016e5eb7627a5b7  gcc/testsuite/rust/execute/torture/block_expr1.rs
! 28dbae897d625ca0f50d65ca43deed01  gcc/testsuite/rust/execute/torture/builtin_abort.rs
! 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
! 1c73c33a19ac89a36deb00b85b6f2cee  gcc/testsuite/rust/execute/torture/cfg-tail.rs
! ccc2591f70377149f4aa4e23d900dba6  gcc/testsuite/rust/execute/torture/cfg1.rs
! 976fd017b8b7b7382385b4f64820e968  gcc/testsuite/rust/execute/torture/cfg2.rs
! 9783ede29592db2668bfdad04aa365bc  gcc/testsuite/rust/execute/torture/cfg3.rs
! 7982b994d6eb88a809b882ab3b263b33  gcc/testsuite/rust/execute/torture/cfg4.rs
! 8686a31954a6b1f67d910f849e9edc68  gcc/testsuite/rust/execute/torture/cfg5.rs
! 660b7127e3ceadd40411c5cec5bc6a03  gcc/testsuite/rust/execute/torture/closure1.rs
! cc38817bf71a3f294f3189058431b45d  gcc/testsuite/rust/execute/torture/closure2.rs
! c32fe7a964c76791db55140ea8246c43  gcc/testsuite/rust/execute/torture/closure3.rs
! e81ff8419c8b0085aa761fb8da969227  gcc/testsuite/rust/execute/torture/closure4.rs
! 68b76cd79b817b8e9315c05cd60c81f6  gcc/testsuite/rust/execute/torture/coercion1.rs
! 27dd0332fd73b2accf878d9b7db118d3  gcc/testsuite/rust/execute/torture/coercion2.rs
! 497b0c18909c49a30e2b53c15f8fc527  gcc/testsuite/rust/execute/torture/coercion3.rs
! 16aaa17474f319d84939e58bd3191fe6  gcc/testsuite/rust/execute/torture/const_fold1.rs
! 241a2be1d8747c41bb6696abef8fca56  gcc/testsuite/rust/execute/torture/const_fold2.rs
! fd85d0412a3b44dc18646d7a2f23ed44  gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
! 15aeecda0667a9b6fb7dc5fa85ca5d7d  gcc/testsuite/rust/execute/torture/decl_macro1.rs
! 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
! b6b074a8a691f6f9edb8191b820c0ad6  gcc/testsuite/rust/execute/torture/issue-1852-1.rs
! da3f6f2847d41be5c388e50b18051e12  gcc/testsuite/rust/execute/torture/issue-1852.rs
! ca9c7c4413199f843e3b51677965b5b4  gcc/testsuite/rust/execute/torture/issue-2052.rs
! 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
! f7a4dec5c495bdc2a5580c6b2ff9a054  gcc/testsuite/rust/execute/torture/issue-858.rs
! 449e42630eb5fd571755658ebbb341c4  gcc/testsuite/rust/execute/torture/issue-976.rs
! a7f4a565f46d8c8589434308e7968386  gcc/testsuite/rust/execute/torture/issue-995.rs
! 1c32d69ae48847a7750476692b1dc899  gcc/testsuite/rust/execute/torture/iter1.rs
! e5d4fd47103c9b2ec08ec98416082eb9  gcc/testsuite/rust/execute/torture/let-pattern-1.rs
! b9e7dd193296598753c75fbfaae447bd  gcc/testsuite/rust/execute/torture/loop-condition-eval.rs
! d7e1088b7c9ae3714d6c9ac6aeb13b18  gcc/testsuite/rust/execute/torture/macro-issue1426.rs
! 6fcd51511bc08d2f26a63f6e5ce98020  gcc/testsuite/rust/execute/torture/macro_use1.rs
! fef7dfee1986a4975d9f025b245800a7  gcc/testsuite/rust/execute/torture/macros1.rs
! 31d0eb8ff0aaf8e4812d0b436cb2d29f  gcc/testsuite/rust/execute/torture/macros10.rs
! 9e148fef1f01dcaf28d627321fe8632f  gcc/testsuite/rust/execute/torture/macros11.rs
! 6ddcf4beca028d3c8ab4ae7105875f48  gcc/testsuite/rust/execute/torture/macros12.rs
! ae9e9ba30ebd0d0bfa3c86b0a22f0dde  gcc/testsuite/rust/execute/torture/macros13.rs
! 406cd9f64ec3e5088ddbb7652f5ea817  gcc/testsuite/rust/execute/torture/macros14.rs
! 8ad6983cf3ef2c54ae76580252f1297a  gcc/testsuite/rust/execute/torture/macros16.rs
! da3cc94e0c8aa9565e49d1bd27995cf8  gcc/testsuite/rust/execute/torture/macros17.rs
! 0d871981ac386df32d6bb372828f424c  gcc/testsuite/rust/execute/torture/macros18.rs
! 6e3068ee92dcbcdee53be16df2a46590  gcc/testsuite/rust/execute/torture/macros19.rs
! 9280e6a24c6a4499e7b669ed932e5d6f  gcc/testsuite/rust/execute/torture/macros2.rs
! b281220ae153f399dd51618f42474958  gcc/testsuite/rust/execute/torture/macros20.rs
! a21c287a31b6ae6ae179b1e5dfa2ac1e  gcc/testsuite/rust/execute/torture/macros21.rs
! 4275d231e07ef7914d5814da80620035  gcc/testsuite/rust/execute/torture/macros22.rs
! 25ca7869554b1448eec52e0fbecb8c59  gcc/testsuite/rust/execute/torture/macros23.rs
! 67746d30dadbf3035d2d8852c7dbc69c  gcc/testsuite/rust/execute/torture/macros24.rs
! eadfe7cba5cb9c5ec331deb7f77f0dbc  gcc/testsuite/rust/execute/torture/macros25.rs
! 105c0886cf1eed36dc2251a200d0211b  gcc/testsuite/rust/execute/torture/macros26.rs
! c3c01ded1bb615ed722fd3e375605462  gcc/testsuite/rust/execute/torture/macros27.rs
! 89bb295740d60b5076b09ae3bcc5e8cc  gcc/testsuite/rust/execute/torture/macros28.rs
! 537527f89c1e8934f8ae9a83f325faf3  gcc/testsuite/rust/execute/torture/macros29.rs
! c4ca94d1444b919b584963996a8b5c93  gcc/testsuite/rust/execute/torture/macros3.rs
! f1af5dc0f2bfff937199c36b0c439a26  gcc/testsuite/rust/execute/torture/macros30.rs
! 37aaf50e3e76b27620a70209cf15c330  gcc/testsuite/rust/execute/torture/macros31.rs
! 402b3c904e6681716d7e1f2a8ded8bc7  gcc/testsuite/rust/execute/torture/macros4.rs
! f987c9a3d4082272d0fdffecda3a5982  gcc/testsuite/rust/execute/torture/macros5.rs
! 20d3279749c0860156f1e8398eeffedb  gcc/testsuite/rust/execute/torture/macros6.rs
! 52d5a486adcbb425f6b447d97cd3d1a2  gcc/testsuite/rust/execute/torture/macros7.rs
! addb70cf1de08173fd0c2abd2b1b0aff  gcc/testsuite/rust/execute/torture/macros8.rs
! a162d48d44f2ab3e7366e4fcd9aba1d3  gcc/testsuite/rust/execute/torture/macros9.rs
! 14d4601e2d037806196aad97cb37c69f  gcc/testsuite/rust/execute/torture/match1.rs
! bc6b669a3a8b1821d1dd4520934053ef  gcc/testsuite/rust/execute/torture/match2.rs
! bb8cc04aaa6e095f9c9dab335699a42e  gcc/testsuite/rust/execute/torture/match3.rs
! 70b31334899ba1dcef9558a5080a554d  gcc/testsuite/rust/execute/torture/match_bool1.rs
! f16dcffd54381b1ed25a88227c4b5ad7  gcc/testsuite/rust/execute/torture/match_byte1.rs
! 5da0a3231adcc1d108f37896717bf936  gcc/testsuite/rust/execute/torture/match_char1.rs
! 05f39916392f58fb43d3649618db0a9d  gcc/testsuite/rust/execute/torture/match_int1.rs
! 3951dec402422d29fa7c4826dc443f65  gcc/testsuite/rust/execute/torture/match_loop1.rs
! 12404878b44abb6ea00fbaefc573cc2b  gcc/testsuite/rust/execute/torture/match_range1.rs
! d53a9a5ff7302a95bec132cd6bba3962  gcc/testsuite/rust/execute/torture/match_range2.rs
! b6c1253a40c7a21db9fac6062ae50a91  gcc/testsuite/rust/execute/torture/match_tuple1.rs
! bd1d405cfc6bdbadc0c47d3aab4b794b  gcc/testsuite/rust/execute/torture/matches_macro.rs
! 7985e85176bb59d44b2aac56f2ca81c0  gcc/testsuite/rust/execute/torture/method1.rs
! 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
! 4e5ed0e919b2c59a3b848e46a7384626  gcc/testsuite/rust/execute/torture/operator_overload_10.rs
! 6a53583664982c8979b58e254484e47c  gcc/testsuite/rust/execute/torture/operator_overload_11.rs
! 567b3a868cbdcf7a9cf7450fba4d1ffe  gcc/testsuite/rust/execute/torture/operator_overload_12.rs
! 9efcdefa14aec863f1eca165f6aa7b91  gcc/testsuite/rust/execute/torture/operator_overload_2.rs
! c779dfb967dbac26990ef5b03b51002a  gcc/testsuite/rust/execute/torture/operator_overload_3.rs
! 2438b0880a7abb7136f5326bc8019e6e  gcc/testsuite/rust/execute/torture/operator_overload_4.rs
! 19e3b4c153ef357fce3ed1109a69b79d  gcc/testsuite/rust/execute/torture/operator_overload_5.rs
! fbcd41be2b08da7908ab89e54b177cfd  gcc/testsuite/rust/execute/torture/operator_overload_6.rs
! 0c4471748f5ea55d5f3f2ef107302e7e  gcc/testsuite/rust/execute/torture/operator_overload_7.rs
! 888c1a26ac2690b214ed602ad5f13bdb  gcc/testsuite/rust/execute/torture/operator_overload_8.rs
! 590e9f21c9a0ed350404c74654ae9d37  gcc/testsuite/rust/execute/torture/operator_overload_9.rs
! b1bd8293d4d79d471bcee8c9628e98f8  gcc/testsuite/rust/execute/torture/overflow1.rs
! 0263ed17cb91d2e5c2d8bcbbb76a0202  gcc/testsuite/rust/execute/torture/prefetch_data.rs
! 5988fffedf274ba8d07caa5e3d9d12d4  gcc/testsuite/rust/execute/torture/ref-pattern1.rs
! dd58e1082f60a5368ebe81642f8cc0f0  gcc/testsuite/rust/execute/torture/ref-pattern2.rs
! 5835ff2a0ce23dfa254a210e8c01c3f0  gcc/testsuite/rust/execute/torture/slice-magic.rs
! 059de3f8e1a277e43310a9ccdc1749a9  gcc/testsuite/rust/execute/torture/slice-magic2.rs
! afc782817d48f2259095dafb108d9f80  gcc/testsuite/rust/execute/torture/slice1.rs
! 7f58cd080e9071bf9aa8b7a9da902ff4  gcc/testsuite/rust/execute/torture/str-layout1.rs
! d45464967a452ff175b27ff3b0890b31  gcc/testsuite/rust/execute/torture/str-zero.rs
! 219f89de9c1c232ed85025aff0b4f1dc  gcc/testsuite/rust/execute/torture/trait1.rs
! a6af7c4b862f663d2b386821ea87e7d4  gcc/testsuite/rust/execute/torture/trait10.rs
! 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
! 198c11281dc9c98375428c52c0dae3fa  gcc/testsuite/rust/execute/torture/trait5.rs
! 863ec14b61b319481d8a4c9967cd2f9f  gcc/testsuite/rust/execute/torture/trait6.rs
! cc2cdb763843ab4c3244cd4ac3003bc6  gcc/testsuite/rust/execute/torture/trait7.rs
! ecafe513273e63e71cd928b53b02d5c9  gcc/testsuite/rust/execute/torture/trait8.rs
! c11d46231911975a133e7067ada8776b  gcc/testsuite/rust/execute/torture/trait9.rs
! 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
--- 129205,130848 ----
  10d4ea2c47febed0bbc5688f380b3439  gcc/testsuite/objc/execute/static-2.m
  a57e521085412bbde60e78229ace4fd5  gcc/testsuite/objc/execute/trivial.m
  2d60a6650416d3bcd6a3f5f1fb61dece  gcc/testsuite/objc/execute/va_method.m
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/borrowck/borrowck.exp
! 597536323d0794c559a80baf4b977ea6  gcc/testsuite/rust/borrowck/position_dependant_outlives.rs
! d95192d1d16d52ffe4ad375d31d4b083  gcc/testsuite/rust/borrowck/reference.rs
! d5d93070e0af9b3ee4ced2164aa15b05  gcc/testsuite/rust/borrowck/return_ref_to_local.rs
! 2c4c61a5a5c809e1241b11195560e167  gcc/testsuite/rust/borrowck/subset.rs
! bbf152955f2d0b178e8d4bcc797a0e84  gcc/testsuite/rust/borrowck/test_move.rs
! c8a75c64b1ddd39ba49ade2ba1695722  gcc/testsuite/rust/borrowck/test_move_behind_reference.rs
! 83f8ead851204a34b55f777d37b9123f  gcc/testsuite/rust/borrowck/test_move_conditional.rs
! 8ed7beddaf8abe5e3f66fd1b7d2bdbb4  gcc/testsuite/rust/borrowck/tmp.rs
! e36e647b5a311c6466dfd307ac08b544  gcc/testsuite/rust/borrowck/use_while_mut.rs
! 82d41f07e14ce27d340083067fd9f350  gcc/testsuite/rust/borrowck/use_while_mut_fr.rs
! 272e2f777a02201e14490c8a16fcd8fb  gcc/testsuite/rust/borrowck/well_formed_function_inputs.rs
! 5ff60a54d693543979f44e9cdfdff4c2  gcc/testsuite/rust/compile/abi-options1.rs
! 7257fc6e859c616c3043a69c5f2d90d8  gcc/testsuite/rust/compile/abi-vardaic.rs
! feab21cebab558e3fac8274c794cfeb7  gcc/testsuite/rust/compile/additional-trait-bounds1.rs
! af1e4e0585c1ff2ab7f9c23d43aec88d  gcc/testsuite/rust/compile/additional-trait-bounds2.rs
! af1e4e0585c1ff2ab7f9c23d43aec88d  gcc/testsuite/rust/compile/additional-trait-bounds2nr2.rs
! ef0ef21241eae0c4d4c8f6a7da832428  gcc/testsuite/rust/compile/all-cast.rs
! dc6c0c21953da6a003ed7e4ea2831494  gcc/testsuite/rust/compile/array3.rs
! cf008cdbb160a8d4eded875132b8af0d  gcc/testsuite/rust/compile/array4.rs
! bef0b63cc1001918d661e9e13db5ef66  gcc/testsuite/rust/compile/array_empty_list.rs
! 57922881fbda5f036b116d8caa6456d0  gcc/testsuite/rust/compile/arrays1.rs
! b844641ffa836259966da8bbdb705602  gcc/testsuite/rust/compile/arrays2.rs
! 0e211ddb899f5f3123a498cfad360aa2  gcc/testsuite/rust/compile/assume.rs
! 1eefc880259227fbe7000d396bfa5565  gcc/testsuite/rust/compile/attr-macro.rs
! 86f36986db04879d961e8610ff5743b5  gcc/testsuite/rust/compile/attr-mismatch-crate-name.rs
! 4a8cb1f4a8775d0891e89dad8e64f191  gcc/testsuite/rust/compile/attr_cold.rs
! e5ed37869d42b1e44616a14c50faa71b  gcc/testsuite/rust/compile/attr_deprecated.rs
! be490469be5b121fa85c69dc5c8d9ec6  gcc/testsuite/rust/compile/attr_deprecated_2.rs
! d58f07b82fe27b2df37e171876c670f1  gcc/testsuite/rust/compile/attr_malformed_doc.rs
! 23d880c78e6e8b1c4dba728547771e5e  gcc/testsuite/rust/compile/attr_malformed_path.rs
! e79d4857087ee809b9c2f65a80122031  gcc/testsuite/rust/compile/auto_trait.rs
! d655698651f1cfaefa27d4a3f33564cb  gcc/testsuite/rust/compile/auto_trait_invalid.rs
! 25802e5725c2c02d1b7b9081c5efd177  gcc/testsuite/rust/compile/auto_trait_super_trait.rs
! 903bdfa582597054fe9cbb05a65a7909  gcc/testsuite/rust/compile/auto_trait_valid.rs
! fa955fe2f62b929c98e319bad0665b1d  gcc/testsuite/rust/compile/auto_traits1.rs
! 8f24cddf765969877c1d9468827f80e3  gcc/testsuite/rust/compile/auto_traits2.rs
! 7e296f12fd86e087cb9e5bc410260210  gcc/testsuite/rust/compile/auto_traits4.rs
! 5f56d0d17906e2b5b4815f92fe1c24e7  gcc/testsuite/rust/compile/bad-crate-name1.rs
! 2751866d438017a4257d49d5be5bc708  gcc/testsuite/rust/compile/bad-crate-name2.rs
! b26704b31586bd88750829d60e65bea5  gcc/testsuite/rust/compile/bad-rpit1.rs
! 0a61a463e8e672586e0342a5e64e61dc  gcc/testsuite/rust/compile/bad=file-name.rs
! 1d640f208fb9e53edcbe279f20b00832  gcc/testsuite/rust/compile/bad_as_bool_char.rs
! ef26421cba6d83fdec404048dec7e0b1  gcc/testsuite/rust/compile/bad_file_name.txt.rs
! 2e3d770c190894f275849d6dad7c9a2e  gcc/testsuite/rust/compile/bad_inner_doc.rs
! 57955fdb551ff951b69c1c56406c87e0  gcc/testsuite/rust/compile/bad_pub_enumitems.rs
! badea0ff0211813c00e8dd4b64c37d10  gcc/testsuite/rust/compile/bad_stmt_enums.rs
! 0e27001f4ee2bda8809fe5ab52443665  gcc/testsuite/rust/compile/bad_toplevel_enums.rs
! 6e5e06960180efdb3ebd350c4b978943  gcc/testsuite/rust/compile/bad_tuple_index.rs
! a81fdcb42fe8cdac19da8e1d3754e3ff  gcc/testsuite/rust/compile/bad_type1.rs
! c741636a5e6ad51c24807384332f5603  gcc/testsuite/rust/compile/bad_type2.rs
! c232d78021a4d2d5e84318548a6251c7  gcc/testsuite/rust/compile/black_box.rs
! 13fae562540b454a5e5897797377f4a3  gcc/testsuite/rust/compile/bounds.rs
! 7a959378207d735e2baccb5cc9532d88  gcc/testsuite/rust/compile/bounds1.rs
! f33e8fc4a1deb14c8248f987029d6c2b  gcc/testsuite/rust/compile/box_syntax.rs
! 37b5801c93adeef8c5f99969239c2b36  gcc/testsuite/rust/compile/box_syntax_feature_gate.rs
! 91b41e1fa1acc4ecf813b938e00fc8e4  gcc/testsuite/rust/compile/braced_macro_arm.rs
! 8cafb08a7b39753cc9f336e63efa1c3e  gcc/testsuite/rust/compile/braced_macro_statements1.rs
! 546c4b5465b0e2fa6bc3edc7c2488dce  gcc/testsuite/rust/compile/braced_macro_statements2.rs
! 438b9e47fc66fb5baab28b6c812b2c26  gcc/testsuite/rust/compile/braced_macro_statements3.rs
! 814ea7709c4f71ccb81bae4276ea218f  gcc/testsuite/rust/compile/break-rust1.rs
! f3d42a5fa0e793d38226efdb29b90d66  gcc/testsuite/rust/compile/break-rust2.rs
! 5f5081a7a43a927732dc3d0e5f051ba1  gcc/testsuite/rust/compile/break-rust3.rs
! 5135fb9aac613bc29a5a8efac4d11b6a  gcc/testsuite/rust/compile/break1.rs
! baa3a0d30775ed604f878df5231cba48  gcc/testsuite/rust/compile/break2.rs
! 0168c54787b8a0fe1adaf95ec9d34577  gcc/testsuite/rust/compile/break_continue_outside_loop.rs
! bd0c3f42f2caa1d391123da46b68a0e8  gcc/testsuite/rust/compile/break_with_value_inside_loop.rs
  3089e5cf84922d853bd7c44b22155de5  gcc/testsuite/rust/compile/broken_utf8.rs
! 7e9f1a01503b162cce7c0e3c782bf840  gcc/testsuite/rust/compile/bswap.rs
! bf288f5c0e5145fb8d4726a44c5a66a2  gcc/testsuite/rust/compile/bug-with-default-generic.rs
! 8df49cd8be0ccc61f2a2b4e3b40cadaa  gcc/testsuite/rust/compile/bytecharstring.rs
! 47f2827b01658a867a4f66627f986611  gcc/testsuite/rust/compile/canonical_paths1.rs
! 07f84ca35516d54ef5ad8684ac15669f  gcc/testsuite/rust/compile/cast1.rs
! 498aa4e0e5202b3a5830573fa9e03501  gcc/testsuite/rust/compile/cast4.rs
! b4e66700dcb4d1f8b66af65977c50bdb  gcc/testsuite/rust/compile/cast5.rs
! 143e7d3acb26f11e27d4f8331e4e6986  gcc/testsuite/rust/compile/cast_float_as_integer.rs
! 6b3c0ea17855f294c9c5cf258e01d622  gcc/testsuite/rust/compile/cast_generics.rs
! 50ae599d35ab8184cdc47add2158d88f  gcc/testsuite/rust/compile/cfg-attr.rs
! b389ad8f5a7195c0b12ddde4d067a86e  gcc/testsuite/rust/compile/cfg-core1.rs
! cb20ee4214cc9c7c758cfe7090dbd8b7  gcc/testsuite/rust/compile/cfg-core2.rs
! 4266b0dc6a29cdcbb5bac979b31cc2ae  gcc/testsuite/rust/compile/cfg-test.rs
! ba8eb2757bc78189858e9e26e5824617  gcc/testsuite/rust/compile/cfg1.rs
! 25c31c178b2020c1b5e57531d4ce8eb5  gcc/testsuite/rust/compile/cfg2.rs
! 041c24039a56283d69ec885a2c8daa0f  gcc/testsuite/rust/compile/cfg3.rs
! 4400a3c46d3e2e8e5587eb7f8d8f5215  gcc/testsuite/rust/compile/cfg4.rs
! fd3430794cae9e0c8498cd130b9f317d  gcc/testsuite/rust/compile/cfg5.rs
! bceae929921f63e108cf2b6721f481e1  gcc/testsuite/rust/compile/cfg6.rs
! c884fefd900231e35653f1a0c53cd49a  gcc/testsuite/rust/compile/changed_intrinsics.rs
! 246dda43fb2abc028d1bfb33a1857032  gcc/testsuite/rust/compile/cli_inner_attribute_injection.rs
! 144208587d1da5c72d54f5136d3aeea5  gcc/testsuite/rust/compile/closure_in_closure.rs
! 8c98b46e704d13d47cba917233ecfb0a  gcc/testsuite/rust/compile/closure_move_expr.rs
! 514b6cc95fda2022cc64dc749b80bd68  gcc/testsuite/rust/compile/closure_no_type_anno.rs
! 8324849ae1f0337b7b3300a3b10989d8  gcc/testsuite/rust/compile/cmp1.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/compile.exp
! 81007cbec0af22f948a0b6fa4bf8ac8c  gcc/testsuite/rust/compile/compiler_builtins_gate.rs
! ea8b519b5f6dc20919765a2d12253cf0  gcc/testsuite/rust/compile/complex-path1.rs
! b8caa30e14e18cfb49d1bed1ae69d8e0  gcc/testsuite/rust/compile/complex_qualified_path_in_expr.rs
! 7b21d552483815a7f5bc7562d25dff08  gcc/testsuite/rust/compile/const-issue1440.rs
! 02fd8e7a37841f01f3b3d004213940f7  gcc/testsuite/rust/compile/const1.rs
! ffbde230976ce80df05385f373e042a4  gcc/testsuite/rust/compile/const10.rs
! fd81390ede0d9920e2de0ccbbe66ca76  gcc/testsuite/rust/compile/const2.rs
! ecbe2857963b386d49d098328b28f463  gcc/testsuite/rust/compile/const3.rs
! 812d4f370699fd72ac474d62975d372c  gcc/testsuite/rust/compile/const4.rs
! 09eb88ce98f509bca47d7e59b259dc88  gcc/testsuite/rust/compile/const5.rs
! b78a2a579521491c01706597a5676059  gcc/testsuite/rust/compile/const6.rs
! 4f69c0d235e8911221bc5da83fa4e7d4  gcc/testsuite/rust/compile/const7.rs
! 8dd8dc7b5ded29f978be7b3bab84ef68  gcc/testsuite/rust/compile/const8.rs
! dca83b5c8993fc76907eb3097655216d  gcc/testsuite/rust/compile/const9.rs
! 22a01cb2ebbe0537e30254207f3d9655  gcc/testsuite/rust/compile/const_async_function.rs
! 00a3be8795c9dfc0204a0c452932ca87  gcc/testsuite/rust/compile/const_generics_1.rs
! 7c29dd168e0dc87a62c5f64455b551ac  gcc/testsuite/rust/compile/const_generics_10.rs
! 3508dea9533830e65a0de06421e9ff64  gcc/testsuite/rust/compile/const_generics_11.rs
! 702c3daa03f86b87fb35e500fb9fd289  gcc/testsuite/rust/compile/const_generics_12.rs
! c5678ef5f575fc4da59ab567df371864  gcc/testsuite/rust/compile/const_generics_13.rs
! 2d34eb2e0bc38ead046e548201ac7c37  gcc/testsuite/rust/compile/const_generics_14.rs
! 4d927a208c63330de4e3e95169160d40  gcc/testsuite/rust/compile/const_generics_15.rs
! aa4ae91bcf67a6ef68a73d9f48ecf5bb  gcc/testsuite/rust/compile/const_generics_16.rs
! ef486925e793656edfe13353fd5e96d5  gcc/testsuite/rust/compile/const_generics_17.rs
! 1e8ccb29c5210c26482ee15620d47e9a  gcc/testsuite/rust/compile/const_generics_18.rs
! ce0b494ce6565dd3ede47689d6e92e2e  gcc/testsuite/rust/compile/const_generics_19.rs
! 67e2844d293e8a4f52b74313580bbf29  gcc/testsuite/rust/compile/const_generics_2.rs
! 2ee48a865c30626f51626d223892581c  gcc/testsuite/rust/compile/const_generics_3.rs
! a2dd1503bf56cd8a78a1b0c2f5fc0b06  gcc/testsuite/rust/compile/const_generics_4.rs
! 87efe6d29e12bec29f02e869168bb641  gcc/testsuite/rust/compile/const_generics_5.rs
! 45a1a02c60b64578845c5b8cfd93280b  gcc/testsuite/rust/compile/const_generics_6.rs
! d2530f103f9b43917d1031e9c76121c5  gcc/testsuite/rust/compile/const_generics_7.rs
! 6cc14e77664e254343badf2c2bf577d7  gcc/testsuite/rust/compile/const_generics_8.rs
! a76f341ccd5fefbbc01a53f44e7feaf2  gcc/testsuite/rust/compile/const_generics_9.rs
! 25eb2b47069bab5628a45c28451d0425  gcc/testsuite/rust/compile/const_trait_fn.rs
! 6721281195cc56cd12e84384cd45cd14  gcc/testsuite/rust/compile/continue1.rs
! 3370848ae37e0693aa39989f2c545c89  gcc/testsuite/rust/compile/crate-metavar1.rs
! c05e382293596d6db07a68db7ac92ff4  gcc/testsuite/rust/compile/ctlz.rs
! 9faa922b70fcfa4e42cf0622f60be08f  gcc/testsuite/rust/compile/ctlz_nonzero.rs
! 3158b338fb88c41e9720caa331fed16d  gcc/testsuite/rust/compile/cttz.rs
! 32e0d094fc3d19605b5bdc758a79f1d4  gcc/testsuite/rust/compile/cttz_nonzero.rs
! 0e35180eb3f40915dc324e9d5517c1aa  gcc/testsuite/rust/compile/deadcode_err1.rs
! 274c5bccf4091c298f8b3bcb0001befb  gcc/testsuite/rust/compile/deadcode_err2.rs
! 938e724daf0b9c0267c67985ebfc93e8  gcc/testsuite/rust/compile/debug-diagnostics-default.rs
! e96087da06d9ce6f60ee46403f0f5157  gcc/testsuite/rust/compile/debug-diagnostics-off.rs
! 1bfe8bbc0370bd9ea60d074436db5319  gcc/testsuite/rust/compile/debug-diagnostics-on.rs
! 67b96722e1e9de711a7edba95f102025  gcc/testsuite/rust/compile/decl_macro1.rs
! 1ca519a6b8b9beaf2055907032f8db19  gcc/testsuite/rust/compile/decl_macro2.rs
! 8b34c4dc0db014c10f56090080c72f85  gcc/testsuite/rust/compile/decl_macro3.rs
! 85e75afbff2451ec0ad3f261c37c241b  gcc/testsuite/rust/compile/decl_macro4.rs
! 895aaa279b663e704b80b88baac9fda8  gcc/testsuite/rust/compile/decl_macro5.rs
! 995f4a134a7219cf1482622f43e12df7  gcc/testsuite/rust/compile/decl_macro6.rs
! 0d5616f10a3ce29f6f870e51fea09c3d  gcc/testsuite/rust/compile/decl_macro7.rs
! 2060f9066523d761abfbca3e268dda72  gcc/testsuite/rust/compile/default_not_a_kw.rs
! 298d05b397725dfc6e627f0ba41464fc  gcc/testsuite/rust/compile/deferred_const_inference.rs
! 858a7790df723414c375b55ada9d5b5e  gcc/testsuite/rust/compile/deprecated-fn.rs
! 44ea052639e0e1d05623b495d146cbef  gcc/testsuite/rust/compile/derive-debug1.rs
! fab94b7caad241c7fe8f0b333189afd5  gcc/testsuite/rust/compile/derive-default1.rs
! 1b6a0af275536e840d7a9aeca6f0b2ba  gcc/testsuite/rust/compile/derive-eq-invalid.rs
! 846355d2b8837d0d79d4a3b4c604f68e  gcc/testsuite/rust/compile/derive-hash1.rs
! 439550458de559b6190470ed6ad5cdb3  gcc/testsuite/rust/compile/derive-partialeq1.rs
! ce1b34a5cef2d844a239c3f3c77be614  gcc/testsuite/rust/compile/derive_clone_enum1.rs
! a6cf49204b87e1aee338bde26e205346  gcc/testsuite/rust/compile/derive_clone_enum2.rs
! 6b5890ecebb2ff8a216ad601b9221238  gcc/testsuite/rust/compile/derive_clone_enum3.rs
! 4bcdd9437ccee0dc4af09a3ea961fefd  gcc/testsuite/rust/compile/derive_empty.rs
! 68c2f4054765ddb96602a784f6db8d74  gcc/testsuite/rust/compile/derive_macro1.rs
! 33d8c2ccd1a603df08fc32398fb90fcf  gcc/testsuite/rust/compile/derive_macro3.rs
! 6aee74dba13a2ef84559fded4a1f7e25  gcc/testsuite/rust/compile/derive_macro4.rs
! 212fc415d3ec8a56c5004d0864d2ea5b  gcc/testsuite/rust/compile/derive_macro6.rs
! 362ff30f6cd95a5d08febaae0b146aaf  gcc/testsuite/rust/compile/derive_macro7.rs
! b923aeb3b899eb38e6171f196d629aa4  gcc/testsuite/rust/compile/derive_macro8.rs
! 6b96511e2e32389741c4b04ef65bdf48  gcc/testsuite/rust/compile/derive_partial_ord1.rs
! 3d689ce4193eff2b4384d36a72bb8df4  gcc/testsuite/rust/compile/diagnostic_underline.rs
! 22ed0e0ccf9a6baac6f8385cfab731c1  gcc/testsuite/rust/compile/doc_isolated_cr_block_comment.rs
! 8f3ba2239e7c3fe8d7c05028be2fab35  gcc/testsuite/rust/compile/doc_isolated_cr_inner_block_comment.rs
! b9d63212cced17f6d52eb1b38435a8bc  gcc/testsuite/rust/compile/doc_isolated_cr_inner_line_comment.rs
! 325f757f357f27fb55dacdaed8f24d6a  gcc/testsuite/rust/compile/doc_isolated_cr_line_comment.rs
! ead4df48e55f0f1f47527f8f29ed0ce4  gcc/testsuite/rust/compile/doc_macro.rs
! ffccd19a7721d4e438526bc94d785560  gcc/testsuite/rust/compile/dropck_eyepatch_feature_gate.rs
! 95d3e14a4c9c5b1fb5d1171f270642c7  gcc/testsuite/rust/compile/dup_fields.rs
! 7d596256980e172cd54a08f34b7f7d48  gcc/testsuite/rust/compile/e0579-neg-float-fail.rs
! f73c3350fbe5e538bfe6eef0852dc34a  gcc/testsuite/rust/compile/e0579-neg-float.rs
! 702ed6eef747ba42a54fa1875a12ad6e  gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs
  68b329da9893e34099c7d8ad5cb9c940  gcc/testsuite/rust/compile/empty.in
! 564795495212ff88b9e379884a8dac14  gcc/testsuite/rust/compile/empty_comment_before_match.rs
  d41d8cd98f00b204e9800998ecf8427e  gcc/testsuite/rust/compile/empty_file
! 2f7a4ecab50f00b5f6a6a56206aa9078  gcc/testsuite/rust/compile/empty_union.rs
! d7a19aa4ebfd5e24ab46829e8f056008  gcc/testsuite/rust/compile/enum_discriminant1.rs
! 255c1797a6389fb9d3d1afa0de60842a  gcc/testsuite/rust/compile/enum_discriminant2.rs
! a9e08c5d4009f77dffa67287a47e44c3  gcc/testsuite/rust/compile/enum_discriminant3.rs
! 2a334ae2f153c70fc2c5b473c90b308c  gcc/testsuite/rust/compile/enum_variant_name.rs
! 8c264b62a9fcd868449f37332b134faf  gcc/testsuite/rust/compile/exclusive_range_pattern.rs
! a017a785b809075c624123c7c3f19848  gcc/testsuite/rust/compile/exclusive_range_pattern_feature_gate.rs
! d258c7c2d32f482d26eaddf68e107dc3  gcc/testsuite/rust/compile/exhaustiveness1.rs
! e61ae8995903b1614bc1acca3ff31fda  gcc/testsuite/rust/compile/exhaustiveness2.rs
! cf692d69589181337960804c4bc2c202  gcc/testsuite/rust/compile/exhaustiveness3.rs
! 933d07febbe063e13a4ccf840348b8a7  gcc/testsuite/rust/compile/expand_macro_qual_path_in_type.rs
! a8ab705d8a097bd51f3c2fa613b47d3c  gcc/testsuite/rust/compile/expected_type_args2.rs
! 9735fadad7994906bb560e8e972c9544  gcc/testsuite/rust/compile/expected_type_args3.rs
! ff861694aaea8ab14602138adc67cd02  gcc/testsuite/rust/compile/export_name.rs
! b10da56b6e89371d06c1988c0e96cc37  gcc/testsuite/rust/compile/extern_c_named_variadic.rs
! c0c927e1e2fc08f64af016ff1735ec11  gcc/testsuite/rust/compile/extern_func_with_body.rs
! 27c08735f7bfba0879e8283cfc0d74a7  gcc/testsuite/rust/compile/extern_generics.rs
! 4ed707186663ac827fa0e62cd8979042  gcc/testsuite/rust/compile/extern_type_item.rs
! 6539a1a74f577244f3ab96a914f0c16a  gcc/testsuite/rust/compile/extern_type_item_missing_semi.rs
! e364c68fafebd1608e50787d90c6b3e6  gcc/testsuite/rust/compile/feature.rs
! 5c43b07271b89f88a7f76a3b09868799  gcc/testsuite/rust/compile/feature_extern_types.rs
! 291933df6286b5d2289e0120718719ab  gcc/testsuite/rust/compile/feature_intrinsics.rs
! 6f9e00ba38fde78d12dfe07c558689d8  gcc/testsuite/rust/compile/feature_rust_attri0.rs
! afa033c1c4fe2a31381283d6e822cbaa  gcc/testsuite/rust/compile/feature_rust_attri1.rs
! 68873c48c2ca9a38f4772934095861e4  gcc/testsuite/rust/compile/for-loop1.rs
! 91ec856a3fb478e28220b6115ceeccd1  gcc/testsuite/rust/compile/for-loop2.rs
! 867005dd9a2dc5871d483b69f5d191c4  gcc/testsuite/rust/compile/for_expr.rs
! 29a952da6c0ce6dfcf6fef8e670c7fd0  gcc/testsuite/rust/compile/for_lifetimes.rs
! e6f4744aaa9cc54b3b72abbab66f796e  gcc/testsuite/rust/compile/format_args_basic_expansion.rs
! e85e4435f9886753dfc2e0836a434884  gcc/testsuite/rust/compile/format_args_concat.rs
! 9faa54e3f14839433b6a5548a6233428  gcc/testsuite/rust/compile/format_args_extra_comma.rs
! 536d47109178df8055bba03c71e446dc  gcc/testsuite/rust/compile/found_struct.rs
! 822bd4bfa118166b7ce9e227e448619e  gcc/testsuite/rust/compile/frust-compile-until.rs
! 5aefe4aa69f12a438634875e4b880a59  gcc/testsuite/rust/compile/func-const-unsafe.rs
! 69ac2143b237e1a0517dc3455fc1eb20  gcc/testsuite/rust/compile/func-qualifier-default.rs
! c2050e2e97ce578c4a1b9039ff9fd264  gcc/testsuite/rust/compile/func-qualifier-order-1.rs
! 6c03c405e1cc90bc51058e92265a7d04  gcc/testsuite/rust/compile/func-qualifier-order-2.rs
! e0bee5a4c22efe0cd6d765bbc357b61b  gcc/testsuite/rust/compile/func-qualifier-order-3.rs
! 75a2a5bfbc47f9e04d55698f35d7ee3e  gcc/testsuite/rust/compile/func1.rs
! 385c7fe52a71146ebd69fa3932e89655  gcc/testsuite/rust/compile/func2.rs
! 041141e3f27a564037016ff4d07d8694  gcc/testsuite/rust/compile/func3.rs
! 8f0e76ff07fb5af3bb9cbebc501c2f41  gcc/testsuite/rust/compile/func4.rs
! 82bbbd57da5b9363f6d0aa25ecaf13ea  gcc/testsuite/rust/compile/func5.rs
! 86b96014ba3ffec125a0dc0e5f4af39e  gcc/testsuite/rust/compile/functions_without_body.rs
! 534769a0c614d8e8e7b2515c36e4ef81  gcc/testsuite/rust/compile/gat1.rs
! 135d767a7acf31d830ff1345cc4d88d4  gcc/testsuite/rust/compile/generic-default1.rs
! e6eacbc5e5520f4ce5cd5c3464df0637  gcc/testsuite/rust/compile/generic_auto_trait.rs
! 05d82b7d3b52387b4e6f06332d561bcf  gcc/testsuite/rust/compile/generics1.rs
! 4e2ffded73e0f2d00513730309e3bd6b  gcc/testsuite/rust/compile/generics10.rs
! 6dd7716f490482cbd0cc8358540df0ec  gcc/testsuite/rust/compile/generics11.rs
! f7144f2557c46fbd14da790e5a2e3b81  gcc/testsuite/rust/compile/generics12.rs
! 686e863073ce4af924f0e96bf88c54d0  gcc/testsuite/rust/compile/generics13.rs
! 8eff76f9e63f63ee1088b8b6c999845e  gcc/testsuite/rust/compile/generics14.rs
! f6362612e8f58e54682eb7dca47fcebe  gcc/testsuite/rust/compile/generics2.rs
! 2a0aab88357b781181ebfe73b5ac9683  gcc/testsuite/rust/compile/generics3.rs
! 747168e1fc3a37c7b4d5f22e08974053  gcc/testsuite/rust/compile/generics4.rs
! 9674f4a2c1b2d6a236b457a18ac1f435  gcc/testsuite/rust/compile/generics5.rs
! c3212644de4c9469581403e49d446238  gcc/testsuite/rust/compile/generics6.rs
! 0893e45c40da7e36c5ba62893a0c2ecd  gcc/testsuite/rust/compile/generics7.rs
! 436da009afec898fb076b93082abc069  gcc/testsuite/rust/compile/generics8.rs
! c18d00968becf385b4485a2770fda544  gcc/testsuite/rust/compile/generics9.rs
! fcc4268f711d648f4d568450401efb2e  gcc/testsuite/rust/compile/glob-import-all.rs
! 8b837d34d6184c4e4686af825719e2ff  gcc/testsuite/rust/compile/glob_import_enum.rs
! f393b26051ebd301bb886eda0461df73  gcc/testsuite/rust/compile/global-path-array.rs
! 8c8d8fc3e85056c49082b3493e6378b3  gcc/testsuite/rust/compile/if-without-else.rs
! 0171fb7b78a4428dcdffffc4a964c315  gcc/testsuite/rust/compile/if_let_expr.rs
! 904b940fdac071b864dec2c23a562352  gcc/testsuite/rust/compile/if_let_expr_simple.rs
! 110909136d2429d575b9c91884f72bbf  gcc/testsuite/rust/compile/iflet.rs
! 52cedfaa6f71a3b6443bac378266c394  gcc/testsuite/rust/compile/impl_fnptr.rs
! 3fa7803240970f1e954260988a84c0a6  gcc/testsuite/rust/compile/impl_trait_diag.rs
! 31affdb65bffe825d7785b0c5fc04890  gcc/testsuite/rust/compile/impl_trait_generic_arg.rs
! 30eb3a1aae41c85e86690ca070014a5f  gcc/testsuite/rust/compile/implicit_returns_err1.rs
! 23fcb730f99021360c9d28c0834ee4b8  gcc/testsuite/rust/compile/implicit_returns_err2.rs
! 93acc9517ab5363a7655d5b50a4cbf16  gcc/testsuite/rust/compile/implicit_returns_err3.rs
! 43a87c9f6f27b1568e8066968e276b5c  gcc/testsuite/rust/compile/implicit_returns_err4.rs
! 066821e5180beb0aa6b4c8caf1016d2e  gcc/testsuite/rust/compile/import_wildcards.rs
! 6e9d06bd7806b627386fd989566d2414  gcc/testsuite/rust/compile/include_empty.rs
! 1b40abdd095a8e3abae8a1adea4ddb31  gcc/testsuite/rust/compile/infer-crate-name.rs
! 15f303eb78df0a1cac790e83f79988a3  gcc/testsuite/rust/compile/inline_1.rs
! 708412b50e770327700c5550b6566d52  gcc/testsuite/rust/compile/inline_2.rs
! aec34bd500a81987606d2134fa520c55  gcc/testsuite/rust/compile/inline_asm_compile_nop.rs
! 6f7a2ecffb9c2825c2fb0e2f9e01c637  gcc/testsuite/rust/compile/inline_asm_faulty_clobber.rs
! f89f24fd87af2b1b1ebc5992e9d5c5d8  gcc/testsuite/rust/compile/inline_asm_ident_first.rs
! acbd5c481454bb14991ce006533b6ac0  gcc/testsuite/rust/compile/inline_asm_illegal_operands.rs
! 3637531d86a4fb712e43afe0d1b4b21c  gcc/testsuite/rust/compile/inline_asm_illegal_options.rs
! 9cc8374a5486194b4f374abef959e83e  gcc/testsuite/rust/compile/inline_asm_legal_options.rs
! 047215e19cfa14fc507af6524f4a4810  gcc/testsuite/rust/compile/inline_asm_nop.rs
! a2c833385a2666d37e47be020f020e83  gcc/testsuite/rust/compile/inline_asm_outside_unsafe.rs
! e2c94590ac101390289fd84ba50f0e32  gcc/testsuite/rust/compile/inline_asm_parse_operand.rs
! 9600f1c64f2d09e5d69e42eeb33f7cf8  gcc/testsuite/rust/compile/inline_asm_parse_output_operand.rs
! 9707ab68deb18971d4011357c81c9c2b  gcc/testsuite/rust/compile/inline_asm_typecheck.rs
! 6726c10633de16483b712accccd9a283  gcc/testsuite/rust/compile/invalid_label_name.rs
! 259d523cf59af0ab7affa0b5224952ee  gcc/testsuite/rust/compile/invalid_variadics.rs
! b5ce6a25e409a2368920d8a11afafaac  gcc/testsuite/rust/compile/issue-1005.rs
! 60238af197ff77810e6b85e5b1f52731  gcc/testsuite/rust/compile/issue-1006.rs
! b3e2a2c0f569d317e0297f8411a2c5af  gcc/testsuite/rust/compile/issue-1019.rs
! e1535bacfb51ef60dd71669a144bc8e5  gcc/testsuite/rust/compile/issue-1023.rs
! 6bcbda4d1c22037d46a19557be9d5605  gcc/testsuite/rust/compile/issue-1031.rs
! 071c2db16aa47f6a32ffea5b8e121241  gcc/testsuite/rust/compile/issue-1034.rs
! 700530c63c203591e551a34f2c4af517  gcc/testsuite/rust/compile/issue-1048.rs
! 277734ea77f7d8bf026cf09dc61bed37  gcc/testsuite/rust/compile/issue-1073.rs
! b25a0a6432621f371d4b71f14712d8ab  gcc/testsuite/rust/compile/issue-1081.rs
! 427f31f5db9dd49a3c6ec5edde50c061  gcc/testsuite/rust/compile/issue-1089.rs
! 6886f8731c7fe103b6fd401fbbdc3493  gcc/testsuite/rust/compile/issue-1089/test_mod.rs
! c175010f00e99306ae769e9f6948b550  gcc/testsuite/rust/compile/issue-1128.rs
! a580fc8cb83c93e8249e82973327b64b  gcc/testsuite/rust/compile/issue-1129-1.rs
! e3ff9e72805a7f76548a6643b9f49e2f  gcc/testsuite/rust/compile/issue-1129-2.rs
! 42773a6354698f5cf811ea87506a63b3  gcc/testsuite/rust/compile/issue-1130.rs
! 6b409bf7c10d5054f4f553f0074db128  gcc/testsuite/rust/compile/issue-1131.rs
! 9c8d19d30bade003fcd79f8963f990c9  gcc/testsuite/rust/compile/issue-1152.rs
! 877ddc79489446f73dd5783a4a137eab  gcc/testsuite/rust/compile/issue-1165.rs
! ed1c24318d0c91a8a5b974c48fed0f13  gcc/testsuite/rust/compile/issue-1173.rs
! 706e31ed0794b8c61ceaf359b4ad6725  gcc/testsuite/rust/compile/issue-1210.rs
! 7f468e92bb4a9bfb25ad17a6610a275a  gcc/testsuite/rust/compile/issue-1226.rs
! 5bbd3e7c8f79663e969d6c1bd4b6892d  gcc/testsuite/rust/compile/issue-1234.rs
! f03684c646423e96704aeed055ca307c  gcc/testsuite/rust/compile/issue-1235.rs
! 6c326a67c016a5e55c1226941ee44d16  gcc/testsuite/rust/compile/issue-1237.rs
! 1c3a466c6e21e92aabcdd92474ccf219  gcc/testsuite/rust/compile/issue-1251.rs
! df0bbdcb0c2b0cd92f37f0c3ae7ac5ec  gcc/testsuite/rust/compile/issue-1271.rs
! d35d1891be19b66162da604943246e21  gcc/testsuite/rust/compile/issue-1272.rs
! d8eefc3ef39a2ab0253b212432a4f0bd  gcc/testsuite/rust/compile/issue-1289.rs
! 25373ab7544c45d6124c227e439d05e3  gcc/testsuite/rust/compile/issue-1323-1.rs
! cb1662a0d7577f3aca90c7977c66877a  gcc/testsuite/rust/compile/issue-1323-2.rs
! e4ee8234acd0a37211eb2ce16089f712  gcc/testsuite/rust/compile/issue-1361.rs
! 32cfbd1522793140a70eda6d1d1cb4b8  gcc/testsuite/rust/compile/issue-1383.rs
! 2d1aabaef2d43d98a851d31b452e3089  gcc/testsuite/rust/compile/issue-1393.rs
! 189802e1c1d8dca2b19fd5e773699421  gcc/testsuite/rust/compile/issue-1422.rs
! 2e94c175f917b0b48e11c5acc2f84a3b  gcc/testsuite/rust/compile/issue-1446.rs
! 4e32fcbfc0b47adae6aae8fbb5720b26  gcc/testsuite/rust/compile/issue-1447.rs
! e17e8f0e55eecbd86fae7921c93b8433  gcc/testsuite/rust/compile/issue-1483.rs
! a55d5f8b5a457693f9aa628f8842409b  gcc/testsuite/rust/compile/issue-1485.rs
! 55250bf6e8e3a6824384f028296ac8b9  gcc/testsuite/rust/compile/issue-1487.rs
! 60a126dc83f583dc5800c12d400b1085  gcc/testsuite/rust/compile/issue-1524.rs
! ca2ea76ce8086037e00995be9097256e  gcc/testsuite/rust/compile/issue-1525.rs
! 70757f220a48b061f767e912e41c33e9  gcc/testsuite/rust/compile/issue-1589.rs
! 7a959378207d735e2baccb5cc9532d88  gcc/testsuite/rust/compile/issue-1725-1.rs
! b753a9b198785860b32a4628c1b9ee30  gcc/testsuite/rust/compile/issue-1725-2.rs
! f63c1adc09b46f67476b4fcdb30193c3  gcc/testsuite/rust/compile/issue-1773.rs
! fa7ebe2ba3f9ef60c0111e0f53b5f4cf  gcc/testsuite/rust/compile/issue-1786.rs
! 69077785ee69715c5d85609ab1f45746  gcc/testsuite/rust/compile/issue-1807.rs
! b82aa325693a9998e6f160def879c2fc  gcc/testsuite/rust/compile/issue-1813.rs
! 384555c4e09bcf98143cd3b0f0a15d75  gcc/testsuite/rust/compile/issue-1830_bytes.rs
! ca9f2565c22efb2b927a829f83e34f1a  gcc/testsuite/rust/compile/issue-1830_str.rs
! 546b58ed0f11e498f189dee031ebceb9  gcc/testsuite/rust/compile/issue-1893.rs
! 5a9e2141b9725178314954af562a61d7  gcc/testsuite/rust/compile/issue-1901.rs
! a4f3eabcf7e1e8736a831b809ee39c5a  gcc/testsuite/rust/compile/issue-1930.rs
! b3b110cb888200eb260bc9b69c3c8a62  gcc/testsuite/rust/compile/issue-1981.rs
! 9fe4937a4871009bd90c6c4654328e52  gcc/testsuite/rust/compile/issue-2015.rs
! a3e65f2e2c60fca52b7769e65f947880  gcc/testsuite/rust/compile/issue-2019-1.rs
! 666026af6fd744ffb01bb522c424c35b  gcc/testsuite/rust/compile/issue-2019-2.rs
! 811e531d15eb795402f47d15325d5d94  gcc/testsuite/rust/compile/issue-2019-3.rs
! 549a80c92a40487b2a65f8e2488f0e63  gcc/testsuite/rust/compile/issue-2029.rs
! a803f06e0dc3498d7e770cbc5af39a87  gcc/testsuite/rust/compile/issue-2035.rs
! 7570ee1143e9a835b053c07e9c54e76a  gcc/testsuite/rust/compile/issue-2036.rs
! 992eefd3973c9ed7f8fd9685650c5b5a  gcc/testsuite/rust/compile/issue-2037.rs
! 6139d817b414c4151f379955935f8cf8  gcc/testsuite/rust/compile/issue-2039.rs
! 547b10786adb8f90ccdcdb969034fa27  gcc/testsuite/rust/compile/issue-2040.rs
! 6ca401b40f7e42c82a5e4149458cee24  gcc/testsuite/rust/compile/issue-2042.rs
! 114e273408b8f473e40d327a77ce4364  gcc/testsuite/rust/compile/issue-2043.rs
! b4d6d63af159bb91c31f5d26b9d0a4d9  gcc/testsuite/rust/compile/issue-2070.rs
! 760ab51b42d08f2bc09ca71ed70db0f6  gcc/testsuite/rust/compile/issue-2105.rs
! 3fe232bb882bc1e72fbe70a82b1a752e  gcc/testsuite/rust/compile/issue-2106.rs
! d414cb9da8e7ce5838e7687c594a52eb  gcc/testsuite/rust/compile/issue-2125.rs
! af1d99bde41ebf9c204925b89c899982  gcc/testsuite/rust/compile/issue-2135.rs
! 16ac92b4b78725654906c9dd37559083  gcc/testsuite/rust/compile/issue-2136-1.rs
! d8344e2d2729004cd01da9beed5cfda4  gcc/testsuite/rust/compile/issue-2136-2.rs
! 1f127c7aa5f101ab0a6cfe731433ff2b  gcc/testsuite/rust/compile/issue-2139.rs
! 6fc0e880570b15651663c497d9d71273  gcc/testsuite/rust/compile/issue-2142.rs
! f3be2b88dced18e91c13f59f7248dd67  gcc/testsuite/rust/compile/issue-2165.rs
! 99a9c132fc0a4d16b694dc4576cb0fab  gcc/testsuite/rust/compile/issue-2166.rs
! 368cf12d4f232ef82082cd68d0c6b313  gcc/testsuite/rust/compile/issue-2178.rs
! 07d822bf0b55fb44bcc6bb28acdc19dc  gcc/testsuite/rust/compile/issue-2187.rs
! a73057dd0a4c9399663f451aaa4d14a1  gcc/testsuite/rust/compile/issue-2188.rs
! fabf2d4817e0a65b38f640bd88619309  gcc/testsuite/rust/compile/issue-2189.rs
! 513d0a8ef727602a35595d32729c0ce2  gcc/testsuite/rust/compile/issue-2190-1.rs
! e4299dadbb64badac4b51357f5421361  gcc/testsuite/rust/compile/issue-2190-2.rs
! 3b240de3d1f321b73ca876fd05c967e9  gcc/testsuite/rust/compile/issue-2195.rs
! b16bae57edce299f3a047cb608aa1d8e  gcc/testsuite/rust/compile/issue-2203.rs
! 8f74ffe31c8504e540ce47de3bfc5e9c  gcc/testsuite/rust/compile/issue-2207.rs
! 35bea051c0c979067db6dbd439e0b587  gcc/testsuite/rust/compile/issue-2225.rs
! a706458e622b882245d49f4f85ec25e9  gcc/testsuite/rust/compile/issue-2238.rs
! cb13932c59b40df8b9bb6608a2aeec34  gcc/testsuite/rust/compile/issue-2304.rs
! ec2a4e1445329c1c441e83f702be34c0  gcc/testsuite/rust/compile/issue-2323.rs
! f064f3233c6711152f6c88edabd77598  gcc/testsuite/rust/compile/issue-2324-1.rs
! e67006f7c434536e3431ba200a649b7e  gcc/testsuite/rust/compile/issue-2324-2.rs
! 46a70ab1b85faf925e281b867d7b5239  gcc/testsuite/rust/compile/issue-2330.rs
! 757a0c8887eac5f8d4afc278b37f1054  gcc/testsuite/rust/compile/issue-2369.rs
! f2518c065447c687bebe397660d11a49  gcc/testsuite/rust/compile/issue-2375.rs
! 8ceb0b82918e8bd08d3d3a4583e11ed7  gcc/testsuite/rust/compile/issue-2391.rs
! 6b5908f91fe675280c4d3e84f6789294  gcc/testsuite/rust/compile/issue-2394.rs
! c4e24e676fe819e767c4c2e55eeee8ea  gcc/testsuite/rust/compile/issue-2421_str.rs
! e7802d00b16604c92dd4001dc1e8f6c0  gcc/testsuite/rust/compile/issue-2423.rs
! 02b52a68a503e509e1a7029c5ac0db61  gcc/testsuite/rust/compile/issue-2431.rs
! ec52761abd07b504226c553a8ca4c14b  gcc/testsuite/rust/compile/issue-2477.rs
! 7f19731795007120b5633ac365fb5d8a  gcc/testsuite/rust/compile/issue-2478.rs
! 2971e9c9c7f16aade9147c16afc62b4f  gcc/testsuite/rust/compile/issue-2479.rs
! a72fe401d81bfe5ec819415cf35e7f2b  gcc/testsuite/rust/compile/issue-2499.rs
! ee1a20e625319e9dd2461ed43a888276  gcc/testsuite/rust/compile/issue-2514.rs
! 04566d12ea83457e16b70a1f9eeef210  gcc/testsuite/rust/compile/issue-2567-1.rs
! 570a1b612cda81278d2d0ebf02ae08ca  gcc/testsuite/rust/compile/issue-2567-2.rs
! b235addc47f1cf2d732eeafa6e5c7a10  gcc/testsuite/rust/compile/issue-2567-3.rs
! 20b26a62d0388f8ab8bd75a1efe0e295  gcc/testsuite/rust/compile/issue-2645.rs
! a3ad81c70f602939edb9d90904efc6f6  gcc/testsuite/rust/compile/issue-2650-1.rs
! 4407f4a59d512529518f7fabc30c8f7c  gcc/testsuite/rust/compile/issue-2650-2.rs
! 41afe98f034d155f4cc7295b7a400eb7  gcc/testsuite/rust/compile/issue-266.rs
! e389cbfbf085235be496c9f44b2fabef  gcc/testsuite/rust/compile/issue-2665.rs
! 29cd91617310c484a01e174ba5768029  gcc/testsuite/rust/compile/issue-2680.rs
! ea4ce36a98206ce7f3f02cb8a8a6fec3  gcc/testsuite/rust/compile/issue-2709.rs
! 1eb456bd2a99d1d5c69cba3801d26583  gcc/testsuite/rust/compile/issue-2723-1.rs
! 65fae4c2eb609c26774ed0639c6acec0  gcc/testsuite/rust/compile/issue-2723-2.rs
! 4c6847ce98f698b95e96ab13452c3eb8  gcc/testsuite/rust/compile/issue-2725.rs
! 4dd1c94bd56f0acf08853630e07547f8  gcc/testsuite/rust/compile/issue-2747.rs
! 8fd039a845ab48f8eab12431a746fb99  gcc/testsuite/rust/compile/issue-2767.rs
! 737f687769dde47b198290df4db0e469  gcc/testsuite/rust/compile/issue-2772-1.rs
! f2da079641d22a6e5ca1eb2cf9e672a8  gcc/testsuite/rust/compile/issue-2772-2.rs
! ce3f3315fc14aea030e1df01e3be4e1f  gcc/testsuite/rust/compile/issue-2775.rs
! 8a1dfb9c6f28177021ec4837ee884cf1  gcc/testsuite/rust/compile/issue-2782.rs
! bd92301fe8c22e3c65ebf42c5d310d28  gcc/testsuite/rust/compile/issue-2785.rs
! 83c097f7d2b670d6e5b5cfa128ea378e  gcc/testsuite/rust/compile/issue-2788.rs
! 3fc48d8b5ba5826a216a0b7f70847fd4  gcc/testsuite/rust/compile/issue-2812.rs
! c83424f57449e8ce7fccd283b524220c  gcc/testsuite/rust/compile/issue-2847-b.rs
! 26b8d79d68c1e9fdb6f7511706d42ed8  gcc/testsuite/rust/compile/issue-2847.rs
! 1a06483921e6b522322ef85172e8f8c0  gcc/testsuite/rust/compile/issue-2850.rs
! 04b7ceda1d5d5265884350cffc5ec4a4  gcc/testsuite/rust/compile/issue-2905-1.rs
! a6e23b3d9644d389e89b36eb748c44f5  gcc/testsuite/rust/compile/issue-2905-2.rs
! cbb5b7e9bd4315f08e1c81cf8a6e2aa4  gcc/testsuite/rust/compile/issue-2906.rs
! 61cf63a1610da81aac9588cd0c6289fd  gcc/testsuite/rust/compile/issue-2907.rs
! 93d2a15c5b751c9cb47e2ad249eb3683  gcc/testsuite/rust/compile/issue-2951.rs
! 9b218b2be3cee5c9e85c2c509c932dc9  gcc/testsuite/rust/compile/issue-2953-1.rs
! 0aa9661a8b60c48ea562e56001e5cb08  gcc/testsuite/rust/compile/issue-2953-2.rs
! b48cacacc64a4a367a11585202a2c519  gcc/testsuite/rust/compile/issue-2954.rs
! 7507d3db5198e481bddbf162be9ab2a1  gcc/testsuite/rust/compile/issue-2987.rs
! 352bbdb5e44ed9ce931c0d55af9b531d  gcc/testsuite/rust/compile/issue-3009.rs
! f23cf179b935318dc9494f472a4c59ae  gcc/testsuite/rust/compile/issue-3022.rs
! bd2a0f5c29f3551ba6e7d6f1f7a6be93  gcc/testsuite/rust/compile/issue-3030.rs
  88af658cc213f23b86849cd3af2790a5  gcc/testsuite/rust/compile/issue-3031.rs
! 80ee979c8634968adfa43e9d3124d165  gcc/testsuite/rust/compile/issue-3032-1.rs
! 779aa1d676ffab21f46033d503efc0a7  gcc/testsuite/rust/compile/issue-3032-2.rs
! 900b958dba612fbe1a299b2045473488  gcc/testsuite/rust/compile/issue-3033.rs
! 524e42c188c1378269d758dc3efb97ec  gcc/testsuite/rust/compile/issue-3035.rs
! fd96f51aff870c93bb10d2f2f440adf1  gcc/testsuite/rust/compile/issue-3036.rs
! 8c1dccc0bfa5b455925a665457d9e62e  gcc/testsuite/rust/compile/issue-3045-1.rs
! 041c53db690d916901f36715a575a188  gcc/testsuite/rust/compile/issue-3045-2.rs
! 6b66f1f4954492083a044de35deb134c  gcc/testsuite/rust/compile/issue-3046.rs
! 529adbdc18c97f8ddf577dc71f435158  gcc/testsuite/rust/compile/issue-3082.rs
! ecbbb4100fad00c700924dc8d164e51d  gcc/testsuite/rust/compile/issue-3139-1.rs
! dd7d4f208294fbae514960207e4145d6  gcc/testsuite/rust/compile/issue-3139-2.rs
! 4b54dac38e6dfdc1e8eb63754cb09a55  gcc/testsuite/rust/compile/issue-3139-3.rs
! 29d2481fa9100abafe9cde688f357498  gcc/testsuite/rust/compile/issue-3140.rs
! f32e932c4c2dd9422ad90e7b4b985b92  gcc/testsuite/rust/compile/issue-3141.rs
! b362750d23f3ce5c91228cec4d2775e0  gcc/testsuite/rust/compile/issue-3144.rs
! cbca829e92171697fb747d0160625774  gcc/testsuite/rust/compile/issue-3174.rs
! 96f443d9016c9d662503ef83e91c051f  gcc/testsuite/rust/compile/issue-3231.rs
! 2ec64635f6c1138a1ceff026600862ea  gcc/testsuite/rust/compile/issue-3242.rs
! c8a826ccc5f3c035c6267775c3a255e4  gcc/testsuite/rust/compile/issue-3261.rs
! 7bfaefc7625ae667c85d45d711234f51  gcc/testsuite/rust/compile/issue-3304.rs
! ee5779e77e3bf2331294b1ecca925ed1  gcc/testsuite/rust/compile/issue-3315-1.rs
! 73ee839ebe3b5108f33d396c238a0653  gcc/testsuite/rust/compile/issue-3315-2.rs
! 5c6eb266e34bbbae84c70857941c5c4e  gcc/testsuite/rust/compile/issue-3350.rs
! 97e24375e18061d103f993700c9c03e1  gcc/testsuite/rust/compile/issue-3382.rs
! e982f5fdc8b6844857563afc8c0ae47e  gcc/testsuite/rust/compile/issue-3402-1.rs
! b1cd37bb1c1913cc7e1a5d84fd64459f  gcc/testsuite/rust/compile/issue-3402-2.rs
! 180dfce47e5ee25d23ffe3a3fd648996  gcc/testsuite/rust/compile/issue-3403.rs
! e293a27183a81a0d06e050da382082db  gcc/testsuite/rust/compile/issue-3454.rs
! e7f4ff1f157eb1430ae62e491b2a8b69  gcc/testsuite/rust/compile/issue-3524.rs
! 8c5bc4ae8d56f72bf0612167612e3878  gcc/testsuite/rust/compile/issue-3525.rs
! 14cd327be593673b0aed26e16a236d78  gcc/testsuite/rust/compile/issue-3530-1.rs
! da5455f5eeefc71d81325f48a7acf0e9  gcc/testsuite/rust/compile/issue-3530-2.rs
! 51c80cab608dedddd28dc8f38ba05114  gcc/testsuite/rust/compile/issue-3538.rs
! 007b0d238d5c43bb3e64aa8bdc40e293  gcc/testsuite/rust/compile/issue-3541-1.rs
! b76ac33736a777ab60b5c604b6761789  gcc/testsuite/rust/compile/issue-3541-2.rs
! b826f04e1ec9135e64b69d339fb25c2f  gcc/testsuite/rust/compile/issue-3546.rs
! d6706afe5a5c484f71792a116ff4d8c9  gcc/testsuite/rust/compile/issue-3549.rs
! aff351b392415275c044d0c9e0c881fb  gcc/testsuite/rust/compile/issue-3550.rs
! 21645a0bb271669009b662b7ae7c9e7f  gcc/testsuite/rust/compile/issue-3551.rs
! c408705a75ea86bdace4608be1b932f3  gcc/testsuite/rust/compile/issue-3552.rs
! bce370641fd45c56bca9885e26e063d3  gcc/testsuite/rust/compile/issue-3553.rs
! 0cb3f905ea0082dee143cb412902ff36  gcc/testsuite/rust/compile/issue-3554-1.rs
! 510ffd8056e8593ca89214d9de53eb4c  gcc/testsuite/rust/compile/issue-3554-2.rs
! 9efd559a9a0a2c33f6d19983e0686eec  gcc/testsuite/rust/compile/issue-3555.rs
! 67ab7a9d676f7655790141bb62d6697f  gcc/testsuite/rust/compile/issue-3556.rs
! 0ce6fc7eed01bcac6a4d7ad65b4eb902  gcc/testsuite/rust/compile/issue-3563.rs
! 0e41a6a06c62b451c93b4d4a47db888a  gcc/testsuite/rust/compile/issue-3566-1.rs
! 344eaedb64977905a2a998feef63dd02  gcc/testsuite/rust/compile/issue-3566-2.rs
! 9d4c73300fd36e4fa60ad9434e468096  gcc/testsuite/rust/compile/issue-3567.rs
! 0879b17991e55f3d643d6c2775bb2f2a  gcc/testsuite/rust/compile/issue-3568.rs
! 5c04101d6dd500590cbef44fe4cd5da7  gcc/testsuite/rust/compile/issue-3581-1.rs
! 9f1c28953ea9f8e6531af29ec873ed07  gcc/testsuite/rust/compile/issue-3581-2.rs
! 8cdaa47bde420205c0d069eb2da1fbb1  gcc/testsuite/rust/compile/issue-3588.rs
! b06f835897d7ada2ee7af7d3a0050b66  gcc/testsuite/rust/compile/issue-3591.rs
! 4f9f6745c3f91429638f08ddc300a278  gcc/testsuite/rust/compile/issue-3592.rs
! 9e5e3d9a138bfe6e51482d2e707ff829  gcc/testsuite/rust/compile/issue-3597.rs
! 54fafda8d4c597931351c25c476964a2  gcc/testsuite/rust/compile/issue-3599.rs
! 91616989816a9c1b009c340021385341  gcc/testsuite/rust/compile/issue-3605.rs
! 74d6afecc27b6ede4694ce0279631f06  gcc/testsuite/rust/compile/issue-3606.rs
! 40d9b4cf55c65ae5f8e1f6b03d60555b  gcc/testsuite/rust/compile/issue-3612.rs
! 3fcf8fad49eb1d95a6d20f60dabdd610  gcc/testsuite/rust/compile/issue-3613.rs
! 519a4e45caf593bcb0a59fda8049deef  gcc/testsuite/rust/compile/issue-3614.rs
! 90d56dac8f79ff183ce7523c629d2179  gcc/testsuite/rust/compile/issue-3615.rs
! b670325a9255613b21cbf88caaf5b860  gcc/testsuite/rust/compile/issue-3617.rs
! 9b018cc1dc24b1cce0657461d9e87648  gcc/testsuite/rust/compile/issue-3618.rs
! 7f94bd4a7df40a9b56cd4d2b01eb52a9  gcc/testsuite/rust/compile/issue-3625.rs
! d98fe4277cbd276caaaa3197d6ce9b3f  gcc/testsuite/rust/compile/issue-3628.rs
! 2d4dbfcb58d6daf69f56ace4cd6f7e41  gcc/testsuite/rust/compile/issue-3642.rs
! e3c970b17f3e17a8c91f716f8a9d6741  gcc/testsuite/rust/compile/issue-3643.rs
! b25609efc2f712d2a09250c475e07b7d  gcc/testsuite/rust/compile/issue-3645.rs
! 0efe86de3e77ee2149d93c63192ea48d  gcc/testsuite/rust/compile/issue-3646.rs
! c43e0ba8c898431e032f76f718e6e9cb  gcc/testsuite/rust/compile/issue-3647.rs
! 97c7276eeb5507e8b7318ddc3e3b9d00  gcc/testsuite/rust/compile/issue-3648.rs
! 00c83e74209bed4293871f80b7ef7a7f  gcc/testsuite/rust/compile/issue-3649.rs
! 7617c72efeccc165fa77196c4af1e8be  gcc/testsuite/rust/compile/issue-3651.rs
! bc7d95d930db5b5c1261a29cfdf0245f  gcc/testsuite/rust/compile/issue-3652.rs
! 903518e22a6b1c5767199a3d31b4d790  gcc/testsuite/rust/compile/issue-3654.rs
! 20baf1e79fa9ab0bb1e3c5c5dec5a5df  gcc/testsuite/rust/compile/issue-3656.rs
! 3b228b6476d4584550f094af0d723495  gcc/testsuite/rust/compile/issue-3657.rs
! 312cde128ae0618e5c3ecf15c1729317  gcc/testsuite/rust/compile/issue-3659.rs
! f8fd7162517c8db4e0786228026d5021  gcc/testsuite/rust/compile/issue-3660.rs
! 1a4f99cf46f7e3bfbd7960d8dea10221  gcc/testsuite/rust/compile/issue-3661.rs
! a8e1b026193dce378d9b61f1c932a52c  gcc/testsuite/rust/compile/issue-3662.rs
! e2b37685e29cbbd0517e0640b0f65422  gcc/testsuite/rust/compile/issue-3663.rs
! 118d2d6a0e98f6be088f4e92751c9486  gcc/testsuite/rust/compile/issue-3664.rs
! be7df1149281bea8b1ca47621863fe4a  gcc/testsuite/rust/compile/issue-3665.rs
! b43671b6670dd904c5363e4eb286b4eb  gcc/testsuite/rust/compile/issue-3667.rs
! 1942d0a2a1f785da08bbee7d60051e01  gcc/testsuite/rust/compile/issue-3670.rs
! e6b6fb1b258b93ab93201241b0d5a9d7  gcc/testsuite/rust/compile/issue-3671.rs
! 2908138ca3094f2913c5df2b1ba82742  gcc/testsuite/rust/compile/issue-3672.rs
! a0ac65584c4f4cdd06f991961dac181f  gcc/testsuite/rust/compile/issue-3711.rs
! baf285024f1531abdb8daf1e049cbc0f  gcc/testsuite/rust/compile/issue-3726.rs
! e7246e7b4b75973302c582fec5badbca  gcc/testsuite/rust/compile/issue-3836.rs
! fef3ff5eb30cae07e2454626862fe01a  gcc/testsuite/rust/compile/issue-3874.rs
! 6b37a9bd76bc73ad035a531760823890  gcc/testsuite/rust/compile/issue-3875.rs
! 1ab865af7f00649108cf5fd10ae56cea  gcc/testsuite/rust/compile/issue-3876.rs
! c4ad4d2073d5409171c812a73675c0fa  gcc/testsuite/rust/compile/issue-3885.rs
! 56889e6f3717e58e8f5c15d90abaeb6c  gcc/testsuite/rust/compile/issue-3898.rs
! c856563cadfd74bd1ed3c1555675e1f0  gcc/testsuite/rust/compile/issue-3904.rs
! 803809848ce620ab9e5bdeb6bfabe181  gcc/testsuite/rust/compile/issue-3910.rs
! 2c8a0ca460ae824c399c4a1ac9a7f2cb  gcc/testsuite/rust/compile/issue-3915.rs
! cec06f4231a994c0d8b265b80d8949b7  gcc/testsuite/rust/compile/issue-3916.rs
! 83cb8b20d4fe222e94733e73ebab1820  gcc/testsuite/rust/compile/issue-3919-ice-func-parms.rs
! 6bd878304bae891a1e658364a873d7f2  gcc/testsuite/rust/compile/issue-3922.rs
! 049eabced73cd7f654b6034de8d98917  gcc/testsuite/rust/compile/issue-3924.rs
! 3b18b973d23d5804e28907b4c44eac2d  gcc/testsuite/rust/compile/issue-3928.rs
! 69cfa809b39b2162d4ade3fc83da9bd6  gcc/testsuite/rust/compile/issue-3929-1.rs
! 7133ee2e1f25ec5051f109acc5c9c1da  gcc/testsuite/rust/compile/issue-3929-2.rs
! f57698e0b7aa840adb5238d6c5215443  gcc/testsuite/rust/compile/issue-3930.rs
! efedd9bf51f20e2442a9ebe031c93e70  gcc/testsuite/rust/compile/issue-3931.rs
! 4eb8cf8afb4801d6faf4f7f05e232444  gcc/testsuite/rust/compile/issue-3947.rs
! 78bd435c99d769e1d956c861153a2ad7  gcc/testsuite/rust/compile/issue-3951.rs
! 1fab94333827efc3e18d73d62cc7dce4  gcc/testsuite/rust/compile/issue-3958.rs
! 12938cfae91a8f89b8867fcddd0318d4  gcc/testsuite/rust/compile/issue-3960.rs
! ee58b560afd747660d7c246708e54ea2  gcc/testsuite/rust/compile/issue-3965-1.rs
! 704022754d17c7600e748d0c0d0db2b5  gcc/testsuite/rust/compile/issue-3965-2.rs
! c3b3bcd2de2f4330a9d7f7964ba3c70d  gcc/testsuite/rust/compile/issue-3966.rs
! 16715e4199544d20d2b9e04d8f37bab6  gcc/testsuite/rust/compile/issue-3969.rs
! 5e0567fc75434d70427426e2fbe709e1  gcc/testsuite/rust/compile/issue-3971.rs
! b6fa159f78fb7f5d61fc8e1b8b3870f6  gcc/testsuite/rust/compile/issue-3974.rs
! 820c12f1b2df552d56a118c769a891e4  gcc/testsuite/rust/compile/issue-3977.rs
! 8fdea57988d7137d42c68d0789c6f2f8  gcc/testsuite/rust/compile/issue-3978.rs
! 62891aab6567c9aae4545c750f5da91c  gcc/testsuite/rust/compile/issue-4006.rs
! 714cb09d2b48023dbaf90bc0aa62fb24  gcc/testsuite/rust/compile/issue-402.rs
! cec9cbf0c69783e5da2883324d3c89bc  gcc/testsuite/rust/compile/issue-407-2.rs
! 1e48e91c458fc1e6e8190f2fc41737be  gcc/testsuite/rust/compile/issue-407.rs
! f73cd8d157c4580095bce81d86e076f6  gcc/testsuite/rust/compile/issue-4090-1.rs
! f5e01a306bee3e12d3e49d0b2bd92ca1  gcc/testsuite/rust/compile/issue-4090-2.rs
! 7ee4fe142a56d603959a8df93b7ee5db  gcc/testsuite/rust/compile/issue-4139.rs
! bee8dc2ef6bdd9f98f98bb53e9cd5998  gcc/testsuite/rust/compile/issue-4140-1.rs
! b4f44a1ecb9e115e05e69f84570863c6  gcc/testsuite/rust/compile/issue-4140-2.rs
! 870e0f80a10c6dc91c771cb910a60c31  gcc/testsuite/rust/compile/issue-4145.rs
! 5e2d47722fdc6011b18c1aafc4f1cad6  gcc/testsuite/rust/compile/issue-4146.rs
! af8b5fa8155d9dba9f951dc65949bac0  gcc/testsuite/rust/compile/issue-4148.rs
! c68fada68436ff9bede7e8e38b3db37f  gcc/testsuite/rust/compile/issue-4155.rs
! 8bda45fc41b02b17b7719286ff7894ef  gcc/testsuite/rust/compile/issue-4162.rs
! 2dcdb23a9194ed02f4aab959c6c5d6d5  gcc/testsuite/rust/compile/issue-4163-2.rs
! 5f811abe07eebecdce5ef2772005e2cb  gcc/testsuite/rust/compile/issue-4163.rs
! 84a704ef0e97dedcd0f4d8af88b5baa0  gcc/testsuite/rust/compile/issue-4165.rs
! 9bc37769eb10d8305459bb40928ec2f4  gcc/testsuite/rust/compile/issue-4166.rs
! 610ad666e072f89c564434a0597df717  gcc/testsuite/rust/compile/issue-4168.rs
! bba85eca8c3804e196d2b890587c5419  gcc/testsuite/rust/compile/issue-4188.rs
! 6fe7039fbe2f615d3d3401d6d88ab506  gcc/testsuite/rust/compile/issue-4212.rs
! bd749f9bfd29e6667e7e252ad4fcb308  gcc/testsuite/rust/compile/issue-4213.rs
! fefe8876b61f2ea8b2778fe5218b58d9  gcc/testsuite/rust/compile/issue-4219.rs
! 8c94b3e7c76d776d5d6ea7583a0cc936  gcc/testsuite/rust/compile/issue-4222.rs
! 078c998e0bef1c3f75f70ab856836cf1  gcc/testsuite/rust/compile/issue-4225.rs
! 751255fd9a39e6c61470cae8afab84fd  gcc/testsuite/rust/compile/issue-4226.rs
! 3e09edbee458729b7ef284ee399dd891  gcc/testsuite/rust/compile/issue-4231.rs
! b71d5ff0a38e7a4230824523da226d1d  gcc/testsuite/rust/compile/issue-4232.rs
! 510c1b618e30d63f72b351215369f234  gcc/testsuite/rust/compile/issue-4234.rs
! b3cddeca15a7d211fd0486a280dab02d  gcc/testsuite/rust/compile/issue-4235.rs
! 0fc139bb6420f85c20c7573edd960813  gcc/testsuite/rust/compile/issue-4242.rs
! c7807406080caf33438776b26ccc98de  gcc/testsuite/rust/compile/issue-4245.rs
! d3c25032b8e53cce6c34fafb5c355bda  gcc/testsuite/rust/compile/issue-4260_0.rs
! 8535ad42022800c7f590dae363f7402d  gcc/testsuite/rust/compile/issue-4261.rs
! 4cca37aaba46ad2ca34e404507b2536a  gcc/testsuite/rust/compile/issue-4262.rs
! c4209d2cfbe219138e10a0f059076dc5  gcc/testsuite/rust/compile/issue-4267.rs
! 9924a2652de8938e92418d5a841cb69b  gcc/testsuite/rust/compile/issue-4301.rs
! 7c33cefa5e3570697e19ec562c0e91d4  gcc/testsuite/rust/compile/issue-4375-ice-regression.rs
! bf86a972ac45a08d4f4b7e25d7f5c73c  gcc/testsuite/rust/compile/issue-4375-multiple-errors.rs
! cb6448e8e2e1b415379859fe50662527  gcc/testsuite/rust/compile/issue-4375-tuple-pattern.rs
! 7a4f4cd6bc700e4b5eeabda1a17df8e4  gcc/testsuite/rust/compile/issue-4387.rs
! 034889a419ac9faab98a1622dfe46575  gcc/testsuite/rust/compile/issue-4388.rs
! ac198e811e4f3f12acac069097654e3d  gcc/testsuite/rust/compile/issue-4402.rs
! 44ab13aab8e256b568ca92ab03f8f569  gcc/testsuite/rust/compile/issue-4410.rs
! c03b00d1b60c9cd97339d874d8ba7613  gcc/testsuite/rust/compile/issue-4411.rs
! b9dece72b980e6878e0b9c8f92233dad  gcc/testsuite/rust/compile/issue-4412.rs
! 6e2900f5f167d67ed6e69842a0ef2a48  gcc/testsuite/rust/compile/issue-4413.rs
! 7835d03556e24617123ceaf32f087c93  gcc/testsuite/rust/compile/issue-4414.rs
! a54fd203759501635c8dded722e53305  gcc/testsuite/rust/compile/issue-4433.rs
! 056ded6ab1597de901b0442358e37ff4  gcc/testsuite/rust/compile/issue-4517.rs
! a814a3e2cad8eccf8272598f00384a38  gcc/testsuite/rust/compile/issue-557.rs
! 93b8051018ad8ff1a45c001b33db9697  gcc/testsuite/rust/compile/issue-635-1.rs
! 45b28bac74e6ab3db3594e805656e836  gcc/testsuite/rust/compile/issue-635-2.rs
! 8ff2f73b4862c004f886149cd5a837a4  gcc/testsuite/rust/compile/issue-850.rs
! beb150200d09ac1befce9e72c3e91953  gcc/testsuite/rust/compile/issue-852.rs
! 870ba247d32fddd243ad7e4454d5725a  gcc/testsuite/rust/compile/issue-855.rs
! ef28cba4ab6fb8e74465eb070b887387  gcc/testsuite/rust/compile/issue-867.rs
! a84db31db1ee4fdf339e745cda91d4e3  gcc/testsuite/rust/compile/issue-925.rs
! a9f1fae1fccdf4c532a7aa0372993dd2  gcc/testsuite/rust/compile/issue_4402_foo.rs
! 1b6b24150133d5d289bc3d802d3ff5a0  gcc/testsuite/rust/compile/iterators1.rs
! 5a347e59d47b125a2cd33d06e8663f67  gcc/testsuite/rust/compile/lang-impl.rs
! b13a9b4fdde57deff61e694ae3c96e53  gcc/testsuite/rust/compile/lang_feature_gate.rs
! 4f3427d14c7a910ca47c17d9c09dbbb9  gcc/testsuite/rust/compile/let_alt.rs
! 69ba857e39678ce4bdee992dd13f0c17  gcc/testsuite/rust/compile/lifetime_name_validation.rs
! 899b97e2e604ccbbe3bec7453a3244bd  gcc/testsuite/rust/compile/link_name-malformed.rs
! 40416d83c115d9b158e2ce39e28e0fda  gcc/testsuite/rust/compile/link_section-malformed.rs
! 1c249b8fecea4da2c1b5a0c6c16465db  gcc/testsuite/rust/compile/lookup_err1.rs
! 2bd6bcd6113b1f99111fb8ff6a7d75c7  gcc/testsuite/rust/compile/loop_constant_context.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/builtin/builtin_macro.exp
! cb8c4d14800837477cd7a5ac34ee53ef  gcc/testsuite/rust/compile/macros/builtin/compile_error.rs
! f26cb01b22ed4b2c9501fa0184223c2e  gcc/testsuite/rust/compile/macros/builtin/concat.rs
! 301621160505aa17f44e4d7e57866c82  gcc/testsuite/rust/compile/macros/builtin/eager1.rs
! 5bf43102845b1bfd8e7ecda9699f69fd  gcc/testsuite/rust/compile/macros/builtin/eager2.rs
! 40709a01d2ef59d69b31d0a9dd201d32  gcc/testsuite/rust/compile/macros/builtin/eager3.rs
! 249a90e5584f358706d01af5982243dc  gcc/testsuite/rust/compile/macros/builtin/env.rs
! 7c516c321c99795b5e55e9fd8552329c  gcc/testsuite/rust/compile/macros/builtin/include1.rs
! 128993435cb1fa69362ac50bf135b907  gcc/testsuite/rust/compile/macros/builtin/include2.rs
! b310ebf4bf7a2ce5e4c9db00b3a4934c  gcc/testsuite/rust/compile/macros/builtin/include3.rs
! 7e1d1c57c0b9359e54b6db3363c82188  gcc/testsuite/rust/compile/macros/builtin/include4.rs
! 3f43c031ae4977ce314778a4499831dc  gcc/testsuite/rust/compile/macros/builtin/include_bytes.rs
! 6f1c077bb14895e3f7cf9a63ad2bdeb6  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
! de4e6a92fcbd152f9a628a87df0a1c92  gcc/testsuite/rust/compile/macros/builtin/include_str.rs
! 4f23f0bf443b84dd0bebdcd870672068  gcc/testsuite/rust/compile/macros/builtin/include_str_location_info.rs
! 6137ae4adee7c8ba311c4fc03ef274f6  gcc/testsuite/rust/compile/macros/builtin/invalid_utf8
! a7037f47f0dac11e63524690840145c9  gcc/testsuite/rust/compile/macros/builtin/not_found.rs
! 77956ab5f65e22c2d64d31b0b2a0456e  gcc/testsuite/rust/compile/macros/builtin/option_env1.rs
! 0da41e861309c6bcc84594e54fbdbb36  gcc/testsuite/rust/compile/macros/builtin/option_env2.rs
! 08b7dbe1772a67b3cfe17e8ef2734d80  gcc/testsuite/rust/compile/macros/builtin/option_env3.rs
! 50a846da7a58654f113f62c238c57dfd  gcc/testsuite/rust/compile/macros/builtin/recurse2.rs
! 183bfd0188fdd551486f4f2435c0211c  gcc/testsuite/rust/compile/macros/mbe/macro-delim.rs
! e9e7923e77e26e93d7fb16fc712b773a  gcc/testsuite/rust/compile/macros/mbe/macro-duplicate-binding.rs
! 3f9b22690398d0da878438322a85fde9  gcc/testsuite/rust/compile/macros/mbe/macro-expand-module.rs
! 818b149dd909431a8aadbd3b39e12f79  gcc/testsuite/rust/compile/macros/mbe/macro-issue1053-2.rs
! 276c0b3bae8c673dd99fcd7e245842e3  gcc/testsuite/rust/compile/macros/mbe/macro-issue1053.rs
! eb426ebd38ba2e556c4908ced3361758  gcc/testsuite/rust/compile/macros/mbe/macro-issue1224.rs
! 6bfafd3790c16f3099fcca944e7a9910  gcc/testsuite/rust/compile/macros/mbe/macro-issue1233.rs
! 73a8fb538eb4cd91e167b6d07a7dd5da  gcc/testsuite/rust/compile/macros/mbe/macro-issue1395-2.rs
! cc25b93a27ff2da8a9d70bcc76f02260  gcc/testsuite/rust/compile/macros/mbe/macro-issue1395.rs
! 9e7e7f87a56cdf1f3c108f91cc221448  gcc/testsuite/rust/compile/macros/mbe/macro-issue1400-2.rs
! ef3b2c9279d11c09692ac08c935df3b6  gcc/testsuite/rust/compile/macros/mbe/macro-issue1400.rs
! 9c91e6512d8c0b6855250b78781efaea  gcc/testsuite/rust/compile/macros/mbe/macro-issue2092.rs
! 247b84c7fed7af5dac3e9cb753fd3e29  gcc/testsuite/rust/compile/macros/mbe/macro-issue2192.rs
! bb80e2f1aa970257873476ca236492f3  gcc/testsuite/rust/compile/macros/mbe/macro-issue2194.rs
! bc9cfdb6c4968404af188bc573ef47fe  gcc/testsuite/rust/compile/macros/mbe/macro-issue2229.rs
! 927dfc70ae634fd24c03b6e7a4c6610e  gcc/testsuite/rust/compile/macros/mbe/macro-issue2264.rs
! 2eaa30cb916ca0695aee9908dd413436  gcc/testsuite/rust/compile/macros/mbe/macro-issue2268.rs
! f3789c0cc1eb68b6c182791f68568627  gcc/testsuite/rust/compile/macros/mbe/macro-issue2273.rs
! a0216e5d4087fddbb606b23b33a381ec  gcc/testsuite/rust/compile/macros/mbe/macro-issue2653.rs
! 55e817064337a41522047c75e2cb21fa  gcc/testsuite/rust/compile/macros/mbe/macro-issue2983_2984.rs
! 5f5a829c56c919ae7378c89b1c517a17  gcc/testsuite/rust/compile/macros/mbe/macro-issue3608.rs
! f0aeb2e75050c029310b850ed491ced5  gcc/testsuite/rust/compile/macros/mbe/macro-issue3693.rs
! 818234ceeebf8090bbd41648567bc1c1  gcc/testsuite/rust/compile/macros/mbe/macro-issue3708.rs
! 932e4cd369ab59b5ac8d8a9d600f996e  gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-1.rs
! dc1969f993bc862d1a8c8294f9a650d5  gcc/testsuite/rust/compile/macros/mbe/macro-issue3709-2.rs
! a9904e12b5354c00e00fab1c98815900  gcc/testsuite/rust/compile/macros/mbe/macro-issue4054.rs
! 19a04cf200d3172ab04aaa9b7710c459  gcc/testsuite/rust/compile/macros/mbe/macro1.rs
! 64096027028ff486eea8b934c7d18565  gcc/testsuite/rust/compile/macros/mbe/macro10.rs
! 5f61f8bdc742a484ace904c6bfe59308  gcc/testsuite/rust/compile/macros/mbe/macro11.rs
! 6729907018acb2222fa52bbe504ec21a  gcc/testsuite/rust/compile/macros/mbe/macro12.rs
! db87947bc23eb85d6bcc3ab67e918598  gcc/testsuite/rust/compile/macros/mbe/macro13.rs
! 5c602296ce847981f167cf69ce985c98  gcc/testsuite/rust/compile/macros/mbe/macro14.rs
! 7242e3a717b305d1ac74bd99667372a3  gcc/testsuite/rust/compile/macros/mbe/macro15.rs
! 1f42031e7724d8d623d5addbadee14f8  gcc/testsuite/rust/compile/macros/mbe/macro16.rs
! ae016becb9b863cca1002d8ddb76de77  gcc/testsuite/rust/compile/macros/mbe/macro17.rs
! d942f8915edb100e686832a78f90bbc4  gcc/testsuite/rust/compile/macros/mbe/macro18.rs
! d9b71868f19bef7e62b2ada63fdc5927  gcc/testsuite/rust/compile/macros/mbe/macro19.rs
! 2ae6f7c065d95b2186aa4566f8f40cd2  gcc/testsuite/rust/compile/macros/mbe/macro2.rs
! fb0215ee9b88ea6a54f72c9743c65a01  gcc/testsuite/rust/compile/macros/mbe/macro20.rs
! 7711a9bd135a612aced15ef0a914931f  gcc/testsuite/rust/compile/macros/mbe/macro21.rs
! 454b862d7a4567a49c957d01a8e0e832  gcc/testsuite/rust/compile/macros/mbe/macro22.rs
! b6a8656828f9457df51833ab7d9f218e  gcc/testsuite/rust/compile/macros/mbe/macro23.rs
! a0f5383f9056258b114d8f735ec97cf1  gcc/testsuite/rust/compile/macros/mbe/macro25.rs
! 030f9eb5ec30b6ceb940bf5813bab85d  gcc/testsuite/rust/compile/macros/mbe/macro26.rs
! 8e5133ec5e0d4e1755f4f7736935d0ef  gcc/testsuite/rust/compile/macros/mbe/macro27.rs
! 063d252e01b8eaca059be43e70216199  gcc/testsuite/rust/compile/macros/mbe/macro28.rs
! 06bb93a9fdcab4ea1bc3b2e6fcb8a4ed  gcc/testsuite/rust/compile/macros/mbe/macro29.rs
! ffceecd5f649496096b9c7f8c179d790  gcc/testsuite/rust/compile/macros/mbe/macro3.rs
! bba50d52045f65ba83f17f488f7e35d3  gcc/testsuite/rust/compile/macros/mbe/macro30.rs
! 49cc172983825d60aafe2cd601058b2e  gcc/testsuite/rust/compile/macros/mbe/macro31.rs
! bb185868562e77319e261b98e089549c  gcc/testsuite/rust/compile/macros/mbe/macro32.rs
! 81f15f6ec86fba12ae3895336fcdfc0e  gcc/testsuite/rust/compile/macros/mbe/macro33.rs
! 3bbd103308ad1a4ced2d4a60812643d7  gcc/testsuite/rust/compile/macros/mbe/macro34.rs
! 8c97d23782a01c91204aa009b84285f4  gcc/testsuite/rust/compile/macros/mbe/macro35.rs
! 1e59988b986041e5a6b7f646be97c827  gcc/testsuite/rust/compile/macros/mbe/macro36.rs
! 6166fcedf8f1a44ae5f4b839c46203db  gcc/testsuite/rust/compile/macros/mbe/macro37.rs
! 7fb42943e2862841028c2a19c3049c8a  gcc/testsuite/rust/compile/macros/mbe/macro38.rs
! caa3df7cc9b0eb5eb30b34436989eb9d  gcc/testsuite/rust/compile/macros/mbe/macro39.rs
! dea461b2783eafbe058726675c55f31a  gcc/testsuite/rust/compile/macros/mbe/macro4.rs
! ee5f41e3598d87cbc94ce3e852ad3566  gcc/testsuite/rust/compile/macros/mbe/macro40.rs
! a6677c816d3c82bc2c206bf3057dbfc2  gcc/testsuite/rust/compile/macros/mbe/macro41.rs
! aa571a1af8a8ad878d7cc8b136b3b226  gcc/testsuite/rust/compile/macros/mbe/macro42.rs
! c776f94f412276d094404230ea81b92d  gcc/testsuite/rust/compile/macros/mbe/macro43.rs
! 853e540c358e2c07f88060760d8f5549  gcc/testsuite/rust/compile/macros/mbe/macro44.rs
! 1ea223e9e390d5fc675e006625677587  gcc/testsuite/rust/compile/macros/mbe/macro45.rs
! 2b1fbd06941e33ca3f9217eaa9a00723  gcc/testsuite/rust/compile/macros/mbe/macro46.rs
! 6f586d4d0b89b89c449ef55f7dbd2c1c  gcc/testsuite/rust/compile/macros/mbe/macro47.rs
! 264204d073f7facb69269a835c0a8297  gcc/testsuite/rust/compile/macros/mbe/macro48.rs
! 388ba555549693807e92d5a93aff78ce  gcc/testsuite/rust/compile/macros/mbe/macro49.rs
! e87677c7388285cdd21e81353733003e  gcc/testsuite/rust/compile/macros/mbe/macro5.rs
! 8f6a1d2b58555704c719a11049a1e921  gcc/testsuite/rust/compile/macros/mbe/macro50.rs
! 7953774dcf84d18b7c615aff495d1bb8  gcc/testsuite/rust/compile/macros/mbe/macro51.rs
! 6e2f9d71c2b465859972d4820491ba31  gcc/testsuite/rust/compile/macros/mbe/macro52.rs
! 1ebf74fab52a463bc5acaf5ca12bb1b3  gcc/testsuite/rust/compile/macros/mbe/macro53.rs
! 205e32e9a8c7805ed9c978ff779f5d3e  gcc/testsuite/rust/compile/macros/mbe/macro54.rs
! 0cf550d62101c1237632e0e56335fc8f  gcc/testsuite/rust/compile/macros/mbe/macro55.rs
! b8a7c530f7860fb135cbe960165b1cdf  gcc/testsuite/rust/compile/macros/mbe/macro56.rs
! 1937d15ba1e03119a85ef6ddd48b4ef7  gcc/testsuite/rust/compile/macros/mbe/macro57.rs
! 340776662ee923d7d2be31ea91ba1578  gcc/testsuite/rust/compile/macros/mbe/macro58.rs
! 477341afdcd2e01f585f8831afb56273  gcc/testsuite/rust/compile/macros/mbe/macro6.rs
! 9eb1a540ede29562cb8b9d85e810cc32  gcc/testsuite/rust/compile/macros/mbe/macro7.rs
! cb74349555219f2c7d6160714b93a6bd  gcc/testsuite/rust/compile/macros/mbe/macro8.rs
! 09c76bdc36d100c6bdcea97014611fe3  gcc/testsuite/rust/compile/macros/mbe/macro9.rs
! 6f3cda4608059ed4a910ae7bfcff33b6  gcc/testsuite/rust/compile/macros/mbe/macro_call_statement.rs
! 88c4ff418a5c49ee6e471dc6bfc43ac3  gcc/testsuite/rust/compile/macros/mbe/macro_export_1.rs
! 2fe34921fe2f009319438bae53a516ff  gcc/testsuite/rust/compile/macros/mbe/macro_return.rs
! 505a80d3017c261d0c0faa5e00a54afc  gcc/testsuite/rust/compile/macros/mbe/macro_rules_macro_rules.rs
! 870cd4b1b72ca1579c8b3d9a6e3ca2fa  gcc/testsuite/rust/compile/macros/mbe/macro_use1.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/mbe/mbe_macro.exp
! b87ade356343086f0912e7966b962bbb  gcc/testsuite/rust/compile/macros/mbe/meta-param.rs
! 1f68f267de1c42278d88f822578f6b1c  gcc/testsuite/rust/compile/macros/proc/attribute_crate_type.rs
! 7b598aaf128786703d737a9a01663242  gcc/testsuite/rust/compile/macros/proc/attribute_non_function.rs
! b7672bf331bdff972fc4bb9f42465296  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_function.rs
! d9316c1cf8d471f9509a070a9bdedfdf  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_method.rs
! 338a5ae921541b4c25cb81ef9f4953bd  gcc/testsuite/rust/compile/macros/proc/attribute_non_root_module.rs
! 1c1ceb76337ab182a86d650757a85d2e  gcc/testsuite/rust/compile/macros/proc/attribute_private.rs
! 1cce6dd191a3df456483115d09f8d542  gcc/testsuite/rust/compile/macros/proc/crate_type.rs
! 88ee00dda9ed901f3cc2dd758fc662e0  gcc/testsuite/rust/compile/macros/proc/derive_crate_type.rs
! d8fcd0056853ae7660c7481670ddfcbe  gcc/testsuite/rust/compile/macros/proc/derive_malformed.rs
! 0ee9273a2c429023f3e26f00ff03e2d3  gcc/testsuite/rust/compile/macros/proc/derive_non_function.rs
! 035abd6ed75e5432cebb1e1a904dbc3a  gcc/testsuite/rust/compile/macros/proc/derive_non_root_function.rs
! e51ec3beee331e0111508590ea273b56  gcc/testsuite/rust/compile/macros/proc/derive_non_root_module.rs
! 565e64c90467720e683d09409d1e3325  gcc/testsuite/rust/compile/macros/proc/derive_private.rs
! e97d3dde5d907d2ce7ab2e6cab07eb63  gcc/testsuite/rust/compile/macros/proc/non_function.rs
! 8b329c4314289ff46f9845d048913247  gcc/testsuite/rust/compile/macros/proc/non_root_function.rs
! 4aa648a54ad09c90cd1c98a8bdec681c  gcc/testsuite/rust/compile/macros/proc/non_root_method.rs
! bbdb9f0568b8f7cf5531b32512812093  gcc/testsuite/rust/compile/macros/proc/non_root_module.rs
! 6788cde113498febb4994195ad38611e  gcc/testsuite/rust/compile/macros/proc/non_root_trait_method.rs
! 969d37790c3577f313949ab610b5093f  gcc/testsuite/rust/compile/macros/proc/private.rs
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/compile/macros/proc/proc_macro.exp
! 3ddb8ff3aa288c5534704cf07fb4a31a  gcc/testsuite/rust/compile/macros/proc/pub_function.rs
! 5c3ac43ca012b9ef427f72c84253a6aa  gcc/testsuite/rust/compile/macros/proc/pub_module.rs
! 8b5bd5e8fa486f76b7d454b353887bfb  gcc/testsuite/rust/compile/match-identifierpattern-enum.rs
! 99f0798d1feaf242e079fc2f855c2d1c  gcc/testsuite/rust/compile/match-identifierpattern.rs
! 58f785f58e63834808e8bdfbd1aaa909  gcc/testsuite/rust/compile/match-never-ltype.rs
! fef45a7ecdc3f94c20f5bedf91a3005e  gcc/testsuite/rust/compile/match-never-rtype.rs
! 40bd65f984fa8cfa035606e5f325370a  gcc/testsuite/rust/compile/match-restpattern-tuple-1.rs
! c810d046836ba823a23bc9d5ec6c707e  gcc/testsuite/rust/compile/match-restpattern-tuple-2.rs
! 39c6ae282dba15a3530638db64738c0b  gcc/testsuite/rust/compile/match-scope.rs
! d0bd7fb890101c1b7b872de5eb2d3823  gcc/testsuite/rust/compile/match-slicepattern-array.rs
! 358dbaf51f260ecd2d04888d03545af5  gcc/testsuite/rust/compile/match-slicepattern-slice.rs
! fa8f74b3d8e442faf12adeae76b25d1a  gcc/testsuite/rust/compile/match-struct-path.rs
! 0254375080772a34b327f39542452054  gcc/testsuite/rust/compile/match-structpattern-tuplefield-err.rs
! 96b52c4545acfae3891c360e4087e400  gcc/testsuite/rust/compile/match-structpattern-tuplefield.rs
! 96b7599bdbb49f1d4f599159826b274c  gcc/testsuite/rust/compile/match-tuplestructpattern-err.rs
! 4a1828ef56767e9825fe40e83410a64a  gcc/testsuite/rust/compile/match-tuplestructpattern-non-variant.rs
! 729b88336adbdb269ac8fd242cfacc90  gcc/testsuite/rust/compile/match-tuplestructpattern-rest.rs
! 0818b58497caad7298f481f247cc240f  gcc/testsuite/rust/compile/match-tuplestructpattern.rs
! 4e70ae012824eae876de3dc0fccc2dce  gcc/testsuite/rust/compile/match1.rs
! 7585586d21e13d082c595ed857b130fe  gcc/testsuite/rust/compile/match2.rs
! e0000e4e7e2499fe4a33d0675937624f  gcc/testsuite/rust/compile/match3.rs
! 64a884bb6b9498957a38965c523b6624  gcc/testsuite/rust/compile/match4.rs
! ebb0ad714494cb4186ea0e937e397a12  gcc/testsuite/rust/compile/match5.rs
! da7a1b6a348ea1de45c59382f6604b25  gcc/testsuite/rust/compile/match6.rs
! 30020a4763203b2323163b947b7885c3  gcc/testsuite/rust/compile/match7.rs
! 98a68e74f7b6fa6302b01650feeb31ed  gcc/testsuite/rust/compile/match8.rs
! 93166818358f776afd3b261aa7a4e199  gcc/testsuite/rust/compile/match9.rs
! 6b527dc48936c30ae1bdc2f1de267e14  gcc/testsuite/rust/compile/match_break.rs
! e1eaf64215ba0ce1a54872c4a2755695  gcc/testsuite/rust/compile/may_dangle.rs
! 6cb8e9dd736cf57409f8e9a99c35a283  gcc/testsuite/rust/compile/method1.rs
! 38e589f2a7c76b5db43f54b680f748cf  gcc/testsuite/rust/compile/method2.rs
! 271c3222ab9469f9b089235cfeccbae7  gcc/testsuite/rust/compile/min_specialization1.rs
! b23f62fc9d1eb805631bc50ee1e59f27  gcc/testsuite/rust/compile/mismatch-crate-name.rs
! 73b118a19b96907169d1be7f656ddd55  gcc/testsuite/rust/compile/mismatched-types.rs
! e05003672155738b42ff0078b90b057c  gcc/testsuite/rust/compile/missing_closing_paren.rs
! b156f9fdfb8912df64086e4f8eb959dd  gcc/testsuite/rust/compile/missing_constructor_fields.rs
! 9b6e3f6b3dd4d34b65d0488caa8b8def  gcc/testsuite/rust/compile/missing_return1.rs
! 69ce5ca8d9cd89167d372f1e02f637fa  gcc/testsuite/rust/compile/mod_missing_middle.rs
! 8be74e65315656ba49991eeddb4db9df  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/both_path.rs
! c77634f91d8ff73375a4fd3937c763c7  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not.rs
! 114914d5db60d7facb09eef97ad567fd  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/explicit.not/other.rs
! ac77827fc59ef6ea108224c49a90f317  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/inner_path.rs
! f929e3983fc4d4174295260c2be7ac3f  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/outer_path.rs
! 85ffbe2b8885b49d7ace336198267ddc  gcc/testsuite/rust/compile/mod_missing_middle/missing_middle/sub/mod.rs
! 54e02f63098249e48033d29675c0343f  gcc/testsuite/rust/compile/multi_reference_type.rs
! b55cc399683de9ecca8d6eac78890ca9  gcc/testsuite/rust/compile/multiline-string.rs
! 676642f0859218da12ea743c5de126dd  gcc/testsuite/rust/compile/multiple_bindings1.rs
! 55e37bf9859e85a3b10bd640463736a2  gcc/testsuite/rust/compile/multiple_bindings2.rs
! 4d052e42b370db018156a36082a835a4  gcc/testsuite/rust/compile/mutability_checks1.rs
! 53e224c4d0325a51f40157b78552adf9  gcc/testsuite/rust/compile/name_resolution1.rs
! 65e98a796b5cd0baa5413ee35329ebcd  gcc/testsuite/rust/compile/name_resolution10.rs
! 7b449d56f82c9e29a3d594976d99e99a  gcc/testsuite/rust/compile/name_resolution11.rs
! f2c9a51deb00b102bc8d0f9344e276f9  gcc/testsuite/rust/compile/name_resolution12.rs
! 7338005fd395d8e9ed9c6be89e819d30  gcc/testsuite/rust/compile/name_resolution13.rs
! 124b2f582e32fa6f3179ea77b5541f0b  gcc/testsuite/rust/compile/name_resolution14.rs
! e26d6d7d190dd3ec0ae0122f369e6bb5  gcc/testsuite/rust/compile/name_resolution15.rs
! a654f43cbe5d73ea01758004f7f9577b  gcc/testsuite/rust/compile/name_resolution16.rs
! 6de5748bc5c9ad954d6c14ce00a86cd7  gcc/testsuite/rust/compile/name_resolution17.rs
! 67026e46466f4b84c8fc28103ee77d48  gcc/testsuite/rust/compile/name_resolution18.rs
! bc7883899fc315973fcec3e1decda04a  gcc/testsuite/rust/compile/name_resolution19.rs
! 76f3b37dff27fe5b1fdb2ec8f3e9611a  gcc/testsuite/rust/compile/name_resolution2.rs
! bd02009d404a37c73fb2be7b3d67dd4c  gcc/testsuite/rust/compile/name_resolution20.rs
! acbfdf43d45e9b359ffe6452e728ce3e  gcc/testsuite/rust/compile/name_resolution22.rs
! 4e31355983ef2af77cabdb9910bd4ae0  gcc/testsuite/rust/compile/name_resolution23.rs
! 6715795bac2540387c9db9c2c23156ab  gcc/testsuite/rust/compile/name_resolution24.rs
! cefb9b77daaccd73b370186f4ee71449  gcc/testsuite/rust/compile/name_resolution25.rs
! f2d88fe8252f01af4730abafad1310e1  gcc/testsuite/rust/compile/name_resolution26.rs
! 5f38daf97ae6c4790bacbccb0704c14b  gcc/testsuite/rust/compile/name_resolution3.rs
! bfbd3d4e88343eb9eb20e7216d26b6e9  gcc/testsuite/rust/compile/name_resolution4.rs
! 58d0e429429b9438c856e08d1f54c2ac  gcc/testsuite/rust/compile/name_resolution5.rs
! b8fe5fa7c75f31ce31a29e934361b8e6  gcc/testsuite/rust/compile/name_resolution6.rs
! 101c385693c20b6e2ca448ea557cad17  gcc/testsuite/rust/compile/name_resolution7.rs
! 964741c9edfb144406cb43736debd1b4  gcc/testsuite/rust/compile/name_resolution8.rs
! 331d8a2c8dadde19447c079904d9cdf5  gcc/testsuite/rust/compile/name_resolution9.rs
! ab14904fecc4d90966c63e938c0cca58  gcc/testsuite/rust/compile/negative_impls.rs
! c00d461f24caa97943eeaff8b1bc69e7  gcc/testsuite/rust/compile/negative_impls_2.rs
! c82b15409e3f9bd9cfce221c26d508c5  gcc/testsuite/rust/compile/nested_generic.rs
! 82ec42e22d3d230c5f1f782ed77b62da  gcc/testsuite/rust/compile/nested_macro_definition.rs
! 799772ef451c56731b092819d07cc73a  gcc/testsuite/rust/compile/nested_macro_use1.rs
! aeb9642a91d5044e08975199bda7f2b7  gcc/testsuite/rust/compile/nested_macro_use2.rs
! b489b1ce6e7581bb80db81f93d8672d5  gcc/testsuite/rust/compile/nested_macro_use3.rs
! f159ce03b1d0ade06a353e46a520eeff  gcc/testsuite/rust/compile/never_type1.rs
! c97542e19c49bdb1c1e6093f0d15ec85  gcc/testsuite/rust/compile/no-crate-level-outer-attr.rs
! ef10078e5cc72b7aa58ddd6f57415ed9  gcc/testsuite/rust/compile/no_core_feature_gate.rs
! cba1a4379934d707369e076d94501ff0  gcc/testsuite/rust/compile/no_mangle-malformed.rs
! cef42490f234ffc267de19e41732f4d9  gcc/testsuite/rust/compile/non-snake-case_0.rs
! e00a3ea37078ff74ef1a8388f56054ec  gcc/testsuite/rust/compile/non-upper-case-globals_0.rs
! e33927992c01ea6d969a35997cdc12fb  gcc/testsuite/rust/compile/non_foreign_variadic_function.rs
! a5b0c4028c57585f58285142f959f4de  gcc/testsuite/rust/compile/non_member_const.rs
! 5250052a3dd77487c3b039c7fa2caaab  gcc/testsuite/rust/compile/nonexistent-field.rs
! d7248192474d069fc60fe0c38f850543  gcc/testsuite/rust/compile/not_a_float_literal_tuple_index.rs
! f284cab2e3a08d8b616f63827338bcb3  gcc/testsuite/rust/compile/not_find_value_in_scope.rs
! d1843debe822d39fc915437e12117fb6  gcc/testsuite/rust/compile/not_raw_ref_op.rs
! bfc63141a529b71cb9f2e2c2c46c426a  gcc/testsuite/rust/compile/offset_of1.rs
! f7b4c781dd9069563820c35ff1058b11  gcc/testsuite/rust/compile/offset_of2.rs
! 22abc70989fbc0c86f9b404a299022dc  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg.rs
! 619cecc19aef918ce6225be0e8c21cf1  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg2.rs
! ba71e91d396d288525ad2edc9fe644da  gcc/testsuite/rust/compile/parse_associated_type_as_generic_arg3.rs
! e91d7a52d6164857c2444108808689c5  gcc/testsuite/rust/compile/parse_closure_bind.rs
! ffe4dc915956341c38692d2c83ae269e  gcc/testsuite/rust/compile/parse_complex_generic_application.rs
! 462248db05bd48a29ba214b44c833656  gcc/testsuite/rust/compile/parse_complex_generic_application2.rs
! 25232ca599f01092d8758e79c58b0610  gcc/testsuite/rust/compile/parse_empty_tuple_pattern.rs
! 89552bc0e726f658f9878eed0ab07687  gcc/testsuite/rust/compile/parse_float_dot.rs
! 6538048cf647faf05f68b98cbae8ea84  gcc/testsuite/rust/compile/parse_generic_path_expr.rs
! 09d28688c270d5f3fc8e339181c21347  gcc/testsuite/rust/compile/parse_global_path_generic.rs
! 0492e3bed0f716839877d4c4b494c6f9  gcc/testsuite/rust/compile/parse_invalid_specialization.rs
! 29832e9bb4205cb9a35115b508d97469  gcc/testsuite/rust/compile/parse_item_default_macro.rs
! 438e37bd3c640ae7b54248dc7c3afae3  gcc/testsuite/rust/compile/parse_pub_unit_type.rs
! 2b57577e8f3b2a78992729a363eb3207  gcc/testsuite/rust/compile/parse_range.rs
! ad92a0c142ea935286208a3f203656a7  gcc/testsuite/rust/compile/parse_simple_path_fail_1.rs
! 3f996bd45c64270bd4d6d1d1ce90ac29  gcc/testsuite/rust/compile/parse_simple_path_fail_2.rs
! bda5856f76b41c9208ff016ef1f50a1e  gcc/testsuite/rust/compile/parse_specialization.rs
! 83c14f25f7b3041c4426e13d18d3f461  gcc/testsuite/rust/compile/parse_time_feature_gate.rs
! d47bb2df5d518b3c7a28d2063bcac758  gcc/testsuite/rust/compile/parse_variadic_function.rs
! 881f42ff86c88cc9b212d26005d2ab38  gcc/testsuite/rust/compile/path_as_generic_arg.rs
! 782570514ed597a3ae13c94d445c203d  gcc/testsuite/rust/compile/pattern-or.rs
! 9ea8a642a402b76f0711444e9834a2cb  gcc/testsuite/rust/compile/pattern-struct.rs
! 6cb1c8a4471e202aa374a5ea8e1eeda9  gcc/testsuite/rust/compile/pattern_variadic.rs
! 6b872e90db3a9b9253d7b3f1426ba9bf  gcc/testsuite/rust/compile/prelude_import.rs
! a0b4c917c78ab29ffebeec7746b9371f  gcc/testsuite/rust/compile/primitive-import.rs
! 998b0bead2df44faa0501b8865ad35e5  gcc/testsuite/rust/compile/privacy1.rs
! a8708326270802322c03f123c38dc8e5  gcc/testsuite/rust/compile/privacy2.rs
! 48a957aa137aedf06662baf127578a3b  gcc/testsuite/rust/compile/privacy3.rs
! 46ce486cc8f4bdde20b8243982345ce2  gcc/testsuite/rust/compile/privacy4.rs
! 0bdc986dadb8c9eca1c140c95e9d7078  gcc/testsuite/rust/compile/privacy5.rs
! 9e49a37400210c565daea34c30093a91  gcc/testsuite/rust/compile/privacy6.rs
! cc134ce98a70f89b1cc6e8eb7b3d02e1  gcc/testsuite/rust/compile/privacy7.rs
! e804429e6393c3c8f100d264fa9e59ea  gcc/testsuite/rust/compile/privacy8.rs
! d8b3fba64a76ee22a895f421a212eab8  gcc/testsuite/rust/compile/privacy9.rs
! 8d3ba105a625a67ff388cd7b33509071  gcc/testsuite/rust/compile/ptr_int_cast.rs
! c5e466e43da76f5767d68cf76b0528eb  gcc/testsuite/rust/compile/pub_restricted_1.rs
! e7f62c5a2410db5f3dc63db8aad5e35e  gcc/testsuite/rust/compile/pub_restricted_2.rs
! 01e3d7833b8bfbfd4047e3c89417dba1  gcc/testsuite/rust/compile/pub_restricted_3.rs
! f979ef0a3a20be67d796933026a529ab  gcc/testsuite/rust/compile/range_from_expr_for_loop.rs
! 918e704630d2fa29298ece70df558de9  gcc/testsuite/rust/compile/raw-byte-string-loc.rs
! 29ba3f518310c4d3883d7325a533e604  gcc/testsuite/rust/compile/raw-string-loc.rs
! 78071b8f9660756240c4db45cbdf36e6  gcc/testsuite/rust/compile/raw_identifiers_bad_keywords.rs
! d7ca38bfaa7198e38ae6844e91550bc8  gcc/testsuite/rust/compile/raw_identifiers_underscore.rs
! 059ba938f2ab6a631ebe5d62955dfa4f  gcc/testsuite/rust/compile/raw_ref_op.rs
! 247c9923216193a50a62b142c087c73b  gcc/testsuite/rust/compile/raw_ref_op_feature_gate.rs
! 96b2afb7a70cd71387a648d4565e2ec5  gcc/testsuite/rust/compile/raw_ref_op_invalid.rs
  18866bec0bccb2a4700637c28efbeaac  gcc/testsuite/rust/compile/rawbytestring.rs
! 80d6ab590380cd2991b7976bfc1c051a  gcc/testsuite/rust/compile/redef_error1.rs
! 84b0cb17945518415280c8a2fd91f229  gcc/testsuite/rust/compile/redef_error2.rs
! cf2b3c0bc6033821d29e4f902e3bce10  gcc/testsuite/rust/compile/redef_error3.rs
! ddeb81c45e48a1ad5e6a995f6babd62b  gcc/testsuite/rust/compile/redef_error4.rs
! 275ba9d0727b56d18b6a1eb43dbb3776  gcc/testsuite/rust/compile/redef_error5.rs
! e917e2685cbcb2444a5edd1194777bb1  gcc/testsuite/rust/compile/redef_error6.rs
! 059046ef1ce8fe06f64fc2470804073a  gcc/testsuite/rust/compile/redundant-semicolons_0.rs
! fa8906f82a01ec9eef713f7cf1ff09c2  gcc/testsuite/rust/compile/ref_pattern_fn_param1.rs
! cdd2c22575d5041380d9d2293b77197b  gcc/testsuite/rust/compile/ref_pattern_fn_param2.rs
! c72552190a0a381dbcb7bab442fa77be  gcc/testsuite/rust/compile/reference1.rs
! 700fcbc6b279ad121ec31a9e63d99034  gcc/testsuite/rust/compile/repeated_constructor_fields.rs
! 748c0d25ebc8672a5304e34e8e9b574c  gcc/testsuite/rust/compile/rust-const-blog-issue.rs
! 20623a5ba18e604ddf1be1ed636b6b15  gcc/testsuite/rust/compile/rust_abi.rs
! 52d16f29dbd1ca8921fdc064b00537f4  gcc/testsuite/rust/compile/rustc_attr1.rs
! e08b87d9d85bd8cf258b156d8c8074fd  gcc/testsuite/rust/compile/rustc_const_stable.rs
! 4b559d8796e89809f073fb08909aee03  gcc/testsuite/rust/compile/rustc_const_unstable.rs
! a66752fffa3bdfeb59eada30f50ce317  gcc/testsuite/rust/compile/same_field_name.rs
! 29393f315ab90f0cc70a576074df16c6  gcc/testsuite/rust/compile/self-in-impl.rs
! 44c330cfcee096e2ec499783947d7d76  gcc/testsuite/rust/compile/self-path1.rs
! f516bff1a2f8a3c502f5db31fb376e6a  gcc/testsuite/rust/compile/self-path2.rs
! 2cb78e4683d8b555aafae251168f3a3c  gcc/testsuite/rust/compile/self_const_ptr.rs
! 0104d7bf68b9cd2d8cb65ab53851fc37  gcc/testsuite/rust/compile/self_import_namespace.rs
! 72dd5d91a730323c286594950c44e00a  gcc/testsuite/rust/compile/self_mut_ptr.rs
! 7f9fe6f19c482ead5f45c02f967c3df0  gcc/testsuite/rust/compile/self_ptr.rs
! d1d203cbafa46137aab10fac502c6a19  gcc/testsuite/rust/compile/shadow1.rs
! ef94ff1027eab24b2062c108cd7570e6  gcc/testsuite/rust/compile/silly-order-bug.rs
  26a750cf312f91f5f35658b8da415d03  gcc/testsuite/rust/compile/sized-stub.rs
! 32b16467ee3835e8b4e9114c77bf2715  gcc/testsuite/rust/compile/sizeof-stray-infer-var-bug.rs
! c3d73a1629457a64988bae5aef812ad0  gcc/testsuite/rust/compile/slice_rest_pattern.rs
! 795cfefbfa0a6a2168e9f807bef77f90  gcc/testsuite/rust/compile/slicepattern-size-mismatch.rs
! c4fd55749770b6153ea63ff5304e5c31  gcc/testsuite/rust/compile/specify-crate-name.rs
! 87e8dc6b8361ed7648d9d3f8b9eed1eb  gcc/testsuite/rust/compile/static_item_0.rs
! 3b0a515f9607a59d29c68c6d26452045  gcc/testsuite/rust/compile/static_var1.rs
! 3a951074201732eca1f9de165c99358d  gcc/testsuite/rust/compile/stmt_with_block_dot.rs
! f820907e3b4c9fa82bb5eeeabd754e21  gcc/testsuite/rust/compile/stmt_with_block_err1.rs
! b0cef0432f8abe5420bed839d9fa5dfc  gcc/testsuite/rust/compile/stringify.rs
! 098385b2aed6b69cb4acf8208b7e8920  gcc/testsuite/rust/compile/struct-expr-parse.rs
! 114e86fe595ad0b4a17df0998431a69a  gcc/testsuite/rust/compile/struct_align1.rs
! a80a4b47254e4c6c3417fcbf78aaa3cf  gcc/testsuite/rust/compile/struct_align2.rs
! 9c1264420ddd6f79e6d0afc9b05bddda  gcc/testsuite/rust/compile/struct_expr_field_attributes.rs
! a8f1ceed50071a97c253b43be46467ab  gcc/testsuite/rust/compile/struct_init1.rs
! 0b225bf8ecb66e8cb2571c2e56a8b488  gcc/testsuite/rust/compile/struct_pack1.rs
! 869ce2ba2ad63cb41c29d186c25bdf46  gcc/testsuite/rust/compile/struct_pack2.rs
! a2266a3d916dc67709a41d5ecbdd03bc  gcc/testsuite/rust/compile/structural-eq-peq.rs
! 4abcd01b98ed664634df2400838bbf89  gcc/testsuite/rust/compile/syntax-only.rs
! 40ca9f9d7aeeba8749e3bbc4d0bb3ed7  gcc/testsuite/rust/compile/target_feature-malformed-4233.rs
! af28dcf462bd7dd449dd165b33f61d21  gcc/testsuite/rust/compile/template_function_0.rs
! 4cbfbdb2759e39317912022aab041274  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks.rs
! f8a5f896ff305bf374dbcaa073da17f1  gcc/testsuite/rust/compile/torture/all_doc_comment_line_blocks_crlf.rs
! bb0cab450e164e1057a99bf2da7ba6cb  gcc/testsuite/rust/compile/torture/alt_patterns1.rs
! 4b8c1c229010ba58c9e057732be05bcf  gcc/testsuite/rust/compile/torture/arithmetic_expressions1.rs
! 6552dca3d640070d0e57aa8a5aacf93a  gcc/testsuite/rust/compile/torture/array_const_fold_1.rs
! 32cd43c7c8fc3305c747c9986f054981  gcc/testsuite/rust/compile/torture/array_const_fold_2.rs
! a07fb2b845758be28ecea1da91d01ffb  gcc/testsuite/rust/compile/torture/array_function.rs
! 432b35363df6023f2b9f851d90264b45  gcc/testsuite/rust/compile/torture/array_type_infer.rs
! 2ebc34b4b9fb6fb140b87d16a0d6e4ce  gcc/testsuite/rust/compile/torture/array_zero_length.rs
! 892e4baa8701e98203ee21ddf3ee8796  gcc/testsuite/rust/compile/torture/arrays1.rs
! c25efa044ae51e4d4a5e51fa8a138e02  gcc/testsuite/rust/compile/torture/arrays2.rs
! a5c7c2bf27043aaab920cec42f2e4ce7  gcc/testsuite/rust/compile/torture/arrays3.rs
! 1815b5b2fe4f9238ac688316d5ccfadc  gcc/testsuite/rust/compile/torture/arrays4.rs
! 151780f4ec63391c6c313452ffe4cef4  gcc/testsuite/rust/compile/torture/arrays5.rs
! 154fee376a019ddf8a1e686e001928a0  gcc/testsuite/rust/compile/torture/arrays6.rs
! 92a01916a084e2b8d910ab0b6d5c616e  gcc/testsuite/rust/compile/torture/arrays_index1.rs
! 9b0caf7c11d13a1d2b6d123c5af46706  gcc/testsuite/rust/compile/torture/arrays_index2.rs
! c571c417e680cf9738d2e1b2192a8740  gcc/testsuite/rust/compile/torture/arrays_index3.rs
! f07f28b521a05ce8de817dcc4ee1af9f  gcc/testsuite/rust/compile/torture/as_bool_char.rs
! c58d9493b0407a6bc1c1f4bc8c7b16cd  gcc/testsuite/rust/compile/torture/associated_types1.rs
! 040f596a6e7f7d20f24be2eed7fcc138  gcc/testsuite/rust/compile/torture/autoderef1.rs
! 016a8ffad4ddb8c7b386e6a7ed33bc57  gcc/testsuite/rust/compile/torture/block_expr1.rs
! f9e4134cccd159956c7809cbaca86e7a  gcc/testsuite/rust/compile/torture/block_expr2.rs
! 14b1e45e6731e4f2db1b35b2435f564d  gcc/testsuite/rust/compile/torture/block_expr3.rs
! a7b7a0c47dff08f024ba1fee350fdeca  gcc/testsuite/rust/compile/torture/block_expr4.rs
! 35e2ccb3e5b532bc082aebe56f90e536  gcc/testsuite/rust/compile/torture/block_expr5.rs
! 69217e6169e7c7bf784a90709c08afd7  gcc/testsuite/rust/compile/torture/block_expr_parser_bug.rs
! cf6875af0b4f2b98419462f7fb97ab04  gcc/testsuite/rust/compile/torture/bom.rs
! 76af254ce6702e767144cb8053b838ba  gcc/testsuite/rust/compile/torture/bom_comment.rs
! c5055680d460bf368368b688f729875a  gcc/testsuite/rust/compile/torture/bom_shebang.rs
! e9a0d08cf46c4b072f7d62cb5701a0bd  gcc/testsuite/rust/compile/torture/bom_whitespace.rs
! fb7f7fa5c6ce0c7c39e699338fe0102e  gcc/testsuite/rust/compile/torture/bools_eq.rs
! 6d83f1a79e2e38897205c6b95bab217f  gcc/testsuite/rust/compile/torture/borrow1.rs
! f307403391f6a03eabda8f62a0d46f8d  gcc/testsuite/rust/compile/torture/borrow_function.rs
! 3d0124d546f9530c04dcf020ed3ac1ee  gcc/testsuite/rust/compile/torture/break_function.rs
! ff68a72773e7d4995cc72525dcd3f586  gcc/testsuite/rust/compile/torture/builtin_abort.rs
! 3d975dabd2484b3422a7df4394f2ac99  gcc/testsuite/rust/compile/torture/byte_char_str.rs
! 32070c54824e1bc479c25022df9e27b1  gcc/testsuite/rust/compile/torture/byte_str.rs
! 62cf2f8c09a63440eb5fb4c1b01a72e3  gcc/testsuite/rust/compile/torture/cast1.rs
! d4e72f588f3419608afb096193139fe5  gcc/testsuite/rust/compile/torture/cast2.rs
! 4884029835db46b25ade3968ff6e5207  gcc/testsuite/rust/compile/torture/cast3.rs
! e7bd6565ceef86474918d000ddebccae  gcc/testsuite/rust/compile/torture/cfg_attr.rs
! 1634f14096f414cb26c6404a6fb585af  gcc/testsuite/rust/compile/torture/char1.rs
! 5016f7df27e6eccf6e9a0aa8e456359c  gcc/testsuite/rust/compile/torture/check-doc-attr-string.rs
! ce9ba191483b507c8d1f23bed3e115e0  gcc/testsuite/rust/compile/torture/coercion1.rs
! bd8f8dbd1c3983c6c4fadd764c8449e0  gcc/testsuite/rust/compile/torture/coercion2.rs
! fde92497777022d1c8b356f44dab0c51  gcc/testsuite/rust/compile/torture/comparison_expr1.rs
! 70031c9ff4184cf723ac881e46c19862  gcc/testsuite/rust/compile/torture/compile.exp
! f7b574f053a4696689ce322daa445508  gcc/testsuite/rust/compile/torture/compound_assignment_expr1.rs
! c49a893b1c5c4b475772e8d47a0f6d97  gcc/testsuite/rust/compile/torture/conditional.rs
! 13990f1954112d721f957f9a11fa603f  gcc/testsuite/rust/compile/torture/constant1.rs
! 959300e0747880a1a954e048b9ca7ff9  gcc/testsuite/rust/compile/torture/constant2.rs
! 01f057f0438c608f725cc39850ab6a1c  gcc/testsuite/rust/compile/torture/constant3.rs
! e3cd62377f1a6f3dc065480a449bec43  gcc/testsuite/rust/compile/torture/deadcode1.rs
! aa6c3e7db1ace3b1ca318f0c5f9c6ab9  gcc/testsuite/rust/compile/torture/deadcode2.rs
! b09c5336e7e893f5dd811fb6de9cbaed  gcc/testsuite/rust/compile/torture/deref1.rs
! a16d5988587be2f9761eb17712f4e07b  gcc/testsuite/rust/compile/torture/deref_function.rs
! 71865401dd3f5f42056f631f0edf6b50  gcc/testsuite/rust/compile/torture/doc_comment.rs
! 4b9c18af5327cea0b48c71df4e29b766  gcc/testsuite/rust/compile/torture/enum1.rs
! 65eeb62af675587bc7f685c74e5d7b8d  gcc/testsuite/rust/compile/torture/extern_mod1.rs
! b9eff55741080f626ecb13d636ebf719  gcc/testsuite/rust/compile/torture/extern_mod1/modules/mod.rs
! fd6e7336cfaa9bc5414f7ebef76fb8e8  gcc/testsuite/rust/compile/torture/extern_mod2.rs
! a8a5e6fba38e3800b3ac9d0079ac6f4f  gcc/testsuite/rust/compile/torture/float1.rs
! ce9233d47eb1eb9c37a45390c2cf6c45  gcc/testsuite/rust/compile/torture/float_types.rs
! 30f0a023d67b8fc83c1daf4a64779587  gcc/testsuite/rust/compile/torture/forward_decl_1.rs
! 6ef942ec53b7eb3ae86cd165308ef639  gcc/testsuite/rust/compile/torture/forward_decl_2.rs
! 4e354bff5b164423b9553c66214f7a92  gcc/testsuite/rust/compile/torture/forward_decl_3-unsafe.rs
! a74efec2a387b0c4dfc17fc893f079e2  gcc/testsuite/rust/compile/torture/forward_decl_3.rs
! f24a89a77d00ab91e01b1b93938e9dd6  gcc/testsuite/rust/compile/torture/forward_decl_4.rs
! 2285c8536f25e090ab421b9de6503acd  gcc/testsuite/rust/compile/torture/forward_decl_5.rs
! 1538fd679ad7f1eeb47eb8920e9aac6e  gcc/testsuite/rust/compile/torture/func1.rs
! 32a1f6377aa972c3ca1534b78d8d6132  gcc/testsuite/rust/compile/torture/func2.rs
! 946e069ddd8ecc833cb56aa2daba447d  gcc/testsuite/rust/compile/torture/function_reference1.rs
! eef44daff720d9118d3d410cdceba2f9  gcc/testsuite/rust/compile/torture/function_reference2.rs
! 9fb03022efc20a69b39b548a0e8e6a6e  gcc/testsuite/rust/compile/torture/function_reference3.rs
! 215926f1974e9fcda0abdfd81831f0d3  gcc/testsuite/rust/compile/torture/function_reference4.rs
! 4979824e10545e9ef32fd22015bb8fd8  gcc/testsuite/rust/compile/torture/generics1.rs
! c2511c15f43e2c65074eface0bc57675  gcc/testsuite/rust/compile/torture/generics10.rs
! dbb39002ece8ad7592ff927d72794d89  gcc/testsuite/rust/compile/torture/generics11.rs
! 5226c9cba602a4945613190d97bc8921  gcc/testsuite/rust/compile/torture/generics12.rs
! 55d8eebde3b865f1a2ac8b693df7342c  gcc/testsuite/rust/compile/torture/generics13.rs
! 53299b8e7f363d3f69ee01c8585483ab  gcc/testsuite/rust/compile/torture/generics14.rs
! 03683ae5ee556bd2a8135a3de2631158  gcc/testsuite/rust/compile/torture/generics15.rs
! 7ce0300e590955aec6df3295a595f991  gcc/testsuite/rust/compile/torture/generics16.rs
! 2e3688af885e2a6283160dc9256a452d  gcc/testsuite/rust/compile/torture/generics17.rs
! 10b9bc7bbcd270d32d85914ba3ef2590  gcc/testsuite/rust/compile/torture/generics18.rs
! 4b7c50e6700d2011d5b5a06982d68b52  gcc/testsuite/rust/compile/torture/generics19.rs
! 7034a326a02134bc2b4d67f29d8d9f6d  gcc/testsuite/rust/compile/torture/generics2.rs
! 44e8e361784aa318035ac5cc16e72e92  gcc/testsuite/rust/compile/torture/generics20.rs
! ca0491a55387b612aa7c920054d7d553  gcc/testsuite/rust/compile/torture/generics21.rs
! e258224c749bc271b99d4c0a8431bb9e  gcc/testsuite/rust/compile/torture/generics22.rs
! 2bcd970e4e6615ac8520b706dd7dabd9  gcc/testsuite/rust/compile/torture/generics23.rs
! 9e8a68d3a688156252e59f4df5ef33a1  gcc/testsuite/rust/compile/torture/generics24.rs
! fa6bf5fab8b95712674c3d707371ffc4  gcc/testsuite/rust/compile/torture/generics25.rs
! bc23971e86b92fe406af39ba5c1667cc  gcc/testsuite/rust/compile/torture/generics26.rs
! 471ffd45c778a0f69e63df5cde30d816  gcc/testsuite/rust/compile/torture/generics27.rs
! bee8b01e3de2bebe7b354646571eecf2  gcc/testsuite/rust/compile/torture/generics28.rs
! a240de058be0e71ea0aac7ef43e32bc5  gcc/testsuite/rust/compile/torture/generics29.rs
! 97e71facf37a7ae7397d652dbccda4e6  gcc/testsuite/rust/compile/torture/generics3.rs
! 55f9fd5e1ae11da51a3de7befbc42fd0  gcc/testsuite/rust/compile/torture/generics30.rs
! 640a7750218507ad6b50f8d51e2e29c5  gcc/testsuite/rust/compile/torture/generics31.rs
! 568931c40c990e7120aaab0f7fb4a2ba  gcc/testsuite/rust/compile/torture/generics32.rs
! 8ca5e8c8539a14a1d41230bef20dd678  gcc/testsuite/rust/compile/torture/generics4.rs
! a7afca9f1e7a47845848f1c20b9f4999  gcc/testsuite/rust/compile/torture/generics5.rs
! 08cf27255f5916a37e2ad056cc51ea71  gcc/testsuite/rust/compile/torture/generics6.rs
! 3e4ddd5489ab6fc9d4d9689a0d7b4683  gcc/testsuite/rust/compile/torture/generics7.rs
! 81ef5b1483f349e41804e0a3a4b0b435  gcc/testsuite/rust/compile/torture/generics8.rs
! 2af5231a3e6327a0d60a325dfe25e866  gcc/testsuite/rust/compile/torture/generics9.rs
! 5b423d7ac5703e27bc872cb127b4f321  gcc/testsuite/rust/compile/torture/grouped_expr_function.rs
! f80f914349ba6a98b75610cb18b3bdd9  gcc/testsuite/rust/compile/torture/identifier-missing-impl-1.rs
! 6b769f4c0a03ddc73db5210c3f9e8043  gcc/testsuite/rust/compile/torture/if.rs
! 863803a27e169458182ebd8b2731b770  gcc/testsuite/rust/compile/torture/if_elif.rs
! 9c6264c84417535d8b58cfdeb4fbb2b5  gcc/testsuite/rust/compile/torture/if_elif_else_expr1.rs
! a5f3c5be67b821309b72c79798b190e8  gcc/testsuite/rust/compile/torture/if_else.rs
! b0d74aba082edb4fe7351b58318b0f0a  gcc/testsuite/rust/compile/torture/ifunaryexpr.rs
! 8855f02bc8465ec377e35e6d9ee21d56  gcc/testsuite/rust/compile/torture/impl_block1.rs
! 9b3a66c9e7c3a4c0b93ef4e33dce89ac  gcc/testsuite/rust/compile/torture/impl_block2.rs
! d26ae7a88766c3770d0417b0fca2c412  gcc/testsuite/rust/compile/torture/impl_block3.rs
! ca49d3071a8cb277436a94e847627f40  gcc/testsuite/rust/compile/torture/impl_block_unused.rs
! 492f7ed4eddc2819abd44ef386cd1003  gcc/testsuite/rust/compile/torture/implicit_returns1.rs
! f05f38a075c38b9b6ab4d903a30ee7c8  gcc/testsuite/rust/compile/torture/infer_type1.rs
! 0097d4c7dfdfc249e4549008b613b5f9  gcc/testsuite/rust/compile/torture/inner_attributes.rs
! 62231785f3758b5a164d1794a83d9be1  gcc/testsuite/rust/compile/torture/integer_inference_var1.rs
! 83cd8a7cf3b0179f620ac89878fbcc2c  gcc/testsuite/rust/compile/torture/integer_inference_var2.rs
! 86f32f4eea1690ae10c284abfd06eed7  gcc/testsuite/rust/compile/torture/integer_inference_var3.rs
! 6a1b02e292ba63a63f46b42b507b4209  gcc/testsuite/rust/compile/torture/integer_inference_var4.rs
! a724c68c3ccf3f22e9cd7832abf66249  gcc/testsuite/rust/compile/torture/integer_inference_var5.rs
! b50cb749da23fbae22b68db3f6aab2ad  gcc/testsuite/rust/compile/torture/integer_types.rs
! d6a70b203e21498fa0449bb3e2be4762  gcc/testsuite/rust/compile/torture/intrinsics-2.rs
! 08e73f4fc48b464f67bb3181d1e24cf3  gcc/testsuite/rust/compile/torture/intrinsics-3.rs
! 97b3db8374f4d7454d3a6edac75ff171  gcc/testsuite/rust/compile/torture/intrinsics-4.rs
! 8d3c92830826480016eaf2ef43aadf6a  gcc/testsuite/rust/compile/torture/intrinsics-5.rs
! 10959ef262885359c19cc59bde35de55  gcc/testsuite/rust/compile/torture/intrinsics-6.rs
! 87dc18b0ed0f632386c7be2e202fe7ac  gcc/testsuite/rust/compile/torture/intrinsics-7.rs
! a09fcc3bdcebd39d4ddb707da813da3c  gcc/testsuite/rust/compile/torture/intrinsics-8.rs
! 67ccc3aea3129501f7c4c1d49a0e3a90  gcc/testsuite/rust/compile/torture/intrinsics-math.rs
! fb119123cce8147824e5cd5290f22138  gcc/testsuite/rust/compile/torture/isolated_cr_block_comment.rs
! 65ee17c65a88536a84b35e5cc7a9c19c  gcc/testsuite/rust/compile/torture/isolated_cr_line_comment.rs
! 104ba3c72f184df5679c480613f03aaf  gcc/testsuite/rust/compile/torture/issue-1024.rs
! d6fc17687a9e3feef817701a70faffcf  gcc/testsuite/rust/compile/torture/issue-1075.rs
! d7c0280a63b4a0c1f64f26f103f00e86  gcc/testsuite/rust/compile/torture/issue-1432.rs
! 1bb8bb1eabd30d091ede09d5cac455b1  gcc/testsuite/rust/compile/torture/issue-1434.rs
! fc2dcd82a87660b6ebd5632f3bb38df5  gcc/testsuite/rust/compile/torture/issue-1506.rs
! 5be36b7e20bf7e0f144c556927b63b5b  gcc/testsuite/rust/compile/torture/issue-1555.rs
! e1f3113661e27f2568accead5d7cc5f1  gcc/testsuite/rust/compile/torture/issue-368.rs
! a03f31bcb0a4a1c34cc2dace438828e0  gcc/testsuite/rust/compile/torture/issue-808.rs
! ada28b77c3cd204cd999363964b33e9b  gcc/testsuite/rust/compile/torture/issue-862.rs
! ce6c3e9e42b1dca9ab22cf5c2f4a192d  gcc/testsuite/rust/compile/torture/issue-893-2.rs
! 848cdc0381fd006ad0b5e30f8d627188  gcc/testsuite/rust/compile/torture/issue-893.rs
! 32a12078f6a68a1d50b952a33510ed4a  gcc/testsuite/rust/compile/torture/lazybooleanexpr_function.rs
! 25bcbb654c9ffea9d27863307dcfcb6d  gcc/testsuite/rust/compile/torture/lifetime1.rs
! 1fbcb1e8e4b64ff2c9d5921eb78a181a  gcc/testsuite/rust/compile/torture/literals1.rs
! d1f2f976436e2ad01deeee46bfe0e4e3  gcc/testsuite/rust/compile/torture/loop1.rs
! 9bdbd03f242446ac724cc9978b1e754f  gcc/testsuite/rust/compile/torture/loop2.rs
! 52e498a796f055ee3b00864e85502d33  gcc/testsuite/rust/compile/torture/loop3.rs
! 9ef1d10c034e2e684cf12f6e8183a79a  gcc/testsuite/rust/compile/torture/loop4.rs
! 56cc59fa0d11fe0f6aed908808c0ef94  gcc/testsuite/rust/compile/torture/loop5.rs
! 8081d8a18dca7b6f5c0d61b4b04f72b3  gcc/testsuite/rust/compile/torture/loop6.rs
! d4776ff1f3e1814ae5ef5566d8fa75d6  gcc/testsuite/rust/compile/torture/loop7.rs
! d134495ce062249427c6511b879f50fd  gcc/testsuite/rust/compile/torture/loop8.rs
! 234de4a3e6385f4f2b9fe0d73751fb60  gcc/testsuite/rust/compile/torture/macro-issue1403.rs
! 6fa6f99e89f75d7cfdec7248a2d0433c  gcc/testsuite/rust/compile/torture/macro_as_expr.rs
! 0b5ffcad719d8335454ec61ab315f7ae  gcc/testsuite/rust/compile/torture/match1.rs
! c5f9b23375fce692bb628478c42e193d  gcc/testsuite/rust/compile/torture/methods1.rs
! 57d5ebc9ba19c42969be0377bef81b5a  gcc/testsuite/rust/compile/torture/methods2.rs
! 51c217a39d82bee58bf95334c0f4bc5c  gcc/testsuite/rust/compile/torture/methods3.rs
! 97f1ade761160e2a63e7d2f079b782c2  gcc/testsuite/rust/compile/torture/mod-nameresolve.rs
! 3976fbb9889202090b1e914bdab8b81e  gcc/testsuite/rust/compile/torture/mod1.rs
! 785857d88a156bdf706481d425652e60  gcc/testsuite/rust/compile/torture/mod2.rs
! 3bb2adf416c9ed3146a9818ad116804d  gcc/testsuite/rust/compile/torture/mod3.rs
! c53652528572c04d80b932dd4c7d44db  gcc/testsuite/rust/compile/torture/modules/valid_path.rs
! 042b05e8659d4801b8c3d003144d0d6e  gcc/testsuite/rust/compile/torture/must_use1.rs
! 4e8215e2d5c463956017ff4b5d6aee84  gcc/testsuite/rust/compile/torture/must_use2.rs
! 7fa294df9839a38d4d270258a8aa3e0a  gcc/testsuite/rust/compile/torture/name_resolve1.rs
! 8b1c3146c6c8a71a5ee655486dcb144c  gcc/testsuite/rust/compile/torture/negation_function.rs
! 06636d23ca0a57fd8e9ae9c4630cdfeb  gcc/testsuite/rust/compile/torture/nested_fn1.rs
! 45a0890892b025aef44c2f245f0a204b  gcc/testsuite/rust/compile/torture/nested_fn2.rs
! 98dcbe92b9c29e53aeb2d4193cac2ac4  gcc/testsuite/rust/compile/torture/nested_struct1.rs
! 0c7c901c281a324c6d2c632aa3086216  gcc/testsuite/rust/compile/torture/never_type1.rs
! 19e12e69f8c09b233ef0d12837a3dfc5  gcc/testsuite/rust/compile/torture/not_shebang.rs
! 0efa6f68c6c7f4cbba86a69173e1bd8f  gcc/testsuite/rust/compile/torture/not_shebang_block_comment.rs
! edc2a7ec6d1c716f33f0587a4d66b0ef  gcc/testsuite/rust/compile/torture/not_shebang_comment.rs
! 8219eafcb59907fb9a3a44b1a22196d8  gcc/testsuite/rust/compile/torture/not_shebang_multiline_comment.rs
! 2d3a0a532fc38e437fb7223f180d789b  gcc/testsuite/rust/compile/torture/not_shebang_spaces.rs
! 5afb4e1f202a4b8c8d1512099507b622  gcc/testsuite/rust/compile/torture/parameter_usage1.rs
! 15a885da3c853a7674ebef691b832a75  gcc/testsuite/rust/compile/torture/parens1.rs
! e73a5adc9e42fa66c5f73066d38b12d3  gcc/testsuite/rust/compile/torture/phantom_data.rs
! e48d89213608bd930503f20ec6619c95  gcc/testsuite/rust/compile/torture/pointer1.rs
! 2e50f979d706bf4a2a46a916505b5239  gcc/testsuite/rust/compile/torture/primconsts.rs
! 71fef5286edcb96d55de35319e0f0ac0  gcc/testsuite/rust/compile/torture/prims_struct_eq.rs
! 3e772d0ca7ea849545cb1f005ec79871  gcc/testsuite/rust/compile/torture/range-lang-item1.rs
! 13805c4ebd6329a5bcb2e6545e32fc0c  gcc/testsuite/rust/compile/torture/raw_identifiers.rs
! a04a0f1057ea62a006078e6b9566a9a6  gcc/testsuite/rust/compile/torture/raw_identifiers_keywords.rs
! 5f8b914c1ad5dd60c17558e5a6f5988a  gcc/testsuite/rust/compile/torture/recursive_fn1.rs
! 7d7a06426aeb2d338b4d0ad4ab8da14e  gcc/testsuite/rust/compile/torture/return_function.rs
! 1c14a94c9bd664a98276d91c8d4869cb  gcc/testsuite/rust/compile/torture/scoping1.rs
! ddebd49e3cd2ef8abadc0eaf45528903  gcc/testsuite/rust/compile/torture/self_type1.rs
! cb93146c3eea7d4b18eb57c4579309c6  gcc/testsuite/rust/compile/torture/shadow1.rs
! 306ffd7895d38da1ac92d722c5189f56  gcc/testsuite/rust/compile/torture/shadow2.rs
! 92cd4e12bbf0846f51bd8bd89570d5e5  gcc/testsuite/rust/compile/torture/shebang.rs
! 75aeb5ee24f534bb99e7c351e90eee7e  gcc/testsuite/rust/compile/torture/shebang_plus_attr.rs
! 3b4f9fc5ee51888dad73fe48f8ba4bcc  gcc/testsuite/rust/compile/torture/shebang_plus_attr2.rs
! 2acaa7eabd44d15ad70326801b81f088  gcc/testsuite/rust/compile/torture/static_function.rs
! 0c2ee17cc4b390e0afb97b7588ebd62b  gcc/testsuite/rust/compile/torture/static_var1.rs
! 5c1d937cbc2487b1d6003e0533e6b92a  gcc/testsuite/rust/compile/torture/stmt_with_block1.rs
! 58ceb8150e7cf0771165108e060a134f  gcc/testsuite/rust/compile/torture/str1.rs
! 00e71e3d3bb4afdc8447fac2aacf88b4  gcc/testsuite/rust/compile/torture/struct_access1.rs
! 485bc4c2dbcf32eee1b7ef6ca154e1b3  gcc/testsuite/rust/compile/torture/struct_base_init_1.rs
! 54e977a7bba258657d9ce0ec90e5bf57  gcc/testsuite/rust/compile/torture/struct_decl.rs
! d1376aeaed84125a0da488569b95bdd3  gcc/testsuite/rust/compile/torture/struct_init.rs
! ae23155b9e8c2e5cf9441ac121ae1d77  gcc/testsuite/rust/compile/torture/struct_init_10.rs
! 9dd48f189a8ab3d299da4ad238e53e01  gcc/testsuite/rust/compile/torture/struct_init_11.rs
! 89cb646d3181646d2c0d328735df91b5  gcc/testsuite/rust/compile/torture/struct_init_2.rs
! 2856c595bb87464996cc84ae726c23bb  gcc/testsuite/rust/compile/torture/struct_init_3.rs
! 0d59b0175db5d31ff75f67fadb9f87ab  gcc/testsuite/rust/compile/torture/struct_init_4.rs
! 1b84f258d28b05e59057231eca0fff58  gcc/testsuite/rust/compile/torture/struct_init_5.rs
! 34770dd9b8afcd295dfb2fa0e2e694d5  gcc/testsuite/rust/compile/torture/struct_init_6.rs
! 7609eac036efd42548e650fdf976d54c  gcc/testsuite/rust/compile/torture/struct_init_7.rs
! d0c601fc36f96f73716336a93c577606  gcc/testsuite/rust/compile/torture/struct_init_8.rs
! 2bf7c7c362110651188ea0346da05437  gcc/testsuite/rust/compile/torture/struct_init_9.rs
! dae8fbdfc2b031d622ca0c4a908f6b04  gcc/testsuite/rust/compile/torture/top_attr.rs
! e45a96bc8d9f73c728a79cc24c355184  gcc/testsuite/rust/compile/torture/traits1.rs
! 5dfea41aa8a29a899a2043190025ae47  gcc/testsuite/rust/compile/torture/traits10.rs
! 8b9476d4a73b77c1b82e929d783e4313  gcc/testsuite/rust/compile/torture/traits11.rs
! 740dcadfe5281f8ff9a9f67f419465fb  gcc/testsuite/rust/compile/torture/traits12.rs
! f8ae753872a024e2ae5107840744783d  gcc/testsuite/rust/compile/torture/traits13.rs
! b2befa9b5e6c5f5879e6c46d22266199  gcc/testsuite/rust/compile/torture/traits14.rs
! f26498a44d79401245cad77da9eaf3f5  gcc/testsuite/rust/compile/torture/traits15.rs
! 63f48e06908e1de3a93be9a0df043aa7  gcc/testsuite/rust/compile/torture/traits16.rs
! a46f4f21290e866176f62a4d383f037c  gcc/testsuite/rust/compile/torture/traits17.rs
! fcb5d49b21f79b0fb269b916fc1cb377  gcc/testsuite/rust/compile/torture/traits18.rs
! 60519d01b9239ad8a1b992d957714e5f  gcc/testsuite/rust/compile/torture/traits19.rs
! f21e553716eaf7471113d8ee88f2281c  gcc/testsuite/rust/compile/torture/traits2.rs
! 16b352ff250c0328d6623eaa09895575  gcc/testsuite/rust/compile/torture/traits3.rs
! 792cf514089f21d727f825c84eab0a1d  gcc/testsuite/rust/compile/torture/traits4.rs
! 647cc6ffdf75902deea6767b4263a47c  gcc/testsuite/rust/compile/torture/traits5.rs
! df55ffeb42c4cc807d1697bc37b64b45  gcc/testsuite/rust/compile/torture/traits6.rs
! 456d73f15983d767e7e5385e56a1c32a  gcc/testsuite/rust/compile/torture/traits7.rs
! 185aaa014e624e318a2bf4befdc7d4e3  gcc/testsuite/rust/compile/torture/traits8.rs
! 0ed8ac91c6e6cff6f9028ee1c9494866  gcc/testsuite/rust/compile/torture/traits9.rs
! 4e9e55b8c905f95cc28e5fcc808263fe  gcc/testsuite/rust/compile/torture/transmute-size-check-1.rs
! 72cc09d69bd2c558246984ea586ee6de  gcc/testsuite/rust/compile/torture/transmute1.rs
! 2e917afd5cc4158b78f6fd7e8a8a573d  gcc/testsuite/rust/compile/torture/tuple1.rs
! e07874dc726bbcdcb9723acdaaf91fb2  gcc/testsuite/rust/compile/torture/tuple2.rs
! 710fd144f44a6111354cf488f0670990  gcc/testsuite/rust/compile/torture/tuple3.rs
! 485bc5d1d256233656d21181773f3802  gcc/testsuite/rust/compile/torture/tuple_enum_variants.rs
! 20e9ea4ba9270cca41307a91c0dcc525  gcc/testsuite/rust/compile/torture/tuple_field_access.rs
! 1da1272af4061a229674f5192c5e2bd2  gcc/testsuite/rust/compile/torture/tuple_function.rs
! 59bed3303d01d50780abeabc374f2baa  gcc/testsuite/rust/compile/torture/tuple_index.rs
! f8bc7cc4abd57aadd7a96bd1ce535f10  gcc/testsuite/rust/compile/torture/tuple_struct1.rs
! ab691625fa969e2f5dfe68d464d61a05  gcc/testsuite/rust/compile/torture/tuple_struct2.rs
! e2cc57c3e1a553d937835c59ab4c4d64  gcc/testsuite/rust/compile/torture/tuple_struct_unit.rs
! e14d7ecb7c20293523e0bcebe676164f  gcc/testsuite/rust/compile/torture/tuple_struct_unused.rs
! b61d60bea0ddfa9856d8a2ac0506be8e  gcc/testsuite/rust/compile/torture/type-alias1.rs
! 472e709899c602b991e45f597829f9f9  gcc/testsuite/rust/compile/torture/type-alias2.rs
! 295e04abb9cf1c95cd7ec45c3a7ef991  gcc/testsuite/rust/compile/torture/type_infer1.rs
! 1b71d9014f2fd030b048975e2f2f7348  gcc/testsuite/rust/compile/torture/type_infer2.rs
! 881d8fcac9539edb1f3b91954ebc60ae  gcc/testsuite/rust/compile/torture/type_infer3.rs
! 5b6b5deca93b041aefda6e07569df9f3  gcc/testsuite/rust/compile/torture/type_infer4.rs
! 47f4311270febc1c8e1013efe7b4eaff  gcc/testsuite/rust/compile/torture/type_infer5.rs
! 1c68db5dc8f04ecc5e8d4359f2f4e95a  gcc/testsuite/rust/compile/torture/type_infer6.rs
! cf4ce31cbe707c2a79f9f224706a6461  gcc/testsuite/rust/compile/torture/unary_operators.rs
! 1ecb64b8fdc2538d03ab1c8e95e2f9d0  gcc/testsuite/rust/compile/torture/undended-string-1.rs
! 45b4c25df3c2cef3543d24acecac05de  gcc/testsuite/rust/compile/torture/undended-string-2.rs
! 9264f09864ea41e7c8629cdd87274dd7  gcc/testsuite/rust/compile/torture/underscore_id.rs
! 8b9a9f3c478b00838a5fc2a36b865f9e  gcc/testsuite/rust/compile/torture/unended-raw-byte-string.rs
! 8de4158ea4694bb380e30c960b7e5375  gcc/testsuite/rust/compile/torture/uninit-intrinsic-1.rs
! 5b01ec8f544f029cbed245d9338f83dc  gcc/testsuite/rust/compile/torture/union.rs
! d4220426bc1efdc68323e2ea5d848bc0  gcc/testsuite/rust/compile/torture/union_union.rs
! b79b39a5f4e629a60ae0b95506d80e19  gcc/testsuite/rust/compile/torture/unit_type1.rs
! 1c5cdbfca62685cb8c3d16cbb6aff466  gcc/testsuite/rust/compile/torture/unit_type2.rs
! 18b08754a9bde1c425026fa81de19c2c  gcc/testsuite/rust/compile/torture/unit_type3.rs
! 143cc29e7c153ce6bdea043e65297234  gcc/testsuite/rust/compile/torture/unit_type4.rs
! 1fb34d3bda1f39bd1252e9a82022eb8b  gcc/testsuite/rust/compile/torture/unit_type5.rs
! d600576dd91a520cc3fcaaa674fe7777  gcc/testsuite/rust/compile/torture/unsafe1.rs
! 136c0c00f4c2fa225e62e444fcc53426  gcc/testsuite/rust/compile/torture/unsafe2.rs
! ff9064e911cbe61debad24626343f817  gcc/testsuite/rust/compile/torture/unsafe3.rs
! d504161e24b666b868502d7722093a4e  gcc/testsuite/rust/compile/torture/unsafe4.rs
! 5da3c2cf0941d309852fbafd3b74d027  gcc/testsuite/rust/compile/torture/unused.rs
! 76260a640d4fbe744479a799e248bd0b  gcc/testsuite/rust/compile/torture/unused1.rs
! 5452bcc0d79dc9a5af71e6cea63217a5  gcc/testsuite/rust/compile/torture/unused_struct.rs
! 30fd1951699396b20950f7b1f31df2f8  gcc/testsuite/rust/compile/torture/unused_struct_field.rs
! dc9acb603012ddac5d874429661fc2e2  gcc/testsuite/rust/compile/torture/usize1.rs
! 830d8ae3a38ff12ca2b69005f1ca32bc  gcc/testsuite/rust/compile/torture/utf8_identifiers.rs
! e98ca06b6f306b6bea9cad6e55bfee64  gcc/testsuite/rust/compile/torture/utf8_whitespaces.rs
  086c8f2639392f24c1a8d60145c15f47  gcc/testsuite/rust/compile/torture/very-broken-attr-string.rs
! 68568050ab105f2110e2c3261c95f20e  gcc/testsuite/rust/compile/torture/while_function.rs
! 221cd49e7950087daae045eea9b434d5  gcc/testsuite/rust/compile/track_caller.rs
! 1a3cb01e0279b5321d49858af3b4172d  gcc/testsuite/rust/compile/trait-cycle.rs
! 35e7de86132ee099b92bd36df546daa5  gcc/testsuite/rust/compile/trait13.rs
! bf92c81e186799e93d575eef78e1baae  gcc/testsuite/rust/compile/trait14.rs
! 7a66f149bfbac472ed7cc27f0cebb6a8  gcc/testsuite/rust/compile/trait_pub_type.rs
! c54979cae460d569f53b5f978f068721  gcc/testsuite/rust/compile/traits1.rs
! f636064076f69b8ebea7894778f6bf5d  gcc/testsuite/rust/compile/traits10.rs
! 52d9db905880d98026fab2d90160fdd8  gcc/testsuite/rust/compile/traits11.rs
! 64d1506d558eb84f183472a208f6cf15  gcc/testsuite/rust/compile/traits12.rs
! 83207ce75ca04ef596cdf6b799813513  gcc/testsuite/rust/compile/traits2.rs
! 59020f0fa550861255c2f8f013559783  gcc/testsuite/rust/compile/traits3.rs
! d85860e5922416194e64478edbf2709f  gcc/testsuite/rust/compile/traits4.rs
! 538ff287a0934ae326c5941769433527  gcc/testsuite/rust/compile/traits5.rs
! a5ea17eb01298bf8466fc38713991743  gcc/testsuite/rust/compile/traits6.rs
! 20c2279cb613225cdb4f8d94749f70df  gcc/testsuite/rust/compile/traits7.rs
! 8046f872352ed44e9b264d34b7953a0a  gcc/testsuite/rust/compile/traits8.rs
! f0aca8fee7b751368b6c1b57cbf2f1ed  gcc/testsuite/rust/compile/traits9.rs
! d40ce2d48bba8843cd0e93ac661eedd7  gcc/testsuite/rust/compile/try-catch-unwind-new.rs
! 2ade01fdbdd2b6aeb605428ad190a6bb  gcc/testsuite/rust/compile/try-catch-unwind-old.rs
! 8b304de462bdd3a5334cc718188cbcb1  gcc/testsuite/rust/compile/try-expr1.rs
! 4332c6947d7efcf39dae7ca1e49d5594  gcc/testsuite/rust/compile/try-trait.rs
! 2d3631938f83e46c9fbd784136ba96db  gcc/testsuite/rust/compile/try_block1.rs
! b7ca9c8e0c33cf331b28cbd512f6a0ab  gcc/testsuite/rust/compile/tuple1.rs
! acb2c81fa58337382f5c1793465c63b0  gcc/testsuite/rust/compile/tuple_float_index.rs
! b6da4ee91dde918e5b199a8ea04dffed  gcc/testsuite/rust/compile/tuple_index_on_non_tuple.rs
! 2e26493536488e3e55853b97b53a5abe  gcc/testsuite/rust/compile/tuple_mismatch.rs
! dcdf4ff531d4d791fd8b675eb168a97f  gcc/testsuite/rust/compile/tuple_struct1.rs
! f1d5123657fc6159987adfc10e9a51c7  gcc/testsuite/rust/compile/tuple_struct2.rs
! 8fa80e06a31641e1139c7a6101774048  gcc/testsuite/rust/compile/tuple_struct3.rs
! 7a6b96d0d3e537aa3c5377a9be1284fa  gcc/testsuite/rust/compile/tuplepattern-rest-readonly.rs
! 79d59262987244890dd0a208a08bb9ae  gcc/testsuite/rust/compile/tuplepattern-restpattern-typecheck-err.rs
! 32fc48739ea8b0102d44e1cebfd3482d  gcc/testsuite/rust/compile/tupple_struct_pattern_tuple.rs
! 327b2855c73d318f1913d9235779d72f  gcc/testsuite/rust/compile/type-alias1.rs
! 71c01ad03e2210d0247966a67c80e9e2  gcc/testsuite/rust/compile/type-bindings1.rs
! 34935eb9cc883ddde614fb5d934f9978  gcc/testsuite/rust/compile/type-if.rs
! 5233de51e85c1ea27dac1fd33890a341  gcc/testsuite/rust/compile/unary_negation.rs
! 93a97c2adba4b75a9fc175526d4ca9fd  gcc/testsuite/rust/compile/unary_not.rs
! 54d4817692ffd0fc8a3351312e608067  gcc/testsuite/rust/compile/unconstrained_type_param.rs
! fdf0e0aedcd041a9f4bcdfa1964a5003  gcc/testsuite/rust/compile/undeclared_label.rs
! 9e78595bf3bfd7b35d8e8689f68d588f  gcc/testsuite/rust/compile/unicode_escape.rs
! 8eb73cc1580bc241e40e4e8855085fc8  gcc/testsuite/rust/compile/unicode_norm1.rs
! 51fe0787381de2b2b12d92e906d94ed5  gcc/testsuite/rust/compile/unify-errors1.rs
! c58c5b9a8c32eb0c719e479e51333123  gcc/testsuite/rust/compile/unknown-associated-item.rs
! ead891e437689f09ae41a4084ac41c32  gcc/testsuite/rust/compile/unsafe1.rs
! e3b8119791c14694119c2799b5601b1f  gcc/testsuite/rust/compile/unsafe10.rs
! 943a60041e7c326905355a6bd5b75187  gcc/testsuite/rust/compile/unsafe11.rs
! 4f9d7a6db6519e4a7683abce60a02ac8  gcc/testsuite/rust/compile/unsafe2.rs
! 10426d421ea5899b3a8109a306fa21bc  gcc/testsuite/rust/compile/unsafe3.rs
! 78886a511f2e9a6526aafcab705d45dc  gcc/testsuite/rust/compile/unsafe4.rs
! 7e7f1df6cc4527b8a89e3c60bce8f7b0  gcc/testsuite/rust/compile/unsafe5.rs
! 88c309af71cbb62ee7c3ec12f2cd9e89  gcc/testsuite/rust/compile/unsafe6.rs
! d3fa26eb07286f98c866e4e1b4c2d66b  gcc/testsuite/rust/compile/unsafe7.rs
! 6bacdf1d81ab404d9ccd6504af22e34b  gcc/testsuite/rust/compile/unsafe8.rs
! 8a9bd18d63e1aab52eee0e735ff04227  gcc/testsuite/rust/compile/unsafe9.rs
! 4e8e047843376bd71f04e1b8a80a4726  gcc/testsuite/rust/compile/unsafe_module.rs
! 8d460f936518c7439f5206bf63dd2492  gcc/testsuite/rust/compile/unstable-fn.rs
  7c830dd0a2ec3525c6da4bc67b44f331  gcc/testsuite/rust/compile/unterminated_c_comment.rs
! b65d217f81971305b657dfe421eda452  gcc/testsuite/rust/compile/unused-label_0.rs
! 04c7030db51404d464ea0e79f87ac952  gcc/testsuite/rust/compile/unused-mut-identifier_0.rs
! 48446af08464265d0ab531a13f494f7d  gcc/testsuite/rust/compile/unused-mut-struct-field_0.rs
! e042c5df93d476c84c3dec3c4a9d9508  gcc/testsuite/rust/compile/use_1.rs
! e147f1b16076aa9a6adabbe57df290e5  gcc/testsuite/rust/compile/use_2.rs
! 558ea55fed98664a0af5b9f7ec511a03  gcc/testsuite/rust/compile/use_3.rs
! 742ed94c6c473d4da93853a7198d5c79  gcc/testsuite/rust/compile/use_self_alone.rs
! 455f401331c3813c3fd40fc1322b69df  gcc/testsuite/rust/compile/use_self_alone_in_list.rs
! c23f1d4a4c6f02f27b213710344a799e  gcc/testsuite/rust/compile/usize1.rs
! 277461cb723a5184441a90e0e8da4839  gcc/testsuite/rust/compile/v0-mangle1.rs
! 78d38613fde554417e76bdbe0024b033  gcc/testsuite/rust/compile/v0-mangle2.rs
! 885da2f5b8a7f257ddbab8b6629b96c1  gcc/testsuite/rust/compile/variadic.rs
! 1b792b521968091c70883cda0519779a  gcc/testsuite/rust/compile/while_break_expr.rs
! 1482c00d967199586908ea2d1b99cab3  gcc/testsuite/rust/compile/while_let1.rs
! 6a17e86d478051c06f47f98287e03753  gcc/testsuite/rust/compile/while_let_expr.rs
! 41e2743bf7d1b5e5cdfa4e256a33f343  gcc/testsuite/rust/compile/while_let_without_label.rs
! c173102cb60831a295fb2d377c8c8e40  gcc/testsuite/rust/compile/wildcard_const.rs
! 02c717ea83c4a29c0714c66552a28af6  gcc/testsuite/rust/compile/wildcard_enum.rs
! 632863601dd9465128b3525d8ffdc88a  gcc/testsuite/rust/compile/wildcard_enum_variant.rs
! e413a48f4b0d28d6a97333ffcb40e45e  gcc/testsuite/rust/compile/wildcard_static.rs
! b3e0d8d7a91af4a93e3073a94da37df2  gcc/testsuite/rust/compile/wildcard_struct.rs
! 21f7fea64d87764ee5aabd1ebcffc260  gcc/testsuite/rust/compile/wildcard_variable.rs
! eafc3609e718433c38b4e9ce138045eb  gcc/testsuite/rust/compile/wrong_lhs_assignment.rs
! 174dc42c47e7e8a66a613d4b2abd2413  gcc/testsuite/rust/compile/wrong_no_of_parameters.rs
! 4927c8b0652eb932ad1b41cff0243028  gcc/testsuite/rust/compile/xfail/lifetime_param.rs
! 79ef3505ee46354ee0696ab7463ec1ab  gcc/testsuite/rust/compile/xfail/name_resolution21.rs
! b4c5bea56ad8f6cea0be06faebe02cfe  gcc/testsuite/rust/compile/xfail/struct_field_vis.rs
! e6cd697b0667152ba39443b3a5693da0  gcc/testsuite/rust/compile/xfail/xfail.exp
! 05333e3c8362c7acaa317b099d3f4499  gcc/testsuite/rust/compile/zero_sized_slice.rs
! 72a209ae1be16068b31449ad01b6825a  gcc/testsuite/rust/core/core.exp
! d3f3c5740022aef25e085e09c7463efc  gcc/testsuite/rust/debug/chartype.rs
! 5be60b772e5757a1d6dd44ff08fad594  gcc/testsuite/rust/debug/custom_link_section.rs
! 04ea1408a944f3f88ca80eedc4a6b423  gcc/testsuite/rust/debug/debug.exp
! 582074b56ac1b386bdddb62bc1a1fc65  gcc/testsuite/rust/debug/i8u8.rs
! 785478900318209e2ac9563573bef989  gcc/testsuite/rust/debug/lang.rs
! bc4a7cc0d8495f1ceb127fcfe2b05f85  gcc/testsuite/rust/debug/no_mangle.rs
! cabed98da33089ea15090f29e224f0fa  gcc/testsuite/rust/debug/oldlang.rs
! c7800d2a071ca2035e1e11d541d30282  gcc/testsuite/rust/debug/tuple.rs
! 28335e6adaa7ca29f05ca2cad1ffd1c3  gcc/testsuite/rust/debug/win64-abi.rs
! 66f1763e73f2ea3328ba2b4ceaa057d0  gcc/testsuite/rust/execute/black_box.rs
! 62ba180d7563201b9ef58cd0f08239e4  gcc/testsuite/rust/execute/bswap.rs
! 4f364d5e8f1e982f8dd260d4e285ddcb  gcc/testsuite/rust/execute/crate-metavar1.rs
! ee134a130743701047cd96c1fbf6fd01  gcc/testsuite/rust/execute/execute.exp
! 5fce9179d59f0126f11a1db088901e50  gcc/testsuite/rust/execute/ident_pat_vs_path_1.rs
! 1367735cf0c407f6eac379c6d157ffc4  gcc/testsuite/rust/execute/ident_pat_vs_path_2.rs
! ee23f2ac9014108d621746737e1803e4  gcc/testsuite/rust/execute/inline_asm_inout_ident.rs
! 662f5147acc82b839a44e77df01fd782  gcc/testsuite/rust/execute/inline_asm_inout_var.rs
! ea3394a2e4f70b56cff9533b77626b80  gcc/testsuite/rust/execute/issue-1245.rs
! b3889753c0ac11385836b9891bb934cc  gcc/testsuite/rust/execute/non_decimal_128_saturation.rs
! b4a0564525cb409452c76182233b23f4  gcc/testsuite/rust/execute/torture/arrays.rs
! f4ad97f462282641b0be461bfd9da9b1  gcc/testsuite/rust/execute/torture/atomic_load.rs
! d47f35842ab0532a87ccf6d3e0226d55  gcc/testsuite/rust/execute/torture/atomic_store.rs
! 249f309aabbfd811979e88a2f4143050  gcc/testsuite/rust/execute/torture/basic_partial_ord1.rs
! 1617e91afb00895713fc19ab756b252d  gcc/testsuite/rust/execute/torture/basic_partial_ord2.rs
! 20b2ff7ad60f0411e82c3dd356299f4b  gcc/testsuite/rust/execute/torture/block_expr1.rs
! 90b10ac2190feb170c7ab843d52a5b85  gcc/testsuite/rust/execute/torture/builtin_abort.rs
! e4bc29856304b5a5241bf310630916f1  gcc/testsuite/rust/execute/torture/builtin_macro_cfg.rs
! 100040a52fa410925cded2e64d04d184  gcc/testsuite/rust/execute/torture/builtin_macro_concat.rs
! ee582b1e783770f32bc8b7bf9add3a79  gcc/testsuite/rust/execute/torture/builtin_macro_env.rs
! 45670b27ae34d13b232df4248761a224  gcc/testsuite/rust/execute/torture/builtin_macro_include_bytes.rs
! 0f282c9c822c273f2f207b326c8cf9db  gcc/testsuite/rust/execute/torture/builtin_macro_include_str.rs
! b3d52a0a97d6520d3987277a12741eb0  gcc/testsuite/rust/execute/torture/builtin_macro_line.rs
! 5944b7412131eb755ca25cc1ba01f460  gcc/testsuite/rust/execute/torture/builtin_macro_option_env.rs
! b26aaf2a9163b4a10cffeb72bdfbe1bb  gcc/testsuite/rust/execute/torture/builtin_macro_stringify.rs
! b0ee1c038f97be3d803fcc8200bf3f1e  gcc/testsuite/rust/execute/torture/builtin_macros1.rs
! 34cfdeb7e5ad6d691ae648160dcc8121  gcc/testsuite/rust/execute/torture/builtin_macros3.rs
! 2cee2abf3b84009c25623edd8c6e6472  gcc/testsuite/rust/execute/torture/cfg-tail.rs
! 3de5547b419f815ebbcf2f6c14ff3748  gcc/testsuite/rust/execute/torture/cfg1.rs
! 0501f55c0ec294bf56658c412d9e2759  gcc/testsuite/rust/execute/torture/cfg2.rs
! 6b5e2971991e963325730dc9c63b775b  gcc/testsuite/rust/execute/torture/cfg3.rs
! 7ab246ff5027c217dd4b016af32f1e82  gcc/testsuite/rust/execute/torture/cfg4.rs
! 46e54ea1f86ea3734114358c787b0dc8  gcc/testsuite/rust/execute/torture/cfg5.rs
! 0e075d1fe84f931eb94f36f4c4ca0919  gcc/testsuite/rust/execute/torture/closure1.rs
! 39af80b77c5639014892c7deb207a7ef  gcc/testsuite/rust/execute/torture/closure2.rs
! 65c68682853e2104520deb9e7515e04c  gcc/testsuite/rust/execute/torture/closure3.rs
! a77becdeaa8d8b2c2920634ac47d86bf  gcc/testsuite/rust/execute/torture/closure4.rs
! 1208f8f966093035d1b237b532d6a5ec  gcc/testsuite/rust/execute/torture/coercion1.rs
! 785719412815658c226359d3ededa602  gcc/testsuite/rust/execute/torture/coercion2.rs
! 3799c8c1783a6cf22cf128b4c0d4d8bc  gcc/testsuite/rust/execute/torture/coercion3.rs
! 66036baa07e756e2aa6ef1a5e7a579df  gcc/testsuite/rust/execute/torture/const-generics-1.rs
! 6bfafbbe05929677ee4277a9991669f7  gcc/testsuite/rust/execute/torture/const-generics-2.rs
! df172c49ad820a8bd226fa8ff054fe24  gcc/testsuite/rust/execute/torture/const-generics-3.rs
! cf3c2e8a32e22bb5a54cc44916eb077d  gcc/testsuite/rust/execute/torture/const-generics-4.rs
! 1f74e4dd53f1d0d458fbb60ad7cf1fd9  gcc/testsuite/rust/execute/torture/const-generics-5.rs
! 58c7e820d2c21a7712e30b1af826fecb  gcc/testsuite/rust/execute/torture/const-generics-6.rs
! 34a186516ce33376a20b2d14c036b08e  gcc/testsuite/rust/execute/torture/const-generics-7.rs
! 33ad06adb25c05095005ac4533596c40  gcc/testsuite/rust/execute/torture/const_block1.rs
! bb0ddd95fe3f5578010121054958e8a8  gcc/testsuite/rust/execute/torture/const_fold1.rs
! a1b8764cdc045929458a55830e126e25  gcc/testsuite/rust/execute/torture/const_fold2.rs
! 2277be44f1f68c546656f52331e90beb  gcc/testsuite/rust/execute/torture/copy_nonoverlapping1.rs
! 9766b5fa120ab49cda38ffc3f8e7a231  gcc/testsuite/rust/execute/torture/ctlz.rs
! 685e3562b098593b02de96cf9a355cd6  gcc/testsuite/rust/execute/torture/ctlz_i16.rs
! babd446aea8010bd566b850cbab2505b  gcc/testsuite/rust/execute/torture/ctlz_i32.rs
! 55d0ff37159e9bc6152b3aa5e8e1039c  gcc/testsuite/rust/execute/torture/ctlz_i64.rs
! b2872fc701199a9484c994ea5a91a0c3  gcc/testsuite/rust/execute/torture/ctlz_i8.rs
! d427748f217d630770a7a19a94944d61  gcc/testsuite/rust/execute/torture/ctlz_nonzero.rs
! 3e32afdbded0dea9157d7c13bd2fc446  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i16.rs
! 47e6d6388278dfb395e261a86e0be84e  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i32.rs
! f32255c0aa43cab4389f955105094f49  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i64.rs
! 582c0f7938354d21d470a4d0171ebcdf  gcc/testsuite/rust/execute/torture/ctlz_nonzero_i8.rs
! 9191c7c08cf926beb35467b8a071de7f  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u16.rs
! 22d44dd14c0c9e64a4a2f5673f68505c  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u32.rs
! 0d926e19a86fa64a32d079c6f3c7ff24  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u64.rs
! a8b0cff976a2e7f6d2bc12d7860d2ff5  gcc/testsuite/rust/execute/torture/ctlz_nonzero_u8.rs
! f7d5ea174bf2692bfe0c356284f01909  gcc/testsuite/rust/execute/torture/ctlz_u16.rs
! b0739150c5d47224d9e044df513c335b  gcc/testsuite/rust/execute/torture/ctlz_u32.rs
! b2c045bab04a20f38ceaefbaee9d2dda  gcc/testsuite/rust/execute/torture/ctlz_u64.rs
! d9c190b35c4328c5c284d28f10d3e92b  gcc/testsuite/rust/execute/torture/ctlz_u8.rs
! a76dcf54c8d2c3bea6e7e3e4d503465b  gcc/testsuite/rust/execute/torture/cttz.rs
! b49feec62709f6ce8cef5fac7dd8aaae  gcc/testsuite/rust/execute/torture/cttz_nonzero.rs
! 821982e815686e67dc21eea14b062c29  gcc/testsuite/rust/execute/torture/decl_macro1.rs
! 98ab35fa6fcae6b653dfc8410b57b655  gcc/testsuite/rust/execute/torture/decl_macro2.rs
! b87b7afb7bf91fb0988c4dd50750d625  gcc/testsuite/rust/execute/torture/decl_macro3.rs
! 1ea4b863d94ae0bcb3f88a8ea5140100  gcc/testsuite/rust/execute/torture/decl_macro4.rs
! 9ac9a9b1454797a9f1b6d5b2e91acffe  gcc/testsuite/rust/execute/torture/derive-default1.rs
! 551b298c057b132d432808d3f5046ae1  gcc/testsuite/rust/execute/torture/derive-partialeq1.rs
! aad63e1c09f79791de93f5d59b985858  gcc/testsuite/rust/execute/torture/derive-partialeq2.rs
! e6c1f5a4a94b0cc181e682dbabffbcd8  gcc/testsuite/rust/execute/torture/derive_clone_enum1.rs
! 87061577dc414c140cc99f6a1b31c1a4  gcc/testsuite/rust/execute/torture/derive_macro1.rs
! e75cae93204cc6e59920d326cce3107a  gcc/testsuite/rust/execute/torture/derive_macro3.rs
! 11228f490f795627480f0bac13bdda0f  gcc/testsuite/rust/execute/torture/derive_macro4.rs
! 05b6f5867925755b836912795518f507  gcc/testsuite/rust/execute/torture/empty_main.rs
! af3e80f19118fef9e24b5334cb280e93  gcc/testsuite/rust/execute/torture/enum_intrinsics1.rs
! 253bbdaa1cd10758f573a18be8faac55  gcc/testsuite/rust/execute/torture/enum_intrinsics2.rs
! cb35f9697071bbbc6f20d8dd5a14c43b  gcc/testsuite/rust/execute/torture/execute.exp
! 562bc23ec3b98403ff008cfc00d1460f  gcc/testsuite/rust/execute/torture/exit_error.rs
! 26fe45787f889b302963bbbae9071098  gcc/testsuite/rust/execute/torture/extern_mod4.rs
! 7fc01aec2c7078efed4d06dfc67fcc26  gcc/testsuite/rust/execute/torture/extern_mod4/modules/mod.rs
! 8a977d4571480fdff071314ac95ea238  gcc/testsuite/rust/execute/torture/for-loop1.rs
! 8488f14d89d66435530e089558a1cd96  gcc/testsuite/rust/execute/torture/for-loop2.rs
! 06a0bd431d9927ef09d0cab9ed034492  gcc/testsuite/rust/execute/torture/func1.rs
! fc1beda49a2edb7c8758ea335a47edbf  gcc/testsuite/rust/execute/torture/gat1.rs
! 7f8fb008b2c55c947a6d5fa71b0aa884  gcc/testsuite/rust/execute/torture/helloworld1.rs
! e80d1bfc1cd584d3d13ef5907f5b50a5  gcc/testsuite/rust/execute/torture/helloworld2.rs
! ce1a3dbc85a1c3c8bef72f1069f9da1d  gcc/testsuite/rust/execute/torture/iflet.rs
! 1820edd87a2254b5711fd2bcfc257caf  gcc/testsuite/rust/execute/torture/impl_desugar-2.rs
! 14fdbbe9702705349d285921c5508456  gcc/testsuite/rust/execute/torture/impl_desugar.rs
! 475f32742921866820e1883cbed9c58a  gcc/testsuite/rust/execute/torture/impl_rpit1.rs
! 66e10a5424f9458c0b8d9d86e58dea8e  gcc/testsuite/rust/execute/torture/impl_rpit2.rs
! 0bd82be933e7dfeb3c09644a8dfc18e6  gcc/testsuite/rust/execute/torture/impl_rpit3.rs
! 58f03533aa45f7474b5b72ddebd8261c  gcc/testsuite/rust/execute/torture/impl_trait1.rs
! a826918efec08b7c9d941a70d473f5ee  gcc/testsuite/rust/execute/torture/impl_trait2.rs
! 5901e0e2f4b6e7240888dd01952b5cd4  gcc/testsuite/rust/execute/torture/impl_trait3.rs
! 1946405378754f139cbf55a9c7cf92c3  gcc/testsuite/rust/execute/torture/impl_trait4.rs
  d1bf4d03901b291d3115f4895ffb2fb7  gcc/testsuite/rust/execute/torture/include.txt
! afb7e67a4d935ed8d1a12c35764227ee  gcc/testsuite/rust/execute/torture/index1.rs
! 6111cbbe2a2a24f1275318d0cf00b40b  gcc/testsuite/rust/execute/torture/inline_asm_mov_x_5_ARM.rs
! f109265d65cc9052a6971ac6af0307c5  gcc/testsuite/rust/execute/torture/inline_asm_mov_x_5_x86_64.rs
! 65e7f865d922903b53235979f6512255  gcc/testsuite/rust/execute/torture/issue-1120.rs
! a657bfe1397a0a16bce849f67f1c72b1  gcc/testsuite/rust/execute/torture/issue-1133.rs
! fcf88ba89d2ae050b7b33fc92b3b23da  gcc/testsuite/rust/execute/torture/issue-1198.rs
! 676030ac3e34ec8dfb5edd5fddded91a  gcc/testsuite/rust/execute/torture/issue-1231.rs
! 04bfd4cff17033674aef907053ca98b7  gcc/testsuite/rust/execute/torture/issue-1232.rs
! e48fe71ec8f512c3631bc8792b240302  gcc/testsuite/rust/execute/torture/issue-1249.rs
! e0021d5b369a726eb4508a890eeef046  gcc/testsuite/rust/execute/torture/issue-1436.rs
! 8bfc5bebac918c937ca06ab24395fe8b  gcc/testsuite/rust/execute/torture/issue-1481.rs
! 53132db8058b5ff8a94ee3ef1e8a9df1  gcc/testsuite/rust/execute/torture/issue-1482.rs
! 8ced47e2e7816de5ae25f2c026743d47  gcc/testsuite/rust/execute/torture/issue-1496.rs
! dff98f6825979b6545425d2b7a23823c  gcc/testsuite/rust/execute/torture/issue-1720-2.rs
! b9751ecf9b1dd50ee5260d6a37fbc511  gcc/testsuite/rust/execute/torture/issue-1720.rs
! 6798967aca0966192da8c8ab4cf44628  gcc/testsuite/rust/execute/torture/issue-1852-1.rs
! e8dc299602dbadeacd8267c3af1ca5a7  gcc/testsuite/rust/execute/torture/issue-1852.rs
! d124083a580a26883975a79786c17896  gcc/testsuite/rust/execute/torture/issue-2005.rs
! bf22196be570f743a6d1af265287775e  gcc/testsuite/rust/execute/torture/issue-2052.rs
! d02d83753d4fcc7562007134d0133ec3  gcc/testsuite/rust/execute/torture/issue-2080.rs
! b0a57734be1a41b8397dd6e28935d6da  gcc/testsuite/rust/execute/torture/issue-2179.rs
! cdb143f2bea9d5b0d6dd096f6b87267b  gcc/testsuite/rust/execute/torture/issue-2180.rs
! 4d37b30e12dbda73bdc84245babc4179  gcc/testsuite/rust/execute/torture/issue-2187.rs
! 0849285e981fbda4532e945f2ca9568e  gcc/testsuite/rust/execute/torture/issue-2236.rs
! a24d72e40525288cc7f0f02885eb79d4  gcc/testsuite/rust/execute/torture/issue-2583.rs
! 2124f374314f675973c536c66dc4f44a  gcc/testsuite/rust/execute/torture/issue-2906.rs
! aaf17d5db94a9813f292403fbef62bb6  gcc/testsuite/rust/execute/torture/issue-3126.rs
! 939a7d992a26f547feb69c8a3ef6b1c8  gcc/testsuite/rust/execute/torture/issue-3381.rs
! 2dd3705ddcec83b49eeaee6cb2d24682  gcc/testsuite/rust/execute/torture/issue-3502.rs
! 1778ec2391adfebc65dbed72f22776e6  gcc/testsuite/rust/execute/torture/issue-3836.rs
! a02a681e50afa2cbd3c2ad8b866995fe  gcc/testsuite/rust/execute/torture/issue-4242.rs
! d2de9bc967531dcc34dcd558c26c9320  gcc/testsuite/rust/execute/torture/issue-647.rs
! 07d237c11e621000c5edcd97c4ee02ff  gcc/testsuite/rust/execute/torture/issue-845.rs
! b76cea2823da2d50b3021e0b1f7cd1d0  gcc/testsuite/rust/execute/torture/issue-851.rs
! 9b817423d0e8776cf2604a0b41b8d820  gcc/testsuite/rust/execute/torture/issue-858.rs
! f43c5706216ee3dc9b89df61bce6422a  gcc/testsuite/rust/execute/torture/issue-976.rs
! 0474cd29f4ac38394ad1d8524ccea351  gcc/testsuite/rust/execute/torture/issue-995.rs
! dd32d1597fea1a996435cacac9027674  gcc/testsuite/rust/execute/torture/iter1.rs
! ac590b73bc5cfae237744467959766c4  gcc/testsuite/rust/execute/torture/let-identifierpattern-subpattern.rs
! 6969bcb5a486f388eff11f7c9b331cfb  gcc/testsuite/rust/execute/torture/let-pattern-1.rs
! db0a8a09ed0ac8ea04a088b75daac98d  gcc/testsuite/rust/execute/torture/link-name.rs
! c283fa38c85cde4c40065b1c9ca94f0d  gcc/testsuite/rust/execute/torture/literalpattern_neg.rs
! 0f19b4c8a19d0a0e6d7125027618b6a0  gcc/testsuite/rust/execute/torture/loop-condition-eval.rs
! 04123fa39ab958aabecb0ebddccba3cb  gcc/testsuite/rust/execute/torture/macro-issue1426.rs
! a1c078290b639d130a3a61448cdef845  gcc/testsuite/rust/execute/torture/macro_use1.rs
! f62fc59f9b1e2e5df6193f10679ce30f  gcc/testsuite/rust/execute/torture/macros1.rs
! 0c898029d9cffa047696edd11edceb9a  gcc/testsuite/rust/execute/torture/macros10.rs
! d16c43c1fe78d31e10defa5df4b1107c  gcc/testsuite/rust/execute/torture/macros11.rs
! 58bbd28165205c6518c7f78231776a33  gcc/testsuite/rust/execute/torture/macros12.rs
! dcf598be62651434c9c62211bdf39629  gcc/testsuite/rust/execute/torture/macros13.rs
! fb913b9db3db262690c3164982107016  gcc/testsuite/rust/execute/torture/macros14.rs
! 4daf10e0222704d264b02cbdabb06c20  gcc/testsuite/rust/execute/torture/macros16.rs
! 759322a0f4975d97e7e1704d50835986  gcc/testsuite/rust/execute/torture/macros17.rs
! 45e399bc1c3e40c0b8e88f0a63644102  gcc/testsuite/rust/execute/torture/macros18.rs
! 48fdd4316ba3f529c3fc4e0fa640e2a8  gcc/testsuite/rust/execute/torture/macros19.rs
! f9af22679e1144004b21b1c126add654  gcc/testsuite/rust/execute/torture/macros2.rs
! 83f4236229d7a9f25dbd531258b14276  gcc/testsuite/rust/execute/torture/macros20.rs
! 5e68490ca19bf0be5b9d30eea83a7918  gcc/testsuite/rust/execute/torture/macros21.rs
! 9e38ea03089cf50a81ca7685ed90d772  gcc/testsuite/rust/execute/torture/macros22.rs
! f4fae32853b6fe04e8c07919be7396bd  gcc/testsuite/rust/execute/torture/macros23.rs
! f9785e3c5c167a44f1249067a7f1daf0  gcc/testsuite/rust/execute/torture/macros24.rs
! 40c1730dfd8d27ded6b3966c2d6633e2  gcc/testsuite/rust/execute/torture/macros25.rs
! 08ac2ad80fc574cb9dc5d9b090b59fdc  gcc/testsuite/rust/execute/torture/macros26.rs
! 40a53ad3491ab371e5ffd49e4d699ac4  gcc/testsuite/rust/execute/torture/macros27.rs
! ecf1c6cff3be07fb690f250c4f2276be  gcc/testsuite/rust/execute/torture/macros28.rs
! dc39cbcd4e61480eca29876be0281d0b  gcc/testsuite/rust/execute/torture/macros29.rs
! 66edac2fcd49a853dd1f30a6348b0bd9  gcc/testsuite/rust/execute/torture/macros3.rs
! 1ed613c05a1ad7543ef82e079b5d3bfb  gcc/testsuite/rust/execute/torture/macros30.rs
! 04659711a6641c68bf5630c931d0dc23  gcc/testsuite/rust/execute/torture/macros31.rs
! b1b8da0e9fd2d8b73e62ff52660c0653  gcc/testsuite/rust/execute/torture/macros4.rs
! dfcdcd83bc5ebc48c2138749310a399d  gcc/testsuite/rust/execute/torture/macros5.rs
! 5d1ebb5cba3896ccfdc9afccfa084945  gcc/testsuite/rust/execute/torture/macros6.rs
! 7c6a430fe5cf3d413802927a2e4643db  gcc/testsuite/rust/execute/torture/macros7.rs
! 21d59eab62d3468ec5365bc069b651d1  gcc/testsuite/rust/execute/torture/macros8.rs
! acbdb2a52c48f79bcb1475fd517ef128  gcc/testsuite/rust/execute/torture/macros9.rs
! 69169d70cdb3f5ab0a07c1e0398e3a98  gcc/testsuite/rust/execute/torture/match-identifierpattern.rs
! 51486ae8d56120b9b465740b705336cf  gcc/testsuite/rust/execute/torture/match-restpattern-tuple.rs
! 24752ac186632eb781e66c76b734d63a  gcc/testsuite/rust/execute/torture/match-slicepattern-array-1.rs
! d8d0b1d8a3198c7655ff0f8dc3ee75a5  gcc/testsuite/rust/execute/torture/match-slicepattern-array-2.rs
! f4d5d7bbb110b69a743cb9188ae26b44  gcc/testsuite/rust/execute/torture/match-slicepattern-slice-1.rs
! 65a00185f210ade402e1a27b232a07d0  gcc/testsuite/rust/execute/torture/match-slicepattern-slice-2.rs
! 9f7089ef8fced9dc18b144b1cd113dd8  gcc/testsuite/rust/execute/torture/match-structpattern-tuplefield.rs
! ed67e582829619bb8e53c30b1f4ef22e  gcc/testsuite/rust/execute/torture/match-tuplestructpattern-rest-1.rs
! 8fb4e5f7e9231dc04a7ac913a6901fef  gcc/testsuite/rust/execute/torture/match-tuplestructpattern-rest-2.rs
! 24e7d6398088dc9b9c532f62cf47be89  gcc/testsuite/rust/execute/torture/match-tuplestructpattern.rs
! d28ecbd5308986d60e336228116d4f49  gcc/testsuite/rust/execute/torture/match1.rs
! 1cd6ac2fcd0111ca3ddb5c07d0f8dc82  gcc/testsuite/rust/execute/torture/match2.rs
! 1f4f2866730115786fdec562386317f2  gcc/testsuite/rust/execute/torture/match3.rs
! c87c819c369a6c5cb339ad9ab176d260  gcc/testsuite/rust/execute/torture/match_bool1.rs
! 4cbd4e899b0948c9e130d10cc11524a4  gcc/testsuite/rust/execute/torture/match_byte1.rs
! a400092118fa11bf51e49589ad4c1b76  gcc/testsuite/rust/execute/torture/match_char1.rs
! 495f479969510a80752c2afb240d7d13  gcc/testsuite/rust/execute/torture/match_int1.rs
! a3e69fd05fa0b521a704f717bda7da1d  gcc/testsuite/rust/execute/torture/match_loop1.rs
! 5988601f517bb02b7d97e98649976dd9  gcc/testsuite/rust/execute/torture/match_range1.rs
! ca54daa9bb38bd37ed1591d646708a94  gcc/testsuite/rust/execute/torture/match_range2.rs
! 7cf0e726c9a6e3b877c9fa5ab0c42bc2  gcc/testsuite/rust/execute/torture/match_tuple1.rs
! 11576469377c4d619b6345a1d82f409d  gcc/testsuite/rust/execute/torture/matches_macro.rs
! 43154a6025435f782a8aa5856e867fbc  gcc/testsuite/rust/execute/torture/method1.rs
! 51a460bf38fad0bef3afb105ea60afbc  gcc/testsuite/rust/execute/torture/method2.rs
! b38599ee0c7098e7a9f1bf7f198a85d5  gcc/testsuite/rust/execute/torture/method3.rs
! 7f538fb37e91e0496eb62513649b694d  gcc/testsuite/rust/execute/torture/method4.rs
! 1093f1c46113076ba39b38ea2091370f  gcc/testsuite/rust/execute/torture/min_specialization2.rs
! 37c83b17ded63c925c7ae45d4b582305  gcc/testsuite/rust/execute/torture/min_specialization3.rs
! 53b785c5a395d181f844e6110d3faba0  gcc/testsuite/rust/execute/torture/mod1.rs
! 8f32c6fa50d08cda976b81128a9abe93  gcc/testsuite/rust/execute/torture/multiline-string.rs
! ac93a46ca8de2da36dc848cda435742f  gcc/testsuite/rust/execute/torture/name_resolution.rs
! 095775ddc90ff72ce10b9c038325ae6c  gcc/testsuite/rust/execute/torture/named_variadic.rs
! 3481c0cc2e825dd572bf102e7d33b94b  gcc/testsuite/rust/execute/torture/offset_of1.rs
! 205c6c21b04d9174acb5c2ac40e27ecc  gcc/testsuite/rust/execute/torture/operator_overload_1.rs
! 3be90c3f2d94805fc39db4d2ce4701e8  gcc/testsuite/rust/execute/torture/operator_overload_10.rs
! 28643062c4303a90fbbd1768f24ff4fd  gcc/testsuite/rust/execute/torture/operator_overload_11.rs
! 7086b7217291a133910917c4cacd9bb2  gcc/testsuite/rust/execute/torture/operator_overload_12.rs
! b82febf1a73e15a73891e0a1ee493b8f  gcc/testsuite/rust/execute/torture/operator_overload_2.rs
! aed1a566cff821d9c9060444dad51913  gcc/testsuite/rust/execute/torture/operator_overload_3.rs
! 486836ecd842520cac82925902518896  gcc/testsuite/rust/execute/torture/operator_overload_4.rs
! c090a6e27aa865685cc6d78ba423f3b1  gcc/testsuite/rust/execute/torture/operator_overload_5.rs
! 8653fcea9bbfa7c4a0a390c5a324b6dc  gcc/testsuite/rust/execute/torture/operator_overload_6.rs
! 80f00050c30f6bace6ff9b6f6a0a9989  gcc/testsuite/rust/execute/torture/operator_overload_7.rs
! ed34afb832cba64626d6753114164dca  gcc/testsuite/rust/execute/torture/operator_overload_8.rs
! e5826343c1ccc5d729e9dd895a143e00  gcc/testsuite/rust/execute/torture/operator_overload_9.rs
! 86b50070612f5bbd17ec2353065153c2  gcc/testsuite/rust/execute/torture/overflow1.rs
! 4977a5aeea179721dc4ffa6302ba145e  gcc/testsuite/rust/execute/torture/partial-eq-1.rs
! c8f4bc453306288e6ab837dda16b11f7  gcc/testsuite/rust/execute/torture/partial-eq-2.rs
! fd0b644aeed45743ff4a35dc32fc1732  gcc/testsuite/rust/execute/torture/partial-eq-3.rs
! 897d29e8e3f185575cd178bbfb96a18c  gcc/testsuite/rust/execute/torture/partial-eq-4.rs
! 7b3991d4eee48a659cf928a8984c8efe  gcc/testsuite/rust/execute/torture/partial-ord-1.rs
! 0a4bec5c8b683a3b677d0e9bfe606e35  gcc/testsuite/rust/execute/torture/partial-ord-2.rs
! 7202bde53dc9c5e646391a88524e1b67  gcc/testsuite/rust/execute/torture/partial-ord-3.rs
! 157d5d5f339fe6bf8001c3e72056359c  gcc/testsuite/rust/execute/torture/partial-ord-4.rs
! 0a733188b6068198cbdac8d5f009e8ca  gcc/testsuite/rust/execute/torture/partial-ord-5.rs
! 7449d6357449f497d9f3a06355da5705  gcc/testsuite/rust/execute/torture/partial-ord-6.rs
! 926463e4265c60e422e3ea58e8a07e88  gcc/testsuite/rust/execute/torture/prefetch_data.rs
! b6b0488adbae59f318209017eca9e7ee  gcc/testsuite/rust/execute/torture/ref-pattern1.rs
! bfbda2cfe3a3e19ba6bf108d3aa58c5f  gcc/testsuite/rust/execute/torture/ref-pattern2.rs
! e9f7608080c979233c093620e4e5c0e6  gcc/testsuite/rust/execute/torture/sip-hasher.rs
! 3a504675697269e3df59124fe6f134eb  gcc/testsuite/rust/execute/torture/slice-magic.rs
! a88cc8f930d864487dfc5483978cad0f  gcc/testsuite/rust/execute/torture/slice-magic2.rs
! 27a69f2206e9d35294f982d42e12d17d  gcc/testsuite/rust/execute/torture/slice1.rs
! 2e2d98c5883f2de8d49f45a7f049e03c  gcc/testsuite/rust/execute/torture/str-layout1.rs
! b581a3a9ce49920ae4e05d37faadf9fc  gcc/testsuite/rust/execute/torture/str-zero.rs
! 5d52d7c98cf0d51336c808f86d878915  gcc/testsuite/rust/execute/torture/struct-pattern-match.rs
! 21b3497905d7a4a57f6ad63dccbfe5d4  gcc/testsuite/rust/execute/torture/struct_pattern1.rs
! b6c8726b86e9979f9bf8649f12c70268  gcc/testsuite/rust/execute/torture/trait1.rs
! f8c18d697ec526ec8282bdcb21b2b696  gcc/testsuite/rust/execute/torture/trait10.rs
! a2273720d54befbb1ae10831cff0f37c  gcc/testsuite/rust/execute/torture/trait11.rs
! ec4ad7b77211c9ffcd26949bfd48091d  gcc/testsuite/rust/execute/torture/trait12.rs
! aff9cfdfde35efd14214c401bff4d84c  gcc/testsuite/rust/execute/torture/trait13.rs
! e382f7693cbf2b9632fa3418b17bcb3e  gcc/testsuite/rust/execute/torture/trait14.rs
! ce18ee09ec1624514088b4a042d9d6db  gcc/testsuite/rust/execute/torture/trait15.rs
! 84b3eef116d2adb33690e7b329d03f7d  gcc/testsuite/rust/execute/torture/trait16.rs
! c5da0e3076a8ae1f847027597c2bf892  gcc/testsuite/rust/execute/torture/trait17.rs
! 51308c8996aee27338894c7b00b3320e  gcc/testsuite/rust/execute/torture/trait18.rs
! 5a732f3b45606d7dbeffdbff8cc1d4c1  gcc/testsuite/rust/execute/torture/trait2.rs
! 59bf47fe79cdd9bb05410da2884294ea  gcc/testsuite/rust/execute/torture/trait3.rs
! e7a502937359b05879946764c7fc7b50  gcc/testsuite/rust/execute/torture/trait4.rs
! a41aec2ce0d9dd32c209fdd1500f1459  gcc/testsuite/rust/execute/torture/trait5.rs
! bacbc3f690d6727e711e74bbef70102f  gcc/testsuite/rust/execute/torture/trait6.rs
! c9bea91ae1ce044220393b6dce45743f  gcc/testsuite/rust/execute/torture/trait7.rs
! 0ff654c550d4146e9f154e8f49ef23f7  gcc/testsuite/rust/execute/torture/trait8.rs
! 215790b95c5e64684cca0e448e97ed75  gcc/testsuite/rust/execute/torture/trait9.rs
! daa90aea6bd3f3798c9888f9222860f9  gcc/testsuite/rust/execute/torture/transmute1.rs
! 01084c3ebbceda46979d1bb9752f62e5  gcc/testsuite/rust/execute/torture/wrapping_op1.rs
! cf3c92e27b00cca353ef473ff1ce8947  gcc/testsuite/rust/execute/torture/wrapping_op2.rs
! a6e3b1960b16403b3c3478060109befe  gcc/testsuite/rust/execute/xfail/macro1.rs
! dad9679bd67145f945d7e0e948f2aaec  gcc/testsuite/rust/execute/xfail/match-identifierpattern-enum.rs
! 19f5e29a15addb88054fc379a60540e4  gcc/testsuite/rust/link/generic_function_0.rs
! 65eead9967b5936567cd6606bc274d85  gcc/testsuite/rust/link/generic_function_1.rs
! 739b08a3d836e7e7329c0d09d55d5fcb  gcc/testsuite/rust/link/link.exp
! 8d76036e5c64394dad51963619b346ad  gcc/testsuite/rust/link/simple_function_0.rs
! 67aec85aea44b1723ee33c95f1599155  gcc/testsuite/rust/link/simple_function_1.rs
! 875bbc32d18317b3ca6392db69a18891  gcc/testsuite/rust/link/trait_import_0.rs
! 63ee061c6ad4604e67a0943dcbeb4ef7  gcc/testsuite/rust/link/trait_import_1.rs
  7ba67c515a5228a7472fd045dd8397a0  gcc/testsuite/rust/rustc/README.md
! b8ca829745dd2a35cb6e5ad418cfda91  gcc/testsuite/rust/rustc/rustc.exp
! f5ea66a6a877aa916f3f82001c49ac06  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif
! 8791a7771ec677bb1bee8509ae76bd30  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif
! 09c8bffa3745e01b11f240c362133fbf  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif
! b94a49f1fde613c1c390114faa9fe21d  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.11.5-unescaped-braces.sarif
! b41436d3c539242f6fdfaf81086be389  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif
! ebb17fbc96c75e97e6e7834ce108d123  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif
! 08e633788353087f8bb3382c8b47e23a  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif
! 190589cb9dd035b25efd76d823b6862e  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif
! f3185388ead2920f3d24cc702ffdaed7  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif
! dcca2356651dbcc61d225f2af14de39c  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif
! 1c93cac1fe90f32a29c00896064bef42  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.33.3-index-out-of-range.sarif
! cc335159bd4b1435e0f6c4bc572bc184  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.40.2-duplicate-node-id.sarif
! c7e878f53efdf3a2d5b1173b2e628b03  gcc/testsuite/sarif-replay.dg/2.1.0-invalid/3.41.4-unrecognized-node-id.sarif
! 7b5a5f8637280fb420dd43c789b33d9b  gcc/testsuite/sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif
! eea32ee4c1d0c6d729ea4b60fb1cc4c4  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.11.6-embedded-links-pr123056.sarif
! b5deb27ab6d9cd4607e2e25fbd9a5594  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
+ e70f2852bac8d2f4f94124af298eb001  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.33.7-json-example.sarif
+ f7226a417a6156e62d6cb64ecfbb3853  gcc/testsuite/sarif-replay.dg/2.1.0-valid/3.33.7-xml-example.sarif
+ 6a8d404c5928169266e8028c674f68ea  gcc/testsuite/sarif-replay.dg/2.1.0-valid/embedded-links-check-html.py
+ e2b63c4d2b76163b1f31857690b5e899  gcc/testsuite/sarif-replay.dg/2.1.0-valid/embedded-links-check-sarif-roundtrip.py
+ b6077e077a1a5476709462b0ff857dcc  gcc/testsuite/sarif-replay.dg/2.1.0-valid/embedded-links-pr123056-check-html.py
+ b95c5d4795eaed793182304b21e84ee5  gcc/testsuite/sarif-replay.dg/2.1.0-valid/embedded-links-pr123056-check-sarif-roundtrip.py
  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
+ 64c6115dde79342ac42e205f3f37d700  gcc/testsuite/sarif-replay.dg/2.1.0-valid/graphs-check-html.py
+ c9a71bb22094924ec0c655c680eae543  gcc/testsuite/sarif-replay.dg/2.1.0-valid/graphs-check-sarif-roundtrip.py
+ c40d79f9c6a5eb2e2d3401b73c6dee1e  gcc/testsuite/sarif-replay.dg/2.1.0-valid/graphs.sarif
  0cc960ceb5aae05d1918cf826e8a2d24  gcc/testsuite/sarif-replay.dg/2.1.0-valid/malloc-vs-local-4.c.sarif
+ 4f2d6e08e2f3f2081b2db79b4eeaacbf  gcc/testsuite/sarif-replay.dg/2.1.0-valid/missing-source-pr122622-check-html.py
+ 3c107c2bbfc63b7329425402fcf8e52d  gcc/testsuite/sarif-replay.dg/2.1.0-valid/missing-source-pr122622.sarif
+ 795f81ae7fe7ff3b7e2050ce50109741  gcc/testsuite/sarif-replay.dg/2.1.0-valid/nested-diagnostics-1.sarif
  58ef936e0f61e7fcd03fa86d5bb33ad5  gcc/testsuite/sarif-replay.dg/2.1.0-valid/null-runs.sarif
+ e1207cfbffed1df00d3b4847dcf55ac9  gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1-check-html.py
+ dc142daa06fc4684b34c027dc0d07c37  gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1-check-sarif-roundtrip.py
  9e0495956d9c9c5b11ebb067092c8d95  gcc/testsuite/sarif-replay.dg/2.1.0-valid/signal-1.c.moved.sarif
! 80ba73e82e4c71a1cc93859024b24034  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
! 5b40f5f4cad1275658f80fc59a4db0cd  gcc/testsuite/sarif-replay.dg/2.1.0-valid/spec-example-4.sarif
! 549b9bea9ecfadb39d1b968de771a935  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
! 16c93b920d9449b96138146aed4b6308  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
*************** c0b991692c06f34bf7f8673802e7b155  gcc/te
*** 117680,117924 ****
  5fb2390505ce446a223d21f02b332874  gcc/testsuite/selftests/x86_64/copy-hard-reg-into-frame.rtl
  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
! 1718a36253ebbb17fe4570fc768216c9  gcc/tree-chrec.cc
! 0e4a484c6387f9be0a506783637432f9  gcc/tree-chrec.h
! 631f383225878af718642d2a458aefae  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
! 45fa4d8e792d6ddd01efa95b7e6dd98e  gcc/tree-nrv.cc
! a94299d98262f49dd0caf9ecb3dbb2ef  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
! 13a1a3c110f5436efaea0ba67d84704f  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
! 4fd21ec021c4ec50ec3ce679c9690886  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
! 970603eba5771386ebe1627241c4dae7  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
! b95106c31df764f5bd162b7d1cab8727  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
! ddfe7a899798f2b0015084eb976ead01  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
! 08cb1e9bb65caad7ed062b606b4c9334  gcc/tree-ssa-phiopt.cc
! 0864f59d85045caee0a643f82fa6d20c  gcc/tree-ssa-phiprop.cc
! 0c173f8637d1259922572eb432a405ef  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
! 9345c4fd15591c1c4b2ae0642aa4848e  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
! bd67579773d2e2f4ce02d41953702750  gcc/tree-ssa-structalias.cc
! 8236d4d91b8701a8daadc2f8a12d4752  gcc/tree-ssa-tail-merge.cc
! 18ba2469cfdfbd297fe2b0120e69a84c  gcc/tree-ssa-ter.cc
! 3094df71c80e187685e4e97e428d64f4  gcc/tree-ssa-ter.h
! 5119cc77a94879d77536055405d9f25a  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
! af4c63760c432f66b1c6c8e7e7666699  gcc/tree-streamer-in.cc
! 629c2d175128efb2809d4ed7e08f1a18  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
! 4395c5694fb8d6adf7c34f1dc685bc7c  gcc/tree-tailcall.cc
! 61a9b445a765d6b6d497bc7273d05f64  gcc/tree-vect-data-refs.cc
! 7ac587d2dd45a9437f9daa1b6409dca9  gcc/tree-vect-generic.cc
! cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
! a41c3fb8911461149186ff901cf31d4a  gcc/tree-vect-loop.cc
! 77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
! baa70369c21f662d5e61d1296052d231  gcc/tree-vect-slp-patterns.cc
! ab9bcf6e6a2121e20b6e65fff17d0f2e  gcc/tree-vect-slp.cc
! c095caa5b1ced0e7d097e6a525709865  gcc/tree-vect-stmts.cc
! c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
! 258611ff1e83cc7680e8c9f033499665  gcc/tree-vector-builder.h
! 6a5457c324d4279acbd82f147f1dd823  gcc/tree-vectorizer.cc
! f5c90b57853064f13fc6868527a2ea7e  gcc/tree-vectorizer.h
! cb2defb55935eac3f24944ba204230f0  gcc/tree-vrp.cc
! a19edad681d27130bd2a0d83768ac946  gcc/tree-vrp.h
! d5ca524138d04514e07eeb06df2087cd  gcc/tree.cc
! db4e97cc6f33c2fe3aafe8676fb649a0  gcc/tree.def
! 6a9ff2eecdb45074d05c5f46862dca43  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
! 94a5d01c2f93c2d58bc156d22602b46b  gcc/value-range.cc
! f2c2516eabc3b606655ae57885f6119a  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
! 4a87100e64ed49d643e90ef831006a50  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
! 86176175b63824354a6deb07f6fb101b  gnattools/ChangeLog
! d8c97efb6bf9731cb774fb1b1b60a266  gnattools/Makefile.in
! 813c7b1a065693bfcbc0b340b658fa5a  gnattools/configure
! b76be6d8444e427c06e4f182aa4a6a18  gnattools/configure.ac
! 90a22df00478b856182fa10f992b0be2  gotools/ChangeLog
  d0cd4560ae9ca95137adac2f96734dfc  gotools/Makefile.am
  a9620fe98e0c9bf3a5beee26347a0a27  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
--- 130871,131123 ----
  5fb2390505ce446a223d21f02b332874  gcc/testsuite/selftests/x86_64/copy-hard-reg-into-frame.rtl
  e42076aeff1c5ac155a88db5b1993d38  gcc/testsuite/selftests/x86_64/times-two.rtl
  195d431640249dac1928ced4d93ecb76  gcc/testsuite/selftests/x86_64/unspec.rtl
+ 5bf662844191f6cef3adde64d58741b4  gcc/testsuite/sparseset.supp
  4f2cac6fe70242fd7fe19fc4905f4d47  gcc/text-art/box-drawing-chars.inc
! 0066e612662021a13d96d6b2d494eb89  gcc/text-art/box-drawing.cc
! f265270649135d73a0e62a9ae94c76b9  gcc/text-art/box-drawing.h
! 7efdcc49cfe8626c3babf5c7e0d88a1d  gcc/text-art/canvas.cc
! aa15e3ae03e66b9ca714b351d53609dd  gcc/text-art/canvas.h
! 8f237c17257ae7bdd5f6e56f482544fb  gcc/text-art/dump-widget-info.h
! 1572ec08fea27180aa5e607483529082  gcc/text-art/dump.h
! b23b6b7f372f9dd31a52372818a65d1f  gcc/text-art/ruler.cc
! 3f0493f47f028266b684320b92d7baae  gcc/text-art/ruler.h
! 6c49759f75ccacdcb9a26df23b050f6d  gcc/text-art/selftests.cc
! db98dee9e81ec4e012882ad964da967f  gcc/text-art/selftests.h
! e739929109a5de82bdbc3f18c490bd52  gcc/text-art/style.cc
! 5fd8e50cc2c9c2d5ebf49e14bc12df5c  gcc/text-art/styled-string.cc
! 3e11a883d34b653808e35f1acdb6302f  gcc/text-art/table.cc
! ac43af574aff3ebf66f9d8ea4261e693  gcc/text-art/table.h
! e2deae9954d3230bd2ca6aad647fe8df  gcc/text-art/theme.cc
! 90eb6bd4c07da23d8639aab213e8b1ff  gcc/text-art/theme.h
! 0cae633d791e1d238ee5f1a12abf3060  gcc/text-art/tree-widget.cc
! 22f6d6d61daa88d6058384076b80dbb4  gcc/text-art/tree-widget.h
! cbe90a107fcd179a95684d58982b5779  gcc/text-art/types.h
! 43e95262bca87ebe9232cb43485a2fe4  gcc/text-art/widget.cc
! 16df2eee5df7c3c54070ef71bde6afcb  gcc/text-art/widget.h
! 4020706e89a3193babbae430014c2735  gcc/text-range-label.h
! 092eef5e89ca84562a58ff0e91eaee48  gcc/timevar.cc
! ee4165de3d74b0fde5ca55a403c7f37b  gcc/timevar.def
! 160bb6626a9562507750456253c82eb4  gcc/timevar.h
! af430d420eee56a4d869b7421ddb08b9  gcc/topics/pass-events.h
! 69fb7b48ead8734e47ad2a97e00725eb  gcc/toplev.cc
! 4cc76bc48e83cd9bdd4f991959a6f230  gcc/toplev.h
! 08a29208cd04c7f3a5f2b43bec77b277  gcc/tracer.cc
! 461d12af5a299c303884d0d07511a6a9  gcc/tracer.h
! 993a97b28cca7c2e5421ec297455f2ce  gcc/trans-mem.cc
! a4340dde4019e28f9fad54b2a7770c74  gcc/trans-mem.h
! 330c89392efb47062df1e82fff7ef01d  gcc/tree-affine.cc
! ed70c897fa5690940494f2b8b6e27f21  gcc/tree-affine.h
! bc74f92323ee5636997f0c03aec16115  gcc/tree-assume.cc
! a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
! 2bb5fd65b4dcb26760b786589ff6a903  gcc/tree-cfg.cc
! 809e1f07de4be5a3fc990f66bd6d1105  gcc/tree-cfg.h
! 93710abe3578ad27dba111e1d3a1c795  gcc/tree-cfgcleanup.cc
! 645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
! 447f46e51936add5de4aaa77a96039ba  gcc/tree-chrec.cc
! 1cf760e3e7aab6f94a5e56897486623d  gcc/tree-chrec.h
! a3fd0a3b7cf7687811c2d140c14f489d  gcc/tree-complex.cc
! dea74d5dd62de97a94d9f3e749f5bd06  gcc/tree-core.h
! 4a0e32c3f4db8d2b600df44d6f3bfb90  gcc/tree-data-ref.cc
! 885e741c83d91ee864f9af2a1a079312  gcc/tree-data-ref.h
! 89ef786b9c4639015bae3652c90fa60f  gcc/tree-dfa.cc
! e4c2f21e28741c793a32ae0fc8dbfa4c  gcc/tree-dfa.h
! 0747c6d31b270b2ef08edf37adc78e96  gcc/tree-diagnostic-cfg.cc
! 6249f69b6938f0c765dfd5c8b8919870  gcc/tree-diagnostic-client-data-hooks.cc
! d386999a86d3286d44906721ad4390cc  gcc/tree-diagnostic-sink-extensions.h
! e034d1768d04fbcb8aefa0625b256dcd  gcc/tree-diagnostic.cc
! a6a0ac4b89f1e6240c0c94394b10339b  gcc/tree-diagnostic.h
! c3f03b9ec39a5dd9d9d6328f439b796c  gcc/tree-dump.cc
! 324fb4c2b4c5efd6cfc188ff13bca7ee  gcc/tree-dump.h
! 15b0d5dea2517e8735029b57cc29208e  gcc/tree-eh.cc
! d7c0da59494a51ae966d29f4618b2f9a  gcc/tree-eh.h
! 0cb6286531ef1298c60bd670fe8a1f62  gcc/tree-emutls.cc
! 278ef0d1cc8f017ae51affd9a1e110a5  gcc/tree-hash-traits.h
! f8be97e59befb22cc3869e742a095cca  gcc/tree-hasher.h
! 74a1d8bf597d9fcfa84e6ac9f2297cb5  gcc/tree-if-conv.cc
! 87f110e202a07bb1d7e6402808531851  gcc/tree-if-conv.h
! 36641aac4acff031aafd6e8316186bf0  gcc/tree-inline.cc
! 8e4dac1ee5fbcab0629042db2f9ece45  gcc/tree-inline.h
! c6ce99fc424184a60f3dd558c37751bd  gcc/tree-into-ssa.cc
! 72f7e515faeeb8223adbdd63816cd07d  gcc/tree-into-ssa.h
! ffbdc6cd519d8fe2b404591eecafac89  gcc/tree-iterator.cc
! 638181e8d71d4551c866f5609255762e  gcc/tree-iterator.h
! da9de571efa01bc66c1db48e416352ae  gcc/tree-logical-location.cc
! 3fc6fceee69fd62a808aa84716a854b7  gcc/tree-logical-location.h
! 7232339926988cc760690932854773a6  gcc/tree-loop-distribution.cc
! b980e97059595b9c229e76799b1309df  gcc/tree-nested.cc
! 7bdbfccebe0ea4963fd220c0676ad6a2  gcc/tree-nested.h
! d239500c752edeffb49a14623c8a522a  gcc/tree-nrv.cc
! cc426a8cd04031d2ec180f0d10e2531c  gcc/tree-object-size.cc
! ceb2c708500ddb7d48dbc25764c96b5d  gcc/tree-object-size.h
! e3ac97ae6e4c501bb7dabaf26cdf8a30  gcc/tree-outof-ssa.cc
! 7810fba9c2ee7167c24df41d8458fad3  gcc/tree-outof-ssa.h
! c8e26af48c749019e87aa9559c16101d  gcc/tree-parloops.cc
! 898be2fb978b49d3654ad458a2cfab7d  gcc/tree-parloops.h
! fe7cb8d01db48420c7b2914863f3580c  gcc/tree-pass.h
! 559089300f750cecc62d34797418b3cc  gcc/tree-phinodes.cc
! d370934f01e7c80fa4e88a80fabbcb95  gcc/tree-phinodes.h
! a24cff30baef257a999b4fac3ca47d5a  gcc/tree-predcom.cc
! 47856333edaecc32813dad93ecb96fbe  gcc/tree-pretty-print-markup.h
! 45c5e55c37764fad83ea33411f4eb348  gcc/tree-pretty-print.cc
! c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tree-pretty-print.h
! 1ad5e1ab19c4386e24d5679133ee5502  gcc/tree-profile.cc
! 1c083b3b5e93b4a862d00afdc7110007  gcc/tree-scalar-evolution.cc
! 0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
! 6386c2ac578a3794d245342b702f721e  gcc/tree-sra.cc
! 3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
! 39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
! 2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
! fcb7975097b4ee08d301f6de516fdd62  gcc/tree-ssa-alias-compare.h
! 9c20916ac2e4fdfc859f243e764d56db  gcc/tree-ssa-alias.cc
! 05510947cfea397a44870db7a92b253c  gcc/tree-ssa-alias.h
! 2437152cc41a96136b237347fd24b05a  gcc/tree-ssa-ccp.cc
! 00bd4ac9fa4538263509ec504e606320  gcc/tree-ssa-ccp.h
! b36c3bd52f9df56746196a0cf2b3ac14  gcc/tree-ssa-coalesce.cc
! 7de85a2bd407435f95828a5c4e12f826  gcc/tree-ssa-coalesce.h
! 121090f76aa83f677c00129216885e7e  gcc/tree-ssa-copy.cc
! d5dba4b9ca0d7dfc67c9d53ec5273fb1  gcc/tree-ssa-dce.cc
! 34546de59e69d1a125c3fa7747d7f0e2  gcc/tree-ssa-dce.h
! c1c4fe85c3abe80948e72eb9950ff189  gcc/tree-ssa-dom.cc
! ec31925fe8431d27258939fc79f1f02e  gcc/tree-ssa-dom.h
! b0752286b16612fce67b55c8b0bdbdbc  gcc/tree-ssa-dse.cc
! 1df01d660e0f98ade0ae7a3152aa33ed  gcc/tree-ssa-dse.h
! 890a68ae6871734051f59053b9834eeb  gcc/tree-ssa-forwprop.cc
! bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tree-ssa-ifcombine.cc
! 96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
! 7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
! dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
! 2b7917b8cadbc3f3b3807f67ee57a48b  gcc/tree-ssa-loop-im.cc
! f8b96abb98adf78d9bf9645ec4529541  gcc/tree-ssa-loop-ivcanon.cc
! 0352f316ce735254fc0a8394edd81dc6  gcc/tree-ssa-loop-ivopts.cc
! 73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
! 3b019867aefd4f962c260256d5bed88e  gcc/tree-ssa-loop-manip.cc
! d6013c7f2ea70d40b0d82c53eacccd45  gcc/tree-ssa-loop-manip.h
! dd077208a385ebc47c36426a4208bf7a  gcc/tree-ssa-loop-niter.cc
! 722669ffcd66a5eddeeebe77512a22fa  gcc/tree-ssa-loop-niter.h
! a00381a12f6e0a0c69845030d621d615  gcc/tree-ssa-loop-prefetch.cc
! ebf22ffd803f5b75a6819a8b565bcea0  gcc/tree-ssa-loop-split.cc
! 7d41277dc2b070fc20de82de11dfe8bc  gcc/tree-ssa-loop-unswitch.cc
! faa18178392bba086edee765e464318c  gcc/tree-ssa-loop.cc
! c1590659dad2b41a69adb7654db65644  gcc/tree-ssa-loop.h
! 895ec87fac3252b3f3cf780e31ae7020  gcc/tree-ssa-math-opts.cc
! fa83f982a805985b3a3da2ca5e10e43a  gcc/tree-ssa-math-opts.h
! 9b5221bc2087b040736afeb799949b04  gcc/tree-ssa-operands.cc
! f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
! ba27d633db52c7d11f4cd30e1d5ca251  gcc/tree-ssa-phiopt.cc
! 8ab9314ce21d683c5fd9fc16bf7cab29  gcc/tree-ssa-phiprop.cc
! e356f4c7b22c3759a86c782d5e99d1a8  gcc/tree-ssa-pre.cc
! 5d6622629ccbf56551beb5cb3cc8684a  gcc/tree-ssa-propagate.cc
! d38017eb69a50f24b5e47ee97928afde  gcc/tree-ssa-propagate.h
! 1f64e1425bb8bc82e544c5f49f89b084  gcc/tree-ssa-reassoc.cc
! 82a2c700ac2e32f106bcbd11fc5cf152  gcc/tree-ssa-reassoc.h
! bbfdab9c432e365a5d11e0249f3f57f1  gcc/tree-ssa-sccvn.cc
! 969557a6ff2537ae4a6d36fde566e436  gcc/tree-ssa-sccvn.h
! 43b66558734f8fe9fec03260c6814f6b  gcc/tree-ssa-scopedtables.cc
! f9f30b312deca96b11a781af60153767  gcc/tree-ssa-scopedtables.h
! 3b2415ac4cc87839b64bcb95bc5ba760  gcc/tree-ssa-sink.cc
! 5bc6c4e8688d99d5a04b091e155424b7  gcc/tree-ssa-strlen.cc
! 7e86234d60a489dfd04ff6e6792e020e  gcc/tree-ssa-strlen.h
! 4c095e72d51f754fb4a38150afa250e6  gcc/tree-ssa-structalias.cc
! 1cb62c7fa7db51a11ab31132b6a2edee  gcc/tree-ssa-structalias.h
! 0446a2ea253b8980787fe93568c7836b  gcc/tree-ssa-tail-merge.cc
! 4835f0b56bdf88ee25d6d6e08808a7db  gcc/tree-ssa-ter.cc
! ade30359e437d413371ab6bf896f2aa8  gcc/tree-ssa-ter.h
! 937f647b1c97c5dbf05cfad994927673  gcc/tree-ssa-threadbackward.cc
! ad70c411b7d21101dac0ae7123f4d652  gcc/tree-ssa-threadedge.cc
! 68901eab6fa42a8561fa69c7ce55bf1d  gcc/tree-ssa-threadedge.h
! 88020d1afacf71ef579fbd0ac820aa92  gcc/tree-ssa-threadupdate.cc
! 9a23dad40361ccf83cef995bf6f1eb7f  gcc/tree-ssa-threadupdate.h
! 1ce33c3fcece5cc997c68f1a016493d4  gcc/tree-ssa-uncprop.cc
! 193675ff54e34d6c9e3f9ed273875065  gcc/tree-ssa-uninit.cc
! 279ea9e00a2b8bcdea695493aaecddf1  gcc/tree-ssa.cc
! 070343f0d359685a1e4b6492f3a41e29  gcc/tree-ssa.h
! 71f7ada8f58374ddb220c758cc5e10a3  gcc/tree-ssanames.cc
! 90fbd5cfafe635bc28561bc0092642e2  gcc/tree-ssanames.h
! 9800375f31e457a30cf501959cec78df  gcc/tree-stdarg.cc
! 208d28432e9ae5fc3f0dd219bf094d10  gcc/tree-stdarg.h
! 49590e10048d8c74593d500d62d247f0  gcc/tree-streamer-in.cc
! f8119a019450befbbf3e3e40b010cf74  gcc/tree-streamer-out.cc
! 4d591a91fc3bb023839baddd9e66a821  gcc/tree-streamer.cc
! 9776b3844a0761f68ee0aca3fd2e74ea  gcc/tree-streamer.h
! a276a785e139fcb28cbe71af406290bf  gcc/tree-switch-conversion.cc
! e316eddfbf9a02433a4ee93e648f3aa4  gcc/tree-switch-conversion.h
! 6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
! 9d1d629a67b789d8cb739163675798bd  gcc/tree-vect-data-refs.cc
! a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
! 5945009d0ba922b53aacbb6f724d3caf  gcc/tree-vect-loop-manip.cc
! 4db4c788ad82e8091c2e59c369ad0458  gcc/tree-vect-loop.cc
! b65839ac30937104b9a0643233f69538  gcc/tree-vect-patterns.cc
! f4494efe1c7d9f006f6abb9a9be493d2  gcc/tree-vect-slp-patterns.cc
! 5719f60864e5a8f3cb680531418ad4ac  gcc/tree-vect-slp.cc
! 1e0a184e5916e9a6e1ace6bb47ebe692  gcc/tree-vect-stmts.cc
! 42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
! 4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
! 29624134a45fa2e54db69b6ee376164d  gcc/tree-vectorizer.cc
! 07b69260748bf7c73e4e33c6681992aa  gcc/tree-vectorizer.h
! 366e0ed463591e966ced4d1fd421282d  gcc/tree-vrp.cc
! d7273e63988959e17e61bc75f7f0cf29  gcc/tree-vrp.h
! 2cbe257402da9e62b76d6ba0cc174bd3  gcc/tree.cc
! f88475a43ca5e7c59112c941875a762c  gcc/tree.def
! 8bb3b7b9505380ae2b5fe970d37568db  gcc/tree.h
! 56652e612288132aa8395fdf720b0146  gcc/treestruct.def
! 6c6350469a3dbb37f658f247d16ed872  gcc/tristate.cc
! 704359710c2d40a58b6646b2da626443  gcc/tristate.h
! e43734cf1c3363a7a6d250eaa9c6b87b  gcc/tsan.cc
! 818c474ed64c58456d895ed7d12be883  gcc/tsan.h
! 73cf7e5eef7232575aac45474ed7f03a  gcc/tsystem.h
! c79610c0bd601062663853b8fcae475c  gcc/typeclass.h
! 76d55cad7b50e37496d3e8cd7868baa3  gcc/typed-splay-tree.cc
! 09689981816eb6cd15fda96e89152291  gcc/typed-splay-tree.h
! 85f31f9fcbbc2285dbc2cfdcaa9b417d  gcc/ubsan.cc
! 334bfcc0efaa117072eb417cb20a2c9e  gcc/ubsan.h
! 0102d3e99143514b227fb0552a6ed2f9  gcc/unique-argv.h
! df6e60fd226c010029982dccb67d2e71  gcc/valtrack.cc
! 8e6c00c7b13e3ea0af5115a1da91a388  gcc/valtrack.h
! 4eda99869334c77f724a5630acdfb6cf  gcc/value-pointer-equiv.cc
! 87b8ea160aedd51d0b39987c651c19c5  gcc/value-pointer-equiv.h
! 25abf8431e827e6fdd5d719820f13b81  gcc/value-prof.cc
! 062dd0b6b7d499b7d7b9a11718fe3ecb  gcc/value-prof.h
! be1170a025f3c3a0a5977676d6c260f5  gcc/value-query.cc
! 141e7cfea53719c3627b16f5cd7347cd  gcc/value-query.h
! 232e88bef5fe263fb56ac139fedbeff7  gcc/value-range-pretty-print.cc
! 4235b252ca8759d55215ee9cd42e1e93  gcc/value-range-pretty-print.h
! e992c1401c79c9a800a799632e7c3a66  gcc/value-range-storage.cc
! 93e35ace3b0e7ef184149d285231fb36  gcc/value-range-storage.h
! 44450674ee82f7f36311b3b58ea85b33  gcc/value-range.cc
! 54f52d51793d03199259f9706fb0a9a1  gcc/value-range.h
! 89dd7a2e6c8aad8f04c37053eb24ec36  gcc/value-relation.cc
! ea7df3e5b6ab2e6e23e741431d583880  gcc/value-relation.h
! d6e6c12ad7955457218136e35f5a30d6  gcc/var-tracking.cc
! 1657e0e5b170dd495911d1c2ceeb23da  gcc/varasm.cc
! 183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
! 136dfca78729a02f744f7929df4331c9  gcc/varpool.cc
! 1eb1aeaffcea7302f0e479e7e824f742  gcc/vec-perm-indices.cc
! f5d57a9ceb21da232787c72a12a3b597  gcc/vec-perm-indices.h
! 0eab6e9da32af1112170f518a116f7cb  gcc/vec.cc
! c91273a15934abde46fad0e255ab7a7d  gcc/vec.h
! f2d9db7b65884c657d64eb3ef0099e7e  gcc/vector-builder.h
! 5bd2fdb85907c3cd81a94bbb079987db  gcc/vmsdbg.h
! 95acf3cb9ab17aea0a6c6f22c2aed8cb  gcc/vmsdbgout.cc
! 558b35a32509b11569059469a6483940  gcc/vr-values.cc
! 249b704a63c681faf2b2167bbe2ca8f4  gcc/vr-values.h
! 53d46f0fb835547c9c6d96fa70175570  gcc/vtable-verify.cc
! b1375286068f9ca70e290ce9a506bf2f  gcc/vtable-verify.h
! d55ccdff82a43a777b5126ab555d5e17  gcc/warning-control.cc
! 9cb13ff5d429d6e67976ef4de9baa933  gcc/web.cc
! e164527fa2ee6715cf2af8861bacd107  gcc/wide-int-bitmask.h
! 1b202f82a19624ac3a25fa1a3f24fc9d  gcc/wide-int-print.cc
! 9edad7be0af7a88f4f4b05afeef55e59  gcc/wide-int-print.h
! b43850588531a10c92f2edb3db6ca034  gcc/wide-int.cc
! 780cdaa4e3e004ee73cc6bde32be2535  gcc/wide-int.h
! 270601d5667d37001f6cceedc54db709  gcc/xcoff.h
! 9bbcc6c5fc2143d227f9bb62f34ddaed  gcc/xml-printer.h
! 36083181908ce997d5ccb6a13d6a0420  gcc/xml.cc
! d3b8c9cd116758ef43c7e9f5026f80ad  gcc/xml.h
! 16b269105785ad40c1839dea7bf507a8  gnattools/ChangeLog
! f568f67baaeb26c2d9a4ad3be7810baa  gnattools/Makefile.in
! 69a1a2005bd16d110bd6195bdbc8bafd  gnattools/configure
! b3ae75a952de14701af7879366182965  gnattools/configure.ac
! b02cf121e44636c2a8e605f3463baf06  gotools/ChangeLog
  d0cd4560ae9ca95137adac2f96734dfc  gotools/Makefile.am
  a9620fe98e0c9bf3a5beee26347a0a27  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 117929,118061 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 542f8f9bb46e56403c56935bc38cfc6e  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
! 9c4dbd8f1a68dad455d605c3f24fd122  libada/ChangeLog
! 66b34d64be399ddc98db2b4a844f1911  libada/Makefile.in
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
! c01f38de8270d558b8d3ecac839d3bbf  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 96918bf036e38d558876be76cdfb3c9d  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
--- 131128,131262 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 7951d14fb62dcd2e310889d7b17da201  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
! e4fcea241d25fd2866c6026dcccbe5bd  include/ansidecl.h
! 5bfc078257952b4c6f9300197de8edf4  include/btf.h
! ed012d2e1b2a35d00ee7b147a09713fe  include/collectorAPI.h
! 2110ede75cbfd491e2b7bb4deb05b5c3  include/ctf.h
! 4a7378da931c05c2172a79e6ed78de02  include/cuda/cuda.h
! 73105846f80b24f2de5ca33a74c4a3fd  include/demangle.h
! 622d688e2437daea4f45308fbc4b9825  include/doubly-linked-list.h
! de08e3c7e21f36ea23bcc1e19ef0d81f  include/dwarf2.def
! e3524ea4cc4a5d0491f3c5e034d8fce9  include/dwarf2.h
! a22fa0998e3b6214e560e27e65108188  include/dyn-string.h
! 7b3b7a0b762230719a7769d22e8c552e  include/environ.h
! 7547613e9b1a047a7ab38b56cee07d35  include/fibheap.h
! 0eef9b8faf693ce2239190d02f66ed76  include/filenames.h
! 6ecba0b8174bade2ad04bf2270a587b9  include/floatformat.h
! 0aad86732d8daaeebea3b853803b1d4c  include/fnmatch.h
! 9232b9a40242bf1c6326f16ca0d9c9e7  include/gcc-c-fe.def
! ff8608ebca7f383f54b64f18d8f39542  include/gcc-c-interface.h
! bc0703195f68825eedb5f2ecc8359ea5  include/gcc-cp-fe.def
! 38f9b31b1c8cf769aa1c437d0c0e614e  include/gcc-cp-interface.h
! 1f473e7d70366fbbe39ec745cde53247  include/gcc-interface.h
! 449fdb595aee67684de51e4fd976f01b  include/gdb/gdb-index.h
! 22135c8657b517d667c6d7e6b9b0de3c  include/getopt.h
! e4201c1533f78bca5a356d6bb4a0744b  include/gomp-constants.h
! 3c78dff688fb8d8a53788a7820f5f1f8  include/hashtab.h
! 2118d769c13ea72b98f0c28e1db51b7b  include/hsa.h
! d551a31f3c70723b0e716ae5b1248096  include/hsa_ext_amd.h
! 6188b71a256d4cdc0522d9d8ff6f2807  include/hsa_ext_image.h
! 0766533c1949ff4fe987a4af50cdb32c  include/leb128.h
! ce863ca5e88324199af7ad39073c7d6e  include/libcollector.h
! 80b25a2bff9d15ed6c56f74217f80b76  include/libfcollector.h
! 19239a64a518a0c34e43a916d31581f7  include/libiberty.h
! 269e96117e918d8d18fc74875ee6df38  include/longlong.h
! 8dd60990ec321da0aa8c2a632444a5e3  include/lto-symtab.h
! f37c151c683fedf084760b845e6fa266  include/md5.h
! a2eac0ce250339616deec76191462af5  include/objalloc.h
! 9a8f5999d889f25278b8d5722afda81b  include/obstack.h
! 9ba97c329f8fe729c39299042bcdd02d  include/partition.h
! 38ddaa6e46a3d1259cea38a6d5c5529c  include/plugin-api.h
! bf956d6db2f5846c3979a44199c2359d  include/safe-ctype.h
! 1ff55d48508fb7c313550994bde0ac94  include/sha1.h
! 7e9d7a27aa476704c58fd210ef6e4b72  include/simple-object.h
! 2d84d93f59f490f3e4a277d4af957d6f  include/sort.h
! a63d9bbd6d2a3c192294e4ddc38eeb70  include/spincount.h
! 84c7ce44722b791afafd7aeddbe16998  include/splay-tree.h
! c4d1e9f954552d144e97866328d6112f  include/symcat.h
! 07ab30bfc0a43169f07b4e2c56c87ec5  include/timeval-utils.h
! 34cfad09cc9812d1f3c73eb1f5993e1d  include/vtv-change-permission.h
  c7399bbb7eadd31d7cd04991cd79c238  include/xregex.h
! ad529dd460a9f8a6a0a6c8718141c8a1  include/xregex2.h
! f26e462c6f89f856041d649e1dfa527e  include/xtensa-config.h
! 3d8d2eed6ccc2672f74fbceebee3e14e  include/xtensa-dynconfig.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 6ea97ce3384eda8db806477ec595357f  libada/ChangeLog
! 5f5f2ee170291ec2f9aeead776bbefd1  libada/Makefile.in
  46d6319e8ffc7eabf27cbecd6141a912  libada/configure
! ab9e00e84d092822a6cc241ba44f609b  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 83d657f4aa0e8f43c30951d2eb7ddfdf  libatomic/ChangeLog
! 7774b8df5edff5c25147dd50568e9695  libatomic/Makefile.am
! e0bb77f7c38e767f851204b0f112d72b  libatomic/Makefile.in
! 357dab2e679ef947dacf67e851f4e4ba  libatomic/acinclude.m4
! 24697a8f49205fd232a3f6f3870a5d40  libatomic/aclocal.m4
  b741b38c451feebdcd9aedce6e37b702  libatomic/auto-config.h.in
! 85778ae74823824ea052d5783265c513  libatomic/cas_n.c
! c2ba65aefa7f432b1b7da4bddfaf3862  libatomic/config/aarch64/aarch64-config.h
! 76f26f6d77541f69fee32bbd43ffbc11  libatomic/config/aarch64/host-config.h
! 192ff33244736506e1357971b7c6832b  libatomic/config/arm/arm-config.h
! 2c2c0c76544d0cab278e1daa606d7bac  libatomic/config/arm/exch_n.c
  03721fea5b66271f6af702a80b072f47  libatomic/config/arm/host-config.h
  db43cf5a187a91251ef3198570679f95  libatomic/config/ia64/host-config.h
! ac236f5c9bf999f1b3751f6cbdff2746  libatomic/config/linux/aarch64/atomic_16.S
! b1dcad3b5f891781ba36847c97db9673  libatomic/config/linux/aarch64/host-config.h
! c9c90eb06e3ff9f716b28f94d5f5249c  libatomic/config/linux/arm/host-config.h
! 900281f72479752d1787c692c18e43f8  libatomic/config/linux/arm/init.c
! 39f12b09bfbce9f44f6cbace0b289773  libatomic/config/linux/arm/load_n.c
! c557645bc3cf31aaff1f1d89b4b65afc  libatomic/config/linux/arm/store_n.c
! 77ac8bcb583aeeae1fd42cef6f6d8845  libatomic/config/loongarch/host-config.h
! c7621cd5bd41c23652a7215f64c8c461  libatomic/config/mingw/host-config.h
! e37429e393fd3c6f401e931c0dda837c  libatomic/config/mingw/lock.c
! 77e9d21116285cab134af6a4c59cd87a  libatomic/config/nvptx/host-config.h
! 84f115204a8d7d6b30b238d498a4ff89  libatomic/config/nvptx/lock.c
! e189966b494cf8aa73e29f90edd16403  libatomic/config/pa/fenv.c
! 6c99b10b45d35297db2743c5b7dee929  libatomic/config/posix/host-config.h
! b18c3bf6adb8a72f54a09233d54f6623  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
! cfe02bc4c8df8cd5b24f265139934ba8  libatomic/config/rtems/host-config.h
! f98b1713370a73aa34e5d369bd5c3a9b  libatomic/config/rtems/lock.c
! 482dcaec7882d679af2b48e450c11540  libatomic/config/s390/cas_n.c
! c26355663c5bd64968548b572ee6529f  libatomic/config/s390/exch_n.c
! 6e35bc82c35b29c541bad04ce4440c3d  libatomic/config/s390/load_n.c
! c53e0362cb69d0e6cebc493d47e5ccff  libatomic/config/s390/store_n.c
  ed3d69739cb2f35407547229f0393f92  libatomic/config/t-aix
! 18e12ed35584156293b3386bbaa4c810  libatomic/config/x86/fenv.c
! ff7145d48440dfce80b40e64432d54b2  libatomic/config/x86/host-config.h
! 9dba85cfea4771af56b0d0f71f9dd213  libatomic/config/x86/init.c
! a50d0ae6478b7ef8c414f1cc486ccbf0  libatomic/configure
! cfbdf0beba5ceb685a2a71fe953728d2  libatomic/configure.ac
! 0de16a62b4d69145d18c1019044e5415  libatomic/configure.tgt
! 17dfc1d9215cf4dc01bf9f1341c7fadf  libatomic/exch_n.c
! 76fb1d5ff64fb8b03a50051ea26a10b3  libatomic/fadd_n.c
  5934b0ba904c11c743af25059a8b7092  libatomic/fand_n.c
! f956bdc56160221dd2bc821771440223  libatomic/fence.c
! fa50e40b206400ec4865b91855e489e9  libatomic/fenv.c
  f16cd69491b524195cfb14c08c9eee9e  libatomic/fior_n.c
! 1510bf80307764c46a3ce79100efbbf8  libatomic/flag.c
  95450300e1d6abc8183974f66fbf1c52  libatomic/fnand_n.c
! ef8ec44e5752beebf44e818402291418  libatomic/fop_n.c
  ccfc3fd656c22a300f42e57f02683c9a  libatomic/fsub_n.c
  972712cce929a2e22f90b3342c92aead  libatomic/fxor_n.c
! 713e325e4840f1362ecbf64cbfe11c78  libatomic/gcas.c
! 0721554e145e568ab80db76607a0b681  libatomic/gexch.c
! 49b90d95defbdfbbec3ff6296881b7eb  libatomic/glfree.c
! 15176584ad618d2533bdc23f28786839  libatomic/gload.c
! 3173c7969f4eafb90587005942771a4e  libatomic/gstore.c
! c93b85d7b95ed603e6bde591f826d6c5  libatomic/host-config.h
  0e7ef9ed2b60ec1c9afc38701d815f6c  libatomic/init.c
  2fe463a1aa0855eab0961f927f300752  libatomic/libatomic.map
! 8e58d225b6fad8afd12425ed65404cf1  libatomic/libatomic_i.h
! 1708f3694a349f00c13d500f4bd5088c  libatomic/load_n.c
! 25ed5bbc5d4edc9b495cdaad40b37de2  libatomic/store_n.c
! 5ba2afdc380e3c38e33233fa77823f2c  libatomic/tas_n.c
  8772872393a7b4f226a2ff99cd0767b9  libatomic/testsuite/Makefile.am
! c048f9d27d78810024a0052bbf3568c6  libatomic/testsuite/Makefile.in
! db1c194c69eb8c5f5b9c5d53d057f868  libatomic/testsuite/config/default.exp
  3e77a79fd1e00a1f4e5fbf507474e1e5  libatomic/testsuite/lib/libatomic-dg.exp
! 64915dff2d4513942794e67acc165a35  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
*** 118085,118184 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! e81dc4e18ea68829705eb87ac1cc9138  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
! 7b173db7242a13a41417d3900a51dab7  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
! 5f49e0df6f35e08d415c29a22477a588  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  55625eec19bfdb5cee37f8c7ae4b796b  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
  99ad81d536fef63b80b7f776f0dec53c  libcody/buffer.cc
! 69dd1db758b0ea369d20d7331d889ef5  libcody/client.cc
  40072537e3589ff033129e9d5aa10660  libcody/cmake/libcody-config-ix.cmake
! 521e6cc4ebd40d0fbc4ad2fbd8c8063b  libcody/cody.hh
  b7630b2f7e3997152972e0d3f86af193  libcody/config.h.in
  a003d1057213ab79099f7bdbea631d9e  libcody/config.m4
  b1c5b142e9fe28fd473595d745695db1  libcody/configure
--- 131286,131385 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! e0a6b9f8092da30a160192d96ae60a1d  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
! 3666db75f4b55461411d215c60f35beb  libbacktrace/Makefile.am
! f9e4383641cb9203faa7433e51857ce2  libbacktrace/Makefile.in
  edfaf8bfb5589c6323039e8289c4bb3c  libbacktrace/README
! 4883dd3a6f42b0e31a8a56dbd4de9950  libbacktrace/aclocal.m4
! 719dc569c62e5d69a68f4863a4ababba  libbacktrace/alloc.c
! f4b1ae56f4c4053efc21b5465684f95d  libbacktrace/allocfail.c
! ee751f0cbff61e7e1ce0637b912d8510  libbacktrace/allocfail.sh
! 3bcfde89a7dff1482bb03683c70e2c53  libbacktrace/atomic.c
! 56223a0e6fed39f8de32761005c19112  libbacktrace/backtrace-supported.h.in
! 96e20545918ca8d6408cd9507c957153  libbacktrace/backtrace.c
! 71af7824d1973b034520c3322eb198ae  libbacktrace/backtrace.h
! d2bf0859654109e63b35816412d817f8  libbacktrace/btest.c
  1680f9d27c3626fb2d07ae4ee9206da6  libbacktrace/config.h.in
! af9ddebed2e099e1b87b2f3ca1d3c59d  libbacktrace/configure
! 1ac5ca3d6d16fbc88b35738285e37c6f  libbacktrace/configure.ac
! 46ec0883605fc53660c7f51dbe16b83f  libbacktrace/dwarf.c
! 883b410489e200aea1b6ecc248562d86  libbacktrace/edtest.c
! 1908cd42481d0b1a8a32ff691f4eaeb9  libbacktrace/edtest2.c
! 7f6b3bde4cee23c3f7c9f70b2f93fb7a  libbacktrace/elf.c
! 46ea221f18220bbecd9d7128ca3f6741  libbacktrace/fileline.c
! 2101239b2b163b2ca53d5ae30bbfaadf  libbacktrace/filetype.awk
! f074a8be4c44a8cd964cec9d10340d19  libbacktrace/install-debuginfo-for-buildid.sh.in
! be49a1d5141f385cac57e0ac77bc98af  libbacktrace/instrumented_alloc.c
! 0b2c09f4da738a4cc67b96ffe3b2f61c  libbacktrace/internal.h
! 67d38d9e05f032e36c03ccf1ce3dbd44  libbacktrace/macho.c
! 1ef7a2fac7a2772d0a7a556b4a99be04  libbacktrace/mmap.c
! b77baf71c27d700972eb8dc8f51ef0f3  libbacktrace/mmapio.c
! 3789b6b40341ca92c0013e965a22fc01  libbacktrace/mtest.c
! 391ba39ddd4909ef37a05687406175a2  libbacktrace/nounwind.c
! 594ac0ff61ff0b4632be4f7ce652b4b1  libbacktrace/pecoff.c
! 7a8b0f750d0ef74615d523e4c5062c6d  libbacktrace/posix.c
! 34df0de860580492f5005b13488bf8e9  libbacktrace/print.c
! b41920d55477139013ce3d99e3126916  libbacktrace/read.c
! c831c20e4578d0b03be2169c0e79212e  libbacktrace/simple.c
! 7a5f9398860d8fea53d43bafd55aa107  libbacktrace/sort.c
! 2df44beb0af670ae31954f4328f5c9e7  libbacktrace/state.c
! 3b0cc1f755bd9dc3a5bc0d7de583a39f  libbacktrace/stest.c
! f12cb902c3ab24d137099f0db9e260a9  libbacktrace/test_format.c
! 18c308f65a94786fb63f3f5d50d98552  libbacktrace/testlib.c
! d8d1bc377aa497a217f38aad204fd050  libbacktrace/testlib.h
! 886b918a82080f85c7ca29ba3fe03708  libbacktrace/ttest.c
! 8f0d571ffa42ffdc43776bebe5d56ef2  libbacktrace/unittest.c
! fa9332436547b6e468e3f9d3560612c5  libbacktrace/unknown.c
! c2c965e4a7a144af3e430d4191b2a091  libbacktrace/xcoff.c
! 04137bad794f9bfb1236039f63227eef  libbacktrace/xztest.c
! 47e1b04b06d9e6924421aef4c4247940  libbacktrace/zstdtest.c
! ace1e49933e01dd308790e101ff593e2  libbacktrace/ztest.c
! 2bba393e96eff722fc2a34903416cd55  libcc1/ChangeLog
! 8449193c9f9b6527fb64e695789dd4bf  libcc1/Makefile.am
! 270e13d9f539c9eacc16d848641ecb9d  libcc1/Makefile.in
! e6c98f41e0035dd3e80d4c55a6301318  libcc1/aclocal.m4
! 2929e4652ca744a38e3731e096b9f426  libcc1/callbacks.cc
! 53efa971d685c34e48f1d3d744c129a5  libcc1/callbacks.hh
! 1f3b7b1e8d6a667dd12c3a564524179a  libcc1/cc1plugin-config.h.in
! 4cc8bd95c8a09a52bc677c3990d40b64  libcc1/compiler-name.hh
! b81670f5b1782bfc90a1641a5b528a69  libcc1/compiler.cc
! 9c3fd31e9505d2a9efdf9e1159e6193c  libcc1/compiler.hh
! ff280c71e6fd682745f98038e88fda46  libcc1/configure
! 2e075009cecb0c6309d63e3aa6cb1b02  libcc1/configure.ac
! 642ffa3531181bf89d3bab42b8c5d1df  libcc1/connection.cc
! a75a7b35d84b12cff2515c2ef99a1060  libcc1/connection.hh
! 5425ed3686d1684ba34ddbda63f3246f  libcc1/context.cc
! e6f29bec8ebdf284e9c32851f8c75678  libcc1/context.hh
! 5bdb2aa4c64d1f7af165162dbdb54fa0  libcc1/deleter.hh
! 1b20275398f84b8e26ef391f22602b25  libcc1/findcomp.cc
! f816b0bc5b17f6f2798ad338ac55851a  libcc1/findcomp.hh
! c7c355053af23dc00e98d44d86eb47f2  libcc1/gdbctx.hh
! 6a7cc9c0a370942a7d53cb3025796438  libcc1/libcc1.cc
  99b3a25ce17ed584d9f0aa42b4713938  libcc1/libcc1.sym
! 763ec519d0c487f9aa36545436ca3166  libcc1/libcc1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcc1plugin.sym
! ea1b4786e1c05805205e8285603b195e  libcc1/libcp1.cc
! b72d68dce9c92efab2338e3a4752085b  libcc1/libcp1plugin.cc
  75503db6a0981a95d9c29d9607b29380  libcc1/libcp1plugin.sym
! eb1c55f4816e93ada80eae709c628a8a  libcc1/marshall-cp.hh
! 87287fd5e305703c5a029a4220bcf0a8  libcc1/marshall.cc
! cb90d8c93cfc26d02d8ec808d6c87ea8  libcc1/marshall.hh
! c3e782cdef22e0342a3fe37b9a449b4e  libcc1/names.cc
! c9e8187ea9d00b9a708bb6b224e48fb5  libcc1/names.hh
! baf6154073dc5f116cac69049f880e89  libcc1/rpc.hh
! a03a89b65820bc9322189d3a99e333b5  libcc1/status.hh
  8e32b4f309146e8842db7a077d77be28  libcody/CMakeLists.txt
  c96a56ec7f0400e30e99a9aa445e0425  libcody/CODING.md
  b5243c8c76fc965a409394a30679e613  libcody/CONTRIB.md
! 9393d6292882a64d4c74b8193c57bbe8  libcody/ChangeLog
  86d3f3a95c324c9479bd8986968f4327  libcody/LICENSE
  55625eec19bfdb5cee37f8c7ae4b796b  libcody/Makefile.in
  ca1c6fe3df5427016005ce753c73d454  libcody/README.md
  99ad81d536fef63b80b7f776f0dec53c  libcody/buffer.cc
! 6085d20f25e5c2f4809b76fc28261fb5  libcody/client.cc
  40072537e3589ff033129e9d5aa10660  libcody/cmake/libcody-config-ix.cmake
! fbd197f7a8c4380bf81aa2ca35950438  libcody/cody.hh
  b7630b2f7e3997152972e0d3f86af193  libcody/config.h.in
  a003d1057213ab79099f7bdbea631d9e  libcody/config.m4
  b1c5b142e9fe28fd473595d745695db1  libcody/configure
*************** b7f8907c165e46ed56efaa23a2c2a570  libcod
*** 118189,118372 ****
  cffdeae41b78da05839b193e90188f55  libcody/netserver.cc
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
! b1f3850fc5ac62999d1e124aa6f76531  libcody/server.cc
! 23a2475b88f7e52aa38d9b2fc4feb983  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
! ce74c78c2cb27bcdeac8a9b0400712cd  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
! afb53d91467e0952508a757742351dd6  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
! 45105001df77838b6bd31a5734b42d53  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
! a986ef81af5e76de49d9931c7f0d5e5f  libcpp/po/es.gmo
! 0e068d42c8afe63e50cd75160bed69bc  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
! 5063cbb72dd1dc6dc8e14a3e0e8053b3  libcpp/po/sr.gmo
! c58601ae47b55b5f934cab674aa29518  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
! f639677b9a6c2cd7b5ace7a95f3ba445  libcpp/po/zh_CN.gmo
! 3a9e8d5257306de129c16d46acb33af4  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
! 127b78115291039b4b3834a93ee028de  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
! c6e6b7204d1960a3044622a4f927c4c7  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
  cc4552d9286c17a905988bf55f96def7  libffi/HOWTO_MERGE
  679b5c9bdc79a2b93ee574e193e7a7bc  libffi/LICENSE
  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
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! b129629db06d710e4bc7ff5b8719756a  libffi/configure
  0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
  54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
! aa80c390acbb9137366229096a1c3845  libffi/doc/libffi.info
  db28be3951c18d6db6e90f7e612bc67b  libffi/doc/libffi.texi
  5919fb480c65fe4ba9e8d97536e528b2  libffi/doc/version.texi
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! e76936a8cfe1f7636b1f5349e16810c4  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  a07e638debebcc001e7a73eb4a90ddba  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
--- 131390,131573 ----
  cffdeae41b78da05839b193e90188f55  libcody/netserver.cc
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
! c94add0032978604acf65591bb86d2d6  libcody/server.cc
! 81c98ed7ef4bce8b3b1c6b91a070f6a8  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
! 4f1e80b433907c013fc6e4eaf2b0e8aa  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
! b6d00b61c96de9ec794bfec204304209  libcpp/charset.cc
  5b2f9d37e91d01eed5bf420a47dc8046  libcpp/combining-chars.inc
  4c25fc38f2b9d20ca1fbefba9ad34b45  libcpp/config.in
! ce84d633b2df3cc02e63c283e8c7cbd8  libcpp/configure
! 544c7a7a88b9eff04de422a131146f0d  libcpp/configure.ac
! 154834f1a6c5c86f0234b15fb1935611  libcpp/directives.cc
! e6648c5f8f4e111883be81dc9e8dd630  libcpp/errors.cc
! 37523565269ad97ff6a5145be04df661  libcpp/expr.cc
! 68b59487adfb7aaadd47d0fe0808c171  libcpp/files.cc
! d7530c9a36bef9a00a690083401e3c83  libcpp/generated_cpp_wcwidth.h
! bf0c57c21ee2aeaa654ee6781e41cad5  libcpp/identifiers.cc
! a72f35908cfbf53a2b400c41cc011477  libcpp/include/cpplib.h
! a5730f5ab9435bb5d8446830fe8f3706  libcpp/include/label-text.h
! 8cb860e4fa9bf4c99ce3c92bfa2ca0c8  libcpp/include/line-map.h
! 6c27e4af6058e741469234cdf0f74c01  libcpp/include/mkdeps.h
! 0c5086e2180aacc727c73843682f1fe9  libcpp/include/rich-location.h
! 1e65760d4159f777cf02dedef8a52357  libcpp/include/symtab.h
! 5a44adf11235c72de2f0c0e89db76903  libcpp/init.cc
! 5dd7b91660095eb30390141c1882293c  libcpp/internal.h
! eec01dea6d3427e2180f77d3002420b8  libcpp/lex.cc
! 249925d70293b09b52183c1e2c75784d  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
! 8fdce4dfce3a69798f4bcfddbc367465  libcpp/macro.cc
! d26583cbbddfb0c82d15d845129a84da  libcpp/makeucnid.cc
! 513bef3dd142eee93a5ab0328c142287  libcpp/makeuname2c.cc
! 41062cc2160022988a21f2594a674c19  libcpp/mkdeps.cc
! a7f5b54d144fd860606986c00f6a78e9  libcpp/pch.cc
! ffd19fa095ecb84d570b14aa80358c6d  libcpp/po/ChangeLog
! f8911d7159af7a85a3b79336f7013869  libcpp/po/be.gmo
! dad91056edfeea82b8282e6f9a27188e  libcpp/po/be.po
! c922d6fd1a96348b403c4095fefee166  libcpp/po/ca.gmo
! c29e7314c960f426112db55835fc5a58  libcpp/po/ca.po
! 566390fb94e511353374f19347e8e85c  libcpp/po/cpplib.pot
  c19c4e8ad4e026281473519e17cd2205  libcpp/po/da.gmo
! bb8b6c6f2d00dd7738a2596722c9b987  libcpp/po/da.po
! c37809dbd13aae1bd99634559cc89e73  libcpp/po/de.gmo
! be5cd583020fc929ecf09ce5c9143240  libcpp/po/de.po
! 6d286d8e233aec0c97bcac6dda7fb667  libcpp/po/el.gmo
! 21ba5a41844756b12ff62adc1bc29d36  libcpp/po/el.po
! 44dc1354074644594f5ebf81cf32045f  libcpp/po/eo.gmo
! bb518272cfe370eb47d7bf6aa3ac2d12  libcpp/po/eo.po
! fa7958eadbd31cc9aa7a3bfbe4c6372b  libcpp/po/es.gmo
! 2287f0acd8e76d06d1b6bb15727713ab  libcpp/po/es.po
  94d8090f49948d03bd5245a43b96ff16  libcpp/po/fi.gmo
! 0ee0624e1aedc5e16084f7a64f040ea9  libcpp/po/fi.po
! 107b444d9fdac5ffb53d794b37b530fc  libcpp/po/fr.gmo
! 99a8e55bf9f69682492716cbf48db7ac  libcpp/po/fr.po
! a5c8eed089f5aae2fed515ddfda9e7dc  libcpp/po/id.gmo
! 4fbd56f7605cd06565be4eb9007e5a6a  libcpp/po/id.po
  287138cc8161702bd8587936cdc0549a  libcpp/po/ja.gmo
! 3856e7f941e417de8f002ebab414250d  libcpp/po/ja.po
! a08b8ef056191b15aede78fb933ddd54  libcpp/po/ka.gmo
! 23e3729da99bcc27818441a418db846c  libcpp/po/ka.po
  134eec119014d04e0ca336bfdd15dfbc  libcpp/po/nl.gmo
! 32c751f0fe220e97d19433c4a42606eb  libcpp/po/nl.po
  5cde548c01395247f98d86b31532606d  libcpp/po/pt_BR.gmo
! 2fc460cea2d2d0037f16122b9f7150b6  libcpp/po/pt_BR.po
! 01edd68e0fdbd72f3542e9711a3dab2a  libcpp/po/ro.gmo
! c6154f204d64ce575861a57d4ab6d574  libcpp/po/ro.po
! 6911625ad449bcaf8e0d70b316987a72  libcpp/po/ru.gmo
! 72a4839a2beb50bd58085e606e630ca9  libcpp/po/ru.po
! 311364a6ddc58bcbdd03ff777e909924  libcpp/po/sr.gmo
! 69e89bbf2eb88bb7c5b258f8bfa60f25  libcpp/po/sr.po
! c17b64b14aa9ad8ef056a861f84470a7  libcpp/po/sv.gmo
! 840d51a0bc827b9c4e5cfc6fcc600e4c  libcpp/po/sv.po
  81fe038a9526f1cd3696fae730844d0e  libcpp/po/tr.gmo
! 25d7a91b428ef832c3f3a5976bb39cc4  libcpp/po/tr.po
! e9c40da5a0b35e3ccba20af1e90fa2f8  libcpp/po/uk.gmo
! 5c221150f1adc615290ea34671da4b60  libcpp/po/uk.po
! ceb759e16c18ec40e197e623ab8809c8  libcpp/po/vi.gmo
! d1db0a599883c74c6de2ed0ae70285a5  libcpp/po/vi.po
! 299a4b93d6a8591697868ae1dcf3af89  libcpp/po/zh_CN.gmo
! f0fd7a6ac5418ba892e202413e7023f5  libcpp/po/zh_CN.po
! 4244143a69f1df4743fecb1bbf28aa35  libcpp/po/zh_TW.gmo
! 007e9f7f09c4d70c35059ac7ad183aae  libcpp/po/zh_TW.po
  23984f1c939c855d527f2c76d3fb6fc4  libcpp/printable-chars.inc
! 70005a507a1d4afc4da48e0d4e7a6675  libcpp/symtab.cc
! 93c0e66f48d684fddd186b6f6d090f54  libcpp/system.h
! 7dfd1093b14aa6e5f7429eccd3369d46  libcpp/traditional.cc
! 906573e05b3938750e0f4d7289046f52  libcpp/ucnid.h
! 7f7e98fbd0a3dd7aaefc862f98359a5f  libcpp/ucnid.tab
! 4c4a084d9e4e25c5098afa512a140c32  libcpp/uname2c.h
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 862778e1ff58b9c108cfdd1e25d51f30  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
! e345b19739c78030bddaa4fa39f1c071  libdecnumber/Makefile.in
  2a70099a79e40a57a666d5430a5e2529  libdecnumber/aclocal.m4
! 6b4ebb13b9be77039a06abddadd8b2c0  libdecnumber/bid/bid-dpd.h
! d9f4fb263c42c8bd92df7f6dc76ed841  libdecnumber/bid/bid2dpd_dpd2bid.c
! 8d6df7833fca23b773d25acd3d93eda6  libdecnumber/bid/bid2dpd_dpd2bid.h
! fac4732b9aa32a6bb540395e1d477988  libdecnumber/bid/decimal128.c
  47afd72790bc284aceb5a23597cc6146  libdecnumber/bid/decimal128.h
  f8df5b96d86c867ad233c6f0d3e2541f  libdecnumber/bid/decimal128Local.h
  eab7eeba10520ab4a805774d42b8f9dd  libdecnumber/bid/decimal128Symbols.h
! bb94928ac07b113fe0162146b57d6d50  libdecnumber/bid/decimal32.c
  43b6b2bd872ad984104804b1b20fb10c  libdecnumber/bid/decimal32.h
  c5864ab84549ca0f34188ce5b057bbee  libdecnumber/bid/decimal32Symbols.h
! 0c2dccaea9e6878060bfe6074fd2584c  libdecnumber/bid/decimal64.c
  8c612aadae9886f1a72212f93d8651c0  libdecnumber/bid/decimal64.h
  9f903ba71afb574bfa3a0f3cd2f9fbc7  libdecnumber/bid/decimal64Symbols.h
! 1894a8219ffdae1602fd2bb4ef9efc41  libdecnumber/bid/host-ieee128.c
! cf493fac55a19739e5da17b8040d80b8  libdecnumber/bid/host-ieee32.c
! 7bdc0ce4b81a9ea2faedbfe8501101ba  libdecnumber/bid/host-ieee64.c
  76d4afd0dd1c0f5e776cbc40cf2e91b3  libdecnumber/config.in
! bebbf39cc146f4e202f630499f490974  libdecnumber/configure
! e05bd72f50ea318b425e0ecb97f0217e  libdecnumber/configure.ac
! 7a658463fb58bdb8ac6c171adf51d5d9  libdecnumber/dconfig.h
! 34fbbdc4a5bb47719f976a24690c502b  libdecnumber/decBasic.c
! 14d3a5005eeac470e7f8bde3b623407d  libdecnumber/decCommon.c
  2f89d012c7a8a2912e7dce02bd4a08dc  libdecnumber/decCommonSymbols.h
! 6ec2756ff396c1489712a0d7f8863f19  libdecnumber/decContext.c
! cc5b3a4e4091901639f2757e6fbbd391  libdecnumber/decContext.h
  53b67627dab6d36fba960317d84c1487  libdecnumber/decContextSymbols.h
! da0a423a0efb5ba7f1e97d393a05a2c0  libdecnumber/decDPD.h
  8f3ac08d4cc421cc89035e90c890bb09  libdecnumber/decDPDSymbols.h
! 3e0556aafd85037f36f5311332fe1361  libdecnumber/decDouble.c
! 9864d0b3626b347d4000b6cf0e321ee6  libdecnumber/decDouble.h
  22e16083bf3d0b76c4736f7f6382cfb6  libdecnumber/decDoubleSymbols.h
! 973bd7cd0b90d0b280644fe6a1482aef  libdecnumber/decExcept.c
! 00f349edf8e8da229e3a8da90aa1aa47  libdecnumber/decExcept.h
! cd8b97f66df963f03f514a9d717c7abd  libdecnumber/decLibrary.c
! 39ddd1de8884a67f60be72bc0a862aa9  libdecnumber/decNumber.c
! 8169a1ac3bbad617ae9cf54f58cde6c2  libdecnumber/decNumber.h
! b76511626f87d807e4a5683ce8254929  libdecnumber/decNumberLocal.h
  dd46d36cafe0d7dcb669ad059fbed9b6  libdecnumber/decNumberSymbols.h
! 1c85d212467a564194444f20bfe5620e  libdecnumber/decPacked.c
! 2042e1c81f4419417aa1fa019119742f  libdecnumber/decPacked.h
  287ad6ebf8b8179aa843368e9600a3fb  libdecnumber/decPackedSymbols.h
! c68a815f4cef8c60b21862a48b4b539d  libdecnumber/decQuad.c
! de02c9f87d2fa166bb1aedf6a0d30669  libdecnumber/decQuad.h
  3851bae03416db42a85be1c5610f438b  libdecnumber/decQuadSymbols.h
! 684980c0f23f382eb199bb634c332483  libdecnumber/decRound.c
! 7f01ef79a6bdb84e2151e3fe5f0b5b4f  libdecnumber/decRound.h
! f6e50dc9a2c1688ceca25c26a343519a  libdecnumber/decSingle.c
! 7e2360f0811d8c7ecf2dc157f8d91870  libdecnumber/decSingle.h
  8998c4f3e69ea3d218b574a2defb9a98  libdecnumber/decSingleSymbols.h
! fd88b74f0b11cfd11ffa29f77d86ff75  libdecnumber/dpd/decimal128.c
! 3bdf16a5ac2aaecd3b4481bf514d39bb  libdecnumber/dpd/decimal128.h
! 890a4f5ed60908b9d226518bd3492c25  libdecnumber/dpd/decimal128Local.h
  2f6da07ba897ca626a4f6d283feeef93  libdecnumber/dpd/decimal128Symbols.h
! 42158eb1ed15cbc55c4508f9d80b768a  libdecnumber/dpd/decimal32.c
! 7b41a8a062e5564874a7aafa868b2db1  libdecnumber/dpd/decimal32.h
  a97c47969dfc92a7666dfe3c2e1e1448  libdecnumber/dpd/decimal32Symbols.h
! 80717efe9567ec349a6af0d05578a702  libdecnumber/dpd/decimal64.c
! d4974701aea29eb07237c3fe5699033a  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
  055606b47e85369c5d003f6e3a1b657e  libffi/.gitattributes
! 49a2de84abac86aa2477527b187d211c  libffi/ChangeLog
  0e38ead823643c45765e5fe55e7ab16b  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
  cc4552d9286c17a905988bf55f96def7  libffi/HOWTO_MERGE
  679b5c9bdc79a2b93ee574e193e7a7bc  libffi/LICENSE
  631bc8750a749106cf625001c1d6efb0  libffi/LICENSE-BUILDTOOLS
! aa69bb7958e068f86dbd0801c88113dd  libffi/LOCAL_PATCHES
  c55286ffa9013e1bc9fe188894b39e1d  libffi/MERGE
  1685fa58ee6d09dbcf84f25f1ed2be42  libffi/Makefile.am
! 8072bae95b6d87464408fa1f8dbbef3f  libffi/Makefile.in
  0196871242a2420712bad4e2c16d5274  libffi/README.md
  c67252e8ff3150683a184a729911b219  libffi/acinclude.m4
! 54e1bb9dc8859b05ce3d3bb15c85704c  libffi/aclocal.m4
  aec59abbc470dda1bfe630dbb0bbd627  libffi/autogen.sh
! 63abd4903ab36ab93ef36a31e6bd124f  libffi/configure
  0c9310ab4da9ff4d0d8aa37fa8fcb0be  libffi/configure.ac
  54389f155bf929aa9429f225f0dbbaab  libffi/configure.host
  bad91ff01547ce79fe537211f4763ac0  libffi/doc/Makefile.am
! 2361a47d3bc7161a6e5ef361788786f4  libffi/doc/libffi.info
  db28be3951c18d6db6e90f7e612bc67b  libffi/doc/libffi.texi
  5919fb480c65fe4ba9e8d97536e528b2  libffi/doc/version.texi
  ea125d6ff0b3d20372a1556f82ca6a05  libffi/fficonfig.h.in
  9a358eeaa41d3ceb5e732dbf61d3c931  libffi/generate-darwin-source-and-headers.py
  dd34002683e9900a6cd89c440f24a394  libffi/include/Makefile.am
! 545982dc8250d34ea0698384cce2648f  libffi/include/Makefile.in
  60e00bb8059867f47ba6b93e4b4fac00  libffi/include/ffi.h.in
  a07e638debebcc001e7a73eb4a90ddba  libffi/include/ffi_cfi.h
  3bafe1ab47d80c33e901b03a1e9c7732  libffi/include/ffi_common.h
*************** ad82c93bb7f9710ee5d0f0e9af25e51d  libffi
*** 118376,118388 ****
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! dfede02d89dd358b2129ac5e9717fb69  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
  3fac156e21ef8e1746b25464de61e40b  libffi/man/ffi_prep_cif_var.3
  00c15050127751bd8322e3a44f3a5e61  libffi/mdate-sh
! 3c3ee1f7953ffe94a2a8e80ef34f2c83  libffi/merge.sh
  7487ea3d59873bb39dc4886eb3616d5c  libffi/msvcc.sh
  9175551acbdd0ff98611d1daef987b47  libffi/src/aarch64/ffi.c
  b42af3dfe2dfed31394770bd1bb0baa4  libffi/src/aarch64/ffitarget.h
--- 131577,131589 ----
  1f271e0501ca22905ebfa732c49143db  libffi/libffi.xcodeproj/project.pbxproj
  5b9a262eb2adfad2e0e5a67c9732b9c5  libffi/libtool-version
  ade48c43a4229988450151e8d3fd4ea2  libffi/man/Makefile.am
! c589e94738aa0a50780157c2a43ea3ac  libffi/man/Makefile.in
  375a858985ec2096671f484b1fe9b14b  libffi/man/ffi.3
  dd7b61f56e75a1d052dd10dc02ac4940  libffi/man/ffi_call.3
  634ea3ff80c805d513f31c111c5e6d36  libffi/man/ffi_prep_cif.3
  3fac156e21ef8e1746b25464de61e40b  libffi/man/ffi_prep_cif_var.3
  00c15050127751bd8322e3a44f3a5e61  libffi/mdate-sh
! dce3aff6e79185f3a81f2eda4bd02ae1  libffi/merge.sh
  7487ea3d59873bb39dc4886eb3616d5c  libffi/msvcc.sh
  9175551acbdd0ff98611d1daef987b47  libffi/src/aarch64/ffi.c
  b42af3dfe2dfed31394770bd1bb0baa4  libffi/src/aarch64/ffitarget.h
*************** e6a372c1ab34c8f1f71396d597076973  libffi
*** 118524,118530 ****
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 7c3a4cb5a7d31e4021685ac6de71be1b  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
  aa258e4878fe20cf3490deabacccb583  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
--- 131725,131731 ----
  30e1959beeb8d6392ff804e925efcc11  libffi/src/xtensa/sysv.S
  1ded054093de910d9786c62bc4fe8cc6  libffi/stamp-h.in
  8e8befc990bd91505202466bad0815b2  libffi/testsuite/Makefile.am
! 411fd444178f93d4c680a7970cd12ed4  libffi/testsuite/Makefile.in
  dce80ba7e038ca18591aabc6d3d2582c  libffi/testsuite/config/default.exp
  aa258e4878fe20cf3490deabacccb583  libffi/testsuite/lib/libffi.exp
  88f888c66cee8d916e1ac91000ecc87a  libffi/testsuite/lib/target-libpath.exp
*************** a3eb5dee2788fe0a6c42502ba658eddd  libffi
*** 118738,118863 ****
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! 5bb0f726ae7ef162284d7dc141c17e9e  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
--- 131939,132090 ----
  0f3c94e520870e194cf525de7ec404dc  libffi/testsuite/libffi.go/ffitest.h
  6cfb66c1c00023abb2c2276d85f16e77  libffi/testsuite/libffi.go/go.exp
  189dc193fd0e627a2d55b2e84871edc5  libffi/testsuite/libffi.go/static-chain.h
! e527d5f983ffbc8cda6f01760a006fb3  libga68/ChangeLog
! e53a0cec9bb8b49f90bb24ae600d40c2  libga68/Makefile.am
! efd838737ec792d60d8a967829c76fca  libga68/Makefile.in
! e582170826a5049ebe5f76ccb66fe5f2  libga68/README
! b448cc4384a1f4e710c59734055b7e8a  libga68/acinclude.m4
! 32da020621b62d1b431988a5525d7995  libga68/aclocal.m4
! cf6be962dfa097e1e50ffbb773452c38  libga68/config.h.in
! 9ce9f85ba4afeed174094f6c87680198  libga68/configure
! b9e84a6b8a8170075072542d2e2e0db1  libga68/configure.ac
! 4195f62f6a0f023662ec3388dcd397dc  libga68/floor.c
! 7caddd973773320b8d4520f3e575b2b1  libga68/ga68-alloc.c
! ab4bfff29b367495b338f951fb77ffd9  libga68/ga68-error.c
! 67cd7aeea0aa28f2dfa7d11f4c5380a3  libga68/ga68-math.c
! 432cfa7a4d9e1f17f6161ac30835ee60  libga68/ga68-posix.c
! 12f59efc2c02c8e22bec45f9a718e690  libga68/ga68-standenv.c
! 7aca1e001fafa5f4c00e9f7b50aca002  libga68/ga68-unistr.c
! e0b2ba9a0bf41fccbcbd614e5674ef00  libga68/ga68.h
! 1e4f8c0bbb032cb590ceb9097061e959  libga68/ga68.map
! 93e37daf5a03d1329323ba4894247de0  libga68/libga68.c
! 5a99bd84e0794e311b25ab281d6c294a  libga68/libga68.spec.in
! 6594537b1b235e3988700b7509cf7a42  libga68/libtool-version
! fc49680d0c6e77e437523ea496a6b8c4  libga68/m4/autoconf.m4
! 095aff369c31681c96b933fbedd8e05f  libga68/posix.a68
! b0d017b83148520411f1c1ebdbf28b58  libga68/sppp.awk
! 4ad0dcaa2eb0b81efb58d47400b0933d  libga68/standard.a68.in
! 7c3e3bf68e94edf79dfb5f29e60dfa1b  libgcc/ChangeLog
! 9ce0b8c50fec68eb0555ae800e4e457e  libgcc/Makefile.in
! 71d0f27da0d8bbe096136dc304bdb11f  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
! 453dd2d1f5f7e9b0683ae1c960ef7eac  libgcc/config/aarch64/__aarch64_have_sme.c
! aee2000eefb98b188a6cd051fd4e1e72  libgcc/config/aarch64/__arm_get_current_vg.S
! 7d502e88b830e778ab635542c94987fc  libgcc/config/aarch64/__arm_sme_state.S
! 3d191b7f750c01d46058e6ae0cf0319f  libgcc/config/aarch64/__arm_tpidr2_restore.S
! b558b0fe1c1f3450c92a793927788906  libgcc/config/aarch64/__arm_tpidr2_save.S
! d1dea04ccca0a3e0d8c326ec80ed9e0b  libgcc/config/aarch64/__arm_za_disable.S
! 6c2c3710b9c76f04f3343af5aa6c3492  libgcc/config/aarch64/aarch64-asm.h
! 9f312c9f3db89426a0989d3893f9eff5  libgcc/config/aarch64/aarch64-unwind-def.h
! 4f5b35f3742a00078d24b0a176ade3f1  libgcc/config/aarch64/aarch64-unwind.h
! bd96de89003e020f3d23b68bd4e4eb93  libgcc/config/aarch64/cpuinfo.c
! 6cc87f33b499891be619a53a7f9be46b  libgcc/config/aarch64/crtfastmath.c
! 1d706d7d57d1bc606988c8f2a24906a7  libgcc/config/aarch64/crti.S
! b7e4f2d06c74d19d48bfafcd4a25248a  libgcc/config/aarch64/crtn.S
! fb3c17149662ef7ba5f888d29fb200ca  libgcc/config/aarch64/freebsd-unwind.h
! 1bad18e7009a8e3ed758377f231290b0  libgcc/config/aarch64/gnu-unwind.h
  a077f95c64de11e67e5d9d909ec45b8c  libgcc/config/aarch64/heap-trampoline.c
! f898f05b96795036d5f23a860858ce6b  libgcc/config/aarch64/libgcc-sme.ver
! 7ea2b001f5847f55482820526461d8a5  libgcc/config/aarch64/libgcc-softfp.ver
! e3618397e6a59f2287abe6415125231a  libgcc/config/aarch64/linux-unwind.h
! 627917593b0d6f44367c6b0cc40bdc18  libgcc/config/aarch64/lse-init.c
! 0880ccf04e75a7e4b1b8b68e0105c5a6  libgcc/config/aarch64/lse.S
! 9e1759944135a6e6112c178058e85af8  libgcc/config/aarch64/sfp-exceptions.c
! 95145f9b96d4904049fc9632c844d4f6  libgcc/config/aarch64/sfp-machine.h
! 3429871c178d431add24f31fe0f0c40a  libgcc/config/aarch64/sync-cache.c
! e285d996cc17616afc2142f182dcf46d  libgcc/config/aarch64/t-aarch64
  5711e1b4b7c7ceabdfb54e3632fcd89c  libgcc/config/aarch64/t-heap-trampoline
! f6faf82ffcac18f8015a25c68040cc15  libgcc/config/aarch64/t-lse
  c6e6cbb6c43ce130d0d7f7f64a205fd8  libgcc/config/aarch64/t-mingw
  a1c468d840900375aadbcb9a871a8cb5  libgcc/config/aarch64/t-softfp
! 6b7b0592a1a1796e5b445ce46c3f04c5  libgcc/config/aarch64/value-unwind.h
! f409a970e1f6fdc5e00cbeb6c215b389  libgcc/config/alpha/crtfastmath.c
! d73fbf161a3355c8e96dfe9d1d395899  libgcc/config/alpha/libgcc-alpha-ldbl.ver
! 835ad30cafe153db085ad6082f67c501  libgcc/config/alpha/linux-unwind.h
! 276f50efcab6decbbe3bd7e9c6477635  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
! 072eed9d14afc03c0ae64dc96769d3ed  libgcc/config/alpha/vms-dwarf2.S
! 2ef7ca2778a84515d35d96e8d584eb3c  libgcc/config/alpha/vms-dwarf2eh.S
! 095b946b888db21d13b5594810f782b2  libgcc/config/alpha/vms-gcc_shell_handler.c
! c8edd80876388bf084f483f261c2f3aa  libgcc/config/alpha/vms-unwind.h
! e0c34d2b9cb54342a0816b5fadac8f07  libgcc/config/arc/asm.h
! a3256f684b1b97b5cd2d9217d5cae23f  libgcc/config/arc/crti.S
! 92ccc44cd638cc1bed01e01a560b567e  libgcc/config/arc/crtn.S
! 9d7d537e057f7f9b999c223ee143398d  libgcc/config/arc/crttls.S
! 0d94c569e5de3d38a8f5348ce14198f8  libgcc/config/arc/divtab-arc700.c
! 54c0387f10ae86afd9cd86aa5fe9da46  libgcc/config/arc/dp-hack.h
! 2ad473200f085ceb3e56f514fafce79a  libgcc/config/arc/fp-hack.h
! d1f63eef96f28fdfb962ccb4b0cd6cae  libgcc/config/arc/ieee-754/adddf3.S
! 728b46baed390c9dff78aebaf5f06714  libgcc/config/arc/ieee-754/addsf3.S
! e1b4e0e408b797f2b02c264796ede090  libgcc/config/arc/ieee-754/arc-ieee-754.h
! f2b1d59b657fd151444894c3ad78248b  libgcc/config/arc/ieee-754/arc600-dsp/divdf3.S
! 914882716a147320a812a31333511123  libgcc/config/arc/ieee-754/arc600-dsp/divsf3.S
! 44045b155188f643364dbe8e21fe1290  libgcc/config/arc/ieee-754/arc600-dsp/muldf3.S
! 2556f92bea8622c78e5c2ce9215bc3f1  libgcc/config/arc/ieee-754/arc600-dsp/mulsf3.S
! 734ba9ade19612527706ae87418d61a0  libgcc/config/arc/ieee-754/arc600-mul64/divdf3.S
! 53287d8b8c3aa3ae96e4804286cf2e2c  libgcc/config/arc/ieee-754/arc600-mul64/divsf3.S
! a0be71b8185b54af931287e1283e0763  libgcc/config/arc/ieee-754/arc600-mul64/muldf3.S
! 1bf1029dc1c5a50da7d4363203d3db20  libgcc/config/arc/ieee-754/arc600-mul64/mulsf3.S
! 910399c868cd48e1068656c4bc79f774  libgcc/config/arc/ieee-754/arc600/divsf3.S
! 7f76ae59796386020d30ff1d6cc50605  libgcc/config/arc/ieee-754/arc600/mulsf3.S
! 8054398de8a5d7ccd66e30e62a1c4b86  libgcc/config/arc/ieee-754/divdf3.S
! d6062428ba70575c316c384dee6c38c7  libgcc/config/arc/ieee-754/divsf3-stdmul.S
! e142d0c003e762ffc288b1673b73e441  libgcc/config/arc/ieee-754/divsf3.S
! f58c0d0c996908ad53fc2e36f97c4f97  libgcc/config/arc/ieee-754/divtab-arc-df.c
! 91592251656c9513b228ac417123a698  libgcc/config/arc/ieee-754/divtab-arc-sf.c
! 4a4ef7d17fe6a06a062658c877edbadb  libgcc/config/arc/ieee-754/eqdf2.S
! e1df1bfc5d4b48e99423029e204d346e  libgcc/config/arc/ieee-754/eqsf2.S
! 80c7137ba0c393537c36cc4222ddec16  libgcc/config/arc/ieee-754/extendsfdf2.S
! 2ff63a32bd0b033820cc0acb2023a307  libgcc/config/arc/ieee-754/fixdfsi.S
! 38e77719859ad371d3fb98dc3ea7d49a  libgcc/config/arc/ieee-754/fixsfsi.S
! 434a51bb9a4c85b61e764e2246fcd83b  libgcc/config/arc/ieee-754/fixunsdfsi.S
! 9c70465a73d41dca5df1ea1cde553bd8  libgcc/config/arc/ieee-754/floatsidf.S
! f5f7febc212fb34e8302cf1faf2a4de9  libgcc/config/arc/ieee-754/floatsisf.S
! f2961eeefdc8b3cdf520128b5d3397b6  libgcc/config/arc/ieee-754/floatunsidf.S
! f7cf152ab7cda47809a322cfb1690347  libgcc/config/arc/ieee-754/gedf2.S
! 57eec9dacca89d699b3ed6915909682a  libgcc/config/arc/ieee-754/gesf2.S
! 4f0e2fdd8e1da4e0992fae116eb2f8a0  libgcc/config/arc/ieee-754/gtdf2.S
! 8588b5fa94e4edef61b1f2785a022594  libgcc/config/arc/ieee-754/gtsf2.S
! e13f668a140feb3a2c9e403e1fc4cb9c  libgcc/config/arc/ieee-754/muldf3.S
! d69d79e343a0968607dd583b4ab90218  libgcc/config/arc/ieee-754/mulsf3.S
! 78b1c89ceabd4fa45a6e00d3324240c8  libgcc/config/arc/ieee-754/orddf2.S
! 7fdabefa3f4df7d472d7d6c88843343e  libgcc/config/arc/ieee-754/ordsf2.S
! 3d3da752ab346a6232b4b9c70d5c4118  libgcc/config/arc/ieee-754/truncdfsf2.S
! 5cd807f5209099c0dacd6c1b2ce541bb  libgcc/config/arc/ieee-754/uneqdf2.S
! 46665882f9861c4a3dc1538f9a6fbebb  libgcc/config/arc/ieee-754/uneqsf2.S
! 7530f4f5ca4e6d531d55f98a9814113d  libgcc/config/arc/initfini.c
! caf0318036ee11a5b873aa2ef8f4a500  libgcc/config/arc/lib1funcs.S
! efe488463145cde1c5a0538c3a52e6cd  libgcc/config/arc/lib2funcs.c
! 8db646a353de893c71bce7c52ef1f825  libgcc/config/arc/libgcc-excl.ver
! bbab80869749e481f68acbb8e76e8255  libgcc/config/arc/linux-unwind-reg.def
! 5c6fa01503b276ac78455942b5ebd5c2  libgcc/config/arc/linux-unwind.h
! 07c97353a360383b3718ad8ff0a40e01  libgcc/config/arc/t-arc
! 4798f2eeb0eba09a925a085908c4abf3  libgcc/config/arc/t-arc-uClibc
! ea56eaa3f29f15e2bcd12d1a5a8deaf8  libgcc/config/arm/bpabi-lib.h
! 1ff4377aa2729ffa1b63f8dafe0c7992  libgcc/config/arm/bpabi-v6m.S
! a085c7fd3fd0d1fd5281bd7ef767d378  libgcc/config/arm/bpabi.S
! 1a4ae0a3274178e55eea4519879bacb0  libgcc/config/arm/bpabi.c
! 34e97a4f55c61dd8a24f9df815f9f8de  libgcc/config/arm/cmse.c
! feef9044b037e270ce0d6b4fbcc2d97c  libgcc/config/arm/cmse_nonsecure_call.S
! 3e4f65510d07bdadbd7b67250fb8e3b5  libgcc/config/arm/crtfastmath.c
! e5799142a016db71bbb9922e831ebc87  libgcc/config/arm/crti.S
! 2ab60375f0c482ce2319db7a2e19e044  libgcc/config/arm/crtn.S
! 7736aa76565ac0cad5c91ae91e6d8840  libgcc/config/arm/fp16.c
! 494419fb4bb582e2253edb45775ae008  libgcc/config/arm/freebsd-atomic.c
! 0d08a844e171001e58e9c22f1646b1a3  libgcc/config/arm/ieee754-df.S
! bbd1c56e7029818aaff9ae84f03d7041  libgcc/config/arm/ieee754-sf.S
! 177413e16f12364bdcebfbb95023e6c5  libgcc/config/arm/lib1funcs.S
! d2fa85f1bc22d14c552031462b3944ce  libgcc/config/arm/libgcc-bpabi.ver
! 06353acf2e31b13573c0e3e7e33e4b1e  libgcc/config/arm/libunwind.S
! 34fe728d813280295b98732b81654866  libgcc/config/arm/linux-atomic-64bit.c
! a6083ea57a5ef546c5862c6c68a34e63  libgcc/config/arm/linux-atomic.c
! c8409715d042ea64ad14e845dc82f2c8  libgcc/config/arm/pr-support.c
! e327487e365e474296315adf39d7853c  libgcc/config/arm/sfp-exceptions.c
! 37afe13de73d3782667e9c1853823681  libgcc/config/arm/sfp-machine.h
! 66c18e858fb192aa9d8733ed47af3649  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
*************** a86e3a4a0c8c3ead836f792603deed27  libgcc
*** 118869,118916 ****
  230e26f668e653d453f543f99cdbc374  libgcc/config/arm/t-linux-eabi
  2d31b2c95f5ce86c37c530027f6758ce  libgcc/config/arm/t-netbsd
  eb10bf2005ab426384c1efc127175521  libgcc/config/arm/t-netbsd-eabi
! dd1ccf1641e646fd2c36d154c45a78f3  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
  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
! 7ea0bb5e33f184a9e54a72e3c121a20d  libgcc/config/avr/libf7/ChangeLog
! dd74908d3b47db38a7aaa2e9f130f20f  libgcc/config/avr/libf7/asm-defs.h
! a5efc328f8686b92830ca73ea0b4d047  libgcc/config/avr/libf7/f7-renames.h
! 9bc93ce2b7213ad3cabff898a2d31774  libgcc/config/avr/libf7/f7-wraps.h
  b9901623ec29c1c4dd98d6fae040518c  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
! 8c31d45420a77d0121484bfbb4e9304c  libgcc/config/avr/libf7/libf7-common.mk
! 29f415bcdf1f8cf82363009ed90158a0  libgcc/config/avr/libf7/libf7-const.def
! 4be27333f32f04990c0af746c07ffd5d  libgcc/config/avr/libf7/libf7-constdef.h
! ec9773d81bd91f723677eed83c9e9e33  libgcc/config/avr/libf7/libf7.c
! 96bca6a7335f821140d30c203401c36e  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
--- 132096,132143 ----
  230e26f668e653d453f543f99cdbc374  libgcc/config/arm/t-linux-eabi
  2d31b2c95f5ce86c37c530027f6758ce  libgcc/config/arm/t-netbsd
  eb10bf2005ab426384c1efc127175521  libgcc/config/arm/t-netbsd-eabi
! cd73aa547e1b751f99dad44ce4d0345c  libgcc/config/arm/t-softfp
  85c2b00db81a0aa187f2e2dfe5ace0b1  libgcc/config/arm/t-strongarm-elf
  fc87e45e073829d21e9427a38f435e3b  libgcc/config/arm/t-symbian
  943ce28c6268a08fe0811ea29b87d108  libgcc/config/arm/t-sync
  49da02954caef0527c55b87af2bd1c4b  libgcc/config/arm/t-vxworks7
  0b61332cccc4af9b144b6db99e213dcb  libgcc/config/arm/t-wince-pe
! dad7fcdc3017bd6d379a2a8cffddfbb5  libgcc/config/arm/unaligned-funcs.c
! a2cbfeed5ac41bd10f73aa701e9ac26d  libgcc/config/arm/unwind-arm-vxworks.c
! 2afcadf0f0c3f05077a78caa5a26af99  libgcc/config/arm/unwind-arm.c
! d1bc698652ed847a9a315e51f8dfecc1  libgcc/config/arm/unwind-arm.h
! 16da8ddeeb0393a8a09e4b1d871d728a  libgcc/config/avr/avr-lib.h
! 6b49ee82e3034a8630645152233c515a  libgcc/config/avr/lib1funcs-fixed.S
! 8d9d8e4f975f3fa3907a9a2ff9bc4f21  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
! c7a08febc167bf9a84c28593ca627617  libgcc/config/avr/lib2funcs.c
! c01476abe456556d2a2e48eb9b52431d  libgcc/config/avr/libf7/ChangeLog
! 5189f35739cd9793235e4b49d740e6ed  libgcc/config/avr/libf7/asm-defs.h
! bd9ea3adc1ea81e3d0d05dc1b9999851  libgcc/config/avr/libf7/f7-renames.h
! 92bbb0397c760b4e93af191f49964ad4  libgcc/config/avr/libf7/f7-wraps.h
  b9901623ec29c1c4dd98d6fae040518c  libgcc/config/avr/libf7/f7renames.sh
! d250706c46cb1217dd828894cbba2d45  libgcc/config/avr/libf7/f7wraps.sh
! 21c3bae3e2a940175ece1853b7992808  libgcc/config/avr/libf7/libf7-array.def
  5d9def53110ec07e8f29e66d593d758f  libgcc/config/avr/libf7/libf7-asm-object.mk
! 4e2259b9e784a58751c817b192038828  libgcc/config/avr/libf7/libf7-asm.sx
  6b4886ae302fca1fa733831066c5c830  libgcc/config/avr/libf7/libf7-c-object.mk
! 021ea561bcc2bc07286c89e312af685b  libgcc/config/avr/libf7/libf7-common.mk
! 92d858f8a00be9163a745497796e81c2  libgcc/config/avr/libf7/libf7-const.def
! b73226e862ca01a6b2bdefee583d73ab  libgcc/config/avr/libf7/libf7-constdef.h
! e0d52767ffbd916d11a487e542c9da0a  libgcc/config/avr/libf7/libf7.c
! 9ed79405aa0e7f22874c229eda84b03e  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
! a2c28c9fd8e63f29ab5a369ef41e8b3b  libgcc/config/bfin/crti.S
! c807465774083c5a262478112bb960c3  libgcc/config/bfin/crtlibid.S
! bb4adfa09458aa770201b95e13b50a0d  libgcc/config/bfin/crtn.S
! 0e441f8c2d7d22752b6cf266592bea65  libgcc/config/bfin/lib1funcs.S
! 6aec80fd4779dae74aeab59f6bff9cda  libgcc/config/bfin/libgcc-glibc.ver
! c6570b2860bcff672f12e5704075b0ef  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
*** 118918,119004 ****
  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
--- 132145,132231 ----
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crti.S
  d41d8cd98f00b204e9800998ecf8427e  libgcc/config/bpf/crtn.S
  8d4717fef859f166f4ef387b932a72f1  libgcc/config/bpf/t-bpf
! 99bb566cebed5b032eab91712512e5a0  libgcc/config/c6x/c6x-abi.h
! 86d9b504fab1d69ae97a5ab18e6f9be8  libgcc/config/c6x/crti.S
! 2832b334142d0b99195a1c60e0fb987f  libgcc/config/c6x/crtn.S
! d168671c91b62244a8b98888dd09f408  libgcc/config/c6x/eqd.c
! e58003ed769b1e1846fe22d7ce9bfff6  libgcc/config/c6x/eqf.c
! 266aaefe7c15f8bf805a384c480c919b  libgcc/config/c6x/ged.c
! ea2e4cef0b90de6fb41a2a8ecaafd9c0  libgcc/config/c6x/gef.c
! 37a226a2093e0841fa1f29d1cad1c65f  libgcc/config/c6x/gtd.c
! 26bb067dd2d89568f4f9f8d1f86675fa  libgcc/config/c6x/gtf.c
! 91bf7bffc29f538eac5ef53c553520d6  libgcc/config/c6x/led.c
! 1b6f3416592d6b350a11fb5f1d981640  libgcc/config/c6x/lef.c
! 649ebbb792cc86c9f9ace9994b3553d6  libgcc/config/c6x/lib1funcs.S
! ab89910a8f59f40df7eb8460ce172be3  libgcc/config/c6x/libgcc-eabi.ver
  9068a836854af657b1b590da0c0659f1  libgcc/config/c6x/libunwind.S
! c3edf374e1c67c5d3b194c10a9ad8a88  libgcc/config/c6x/ltd.c
! d534616852836e7537f6a58c49bb50f1  libgcc/config/c6x/ltf.c
! c5f55d66bd8fabf30c1e752f7ea164a2  libgcc/config/c6x/pr-support.c
! 513d430b40ff681f2543f04953690ce4  libgcc/config/c6x/sfp-machine.h
  e001c742f33c68e3a33a709c345e0c3f  libgcc/config/c6x/t-elf
  7be94443a1640eded81b166ae8fe575f  libgcc/config/c6x/t-uclinux
! 6e0bf750ddb81a26d254f4c026e3c6be  libgcc/config/c6x/unwind-c6x.c
! 9417c365f7f80f61c53392154cb81cfb  libgcc/config/c6x/unwind-c6x.h
! 5f49c7a0b1a30aadc1b371d7cd88afcc  libgcc/config/cris/arit.c
! 10cf85c727fe4e7e24c33676f66b9077  libgcc/config/cris/mulsi3.S
! 8400c1bcfdafcbe3546b2eb75595c831  libgcc/config/cris/sfp-machine.h
  e42743c62236880a4788e60d1acb3424  libgcc/config/cris/t-cris
  b9dc89a49f32db0757703a40d18557af  libgcc/config/cris/t-elfmulti
! e0f0acf4bc4aea6b248cf7093730b2de  libgcc/config/cris/umulsidi3.S
! 8a7993740a4015d04ef1e7e946643b62  libgcc/config/csky/crti.S
! 7ddc44caff8ed73f59241f60af1f7104  libgcc/config/csky/crtn.S
! f28c10602b985ddf1feae034b840846c  libgcc/config/csky/lib1funcs.S
! 7336f2d8c4ce08258451f0f9bbc9f362  libgcc/config/csky/linux-atomic.c
! 644e48fe4ee4338f2b5893dfc4fc4a90  libgcc/config/csky/linux-unwind.h
! 44ba2bbf37050987a640f2ca16fee1a8  libgcc/config/csky/t-csky
! 72e9d379041debed931758a1e96093a5  libgcc/config/csky/t-linux-csky
! 3bbc704c337301420c894718c059d365  libgcc/config/darwin-64.c
! caabe8795301c9116e40a9fd2283b262  libgcc/config/darwin-crt-tm.c
! b35240d68e8937e49c169dda2ce57c81  libgcc/config/darwin-crt3.c
  3d9ace1569f13aadc86ee3608541f634  libgcc/config/darwin-unwind.ver
  416f37158b8f19edbb3c495781577dd5  libgcc/config/darwin10-unwind-find-enc-func.c
! e9ee5c0949a1ed02b0eaac831c377c7a  libgcc/config/epiphany/crti.S
! 172325ddd67bec7d3001782fce22f454  libgcc/config/epiphany/crtint.S
! 46e241643b34aea0bda93d43dbc64279  libgcc/config/epiphany/crtm1reg-r43.S
! 17746400b0ee2371f9b581214a4c0bde  libgcc/config/epiphany/crtm1reg-r63.S
! a879aa86479e1fa53c6d10547211a6cf  libgcc/config/epiphany/crtn.S
! ab1b656a5ec3e6eb69ae61e0b1d4aee6  libgcc/config/epiphany/crtrunc.S
! a0528b55859fd3806fde3c043291b09a  libgcc/config/epiphany/divsi3-float.S
! 4a0aa31872afc61b9ac332428aff31c6  libgcc/config/epiphany/divsi3.S
! 1182f75e98bd014de655b819639c716e  libgcc/config/epiphany/divsi3.c
! 1aa742a2c76191b01e08a952ba3abc0a  libgcc/config/epiphany/epiphany-asm.h
! e46675f846b7ef970fe41b1cec88a47d  libgcc/config/epiphany/ieee-754/eqsf2.S
! 7c19def2b59bb57fa6f9c751e3241213  libgcc/config/epiphany/ieee-754/fast_div.S
! 614bb6bdfcb359ecff3ac28ce86713ae  libgcc/config/epiphany/ieee-754/gtesf2.S
! 681394611789518d6029d1954558749a  libgcc/config/epiphany/ieee-754/ordsf2.S
! 740a986ece410b1fc709d5c361375323  libgcc/config/epiphany/ieee-754/uneqsf2.S
! 026053a5291ad18c266a0b1d39831020  libgcc/config/epiphany/modsi3-float.S
! 3c35a849e968ed8f4a62d0b87d9da772  libgcc/config/epiphany/modsi3.S
! 110defe69c1aabc3b560c2b3a43aedcb  libgcc/config/epiphany/modsi3.c
! b629f5c4ece6b915567ca577af403188  libgcc/config/epiphany/mulsi3.c
  d76fc3e367e9f20ca1d6e4b8ef979bd9  libgcc/config/epiphany/t-custom-eqsf
! 1d48c135e1c073c7fbbe9a05aad96522  libgcc/config/epiphany/t-epiphany
! d4bdeda07b43a52c75dd587962b85bf1  libgcc/config/epiphany/udivsi3-float.S
! 51bb9be81f431428627d89b618bf1b7b  libgcc/config/epiphany/udivsi3-float.c
! 210f8eb2cf5df2bde586bd149b5ec758  libgcc/config/epiphany/udivsi3.S
! 9d669340fc3e372ba728537df55f7bf1  libgcc/config/epiphany/udivsi3.c
! bb60522c309cf7c06dc148c898f3642a  libgcc/config/epiphany/umodsi3-float.S
! 879632b4ae94f584d5a6487d8bea3633  libgcc/config/epiphany/umodsi3.S
! cb4da81e7d4dc55e2c2ebfc2a0da502c  libgcc/config/epiphany/umodsi3.c
! b7b156eccca4915767454bdfb3513016  libgcc/config/fr30/crti.S
! 91221d95023c169c42ce0a4865750820  libgcc/config/fr30/crtn.S
! 744c077b0466b2a9bcac6c9890f9f49f  libgcc/config/fr30/lib1funcs.S
  ee1781f6076fe4696c4710d29bcaa9f2  libgcc/config/fr30/t-fr30
! 729c122b68c1473c530a3a83407df7bc  libgcc/config/frv/cmovd.c
! f3609b27063355e0a2bb3fc608f2f10c  libgcc/config/frv/cmovh.c
! c845e531057a8ea02a60f597464d58ab  libgcc/config/frv/cmovw.c
! d90c68567d3bf6907dae946d46c62e81  libgcc/config/frv/elf-lib.h
! a95fbb90b4434dbd0ee285916e0f1be7  libgcc/config/frv/frv-abi.h
! 5eec6e47489fbf218ed37068f8acafec  libgcc/config/frv/frvbegin.c
! 2879a892410abac9ba060c67cbf8e5cb  libgcc/config/frv/frvend.c
! 50204b5f8306b96aa9a77324a854bc8d  libgcc/config/frv/lib1funcs.S
! c5021555e6b097c52ba164ed93d19c6f  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
*** 119008,119063 ****
  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
! 7e51a1ff89544ba0d4dc166c5e38f360  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
  7d5aec02242115dca9fe0000c4ca32f0  libgcc/config/i386/64/eqtf2.c
  b2bcf8b944f937cb4f3799c02670dcee  libgcc/config/i386/64/getf2.c
  a92aa384cf96b81c0dbb642826200dd7  libgcc/config/i386/64/letf2.c
--- 132235,132292 ----
  8655cce7a18893493cc17391c6ce08d5  libgcc/config/frv/ulltof.c
  756aa4a0c6f33a0203e0ea6594c19e38  libgcc/config/frv/umodi.c
  63a86c0eba76d6ea5b13351162b69e89  libgcc/config/ft32/crti-hw.S
! 97a5194efecc4354aa4208043959dc74  libgcc/config/ft32/crti.S
! fcf189fb088e7fa2fcf914bb852e9832  libgcc/config/ft32/crtn.S
  4d440904c0919d8bade72af495ee932b  libgcc/config/ft32/epilog.S
! b1dda85d604257756c41ea3d07c44f0b  libgcc/config/ft32/lib1funcs.S
  fd43d6ac7bf2546f0be1ff27b92cf494  libgcc/config/ft32/prolog.S
  7651ba55a7767a127d4d8d9e1798196d  libgcc/config/ft32/sfp-machine.h
  de53de7ae179ee6c1472a52a63fffec9  libgcc/config/ft32/t-ft32
! f48f8eb8e50335e4c5ec14a2647319b7  libgcc/config/gcn/amdgcn_veclib.h
! 6ec16e313dd44c12e8b4b187d3c31309  libgcc/config/gcn/atomic.c
! a5a30a7872da529e0909d74209a4b7d5  libgcc/config/gcn/crt0.c
! 25959f5cd77a43d382bd3e0835317ae3  libgcc/config/gcn/gthr-gcn.h
! fe8eeeff44073e2cbdcd77395f8f9c10  libgcc/config/gcn/lib2-bswapti2.c
! 76e8de4033b854e0202798e277de4fd0  libgcc/config/gcn/lib2-divmod-di.c
! 8e94f93135d8c44f3c7f0a4d5fb5a098  libgcc/config/gcn/lib2-divmod.c
! bd2e7e9011b2af32506b2a9c9d2d1e3a  libgcc/config/gcn/lib2-gcn.h
! 8a144e7d2020ccd526b9d6d7d8ce963f  libgcc/config/gcn/lib2-vec_divmod-di.c
! ac562a4218d98cea8188329467d6cf71  libgcc/config/gcn/lib2-vec_divmod-hi.c
! 961924c43caca35dea44eebb4d3efaa7  libgcc/config/gcn/lib2-vec_divmod-qi.c
! ad6b4847eb6751958cbeaf0d3b8f34ef  libgcc/config/gcn/lib2-vec_divmod.c
  c9b91505a24abd3bc6b11e0f094edee0  libgcc/config/gcn/sfp-machine.h
  338498ae766d555b62a65dd151d16ec5  libgcc/config/gcn/t-amdgcn
! d8c53120b57f3156fc6f27ac69154fbc  libgcc/config/gcn/unwind-gcn.c
! e4eda743a3d376f49b6240d379b15a53  libgcc/config/gthr-lynx.h
! 98eb1b052b9e443b5726e7f605a51a7a  libgcc/config/gthr-rtems.h
! f2e78cb583ff259549f67a4950117158  libgcc/config/gthr-vxworks-cond.c
! dad82acef07585a3646c246b87b89b8a  libgcc/config/gthr-vxworks-thread.c
! 274fa29bb026758e7f51ec65d61251bd  libgcc/config/gthr-vxworks-tls.c
! d48a155faff7078721f3f87d684e4711  libgcc/config/gthr-vxworks.c
! 255a7764cfdab182e0a3fe1469fe1ddc  libgcc/config/gthr-vxworks.h
! 07b62d04a6858b0c90abcae4bf562075  libgcc/config/h8300/clzhi2.c
! 31612442c31cb6f3777b6240982d4e35  libgcc/config/h8300/crti.S
! bedf31b95c89338a0cf6fde179e05faf  libgcc/config/h8300/crtn.S
! 06c8065b8888cc0aebf1fc5f08bf564b  libgcc/config/h8300/ctzhi2.c
! 8860a9ee9bc5e2ccd108ba9f5506ad0d  libgcc/config/h8300/ffshi2.c
! f15a3f47cfe8442b56a5fc944974f5bf  libgcc/config/h8300/fixunssfsi.c
  378e602ed89f497e602776d99b46d7ad  libgcc/config/h8300/h8300-lib.h
! 470e6730ea9ea5d9487caef087349455  libgcc/config/h8300/lib1funcs.S
! 9a575fd8af3ac6f28455c97150e08a11  libgcc/config/h8300/parityhi2.c
! 203e2181ba54fef5155f6ba0e94a1337  libgcc/config/h8300/popcounthi2.c
! 7eb54add966cd91ed4f3c747d0a0bd20  libgcc/config/h8300/sfp-machine.h
  40b9f3d0eab4e0a1133e3eb612b47800  libgcc/config/h8300/t-h8300
  5e306047059c21ece876039122734094  libgcc/config/h8300/t-linux
! 0e1a80d2496c0cb81ddf5cbc32c64ba6  libgcc/config/hardfp.c
! 2f0f1a7c65943d430107c4c883e3270d  libgcc/config/i386/32/dfp-machine.h
  475eef8a468bce21734a4397bd19ae6d  libgcc/config/i386/32/sfp-machine.h
  33fdee54eed1c202a39234d129f2a7ae  libgcc/config/i386/32/t-iamcu
  8271562f1de2b3fa5b976454b83bfdc0  libgcc/config/i386/32/t-softfp
! cf8f36b4cb886d0d708929016ce6b424  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
+ 1ee2be9d28519eb6c2bab914b898ebac  libgcc/config/i386/64/dfp-machine.h
  7d5aec02242115dca9fe0000c4ca32f0  libgcc/config/i386/64/eqtf2.c
  b2bcf8b944f937cb4f3799c02670dcee  libgcc/config/i386/64/getf2.c
  a92aa384cf96b81c0dbb642826200dd7  libgcc/config/i386/64/letf2.c
*************** d4cd30e890b5d772946c79359704fc0b  libgcc
*** 119072,119116 ****
  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
--- 132301,132346 ----
  0987e17186e8a33dbf7c39d7934d4861  libgcc/config/i386/avx_resms64x.S
  ef88ad808d3f1101d7e96fae5706660f  libgcc/config/i386/avx_savms64.S
  12b992c114b195cf886a7a218b0d1e54  libgcc/config/i386/avx_savms64f.S
! 4db3114a2eaa9875292956e057cf8307  libgcc/config/i386/cpuinfo.c
! 02e4aaefe96d92d0b5577eb4f222ee72  libgcc/config/i386/crtfastmath.c
! 9433a543e35a106276242db11878ad83  libgcc/config/i386/crti.S
! ab8b2af03b22107b60f90cef6fe11fde  libgcc/config/i386/crtn.S
! 10bcbf6dfe65522c2dbe865524370c09  libgcc/config/i386/crtprec.c
! fd96c449f30139cf77fae02d0aeeb1e8  libgcc/config/i386/cygming-crtbegin.c
! 0b5aa92996bd2509306b308586488d6c  libgcc/config/i386/cygming-crtend.c
! 00453e57da747a9903fa81b6592ce61b  libgcc/config/i386/cygwin.S
! 973ca2e995622f6888d457f4e0818a2d  libgcc/config/i386/darwin-lib.h
! aa6e71d8aedc1c5cbf849faef6dde5ad  libgcc/config/i386/dfp-machine.h
! e6509c79b950e284086b06374406df0a  libgcc/config/i386/dragonfly-unwind.h
! f4ac1f0b9c6d86dc0e10445cc7bae02a  libgcc/config/i386/elf-lib.h
! 176fab61dba07945bc55b0543d33ad10  libgcc/config/i386/enable-execute-stack-mingw32.c
! e077e101c84e909d78726009942bac3d  libgcc/config/i386/freebsd-unwind.h
! 2bb536419a3e7cf87f04c8e04d7f8af1  libgcc/config/i386/gnu-unwind.h
! c34db7eb4a99862947c349878e2c2cd6  libgcc/config/i386/gthr-mcf.h
! 2c7e8981b9c1c3734aa4d6c3213e9e12  libgcc/config/i386/gthr-win32-cond.c
! 3c5ad2bbc8bd93ebaf6e8857fb15074e  libgcc/config/i386/gthr-win32-thread.c
! 398f7a22c3634540f747f1e53afefe9b  libgcc/config/i386/gthr-win32.c
! 282d793208fef5cb75b797e4dad023ea  libgcc/config/i386/gthr-win32.h
  74b4d2fb578bea1c8304a4d83dd1bac4  libgcc/config/i386/heap-trampoline.c
! 70f006cce2a22568166d0a3d379d4a87  libgcc/config/i386/i386-asm.h
! 43034a3293124235dd63794fee5aa16a  libgcc/config/i386/libgcc-bsd.ver
! 400722e833d6ddbea9be5b79d578ba4d  libgcc/config/i386/libgcc-cygming.ver
! d270985c9bb872cf2afff7378b5497d8  libgcc/config/i386/libgcc-darwin.ver
! 89a53b29bacdf92f805b8e4e5051ebb4  libgcc/config/i386/libgcc-glibc.ver
! acd4d6f2d984919bb89853010a174e84  libgcc/config/i386/libgcc-mingw.ver
! 992a775f9c03e095afae95c1faba961c  libgcc/config/i386/libgcc-sol2.ver
! 177c1ddb45f689a78031cc06f0aabe36  libgcc/config/i386/linux-unwind.h
! 08e2520f3b2b5d526a466453d9a7da0e  libgcc/config/i386/morestack.S
! 2387ad8069c812112168d584e9871538  libgcc/config/i386/resms64.h
! 2dd7e7c10f2b6ab696cde150b4aa7fcf  libgcc/config/i386/resms64f.h
! 58906d8ccd58081286eb8b654a86b02c  libgcc/config/i386/resms64fx.h
! 201e6a5885769d81d19d05b3605af200  libgcc/config/i386/resms64x.h
! daed15be8060b16511519521eea7e62d  libgcc/config/i386/savms64.h
! 367d259a6480340d5f496c76737c7a40  libgcc/config/i386/savms64f.h
! 0145278af87a9ec1450b44496fcf8010  libgcc/config/i386/sfp-exceptions.c
  d15ae0137ca61a07b6d128c923e73d53  libgcc/config/i386/sfp-machine.h
! 67d172abb33bb417c218ded0ba896609  libgcc/config/i386/shadow-stack-unwind.h
! 002f3bd8159047987265fc6b4c2f36f0  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
*************** e831a13e330d0eb6ffa779c755d5fe3d  libgcc
*** 119132,119744 ****
  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
- 12cdd13a4838418e9805277c7b2fcd92  libgcc/config/i386/t-seh-eh
  aae3ba90f7a9172b2dff6b8d61c25735  libgcc/config/i386/t-sjlj-eh
  641dd355005c77e8135f1c6482f1422b  libgcc/config/i386/t-slibgcc-cygming
  97e2e74784f32597a8c5d88288a87562  libgcc/config/i386/t-slibgcc-mingw
  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
  73b444740292477655cb064fb49344ff  libgcc/config/ia64/t-ia64
  a62fe8dfc762481ba66ef53a05ace32d  libgcc/config/ia64/t-ia64-elf
  a687e8161232885646a8f72e1bb638c6  libgcc/config/ia64/t-linux
! 7765091a208742b8a4a258223f1d7c22  libgcc/config/ia64/t-linux-libunwind
  bbd02bc575b39b813abb3651cde980d7  libgcc/config/ia64/t-slibgcc-hpux
  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
! a65f08d6dc5d71b4f04aa72d72715e4d  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
! 1c10dac5e780600ed16f9a4cac413e0c  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
--- 132362,132978 ----
  9d82d05d119f031c6327b2b2a6015871  libgcc/config/i386/t-freebsd
  75e59dd5f976bfaf5efca31aa34d0926  libgcc/config/i386/t-heap-trampoline
  411ab7f31d63e25ae8f98aef0132e384  libgcc/config/i386/t-linux
  226cdff862bdab3d98ad952ff21a40a8  libgcc/config/i386/t-mingw32
  5d85ed8e4ae93489c3433d591a68312c  libgcc/config/i386/t-msabi
  0c1d77cb54c2a81694d96a9ff5e8180c  libgcc/config/i386/t-nto
  aae3ba90f7a9172b2dff6b8d61c25735  libgcc/config/i386/t-sjlj-eh
  641dd355005c77e8135f1c6482f1422b  libgcc/config/i386/t-slibgcc-cygming
  97e2e74784f32597a8c5d88288a87562  libgcc/config/i386/t-slibgcc-mingw
  48d32a96cdfa55f737d1297cf2293bb1  libgcc/config/i386/t-softfp
  e3f37cf5fbd829324e763c71726907a2  libgcc/config/i386/t-sol2
  89444a8a78bd3aa7426e9525cdd7ce25  libgcc/config/i386/t-stack-i386
! 8c0a378d4cc7c08db1e86a6096d6d197  libgcc/config/i386/value-unwind.h
! 7ab0e5c4c9874cc825b10a2840d5d319  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
! a9aa8b3d07489f33f6c73961619c46a9  libgcc/config/ia64/crtbegin.S
! 0fc4595e3017cadef9b734a87a6df660  libgcc/config/ia64/crtend.S
! b900a50f9d882407b22656bb5ea0eba0  libgcc/config/ia64/crtfastmath.c
! 3322475d7ae95bd8de21b6e6c5aca582  libgcc/config/ia64/crti.S
! a8a420b707c8a32ae6161d351ee305bf  libgcc/config/ia64/crtn.S
  09ae9898a8a15266c60b15a27f0b1ba4  libgcc/config/ia64/divtf3.c
! b83cc9e98758230087a1933636385a26  libgcc/config/ia64/fde-glibc.c
! dd1c1db8c0921838045500ae965f932f  libgcc/config/ia64/fde-vms.c
! 6b57518fb1fb20730992d8aacdd83ae8  libgcc/config/ia64/lib1funcs.S
! 411b9c1293e59f605fcc8bfaf830ca10  libgcc/config/ia64/libgcc-glibc.ver
! e6c5a943696752fe7ba27dd8b3567a78  libgcc/config/ia64/libgcc-ia64.ver
! 6bc17f9ec89e83b26693907f37a1793c  libgcc/config/ia64/linux-unwind.h
! bab597771229f1d269ed0d4e5f373ce4  libgcc/config/ia64/quadlib.c
! 4de1c7a703bb1040cc1e9ed898ca5212  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
  73b444740292477655cb064fb49344ff  libgcc/config/ia64/t-ia64
  a62fe8dfc762481ba66ef53a05ace32d  libgcc/config/ia64/t-ia64-elf
  a687e8161232885646a8f72e1bb638c6  libgcc/config/ia64/t-linux
! 5b1b3f890c21ee8af5f39ea7bd71fa6f  libgcc/config/ia64/t-linux-libunwind
  bbd02bc575b39b813abb3651cde980d7  libgcc/config/ia64/t-slibgcc-hpux
  3cc3f3d4611f64c4d5fc225a72d8ccc4  libgcc/config/ia64/t-softfp
  7508d41329db54ddeccc7e86a6cafae5  libgcc/config/ia64/t-softfp-compat
  552ede49162d3a4fb9e1e113de11e8b5  libgcc/config/ia64/t-vms
! 0cc302b6b6415337ca2911b3a938c0df  libgcc/config/ia64/tf-signs.c
! 108a1ae0b3092c386fdc6056e2f2dba5  libgcc/config/ia64/unwind-ia64.c
! 3b71ce0f8cbbc7b488a5b7e2fb0a93c8  libgcc/config/ia64/unwind-ia64.h
! 7046a99e7fc7bd7422f23325f9d72f61  libgcc/config/ia64/vms-crtinit.S
! ce7f57362106045da01e394cca7cd21e  libgcc/config/ia64/vms-unwind.h
! 5ad2e48921540fdd1987612f188cd00b  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! a880e581eec65cbc0b2aac1ced6df22d  libgcc/config/libbid/ChangeLog
! 3d1db14d00e58c9d3be80ba86e39a24f  libgcc/config/libbid/_addsub_dd.c
! cba34f1578a74a8f600dfbba8d73114a  libgcc/config/libbid/_addsub_sd.c
! 10437f18a7246f9219fa2a3b228ab8c3  libgcc/config/libbid/_addsub_td.c
! 90dee4194b501e56895332a603aee5c5  libgcc/config/libbid/_dd_to_df.c
! 83065f9911097eb1dcf39c932821e444  libgcc/config/libbid/_dd_to_di.c
! f4de5c214a8dcaf443d1485bcf99c574  libgcc/config/libbid/_dd_to_hf.c
! b7f359572e7e23a5e07a32ce04730c82  libgcc/config/libbid/_dd_to_sd.c
! 3d9e1bfb74de94d17eb17bdfdf64bf55  libgcc/config/libbid/_dd_to_sf.c
! d06b5fff83cf27ee70f0b080b0a3013e  libgcc/config/libbid/_dd_to_si.c
! d5570b7d7f84a464302e23d6aef4735d  libgcc/config/libbid/_dd_to_td.c
! 7cc2b073abef1b925e0e7d92d840418e  libgcc/config/libbid/_dd_to_tf.c
! 5bc6322b296502b0c0c87fe12f2262dd  libgcc/config/libbid/_dd_to_udi.c
! c2d13c65c5ad591cbf05831f06384c31  libgcc/config/libbid/_dd_to_usi.c
! f8ca987af51aa2071a351484eb24259f  libgcc/config/libbid/_dd_to_xf.c
! 49da2d875b7209f9bc4cb12257e2594b  libgcc/config/libbid/_df_to_dd.c
! ef379ac7f325e8775755d61099ce8efd  libgcc/config/libbid/_df_to_sd.c
! 791def718f2ad2929dd0b9d7bd2d3293  libgcc/config/libbid/_df_to_td.c
! 9ca191f3ca84e16b52a4d5204e612d4f  libgcc/config/libbid/_di_to_dd.c
! b49afa7890b858e20f49b12f224f724e  libgcc/config/libbid/_di_to_sd.c
! 7bd21d89f5f6a855c56baf73a9f37b38  libgcc/config/libbid/_di_to_td.c
! 9bb193f020397824c9b413ae89320f9b  libgcc/config/libbid/_div_dd.c
! 34ed90ba13e2fe0aeca8247f2f553314  libgcc/config/libbid/_div_sd.c
! e17bdd6160bfedd6f82c58f0737c40bd  libgcc/config/libbid/_div_td.c
! 41a960e134baf215b998bf6ced336f6c  libgcc/config/libbid/_eq_dd.c
! ea79e5d541cea0d435110d2c19f5cf39  libgcc/config/libbid/_eq_sd.c
! 861525578e94f948695c7fafbfa9ad69  libgcc/config/libbid/_eq_td.c
! e2f673d1c8f48770611df3506ae0a231  libgcc/config/libbid/_ge_dd.c
! 5fd9834d2edbc8d23c9d7bccde2656e7  libgcc/config/libbid/_ge_sd.c
! 0e9e1582fb3acd5f87ea5b6ff961daad  libgcc/config/libbid/_ge_td.c
! bb1c67ca4b8a34c89fa8de49b08ed578  libgcc/config/libbid/_gt_dd.c
! 02ec398643cf2a5c11d18aab5fd3b1cc  libgcc/config/libbid/_gt_sd.c
! e78a4535b133548ee21fcf35c55a3999  libgcc/config/libbid/_gt_td.c
! f98339668a9be8105aa0b9a70900f1e9  libgcc/config/libbid/_hf_to_dd.c
! 2ec7b5e428887faf31d091e773c0b154  libgcc/config/libbid/_hf_to_sd.c
! 50047e0a7e99449e38f82d42ea33bf78  libgcc/config/libbid/_hf_to_td.c
! fd879624c02bf9c2fe3f5f4d50fe37d6  libgcc/config/libbid/_isinfd128.c
! 320af8ec2d346176aac0d086224af8c1  libgcc/config/libbid/_isinfd32.c
! f925db59902e9fdd9db632367f10e956  libgcc/config/libbid/_isinfd64.c
! 86a92963d67dc18d42f210e4f6846237  libgcc/config/libbid/_le_dd.c
! cabf3e1ad6873c4117a64023759c5122  libgcc/config/libbid/_le_sd.c
! 43195c41c62b1db06be86cb2250ebba2  libgcc/config/libbid/_le_td.c
! c81fc2b0abf594ea71ff330e1e93b220  libgcc/config/libbid/_lt_dd.c
! 54bce07857069086a55368a1cf10fe50  libgcc/config/libbid/_lt_sd.c
! 587c6648813083c3926a542551c63588  libgcc/config/libbid/_lt_td.c
! b84e293a90cb6026ae55ee19d0db5225  libgcc/config/libbid/_mul_dd.c
! e8dbdea6fe0c5205edf132fd0f2c3697  libgcc/config/libbid/_mul_sd.c
! 92d0ffc8066b46b0ff5712944ad70c81  libgcc/config/libbid/_mul_td.c
! 07fcb930de9050c1f93aa17e09067353  libgcc/config/libbid/_ne_dd.c
! 2be60d53311b3762c54892d6417afe5f  libgcc/config/libbid/_ne_sd.c
! 4c41a8329ad34b05a666805ddf559da9  libgcc/config/libbid/_ne_td.c
! 08070ab2e730402d79342637e6afadce  libgcc/config/libbid/_sd_to_dd.c
! efa3d4e897e46cafaad9705b304f28fc  libgcc/config/libbid/_sd_to_df.c
! 731c9c7c4f53fac977cedb435c0a7ddd  libgcc/config/libbid/_sd_to_di.c
! 4a3c9686398a551c69b33b0811941fa3  libgcc/config/libbid/_sd_to_hf.c
! 17d36da85f3a79384cb4a766220405e6  libgcc/config/libbid/_sd_to_sf.c
! 176b0bd2faa6cd262046ad18183a3924  libgcc/config/libbid/_sd_to_si.c
! 9ab934003e7033a27232dffcfc195945  libgcc/config/libbid/_sd_to_td.c
! 015f53ae96576bacbf97f76822223831  libgcc/config/libbid/_sd_to_tf.c
! 6aea512e61912c25737566d3cabf65f1  libgcc/config/libbid/_sd_to_udi.c
! 7b02844f81c55e21265cca6e7a0b3284  libgcc/config/libbid/_sd_to_usi.c
! 938c39859a0204ab5c95e287aaba5cc7  libgcc/config/libbid/_sd_to_xf.c
! 4c7a771e4956c3056af672808d47a2f9  libgcc/config/libbid/_sf_to_dd.c
! 5563bca010f26b9120303c1d873d7e80  libgcc/config/libbid/_sf_to_sd.c
! 16e8363df73402840078e64bb34691dc  libgcc/config/libbid/_sf_to_td.c
! aae7191c639a99a58452c54dc0af1443  libgcc/config/libbid/_si_to_dd.c
! 8a525d4205946fc200aabdf250b6fe78  libgcc/config/libbid/_si_to_sd.c
! f3a69501b1fb948d67e5378c19a1bc6f  libgcc/config/libbid/_si_to_td.c
! 1f9ac17fa1b709d3187837044dc8fa7f  libgcc/config/libbid/_td_to_dd.c
! 40f6495c85e8abbdbfe86f5dd3993d99  libgcc/config/libbid/_td_to_df.c
! 4ce3129a15bdee39493f097b418c06e0  libgcc/config/libbid/_td_to_di.c
! 8d08307a565f73f50fe8c0666d2b1573  libgcc/config/libbid/_td_to_hf.c
! 9230a3d730515adda0235c5b13648141  libgcc/config/libbid/_td_to_sd.c
! 6512fad4d186321d36cc37f483512120  libgcc/config/libbid/_td_to_sf.c
! 95d6d76e0b7c0eba795b5f740b5c0227  libgcc/config/libbid/_td_to_si.c
! f50f7188cfae09e4bc7a505840ae86fa  libgcc/config/libbid/_td_to_tf.c
! 23191a804e762fe70079824999b37c4a  libgcc/config/libbid/_td_to_udi.c
! 3b2fda7c0dc9a145c6011af6d178c572  libgcc/config/libbid/_td_to_usi.c
! ca2184a483cf56d48d8b281470956938  libgcc/config/libbid/_td_to_xf.c
! 1a998c0935b57d05820d49f4a9fd1977  libgcc/config/libbid/_tf_to_dd.c
! e4aaa681ae8cba4fff578204bd30605c  libgcc/config/libbid/_tf_to_sd.c
! ef1a8e6dc202c6dc4ec12a4f8ffa5af6  libgcc/config/libbid/_tf_to_td.c
! 9f253f143d1e475d863eb200ba43635a  libgcc/config/libbid/_udi_to_dd.c
! 80f3881bec3e9a8af805473ce32fe357  libgcc/config/libbid/_udi_to_sd.c
! 7eb206bf59c0f43a0654c9310a4bde32  libgcc/config/libbid/_udi_to_td.c
! db5bd742e1d629da87d95d52bde8c369  libgcc/config/libbid/_unord_dd.c
! 73f1045e27a13b0837e5c670341e92e3  libgcc/config/libbid/_unord_sd.c
! ffcd3020b1e578d402169a4dd9532496  libgcc/config/libbid/_unord_td.c
! 7e2dcc7368be57a25c88b9b08a0f3c1b  libgcc/config/libbid/_usi_to_dd.c
! adee93135f4e1c38402b8710c5211ffb  libgcc/config/libbid/_usi_to_sd.c
! e54c298ba313be66f5274a66180ad0c1  libgcc/config/libbid/_usi_to_td.c
! 3d37172b7da5729c0d0ec2e61c95247e  libgcc/config/libbid/_xf_to_dd.c
! 6568b320086952c607cded3521c37998  libgcc/config/libbid/_xf_to_sd.c
! 5bc01681781fdc47a70a2cb1c3f82910  libgcc/config/libbid/_xf_to_td.c
! e2bbe3a9ef2f0537011d4c973cea6908  libgcc/config/libbid/bid128.c
! 8a8c5398c4395e790e65ef1d2440ab5e  libgcc/config/libbid/bid128_2_str.h
! 12f79cba2e0c2e571b6c14620ea323ab  libgcc/config/libbid/bid128_2_str_macros.h
! 7444e6c5b64ead90868e096f5d14d51a  libgcc/config/libbid/bid128_2_str_tables.c
! 36bcf6b62b43325043ad551ac0110fe7  libgcc/config/libbid/bid128_add.c
! 42f10ecd591e3fb8c68c171687a98414  libgcc/config/libbid/bid128_compare.c
! 3977861f21b15e0cdb9883aa2e2bc0ed  libgcc/config/libbid/bid128_div.c
! 68f006a2766408e4c79f6cea01da4c86  libgcc/config/libbid/bid128_fma.c
! bf8a6af55f8ab33267d4d283fdc4fc92  libgcc/config/libbid/bid128_logb.c
! 1b04ffdbb5e0d1f2fb02c8535dab471a  libgcc/config/libbid/bid128_minmax.c
! b0bb8555044791475215faf335ecd515  libgcc/config/libbid/bid128_mul.c
! 9b873291b0af50852721d6a5cda7266f  libgcc/config/libbid/bid128_next.c
! b5e8cf93e314385cdeed3c44b8f65289  libgcc/config/libbid/bid128_noncomp.c
! 6d72412730866a141acaa75a358ca32c  libgcc/config/libbid/bid128_quantize.c
! 005af7ea1e739a191f0f0571bc024875  libgcc/config/libbid/bid128_rem.c
! c35a3cfbf0de82a6b6a7937218164447  libgcc/config/libbid/bid128_round_integral.c
! 6129783be4be6fe3471ae0246efc1b5f  libgcc/config/libbid/bid128_scalb.c
! 6bd9cd9c3b5cb73401cf6a641876d503  libgcc/config/libbid/bid128_sqrt.c
! decc68e53e53bb0ce1e292bbabde9e4b  libgcc/config/libbid/bid128_string.c
! 552d0a50c703552c37da5e14f86c5de7  libgcc/config/libbid/bid128_to_int16.c
! adc4638862447560bc05d52eebe17dc5  libgcc/config/libbid/bid128_to_int32.c
! 3bd0839b9efb1c7840e3075e523cba99  libgcc/config/libbid/bid128_to_int64.c
! be193df84578c16ba0b2ec056efc7f5f  libgcc/config/libbid/bid128_to_int8.c
! 837dad8f8b8bdb11f3d469ccddba700d  libgcc/config/libbid/bid128_to_uint16.c
! 9a28590873073c077c97804b0ee5e689  libgcc/config/libbid/bid128_to_uint32.c
! dc786152377bc3546f99c5869ae3b0f7  libgcc/config/libbid/bid128_to_uint64.c
! b4cdae8373793cd15587d584c5f3c09c  libgcc/config/libbid/bid128_to_uint8.c
! 9b90c51c0ef9961e8fc82d09b0656df8  libgcc/config/libbid/bid32_to_bid128.c
! fc8a82cc72465c38ffcab34f97b8e601  libgcc/config/libbid/bid32_to_bid64.c
! 6e3792f6f6fe80b67b7f2fc50062df2b  libgcc/config/libbid/bid64_add.c
! 1bf12668c81d8df4d459f4961aee97b3  libgcc/config/libbid/bid64_compare.c
! cb454a949d8099e85ed6f65e99063cb7  libgcc/config/libbid/bid64_div.c
! 78ac0702d94581b009aa7d233fcb1835  libgcc/config/libbid/bid64_fma.c
! 48814577703eae84036bc9c49ab2c38e  libgcc/config/libbid/bid64_logb.c
! 67e5fc48411bd4d380581f815f90830d  libgcc/config/libbid/bid64_minmax.c
! 0dcc2c640cce582104edb7aedab6d6d1  libgcc/config/libbid/bid64_mul.c
! 65bffd0a2b6327919800dd6874a8e5de  libgcc/config/libbid/bid64_next.c
! 0edd50ff7531893e421f2734ccb4ccf4  libgcc/config/libbid/bid64_noncomp.c
! 41e8d5d1bc7c83b8e27ac63113f2ec1e  libgcc/config/libbid/bid64_quantize.c
! 68775de8678c369298bc9b3a65b28466  libgcc/config/libbid/bid64_rem.c
! 980b7990536f3480f9820c948a50c3df  libgcc/config/libbid/bid64_round_integral.c
! d9ad04259054d34f5702f2cacb3f7763  libgcc/config/libbid/bid64_scalb.c
! d7d8f988ce674425c0f1f85cbffae724  libgcc/config/libbid/bid64_sqrt.c
! 53d7b9a26524e3e51b411dcb11a4b4f6  libgcc/config/libbid/bid64_string.c
! 7c876573542c7f6f411677041b60bf95  libgcc/config/libbid/bid64_to_bid128.c
! a9bf06e3bb7ae26256e970784d2ee6a6  libgcc/config/libbid/bid64_to_int16.c
! 75b83c7d96f4e1ca1965856110aa2b7d  libgcc/config/libbid/bid64_to_int32.c
! 3ea5c08cdcd212e697f3d4f35e0be1a3  libgcc/config/libbid/bid64_to_int64.c
! 4be135a1dbca7fc7d39c9a64b9007ead  libgcc/config/libbid/bid64_to_int8.c
! a8a144e1daf2c247f8f222dbd9889610  libgcc/config/libbid/bid64_to_uint16.c
! b8b07ca1e90a3267c831edf277aa822a  libgcc/config/libbid/bid64_to_uint32.c
! b27fd9b4437c73c271664b335f1ba505  libgcc/config/libbid/bid64_to_uint64.c
! 17abf8323ad202a166c67f21dd0bef3b  libgcc/config/libbid/bid64_to_uint8.c
! 6a26621b8245f935406a9214a45a43f0  libgcc/config/libbid/bid_b2d.h
! 3d3a7695168920378bccca1fd43e163a  libgcc/config/libbid/bid_binarydecimal.c
! 6f7ef03153c05d8df432e2cbaae7dcd3  libgcc/config/libbid/bid_conf.h
! 6ce433d5fff3c751cfaee5f5d2661db2  libgcc/config/libbid/bid_convert_data.c
! 2620ec7828b397fbb8de154747ba6e3e  libgcc/config/libbid/bid_decimal_data.c
! 3ef0dc586ac00cc00a82b99e9182375f  libgcc/config/libbid/bid_decimal_globals.c
! 7ed8e868cd1e477a596312740b38490a  libgcc/config/libbid/bid_div_macros.h
! 50c5ce8047175777e622beebbd999ef8  libgcc/config/libbid/bid_dpd.c
! ad7d39a1ef423ac45b6c0df6da6d9464  libgcc/config/libbid/bid_flag_operations.c
! 70c57edfa348754a0cb18e512b5d7688  libgcc/config/libbid/bid_from_int.c
! 353c63ca7a1b52d9d9e34c2efe00c7e1  libgcc/config/libbid/bid_functions.h
! ccabbfa7e15a100ddef92eb76cc4df59  libgcc/config/libbid/bid_gcc_intrinsics.h
! 6ea7e497e9bee39c2cf72f0e09795620  libgcc/config/libbid/bid_inline_add.h
! 4bc9bfc30007156ce6d8131372d59c79  libgcc/config/libbid/bid_internal.h
! 9676538afdd654500a410813c39d0ea0  libgcc/config/libbid/bid_round.c
! 2dab701692573817315dd0f6bee0c5ce  libgcc/config/libbid/bid_sqrt_macros.h
! ddb07fa545971a1ecf92818fbc902b9a  libgcc/config/libbid/dfp-machine.h
! a4b9483276b1b0aacaf252d769e48202  libgcc/config/libgcc-glibc.ver
  a5b43383f528298ff2dc85061452e1e6  libgcc/config/libgcc-libsystem.ver
! a06394ef3b690dafe1c8871425ddd7a6  libgcc/config/lm32/_ashlsi3.S
! a13c9405279e68adf6b6a44301416a1c  libgcc/config/lm32/_ashrsi3.S
! dbf990dd8b02ddd89e69d2412d3793f6  libgcc/config/lm32/_divsi3.c
! 9bd8b9bf0fb9e1bb6c0741a370b2e6ea  libgcc/config/lm32/_lshrsi3.S
! d11fe18d0ea25da2c5303552213814d1  libgcc/config/lm32/_modsi3.c
! 0a05e67b47901b30473552f54fa5f3a4  libgcc/config/lm32/_mulsi3.c
! cdcb27670f709b90a0913c9fab89a4d4  libgcc/config/lm32/_udivmodsi4.c
! 317773769d36fc00f0e60e463bf45bba  libgcc/config/lm32/_udivsi3.c
! c915378ab8ca5966b33a74baee30c340  libgcc/config/lm32/_umodsi3.c
! ce0c4e43c7c3a714906abad15271fc79  libgcc/config/lm32/crti.S
! 6cfd8eae17a644a2cde95e71abf8d48a  libgcc/config/lm32/crtn.S
! fc8d0794664b19c54ac0bfa4b3abd1cc  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
! 0fd1d37e57f52c03a655d757b9a4de4a  libgcc/config/loongarch/cpuinfo.c
! e24d0c8440a3446c8fd37563429cb830  libgcc/config/loongarch/crtfastmath.c
! fd72d146d53200827731c720a02bd2b6  libgcc/config/loongarch/libgcc-loongarch.ver
! 89aea524deaa5f29215c40142424bcbd  libgcc/config/loongarch/linux-unwind.h
! b72ab73860ff4b5900fdde8facdf1193  libgcc/config/loongarch/sfp-machine.h
! 452ec44add9224de8e934c51322eaba5  libgcc/config/loongarch/t-crtstuff-la32
! 39d859f2463613a8181ae213154247d3  libgcc/config/loongarch/t-crtstuff-la64
! 6883bbf1b6255e7d7d374cf325381ce1  libgcc/config/loongarch/t-loongarch
! 30a759945cf2224eb5cd5985df99af5f  libgcc/config/loongarch/t-loongarch64
! 5eefb8d5a64eeaa8e6b4d8618a2c8219  libgcc/config/loongarch/t-softfp-tf
! c1140d04f459636135c7761c22554e3e  libgcc/config/m32c/lib1funcs.S
! 2303a6d7ce18ffb36cf59f4a12b6a5e7  libgcc/config/m32c/lib2funcs.c
  9f1fc3a0f039273ded002a6713908bd3  libgcc/config/m32c/t-m32c
! fd077c1b189d6fcb0abef6b00dbe1b39  libgcc/config/m32c/trapv.c
! f6fc61f20665f5db9233b19460ee167f  libgcc/config/m32r/initfini.c
  e252c161ec4eb09d3b5a62d902b3d00f  libgcc/config/m32r/t-m32r
! d45915baeadbd9ff5bbd1bc8c1d8c334  libgcc/config/m68k/crti.S
! d9952a72f7b3b58a340259bbbf1a1c18  libgcc/config/m68k/crtn.S
  3114ddfa399eb3112881c407b63e87f3  libgcc/config/m68k/fpgnulib.c
! 61f893e1f4b39b3a47893b3024a7820a  libgcc/config/m68k/lb1sf68.S
! bb4db7c3b11e7dc79f3b7bd70910e7fd  libgcc/config/m68k/linux-atomic.c
! b8557a40a9b8a3b385090e626717e2d7  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
! 95c3ce71d327459f9d4b3243b7100705  libgcc/config/mcore/crti.S
! ae52d58cdb259d43ada3eb8ccd927dd3  libgcc/config/mcore/crtn.S
! 6542d2ab35e9ab3c4c6d2c2f60304851  libgcc/config/mcore/lib1funcs.S
  ef74fd63202d842bfe7120864186128c  libgcc/config/mcore/t-mcore
! 438ba5ea2d1fafce773ad86bd0756658  libgcc/config/microblaze/crti.S
! 6fb1bd6c61eb074b4e006e0a355751bb  libgcc/config/microblaze/crtn.S
! 428ae7322663562f4b5d110c906ab8cf  libgcc/config/microblaze/divsi3.S
! 92819b96fc94be1d22fee6e049f8bf50  libgcc/config/microblaze/divsi3_table.c
! c5ad57c021373a85cc3f32946d140d23  libgcc/config/microblaze/moddi3.S
! 06900d0735d411c82a00bd31c96ea484  libgcc/config/microblaze/modsi3.S
! 95652262bac1a0e085ce27e8c4e67b6d  libgcc/config/microblaze/muldi3_hard.S
! b64b6c664626abd9a6b6205a4fb9f929  libgcc/config/microblaze/mulsi3.S
! 8e593be355d4f2736809d0678bac600a  libgcc/config/microblaze/stack_overflow_exit.S
  702cd2045c2c31581ecd56232d96d5f5  libgcc/config/microblaze/t-microblaze
! 9e8ebf72cd989d9300c55bfd9b6c0b31  libgcc/config/microblaze/udivsi3.S
! 72d26d23036355b13cf5c6a74237f2ec  libgcc/config/microblaze/umodsi3.S
  21a697b3742c466bc6b268a906529ab6  libgcc/config/mingw/t-gthr-win32
+ 1bbab852ec95edb798886ed925c7e989  libgcc/config/mingw/t-mingw-mcfgthread
  80f832afb70afb11a4a1c2e403944b73  libgcc/config/mingw/t-mingw-pthread
! 12cdd13a4838418e9805277c7b2fcd92  libgcc/config/mingw/t-seh-eh
! 135caffec31ed0dde9914f0d95b90d90  libgcc/config/mips/crtfastmath.c
! 99151a2e5affd1acf9c2264d5dd8f2f5  libgcc/config/mips/crti.S
! 394c89724b7cfb6b11eba4023e7a814f  libgcc/config/mips/crtn.S
  f69b446f168701e4fad37a3fa7bf7a2a  libgcc/config/mips/gnustack.h
! 9923642d60f31b2a4e8759dd252430e8  libgcc/config/mips/gthr-mipssde.h
! 6280297eff3a6847c811a015e714aba8  libgcc/config/mips/lib1funcs.S
! 5ab1b66b65354d2a934f6eccae7eaf58  libgcc/config/mips/lib2funcs.c
! d5968c1ac13feabd05492fee9d1ade65  libgcc/config/mips/libgcc-mips.ver
! e81b4804584afad01efa57f0d57d5f4c  libgcc/config/mips/libgcc-mips16.ver
! 30bdfd066f6bd5a9cc025b8e5ad2f612  libgcc/config/mips/linux-unwind.h
! e2801ae63a08d759b368fb1d290be58b  libgcc/config/mips/mips16.S
! e2d2aa7b392fab39406a42d15869e073  libgcc/config/mips/sfp-machine.h
  5b43c15f4e003338742d215bcfdf5029  libgcc/config/mips/t-crtstuff
  33f2c96b7ccbbb062839ec1e7329e6bb  libgcc/config/mips/t-elf
  3a02ac9d841ae97e7bfb7f570f95e179  libgcc/config/mips/t-mips
! b0176a77003631641dfbbf71949fc647  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
! edd932138a3941a0b5c32a8bdd8b9d74  libgcc/config/mips/vr4120-div.S
! 1cbc05ba6665289218acba6b121902de  libgcc/config/mmix/crti.S
! eae30d0aebbf67873ecb93ce46c24f5a  libgcc/config/mmix/crtn.S
  41478efd1b19b3c7c9426d8e843f3b39  libgcc/config/mmix/t-mmix
! 18789a2a9a9dada16d319b8b0da31cfb  libgcc/config/moxie/crti.S
! 41aa70608663215c48f165b83c5b7972  libgcc/config/moxie/crtn.S
  5d570ff5cd40fc6fba8876bdebd59a6b  libgcc/config/moxie/sfp-machine.h
  9b7000ea173c226d39e6a6dc116fdaf1  libgcc/config/msp430/cmpd.c
! de53d7c1237199b4fcd1b23ea928a126  libgcc/config/msp430/cmpsi2.S
! cd34d27e3bca218d041db0ab0c17f095  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
! d06944a0c47e188c5692a53373fc8580  libgcc/config/msp430/lib2bitcountHI.c
! 1c3e3dfc4a01f69527af1eb11bdd278e  libgcc/config/msp430/lib2divHI.c
! 3098403639a20e3f0a2741a528a0d754  libgcc/config/msp430/lib2divQI.c
! b10c2a0446316da3dbcb7c8135c47b00  libgcc/config/msp430/lib2divSI.c
! fe7e93ca04c09acbb69aa8a0d9cd191b  libgcc/config/msp430/lib2hw_mul.S
! a198e8741e51dfda76c6f8316f23ef1f  libgcc/config/msp430/lib2mul.c
! 3cef845aecc7052279bbc1e3511ff198  libgcc/config/msp430/lib2shift.c
  4cd58d6132b194ddd1f8fe2ce65f3fa5  libgcc/config/msp430/mpy.c
! 1140aadddbcc8b91931225e2dc76aff3  libgcc/config/msp430/msp430-divmod.h
! f4d300261fd7993e62ad80eba2e3fa71  libgcc/config/msp430/msp430-mul.h
! 41f57912fc63ca7e7739f853a025b3e0  libgcc/config/msp430/slli.S
! 1534659863cb658edefc37f2f6c3d46a  libgcc/config/msp430/srai.S
! fdbc672bb404d1a2365337bcd9b09c5f  libgcc/config/msp430/srli.S
! a95d71966594f0dcba78e9e99fd25e5a  libgcc/config/msp430/t-msp430
! 4d8afadd3f7833f974e1cff8b44405ba  libgcc/config/nds32/crtzero.S
! 5aa8518c940001167ee657612068dcb9  libgcc/config/nds32/initfini.c
! 78cda43e5cbd5a22b8520885d66a3cec  libgcc/config/nds32/isr-library/adj_intr_lvl.inc
! 43e1d056b1d5c9e2ceba60d7a42cb3b5  libgcc/config/nds32/isr-library/excp_isr.S
! f650e39053f4dbe81ed3cef9b5414f72  libgcc/config/nds32/isr-library/excp_isr_4b.S
! 60c371fa896f60b503587b6fddc48c03  libgcc/config/nds32/isr-library/intr_isr.S
! dd84b121195c201c922523b4b9f39576  libgcc/config/nds32/isr-library/intr_isr_4b.S
! b07594d460051cf5ba4bcfde37fd68df  libgcc/config/nds32/isr-library/jmptbl_vid00.S
! 1bf14295275863fa2efaf84e82f25ea6  libgcc/config/nds32/isr-library/jmptbl_vid01.S
! 398b85fdc262f7cbbe1722d38e8cd9a8  libgcc/config/nds32/isr-library/jmptbl_vid02.S
! a4bd7d3628dce0450761fd54c41b9319  libgcc/config/nds32/isr-library/jmptbl_vid03.S
! b7526db85cada62282ac7abccb472572  libgcc/config/nds32/isr-library/jmptbl_vid04.S
! ac38eb9d57c83fce945be34ce8737fc4  libgcc/config/nds32/isr-library/jmptbl_vid05.S
! 0d32d7fdde2c487b59529f42700c1ff0  libgcc/config/nds32/isr-library/jmptbl_vid06.S
! 454c26b0c7aa8b157f19f474e6792fb0  libgcc/config/nds32/isr-library/jmptbl_vid07.S
! ba8f294bc40dc895b6eaaf825e02320c  libgcc/config/nds32/isr-library/jmptbl_vid08.S
! 7bddec20582913c86e59afc3f77f71ca  libgcc/config/nds32/isr-library/jmptbl_vid09.S
! ceb79feaa514daf86ef8d4e2cc914a5d  libgcc/config/nds32/isr-library/jmptbl_vid10.S
! 64db422e9f04b87bbc43c9d1fbd784d8  libgcc/config/nds32/isr-library/jmptbl_vid11.S
! 1cb81eba5f86ae5173a7a90c5b9d4fc5  libgcc/config/nds32/isr-library/jmptbl_vid12.S
! dbc9da92161853f6503407cb7b9a2aac  libgcc/config/nds32/isr-library/jmptbl_vid13.S
! a4c4f978bd7cf5fbfa2be9f172aa145f  libgcc/config/nds32/isr-library/jmptbl_vid14.S
! b8f2c69528587bf6096f482db1035274  libgcc/config/nds32/isr-library/jmptbl_vid15.S
! 233dc384afbf15e0b94612524c2640fc  libgcc/config/nds32/isr-library/jmptbl_vid16.S
! f044586c11df167702a0c05aa023cf0c  libgcc/config/nds32/isr-library/jmptbl_vid17.S
! a57ba5e31b150b2d5a625756b72bbe72  libgcc/config/nds32/isr-library/jmptbl_vid18.S
! fe69f1d5b3ae8a720c9c0698d8fa5639  libgcc/config/nds32/isr-library/jmptbl_vid19.S
! ddcc9ac7d7bfd08c667910c8266cda35  libgcc/config/nds32/isr-library/jmptbl_vid20.S
! e2566b3b157d0cda9f59efa9efc8faeb  libgcc/config/nds32/isr-library/jmptbl_vid21.S
! 41035b41e6e5d2cc5aa8c62695d291c2  libgcc/config/nds32/isr-library/jmptbl_vid22.S
! c2158316f3be04d2dafd29896bd78142  libgcc/config/nds32/isr-library/jmptbl_vid23.S
! 32bd1813cbf85594c935f8bdd398e925  libgcc/config/nds32/isr-library/jmptbl_vid24.S
! 4a47df6bc7a0c2839b85266fac9b7356  libgcc/config/nds32/isr-library/jmptbl_vid25.S
! a74caf9d67ae35dd54520772b0ef8f50  libgcc/config/nds32/isr-library/jmptbl_vid26.S
! 4f29b36765585eae4a1f4be818585e28  libgcc/config/nds32/isr-library/jmptbl_vid27.S
! 47d58e2701f04e3e237d699d02659cca  libgcc/config/nds32/isr-library/jmptbl_vid28.S
! 9c59805c4caa439561d0fb45c596c268  libgcc/config/nds32/isr-library/jmptbl_vid29.S
! c83a92344c2d5f14458466ed90dfc810  libgcc/config/nds32/isr-library/jmptbl_vid30.S
! a152c6cee8e93d1b5d8846762316fa82  libgcc/config/nds32/isr-library/jmptbl_vid31.S
! 881c99fca6f50c89debee14f39194835  libgcc/config/nds32/isr-library/jmptbl_vid32.S
! 1d650d48d35042647b01e4bcf4b05399  libgcc/config/nds32/isr-library/jmptbl_vid33.S
! 8869e2237dabcdfcc3448b9e15270678  libgcc/config/nds32/isr-library/jmptbl_vid34.S
! e602ce1a0bc401ef9bcc9b2d80acf40b  libgcc/config/nds32/isr-library/jmptbl_vid35.S
! 4fb5c49008c8ffb25e2b7a79313191eb  libgcc/config/nds32/isr-library/jmptbl_vid36.S
! a3d3516aa7b43df15d4597e297e375a9  libgcc/config/nds32/isr-library/jmptbl_vid37.S
! 4fb4f832106118dbcbeeb9b3482e8e12  libgcc/config/nds32/isr-library/jmptbl_vid38.S
! 2e8320ca3d1bbe4f792b6e944340482d  libgcc/config/nds32/isr-library/jmptbl_vid39.S
! c23b21459365b7348d8fdcdd6c2b5f5b  libgcc/config/nds32/isr-library/jmptbl_vid40.S
! 39088f29ad8c36313be5480bfad37039  libgcc/config/nds32/isr-library/jmptbl_vid41.S
! 491338454256ec9ea95da737f1eef601  libgcc/config/nds32/isr-library/jmptbl_vid42.S
! 119e7d18e0d3711aabf1de7ddf284d03  libgcc/config/nds32/isr-library/jmptbl_vid43.S
! 8d2bc66ce53e68b1a11efd756a73201e  libgcc/config/nds32/isr-library/jmptbl_vid44.S
! aa1b7fe2967d8712d833217244d7d3bc  libgcc/config/nds32/isr-library/jmptbl_vid45.S
! dc58124bcbab99527cb0fcb1df9c6507  libgcc/config/nds32/isr-library/jmptbl_vid46.S
! ac60afefad6a392ce0a4c27759fea187  libgcc/config/nds32/isr-library/jmptbl_vid47.S
! dcc39eb8d634411c318f1874bdff4333  libgcc/config/nds32/isr-library/jmptbl_vid48.S
! 8a5e8e1cac4d98a5a620b64b9464a91b  libgcc/config/nds32/isr-library/jmptbl_vid49.S
! 627620c22930c8562aa5b475f907395e  libgcc/config/nds32/isr-library/jmptbl_vid50.S
! 771147de5a6e70e7b9786cf9e9b04518  libgcc/config/nds32/isr-library/jmptbl_vid51.S
! e66bf8a7eaba759f9ac29bb8311b2e96  libgcc/config/nds32/isr-library/jmptbl_vid52.S
! 4fe3c673a715be529370359d3e80fc17  libgcc/config/nds32/isr-library/jmptbl_vid53.S
! b72ca23a1984a8e20037ffdf84f9e98e  libgcc/config/nds32/isr-library/jmptbl_vid54.S
! c4cecfa4150939e79e8d60e5b42225ad  libgcc/config/nds32/isr-library/jmptbl_vid55.S
! 7dc1ca6da8589b0e056b0cd5084e6cad  libgcc/config/nds32/isr-library/jmptbl_vid56.S
! 60011a93f5d5cab04ca98086885025c6  libgcc/config/nds32/isr-library/jmptbl_vid57.S
! 8680c9a15fae3afc78a700df9153a7c4  libgcc/config/nds32/isr-library/jmptbl_vid58.S
! c309f62306af528905aa574f8e8834ba  libgcc/config/nds32/isr-library/jmptbl_vid59.S
! eee3ed65f3b9e4ac05a990937b2f8171  libgcc/config/nds32/isr-library/jmptbl_vid60.S
! 2b370c121bb770afb4e17ac65145bccc  libgcc/config/nds32/isr-library/jmptbl_vid61.S
! df86d78c77c62e6508a536b87ce20cae  libgcc/config/nds32/isr-library/jmptbl_vid62.S
! 65ffd55b84e3bed18226b751b8d01403  libgcc/config/nds32/isr-library/jmptbl_vid63.S
! 613e54b48f0f6bad3975a89677710a04  libgcc/config/nds32/isr-library/jmptbl_vid64.S
! 2fe3e13451f23f9f1f600fcb16a0369d  libgcc/config/nds32/isr-library/jmptbl_vid65.S
! 98ad6ef2a3c311bb6058d598b71476cd  libgcc/config/nds32/isr-library/jmptbl_vid66.S
! 19d147c3cbf6f4a8a11a6b294ae0fb57  libgcc/config/nds32/isr-library/jmptbl_vid67.S
! 2b5f289eb8ede44b86ce6d26cfed3f44  libgcc/config/nds32/isr-library/jmptbl_vid68.S
! 3cfe9cfb05572ac4b8662626e6b8ce64  libgcc/config/nds32/isr-library/jmptbl_vid69.S
! bbc1ec2d370ecad908cbed2868b8ac61  libgcc/config/nds32/isr-library/jmptbl_vid70.S
! b60ff15bba74311c3b3e339c87bc68fc  libgcc/config/nds32/isr-library/jmptbl_vid71.S
! c61b8b159a4eefc248c03703aa868c0c  libgcc/config/nds32/isr-library/jmptbl_vid72.S
! c4d8a1a6bb9982618cc1f91279644df5  libgcc/config/nds32/isr-library/nmih.S
! 391936bd787fbe2cdeac2a486a502aba  libgcc/config/nds32/isr-library/reset.S
! 0ec507abbc2a252e35a24301284950a7  libgcc/config/nds32/isr-library/reset_4b.S
! 574eea246126da90c2b9428f543dd75d  libgcc/config/nds32/isr-library/restore_all.inc
! 06a5edf38c1540dc720c2b39816f739a  libgcc/config/nds32/isr-library/restore_fpu_regs.inc
! 241b927105859d4c3129bdc58ced1378  libgcc/config/nds32/isr-library/restore_fpu_regs_00.inc
! 8082238ae31fa18262848ba00bdcdf21  libgcc/config/nds32/isr-library/restore_fpu_regs_01.inc
! a9be386404d16bb692c24ae09f45b62a  libgcc/config/nds32/isr-library/restore_fpu_regs_02.inc
! 8eda89ebe5e62e69f2f5ad388836552a  libgcc/config/nds32/isr-library/restore_fpu_regs_03.inc
! 33964e23a7b4ae17634aa4e113d5e889  libgcc/config/nds32/isr-library/restore_mac_regs.inc
! 7eb03f4a6f3036ea15e96f6d52616372  libgcc/config/nds32/isr-library/restore_partial.inc
! 45b9873a3b737707bf2ba4c1eb0f0acd  libgcc/config/nds32/isr-library/restore_usr_regs.inc
! 201213b6476f7f51f318306963b176ef  libgcc/config/nds32/isr-library/save_all.inc
! 8abe6871c7f8a71c8b34cf753b03d23f  libgcc/config/nds32/isr-library/save_fpu_regs.inc
! 3ab4a7d98cd13613582fed53868158f1  libgcc/config/nds32/isr-library/save_fpu_regs_00.inc
! 7b43b2f62c1f223b7b9815b709da3ab3  libgcc/config/nds32/isr-library/save_fpu_regs_01.inc
! de21415137279ab3f6ed974afc3df61d  libgcc/config/nds32/isr-library/save_fpu_regs_02.inc
! 2b860695f75e8702a23da8970f39ecb6  libgcc/config/nds32/isr-library/save_fpu_regs_03.inc
! f132fd0677da86046d62d73d22879038  libgcc/config/nds32/isr-library/save_mac_regs.inc
! 6350c59ccd2e3c26a56ea26e0eb7cf4c  libgcc/config/nds32/isr-library/save_partial.inc
! 5b4f7018ce07c8cff1a29374b237f9c0  libgcc/config/nds32/isr-library/save_usr_regs.inc
! 18fd9a6809600008720471d65511ab46  libgcc/config/nds32/isr-library/vec_vid00.S
! 856ef4083a9a993315b3b9f87c6ca73d  libgcc/config/nds32/isr-library/vec_vid00_4b.S
! cf3e9c1dbd60d7e975bcb24d5069af7d  libgcc/config/nds32/isr-library/vec_vid01.S
! 97ba2c0105782091b6d53182e0c1a928  libgcc/config/nds32/isr-library/vec_vid01_4b.S
! 2989cf78df29eb809dc4877cffa4e0f0  libgcc/config/nds32/isr-library/vec_vid02.S
! d679c9e089d729a008ac2e6f06238ea3  libgcc/config/nds32/isr-library/vec_vid02_4b.S
! bf40ee838c568b39ae6019494f238cb1  libgcc/config/nds32/isr-library/vec_vid03.S
! 54def31d1f6a2bf54c514828a4ca8ab5  libgcc/config/nds32/isr-library/vec_vid03_4b.S
! 05e8d742ec29b45959583e6dd3773e27  libgcc/config/nds32/isr-library/vec_vid04.S
! 8d24d9b2f64a99687a36e50a722bd2d1  libgcc/config/nds32/isr-library/vec_vid04_4b.S
! 18cd5c186f34efc0e80f33830fce3cca  libgcc/config/nds32/isr-library/vec_vid05.S
! ff0696a12c674d3a2a27632697a6d43f  libgcc/config/nds32/isr-library/vec_vid05_4b.S
! 2f694267e360373fc75657730c49beca  libgcc/config/nds32/isr-library/vec_vid06.S
! 8b8e9e343084cc282d8ceb2b1eba221a  libgcc/config/nds32/isr-library/vec_vid06_4b.S
! eedc2173b48345b99539866056b49aab  libgcc/config/nds32/isr-library/vec_vid07.S
! 67d5b45fa25f06cc01c643c33f0ee25d  libgcc/config/nds32/isr-library/vec_vid07_4b.S
! 643c5c212afbae4b78ebd3149c04646f  libgcc/config/nds32/isr-library/vec_vid08.S
! 8955a975a7d762d5cc96f56c1632b2c1  libgcc/config/nds32/isr-library/vec_vid08_4b.S
! 8d94f993bb79d41036edb224f2e61f14  libgcc/config/nds32/isr-library/vec_vid09.S
! 669ee010634a5b0e8a1205a6f24a62e6  libgcc/config/nds32/isr-library/vec_vid09_4b.S
! 1756099a9661da61dbc5619e4094209b  libgcc/config/nds32/isr-library/vec_vid10.S
! dfc5aa80019fdd3a2ef5297f4f8f4e75  libgcc/config/nds32/isr-library/vec_vid10_4b.S
! f90d1aaaa2ef7f433c84a94fbf8cc057  libgcc/config/nds32/isr-library/vec_vid11.S
! 914b41efa1887b8fce26b2a78fcd7072  libgcc/config/nds32/isr-library/vec_vid11_4b.S
! 408a2a297df601be379fdbdf22bc9a57  libgcc/config/nds32/isr-library/vec_vid12.S
! e68e92358d25aee01be35d16cb75e024  libgcc/config/nds32/isr-library/vec_vid12_4b.S
! 97d1fcf7ad0b3e4030f5b31d88b35ad1  libgcc/config/nds32/isr-library/vec_vid13.S
! 9d2e91e26a41ec4a7d0d25d4f0169893  libgcc/config/nds32/isr-library/vec_vid13_4b.S
! 8aa47439bd196d28e0e4645b89497596  libgcc/config/nds32/isr-library/vec_vid14.S
! 866d51fd61166888357244d34f5a76c3  libgcc/config/nds32/isr-library/vec_vid14_4b.S
! c76b9ad17a2060e49036662d8f3453de  libgcc/config/nds32/isr-library/vec_vid15.S
! a52df1a3fc0d38c0311578789b911caa  libgcc/config/nds32/isr-library/vec_vid15_4b.S
! c20d050cdb4239022c1102f526bf4942  libgcc/config/nds32/isr-library/vec_vid16.S
! 56a8dcfbe81a9efb29495f3033dd8c51  libgcc/config/nds32/isr-library/vec_vid16_4b.S
! 06ece855324f2fc98a36b2168f94e265  libgcc/config/nds32/isr-library/vec_vid17.S
! 48de1ea5e84241d47a2748221b019c57  libgcc/config/nds32/isr-library/vec_vid17_4b.S
! 7af007f0071e626dd74afbd4374c0216  libgcc/config/nds32/isr-library/vec_vid18.S
! 469851ddab96bbf132bd82633ef4885a  libgcc/config/nds32/isr-library/vec_vid18_4b.S
! 06f1f5d09eb24fd26e3cb64ab7c6c1da  libgcc/config/nds32/isr-library/vec_vid19.S
! f2e21e228a655aceb4f61a4315b30f6a  libgcc/config/nds32/isr-library/vec_vid19_4b.S
! 7391688f9ce053416e54215e9add016c  libgcc/config/nds32/isr-library/vec_vid20.S
! e52b303882113a6f67dcce747ccbfae6  libgcc/config/nds32/isr-library/vec_vid20_4b.S
! 4fa3d2b053a066d91b11190c4eabbae1  libgcc/config/nds32/isr-library/vec_vid21.S
! 6ee9befc043881c9849ec7312cb8d98b  libgcc/config/nds32/isr-library/vec_vid21_4b.S
! 64020c689918fadd7f22198d1786a775  libgcc/config/nds32/isr-library/vec_vid22.S
! 484b494b00cd27c13fc41cf4c965bb0e  libgcc/config/nds32/isr-library/vec_vid22_4b.S
! 0a57d1c750f80cafbb766b97ec42f004  libgcc/config/nds32/isr-library/vec_vid23.S
! d1e7eb3dece67b5dae0d02568e9a6c33  libgcc/config/nds32/isr-library/vec_vid23_4b.S
! 1ab6bafc871e460bf989e2170758f04a  libgcc/config/nds32/isr-library/vec_vid24.S
! c5d8129d494ede7cccce2db2d0aaeb50  libgcc/config/nds32/isr-library/vec_vid24_4b.S
! eba6b11ecb25a9efe409ca854d956fc6  libgcc/config/nds32/isr-library/vec_vid25.S
! 92450bb212d1251a936cafad3bbb9007  libgcc/config/nds32/isr-library/vec_vid25_4b.S
! 20794c64ead0a27ff6f2c1a24b95fea5  libgcc/config/nds32/isr-library/vec_vid26.S
! c40e34c2b5f51e73dc22ee3bba1fcc30  libgcc/config/nds32/isr-library/vec_vid26_4b.S
! e23ea0fb437ea70aee3bc05a1d666fba  libgcc/config/nds32/isr-library/vec_vid27.S
! 1180b12ebcf92cd56c3fe92c593d19e6  libgcc/config/nds32/isr-library/vec_vid27_4b.S
! f3bcaea8cc6e01d7d2c091f972d0803b  libgcc/config/nds32/isr-library/vec_vid28.S
! 20ee32d43a07a7c67ae739efcd571968  libgcc/config/nds32/isr-library/vec_vid28_4b.S
! b4b049003546a0e4f7cfb8cfc480855c  libgcc/config/nds32/isr-library/vec_vid29.S
! 0a6a09c977d37878ce8b903943a4ecb8  libgcc/config/nds32/isr-library/vec_vid29_4b.S
! 09ecd76bed5b84f230db320d56a3b9d7  libgcc/config/nds32/isr-library/vec_vid30.S
! 763daa6a78de9bcf5f70f86c84835c0c  libgcc/config/nds32/isr-library/vec_vid30_4b.S
! ccb00bd656eea9f932d191126417c73b  libgcc/config/nds32/isr-library/vec_vid31.S
! 662775185e0d7208a6d1f3810d180129  libgcc/config/nds32/isr-library/vec_vid31_4b.S
! ea2c8ed47fb4211237bbbebd0fca7842  libgcc/config/nds32/isr-library/vec_vid32.S
! 2ff7d0a65114ebd7780702441d165092  libgcc/config/nds32/isr-library/vec_vid32_4b.S
! 75e6d823358a7b7bcd43dd25e80f6edc  libgcc/config/nds32/isr-library/vec_vid33.S
! 583aa25c402e423c02fb0a9c4f44fbca  libgcc/config/nds32/isr-library/vec_vid33_4b.S
! 175dc2ffa0ef474d0e590ed5ae50c045  libgcc/config/nds32/isr-library/vec_vid34.S
! a04b71519b3cc0f2038fc93c6068391f  libgcc/config/nds32/isr-library/vec_vid34_4b.S
! 920618e84346588bab08779546fcf665  libgcc/config/nds32/isr-library/vec_vid35.S
! 717c61fd83cd1e10282b58d266165d6b  libgcc/config/nds32/isr-library/vec_vid35_4b.S
! cd539a54807e05da51705cabf8e8e74d  libgcc/config/nds32/isr-library/vec_vid36.S
! d7dc485bba7708ad6f43f426d8536483  libgcc/config/nds32/isr-library/vec_vid36_4b.S
! 5a7843f4be30a540ccc392408699c9b1  libgcc/config/nds32/isr-library/vec_vid37.S
! a41e2455480bd5552667674a0f7d8188  libgcc/config/nds32/isr-library/vec_vid37_4b.S
! d32fe063e6f54890bc3efd0786581114  libgcc/config/nds32/isr-library/vec_vid38.S
! d8a37a1909b43598a63ff59ec7fa1a8d  libgcc/config/nds32/isr-library/vec_vid38_4b.S
! de084bef996187f95e8159cca83d75f3  libgcc/config/nds32/isr-library/vec_vid39.S
! 1f4aa3116c0e848d6010b1b6b4ac75a7  libgcc/config/nds32/isr-library/vec_vid39_4b.S
! 09f6fc547465e852a03b9f4dc8a3dabf  libgcc/config/nds32/isr-library/vec_vid40.S
! 1e761230f4670ef10f5e47233dd27aef  libgcc/config/nds32/isr-library/vec_vid40_4b.S
! e4d33d77c1a7ce53cae5d29d02eddf32  libgcc/config/nds32/isr-library/vec_vid41.S
! 11ae2fdcff0d153bc8356c7be593926f  libgcc/config/nds32/isr-library/vec_vid41_4b.S
! 767137f6851ab7f6a836cb6cea102294  libgcc/config/nds32/isr-library/vec_vid42.S
! 66a5c4a57c4ceaa53786cc87ce01498c  libgcc/config/nds32/isr-library/vec_vid42_4b.S
! 9a6529f5c308be2bd3cfa957d01df452  libgcc/config/nds32/isr-library/vec_vid43.S
! 4a7fb65a767ca4dc1a578c6190281e8c  libgcc/config/nds32/isr-library/vec_vid43_4b.S
! e9c77ac6dc478d455b19756da70b182c  libgcc/config/nds32/isr-library/vec_vid44.S
! 93c175cfbdc1f0a78a20b4800abdfce4  libgcc/config/nds32/isr-library/vec_vid44_4b.S
! aec2514e6756340e108776165daa0b78  libgcc/config/nds32/isr-library/vec_vid45.S
! dd9d8a74e397c03933f4887b9bb7ac4e  libgcc/config/nds32/isr-library/vec_vid45_4b.S
! 0093c26d5004a5b646aea972486a65e6  libgcc/config/nds32/isr-library/vec_vid46.S
! bc1790c859dcd0136a3cb7e67970075c  libgcc/config/nds32/isr-library/vec_vid46_4b.S
! b4022c0986f88a1273915ff53d78b9ad  libgcc/config/nds32/isr-library/vec_vid47.S
! 12be77c40399407f703a879c7835bece  libgcc/config/nds32/isr-library/vec_vid47_4b.S
! 6d37390ff70328267f39afe991a501ba  libgcc/config/nds32/isr-library/vec_vid48.S
! 162f20b61940230ddbde92d4599e3f74  libgcc/config/nds32/isr-library/vec_vid48_4b.S
! 16d10221cdb8be47d44829c9badf07c5  libgcc/config/nds32/isr-library/vec_vid49.S
! 62eaabf8e8327717bd2824d73093aad0  libgcc/config/nds32/isr-library/vec_vid49_4b.S
! 20b4e45964dfb12e371e8f63681ebec3  libgcc/config/nds32/isr-library/vec_vid50.S
! defaa1cd24270e9c2c70c862a04dc45b  libgcc/config/nds32/isr-library/vec_vid50_4b.S
! 8a00f38ec32cf406821ff70675ba3ef8  libgcc/config/nds32/isr-library/vec_vid51.S
! 6a197ea8f9f751dc90cc176d83685629  libgcc/config/nds32/isr-library/vec_vid51_4b.S
! 275fe876e83d990ba3058700e5a2f35c  libgcc/config/nds32/isr-library/vec_vid52.S
! 0d4c884cfd403c90d4209f3ecd20efff  libgcc/config/nds32/isr-library/vec_vid52_4b.S
! a3c1a67ec64c92dd94a55ae580f9f874  libgcc/config/nds32/isr-library/vec_vid53.S
! 1ec33477c7e8f8f5ee53bc499d2bf524  libgcc/config/nds32/isr-library/vec_vid53_4b.S
! b0f538d8ac6fc8a0112e3a6aee68466f  libgcc/config/nds32/isr-library/vec_vid54.S
! 5a9a47be825ae764795c2ceec94bd8bd  libgcc/config/nds32/isr-library/vec_vid54_4b.S
! 1556676e4582439e7c2d03b774abf588  libgcc/config/nds32/isr-library/vec_vid55.S
! 61607cc07f19d03cc9ec5cfa31c2912d  libgcc/config/nds32/isr-library/vec_vid55_4b.S
! 2c05f50d80ebbcdc5a3cc2ad95ba01a9  libgcc/config/nds32/isr-library/vec_vid56.S
! 14f2088117084603f7a6bdf15e97119e  libgcc/config/nds32/isr-library/vec_vid56_4b.S
! 4f3d3da78478ae9ddcc87ac51d55c082  libgcc/config/nds32/isr-library/vec_vid57.S
! 3f9c1a114d254ba7888b28aaffd83124  libgcc/config/nds32/isr-library/vec_vid57_4b.S
! f4206d4377abe963b6fff304289a4751  libgcc/config/nds32/isr-library/vec_vid58.S
! 88aab9b04167d69a1b42d29e69839486  libgcc/config/nds32/isr-library/vec_vid58_4b.S
! 377370de16ad4c89758f99a6dcd53f0d  libgcc/config/nds32/isr-library/vec_vid59.S
! c3d44ce15e88e30c19b8f689c8fe4ad4  libgcc/config/nds32/isr-library/vec_vid59_4b.S
! d6d53edb9f45043d518c2048d93b7d27  libgcc/config/nds32/isr-library/vec_vid60.S
! 740ca4f97e231681de7fd91b0a7aa022  libgcc/config/nds32/isr-library/vec_vid60_4b.S
! d58e43b03e84707ff13c430700f1f4b3  libgcc/config/nds32/isr-library/vec_vid61.S
! c55605094d5423b16e1732a30f396529  libgcc/config/nds32/isr-library/vec_vid61_4b.S
! 7222a0b29d12b1573b81e86c0b5a94c0  libgcc/config/nds32/isr-library/vec_vid62.S
! f7577f6e53cbf81d8cd3447b43250053  libgcc/config/nds32/isr-library/vec_vid62_4b.S
! b7486896bbd3fead6e09c690cd7e622e  libgcc/config/nds32/isr-library/vec_vid63.S
! f2725e4d73aab3ba5f626bc7535caba1  libgcc/config/nds32/isr-library/vec_vid63_4b.S
! 454a33c3efc1cc57e94b8dcd6e8c8e83  libgcc/config/nds32/isr-library/vec_vid64.S
! f329c5576ae0365c2c6434086b9a890b  libgcc/config/nds32/isr-library/vec_vid64_4b.S
! 15fe966394df71570264067fa619d60f  libgcc/config/nds32/isr-library/vec_vid65.S
! 4af2174e8e362662c436f4ce23439abf  libgcc/config/nds32/isr-library/vec_vid65_4b.S
! 351746ba411eaf42364cca85b9d6cf68  libgcc/config/nds32/isr-library/vec_vid66.S
! 7dc7dff996b877adde3c37374469cc5a  libgcc/config/nds32/isr-library/vec_vid66_4b.S
! 4ac1069054e1bc11131d8aee5818e184  libgcc/config/nds32/isr-library/vec_vid67.S
! 860b328b081b8c19578ddb536b2d8136  libgcc/config/nds32/isr-library/vec_vid67_4b.S
! 1a6d12e1482ae58855d19098a0dd6d03  libgcc/config/nds32/isr-library/vec_vid68.S
! f81c7f293fd10294ed511926b44a78de  libgcc/config/nds32/isr-library/vec_vid68_4b.S
! b999cff01dd64efb26ae69e2fc4cf0b7  libgcc/config/nds32/isr-library/vec_vid69.S
! 20833c5b721684879a6bb148975fa9ba  libgcc/config/nds32/isr-library/vec_vid69_4b.S
! 854bfd9999c4e7bbd5de3fe9f39dabb2  libgcc/config/nds32/isr-library/vec_vid70.S
! 84ba0e6a2f68b5c0d66b9eb25d33e33a  libgcc/config/nds32/isr-library/vec_vid70_4b.S
! 5c5d9ad4a46128c682007059e522e304  libgcc/config/nds32/isr-library/vec_vid71.S
! 1083b78469b3c719cbb68a439a554248  libgcc/config/nds32/isr-library/vec_vid71_4b.S
! ec717abc73e8a1fc18ff0234d807981a  libgcc/config/nds32/isr-library/vec_vid72.S
! be06796451e065308a2234c626d3e0fa  libgcc/config/nds32/isr-library/vec_vid72_4b.S
! 2a0dd832f81b648c2ca4c09cd59e668e  libgcc/config/nds32/isr-library/wrh.S
! 0d918b92345b354c42f5de0469754b6b  libgcc/config/nds32/lib1asmsrc-mculib.S
! 330918a0fddcc567a296aa55bf00bb0a  libgcc/config/nds32/lib1asmsrc-newlib.S
! 79388641c3a2bdb24ab2c73b8c9957be  libgcc/config/nds32/lib2csrc-mculib/_clzdi2.c
! e14c48dea2dc84b60b3cc0bcedc53daf  libgcc/config/nds32/lib2csrc-mculib/_clzsi2.c
! 9b84ef6eecb7a85cbe0a9bd607bd1141  libgcc/config/nds32/linux-atomic.c
! 341f225b4a2102958dd3a39d0b67f8a8  libgcc/config/nds32/linux-unwind.h
! 18cf9adf64a217a86d8b90653bd1fc4b  libgcc/config/nds32/sfp-machine.h
! 556ccd8d77577ed2df7f4ca775bffd73  libgcc/config/nds32/t-nds32
! d4c2f1c818158b34b263648078e1bee1  libgcc/config/nds32/t-nds32-glibc
! 2e1b10e179bb9d9d2c5c0f2b6b14e28a  libgcc/config/nds32/t-nds32-isr
! 96cb5d33a924acf6029e2c97f0697de2  libgcc/config/nds32/t-nds32-mculib
! fd43a3db98b5fd6ab0330cfa2f0916e8  libgcc/config/nds32/t-nds32-newlib
  d554f3fc7ee3cecc697c448b8c5f61bb  libgcc/config/no-sfp-machine.h
  ec92cffa46d4d29b40309d537f263c3d  libgcc/config/no-unwind.h
! e6fcdf113f3a6ab299a7a7fb0b0297f8  libgcc/config/nvptx/alloca.c
! 6dd2355da200c25011a5ced915b9c6d8  libgcc/config/nvptx/atomic.c
! dde6b5d6d8c16bb314241baedca1cd80  libgcc/config/nvptx/crt0.c
! 92a52b9671a3008066e7b560a035b31e  libgcc/config/nvptx/gbl-ctors.c
! e100483ea136af9350c3142d3af557b0  libgcc/config/nvptx/mgomp.c
! e74d1532ea0c4afe77819a33fd6760f7  libgcc/config/nvptx/nvptx-malloc.h
! 28e895bf14647e79e6e6e43cbd729ad8  libgcc/config/nvptx/reduction.c
  aa62ff00e16b110cc225550ac5eaa389  libgcc/config/nvptx/t-nvptx
! d8c53120b57f3156fc6f27ac69154fbc  libgcc/config/nvptx/unwind-nvptx.c
! ac42145e54e7b452a7af19f74d4cc6f3  libgcc/config/or1k/lib1funcs.S
! 478fb9965be90dafd2c23e443e022d6b  libgcc/config/or1k/linux-unwind.h
  bb60ec15ea01e2d3f07f2b944b739c6d  libgcc/config/or1k/sfp-machine.h
  dc51b5d6e7fd35fa1156670d20c6464d  libgcc/config/or1k/t-crtstuff
! d8c0cf3327ffe0d187c4b4196a025135  libgcc/config/or1k/t-or1k
! 5eaced7c84cef9be377887e46fe16e42  libgcc/config/pa/fptr.c
! f274e1b54fc3bba9a902b6b0af5b9756  libgcc/config/pa/gthr-dce.h
! 14e7d9ffefa5bee28e71d83e08d27f39  libgcc/config/pa/hpux-unwind.h
! 7a1f592d3a6ac475266f16c9d21c58b6  libgcc/config/pa/lib2funcs.S
! 2abf2516b24fec1f4162ee3f6ea7c490  libgcc/config/pa/linux-atomic.c
! 67457d355ef432c004aa26222e511eab  libgcc/config/pa/linux-unwind.h
! 508ba32ca716d1f12ae4b339c1877b11  libgcc/config/pa/milli64.S
! 8892e90bcf735bda9c336a7843d6a581  libgcc/config/pa/pa64-hpux-lib.h
! 300a754ab37a72c6eb7e352929f0b584  libgcc/config/pa/quadlib.c
! da60fe0318ed51a76e43cc72abfe9863  libgcc/config/pa/sfp-exceptions.c
! e5c96df365922d7b7addc10153d91325  libgcc/config/pa/sfp-machine.h
! 662e04d3f9fb20bc9dce2bdd0ad68a67  libgcc/config/pa/stublib.c
! d48335775a99b895281f8fd9c5ffc8a2  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
*** 119750,119899 ****
  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
--- 132984,133137 ----
  cb3abad4947b17ef27c99d92fdcb14ae  libgcc/config/pa/t-pa64-hpux
  8b6e1d4848a895dd9e8e030f638c68bc  libgcc/config/pa/t-pa64-linux
  6b7616abedce76aaa866d73b08ea3a07  libgcc/config/pa/t-slibgcc-dwarf-ver
! 905cd0eab77d3a7e4dfa8eec34a774c1  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
! ad448fd1a7aecbbcf6f75516cf530fcc  libgcc/config/pru/asri.c
! d8718c0f391b174cf05507780f0be9e3  libgcc/config/pru/eqd.c
! ae57728f9c8f8b492098dc54871f72e7  libgcc/config/pru/eqf.c
! e5c241024841daf8e426dcc819504f29  libgcc/config/pru/ged.c
! 215dd1f7b6b494b2b4bfba3f42ce2aad  libgcc/config/pru/gef.c
! c221864a97d11ca19aa99027ad610bd9  libgcc/config/pru/gtd.c
! 11e09a5513fa05531bad26122ffe615f  libgcc/config/pru/gtf.c
! 73926b3857a5c31a737265f5e2b91277  libgcc/config/pru/led.c
! d7040d22033141ee4d3dc98937c8d52a  libgcc/config/pru/lef.c
! 0e3cb464a38d69d5287da7388cb7889d  libgcc/config/pru/lib2bitcountHI.c
! 00b2be6f1d9d8dd2500b46d60fff46ff  libgcc/config/pru/lib2divHI.c
! 5a4210807c2e534add313f3eb517396e  libgcc/config/pru/lib2divQI.c
! 9a668d199d7eb297a677a3c4477bef40  libgcc/config/pru/lib2divSI.c
! bd0810769d1728c34b7510523983527c  libgcc/config/pru/libgcc-eabi.ver
! f3d2ef4fd59616b8101ee077efec9414  libgcc/config/pru/ltd.c
! 89951edc667f8a7f31fd4a15e62ef697  libgcc/config/pru/ltf.c
! 50f2dd281c7b49a4f1d0a99bb75431d9  libgcc/config/pru/mpyll.S
! 0e9f1c55f487571ef91788fb00a8ec33  libgcc/config/pru/pru-abi.h
! d080e7a9b182050308bd9e3f0b913c10  libgcc/config/pru/pru-asm.h
! d0b4b1584dee84f7ed9300e418309c3d  libgcc/config/pru/pru-divmod.h
! 0bcd2ab1dd4662e043151ba416205f1c  libgcc/config/pru/pru-softmpy.h
! c05670c7e3220752532c3f5e3bb9d48d  libgcc/config/pru/sfp-machine.h
! 8ef3008a2af5d7001616fcf9146d1679  libgcc/config/pru/softmpyi.c
! 8e4591019315d12f316544520eecee02  libgcc/config/pru/softmpyll.c
! c960bc1aadd69e70d258d04a7ff126ca  libgcc/config/pru/t-pru
! bbd10af0f21bbb60b8dcb578d21ea8fc  libgcc/config/riscv/atomic.c
  b542071feaa6f1914ec810a91b9f0e4c  libgcc/config/riscv/crti.S
  196894f3e59520659e3b0ba14bb0a903  libgcc/config/riscv/crtn.S
! 3e8b5b53e342b916e5c14f9af338c109  libgcc/config/riscv/div.S
! 67914451f9c65710da65b5591b7258f9  libgcc/config/riscv/feature_bits.c
! 3c665a373e2a4309fc79a25e5b436964  libgcc/config/riscv/libgcc-riscv.ver
! ee6e30cc4a2ad7734a1c0eacad56a515  libgcc/config/riscv/linux-unwind.h
! fc4c3defc96f140cf5aa4a7b4a7dfc66  libgcc/config/riscv/muldi3.S
! 6a68829fa4d831c59952a264493ef982  libgcc/config/riscv/multi3.c
! 27e38b45cfa94d497de1cede54cd01b1  libgcc/config/riscv/riscv-asm.h
! 94067f223e92b56236b52847fd08d15d  libgcc/config/riscv/save-restore.S
! 60944ffcad92e815a9715ccbea473084  libgcc/config/riscv/sfp-machine.h
! 5e6a952ca0fa2349ad7d76b565673e70  libgcc/config/riscv/shadow-stack-unwind.h
  6a8be20744258bc3c31a34df112164ce  libgcc/config/riscv/t-crtstuff
! 4f61b4ac6ab5e5d0335936ea1738fc53  libgcc/config/riscv/t-elf
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf32
  02fdd22ff5d39903f17ad235a8fe0f65  libgcc/config/riscv/t-elf64
! ab808d72bbcb655af7c3892635a1ccad  libgcc/config/riscv/t-softfp32
  d687514a08d797924d3d6e5d3fb2fd84  libgcc/config/riscv/t-softfp64
! 85f94042fd6a8e289b99aa9bfff8f164  libgcc/config/riscv/value-unwind.h
! cbcc02cecd8e74d406d6a657271883bf  libgcc/config/rl78/adddi3.S
! b7c02f40d7e682452aee286a2fd90032  libgcc/config/rl78/anddi3.S
! 9a0ef3f58ecffbe92e8dae1d07b7301c  libgcc/config/rl78/bit-count.S
! 292b52a4ea5fd8578f24ff49d9bf7bfd  libgcc/config/rl78/cmpsi2.S
! 956c6cf5175bbd422da456889af4a776  libgcc/config/rl78/divmodhi.S
! 997ce9deb6eb9fbb97b151acb3c32731  libgcc/config/rl78/divmodqi.S
! 0d47f228083ed3bf06da66321a299b97  libgcc/config/rl78/divmodsi.S
  63e9b57af30110b61c3221ba465e2c5b  libgcc/config/rl78/fpbit-sf.S
  9099dff71d89768f77ed3ef7908d4265  libgcc/config/rl78/fpmath-sf.S
! bc7b73d009f0111f79145b7a407a1696  libgcc/config/rl78/lib2div.c
! b20f431caa9c83b57b0bfc3d05d6004c  libgcc/config/rl78/lib2mul.c
! 8d9295422f9d7d3b9ca63ecfb8464bce  libgcc/config/rl78/lib2shift.c
! 8fa36ae4eddcff9acb93eb00f56010f8  libgcc/config/rl78/lshrsi3.S
! 16c127b8b748cfd69899fbd98a79459b  libgcc/config/rl78/mulsi3.S
! 0cdd07f3cd20f7b6cf778c52287ab563  libgcc/config/rl78/rl78-divmod.h
! f4d300261fd7993e62ad80eba2e3fa71  libgcc/config/rl78/rl78-mul.h
! ce62763021de6ec12c6aefbde7c71f6f  libgcc/config/rl78/signbit.S
! 2fa36b7cd0fa209ff3dd9461d5fc9163  libgcc/config/rl78/smaxdi3.S
! e06df6eba629ed678436b2cee0036290  libgcc/config/rl78/smindi3.S
! 956829e9f9a20533c2ef36c82fcb0dcf  libgcc/config/rl78/subdi3.S
! 0b177b2bddb4ee958ade2916f4b976d0  libgcc/config/rl78/t-rl78
! 1f42e4e48dae5b96068b05d172eafa44  libgcc/config/rl78/trampoline.S
! 9f73d73540b4937b0ae4e105245fb30c  libgcc/config/rl78/umaxdi3.S
! 6448ecb265bd9c2924bd12e862a310d9  libgcc/config/rl78/umindi3.S
  3fa1ffbe8b56d5173efea2ee2def55f3  libgcc/config/rl78/vregs.h
! 77b6859fa94891274157d1a9dd2799ac  libgcc/config/rs6000/_dd_to_kf.c
! 0affcb657d007229a2c38d0dd2dff768  libgcc/config/rs6000/_divkc3.c
! f4127feb71e75747228581338cb354c0  libgcc/config/rs6000/_kf_to_dd.c
! f08dc9ac8344230674c9a491431d68a0  libgcc/config/rs6000/_kf_to_sd.c
! 058ddd7344c6dada8b1af74044333966  libgcc/config/rs6000/_kf_to_td.c
! c32ad6261404b1f7610f842d22ad80b2  libgcc/config/rs6000/_mulkc3.c
! 6aca74c75990d80be7269ce8dc989823  libgcc/config/rs6000/_powikf2.c
! 30062befb26bae825ac64cca14802185  libgcc/config/rs6000/_sd_to_kf.c
! 95e1df1330be6f4f86c5f23d8bc63f28  libgcc/config/rs6000/_td_to_kf.c
! 8f2548f169c16ab69448a778cc1076dc  libgcc/config/rs6000/aix-unwind.h
  737841f917469789a5f925e6f08da1de  libgcc/config/rs6000/aixinitfini.c
! 46a33eddc0c2aa10ccf33c2f3c53e1ae  libgcc/config/rs6000/atexit.c
! eb58fca3bcc563285fa426166173a2e8  libgcc/config/rs6000/crtcxa.c
! 4e3f670d5467e859db267ecfbe2156b6  libgcc/config/rs6000/crtdbase.S
! c2eca875335ee47eaab2a65eba3c4b28  libgcc/config/rs6000/crtresfpr.S
! 52b106071d1df20cce53dc79479b5a13  libgcc/config/rs6000/crtresgpr.S
! 78eeca4d6dcf4e860f4caa1c0ede91f0  libgcc/config/rs6000/crtrestvr.S
! 370bfc5a786877c91350f70271fb4db2  libgcc/config/rs6000/crtresxfpr.S
! d1b3b93699b68aa28450122918aad8f9  libgcc/config/rs6000/crtresxgpr.S
! a9cbf74afb82fee0327b5cc99baba56f  libgcc/config/rs6000/crtsavevr.S
! 30115c6d45af193e54416c3926ae135f  libgcc/config/rs6000/crtsavfpr.S
! 0aaa0fe30be244d2aebf24ce3bfc13be  libgcc/config/rs6000/crtsavgpr.S
! b73b80478c52ace2584db9bf64108fef  libgcc/config/rs6000/cxa_atexit.c
! aa3e8ac63c6ad9f1adab63a9f0955171  libgcc/config/rs6000/cxa_finalize.c
! d07fb8bd7d1b48ee6b3ac98ee027e8e8  libgcc/config/rs6000/darwin-asm.h
! baa8676c7196e2d969c6f0220a59d5e9  libgcc/config/rs6000/darwin-crt2.c
! a92d5cd9154f4abe67523d65982a9c75  libgcc/config/rs6000/darwin-fallback.c
! bbac2bba540bf6b2879ef41e6ff08b95  libgcc/config/rs6000/darwin-fpsave.S
! eec669e9ec610b6f4c53663229fb6e87  libgcc/config/rs6000/darwin-gpsave.S
! ba4bc545935d7de72310e4d9cf9c6378  libgcc/config/rs6000/darwin-tramp.S
! 6355822f48b74670506378488185ed5b  libgcc/config/rs6000/darwin-unwind.h
! f46c2d38350974e9583df23561235720  libgcc/config/rs6000/darwin-vecsave.S
! 69ce531b8756bf1e0095378ef88ddc31  libgcc/config/rs6000/darwin-world.S
! 64f50992eec190a89251d5cfc39b8b22  libgcc/config/rs6000/eabi-ci.S
! 0b006b5cbebf5eebd2f773be80d80aec  libgcc/config/rs6000/eabi-cn.S
! 02411a254141c56ccfff1b88bb7c341b  libgcc/config/rs6000/eabi.S
! 1d3fcc163ec53790d63fecdef24df19b  libgcc/config/rs6000/exit.h
! 7039271df687e12ebc24c95615d536d9  libgcc/config/rs6000/extendkftf2-sw.c
! a400f71a1b20289f7e2c4f37d6b09793  libgcc/config/rs6000/fixkfti-sw.c
! 42c45d9d3fe8a5d3b8d697e97eb36dc1  libgcc/config/rs6000/fixunskfti-sw.c
! 6fbb2ab31cc2f9ca25241ea921571fd2  libgcc/config/rs6000/float128-hw.c
! c5309a70293955dea53c88aeb464a1f1  libgcc/config/rs6000/float128-ifunc.c
! e8b89a67d7ba7a2256585eb4ee5697f7  libgcc/config/rs6000/float128-p10.c
  82156c171c8648f2863486505efc417a  libgcc/config/rs6000/float128-sed
  81d8bfdd9028f651e74357a59a1352c5  libgcc/config/rs6000/float128-sed-hw
! 9412d215bbd3c7fdc99b7840c7a93e07  libgcc/config/rs6000/floattikf-sw.c
! d1a6d296ffe24d2d307d3d951389b78d  libgcc/config/rs6000/floatuntikf-sw.c
! 9192ddb6b9a4d5d5b70a9ed247a85ba7  libgcc/config/rs6000/freebsd-unwind.h
! b2925b4070fc026bfd8df0721cd21812  libgcc/config/rs6000/gthr-aix.h
! ae38b68c16f67c8876bed97ac24d94bf  libgcc/config/rs6000/ibm-ldouble-format
! 4bdbbe0e2d36da299ac616847a225d9f  libgcc/config/rs6000/ibm-ldouble.c
  13bc252ed5254cf124822256760c6df0  libgcc/config/rs6000/libgcc-aix-cxa.ver
! 15c726e6c820053d3927f88305cdaa2c  libgcc/config/rs6000/libgcc-glibc.ver
  7aa6f4e782960be3e2b43998ef395330  libgcc/config/rs6000/libgcc-ibm-ldouble.ver
! adfe3ad7f29abe3695866d36a8f191f6  libgcc/config/rs6000/linux-unwind.h
! b8440f62f9652a61fc16f4d1d201ae25  libgcc/config/rs6000/morestack.S
! f383b7f0d6fa030f4ddebff3074c7a07  libgcc/config/rs6000/on_exit.c
! 8f04730205abdfde0f109969bbd8cb35  libgcc/config/rs6000/quad-float128.h
! 9d7e5315e6162368cd98367a25c7a7f3  libgcc/config/rs6000/sfp-exceptions.c
  c1f1e19bec1207af89205304d8d3a6b4  libgcc/config/rs6000/sfp-machine.h
! 8bf6b844bd6a1d955a60a03e49870f01  libgcc/config/rs6000/sol-ci.S
! 1d59ed8c98e209bb49937fdba2083ef3  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
! ca9b0f06644ab5f8527cd05c4552bc51  libgcc/config/rs6000/t-e500v1-fp
! 3c6522d5132a0e84edf60174097054af  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
! 5dcc535955524228cfaeaa5ac437a3fc  libgcc/config/rs6000/t-freebsd
  4976aac1da0b181cf133fe8ef7243000  libgcc/config/rs6000/t-freebsd64
  565e9d6288ad496063af26b57e5fa264  libgcc/config/rs6000/t-ibm-ldouble
  ecf2c7e327e9df4e94343352b59b9fd2  libgcc/config/rs6000/t-linux
*************** ad6ae6684d4dec9ddd78efad67d1af4b  libgcc
*** 119902,119963 ****
  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
--- 133140,133208 ----
  a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-ppc64-fp
  bd7ceb31787a37d9cb144c41d41acfb3  libgcc/config/rs6000/t-ppccomm
  9583a9aed217116e54bc90a5464e493e  libgcc/config/rs6000/t-savresfgpr
! fbcd1b53c07e79de85bcd713be00c47f  libgcc/config/rs6000/t-slibgcc-aix
  1d9dab8390b84ff0de504beefb72ce61  libgcc/config/rs6000/t-stack-rs6000
  04581882e1764bcc2a4240b21f3eaa8a  libgcc/config/rs6000/t-vxworks
! ce1b53586821480cfac4963c90e9c20a  libgcc/config/rs6000/tramp.S
! d820380e8f0e706ecb940aa6bd3430b6  libgcc/config/rs6000/trunctfkf2-sw.c
! 728d78f2aa9a8c7787048dfa2dbc3705  libgcc/config/rx/rx-abi-functions.c
! eb8c88f2a2dc84128599645db8f106d3  libgcc/config/rx/rx-abi.h
  da7bc70013c60be91cf9f085fed52f1a  libgcc/config/rx/rx-lib.h
! 0be6cfdd32c91fdfd53e4e590b21d32b  libgcc/config/rx/t-rx
! da4583caf892ab676e6a243852b2983e  libgcc/config/s390/32/_fixdfdi.c
! a9287ad6b7fdfb20ff33210a47225c5c  libgcc/config/s390/32/_fixsfdi.c
! 3f60b01be997cbb7ccdb85421107b7a4  libgcc/config/s390/32/_fixtfdi.c
! 8fdb07fa02c7693bb79243f95e544531  libgcc/config/s390/32/_fixunsdfdi.c
! 5defb1b495fb879f9cf2caa04dd984c4  libgcc/config/s390/32/_fixunssfdi.c
! fd70b3c9f0caf175f5e2f1321b478aa3  libgcc/config/s390/32/_fixunstfdi.c
  6101649604e2b3fdd6179e1aa53066bf  libgcc/config/s390/32/t-floattodi
! 8ab7e1ebe8eecf3039ed500965fbc901  libgcc/config/s390/_dpd_dd_to_hf.c
! 059ae505b5f6fe229f83bcd90ad6cb6e  libgcc/config/s390/_dpd_hf_to_dd.c
! 36dae53ac8e8b37ee6b5dea385d4a4e6  libgcc/config/s390/_dpd_hf_to_sd.c
! f2f887c98a90e240096bd5c7d9073820  libgcc/config/s390/_dpd_hf_to_td.c
! 73fe14c571f67378a5a7f1a6fd7e68bc  libgcc/config/s390/_dpd_sd_to_hf.c
! ff1ad91822a4ed7441b0ae894f5f6cf4  libgcc/config/s390/_dpd_td_to_hf.c
! 35e2a29d0b5449790b3d6bf986a3219b  libgcc/config/s390/gthr-tpf.h
! fb117289ee8148eccf8fca824a5afebd  libgcc/config/s390/libgcc-glibc.ver
! b9d76026e9b4a32ec5abeea952e67920  libgcc/config/s390/linux-unwind.h
! d2ecaafa0415f409b5cf3fe193aa01fc  libgcc/config/s390/morestack.S
! 0b9515e3a218241a90278da06fa8c3d8  libgcc/config/s390/sfp-exceptions.c
! ca9e2d051c98251181478b44ec2d0541  libgcc/config/s390/sfp-machine.h
  c150e28c734710584eba8e77d2ff5105  libgcc/config/s390/t-crtstuff
+ 1a60eb262e18463fd779de57ffec3634  libgcc/config/s390/t-float16
  35a77f8c50ecf16802e00e647ad94026  libgcc/config/s390/t-linux
+ 2d73696e709dc45882770d472b3c5e7a  libgcc/config/s390/t-softfp
  26d353eea9229af01124cc46b2e0cebd  libgcc/config/s390/t-stack-s390
  a5218871642ae69c55b0e826c41f3798  libgcc/config/s390/t-tpf
! 4c1933aa0bbf17fd9229ac9308b991c3  libgcc/config/s390/tpf-unwind.h
! 2e3aae3366b3f415abf3329840392139  libgcc/config/sh/crt.h
! 226dc5b6e5113a4d18dc793631be729a  libgcc/config/sh/crt1.S
! 6b2d8e84c3d037e87d55b64f49552091  libgcc/config/sh/crti.S
! e24daac51efabe4622686956cb1d4a38  libgcc/config/sh/crtn.S
! e2898d41c0d982b164419ce2b4b338a5  libgcc/config/sh/lib1funcs-4-300.S
! 1a252c0f6bbee0ccc8999b5bb4bff331  libgcc/config/sh/lib1funcs-Os-4-200.S
! 5b083cb9056d0ab37e4b995809a2b855  libgcc/config/sh/lib1funcs.S
! b989dc4a5675da100a06c1d2801712d6  libgcc/config/sh/lib1funcs.h
  68ddef94ef228a2e500c6f84ca5c5f73  libgcc/config/sh/libgcc-excl.ver
! cb7e5f69e419fbe3571d14d99d9129d5  libgcc/config/sh/libgcc-glibc.ver
! 6e2bb306adf9df46d6750d1d64fa4e5d  libgcc/config/sh/linux-atomic.c
! 6cc51070b7b909fe713484a3dca67c71  libgcc/config/sh/linux-unwind.h
! d860aa630d1c6266e6b5197bd48b4eeb  libgcc/config/sh/sfp-machine.h
  d915cb58faa1ad2108733b662853057e  libgcc/config/sh/t-linux
  be1b06de574a22c34d2cf93d2d68a4f1  libgcc/config/sh/t-netbsd
! 0f8f22b67bf612a0ac0f6f4d8ecdee20  libgcc/config/sh/t-sh
  00d4a30e4ed4a68cd6ec53feb398914b  libgcc/config/sh/t-superh
! 5313f3cf3169c9872e20b6d092407b1e  libgcc/config/sol2/crtp.c
! a53a8d082f61ca60930e36b41cbe0eba  libgcc/config/sol2/crtpg.c
  ef474ec06ef2d3574f6a26ca419bc3fa  libgcc/config/sol2/gmon.c
! f277367a8a0c7fa22a13d3d0ee3bd041  libgcc/config/sol2/t-sol2
! b62705a160cd1e8153449cac615ec515  libgcc/config/sparc/crtfastmath.c
! c4a7395ad108741782369983b34c3997  libgcc/config/sparc/crti.S
! 970c584b2f1b14de13333b23a693d542  libgcc/config/sparc/crtn.S
  b2a26791cd6002e4af29a7fa32510b3b  libgcc/config/sparc/lb1spc.S
! 0db0ec7e20d16cf2ad09e88666a47db7  libgcc/config/sparc/libgcc-glibc.ver
! 56c4427b4e784477b6a1e6c6060fe306  libgcc/config/sparc/linux-unwind.h
! d42f724b5c6bdbb14995471b83234f8f  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
*** 119971,119982 ****
  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
--- 133216,133227 ----
  6cb0675d48c7276d43aa201bcc2fd60c  libgcc/config/stormy16/ctzhi2.c
  5bc65cdd345cb629c202f3e96a0410dd  libgcc/config/stormy16/divsi3.c
  3e736ac64edb45dddbedbcc751674354  libgcc/config/stormy16/ffshi2.c
! 90a9e0d0a6ea2ddffbe8b6285d91d33b  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
! f2476bc73792323ea5d2111aa4e0669c  libgcc/config/stormy16/t-stormy16
  ada9a39786da3b2e999f7440a17a1ed7  libgcc/config/stormy16/ucmpsi2.c
  0db895a315f3ea78e45253f9c2c8e7f8  libgcc/config/stormy16/udivmodsi4.c
  6dca6fc4737c716575c264f3934bb6d9  libgcc/config/stormy16/udivsi3.c
*************** e70c5d58ebf79fd5741ec98848df7f6f  libgcc
*** 120001,120026 ****
  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
--- 133246,133271 ----
  a5670d0218ee8d5011882573b6bd224b  libgcc/config/t-gthr-noweak
  925527af5cc046b48ad621a96e896dd3  libgcc/config/t-gthr-vxworks
  37f29328813c5ec6c35276b87457f6b8  libgcc/config/t-gthr-vxworksae
! 037621c6be25ee4200d5ecd740a8c8dc  libgcc/config/t-hardfp
! d12319931ec7c43a54e095bac31078c2  libgcc/config/t-hardfp-sfdf
  5b1981686da4ef8b1b62a20f10b3e715  libgcc/config/t-libgcc-pic
  5c40347f0b1274c8b5759d0ed9d1ccf8  libgcc/config/t-libunwind
! b44f00c02e7cc40f858e8ca1f092bb4d  libgcc/config/t-libunwind-elf
  397d06701a9c354f5606477c578c9efb  libgcc/config/t-linux
  eb3161bf886026cdcf8a78cea885fdd2  libgcc/config/t-openbsd-thread
  474d97884b393e08b0ce416dd09493bc  libgcc/config/t-rtems
! 885c0180bda1f152eb4f0e9beceaaf32  libgcc/config/t-slibgcc
  8f731e727bedf843e1a93e29493db712  libgcc/config/t-slibgcc-darwin
  57f27c60e5d8c572d2645821ec5935e0  libgcc/config/t-slibgcc-elf-ver
! 265b8de37b0831ef8d3774d34fe4d928  libgcc/config/t-slibgcc-fuchsia
  57e4154cb283fd7d9f323f5d85d534d9  libgcc/config/t-slibgcc-gld
  226b6f10bc32786901a79b070ed13468  libgcc/config/t-slibgcc-gld-nover
  429659ae1ff2531e3ba2fd0c676a320d  libgcc/config/t-slibgcc-hpux
! 501bccd51e3c56bcc4e8382e70dc5663  libgcc/config/t-slibgcc-libgcc
  b5d3fe85dff400a82befa6b901b438ec  libgcc/config/t-slibgcc-nolc-override
  bb217aa78bbf6b6a7c7844f73152110d  libgcc/config/t-slibgcc-sld
  ff76526856565673089b174b185fab45  libgcc/config/t-slibgcc-vms
! 8f30bfed0a658b61c1b975316bedde09  libgcc/config/t-softfp
  1ec9425eada0171d381f5f9b47b613a9  libgcc/config/t-softfp-compat
  72f41afb67b3c3c67809819763244452  libgcc/config/t-softfp-excl
  14ecf481060b3893ba43c6e09ff40eab  libgcc/config/t-softfp-sfdf
*************** ff76526856565673089b174b185fab45  libgcc
*** 120030,120130 ****
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
! 68f88180382d2f50fb3d44f917509325  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! 8b0cd746bfd3708d6d816cf9c516e0b7  libgcc/config/unwind-dw2-fde-darwin.c
! b79b6486bdd127f443c42df225c3411d  libgcc/config/v850/lib1funcs.S
  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
  b501abcd327c6d2c95f76d40d4266a4e  libgcc/soft-fp/adddf3.c
  305a99dae8d1353c9137371842d1a94a  libgcc/soft-fp/addsf3.c
  fe381f26f76f7f8998160bba0429aa49  libgcc/soft-fp/addtf3.c
! 862d968a37d0565154e76a6f60586445  libgcc/soft-fp/bitint.h
! d86da8fd88c560243cc2d5c29e7d9caf  libgcc/soft-fp/bitintpow10.c
  0df1c9dddd6ff4f1de4b75bb05f87fd7  libgcc/soft-fp/bitintpow10.h
  1b314340a7e13d053c2234216b9b01fe  libgcc/soft-fp/brain.h
  2386952f10f05ef43a443fcc7227885f  libgcc/soft-fp/divdf3.c
--- 133275,133375 ----
  685f35f0db36731a13637c087658e7a9  libgcc/config/t-tls
  65e3c91d5593e159fdbf46e423144f41  libgcc/config/t-vxcrtstuff
  f630928b0fcf5102209d333a5d7acf85  libgcc/config/t-vxcrtstuffS
! 3cdec1e237079820d8dd33834a3dcb7a  libgcc/config/t-vxworks
  5e8b7b7f8448bc376425f6f16054d9ff  libgcc/config/t-vxworksae
! 92516e3917e4dbd1d7664c0371a5f1ff  libgcc/config/unwind-dw2-fde-darwin.c
! b5ea00cab359eea8e882ebe6c7b4d630  libgcc/config/v850/lib1funcs.S
  015fdb6e6a2a23f553dc5105691f7a6a  libgcc/config/v850/t-v850
! c2bdc85d2fe86b37640ccab028566bc2  libgcc/config/vax/lib1funcs.S
  c668e63cf08f878538a0db39860696dc  libgcc/config/vax/t-linux
! 34a26d9439b2d6b33d69ea3628d48dca  libgcc/config/visium/crti.S
! 2a1e8a82f6ca02c00e0ada4a26379290  libgcc/config/visium/crtn.S
! 845f51993d98f1b29fab997d1a0a4b0a  libgcc/config/visium/divdi3.c
! a03e92d335ccd65df65a16a2b8a6acf9  libgcc/config/visium/lib2funcs.c
! 8dc80b03426e9a40e2355aef609640b5  libgcc/config/visium/memcpy.c
! 02e81d688fe9c6bad42598f641a8d39f  libgcc/config/visium/memcpy.h
! 02eb51aa89df0613f1f7f843dc32a91d  libgcc/config/visium/memset.c
! 9586d747d57f27841ff20874564d7c7a  libgcc/config/visium/memset.h
! b8b0924ea37ef3ecd03dc349ac45be69  libgcc/config/visium/moddi3.c
! d9d72608be0364c4896d2a5570aa8624  libgcc/config/visium/set_trampoline_parity.c
! bda8096001fdc2791ebf7cc0fd5bacae  libgcc/config/visium/t-visium
! f910a212f7e25e56008030d6f8aa0d88  libgcc/config/visium/udivdi3.c
! 80bb0db91cb0f3357cf6dba3d39372db  libgcc/config/visium/udivmoddi4.c
! c79755490b010c243f41eeac92547cf3  libgcc/config/visium/umoddi3.c
  9383115b20d4126cf07541b5d7bf6c2a  libgcc/config/vms/t-vms
! 1b8c86b5fb06b0f441a137da4a1f43d2  libgcc/config/vms/vms-ucrt0.c
  c8736f8e5c25d07733d84079727197a4  libgcc/config/vxcrtstuff.c
! f8bc09cb8871ed01af74f3975f1cddaf  libgcc/config/xtensa/crti.S
! 0f8a29501ec639200dd68aea8f98b016  libgcc/config/xtensa/crtn.S
! 1c8d564d5e60eaace048ca4fa2d208ab  libgcc/config/xtensa/ieee754-df.S
! fae587ccef899e7fe7113aee8be43020  libgcc/config/xtensa/ieee754-sf.S
! 70cb8efe4712b997271db139a315dac9  libgcc/config/xtensa/lib1funcs.S
! 3ee0f82efa90ce06b378c94027689c62  libgcc/config/xtensa/lib2funcs.S
  8074695f5eea7b961c59ee9608973dac  libgcc/config/xtensa/libgcc-glibc.ver
! 7a7ee0b52b31ac5a5cc39661eabf41de  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
! 3887e891f6c35841fabbfe9a8edfdb6a  libgcc/config/xtensa/unwind-dw2-xtensa.c
! f0d00382ed17e7f222caffb11bcfa0d7  libgcc/config/xtensa/unwind-dw2-xtensa.h
! 7ab9e3e4b42feb0139bf1fa67e0bfe36  libgcc/config/xtensa/xtensa-config-builtin.h
! c293429b560dc0967529687c611226ad  libgcc/configure
! ada1dfec3104d95e2861d12a284a8840  libgcc/configure.ac
! a5267c42def0d7d222389e49a1f25937  libgcc/crtstuff.c
! 93a24cef6f5e41c4aef0e0909cb4b9e4  libgcc/dfp-bit.c
! 8cfa5184dd2b0f09bbfb9f387c946c3b  libgcc/dfp-bit.h
! 2fecc571260aa16c719d284993a1304a  libgcc/divmod.c
! 74edcb54407568f7fcd15023cb2c0989  libgcc/emutls.c
  aa52a8f7cb881c00c125ed5fd04ed4df  libgcc/enable-execute-stack-empty.c
! 4762bbd641d834d1364ffcb248184290  libgcc/enable-execute-stack-mprotect.c
! f3533de28e3f4c8585bd12b22e5df388  libgcc/find-symver.awk
! 18c81b6bbf6ae39bf3ba28625f2ff1b8  libgcc/fixed-bit.c
! 56e4dd27a7bf3d78cc22fc3b2a5bdb67  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
! 42227fe9a1418139f90ebb7d47a5a182  libgcc/fp-bit.c
! 0d1c375f50466c263d922841982ff153  libgcc/fp-bit.h
! 7e3a483b82bb85dba20a252e5e8eb23d  libgcc/gbl-ctors.h
! 51b9eeca9e171ea1ad289eba008c2356  libgcc/gcov.h
  c7b70dcc1f2024624fcba54a60ffcdda  libgcc/gen-fixed.sh
! 3e3f0ab4fd877783aa7679eb406bee1c  libgcc/generic-morestack-thread.c
! 0260c3eff3ff6deba05c5265bcfc10af  libgcc/generic-morestack.c
! 2d17f5c92e8af92b2abaa08e5c3651d2  libgcc/generic-morestack.h
  971ff834e82a1a1964a019bfdac21c5c  libgcc/gstdint.h
! 4a535e31ee01c5ecc8ad90aeec393233  libgcc/gthr-posix.h
! e49696590b498a8938135e136810cd2a  libgcc/gthr-single.h
! 071263590ad662fb5a35b117bee3fd67  libgcc/gthr.h
! 9c8582c20dbb2bcbc784908467a92748  libgcc/hardcfr.c
! a7934bf8214ada4c38df401f5eb1c08e  libgcc/libgcc-std.ver.in
! a48e808f88a857eaaf81c5369440734b  libgcc/libgcc2.c
! 94234dd733df732fee839ea9d5afa16a  libgcc/libgcc2.h
! 15c4e8a5de5b58107916b1afa5fae1ff  libgcc/libgcov-driver-system.c
! e87d4eb1a1969a7eb370af0aaf4f6d5c  libgcc/libgcov-driver.c
! 9a873ac12562d1f10ccdd749e145a26b  libgcc/libgcov-interface.c
! 30a48161deffce5a9c3ba086eddd299b  libgcc/libgcov-merge.c
! be426a13cb3cf2fe05c093350c1e3d2e  libgcc/libgcov-profiler.c
! 46b7300ec018e93d9e64c321fcb4efd7  libgcc/libgcov-util.c
! 68fba7574e237f620268317070f43e76  libgcc/libgcov.h
  06287f034722081687f831dcb61e986c  libgcc/memcmp.c
  dad9e98504e8f79e6e97aa29c6b49d96  libgcc/memcpy.c
  135a2882c25ab6f90748b020a6cc2f02  libgcc/memmove.c
  eb54d3066646204ecc21ba5ecb67d572  libgcc/memset.c
! 49db9c5c64c065ba1a88834ebc5e5436  libgcc/mkheader.sh
! 13b3e30364409689bf9cb87cecadf1d1  libgcc/mkmap-flat.awk
! b96d3996fd5cbdb39f818faebff2ee4d  libgcc/mkmap-symver.awk
! 047c0b5b04a7ac1de4ea3b39a5f8608d  libgcc/offloadstuff.c
  0503a6ec2dc990ec5a02ea1d5ece9082  libgcc/shared-object.mk
  4320671e90e14eb5b9f91f106f923072  libgcc/siditi-object.mk
  5476b2a3295a19a0fb558d1db1aa17ae  libgcc/soft-fp/README
  b501abcd327c6d2c95f76d40d4266a4e  libgcc/soft-fp/adddf3.c
  305a99dae8d1353c9137371842d1a94a  libgcc/soft-fp/addsf3.c
  fe381f26f76f7f8998160bba0429aa49  libgcc/soft-fp/addtf3.c
! 9eb8a8f79f887ec39cb571fbd1c83e65  libgcc/soft-fp/bitint.h
! 3e9aa45a76cbe4c6797e817d110a591d  libgcc/soft-fp/bitintpow10.c
  0df1c9dddd6ff4f1de4b75bb05f87fd7  libgcc/soft-fp/bitintpow10.h
  1b314340a7e13d053c2234216b9b01fe  libgcc/soft-fp/brain.h
  2386952f10f05ef43a443fcc7227885f  libgcc/soft-fp/divdf3.c
*************** efe1642746afadab822e08839d276498  libgcc
*** 120145,120152 ****
  66340c3328535b5f6e68ddc9db4efb09  libgcc/soft-fp/extendsfdf2.c
  78f440be9e0f50b1f4162f5732b660e1  libgcc/soft-fp/extendsftf2.c
  8374c48f9513f1ff2bed38a1563c9ade  libgcc/soft-fp/extendxftf2.c
! 614b02ac7496ccd3800e4887ef92ce65  libgcc/soft-fp/fixddbitint.c
! d5b92b2d4367d46734a82308285dfdb5  libgcc/soft-fp/fixddti.c
  9b7084cd807529338f94206e941c9a7d  libgcc/soft-fp/fixdfbitint.c
  1d66e1f4ca287eb6fccf875f0db91236  libgcc/soft-fp/fixdfdi.c
  e0442ba7e2c2f461c4a660a661c279d5  libgcc/soft-fp/fixdfsi.c
--- 133390,133397 ----
  66340c3328535b5f6e68ddc9db4efb09  libgcc/soft-fp/extendsfdf2.c
  78f440be9e0f50b1f4162f5732b660e1  libgcc/soft-fp/extendsftf2.c
  8374c48f9513f1ff2bed38a1563c9ade  libgcc/soft-fp/extendxftf2.c
! e4e4eeacb65c8206fab82eb665002a56  libgcc/soft-fp/fixddbitint.c
! bae270daf9fc0247f7ca7cce9e36606f  libgcc/soft-fp/fixddti.c
  9b7084cd807529338f94206e941c9a7d  libgcc/soft-fp/fixdfbitint.c
  1d66e1f4ca287eb6fccf875f0db91236  libgcc/soft-fp/fixdfdi.c
  e0442ba7e2c2f461c4a660a661c279d5  libgcc/soft-fp/fixdfsi.c
*************** e0442ba7e2c2f461c4a660a661c279d5  libgcc
*** 120154,120194 ****
  be2495fa4c655c1d61addf11f714dd26  libgcc/soft-fp/fixhfdi.c
  4884866175e9676bd6aa1210b20c5773  libgcc/soft-fp/fixhfsi.c
  f35c3d1edd76cb9ba029a92a1405338a  libgcc/soft-fp/fixhfti.c
! 38da2d6fd365702be35792bd2ae86944  libgcc/soft-fp/fixsdbitint.c
! 7774ace7174806629eef7b5437ef5c72  libgcc/soft-fp/fixsdti.c
  a69c115ca8ca953992c25396b2d932e0  libgcc/soft-fp/fixsfbitint.c
  440f8346f68db4efb08b00fe172edb50  libgcc/soft-fp/fixsfdi.c
  767943fe3923c0a1766d923e07c8c334  libgcc/soft-fp/fixsfsi.c
  244dace544760e31a58cb24edda75ab7  libgcc/soft-fp/fixsfti.c
! bfa788f0c36fbaa7864252bd05609112  libgcc/soft-fp/fixtdbitint.c
! 99b62d38fdfb9556eab9ebf8d64b2c9b  libgcc/soft-fp/fixtdti.c
  0b2caa247b80db2f1c0af8921eb3fffd  libgcc/soft-fp/fixtfbitint.c
  405551d1a6fcc6aece0a6e16e5e244f9  libgcc/soft-fp/fixtfdi.c
  6ab5656d92048e6656e2fe0de73e4c44  libgcc/soft-fp/fixtfsi.c
  7082436c92df5b85ae94b9495ad464c1  libgcc/soft-fp/fixtfti.c
! af5ca70de54d8c7df0222ea76a01c83f  libgcc/soft-fp/fixunsddti.c
  57898d3ff8cc90376db235567c29e948  libgcc/soft-fp/fixunsdfdi.c
  ada53bc7756387a8502e2507720b035f  libgcc/soft-fp/fixunsdfsi.c
  3a8f37c1361812154996da1a5e9599f4  libgcc/soft-fp/fixunsdfti.c
  21fe23f358f61a4e26d29b11e6d0f7e6  libgcc/soft-fp/fixunshfdi.c
  9d9677c6da96142038aa3251ac82be71  libgcc/soft-fp/fixunshfsi.c
  ca7d48b7d45390b3df9e82c2f30f36dd  libgcc/soft-fp/fixunshfti.c
! 618609eb7afa1e3abc6af5a5c483ea24  libgcc/soft-fp/fixunssdti.c
  f72d40f70dcd4ab269b0e2244932c2ea  libgcc/soft-fp/fixunssfdi.c
  73b77e9508be3df7ef3dedca5eef5fb5  libgcc/soft-fp/fixunssfsi.c
  a8e89d494f10e00744b973ef74e03630  libgcc/soft-fp/fixunssfti.c
! d75378b78259fb6ce7e9bbcdc4afeddc  libgcc/soft-fp/fixunstdti.c
  556a22ddec531aed905074a8ea139a68  libgcc/soft-fp/fixunstfdi.c
  c7baaf1dede8faef62bc97069e3a86dc  libgcc/soft-fp/fixunstfsi.c
  64ec2ba422a53cee91738d36152761ff  libgcc/soft-fp/fixunstfti.c
  71f5d551c8220bb6bae49ae9844ee3ef  libgcc/soft-fp/fixxfbitint.c
  2f65d16fe846139ca2fea2b0bc6e1eb8  libgcc/soft-fp/floatbitintbf.c
! c0681473d948d312312e5fcc8c5eedf9  libgcc/soft-fp/floatbitintdd.c
  d6b9ae9c4e25f67dadc41d8a09c84e04  libgcc/soft-fp/floatbitintdf.c
  ca806b79a546199d74b76d72af9fe97c  libgcc/soft-fp/floatbitinthf.c
! b549586c0fea79a1eeec50668390a337  libgcc/soft-fp/floatbitintsd.c
  4450c34038f0cf95075cfc4acb83147b  libgcc/soft-fp/floatbitintsf.c
! 48c90a4a60f91d2506ea74bd9d2c0dce  libgcc/soft-fp/floatbitinttd.c
  e34cf3c7fec37ae2be10b5ca0b40b257  libgcc/soft-fp/floatbitinttf.c
  e99db9782e77a9096d87e8a9bf4d52cc  libgcc/soft-fp/floatbitintxf.c
  e1aba14c8b19b67e96db9f797148af40  libgcc/soft-fp/floatdibf.c
--- 133399,133439 ----
  be2495fa4c655c1d61addf11f714dd26  libgcc/soft-fp/fixhfdi.c
  4884866175e9676bd6aa1210b20c5773  libgcc/soft-fp/fixhfsi.c
  f35c3d1edd76cb9ba029a92a1405338a  libgcc/soft-fp/fixhfti.c
! 5d66af3e2606f2cc11f8634df23e83e2  libgcc/soft-fp/fixsdbitint.c
! 4abefb193a253b2b8ef4e268ff1f8fc3  libgcc/soft-fp/fixsdti.c
  a69c115ca8ca953992c25396b2d932e0  libgcc/soft-fp/fixsfbitint.c
  440f8346f68db4efb08b00fe172edb50  libgcc/soft-fp/fixsfdi.c
  767943fe3923c0a1766d923e07c8c334  libgcc/soft-fp/fixsfsi.c
  244dace544760e31a58cb24edda75ab7  libgcc/soft-fp/fixsfti.c
! 29e5c634f685a0811f0ffcb89d665ba2  libgcc/soft-fp/fixtdbitint.c
! c8a666ec85411450698fc9d22ec1d492  libgcc/soft-fp/fixtdti.c
  0b2caa247b80db2f1c0af8921eb3fffd  libgcc/soft-fp/fixtfbitint.c
  405551d1a6fcc6aece0a6e16e5e244f9  libgcc/soft-fp/fixtfdi.c
  6ab5656d92048e6656e2fe0de73e4c44  libgcc/soft-fp/fixtfsi.c
  7082436c92df5b85ae94b9495ad464c1  libgcc/soft-fp/fixtfti.c
! 7b14f00d7e5aa14fbcf0536e44a65154  libgcc/soft-fp/fixunsddti.c
  57898d3ff8cc90376db235567c29e948  libgcc/soft-fp/fixunsdfdi.c
  ada53bc7756387a8502e2507720b035f  libgcc/soft-fp/fixunsdfsi.c
  3a8f37c1361812154996da1a5e9599f4  libgcc/soft-fp/fixunsdfti.c
  21fe23f358f61a4e26d29b11e6d0f7e6  libgcc/soft-fp/fixunshfdi.c
  9d9677c6da96142038aa3251ac82be71  libgcc/soft-fp/fixunshfsi.c
  ca7d48b7d45390b3df9e82c2f30f36dd  libgcc/soft-fp/fixunshfti.c
! f7beeb428a75bbe9626fa798093e2782  libgcc/soft-fp/fixunssdti.c
  f72d40f70dcd4ab269b0e2244932c2ea  libgcc/soft-fp/fixunssfdi.c
  73b77e9508be3df7ef3dedca5eef5fb5  libgcc/soft-fp/fixunssfsi.c
  a8e89d494f10e00744b973ef74e03630  libgcc/soft-fp/fixunssfti.c
! f7238b1664481733665ab73e2da4d9fd  libgcc/soft-fp/fixunstdti.c
  556a22ddec531aed905074a8ea139a68  libgcc/soft-fp/fixunstfdi.c
  c7baaf1dede8faef62bc97069e3a86dc  libgcc/soft-fp/fixunstfsi.c
  64ec2ba422a53cee91738d36152761ff  libgcc/soft-fp/fixunstfti.c
  71f5d551c8220bb6bae49ae9844ee3ef  libgcc/soft-fp/fixxfbitint.c
  2f65d16fe846139ca2fea2b0bc6e1eb8  libgcc/soft-fp/floatbitintbf.c
! 5e7ac6467c7e49fcc74191320ef2126b  libgcc/soft-fp/floatbitintdd.c
  d6b9ae9c4e25f67dadc41d8a09c84e04  libgcc/soft-fp/floatbitintdf.c
  ca806b79a546199d74b76d72af9fe97c  libgcc/soft-fp/floatbitinthf.c
! 19bdada8e4d3baae9fb468abae456734  libgcc/soft-fp/floatbitintsd.c
  4450c34038f0cf95075cfc4acb83147b  libgcc/soft-fp/floatbitintsf.c
! 065990cdb8d87cd5958051b4aeb1af5c  libgcc/soft-fp/floatbitinttd.c
  e34cf3c7fec37ae2be10b5ca0b40b257  libgcc/soft-fp/floatbitinttf.c
  e99db9782e77a9096d87e8a9bf4d52cc  libgcc/soft-fp/floatbitintxf.c
  e1aba14c8b19b67e96db9f797148af40  libgcc/soft-fp/floatdibf.c
*************** f85e25a797c23cce258273754ddec970  libgcc
*** 120202,120213 ****
  54b4c5443e79e51443d4fad220bc2efd  libgcc/soft-fp/floatsisf.c
  8c77a60f0cb82b4a03aaa604111c3917  libgcc/soft-fp/floatsitf.c
  2bae6ee688abda61b223fbf5b25717c1  libgcc/soft-fp/floattibf.c
! 4f93dee1d8259062de7ce3af92233e39  libgcc/soft-fp/floattidd.c
  5b4ee2ed81bcc63bd1d9e4bb9b67cf8a  libgcc/soft-fp/floattidf.c
  06cdbcfb2194128912579a06c8f42382  libgcc/soft-fp/floattihf.c
! 5897bbc2dfc0f13d19063ff33cfeda69  libgcc/soft-fp/floattisd.c
  6e719ab7cae6203215443826f176392d  libgcc/soft-fp/floattisf.c
! 02f30ff7220cafc12e4e9efb8c55e5ee  libgcc/soft-fp/floattitd.c
  a9a45db6ebbb0bbf20a2f595b2ac714d  libgcc/soft-fp/floattitf.c
  be1a053bdfcb6c04a22e60ad1700a803  libgcc/soft-fp/floatundibf.c
  c8c37355af10b7e73d8dd055f5fec1d1  libgcc/soft-fp/floatundidf.c
--- 133447,133458 ----
  54b4c5443e79e51443d4fad220bc2efd  libgcc/soft-fp/floatsisf.c
  8c77a60f0cb82b4a03aaa604111c3917  libgcc/soft-fp/floatsitf.c
  2bae6ee688abda61b223fbf5b25717c1  libgcc/soft-fp/floattibf.c
! 26628922897dfafb2192a91b8a40be20  libgcc/soft-fp/floattidd.c
  5b4ee2ed81bcc63bd1d9e4bb9b67cf8a  libgcc/soft-fp/floattidf.c
  06cdbcfb2194128912579a06c8f42382  libgcc/soft-fp/floattihf.c
! 551ce7f1f1f870ce67207f34560310e1  libgcc/soft-fp/floattisd.c
  6e719ab7cae6203215443826f176392d  libgcc/soft-fp/floattisf.c
! 04e27fd214e280f95a3dcc3ad6597163  libgcc/soft-fp/floattitd.c
  a9a45db6ebbb0bbf20a2f595b2ac714d  libgcc/soft-fp/floattitf.c
  be1a053bdfcb6c04a22e60ad1700a803  libgcc/soft-fp/floatundibf.c
  c8c37355af10b7e73d8dd055f5fec1d1  libgcc/soft-fp/floatundidf.c
*************** cc4e37dc543a3767b463816094f3c0b9  libgcc
*** 120220,120231 ****
  a32ae0cec8bb9ac510eaf6f3c72fb19c  libgcc/soft-fp/floatunsisf.c
  75f27d311c21a9e7d716bc4d3b4f4e3b  libgcc/soft-fp/floatunsitf.c
  a96996bf9295a924afc141cd5d6b0f6d  libgcc/soft-fp/floatuntibf.c
! d21150feed47dc71ba378957abaeb181  libgcc/soft-fp/floatuntidd.c
  c95a41904ff52abb3a4a89a598e7424d  libgcc/soft-fp/floatuntidf.c
  be697682ed2a5184039fc8ca04c59be7  libgcc/soft-fp/floatuntihf.c
! b831af306bdeb9bea3c7f5d8510e9e0a  libgcc/soft-fp/floatuntisd.c
  b0e6031ca3ec610e349ff2abc3d12622  libgcc/soft-fp/floatuntisf.c
! 445d96fd26d036f013fd9cabf215f69a  libgcc/soft-fp/floatuntitd.c
  a73152ad84ccafda24237cacca1f4e2d  libgcc/soft-fp/floatuntitf.c
  295099b34643dc167502a661f4a3739b  libgcc/soft-fp/gedf2.c
  a55cc715e80d85457942c40067b65a87  libgcc/soft-fp/gesf2.c
--- 133465,133476 ----
  a32ae0cec8bb9ac510eaf6f3c72fb19c  libgcc/soft-fp/floatunsisf.c
  75f27d311c21a9e7d716bc4d3b4f4e3b  libgcc/soft-fp/floatunsitf.c
  a96996bf9295a924afc141cd5d6b0f6d  libgcc/soft-fp/floatuntibf.c
! 68dd7cc92eb8caa2d68484431b9cf82e  libgcc/soft-fp/floatuntidd.c
  c95a41904ff52abb3a4a89a598e7424d  libgcc/soft-fp/floatuntidf.c
  be697682ed2a5184039fc8ca04c59be7  libgcc/soft-fp/floatuntihf.c
! ecca258019ae5fbca5b44759bfb8ac87  libgcc/soft-fp/floatuntisd.c
  b0e6031ca3ec610e349ff2abc3d12622  libgcc/soft-fp/floatuntisf.c
! 762c53a22c72c9c641f030f3a042661a  libgcc/soft-fp/floatuntitd.c
  a73152ad84ccafda24237cacca1f4e2d  libgcc/soft-fp/floatuntitf.c
  295099b34643dc167502a661f4a3739b  libgcc/soft-fp/gedf2.c
  a55cc715e80d85457942c40067b65a87  libgcc/soft-fp/gesf2.c
*************** fff9d95d160cd075bf3dd5afb28988a4  libgcc
*** 120269,120333 ****
  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
! 8deaac610cfe07be16f3ac03083e03e8  libgcobol/ChangeLog
! b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
! 573e7a1dee0641f56d9b797b23dff44b  libgcobol/Makefile.am
! 23cf4646d213d05645a0bf48209b374d  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
! 8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
! 0bf6afe766a6886d2ac1f175300477f2  libgcobol/aclocal.m4
! 3d3a800933c22566d11e09ab88c455e1  libgcobol/charmaps.cc
! 08bac5426c592bca32b87e76cd4a87a1  libgcobol/charmaps.h
! 22bb2a7ba78f63e95702f5b92a8f8856  libgcobol/common-defs.h
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! 7c39e3ffa421728393475f0c1e747e59  libgcobol/configure
! faf06b9fb823d12e0ec967db524ba97e  libgcobol/configure.ac
! 5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
! dc7dba3ea14b23da0b28124acfa2ca32  libgcobol/constants.cc
! 641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
! fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
! ef8b11373d27f5ca4df73f09c6ccab75  libgcobol/gcobolio.h
! 277d281d0d500adc75c24b68380de568  libgcobol/gfileio.cc
! 4c5dc966be490381f53924b2441c9300  libgcobol/gfileio.h
! 42a0be811da2d9bccec1fc42d43424cb  libgcobol/gmath.cc
! 9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 7b73c809113d6b9961b7ace6fb9bf96f  libgcobol/intrinsic.cc
! 0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
! b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 8a2f491e4c4bea77a47fd9697ba6639f  libgcobol/libgcobol.cc
! 9d6654e5bf93e5b028f7a514320a7ede  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
! 7921a81e3cbf784d960d70db7bc6e242  libgcobol/valconv.cc
! c7d27fb7e36a42567d7cc4d14e7ed3fe  libgcobol/valconv.h
! ac7f063c8cb82a1c85489ce9730592e3  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 133514,133625 ----
  fbd2a4796cc1004ad95b2d302d55497a  libgcc/soft-fp/unordsf2.c
  008beb46d9f23d4020ebdd5cbcb0fe3d  libgcc/soft-fp/unordtf2.c
  8c64184cccab0ab994c69899c63f3260  libgcc/static-object.mk
! e7cce090e5705c343bf7d927c1d303f7  libgcc/strub.c
! b346feb762a3271012785bb60db1660b  libgcc/sync.c
! b88849b566c015269216bc3f78606981  libgcc/udivhi3.c
! 12bc92a65370eaba37b2ee99bdcb2fe2  libgcc/udivmod.c
! 4f8bcda8492912058d9862d77c66b94c  libgcc/udivmodhi4.c
! 0bf7d40ebc9b5ef17bab7ffd1a910297  libgcc/udivmodsi4.c
! c3750b0c8ec1897b954afe7be0e9c8ac  libgcc/unwind-arm-common.inc
! 09e7cd9265be47cf7871bbc564d131dd  libgcc/unwind-c.c
! 8eedab838cc8fc02de6e3d3677a7038d  libgcc/unwind-compat.c
! 7953248b811e033fb3c0b84fcfb35a9b  libgcc/unwind-compat.h
! dc3086018fad9dd2159ec674dd1b7252  libgcc/unwind-dw2-btree.h
! 5682579dc2f7edec286fc18f94fcbb39  libgcc/unwind-dw2-execute_cfa.h
! a8ccda6effc550431bf1d008bbc3cf08  libgcc/unwind-dw2-fde-compat.c
! cc837ef06612bef8803e98c6da269c76  libgcc/unwind-dw2-fde-dip.c
! 29555e09ade7810fa0e64be543fbbce9  libgcc/unwind-dw2-fde.c
! f593995a2d6ec63a2f32fdb0ba74184e  libgcc/unwind-dw2-fde.h
! 823dd73d134cc1abc68b88f894b94621  libgcc/unwind-dw2.c
! 921ab7d96aaa431408b118ae62027e37  libgcc/unwind-dw2.h
! 0e37dd2c3a78e45de246e2f40d78c94e  libgcc/unwind-generic.h
! 18cf8bd23d03ef253ef7f92990747659  libgcc/unwind-pe.h
! 4247fd9156e04521bac0f1285e5c4cb7  libgcc/unwind-seh.c
! 0e9296843da29067e034251cd1738366  libgcc/unwind-sjlj.c
! 3b45a52dbf28e70dfd63a4a6bd72bf06  libgcc/unwind.inc
! 7d0fcd9b29826f52ef8c86e12092af8b  libgcc/vtv_end.c
! b7bdc64c03d62f87f61d3d8a61a75d2d  libgcc/vtv_end_preinit.c
! 227525d7193394128a83ce15e7642842  libgcc/vtv_start.c
! 23ad2a8d256ba5dca28382d64a20e8f2  libgcc/vtv_start_preinit.c
! e50c29294062dfe571c9c053a8ec217b  libgcobol/.gitignore
! 293035c73298e07d852cd8f386328afa  libgcobol/ChangeLog
! bec1e79fc8ada70ed4ac3dc61a33d576  libgcobol/LICENSE
! 2b9a0eb22401937836af2167cf0d5250  libgcobol/Makefile.am
! 2f7b3f483bbf4e5b4e472e3a381cecd1  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
! a69c3f28d1be90eb0b0287fa450c3684  libgcobol/acinclude.m4
! edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
! bc35eb1a51484849b97f6fdb7c63051e  libgcobol/charmaps.cc
! 9bd2a0017587943bc8bd8e28ff500e44  libgcobol/charmaps.h
! ff10a08007fb6269ffb47eb004d15d1e  libgcobol/common-defs.h
! 6f92fa32eabcfff6e25b59104fbd9a6a  libgcobol/compat/README.md
! 9724ffdf971bebe59c8b2e8708a371b3  libgcobol/compat/gnu/lib/CBL_ALLOC_MEM.cbl
! 848d2a16eb4e04f66947f0a4f3388039  libgcobol/compat/gnu/lib/CBL_CHECK_FILE_EXIST.cbl
! 99d695f529024b68583602d0dd126e38  libgcobol/compat/gnu/lib/CBL_DELETE_FILE.cbl
! 6c02bd6dd638631136b344cff89cefb8  libgcobol/compat/gnu/lib/CBL_FREE_MEM.cbl
! f49bdd3b2cc069db17d0b4f9a6a02655  libgcobol/compat/gnu/udf/stored-char-length.cbl
! 79fab4a17bf7e71b69ea829387984111  libgcobol/compat/t/Makefile
! b293e5545f3c614e2e8d23f125a576b6  libgcobol/compat/t/smoke.cbl
  6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! 3711ddfe829126de8ec66a46ed781cef  libgcobol/configure
! afed6df976e368f05886dbdd674f6f4f  libgcobol/configure.ac
! f9612f96c50ee0e25fbb1a07e6cf0047  libgcobol/configure.tgt
! ee9716a45633fbc51fcf882ae2a28ae7  libgcobol/constants.cc
! f2c3cff1bc18796f966af4f4144b8a45  libgcobol/ec.h
! ccd6b9ba0e615b569343d61602258dad  libgcobol/encodings.h
! b3961d8aa907be49adced89cb2a1f63f  libgcobol/exceptl.h
! 3f7c50a5700055909b83076877609dbf  libgcobol/gcobolio.h
! 25cd066424f46a0ff417b69c75f02c0d  libgcobol/gfileio.cc
! 0ae92e32a618fa39e3ff18a50cbfff17  libgcobol/gfileio.h
! 49681d3d74ab81c08f8ab0070b881c5f  libgcobol/gmath.cc
! 484b264b1c8d844ef5989f4d7075f520  libgcobol/gmath.h
! 63a55e7eceaeb78f4b352defaaeb429d  libgcobol/inspect.cc
! bab7c1bcf2f8983f738815d1d394b85a  libgcobol/intrinsic.cc
! 2b355d9cab0ba548b859425b4149b157  libgcobol/io.cc
! e56dd1238c5d2a7eb655018f1b536b0a  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 51572b39d0e6ea298c5bf66e376eb07c  libgcobol/libgcobol.cc
! afb8e9e7c276f9360fc31ed2e57cbbc9  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
! 96b721e88c5f79776cedad463373ad78  libgcobol/posix/README.md
! 6c13b507d443d1aa5c60a6b8939dd068  libgcobol/posix/bin/Makefile
! de91f2c442f5429dd57a380d4e77abd4  libgcobol/posix/bin/headers
! 684a25ba570455c35402148c3b528c13  libgcobol/posix/bin/scrape.awk
! 807e38148d3d302d10877fa78d259600  libgcobol/posix/bin/sizeofs.c
! df27d0831414ed4ff9aa6640fe95d3f7  libgcobol/posix/bin/udf-gen
! d33a3081c7c2f2ff39cf646a35ec62a8  libgcobol/posix/cpy/posix-errno.cbl
! c89d8daf75b2fb1290c281d696f1bf34  libgcobol/posix/cpy/psx-lseek.cpy
! df954afb031169710b0fcef1d2c63141  libgcobol/posix/cpy/psx-open.cpy
! 89c4c2d899376a5caefdc9ee44531f91  libgcobol/posix/cpy/statbuf.cpy
! 3d39925c2d07caf265c66370d2845166  libgcobol/posix/cpy/tm.cpy
! c057a9c0bf247b066e7de6f079edb2f6  libgcobol/posix/shim/errno.cc
! a7b68930ae7325253870cb373c7849f6  libgcobol/posix/shim/localtime.cc
! 516b62aedf667ea90257b00719f2b3bb  libgcobol/posix/shim/lseek.cc
! b982ac79d78280ab53706df59f360d36  libgcobol/posix/shim/open.cc
! 308a02a974673252b622e5bbca74784d  libgcobol/posix/shim/stat.cc
! 0627b6b8874b55669b3c13b6a52ef590  libgcobol/posix/shim/stat.h
! feda976b2ecc3ba909f736aeb43feb48  libgcobol/posix/shim/tm.h
! db2b66c495eb88a1d722067a5aa3c98b  libgcobol/posix/t/Makefile
! 7462812a55d7c4eeb70bf0b480bcf193  libgcobol/posix/t/errno.cbl
! 2e0537c5b8b0cf68972040d3829a3cbb  libgcobol/posix/t/exit.cbl
! c185f49b81cdf8493183fa80bac2a3a7  libgcobol/posix/t/localtime.cbl
! 30c9799508c129fb6190e083a7a7837a  libgcobol/posix/t/stat.cbl
! 7eb31de3bb34e7725a6cc8285ec9c00e  libgcobol/posix/udf/posix-exit.cbl
! 6d038b619df8d01dc250a119fd55a4d2  libgcobol/posix/udf/posix-ftruncate.cbl
! 63471924bc915602fcc79a08d2844cd0  libgcobol/posix/udf/posix-localtime.cbl
! b19197a360b91a408994e0794c230d8c  libgcobol/posix/udf/posix-lseek.cbl
! 9905637f1731df63655b7c69bee2138d  libgcobol/posix/udf/posix-mkdir.cbl
! 39eb8784fa631ebdc03ed7471c26b5d7  libgcobol/posix/udf/posix-open.cbl
! 4e9e80c272a960785feb1d043c4c9f47  libgcobol/posix/udf/posix-read.cbl
! b596ffc38045755f7ef0c54f1d5555a1  libgcobol/posix/udf/posix-stat.cbl
! d5f038474fd5faad3f79701cbb81bf30  libgcobol/posix/udf/posix-unlink.cbl
! 22033717613b11dd6cb636ed41f4a1ad  libgcobol/posix/udf/posix-write.cbl
! 1e458f7ebad93e7bd3920c4cce7a24a2  libgcobol/stringbin.cc
! 89dfd764956cfbc2affbf93a401839c9  libgcobol/stringbin.h
! 9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
! 3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
! db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! 366028bce5d728fbac1557912a70bec5  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** a25a190e02c8ba2caa2c3dee224eba51  libgfo
*** 120351,121286 ****
  96575688a5b9b3eadc49b04c1a378000  libgfortran/ChangeLog-2022
  aa424ddf6a9e4e08b8023d3d5b371a0d  libgfortran/ChangeLog-2023
  09537a69736f655d1e0ccf28367d3ddf  libgfortran/ChangeLog-2024
! 16ba29cf4184ed00d26fe02df17c83d7  libgfortran/ISO_Fortran_binding.h
! dff439751d0f684d621dfa4cd7358321  libgfortran/Makefile.am
! 7a19a44169283cb020a346caff128ab8  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
! ce348991d4021ce6e37ade66132b584b  libgfortran/generated/findloc2_s1.c
! 909a5d687769a8116cfc9d0fdb43915e  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
! 9d87ff1e143c7c07b2fe69060db6bbc7  libgfortran/generated/maxloc0_16_m1.c
! 147dc09d40c9dc388388dd44d4aa07f2  libgfortran/generated/maxloc0_16_m16.c
! e2062bb116c1f35960e5166460f15774  libgfortran/generated/maxloc0_16_m2.c
! b862113cf3798535e7b9c28bbdbbbb2e  libgfortran/generated/maxloc0_16_m4.c
! c8e90dc0816a14aec68b6ed7d953d04e  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
! 24712ca5128f9d892491a332e76754f3  libgfortran/generated/maxloc0_4_m1.c
! 6065808b3be577e925e7f8583953155a  libgfortran/generated/maxloc0_4_m16.c
! e2945d557eb17c8b9076faae2684f4c6  libgfortran/generated/maxloc0_4_m2.c
! 78897c2bc1c957317217dfd9dfeb0032  libgfortran/generated/maxloc0_4_m4.c
! 91619c142b3e2ca32d9204dd39e71e66  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
! 1a451b474233ca9d8fea768a7c4f83a7  libgfortran/generated/maxloc0_8_m1.c
! 30bf87843a0e002f6bc5f025824646e5  libgfortran/generated/maxloc0_8_m16.c
! 4dab0e7b5ba5e2da692ffca659ab0239  libgfortran/generated/maxloc0_8_m2.c
! 54010eafc46b73f358e12a6d2020aa30  libgfortran/generated/maxloc0_8_m4.c
! 3b13cb82ead568ab9faf7ce901198ed4  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
! c12b57f2b0210bf6c6b7aaff51906256  libgfortran/generated/maxloc1_16_m1.c
! ce72acbfdd6045160b44300411d3f07f  libgfortran/generated/maxloc1_16_m16.c
! d9fe5bcab54bf5af06514547d1e3404b  libgfortran/generated/maxloc1_16_m2.c
! 3a4256951bd1b9b28407e65b75505945  libgfortran/generated/maxloc1_16_m4.c
! 3a79f8db43ca865ae615fcade40a95c6  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
! 536076b209d404cb16a44cb3b76fd338  libgfortran/generated/maxloc1_16_s1.c
! 3dec3cf9edde57d35e4862ae017d03eb  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
! 1bfbbb666a13a53fcea3fce71c4b27bf  libgfortran/generated/maxloc1_4_m1.c
! 4ef9b7c8eab28f664a9d5077655f0cff  libgfortran/generated/maxloc1_4_m16.c
! 768d03c26047d5763215237325a5b973  libgfortran/generated/maxloc1_4_m2.c
! 2521804819c001c5dc1f511afdc0ccc6  libgfortran/generated/maxloc1_4_m4.c
! b11acb8eca8664dbda7262a67565825f  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
! c5a685eb5cab557893ae2bcac820bae7  libgfortran/generated/maxloc1_4_s1.c
! db288633a845d90460e917709af262ca  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
! 0525a837bed7e68ee55831c6935b3083  libgfortran/generated/maxloc1_8_m1.c
! 6cfb67139c32ba80137682c90f0f77fe  libgfortran/generated/maxloc1_8_m16.c
! 085e2653d8fdb7fafc3977ab5d46e945  libgfortran/generated/maxloc1_8_m2.c
! 347e7f033fc595ddc92223125dc20902  libgfortran/generated/maxloc1_8_m4.c
! 83c1d3375ff9434fdc40136d7d165c15  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
! ce0f704b75da39f463179e8e62cb7529  libgfortran/generated/maxloc1_8_s1.c
! 8dc34f7e2c22567dea0bd2700a99ba21  libgfortran/generated/maxloc1_8_s4.c
! 5c752f4b482e22e797769a805e88c395  libgfortran/generated/maxloc2_16_s1.c
! 2ccecef9c963ab7aa03733e91d57ef69  libgfortran/generated/maxloc2_16_s4.c
! 0d465075d26ff3efd34bd38fbd6371e5  libgfortran/generated/maxloc2_4_s1.c
! 0d4822aa98853c006714b931db6dec3a  libgfortran/generated/maxloc2_4_s4.c
! 71fa4dd2c581600786c2ece58a1aeb07  libgfortran/generated/maxloc2_8_s1.c
! 5f52e96586be0b547ae0462b9db591c7  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
! a09e7758408863a8d09097176d422b6b  libgfortran/generated/maxval_m1.c
! aee821dc1cf43984a98caa739138eec4  libgfortran/generated/maxval_m16.c
! 84e9726150340486088bd3eb09bfe895  libgfortran/generated/maxval_m2.c
! 38782a2ad1d52b618192a165f21b36c1  libgfortran/generated/maxval_m4.c
! a925befd87ae715223b61e2ae23c36ac  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
! e1bd5df388dc6bf9c1dd989030b667a6  libgfortran/generated/minloc1_16_s1.c
! c03f2885f077a908f92063aba7bbb32a  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
! 6d77a5d312d3e4a2596b249a46928823  libgfortran/generated/minloc1_4_s1.c
! f8be71fae9f9719e4c904334f3def36f  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
! 6807fc39cfe49d1013e890acec86cff4  libgfortran/generated/minloc1_8_s1.c
! 249a29d437e54adfdac9ebc73c4f935a  libgfortran/generated/minloc1_8_s4.c
! 2954f167794fe46e84e387ecafdfd382  libgfortran/generated/minloc2_16_s1.c
! 643c1f64e9ce34b69fcfd061fd38e08c  libgfortran/generated/minloc2_16_s4.c
! 288b0b99bea66c863033c430ed6a95ac  libgfortran/generated/minloc2_4_s1.c
! b55cd63987f0f1cda2f8cb045758d39d  libgfortran/generated/minloc2_4_s4.c
! 8ec21c4b64d3f187d54d6298926e4fba  libgfortran/generated/minloc2_8_s1.c
! e7d5db3d2ec73ed9e804ae2fb5d58b6b  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
! 0b3d4947a8c1e742bfc79cc9926300ba  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
! 552287eeae7a446f05ee4a24c3f652ed  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
! 3ed8323377b84c77d37045619b804ce1  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
! 50fbc6f254781deab00f1f5657fc82e6  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
--- 133643,134602 ----
  96575688a5b9b3eadc49b04c1a378000  libgfortran/ChangeLog-2022
  aa424ddf6a9e4e08b8023d3d5b371a0d  libgfortran/ChangeLog-2023
  09537a69736f655d1e0ccf28367d3ddf  libgfortran/ChangeLog-2024
! a1bbe79151b753b8b25205a178953376  libgfortran/ChangeLog-2025
! 7a9dd3c91b585f18a8d8a30c6e60d98f  libgfortran/ISO_Fortran_binding.h
! 7cbace53ae182714e1886f1b5a55cae3  libgfortran/Makefile.am
! 522a3cc18b6cc7649382a83428097815  libgfortran/Makefile.in
! c5e012ba3cb276dcf788c967b987a900  libgfortran/acinclude.m4
! 0cd952008678ed894c7ee40d58f1e6d4  libgfortran/aclocal.m4
! 6d4f5918ea5082a0bc3b9bbe3455b876  libgfortran/c99_protos.h
! f19a2f7e21d9c27c667b2b50004edf9b  libgfortran/caf/caf_error.c
! e184137391bc3069808e32155144d2ae  libgfortran/caf/caf_error.h
! 6fff77d7036cbcb654bf998e6f610948  libgfortran/caf/libcaf.h
! a65e659c6604a4a7282acf69f4785519  libgfortran/caf/mpi.c
! 41b04fd6a6bdb7610c165dae58ab8276  libgfortran/caf/shmem.c
! 8996a74bd946e72fa4a2088b1431661b  libgfortran/caf/shmem/alloc.c
! 6f37f0a018efce4051dc559dee63e2db  libgfortran/caf/shmem/alloc.h
! 3a3e2211031c2d5d1fa19a718153e14d  libgfortran/caf/shmem/allocator.c
! 03432639a5e3f3cfc13e0b4b3b16062f  libgfortran/caf/shmem/allocator.h
! 3437aaede8b931b11b7b9ac7116b77ba  libgfortran/caf/shmem/collective_subroutine.c
! 817c2c1b3887972b7255f0ed6e0d97e8  libgfortran/caf/shmem/collective_subroutine.h
! c76fc917a72eed37e3dd2fbc54ccd383  libgfortran/caf/shmem/counter_barrier.c
! feff24e5582b1f94959aafc712f637d4  libgfortran/caf/shmem/counter_barrier.h
! ac03c96ad4b3cbfce74b31610170e681  libgfortran/caf/shmem/hashmap.c
! 70d12fdb2bcca3123d701486eff4406d  libgfortran/caf/shmem/hashmap.h
! 46fc71594dc8953cc2fd6851a062ad2a  libgfortran/caf/shmem/shared_memory.c
! 80716674e0dee09007ec088dc9b8bc75  libgfortran/caf/shmem/shared_memory.h
! e9be1397d0da3e3f08e6d83986128990  libgfortran/caf/shmem/supervisor.c
! db01f2637ed2e41d8d6ed00948dec908  libgfortran/caf/shmem/supervisor.h
! c39aaa0900c27c5e6d92245f822c0dbb  libgfortran/caf/shmem/sync.c
! 52739b468071f1350f84cce9ba280624  libgfortran/caf/shmem/sync.h
! 5bc507eff4211dcfd30e8c5b39b9bb89  libgfortran/caf/shmem/teams_mgmt.c
! 16d5016bdd691a4b23799faf247786e1  libgfortran/caf/shmem/teams_mgmt.h
! eda47643efe7014bcad84596ff05688c  libgfortran/caf/shmem/thread_support.c
! afca2bdd1b8b95cb70ca56c5cb073edb  libgfortran/caf/shmem/thread_support.h
! 1e516cc9226f1e63c9fb8039a798a31e  libgfortran/caf/single.c
! 7a6ec8aeacc22a6626157daea7f1fbfd  libgfortran/config.h.in
! c3cb798c6d9f19a5c854b16c133da31d  libgfortran/config/fpu-387.h
! 887929d7578664b9442e4bee95f386f7  libgfortran/config/fpu-aarch64.h
! 3bea843eefdc6b5d90f9ae3efa3d873a  libgfortran/config/fpu-aix.h
! 4d7fcb1b7a5d2980286c46f9b1f88285  libgfortran/config/fpu-generic.h
! 333c922d6fee00ec53e843d66cda290f  libgfortran/config/fpu-glibc.h
! ac74e4020ecd3c7da1e7f62154e313ae  libgfortran/config/fpu-macppc.h
! a3016b0ad57cd1fac79d02298c4bb67e  libgfortran/config/fpu-sysv.h
  f9917563df7bac5d534cef935bdce401  libgfortran/config/t-aix
  3e9dd2029734b8f2c6a1eb2a364d1cbf  libgfortran/config/t-nvptx
! 25763349588d3a6488e975e6b84cee06  libgfortran/configure
! 8cc93ddc1cb305dfe39da878e0ff14cb  libgfortran/configure.ac
  78e88d1cf66770f3359f0a232708eb4b  libgfortran/configure.host
! af09dd745a601ab5f0fb73fde635b041  libgfortran/generated/_abs_c10.F90
! 67b33ddf5ad8c3dd65160a502c481ea8  libgfortran/generated/_abs_c16.F90
! 9a616c0f0e10a6ff0ab80c705ed91557  libgfortran/generated/_abs_c17.F90
! 4c5504b7a6e4894d62deb113ca78faeb  libgfortran/generated/_abs_c4.F90
! 60f75cc8d394bc7bc67c0e4b9d09b1f3  libgfortran/generated/_abs_c8.F90
! f32d53b64b28b870faf2cc85c906ae36  libgfortran/generated/_abs_i16.F90
! 8ba42eb6720fa2a7878676a18607622b  libgfortran/generated/_abs_i4.F90
! f16d8cfce8cf72bba4479776ff541fca  libgfortran/generated/_abs_i8.F90
! 464550e6a6d1c39ea70074bb9f8f3c1f  libgfortran/generated/_abs_r10.F90
! 148c372b61b00b7674afcf98171713dd  libgfortran/generated/_abs_r16.F90
! b784f3e6fc54bbc3f87df0c4a654e85a  libgfortran/generated/_abs_r17.F90
! dacc597655c973134e9241ece3002734  libgfortran/generated/_abs_r4.F90
! a10605de3123357d1e2bc28cec5a386c  libgfortran/generated/_abs_r8.F90
! cdee6f4693ddae27ee8fe347be085734  libgfortran/generated/_acos_r10.F90
! b645de3256d5ee5186386bd28f68fa51  libgfortran/generated/_acos_r16.F90
! 4d35771ebe7f48f071c26c189d37f569  libgfortran/generated/_acos_r17.F90
! f0db83bed02bf15f3b50126135776c4b  libgfortran/generated/_acos_r4.F90
! 4f636ee70df462cbc29d2194c8fe9a35  libgfortran/generated/_acos_r8.F90
! acc0f115650d205cca6c9087e6f41a76  libgfortran/generated/_acosh_r10.F90
! ebed6d77182258866d9e9c4f2457eeb3  libgfortran/generated/_acosh_r16.F90
! eb1ad9cd6dae7f73d4d129f2cf273527  libgfortran/generated/_acosh_r17.F90
! 1ff3ff7752863c4c960e32a398783eb6  libgfortran/generated/_acosh_r4.F90
! 6541fdcd8f941a18b5a06470e4386178  libgfortran/generated/_acosh_r8.F90
! f35b29c60216d876f11325c05a702363  libgfortran/generated/_aimag_c10.F90
! ea25c2a0d57aa94bf56e5cd01f91bf1f  libgfortran/generated/_aimag_c16.F90
! a8e6221db4afd6bb1b238e1aabb98eb3  libgfortran/generated/_aimag_c17.F90
! 812b200e5bee73371292e9e13e6dc864  libgfortran/generated/_aimag_c4.F90
! 0544f90d0f93547dfc6bd3fd557828f0  libgfortran/generated/_aimag_c8.F90
! beba1663dce7a9177c87d650173d1f1c  libgfortran/generated/_aint_r10.F90
! 5347488fe5c76194e51d2f3a63481b56  libgfortran/generated/_aint_r16.F90
! 11a44a30d7682c19c1633d677f2a2791  libgfortran/generated/_aint_r17.F90
! 9dec55054da8690fa61ba739fa349ac1  libgfortran/generated/_aint_r4.F90
! 82b9ed17d7f9ff2f0a8e1b6f57d110e0  libgfortran/generated/_aint_r8.F90
! 4885f4a0d7cb4d664bed846af6ca1b81  libgfortran/generated/_anint_r10.F90
! ff605456596d1fec3ca5f41ec934a05e  libgfortran/generated/_anint_r16.F90
! 4648e16d5d4aa84867d979510bf7879e  libgfortran/generated/_anint_r17.F90
! 76f84a9850a09d34c7024521d012753c  libgfortran/generated/_anint_r4.F90
! 5d12bce97ae85b62d65373d8fea1d0d8  libgfortran/generated/_anint_r8.F90
! 769ef88af9fca80551fc671a9cd88ab3  libgfortran/generated/_asin_r10.F90
! 4b9271d90be39402ba9128574b377445  libgfortran/generated/_asin_r16.F90
! df996324cb6205e72c3ea9df55ae8cdd  libgfortran/generated/_asin_r17.F90
! 23d862a315aff448802bada5cae24a2c  libgfortran/generated/_asin_r4.F90
! dad1db4066d3ade4542c7e41eaf775ea  libgfortran/generated/_asin_r8.F90
! ad1a480b67f8da2357fad4c36fa57558  libgfortran/generated/_asinh_r10.F90
! bf686824da3f8286d2a016ab41314471  libgfortran/generated/_asinh_r16.F90
! 2718f5703edcf481e5fa9717bebee4f8  libgfortran/generated/_asinh_r17.F90
! 08e3c72888a8f59680a1ea98e112df11  libgfortran/generated/_asinh_r4.F90
! 3426d771ba51eebfbfb211fcfb584033  libgfortran/generated/_asinh_r8.F90
! 18f8843f3120b09130acb3aa2e1d2dce  libgfortran/generated/_atan2_r10.F90
! ea327972b1c8e0e172fd529edcee3c4f  libgfortran/generated/_atan2_r16.F90
! d75b7f3b96a2886836997349c6f80d19  libgfortran/generated/_atan2_r17.F90
! d0378d3f6e62c2e8809ccfeba7e5922b  libgfortran/generated/_atan2_r4.F90
! 4d43c8c1a86873ccadd92085c90ada7d  libgfortran/generated/_atan2_r8.F90
! faec4dc35860b6fcc3450acce596ef96  libgfortran/generated/_atan_r10.F90
! d6a242b303d86eacb737666fc1141f3e  libgfortran/generated/_atan_r16.F90
! ea9badc66a7aa1c75ae66c4bcf3d9c12  libgfortran/generated/_atan_r17.F90
! d58cde70dc0471dc5d817456c3b0e0d5  libgfortran/generated/_atan_r4.F90
! 51240426c6333b0b2d9b9b74e4d0858a  libgfortran/generated/_atan_r8.F90
! 8bb8773c5974592e05d6ab9a8097b861  libgfortran/generated/_atanh_r10.F90
! a02be8d90d0c42fe61664e1da9e8ede6  libgfortran/generated/_atanh_r16.F90
! ea9d85eea07ecc80f5a58d0e8b710ed3  libgfortran/generated/_atanh_r17.F90
! 7d73bdf72d742e27dffeed0c25b5c935  libgfortran/generated/_atanh_r4.F90
! 06454e5e85d3edbe48805a30705f16b3  libgfortran/generated/_atanh_r8.F90
! 7bba68bb3d0416c7f60d5039044d8806  libgfortran/generated/_conjg_c10.F90
! fd5f2d2fb270e66625ac1c0fcddcf9d4  libgfortran/generated/_conjg_c16.F90
! 0f9dfc84b12c44c339bbb1b0709c0287  libgfortran/generated/_conjg_c17.F90
! eed73f16bd02b410031a69b74b371050  libgfortran/generated/_conjg_c4.F90
! c3473575d5742b562ccc70c7d8a5c733  libgfortran/generated/_conjg_c8.F90
! afc2f991c05657b669ae82425dfc8ecb  libgfortran/generated/_cos_c10.F90
! 75302c0464f304f2a0ed8dd37c3ad095  libgfortran/generated/_cos_c16.F90
! dd2f9cc06a6dc57cfdf73c1488e89acb  libgfortran/generated/_cos_c17.F90
! b986bf9a8a1b8109031bf8d99d94fb16  libgfortran/generated/_cos_c4.F90
! 7e5d4f0c7418d0b3ceccf632b0f36809  libgfortran/generated/_cos_c8.F90
! d6d4c3f51c2946596e63f2ea37ff5c0d  libgfortran/generated/_cos_r10.F90
! c520833564978058671decd727249ad1  libgfortran/generated/_cos_r16.F90
! cf371f1e71268f71f073787403f7440d  libgfortran/generated/_cos_r17.F90
! ec18a1356fdda5abc0b7a841a425fe77  libgfortran/generated/_cos_r4.F90
! 15d58414f79cd83bf2a79836db2f9076  libgfortran/generated/_cos_r8.F90
! 4ba24bb0ab9edcf6698bc07fdcc47b86  libgfortran/generated/_cosh_r10.F90
! a904834ff19a6dfcb6a4c118afecd2c1  libgfortran/generated/_cosh_r16.F90
! c97e2e45ca73ddabb56ebeabb535c693  libgfortran/generated/_cosh_r17.F90
! 2b19f775b65181818514a157eb4a0ed2  libgfortran/generated/_cosh_r4.F90
! f7d2120183e477cd962536a3f13a4289  libgfortran/generated/_cosh_r8.F90
! 04b5c82b1181329649346761123a45ad  libgfortran/generated/_dim_i16.F90
! 204648d1314a32abafe26fa462b7cd0b  libgfortran/generated/_dim_i4.F90
! 61073c61c4a4f68f925e0169ad9c5543  libgfortran/generated/_dim_i8.F90
! 515f6cc4e437982fb70d13c5c3222070  libgfortran/generated/_dim_r10.F90
! d80c5ff941cf915caa1d45f06a4e161e  libgfortran/generated/_dim_r16.F90
! b3d8951d81c7f7e445fc392bba3d8ff4  libgfortran/generated/_dim_r17.F90
! ebd3c35bb1156d0d7ed2a3115b7ba58a  libgfortran/generated/_dim_r4.F90
! a14ee906f9c1a59b7b7d1bce53dbf9e7  libgfortran/generated/_dim_r8.F90
! 78f9de733b038e7a40db47713ae076a8  libgfortran/generated/_exp_c10.F90
! 772cc55489fb3969bbf489c4dc262756  libgfortran/generated/_exp_c16.F90
! c2075fbbfaf7f6c67c91363390019fa7  libgfortran/generated/_exp_c17.F90
! 1f58836ee9aa2369be4e841cce6a8c11  libgfortran/generated/_exp_c4.F90
! b6667991d3b49ff5f7cf8d00302b04d0  libgfortran/generated/_exp_c8.F90
! 827bcc515c83536ad333032500cfff69  libgfortran/generated/_exp_r10.F90
! 9dc167b437db201b632f0d63453eaa8a  libgfortran/generated/_exp_r16.F90
! ca3040a7e46197554aea1cae53daf3ec  libgfortran/generated/_exp_r17.F90
! 88a4be5b26baa091d9054bbf4dfe8d18  libgfortran/generated/_exp_r4.F90
! 97e53bbff585fb0637bfee2bde285c85  libgfortran/generated/_exp_r8.F90
! b023fe498a9a7af94946a3c29c6c1a4f  libgfortran/generated/_log10_r10.F90
! 0c07eaaf56dc294b2e7be0fc0f738334  libgfortran/generated/_log10_r16.F90
! 25173c0512b933acafa085c2a5b467ed  libgfortran/generated/_log10_r17.F90
! 9c3b4ac34294fe8f741081fe0748521f  libgfortran/generated/_log10_r4.F90
! c3868157000f85b1f1db34f41751f834  libgfortran/generated/_log10_r8.F90
! 30c6d9d50b55c38b1001554df3a83d50  libgfortran/generated/_log_c10.F90
! 48605d540a0ff80617cf5b23110bc988  libgfortran/generated/_log_c16.F90
! 88dabb7744f84e6e16a69b562610b893  libgfortran/generated/_log_c17.F90
! c60b8d46b56fc3ffabce9ef5f54fdab3  libgfortran/generated/_log_c4.F90
! 5080563e31b107022de55eb336b75ad1  libgfortran/generated/_log_c8.F90
! 4d4a67ce74c7e1791cd389201103e314  libgfortran/generated/_log_r10.F90
! 7c08dd9444ba0292a63cc7faf7737fc4  libgfortran/generated/_log_r16.F90
! 9a344d0f7f86f07dd9cb55ded14a1d6e  libgfortran/generated/_log_r17.F90
! 6b1dc72bf45a1de8a9ddc69368da21db  libgfortran/generated/_log_r4.F90
! e9603377b9cc0bded115257f9675fe30  libgfortran/generated/_log_r8.F90
! 768984d7a70426a81611f9ac29eef8ad  libgfortran/generated/_mod_i16.F90
! a0d6aeac01ffa8cbd8dd66aa56a90526  libgfortran/generated/_mod_i4.F90
! 5dc1325bcbd31c7499ad19b7be62671c  libgfortran/generated/_mod_i8.F90
! b78420cceaa566b0f89dadce20bee53a  libgfortran/generated/_mod_r10.F90
! 5526e5b117d64a9e5bab9be444e7b167  libgfortran/generated/_mod_r16.F90
! 7420e77bab448fba8feb61dc73768f59  libgfortran/generated/_mod_r17.F90
! 0ecadf90cc7a1b05c578c2e81ed50861  libgfortran/generated/_mod_r4.F90
! 49d4cebd4671aa82ec10b0471b67060d  libgfortran/generated/_mod_r8.F90
! 9a5a3e8c0a4b976bcc318e8c976e481f  libgfortran/generated/_sign_i16.F90
! 12caa27114935cd0fa834c7506dbbc8d  libgfortran/generated/_sign_i4.F90
! d2b6db1e40e98380f48099f8f7c41ddd  libgfortran/generated/_sign_i8.F90
! 6f80d61a8aaa1b60cca7a8c3b11f6854  libgfortran/generated/_sign_r10.F90
! 0c7340e964c8984a966ad4bda8c20320  libgfortran/generated/_sign_r16.F90
! 6bdaf00839b28a03c49b4378df47b956  libgfortran/generated/_sign_r17.F90
! 1f4e513e9e47afb64008148e476e4f0b  libgfortran/generated/_sign_r4.F90
! 51b818db5ed8ea8a8121bbb5e3294d8c  libgfortran/generated/_sign_r8.F90
! 804d5c6c1bd18ce8bf417582928d529f  libgfortran/generated/_sin_c10.F90
! 58f873409c5e81a154a99c80eba08935  libgfortran/generated/_sin_c16.F90
! a45d289e11c89985a330ecd3b22eed99  libgfortran/generated/_sin_c17.F90
! 0f5720011d96e62ce815aeae8c360223  libgfortran/generated/_sin_c4.F90
! 2fb6154a77472a9667199b1f7b2c7ee3  libgfortran/generated/_sin_c8.F90
! bcff8e593346ce8d800f4a573c0fbc8f  libgfortran/generated/_sin_r10.F90
! 2fdcc9a3789410b5e0e20d7af77ea42d  libgfortran/generated/_sin_r16.F90
! 4d9b973723a85b704859053ca29abd9e  libgfortran/generated/_sin_r17.F90
! af0f55e1d657e7ac3d28d9b9d09606dd  libgfortran/generated/_sin_r4.F90
! 32b936b4380504c3a08d948065cca74a  libgfortran/generated/_sin_r8.F90
! 1f1cd7761d2c4d306d382eb7ca4b87f4  libgfortran/generated/_sinh_r10.F90
! 37ff029a0d881d7698a291518a265fdd  libgfortran/generated/_sinh_r16.F90
! adf6998f59f1f59dfa59b51e4d6c8878  libgfortran/generated/_sinh_r17.F90
! 0a71bb2f81c6b8780e7d5280738bbf96  libgfortran/generated/_sinh_r4.F90
! 4042848a9182d30f65eb18141ea08806  libgfortran/generated/_sinh_r8.F90
! bf2e01aa8cc427d7ffda0f02998e60e8  libgfortran/generated/_sqrt_c10.F90
! 9d9404fecda691600c60aaa480c9d145  libgfortran/generated/_sqrt_c16.F90
! e3bfffe3b988dd00cef2fde8302d5839  libgfortran/generated/_sqrt_c17.F90
! f61b4311df61c68d31c5148c9e931099  libgfortran/generated/_sqrt_c4.F90
! b28669ab0ae62c8121ca0f1a1dd11b05  libgfortran/generated/_sqrt_c8.F90
! bbb7847d6fc532cf083b913a93db5da2  libgfortran/generated/_sqrt_r10.F90
! 135854c9e2baeef89b00abc1f4627918  libgfortran/generated/_sqrt_r16.F90
! 2bb97cc00174b9d0d04a6d657244239f  libgfortran/generated/_sqrt_r17.F90
! a5290bb7058e4b4b7435548426b12f0e  libgfortran/generated/_sqrt_r4.F90
! 0111dc0e6191ac8b969421803601c790  libgfortran/generated/_sqrt_r8.F90
! cd980862c03c164f9424bfdf5afcc0e6  libgfortran/generated/_tan_r10.F90
! 7a76d06bb825daacd23f4f16f766a12b  libgfortran/generated/_tan_r16.F90
! 28f0792398777599e9ab1ed785dcdeee  libgfortran/generated/_tan_r17.F90
! ec2e9c4975c0be782c602f405de94951  libgfortran/generated/_tan_r4.F90
! 96a6c531069a7a75386cb0e2d0304644  libgfortran/generated/_tan_r8.F90
! 170698f02fd1d4c152fe18bcd5173602  libgfortran/generated/_tanh_r10.F90
! ee41ea179e4349e8f5800fb02878b895  libgfortran/generated/_tanh_r16.F90
! 103093902e4ed9bf0cc4fb1edff2c62d  libgfortran/generated/_tanh_r17.F90
! 0613c031ac4e5eec2e602ee23e49cb55  libgfortran/generated/_tanh_r4.F90
! ca2c1b2584adf317d11f1bb19bbc8bf9  libgfortran/generated/_tanh_r8.F90
! 41b9e491e6966b3a980144b825d0e9d9  libgfortran/generated/all_l1.c
! f6d7a1d6ee7095a928cf4e1d0c92f4f6  libgfortran/generated/all_l16.c
! adcab11f3a253275e07b777dbad168cd  libgfortran/generated/all_l2.c
! e9680e6967659ec07b459f9ef14a5c9f  libgfortran/generated/all_l4.c
! c74568d3401afb3651716e002159dc59  libgfortran/generated/all_l8.c
! 65733cb27e564d35d0c3161ae4add727  libgfortran/generated/any_l1.c
! 59e5e364aa775c3c3f48284038d57f52  libgfortran/generated/any_l16.c
! 26a117826311699309f00aeb2e6013d9  libgfortran/generated/any_l2.c
! e7f9378465606b26b26cbca45abf7aa5  libgfortran/generated/any_l4.c
! 9a6754e127f9eccf6610f08bbdc3e072  libgfortran/generated/any_l8.c
! 2b4b366e130c4ea483a265de0f0c0452  libgfortran/generated/bessel_r10.c
! 11cabdd37e9ee6a1cdebe6f7d3631ae3  libgfortran/generated/bessel_r16.c
! 45b6c3c6c6f44b92a438553a26c8549c  libgfortran/generated/bessel_r17.c
! 57340edf93ec9bf795875b50c3c88b62  libgfortran/generated/bessel_r4.c
! cf7526cb89d5349a3987e21400952cda  libgfortran/generated/bessel_r8.c
! 6938a22f92ef7df2434f2ea59423a6a0  libgfortran/generated/count_16_l.c
! e081279b36be9a4bf413e5fe5bd97211  libgfortran/generated/count_1_l.c
! 94aea20a129de2b3f7ee9972303f38c2  libgfortran/generated/count_2_l.c
! 5e97a73289464325f9bb0b5660046ae5  libgfortran/generated/count_4_l.c
! 3f517b2159128e31d4de5e691127a9ae  libgfortran/generated/count_8_l.c
! 21f7afaeae104a03caf931b806b5e2f3  libgfortran/generated/cshift0_c10.c
! 5ec2b607f5fd1aae1b9f606591c44a32  libgfortran/generated/cshift0_c16.c
! f3eadf256e70cfca8b875f3d1eddf6f8  libgfortran/generated/cshift0_c17.c
! 6eb8c4d68df8b07adcde542bddcb2656  libgfortran/generated/cshift0_c4.c
! d3ac8b703d5c3f567edef19f5b75e3c4  libgfortran/generated/cshift0_c8.c
! 5f2230bf50a599b52848fa4e61b79a60  libgfortran/generated/cshift0_i1.c
! d00a09e105f26665683016322ebe2be7  libgfortran/generated/cshift0_i16.c
! 397a5b1e97242a380571c2f32ab48bc2  libgfortran/generated/cshift0_i2.c
! 5748aaa6c0cf9ee32512319b6e687e6b  libgfortran/generated/cshift0_i4.c
! dbd1fc4690e3fae4e449843c451b56d2  libgfortran/generated/cshift0_i8.c
! 3b161843f653108302cb34b6b93d48c5  libgfortran/generated/cshift0_r10.c
! f10b0742f260eb2115bba78a0dc9c3ff  libgfortran/generated/cshift0_r16.c
! 289f571dade3544a8f0a6960d5653821  libgfortran/generated/cshift0_r17.c
! 9222286c80eae90a9a431106b37d8cf6  libgfortran/generated/cshift0_r4.c
! 2d4ffa7ba611049264a01ae247f0b8e7  libgfortran/generated/cshift0_r8.c
! 6d989a95ae39eba86e3bc85f53c92e68  libgfortran/generated/cshift1_16.c
! 84bc2b4f54c98ea553027cff88e6f869  libgfortran/generated/cshift1_16_c10.c
! 221bb14491dc3e3090afe577f2e69df9  libgfortran/generated/cshift1_16_c16.c
! 9b362a3a9abfd7568dbe8e152277282c  libgfortran/generated/cshift1_16_c17.c
! 7c6fc08a279fe5448aeca4bf9dffe455  libgfortran/generated/cshift1_16_c4.c
! abd9960ca5c8eb2a598b8d2986f2b5d9  libgfortran/generated/cshift1_16_c8.c
! 4e131ae4ac2e6f2c14ff365e0501c786  libgfortran/generated/cshift1_16_i1.c
! 4721c953a858a6d064760558bf940547  libgfortran/generated/cshift1_16_i16.c
! 260d5d9fdd6544bf3970f66b7129a1d1  libgfortran/generated/cshift1_16_i2.c
! 570f849bc76577ea174cfe4a255f3b6a  libgfortran/generated/cshift1_16_i4.c
! c6df847db9976c096cf08598cdc102ce  libgfortran/generated/cshift1_16_i8.c
! 6e3b293fcd798d2840cd1758337cb8c8  libgfortran/generated/cshift1_16_r10.c
! e3db58ea44fea46757634b9311ad56b2  libgfortran/generated/cshift1_16_r16.c
! 81a862bcb55716bedae8b5e41184764f  libgfortran/generated/cshift1_16_r17.c
! 9a824e891c43e1e8155625722f02ddc3  libgfortran/generated/cshift1_16_r4.c
! 9987be9cbf122352ad3139963caeb426  libgfortran/generated/cshift1_16_r8.c
! 9e496f454f551b3ef4f934707ec1af78  libgfortran/generated/cshift1_4.c
! e456edd5f32495bda5441dc3f03de7d2  libgfortran/generated/cshift1_4_c10.c
! d420c4054464c935a075802688a98853  libgfortran/generated/cshift1_4_c16.c
! af9e3798a7b630d3f52c59afde30ce78  libgfortran/generated/cshift1_4_c17.c
! df6d372c0169c12e66175e6cf1879267  libgfortran/generated/cshift1_4_c4.c
! 27e66ed3a9319de722a91a2e1ba8397f  libgfortran/generated/cshift1_4_c8.c
! 7685868f0789a240946953ae897ba1c4  libgfortran/generated/cshift1_4_i1.c
! 73711e5fc5d9869acb531d22b069e702  libgfortran/generated/cshift1_4_i16.c
! c38259fee2e8c7604ff7a5448a4d6fa5  libgfortran/generated/cshift1_4_i2.c
! a9293f1205c24bd59ea0455ae73c5aab  libgfortran/generated/cshift1_4_i4.c
! 2e8f1f2ea324afd3517addb5e4471a83  libgfortran/generated/cshift1_4_i8.c
! 7eb2012789147af6f4284a00cc4a4934  libgfortran/generated/cshift1_4_r10.c
! c477b42ffefd984cb343d99e56720b7f  libgfortran/generated/cshift1_4_r16.c
! e4e5859e1ee551c98f64f64d48acdd8b  libgfortran/generated/cshift1_4_r17.c
! 48f3aefceb1cea61b09b41c7e55e8ada  libgfortran/generated/cshift1_4_r4.c
! a00137deec9ea6999306b3e6dd94ed83  libgfortran/generated/cshift1_4_r8.c
! ab9c7fdf7f039a12ad9fb6b9a64929ff  libgfortran/generated/cshift1_8.c
! 88dc713ba5130d5b7edec3475f123c00  libgfortran/generated/cshift1_8_c10.c
! 3a8656518c69e82a0774fbc364bdbad5  libgfortran/generated/cshift1_8_c16.c
! a4dea04b39945a08aad18b92976d2091  libgfortran/generated/cshift1_8_c17.c
! f133374213d587def1a2b65f52e4ee6b  libgfortran/generated/cshift1_8_c4.c
! c727ab23fb8ad4170c350266e6fbc9c6  libgfortran/generated/cshift1_8_c8.c
! b03b29ef716dc41b58db791906e2c38d  libgfortran/generated/cshift1_8_i1.c
! a461c7580105cce621351d0295e0d673  libgfortran/generated/cshift1_8_i16.c
! b47be80c7c31d63c5a36d5f0f129f46d  libgfortran/generated/cshift1_8_i2.c
! fd16f59dcc852505e2edc2d86d30c77f  libgfortran/generated/cshift1_8_i4.c
! 18f92bc06cc01b2bd8a7b65a31c94b8d  libgfortran/generated/cshift1_8_i8.c
! 7c7bb43f8fc563c3205e6d56585b7e03  libgfortran/generated/cshift1_8_r10.c
! 35d2a63e253fc7db4df78110f7556925  libgfortran/generated/cshift1_8_r16.c
! 2da8a523db9041a89105f38048705245  libgfortran/generated/cshift1_8_r17.c
! 3d9a8121fde457a766a06db2932ad14f  libgfortran/generated/cshift1_8_r4.c
! f78d448b5cca80648dcd13bc33387cd9  libgfortran/generated/cshift1_8_r8.c
! f9f9b9890ca10ab6d2e95a46b6a32503  libgfortran/generated/eoshift1_16.c
! 530fc9509aa2f72f59eecf9e1aae311d  libgfortran/generated/eoshift1_4.c
! 33d41b161deae51e9ba8c9fc5d732777  libgfortran/generated/eoshift1_8.c
! 804ca3a1a510f07272d1e114f586f1e6  libgfortran/generated/eoshift3_16.c
! 74bf72a6215f5cdac78bb7c4540352a9  libgfortran/generated/eoshift3_4.c
! c0612ab7e8e1f783f64cf32834cc6376  libgfortran/generated/eoshift3_8.c
! 645828a37c8ec03158751eb4fe037bb5  libgfortran/generated/findloc0_c10.c
! dad343a44a070d2f9f2da65781dde632  libgfortran/generated/findloc0_c16.c
! b3336085865ad7471653450a5ab2f763  libgfortran/generated/findloc0_c17.c
! f23935503ead1888a5de51a1abac2a24  libgfortran/generated/findloc0_c4.c
! a89ccfff5382dff3f2475847c8f6ecc8  libgfortran/generated/findloc0_c8.c
! bfdd03bd67263b4cf3c972155d4c5b6f  libgfortran/generated/findloc0_i1.c
! d93c536bc689e396c31d73489b2fdd0b  libgfortran/generated/findloc0_i16.c
! 5a456be6b6f761cd80d0e2efb410bab6  libgfortran/generated/findloc0_i2.c
! 5d30820a5d14c1f62d75ce4f86b6b4ff  libgfortran/generated/findloc0_i4.c
! 12d322e4fd6dcedf40ef78bfd0061827  libgfortran/generated/findloc0_i8.c
! 0656367dad24fe4d230090d9d4859460  libgfortran/generated/findloc0_r10.c
! 66a05d90c0f9ed322d4a137aa3311224  libgfortran/generated/findloc0_r16.c
! a516063703a4695f469d9ff487c2b665  libgfortran/generated/findloc0_r17.c
! 12fe39f1a3e073f5b7e3d634f19a149b  libgfortran/generated/findloc0_r4.c
! 6ce5cd709a4b7409a71bff61812ed2a1  libgfortran/generated/findloc0_r8.c
! bb50fa1d56aab5fa4697c68c79012a2b  libgfortran/generated/findloc0_s1.c
! 8b43edf1b82086ac1b13b20c287da6cd  libgfortran/generated/findloc0_s4.c
! 40cf0239291ce1c2e8351df6e43356a0  libgfortran/generated/findloc1_c10.c
! 7388a2ee82eb69d2b9bf5468e3e8b24f  libgfortran/generated/findloc1_c16.c
! 78cd17f145153ff2c33ef19f04dcb7ae  libgfortran/generated/findloc1_c17.c
! c07765e74be5ea41cbfb067823c8748b  libgfortran/generated/findloc1_c4.c
! f8438c9f81c95ffa8902e64fca6cd904  libgfortran/generated/findloc1_c8.c
! 37eda44cc13e2a5e52fb5d105ecf2718  libgfortran/generated/findloc1_i1.c
! 7d704cfa1187d6ca9168a95b753fe7c8  libgfortran/generated/findloc1_i16.c
! b3ea6239d2bf1b4698ebcb32b2053bca  libgfortran/generated/findloc1_i2.c
! 9e0fe2156a85ac6f9dce95f3da82fb77  libgfortran/generated/findloc1_i4.c
! d8f4e4a3d7bb5bf053b29c2b4d04bf41  libgfortran/generated/findloc1_i8.c
! da38d49df97388326128b5cd7c2e1c06  libgfortran/generated/findloc1_r10.c
! 9372b03ea26a457d76269e3d0cb22371  libgfortran/generated/findloc1_r16.c
! 8a9114256e5a36e39809fd97b502315c  libgfortran/generated/findloc1_r17.c
! 6c3d813b497494c32d51f61ebd59bdcc  libgfortran/generated/findloc1_r4.c
! 49702fb1a30fa8ca92924c412e497bb3  libgfortran/generated/findloc1_r8.c
! 301cd5764b6105a19e42a9b31ccf6e33  libgfortran/generated/findloc1_s1.c
! f11cd2fc5ce1eaeac8e07d899d00dfbd  libgfortran/generated/findloc1_s4.c
! de90d96ade728c3b099cc8aeeb4e5b2b  libgfortran/generated/findloc2_s1.c
! b50d11e6a7898f6b105c98589caa7741  libgfortran/generated/findloc2_s4.c
! fccd0ca35e7949bc0645e95e58a9841c  libgfortran/generated/iall_i1.c
! 72d15ba6d399b94299ce9eab6bf3fa9b  libgfortran/generated/iall_i16.c
! 0da9d26e3c5b7e6d00e954e2cfa94f11  libgfortran/generated/iall_i2.c
! 8c2bef15a677ff62d671a1b6ab1f8295  libgfortran/generated/iall_i4.c
! 6992b61d8aec5f0094d130afe1ef735c  libgfortran/generated/iall_i8.c
! 4102b4f92305054afc161a222fabd5ca  libgfortran/generated/iany_i1.c
! ebc3759ed6c9d69e5b8bc920b75af992  libgfortran/generated/iany_i16.c
! b06f5a36a1b592c0a846c014a740953f  libgfortran/generated/iany_i2.c
! 096efa591f9d28dfc702b533be991499  libgfortran/generated/iany_i4.c
! 71ccc018db29c433925751be911d0427  libgfortran/generated/iany_i8.c
! 5ca6fcc0c2f8c9354d008f717ef33f84  libgfortran/generated/in_pack_c10.c
! 06a452feaba01ab3ee4fac6766c3f446  libgfortran/generated/in_pack_c16.c
! 05be5837bdd9157f6a655f617e48524b  libgfortran/generated/in_pack_c17.c
! 6a3e3055ae3a6099e7f70615be6fe849  libgfortran/generated/in_pack_c4.c
! e6232a8dad2df53ad3aa6df7098ef679  libgfortran/generated/in_pack_c8.c
! a68b85103595871e048d9de72b3c991e  libgfortran/generated/in_pack_i1.c
! e68b7af219bebdcb2d7fdf54707fd424  libgfortran/generated/in_pack_i16.c
! 156cb1cf1751ff9c35796eb36f552347  libgfortran/generated/in_pack_i2.c
! 08f6119bf7c89c657feb7bb04b16abf7  libgfortran/generated/in_pack_i4.c
! bbdd468554a464f4dc72750268a30399  libgfortran/generated/in_pack_i8.c
! 8c7b573c613e9131f40343145ee3994a  libgfortran/generated/in_pack_r10.c
! d913da7e21ae91138d42b52a3f47cb81  libgfortran/generated/in_pack_r16.c
! 2cac54f10917f4989cb303fc2261f75a  libgfortran/generated/in_pack_r17.c
! e151e069ca6133291e9ef9d543ca4bbc  libgfortran/generated/in_pack_r4.c
! f7c92a1be5306c05ca67628f13a2644b  libgfortran/generated/in_pack_r8.c
! 62f98c0731d572d00ce378a6a535f318  libgfortran/generated/in_unpack_c10.c
! f60bec596c0c05a530e6d04d314dd6c3  libgfortran/generated/in_unpack_c16.c
! 86492ef744a6be3af544e520eb4177b1  libgfortran/generated/in_unpack_c17.c
! 4716d60212dc35a2ae79902e44dd4962  libgfortran/generated/in_unpack_c4.c
! da0610ac0e271328e4a2c1036237e156  libgfortran/generated/in_unpack_c8.c
! 207b76b2090a7be72afdcc7cebe8d2c7  libgfortran/generated/in_unpack_i1.c
! b2a00b719c15e35d444be94e15a46633  libgfortran/generated/in_unpack_i16.c
! b45242a89bcf896c8ad1f292c209b5f6  libgfortran/generated/in_unpack_i2.c
! def7b7245fce7521fd472935594d595f  libgfortran/generated/in_unpack_i4.c
! 69c92852c4b3c2c5253d13edfb62cf4b  libgfortran/generated/in_unpack_i8.c
! 922f233e412a333b1f003396eca48b6a  libgfortran/generated/in_unpack_r10.c
! 04c74687dd2d6d54177b27f06620a55c  libgfortran/generated/in_unpack_r16.c
! da1228a2d504e109e1ceca11c44f7430  libgfortran/generated/in_unpack_r17.c
! e1f900580cf8a8dbf51f7eb6b35debd5  libgfortran/generated/in_unpack_r4.c
! c99272ef1a8629bfa2c3a4fe2640e053  libgfortran/generated/in_unpack_r8.c
! d12e2fed9a2c91588398e73955650416  libgfortran/generated/iparity_i1.c
! 3ca41ab2dcad4fd338691cd803ed4ef5  libgfortran/generated/iparity_i16.c
! a526c5c956f932998143c24d2364a9d4  libgfortran/generated/iparity_i2.c
! 72f68f1cd109bee704adcc398d357ffd  libgfortran/generated/iparity_i4.c
! 18c82a61930672cca3906ba90612d4d5  libgfortran/generated/iparity_i8.c
! 39144082b2d03fa63f65050a47111529  libgfortran/generated/matmul_c10.c
! 8a1467c1263d1151991c2aa027e1efa5  libgfortran/generated/matmul_c16.c
! a38287cf42d600653f882e70c3045c96  libgfortran/generated/matmul_c17.c
! fbcd37d3f8c3acd913c31a510add4e70  libgfortran/generated/matmul_c4.c
! 6764e17e379f8316a5c29f8703dc5b01  libgfortran/generated/matmul_c8.c
! 2cac0e461c307c9f0b25b1434a460e63  libgfortran/generated/matmul_i1.c
! 404bb133fd529d627abef7e9a0316e83  libgfortran/generated/matmul_i16.c
! 2c5c170c848304ebbb76a1b1d6c17193  libgfortran/generated/matmul_i2.c
! a6c6489dd3dc58687021003a8be9b8bc  libgfortran/generated/matmul_i4.c
! d1ba5b88e4085d7bae116ee691d6dc0a  libgfortran/generated/matmul_i8.c
! b38d3335d1d5235df00bff39a6a64f62  libgfortran/generated/matmul_l16.c
! dde3899103c765aabc5cac5ecb0d6519  libgfortran/generated/matmul_l4.c
! d87ec9fd9b45064bfc86d9100a42ae43  libgfortran/generated/matmul_l8.c
! 54695996c51e09c59632ff399687e24d  libgfortran/generated/matmul_r10.c
! e579d5406d25496d79cf59bb36ed23c3  libgfortran/generated/matmul_r16.c
! c4eb24671d8e188eb5412f750057b682  libgfortran/generated/matmul_r17.c
! 397410b99d69b77529a6d804bf110c1d  libgfortran/generated/matmul_r4.c
! fa66989d4e40d86e05080c47f5a71ac7  libgfortran/generated/matmul_r8.c
! 201cfd58d7d61ee0c0c74c069ed59d08  libgfortran/generated/matmulavx128_c10.c
! e9a91a6056b5f29b3954f01e33f3a849  libgfortran/generated/matmulavx128_c16.c
! d3a5492b100d17686fa63ccbd9fd60bd  libgfortran/generated/matmulavx128_c17.c
! 1b2e0b002fdd4fb49c8305dbeeddd2d5  libgfortran/generated/matmulavx128_c4.c
! b77c786cf7065f57b05b89db98b19443  libgfortran/generated/matmulavx128_c8.c
! 545e205608c48665ff19978b2c223a41  libgfortran/generated/matmulavx128_i1.c
! 04a9f4b882b1baaa0bbdaef68425234a  libgfortran/generated/matmulavx128_i16.c
! cab67d1f4c13f2ff767257c54b133970  libgfortran/generated/matmulavx128_i2.c
! f158467731c52011d331240064e89ae0  libgfortran/generated/matmulavx128_i4.c
! d75352e07c2d072a90dcf6cd3dffc5b8  libgfortran/generated/matmulavx128_i8.c
! 26bba1a0c82994dfecc3b67147bdf030  libgfortran/generated/matmulavx128_r10.c
! 87e1ef2dc4068c46167612ae875a68af  libgfortran/generated/matmulavx128_r16.c
! bd6c4df226c700e62833cba3c1eed359  libgfortran/generated/matmulavx128_r17.c
! 16c4f7e214b42e587586d7002a2f141f  libgfortran/generated/matmulavx128_r4.c
! 436eee9a870f3bc72aa11353a994c74e  libgfortran/generated/matmulavx128_r8.c
! 39d79841ecca10e0a7b92ecdd7200e73  libgfortran/generated/maxloc0_16_i1.c
! 9dd7d0b95c64e9531ba282cc3f5befbb  libgfortran/generated/maxloc0_16_i16.c
! 014f02778984758da9c02841469e683c  libgfortran/generated/maxloc0_16_i2.c
! 07e399cccfa3264d1a6ab36b1fea9fba  libgfortran/generated/maxloc0_16_i4.c
! 3c39d41722f0b677370fd56c2cce69b4  libgfortran/generated/maxloc0_16_i8.c
! 7b42e4e34f37cf2c0e416ebeab6d0282  libgfortran/generated/maxloc0_16_m1.c
! f4abc1f3b54c1f0102171a549c66793e  libgfortran/generated/maxloc0_16_m16.c
! 578c1dc441dd1a266b8c5d6768d8a584  libgfortran/generated/maxloc0_16_m2.c
! 639bfb4e6fe3d60999aef48ded600ede  libgfortran/generated/maxloc0_16_m4.c
! b13523bb6f6861303f18b31d20150b97  libgfortran/generated/maxloc0_16_m8.c
! 41db80f6bb935f0919de817fcc117a58  libgfortran/generated/maxloc0_16_r10.c
! 8b9fccb501972bb8fbe10666c99825aa  libgfortran/generated/maxloc0_16_r16.c
! 49e50a0dd2bda978aadb6b8b253bae9b  libgfortran/generated/maxloc0_16_r17.c
! b1d3d079c09038dca9855b18f0d49640  libgfortran/generated/maxloc0_16_r4.c
! 9ed3f749621ae2d6c25088caf977fabc  libgfortran/generated/maxloc0_16_r8.c
! 267eb42df0c8ab0095282d2078b2ae9e  libgfortran/generated/maxloc0_16_s1.c
! e97008b998545682b3ac9d6fd669b15d  libgfortran/generated/maxloc0_16_s4.c
! c1319fac6a0fd87312a08634803867cf  libgfortran/generated/maxloc0_4_i1.c
! b6d82871c9674e60fb316520c4b13eec  libgfortran/generated/maxloc0_4_i16.c
! ca888c06fa8f1a7e34f7583c6ceba119  libgfortran/generated/maxloc0_4_i2.c
! 9daf03d229c07cf0d92143b1ed58ae79  libgfortran/generated/maxloc0_4_i4.c
! 4b981c50bf7fab2b402b9b32c8c2038d  libgfortran/generated/maxloc0_4_i8.c
! e73f9464c8a65822c221b76c7cc903e1  libgfortran/generated/maxloc0_4_m1.c
! b00def396cd6d79d90197961f8d1b277  libgfortran/generated/maxloc0_4_m16.c
! 1b6871c4b12959d695e280cc6562f676  libgfortran/generated/maxloc0_4_m2.c
! f669da07cf7f597c2d8b8c0010162af7  libgfortran/generated/maxloc0_4_m4.c
! 8eee41d501e61abdc932249048036efa  libgfortran/generated/maxloc0_4_m8.c
! bd212660ffdd15e47ddefd8b9d7e86d9  libgfortran/generated/maxloc0_4_r10.c
! 3db1f86352bdaf2b7c88e620e6d5ac2d  libgfortran/generated/maxloc0_4_r16.c
! 072fcaf23a3bfbd27cefc51a559329d1  libgfortran/generated/maxloc0_4_r17.c
! 22d59eede9d993361e2e9328a1faf186  libgfortran/generated/maxloc0_4_r4.c
! ddcd1597b83a51374223e0e19402d2f3  libgfortran/generated/maxloc0_4_r8.c
! 809538784caeb4b4c76c9180367682e3  libgfortran/generated/maxloc0_4_s1.c
! 10863eb6c1c64005ecc3109c0cef4263  libgfortran/generated/maxloc0_4_s4.c
! 3ad48d772704eb384557774e7470fff6  libgfortran/generated/maxloc0_8_i1.c
! 11299d7f07d13a73becd35d78aee859d  libgfortran/generated/maxloc0_8_i16.c
! 8faef7cb9857efe61d63939b399061da  libgfortran/generated/maxloc0_8_i2.c
! df265678cbd6b5fec74c380372874457  libgfortran/generated/maxloc0_8_i4.c
! 3adca69d9a4ccad3ae33660d9b619c38  libgfortran/generated/maxloc0_8_i8.c
! 89d1e4d25107cce66c33f149300be39d  libgfortran/generated/maxloc0_8_m1.c
! 49f3024342364a699adb755db0f3aaf7  libgfortran/generated/maxloc0_8_m16.c
! 34949700539a44fe08f2ad266cdd9730  libgfortran/generated/maxloc0_8_m2.c
! f7f6a819c341c1f1f1c4453d27944e3d  libgfortran/generated/maxloc0_8_m4.c
! 8e8c8510e67903540cd91faccf916972  libgfortran/generated/maxloc0_8_m8.c
! 47f5657cb79b47201aeb12c69fdd0791  libgfortran/generated/maxloc0_8_r10.c
! 583c56817c36044fb7570514c9d69a46  libgfortran/generated/maxloc0_8_r16.c
! eca5661f6f3ad69f20aaace7d68cb3b4  libgfortran/generated/maxloc0_8_r17.c
! 75b76d55d434ec7dec8dffbcefc835f6  libgfortran/generated/maxloc0_8_r4.c
! 1ef62e1ffbb6fe1f1010006b4466b10c  libgfortran/generated/maxloc0_8_r8.c
! ae07956a09c3e7d7d0f6e151c15d5e67  libgfortran/generated/maxloc0_8_s1.c
! c8479bc8b435f84ab349e54490101196  libgfortran/generated/maxloc0_8_s4.c
! 16dacd74269530cf3f4f31e22a65c6c4  libgfortran/generated/maxloc1_16_i1.c
! b207f2ff963bd7e0ab8d147179d8a49d  libgfortran/generated/maxloc1_16_i16.c
! 65c8064f52b67df09d8609696c69ac46  libgfortran/generated/maxloc1_16_i2.c
! 2f919b719319e0fe9b447dcbe7ce4e86  libgfortran/generated/maxloc1_16_i4.c
! 38dd59271410f1dd09cd254d70fe27c6  libgfortran/generated/maxloc1_16_i8.c
! 4b8140cfbeffeed800f7fa25803299eb  libgfortran/generated/maxloc1_16_m1.c
! 7914e0b8d2e01730dd30b03be1abea2c  libgfortran/generated/maxloc1_16_m16.c
! b0ac67434636789c9fdb5f49d46a49d7  libgfortran/generated/maxloc1_16_m2.c
! 42b7e62a719e75738d2ae1c3412ae636  libgfortran/generated/maxloc1_16_m4.c
! 6079bdc10aedb9b54398646881da2419  libgfortran/generated/maxloc1_16_m8.c
! 35dc86068872d07a326863bc52502bf9  libgfortran/generated/maxloc1_16_r10.c
! f362e425719650d50aefe698ab7f2dd1  libgfortran/generated/maxloc1_16_r16.c
! 94e6fc290c598a234ca81545f8a9a9b3  libgfortran/generated/maxloc1_16_r17.c
! fddc83df8962dc7cd4d66d8a97f7b701  libgfortran/generated/maxloc1_16_r4.c
! c474d9160f79a80dcebde3f7b68ee34d  libgfortran/generated/maxloc1_16_r8.c
! 813d8d0726d56a2ea1561bfc6ab83007  libgfortran/generated/maxloc1_16_s1.c
! 5e926b6813d7f67776600dccf7ea67ed  libgfortran/generated/maxloc1_16_s4.c
! 93caa3255602429641408fbcec83edf8  libgfortran/generated/maxloc1_4_i1.c
! 2d27c4654ed5eab2d0ad3c16563253b0  libgfortran/generated/maxloc1_4_i16.c
! cfa78d46adffb21b946126fa5ff46ad0  libgfortran/generated/maxloc1_4_i2.c
! 62f169e805e018e8bb7850e4f89480f7  libgfortran/generated/maxloc1_4_i4.c
! 810e8baee80412222e3d5f5a48d99cef  libgfortran/generated/maxloc1_4_i8.c
! bfefc9ba6fc545b075288cdd9f799282  libgfortran/generated/maxloc1_4_m1.c
! fe937d6f1981929b4d82610864b42111  libgfortran/generated/maxloc1_4_m16.c
! a96a73cd0a6b5082b956741158ffbc06  libgfortran/generated/maxloc1_4_m2.c
! ad1b5c314d6850d296de9ce8ebcd050b  libgfortran/generated/maxloc1_4_m4.c
! 44608c08491d9a2b0ce730c17bc6a697  libgfortran/generated/maxloc1_4_m8.c
! 077f89598a394e6dc10591d4a2df8226  libgfortran/generated/maxloc1_4_r10.c
! 0a06dabc5df0de6604d416e1da18d306  libgfortran/generated/maxloc1_4_r16.c
! 0c8e2fde1e467df280099fa4bc7d0905  libgfortran/generated/maxloc1_4_r17.c
! 8e835e43c9003f730fc0e7a1fd517be4  libgfortran/generated/maxloc1_4_r4.c
! 85cbad8b8940d57f9b461270b09e1df6  libgfortran/generated/maxloc1_4_r8.c
! 96b48ad2700c2dd4fd58b616d0b6c127  libgfortran/generated/maxloc1_4_s1.c
! 11820eaf6e185a246d1c4a87a0dca164  libgfortran/generated/maxloc1_4_s4.c
! 2f35d24590d3d5299386bc72b27a2a41  libgfortran/generated/maxloc1_8_i1.c
! efec5582a9bf38835111e38d60b28ea5  libgfortran/generated/maxloc1_8_i16.c
! 90a8bfc85248aac6a092fa21df7c9b59  libgfortran/generated/maxloc1_8_i2.c
! b036f2b30657c33e846f0093d4608330  libgfortran/generated/maxloc1_8_i4.c
! 8f2a29e4abe66e0dc2e7fec7852264d4  libgfortran/generated/maxloc1_8_i8.c
! 193ba504bdac5a8785fcf36185d40f43  libgfortran/generated/maxloc1_8_m1.c
! 3d09342b2aa62e0499f4b40dc1fb6e7d  libgfortran/generated/maxloc1_8_m16.c
! c1d6adf1031a03af2675381854ab5e14  libgfortran/generated/maxloc1_8_m2.c
! 19872fe1a3152cde2425e30bc82b1d4c  libgfortran/generated/maxloc1_8_m4.c
! a2ece336926fa621adf5bf44fb5ac1a0  libgfortran/generated/maxloc1_8_m8.c
! 433a56b991761896ff1ac144b4c23e71  libgfortran/generated/maxloc1_8_r10.c
! 5e862f95fc2f5b386ddc808f67f0dd9f  libgfortran/generated/maxloc1_8_r16.c
! 2f984f6d219e164d3124c1de69327746  libgfortran/generated/maxloc1_8_r17.c
! 0933348aac841df1004f22cfcbd6e16b  libgfortran/generated/maxloc1_8_r4.c
! c00c9c4e3736db662a445ceda2dd6cb7  libgfortran/generated/maxloc1_8_r8.c
! 325a42505fee6cd89ebdcf801c6d24d1  libgfortran/generated/maxloc1_8_s1.c
! a5054f913d01838adee94fc6218c5cbb  libgfortran/generated/maxloc1_8_s4.c
! 1d3fc63ca671ce4ec7b4d655def30ac9  libgfortran/generated/maxloc2_16_s1.c
! 5842e4d47e538a797521f65712a55397  libgfortran/generated/maxloc2_16_s4.c
! aa9c57fe25789ebf5354c1e24fddfbec  libgfortran/generated/maxloc2_4_s1.c
! 4615484f367920b98d84adb66f66f9c0  libgfortran/generated/maxloc2_4_s4.c
! 2f568a694361230820994b008f85b3da  libgfortran/generated/maxloc2_8_s1.c
! c8f332d567c5acbce0da928f700ca02e  libgfortran/generated/maxloc2_8_s4.c
! d81fe9019c8e83500ae93623698031a8  libgfortran/generated/maxval0_s1.c
! 68ed51a3d001a41c8625d6e6177de7e5  libgfortran/generated/maxval0_s4.c
! 5c555f70359d21971ee81b892600481d  libgfortran/generated/maxval1_s1.c
! 47f4e0e5c794a1b1d2bb7a8b98594024  libgfortran/generated/maxval1_s4.c
! 51d2a54d0a5cf7a246aba22c4da3075c  libgfortran/generated/maxval_i1.c
! 6890682d299adb0e4f619cd868ad6a86  libgfortran/generated/maxval_i16.c
! eff8409241d8f289a999033a93b7ac4d  libgfortran/generated/maxval_i2.c
! 8e7e2a2eca709610b52c79af0689440f  libgfortran/generated/maxval_i4.c
! 94d6fe7d843e0a98644451c67193f742  libgfortran/generated/maxval_i8.c
! f1d9f07fd17114a183812c1a525b23c6  libgfortran/generated/maxval_m1.c
! b5162ee22406b7ef4000d91a3f3382a6  libgfortran/generated/maxval_m16.c
! 845a27e84f8b6b131799917f63b7fc7e  libgfortran/generated/maxval_m2.c
! fa8aa3ac4788c13e44b7a62ff6c1d5cf  libgfortran/generated/maxval_m4.c
! 609d2a16e5c4c97ab2b051e30c1ff0a2  libgfortran/generated/maxval_m8.c
! 66beb27b8563a1a693ced61c38d1cece  libgfortran/generated/maxval_r10.c
! 477c727267f76f9305a54c2f01ee7b7d  libgfortran/generated/maxval_r16.c
! ede320822d38e52f72fb5f2dd243a4c0  libgfortran/generated/maxval_r17.c
! 64425afe98ecfdd1119ddb84da0b46b7  libgfortran/generated/maxval_r4.c
! 410c217b464815b2a738c426c31264ed  libgfortran/generated/maxval_r8.c
! d845ac2b69f43a61a216d8844ced69d5  libgfortran/generated/minloc0_16_i1.c
! 6721033aadcad8c347e90ac22c193eba  libgfortran/generated/minloc0_16_i16.c
! 7aeed14821853600bbc28fe2402296ad  libgfortran/generated/minloc0_16_i2.c
! 086dde4a4ce2183aaafdcf39310c8448  libgfortran/generated/minloc0_16_i4.c
! 14b2564c1faf776c4cc633bc9b23320c  libgfortran/generated/minloc0_16_i8.c
! 350ee9708e7b30b891c1b0d63c0a5f7e  libgfortran/generated/minloc0_16_m1.c
! f318170c95ea08ea9db1b4542c1c0bee  libgfortran/generated/minloc0_16_m16.c
! 5feda4b7bcf70f5b30c868303a93a53c  libgfortran/generated/minloc0_16_m2.c
! 6dbf81be2b7947891c4bfc0e66eab13f  libgfortran/generated/minloc0_16_m4.c
! 233d58050bd11c44596f1b34732887d1  libgfortran/generated/minloc0_16_m8.c
! b60cd1c30d15f2807f033597d1bd6a42  libgfortran/generated/minloc0_16_r10.c
! 39f7d855223d4b4bbff9b5913bd87fb6  libgfortran/generated/minloc0_16_r16.c
! b9298add1f81791c0e00136dbd980be1  libgfortran/generated/minloc0_16_r17.c
! 70402cf3b9d34eb0a7fa9ed9083bbdc3  libgfortran/generated/minloc0_16_r4.c
! fd62c6f67051c6664ab6bde943c0ac04  libgfortran/generated/minloc0_16_r8.c
! 9e7a0227ffac0f73c411162026e161b6  libgfortran/generated/minloc0_16_s1.c
! 6b7a767fa0b98243ce76283995767a61  libgfortran/generated/minloc0_16_s4.c
! 32e0c692e7f80b12ab466ed19a8e5c5f  libgfortran/generated/minloc0_4_i1.c
! f895e8df5a1b88b1b40d6f87162b7b03  libgfortran/generated/minloc0_4_i16.c
! da52519f156dafa936d7f0d288d16435  libgfortran/generated/minloc0_4_i2.c
! 8bc8d8100b7b55b5e6016ce7bf031791  libgfortran/generated/minloc0_4_i4.c
! 0d8f1074665e65f504c919dc2ebdd32f  libgfortran/generated/minloc0_4_i8.c
! de00f2af79562c085774fce1db09ed9c  libgfortran/generated/minloc0_4_m1.c
! 9ca45ad15e533d4a9e649fa98433f62b  libgfortran/generated/minloc0_4_m16.c
! 7f9fc8f51c96efd7536423823ae02037  libgfortran/generated/minloc0_4_m2.c
! 1cfd94df0b2bb78bd0101e6a89b0521b  libgfortran/generated/minloc0_4_m4.c
! b6b70ef417f3feb7d16cbd48750e605b  libgfortran/generated/minloc0_4_m8.c
! 6f9b60416bc413e6b26b208d9fbe0e9b  libgfortran/generated/minloc0_4_r10.c
! 7baa6224dea7fe64fbe85709e989b524  libgfortran/generated/minloc0_4_r16.c
! 6838efd4d620a81b78befc8f69603394  libgfortran/generated/minloc0_4_r17.c
! 2c1ab62045ea4b95b7b99e59e82c94f1  libgfortran/generated/minloc0_4_r4.c
! 05c845ccdab125eee74cdf3df0174e8a  libgfortran/generated/minloc0_4_r8.c
! 79dfd19644a5a225dbe8e3c6b5bfd9cb  libgfortran/generated/minloc0_4_s1.c
! c50487eea17a81c922d5d9be611397ce  libgfortran/generated/minloc0_4_s4.c
! 6b667663e9c5648f62655762bb984fbf  libgfortran/generated/minloc0_8_i1.c
! f083b9736b959f24bffc9561f0e05cb4  libgfortran/generated/minloc0_8_i16.c
! 8077b2dd2921c449600b88b241e86642  libgfortran/generated/minloc0_8_i2.c
! 4523e9da3fa824a3bfbdc66082beb3af  libgfortran/generated/minloc0_8_i4.c
! d25d28998f20447b573197a23b264844  libgfortran/generated/minloc0_8_i8.c
! 23ca415eb7220df6eec2e86f6469b21d  libgfortran/generated/minloc0_8_m1.c
! 3db1a013a96ccc73395c7d85b7d0eaf2  libgfortran/generated/minloc0_8_m16.c
! a538132df1c5788bfde8ae123b6439d1  libgfortran/generated/minloc0_8_m2.c
! 9711b3ae87e60c20368fb595938b3900  libgfortran/generated/minloc0_8_m4.c
! 4c471fa5767c3bb54080fd4069616bd7  libgfortran/generated/minloc0_8_m8.c
! 4c2778c38efa8419f7d8d94691aba149  libgfortran/generated/minloc0_8_r10.c
! f3250f237192ed9bc259c0e94b952181  libgfortran/generated/minloc0_8_r16.c
! 209f1c0fd56d13063a57d427cb6e1731  libgfortran/generated/minloc0_8_r17.c
! 9477cbef817fc7e5fd6160001962af11  libgfortran/generated/minloc0_8_r4.c
! 990c4315c75fcf0991b662ead1180db9  libgfortran/generated/minloc0_8_r8.c
! b62d3807a9c689c0def2d012452e5231  libgfortran/generated/minloc0_8_s1.c
! 0c32f7212fae11aa4a371ecf43d7a27a  libgfortran/generated/minloc0_8_s4.c
! 6a95df34fedddde70cb58704dacd2c4a  libgfortran/generated/minloc1_16_i1.c
! 92d34c7e81bd69efc081ad61b5cc85f5  libgfortran/generated/minloc1_16_i16.c
! 4c5c7433f375f13ed7884b3e4f4e2743  libgfortran/generated/minloc1_16_i2.c
! aa26badfc76460b94c51a7c0b8cd7ec8  libgfortran/generated/minloc1_16_i4.c
! 91184158911a7bc2a9fa8d240b2930ab  libgfortran/generated/minloc1_16_i8.c
! adc37a400a7158399876c84787f7aadd  libgfortran/generated/minloc1_16_m1.c
! 55c602101d8fc2f6f0dbc3da55fc0400  libgfortran/generated/minloc1_16_m16.c
! 51f6ddf0aff0e597bf976ac451042a8f  libgfortran/generated/minloc1_16_m2.c
! ee817eccd1ec8f462a983a618436c245  libgfortran/generated/minloc1_16_m4.c
! 9816b5dc6401a47c799b9997fed52eb6  libgfortran/generated/minloc1_16_m8.c
! 51307ec2d69fa2244dcf0768ca50bd90  libgfortran/generated/minloc1_16_r10.c
! 8d0f11dcbdad2de65d9b066a1af21575  libgfortran/generated/minloc1_16_r16.c
! faeaeda67ede711f29a892c72188d515  libgfortran/generated/minloc1_16_r17.c
! 91802a8265e6145f003b719376beb0b9  libgfortran/generated/minloc1_16_r4.c
! fb9b120b518490e8ae81beffe9645040  libgfortran/generated/minloc1_16_r8.c
! ddf9cd8a269aec1a2fe18dee970535c1  libgfortran/generated/minloc1_16_s1.c
! 98e5e12763c24198279431e6e7de67d8  libgfortran/generated/minloc1_16_s4.c
! 55233e16d01bd15407a92831cb956439  libgfortran/generated/minloc1_4_i1.c
! 7b805661c4a613a3a0d2cc34495d548c  libgfortran/generated/minloc1_4_i16.c
! f2d3b0744af4e0708a410ae0e8f1eafe  libgfortran/generated/minloc1_4_i2.c
! 28f3900aeec522e4b1e9036841db4b58  libgfortran/generated/minloc1_4_i4.c
! cc034dede83a920e74144e5feec274d7  libgfortran/generated/minloc1_4_i8.c
! 8421e5ca4ec56bc7df76621e265b927a  libgfortran/generated/minloc1_4_m1.c
! 1833838bc73a815856eb85bb1d2ee8b1  libgfortran/generated/minloc1_4_m16.c
! 6641d0285ff08ffcece960e4bc53d318  libgfortran/generated/minloc1_4_m2.c
! cf9e03b463b4bf6c22c0f345f2b0a31c  libgfortran/generated/minloc1_4_m4.c
! 229d282653c463caab5f05d4a65954b9  libgfortran/generated/minloc1_4_m8.c
! ba90edddb9397d2b9d79a6a57640cdc3  libgfortran/generated/minloc1_4_r10.c
! ac39aae26c3c7c8d2939b64b7825595f  libgfortran/generated/minloc1_4_r16.c
! 49642922f023cc1e182a2f112262b309  libgfortran/generated/minloc1_4_r17.c
! 91226fbb1fb0a249ebbced5d3dfaa4e3  libgfortran/generated/minloc1_4_r4.c
! 4bf2707596f4fcb86e1ddcd6984e8b6f  libgfortran/generated/minloc1_4_r8.c
! 55160ea5059e0172e317b479af618270  libgfortran/generated/minloc1_4_s1.c
! 52c9364b82143ce4f224841e91f59fd5  libgfortran/generated/minloc1_4_s4.c
! 68a61423e14a03f5087f79d1d0fb82c7  libgfortran/generated/minloc1_8_i1.c
! 778bc29ae962d065b4d69a1ad5b23f9e  libgfortran/generated/minloc1_8_i16.c
! b7b16216759b42d066208512c39b4105  libgfortran/generated/minloc1_8_i2.c
! 2333aef3e244a36fe418d9e0e15a0d22  libgfortran/generated/minloc1_8_i4.c
! 9e2e1670a75dc9b252971ca712a34907  libgfortran/generated/minloc1_8_i8.c
! 7be94fe94761baad0bafdf371ec280d4  libgfortran/generated/minloc1_8_m1.c
! a486e40b89517ee35c047a82db13923b  libgfortran/generated/minloc1_8_m16.c
! 90022e477c6e273e77dbe5eeb724dd4d  libgfortran/generated/minloc1_8_m2.c
! 6aedb77b5dab844d66a84082b8f0db19  libgfortran/generated/minloc1_8_m4.c
! aab3b28be8c81e42dc43693428108cd8  libgfortran/generated/minloc1_8_m8.c
! 8107923d4ce6c57b1871cd038fc05821  libgfortran/generated/minloc1_8_r10.c
! ab283a81c89a89566d3b0b095ebf288a  libgfortran/generated/minloc1_8_r16.c
! 61961c57541028d5043e2c3af8cbe36b  libgfortran/generated/minloc1_8_r17.c
! 4bcd63b913979b613e025175778edc56  libgfortran/generated/minloc1_8_r4.c
! 3af2b324c101a23dd94e6148136ebe30  libgfortran/generated/minloc1_8_r8.c
! 7ae8e97b3b491c1c55a85ee6596494af  libgfortran/generated/minloc1_8_s1.c
! 4aecd4dd7c297d550795f598aafe099a  libgfortran/generated/minloc1_8_s4.c
! 2390f6c9b24965cc57fcb4bedf1335d2  libgfortran/generated/minloc2_16_s1.c
! fe5d3ad9715f1b598cb3706012860bcb  libgfortran/generated/minloc2_16_s4.c
! fe1972f26ed87a695fdb89e6173b22fa  libgfortran/generated/minloc2_4_s1.c
! 169b3dbb86b68a5bff99f15e67515095  libgfortran/generated/minloc2_4_s4.c
! 4243cabf0cd70f1b2dcf44f64f1048a9  libgfortran/generated/minloc2_8_s1.c
! 8bb173c552cb6040cd9c2aa7bee287f1  libgfortran/generated/minloc2_8_s4.c
! a409b34d205ea493a376e48c92b4a92f  libgfortran/generated/minval0_s1.c
! af1e3ea6cf6e92301147f61e7a1b332b  libgfortran/generated/minval0_s4.c
! fa9d887771c10866b4d7de44b615b2b9  libgfortran/generated/minval1_s1.c
! 84a718afdf28abc78d60bd2454c2e285  libgfortran/generated/minval1_s4.c
! 47b2c955550001c9e877b482f261e8d9  libgfortran/generated/minval_i1.c
! cc9655aa0828ed37fa5cc078b92efcf1  libgfortran/generated/minval_i16.c
! 0ec4b5b0055d72af82469b903d3bb4b1  libgfortran/generated/minval_i2.c
! 39b22e1a0d09dfc09f14b89c6756a48f  libgfortran/generated/minval_i4.c
! 4ccf90ad9dab4f039f89791719a0ed1f  libgfortran/generated/minval_i8.c
! 64f395eaa37b9e6fd8b6a48217c19f7c  libgfortran/generated/minval_m1.c
! 20ceb2d344d862f474243ea9b4a19331  libgfortran/generated/minval_m16.c
! 8c4651f739b3247d977a8cf506def9e8  libgfortran/generated/minval_m2.c
! 395b1012ae3e3017ca98b49e00a852ab  libgfortran/generated/minval_m4.c
! aac58b2c9227284dbbfd8db19e2b8850  libgfortran/generated/minval_m8.c
! 3b05111f8ffb9f31507a8c06d16857b5  libgfortran/generated/minval_r10.c
! d5a35e34abc93ecf2b48cd3e552429da  libgfortran/generated/minval_r16.c
! 687a9cd8b936ed9c3b2bffd73b6f1dd9  libgfortran/generated/minval_r17.c
! 9725cf14a77d73244d0550cebdac3d08  libgfortran/generated/minval_r4.c
! 49dca1e7086b646fc5e3fd9e41e94c7e  libgfortran/generated/minval_r8.c
! 0d9b63666a94fc0ba3a1daad6a1f1a47  libgfortran/generated/misc_specifics.F90
! 040c3c25c92cbeec9ed186b5d35c91ef  libgfortran/generated/norm2_r10.c
! db6e86cd06951c820b753c0199a51faa  libgfortran/generated/norm2_r16.c
! 6f294b2c48397a3120e1bc0722d35d03  libgfortran/generated/norm2_r17.c
! 026eb5403b67181df2cd7f6aa478fd2c  libgfortran/generated/norm2_r4.c
! c8c8f83211e9e51356115a28d6dfe4ee  libgfortran/generated/norm2_r8.c
! c318e8256b87968e5e26151a003ed361  libgfortran/generated/pack_c10.c
! 6ef16f1b74463710d256f5d4116b59c8  libgfortran/generated/pack_c16.c
! c7c6220790b4175cddd7017fb3ae8838  libgfortran/generated/pack_c17.c
! 0d2e6dde59fb2ba3e961ed30e9190d62  libgfortran/generated/pack_c4.c
! 71db1f5be5d274b2f863602bbde3792d  libgfortran/generated/pack_c8.c
! 569ae8e8367539ab0c0b6dd067b81fc8  libgfortran/generated/pack_i1.c
! 367a6b5d8c451b3a38e710a4bc01bd8d  libgfortran/generated/pack_i16.c
! 1325129282916a329e28b1aa0250d470  libgfortran/generated/pack_i2.c
! 418eaa3f265c3d80fc537257712c8e0d  libgfortran/generated/pack_i4.c
! 43330c6f1e4d057eb1978ffb1679acc4  libgfortran/generated/pack_i8.c
! 6ac35c48c88f106e914c29477e7e3beb  libgfortran/generated/pack_r10.c
! 5f23996c9ed0afb4862cba5a785e9ee6  libgfortran/generated/pack_r16.c
! d793b156db8eba4088fca2c4836dd7e8  libgfortran/generated/pack_r17.c
! 579c5b52dce73dc68f012e945f6c1b8f  libgfortran/generated/pack_r4.c
! ca5c13e00ad3e8c0b53cf24fb721092b  libgfortran/generated/pack_r8.c
! 8a9045a9cf32e158ad1ed0b357b0ee7c  libgfortran/generated/parity_l1.c
! d07a76e4763881ffb3e6260f67d47c2e  libgfortran/generated/parity_l16.c
! 160511995eeaab698348f5566d2120cf  libgfortran/generated/parity_l2.c
! 666828b893da7ff09b14a74e5240f855  libgfortran/generated/parity_l4.c
! 1ae51e58991cde8ebaf359f869c763d7  libgfortran/generated/parity_l8.c
! ae72827e5fd0548c3b08fb9ef03a6e4e  libgfortran/generated/pow_c10_i16.c
! ed154a70939c323f9a99dcc7ddb63538  libgfortran/generated/pow_c10_i4.c
! f0f8a466aaee1d4f80e4b0d3481ea055  libgfortran/generated/pow_c10_i8.c
! eba3dd529f7c58ceff313f7ee85b1e23  libgfortran/generated/pow_c16_i16.c
! 1f2b1fed95ca9365a09ed4aa075e5e47  libgfortran/generated/pow_c16_i4.c
! 55226d91cd2f9ed045c874caaacb6c5a  libgfortran/generated/pow_c16_i8.c
! d36d332e5f127bc84df656a4c1755c05  libgfortran/generated/pow_c17_i16.c
! bb67bf001c55eca89a3610ce23d6401a  libgfortran/generated/pow_c17_i4.c
! 4f85f7041d32266eee9900fa59911073  libgfortran/generated/pow_c17_i8.c
! 6fadd4de67db4494d14b2b9783582a06  libgfortran/generated/pow_c4_i16.c
! fbffe5b5dc2e28d8847f05d5ed30aa54  libgfortran/generated/pow_c4_i4.c
! 2de4783ac64191ea1894ebc92a72b2bd  libgfortran/generated/pow_c4_i8.c
! 8c58d30ea1f7c60cf6f15d2f715b960e  libgfortran/generated/pow_c8_i16.c
! 43399f61bc946d30d687f2a0398c2f93  libgfortran/generated/pow_c8_i4.c
! fe08857a29f7839c3adb919809666e35  libgfortran/generated/pow_c8_i8.c
! 6a8e335455a836c8f80dc2e25bcfd186  libgfortran/generated/pow_i16_i16.c
! a5741149ce25cc4cd14bda4c3d1fa654  libgfortran/generated/pow_i16_i4.c
! 0b88d49de5ffd04e82991c05e1ec69fc  libgfortran/generated/pow_i16_i8.c
! 38c6b49ef5a81bf885e9d8d6ac37539e  libgfortran/generated/pow_i4_i16.c
! 66e17733f9bba5059adf4f6962cc3767  libgfortran/generated/pow_i4_i4.c
! a203726ffe7cc85a45f6cbcd2408cdaf  libgfortran/generated/pow_i4_i8.c
! ff29b21849b06be16a505655fea7633f  libgfortran/generated/pow_i8_i16.c
! 780cb9ea3449650760f14853855065c9  libgfortran/generated/pow_i8_i4.c
! 36a4b93e0e3e111f048ab8d8d6f57748  libgfortran/generated/pow_i8_i8.c
! 59e477adff01d752ef191500b99ba7e1  libgfortran/generated/pow_m16_m1.c
! b1b07c61f6458fcd722fd88e89769eb4  libgfortran/generated/pow_m16_m16.c
! f38725b3f1b12de58ef72f1ddf91563e  libgfortran/generated/pow_m16_m2.c
! d953fcc314edf43a4d8ed528912b0b3f  libgfortran/generated/pow_m16_m4.c
! e16b9214ae3310c785037466176d889a  libgfortran/generated/pow_m16_m8.c
! d8c589acb5fbebfa63718f12d627dbfb  libgfortran/generated/pow_m1_m1.c
! 1b1724d5efe2644c0dd394aef56abeb2  libgfortran/generated/pow_m1_m16.c
! 15055a8ce7a3656974525ad84f9bb1fb  libgfortran/generated/pow_m1_m2.c
! c9dae288f52de3217be504d24d4a08cb  libgfortran/generated/pow_m1_m4.c
! 31924909bf3e080925c8871a608aa42d  libgfortran/generated/pow_m1_m8.c
! 0efeb61601d8db0a506262c510c8b084  libgfortran/generated/pow_m2_m1.c
! 5ee91d48c17f33ceb24d92f83057b52b  libgfortran/generated/pow_m2_m16.c
! 0a0b0ed7cce27e48c92ba24422743101  libgfortran/generated/pow_m2_m2.c
! 68b3c6e8ab2456751ce1a50cb4a16fda  libgfortran/generated/pow_m2_m4.c
! dd033c0bb0863423c9fb23ff7ce3059e  libgfortran/generated/pow_m2_m8.c
! 989dbfca8385dd60c2e28a2a7959eefc  libgfortran/generated/pow_m4_m1.c
! 910b4fee8e2db06a54aa93a34b5959e0  libgfortran/generated/pow_m4_m16.c
! 7109b0562db99cc388a460b2a55194a8  libgfortran/generated/pow_m4_m2.c
! 5899f5ea31515b64820cd7e3edcbac83  libgfortran/generated/pow_m4_m4.c
! 38ce00e87ef0faa5b0a38aae14538786  libgfortran/generated/pow_m4_m8.c
! 661156c4ec1196e7cf5033a6cbedfca4  libgfortran/generated/pow_m8_m1.c
! 4160a47941357f75677f760c9c024d6c  libgfortran/generated/pow_m8_m16.c
! 3c39be4391de1a62a8c1f8cffca57954  libgfortran/generated/pow_m8_m2.c
! c373e3b377840345da6e1786415e2986  libgfortran/generated/pow_m8_m4.c
! a584b06589bedda0b71146f22061941b  libgfortran/generated/pow_m8_m8.c
! ec2004fa6925ff254b9afc3f86c6d8b9  libgfortran/generated/pow_r10_i16.c
! 4fefe86caff4828b17ce2e1c525b5857  libgfortran/generated/pow_r10_i8.c
! db32337a826e9f17d7348505d9b93ef8  libgfortran/generated/pow_r16_i16.c
! d45e4ad35b8323cba6d0704da6852e64  libgfortran/generated/pow_r16_i4.c
! 459ab9f8a515e4972485754aba09d70b  libgfortran/generated/pow_r16_i8.c
! 6a1876f8ad26b85673e6f5a711a48c54  libgfortran/generated/pow_r17_i16.c
! 2309b00dd2bbac146719038fcc69d4aa  libgfortran/generated/pow_r17_i4.c
! 17ceb40cb0dae188d2977859a50bc185  libgfortran/generated/pow_r17_i8.c
! daf14bcffc66964d12fdd76735c15915  libgfortran/generated/pow_r4_i16.c
! 0f903bb49393b42544723c8df74b1e51  libgfortran/generated/pow_r4_i8.c
! 8aeb23eb834cef7c927e06ba8a95ad67  libgfortran/generated/pow_r8_i16.c
! dccb181b8eda552592bf3f75cdeef371  libgfortran/generated/pow_r8_i8.c
! 0c5875b27a42cd5649ae6c52c5d8dee4  libgfortran/generated/product_c10.c
! 786b3b9a16dccf1ce3ea4c4b0c69bb2c  libgfortran/generated/product_c16.c
! c7860f8eeae9174851e78df8301e947b  libgfortran/generated/product_c17.c
! b845d3dfd420f7470f9d48cf632e38cc  libgfortran/generated/product_c4.c
! 013240aa75e3c49b0bf67c91e144157d  libgfortran/generated/product_c8.c
! d9b1526a9674786663c3873eeafe066e  libgfortran/generated/product_i1.c
! 05b11ca96ec576dd94beed32c05be167  libgfortran/generated/product_i16.c
! ceefc8860bbc7178f4f7ce4f9a704c73  libgfortran/generated/product_i2.c
! cec695a9f4ecbdfb1e4765f61395efc0  libgfortran/generated/product_i4.c
! cf76c48a62bf5a087a30c60356995bf2  libgfortran/generated/product_i8.c
! 43029c7826641cd567187885770905f7  libgfortran/generated/product_r10.c
! cf011b4e783196bcc6807f5e761b8f96  libgfortran/generated/product_r16.c
! 7c3bc8516b0cf761dc93060b1d437255  libgfortran/generated/product_r17.c
! 52bbd60de7cd37cc76a6a6e635011985  libgfortran/generated/product_r4.c
! 20c3fd11cec7e2765fa6ed62ce5c2d44  libgfortran/generated/product_r8.c
! fd6631a7a87a8139de6ecd3e81b9e304  libgfortran/generated/reshape_c10.c
! c1a88426be2892564b29c649fd520b99  libgfortran/generated/reshape_c16.c
! 2b0afcb62820400a9350d15c57ae2a7b  libgfortran/generated/reshape_c17.c
! 6c150fb097d3b4f06f845a0ddd273531  libgfortran/generated/reshape_c4.c
! e0b39b710de217133d651a61ba43898f  libgfortran/generated/reshape_c8.c
! 784560f8de668ba7f23d87a2a7732a3b  libgfortran/generated/reshape_i16.c
! 1cc697f159ca8d9d6bd0ab41997c9b4d  libgfortran/generated/reshape_i4.c
! 652070310d569355e330ddb914ce2020  libgfortran/generated/reshape_i8.c
! d7df5e262b1cfbfc4500fcbb85e06dd2  libgfortran/generated/reshape_r10.c
! c4ec4a8fe28e5fb122440bf8b69dcc3e  libgfortran/generated/reshape_r16.c
! 52bf76d36923c7dbbe9bd5aa12a00ee1  libgfortran/generated/reshape_r17.c
! e284af4c0f472971a100d3119a949ca0  libgfortran/generated/reshape_r4.c
! 8f5b3fa6a4450efeb47665c1d408619b  libgfortran/generated/reshape_r8.c
! 055e63827de2cc5f9722953c516de740  libgfortran/generated/shape_i1.c
! 9a74b16cbb09fdfdc83f11d8131d8c13  libgfortran/generated/shape_i16.c
! c7cd00c9388fb19d11e73347f5511c0a  libgfortran/generated/shape_i2.c
! 447480a431957773b0c8301ed6bc72ad  libgfortran/generated/shape_i4.c
! f829b9dae2122807a5f1fea203682478  libgfortran/generated/shape_i8.c
! 50f190e53faf1e91eb8b8a8cea67a828  libgfortran/generated/spread_c10.c
! d59ae17d6fa10a6946cd9be18a9b4667  libgfortran/generated/spread_c16.c
! bb7b44522c49bf5fd9ac6e03d808c34f  libgfortran/generated/spread_c17.c
! 0266bc1f0344819a3137cdeeb2051570  libgfortran/generated/spread_c4.c
! 4cd2a487838736310f34d6a164f81eb9  libgfortran/generated/spread_c8.c
! 3b99de96fa78f6b9dc96d5db05aa2eb5  libgfortran/generated/spread_i1.c
! c109166ac2334eb0a21578c64b49e8d5  libgfortran/generated/spread_i16.c
! 6da576e3a3e06c8649cfc0c262d1742b  libgfortran/generated/spread_i2.c
! ef4844ff9a15b2ef3d2aaee692a97d24  libgfortran/generated/spread_i4.c
! 0fe22b8d304a93956964c565bb3c3665  libgfortran/generated/spread_i8.c
! f1967d1da783c455edc3673041fdb2ac  libgfortran/generated/spread_r10.c
! e126288c6e7f23419d0f96e99c552d43  libgfortran/generated/spread_r16.c
! 4a26b50ec678cf64cdc4ed53e73ff591  libgfortran/generated/spread_r17.c
! bc9d5a299533bf5ac8d22ba262e06a6b  libgfortran/generated/spread_r4.c
! 03bb3efa9511a3fa3a2ac2b79773bb87  libgfortran/generated/spread_r8.c
! 1525949684dd41b9f673e300c54363fb  libgfortran/generated/sum_c10.c
! 8966acc93c9aee561d27dfca4bfa83b6  libgfortran/generated/sum_c16.c
! d840b97a55e1a6e9ce2aebe29b789981  libgfortran/generated/sum_c17.c
! e5b7e0e39018704123219552e2d7ecd2  libgfortran/generated/sum_c4.c
! a2c066431981d555f7420c2071d489b2  libgfortran/generated/sum_c8.c
! 8c49e8478db05420748f8249563e1dfe  libgfortran/generated/sum_i1.c
! e4d9023d4ecb843205727e953748dda4  libgfortran/generated/sum_i16.c
! 11e1ecbe08d8d33418e8d2b946066078  libgfortran/generated/sum_i2.c
! 8a9d9e9728bf2306bba13e0b16037ecd  libgfortran/generated/sum_i4.c
! 31d60338d0a5e3984ad30803a3f77170  libgfortran/generated/sum_i8.c
! 71dd1685a3e0711824ea94b4b32960ae  libgfortran/generated/sum_r10.c
! 91c499d5ae424fa886a6eaad3afc0532  libgfortran/generated/sum_r16.c
! 25f33ca3f723ff180961c85f374c55e6  libgfortran/generated/sum_r17.c
! 5aec64920d9ce822b559419301a3345f  libgfortran/generated/sum_r4.c
! 7ef4cbbad45c52b3a2257e4b8c045dfb  libgfortran/generated/sum_r8.c
! dbcfa3b065977e431ab06ce2d8c31638  libgfortran/generated/unpack_c10.c
! 56ac3754c57de47d7065509f4b4202a8  libgfortran/generated/unpack_c16.c
! 707df9cda80b0c5b75324314cfecf3d2  libgfortran/generated/unpack_c17.c
! 821e76cf0f4a395eb79e041893f59d57  libgfortran/generated/unpack_c4.c
! d4a71942be0e19c8a1f78dade21f8f01  libgfortran/generated/unpack_c8.c
! 03938704310a883e0007b3aacd765bd2  libgfortran/generated/unpack_i1.c
! 20cb8c19feef8f503cd6f6c42a0e09e9  libgfortran/generated/unpack_i16.c
! cd5a3d7ce4dd3f11efa66565fa339f77  libgfortran/generated/unpack_i2.c
! 2208f9d75c7c6a194f60e737594d1d23  libgfortran/generated/unpack_i4.c
! 3e30f550d51fbfeed15bea972c7c5967  libgfortran/generated/unpack_i8.c
! dd71507c0f33fcbad63e92c89f62526d  libgfortran/generated/unpack_r10.c
! 34cf8d8d2e184b514dc8cc27d2958bef  libgfortran/generated/unpack_r16.c
! 7defb71e6422bd7d808f8f11f07b254c  libgfortran/generated/unpack_r17.c
! 70b608e1cae7dea3a5460744ec08fffb  libgfortran/generated/unpack_r4.c
! cd7676a051ca08e9686f5818826bee57  libgfortran/generated/unpack_r8.c
! 986f41ec15bd059f568724e6295dc8e6  libgfortran/gfortran.map
! 411bfc7d6e64aa5a6d7ef03e7b743dcc  libgfortran/ieee/ieee_arithmetic.F90
! caba33bea39fbaa4b7bef6cc969ae10f  libgfortran/ieee/ieee_exceptions.F90
! 38cc57b3d853fa603fb331591aead84a  libgfortran/ieee/ieee_features.F90
! 3bac97159271496238df4c930b6e28c5  libgfortran/ieee/ieee_helper.c
! ac6842cd69183cba9a35bf92a55ca557  libgfortran/intrinsics/abort.c
! dabe1ddbbe87f521ccf0a2e035308393  libgfortran/intrinsics/access.c
! 4aca9230918701241ea394346ec40bf9  libgfortran/intrinsics/args.c
! bce84b029bab5e34ab9b45e84a6c756c  libgfortran/intrinsics/associated.c
! 8bf05957a4efbaad15b9b4c8f63167da  libgfortran/intrinsics/c99_functions.c
! e72de8757600623f728838c9e25561f6  libgfortran/intrinsics/chdir.c
! dc4208e552dac37414581f3651e8f6d6  libgfortran/intrinsics/chmod.c
! 1d54f053f0d439e751cd2f245b7ad918  libgfortran/intrinsics/clock.c
! a3addbc8456da9fc3b9e910e54da4647  libgfortran/intrinsics/cpu_time.c
! c67c725a2d332fa03b449c877c3ac0fb  libgfortran/intrinsics/cshift0.c
! 22a2a38087e9c248469bd5ca0345fdf7  libgfortran/intrinsics/ctime.c
! e7eda0fad1c5ab8ce60e853a9499b725  libgfortran/intrinsics/date_and_time.c
! 09ea8e7c7209061cf9403fcddeff06e1  libgfortran/intrinsics/dprod_r8.f90
! 33cb99b1858a45ffb34bd1c28ee58b55  libgfortran/intrinsics/dtime.c
! 6dc496f8673b56abbf4e2a183cd5828d  libgfortran/intrinsics/env.c
! b038fe461bccab20357753a327938235  libgfortran/intrinsics/eoshift0.c
! e9f37a7c09ee71312c75fc63b9da4679  libgfortran/intrinsics/eoshift2.c
! a4b1da6094342f6318ba18771d3daaac  libgfortran/intrinsics/erfc_scaled.c
! 48556bf4b1ab885fbe4abcd4b2034247  libgfortran/intrinsics/erfc_scaled_inc.c
! 0cdae82bd1c3606c6e4d3640a6fa3f85  libgfortran/intrinsics/etime.c
! afa96bd143dc64d8ab684e4f4381ca1d  libgfortran/intrinsics/execute_command_line.c
! 213dd47aa1ab112dbd1a6e4a01179ddb  libgfortran/intrinsics/exit.c
! f99fb6d4b0318646f64676c79206d141  libgfortran/intrinsics/extends_type_of.c
! 7e4f557fdd135ccc7946db6fe5cf84d6  libgfortran/intrinsics/f2c_specifics.F90
! fa362d050014ee9cfa7c61943dfc202b  libgfortran/intrinsics/fnum.c
! bde148818967204ddbeafc7997691906  libgfortran/intrinsics/gerror.c
! 35e505aaab7794de77b56e29e941c436  libgfortran/intrinsics/getXid.c
! 53373578ec270e62907ef89b97b9f4ed  libgfortran/intrinsics/getcwd.c
! 8739365250bcc609542567e8387c0a03  libgfortran/intrinsics/getlog.c
! 772f9c7f39ceec667366cd3f3a71763d  libgfortran/intrinsics/hostnm.c
! 2eaa3be1191eac6cc2cfac78234ab1a8  libgfortran/intrinsics/ierrno.c
! 4368a6cbd3e16deb9992139e1afc13f5  libgfortran/intrinsics/is_contiguous.c
! a809fdc0c72c035f9434ec12acea0164  libgfortran/intrinsics/ishftc.c
! e575fe414d35bf942e6c4157b56f5f60  libgfortran/intrinsics/kill.c
! 57725d001399a11adecacb514544bbbb  libgfortran/intrinsics/link.c
! ebc6e8cc0e01d7db16bf4acdec0fa760  libgfortran/intrinsics/move_alloc.c
! 08ae010f59f11942f5eb56b14bc2d608  libgfortran/intrinsics/mvbits.c
! 989b975e55d7c374a3e0e390729132ce  libgfortran/intrinsics/pack_generic.c
! 5f41804eec85ca6cbbf39c444077e8ee  libgfortran/intrinsics/perror.c
! 2a9f4af55ee9fb08bd381edb3d08a6b1  libgfortran/intrinsics/rand.c
! 0ef72e0f077843b4c196e197e630d43d  libgfortran/intrinsics/random.c
! 1657c87e594887df3ca9bc766ce12197  libgfortran/intrinsics/random_init.f90
! d84f83e90b0dde59866e8edd5c99d50e  libgfortran/intrinsics/reduce.c
! 96460e1feccde3de4192cdb7fe230e9b  libgfortran/intrinsics/rename.c
! 7d71fe0de55501200f2d8b32033ed973  libgfortran/intrinsics/reshape_generic.c
! 05c7aa4048077d8fdc6b0ac9f2f4e106  libgfortran/intrinsics/reshape_packed.c
! 6fc4c8f7beb41310b1b7453a115bdab9  libgfortran/intrinsics/selected_char_kind.c
! b065c9449f9c1a52c9483029308ec10f  libgfortran/intrinsics/selected_int_kind.f90
! 9f1afb668ce660ef8191d389e72f8b67  libgfortran/intrinsics/selected_real_kind.f90
! 97aaa3fdd580fed3490c0865c34ae250  libgfortran/intrinsics/signal.c
! 63dd83be0faac9f1cb1a3272e0736fc8  libgfortran/intrinsics/size.c
! 7d7bcda13c63c8b71f32aaeaee71e5ae  libgfortran/intrinsics/sleep.c
! a5285311578b4bc339ba76f6fef222db  libgfortran/intrinsics/spread_generic.c
! 6c4af04d3fe2362db4d5c29a792dccf8  libgfortran/intrinsics/stat.c
! a1c61999c9b91803f586503559199a42  libgfortran/intrinsics/string_intrinsics.c
! 8c74cf1588721729c6a1970383dba57d  libgfortran/intrinsics/string_intrinsics_inc.c
! 77593d305f58c82061fe1e77fed92f58  libgfortran/intrinsics/symlnk.c
! 0daa9de0b52ac9ae36d46cf9bdbdd8b7  libgfortran/intrinsics/system.c
! 6bc45f16989556c23e41efda38877053  libgfortran/intrinsics/system_clock.c
! 454b747595c4a1e7f5b71dc6a5539f81  libgfortran/intrinsics/time.c
! 792ff23bf0808d756fb43518182dd0c3  libgfortran/intrinsics/time_1.h
! e1757561475222a4c847b82c6813ae07  libgfortran/intrinsics/trigd.c
! 299e8e94cf833be84eb71d93a7b02c69  libgfortran/intrinsics/trigd.inc
! 04c94be9f886e1e44ea2ea2184d5968a  libgfortran/intrinsics/trigd_lib.inc
! 42db9c3421a25a78d54f2a058f4917e1  libgfortran/intrinsics/umask.c
! 4681a0cf5cfd7e0f18fbc29a4e82b1db  libgfortran/intrinsics/unlink.c
! cec32999db8b4e87719bd32022b37c61  libgfortran/intrinsics/unpack_generic.c
! 44217a880c0fce372e54592d1de325e8  libgfortran/io/async.c
! 970abd6f6b01d720c21cfa82ba5aa40a  libgfortran/io/async.h
! c62b817e6f400a567db7dccd71d76f33  libgfortran/io/close.c
! 0686754907b94e015f02e5417b8ecb03  libgfortran/io/fbuf.c
! 2a512bb8d96b461dcb82470c5dd52121  libgfortran/io/fbuf.h
! 12c0228bb34d93f8553a3810004881eb  libgfortran/io/file_pos.c
! 06b08e048a8e39622f21b22077186fab  libgfortran/io/format.c
! f9101923347929f02ecedab542ddf291  libgfortran/io/format.h
! 3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
! 86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
! fe24afda0444aab88f5a40caf1738169  libgfortran/io/io.h
! 724724904a02d3a4a9d6f7203b3949ae  libgfortran/io/list_read.c
! 908721400434528de210b0cbef37f603  libgfortran/io/lock.c
! a5048d41737161954ead03f98865a018  libgfortran/io/open.c
! 15fa25bbc2ea09df80ad7037e0c28b75  libgfortran/io/read.c
! 4d71c600a702cb37b041c18304734191  libgfortran/io/size_from_kind.c
! 247e272929563f279d4dbf168c74ad55  libgfortran/io/transfer.c
! 61d9fcffebe964f0be67a134abea6d15  libgfortran/io/transfer128.c
! 6cf3fdea6474d249cc6fe641cb6a7629  libgfortran/io/unit.c
! 054d43551f43e42d19a3ca81456c9a34  libgfortran/io/unix.c
! f460ce66bb06770e24fc348ce57dcea7  libgfortran/io/unix.h
! 9ad46a1d2f409dd8aa39fff0cf9281c8  libgfortran/io/write.c
! e2d3368a47699888087765be0b92fb75  libgfortran/io/write_float.def
! 4d4402eb782c9c4ba1fafd5b3ca5b80b  libgfortran/kinds-override.h
! 782dd75d67502253d6f5915fe7acf119  libgfortran/libgfortran.h
  387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
! d4f0b2fef82f7f7f6ed06a11af6fa372  libgfortran/m4/all.m4
! c114155b4ce2cdb84ed807ee0c5a5889  libgfortran/m4/any.m4
! ba5dd9303c9b44b9e5147584041aaefa  libgfortran/m4/bessel.m4
! 20a48e921c0833823e79c1324b5900cc  libgfortran/m4/count.m4
! 94623d599cee7762c90811d12b6e3653  libgfortran/m4/cshift0.m4
! f4a4b6ffdd41f225214ef7227227060a  libgfortran/m4/cshift1.m4
! 13e806b84be25ebe8c256795bc1877a7  libgfortran/m4/cshift1a.m4
! 18a4cb5c52f501f61b7c414b55aa7d7e  libgfortran/m4/eoshift1.m4
! 98c0d4b1e7d5a5912d8c3e1e3b2e67ff  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
! 154074035d96d0b79a685fb348c73435  libgfortran/m4/head.m4
! 83f6850fee837f2048a836da666ddb76  libgfortran/m4/iall.m4
! 58261306614ec65cc6dd94b492325ce1  libgfortran/m4/iany.m4
! 21a13415abecf89a53fb0c32e833092d  libgfortran/m4/ifindloc0.m4
! 9dc3c192f10588d78b15d654a4b69edd  libgfortran/m4/ifindloc1.m4
! f8145183f678f3ce7866f8235287e476  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
*************** d41d8cd98f00b204e9800998ecf8427e  libgfo
*** 121289,121387 ****
  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
  a0c59c07599c968a763da08daacff7fd  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
! 5777aa64718a51f18c6a36d3c536543b  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
! 35468eca76505150de17edc5a2ffa6a2  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
! 7eaf962fb503b1eb3abdbf614799a7e6  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! 38778826306c4efe1f6a33cb21cece23  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! b0383b92fc4bd0e9d6f2c894d2fc961d  libgm2/aclocal.m4
  ec51f8ac3552cbacd95bf08e21a6568a  libgm2/config.h.in
! eaa7b6fd021fa8b1539d65d8d58db3b0  libgm2/configure
! a1615402f37d3412d1901ee58bebbc2c  libgm2/configure.ac
! 8cc7e77ebeeff228932145d5e583e1f7  libgm2/configure.host
  2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
  f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! 1c81daa01520f3a05da1ff4d530f5873  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  87d5ba33acc7d56c7dd0f43a7d6660ca  libgm2/libm2iso/ErrnoCategory.cc
! 50b1ab5ac2f7313addeb89244a63e53d  libgm2/libm2iso/Makefile.am
! 06bbf355611e65199fed815c1971975a  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
! 60e20d4966763ff532153264c355ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
  33246d6ec18583a1eb0fc89ca61f4fd8  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
  672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
! e9a9fa4aa273c6c9fb72e428bbac71b3  libgm2/libm2pim/Makefile.am
! ec626ef6d1f1791a48dde69a7877a01a  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
--- 134605,134705 ----
  ae6c5100027c00b1dee83df8a20d56ac  libgfortran/m4/ifunction-s2.m4
  1a611de5949eec3ce316071b08967b77  libgfortran/m4/ifunction.m4
  10f323195ca3a220ce7b74b132d15fd7  libgfortran/m4/ifunction_logical.m4
! e6278096d8f198c25934d35533c13a10  libgfortran/m4/in_pack.m4
! c8ce93c91f9370754e09838c26964133  libgfortran/m4/in_unpack.m4
! 8006e8d3ecb5517dc5afc9650c232096  libgfortran/m4/iparity.m4
  a0c59c07599c968a763da08daacff7fd  libgfortran/m4/iparm.m4
! d04d311e4bb26a45a430721808ed2372  libgfortran/m4/matmul.m4
  404f92b6c287e61378cd84f231b65850  libgfortran/m4/matmul_internal.m4
! b6b51349d9e37dd02dba8c15dfb760e5  libgfortran/m4/matmulavx128.m4
! 6c1bb8d76973ec4c408b761377ce0fdf  libgfortran/m4/matmull.m4
! cb580b08fd56994b77bb2c56076ca753  libgfortran/m4/maxloc0.m4
! 6d86fbd1171d025ff922605413e96bdd  libgfortran/m4/maxloc0s.m4
! b3d276ce6dc30760c545699c1b8c3043  libgfortran/m4/maxloc1.m4
! 8f3de668fdcb3ee9a72374da7b062b33  libgfortran/m4/maxloc1s.m4
! a60967105c7e32232bd0c7f041d90967  libgfortran/m4/maxloc2s.m4
! 615faec6606e1783d1f355ae74da8417  libgfortran/m4/maxval.m4
! b1c4db8e5852a2d1d4bee1cb401c4628  libgfortran/m4/maxval0s.m4
! f5f2980f9674d65db38b6048a8450466  libgfortran/m4/maxval1s.m4
! 535fa9193c95265c9ce72bf6818d2faa  libgfortran/m4/minloc0.m4
! c021d8aa183ff2118f68ccd3b3eb3766  libgfortran/m4/minloc0s.m4
! a2d3b95fe652d1e69b4412a54715cc3c  libgfortran/m4/minloc1.m4
! 60df76cc63e3ef35371341caab61d8d2  libgfortran/m4/minloc1s.m4
! acd2cc0daac9d57d329b6c954e9ae251  libgfortran/m4/minloc2s.m4
! 0eb66723224ae442a48213c68cce0fe7  libgfortran/m4/minval.m4
! 925967dc79ff9a9d33d1eab9b82b9256  libgfortran/m4/minval0s.m4
! 07756086b63b0e9fad6ce7f3d78115a9  libgfortran/m4/minval1s.m4
  6d8cbcd1d1489f643839e7ac2c00a736  libgfortran/m4/misc_specifics.m4
  70d9300a1cebaef5ef324dad027b2fc3  libgfortran/m4/mtype.m4
! 86230b3ae9f1dd5cce39805ba74f0faf  libgfortran/m4/norm2.m4
! f9e2140593515cf733d09f893fa32af2  libgfortran/m4/pack.m4
! e4ab7f81d821a43651a47b7582ef8856  libgfortran/m4/parity.m4
! e9a611d40f69008aa6354adf12ffb1c2  libgfortran/m4/pow.m4
! 4b6fc8732a254998357281d3e4e55c34  libgfortran/m4/powu.m4
! 1f57605be320308799939d0231009912  libgfortran/m4/product.m4
! f038cf47aa64bababd1dcaf393fd40d0  libgfortran/m4/reshape.m4
! 4b124acffc5421f07461bdc0b651bac5  libgfortran/m4/shape.m4
  2b8de82dc8d9a5bfe1aebe4edd8e2adc  libgfortran/m4/specific.m4
  fde11348d3f1f27d7e48fd646db7c9b0  libgfortran/m4/specific2.m4
! 783e4d609d3b04156c533f25df2b30d5  libgfortran/m4/spread.m4
! 7199dcf2f2007668709669352e41a412  libgfortran/m4/sum.m4
  0ad0318f00c85db29d184dc3dff12276  libgfortran/m4/types.m4
! 3f1c3afb70cbd5c1c5360f204f0b50e2  libgfortran/m4/unpack.m4
  675f622f58b01feec2abd5d72f18b022  libgfortran/mk-kinds-h.sh
  5cacd438c86553689eda2ce3d5623b45  libgfortran/mk-sik-inc.sh
  f8813ac773f6f6eb0ea6ecb287fb9250  libgfortran/mk-srk-inc.sh
! 33a9784a89eb486aeaccd86810bc24d5  libgfortran/regenerate.sh
! ea7b4bf0cda5461db9962f299a34e2b0  libgfortran/runtime/ISO_Fortran_binding.c
! c6035b47db77b3f977df17538531d59d  libgfortran/runtime/backtrace.c
! e1871a868f3676618dcd50139e5e9b43  libgfortran/runtime/bounds.c
! ad78fb1cf22ef96be9fa6b474b64ce8b  libgfortran/runtime/compile_options.c
! 8dcd14d2325a76925e8fbd2feae29ed8  libgfortran/runtime/convert_char.c
! 1a73749a9cae0ed02b4c1ad7059c8aa1  libgfortran/runtime/deep_copy.c
! 3b4da8e1b1ef1695da0683b33f55c022  libgfortran/runtime/environ.c
! dbbfee924d874d0a8cc662548bfe7a36  libgfortran/runtime/error.c
! e48358eba67d0145681e10d845284b01  libgfortran/runtime/fpu.c
! 8d315ead2e4f14bd7fec210a8b4adda0  libgfortran/runtime/in_pack_class.c
! 8840d121a117cdfc91dab4f778d1b8b9  libgfortran/runtime/in_pack_generic.c
! 1f37b96fc546f5daf6df6de32910b3a1  libgfortran/runtime/in_unpack_class.c
! 93ad91845df479b77f81fb42e6d1fb6c  libgfortran/runtime/in_unpack_generic.c
! 812792df57e6dd9c1d7033457998d1b6  libgfortran/runtime/main.c
! 7f5c8a1b4d73855f8efd6cff134280b6  libgfortran/runtime/memory.c
! 0107954ae674063d432e961b885b7dce  libgfortran/runtime/minimal.c
! 9addea351b8bccd4e8ac632b7bf593ad  libgfortran/runtime/pause.c
! c04e4e4d264af0c1d4e39e88a93d6258  libgfortran/runtime/select.c
! 29a2c23fb19e11e91079af9b734780d7  libgfortran/runtime/select_inc.c
! fdc5bc5ac9f0f6c3348f4f076be6db95  libgfortran/runtime/stop.c
! 48bdb4b17463d0fcaca2653d6e84ddaf  libgfortran/runtime/string.c
! 1b32a39d6ca0ceca4d22535f30edbcde  libgm2/ChangeLog
  81dadb03add7a7278a98cd845177e76a  libgm2/Makefile.am
! f26132364738756eeee0acf44fb5aadf  libgm2/Makefile.in
  5655398e9c1e3027c587898dc4fce566  libgm2/acinclude.m4
! d4629d8a3f44bc8f1060e37d381418f6  libgm2/aclocal.m4
  ec51f8ac3552cbacd95bf08e21a6568a  libgm2/config.h.in
! ce287bde44fa2f73687149a623dbb9b0  libgm2/configure
! e0fe07832564d76c66fdae524e26ecb4  libgm2/configure.ac
! b52a0b00feee9e93f7dc34a66027a39f  libgm2/configure.host
  2a25928a1abd3989edcf11c8def19d00  libgm2/libm2cor/KeyBoardLEDs.cc
  f25de03fc822c5eebf7118fcf5283ebc  libgm2/libm2cor/Makefile.am
! cfc25cb3101a1a8d7b997af2cb96ee97  libgm2/libm2cor/Makefile.in
  256f893d9141ee50fb703d08f0c7ce3a  libgm2/libm2iso/ChanConsts.h
  87d5ba33acc7d56c7dd0f43a7d6660ca  libgm2/libm2iso/ErrnoCategory.cc
! 093abbe1256afaed6cf0bf9588c74678  libgm2/libm2iso/Makefile.am
! 0988b519b7c398c84cdb2c2410967b9c  libgm2/libm2iso/Makefile.in
  55e7456cbf4c00590b7d5c26437bf683  libgm2/libm2iso/RTco.cc
! 911847bdf8d4ef8b97f150f284d2ec8f  libgm2/libm2iso/m2rts.h
  9cb2d2fda0da4de1596491a1ba383634  libgm2/libm2iso/wrapclock.cc
  e3037b97506181892bc760a12d9c5f69  libgm2/libm2iso/wrapsock.c
  33246d6ec18583a1eb0fc89ca61f4fd8  libgm2/libm2iso/wraptime.cc
  eb003ee7f1b2cf1972500be967c4d5eb  libgm2/libm2log/Break.c
! 2174db736f05842c30f16bf53515adf5  libgm2/libm2log/Makefile.am
! a8994ae77fcf3a779f831dbe43826e0d  libgm2/libm2log/Makefile.in
! ba2db7fd78510ae0ff3e50d0d57c1b8d  libgm2/libm2min/Makefile.am
! e5756f3cdacda041a35b9820c00f7639  libgm2/libm2min/Makefile.in
  a9f05e5da997bab66d457b3be2773189  libgm2/libm2min/libc.c
  672db9b5f503b1b02773144313a13746  libgm2/libm2pim/CFileSysOp.cc
! 046a1a48a047fa7c014c3e3250c97e29  libgm2/libm2pim/Makefile.am
! 359fb87a5851f47033dfb5c4e9aadcd8  libgm2/libm2pim/Makefile.in
  944531ee3e0d441b1c7209ac2c2355eb  libgm2/libm2pim/Selective.cc
  635915386732139700506c42de8b469d  libgm2/libm2pim/SysExceptions.cc
  04512543e0711f8f6f6e1fb2a995330e  libgm2/libm2pim/UnixArgs.cc
*************** fabf825638554348a64e8dee21986b0a  libgm2
*** 121395,121402 ****
  99ede8f0e7ba72a5449d5e9380ec5475  libgm2/libm2pim/wrapc.cc
  5d4950ecb7b26d2c5e4e7b4e0dd74707  libgo/LICENSE
  160ac38979ae9334894994a1e7b4bf3b  libgo/MERGE
! 9c4a11ea93d0f8b552f2485c9664bd80  libgo/Makefile.am
! 19e4b59405ea0e8421687f8d6ee68615  libgo/Makefile.in
  3a55d95595a6f9e37dee53826b4daff2  libgo/PATENTS
  d0952f0b499c9ebb887222764488a2fc  libgo/README
  492dd43b98c6602a8754328947942c40  libgo/README.gcc
--- 134713,134720 ----
  99ede8f0e7ba72a5449d5e9380ec5475  libgm2/libm2pim/wrapc.cc
  5d4950ecb7b26d2c5e4e7b4e0dd74707  libgo/LICENSE
  160ac38979ae9334894994a1e7b4bf3b  libgo/MERGE
! a3d9d822336d9af3b61708f1968d94d8  libgo/Makefile.am
! acf619efe50af250f7a3fd5a3aee2d12  libgo/Makefile.in
  3a55d95595a6f9e37dee53826b4daff2  libgo/PATENTS
  d0952f0b499c9ebb887222764488a2fc  libgo/README
  492dd43b98c6602a8754328947942c40  libgo/README.gcc
*************** dee72a6a60e99528b0d17bf3ff9a1e15  libgo/
*** 121411,121418 ****
  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
--- 134729,134736 ----
  bc2f6032c98896249eadb56177c7d357  libgo/config/ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  libgo/config/ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  libgo/config/lt~obsolete.m4
! f9b81f1e857ea0de4282cc158ab6b836  libgo/configure
! 68936202ddf48cf4c094999342105aef  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
*************** c3d76c2792e5791b282011e1c74eb6e7  libgo/
*** 123589,123595 ****
  8d84dada6b800609d48b0c7e0a775cb6  libgo/go/fmt/scan_test.go
  6fcb09cb0cd589441f3d63eda967b071  libgo/go/fmt/stringer_example_test.go
  2369824f08c60e32daa40b736d182964  libgo/go/fmt/stringer_test.go
! d55c9bd287b7a7941e145354f5974d0a  libgo/go/go.mod
  ce5ef3c8bfb0242e90cfb06de2c15b3b  libgo/go/go/ast/ast.go
  d4d45d52a65eb9a90a577b7642507749  libgo/go/go/ast/ast_test.go
  e614191e6d9697c1dac5128c815b62e4  libgo/go/go/ast/commentmap.go
--- 136907,136913 ----
  8d84dada6b800609d48b0c7e0a775cb6  libgo/go/fmt/scan_test.go
  6fcb09cb0cd589441f3d63eda967b071  libgo/go/fmt/stringer_example_test.go
  2369824f08c60e32daa40b736d182964  libgo/go/fmt/stringer_test.go
! e831b12c85471a0fa0fbcc7dec7db934  libgo/go/go.mod
  ce5ef3c8bfb0242e90cfb06de2c15b3b  libgo/go/go/ast/ast.go
  d4d45d52a65eb9a90a577b7642507749  libgo/go/go/ast/ast_test.go
  e614191e6d9697c1dac5128c815b62e4  libgo/go/go/ast/commentmap.go
*************** c41963aff6f671a6df727e478deed0bc  libgo/
*** 126308,126314 ****
  ac6ea144ae2aa14415fe0681812fb135  libgo/go/syscall/sockcmsg_linux.go
  882ac557fd995909aabc3f23151b7085  libgo/go/syscall/sockcmsg_unix.go
  7c74f125a645c3bf5001b5920097d7f4  libgo/go/syscall/sockcmsg_unix_other.go
! 8aa7392688e2db73ec8591d973d43431  libgo/go/syscall/socket.go
  c43e9f9fd83b7f82926c7fdab24fc53d  libgo/go/syscall/socket_aix.go
  d46dd3af14169743c29228ef18c25a22  libgo/go/syscall/socket_bsd.go
  52e504bdf85879c29fa203236bfb2981  libgo/go/syscall/socket_hurd.go
--- 139626,139632 ----
  ac6ea144ae2aa14415fe0681812fb135  libgo/go/syscall/sockcmsg_linux.go
  882ac557fd995909aabc3f23151b7085  libgo/go/syscall/sockcmsg_unix.go
  7c74f125a645c3bf5001b5920097d7f4  libgo/go/syscall/sockcmsg_unix_other.go
! 854e0bff1ab4b09e705b5f2e66877b76  libgo/go/syscall/socket.go
  c43e9f9fd83b7f82926c7fdab24fc53d  libgo/go/syscall/socket_aix.go
  d46dd3af14169743c29228ef18c25a22  libgo/go/syscall/socket_bsd.go
  52e504bdf85879c29fa203236bfb2981  libgo/go/syscall/socket_hurd.go
*************** c4d2846cb08f6c5bab32f58c0fa76517  libgo/
*** 126471,126477 ****
  45392f48d7d1aaa462bcc95b51bc70b1  libgo/go/unicode/utf8/example_test.go
  2c4d3713a77c44ac98c5666b839f529e  libgo/go/unicode/utf8/utf8.go
  db676c1f1d2849067afce04315a08b09  libgo/go/unicode/utf8/utf8_test.go
! 68b0af602cca7611c675a533d1ca1ab4  libgo/go/vendor/modules.txt
  b34a692bd542de151dc73de26d16dd2e  libgo/goarch.sh
  342e21bbfbb708562a0417b169575759  libgo/godeps.sh
  59c854f27a495007f0fce591f2e9c5b3  libgo/gotool-packages.txt
--- 139789,139795 ----
  45392f48d7d1aaa462bcc95b51bc70b1  libgo/go/unicode/utf8/example_test.go
  2c4d3713a77c44ac98c5666b839f529e  libgo/go/unicode/utf8/utf8.go
  db676c1f1d2849067afce04315a08b09  libgo/go/unicode/utf8/utf8_test.go
! f93d661f668346a0fa9592dc5dd7cd81  libgo/go/vendor/modules.txt
  b34a692bd542de151dc73de26d16dd2e  libgo/goarch.sh
  342e21bbfbb708562a0417b169575759  libgo/godeps.sh
  59c854f27a495007f0fce591f2e9c5b3  libgo/gotool-packages.txt
*************** d3e43ca05c1768f0c32e7fc9d55ed9ae  libgo/
*** 126856,126864 ****
  0258632eb5c914a44aef0299a84bf544  libgo/runtime/go-libmain.c
  f55d7c34311e5085f8a057226a4c439e  libgo/runtime/go-main.c
  bc8121acb97ddc7bf2ce153b0918ca35  libgo/runtime/go-matherr.c
! 3eaa382fd0218e1b46d9533f29cef8f9  libgo/runtime/go-memclr.c
  7b65a1c75d9305d8697b763645bb0e8f  libgo/runtime/go-memequal.c
! 1b81e55f6ff9cd0734e326617f8fb7ac  libgo/runtime/go-memmove.c
  98540d82f142ae2953bee5e0ed72cd92  libgo/runtime/go-mmap.c
  b532f1e01813112ca6cc108a5b8ffdf2  libgo/runtime/go-nanotime.c
  88c803bcbaf2699ed5880341b268f51c  libgo/runtime/go-nosys.c
--- 140174,140182 ----
  0258632eb5c914a44aef0299a84bf544  libgo/runtime/go-libmain.c
  f55d7c34311e5085f8a057226a4c439e  libgo/runtime/go-main.c
  bc8121acb97ddc7bf2ce153b0918ca35  libgo/runtime/go-matherr.c
! 323791fd781a49db75ceaceff62b6393  libgo/runtime/go-memclr.c
  7b65a1c75d9305d8697b763645bb0e8f  libgo/runtime/go-memequal.c
! d94e44754d71aa634cb5e548f41591e8  libgo/runtime/go-memmove.c
  98540d82f142ae2953bee5e0ed72cd92  libgo/runtime/go-mmap.c
  b532f1e01813112ca6cc108a5b8ffdf2  libgo/runtime/go-nanotime.c
  88c803bcbaf2699ed5880341b268f51c  libgo/runtime/go-nosys.c
*************** b0bef0d844dadebbe84ad9cf32c002bf  libgo/
*** 126882,127100 ****
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
  00019600f80b0ce3d73e8655fc80d153  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
! 3afd5e92aeacb17936026fd2d1b8ba43  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
  119ed5d3e1f74e576b1f430ed406a3ff  libgo/testsuite/gotest
  a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/testsuite/lib/libgo.exp
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 112418432f958b0c7d637d694e34ae4a  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! 883cfea6de23904b83d6bd58a729c866  libgomp/Makefile.am
! 54c7bc8277669e3bf5f1a3db179ae206  libgomp/Makefile.in
! f931a90a01b7668928d9f7fcd5c7f3fb  libgomp/acc_prof.h
! d45f3b20f1be5d95a6c06fb81bedafe9  libgomp/acinclude.m4
! 30a64ccfecfa60e8b5098e9fe26ea707  libgomp/aclocal.m4
! d8aa8371c40b734ac5451e05f1ec3ffd  libgomp/affinity-fmt.c
! 01378bd902513e181046d9e2c91aaaf0  libgomp/affinity.c
! 8fe4775ad9d79a2f006b290db4abdfa5  libgomp/alloc.c
! 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
! 203c8c66029647420306a896dff09683  libgomp/config/accel/target-cxa-dso-dtor.c
! 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
! 69e5cac35d68ce6db01326f45f2fc005  libgomp/libgomp.h
! ac3410249ffd4432cac832c0f894f12a  libgomp/libgomp.info
! 794094e4a415fa9d14baf5f132c3d098  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 7d6392be778d70e12dc7ada711cee1aa  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
! 400376422733dbef89bcfba6e2080481  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
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
! a8a23ca7c25ca51062b636b0c099096a  libgomp/target-indirect.c
! e10777c5b3796fb8a332899a2d7eb38a  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
! 9dc99d143175d2ead27690e788549e94  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
! 60fb93a6f619d4375a1224303e0884ea  libgomp/testsuite/libgomp.c++/atomic-12.C
! a56e4a1dad7c21fecfbf5dd26cb1f86a  libgomp/testsuite/libgomp.c++/atomic-13.C
  f5aa3b6a543d3042289d53904701574b  libgomp/testsuite/libgomp.c++/atomic-14.C
  156c6a231b71803eea67391fb8826eab  libgomp/testsuite/libgomp.c++/atomic-15.C
  8c1e1f7a6d13331292d7c81fc62e7f77  libgomp/testsuite/libgomp.c++/atomic-16.C
--- 140200,140423 ----
  f1f0917f45d626d15a5f129fef3d81e2  libgo/runtime/yield.c
  00019600f80b0ce3d73e8655fc80d153  libgo/sysinfo.c
  64195708a46fb2d5225149f15a8e3991  libgo/testsuite/Makefile.am
! 2d16de6a5067759fbfa0df635e479eae  libgo/testsuite/Makefile.in
  180c96a619276205ec9fc8e8217b67bd  libgo/testsuite/config/default.exp
  119ed5d3e1f74e576b1f430ed406a3ff  libgo/testsuite/gotest
  a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/testsuite/lib/libgo.exp
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 1a43c0d6447b0568b0ed8d0210dfaed3  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
! 714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
! ebb578201b0bfde5d8221fca34ee44c4  libgomp/Makefile.in
! 7f1d00b196788c5e20ac3392affbc699  libgomp/acc_prof.h
! 9a95db76a2060962a69a4afbc3f6a5bd  libgomp/acinclude.m4
! 0630eb0d021f598b58704f3aed8ad2a2  libgomp/aclocal.m4
! a518e5f5538c5ff629ba3a8f88128480  libgomp/affinity-fmt.c
! 06478025336afe5fce9b998b4c7710b1  libgomp/affinity.c
! 44e82ee5e47677da6205a78497c6a566  libgomp/alloc.c
! 0c08d5aa3b537038621b9e3d7c3f28df  libgomp/alloc_cache.h
! 12ab55336a2acd6f64e98c5b5cab7084  libgomp/allocator.c
! 9be4323f25d5a03ee903e8e5a5aa76bd  libgomp/atomic.c
! 57adabf6519fd5d55b63b9989528fd44  libgomp/barrier.c
! 817a188fa4d37e0fffa03364d2f1507d  libgomp/basic-allocator.c
  037ba614230cf1e1886c5ef589cae6d0  libgomp/config.h.in
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/libgomp-plugin.c
! 451df5514a3250659e5266d6d645c806  libgomp/config/accel/lock.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/mutex.c
! b4defc15f7efbcdab83deab6b1336439  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
! 2b2b7c91197cb70b861c78a622ff5baf  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
! d49fc62104ba3fb644238a039f4977fd  libgomp/config/accel/openacc.f90
! 2f8ed5096f35b3031605c8f36bad8a32  libgomp/config/accel/pool.h
! 5705221abfdbd79a46d7cd758ec7e802  libgomp/config/accel/proc.c
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/ptrlock.c
! fee40ff5bae715c87655e264184932b8  libgomp/config/accel/ptrlock.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/accel/sem.c
! 608224c1f4b4ead6521fc3c45509dba0  libgomp/config/accel/sem.h
! 20645342c25f4ad9302c803af100d314  libgomp/config/accel/target-cxa-dso-dtor.c
! 6829a1d019784084ce7d8921d0a91724  libgomp/config/accel/target-indirect.c
! 3d70e537e5e29d3f75c715be8a805118  libgomp/config/accel/thread-stacksize.h
! 78c49710d0875b9e59af97545af7a47d  libgomp/config/bsd/proc.c
! c6f86d1001c53a2af99a97c2afa9475f  libgomp/config/darwin/plugin-suffix.h
! fedbd101d1e64cfcfca867a231cb58ec  libgomp/config/darwin/thread-stacksize.h
! 1011707418d959e5fa254b216613f382  libgomp/config/gcn/affinity-fmt.c
! a149acaed82eaf065ecd5d28a16205ef  libgomp/config/gcn/allocator.c
! 46bcab07ea0e608e96b549c06ff435b2  libgomp/config/gcn/bar.c
! c5f2f89f7f9ed2cb6bb0f26a7bb9d0e3  libgomp/config/gcn/bar.h
! 29fc36d37c9ca7b0db1c04f766be1f6a  libgomp/config/gcn/doacross.h
! c447ed13e1d693f4b983b83ca2478aa8  libgomp/config/gcn/icv-device.c
! 0f8633e5b152067d8fe084c15c3db164  libgomp/config/gcn/libgomp-gcn.h
! 7c0f64012d1e638b1eff01cd172a0a6a  libgomp/config/gcn/oacc-target.c
! 49142ded1b362969ae3dbe8b1b0a3f3a  libgomp/config/gcn/simple-bar.h
! c4edbd7c2c1205e40ebb4fe0f1270559  libgomp/config/gcn/target.c
! 55d3b1a161a020a1c6c18b3e41dd9420  libgomp/config/gcn/task.c
! e1e7918140eaa4b2fe1d078ca85b2323  libgomp/config/gcn/team.c
! c0f4bc26ad28bb0712bebfcae4c6a978  libgomp/config/gcn/teams.c
! de27fe416c22021c880c3ef4d002aa91  libgomp/config/gcn/time.c
! 7bff56f23fd667518b0ce11825f3a66b  libgomp/config/hpux/plugin-suffix.h
! 7a0a6a6d5cb567d0de762d9dbe76d9be  libgomp/config/linux/affinity.c
! ed634980a8308c651a6d3ccc9f9dcbcb  libgomp/config/linux/allocator.c
! 29d574ec8d851693d9b472f7519c22d9  libgomp/config/linux/alpha/futex.h
! 2a9f66d6adadccefb7a7d88d5445f143  libgomp/config/linux/bar.c
! 8cd25856009cd00dedcd63b7e6e6d8b1  libgomp/config/linux/bar.h
! 164b4f5876809c956e7c82b155da138b  libgomp/config/linux/doacross.h
! 1c6c18045021513ac393389c1823cf11  libgomp/config/linux/futex.h
! 00d7403272d54f16bd4af691feec2174  libgomp/config/linux/ia64/futex.h
! 01907f0ef0bcb67f71b78e4ef0592890  libgomp/config/linux/lock.c
! e7c5c296b51e59e33374488e93c9c6ab  libgomp/config/linux/mips/futex.h
! 47e7a47aebd6958882eef3212804e900  libgomp/config/linux/mutex.c
! 0e18908d6748091d5123412101b2a228  libgomp/config/linux/mutex.h
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
! e75b2f29c2bf9217db7e9d912f650fc6  libgomp/config/linux/powerpc/futex.h
! 4c0ff8c6c44815a5051b7050398c1bff  libgomp/config/linux/proc.c
! c27a265673186f369b869761bc2d7ebd  libgomp/config/linux/proc.h
! 7aa7b0d18c1c71a62c4d2cf32cd090d1  libgomp/config/linux/ptrlock.c
! 3fb55fabc469a710728c4e714e20a564  libgomp/config/linux/ptrlock.h
! a0235a2201433054462aed5da556bd00  libgomp/config/linux/s390/futex.h
! 5598ef44d662024a1a99d91560cb8d13  libgomp/config/linux/sem.c
! bbd5dfa478025c1783687a573a8de82c  libgomp/config/linux/sem.h
! ca590bf9afa5fd225ba1c6e261ef9123  libgomp/config/linux/sparc/futex.h
! c7089b57a0efdd75e987a09a76e55b71  libgomp/config/linux/tile/futex.h
! a84e4822497a77d62cbc5f9eaf042664  libgomp/config/linux/wait.h
! 297c07efd77463bbba8904fb346d523e  libgomp/config/linux/x86/futex.h
! dd053a8ed16bfe3b9fe9497fafdcaf87  libgomp/config/linux/x86/spincount.h
! d3a72ccce26c398bd798deb83f170cb7  libgomp/config/mingw32/affinity-fmt.c
! 05d455c76365fc3c7a98fb3db3fec9e1  libgomp/config/mingw32/proc.c
! fa13c699b8d4b45d835b66dfc07ef197  libgomp/config/mingw32/time.c
! 79837f1bb85e98cd8a86efcae73be3c2  libgomp/config/nvptx/affinity-fmt.c
! 52fcf2d702ad06c1a3a7c0921a2567ab  libgomp/config/nvptx/allocator.c
  6bb7711f9ae2bc93662a9c5ece06f7ee  libgomp/config/nvptx/atomic.c
! 2bf6bde834465d5e7a512e10f4813a68  libgomp/config/nvptx/bar.c
! 933c1d66ec951ab42fb94b176e11eb1f  libgomp/config/nvptx/bar.h
! df59717b3bd8944894ab4397e77454f7  libgomp/config/nvptx/doacross.h
! dca18fe95a4086d6ff5853b4220d62db  libgomp/config/nvptx/error.c
! 35b926973906eb1cf3beb0fa77d3c3d4  libgomp/config/nvptx/icv-device.c
! f0499683d858cdb2fa18624722532be0  libgomp/config/nvptx/libgomp-nvptx.h
  d41d8cd98f00b204e9800998ecf8427e  libgomp/config/nvptx/oacc-parallel.c
! 41c1178af48e3de7a92d28dabd1b4cd1  libgomp/config/nvptx/simple-bar.h
! d4ef411ea34a5e21bbc28b10c1f3b9cf  libgomp/config/nvptx/target.c
! 1ccc40324f0cdb57674db555b003e81d  libgomp/config/nvptx/task.c
! 9642f91b86f61638bcd7b93f1efa4c1c  libgomp/config/nvptx/team.c
! 25e9242a0e4530902ae2914c443cea04  libgomp/config/nvptx/teams.c
! 1e82aa2630626e511ff0d1341a76d2fb  libgomp/config/nvptx/time.c
! f71a2c1760df3cace4ad96cbc50e724c  libgomp/config/posix/bar.c
! b72c763edbd3bad13d1a4137ea03cf10  libgomp/config/posix/bar.h
! d809d6c0726f24c2e0a74a4bd759b20b  libgomp/config/posix/doacross.h
! a898a5a4502e247c234d8938d7b3cfbe  libgomp/config/posix/lock.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/mutex.c
! 85c6f1a9bdae2051f29c99c22be2c4cd  libgomp/config/posix/mutex.h
  e84e55894856b53abe34b30f6148b070  libgomp/config/posix/omp-lock.h
! 2225f44917cfb848ee229414924b7058  libgomp/config/posix/plugin-suffix.h
! 3f5619f1e04b20b7198c02b6b1875445  libgomp/config/posix/pool.h
! d84d89c3a35c4372d8ecd2576487d45d  libgomp/config/posix/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/posix/ptrlock.c
! ba4b96b3616e6154baca6f656a513caf  libgomp/config/posix/ptrlock.h
! f72fa64b1e030add9b267fd176ab6b80  libgomp/config/posix/sem.c
! eedf1415f7fb35e90037266169f55700  libgomp/config/posix/sem.h
! ed1fc3763fa750f24e79dfb948cf180d  libgomp/config/posix/simple-bar.h
! b2c777dfb741f586524a19a8cde8e901  libgomp/config/posix/thread-stacksize.h
! df1e895f991a6ee62e836790dba5a8cc  libgomp/config/posix/time.c
! 2cdc827e93d10760ca0a6d298d333efd  libgomp/config/rtems/affinity-fmt.c
! 8901ec76858ac0eb5d36b3d97ae89125  libgomp/config/rtems/bar.c
! 91b2036526a44290413c1f9a52fb2219  libgomp/config/rtems/bar.h
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/mutex.c
! 7c56f8c45d6468deab84b67678ae973c  libgomp/config/rtems/mutex.h
! a3e8261512779732e6d5dbc5f19c7deb  libgomp/config/rtems/pool.h
! f3cf1a56a2c0bdc1d3163a84be663e4e  libgomp/config/rtems/proc.c
  efc434763cbe71b67359f1858f6c9480  libgomp/config/rtems/sem.c
! 14ca4af6299649b5ee50274d7dc740ce  libgomp/config/rtems/sem.h
  af41d1d04a4112345554ca8b8a072ed9  libgomp/config/t-aix
! a7a7614b51928f6f16273b7347676a91  libgomp/configure
  250e49a5865485507899765bf69913a0  libgomp/configure.ac
  0eb9aa41c92e30c6fb1494575b1c8daa  libgomp/configure.tgt
! 32ee987623cb1d4e924d40431df6168d  libgomp/critical.c
! 13bc1e0c97e6d8b895e4765ba3f94df2  libgomp/env.c
! 93acc4d17ce91729e01212d518bafca0  libgomp/error.c
! 7fdef7a5c3989730b49337fd7b45145e  libgomp/fortran.c
! 46849b5af1169f593c12afeebfac9940  libgomp/hashtab.h
! a1605e6bc0999c90a1c4e966af584f1c  libgomp/icv-device.c
! a4cc1480c8ee441a3ccf2c250c7c0cad  libgomp/icv.c
! e40f7f1dbaf7de3643dec21493aed6b5  libgomp/iter.c
! 6d019b48c2311268a20cabe9f65f73ad  libgomp/iter_ull.c
! e59f9d9c4947a5f7d4bdd011da890930  libgomp/libgomp-plugin.c
! d766cc495352ae2f48d322e276741b80  libgomp/libgomp-plugin.h
! b2aca0a9ddcb7f277bb3b49a277b30af  libgomp/libgomp.h
! 193f35443f0317555c00d077c016cabf  libgomp/libgomp.info
! cd6a22eaa3c99a58084ad32602f087b4  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 3c638859057dd89a1a4ddd447ca58564  libgomp/libgomp.texi
! 1d54928ce4032885323fb921fd1df788  libgomp/libgomp_f.h.in
! ff283838501e7dccd0306ec2feeb4452  libgomp/libgomp_g.h
! 26474764313104462f3252f8ce962c10  libgomp/lock.c
! 83ae93ed86e28412cd75aa493fe04885  libgomp/loop.c
! 80446fe6cd6193819bea8853c8dcc525  libgomp/loop_ull.c
! 6688bf57d8344fc3ab514e0ca98629a5  libgomp/oacc-async.c
! 7685edcf1f7e7bced0d4ea02b83aa067  libgomp/oacc-cuda.c
! 442c4d69a0cc4eede766c9eead2aac07  libgomp/oacc-host.c
! b5e3ea3391fe580b6b137f4bc8629034  libgomp/oacc-init.c
! 051187f12f492968f6d4abb837e9d0c8  libgomp/oacc-int.h
! cc375c43f1e535347ef5267cdbdacdab  libgomp/oacc-mem.c
! 5d21e88e7cbcec0be5ae55d1ca5329b8  libgomp/oacc-parallel.c
! 716c4e80712e2cf28bf35e5dc091c6b1  libgomp/oacc-plugin.c
! a09ede7d3d21d275ef33da3aeef727b7  libgomp/oacc-plugin.h
! ccc59a273af5bb87bc4287e838131e91  libgomp/oacc-profiling.c
  6a2627e5d8a4e542cab7eddc96b53f37  libgomp/oacc-target.c
! afed940a4249259fd8d66f13fd107b72  libgomp/omp.h.in
! f68a94336679cae325d7d1efd2a21587  libgomp/omp_lib.f90.in
! feb4cd5170bb13a4b22485abdc9eb761  libgomp/omp_lib.h.in
! 3a0b904af6b419d48883939e83c1150c  libgomp/openacc.f90
! 951da06c04766ca9e95dd4a2294b9b77  libgomp/openacc.h
! 499db3818012abc0c973cf7887ad887b  libgomp/openacc_lib.h
! da2ae01cd3ee1b82927ed89b489413c4  libgomp/ordered.c
! 9175c3aaac7a44bd118f7fb462894ff7  libgomp/parallel.c
! b5ab0a7e2cd4752de8579e6704a905f9  libgomp/plugin/Makefrag.am
! a62dffa247a816d54bad922ce4d47aa0  libgomp/plugin/build-target-indirect-htab.h
! fab10af27c836c7b90303245f3965cb8  libgomp/plugin/configfrag.ac
! 64303d9a5e264784832990b27405c4aa  libgomp/plugin/cuda-lib.def
! d024ec56acbc3411cedc7899b8bbdd02  libgomp/plugin/mutex.c
! 6ff74ca26db9780ff90c583924b28d74  libgomp/plugin/plugin-gcn.c
! c48f5698d6513fa80e32b3b410f3a9d9  libgomp/plugin/plugin-nvptx.c
! 575940d2b8e2a941f78af850aac28928  libgomp/priority_queue.c
! c88620bad36f9c420348d0508bd4b346  libgomp/priority_queue.h
! 20aaa72861afa50254f90e9a0839d451  libgomp/scope.c
! 8bf8367c96a0d0ec9dbadd40492f39ca  libgomp/sections.c
! ed195dc04ac3e252f89029dee0bc9c05  libgomp/secure_getenv.h
! 4c3303bbfa7c506556555bd8c33816df  libgomp/simple-allocator.c
! 12ec8b0f7c30499a3d3656fbdbe42300  libgomp/single.c
! 80878b96d4a2653d45e47682a81cb8b2  libgomp/splay-tree.c
! bbb8b404de421c08a4468a7c149897e3  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
! 30bc692f400225cbdf51ebfdb41b44c5  libgomp/target-indirect.c
! 884d1916dff2476e510ae6f0f834a780  libgomp/target.c
! 61cd7db4cfc942c460e94493b86d69e2  libgomp/task.c
! 7f9c7ebe470f1e58806b1136258bd786  libgomp/taskloop.c
! abb5e2202aa84d67c967b7dc176fc937  libgomp/team.c
! 75558421f6643377456e1afccbec5b19  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
! 59b9e2c04e8d606a4b64c7778f3dbebf  libgomp/testsuite/Makefile.in
! 4f0fd32ecaf8eb341fbaa1f46bfaf2a2  libgomp/testsuite/config/default.exp
  989674e1cf3f6739f5d9519d904650c7  libgomp/testsuite/flock
  6c859d1c520b245e51a29693632545d6  libgomp/testsuite/lib/libgomp-dg.exp
! dc0d4994fd77e659fa1d69717a28c3e1  libgomp/testsuite/lib/libgomp.exp
  751966e2063e2e638eb537562f7d4551  libgomp/testsuite/libgomp-site-extra.exp.in
  6d56ea402ff11fa0bd533c6d73e2ecde  libgomp/testsuite/libgomp-test-support.exp.in
! 640013cb5bd3037f4b8af5f9c3b758c9  libgomp/testsuite/libgomp.c++/affinity-1.C
! 6856c17d5ce497451e68ed6383793c60  libgomp/testsuite/libgomp.c++/alloc-managed-1.C
! b53352ff3eedfe05e27937094f28fa51  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
! 7502e60fae3ebc5498e0b2255d8f5d66  libgomp/testsuite/libgomp.c++/atomic-12.C
! 727c103ea4b1ded274b780e58a281a5c  libgomp/testsuite/libgomp.c++/atomic-13.C
  f5aa3b6a543d3042289d53904701574b  libgomp/testsuite/libgomp.c++/atomic-14.C
  156c6a231b71803eea67391fb8826eab  libgomp/testsuite/libgomp.c++/atomic-15.C
  8c1e1f7a6d13331292d7c81fc62e7f77  libgomp/testsuite/libgomp.c++/atomic-16.C
*************** f944acede3f9beeaf281ef9282c0ff44  libgom
*** 127105,127124 ****
  deb63d2160d43f3e708a4363b1e0afaa  libgomp/testsuite/libgomp.c++/atomic-5.C
  b033e9045b45805b9c4de42aa8f1eb17  libgomp/testsuite/libgomp.c++/atomic-6.C
  7c7e2695a56575284cb08fd139d305e3  libgomp/testsuite/libgomp.c++/atomic-7.C
! d9f74ad4b5095a67f1961e49e03171fb  libgomp/testsuite/libgomp.c++/atomic-8.C
! f25833e3fd46b52ba86a77e5fe12fd99  libgomp/testsuite/libgomp.c++/atomic-9.C
  0a310055c15294aaf6bcc47df020e654  libgomp/testsuite/libgomp.c++/attrs-imperfect1.C
  a4982c95f24943943fbf12cb477f081e  libgomp/testsuite/libgomp.c++/attrs-imperfect2.C
  9a4efa229d744524872e6cbffafd1b77  libgomp/testsuite/libgomp.c++/attrs-imperfect3.C
  69724509fc4737c85d299156bfd1749b  libgomp/testsuite/libgomp.c++/attrs-imperfect4.C
  641b8b1671c0a28e41bf6f400e8b01c1  libgomp/testsuite/libgomp.c++/attrs-imperfect5.C
  53a0813095aa39db65067c52388cc9b1  libgomp/testsuite/libgomp.c++/attrs-imperfect6.C
! 2f586cab612fa932e5f67dcabe94eb0d  libgomp/testsuite/libgomp.c++/baseptrs-3.C
  a1abc023f67b2027953bacc39b863ccd  libgomp/testsuite/libgomp.c++/baseptrs-4.C
! 4047f12e81f298b3d86bc7bc097d7d4c  libgomp/testsuite/libgomp.c++/baseptrs-5.C
  3c39e0ea0fe1e119a0ec4951374fa2ae  libgomp/testsuite/libgomp.c++/baseptrs-6.C
  bc681d2313a30218189b18805656a6c7  libgomp/testsuite/libgomp.c++/baseptrs-8.C
  1b38b58754d8a362b20a84f3aa136dc3  libgomp/testsuite/libgomp.c++/baseptrs-9.C
  56d205cefae539512ef991036c306d5d  libgomp/testsuite/libgomp.c++/c++.exp
  40e00f7e2acb12d4a4edc44e244a8475  libgomp/testsuite/libgomp.c++/cancel-for-1.C
  1390d00e8471a40c55b009573ddeaf72  libgomp/testsuite/libgomp.c++/cancel-for-2.C
--- 140428,140455 ----
  deb63d2160d43f3e708a4363b1e0afaa  libgomp/testsuite/libgomp.c++/atomic-5.C
  b033e9045b45805b9c4de42aa8f1eb17  libgomp/testsuite/libgomp.c++/atomic-6.C
  7c7e2695a56575284cb08fd139d305e3  libgomp/testsuite/libgomp.c++/atomic-7.C
! eb0126c8dccc9ca348b6198881b871f0  libgomp/testsuite/libgomp.c++/atomic-8.C
! dd4374589b2ad3d74b9e06a2ac491a40  libgomp/testsuite/libgomp.c++/atomic-9.C
  0a310055c15294aaf6bcc47df020e654  libgomp/testsuite/libgomp.c++/attrs-imperfect1.C
  a4982c95f24943943fbf12cb477f081e  libgomp/testsuite/libgomp.c++/attrs-imperfect2.C
  9a4efa229d744524872e6cbffafd1b77  libgomp/testsuite/libgomp.c++/attrs-imperfect3.C
  69724509fc4737c85d299156bfd1749b  libgomp/testsuite/libgomp.c++/attrs-imperfect4.C
  641b8b1671c0a28e41bf6f400e8b01c1  libgomp/testsuite/libgomp.c++/attrs-imperfect5.C
  53a0813095aa39db65067c52388cc9b1  libgomp/testsuite/libgomp.c++/attrs-imperfect6.C
! 7c2a5e92ba3e34e5f3838e71cbc4ff51  libgomp/testsuite/libgomp.c++/baseptrs-3.C
  a1abc023f67b2027953bacc39b863ccd  libgomp/testsuite/libgomp.c++/baseptrs-4.C
! 6da013483e0169461db00dcab2ce6134  libgomp/testsuite/libgomp.c++/baseptrs-5.C
  3c39e0ea0fe1e119a0ec4951374fa2ae  libgomp/testsuite/libgomp.c++/baseptrs-6.C
  bc681d2313a30218189b18805656a6c7  libgomp/testsuite/libgomp.c++/baseptrs-8.C
  1b38b58754d8a362b20a84f3aa136dc3  libgomp/testsuite/libgomp.c++/baseptrs-9.C
+ f0e09dde93be670f7b1bd660ab56efc9  libgomp/testsuite/libgomp.c++/bdv_module1.C
+ e1158d2f3e5dfd34ea6d2a6839fa1533  libgomp/testsuite/libgomp.c++/bdv_module1_main.C
+ ef2270921837605c840dcd26cc9d3662  libgomp/testsuite/libgomp.c++/bdv_module2.C
+ 2c6c41c130abf1f9e53899aa120a2853  libgomp/testsuite/libgomp.c++/bdv_module2_impl.C
+ b4922a28ab71a1d4231946eaf7ccabe1  libgomp/testsuite/libgomp.c++/bdv_module2_main.C
+ 5570f8e6ec5f898b0bde691dc573d667  libgomp/testsuite/libgomp.c++/bdv_module3.C
+ 644dd34f60516a94cf77ebcd1e370d44  libgomp/testsuite/libgomp.c++/bdv_module3_impl.C
+ e4dad136e1e8d6b4c3650a1bf731c0a3  libgomp/testsuite/libgomp.c++/bdv_module3_main.C
  56d205cefae539512ef991036c306d5d  libgomp/testsuite/libgomp.c++/c++.exp
  40e00f7e2acb12d4a4edc44e244a8475  libgomp/testsuite/libgomp.c++/cancel-for-1.C
  1390d00e8471a40c55b009573ddeaf72  libgomp/testsuite/libgomp.c++/cancel-for-2.C
*************** b63b7c5e4846e9b37ecd72ca0699c154  libgom
*** 127128,127171 ****
  9874d2651f8d264ffe5215b9ac3a9a67  libgomp/testsuite/libgomp.c++/cancel-sections-1.C
  32ea51703b06ba963528c7c41d454527  libgomp/testsuite/libgomp.c++/cancel-taskgroup-3.C
  33f0025315295e3ad9afe1bedd12075d  libgomp/testsuite/libgomp.c++/cancel-test.h
! e1d4f2c9f4d3f4577f08890613c363cb  libgomp/testsuite/libgomp.c++/class-array-1.C
  3cf387e0409514607d2a5bfe5450a908  libgomp/testsuite/libgomp.c++/collapse-1.C
  95b1d349c03cc5d01483df22751c0183  libgomp/testsuite/libgomp.c++/collapse-2.C
  f1e175a4d49888d51652b27c0e3c8c01  libgomp/testsuite/libgomp.c++/copyin-1.C
  10ed00f527e0f70026947c8f56627828  libgomp/testsuite/libgomp.c++/copyin-2.C
! dd14bc7576437b98c5c00026c7f5d61f  libgomp/testsuite/libgomp.c++/ctor-1.C
  75be4b24ec5c938326f469fafe3fb919  libgomp/testsuite/libgomp.c++/ctor-10.C
! b812dfb76303fb741edad434356f3e35  libgomp/testsuite/libgomp.c++/ctor-11.C
  223d0cf490744b1bfb4f1cc606e36f45  libgomp/testsuite/libgomp.c++/ctor-12.C
! 30097ccff5eea8ab8de78ca5413b99a5  libgomp/testsuite/libgomp.c++/ctor-13.C
! 77ef1f3b35655957d8c63625800cc252  libgomp/testsuite/libgomp.c++/ctor-2.C
  30fe7293fbfe4d3917ee957be0df04b8  libgomp/testsuite/libgomp.c++/ctor-3.C
  35977f0d2ad0a90d819510aebcbf6e04  libgomp/testsuite/libgomp.c++/ctor-4.C
! 72da6a7795f81709b3fedf23755dfe73  libgomp/testsuite/libgomp.c++/ctor-5.C
  e4c259ceb3f0850ee4a9c2d8db93fa19  libgomp/testsuite/libgomp.c++/ctor-6.C
! 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
  a571dcf473210e7664f748b4e44d47f5  libgomp/testsuite/libgomp.c++/declare_target-2.C
  9680d8fd6dafdcd73ddfb70fce9898b5  libgomp/testsuite/libgomp.c++/default-1.C
  01456b503209d46ee61ee8a1877c839c  libgomp/testsuite/libgomp.c++/depend-1.C
! 5ddffb7f236c9b7b81760cac311649f6  libgomp/testsuite/libgomp.c++/depend-iterator-1.C
! 521ba1bcee599d1efb924a8c86ed94d1  libgomp/testsuite/libgomp.c++/depobj-1.C
! 2619580c0be36294ded42bfd27732a03  libgomp/testsuite/libgomp.c++/doacross-1.C
! 8f3fa1739a32f62d1e950e3ffdf69ab6  libgomp/testsuite/libgomp.c++/examples-4/declare_target-2.C
! 401b0240812ff132fea099d20d4dc1ee  libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
! ccd9ee1d01506847d3ea1b041c796d78  libgomp/testsuite/libgomp.c++/firstprivate-1.C
  2e6cbe250ac9d5c71de572a824df56a0  libgomp/testsuite/libgomp.c++/firstprivate-2.C
  e1ee4867ce68141a641f925070e14fdc  libgomp/testsuite/libgomp.c++/for-1.C
! 41f700ca58c11f46be2e3a3308301e79  libgomp/testsuite/libgomp.c++/for-15.C
  d113b76246a174aabcd300069f49ddc9  libgomp/testsuite/libgomp.c++/for-16.C
  b64542faf55a399e300d1e45dd199dea  libgomp/testsuite/libgomp.c++/for-2.C
  67ba06624377eed5d1497eaceab58821  libgomp/testsuite/libgomp.c++/for-21.C
  548bd1093d38aa787d9e1e6545a91ebb  libgomp/testsuite/libgomp.c++/for-22.C
  5db697b71da56abad36b497ef0baa540  libgomp/testsuite/libgomp.c++/for-23.C
! 99452f627e990cdefa96819a9e325971  libgomp/testsuite/libgomp.c++/for-24.C
  3ca216cad035ad474193cd5dd18d3646  libgomp/testsuite/libgomp.c++/for-25.C
  3a46935f338415db1e4f5c968d5d9380  libgomp/testsuite/libgomp.c++/for-26.C
  051ba74539f9452f0b15fd7bbace8c53  libgomp/testsuite/libgomp.c++/for-27.C
--- 140459,140513 ----
  9874d2651f8d264ffe5215b9ac3a9a67  libgomp/testsuite/libgomp.c++/cancel-sections-1.C
  32ea51703b06ba963528c7c41d454527  libgomp/testsuite/libgomp.c++/cancel-taskgroup-3.C
  33f0025315295e3ad9afe1bedd12075d  libgomp/testsuite/libgomp.c++/cancel-test.h
! d45d2e1fd50ef2de185180de7e46168c  libgomp/testsuite/libgomp.c++/class-array-1.C
  3cf387e0409514607d2a5bfe5450a908  libgomp/testsuite/libgomp.c++/collapse-1.C
  95b1d349c03cc5d01483df22751c0183  libgomp/testsuite/libgomp.c++/collapse-2.C
  f1e175a4d49888d51652b27c0e3c8c01  libgomp/testsuite/libgomp.c++/copyin-1.C
  10ed00f527e0f70026947c8f56627828  libgomp/testsuite/libgomp.c++/copyin-2.C
! 714ea43f1133133d2a0c80c34e7bef5a  libgomp/testsuite/libgomp.c++/ctor-1.C
  75be4b24ec5c938326f469fafe3fb919  libgomp/testsuite/libgomp.c++/ctor-10.C
! d50277f6e59605c1cb0f791ee2e74637  libgomp/testsuite/libgomp.c++/ctor-11.C
  223d0cf490744b1bfb4f1cc606e36f45  libgomp/testsuite/libgomp.c++/ctor-12.C
! f8ef69060cda9d407bf9d6788f7754e7  libgomp/testsuite/libgomp.c++/ctor-13.C
! 4eb8eeba2bd8289a82b8e4a2a02f91ee  libgomp/testsuite/libgomp.c++/ctor-2.C
  30fe7293fbfe4d3917ee957be0df04b8  libgomp/testsuite/libgomp.c++/ctor-3.C
  35977f0d2ad0a90d819510aebcbf6e04  libgomp/testsuite/libgomp.c++/ctor-4.C
! 6b93ea785838cc5bdd37f01c702d5e45  libgomp/testsuite/libgomp.c++/ctor-5.C
  e4c259ceb3f0850ee4a9c2d8db93fa19  libgomp/testsuite/libgomp.c++/ctor-6.C
! d8a210fa526cbe35b8fd349f5e466840  libgomp/testsuite/libgomp.c++/ctor-7.C
  cf8630c02b905d98e08a439066bb9815  libgomp/testsuite/libgomp.c++/ctor-8.C
  0bd7fe39119bfc0574561c1e381edc5b  libgomp/testsuite/libgomp.c++/ctor-9.C
+ 3b8f9635872e44615536b61fe9b4503a  libgomp/testsuite/libgomp.c++/declare-mapper-1.C
+ 987f700fd57f5c8c92a389fdd52a802f  libgomp/testsuite/libgomp.c++/declare-mapper-2.C
+ 4e0438a4c672c7f69409c78f983e6f85  libgomp/testsuite/libgomp.c++/declare-mapper-3.C
+ 70244eac2278da21748c2106cfa3f9ee  libgomp/testsuite/libgomp.c++/declare-mapper-4.C
+ dd899efe3ad96d4bc43aa80269da28e9  libgomp/testsuite/libgomp.c++/declare-mapper-5.C
+ dd6b619ee130db82170781062477eb42  libgomp/testsuite/libgomp.c++/declare-mapper-6.C
+ 94c964b235f72b68d9bed9ab44fc25de  libgomp/testsuite/libgomp.c++/declare-mapper-7.C
+ 2eb1d9d112637bbafc20c3a646030e32  libgomp/testsuite/libgomp.c++/declare-mapper-8.C
  23c42bd29433374ffd8ef4b669c3ab98  libgomp/testsuite/libgomp.c++/declare-target-indirect-1.C
! 5cb1bc38fa65c19949479e11a9715ad1  libgomp/testsuite/libgomp.c++/declare_target-1.C
  a571dcf473210e7664f748b4e44d47f5  libgomp/testsuite/libgomp.c++/declare_target-2.C
  9680d8fd6dafdcd73ddfb70fce9898b5  libgomp/testsuite/libgomp.c++/default-1.C
+ b46a5d495949774f9240c56cbc76b39d  libgomp/testsuite/libgomp.c++/delim-declare-variant-1.C
+ cb237e684fa48f0d3d0a04a711c5a6b0  libgomp/testsuite/libgomp.c++/delim-declare-variant-2.C
+ 76847f360255d626023722de04e6d21c  libgomp/testsuite/libgomp.c++/delim-declare-variant-7.C
  01456b503209d46ee61ee8a1877c839c  libgomp/testsuite/libgomp.c++/depend-1.C
! 8945def7ee59696379ce0bb88a8f3f77  libgomp/testsuite/libgomp.c++/depend-iterator-1.C
! c9740fad4aed0ad56520ed80ef3e0c8d  libgomp/testsuite/libgomp.c++/depobj-1.C
! ce9c39e35005e3bdc03574b9f7ee41c9  libgomp/testsuite/libgomp.c++/doacross-1.C
! 180763c1f861a2798392fca31f505ef3  libgomp/testsuite/libgomp.c++/examples-4/declare_target-2.C
! 98f2608bd37e360bc09de297923e88b7  libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
! fd5833416758f0017a1109710df166b6  libgomp/testsuite/libgomp.c++/firstprivate-1.C
  2e6cbe250ac9d5c71de572a824df56a0  libgomp/testsuite/libgomp.c++/firstprivate-2.C
  e1ee4867ce68141a641f925070e14fdc  libgomp/testsuite/libgomp.c++/for-1.C
! d0954022d926f34bf7b593ee87adf45b  libgomp/testsuite/libgomp.c++/for-15.C
  d113b76246a174aabcd300069f49ddc9  libgomp/testsuite/libgomp.c++/for-16.C
  b64542faf55a399e300d1e45dd199dea  libgomp/testsuite/libgomp.c++/for-2.C
  67ba06624377eed5d1497eaceab58821  libgomp/testsuite/libgomp.c++/for-21.C
  548bd1093d38aa787d9e1e6545a91ebb  libgomp/testsuite/libgomp.c++/for-22.C
  5db697b71da56abad36b497ef0baa540  libgomp/testsuite/libgomp.c++/for-23.C
! ca544b4b2a2d45abdba53d0cc5fed42f  libgomp/testsuite/libgomp.c++/for-24.C
  3ca216cad035ad474193cd5dd18d3646  libgomp/testsuite/libgomp.c++/for-25.C
  3a46935f338415db1e4f5c968d5d9380  libgomp/testsuite/libgomp.c++/for-26.C
  051ba74539f9452f0b15fd7bbace8c53  libgomp/testsuite/libgomp.c++/for-27.C
*************** b2840419f7f70553698eb41dcd3bd6c6  libgom
*** 127191,127212 ****
  c5fa025c49fa4f84574bce84b4f41edf  libgomp/testsuite/libgomp.c++/loop-10.C
  7d8d309be88fba3f64b8a8a60b8ed182  libgomp/testsuite/libgomp.c++/loop-11.C
  2b91a43b8cbf2e2039ddc01ebeadd690  libgomp/testsuite/libgomp.c++/loop-12.C
! 70f80a65dabe8794c15c00281dbb9fd0  libgomp/testsuite/libgomp.c++/loop-13.C
  aed699d798c7681bd702449f4f033dfc  libgomp/testsuite/libgomp.c++/loop-14.C
  573135b1d14ef770a87ae31f69cf2d60  libgomp/testsuite/libgomp.c++/loop-15.C
  ef01090490728b068e2a5d47b76f1d20  libgomp/testsuite/libgomp.c++/loop-2.C
  8f3bc76b2120d347e3809519041332d4  libgomp/testsuite/libgomp.c++/loop-3.C
  7372f17f86153bb7b17cdccfc0276de5  libgomp/testsuite/libgomp.c++/loop-4.C
  415849793602a06b6efea7e3cfc289f6  libgomp/testsuite/libgomp.c++/loop-5.C
! a143bccd15fda6acb915e48bf51be423  libgomp/testsuite/libgomp.c++/loop-6.C
  dfcc405ebd10d6186baef55d22ddcf08  libgomp/testsuite/libgomp.c++/loop-7.C
  11ba7800c42755cc61bd9c9ef9173207  libgomp/testsuite/libgomp.c++/loop-8.C
  f4c9230a7d51f0d2f7b5f5a32fdaf7ba  libgomp/testsuite/libgomp.c++/loop-9.C
  b622a4cee9411a85452ee1b29b91d320  libgomp/testsuite/libgomp.c++/lvalue-tofrom-1.C
! f07bd794cd101bd9ba1972e509ed440f  libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
  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
--- 140533,140554 ----
  c5fa025c49fa4f84574bce84b4f41edf  libgomp/testsuite/libgomp.c++/loop-10.C
  7d8d309be88fba3f64b8a8a60b8ed182  libgomp/testsuite/libgomp.c++/loop-11.C
  2b91a43b8cbf2e2039ddc01ebeadd690  libgomp/testsuite/libgomp.c++/loop-12.C
! 2d0c1289a0c4ab436d59a1e2147b1567  libgomp/testsuite/libgomp.c++/loop-13.C
  aed699d798c7681bd702449f4f033dfc  libgomp/testsuite/libgomp.c++/loop-14.C
  573135b1d14ef770a87ae31f69cf2d60  libgomp/testsuite/libgomp.c++/loop-15.C
  ef01090490728b068e2a5d47b76f1d20  libgomp/testsuite/libgomp.c++/loop-2.C
  8f3bc76b2120d347e3809519041332d4  libgomp/testsuite/libgomp.c++/loop-3.C
  7372f17f86153bb7b17cdccfc0276de5  libgomp/testsuite/libgomp.c++/loop-4.C
  415849793602a06b6efea7e3cfc289f6  libgomp/testsuite/libgomp.c++/loop-5.C
! 4bfa14044aafea017f525d52f9593bde  libgomp/testsuite/libgomp.c++/loop-6.C
  dfcc405ebd10d6186baef55d22ddcf08  libgomp/testsuite/libgomp.c++/loop-7.C
  11ba7800c42755cc61bd9c9ef9173207  libgomp/testsuite/libgomp.c++/loop-8.C
  f4c9230a7d51f0d2f7b5f5a32fdaf7ba  libgomp/testsuite/libgomp.c++/loop-9.C
  b622a4cee9411a85452ee1b29b91d320  libgomp/testsuite/libgomp.c++/lvalue-tofrom-1.C
! 414b422384c0287ef05799dee8ee0cb8  libgomp/testsuite/libgomp.c++/lvalue-tofrom-2.C
  d2827edf08309dd5d05a7ae82eb3a65f  libgomp/testsuite/libgomp.c++/map-comma-1.C
  76b1317d8fa0898f3ddb99d7d9719925  libgomp/testsuite/libgomp.c++/map-rvalue-ref-1.C
! c849774eedba911cacafa2948bdf66ff  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
*************** bddf1919febc77ab73283f66e954b61e  libgom
*** 127220,127231 ****
  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
--- 140562,140575 ----
  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
! 5783490a13c41927d74f329313a1afea  libgomp/testsuite/libgomp.c++/pr101544-1-O0.C
! 81e9e4844d0dd22a7e18902062719a5d  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
! 54dc0c6a125d470a10c8164512c57368  libgomp/testsuite/libgomp.c++/pr108286.C
! 55fd6d3a37045e2b7b7692b643a140df  libgomp/testsuite/libgomp.c++/pr113436-1.C
! 2d44c4df664a646fb404eafdcf920ca1  libgomp/testsuite/libgomp.c++/pr113436-2.C
  2b5f66e459a48cd1cbeb9dc42d3b751e  libgomp/testsuite/libgomp.c++/pr114572.C
  8801d963ce68c757ce130916d88cfb17  libgomp/testsuite/libgomp.c++/pr119692-1-1.C
  6fc97c0ff0901911f7091f8eca32d1dd  libgomp/testsuite/libgomp.c++/pr119692-1-2.C
*************** b9bea55653edd95a419c1fac4dc913e8  libgom
*** 127235,127246 ****
  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
  e31d9cc17430983d0904112f3275e13c  libgomp/testsuite/libgomp.c++/pr30703.C
  a41af349d54ba08799297bcd040e9521  libgomp/testsuite/libgomp.c++/pr34513.C
  f288ebef02de5e114b5c8526bad9dc19  libgomp/testsuite/libgomp.c++/pr35185.C
! d65773670d221b74aa6b327a1de57dff  libgomp/testsuite/libgomp.c++/pr38650.C
  32eed8fe7a118de6fa22a9b1ffec6c53  libgomp/testsuite/libgomp.c++/pr39573.C
  467dc8995782492f741eb1d9548a272b  libgomp/testsuite/libgomp.c++/pr43893.C
  6bc7a2a67f411f00aa39c8b72e8a287d  libgomp/testsuite/libgomp.c++/pr48869.C
--- 140579,140590 ----
  c57d4e906a72b08e5f49bef40306b63f  libgomp/testsuite/libgomp.c++/pr24455-1.C
  54c6e1c645042b8c18d27e04190d4816  libgomp/testsuite/libgomp.c++/pr24455.C
  ebbf9a13ba035141ba01b3281fd27fea  libgomp/testsuite/libgomp.c++/pr26691.C
! 531d2d2ef5874dc441d0c68406a16fc2  libgomp/testsuite/libgomp.c++/pr26943.C
  b7d3ba53e1428eb4ab2cf1cdcd576335  libgomp/testsuite/libgomp.c++/pr27337.C
  e31d9cc17430983d0904112f3275e13c  libgomp/testsuite/libgomp.c++/pr30703.C
  a41af349d54ba08799297bcd040e9521  libgomp/testsuite/libgomp.c++/pr34513.C
  f288ebef02de5e114b5c8526bad9dc19  libgomp/testsuite/libgomp.c++/pr35185.C
! 527c29c222f909c00ec223bde7a4ec05  libgomp/testsuite/libgomp.c++/pr38650.C
  32eed8fe7a118de6fa22a9b1ffec6c53  libgomp/testsuite/libgomp.c++/pr39573.C
  467dc8995782492f741eb1d9548a272b  libgomp/testsuite/libgomp.c++/pr43893.C
  6bc7a2a67f411f00aa39c8b72e8a287d  libgomp/testsuite/libgomp.c++/pr48869.C
*************** d40927d27fc8aa0a3f0aca700ccbd13b  libgom
*** 127254,127261 ****
  3a212ac2024168bc7de1da7b0d3118e4  libgomp/testsuite/libgomp.c++/pr69555-1.C
  e05799ca0fb925e4de120a002da662ed  libgomp/testsuite/libgomp.c++/pr69555-2.C
  854c3912b1646c8771d7f3032a72cd1f  libgomp/testsuite/libgomp.c++/pr70376.C
! 80258160ea88fc6c77ba4774e507a905  libgomp/testsuite/libgomp.c++/pr81130.C
! 6050a57d353f711a4c93e9fc816d1fd8  libgomp/testsuite/libgomp.c++/pr81314.C
  31f6ec374e23bffe347a99f3b1f06174  libgomp/testsuite/libgomp.c++/pr82835.C
  3e23fe34ad940217f5fda935e9ec54ec  libgomp/testsuite/libgomp.c++/pr86291.C
  dc7de2a56e857e340edadd8faabda685  libgomp/testsuite/libgomp.c++/pr86539.C
--- 140598,140605 ----
  3a212ac2024168bc7de1da7b0d3118e4  libgomp/testsuite/libgomp.c++/pr69555-1.C
  e05799ca0fb925e4de120a002da662ed  libgomp/testsuite/libgomp.c++/pr69555-2.C
  854c3912b1646c8771d7f3032a72cd1f  libgomp/testsuite/libgomp.c++/pr70376.C
! 784c3ee1b7f433a99e9587422a5afdca  libgomp/testsuite/libgomp.c++/pr81130.C
! e038a372b13888f4139816227565af05  libgomp/testsuite/libgomp.c++/pr81314.C
  31f6ec374e23bffe347a99f3b1f06174  libgomp/testsuite/libgomp.c++/pr82835.C
  3e23fe34ad940217f5fda935e9ec54ec  libgomp/testsuite/libgomp.c++/pr86291.C
  dc7de2a56e857e340edadd8faabda685  libgomp/testsuite/libgomp.c++/pr86539.C
*************** dc7de2a56e857e340edadd8faabda685  libgom
*** 127263,127271 ****
  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
--- 140607,140615 ----
  2f4b5b9cb40dd4bff2c3c0ebada29767  libgomp/testsuite/libgomp.c++/pr88988.C
  7cc253bb1b2c2c65f9d69743d9235b32  libgomp/testsuite/libgomp.c++/pr93931.C
  ccbeb19f46d34074feddb4daec61a533  libgomp/testsuite/libgomp.c++/pr96390.C
! 63bd24d77867fab9ada7d67f20c63d41  libgomp/testsuite/libgomp.c++/pr96835-1-O0.C
! fc0a3e3809ef348fbf52c75b8ec62710  libgomp/testsuite/libgomp.c++/pr96835-1.C
! 49c3cad861ae0d27aba17707a2e5a761  libgomp/testsuite/libgomp.c++/private-1.C
  b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
  04dc564b11f6e503f39552628affa8a8  libgomp/testsuite/libgomp.c++/range-for-1.C
  5b758d53cdb49aa2e6eef09ee91eed94  libgomp/testsuite/libgomp.c++/range-for-2.C
*************** d1c9121d5b84b9bde37f37bd398698fe  libgom
*** 127273,127289 ****
  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
! 9d561026ca7b17e021f39b4be6f64c5f  libgomp/testsuite/libgomp.c++/reduction-12.C
  6a724210e4cb30df7ade4ef7ee0aa83e  libgomp/testsuite/libgomp.c++/reduction-2.C
  e6be7ac480ea1328785bc17e9c2ecc9a  libgomp/testsuite/libgomp.c++/reduction-3.C
  a1833069552b16c28ced3f3d98d919bd  libgomp/testsuite/libgomp.c++/reduction-4.C
! ea7582b52459bee267a5af375cca9630  libgomp/testsuite/libgomp.c++/reduction-5.C
! 3b0c52566fe33743c4e952d740c907da  libgomp/testsuite/libgomp.c++/reduction-6.C
! 30e5f262ef79696b3d4c9141842af634  libgomp/testsuite/libgomp.c++/reduction-7.C
! 5e52cc6eae6448f2140723873b911dac  libgomp/testsuite/libgomp.c++/reduction-8.C
! 7564a9cf2787e1ce01496a2c2d59cfb3  libgomp/testsuite/libgomp.c++/reduction-9.C
  c8212ba834a467826fa8d31fbadc090e  libgomp/testsuite/libgomp.c++/ref-mapping-1.C
  3fc5ed7aa4ae9433ba1ad67a60ddf745  libgomp/testsuite/libgomp.c++/reference-1.C
  0b26d5fef87544de8178bcc43b57463a  libgomp/testsuite/libgomp.c++/scan-1.C
--- 140617,140633 ----
  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
! 35fd695a1f962b8b992a828599a13f38  libgomp/testsuite/libgomp.c++/reduction-10.C
! cdecd36c9b82667e4e85c87f76064dca  libgomp/testsuite/libgomp.c++/reduction-11.C
! 3012b33a92df68922e80c7e98e70bf36  libgomp/testsuite/libgomp.c++/reduction-12.C
  6a724210e4cb30df7ade4ef7ee0aa83e  libgomp/testsuite/libgomp.c++/reduction-2.C
  e6be7ac480ea1328785bc17e9c2ecc9a  libgomp/testsuite/libgomp.c++/reduction-3.C
  a1833069552b16c28ced3f3d98d919bd  libgomp/testsuite/libgomp.c++/reduction-4.C
! 36c45ae05ba79f52b3b3f4a54183f07c  libgomp/testsuite/libgomp.c++/reduction-5.C
! c7d97bc43e8f205d9b62844c0a8108b0  libgomp/testsuite/libgomp.c++/reduction-6.C
! 2b9261c0af03ff63b37380e5f502c740  libgomp/testsuite/libgomp.c++/reduction-7.C
! 4d54476f0bcb1e136be65259eb74288c  libgomp/testsuite/libgomp.c++/reduction-8.C
! 2e271b54008d807758f17dd9c9ecaef8  libgomp/testsuite/libgomp.c++/reduction-9.C
  c8212ba834a467826fa8d31fbadc090e  libgomp/testsuite/libgomp.c++/ref-mapping-1.C
  3fc5ed7aa4ae9433ba1ad67a60ddf745  libgomp/testsuite/libgomp.c++/reference-1.C
  0b26d5fef87544de8178bcc43b57463a  libgomp/testsuite/libgomp.c++/scan-1.C
*************** ff04658f034a805f42f6227468e350d8  libgom
*** 127318,127351 ****
  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
  27a976c5e735ce9e087e36caed72abea  libgomp/testsuite/libgomp.c++/target-12.C
! a6b49af37227f8b4a2b400968972f26d  libgomp/testsuite/libgomp.c++/target-13.C
  9e98d2f79fc4ee9addb65363ad3dac4d  libgomp/testsuite/libgomp.c++/target-14.C
  2c4c8267dca8995861a505bab1fbea46  libgomp/testsuite/libgomp.c++/target-15.C
  a847e64529061157489cc5cde35c7ab0  libgomp/testsuite/libgomp.c++/target-16.C
  a627394989a1f5de1aef46f3899651b0  libgomp/testsuite/libgomp.c++/target-17.C
! 026c96202a3641ccf240834b64dca595  libgomp/testsuite/libgomp.c++/target-18.C
! df5716f496620d97e07fe0d5a08e0c9c  libgomp/testsuite/libgomp.c++/target-19.C
  a7edc8ba5a137d69a617a4d3675b5b01  libgomp/testsuite/libgomp.c++/target-2-aux.cc
! adba67f432b50b18b63fd983c7c0402a  libgomp/testsuite/libgomp.c++/target-2.C
  37e4e40177aed08ff1f53d7b901a11ce  libgomp/testsuite/libgomp.c++/target-20.C
  ab3063f8b6682d372e65d063a35a406d  libgomp/testsuite/libgomp.c++/target-21.C
! 5997530d2ff7d321f6ba42c090c31624  libgomp/testsuite/libgomp.c++/target-22.C
! 2ccc87923b6fdd79d28d47e24e5dbfce  libgomp/testsuite/libgomp.c++/target-23.C
  41ce55c66b2d50a3d368e92fd39401b7  libgomp/testsuite/libgomp.c++/target-48.C
  415b1dd37c80a5a1111cd57da2ef7e79  libgomp/testsuite/libgomp.c++/target-49.C
  71c15b60610a2e837b909b193b5386d2  libgomp/testsuite/libgomp.c++/target-6.C
  131b2ab5b78c2725e33c4249f59e5799  libgomp/testsuite/libgomp.c++/target-7.C
  1a7862ad9a2af6943f9928a670bcaf16  libgomp/testsuite/libgomp.c++/target-8.C
! e8abd1a92868914a2a5307268ef4b3d8  libgomp/testsuite/libgomp.c++/target-9.C
! 0c3cc98689bf759beba23798d61ce4b1  libgomp/testsuite/libgomp.c++/target-cdtor-1.C
! 457b919f3ef79b72a20a5deb55a33a8e  libgomp/testsuite/libgomp.c++/target-cdtor-2.C
  3d15e0d44019185d8004a4d4b87851de  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
--- 140662,140695 ----
  537fc9ac07046ce042391dfa19843e8c  libgomp/testsuite/libgomp.c++/single-1.C
  6c9d8951c10a36292097716f431c385a  libgomp/testsuite/libgomp.c++/single-2.C
  7d0f24f8edab30e9e5aa2d3f5133e9f4  libgomp/testsuite/libgomp.c++/single-3.C
! a6b584355d5e70bb4dd4c080756cf9ca  libgomp/testsuite/libgomp.c++/static-aggr-constructor-destructor-1.C
! 7691a822fae7a8fe0fb7046161e0fbe0  libgomp/testsuite/libgomp.c++/static-aggr-constructor-destructor-2.C
! 887aefe7366c51c00d0def5dadc1e242  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
  27a976c5e735ce9e087e36caed72abea  libgomp/testsuite/libgomp.c++/target-12.C
! a075f3003fb33b25b2f3fb4f8a7c3c0c  libgomp/testsuite/libgomp.c++/target-13.C
  9e98d2f79fc4ee9addb65363ad3dac4d  libgomp/testsuite/libgomp.c++/target-14.C
  2c4c8267dca8995861a505bab1fbea46  libgomp/testsuite/libgomp.c++/target-15.C
  a847e64529061157489cc5cde35c7ab0  libgomp/testsuite/libgomp.c++/target-16.C
  a627394989a1f5de1aef46f3899651b0  libgomp/testsuite/libgomp.c++/target-17.C
! c6201e661299df87ddbfd63cbc348ee8  libgomp/testsuite/libgomp.c++/target-18.C
! deb4ef92609374c64135bdc41faa73db  libgomp/testsuite/libgomp.c++/target-19.C
  a7edc8ba5a137d69a617a4d3675b5b01  libgomp/testsuite/libgomp.c++/target-2-aux.cc
! a02eb3284ac535ed3a2d44c927b43d5d  libgomp/testsuite/libgomp.c++/target-2.C
  37e4e40177aed08ff1f53d7b901a11ce  libgomp/testsuite/libgomp.c++/target-20.C
  ab3063f8b6682d372e65d063a35a406d  libgomp/testsuite/libgomp.c++/target-21.C
! e5d6ce5efe3a3b6c2153b1ba784f1cc4  libgomp/testsuite/libgomp.c++/target-22.C
! f66604a729c1a693416c247cef5805b1  libgomp/testsuite/libgomp.c++/target-23.C
  41ce55c66b2d50a3d368e92fd39401b7  libgomp/testsuite/libgomp.c++/target-48.C
  415b1dd37c80a5a1111cd57da2ef7e79  libgomp/testsuite/libgomp.c++/target-49.C
  71c15b60610a2e837b909b193b5386d2  libgomp/testsuite/libgomp.c++/target-6.C
  131b2ab5b78c2725e33c4249f59e5799  libgomp/testsuite/libgomp.c++/target-7.C
  1a7862ad9a2af6943f9928a670bcaf16  libgomp/testsuite/libgomp.c++/target-8.C
! 9ae4b452504278d0f3af44f0a9a2aa71  libgomp/testsuite/libgomp.c++/target-9.C
! fa716b461da8e5de360fdcf69a488b17  libgomp/testsuite/libgomp.c++/target-cdtor-1.C
! 7d8c3a8920086d8f7b78c2a84e52fdf5  libgomp/testsuite/libgomp.c++/target-cdtor-2.C
  3d15e0d44019185d8004a4d4b87851de  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
*************** ec937bfca18dd06fec284c99ab526c23  libgom
*** 127363,127487 ****
  488d32eeb21a3eeda82ddf89a2bfa708  libgomp/testsuite/libgomp.c++/target-exceptions-throw-3.C
  3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  b83d91a3813efbf02b55efe0117eff39  libgomp/testsuite/libgomp.c++/target-flex-10.C
! 1990d65ffda2ff57200ec61c5027c0bd  libgomp/testsuite/libgomp.c++/target-flex-100.C
! 8b43f813306c222879f3b03bd3e728cc  libgomp/testsuite/libgomp.c++/target-flex-101.C
  fe4d74edf4ec5a3375e54ddd28a8796a  libgomp/testsuite/libgomp.c++/target-flex-11.C
! 0a4ab3e4091f832114123d88913f8a70  libgomp/testsuite/libgomp.c++/target-flex-12.C
  5ff5527ae7d116bd8013ae15730da4b2  libgomp/testsuite/libgomp.c++/target-flex-2000.C
  3d7f92c220984f9b5df143d83454b2d9  libgomp/testsuite/libgomp.c++/target-flex-2001.C
  954995091329c954f03416c9d68fcd53  libgomp/testsuite/libgomp.c++/target-flex-2002.C
! 77f35f53669a7226e09fcbe543d61a78  libgomp/testsuite/libgomp.c++/target-flex-2003.C
! 79ba21f64aded5953ed95cdb188656e1  libgomp/testsuite/libgomp.c++/target-flex-30.C
! 563f2c38d177db2c2abb6025bf23e8dd  libgomp/testsuite/libgomp.c++/target-flex-300.C
  f11b154ef2f8af567a2bba1f78f3422b  libgomp/testsuite/libgomp.c++/target-flex-31.C
! 2e210834ba5b83143580624d7853e294  libgomp/testsuite/libgomp.c++/target-flex-32.C
! 74c1c725cb1b123cf394d2d4f68e97f6  libgomp/testsuite/libgomp.c++/target-flex-33.C
! 972b82f01a6edf4943dc9782cdfb5dde  libgomp/testsuite/libgomp.c++/target-flex-41.C
! 7aa950ef84725f2baef1cbe81d116606  libgomp/testsuite/libgomp.c++/target-flex-60.C
! 35f9209b4dd56a2cac6e72ee9e1cdd56  libgomp/testsuite/libgomp.c++/target-flex-61.C
! b5f6d6ba64189d7870c4b4912d2af06b  libgomp/testsuite/libgomp.c++/target-flex-62.C
  78f769fdafe753971a11ba1f544862d6  libgomp/testsuite/libgomp.c++/target-flex-70.C
! 819954da74d83a55a001d86b6644a0fc  libgomp/testsuite/libgomp.c++/target-flex-80.C
! 54a02975b37691efc1c05ed51a76557a  libgomp/testsuite/libgomp.c++/target-flex-81.C
  d241074614c759c57e84e4b52f049edc  libgomp/testsuite/libgomp.c++/target-flex-90.C
  868cc196b1bcad33d596bb9de56108d6  libgomp/testsuite/libgomp.c++/target-flex-common.h
  4f1a5a6faf4e4b1e94a99f3df7f59dfd  libgomp/testsuite/libgomp.c++/target-has-device-addr-2.C
  c2ea975d3e14f144e2ade23a720b62bd  libgomp/testsuite/libgomp.c++/target-has-device-addr-4.C
  e259056e47b1dc505accadfe5b89d17a  libgomp/testsuite/libgomp.c++/target-has-device-addr-5.C
  e2dfff93f6318ffc237067f281108b05  libgomp/testsuite/libgomp.c++/target-has-device-addr-6.C
! e6701a1305fd626c1f5d07b941421538  libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C
  19df607ca0e83587c3295f274e8fc1bf  libgomp/testsuite/libgomp.c++/target-has-device-addr-8.C
  8d805913407543aaead455b01dc65b8d  libgomp/testsuite/libgomp.c++/target-has-device-addr-9.C
! 97a638ec3a95eff4958b3eac3dfbfbaf  libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
! 0277e9ef051fe788c9b9cd37617bc8aa  libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
! d23befcb08b7a354553581687606995a  libgomp/testsuite/libgomp.c++/target-lambda-1.C
  b22a767f11646ecb4998ef385c41337f  libgomp/testsuite/libgomp.c++/target-lambda-2.C
! e83625d4c6190854ee54b25cdabe69ca  libgomp/testsuite/libgomp.c++/target-lambda-3.C
  4372bdd89f0ce0490fa57005228167d3  libgomp/testsuite/libgomp.c++/target-lambda-4.C
! d60133477ad2d5ea3c1aca648a09ac9f  libgomp/testsuite/libgomp.c++/target-map-class-1.C
  8f7ce45b75a797c6700eae6c6c482459  libgomp/testsuite/libgomp.c++/target-map-class-2.C
  d01f6cd5771f7784c8ce461cf8b60255  libgomp/testsuite/libgomp.c++/target-same-name-2-a.C
  b0372bd118a07b6674371887148186be  libgomp/testsuite/libgomp.c++/target-same-name-2-b.C
  e20a8ae264dd60aac921ec743e8b6ef6  libgomp/testsuite/libgomp.c++/target-same-name-2.C
! 49bec1188a7f331490fd1a884f5ffe7d  libgomp/testsuite/libgomp.c++/target-std__array-concurrent-usm.C
! 3b233a453c3bb44b7fe238e719baaab0  libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C
! abc1f024f366b278405b58df17afe0cd  libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C
! 8bcc7935a48ea91610acb80b5099cfcf  libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C
! 46a820315e87c64c2043cfe42375298c  libgomp/testsuite/libgomp.c++/target-std__cmath.C
! 31a5c6ae9e1ebbc7d44b7d279bd40b98  libgomp/testsuite/libgomp.c++/target-std__complex.C
! 983898d3a6fba310a33cc99a690e61cd  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent-usm.C
! 38a9fa8246afedbc1c1efbe0e9ec1e36  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
! 004d662871b98820d0b7077a8db62a9f  libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
! 9284d636ffccb124c0191ed0a94dfb39  libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
! 1f377677e5b07bccd785fa7f52568e33  libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
! d9a8a0d044e2015bfbdf791ead014021  libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
! 35f877f9bcff198b68b3c7adbe76cc90  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C
! fdec3ba1b0908da4a102cb7c82a03a71  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C
! f957ac83f08d36891003338813dcd03d  libgomp/testsuite/libgomp.c++/target-std__list-concurrent-usm.C
! 9ae571f820c7288512759c98e324522e  libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C
! 9215d28cde00a16495049615bac940cb  libgomp/testsuite/libgomp.c++/target-std__map-concurrent-usm.C
! aafa0a49328d827ce7bd9ef6ad8f9e4d  libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C
! 5e320404381ef41bf4828273a4162e96  libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C
! f365edc7dfad2127e50ef850bdf70310  libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C
! 02fbac6f0c9f081d4eb14d7a2f7a0041  libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C
! 870d16f297d84c8add772ed331876a43  libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C
! 733f4878044be0e7b75ce52065c6cd77  libgomp/testsuite/libgomp.c++/target-std__numbers.C
! 5c629252d916db885e993c42be0fa90e  libgomp/testsuite/libgomp.c++/target-std__set-concurrent-usm.C
! 7d6db87f2bf1a8af87fa7c2bd2510cee  libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C
! 85fcbd49d3999b48d99d829e637b8eac  libgomp/testsuite/libgomp.c++/target-std__span-concurrent-usm.C
! 71ab4f627e6d304b2b607c5f1a8b714f  libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C
! 07a67441f7fdd81abbf6c76f9adb48f7  libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C
! 2f3a1c1a1d16e63b8d4ec3e87fb3b3c4  libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C
! c6ffcb486ca72e20c5b5a8aa4e218c32  libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C
! 6b57b6d8473c3645b2bf7ed07ac18605  libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C
! 8183c34ab1e3da10e4d19400ad68a32c  libgomp/testsuite/libgomp.c++/target-std__valarray-1.C
  94b5f7b92b7c4edffc6cfe54dfd4fdee  libgomp/testsuite/libgomp.c++/target-std__valarray-1.output
! 965d40172dd9afb6a0a83d60c260bfbb  libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C
! 606c20e786b4a247245b41b2c684700c  libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C
! 22adb89598c33012dbbc8c38c19501ce  libgomp/testsuite/libgomp.c++/target-std__vector-concurrent-usm.C
! 50720f2d9b3b20280c020df7032e9281  libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C
  dd3ce96eb6e1a02d995c05804baf3219  libgomp/testsuite/libgomp.c++/target-this-1.C
  7ecd542ef8fc4d3c7a2e77af16f33ddc  libgomp/testsuite/libgomp.c++/target-this-2.C
! b259a40bb59294ea9e4a97ffe6189132  libgomp/testsuite/libgomp.c++/target-this-3.C
! 0a7c63c111661f7e3b5339677db5cb26  libgomp/testsuite/libgomp.c++/target-this-4.C
  16c373a225fe82f7f0d604229dd1c144  libgomp/testsuite/libgomp.c++/target-this-5.C
! d3a5c683e9f1ba8fe5f9c52a09722af0  libgomp/testsuite/libgomp.c++/target-virtual-1.C
! 4755f8276f35f740d59135af4e5242f0  libgomp/testsuite/libgomp.c++/task-1.C
! 5532f36e28daf97021228ebf72885697  libgomp/testsuite/libgomp.c++/task-2.C
  27531bc2a807e1107292fe33e894f8a0  libgomp/testsuite/libgomp.c++/task-3.C
  0d8cf66e014b36ac1b99ff0ada601105  libgomp/testsuite/libgomp.c++/task-4.C
  6cc1ae8058007b8afab8f6686080f1dc  libgomp/testsuite/libgomp.c++/task-5.C
! f3fc31477cdff517af07a5eaed3977b4  libgomp/testsuite/libgomp.c++/task-6.C
  e58d1f21c043b7905dfd8072efa52a05  libgomp/testsuite/libgomp.c++/task-7.C
  c2392e28255d8ad9d2a56b86eddef4b4  libgomp/testsuite/libgomp.c++/task-8.C
  eacb4b2d5ef8455c8e37851883c5714d  libgomp/testsuite/libgomp.c++/task-reduction-1.C
  25ea133533a216a56e66fc40a44dcb42  libgomp/testsuite/libgomp.c++/task-reduction-10.C
! aa976df1d10c33e8641b581d940be81a  libgomp/testsuite/libgomp.c++/task-reduction-11.C
! 26cfec78c79d24711bbf42bda7a555fa  libgomp/testsuite/libgomp.c++/task-reduction-12.C
! 27016454f9df3d9ab4057d6bdbf51075  libgomp/testsuite/libgomp.c++/task-reduction-13.C
  50b64ff9f818d557847d5c8b00fa2972  libgomp/testsuite/libgomp.c++/task-reduction-14.C
  5d6d833485e70ff9aeaabed75eb82364  libgomp/testsuite/libgomp.c++/task-reduction-15.C
  ed9df181e0fa5e9cf64c81b57fd6c737  libgomp/testsuite/libgomp.c++/task-reduction-16.C
! 5c3380263a3e4ee69bc9498f26028ab6  libgomp/testsuite/libgomp.c++/task-reduction-17.C
! 827eb44659382d038df098807c790d5f  libgomp/testsuite/libgomp.c++/task-reduction-18.C
! e83c1b5fc10d976789e468bec73b4ae7  libgomp/testsuite/libgomp.c++/task-reduction-19.C
  86b18fe99055940b077fc87941a4982d  libgomp/testsuite/libgomp.c++/task-reduction-2.C
  d584d89884b73fdaeb2dbdb58307cc54  libgomp/testsuite/libgomp.c++/task-reduction-3.C
! 70205337be77c4adef6e0b33d7c5dbcd  libgomp/testsuite/libgomp.c++/task-reduction-4.C
! d1bcb83388e5836394c31c004a3523b7  libgomp/testsuite/libgomp.c++/task-reduction-5.C
! 4934254955da88230c522b61eb1c98a5  libgomp/testsuite/libgomp.c++/task-reduction-6.C
! 79e71bd2e7607f1ae00bce098b081713  libgomp/testsuite/libgomp.c++/task-reduction-7.C
  b74a32fc280ea9e21760697490ebe443  libgomp/testsuite/libgomp.c++/task-reduction-8.C
! dc6d761bb7690280e86d9b43578c2095  libgomp/testsuite/libgomp.c++/task-reduction-9.C
  952a7f4c3daca43ae5ba697df18b089b  libgomp/testsuite/libgomp.c++/taskloop-5.C
  81911142ff8fca718d13016b3ee5dc84  libgomp/testsuite/libgomp.c++/taskloop-6.C
  b3611556d31dd93c92d3f5f0f9099804  libgomp/testsuite/libgomp.c++/taskloop-7.C
  1509a4bd1d786f821f29fcd625281ad8  libgomp/testsuite/libgomp.c++/taskloop-8.C
  2709861c62646dd2b7f52c228c6271d7  libgomp/testsuite/libgomp.c++/taskloop-9.C
! 542dc7970e6d4a87acac2feba00d3cfc  libgomp/testsuite/libgomp.c++/taskloop-reduction-1.C
! 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
--- 140707,140839 ----
  488d32eeb21a3eeda82ddf89a2bfa708  libgomp/testsuite/libgomp.c++/target-exceptions-throw-3.C
  3e34525fadfa0f7d151d5ffe7f6c0f3d  libgomp/testsuite/libgomp.c++/target-exit-data-reftoptr-1.C
  b83d91a3813efbf02b55efe0117eff39  libgomp/testsuite/libgomp.c++/target-flex-10.C
! 6edf5ba1589c2e4b0678965adba0983b  libgomp/testsuite/libgomp.c++/target-flex-100.C
! 079fbd8ce9ec8a33b97dd29720211063  libgomp/testsuite/libgomp.c++/target-flex-101.C
  fe4d74edf4ec5a3375e54ddd28a8796a  libgomp/testsuite/libgomp.c++/target-flex-11.C
! c862a50d1fdf5eca5abe91529aa9176f  libgomp/testsuite/libgomp.c++/target-flex-12.C
  5ff5527ae7d116bd8013ae15730da4b2  libgomp/testsuite/libgomp.c++/target-flex-2000.C
  3d7f92c220984f9b5df143d83454b2d9  libgomp/testsuite/libgomp.c++/target-flex-2001.C
  954995091329c954f03416c9d68fcd53  libgomp/testsuite/libgomp.c++/target-flex-2002.C
! f50ad3cb8f31df92fdac511c46669329  libgomp/testsuite/libgomp.c++/target-flex-2003.C
! c1bc651f9153db6c8327df878a547ff5  libgomp/testsuite/libgomp.c++/target-flex-30.C
! 19127f46e99d6bd12fd0e6890e69581b  libgomp/testsuite/libgomp.c++/target-flex-300.C
  f11b154ef2f8af567a2bba1f78f3422b  libgomp/testsuite/libgomp.c++/target-flex-31.C
! ccd9638715e5a7eda6f5e7dc895a8ef3  libgomp/testsuite/libgomp.c++/target-flex-32.C
! 05f6bc272f36296138644ce8c0db4594  libgomp/testsuite/libgomp.c++/target-flex-33.C
! 7b126c0871a4efa55df4c04623297817  libgomp/testsuite/libgomp.c++/target-flex-41.C
! a7a2fdf4d2b2a45ca86de6af02a7fc6a  libgomp/testsuite/libgomp.c++/target-flex-60.C
! 23935526216b81f1f6dacd982d4ce5a2  libgomp/testsuite/libgomp.c++/target-flex-61.C
! 390b165b987e6322c944566dedd6185c  libgomp/testsuite/libgomp.c++/target-flex-62.C
  78f769fdafe753971a11ba1f544862d6  libgomp/testsuite/libgomp.c++/target-flex-70.C
! 152a676012f487a597cf97fe8443d1f6  libgomp/testsuite/libgomp.c++/target-flex-80.C
! a422fac7420c68f18c78e6509b5249a9  libgomp/testsuite/libgomp.c++/target-flex-81.C
  d241074614c759c57e84e4b52f049edc  libgomp/testsuite/libgomp.c++/target-flex-90.C
  868cc196b1bcad33d596bb9de56108d6  libgomp/testsuite/libgomp.c++/target-flex-common.h
  4f1a5a6faf4e4b1e94a99f3df7f59dfd  libgomp/testsuite/libgomp.c++/target-has-device-addr-2.C
  c2ea975d3e14f144e2ade23a720b62bd  libgomp/testsuite/libgomp.c++/target-has-device-addr-4.C
  e259056e47b1dc505accadfe5b89d17a  libgomp/testsuite/libgomp.c++/target-has-device-addr-5.C
  e2dfff93f6318ffc237067f281108b05  libgomp/testsuite/libgomp.c++/target-has-device-addr-6.C
! 3f30996cbb6ad3019d08c6070ee98f7b  libgomp/testsuite/libgomp.c++/target-has-device-addr-7.C
  19df607ca0e83587c3295f274e8fc1bf  libgomp/testsuite/libgomp.c++/target-has-device-addr-8.C
  8d805913407543aaead455b01dc65b8d  libgomp/testsuite/libgomp.c++/target-has-device-addr-9.C
! a9f5be36618d677c67c540a52d2cf72f  libgomp/testsuite/libgomp.c++/target-in-reduction-1.C
! 7d4b3b8b0a487d6532c7adc1aa72092a  libgomp/testsuite/libgomp.c++/target-in-reduction-2.C
! 0776355f201276cae286d03057ed95b2  libgomp/testsuite/libgomp.c++/target-lambda-1.C
  b22a767f11646ecb4998ef385c41337f  libgomp/testsuite/libgomp.c++/target-lambda-2.C
! 0b5bbbcf9eb120684f80f84df54f570d  libgomp/testsuite/libgomp.c++/target-lambda-3.C
  4372bdd89f0ce0490fa57005228167d3  libgomp/testsuite/libgomp.c++/target-lambda-4.C
! cfa4149542c401b73310497159a6cb92  libgomp/testsuite/libgomp.c++/target-map-class-1.C
  8f7ce45b75a797c6700eae6c6c482459  libgomp/testsuite/libgomp.c++/target-map-class-2.C
  d01f6cd5771f7784c8ce461cf8b60255  libgomp/testsuite/libgomp.c++/target-same-name-2-a.C
  b0372bd118a07b6674371887148186be  libgomp/testsuite/libgomp.c++/target-same-name-2-b.C
  e20a8ae264dd60aac921ec743e8b6ef6  libgomp/testsuite/libgomp.c++/target-same-name-2.C
! 238a94597dd5ed51e805225404cfe6c8  libgomp/testsuite/libgomp.c++/target-std__array-concurrent-usm.C
! b0e82ee7e64a8a22c0972d684065bb11  libgomp/testsuite/libgomp.c++/target-std__array-concurrent.C
! a1d500be55e92a7a03c1be6c8fa486f2  libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C
! 41f65e99a080a22d27f0b2d33e50d808  libgomp/testsuite/libgomp.c++/target-std__bitset-concurrent.C
! 9ca8fd31f9d1a81ee2848076e938d038  libgomp/testsuite/libgomp.c++/target-std__cmath.C
! 3e851d51211a5b45aef590ec200d5aeb  libgomp/testsuite/libgomp.c++/target-std__complex.C
! b18b1cb0133b28594597029cf7db44ff  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent-usm.C
! bb0bf0ab197120edc9916797415179ab  libgomp/testsuite/libgomp.c++/target-std__deque-concurrent.C
! e3b11ebd56ba21889ca9f3d074e3ed7e  libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent-usm.C
! 8ad75417ee9f0d313299b609471519e6  libgomp/testsuite/libgomp.c++/target-std__flat_map-concurrent.C
! 36cb4df9290f5e7001c45c05a18e1f88  libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent-usm.C
! 7d50d408a2ee8c4a1d633ea3e75ce654  libgomp/testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C
! 62623bce7f6da50e8d2b1d61061030af  libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent-usm.C
! a61747c41ceef9d0337d2871c1f72c38  libgomp/testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C
! e4029a4eb93893adc0147f3101fb766d  libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent-usm.C
! 8100f5a33e0d9796f30f8a4b4f150a32  libgomp/testsuite/libgomp.c++/target-std__flat_set-concurrent.C
! f6a834895f8afbbc3574ca207cdeb54b  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C
! 3680c923da9a297ea8b02a8dfb722910  libgomp/testsuite/libgomp.c++/target-std__forward_list-concurrent.C
! 51231b4722b861f08f713ac96b3caa5b  libgomp/testsuite/libgomp.c++/target-std__list-concurrent-usm.C
! 9cc02c65e4a7cd2697f4ea4e71d58de2  libgomp/testsuite/libgomp.c++/target-std__list-concurrent.C
! 0edcbeefe52f6ebb790bbf074181c7df  libgomp/testsuite/libgomp.c++/target-std__map-concurrent-usm.C
! df50cd725c25e9f5a5c5f9940a9c5bac  libgomp/testsuite/libgomp.c++/target-std__map-concurrent.C
! e85696bee267273e6ae13c36259d6026  libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C
! f5d1972187ae37a4576e963ed17c85b9  libgomp/testsuite/libgomp.c++/target-std__multimap-concurrent.C
! f9fe809d96ea4277c96e170a72b9f2f2  libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C
! 218e418909a8b4b5e30171c5edf34d59  libgomp/testsuite/libgomp.c++/target-std__multiset-concurrent.C
! 155c26d39bae87ec622ca18a97497525  libgomp/testsuite/libgomp.c++/target-std__numbers.C
! 96317e775e0266606fb86a3f7f0d0892  libgomp/testsuite/libgomp.c++/target-std__set-concurrent-usm.C
! 29aa35a592caca04cf45c63a3ac9b500  libgomp/testsuite/libgomp.c++/target-std__set-concurrent.C
! 6ade5dbb99910aa747e177b02ab59b4e  libgomp/testsuite/libgomp.c++/target-std__span-concurrent-usm.C
! 3ab36c10aa51dfe5d83f8307175e81e3  libgomp/testsuite/libgomp.c++/target-std__span-concurrent.C
! f51737d43afa146bf6c6278952b405cd  libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent-usm.C
! 785cf7c8ad2533d1bdd9c8ec3b707d52  libgomp/testsuite/libgomp.c++/target-std__unordered_map-concurrent.C
! d349257963773d9aacbba6388238573a  libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent-usm.C
! e834f7f94d139d2a593b5420ac2f5a77  libgomp/testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C
! 6552a9c0e4ee2cfeee5d9b4cfdfb6235  libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent-usm.C
! 41ad845cd806088b1c154d88a85dcc1f  libgomp/testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C
! 7ccdfafe5ba9339fecb86bc2ae4873bf  libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent-usm.C
! 50c5f8dc8594629cdec02be8c657d582  libgomp/testsuite/libgomp.c++/target-std__unordered_set-concurrent.C
! 1ca15bd8238a647321aeb7d4e5868782  libgomp/testsuite/libgomp.c++/target-std__valarray-1.C
  94b5f7b92b7c4edffc6cfe54dfd4fdee  libgomp/testsuite/libgomp.c++/target-std__valarray-1.output
! ab3b8c71c7f55c524395323abccc18a3  libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C
! d6683fc66b1ea2b4b3cee554c552cb24  libgomp/testsuite/libgomp.c++/target-std__valarray-concurrent.C
! e6ab7ad1a761d072399647231b862e4e  libgomp/testsuite/libgomp.c++/target-std__vector-concurrent-usm.C
! c3afb93c7427399290dc355f84c46cbc  libgomp/testsuite/libgomp.c++/target-std__vector-concurrent.C
  dd3ce96eb6e1a02d995c05804baf3219  libgomp/testsuite/libgomp.c++/target-this-1.C
  7ecd542ef8fc4d3c7a2e77af16f33ddc  libgomp/testsuite/libgomp.c++/target-this-2.C
! ca6e1cf374cf317aca4336ffd0f23b46  libgomp/testsuite/libgomp.c++/target-this-3.C
! 267d80f9766f37b7c01e315688b6f58b  libgomp/testsuite/libgomp.c++/target-this-4.C
  16c373a225fe82f7f0d604229dd1c144  libgomp/testsuite/libgomp.c++/target-this-5.C
! f29fd9fd6b4ceb2153ee577439c12757  libgomp/testsuite/libgomp.c++/target-virtual-1.C
! e6f9f0923050a40abd625993bf6fbcc6  libgomp/testsuite/libgomp.c++/task-1.C
! cf639a82455a339b02a5aa5715eec58e  libgomp/testsuite/libgomp.c++/task-2.C
  27531bc2a807e1107292fe33e894f8a0  libgomp/testsuite/libgomp.c++/task-3.C
  0d8cf66e014b36ac1b99ff0ada601105  libgomp/testsuite/libgomp.c++/task-4.C
  6cc1ae8058007b8afab8f6686080f1dc  libgomp/testsuite/libgomp.c++/task-5.C
! 96b679c821a9d219230c2ed8293edb38  libgomp/testsuite/libgomp.c++/task-6.C
  e58d1f21c043b7905dfd8072efa52a05  libgomp/testsuite/libgomp.c++/task-7.C
  c2392e28255d8ad9d2a56b86eddef4b4  libgomp/testsuite/libgomp.c++/task-8.C
  eacb4b2d5ef8455c8e37851883c5714d  libgomp/testsuite/libgomp.c++/task-reduction-1.C
  25ea133533a216a56e66fc40a44dcb42  libgomp/testsuite/libgomp.c++/task-reduction-10.C
! 8553e34b9c8e1daab8355b2d32d4f33d  libgomp/testsuite/libgomp.c++/task-reduction-11.C
! ddbae88f32b3c9b1de0fa8fcaff46116  libgomp/testsuite/libgomp.c++/task-reduction-12.C
! a62308588a46722532c7fa3256bda8f6  libgomp/testsuite/libgomp.c++/task-reduction-13.C
  50b64ff9f818d557847d5c8b00fa2972  libgomp/testsuite/libgomp.c++/task-reduction-14.C
  5d6d833485e70ff9aeaabed75eb82364  libgomp/testsuite/libgomp.c++/task-reduction-15.C
  ed9df181e0fa5e9cf64c81b57fd6c737  libgomp/testsuite/libgomp.c++/task-reduction-16.C
! 7983a188b92179d076a26a9d828925dc  libgomp/testsuite/libgomp.c++/task-reduction-17.C
! be68403b92ab91d41e228c6d6e0aff2c  libgomp/testsuite/libgomp.c++/task-reduction-18.C
! c2084bb276cdfec1c29bed43b8541b69  libgomp/testsuite/libgomp.c++/task-reduction-19.C
  86b18fe99055940b077fc87941a4982d  libgomp/testsuite/libgomp.c++/task-reduction-2.C
  d584d89884b73fdaeb2dbdb58307cc54  libgomp/testsuite/libgomp.c++/task-reduction-3.C
! 2586da7d10786a72f88c1e2c8c132097  libgomp/testsuite/libgomp.c++/task-reduction-4.C
! e0b9223f090e13d2eaffa1c4beadfb00  libgomp/testsuite/libgomp.c++/task-reduction-5.C
! 667be26164ed91cd6373fa0993fc4b5b  libgomp/testsuite/libgomp.c++/task-reduction-6.C
! 5b15a0bbe9d51dcfd2e02d8d291168fe  libgomp/testsuite/libgomp.c++/task-reduction-7.C
  b74a32fc280ea9e21760697490ebe443  libgomp/testsuite/libgomp.c++/task-reduction-8.C
! 735d0bae2fd83ba165f0c74dfd1cd069  libgomp/testsuite/libgomp.c++/task-reduction-9.C
  952a7f4c3daca43ae5ba697df18b089b  libgomp/testsuite/libgomp.c++/taskloop-5.C
  81911142ff8fca718d13016b3ee5dc84  libgomp/testsuite/libgomp.c++/taskloop-6.C
  b3611556d31dd93c92d3f5f0f9099804  libgomp/testsuite/libgomp.c++/taskloop-7.C
  1509a4bd1d786f821f29fcd625281ad8  libgomp/testsuite/libgomp.c++/taskloop-8.C
  2709861c62646dd2b7f52c228c6271d7  libgomp/testsuite/libgomp.c++/taskloop-9.C
! 790fee819fbc5cab61a4c562abb4a920  libgomp/testsuite/libgomp.c++/taskloop-reduction-1.C
! 7f4692124344d69ebd3f8a913e8062f6  libgomp/testsuite/libgomp.c++/taskloop-reduction-2.C
! c47c26eb550171d349d30225ea3a9a0f  libgomp/testsuite/libgomp.c++/taskloop-reduction-3.C
! 9046bc657a820699d03ba700761062e1  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
*************** fd2369c7ae56d95d52913f986183913e  libgom
*** 127520,127528 ****
  13f9ffdf78c7c6460416acf1c9e28029  libgomp/testsuite/libgomp.c-c++-common/alloc-7.c
  958b22575f252e68c66b6c7a7f0da79a  libgomp/testsuite/libgomp.c-c++-common/alloc-8.c
  6a6bc24d15d026cca5b2ff5b6e30d6e2  libgomp/testsuite/libgomp.c-c++-common/alloc-9.c
! 41e58903cfe25287db13d4e13157037d  libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
  c1c21337b0fec3c68ff32349fb0a4018  libgomp/testsuite/libgomp.c-c++-common/allocate-2.c
! 345af687e5b4235bd0e1867f591217f5  libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
  338567dfa51841d8ee710d7de3d0b3be  libgomp/testsuite/libgomp.c-c++-common/array-field-1.c
  03ad70a1f1f70761a9211520286abd40  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-1.c
  897c2a61f8cb4611c3645ddb5573d44d  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-2.c
--- 140872,140880 ----
  13f9ffdf78c7c6460416acf1c9e28029  libgomp/testsuite/libgomp.c-c++-common/alloc-7.c
  958b22575f252e68c66b6c7a7f0da79a  libgomp/testsuite/libgomp.c-c++-common/alloc-8.c
  6a6bc24d15d026cca5b2ff5b6e30d6e2  libgomp/testsuite/libgomp.c-c++-common/alloc-9.c
! d6a5077ef893d6314800020ca36249dc  libgomp/testsuite/libgomp.c-c++-common/allocate-1.c
  c1c21337b0fec3c68ff32349fb0a4018  libgomp/testsuite/libgomp.c-c++-common/allocate-2.c
! 0a649641d819d243521ba71bb48e73db  libgomp/testsuite/libgomp.c-c++-common/allocate-3.c
  338567dfa51841d8ee710d7de3d0b3be  libgomp/testsuite/libgomp.c-c++-common/array-field-1.c
  03ad70a1f1f70761a9211520286abd40  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-1.c
  897c2a61f8cb4611c3645ddb5573d44d  libgomp/testsuite/libgomp.c-c++-common/array-of-struct-2.c
*************** c1c21337b0fec3c68ff32349fb0a4018  libgom
*** 127531,127583 ****
  69c685c05133b4a16e0c8dac70b08f1c  libgomp/testsuite/libgomp.c-c++-common/atomic-20.c
  7a2af54d64b5694d40c340fd54e94a2a  libgomp/testsuite/libgomp.c-c++-common/atomic-21.c
  dc92320c20d6c66965c8bbfad8f6127d  libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c
! c78332b5caf38f4811a80bef6a30ca9b  libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
  9827463d9d8147e0833d0b4ab48bc346  libgomp/testsuite/libgomp.c-c++-common/baseptrs-6.c
  e700fabc04a10611a988a11fccaf0fe6  libgomp/testsuite/libgomp.c-c++-common/baseptrs-7.c
  83a30fcfeab47090fa194cc1e6ec2f83  libgomp/testsuite/libgomp.c-c++-common/cancel-parallel-1.c
  025dfca2b02c470cf7f46afb552c078c  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c
  e84312e49f013526d73d8d431b003123  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c
  954be12144c529b10fe999f79ec5e0c2  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c
! 65874eb51aef9c0a8ebb700f6708ac82  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c
  9fe6259058ff7671b0dadfe2a5eea80f  libgomp/testsuite/libgomp.c-c++-common/critical-hint-1.c
  a4ab197aeadddd54aec1345501b5ea69  libgomp/testsuite/libgomp.c-c++-common/critical-hint-2.c
  a91d1e81f6056f17808a3f96ef2583c6  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-1.c
  340f18f5450878329ed68937e697b129  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-2.c
! 12e3ee01b70343537315551db476c391  libgomp/testsuite/libgomp.c-c++-common/declare_target-1.c
  59c8656b7740501a704831756762d395  libgomp/testsuite/libgomp.c-c++-common/default-1.c
  a1a09ff547c6ff16fad80cd2261269ee  libgomp/testsuite/libgomp.c-c++-common/depend-1.c
! 1cdb324b383818a853a928fc5fde4668  libgomp/testsuite/libgomp.c-c++-common/depend-2.c
  9f82353471029dda0e81fd17d53ada6a  libgomp/testsuite/libgomp.c-c++-common/depend-3.c
! 276cc39e55e150ed968d02e05c73cbf2  libgomp/testsuite/libgomp.c-c++-common/depend-inoutset-1.c
! ffae923e01f64777614298d5256aa1e4  libgomp/testsuite/libgomp.c-c++-common/depend-iterator-1.c
! 89f89f54b56b11293d8d7db027c1dc5b  libgomp/testsuite/libgomp.c-c++-common/depend-iterator-2.c
  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
  c8a38164050e9ce322ff7c77a9f0f96c  libgomp/testsuite/libgomp.c-c++-common/for-1.h
  90517645b53ddd6cd57d1b9e55ae5023  libgomp/testsuite/libgomp.c-c++-common/for-10.c
! 07be80e9db331a811ae629bc098e1151  libgomp/testsuite/libgomp.c-c++-common/for-11.c
! d7ceec9c2f54a9c83c61ab6edabe06fb  libgomp/testsuite/libgomp.c-c++-common/for-12.c
  5d8c32de5ade2a47a71b104e000cbd5f  libgomp/testsuite/libgomp.c-c++-common/for-13.c
  cbc14e9058cf7693b82cf46dc742fafb  libgomp/testsuite/libgomp.c-c++-common/for-14.c
  6b7dbfb9f68342594df4696803e3afaf  libgomp/testsuite/libgomp.c-c++-common/for-15.c
! 39f370f549dd8b0710d66b5d97a3817c  libgomp/testsuite/libgomp.c-c++-common/for-16.c
  e0f3473e377101c52df3a53604089bff  libgomp/testsuite/libgomp.c-c++-common/for-2.c
  fb8359839c9314ffa41831bcd16efb06  libgomp/testsuite/libgomp.c-c++-common/for-2.h
! ec2352caddec68baeddd9018aa81c14b  libgomp/testsuite/libgomp.c-c++-common/for-3.c
  5c2c6f34632d5e4d4a9f6cad324f21ef  libgomp/testsuite/libgomp.c-c++-common/for-4.c
! 0885eb5a2a371c53a717ebe52186deeb  libgomp/testsuite/libgomp.c-c++-common/for-5.c
! 44cbd81173518afca6a17f0bf914a60f  libgomp/testsuite/libgomp.c-c++-common/for-6.c
  ee0115a370a5b6a9e6990b3d15bdd431  libgomp/testsuite/libgomp.c-c++-common/for-7.c
  5b4d126628a41201baf8653fe10a5d94  libgomp/testsuite/libgomp.c-c++-common/for-8.c
! 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
--- 140883,140944 ----
  69c685c05133b4a16e0c8dac70b08f1c  libgomp/testsuite/libgomp.c-c++-common/atomic-20.c
  7a2af54d64b5694d40c340fd54e94a2a  libgomp/testsuite/libgomp.c-c++-common/atomic-21.c
  dc92320c20d6c66965c8bbfad8f6127d  libgomp/testsuite/libgomp.c-c++-common/baseptrs-1.c
! 561c190a0f09c001552d81fd73cac302  libgomp/testsuite/libgomp.c-c++-common/baseptrs-2.c
  9827463d9d8147e0833d0b4ab48bc346  libgomp/testsuite/libgomp.c-c++-common/baseptrs-6.c
  e700fabc04a10611a988a11fccaf0fe6  libgomp/testsuite/libgomp.c-c++-common/baseptrs-7.c
  83a30fcfeab47090fa194cc1e6ec2f83  libgomp/testsuite/libgomp.c-c++-common/cancel-parallel-1.c
  025dfca2b02c470cf7f46afb552c078c  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c
  e84312e49f013526d73d8d431b003123  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-2.c
  954be12144c529b10fe999f79ec5e0c2  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c
! 452631becda11e1d7559e049fe776eff  libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-4.c
  9fe6259058ff7671b0dadfe2a5eea80f  libgomp/testsuite/libgomp.c-c++-common/critical-hint-1.c
  a4ab197aeadddd54aec1345501b5ea69  libgomp/testsuite/libgomp.c-c++-common/critical-hint-2.c
+ 61e48ed628966d420618cb7384f5f541  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-10.c
+ 7fb33d18278bb358c50e0f3b90eaf2b8  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-11.c
+ 7bf9aeaac3ee27d9e5e0565434fb4186  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-12.c
+ 34db3bfd2242053022ea450a1a211e90  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-13.c
+ e1fa8ce4f72dcee9fa7fa3c1656fbf01  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-14.c
+ 4ac23cf49f0b483f9a8a3ad62ab94899  libgomp/testsuite/libgomp.c-c++-common/declare-mapper-9.c
  a91d1e81f6056f17808a3f96ef2583c6  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-1.c
  340f18f5450878329ed68937e697b129  libgomp/testsuite/libgomp.c-c++-common/declare-target-indirect-2.c
! 87cbcc55746faa452b358c6cc4478de3  libgomp/testsuite/libgomp.c-c++-common/declare-variant-1.c
! 225961951fb9b45ca7f9a12e31ccdbfe  libgomp/testsuite/libgomp.c-c++-common/declare_target-1.c
  59c8656b7740501a704831756762d395  libgomp/testsuite/libgomp.c-c++-common/default-1.c
+ 5003b9495bcf8077b467a405e2a84b81  libgomp/testsuite/libgomp.c-c++-common/delim-declare-variant-1.c
+ 1bb8f78534cdd039f92d6f77666853f1  libgomp/testsuite/libgomp.c-c++-common/delim-declare-variant-2.c
  a1a09ff547c6ff16fad80cd2261269ee  libgomp/testsuite/libgomp.c-c++-common/depend-1.c
! f69fd03d065ac091918436dd35ae0b8d  libgomp/testsuite/libgomp.c-c++-common/depend-2.c
  9f82353471029dda0e81fd17d53ada6a  libgomp/testsuite/libgomp.c-c++-common/depend-3.c
! 3fce08ec160b3bdb00e050bbcd0ac5d9  libgomp/testsuite/libgomp.c-c++-common/depend-inoutset-1.c
! b87e1783b579faba88ea9fb30e462c4d  libgomp/testsuite/libgomp.c-c++-common/depend-iterator-1.c
! 02dfe4fc07134aeaf04c1a053a76d5d4  libgomp/testsuite/libgomp.c-c++-common/depend-iterator-2.c
  1583f97cbaa7d0b05f4bc3415cf9a901  libgomp/testsuite/libgomp.c-c++-common/depend-mutexinout-1.c
  744de86f8478d3f33bf9ae8549aa5d5f  libgomp/testsuite/libgomp.c-c++-common/depend-mutexinout-2.c
! c0df903a53541da7914a60d10a204e86  libgomp/testsuite/libgomp.c-c++-common/depobj-1.c
! b8d825afda76163d391407189bbdc955  libgomp/testsuite/libgomp.c-c++-common/dispatch-1.c
! 576de2de2369991bc3a08a1d5dffddc9  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
  c8a38164050e9ce322ff7c77a9f0f96c  libgomp/testsuite/libgomp.c-c++-common/for-1.h
  90517645b53ddd6cd57d1b9e55ae5023  libgomp/testsuite/libgomp.c-c++-common/for-10.c
! 9f104421f806751caa4abe3fb20911fb  libgomp/testsuite/libgomp.c-c++-common/for-11.c
! 6f1f9c67bf77c229aba5817b44963f8f  libgomp/testsuite/libgomp.c-c++-common/for-12.c
  5d8c32de5ade2a47a71b104e000cbd5f  libgomp/testsuite/libgomp.c-c++-common/for-13.c
  cbc14e9058cf7693b82cf46dc742fafb  libgomp/testsuite/libgomp.c-c++-common/for-14.c
  6b7dbfb9f68342594df4696803e3afaf  libgomp/testsuite/libgomp.c-c++-common/for-15.c
! 50ebf841e70ad6aa898aa3e6882db87e  libgomp/testsuite/libgomp.c-c++-common/for-16.c
  e0f3473e377101c52df3a53604089bff  libgomp/testsuite/libgomp.c-c++-common/for-2.c
  fb8359839c9314ffa41831bcd16efb06  libgomp/testsuite/libgomp.c-c++-common/for-2.h
! 0e6b69b6886fbaf91377695be50c2487  libgomp/testsuite/libgomp.c-c++-common/for-3.c
  5c2c6f34632d5e4d4a9f6cad324f21ef  libgomp/testsuite/libgomp.c-c++-common/for-4.c
! 05e5d45e605579787261bdf8d8f0e655  libgomp/testsuite/libgomp.c-c++-common/for-5.c
! 4999bd5ec884b059dbaeed3ec0d24cfa  libgomp/testsuite/libgomp.c-c++-common/for-6.c
  ee0115a370a5b6a9e6990b3d15bdd431  libgomp/testsuite/libgomp.c-c++-common/for-7.c
  5b4d126628a41201baf8653fe10a5d94  libgomp/testsuite/libgomp.c-c++-common/for-8.c
! 14ac121f9dbf4675cb527a13f401e0c6  libgomp/testsuite/libgomp.c-c++-common/for-9.c
  38b84120e95c50bcbe995ff760fb2f46  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c
! 0a53af92f72022a91eded9bc193bc5c0  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
*************** db84355be6497be803699536cec8df8e  libgom
*** 127599,127605 ****
  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
! 269bc7768d09b8c1206a82f65905ae67  libgomp/testsuite/libgomp.c-c++-common/interop-2.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
--- 140960,140966 ----
  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
! 051c56d5a2335fe05ecac575b39ab793  libgomp/testsuite/libgomp.c-c++-common/interop-2.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
*************** b27380cd395a2928996b8531b3eb62ad  libgom
*** 127617,127626 ****
  81cd8a77c25ea49d08f07250f984f35d  libgomp/testsuite/libgomp.c-c++-common/loop-14.c
  dffc3aabaa5b2461aa560fc66c80c0fe  libgomp/testsuite/libgomp.c-c++-common/loop-15.c
  432ac98498f545fab31969b079c5848a  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-1.c
! a47284d2352269483d0c53155360b633  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2.c
! 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
--- 140978,140989 ----
  81cd8a77c25ea49d08f07250f984f35d  libgomp/testsuite/libgomp.c-c++-common/loop-14.c
  dffc3aabaa5b2461aa560fc66c80c0fe  libgomp/testsuite/libgomp.c-c++-common/loop-15.c
  432ac98498f545fab31969b079c5848a  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-1.c
! 86225adf9607d64421b4b2d8b0fcaccf  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2-usm.c
! afc52bb7680e92ac0996527dce7bd30f  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-2.c
! 516b1e6f33fcb02aab7737f80139fac7  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3-usm.c
! b7c55d9a7dcc3e046b1f2c02fc0d61e2  libgomp/testsuite/libgomp.c-c++-common/map-arrayofstruct-3.c
  5cdaccb404c42c94d2b0ed71fa9b4450  libgomp/testsuite/libgomp.c-c++-common/masked-1.c
! 776bf7cbf25f215ab09a3df3faed350d  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
*************** c35f644c9ca09d77a080b0628b0c11bb  libgom
*** 127632,127671 ****
  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
! 87cada43a2557a6c8c7b870bd75cab00  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
  83daaaf005b81e8c9d1f407ac1c30136  libgomp/testsuite/libgomp.c-c++-common/non-rect-loop-1.c
  d9c974865c1c03b48fac0231e028a7be  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-1.c
  214e7bba3d270a6822e2e6161f05981b  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-2.c
  857b86f8109e8843b901fc93bce4c8a8  libgomp/testsuite/libgomp.c-c++-common/nothing-1.c
  7b82eb3ecdfe1a29b71573e9670b905e  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-1.c
  b44227078d5fcd5acfde164f5bf5bcbe  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-2.c
  ea669c503a0c8f82567ee811767d35be  libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
  74baf3447a9a73a48cd8d205ea13026b  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-1.c
  e2bc55eb4581cd421c13c8ce68663678  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-2.c
  53fe13231ac841815b983b820fa61932  libgomp/testsuite/libgomp.c-c++-common/ordered-4.c
  35032e9e752cf0fddfcf3aa3df880c48  libgomp/testsuite/libgomp.c-c++-common/pause-1.c
  333f11e6a780e595ef92d101803745c9  libgomp/testsuite/libgomp.c-c++-common/pause-2.c
! 2ac0dc733994b8e1c05d57368faeec50  libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c
  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
--- 140995,141045 ----
  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
! 55032f41bfabaf0e48fa4603b31596da  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
! d9b2871c4ac5bfdb2e62b25d05660d91  libgomp/testsuite/libgomp.c-c++-common/metadirective-1.c
! 82e019efd12c984cfc7bbe6abf9a56eb  libgomp/testsuite/libgomp.c-c++-common/metadirective-2.c
! 8d65ce64d69f0d93e4ef66bc3e3e16a8  libgomp/testsuite/libgomp.c-c++-common/metadirective-3.c
  29710e6fe72aca1f1ab459086956363b  libgomp/testsuite/libgomp.c-c++-common/metadirective-4.c
! 9653d51bd6317b6548a23c86c1b3d68e  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
! 7dbdd6d020a54568a72f83b04627336b  libgomp/testsuite/libgomp.c-c++-common/monotonic-1.c
! ac58ad35aa15ff328b01e2e93461e29b  libgomp/testsuite/libgomp.c-c++-common/monotonic-2.c
  1c4ec2975c3dc84ae293e87a285260b4  libgomp/testsuite/libgomp.c-c++-common/nested-parallel-unbalanced.c
  83daaaf005b81e8c9d1f407ac1c30136  libgomp/testsuite/libgomp.c-c++-common/non-rect-loop-1.c
  d9c974865c1c03b48fac0231e028a7be  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-1.c
  214e7bba3d270a6822e2e6161f05981b  libgomp/testsuite/libgomp.c-c++-common/nonmonotonic-2.c
  857b86f8109e8843b901fc93bce4c8a8  libgomp/testsuite/libgomp.c-c++-common/nothing-1.c
+ 501a8cc4ef6f36f7c9967a586a8903fb  libgomp/testsuite/libgomp.c-c++-common/omp-atv-seq-dep.c
+ 57e89804109a50bfcedf48ad5d907aec  libgomp/testsuite/libgomp.c-c++-common/omp-default-device.c
  7b82eb3ecdfe1a29b71573e9670b905e  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-1.c
  b44227078d5fcd5acfde164f5bf5bcbe  libgomp/testsuite/libgomp.c-c++-common/omp-display-env-2.c
+ 05cd8d001ba65fdc6caa66411ef2b87f  libgomp/testsuite/libgomp.c-c++-common/omp-lock-hint-contended-dep.c
+ 53abde160a263195b0dd0c5667edd5d1  libgomp/testsuite/libgomp.c-c++-common/omp-lock-hint-none-dep.c
+ ea7adc494846c6fd16af3076e1902dae  libgomp/testsuite/libgomp.c-c++-common/omp-lock-hint-speculative-dep.c
+ 15ee55a54d78c64f4f04ff67a16506d4  libgomp/testsuite/libgomp.c-c++-common/omp-lock-hint-uncontended-dep.c
+ f8a93d0f03afa6b6ecf0173347e50345  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-2.c
+ 75c915440c0f7fe2bea12c6015c12df0  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset-3.c
+ 7c637d684293b3530653d3d2ec36b7e0  libgomp/testsuite/libgomp.c-c++-common/omp_target_memset.c
  ea669c503a0c8f82567ee811767d35be  libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
  74baf3447a9a73a48cd8d205ea13026b  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-1.c
  e2bc55eb4581cd421c13c8ce68663678  libgomp/testsuite/libgomp.c-c++-common/order-reproducible-2.c
  53fe13231ac841815b983b820fa61932  libgomp/testsuite/libgomp.c-c++-common/ordered-4.c
  35032e9e752cf0fddfcf3aa3df880c48  libgomp/testsuite/libgomp.c-c++-common/pause-1.c
  333f11e6a780e595ef92d101803745c9  libgomp/testsuite/libgomp.c-c++-common/pause-2.c
! d77f1924af7fe7c3767c0c6cc9710773  libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c
  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
+ c6571910534be9f08f24a03c0ce0f190  libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c
+ 59e03ef918a9a802eb0f2e7cb3517517  libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c
  67c38424bb3c5c571b180f7bdadaa4f8  libgomp/testsuite/libgomp.c-c++-common/pr45784.c
  68cf777b22e15a310c790cabde33a5f1  libgomp/testsuite/libgomp.c-c++-common/pr64824.c
  800ed634329eb97a562e7e84ebd4044b  libgomp/testsuite/libgomp.c-c++-common/pr64868.c
*************** e56e5a27a779ac1ffbfc5f8855994d32  libgom
*** 127675,127696 ****
  996a066d9d133757016a7f0ff96e8930  libgomp/testsuite/libgomp.c-c++-common/pr66199-12.c
  11e1293245b7d120bb8a3cd6581854f6  libgomp/testsuite/libgomp.c-c++-common/pr66199-13.c
  cc16a292ae635c2424f142c030b87a90  libgomp/testsuite/libgomp.c-c++-common/pr66199-14.c
! dc87921c80e455d76dfce51295ed5d0b  libgomp/testsuite/libgomp.c-c++-common/pr66199-2.c
  3da17a0f69be8bac8b2e645dcb27c2c7  libgomp/testsuite/libgomp.c-c++-common/pr66199-3.c
! dff7a676c5c7625a109dad1fb29c317d  libgomp/testsuite/libgomp.c-c++-common/pr66199-4.c
! 6dfc857e953d6edc4e5fcdbdbf9bb21c  libgomp/testsuite/libgomp.c-c++-common/pr66199-5.c
! 37e3ad682af7ce80afe8d0dd932d4c38  libgomp/testsuite/libgomp.c-c++-common/pr66199-6.c
! 5355014a06d1c467c4f049057fb98d1a  libgomp/testsuite/libgomp.c-c++-common/pr66199-7.c
! 3ee81bf6e44b7f9129c1687542ce39b0  libgomp/testsuite/libgomp.c-c++-common/pr66199-8.c
! 37654389272e34a44758a6f659f503a9  libgomp/testsuite/libgomp.c-c++-common/pr66199-9.c
  4891b9bdc801db05683bb9bcd26d27c4  libgomp/testsuite/libgomp.c-c++-common/pr69389.c
  4066b4a4600721101ac384b659311782  libgomp/testsuite/libgomp.c-c++-common/pr81875.c
  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
  1918a797ca25f14588ff263d56568f8d  libgomp/testsuite/libgomp.c-c++-common/reduction-16.c
  d7ab6e4bfb482647bc734af066fff6e3  libgomp/testsuite/libgomp.c-c++-common/reduction-17.c
--- 141049,141070 ----
  996a066d9d133757016a7f0ff96e8930  libgomp/testsuite/libgomp.c-c++-common/pr66199-12.c
  11e1293245b7d120bb8a3cd6581854f6  libgomp/testsuite/libgomp.c-c++-common/pr66199-13.c
  cc16a292ae635c2424f142c030b87a90  libgomp/testsuite/libgomp.c-c++-common/pr66199-14.c
! 73de2d3152cad4a4e7a1de3df0c847ab  libgomp/testsuite/libgomp.c-c++-common/pr66199-2.c
  3da17a0f69be8bac8b2e645dcb27c2c7  libgomp/testsuite/libgomp.c-c++-common/pr66199-3.c
! b4f84aa71b902636d5d0843ade6a82ca  libgomp/testsuite/libgomp.c-c++-common/pr66199-4.c
! a5cb011b6c3b9fcb77d1d53d669ac4ab  libgomp/testsuite/libgomp.c-c++-common/pr66199-5.c
! 3ac81389a25f3bada34f9bcc5bfcc6c7  libgomp/testsuite/libgomp.c-c++-common/pr66199-6.c
! 7a88c8a30d17a9afd163ea089e9d1f56  libgomp/testsuite/libgomp.c-c++-common/pr66199-7.c
! 9b5b71759284ba32956e284ec9aa71d1  libgomp/testsuite/libgomp.c-c++-common/pr66199-8.c
! daa5bc8608b569324e470b32f95cc205  libgomp/testsuite/libgomp.c-c++-common/pr66199-9.c
  4891b9bdc801db05683bb9bcd26d27c4  libgomp/testsuite/libgomp.c-c++-common/pr69389.c
  4066b4a4600721101ac384b659311782  libgomp/testsuite/libgomp.c-c++-common/pr81875.c
  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
! ca41bb3f413739f2e2d0c2cb5bcf3828  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-1.c
! ae1dda1dfff65bea882fe38f014e5472  libgomp/testsuite/libgomp.c-c++-common/ptr-attach-2.c
  2d2748b0be4d42cf748c994d23973c0d  libgomp/testsuite/libgomp.c-c++-common/reduction-1.c
  1918a797ca25f14588ff263d56568f8d  libgomp/testsuite/libgomp.c-c++-common/reduction-16.c
  d7ab6e4bfb482647bc734af066fff6e3  libgomp/testsuite/libgomp.c-c++-common/reduction-17.c
*************** e453d108664fa547feb3b13c881be597  libgom
*** 127699,127705 ****
  5fb06d4bdb476173a92277c8e950d55c  libgomp/testsuite/libgomp.c-c++-common/reduction-4.c
  b81001ea5b86a968c0d65cd22d5ac974  libgomp/testsuite/libgomp.c-c++-common/reduction-5.c
  fde44859b725290055507326964d562d  libgomp/testsuite/libgomp.c-c++-common/reduction-6.c
! ffe87889b4d3a046dbdc776f484123e8  libgomp/testsuite/libgomp.c-c++-common/refcount-1.c
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-1-aux.c
  eca8a6233701250737409d5e0acdd0c1  libgomp/testsuite/libgomp.c-c++-common/requires-1.c
  2dc0502463fca130152fb7af108f5ed6  libgomp/testsuite/libgomp.c-c++-common/requires-2-aux.c
--- 141073,141079 ----
  5fb06d4bdb476173a92277c8e950d55c  libgomp/testsuite/libgomp.c-c++-common/reduction-4.c
  b81001ea5b86a968c0d65cd22d5ac974  libgomp/testsuite/libgomp.c-c++-common/reduction-5.c
  fde44859b725290055507326964d562d  libgomp/testsuite/libgomp.c-c++-common/reduction-6.c
! 63c506102689313fb50902a12e2b7c39  libgomp/testsuite/libgomp.c-c++-common/refcount-1.c
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-1-aux.c
  eca8a6233701250737409d5e0acdd0c1  libgomp/testsuite/libgomp.c-c++-common/requires-1.c
  2dc0502463fca130152fb7af108f5ed6  libgomp/testsuite/libgomp.c-c++-common/requires-2-aux.c
*************** c0f14c17be7a8ee323ff263c601b1acc  libgom
*** 127707,127723 ****
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-3-aux.c
  5d5e860b312fff5c34533d48ec0eb681  libgomp/testsuite/libgomp.c-c++-common/requires-3.c
  d2d94dae77980713772e146283d1ebea  libgomp/testsuite/libgomp.c-c++-common/requires-4-aux.c
! 122889a7264fc929d05d7dbcf313e31b  libgomp/testsuite/libgomp.c-c++-common/requires-4.c
! 6c692530980949db1e055c4cc1ed8141  libgomp/testsuite/libgomp.c-c++-common/requires-4a.c
  d9ee2c78e4856929794abece69334a40  libgomp/testsuite/libgomp.c-c++-common/requires-5-aux.c
! 623abfaf9eea646fe7161a0f752e1e31  libgomp/testsuite/libgomp.c-c++-common/requires-5.c
  fd32aa450f6085f94f173a50b28d3d25  libgomp/testsuite/libgomp.c-c++-common/requires-6.c
  195d6a61269c9033d8086247c91f77ee  libgomp/testsuite/libgomp.c-c++-common/requires-7-aux.c
  9d6c03006ea5f6c30ceda8760563f925  libgomp/testsuite/libgomp.c-c++-common/requires-7.c
  b59fce7c7dfddc5a531d9a1080c91edb  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-1.c
  f2b29613d469d34204a185cce77a72ba  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-2.c
  8e516448f286cde9aee98590f90f9b54  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1-aux.c
! 03510135dd2e6c915f2ce8b2b3e096ed  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1.c
  e1893e2e9ae8849b851fe85bf492a4bc  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-2.c
  6eba84b9b3a32f65db772fedfb9db148  libgomp/testsuite/libgomp.c-c++-common/scan-1.c
  ee53be878dd906b2e18b5907cb4a4617  libgomp/testsuite/libgomp.c-c++-common/scope-1.c
--- 141081,141097 ----
  8a69c8483a5b57f5e10ebe6dc5c601c2  libgomp/testsuite/libgomp.c-c++-common/requires-3-aux.c
  5d5e860b312fff5c34533d48ec0eb681  libgomp/testsuite/libgomp.c-c++-common/requires-3.c
  d2d94dae77980713772e146283d1ebea  libgomp/testsuite/libgomp.c-c++-common/requires-4-aux.c
! 4cc8a2d7791bb0a26c13312f205083db  libgomp/testsuite/libgomp.c-c++-common/requires-4.c
! 96730961c62dcc79fd879145f17fb9dc  libgomp/testsuite/libgomp.c-c++-common/requires-4a.c
  d9ee2c78e4856929794abece69334a40  libgomp/testsuite/libgomp.c-c++-common/requires-5-aux.c
! 9acba21e7753c559f8f55f3a93b8247b  libgomp/testsuite/libgomp.c-c++-common/requires-5.c
  fd32aa450f6085f94f173a50b28d3d25  libgomp/testsuite/libgomp.c-c++-common/requires-6.c
  195d6a61269c9033d8086247c91f77ee  libgomp/testsuite/libgomp.c-c++-common/requires-7-aux.c
  9d6c03006ea5f6c30ceda8760563f925  libgomp/testsuite/libgomp.c-c++-common/requires-7.c
  b59fce7c7dfddc5a531d9a1080c91edb  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-1.c
  f2b29613d469d34204a185cce77a72ba  libgomp/testsuite/libgomp.c-c++-common/requires-unified-addr-2.c
  8e516448f286cde9aee98590f90f9b54  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1-aux.c
! 06a4a34beee909f562dcec8513446055  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-1.c
  e1893e2e9ae8849b851fe85bf492a4bc  libgomp/testsuite/libgomp.c-c++-common/reverse-offload-2.c
  6eba84b9b3a32f65db772fedfb9db148  libgomp/testsuite/libgomp.c-c++-common/scan-1.c
  ee53be878dd906b2e18b5907cb4a4617  libgomp/testsuite/libgomp.c-c++-common/scope-1.c
*************** cbc1c46aca10b5056dd653273e1b22d3  libgom
*** 127730,127749 ****
  4275166e2a03408f5d25127421bfd832  libgomp/testsuite/libgomp.c-c++-common/struct-elem-1.c
  80deab7b7285fa934f6f5e449fc455bb  libgomp/testsuite/libgomp.c-c++-common/struct-elem-2.c
  31d15621334ecdff113afb86d86a61e0  libgomp/testsuite/libgomp.c-c++-common/struct-elem-3.c
! b6ead85ed266e62b8a8477bcdf3073f9  libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c
  2f381b5b2c1edcb3aff57cd8162f2765  libgomp/testsuite/libgomp.c-c++-common/struct-elem-5.c
! fa179f92bce747c523f38056959318ff  libgomp/testsuite/libgomp.c-c++-common/target-1.c
! d01ee6246770101e0827d46c27fc4cc5  libgomp/testsuite/libgomp.c-c++-common/target-10.c
  52ce685862fa4549564c34c17e73ed24  libgomp/testsuite/libgomp.c-c++-common/target-13.c
! e590f10fae9bf053ed7123777b03bf32  libgomp/testsuite/libgomp.c-c++-common/target-2.c
! 783adf27dae6507cf1ecde4a04cdeaf7  libgomp/testsuite/libgomp.c-c++-common/target-40.c
  c1475af16cfcc82bec0d85875d542fdb  libgomp/testsuite/libgomp.c-c++-common/target-41.c
  d87524b525b7f424e584af640f4b038b  libgomp/testsuite/libgomp.c-c++-common/target-42.c
  ae24e1c7b9fc9100ef17c4595417ef54  libgomp/testsuite/libgomp.c-c++-common/target-45.c
! 4d80e900b1dc39b9c34d4f6576cfd9be  libgomp/testsuite/libgomp.c-c++-common/target-abi-struct-1-O0.c
! 6814c54bc25aa3da74822d5d4717c414  libgomp/testsuite/libgomp.c-c++-common/target-abi-struct-1.c
! 606f84c99a4efc1405feef5c9b230de4  libgomp/testsuite/libgomp.c-c++-common/target-cdtor-1.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
--- 141104,141126 ----
  4275166e2a03408f5d25127421bfd832  libgomp/testsuite/libgomp.c-c++-common/struct-elem-1.c
  80deab7b7285fa934f6f5e449fc455bb  libgomp/testsuite/libgomp.c-c++-common/struct-elem-2.c
  31d15621334ecdff113afb86d86a61e0  libgomp/testsuite/libgomp.c-c++-common/struct-elem-3.c
! 0e9f2991ddeb503b1a576d6dfefe7b15  libgomp/testsuite/libgomp.c-c++-common/struct-elem-4.c
! 2a76fba3664a30934cf9a02627637f18  libgomp/testsuite/libgomp.c-c++-common/struct-elem-5-usm.c
  2f381b5b2c1edcb3aff57cd8162f2765  libgomp/testsuite/libgomp.c-c++-common/struct-elem-5.c
! 8f27ce990f1126b470fb31270c5d5393  libgomp/testsuite/libgomp.c-c++-common/target-1.c
! 6f5e2a9456fa80159727bad1e98aec97  libgomp/testsuite/libgomp.c-c++-common/target-10.c
  52ce685862fa4549564c34c17e73ed24  libgomp/testsuite/libgomp.c-c++-common/target-13.c
! 5d869d97e503649c0abd949c725eeeb8  libgomp/testsuite/libgomp.c-c++-common/target-2.c
! 04788851768f75fc88a1a8bcff7b4bdc  libgomp/testsuite/libgomp.c-c++-common/target-40.c
  c1475af16cfcc82bec0d85875d542fdb  libgomp/testsuite/libgomp.c-c++-common/target-41.c
  d87524b525b7f424e584af640f4b038b  libgomp/testsuite/libgomp.c-c++-common/target-42.c
  ae24e1c7b9fc9100ef17c4595417ef54  libgomp/testsuite/libgomp.c-c++-common/target-45.c
! cd282378dfef369c52bc05a158d78191  libgomp/testsuite/libgomp.c-c++-common/target-abi-struct-1-O0.c
! ff0a3002fdcbeebbbeec1630ff94b97b  libgomp/testsuite/libgomp.c-c++-common/target-abi-struct-1.c
! abbe672b8bd007021485cc55cdd01a55  libgomp/testsuite/libgomp.c-c++-common/target-cdtor-1.c
! 788786bbf7cfbcb7f765c124ac996099  libgomp/testsuite/libgomp.c-c++-common/target-data-iterators-1.c
! 70f06ca8f61361f4eed1987cd570f860  libgomp/testsuite/libgomp.c-c++-common/target-enter-data-iterators-1.c
! dcce6a2d3146ada05a00f632271e2669  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
*************** ae24e1c7b9fc9100ef17c4595417ef54  libgom
*** 127751,127783 ****
  c194c024e42053dd95f6e219515d6619  libgomp/testsuite/libgomp.c-c++-common/target-imperfect3.c
  083470d5ef36f44cb0686c63b7b2fc70  libgomp/testsuite/libgomp.c-c++-common/target-imperfect4.c
  e73115d6a79251ae1cec9faf5147c7c8  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-1.c
! 5e04725acf39e2f7ef276687748071f9  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
  b3506d3ed6c7b40289dd8c49dadf0e5a  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-3.c
! be9edae79e36592176a6ef4d75308c5f  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-4.c
! 7a5ccad9c039ea2c070efc3da16249d1  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
! 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
  b13870c9ccee080373d9f85e69613aa6  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-1.c
  acca011e007b14dd1357bebb2ff85642  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-2.c
  5e383c34b37ea1cb5c06fff98b1f457d  libgomp/testsuite/libgomp.c-c++-common/target-present-1.c
  ffe15652e4f5929658a368d8b7aabdd0  libgomp/testsuite/libgomp.c-c++-common/target-present-2.c
  d4069bee4bb64a7b1bc7c9545219e88c  libgomp/testsuite/libgomp.c-c++-common/target-present-3.c
  400c5830e8dd2f17214d8d23477755de  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-a.c
  469b004815365e46140bcd8b826170ce  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-b.c
! b85430592a96b021a6f4ab81d5c35eb9  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1.c
  5232d615b2109b50002b7e6eb8301a84  libgomp/testsuite/libgomp.c-c++-common/task-detach-1.c
  7f2f3a630783e68a54ffcd18a73085b2  libgomp/testsuite/libgomp.c-c++-common/task-detach-10.c
  bf2a6ba66b2350c597a56727abd53608  libgomp/testsuite/libgomp.c-c++-common/task-detach-11.c
! fcda8b049ef6e77b18e5feef85979a96  libgomp/testsuite/libgomp.c-c++-common/task-detach-12.c
  b40007acfa7d6af27f51387ecc184dae  libgomp/testsuite/libgomp.c-c++-common/task-detach-13.c
  5992bcf110c8d557070ec896be0cf9fc  libgomp/testsuite/libgomp.c-c++-common/task-detach-2.c
  80f1063bb97ccd9af83f01d1967ea47b  libgomp/testsuite/libgomp.c-c++-common/task-detach-3.c
--- 141128,141173 ----
  c194c024e42053dd95f6e219515d6619  libgomp/testsuite/libgomp.c-c++-common/target-imperfect3.c
  083470d5ef36f44cb0686c63b7b2fc70  libgomp/testsuite/libgomp.c-c++-common/target-imperfect4.c
  e73115d6a79251ae1cec9faf5147c7c8  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-1.c
! 484a97eb41ca00a84f4903464d9270df  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-2.c
  b3506d3ed6c7b40289dd8c49dadf0e5a  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-3.c
! b27cf8b82a6cfcd0e8dff2a026ce1860  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-4.c
! ea40a48889ca697d07372802d2a0a4aa  libgomp/testsuite/libgomp.c-c++-common/target-implicit-map-5.c
! c56339bf90ef39856eb55c5e21be0ef6  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-1.c
! 781d8c89676b5f17dfb6a7fbea91d274  libgomp/testsuite/libgomp.c-c++-common/target-in-reduction-2.c
! 889b5911e56339fa702fa5d7f5c9a1c9  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-1.c
! ee3b74a97c86ca49d1d4285adb171e36  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-2.c
! ab7fab712938c3ce3aec0814f264d192  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-3.c
! 961487ad180160a2ba2e101a7eca4f42  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-4.c
! fdfd72627be1d262fb0a9802b8e5fb61  libgomp/testsuite/libgomp.c-c++-common/target-is-accessible-5.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
! dea6e4773d5d9bcf4b5177f8c2dfb4de  libgomp/testsuite/libgomp.c-c++-common/target-link-3.c
! 6d333518b73fa1f60b85aa1f88314355  libgomp/testsuite/libgomp.c-c++-common/target-link-4.c
! 6dac483ba3b23504793becd705f3947d  libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-1.c
! 0cf20228dfeb5394791055d76019d46e  libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-2.c
! 09bc6cf4e088b0fd6625e525cfe99662  libgomp/testsuite/libgomp.c-c++-common/target-map-iterators-3.c
! 7803e5fd9e16ac9bf8d10f1018a092c0  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
  b13870c9ccee080373d9f85e69613aa6  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-1.c
  acca011e007b14dd1357bebb2ff85642  libgomp/testsuite/libgomp.c-c++-common/target-memcpy-rect-async-2.c
+ aab4d26bd6f75e5ca59cdea2e79110ea  libgomp/testsuite/libgomp.c-c++-common/target-present-1-usm.c
  5e383c34b37ea1cb5c06fff98b1f457d  libgomp/testsuite/libgomp.c-c++-common/target-present-1.c
+ 0a49014c931d667dada251c672fbf516  libgomp/testsuite/libgomp.c-c++-common/target-present-2-usm.c
  ffe15652e4f5929658a368d8b7aabdd0  libgomp/testsuite/libgomp.c-c++-common/target-present-2.c
+ e708cd109a462fac89d30a6c65910437  libgomp/testsuite/libgomp.c-c++-common/target-present-3-usm.c
  d4069bee4bb64a7b1bc7c9545219e88c  libgomp/testsuite/libgomp.c-c++-common/target-present-3.c
  400c5830e8dd2f17214d8d23477755de  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-a.c
  469b004815365e46140bcd8b826170ce  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1-b.c
! d3ed63d8204ec7537fa5e6f47a76d83e  libgomp/testsuite/libgomp.c-c++-common/target-same-name-1.c
! f1b436bdbaa4b38fe6d32370519f68e3  libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-1.c
! bb4a7b2ef99145f08080b51d17616c70  libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-2.c
! 83a1d690b01fb85263e4671b715c783e  libgomp/testsuite/libgomp.c-c++-common/target-update-iterators-3.c
  5232d615b2109b50002b7e6eb8301a84  libgomp/testsuite/libgomp.c-c++-common/task-detach-1.c
  7f2f3a630783e68a54ffcd18a73085b2  libgomp/testsuite/libgomp.c-c++-common/task-detach-10.c
  bf2a6ba66b2350c597a56727abd53608  libgomp/testsuite/libgomp.c-c++-common/task-detach-11.c
! 831d027be3ca00c89d622a43e4b71081  libgomp/testsuite/libgomp.c-c++-common/task-detach-12.c
  b40007acfa7d6af27f51387ecc184dae  libgomp/testsuite/libgomp.c-c++-common/task-detach-13.c
  5992bcf110c8d557070ec896be0cf9fc  libgomp/testsuite/libgomp.c-c++-common/task-detach-2.c
  80f1063bb97ccd9af83f01d1967ea47b  libgomp/testsuite/libgomp.c-c++-common/task-detach-3.c
*************** d2cb6d4c0500a7f9ba372f1dbf3296c1  libgom
*** 127791,127828 ****
  2e7fff5fa6fdb480df07fd2e3f5b04cd  libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c
  a1b3168ce30f47447336b170740ef26e  libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c
  106ee243910ede9a5511eec8792fcded  libgomp/testsuite/libgomp.c-c++-common/task-reduction-1.c
! 564f092ddd87e8a1beaeda362953188d  libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c
! 23584c2b5e72b0f66678ce4ada7296dd  libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c
  e4f419faa09d744436aad29d88eb43cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c
! d284915ed4a4ac417bfb2b7632453bec  libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c
! 9c603541ce46d78d4526034634edb381  libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c
! f60960e78fad9b2017aed57b39c1653a  libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c
  e653bf8d31dab3838d4fca110a3ce845  libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
  6fc6fff584c1f373ed1f3621bae88c86  libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
  47acc8ff8c516165766737c2f13be4cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-2.c
! 33b998ac8605f9aab9808c883f2e85eb  libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
  5ab2e1d3a94c19b612a71f802938e9d8  libgomp/testsuite/libgomp.c-c++-common/task-reduction-4.c
! 3cbec62183a2a342ec1463ff8e14e458  libgomp/testsuite/libgomp.c-c++-common/task-reduction-5.c
! 1b038915a126b4286350b6591edbefa2  libgomp/testsuite/libgomp.c-c++-common/task-reduction-6.c
! 65acbbfe912dbdb455d3cb281499699c  libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c
! e8b91070ba113269db3f80127dea46d1  libgomp/testsuite/libgomp.c-c++-common/task-reduction-8.c
! 9ce5e598ee7fb1c01472593f1888c5f8  libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c
  9aeca4581b0d88b4cdaf4cd5fb964e23  libgomp/testsuite/libgomp.c-c++-common/taskgroup-1.c
  533a2f763e275eebcca5c5ab19adcde9  libgomp/testsuite/libgomp.c-c++-common/taskloop-1.c
  cbef0235768c1f4944ee1b5c5fa053be  libgomp/testsuite/libgomp.c-c++-common/taskloop-2.c
  8b721a972a83827d50ac99b596effbce  libgomp/testsuite/libgomp.c-c++-common/taskloop-3.c
  2a89db069ccb0624db9d711681161fbe  libgomp/testsuite/libgomp.c-c++-common/taskloop-4.c
  f2e93e59b93b24a2a3ed96e4562d49e9  libgomp/testsuite/libgomp.c-c++-common/taskloop-5.c
! a45e0bc2a9defec1ccedcfe9f7d71f80  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-1.c
! bf98adf4221cad6e7da7bfc5a26395d4  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c
! 2eba45c946c43172dafb32280f9b9085  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-3.c
! fb173d8d2f7d77807e2f94fea30c2a43  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-4.c
  7766c9cddf6031ff22c64ce9e45948bc  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-1.c
  8bc6c55a37ac8b7cded66fd93df20596  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-1.c
  b33f1965a6b9dacd7167fd0324c38e22  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-2.c
  e8fd73b729dbcad088c01b1d0f31a2ff  libgomp/testsuite/libgomp.c-c++-common/teams-1.c
  7df126bb12429498f7ff59725539584a  libgomp/testsuite/libgomp.c-c++-common/teams-2.c
! a1381676c0198bb6356bfba23e9d3a13  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
  ca33c5f9c9903b757ed36247b61aad15  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-2.c
  801fc413d0c72adbb5636b376e0c3362  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-3.c
  53a7aa68c95c086a2e05b665c3c56459  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-4.c
--- 141181,141218 ----
  2e7fff5fa6fdb480df07fd2e3f5b04cd  libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-2.c
  a1b3168ce30f47447336b170740ef26e  libgomp/testsuite/libgomp.c-c++-common/task-in-explicit-3.c
  106ee243910ede9a5511eec8792fcded  libgomp/testsuite/libgomp.c-c++-common/task-reduction-1.c
! 46ef1e951bcd1926264b756c36ccbaf5  libgomp/testsuite/libgomp.c-c++-common/task-reduction-11.c
! 3ec3d8e842118a228ca6e8fa2d2134a5  libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c
  e4f419faa09d744436aad29d88eb43cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c
! 407fdfb2555a6eb0cb55c6d3cda7242a  libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c
! c24a6c4d52006fcb6225825eced8c7a9  libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c
! aa692c9fbf6093f12c6ed0803d74067f  libgomp/testsuite/libgomp.c-c++-common/task-reduction-16.c
  e653bf8d31dab3838d4fca110a3ce845  libgomp/testsuite/libgomp.c-c++-common/task-reduction-17.c
  6fc6fff584c1f373ed1f3621bae88c86  libgomp/testsuite/libgomp.c-c++-common/task-reduction-18.c
  47acc8ff8c516165766737c2f13be4cf  libgomp/testsuite/libgomp.c-c++-common/task-reduction-2.c
! 0134350a1e5cc559916eb7632406e2ac  libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c
  5ab2e1d3a94c19b612a71f802938e9d8  libgomp/testsuite/libgomp.c-c++-common/task-reduction-4.c
! 592fd700d7fb967bf6214910740d1585  libgomp/testsuite/libgomp.c-c++-common/task-reduction-5.c
! 0d8c82b4b820957ea41bbb60d32a9fe7  libgomp/testsuite/libgomp.c-c++-common/task-reduction-6.c
! 34811d5ad506744da4033d8c6cca9520  libgomp/testsuite/libgomp.c-c++-common/task-reduction-7.c
! ade0395cbd00022dcf2954dba24d7aad  libgomp/testsuite/libgomp.c-c++-common/task-reduction-8.c
! e2796a1db9565864bbd2d6aee684339f  libgomp/testsuite/libgomp.c-c++-common/task-reduction-9.c
  9aeca4581b0d88b4cdaf4cd5fb964e23  libgomp/testsuite/libgomp.c-c++-common/taskgroup-1.c
  533a2f763e275eebcca5c5ab19adcde9  libgomp/testsuite/libgomp.c-c++-common/taskloop-1.c
  cbef0235768c1f4944ee1b5c5fa053be  libgomp/testsuite/libgomp.c-c++-common/taskloop-2.c
  8b721a972a83827d50ac99b596effbce  libgomp/testsuite/libgomp.c-c++-common/taskloop-3.c
  2a89db069ccb0624db9d711681161fbe  libgomp/testsuite/libgomp.c-c++-common/taskloop-4.c
  f2e93e59b93b24a2a3ed96e4562d49e9  libgomp/testsuite/libgomp.c-c++-common/taskloop-5.c
! 976b77391e0b3b77c9c8433d15968f43  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-1.c
! 7edf3f3649daef36cf5cf8a28d58e84b  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-2.c
! fb74d0eff6a7d4f53afb1f367fb608d1  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-3.c
! 93eec905aa13bbfa69a0fe66f4ce604e  libgomp/testsuite/libgomp.c-c++-common/taskloop-reduction-4.c
  7766c9cddf6031ff22c64ce9e45948bc  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-1.c
  8bc6c55a37ac8b7cded66fd93df20596  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-1.c
  b33f1965a6b9dacd7167fd0324c38e22  libgomp/testsuite/libgomp.c-c++-common/taskwait-depend-nowait-2.c
  e8fd73b729dbcad088c01b1d0f31a2ff  libgomp/testsuite/libgomp.c-c++-common/teams-1.c
  7df126bb12429498f7ff59725539584a  libgomp/testsuite/libgomp.c-c++-common/teams-2.c
! c594067e5485bea13655b914264632bd  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-1.c
  ca33c5f9c9903b757ed36247b61aad15  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-2.c
  801fc413d0c72adbb5636b376e0c3362  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-3.c
  53a7aa68c95c086a2e05b665c3c56459  libgomp/testsuite/libgomp.c-c++-common/teams-nteams-icv-4.c
*************** ca33c5f9c9903b757ed36247b61aad15  libgom
*** 127832,127839 ****
  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
--- 141222,141229 ----
  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
! 4a1473f6b61b19a2252d130f2617b930  libgomp/testsuite/libgomp.c-c++-common/variable-not-offloaded.c
! 60d3668415895b69d193c5caa7d5f9af  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
*************** caca1aa745e9df985dc965e87fc08c02  libgom
*** 127843,127856 ****
  22339699e5ead02323ff39f1b6fe0db9  libgomp/testsuite/libgomp.c-target/aarch64/threadprivate.c
  3e38202a9a5de0a29a80148a97ba15d8  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
--- 141233,141252 ----
  22339699e5ead02323ff39f1b6fe0db9  libgomp/testsuite/libgomp.c-target/aarch64/threadprivate.c
  3e38202a9a5de0a29a80148a97ba15d8  libgomp/testsuite/libgomp.c-target/aarch64/udr-sve.c
  9827d700d634869b090c7636cc855819  libgomp/testsuite/libgomp.c/address-space-1.c
! 1a607945d8dfccc8b774b7e61ccd2555  libgomp/testsuite/libgomp.c/affinity-1.c
  fe6e22f8c0d2e289ecbd5ea26c9ed1bc  libgomp/testsuite/libgomp.c/affinity-2.c
! a52fb92b19587144b8e2695db415d94e  libgomp/testsuite/libgomp.c/alloc-managed-1.c
! 6c8686bb019986a5da3b70a8e4ec67e6  libgomp/testsuite/libgomp.c/alloc-managed-2.c
! 3b5636699d51e6a8a989ff3da594bf65  libgomp/testsuite/libgomp.c/alloc-managed-3.c
! ab38e44db50706b57b8283d050893ca0  libgomp/testsuite/libgomp.c/alloc-managed-4.c
! 72954694e3579e47a13b08306be48420  libgomp/testsuite/libgomp.c/alloc-pinned-1.c
! ad1652b5597cee1d0b32c5a47dde101b  libgomp/testsuite/libgomp.c/alloc-pinned-2.c
! 237dd2407f06187c8d624632bc613b94  libgomp/testsuite/libgomp.c/alloc-pinned-3.c
! 69a212f1a032283f3a6c6a993af6f94c  libgomp/testsuite/libgomp.c/alloc-pinned-4.c
! b337fafcc4aab6ca2cf6819ff7155330  libgomp/testsuite/libgomp.c/alloc-pinned-5.c
! 8c364567b9614616b3e1cc9937fd6a6f  libgomp/testsuite/libgomp.c/alloc-pinned-6.c
! 45e5d9ef68ea13e0845f6e419a059d85  libgomp/testsuite/libgomp.c/alloc-pinned-8.c
! 61c5baca97c00793453ca1db0fa79fdb  libgomp/testsuite/libgomp.c/alloc_cache-1.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
*************** d77547c5021e041b3434a7acad4e4ec3  libgom
*** 127916,127948 ****
  b4791f074c4f3494a72098d4fe6dc7da  libgomp/testsuite/libgomp.c/copyin-2.c
  a0864a470dcfab5610654831f9ec1740  libgomp/testsuite/libgomp.c/copyin-3.c
  4dd2cfb516bf87f648a7200fcbe97240  libgomp/testsuite/libgomp.c/critical-1.c
! 1cca2a92d0182ae3c650964de6d87d0a  libgomp/testsuite/libgomp.c/critical-2.c
! b5604fce8e01b4e305a8c0a4563d1aa9  libgomp/testsuite/libgomp.c/debug-1.c
  afbc465058b9ba3f4c999bbdd4f3d1ae  libgomp/testsuite/libgomp.c/declare-variant-1.c
  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
! 4d500a885d06d0e35ed7237c9155fcdc  libgomp/testsuite/libgomp.c/declare-variant-3-sm61.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
! 990725ec4ad0102414e463c434143f4f  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
--- 141312,141365 ----
  b4791f074c4f3494a72098d4fe6dc7da  libgomp/testsuite/libgomp.c/copyin-2.c
  a0864a470dcfab5610654831f9ec1740  libgomp/testsuite/libgomp.c/copyin-3.c
  4dd2cfb516bf87f648a7200fcbe97240  libgomp/testsuite/libgomp.c/critical-1.c
! d9fd6ed98015269ce9eddab24d3efeba  libgomp/testsuite/libgomp.c/critical-2.c
! 47117801af35c93e0553f4fd2ee62156  libgomp/testsuite/libgomp.c/debug-1.c
  afbc465058b9ba3f4c999bbdd4f3d1ae  libgomp/testsuite/libgomp.c/declare-variant-1.c
  6d6b0531c9f74483e6111b636da2edf2  libgomp/testsuite/libgomp.c/declare-variant-2.c
! 647e42c6f8847e9b2954a85db8b55452  libgomp/testsuite/libgomp.c/declare-variant-3-sm30.c
! 446d3ecc5800c697d4bcd620373cb1af  libgomp/testsuite/libgomp.c/declare-variant-3-sm35.c
! 6a2e3a3f922844ade1a50eb395e0f707  libgomp/testsuite/libgomp.c/declare-variant-3-sm37.c
! 9008db63832f4b1be03b6efb3bf31ac3  libgomp/testsuite/libgomp.c/declare-variant-3-sm50.c
! 4132f95b3a08365758ab8d3f63208b11  libgomp/testsuite/libgomp.c/declare-variant-3-sm52.c
! 1869bfd2c2d4f9054d24c0a53a4788f4  libgomp/testsuite/libgomp.c/declare-variant-3-sm53.c
! f5213ec135b06c4fb357312be37288e0  libgomp/testsuite/libgomp.c/declare-variant-3-sm61.c
! 27c76785eb4889e8c8e8ab4f547ad5d3  libgomp/testsuite/libgomp.c/declare-variant-3-sm70.c
! e3d8ca5fb313ae31460660d3c39fb913  libgomp/testsuite/libgomp.c/declare-variant-3-sm75.c
! 6a06e807c91724ad57fad63397edfc07  libgomp/testsuite/libgomp.c/declare-variant-3-sm80.c
! 67ae20a302c0ab13c08ae6c4e6ae29d5  libgomp/testsuite/libgomp.c/declare-variant-3-sm89.c
! 7da3ac85e4c6bcbc1ce1d6d1c6575395  libgomp/testsuite/libgomp.c/declare-variant-3.c
! cdd92ddc2b87d29ced3aa815a11893e4  libgomp/testsuite/libgomp.c/declare-variant-3.h
! cc4ead5a0ad636ec62f0631bacc8ca4b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx10-3-generic.c
! be70e184111446ef18f6ea1974005b74  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1030.c
! d73b5456e037cae4f16adc3fbf606295  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1031.c
! 1e0c8e7dd1a5017ec43325c08fe1ae05  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1032.c
! 03b6da6fe8521a4b696a05e4a5a8fe46  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1033.c
! 7da17afcd4e38611f94f4e288f3275c9  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1034.c
! b597ab22cbca53813346074ccd1ced0c  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1035.c
! dffc4c70a7ebe90a92f61d1751dce187  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1036.c
! a9cf95c399c5c53992a037e4b7446a94  libgomp/testsuite/libgomp.c/declare-variant-4-gfx11-generic.c
! 2dc14ada5135adcf7f4acd53d521a3cf  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1100.c
! 6c345086e20ba7b4010d7f01680ee968  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1101.c
! a5202d7ece2343c917ff674ec3d17d43  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1102.c
! 7fe7b326d127cfaf697e082961b8530a  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1103.c
! f4d7f805584a2e28eb287f5598c5a90b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1150.c
! 31e0d3c99477f6f331b1b4e2551121cb  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1151.c
! 2057861161508622eaba346f17937772  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1152.c
! d45d7ac641120dccd5ccc98054641ada  libgomp/testsuite/libgomp.c/declare-variant-4-gfx1153.c
! 657861ab5bb98b193b50edd7624cc4c0  libgomp/testsuite/libgomp.c/declare-variant-4-gfx9-4-generic.c
! 30af8875d0d9f227785bee76e55c94b3  libgomp/testsuite/libgomp.c/declare-variant-4-gfx9-generic.c
! f305069bd11b00f18b14cac51fe4ea4b  libgomp/testsuite/libgomp.c/declare-variant-4-gfx900.c
! d614f1f9c812e2e28e1f45bc4b65e86f  libgomp/testsuite/libgomp.c/declare-variant-4-gfx902.c
! 87bc6ed12bc5502a9a11c65793190c36  libgomp/testsuite/libgomp.c/declare-variant-4-gfx904.c
! 50e4e7f3c4cede5f8a9f013a07fc801a  libgomp/testsuite/libgomp.c/declare-variant-4-gfx906.c
! dfff6132222b56ea3a97a78f87fd6d52  libgomp/testsuite/libgomp.c/declare-variant-4-gfx908.c
! 12ac2278ea44037e15f98fbe425e1eca  libgomp/testsuite/libgomp.c/declare-variant-4-gfx909.c
! 37d5647834f73af2efb4d599f456cdd1  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90a.c
! 159920f6c8468210cdbb7deff9631f88  libgomp/testsuite/libgomp.c/declare-variant-4-gfx90c.c
! 1a9f04d463ae351e41f4aaf3d992848a  libgomp/testsuite/libgomp.c/declare-variant-4-gfx942.c
! ebbc10a12446476dbb1ade87812f29f9  libgomp/testsuite/libgomp.c/declare-variant-4-gfx950.c
! 1f5eb948c82d13c08cf06ad916ec9f8a  libgomp/testsuite/libgomp.c/declare-variant-4.c
! e47e9fb21f42db5558fd30458968e456  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
*** 127953,127974 ****
  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
  3760ae74c8f812679e9ee9ec7f1a9e69  libgomp/testsuite/libgomp.c/doacross-4.c
  06d29ccb303726b81f0699bef121edff  libgomp/testsuite/libgomp.c/doacross-5.c
  da453be173ad92979620c14fc3d651f4  libgomp/testsuite/libgomp.c/doacross-6.c
  6e7c4419d5e13365138b21fd45594989  libgomp/testsuite/libgomp.c/doacross-7.c
  39fea640f2c9adb1a5a7efe5f6d370b8  libgomp/testsuite/libgomp.c/examples-4/array_sections-3.c
  9d4709594c05148c0ee2d3ba822d433d  libgomp/testsuite/libgomp.c/examples-4/array_sections-4.c
! 8afb8b38a1fe85028237e930148d4464  libgomp/testsuite/libgomp.c/examples-4/async_target-1.c
! 54cf2a17f0a08dba2be7b953a4867917  libgomp/testsuite/libgomp.c/examples-4/async_target-2.c
! 11c94d6fb4c61b15faac9adae8a3aa9b  libgomp/testsuite/libgomp.c/examples-4/declare_target-1.c
! 13592f5506c4ebab75f89572dcf6a5f2  libgomp/testsuite/libgomp.c/examples-4/declare_target-3.c
! f2563f445de10b8aebe82dbb5a202daf  libgomp/testsuite/libgomp.c/examples-4/declare_target-4.c
! 5abebfddd096be49d494104d24f2f4d7  libgomp/testsuite/libgomp.c/examples-4/declare_target-5.c
  2a4af8a2aa774c718874c3d705060298  libgomp/testsuite/libgomp.c/examples-4/device-1.c
  c5ddf64e605f81874f4dfbf37fa16829  libgomp/testsuite/libgomp.c/examples-4/device-2.c
  e3bf01e608c6cb03fb590fa04a9563a4  libgomp/testsuite/libgomp.c/examples-4/device-3.c
--- 141370,141391 ----
  76154443f28fedf1bb0797e99da9263c  libgomp/testsuite/libgomp.c/depend-7.c
  ec897cbb2003f55279c80e8a2f700f48  libgomp/testsuite/libgomp.c/depend-8.c
  2b66f56c0267e26a89308845398264b1  libgomp/testsuite/libgomp.c/depend-9.c
! 511f904a0e4d34bd22f7f7883fc5e945  libgomp/testsuite/libgomp.c/device_uid.c
! c3a08426facaa422592c916a5e4a5362  libgomp/testsuite/libgomp.c/doacross-1.c
! f9d1bd788f7b14099c6c5397e1599146  libgomp/testsuite/libgomp.c/doacross-2.c
! 6c68fef60510d1ad8178b2f817a04f14  libgomp/testsuite/libgomp.c/doacross-3.c
  3760ae74c8f812679e9ee9ec7f1a9e69  libgomp/testsuite/libgomp.c/doacross-4.c
  06d29ccb303726b81f0699bef121edff  libgomp/testsuite/libgomp.c/doacross-5.c
  da453be173ad92979620c14fc3d651f4  libgomp/testsuite/libgomp.c/doacross-6.c
  6e7c4419d5e13365138b21fd45594989  libgomp/testsuite/libgomp.c/doacross-7.c
  39fea640f2c9adb1a5a7efe5f6d370b8  libgomp/testsuite/libgomp.c/examples-4/array_sections-3.c
  9d4709594c05148c0ee2d3ba822d433d  libgomp/testsuite/libgomp.c/examples-4/array_sections-4.c
! f95f9a06d610c417756639a9e31b39de  libgomp/testsuite/libgomp.c/examples-4/async_target-1.c
! 57c136441520da6eae7dce437ffdb570  libgomp/testsuite/libgomp.c/examples-4/async_target-2.c
! 5dae1e63b6e289379131dc0b49823a76  libgomp/testsuite/libgomp.c/examples-4/declare_target-1.c
! 09801ffa5ff17b2b3a0382319df3b8e6  libgomp/testsuite/libgomp.c/examples-4/declare_target-3.c
! 10e8145c82c46c37bfdcb8f1004a9792  libgomp/testsuite/libgomp.c/examples-4/declare_target-4.c
! d8d127b3c8a0e1f0bd16ef39d37f71f9  libgomp/testsuite/libgomp.c/examples-4/declare_target-5.c
  2a4af8a2aa774c718874c3d705060298  libgomp/testsuite/libgomp.c/examples-4/device-1.c
  c5ddf64e605f81874f4dfbf37fa16829  libgomp/testsuite/libgomp.c/examples-4/device-2.c
  e3bf01e608c6cb03fb590fa04a9563a4  libgomp/testsuite/libgomp.c/examples-4/device-3.c
*************** ee1bca91c6e853556cd65170329412cb  libgom
*** 128022,128029 ****
  0f1e2ad9f4304e2b19abf50063219cdd  libgomp/testsuite/libgomp.c/interop-hipblas-nvidia-no-headers.c
  ee6acb3089ae16656715ede5acd4a769  libgomp/testsuite/libgomp.c/interop-hipblas-nvidia-no-hip-header.c
  73994b391db11a9fa8269d17021fc731  libgomp/testsuite/libgomp.c/interop-hipblas.h
! b892336be3124a54b2f99643e2295959  libgomp/testsuite/libgomp.c/interop-hsa.c
! 60295e2f73526594a93b118333ca7ff3  libgomp/testsuite/libgomp.c/lib-1.c
  af9d852282ae3da623a0727f1df789ab  libgomp/testsuite/libgomp.c/lib-2.c
  954e001a86eca6e39424518360cc7b36  libgomp/testsuite/libgomp.c/linear-1.c
  790464caa9172f448964fa91bbff5813  libgomp/testsuite/libgomp.c/linear-2.c
--- 141439,141449 ----
  0f1e2ad9f4304e2b19abf50063219cdd  libgomp/testsuite/libgomp.c/interop-hipblas-nvidia-no-headers.c
  ee6acb3089ae16656715ede5acd4a769  libgomp/testsuite/libgomp.c/interop-hipblas-nvidia-no-hip-header.c
  73994b391db11a9fa8269d17021fc731  libgomp/testsuite/libgomp.c/interop-hipblas.h
! a312f0c1d775afad3261daee64966b25  libgomp/testsuite/libgomp.c/interop-hsa.c
! a6c33c02bb48400578351a95922a2f1c  libgomp/testsuite/libgomp.c/ipcp-cb-spec1.c
! 01e92bf2afe709ab5d5aabf0410fa484  libgomp/testsuite/libgomp.c/ipcp-cb-spec2.c
! 95f6c8613aa251d5def12c5b8ac78a94  libgomp/testsuite/libgomp.c/ipcp-cb1.c
! 05a55b01beb419917b31560d862a3cad  libgomp/testsuite/libgomp.c/lib-1.c
  af9d852282ae3da623a0727f1df789ab  libgomp/testsuite/libgomp.c/lib-2.c
  954e001a86eca6e39424518360cc7b36  libgomp/testsuite/libgomp.c/linear-1.c
  790464caa9172f448964fa91bbff5813  libgomp/testsuite/libgomp.c/linear-2.c
*************** fcf0b70da92fc55e6cdd5d1a77923dc3  libgom
*** 128043,128049 ****
  8e0875862cc838ae1a1551a354fc9e77  libgomp/testsuite/libgomp.c/loop-21.c
  c97be2d4dda2fd0e24aee73e7daeb779  libgomp/testsuite/libgomp.c/loop-22.c
  55bdc5ab65021c3fa80cc6ee8c856909  libgomp/testsuite/libgomp.c/loop-23.c
! a19b860b4cd897806edbbabe581dbb96  libgomp/testsuite/libgomp.c/loop-24.c
  1560509326b57b175c476871c1751dee  libgomp/testsuite/libgomp.c/loop-25.c
  c526be410e3cf6c1c674405feb05cbb2  libgomp/testsuite/libgomp.c/loop-26.c
  78088db622ed796d0cffbcc62df18537  libgomp/testsuite/libgomp.c/loop-27.c
--- 141463,141469 ----
  8e0875862cc838ae1a1551a354fc9e77  libgomp/testsuite/libgomp.c/loop-21.c
  c97be2d4dda2fd0e24aee73e7daeb779  libgomp/testsuite/libgomp.c/loop-22.c
  55bdc5ab65021c3fa80cc6ee8c856909  libgomp/testsuite/libgomp.c/loop-23.c
! f613c1f4250aa117c271f57e8922ffa9  libgomp/testsuite/libgomp.c/loop-24.c
  1560509326b57b175c476871c1751dee  libgomp/testsuite/libgomp.c/loop-25.c
  c526be410e3cf6c1c674405feb05cbb2  libgomp/testsuite/libgomp.c/loop-26.c
  78088db622ed796d0cffbcc62df18537  libgomp/testsuite/libgomp.c/loop-27.c
*************** c526be410e3cf6c1c674405feb05cbb2  libgom
*** 128054,128067 ****
  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
  726d0ef78ecb6dd92379c6d84e18a9c7  libgomp/testsuite/libgomp.c/nestedfn-1.c
! 48b7f93dc451cc15a3beb0cecceade08  libgomp/testsuite/libgomp.c/nestedfn-2.c
! d8d9ea68baada1a29a137d38c8c2206b  libgomp/testsuite/libgomp.c/nestedfn-3.c
  0a7198c17cd8937101ee75701851161a  libgomp/testsuite/libgomp.c/nestedfn-4.c
  7bcacbdfa081a8d1af605b984229645c  libgomp/testsuite/libgomp.c/nestedfn-5.c
  f7c21b673a353f09b2f8780a2e2cf556  libgomp/testsuite/libgomp.c/nestedfn-6.c
--- 141474,141487 ----
  a28f0449c06d99dd5b700e4d3e6bc6f9  libgomp/testsuite/libgomp.c/loop-7.c
  b0f5c1da84528f7536416837c59936a3  libgomp/testsuite/libgomp.c/loop-8.c
  675d1d2731b881ab81851bc2a4026c37  libgomp/testsuite/libgomp.c/loop-9.c
! 581606fd6fb4e68b7e8888af6172a499  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
  726d0ef78ecb6dd92379c6d84e18a9c7  libgomp/testsuite/libgomp.c/nestedfn-1.c
! b077f988f391c816b0a921bdc5ee6cc9  libgomp/testsuite/libgomp.c/nestedfn-2.c
! 98a58ae6f932a201c9cc6426a833cc30  libgomp/testsuite/libgomp.c/nestedfn-3.c
  0a7198c17cd8937101ee75701851161a  libgomp/testsuite/libgomp.c/nestedfn-4.c
  7bcacbdfa081a8d1af605b984229645c  libgomp/testsuite/libgomp.c/nestedfn-5.c
  f7c21b673a353f09b2f8780a2e2cf556  libgomp/testsuite/libgomp.c/nestedfn-6.c
*************** b2840419f7f70553698eb41dcd3bd6c6  libgom
*** 128074,128079 ****
--- 141494,141500 ----
  155f067cfc582aa157e2bdb3145adbf5  libgomp/testsuite/libgomp.c/omp-nested-3.c
  20a1c4ad16d936e13bfcff4af3b2a27a  libgomp/testsuite/libgomp.c/omp-parallel-for.c
  e756f95da64c35a1d35271b41d86a25f  libgomp/testsuite/libgomp.c/omp-parallel-if.c
+ 3a7d8771def546c958b6ffd09fe62346  libgomp/testsuite/libgomp.c/omp-proc-bind-master-dep.c
  fd94f11e80d06ba6d2e92c00e2dbaf0d  libgomp/testsuite/libgomp.c/omp-single-1.c
  5c210f4cc7da947889dd747ceff032fa  libgomp/testsuite/libgomp.c/omp-single-2.c
  51a80dab8d4bcf4b4a8d80121e330d5c  libgomp/testsuite/libgomp.c/omp-single-3.c
*************** a3baf88916a2a689c5da3ed49f314e9a  libgom
*** 128088,128093 ****
--- 141509,141516 ----
  7d4fc3b4ef57d7b045e6b7afade7b1ae  libgomp/testsuite/libgomp.c/omp_matvec.c
  d24c7f3c4eac986e211049a75d2a364b  libgomp/testsuite/libgomp.c/omp_orphan.c
  2c748d87d06ac3be76d01011ba097a1b  libgomp/testsuite/libgomp.c/omp_reduction.c
+ 2f91cfa20c8a42d1d6790ded7f1dedb3  libgomp/testsuite/libgomp.c/omp_target_is_present-2.c
+ 2039d04de645877e0ce96988e6256c01  libgomp/testsuite/libgomp.c/omp_target_is_present.c
  24baaabb70ef9cb52218e85c6e635d53  libgomp/testsuite/libgomp.c/omp_workshare1.c
  563f8ced1bddfb533121dc40dc3d8a33  libgomp/testsuite/libgomp.c/omp_workshare2.c
  7064c480ce2c1689a450d5ccba20159b  libgomp/testsuite/libgomp.c/omp_workshare3.c
*************** b2fb8a46bb1499918a8fc73feb9e8d08  libgom
*** 128114,128125 ****
  85ff1aec133bd8a4b5de89942472b6ab  libgomp/testsuite/libgomp.c/places-7.c
  ea933c3d3011e72147289674c4f66d9f  libgomp/testsuite/libgomp.c/places-8.c
  4b3bd4043ea1b8f3ca4b9c512b5cabc1  libgomp/testsuite/libgomp.c/places-9.c
! bb57a9ccf51a738ab2985a513801a658  libgomp/testsuite/libgomp.c/pr104385.c
  b39893ba213997fb0f30060685879d54  libgomp/testsuite/libgomp.c/pr104783-2.c
  9783950bd82dd3de38f343049b240ea9  libgomp/testsuite/libgomp.c/pr104783.c
  90c233f1c51f5ec4e94b2c31c4dc28bb  libgomp/testsuite/libgomp.c/pr104952-1.c
  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
--- 141537,141552 ----
  85ff1aec133bd8a4b5de89942472b6ab  libgomp/testsuite/libgomp.c/places-7.c
  ea933c3d3011e72147289674c4f66d9f  libgomp/testsuite/libgomp.c/places-8.c
  4b3bd4043ea1b8f3ca4b9c512b5cabc1  libgomp/testsuite/libgomp.c/places-9.c
! 0316e6898cb46084a4d3e2ce553cbfdb  libgomp/testsuite/libgomp.c/pr104385.c
  b39893ba213997fb0f30060685879d54  libgomp/testsuite/libgomp.c/pr104783-2.c
  9783950bd82dd3de38f343049b240ea9  libgomp/testsuite/libgomp.c/pr104783.c
  90c233f1c51f5ec4e94b2c31c4dc28bb  libgomp/testsuite/libgomp.c/pr104952-1.c
  aa4bf5c713a6787268e4b1415f31402c  libgomp/testsuite/libgomp.c/pr104952-2.c
  37f576b8026bd1367998c4594550703d  libgomp/testsuite/libgomp.c/pr108459.c
+ 502f086f1c0aa4e9757c3ad58c79e9da  libgomp/testsuite/libgomp.c/pr122281.c
+ 5eb9c325207313fb2af45c5dbfeaf36f  libgomp/testsuite/libgomp.c/pr122314.c
+ 0fa68c3bab2ab21eb6ca264b25b027ae  libgomp/testsuite/libgomp.c/pr122356.c
+ fcc4da1244b552bb375f6a3e5c1f5356  libgomp/testsuite/libgomp.c/pr122852.c
  c522146f1617da47efbc34dedb563f61  libgomp/testsuite/libgomp.c/pr24455-1.c
  fc16ef4cc2849f9673cfa72118b38b03  libgomp/testsuite/libgomp.c/pr24455.c
  5f9c41745fbf27e0d2ca8e182c9ff34f  libgomp/testsuite/libgomp.c/pr26171.c
*************** fbaa429fdd38498866cb27eca67eb819  libgom
*** 128180,128189 ****
  e768743d2af95f59780e3418077b7e1e  libgomp/testsuite/libgomp.c/pr80853.c
  9116b9dc2c0c3c11fdab95ea2ca66a18  libgomp/testsuite/libgomp.c/pr81687-1.c
  5996dc15da52a000b77c153bb70588f6  libgomp/testsuite/libgomp.c/pr81687-2.c
! 028299ccbe448518755bf7ecfb2173c4  libgomp/testsuite/libgomp.c/pr81778.c
  d2e99b56eca2603a98c09d8a426f014d  libgomp/testsuite/libgomp.c/pr86416-1.c
  2e46285bc3dd9de6aa9f549109ddeee5  libgomp/testsuite/libgomp.c/pr86416-2.c
! ed00c0e197dcbbf46f44ea320b473f78  libgomp/testsuite/libgomp.c/pr86660.c
  98b922b1cdf2f28ae03ab1ce3c81629a  libgomp/testsuite/libgomp.c/pr89002.c
  647c1c2e346c7cfa972582b2d830c004  libgomp/testsuite/libgomp.c/pr90779.c
  c809670e9df5e9371adcd7582c352fe5  libgomp/testsuite/libgomp.c/pr90811.c
--- 141607,141616 ----
  e768743d2af95f59780e3418077b7e1e  libgomp/testsuite/libgomp.c/pr80853.c
  9116b9dc2c0c3c11fdab95ea2ca66a18  libgomp/testsuite/libgomp.c/pr81687-1.c
  5996dc15da52a000b77c153bb70588f6  libgomp/testsuite/libgomp.c/pr81687-2.c
! 7f210f87bb34fac24c883d60b2ea628a  libgomp/testsuite/libgomp.c/pr81778.c
  d2e99b56eca2603a98c09d8a426f014d  libgomp/testsuite/libgomp.c/pr86416-1.c
  2e46285bc3dd9de6aa9f549109ddeee5  libgomp/testsuite/libgomp.c/pr86416-2.c
! 0c7e9378c779a0b6cfb8cd77d7e8c567  libgomp/testsuite/libgomp.c/pr86660.c
  98b922b1cdf2f28ae03ab1ce3c81629a  libgomp/testsuite/libgomp.c/pr89002.c
  647c1c2e346c7cfa972582b2d830c004  libgomp/testsuite/libgomp.c/pr90779.c
  c809670e9df5e9371adcd7582c352fe5  libgomp/testsuite/libgomp.c/pr90811.c
*************** d321b450677a9393d745c2b0880a9bde  libgom
*** 128201,128207 ****
  46df3b1df79db68648b6ccbec941306b  libgomp/testsuite/libgomp.c/reduction-15.c
  6a724210e4cb30df7ade4ef7ee0aa83e  libgomp/testsuite/libgomp.c/reduction-2.c
  e6be7ac480ea1328785bc17e9c2ecc9a  libgomp/testsuite/libgomp.c/reduction-3.c
! 44f69b0c87d6183287459ce05d2c547d  libgomp/testsuite/libgomp.c/reduction-4.c
  9126ac9782df114930590ae42eef14dc  libgomp/testsuite/libgomp.c/reduction-5.c
  bec2e246a29d581f6ebc16d2674347cb  libgomp/testsuite/libgomp.c/reduction-6.c
  bbb535f9235265a2e36ddfe0bbef8c2c  libgomp/testsuite/libgomp.c/reduction-7.c
--- 141628,141634 ----
  46df3b1df79db68648b6ccbec941306b  libgomp/testsuite/libgomp.c/reduction-15.c
  6a724210e4cb30df7ade4ef7ee0aa83e  libgomp/testsuite/libgomp.c/reduction-2.c
  e6be7ac480ea1328785bc17e9c2ecc9a  libgomp/testsuite/libgomp.c/reduction-3.c
! ebf13aabb647dcf04ca1673ed3b617c6  libgomp/testsuite/libgomp.c/reduction-4.c
  9126ac9782df114930590ae42eef14dc  libgomp/testsuite/libgomp.c/reduction-5.c
  bec2e246a29d581f6ebc16d2674347cb  libgomp/testsuite/libgomp.c/reduction-6.c
  bbb535f9235265a2e36ddfe0bbef8c2c  libgomp/testsuite/libgomp.c/reduction-7.c
*************** e770a162e63a8ef14578c664c60a1609  libgom
*** 128252,128261 ****
  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
  9db70785f4086ce177b8c657f8afcf53  libgomp/testsuite/libgomp.c/target-11.c
  2de942c75a916f102ba01aa0912ff30c  libgomp/testsuite/libgomp.c/target-12.c
  27431e068ab8aac1749f7d5589cc31a4  libgomp/testsuite/libgomp.c/target-14.c
--- 141679,141688 ----
  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
! e322d67483dccdcd37654f43d4affa21  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
! ff65a10dd402092a4cbe8ba2a361ac11  libgomp/testsuite/libgomp.c/switch-conversion.c
  9db70785f4086ce177b8c657f8afcf53  libgomp/testsuite/libgomp.c/target-11.c
  2de942c75a916f102ba01aa0912ff30c  libgomp/testsuite/libgomp.c/target-12.c
  27431e068ab8aac1749f7d5589cc31a4  libgomp/testsuite/libgomp.c/target-14.c
*************** aa5f3d6857ebbdacbc317114429b603a  libgom
*** 128264,128290 ****
  5c41719f58a5064411f8409559fe90a4  libgomp/testsuite/libgomp.c/target-17.c
  8f2af019fdef670d3a01cf4c9c2db643  libgomp/testsuite/libgomp.c/target-18.c
  99aa65fd4472b89cba7adbcc473a8787  libgomp/testsuite/libgomp.c/target-19.c
! 5db64b8d1a5b9e2c35fc058aaf002a15  libgomp/testsuite/libgomp.c/target-20.c
  96268d9b7cf5e004e7d8b46ee3b1fd4c  libgomp/testsuite/libgomp.c/target-21.c
  f2e54a8764788eb33e978b5d31ff89b6  libgomp/testsuite/libgomp.c/target-22.c
  4ce1597f944d0dab5e5edb26f06eb285  libgomp/testsuite/libgomp.c/target-23.c
  f9477bd5cd91873e5bdae1efb8919bf2  libgomp/testsuite/libgomp.c/target-24.c
  cfe55d2cd53f9f250f09f4f5fe8f0a26  libgomp/testsuite/libgomp.c/target-25.c
! f10dc3eae15856c4039679f4c4b59813  libgomp/testsuite/libgomp.c/target-26.c
  b19f78bcd8657caada64699a1cf44c50  libgomp/testsuite/libgomp.c/target-27.c
! cfb96280c2ccf2711f5cc008a7b246ae  libgomp/testsuite/libgomp.c/target-28.c
  853e83a34241d01c658ccbaf8af52df8  libgomp/testsuite/libgomp.c/target-29.c
  f7a44ccd815684332e17fd32bdd34759  libgomp/testsuite/libgomp.c/target-3.c
! 89b93437359f4de22f03c55eb9283547  libgomp/testsuite/libgomp.c/target-30.c
! 95908bcfba12e260232003299ef50b2d  libgomp/testsuite/libgomp.c/target-31.c
! dceaa3615119793c5e2cc8a17d2db8bf  libgomp/testsuite/libgomp.c/target-32.c
  bccccd438324ee9e479d4e3a0bdb6d81  libgomp/testsuite/libgomp.c/target-33.c
! 1ac6fb011b9f01d7645493e720fffe9b  libgomp/testsuite/libgomp.c/target-34.c
! 39197232f51c6d357b1433cbac40474e  libgomp/testsuite/libgomp.c/target-35.c
  8ceaf60bd931304015eb3da87ed4570f  libgomp/testsuite/libgomp.c/target-36.c
  afd63367e7cb3f8df5a7702805b4f9d2  libgomp/testsuite/libgomp.c/target-37.c
! 42c91dcf309f915341e77cf7bc7b46ea  libgomp/testsuite/libgomp.c/target-38.c
! 30443acc8daefd5d19442cdbebdf89c9  libgomp/testsuite/libgomp.c/target-39.c
  2976dbc7a685197058903e4113919f62  libgomp/testsuite/libgomp.c/target-4.c
  8709eb7110674b1efddc628092eb42bc  libgomp/testsuite/libgomp.c/target-40.c
  53964eae69f62a1e1e6ccd73dfd29af4  libgomp/testsuite/libgomp.c/target-41.c
--- 141691,141717 ----
  5c41719f58a5064411f8409559fe90a4  libgomp/testsuite/libgomp.c/target-17.c
  8f2af019fdef670d3a01cf4c9c2db643  libgomp/testsuite/libgomp.c/target-18.c
  99aa65fd4472b89cba7adbcc473a8787  libgomp/testsuite/libgomp.c/target-19.c
! da7c783b6d1259ce3e7cf23d0e6a963a  libgomp/testsuite/libgomp.c/target-20.c
  96268d9b7cf5e004e7d8b46ee3b1fd4c  libgomp/testsuite/libgomp.c/target-21.c
  f2e54a8764788eb33e978b5d31ff89b6  libgomp/testsuite/libgomp.c/target-22.c
  4ce1597f944d0dab5e5edb26f06eb285  libgomp/testsuite/libgomp.c/target-23.c
  f9477bd5cd91873e5bdae1efb8919bf2  libgomp/testsuite/libgomp.c/target-24.c
  cfe55d2cd53f9f250f09f4f5fe8f0a26  libgomp/testsuite/libgomp.c/target-25.c
! 96a085f245242eeec5f4db65fdfd073f  libgomp/testsuite/libgomp.c/target-26.c
  b19f78bcd8657caada64699a1cf44c50  libgomp/testsuite/libgomp.c/target-27.c
! 71cb25c4b14d93a826bfaab87fb63eaa  libgomp/testsuite/libgomp.c/target-28.c
  853e83a34241d01c658ccbaf8af52df8  libgomp/testsuite/libgomp.c/target-29.c
  f7a44ccd815684332e17fd32bdd34759  libgomp/testsuite/libgomp.c/target-3.c
! 998c9e9b2884363ebc629685b0e8524c  libgomp/testsuite/libgomp.c/target-30.c
! 8f97ed48397941692c8d064833ea658f  libgomp/testsuite/libgomp.c/target-31.c
! 271e8ca083b73c4ae56bc42f3f634e1f  libgomp/testsuite/libgomp.c/target-32.c
  bccccd438324ee9e479d4e3a0bdb6d81  libgomp/testsuite/libgomp.c/target-33.c
! efdbb5631b9b73352854c7f30468cd42  libgomp/testsuite/libgomp.c/target-34.c
! 0168fff6191978721858e6a9fd8e4192  libgomp/testsuite/libgomp.c/target-35.c
  8ceaf60bd931304015eb3da87ed4570f  libgomp/testsuite/libgomp.c/target-36.c
  afd63367e7cb3f8df5a7702805b4f9d2  libgomp/testsuite/libgomp.c/target-37.c
! 865fa9882d91e5e076a764f03ad98105  libgomp/testsuite/libgomp.c/target-38.c
! e04f8e3314964356d53be2c6d6f80602  libgomp/testsuite/libgomp.c/target-39.c
  2976dbc7a685197058903e4113919f62  libgomp/testsuite/libgomp.c/target-4.c
  8709eb7110674b1efddc628092eb42bc  libgomp/testsuite/libgomp.c/target-40.c
  53964eae69f62a1e1e6ccd73dfd29af4  libgomp/testsuite/libgomp.c/target-41.c
*************** afc4ab3aab3ed9982eae8a31f1a79482  libgom
*** 128308,128344 ****
  ae27a3336844047d494b72607cf843fc  libgomp/testsuite/libgomp.c/target-6.c
  a9b2ad991bd60cd4cd6ef4a68071bee6  libgomp/testsuite/libgomp.c/target-7.c
  9249f482d7291a60ed32df9743b496fb  libgomp/testsuite/libgomp.c/target-8.c
! 59acb9b212e99b3f1ea3d1a543acdd3d  libgomp/testsuite/libgomp.c/target-9.c
! 4e29a1266d0dcad35365d246391e52c3  libgomp/testsuite/libgomp.c/target-critical-1.c
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
! 2c67f32f623ae7d4b5ad5c7688a6acb1  libgomp/testsuite/libgomp.c/target-link-1.c
  2615e18884995f596aab452699d4a70a  libgomp/testsuite/libgomp.c/target-map-zero-sized-2.c
  68edfd581475a06b17e8a98d85c86022  libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
  24c08630e1dc6f184073f42ff7c1bb73  libgomp/testsuite/libgomp.c/target-map-zero-sized.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
! ec5b58aca4cfce9a6dafce47f592cdc3  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
! 602b6f2d636477283d0ff3d6fc3402fc  libgomp/testsuite/libgomp.c/target-simd-clone-2.c
! 3945b32fbe56de1978fd25a17fabaacf  libgomp/testsuite/libgomp.c/target-simd-clone-3.c
! 3ec1f30520e033764f5322b77b9ccb08  libgomp/testsuite/libgomp.c/target-teams-1.c
! 199474ddc91715f45996e095a9f4298a  libgomp/testsuite/libgomp.c/task-1.c
  b07f3ce8ad8f8edece7624d18f5d154d  libgomp/testsuite/libgomp.c/task-2.c
! f7ff00e5f2a30832f7f427c91fa1f61b  libgomp/testsuite/libgomp.c/task-3.c
  d3e7c403248ba696f161f0c29c1f87a6  libgomp/testsuite/libgomp.c/task-4.c
  d4661425a651c88d20ba240b4b095d25  libgomp/testsuite/libgomp.c/task-5.c
! 44bdb32169338741ef61362037413b94  libgomp/testsuite/libgomp.c/task-6.c
  be9ace9f504e4b04cbe60d9c44b6ec06  libgomp/testsuite/libgomp.c/task-7.c
  fa0452ae69f7810be8c0d18767e0b973  libgomp/testsuite/libgomp.c/task-8.c
! 38213b90919e07d4d9f35aca2fd48cdd  libgomp/testsuite/libgomp.c/task-reduction-1.c
! ccf79f1a3cd3d9897f6ea88c19bfbdc8  libgomp/testsuite/libgomp.c/task-reduction-2.c
  e25fde9ed6b03c3c743ea8cf6c8eaa3e  libgomp/testsuite/libgomp.c/task-reduction-3.c
  3b961187e4321fe4d1a657f3f6963089  libgomp/testsuite/libgomp.c/task-reduction-4.c
! f75d1327afda704d612dae70b35ac230  libgomp/testsuite/libgomp.c/teams-1.c
  37b3daacf6336034e4ee7c938d7fc2ef  libgomp/testsuite/libgomp.c/teams-2.c
  8f9a5283e3b48bb452ccf9f17b6bf998  libgomp/testsuite/libgomp.c/teams-3.c
  01982ba157671cfd498fc3b3effd6f5d  libgomp/testsuite/libgomp.c/teams-4.c
  823e6611a5fcc98ccb7472d8cd3c93bc  libgomp/testsuite/libgomp.c/teams-5.c
  74e159f134df946b8d2bcebce46c6cf3  libgomp/testsuite/libgomp.c/thread-limit-1.c
! 3cdc81bd7b9c658361c933f7a80c7a77  libgomp/testsuite/libgomp.c/thread-limit-2.c
  014784f1e47ac29bf6638d12861665ec  libgomp/testsuite/libgomp.c/thread-limit-3.c
  65b122ed46c1c99e052ffdbb6cec4968  libgomp/testsuite/libgomp.c/thread-limit-4.c
  2c056e80fa07dd3649137bb24e331964  libgomp/testsuite/libgomp.c/thread-limit-5.c
--- 141735,141771 ----
  ae27a3336844047d494b72607cf843fc  libgomp/testsuite/libgomp.c/target-6.c
  a9b2ad991bd60cd4cd6ef4a68071bee6  libgomp/testsuite/libgomp.c/target-7.c
  9249f482d7291a60ed32df9743b496fb  libgomp/testsuite/libgomp.c/target-8.c
! 37f4629cc5ec7daf74c2204face7e933  libgomp/testsuite/libgomp.c/target-9.c
! 0c22284da2bf46f8073fce86c2b87371  libgomp/testsuite/libgomp.c/target-critical-1.c
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
! ae08608d1d34ffa14592283860b92d45  libgomp/testsuite/libgomp.c/target-link-1.c
  2615e18884995f596aab452699d4a70a  libgomp/testsuite/libgomp.c/target-map-zero-sized-2.c
  68edfd581475a06b17e8a98d85c86022  libgomp/testsuite/libgomp.c/target-map-zero-sized-3.c
  24c08630e1dc6f184073f42ff7c1bb73  libgomp/testsuite/libgomp.c/target-map-zero-sized.c
  7d9530ec8677e1a90e6b3d38859fc1b2  libgomp/testsuite/libgomp.c/target-print-1.c
! 09dca57afc9c61b2c641c70949ad2b8a  libgomp/testsuite/libgomp.c/target-simd-clone-1.c
! d910b3007727e693125b118a82389aa1  libgomp/testsuite/libgomp.c/target-simd-clone-2.c
! c462b175293ed1e3501ec2d51f59cd12  libgomp/testsuite/libgomp.c/target-simd-clone-3.c
! b252b319bbe3ddfce7d52820069e82fe  libgomp/testsuite/libgomp.c/target-teams-1.c
! c37e15563e68af3a9459b8879bf6d99b  libgomp/testsuite/libgomp.c/task-1.c
  b07f3ce8ad8f8edece7624d18f5d154d  libgomp/testsuite/libgomp.c/task-2.c
! 86c0a1376fb9f2e8566c4af319af9845  libgomp/testsuite/libgomp.c/task-3.c
  d3e7c403248ba696f161f0c29c1f87a6  libgomp/testsuite/libgomp.c/task-4.c
  d4661425a651c88d20ba240b4b095d25  libgomp/testsuite/libgomp.c/task-5.c
! 5ae25a0540fcee6f2b3dc2f3c91e5372  libgomp/testsuite/libgomp.c/task-6.c
  be9ace9f504e4b04cbe60d9c44b6ec06  libgomp/testsuite/libgomp.c/task-7.c
  fa0452ae69f7810be8c0d18767e0b973  libgomp/testsuite/libgomp.c/task-8.c
! 570d6a0c186d0da5b24bbbe3fb03353a  libgomp/testsuite/libgomp.c/task-reduction-1.c
! 7379dbab4c17a99389823257b869b0e6  libgomp/testsuite/libgomp.c/task-reduction-2.c
  e25fde9ed6b03c3c743ea8cf6c8eaa3e  libgomp/testsuite/libgomp.c/task-reduction-3.c
  3b961187e4321fe4d1a657f3f6963089  libgomp/testsuite/libgomp.c/task-reduction-4.c
! 9679a6532287009cbe86b9b274b36e42  libgomp/testsuite/libgomp.c/teams-1.c
  37b3daacf6336034e4ee7c938d7fc2ef  libgomp/testsuite/libgomp.c/teams-2.c
  8f9a5283e3b48bb452ccf9f17b6bf998  libgomp/testsuite/libgomp.c/teams-3.c
  01982ba157671cfd498fc3b3effd6f5d  libgomp/testsuite/libgomp.c/teams-4.c
  823e6611a5fcc98ccb7472d8cd3c93bc  libgomp/testsuite/libgomp.c/teams-5.c
  74e159f134df946b8d2bcebce46c6cf3  libgomp/testsuite/libgomp.c/thread-limit-1.c
! 9b210a0a407cb35a35873177f31e8748  libgomp/testsuite/libgomp.c/thread-limit-2.c
  014784f1e47ac29bf6638d12861665ec  libgomp/testsuite/libgomp.c/thread-limit-3.c
  65b122ed46c1c99e052ffdbb6cec4968  libgomp/testsuite/libgomp.c/thread-limit-4.c
  2c056e80fa07dd3649137bb24e331964  libgomp/testsuite/libgomp.c/thread-limit-5.c
*************** f75d1327afda704d612dae70b35ac230  libgom
*** 128346,128352 ****
  26a632a90e3b65f74ab6b734c3fd0d94  libgomp/testsuite/libgomp.c/udr-3.c
  edfe0cd950eb6d29688ffe6e38c87d10  libgomp/testsuite/libgomp.c/uns-outer-4.c
  6e82e5e252481546aea46d0ffe020ef9  libgomp/testsuite/libgomp.c/usleep.h
! 35c4904668124586d73a652acb4ed703  libgomp/testsuite/libgomp.c/vla-1.c
  bc4cd825c8ad15fbafb7f2c60e6cab7c  libgomp/testsuite/libgomp.fortran/affinity1.f90
  a7ba1c005e2c0979fffc63313c6c2d42  libgomp/testsuite/libgomp.fortran/affinity2.f90
  b4e8ed1ab4338f0ccdabc2598d2e0973  libgomp/testsuite/libgomp.fortran/aligned1.f03
--- 141773,141779 ----
  26a632a90e3b65f74ab6b734c3fd0d94  libgomp/testsuite/libgomp.c/udr-3.c
  edfe0cd950eb6d29688ffe6e38c87d10  libgomp/testsuite/libgomp.c/uns-outer-4.c
  6e82e5e252481546aea46d0ffe020ef9  libgomp/testsuite/libgomp.c/usleep.h
! 495472dbacc523f3a08b49b4c4c38272  libgomp/testsuite/libgomp.c/vla-1.c
  bc4cd825c8ad15fbafb7f2c60e6cab7c  libgomp/testsuite/libgomp.fortran/affinity1.f90
  a7ba1c005e2c0979fffc63313c6c2d42  libgomp/testsuite/libgomp.fortran/affinity2.f90
  b4e8ed1ab4338f0ccdabc2598d2e0973  libgomp/testsuite/libgomp.fortran/aligned1.f03
*************** cbc8d1928586e24499210f2cd9438551  libgom
*** 128367,128372 ****
--- 141794,141800 ----
  21463b128d951cea6b4ea41176379b5c  libgomp/testsuite/libgomp.fortran/alloc-comp-2.f90
  c9531d367dce1d94d1c60a4798d79661  libgomp/testsuite/libgomp.fortran/alloc-comp-3.f90
  fa45380ee93a1192a6e6ef3538c265be  libgomp/testsuite/libgomp.fortran/alloc-comp-4.f90
+ 5b681d1577f541c13f167870475d9d03  libgomp/testsuite/libgomp.fortran/alloc-managed-1.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
*************** b6f0fb56203a24951779ba06548a5fdf  libgom
*** 128390,128401 ****
  0d85a7a7d82fc3a1cb843bfd2d569a50  libgomp/testsuite/libgomp.fortran/allocate-6.f90
  0c4e938e58564254af87788f3071c7da  libgomp/testsuite/libgomp.fortran/allocate-7.f90
  81149f56dc2424a239c1018c9772cfeb  libgomp/testsuite/libgomp.fortran/allocate-8.f90
! 2d1e593d2cc2b95815470db5eeb2ca42  libgomp/testsuite/libgomp.fortran/allocate-8a.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
! 3e30278436011c71be08d7b18f3bae4c  libgomp/testsuite/libgomp.fortran/allocators-4.f90
  e6be398238acf7c496b5ab6816e00064  libgomp/testsuite/libgomp.fortran/allocators-5.f90
  d69ebafdf43e748e354c0c05228cdd0c  libgomp/testsuite/libgomp.fortran/appendix-a/a.15.1.f90
  3f53f7b5eb9ab9c8cb9eb0edfeedad91  libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90
--- 141818,141829 ----
  0d85a7a7d82fc3a1cb843bfd2d569a50  libgomp/testsuite/libgomp.fortran/allocate-6.f90
  0c4e938e58564254af87788f3071c7da  libgomp/testsuite/libgomp.fortran/allocate-7.f90
  81149f56dc2424a239c1018c9772cfeb  libgomp/testsuite/libgomp.fortran/allocate-8.f90
! 56919121dd21cc5f4be5ea57d5c13a93  libgomp/testsuite/libgomp.fortran/allocate-8a.f90
  5e4bfaae7990e17182be61796245e45b  libgomp/testsuite/libgomp.fortran/allocate-static.f90
! 084290de38c0d5a95c09a7950a8784fa  libgomp/testsuite/libgomp.fortran/allocators-1.f90
! 60d040dcd1b37604d6e3330aebad2593  libgomp/testsuite/libgomp.fortran/allocators-2.f90
  a3968845ddd44e2abfd5506503fcaff2  libgomp/testsuite/libgomp.fortran/allocators-3.f90
! 3f3abd809d1c38e8a07a14f7a45184d6  libgomp/testsuite/libgomp.fortran/allocators-4.f90
  e6be398238acf7c496b5ab6816e00064  libgomp/testsuite/libgomp.fortran/allocators-5.f90
  d69ebafdf43e748e354c0c05228cdd0c  libgomp/testsuite/libgomp.fortran/appendix-a/a.15.1.f90
  3f53f7b5eb9ab9c8cb9eb0edfeedad91  libgomp/testsuite/libgomp.fortran/appendix-a/a.16.1.f90
*************** a8a1d4819e69f862a14301cb3ed192c9  libgom
*** 128458,128464 ****
  5c117e1d74f2b4f253e83682b499c979  libgomp/testsuite/libgomp.fortran/condinc2.f
  6a93bc13521437f84fc52b9fc3544dc4  libgomp/testsuite/libgomp.fortran/condinc3.f90
  830c32b3e02911ba8619b6e823f94108  libgomp/testsuite/libgomp.fortran/condinc4.f90
! c930836635408ae2f513d5a829fcac58  libgomp/testsuite/libgomp.fortran/crayptr1.f90
  5c72e66b85ebaa813cafc7e498afdc78  libgomp/testsuite/libgomp.fortran/crayptr2.f90
  03cd1507e8a9e3a9d48b7a317bba1008  libgomp/testsuite/libgomp.fortran/crayptr3.f90
  f83e1497def5d9050edf0d194ed99cab  libgomp/testsuite/libgomp.fortran/critical-hint-1.f90
--- 141886,141892 ----
  5c117e1d74f2b4f253e83682b499c979  libgomp/testsuite/libgomp.fortran/condinc2.f
  6a93bc13521437f84fc52b9fc3544dc4  libgomp/testsuite/libgomp.fortran/condinc3.f90
  830c32b3e02911ba8619b6e823f94108  libgomp/testsuite/libgomp.fortran/condinc4.f90
! d05718b44484a797e3236d1a01ef8777  libgomp/testsuite/libgomp.fortran/crayptr1.f90
  5c72e66b85ebaa813cafc7e498afdc78  libgomp/testsuite/libgomp.fortran/crayptr2.f90
  03cd1507e8a9e3a9d48b7a317bba1008  libgomp/testsuite/libgomp.fortran/crayptr3.f90
  f83e1497def5d9050edf0d194ed99cab  libgomp/testsuite/libgomp.fortran/critical-hint-1.f90
*************** f83e1497def5d9050edf0d194ed99cab  libgom
*** 128467,128477 ****
  c0ebd55529e9baf82532c7b2f51f3fe4  libgomp/testsuite/libgomp.fortran/declare-simd-2.f90
  8ca22b63783876ef9de275258422a06a  libgomp/testsuite/libgomp.fortran/declare-simd-3.f90
  4aa1fe4701d5e31226d8165c2fb26718  libgomp/testsuite/libgomp.fortran/declare-simd-4.f90
! 41c4fec6db885d55d5e3922d68598eac  libgomp/testsuite/libgomp.fortran/declare-target-1.f90
! df7199b063fe5d0c60dfe901e72b07d4  libgomp/testsuite/libgomp.fortran/declare-target-2.f90
  49813561cddcf22ee10c7f9de89f62c3  libgomp/testsuite/libgomp.fortran/declare-target-3.f90
! abb0596997e88cb58af2f0077223279d  libgomp/testsuite/libgomp.fortran/declare-target-indirect-1.f90
! 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
--- 141895,141905 ----
  c0ebd55529e9baf82532c7b2f51f3fe4  libgomp/testsuite/libgomp.fortran/declare-simd-2.f90
  8ca22b63783876ef9de275258422a06a  libgomp/testsuite/libgomp.fortran/declare-simd-3.f90
  4aa1fe4701d5e31226d8165c2fb26718  libgomp/testsuite/libgomp.fortran/declare-simd-4.f90
! 8ae201c80801e5b5e25b67d7fe880ecc  libgomp/testsuite/libgomp.fortran/declare-target-1.f90
! 4b6e6323760e4ced9fdb496f5bb5c0eb  libgomp/testsuite/libgomp.fortran/declare-target-2.f90
  49813561cddcf22ee10c7f9de89f62c3  libgomp/testsuite/libgomp.fortran/declare-target-3.f90
! 75cda96314db047ad0b89b03e0798025  libgomp/testsuite/libgomp.fortran/declare-target-indirect-1.f90
! a7acd96299c60619cc16b6ccd541490b  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
*************** c22d4261003f9e9a24b78eb85be81a5d  libgom
*** 128481,128486 ****
--- 141909,141915 ----
  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
+ 46ec6b3bd3d025655aa5160872a5d974  libgomp/testsuite/libgomp.fortran/dep-uses-allocators.f90
  085b168af19aac8a6dd4f31eda256d5c  libgomp/testsuite/libgomp.fortran/depend-1.f90
  f528c60f59b52a75c434ced5c9a53e30  libgomp/testsuite/libgomp.fortran/depend-2.f90
  7ebb6e3f3faa4674c639dfcc079e08dc  libgomp/testsuite/libgomp.fortran/depend-3.f90
*************** f528c60f59b52a75c434ced5c9a53e30  libgom
*** 128488,128497 ****
  879aee67d74ed13428685bf48a63fe82  libgomp/testsuite/libgomp.fortran/depend-5.f90
  dbefb5b9dae6eea372fe12a983f2bbd5  libgomp/testsuite/libgomp.fortran/depend-6.f90
  1f4919d3bf99ff54886fa58d5d0b9ffa  libgomp/testsuite/libgomp.fortran/depend-7.f90
! 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
--- 141917,141926 ----
  879aee67d74ed13428685bf48a63fe82  libgomp/testsuite/libgomp.fortran/depend-5.f90
  dbefb5b9dae6eea372fe12a983f2bbd5  libgomp/testsuite/libgomp.fortran/depend-6.f90
  1f4919d3bf99ff54886fa58d5d0b9ffa  libgomp/testsuite/libgomp.fortran/depend-7.f90
! 0bc9518ab76a968ba79d8872c74146f4  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
! 5ca0eeecec6ac795cb81c125cbf6011f  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
*************** d399d484908827be2ebc1cab5ad149fb  libgom
*** 128499,128507 ****
  b27fda28ea209679d1fd8dab627e1468  libgomp/testsuite/libgomp.fortran/do1.f90
  e5575c879fa22b33a94ebe42d9cfc7aa  libgomp/testsuite/libgomp.fortran/do2.f90
  aa15618c3424182c7ab9976352f3f841  libgomp/testsuite/libgomp.fortran/do_concurrent_5.f90
! 1fd310939051dc84ed3d25d8d99fbc31  libgomp/testsuite/libgomp.fortran/doacross1.f90
! 7c59966d63fa307ff5b7881bce1f067f  libgomp/testsuite/libgomp.fortran/doacross2.f90
! 38a69ab87320a0ee3ca08fccb175ab76  libgomp/testsuite/libgomp.fortran/doacross3.f90
  ebe7ba81e035d4ab86f7804cd541614d  libgomp/testsuite/libgomp.fortran/dummy-procs-1.f90
  dbf8d5d52757ffbf204f319b01a6f8ab  libgomp/testsuite/libgomp.fortran/error-1.f90
  e169bdb39b192bb0ba2d9a077ad5ae8c  libgomp/testsuite/libgomp.fortran/examples-4/array_sections-3.f90
--- 141928,141936 ----
  b27fda28ea209679d1fd8dab627e1468  libgomp/testsuite/libgomp.fortran/do1.f90
  e5575c879fa22b33a94ebe42d9cfc7aa  libgomp/testsuite/libgomp.fortran/do2.f90
  aa15618c3424182c7ab9976352f3f841  libgomp/testsuite/libgomp.fortran/do_concurrent_5.f90
! 6ac0a15b899e7f0ee5b2df78bb129fee  libgomp/testsuite/libgomp.fortran/doacross1.f90
! 07ac39d8ea1578439748666eb5f16265  libgomp/testsuite/libgomp.fortran/doacross2.f90
! 4226182e39082285733d2ee7551f6cbc  libgomp/testsuite/libgomp.fortran/doacross3.f90
  ebe7ba81e035d4ab86f7804cd541614d  libgomp/testsuite/libgomp.fortran/dummy-procs-1.f90
  dbf8d5d52757ffbf204f319b01a6f8ab  libgomp/testsuite/libgomp.fortran/error-1.f90
  e169bdb39b192bb0ba2d9a077ad5ae8c  libgomp/testsuite/libgomp.fortran/examples-4/array_sections-3.f90
*************** e1956151e0a1b58e3b37a0ee0654547f  libgom
*** 128580,128595 ****
  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
  c25692d207e679ebce7864339e12a85f  libgomp/testsuite/libgomp.fortran/jacobi.f
  de6f55a3f86dc416877253cfdf1ab448  libgomp/testsuite/libgomp.fortran/lastprivate-conditional-10.f90
  ae72f9bef5c27e6ae84ab0ff6ee16399  libgomp/testsuite/libgomp.fortran/lastprivate1.f90
  c845e7034250759b9b08ddeeb577af4d  libgomp/testsuite/libgomp.fortran/lastprivate2.f90
! bef133e4d3cf823ac34bff98a44d05ad  libgomp/testsuite/libgomp.fortran/lib1.f90
! 650bd5daf8df9ced6b7c318d3e3a7222  libgomp/testsuite/libgomp.fortran/lib2.f
! fbe0e124aba46c9f69f236a8199dee70  libgomp/testsuite/libgomp.fortran/lib3.f
  edb8cf0884ac73fb59ab5c66f1acb3ad  libgomp/testsuite/libgomp.fortran/lib4.f90
  7122ffee4ad568a67d404fe06da86cf8  libgomp/testsuite/libgomp.fortran/lock-1.f90
  12b2386c008a817a32688ca1ae228c42  libgomp/testsuite/libgomp.fortran/lock-2.f90
--- 142009,142024 ----
  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
! c1ad752762a27cfa3e94bbea246b828c  libgomp/testsuite/libgomp.fortran/is_device_ptr-1.f90
! 1c4a4186e9dd647a0bb50cb4d4dd1a13  libgomp/testsuite/libgomp.fortran/is_device_ptr-2.f90
  2382b518f8fa444fc94c1e6cf51b5280  libgomp/testsuite/libgomp.fortran/is_device_ptr-3.f90
  c25692d207e679ebce7864339e12a85f  libgomp/testsuite/libgomp.fortran/jacobi.f
  de6f55a3f86dc416877253cfdf1ab448  libgomp/testsuite/libgomp.fortran/lastprivate-conditional-10.f90
  ae72f9bef5c27e6ae84ab0ff6ee16399  libgomp/testsuite/libgomp.fortran/lastprivate1.f90
  c845e7034250759b9b08ddeeb577af4d  libgomp/testsuite/libgomp.fortran/lastprivate2.f90
! 1326c1e04303678180e61687a4198a39  libgomp/testsuite/libgomp.fortran/lib1.f90
! 94d11bb00832da654b65e96f4ce792ff  libgomp/testsuite/libgomp.fortran/lib2.f
! 093b3e118842173b06e4ab75c49794e3  libgomp/testsuite/libgomp.fortran/lib3.f
  edb8cf0884ac73fb59ab5c66f1acb3ad  libgomp/testsuite/libgomp.fortran/lib4.f90
  7122ffee4ad568a67d404fe06da86cf8  libgomp/testsuite/libgomp.fortran/lock-1.f90
  12b2386c008a817a32688ca1ae228c42  libgomp/testsuite/libgomp.fortran/lock-2.f90
*************** fb198f79d07000ba2794e9cc222e90f8  libgom
*** 128599,128615 ****
  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
! 10190778b4af6170854bedfa75244a91  libgomp/testsuite/libgomp.fortran/map-alloc-comp-9-usm.f90
  11a2994612dda1ea5d074b912ea7e4aa  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
  c1190bc5bceb25197c6d0d9b5ba5a2ae  libgomp/testsuite/libgomp.fortran/map-subarray-3.f90
  b2c263036c49be63977c634860a8cf72  libgomp/testsuite/libgomp.fortran/map-subarray-4.f90
! 556c53224e40ca2a5519b1262ae4a5f5  libgomp/testsuite/libgomp.fortran/map-subarray-5.f90
  3016a644377b86aff8cd64f0767eac38  libgomp/testsuite/libgomp.fortran/map-subarray-6.f90
  b916bf010c1060aa6d0c7f50cf781f71  libgomp/testsuite/libgomp.fortran/map-subarray-7.f90
  74aa87d51967ef1e4d58a270e8558b81  libgomp/testsuite/libgomp.fortran/map-subarray-8.f90
  a4b7a9ace17dd9b075800abbfd0733ce  libgomp/testsuite/libgomp.fortran/map-subarray.f90
  eaa2fd770a7d57561f30521ae9f2fc9f  libgomp/testsuite/libgomp.fortran/map-subcomponents.f90
  235b8f3fb869589084e0e80ba5622db7  libgomp/testsuite/libgomp.fortran/masked-1.f90
--- 142028,142057 ----
  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
! ff694c77648180b4ecf0d218e61ad029  libgomp/testsuite/libgomp.fortran/map-alloc-comp-9-usm.f90
  11a2994612dda1ea5d074b912ea7e4aa  libgomp/testsuite/libgomp.fortran/map-alloc-comp-9.f90
+ 1f7de76e0f0b19f7151fbc01098b4209  libgomp/testsuite/libgomp.fortran/map-alloc-present-1.f90
+ 0a83d23b9f5d1968c11a7687ad6820cd  libgomp/testsuite/libgomp.fortran/map-alloc-present-2.f90
  f4ad2acbc3bf213777f658e4581eb805  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-1.f90
! 18f729a1444b06169904daaa41adb0f4  libgomp/testsuite/libgomp.fortran/map-alloc-ptr-2.f90
! 523668cf7417e7c8cb78a2b394f7329d  libgomp/testsuite/libgomp.fortran/map-subarray-10.f90
! 52aa43f6369adfd3e616a6ba45b55216  libgomp/testsuite/libgomp.fortran/map-subarray-11.f90
! 7ecf73bcdf2c11d324a6a380667b91e3  libgomp/testsuite/libgomp.fortran/map-subarray-12.f90
! 85be03e2ca2ab4c7f59b8de65996efd6  libgomp/testsuite/libgomp.fortran/map-subarray-13.f90
! 22a3bfdb3ef74940c3b8cb420c21c5f7  libgomp/testsuite/libgomp.fortran/map-subarray-14.f90
! d9e85a6658b6b7a1f94616c4b474760c  libgomp/testsuite/libgomp.fortran/map-subarray-15.f90
! 793b420c72eed06424a604e2495c9016  libgomp/testsuite/libgomp.fortran/map-subarray-16.f90
  fe829ea13169aa018e2a5ad40e7581b9  libgomp/testsuite/libgomp.fortran/map-subarray-2.f90
  c1190bc5bceb25197c6d0d9b5ba5a2ae  libgomp/testsuite/libgomp.fortran/map-subarray-3.f90
  b2c263036c49be63977c634860a8cf72  libgomp/testsuite/libgomp.fortran/map-subarray-4.f90
! 50bc585ef798638185f318bffcc439c4  libgomp/testsuite/libgomp.fortran/map-subarray-5-usm.f90
! 919c574beca36bdd957b212826948051  libgomp/testsuite/libgomp.fortran/map-subarray-5.f90
! 69d650b92cb175c8535d6293c55ee9cf  libgomp/testsuite/libgomp.fortran/map-subarray-6-usm.f90
  3016a644377b86aff8cd64f0767eac38  libgomp/testsuite/libgomp.fortran/map-subarray-6.f90
+ 7c0c20265d095118da385dfa15064e4c  libgomp/testsuite/libgomp.fortran/map-subarray-7-usm.f90
  b916bf010c1060aa6d0c7f50cf781f71  libgomp/testsuite/libgomp.fortran/map-subarray-7.f90
  74aa87d51967ef1e4d58a270e8558b81  libgomp/testsuite/libgomp.fortran/map-subarray-8.f90
+ 33dd6008eda776497e2463d274281b62  libgomp/testsuite/libgomp.fortran/map-subarray-9.f90
  a4b7a9ace17dd9b075800abbfd0733ce  libgomp/testsuite/libgomp.fortran/map-subarray.f90
  eaa2fd770a7d57561f30521ae9f2fc9f  libgomp/testsuite/libgomp.fortran/map-subcomponents.f90
  235b8f3fb869589084e0e80ba5622db7  libgomp/testsuite/libgomp.fortran/masked-1.f90
*************** c04b9603dcb91e38586d7ece605fc03b  libgom
*** 128633,128638 ****
--- 142075,142086 ----
  bc67f38e5b5b1d2e0bceb6481561db59  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-4.f90
  450d27c40e577d44326373374aa78fa8  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-5.f90
  e55e4d88039e45885286f5121fff1fba  libgomp/testsuite/libgomp.fortran/non-rectangular-loop-6.f90
+ e9e866d28e0c8de7982725a2b2235266  libgomp/testsuite/libgomp.fortran/omp-atv-seq-dep.f90
+ 308e04cf45923f0a4dc041fb8a3dd54c  libgomp/testsuite/libgomp.fortran/omp-default-device.f90
+ 3ae700ee989ce700da4bcf6ebd575e7d  libgomp/testsuite/libgomp.fortran/omp-lock-hint-contended-dep.f90
+ b674994b25171d5d1759c43b2277a422  libgomp/testsuite/libgomp.fortran/omp-lock-hint-none-dep.f90
+ 47cd36368ba8d4c47ba71a97d165ca30  libgomp/testsuite/libgomp.fortran/omp-lock-hint-speculative-dep.f90
+ bdf48ac39719ec3b3eedc3ef4b2e8640  libgomp/testsuite/libgomp.fortran/omp-lock-hint-uncontended-dep.f90
  642bd7c41f7948130aa5f8f42b8f21ac  libgomp/testsuite/libgomp.fortran/omp_atomic1.f90
  ac3048471613e2f1f1ee806355b65040  libgomp/testsuite/libgomp.fortran/omp_atomic2.f90
  edf8151c5b785d7f10272dd95dbad260  libgomp/testsuite/libgomp.fortran/omp_atomic3.f90
*************** cb047ff69f1a96928ae722ff607004b4  libgom
*** 128645,128669 ****
  622323a8b6d6827bf9a0ded81fb4d9cb  libgomp/testsuite/libgomp.fortran/omp_hello.f
  1d5baa651387120c1fda67e24dd2125c  libgomp/testsuite/libgomp.fortran/omp_orphan.f
  d09da57ba1fe6d1b566373765f254243  libgomp/testsuite/libgomp.fortran/omp_parse1.f90
! 23d6147324c65d3e1edd705212c5c1a8  libgomp/testsuite/libgomp.fortran/omp_parse2.f90
  1a48e57dbad9754e5d6a3b9f67aa65b5  libgomp/testsuite/libgomp.fortran/omp_parse3.f90
  8170f7b977312f5e8e9fadd4c3b8fc8b  libgomp/testsuite/libgomp.fortran/omp_parse4.f90
  c910dfe57b9f53b8992d397c3571fd09  libgomp/testsuite/libgomp.fortran/omp_reduction.f
  77c80068c3418c0e379971a5e4ac91f1  libgomp/testsuite/libgomp.fortran/omp_workshare1.f
  4c7b256074253b51c44fe0f469b4512e  libgomp/testsuite/libgomp.fortran/omp_workshare2.f
  3e8aa59e7a86d28bacafdfab584f0a22  libgomp/testsuite/libgomp.fortran/on_device_arch.c
! 8aa12e7dad422c429a80a15a029ca3b8  libgomp/testsuite/libgomp.fortran/openmp_version-1.f
! 652c29cde1daaffead2dae0cc54aa9a7  libgomp/testsuite/libgomp.fortran/openmp_version-2.f90
  b12d43efd39917600c23bdbe6e67c348  libgomp/testsuite/libgomp.fortran/optional-bind-c.f90
  57b1c325fdc9d4288e335bb56037d1c3  libgomp/testsuite/libgomp.fortran/optional-map.f90
  c3a66da5face2583306f5e661ecdeaa5  libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90
  f00176bd156a14c71188a3e90d24e3f3  libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90
! 84abc52abece939c2fa04b3d3d942da7  libgomp/testsuite/libgomp.fortran/parallel-master.f90
  18632f821c4d20cc8ddfb8b182ae7d87  libgomp/testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95
  b018601a4e35da4037b1e04dfdb00b98  libgomp/testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95
  10f51539240fd456f44686f1368a9ebb  libgomp/testsuite/libgomp.fortran/pointer1.f90
! ea1e8a0a21d27e85d504f82d979196a3  libgomp/testsuite/libgomp.fortran/pointer2.f90
  5a38dd4751898fd9556aa9ed131fad76  libgomp/testsuite/libgomp.fortran/pr100981-2.f90
  1e7de6c9f1376e7662fc088ab6ec5e64  libgomp/testsuite/libgomp.fortran/pr25162.f
  150790c35955da1ca1b74284c2553f34  libgomp/testsuite/libgomp.fortran/pr25219.f90
  a83bd562c0d1b609f2a71de244b3a1a0  libgomp/testsuite/libgomp.fortran/pr27395-1.f90
--- 142093,142122 ----
  622323a8b6d6827bf9a0ded81fb4d9cb  libgomp/testsuite/libgomp.fortran/omp_hello.f
  1d5baa651387120c1fda67e24dd2125c  libgomp/testsuite/libgomp.fortran/omp_orphan.f
  d09da57ba1fe6d1b566373765f254243  libgomp/testsuite/libgomp.fortran/omp_parse1.f90
! 9844fb727ac21a595db4eea521da3081  libgomp/testsuite/libgomp.fortran/omp_parse2.f90
  1a48e57dbad9754e5d6a3b9f67aa65b5  libgomp/testsuite/libgomp.fortran/omp_parse3.f90
  8170f7b977312f5e8e9fadd4c3b8fc8b  libgomp/testsuite/libgomp.fortran/omp_parse4.f90
  c910dfe57b9f53b8992d397c3571fd09  libgomp/testsuite/libgomp.fortran/omp_reduction.f
+ 4fc273a39b406eb600aa3bb1c6f8609a  libgomp/testsuite/libgomp.fortran/omp_target_memset-2.f90
+ be00ce3e3f96c8c6b7e69b3390cbea6c  libgomp/testsuite/libgomp.fortran/omp_target_memset.f90
  77c80068c3418c0e379971a5e4ac91f1  libgomp/testsuite/libgomp.fortran/omp_workshare1.f
  4c7b256074253b51c44fe0f469b4512e  libgomp/testsuite/libgomp.fortran/omp_workshare2.f
  3e8aa59e7a86d28bacafdfab584f0a22  libgomp/testsuite/libgomp.fortran/on_device_arch.c
! a29a829025700f8dffb0583c3fee9044  libgomp/testsuite/libgomp.fortran/openmp_version-1.f
! 033d117ca3910488d1093a55f274f502  libgomp/testsuite/libgomp.fortran/openmp_version-2.f90
  b12d43efd39917600c23bdbe6e67c348  libgomp/testsuite/libgomp.fortran/optional-bind-c.f90
  57b1c325fdc9d4288e335bb56037d1c3  libgomp/testsuite/libgomp.fortran/optional-map.f90
  c3a66da5face2583306f5e661ecdeaa5  libgomp/testsuite/libgomp.fortran/order-reproducible-1.f90
  f00176bd156a14c71188a3e90d24e3f3  libgomp/testsuite/libgomp.fortran/order-reproducible-2.f90
! dbf0851b5c45f0ea48805ef81ea2f3ce  libgomp/testsuite/libgomp.fortran/parallel-master.f90
  18632f821c4d20cc8ddfb8b182ae7d87  libgomp/testsuite/libgomp.fortran/parloops-exit-first-loop-alt-2.f95
  b018601a4e35da4037b1e04dfdb00b98  libgomp/testsuite/libgomp.fortran/parloops-exit-first-loop-alt.f95
  10f51539240fd456f44686f1368a9ebb  libgomp/testsuite/libgomp.fortran/pointer1.f90
! 43b3675f4eee0ab654fb9ae0fd4ee940  libgomp/testsuite/libgomp.fortran/pointer2.f90
  5a38dd4751898fd9556aa9ed131fad76  libgomp/testsuite/libgomp.fortran/pr100981-2.f90
+ 327296ef9f336f2398d0e4c17fabdbd7  libgomp/testsuite/libgomp.fortran/pr113436-1.f90
+ 44b753e10d2a8e272c6d624bb12125cf  libgomp/testsuite/libgomp.fortran/pr113436-2.f90
+ bd4d373b7453a268a0da695bf8bf8f52  libgomp/testsuite/libgomp.fortran/pr120286.f90
  1e7de6c9f1376e7662fc088ab6ec5e64  libgomp/testsuite/libgomp.fortran/pr25162.f
  150790c35955da1ca1b74284c2553f34  libgomp/testsuite/libgomp.fortran/pr25219.f90
  a83bd562c0d1b609f2a71de244b3a1a0  libgomp/testsuite/libgomp.fortran/pr27395-1.f90
*************** eaeadf99271f326c16618e5bfa7fa387  libgom
*** 128701,128722 ****
  2d364f3055004bfd34a5395bfd835c8c  libgomp/testsuite/libgomp.fortran/pr71734-2.f90
  46dd955872bf1b09c3aa0e2e5a309f83  libgomp/testsuite/libgomp.fortran/pr81304.f90
  f96c2e3c116f85fe16f4a9f158198174  libgomp/testsuite/libgomp.fortran/pr81841.f90
! a446018edae19a61aa6c9d823e6b9bf1  libgomp/testsuite/libgomp.fortran/pr84418-1.f90
! 0a4b33df6b5e6f6d6670ba0af38eee36  libgomp/testsuite/libgomp.fortran/pr84418-2.f90
  c7db4b5dee9ac08d55532ef8375a0a44  libgomp/testsuite/libgomp.fortran/pr88463-1.f90
  10dbdf5281da9c9f304148a51eebb319  libgomp/testsuite/libgomp.fortran/pr88463-2.f90
  ed9fbe24202460ac0d1324b917a21848  libgomp/testsuite/libgomp.fortran/pr90030.f90
  6a708c6e46808f6d4af2fd68ad5aac1a  libgomp/testsuite/libgomp.fortran/pr90779.f90
  525a2158ec6cd5547def75322fa30912  libgomp/testsuite/libgomp.fortran/pr93553.f90
  8b1a074bf6ac8ea5010df757cd5d381f  libgomp/testsuite/libgomp.fortran/pr95654.f90
  1a0d9a55fff1fc09bbe94b9bf7578792  libgomp/testsuite/libgomp.fortran/procptr1.f90
  c1a53ea8789c3861561b7fb5726a9ba2  libgomp/testsuite/libgomp.fortran/recursion1.f90
! b86e035d24babf0c6f9d3607c02b652e  libgomp/testsuite/libgomp.fortran/reduction1.f90
  0fc8244e59d112b68ae655e086e519d7  libgomp/testsuite/libgomp.fortran/reduction2.f90
  39469a84d6cf2502c4634549cae0a913  libgomp/testsuite/libgomp.fortran/reduction3.f90
  5899f176a17d8eba0edb298b174173b3  libgomp/testsuite/libgomp.fortran/reduction4.f90
  6525e29cdea318e59633c8df34a55c9c  libgomp/testsuite/libgomp.fortran/reduction5.f90
! cb3013075cd476e0aa06ce0539ce8956  libgomp/testsuite/libgomp.fortran/reduction6.f90
  304da9196843372885093e5cacce568e  libgomp/testsuite/libgomp.fortran/refcount-1.f90
  ad73f3cdfa6093602117e056e552a92e  libgomp/testsuite/libgomp.fortran/reference1.f90
  50d442710afd759c4aa50c0567fff8cb  libgomp/testsuite/libgomp.fortran/reference2.f90
--- 142154,142176 ----
  2d364f3055004bfd34a5395bfd835c8c  libgomp/testsuite/libgomp.fortran/pr71734-2.f90
  46dd955872bf1b09c3aa0e2e5a309f83  libgomp/testsuite/libgomp.fortran/pr81304.f90
  f96c2e3c116f85fe16f4a9f158198174  libgomp/testsuite/libgomp.fortran/pr81841.f90
! d2cbf4fb22f89c2f664abe91a6477b22  libgomp/testsuite/libgomp.fortran/pr84418-1.f90
! 8cf52dc2100c1e89d16a6b1e5b3d7fe0  libgomp/testsuite/libgomp.fortran/pr84418-2.f90
  c7db4b5dee9ac08d55532ef8375a0a44  libgomp/testsuite/libgomp.fortran/pr88463-1.f90
  10dbdf5281da9c9f304148a51eebb319  libgomp/testsuite/libgomp.fortran/pr88463-2.f90
  ed9fbe24202460ac0d1324b917a21848  libgomp/testsuite/libgomp.fortran/pr90030.f90
  6a708c6e46808f6d4af2fd68ad5aac1a  libgomp/testsuite/libgomp.fortran/pr90779.f90
  525a2158ec6cd5547def75322fa30912  libgomp/testsuite/libgomp.fortran/pr93553.f90
+ 8061d28a5a0523c85e141e295f43c8ef  libgomp/testsuite/libgomp.fortran/pr95551-1.f90
  8b1a074bf6ac8ea5010df757cd5d381f  libgomp/testsuite/libgomp.fortran/pr95654.f90
  1a0d9a55fff1fc09bbe94b9bf7578792  libgomp/testsuite/libgomp.fortran/procptr1.f90
  c1a53ea8789c3861561b7fb5726a9ba2  libgomp/testsuite/libgomp.fortran/recursion1.f90
! fca87be26e41b2bd1f5724c2637e5c3b  libgomp/testsuite/libgomp.fortran/reduction1.f90
  0fc8244e59d112b68ae655e086e519d7  libgomp/testsuite/libgomp.fortran/reduction2.f90
  39469a84d6cf2502c4634549cae0a913  libgomp/testsuite/libgomp.fortran/reduction3.f90
  5899f176a17d8eba0edb298b174173b3  libgomp/testsuite/libgomp.fortran/reduction4.f90
  6525e29cdea318e59633c8df34a55c9c  libgomp/testsuite/libgomp.fortran/reduction5.f90
! 031c8fbc6eea732c045373eb3cf57386  libgomp/testsuite/libgomp.fortran/reduction6.f90
  304da9196843372885093e5cacce568e  libgomp/testsuite/libgomp.fortran/refcount-1.f90
  ad73f3cdfa6093602117e056e552a92e  libgomp/testsuite/libgomp.fortran/reference1.f90
  50d442710afd759c4aa50c0567fff8cb  libgomp/testsuite/libgomp.fortran/reference2.f90
*************** f94173449f0106660c3c83b7da6eb1b2  libgom
*** 128740,128746 ****
  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
--- 142194,142200 ----
  1582a3cbc05a3c7b9ac548941c98cd81  libgomp/testsuite/libgomp.fortran/scan-2.f90
  fbdab6e5a5617405737d6de640e5197a  libgomp/testsuite/libgomp.fortran/scope-1.f90
  d5c0f2d60e8a68a314e661ccc5e4d638  libgomp/testsuite/libgomp.fortran/scope-2.f90
! 7c00379763031d9871323e9d20c3f71e  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
*************** ceccd78cff1834f03868559872713a66  libgom
*** 128759,128767 ****
  d83d2615373561e22bd33085adbc3c8e  libgomp/testsuite/libgomp.fortran/target-11.f90
  d9f909ebb4169aa0d6b851dc1ccdec4b  libgomp/testsuite/libgomp.fortran/target-12.f90
  6088668eebebdee2e363a3d9c13c815f  libgomp/testsuite/libgomp.fortran/target-13.f90
! 063a24dc5c19b2adb2c5fcb0b05a58a4  libgomp/testsuite/libgomp.fortran/target-allocatable-1-1.f90
! 89c53be6c76a8902941180b26848ae9b  libgomp/testsuite/libgomp.fortran/target-allocatable-1-2.f90
  f3e9642d4302feea21de2d2b9f5ca654  libgomp/testsuite/libgomp.fortran/target-enter-data-1.f90
  10cc37e35fda6c7ed2cff8cf2f9f8371  libgomp/testsuite/libgomp.fortran/target-enter-data-2.F90
  4cff677f5db94e4dec7723c368aef31e  libgomp/testsuite/libgomp.fortran/target-enter-data-3.f90
  cad258d1ebb0ddd9dafd8a3cc0fc7c0c  libgomp/testsuite/libgomp.fortran/target-enter-data-4.f90
--- 142213,142224 ----
  d83d2615373561e22bd33085adbc3c8e  libgomp/testsuite/libgomp.fortran/target-11.f90
  d9f909ebb4169aa0d6b851dc1ccdec4b  libgomp/testsuite/libgomp.fortran/target-12.f90
  6088668eebebdee2e363a3d9c13c815f  libgomp/testsuite/libgomp.fortran/target-13.f90
! 7a32d3e70774cae4da3f980bfd8b6374  libgomp/testsuite/libgomp.fortran/target-allocatable-1-1-usm.f90
! 25598a8e991bcadec2d273a9ff0663bd  libgomp/testsuite/libgomp.fortran/target-allocatable-1-1.f90
! d24e84b95b77da1764aaecb7956d1645  libgomp/testsuite/libgomp.fortran/target-allocatable-1-2-usm.f90
! eb0616ef115da195c0cf4ec0be1c818e  libgomp/testsuite/libgomp.fortran/target-allocatable-1-2.f90
  f3e9642d4302feea21de2d2b9f5ca654  libgomp/testsuite/libgomp.fortran/target-enter-data-1.f90
+ 09d9e4b284358385295a01601902d439  libgomp/testsuite/libgomp.fortran/target-enter-data-2-usm.F90
  10cc37e35fda6c7ed2cff8cf2f9f8371  libgomp/testsuite/libgomp.fortran/target-enter-data-2.F90
  4cff677f5db94e4dec7723c368aef31e  libgomp/testsuite/libgomp.fortran/target-enter-data-3.f90
  cad258d1ebb0ddd9dafd8a3cc0fc7c0c  libgomp/testsuite/libgomp.fortran/target-enter-data-4.f90
*************** eeec7e27fda7ab81ff9b8a0cc3565be4  libgom
*** 128769,128775 ****
  abbc97bdf2b7f6b7eb83b0ea35d12ca8  libgomp/testsuite/libgomp.fortran/target-enter-data-6.f90
  6ab97e695942e090864fc83282b49a44  libgomp/testsuite/libgomp.fortran/target-enter-data-7.f90
  d2f9dcb74c3f8c91ce46755504611660  libgomp/testsuite/libgomp.fortran/target-enter-data-8.f90
! 4b32e60df4d9f68e1aefdd38f541c157  libgomp/testsuite/libgomp.fortran/target-firstprivate-1.f90
  1f145e3be28990a374e7117e351fb917  libgomp/testsuite/libgomp.fortran/target-firstprivate-2.f90
  92d67d046a52b255c5a4e9d08fe3f118  libgomp/testsuite/libgomp.fortran/target-firstprivate-3.f90
  6069ee87a3235563ba19c231c5d6c1e5  libgomp/testsuite/libgomp.fortran/target-has-device-addr-1.f90
--- 142226,142232 ----
  abbc97bdf2b7f6b7eb83b0ea35d12ca8  libgomp/testsuite/libgomp.fortran/target-enter-data-6.f90
  6ab97e695942e090864fc83282b49a44  libgomp/testsuite/libgomp.fortran/target-enter-data-7.f90
  d2f9dcb74c3f8c91ce46755504611660  libgomp/testsuite/libgomp.fortran/target-enter-data-8.f90
! d8b9e56f2e45bc15ab1a122ae2e8f357  libgomp/testsuite/libgomp.fortran/target-firstprivate-1.f90
  1f145e3be28990a374e7117e351fb917  libgomp/testsuite/libgomp.fortran/target-firstprivate-2.f90
  92d67d046a52b255c5a4e9d08fe3f118  libgomp/testsuite/libgomp.fortran/target-firstprivate-3.f90
  6069ee87a3235563ba19c231c5d6c1e5  libgomp/testsuite/libgomp.fortran/target-has-device-addr-1.f90
*************** c253434fe103910b87d86dea9746db67  libgom
*** 128784,128790 ****
  679a9ebb5fd93d2af75c7a80f49ca7d6  libgomp/testsuite/libgomp.fortran/target-imperfect4.f90
  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
--- 142241,142247 ----
  679a9ebb5fd93d2af75c7a80f49ca7d6  libgomp/testsuite/libgomp.fortran/target-imperfect4.f90
  49908b2e3663c182a2478e5f28929c6d  libgomp/testsuite/libgomp.fortran/target-in-reduction-1.f90
  c604509b615d707812822a4f9559faca  libgomp/testsuite/libgomp.fortran/target-in-reduction-2.f90
! bf93f552380dcf11254519b53957bd8b  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
*************** fa67086ca331f5c3937170a587173c10  libgom
*** 128796,128807 ****
  2091f2ab8064a010253fb962f417a898  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-1.f90
  548ed09f85e9ea7b135e720c2e102444  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-2.f90
  fa86dfefc4898bd33879aef257ad3fc1  libgomp/testsuite/libgomp.fortran/target-nowait-array-section.f90
! 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
  5ead11a014d23aa66989fb7c241a75a2  libgomp/testsuite/libgomp.fortran/target10.f90
  cd35897c72fe52157d20924875a4168f  libgomp/testsuite/libgomp.fortran/target2.f90
--- 142253,142266 ----
  2091f2ab8064a010253fb962f417a898  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-1.f90
  548ed09f85e9ea7b135e720c2e102444  libgomp/testsuite/libgomp.fortran/target-memcpy-rect-async-2.f90
  fa86dfefc4898bd33879aef257ad3fc1  libgomp/testsuite/libgomp.fortran/target-nowait-array-section.f90
! 90ef283e08cb6285cab3cdd40f8c1d8c  libgomp/testsuite/libgomp.fortran/target-present-1-usm.f90
! 6410f9b245c50048dccccc6080da246b  libgomp/testsuite/libgomp.fortran/target-present-1.f90
! 34c7b7bdcd75ae46cf40de9552b2f2be  libgomp/testsuite/libgomp.fortran/target-present-2-usm.f90
! 674fe5134bad0badcd044d35def4c4cb  libgomp/testsuite/libgomp.fortran/target-present-2.f90
! b07707201a161cc672bc60acd1aec156  libgomp/testsuite/libgomp.fortran/target-present-3-usm.f90
! 25f675dca304722a9f04f20b15c3e46b  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
  1db1fe2cc8dbdf1b311a5f49a4004ed7  libgomp/testsuite/libgomp.fortran/target1.f90
  5ead11a014d23aa66989fb7c241a75a2  libgomp/testsuite/libgomp.fortran/target10.f90
  cd35897c72fe52157d20924875a4168f  libgomp/testsuite/libgomp.fortran/target2.f90
*************** efb13688b8f5b12df4f386ca40cc687d  libgom
*** 128811,128817 ****
  c7cbb1fd57ef2663e3293bb979181399  libgomp/testsuite/libgomp.fortran/target6.f90
  b1889638e28c31a67ab996e01c764b45  libgomp/testsuite/libgomp.fortran/target7.f90
  675782568bedb5bd5daef132e71aac8c  libgomp/testsuite/libgomp.fortran/target8.f90
! dcfe27eb9dec5095293470aaba48e94a  libgomp/testsuite/libgomp.fortran/target9.f90
  6ba906766b927837b669526edc80e1df  libgomp/testsuite/libgomp.fortran/task-7.f90
  9c0790499c6c651f2b06950352cd7d10  libgomp/testsuite/libgomp.fortran/task-8.f90
  93803cea6999dc2ffa26c3d175258645  libgomp/testsuite/libgomp.fortran/task-detach-1.f90
--- 142270,142276 ----
  c7cbb1fd57ef2663e3293bb979181399  libgomp/testsuite/libgomp.fortran/target6.f90
  b1889638e28c31a67ab996e01c764b45  libgomp/testsuite/libgomp.fortran/target7.f90
  675782568bedb5bd5daef132e71aac8c  libgomp/testsuite/libgomp.fortran/target8.f90
! 08de2e5292d902762d6bce9fff056cc4  libgomp/testsuite/libgomp.fortran/target9.f90
  6ba906766b927837b669526edc80e1df  libgomp/testsuite/libgomp.fortran/task-7.f90
  9c0790499c6c651f2b06950352cd7d10  libgomp/testsuite/libgomp.fortran/task-8.f90
  93803cea6999dc2ffa26c3d175258645  libgomp/testsuite/libgomp.fortran/task-detach-1.f90
*************** a9fb7025054b44d715c53f9df0e22afd  libgom
*** 128862,128868 ****
  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
  eb9a9af2826a48d830b935bea9c48e65  libgomp/testsuite/libgomp.fortran/udr12.f90
  55282d5ca931ce290aac95c2928712d9  libgomp/testsuite/libgomp.fortran/udr13.f90
  e68e14540cccf65cbeb790d8dab92592  libgomp/testsuite/libgomp.fortran/udr14.f90
--- 142321,142327 ----
  176b01ed1aa80e482336a70a48b6c440  libgomp/testsuite/libgomp.fortran/tile-unroll-4.f90
  48a661d5fb49e8b4fcf66f025f784531  libgomp/testsuite/libgomp.fortran/udr1.f90
  5c5b279adcf502a31ec5869b8ff020b0  libgomp/testsuite/libgomp.fortran/udr10.f90
! cc8707ea5a55b349099202afd3b8c856  libgomp/testsuite/libgomp.fortran/udr11.f90
  eb9a9af2826a48d830b935bea9c48e65  libgomp/testsuite/libgomp.fortran/udr12.f90
  55282d5ca931ce290aac95c2928712d9  libgomp/testsuite/libgomp.fortran/udr13.f90
  e68e14540cccf65cbeb790d8dab92592  libgomp/testsuite/libgomp.fortran/udr14.f90
*************** ec7578b439097f138537ceda021b5414  libgom
*** 128889,128909 ****
  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
! 0f0739055024a52f6c6062614fefcd20  libgomp/testsuite/libgomp.fortran/use_device_addr-4.f90
! d88ab0fbf766c009a5fcca0379d79fe6  libgomp/testsuite/libgomp.fortran/use_device_addr-5.f90
! 27c3a980a8e94305bd6a957c7ea5dbd8  libgomp/testsuite/libgomp.fortran/use_device_ptr-1.f90
! d58b22d6389008961e84f8a1b3d9a8f9  libgomp/testsuite/libgomp.fortran/use_device_ptr-3.f90
! 421b0a816a39ae625f4e8f4f91b3671d  libgomp/testsuite/libgomp.fortran/use_device_ptr-4.f90
! 5b0545422a5d32741adf1b28e189108a  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90
! 95257bb64bc7b70916e7cf5e4c13ac0a  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-2.f90
! 2b347c1c7f2cbe98905e1b48f453f08c  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-3.f90
  dc1df4b97d0fa5209eb509523fa08bfc  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
  fd6becb20369d6ac5a1bacfc014b31a3  libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90
! 7a20912688877bc0ecca6ebe741d55f3  libgomp/testsuite/libgomp.fortran/uses_allocators_1.f90
! 8187bb38cd9b950a649f25ea20977a3d  libgomp/testsuite/libgomp.fortran/uses_allocators_2.f90
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
  aadd57f9487c4584ba47a1bbdb07af7c  libgomp/testsuite/libgomp.fortran/vla3.f90
--- 142348,142369 ----
  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
! 62079afb43af876e3d7efc5b7c4e4f74  libgomp/testsuite/libgomp.fortran/use_device_addr-1.f90
! c3306a43e196ac3643577db44b758334  libgomp/testsuite/libgomp.fortran/use_device_addr-2.f90
! 7c84891cdf7020576afb81fd4488d97f  libgomp/testsuite/libgomp.fortran/use_device_addr-3.f90
! 2b19fde819db6c2dfbcb007c7ea9a7ff  libgomp/testsuite/libgomp.fortran/use_device_addr-4.f90
! d91b73cecfa40719f59c3f52814cce5a  libgomp/testsuite/libgomp.fortran/use_device_addr-5.f90
! 19e6721dd79e44e68893364cb8201906  libgomp/testsuite/libgomp.fortran/use_device_ptr-1.f90
! 1d1c09904411e4b630f518a066694e34  libgomp/testsuite/libgomp.fortran/use_device_ptr-3.f90
! d55ddb65ae7cd2ad95a7446d45af7eb7  libgomp/testsuite/libgomp.fortran/use_device_ptr-4.f90
! ba23071854d45364a52aa56e0e3316ac  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90
! 5c405d9e23974845c48dc7d2f9caf732  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-2.f90
! 145271a42e3885d82155f89fbb8a1d67  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-3.f90
  dc1df4b97d0fa5209eb509523fa08bfc  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
  fd6becb20369d6ac5a1bacfc014b31a3  libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90
! 5bbc3937b27e07f6c9b7bee48bb532d7  libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90
! ab50f7a0ebcd9518a07453800a1b5d15  libgomp/testsuite/libgomp.fortran/uses_allocators_1.f90
! 112d434e4f93bd46b5f504a2376b9129  libgomp/testsuite/libgomp.fortran/uses_allocators_2.f90
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
  aadd57f9487c4584ba47a1bbdb07af7c  libgomp/testsuite/libgomp.fortran/vla3.f90
*************** dc3b85e4d70a05254d93d5fa4c2d9996  libgom
*** 128915,128921 ****
  b9934c31f9524836ba1a35470a511bb3  libgomp/testsuite/libgomp.fortran/workshare1.f90
  bf94ef977afb5353c18948ce9e602bfa  libgomp/testsuite/libgomp.fortran/workshare2.f90
  5cbe5ce09b7be271cbfc863a87d14ce4  libgomp/testsuite/libgomp.graphite/bounds.c
! e7a61a11b74fb8e2e4d71f7a03078500  libgomp/testsuite/libgomp.graphite/force-parallel-1.c
  79fedad6d75bdc436c74c6ccabd1c317  libgomp/testsuite/libgomp.graphite/force-parallel-2.c
  7a00417999c02913b99a84c786868fd1  libgomp/testsuite/libgomp.graphite/force-parallel-3.c
  15a27db8e574f52b5f617f056c72aa78  libgomp/testsuite/libgomp.graphite/force-parallel-4.c
--- 142375,142381 ----
  b9934c31f9524836ba1a35470a511bb3  libgomp/testsuite/libgomp.fortran/workshare1.f90
  bf94ef977afb5353c18948ce9e602bfa  libgomp/testsuite/libgomp.fortran/workshare2.f90
  5cbe5ce09b7be271cbfc863a87d14ce4  libgomp/testsuite/libgomp.graphite/bounds.c
! 06ccf93d78beba03f87dacb2a3b75f53  libgomp/testsuite/libgomp.graphite/force-parallel-1.c
  79fedad6d75bdc436c74c6ccabd1c317  libgomp/testsuite/libgomp.graphite/force-parallel-2.c
  7a00417999c02913b99a84c786868fd1  libgomp/testsuite/libgomp.graphite/force-parallel-3.c
  15a27db8e574f52b5f617f056c72aa78  libgomp/testsuite/libgomp.graphite/force-parallel-4.c
*************** bc89329871a4063322c6c6a75033c327  libgom
*** 128924,128930 ****
  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
--- 142384,142390 ----
  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
! 02f850be8da8057b5a3c35270d81da85  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
*************** e52bf66ad30053b87fac627a1f4109d6  libgom
*** 128987,128992 ****
--- 142447,142453 ----
  63ff72d59e981e772ed78cb7307de12e  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-1.c
  d36c56b9b161368fbce8efe09449dbf6  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-2.c
  01102bb5cd8ca990a37df199ebd6f6dd  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_map_data-host_already-3.c
+ 252d2b4959ce80ee4e51022d7df7feed  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_memcpy_device-1.c
  5e49a4a09577b3e3af65ed5092bde13c  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c
  05b66fbd6c12c103181fc52d3bf21146  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c
  c20cad710294b1d13c0dc2b1460754f2  libgomp/testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
*************** d0b652b80b3e4d13706f3a30d89ea080  libgom
*** 129006,129012 ****
  42da18fa72387c734c218d031aca73cc  libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c
  cb001e314fc2dbfe743f56e927a54dce  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c
  fbdb79613c9e4039ef079c21db73e11f  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c
! 03002b54364bab48fc94fae621d99c74  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-3.c
  97f62618e6e37c14b2b9ed17c7579fd0  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c
  276fea47eb47f5b846d12e7f4013aaa1  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c
  760e768bc422654e755f3164d717aedf  libgomp/testsuite/libgomp.oacc-c-c++-common/broadcast-1.c
--- 142467,142473 ----
  42da18fa72387c734c218d031aca73cc  libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c
  cb001e314fc2dbfe743f56e927a54dce  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c
  fbdb79613c9e4039ef079c21db73e11f  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c
! 554dd051cff30985bdd58238be312a56  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-3.c
  97f62618e6e37c14b2b9ed17c7579fd0  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c
  276fea47eb47f5b846d12e7f4013aaa1  libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c
  760e768bc422654e755f3164d717aedf  libgomp/testsuite/libgomp.oacc-c-c++-common/broadcast-1.c
*************** c142e6b017d258e84ac7590f6d272afe  libgom
*** 129026,129033 ****
  e86facfc6fa8df609d9a6cd8bda4558b  libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c
  98ea87c8193e01406d01d50c3ec22bcf  libgomp/testsuite/libgomp.oacc-c-c++-common/crash-1.c
  c826235c3b755ef2376b379ef9b17203  libgomp/testsuite/libgomp.oacc-c-c++-common/data-1.c
! 7e1e83302151387dcf74e27731218cf5  libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c
! da21f3624167531fae9d51550d12335d  libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c
  ea745e1c937cf1c8c4d8936cb15be168  libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c
  fb17c028fd87af5b26b4238fa2c2e796  libgomp/testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
  9b6dd5748b288e6ce971d52df9236ac5  libgomp/testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c
--- 142487,142494 ----
  e86facfc6fa8df609d9a6cd8bda4558b  libgomp/testsuite/libgomp.oacc-c-c++-common/context-4.c
  98ea87c8193e01406d01d50c3ec22bcf  libgomp/testsuite/libgomp.oacc-c-c++-common/crash-1.c
  c826235c3b755ef2376b379ef9b17203  libgomp/testsuite/libgomp.oacc-c-c++-common/data-1.c
! 909497d771ed343e6efd85cddf9c4171  libgomp/testsuite/libgomp.oacc-c-c++-common/data-2-lib.c
! c0e311c8e77f43ddf178f6c655ba7173  libgomp/testsuite/libgomp.oacc-c-c++-common/data-2.c
  ea745e1c937cf1c8c4d8936cb15be168  libgomp/testsuite/libgomp.oacc-c-c++-common/data-3.c
  fb17c028fd87af5b26b4238fa2c2e796  libgomp/testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels-ipa-pta.c
  9b6dd5748b288e6ce971d52df9236ac5  libgomp/testsuite/libgomp.oacc-c-c++-common/data-clauses-kernels.c
*************** b65152431e98716cff7279c301daa7ed  libgom
*** 129041,129059 ****
  ebb8f3adc650c08eeaf1e77a9b7084d4  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c
  22918a096aad8e89d005adba57f4568d  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c
  7ff9dec9f3762d946f2001619610dfc2  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-vla.c
! 87e0504dda48475fd0f053b8ce73c933  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
  4fa07035c293b9ed9e4dc0c2e01511da  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-10.c
  0b25a866f5d087c91925337a99617ee2  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-11.c
  54a6fa54d0ae478acf5f8fdc6fc64ff9  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-14.c
  447a90dbee57bb28bd50565c32983aa4  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-15.c
! 46b34b68c1cf393ceaf5eaa0c55f1b66  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
  9c7e1e3debd75360f4656123dcc91d5a  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-2.c
! 75bed8cf1fc38f3bf473a64c15d806c2  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
! 2cd98ca3b7863b36c45dee4a3287e219  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
! 4c84a4caca56ab47db99abcfca3e5edc  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
! 25253ba221aa9b84a2e96a62dad50d32  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
! 4aabddd036776023f9c2c3d6ed05828d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
! 75acd03ecf723aeb4d9d43339562acba  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
  d4b69294a211a96b70ae02bd130cfd8d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c
  35633f4e282f736fd241f078bea8466f  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-arrayofstruct.c
  86912a4f5e145ea29f7c45d935bec143  libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
--- 142502,142520 ----
  ebb8f3adc650c08eeaf1e77a9b7084d4  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-4.c
  22918a096aad8e89d005adba57f4568d  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-5.c
  7ff9dec9f3762d946f2001619610dfc2  libgomp/testsuite/libgomp.oacc-c-c++-common/declare-vla.c
! 441285383e1dc8a766b539c26e61e6d8  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-1.c
  4fa07035c293b9ed9e4dc0c2e01511da  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-10.c
  0b25a866f5d087c91925337a99617ee2  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-11.c
  54a6fa54d0ae478acf5f8fdc6fc64ff9  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-14.c
  447a90dbee57bb28bd50565c32983aa4  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-15.c
! 0cf92afe92734e8eb204f80c8c2155c6  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c
  9c7e1e3debd75360f4656123dcc91d5a  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-2.c
! 636b484acae29c328cf3b7ca29218f9d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-3.c
! 063e445e7db397100d2bf55deb836083  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-4.c
! c7b39230572b710c257bf707eefd95c8  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-5.c
! 29cd6e0fd7b69d58d111259dc520aa19  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-6.c
! f0733632bdcc6c31b4753db94ac0b2a2  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-7.c
! 292abdea961957a60e1ad3b7e1a70b05  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-8.c
  d4b69294a211a96b70ae02bd130cfd8d  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-9.c
  35633f4e282f736fd241f078bea8466f  libgomp/testsuite/libgomp.oacc-c-c++-common/deep-copy-arrayofstruct.c
  86912a4f5e145ea29f7c45d935bec143  libgomp/testsuite/libgomp.oacc-c-c++-common/default-1.c
*************** cbdcc7dbb1bbfcb008b972db87d6a771  libgom
*** 129386,129395 ****
--- 142847,142859 ----
  1345bcecbe8a5d7df637734f5b43c172  libgomp/testsuite/libgomp.oacc-c/vec.c
  f71531081e68cf72f20e97fa5e84200c  libgomp/testsuite/libgomp.oacc-fortran/abort-1.f90
  c9683c99e94f6e35b6a3266a17594788  libgomp/testsuite/libgomp.oacc-fortran/abort-2.f90
+ b0370b04d6ebb65d934671e44e22129c  libgomp/testsuite/libgomp.oacc-fortran/acc-attach-detach-1.f90
+ bfb5f0855e743de8ab2288f092309e26  libgomp/testsuite/libgomp.oacc-fortran/acc-attach-detach-2.f90
  1045333a95e7f4dd53b3abb3190cc0c3  libgomp/testsuite/libgomp.oacc-fortran/acc-memcpy-2.f90
  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
+ 2ed6b5eda8ab9729c2ce12d504e856b9  libgomp/testsuite/libgomp.oacc-fortran/acc_memcpy_device-1.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
*************** ad0f604b81bd68d2854d88260581b24f  libgom
*** 129507,129513 ****
  aeaad5052b0b55075519fae4a77d2275  libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90
  463b3f99768cf4a6b78111b273b6de56  libgomp/testsuite/libgomp.oacc-fortran/lib-10.f90
  2cb8539f9bc2791e35d9e5ba01f9b560  libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90
! 2c9dbfa953fb74a2be2be0f010fa0739  libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90
  ed57da4a84299d79c753f649f89caed7  libgomp/testsuite/libgomp.oacc-fortran/lib-14.f90
  91240e943d4c6ac011ae7a5b374f72ef  libgomp/testsuite/libgomp.oacc-fortran/lib-15.f90
  25a129e874b4748b2a86c6b553e0b334  libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90
--- 142971,142977 ----
  aeaad5052b0b55075519fae4a77d2275  libgomp/testsuite/libgomp.oacc-fortran/lib-1.f90
  463b3f99768cf4a6b78111b273b6de56  libgomp/testsuite/libgomp.oacc-fortran/lib-10.f90
  2cb8539f9bc2791e35d9e5ba01f9b560  libgomp/testsuite/libgomp.oacc-fortran/lib-12.f90
! bd5b8f0bd81fc6db1c794af4055c7406  libgomp/testsuite/libgomp.oacc-fortran/lib-13.f90
  ed57da4a84299d79c753f649f89caed7  libgomp/testsuite/libgomp.oacc-fortran/lib-14.f90
  91240e943d4c6ac011ae7a5b374f72ef  libgomp/testsuite/libgomp.oacc-fortran/lib-15.f90
  25a129e874b4748b2a86c6b553e0b334  libgomp/testsuite/libgomp.oacc-fortran/lib-16-2.f90
*************** ae34a0a33c324e692b2da2ef2923edb3  libgom
*** 129573,129579 ****
--- 143037,143045 ----
  1e7d8ccfbe23d4e6f68bae40bce019fe  libgomp/testsuite/libgomp.oacc-fortran/pr84028.f90
  8175cec1f19b14dba021a884c3d90e52  libgomp/testsuite/libgomp.oacc-fortran/pr84955.f90
  23f7ae65627ecb7962557bae27fe0f81  libgomp/testsuite/libgomp.oacc-fortran/pr90030.f90
+ dcad51ef517f82a0e1efb6ee274b6304  libgomp/testsuite/libgomp.oacc-fortran/pr92970-1.f90
  ab1bef1451508c50b6d75e5790e61c2e  libgomp/testsuite/libgomp.oacc-fortran/pr94358-1.f90
+ 8d4bd1f48ba216d97690e67548756891  libgomp/testsuite/libgomp.oacc-fortran/pr95551-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
*************** e8a3245c095430c8ef2413afe2ee4c48  libgom
*** 129614,129636 ****
  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
! 492ac4f275708fcea2b2188532ccdf46  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
--- 143080,143102 ----
  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
! 21ae8b0fcbc378578f1ab4fff5a03e13  libgomp/work.c
! 48d57463f7294267d34bdad26e773d23  libgrust/ChangeLog
  e61ce18b1a86e6764b3436d0638ec4d2  libgrust/Makefile.am
! 4d65d186378f0d15c49ae12508c6f970  libgrust/Makefile.in
! 721420f55c97c79b3d7ecacfc67a0714  libgrust/aclocal.m4
! ca21de5d193aaec73b079d98ab82b5c5  libgrust/configure
  6e88162c13e29e24bf10ce9dcf460234  libgrust/configure.ac
  d4c7febd30951f7fbd584476dbb2dd70  libgrust/libformat_parser/.cargo/config.toml
  2fa265f924108a04b2f2c90b0a4354e0  libgrust/libformat_parser/Cargo.lock
  8cec9880de601ee65e80046d74137ca6  libgrust/libformat_parser/Cargo.toml
  28795ddc18c70a5df3f4c938c53759f3  libgrust/libformat_parser/Makefile.am
! df6c1263ab2db14a637312fc1391843e  libgrust/libformat_parser/Makefile.in
  d41d8cd98f00b204e9800998ecf8427e  libgrust/libformat_parser/cbindgen.toml
  d46e74a82de14dbc715373e35f96f887  libgrust/libformat_parser/generic_format_parser/Cargo.toml
  4e430c3e81671de7622b56885413e152  libgrust/libformat_parser/generic_format_parser/src/lib.rs
  5b8c4f2c68e7e368ebf5dfe691f123cc  libgrust/libformat_parser/src/bin.rs
! 8e702412da53963585d8f7bc36ea7267  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
*************** e6c34a64638f7fd2e1239377a116d8ed  libgru
*** 129886,129940 ****
  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
! 9f2661ccae7557bd8cbd046f31bcaf03  libgrust/libproc_macro/bridge/ident.rs
! 61422618c6e021aa8909f75ce98a53af  libgrust/libproc_macro/bridge/literal.rs
! 6da4919427c06170175dc901794e7192  libgrust/libproc_macro/bridge/punct.rs
! 73ec1185e600eb77f035cad18fd55b58  libgrust/libproc_macro/bridge/span.rs
! 208b1a4b872823b94460456321ea85f3  libgrust/libproc_macro/bridge/token_stream.rs
! 8b883341a0599d28cc3455a99950d0b9  libgrust/libproc_macro/group.rs
! 10304034898cfbbde7be3e57162681a1  libgrust/libproc_macro/ident.rs
! 4e7334e7235db9987c610cc325585132  libgrust/libproc_macro/lib.rs
! d5b9a207fdefc3e754f84b3cf037f07c  libgrust/libproc_macro/literal.rs
! fbb8cff14e00f383bb95e7d9f2f71ab2  libgrust/libproc_macro/punct.rs
! a85db29c02a50c5bbcb488cd0c0e158d  libgrust/libproc_macro/span.rs
! e8e9e09fb8c492e89bece7a03c1cc174  libgrust/libproc_macro/token_stream.rs
  03f3ce72cfe395ae342a58df2c9c3776  libgrust/libproc_macro_internal/Makefile.am
! a26f7470639f9b790e0a7d65e9b034e9  libgrust/libproc_macro_internal/Makefile.in
! dcc40e0fb277ebcfd4af1ac479ac47a6  libgrust/libproc_macro_internal/bridge.h
! 483dca7c6b78d72286cc5c9a2f5d2332  libgrust/libproc_macro_internal/ffistring.cc
! 8f8b5fda55344b7121f30a1445b6bc6c  libgrust/libproc_macro_internal/ffistring.h
! 49b1c84743174f8a3911a06c6371acf3  libgrust/libproc_macro_internal/group.cc
! 5d63f55f3bf328bdcce4b751680847e3  libgrust/libproc_macro_internal/group.h
! b64681404eb9bc3236d293169257151d  libgrust/libproc_macro_internal/ident.cc
! d4103534c444d749d1ecd3d406d7e5f7  libgrust/libproc_macro_internal/ident.h
! 13b0179dcfd218c8424a0fb3ace021a6  libgrust/libproc_macro_internal/literal.cc
! 0a76b8d74c36e6a55acd51fd2d46809d  libgrust/libproc_macro_internal/literal.h
! 31ae71099334eebf7e75327cf83a97d9  libgrust/libproc_macro_internal/proc_macro.cc
! 0a59a7bf6d1e481a1173737382d47345  libgrust/libproc_macro_internal/proc_macro.h
! 9d23b821e4ab7bb8a0b208f833b0fa5d  libgrust/libproc_macro_internal/punct.cc
! e0bc0d8477e0603a2c80a967992194c2  libgrust/libproc_macro_internal/punct.h
! c49b63cdc24879aa018ce1b5c7c61a0f  libgrust/libproc_macro_internal/registration.h
! 3e88f86781bd732ef63b970894b9d229  libgrust/libproc_macro_internal/span.cc
! c446d3459d2c18f8c3b7e9523a64042e  libgrust/libproc_macro_internal/span.h
! 7caf107c8a275a1043e15fc1f8b3b444  libgrust/libproc_macro_internal/tokenstream.cc
! d310c3612a920f243d62620f007dec94  libgrust/libproc_macro_internal/tokenstream.h
! 7c20b6718d183fdde5dfb2d8af4aec23  libgrust/libproc_macro_internal/tokentree.cc
! 4d27195db5805ea05b982a2971711c94  libgrust/libproc_macro_internal/tokentree.h
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 52338dddd1262aa912d85964fff55388  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
--- 143352,143851 ----
  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
! c0b7f50326b1c98f626b973777c72108  libgrust/libproc_macro/bridge.rs
! 6b68b2178fb1987b0f82861f5a99f877  libgrust/libproc_macro/bridge/ffistring.rs
! 08fe87800b84918bdbf51d7e306d5365  libgrust/libproc_macro/bridge/group.rs
! 1b86883bcf6f945aaf3274a65d95bef4  libgrust/libproc_macro/bridge/ident.rs
! 7541efe2e17981dc3980303feb9e09e0  libgrust/libproc_macro/bridge/literal.rs
! 0d6af050b0f9278be9e7e5ccd0d431e8  libgrust/libproc_macro/bridge/punct.rs
! 13b17717b5927cea5abdb0e333e8a144  libgrust/libproc_macro/bridge/span.rs
! d53562afe1b9dc40f59be9c9b624cb9e  libgrust/libproc_macro/bridge/token_stream.rs
! f623ee335862ec5417b3c1ec72991999  libgrust/libproc_macro/group.rs
! 33b3ec13fde8d152d362fe08f56c5d16  libgrust/libproc_macro/ident.rs
! 9bab9f72fc887afb9d67014ce5407d58  libgrust/libproc_macro/lib.rs
! 9927c6cc8f2812df3f41658c85356fea  libgrust/libproc_macro/literal.rs
! 7b3b06a4b51e325c3a54a16ea9cb9b67  libgrust/libproc_macro/punct.rs
! 3b5a2df71196a7ea0aeaa950d4e938c4  libgrust/libproc_macro/span.rs
! ba723d1e1c96e04441ab4e0033bf561f  libgrust/libproc_macro/token_stream.rs
  03f3ce72cfe395ae342a58df2c9c3776  libgrust/libproc_macro_internal/Makefile.am
! d984e8f54d6ba653ab6f71d2723b2cb8  libgrust/libproc_macro_internal/Makefile.in
! 27423f956d315b84591723d6eb66f0af  libgrust/libproc_macro_internal/bridge.h
! 14094ee4783117ebd4dd683a5db59c99  libgrust/libproc_macro_internal/ffistring.cc
! d4c4e83e535134ddfdc14b72f9da4cdb  libgrust/libproc_macro_internal/ffistring.h
! 3189e831a0d865338545eb7f82ff7ba1  libgrust/libproc_macro_internal/group.cc
! 676ea0033d6c0475327b4b0abb736c16  libgrust/libproc_macro_internal/group.h
! 96761e9243e526c6adf3ad436b147c44  libgrust/libproc_macro_internal/ident.cc
! d2170fd0d5a374a7ba1040638bd39978  libgrust/libproc_macro_internal/ident.h
! c2a1d06ed66b5ec637e156767a2fae0e  libgrust/libproc_macro_internal/literal.cc
! 51642500ab07f9cf990f3d172cf170f7  libgrust/libproc_macro_internal/literal.h
! 88e8c10e8888bf46f03ab791ebc53909  libgrust/libproc_macro_internal/proc_macro.cc
! ab0b4845a1f0e0f9f0d6a3b436abbd97  libgrust/libproc_macro_internal/proc_macro.h
! fd9b71397e57eeaf1a5e263a232a6109  libgrust/libproc_macro_internal/punct.cc
! a5989a5934641d47d275d0c5fc481022  libgrust/libproc_macro_internal/punct.h
! 012e88c072dde0dec76e5be8513df557  libgrust/libproc_macro_internal/registration.h
! 8c2cf312437e851287a8a02b09167e66  libgrust/libproc_macro_internal/span.cc
! 09d2b9410c9ae96bbc456864731ff85b  libgrust/libproc_macro_internal/span.h
! 2f9e108f35f8230e7e713984446f9caa  libgrust/libproc_macro_internal/tokenstream.cc
! e015980549ea9156bde305de6c3ad031  libgrust/libproc_macro_internal/tokenstream.h
! 660ad679fb4000c6b1aca90b5c88d78c  libgrust/libproc_macro_internal/tokentree.cc
! 720646dcd7922fa8951557a65846999f  libgrust/libproc_macro_internal/tokentree.h
! 22a53954e4e0ec258dfce4391e905dac  libgrust/rustc-lib/LICENSE-APACHE
! b377b220f43d747efdec40d69fcaa69d  libgrust/rustc-lib/LICENSE-MIT
! ff613b023fb29e5882e0d88acddaae7d  libgrust/rustc-lib/core/Cargo.toml
! e3c178b58c85a74db5d3f5cd5b5e44bf  libgrust/rustc-lib/core/benches/any.rs
! 0a268c711c4dc4d970f6e66974807416  libgrust/rustc-lib/core/benches/ascii.rs
! c057fb481a15854538c25c77a4339179  libgrust/rustc-lib/core/benches/ascii/is_ascii.rs
! c7674a643af6c62183b5d673b179263d  libgrust/rustc-lib/core/benches/char/methods.rs
! 0e93470a2c6386cfc7d97cc82ca7c9bf  libgrust/rustc-lib/core/benches/char/mod.rs
! 6f28ef7e24d9a2a68ae6b99816b0700e  libgrust/rustc-lib/core/benches/fmt.rs
! 314a5bba8baf056cb77c90a8fe0cc2c2  libgrust/rustc-lib/core/benches/hash/mod.rs
! 43190d834201c04ac5dccdf60fc8bf7b  libgrust/rustc-lib/core/benches/hash/sip.rs
! 12985f329acc9bc46ca81814fe4491d5  libgrust/rustc-lib/core/benches/iter.rs
! 363f5b7a9845f76b2222b849ef8dae78  libgrust/rustc-lib/core/benches/lib.rs
! 996482e19f6df9edec3322a58483a302  libgrust/rustc-lib/core/benches/num/dec2flt/mod.rs
! 054071c399f7b1f3fc1c5701885c66d1  libgrust/rustc-lib/core/benches/num/flt2dec/mod.rs
! 5e5893f18c55ae40760ccf94b35212ab  libgrust/rustc-lib/core/benches/num/flt2dec/strategy/dragon.rs
! b341f4a1a184a6204d0d9f64c77c531c  libgrust/rustc-lib/core/benches/num/flt2dec/strategy/grisu.rs
! 8f61b869f068d554d8e46f29f372d9e7  libgrust/rustc-lib/core/benches/num/mod.rs
! bd8eac8cfb50829c815769345489ef8d  libgrust/rustc-lib/core/benches/ops.rs
! f72b62322d90486d6790bf2b4777a70a  libgrust/rustc-lib/core/benches/pattern.rs
! 26d358f572253719a1a16b70ff39d882  libgrust/rustc-lib/core/benches/slice.rs
! 4292b1ff731089b946266dca13260fd6  libgrust/rustc-lib/core/src/alloc/global.rs
! f5bc2189674425151d27a3ecbf1cdd35  libgrust/rustc-lib/core/src/alloc/layout.rs
! 8fb299c8da0b704b24f9180bb93c1549  libgrust/rustc-lib/core/src/alloc/mod.rs
! 849af563b7f3603eebd06e04fc6d82a4  libgrust/rustc-lib/core/src/any.rs
! 8ad1f3de019faa1b63e0199b5ff66b78  libgrust/rustc-lib/core/src/array/iter.rs
! a6d681b12ab40a9a542ba78f54fbb5ac  libgrust/rustc-lib/core/src/array/mod.rs
! 831209d6d3874dbd7f1b524390084178  libgrust/rustc-lib/core/src/ascii.rs
! 208b8ad6ea5f8d7aac03af8e863579b0  libgrust/rustc-lib/core/src/bool.rs
! 0f344b91650a735041dbc20ade2e0f72  libgrust/rustc-lib/core/src/borrow.rs
! 6c1b694a0ba87821867ec0babfb2f7eb  libgrust/rustc-lib/core/src/cell.rs
! 970263ff2bea26ee57ae2ba631143a91  libgrust/rustc-lib/core/src/char/convert.rs
! f6a482b1453975be5baf913dfe3bed71  libgrust/rustc-lib/core/src/char/decode.rs
! 503a6e5ed48e3328b7574ebf203364f9  libgrust/rustc-lib/core/src/char/methods.rs
! ff783edb157b66761beccb74c95c189d  libgrust/rustc-lib/core/src/char/mod.rs
! ac8d71a1ea6619659fbd99e3ca3df933  libgrust/rustc-lib/core/src/clone.rs
! 57bd45807ecbb6290b513bf3d34ba7f1  libgrust/rustc-lib/core/src/cmp.rs
! 169b8674df1758bab7bd822a53d5b187  libgrust/rustc-lib/core/src/convert/mod.rs
! 0701f2b47fedbb1a64d3b77cc6155832  libgrust/rustc-lib/core/src/convert/num.rs
! f72b3a4969d3998cf7732f2a4a518abd  libgrust/rustc-lib/core/src/default.rs
! 14087c3d44f3354550c3c8ce63623fab  libgrust/rustc-lib/core/src/ffi.rs
! 4c37f9e2af02de65dbf37c9014c2fba8  libgrust/rustc-lib/core/src/fmt/builders.rs
! 4e9fba9db4a3bd1ba91bd856966493b4  libgrust/rustc-lib/core/src/fmt/float.rs
! 8383a2f1b977481a5e40ad3226309813  libgrust/rustc-lib/core/src/fmt/mod.rs
! 7951d16ca52785c539c4c2c829418c58  libgrust/rustc-lib/core/src/fmt/num.rs
! 303d571f6ce6dcdb32ba01f797e1523c  libgrust/rustc-lib/core/src/fmt/rt/v1.rs
! 346dfc03c1743e09bc5003da9b92d8cd  libgrust/rustc-lib/core/src/future/future.rs
! e51f6a39dacd2a5dbe97885065898906  libgrust/rustc-lib/core/src/future/into_future.rs
! f4323d9b964dd60ed2b0a50fcd11d962  libgrust/rustc-lib/core/src/future/mod.rs
! 7ea315c4fba1f9be19b28d4809124f7f  libgrust/rustc-lib/core/src/future/pending.rs
! 4f19cce0065887edb225662001b2f9d6  libgrust/rustc-lib/core/src/future/poll_fn.rs
! bd0e152c29af8b248a1f6ed8866ae487  libgrust/rustc-lib/core/src/future/ready.rs
! ab50f9c92193125c5609724d261c1ebb  libgrust/rustc-lib/core/src/hash/mod.rs
! d12c185bb78dc2f1add0137fa4e0f1bf  libgrust/rustc-lib/core/src/hash/sip.rs
! 7d98876a74ab56d91ea54c537ec9a84f  libgrust/rustc-lib/core/src/hint.rs
! 19e7cd64f36dfce31ae7708aef53e184  libgrust/rustc-lib/core/src/internal_macros.rs
! b53a02ce6b8b693f340d3cc526067597  libgrust/rustc-lib/core/src/intrinsics.rs
! 93dbab8d03ecf492e107f1e1bf2695a0  libgrust/rustc-lib/core/src/iter/adapters/chain.rs
! 201d6ba373ea72762192c0c7fb9f7820  libgrust/rustc-lib/core/src/iter/adapters/flatten.rs
! c6035f3dd2c7e912ca32a5439df3f19c  libgrust/rustc-lib/core/src/iter/adapters/fuse.rs
! 3e35e1b0d819c267b5b719cf88efe169  libgrust/rustc-lib/core/src/iter/adapters/mod.rs
! d6b2b707ceac682117643bbfc15b79c0  libgrust/rustc-lib/core/src/iter/adapters/zip.rs
! eaf326a2621a0c3c16eb2393c04fbeac  libgrust/rustc-lib/core/src/iter/mod.rs
! 9483e436ab6c8b11f7d613e75292a323  libgrust/rustc-lib/core/src/iter/range.rs
! d4fca886810dc4822d2854a98025124c  libgrust/rustc-lib/core/src/iter/sources.rs
! 8d6d3359cea4f565271413105db5b30c  libgrust/rustc-lib/core/src/iter/traits/accum.rs
! 3854390627f76d1db63c99cc13806055  libgrust/rustc-lib/core/src/iter/traits/collect.rs
! d6fbcd0359acd52b16a35add52a47006  libgrust/rustc-lib/core/src/iter/traits/double_ended.rs
! d52370cc7fd0c784854969d8751faabe  libgrust/rustc-lib/core/src/iter/traits/exact_size.rs
! 2246b2ab1d200c5d629e18f1378650cb  libgrust/rustc-lib/core/src/iter/traits/iterator.rs
! 391a8f3a9745289e1fdf665b63f983a0  libgrust/rustc-lib/core/src/iter/traits/marker.rs
! e082de025de2135d416b07032a3b755a  libgrust/rustc-lib/core/src/iter/traits/mod.rs
! 26673cd69b214763fc247e4c85d0deb7  libgrust/rustc-lib/core/src/lazy.rs
! b8cf382a69ec7375d3efdf59b0a39054  libgrust/rustc-lib/core/src/lib.rs
! ead8e07287cc34a89a7b9431b09054f8  libgrust/rustc-lib/core/src/macros/mod.rs
! 94d9d105c25bc240b06ef3227f0b4ade  libgrust/rustc-lib/core/src/macros/panic.md
! cba66d1e738accce8ce177e2b6d5c5ea  libgrust/rustc-lib/core/src/marker.rs
! 1ebb77b55900bbb941b074f7b36dbdc1  libgrust/rustc-lib/core/src/mem/manually_drop.rs
! 300aed6867bd15c76b87b5d536a83ced  libgrust/rustc-lib/core/src/mem/maybe_uninit.rs
! dbfa04d8c7d483c7e53a23f06e2071ce  libgrust/rustc-lib/core/src/mem/mod.rs
! 6aef62b62597a3dd8821967cb65e0d3c  libgrust/rustc-lib/core/src/num/bignum.rs
! b2fb043b45e7637488258d0ef038d0ab  libgrust/rustc-lib/core/src/num/dec2flt/algorithm.rs
! f674ae35097b59670de51a699e6ddbc2  libgrust/rustc-lib/core/src/num/dec2flt/mod.rs
! e9951816bd5e318fdda54ee1f98fb7f0  libgrust/rustc-lib/core/src/num/dec2flt/num.rs
! df301976a00844eadda9f5d01a9004e6  libgrust/rustc-lib/core/src/num/dec2flt/parse.rs
! fdc791badb46181f6d29b248a274a82f  libgrust/rustc-lib/core/src/num/dec2flt/rawfp.rs
! 1f16823da1a50cc2ff00305f9c3c863b  libgrust/rustc-lib/core/src/num/dec2flt/table.rs
! 425d3bccd4dfad60dde1aebe9a98aa84  libgrust/rustc-lib/core/src/num/diy_float.rs
! e1f128b5d14293546222f03c5fcf2653  libgrust/rustc-lib/core/src/num/error.rs
! 598d5d85534872b661e0093754adff05  libgrust/rustc-lib/core/src/num/f32.rs
! 4e66f15b390b7e20a75e8fa818ee293e  libgrust/rustc-lib/core/src/num/f64.rs
! df8b34c92d873ea4b81b503686098f26  libgrust/rustc-lib/core/src/num/flt2dec/decoder.rs
! e878d63299bfe95fcfdd6ab394eb43f6  libgrust/rustc-lib/core/src/num/flt2dec/estimator.rs
! 18041332405d9b84492c3b8436aa4395  libgrust/rustc-lib/core/src/num/flt2dec/mod.rs
! 18c590832852d6fb217dfaf031f5b74a  libgrust/rustc-lib/core/src/num/flt2dec/strategy/dragon.rs
! 6463c37aebce099dc1167b4ef21c0f40  libgrust/rustc-lib/core/src/num/flt2dec/strategy/grisu.rs
! 16cd40b4992086a36b6c14d5b93b4af5  libgrust/rustc-lib/core/src/num/int_macros.rs
! bd1e954a4be48e4671ea8f8addd5bba8  libgrust/rustc-lib/core/src/num/mod.rs
! 9690ee935df7aa81854618b290294215  libgrust/rustc-lib/core/src/num/nonzero.rs
! 84788aca098df425d6cd3d74efebae3d  libgrust/rustc-lib/core/src/num/shells/i128.rs
! 3acaf9965b6241c5f1c070146acccc43  libgrust/rustc-lib/core/src/num/shells/i16.rs
! adc247d512b397780353e87de798884e  libgrust/rustc-lib/core/src/num/shells/i32.rs
! 613305699a5821ecaddfb6aaaf35a7b1  libgrust/rustc-lib/core/src/num/shells/i64.rs
! 62aed5642e936fd6c9115ade3f18a77e  libgrust/rustc-lib/core/src/num/shells/i8.rs
! e1b1746124aa3fc41308a7a20d0f6864  libgrust/rustc-lib/core/src/num/shells/int_macros.rs
! 011dc5fdb61968558f87091053287a31  libgrust/rustc-lib/core/src/num/shells/isize.rs
! b60aafa25c7627cdaa6711bec68513fa  libgrust/rustc-lib/core/src/num/shells/u128.rs
! 2fbe7a3a955fac19971981eeb4f331da  libgrust/rustc-lib/core/src/num/shells/u16.rs
! d0e585062b7637889a8662750e114975  libgrust/rustc-lib/core/src/num/shells/u32.rs
! 9b971d81eeb79b17a2e2c1c1cc16b134  libgrust/rustc-lib/core/src/num/shells/u64.rs
! f24189b40970f5a1e2dde55e18c91356  libgrust/rustc-lib/core/src/num/shells/u8.rs
! 59e9fff76644c198e2e83ed8c8ff7b1b  libgrust/rustc-lib/core/src/num/shells/usize.rs
! 4ae28f9a1e4cd0bf998b529f229e6973  libgrust/rustc-lib/core/src/num/uint_macros.rs
! 7360aa5b88aeba5e01151d9194a35faa  libgrust/rustc-lib/core/src/num/wrapping.rs
! 06ad3b24a5552b7324fc4580f3116982  libgrust/rustc-lib/core/src/ops/arith.rs
! e6ff7c7d630b4dee0a8f3cdb86b7cf4d  libgrust/rustc-lib/core/src/ops/bit.rs
! c098a509eb62def5923eafbfc8d5a5ee  libgrust/rustc-lib/core/src/ops/control_flow.rs
! 412f18312e796f991f0807727b132401  libgrust/rustc-lib/core/src/ops/deref.rs
! 47074dbcd293130c908bbbd1bf081499  libgrust/rustc-lib/core/src/ops/drop.rs
! e7b2206724943b8a8140f7c1065997a3  libgrust/rustc-lib/core/src/ops/function.rs
! f341a7fcaca03efcc0140473f726918d  libgrust/rustc-lib/core/src/ops/generator.rs
! cb222b9879d34c13c2afafc5fad5eebb  libgrust/rustc-lib/core/src/ops/index.rs
! 17b08cbd7c6a5bc58ba94ed5a622dbed  libgrust/rustc-lib/core/src/ops/mod.rs
! ae54f124f7c7d75598c374f58c7d96b6  libgrust/rustc-lib/core/src/ops/range.rs
! 8ea26b19fa3b0379436999a7ee04da88  libgrust/rustc-lib/core/src/ops/try.rs
! 280a6cc8db548a73002d5672ad8e08a9  libgrust/rustc-lib/core/src/ops/unsize.rs
! 7127e19d96b7d0abbf43e911a446d373  libgrust/rustc-lib/core/src/option.rs
! e93ac26f37637cb6f5cbb00cf20629a8  libgrust/rustc-lib/core/src/panic.rs
! d805035fae4ee56fe348cc2945235915  libgrust/rustc-lib/core/src/panicking.rs
! 6d0fb4387975e0dcee486d04d909f772  libgrust/rustc-lib/core/src/pin.rs
! ed414d64f06310640a08d4569cde4e04  libgrust/rustc-lib/core/src/prelude/mod.rs
! 488e111a892fae3be4185b12d9800de3  libgrust/rustc-lib/core/src/prelude/v1.rs
! ecd3208162cfda9b6e107768a2356c04  libgrust/rustc-lib/core/src/primitive.rs
! 51dc75f7789168a1bcd46f16dcedd354  libgrust/rustc-lib/core/src/ptr/const_ptr.rs
! bf70e18d158273dc8de1d85e0ec8a93c  libgrust/rustc-lib/core/src/ptr/mod.rs
! dda9ae18bb6549b620716f0659a0f2af  libgrust/rustc-lib/core/src/ptr/mut_ptr.rs
! 6f668d2b15cd51a533d11eee138a93b9  libgrust/rustc-lib/core/src/ptr/non_null.rs
! a83acd9c3d0e6cc1331d6a0f78f4f2e9  libgrust/rustc-lib/core/src/ptr/unique.rs
! acdf832b9a2e066b668a962ef3e53c27  libgrust/rustc-lib/core/src/raw.rs
! bd3620ada0bcd222363f4d29ed22ad0c  libgrust/rustc-lib/core/src/result.rs
! 444c14e8ed1573a963cd0f440538c9fb  libgrust/rustc-lib/core/src/slice/ascii.rs
! fe0ecbce493b6bf143b008ca63972f34  libgrust/rustc-lib/core/src/slice/cmp.rs
! 05d32fa54efed7351250bd83b0024732  libgrust/rustc-lib/core/src/slice/index.rs
! 098ecf4640e22848d7a2a781fc081fd0  libgrust/rustc-lib/core/src/slice/iter.rs
! 266ebb44ab377576d1a98b8489d2e376  libgrust/rustc-lib/core/src/slice/iter/macros.rs
! 4ab7bdbb159299735fa28454d25dbd33  libgrust/rustc-lib/core/src/slice/memchr.rs
! b8358067513c2480eba93643db4e5200  libgrust/rustc-lib/core/src/slice/mod.rs
! d0e9b17e0227fbf23a77d5fac39af89d  libgrust/rustc-lib/core/src/slice/raw.rs
! 81b52a6354fe06603ad811f81dbbceeb  libgrust/rustc-lib/core/src/slice/rotate.rs
! 0a8860fd8db39cc2725272c4b16fcbdd  libgrust/rustc-lib/core/src/slice/sort.rs
! f82be904785ecfb1a0d2d1c924e850f2  libgrust/rustc-lib/core/src/str/converts.rs
! f800ca81e4cf864086f15bce676422b6  libgrust/rustc-lib/core/src/str/error.rs
! e93a79f926bd9b9db8ede1568d080add  libgrust/rustc-lib/core/src/str/iter.rs
! ca6f121ffd72adaee44536f1646fd38e  libgrust/rustc-lib/core/src/str/lossy.rs
! 34cfeda1b67ab45b9fdf81a5abeae482  libgrust/rustc-lib/core/src/str/mod.rs
! 77c5fdacb174bd1fc03ea319385dc2f2  libgrust/rustc-lib/core/src/str/pattern.rs
! 3b697248333519e13151d770feb6eae5  libgrust/rustc-lib/core/src/str/traits.rs
! 805ed4c29da848f65f0affc2dd1a2618  libgrust/rustc-lib/core/src/str/validations.rs
! a702c232b5011972cc264ef7f32694ec  libgrust/rustc-lib/core/src/sync/atomic.rs
! 36d239143c5973526cee9a1b13efd84b  libgrust/rustc-lib/core/src/sync/mod.rs
! 05af6806f7665724936b2009544f30f0  libgrust/rustc-lib/core/src/task/mod.rs
! cd5ddb25543bfa16e5da8528371b035b  libgrust/rustc-lib/core/src/task/poll.rs
! 1114e8f8ddab426441626d29c5ff8b21  libgrust/rustc-lib/core/src/task/ready.rs
! b6166f2d8de857987e613fc6f9e3184d  libgrust/rustc-lib/core/src/task/wake.rs
! 73ad6c385fd086387e90fafcf86949cc  libgrust/rustc-lib/core/src/time.rs
! 28ab65aa4153df2bc22ed17789c235dd  libgrust/rustc-lib/core/src/tuple.rs
! 388bfce250f8289b9ab9d96b9ccbb007  libgrust/rustc-lib/core/src/unicode/mod.rs
! 67cb6090f02fc9b10cdeae530d88e083  libgrust/rustc-lib/core/src/unicode/printable.py
! d293ad70e086cb54fad81eb1f1c38b76  libgrust/rustc-lib/core/src/unicode/printable.rs
! 3d3286da2cf669ad7fdbae2442cd3321  libgrust/rustc-lib/core/src/unicode/unicode_data.rs
! 2ec6bdb7e32f5a91e9ce29c3ae0abd1c  libgrust/rustc-lib/core/src/unit.rs
! 4ae10e8f7c780c626fcfcae4ab72429a  libgrust/rustc-lib/core/tests/alloc.rs
! a1ba8a8b2bcbc1c0fa6be82f7cfd8d98  libgrust/rustc-lib/core/tests/any.rs
! f2e084a160689549e663b71cadbffb5f  libgrust/rustc-lib/core/tests/array.rs
! 6105ed6a6e83795acd73469d221e7a5f  libgrust/rustc-lib/core/tests/ascii.rs
! 41f146d3b4b3dffc695eff82436d6b3f  libgrust/rustc-lib/core/tests/atomic.rs
! aabb0e9acd4c9545b91fee936530e355  libgrust/rustc-lib/core/tests/bool.rs
! 29a1294885bea47ac49a5ad4178d37e1  libgrust/rustc-lib/core/tests/cell.rs
! 9e4cd0afe9e647dc911a6f38ce059ee2  libgrust/rustc-lib/core/tests/char.rs
! 72fe975a274ab29643e6f0bd0f255526  libgrust/rustc-lib/core/tests/clone.rs
! c499d112d43a6ea40a4f7a6e9ec67252  libgrust/rustc-lib/core/tests/cmp.rs
! 7b10c9de2151859c83fa827554db318b  libgrust/rustc-lib/core/tests/fmt/builders.rs
! 86c2a7372f037e0c865255b24850368e  libgrust/rustc-lib/core/tests/fmt/float.rs
! bd8d2bd7b5420da72bd37f938264c330  libgrust/rustc-lib/core/tests/fmt/mod.rs
! 72e0cee3f8856db4215f2ac2b1192297  libgrust/rustc-lib/core/tests/fmt/num.rs
! 5636828dc334b576cee15738469d604b  libgrust/rustc-lib/core/tests/hash/mod.rs
! 6cfda38e0a8deb26095915835f84a85b  libgrust/rustc-lib/core/tests/hash/sip.rs
! 932cdaed2b159e083c30c5cdf0ad28a5  libgrust/rustc-lib/core/tests/intrinsics.rs
! 0146a599d85c3f48eaa67d5d7f418174  libgrust/rustc-lib/core/tests/iter.rs
! 2c1025baad66c62336d663375190c655  libgrust/rustc-lib/core/tests/lazy.rs
! b04c0215d0f55710112bd5aefba0597a  libgrust/rustc-lib/core/tests/lib.rs
! 6a0fb4bb3cd6b8578696abb658172acd  libgrust/rustc-lib/core/tests/manually_drop.rs
! 771a88c2990d49c119de9744498f615f  libgrust/rustc-lib/core/tests/mem.rs
! d55a522d87190455b0ed8d8846b70c7d  libgrust/rustc-lib/core/tests/nonzero.rs
! cdc8f57ea8fc921632df24100999c60f  libgrust/rustc-lib/core/tests/num/bignum.rs
! 1ae0998b0aae3f832114b69b7d489a36  libgrust/rustc-lib/core/tests/num/dec2flt/mod.rs
! fe7a2749b893306ae231acf09d6e869a  libgrust/rustc-lib/core/tests/num/dec2flt/parse.rs
! be713dbb2f3e8210616ba3362bfd8211  libgrust/rustc-lib/core/tests/num/dec2flt/rawfp.rs
! fe4d20eccd78c2c149927f253b002f46  libgrust/rustc-lib/core/tests/num/flt2dec/estimator.rs
! 298ee728e2d7b1a8c62d22629af9425f  libgrust/rustc-lib/core/tests/num/flt2dec/mod.rs
! 0813657b212fc8677ecf2c32be0abcaa  libgrust/rustc-lib/core/tests/num/flt2dec/random.rs
! d905a099e9bc3c21f25ee014fa4fbe99  libgrust/rustc-lib/core/tests/num/flt2dec/strategy/dragon.rs
! 58a3d360ccec59120548b78ac65e902d  libgrust/rustc-lib/core/tests/num/flt2dec/strategy/grisu.rs
! 8a7d4ade2af795ab4ee2bd2e8e89a1a8  libgrust/rustc-lib/core/tests/num/i16.rs
! 378ca0d5f9aa4d1d6ea12f0ab149e2b5  libgrust/rustc-lib/core/tests/num/i32.rs
! 8199ecb35f8c012c686f18539c412e6c  libgrust/rustc-lib/core/tests/num/i64.rs
! ef3e4aecabed7a9eb1886183d5fa1286  libgrust/rustc-lib/core/tests/num/i8.rs
! 7e3275c0faec893457c6a686e0eac1b9  libgrust/rustc-lib/core/tests/num/int_macros.rs
! 3bdf92c3c9942860850edb8cd0705491  libgrust/rustc-lib/core/tests/num/mod.rs
! ec3a4e8e7fbcb27657ea9b30b44de3a8  libgrust/rustc-lib/core/tests/num/nan.rs
! 40a1d373d3fcf1f71e458e2ef5e77627  libgrust/rustc-lib/core/tests/num/u16.rs
! 8bb810b986647faab38940ae977ce012  libgrust/rustc-lib/core/tests/num/u32.rs
! 84ca7028a9df94a3321a6747c09935c2  libgrust/rustc-lib/core/tests/num/u64.rs
! 9c084319cc0d227331a19ba0f5fd595a  libgrust/rustc-lib/core/tests/num/u8.rs
! 4d919cb16dd928941c58bf56bb0fed5f  libgrust/rustc-lib/core/tests/num/uint_macros.rs
! 0be1774d2f5b6a35a83e8ba1bb4c0d28  libgrust/rustc-lib/core/tests/num/wrapping.rs
! 26ccc6436fb88b88521e095552979e1f  libgrust/rustc-lib/core/tests/ops.rs
! b2e1ede7a51b0486f3d2a824aeb96fab  libgrust/rustc-lib/core/tests/option.rs
! d21f64fe8310b8e2d0a9ff5cc7a554e1  libgrust/rustc-lib/core/tests/pattern.rs
! dc9a7fcc402cdb13af15896830898adc  libgrust/rustc-lib/core/tests/pin.rs
! 27932e99ff7fd667968ea01c73abbbd6  libgrust/rustc-lib/core/tests/ptr.rs
! 5b8d34e42e4a418e4f71306586aa1c3c  libgrust/rustc-lib/core/tests/result.rs
! 3ebafe376b496ebe6cc00b9877552abc  libgrust/rustc-lib/core/tests/slice.rs
! 9ba1f52ce325e7230b9b359004233bc6  libgrust/rustc-lib/core/tests/str.rs
! dd7f2e99b67da47174154edf00b58849  libgrust/rustc-lib/core/tests/str_lossy.rs
! 87c94bd80250f78f2752206a7fd70179  libgrust/rustc-lib/core/tests/task.rs
! bb6a0fd99e3e7eb028176778d2f0e5f6  libgrust/rustc-lib/core/tests/time.rs
! 62f928aa90acc6be8fb408ef589627ad  libgrust/rustc-lib/core/tests/tuple.rs
! 39e8f87d6cb99aa0981ccb603603a0d6  libgrust/rustc-lib/stdarch/.cirrus.yml
! 5662d14ec121234763cc983c6d79d655  libgrust/rustc-lib/stdarch/.github/workflows/main.yml
! d9b3acfb58274e5b8c1a33f355622659  libgrust/rustc-lib/stdarch/.gitignore
! 5636c3cbfe8dba989735343dd4224ca6  libgrust/rustc-lib/stdarch/CONTRIBUTING.md
! fe3532310218e2ce28c700a6966ac70a  libgrust/rustc-lib/stdarch/Cargo.toml
! 1836efb2eb779966696f473ee8540542  libgrust/rustc-lib/stdarch/LICENSE-APACHE
! c63582cd30ce8fb1e644659e900d5433  libgrust/rustc-lib/stdarch/LICENSE-MIT
! c94c263eead91a9b0749c737dac6c777  libgrust/rustc-lib/stdarch/README.md
! 3de88f98d532e59a2ced29dace4de474  libgrust/rustc-lib/stdarch/ci/android-install-ndk.sh
! c398a5014a07c0c49fa4ad8c984c156e  libgrust/rustc-lib/stdarch/ci/android-install-sdk.sh
! b9699210a19ea1b1f6292b6cd9d4e7e6  libgrust/rustc-lib/stdarch/ci/android-sysimage.sh
! ba4d4a9db881d4225c1ac9c1130bcd26  libgrust/rustc-lib/stdarch/ci/docker/aarch64-linux-android/Dockerfile
! 3fc8bdf94723db226f80d8f7adb5a708  libgrust/rustc-lib/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
! 7c41a09ec540e4bc0997832945eb1fdd  libgrust/rustc-lib/stdarch/ci/docker/arm-linux-androideabi/Dockerfile
! 3e84fc34d4fba8d82743af8bf98ead71  libgrust/rustc-lib/stdarch/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile
! be78cc77bb3702dfb37dd19b222b5997  libgrust/rustc-lib/stdarch/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile
! 23355cd4ab7179d635a3815ce53e5f39  libgrust/rustc-lib/stdarch/ci/docker/i586-unknown-linux-gnu/Dockerfile
! 23355cd4ab7179d635a3815ce53e5f39  libgrust/rustc-lib/stdarch/ci/docker/i686-unknown-linux-gnu/Dockerfile
! 4328e629403e86bef252b47e58eb8eda  libgrust/rustc-lib/stdarch/ci/docker/mips-unknown-linux-gnu/Dockerfile
! ace5473567d7c48909f2a1fc68648186  libgrust/rustc-lib/stdarch/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile
! 732e75a801a252e72d7b6ced075cfbc3  libgrust/rustc-lib/stdarch/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile
! ee37cbf7626599740c55921af70b8322  libgrust/rustc-lib/stdarch/ci/docker/mipsel-unknown-linux-musl/Dockerfile
! 9ece5ad81c03ab1ed561ecabf2232d6b  libgrust/rustc-lib/stdarch/ci/docker/nvptx64-nvidia-cuda/Dockerfile
! 587a6270650cf9c5025256bda4a7a824  libgrust/rustc-lib/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
! 572e2d72383ac5b4436a3625853c44a4  libgrust/rustc-lib/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
! 65a88e5380c1fbfdb0051f3791a0013c  libgrust/rustc-lib/stdarch/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile
! 720295414d93ff538b7ea915f5abfcaa  libgrust/rustc-lib/stdarch/ci/docker/s390x-unknown-linux-gnu/Dockerfile
! 73484ed80a5e8ee2100601ba2f6f5b77  libgrust/rustc-lib/stdarch/ci/docker/wasm32-wasi/Dockerfile
! 91274e350591f8232af2f0500310edfd  libgrust/rustc-lib/stdarch/ci/docker/x86_64-linux-android/Dockerfile
! 9b487cf8e894c3bdc469bbe634720f7d  libgrust/rustc-lib/stdarch/ci/docker/x86_64-unknown-linux-gnu-emulated/Dockerfile
! f982c6ee0e1dc6af057301df057736ca  libgrust/rustc-lib/stdarch/ci/docker/x86_64-unknown-linux-gnu/Dockerfile
! 45809ebd1b92c62cb5ac57e331fa48ea  libgrust/rustc-lib/stdarch/ci/dox.sh
! a65895b68d2039d007be3bd0fe985cb7  libgrust/rustc-lib/stdarch/ci/gba.json
! ceb55ee77c7e89a126e7176a775752ee  libgrust/rustc-lib/stdarch/ci/run-docker.sh
! 39faa92b23cd84c99791c4764074d45b  libgrust/rustc-lib/stdarch/ci/run.sh
! 0d27985ee25a982604924f8b81eaf427  libgrust/rustc-lib/stdarch/ci/runtest-android.rs
! 8ab7256ba56c105e106d08b98823c0af  libgrust/rustc-lib/stdarch/ci/style.sh
! 65be562ce972311be63e025398ea90b2  libgrust/rustc-lib/stdarch/crates/assert-instr-macro/Cargo.toml
! 337fb7764460cd45addb6587631046dc  libgrust/rustc-lib/stdarch/crates/assert-instr-macro/build.rs
! 0f2dac42401c7f2f817cadcde563f14e  libgrust/rustc-lib/stdarch/crates/assert-instr-macro/src/lib.rs
! c79647fe755c34ce2c67c97721d6c75d  libgrust/rustc-lib/stdarch/crates/core_arch/Cargo.toml
! 1836efb2eb779966696f473ee8540542  libgrust/rustc-lib/stdarch/crates/core_arch/LICENSE-APACHE
! c63582cd30ce8fb1e644659e900d5433  libgrust/rustc-lib/stdarch/crates/core_arch/LICENSE-MIT
! 217a7234bf23641e2984d99ae2671510  libgrust/rustc-lib/stdarch/crates/core_arch/README.md
! 68af5894c6bdb8e846372d2256b98096  libgrust/rustc-lib/stdarch/crates/core_arch/avx512f.md
! 15c9bb63bc3d96adb70ecce051401cf5  libgrust/rustc-lib/stdarch/crates/core_arch/build.rs
! 7732030ceddd670dbfc7e20e0f9e7f93  libgrust/rustc-lib/stdarch/crates/core_arch/rustfmt.toml
! 66a5cd4874d019e5f8243b6b67b45815  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/crc.rs
! 8d17d83a5726495f7d58f8d21bde379d  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/crypto.rs
! cbfc65aaf9199530598695f449636aff  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/mod.rs
! e461c74b5d0598f70de65a256ebba46f  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/neon/generated.rs
! 936c07a5919d620459832ff41ea63ab7  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/neon/mod.rs
! 90db0fb4da5cc93af1ccb284ad75eba9  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/prefetch.rs
! 8de7988db0f99b9275cf36c3361aca26  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/test_support.rs
! 63640a80ce219fce129bbcf848be8423  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/tme.rs
! 59f43527cdc705daab72636c19be9366  libgrust/rustc-lib/stdarch/crates/core_arch/src/aarch64/v8.rs
! 6651ec33dc000fbaf64fc2175bb2636b  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/barrier/common.rs
! eb8304a2d1dbf86fe1d67bf600c80890  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/barrier/cp15.rs
! b7ed28cbe898c26bf7d87675b75985fb  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/barrier/mod.rs
! 38741640253caca53f1690f51be00a57  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/barrier/not_mclass.rs
! 32781b612f6fa85a951020e1e0a3dca5  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/barrier/v8.rs
! 04203500f934cbb399f405605d1b8667  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/dsp.rs
! 47ca85f57dbde166f0e5d9fd410d2b86  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/ex.rs
! 5174dd81610bffa4eabd6a0d628d86fe  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/hints.rs
! 826cd3184a988ef8e624e61b6fdf1058  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/mod.rs
! ada96102f57a57dbc14a2481adc6299f  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/registers/aarch32.rs
! 821dfbbd5933c7ddc47d217285c2f0de  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/registers/mod.rs
! c8255b58b04ddbc5ba8fa10498e648aa  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/registers/v6m.rs
! 0ef272cea90dd3899299b9f9dad8c8ab  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/registers/v7m.rs
! 709999efbb8a02ed22235eb2aade25ec  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/sat.rs
! a0776dc53cd677e96e5df54e31b42778  libgrust/rustc-lib/stdarch/crates/core_arch/src/acle/simd32.rs
! bab46738c27c05e123c83669256a61d8  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/armclang.rs
! 3e5f0e718bf007f25e768f21104fdab0  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/crc.rs
! b668df6f1c1cf6b216c9263911a1d8b9  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/mod.rs
! d8c78dd8127d2bd3fce377088c9acc1b  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/neon/generated.rs
! f446b1ba5454e8796d7099b6aea548f3  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/neon/mod.rs
! 180660fd7be01c28a740dea569f96133  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/neon/table_lookup_tests.rs
! e55b1bb73730306f0ac70bac2ff27d50  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/test_support.rs
! 24fc94d1f641915a26ea91f805c3b686  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/v6.rs
! 775b864a98b69748322c04ead500872c  libgrust/rustc-lib/stdarch/crates/core_arch/src/arm/v7.rs
! 9c917a30672780d61801a82c762e94e5  libgrust/rustc-lib/stdarch/crates/core_arch/src/core_arch_docs.md
! 6717d2a2ab31fce7d5745bfec7fe8d74  libgrust/rustc-lib/stdarch/crates/core_arch/src/lib.rs
! 763ec531842e32f22b9ccdd7c8ad2fcd  libgrust/rustc-lib/stdarch/crates/core_arch/src/macros.rs
! c0444839c4f0ed612efe2aa6ef0ce29f  libgrust/rustc-lib/stdarch/crates/core_arch/src/mips/mod.rs
! c1a54a4602b5cba23932a81668395354  libgrust/rustc-lib/stdarch/crates/core_arch/src/mips/msa.rs
! b5107d5a1e3b2e260c6faff1b491e4d3  libgrust/rustc-lib/stdarch/crates/core_arch/src/mips/msa/macros.rs
! 5e866d5c8dc4a13ee7e4fbd2c7b177b6  libgrust/rustc-lib/stdarch/crates/core_arch/src/mod.rs
! 652c4801b80d1f14fee4196d4b0078cd  libgrust/rustc-lib/stdarch/crates/core_arch/src/nvptx/mod.rs
! 3cf1c35bd6b484be81dcbf8b6a2139e1  libgrust/rustc-lib/stdarch/crates/core_arch/src/powerpc/altivec.rs
! bdc39c5c00c3d700199723b9f72a83e3  libgrust/rustc-lib/stdarch/crates/core_arch/src/powerpc/mod.rs
! 7cfbc3568e46d1b7c0c325c938440814  libgrust/rustc-lib/stdarch/crates/core_arch/src/powerpc/vsx.rs
! c280d6713cc8efafd7486840c3fa8668  libgrust/rustc-lib/stdarch/crates/core_arch/src/powerpc64/mod.rs
! 01a6146e5ff69a8a2f5d69d8045a8d16  libgrust/rustc-lib/stdarch/crates/core_arch/src/simd.rs
! 2682d401b50e48023295defe960e7480  libgrust/rustc-lib/stdarch/crates/core_arch/src/simd_llvm.rs
! ccad3a7577d29f3ba2a4152f49241316  libgrust/rustc-lib/stdarch/crates/core_arch/src/v64.rs
! ec4cadd9ef2a2501d7413e26af8a3ef9  libgrust/rustc-lib/stdarch/crates/core_arch/src/wasm32/atomic.rs
! 39f27963888127b58367d7071a8141d3  libgrust/rustc-lib/stdarch/crates/core_arch/src/wasm32/memory.rs
! 18a82f777442529cebf806f586bcf086  libgrust/rustc-lib/stdarch/crates/core_arch/src/wasm32/mod.rs
! f5f6713e8755a5ceb4c0db9ebd95227f  libgrust/rustc-lib/stdarch/crates/core_arch/src/wasm32/simd128.rs
! 6bb92848ef63646300630fd51cc52c60  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/abm.rs
! 2c58fdc71b31d8123026eea5d63cf935  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/adx.rs
! 0d23dd94d8963297741b8b1e89cef655  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/aes.rs
! eda99a9659c58c494d9ed1bb682a32b6  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/avx.rs
! 840956cce7aefcacb263931821f9d5e5  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/avx2.rs
! 572c11fde03fbdd83c8dd4f6836a43cc  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/avx512f.rs
! ff11ae0195ea08b5667d4a286cac3006  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/avx512ifma.rs
! 91484378051bfa5c0cfba80812368c62  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/bmi1.rs
! 7474d5c8886f27edf72fb0e9b5478c56  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/bmi2.rs
! f17dc2b020c2ecce14345204124c35f3  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/bswap.rs
! f9e314a56e2dc2b9c1d84feb4609ede1  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/bt.rs
! 5073f4498e9f449c31666f9b2e1cd242  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/cpuid.rs
! be00bc7e843c2a777c75f2a8e6837703  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/eflags.rs
! 7add315bc46ab6f5558c3062833c330c  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/f16c.rs
! e2f3df807b42e8040566487b09d2940b  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/fma.rs
! 39debef1eccf710507680ade3992a4f6  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/fxsr.rs
! 589443b5133390c96b5b109666d009a7  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/macros.rs
! ee56727910b3a9635b1816ccf4c3fd7c  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/mod.rs
! 95f59affd1eb9581a6ce2e8f8ea8acf9  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/pclmulqdq.rs
! e4da44cd8f0d027b14d32b8dcb1ff9ad  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/rdrand.rs
! 52474dd9f9e8d6cd11ae412794a83dda  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/rdtsc.rs
! 7edb68003a9b54dda3281e1dbe577390  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/rtm.rs
! 1d00ce2a4c9a2ad7b60b73846f2f5685  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sha.rs
! b893ff77c66767b985366e89ed23356d  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse.rs
! a360ee3a6fc1b65c36d35f2c319031c4  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse2.rs
! 70b02dd55f31a1d6eec261c342c6ca9a  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse3.rs
! b83eb69235a2e2cfd711166c3c12f6f2  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse41.rs
! b5dda9a3893f4550ae089aeda587571d  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse42.rs
! 9103dd1366ba37edb18b3a3bac6a8f80  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/sse4a.rs
! e8b7df62b82786cf60ac055c86704602  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/ssse3.rs
! 3bb9b2158b3775392c2ea8a027ecfeaf  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/tbm.rs
! 3993be6319f7d6a561ce1934c07f5903  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/test.rs
! 83d49df1f4003e09ce4f67d127be458a  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86/xsave.rs
! 6cd067b2c762810e31d53e9490ae4d79  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/abm.rs
! 67349bc5b03194fd2b30b35a1bcf082c  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/adx.rs
! 548c151c0d5ed691551d5664e1e809cc  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/avx.rs
! 7bf63e63f3ff75af0a93d70eb79e365d  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/avx2.rs
! d2e0e797edea81b4fbe2e6512cfcb63b  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/avx512f.rs
! 8f409c9e0273ebd60c3aed32c817c464  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/bmi.rs
! 7661e2fb068091a593c133aa1b00dfad  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/bmi2.rs
! 71c60289ddbfb61662760169d8548547  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/bswap.rs
! 41ab85e4b0fc61c1d6a403a365b6efad  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/bt.rs
! a042b91171d7bf242f125e49082481dd  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/cmpxchg16b.rs
! 499797348920f7241f78dfb49b65eb39  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/fxsr.rs
! 917db03baaa26dd885c7260000fc8fed  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/mod.rs
! b10996bb06f7c9c4c31e06c7e443ee89  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/rdrand.rs
! 35de891f60c53b9d38ecedc365d4cc22  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/sse.rs
! d11ead85cc953345699055a258cbcd25  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/sse2.rs
! 595e003ab2df4a417441d639527bbb84  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/sse41.rs
! c8d442974c2eb4788cd79cb9e17ee1f3  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/sse42.rs
! 51b01956f595df2b117a2c453b373917  libgrust/rustc-lib/stdarch/crates/core_arch/src/x86_64/xsave.rs
! acecf6f4a5547d88c71eb9396cfbff52  libgrust/rustc-lib/stdarch/crates/core_arch/tests/cpu-detection.rs
! ad80ef87e3e08e71e8c183d92d342bc9  libgrust/rustc-lib/stdarch/crates/simd-test-macro/Cargo.toml
! e294905f637618ad12ea049b16341cf8  libgrust/rustc-lib/stdarch/crates/simd-test-macro/src/lib.rs
! b267feb038a25a95bdf7d8c76983cc3c  libgrust/rustc-lib/stdarch/crates/std_detect/Cargo.toml
! 1836efb2eb779966696f473ee8540542  libgrust/rustc-lib/stdarch/crates/std_detect/LICENSE-APACHE
! c63582cd30ce8fb1e644659e900d5433  libgrust/rustc-lib/stdarch/crates/std_detect/LICENSE-MIT
! 94dd9b519ccdb191d575f6f0840a8cc4  libgrust/rustc-lib/stdarch/crates/std_detect/README.md
! 7d80a56514436de3ee4dd34927aa8fc7  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/aarch64.rs
! b8048b2b91e727d8dafc45f3d36734da  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/arm.rs
! b0f3182c39a9ae674f3e926f5af85fd2  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/mips.rs
! 9b51ec16ea3ea0a39b3624446cbf6309  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/mips64.rs
! 83841d031e1fae86db2eac2d0a4f89ac  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/powerpc.rs
! 6a5ce9291ee3c2b4dee7cedf0e1cb7e5  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/powerpc64.rs
! b3e2b39827df24eb89d311f0b103e0fd  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/arch/x86.rs
! 97f514e92e5a636970c2845c1a74c7c0  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/bit.rs
! 1f46a996f7cb4eee96a283657d0ae932  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/cache.rs
! 3431fa9c3c292778e4a95661fe9fd426  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/error_macros.rs
! cf0445feccdb6801b8ad25229631afaa  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/macros.rs
! e03d88564fbd67afd25a31c2a4196f6b  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/mod.rs
! d011afd23a3b9ffd141157b299d50a8d  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/aarch64.rs
! b7cb9a2426326d541f2943b6fd7d1f77  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/aarch64.rs
! efba972a27992b457d8b2c51b1c755a9  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/arm.rs
! 3f5ba2caf2629f7d471ed4f3b559d7ec  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/auxvec.rs
! 0b8794c1355cc8925e2a9c7215f89a22  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/mod.rs
! a5ad10b4334c6b517e17f76b6d3de14d  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/freebsd/powerpc.rs
! c6fa0174a697fd2cfd0eef967da44a32  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/aarch64.rs
! eb1122be726f6355d446f73ddd55426d  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/arm.rs
! 613e02b1abd85f5d1f42d9644412266c  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs
! 4be7d82cc046e0e28b3b2863dff6a366  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/cpuinfo.rs
! 8e974f8a2baf945038dde5026b7d388e  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/mips.rs
! 3f860be38ad4efb2396b2c503d740453  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/mod.rs
! d68dea4767a7c05cb505177f4902f49c  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/linux/powerpc.rs
! 41cecb5cc50f55fc52596b0728680aef  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/other.rs
! 2c11eaf4a27f4ae34a6e8c7396977652  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/windows/aarch64.rs
! 5c1f2b965db5e7fa1bfbe2d6ef1bd00b  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/os/x86.rs
! 640969bf1f979d99b2fa39dee063c6ae  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/test_data/linux-rpi3.auxv
! 392b5fc6de117084070d557df6ab50d3  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/test_data/linux-x64-i7-6850k.auxv
! 26f63aaaead9e1d06a055dcd151dd326  libgrust/rustc-lib/stdarch/crates/std_detect/src/detect/test_data/macos-virtualbox-linux-x86-4850HQ.auxv
! d3579eebd3fe55b2547dafb447188edd  libgrust/rustc-lib/stdarch/crates/std_detect/src/lib.rs
! 29a94dfcb446103b4dcb4a0630a15c4c  libgrust/rustc-lib/stdarch/crates/std_detect/src/mod.rs
! 5684560f2f150b3180b561e55bce70b4  libgrust/rustc-lib/stdarch/crates/std_detect/tests/cpu-detection.rs
! 58381af1ede8ea33b81e0d1082fec192  libgrust/rustc-lib/stdarch/crates/std_detect/tests/macro_trailing_commas.rs
! 7564bc40c0ffc87e51072d18003247ee  libgrust/rustc-lib/stdarch/crates/std_detect/tests/x86-specific.rs
! c5fb6562d3d0cf908377a21a4553a623  libgrust/rustc-lib/stdarch/crates/stdarch-gen/Cargo.toml
! ec54df374b3589ca81bd022211641fca  libgrust/rustc-lib/stdarch/crates/stdarch-gen/README.md
! 838314a08e8903ba5a88096c5dfb9fff  libgrust/rustc-lib/stdarch/crates/stdarch-gen/neon.spec
! a9b0b73f9730202fbac71a9bc5e1a0ea  libgrust/rustc-lib/stdarch/crates/stdarch-gen/src/main.rs
! d360e527c2a645395623deb19012041b  libgrust/rustc-lib/stdarch/crates/stdarch-test/Cargo.toml
! c24a7697656dea74bfca3a5531c9dc41  libgrust/rustc-lib/stdarch/crates/stdarch-test/src/disassembly.rs
! ca1e45a573d373dcb13bb79831dec9b8  libgrust/rustc-lib/stdarch/crates/stdarch-test/src/lib.rs
! e506f9c8939b863152c49c60f40e9689  libgrust/rustc-lib/stdarch/crates/stdarch-test/src/wasm.rs
! 39888d36a1cbd23d4bf5192b26804e3a  libgrust/rustc-lib/stdarch/crates/stdarch-verify/.gitattributes
! 6ce9ca31f8d8633990f24d5140843d70  libgrust/rustc-lib/stdarch/crates/stdarch-verify/Cargo.toml
! 69f73c020db60d58f1ddaf17bd703959  libgrust/rustc-lib/stdarch/crates/stdarch-verify/arm-intrinsics.html
! 0e26d225c722735f9172cdb942df4469  libgrust/rustc-lib/stdarch/crates/stdarch-verify/build.rs
! 39e645b2d02cf3f54c41923ffbb941d5  libgrust/rustc-lib/stdarch/crates/stdarch-verify/mips-msa.h
! 05a1f6510c868d299acf6c1bf1bd33a0  libgrust/rustc-lib/stdarch/crates/stdarch-verify/src/lib.rs
! 2b63d4309851bfc584a833049ce2ef79  libgrust/rustc-lib/stdarch/crates/stdarch-verify/tests/arm.rs
! d493ed0f8d0b948161e8644ac3187950  libgrust/rustc-lib/stdarch/crates/stdarch-verify/tests/mips.rs
! bcbfe4252c8ea613579fa9c3eacec0c1  libgrust/rustc-lib/stdarch/crates/stdarch-verify/tests/x86-intel.rs
! 9bf10797870612c8a6d5d1264254a8de  libgrust/rustc-lib/stdarch/crates/stdarch-verify/x86-intel.xml
! b4884283bab95158a603eebee635a7f0  libgrust/rustc-lib/stdarch/examples/Cargo.toml
! d1c33a8b5e0f3d9a19ffe583f8e72f56  libgrust/rustc-lib/stdarch/examples/hex.rs
! 1dad0f581d8f157df08da55bdd5393e7  libgrust/rustc-lib/stdarch/examples/wasm.rs
! 187462b06a35e0e4d6fdb0f22ad39817  libgrust/rustc-lib/stdarch/triagebot.toml
! 68562b202746f3330f030d8da94e78eb  libgrust/rustc-lib/stdarch/vendor.yml
! c21183b1df7f7afb240d765035277db1  libgrust/rustc-lib/version-info
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 1def024f9aca76c2faf15e9774271943  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
! de0b0731d5d06e748df71e896c6078a5  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
! cfb5c6013ed34d9d349e8dc340c04af5  libiberty/_doprnt.c
! ae499efa54db8524b519ccf13d4d4458  libiberty/acinclude.m4
! 9c7c0833924a60c564bf194e11b22795  libiberty/aclocal.m4
  44755c536efb9b79a3ebdfe6b0da5904  libiberty/alloca.c
! 55f389fa987759ae7bdce6f2b0e49333  libiberty/argv.c
! 6b929466aefe4a6ffbca290b503a9ebc  libiberty/asprintf.c
  a16ea056b95fd70c21333db132da14ff  libiberty/at-file.texi
  c34119797a13e71989722851c14b711b  libiberty/atexit.c
  ab8d4cd68aa4892e2318d2c71864cc56  libiberty/basename.c
*************** a707d2e5daa09d204d4441e8713048ca  libibe
*** 129944,129952 ****
  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
--- 143855,143863 ----
  0ce04768d60b33d4951e6542d1bcbdac  libiberty/bsearch_r.c
  4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
  4334ddc8cd0c2303bd7b4d61a8dd0e62  libiberty/calloc.c
! 2bade331990022caf106c23350b7748a  libiberty/choose-temp.c
! 79f2d38f864a7b8fa30835ed959078b3  libiberty/clock.c
! fe207e3e1c9a646419aca7d44b89eeba  libiberty/concat.c
  83565a31c7f296b3013daf383cd03ee9  libiberty/config.h-vms
  6867ba60ef3e4b6408fbfd112c5fe9ae  libiberty/config.in
  4004fdcde347fda58406b4b84a995c66  libiberty/config/mh-aix
*************** d3c732c9041e2a09c3ba6cac89cb8be5  libibe
*** 129954,130181 ****
  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
! ee5397100239985c93c02d500e53ccaa  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
! efa3ec8383d6e3d909260cf8821b28ad  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
--- 143865,144093 ----
  044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
  904bdcd9daf97fa55a9ca8901ffe7435  libiberty/config/mh-openedition
  38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
! a08719d6c4a4d3d8fa74cb913c55211f  libiberty/configure
! 1d7f800450530d9dc9d466cd67204867  libiberty/configure.ac
  193826e77c2cb5ea7289dc272ec23d5d  libiberty/configure.com
! 95bcfe50b43ca9b1fd315a368b837401  libiberty/copying-lib.texi
  fe053283d3559af3ec5cac45f8ead009  libiberty/copysign.c
! 044856947b53027a16187abd8623c859  libiberty/cp-demangle.c
! 3f778bba8cac0dc0b2ba7e95e6b6cba7  libiberty/cp-demangle.h
! 9d8c6d653bfa24871a73c565b6d3e33b  libiberty/cp-demint.c
! 03321912732b6b330b17b4be2c45e80e  libiberty/cplus-dem.c
! b1cdc43b57b846afbdbdd5332834afe5  libiberty/crc32.c
! 77b3987d9d6fcba885daf42e0517af36  libiberty/d-demangle.c
! 776e349d1d76b57cc7ff0354e2269e2d  libiberty/dwarfnames.c
! 96467bd93842264aa1493d0ce9addef4  libiberty/dyn-string.c
! b2e026fd40cb11fe7ffa3797cd8bc457  libiberty/fdmatch.c
  0c2635175b975823b40980974dfc2110  libiberty/ffs.c
! e467e97273c9410f33b9fb57fcfce5b6  libiberty/fibheap.c
! c310e23f6de497f27bcdfa979efc98d5  libiberty/filedescriptor.c
! 81abebf46997ef363b4b0da4c4cedf5c  libiberty/filename_cmp.c
! f35c2fc575de678d238a011f0c0e4d01  libiberty/floatformat.c
! c8c7b7ff42d5e1caaf641d36bf4ec675  libiberty/fnmatch.c
  145debe2f28f470878f95b1255f5537c  libiberty/fnmatch.txh
! d21580e623161f0e224356f2c2c9c0be  libiberty/fopen_unlocked.c
  1e601e0618cf3e4575301226533bbfb4  libiberty/functions.texi
! 4b840490db00b6f0b44f01e4cf704ecf  libiberty/gather-docs
  754c5ef42440c5d1b62146174a6636e4  libiberty/getcwd.c
! c194577593fe92d778949883e392333d  libiberty/getopt.c
! 66f0630e5e4dc415f4660947f3dca4fc  libiberty/getopt1.c
  bb0043d92c716691cc17b80c845c336b  libiberty/getpagesize.c
  5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
! a7bf4e183c45a2c116ec58e4ef8d38e9  libiberty/getruntime.c
  0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
! b90cecc3dc617aedfa5e8d0f26fac0fb  libiberty/hashtab.c
! da40767f7fa1629df649609127a366c2  libiberty/hex.c
  4d485e7735be430b22aea0abb4938e26  libiberty/index.c
  9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
! 94402be16aa3026a9b8ab90a38e5643d  libiberty/lbasename.c
! 3b9075ac120a24965513fe5505f84d57  libiberty/ldirname.c
! 1025e0d0a708c85892aeea3b5e153571  libiberty/libiberty.texi
! a3bf7aa700296597c2ad49b21dd922fd  libiberty/lrealpath.c
! 50ec922e44ceb13d87da9d5dc3490c4f  libiberty/maint-tool
! b8a4fa787e41edf9a5b1e642824291a4  libiberty/make-relative-prefix.c
! 4506574402c96dfca6f0cceec3a8e511  libiberty/make-temp-file.c
  2296f9992eccea8d2e0fb632a7c16629  libiberty/makefile.vms
! 57437114dca487a0b19728047c0c53f8  libiberty/md5.c
  5b9d8d3532e276e22b798481bdcb3ec3  libiberty/memchr.c
  d2f8420243d7223cc896b7a6308fd19a  libiberty/memcmp.c
  873c437999202225c99e2039eb9896ce  libiberty/memcpy.c
! 8e3bb68ab2d72e80f7d4ccd725a87f8b  libiberty/memmem.c
  0d7465662f3756716c6dcdd1988940e5  libiberty/memmove.c
! 3aff2287c5c389b507c10ef45260a023  libiberty/mempcpy.c
  51e2e72e693f1350334dac62dc0e7f3c  libiberty/memrchr.c
  5f0eb20e9ed4d7e6c2eb9d1baf4d9dc9  libiberty/memset.c
! 042bf04268346eaad968d92c3d0433b2  libiberty/mkstemps.c
  7897e43bedd2def4beb6eb73003efa68  libiberty/msdos.c
! c2f3de4d053cc63c57e672c972866db7  libiberty/objalloc.c
! e34765e40f64a3f6763e5f33501d0622  libiberty/obstack.c
  60e853e97e156d94dfb6374f701b99ab  libiberty/obstacks.texi
! 77492cc9bc9b6bb783538e0ef02450ad  libiberty/partition.c
! a42e20331e0fa40db951bf3e558e40d9  libiberty/pex-common.c
! 7fc83070cbf61cb596fc70bcc708140f  libiberty/pex-common.h
! aed5f7f1f4e4cda5161f00bccd1e2639  libiberty/pex-djgpp.c
! a5e6757fab8f7d9fe824f9703906e83f  libiberty/pex-msdos.c
! 3c24c81fbdc72666311850bff4ee9782  libiberty/pex-one.c
! f91f17a01a7fbb12988a547a4564950e  libiberty/pex-unix.c
! dd7e669a66177322a0babe40774057ca  libiberty/pex-win32.c
! 4dcdad7ddb6c6f95bd0f26ad7d75e878  libiberty/pexecute.c
  a6b1581efa83a4072727b38d6fef4230  libiberty/pexecute.txh
! dfe475c49d0777e4c10f308425744082  libiberty/physmem.c
! b16da3cafc1141c8548d5f17ed282181  libiberty/putenv.c
  e0e831dfd1e39695597e9f5c6951be8e  libiberty/random.c
! 1aca40005140f680c39f223fd14423ed  libiberty/regex.c
  24eab3d83825c3be13549dc62b6d63d6  libiberty/rename.c
  74850488731148a9c9f410042144f37d  libiberty/rindex.c
! a79b53a4509df76eed91f2b385434167  libiberty/rust-demangle.c
! 8454a181c7be8bee321cdd2830907d24  libiberty/safe-ctype.c
! 882b928512e5529bfc1ed9f0bb4e02a3  libiberty/setenv.c
! 58e2729d90d34d1dcc7d994d8ddc8a8f  libiberty/setproctitle.c
! 4cc14d92cce151659481f163788eb37e  libiberty/sha1.c
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
! fd7b0f956a27a9c003becee0f7127dc9  libiberty/simple-object-coff.c
! 7d1dc7e843b27598f270728a44698f7e  libiberty/simple-object-common.h
! 0f48244c3d903b42615870ec6763e7dd  libiberty/simple-object-elf.c
! 5eea7a0264697812cc1cb751094bb348  libiberty/simple-object-mach-o.c
! d66a370bb6427e3e775064e74b0a4f86  libiberty/simple-object-xcoff.c
! d83b0f719987de9d9cc6ea43bd6441b7  libiberty/simple-object.c
  4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
! c888635c772cbeac48ae318b1a9cac59  libiberty/snprintf.c
! bf663d93c7c95b9c7708bef84e6c7fc4  libiberty/sort.c
! 12c01c7c981c6adb3dc436dbaf3cd1ec  libiberty/spaces.c
! df9ff90cc2dd40bf9a365445cfde5a44  libiberty/splay-tree.c
! 55e9cc4c963338a18dba1fd6599f2407  libiberty/stack-limit.c
! cfc49a33424940d9a4662d59668129c9  libiberty/stpcpy.c
! 518a9e260965041b0f8b54c24b8a4bfd  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
! 923ac965e4d1672dd06fdde898a49bd1  libiberty/strndup.c
  fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
  5b0eb0000c746fc4c1854f00bb80b53d  libiberty/strrchr.c
  35b19177b9109e894fcfae29a3a52778  libiberty/strsignal.c
  118932d11e6b27c7319a4397c2b933f7  libiberty/strstr.c
! 7cdec698bb769c0ef1194806ac18b094  libiberty/strtod.c
  c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
  9968bbb75dc08ce768389912954f4348  libiberty/strtoll.c
  26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
  d132d24f15fe05fe3614e69d6dbc65aa  libiberty/strtoull.c
! 60117c53a2a572ef54375a2ea346cb66  libiberty/strverscmp.c
! 4902b0679b0cf3496ad21f5054157337  libiberty/testsuite/Makefile.in
  c6ed870948e340854930b0cfd9c39b99  libiberty/testsuite/d-demangle-expected
! 1ad8af63a0147a447ef3a32ba675c92e  libiberty/testsuite/demangle-expected
! 92b0376cdafc4ac621b2e3ade5bc48ce  libiberty/testsuite/demangler-fuzzer.c
! 0214377f9a5075d5ac5c671e982b65b0  libiberty/testsuite/rust-demangle-expected
! df2cc8306a1a2d512d0a4e45bfe38734  libiberty/testsuite/test-demangle.c
! 0890d886a6a83beb9abcf933e45cd972  libiberty/testsuite/test-doubly-linked-list.c
! 3e47cec24b744f5097273a9e6a7ba16e  libiberty/testsuite/test-expandargv.c
! 1f6be56b696aa2ff1574742bf0427ce4  libiberty/testsuite/test-pexecute.c
! 1022d322768b23863e76501be4742967  libiberty/testsuite/test-strtol.c
! 06db0dddfd6c4164151e99883434e8a7  libiberty/timeval-utils.c
  6b513119d8c36af928821e8ec24265d7  libiberty/tmpnam.c
! 857bae7783be0471a1aaede62ea8feb4  libiberty/unlink-if-ordinary.c
! 3a756a52e879c85a75fdcb932961be77  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
! f2163fa7b495d102b9018b155ffa110c  libiberty/vfprintf.c
! 28b0e227943b3e3d91408e5393f1ecd6  libiberty/vprintf-support.c
! 903022bd8365a565ff57b6740e37b548  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
! 9f008d4be147550b6087c95bb5795be5  libiberty/vsnprintf.c
! 0ccd1e3a00c5b65e659f1a2754a542e1  libiberty/vsprintf.c
  3b03f409fd38f9d543870f21e6d7f5c8  libiberty/waitpid.c
! a5e16adedb1a5f2996b197c27056364d  libiberty/xasprintf.c
  d4edda6072abc54e79d734250756816e  libiberty/xatexit.c
! c2201aab77f53cd7840c0dffa0ed4174  libiberty/xexit.c
! f8e9a7252d479ec32cc5bf499b2aff86  libiberty/xmalloc.c
  e52d95644dc6f186070f349a5903ca72  libiberty/xmemdup.c
  4746095b1b67693ab6e78ed72ead1235  libiberty/xstrdup.c
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
! 82039c5e76badca485d7ec27bf160ba4  libiberty/xstrndup.c
! 2052196fd1de9a9efa8722031398f544  libiberty/xvasprintf.c
! 719ce8ad3e62790a16b09606796c014f  libitm/ChangeLog
  763fe82c2e5c5ae9547defb28107952a  libitm/Makefile.am
! ef89f818c0c39a850af7e33129d6ba50  libitm/Makefile.in
! 86465895a9d654faded88bc3fa075117  libitm/aatree.cc
! 95728dd37e8694d4ccdcdb365595d1f4  libitm/aatree.h
! 6170067f9a1f111a2358807804a455f3  libitm/acinclude.m4
! 166ea233e8cc9f2178a46bc446643c3f  libitm/aclocal.m4
! c698cef271968e273f64e6524284df79  libitm/alloc.cc
! 8d808238ba54cd7fea551d4e70b4855a  libitm/alloc_c.cc
! 422651b1eb388701951757b4f3b27100  libitm/alloc_cpp.cc
! 8974b1fa70daa07cd185d16334c58d22  libitm/barrier.cc
! 093e16c127cdc63a641dcf13bbf6e054  libitm/beginend.cc
! e573073d18baec48b7c39413e8ab146d  libitm/clone.cc
! 78d4beda32bd29ab6c8fcc32775f5aa0  libitm/common.h
  05ea82fd12c7b4a030b6310b862ff47d  libitm/config.h.in
! ff0afe23712c2e9c07c2c3f12b9d0520  libitm/config/aarch64/sjlj.S
! 4d6025bd55415126769c608f6cdc4a2c  libitm/config/aarch64/target.h
! dac211ab56e95e318ab84880d41ac2a8  libitm/config/alpha/sjlj.S
! e0c2537afbd6d24052ed16f2db50b3d9  libitm/config/alpha/target.h
! 8495e282a14c5944518d87520ab31739  libitm/config/arm/hwcap.cc
! 44cf6b0429518d6d75a5ac38731551a6  libitm/config/arm/hwcap.h
! efa26dcb870fc8b4aab28b07c1835181  libitm/config/arm/sjlj.S
! 6f852a79234e1e5966d64188dd65170b  libitm/config/arm/target.h
! b586aa10ba0dc790471251e9ee21de23  libitm/config/generic/asmcfi.h
! a1e7549926346717516fb239d7ac0770  libitm/config/generic/tls.cc
! c223853eefa19f7cc389ff90637b5867  libitm/config/generic/tls.h
! dff3f13df09084621f326308c1d23db2  libitm/config/linux/alpha/futex_bits.h
! db0315f3989e9903561ae187d26d57de  libitm/config/linux/futex.cc
! 1d65574f4e99999a1b5347f24d502948  libitm/config/linux/futex.h
! 8fbf5e107f7289a91e9892c937c9b8c7  libitm/config/linux/futex_bits.h
! f7bc91627723ef5744e9a42f074984f8  libitm/config/linux/powerpc/futex_bits.h
! c30c6f3ffa296e06e1d8ed52f3ccd998  libitm/config/linux/rwlock.cc
! f3cd1887850d08f0fd305a0ab46a5f58  libitm/config/linux/rwlock.h
! ee80b34348f3e4b22c3f541d57af2b62  libitm/config/linux/sh/futex_bits.h
! 1a7f63893d6f8a2115934ece6c9538bb  libitm/config/linux/sparc/futex_bits.h
! 48e9e496c135db881f050a370330b318  libitm/config/linux/x86/futex_bits.h
! db38e84276c75a5d46955f34fe3cc200  libitm/config/linux/x86/tls.h
! bc1182ba62f06471b9c3799943b60324  libitm/config/loongarch/asm.h
! 26423c4da66bdfd0db89cd6e89ab47bf  libitm/config/loongarch/sjlj.S
! ef7d8d34fd97156cb250a836905fc73e  libitm/config/loongarch/target.h
! c98a804fb3f40235b8516abf7036cd26  libitm/config/posix/rwlock.cc
! 879ddd89f4c61c562f7d823405967528  libitm/config/posix/rwlock.h
! 6d0a34bf9b44df52347138a86edf0459  libitm/config/powerpc/sjlj.S
! fae9408bd410481614542cb6479b613b  libitm/config/powerpc/target.h
! 001834d6d7e6631e7b41cc3f063d8370  libitm/config/riscv/asm.h
! 101279332017d342accee74c1c299361  libitm/config/riscv/sjlj.S
! dfad4321615f0f61a045831e4a4ba248  libitm/config/riscv/target.h
! 7f4e7d13494988dbdce892df8b095f0a  libitm/config/s390/sjlj.S
! 02aa373269b013df346bfa89c478b546  libitm/config/s390/target.h
! 120f6b0ecb280f04bb1ae2c217db7d75  libitm/config/sh/sjlj.S
! 7102fe013391a015530bf8dcadbdee26  libitm/config/sh/target.h
! aa8f2630a2936b0e0a9b41f87cb03fc7  libitm/config/sparc/sjlj.S
! 967d3d7cb78660ece8aef846d7348179  libitm/config/sparc/target.h
! 4c405d0e37cd9de4f674b5222ea88d1f  libitm/config/x86/sjlj.S
! 2f9bf1eed596a3f6837b544b05c2b8cb  libitm/config/x86/target.h
! d3a1591c1c6369e67ec11caecea31c4a  libitm/config/x86/x86_avx.cc
! 484d4b9ccacf3bf7f6ecb13aae8b1baa  libitm/config/x86/x86_sse.cc
! 1041f60a21de4c042b98b7fff9039a30  libitm/configure
! c625b73c5b130915f1fc606824e7de4c  libitm/configure.ac
! fbac9861d92da62020d608222ecf20a4  libitm/configure.tgt
! 03a80c7dc2652bcaa734264355b95fd7  libitm/containers.h
! a99c56d6764d4283dd8d9bba416711a2  libitm/dispatch.h
! b61ab3456ae4675b1c1958500d1679dc  libitm/eh_cpp.cc
! b23223f9d83d1b1902bb2bb34de8f894  libitm/libitm.h
! b17d3e38b491cbcbb5b99aa7fcbae607  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
! 4668035f966ef4c536327190eeeed152  libitm/libitm.texi
! 759763656263de1ced201389eb6845c8  libitm/libitm_i.h
! 57b6c575494b671c890995787790b8aa  libitm/local.cc
! e15ca5fea1fc328695442dd6616fa3cb  libitm/local_atomic
! 6868c22bcd268793363e80e25f84a9f6  libitm/method-gl.cc
! 0712e3a7abd4d1ec3a37e190c9f2c97a  libitm/method-ml.cc
! 56fbf0eaeca6343ef2cfcc9d97301a30  libitm/method-serial.cc
! 0751feb708d524709be89d7a0e48514e  libitm/query.cc
! 6bd2dd6d388299de9a5016803ac6ab0f  libitm/retry.cc
  4835ec70e1fbcd9acd3c280c0060afa4  libitm/testsuite/Makefile.am
! 556e27be3e87082db63480f176a868be  libitm/testsuite/Makefile.in
! db1c194c69eb8c5f5b9c5d53d057f868  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! cd008009f563ca5006713cc2ebbf3e32  libitm/testsuite/lib/libitm.exp
! 935efee774efaaefc4110a79f3925b4e  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
*************** ff5f9bdfec617e402860345005b63f97  libitm
*** 130188,130194 ****
  2742ff75bdd09e5d7b7a8243faf7a139  libitm/testsuite/libitm.c++/static_ctor.C
  46762fbea0ec17d69930afcc614c45b1  libitm/testsuite/libitm.c++/throwdown.C
  6e9bcfc4d36634b83275aa937b4f5dba  libitm/testsuite/libitm.c/alloc-1.c
! 360ceaa221cf68f7df1b9ba3ba91cb21  libitm/testsuite/libitm.c/c.exp
  d8822027c193f915ac47494062434491  libitm/testsuite/libitm.c/cancel.c
  c4cf6482a241a1d3f5834af5e79f2c5f  libitm/testsuite/libitm.c/clone-1.c
  3e8a0d50b26336181bb55be1a390c4f7  libitm/testsuite/libitm.c/dropref-2.c
--- 144100,144106 ----
  2742ff75bdd09e5d7b7a8243faf7a139  libitm/testsuite/libitm.c++/static_ctor.C
  46762fbea0ec17d69930afcc614c45b1  libitm/testsuite/libitm.c++/throwdown.C
  6e9bcfc4d36634b83275aa937b4f5dba  libitm/testsuite/libitm.c/alloc-1.c
! f492db0345a2c6a7d4c4b51027ff2895  libitm/testsuite/libitm.c/c.exp
  d8822027c193f915ac47494062434491  libitm/testsuite/libitm.c/cancel.c
  c4cf6482a241a1d3f5834af5e79f2c5f  libitm/testsuite/libitm.c/clone-1.c
  3e8a0d50b26336181bb55be1a390c4f7  libitm/testsuite/libitm.c/dropref-2.c
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 130202,130388 ****
  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
! ab9b23e859dab00aa9fb66d051cd337e  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
! 3bffe58389e1a4498ec4bc68d08c7d9d  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
--- 144114,144302 ----
  838bdb8846eac9161e3ffbe553049f2f  libitm/testsuite/libitm.c/simple-2.c
  7ecc8e520a5c494d159cb7571cca7cdc  libitm/testsuite/libitm.c/stackundo.c
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
! c3e113a78c53f840b66af3b92db7cc07  libitm/useraction.cc
! c8b0fe8706ab17c3263ffd34537bb518  libitm/util.cc
! 0571216d00f839a34b64bdfcf2da65b9  libobjc/ChangeLog
! a4237dc680fa0aac2c2a15453d259981  libobjc/Makefile.in
! f4b2a5863178e458ee1144d43d67cfee  libobjc/NXConstStr.m
! 0feb4f9789d438780bd87bb3cf14113d  libobjc/Object.m
! c33cbce32c877cb929ec676320511c81  libobjc/Protocol.m
  d5edaeee0d84e4305368367019952ba7  libobjc/README
  dbf36fc59f8e048201543aead57eb206  libobjc/THREADS
! d271ceeb6fd83495215ccddfaf312164  libobjc/accessors.m
! 593d33c148367c86e67d6d5d03bd2d99  libobjc/acinclude.m4
! ddc881248a93893607a35d7d02eec385  libobjc/aclocal.m4
! 8ccfe69eeba35b5d00ca1280ba72a7fc  libobjc/class.c
  a9245d99d9418e18cecf891d7a93d664  libobjc/config.h.in
! c64c455f0ae2e261c09dc09c2fae721e  libobjc/configure
! e1a81370b4a31f32af61603004178e17  libobjc/configure.ac
! 90b370aadc90d6feb7170e17655773fa  libobjc/encoding.c
! f631e12c8d20d11939eac9717081b63a  libobjc/error.c
! b45ee131ef377ca6dd36b04eff7b8425  libobjc/exception.c
! 86f5629d1943a5844d934fecd96fc56f  libobjc/gc.c
! 318f74fd14c6f92346b9fad9bafdc030  libobjc/hash.c
! 41ef16fb3b17b23628e4e76cafffe25a  libobjc/init.c
! 9187919ec0c38b2dec20d7167d4fdc8d  libobjc/ivars.c
! 05cc1741063407e119f767e6826a026a  libobjc/libobjc.def
! d8ee91f5c6e26c2bd20ca9745b99dc48  libobjc/linking.m
! e6c44803666697c2610824d449560402  libobjc/memory.c
! b1d22fd19cf2589330be6cfd708528e4  libobjc/methods.c
! d85fcc6a052f94718fb931f17667fb4a  libobjc/nil_method.c
! 549187c1daa7f20719ccfbb5ff07374f  libobjc/objc-foreach.c
  4758c47369f62786c0dcdf45f3397ff7  libobjc/objc-private/README
! 3bdf7330315c2b769d366eca4a9a2169  libobjc/objc-private/accessors.h
! 733e3d9d2c28b5a7211a5cf4dc73c3e9  libobjc/objc-private/common.h
! 8c6e4b0871876f179a680aeafa1484c6  libobjc/objc-private/error.h
! 9e32fb35f9b4e5687b5650086c9e41ee  libobjc/objc-private/hash.h
! f4843e44104a236047aaf8a59b96b772  libobjc/objc-private/module-abi-8.h
! 87e898f04b0cc48505153e6ad6f65c77  libobjc/objc-private/objc-list.h
! 85ac60582fd6f7376439e0b881057e02  libobjc/objc-private/objc-sync.h
! b3155b10f776370fec611f1b4b92e3c4  libobjc/objc-private/protocols.h
! 06e825b523cb305d8246034650f44d05  libobjc/objc-private/runtime.h
! e0b43c9dbb8f95cf68e296458af0abcb  libobjc/objc-private/sarray.h
! 00d81967afe9da1328599f8e7773ddd5  libobjc/objc-private/selector.h
! 9afa30190340548e52637352378b47fc  libobjc/objc-sync.c
! a5ed7b0e830093073625206cfe91cf1f  libobjc/objc/NXConstStr.h
! 2a3a99df3ada9633ed772624259e87a3  libobjc/objc/Object.h
! 5b2dd186b45282b8a55bb86aaa84e1bd  libobjc/objc/Protocol.h
  6a0d7c25fa8ddefde53bbaf36eea5bdf  libobjc/objc/README
! e585ec80bb049af04adf5ed87554c3d2  libobjc/objc/message.h
! 35491df3436cd8cb1b7010c5cff3823d  libobjc/objc/objc-decls.h
! f03d2d10f1504eadafe7b07fe1645ab6  libobjc/objc/objc-exception.h
! fece836d1dad129e459f0e67491813a6  libobjc/objc/objc-sync.h
! b4d7aee9fed8444a840c13938e3443ce  libobjc/objc/objc.h
! c750e7413cb433e0583751890339d62d  libobjc/objc/runtime.h
! 4e349412919f7cf93885f8180317cab4  libobjc/objc/thr.h
! db97a70a62d75baf7c6133362b383ccb  libobjc/objects.c
! 01dc9784c4f833e4b89bfe3bfc02bb0d  libobjc/protocols.c
! 929977e78e62ea39945d4c9f1bb35980  libobjc/sarray.c
! d1e7c7c92a4c08557a1274ac25bac6e2  libobjc/selector.c
! 029b66bb69dc70e347fe3849fc60cfd3  libobjc/sendmsg.c
! e968027639cc91f736aa2aeaee56682c  libobjc/thr.c
! 98a61e357a4683054c1747ff2d1ee045  libphobos/ChangeLog
! 958562279744f77373a0c5c9dc43b414  libphobos/Makefile.am
! a4ee57d4fc32508060fff33b4fc4f976  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
! 20b3967156eb78eebe5dd9dbb9ca4aad  libphobos/acinclude.m4
! 5d61fe3538c61043be580f44d89a0ccd  libphobos/aclocal.m4
  0c33f8a64a5c7307de4f56c482966852  libphobos/config.h.in
! 8801ef01f6a4b0f374c625d57d497bd5  libphobos/configure
! 93f5dea1f6f8471657ee180f92f09f63  libphobos/configure.ac
! fe4d29c76b2813284a7595bb311d044e  libphobos/configure.tgt
! 6bc36d3a1bb57ce2fd265f1abf3faa98  libphobos/d_rules.am
  e4224ccaecb14d942c71d31bef20d78c  libphobos/libdruntime/LICENSE.txt
! 7bde9fcb9047a7c21d8e1aa73efae997  libphobos/libdruntime/MERGE
! 29b6aeae31b2996a77b9f420f0456458  libphobos/libdruntime/Makefile.am
! 0be46f144a7f91f7852ed248b31ea659  libphobos/libdruntime/Makefile.in
! 38b5b71d4046d232eedb7b58c1651552  libphobos/libdruntime/__importc_builtins.di
! 56bb01634c256cb5d65c7952ea1c4d67  libphobos/libdruntime/__main.di
! a36852e4bff4b656855a3664d2bc775d  libphobos/libdruntime/config/aarch64/switchcontext.S
! 3c347376723731c44bb45f39e805b551  libphobos/libdruntime/config/arm/switchcontext.S
! e372bad328c3200e0b5c2e80aafaf8d2  libphobos/libdruntime/config/common/threadasm.S
! f4cc85e6f059c583d462bd54e79516c7  libphobos/libdruntime/config/loongarch/switchcontext.S
! efb3f0d13f8f48c433389bd9d23fa469  libphobos/libdruntime/config/mingw/msvc.c
! d34e2d2837cc5f3916ddd0a896bf0cdc  libphobos/libdruntime/config/mingw/switchcontext.S
! cf1ac11681b12b35598fed7025ca3f80  libphobos/libdruntime/config/mips/switchcontext.S
! 4158fa15bd216437b832985f5a46316c  libphobos/libdruntime/config/powerpc/switchcontext.S
! 439d26fe48fc79059d901c1a99b669b2  libphobos/libdruntime/config/s390/get_tls_offset.S
! b53d30c3ef6f639c51c72c6297fc4629  libphobos/libdruntime/config/systemz/get_tls_offset.S
! 5373ec7fbc0b47a057f966eb1de4d2b8  libphobos/libdruntime/config/x86/switchcontext.S
! 368c62d18b40d3ebcbeaf8bb33058124  libphobos/libdruntime/core/atomic.d
! fe9b54e551b2cc8df8016a2729279c2d  libphobos/libdruntime/core/attribute.d
! a0aca3a158b6a8a1480309aa28bdca05  libphobos/libdruntime/core/bitop.d
  e062253645c3da0b62cc738cf9f398da  libphobos/libdruntime/core/builtins.d
! dbbe9a9902925c0fd63dd364ddc6f0f7  libphobos/libdruntime/core/checkedint.d
  80d1d0596eb558e1552c3ec6dcb82f0e  libphobos/libdruntime/core/cpuid.d
  0a882783a15c305d025968dfa221c98c  libphobos/libdruntime/core/demangle.d
! e7e78c602531e7d23a262adc2f86454e  libphobos/libdruntime/core/exception.d
  456fa1344c86d322f867cb4b1736b33a  libphobos/libdruntime/core/factory.d
! 0972fcb846f0eb7ae36ab0f043829ac5  libphobos/libdruntime/core/gc/config.d
! 8aed19cd57a079dd22338fb4ffc260c6  libphobos/libdruntime/core/gc/gcinterface.d
! 3af0a86975c9c6f68e861eb366180130  libphobos/libdruntime/core/gc/registry.d
! b9eb7942294479e9772f5e8c600688f0  libphobos/libdruntime/core/int128.d
  9b0990e1c273ba37e22e1016a832e50d  libphobos/libdruntime/core/internal/abort.d
! c6975f69f2ce889f7535220c10e7acd6  libphobos/libdruntime/core/internal/array/appending.d
  68baa61f91aaeccba5172391e123900c  libphobos/libdruntime/core/internal/array/arrayassign.d
! f892ff22c2bdefd3c938b0f0d4e6738d  libphobos/libdruntime/core/internal/array/capacity.d
  cbe4dc09f4613e01a08f6e28d87e28d1  libphobos/libdruntime/core/internal/array/casting.d
  1905da04a68de992ae7b35c7b48368ba  libphobos/libdruntime/core/internal/array/comparison.d
! 8e552bfa7509bf7675af59aa69b2ef87  libphobos/libdruntime/core/internal/array/concatenation.d
! 6eee61df8dc0ac361067bc7f829b7245  libphobos/libdruntime/core/internal/array/construction.d
! ba61b28018222f1b8d379f5f43efa1c0  libphobos/libdruntime/core/internal/array/duplication.d
! 61cab4a1e24196e1a562421f32e88b36  libphobos/libdruntime/core/internal/array/equality.d
  819931c48dd7002a422cf0408399c556  libphobos/libdruntime/core/internal/array/operations.d
! b01983984c54c87a9843be3a9984cd68  libphobos/libdruntime/core/internal/array/utils.d
! 57db833322ff3cf5c13f5281f9092118  libphobos/libdruntime/core/internal/atomic.d
  87f5099304bb6fa7f4723eb1c7b3aa7d  libphobos/libdruntime/core/internal/attributes.d
! 01f2355fa4f9193b241d7d7946d4ca98  libphobos/libdruntime/core/internal/cast_.d
! 1c325c2fad1bb07f9fa1570674d5a621  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
! 43152ff49fc651bf4e493aa7fdf28311  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
! d3fa566eb0a6e525156e9e5556f03c2f  libphobos/libdruntime/core/internal/gc/bits.d
! 8928945a6d4804bce290a013bac6a64d  libphobos/libdruntime/core/internal/gc/blkcache.d
  e3dfc38f8a65bebf4c55f8e9baad6c26  libphobos/libdruntime/core/internal/gc/blockmeta.d
! cfd59f36567b882f00e2e91041332cb6  libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
! c13d940721e33ddc760ba87658864c05  libphobos/libdruntime/core/internal/gc/impl/manual/gc.d
! ba8495db5f1beaef0f71ba7a1a371bd2  libphobos/libdruntime/core/internal/gc/impl/proto/gc.d
! 6862698caf0d3ff7e9624dabc6075960  libphobos/libdruntime/core/internal/gc/os.d
  98ef57307184c4709cd3666b62371006  libphobos/libdruntime/core/internal/gc/pooltable.d
! d8c372fc06927765c514b2a74916948d  libphobos/libdruntime/core/internal/gc/proxy.d
! 98a05ff6c3ef92a7f537c0f4a6cc7d58  libphobos/libdruntime/core/internal/hash.d
! f7c19da79b7402802d72d60dac4285e6  libphobos/libdruntime/core/internal/lifetime.d
  37bd48ea66ddb05259c7995f66a87815  libphobos/libdruntime/core/internal/moving.d
! 2c1887520ec60f2c631f143f81ae7e45  libphobos/libdruntime/core/internal/newaa.d
  3da42716a2bb1df75cc2b61bf90a9b2c  libphobos/libdruntime/core/internal/parseoptions.d
  c4a519a49c6da8005c2078035b344cf7  libphobos/libdruntime/core/internal/postblit.d
! c63a250006d3522a35930fdba8e971f0  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
! b6368667ddfc1992015b0f17d683c803  libphobos/libdruntime/core/internal/traits.d
! 096b683da5f5154f21b408207977663d  libphobos/libdruntime/core/internal/utf.d
  31c5ef31a034f85a55e0763485479cee  libphobos/libdruntime/core/internal/util/array.d
  233370fbd6246580432384701cb2742a  libphobos/libdruntime/core/internal/util/math.d
+ 6220c3ffd1408cf9feca8958ad736de3  libphobos/libdruntime/core/internal/vararg/gnu.d
  c4d2c8819aacb2a15f08b12dfd19b1cc  libphobos/libdruntime/core/interpolation.d
! c332e8561d040aafee1cc0f2c9d39aec  libphobos/libdruntime/core/lifetime.d
  59a885b29a1d35b8c88198114cea1937  libphobos/libdruntime/core/math.d
! b0f0d98360d8b239a37aea7f518a18a9  libphobos/libdruntime/core/memory.d
  b9c6840aeaced95051c29d7184e88fa6  libphobos/libdruntime/core/runtime.d
! 41b1ed849ec7be6a41767a5dcbeda37f  libphobos/libdruntime/core/simd.d
  e61cb90709bb42a1617c1aa648a6438c  libphobos/libdruntime/core/stdc/assert_.d
! 637df29d23e59909eab661f022d2a207  libphobos/libdruntime/core/stdc/complex.d
! 9a49fac96112f4e7ea28874c7d21648f  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
! ffec33ea34fabbbc8c6f651ee1fb99ef  libphobos/libdruntime/core/stdc/fenv.d
  627bd812c57c65e72ca9360911ec5e37  libphobos/libdruntime/core/stdc/float_.d
! bd16aa930aa3415d91e17ad83d619c82  libphobos/libdruntime/core/stdc/inttypes.d
  cc49d5c291f85a60da360856d321dba7  libphobos/libdruntime/core/stdc/limits.d
! 3c4534c54a06a36ca3d6f26ac224eb4f  libphobos/libdruntime/core/stdc/locale.d
! be132f661e15f494cc523fbb0f5ce3a4  libphobos/libdruntime/core/stdc/math.d
! 281533fc4a11254b3d575972f377aff1  libphobos/libdruntime/core/stdc/signal.d
! 0d18509888af2c5ae192110f30f62af9  libphobos/libdruntime/core/stdc/stdarg.d
! 281d3ff476bd15b0b3b5ef3751377570  libphobos/libdruntime/core/stdc/stdatomic.d
! 41cd2eb65b0ea3549aa7099ca38856f1  libphobos/libdruntime/core/stdc/stddef.d
! 5c990cb8504a6feccc95e579381b053d  libphobos/libdruntime/core/stdc/stdint.d
! 948245b7c6abc5c3ed09b9bc6bb6c40a  libphobos/libdruntime/core/stdc/stdio.d
! 4f9cfccca44ac90852ca5317a0ba17e7  libphobos/libdruntime/core/stdc/stdlib.d
  0552522717140740fe9a502700016f3a  libphobos/libdruntime/core/stdc/string.d
! 37a87f190ddfdc73a37d56401086b17c  libphobos/libdruntime/core/stdc/tgmath.d
! 159cb7fd41a02643105bab30067d2e5a  libphobos/libdruntime/core/stdc/time.d
! c46f860e116567e70b2693dd85fdd947  libphobos/libdruntime/core/stdc/wchar_.d
! 5261bc16175b0d0b1d3ddfbc5a4c1a90  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
! 3b9013ed8322ee022d0dd3e9de155a3a  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
*************** ca3b2621c4836601de8b09d158ac3146  libpho
*** 130390,130457 ****
  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
! 37cf1fc03c8fb882e6bd777d1de22c7a  libphobos/libdruntime/core/sys/bionic/string.d
  6590cb511cc9a5f03165dd25827e7d5b  libphobos/libdruntime/core/sys/bionic/unistd.d
  e1a0c2ace7ce019d9507ff2e36d9046c  libphobos/libdruntime/core/sys/darwin/config.d
! 7268f90152682f29fdbfdaea2235051f  libphobos/libdruntime/core/sys/darwin/crt_externs.d
  0eda72e3cac9805cc23af8959075decb  libphobos/libdruntime/core/sys/darwin/dlfcn.d
! a3c540146008694cd55b9331f0ea3c00  libphobos/libdruntime/core/sys/darwin/err.d
  57ead34bc2c10609cee697697c7109d9  libphobos/libdruntime/core/sys/darwin/execinfo.d
  67367ec1a9080206e76e5985a626b96f  libphobos/libdruntime/core/sys/darwin/fcntl.d
  b371cc55752f276343a5a951da246a8f  libphobos/libdruntime/core/sys/darwin/ifaddrs.d
  cdd965e1bc4060658a5783cea01da633  libphobos/libdruntime/core/sys/darwin/mach/dyld.d
  4d28b7f25b6ec44ee33f9aa364026ee2  libphobos/libdruntime/core/sys/darwin/mach/getsect.d
! 0ff5ed83f084635f094a9003ce83e2e3  libphobos/libdruntime/core/sys/darwin/mach/kern_return.d
  32cd36bd496d40cce0ba3cc4e2c28b2a  libphobos/libdruntime/core/sys/darwin/mach/loader.d
  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
  a638835645b7f6f237988cde82cdc023  libphobos/libdruntime/core/sys/darwin/stdlib.d
! b23e9db102d21fdfaae26d64270c36b4  libphobos/libdruntime/core/sys/darwin/string.d
! 1822982f807a2d0bf4f414d7508f14b9  libphobos/libdruntime/core/sys/darwin/sys/attr.d
  f313052d67738ea2ef7ecb6a841d8e8a  libphobos/libdruntime/core/sys/darwin/sys/cdefs.d
  360c5926a42d6162839c384ccb749fc2  libphobos/libdruntime/core/sys/darwin/sys/event.d
  d45630fa4eae2334c1017e90da6181b4  libphobos/libdruntime/core/sys/darwin/sys/mman.d
  ee768f1e1a87f6a51cceb812e431b845  libphobos/libdruntime/core/sys/darwin/sys/sysctl.d
  6c97885f83797ff4aebb198ca52c218a  libphobos/libdruntime/core/sys/dragonflybsd/dlfcn.d
! 6eac382e99d9b8534968c86038d313d8  libphobos/libdruntime/core/sys/dragonflybsd/err.d
  acf1e3bd64ab277991c64333d3e0579b  libphobos/libdruntime/core/sys/dragonflybsd/execinfo.d
  a6a8f14bd00ff97c7e0951489f562ad8  libphobos/libdruntime/core/sys/dragonflybsd/netinet/in_.d
  c86f640d53951aff6dc85f8a55a95b29  libphobos/libdruntime/core/sys/dragonflybsd/pthread_np.d
  ca5f75ae9c3430ffa168de837fbdacce  libphobos/libdruntime/core/sys/dragonflybsd/stdlib.d
! 3ad6a87a26922e823d47a8e0deff95a9  libphobos/libdruntime/core/sys/dragonflybsd/string.d
  aebec2abbff9264fe5fb8fe7f0742f3e  libphobos/libdruntime/core/sys/dragonflybsd/sys/_bitset.d
  5ab9878143773ab170060d0052e88be1  libphobos/libdruntime/core/sys/dragonflybsd/sys/_cpuset.d
  9e2c4a7a7c64e5ecccf60e6ecc2bca8d  libphobos/libdruntime/core/sys/dragonflybsd/sys/cdefs.d
  7fa74bda026e2e5ef3bedefc21399d5b  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf.d
! 6a8124e3776f24c9d5d08b67fa527d5c  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf32.d
! 93b13a6451e90737c29bd54c4673ba2a  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf64.d
! 292139e3905c52bfe5553778dfa459af  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf_common.d
  c4670d2d6c9210cd8b63dd16ea2d4c7e  libphobos/libdruntime/core/sys/dragonflybsd/sys/event.d
! 94cb059685b222a5be21171cd4e5ae38  libphobos/libdruntime/core/sys/dragonflybsd/sys/link_elf.d
  3fe6b99d2ece571b1ae5c5515edd2f1c  libphobos/libdruntime/core/sys/dragonflybsd/sys/mman.d
  894ff2238ebbebe3242c4209a893c05b  libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
  1edd21f71df6ed90f611f5f352b3166c  libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
  f14294df112fde328fa8d60fe9777a4c  libphobos/libdruntime/core/sys/dragonflybsd/time.d
! d81de96f2f37b7ebcde77ba62486cb0a  libphobos/libdruntime/core/sys/elf/package.d
! bd301144c6d0d322af4d639445a1ea4d  libphobos/libdruntime/core/sys/freebsd/config.d
  fdbaf03147cfe71d5470a4e029044a7c  libphobos/libdruntime/core/sys/freebsd/dlfcn.d
! 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
--- 144304,144371 ----
  f6303bba4269a36c93ec5592d2096be9  libphobos/libdruntime/core/stdcpp/vector.d
  e834fb8a18c7d28865d5fe1a425c6688  libphobos/libdruntime/core/stdcpp/xutility.d
  fbde46456ccf791794e8a05ff5e2514e  libphobos/libdruntime/core/sync/barrier.d
! f95fc0fffa5fdf501607c39a31db5282  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
! ad2ed81f83320e3e15fdfed2f63b28ff  libphobos/libdruntime/core/sync/mutex.d
  9d0c31c030496644e123ff3169d29034  libphobos/libdruntime/core/sync/package.d
! 595da668ee567c556c6eac8ce9328a15  libphobos/libdruntime/core/sync/rwmutex.d
  7b4cf45e1f494fcb10817a325f9f13e4  libphobos/libdruntime/core/sync/semaphore.d
! f2ac41f1272b3255ed1f918c8b3e7ad5  libphobos/libdruntime/core/sys/bionic/err.d
  d55bf2dad61f2510372f4bc81570b20b  libphobos/libdruntime/core/sys/bionic/fcntl.d
  61ec901bd4228ade72b80f786ea9f841  libphobos/libdruntime/core/sys/bionic/stdlib.d
! 758ea46c9f734d80503b8fb0a1fec889  libphobos/libdruntime/core/sys/bionic/string.d
  6590cb511cc9a5f03165dd25827e7d5b  libphobos/libdruntime/core/sys/bionic/unistd.d
  e1a0c2ace7ce019d9507ff2e36d9046c  libphobos/libdruntime/core/sys/darwin/config.d
! 7a91dcb9da60753d81152aa51f9e0ce5  libphobos/libdruntime/core/sys/darwin/crt_externs.d
  0eda72e3cac9805cc23af8959075decb  libphobos/libdruntime/core/sys/darwin/dlfcn.d
! 975229dfeed3e7723733aa3b787e76cd  libphobos/libdruntime/core/sys/darwin/err.d
  57ead34bc2c10609cee697697c7109d9  libphobos/libdruntime/core/sys/darwin/execinfo.d
  67367ec1a9080206e76e5985a626b96f  libphobos/libdruntime/core/sys/darwin/fcntl.d
  b371cc55752f276343a5a951da246a8f  libphobos/libdruntime/core/sys/darwin/ifaddrs.d
  cdd965e1bc4060658a5783cea01da633  libphobos/libdruntime/core/sys/darwin/mach/dyld.d
  4d28b7f25b6ec44ee33f9aa364026ee2  libphobos/libdruntime/core/sys/darwin/mach/getsect.d
! 93ff9d577f3f723664f21603873a73a3  libphobos/libdruntime/core/sys/darwin/mach/kern_return.d
  32cd36bd496d40cce0ba3cc4e2c28b2a  libphobos/libdruntime/core/sys/darwin/mach/loader.d
  b494cd41558ecb995c4333baf8fc06e5  libphobos/libdruntime/core/sys/darwin/mach/nlist.d
  27705f6828a0cd3d2ed10b37956cb52d  libphobos/libdruntime/core/sys/darwin/mach/port.d
! d4cde4ebdee9184b0eefd64bb2ad8f0f  libphobos/libdruntime/core/sys/darwin/mach/semaphore.d
  61e753842fb4276b8cdd4a7f0aaef5fe  libphobos/libdruntime/core/sys/darwin/mach/stab.d
! 83a7e1787737a56b166b8b028919e54c  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
  a638835645b7f6f237988cde82cdc023  libphobos/libdruntime/core/sys/darwin/stdlib.d
! 0f26bf679700716a787b3ec318b6434f  libphobos/libdruntime/core/sys/darwin/string.d
! f97e8dddbea3ee90f7075bb55616f9b1  libphobos/libdruntime/core/sys/darwin/sys/attr.d
  f313052d67738ea2ef7ecb6a841d8e8a  libphobos/libdruntime/core/sys/darwin/sys/cdefs.d
  360c5926a42d6162839c384ccb749fc2  libphobos/libdruntime/core/sys/darwin/sys/event.d
  d45630fa4eae2334c1017e90da6181b4  libphobos/libdruntime/core/sys/darwin/sys/mman.d
  ee768f1e1a87f6a51cceb812e431b845  libphobos/libdruntime/core/sys/darwin/sys/sysctl.d
  6c97885f83797ff4aebb198ca52c218a  libphobos/libdruntime/core/sys/dragonflybsd/dlfcn.d
! 5ee954baa2fdb3195c6f95217436e5e4  libphobos/libdruntime/core/sys/dragonflybsd/err.d
  acf1e3bd64ab277991c64333d3e0579b  libphobos/libdruntime/core/sys/dragonflybsd/execinfo.d
  a6a8f14bd00ff97c7e0951489f562ad8  libphobos/libdruntime/core/sys/dragonflybsd/netinet/in_.d
  c86f640d53951aff6dc85f8a55a95b29  libphobos/libdruntime/core/sys/dragonflybsd/pthread_np.d
  ca5f75ae9c3430ffa168de837fbdacce  libphobos/libdruntime/core/sys/dragonflybsd/stdlib.d
! 9f811aca3be3cf369cdd9ca3f2f829ea  libphobos/libdruntime/core/sys/dragonflybsd/string.d
  aebec2abbff9264fe5fb8fe7f0742f3e  libphobos/libdruntime/core/sys/dragonflybsd/sys/_bitset.d
  5ab9878143773ab170060d0052e88be1  libphobos/libdruntime/core/sys/dragonflybsd/sys/_cpuset.d
  9e2c4a7a7c64e5ecccf60e6ecc2bca8d  libphobos/libdruntime/core/sys/dragonflybsd/sys/cdefs.d
  7fa74bda026e2e5ef3bedefc21399d5b  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf.d
! cda7a6515d46efc38d73ca3d9105f689  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf32.d
! 2a4a963b858669ed19a82564780c692f  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf64.d
! cc393d80acabc8414204f91e932ef1de  libphobos/libdruntime/core/sys/dragonflybsd/sys/elf_common.d
  c4670d2d6c9210cd8b63dd16ea2d4c7e  libphobos/libdruntime/core/sys/dragonflybsd/sys/event.d
! ced088fd8ea7c6f82f975488f38e2b6a  libphobos/libdruntime/core/sys/dragonflybsd/sys/link_elf.d
  3fe6b99d2ece571b1ae5c5515edd2f1c  libphobos/libdruntime/core/sys/dragonflybsd/sys/mman.d
  894ff2238ebbebe3242c4209a893c05b  libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d
  1edd21f71df6ed90f611f5f352b3166c  libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d
  f14294df112fde328fa8d60fe9777a4c  libphobos/libdruntime/core/sys/dragonflybsd/time.d
! b5203573054e1f05b6fd06f0ff8140a9  libphobos/libdruntime/core/sys/elf/package.d
! d2a969df6918256bbee7f766d979884c  libphobos/libdruntime/core/sys/freebsd/config.d
  fdbaf03147cfe71d5470a4e029044a7c  libphobos/libdruntime/core/sys/freebsd/dlfcn.d
! a80f642410f6fad043f800073395e281  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
*************** b9d71621d744e28f5408aca3599042ef  libpho
*** 130460,130475 ****
  307b5921875f2667f8c2a0195d46589e  libphobos/libdruntime/core/sys/freebsd/netinet/in_.d
  eed1afcf0c9c1f7170550c80d4c1a294  libphobos/libdruntime/core/sys/freebsd/pthread_np.d
  ef7226f644352e61dd81ad370cf837fc  libphobos/libdruntime/core/sys/freebsd/stdlib.d
! 6a9dc335efc1298f3d31578c068ca4f9  libphobos/libdruntime/core/sys/freebsd/string.d
  760a556212d4a95cf4109e26f2492711  libphobos/libdruntime/core/sys/freebsd/sys/_bitset.d
  55344b2716c3a4c2b4dae60cf7c69ca8  libphobos/libdruntime/core/sys/freebsd/sys/_cpuset.d
  7935160b9fb1677ccd85bb239deaa975  libphobos/libdruntime/core/sys/freebsd/sys/cdefs.d
  2d62ba1bf8ce4b7da48af344a8251ad0  libphobos/libdruntime/core/sys/freebsd/sys/elf.d
! 980343ad3f62fcc53e90161463f4efa1  libphobos/libdruntime/core/sys/freebsd/sys/elf32.d
! ee5b78ea9e270000dc26b2ff9196073b  libphobos/libdruntime/core/sys/freebsd/sys/elf64.d
! a9f3884a36dabb53caa929d982caeda6  libphobos/libdruntime/core/sys/freebsd/sys/elf_common.d
  d2880e9391595d51528eb24f44a12446  libphobos/libdruntime/core/sys/freebsd/sys/event.d
! 3438f02ecb73e3e9a85756b150a51b74  libphobos/libdruntime/core/sys/freebsd/sys/link_elf.d
  b5482e757cf68b7cab783fb27ff7e8dc  libphobos/libdruntime/core/sys/freebsd/sys/mman.d
  35461fcb8e8d6d5134771fd6e623e2ef  libphobos/libdruntime/core/sys/freebsd/sys/mount.d
  8100d016c2e3c3dbe2942f3c70f8aa18  libphobos/libdruntime/core/sys/freebsd/sys/socket.d
--- 144374,144389 ----
  307b5921875f2667f8c2a0195d46589e  libphobos/libdruntime/core/sys/freebsd/netinet/in_.d
  eed1afcf0c9c1f7170550c80d4c1a294  libphobos/libdruntime/core/sys/freebsd/pthread_np.d
  ef7226f644352e61dd81ad370cf837fc  libphobos/libdruntime/core/sys/freebsd/stdlib.d
! de107d272fe23928ef8abe57b90a0833  libphobos/libdruntime/core/sys/freebsd/string.d
  760a556212d4a95cf4109e26f2492711  libphobos/libdruntime/core/sys/freebsd/sys/_bitset.d
  55344b2716c3a4c2b4dae60cf7c69ca8  libphobos/libdruntime/core/sys/freebsd/sys/_cpuset.d
  7935160b9fb1677ccd85bb239deaa975  libphobos/libdruntime/core/sys/freebsd/sys/cdefs.d
  2d62ba1bf8ce4b7da48af344a8251ad0  libphobos/libdruntime/core/sys/freebsd/sys/elf.d
! 116162ebb559c5741e99c5cc3d46c031  libphobos/libdruntime/core/sys/freebsd/sys/elf32.d
! 3ab36ef8fe8c1b5d9cd7084ed4bac08d  libphobos/libdruntime/core/sys/freebsd/sys/elf64.d
! c37e0f3f5cacea0bebfc5d441a1839be  libphobos/libdruntime/core/sys/freebsd/sys/elf_common.d
  d2880e9391595d51528eb24f44a12446  libphobos/libdruntime/core/sys/freebsd/sys/event.d
! 15605dee51bbaff0e9d5fadd89f06b9f  libphobos/libdruntime/core/sys/freebsd/sys/link_elf.d
  b5482e757cf68b7cab783fb27ff7e8dc  libphobos/libdruntime/core/sys/freebsd/sys/mman.d
  35461fcb8e8d6d5134771fd6e623e2ef  libphobos/libdruntime/core/sys/freebsd/sys/mount.d
  8100d016c2e3c3dbe2942f3c70f8aa18  libphobos/libdruntime/core/sys/freebsd/sys/socket.d
*************** a0652e8ab6c7bebf06553fca2458400a  libpho
*** 130478,130859 ****
  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
  dd35d5ec968968280acb0976353f23b0  libphobos/libdruntime/core/sys/linux/epoll.d
! d43645ebdb4cb7038c7eadc1216f334d  libphobos/libdruntime/core/sys/linux/err.d
  91d5d2c96df93f0773d9d91c761f449d  libphobos/libdruntime/core/sys/linux/errno.d
  a56839efe74c71ab60c49ebf16ca7b69  libphobos/libdruntime/core/sys/linux/execinfo.d
  3e71c86a817e8dbe949840fc092ca007  libphobos/libdruntime/core/sys/linux/fcntl.d
  4bac52a5767aca36f84a842fe4c8e497  libphobos/libdruntime/core/sys/linux/fs.d
  4927c381a4a9c21cfb5e6bec15ea1e1b  libphobos/libdruntime/core/sys/linux/ifaddrs.d
  56de0e501a71a8f46aaec7901998444b  libphobos/libdruntime/core/sys/linux/input.d
  52df7c34b43031f9c752b55d36015d2a  libphobos/libdruntime/core/sys/linux/input_event_codes.d
  46564c790cc7d63f5336608262fe45b7  libphobos/libdruntime/core/sys/linux/io_uring.d
! fc261411d8aef7ee816116115d19a256  libphobos/libdruntime/core/sys/linux/link.d
  ef8603d93023778c9a704c8c96f513d7  libphobos/libdruntime/core/sys/linux/linux/if_arp.d
! 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  libphobos/libdruntime/core/sys/linux/sys/auxv.d
! 0df34c56bc25c8f26c78e08c66d13cf8  libphobos/libdruntime/core/sys/linux/sys/eventfd.d
  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
! 7a54339243710cbfd79bde1f56a32e73  libphobos/libdruntime/core/sys/linux/sys/time.d
  3050f0352c0814a99d50b30404d55e4a  libphobos/libdruntime/core/sys/linux/sys/xattr.d
  0b804d571d1307b84e7e1f15b4c3d019  libphobos/libdruntime/core/sys/linux/termios.d
  51b5b6cdb4decd39c003dd6fcd9216ce  libphobos/libdruntime/core/sys/linux/time.d
  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
  f03137d862ce397c6fb8ef85bcefab73  libphobos/libdruntime/core/sys/netbsd/stdlib.d
! 7b0f236b427b427e01e8fa52532b2c3c  libphobos/libdruntime/core/sys/netbsd/string.d
  e739d3dae4d70fa6737b4ce09c43994d  libphobos/libdruntime/core/sys/netbsd/sys/elf.d
! a138f936cbb80a12577ce380e01d6e58  libphobos/libdruntime/core/sys/netbsd/sys/elf32.d
! a1b5e465ae156df5e5813b732e9d8082  libphobos/libdruntime/core/sys/netbsd/sys/elf64.d
! 313798ae65cfc16a242f6e0b4cf2f315  libphobos/libdruntime/core/sys/netbsd/sys/elf_common.d
  3b9b03a58246b1ff0add7bf8623db546  libphobos/libdruntime/core/sys/netbsd/sys/event.d
! b7d30227519e88528d6f108a0b716317  libphobos/libdruntime/core/sys/netbsd/sys/featuretest.d
! 90e9b823006c634cf0ea0fc288e628f2  libphobos/libdruntime/core/sys/netbsd/sys/link_elf.d
  9de03b49678d737774525f946308c176  libphobos/libdruntime/core/sys/netbsd/sys/mman.d
  00fa230caafce571c5e5b9b1c0e66f55  libphobos/libdruntime/core/sys/netbsd/sys/sysctl.d
  c91b85e73f2ed19d2ab87faaa1954366  libphobos/libdruntime/core/sys/netbsd/time.d
  c7b4a367e75732d0bd109155097b4d01  libphobos/libdruntime/core/sys/openbsd/dlfcn.d
! 76a7cedaf47c514815473a2e187a7c4d  libphobos/libdruntime/core/sys/openbsd/err.d
  a3a5e904d4c5c7ebb1ea955088e42c15  libphobos/libdruntime/core/sys/openbsd/execinfo.d
  79a1fe62ab4709585b456f73ff271f31  libphobos/libdruntime/core/sys/openbsd/pthread_np.d
  d164e440f3d1a1253c38845bfffd62cd  libphobos/libdruntime/core/sys/openbsd/pwd.d
  e44c1bb0475bad210df34a6ac2f2b7c5  libphobos/libdruntime/core/sys/openbsd/stdlib.d
! a9eb1c1eaf5c0383b7eda373805c48a1  libphobos/libdruntime/core/sys/openbsd/string.d
  61119274dbe0da19bb7862b1d8e3be88  libphobos/libdruntime/core/sys/openbsd/sys/cdefs.d
  4f2b043926b16e1b37a2e25509085736  libphobos/libdruntime/core/sys/openbsd/sys/elf.d
! d4381103053302df0ba8c97d46d8b62b  libphobos/libdruntime/core/sys/openbsd/sys/elf32.d
! fb3a147c098fe6a3160cdc63b6339189  libphobos/libdruntime/core/sys/openbsd/sys/elf64.d
! b0c04337726104f4eb4ab41ed3f6ba47  libphobos/libdruntime/core/sys/openbsd/sys/elf_common.d
! ed254802fe236c52abe7ec9ebf7f8f79  libphobos/libdruntime/core/sys/openbsd/sys/link_elf.d
  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
  e2bed0b739fc017fa2c967cab3adf1ab  libphobos/libdruntime/core/sys/posix/netinet/tcp.d
! 5510e426fa4a2a90b0a79841d319e8f4  libphobos/libdruntime/core/sys/posix/poll.d
! dc2efa5751c64d98f883ba967ccdf64d  libphobos/libdruntime/core/sys/posix/pthread.d
! a228203a75c388b65c27a7059185e352  libphobos/libdruntime/core/sys/posix/pwd.d
! 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
  0a83f207b25c02c481a61faf3207cb6c  libphobos/libdruntime/core/sys/posix/strings.d
  4b07be0d0a605b5a855496178e995b95  libphobos/libdruntime/core/sys/posix/sys/filio.d
  b02e329aa6c0d9275bc5c2570f426a80  libphobos/libdruntime/core/sys/posix/sys/ioccom.d
! 9bd99416560c21132ad3baf480413d7d  libphobos/libdruntime/core/sys/posix/sys/ioctl.d
  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
  571b12f57fc1cf1ed69c5fcce8b89de4  libphobos/libdruntime/core/sys/posix/sys/uio.d
  51f7afe07c50617af673fc2dbdf3cf40  libphobos/libdruntime/core/sys/posix/sys/un.d
  cac398e14e045ed42244544f84db5c9a  libphobos/libdruntime/core/sys/posix/sys/utsname.d
! 373a749fe86c1b74bb6fa2483c3acc63  libphobos/libdruntime/core/sys/posix/sys/wait.d
  63c078cb4f123c4469cc1b2af384767d  libphobos/libdruntime/core/sys/posix/syslog.d
! 7f8c41dea7291b93e10e0697c5c192bb  libphobos/libdruntime/core/sys/posix/termios.d
! 5d1c0ca3d818900f2bfffc4a19b3b57a  libphobos/libdruntime/core/sys/posix/time.d
! af71fddd1336ca49dfc7cec95b4ebdf6  libphobos/libdruntime/core/sys/posix/ucontext.d
! 2ec14e511b540a619450501226cae004  libphobos/libdruntime/core/sys/posix/unistd.d
! 9414f9f2c6d77b7a1e93b61a9916681c  libphobos/libdruntime/core/sys/posix/utime.d
! 30a7c865e2541fe983de69db93f37601  libphobos/libdruntime/core/sys/solaris/dlfcn.d
  e24762f124741eb7164ac6d35f819119  libphobos/libdruntime/core/sys/solaris/elf.d
! 6609181d8ebdbb548ac7d475d0b53e25  libphobos/libdruntime/core/sys/solaris/err.d
  d821485cf4fb84fc3a4823d17496c304  libphobos/libdruntime/core/sys/solaris/execinfo.d
  13168aebf00d1f79d79f7aa9a14ee45e  libphobos/libdruntime/core/sys/solaris/libelf.d
! b80defc2ca94dd32d65995270ef8aed4  libphobos/libdruntime/core/sys/solaris/link.d
  9ab55da380bb23d8586ee2d0026f2d88  libphobos/libdruntime/core/sys/solaris/stdlib.d
! 9fb6ca59babfdba67d5bb0f0694e6ca5  libphobos/libdruntime/core/sys/solaris/sys/elf.d
  5d49ba8540337b3091779630f6322638  libphobos/libdruntime/core/sys/solaris/sys/elf_386.d
  546d1db9dd4a4d870ec967cc605fc9e7  libphobos/libdruntime/core/sys/solaris/sys/elf_SPARC.d
  c3b9387d319e17b1825a2b306d1b524d  libphobos/libdruntime/core/sys/solaris/sys/elf_amd64.d
  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
! 3b74ab1f64092270ee918e535b465ec3  libphobos/libdruntime/core/sys/windows/lmchdev.d
! 17fae8435d41dae50cb858e235817c16  libphobos/libdruntime/core/sys/windows/lmconfig.d
! 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
  c69c0296cad2a95a19d24b2eaf19fcac  libphobos/libdruntime/core/sys/windows/lmsname.d
! d21d34e971eedb2f20908b5fad8b22dd  libphobos/libdruntime/core/sys/windows/lmstats.d
! 1f60121836d98424b866b38e29f37f2e  libphobos/libdruntime/core/sys/windows/lmsvc.d
! f15343ede37ec86dcc75816d9d02868a  libphobos/libdruntime/core/sys/windows/lmuse.d
  3e13960adb39f79707752dc97f60561c  libphobos/libdruntime/core/sys/windows/lmuseflg.d
! 4080fb9cc3981b43bc5ac9f4df6dbb10  libphobos/libdruntime/core/sys/windows/lmwksta.d
! 5af22687bc52cbcb244cf60cc21c52ba  libphobos/libdruntime/core/sys/windows/lzexpand.d
! 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
! 1165bc4ee8dd5fddab6697f2ddda7abe  libphobos/libdruntime/core/sys/windows/mswsock.d
! 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
! 7f9d12c75743ce395c8b303201bb285c  libphobos/libdruntime/core/sys/windows/objfwd.d
! 731da7d8328359d6198b42c745d9e78c  libphobos/libdruntime/core/sys/windows/objidl.d
  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
  1ba9651d7bfe8d66848a51645e404512  libphobos/libdruntime/core/sys/windows/raserror.d
! d40036d2cab0345df2a1d1039ebf859c  libphobos/libdruntime/core/sys/windows/rassapi.d
  3e8de16498adf94d5d1cbaea643cf6d6  libphobos/libdruntime/core/sys/windows/reason.d
! 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
! 69b21c5cd83a75c2b1f4f94d981edaae  libphobos/libdruntime/core/sys/windows/rpcndr.d
! c0479e24efb06797b2242dc8ffec02d8  libphobos/libdruntime/core/sys/windows/rpcnsi.d
! 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
! 4b2dd7c8174b1c355d0e24ae4b21a440  libphobos/libdruntime/core/sys/windows/setupapi.d
! 7756a3f5cad87d4789b99fea17805765  libphobos/libdruntime/core/sys/windows/shellapi.d
! 0f9117458e2adccc8d6ce4ae0682b41f  libphobos/libdruntime/core/sys/windows/shldisp.d
  3ad5f1d120a46d1fab8f904f2c9e4c22  libphobos/libdruntime/core/sys/windows/shlguid.d
! 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
! 65bcd9944f4abf3f2c5c5bab875e090e  libphobos/libdruntime/core/sys/windows/windef.d
  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
--- 144392,144778 ----
  7580b3a7ee4945c8401ff9ad2b1eb5d8  libphobos/libdruntime/core/sys/freebsd/time.d
  c68553e0e4c1471fcb8b5980937560d0  libphobos/libdruntime/core/sys/freebsd/unistd.d
  2e58042b40b06181daf7cb32b0d0b3d6  libphobos/libdruntime/core/sys/linux/config.d
! 69acbdebb3e0bdb8a0e7fe4506b979d0  libphobos/libdruntime/core/sys/linux/dlfcn.d
! 121c0f008287073013387f0acdd421bb  libphobos/libdruntime/core/sys/linux/elf.d
  dd35d5ec968968280acb0976353f23b0  libphobos/libdruntime/core/sys/linux/epoll.d
! f81d06b316902cdaa008361232c527e2  libphobos/libdruntime/core/sys/linux/err.d
  91d5d2c96df93f0773d9d91c761f449d  libphobos/libdruntime/core/sys/linux/errno.d
  a56839efe74c71ab60c49ebf16ca7b69  libphobos/libdruntime/core/sys/linux/execinfo.d
  3e71c86a817e8dbe949840fc092ca007  libphobos/libdruntime/core/sys/linux/fcntl.d
  4bac52a5767aca36f84a842fe4c8e497  libphobos/libdruntime/core/sys/linux/fs.d
+ c33bf841a39bb8cbda3eb7c95742defc  libphobos/libdruntime/core/sys/linux/hdlc/ioctl.d
  4927c381a4a9c21cfb5e6bec15ea1e1b  libphobos/libdruntime/core/sys/linux/ifaddrs.d
  56de0e501a71a8f46aaec7901998444b  libphobos/libdruntime/core/sys/linux/input.d
  52df7c34b43031f9c752b55d36015d2a  libphobos/libdruntime/core/sys/linux/input_event_codes.d
  46564c790cc7d63f5336608262fe45b7  libphobos/libdruntime/core/sys/linux/io_uring.d
! 8546cbb47f9235c1d3d3712bec75f582  libphobos/libdruntime/core/sys/linux/link.d
  ef8603d93023778c9a704c8c96f513d7  libphobos/libdruntime/core/sys/linux/linux/if_arp.d
! 1c17691ad5f708510ef87daba850b48f  libphobos/libdruntime/core/sys/linux/linux/if_packet.d
! 726dbe065e92f305dd89af2c48859faf  libphobos/libdruntime/core/sys/linux/net/if_.d
! b2dc68341c67721b34498f406b8eb078  libphobos/libdruntime/core/sys/linux/netinet/in_.d
  ef4ca38842cf7000f36294af3547a28a  libphobos/libdruntime/core/sys/linux/netinet/tcp.d
! cf93cb24231cf2c42585d8f3a533a1a7  libphobos/libdruntime/core/sys/linux/perf_event.d
! 3dbb24c58b4cd8ac18a97246c8c8ca6f  libphobos/libdruntime/core/sys/linux/sched.d
! 779597975f72e423eb25c60369c8fc09  libphobos/libdruntime/core/sys/linux/stdio.d
! 5a7620880b0ea588eaccb35817e1a9ad  libphobos/libdruntime/core/sys/linux/string.d
  ee7a0de6e2861775d2d754c5ac23bffb  libphobos/libdruntime/core/sys/linux/sys/auxv.d
! 2cd7a03520a9724e7f1625e48f82ee32  libphobos/libdruntime/core/sys/linux/sys/eventfd.d
  d24094280e490194dedf87b353ff18bb  libphobos/libdruntime/core/sys/linux/sys/file.d
! 716ae9dbd596ac474cbfcb0473f438ae  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
+ ba565b95f9e370ecf417289c342d7f2b  libphobos/libdruntime/core/sys/linux/sys/syscall.d
  86a89527d97460eaf8460e185ad3f275  libphobos/libdruntime/core/sys/linux/sys/sysinfo.d
! 2cb355519dece3f0fdf3dc1f6caea322  libphobos/libdruntime/core/sys/linux/sys/time.d
  3050f0352c0814a99d50b30404d55e4a  libphobos/libdruntime/core/sys/linux/sys/xattr.d
+ 164b5e475a4fb4f3cb856e026bf58429  libphobos/libdruntime/core/sys/linux/syscall.d
  0b804d571d1307b84e7e1f15b4c3d019  libphobos/libdruntime/core/sys/linux/termios.d
  51b5b6cdb4decd39c003dd6fcd9216ce  libphobos/libdruntime/core/sys/linux/time.d
  3cc075f55b6c637e3edb96ab0b0dd212  libphobos/libdruntime/core/sys/linux/timerfd.d
  8b7729333b2e7c137f3d4a1e07783823  libphobos/libdruntime/core/sys/linux/tipc.d
  a8bd53389fa93de3a4d12b5d9e5a733d  libphobos/libdruntime/core/sys/linux/uinput.d
! c221c9b91026095b75a349579e791b37  libphobos/libdruntime/core/sys/linux/unistd.d
  1b582b30d3653f119276cadc05ee72d8  libphobos/libdruntime/core/sys/netbsd/dlfcn.d
! 3d4a23f131fe534f263ef2eca60ceaa0  libphobos/libdruntime/core/sys/netbsd/err.d
  16687f12d9b35a350c3415c52d038cd0  libphobos/libdruntime/core/sys/netbsd/execinfo.d
  f03137d862ce397c6fb8ef85bcefab73  libphobos/libdruntime/core/sys/netbsd/stdlib.d
! 68b4c3fb76492a9fdfb1bc02d0bdb018  libphobos/libdruntime/core/sys/netbsd/string.d
  e739d3dae4d70fa6737b4ce09c43994d  libphobos/libdruntime/core/sys/netbsd/sys/elf.d
! 4d2217ac0f19d8208f75de333ecfeeb5  libphobos/libdruntime/core/sys/netbsd/sys/elf32.d
! f0573c28c78d9e11dfc3864e31d3184c  libphobos/libdruntime/core/sys/netbsd/sys/elf64.d
! c09bbe9235fa48b88cd89312f1ab50a5  libphobos/libdruntime/core/sys/netbsd/sys/elf_common.d
  3b9b03a58246b1ff0add7bf8623db546  libphobos/libdruntime/core/sys/netbsd/sys/event.d
! 4c17b2d2c0f8e41a00fb10a07a379958  libphobos/libdruntime/core/sys/netbsd/sys/featuretest.d
! 33191f03974b398e48b9be8ab9924671  libphobos/libdruntime/core/sys/netbsd/sys/link_elf.d
  9de03b49678d737774525f946308c176  libphobos/libdruntime/core/sys/netbsd/sys/mman.d
  00fa230caafce571c5e5b9b1c0e66f55  libphobos/libdruntime/core/sys/netbsd/sys/sysctl.d
  c91b85e73f2ed19d2ab87faaa1954366  libphobos/libdruntime/core/sys/netbsd/time.d
  c7b4a367e75732d0bd109155097b4d01  libphobos/libdruntime/core/sys/openbsd/dlfcn.d
! 458a8e1d2951a6e0d4ec88ef82269e80  libphobos/libdruntime/core/sys/openbsd/err.d
  a3a5e904d4c5c7ebb1ea955088e42c15  libphobos/libdruntime/core/sys/openbsd/execinfo.d
  79a1fe62ab4709585b456f73ff271f31  libphobos/libdruntime/core/sys/openbsd/pthread_np.d
  d164e440f3d1a1253c38845bfffd62cd  libphobos/libdruntime/core/sys/openbsd/pwd.d
  e44c1bb0475bad210df34a6ac2f2b7c5  libphobos/libdruntime/core/sys/openbsd/stdlib.d
! c26e2e37870ada29155d9d4d402a3346  libphobos/libdruntime/core/sys/openbsd/string.d
  61119274dbe0da19bb7862b1d8e3be88  libphobos/libdruntime/core/sys/openbsd/sys/cdefs.d
  4f2b043926b16e1b37a2e25509085736  libphobos/libdruntime/core/sys/openbsd/sys/elf.d
! d03ed9b4a6a15f091d5469f3c0c70e59  libphobos/libdruntime/core/sys/openbsd/sys/elf32.d
! b26e7e7c6d5c6c6b7323f5bac7d3b545  libphobos/libdruntime/core/sys/openbsd/sys/elf64.d
! c54d3e265919dc94e03006de2c36bdfe  libphobos/libdruntime/core/sys/openbsd/sys/elf_common.d
! 6cfa97dd355905c78b338fd34a31be12  libphobos/libdruntime/core/sys/openbsd/sys/link_elf.d
  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
! 1ff5c683e78242fd4e68fb3c850c389c  libphobos/libdruntime/core/sys/openbsd/unistd.d
! c44a1706b84028e8ddb94c0535143d4c  libphobos/libdruntime/core/sys/posix/aio.d
! 42964c5b2407c094472244876ac55c65  libphobos/libdruntime/core/sys/posix/arpa/inet.d
! 36e963e86b31e5f7ab6245786aa87c31  libphobos/libdruntime/core/sys/posix/config.d
! bd217535f576605e9117bc7f5752dd95  libphobos/libdruntime/core/sys/posix/dirent.d
! 00b54b99561e0a4fce45c554bc97efe0  libphobos/libdruntime/core/sys/posix/dlfcn.d
! 5e0c2084f9a10b2b1e3b186e53b7c751  libphobos/libdruntime/core/sys/posix/endian.d
! bd18b2e3881093d09312866a065c9580  libphobos/libdruntime/core/sys/posix/fcntl.d
  702d6944ce1feced53f524d8c6410bae  libphobos/libdruntime/core/sys/posix/grp.d
! ef4ab82a095f56a4f34f91e824cb20c3  libphobos/libdruntime/core/sys/posix/iconv.d
  67f194a897054ed6b4b0ec07e3764a5e  libphobos/libdruntime/core/sys/posix/inttypes.d
  81dd20c53642e5d32550aab3d366f157  libphobos/libdruntime/core/sys/posix/libgen.d
! 4df55742eb60b92d277112397689d269  libphobos/libdruntime/core/sys/posix/locale.d
! b33314002e9c1f32f105ed1784b40fc2  libphobos/libdruntime/core/sys/posix/mqueue.d
  1b0baf6dad835d2a338dfbd84007217b  libphobos/libdruntime/core/sys/posix/net/if_.d
! d1504817173a9b7c56c3df5e6a1e19c3  libphobos/libdruntime/core/sys/posix/netdb.d
! 2844973329684e006d5a7ee37b1e48d3  libphobos/libdruntime/core/sys/posix/netinet/in_.d
  e2bed0b739fc017fa2c967cab3adf1ab  libphobos/libdruntime/core/sys/posix/netinet/tcp.d
! a13c7a54d9366f2a6f6b3532b0acdcb8  libphobos/libdruntime/core/sys/posix/poll.d
! f6271a982ee04f42e338c07179c5fbfe  libphobos/libdruntime/core/sys/posix/pthread.d
! 999be38a7a23d2d864deb87c59502978  libphobos/libdruntime/core/sys/posix/pwd.d
! 4e2b82d5dc83f7f9285053a607aa20c5  libphobos/libdruntime/core/sys/posix/sched.d
! a586a5be75f2b5a94aee7452fb52511f  libphobos/libdruntime/core/sys/posix/semaphore.d
! 4eef0680802ad27e2f47dd60c48c2cf8  libphobos/libdruntime/core/sys/posix/setjmp.d
! f9eb180fbf7a46a45691b42d2c437603  libphobos/libdruntime/core/sys/posix/signal.d
  af88cfa76758ed4a06ed76224d9edb61  libphobos/libdruntime/core/sys/posix/spawn.d
! e97da1a68691014b007087413c60fdf9  libphobos/libdruntime/core/sys/posix/stdc/time.d
! b15e3448a126cb62768af58248013451  libphobos/libdruntime/core/sys/posix/stdio.d
! 6b38c0857cae0a80750b5fd082739b7e  libphobos/libdruntime/core/sys/posix/stdlib.d
  f8ac1b696e7212c92caf062e9b8b6b8a  libphobos/libdruntime/core/sys/posix/string.d
  0a83f207b25c02c481a61faf3207cb6c  libphobos/libdruntime/core/sys/posix/strings.d
  4b07be0d0a605b5a855496178e995b95  libphobos/libdruntime/core/sys/posix/sys/filio.d
  b02e329aa6c0d9275bc5c2570f426a80  libphobos/libdruntime/core/sys/posix/sys/ioccom.d
! 2a0ba1b58279393a297b0e04dd2beab0  libphobos/libdruntime/core/sys/posix/sys/ioctl.d
  b925ee7e2e3334ef78aa53486af14a6a  libphobos/libdruntime/core/sys/posix/sys/ipc.d
! 9ec5ecdb29dd6c55060e13218ce69828  libphobos/libdruntime/core/sys/posix/sys/mman.d
! f65ae8d0075853514f12917c99874cb6  libphobos/libdruntime/core/sys/posix/sys/msg.d
! 273e573dfd034b12a43850d8a656cb69  libphobos/libdruntime/core/sys/posix/sys/resource.d
! 4983a8c2296612a49e6748613a5d5d86  libphobos/libdruntime/core/sys/posix/sys/select.d
! 241439f1cd0f0f9aa500176fecc10b79  libphobos/libdruntime/core/sys/posix/sys/shm.d
! dcc55376695fa944194593c336816199  libphobos/libdruntime/core/sys/posix/sys/socket.d
! 21c05a2fe1162ccf7b19fbcad85177b3  libphobos/libdruntime/core/sys/posix/sys/stat.d
! ce725b613c0d4d81341eec732d1d7e99  libphobos/libdruntime/core/sys/posix/sys/statvfs.d
! e05b62ae11a0413d0ae0101952da35de  libphobos/libdruntime/core/sys/posix/sys/time.d
  7c741b07659843e1e0332e784c324e3f  libphobos/libdruntime/core/sys/posix/sys/ttycom.d
! 1c88b2a1708b678fd9fb04f34b4901e1  libphobos/libdruntime/core/sys/posix/sys/types.d
  571b12f57fc1cf1ed69c5fcce8b89de4  libphobos/libdruntime/core/sys/posix/sys/uio.d
  51f7afe07c50617af673fc2dbdf3cf40  libphobos/libdruntime/core/sys/posix/sys/un.d
  cac398e14e045ed42244544f84db5c9a  libphobos/libdruntime/core/sys/posix/sys/utsname.d
! bbba9ecbf87377890b2252e19289a7d9  libphobos/libdruntime/core/sys/posix/sys/wait.d
  63c078cb4f123c4469cc1b2af384767d  libphobos/libdruntime/core/sys/posix/syslog.d
! a9b9d8fff8dfb63c429c9aef7f92ca48  libphobos/libdruntime/core/sys/posix/termios.d
! e329180a1428f9f5478fc0d582f8c2b7  libphobos/libdruntime/core/sys/posix/time.d
! edfac468472283c9ad495387f1a8426c  libphobos/libdruntime/core/sys/posix/ucontext.d
! 02402ecc67fbbb070e0e34da924fee5e  libphobos/libdruntime/core/sys/posix/unistd.d
! cf583381dfc32bfad9e23b359ead7593  libphobos/libdruntime/core/sys/posix/utime.d
! 18b05f81b99da687be0151fa0f63de26  libphobos/libdruntime/core/sys/solaris/dlfcn.d
  e24762f124741eb7164ac6d35f819119  libphobos/libdruntime/core/sys/solaris/elf.d
! 29be2aa3faabb3db3e1671c7e1604376  libphobos/libdruntime/core/sys/solaris/err.d
  d821485cf4fb84fc3a4823d17496c304  libphobos/libdruntime/core/sys/solaris/execinfo.d
  13168aebf00d1f79d79f7aa9a14ee45e  libphobos/libdruntime/core/sys/solaris/libelf.d
! a4452a96b7189ec833e568e2777d3588  libphobos/libdruntime/core/sys/solaris/link.d
  9ab55da380bb23d8586ee2d0026f2d88  libphobos/libdruntime/core/sys/solaris/stdlib.d
! ae5a82fc217efa158b12160dfac22ecf  libphobos/libdruntime/core/sys/solaris/sys/elf.d
  5d49ba8540337b3091779630f6322638  libphobos/libdruntime/core/sys/solaris/sys/elf_386.d
  546d1db9dd4a4d870ec967cc605fc9e7  libphobos/libdruntime/core/sys/solaris/sys/elf_SPARC.d
  c3b9387d319e17b1825a2b306d1b524d  libphobos/libdruntime/core/sys/solaris/sys/elf_amd64.d
  0884e0943c7a980f29212b1293b12dba  libphobos/libdruntime/core/sys/solaris/sys/elf_notes.d
! a3977217c96bcf56d6c0c4ad5271db99  libphobos/libdruntime/core/sys/solaris/sys/elftypes.d
! 2bec43412d8f8f5db7d66d1285cf6596  libphobos/libdruntime/core/sys/solaris/sys/link.d
  14ec20e79b81a931cf42ef796eee5790  libphobos/libdruntime/core/sys/solaris/sys/priocntl.d
+ 6bd093bf5cc03fe24961aeaa10c47e3c  libphobos/libdruntime/core/sys/solaris/sys/procfs.d
  dc7980a052410dc02ca14cb5e51a13e8  libphobos/libdruntime/core/sys/solaris/sys/procset.d
! 7797d3971b2308ae180a9546121286d9  libphobos/libdruntime/core/sys/solaris/sys/regset.d
! be55f94abeb71758c002e33f7af5260e  libphobos/libdruntime/core/sys/solaris/sys/types.d
! c903aae07774126e3baf14bd690bbf9f  libphobos/libdruntime/core/sys/solaris/thread.d
  f3220636fa9a34351a43f51401f4186d  libphobos/libdruntime/core/sys/solaris/time.d
! 6769fb16b2e944c804eb06bf444e9bb2  libphobos/libdruntime/core/sys/windows/accctrl.d
! 5e3074f8ad7b189fa82f953b6dcaffde  libphobos/libdruntime/core/sys/windows/aclapi.d
! 851e780f4d2d7f126ae88104eab2817a  libphobos/libdruntime/core/sys/windows/aclui.d
! 6e034f0d0e9124c22c24bb9584862a7f  libphobos/libdruntime/core/sys/windows/basetsd.d
! f737ac5229b63e2c509bab65a8118672  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
! 09f9a501fb985fd2a02c5bdf6afb1009  libphobos/libdruntime/core/sys/windows/comcat.d
! 252d9387fa18cf6f8714fb952d84fb87  libphobos/libdruntime/core/sys/windows/commctrl.d
! 1c94875f3eb0a5c3d9f05e23f22bed1d  libphobos/libdruntime/core/sys/windows/commdlg.d
  bf3823be2764fc604e8c83099bd0aa17  libphobos/libdruntime/core/sys/windows/core.d
! 64ba8f39bacf6ec0ef035c3a24b95052  libphobos/libdruntime/core/sys/windows/cpl.d
  82463589a4bed21f6f5bb3c590d3b4ac  libphobos/libdruntime/core/sys/windows/cplext.d
! fb81ecb5b5d3e5ee8a91cfcf00d12c4f  libphobos/libdruntime/core/sys/windows/custcntl.d
! c10dc5c46f3e3dab943618d8c94a5416  libphobos/libdruntime/core/sys/windows/dbghelp.d
! 8a8e7baa0d8c7145c53de58641ac2482  libphobos/libdruntime/core/sys/windows/dbghelp_types.d
! 0833a84e49a3cc88f5225b1e1979c69c  libphobos/libdruntime/core/sys/windows/dbt.d
! 907a9de85202837b4defe60416d4ad74  libphobos/libdruntime/core/sys/windows/dde.d
! 8cf6ffd8cb7efc64234d3db7931dc988  libphobos/libdruntime/core/sys/windows/ddeml.d
! b40a078b88d57bd456b74b7bb574cd41  libphobos/libdruntime/core/sys/windows/dhcpcsdk.d
  8bb836897d3d7f5aa12f841f5b353fd9  libphobos/libdruntime/core/sys/windows/dlgs.d
! 176f1ecbd94ab7dad0fdf1cb423bf3fb  libphobos/libdruntime/core/sys/windows/dll.d
! bbaa7397ab363e8933ddfb18e37899c2  libphobos/libdruntime/core/sys/windows/docobj.d
! 88544f0d03aac9d403aae736657c2a1d  libphobos/libdruntime/core/sys/windows/errorrep.d
  a70075fe066cb624c031847f005428a6  libphobos/libdruntime/core/sys/windows/exdisp.d
  21344ae84f3cfdcad624405fd4f21b8b  libphobos/libdruntime/core/sys/windows/exdispid.d
! 20cb212c8d80cc1df177a31fc88a9658  libphobos/libdruntime/core/sys/windows/httpext.d
  7753f59cbc132e8a4800c4fc3741ec02  libphobos/libdruntime/core/sys/windows/idispids.d
! 953a2e45a177686df4706fbc245396ad  libphobos/libdruntime/core/sys/windows/imagehlp.d
! f6813c8dca57e47006659a97b59cd27b  libphobos/libdruntime/core/sys/windows/imm.d
! 5d8da86d228ee7bf3312ae5985f6e19d  libphobos/libdruntime/core/sys/windows/intshcut.d
! d46b95a24292da6ee8d9cc6dab61a43e  libphobos/libdruntime/core/sys/windows/ipexport.d
  0802f3e8184dc25d68a90d07e3b02d95  libphobos/libdruntime/core/sys/windows/iphlpapi.d
  4a361a77b16ca812d5966b8fe5263c1d  libphobos/libdruntime/core/sys/windows/ipifcons.d
! 1e4500e860b7ccd824b164e0b6f40668  libphobos/libdruntime/core/sys/windows/iprtrmib.d
! be83d697cfd82afbb61f0514b8dd9366  libphobos/libdruntime/core/sys/windows/iptypes.d
  3cb08ac571b1a256214aabdbc13d2652  libphobos/libdruntime/core/sys/windows/isguids.d
  303f181285839cd91eae9077757b3f88  libphobos/libdruntime/core/sys/windows/lm.d
! 18705ca99907700ffaee610546c0d699  libphobos/libdruntime/core/sys/windows/lmaccess.d
! 97c17b8e0ba73dddd1ff8f1a4f3c5611  libphobos/libdruntime/core/sys/windows/lmalert.d
  6edfe3afe225448f7c29d0921b5f33bb  libphobos/libdruntime/core/sys/windows/lmapibuf.d
! d097b6b70e22ea608795d0f9bc44320b  libphobos/libdruntime/core/sys/windows/lmat.d
! 539f75f403d1dae8b95cd72a2ddbcdd4  libphobos/libdruntime/core/sys/windows/lmaudit.d
! 74f3784adedf597e57353fcb1bd83cef  libphobos/libdruntime/core/sys/windows/lmbrowsr.d
! 8bef2e2db5d2ffab8d312e1c1dbe2dde  libphobos/libdruntime/core/sys/windows/lmchdev.d
! 794fd7bc1e5d67f1b3b9eb947e6aa362  libphobos/libdruntime/core/sys/windows/lmconfig.d
! c12b4008a45e493c52f8d3ce52b8128d  libphobos/libdruntime/core/sys/windows/lmcons.d
  8e033a663d74c385b5589a23daa1d56c  libphobos/libdruntime/core/sys/windows/lmerr.d
! 794be3699067b20d56c59c67275e6d5a  libphobos/libdruntime/core/sys/windows/lmerrlog.d
! 896f1d735c44f5b486cac07acab473eb  libphobos/libdruntime/core/sys/windows/lmmsg.d
! 13a13aeacc2d0c5afce7f2352be68296  libphobos/libdruntime/core/sys/windows/lmremutl.d
! 35a77d94464845cd0bc6da161622e9d4  libphobos/libdruntime/core/sys/windows/lmrepl.d
! 4629e1d0961602f157df1583dbe831ad  libphobos/libdruntime/core/sys/windows/lmserver.d
! c0668376922ae347b2e648df2c026e11  libphobos/libdruntime/core/sys/windows/lmshare.d
  c69c0296cad2a95a19d24b2eaf19fcac  libphobos/libdruntime/core/sys/windows/lmsname.d
! 823ed233a194f40ddb6ef1eec9f589b8  libphobos/libdruntime/core/sys/windows/lmstats.d
! 934b4ef5ac8b72261848c2e8502e5b0d  libphobos/libdruntime/core/sys/windows/lmsvc.d
! 9b3dd2222f83e56faea05e01d6d2e94f  libphobos/libdruntime/core/sys/windows/lmuse.d
  3e13960adb39f79707752dc97f60561c  libphobos/libdruntime/core/sys/windows/lmuseflg.d
! 40ba79a3c05cfb88b2b0e494bf9b87a0  libphobos/libdruntime/core/sys/windows/lmwksta.d
! d114966625117c812b9ee8e97c98a32b  libphobos/libdruntime/core/sys/windows/lzexpand.d
! f28a666b83ba76f44e4f7d86f209e825  libphobos/libdruntime/core/sys/windows/mapi.d
  40944b56ee73c24d3046fc9d313639d0  libphobos/libdruntime/core/sys/windows/mciavi.d
! 516a4de9ef00947a5e80780242f693b8  libphobos/libdruntime/core/sys/windows/mcx.d
! 0094ababf58cdefcc44ab3cb5995ed05  libphobos/libdruntime/core/sys/windows/mgmtapi.d
! 1997e629cd6812d04cf2eefdb6cd0688  libphobos/libdruntime/core/sys/windows/mmsystem.d
! 4e95cb8769f079eb7705f4e75f84782a  libphobos/libdruntime/core/sys/windows/msacm.d
! 4c7a5ee2760448e790d782f5ec712fae  libphobos/libdruntime/core/sys/windows/mshtml.d
! 04823d8711df8acd9468591d94955ea3  libphobos/libdruntime/core/sys/windows/mswsock.d
! 7c2dac597864e0a8b3bdeb007f91e489  libphobos/libdruntime/core/sys/windows/nb30.d
! c4f8cf6e76d3a7e9232155fe7e9e2438  libphobos/libdruntime/core/sys/windows/nddeapi.d
! 96420b96514a8723ff1f24d2dedf119c  libphobos/libdruntime/core/sys/windows/nspapi.d
! a24b1cf55d358869bab388af8faab8b3  libphobos/libdruntime/core/sys/windows/ntdef.d
  5a972328a9f001f96b7f7afa2b624f65  libphobos/libdruntime/core/sys/windows/ntdll.d
  e853cd965a604797654d7dd7b7fb3cc1  libphobos/libdruntime/core/sys/windows/ntldap.d
! 8e36a1f28a5dc02281f727f5c6ceb57c  libphobos/libdruntime/core/sys/windows/ntsecapi.d
! db6af77d7e072925fa3fef9ee25f02cd  libphobos/libdruntime/core/sys/windows/ntsecpkg.d
! cc8812c92c8946fa15be35d9504d6c8a  libphobos/libdruntime/core/sys/windows/oaidl.d
! f3e682668161cd12facc274a1a1f59aa  libphobos/libdruntime/core/sys/windows/objbase.d
! 7331e3f3b3c98f5640c01a21ac360a03  libphobos/libdruntime/core/sys/windows/objfwd.d
! 77a5d6ee5a7e3267c5dfe14ca6e46631  libphobos/libdruntime/core/sys/windows/objidl.d
  f74418c84313c701feb487e6505c0fff  libphobos/libdruntime/core/sys/windows/objsafe.d
! f08f8fb6ee792dcea7d9ed999cf6dc28  libphobos/libdruntime/core/sys/windows/ocidl.d
! 1571c1dda1269438dc7ec49c1257c105  libphobos/libdruntime/core/sys/windows/odbcinst.d
! b4fcc62d0800c5dc881672040080f4e6  libphobos/libdruntime/core/sys/windows/ole.d
! 7060aa6d9a17657036e76683a032df87  libphobos/libdruntime/core/sys/windows/ole2.d
  314785a8f31488c44e22711f37b32e61  libphobos/libdruntime/core/sys/windows/ole2ver.d
! 971b7d0fae284c9238292449ce60dcff  libphobos/libdruntime/core/sys/windows/oleacc.d
! 3db40f2580ddba8c15e395d54dbc348a  libphobos/libdruntime/core/sys/windows/oleauto.d
! ba0925764da2b6d760024a7586c44cd8  libphobos/libdruntime/core/sys/windows/olectl.d
  8a2f4906efa1c72b408e26de16392c75  libphobos/libdruntime/core/sys/windows/olectlid.d
! 68e2c1040c079954f3a91f4e460c3224  libphobos/libdruntime/core/sys/windows/oledlg.d
! 12aaf3af837f992dcdbb0adf376ad55b  libphobos/libdruntime/core/sys/windows/oleidl.d
  de6fbc31298db523e7fca07ce18130f8  libphobos/libdruntime/core/sys/windows/pbt.d
! b9c6d8c8743373790201e1fc02a73d86  libphobos/libdruntime/core/sys/windows/powrprof.d
! 1478dd64fb95701db7413402707dac9a  libphobos/libdruntime/core/sys/windows/prsht.d
! 97f8c0f5f7197fb4afd2e153ab33303f  libphobos/libdruntime/core/sys/windows/psapi.d
! 4562f92d2b70e11fa298e730a337e95a  libphobos/libdruntime/core/sys/windows/rapi.d
! dad94c0dde8f8537e104d04909dd31a0  libphobos/libdruntime/core/sys/windows/ras.d
! 8e041fede61671f3fec134c3d9e3889c  libphobos/libdruntime/core/sys/windows/rasdlg.d
  1ba9651d7bfe8d66848a51645e404512  libphobos/libdruntime/core/sys/windows/raserror.d
! 7c0058c75c26b93a8cbd8103988c91dc  libphobos/libdruntime/core/sys/windows/rassapi.d
  3e8de16498adf94d5d1cbaea643cf6d6  libphobos/libdruntime/core/sys/windows/reason.d
! 0bebf1e4e5ae84ca00cdbd477eaf9df8  libphobos/libdruntime/core/sys/windows/regstr.d
! ecdfe5b9d5301d96da3bbe1c54f4ba5c  libphobos/libdruntime/core/sys/windows/richedit.d
! 3a419444e301043c953e114055de2264  libphobos/libdruntime/core/sys/windows/richole.d
! 7c1c66c0aef61a43922bc16f5a37a85d  libphobos/libdruntime/core/sys/windows/rpc.d
! 5537d47e4cd389a4bc2eb8bed60b886c  libphobos/libdruntime/core/sys/windows/rpcdce.d
! 1e0bc00d18e0e5998f64a251e036f0f8  libphobos/libdruntime/core/sys/windows/rpcdce2.d
! 7af41494c344359547377c7cbfa10960  libphobos/libdruntime/core/sys/windows/rpcdcep.d
! 18e493eb42e415b3b609c7e220efde2b  libphobos/libdruntime/core/sys/windows/rpcndr.d
! a766e9a264458f12e80808b8ee1c0dde  libphobos/libdruntime/core/sys/windows/rpcnsi.d
! f5a326a01d07970ebaf4d6334bce99df  libphobos/libdruntime/core/sys/windows/rpcnsip.d
  c9fe813be1a12a243c975de9532ddc4f  libphobos/libdruntime/core/sys/windows/rpcnterr.d
! a498b8a485bbafe10fab36a6d30f6bca  libphobos/libdruntime/core/sys/windows/schannel.d
  639505f27a1f408cad2bb1bbaae182cf  libphobos/libdruntime/core/sys/windows/sdkddkver.d
! a1afbf1a9246a0dbd30d037f2342ae08  libphobos/libdruntime/core/sys/windows/secext.d
  c6327aff5cddc390305a2db5b5e3b56c  libphobos/libdruntime/core/sys/windows/security.d
  f45b998596c1b10efbcaaa154e3824a1  libphobos/libdruntime/core/sys/windows/servprov.d
! 83e1798b9f3819cd9d50259bb74ad97b  libphobos/libdruntime/core/sys/windows/setupapi.d
! bcc77b4d23aba75fd7dc93c827b7ece0  libphobos/libdruntime/core/sys/windows/shellapi.d
! 82f3110fb1104253e8da8862587245d6  libphobos/libdruntime/core/sys/windows/shldisp.d
  3ad5f1d120a46d1fab8f904f2c9e4c22  libphobos/libdruntime/core/sys/windows/shlguid.d
! 8cbe8b459d3fd1f5a6cd96f7f4a57b45  libphobos/libdruntime/core/sys/windows/shlobj.d
! 665281524ab6b6890baa4f1fc7fd733a  libphobos/libdruntime/core/sys/windows/shlwapi.d
! e8a22cb959fee7c53cd83080224f3ea5  libphobos/libdruntime/core/sys/windows/snmp.d
  f6fd3920815e6f0c460857384f5ef896  libphobos/libdruntime/core/sys/windows/sql.d
  13a386881e1b7ef88979d19e085710da  libphobos/libdruntime/core/sys/windows/sqlext.d
! fbb5876f0a77714babc6bdba17eedc48  libphobos/libdruntime/core/sys/windows/sqltypes.d
! b7d0dfd9336954fb3f8204c8c484dd07  libphobos/libdruntime/core/sys/windows/sqlucode.d
! cd846229d5fdd62d7c602170ae901269  libphobos/libdruntime/core/sys/windows/sspi.d
! db3ee0b80cdb13dcfb2e72ca6b613d16  libphobos/libdruntime/core/sys/windows/stacktrace.d
! 12f3c3928c5641f1364db587fead7295  libphobos/libdruntime/core/sys/windows/stat.d
  504474997e9ec2d7b220c5798cbd0639  libphobos/libdruntime/core/sys/windows/stdc/malloc.d
! c809b1f6924c63212bb5862edc0fde86  libphobos/libdruntime/core/sys/windows/stdc/time.d
! ca14d008653d48287df5e86b23df2021  libphobos/libdruntime/core/sys/windows/subauth.d
! 7389d7cd7abfb01ee6136b91ef9f0801  libphobos/libdruntime/core/sys/windows/threadaux.d
! 7a3d0205770b2c0873a0161a3a297e8d  libphobos/libdruntime/core/sys/windows/tlhelp32.d
  66bd241f4835318c2108f0125b4bad5f  libphobos/libdruntime/core/sys/windows/tmschema.d
! 87c0a77fa9113514102d4f6959a16ac1  libphobos/libdruntime/core/sys/windows/unknwn.d
  cb98ff926684a18df476f1124b5354d9  libphobos/libdruntime/core/sys/windows/uuid.d
! 0457d4f157bc3aaa6fefdc1960e84c62  libphobos/libdruntime/core/sys/windows/vfw.d
  4633f2ba9df184085550d29f9d42125f  libphobos/libdruntime/core/sys/windows/w32api.d
! 98759754405e8fc89c3d9193e433861f  libphobos/libdruntime/core/sys/windows/winbase.d
! 0004fe7a4c6cdf41fc530c9406371413  libphobos/libdruntime/core/sys/windows/winber.d
! f354c86810ea0d0c6dc99b9828417cee  libphobos/libdruntime/core/sys/windows/wincon.d
! 011a31c0078eb0a64eb66fa7f89f9e90  libphobos/libdruntime/core/sys/windows/wincrypt.d
! 5b7d25bdedfb05a05db8243de7d5e6d8  libphobos/libdruntime/core/sys/windows/windef.d
  293f507b533fce5d73e47c24264d26ff  libphobos/libdruntime/core/sys/windows/windows.d
! 3a994a512b1eb0a3f526147ae3e0ee31  libphobos/libdruntime/core/sys/windows/winerror.d
! 9566e5aef5341cb36a1170e430e39e98  libphobos/libdruntime/core/sys/windows/wingdi.d
! e197318f7e06e68870c7149908e0193f  libphobos/libdruntime/core/sys/windows/winhttp.d
! 474517d804a2a183b2e952d30674521e  libphobos/libdruntime/core/sys/windows/wininet.d
! 3a94d355c9c38a3d8a9e7ab073dea4cf  libphobos/libdruntime/core/sys/windows/winioctl.d
! 4311c05d2410846d38ed94e0473c610c  libphobos/libdruntime/core/sys/windows/winldap.d
! ef1bbcc1d5127f96489906e9ea6ebe5d  libphobos/libdruntime/core/sys/windows/winnetwk.d
! 29ca109ad1b29a26374cdf69b19cad7d  libphobos/libdruntime/core/sys/windows/winnls.d
! 330c0e160af0f95ff8636a7694af1394  libphobos/libdruntime/core/sys/windows/winnt.d
! 62a068176cfa8839336e22f881fa4df7  libphobos/libdruntime/core/sys/windows/winperf.d
! 88d34c8a707d9184dc8df178ccf8b02f  libphobos/libdruntime/core/sys/windows/winreg.d
! 30e8414891d489902495392bae074970  libphobos/libdruntime/core/sys/windows/winsock2.d
! 99032f40f469409226ffad3608b700fa  libphobos/libdruntime/core/sys/windows/winspool.d
! 4011389df10fdeab3bdeb53a6a5c0bc1  libphobos/libdruntime/core/sys/windows/winsvc.d
! 7cc8e61d96d4cb316235280a55e2f901  libphobos/libdruntime/core/sys/windows/winuser.d
! 71d63b0d23cd0d19fdc396d9a7dbb42d  libphobos/libdruntime/core/sys/windows/winver.d
! 41c218143153e30038adf57a97513d49  libphobos/libdruntime/core/sys/windows/wtsapi32.d
! 231ee33c45d335b2d931a7299d662cb8  libphobos/libdruntime/core/sys/windows/wtypes.d
! 15dd8438d2cdbb0ccc32b286e3a12288  libphobos/libdruntime/core/thread/context.d
  6cfc0c2485080e923e924b73defa7746  libphobos/libdruntime/core/thread/fiber/base.d
! f79a7dc44d171d8251e9510c1c74212c  libphobos/libdruntime/core/thread/fiber/package.d
! 130983a2574aa9e022416b8c448d7c7a  libphobos/libdruntime/core/thread/osthread.d
! fab302cddffc090bb088eae9fc6c384b  libphobos/libdruntime/core/thread/package.d
! edab932469668c2bb7116aab5d9b76e0  libphobos/libdruntime/core/thread/threadbase.d
  e56fd11737f2c55b4255fe3d6ac1ef28  libphobos/libdruntime/core/thread/threadgroup.d
! 2f46bd7dc1302e28bd73e6f3775f3869  libphobos/libdruntime/core/thread/types.d
! 4b521bc60abdd0deb4de23772d0f57c7  libphobos/libdruntime/core/time.d
! 3a073c402a4c1ccb2f41a59edaba8e47  libphobos/libdruntime/core/vararg.d
! 8fd3a62a61def138cfc3fc4cb394edf9  libphobos/libdruntime/core/volatile.d
! 5a204a18ba162e5057206a7aa2e7ed4a  libphobos/libdruntime/etc/valgrind/valgrind.d
  6d8c84f9aadc849a94d832fa65ac8d66  libphobos/libdruntime/etc/valgrind/valgrind_.c
! 4925070faeff62a19810edd5aa54a1e9  libphobos/libdruntime/gcc/attribute.d
! 9222dbdc66eb733dd8f47844746e3052  libphobos/libdruntime/gcc/attributes.d
! 117ff4ca7385e902ac7b5e7cb7a51a09  libphobos/libdruntime/gcc/backtrace.d
! dfc765dc63152343d6f21b706cd4d1e4  libphobos/libdruntime/gcc/builtins.d
! 47a2adda2f32565aec9abda4f8039c13  libphobos/libdruntime/gcc/config.d.in
! e4aa3fe72ca1e1a69e1be2e857ad3d92  libphobos/libdruntime/gcc/deh.d
! da96bd8abd8185914186a8d86ad079c4  libphobos/libdruntime/gcc/drtstuff.c
! c9c3aa5e2847765c01fb0a0000c0b34a  libphobos/libdruntime/gcc/emutls.d
! f27d2549f6d39f73263333b82779b076  libphobos/libdruntime/gcc/gthread.d
! e33ebbd38bf63c02a86d81e396c74d4b  libphobos/libdruntime/gcc/libbacktrace.d.in
! 42eb44969d2902f2521bffddc86f4934  libphobos/libdruntime/gcc/sections/common.d
! 01908a93888fb6e08f5782ec6656817f  libphobos/libdruntime/gcc/sections/elf.d
! cd0c75776b14ebee2534621b319fd7d5  libphobos/libdruntime/gcc/sections/macho.d
! ba409a830de18ce3686b71a2996b9ce0  libphobos/libdruntime/gcc/sections/package.d
! 0a8b8c6881f42a5c029817626ca865ae  libphobos/libdruntime/gcc/sections/pecoff.d
! 7cd71b23b4ae5087657db699dd4820db  libphobos/libdruntime/gcc/simd.d
! f2bc5e78abadaa970deff8afc34f58a8  libphobos/libdruntime/gcc/unwind/arm.d
! 4dabb05350913d8ef71a803d6b7c7744  libphobos/libdruntime/gcc/unwind/arm_common.d
! 836fff3108ff21d7b3a28afa830ddd2c  libphobos/libdruntime/gcc/unwind/c6x.d
! 371cb9df3a872784efb0e2e66a99f55b  libphobos/libdruntime/gcc/unwind/generic.d
! a65b4ab3edfbd40ae196e2ada43fc39e  libphobos/libdruntime/gcc/unwind/package.d
! df7fcef7caf5f63cafb73bdb2f8f4050  libphobos/libdruntime/gcc/unwind/pe.d
! 7dd93e6cf9f2cecb1e2d2a3c048012f2  libphobos/libdruntime/object.d
  d8d516fbbcdaf56dbedecba292ccbbf0  libphobos/libdruntime/rt/aApply.d
  354d74322247f84a028b3aa1a5e7504b  libphobos/libdruntime/rt/aApplyR.d
  b647fb15bc7ed8eeaa50ad59ae9bfe24  libphobos/libdruntime/rt/arraycat.d
  b1e402d9e259d6f12026d20eea906cdb  libphobos/libdruntime/rt/config.d
! b74e1ba7eaa50098c2d2394942e97bb4  libphobos/libdruntime/rt/critical_.d
  95971c2776b2763f2260ca4f40449ef7  libphobos/libdruntime/rt/deh.d
! 1784c377bfd973367925d9f037257b25  libphobos/libdruntime/rt/dmain2.d
  94d63a76cd37f837fa8e39cf416590e6  libphobos/libdruntime/rt/dylib_fixes.c
  6487fb837b4932675bbb23237f9a7c03  libphobos/libdruntime/rt/ehalloc.d
  54c5f0846525d6e321ce6c2cbace4dbd  libphobos/libdruntime/rt/invariant_.d
! f50c363116d2ca4687d858a5415526b4  libphobos/libdruntime/rt/lifetime.d
  3256fa529b5c773a7af9a6a8a2e989cb  libphobos/libdruntime/rt/memory.d
! 65ccf728173ab670b7d967f116a2ec8a  libphobos/libdruntime/rt/minfo.d
! f1e0e7f32e50c9d6628a251dd76fda9a  libphobos/libdruntime/rt/monitor_.d
! 8e9e90764d65fe5d22ab0a9f1599b89c  libphobos/libdruntime/rt/profilegc.d
! 81455136e3c8054bd7f1d0b1e1124c31  libphobos/libdruntime/rt/sections.d
! 05c8f16e86f19397869dbb0633aa799b  libphobos/libdruntime/rt/tlsgc.d
! 013e9098f3754477999eab42054b5cc2  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
! 9e6660cf64066a1db6917b8b90ffe9c8  libphobos/m4/druntime/os.m4
  be2340569194e9c072c40fc94eab3483  libphobos/m4/gcc_support.m4
  c49ab40607849fa623787878420e7207  libphobos/m4/gdc.m4
  458abf211dc60540bf28a9257d4bd4e5  libphobos/m4/libtool.m4
*************** b3025f8fcdacfcfd19b2f680771e0d5b  libpho
*** 130863,130871 ****
  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
--- 144782,144790 ----
  37831246a7b8e5f71727b7a713352035  libphobos/scripts/gen_phobos_sources.d
  483b5aeff7dae9fe9839ad556013fb2b  libphobos/scripts/tests_extractor.d
  e4224ccaecb14d942c71d31bef20d78c  libphobos/src/LICENSE_1_0.txt
! f682c8c04f359db1da8da0c1a2206241  libphobos/src/MERGE
! f56af5e5bd0ade2af59360f8e83e60b5  libphobos/src/Makefile.am
! fe1de4e8900292f57a1e46d98cfc7355  libphobos/src/Makefile.in
  ff30fe7275b03f69e2a7796e47d142e8  libphobos/src/drtstuff.spec
  145c3df6886ff3a292f7e57902766615  libphobos/src/etc/c/curl.d
  5b3f5b02dca77e030bb07df6acaa9066  libphobos/src/etc/c/odbc/odbc32.d
*************** ff30fe7275b03f69e2a7796e47d142e8  libpho
*** 130877,130916 ****
  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
--- 144796,144835 ----
  af47372314d40b7e06fa4d38102fabb9  libphobos/src/etc/c/odbc/sqlucode.d
  931c194ed998341ff80fd023dffed184  libphobos/src/etc/c/sqlite3.d
  7b80323c83065d7a653fce9728ebac50  libphobos/src/etc/c/zlib.d
! bd4a706c9b9fb969a3aba44aedccdf8c  libphobos/src/index.dd
  3a1ad66c3c47609c90c1f4d9cf8ddca2  libphobos/src/libgphobos.spec.in
! 27f07eb519b41fc132521438c8532430  libphobos/src/std/algorithm/comparison.d
  694c41f4d2a56ffa1cea9387144617a7  libphobos/src/std/algorithm/internal.d
! bfea1f02f1a0048e58bbcf2170cfca9b  libphobos/src/std/algorithm/iteration.d
! b38d74994191c451a28bd76b3d2c6dd0  libphobos/src/std/algorithm/mutation.d
  3f649d64367da82fd22630117d39a560  libphobos/src/std/algorithm/package.d
! e2d0704809516eca3359a1cb2a27a08b  libphobos/src/std/algorithm/searching.d
! 1781ec97884422e2ab2af71556e272e0  libphobos/src/std/algorithm/setops.d
  c089a9994eed9a6f284bcecab22792e8  libphobos/src/std/algorithm/sorting.d
! f8c43cbdab71ad5630b7dd3c5646951a  libphobos/src/std/array.d
! 693e4d61ebf3dd95cd39d68554c90536  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
! 5ed079a75eda900fd72b12e2ec90d91e  libphobos/src/std/complex.d
! 8a27c014446720d00221d6b014348215  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
! 98854bdceed01292da33bdd12c7a7120  libphobos/src/std/container/package.d
! c127e10617b611d5f1e061a6d272de6f  libphobos/src/std/container/rbtree.d
! 80b698261f95d006feca4a1b3907071c  libphobos/src/std/container/slist.d
  867341eefe22ccbb576dd75fd0283f0c  libphobos/src/std/container/util.d
! 3c954b1d9ae72b1b77a170d739adff44  libphobos/src/std/conv.d
  169872ce9cf21699f0ef882327c045d9  libphobos/src/std/csv.d
! 41fdbc8fc708104faa45bbe031818fce  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
! cb75306c6e79595521869842acb2ff90  libphobos/src/std/datetime/systime.d
! f6efdc17cf86e8edd0d4518d964cb4ae  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  libpho
*** 130919,130936 ****
  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
  5d22e6ee907f6a7a397f942e6fd276f0  libphobos/src/std/experimental/allocator/building_blocks/fallback_allocator.d
  dec0d094addeefa439e83569f2c74cce  libphobos/src/std/experimental/allocator/building_blocks/free_list.d
  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
--- 144838,144855 ----
  85ce5ae2e0d618bb94616d25761aef0b  libphobos/src/std/digest/package.d
  4a611bd9d6b92c30cfac32edfd614b54  libphobos/src/std/digest/ripemd.d
  140459aad8321d6a9b0c6e380d62ebed  libphobos/src/std/digest/sha.d
! 4daba5ce32541978e49e9784cceba405  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
! 366f5372c2eac6b155ff8553d01e12fa  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
  5d22e6ee907f6a7a397f942e6fd276f0  libphobos/src/std/experimental/allocator/building_blocks/fallback_allocator.d
  dec0d094addeefa439e83569f2c74cce  libphobos/src/std/experimental/allocator/building_blocks/free_list.d
  0d50c008cf3de079b8e5ef089f66b3b9  libphobos/src/std/experimental/allocator/building_blocks/free_tree.d
! c11ae10268512a1766eb2f3f4a063a48  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
*************** e1f1ef2268cab16fb9a11654338cbb3c  libpho
*** 130938,130944 ****
  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
--- 144857,144863 ----
  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
! df2a222ee0e8de38553b3ba0a0d87329  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
*************** f5600abfe1adcb27ff69f41acaab893b  libpho
*** 130952,131060 ****
  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
--- 144871,144980 ----
  a6638776c1ae6dbc988632be56630654  libphobos/src/std/experimental/logger/nulllogger.d
  1d604e68182f77dfbe797dc01e78c297  libphobos/src/std/experimental/logger/package.d
  768b30d13593aba9e2715a7d868d763e  libphobos/src/std/experimental/note.md
! d5677eb999add1f0b7272716abd4ab65  libphobos/src/std/file.d
  ed69de5978237426e7bd4ad3c1739056  libphobos/src/std/format/internal/floats.d
  23800e940269aaa2d047e31bdf1ba455  libphobos/src/std/format/internal/read.d
! 1215657bedf400bf3f24f2b15834843d  libphobos/src/std/format/internal/write.d
  0b7939a8b36bc1ad7a1b39456a0f2f27  libphobos/src/std/format/package.d
  8b55a2d263807b24820e6e80a2b9cd8a  libphobos/src/std/format/read.d
! 3f7e152c3494e8c6177f8b52d8aec051  libphobos/src/std/format/spec.d
  8aa87fd1333783a5a0eb34f8800e975d  libphobos/src/std/format/write.d
! 67192a1f5c199e242d32ce1821d8af29  libphobos/src/std/functional.d
! 417033d918c8a50578ee2b4750f4103f  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
! 76b34656b484bbc367218862de45334b  libphobos/src/std/internal/entropy.d
! 65b2752482c5beafe0d9c3b46fc749bd  libphobos/src/std/internal/math/biguintcore.d
  d3a41b19b71afaad9507ea2b7e63baa1  libphobos/src/std/internal/math/biguintnoasm.d
! ffe5a5a6379f2cdd3d67410fa6c523d5  libphobos/src/std/internal/math/errorfunction.d
! 0767176e616b1b6f2e19a567e085aff3  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
! 6b50effe61dff4e9bcff24bfc04bc8c2  libphobos/src/std/internal/unicode_comp.d
! ed8cb96ec62ebb38895b04d30b8f32f8  libphobos/src/std/internal/unicode_decomp.d
! e48b4ce7bdf9d6c2bf05c0feeb988c8e  libphobos/src/std/internal/unicode_grapheme.d
! e6587609b7d1bb62a631bdf1c3a96600  libphobos/src/std/internal/unicode_norm.d
! e50986d764d488314bf6aa245b5bb157  libphobos/src/std/internal/unicode_tables.d
  1032174c14b8ed750d026d9e33c0f28d  libphobos/src/std/internal/windows/advapi32.d
  8a68605320e57337881ecc17242eb7b0  libphobos/src/std/internal/windows/bcrypt.d
! 66cc75c0ba4019fcaebc5b3f3f6f6da7  libphobos/src/std/json.d
! 769a8d334a6bd2604b79467287d8adaf  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
! 469e723108920b2726532b61a1273b97  libphobos/src/std/logger/package.d
! d8f795902be376414e804c2210e0022a  libphobos/src/std/math/algebraic.d
  3cee3970cfe6bcde0d4b6c640b9aae04  libphobos/src/std/math/constants.d
! fdcb7091f61f288ffb5fddf180890949  libphobos/src/std/math/exponential.d
! 085d84528a504c88ab05bd4215bec42c  libphobos/src/std/math/hardware.d
! 2fc8b0285eab81bd86ec173718b442d0  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
! 99c4dfc75d99a595958873aa0d9cbc83  libphobos/src/std/mathspecial.d
! 06d21cb488e52d4b75acbacff1b56f16  libphobos/src/std/meta.d
! fdadf3112706335f55e6a193d9a86b0e  libphobos/src/std/mmfile.d
! bfce3399bbfb8b0a89d282dd5be0d04e  libphobos/src/std/net/curl.d
  8f6dbfa8c1df10b8e6ef116eb55bbe40  libphobos/src/std/net/isemail.d
! bc2c3810ea01d879e9408dc7d301693d  libphobos/src/std/numeric.d
  9dc136f20a441f69fb85806ebd8d9971  libphobos/src/std/outbuffer.d
  f0acf0010f4a57e539c9ce4e9d0f5755  libphobos/src/std/package.d
  fb97c6706a8ec3eeff9a08855dbbc191  libphobos/src/std/parallelism.d
! ce1fe5d48bc66d2758b1c8b3de1d0184  libphobos/src/std/path.d
! 22cade572817362e73a494298c994d0f  libphobos/src/std/process.d
! 7df935be2fb92ec96132af2742fa8ed1  libphobos/src/std/random.d
  9aefa68666e3b2384142dd9837b4d2af  libphobos/src/std/range/interfaces.d
! 974e00473946b99690cf47d780ece27c  libphobos/src/std/range/package.d
  ae94d782479273704d5fc6db0ddc4610  libphobos/src/std/range/primitives.d
! 5e4bc68a19951fa901468b9dd127c9e8  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
! 8720ed4398d16ad11257926b9d4d2b70  libphobos/src/std/regex/internal/tests.d
  25f5ce0273dbf7fcc617aeb2137a0e7d  libphobos/src/std/regex/internal/tests2.d
! 09f399c90c4b0d380065e8af4ef4ae0e  libphobos/src/std/regex/internal/thompson.d
  9d5ca0299241cbf15f55dba32d14fedc  libphobos/src/std/regex/package.d
! 5ac33e3a7f146c0dac33fc5bd40e83bf  libphobos/src/std/signals.d
! c848e1a22c4aff595c04ddb7df4c1934  libphobos/src/std/socket.d
  65fa3f6f1125566206c3a4ac3e8adfe3  libphobos/src/std/stdint.d
  ba9b15fc7c0dacd4465cd8ac35bb1737  libphobos/src/std/stdio.d
! 3ce8af7c2852c1265dec0a87dcae7842  libphobos/src/std/string.d
! 9b80bbfee054d3854a90be0cbb1a703b  libphobos/src/std/sumtype.d
! 7a5ed6243cd12ca20962a32ebdf89def  libphobos/src/std/system.d
! 648d2cea8b1db3ffb300af8dd4afdfdf  libphobos/src/std/traits.d
! 2ceae09bee727b8a87df977232f1a541  libphobos/src/std/typecons.d
  8592c7afe7a1de32c25d04e3fa0f2bca  libphobos/src/std/typetuple.d
! 039d3978f604bfdd708d72b83b5136b0  libphobos/src/std/uni/package.d
  c2ff190df1f5298cbcc40494150b1d48  libphobos/src/std/uri.d
  6925d1c023c389c0e8f51b64ef03a335  libphobos/src/std/utf.d
! b797e38f3d3e541dec33b391ba3f0cbf  libphobos/src/std/uuid.d
! dd8b1f3ca95197f4ccd34fb64bb783f0  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
! c345e0c58342f032fbeb00c63fdb3340  libphobos/testsuite/Makefile.am
! 7f7161eb630140e72abcdc2c3f7a66a3  libphobos/testsuite/Makefile.in
! 4ec92e61ac62745b1abeb54bc312c617  libphobos/testsuite/config/default.exp
! aa70b4cf24946de203c671b652c53970  libphobos/testsuite/lib/libphobos-dg.exp
! af78d82bb9e5b629c73667ceab33a5e6  libphobos/testsuite/lib/libphobos.exp
! cbb0b94d3f71fbf479418214a976a34d  libphobos/testsuite/libphobos.aa/aa.exp
! 257c41c273d6b182f32a9a6f5265f3f8  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
! ef2bd4a0583795c33a64a5f146f0dfb9  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
! 930a77549d39849e271b39ceecf56a1d  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
*************** d86b969dda21cc9af1483872e4a3dcc8  libpho
*** 131064,131083 ****
  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
--- 144984,145003 ----
  ac1556b23f971f5009959fb07f8166bf  libphobos/testsuite/libphobos.betterc/test20088.d
  3589455e03e693d6f583052b791e5f4f  libphobos/testsuite/libphobos.betterc/test20613.d
  a3cb48ed7c054296fe69ea02aaa283ef  libphobos/testsuite/libphobos.betterc/test22336.d
! 9196b7e7df04a25c034b1f19d9414f09  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
! e3a8ee58496546a8d58de347f97e1274  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
! 1a287c884ec67e8f2607ae0875dc05ec  libphobos/testsuite/libphobos.druntime/shared/druntime-shared.exp
! 8163ba95790b99fe5b0e04d5a1ce705a  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
! ef2bd4a0583795c33a64a5f146f0dfb9  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
*************** d0b0d163e054a715940a0b8c19fc84a2  libpho
*** 131092,131146 ****
  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
--- 145012,145065 ----
  68b182a855dd5d72a6c0afd27961c698  libphobos/testsuite/libphobos.exceptions/unknown_gc.d
  b6ebfcdaf3a8630eae6d2fea0200d718  libphobos/testsuite/libphobos.gc/attributes.d
  27d5233a2f2f88a9c968da002a89f585  libphobos/testsuite/libphobos.gc/forkgc.d
! c7f93c2b045d9c2a3c5df2fb48207974  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
! cbb0b94d3f71fbf479418214a976a34d  libphobos/testsuite/libphobos.hash/hash.exp
  d06bb08dcefe11cf56550d766ac037d9  libphobos/testsuite/libphobos.hash/test_hash.d
  d132751bd41e111dc5e97a83ea5cfe55  libphobos/testsuite/libphobos.imports/bug18193.d
! 3f746b9ece82f3daf339499783841843  libphobos/testsuite/libphobos.imports/imports.exp
! 0ba42ef3c303a2e62528b94d8ccb78b0  libphobos/testsuite/libphobos.init_fini/custom_gc.d
! 9ef8a15824b040d3d5eac4a429deba5b  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
! c7f93c2b045d9c2a3c5df2fb48207974  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! 00f5f8d46914c5d90c70e5d528a1cac6  libphobos/testsuite/libphobos.phobos/phobos.exp
! cd04954ff4a2d5726b17549217c534b4  libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp
! c7da34e5e80c9e17705b76c4cfadd19c  libphobos/testsuite/libphobos.phobos/static/phobos-static.exp
! cfb4d2954f23b54d586bd2a90b2ca62c  libphobos/testsuite/libphobos.phobos/std_algorithm_comparison.d
! 7539c9e4f049e3c7af17ee9f6acdd0d3  libphobos/testsuite/libphobos.phobos/std_algorithm_iteration.d
  964525d11b241c47bff9f80bf037a2e4  libphobos/testsuite/libphobos.phobos/std_algorithm_mutation.d
! 7462ec0e4f9c9ab18dfd7c0532757e70  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
! cce8d60f6c8ac61b9d79feb57a856b2f  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
! 70b313bfee1c9aae043f2e94b89d3b19  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
! 857e7bcf330b9158b948d446871c3ccd  libphobos/testsuite/libphobos.phobos/std_conv.d
  cece42183db36163b19670796f1b09f2  libphobos/testsuite/libphobos.phobos/std_csv.d
! d903f5315c1c3ad3d608d99ad5311660  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
! 072890bdda8988c89d15ce7217f2bdb0  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
*************** c7e999b4de045ce46e29f60d9323c617  libpho
*** 131181,131191 ****
  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
--- 145100,145111 ----
  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
+ 99760df5b428855f2e2b53e35884197a  libphobos/testsuite/libphobos.phobos/std_internal_entropy.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
! 55e793769f43d0cb89f087b42b812323  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
*************** d31a62f0a309aa40e9f73a27158fab81  libpho
*** 131193,131199 ****
  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
--- 145113,145120 ----
  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
! 2e6ae571dbf5b6bf6c1e6a8626b28425  libphobos/testsuite/libphobos.phobos/std_mathspecial.d
! c55ed45696f692899e66e45e5c650c5d  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  libpho
*** 131202,131222 ****
  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
--- 145123,145143 ----
  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
! e1d58592664546086b7a52c1cd2d44ff  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
! 06eb88355b1639ba5009b32d6622cb5d  libphobos/testsuite/libphobos.phobos/std_sumtype.d
! 44a07e3468605be2b04bd6741abff0dc  libphobos/testsuite/libphobos.phobos/std_traits.d
! 84807f82bbb1420ce2793d6e21b57f8a  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
! 3f09fe0ac1b40893b24db858c0afc03c  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
*************** df4c464d966dbbdce054e9d59018c866  libpho
*** 131236,131270 ****
  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
! a02d2848c2f592194c07b6580d173983  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
! 8d1eca318d9d68aa1c99146cd2cbf13e  libquadmath/libquadmath.info
! 93e59a240cab0611f80fc5d34139c86a  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
--- 145157,145193 ----
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! 65b893c2624844c7cb6a1be0cf40fd08  libphobos/testsuite/libphobos.shared/shared.exp
  97e03d8104ae4e9dceccbc2133bfa4bc  libphobos/testsuite/libphobos.thread/external_threads.d
  8d802a80fc3114c071c927e9c19be7b2  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
+ 80cc5df043e0d890c8aae43ee5608948  libphobos/testsuite/libphobos.thread/filterthrownglobal.d
+ daaa8b7f73517f4ce1608c0d3c74552c  libphobos/testsuite/libphobos.thread/filterthrownmethod.d
  3e309c288aff9749089ac68af091756f  libphobos/testsuite/libphobos.thread/join_detach.d
  42d85aa4daa1f572a3dd573c6b4a7b79  libphobos/testsuite/libphobos.thread/test_import.d
! ef2bd4a0583795c33a64a5f146f0dfb9  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
! c7f93c2b045d9c2a3c5df2fb48207974  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
! 9ef8a15824b040d3d5eac4a429deba5b  libphobos/testsuite/libphobos.typeinfo/typeinfo.exp
  b394cf23a598d3271d7bd5c679c7febd  libphobos/testsuite/libphobos.unittest/customhandler.d
! 0342110002aef9526eb42753cd0cfac9  libphobos/testsuite/libphobos.unittest/unittest.exp
  a8de1f183b347afc269d237f3fd14b61  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! be04851508693a11f8f8685d3a40d2fd  libquadmath/ChangeLog
  d981cb45023d55b1fe9629d54c616528  libquadmath/Makefile.am
! 8b9db4fd541847f61d62cd2525d1554f  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
! 60e3e895657a5d17916b45bef8520907  libquadmath/aclocal.m4
  cf5a7864ff15ab4dd1604e0f6fe4e501  libquadmath/config.h.in
! a867164183e0a8e1b47d6e41f65f6163  libquadmath/configure
  c16d6073d91cefda754d990ede4d9e9f  libquadmath/configure.ac
! 1a122c3f57e064b01adc2ee498a0494d  libquadmath/libquadmath.info
! e9aac26552a4c62905a806a9341611de  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  452fee0ef153d65eb7413a5103c63a23  libquadmath/math/acoshq.c
  c4c7d5ffedb33360fdfb16dc037faf46  libquadmath/math/acosq.c
*************** a73fdec6746eaad8ccdc8e8403aac562  libqua
*** 131396,131485 ****
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! f6f7d9a88f7cf39f4a823115f8095a9c  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
--- 145319,145408 ----
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! f046001a15d53057ee161542961c9f73  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
! f59c588c924fa6a8fdf5b39671ce29c5  libsanitizer/LOCAL_PATCHES
! 77c8af4bb646849f05ab0cd2380ea36c  libsanitizer/MERGE
  843b9a7b22b34445ab6cc181f7afd30b  libsanitizer/Makefile.am
! 039dcea53673bf748693f1a5817c9880  libsanitizer/Makefile.in
  af677523339d9108ea25d6905226bf0a  libsanitizer/README.gcc
  9fefac8c0974bfaa97f7bd2eba2ecb55  libsanitizer/acinclude.m4
! a90b34f1e50aad380aefdff221374180  libsanitizer/aclocal.m4
  9f9ad5f48e64ac70c9dcfb129fc1a890  libsanitizer/asan/Makefile.am
! 18233f272904843a0a491e7660266586  libsanitizer/asan/Makefile.in
! c1132148bc396d4e94b4082bec02c332  libsanitizer/asan/asan_activation.cpp
  49679f380cb38cd6671d4d18b3c103e2  libsanitizer/asan/asan_activation.h
  acd6633a0710d8be6454db6d024d7aa9  libsanitizer/asan/asan_activation_flags.inc
! 04172432ead254c34ae8385f356733ce  libsanitizer/asan/asan_allocator.cpp
! a6020419d296fce738f64f72f7b2c671  libsanitizer/asan/asan_allocator.h
  67d7800157dbc7b40cc249055cc0b614  libsanitizer/asan/asan_debugging.cpp
! 1ad09a4467b7c36d4552a538b41808b9  libsanitizer/asan/asan_descriptions.cpp
  4b8ca0ce2211775f27225aa7694f671d  libsanitizer/asan/asan_descriptions.h
! 377b97fde842ad28eb64247793dff3f6  libsanitizer/asan/asan_errors.cpp
! 60df7f2d94e0248addf67b2bd1700dc7  libsanitizer/asan/asan_errors.h
! e2452d0e36dd8e1bf23e0384932c1b35  libsanitizer/asan/asan_fake_stack.cpp
! cd1e3004779a188df1567ce5ee593aa3  libsanitizer/asan/asan_fake_stack.h
! 17998fe313e8a91521d414af743dfbfe  libsanitizer/asan/asan_flags.cpp
! e089fafe68a700f119ab311c1419777b  libsanitizer/asan/asan_flags.h
! 9e77d6038ab61dc3757d6be4f9ee790f  libsanitizer/asan/asan_flags.inc
! b6a7e7d03e47c6d92704c941ea77e175  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
! b26dd7d7e4a846712f51cc09ac5ae4c0  libsanitizer/asan/asan_interceptors.cpp
! 8f9f4095bdf1ee2e4508e29b3a8f73a9  libsanitizer/asan/asan_interceptors.h
! e7d4b6027f17ee062914786e78f57318  libsanitizer/asan/asan_interceptors_memintrinsics.cpp
! 7c829b2b09c5f43c40d37247d19c463c  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
! 2fb87df203545ef4127f1b8b45821c4d  libsanitizer/asan/asan_internal.h
! 3d9706ca1955de33b660efcfaf0c72bf  libsanitizer/asan/asan_linux.cpp
! 3033a7f927610c82f0e946a6f48b7757  libsanitizer/asan/asan_mac.cpp
! 7fb47c47fb3a5ff66a2c88fa9ae41dd2  libsanitizer/asan/asan_malloc_linux.cpp
! a856e685dbedec00c0b22ebe2101ad0f  libsanitizer/asan/asan_malloc_mac.cpp
! 1079d2b16ee9101984591faca59085dc  libsanitizer/asan/asan_malloc_win.cpp
  fa5272548138ecffb5872478a9e91b5e  libsanitizer/asan/asan_malloc_win_thunk.cpp
! 5a68ed9103af267d1b38894baf1e3d61  libsanitizer/asan/asan_mapping.h
  30b2997bea78189e8a56bd135ede2a34  libsanitizer/asan/asan_mapping_sparc64.h
  71186b6e110dbb29131ad64b6604faf8  libsanitizer/asan/asan_memory_profile.cpp
! c03e71c9d80c35c6f928b9e708243b97  libsanitizer/asan/asan_new_delete.cpp
! a26deb46d165ba69697cf0b5a29fccbc  libsanitizer/asan/asan_poisoning.cpp
! b322a7b9a08865b5e9d107a213b35e0b  libsanitizer/asan/asan_poisoning.h
! 3c04f1139d8dbae1eeb08ea726a2ecbb  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
! 66d85c59b844ace8a32ad4fa439a734a  libsanitizer/asan/asan_report.cpp
  79f0af80eb532c581070b6d432144cd6  libsanitizer/asan/asan_report.h
! 18552457090978b4e7c942df2c328ff0  libsanitizer/asan/asan_rtl.cpp
  d28b754f660d002fcb71421b13dc895c  libsanitizer/asan/asan_rtl_static.cpp
! 2dda5e2888550d50638ddcce230d397e  libsanitizer/asan/asan_rtl_x86_64.S
  7a66ee99b1b671c738ca237415ef25b8  libsanitizer/asan/asan_scariness_score.h
! c670ba8f26e3bcf2b758152397c96903  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
! a0ac11c49994e6105e9d9205081ec1e1  libsanitizer/asan/asan_suppressions.cpp
! 660027dc897025226663097627f9be35  libsanitizer/asan/asan_suppressions.h
! 581a28c676dcbcaa229102e11c6950f8  libsanitizer/asan/asan_thread.cpp
! bf63d0626bc3f394c15532142d9437fc  libsanitizer/asan/asan_thread.h
! 8f2ab1b75016cbe88d7c72deaa773497  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
! c7be8fd54fdc2d75c7a02cea18023679  libsanitizer/asan/asan_win_static_runtime_thunk.cpp
  faf2a6ac3826446f8109f955fc331f15  libsanitizer/asan/libtool-version
! c8af4438003f230ddf6b43349c1c56c8  libsanitizer/builtins/assembly.h
  4d6948c4912be5da16e30aac001b87d7  libsanitizer/config.h.in
! 1c7393d71f6c8c72587a1c6c5330f9e2  libsanitizer/configure
  4fb8fe43cd5510b08a3abc9a38bc4ea3  libsanitizer/configure.ac
! 2c84d3922c66e36c48943551cde268dd  libsanitizer/configure.tgt
  c5fe0662e5d5bbb3d31d1a11669cdbb8  libsanitizer/hwasan/Makefile.am
! 7c6905ddf409ba02f8a5b7b2cf41f46c  libsanitizer/hwasan/Makefile.in
! 3e2bdedf438a10a438e6e5402311b06d  libsanitizer/hwasan/hwasan.cpp
  3a85b60821e128b16c3e43236f324b7d  libsanitizer/hwasan/hwasan.h
  585fd62c519e70893541ff8779d088ff  libsanitizer/hwasan/hwasan_allocation_functions.cpp
  77c398709a899d6be47d63f035d309da  libsanitizer/hwasan/hwasan_allocator.cpp
*************** d2c53fada53bfee78b11f99e297aed7b  libsan
*** 131490,131520 ****
  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  libsanitizer/hwasan/hwasan_new_delete.cpp
! 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
--- 145413,145443 ----
  9dfd44f3f73d7a5ff9183b8624869c27  libsanitizer/hwasan/hwasan_exceptions.cpp
  9750f099c8028db1b9c972cc7157280a  libsanitizer/hwasan/hwasan_flags.h
  569536c809276273be6344267b2b960e  libsanitizer/hwasan/hwasan_flags.inc
! 8f9b314650d1e5f5a6ce9e85f38540b1  libsanitizer/hwasan/hwasan_fuchsia.cpp
! f8e4122a2de7b2082891298642094408  libsanitizer/hwasan/hwasan_globals.cpp
  e0f27a58c9d03369d2cbad572c5e99f4  libsanitizer/hwasan/hwasan_globals.h
  83d86ea8a431a8cfa7a68b8b2146e77d  libsanitizer/hwasan/hwasan_interceptors.cpp
! ab357587821431a9ccc2aba0d2e52d18  libsanitizer/hwasan/hwasan_interceptors_vfork.S
! 036e7de27c0a79be773194581cd3f9ce  libsanitizer/hwasan/hwasan_interface_internal.h
  55359d59843b4bc4362c024e04253002  libsanitizer/hwasan/hwasan_linux.cpp
! 3134957723593f0384dea9015c685fb6  libsanitizer/hwasan/hwasan_malloc_bisect.h
  4390a795bf11c5cb596462234bb81e09  libsanitizer/hwasan/hwasan_mapping.h
  70e3bc6498c0cfb6c675fda7a9b2bb10  libsanitizer/hwasan/hwasan_memintrinsics.cpp
! 5c31f7c777cd005f9909ff10530a3f80  libsanitizer/hwasan/hwasan_new_delete.cpp
! cf3c4b3ed22c1a5f954e253cfbe57706  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
! 0037ec7aeac983faeccc75ee66e68698  libsanitizer/hwasan/hwasan_report.cpp
  a428030ea59c9750d767a61dfa6c7295  libsanitizer/hwasan/hwasan_report.h
! faec7fba39b95b4e2b57ebbf2bc91b25  libsanitizer/hwasan/hwasan_setjmp_aarch64.S
  2cc1e1dfc1150cc465439b8e87f46264  libsanitizer/hwasan/hwasan_setjmp_riscv64.S
! b146b35f49bac97a9ab43f918c00206f  libsanitizer/hwasan/hwasan_setjmp_x86_64.S
! 1aa30ce6343117d1b86fa634291c8727  libsanitizer/hwasan/hwasan_tag_mismatch_aarch64.S
  2de869754f30f0e4fc56ea5e883d2957  libsanitizer/hwasan/hwasan_tag_mismatch_riscv64.S
! 10b0701b080c84b4ae6dde350be3745b  libsanitizer/hwasan/hwasan_thread.cpp
! f33ead76dc15a3329b6f47c5765f176e  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
*************** d005d0a644120838c6dfd397d6aede70  libsan
*** 131527,131540 ****
  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
--- 145450,145463 ----
  539a148aa5ee4d4d789d2b325b239c39  libsanitizer/include/sanitizer/hwasan_interface.h
  1e763d9ba4112cb3d4e650a62381f7ca  libsanitizer/include/sanitizer/linux_syscall_hooks.h
  1bd34ad322a65afee9ed3ff08641cf5b  libsanitizer/include/sanitizer/lsan_interface.h
! c47ca4bb86c670b524cffd8c40bb157c  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
! 9b23aafb68f7b9b1d0e79189e2ddda3f  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
*************** e0f26bb761d75b6aac187f2c8d755c0b  libsan
*** 131544,131591 ****
  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
--- 145467,145514 ----
  3de6060b4f9ff628820f60672dee5958  libsanitizer/include/system/linux/types.h
  177782c011eb97e4adc68bd2c39b6f84  libsanitizer/include/system/sys/ptrace.h
  158a29394be4331a9d1cde51aacb1284  libsanitizer/interception/Makefile.am
! f8ce5ff423deff429bad7fceecc648c8  libsanitizer/interception/Makefile.in
! 3c11e8db14ed3ee5efb3368eb10ac0e4  libsanitizer/interception/interception.h
! 94eaf33c04d2414439159af4594f61a1  libsanitizer/interception/interception_linux.cpp
! f16b9851a0cb295a7e222c35209dde95  libsanitizer/interception/interception_linux.h
  0e693fb7fe561dbbff408f6493c081d7  libsanitizer/interception/interception_mac.cpp
  0123641b0fbd5589d3819e5a27205e34  libsanitizer/interception/interception_mac.h
  5e3580ad904d6532995eadf5a0f76e54  libsanitizer/interception/interception_type_test.cpp
! f245c213a34c2a696bee16a453d1ffbf  libsanitizer/interception/interception_win.cpp
! b0f3e17adadb0c18f43d7a31da6688c3  libsanitizer/interception/interception_win.h
  432dc1db22008a6a94b6906dffd76915  libsanitizer/libbacktrace/Makefile.am
! d7bf098d8629e6c9ed6d5c41e3a89886  libsanitizer/libbacktrace/Makefile.in
  3ac69d9fb43e338ecc043296461ef01e  libsanitizer/libbacktrace/backtrace-rename.h
  ea35b83ff2eb2bff286f2781693b0cc7  libsanitizer/libbacktrace/backtrace-supported.h.in
  35b2978dd28dbb4048032ad8db998f5c  libsanitizer/libbacktrace/bridge.cc
  afbb83670aebea5034bc386604a01397  libsanitizer/libsanitizer.spec.in
  96c6cc59ecd5d406880d1473236ccae0  libsanitizer/lsan/Makefile.am
! 89e9054201dc072cfb540a7724069295  libsanitizer/lsan/Makefile.in
  f2f51c768041ab63c956646fa5f7af5b  libsanitizer/lsan/libtool-version
  c7cb472161bc9fd3b41f1a71266a9090  libsanitizer/lsan/lsan.cpp
  2cad573e8f16d3af1d83656591cf952c  libsanitizer/lsan/lsan.h
! 1d754a3a45c1ea107cf144914cebd298  libsanitizer/lsan/lsan_allocator.cpp
! 6362685d1387cb8cae4b340c02e8535d  libsanitizer/lsan/lsan_allocator.h
! d48aae4e18911060b885780cad7bcbac  libsanitizer/lsan/lsan_common.cpp
! 3ef3ffb4fcf3bc3accac2eec9929f2b8  libsanitizer/lsan/lsan_common.h
  837b31d5c0aaab07f7afbc0cbef04f24  libsanitizer/lsan/lsan_common_fuchsia.cpp
! 487ff7b7c9d0d77b296a8045887719e5  libsanitizer/lsan/lsan_common_linux.cpp
  e0c1fefc6d7a8d0f00122415d01fb44d  libsanitizer/lsan/lsan_common_mac.cpp
  2107cfb13c020efdf410726abf2d8979  libsanitizer/lsan/lsan_flags.inc
! ef9a10163604ef205fbcaab69bf9d0ae  libsanitizer/lsan/lsan_fuchsia.cpp
  0a42ef558db22ea416707423b4ee5313  libsanitizer/lsan/lsan_fuchsia.h
! dff87fd5758e2cfaa64af7b1f9a8cea2  libsanitizer/lsan/lsan_interceptors.cpp
  956639c4d9b147ff17fbd7c99f809223  libsanitizer/lsan/lsan_linux.cpp
  4fa725b880e76379f3f26408ca1558f7  libsanitizer/lsan/lsan_mac.cpp
! 650c8091c1ae08bacd3d8ad0e91c35de  libsanitizer/lsan/lsan_malloc_mac.cpp
! c8c3e715c6354f05ae12ba65a4e5382d  libsanitizer/lsan/lsan_posix.cpp
! 6da64ca6e1094c34364faf03f77f03e7  libsanitizer/lsan/lsan_posix.h
  4ef9c81bd893835723a68ebd22cfa9ab  libsanitizer/lsan/lsan_preinit.cpp
! 8b1959afc2c520a73871466e10d4167b  libsanitizer/lsan/lsan_thread.cpp
! d4382e96a94ba87c7474b7c55b762213  libsanitizer/lsan/lsan_thread.h
  30e8a1a43b912457b629922cb03ef1cf  libsanitizer/merge.sh
  c301ea6a9cda0da0cfe222dc46b34e94  libsanitizer/sanitizer_common/Makefile.am
! 1d256563c2de7ed098e5a95953422048  libsanitizer/sanitizer_common/Makefile.in
  2b6304aafd354b4cfee6b31273b04192  libsanitizer/sanitizer_common/sancov_flags.cpp
  1cee185b14a59f3bfc596ac9bf851f89  libsanitizer/sanitizer_common/sancov_flags.h
  72bcafc00c57c1ae00e19cb2b2a48f9c  libsanitizer/sanitizer_common/sancov_flags.inc
*************** f04b14c8928c5d1f093e2ae9138a4d97  libsan
*** 131595,131606 ****
  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
--- 145518,145529 ----
  58afe7ee0a8301bc2ee5e0495a5c3720  libsanitizer/sanitizer_common/sanitizer_allocator_checks.cpp
  4ee074df007bb212ba0e23ec75009eca  libsanitizer/sanitizer_common/sanitizer_allocator_checks.h
  42255d2f0af0d6529e6562e12fe76714  libsanitizer/sanitizer_common/sanitizer_allocator_combined.h
! 97ece62476f9e946cbdaa19b0285b5f3  libsanitizer/sanitizer_common/sanitizer_allocator_dlsym.h
  5fc70560e6fad39c418b5589426a8d82  libsanitizer/sanitizer_common/sanitizer_allocator_interface.h
! 448fc12528de7f022ecc830b5e18bf30  libsanitizer/sanitizer_common/sanitizer_allocator_internal.h
! 3451872ecfd30f21715f6f84832c17ea  libsanitizer/sanitizer_common/sanitizer_allocator_local_cache.h
  231e9ee76b69fc5da94ead1b51cdf94c  libsanitizer/sanitizer_common/sanitizer_allocator_primary32.h
! 1da3e32f371cf7b94ab6ec0e77e0acf7  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
*************** fea02c2bee302ef80068d06de6550959  libsan
*** 131609,131645 ****
  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
! f7ca723d15d4d448c700727f05b86537  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
! 09c9b0c5fca7989c02e9a0dcd2ab933d  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S
  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
--- 145532,145568 ----
  0136f420ff25cc446d086b8a05a982e9  libsanitizer/sanitizer_common/sanitizer_array_ref.h
  61f6307bbc3dfa55854a788367fa217a  libsanitizer/sanitizer_common/sanitizer_asm.h
  7cd70281393ca476547040a412b9dbce  libsanitizer/sanitizer_common/sanitizer_atomic.h
! 64e66099bb819db40e20d70ecc0981bb  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
! dcff9380486642ad39e2ca36668a6310  libsanitizer/sanitizer_common/sanitizer_common.h
! 72c52a6d7dbfbdc233a087c6c4398346  libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
! 35a277fb883f636c344675c31d202b0e  libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc
! 2655125c87f7c71f5e5478db2ca359fe  libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
! 9e0c290bd269fe95a3079cc29f7c89e1  libsanitizer/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc
  c664d5fb1514c978d28a6a62b2040b53  libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc
! 956adae6b09618354dbb46f8816141cd  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S
  3d738bf27e973b3bebdbb87ed70467c0  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S
! 3b4e259439cbcb1247489c5f8ae42a80  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S
  38347e4acdc72a8875c7924d7b50505f  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
  d5715d90f08ee5cca09715fd5b25b201  libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_riscv64.inc.S
! 8e19572fa0f0fd7d8ee7ece961e9bdc0  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
! 3c4ac8375c5395f5fb28519981cca799  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
! cc817c1830cfa03b8405915cc65b9e0b  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  libsan
*** 131648,131723 ****
  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
! 2b88de7322e61cd7d89c0b59bef0682e  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 0e9136f3c4cd9ebab1135b8c7fc95b49  libsanitizer/sanitizer_common/sanitizer_linux.h
! b1e56ece7ce8aaa37374e2df63d0a192  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
! ae39fafc805d942f70ebb97140084eae  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! 292ad6a7d436278e2f125cecbe8cd711  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
--- 145571,145646 ----
  51f60f3e08112ffd8d2087e1118450d2  libsanitizer/sanitizer_common/sanitizer_dl.cpp
  56aa2ff246c77ba5a8c066d6cc0c8ea9  libsanitizer/sanitizer_common/sanitizer_dl.h
  2bfe2f83195a87b4f57151a8adc98706  libsanitizer/sanitizer_common/sanitizer_errno.cpp
! 58efda50d41552a57cfcb3ed5b329d20  libsanitizer/sanitizer_common/sanitizer_errno.h
! 41e0b89e8438d5076b5f1fdc7932b76d  libsanitizer/sanitizer_common/sanitizer_errno_codes.h
! 52d8d515d8a6fb2d8626b56e2065943d  libsanitizer/sanitizer_common/sanitizer_file.cpp
! fe3a18fc7087866225c9bb4b1c600932  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
! fe40f7c2a72e8c23566d509f382e425e  libsanitizer/sanitizer_common/sanitizer_flags.inc
  c494ec3dcc524f252a462aafb5d84148  libsanitizer/sanitizer_common/sanitizer_flat_map.h
! 1a8626021d7e8ac4edec11212c99787e  libsanitizer/sanitizer_common/sanitizer_fuchsia.cpp
! 28d8463cdde8cd03a0278ce88d000065  libsanitizer/sanitizer_common/sanitizer_fuchsia.h
! 14e511aaa73bd5c9f9fa5283df448c3c  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
! 05113e403f8108c9649ed130364bd06b  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
! 3b040cdbbd8d59dd8bca5f091644d2e0  libsanitizer/sanitizer_common/sanitizer_linux.cpp
! 6ee055da8056b99c138578a0a97fc57b  libsanitizer/sanitizer_common/sanitizer_linux.h
! 8acdbbbfdb9494286418a43be5214019  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
! b260755e2e295cca629af4888461f415  libsanitizer/sanitizer_common/sanitizer_mac.cpp
! 1383a729fb9fa35eb8ec302a325a70e9  libsanitizer/sanitizer_common/sanitizer_mac.h
  3c8a29762c7ecf7082ea5a28335716f6  libsanitizer/sanitizer_common/sanitizer_mac_libcdep.cpp
  e93238f16cdf5cf465aa2c721a4e5447  libsanitizer/sanitizer_common/sanitizer_mallinfo.h
! 2072e18eeb42e914f38272cab6d58d26  libsanitizer/sanitizer_common/sanitizer_malloc_mac.inc
  37d72ef7a8199cc8557a541d81be679f  libsanitizer/sanitizer_common/sanitizer_mutex.cpp
  7dc346968361491c8e35254fcd12ca5c  libsanitizer/sanitizer_common/sanitizer_mutex.h
! 79b666c2befc03c43d5d2c29085e5787  libsanitizer/sanitizer_common/sanitizer_netbsd.cpp
  ceac766877c4c2363d959a0ebaa74421  libsanitizer/sanitizer_common/sanitizer_placement_new.h
! a0b5c16bfa42f20401128d91562b45ee  libsanitizer/sanitizer_common/sanitizer_platform.h
! 7623c50f6135b32bbf01c9465ce923ae  libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
! 47644b7c8e4a3f43b3fff13d585441fa  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.cpp
! e2028d620f63073886f18579dcdb8d5f  libsanitizer/sanitizer_common/sanitizer_platform_limits_freebsd.h
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
! 4243d5b306f4e60f91a88e43d960d82d  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
! 411ecf024e7ca3399783152d0a8b1f14  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
! d28e2960d92dbb91c078f51057656dff  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
! 3d5549a16542a4aafd42b392ff7417b1  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
! ded55bf57e2f75649daa859be5849aea  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
! d3d6fc8b858ce5fb68945027ac64585a  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
! 88d3a3793fefd2dbf92ce4ccfdcf2831  libsanitizer/sanitizer_common/sanitizer_posix.cpp
  5afb08036b6622b667986de89bc658de  libsanitizer/sanitizer_common/sanitizer_posix.h
! d2df504620ac24e96f3fae59b61e9148  libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
  4dcc859b9034e8711c54a922aa2655e5  libsanitizer/sanitizer_common/sanitizer_printf.cpp
! 3783b1a7e271877cf2f8dc7965de16e9  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
! 56bdea2c98fb5586f96906b8b69b1148  libsanitizer/sanitizer_common/sanitizer_procmaps_mac.cpp
! ca9cc861399b488409ed41ba77d7607f  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
! ed727af3ec328732af654414e0c2ce8c  libsanitizer/sanitizer_common/sanitizer_redefine_builtins.h
  790117d4c85c98c499151ad830f99a49  libsanitizer/sanitizer_common/sanitizer_report_decorator.h
  490e9e2e338b8cd9b363bf836a1362d7  libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
! 78c6484faf368ee653b5f05b5d751999  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
*************** a0239ea33a0aa9852e7a41bfcc9a4d23  libsan
*** 131731,131743 ****
  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
! 022ee2ebd01a6e9a6587f6890a6f18e1  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
--- 145654,145666 ----
  c924ab59f0a14028d44589b5772ec4a4  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.cpp
  633c7a616408195d104492b3f8d74d39  libsanitizer/sanitizer_common/sanitizer_stacktrace_printer.h
  5ca09ec40d6a2d96e5146f3711376479  libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cpp
! 6919a5e768e3ad23e6406584730e28ae  libsanitizer/sanitizer_common/sanitizer_stoptheworld.h
  c1faa837dd50d9ad2162751a200fa58b  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.cpp
  60c0888eff94b59773f87548c52f756a  libsanitizer/sanitizer_common/sanitizer_stoptheworld_fuchsia.h
! 825e90cb11b28e28543b0edd701eb0c0  libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
! 45c046bc82da22558789c6a05696adae  libsanitizer/sanitizer_common/sanitizer_stoptheworld_mac.cpp
! 46087464156bf2cb64d2217cd8d13d72  libsanitizer/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp
! d59060372dd2172b9e88452a21f73f02  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  libsan
*** 131745,131758 ****
  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
--- 145668,145681 ----
  7f944ae09b27a906e595c100e8e459ee  libsanitizer/sanitizer_common/sanitizer_symbolizer_internal.h
  86502e8ef2c025574561f9f604e8652d  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
  57fad0f520b4b3e56bb19ce40a50676a  libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
! ad9c7eae214d496bc3eeb6ef36dffdfb  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
! 0bfe7231ca327049e3652c73f2733227  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
*************** dd3c422b6984d35ca7d0c2b990a064f7  libsan
*** 131769,131786 ****
  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
--- 145692,145709 ----
  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
! 2ef4d936e361be65877c9cafd6cb1a2d  libsanitizer/sanitizer_common/sanitizer_thread_registry.cpp
! 56e4d90241defe45ceeeddfd39f242d0  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
! b99b73f250a760b524be450b0d3bbc31  libsanitizer/sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
! 104d51472adf42d7f6e3f82699bc6e37  libsanitizer/sanitizer_common/sanitizer_unwind_win.cpp
  c6626ead5ce5eff397b6675bbf291cde  libsanitizer/sanitizer_common/sanitizer_vector.h
! cf41c92147635e921d02133938336213  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  libsan
*** 131789,131853 ****
  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
! 7cfdddbed7ec59ef27883bbb0ae366ba  libsanitizer/tsan/tsan_flags.cpp
! 9fcbcc17ace4216572d132c7f19980dd  libsanitizer/tsan/tsan_flags.h
! 03e8ef6fd65a0666d2072c12853e6950  libsanitizer/tsan/tsan_flags.inc
  60bfaa19bc1c038d806e759abd03e869  libsanitizer/tsan/tsan_ignoreset.cpp
  d419772368c76a807ff66bafd0683028  libsanitizer/tsan/tsan_ignoreset.h
  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
--- 145712,145776 ----
  fc5cf9bed40d4cacc9d6d99a9732c5b0  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.cpp
  d96a79aae86361640da54337862c2369  libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.h
  a3fb2da1f02bba234ad5bb2a01f67db9  libsanitizer/tsan/Makefile.am
! 20a4dfd3c2600d66d89915db53a4c40a  libsanitizer/tsan/Makefile.in
  4993c3783465efe7eb63dd3ae6611678  libsanitizer/tsan/libtool-version
! 3d5eb3a1421a064514ea0f8f5d8d3b89  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
! 16fb54bbc4f70d4c461cfd631c5acdf9  libsanitizer/tsan/tsan_flags.cpp
! bc40a87099a5aba3abc163099841fb97  libsanitizer/tsan/tsan_flags.h
! 04d13efaabaf208cb612cad622ef0353  libsanitizer/tsan/tsan_flags.inc
  60bfaa19bc1c038d806e759abd03e869  libsanitizer/tsan/tsan_ignoreset.cpp
  d419772368c76a807ff66bafd0683028  libsanitizer/tsan/tsan_ignoreset.h
  45bd7ec3e79167e3101e35f5ba81d51b  libsanitizer/tsan/tsan_ilist.h
! f6799ea3e697a3f52d59c60ae7e4e37e  libsanitizer/tsan/tsan_interceptors.h
  5ae7905d35628b6e1eed00f1fc25caa7  libsanitizer/tsan/tsan_interceptors_libdispatch.cpp
! e9306847bcc0a9cd2520a23c3d5b5edf  libsanitizer/tsan/tsan_interceptors_mac.cpp
  a83781c196d253d2f7538367873b4d65  libsanitizer/tsan/tsan_interceptors_mach_vm.cpp
  fad10d5e8278f758dbd89e63f71aae9d  libsanitizer/tsan/tsan_interceptors_memintrinsics.cpp
! 34f26a474ee08f0ed4ab4ea7dac010fd  libsanitizer/tsan/tsan_interceptors_posix.cpp
  44e87b9222e50e4ce561458989a58e85  libsanitizer/tsan/tsan_interface.cpp
! 6d4b644096da2ee7b3b31c754d38cb3b  libsanitizer/tsan/tsan_interface.h
  12c2d0a710c7eb00a61b269e3a5e2444  libsanitizer/tsan/tsan_interface.inc
! ef855339157a4b652eef8910935ba17c  libsanitizer/tsan/tsan_interface_ann.cpp
  85e02689af55fa1cc3f98b5cfe3043a1  libsanitizer/tsan/tsan_interface_ann.h
! 254996552d748f0489b3a75b121e6f6a  libsanitizer/tsan/tsan_interface_atomic.cpp
! a905cbaa278f59b5fee84e505d28a1b4  libsanitizer/tsan/tsan_interface_java.cpp
  b6f28fd4519c6bc2e8cd9cdb820f72a8  libsanitizer/tsan/tsan_interface_java.h
! b3a12188e995ab4d27a8396e122e8d49  libsanitizer/tsan/tsan_malloc_mac.cpp
  2ce89d665869a9e29509f68c3b093511  libsanitizer/tsan/tsan_md5.cpp
! b7ebae46d8f24139d94c5ad0281b4dc3  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
! 8342143db02c13b44429e8792f689cec  libsanitizer/tsan/tsan_platform.h
! b41c84206c6a2806d510c4a4d2d4939d  libsanitizer/tsan/tsan_platform_linux.cpp
! ecc849651e1edac6f58028f6dca22c11  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
! ab3ed67ff379744ab82603293300e0c1  libsanitizer/tsan/tsan_report.h
! 90f1f2230f6d081292f0324173d18384  libsanitizer/tsan/tsan_rtl.cpp
! f1ae76dbe99bf047ae7265306a589276  libsanitizer/tsan/tsan_rtl.h
! 37d2c0c65de80b25fdfab30f6e8415a7  libsanitizer/tsan/tsan_rtl_aarch64.S
! 59ccf8d3344a8f6eb610061509d17733  libsanitizer/tsan/tsan_rtl_access.cpp
! 91412accc632b1699b3e6f438dcbef0b  libsanitizer/tsan/tsan_rtl_amd64.S
  9c988affea81c858d52b1b7ebf21e3b3  libsanitizer/tsan/tsan_rtl_loongarch64.S
  2e223da4b198b7996aa993b62da9470c  libsanitizer/tsan/tsan_rtl_mips64.S
! cee60133eb216c63befc4d80a02a5537  libsanitizer/tsan/tsan_rtl_mutex.cpp
  d771c907949512e86f6221398475c2c1  libsanitizer/tsan/tsan_rtl_ppc64.S
  d23feb95e5ade35c9d1fa0203dfc64bb  libsanitizer/tsan/tsan_rtl_proc.cpp
! 6a5c9557c9f3c09e2c1661c56742c867  libsanitizer/tsan/tsan_rtl_report.cpp
  39578f7f0f1d3c5038bb6d1efb8d1335  libsanitizer/tsan/tsan_rtl_riscv64.S
  28f4e3484ccd9079551dd4c92a0c47f2  libsanitizer/tsan/tsan_rtl_s390x.S
! a040d1618bc39b8501505e21d5bb5f60  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  libsan
*** 131856,131888 ****
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
! ac99e2a1604f10691ceb3d4a4600d0ed  libsanitizer/tsan/tsan_sync.cpp
  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
--- 145779,145811 ----
  2158aca0f3a2d54057e8cd7895ef496c  libsanitizer/tsan/tsan_suppressions.h
  44bcdcf638df13751840900e2eb82315  libsanitizer/tsan/tsan_symbolize.cpp
  339793c91cce47c39da05aab388a1d91  libsanitizer/tsan/tsan_symbolize.h
! f14c436a4fb0bdd373cb518b35b84f3c  libsanitizer/tsan/tsan_sync.cpp
  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
! d6c1a78f08263ec1fee4e3bc43f40392  libsanitizer/ubsan/Makefile.in
  db0727716bbb494b5221fcab5517db23  libsanitizer/ubsan/libtool-version
! 8ce44f4b7a33f66716c6a18ead865ff3  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
! 74c4b9195d161431fa289d20fcd92c83  libsanitizer/ubsan/ubsan_handlers.cpp
! 0fc4d8db44b35150e14463b321f8b003  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
! 8d1bbd878ad610f67584610485be68b1  libsanitizer/ubsan/ubsan_init_standalone.cpp
  04f80173ed9f5e1dc4c569c15772f2f1  libsanitizer/ubsan/ubsan_init_standalone_preinit.cpp
! 0d395d75ac9892918f297a5a45fe9189  libsanitizer/ubsan/ubsan_interface.inc
  d86be2442566cf10902db54006f9794e  libsanitizer/ubsan/ubsan_monitor.cpp
  7311068be7eacbc04a232416cd95a29d  libsanitizer/ubsan/ubsan_monitor.h
! 34113e0318e1dbb63d4af968cca71310  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  libsan
*** 131890,131928 ****
  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
! af6904a8912a381750a55cc06b8b5a16  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
! 304e4210c76c2d65ce012a74ce4467ca  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 145813,145851 ----
  f01966720c236be4a6f849bb79c2e3a0  libsanitizer/ubsan/ubsan_type_hash_itanium.cpp
  07c0334c044295c3fef2cabbb9973477  libsanitizer/ubsan/ubsan_type_hash_win.cpp
  36c349526a8bcc6a104185c4571b5363  libsanitizer/ubsan/ubsan_value.cpp
! 47cf5df0506b64613c633c0d5055e44b  libsanitizer/ubsan/ubsan_value.h
  f44dc970bc1adae9a128b178a339fd0e  libsanitizer/ubsan/ubsan_win_runtime_thunk.cpp
! b8f315f49b20e4b2958da7b98b3fa8b6  libssp/ChangeLog
! 37029f29d60169eff30092adbced1e51  libssp/Makefile.am
! caac5761d3acfaa5d0d86a84253ad38b  libssp/Makefile.in
! f1ead518e8acee1f9c1e0e49fd4fa51d  libssp/aclocal.m4
  91a807dee830170e3dc7cde11ae0662d  libssp/config.h.in
! 563cc67967a0027e58563a64cb44bfa1  libssp/configure
  89a15c32762c1812155bed2afe5a0ad0  libssp/configure.ac
! e91104423a6c39a9c8f262bb1b674cca  libssp/gets-chk.c
  0ac32b60459d1fdec670990324d7bdc6  libssp/libtool-version
! c821c0b03460a140fef7af5207503605  libssp/memcpy-chk.c
! 7765fa85b15db0a4ee6aa80731962f8d  libssp/memmove-chk.c
! c081b77fbf9129f8cd4308501efe591a  libssp/mempcpy-chk.c
! 2f9db639816b29c3cab53f944fd015fd  libssp/memset-chk.c
! 7dffc47e6430d5a8c7e0d63d9300dc0d  libssp/snprintf-chk.c
! ff61182145b0fe37b9a0474cd31c3b3b  libssp/sprintf-chk.c
! 50aafbd7feb497ab2845789a51cae706  libssp/ssp-local.c
! f3d9de09445b3cdd10cb59fc5c0fbd41  libssp/ssp.c
  a45e2fbfb70a8e0d68d726bb31ffe4cd  libssp/ssp.map
! a59863fd08a25585333b8939e76dc179  libssp/ssp/ssp.h.in
! f69a97f78a0e0692d3b4a2646f047585  libssp/ssp/stdio.h
! fce937a77c9d4f074ed52c0f1f11d2a2  libssp/ssp/string.h
! 8db93424d7c97b898998be577e168845  libssp/ssp/unistd.h
! 0a7d3aec93704146b94e6dc1ee0db7fb  libssp/stpcpy-chk.c
! 5ae817fc3b60dc888a4204c284bfd040  libssp/strcat-chk.c
! 348207eeb1c6c98ee774486e8ae5f27b  libssp/strcpy-chk.c
! a73d560a3ba317c5ad0a7919d87b4b6d  libssp/strncat-chk.c
! 41bfb9f05f340d32c97eef5213baf588  libssp/strncpy-chk.c
! 7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
! e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 971f827532c28a1a7443e28a6e346a39  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a8f4290dba5b481ad426148a03c75dd0  libstd
*** 131950,132169 ****
  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
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! 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
! 6c165e7a2d80e986556ae6dc2bad3857  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
! 2ff76da9446af5dab1f67ad7cafbacaf  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
--- 145873,146095 ----
  558bc9ac46bb09da0ecd634a9d046bdf  libstdc++-v3/ChangeLog-2022
  73b3f28a75dc2722a3bbd6d45e6170c1  libstdc++-v3/ChangeLog-2023
  a94321c8d0dbbc71741ebf0f1cc9828c  libstdc++-v3/ChangeLog-2024
! 56f36c9b98861048e760a4c208cf17d3  libstdc++-v3/ChangeLog-2025
! 9161085c79a8bf8d60641b5525f28bd7  libstdc++-v3/Makefile.am
! dbe6646c8cac125dd885d66a4fd4ce40  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 81d842b8de8e587a7d5fb793e0ee7373  libstdc++-v3/acinclude.m4
! 66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
! 99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
! 2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
! e20bd1e569cbed0f20b871f0dc077dfb  libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt
  730569c0ef38f6e6322b3c4ac65253ce  libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt
! 2fa4fcaa6f3741829087f83dae5d4873  libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt
! 4f7e2ff60d0312be902f23e4ebfcfb34  libstdc++-v3/config/abi/post/i386-solaris/amd64/baseline_symbols.txt
! dc3a202210fcd83d8a77cd318ae17078  libstdc++-v3/config/abi/post/i386-solaris/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt
! e750d4969026c40d5ce10ad99afd6dbd  libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt
! 6e6c1eead73ca80819125405cabfaf11  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
  1a34bda2bb4c3a576335343c0a4a9377  libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt
! 9a04ca5f495f5b839d9129d6473005a2  libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt
! 9a04ca5f495f5b839d9129d6473005a2  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt
! cf4a8918ae6c49b5967aa7c5e4897837  libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt
! 8cf807bf8185222817c03048dca87138  libstdc++-v3/config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt
! fb80ad506b2c99caa0f3adb56c8a8858  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
! ce3d581aad7598d32c88c3cf30a0885d  libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
  cc65678819ec7ff06eaeed8b1a5455eb  libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt
! f7e6afd3479309813624b96ba52e9f11  libstdc++-v3/config/abi/post/sparc-solaris/baseline_symbols.txt
! 71369f5109eaa4a0d162cbf9ccd01d5b  libstdc++-v3/config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt
! 5f364df069edac29665d970025b9c919  libstdc++-v3/config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt
! 10563e88eb721b7ac78bf0c13d91f351  libstdc++-v3/config/abi/post/sparc64-linux-gnu/baseline_symbols.txt
! 94ff0c7d7481d472e4c6883b4f69c7cb  libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt
! 011b59b39511c3b235e29d5f5062edce  libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt
! 64c7ddb3ee44b0d3bc4a83995c1f0d96  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
! d8fba4e72b3bac4b2fa939d9ec589c51  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! a24cad29110b2f3a3c21694199f177c4  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
! a2a19bba90a6663d180d5d9f7b28b623  libstdc++-v3/config/allocator/malloc_allocator_base.h
! 92afc718fea5d5748cbf18f969414917  libstdc++-v3/config/allocator/new_allocator_base.h
! 8b904d433c2e0047f1155bc1a1350de1  libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h
! 7f6615edf9a2a9f19175d56ec3348ce4  libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
! f17780d8149c44b72d141bcfb9f26bed  libstdc++-v3/config/cpu/arm/cpu_defines.h
! 99485409e0b1a99fa78cd037b51ef26d  libstdc++-v3/config/cpu/arm/cxxabi_tweaks.h
! 1d1a14c754b2b9a785c8d52284d082ed  libstdc++-v3/config/cpu/cris/atomic_word.h
! f457ff5d6fa5e7ab694092159451ce07  libstdc++-v3/config/cpu/gcn/cpu_defines.h
! 38525e33da6fcf1fead552599a8211e1  libstdc++-v3/config/cpu/generic/atomic_word.h
! 4668ac6c6e6cb7fa46f0f444d3b479d1  libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h
! dcf98ea0389f3b806e915a40adc45394  libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h
! 65b03a6f55aced53816b492eaf356938  libstdc++-v3/config/cpu/generic/cpu_defines.h
! ba432172f432555aaa47a9a6e3b2e64e  libstdc++-v3/config/cpu/generic/cxxabi_tweaks.h
! ca58c7ba6da751d1cb3fc5c4b97c6f74  libstdc++-v3/config/cpu/generic/opt/bits/opt_random.h
! 5c28042b8d6d2992683ba0bf5d6c14df  libstdc++-v3/config/cpu/generic/opt/ext/opt_random.h
! 3dccaceb268cd7729588432075334900  libstdc++-v3/config/cpu/hppa/atomicity.h
! d143498c6328ac5ec955515c84607180  libstdc++-v3/config/cpu/i386/atomicity.h
! f1fa3738197a13b4719f3ca2b05c6c63  libstdc++-v3/config/cpu/i486/opt/bits/opt_random.h
! 88cb4a15d8d049d80f599bd81c6d8071  libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
  26d0c3551ab31de89ff6dfac25ba5415  libstdc++-v3/config/cpu/loongarch/t-loongarch
! a76f1ad9e264e3f9d0b422fd2ebbe94d  libstdc++-v3/config/cpu/m68k/atomicity.h
! 6e738ad7283695b1f3620434054dd3e4  libstdc++-v3/config/cpu/microblaze/cpu_defines.h
! 8162a6dbd1d5f120055873643809d11b  libstdc++-v3/config/cpu/nvptx/cpu_defines.h
! 7c62c009f0db50f71a6657f846fc68d8  libstdc++-v3/config/cpu/powerpc/cpu_defines.h
! e5c9f2a9960340c0422d63c3b06cf961  libstdc++-v3/config/cpu/sh/atomicity.h
! 823bcb2e884ac9de9ee7bfac8ae64c0c  libstdc++-v3/config/cpu/sparc/atomic_word.h
! bd336399832b3114a111d7a494b53f7a  libstdc++-v3/config/cpu/sparc/atomicity.h
! cc25897137f72615c0028216d8d0d3f2  libstdc++-v3/config/io/basic_file_stdio.cc
! 00af1762d61ddebc612a4c0f7f6dc8b0  libstdc++-v3/config/io/basic_file_stdio.h
! d3d299c1d7348829b079ab4d59b5c603  libstdc++-v3/config/io/c_io_stdio.h
! ef4e42d65c502b4a71721a210d6a6cb9  libstdc++-v3/config/locale/darwin/ctype_members.cc
! 23e0a978e4380ce48167a2af43e7c589  libstdc++-v3/config/locale/dragonfly/c_locale.cc
! f2b84b4aab340ce2abd5d54346c61c13  libstdc++-v3/config/locale/dragonfly/c_locale.h
! 399cefe67c6e3f240cef9d185d42d77f  libstdc++-v3/config/locale/dragonfly/codecvt_members.cc
! 391533226b645868a315502cd274e80d  libstdc++-v3/config/locale/dragonfly/collate_members.cc
! faf24ef1bfbf7953179f10e428a0c0da  libstdc++-v3/config/locale/dragonfly/ctype_members.cc
! 406539e35052f0e1009c44d40afa8f61  libstdc++-v3/config/locale/dragonfly/monetary_members.cc
! 2b3e9f97cbd054412ece077ec8ac1382  libstdc++-v3/config/locale/dragonfly/numeric_members.cc
! 99cba898ac5a1fcb7c799722674af645  libstdc++-v3/config/locale/dragonfly/time_members.cc
! 189ce52f570d4b93e3e495ce2ed25b65  libstdc++-v3/config/locale/dragonfly/time_members.h
! 5e84bdf2ea1cbdbf52af62ee294721bf  libstdc++-v3/config/locale/generic/c++locale_internal.h
! 448a2299d8556967ec1c7394631f3f0e  libstdc++-v3/config/locale/generic/c_locale.cc
! 3e25d7f371691a3ae25c94e07233cb4a  libstdc++-v3/config/locale/generic/c_locale.h
! 9b91ae35b733e7ae41f7a15f40e6eb05  libstdc++-v3/config/locale/generic/codecvt_members.cc
! 610085184f4e74f18dd0fd2d6260abfc  libstdc++-v3/config/locale/generic/collate_members.cc
! dc6c49d4220911d62974445ef6330ff2  libstdc++-v3/config/locale/generic/ctype_members.cc
! 508ad653a9a0e046e61e989be4e016d0  libstdc++-v3/config/locale/generic/messages_members.cc
! 1de709a574001f89ac649d8f8c7c0349  libstdc++-v3/config/locale/generic/messages_members.h
! f1d0636ae23d86ef530870b7af26304f  libstdc++-v3/config/locale/generic/monetary_members.cc
! 1fa5c70531cbc39ee1db2c703a60c271  libstdc++-v3/config/locale/generic/numeric_members.cc
! 34c282dc42ac9c8d8488adc878abdbda  libstdc++-v3/config/locale/generic/time_members.cc
! 3169dd81dba79dbbb8e65f23a6335192  libstdc++-v3/config/locale/generic/time_members.h
! 48ae90f25dc9e6d96e72a6618f9bb705  libstdc++-v3/config/locale/gnu/c++locale_internal.h
! 211091c926034f6ad7392ebb2063ccf1  libstdc++-v3/config/locale/gnu/c_locale.cc
! 038a0d5fd0ce020a651d805ea6b89b4c  libstdc++-v3/config/locale/gnu/c_locale.h
! 84b31f2fc888cc41a6284ee8b1ffaacf  libstdc++-v3/config/locale/gnu/codecvt_members.cc
! 97fe817e7fd8a775c987857a2de1c7e1  libstdc++-v3/config/locale/gnu/collate_members.cc
! 1271b312321caab3a210dee1d62c98ba  libstdc++-v3/config/locale/gnu/ctype_members.cc
! 530d638694990b86ff2157ed50040393  libstdc++-v3/config/locale/gnu/messages_members.cc
! e62ff531437c3255098476fbdd1f4204  libstdc++-v3/config/locale/gnu/messages_members.h
! ddada81c32f9922e3a3f71183dba39a9  libstdc++-v3/config/locale/gnu/monetary_members.cc
! 8073b972b550c819ce5f1f1ad316cba0  libstdc++-v3/config/locale/gnu/numeric_members.cc
! af1f3ebdd2b9967e09466afe0749096a  libstdc++-v3/config/locale/gnu/time_members.cc
! 3baba958491e02edced540bac911f83a  libstdc++-v3/config/locale/gnu/time_members.h
! d998f38b5a7c0cab8a325081aaffee0d  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.cc
! 18fa3224b0569cf3238bcda3059cd53e  libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
! 27d1dcba1c26a12b24c8ab4a772e9f49  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.cc
! 9fe4b00de7217ef9d99065b6076955d2  libstdc++-v3/config/locale/ieee_1003.1-2001/messages_members.h
! 3861e7cae34da8ffb9843c2f16e9aaf7  libstdc++-v3/config/locale/newlib/ctype_members.cc
! b24634620097a3745b9fb41802ee0158  libstdc++-v3/config/locale/vxworks/ctype_members.cc
! 5b880923778daead118058e90820a3ec  libstdc++-v3/config/os/aix/ctype_base.h
! d4e4518f2ca62d7ba5e848e3764656ed  libstdc++-v3/config/os/aix/ctype_configure_char.cc
! 5faf684a7ef038670d5a49265d70214b  libstdc++-v3/config/os/aix/ctype_inline.h
! 7060e57899cdaa3d15498d745911cb3e  libstdc++-v3/config/os/aix/os_defines.h
  7d1373c31caa4fdc44bcb11af08b4ab3  libstdc++-v3/config/os/aix/t-aix
! 2d4b35b391854efcc8f059ca0425cc0c  libstdc++-v3/config/os/bionic/ctype_base.h
! 762c021e747ee74f5d39264f4d0069e5  libstdc++-v3/config/os/bionic/ctype_configure_char.cc
! 7a7880baa568e9b7ffc33bb78ab9efe5  libstdc++-v3/config/os/bionic/ctype_inline.h
! 1e895b572523128d755ea8616df749f1  libstdc++-v3/config/os/bionic/os_defines.h
! d7f14b315510fd3c06fef78611408e2a  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
! d4e4518f2ca62d7ba5e848e3764656ed  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
! 50bd5a9d7513e12838105e909bf34035  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! 25d1e8ca52e588a2cfe82029d251d04d  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
! bed256e72ff2807382f4ffe9f73cdd74  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
! 2a6d2565cc836aaf6c2a4a3e4cc2659e  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
! a7a0f1f6342f60ebb0a326b0c65c8f41  libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
! 45d0ed1988259421d2a8db3124657521  libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
! f295b22b10fb85b751cb728ee1a51bed  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
! 2a6d2565cc836aaf6c2a4a3e4cc2659e  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
! 50bd5a9d7513e12838105e909bf34035  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! c0c7c8e43d693e3f89c938bb151b0717  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
! 8f40889bf69fba77a00576714c198a08  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
! f298b616865e5fe00d050bee98304ae2  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
! 9bc43ac98a94981e3d0a503f2fb3c582  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
! 46756953e7a2d602e3f18f2d1f8efcb8  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! ca7d83a2690050e19c0dc7ff0d85885d  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
! 881fc2091c4266e0e9be93a446c3f35b  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
! 7a7880baa568e9b7ffc33bb78ab9efe5  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
! 7bc82752164f943480a015890f520e78  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
! 7f72c84667454fd44439d63e1df22aec  libstdc++-v3/config/os/djgpp/ctype_base.h
! 1ee63d95e94017ecb0e135400c4c24d1  libstdc++-v3/config/os/djgpp/ctype_configure_char.cc
! 4a74e6fa86d83b5b8574718c7bcaf709  libstdc++-v3/config/os/djgpp/ctype_inline.h
! acd23da108aca8e06ac505014d12642d  libstdc++-v3/config/os/djgpp/error_constants.h
! 023f38d9cf3225e24c1ffe34b656c077  libstdc++-v3/config/os/djgpp/os_defines.h
! 083f9522da4429d5a0efbb9d71105b8d  libstdc++-v3/config/os/generic/ctype_base.h
! d4e4518f2ca62d7ba5e848e3764656ed  libstdc++-v3/config/os/generic/ctype_configure_char.cc
! d860022a12f8454ef5c9f383c6e950d8  libstdc++-v3/config/os/generic/ctype_inline.h
! 1e22d6c3c574d4bb4e9ff3d9ae648f92  libstdc++-v3/config/os/generic/error_constants.h
! 5ecd42805474f6528f545739e2c81685  libstdc++-v3/config/os/generic/os_defines.h
  5b9a724ca8744a0e193a82f2ea8e9f5b  libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver
! 9aaa51d75b738d58a7739f8cf347b615  libstdc++-v3/config/os/gnu-linux/ctype_base.h
! 57aa18b5d838bbcd7bfad67a39d3f0bf  libstdc++-v3/config/os/gnu-linux/ctype_configure_char.cc
! a144795bdde388f89eb6222f0c2e4932  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
! fb61c1f736c8ada8bbbbfa8af109fe4a  libstdc++-v3/config/os/gnu-linux/os_defines.h
! acb91dc9e5dee03b69ed54e08155e172  libstdc++-v3/config/os/hpux/ctype_base.h
! 022a7df39c416be4f2a3b4acc034d67e  libstdc++-v3/config/os/hpux/ctype_configure_char.cc
! a144795bdde388f89eb6222f0c2e4932  libstdc++-v3/config/os/hpux/ctype_inline.h
! dd6a72e729dd6fc5c475d9a606ea529b  libstdc++-v3/config/os/hpux/os_defines.h
! 8dab4c9f152f672b2768053a22161d76  libstdc++-v3/config/os/mingw32-w64/ctype_base.h
! 94a3cfcd9b15065ed4abb44333742ffe  libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc
! e254381670d8d7e8f58be8ba2afb17f9  libstdc++-v3/config/os/mingw32-w64/ctype_inline.h
! 1f015cfe26756d9af80d691f4b27aa66  libstdc++-v3/config/os/mingw32-w64/error_constants.h
! 4da0c572cab4bea6cd299fa21daaaf56  libstdc++-v3/config/os/mingw32-w64/os_defines.h
! 8dab4c9f152f672b2768053a22161d76  libstdc++-v3/config/os/mingw32/ctype_base.h
! 94a3cfcd9b15065ed4abb44333742ffe  libstdc++-v3/config/os/mingw32/ctype_configure_char.cc
! e254381670d8d7e8f58be8ba2afb17f9  libstdc++-v3/config/os/mingw32/ctype_inline.h
! 5c00221ab10c465b8f127658862c69dc  libstdc++-v3/config/os/mingw32/error_constants.h
! 2943dc738976ec8f982532a2ea411a64  libstdc++-v3/config/os/mingw32/os_defines.h
! d734db43dded5aa4a3f59754d2f00709  libstdc++-v3/config/os/newlib/ctype_base.h
! 762c021e747ee74f5d39264f4d0069e5  libstdc++-v3/config/os/newlib/ctype_configure_char.cc
! 1aab033e4c0b41d51a44458d4910b8ae  libstdc++-v3/config/os/newlib/ctype_inline.h
! 0c4daafcc4e2febcc8f299e98c206bec  libstdc++-v3/config/os/newlib/os_defines.h
! c08bd7d9f4502992cdb970c553eb9015  libstdc++-v3/config/os/picolibc/ctype_base.h
! c993ac010c998b7c5c043bebf9b021f5  libstdc++-v3/config/os/picolibc/ctype_configure_char.cc
! aa6a56afed5b34916cdafb12f7e58d23  libstdc++-v3/config/os/picolibc/ctype_inline.h
! 7b2c2290c227733e1d40893fde6fd0fc  libstdc++-v3/config/os/picolibc/os_defines.h
! 9707d67eb665e0fc70d52b90992abb0f  libstdc++-v3/config/os/qnx/qnx6.1/ctype_base.h
! 7e1dbe50f516856f5f42915aeafd981e  libstdc++-v3/config/os/qnx/qnx6.1/ctype_configure_char.cc
! 7e9459ea02dd4fe874d8aced114547df  libstdc++-v3/config/os/qnx/qnx6.1/ctype_inline.h
! 92af32626273789626462e3bb5fc41b3  libstdc++-v3/config/os/qnx/qnx6.1/os_defines.h
! 13f72de7fe072ee8c848734ae4416a4a  libstdc++-v3/config/os/solaris/ctype_base.h
! 5d481082082a8e84d7239e86a4754c5d  libstdc++-v3/config/os/solaris/ctype_configure_char.cc
! a144795bdde388f89eb6222f0c2e4932  libstdc++-v3/config/os/solaris/ctype_inline.h
! 468343f3e0206a7c824cdd208222b1ba  libstdc++-v3/config/os/solaris/os_defines.h
! 80ff66b0d1309b701de52c5953ebf58e  libstdc++-v3/config/os/tpf/ctype_base.h
! 3e36a05c30ae7ba237bb9a6d59ff2615  libstdc++-v3/config/os/tpf/ctype_configure_char.cc
! d5080ac4f2065dae8174a1b0dad49e24  libstdc++-v3/config/os/tpf/ctype_inline.h
! b31c99fda28dcd253ebd96888552c3d5  libstdc++-v3/config/os/tpf/os_defines.h
! de14f844aa6da683835a03b68e5975c1  libstdc++-v3/config/os/uclibc/ctype_base.h
! a638a41fdc9b25eec66a6fa836ada218  libstdc++-v3/config/os/uclibc/ctype_configure_char.cc
! a144795bdde388f89eb6222f0c2e4932  libstdc++-v3/config/os/uclibc/ctype_inline.h
! 873e174b2086f1b8a89b7e470adb3287  libstdc++-v3/config/os/uclibc/os_defines.h
! 9c20bbdce19297b3ad0050368bb09028  libstdc++-v3/config/os/vxworks/ctype_base.h
! 53df82982400fd3d426f3fd0e0c37b54  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
! a3f907fa7f71dc9eb08755c9c438accc  libstdc++-v3/config/os/vxworks/ctype_inline.h
! 309bdcfd61ec9ca44671057524c081f1  libstdc++-v3/config/os/vxworks/os_defines.h
! c51771137f2cb160f9c70d9e9da2905d  libstdc++-v3/configure
! ef7d4ee8dfc656b2511fdab05020e10d  libstdc++-v3/configure.ac
! bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
! 21e660b6ad1acb38a925de8aee375f12  libstdc++-v3/doc/Makefile.am
! 015a7bc96be2528c79352941cf0f8da0  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
! 01fb2b0a0286e9788188d21c40eee93c  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
! 9e50e6ed5219a6fa4058265ed4809638  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
! 2945717515d4946f0f39628d301ddac6  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
! e577d081e545dbcbecedf1fa3208e7b5  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
*** 132243,132305 ****
  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  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
  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
  5328918ec42768cddb06c3e97ef4530c  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
  ffd5e74a40bbf6623b8ccf687eb584d8  libstdc++-v3/doc/html/manual/ext_numerics.html
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
! 6889f243ab6934ae5f80ea7fa9c69dbf  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
  9e255046a8ef2903114374ed06403045  libstdc++-v3/doc/html/manual/extensions.html
  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
--- 146169,146231 ----
  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
! 1ee0763cec1ed7370868bbd953b92b71  libstdc++-v3/doc/html/index.html
! da8ef3dbcb662f961907eacee627f1e5  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
! e8962e30cf090d22cd4186a86105e4f3  libstdc++-v3/doc/html/manual/api.html
! e5a690ded485bd276ae2fa367fc1fd13  libstdc++-v3/doc/html/manual/appendix.html
! 09331471a432d70e6ad2e090ee1ba091  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
! d3607480851bb0ef04730339ec5f4471  libstdc++-v3/doc/html/manual/appendix_porting.html
! 28d18f62862955c03fd5de7a9e104581  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
! 1985180c416d737bee7686d60f4e70ef  libstdc++-v3/doc/html/manual/backwards.html
  c60c6ae778d5dedae24ac21abf948bdb  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
  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
! 6e1071c3830037b074f1c397f4e7a3e6  libstdc++-v3/doc/html/manual/configure.html
  5328918ec42768cddb06c3e97ef4530c  libstdc++-v3/doc/html/manual/containers.html
! f66b4b01119c005cf471450613fc105b  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
! ac31629383ea02b6f9d9689f5dd5494c  libstdc++-v3/doc/html/manual/diagnostics.html
  074e3891bbedea5b412c648e455f6adf  libstdc++-v3/doc/html/manual/documentation_hacking.html
! 0a3448d8bfaf5053260aeb3d9b7fd354  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
! a475500e1e40ccf84021eef6688d0309  libstdc++-v3/doc/html/manual/ext_containers.html
! 36c76de14c65db6652b95eecd36601fb  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
  ffd5e74a40bbf6623b8ccf687eb584d8  libstdc++-v3/doc/html/manual/ext_numerics.html
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
! 80ba3108a407ea691afc0849d1a7a487  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
  9e255046a8ef2903114374ed06403045  libstdc++-v3/doc/html/manual/extensions.html
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
! fbe501e55689450dce7bb04b0f9a28b1  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
! bfdb80842e9876f39424e27dd1e6f8a0  libstdc++-v3/doc/html/manual/index.html
! b1c5b19b09af9d16def15e1a73ea851a  libstdc++-v3/doc/html/manual/internals.html
! 89f96b13d0525d86ec6cd96b462130cf  libstdc++-v3/doc/html/manual/intro.html
! ad9c4c3d4e5712738facc14da8c89ae7  libstdc++-v3/doc/html/manual/io.html
! 5b9129eca807eb549e59c30ddf1605b9  libstdc++-v3/doc/html/manual/io_and_c.html
! 37ee363acc3e4b5507a49d588bbd797c  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
! 8f844e416e347cd59e91e9e3e3ddd63b  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  libstd
*** 132307,132313 ****
  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
--- 146233,146239 ----
  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
! c113923bbe1c3809744ab0db96c9ca87  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
*************** e5c19b8ff5bc3c648559dbeb909a643d  libstd
*** 132316,132344 ****
  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
! 81dacbaadda1905c0456712366f3917f  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
! 78aa5833e13335bccb9f831528294eb7  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
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
--- 146242,146270 ----
  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
! 00aaa10e34d9e8b00a19d6c60ad1ed48  libstdc++-v3/doc/html/manual/policy_data_structures_design.html
  9acf818681732e9c264224c86b5ffdb3  libstdc++-v3/doc/html/manual/policy_data_structures_using.html
! 5fb6d2e05eb98a2128ffe705b93619e8  libstdc++-v3/doc/html/manual/setup.html
! d0d45f15e189e6eac6d7b09d58e62126  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
! fc1b430c40b68ca0fafd896720767ba5  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
! ed880ae9a474601ab139b1f243cbad76  libstdc++-v3/doc/html/manual/streambufs.html
! 2a262c4a0f123859ea1ea62fc6c5a226  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
! 75ab8c3dc22e27fc36cddbf1f63e62e0  libstdc++-v3/doc/html/manual/support.html
! 576070c373ebcaee386d0b95fe56b0c3  libstdc++-v3/doc/html/manual/termination.html
! 97528cc0fac9c8996900de2fb8801324  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
! b2b541e52af05c96f0b4e36d035d6ed9  libstdc++-v3/doc/html/manual/unordered_associative.html
! a0918c604251ab7a418068faac6a8a4c  libstdc++-v3/doc/html/manual/using.html
! 67af75428c4b0fee1420d75c75421ab6  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
! 292c099f5758d0403ebf7dceea801138  libstdc++-v3/doc/html/manual/using_exceptions.html
  91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! 106d80bfa1c180106be5dee024f8ea7b  libstdc++-v3/doc/html/manual/using_macros.html
  e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
*************** e8b86abd99dc9893dfa1bb7533fdc23d  libstd
*** 132346,132352 ****
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! bf9bccd7b0755cfea2731e669eb18a76  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
--- 146272,146278 ----
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! e14ffe3f1e608b08e35117356112044b  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
*** 132526,133653 ****
  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
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
! c3d24d92dc2ae1e99149164f60e80337  libstdc++-v3/doc/xml/manual/auto_ptr.xml
! 18ecbccd2db2605dc093780d7b72799b  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! 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
! d7100469dfefd97836f3007f2682087d  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
! 250fbd9ce8e61158b22da9b231426c24  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
! 63d72faceee46a17ae266389e86d5aed  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! dfb20c2399649a914760f055f32dd178  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! cf0ef2164c8071a200c66f96e7971b77  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
! 89a63a549c3438b3bee6bbf18f4c8b3e  libstdc++-v3/doc/xml/manual/using.xml
! 257e301935b13b4b045e571fa248a4d8  libstdc++-v3/doc/xml/manual/using_exceptions.xml
! b820e3490221bb85cbf6bcdde0aa8150  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
! 8a303c55e1a9a90d751641a38581e2bc  libstdc++-v3/include/bits/chrono.h
! 3448d66faf4aeb61396ce4ac5dbcc176  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
! 3b9b9d813acfbc8b09b99bf4602a9ed7  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
! 1b4047632ad5c13fb8b11a4e72df1ff6  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
! c187c580a48d3cfe2a81c4230220002d  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
! c48928d63732da42056105c33cf860ff  libstdc++-v3/include/bits/stl_stack.h
! e090d043a8cdc4479dde4340af533938  libstdc++-v3/include/bits/stl_tempbuf.h
! c0874190fac1e81e66ba299a8440f4e4  libstdc++-v3/include/bits/stl_tree.h
! 39e026c8777c826d5bfa7a763d177052  libstdc++-v3/include/bits/stl_uninitialized.h
! 396190da81f504591c361c73a800287e  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
! 1ed2014de22effe1785695d161d0d30e  libstdc++-v3/include/bits/version.def
! f3e08e3719deb8aaf3a38d4131c0ce50  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
! c3dd852467ecb375ddc654ba9629f1cb  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
! aeb1d3638d20d4792a586c61c7c12544  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
! e32033f054c4ecf20bd8d5e93aebf80d  libstdc++-v3/include/c_global/cstdalign
! e401f032dbe586c11b717738a97e0a80  libstdc++-v3/include/c_global/cstdarg
! f43fe2e619fef0ed91cd83079f5e7776  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
! 1d744eecff85ae425b307626dd2c53a5  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
! 13f5f9752c9229e8ce2f5a145ba63b2a  libstdc++-v3/include/std/expected
! c2e511ae49957a9f02446e544d201582  libstdc++-v3/include/std/filesystem
! 5aa136a1aaeb7658dee6ccdd5cb6e5c6  libstdc++-v3/include/std/flat_map
! 8a5fa0a4bb554b2db8c2fed26a6993ca  libstdc++-v3/include/std/flat_set
! 52dd7d21877af7f366c62d1f8e91449b  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
! ba52fc2e0904a31a08183de15bd8c424  libstdc++-v3/include/std/memory
! 9e86c11ff29d60fddf403674e9182b36  libstdc++-v3/include/std/memory_resource
! a7b8e00d6cf56ea696ec15140b7c1d15  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
! 317c818ab1030cf117c8d8ef03df06aa  libstdc++-v3/include/std/queue
! 01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
! e5f5a518f9ac990695882278e1955777  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
! 4b3e4b7e34641d76a52fcd6e71a90970  libstdc++-v3/include/std/span
! 148ae450ade3ff3a68ef3e55c1b19e46  libstdc++-v3/include/std/spanstream
! 885b7d229d8dcf3ad5bb087b5a5a1fb4  libstdc++-v3/include/std/sstream
! 996b935103050e40bdc3c486d0a1dc98  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
! 4cb74e4755d2e3e58503a243d7ae042b  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
! 94b95a511b91830b1c3dbfdf235ec988  libstdc++-v3/src/c++17/fs_path.cc
! 3142d663ea92c3978de4c455280d486f  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
--- 146452,147610 ----
  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
! 6a034881f703b198c133eb963958e990  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
! 954cbafffb4b6f40cda84d906436793a  libstdc++-v3/doc/xml/manual/allocator.xml
! b860270b35e04a2ad4da73d0c27f710e  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
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
! 9b574792eb53b53a4c25095856de9eba  libstdc++-v3/doc/xml/manual/auto_ptr.xml
! 61521d63ad9e9ab631ea718a1c9b6bb5  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! 9ef56e62f25e4fe6e3f85aae0b1acec0  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
! 7ac1661f8bba0e715c24ddc063e48ee7  libstdc++-v3/doc/xml/manual/configure.xml
! 8fb8db51febba73cfb5456272d1dcb7a  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
! 90361f264f5edc899c47c155c4106f24  libstdc++-v3/doc/xml/manual/diagnostics.xml
  3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
! a428ca9e1e1a450b765156e74924d806  libstdc++-v3/doc/xml/manual/evolution.xml
! 35161972a439c38c57ac30525b12bd9f  libstdc++-v3/doc/xml/manual/extensions.xml
! cf6e1934851f1294436c0a13931cc42b  libstdc++-v3/doc/xml/manual/internals.xml
! b9a71f2513a821d689faf68e4bb3c87f  libstdc++-v3/doc/xml/manual/intro.xml
! ae2b92cd9b8aa5539864e672f2380698  libstdc++-v3/doc/xml/manual/io.xml
! 3a6d3e952f11115ffc8c918555bbd8e7  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
! b087484df7b339be84e496a6dc7e63c6  libstdc++-v3/doc/xml/manual/numerics.xml
  670fae5ac4c0fa1aec6d56273ad3e32f  libstdc++-v3/doc/xml/manual/parallel_mode.xml
! 61958800e0a22fd197373dc5b3cd3452  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
! d657d9295bdf10927dc20d7d657627fa  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
! 3768e5c566de4a88254a543269664c94  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
! 8a89bc79ff888affd5555f6b0f3d699d  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! de35d86d0a3fd304526676ef3bec13a4  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
! 19676019c0ae012f645e35c481995483  libstdc++-v3/doc/xml/manual/status_cxx2020.xml
! bd962b8f4e93a877b670b8de66074d8a  libstdc++-v3/doc/xml/manual/status_cxx2023.xml
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
! e059f0e68d517c01833057bd14d810a9  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
! 26106cc102354ed81240929dfb2c3eda  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! 6ee9056a13ea8876e565b4ba45134bee  libstdc++-v3/doc/xml/manual/strings.xml
! cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
! 1c7dc4c765a2c1e49fdeec9af9ce0274  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 18bdb7b40d375f87d59fb6af70b9af13  libstdc++-v3/doc/xml/manual/using.xml
! 5245e9347bf064c48690e1ad9213f1ba  libstdc++-v3/doc/xml/manual/using_exceptions.xml
! bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
! 7b70f0f77a50b976605aef6dbeb1e282  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
! 718f0fc3c45ceee0c5e9d7b45e20a628  libstdc++-v3/include/Makefile.am
! e684b9ba03589bc5e5085f9a316e5f92  libstdc++-v3/include/Makefile.in
! c43a95ade3f229bbf11e4df12e566d23  libstdc++-v3/include/backward/auto_ptr.h
! a5311733ecd17a8f51066f4a2a351abd  libstdc++-v3/include/backward/backward_warning.h
! 5c3fe230b3089d4b9c58b4a86af57005  libstdc++-v3/include/backward/binders.h
! e98e63ebc647841bf7fda3d6d35a1c51  libstdc++-v3/include/backward/hash_fun.h
! 68d27c94056e7f565d8601708d0d4b11  libstdc++-v3/include/backward/hash_map
! bb9a7ef31b4a9de3a402d0493d5862e9  libstdc++-v3/include/backward/hash_set
! 446e226f3bdcb91cf235c3affc6c2f71  libstdc++-v3/include/backward/hashtable.h
! 2f4121a38a68c1efce93c7dafa3b408a  libstdc++-v3/include/backward/strstream
! a7d1ee943a62851fe350ec2bafff68be  libstdc++-v3/include/bits/algorithmfwd.h
! 19a62011e468a574086c2dd3f6c8d0f2  libstdc++-v3/include/bits/align.h
! b3ad585e8dea128f22460b1137490781  libstdc++-v3/include/bits/alloc_traits.h
! 54d70975b96f74e9dab06dcfdeb88658  libstdc++-v3/include/bits/allocated_ptr.h
! 80189b147081bd6b28f814f7b9622c5d  libstdc++-v3/include/bits/allocator.h
! 90474cfdc599d84d37f90551a24dfb7c  libstdc++-v3/include/bits/atomic_base.h
! 504ddf67fe31254fb67815770ee690ba  libstdc++-v3/include/bits/atomic_futex.h
! e901edfc8eef441d1adabd54be25b807  libstdc++-v3/include/bits/atomic_timed_wait.h
! f67bb8f4c8c8e2352479c2540b62543f  libstdc++-v3/include/bits/atomic_wait.h
! 65e262c95ca2a5021497a947a07b5d48  libstdc++-v3/include/bits/basic_ios.h
! e0d25c8ddeac5ee95a7b60861849f304  libstdc++-v3/include/bits/basic_ios.tcc
! 0b099193950908f00410d2b1bdb20de3  libstdc++-v3/include/bits/basic_string.h
! 397c9d91ebf40f0a7ccea33f0bde178f  libstdc++-v3/include/bits/basic_string.tcc
! abf1c74de0fb52f696034bd48432d075  libstdc++-v3/include/bits/binders.h
! 3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
! 8af4c7d9e9f6b31055b2f57c798201d6  libstdc++-v3/include/bits/c++0x_warning.h
! 34446381e4c4746a62681665aebf236a  libstdc++-v3/include/bits/c++config
! 5cbbd0fafb904f86c9ddce3fc54380f1  libstdc++-v3/include/bits/char_traits.h
! 9a3227d14b324832ae22b4c7ec6979e2  libstdc++-v3/include/bits/charconv.h
! 3805f7d806c699a7daa19e8ad048c2cf  libstdc++-v3/include/bits/chrono.h
! 4ac369b53166ce061e37bf465dc13909  libstdc++-v3/include/bits/chrono_io.h
! 1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
! 53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
! 3000c6dba4f53a32aed26e5c5cbccffc  libstdc++-v3/include/bits/cow_string.h
! 97d90498ee103018406f19468a5500ec  libstdc++-v3/include/bits/cpp_type_traits.h
! 1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
! a00599dc44159a6b255d87ddbb7e237c  libstdc++-v3/include/bits/deque.tcc
! b3b7f49179a45d11260480d53dd3cf0e  libstdc++-v3/include/bits/elements_of.h
! 021c9e8af006934e2df53e05441f3d8c  libstdc++-v3/include/bits/enable_special_members.h
! 0761a634c5ad798abd93ae68d0f8f1e2  libstdc++-v3/include/bits/erase_if.h
! 4d179649c04c2237cc4d78be96689f5f  libstdc++-v3/include/bits/formatfwd.h
! 4a7d61e24d91f8696bb7ac30c867781b  libstdc++-v3/include/bits/forward_list.h
! f053b22f5819f7ed1f6ed5ffe14dc5a3  libstdc++-v3/include/bits/forward_list.tcc
! 6f26512074a75529ba29871026bd71d5  libstdc++-v3/include/bits/fs_dir.h
! 2a39eb878ffd3fb88661d1eeaab059dd  libstdc++-v3/include/bits/fs_fwd.h
! 3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
! 7fe100acd8acdc1ac9bb10e1dadb50b8  libstdc++-v3/include/bits/fs_path.h
! c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! 9547508e00b1750d4db06a7bc8f112bd  libstdc++-v3/include/bits/funcref_impl.h
! e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
! 31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 2d704693130242bf3c1c9fbf9bfa98cf  libstdc++-v3/include/bits/funcwrap.h
! a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
! 39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
! 4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
! 07a51a3027551b0c542b2b86f6c59b13  libstdc++-v3/include/bits/hashtable_policy.h
! 1fb540db8e28ddacb92e252146834310  libstdc++-v3/include/bits/indirect.h
! 286812f00b93c6b48c444cf624dc6983  libstdc++-v3/include/bits/indirect_array.h
! 02fc060959019f916137494b7725ead3  libstdc++-v3/include/bits/intcmp.h
! 06b4263267a102d1ab00cc2f9647964c  libstdc++-v3/include/bits/invoke.h
! 4150f8a8b9f1d62d09bec752e3f3476a  libstdc++-v3/include/bits/ios_base.h
! 1fc82914e7574979e75201ce425f67ef  libstdc++-v3/include/bits/istream.tcc
! 675990bcb7251fa8ae5aa34ac346d80c  libstdc++-v3/include/bits/iterator_concepts.h
! dbb38e51004a447016e1e173b48b4e27  libstdc++-v3/include/bits/list.tcc
! 4c22a893ca8a2b9ff88b689b6d5bb1ca  libstdc++-v3/include/bits/locale_classes.h
! a24ec2cbb7ec61510b16ffcdecba54dd  libstdc++-v3/include/bits/locale_classes.tcc
! 0f02a472f032cc76409dd49aa18f00a0  libstdc++-v3/include/bits/locale_conv.h
! f9ae524f3c66bcff759d2dc5fb7a4409  libstdc++-v3/include/bits/locale_facets.h
! f69aa477afbbb88f2ee81c3b9aa8d777  libstdc++-v3/include/bits/locale_facets.tcc
! 90a6211880ca4e245491a7aa1d8e37c0  libstdc++-v3/include/bits/locale_facets_nonio.h
! 5e10fa4819349005d341e0d826c26645  libstdc++-v3/include/bits/locale_facets_nonio.tcc
! ba88833f52a0518e73f3f865cd474fcd  libstdc++-v3/include/bits/localefwd.h
! 7d421045a2c29aed04d8138049f30a0f  libstdc++-v3/include/bits/mask_array.h
! 3acac12c52dd020e88e494e9005a4e9f  libstdc++-v3/include/bits/max_size_type.h
! 132af6fa95001b1f22942660000c3734  libstdc++-v3/include/bits/memory_resource.h
! d8251691b710967c63f24ecf3e8cad75  libstdc++-v3/include/bits/memoryfwd.h
! 3cdf6345e89c49a55bd7c9be035d3729  libstdc++-v3/include/bits/mofunc_impl.h
! 4169d644c2ef24f0668b2a257a0a5e54  libstdc++-v3/include/bits/monostate.h
! 3cfa2a35a7a2c4659303ecaa81de7f29  libstdc++-v3/include/bits/move.h
! 9433cdde0133c30f26005432cb0b7214  libstdc++-v3/include/bits/new_allocator.h
! 1b9f1c577b18d8325e7de09b66b12c27  libstdc++-v3/include/bits/new_except.h
! 30068e814005895587eb706ab7c5c00c  libstdc++-v3/include/bits/new_throw.h
! ab1a2667b1fb6a0843b439656cb56a71  libstdc++-v3/include/bits/node_handle.h
! 2cf34f1c708dc8a68a59f26be37aa2b2  libstdc++-v3/include/bits/ostream.h
! ad86ba065860cc280af4d463bd5ac78e  libstdc++-v3/include/bits/ostream.tcc
! 4960be4248870cda60d2fbc53fc26da1  libstdc++-v3/include/bits/ostream_insert.h
! 64d102a93753ab03d804450e77aceec5  libstdc++-v3/include/bits/ostream_print.h
! 2162ba15f1b30f3a9f495249af486aba  libstdc++-v3/include/bits/out_ptr.h
! 70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
! 6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
! 244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
! b07bdc6c6cec90e9cf7a74c52af0e9fc  libstdc++-v3/include/bits/print.h
! 075f43aeeb1c6dd2ab940ff22b8bd93c  libstdc++-v3/include/bits/ptr_traits.h
! e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
! b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
! 28c93e0aed9526e3f5092fe17092e92a  libstdc++-v3/include/bits/random.tcc
! 3a5b2c90b69b348c27562cf65e40b23f  libstdc++-v3/include/bits/range_access.h
! 0b2a4a5a8552148817067fd04c0dc935  libstdc++-v3/include/bits/ranges_algo.h
! 2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
! be4d83717ac91b3baa833f61b2456293  libstdc++-v3/include/bits/ranges_base.h
! c04d8e83343df391a348af7cf384e792  libstdc++-v3/include/bits/ranges_cmp.h
! 01f0b1bd6742b4a2e642b03e16e87ca0  libstdc++-v3/include/bits/ranges_uninitialized.h
! 1e16e9219782b5cd7f75c9d3e4611b1b  libstdc++-v3/include/bits/ranges_util.h
! eba2c9ee0f0d650f6223eb4f40e83b02  libstdc++-v3/include/bits/refwrap.h
! 7da252b55893374947fa85a63106e1e5  libstdc++-v3/include/bits/regex.h
! 95b0223d89eb3c556603e4541958028d  libstdc++-v3/include/bits/regex.tcc
! d62176e59366818434c2a0ad6ef3b77b  libstdc++-v3/include/bits/regex_automaton.h
! 7f7a38e87eaa1a1df665e82e34676187  libstdc++-v3/include/bits/regex_automaton.tcc
! 1a4bcbcad995d1ca9a6ef21ddf4f1840  libstdc++-v3/include/bits/regex_compiler.h
! 491f2e1710d8e0ee4cbfadbbd2892662  libstdc++-v3/include/bits/regex_compiler.tcc
! 7b140856171cba941a45c0f762eacc30  libstdc++-v3/include/bits/regex_constants.h
! 50ec2de0a344b64a276e732b37641aae  libstdc++-v3/include/bits/regex_error.h
! 2781effad56e7f715556eb478fbaaf0a  libstdc++-v3/include/bits/regex_executor.h
! 713d443706f3d0fdc7e5695558807234  libstdc++-v3/include/bits/regex_executor.tcc
! fc20035df7d49f1eceffb4cb72ad6814  libstdc++-v3/include/bits/regex_scanner.h
! cbd44f9447b308b0901004443db53e93  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
! 0a8f60f26dfea4bfea0ec71fe4a45ee8  libstdc++-v3/include/bits/sat_arith.h
! 39e2988a6581d891172e27c28e87c62f  libstdc++-v3/include/bits/semaphore_base.h
! a5e720346d3b4c60bfbcb9cf9a79f417  libstdc++-v3/include/bits/shared_ptr.h
! 06d870671ae35152d9e8442900c80215  libstdc++-v3/include/bits/shared_ptr_atomic.h
! 702f905b7fc00c89ecacee8e82ba19d9  libstdc++-v3/include/bits/shared_ptr_base.h
! a3287036233bd3e6387160d82f75e7dd  libstdc++-v3/include/bits/simd_alg.h
! 8799fba3d1a57dd5590cd74b04d27d71  libstdc++-v3/include/bits/simd_details.h
! 3173beedaa41588474c5481ec450cd20  libstdc++-v3/include/bits/simd_flags.h
! 707046d01f2d965e0a84ca6c656e2046  libstdc++-v3/include/bits/simd_iterator.h
! b136a78972f27620821fe613b75e98f4  libstdc++-v3/include/bits/simd_loadstore.h
! 76bfdd0a03cc20268cdb760ed633e53a  libstdc++-v3/include/bits/simd_mask.h
! 55677796a9d03b2fcab6c8eb9866efcb  libstdc++-v3/include/bits/simd_mask_reductions.h
! fce0564b07dd0ef981a64c683bfadc5a  libstdc++-v3/include/bits/simd_reductions.h
! 0b323a7c4344eeb0723e3ae0a9fbeef1  libstdc++-v3/include/bits/simd_vec.h
! 86eb307e0886ccc75570d22c33f78b3a  libstdc++-v3/include/bits/simd_x86.h
! c7864edd44ec162778d0cb89b0129937  libstdc++-v3/include/bits/slice_array.h
! 78e195bd62ca638897505b698c3193de  libstdc++-v3/include/bits/specfun.h
! 42139ff046a9321ce4a72fb8ee89a008  libstdc++-v3/include/bits/sstream.tcc
! 5a28c1e493e9869d8b5de7ea2bf1b811  libstdc++-v3/include/bits/std_abs.h
! 098007aa808e7047822ed48cd00a5504  libstdc++-v3/include/bits/std_function.h
! 55fe955c120e90af44fe73d6c1c48734  libstdc++-v3/include/bits/std_mutex.h
! 5b50c655c6d844633810805cb884e7f9  libstdc++-v3/include/bits/std_thread.h
! a9b017ab9e6eb2ad8847aa0ec2b12cff  libstdc++-v3/include/bits/stdexcept_except.h
! f9e306b8cee74f13390d2c91f994d69f  libstdc++-v3/include/bits/stdexcept_throw.h
! 4ebc2f0739aa489c68b54dccba9f2290  libstdc++-v3/include/bits/stdexcept_throwdef.h
! 9414705c520a817ae3b22dec29912b18  libstdc++-v3/include/bits/stdexcept_throwfwd.h
! 17332362c7ba0c7b2b3d14f656324b1b  libstdc++-v3/include/bits/stl_algo.h
! bb3f76482179ec4ebe183284d0d69874  libstdc++-v3/include/bits/stl_algobase.h
! 4e5a06e505381e0b1af562ff59670f89  libstdc++-v3/include/bits/stl_bvector.h
! c53878727e94c56c0b362d17dfe0fca2  libstdc++-v3/include/bits/stl_construct.h
! 7ff5badcdf0331f820bb5c635a0c2352  libstdc++-v3/include/bits/stl_deque.h
! dad6f36c0bb9a2b5c5cfe42d6904e350  libstdc++-v3/include/bits/stl_function.h
! 4af65d6cfcd3e9943b1da341c9fa26ad  libstdc++-v3/include/bits/stl_heap.h
! bd2e27c602ee02023df28ac89c0ad816  libstdc++-v3/include/bits/stl_iterator.h
! 30a80fd43b03c9e9bd8e65998464377f  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
! e8556ffa25de8ce12d02235826b7f595  libstdc++-v3/include/bits/stl_iterator_base_types.h
! 0b716dbdfa551e19bc190dc3329971b4  libstdc++-v3/include/bits/stl_list.h
! 54cd5ee7e2d1a538e5e89495c33a3fe9  libstdc++-v3/include/bits/stl_map.h
! ffa344f61cf489be8d6b4b4c50bf5043  libstdc++-v3/include/bits/stl_multimap.h
! 0c8e2dae6126ed4fad55da6b9aa553bc  libstdc++-v3/include/bits/stl_multiset.h
! 092fe17b6b3890e4eb295f8e06093a51  libstdc++-v3/include/bits/stl_numeric.h
! f2b2f381cae0b54e8fdd0103b44ef7f0  libstdc++-v3/include/bits/stl_pair.h
! ecab53d31c72576e23a3a0e171171543  libstdc++-v3/include/bits/stl_queue.h
! c5fe27c6f3b2737405f15913f248aa5f  libstdc++-v3/include/bits/stl_raw_storage_iter.h
! c786caa278e3160f3daa8327ee1002a1  libstdc++-v3/include/bits/stl_relops.h
! c70bbf877307a51d2c70e9955edf27f6  libstdc++-v3/include/bits/stl_set.h
! 2e947ba181d169443bd32dfa77c0e138  libstdc++-v3/include/bits/stl_stack.h
! 1c29bd2c226486c0b4016828fd21d761  libstdc++-v3/include/bits/stl_tempbuf.h
! 5a7ae738df1c65c40473cbd89974f3fd  libstdc++-v3/include/bits/stl_tree.h
! 7d34318fb81417ec27b53785cc389660  libstdc++-v3/include/bits/stl_uninitialized.h
! fa6a2197d9927c61c24b530816008594  libstdc++-v3/include/bits/stl_vector.h
! 96570e9668a903cd69d5febdf0595994  libstdc++-v3/include/bits/stream_iterator.h
! 5d9b3cc499e4ec992ba0bb9a3de1d791  libstdc++-v3/include/bits/streambuf.tcc
! 0caf96ea77db9790a800c94f57f8ab35  libstdc++-v3/include/bits/streambuf_iterator.h
! 16c1b7fd1686282fe8921246a80255d1  libstdc++-v3/include/bits/string_view.tcc
! ed462c96f62bdf1b74863ce869094491  libstdc++-v3/include/bits/stringfwd.h
  2eaea6618dd32c781462a159568c3920  libstdc++-v3/include/bits/text_encoding-data.h
! e068a6cceadc0aec8d8e47311cac3f91  libstdc++-v3/include/bits/this_thread_sleep.h
! a315f61009849bba79498b388f94c177  libstdc++-v3/include/bits/unicode-data.h
! 8d7b0008119045f5029e61c141c3c2ff  libstdc++-v3/include/bits/unicode.h
! 3d2b88f1657e6f77a55d546f589e7415  libstdc++-v3/include/bits/uniform_int_dist.h
! 966bb21f0f44c4b2b6e713e62aeb90ae  libstdc++-v3/include/bits/unique_lock.h
! a911e8012ebb64890a0e12c16e4345ed  libstdc++-v3/include/bits/unique_ptr.h
! b1052f564f9839906c0d1f1f7a3296ea  libstdc++-v3/include/bits/unordered_map.h
! 3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
! 4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
! 9d01cfbd90824dde5e36d65c0c160ad5  libstdc++-v3/include/bits/uses_allocator_args.h
! 6c46656b0e1510bafbc3560eb85608e0  libstdc++-v3/include/bits/utility.h
! 3c8c91dc88f2ee1e4b68dcc3f3aaa5e5  libstdc++-v3/include/bits/valarray_after.h
! d1cf5a35c4ad3820cb023d8f84762cc7  libstdc++-v3/include/bits/valarray_array.h
! ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstdc++-v3/include/bits/valarray_array.tcc
! 16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
! 682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
! 5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! 543cf57b6ede0865f0d6ded6ec5427cc  libstdc++-v3/include/bits/version.def
! 29fbc02e75371bf75aa0871428303686  libstdc++-v3/include/bits/version.h
! f92789aa59d1ed5207e13c936667059d  libstdc++-v3/include/bits/version.tpl
! d99b1b69e5f87e5a631c8a881d053766  libstdc++-v3/include/c/cassert
! 7f5b12607c4d7cbbcf705b672613447b  libstdc++-v3/include/c/cctype
! 2d3380c821643531466922776bd5d195  libstdc++-v3/include/c/cerrno
! 11e3384d40f1332db989ff1079dc0609  libstdc++-v3/include/c/cfloat
! c5544a48e75cbdeb953bed7ae4d68bd2  libstdc++-v3/include/c/ciso646
! 19ba28dbbf4521be7d688be15000a9fc  libstdc++-v3/include/c/climits
! 279d40b2a847bf8ef298a7070467924d  libstdc++-v3/include/c/clocale
! 6f3072996d70acc31d7aa344462c5a05  libstdc++-v3/include/c/cmath
! 9c38b9e11979f6cccc19588f5a32bf5b  libstdc++-v3/include/c/csetjmp
! 43bfdad1eacdd67dcb181724c1a85701  libstdc++-v3/include/c/csignal
! b87a2cabb569f19d72c6d246804ed5f1  libstdc++-v3/include/c/cstdarg
! f0785190e9b584054bb213262c16df28  libstdc++-v3/include/c/cstddef
! 67a634b91886b4e69251a1d854b42705  libstdc++-v3/include/c/cstdio
! 203f56ed5c95a1fd412b8127426726d6  libstdc++-v3/include/c/cstdlib
! 91f6668a9ec3367e0389c5e4a912e32a  libstdc++-v3/include/c/cstring
! 1f5cc2706355e8772da0375a867ff8c7  libstdc++-v3/include/c/ctime
! cd8e3032db382733b7c27eb65bfdc5c1  libstdc++-v3/include/c/cuchar
! 1823406947c80b49faa1bb4c874538f4  libstdc++-v3/include/c/cwchar
! 7c5ad85c4c597232f62b01218a1c52b9  libstdc++-v3/include/c/cwctype
! 058d76523d9d953d0307ab84c3f83fa1  libstdc++-v3/include/c_compatibility/assert.h
! c77f40fe301cebb14229cbd4e622ed64  libstdc++-v3/include/c_compatibility/complex.h
! cfff0fdc4352f557ed92af504c3bc766  libstdc++-v3/include/c_compatibility/ctype.h
! 6f7c100fd3a58dac6f9b573d1fa775e0  libstdc++-v3/include/c_compatibility/errno.h
! 96d83472af9b5edcfad24f38969ff04a  libstdc++-v3/include/c_compatibility/fenv.h
! 5338be40a7659fa04419805d1feda67a  libstdc++-v3/include/c_compatibility/float.h
! 0e40c268992228bf39cf0217e483bda1  libstdc++-v3/include/c_compatibility/inttypes.h
! 2efd721fca123772cdc14fcc46cc1ac1  libstdc++-v3/include/c_compatibility/iso646.h
! c3fb87a4b760678f4c4ed98bd1be1a4d  libstdc++-v3/include/c_compatibility/limits.h
! 47950b83ca0a2424e136fd1d5ecf1e43  libstdc++-v3/include/c_compatibility/locale.h
! 0b8ae8c55942c6588491d9b0ae158c16  libstdc++-v3/include/c_compatibility/math.h
! c77dc30670dabe5b153a1ec91a3d9060  libstdc++-v3/include/c_compatibility/setjmp.h
! a443277949254779744969a5bf96432d  libstdc++-v3/include/c_compatibility/signal.h
! a507b3dc4634a3bd5d51343052e1ebe6  libstdc++-v3/include/c_compatibility/stdarg.h
  e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c2f557a28c1227cff940c6918cba6832  libstdc++-v3/include/c_compatibility/stdbit.h
! 99516ad099034ac6c4ec580f5408359f  libstdc++-v3/include/c_compatibility/stdbool.h
! 3613efbca3078025a0b386df3f22536a  libstdc++-v3/include/c_compatibility/stdckdint.h
! 415079eb2aa8b178397285b36058ca80  libstdc++-v3/include/c_compatibility/stddef.h
! eaf1c04b2c41142667cd5df309803e5a  libstdc++-v3/include/c_compatibility/stdint.h
! 635893dd66c939a24388499c92468689  libstdc++-v3/include/c_compatibility/stdio.h
! f6687ee189f596edf6a21007fbc7c11a  libstdc++-v3/include/c_compatibility/stdlib.h
! bc78b19b0bc9820217771b75654d5c73  libstdc++-v3/include/c_compatibility/string.h
! a797ceeced29b6b50d00a1a8ace9845a  libstdc++-v3/include/c_compatibility/tgmath.h
! 5cc4363538c75b7221b2afde8206bce1  libstdc++-v3/include/c_compatibility/time.h
! bed630ad4edf88af9d5b6783cd984749  libstdc++-v3/include/c_compatibility/uchar.h
! f14e4108e41f2a06e0a98b82b41ae656  libstdc++-v3/include/c_compatibility/wchar.h
! 6be67d9784f303a33d9865004352704c  libstdc++-v3/include/c_compatibility/wctype.h
! bd7b399c4e8d7ec9219feec06e6c0a9b  libstdc++-v3/include/c_global/cassert
! a893291a1568467eeff5fb1abbfe8256  libstdc++-v3/include/c_global/ccomplex
! e2c6f8dca717ece8311603010d527829  libstdc++-v3/include/c_global/cctype
! 74859f358d39bc693d519036d184800b  libstdc++-v3/include/c_global/cerrno
! d95c275654a026d0932fb2ca10a41d26  libstdc++-v3/include/c_global/cfenv
! ac88376dce4050fb23dd741107964d8a  libstdc++-v3/include/c_global/cfloat
! cf6930d5c4e8f09271458571b10674c4  libstdc++-v3/include/c_global/cinttypes
! e87b550a98db6572e3557b822648bb25  libstdc++-v3/include/c_global/ciso646
! ec4e8b9adcf51e872e62f4178d924d69  libstdc++-v3/include/c_global/climits
! 2a31d6ad5dca699c6cc4eac8362b8093  libstdc++-v3/include/c_global/clocale
! 3d731ec75ae816e93cb9b91551d2e55b  libstdc++-v3/include/c_global/cmath
! 761bed9ae9787c3ec656f6affbab1daf  libstdc++-v3/include/c_global/csetjmp
! 75d3874de44b0f938863af4d319cdcfa  libstdc++-v3/include/c_global/csignal
! c254946e33fc7e7f263d87a8d8d7a7be  libstdc++-v3/include/c_global/cstdalign
! 51d16811d29f20a59adce2df781f43c4  libstdc++-v3/include/c_global/cstdarg
! 0faa4047fc02805a599a0d6b2bd5a9eb  libstdc++-v3/include/c_global/cstdbool
! 75a9d372270d8d24555cf8d27d67f7d8  libstdc++-v3/include/c_global/cstddef
! b0f89841b96bd238101e6f600b663bd2  libstdc++-v3/include/c_global/cstdint
! 1186cb2ff64c3de7bdd9fcd38d4da433  libstdc++-v3/include/c_global/cstdio
! 5b0879cfade4b6c6a3507f8964a60cf4  libstdc++-v3/include/c_global/cstdlib
! a85bf44efbaf5c423a19e78908232b54  libstdc++-v3/include/c_global/cstring
! 97ed848b6e256a53cba2193eb2719e62  libstdc++-v3/include/c_global/ctgmath
! 2cb25b808cc092576bfcbd462a4b0bcf  libstdc++-v3/include/c_global/ctime
! 6c94fa75fbf11e6f53034f7a69baf47a  libstdc++-v3/include/c_global/cuchar
! 35f7c9ba59a46cebde3a82eb9ded21c0  libstdc++-v3/include/c_global/cwchar
! 5ee19b6fbc1073b1d3379ed186222979  libstdc++-v3/include/c_global/cwctype
! dd0c39a269cf5f30a89e596ed2d96bd0  libstdc++-v3/include/c_std/cassert
! 38db0bd71a4c334ac0a875670fb17c22  libstdc++-v3/include/c_std/cctype
! 155703a4a00a8f83d01ea009e5b7626b  libstdc++-v3/include/c_std/cerrno
! ad3e1292da8e5faec68eb64cd93e479a  libstdc++-v3/include/c_std/cfloat
! 8e8187b3c3ab858a31e284c5ddd43d17  libstdc++-v3/include/c_std/ciso646
! d22ae68e37f8ec20c12430fca811c234  libstdc++-v3/include/c_std/climits
! 6b421c08c4213952793bfcba18ceb4bd  libstdc++-v3/include/c_std/clocale
! 18ddb1ccc84c1bf753b580e68fb03560  libstdc++-v3/include/c_std/cmath
! 0605acfa5332f4d612577be9cf3336d4  libstdc++-v3/include/c_std/csetjmp
! fc76e9489e856083af2d71a2198accf2  libstdc++-v3/include/c_std/csignal
! aed3c22d4cdb68d8e79d2183fddfe86b  libstdc++-v3/include/c_std/cstdarg
! 2d1aa70eaad7c3ff0752d4ff955a6927  libstdc++-v3/include/c_std/cstddef
! ac07c595c9e7a8edf85c863e0f613d1f  libstdc++-v3/include/c_std/cstdio
! ddcad2ef48c62d7053209fd20d56de52  libstdc++-v3/include/c_std/cstdlib
! 96520d2f4609430f2c32f17a407d55d9  libstdc++-v3/include/c_std/cstring
! 35948bb57c4bece17b8284bbc4b03b9d  libstdc++-v3/include/c_std/ctime
! 86d102f31c0319f3b06fd64dbbe84601  libstdc++-v3/include/c_std/cuchar
! 2802f737756b8aee9226771f1a1dd731  libstdc++-v3/include/c_std/cwchar
! 8c0d0c997ee0b542db25d9cb303e44ff  libstdc++-v3/include/c_std/cwctype
! 7289c04e0b0e90653ca4c6c1562c0359  libstdc++-v3/include/debug/array
! 5b540e2bfb811c882e519b52ea6b37f0  libstdc++-v3/include/debug/assertions.h
! 43bc24df168bf241336cb295616ecab5  libstdc++-v3/include/debug/bitset
! 5a5120ba442619a34f6f6aba86d39daf  libstdc++-v3/include/debug/debug.h
! 7fdb7557490d0ace3e8a0ba82440b63b  libstdc++-v3/include/debug/deque
! baa7e2585de42c6e51eb820e90b56c63  libstdc++-v3/include/debug/formatter.h
! 4199ddb13d757d5a7c46dbd4527c6eda  libstdc++-v3/include/debug/forward_list
! d95660c2645f7e9361491fcf14b38da3  libstdc++-v3/include/debug/functions.h
! 18233e054900d62697fa627bf4b56b9b  libstdc++-v3/include/debug/helper_functions.h
! 899d552e8421635b2ef8bb44d8d9be6d  libstdc++-v3/include/debug/inplace_vector
! f967a7391ba2b17cdc66d9e175a90e06  libstdc++-v3/include/debug/list
! 19ec1c383d4909ba5ee9ecb5b6cf6024  libstdc++-v3/include/debug/macros.h
! 74765900798729999c3b75d77ac6b179  libstdc++-v3/include/debug/map
! 7dc5bf4d880114b1ba17398977a2d2ca  libstdc++-v3/include/debug/map.h
! d33f07a2c476cc45af97a78f4020e731  libstdc++-v3/include/debug/multimap.h
! 86f440721d11a555ec97526d018eabf7  libstdc++-v3/include/debug/multiset.h
! 05b2e599111f72660b0453d2350d1feb  libstdc++-v3/include/debug/safe_base.h
! b901bcac560763f13f4c3a3e076f8f7f  libstdc++-v3/include/debug/safe_container.h
! c623155558d82a21f1f31630a36eca85  libstdc++-v3/include/debug/safe_iterator.h
! 732aac16ab9dafe9252686005236d0fd  libstdc++-v3/include/debug/safe_iterator.tcc
! 3f09c53b38ff607ff8a2eff86c38b166  libstdc++-v3/include/debug/safe_local_iterator.h
! 86b787ce43f8d75f10315d2c404c22e4  libstdc++-v3/include/debug/safe_local_iterator.tcc
! e4403adce6d232421e34c8fe3059f294  libstdc++-v3/include/debug/safe_sequence.h
! 7dc511835c46701a6f5add97bf87657d  libstdc++-v3/include/debug/safe_sequence.tcc
! d50a83aff93b89a5438f2854774f452b  libstdc++-v3/include/debug/safe_unordered_base.h
! f91ad76fdf9c8fa108df1249c27a6a62  libstdc++-v3/include/debug/safe_unordered_container.h
! 6d9dc6ce3be6995e0a3de56df57d843f  libstdc++-v3/include/debug/safe_unordered_container.tcc
! 995ba6e76562637a31c8fa671052d734  libstdc++-v3/include/debug/set
! b922ccf9b7c37515224ce52d1fb1d177  libstdc++-v3/include/debug/set.h
! 96d411ed834e01fdb383e36bfc0cec51  libstdc++-v3/include/debug/stl_iterator.h
! d9cb6ff2b57e6cc2ac9c8f14382b7007  libstdc++-v3/include/debug/string
! b493a4998a52a7ca9c12ee6a68a93611  libstdc++-v3/include/debug/unordered_map
! 4774bf209805ae454bdffc2ab5328851  libstdc++-v3/include/debug/unordered_set
! 6623cb54a3a91bb96aee3df30de2b717  libstdc++-v3/include/debug/vector
! bd768b905048126ba3c8ccfc9f5d7c30  libstdc++-v3/include/decimal/decimal
! cb86182d3c0277ef7f96801aaf93d5b0  libstdc++-v3/include/decimal/decimal.h
! 4d35e36ff37f40f2332e6343d7f91d1c  libstdc++-v3/include/experimental/algorithm
! 0bb4d65725948a5b7b8ab4273a0e06fd  libstdc++-v3/include/experimental/any
! eb5c3c70648edffb136041224176415d  libstdc++-v3/include/experimental/array
! 924db71418cade14461dc9e0fad3c165  libstdc++-v3/include/experimental/bits/fs_dir.h
! 849535d1bb1db1d378f98d4d342f816c  libstdc++-v3/include/experimental/bits/fs_fwd.h
! e383a221c239aeeda8bcefe660a2628d  libstdc++-v3/include/experimental/bits/fs_ops.h
! b24ccd687220a21ff0f528a257e682f3  libstdc++-v3/include/experimental/bits/fs_path.h
! d3e2058b40263b2287f46d84e583b69f  libstdc++-v3/include/experimental/bits/lfts_config.h
! d704100997ba3629701a66deecd602e2  libstdc++-v3/include/experimental/bits/net.h
! dbe674cb44d578c2bf92a2642822492a  libstdc++-v3/include/experimental/bits/numeric_traits.h
! 3e7dc5f93256207244c7d476ec8c1437  libstdc++-v3/include/experimental/bits/shared_ptr.h
! 0f846630ff721f329a505b48d1c06c7a  libstdc++-v3/include/experimental/bits/simd.h
! 1f4a21c0d9b74821b1c09fcb534eb6aa  libstdc++-v3/include/experimental/bits/simd_builtin.h
! 70bae773fcd870ecb698a726efe86f04  libstdc++-v3/include/experimental/bits/simd_converter.h
! 2b373d0b5b603ef24f807e1c98b6b9e5  libstdc++-v3/include/experimental/bits/simd_detail.h
! f5ec9e780d88dd9a3c3b849f9af53d21  libstdc++-v3/include/experimental/bits/simd_fixed_size.h
! 342b188963334464644ca7f95fdd2efd  libstdc++-v3/include/experimental/bits/simd_math.h
! ebd19bf2f0ddfba2e4c0f871732bd72e  libstdc++-v3/include/experimental/bits/simd_neon.h
! c6720f0a7f2a3f9397a1d015515a6ca6  libstdc++-v3/include/experimental/bits/simd_ppc.h
! 0662d0d55ec4b23de175ab4f20cff996  libstdc++-v3/include/experimental/bits/simd_scalar.h
  82cf5cd853fbb734d4d3834ef245bf9a  libstdc++-v3/include/experimental/bits/simd_sve.h
! 5fdc22fc0145d22be697b338d83a6682  libstdc++-v3/include/experimental/bits/simd_x86.h
! 307d08fcd366e3e25a81cdceecb3375c  libstdc++-v3/include/experimental/bits/simd_x86_conversions.h
! 60c94b172174d97035d0f922981ceaf2  libstdc++-v3/include/experimental/bits/string_view.tcc
! bb1f9ef706b721a2de289747165208b1  libstdc++-v3/include/experimental/buffer
! d048e5b70f22e59dfeef185737f94eec  libstdc++-v3/include/experimental/chrono
! c97cf9ce9193ec48be8a332c03f1570c  libstdc++-v3/include/experimental/deque
! cad6cabb644462acbbfbe6eb144e500c  libstdc++-v3/include/experimental/executor
! b5527ea1991610f4f17edbefd678d40d  libstdc++-v3/include/experimental/filesystem
! 228e980742163cfad94d49363468dc67  libstdc++-v3/include/experimental/forward_list
! 895e6c4b9b0f29f4464720ca0d8bee13  libstdc++-v3/include/experimental/functional
! e7ae9c85bee2bb4b76cce0dc4b11e0f2  libstdc++-v3/include/experimental/internet
! e6323fefb059091b24775d5076c7b8e8  libstdc++-v3/include/experimental/io_context
! 84ba5f4ebf040b9115f9461c6ad0e8de  libstdc++-v3/include/experimental/iterator
! d0ae1d32fac17c7e15f5938873605d89  libstdc++-v3/include/experimental/list
! 9f78a08010d9a34822b5ef678098f94e  libstdc++-v3/include/experimental/map
! 8e7ab4105b558a989a6e4303126d7ebc  libstdc++-v3/include/experimental/memory
! 7d9fe792577140913caeeb2ea5f67773  libstdc++-v3/include/experimental/memory_resource
! d3c79c80c806820669db8023e3c03cec  libstdc++-v3/include/experimental/net
! a64126d88b09ee3c993f0d4644404e01  libstdc++-v3/include/experimental/netfwd
! 339243b159728b283d048b82c8ae456b  libstdc++-v3/include/experimental/numeric
! d744bd605c1aa2a2f4f345575fea0f8e  libstdc++-v3/include/experimental/optional
! f6e87c9efe6890d649ce17d9515756f7  libstdc++-v3/include/experimental/propagate_const
! 79c01b8956f3d07d5cacd9a317a884d7  libstdc++-v3/include/experimental/random
! ab76fc65e4ba6452dc3c1ab04fddbee7  libstdc++-v3/include/experimental/ratio
! 554a88a4f51cb44aceb7cec636b3840f  libstdc++-v3/include/experimental/regex
  37b73283a296ce777ff3768c5fc3a1d3  libstdc++-v3/include/experimental/scope
! 785966512c173d99ef706d2284e6e85f  libstdc++-v3/include/experimental/set
! 1decff74f35c7085c9dcdb36755e0d79  libstdc++-v3/include/experimental/simd
! 7471fcfe480c8bd1e5602fc2243bcc2b  libstdc++-v3/include/experimental/socket
! e7bdcd2a79e2a3363addb32a20d1c7a1  libstdc++-v3/include/experimental/source_location
! e9217494e85ed6d25ea53fd4f978635c  libstdc++-v3/include/experimental/string
! 4680d8937bc450d81954636ac9ea79ce  libstdc++-v3/include/experimental/string_view
  aba85fd9df4f326dddac0856c66bec83  libstdc++-v3/include/experimental/synchronized_value
! d7ab16a75c257b480a431616a05b28f5  libstdc++-v3/include/experimental/system_error
! 19a20f8f922e94f54958b49b3579c710  libstdc++-v3/include/experimental/timer
! c6d745a7148f65dc136d04bd5ff03bfd  libstdc++-v3/include/experimental/tuple
! f2cdd605977c4b6c27038532e5154da9  libstdc++-v3/include/experimental/type_traits
! f21c5663cad52807c0cae4b139f88338  libstdc++-v3/include/experimental/unordered_map
! 0de8ee9af96ea3d6461865d5bd0d68e9  libstdc++-v3/include/experimental/unordered_set
! 3459ed324581f541d1d6bc57df4a7c02  libstdc++-v3/include/experimental/utility
! 073b39032cb2a7afba417b9655d38ccc  libstdc++-v3/include/experimental/vector
! 1297cffcc61a23515cd48f8507175511  libstdc++-v3/include/ext/algorithm
! 9f37d0585a7f0b805ce7275a08e9768b  libstdc++-v3/include/ext/aligned_buffer.h
! 2d42d5b314eb535cc8a117b56f213a80  libstdc++-v3/include/ext/alloc_traits.h
! b72c5dd99ffcdd17f3a5020515df58c2  libstdc++-v3/include/ext/atomicity.h
! b2409d8a524bb194bd5dce319c6a9a7a  libstdc++-v3/include/ext/bitmap_allocator.h
! b63cbb9fd8363685fe56ec9d7efb11d6  libstdc++-v3/include/ext/cast.h
! 603f77b25e053743878d1a28398562ba  libstdc++-v3/include/ext/cmath
! 9940fb82706547fcb8e372cd5ae1c993  libstdc++-v3/include/ext/codecvt_specializations.h
! 3bb2ee0e94aa68e4afab3fe5e380b79f  libstdc++-v3/include/ext/concurrence.h
! ba24717cb0fcb4568ee52801de77d729  libstdc++-v3/include/ext/debug_allocator.h
! ecfa234661c82a56f0274db52470183f  libstdc++-v3/include/ext/enc_filebuf.h
! 416fbb99cff5c27462154a758d97b251  libstdc++-v3/include/ext/extptr_allocator.h
! 947f092385dd61a22318c834c8908283  libstdc++-v3/include/ext/functional
! 58bb54d30d8ca66af7484d14ebe27323  libstdc++-v3/include/ext/iterator
! e0a78cd11e965b4efc6108876ba178fa  libstdc++-v3/include/ext/malloc_allocator.h
! 2a4d5420bf4af4f5a0b8c27f272fb9b0  libstdc++-v3/include/ext/memory
! 2c807d07134989d2b3096dbc69f864a6  libstdc++-v3/include/ext/mt_allocator.h
! 20b36667fca2a5bdf17aebf78bd826d1  libstdc++-v3/include/ext/new_allocator.h
! 10af927234760666408e4aec32b08084  libstdc++-v3/include/ext/numeric
! 2438ec634a9483bec174e469f85515eb  libstdc++-v3/include/ext/numeric_traits.h
! a675238c0b19b306af40864e1d266d02  libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
! 2f8200ebb7d489e3dcd05043f0da3e00  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
! 8499b1f00cd19cf76051e4d977f2f80c  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
! 0ec4c742c1761094959ac083d9067846  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
! dafe0f6cc3b11de07d50bb387bf8809f  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
! 74e33018f41e21b4a419efc1768a68ff  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
! 7e3b2e79b26317523a298df255a67abb  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
! 3db31af32ae0bcaac7a129c40408dfbe  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
! 85e74c3926e4978293a296e357e2faa9  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
! dfd29850726f5564c728a73be4cd9aa6  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
! 9f05995d42f70f2ea34bbf30c8d9a302  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
! 05ced9288adcc065711f7d50eebcc284  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
! 156a7ddc85c287b8705b075b1feafe25  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
! 67fe53b893c10192213b4039a15d910a  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
! 92a514187f1cdea792f24b3be5df7bd5  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
! b86b2fe99457a0f5ab75dbca65eb9b86  libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
! bf27dd6d8dc8757114d4a0d44ed34fae  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
! 5f7acb8b8c28e9975470fc6bc3ac1896  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
! 155314be1120fb8f276d51d436591433  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
! a2408e58d55bc6145229f2272b48f3d9  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
! 2f8efbe4c9fd1ed33e46010e6f2e7eb6  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
! 8e09de9ba607153e547b60ef9c59fe94  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
! e5363d81f2aeed03d79aad343014df9f  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
! 5769e29fcfea96f3d7765bcf8c08fbcf  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
! e410240d8bfee99e4cff3885f3005bc2  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
! bb0f0b591bd1fdc4931cd2a27f5675f8  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
! 66c195350f93a70f28188e0bcf7fe7a9  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
! c3173240ebc375603eaf0723d39eec2a  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
! 5fd7ed56932584ce3796dce0bcf7cfc3  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
! b31edda8c7e60e489348629f693f18e6  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
! 411202a06f83622bbfb386fb9fc7de5d  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
! 61d62c990b36bcf4d2ef52e107ead92e  libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
! 67440ecd0f2a9becab233f718165b2a5  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
! c1c47d72087a8a46afa88aa9a980ac3c  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
! b560cd5a5c361697da560e8ca83196c5  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
! c570bccf969ba6c5cbe6e38fd0d28a14  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
! 09ee8a24778f7cd9ff01b529287a77ed  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
! 53a55bdce337bd24ec6339181797a76a  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
! 6cf6f9c03ec1dfd2151580826a6018cf  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
! 7916b9862d5413feb2f49b3777677930  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
! bd3a4eb8f5e20441521327fccaef7fbb  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
! 854bc44e127f13090bd4ab88353c2d78  libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
! 2f5da25d045fbb40297cc5f08488c387  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp
! f745c7499ee02543fe541b6edbfd70d2  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
! 2d3042a5b6c16fab362e4fd38300f09c  libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp
! bb8d7c524f825345c603eb50178d0d1a  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
! ac27675763a6d67a0d77c16d904e27ff  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
! 3da7fedb045d5b752e9a152c1b3bd38b  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
! db2181711b117e2dbf980e1c51bc12c9  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
! 9fb071f7e66eafb371af5a0ca2227494  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! cfd3d0b45b8baae67a4948aa4cd489d3  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 7e1980e11199a92bd10d8817a7829205  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
! 22b892ca5b504c62fee648d88cd90647  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! 15d708d8d4b58286f4a8039694d6e016  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
! 027c3a504dd41fdf8f44bf554f2b9fca  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
! eb83545af7baee08cf0ae14e23c1fe06  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
! 69c93ca4e4c4095983303067f2b54fdd  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! e340532be5d930ea0de0c4efe773df70  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
! 568d25fb1e3f709af61e8878a46f9c1d  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
! a2f6a1d1a36a9dfe4d6a38404497e1a3  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
! 0b6fd9e89cc0b1953a0280d1f9571679  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
! cfb11c327483f0d06db8b090e743e7db  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
! 9de70503c67b131cc166c8e3bcda6997  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! 0689a2f40c8c1d49ff121580ca5397f0  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
! 86fc1f8d59659205518ffc743fb43fda  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
! 999623bc96c5b6efde40deddbf3456e4  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
! 4a4df920a74c33da6ef7652cc41a6d64  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
! 884b26262636c34f62001939a78453e0  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! fb81d3b8642ba3c647355dd05e8473d4  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
! d50689eadbad8543377051c4cfd25586  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
! 3abb9e5f2a507d9c9a7dcc154376de84  libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
! 6febc759de4a08db048cb72d777f3032  libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
! 0b915d6c1f39e700b68143fcbe0172c5  libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
! e6f447190a90673c3a0e3845b439ecef  libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp
! 5db6507398e500606dbd38e68700f950  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
! 62c409566718dd661f5d3dbc4b520e08  libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
! 1cef09ae4a379940fba3fc3759886676  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
! 39f75bb371b2d019108a664f392ba146  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
! 75e9a0108e20e208cd9c6338289d3d1e  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
! 6e9fb064007d7afbb07bb1487e4a3f14  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
! db97202be695d50aca8f88272ffc53c2  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
! e4f3e7865bec5448ad1ea08f697966fb  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
! 4bd9b57921ab15c50a2396b7f839ca37  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
! 3e4dffa8405cd20a3191d5f3eb006f56  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
! 7e7003b2638caf57336afeec0d46f3ac  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
! e65aa898025f420eb79bd0fcbccf2547  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
! 3ff0cd6def5c5d81af58d6e56d19489c  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
! 908e3e958db1c01f81801cbe8c2f66de  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
! b86dcc85d8daa9d7330ad503ded48f59  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
! 8b2eed329559208abdcd1a72a986de2b  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
! 9fd1e27b3eb0e63d63844220e851d2c7  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
! 400173e9eeb3261643d85c5068019a58  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
! 1e9d07dc60eebc34e5b01cae5568d88a  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
! b0815d4fbf1d9f9f4fec9956faf84dc3  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
! 8991cbbad105f5ff3c3a0e1b169bdf9c  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
! 0488357cb9ac4b6fb01224d6627f5bc4  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
! 9b76eaee9b111b2bf9de468a50814236  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
! 32917c8bb495c962823a3be969251b15  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
! 35292c92f4d009c8bf6e3d4f749713b0  libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
! d79cd8f0e0b67de047ef2c123a312517  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
! e7212e9a7a5b085d20f7b300897127c3  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
! 59723ca070bcf6e0bb1f280890565a52  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
! 9b133919a7092111b55a5675209e0a07  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
! ef9c53a8722976cc602f25f494029bd2  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
! 1006d54206412ed63cf0dd9c02367368  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
! 2aeae0fa7290342d498c4cfe12c6d939  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
! 48b1491e35171207465b3a957fe6c196  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
! 5d0ead7ab1b54861c4531606babd7dff  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
! 7be874790c6aec6fc93ed17da5aa465a  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
! 2790a1caf4585c8ef60e31199532f5bb  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
! 47f7bf04da08ac8b4c7229a1615aed2e  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
! 9d5a100fd06b7953be9c88fd05210875  libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
! ffca7b99813f40abad12ebfd9ea41d90  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
! fd6127002362e95815c981344c863243  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
! 0fae3a668388885d481e747ffdc0f62f  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
! 2e3a645ef936c247f262ca0c33c3dfab  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
! aa5a99549fb9cec4dd57b82eacac5e44  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
! 3f4ce4bfdeedcae08f1abd9f7c8b95a5  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
! 74d0640a970e93d81c037e5501c34259  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
! 4d914de8139e30f19b06c4919e1503c2  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
! 8658cfb637b9d9441c44c87614b124f5  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
! 833445f7d9bd096e1ed392148e550b36  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
! 04c28e07eddcaa320b5a0a8bd6d49d54  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
! 1c2ee354f15eac9f74aab1d337047d2c  libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
! 4406c7936f1b7bcf186102358ea58bbc  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
! a878b5b53579ca7ef1afa880acac2c59  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
! 4079c3edd25c6f54aedea57dcd9ae13b  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
! c2f9c7b8d6c7e665531789b32bb5d5e0  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
! feaeb2d6893552b233333c74b43b57ae  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
! 6ef9d98d9bda2116628736e6ecb9b6a6  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
! 204b101b4ce6b6dc77f490121252fc54  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
! 7651a594b499cd35fdda5b040ad40932  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
! 4a2f1cab9ecdeb1683d9271c0db3f734  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
! d9b06d389bec0534c3261ca83ae1a454  libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
! cf6fe723f48885db29a174849d7a1896  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
! 5a210ee547826b3db595418875017139  libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
! e2bfd814ae4c3c39fd8e3c1a267e5969  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
! d5847c0c4f091da307436616a2b2d84d  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
! 0975e9826cead0bcac7672bfe8f6b9bf  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
! 54d676359114286be532ea57fb7d079f  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
! 968b31e3a9b41b33b9d0b352dfc3a670  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
! fc9cd1af956dd211c82af9715bd26b67  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
! 8f57d14de37de8c09a28fda777d54e35  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
! 511c045d1a815fc032f2797eb711e394  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
! 397ae6e49e1f7dae31771a9c736fc92e  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
! 4f269668cefe3c9b742e1fbb0c84c112  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
! 4d7be3944231c1dff74118e46ccecb3a  libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
! a112b2616216efaa70842d77c7c87339  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
! c16e208124e74552740dee70b5faf61e  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
! ac5e107498cab28159b3bc9429424104  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
! 8011e519f51ed4f576be89fec2b41532  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
! 9797d6efb12698df51599fb4819859e1  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
! b63ec4a7bce734815273d6c60c3cc6b6  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
! b809e97ded3ed72908c8b7c6f7f5de67  libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
! c8086c3f2f03f1896444e94d53c188a2  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
! 6ac6bd290c7fe23fd5107fbcbf5df20b  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
! 65426ee34651c577a812d24fc8cef1b7  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
! 3f34dbe94363638a0a06ba60d9933c7c  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
! 920859ca178fe21b6db9a6257e51b7c2  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
! 2cb4ea95bf5153dcdddc2649f215cdeb  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
! bd344d49423549a8b9621d478ef4fbb4  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
! 10b1a3a0c424d0f393511b25c64f30e5  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
! 6e556f600d5cfed3d90685a90d197fab  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
! a5a53ec60160ef37453f6655d32f5698  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
! 0c1970c9afa0229cec939082845942cc  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
! fc1453a78362a04fcc2c7735a1839e11  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
! cb940e96c6bd76e0b68987a7fbe827bc  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
! 729c6ef89a8f183eca53d0dd3811a1c3  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
! 5f52bd8cbba87226c0422ff62297d281  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
! 8e2bca2fb2cd32298f8db087cf1cc53f  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
! 13cdcfd33fdd56de3c82b23b03ad7fb4  libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
! 6da5f8b416f17fa9a1efc6653c824bdc  libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
! fe15e80cd40dbe969e9cc7fd0b237e72  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
! fbde2caa96a8020aed228c7f3ec673d2  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
! 1769322bcc430f67ddac00c8bc0e08ec  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
! a2837d55195ca99e804962b2d63e0c29  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
! fd8b577d25fd306a05b023f88e0556b0  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
! c762b185daf543b3c5c9050e232e7e7a  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
! 1f6d5427df5a3ecd8e3db6ecb9967618  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
! b7ac15335e352b87201c4d5777f25c9c  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
! 6da07b956d886d7fed3242c5f689286d  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
! da2e240bfc5fba52e2d151f26f4ed350  libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
! 43303289235137c23462e3b38f77c058  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
! b9c35e6c3c89becbe54ad619b07e2107  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
! af139be34ec4ee2f8b7bb627a87cc072  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
! 8e6c1d4382665e08b961ce06f921817d  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
! 8c3f9caafc06678c80e57ad5441d6c6a  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
! e2be81a4ecd9ea3cddef4d0690dbf0b2  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
! 45d62890f90fc51e311776eb2a0f17ff  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
! 7fdb9466a26a74b599a42e118ebdf050  libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
! d0316d35cbd043c8d2a20078035e9bd6  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
! 7b9f3ad9b5fe3571c001abe469eb9bdb  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
! 57e7618581b545e0adb399598b142552  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
! 7e1306df5577cb635e52d3148a9ce03d  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
! 94e2dda685484636314b2047e993ee4c  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
! 09f8d79b3484522f00373db45d331a65  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
! 41ca45c305eaadf5da8ea0810c805f53  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
! 9c7358c1dc99bace71454e76c2e5e953  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
! e19488058f8b775550c2286fdb5fe9f6  libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
! a4b3b266f5670f82c2961680009c8d3f  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
! bd398476a06ba872d5dd0facbb4bd58e  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
! a962c80b911d80848b7fe51397788936  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
! 9424284d7951d8fb1c03de716bdabedb  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
! 17e31cd31e1020a8bedfb1f31a2ecf95  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
! de47328d24476ff1fb3aa872d819494b  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
! 47ca543390af7ee57272dbfab78b0c46  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
! 13d5361db0d44e2d9e927bd4c389c42b  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
! b29f6ff14153eb460786bc001eaa1408  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
! 6cb982142ebb59c60f54e9067ee684bc  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
! 3a1dfc4e2bc5b5972203ed58b2af93ff  libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
! 6f7f865fcda437e95f9520390bf9bfa5  libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
! e23c3fd47faf4da99bfbfbbf53abf84c  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
! e0a64ecdd351471a8c02a24be53419d3  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
! 05edab482184aaf49480445a34c35415  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
! 75849501f78b870d73e9d6ea786655ce  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
! c477165012c1ad6fab157e9b76425a81  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
! 67778fa95de0787e5c922a84cdd90dea  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
! 08f76204c5ac3e9ed42bc020bb9d0a5e  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
! b35267b1ddd9ce3aa5085a71beec368e  libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
! 85dc6effa9958cbfa97531f660403c2d  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
! c7c59b584c8516239fa8cf6be65816a4  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
! 61c46b683dfb858885572194a0129321  libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
! b5ba55374106c65972e3375329d9d2db  libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
! 7e9ceb27da01d5ac16eef6bb7e350f74  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
! aee4afdc06bc1bea59d1a8fe47fb3c13  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
! ec9adec14638fc7769c0082d78b92224  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
! 049d21927094cf8b6300accb0051813b  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
! 8b24049a3b420b6226495a610090a11a  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
! 1caab9db4b5c7930cc6c347df15105c0  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
! d19d07f4bae3d19931ac22046167aa9f  libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
! f92923abd965f246b2f15705f0c772d2  libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
! 9f2b03ad60283caa77f820f349729c17  libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
! 223a7bda5bb44796e7ed68243a392662  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
! b7b7b47e2dd3593b7612cb423ddf57b2  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
! acc7a65645722c492803a9422ac5f1cf  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
! 9dbf1ae33f35eef0bd3c072bd371802a  libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
! 01b2638db959ce947859c21cba6193f1  libstdc++-v3/include/ext/pb_ds/exception.hpp
! b0f9a5a66cc31ad154a6dd17e6743ffd  libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
! 25f4e600c750927d1ca3b138d571bc8f  libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
! 7c25ea4c66788a355d35c2d019f690d2  libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
! b2ede2236cb8af2f48d64f5435412ab0  libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
! 21977a4b9f4ba82ae7cd645ec1d845c9  libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
! 3c5558f1be44d8d8b2c2892d5873049f  libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
! 002362e78226abcdc3c6ecb92c3adf0b  libstdc++-v3/include/ext/pod_char_traits.h
! f68e098d20358e1fd95c04b6888d4d4d  libstdc++-v3/include/ext/pointer.h
! f62baf23de3925cf4e5dbc9e4360ea97  libstdc++-v3/include/ext/pool_allocator.h
! c069828b0cd3452c30af59fdccdf4f0e  libstdc++-v3/include/ext/random
! e961a8f58f8c85f7c1060be908e19c2e  libstdc++-v3/include/ext/random.tcc
! d72063d4d5497cbd7d4ccfce2e690aff  libstdc++-v3/include/ext/rb_tree
! ba80b52eb3a37dba7f2d857003c20c33  libstdc++-v3/include/ext/rc_string_base.h
! 4951e43a3f8fc036ead496c4124acd41  libstdc++-v3/include/ext/rope
! 178fcc0c72bf487e58564ff347bd13c6  libstdc++-v3/include/ext/ropeimpl.h
! 6b0022036cd06fae53fe3abd2f5b80b2  libstdc++-v3/include/ext/slist
! 953dad87aa570c5bc80d8fab85cd3367  libstdc++-v3/include/ext/sso_string_base.h
! 42f4c916d611ff209f292d980dbca9e6  libstdc++-v3/include/ext/stdio_filebuf.h
! 1fdc0b7b61f8bf7e9c4669be0a9c6648  libstdc++-v3/include/ext/stdio_sync_filebuf.h
! 459037a341bfd79172bd2360edd06d26  libstdc++-v3/include/ext/string_conversions.h
! b9d9fd2fb3ac2eba10cbc1c60051466b  libstdc++-v3/include/ext/throw_allocator.h
! 56872082b6483a3902d54c72919a912e  libstdc++-v3/include/ext/type_traits.h
! fc048c0cffbbc75b842af5bd0e927fdb  libstdc++-v3/include/ext/typelist.h
! 1425b2e9cac67374eef39dcb89769087  libstdc++-v3/include/ext/vstring.h
! 0ad3f0ad1e9305896b4aa466c0dcd03e  libstdc++-v3/include/ext/vstring.tcc
! e47f7d31f18659a944ed991814c28a7a  libstdc++-v3/include/ext/vstring_fwd.h
! 77ed7c4f837008e0c14926bfa1c47e33  libstdc++-v3/include/ext/vstring_util.h
! 4fc5b6eda75c3c1d15a7bd696a9ed185  libstdc++-v3/include/parallel/algo.h
! 455fbd27056e63c5ba2e1e730c084b81  libstdc++-v3/include/parallel/algobase.h
! ebdb4a2226003f123d8a1e19756fa7b6  libstdc++-v3/include/parallel/algorithm
! 6f1a0498979d8ff35046c2c256347215  libstdc++-v3/include/parallel/algorithmfwd.h
! e3613a9bdf79df32a2e09ae84e83f202  libstdc++-v3/include/parallel/balanced_quicksort.h
! c4d506184ab866c19c2c73e6c71534be  libstdc++-v3/include/parallel/base.h
! 5504444d48ced57c1e9be5903b562d36  libstdc++-v3/include/parallel/basic_iterator.h
! f9ec0c764e07014f9f2031c526b9d578  libstdc++-v3/include/parallel/checkers.h
! 4a78bd62d4353c9ff658cd76e9decc7c  libstdc++-v3/include/parallel/compatibility.h
! c841f9e19893cc3ddb53193657565ffc  libstdc++-v3/include/parallel/compiletime_settings.h
! 779b8d6f2e7eeafc4dc5f85c6f5e9fa8  libstdc++-v3/include/parallel/equally_split.h
! 44c3e86994d1fdcb13073259b9541ee3  libstdc++-v3/include/parallel/features.h
! bcaf1248b3f3bb100573b577731a3a87  libstdc++-v3/include/parallel/find.h
! 66b2ddf5a54f68669d58c060cd797a33  libstdc++-v3/include/parallel/find_selectors.h
! bb52007833e4ccd1ff21e139e9c5c1d1  libstdc++-v3/include/parallel/for_each.h
! 9e0805edec0d6dc05e8703ead09bcc86  libstdc++-v3/include/parallel/for_each_selectors.h
! f0e2e902cf04b0e3ece9e753707471cd  libstdc++-v3/include/parallel/iterator.h
! 53be8a3c8d863c09996fbd44be459ae7  libstdc++-v3/include/parallel/list_partition.h
! 68c5363049740361abc50023616217a7  libstdc++-v3/include/parallel/losertree.h
! 5ef820e96948f0cba6ec79ba9831fa4b  libstdc++-v3/include/parallel/merge.h
! 88680f9284d0cf4d52e6dc221dea03f4  libstdc++-v3/include/parallel/multiseq_selection.h
! fe828c8c2b151c99dc17c98354135db6  libstdc++-v3/include/parallel/multiway_merge.h
! c8310c813131811c44cc387b207e27ce  libstdc++-v3/include/parallel/multiway_mergesort.h
! e60dccc138da199813d0be7794ca8674  libstdc++-v3/include/parallel/numeric
! b728cd11dbb9086fdfc0ba44861ed215  libstdc++-v3/include/parallel/numericfwd.h
! 7b51d57476600a457e6539b19adef045  libstdc++-v3/include/parallel/omp_loop.h
! d688012980f744051549d9ae39b86a4d  libstdc++-v3/include/parallel/omp_loop_static.h
! 35e4d21d02fae2f96ad58d27a2472043  libstdc++-v3/include/parallel/par_loop.h
! ebd2c3db4017f66215416b8f45967ad2  libstdc++-v3/include/parallel/parallel.h
! 87c3ff42e26ff3a63a723bcb52fc0af1  libstdc++-v3/include/parallel/partial_sum.h
! e29bece3e0c8acfa5c528e2ba084d1a6  libstdc++-v3/include/parallel/partition.h
! 29205808c49122e27570654d0a76ebec  libstdc++-v3/include/parallel/queue.h
! c0f9e5b87de7af55ad06566f3230c0ff  libstdc++-v3/include/parallel/quicksort.h
! 06b26cda3a0a8d58d0ddc097de9b7d0f  libstdc++-v3/include/parallel/random_number.h
! fb4ec4345f152d64f5596b93112afa32  libstdc++-v3/include/parallel/random_shuffle.h
! 390d2e2212fe8dae2bd130ba7edd85b1  libstdc++-v3/include/parallel/search.h
! 434741a5bd08f39fe18be64fe02240a4  libstdc++-v3/include/parallel/set_operations.h
! b9f0cc1640e8606d21d7717d50538ff9  libstdc++-v3/include/parallel/settings.h
! ec93038a8d47af149fe872d86956d1f1  libstdc++-v3/include/parallel/sort.h
! 25ef956c037d8a0e69f9ba9e0cf7339a  libstdc++-v3/include/parallel/tags.h
! c698c1ffe0a8bca7840bf982885e5592  libstdc++-v3/include/parallel/types.h
! b598ca744dd57c47a8db41c9c83fa8c4  libstdc++-v3/include/parallel/unique_copy.h
! d8d948c3273e96ae05bc4e2157b7ed8f  libstdc++-v3/include/parallel/workstealing.h
! efd116d146d6a6c8e05e44e670969ea4  libstdc++-v3/include/precompiled/extc++.h
! a11d273c4a3fef59b0d065d9af1d9c56  libstdc++-v3/include/precompiled/stdc++.h
! 3ab672866727a190adc92eb3b765484f  libstdc++-v3/include/precompiled/stdtr1c++.h
  75cfb36aeb3ed8672bb4e2957272203c  libstdc++-v3/include/pstl/LICENSE.txt
  6aa52d6b70bfb53073697375741dff45  libstdc++-v3/include/pstl/algorithm_fwd.h
! a2328073492275bd7212327bef18e8fd  libstdc++-v3/include/pstl/algorithm_impl.h
  ae347741e840ff43bfc0c1800ecdbf63  libstdc++-v3/include/pstl/execution_defs.h
  2f581a415975d87328a3e39c015d38b1  libstdc++-v3/include/pstl/execution_impl.h
! bf41b54bb328243bcc27daa71f65fd02  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
! 0c8e94fe77707ae997f68f29c0458dac  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
! 721eb8a76c61c8d807bffbca4dc5edc7  libstdc++-v3/include/pstl/glue_numeric_impl.h
! e52031cf939ea27e56877705f57f1bd6  libstdc++-v3/include/pstl/memory_impl.h
  46b7494faaf72186343f13f46db3cac4  libstdc++-v3/include/pstl/numeric_fwd.h
! cdf493ace328837031dc6cd01975e318  libstdc++-v3/include/pstl/numeric_impl.h
  531b6552c2b0ded549ed9bc9b03bebf4  libstdc++-v3/include/pstl/parallel_backend.h
  c6ea5607259b8e63bb887db39136b942  libstdc++-v3/include/pstl/parallel_backend_serial.h
! e7017931c30ac7c644b653a1a29fbd0a  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
! 4598b57244995567c24672d3c0cdb7b3  libstdc++-v3/include/std/algorithm
! f1c08a4c9a736109edfd3c39c60c1669  libstdc++-v3/include/std/any
! 7eec97c02f2ad002721647488d07f1d7  libstdc++-v3/include/std/array
! 296bd89909b318bdabaa47ea5703c2b3  libstdc++-v3/include/std/atomic
! 43d5b40ea90d5c416339579b4b867b3f  libstdc++-v3/include/std/barrier
! 085ec2d298f0be079b303330b81b05d1  libstdc++-v3/include/std/bit
! 2f7194edee13481e4e56129caf4cc769  libstdc++-v3/include/std/bitset
! 221c225c0ffb7ac1a214c4da510bfdcc  libstdc++-v3/include/std/charconv
! 8aecfb2ad2f4278a068b6cb73b1a76dc  libstdc++-v3/include/std/chrono
! 6250fdc57cc9fcf4c5cc699808a8871f  libstdc++-v3/include/std/codecvt
! 841a79fbef033cbe8ca8c554dc66d5b9  libstdc++-v3/include/std/complex
! d2be6ad28181eee2feab5cac0a1cf141  libstdc++-v3/include/std/concepts
! 6ea0f7f1302716643c09ceac647c23fd  libstdc++-v3/include/std/condition_variable
! 687bcecfb8a35508f2a7025bad9ddade  libstdc++-v3/include/std/contracts
! 30926456f62b01c212f18e128fa8f543  libstdc++-v3/include/std/coroutine
! f945d16289e71c13744e7d9177de9ccc  libstdc++-v3/include/std/debugging
! 7d736af3f0c3ef350561362e2e73c5a6  libstdc++-v3/include/std/deque
! 649d9183a0fa35d50371bb1bce3f70c2  libstdc++-v3/include/std/execution
! a8e79cb6c591611cd6113eed355c3de6  libstdc++-v3/include/std/expected
! d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
! f004e380db68bad2f1a8548323345a5c  libstdc++-v3/include/std/flat_map
! b384f6e8eb77f0d5747534b3ed9a89cb  libstdc++-v3/include/std/flat_set
! 14fa0aceca3461a5dfbdd0084a7b5778  libstdc++-v3/include/std/format
! 7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
! c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
! 5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
! 94a42cdbbdcf611d6ed85997de7e69ec  libstdc++-v3/include/std/future
! f07a74eecab3055929d3af3c5ea38bed  libstdc++-v3/include/std/generator
! 009ac20865acb37f9c89d1506afaebe5  libstdc++-v3/include/std/inplace_vector
! 9faf9f4caa2dcbfe374113d6cf2380ad  libstdc++-v3/include/std/iomanip
! 48bf9080e650b3c09a288f25a49455d5  libstdc++-v3/include/std/ios
! df4362bdba64b8e857e22cfffc178349  libstdc++-v3/include/std/iosfwd
! f16c882692ac65bc0c0b5dd8549e9ee0  libstdc++-v3/include/std/iostream
! 8a6f8748d19565f2448fe4e00285ffb9  libstdc++-v3/include/std/istream
! b33d9f7d5e6dae4596b350ebc5fd6b8f  libstdc++-v3/include/std/iterator
! 44697b5c0f957dae546124db0f196f5f  libstdc++-v3/include/std/latch
! be169e901166777d5be3e557682b7af2  libstdc++-v3/include/std/limits
! 2f3eb4865a149d33afc45095dfd51d15  libstdc++-v3/include/std/list
! 979d756bd9149a01a697b92c921e75a0  libstdc++-v3/include/std/locale
! b9368104d884bddd988db2b9e69ab485  libstdc++-v3/include/std/map
! 8da8fd4e156bd678bb2e430f392bb519  libstdc++-v3/include/std/mdspan
! 5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
! ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
! 567571e5d45a92d724eb13976d8d825d  libstdc++-v3/include/std/meta
! 6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
! 98a3e25011c5fb2383b3824b1c349d43  libstdc++-v3/include/std/numbers
! 6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
! 4c6572052a559e3e5457692a1d0088fe  libstdc++-v3/include/std/optional
! bcf1c0b79e2efd9cd34763d368f40966  libstdc++-v3/include/std/ostream
! e24e6fab84ab94b060b3c31ebc39b264  libstdc++-v3/include/std/print
! 879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
! e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
! 55340fcae30b7b54a32cdd42b4679f6c  libstdc++-v3/include/std/ranges
! ee576f89ae347224177df91fe86d905d  libstdc++-v3/include/std/ratio
! a5c4f3df840ba7c3fbc9b7b9d5567ef2  libstdc++-v3/include/std/regex
! 8e6ef0834acfc88dd03f5eae2990e41a  libstdc++-v3/include/std/scoped_allocator
! a53d359dd7618cc0d3f2447f5f60fff3  libstdc++-v3/include/std/semaphore
! ef61193c582c0e8e18efb7f27f37f833  libstdc++-v3/include/std/set
! d9b30ac9f13a2d342a56ff319aca749e  libstdc++-v3/include/std/shared_mutex
! b6acc193775e3cf38850b9d166d46caf  libstdc++-v3/include/std/simd
! b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
! 32f9089a1eee35a3cb0ee86636d8d338  libstdc++-v3/include/std/span
! efdde6d8d883a91854d4ae616b627e53  libstdc++-v3/include/std/spanstream
! f00ff992c96a4a6422d964aad9315664  libstdc++-v3/include/std/sstream
! f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
! 11dbc7eaf7ffced493f65f6bc3b423b1  libstdc++-v3/include/std/stacktrace
! 5a01cfa5d80dcfd00d0912607effe056  libstdc++-v3/include/std/stdexcept
! 1172bfca0fe1fdb144e0d95b173239d1  libstdc++-v3/include/std/stdfloat
! 8000144a02174c1b4e859b4cc4af6301  libstdc++-v3/include/std/stop_token
! e6e7d75896bc3f784a372c70020e9d04  libstdc++-v3/include/std/streambuf
! 76bd18b5fc744472aa3988d57a5928c5  libstdc++-v3/include/std/string
! f1890d5dbe9c9ef672c11e6397c881b9  libstdc++-v3/include/std/string_view
! 2357e8bc64ed236c453da02aa0eab3ea  libstdc++-v3/include/std/syncstream
! 0574b134b5132494e9294186a6a4511c  libstdc++-v3/include/std/system_error
! 3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
! 0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
! bf9dc0b041052f9a9e59ac623efd295a  libstdc++-v3/include/std/tuple
! 093e368cd477af3c4a45eafe90b6506c  libstdc++-v3/include/std/type_traits
! 66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
! 994522acd96f1b6084469da322d17c19  libstdc++-v3/include/std/unordered_map
! 5393bc9d8b494917b25afd3714e8014a  libstdc++-v3/include/std/unordered_set
! 3dafc052e829f49f947b61291c35680f  libstdc++-v3/include/std/utility
! bd07fa105994eb5d05ee66c7c9f10b7d  libstdc++-v3/include/std/valarray
! f4935a7b92bee0179976443347292535  libstdc++-v3/include/std/variant
! df7e0b14ef429fc02b9968616de62de0  libstdc++-v3/include/std/vector
! ecd0f316fc872dc19b88a6c834438315  libstdc++-v3/include/std/version
! 7874ef3c97c791ad66b9def816d95363  libstdc++-v3/include/tr1/array
! 9cef28d9f1825ac84137374a9584f648  libstdc++-v3/include/tr1/bessel_function.tcc
! 46b13f8e728a833dde0cec867ab5223b  libstdc++-v3/include/tr1/beta_function.tcc
! 85293e2b94356bf4c406779e5c720114  libstdc++-v3/include/tr1/ccomplex
! da08fb62bf24710dd34ca36964e4e394  libstdc++-v3/include/tr1/cctype
! 22fe430b1ebdb47bf7306a7d1652bb67  libstdc++-v3/include/tr1/cfenv
! e36e1ec85e590bafc2c57ac7a418a1a3  libstdc++-v3/include/tr1/cfloat
! e5905815d4fc24ce9739066c552d43a0  libstdc++-v3/include/tr1/cinttypes
! 6159ef7e499f01527a51f0c2f61222c6  libstdc++-v3/include/tr1/climits
! 20f29c93d3ab5c78dffa20e9a6e8af44  libstdc++-v3/include/tr1/cmath
! 1a9424f7e3941f43efd98f967fb41b1a  libstdc++-v3/include/tr1/complex
! e02423ba33e12b1f0261cdfa384b9112  libstdc++-v3/include/tr1/complex.h
! dbbbd9478bd2f8da765c060edae2d915  libstdc++-v3/include/tr1/cstdarg
! 219e8876b52dc3f4c473708f0218bc8d  libstdc++-v3/include/tr1/cstdbool
! 19724dd2f44fe45bee95fae71ba38b5f  libstdc++-v3/include/tr1/cstdint
! 56a31c9587cee59e65337e65bbf7f1fd  libstdc++-v3/include/tr1/cstdio
! ee8263811e92a95e21d97a272e83fc9f  libstdc++-v3/include/tr1/cstdlib
! 5d0dc0a20476314137729f1f8d4b6dd0  libstdc++-v3/include/tr1/ctgmath
! f1d7a6ba26d0de93473a35bb266bf6b5  libstdc++-v3/include/tr1/ctime
! 8b2b28c86945ec7c99ff3f666c55177a  libstdc++-v3/include/tr1/ctype.h
! ce5bbbf929b44926aa3b64ca83db8842  libstdc++-v3/include/tr1/cwchar
! f6bafdc6aed2cd214dbe34cf8ad8f586  libstdc++-v3/include/tr1/cwctype
! 612a9b4c3b7d4f133a57dd1a494dee12  libstdc++-v3/include/tr1/ell_integral.tcc
! f0b276cf964fe489f7f0d3a35985b2c9  libstdc++-v3/include/tr1/exp_integral.tcc
! 850d0bc2b6aa77941959576224c5629c  libstdc++-v3/include/tr1/fenv.h
! b9565d48f1ccc5de26ee668f2485c23c  libstdc++-v3/include/tr1/float.h
! 7a3adcbeed1cba8b95d2e7cf83180ba4  libstdc++-v3/include/tr1/functional
! 75113b929c449b76b023199829fae296  libstdc++-v3/include/tr1/functional_hash.h
! ea6037935092c17954e2560786a2bdc7  libstdc++-v3/include/tr1/gamma.tcc
! acd8cf650dd2c2ff4db115a2e9cf37e1  libstdc++-v3/include/tr1/hashtable.h
! 2df495db99045320f288281edb83ceff  libstdc++-v3/include/tr1/hashtable_policy.h
! 4b7d0b11252e5c9e3ac7fdd8bff32544  libstdc++-v3/include/tr1/hypergeometric.tcc
! 78bf6b8b73041a80bf0fcc1ad6edd976  libstdc++-v3/include/tr1/inttypes.h
! fc2f4c6c6b48d9b3af9ae88ac7f97837  libstdc++-v3/include/tr1/legendre_function.tcc
! fe61f51280be86c298fcdd15ef9d52c3  libstdc++-v3/include/tr1/limits.h
! 86e8958836a39c223081cb13663058df  libstdc++-v3/include/tr1/math.h
! 53d589da421a41f38786d36d50374b79  libstdc++-v3/include/tr1/memory
! fd21c63b788d7d45577d9f20f6f1013d  libstdc++-v3/include/tr1/modified_bessel_func.tcc
! e5c79e64eed9f4d5d73bf01e0adc4685  libstdc++-v3/include/tr1/poly_hermite.tcc
! 582f3365a9f5b9a72b30b7b5b2c50dbf  libstdc++-v3/include/tr1/poly_laguerre.tcc
! f4133c0fcd126b5470b4fcbc83e97d49  libstdc++-v3/include/tr1/random
! 580fd316165b78eae9404a6db673a12f  libstdc++-v3/include/tr1/random.h
! 3b4747c7032fa43ae55f9ea4731c8240  libstdc++-v3/include/tr1/random.tcc
! 22c923767f6d874b59de17f02ea6a5d9  libstdc++-v3/include/tr1/regex
! 640eb8bb87f77ee0d1ce9669f99c18be  libstdc++-v3/include/tr1/riemann_zeta.tcc
! 91221fac588c30678689b533907c0686  libstdc++-v3/include/tr1/shared_ptr.h
! 80deeedc6c2e47dc50116f5f6de0316e  libstdc++-v3/include/tr1/special_function_util.h
! 307a1468c3883fb6b914776f2e57e44c  libstdc++-v3/include/tr1/stdarg.h
! fd53343d2b56adeb4c3fe33b24106c6c  libstdc++-v3/include/tr1/stdbool.h
! 2bf9d489768c0e449c6bfa9231ac00cc  libstdc++-v3/include/tr1/stdint.h
! d96c4623660be8a64dc2ca313d81d9c7  libstdc++-v3/include/tr1/stdio.h
! cc88f242a5ca91b0db624ffbc3678370  libstdc++-v3/include/tr1/stdlib.h
! 9f80afbb9acced2b3a909420bc24c712  libstdc++-v3/include/tr1/tgmath.h
! 9df7b9cfc4af7f9847754bfee3b609e5  libstdc++-v3/include/tr1/tuple
! 9334badf5135b27499a65eb694e2e28a  libstdc++-v3/include/tr1/type_traits
! a3ae31d7161a4c572663c39012be7a66  libstdc++-v3/include/tr1/unordered_map
! 704463b0c27bfdd2f9e838e2d5b88a4c  libstdc++-v3/include/tr1/unordered_map.h
! 92874b59b9461f52d324edbfb81e2bb9  libstdc++-v3/include/tr1/unordered_set
! fd14b5060be47b7a75a6106854343793  libstdc++-v3/include/tr1/unordered_set.h
! 3c1ef0225f50aecc829e0d1c0bdd5eee  libstdc++-v3/include/tr1/utility
! 001281aa3a7186d4022316dfac65688c  libstdc++-v3/include/tr1/wchar.h
! 4d597b9fb33ff2c7bec9319f622b5404  libstdc++-v3/include/tr1/wctype.h
! b7d0930befee37ab33d53bf8057e3e39  libstdc++-v3/include/tr2/bool_set
! b634ee5056650c02fb8b250220e653d0  libstdc++-v3/include/tr2/bool_set.tcc
! d70d0d72925c2c6e90330d41ed62ba49  libstdc++-v3/include/tr2/dynamic_bitset
! 0672bc5132994f9e39e37d997f6e1508  libstdc++-v3/include/tr2/dynamic_bitset.tcc
! 327d6a73dbcf2e73daa6df06007cc379  libstdc++-v3/include/tr2/ratio
! ac7b5ef74ab3eda00a599a4add65aeec  libstdc++-v3/include/tr2/type_traits
! ef2bd7b5c1645a9c904f8de57d80508d  libstdc++-v3/libsupc++/Makefile.am
! 5a8350507b51b85ea9e5e0025e80a07e  libstdc++-v3/libsupc++/Makefile.in
! e252931b4d5e1f2e282de0aeb11de581  libstdc++-v3/libsupc++/array_type_info.cc
! aacdb8e651b3fc7f3c8586a2eb513a49  libstdc++-v3/libsupc++/atexit_arm.cc
! 2b2939ecff3a7c455bb4fa483d044615  libstdc++-v3/libsupc++/atexit_thread.cc
! 28b9d65b882d9ae4093d43098569a191  libstdc++-v3/libsupc++/atomic_lockfree_defines.h
! 94a466aa47c843a3ec42912015e8a712  libstdc++-v3/libsupc++/bad_alloc.cc
! 829c5eb8d3b60f9a7fee887145540fc9  libstdc++-v3/libsupc++/bad_array_length.cc
! 62efef63d627b885a8c5ab792803f01a  libstdc++-v3/libsupc++/bad_array_new.cc
! f0e2e9453cd4ca21909ab9424da5b303  libstdc++-v3/libsupc++/bad_cast.cc
! 53c4c4a690a6930ff1d727711de2d2cb  libstdc++-v3/libsupc++/bad_typeid.cc
! 47e7721cc47b6692830b6d19cb800032  libstdc++-v3/libsupc++/class_type_info.cc
! 6f3f3768bdcc56b6beb47700a5595071  libstdc++-v3/libsupc++/compare
! 4a388d03ae2617f1ae10574dc69b7398  libstdc++-v3/libsupc++/cxxabi.h
! 88ea372654b2288b408dae2118459fa6  libstdc++-v3/libsupc++/cxxabi_forced.h
! 774fdaf99511789e9eabe379ab45028c  libstdc++-v3/libsupc++/cxxabi_init_exception.h
! 0a33e13f3747f4b46dff90b6fc8678e8  libstdc++-v3/libsupc++/del_op.cc
! ef67868ebadf276fce7a19a2c07fbf55  libstdc++-v3/libsupc++/del_opa.cc
! c8dda110a6c428d2e7cdc60bf0779598  libstdc++-v3/libsupc++/del_opant.cc
! 48acf61f45a1f1519846ff9d4f418ad4  libstdc++-v3/libsupc++/del_opnt.cc
! bd5c64f948e19e954c93f8ce469f10ea  libstdc++-v3/libsupc++/del_ops.cc
! f6b8378ac5f7c07d317b0ea7c70350e1  libstdc++-v3/libsupc++/del_opsa.cc
! 43d9f53c89e1c6d8dc81df8ebd1f94c5  libstdc++-v3/libsupc++/del_opv.cc
! 70e0cdff2696a9937cd78a9525110f07  libstdc++-v3/libsupc++/del_opva.cc
! 9dd3a6a4c29e6defbfa2aff92f4b88ff  libstdc++-v3/libsupc++/del_opvant.cc
! eeae9e243920e0ee1a2d00cdfa629931  libstdc++-v3/libsupc++/del_opvnt.cc
! 39b6e35937974d5443546ed5b3b88f2f  libstdc++-v3/libsupc++/del_opvs.cc
! c46d177d8f17f1c1953a6dba0adfccb5  libstdc++-v3/libsupc++/del_opvsa.cc
! 2a30098194dea6122c7a4a60b825c0df  libstdc++-v3/libsupc++/dyncast.cc
! d981e96872b270bf3bd3edda30d25623  libstdc++-v3/libsupc++/eh_alloc.cc
! 92804877857053264e4f4b58b9a626e1  libstdc++-v3/libsupc++/eh_arm.cc
! f817fa08bdbc23f69172ef89da09e9ec  libstdc++-v3/libsupc++/eh_atomics.h
! 6085ae97361cff4851e3c9cf861f5b73  libstdc++-v3/libsupc++/eh_aux_runtime.cc
! 7714b4531084fa68691b193aaeb8f660  libstdc++-v3/libsupc++/eh_call.cc
! 20ce2c125c1c8a7ea9ca32bd94df0874  libstdc++-v3/libsupc++/eh_catch.cc
! e239eec10f8a44eda3cf086d2dc2b443  libstdc++-v3/libsupc++/eh_exception.cc
! 4c0b12ba24cd283a8914276b539c8934  libstdc++-v3/libsupc++/eh_globals.cc
! 615d6119e169ebe3a2ac23a205b87a29  libstdc++-v3/libsupc++/eh_personality.cc
! 61d255fd2a001312d50f1db228eb9f0c  libstdc++-v3/libsupc++/eh_ptr.cc
! 5bd1602ac1ae5cf18896ea19548599db  libstdc++-v3/libsupc++/eh_term_handler.cc
! 91228d4ee226ff38e0da607f713b5ffc  libstdc++-v3/libsupc++/eh_term_handler.h
! 043c1e8853fefa001fafbf0a9cd74944  libstdc++-v3/libsupc++/eh_terminate.cc
! 3743b5f924546738a5a56241f8e9c022  libstdc++-v3/libsupc++/eh_throw.cc
! 260433dd5cbf323613e05747f17be62f  libstdc++-v3/libsupc++/eh_tm.cc
! 54dfbe3f4d6a416586ff9e05165c7f50  libstdc++-v3/libsupc++/eh_type.cc
! 5dee56f889ca603e8d55158f2715b3cb  libstdc++-v3/libsupc++/eh_unex_handler.cc
! c98ff3b1b5a17a05cc9cfb0e20e31151  libstdc++-v3/libsupc++/enum_type_info.cc
! 316087e082126c09a3d338da3241b3e3  libstdc++-v3/libsupc++/exception
! 459e01564c4f685bf53b6ee283e5897e  libstdc++-v3/libsupc++/exception.h
! 8c37f5889a197aefe73cb172c20a39e5  libstdc++-v3/libsupc++/exception_defines.h
! 06f12af2281e7d26831daa048b14e4f6  libstdc++-v3/libsupc++/exception_ptr.h
! 416538c35697d47139e058f1747f5fbe  libstdc++-v3/libsupc++/function_type_info.cc
! 63a5e00b4953860d1a28c000823a1ece  libstdc++-v3/libsupc++/fundamental_type_info.cc
! 8fa42469ba3fe7cf4ef3113d46c2ec67  libstdc++-v3/libsupc++/guard.cc
! 83350c6154826468cf97f28bc525e8c8  libstdc++-v3/libsupc++/guard_error.cc
! 4ca58ce1d8b24bf41df468a70060d0d3  libstdc++-v3/libsupc++/hash_bytes.cc
! 7a587bda8840ccc345aef5611a09b7f8  libstdc++-v3/libsupc++/hash_bytes.h
! 409b3cdf6ed09f3bee9423f1a7607a97  libstdc++-v3/libsupc++/initializer_list
! f9116aa4c4bed4851885a02b53f02e27  libstdc++-v3/libsupc++/nested_exception.cc
! e5db4a72b6902bfe4cb4081024a1c117  libstdc++-v3/libsupc++/nested_exception.h
! 5e4372a4f135f0192513785086d0d049  libstdc++-v3/libsupc++/new
! 8bb181b9cd8d4c9da71231f8cc51a670  libstdc++-v3/libsupc++/new_handler.cc
! f6532772daf8297b43e6078c4e96d4c1  libstdc++-v3/libsupc++/new_op.cc
! cdd309bc5b38f1d17e63f544ef933849  libstdc++-v3/libsupc++/new_opa.cc
! 917cd16168045cd6e583f59021789e91  libstdc++-v3/libsupc++/new_opant.cc
! d7ae4b289921930fddaa4d872fb4b807  libstdc++-v3/libsupc++/new_opnt.cc
! c8ce87425b4473b685ff220618994a0c  libstdc++-v3/libsupc++/new_opv.cc
! ec183f44233565bebf8777be675e8298  libstdc++-v3/libsupc++/new_opva.cc
! 032c766aefb4b3eb8949cf0757f48b74  libstdc++-v3/libsupc++/new_opvant.cc
! 32d0de8a1974cb45bcf9e8929fc943cd  libstdc++-v3/libsupc++/new_opvnt.cc
! 062e136444880492e3b8d2d7e096203c  libstdc++-v3/libsupc++/pbase_type_info.cc
! 7a3824bd1bfb5c4c34f648a717cc71e1  libstdc++-v3/libsupc++/pmem_type_info.cc
! 750ac93d0d594b1b3661ef889fed3cf4  libstdc++-v3/libsupc++/pointer_type_info.cc
! f932aed28fdf04e8d95452c5110ea722  libstdc++-v3/libsupc++/pure.cc
! 02828a20fa32ee232b3588f26cfdb4b0  libstdc++-v3/libsupc++/si_class_type_info.cc
! 35435ad249f6051e4f59b7ccbeadfc14  libstdc++-v3/libsupc++/tinfo.cc
! 295379cf4c9bc5f0585b98b8b75c64d6  libstdc++-v3/libsupc++/tinfo.h
! 2ca7ab419a91b62e448a9e0707dda25f  libstdc++-v3/libsupc++/tinfo2.cc
! d89b183dcf7e8a8bc7e18284d790b5cd  libstdc++-v3/libsupc++/typeinfo
! 42ba44cebfa26c04ddc72d6dee36b515  libstdc++-v3/libsupc++/unwind-cxx.h
! bc14d87c108d5fa9b39e85c939e01550  libstdc++-v3/libsupc++/vec.cc
! 75dd77c7009585127c39538b4a7387eb  libstdc++-v3/libsupc++/vmi_class_type_info.cc
! 6713dd603339580d0691802ad0b1ed36  libstdc++-v3/libsupc++/vterminate.cc
! b9118cf900271d7d58361c1295e1945d  libstdc++-v3/libsupc++/vtv_stubs.cc
  e88dc2fa68ea978011d41472f6dab4fa  libstdc++-v3/linkage.m4
! b89937ce5dad12dac8ae87864a728181  libstdc++-v3/po/Makefile.am
! 6321c23acc02ce612d563a8c52873f4d  libstdc++-v3/po/Makefile.in
! c023fe871df3212938073242c8197eb3  libstdc++-v3/po/POTFILES.in
! 015f1ca857f3afaca67b676cf51d947e  libstdc++-v3/po/de.po
! 599bf9379b4a2925f83f28df34f06779  libstdc++-v3/po/fr.po
! b543e8338c70f9c51d69b22f6e57859e  libstdc++-v3/po/libstdc++.pot
! 0b5674e392c7ec81e69aed535d86b954  libstdc++-v3/po/string_literals.cc
! 0dc1f9d63edc47f015dcb915a89c927e  libstdc++-v3/python/Makefile.am
! 3831c71a7229219ba9bc83aab005fd63  libstdc++-v3/python/Makefile.in
! 1c37dd242e9d4dc84fddd039c7935dae  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
! 3759fb926a7736f99a99a4fa25b747c9  libstdc++-v3/python/libstdcxx/v6/__init__.py
! de882facfd33a3a4d4ed924ea04cc30e  libstdc++-v3/python/libstdcxx/v6/printers.py
! bbd304c6c3f96d550228583e74e330d3  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
! d964b7c0886aae16013b2d9f5bfceb50  libstdc++-v3/scripts/create_testsuite_files
! 7cfd42ac792406b7426e6c0b40eb18a5  libstdc++-v3/scripts/extract_symvers.in
! f53e217bbb16570ea1737d0b4e628169  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
+ ce9c433d52b0271473d79d5c56c66148  libstdc++-v3/scripts/gen_windows_zones_map.py
  c3455b8d87dcefd65c7fdcd24e4ce3a4  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
! bd81737521cde091f96cadb5e3de6b6f  libstdc++-v3/scripts/run_doxygen
  8237637ba2756b818d215e38c3e69e19  libstdc++-v3/scripts/testsuite_flags.in
  6e3445b3780c05b37f42c740c90e740d  libstdc++-v3/scripts/update_release_branch.sh
! bf01f7a9ee664355385ee8835f81ea67  libstdc++-v3/src/Makefile.am
! c6775fdaeaae5806cc843848278c660d  libstdc++-v3/src/Makefile.in
! 1db8eb15f1727781feffe391e20932e2  libstdc++-v3/src/c++11/Makefile.am
! 3ea8e5edc8c8af41c26f5b1dadb82964  libstdc++-v3/src/c++11/Makefile.in
! 4b1e2d0d6f66715f093727ffc92a4879  libstdc++-v3/src/c++11/assert_fail.cc
! c7f6fd9715c1198be9889b072e8e65e0  libstdc++-v3/src/c++11/chrono.cc
! aa79925bf18347fd46c0d783d6c2f7d5  libstdc++-v3/src/c++11/codecvt.cc
! abfadf699635ddf6f755207791623198  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
! 56af035305d6c9c21cda2db84ba1bb0a  libstdc++-v3/src/c++11/compatibility-c++0x.cc
! bd303cc954e9c44104ff137f02eefe79  libstdc++-v3/src/c++11/compatibility-chrono.cc
! a601d340c39f447e2ae061ab1773305b  libstdc++-v3/src/c++11/compatibility-condvar.cc
! d83074473db8676f806ac0e509adb5f4  libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc
! 1b1042b4c016d600a90a3ba13767200d  libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc
! f3cf8ab054ba14b027c300828b3467bd  libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h
! ee335bb141634e38e599208566a243be  libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
! cc5fbd70f7cf8b7ce1b2a7932eac61a9  libstdc++-v3/src/c++11/condition_variable.cc
! 60b98ed77ed1c2a66012a74e73fda809  libstdc++-v3/src/c++11/cow-fstream-inst.cc
! 2749c2a325ab4b9f8fd2911604f1c838  libstdc++-v3/src/c++11/cow-locale_init.cc
! 43a6c39926b23636e183644392546e68  libstdc++-v3/src/c++11/cow-shim_facets.cc
! 870f77fffdb11863141ba820a9a93c72  libstdc++-v3/src/c++11/cow-sstream-inst.cc
! c56b1c25833367dd5ff15694302365b0  libstdc++-v3/src/c++11/cow-stdexcept.cc
! b2618c67652358b3cbd240e7ea12c824  libstdc++-v3/src/c++11/cow-string-inst.cc
! 17c75be3e1a10e74e8733e6a02ce4c72  libstdc++-v3/src/c++11/cow-string-io-inst.cc
! 0b2d8ea55d6bf1d20d9405aaa64311df  libstdc++-v3/src/c++11/cow-system_error.cc
! b24ecf078edb9c32d8d68fc6a1f85808  libstdc++-v3/src/c++11/cow-wstring-inst.cc
! fc11e82e86da065889769f1d0ec1badc  libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
! d1771a570810be6ebe645155f175b16f  libstdc++-v3/src/c++11/ctype.cc
! 5c0bfd89ad4ba71238832db4d5077e1c  libstdc++-v3/src/c++11/cxx11-hash_tr1.cc
! 476cf5a30f3ad99761083c6f10eb2aae  libstdc++-v3/src/c++11/cxx11-ios_failure.cc
! ce66644b3691c04e697aa707358542a6  libstdc++-v3/src/c++11/cxx11-locale-inst.cc
! 25a3b81b4b5eb971a8d8470bd47fbe8e  libstdc++-v3/src/c++11/cxx11-shim_facets.cc
! 600b1346b044d2eb07589f44cb7698f0  libstdc++-v3/src/c++11/cxx11-stdexcept.cc
! 6e32382ffd80bb5bbbbc156ee2861f1d  libstdc++-v3/src/c++11/cxx11-wlocale-inst.cc
! e21846a4b8e55e889a574088036c66eb  libstdc++-v3/src/c++11/debug.cc
! 202cfbf8413c3baa4b3db17f59b01abb  libstdc++-v3/src/c++11/ext11-inst.cc
  ba1e398802c7793fc33131cddac099d5  libstdc++-v3/src/c++11/facet_inst_macros.h
! 97194c02937129aeed6783ae3c4bdb5a  libstdc++-v3/src/c++11/fstream-inst.cc
! 31372a9b9a3488c2e890ab25c8ab5810  libstdc++-v3/src/c++11/functexcept.cc
! 5c9b594103acc8e1ce0e27da41c8b0ff  libstdc++-v3/src/c++11/functional.cc
! 072a87fd1a01c0409c1cb6794ce12d01  libstdc++-v3/src/c++11/futex.cc
! 084017070077a306456a39cb6eb403b5  libstdc++-v3/src/c++11/future.cc
! 2377d92c8a1a452baa6e81f0e87f75e1  libstdc++-v3/src/c++11/hash_c++0x.cc
! 8a694be6763d36c5b8649d58e36eb4eb  libstdc++-v3/src/c++11/hashtable_c++0x.cc
! e684beee3f925b91dd7c991555b3f908  libstdc++-v3/src/c++11/ios-inst.cc
! e45a6cceeead5d4256fc07de27e1cbf0  libstdc++-v3/src/c++11/ios.cc
! aeb1d6c3eddcf6534800f0d0ed598268  libstdc++-v3/src/c++11/ios_errcat.cc
! 871d95f9a17046d0a46a6b486eafaaec  libstdc++-v3/src/c++11/iostream-inst.cc
! 8ca22ce2a5b1e534d100c745e2d2abc6  libstdc++-v3/src/c++11/istream-inst.cc
! 9ecea7b891bd3cdbb5799a269d3fa7b0  libstdc++-v3/src/c++11/limits.cc
! dae8d8845c346beda803d30f6bbf22fd  libstdc++-v3/src/c++11/locale-inst-monetary.h
! 41e5453932f0fc378e38ef837cc41ec2  libstdc++-v3/src/c++11/locale-inst-numeric.h
! efc2d383fef2d2a712b15fabea12d717  libstdc++-v3/src/c++11/locale-inst.cc
! 139159ee1176c8909cf47f1309e7f1f5  libstdc++-v3/src/c++11/locale_init.cc
! 04db945ee8dd938227f9d548168370db  libstdc++-v3/src/c++11/localename.cc
! 521150188b596606b54731e44ff24e61  libstdc++-v3/src/c++11/mutex.cc
! 659a979550a9164c9cc00eadc56c1ec0  libstdc++-v3/src/c++11/mutex_pool.h
! bcc29315c82a14b52c6365db75dda9ca  libstdc++-v3/src/c++11/ostream-inst.cc
! e48ef7a6cf2da7685415cd5d955300bf  libstdc++-v3/src/c++11/placeholders.cc
! 96d215af0042873c7a358f976e98f259  libstdc++-v3/src/c++11/random.cc
! 6bc08d9625685244d6b0aaf82383cbf3  libstdc++-v3/src/c++11/regex.cc
! 0de8c751a515414ac6a35a29f43b4fa0  libstdc++-v3/src/c++11/shared_ptr.cc
! 0b0cd40b1a6354ab1889e430bd8ecd11  libstdc++-v3/src/c++11/snprintf_lite.cc
! 0fbbafa862e55b7aad52f8d303c074a0  libstdc++-v3/src/c++11/sso_string.cc
! 01d8089eb3039b0373863dd7726297bc  libstdc++-v3/src/c++11/sstream-inst.cc
! 979f51509bc88569424878da5f57f742  libstdc++-v3/src/c++11/streambuf-inst.cc
! 8564a8ee95c62bed4b1aa1993e8c8fcd  libstdc++-v3/src/c++11/string-inst.cc
! 22c41f0af04ac46dc7745239ca80a7e3  libstdc++-v3/src/c++11/string-io-inst.cc
! f0b09bb77b3bb433d5fe66d11695b759  libstdc++-v3/src/c++11/system_error.cc
! 8c7588a80ae6b997bdf3f1b1772952fc  libstdc++-v3/src/c++11/thread.cc
! 113037c4389e859c84b9c94bc13cb1d4  libstdc++-v3/src/c++11/wlocale-inst.cc
! b529171e2d0ca5d67376b9f6bfd2d3d0  libstdc++-v3/src/c++11/wstring-inst.cc
! de05485bddf7fa212a089d82ca4871e8  libstdc++-v3/src/c++11/wstring-io-inst.cc
! 85534c2bedda8355f591553c00e34d49  libstdc++-v3/src/c++17/Makefile.am
! c1a6aa4acd9ae9d8dcfeb7eb871e733a  libstdc++-v3/src/c++17/Makefile.in
! d166a6e98c754668dcc1c73d164bbc8c  libstdc++-v3/src/c++17/cow-fs_dir.cc
! d5aad54e471cf2523a63c046e3a7e308  libstdc++-v3/src/c++17/cow-fs_ops.cc
! fb5f51cf7be2c1cd676a44d8d92fb7c1  libstdc++-v3/src/c++17/cow-fs_path.cc
! 8f1a6a78131966400fb19ff95c559433  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
! 8fccfe420c4b99cdf08023a4fc8ab137  libstdc++-v3/src/c++17/floating_from_chars.cc
! deb1f4d1d9cd6c05167daf4631b56267  libstdc++-v3/src/c++17/floating_to_chars.cc
! ab713104bd5f979c12c01a7037584aa9  libstdc++-v3/src/c++17/fs_dir.cc
! 22566e9052cc60799b49194e4a2296be  libstdc++-v3/src/c++17/fs_ops.cc
! 9246ac24ff18dcedf681fb7ccbaa8cd5  libstdc++-v3/src/c++17/fs_path.cc
! 702e1413956c4c9873d78ce075b24e4e  libstdc++-v3/src/c++17/memory_resource.cc
! 5fc15b3f8bf3bb0c0b6b692daffe193e  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
*** 133662,133997 ****
  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
! 8b077c814dc27cd11461b13dd51dcbb3  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
  5c1ae2068406fbfafc0ec7f72c5b5be8  libstdc++-v3/testsuite/18_support/headers/ciso646/macros-2.cc
  edfb76e6d0df5e84a4f8d7a1424c9f87  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
--- 147619,147975 ----
  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
! 2773ff0feb499fbb952b5beae8ae5833  libstdc++-v3/src/c++17/string-inst.cc
! 04669634e7d7f19fae4baadedc6d0908  libstdc++-v3/src/c++17/uint128_t.h
! 3b693644866857e3152dd11055b1cbd5  libstdc++-v3/src/c++20/Makefile.am
! e5a726de140540a59e2007eceae3acd1  libstdc++-v3/src/c++20/Makefile.in
! 951f0c490df6a0fb2f9c0fd9ee0eb9e0  libstdc++-v3/src/c++20/atomic.cc
! e017d47cedd4e843177ec9ff2c936541  libstdc++-v3/src/c++20/clock.cc
! beadb627afafbd9d018802046c0b4403  libstdc++-v3/src/c++20/cow-string-inst.cc
! 950ea458edaf556ab767e8e46c180ee3  libstdc++-v3/src/c++20/format-inst.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
! c2bd27af25e57adce5807e0f01a2d0dc  libstdc++-v3/src/c++20/sstream-inst.cc
! 23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
! 50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
! 5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
! 091b29fc9294e1f1eceaf85a3c578f9a  libstdc++-v3/src/c++20/tzdb.cc
! ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
! 7c8cb4e8c454557197d2d63ced1992bb  libstdc++-v3/src/c++23/Makefile.am
! b00f9570f9f027f375c731351ae64403  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
! 9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 625f396ba37e13c10cd9e79a5d19832f  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
! 9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
! 7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
! 689d9236ef4fdcec6142e1423ae0e6bb  libstdc++-v3/src/c++26/debugging.cc
  de7c20444382fa8365e95b0e048de9c6  libstdc++-v3/src/c++26/text_encoding.cc
! 5853e8ee94e3ba6a52699ba78cee3b31  libstdc++-v3/src/c++98/Makefile.am
! 621d78b0fd50a930deedb62e68654c6c  libstdc++-v3/src/c++98/Makefile.in
! 5ae9fa15847db8e3c389b1be3c879f49  libstdc++-v3/src/c++98/allocator-inst.cc
! 1a8e6c8c36a69d47224ca3e769bb5505  libstdc++-v3/src/c++98/bitmap_allocator.cc
! 05b610537fd32481c0ea8e913381129d  libstdc++-v3/src/c++98/codecvt.cc
! 933f13c58f9a3c78634b424bf8b00d63  libstdc++-v3/src/c++98/compatibility-debug_list-2.cc
! 6ca279bf7779d8c3832f677f214c8302  libstdc++-v3/src/c++98/compatibility-debug_list.cc
! fa0bf2b49c54f72190d659dcada4bb9f  libstdc++-v3/src/c++98/compatibility-ldbl.cc
! ffdf869b3c3c94a6c5c671bd49732e49  libstdc++-v3/src/c++98/compatibility.cc
! 479f16d964c8084fdd6bf29b89360775  libstdc++-v3/src/c++98/complex_io.cc
! 0b890c13323ca706a0c649ea1a7b0573  libstdc++-v3/src/c++98/concept-inst.cc
! 0659fa02ea1ce26c867a913eabe318c6  libstdc++-v3/src/c++98/cow-istream-string.cc
! b1d92f507f9b2d2abdaf710e6687c2cd  libstdc++-v3/src/c++98/ext-inst.cc
! cffdb636b015f9e223a9bbbc8bbd45ef  libstdc++-v3/src/c++98/globals_io.cc
! dd41c639419ddc543fa3f51acb4480ea  libstdc++-v3/src/c++98/hash-long-double-tr1-aux.cc
! 39b34e022ced4d36e1d50b5311b85552  libstdc++-v3/src/c++98/hash_tr1.cc
! 17b945a2b7e268883e328f2020024e08  libstdc++-v3/src/c++98/hashtable_tr1.cc
! 6d43bac19b59facb5e4154e4333f7783  libstdc++-v3/src/c++98/ios_failure.cc
! acd2cdb649d29ab141f2066798c66598  libstdc++-v3/src/c++98/ios_init.cc
! ddb4d8a2dcb9a61b40affc0e312fe914  libstdc++-v3/src/c++98/ios_locale.cc
! d049d2def5cbdef96856e62e64682f62  libstdc++-v3/src/c++98/istream-string.cc
! fce32909b6a4c7b293495bdc9c070ede  libstdc++-v3/src/c++98/istream.cc
! 454ccd89dfd7fcdf25267c4c215a32ee  libstdc++-v3/src/c++98/list-aux-2.cc
! 2a463b0d37fc24e817b6a11e00b0d68c  libstdc++-v3/src/c++98/list-aux.cc
! e4f4f6570e81c8539d98b766746609c7  libstdc++-v3/src/c++98/list.cc
! 5edb5b0e42c00d6a1a57e801c7859d69  libstdc++-v3/src/c++98/list_associated-2.cc
! 42d27ffa8a324431e0a6bd2e883d0f54  libstdc++-v3/src/c++98/list_associated.cc
! 0db6a8cb11e25ec90f11a7236fc09fea  libstdc++-v3/src/c++98/locale.cc
! c0f2c822339f89f3052695c6e902030e  libstdc++-v3/src/c++98/locale_facets.cc
! 8f0f615a43724cb04fd96eba3a7d4ff4  libstdc++-v3/src/c++98/math_stubs_float.cc
! b5fcb8102016b3ded5a2ad5b801c5228  libstdc++-v3/src/c++98/math_stubs_long_double.cc
! 53473eb08bee5f528e83d54f8557032c  libstdc++-v3/src/c++98/misc-inst.cc
! ac9bce1c8d58e1fca0b11ae842c061ba  libstdc++-v3/src/c++98/mt_allocator.cc
! cb9f0ce7b6b1204a1709a4edd6e2c581  libstdc++-v3/src/c++98/parallel_settings.cc
! 7ffe9c6baa4001ede3e0c5f3b7cd5260  libstdc++-v3/src/c++98/pool_allocator.cc
! 21ec6aafbb8a3b6279c98b2e714e0d89  libstdc++-v3/src/c++98/stdexcept.cc
! 6a9cb03ec5f1c0cd3feb377a26c030c1  libstdc++-v3/src/c++98/streambuf.cc
! d3f0cc2cabf7299b55620ca9aa06a57a  libstdc++-v3/src/c++98/strstream.cc
! 78352ac8023edf853e7108794fbee149  libstdc++-v3/src/c++98/tree.cc
! 067c47f2f42913b2b6f5f68837afe9f7  libstdc++-v3/src/c++98/valarray.cc
! 7d0a1c9e233e4f04bd2af43f94422ae6  libstdc++-v3/src/experimental/Makefile.am
! e6a13537ccd33424af067aab2dbe6313  libstdc++-v3/src/experimental/Makefile.in
! 92e60cd249975451ed5b40d57a045cb7  libstdc++-v3/src/experimental/contract26.cc
! b6eb8bb1cd9be8390c8051e209be07bb  libstdc++-v3/src/filesystem/Makefile.am
! 92882265e9dd6b1e3a3ad1f734fc9e7f  libstdc++-v3/src/filesystem/Makefile.in
! 266958109b626ccbcdd44b040cc2409c  libstdc++-v3/src/filesystem/cow-dir.cc
! 170ec354e1676d250c702374b9cec8ba  libstdc++-v3/src/filesystem/cow-ops.cc
! 4e5208dea38714bba31a6423b752994c  libstdc++-v3/src/filesystem/cow-path.cc
! d0ede5bf6e0a8ece42e35e4991fea077  libstdc++-v3/src/filesystem/dir-common.h
! 680a6a0fe67e137a04446aca13b2b0ab  libstdc++-v3/src/filesystem/dir.cc
! 4f9e06c08dce3fe4c6360e1e4194cc9f  libstdc++-v3/src/filesystem/ops-common.h
! 708bef5c318e9dca58ef3f6ca51d417d  libstdc++-v3/src/filesystem/ops.cc
! 22fb7f66282e5e6bcde7f86d4a562e6f  libstdc++-v3/src/filesystem/path.cc
! 59acac69f8e68c8d18f337534074bf2a  libstdc++-v3/src/libbacktrace/Makefile.am
! 4072baa29b791a8f6ee575a9e3cdf017  libstdc++-v3/src/libbacktrace/Makefile.in
  ad7d8ce6072a5a6ebe5a27824b57cb45  libstdc++-v3/src/libbacktrace/backtrace-rename.h
! 1dec6c3f93dee0ae06579da0ab658770  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
! efb06dc5ba808eb3515dac6051949361  libstdc++-v3/src/shared/hashtable-aux.cc
! 0e107d9e9d14591b1df76810201085e3  libstdc++-v3/testsuite/17_intro/badnames.cc
! 055afa837de9cd4e3803c1884eb2b880  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
! 4a23e981752e4b496644f3cce030a5f4  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
! 51ac5c45ab06e21f5412fad6f6fb69a1  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! cbdf8cca878b99a3c9f1e5329e3f1c2e  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
! 2999c0fc0bbcf1a3d10eb63e667f5682  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
! 60e4ae880674f894669ba6bd4fbf2945  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
! 7d072b0063632f7d303779fc58b312f9  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
! b0186b84b7714e66a468b96d775b2622  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_pedantic_errors.cc
  b8a53b2b8da32d102d69cbedea3d2216  libstdc++-v3/testsuite/17_intro/headers/c++1998/charset.cc
! 609f32f0eee2ca799f0cdad7aa9448f5  libstdc++-v3/testsuite/17_intro/headers/c++1998/complex.cc
! bd5c299df82f42e6c67b20d608cd3e4f  libstdc++-v3/testsuite/17_intro/headers/c++1998/operator_names.cc
! 004dc6971a08c7520a562d4b426f0ca3  libstdc++-v3/testsuite/17_intro/headers/c++1998/profile_mode.cc
! b62c2ad372c31061b556c7c5c205869f  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc
! 10ce94be65077fdade899975bcf1001e  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc
! 9651cebdf3b4dc8ebaea1e271fa91cde  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
! e54d8bde5170276bc314bb62f562e74f  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
! 85037e6b09b8a1e288f3f102497577ba  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! 46b3238f51b71689579c48659962c105  libstdc++-v3/testsuite/17_intro/headers/c++2011/linkage.cc
! 607a06e519ecf2984154b9b4f814b823  libstdc++-v3/testsuite/17_intro/headers/c++2011/parallel_mode.cc
! 4350af8e5b73b5dede3e243fd6cd38d5  libstdc++-v3/testsuite/17_intro/headers/c++2011/profile_mode.cc
! 930332c9e65b8765051b30a8abaf9bdb  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
! 5690517690fa69b441af6a1196b8c17c  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! 5b5b6629b7cac8c7374d577b37e995e9  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
! 15a80570bd72c0f9d4acbf4e2a5b3ca2  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! a6aa183c3279acaf659520adf37926da  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
! 59cf0f0d5b7dc44e700f1fe9471a81d7  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
! fcbd5374318b35c068cd54cfba453865  libstdc++-v3/testsuite/17_intro/static.cc
! 22b4ebe38ce477368e06cd238c14a95d  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
! b1fa1f77eb2b08a527097350aeac402d  libstdc++-v3/testsuite/17_intro/using_namespace_std.cc
! f560962cd19de96300ac970e238e3b10  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
! f0ef126a6c97c52622394fb558259dcb  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
! 6c5dd847fc117a974587da468208e314  libstdc++-v3/testsuite/18_support/50594.cc
! 8d7cbf032c0f1c6a29465646789171f8  libstdc++-v3/testsuite/18_support/51333.cc
! efd5ad8928401ea8a2915635adb3a941  libstdc++-v3/testsuite/18_support/96817.cc
! 3d716adc5b2d3116f2ce4f1ea771d717  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
! 8e6668216259f1a61cdd4deea9d213bd  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
! fa3a95216e349b266802c347979fd1c2  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
! e69f7275c154a194fa6a470739f41636  libstdc++-v3/testsuite/18_support/bad_cast/cons_virtual_derivation.cc
! f99d9baa1db80e714a364bc118b2ec81  libstdc++-v3/testsuite/18_support/bad_cast/what.cc
! 354264ecb2e089363d6331010eae5bfa  libstdc++-v3/testsuite/18_support/bad_exception/23591_thread-1.c
! 5751f7d3c10c580305c71f001a4c29f7  libstdc++-v3/testsuite/18_support/bad_exception/59392.cc
! 188948632795fe08c687e3bab8157379  libstdc++-v3/testsuite/18_support/bad_exception/cons_virtual_derivation.cc
! 548b4163fae187063a332b02392da7b4  libstdc++-v3/testsuite/18_support/bad_exception/what.cc
! 9c26158c71814c3ee09c1895094d13e0  libstdc++-v3/testsuite/18_support/bad_typeid/cons_virtual_derivation.cc
! 05728bf1fb70667694308866bf828995  libstdc++-v3/testsuite/18_support/bad_typeid/what.cc
! 37fcfde48fd80ac2fdfe0ec69bbc25f8  libstdc++-v3/testsuite/18_support/byte/81076.cc
! 58331029c813efdaf350a08fc429c3de  libstdc++-v3/testsuite/18_support/byte/global_neg.cc
! 47b244804f464a301f8f6a3a1dd30bc3  libstdc++-v3/testsuite/18_support/byte/ops.cc
! 58bd13e62ccb42a0236eed9993ef771c  libstdc++-v3/testsuite/18_support/byte/requirements.cc
  4d2819facd9b669fb9ac9377f3b4564f  libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
! cd1b21be1c44cc0b1a24223db5f139db  libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
! 55b45bdafe514ac36458e4e8fad0c8ad  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
  3d4e5f117547d01b1118e29b4d4da2ae  libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
! d6fce8f48a1d8f15a8745f115792b167  libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
! 9283ede03bd5899bea895ad3db2adcda  libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
! 8eeb1e7f3dba3d37b6efb2cc64172a00  libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
! 6ddb4d1a2ffaee19efb67a68e1caaabd  libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
! 4933183bc767229e915b160a479836a5  libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
! da0e08e65269802fcca3a5425afc3ed9  libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
! c10fe70e48c9fa9c48a817108d290629  libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
! bdd469026d3bc77ddbe9761819df1999  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
! 7b45b0d874b32588521fd2729eccc3cf  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
! c25441430dc4aeccff157f8fd0f6bfad  libstdc++-v3/testsuite/18_support/comparisons/type_order/1.cc
! 2a26a0a0e6856b66827cceaf8257e9b6  libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh.cc
! a48259cf2dc7fdce0dd213702cb38485  libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh2.cc
! 88624522d42417c5a095e9854856eecb  libstdc++-v3/testsuite/18_support/contracts/srcloc.cc
! d0a24cdda56dca4acc05b4d194c731e3  libstdc++-v3/testsuite/18_support/coroutines/95917.cc
  783af524f848615e0b0b76d03bcc9e9c  libstdc++-v3/testsuite/18_support/coroutines/hash.cc
! 74c121e0875645b9d2f8ff1bed2655c1  libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
! d67d5a0efba04970f3b97159730e13ca  libstdc++-v3/testsuite/18_support/cxa_vec.cc
! 96bd1dfae8dacda862f72962c2c99a57  libstdc++-v3/testsuite/18_support/destroying_delete.cc
! 89d0523b1eaa57fa3be5dbb8822d9171  libstdc++-v3/testsuite/18_support/exception/38732.cc
! 066590a9a6a13ab156d192461ff5528e  libstdc++-v3/testsuite/18_support/exception/version.cc
! 015bc593f9d4db671b94c6fbdf4de7ab  libstdc++-v3/testsuite/18_support/exception/what.cc
  8a3e4fc86620d59634749ffecd317237  libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc
! 4b8b3760e64f088959a0ef5a377006c2  libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
! 584ef664aa684bccdd5c824d246aec9b  libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
! 9ae01d56be55ed1441c714fd222fd591  libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
! 98081e000d3b736255cdd275fed3d498  libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
! 2796661f8d0c3db26d82fe76310468c1  libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
! 7f1e48da3198ac5896cf0d47b0b7922e  libstdc++-v3/testsuite/18_support/exception_ptr/90295.cc
  8907da30a344e71f1227eec1fae72f2b  libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc
! a262e7ab157ec72b870c370b3d6ad31f  libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
! f1a7fc7d62b8f13b42b8e563bc3f5409  libstdc++-v3/testsuite/18_support/exception_ptr/exception_ptr_cast.cc
! 959ee4d63d34bbe51eba76228340187a  libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
! 67d9092ac3c34736c19133ae087e087f  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
! b489ba270fa9b7f5366f13b43d4d3ad8  libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
! ff44a507b8bb3e3132ff63a7cebb35cc  libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
! 8cf84ba13c9e4f3675bdec547f3e4946  libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
! d3134a3bdcf7bd27e1b7421da3988fcb  libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
! 8828ae1aabd9e81016c6180c95d75f08  libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
! f1ff94db25dcebace12f68fd6ce370ea  libstdc++-v3/testsuite/18_support/free_eh_pool.cc
! faa92f919bc72d7cbf047aa9e63a1fd6  libstdc++-v3/testsuite/18_support/headers/cfloat/values.cc
! 30c2a512a37427775d4f203daa4369ba  libstdc++-v3/testsuite/18_support/headers/cfloat/values_c++17.cc
  5c1ae2068406fbfafc0ec7f72c5b5be8  libstdc++-v3/testsuite/18_support/headers/ciso646/macros-2.cc
  edfb76e6d0df5e84a4f8d7a1424c9f87  libstdc++-v3/testsuite/18_support/headers/ciso646/macros.cc
  da426b23590d6339b17199f3fb1a7591  libstdc++-v3/testsuite/18_support/headers/ciso646/macros.h.cc
! 5b2690afd5194f3f9e1c6bc4b78133a7  libstdc++-v3/testsuite/18_support/headers/climits/values.cc
! 56c3d846e7b5cba8ba5528bac06cf37a  libstdc++-v3/testsuite/18_support/headers/csetjmp/functions_std.cc
! 6c2dfba956d0278f1bc1fdbd401e3ed1  libstdc++-v3/testsuite/18_support/headers/csetjmp/macros.cc
! b348b3ea38f1785f0624b9e59027730c  libstdc++-v3/testsuite/18_support/headers/csetjmp/types_std.cc
! ec22d1812d7cafbaa4ecf4add0167547  libstdc++-v3/testsuite/18_support/headers/csignal/functions_std.cc
! 953379f83dc306228c48c06d211e4346  libstdc++-v3/testsuite/18_support/headers/csignal/macros.cc
! 8719eea7e428d145bf28e0ad1ece0fe4  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
! 03be03b077c98765fa32fd2a90a1ee7e  libstdc++-v3/testsuite/18_support/headers/cstdarg/macros.cc
! e50b1ba74ba6414edeafa1a00d12c289  libstdc++-v3/testsuite/18_support/headers/cstdarg/types_std.cc
! 1498facbe73a09e25db676104d029799  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.cc
  5e79c736ae8f9c2d368ca6d085ac9def  libstdc++-v3/testsuite/18_support/headers/cstdbool/macros.h.cc
! a0f17e91b7dc6fd83ec21a8882dcbb50  libstdc++-v3/testsuite/18_support/headers/cstddef/macros.cc
! 6852f41f31601b5e130ee83aa0aa603b  libstdc++-v3/testsuite/18_support/headers/cstddef/types_std.cc
! 26c90277e83cbc24a911efa9375405e2  libstdc++-v3/testsuite/18_support/headers/cstdint/std_c++0x_neg.cc
! 90f8c364ca0108d2a4952d14366b792b  libstdc++-v3/testsuite/18_support/headers/cstdint/types_std_c++0x.cc
! a5c1340f22fbb5e17c65ead995a6ed18  libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc
! 3ff121d1d33fe1766bdae2b4f47d1a41  libstdc++-v3/testsuite/18_support/headers/cstdlib/macros.cc
! 62ea2368763ef2da5a37a66ae55800aa  libstdc++-v3/testsuite/18_support/headers/ctime/functions_std.cc
! d9e9cae3d8f2a388d6df40a89eb59c81  libstdc++-v3/testsuite/18_support/headers/ctime/macros.cc
! 77beec7a8c7c23ae9cddd764d667f546  libstdc++-v3/testsuite/18_support/headers/ctime/types_std.cc
! 64f907efba70018353ba50bb625441dc  libstdc++-v3/testsuite/18_support/headers/exception/synopsis.cc
! 43938165299c299ca65a76075fc204fb  libstdc++-v3/testsuite/18_support/headers/exception/types_std.cc
! 7dc43b84801cebe0d2c4ba9c4c53ca3d  libstdc++-v3/testsuite/18_support/headers/limits/synopsis.cc
! f01d9abed19fc0038d05c79df8a3a336  libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
! 461c9d660d15f0a2f2e098c4ca1bb92b  libstdc++-v3/testsuite/18_support/headers/new/synopsis.cc
! 0fa21f131c41363ff280e56862d91e9d  libstdc++-v3/testsuite/18_support/headers/new/synopsis_cxx98.cc
! 09ce01f76253910856700e2afddeb17b  libstdc++-v3/testsuite/18_support/headers/new/types_std.cc
! e046d1f2dd83948c2f1bebd6854307d2  libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
! 4ad5fec25fe0c4fe557a55079ef630bd  libstdc++-v3/testsuite/18_support/headers/typeinfo/synopsis.cc
! 56c678c03eddb4bbccd925274d8212d9  libstdc++-v3/testsuite/18_support/headers/typeinfo/types_std.cc
! 47475fceea2197a5daff17e8d0a33bf8  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
! 6915eca4df41499048a3c281e26933af  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
! 901fdda01ce8d9680ee8b86cf8d2a442  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
! 44833f4f441f1f0f4e1dab32fd1c5d35  libstdc++-v3/testsuite/18_support/initializer_list/requirements/constexpr_functions.cc
! be1a6880d3ca8366fc770fd8383296aa  libstdc++-v3/testsuite/18_support/initializer_list/requirements/explicit_instantiation.cc
! 9fa3ae164da5dc79cb4898b7e588fc62  libstdc++-v3/testsuite/18_support/initializer_list/requirements/typedefs.cc
! 2e007c33ab06368e8b1fbb5109d6c282  libstdc++-v3/testsuite/18_support/launder/1.cc
! aa97245940e37f443c9ea9c34a4208bb  libstdc++-v3/testsuite/18_support/launder/nodiscard.cc
! 22d03419d1bc3a757241accc87057b53  libstdc++-v3/testsuite/18_support/launder/requirements.cc
! 63b562bfa7900f33cae46d55e976be15  libstdc++-v3/testsuite/18_support/launder/requirements_neg.cc
! 428ae4bfdb273c3062558261021230e9  libstdc++-v3/testsuite/18_support/max_align_t/requirements/1.cc
! 37beed6862527fe36a23109c55d4c92d  libstdc++-v3/testsuite/18_support/max_align_t/requirements/2.cc
! 09060edaabda1ff21f5acfd3732bab1a  libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
! 50dc442cddc276f0f749b98cb863b815  libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
! 2a647ba95fc5da761f22276a8e4c0b1b  libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
! eb52a4d9d1ad77ec0bfea80070856ce3  libstdc++-v3/testsuite/18_support/nested_exception/79114.cc
! b7c1bd07ccc151dc9dca006498d75317  libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
! 6f279a3d1b86fa25e8be5336b4aed0ec  libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
  ee6662bc29b9fe5c14888dd97e1cf3bc  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested-term.cc
! b94b16c685a36da5f8acd4a2460d247f  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
! 32c3c6a87a6927236a10c09b5286d34b  libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
! 9239c898c7473e6ce95976f4b428ff12  libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
! c193dae05b4e00be919464f0183238d4  libstdc++-v3/testsuite/18_support/new_aligned.cc
  2d09e4cdefd06607002d0326a6ca6081  libstdc++-v3/testsuite/18_support/new_aligned_warn.cc
! 97a08cbeef5c24dc3a856d2edee5db05  libstdc++-v3/testsuite/18_support/new_delete_placement.cc
! b8e90d29766a86575e9a4fe20033177e  libstdc++-v3/testsuite/18_support/new_handler.cc
! 43d5e70dafe4f00a4ce10670792b5c3b  libstdc++-v3/testsuite/18_support/new_nothrow.cc
! 457817958c82b8b3f75ec9e7b60e2627  libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc
! bc2c6d755b92df29cdbd0b115984b11c  libstdc++-v3/testsuite/18_support/numeric_limits/29989.cc
! ea9c657217aef9dc23aae3a59cf7a0d4  libstdc++-v3/testsuite/18_support/numeric_limits/40856.cc
! 3d45f31ddffdecdbd607fecd78e039a0  libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc
! 33f4a4aabb0ec6660273ff290eba812a  libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc
! 6e62a47190821d00d69adeb41b2d7d57  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
! c04541c587ba0b67540115f791586d8d  libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
! 1c3da0ae35e8558afd4d849a41437f6c  libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc
! 766ccddf594def4d83643e41218a992c  libstdc++-v3/testsuite/18_support/numeric_limits/digits10.cc
! 5c9888de954cf7ef5e2f08d7577a492d  libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc
! f1cf287be722c98523d670274b929495  libstdc++-v3/testsuite/18_support/numeric_limits/epsilon.cc
! 3273d59697aa2071fc38cdb9cad8175b  libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc
! 25bb14e163df866e7d3dd57f33a60f31  libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc
! 73580ab0323d1534ff5c674fd2445812  libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc
! 8565444000fd5f3a07f744ba0854cd58  libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc
! 46be91f1ed67047a8864aadc30511489  libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc
! c16b7f14fa9375bf71bf8e5cef7d59e1  libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc
! bc5844dac5494e11aa1e9a5b88eed390  libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc
! 8b421d736b596c1697bf0c17e0ba030f  libstdc++-v3/testsuite/18_support/numeric_limits/quiet_NaN.cc
! d51ab9e22b3cafeb28628134872e9f63  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
! cab8fb83ca805e6cb5df8059919d7a1a  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
! 51976326fab835ea7322ddab2c29b04d  libstdc++-v3/testsuite/18_support/numeric_limits/requirements/explicit_instantiation/1.cc
! 4c6b8bd1018df9cdeb6e324a1994410b  libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc
! 8e8764ab32aae5f1a2b2448aaad95aab  libstdc++-v3/testsuite/18_support/numeric_limits/traps.cc
! 29110fde64f45fdf2bc32d69f6e94bf6  libstdc++-v3/testsuite/18_support/pthread_guard.cc
! 966cd0384e2ba52943bcd3aaa72fcbb1  libstdc++-v3/testsuite/18_support/quick_exit/quick_exit.cc
! 8e3eff351466d6e1805a4febfc3656a6  libstdc++-v3/testsuite/18_support/set_terminate.cc
! 108e6a13096c2b72811d6321d7cee755  libstdc++-v3/testsuite/18_support/set_unexpected.cc
! 05072a7e00ffc64016e3f898b519894c  libstdc++-v3/testsuite/18_support/source_location/1.cc
! 70fd80e9669dbeb919742563f9eb1e4b  libstdc++-v3/testsuite/18_support/source_location/consteval.cc
! 73493e2ad51f3adb997a39f3b93edd59  libstdc++-v3/testsuite/18_support/source_location/srcloc.h
! 29d90d400651a34bffe689c287300bcf  libstdc++-v3/testsuite/18_support/source_location/version.cc
! 3297f6a0349b2fa8a7489b00ac0a05e9  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
! c2a92d273be1434d9973eae18c5b8612  libstdc++-v3/testsuite/18_support/type_info/52562.cc
  9183aba89484917544d8e71ab7b95f72  libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
! db3690c17629cf219da434a10bf135a6  libstdc++-v3/testsuite/18_support/type_info/fundamental.cc
! f4d2b5f5736f1277e5084cf7d70c950a  libstdc++-v3/testsuite/18_support/type_info/hash_code.cc
! 2ebf3c77f9ed20c719284c3a3007742b  libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc
! b68fc1210f1fd3ccb869dbd07f8e379b  libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc
! c8651cdc857f31f660a1d5041e8772cf  libstdc++-v3/testsuite/18_support/unexpected_handler.cc
! 539a1e4b3f59b604b72e1f079fc8269e  libstdc++-v3/testsuite/19_diagnostics/debugging/breakpoint.cc
! 5bbfc1e5c633a88da16cf1c3b38f1d87  libstdc++-v3/testsuite/19_diagnostics/debugging/breakpoint_if_debugging.cc
! e1918fe2644da6c5b2132b19cee75eb5  libstdc++-v3/testsuite/19_diagnostics/debugging/is_debugger_present-2.cc
! 914f3e23e53916a1b9f7bc27a0675154  libstdc++-v3/testsuite/19_diagnostics/debugging/is_debugger_present.cc
  e76078fa52225514dc89f9b1116c07ff  libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc
! 1dbd00ba7cb190147e47e8d8a89d2110  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
! 6843c92fc6dab7959c4ae37ba6c18d78  libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc
! 701c229b85f3154f3c65044ffdc378c7  libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc
  0a66d8bbf6fa03d3f76f4e2fdde4daf7  libstdc++-v3/testsuite/19_diagnostics/error_category/noexcept.cc
! 655008abb5d56fea8a64b8b2984148be  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/equal.cc
! d0a4a6928e46f5fef6676b65da1a69b8  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/less.cc
! a802639f407143aab1a7d11ac6a05f73  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/not_equal.cc
! e0e2f1e46809718f53f74eb48c88c3ac  libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
! 3d89fa57d483c6814ba6d7b9eea656c5  libstdc++-v3/testsuite/19_diagnostics/error_category/system_category.cc
! fb1f5a4f4dd1d054534652f80f746501  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
! 11c8acff022435561480f0339514b6ba  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
  81f9725b7658563bbe88b3ba6c3c1852  libstdc++-v3/testsuite/19_diagnostics/error_code/cons/lwg3629.cc
! 36a4b5ba51bf07f9c034eb98001f8a99  libstdc++-v3/testsuite/19_diagnostics/error_code/hash.cc
! 1427c0fc6cca0cd859c57fab05cf279e  libstdc++-v3/testsuite/19_diagnostics/error_code/is_error_code_v.cc
! 6e7d6ac7cdbfa0a32316f1737d0cae12  libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
! cd1d68f7a7cc9a2fa1c20a06dbfeb7d2  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
! 27b6b622ac403363821fdad0730c3a6c  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool_neg.cc
! 9c58a9db2599da7492c32f57e88e1c16  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
! bf3988a55d30be89153ca8e48f2d05a1  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/less.cc
! 23d61492fbcc6aa2c08dda459c7e45d6  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
! af1a6597bb76e52bc1cede1cf77d7c5d  libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
! 25b961f2fd90cee6ffb44cf7af42d76f  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/1.cc
! c076bfc6f13b15c647f73847a13d2fe7  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
  0c9bc80a7caee067ec088b66373dcca8  libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/lwg3629.cc
! f4544e83fc25f539c52f6881a4233046  libstdc++-v3/testsuite/19_diagnostics/error_condition/hash.cc
! b11bff843129050002d0b53f6efabfbd  libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
! 56c1a2e68b40afc56fc589ccde4b1b1f  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool.cc
! 50d640c1afeb34ddbae2985dceb02cfc  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/bool_neg.cc
! 7ac075187f64cd8d8331fabe207919c6  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/equal.cc
! 527c6a8c7b00d50640ca04b976e4331c  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/less.cc
! e6024f1a8100e0f54282ae21a6c32274  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/not_equal.cc
! 662bcc06eb55e634c4b00137d75339f2  libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
! d26c657182584408c5945ad6717ae34e  libstdc++-v3/testsuite/19_diagnostics/headers/cassert/macros.cc
! b4759e29d10350832d257b5aa75ec34a  libstdc++-v3/testsuite/19_diagnostics/headers/cerrno/macros.cc
! 71d8d36282affb981611857bd78485f3  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc
! 22cd20b4abf8b13c1ff0d32654bfbdca  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc
! 753e93d0fa77f952239b67d8da30e240  libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/version.cc
! f813515dd061a023afa13b4147961b8d  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc
! accc16cbd2aa991d377915b653a04f3e  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc
! 4aec87bf1509f74bb4810c51ab3fcc4e  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc
! bc2260ec0156f0201b157dc8a706d93b  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc
! bc5f52486a9d3cbf33e60ec70ecc3543  libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc
! 5177223812337b26c52b2deded2ba3ca  libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc
! 4fc2e46cacb15efed5bc3b9613445f80  libstdc++-v3/testsuite/19_diagnostics/logic_error/constexpr.cc
! 34dfcfd0e3110edb6cce0d7fe811fb48  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-1.cc
! aa03a4169b3ffc935cb8e8be4007361d  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-2.cc
! b24971c2ce3e417ddb6824306fb01b9e  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-3.cc
! 13bb029cc8edb303b5d99634563c7da2  libstdc++-v3/testsuite/19_diagnostics/logic_error/what-big.cc
! 2bfcb24df0675a5fa360e2686275923c  libstdc++-v3/testsuite/19_diagnostics/runtime_error/cons_virtual_derivation.cc
! 8e7f06249f63c55201a37c5438974407  libstdc++-v3/testsuite/19_diagnostics/runtime_error/constexpr.cc
! 78be7c05fd809aba4894a6882723bd7a  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-1.cc
! cd42a48257d110a99f8625f48407af86  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-2.cc
! abc3d3ef27e63fae8bac4cdcab440464  libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-3.cc
! c14c27de8189cc69b593b5750e56847e  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
*************** e56e9135727cc8426f415b40cb46ef9b  libstd
*** 133999,135166 ****
  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
! 1c20c8446873575ecfc590bf29295f7e  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
  b886d3a0593a98cc18b3735af80a8882  libstdc++-v3/testsuite/20_util/expected/119714.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
! 8854ae6d49bfd2df3b2f3a9095f61fc4  libstdc++-v3/testsuite/20_util/expected/requirements.cc
  8c41a21e12dcb978b196eabf48e15513  libstdc++-v3/testsuite/20_util/expected/swap.cc
  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
  a4c70ba76af9268062433ab3a3bff6cc  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
! 8492f2875030a6b25ae26cf2bfe312d2  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
--- 147977,149235 ----
  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
! 74ece3f9d8c548c160fbe62d915df6c8  libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc
! 0e8b927b1473a2de659e52d88d36f871  libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
! f7de8ea57ab0bcf57535063891664194  libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
! e674e68df85b7f2bd4334f9629097b57  libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc
  b8fd5b3cc781e4351fcba88c19391352  libstdc++-v3/testsuite/19_diagnostics/system_error/noexcept.cc
! 9113edfb60c953fc89a16f9ae39fa903  libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc
! e58aa3e89065e4ef9cb9441ed973c74f  libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc
! 3063e44ec49b6d8df7ba4115377db465  libstdc++-v3/testsuite/19_diagnostics/system_error/what-3.cc
! 146d9358073714952f6b703fa14400ba  libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
! ca9d1fc82261c8e832aa0f45aa6a4c6b  libstdc++-v3/testsuite/19_diagnostics/system_error/what-big.cc
! 0640416a57940d81c3d610e279826da0  libstdc++-v3/testsuite/20_util/add_const/requirements/alias_decl.cc
! 0fe03896e8468f9b5dc509763f2ba06e  libstdc++-v3/testsuite/20_util/add_const/requirements/explicit_instantiation.cc
! e65ab6d4e17a0027b4d56c2f8d214c31  libstdc++-v3/testsuite/20_util/add_const/value.cc
! f687738e8f622608f28109f1cf97e561  libstdc++-v3/testsuite/20_util/add_cv/requirements/alias_decl.cc
! 332f3d4c290d457a3c18882d7e906671  libstdc++-v3/testsuite/20_util/add_cv/requirements/explicit_instantiation.cc
! 18b44e0161bd2d69b658ac0d51d382dc  libstdc++-v3/testsuite/20_util/add_cv/value.cc
! e023696d914498046acafe3b1ee3185d  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/alias_decl.cc
! ce808995e2375898afe8af0a78da7658  libstdc++-v3/testsuite/20_util/add_lvalue_reference/requirements/explicit_instantiation.cc
! 8f64c63596075dccd51b8e8f539ec975  libstdc++-v3/testsuite/20_util/add_lvalue_reference/value.cc
! 03ba77bbf87fb05d79155ce3be878e4b  libstdc++-v3/testsuite/20_util/add_pointer/requirements/alias_decl.cc
! cb1aa9c3a69b90a036e24a2db977e48f  libstdc++-v3/testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc
! c9d5a2503851e19f390c3a42046c1b2f  libstdc++-v3/testsuite/20_util/add_pointer/value.cc
! be855cce67114b14dcda353df180ed01  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc
! b401be4e6733c986c6c985e9ca17da7b  libstdc++-v3/testsuite/20_util/add_rvalue_reference/requirements/explicit_instantiation.cc
! 3c279f9cbe40463bba1b8ed98b8c5d04  libstdc++-v3/testsuite/20_util/add_rvalue_reference/value.cc
! 92964a77d10c4377115922e92d3f8f11  libstdc++-v3/testsuite/20_util/add_volatile/requirements/alias_decl.cc
! 4b3aba828eac4156778aa814a9abff19  libstdc++-v3/testsuite/20_util/add_volatile/requirements/explicit_instantiation.cc
! 4983c28fd158c6ee5c357213317403b4  libstdc++-v3/testsuite/20_util/add_volatile/value.cc
! 7456dc86d0d53a146ec91afa5195e2af  libstdc++-v3/testsuite/20_util/addressof/1.cc
! e9ba99ff2241a1c77b0ed96191e70190  libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc
! d9c7a7e290725d12e89ba8d187efbc3d  libstdc++-v3/testsuite/20_util/addressof/requirements/explicit_instantiation.cc
! 24a9a37df9646c14ed74ec3f9945dd5b  libstdc++-v3/testsuite/20_util/align/1.cc
! 471987e95f32236be0172ed55e587102  libstdc++-v3/testsuite/20_util/align/2.cc
! 61a5395fad736384f9540e25160f01ae  libstdc++-v3/testsuite/20_util/align/3.cc
! 99cc71dd06e3d1e9555f74e39a892a45  libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
! ee3e33db3f67b469106c2a9c3d5efd89  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/alias_decl.cc
! 9eebe3aa9f63d4868016016b30ca8bc1  libstdc++-v3/testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc
! 233cbb6154333eac849324d8350a54da  libstdc++-v3/testsuite/20_util/aligned_storage/value.cc
! 573afc56101bd49928c6897a142b5288  libstdc++-v3/testsuite/20_util/aligned_union/1.cc
! c98e4d694ee20c0da2a9a40cacffcdf4  libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
! b4e2ef866942670b2ccfa3403c5496f3  libstdc++-v3/testsuite/20_util/aligned_union/requirements/alias_decl.cc
! 02495dd99c6862e77eca0f73b0f42cbe  libstdc++-v3/testsuite/20_util/alignment_of/requirements/explicit_instantiation.cc
! 5b70eaa5a59656c056f1a77a2de9996e  libstdc++-v3/testsuite/20_util/alignment_of/requirements/typedefs.cc
! abea3d18888abbe0c8aca3595175abbe  libstdc++-v3/testsuite/20_util/alignment_of/value.cc
! d53e99127a0ce3874dd37799ab468bf0  libstdc++-v3/testsuite/20_util/allocator/1.cc
! 26ac2fb55ff7b8bb27866cacf5375e0d  libstdc++-v3/testsuite/20_util/allocator/10378.cc
! c3633be19cc26ebd3041d6f7a8120295  libstdc++-v3/testsuite/20_util/allocator/105975.cc
! 08e0a8abae4a2eb98de2655312e475a6  libstdc++-v3/testsuite/20_util/allocator/14176.cc
! 84a373898b86ab5dff8c502f61f75e7f  libstdc++-v3/testsuite/20_util/allocator/33807.cc
  ae49058091ac2f31814de6246e958d6a  libstdc++-v3/testsuite/20_util/allocator/64135.cc
! 3d6fd2416cfe20b40727679190a1acd5  libstdc++-v3/testsuite/20_util/allocator/8230.cc
! 304feeda4411dd976033b709ad4dc9ed  libstdc++-v3/testsuite/20_util/allocator/89510.cc
! 3dfa4bfcfdfadebf8e902ee535a79064  libstdc++-v3/testsuite/20_util/allocator/allocate_at_least.cc
! efd50eb210f11e05083d51d5f197edce  libstdc++-v3/testsuite/20_util/allocator/allocate_at_least_neg.cc
! aee95679e97e16985af49532fadbba5c  libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc
! af5ed7a07c56e8d2e5f768f47c861ba1  libstdc++-v3/testsuite/20_util/allocator/overaligned.cc
! 354ae4e1acbe3664aa5db35df5685626  libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
! 780ebc0688bbe1dfc50bc9209b5bc1e6  libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
! 0141fb0700cc12abe3facb97195188aa  libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc
! 8268b610f161037289e3d504b2fd22b4  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc
! d9185f63cb26fcf2704b381fbf94f60c  libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
! b28c897d399eae1d35d818d41f06bee7  libstdc++-v3/testsuite/20_util/allocator/void.cc
! 5e1f17c7167ee687c5220b5e83a2a866  libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
! 12ae1673c7190610ef1bc7042a3be51a  libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
  a768e5494344491bd05c3b81506c8798  libstdc++-v3/testsuite/20_util/allocator_traits/members/108619.cc
! 317c55187fd251575374e14888b6241e  libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
! 2d8afd64a2206328693de64deb5dcec6  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint.cc
! 88cf0954044b28df468a4bee89e5ab7f  libstdc++-v3/testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc
! c5fda251af5c11861b8ea06772e0801c  libstdc++-v3/testsuite/20_util/allocator_traits/members/construct.cc
! a76856b3eb401d045121feaaf8d24185  libstdc++-v3/testsuite/20_util/allocator_traits/members/destroy.cc
! 9bdc1a045935da12fe60cb0d1d74f572  libstdc++-v3/testsuite/20_util/allocator_traits/members/is_always_equal.cc
! 1e9cf8c10bfb8febb85490edd82f626f  libstdc++-v3/testsuite/20_util/allocator_traits/members/max_size.cc
! 5edbf1fdf233ae6f23255de3f0d7e9c6  libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc
! d631be6892fcf3b4f81860b5047e59c3  libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc
! c251058edf0da3925c1a031363514596  libstdc++-v3/testsuite/20_util/allocator_traits/members/select.cc
! 0694b0cd3c914c9d36efc9721a85ea44  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc
  bef0ecc9b87819710fa15591c4f27204  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/rebind_neg.cc
! 5d9759cf74726f09bb7bc8b37602e992  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc
! fa498b656083618577fcd84a90846470  libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc
  53d95c7e7934ce41b96d0a86033b6a99  libstdc++-v3/testsuite/20_util/any/102894.cc
! 388673ef60947d42c8f02887b4a48ffa  libstdc++-v3/testsuite/20_util/any/assign/1.cc
! 81fbadf471123aab089d04646f3ff9e9  libstdc++-v3/testsuite/20_util/any/assign/2.cc
! 26c2460b1a8476620b65c4cc3c9c88c9  libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
! 41a837bfa15010489e886c0bbd54487a  libstdc++-v3/testsuite/20_util/any/assign/emplace.cc
! ec64b7f31e13c1ecd1f74d7062dc6e4a  libstdc++-v3/testsuite/20_util/any/assign/exception.cc
! 60c369b36f1815659213c41363a24767  libstdc++-v3/testsuite/20_util/any/assign/self.cc
! 9772c798a60e54e91788dbc27fad5abc  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
! c79b54ae13ba45d889de49cf4ee08363  libstdc++-v3/testsuite/20_util/any/cons/2.cc
! f9ae342224857e58ed47e6a5c4470b8a  libstdc++-v3/testsuite/20_util/any/cons/90415.cc
! 589bf6a285f8bdf778f0450e99f4a59f  libstdc++-v3/testsuite/20_util/any/cons/92156.cc
! 0f4d2735c7d55e9f0703845c3eebf24f  libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
! 934d8f413a053b46bf2a46d09367433f  libstdc++-v3/testsuite/20_util/any/cons/aligned.cc
! 4f0056dec3779490f87bd43087c276b8  libstdc++-v3/testsuite/20_util/any/cons/explicit.cc
! a142fecde68f35c3e36b6d150f2541b5  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
! 5923d1ca55873cde155c6be93c42b49b  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
  a7c7d3cf31b77ca51ce57296221adf6d  libstdc++-v3/testsuite/20_util/any/layout.cc
! 96de0e7238fcb84d1a692fd6ca65c796  libstdc++-v3/testsuite/20_util/any/make_any.cc
! 21645c74c768006b59f993a15b7aed96  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
! 61dc4256d33611c10fd67398c62af8ba  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
! e27358f727c59aa24ede0d9f308a7de3  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
  a576256da1fd0145043529eaf7e62e7d  libstdc++-v3/testsuite/20_util/any/misc/lwg3305.cc
! abbfe09f75cc7a9a6ca77f0cbc067127  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
! 09056abb09e8ea737bed39e6225462e2  libstdc++-v3/testsuite/20_util/any/modifiers/1.cc
! aabe22a50d61ed016381622efc3a98b9  libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc
! c533af982cc7c6db181bcbe8d5007b64  libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc
! 9cddb3a18ed05a533a3ac96d7274c4de  libstdc++-v3/testsuite/20_util/any/observers/type.cc
! a71a5ca73b67744fd56e1ea0aa46e393  libstdc++-v3/testsuite/20_util/any/requirements.cc
! ef316c17e37f1a784a99d9634a529685  libstdc++-v3/testsuite/20_util/any/typedefs.cc
! 85c0b32db85759c29c638e3fdcfde757  libstdc++-v3/testsuite/20_util/as_const/1.cc
! b80a2529853a9ce25a9c4b88ac34fb0b  libstdc++-v3/testsuite/20_util/as_const/rvalue_neg.cc
! f72fd61fb5f0c49069f6147c9b476a44  libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
! d809f9196c93f6732aa3534ab118ffbe  libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
! d2779e645df0893b5b73b48bb5d5c30a  libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
! 9030c923f8c5fdb538a10fe55a7e3aae  libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
! 8d9da926a0f49ce890127358c8777239  libstdc++-v3/testsuite/20_util/auto_ptr/1.cc
! da356c8a249fdaca94cd2b2aa9680524  libstdc++-v3/testsuite/20_util/auto_ptr/2.cc
! 2dba1e949be8d5172368615aac8fd046  libstdc++-v3/testsuite/20_util/auto_ptr/3.cc
! 8c83e4de8e13df8f3c7b9f306f5d47fc  libstdc++-v3/testsuite/20_util/auto_ptr/3946.cc
! 471adecd7b6430cb363e61bddbb65fb0  libstdc++-v3/testsuite/20_util/auto_ptr/4.cc
! 6cec3826b52e692258e2a8a74c56a1d6  libstdc++-v3/testsuite/20_util/auto_ptr/5.cc
! f74923f70d1b29dedfa38886fa6c8fcb  libstdc++-v3/testsuite/20_util/auto_ptr/6.cc
! 2e8fd8b856f8a79583a70ea32623ad43  libstdc++-v3/testsuite/20_util/auto_ptr/7.cc
! 0a21a6386c0b663d13170360f8fe01cf  libstdc++-v3/testsuite/20_util/auto_ptr/assign_neg.cc
! 24b5843ac5d3d6cef2e892d15cc80804  libstdc++-v3/testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc
! 962df3066fbfd24f1c787d3c23fc74f7  libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc
! 8ace302632ed65cbeea0928337f7496a  libstdc++-v3/testsuite/20_util/bad_function_call/what.cc
! f8e894d1f1557ad1455370d021ed17b2  libstdc++-v3/testsuite/20_util/bind/35569.cc
! fd89cdeef2afb60a986800a3c1781b20  libstdc++-v3/testsuite/20_util/bind/38889.cc
! 0aa0f7c9a6e083e272216cbf7921bc82  libstdc++-v3/testsuite/20_util/bind/42593.cc
! c64773cb56b13d9ec8b635a4f6360dab  libstdc++-v3/testsuite/20_util/bind/45924.cc
! ad49fd1d72bfd462f169ff252a6b9423  libstdc++-v3/testsuite/20_util/bind/48698.cc
! d46a5c2dacdd8d4ba5c341206c189020  libstdc++-v3/testsuite/20_util/bind/49058_1.cc
! 929a8fcb0ebfff769a74cfa222dfa970  libstdc++-v3/testsuite/20_util/bind/49058_2.cc
! 29ec4c4d4c7c5e86f4382a4809977689  libstdc++-v3/testsuite/20_util/bind/57899.cc
! fbb545a1ef1ffa1c2eff5d03644a8d0f  libstdc++-v3/testsuite/20_util/bind/60497.cc
! 28fdc35edcb1d51c5021f360925629b5  libstdc++-v3/testsuite/20_util/bind/68912.cc
! 7be555f336665f4fe557d42b6dc8faf3  libstdc++-v3/testsuite/20_util/bind/79798.cc
! 9732bcd6d4fa0e14cb4049d21f85b7a9  libstdc++-v3/testsuite/20_util/bind/80564.cc
! 54a10c3ed47a56d91e1b8f180f5ce34e  libstdc++-v3/testsuite/20_util/bind/83427.cc
! 9a31b6b5726724c81578ff8875e7929f  libstdc++-v3/testsuite/20_util/bind/91371.cc
! 3b88646b3d128c9b2d9b2b0b0a8ab487  libstdc++-v3/testsuite/20_util/bind/all_bound.cc
! 6663547ee82c18cfb3b6dba95c27ce4b  libstdc++-v3/testsuite/20_util/bind/constexpr.cc
! 7414d6ad1520f6ec0bc512c680719207  libstdc++-v3/testsuite/20_util/bind/conv_result.cc
! 55f9e58f91ea3f79750116110e3da60c  libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
! f1de0982a54d22b4ffad709e5230ccfe  libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
! 58af9654cca9c5c4c3902e660d3bf637  libstdc++-v3/testsuite/20_util/bind/cv_quals_3.cc
! 9e20c0553ba5c2a0e7032207ebaef1c2  libstdc++-v3/testsuite/20_util/bind/dangling_ref.cc
! 92342e5bc51976358ff85fbc56988abc  libstdc++-v3/testsuite/20_util/bind/is_placeholder_v.cc
! cb2878c5bfac2143c01b4087e30703eb  libstdc++-v3/testsuite/20_util/bind/move.cc
! ece2314ad7f1324334fdfd94b460b8ae  libstdc++-v3/testsuite/20_util/bind/nested.cc
! 3290a5502fa6cf69f779cc659e5352e7  libstdc++-v3/testsuite/20_util/bind/placeholders.cc
! 167be218268ea9ec6d3927a9289827f6  libstdc++-v3/testsuite/20_util/bind/ref.cc
! a18115e6b5d88a56cfe80f095effbd3d  libstdc++-v3/testsuite/20_util/bind/ref2.cc
! 269e0ca129f8af3ab7158b0010161383  libstdc++-v3/testsuite/20_util/bind/ref_neg.cc
! 0d4905a06f6d57fb8cd2d40bb7e634d6  libstdc++-v3/testsuite/20_util/bind/refqual.cc
! 8489e6a7df7767c7c5f8b9247e82bb4c  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
! 3b84ebf0c9a974f5f5e873ace50bdc2f  libstdc++-v3/testsuite/20_util/bitset/121054.cc
! 27b97107d70f673ab11441621b049a0a  libstdc++-v3/testsuite/20_util/bitset/18604.cc
! 466a96d6727812ce897a9095b374779b  libstdc++-v3/testsuite/20_util/bitset/45713.cc
! 2047271876b091f06c4e2c0c833658db  libstdc++-v3/testsuite/20_util/bitset/access/118341_neg1.cc
! e5fcb5f023bfc3d27671aa858bd578e5  libstdc++-v3/testsuite/20_util/bitset/access/118341_neg2.cc
! ef5ce132b10534bed9b3ad7fdd12c45b  libstdc++-v3/testsuite/20_util/bitset/access/118341_smoke.cc
  0be3c1005581d429a9faed927cfeb925  libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
! 43d71c85a4ec0e174c7f0b853dbd8d54  libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc
! a6b86f8a55e9b1eead484667cf6253fb  libstdc++-v3/testsuite/20_util/bitset/access/subscript.cc
! ccca031a446625e2bda8a0f43d00b14f  libstdc++-v3/testsuite/20_util/bitset/access/subscript_const_neg.cc
! 12a0b968a4d225ad6b88e083c68c47b0  libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc
! 452eacf2d6bce2bfb99d016c5bf76d34  libstdc++-v3/testsuite/20_util/bitset/access/to_ullong.cc
! 6d27d7ab5878b6845b879682a8c4a629  libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc
! 27528feb311d08c0d06a755dfe4c99d0  libstdc++-v3/testsuite/20_util/bitset/cons/1.cc
! e9f4af384e20356fa717cfce28822265  libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc
! fb09f87c8b8483bc2d5c7e89d9284d95  libstdc++-v3/testsuite/20_util/bitset/cons/2.cc
! 88d1336bd43d1292c264cc28c6b07336  libstdc++-v3/testsuite/20_util/bitset/cons/3.cc
! a9a9cf16564e714125f8369fc484f8e7  libstdc++-v3/testsuite/20_util/bitset/cons/38244.cc
! ded78722d679acf3854ce6ff9ce54c4a  libstdc++-v3/testsuite/20_util/bitset/cons/50268.cc
! 2979e27c68149ac0d004d4cc62670e3a  libstdc++-v3/testsuite/20_util/bitset/cons/6282.cc
! 0ba9cfff6d21b1c40494c2bb2107cc66  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr.cc
! b9820acb1e2d2f495bdf8c4808286a8d  libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
! 2b0c500eeaf17501147b2c23910ff146  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-1.cc
! 9f4913ec42894fc417a56a67d3191d09  libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc
! fc9736e59ce3aecb63a4d55da41ca8ab  libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc
! 23558c3c7723e93f470cbb736e5d9af5  libstdc++-v3/testsuite/20_util/bitset/cons/string_view.cc
! 7b64a4ce05ecd6b19e8079b0c59ca3d9  libstdc++-v3/testsuite/20_util/bitset/cons/string_view_wide.cc
  4739712fd7e238ea3f424a1b9a749ded  libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
! bc6e8f6df42df950e136b45b91775fa8  libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc
! ee5971c2dee5a71556fb5884889260f7  libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc
  ae7a35e7dc58142db1f519ca7a92c236  libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
! 07b6fefed86cd5dde0d018fbf67e9b5c  libstdc++-v3/testsuite/20_util/bitset/hash/1.cc
! 5373fe1451c46fa580393ef6a4801de0  libstdc++-v3/testsuite/20_util/bitset/io/input.cc
! 4a8bf0f230ce95488b9470a4c81f14a9  libstdc++-v3/testsuite/20_util/bitset/observers/6124.cc
! 99aa27938bdcf30f373485ddbdd9a234  libstdc++-v3/testsuite/20_util/bitset/observers/all.cc
! 504107aa9c4cefb86a1ad3aa80b56749  libstdc++-v3/testsuite/20_util/bitset/observers/test.cc
! 9cf566bc10a7024308780cbadf60e683  libstdc++-v3/testsuite/20_util/bitset/operations/1.cc
! cf6b694a894efd5c71d38f1c30b7d9f9  libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc
! 8371107423dd71dfdd330be0bfba6229  libstdc++-v3/testsuite/20_util/bitset/operations/2.cc
! 85844723b4f57ca570728e2e08f0c961  libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
! dbb92e3e580051390939ed1c89c12f45  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr-2.cc
! 7bbb128d00aeaa99f339e09a16304044  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr.cc
  cd35f526f71cd243c4965f834df24c89  libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
! 7167d70229491709481886d7bf171522  libstdc++-v3/testsuite/20_util/bitset/requirements/constexpr_functions.cc
! 7a0c8f0ce4918e57a732e063029105ee  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc
! 476b19a16bda6ad1ccc375a827a554eb  libstdc++-v3/testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc
  eef2204d57edb98136c3ffd5d0879a97  libstdc++-v3/testsuite/20_util/bitset/version.cc
! e1136ff5d4fbf452458f32bd95348232  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
  d9e3a835b6facefd71de42c8fe38c7ed  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
! af25f8f7e85a16941631a585bc0e1b68  libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc
! a141fd68f10a4598de918a160a14658e  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
! 5f4441473c36344b92fc1e2b3e25b435  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
! c5c26a31e7b679312f2784a6392935ea  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
! 2c393fa65336c59636b60bc165b1211b  libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc
! 6b53a05f6ecc47e12c57fd6a2bbb10e1  libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc
! 0b823f1960c5bb70a7af8e9079b9c8e2  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc
! 158e753cf3378669c7122d6d13714626  libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc
! 2d5a7658b9729e60c00f0cfb1280a78f  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc
! 05075a30ba8d56d85ac009e1e337c8b3  libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc
! 10cf645700c300427784618c5bfcf981  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
! 5c846381725d12ef11a9e70c78141270  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
! e133eccc1a4734a3ac88d1a656706378  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 95bad06156644b850b0d0628cde39ee6  libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
! f4c5fb9b9eef76cf55a1f3d4e0727f82  libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
! 7355d91818a4103ae0d02ed116ca8469  libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
! f6c5689f1a0dfdba8a8ba54d684306c4  libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
! f132f2bcc484293fa32563cb7cdab8f9  libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
! 33f234999aa59db9cbf70db59b5481c4  libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
! 40b819222eee937a9063c9e962829b5f  libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
! 404eb18749ec930755e24ae928ae99ee  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
! 09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
! d08c6d7092cbc05d4491a4d25574eea5  libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
! f2d2d2bd40840c1534687ec3fbd7dcfd  libstdc++-v3/testsuite/20_util/copyable_function/copy.cc
! b5b62c4ed58b361b1b583217e7f3f5b5  libstdc++-v3/testsuite/20_util/copyable_function/incomplete_neg.cc
! a2d4d3098924fba867e2bdd0e868f984  libstdc++-v3/testsuite/20_util/copyable_function/move.cc
! 5c5d65693a726858d4eb48f9b29bd843  libstdc++-v3/testsuite/20_util/decay/requirements/alias_decl.cc
! ae2bf4ab6c506e86f483edd6bc1ba979  libstdc++-v3/testsuite/20_util/decay/requirements/explicit_instantiation.cc
! 4e39a49858f5ff4bdabbc0a710a96771  libstdc++-v3/testsuite/20_util/decay/requirements/typedefs.cc
! a8f8b33ba435961f6afb6b137b7fd025  libstdc++-v3/testsuite/20_util/declval/requirements/1.cc
! 178e69c8fa899142587ddfaf029eb46c  libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
! f8c26627c589bd7919994d31c8d7bb3e  libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
! 7d377a8cb05e27af958fff057d0958fd  libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
! 7664684ff08962d0670e4b5b5832416a  libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
! d9265c5c4c0781d0d4fc7335c52eec93  libstdc++-v3/testsuite/20_util/duration/114244.cc
! 7cb8b1368c15560af307f8a4f28eda2b  libstdc++-v3/testsuite/20_util/duration/arithmetic/1.cc
! ed3166fb5e24d1d96bedb759f17f2cfc  libstdc++-v3/testsuite/20_util/duration/arithmetic/2.cc
! 491902f2e2df180950d44454a519c9fa  libstdc++-v3/testsuite/20_util/duration/arithmetic/58850.cc
! 806cc7c75ebf2506dd97bc84fa6a0c8b  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr.cc
! e49bacf79a14ea7ec832a1e289482090  libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc
! bcee7259b7058978dd79a928b60d3c0c  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr2020.cc
! 3ca865bf8882e631fce0a98a27a42d2f  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr3050.cc
! eb7c95916822c2110da09868df0f2044  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-1.cc
! 330c3b0fb4992815c65df421438caa0b  libstdc++-v3/testsuite/20_util/duration/arithmetic/dr934-2.cc
  5bfbf049bfde3e1b9726b779cd22ff78  libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
! 88b26c44175abdcee76fa1748fb09911  libstdc++-v3/testsuite/20_util/duration/comparison_operators/1.cc
! 7cfa56d12d4a18a57ed2676a8c859e22  libstdc++-v3/testsuite/20_util/duration/comparison_operators/constexpr.cc
! 5b1f0fbeedb4968f2e39dc19a631aeba  libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
! 8e26b53263f807d685705a683a714c04  libstdc++-v3/testsuite/20_util/duration/cons/1.cc
! d64ced80020f7faf5e25be78f99435a0  libstdc++-v3/testsuite/20_util/duration/cons/1_neg.cc
! 099b317201ab4f30cb810af2b690c892  libstdc++-v3/testsuite/20_util/duration/cons/2.cc
! 804b4b59cd6b0bc426987cd640d44bdc  libstdc++-v3/testsuite/20_util/duration/cons/54025.cc
! 6f04119f89b7148b9a622591dcac326a  libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
! 2a83e7777ca9224605b91dc12a3dd7e5  libstdc++-v3/testsuite/20_util/duration/cons/dr1177.cc
! 627d105ee323d8076c129a8c6dd7cac9  libstdc++-v3/testsuite/20_util/duration/cons/dr2094.cc
! 7dde3f5d9f3cc1f555edc4d936bba870  libstdc++-v3/testsuite/20_util/duration/cons/dr3050.cc
! 7d0616e254730c1db0b0422cb3f678f1  libstdc++-v3/testsuite/20_util/duration/cons/dr974_neg.cc
! db17f9e1a80c812f715e3171c6825515  libstdc++-v3/testsuite/20_util/duration/io.cc
! d540015db28deb6d0875a67676a1884d  libstdc++-v3/testsuite/20_util/duration/literals/61166.cc
! b06bc7a892e75c3c2abd84a0b29f08d5  libstdc++-v3/testsuite/20_util/duration/literals/65499.cc
! 05a599666668d21a6256eb908a0114d7  libstdc++-v3/testsuite/20_util/duration/literals/84671.cc
  f11b5a7d64db419bf2305c0f433c638b  libstdc++-v3/testsuite/20_util/duration/literals/ns_detail.cc
! 30975ece4163c951f5bbdec84b6d4cb4  libstdc++-v3/testsuite/20_util/duration/literals/range_neg.cc
! 15abed9a38fcab23991a3266efcac710  libstdc++-v3/testsuite/20_util/duration/literals/types.cc
! c6158e1e25391460a129f32744609655  libstdc++-v3/testsuite/20_util/duration/literals/values.cc
! affb90a30d3bbf81d6825f02853a14d4  libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
! d272734d8afddcc072050872e6ebe560  libstdc++-v3/testsuite/20_util/duration/requirements/explicit_instantiation.cc
! 17e88a1866ab3829a448885f8949d5ec  libstdc++-v3/testsuite/20_util/duration/requirements/noexcept.cc
! 25c4686ed065ec7811c44b92cc442816  libstdc++-v3/testsuite/20_util/duration/requirements/reduced_period.cc
! 6ccb45f67db62c4556e3441be83c5544  libstdc++-v3/testsuite/20_util/duration/requirements/sfinae_friendly_1.cc
! 08c4d7cabf3fd125f7effb020f266bd2  libstdc++-v3/testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc
! e05afae56bfe2f7af9e7890269cd1cdb  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
! 947844cdb5f947c88aac04df83e309da  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
! da89419710d37bcac851a02b9815e226  libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
! 7a7f82da957acc3e77af24c6587af723  libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
! 61dac44c429b07c031fdb09f19addda0  libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc
! e1d65096c6fe17553d400c73dd220ee9  libstdc++-v3/testsuite/20_util/duration_cast/rounding_c++11.cc
! f5a5ffacf6420d2d688ecda077c7660c  libstdc++-v3/testsuite/20_util/enable_if/requirements/alias_decl.cc
! 69b9d5b10f9c2ed00595fbe20fd8e584  libstdc++-v3/testsuite/20_util/enable_if/requirements/explicit_instantiation.cc
! 127f8cab0f771bcb003efcd5377dd8cb  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
! 63c356f8ff30a6462d6d778bf9fd25fc  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
! 779ed22c8aee63220d79cb0498a2fbdc  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
! 9b215597e20f049c7e014e155b08a4ab  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
! 039f61f8d451269f3f5a63c3206fabd9  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
! 5d6feae490b8ed00a0ac3c07387737ff  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
! 199b1bff20145dc0c8beda9fad889dcd  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
! 41ae48a3689a9c20441a0200104e00ab  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc
! a31afef8cfbf07d47565288ddaf3837f  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc
! aaaccdb84040adda37f2e2aaade0f660  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc
! a38aea17302645ad4fb50b83d7d27c1b  libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc
! c6b0e6b2516e98ed623f2810bce8343b  libstdc++-v3/testsuite/20_util/exchange/1.cc
! 8d74694a29c35fcdb010215deee017de  libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
  54ac023f0845d5c919380e1309b7fb5b  libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
+ 2a4811607204efd3f780f2dd3a56dee3  libstdc++-v3/testsuite/20_util/expected/119197.cc
  b886d3a0593a98cc18b3735af80a8882  libstdc++-v3/testsuite/20_util/expected/119714.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
! a0200da48dbff6c25c04a5d874d06ac6  libstdc++-v3/testsuite/20_util/expected/equality.cc
  8bcfbe2481e180a50db20c6b10f2d6a0  libstdc++-v3/testsuite/20_util/expected/equality_constrained.cc
! 51122703f016055e7f753b4c20fef888  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
+ 97aac511f36cb21427676e071c189c5a  libstdc++-v3/testsuite/20_util/expected/lwg4222.cc
+ 087d8f0146738536fce2d6ebd4e78f9a  libstdc++-v3/testsuite/20_util/expected/lwg4366.cc
  4824cecd15088232e3348b8bad95b2ce  libstdc++-v3/testsuite/20_util/expected/monadic.cc
! 9f3d4b6d2922882be16e10312d73ca38  libstdc++-v3/testsuite/20_util/expected/observers.cc
! fbc55e5b031355e586d9d25d43d3000d  libstdc++-v3/testsuite/20_util/expected/requirements.cc
  8c41a21e12dcb978b196eabf48e15513  libstdc++-v3/testsuite/20_util/expected/swap.cc
  44dfca2fb3ccdb8f3ea97514568bab14  libstdc++-v3/testsuite/20_util/expected/synopsis.cc
  4b84f057fc22805edcab3b394acb5a2f  libstdc++-v3/testsuite/20_util/expected/unexpected.cc
! e6d4278a2513c0fdaeaafe62299be0e9  libstdc++-v3/testsuite/20_util/expected/version.cc
! 6c656dc470da68957c45ae8ce8541592  libstdc++-v3/testsuite/20_util/extent/requirements/explicit_instantiation.cc
! 567ae1381141d3041305beac50b81c83  libstdc++-v3/testsuite/20_util/extent/requirements/typedefs.cc
! cd276672ab4c21459a4f72c31f1986f6  libstdc++-v3/testsuite/20_util/extent/value.cc
! c199a9f0d0c05c294e44378c9a550529  libstdc++-v3/testsuite/20_util/forward/1.cc
! 12f7ce22fc90d6d47845cccf45c3774d  libstdc++-v3/testsuite/20_util/forward/1_neg.cc
! 1c74c00a9d535683e6bd0079def8b940  libstdc++-v3/testsuite/20_util/forward/a.cc
! c5ef0780e9c8b41b53c1576641854dc7  libstdc++-v3/testsuite/20_util/forward/b.cc
! faf2769e5599fa627ea8946515191a8c  libstdc++-v3/testsuite/20_util/forward/c_neg.cc
! 7c08fdcd18c5bea0d58abbc3a11ea912  libstdc++-v3/testsuite/20_util/forward/d.cc
! 382337c1576d7c4797e10196506036ca  libstdc++-v3/testsuite/20_util/forward/e.cc
! f9b323f665a2eab040fb928e6460c19d  libstdc++-v3/testsuite/20_util/forward/f_neg.cc
! 36c08b2bf8ac75edf6a40ce501f38844  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
! 43cf07bbbc616e7ccc0a9a1a52fbad5b  libstdc++-v3/testsuite/20_util/from_chars/1.cc
! 7bda9e4fd6acf2cab6c5d01cd1e7beae  libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc
! ed0b9b8d44bd50babd159e39c73d56c8  libstdc++-v3/testsuite/20_util/from_chars/2.cc
! 0f751722e869106f5ba2d4f9bdb3b287  libstdc++-v3/testsuite/20_util/from_chars/3.cc
! f486c9b195dacac5b11fab381dde9594  libstdc++-v3/testsuite/20_util/from_chars/4.cc
! ef5abd8bbcd6d223829560b4df403ae3  libstdc++-v3/testsuite/20_util/from_chars/5.cc
! 72fc72b38d8d729e54b0f05fcde1be3c  libstdc++-v3/testsuite/20_util/from_chars/6.cc
  33cb1fba3bfa8508f23e78bc210ae25d  libstdc++-v3/testsuite/20_util/from_chars/7.cc
! d04c232e2aadbbc415ceccd12bbac4e7  libstdc++-v3/testsuite/20_util/from_chars/8.cc
! 50ea47f395f5110569bbf0e4337c9ad2  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
! eb3c2efed35b5042d3343b0491eaff75  libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc
! 7035fb812db720ff48848c6ee9d9ccaa  libstdc++-v3/testsuite/20_util/from_chars/requirements.cc
  9d285bb541483e8561f9c95180031bde  libstdc++-v3/testsuite/20_util/from_chars/result.cc
! 4087fb5eb15cac87eaf186b8015f1fa8  libstdc++-v3/testsuite/20_util/function/1.cc
! e7de85ff8e2f27e812c3006715e285dd  libstdc++-v3/testsuite/20_util/function/10.cc
! fdd4eda1266c4559c3a79ea1a70af015  libstdc++-v3/testsuite/20_util/function/2.cc
! 3f7a850291160497613480d15d91e4ca  libstdc++-v3/testsuite/20_util/function/3.cc
! 938c7648a508307edfe25684a30cac81  libstdc++-v3/testsuite/20_util/function/4.cc
! 74c1f5f872d7c7665c5bb064dcce5c24  libstdc++-v3/testsuite/20_util/function/43397.cc
! 621c0edbac96a18648677853f6200a2b  libstdc++-v3/testsuite/20_util/function/48541.cc
! a8e1008fcd91cf6fa1631b8521a25ba7  libstdc++-v3/testsuite/20_util/function/5.cc
! c789ee8f3c626b003aaf5d386419a14b  libstdc++-v3/testsuite/20_util/function/58569.cc
! e2508d90f6f5b77f5d67723fc11cc576  libstdc++-v3/testsuite/20_util/function/6.cc
! 31f724e484a58a7567bb5cd0209c2307  libstdc++-v3/testsuite/20_util/function/60594.cc
! 14cd5c59c6c780683f0650044e9c2f08  libstdc++-v3/testsuite/20_util/function/63840.cc
! 66b8542bf1e51b7197c0a20c99aa50c8  libstdc++-v3/testsuite/20_util/function/65760.cc
! 037cd38b8e529ff26e02c733342e766f  libstdc++-v3/testsuite/20_util/function/68995.cc
! aa76029e047420492eafd26bc82d5a43  libstdc++-v3/testsuite/20_util/function/69222.cc
! f7d3bb7db405284e3eada41b932648d9  libstdc++-v3/testsuite/20_util/function/7.cc
! bb1f5e5c68a7652ff953b0e060b38209  libstdc++-v3/testsuite/20_util/function/77322.cc
! 3fb42101144d06cea98090e88760856b  libstdc++-v3/testsuite/20_util/function/8.cc
! ac771566473a96cf108738af36229856  libstdc++-v3/testsuite/20_util/function/9.cc
! 2ae84437845abb4e89bdfcb3f37dd6e7  libstdc++-v3/testsuite/20_util/function/91456.cc
! 32d47aa06fe7e3e7228419b84acb2ca1  libstdc++-v3/testsuite/20_util/function/assign/move.cc
! 8e836247f45b2e73be7cdfda2127ef4c  libstdc++-v3/testsuite/20_util/function/assign/move_target.cc
! 15acc36ec252e63493bd4ad7251e984d  libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc
! 1c983b9eab0bd721772079a91e336b00  libstdc++-v3/testsuite/20_util/function/cons/55320.cc
! 96fbc9c7b5a18ba3de4852fa2ecee3a7  libstdc++-v3/testsuite/20_util/function/cons/57465.cc
  a4c70ba76af9268062433ab3a3bff6cc  libstdc++-v3/testsuite/20_util/function/cons/70692.cc
! ff1235624845e08a203583e51575cd23  libstdc++-v3/testsuite/20_util/function/cons/72820.cc
! 884388e77827e79a3f3b8b2562cbedad  libstdc++-v3/testsuite/20_util/function/cons/addressof.cc
! 968e5f774b68dfa147674faed52bc59c  libstdc++-v3/testsuite/20_util/function/cons/callable.cc
! 7fa14d3c43c07c43aa1117b6d5c941eb  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
! 397be2d6a893db831c6ec3feeda7bb7d  libstdc++-v3/testsuite/20_util/function/cons/move.cc
! 323e2324caf9e35e2fb5842ee0fd1ade  libstdc++-v3/testsuite/20_util/function/cons/move_target.cc
  d2a67a46055d71f856a2cdceb8f3c448  libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc
! e082d43a3da643040dad98a4ae293a26  libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc
! fc86ec6f059340ad8c19a93b0671491a  libstdc++-v3/testsuite/20_util/function/cons/refqual.cc
! b4fd91e0d4e4170e0aa77b9444c1c035  libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc
! 83803c3beacc18395b0903b825b0a38b  libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc
! 98b8ce40d7b789f1dd421046b2dcbc62  libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc
! 918067979ad1332481c2205ac7dc8f68  libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc
! 46bfd47f126aadbc408992b8494651d1  libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc
! 934613f8f3ada29d61e506f84d74b218  libstdc++-v3/testsuite/20_util/function_objects/121782.cc
! b955fb1b4c4ca5466181dfddc6b5d027  libstdc++-v3/testsuite/20_util/function_objects/83607.cc
! 45c37578e5729b21c54503587212c1fa  libstdc++-v3/testsuite/20_util/function_objects/bind_back/1.cc
! a170197e1c15888e69e8f42454c4eb22  libstdc++-v3/testsuite/20_util/function_objects/bind_back/111327.cc
  2f63cd2255fde6cd4f014efb1ad34b27  libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
! dd2b6594a4fe51b51519aade50612fbf  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp.cc
! a41d567a9f64dcc981f9f9fab7c2aa14  libstdc++-v3/testsuite/20_util/function_objects/bind_back/nttp_neg.cc
! 72b5da3c7ab2df89d0b3e90eb2a0180d  libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
  b7e1e25aa8f6fddecd578ce1c23b63e2  libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
! cdc8350ee8a6650ca3c2245e507b77df  libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
  586c9c5a05cff6578318e5d46789f1c9  libstdc++-v3/testsuite/20_util/function_objects/bind_front/116038.cc
! 51deecde6f8727d1ab27a2f3d18fb008  libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
! bf65854332b1e48a28fe069d13f14dd3  libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
! 4f8762d794ee6c53c47de6b083d6a0db  libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
! f401903d92a7ab4576b40881d75f2b82  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp.cc
! 28e8e9561e8b06ee357778c9794a1e18  libstdc++-v3/testsuite/20_util/function_objects/bind_front/nttp_neg.cc
! 2348d945437bc8e07d335d69c056cd38  libstdc++-v3/testsuite/20_util/function_objects/binders/1.cc
! fc3396cbc8d7f562428fbfcea14d6a33  libstdc++-v3/testsuite/20_util/function_objects/binders/3113.cc
! c71f59c7e62122b160045e52ecca95be  libstdc++-v3/testsuite/20_util/function_objects/comparisons.cc
! 2bc44674d3b87755669990b7367d625d  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer.cc
! ecfb8c4b535e0bf09b4b70c183321205  libstdc++-v3/testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc
! ee8bbae5dcb14ad609406cee582380e1  libstdc++-v3/testsuite/20_util/function_objects/comparisons_void.cc
! 1d6f0179187e58dfac8ddfc5297156a7  libstdc++-v3/testsuite/20_util/function_objects/constexpr.cc
! 3b20afe7f77437720ebc48fb1efaa9de  libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
! 7ee49355eb1fadb69b01d4ca369dfa8a  libstdc++-v3/testsuite/20_util/function_objects/dr660.cc
! bfa2494e2b421b4a39ae53c07245a87e  libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
! 2345fba6318ed102b2091f9d7c512bad  libstdc++-v3/testsuite/20_util/function_objects/invoke/1.cc
! cde5b3494d1c6403f46e01a2bcab78ed  libstdc++-v3/testsuite/20_util/function_objects/invoke/2.cc
! 045b4e7e01e970bb6da67e0a402863c5  libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc
  16f1c3ae8b224a6acd214a0bbbfad3ca  libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
! ce945355df2ec2364e8f7fc8311d19de  libstdc++-v3/testsuite/20_util/function_objects/invoke/59768.cc
! 056639b4d31448be018536ac3dd94b81  libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
  db4aad8eee98e71f78ee6303282bff30  libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
! 7fba75425962d9aeefb5072f6c7d3c96  libstdc++-v3/testsuite/20_util/function_objects/invoke/ref_ext.cc
  51a8225eb82549eba5a4e7ef51a785c3  libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc
! 41f6f7d9f5cd9c7533f4ca256d2faf03  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55463.cc
! e78b5825d50f1eace5c04f74926e765d  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/55908.cc
! 31e86a9fc17f81b85941bb2765b61d5f  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/68982.cc
! 5834e95defd0a0bf6bc38529886a645d  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc
! 6fd8d8115bd1533170fa584f88a101b4  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc
! 5df7ce9d3428074c1f8a56814eda40ec  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
! 4ac60dd36059d7aa48be57c6796d4df5  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/forward.cc
! c602fbd903b6703cbf8b69a54e47db45  libstdc++-v3/testsuite/20_util/function_objects/mem_fn/refqual.cc
! 9cc540b88b5969789c44db42a5800323  libstdc++-v3/testsuite/20_util/function_objects/not_fn/1.cc
! e1808fcbf02f9a379da70178f1c3dee0  libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
! 853e9481926f67ce17b9aec2076277e2  libstdc++-v3/testsuite/20_util/function_objects/not_fn/87538.cc
! f23a1397c99285794646b325e755a728  libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
! 93973eb2b0b058ba2f9918668a0cb089  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp.cc
! 3410c0de8790ca4226e2476bce02a139  libstdc++-v3/testsuite/20_util/function_objects/not_fn/nttp_neg.cc
! e5ccaf5a6309a0cce460a0f74c59eeac  libstdc++-v3/testsuite/20_util/function_objects/not_fn/version.cc
! 8abb4134f6705d534160ad46fa850688  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
! 9bd783e438557ce8441d358fb48843f0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
! 7a9d74ef8f947f2ecebab003943bd9de  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
! 687c157a7c4aba24ea71e056aa8669ba  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
! 812e9794ad6ec9e0e0c3e5ef6044a1c3  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
! d88577d9e0474e43a939d6f77e084fc0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
! d86f0747545c10f31cd6319173d83b5e  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
! 1ba2bc9c63c405cabe299bd2a4a1618b  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! d3f286838c2e6cde9335959dc86d5375  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
! a14986e98d1dd97abc2ff044b76b6ec5  libstdc++-v3/testsuite/20_util/function_ref/call.cc
! d3fb86addcd2698986c24055a86ef525  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
! c13631fa982dd192af2bf8c125ad420c  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
! 6769087af53b9f703272c8bf23f3c862  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
! 653b07c8ea1777ba938ed74b08272334  libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc
! 9bb37c83ee96f3925ec94116da75e0a9  libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
! a80798784aec1c674f911d361ed75ef6  libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc
! 839b0c83e1a0bd5c0ee958739de5e6c7  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
! fe11d1f21c6bd06aa902315e0eb169b2  libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
! d98606abcb3c5938ecf7e2652a647a32  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
! 88f8f853b228275ceab6e1840a8a6f08  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
! 10a395803b3413c9edcd7427782ce060  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
! 255dd887346fe1c2d03e9843733faab3  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
! 3914cb98a6a92185f7a22cc970e68cd4  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/explicit_instantiation.cc
! 96293ce19cee484de683581749853d2c  libstdc++-v3/testsuite/20_util/has_virtual_destructor/requirements/typedefs.cc
! fe552b43cdf77380024bfd807c29dd4a  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
! 2d4e2f247124f40192c8e539acde0e6f  libstdc++-v3/testsuite/20_util/hash/52931.cc
! 8494aff40e43d6a65fa5d43450eede4a  libstdc++-v3/testsuite/20_util/hash/60970.cc
! 294d82fc905a3cb77b6f13f47bbdc711  libstdc++-v3/testsuite/20_util/hash/84998.cc
! f94aa55f905ba67cd4a66fdaab723efd  libstdc++-v3/testsuite/20_util/hash/89629.cc
! 3b530cb5340d0cb9d7de933edef8c5b6  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
! 817e04c2a84c041ca170909c39d25c97  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
! a25ea36f89ed39c73930e05e3a9562a1  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
! 0cecd96d1807f57c413e39dbfc5224c2  libstdc++-v3/testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc
! 3da2df06800baa8a8c11b97be1873102  libstdc++-v3/testsuite/20_util/hash/chi2_q_uniform_random.cc
! 39ec8104014c4ba9f395eb289e3ca843  libstdc++-v3/testsuite/20_util/hash/chi2_quality.h
! 79f1efa4269c4f1e7063de9fdf669464  libstdc++-v3/testsuite/20_util/hash/int128.cc
! a050d298eefb860061d4da5979c54b4b  libstdc++-v3/testsuite/20_util/hash/nullptr.cc
! faf90345ef260ebaa7fc3b052510c3ba  libstdc++-v3/testsuite/20_util/hash/operators/size_t.cc
! c016a366c076f667c4f6dff75f214809  libstdc++-v3/testsuite/20_util/hash/quality.cc
! 6e3244a5986a6084dc293e07c2814bd8  libstdc++-v3/testsuite/20_util/hash/requirements/explicit_instantiation.cc
! 62131e28c3b55c7b2eed1bb46beba780  libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc
! 82ae38f54087210ee5ca63c1cb5d148a  libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc
! 89f71cab166231825f638e7ccb37eab0  libstdc++-v3/testsuite/20_util/headers/cstring/functions_std.cc
! 4fd9be5cd0783faa409f2f8279ba9fc9  libstdc++-v3/testsuite/20_util/headers/cstring/macros.cc
! 8cdbc5ae968b115cf40e8bda01184ca7  libstdc++-v3/testsuite/20_util/headers/cstring/types_std.cc
! c3597e1acd3820f9ef47866a4c7a8099  libstdc++-v3/testsuite/20_util/headers/ctime/functions_std.cc
! e4dd666b35b19089e8c1de6a8c8dafea  libstdc++-v3/testsuite/20_util/headers/ctime/macros.cc
! 1077506400c687657ed3d7a5874f8271  libstdc++-v3/testsuite/20_util/headers/ctime/types_std.cc
! 07a44c8b76bbab53fe37400d42b1ef62  libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc
! 44c2b658ffae8a30bc5874c5bd74c6a9  libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc
! d3fda8554e561775cdde77acc2c9f112  libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc
  8b53fa85edafd52c50395631802734a2  libstdc++-v3/testsuite/20_util/headers/memory/114866.cc
! dec8436c44e1856e5e851de41d1bee20  libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc
! 9e37dc2352ba25724a839683e7c6e992  libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc
! 518bb04b0fe1b65e900aa188653b8180  libstdc++-v3/testsuite/20_util/headers/memory/version.cc
! e48ab738908fa7052b421918627e6cbb  libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc
! 4d22130511935814370be4401040c8f2  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc
! d3599d5c48e6f10964efe6f1309ccc34  libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc
  4639f197c1e25cc8d10d75f29c0030cc  libstdc++-v3/testsuite/20_util/headers/utility/ignore.cc
! 34a0e916ceca13607d8a9a9e203ab50d  libstdc++-v3/testsuite/20_util/headers/utility/synopsis.cc
! 571acb870c63f975f520c58b34b33dd3  libstdc++-v3/testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc
! 580fdc453c57db3a295149825d70e052  libstdc++-v3/testsuite/20_util/in_place/requirements.cc
! 207a45c84927080374b148d4944829a7  libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
! fdd520d43de25c8874c53ba397ce7673  libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
! 09208ccd599c1277e9f57227bf41b9bb  libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
! 1c4b64f5e1eedcebaf88f30ffea53d2e  libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
! 56d3ec9a125cd0d058136cd2791f0542  libstdc++-v3/testsuite/20_util/integer_comparisons/extended.cc
  23268839cfbf52c1337d5616e250b6ea  libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
! 6383705c8df135f6a74c55de3cb9fa7e  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
! e54bc533e226f75ad75b83d880fb3a38  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
! 5c233ccbb1730abfb2a523f39f1815a4  libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
! f9393a60f327832edb72023b27a2bc69  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
! 6119e7fbfb1cf56909e7826706a151b4  libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
! b5bab93b78e58144513c612548c56ad8  libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
! 55d6a7ce81f3f7557ce99329efaa3568  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
! 78bfea5787c7a1ec76a7ccea66d032d6  libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
! bd002783d2797ae2fe77637e6c9e78fb  libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
! 6128b0aba11a2bb7a4c141f264514d0c  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
! 1c4b64f5e1eedcebaf88f30ffea53d2e  libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
  01419816e55df10955ea47006b7fd41b  libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc
! 8c085de1706eed3dddd8146f71e5d402  libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc
  b299881c5f8a46c9954c9cfffbb15437  libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
! c1400d8b4ae4f8afba2ea1d6dcc3cd89  libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc
! 7bfe235a9cb3466ef89c9d3bb131d063  libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access.cc
! eb81cddbee2c9e7b41528f9e442c9931  libstdc++-v3/testsuite/20_util/integer_sequence/tuple_access_neg.cc
! 41e2e851dddbcba3986d1b2501e6b2d1  libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc
! cb402ab4d04ad8a42129fe8c1fd31beb  libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc
! 908f810db418242226e02776bf37b8fe  libstdc++-v3/testsuite/20_util/integral_constant/requirements/constexpr_data.cc
! 75f259f3633811f7307c883260dee374  libstdc++-v3/testsuite/20_util/integral_constant/requirements/explicit_instantiation.cc
! a8860f2084a9da6f2b05173ab205f532  libstdc++-v3/testsuite/20_util/integral_constant/requirements/typedefs.cc
! 4e5b66469c105fabcae936a57a982ef4  libstdc++-v3/testsuite/20_util/integral_constant/static_definition.cc
! 58475092d2a8dcd64342425fdd3eadd4  libstdc++-v3/testsuite/20_util/integral_constant/true_false_type_typedefs.cc
! 71aa02097a5f357fa58eb5ad1ff7bc5d  libstdc++-v3/testsuite/20_util/integral_constant/true_false_value.cc
! 513ea203f8d1a98188fd1d2654c354a1  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_args_neg.cc
! 5ebc7d6974c64939a419cca1398863ec  libstdc++-v3/testsuite/20_util/invoke_result/incomplete_neg.cc
! 7229dc0e89b7274487e0787f801ffd47  libstdc++-v3/testsuite/20_util/is_abstract/incomplete_neg.cc
! 60117295c2b36a24dc4f734127bcac73  libstdc++-v3/testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc
! e3e1d53b69446862dc187602b219df08  libstdc++-v3/testsuite/20_util/is_abstract/requirements/typedefs.cc
! 54094acfe6c5ab0f7b3966e4828e86b1  libstdc++-v3/testsuite/20_util/is_abstract/value.cc
! 18ae8abda8650c26a183e335649b560d  libstdc++-v3/testsuite/20_util/is_aggregate/incomplete_neg.cc
! fe2dc38f25a49cb8e4ecb4fb08b63f77  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc
! 88cae96ee5d5fc0598c968f6ad209414  libstdc++-v3/testsuite/20_util/is_aggregate/requirements/typedefs.cc
! 20b6a373d03babaf8589f4d39c821657  libstdc++-v3/testsuite/20_util/is_aggregate/value.cc
! 3bfe2669303c55ba99402e96f52922fe  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/explicit_instantiation.cc
! 4d2c72d997964a2f31d9264a2f35024e  libstdc++-v3/testsuite/20_util/is_arithmetic/requirements/typedefs.cc
! 58798086ff2d13e3924c6d3f666b3646  libstdc++-v3/testsuite/20_util/is_arithmetic/value.cc
! 436bee081006a4fe5de61f7e5569e901  libstdc++-v3/testsuite/20_util/is_array/requirements/explicit_instantiation.cc
! 3dd58edd21a2561f1ba7b4aa0f7941dc  libstdc++-v3/testsuite/20_util/is_array/requirements/typedefs.cc
! f9dccde1336fc87470867c677a391b7d  libstdc++-v3/testsuite/20_util/is_array/value.cc
  6768b922ca72460fc141a677fddef045  libstdc++-v3/testsuite/20_util/is_assignable/requirements/access.cc
! 0bc83077e41603c8571da42ebc7d79eb  libstdc++-v3/testsuite/20_util/is_assignable/requirements/explicit_instantiation.cc
! f4bcc00217861c30414e5f5abf0f262c  libstdc++-v3/testsuite/20_util/is_assignable/requirements/typedefs.cc
! db9be866896db839925c89f1e7df3a94  libstdc++-v3/testsuite/20_util/is_assignable/value.cc
! c55e721beb59bfe36d7d04d1cb2ff278  libstdc++-v3/testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc
! f45aa2183704fa8f1588300783127ff8  libstdc++-v3/testsuite/20_util/is_base_of/requirements/typedefs.cc
! 5f08f3f3ccdf02538d671fbd1af16c71  libstdc++-v3/testsuite/20_util/is_base_of/value.cc
! f7d4a200021e2840d8611bf103644a0b  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
! a0e17cc9ec92162e432e3925d44aa302  libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
! 4f964f1d621bfc040f154836bf333d2c  libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
! 6afca568a69b300f6b74abd49e166aab  libstdc++-v3/testsuite/20_util/is_class/requirements/explicit_instantiation.cc
! 13a8848a2e3017454b1c2c598ee95269  libstdc++-v3/testsuite/20_util/is_class/requirements/typedefs.cc
! 89d875266d1a3dbd37a14d87e6206106  libstdc++-v3/testsuite/20_util/is_class/value.cc
! 7a4a02904581f2f04f786a4fdc0985e1  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/120717.cc
! caa69d14992d2e5c66929cf8af23f190  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization.cc
! 3dbcceb1ee326d7c0cc3e58b843c8dda  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc
! d16a601722360acae23e60b917c025da  libstdc++-v3/testsuite/20_util/is_complete_or_unbounded/value.cc
! 78b34bea53ceb46f26e211107d1cceb6  libstdc++-v3/testsuite/20_util/is_compound/requirements/explicit_instantiation.cc
! dfc8af998d8e40e65fe427047774ec13  libstdc++-v3/testsuite/20_util/is_compound/requirements/typedefs.cc
! 88af5dbaee78b1223f7653a6511260d4  libstdc++-v3/testsuite/20_util/is_compound/value.cc
! eff3aec53990c6bfc2d6467b7f80b49d  libstdc++-v3/testsuite/20_util/is_const/requirements/explicit_instantiation.cc
! 4e62b959d955562c26264f786be61df8  libstdc++-v3/testsuite/20_util/is_const/requirements/typedefs.cc
! c830f82bd430ccc48fd8879bb6aab494  libstdc++-v3/testsuite/20_util/is_const/value.cc
! 8512866144ef7d6e0bdc360363b2e91b  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
! 07d5c1fbd55889a7b9d326cb29621fc3  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
! bd2945e4de0798dbc26bff03145c982f  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
! d2fd4eae55a898a976457f234a05c32b  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
! fe270ad1cd1ae86d6eb66bdc20372250  libstdc++-v3/testsuite/20_util/is_constructible/80812.cc
! 9784298322890babc008f6d4f19108c6  libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
! e1295404f434adbd6f3a12cc77250d5c  libstdc++-v3/testsuite/20_util/is_constructible/94003.cc
! 9bfb0b5b8cbf3da95e2119294856c703  libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc
! 2ac2e8af849f9310540d2067b46c5341  libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc
! 3816747f00890ec22ea8dabc23838d3b  libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc
! ee318011536809591f3414aa0b10e3a6  libstdc++-v3/testsuite/20_util/is_constructible/value.cc
  09d897b8e5e8f52ce748db0bdf75aa0e  libstdc++-v3/testsuite/20_util/is_convertible/requirements/access.cc
! ae08243c56d33b07d8ed85600de96926  libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc
! 107032d81025cf97eb3ed9f55faa5c30  libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc
! 54bdd61b5a3004e6c1fef4bd9e4df6c2  libstdc++-v3/testsuite/20_util/is_convertible/value.cc
! 7662c14e300553a5de38b2243737f0d0  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/explicit_instantiation.cc
! 0a0fc543a1664212b2254af5624f8887  libstdc++-v3/testsuite/20_util/is_copy_assignable/requirements/typedefs.cc
! 110701a0625f77f90debfda1e0ab8ca6  libstdc++-v3/testsuite/20_util/is_copy_assignable/value.cc
! a2bd5f124e54454d99d9edf56c3f65ed  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/explicit_instantiation.cc
! 100a9a80605645bafe779a8aa91eff3e  libstdc++-v3/testsuite/20_util/is_copy_constructible/requirements/typedefs.cc
! 50a8021a707a82164eb0913a57a0b77e  libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc
! c2ae70114f67fd3d99cf9071c4055537  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc
! d3337e44ac494141c882e843ae1982f2  libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc
! db27189b00d7f33d722f3bd600effb51  libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc
! b02057db3ef974528249b675fa3f39b0  libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc
! 1a9a21d2a5d27ac6123fb446ee9164ed  libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc
! 19ea76f7143a9a436f0eac44f23020d2  libstdc++-v3/testsuite/20_util/is_destructible/value.cc
! c6d6bf7cfec923b0dfb5e782864e9fb5  libstdc++-v3/testsuite/20_util/is_empty/incomplete_neg.cc
! a1301d2cabb55b89b4ce6ed003c31ac6  libstdc++-v3/testsuite/20_util/is_empty/requirements/explicit_instantiation.cc
! b1a592c3ccf768f5406b07bc902ab97e  libstdc++-v3/testsuite/20_util/is_empty/requirements/typedefs.cc
! b021ca524229c6c84b1664371c516f8b  libstdc++-v3/testsuite/20_util/is_empty/value.cc
! 742908d62117493baaf1297cdfa79228  libstdc++-v3/testsuite/20_util/is_enum/requirements/explicit_instantiation.cc
! 6d558edfbe96f4d823baab6211bcff18  libstdc++-v3/testsuite/20_util/is_enum/requirements/typedefs.cc
! 821f49a6f0c2c6ac6778d26ffbb15d57  libstdc++-v3/testsuite/20_util/is_enum/value.cc
! f1609054da50fb352a357ba76a5e0478  libstdc++-v3/testsuite/20_util/is_final/incomplete_neg.cc
! a106a05b32dce6403f8a1e249bdd9398  libstdc++-v3/testsuite/20_util/is_final/requirements/explicit_instantiation.cc
! 612f531e114e94826e8765e530ff6583  libstdc++-v3/testsuite/20_util/is_final/requirements/typedefs.cc
! 72afa9ab1eebf02dd7ea452632fa352a  libstdc++-v3/testsuite/20_util/is_final/value.cc
! 9cb4e1c0ca1b8d1bc073dea5da207d8c  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/explicit_instantiation.cc
! a23137b41669cac5c2b883e32328a863  libstdc++-v3/testsuite/20_util/is_floating_point/requirements/typedefs.cc
! f4b93d6043c35aed14b47f8a85738258  libstdc++-v3/testsuite/20_util/is_floating_point/value.cc
! 8c8f50ec3acc92d159305612bc4cd091  libstdc++-v3/testsuite/20_util/is_function/24808.cc
! 3953eb31b8e1ad7af36260a48653e955  libstdc++-v3/testsuite/20_util/is_function/35637.cc
! e979314c2c748e0985967319eea917f8  libstdc++-v3/testsuite/20_util/is_function/91371.cc
! 0797f3621f42893c8a7c7504b1d54b46  libstdc++-v3/testsuite/20_util/is_function/requirements/explicit_instantiation.cc
! 8a4557aa51e17f7586a233377162d76f  libstdc++-v3/testsuite/20_util/is_function/requirements/typedefs.cc
! 2ade9bd06a2187f9646176efee6db4a8  libstdc++-v3/testsuite/20_util/is_function/value.cc
! b5529b3c5c1e11ddefb3c75a899c8e3d  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/explicit_instantiation.cc
! 95164f9c8f93faa45b4fe085440ccdd0  libstdc++-v3/testsuite/20_util/is_fundamental/requirements/typedefs.cc
! 1a8146fd50477dc3435c99148f4a32f6  libstdc++-v3/testsuite/20_util/is_fundamental/value.cc
! 4c4702bcb83e1a468b0f52fd94832854  libstdc++-v3/testsuite/20_util/is_implicit_lifetime/value.cc
! 5bc523f4519cc78106d36fbe8fe83cdf  libstdc++-v3/testsuite/20_util/is_implicit_lifetime/version.cc
! 1946cd87bc6d02c3ef5eb8ef7496b394  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc
! 03418c056a70bd750ef62296510c318e  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc
! 837f99bf3edfa49b2a79b7560a7a7e5d  libstdc++-v3/testsuite/20_util/is_implicitly_default_constructible/value.cc
! ee4016b30e74edd0d9bd79df1f344328  libstdc++-v3/testsuite/20_util/is_integral/requirements/explicit_instantiation.cc
! ac8573e478d8669e0824dda1104611ec  libstdc++-v3/testsuite/20_util/is_integral/requirements/typedefs.cc
! 57afbb87c4632e1affb7668457a332f2  libstdc++-v3/testsuite/20_util/is_integral/value.cc
! f4b107fdebe07d8b54f72e24a4ece091  libstdc++-v3/testsuite/20_util/is_invocable/83395.cc
! dcb20a0fc537c1c0292b2e9b634d6015  libstdc++-v3/testsuite/20_util/is_invocable/91456.cc
  15e39483dc403920d82c01777fcbfd43  libstdc++-v3/testsuite/20_util/is_invocable/dangling_ref.cc
! e6820c5d5fa502ebeae20b72769b5b94  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_args_neg.cc
! ce00fda069e5201ab8f197fe4c49a701  libstdc++-v3/testsuite/20_util/is_invocable/incomplete_neg.cc
! 7c7d0ef5a416a8fcf898264792340224  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc
! e1f79fd08935bdd4f5e2c45ce6e0d221  libstdc++-v3/testsuite/20_util/is_invocable/requirements/explicit_instantiation_ext.cc
! 86fe004a24d36544853e8e12e5f763bc  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs.cc
! 7b58a739c6da3d2c52d8d46a8d162771  libstdc++-v3/testsuite/20_util/is_invocable/requirements/typedefs_ext.cc
! a38a33217d61314b8472aa9efc53c6ae  libstdc++-v3/testsuite/20_util/is_invocable/value.cc
! b72cbc46ac577e998d4d7bb19231809b  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
! ec3c83a3c053be8160c8cc4ec326d0cd  libstdc++-v3/testsuite/20_util/is_literal_type/deprecated-1z.cc
! 531c26a73f50fae23924868bf5f86afa  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
! 14468b46c03d57bfc50de25e53810cf9  libstdc++-v3/testsuite/20_util/is_literal_type/requirements/typedefs.cc
! d26d7f452cb15ea66a2ad9c38e31e5d6  libstdc++-v3/testsuite/20_util/is_literal_type/value.cc
! 41f80628b110f9aca40087ef6e258bec  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/explicit_instantiation.cc
! 0e2db98f9a43255cd422a29876ea4807  libstdc++-v3/testsuite/20_util/is_lvalue_reference/requirements/typedefs.cc
! 0b1dcdb440bb72a3e8dfe8b484593fb9  libstdc++-v3/testsuite/20_util/is_lvalue_reference/value.cc
! 37031e000851b4754b81be99dcf9596f  libstdc++-v3/testsuite/20_util/is_member_function_pointer/91371.cc
! 8f70eef8e7feb2fbaaefadf21de0e75f  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/explicit_instantiation.cc
! 6df3664890e8b94efe59aef125e967de  libstdc++-v3/testsuite/20_util/is_member_function_pointer/requirements/typedefs.cc
! 3feb370a7b673c75842d01c22b8a4cec  libstdc++-v3/testsuite/20_util/is_member_function_pointer/value.cc
! 0f7c79f2fe062f5c1b3bf1e2c06b8000  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/explicit_instantiation.cc
! 700cb87f138e1c0dc03fed1f3c49aa56  libstdc++-v3/testsuite/20_util/is_member_object_pointer/requirements/typedefs.cc
! ff6c35c9f8ca3f5b8c74ed8ac10a93bc  libstdc++-v3/testsuite/20_util/is_member_object_pointer/value.cc
! 584925deb16b45690e39ae99aa178b34  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/explicit_instantiation.cc
! 337f1d21b104fe1eded75a4fa65bdb00  libstdc++-v3/testsuite/20_util/is_member_pointer/requirements/typedefs.cc
! 1ed698f92280f8826683dc4c0c09b27d  libstdc++-v3/testsuite/20_util/is_member_pointer/value.cc
! def45ef965c5adf6af1e066005f3c767  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/explicit_instantiation.cc
! 8cb7a4a7872d3d9d508916da8b6e1d46  libstdc++-v3/testsuite/20_util/is_move_assignable/requirements/typedefs.cc
! 5880828328c649844b1ede48fc6dbdf2  libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc
! 9636684eb20c697d4c3623517c23fa99  libstdc++-v3/testsuite/20_util/is_move_constructible/incomplete_neg.cc
! fb7f5fc1a69c283b1f82e38e24c314c2  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/explicit_instantiation.cc
! d5c4a76d4a7a26863b6849d010387858  libstdc++-v3/testsuite/20_util/is_move_constructible/requirements/typedefs.cc
! fde634088688369fb44a5b9d6b5e64e1  libstdc++-v3/testsuite/20_util/is_move_constructible/value.cc
! ca1e2b3b8ace6f1727ca1ed9f8338258  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/explicit_instantiation.cc
! 53dac5d182038ec4a487e4e0babdb5d8  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc
! 577a68cf157cf0a78de89f2b3d7b4452  libstdc++-v3/testsuite/20_util/is_nothrow_assignable/value.cc
! 7dbb73bca50bf8b0bf4f4241711d1896  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/94003.cc
! f793b57ff2099321c21f064e99a66a79  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/explicit_instantiation.cc
! d7e1425b9ea82d1d83e04f9645714c88  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/requirements/typedefs.cc
! 9b9a192643ecc8859a440b9b2cca5622  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value.cc
! 05703f4bd0e64b3c564f62cd404cd6a2  libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
! 964362e2b253b9f8c05d728aa0afdd02  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
! 82d75bec923976dfacb8626b74eb61fb  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
! 0540a6564a6219d6079473a723e01c9a  libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
! db8b007ec7caf779097ade10626a07c0  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc
! fd0d8be5bb0967756e9e8f6d63bcc91e  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc
! 54f2b1fb712a0f3cb4c7320762ca4e8b  libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc
! 598072b56d55547c9508a5a83a3753b5  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/explicit_instantiation.cc
! 0fe1e185eb5b0eb11d2f8a5d7d17e824  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/requirements/typedefs.cc
! 71d59e9f31c03656f938a8e27548717d  libstdc++-v3/testsuite/20_util/is_nothrow_copy_constructible/value.cc
! 47525f693244ef0f0016f44b32724578  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/explicit_instantiation.cc
! 2daf8e29bf5eb581cc4d4d70d4909f04  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/requirements/typedefs.cc
! 9fafa136eb7204f5cf0a0bfc9af49d7a  libstdc++-v3/testsuite/20_util/is_nothrow_default_constructible/value.cc
! 3639a82ca9dcbaf6c08bcc1865a04c0a  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/explicit_instantiation.cc
! fe8ad93d98da4c45ecffd9dbe6af6e22  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc
! 0a711010720d0ff6d5d9f294046efe4d  libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc
! 55b5030a1f74cd6022c78d6be85c345a  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc
! f1a16b2893df2d774fa3b6ef71678976  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc
! fa6a0020d9c74265d1790ad54ed4a0c0  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc
! f294534fc0ec05ee47f30df76157a310  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc
! a5fe2722bf48bbe88f8738b83180acaf  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc
! a4f6e3362f653167758f8c51a1514186  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc
! 7660dd043eb96595e55afabb21c01400  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc
! 4ff4ea5e912bf279d5a0b8978de9a56b  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc
! 0986e4a88a5f07bc1d57df40167105ce  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc
! 8683181ed69d8db9e17039879c80b402  libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc
! 8594048b46b733cae7c79658870616c4  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/incomplete_neg.cc
! 96b3d52bce8cab35b6c2a710afb0cd41  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc
! 0a0b0286d64eee99b2e6f65d8d95e9af  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc
! 4cb98c91f10b280205f3146c4c8262f2  libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/value.cc
! c556e9624d7a92a5591100fce2bda37c  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/explicit_instantiation.cc
! ed07f59873a2c2ec6d571d62839e043a  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/requirements/typedefs.cc
! 643598fe139b5c0ae3e3fdff63030aa9  libstdc++-v3/testsuite/20_util/is_nothrow_move_constructible/value.cc
! 41ac1018f2ffc5fc87716fce8525e138  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc
! 80d0cbf78248e54786921ca3eed41b10  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc
! e797467af6cf8e59c74b3f0b72015d7f  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation_ext.cc
! c70545eac4f11109b01e38afd15e6100  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc
! 130f1624c0de39732fb566ed9baec6a7  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc
! b4899aade5d1c845c013d03be6e77ae0  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc
! 211ff9c9d05f024d8825df6b9bd83049  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h
! 57b8a5179aa3eee9c53c9778b2cd29c9  libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value_ext.cc
! 9813bb6f6b47a64859c71eb38fe5dbfe  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc
! 59e71e37c972be4f1c64aba34463b16e  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc
! df4d5f2a7b0cd86234b4e71f160880e4  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc
! 0e000690849313cc9c7ea56f9dc925cc  libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc
! 305ec37377de8086078a650325918f45  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/explicit_instantiation.cc
! 57ff5ed83a0664a106e6951179a77993  libstdc++-v3/testsuite/20_util/is_null_pointer/requirements/typedefs.cc
! 2588be048cac68133c47a34711b33878  libstdc++-v3/testsuite/20_util/is_null_pointer/value.cc
! 941a5f9f5bea1c8a445b76d5583945d6  libstdc++-v3/testsuite/20_util/is_object/24808.cc
! fce3a0ed7dc8dc68746a23c8649a7c7a  libstdc++-v3/testsuite/20_util/is_object/91371.cc
! c849b7dec19a2e1322717e20138b1dbf  libstdc++-v3/testsuite/20_util/is_object/requirements/explicit_instantiation.cc
! 4cb592058e509dd39d1d82be4dec7245  libstdc++-v3/testsuite/20_util/is_object/requirements/typedefs.cc
! 4b7e6e63ab35d790240fad17d0d6725b  libstdc++-v3/testsuite/20_util/is_object/value.cc
! 65c7fa1456f110e7de7a16fd4ff44004  libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
! 8a3da95a924e8e96e64da2bb4fe744ed  libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
! 33eb1ba958f8cf05b5182bb5b62c4c9e  libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
! d2ae6cf333609d8b2883fa16b805ad20  libstdc++-v3/testsuite/20_util/is_pod/value.cc
! 36865664fd552514aa36689ca8a47dae  libstdc++-v3/testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
! 741f96ba55d454e1b23ccb1a6eaef4fb  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
! 18788bf7ead84ac99a8801d83bef955c  libstdc++-v3/testsuite/20_util/is_polymorphic/incomplete_neg.cc
! bcc5dd4d3ad8efc617c688a8514b20a9  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/explicit_instantiation.cc
! 9c6849228c24648ba477bb05d4ef0238  libstdc++-v3/testsuite/20_util/is_polymorphic/requirements/typedefs.cc
! 1cdd1dc7ae69cc95b4c42c7c7c3363a3  libstdc++-v3/testsuite/20_util/is_polymorphic/value.cc
! 9dce84a8af58156dc86b7aac27b3e567  libstdc++-v3/testsuite/20_util/is_reference/requirements/explicit_instantiation.cc
! 76806791ec2fcac40a8ac8c78cb0f40f  libstdc++-v3/testsuite/20_util/is_reference/requirements/typedefs.cc
! fe496498c2089342f6b554a3a1327840  libstdc++-v3/testsuite/20_util/is_reference/value.cc
! ae5f1246833937e60afd0110ad00bf39  libstdc++-v3/testsuite/20_util/is_reflection/requirements/explicit_instantiation.cc
! 1727c6519417e3e040827cd8a14b95ee  libstdc++-v3/testsuite/20_util/is_reflection/requirements/typedefs.cc
! 883083a63fd637f64f79b4dd3e63d004  libstdc++-v3/testsuite/20_util/is_reflection/value.cc
! 323da33a7f515df7b35219b544f6bcbe  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/explicit_instantiation.cc
! d111b68444cde568124d67b51b586979  libstdc++-v3/testsuite/20_util/is_rvalue_reference/requirements/typedefs.cc
! 058ff687e1105c56bdfa2cd6c5ba6c57  libstdc++-v3/testsuite/20_util/is_rvalue_reference/value.cc
! 9ba656f8ceda053f0201a354abdbaefa  libstdc++-v3/testsuite/20_util/is_same/requirements/explicit_instantiation.cc
! b2273491bd22247248a711d8f700bcf2  libstdc++-v3/testsuite/20_util/is_same/requirements/typedefs.cc
! c0ec0f64f5a864172cf5eeda80615077  libstdc++-v3/testsuite/20_util/is_same/value.cc
! e6c5d0cc0219d9a9d17c3d3288ea6ce3  libstdc++-v3/testsuite/20_util/is_scalar/requirements/explicit_instantiation.cc
! d67714c56af9f7a35ea78cd9b530e400  libstdc++-v3/testsuite/20_util/is_scalar/requirements/typedefs.cc
! 110d690ca94891d8b20dd0a579ac110d  libstdc++-v3/testsuite/20_util/is_scalar/value.cc
! 6547a833323033c2ffbdbc3b54e5f2ca  libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
! 8f2f73c1706398daec9750f9e172a223  libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
! 2acda8252bf35e99df95e3eabfb6c38b  libstdc++-v3/testsuite/20_util/is_signed/requirements/explicit_instantiation.cc
! 0bbbdcee20d289d8f49d4160f38714cd  libstdc++-v3/testsuite/20_util/is_signed/requirements/typedefs.cc
! ffd0bd27c352da3f15e8cc2b26614380  libstdc++-v3/testsuite/20_util/is_signed/value.cc
! f7e36be0954d2449fb85d77a90ffcc7f  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/explicit_instantiation.cc
! ad17226ccabf7e05bde7f57bb10ee6a7  libstdc++-v3/testsuite/20_util/is_standard_layout/requiremenents/typedefs.cc
! 5e0189c3b71c76701899248e37b67493  libstdc++-v3/testsuite/20_util/is_standard_layout/value.cc
! f1195c73da0b652318f0ba362362c771  libstdc++-v3/testsuite/20_util/is_structural/requirements/explicit_instantiation.cc
! 34c5353245d0d7de4861cb9893a9c59b  libstdc++-v3/testsuite/20_util/is_structural/requirements/typedefs.cc
! 4af1ff72cda61d009a9d4ecdf331fbda  libstdc++-v3/testsuite/20_util/is_structural/value.cc
! 88c961bf35cfbbbf3d552b98b6b29bbc  libstdc++-v3/testsuite/20_util/is_sufficiently_aligned/1.cc
! 48a65c08109f9a1860fe0d977525fc20  libstdc++-v3/testsuite/20_util/is_sufficiently_aligned/2_neg.cc
! 3495a60d89ca47a16a0bc4872ca8f089  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc
! 8fb25c26b0d4d1df1faa3ef1a5475d4e  libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation_ext.cc
! d3befd53d7d64b15569272df6ffe3440  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc
! 9978277c8c6baad69157f80da836480d  libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs_ext.cc
! f498dcd3004a8d83040a68ae5717e138  libstdc++-v3/testsuite/20_util/is_swappable/value.cc
! 10a2945e5ed76d2405cf071f39975c52  libstdc++-v3/testsuite/20_util/is_swappable/value.h
! 9b7463944b457ae6c06538520962bf2a  libstdc++-v3/testsuite/20_util/is_swappable/value_ext.cc
! 7c7e6c7a5e0f7cdafaff0acb8ba5d9b1  libstdc++-v3/testsuite/20_util/is_swappable_with/incomplete_neg.cc
! 8c51035e433c249b456410cb05c1ba83  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc
! 80cd626dd3109aba2bd18a618be38c39  libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc
! b288a80700d7ab6766d6f08e68ac013e  libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc
! e571322dca978dd33f934de89bc88622  libstdc++-v3/testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc
! 2f702fff6ed505eb9799f4ef9a12bea2  libstdc++-v3/testsuite/20_util/is_trivial/requirements/typedefs.cc
! 75dfbab66f1bd85adcf0166c43475348  libstdc++-v3/testsuite/20_util/is_trivial/value.cc
! 514fc9e4bdc536c33bbdc40a8c132649  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/explicit_instantiation.cc
! 50fe3fecb312d4fe9602df0ec450134a  libstdc++-v3/testsuite/20_util/is_trivially_assignable/requirements/typedefs.cc
! ca1a549893e82e448a66bcf3c69ac139  libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc
! c8fc7d251912ecc7a4f20e4b33a659d2  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc
! 1d0162cb6fb9bb9dc0b912b19288f739  libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc
! d0244b905e53eaa05a27e4abbceb15f1  libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc
! f4173974a863df22bb4a63e794c9c3d5  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc
! 798ab36c171560009d0bdf12ad18d4c5  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc
! 3381567bbe3e70353766217be2a3460c  libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc
! 7f0b0576b243fd4d9c8664f3836c1fa7  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/explicit_instantiation.cc
! 12cef9d94c224d2d059d8c4ab055242a  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/requirements/typedefs.cc
! 49343b3da4e5d62b773cd3f390bd1e86  libstdc++-v3/testsuite/20_util/is_trivially_copy_constructible/value.cc
! e55dd4e0b6e6f0879090ff319c27f049  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/explicit_instantiation.cc
! 3abd7fc1113388b3464e614f8b853909  libstdc++-v3/testsuite/20_util/is_trivially_copyable/requirements/typedefs.cc
! 101306a397049f2ae393b4bbf2b082fc  libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc
! 2b3f7c0f2ca8fe876427975b9df08e30  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc
! 57305a995547b642e9a14e9374f889e3  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc
! b97bfd4f35e3fb11d274afd61b1d7026  libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc
! 54183dcad5daf1d14665311d5133b4c7  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc
! 34b73160099dbb1a35d44cac3e237e1f  libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc
! df0442a393f82892ab2897f3c34fa8e2  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc
  7713786ec02e2fd53bdb2116cbfdc65e  libstdc++-v3/testsuite/20_util/is_trivially_destructible/value_v.cc
! 02c20ce50f1161d87e141950987ec173  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/explicit_instantiation.cc
! af330ee26d36f2426db484d817b76670  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/requirements/typedefs.cc
! a9afe458e9fad26e94633667e30f5fd5  libstdc++-v3/testsuite/20_util/is_trivially_move_assignable/value.cc
! 789e188f72f9a291f14c402ecf418880  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/explicit_instantiation.cc
! 5a160be579cb69bc7c23a1d308fad7df  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/requirements/typedefs.cc
! 85af590686365f8e90caebea743d140f  libstdc++-v3/testsuite/20_util/is_trivially_move_constructible/value.cc
! bcde690917d7f4cf4e467408de2e7881  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
! a0e17cc9ec92162e432e3925d44aa302  libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
! f5850dd0364d1caebffff1f8228ced3c  libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
! 6029f493241b9c2e49a1aead43c0960a  libstdc++-v3/testsuite/20_util/is_union/requirements/explicit_instantiation.cc
! 38fc418bd18b5210de1e2eebf4c58bcd  libstdc++-v3/testsuite/20_util/is_union/requirements/typedefs.cc
! 88285368c40e6910623c96e7778cff8a  libstdc++-v3/testsuite/20_util/is_union/value.cc
! bff35d1621f1a3c6fabb7fc588d3d1d6  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/explicit_instantiation.cc
! e9811c4f4c45e6142a9337af83df3c30  libstdc++-v3/testsuite/20_util/is_unsigned/requirements/typedefs.cc
! 0d38d33f97f97f4f4c2b2c93db2a5189  libstdc++-v3/testsuite/20_util/is_unsigned/value.cc
  bd694936766b5779ed96d3b486cf3bec  libstdc++-v3/testsuite/20_util/is_virtual_base_of/value.cc
! e54a2097ecde2de6e2b578c52ce3e5cb  libstdc++-v3/testsuite/20_util/is_void/requirements/explicit_instantiation.cc
! 24257e23832cd0fecb1d106bcac1171e  libstdc++-v3/testsuite/20_util/is_void/requirements/typedefs.cc
! 3f402beaf53b703a98464d5aeb777661  libstdc++-v3/testsuite/20_util/is_void/value.cc
! 4ed5612a0d07b9fe036e1bd684d71c2b  libstdc++-v3/testsuite/20_util/is_volatile/requirements/explicit_instantiation.cc
! f43727f9be40ef5941884895ddf6762e  libstdc++-v3/testsuite/20_util/is_volatile/requirements/typedefs.cc
! 79419fb680229ecab8ab702b43157525  libstdc++-v3/testsuite/20_util/is_volatile/value.cc
! df30e4094eabc8e86f1916859ae01f75  libstdc++-v3/testsuite/20_util/logical_traits/83134.cc
  6f771d4e7b8b937d187f18a61f28fd4a  libstdc++-v3/testsuite/20_util/logical_traits/requirements/base_classes.cc
! 475d1a935f251e1f35ba3e0c52cd1dd1  libstdc++-v3/testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc
  119b399190409df0e8ccdcf9b10c3e35  libstdc++-v3/testsuite/20_util/logical_traits/requirements/short_circuit.cc
! 78a562594f3bb45a711feb222332b96b  libstdc++-v3/testsuite/20_util/logical_traits/requirements/typedefs.cc
! d2666ca5d1c3d484258c2d24c03881ec  libstdc++-v3/testsuite/20_util/logical_traits/value.cc
! 587b4d221531975054360631d06dbed0  libstdc++-v3/testsuite/20_util/make_signed/requirements/alias_decl.cc
! 75074df4df7bf27c55353c89f89ec8f8  libstdc++-v3/testsuite/20_util/make_signed/requirements/explicit_instantiation.cc
! ecf323d91fb6620fb77546b07bb165ee  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
! be5c849a1f6ee201c5870d53690379d0  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
! 7012425d6a057d5c1dfed6716a13bb4e  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-3.cc
! 6f28298e69f607b730b933e1f72a3d3e  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-4.cc
! 15c9eaaa7d1818288120eb6ad21588bd  libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
  8f0db74dad9a1b305718ac6e066eedf2  libstdc++-v3/testsuite/20_util/make_signed/requirements/uninstantiated.cc
! e46d298e41cbeae2223f6f90e323bdf3  libstdc++-v3/testsuite/20_util/make_unsigned/int128.cc
! 4ec6b8aba01ccde34ee3f1641c117201  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/alias_decl.cc
! 72ac0d5ed69a0f6e9f59eb7c690b265b  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/explicit_instantiation.cc
! 8eaa2bcda66fdfa36f0f0b4ac665f217  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
! 0dbee23977bc07ca5ce4b2d1794c966b  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc
! ba4215de297ed8c2024f0ecfd650818d  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-3.cc
! a39b09f44c19e6524253503984b32cb5  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
  a8e73ef02c8dd2e09fa65d0cba094035  libstdc++-v3/testsuite/20_util/make_unsigned/requirements/uninstantiated.cc
! 915e9c95ad1cd4ca59e38cafba8c2409  libstdc++-v3/testsuite/20_util/memory_resource/1.cc
! 3bed703c48f003fe753b4a32035e7aa7  libstdc++-v3/testsuite/20_util/memory_resource/2.cc
  329298ddd8f910ec9295c7b2137034d9  libstdc++-v3/testsuite/20_util/monostate/requirements.cc
! 4cc2be0b3b2423b277c6fd0ff46950f1  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc
! 53eaa7f00040499f9e8fdc0a8058b06c  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc
! b84e8dfd815f24d7e81d292ecc441c2f  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
! 71680d7b6edd6ed1f9fa4d36d3d9db99  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc
! a89ef8bb3a76088f64e427fc2b08a255  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc
! 41d3a0f9b4fc1fb4d5239cd697ad0aef  libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc
! 80a7e6529626fbcea466d2c590774d75  libstdc++-v3/testsuite/20_util/move/1.cc
! 43cfd2fb9fc93fa26cea8d3a310620ed  libstdc++-v3/testsuite/20_util/move/requirements/explicit_instantiation.cc
! 2b8b0326265e361b4581aae06d2d3080  libstdc++-v3/testsuite/20_util/move_if_noexcept/1.cc
! 6cade844b160f0e85679da85b2a71c05  libstdc++-v3/testsuite/20_util/move_if_noexcept/constexpr.cc
! 53120f36be2eac5ea3f52623bb9c9098  libstdc++-v3/testsuite/20_util/move_if_noexcept/requirements/explicit_instantiation.cc
! 6fc33239d77a00db64ea7af7b940228a  libstdc++-v3/testsuite/20_util/move_only_function/call.cc
  a3d46eda1cd19ee59590b7e89ae8f69e  libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
! 481a7ae1c6272ea9f31ce6b72c951deb  libstdc++-v3/testsuite/20_util/move_only_function/conv.cc
! 6d0ef91fda28c1d7c858259ba2222847  libstdc++-v3/testsuite/20_util/move_only_function/incomplete_neg.cc
! c1251c13c980f553cec1234149e46952  libstdc++-v3/testsuite/20_util/move_only_function/move.cc
  cf58b13b168563fa8fea60315876bccb  libstdc++-v3/testsuite/20_util/move_only_function/version.cc
! 1dc143cdd4018578f7295836a891a119  libstdc++-v3/testsuite/20_util/nonesuch/nonesuch.cc
! 5e00700c6ee001ed2e821755ae015b4d  libstdc++-v3/testsuite/20_util/optional/77288.cc
  f669af40876c317318f47db8330b7058  libstdc++-v3/testsuite/20_util/optional/84601.cc
! 0c3474368ac02ac7de13d2fc0b10a130  libstdc++-v3/testsuite/20_util/optional/assignment/1.cc
  5f2a36dc053d6d68a81135df84e7f4cb  libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc
! f73f6de5ad9bd372bb6859a8945d7c5b  libstdc++-v3/testsuite/20_util/optional/assignment/2.cc
! ee5458c880c426e5ad49a1e4a06eb4ad  libstdc++-v3/testsuite/20_util/optional/assignment/3.cc
! 598d5584acd9c77b6a322671a497cb83  libstdc++-v3/testsuite/20_util/optional/assignment/4.cc
! cec9943b755faf35f5960587e7ff37bd  libstdc++-v3/testsuite/20_util/optional/assignment/5.cc
! 8a1041d3848806771c7d3756e8a97ecf  libstdc++-v3/testsuite/20_util/optional/assignment/6.cc
! 9b17e49964f6bd7884c15e9988187b96  libstdc++-v3/testsuite/20_util/optional/assignment/7.cc
! 1719d432d0a59bd27d558e68a52f0106  libstdc++-v3/testsuite/20_util/optional/assignment/8.cc
! a4089824e79f3621c3ae449389cf678e  libstdc++-v3/testsuite/20_util/optional/assignment/9.cc
! e3a9a5254a1e75111f3c8c1b8b96885a  libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
! a5e148ea48be9e399fb601545904125f  libstdc++-v3/testsuite/20_util/optional/assignment/noexcept.cc
! 36c074a6884c0711e27b4f883516e52a  libstdc++-v3/testsuite/20_util/optional/bad_access.cc
  57fac572ed4307c44ed58afe60e02f29  libstdc++-v3/testsuite/20_util/optional/cons/117858.cc
! 1990b826c680e867b4b84a8b7abde366  libstdc++-v3/testsuite/20_util/optional/cons/77727.cc
! 35c51783f30aacb8f2968080bd81890f  libstdc++-v3/testsuite/20_util/optional/cons/85642.cc
! 4658d23423aa4571bbf7791e1a496c1f  libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
! f66d3eb7b8727e045a6fc85bfc2c98f5  libstdc++-v3/testsuite/20_util/optional/cons/copy.cc
! 255224e3eacd33bccf3ac88b4e6207d4  libstdc++-v3/testsuite/20_util/optional/cons/deduction.cc
! 705b443252efc19658360716b9ff42af  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
! a9796d4b3ac5d729833e0498453d6243  libstdc++-v3/testsuite/20_util/optional/cons/move.cc
! 5a82df96ed556ae973350f3754ed2359  libstdc++-v3/testsuite/20_util/optional/cons/noexcept.cc
! 9ba133981953c962fb1fcd5bb731614d  libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc
! 1542bbeb4d4876bd3309c16534687ce5  libstdc++-v3/testsuite/20_util/optional/cons/value.cc
! 84460611236dc416c6d0c78c15aa346c  libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc
! bcb5879510725c2f266358a502eb988e  libstdc++-v3/testsuite/20_util/optional/constexpr/124910.cc
  bdaab2c7a277b9ab7e3419b9414abbd3  libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
  c90cd072fff0310ee397532e79baeb6c  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
! 0b27c9f88f4036573454e8531038b4ee  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc
! 961faeeb7820da085038d8369ec50038  libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc
! 656f95183731d99e2f91555800ebe828  libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc
! 958c56e54aacfff973483f2b1bf3875d  libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc
  d892473bccf7714d4d0029f52c64922a  libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
! 9b70029a6af3e6999b144aaf659b0f38  libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc
! 713165b3e3422ca84f79b5b86de3a267  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc
! e513cf5bf0ce92f8c6c58634ebd21f06  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc
! 0e6396f7a4523b2fa6d2daa416ddd221  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc
! 20539068cfe953f283507e3eb47397bf  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc
! bc8cc300c9e5aef40c8e21bdc45ddb0c  libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc
! 2f4da979df5f82588e5feb58ebc3ac7c  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc
! 50b273a2d977935fdba202922b5df92e  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc
! d0d3675e2a92dd28ac0464d50fdcb869  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/3.cc
! ae4cdbb5757fd0256a052290b77cdef3  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc
! 60b45b14486f90d2f7e4097fb3012540  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc
! 27390d914ba8b5422990136f18825b4a  libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc
  9245416041a04e7eab9f7bb25bdaeec7  libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
! a3ada88af9c4ca58ca0eaa9f6a238464  libstdc++-v3/testsuite/20_util/optional/hash.cc
  4bdc5f9e73310dc13e1b0097f1271ee9  libstdc++-v3/testsuite/20_util/optional/hash_abi.cc
! 7720d63bc26a786c52d8eca2a2095b80  libstdc++-v3/testsuite/20_util/optional/in_place.cc
! 7c1552be8c5e7b6dda8d8a6aa8561355  libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc
! 2906b9dbf57445c14c10291fa8e270d8  libstdc++-v3/testsuite/20_util/optional/make_optional.cc
! 29ed82d468420f01e3cd6126d951df88  libstdc++-v3/testsuite/20_util/optional/make_optional_neg.cc
  9f6d73e852cf82959a57a12db48e8905  libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
  ca862872c63399df0317190ea1f66d4b  libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
! abdfe6ec8acaa93c094f5513ee2502e7  libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
  72fbbba600f3e2e6599c46a0812c30bd  libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
+ 03e240776f123da22af94871caffdaef  libstdc++-v3/testsuite/20_util/optional/monadic/ref_neg.cc
  b7d8b66190edd1b5779d2e2e80d350e2  libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
! fd60b7caef8541b15e547451bd8b93e4  libstdc++-v3/testsuite/20_util/optional/nullopt.cc
! 98b76d592bf79843484c93a34479c31d  libstdc++-v3/testsuite/20_util/optional/observers/1.cc
! 1f504a239daf08fc079b3006d13c0a4e  libstdc++-v3/testsuite/20_util/optional/observers/2.cc
! 9d03b23c5249d337f08ad706276838f1  libstdc++-v3/testsuite/20_util/optional/observers/3.cc
! c4e410ca9a50b7b399285fbf5ca5498e  libstdc++-v3/testsuite/20_util/optional/observers/4.cc
! b01d48c69e707c548a9bc8420e1dcc55  libstdc++-v3/testsuite/20_util/optional/observers/5.cc
! 047e51a6819c9f439cac5ed12d1deca3  libstdc++-v3/testsuite/20_util/optional/observers/6.cc
  d8af3640e7aabc8dd1960265b3ca5a27  libstdc++-v3/testsuite/20_util/optional/observers/lwg2762.cc
! bd7648992b818e0a7d401707376d3300  libstdc++-v3/testsuite/20_util/optional/range.cc
! edc194b3327288946698ff36aa273df0  libstdc++-v3/testsuite/20_util/optional/ref/access.cc
! f53ffa73b0b8e8a9ab79a524894a068b  libstdc++-v3/testsuite/20_util/optional/ref/assign.cc
! bd414ec4d2462ae7da725365de0f5e90  libstdc++-v3/testsuite/20_util/optional/ref/cons.cc
! fe19d06d22c3b55b10081f981785a437  libstdc++-v3/testsuite/20_util/optional/ref/internal_traits.cc
! 1410a12ff2fd816529907f1f735acf62  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/1.cc
! e469884bd5532d34fd267ed91e027c30  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_args_neg.cc
! 4c85bf82ba5865e9b03b73a26fca6430  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc
! 99b8425d41c0f1eb2e696b4d80a128c5  libstdc++-v3/testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc
! 229107bde9f6acbba136aef11abecb7e  libstdc++-v3/testsuite/20_util/optional/ref/monadic.cc
! ae3463f6b09c982867e7bb69cd81b8df  libstdc++-v3/testsuite/20_util/optional/ref/relops.cc
! 82c24362a93194a746122bf66c108e01  libstdc++-v3/testsuite/20_util/optional/relops/1.cc
  9b0c6c5d74424693ceca6e756d7db294  libstdc++-v3/testsuite/20_util/optional/relops/104606.cc
! 4c0464932a1326fd7decd1814395044b  libstdc++-v3/testsuite/20_util/optional/relops/2.cc
! 4c4c0197c7b4a228720c8e1fc2b8b774  libstdc++-v3/testsuite/20_util/optional/relops/3.cc
! 61c281a8d07e55d4e573382b57f056de  libstdc++-v3/testsuite/20_util/optional/relops/4.cc
! 48bab7c1f238ce8a6313a1b888c4bc15  libstdc++-v3/testsuite/20_util/optional/relops/5.cc
! 4ef15d9670fcce8f9caba559f9119f81  libstdc++-v3/testsuite/20_util/optional/relops/6.cc
! 8fe8433c5e6431be59de7b1d3301b0ac  libstdc++-v3/testsuite/20_util/optional/relops/7.cc
! 17e2ba3ea40820ed18703a9e203f94ec  libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
! 753ab76210515e9b25f48ae931061cd4  libstdc++-v3/testsuite/20_util/optional/relops/constrained.cc
  e3f072156342b6c647320bda37312faa  libstdc++-v3/testsuite/20_util/optional/relops/lwg3746.cc
! ca8c0e106adf139c8be6e09472b14f40  libstdc++-v3/testsuite/20_util/optional/relops/lwg4370.cc
! f44559003deaf4a925ed52512ed3f979  libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
! 950d7e3a2b5c72e757061afe3cbb9416  libstdc++-v3/testsuite/20_util/optional/requirements.cc
! 8cf4250c0d3c8da4f54daa35a750a07f  libstdc++-v3/testsuite/20_util/optional/requirements_neg.cc
! 940038ab97616302a25c3335b5ed237c  libstdc++-v3/testsuite/20_util/optional/swap/1.cc
! e0456ad7860e6ec6faf27e7a1ea85ee8  libstdc++-v3/testsuite/20_util/optional/swap/2.cc
! 211cafcea37251337836b6bff8a23307  libstdc++-v3/testsuite/20_util/optional/typedefs.cc
! 29609cbb181463c2f90cf3dec1096fc9  libstdc++-v3/testsuite/20_util/optional/version.cc
! 822529fe3664026abe193e232af92eb1  libstdc++-v3/testsuite/20_util/owner_equal/cmp.cc
! d301a9d092bb6e8452ae1ebce956a4e2  libstdc++-v3/testsuite/20_util/owner_equal/noexcept.cc
! 8d07ce272199306a82af04d41bd63384  libstdc++-v3/testsuite/20_util/owner_equal/version.cc
! 0ae965094f3a547f97f9416f4478bb8e  libstdc++-v3/testsuite/20_util/owner_hash/cmp.cc
! 5efd0343484644a99fd47bbb4022965a  libstdc++-v3/testsuite/20_util/owner_hash/noexcept.cc
! 8da9738d764ec88915fbbc0c4dd8419a  libstdc++-v3/testsuite/20_util/owner_less/cmp.cc
! a4a7e83e9fd9f83268dfe9cdb8c3236e  libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc
! 693d22fe54efbad736df3908f3c3a4dd  libstdc++-v3/testsuite/20_util/owner_less/void.cc
! abfc76043305a42157e690c90e69ede4  libstdc++-v3/testsuite/20_util/pair/1.cc
! 240f37f03415880e311d305150243429  libstdc++-v3/testsuite/20_util/pair/2.cc
! 76b95bf44954758212f613ced7aff8f3  libstdc++-v3/testsuite/20_util/pair/3.cc
! a5502d25e654d8d60f51eff99245780d  libstdc++-v3/testsuite/20_util/pair/4.cc
! 4d1f67b093f544abada0a2def08aa57a  libstdc++-v3/testsuite/20_util/pair/40925.cc
! b63623513966cdc74de3f15af108b27a  libstdc++-v3/testsuite/20_util/pair/44487.cc
! 43f1887b837ec72119590904459f96a3  libstdc++-v3/testsuite/20_util/pair/70437.cc
! 91db3e829584858f2d8249627ad445d7  libstdc++-v3/testsuite/20_util/pair/79141.cc
! 4c522ac7b9cba44a20fd5aff458c82dc  libstdc++-v3/testsuite/20_util/pair/86751.cc
! f1d9d3d78c2fcd9810218cf606c4b270  libstdc++-v3/testsuite/20_util/pair/87822.cc
! f9af165bd8bd7434421bf5bea5f417b8  libstdc++-v3/testsuite/20_util/pair/astuple/astuple.cc
! 52624614ea10336df80d9ef765cdbba2  libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc
! 6a4842bec0a1bba4608e80a7c0905c09  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc
! d82aa55ed75ffb7ac85e27ee994c5b13  libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc
  f2f2b91309730f195c55679493733944  libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc
! 0c0dde42f08f346038dc0a4b9f6c38d7  libstdc++-v3/testsuite/20_util/pair/astuple/get.cc
! 04f6ee99870b86a071080049778a0f56  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc
! 17aebb850eeee841d5776b5778077856  libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc
! 393879f5d0103e9a77bbdd87a39481cf  libstdc++-v3/testsuite/20_util/pair/astuple/get_neg.cc
! 963c1d362b2249e8e544a20385cf565d  libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr.cc
! 9ce3ace3a6f8f4b76904a05d515a38f2  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
! de22916c6d33b4376c80895f09fe7345  libstdc++-v3/testsuite/20_util/pair/cons/110853.cc
! 7b38a1593628eaf6b6fbe46dfbf3886b  libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
  c5964cf74c99c86ce570bfdb15835bb8  libstdc++-v3/testsuite/20_util/pair/cons/99957.cc
! 575f56cf828831ead85c9a140bd3cd94  libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
! 05f44473ab6683b7d94b925159ac86d4  libstdc++-v3/testsuite/20_util/pair/cons/deduction.cc
  942a80b2cd63f8a170cc399f96dc99bf  libstdc++-v3/testsuite/20_util/pair/cons/default_tmpl_args.cc
! fb3873331f3d33620b8adf8d0b4c3be6  libstdc++-v3/testsuite/20_util/pair/cons/explicit_construct.cc
! 05450d15b65552f9e4c8d29c9a7d9c57  libstdc++-v3/testsuite/20_util/pair/cons/noexcept_move_construct.cc
! 5ab1960d648043f2d19f27f854c4b753  libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
! 5cbc66a66720fff0111c95449ba551fc  libstdc++-v3/testsuite/20_util/pair/constexpr_get.cc
! e0b91597a7333665d26f81e78efba1d0  libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
  4d3ef1370192c1d9fe87b96bd1a66330  libstdc++-v3/testsuite/20_util/pair/dangling_ref.cc
! ba4f469c0ce6a31e5a81360ef48a2c9e  libstdc++-v3/testsuite/20_util/pair/make_pair/constexpr.cc
! a907a2ebdbcd989edcf480bf0b316f73  libstdc++-v3/testsuite/20_util/pair/moveable.cc
! 775d3c6190f79bc6d8d69847a1f998a4  libstdc++-v3/testsuite/20_util/pair/noexcept_move_assign.cc
! 86e706ff18fb366776205bfaaecb6bd3  libstdc++-v3/testsuite/20_util/pair/noexcept_swap.cc
! f21d4200c5103a2a28e32cb0959abb3d  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
! aff09cbc1fb7c3d80285bab09b19e701  libstdc++-v3/testsuite/20_util/pair/piecewise.cc
! 286e731b76cbd558e12aa3479f3366c6  libstdc++-v3/testsuite/20_util/pair/piecewise2.cc
! ec448286633ac55e70ff3068f5188205  libstdc++-v3/testsuite/20_util/pair/ref_assign.cc
! 1d0c50ac65ffa40f2d7e09fde7870964  libstdc++-v3/testsuite/20_util/pair/requirements/dr2367.cc
! d0195cbd611d62074a5ed3641a4e479c  libstdc++-v3/testsuite/20_util/pair/requirements/dr801.cc
! 36295edf0de1ad6955ef0cf7dd91c715  libstdc++-v3/testsuite/20_util/pair/requirements/explicit_instantiation/1.cc
  03b33ab350fe86d88f4609f7fd82a60d  libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
! ed10e83754a26b79991694daa9701f1a  libstdc++-v3/testsuite/20_util/pair/swap.cc
! 1121e753f8490504a4464a5fd00ade79  libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc
! f7dd6e74800392d90a0b0a3cb0dabd5b  libstdc++-v3/testsuite/20_util/pair/traits.cc
! baacfb9d75b27cd79c2cb2f0f91e79dc  libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
  4ea61b01821ef91d050e7dc8bc19448b  libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc
! e7dd6b6a00b82487bc73ac201fa06beb  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc
! 5a4045f3339eb37ce38f430978b73a74  libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
! 8cb575734aeb0a8fb4a638dc28ac7051  libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc
! df7be4683e3a26a290854738516c5111  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc
! 73a667577bedc64786c6f5d7f6a5b955  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
! 3d4d1cdd09a11b7a212ba28fd15c2f0e  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
! 921ab22ad1c8b959803b45c60c3e92b5  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
! 157477fb697b0e84f4f36c4449264c45  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
! b26d23b5080d9f7b8062a627e6d9d355  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
! 6226f7e617116802ee9168dcfe8d3905  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
  918078cc6c6d9bc5d48247416402bca6  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3683.cc
! 7fd4950e0e76b357705537845824206b  libstdc++-v3/testsuite/20_util/polymorphic_allocator/resource.cc
! 4509ff296ba81fa5ac751edb422b0317  libstdc++-v3/testsuite/20_util/polymorphic_allocator/select.cc
! e64df17564eb35ed8feac1aaf55aa0d4  libstdc++-v3/testsuite/20_util/rank/requirements/explicit_instantiation.cc
! c29c0a5f249859ad386d7485e2d828a6  libstdc++-v3/testsuite/20_util/rank/requirements/typedefs.cc
! 71af48a3f940b80ee2c46f2cb8c1bc41  libstdc++-v3/testsuite/20_util/rank/value.cc
! 6926eaf581759b4fe2ecc51befca6258  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp1.cc
! a7933f91fce086c19be7bc6b8d39a733  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp2.cc
! 18419b3c5b8431f20acb0dff4301fbbf  libstdc++-v3/testsuite/20_util/ratio/comparisons/comp3.cc
! d01a9238b0a12dee4e0428ebd4ab5b27  libstdc++-v3/testsuite/20_util/ratio/cons/cons1.cc
! 01f724578318ae2b62165d680935de59  libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
! a88a87c2af3673136318a1c584a44450  libstdc++-v3/testsuite/20_util/ratio/operations/45866.cc
! b9898063db8d899cf76bd2a72f8cbaf6  libstdc++-v3/testsuite/20_util/ratio/operations/47913.cc
! a3c46cde2eed6f223a2a3038fcf4fd2f  libstdc++-v3/testsuite/20_util/ratio/operations/53840.cc
! 5e0a74fee7edd289efdbbbace718f02b  libstdc++-v3/testsuite/20_util/ratio/operations/ops1.cc
! b46018e7d228df6bfbebd1a8a334891d  libstdc++-v3/testsuite/20_util/ratio/operations/ops2.cc
! 33bb270e604af93e1ac75d147560e2bf  libstdc++-v3/testsuite/20_util/ratio/operations/ops3.cc
! 617d6f42d224eeb523b672ff94ac539e  libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
! e644f67b53744985e5015731b6d7140a  libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
! 130aa41a7239079afc9d8a1c1428809e  libstdc++-v3/testsuite/20_util/ratio/requirements/ratio_equal_v.cc
  d8bbe2c17046f08594a91f5a8e216ba7  libstdc++-v3/testsuite/20_util/ratio/requirements/type_constraints.cc
! e0ed659bf9d08b0d1ebd3ef8ad0acd2c  libstdc++-v3/testsuite/20_util/raw_storage_iterator/base.cc
! 12b3129caddbf514cddef136770a0bbe  libstdc++-v3/testsuite/20_util/raw_storage_iterator/dr2127.cc
! 0a9a2f00b333371ad4a7fa8b87bf7c88  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc
! 8571aaab016f601dc786cb42451cb997  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc
! a12254475909bbe695d44f20cdac463c  libstdc++-v3/testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc
! da6c7e8621f8e30229cc1310704ea9cf  libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
! e06059f880733bae1c3c2e2ebfb086ad  libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
! f87b0716676036b409df048a7fb3fd79  libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
! 4cdcc9ff1e3c58a774723ba06c83ee2b  libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
! 69f89e1427cfd63ff5173f299b6c0d08  libstdc++-v3/testsuite/20_util/reference_wrapper/41792.cc
! 852e64baa79103fb8abcbb7bc5175fcb  libstdc++-v3/testsuite/20_util/reference_wrapper/80504.cc
! bd22f08397d0e0289fe3c69714f1f70f  libstdc++-v3/testsuite/20_util/reference_wrapper/83427.cc
  d29855594ad103b670136d89c6c8d2d8  libstdc++-v3/testsuite/20_util/reference_wrapper/compare.cc
! a6f2ed595c3c57aa120c4dd9a891438e  libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
! 2fdd1cc1ba0210815e31bd477e7f297a  libstdc++-v3/testsuite/20_util/reference_wrapper/deduction.cc
! 2bf21d34b7832a79fbdb205ab45171dc  libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
! ab84c0df98a1a0c2b5bb8bdef7a26315  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
! a477cca77c26f74ab2d6daeba49c8ad0  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-3.cc
  3a4e290fbbefce397c537f6f76360292  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-noexcept.cc
! 8849c4f6aa9e293da5474545b8b2f564  libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
! 3f9bc22541c60ef08ba3bf9a740f49c1  libstdc++-v3/testsuite/20_util/reference_wrapper/lwg2993.cc
! 21b999c8cc5c5df3995a2f9c95f34c7a  libstdc++-v3/testsuite/20_util/reference_wrapper/p2655r3.cc
! a3e2dad32ca01d8a6ae1637acdf3f7dd  libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
! c6f045f3eaca1f78dc7eef5d8c642776  libstdc++-v3/testsuite/20_util/reference_wrapper/requirements.cc
! 4839d91f9c443ff8a95dd50506ba1a09  libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
! 3e564f5420f100c7ef9c4a92b6b59617  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
! bdf73269ef00681e5b92db38887552e6  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
! 520e2378396aeff81486171d8f42a5e8  libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
! f207215b6687f19a84fdf22de416c2c4  libstdc++-v3/testsuite/20_util/rel_ops.cc
! 7dbbd2589dac3c7718f041da0c2657c9  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/alias_decl.cc
! 51bacbc6c4f23dc04cae7e7d966d0419  libstdc++-v3/testsuite/20_util/remove_all_extents/requirements/explicit_instantiation.cc
! 39d24b26bc41bc0220e89c0a3b4a4006  libstdc++-v3/testsuite/20_util/remove_all_extents/value.cc
! 089f69c3ab3dc237811d9e31a4676e1c  libstdc++-v3/testsuite/20_util/remove_const/requirements/alias_decl.cc
! 5fcf233127f1245dc800fbcb1cb24ede  libstdc++-v3/testsuite/20_util/remove_const/requirements/explicit_instantiation.cc
! fc615b2114f8271769c58f7a3266d200  libstdc++-v3/testsuite/20_util/remove_const/value.cc
! aba03e5ec629065e30017b8c2b4c0b6f  libstdc++-v3/testsuite/20_util/remove_cv/requirements/alias_decl.cc
! 0d9e8c462cbb537d7c498332f16979d0  libstdc++-v3/testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc
! 13b2046be0ddd146fce78af54e245567  libstdc++-v3/testsuite/20_util/remove_cv/value.cc
! 9f5a22d03ec6e270ba7e9762fdc094c9  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
! 4d1d5a6f206636f95fb39623df44594a  libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
! 2d7450db17738d5ad34aecee1911ce00  libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
! bfa97ef3cfc468dfe017998d7a6fa576  libstdc++-v3/testsuite/20_util/remove_cvref/value_ext.cc
! 09e1982fed2d46ca783c1a9b5de12a81  libstdc++-v3/testsuite/20_util/remove_extent/requirements/alias_decl.cc
! a5925d7076ba973e421744782adcdabd  libstdc++-v3/testsuite/20_util/remove_extent/requirements/explicit_instantiation.cc
! 7a876640bb3b04c3dedf733d18bc0ca9  libstdc++-v3/testsuite/20_util/remove_extent/value.cc
! 95a014599a4c5e62869726c3f7baffc6  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/alias_decl.cc
! 9146a37cb7e759f716e1d3f0d68dc99f  libstdc++-v3/testsuite/20_util/remove_pointer/requirements/explicit_instantiation.cc
! 0a05f2c4c0b2f67ac4b89b3810cb8671  libstdc++-v3/testsuite/20_util/remove_pointer/value.cc
! 88c5def0cf3e4fecfa3884927a26f1aa  libstdc++-v3/testsuite/20_util/remove_reference/requirements/alias_decl.cc
! 5bf6f7d4e24c5b87a21d12d58565b9d0  libstdc++-v3/testsuite/20_util/remove_reference/requirements/explicit_instantiation.cc
! 0e86b42a07a2194f1a64614be41ebaaa  libstdc++-v3/testsuite/20_util/remove_reference/value.cc
! c53608032b2599e76cf31e127a17459e  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/alias_decl.cc
! 232b1846be6ed245f32612555620e85e  libstdc++-v3/testsuite/20_util/remove_volatile/requirements/explicit_instantiation.cc
! ca456a38e2c90085a9b221a675d805c8  libstdc++-v3/testsuite/20_util/remove_volatile/value.cc
! 2d2d9055cabe18525f74175b1f8314ac  libstdc++-v3/testsuite/20_util/result_of/1.cc
! 5ee57fcfaae1c281fca9edc90eb1b13e  libstdc++-v3/testsuite/20_util/result_of/2.cc
! 4b06dd16824bbc490a399227c3ab65bc  libstdc++-v3/testsuite/20_util/result_of/requirements/alias_decl.cc
! 9d692352fd3fa40b7e93e4ea86734348  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
! aeed7d0568344dcea7db7534906a02ee  libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc
! a1c030ddcd95084f295f227220de4620  libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc
  da8b1f9f56123156faf50b7277670b45  libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc
! 4b8618e26bbeed056631d80577e3c7c1  libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc
! b538aadf524b55ca42ed42fd3f43bca4  libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc
! 43c092083dfae931fc983f6e7ee74850  libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc
! ddb673b2b9c82839eaa13edc524e0e27  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
! afd439b166a86293dbff5999992fd726  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
! fdcf30a45f45fb6fe21617d7e144e8b4  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! 62c79dd81341c4a7eb9c2eda7c4190c2  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
! 4524b72b307064461817896d8c7515df  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
  21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
! 2266426b267ed5244e1186faf5b9f72d  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
! da620551841bd86c50a7507620fbe2e0  libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc
! deb014b89ca665378c4a215361feb9d6  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc
! a37dde5eee56686f212255f33190088e  libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/typedefs.cc
  7a0a4219eb894f53965657051cc390fe  libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc
! bd5243d1b8f3edc96ea8ac3924fd6a43  libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc
! c18791f6dafc0a9939702ce302181ab6  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc
! 4f3593b5033e56d1786d4b54f78ff259  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
! b79c6c0ca8f3c9280b4e84e8e22cb1e7  libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
! e69d62e30a8273c859cf51d04fcb3984  libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc
! 03dcdbeb29ed17b47691f5c042e9e501  libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc
! 035ca31c02395a04e22a43643c40a009  libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc
! 743feed4da8aac0375e241914ae5686c  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc
! 2e8afabdc7c5d28c1e528de2d39dc43b  libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc
! cc6f2ffe17f523d05ea3e1dbad8db1e3  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc
! a11776fd7676c3bca98d676774001c2c  libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc
! 30154b06706b4abf6eb88e7c0ab4a6f9  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
! bad80605c028776cead7e3929065275b  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
! 1058c3ab6e3579055778414f39fdb571  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
  218bfa15322cbf3d4699fd75868ce542  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
! d062f610d8deb3a502b4f910b95955be  libstdc++-v3/testsuite/20_util/shared_ptr/atomic/pr118757.cc
! ee02ee45b05d17021d720740e0c52d23  libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc
! 0aa576f643a5b2d6c50220874f6a0614  libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc
! 422575df769349cf1e762fb8e26680e0  libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
! 54637aaa89cc050806c723f6a661d95b  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc
! 2de0095ccb66b6aa00d55e7286b21774  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc
! 48b84479a215c90aee04bf1b6717a0d4  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc
! 65d794958f2b403cf79c5311013efd57  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
! bcefa23ccbd9c94d2f587a5987bbed24  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc
! a10a141785864c53637bd371c25f7e10  libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc
! 993ac81859d57ed24f8123537dc31d04  libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
! 5bd424011be865e59e165a0f835f47e8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc
! d5845a001d5a7a8c3eeb7147b9d85cf7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc
! 2ee8555d5a6a687889d2704e2729443c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc
! 1082c1331315a8b12b5a04067f55d3e4  libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc
! 4f8682b70e8950aea5d69f7d20002572  libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc
! d93164ee45b19097c65ce14e497af577  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc
! 4cd5d7e5609dd36444730315a8d744d2  libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
! 1098f76734154cade319d0f1573fae3b  libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc
! 11f42653258e89cc65ba4a33e2b839a7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc
! ad9cebdae6ad9c0724e408a84e60731c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc
! 52e0e08ffb8b9e7c67ea132c793f52b5  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
! f07a49589ec7b5badc53fce457becd3c  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc
! 7f76b4bfe9d0501b4a84f00dabd2593e  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc.cc
! a2785ed0d49ade814cef795c04ed1a24  libstdc++-v3/testsuite/20_util/shared_ptr/cons/alloc_min.cc
! 8fa9031041dfa28ad8912e9ab17509a8  libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc
! 4e1ccbc9944f70b7967029de96bf64f7  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc
! 927d5ecf3236bf6ba40a9a53e7a15871  libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
! ca57bea0d030da1122dd8000606e19e6  libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
! 8564a8eefcabbb20f0c02b71bb025634  libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc
! ac0003b7fa7dfbf9fc4337ffd653a8ec  libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc
! afee9ffbce592b923f042a0d46fef425  libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc
! 12eb4c0db0946a26319b2a830dc38bc5  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc
  23dbae4c540e8990b44404c82f23bc80  libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc
! 652fec7a8aec8f597ee8e3c8dfd3db09  libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc
! c5fea62c658fdcf33d554cd99611bea9  libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc
! a921e59e1e183f311669c7955f921165  libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc
! 4dff89d5e79e5980e4845ef27f7a88bc  libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc
! af91c8899d6a1314c61944ca5d1a4670  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc
! 05d4f82f3728f7c391c58be9ef606d87  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc
! 8ea101a6259a9f5c14de41c3bd35547a  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc
! 1d24452cd2e13c680edf1693c95418c0  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
! 222db738a40e4577fade9e9065f27617  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc
! b6285ae4c85db87d7ed87553f7ff7b79  libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc
! ccec38de54adb610e63435b425d6d481  libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc
! 5588d2de3355dd14ab624310d290ff35  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc
! e96e0d0c1fb7642d17337b1ce2a934bc  libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc
! 964135a02a4d37a23bdcd95a9eb4eed5  libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc
! d23149b68ad2c8f17a3a6751b7f0600d  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc
! ebe467dfb94020a5c448a95d1a4758a2  libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc
! e3cf0882da04ecdd8018c9988f4b61b9  libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc
! 5c124512e8a7cfc8fa787624bea72082  libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
  81f7fb60e4aacbe92da9a1eab6fd4f82  libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc
! 32c816020f9bf454dd70db947f859592  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc
! cb5c2980bd6a978318653187869f25e9  libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc
  404e20ed4771707f76a3b3d269fa453a  libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
! a83f6d26e4cda0676f0974fcead33d3f  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc
! 0f0c31d45b35700ff73ff6722f25aef1  libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc
! 70239bebd630a83d39489c4755114836  libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc
! d295c333b153aa3c9bf748e3187d6da7  libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc
  26903b42fbcdb2e18b2f10007122a450  libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
! 30cdad2a8dac9c3188d172ae0762fc0e  libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc
! a266dc0f16f792d7c9755b3cf4a833cc  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc
! 9e76ff109f258554d326d64fb91e34a0  libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc
  98eeeb9df65778568c9dfbdc6dcf1713  libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
! 0f04a1fa70e9bb29daa18cf40c8df1fe  libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc
! 75d3c9fc51bd9a563829e21cb30f6ac5  libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc
! 48b377623ff060c8012fba670943893d  libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc
! ebae04a6f5be0f443ba55672b3d9b9ee  libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
! 3e75f952580f82be227b5929bc23184d  libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc
! ce44e7e1f7b182b2fd795f9a11426a89  libstdc++-v3/testsuite/20_util/shared_ptr/misc/io.cc
! df4158d895bcd778322c62aa2ede615e  libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc
! 016110d32aa92f36e43f813e8281826e  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/24805.cc
! 027f47461ecc725d9f8ce0ae7fa5dafa  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc
! 6c7b7bdff21840563552bf724beafd1c  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_alloc.cc
! 61648dc39b7ddf32068522a96f84562a  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc
! 83b89ba5fff27ed146f2e36ee9565a28  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc
! 6554bae5397f4e265a546ba46455f1f6  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc
! 87e8a0bac8dcff8ce55ca870111b9925  libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc
! fda39a7cb5cb33fe5f05e4d8bb01eadc  libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc
! de1d57f6384bbfc410b1c37bb5a6fac5  libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc
! a6a12efacb5704368cbac355eab3d4d1  libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc
! dcedeb7856daea505b59c1bb2ff35abc  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc
! 72e3a2df6f8c84b036e4fdb9b3093bb3  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_equal.cc
! 8fdcfb49533deaa42d7d4636042ac9c9  libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_hash.cc
! 9f39ba322b9672b3ce6926617df64955  libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc
! daecd01d0cd074f410c30a86659965ca  libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc
! fcec65a5b73663b03a8f858d5c75e2f7  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/1.cc
! b1986003524840171241d3ad3141a7d9  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc
! db678b4c1e0a98ec2460a1dcb405802f  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc
! 8a90dd17da09fd32df8f75b145f76dd2  libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc
! a222e6ce7c72199ba1b71c838cfb4cca  libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
! aaa9a20447e7dca8a9c55c2b35a007f1  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
*** 135170,138929 ****
  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
  feb06362a46b71fbdb97217735aa60ab  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/120931.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
  309b7ad3662d6e3be2a1afeaaef39c0e  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.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
  3df5d35bbcbd9760389b0f913b3844dc  libstdc++-v3/testsuite/20_util/system_clock/99832.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
  e71310aab27f8280547a5f500ddfc531  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.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
! ef672746fcc1d35e2a4e9c40b64854cc  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
! 3c9ecb51c6f7009d6f4a73f9f1271ed2  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
! 9b2f42aff2cc15dfd3a3f7693a799f84  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
! 76d6af8252b5ad047167bd10312d53bc  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
! 6c11f9363d6ec93dd780d735c215c75c  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
! 1e3bb46218f21afcb45e7cdfbf465d5c  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
! fc2e14b9269dfd7f2780ef521faf72d9  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
! f2e289bfe5006906665b1873ef89bae0  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
! 72451cdc0518f6f1e313d485f54e0e51  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
! 034a70fefdbcfa64609efe57b3f3b977  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
  dccb0814b19763bed788e2bee51d1569  libstdc++-v3/testsuite/23_containers/span/120997.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
! 833017a30b2de971981f574bdc3fd989  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
--- 149239,153195 ----
  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
! 71bab4b593d7926de4d59e58b037f50f  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
! e3d9046b7ff6078d052e01630009d68f  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
! bf5ccaa2e7505e7598e238bfcec8dcdc  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
! 9ec7d525dace31426c9a6caa2763dc3b  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/121024.cc
! c1fdf82176e55bdbe31d830a5bceb958  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
  0c389150c2f95a24f62d342469a7c67e  libstdc++-v3/testsuite/20_util/specialized_algorithms/feature_test_macro.cc
! fff1e1c823802e32f1954498a04191ea  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 8a7797ce33ac68ccc60d103919926b4f  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc
! fc3d8969657320da4b007d53abb00a56  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
! 64dd86a18892720e2482906b5603a0bd  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
! 8f735950e4171ae52a8719008a300bae  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc
! cbf4d4f5a24cb91626bac88d476152ce  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc
! 023b86ca2d7a8a809fe0771264908194  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc
! fcc274aa392550044167f3c221c74b9e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc
  b08e4109a3d82dd852731e8f302ee31b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc
! a233e2d3cd2bb52cbc8cc686f05d16a1  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
! 95543ea9da4e9e4349e624b09bcf1554  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
! 22bee11f23aec1974f177d902a7c760d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/58982.cc
! 0471f1c5e59100a3896a3c94f7332698  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc
! cfb9d22cffe1e508fbdffb6c96a3362d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy_n/move_iterators/1.cc
! 012baff58399c2c260af358250064148  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc
! 12e5344649146b67dab4a377a2b9d6e4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/120397.cc
  d3159b84b2e9833a521af84ceffbacfa  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc
! e92afc7a24ae63512dc3c02fe4df27f9  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
! e60c1e2fadf7c6440d634ab6f27d32e7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc
! ba142ea2304c23c07818b5517ef75713  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc
  39a02fadd67d7b20114705bd3af7113d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc
  feb06362a46b71fbdb97217735aa60ab  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/120931.cc
! 07ff86c1274038a5dd70f603d9adccf7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc
! 8a7a70ace3d557711c0e3a95b3f2f415  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/58982.cc
! 10ed2e36df96e9cd2c4eb3d71a7d840b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc
! c492601ea3188491bafe33ce9557f85a  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
  a39af5e2ccf32afc9e1baf5461eebaf6  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc
! 65087c499fdb64ab259274bb22c5412e  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
  f965d986e70a4a8e4205944d0da1280c  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc
! 9db21596e7e27467f36f79d905d5d9dc  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/16505.cc
! 16bb198443aad234630832d7294e3386  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/58982.cc
! e5721ee6e8ab192ecf69b9626112131f  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc
! 011867a03f274bbbef840ac5f0b94f96  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
! 280bf5f09f78c75aaab47a90dafd75aa  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/dr1339.cc
! be99204a835ab9703e43f2fe95b06ed4  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc
  6cf4cb93cbec42025a516fa8bc8fc11d  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc
! eef20dbce7a3305c045aad2ee490c458  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
! 728ff6bdc4a20d86864e3a02404ab3f8  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/120397.cc
! c1c1b93aed1fabb89eca28bb08f2e61b  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc
! acd38641ecf3c73259150c9b9547cde2  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
! 1a5e216eb17f69cd94742c7c5c2313e7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
! cd479eb67b49b2c9857911f74fc49c6c  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
! 9970054c9d61fba8105fc96f8920212e  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
! a59782de2998bc678e83740bd0a19ac8  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
  309b7ad3662d6e3be2a1afeaaef39c0e  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc
! fa6946c665e4cec6490763c3b5541aa4  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
! 498b6a72d005f9c79616aaece534f3c4  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
! 254978ffa03aa7b34f2c7a9bdccc0eba  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
! 76543d6bebe7dc07264feefa1e344094  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
! 0ab45fbf6dbfc7876ea03dc71c0ca143  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
! 16aa9185be621989514a6d01b5884e28  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
! c772b07ab30d71b5627caacdd4899535  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
! ed494f83019ec9ae9d2fdd0c26ec4a89  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
! 1e1cb6ee79c4394a98b48c35a85e4bd7  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
! 16f0de530279be5c5edc6a33c349d81e  libstdc++-v3/testsuite/20_util/system_clock/1.cc
  3df5d35bbcbd9760389b0f913b3844dc  libstdc++-v3/testsuite/20_util/system_clock/99832.cc
! fbbf7995a0fb175024e023ff7598c7d6  libstdc++-v3/testsuite/20_util/system_clock/constexpr_data.cc
! e3342b902305c018870644792ed11553  libstdc++-v3/testsuite/20_util/temporary_buffer.cc
! 05d2d260fe2e97fc54b793b9873011d2  libstdc++-v3/testsuite/20_util/time_point/1.cc
! 3b44de3afaa810215373564612708bec  libstdc++-v3/testsuite/20_util/time_point/2.cc
! e830ed914d7cd12cfafcd038657996b9  libstdc++-v3/testsuite/20_util/time_point/3.cc
! 41bd4d445b8e45f34eaf4dc7960e31b7  libstdc++-v3/testsuite/20_util/time_point/4.cc
! b7144a0ddaec7f73f8275747665959ff  libstdc++-v3/testsuite/20_util/time_point/arithmetic/constexpr.cc
! 5ac780c31227a6ab99ffed963c81c684  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/constexpr.cc
! b2d2069eb896e4acb52b64e9eaf5c17c  libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
! 871eee6fbb19f6c9e8fb000cf94b42c3  libstdc++-v3/testsuite/20_util/time_point/cons/81468.cc
! 0b727390ee2da3ec503b909fcaca5c66  libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
! 36b1f9f7ea30cce57288cca9d57b3bf4  libstdc++-v3/testsuite/20_util/time_point/nonmember/constexpr.cc
! b4991e7fee7db8b794a29ddff5b9ca0f  libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
! f70c4a3a09d0c369f243d49f04e0d7ce  libstdc++-v3/testsuite/20_util/time_point/requirements/duration_neg.cc
! 64ef47d17b173f41d59c0df7f0ac8193  libstdc++-v3/testsuite/20_util/time_point/requirements/explicit_instantiation.cc
! b4cdfe3c93c69cc30deb4d538fbd7623  libstdc++-v3/testsuite/20_util/time_point/requirements/noexcept.cc
! 45be9f78de803fb9afe2c86ba40c7386  libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
! 4523ae17d66d0a8725289f27286a8658  libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc
! 63785b35807c920612e4fef500d50afe  libstdc++-v3/testsuite/20_util/to_address/1.cc
! 25c52ca708d0bdbcfb8871998fb83af1  libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
! 0ef1989ad5f2c6359415b6e8af3e4e6a  libstdc++-v3/testsuite/20_util/to_address/debug.cc
  29603a4268440d346dba99e438f03306  libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
! f0e8dea8cf6fe6dbc5a0fc3ec213e692  libstdc++-v3/testsuite/20_util/to_chars/1.cc
  cf4f3947ea6ae8a691cad8b85ffb82b7  libstdc++-v3/testsuite/20_util/to_chars/103955.cc
! 95eb1407d2cc05ac3a8f6f3409b5f04e  libstdc++-v3/testsuite/20_util/to_chars/2.cc
! 5a367ee66b5829f22fd64f33e8c7b35b  libstdc++-v3/testsuite/20_util/to_chars/3.cc
! f989e4454214f628cc63990380a3386f  libstdc++-v3/testsuite/20_util/to_chars/4.cc
! 218fdbe634edb073e94798e92ad8f627  libstdc++-v3/testsuite/20_util/to_chars/95851.cc
! d95f197d88f9e993126e8bceebdcd7d9  libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc
! 01d3c665b704aa817a358a5ff4cfa99b  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
! f2e3bff0dc95d1fc0252377d79c6bfab  libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
! 21552f25095c302c5cb2c19a7b2bdb7b  libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
! acb76eb7a72980cee5b7227a279edcf0  libstdc++-v3/testsuite/20_util/to_chars/long_double.cc
! c92f207dea25c0cccab6330d0e64daca  libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc
! e20422aeba3e30e00f9397d10bbf9994  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
! e24ad1a961837aead482e268dff3bdd1  libstdc++-v3/testsuite/20_util/to_underlying/1.cc
! e107fd497626a8b212f4fd0df8ef96f7  libstdc++-v3/testsuite/20_util/to_underlying/version.cc
  3244a34e0688df6907987292af7f42b2  libstdc++-v3/testsuite/20_util/tuple/116440.C
! d4322a3255a5631fb75f39b8d2a9b341  libstdc++-v3/testsuite/20_util/tuple/48476.cc
! c188f31ed9631c49da38b62b5a7aadff  libstdc++-v3/testsuite/20_util/tuple/51365.cc
! 89b01d31452b57eb03fbb4aa28e326b0  libstdc++-v3/testsuite/20_util/tuple/53648.cc
! 264e0001307675fb6683746aa3dc30ba  libstdc++-v3/testsuite/20_util/tuple/56785.cc
! c219b3b45fd41489ecce7c0b7eb15a59  libstdc++-v3/testsuite/20_util/tuple/60497.cc
! a3ccddf9ccc016cee2c364ffe3fcd8ab  libstdc++-v3/testsuite/20_util/tuple/61947.cc
! 0f1879916907bce8f7a907facdcc7aa1  libstdc++-v3/testsuite/20_util/tuple/67844.cc
! ed30ce7d463f2970b5664e56b86d144e  libstdc++-v3/testsuite/20_util/tuple/77395.cc
! ca1d6cf7be4260157e41d6d851c34240  libstdc++-v3/testsuite/20_util/tuple/77802.cc
! 37f23f07bed4b6d78aa6551535b0f94e  libstdc++-v3/testsuite/20_util/tuple/78939.cc
! 681ca44fe26b23654762c578f21638cd  libstdc++-v3/testsuite/20_util/tuple/apply/1.cc
! 97f7be2809797092a0fd10ec291febd7  libstdc++-v3/testsuite/20_util/tuple/apply/2.cc
  8f28717785cfc117c567f54057734704  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/119545.cc
! 6d5a82cf068fdd40b1d0b7b8afbb7bfa  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc
! 74fab2da68d160e47013dae0e870c0d0  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc
! e1a28768e5e16de64d41d4eb32794a77  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc
! 36ccfad5126fc92dae2ae075fa97e48c  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc
  64bce70231548e51e7caa19e616dad12  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constrained.cc
! 7d26365e4c3e387b733a4b6e82b2d96e  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc
! 64bdfdd3510578b76f3832fe8043f02d  libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded2.cc
! 8eb8a288344aaf9471a4a914733ad710  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
! acc813dd1edb9480437149d28cd4faf0  libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
! 891d2d25eea24f94f1cc6b9d431447d7  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
! 235e8e262178949b52a2c4e1106b029f  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
! a1777c1ca6e6ccbc0dc6a67b203de34a  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
! 5f560bc64a22df5d5f503f66bf4988e9  libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
! a544eaffc09d2f08d3f55b4de21a8e2a  libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc
! 69ef222a495cc90bb822f4aef0455234  libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc
! ff68c58e703f42df94152788de82dc8f  libstdc++-v3/testsuite/20_util/tuple/cons/96592.cc
! 35210f669c1ffcb61840aca038c6d510  libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc
! fd41ec9aa194daea6aae9f1a50fd6ac1  libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc
! 4adae77ef49d0087b16526898e20817d  libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc
! be20417a948176c53b8e897f7e5e84ba  libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
! 9ce9a6083d9aedb70a79de540b2acb17  libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
! 205f8c71162551c1b96bf44138e5a679  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc
! 102aa061385ec5b6ca1c71fdaeb455ce  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc
! 4bf98dc36e3185880058f2dee132892d  libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
! 4b03df36e95f7f05d8417dd490fd452d  libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
! 07bcf3cb63a6842fb1daaff286892f80  libstdc++-v3/testsuite/20_util/tuple/cons/converting.cc
! 953f81046f9e83c1310e7f87d9642dfd  libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc
! 730298375d78c463d4b234028425185d  libstdc++-v3/testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc
! 9f74cb410cf50c57c3cde7e2a9f506cb  libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc
! c8803109282d367ff56887ba6c717190  libstdc++-v3/testsuite/20_util/tuple/cons/nested_tuple_construct.cc
! 777f4cfef8323e232a2dcf524293bf55  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_move_construct.cc
! 0820a8f14d75e45399d5477fe4af8cea  libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc
! bef0b8f914c6bd8becc33176d90116ed  libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
! 5627ced03bc820d4c48e3215b805a000  libstdc++-v3/testsuite/20_util/tuple/creation_functions/23978.cc
! 6b5ad1b44ec29c8062a1053ac56910ce  libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
! de59371bc1f71c74f9bf29468857b4df  libstdc++-v3/testsuite/20_util/tuple/creation_functions/55713.cc
! 50b45fd8b2a429966a88b9abcd30cd6f  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr.cc
! 1767a50426fed2c65640e64aebbeb692  libstdc++-v3/testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc
! beb6f3a1b8c26280a3603ee983366753  libstdc++-v3/testsuite/20_util/tuple/creation_functions/forward_as_tuple.cc
! eae97fce2a30391511de06ce7c7f85d3  libstdc++-v3/testsuite/20_util/tuple/creation_functions/make_tuple.cc
! 051074a41f2d148e3bb877d5cda32d9e  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie.cc
! 29bdbd73b4e6bbee777d7c771b95b2af  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
! 7d3f0d294e0b820dead93b77613406c1  libstdc++-v3/testsuite/20_util/tuple/creation_functions/tuple_cat.cc
! 7dbf4fe20e49a39c14f3dbf4d99ac8d2  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_element.cc
! f5fe7d621b6d4554ffc0126e6a5edd15  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size.cc
! f5c5db58a36ec135c98ac5deab3e40ef  libstdc++-v3/testsuite/20_util/tuple/cv_tuple_size_neg.cc
  f25fde8d3328cd18ff9cfb34d726e252  libstdc++-v3/testsuite/20_util/tuple/dangling_ref.cc
! 7570fa85beaf98e859411254a919aea2  libstdc++-v3/testsuite/20_util/tuple/dr2729.cc
! a4bbf75133dc2f10f9fa6a83264d898c  libstdc++-v3/testsuite/20_util/tuple/dr3528.cc
  5c4d5220d3eb9f735e8817b5ea562b55  libstdc++-v3/testsuite/20_util/tuple/element_access/101427.cc
! a3d4444f745f8ff75bc24ca6ff2ebb8f  libstdc++-v3/testsuite/20_util/tuple/element_access/71096.cc
! 1fe3d8551c4cc13aeef497111a4ea436  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get.cc
! f1cef84a4f7286bf1eeb44350376372c  libstdc++-v3/testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc
! c4cb13f6c5efab7f62d907c59cba3123  libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
! 3f64f118fdc81d352fe13a045cb6ada1  libstdc++-v3/testsuite/20_util/tuple/element_access/get2.cc
! 2edf4906b4786ebc65df8c8724859efe  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
! e2c79e910313857d262e4bcf901d8e7c  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
! fb58eb02b1d14abbd70a5e21a74662ec  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
! 7460547ed4226b3455f7422f94c51252  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
! 949ea84c3c748a4c9947c0672f8a6f77  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
  5f205a0115c4b3b8b249446d156f2d7c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/tuple_like.cc
! 5e6dc85f273f73a577db66860ff2a627  libstdc++-v3/testsuite/20_util/tuple/moveable.cc
! 5c14018f7e0660ff161f47444a2aa106  libstdc++-v3/testsuite/20_util/tuple/moveable2.cc
! ab779511eff5265bf55f3b22345ab0bc  libstdc++-v3/testsuite/20_util/tuple/noexcept_move_assign.cc
! c53b0b4dc3831250be73a4f7ac044b7a  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
! 1e75b1f6a0b012faf23d19052956e20f  libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc
! ac4e60839f4e2d4a4217fcab820eaec8  libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc
! 5ad953608acc5c9ed6aaa1aea449256c  libstdc++-v3/testsuite/20_util/tuple/requirements/empty_trivial.cc
! e5aa4eeaad674e6944aa83344b533f38  libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc
! 2d46ac7393728ef505f41cfbb2438db7  libstdc++-v3/testsuite/20_util/tuple/swap.cc
! b5f683ca2c5f24cde1d7f37dd643ae70  libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc
! b55fc566359097399111f11d4fca8319  libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
! ae43804567cd02db416313b38aea07f9  libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc
  e58fcb1714497eed819ca78aceea997b  libstdc++-v3/testsuite/20_util/tuple/tuple_like_ftm.cc
! 7effaba6b184fa21921716d63bcd5acf  libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
! 33532ee016d52e189d7386e603c3fc79  libstdc++-v3/testsuite/20_util/tuple/tuple_size_v.cc
! 7353c493136034501de932de40044060  libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
! b29ca6b3bae1409363d81c463c716772  libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
! 353a1cee9de6a9fdf4383647e7b9816c  libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
! 21652e17223822c1eb0604647d4fca47  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators.cc
! 5953e9bcedb91b995b0593151d3a595e  libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
! 6097430896b5d396414ef41de4f92236  libstdc++-v3/testsuite/20_util/typeindex/hash.cc
! 8d5eca281671023035c5788d713dc1bf  libstdc++-v3/testsuite/20_util/typeindex/hash_code.cc
! fa7463672fdd8a0b8e647b0af8b43c85  libstdc++-v3/testsuite/20_util/typeindex/name.cc
! a322c1a8e74fc588d25ceeee5ae2f838  libstdc++-v3/testsuite/20_util/underlying_type/requirements/alias_decl.cc
! 58bfdcc2f15550e9ffa7b0257256e446  libstdc++-v3/testsuite/20_util/underlying_type/requirements/explicit_instantiation.cc
! 83b6a6dabc703b0a60f0d4d838bae7e3  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-1.cc
! bb2305a502affc6c680c4f50ef42d79e  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
! 98014887e80b86b3a6b31f90287caee2  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-3.cc
  270e7f9293f9dc29e06013f0194d2249  libstdc++-v3/testsuite/20_util/unique_ptr/101236.cc
! bdbe65dafa365b5f92ade54de601726f  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
! f2b68b10dac570bf8a49b5bbef7b4610  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! d4127b791e7352252b97e48e01791a61  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! fdfa1de251fcecb74badf7d145c1fd13  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
! 86b2c6693c53c36f5baccf04bce162c9  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
  97249a3e9b0a47e876b2dabfd66182d4  libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
! 5fe2963ac791d6dec0db823f93a0571a  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
! dbcb04cede8f55f0096f0a87dcd65c75  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
! e83b79551bbfe23f562d1338d9d60c02  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move_array.cc
! ffdac57de5f9c4dca933d0db215716e5  libstdc++-v3/testsuite/20_util/unique_ptr/assign/nullptr.cc
! be261e28fe6ba6474fc54c6a68f17476  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/42925.cc
! d32e67e784139d98949977d0132f5f01  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare.cc
! 062d0aecec69474af9ea477ce54d77b2  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
  159e8f797a9e0b16b7daedccc9cc3e7a  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
! 79ac63020afb02f0cae1956dcc600e79  libstdc++-v3/testsuite/20_util/unique_ptr/comparison/dr1401.cc
! a17288be0df7ee44051cabe08fb959b0  libstdc++-v3/testsuite/20_util/unique_ptr/cons/77990.cc
! b6cfb348a91bfb0243945fcead5cb195  libstdc++-v3/testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc
! 7f7d58abf86f42ee529a3cbf684ddd7a  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr.cc
! 78e6ee3a6cfe9499f0bb9e80838c7927  libstdc++-v3/testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
! 89eea7b01559ff60e26edc2b3e46e5db  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
  b476290d7a7cd33dbf90702dda410872  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
! 1a2b7e7e2254b7ef7d02cf3a4fae05eb  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
! b84f08f13dfcbc4d51f59d8f38369666  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! c29378df12bd0d768890e7737feaf0eb  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
! 3c591643d8f790bf5e8c977319126d5d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
! 3183171326ccd54a94217af28736b9cc  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
! 11c6a3ab7d6e7c2546455faeaa44f692  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
! 7248abd3cee809713ab9ea23f777d890  libstdc++-v3/testsuite/20_util/unique_ptr/cons/lwg2905.cc
! c8e3a4f145b9c22dfd804dabb75ad9d1  libstdc++-v3/testsuite/20_util/unique_ptr/cons/noexcept_move_construct.cc
! 9d2a63c803feb247e75622b82f99b687  libstdc++-v3/testsuite/20_util/unique_ptr/cons/nullptr.cc
! c08f1432e41ea6e05eb2bc02088e5586  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer.cc
! f43542ad6bfa89c0def6e81d05ada788  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array.cc
! 89e3cbe4250d9a58647e41c0d1529ad8  libstdc++-v3/testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc
! 0932a8d5f9db71b87dabd75b11d3be5c  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter.cc
! c0a019a322d2b8ac6e866e4ef222c16f  libstdc++-v3/testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc
  a4344d749cfe74a0cf8b876a8d24f991  libstdc++-v3/testsuite/20_util/unique_ptr/creation/116529.cc
! b0f9b013ff50df85ba17a62a853af0fc  libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
! 63234d8d2c87aa9759058b56f96e6ee4  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc
! e47e400ac26e4e30cf6f25e2b5437de6  libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc
  582ddb2143f3eb8853e9a8c84aa99a59  libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
! 113120f60ee39ee1537faab9317b042a  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
! add6632a5c36d1a079e210335ee7501d  libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
! c24bacb628c1965dc13752c49d22d466  libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc
! 10ef31144c96a34b3aa04424181be03c  libstdc++-v3/testsuite/20_util/unique_ptr/dr2228.cc
! 27f837ac071c4307c87ddf9dd1eb1f0b  libstdc++-v3/testsuite/20_util/unique_ptr/dr2899.cc
! c0d16a219e2474e2e5ce998569dc7e4c  libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc
! 532dea5b15391e1ef4534aa4d0f069f7  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
! d22e49077a2aa222f8a5c424929064ff  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
! 455915dfcf4dc6251c24ac413d3dfcde  libstdc++-v3/testsuite/20_util/unique_ptr/lwg4148.cc
! 87e06a6a0e860218833fae6dd91e1c1a  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
! 376eb786dd68f5c32a230ca8c8e98471  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
! d2648f16a39e71baba3fec77e9979cee  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
  5e50545281dc7c1b91f14ab2c0f11bc6  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
! 1a512fd0f2ad478c5974147e0054a035  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc
! 4b84515e4d5d5b726b23baefe9073010  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc
! c36b994f1567b7fe62370ee242ec0d4d  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc
! 0fd7e1cd8f5310cf700b322e7fdecd66  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/incomplete.cc
! b9a3116df6da19c22f0ee0ed93258382  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
! b2d8dc3eb40862486b04699da8729646  libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc
! 0d3466738980ec6cc8c8efbd08946e30  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons.cc
! 1a55d14d3bb7141185a2e60f7a76aea5  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/comparisons_array.cc
  9e8690fc2de02bbc9080d442b7647cb8  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
! 306ba2d9c1e19a3cb967b645cd633764  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc
! 5503fd10f2fac5c4cb241b60c4902b02  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
  e71310aab27f8280547a5f500ddfc531  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc
! cc6f32ec4e60ecb412eb5ae2d6b09d74  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
! 149b3ee66e9d51842464462a0846afc6  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
! 405718f57ad5205eeb0381706bea98a1  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
! aa05992958007dfaaa2bb331b4df98fa  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc
! 3fb64550784e6db71d09abff307f6ccc  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc
! 2f76cf399b610f5340bbe35836cc9b15  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc
! c18a23d9bebbd5e2b78672ffc3f93b2a  libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
! 7fd11fb6b4fd5cd0ed25377a190c95ed  libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
! fea62c15a796d3c09a25182d58b1d146  libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
! 39f88614feccdb3edad96bba5dcbe42c  libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc
! 34962bdc3d2b438e1250e2bb62558648  libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
! 842134c82485fed4a1d49431578fc9b9  libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
! 35347462af9de7c4bdae7e6e41cb1682  libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
! 70c3476a76312879bff6968fd7004ff6  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
! a7073d60a5a7875ab084e6f14159e695  libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
! 3dd566939e5b2890da95111b20d66ab7  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc
! e0d44cbad1eb705070d90f8be658add1  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc
! 9a49272a09aaad1f39daf2c5791b5420  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
  696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
! 6b0af96b25bbf619c8b4fc01b1d8cf30  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! 28eb12bfaaf864aaec384ebb78988b81  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
+ 8a98faef69d02af6ad48bf92f83aa16d  libstdc++-v3/testsuite/20_util/variant/112591.cc
+ aec986d5aa236946fd656f5179088540  libstdc++-v3/testsuite/20_util/variant/112591_compat.cc
  909e769606f79e2311fe65f425279584  libstdc++-v3/testsuite/20_util/variant/80165.cc
! 8c3f886f16bfd7a687fdbaaa098507a1  libstdc++-v3/testsuite/20_util/variant/85183.cc
! 0ee09f653935979f3d581da42972d2b8  libstdc++-v3/testsuite/20_util/variant/86874.cc
! d3b668b66d3b641d428de93cf731cef2  libstdc++-v3/testsuite/20_util/variant/87431.cc
! 2f8b7fd96190e15fa54fe8403e51c7f5  libstdc++-v3/testsuite/20_util/variant/87619.cc
! 320aa3b045f7ed99f9ebd58ced53f329  libstdc++-v3/testsuite/20_util/variant/91807.cc
! 18f4f65dfa271a838b57b597af2cbd05  libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
! 0abe5c0a11c0e1c498fd40502824d118  libstdc++-v3/testsuite/20_util/variant/95915.cc
! adbab873007463dbf77f5d52fb074d3e  libstdc++-v3/testsuite/20_util/variant/any.cc
! 734b02ae3b190b46b8bf110e5972d104  libstdc++-v3/testsuite/20_util/variant/compile.cc
! bf2a98b9d9e5e4d51eeea3285ea8a137  libstdc++-v3/testsuite/20_util/variant/constexpr.cc
! eb3bac7fe08f7a204267f88fb5200c5b  libstdc++-v3/testsuite/20_util/variant/constinit.cc
! ebef8c39a05684c32566afef1526f985  libstdc++-v3/testsuite/20_util/variant/constinit_compat.cc
! 3cc94e5dccc411145f74cf71cc9815ad  libstdc++-v3/testsuite/20_util/variant/deduction.cc
  1fc2162ff0864215d7d9683e80eb2be2  libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
! 49acec8d40f50dfc492833379f3ac14b  libstdc++-v3/testsuite/20_util/variant/exception_safety.cc
! 12259b152cea96aa62e0576d8295a7d9  libstdc++-v3/testsuite/20_util/variant/hash.cc
  bbb776a24ac89aacdb5d1e03cb0bc4b2  libstdc++-v3/testsuite/20_util/variant/hash_abi.cc
! faa48ecba6cfa82fcecc44262f7a5d89  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
  04e80f49e9982a3130fab3556d7da366  libstdc++-v3/testsuite/20_util/variant/relops/115145.cc
! 870b559652bd9c2cc69889c4abc1bd3e  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
! a24699cbf5307e90ad6686402ba91f7a  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
  11295d708b0b34d0e481261450b7c640  libstdc++-v3/testsuite/20_util/variant/relops/constrained.cc
! d80efce60b0f9730b6dd2ec2298c008d  libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
! 9f7528cebd89d30456af44dbe8818a12  libstdc++-v3/testsuite/20_util/variant/run.cc
  064e84504a9fc3d50cfd8e95617bd6e1  libstdc++-v3/testsuite/20_util/variant/types_neg.cc
! 1dcdf25d4cb71a0517cb44ae4e3c8fae  libstdc++-v3/testsuite/20_util/variant/version.cc
! 41a1b7dbe5a8d2be0c4b0444d5936954  libstdc++-v3/testsuite/20_util/variant/visit.cc
  17098b13758ee1e3f169c2ee138604aa  libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc
! 0addb75bfe99fdada359596d13320714  libstdc++-v3/testsuite/20_util/variant/visit_member.cc
! c8969dae2a3d0e73e116d3dc96dd093a  libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
! 989ca7a1085a6def7ee2f959e93df6ee  libstdc++-v3/testsuite/20_util/variant/visit_r.cc
! a6fd5346f06f467e86e7eb89d5afd34e  libstdc++-v3/testsuite/20_util/void_t/1.cc
  2a3f4c8a412a038d7981789c996eea5c  libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
! 3b663b05226005151195d288a92c9898  libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
! e47a702e4f8d53461d989c8f8e9bac17  libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
! fc89967b3f28abd88011667d3e44891e  libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc
! bc736bbb40d9c0a35cd7cecfacfe83d2  libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc
  6b897d033cb55ff130e351833c656265  libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc
! d474ab3de86472b091cb5e1eb977e148  libstdc++-v3/testsuite/20_util/weak_ptr/cons/virtual_bases.cc
! befd5e9114d32950509d721ecfd9ab74  libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc
! 617ca5a324eba043688c30abdc6ce837  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc
! 2f3b9591e0251d9b1629799d582d140a  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_equal.cc
! 29bb5a9dc38591c43c42b4358dcb686a  libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_hash.cc
! 2b851e2610bf26140f3cf90b7dd7cc0d  libstdc++-v3/testsuite/20_util/weak_ptr/pr118757.cc
! c0835be07d979dbd37ef71a1ee4e5cac  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc
! f26fb480cf6903e0505ed477a944c576  libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc
! 9d053ea24cd002d2794606c97089492d  libstdc++-v3/testsuite/21_strings/basic_string/40160.cc
! d4b5c2285a5b21bc16cd908bf76953e2  libstdc++-v3/testsuite/21_strings/basic_string/56166.cc
! 21155c5d671e9478b3d49c53c8622ec9  libstdc++-v3/testsuite/21_strings/basic_string/79162.cc
  6248db4fb7f9c3f83628abf0ac9a21f7  libstdc++-v3/testsuite/21_strings/basic_string/allocator/116641.cc
! cc4d17b6b6074fb95d7c9c85a36b2033  libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc
! 5820f695c833aed70cb0e249128c4c5b  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc
! f45a1dfd5ac96ec2c04c64b0a66b5282  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
! ce74cf69860506e1282db8bd182faa61  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc
! 2e33e027a0a0b186e71dcb20e08fa859  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc
! 7c5b36a790001a08b7cb6b0f42d48f44  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc
! b24ad4654d6c793abb421cb14d571418  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc
! 4ebc3513b0164b000d4c6f21f1ac1cb2  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc
! 352f11c1d0b123d093721953473567b9  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc
! 9552a9f0f7a7a64b41d4016ef525d62b  libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc
! cb4afd7f297e147d951d200b2337fd82  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc
! 37198f133569bc8bcf566a4e7837977a  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc
! 8c3fd26182ae59b244e2747f21bc3e13  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc
! d6d5a52da6f4214325f9bda7d7aa4aaf  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc
! bb4393c0599ee15202ce8e032466af1f  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc
! 914ee97104cd4eb15b4ff0daba827f12  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
! d72a828a7c01308499ef00421e82d8d3  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc
! a07619e43e955b741e18ada8dc1368f4  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc
! 58df4974054cfdb048d47953caf0b439  libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc
! 835fb321fb414a531349e170e6ba9151  libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc
! 9613fe9aaee178a7254193e5c01deb98  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc
! 61b5d22c68d4931145498d2ccc110e47  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc
! e50974ee2fad62b92508c9e786d602f9  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
! b5159a07107f67bd9e31d22e34af5371  libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc
! 7ddc6c5a0f6e99704b218592bcf819ea  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/1.cc
! 46d2ae6d982f8f293d1348894f8b90b4  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc
! f02bdb9761c46e917fafd770562c07c1  libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc
! 4a50136ca15fea83d45bb885bb2159e0  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
! 55dd03a6a0ceb0d6c93c83c1d6dbe04e  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
! e32731434659b4322ff5f461b1fe63be  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc
! bdd3e2295ed91ade5d5c3a6d8dccf289  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc
! 962c37ef83ff18b9216d1592cccfa868  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc
! 4ce0f5eb6ad5546670b06b649578b70d  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/42261.cc
! 923dba17326c3c49a5469e0a7d4b9fb1  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/5.cc
! 7a5d514653dc5acbcc59c62dce524ca6  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/6.cc
! 4947c0b0c4c52c941e516db4c87426dc  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/64657.cc
! 434ee9c165119fe429529faaca37c075  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/65085.cc
! 81b112942d4126e4206992cfa0b66452  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/69092.cc
! 6c85f3d8537ffa823450f27ce0a11480  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/7.cc
! e4eb506a2a27adfd0d269d0387924cdd  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/79162.cc
! 2f22cf660d56a6088be8c70134395a71  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc
! c8202c07cd7932a0a98f14eb5040477c  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc
! a6d00972ee0e788e032ae952e44fca7d  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc
  cb9791fc25754e1c39b72501940f5e6e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
! bb4b9861a2dde26a7a342b834513fd4a  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc
! 7ba708b807d916790ebdbcbcde611376  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc
! 4e27120ce1d4b8dc3cf82911329431f9  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc
! 1616b03e0a0153d2fc3c3e6b5b21e33e  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc
! 74016a293f3ca502d51a2f3483b08aad  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
! 879dc511ff26138755e9caca3967d1c0  libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
! 316760a099fd131ab7d6075e0ef40b20  libstdc++-v3/testsuite/21_strings/basic_string/cons/from_range.cc
! d14e12c7706bbf2e68020cbe69b566e1  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
! c038e21d63cd82a2d5bfc40fb5e51f5d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/2.cc
! fc5f396488d0c6921a3c6b16f004fec1  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/3.cc
! d234334c923e97afc430d432cb1e0f4b  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/4.cc
! c74b77d1feab78a51decdee8ac51f08d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/42261.cc
! 1b1c296d224afcafc08af93f03031915  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/5.cc
! dc2bbe595761ac3ae58cb261a6a645a2  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/6.cc
! 2e8cd06613a3c0a411f999a8c795fbc9  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/7.cc
! e4eb506a2a27adfd0d269d0387924cdd  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/79162.cc
! 33a24147176004bc07819cc45564e473  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc
! 1825cbf7f875e4b42cf0e28bd9199226  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc
! d29aa2c708ecfd38da918b254dbdfe7c  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
! bc300258b6328a0abc47681d61fc1ba3  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc
! d6f66632401c9ccf7d68d3e26113cbce  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc
! e5fd9b1e34af8b99ed0fc146e4f49a8d  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc
! 7d161d76df19b9665939f36b38e4a9f5  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc
! de03737fec110af21e45fe8249bf70b0  libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc
! 3406a31d2e3bef6bd4622e24c36a7210  libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
! 4782ea411e4af80f1d3c3fb20fb86e9b  libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
! d7c9a93fc941d037a1e5642ba7d63e6b  libstdc++-v3/testsuite/21_strings/basic_string/debug/append_neg.cc
! 1abcd4dc3132914e794cddf60b544318  libstdc++-v3/testsuite/21_strings/basic_string/debug/assign_neg.cc
! 7d0cf2bb338ab4594a5bc5b0fc77255d  libstdc++-v3/testsuite/21_strings/basic_string/debug/construct_neg.cc
! c9a8d5b830d98ca9891ece8a139f8571  libstdc++-v3/testsuite/21_strings/basic_string/debug/erase.cc
! fdde50b2dea4cc29df987bdd3859ca85  libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
! aa29fdf471f4d33b0f29d65e33715155  libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
! c592d910f5c7a7f1521182254b1da422  libstdc++-v3/testsuite/21_strings/basic_string/debug/insert_neg.cc
! 22041456d73e3a4f07f585d55c98bdd8  libstdc++-v3/testsuite/21_strings/basic_string/debug/replace_neg.cc
! c8a546775dbaa7907a780e295cd4249f  libstdc++-v3/testsuite/21_strings/basic_string/dr2268.cc
! bd85cbadf075be56cf9d21897a0fb686  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/1.cc
! ddddd40ecd43d5f1738dfd0be1a0124e  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/2.cc
! 1437d3d17588fd63f5bbbdecfd401d92  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/21674.cc
! f26de83f10476ccc93c32497ace1ffe8  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/3.cc
! 545d3ce7e3cd7f6e30c2bb40b2240ccc  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/4.cc
! fb6ee625a0239158c54e1588c9ad6fd6  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/58163.cc
! 7ce6fca124432a0d4b611a2e910b6bd0  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/empty.cc
! 0cbdbc490850985322782622a2feffa4  libstdc++-v3/testsuite/21_strings/basic_string/element_access/char/front_back.cc
! cc101b1db77814e4b8760358e100ddd4  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/1.cc
! bf9108064775a14b14651c0cacd84f84  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/2.cc
! e91f6a5f7dd8526c6e769300d9d4f61b  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc
! 5c611cec5fc36a2c29a81a09c4f40345  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/3.cc
! c77e84fe47605fe37827104419317d09  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/4.cc
! 5538504506025b03263184e70c9f84fb  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc
! d8864cf7245a212927fe653883aed59d  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/empty.cc
! d20f5bdb386730eb7fb6ddacfab25005  libstdc++-v3/testsuite/21_strings/basic_string/element_access/wchar_t/front_back.cc
! 69456325b3ffe72a0c7def4f5755cb7b  libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
! 293c2da21cba881ac35063054fc7565b  libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
! 6fde2d0a6285f76855b45df3e3ec079b  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash.cc
! e8497c15d0af93b0bcfa51a8760a34a2  libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
! 7122020a100ec968c1cdf6fc84e4f9da  libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
! 281923d891d2f74f32606f0b7ee4f643  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/1.cc
! 52de2ca20489e5e8710fb9714087cfb8  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/10.cc
! 8c39e49a06dcd3bbeaa69883e4aa7e0a  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/11.cc
! dac5f62666fda95b5f005b1305620b2e  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/12.cc
! 4f42560bc332117ba03f6aa35490094b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/13.cc
! 20d32c91d649b841a90c5f4c687f1647  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/28277.cc
! 1ad0aaa919652d08ca74daf1d182b7bf  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/4.cc
! 7aea60d3e70904e3508566a22db930a2  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/5.cc
! bd32c243330cf70ec7b0f00e64eaaaad  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/6.cc
! 0eb493ead6ecd5c474b17a43fde7353b  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/7.cc
! b67772998d52d3b01b2f6b237c710063  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/8.cc
! 2293d62033a4ce8f008f7c02d584fad0  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/char/9.cc
! d2424ecec7a81be9440e1aaaee3ef551  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-in.cc
! a4381a8a90626c862f7577bc608df3d8  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/pod/10081-out.cc
! 45dd46c04502313dc26473cce26891be  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/1.cc
! 0b3621718e97923c0fbfd57829a5e77d  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc
! ff57e94bfd6931d2db1b34c4feb45bd2  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc
! d15198542303b592fdfb65e941f02c63  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/12.cc
! 85ed91734f0d537cb6bc93f5f6b99838  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/13.cc
! 0550cfe7a9e1ff15b36a42c626cbec24  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/28277.cc
! ba757b47216c39bbddbe749ff81ad5aa  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/4.cc
! c325f61e1286fc4625808092e9f102ba  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc
! 5da4979f4479f9d1c95b0a5096f6fc8f  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/6.cc
! b1ea1f1af99b7254c1c5140d23116d89  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/7.cc
! fbdbc1cbc6faef904e2c11b858eb9f78  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/8.cc
! 6dd61f4860c575dff5b0e3b0b67fb235  libstdc++-v3/testsuite/21_strings/basic_string/inserters_extractors/wchar_t/9.cc
  5b256fb360837928c3a4fae2af348978  libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
! 21991e6bcacbf5778350e19f36f6d675  libstdc++-v3/testsuite/21_strings/basic_string/literals/types-char8_t.cc
! 8c6b7728a324d3452c8b2a3636cfabca  libstdc++-v3/testsuite/21_strings/basic_string/literals/types.cc
! 579cde1b2c305eb6ae2635a0a7d393ee  libstdc++-v3/testsuite/21_strings/basic_string/literals/values-char8_t.cc
! ef320abe7de0759d4b2207363e24b3c6  libstdc++-v3/testsuite/21_strings/basic_string/literals/values.cc
! c8b062e721a64937626a9aef533a3121  libstdc++-v3/testsuite/21_strings/basic_string/lwg2758.cc
! 92e8d1db6aa2b4e56c365d32856a2b2a  libstdc++-v3/testsuite/21_strings/basic_string/lwg2946.cc
! 277d55d5d10b6b45480fdec991639a7d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/64422.cc
! 89506a2ca72334b3212f4c9fb2babf18  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/append_range.cc
! 9da51955fbae1f849402246eb21098e8  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/1.cc
! f8cd7b4fdb89dafa1ecedfef861c67d6  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc
! 8414405cf9ea21accf34c123777bf2d5  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc
! c4f33b7e2ac4f57f6af36f674cf535f3  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc
! ce02906e1efb3e30725f35430f65b127  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc
! 3c5674f7364d5955c395448eeaac4122  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc
! 04083623a90950eadeb34aaf8ae6d129  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc
! dfea429c892ef77ec2b8abd51317f375  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc
! 94b29218fb10d78f60975a6d63a4246b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc
! dfc69d419aeb6a926215799be42addc4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/1.cc
! 7e344142f41b4491e4c57a0c02767e69  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/2.cc
! 7910800970a15a8884d03b12f9c9074b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc
! cb851ab523622319c7c3de789167012d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc
! 408690b37a2d66a127b837444db9dcf2  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc
! 1d62fc5ef2127d564a4c8f7d9ad296d7  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc
! 0bee0cf116e0534b630116b30ca738b8  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc
! 49e0737f8c01b24a42b4c0e40baba69f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
! adc632f4ad6efa747ac292f5efac5636  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc
! 8793e8d85cb369bfde890c700f4c120e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc
! f2b4433578235371a24526caac614b35  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc
! 11912aaa7221bd4f9128b69f0d756706  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc
! 6be7ba05532cc6cc949b202700f7f052  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc
! 9e897582e4b6f8b4483ca18079e74d7e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc
! 0159e41a154143d7e401000de90c2bf9  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
! abbf03699add366292a27d70ff09804f  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc
! 8d6e9f24fcdfe66c395e5e90117d9912  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc
! 2c591c428eb08faafc8ccdfe3c3f19ee  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc
! d77fe1a9446740da905f5ed321b6ae80  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc
! d356f7f3fae27b3f2be158636def2395  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc
! 7202310037e4b2cebf332b08dd941db4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc
! f88d1ccd8c54293bf515be35ffc1bfb3  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc
! 8bb9b5dace289f4570f572fb91cf14ab  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc
! bc8439e99bc4804e5e1b9d1aefd3a268  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc
! c4efeee5a5e87bbedc09dba60a33620c  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char.cc
! 6496c3d1f94f82db952ea9bf8d17f4dc  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc
! 54fcdaff1e4f6301ab3667259477b767  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc
! ccd424003b19a1278afc6d5255c3e138  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/2.cc
! 1a7a7ce9fc159a5ab902cbff034a695d  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/3.cc
! cf734fe0259236e9d0945643f43f4ff4  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/4.cc
! af756e43fbc9c858bf575aa1463cd80b  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/5.cc
! f12f0edf85f28b4776c7595590fed182  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/6.cc
! ce232e75f0a9b92fb6eb8c740a65e4db  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/7.cc
! 1371a34e64b61722f5b9c384e3d5635a  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc
! d429076eee8118fdc4c638e0625c76e0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/1.cc
! fc4663286dc464fc49fb08a6f708dd8e  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/2.cc
! d407c1ab4b90cb620b40e681cd505c77  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/3.cc
! 8092ca7c100e9294e8c25dbc4a771219  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/4.cc
! df85f3d4d1a170c563a181c37a6099e0  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/5.cc
! 6a28d22ddd4559e8b9691918ace0bdfb  libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/wchar_t/6.cc
! 1b15ca3e0e7dbebd0d9180d9f2d4c635  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
! 0113057ced78970c627a96de9b2b11af  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc
! f2f4c1f0e7aa90804691d32345f54204  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc
! 021a472933ae00652ba269bd05879e4b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc
! 2a21da1f2d5798360453364ebdae395a  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc
! b0c2f45b04be460a62e91c0d9c3306f6  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc
! 7c73098a8e90f08f13b47ab7a96d9bc7  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc
! 8b7443c4b45acd23b34e4acd02fd8a72  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc
! f4fe62f0a58f0ba577edf42aa68a93c0  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc
! e9d694ce9cbf296ae80c64a0f63a6b71  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc
! e065cee970c0ad4cdb712ed882d62ac0  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc
! 39289e4894409698144adddce55d7b04  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
! ef146c20407e00f07ad88fbbeecf7477  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
! d1f2d7fb4ceff4a90841cdd4445e4a39  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc
! 835f37863be51567491412951a901142  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
! 30c12c3bb8e23727dabef77705f76756  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
! dacf77eb95f61789338e2d346de6268d  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
! ad0397defcf73ca623e6ea73d7856b5b  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
! 514d6c8f702a853bf5233493143b6bfb  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
! 450bec450dd9cf89cedb25ee5e994825  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
! e1c98367c46d2c47c6395b17beb5f179  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
! ccdfefe02774613802f44fe4ede91740  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
! 497ab13fca53699fca2e711f471ef9c4  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
  fecb5f76794dcb7b16941f3d83836e9e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc
! 7c1acacf00d3a9300cac6f06f35ff189  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
! c24c0e6f49ab658726699f1007f123b4  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc
! 60aa6e40b4c9b784a1628ce2f4ab2791  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
! 41ede96f40bfcb69acdb241225f156ea  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
! 746c2d1299627900a776859470cc1fd5  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
! ec53bc1685fb080b40ba203340985256  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc
! dca883d902781bcb941741dd98f61433  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
! 8df1c9f133d83095c1735328638079e3  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
! c467f10a55978c2749554c22046c5d95  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
  ae24673f13edfb3394be4338e100ab0d  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
! 8dd03e32b04fdbc189e7bf9509f89394  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
! a981b296f14f4631404830e5b014fc80  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
! e54f209b81063cbc6a376ef3719f9f5c  libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
! 637b07406e4f25d080f8300b36c2834d  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/1.cc
! d0246c1c5bd6b21d93b79e5c09a97392  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/2.cc
! 83075fa099239bdf8a5a3e7c6866e838  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/3.cc
! 683f1b0a507dd81709c495ce7a739c2e  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/4.cc
! 828448382a0b1be82ce998db25ea99f4  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/5.cc
! 42876cc38efac71fd8d00a28f6e6e918  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/char/6.cc
! d2b8c6c14b31c0e42efdc6789b55bd2c  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc
! d761706166fe12f351d82ff11115db15  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc
! 488e0557f99fd5e918ea262b8447435c  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc
! 322f02a7e1227ae201371d42f7d8812e  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc
! 4d2c76c074dfff0cf905208cf72ad56c  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc
! a04fa2c9af26ef4e98127bed57c63c23  libstdc++-v3/testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc
! 98ce446675fa780509f924a6179251f1  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/1.cc
! ae0dd9c76f9c435e91a8136d7bfbe9ad  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/2.cc
! 70d9f8eee80b49266d06928375e921d5  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/char/3.cc
! 01672ed3ee4c65127b072603c3a3556a  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/1.cc
! 63f6dc54333f0d4d23ca090594ef6efe  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/2.cc
! 92bd990c331f7e880c0ae4031564b1a0  libstdc++-v3/testsuite/21_strings/basic_string/operations/rfind/wchar_t/3.cc
! 68f2f56b561735e291f9b90781bd2ae6  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
! 36d3fa32ab8bb6c905772c50424fdbce  libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
! 4322736d535b5af2102a3eaab59f0d02  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/char.cc
! 330bcc920a69f37ea7107ec95a382937  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/rvalue.cc
! f52ff5a307b589356c44e935f133e3c7  libstdc++-v3/testsuite/21_strings/basic_string/operations/substr/wchar_t.cc
! 58048963a5004d5252fd699db587440b  libstdc++-v3/testsuite/21_strings/basic_string/operations/subview/char.cc
! 0dbb47a32a81818f91b6ea2e9bd576be  libstdc++-v3/testsuite/21_strings/basic_string/operations/subview/wchar_t.cc
! a70c6e4bf4ed4687b70e03855d3d605c  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/1.cc
! 148eddddc00513e20670be18bdd3b0fb  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/2.cc
! 89802fe8b25bdee454a4c277983c37ab  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/3.cc
! dfdf0b475e0c5e1993785d996c0eb532  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/4.cc
! 905a7fbe6977832731932c8544dd7d04  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/5.cc
! bfcb1180e3544dbb1ad401175636d951  libstdc++-v3/testsuite/21_strings/basic_string/operators/char/65630.cc
! 6374b039e595c3352be95db89b4e9274  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
! 2d7f9d8d10644659678086140be93b5e  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/1.cc
! c159dab350f82448b580e67ef4648d59  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/2.cc
! 0bf73c957c69e6072021ede28f90ba50  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/3.cc
! 7de843e5cefff6824863a1a2aa98b264  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/4.cc
! bb2f0c0584a8382c55771e5419672b25  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/5.cc
! e91bdf25cf5a818945d42f5f0ab6d529  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/65630.cc
! 35fdae771cda94ffdee25be5b80df980  libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
! 451d79ca34eb821cff2631d36f420c53  libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
! cfbd0bbc9b9348dfb833ecfb4ff73ac2  libstdc++-v3/testsuite/21_strings/basic_string/pthread33394.cc
! 5cbf14ba374c59f13df332573b210c30  libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
! ab105d26e6a1e4fc29dfd782376726b4  libstdc++-v3/testsuite/21_strings/basic_string/range_access/char.cc
! 7dcf8fd6b000738c1b0c5ddf77822ad2  libstdc++-v3/testsuite/21_strings/basic_string/range_access/wchar_t.cc
! bffee440780d59dc33ab7a12bf0b4fb6  libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
! bf19604dcd83ef9c6f1931635da5b3ad  libstdc++-v3/testsuite/21_strings/basic_string/requirements/dr438/constructor.cc
! e1c7b686a9232290736e326bb0c4821b  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
! 9932b48f98295660456808d8e9787b23  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
! 90447aa37e31060de73438c3bf334c6e  libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
! 247e86c3af012c39e19ad13731904ee7  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc
! 6c8f2dc4a35a475fb38b35c84d5ac299  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc
! 27c426031ae98b26d75af4b64ffee3fa  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc
! b9fb72790cdf7d2b2f362bfd003df316  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc
! 360acd519901d1ea14d216b88685277c  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc
! 792cc8a6dc5ba5b3d91e8f76cc1acec2  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc
! 2f97bf2418ed350e5b276db9d6a7583b  libstdc++-v3/testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc
! 99fdcfcbdb9c44fc9afce67138561b65  libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc
! 40af1802ce58ab33782d02d7ed05cb80  libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc
! b065796a9fe3ed8767b8f7770026f8e6  libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc
! cb028bd631a78cb039529958d8828f7b  libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
  c3282f46cf0aa8f94d0ccd179b173e9e  libstdc++-v3/testsuite/21_strings/basic_string/version.cc
! d245fc3e9e9dcf35d295bc647505fe2f  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc
! b81ceeb2d559b9b0e52978b71c3bbf64  libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc
! f36ef7385c6285adccb554e3a981e3da  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc
! af9b57e534e05dd0163512bc445cb795  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc
! 546ff3f2b6345c8eeccd5b22d4149549  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc
! 2f36cac0d16506a7533a735234a00b7f  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc
! ecc708ec64996c141353810251756eee  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
! 159c7d7e2aca4f07122dd58b6a2a5a2d  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
! 7e2f6bce98d589c022cd7295ad2377ac  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc
! f127202e9769a7a2fd83b0962fd2d32d  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc
! 084cfb9b32edc25a4a682d99ad3882cd  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc
! e961f2a9968c1d97a8c3744f88e14830  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc
! 2abf04bc5a00bb4d7d34b0723773de83  libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
! 1d55268b9bc840c86879455aba782e4f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc
! e9416ca729fbbca0dc63e51d64309db1  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc
! 97682f92736a657d3589ea817e9c9de4  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc
! a739da25fc41de8da125306d1b1f6807  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc
! f46a84b78796769900eff51c44f0acbb  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc
! f009235e762407ccbf9296ce7acd5c82  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/empty.cc
! 3cfe1e0b25415ec1001f6ab0180994f6  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back.cc
! 50e2a0234ff5387231825211f21cac60  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc
! 1b2a67eceb5aacd16e247aa54f2f86cd  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc
! ecf5a75c0bb2507b18634826c2844909  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc
! 1d0c4239fef902a1454fcc10778a1a32  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc
! 670c82b5d1cb9bdc279f8f93d0980bf2  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc
! ba9fb88e6671528fbe3b2b054b53f322  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc
! 997558dfab853eec86d0af407d8a99dc  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc
! 44dd907974e02fb79b10a84b75c48540  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc
! db983bafe27f330d4ea8a95b9bf67a3d  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc
! c45cd6573c15cfe06334ee735110985f  libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc
! fa7b0463c568146f792b2a0ea3a09c6b  libstdc++-v3/testsuite/21_strings/basic_string_view/include.cc
! 3ecc067f5595b60dc75c8e8195bbbe01  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/94051.cc
! 95646d9509c7eb06e59c4c9d9b746454  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/1.cc
! fcc299d583bc6f623d13163758da4ef6  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/2.cc
! ad1664449cdeb78ac64186fb70686452  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/char/3.cc
! c55aa9a0ee83d40f157e4e9f7d91ca8e  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc
! 3b3e5a93a509fefd903b907559a65d9d  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc
! 367a92bd643888852b3063a284d07885  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc
! 2f648db8d57af0961f5af3a33791cb13  libstdc++-v3/testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc
! 74937ccddc96205351725cad0620d67e  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types-char8_t.cc
! fdfb77aee0570f2a4515321d14b44f17  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/types.cc
! 763a367e24fe6c999dfb65ccd7908f61  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc
! b0355d21bc82e32e34142c01772872f1  libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc
! 780af8da87e5cf838c408810d4fd5e9e  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
! 56ce6432edca63cd6ef23f7112134ae0  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc
! 7c6f344fde52cd70c8b3af0458d1ec1b  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
! b7fbde328c2aa6a75b8bb7ce83513b06  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc
! a21e995298d83c374bc134adde9234ac  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char.cc
! 679dfd9fe80321d8d91fcb5d68703625  libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc
! 837281c6d44b6dd65a44ef7140fe8aad  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/1.cc
! d37b2e7b8177fafe1d973ab7a1209c49  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc
! 589ace9887d9422298d6ddb9501d1647  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/2.cc
! 0aa632f357dbf45c967534b0975d652c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc
! 6eff47a64efcd4c578c7b52ee3dd52c1  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc
! 55cd5e05df55c96d259c7d661e958d40  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc
! 60629391cecdb8eb4d844bb77834664b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc
! 477602185c5f2790596767a1560a629b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc
! a9e59a3de984f893fcc85f8733a64176  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
! 3317b5d765b1b8094e67870d6befd2ea  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
! 577396fce7e1c574ad58184218b93450  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
! 72c8e977b450081b448dacf463dad604  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc
! 45471b1eeb2a2860777970722db90655  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc
! 552df8b8cdfcd290d1a1f7f47575e66e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
! def925325f7a0f1d4fea5436101eedef  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc
! 05c34231d03b49f0d95d622aec48a7d5  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc
! 7e47ca2cb3e33222ed8146068463f3f9  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
! 7db6ff529617ca408c2a0efb92897a78  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
! 5c6304d1bcdc7b303f2aa1bcc7515032  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
! ebb0124228955d34f66bbb8887852b7b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/1.cc
! 79584fbde5ff3b3f88726a7cf3cde87f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/2.cc
! 96c780eabc38f89f5d8efbe386b09e1b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/3.cc
! d09bf3b0ea50349f7d58931979d2c755  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/4.cc
! e762722f83198f88273effeedae50950  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc
! 0c3875d240adcee2dd2736a286bee4c8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc
! 76128783ebf559cc2e1fe7ef289db54f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc
! 101e70c3942273c0ba507f8422606bd8  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc
! 6e8b59d315ea2f2b4582d2f2654b1117  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc
! c767ac117622711a189b034cdf230dc0  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc
! 29f6ef8fd0449958cfd36c6dca4b6c5c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc
! a41e3d841a86d6a66f2368c3aecc5c1b  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc
! 49b245faec3e85dbfbef33950f6ca83e  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc
! 401953e5b63f8e6f53a8e5e9eecb5d0d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc
! b2460e8a3bbb692c1f178f9e16ea7c08  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc
! ea0a43af2c3c2d7f6ed74d075dce6fce  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc
! 305134a29c70540c44785ca36934fdbc  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
! 43d79652c1a2286402bdaaab1779665a  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
! 97351cbf5bfbe868ce5b1f0c6911e617  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc
! 76c437c1e5622264eee549ecbcf42c1d  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char.cc
! 9db3d2a1cf83afc0d7be29800a8b832c  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc
! 2d5087a091d6d8f48f37b9c821447e81  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc
! 9fcb242ef13e2e500fb71af18acde5c4  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc
! f1e55d4af67918e00ea4b2039e63a5d7  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/subview/char.cc
! 48d17f4f9d59c80fbe60dd57db9d6c2f  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/subview/wchar_t.cc
! b60cd526db2956c212dec1e967c6cb8d  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
! ecd5809a68de54ef2b03b4259ae805db  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
! abc9bad1e05a08972c19b04adfe95226  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
! 585731489727c12be1799380293892b9  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
! 41992b78d22ae98bf6cb52fb66747f53  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc
! 72e0ef85c0575afae74200387140dfcc  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
! 5307c1b2a22ae4b1094f298349b569d6  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char.cc
! aaa3bf9d9730c45c753d3e4134ca709d  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t.cc
! d9de0397ee6f20b14fd5512fe9ae7a25  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
! ce02f61ef78e01aaa767762685978032  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc
! 30424bf8ebd53422443acdf5e25a0a9f  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc
! ec3a59f14b3d8d0cd067660539044a9f  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc
! 8db32852cd617c00f06e1f617fd0a777  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc
! 70a4c02a1115e3960ff2c07fe73b43af  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc
! ec7cb7e0de10b8aafaafe5c014de9c81  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc
! 225bda9cdbaf4780013fbd60d1a0af4a  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
! 41ea2250e6bc0fb5d8d0354057f742bc  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc
  e79ffa6e2df79e903d738baa8867e3d8  libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/version.cc
! 2b1c59c0c8f27763dd36c7cb37d29551  libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc
! 2b53233d73df0355ea698acb3718fdbf  libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc
! 2fd8192d4db2dc9d7180f15672130226  libstdc++-v3/testsuite/21_strings/c_strings/char/1.cc
! d9e24405a2b018f8fa38c490619c1ef8  libstdc++-v3/testsuite/21_strings/c_strings/char/2.cc
! db3b08c2d0d85200b7d8ad7e7929cc31  libstdc++-v3/testsuite/21_strings/c_strings/char/3_neg.cc
! 9bc1922416c5c91b2be2b462ef98b47c  libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc
! b80e95c21fc9e9527782dadcf591fce5  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/1.cc
! a66a7bce1098a80771edec1adcf13c57  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/2.cc
! d4d33e5efb3074b98862feae06b7be21  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/24559.cc
! 1a2dbcb8fd73a6ce9635c06d5797a99f  libstdc++-v3/testsuite/21_strings/c_strings/wchar_t/3_neg.cc
  82d6b4f00580779800e341ec6c9ffaea  libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc
! b20d248520d1f3c2c5762dd366417c14  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/1.cc
! 344e9eb1a72b2f55878b5495fc3633dc  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/57704.cc
! f1b202eaf0776380bc2d4b96b4d3d526  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/65049.cc
! 8221c0a9ae3aee8786e1f37916ddad72  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/99181.cc
! 002c1218de5d84c87d4d22703c0dc4e0  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char/typedefs.cc
! a7c8624896a0922356a4979546ba3c9c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/65049.cc
! 19bf04af87d13657628f010d202b0487  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/eof.cc
! 65a9f84caecfbf79d54058954d20b802  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char16_t/typedefs.cc
! 229bb08be36780d00adcab65dbd741d4  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/65049.cc
! 3358c18d86dd9b3ede990fdb272abb94  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char32_t/typedefs.cc
! 6b1f630e51fd2de669e3d880ad43e93f  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc
! 5cae55bc35d798261fa994409b0bfe78  libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc
! 6dbb8e2080d2417580286938adea8ca2  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
! ebd15e55fa82ba7c5ca63651f8c95a97  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc
! 1ad9d6484e047e23b5e8f8a364e15c0c  libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
! 82bd7b1927f82e9153154aacf3aa2ea7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc
! f42b55d0b6551511bc68b475cc2830c9  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc
! fcabf7d7ea437752d2d1b9ab14157eee  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc
! 32a3e12ba2d6b1abf45d6fb1f044e0f7  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc
! 2df4adcbed650fa069154043a3af9bba  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc
! 8dddb0989f8b474f81adbff9b3360a64  libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc
! 5e88edb62e21740fc8199116c7b9ecf3  libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc
  819f386019c36ff55ef68149f90bbfdf  libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc
! b877a0bbeb1c26648faf909ba728d805  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc
! 9c7704775fc453d08f86d2acdd47dbed  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc
! 7c381a9852d731537681a3113fa912ac  libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc
! 94ff337c87ee8ffb777a035743449bca  libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
! 60f012ed15c94899105ddea26f343289  libstdc++-v3/testsuite/21_strings/headers/cctype/functions_std.cc
! ee5c91f0e39eb40a00344be9dd84a8b4  libstdc++-v3/testsuite/21_strings/headers/cstdlib/functions_std.cc
! 4fd9be5cd0783faa409f2f8279ba9fc9  libstdc++-v3/testsuite/21_strings/headers/cstdlib/macros.cc
! 6f1a7237534a1559cee4add1785ec590  libstdc++-v3/testsuite/21_strings/headers/cstring/functions_std.cc
! 4fd9be5cd0783faa409f2f8279ba9fc9  libstdc++-v3/testsuite/21_strings/headers/cstring/macros.cc
! 8cdbc5ae968b115cf40e8bda01184ca7  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
! 28caf340078d6465accfc6b13f8bf7ad  libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
! bb27ab1e218123d3dba7d6a40454ac39  libstdc++-v3/testsuite/21_strings/headers/cwchar/macros.cc
! 978ea1feca76d390c0e558be91b40b41  libstdc++-v3/testsuite/21_strings/headers/cwchar/types_std.cc
! 5c6d363cdd7e04a482aa6157f61a56e6  libstdc++-v3/testsuite/21_strings/headers/cwctype/functions_std.cc
! 1b5371d48e546c246d1f483e1b691be6  libstdc++-v3/testsuite/21_strings/headers/cwctype/macros.cc
! cf135de95863a1e9afa79606c6f7cf68  libstdc++-v3/testsuite/21_strings/headers/cwctype/types_std.cc
! 8ab99cca4adb90cdc658ac1a25ce1910  libstdc++-v3/testsuite/21_strings/headers/string/synopsis.cc
! b7610fcdfdc7b12cdfd2ef85f6ff7a3c  libstdc++-v3/testsuite/21_strings/headers/string/types_std.cc
! 76f03816877d06e56945e7f1d92de03f  libstdc++-v3/testsuite/21_strings/headers/string/types_std_c++0x.cc
  01a4570fc4371bc8227fc5ae7ddd6f7f  libstdc++-v3/testsuite/21_strings/headers/string/version.cc
! 578d18a13f8227eee08b8254096d8542  libstdc++-v3/testsuite/22_locale/classification/isblank.cc
! cb91ee07c38173ea645b069a0faff172  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc
! 82ebd13053c251960448ba0f5903d8be  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/1.cc
! 67db7e89c370b64b12ad8caefb61a2cb  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc
! 8c4ae07586ed7af0e76e881b84cd90a7  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc
! 2a22e249dc55a426ba14af5149fdc28f  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc
! 014ed0b9f8cb745b4d4070aa3a4ca753  libstdc++-v3/testsuite/22_locale/codecvt/char16_t-char8_t.cc
! 5a6c467096d48624edb2154200b063af  libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
! 4d867398f082838bb879df45040bad46  libstdc++-v3/testsuite/22_locale/codecvt/char32_t-char8_t.cc
! 9046b5dffc30aeb1af01ad13c1f27e06  libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
! 078af1a19107859d19fa57e6172c0152  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.cc
! c8bbe00f826bab78c711b0e085e47506  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h
! 10b55ff7b10430d98d2325750f89d0ba  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc
! 3670cc0c0359bf0991af55f9972f346a  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc
! f4233daa097824d1a91e2d2974648ad5  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/66417.cc
! db9342296f234969a9b321928a9b21ca  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/79980.cc
! 16d93c54f364138d7651502be8d1ecaa  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/80041.cc
! 3a283177290aa93ccfb053fb4569d868  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/members.cc
! 754207025a9e0b40f63f4a33f1066105  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc
! 30f807f9345fe8f18318c9888d5a704c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc
! 63f9de684d0f09cc6becc97c6a74796c  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/69703.cc
! bb547d9beb4c75fbb45750b4d2c410c5  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
! a6411a089a9af1a0f599a4d95018b31b  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/members.cc
! a96d5fdb37384e2a8a81fe8bc7480338  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc
! 602ed6c91fc7cceed4e08ab7e9b6c4f9  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
! ea8b23379ca6e29114cf17aee8371ab0  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc
! a1bd9e6ce8b9b0f1ef27e49ae7634dcc  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc
! 48adab5c41da4c5316924204a10ce733  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc
! 27f480db4b83e5909bbdb01399e28319  libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc
! 6f8e38d1540a04eb0a5fdc00e1e5293d  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc
! 208289e212cee95c23996441b04eb8f1  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/1.cc
! a6f6684314a7d6466da5b5e7b478ea18  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc
! ff14465da7ff7cb86b5be4c702a1870c  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc
! d278b82a12b6af6a9bfd2235f06abb72  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/4.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc
! e01577953d91a8d3b37d2143de5bfaac  libstdc++-v3/testsuite/22_locale/codecvt/in/char/1.cc
  1d9e47cad8d277161961c1e14ab19679  libstdc++-v3/testsuite/22_locale/codecvt/in/char/37475.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc
! 039073b73318689af17c65321e65770a  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/1.cc
! e24eae3747b154fb54e2e8a5ce1ebd7b  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc
! 635750c8285bfb74ac8e7bc4b7f3766a  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc
  1ee73a35d306029a4d74b51cbd89d43b  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/37475.cc
! 19e2592855f36b14d56a3760e81ac14d  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/4.cc
! 9508ae12b6788870d2d65c84dbcdb7a7  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/5.cc
! 90da9334cf1caab6c93f9e629421ecde  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/6.cc
! fd29a25c707da61c88b1e2e1c9b56811  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/7.cc
! 4bf6a3bdeff414f9641702ba8c5b9201  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/8.cc
! 93614b63a4ddf9feac6e3c2ddd16bd70  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/9.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc
! 8b5b7baa146de8a644161808852aa723  libstdc++-v3/testsuite/22_locale/codecvt/length/char/1.cc
! a3537b19a3cc6c5a7d02b4d72609a7e2  libstdc++-v3/testsuite/22_locale/codecvt/length/char/2.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc
! 39f7b75a5143d54903d88e19765ac0a1  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/1.cc
  d1962df70f021ebd3de8499b1b388c4e  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/105857.cc
! 49f6d8bbb43a01d922078a93aadfdebc  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc
! 7eec99a8e28342bb8b413fca5da1c4de  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc
! 23c86a445c34ee931768b0f57816618b  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/4.cc
! d4f2b35426e16cd806f4a9b8fa255847  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/5.cc
! ee251804ec585deee64c20a9baaf86e7  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/6.cc
! 2cf34b0bf2224262dd7f15af874f1327  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/7.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc
! a41f8aba6e668f732f37a0abfaaef44c  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc
! ae442d0892609127168711da109bd497  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/1.cc
! 76ce25584e6864ca34dde3fc781605dd  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc
! 1578d0462787840719af0616717ef99f  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc
! 9c2d497a9a33a3e474c81d6ee2473a10  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/4.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc
! 4f202e21ca368aefc9f16b01887b863e  libstdc++-v3/testsuite/22_locale/codecvt/out/char/1.cc
  48cebea552743e08d96381726bac93c5  libstdc++-v3/testsuite/22_locale/codecvt/out/char/37475.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc
! ea4c144545eb53046d8f118776e8e932  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/1.cc
! 5636068d6831579a8d40ff92d2756461  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc
! 83d2c37c8a3bed8722ded2e602ff11e9  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc
  81eff80da4f24f4c59b798dd7afd8384  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/37475.cc
! b68d3b53c5eff082849a49cf84a1b1a3  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/4.cc
! 631856427229599d1b5614ec18bd25f6  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/5.cc
! f897e4f81db48ab57f41da2659502685  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/6.cc
! e1e62430897b7a53f404ed001552a513  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc
! 01e1d7923e7ef33929fb986258f626be  libstdc++-v3/testsuite/22_locale/codecvt/requirements/base_classes.cc
! 40264bd9b652669b3f91577996e2c37a  libstdc++-v3/testsuite/22_locale/codecvt/requirements/explicit_instantiation.cc
! 7e2d9cd256ba426d34f6c65f49c52531  libstdc++-v3/testsuite/22_locale/codecvt/requirements/typedefs.cc
! 5e6f363310b79fa33c9ca649fa5f7932  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc
! ada1237d9e5847d5750fa9921b11c35e  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/1.cc
! 7ebba5bc2712e69bd1b8cea5486e90e5  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc
! 5fe30617534b2b42766a71803df1aa76  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc
! 156cd63eb675976c6c279826a411703e  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/4.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc
! 8ef6593eb9c18e325488d790df6959c8  libstdc++-v3/testsuite/22_locale/codecvt/utf8-char8_t.cc
! 8b64e2baedc2aa864fbfed6f20944b84  libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
! 522f03c5faa99e58c54103a91c6f5cdd  libstdc++-v3/testsuite/22_locale/codecvt_byname/1.cc
! 9568fcbb02cdeb0e7af7fd56f352cdc1  libstdc++-v3/testsuite/22_locale/codecvt_byname/50714.cc
! 6a4edae85c08f0bf996d7dfb3efe8d9f  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/base_classes.cc
! 9ed89a763435984b354c8674b22ff0d7  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/explicit_instantiation.cc
! 6d49f83dd0fdd821baeed5abb8ddab42  libstdc++-v3/testsuite/22_locale/codecvt_byname/requirements/typedefs.cc
! 8ef2d6bc23e41893756adf0165f82799  libstdc++-v3/testsuite/22_locale/collate/compare/char/1.cc
! a5ba288cfa50b2f58567c15151eb9129  libstdc++-v3/testsuite/22_locale/collate/compare/char/2.cc
! b6422a4a38f98ada8ff570ab8d40303d  libstdc++-v3/testsuite/22_locale/collate/compare/char/3.cc
! 3532e8a3444f9c31e7e1e229b5901918  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_env.cc
! d7356e73aa734f8cae694fd0caa9ff68  libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc
! a3d7c080d394fcf128f632bd71d94b7b  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/1.cc
! a3542d61f0dc8ad1a4bce1848d666fa7  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
! ecdf8c1a8d8d50e299f75a1e3849faa6  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/3.cc
! 61b8727dca0e5b1ebfff3f73d7166622  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
! 89a4cbe319c6cf0466067d1fb5c96f57  libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
! 25610882c621841da83cce428d5a6a65  libstdc++-v3/testsuite/22_locale/collate/hash/char/1.cc
! 539df09333b73dc3d8525d0962f07ecf  libstdc++-v3/testsuite/22_locale/collate/hash/char/2.cc
! 1b592612e2b3be5df8d08e3bfe82eb6c  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_env.cc
! 4a44986fc501368d16039fbe1710ea0d  libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc
! fee55b7cbcb1b01e0125d9d491277538  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/1.cc
! d77dbda5a9ef15eec5b94ffca462bfb2  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
! 61b8727dca0e5b1ebfff3f73d7166622  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
! 89a4cbe319c6cf0466067d1fb5c96f57  libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
! d55f0492d866cfd8425e58d6364e03c3  libstdc++-v3/testsuite/22_locale/collate/requirements/base_classes.cc
! a9d63cffcf1225fd5ff7b9630c6c7737  libstdc++-v3/testsuite/22_locale/collate/requirements/explicit_instantiation.cc
! 20567959230a70093c7d3d7c981392fa  libstdc++-v3/testsuite/22_locale/collate/requirements/typedefs.cc
! 52153d59d210ac1b7ad9308528791987  libstdc++-v3/testsuite/22_locale/collate/transform/char/2.cc
! 43bf306c741b1d2a58372b9935a20ce2  libstdc++-v3/testsuite/22_locale/collate/transform/char/28277.cc
! 4518fdfa5870e5c417bece100d995223  libstdc++-v3/testsuite/22_locale/collate/transform/char/3.cc
! ed01014bcd35545f1ed8ff4eb30263be  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_env.cc
! d96fa4b95b4280f2b3f1477e3f96fe45  libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc
! 0bf8b19b8516666cc26b62a60912de3c  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
! 639dd0d08bf57b1e771287b58fb2c00f  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/28277.cc
! aee9992c20df46614853d33213810357  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/3.cc
! e2ce585b304ce280156806f6fc91eee3  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
! f11f31aa4c9f36b7cb1961e6206209f0  libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
! 27cc5b7f6e58a9646aa9c24692460a7f  libstdc++-v3/testsuite/22_locale/collate_byname/1.cc
! 9de80263d227031821d786bf5a1d0a1c  libstdc++-v3/testsuite/22_locale/collate_byname/88681.cc
! 79739d3c7f0ae7a57521ca7da0be2737  libstdc++-v3/testsuite/22_locale/collate_byname/named_equivalence.cc
! d3e33fbcf747df9f50468ee465f72d8e  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc
! 5d086f0ca225b0dc8ff924708856a452  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc
! 399aec22c25f67e8ee3f0123cdcfaf8c  libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc
! b0685da54bdbe2caf3624d7ade6b8ca4  libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc
! f5dea1d374fa497a90e9436e68af8f74  libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc
! 18625a1839d9649bd0918598385ddb7d  libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc
! 218a00ac7ae969793ad0e3f14321e420  libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc
! 4441dea803ec85db1bd09709942387cf  libstdc++-v3/testsuite/22_locale/conversions/string/1.cc
! 5c88b0d8daa9a232ad58b4a2f9a4cd7a  libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
! 6495485e102bdf645da955b799c02da4  libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
! 9787600a366c0694738451c8ad2bf8be  libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc
! 7a01052bb5fa19c4fe48abd1ee068225  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs-2.cc
! d1ad96158789f2b49b27e3ccc384f12f  libstdc++-v3/testsuite/22_locale/conversions/string/requirements/typedefs.cc
! 96348352aa7204e4e073181a832edf62  libstdc++-v3/testsuite/22_locale/ctype/2.cc
! 35c172cfd8b60c04d9e010cf08c009e0  libstdc++-v3/testsuite/22_locale/ctype/cons/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc
! 4798c49d8aa287f14755fbfa06b6d949  libstdc++-v3/testsuite/22_locale/ctype/dr695.cc
! 33c9293e5d8e2f9564000a2b90eb4479  libstdc++-v3/testsuite/22_locale/ctype/is/char/1.cc
! 941b0f463ae879bde30e08876629cf0e  libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
! b3beb9582904bd6e7c4a4a267f024676  libstdc++-v3/testsuite/22_locale/ctype/is/char/3.cc
! c89ab79b31511291ea620d358906d9a8  libstdc++-v3/testsuite/22_locale/ctype/is/char/9858.cc
! d10296850404e20ad594ea077623a27e  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_env.cc
! 9434a76b31dc894a078e0ab6940b910c  libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc
! 05fac141e4430c960240ff71a0708488  libstdc++-v3/testsuite/22_locale/ctype/is/string/89728_neg.cc
! f255520d8c76cea28bacd9f1e2d7b7a4  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/1.cc
! 5fda8bd204417bb754a8f0f465265fca  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/11740.cc
! e838e45fd7dbe97a5d48dffdcf2a16ad  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
! fd2096b8315cac7b19cc79cabc4e9285  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc
! 82a8d2ec1986bd88baadc290d6856ef4  libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc
! 93a306495b16b860b28f935c8bbbbd00  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/1.cc
! 0dfdfb5105dba2a8cbd6509cc2c6ce5b  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/19955.cc
! df7c3d26d34123880a46ab72d0889602  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/2.cc
! fd2096b8315cac7b19cc79cabc4e9285  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_env.cc
! a82a207c221f5172d2d6c9ddf811b37d  libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc
! 43e8d3ff286f3e29ead81c3dd5a2ffee  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/1.cc
! a72a8bc5a38439b192fb44feafdf9c96  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/2.cc
! fa3a300e77d0679f937b45b88ced88e0  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc
! fd2096b8315cac7b19cc79cabc4e9285  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc
! a82a207c221f5172d2d6c9ddf811b37d  libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc
! 4c8717695141814ec157aa9a6c538cb8  libstdc++-v3/testsuite/22_locale/ctype/requirements/base_classes.cc
! 6229fb27cfadd16fe1adc4cabbcad89e  libstdc++-v3/testsuite/22_locale/ctype/requirements/explicit_instantiation.cc
! c5745e87aae4e216fd8cee02cedf972a  libstdc++-v3/testsuite/22_locale/ctype/requirements/typedefs.cc
! 2111e3af22cbb4f557bb8c415f358aad  libstdc++-v3/testsuite/22_locale/ctype/scan/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc
! f6f26f80ca6de4585ef34e4b2406a7d0  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc
! 704498ff3af6c4b0d5ce3224dac42604  libstdc++-v3/testsuite/22_locale/ctype/to/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc
! b0e43d80a0690e04023cd4a9b7bb73ba  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc
! f041565a8309a47d2020f7f302f1cee7  libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc
! e61590c456be77e7b68a654124bbcc59  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/1.cc
! 59be51dd8a6aeb66a6b63e972b52df97  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc
! 43eeddc837d2962c92e8c58c610e3366  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc
! 998e3ea4de459cae76225c4bb65c289a  libstdc++-v3/testsuite/22_locale/ctype_base/11844.cc
! 5a8b334689584d57cc7b21fac1a7b7c3  libstdc++-v3/testsuite/22_locale/ctype_base/53678.cc
! c32818e25ac8a30b1582bf7209068d2a  libstdc++-v3/testsuite/22_locale/ctype_base/blank.cc
! 47e5ff2095130820f7e68a723ce24893  libstdc++-v3/testsuite/22_locale/ctype_base/mask.cc
! 44371eec3abf7068027409d0f833755f  libstdc++-v3/testsuite/22_locale/ctype_byname/1.cc
! 2889f420bf0354ef774a08c4cb322282  libstdc++-v3/testsuite/22_locale/ctype_byname/2.cc
! d245c51742a32893f18d4d42981955eb  libstdc++-v3/testsuite/22_locale/facet/1.cc
! e69900d88d07ca6803d638cdae1d6b76  libstdc++-v3/testsuite/22_locale/facet/2.cc
! 09ac178565662a047223d45549981b72  libstdc++-v3/testsuite/22_locale/facet/25421.cc
! cb7803461e0d9a5fa30d2a45195be600  libstdc++-v3/testsuite/22_locale/global_templates/1.cc
! 6389a941785fc4e756617bf75fafed0e  libstdc++-v3/testsuite/22_locale/global_templates/standard_facet_hierarchies.cc
! 24212352213665b67fc975974d77ac83  libstdc++-v3/testsuite/22_locale/global_templates/user_facet_hierarchies.cc
! 3c030130d3869584254c30668a6d01fe  libstdc++-v3/testsuite/22_locale/headers/clocale/functions_std.cc
! 1aebe2e7b777458dcf2e753db3d05994  libstdc++-v3/testsuite/22_locale/headers/clocale/macros.cc
! d2ae7183ebc3bdb694706adc94d8fb61  libstdc++-v3/testsuite/22_locale/headers/clocale/types_std.cc
! f86e1a830adf29b1dcf6e910b0a906e4  libstdc++-v3/testsuite/22_locale/headers/locale/synopsis.cc
! 7e3121a09966151639e9628ce4f3cfcc  libstdc++-v3/testsuite/22_locale/headers/locale/types_std.cc
! 2bc3f1185e3be6f8050a0a3dcb16917a  libstdc++-v3/testsuite/22_locale/locale/13630.cc
! 7b4bfeecbd597462ef91d698c8498bef  libstdc++-v3/testsuite/22_locale/locale/cons/1.cc
! 5296cdef4db82a91b32508fc7c7bceae  libstdc++-v3/testsuite/22_locale/locale/cons/12352.cc
! 3d87cb44b2caf41497e99b72a927f7a1  libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
! cf0adc1ed37187eca277d12d792bc563  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc
! 7532d00723e3b19b36847e87d644de1f  libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc
! d7f1fb25dfec22fc0863c3ca16eedb60  libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
! 96c486115e325ce2217aae907c0e5912  libstdc++-v3/testsuite/22_locale/locale/cons/29217.cc
! f1be5d2903a040fed963b75d254cab75  libstdc++-v3/testsuite/22_locale/locale/cons/38365.cc
! 551bc1ffff06e0fdeff10e39dd2498cf  libstdc++-v3/testsuite/22_locale/locale/cons/38368.cc
! 6938719cd19b78b88205c7d762029737  libstdc++-v3/testsuite/22_locale/locale/cons/4.cc
! 051f0fee5d0021ef24bda24e50184d41  libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc
! f73ee26130eaedbe8df93f7dc5247d6e  libstdc++-v3/testsuite/22_locale/locale/cons/5.cc
! 5010dbf10b3970c4befb10db86933874  libstdc++-v3/testsuite/22_locale/locale/cons/6.cc
! afa774240166d5ddfed41e4f42167c7a  libstdc++-v3/testsuite/22_locale/locale/cons/7.cc
! c5289152e43fd464adc93f1ea3f4c5d0  libstdc++-v3/testsuite/22_locale/locale/cons/7222-c.cc
! c98cb01188af5a975a4b58868ea1e8ef  libstdc++-v3/testsuite/22_locale/locale/cons/7222-env.cc
! ec94ced007a276725fbf737db207d6e4  libstdc++-v3/testsuite/22_locale/locale/cons/8.cc
  76cf78f8dc2430c26f70da5dbdb00d13  libstdc++-v3/testsuite/22_locale/locale/cons/names.cc
! 4a05ecef78645f7acdc73045a2a35923  libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
  5b40dd8bfef055000483f3fc3a4b621e  libstdc++-v3/testsuite/22_locale/locale/encoding.cc
! 5d2441fe54eda1d3db95c1c6cb988e6a  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/1.cc
! 06315a222f23bd48410241072fba2d93  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/14071.cc
! 01f68bdc983698a59c3e5ae2d05e5f2d  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc
! 728db0f71440257cf65a53e23348767b  libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/3.cc
! fc0946a77ba61bca7d14771273f891e6  libstdc++-v3/testsuite/22_locale/locale/operations/1.cc
! 6e0c37afb5e91e7e7b4ab0f982751b1a  libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
! ad717761145aa9922b61f4a050c1ce8d  libstdc++-v3/testsuite/22_locale/messages/13631.cc
! 1938344b7df07ffb768717be061b7e44  libstdc++-v3/testsuite/22_locale/messages/members/char/1.cc
! 8ed5b84d752f76e2b60183e7e8d2dc33  libstdc++-v3/testsuite/22_locale/messages/members/char/2.cc
! 8f5dc9c3886bb6069a5b95617c155d2e  libstdc++-v3/testsuite/22_locale/messages/members/char/3.cc
! 437899206a7ed2fb765cee930fb9e4af  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_env.cc
! 57dfe5dce76e1f0bdbcdcc2f56f20652  libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc
! 35fff9d5edb76988ed35d84de774fdb8  libstdc++-v3/testsuite/22_locale/messages/requirements/base_classes.cc
! 65536ae2df2fc4ad26eaf467b82dcedf  libstdc++-v3/testsuite/22_locale/messages/requirements/explicit_instantiation.cc
! 53111a6663f92747bdbc443169313247  libstdc++-v3/testsuite/22_locale/messages/requirements/typedefs.cc
! 1eec25a78e0c19e9c6df466f50b8dd27  libstdc++-v3/testsuite/22_locale/messages_byname/1.cc
! 2e3e3107491cc1d1b520e6e59f8e953e  libstdc++-v3/testsuite/22_locale/messages_byname/named_equivalence.cc
! 8172853951c7fde47f7585f1aa0b7fb1  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/base_classes.cc
! 18567f2cd2d1bf9884566e12a235e018  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/explicit_instantiation.cc
! 4bd0eccf6317eae73018be60ad76e523  libstdc++-v3/testsuite/22_locale/messages_byname/requirements/typedefs.cc
! 7ddb0624a52e4566c08da40ceb5b3227  libstdc++-v3/testsuite/22_locale/money_get/cons/3.cc
! 93b0ec26bcb4de571f71c02efee85b8b  libstdc++-v3/testsuite/22_locale/money_get/get/char/1.cc
! 07a4b1a324bcb13951bfe3ae9b6df659  libstdc++-v3/testsuite/22_locale/money_get/get/char/10.cc
! 24270668466034590d45fc32812e2759  libstdc++-v3/testsuite/22_locale/money_get/get/char/11.cc
! 71a180bb5de1aa87b53dde0d84bc634c  libstdc++-v3/testsuite/22_locale/money_get/get/char/11528.cc
! 9df7a7d58ca27b44a467e33de551e97b  libstdc++-v3/testsuite/22_locale/money_get/get/char/12.cc
! 9855ad15ae32711dde2df8ecba797fef  libstdc++-v3/testsuite/22_locale/money_get/get/char/13.cc
! 41647ac9ad10cb846045627e318a97e8  libstdc++-v3/testsuite/22_locale/money_get/get/char/14.cc
! 13ccfb478f328ea4e1456095158fca56  libstdc++-v3/testsuite/22_locale/money_get/get/char/15.cc
! d1b1eae0dc25640dc728217b122c9988  libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc
! 4d4d8a2c0912feafce0049a550189cc2  libstdc++-v3/testsuite/22_locale/money_get/get/char/17.cc
! 3a1afbaaf0c58d45106c90ad93ab891d  libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc
! 96f9ff2a5794383a08273d7fa294cdfb  libstdc++-v3/testsuite/22_locale/money_get/get/char/19.cc
! 3c0060c7055930a83971a37535b5020b  libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc
! a0f3fc94011d7ac4f3fca84c2de1907d  libstdc++-v3/testsuite/22_locale/money_get/get/char/22131.cc
! 5a9b49c436d2a259749493db612e2598  libstdc++-v3/testsuite/22_locale/money_get/get/char/3.cc
! 60e30ba98ea68e5a7254a0153be70127  libstdc++-v3/testsuite/22_locale/money_get/get/char/38399.cc
! 5c34e6e0909848fa6ff1b7b70d0b655b  libstdc++-v3/testsuite/22_locale/money_get/get/char/39168.cc
! 8d1e2fa688dff64ff0efe70fa6ef908c  libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc
! 2ced141e2df3c67e0730909cd8c31188  libstdc++-v3/testsuite/22_locale/money_get/get/char/5.cc
! 6c7af7edd45065ea268ee1f755aec7f8  libstdc++-v3/testsuite/22_locale/money_get/get/char/6.cc
! 7dba2c71e95b147a0900ecc331f18308  libstdc++-v3/testsuite/22_locale/money_get/get/char/7.cc
! 61bc75a6492169217373276edb20d303  libstdc++-v3/testsuite/22_locale/money_get/get/char/8.cc
! e61b5b40a39c8d20fcdfaf36c2d1c2ad  libstdc++-v3/testsuite/22_locale/money_get/get/char/9.cc
! 36053111bdbb8adfb7b226630d407f26  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc
! 693a6507277238ab0b6763dfd46267a1  libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc
! 3a21d55b53af838c35a779aebdddc13d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/1.cc
! ca9b983bc214ceb618b0e25f46a794c5  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/10.cc
! cbfdb695dac12b8296c9e2add722d309  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11.cc
! 4a71f471b93d36f62e1f54b7507a26f7  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/11528.cc
! 14089856365c15e79900ab20ca13cf69  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/12.cc
! f9a0beaed7143be5695afcb7823ea169  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/13.cc
! 7a9cfd49df49a5829e4d57fe8ff78053  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/14.cc
! d93405b4a9e1c79dcabcc99a40913a3d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/15.cc
! a7bed8d2096503c9c01abcbae8de1f9b  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc
! 22d267ae9d85c14fd3318445e2fc885e  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/17.cc
! 20dec7df1e686a8bb195fb200db3e98d  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc
! 3d38ccc94c39a78412b6301ea3f09cf5  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/19.cc
! 31b090a911912aff74e6676aa6b3df33  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc
! 66e42d37e50502978d9c50b6716eb291  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/22131.cc
! 8642556e1d13cf9e54834b3dae7e4a2e  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/3.cc
! 9c848b53a49d03f37eebd9c52c164960  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/38399.cc
! 3f11668b86d3a24181e62ec624a5c950  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/39168.cc
! 5a1281a6160b5cef2fb5bebbc0d6ec66  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc
! c0036e5dffb4e31d3b24660413b00799  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/5.cc
! 7cc7196adb951a8d71512d0bc987fd6a  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/6.cc
! c31ab18c35857d501cf6d443962fd275  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/7.cc
! c800be38997e2bea98808c29b671e1b1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/8.cc
! 64907c01e3bb75c3c0795fb4ae35b9c9  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/9.cc
! 36053111bdbb8adfb7b226630d407f26  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc
! 693a6507277238ab0b6763dfd46267a1  libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc
! bedc8cf5a545c1f65d0763485aa37d5e  libstdc++-v3/testsuite/22_locale/money_get/requirements/base_classes.cc
! bd9c922df6f33095e1c307bd74bda5d1  libstdc++-v3/testsuite/22_locale/money_get/requirements/explicit_instantiation.cc
! b89690880187f7bbdede91017765781b  libstdc++-v3/testsuite/22_locale/money_get/requirements/typedefs.cc
! 77eb9f661dd445c2baa43bcc7681efc5  libstdc++-v3/testsuite/22_locale/money_put/cons/3.cc
! a6790723e3f3aac9f9823f014def7620  libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc
! 2c2e95a2101abc727684d940204f1e79  libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc
! 99c8373699ceab8208bf5a04aa64e92f  libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc
! 479b659f9893052e9e891f8e7579499e  libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc
! bf77a1b3d0553262913270945392a9dd  libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc
! 8d5c5e66418a04a488fa457d5f62d76b  libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc
! cfb24bb0529c630d28f47c807d4bb18c  libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc
! 77529bacece4cd789e38d2b7d671ef1a  libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc
! 2a270b7c81e46cf5707098c1b521a2b0  libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc
! 45cc16d273e5bebb01b14cc6845eff05  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc
! 03dc0fbe60ff1b2d76d6f50d0c5a288c  libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc
! 5bc69c4e3140621d4316f0ba43ccd3b5  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/1.cc
! 5ffc39100a723293fe79b20fe2867625  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/12971.cc
! d3b74d652e32fa3aa6562a2739bbbce4  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc
! a10b25be953f69f7049c9e8443501a7e  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/3.cc
! 45673f35b956ed4dca8ec366c4210de6  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/39168.cc
! 5f5fc0f56d9eda8acba134d8b6d3bbda  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/4.cc
! b5d91cc1bc8d8cef9af438d62bc428d2  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/5.cc
! 92b721f8790fc1cd1f8f96e3282ad860  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/6.cc
! 45cc16d273e5bebb01b14cc6845eff05  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc
! 03dc0fbe60ff1b2d76d6f50d0c5a288c  libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc
! 624d83e9a4af8553e4fc39f7e9f593f0  libstdc++-v3/testsuite/22_locale/money_put/requirements/base_classes.cc
! 795d7c571dbacb491634b9fd93497b1c  libstdc++-v3/testsuite/22_locale/money_put/requirements/explicit_instantiation.cc
! df509eaa7d65c19e0b6876c847c6695c  libstdc++-v3/testsuite/22_locale/money_put/requirements/typedefs.cc
! 1439e43806b36a73d46a6b2509e3fd4e  libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc
! e47b31eb4c1e4986d247170cfa51a6a1  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/1.cc
! 610b8984125ac0e1ce745d84065ae6f5  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/2.cc
! fd2096b8315cac7b19cc79cabc4e9285  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_env.cc
! 159310c2c4fad9b65b93b4f783248abe  libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc
! 5abbc3aaebb4fd4ed4994a5d05f1eb73  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/1.cc
! 6027f7e349f90f5afe892ccb93e9c603  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/2.cc
! fd2096b8315cac7b19cc79cabc4e9285  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc
! 82a8d2ec1986bd88baadc290d6856ef4  libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc
! 3920c867a336807a767bfed15c2b388d  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/base_classes.cc
! 6a66a233d71918d8d6a2371cfa3d4534  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/explicit_instantiation.cc
! 622632c7b638e06b8b3ee2e00987c63d  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/intl.cc
! 505813d9bab3e825b3e7eb93e5e8c35c  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/false/typedefs.cc
! 47e9210d51cd40ab7ee16d3f6b64069e  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/base_classes.cc
! ad441d401e9c7340ffcc2cc46eb38fcd  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/explicit_instantiation.cc
! 3d5c033d2cd9e6cffe46b57317605551  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/intl.cc
! ef2cfbdc9492de76a6a3addfc06fe368  libstdc++-v3/testsuite/22_locale/moneypunct/requirements/true/typedefs.cc
! b96dfc4a60d34410d1360353d1139fa3  libstdc++-v3/testsuite/22_locale/moneypunct_byname/1.cc
! 4983da24ee23fad7a882ed74110aede1  libstdc++-v3/testsuite/22_locale/moneypunct_byname/named_equivalence.cc
! abcc9dc0a3d5031362016b71dac4f622  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/base_classes.cc
! f991ef755875ef07cf70342dd34ff7ee  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/explicit_instantiation.cc
! 1f3ec9b368b998bdba1cf03339596b73  libstdc++-v3/testsuite/22_locale/moneypunct_byname/requirements/typedefs.cc
! 3d354226ab186d2013335c59e8bf6e3e  libstdc++-v3/testsuite/22_locale/num_get/cons/3.cc
! b35b171d1b8d3a9088005778419e7a91  libstdc++-v3/testsuite/22_locale/num_get/get/char/1.cc
! 92541fca388c1ea5bcdc816fc0aa6ee5  libstdc++-v3/testsuite/22_locale/num_get/get/char/10.cc
! 90d7a7604012b44423a17fce3227244e  libstdc++-v3/testsuite/22_locale/num_get/get/char/11.cc
! c50942c80f4d3e4003bad4c493373161  libstdc++-v3/testsuite/22_locale/num_get/get/char/12.cc
! 13e1ccc31840160a3ba6bbf3187a3cfa  libstdc++-v3/testsuite/22_locale/num_get/get/char/13.cc
! fbbfbd42e9d5160500927fb2439d1e5b  libstdc++-v3/testsuite/22_locale/num_get/get/char/14.cc
! 93725fe716e5b7d1c39913a515ebf161  libstdc++-v3/testsuite/22_locale/num_get/get/char/15.cc
! eff62a16ae5ad88a424d4ff7c4e82e29  libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
! 8607244778a6aed170f790a214a227b2  libstdc++-v3/testsuite/22_locale/num_get/get/char/2.cc
! 265d5b6954461e8b5549af908deda823  libstdc++-v3/testsuite/22_locale/num_get/get/char/22131.cc
! 9287dfaeb38a0f680ef01b24a2896985  libstdc++-v3/testsuite/22_locale/num_get/get/char/23953.cc
! 0d9cf1bf89b843cde39fdebca666fd3e  libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc
! e01fcfff3cfe3fbc1a7a319c52eb12b0  libstdc++-v3/testsuite/22_locale/num_get/get/char/37958.cc
! 6dba193b4ddbbd2d8b8e8d30459c3ac5  libstdc++-v3/testsuite/22_locale/num_get/get/char/39168.cc
! 449680952c1f965d2e0b1174d25660ea  libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
! a6990f1dc942291f21fb461f960befe1  libstdc++-v3/testsuite/22_locale/num_get/get/char/4.cc
! 6dddefb9ec14f28798c1a1f0253ccef5  libstdc++-v3/testsuite/22_locale/num_get/get/char/5.cc
! cd574c34f4a0b72daf518a68b74f97bc  libstdc++-v3/testsuite/22_locale/num_get/get/char/6.cc
! a333ff56eaf3037bf91427a0c299241b  libstdc++-v3/testsuite/22_locale/num_get/get/char/7.cc
! f837fca24f11340c81ccdcccc6b3b532  libstdc++-v3/testsuite/22_locale/num_get/get/char/8.cc
! dfdb8841a30db2bea8af84fc60b5943b  libstdc++-v3/testsuite/22_locale/num_get/get/char/9.cc
! 644615a05986f3037a2d84328f0d1d6c  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc
! 03dc0fbe60ff1b2d76d6f50d0c5a288c  libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc
! 0eaff14182f61bb8d4e0f16dfd0e9e5c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/1.cc
! ffa2b8954dbaefaa7ee785c54ebdf5b7  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/10.cc
! 2e43b82922496bd6a6cf2447ce3e4be1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/11.cc
! 32da9fc3ee0691e29ecee5ccf530fb97  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/12.cc
! a9ba17c5270294b647f9fb1a82254352  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/13.cc
! 33b1480bc3928788d71362abe9c3aeef  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/14.cc
! 74a629c62911a763724c4f84758bd5f2  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/15.cc
! 4777778f947f0aef20e6a1a44954c8a7  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
! 6fd17c0bc7db155c4ad90e4f9a6bc4c1  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/2.cc
! 9b78642e526883ca358545ff5c742fc4  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/22131.cc
! 5abf0307cbe13da6d35a2ff90584c231  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/23953.cc
! 54ab8c6b57a342be35bd6e7f75873ec2  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc
! 1b943a3059f6244f1a45eaef9e0bd5ef  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/37958.cc
! 1134c5b9a4ee9054dccad400f27428c6  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39168.cc
! 3b527c0d2433c2c3cc116b056c7d76a2  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
! f2833e391a1c3ddec5a0f1898c6e390a  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/4.cc
! 2f6ce5f42f03d5d7bfb02ee8204685e0  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/5.cc
! 362bd68ced741fd2de756384d9cf77e4  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/6.cc
! 3da18882b5219b9fd89add8895429a81  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/7.cc
! 0637d4cc276973f47c02aad53e694166  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/8.cc
! f9f1cf87299ac901cf4abdf1e816ae22  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/9.cc
! 644615a05986f3037a2d84328f0d1d6c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc
! 03dc0fbe60ff1b2d76d6f50d0c5a288c  libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc
! 81750a1d85122702260769747dc1ea69  libstdc++-v3/testsuite/22_locale/num_get/requirements/base_classes.cc
! d915bf37b5dcd8724a3e92ffd6ed0b5a  libstdc++-v3/testsuite/22_locale/num_get/requirements/explicit_instantiation.cc
! 621cedfff763aabbba318e8793288b14  libstdc++-v3/testsuite/22_locale/num_get/requirements/typedefs.cc
! 48bfd63dfa5be2b3de9386915a4ba59a  libstdc++-v3/testsuite/22_locale/num_put/cons/3.cc
! b89fb6f13a0bd4497adea4a09fd87fd9  libstdc++-v3/testsuite/22_locale/num_put/put/char/1.cc
! 52d40bda0534dad6350623efb9eac4a5  libstdc++-v3/testsuite/22_locale/num_put/put/char/10.cc
! 9ff56e67c3c7af8c399477aea7707d00  libstdc++-v3/testsuite/22_locale/num_put/put/char/11.cc
! a0939d3eded3a72dd9b33db38a74803b  libstdc++-v3/testsuite/22_locale/num_put/put/char/12.cc
! 97a624aa58aee2f2b5272fd1693bbfa9  libstdc++-v3/testsuite/22_locale/num_put/put/char/14220.cc
! be233ee926e20d1b0e0f26b4ea3806aa  libstdc++-v3/testsuite/22_locale/num_put/put/char/15565.cc
! d6da6eaa40ddc9d5a18d67727bc5aa0e  libstdc++-v3/testsuite/22_locale/num_put/put/char/2.cc
! 843fe6a8404b1febb935160713505c64  libstdc++-v3/testsuite/22_locale/num_put/put/char/20909.cc
! 699169ed5cf5cf307e72b62e29d0f680  libstdc++-v3/testsuite/22_locale/num_put/put/char/20914.cc
! 84f7eae0bcc23620d9943fb833865678  libstdc++-v3/testsuite/22_locale/num_put/put/char/23953.cc
! aa0d031a1f810c6489f6008a4802473f  libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc
! 199cabf575a27cedf9b8a253034f62f9  libstdc++-v3/testsuite/22_locale/num_put/put/char/38196.cc
! 99bbc60f2864caed384d43eebe9a0a83  libstdc++-v3/testsuite/22_locale/num_put/put/char/38210.cc
! d79b0f69987f9b556c28eb4485034c9c  libstdc++-v3/testsuite/22_locale/num_put/put/char/4.cc
! f63a7c3cdb031f9c63b43cf07d943e95  libstdc++-v3/testsuite/22_locale/num_put/put/char/5.cc
! 079c5b6e52c04a604bb09b9634c530ff  libstdc++-v3/testsuite/22_locale/num_put/put/char/6.cc
! 4d38d5313f7e80bd2d36199f66894e08  libstdc++-v3/testsuite/22_locale/num_put/put/char/7.cc
! ccc132d8994ee48ccdae99f78317ce3d  libstdc++-v3/testsuite/22_locale/num_put/put/char/8.cc
! 7cd80e96305157e340d1dff721754dde  libstdc++-v3/testsuite/22_locale/num_put/put/char/9.cc
! fbdf210f5e8f6d3f8c79ad6d52bbd6f6  libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc
! 8bc6374dce499a96ccc4da66644e31c4  libstdc++-v3/testsuite/22_locale/num_put/put/char/lwg4084.cc
! 133a961a00e9c07e95271f05a752990b  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc
! c8637fa774f228e85b35d72338b024e8  libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc
! 0afe2e5d17e1d7fb7a79121f90efa6ae  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/1.cc
! 99fb3312a4efcee05858644a0f16939c  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/10.cc
! f618b662c622db32db8aca0b2d7e1d82  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/11.cc
! ba295855ca8d977c838fa8ad12d17f28  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/12.cc
! d262c60b21b1078f74e4f4ecb2bb04d9  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/14220.cc
! bb463860b90ae63f33598020cab2bc9a  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/15565.cc
! 65c205081ca4578f32f62fcee3c44919  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/2.cc
! 451cdbcf42e5674d7faefc5aa305928c  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20909.cc
! acdc94ed9ea95afe7a38eae45d295695  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/20914.cc
! 2bbddef124956d9a5e65d0799d439221  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/23953.cc
! 7ab579104629af598c88d94f0f92d8cc  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc
! 1349a8ac1975f93eb8a859113a7c050b  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38196.cc
! 7d54b1cec3f2d0aa4a7e94c15bb61149  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/38210.cc
! 2ee09e7bca8d1810f7320464c01281c2  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/4.cc
! 5c44bbf999667101940f1116f5913f4d  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/5.cc
! b2fb9ec1bd1e6ec0ede4cb17104a3f5c  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/6.cc
! dabf004ebca4b7b6dee28b1ff8441584  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/7.cc
! 952684736530944e990eb299f8997c30  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/8.cc
! e68aefa48ec5e91df0f4f3e4ff8bec83  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/9.cc
! bf25a048dec115bfce2f52fa8df34539  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc
! 9b4b07e5e95f08e86a7bc605b134825a  libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc
! 19d6b665edcba510ec1ca45ee859c1fd  libstdc++-v3/testsuite/22_locale/num_put/requirements/base_classes.cc
! 1a53ab83c1b174652ece7161d14f2d45  libstdc++-v3/testsuite/22_locale/num_put/requirements/explicit_instantiation.cc
! b95e0f41f9868edfd7547be1ef674ae5  libstdc++-v3/testsuite/22_locale/num_put/requirements/typedefs.cc
! c22c92d3b8eb0597c8a859b9f5593893  libstdc++-v3/testsuite/22_locale/numpunct/members/char/1.cc
! 410d7baae5728ab4ab421120475993c0  libstdc++-v3/testsuite/22_locale/numpunct/members/char/2.cc
! b3403892a5563a4192e8dbb13fc3bcf0  libstdc++-v3/testsuite/22_locale/numpunct/members/char/3.cc
! 2d7cb3603388a6780cecf1e62497bb21  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_1.cc
! fc756d6abf088a4c0c1a500892232d5a  libstdc++-v3/testsuite/22_locale/numpunct/members/char/cache_2.cc
! 18c61bc8333d3bf9a51e0a4931669a4b  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_env.cc
! 988c962ac73ae1c37799f9f20235501a  libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc
! 0e77040811feaeb288ce34d8492bdc3c  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/1.cc
! f88a25f367d0dd4d6a639c90877e9e07  libstdc++-v3/testsuite/22_locale/numpunct/members/pod/2.cc
! 3c7ef6ff897b9f3944d00af3a69589bb  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/1.cc
! 1baf5d84d9cd8563103378a2ec1f88fd  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/2.cc
! 539019e0d52a481dbed3b06b071d60c0  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_1.cc
! 1b9bbf5402cc77141c9b6f853d1fa067  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/cache_2.cc
! 18c61bc8333d3bf9a51e0a4931669a4b  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc
! 988c962ac73ae1c37799f9f20235501a  libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc
! 96354ccfcc883b00e1267697d7602ead  libstdc++-v3/testsuite/22_locale/numpunct/requirements/base_classes.cc
! 80b80b9fa90af99e38d23bc6ea88e880  libstdc++-v3/testsuite/22_locale/numpunct/requirements/explicit_instantiation.cc
! f19ba91c9bf1036f793f31ab970a213a  libstdc++-v3/testsuite/22_locale/numpunct/requirements/typedefs.cc
! 9b95019d835ff47efb5d456364b1c76a  libstdc++-v3/testsuite/22_locale/numpunct_byname/1.cc
! 9c2c8998d1ea4fbef4fa1bf90f93d5bf  libstdc++-v3/testsuite/22_locale/numpunct_byname/named_equivalence.cc
! b05b95c55a037900e975faf02dbe3c53  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/base_classes.cc
! 5d64cc765b499bec47692829604fc364  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/explicit_instantiation.cc
! 6b8ee74915bcce077ba51c9e46bc625a  libstdc++-v3/testsuite/22_locale/numpunct_byname/requirements/typedefs.cc
! 51cfb23593596d8cc4ff6336f6644497  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc
! 82e31def36b8120cab7cac35976c6b94  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/1.cc
! f6889115b29deda26d2d6d2335001762  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc
! 20904fde62b785d4f0793ad9817d2269  libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc
! b95ade1068d1f45a461e3653131c1c81  libstdc++-v3/testsuite/22_locale/time_get/get/char/1.cc
! 73dc38bf04560e085755d09bbd0dd43f  libstdc++-v3/testsuite/22_locale/time_get/get/char/2.cc
! c49730ee8a1bb46cb82a74f7a2b71cb7  libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc
! ad6cdfded934bb9d21be0190cfb7b6e7  libstdc++-v3/testsuite/22_locale/time_get/get/char/4.cc
  4937f82f1bc7c7d636594e38bbca0bf2  libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc
! 7baf2b9a6ca6bc3a97c936f424158241  libstdc++-v3/testsuite/22_locale/time_get/get/char/71367.cc
! 21d9ce066bf8bc2b8bf5d9e62d665f00  libstdc++-v3/testsuite/22_locale/time_get/get/char/71557.cc
! ee20fc76f5eeb3b0e0ff04f1fbd42410  libstdc++-v3/testsuite/22_locale/time_get/get/char/88681.cc
! 26fe3b510c5a694ac3989a7a58ce0266  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/1.cc
! b5f6596ecbde6f39b5b49b88503c6683  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/2.cc
! d1597f23bc2aa2f4a936bfc3db43e5a9  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc
! de73ec87faf4e4d3b5826dedd728208d  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
! a3bf310ac17ecc3517c137aa4081c2f5  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71367.cc
! 4671eb6ea9397edd66fee5582ce2b5eb  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/71557.cc
! 9f665c53e68ee37aaa7dfaec0fe0ac9b  libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/88681.cc
! 66ed4abea223d596c694eb58d0a8350a  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/1.cc
! 3aecad1f1e592768aa6cea06956960ac  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12750.cc
! b1df34f5eb3c41a44208b28cb5a7ec32  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/12791.cc
! a31f10bd29c0775d7e22c6a2f605e0bd  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc
! 70f75aaf6f80ce041b654e0eb01e57c3  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/26701.cc
! f34575b0318a30b9a56a5cabbdf4523f  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/3.cc
! 80866199d358e9e96cd8f84a6679e066  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/5.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc
! e18b1651a4f1da643a2b993de4e431b2  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/1.cc
! f272f5a122f3329bfced3ecb121c00d1  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12750.cc
! aa017e2fb3c2c53c74e0f51899aa0525  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/12791.cc
! 13666af031f498a3284a43c58f4c99ef  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc
! a208b8657101bcaa13ff5cffc0a49c94  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/26701.cc
! e9a38d9154b147e4c2a50850390dc407  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/3.cc
! 01c79271bcbc31846371fec90729804c  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc
! 4ad84e37f5cb0099cd14e0680b3f660e  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/5.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc
! 63b462d75cfb97ac046b23ecd981cfd2  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/1.cc
! 84cb9073e4f34b594fc093b20db1e175  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc
! 078e32e296ac4e66bfcea4613a77360f  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/3.cc
! 8dbd21dc3e1d8f28de6313cc3c29cb20  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/4.cc
! bd0da8afcba5edc7b76cfb4f12c886f9  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/5.cc
! ca3ef135e3b7fd2ff6ba375fdc325f4c  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/6.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc
! 1eac765ffdb11363ed89ca09db284aae  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/1.cc
! 3573ee7f91e3556c1585c6ef2326ebc4  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc
! 5220958d60a14cd058c1f06805f0c5e7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/3.cc
! 4a797afa4940c77edcdb519bce827ccd  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/4.cc
! dcbd4026d336722e7896f5f35cda7896  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/5.cc
! b867094fe602e0becc5d5fb5ba034194  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/6.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc
! 8df1c11656f0d7851a941644902d07e2  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
! 80206d8c3464f0119476488b89a18da4  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
! ea2e1f9836c81cd70d2970b723b5e7e3  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
! 6be6a4b83d4deb6286f52614945e9f54  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
! 2eb58d6bfe93540ffb56420f37f66fe7  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
! d7c9aa68546ba3c73557ee13c11131e6  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
! 9dca43a2fdb24cd7307469b286309989  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
! eda0fe212a60afb75f6c7de67bc52e6b  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
! e5fb9d85484965f6a7d63eba3d248352  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
! 9f5d0881a88d29b2b5dee2e05c5a57a4  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
! ae49d2eb27010ccc173320eaccd1154b  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
! 73b8c170db4e11720682481930a4690d  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
! b157a911750b9c0437263289af3e11dc  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/1.cc
! 0b647131a92e71f9a8325973d1c92477  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc
! a29c414d08ab96fbcecb6416d132f2b9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/3.cc
! 72ff92ede07dd4e158108a411403c8d0  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc
! 4d2ed0aa9493cc1018780caa8dae48e6  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc
! b381005054a2499ed33d6980a12f36c5  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/5.cc
! 7247a62fb0969fd48922b633024fabbe  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/6.cc
! 88e2316f5fa67a403f6505c1502dd0be  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc
! 38e6e708b87966314c8ad003cfa9f3c7  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc
! e2f7ed5a26069a82a0327312cb238e84  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/1.cc
! 3ad5c72fa2f8e4b9a5e6511bff1b40be  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc
! 0a291b5fcb71ab54d60adb108c020e13  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc
! 8d79d3994a05c6099aabb0d73b912dc8  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/5.cc
! 18014411342b3208a3e85a778ed7237f  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/6.cc
! cb128fd0d6998b1ce49ee98ee1ac9508  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc
! dd37888f02a84821a0121f0aed75efa9  libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc
! 7ab131896c36e2b795357bff1bb47d6b  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/1.cc
! 8aac4f4a1b5d933b5db24ccc4d15ade2  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/3.cc
! a6ccbb695e7ff6aff16916b21f325b2c  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/5.cc
! 5bbaafab9a07193958d74aebf915c4e6  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/6.cc
! a8db9d336d90041c3a7e7fdd737ef8ca  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_env.cc
! a86b91758e6ae8a161fc40f18881fdfb  libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc
! bffd548eda58b02d4ebdbe96bf19f5c7  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/1.cc
! bc31b30c8f064948b0f0941a66dbc25a  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/3.cc
! 8f9df3606ee8d0d3a0c793c26d8f2e61  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/5.cc
! 533e8eef07f1aade891cc3d8ed7ddc30  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/6.cc
! a8db9d336d90041c3a7e7fdd737ef8ca  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc
! a86b91758e6ae8a161fc40f18881fdfb  libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc
! 2f8615ce79d8fca87d4a500031f1b3da  libstdc++-v3/testsuite/22_locale/time_get/requirements/base_classes.cc
! fc47058f80435b14b9d2b0964232ac9c  libstdc++-v3/testsuite/22_locale/time_get/requirements/explicit_instantiation.cc
! 27378f21a562dd7b29e63e92f4c3526c  libstdc++-v3/testsuite/22_locale/time_get/requirements/typedefs.cc
! 4edb8164416c3bd43eb4e9ac9c85c799  libstdc++-v3/testsuite/22_locale/time_put/put/char/1.cc
! 447a0beb6b0dfa848a9b3ef845a4515e  libstdc++-v3/testsuite/22_locale/time_put/put/char/10.cc
! 7ad16179dc67db5e02ec63b1939606d2  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_1.cc
! dac8ca45039633a2fbd6b7b4558ed54a  libstdc++-v3/testsuite/22_locale/time_put/put/char/12439_3.cc
! aa3c9292164d0d39fac9935660b73343  libstdc++-v3/testsuite/22_locale/time_put/put/char/17038.cc
! e37bfd8a89faf15e26cc6b8cc7bedf89  libstdc++-v3/testsuite/22_locale/time_put/put/char/2.cc
! a5ce815b5158d20976efdcd5aea74bec  libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc
! 8e8200c0cc03978b0e6bfd2b2da00bdc  libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc
! 6e5461bf0eabac9fe99bbf3aa9a14ef7  libstdc++-v3/testsuite/22_locale/time_put/put/char/5.cc
! 03051d8f869040800587ab482e3f41a1  libstdc++-v3/testsuite/22_locale/time_put/put/char/6.cc
! b5cadceb43dd6f434ab8b9ac19e24242  libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
! 88d07ab9aa5bd1d3c152f089ba98f6c4  libstdc++-v3/testsuite/22_locale/time_put/put/char/8.cc
! 61aa4e0ebbf17238c82af5b7ed1ff522  libstdc++-v3/testsuite/22_locale/time_put/put/char/9.cc
! b23a54e404e51fb201a5dbb209845508  libstdc++-v3/testsuite/22_locale/time_put/put/char/9780-1.cc
! a631186c5d420cb5c4abfd1f1de1ec71  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc
! 69ac33ec472559868dc90e2c28af5213  libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc
! c7289c5d53205741d63788f2bc3732f3  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/1.cc
! 3e45d402107d75de525684f9098298d3  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/10.cc
! 92c2b1964c462e5f6435b9b3417c832c  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_1.cc
! 9339c3242b9037e95b7e0e192d5e0d4a  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_2.cc
! 2488449f24749050c1720ad102fe7b90  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/12439_3.cc
! cf192c30d7e3c45c1af3c09bdbcb192e  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/17038.cc
! 668a70be2e2438636de0db245c0dd1e2  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/2.cc
! f3f9e4066f914158e6d7b3f3320f79bc  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc
! d801a7a0bd31c760247c4d6bf38b56db  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc
! 09f2e30823c1f6f6f58ec0c0c0eae471  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/5.cc
! ae3c6476c08b30053df630c2dde8d6ed  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/6.cc
! 12d39c55464ac7ef76e972daef80f626  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc
! 11864c36cc5fcb9bfc5742308b7e12e0  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/8.cc
! 57ea4b51e0a4416aa79ed3e0b3bca82d  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/9.cc
! a631186c5d420cb5c4abfd1f1de1ec71  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc
! 57ce7940154c016cafa5bae843f445cb  libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc
! d161abe072fc271013dfae4bfee4ff2d  libstdc++-v3/testsuite/22_locale/time_put/requirements/base_classes.cc
! 25450182e5227e53c831043b26d34335  libstdc++-v3/testsuite/22_locale/time_put/requirements/explicit_instantiation.cc
! eb559f6555fb4c444c9b967f6abb4631  libstdc++-v3/testsuite/22_locale/time_put/requirements/typedefs.cc
! 46f1c1156fb6a0fd0573f9531d234fde  libstdc++-v3/testsuite/23_containers/array/capacity/constexpr_functions.cc
! c5c33fba932cae906f8570cd8a952670  libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc
! 3e62b75ab4fb2f28d4a0ef14547086ca  libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc
! 19776a5cd54c33f5348c73708b6af870  libstdc++-v3/testsuite/23_containers/array/capacity/size.cc
  ecc38f7846787862f441b71921676a98  libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc
! 34a04380b2353622dcdb564b3cb003d6  libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
! bb2ad352e01e14815ea291a0ee671c31  libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
! 2accc2dba490b8124206adf9c6e39504  libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc
! 70a22bbb021b9a8c2c72b9e3e16eff60  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc
! 8c682e3fbdfd7c12e4c1dcb3bf90209e  libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater_or_equal.cc
! dc461165f5341fb527c5d6d4d71152eb  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less.cc
! aad7375bf18a21fcf6a8b0d003b7a718  libstdc++-v3/testsuite/23_containers/array/comparison_operators/less_or_equal.cc
! 5f9291982ecd41503c93e6808f6aab1d  libstdc++-v3/testsuite/23_containers/array/comparison_operators/not_equal.cc
! b1807a82296afddedf99787357ee54be  libstdc++-v3/testsuite/23_containers/array/cons/53361.cc
! b63a5db356068ec4fad16838afc938cd  libstdc++-v3/testsuite/23_containers/array/cons/aggregate_initialization.cc
! f72632178882a9b0a98d916e8501455c  libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc
! 070f59cd16068397e8ef074135188e76  libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc
! 39f444bb036270618e6ec58e2ff84882  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
! f03234623fd3369a72a9da4ea9df5109  libstdc++-v3/testsuite/23_containers/array/creation/2.cc
! d5ab081f94748530d4141f7baa416ef5  libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
! 7c9359b9f0379c93b9bcd47cd278f186  libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
! 33f084a23b226942071982074b9cc826  libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
! bf9e2915ffa2687205187cc2a3654b75  libstdc++-v3/testsuite/23_containers/array/debug/constexpr_c++11.cc
! 2f8b0fbdc85dc7cd26f38f8f78c886fd  libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
! 954ff63f0200ab51df2ae999b7d1bbc1  libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
! 7bc34df36335a45be1111bfd14fb1e41  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
! 20330712786c970421bca80c6fb32813  libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
  d43444f5dac4465508d56c015a638fca  libstdc++-v3/testsuite/23_containers/array/element_access/110139.cc
! eb00677ef1b706130ec9d38e9dd1ddfb  libstdc++-v3/testsuite/23_containers/array/element_access/54388.cc
! 3c4a07db8c25f26b17e8b895e46b020d  libstdc++-v3/testsuite/23_containers/array/element_access/60497.cc
! a8710a7f09d8a98ef121a572124e4ba8  libstdc++-v3/testsuite/23_containers/array/element_access/at_neg.cc
! ee0c039f725629eb167d4f6acf8115cb  libstdc++-v3/testsuite/23_containers/array/element_access/at_out_of_range.cc
! 8043b8558ff092debdc7f291e9f3e48c  libstdc++-v3/testsuite/23_containers/array/element_access/back.cc
! 06351a2bf93143d07fe46a71d1315e29  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc
! ef7b43fd2cfe01067d84fcf859457681  libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_element_access.cc
! 969f2cfda0872977e08a8ada5f72b7d3  libstdc++-v3/testsuite/23_containers/array/element_access/data.cc
! 0c2ae9aeb6d0342be1ff57fb546e38be  libstdc++-v3/testsuite/23_containers/array/element_access/front.cc
  6a70864d40e873666241bcb5b4a33a61  libstdc++-v3/testsuite/23_containers/array/iterators/begin_end.cc
! 32c5ff36d22d98c0842e52d929bf9b18  libstdc++-v3/testsuite/23_containers/array/iterators/end_is_one_past.cc
! 81affec4932e4067162424757bc5cd71  libstdc++-v3/testsuite/23_containers/array/range_access.cc
! efb61486366eff5d50ab9a72b48c32c0  libstdc++-v3/testsuite/23_containers/array/requirements/citerators.cc
! 4abaa135706ee3dbc5093f789ac5de34  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
! b757e99ee5266a68d7bdc4bac563bd5e  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc
! 9b04d1fc3431120a63d323f8124c34b4  libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
! 16ebf832d556478fb651a691d6467cd1  libstdc++-v3/testsuite/23_containers/array/requirements/contiguous.cc
! 7f865a15ac497507d2f4d1f12623a52b  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/1.cc
! 050e555368fee5bc8f555ed17107bfdc  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/2.cc
! 9a67b2b82846da048ce13ce23ab536f7  libstdc++-v3/testsuite/23_containers/array/requirements/explicit_instantiation/3.cc
! 56db2ce6807d6ac236feab10702f1896  libstdc++-v3/testsuite/23_containers/array/requirements/fill.cc
! 3aefbc2adc9d0a413c87c00159bf82f4  libstdc++-v3/testsuite/23_containers/array/requirements/member_swap.cc
! 28ced9f664e4c0586752e1a8b2eb06b9  libstdc++-v3/testsuite/23_containers/array/requirements/non_default_constructible.cc
! d12142c595b043ebea5ccc7b84e19883  libstdc++-v3/testsuite/23_containers/array/requirements/typedefs.cc
  27ad3c766cb9157bada40b979affed03  libstdc++-v3/testsuite/23_containers/array/requirements/version.cc
! 2b2cd4452f10a035fb4baf7a666c96ac  libstdc++-v3/testsuite/23_containers/array/requirements/zero_sized_arrays.cc
! c45565d8663ffc1627d8fd9c809d4dc4  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap.cc
! 245418fbda98ed3f0dd479289fe6da83  libstdc++-v3/testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc
! 7ebceb884e905ffe550db30ead27de91  libstdc++-v3/testsuite/23_containers/array/tuple_interface/constexpr_get.cc
! aab23a059d97e93b80bf23883af2e3ad  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get.cc
! 65ddc6ff38073e6602e4d49b1aca9b0a  libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc
! 0e50670d6b16f952322f533d32aac00e  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element.cc
! 779dd84805e0fb5db0a5788b58041607  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc
! 4aba86ec7c82d37280332a28a304eb5b  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
! c42d304c2e32a04cff6f581ba80eebb9  libstdc++-v3/testsuite/23_containers/array/tuple_interface/tuple_size.cc
! 28085e09cf944c3dc2bedc55e64eb03c  libstdc++-v3/testsuite/23_containers/bitset/lwg4294.cc
  2f8e551de300bee33bdef57bbf631b4d  libstdc++-v3/testsuite/23_containers/default_template_value.cc
  ddf767067d4b89b063a9cdaf9a38233c  libstdc++-v3/testsuite/23_containers/deque/100516.cc
! 456826cc41b2fc20b46ba9ce42b00641  libstdc++-v3/testsuite/23_containers/deque/14340.cc
! b8efcc032af1f79611a19af45020a274  libstdc++-v3/testsuite/23_containers/deque/18604.cc
! dc32810ffbbe2629be97173f305eefe1  libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
! cf5120ed09aa47882e7abc49fb684a3a  libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
! 683a9c44ad06bee24ef58f5170b847dd  libstdc++-v3/testsuite/23_containers/deque/48101_neg.cc
! 9c7a105a9607b382b1db2278a8c715e0  libstdc++-v3/testsuite/23_containers/deque/58764.cc
! 05a8f273025e632044f86b38d745b786  libstdc++-v3/testsuite/23_containers/deque/70303.cc
! ab5d2a8fa0797f2a2e6458e4dba23e64  libstdc++-v3/testsuite/23_containers/deque/92124.cc
! 1bb3aec4ee96fb4adc77a7cb60594063  libstdc++-v3/testsuite/23_containers/deque/allocator/copy.cc
! 82aa2c1627f135772b0959831993ac32  libstdc++-v3/testsuite/23_containers/deque/allocator/copy_assign.cc
! e881d9a6e8c55d3dc8d721a29fa7b461  libstdc++-v3/testsuite/23_containers/deque/allocator/default_init.cc
! b0caa21088617128f9d5ee620adbc645  libstdc++-v3/testsuite/23_containers/deque/allocator/ext_ptr.cc
! 2ff5f81470a582b873e3bedbdb1407bf  libstdc++-v3/testsuite/23_containers/deque/allocator/minimal.cc
! 2882eaa99ce1cb42621c3e9326ba2369  libstdc++-v3/testsuite/23_containers/deque/allocator/move-2.cc
! fac1e8b693bea8e488a305bf5e2b0f29  libstdc++-v3/testsuite/23_containers/deque/allocator/move.cc
! c2a0d836b19500bed2ae4a10aeeaf3e9  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign-2.cc
! c94a3d28871fbdbc8f5444b81c4f363b  libstdc++-v3/testsuite/23_containers/deque/allocator/move_assign.cc
! bae05fa1db725879f2ce1f1a59b80312  libstdc++-v3/testsuite/23_containers/deque/allocator/noexcept.cc
! 17649d1dccb0a107c4d2fa6225381fad  libstdc++-v3/testsuite/23_containers/deque/allocator/swap.cc
! 100d5763ede6221f7f4e7904bb21c588  libstdc++-v3/testsuite/23_containers/deque/capacity/29134-2.cc
! 780e7b29c603823bd301ad3c63e18831  libstdc++-v3/testsuite/23_containers/deque/capacity/29134.cc
! 4060cf12e80dec08ff0e8558f570183d  libstdc++-v3/testsuite/23_containers/deque/capacity/max_size.cc
! c4c855d2eccf5f4af9bad3f5d64819e7  libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc
! f9255aa2b77c7ab92de9f9c6d2ccd934  libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc
! 606260c2806b09bd01ae7ff7ec2880ea  libstdc++-v3/testsuite/23_containers/deque/capacity/shrink_to_fit.cc
! ece88185e3a9f4a399b4d6af443b87c3  libstdc++-v3/testsuite/23_containers/deque/check_construct_destroy.cc
! d9c60d685129449a6d01d3a821ac94d4  libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
! bf4f554d46ee074d2c3de2a43e436bc7  libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
! 568fc5b1621a29a141dd86da306790c4  libstdc++-v3/testsuite/23_containers/deque/cons/55977.cc
! 445db06232e8b0c9b8d0682d510d1142  libstdc++-v3/testsuite/23_containers/deque/cons/assign/1.cc
! 98c2cff86a0bf47ca50f632a7c579fc0  libstdc++-v3/testsuite/23_containers/deque/cons/clear_allocator.cc
! c144b94569be31602dcad4cc29f44ac8  libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc
! 06512f6a7ebca576d310c905332b0d48  libstdc++-v3/testsuite/23_containers/deque/cons/deduction.cc
  9ed639434b2083e9c8709427c62875c5  libstdc++-v3/testsuite/23_containers/deque/cons/from_range.cc
! 3dc02e3e066c455fe3d9f2f36cad998d  libstdc++-v3/testsuite/23_containers/deque/cons/moveable.cc
! a203f94952bfbe9bf6732a7360d841bc  libstdc++-v3/testsuite/23_containers/deque/cons/moveable2.cc
! 4005b98cc42a77c489b7042a8b325860  libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
! a92a0a1bee80dd9ac1c41d5c0ab6c96a  libstdc++-v3/testsuite/23_containers/deque/debug/90102.cc
! 0ced2bfa65db397984379005b99c7a5b  libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
! 4edcdba9d2ede92cfa45ea588a430826  libstdc++-v3/testsuite/23_containers/deque/debug/assign1_neg.cc
! a2392243731601320a3c34d95621ad60  libstdc++-v3/testsuite/23_containers/deque/debug/assign2_neg.cc
! a94f1ce0ecd4ab845f3456d6a91fb91f  libstdc++-v3/testsuite/23_containers/deque/debug/assign3_neg.cc
! 29c7baced210f99b7258fb4b6ae16726  libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
! 0be05910b97bea80b2a10135dcc646f3  libstdc++-v3/testsuite/23_containers/deque/debug/construct1_neg.cc
! aea74ed9b52ec94e275b7cc655bf3664  libstdc++-v3/testsuite/23_containers/deque/debug/construct2_neg.cc
! 2f94d87bc43cee65ea5afffb8c87255f  libstdc++-v3/testsuite/23_containers/deque/debug/construct3_neg.cc
! 767a0613e9485d07d7b9aefa158645e6  libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
! fc958e6a3ef959d185a6a56e9e00abe0  libstdc++-v3/testsuite/23_containers/deque/debug/erase.cc
! 24a425a86d6337c7b58504aa579d968f  libstdc++-v3/testsuite/23_containers/deque/debug/insert1_neg.cc
! 23fc17a187738a90d63d545cff083d96  libstdc++-v3/testsuite/23_containers/deque/debug/insert2_neg.cc
! ac70a1230858e3a7302508243138b517  libstdc++-v3/testsuite/23_containers/deque/debug/insert3_neg.cc
! 5e7e6e481ad45be831714bcd6e4c88f2  libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
! 1d7fb866197d2f7c900882530b209610  libstdc++-v3/testsuite/23_containers/deque/debug/insert5_neg.cc
! dc39a8a87591363e74481b649fde838a  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
! 82d37d85923132c643ba5a7b6894b6f9  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
! 64ecff2883ed6be02675d72cb2e6b238  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
! ba769f9f8f0e3dd9df1cfdaed6eeb11c  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
! 275d57bd035b2209c0595bb3d81cb5b0  libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/erase.cc
! 765dbc8f9049e1ee245deb5cc48e8b21  libstdc++-v3/testsuite/23_containers/deque/debug/iterator1_neg.cc
! b8f8990c3670338147275606d795affb  libstdc++-v3/testsuite/23_containers/deque/debug/iterator2_neg.cc
! 9fd8ab09cd9aa7d0635181049e997203  libstdc++-v3/testsuite/23_containers/deque/debug/shrink_to_fit.cc
! 1c9d5ad8ec1ddfb5303a76f537f33469  libstdc++-v3/testsuite/23_containers/deque/erasure.cc
! b5e829cab1c03dbb3dce27d99c1d655c  libstdc++-v3/testsuite/23_containers/deque/init-list.cc
  d6389dca6900efed9092c757879cb4bb  libstdc++-v3/testsuite/23_containers/deque/modifiers/append_range.cc
! 9982e7d414131d813277f7c9b3acc842  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
+ c04a522f2e4cc1acfa2bd2f288f33d76  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/118087.cc
  0ff485943b32fb63316f65b20ffe13b8  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/90389.cc
! d980fd34b8640e5a87cc8ffec2e83c01  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
! e8c3eb6fad028da429faedb6ad46f8b2  libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc
! 4161e0b7d5601f8bdf8b5e34280f92af  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/1.cc
! 135ee0fef21768e2905b0df12c095f8c  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/2.cc
! a191535702e98743974016675b1c1dc3  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/3.cc
! 5ef1d0bba3cb60d2f5fda9e4c0cc597f  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/50529.cc
! 11e16c990d18e9404dec4cd796422323  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/54577.cc
! 9b7e7b786a089bc696d363cd2ead3430  libstdc++-v3/testsuite/23_containers/deque/modifiers/erase/moveable.cc
  bba735cdd63b156bce7cabf7cc2f280d  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/118035.cc
! 121d79dc2c521d45b757cab913f0a655  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/const_iterator.cc
  f513ce4091b4adef72d00ff67df368b7  libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/insert_range.cc
! b669467a82dcd66774afd66db0b29d88  libstdc++-v3/testsuite/23_containers/deque/modifiers/moveable.cc
  442d1b6fc40cd6f0eb4c25700992eee4  libstdc++-v3/testsuite/23_containers/deque/modifiers/prepend_range.cc
! af4468c2b6054cf712f046f3ec3ade7e  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_back/49836.cc
! 8c0e3750391d119f764f286a7dc3c572  libstdc++-v3/testsuite/23_containers/deque/modifiers/push_front/49836.cc
! 2bd9a797b2872ed5aa8b70c7383a30da  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/1.cc
! 5669e4c1c452dbcb2ca5d4f83c7308f6  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/2.cc
! 54f9fad7245fe9c4abe616707bcb8719  libstdc++-v3/testsuite/23_containers/deque/modifiers/swap/3.cc
! 3ec04fdd374389db01a279d131fe9eba  libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
! db959bd3214fce5e68b106388a67f982  libstdc++-v3/testsuite/23_containers/deque/operators/2.cc
! 5562c32947ac79beba16346e3fbb6301  libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
! ff2c8c30eef1e3400f42802673e1de66  libstdc++-v3/testsuite/23_containers/deque/range_access.cc
! a63ebc36e58f805e1d609087f1b07138  libstdc++-v3/testsuite/23_containers/deque/requirements/citerators.cc
! 65674a4dc1655bb378a97e8c35099d2b  libstdc++-v3/testsuite/23_containers/deque/requirements/do_the_right_thing.cc
! bc97bd4ec37887a58822e376888c3146  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
! 47569cab771e96da22d2785eb354a0de  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor.cc
! 7ed806c511befd511f4d9cc9f89fd25c  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
! d2af1575a55169541ad98da1c2804789  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
! 4be0bbd657884346fa0d75d1e1efedbd  libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
! 26d0bfb64751ff8748f7a5b63d8a4791  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/basic.cc
! 701fdfa3d4e4648eb11af2787a2c8b5f  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/generation_prohibited.cc
! 01f57982c0a2d4e8ce95504a08894fc2  libstdc++-v3/testsuite/23_containers/deque/requirements/exception/propagation_consistent.cc
! 685aad116df005dc9d6a1d6d3b294a9c  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/1.cc
! 4254c4b24519932d1b92716a12acfca8  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc
! 0e269b420befda30cca771fa6aedd964  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc
! 59292e9e38fb22253ac7e3036f9cf208  libstdc++-v3/testsuite/23_containers/deque/requirements/explicit_instantiation/4.cc
! b8abbeeb4506c6b6546de840bf4d5634  libstdc++-v3/testsuite/23_containers/deque/requirements/partial_specialization/1.cc
! a7f008ddf0d355a4f0864963fd2aa8ec  libstdc++-v3/testsuite/23_containers/deque/requirements/typedefs.cc
! 460771be496ad7d1e893b8fa383bb8e6  libstdc++-v3/testsuite/23_containers/deque/types/1.cc
! f0b8e57260744dc4dd54e9310150e92b  libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
! f5b48dae8a0117e334adb810656e5c1e  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
! f18a580ead7e972f0c090a4027e9a983  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
  ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! b19cd21cd3ddf5fc9e40f72427b1c2bb  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
! 999168abb39b43b26234e06cd590acc2  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
! 086ebf6be41c0011120859c1081060d2  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
! 10bd36e295161b7839fff585fcf825af  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
! 476152c1b55bed61d5784f2c55391c4c  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
! 3a54e4ee9401f36ed66b31e6ef6c97f1  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
! 9a8ee3f804c017bdd7aec68a68f7b593  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
! c555509256b535de0a2a0dafa82d3a95  libstdc++-v3/testsuite/23_containers/forward_list/92124.cc
! e9cf1c31df6111088dd460194f2864b1  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy.cc
! 0db43778720e3a92917f0d574f110262  libstdc++-v3/testsuite/23_containers/forward_list/allocator/copy_assign.cc
! 71bd3132d99ea96bc27e2b34daf54978  libstdc++-v3/testsuite/23_containers/forward_list/allocator/default_init.cc
! 967d812c5f1736be297b5e61f6ea118a  libstdc++-v3/testsuite/23_containers/forward_list/allocator/ext_ptr.cc
! 491026167493bfbef54469415fb83909  libstdc++-v3/testsuite/23_containers/forward_list/allocator/minimal.cc
! 370e12f5d0472e21048fc97afa6ef846  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move.cc
! b21bbfc3422ea8b9a78bcc1c906ce311  libstdc++-v3/testsuite/23_containers/forward_list/allocator/move_assign.cc
! 3aec7037d4be8d4978eacba1e2042330  libstdc++-v3/testsuite/23_containers/forward_list/allocator/noexcept.cc
! 3ec1dd94b0ff03bd553979eaf748d7f2  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
! 618e38533350d45cd4d934af1f1b7ab0  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
  5cce50111e2baccda5d72efd393ad7f8  libstdc++-v3/testsuite/23_containers/forward_list/capacity/node_sizes.cc
! b84e3687974fa682976ed10e1511a1d4  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 020f24ba43132c2f43a0c8d0a4d10472  libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
! d7f4d75ee429388a527416875a90e45a  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
! a65898dc15f2121b3ef927aa4fdd1be4  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
! e8092095366c45158fb1fc4c5e41c20a  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
! 6af1a054686f3b654eb6e0594c650e8f  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
! db8cbc7bc9698261877938f389656d76  libstdc++-v3/testsuite/23_containers/forward_list/cons/12.cc
! 10da204d9d312e49265c783ee26edf83  libstdc++-v3/testsuite/23_containers/forward_list/cons/13.cc
! 2eecdd3d429a4b855121e510430bce1f  libstdc++-v3/testsuite/23_containers/forward_list/cons/14.cc
! 111700335e60425123a76402a52c8bc7  libstdc++-v3/testsuite/23_containers/forward_list/cons/2.cc
! 38bd3e9df3d28231f91f4d5dd9968b4b  libstdc++-v3/testsuite/23_containers/forward_list/cons/3.cc
! 5a3c1184550551c717a093fbe1a035a6  libstdc++-v3/testsuite/23_containers/forward_list/cons/4.cc
! 189c52504c93e8a11a9b8602f2b92798  libstdc++-v3/testsuite/23_containers/forward_list/cons/5.cc
! 2c19af908b660df412e23d45d64dc370  libstdc++-v3/testsuite/23_containers/forward_list/cons/6.cc
! 1bb71491f0b6c065a5f7c6a87e934a56  libstdc++-v3/testsuite/23_containers/forward_list/cons/7.cc
! 7b5c72a14a5f812a0a9d25486c438ceb  libstdc++-v3/testsuite/23_containers/forward_list/cons/8.cc
! 8da286c5700c4304a80948c13cce6f83  libstdc++-v3/testsuite/23_containers/forward_list/cons/87809.cc
! 51c690fa5f627f7465b8059cf5f9964a  libstdc++-v3/testsuite/23_containers/forward_list/cons/9.cc
! 478aeb4f0ed0b2b0321467dc6a03767d  libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc
! ad03c56e2ff7da6ee6401f3f69c1bbfd  libstdc++-v3/testsuite/23_containers/forward_list/cons/deduction.cc
  51d51bf26bd5f1e9689d287ced801020  libstdc++-v3/testsuite/23_containers/forward_list/cons/from_range.cc
! dc9b5a90044117ded217f5c671fc7759  libstdc++-v3/testsuite/23_containers/forward_list/cons/moveable.cc
! 606894a4da9d9b05a1d6c89d83b1272e  libstdc++-v3/testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc
! 279388072c627ddc0f2509f21265164c  libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
! 124af6726abf89959cff2fac25b7d368  libstdc++-v3/testsuite/23_containers/forward_list/debug/60499.cc
! 8e7c2e48d126eb7266dc9eded4fed626  libstdc++-v3/testsuite/23_containers/forward_list/debug/90102.cc
! ed55f1bd947dac566877303c7816cbdd  libstdc++-v3/testsuite/23_containers/forward_list/debug/clear.cc
! a35ba7386251ec282b0efabcfdb0d23f  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct1_neg.cc
! 3de030171ae786aca448638834e0c79e  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct2_neg.cc
! 5208ce8c00baf28c990fc291402333fb  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct3_neg.cc
! 4aa4e8da22a79ce1230d6d20f687d94a  libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
! 874602905fcffeb23293bd990349874b  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase.cc
! 3b1f53fc910f3ba0f15d398559e408ad  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after1_neg.cc
! 37b23da04bb0d997179c0b5422a985f0  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after2_neg.cc
! e87a32927325c3b9524e8e7f64d6ed72  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after3_neg.cc
! 4b92e30a13eb19fcc204fb98a18b9263  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after4_neg.cc
! 5a0bbec529efd194319cad58fa9256df  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after5_neg.cc
! d1ccc8a226f2b2bf6d82a815a29408ea  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after6_neg.cc
! f8a16715fbe9704412c203e6b6a5a6d2  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after7_neg.cc
! 1abfe34e23c722b47df10ff48c07c48d  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after8_neg.cc
! 9b796038f9beeec4ee22bdea90dd78c1  libstdc++-v3/testsuite/23_containers/forward_list/debug/erase_after9_neg.cc
! fe614068205c36fe203730015cfa3164  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after1_neg.cc
! 102a7965da78f821be2de0f65125c5b0  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after2_neg.cc
! 4dfe08dc51113ebd3f69b711f313b3bc  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after3_neg.cc
! 88ec6e77fe8399a6da57d645d5b9bb55  libstdc++-v3/testsuite/23_containers/forward_list/debug/insert_after4_neg.cc
! 3ccecb1d63222102d17ddc50b613825c  libstdc++-v3/testsuite/23_containers/forward_list/debug/invalidation/erase.cc
! 6739c2a239f220f86b94c5eb58bb26f9  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator1_neg.cc
! 7d98aa4054a5b4b65d8cd33460d169a5  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator2_neg.cc
! 0b9802843003f1e51f77e1d27149d6af  libstdc++-v3/testsuite/23_containers/forward_list/debug/iterator3_neg.cc
! 865c30d5c90a0eadbce15ec574c6f305  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
! f63c6ef1bacf70f807d9669cd3d043f8  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_constructor.cc
! ef6a0484520f735681473b3f99c2d84b  libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
! 65a0c65e8af48f313d072fd25b5251de  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc
! 71c392e7cabc18ae27021a042153c18f  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after1_neg.cc
! 15da30f9d34d97a7504064a511520688  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after2_neg.cc
! d9248dc0cc6db128c76270549c70cdeb  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after3_neg.cc
! 6084cd9149fc311d30f8bfc0bd31f75d  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after4_neg.cc
! aecf3cccf366b9f0f4f4aa227de9baa4  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after5_neg.cc
! 2aebc70cf6ee0749b3585f4faa2dcdbf  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after6_neg.cc
! 3d050ca2d025bcf05fc214330730ef66  libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after7_neg.cc
! 9a512fed64166fee2d43d39b167772be  libstdc++-v3/testsuite/23_containers/forward_list/debug/swap.cc
! 439df9d99ceb043dcf1d096837e5e739  libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
! 4d3c1d5da712b720c0ea84e20ad0d386  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/1.cc
! 6bcb325735429aba259858615ce5626d  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/122661.cc
! b9b70d676c56184d70102796fda99d68  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/2.cc
! 19581dc5ed5010a0693042b5a0358174  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/3.cc
! 8649653603ca0388759042a275b7635a  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/4.cc
! 10b02982c3ad55690f55bdeb84740486  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/5.cc
! efe862be84b2e6cf7ff652508eb60b77  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc
! b5b38fea4b4eee48eebdfb0dd82e70d4  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
! a429068c2e4ebc78232f84badf15d3c3  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/addressof.cc
  6dadc5bddc21acaff258baec3c0eceef  libstdc++-v3/testsuite/23_containers/forward_list/modifiers/assign_range.cc
! 954bdbb412915d6d7da469e8c004effb  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
! 58eb13909237bd4c7d4a0f0a58064fea  libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc
! 3b119fa6b98ab008b2b11ca4876ef25a  libstdc++-v3/testsuite/23_containers/forward_list/operations/2.cc
! 6f25958ae778ec23d310c50932c02d19  libstdc++-v3/testsuite/23_containers/forward_list/operations/3.cc
! 3f1d87df82afc19bc5fda9f42ac8d5ce  libstdc++-v3/testsuite/23_containers/forward_list/operations/4.cc
! 47045fa35f6aa99efba1207fa54eb3e2  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
! 17f4088660893a7788ba4c66e54dbdae  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
! 6e06134e646025438859e86817c92201  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
! 920057225eb2487f296f7609bcbb6c7c  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
! ef5a8caa9b3c0b2a0dbe9211082930ab  libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc
  7a189e8b9d2375d727e2175b911806df  libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc
! e4fb6e36968f9992d8f24ac0d94b85af  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
! 7dd6a60c251abca6559dd10dbed807c7  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
! 8416a3d8f37bab4eff8aa84694859093  libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
! 40c650fe259c2ca58dcdaadcf11a09c6  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs.cc
! 34930b498b4dd4f8eaeb29afa068a4f8  libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc
! a940811c1020a5651aa058fcb887210f  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
! b0553eb3b8ea41888ede6b91d5a79ef4  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
  aee6d611266dc192e5298aa0bef936aa  libstdc++-v3/testsuite/23_containers/forward_list/requirements/completeness.cc
! f18d896d7d828ce58ea4fee2f2c6f419  libstdc++-v3/testsuite/23_containers/forward_list/requirements/do_the_right_thing.cc
! 2b82bd7359c4ccd92231ef1d126ca632  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc
! 7c382a60cb9219494d5745b25735baea  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor.cc
! a2a7b58023b763426ce17ab9264811c9  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc
! 9bbfa5c30b5a38ed55d602851eeb9656  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc
! d7a6392319f8de5f08d8bcb42df07434  libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc
! f0b780de56e45878843f51b01b562073  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/basic.cc
! 3f4c9d9210c434ebaf90c24a40d21684  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/generation_prohibited.cc
! 3f9e2096ae05d5b32e5ae42f7f1e6d70  libstdc++-v3/testsuite/23_containers/forward_list/requirements/exception/propagation_consistent.cc
! e2173e9f6d520ce336d9d080a7fbac13  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/1.cc
! a511ecd2b9ce59a9375025ce48fc25c2  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc
! 9415dc43da6fe1e47d3bd3d9c733cd6a  libstdc++-v3/testsuite/23_containers/forward_list/requirements/explicit_instantiation/4.cc
! 440f757ef621a4f7e7ebf389110264a9  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
! 1752b3dc8dd4d1c7f1e224bb1552a429  libstdc++-v3/testsuite/23_containers/forward_list/requirements/typedefs.cc
! 327987d73bca44793b1be53cd179a8f7  libstdc++-v3/testsuite/23_containers/forward_list/types/1.cc
  1f989bd4fe44c3ed5563eec35aaa8600  libstdc++-v3/testsuite/23_containers/forward_list/version.cc
! 65d55b8f8d9e3cb46cd6f89179a4a314  libstdc++-v3/testsuite/23_containers/headers/array/std_c++0x_neg.cc
! 83b451d6991157da7ec29297cc58b337  libstdc++-v3/testsuite/23_containers/headers/deque/synopsis.cc
! 7f266d8bd1a14ad7cd731ef735b2568f  libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
! fdf9d99d80357809da23b7adbbf7740e  libstdc++-v3/testsuite/23_containers/headers/list/synopsis.cc
! d0ab6d967f059ef96d5a85a21961da0e  libstdc++-v3/testsuite/23_containers/headers/map/synopsis.cc
! 3af9f3049999ad03c9c49fcac6058648  libstdc++-v3/testsuite/23_containers/headers/queue/synopsis.cc
! 4dad6818c375c772012c0cb432dce195  libstdc++-v3/testsuite/23_containers/headers/set/synopsis.cc
! 77cd69de35ec7c09876aeb68719db7ca  libstdc++-v3/testsuite/23_containers/headers/stack/synopsis.cc
! eba3cd13015fe27bf5fd2d1c607845c8  libstdc++-v3/testsuite/23_containers/headers/tuple/std_c++0x_neg.cc
! c346d495e5c65b130dc6e361de6fd3ed  libstdc++-v3/testsuite/23_containers/headers/tuple/types_std_c++0x.cc
! 7bb48f17586b410849874f3383b78517  libstdc++-v3/testsuite/23_containers/headers/unordered_map/std_c++0x_neg.cc
! 2929459be3caf92a5b28f3e5c079ab20  libstdc++-v3/testsuite/23_containers/headers/unordered_set/std_c++0x_neg.cc
! cc315c7a7afb4be1308c6343537aa2e0  libstdc++-v3/testsuite/23_containers/headers/vector/synopsis.cc
! d403a77f650ef09907df123254dd36ab  libstdc++-v3/testsuite/23_containers/inplace_vector/access/capacity.cc
! ba30ee3573256e9c79323edeab55f45e  libstdc++-v3/testsuite/23_containers/inplace_vector/access/elem.cc
! 30ab64df2eb33c78da29eab2cf8935d7  libstdc++-v3/testsuite/23_containers/inplace_vector/access/elem_neg.cc
! bc234ad58ff4608f222dc9066aef5bcc  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/1.cc
! c586c68ebedcd0552b5c6cec393e6f11  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/from_range.cc
! 38e5f39346a05e51ec2a0e4cdf2586e4  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/throws.cc
! c3a1a3526de292cb363617372f081457  libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc
! c87eb94f57dafc64e6cdeeab93e4ea86  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign1_neg.cc
! 1fa7391889af8e1484f4259b15b914f0  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign2_neg.cc
! 22678c0980cba5c92cdbbb592d98ce46  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign3_neg.cc
! 2375b778cedda3f579cb9e34f57d1d83  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign4_backtrace_neg.cc
! 7859c185bcd98665b570d779ff74f8e5  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign4_neg.cc
! c07a1081a648cd69500f185187ba95cd  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/construct1_neg.cc
! 18acdbfd05e36cea250d03f2f2899ef1  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/construct2_neg.cc
! 571233cc6d3ad45ff166b15b9b89bce3  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/construct3_neg.cc
! 65cdba5d6b9ef3529b4710fefcfea155  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/construct4_neg.cc
! 68c2ab132962343e4d8f2742bf29f195  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/debug_functions.cc
! f2127eabd3efff76a9918eb3a685bef8  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/erase.cc
! 0a2181e4b275b1abba451c2b519c0548  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert1_neg.cc
! 50ae315c9caae8d4c5841677775f0f02  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert2_neg.cc
! d98f767e5c3092e4fa4c0e738eb62333  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert3_neg.cc
! 679fbc9364425900b114df49f9cd6807  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert4_neg.cc
! 54cdbee6f1315514fb850ffd2fd217cf  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert5_neg.cc
! 801fa62be8a2e85b7e3ad40f52aa5a19  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/insert7_neg.cc
! eaaf08c4821362e3300114284107b596  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/1.cc
! 27f1c5a80d42ee81aa25eda4387dd27c  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/2.cc
! 9d4b1602a5ed92f3386329bc3b906086  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/3.cc
! 99425777cee839b30744a6da3eadfe8c  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/4.cc
! 4f4921f719bc70119721da8b071774fc  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/append_range.cc
! bdfb47460495795498b43da7b5e449e5  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/erase.cc
! 4be4fc12ab6433d1000ed01192eafaa6  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/pop_back.cc
! adf70c3108bb57e460f5e7f13e417f6c  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/push_back.cc
! 434493384983fc66e09d4d9f33b8fc5a  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/swap.cc
! 38eb8924b49b2ff37e7aa86a77e56bcb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_emplace_back.cc
! 1188aa6c20f869b0ff8369439d7994fb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_push_back.cc
! 597dca6295388c7b43dbf6bd1b92363a  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/unchecked_emplace_back.cc
! 60ff94b514351d8def7157b4923d9f10  libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc
! 551687653f879c8cc6f6102dd99358dd  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/assign.cc
! 5aec8512568ce2f7543d9c77e6605c2c  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase.cc
! 32171ec785b1b967d1076d5da1536940  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc
! ed67e9da3d1e71d5fb2cffe267b85db0  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc
! 3c4148c567e8b15b2726a4d6154ede27  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert.cc
! 63a7d605a0bc39f3acfb0fa4bb289dda  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc
! 1b7fbaff011dd632225a4efffa9cd1a1  libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc
! 5518dafa57195a13905e6083cf064ace  libstdc++-v3/testsuite/23_containers/inplace_vector/relops.cc
! 52eebf50f02bfc60af51311ef8953d74  libstdc++-v3/testsuite/23_containers/inplace_vector/version.cc
! bfdaa4a27d7988fca29fdca200537d59  libstdc++-v3/testsuite/23_containers/list/14340.cc
! 60a594ab0036a80dd30e3fe403a3f3ed  libstdc++-v3/testsuite/23_containers/list/18604.cc
! 7472551488952b253dcdc1b677e405fc  libstdc++-v3/testsuite/23_containers/list/23781_neg.cc
! ec47885c1056ba214c8892377af661fa  libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
! 2c135d8be4f236d459fb9dc91c473d67  libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
! 0059ab6dd4436ec409ad47eafeb7592f  libstdc++-v3/testsuite/23_containers/list/48101_neg.cc
! 0078970080d4aa5f767a7bec590322a4  libstdc++-v3/testsuite/23_containers/list/58764.cc
! 8bd82fcd2eaf42ca6f485b3a4aea2aef  libstdc++-v3/testsuite/23_containers/list/61347.cc
! b150dbf18cbe7e8d4a7b44831fa7223e  libstdc++-v3/testsuite/23_containers/list/68222_neg.cc
! c8ac83c0de374045cd01dd6ceaadc517  libstdc++-v3/testsuite/23_containers/list/92124.cc
! d3047b95b2527429926fcdc1b02033ff  libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc
! 6c1453cb717f4f89084ae45c466932ce  libstdc++-v3/testsuite/23_containers/list/allocator/copy_assign.cc
! 6e767851127727e6632e78e9053f88f7  libstdc++-v3/testsuite/23_containers/list/allocator/default_init.cc
! a790ea4118129edfb30d53623184b367  libstdc++-v3/testsuite/23_containers/list/allocator/minimal.cc
! b8d71a94674d0951ef9a3905f5767245  libstdc++-v3/testsuite/23_containers/list/allocator/move.cc
! 8956d9d31014f95df0388909080a2e24  libstdc++-v3/testsuite/23_containers/list/allocator/move_assign.cc
! 9f7910c899f6a590f8e30d0ee25cd043  libstdc++-v3/testsuite/23_containers/list/allocator/noexcept.cc
! c5a15d65c6c01f83ddbea542a0ea126e  libstdc++-v3/testsuite/23_containers/list/allocator/swap.cc
! ded8900b082e205765b9f3148673f925  libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
! fcbc3b8c15288953db97bd57b12238c7  libstdc++-v3/testsuite/23_containers/list/capacity/1.h
! f6c27744009d16e66a547edc5b758930  libstdc++-v3/testsuite/23_containers/list/capacity/29134.cc
  793274c6c1ec83475ed9394aa671518c  libstdc++-v3/testsuite/23_containers/list/capacity/node_sizes.cc
! 6883bce425a0b1662df0b253c4d53523  libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc
! c2666b551365a66bc7b93d72436150af  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.cc
! b095c4c24cfce9f9e1fa7e3da94fa363  libstdc++-v3/testsuite/23_containers/list/check_construct_destroy.h
! 6ac3d83b5112253a7f0dc3e3aa963888  libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
! 8f0e51fe89e9cb7f69882af2c5ea0902  libstdc++-v3/testsuite/23_containers/list/cons/1.cc
! 3e98c76a08590341e4d7d56a2e03a30c  libstdc++-v3/testsuite/23_containers/list/cons/1.h
! c1da08c6aea21a2ff0683f68717bdd35  libstdc++-v3/testsuite/23_containers/list/cons/2.cc
! f1e3fe850fd1ae5feaef916597181655  libstdc++-v3/testsuite/23_containers/list/cons/2.h
! eaca3cbb8ffe47a4df5bd92bd095537c  libstdc++-v3/testsuite/23_containers/list/cons/3.cc
! dfd78480adf1ca10edf52f0efcca0460  libstdc++-v3/testsuite/23_containers/list/cons/3.h
! 12db42591ea374c845ca2fcb02afb177  libstdc++-v3/testsuite/23_containers/list/cons/4.cc
! df2d480380c5d3a1f3e78204353dfa0f  libstdc++-v3/testsuite/23_containers/list/cons/4.h
! 8e7b79f012472cc73d776249482ab9b4  libstdc++-v3/testsuite/23_containers/list/cons/5.cc
! bfb7f15abc9326759cf86b36494017a6  libstdc++-v3/testsuite/23_containers/list/cons/5.h
! 576104a2bb7336fabb5a6399a99441bd  libstdc++-v3/testsuite/23_containers/list/cons/55979.cc
! 0998ddd16865fe0dd243848d3dbcc01d  libstdc++-v3/testsuite/23_containers/list/cons/6.cc
! 409e2152a26ef03cbe1ffe2874c219c6  libstdc++-v3/testsuite/23_containers/list/cons/6.h
! adca2db313fe33f607a30f7e7451e226  libstdc++-v3/testsuite/23_containers/list/cons/7.cc
! b61116f1d7f392573b76884eb2aafca2  libstdc++-v3/testsuite/23_containers/list/cons/7.h
! 8584f2473e9164c275b6bf2a58e2a24c  libstdc++-v3/testsuite/23_containers/list/cons/8.cc
! 1f299a8d838b60dd5a19825aef78becb  libstdc++-v3/testsuite/23_containers/list/cons/8.h
! 2ef7ba381e39be2c4549b365e8aeb016  libstdc++-v3/testsuite/23_containers/list/cons/87809.cc
! a196a8be9d0a0256aab7db1563d2ce36  libstdc++-v3/testsuite/23_containers/list/cons/9.cc
! d823582c21086aa6e4354fefe6b58969  libstdc++-v3/testsuite/23_containers/list/cons/9.h
! 1588a93de749d608e6e248cbe0661ecf  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.cc
! f83a64a3490738514f17adfaae49dd4e  libstdc++-v3/testsuite/23_containers/list/cons/clear_allocator.h
! a411d527bbd26cf64e7933331a1e2e78  libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc
! 3a1201773b1dc3daf6fd9e228f30874e  libstdc++-v3/testsuite/23_containers/list/cons/deduction.cc
  936e15cfecb41f6f331c4d2f40ff3cfa  libstdc++-v3/testsuite/23_containers/list/cons/from_range.cc
! 4cc0e5081e0490fdd989de02f8211317  libstdc++-v3/testsuite/23_containers/list/cons/moveable.cc
! 20db1b152ce8e4329e0cac5fa0ee7719  libstdc++-v3/testsuite/23_containers/list/cons/moveable.h
! 9a8997f1c1f1a53c7f443a699d7a98c2  libstdc++-v3/testsuite/23_containers/list/cons/noexcept_move_construct.cc
! 698daa14275e17ebd8d41d2f72ef59f2  libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
! cefef5df32c034736079793b9481a55b  libstdc++-v3/testsuite/23_containers/list/debug/90102.cc
! d232c3a228b7c9575c44f5981d06910b  libstdc++-v3/testsuite/23_containers/list/debug/assign1_neg.cc
! 1684460f2a5cedb466d878dc8909b0ff  libstdc++-v3/testsuite/23_containers/list/debug/assign2_neg.cc
! a096ccf0678287e44c1f5276dace4027  libstdc++-v3/testsuite/23_containers/list/debug/assign3_neg.cc
! d9a9f60e97e87250c84e78567cf04faa  libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
! 40ff4205f5f111e3227435b5c331599d  libstdc++-v3/testsuite/23_containers/list/debug/construct1_neg.cc
! 8bf39cd05023e76c50826469ab128d0f  libstdc++-v3/testsuite/23_containers/list/debug/construct2_neg.cc
! 306bf1fae0d50952f91c5c4fb9e088d7  libstdc++-v3/testsuite/23_containers/list/debug/construct3_neg.cc
! a2b299bc4f4c6de6c19854da859f35d2  libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
! 02db019b204142f6458b9e1ed78497b1  libstdc++-v3/testsuite/23_containers/list/debug/erase.cc
! de1c0fc1845e4285b8c33e7cd1369645  libstdc++-v3/testsuite/23_containers/list/debug/insert1_neg.cc
! 8899a3bcb6e0f1305b91f2078116b7cd  libstdc++-v3/testsuite/23_containers/list/debug/insert2_neg.cc
! efa6c80bfdc127b5272b68da9c6fd435  libstdc++-v3/testsuite/23_containers/list/debug/insert3_neg.cc
! a154eb888556bb4629021d3b72a62517  libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
! a1bc41e03143b996d85a6d86bd15cd41  libstdc++-v3/testsuite/23_containers/list/debug/insert5_neg.cc
! bca6f5c7e7081acdf6dcf34519bb64a2  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
! dcdaf2b57f5d86689a6d1d5a577976c9  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
! eddbed1c71bc4ec55bc42d7d0a492a76  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
! f8c804d873b974f5601f67154116158c  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
! 1b77d115c80dd79aeae23c64481ac8dc  libstdc++-v3/testsuite/23_containers/list/debug/invalidation/erase.cc
! 6e91bd33b73957cdbf682fb0a397e106  libstdc++-v3/testsuite/23_containers/list/erasure.cc
! 3f5bfc79fe1c99807db5435a266c12e8  libstdc++-v3/testsuite/23_containers/list/init-list.cc
! 9a4bc9e83782fa271436206964c07323  libstdc++-v3/testsuite/23_containers/list/init-list.h
! 8c5d66b39bbcf9fd7f79d4d406329eae  libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
! d98f8dd1e0f39fca58f9381e3bb02def  libstdc++-v3/testsuite/23_containers/list/modifiers/1.h
! af32ce796cd5504817c85b1d41375890  libstdc++-v3/testsuite/23_containers/list/modifiers/1_c++0x.cc
! 0f01452c7e1e5645c7c0511b529afdcb  libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
! fe6b38e21da610792de57623947e9750  libstdc++-v3/testsuite/23_containers/list/modifiers/2.h
! c923c32a329dfbeb30b30e087c0b1f58  libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
! d73b0e36996b23c7d7caa225e63ddc95  libstdc++-v3/testsuite/23_containers/list/modifiers/3.h
! d4a27733be925d2e4523d5e8d18a4e5a  libstdc++-v3/testsuite/23_containers/list/modifiers/addressof.cc
  565180e0ce1af4e8a8c23f4ad41d0957  libstdc++-v3/testsuite/23_containers/list/modifiers/append_range.cc
! d95bd732d56f7a156c6a11134ec93ad5  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
! 0c6324dee44ec8a12b89a81af3777afe  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
! 90292d64ad29db6d7156b93f91f0131d  libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc
! d6f6a93b5c3a4af151de6f93192fa6cd  libstdc++-v3/testsuite/23_containers/list/modifiers/erase/54577.cc
! 030266ec4f74e986b80c3d9934b45c88  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.cc
! c63610ed9e31549296031b30e4ce79c2  libstdc++-v3/testsuite/23_containers/list/modifiers/insert/25288.h
! 3d29818e2cf3e2c09626e67b0bc5d17a  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
! c6ee20b3e2878b13d7ed44f6f81b1204  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.cc
! cacfa30043d5e0430b7e6c0d26d568fe  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/1.h
! cff42083c71a18a2bc87ae886cf9811b  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.cc
! 8b6bf824b1725daa078a151a19114885  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/2.h
! 299376dbc2c9eb8bdbb3632f3890aea9  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.cc
! dfb03f93491e1f96a67ca69cc457df06  libstdc++-v3/testsuite/23_containers/list/modifiers/swap/3.h
! bd07260cfb874dc27e2bce9f7de3137b  libstdc++-v3/testsuite/23_containers/list/operations/1.cc
! 26946566bd4a2796beab931180e4d8c0  libstdc++-v3/testsuite/23_containers/list/operations/1.h
! e761569147b8b0c56f0f54489f608234  libstdc++-v3/testsuite/23_containers/list/operations/2.cc
! 9c5fcd7415513662241ec031331ec404  libstdc++-v3/testsuite/23_containers/list/operations/2.h
! 8c2d7389680dd20d124e13b5c22550c6  libstdc++-v3/testsuite/23_containers/list/operations/2_c++0x.cc
! 60a6b6796898f3509e97a25abb557ba4  libstdc++-v3/testsuite/23_containers/list/operations/3.cc
! 9724c0072d0e5c6b24d190f201899d23  libstdc++-v3/testsuite/23_containers/list/operations/3.h
! 1e10c297c65b0bada07d442489440fb4  libstdc++-v3/testsuite/23_containers/list/operations/35969.cc
! 341a3c84b98f2c1fe15403a58f3f93ec  libstdc++-v3/testsuite/23_containers/list/operations/3_c++0x.cc
! f909007d112517f354346ef0330bae2c  libstdc++-v3/testsuite/23_containers/list/operations/4.cc
! 42d30a4c41f37ef80586abf42d0d9780  libstdc++-v3/testsuite/23_containers/list/operations/4.h
! 0c92352805104a9d02d5f72b6466fd8b  libstdc++-v3/testsuite/23_containers/list/operations/42352.cc
  e9b09b08be9f79aee16cdfe50434376c  libstdc++-v3/testsuite/23_containers/list/operations/66742.cc
! 03cff6be35af4a21d55b87923e1bfc2f  libstdc++-v3/testsuite/23_containers/list/operations/78389.cc
! 45b3d81c88d772f144d20ffb72ef14de  libstdc++-v3/testsuite/23_containers/list/operations/80034.cc
! 318162ea3f600c3f4c31d292a97ed259  libstdc++-v3/testsuite/23_containers/list/operations/91620.cc
! e79f05e9ad698addb79dc7e4d4daf3e0  libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
! 210bcbb21cdef70bdc2bc6cd2760f8fd  libstdc++-v3/testsuite/23_containers/list/operations/splice/const_iterator.cc
! e84e757eff73278de113bfb0df45206b  libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
! 9872238c666bde25293cec8ef89b8c52  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs.cc
! 85ad7d757407bbba7d4b380314e13e42  libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc
! cb6305dac0b22688adb35619a1e54e51  libstdc++-v3/testsuite/23_containers/list/pthread1.cc
! 05ac51412320769730ad1bffb11bde8e  libstdc++-v3/testsuite/23_containers/list/pthread5.cc
! 2ef2a9701d6d99baffd07203f9736709  libstdc++-v3/testsuite/23_containers/list/range_access.cc
! fadb26decbbe73447f2275b356358fcf  libstdc++-v3/testsuite/23_containers/list/requirements/citerators.cc
  c362cfb78f30b143680fde0c7db01334  libstdc++-v3/testsuite/23_containers/list/requirements/completeness.cc
! 08f95577408ce7c6102e6466fab43b4c  libstdc++-v3/testsuite/23_containers/list/requirements/do_the_right_thing.cc
! 5f6a19bafe9999ddeee9e3d62c658d23  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
! 765b57e0c3ad62901135c92c449db2d0  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor.cc
! a4c549e477f9a83499693cc265739243  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
! 7054ef447505fb2f1714c578032ded33  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
! 838c6153940ae1c748f0fccf74a61310  libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
! 3af34508699282ad81a7d520668afd9e  libstdc++-v3/testsuite/23_containers/list/requirements/exception/basic.cc
! b7fd39a2bb372cce2b0ad0225d5c6446  libstdc++-v3/testsuite/23_containers/list/requirements/exception/generation_prohibited.cc
! 72639aba2d7825fb929366b906440979  libstdc++-v3/testsuite/23_containers/list/requirements/exception/propagation_consistent.cc
! 8e9d70afd80094641abbcc63d017b007  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/1.cc
! 8d28147367c86c0327a42d452ad04aeb  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/2.cc
! 8d8ca77a35e00e112733ee2d3e685a37  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/3.cc
! 82f78a25606ef015a1025f8363dca339  libstdc++-v3/testsuite/23_containers/list/requirements/explicit_instantiation/4.cc
! 7ca098c7f0d5b39db6ed757db90b8112  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
! 94523ce85cb9270d8d98afcf1857ca11  libstdc++-v3/testsuite/23_containers/list/requirements/partial_specialization/1.cc
! 849b4853e0f42fc493c7d74cff745b98  libstdc++-v3/testsuite/23_containers/list/requirements/typedefs.cc
! 1b04426de6af20d5075622660d07fb65  libstdc++-v3/testsuite/23_containers/list/types/1.cc
  6f77f8f5355e921917c6eb07503b9c94  libstdc++-v3/testsuite/23_containers/list/version.cc
! a60993abf049f3a623b5486879d0fe5f  libstdc++-v3/testsuite/23_containers/map/14340.cc
! ac2b367f29d6eedde8e9e7b6c9d3b917  libstdc++-v3/testsuite/23_containers/map/18604.cc
! 80eb909e912af37deccd2d50fcf25647  libstdc++-v3/testsuite/23_containers/map/23781_neg.cc
! a53138ddfe352e1e03bc74a211c83bdc  libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
! 7e7a8eccfbdb49b8cc2c3e51a8f11c5a  libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
! 5aa61d4735fdaa3a041189d9e35d7ee4  libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
! fc556e51f132f901c320a82759fe222f  libstdc++-v3/testsuite/23_containers/map/56613.cc
! 6d3b5b726f5fa252ef03747f24e7e434  libstdc++-v3/testsuite/23_containers/map/58764.cc
! f4c7f30ac1c781e3a40302b7e8585c31  libstdc++-v3/testsuite/23_containers/map/59872.cc
! c7ac7c0dab10456c7a4c721c381ce4ba  libstdc++-v3/testsuite/23_containers/map/77334.cc
! fbad3fb6406355e531d3c9abef42172b  libstdc++-v3/testsuite/23_containers/map/92124.cc
! 8b83eae44efa2e001162577ac021e719  libstdc++-v3/testsuite/23_containers/map/allocator/copy.cc
! b404df61d5467a95ab0e3a1b5f582e09  libstdc++-v3/testsuite/23_containers/map/allocator/copy_assign.cc
! a7c9e5a856e8b4a72637dcf4bf155ae7  libstdc++-v3/testsuite/23_containers/map/allocator/default_init.cc
  b2a57dc64f4a4f35ddb6c2faa83deb1c  libstdc++-v3/testsuite/23_containers/map/allocator/ext_ptr.cc
! 39f531a1812acaaf5ae2a323dd9070df  libstdc++-v3/testsuite/23_containers/map/allocator/init-list.cc
! 2fbf33ae52a9fa6957eeb1659debcf4b  libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc
! 738ca729778d47e1cdedfdab7f3b0a86  libstdc++-v3/testsuite/23_containers/map/allocator/move.cc
! 0c055329c062ab906457041383a9a300  libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc
! cda66d42bb120dacdcb14ed3bbec68b3  libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc
! a8411fc14f0821bf13303c5617eeec22  libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc
! 8a6a97314e48a8221e0011616c8de5b6  libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc
! af5ceb47a7379f951022fe7b246a5c7c  libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc
! 275e75cbebbe83c003079ab27c9ea9c5  libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc
! f68214b51031c34da920a3b620ba3175  libstdc++-v3/testsuite/23_containers/map/cons/from_range.cc
! 9388c254171768cb4defb367af717fc0  libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc
! 49dd7debdf910ab7b5188b8e457f1969  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc
! 7a21a3a35eb5e07ab511149e8db77f6f  libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc
  62c8fc35a2126407d843225adf9afd90  libstdc++-v3/testsuite/23_containers/map/debug/112477.cc
! 0aa2eefaf843fc102847aacb2bd8b8a6  libstdc++-v3/testsuite/23_containers/map/debug/60499.cc
! 315caa9f20501c7b645eceb62ac289e8  libstdc++-v3/testsuite/23_containers/map/debug/90102.cc
! f6f703b82bf080a134dba7d04b59c09a  libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc
! 8e922594b17a6f56fdea78177d0f7c5e  libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc
! 8be6200abcb868b64f8a3e102dce0672  libstdc++-v3/testsuite/23_containers/map/debug/construct3_neg.cc
! 250ce31178fc352b72a040cccfcd9e99  libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
! 41a16b6cf178fdcda3d0ff1c79955c4b  libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
! fbbb5ba540b74fc0105228d4bf7a45d6  libstdc++-v3/testsuite/23_containers/map/debug/erase_if.cc
! c07299df138ccd2ef852a779f53db091  libstdc++-v3/testsuite/23_containers/map/debug/insert1_neg.cc
! 64570b290aca82eba33c9173b2d20102  libstdc++-v3/testsuite/23_containers/map/debug/insert2_neg.cc
! eb45db7da195c9dc1d6a6eab906f9035  libstdc++-v3/testsuite/23_containers/map/debug/insert3_neg.cc
! 831eaa3d8a088b93707cd5317c8daeb6  libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
! 7631dd583171545f327432fd4ed79eed  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
! 200af21db6c5490e941d64cad39ca4b1  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
! b3db60448827db2b181cd95318afe899  libstdc++-v3/testsuite/23_containers/map/debug/invalidation/erase_if.cc
! b928883c5cd27da19fc620083f267e5b  libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
! a872e6ef4946ab341f3f7a6831e55904  libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
! cdea603d456b555b9b92832baf061728  libstdc++-v3/testsuite/23_containers/map/element_access/1.cc
! c1ad8d45b5f049097894e6fd5cc88a6d  libstdc++-v3/testsuite/23_containers/map/element_access/2.cc
! f1f230f2672ed92adc9250073ddac00b  libstdc++-v3/testsuite/23_containers/map/element_access/39901.cc
! 9bf8d9652fd4830a230c22ba838027dc  libstdc++-v3/testsuite/23_containers/map/element_access/46148.cc
! 64a700ce05c97ff9159b0427ff045a8a  libstdc++-v3/testsuite/23_containers/map/erasure.cc
! 9b30914945a3aea28deb92cb323846ee  libstdc++-v3/testsuite/23_containers/map/init-list.cc
  8642b25c59832140c46994b559a3d1a8  libstdc++-v3/testsuite/23_containers/map/modifiers/108554.cc
! 30c58a8ef722020dba325299a24a9dac  libstdc++-v3/testsuite/23_containers/map/modifiers/dr130.cc
! dee24f2d89f9cfeda5a21b7232d9fccd  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/1.cc
  205086c15a257b2b3847ce68833198f5  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92300.cc
! 64a7c7a10e9ce4f8db7cf3fd0744db86  libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
! 7af8b82a04ba26e87578b94807cd3a49  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/47628.cc
! 48125403022ee28b3f0a7ee7feed8401  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/51142.cc
! 533857f251eca8b9014ffa69374b9f98  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/abi_tag.cc
! 898e854a7d9fcbcc2feb2bf6bec7d4ce  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/dr130-linkage-check.cc
! 00acf96e02908db04479269a066646d8  libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
! eb1848935192587eebbfdc1a32f69b82  libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc
! fa970dcd0b8af7bf3761f9cc8585fcde  libstdc++-v3/testsuite/23_containers/map/modifiers/hetero/erase.cc
! 990b9eca968cf65d423dc899e777251d  libstdc++-v3/testsuite/23_containers/map/modifiers/hetero/insert.cc
! 9b3c828026424d5d1038ae3d7609f4c7  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/1.cc
! 2272bcb8df0f8105aa55b890bc92e701  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
! ba2cdcb5b5eca69b7b8ab683a22f1e04  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/2.cc
! 249cf418efb711cb9e25ff08d9e0cd13  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/3.cc
! 3427f777a71892b0af3aa305d9dafc89  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/4.cc
! 379eae7d9e2d5a395c76a8b8243d8754  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/5.cc
! 2b911073291334caf5f57dcd8490a26a  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/78595.cc
! ada0cda17337558808e33ae9fd53e4d2  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/83226.cc
! 0b5dee8816f2f390d59a48bdeddff253  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/87194.cc
  bf1079f7dbecd612e1c7ff8cc0558abc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/92300.cc
! b98f79706a0f96a17aa1406212f64795  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/dr2354.cc
  35e76b4638a4cdc67a000488ae5d7e86  libstdc++-v3/testsuite/23_containers/map/modifiers/insert/insert_range.cc
! 7ac31c470c4182a6d948b7f8dfbbafcc  libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc
! 4b386be5edaacfd18d183567c24d7521  libstdc++-v3/testsuite/23_containers/map/modifiers/merge.cc
! 2cbdfcd51f1fd60c10b766bf63eba07d  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/1.cc
! b69a15f361797c6ebaa03086e738d7d1  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/2.cc
! 1ba7b20ca47b454dedf28fcdcdecd01d  libstdc++-v3/testsuite/23_containers/map/modifiers/swap/3.cc
! 60b70cee642d3c5a0d253685ba096d6d  libstdc++-v3/testsuite/23_containers/map/modifiers/try_emplace/1.cc
! 749971a6b5277dd5bf662574d371b968  libstdc++-v3/testsuite/23_containers/map/operations/1.cc
! fffdb6f32241f4a0878ec3ece51b7dd0  libstdc++-v3/testsuite/23_containers/map/operations/2.cc
! bab905e1ae8763b4c0a3e78d5c903a92  libstdc++-v3/testsuite/23_containers/map/operations/31440.cc
! 5e991b87f5722d4a5c08ace0de825f30  libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
! 86500f9420a0881022d4bfb1ea90e83e  libstdc++-v3/testsuite/23_containers/map/operations/count.cc
! 2d9e93a0a8f4dda0db9314f1c61149a4  libstdc++-v3/testsuite/23_containers/map/operators/1.cc
! 50acf8a93ad96c097c51d3597c41cc15  libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
! 867a5677b298fd175abf9987e8a40f49  libstdc++-v3/testsuite/23_containers/map/operators/2.cc
! 018d7bc476eeed68c4b4b915a7ce33e8  libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
! 7b80e182e482574565a711b44c6fb703  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs.cc
! 010fd48c173c9949ba6c15ecf168f99e  libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc
! 995b57ced4530d5f0b148bbc529cf444  libstdc++-v3/testsuite/23_containers/map/pthread6.cc
! de4c53f150d8ae841276f975af000801  libstdc++-v3/testsuite/23_containers/map/range_access.cc
! e8799f67cfc2e275b7ad4bb0a54d0d16  libstdc++-v3/testsuite/23_containers/map/requirements/citerators.cc
! 7df2f03d63252007705c2c2f19d269f0  libstdc++-v3/testsuite/23_containers/map/requirements/exception/basic.cc
! a13c4103fba20879324e9c5de474be8d  libstdc++-v3/testsuite/23_containers/map/requirements/exception/generation_prohibited.cc
! 0165ed4d47c3a706758d9ebaf18db0f5  libstdc++-v3/testsuite/23_containers/map/requirements/exception/propagation_consistent.cc
! 8bf7bd37efdc95f5e2b14a68ecf930a2  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/1.cc
! 38512a6251825149cf41113cf12d401b  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/2.cc
! 2640acb7c142c7ebe3b01b7fa79afd4d  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/3.cc
! b3237b6f28e6cca64f4db26739740bb8  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/4.cc
! 3b23b0253d55f1733ddefe83612017fc  libstdc++-v3/testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
! aa88a13bf347c95e75dfc71ecff97284  libstdc++-v3/testsuite/23_containers/map/requirements/partial_specialization/1.cc
! 96d4e0c152ea58a39b77769e94fd485e  libstdc++-v3/testsuite/23_containers/map/requirements/typedefs.cc
  1a429dd433a9cca8518d6eeaf0db7ff4  libstdc++-v3/testsuite/23_containers/map/version.cc
! 68fcc48008e794e130ed491e735c2ae0  libstdc++-v3/testsuite/23_containers/mdspan/accessors/aligned_neg.cc
! 68cdef8b512100181ef5299423f60a71  libstdc++-v3/testsuite/23_containers/mdspan/accessors/debug/aligned_access_neg.cc
! f0cede418772577badbb376161c38ebb  libstdc++-v3/testsuite/23_containers/mdspan/accessors/debug/aligned_offset_neg.cc
! c9be65e1a0cf8e0da83e4027b6ea3e64  libstdc++-v3/testsuite/23_containers/mdspan/accessors/default_neg.cc
! 72240f7d2b9d3abcab8b06d4f0e67f65  libstdc++-v3/testsuite/23_containers/mdspan/accessors/generic.cc
! c759013159e5f1f093849c00bae9ff73  libstdc++-v3/testsuite/23_containers/mdspan/at.cc
! e5c17ed95482174d37bf901a5f3dff37  libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc
! bb096ee6d5a81634a48634c6dda721a9  libstdc++-v3/testsuite/23_containers/mdspan/extents/class_mandates_neg.cc
! 58d322becec5c5e65c19f17834e2a082  libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_copy.cc
! e9e5cce5f41b3fcb25e00e9b6edb9a83  libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_default.cc
! 4844d68e8a9a53b1031f3bee14f63e8f  libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_ints.cc
! f11430abfbf793c9117a6d498fc9e9d6  libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_shape.cc
! 6b6c681b4ae0468d99acf8f33deb6539  libstdc++-v3/testsuite/23_containers/mdspan/extents/custom_integer.cc
! 669e44182af41d221acecffd45681dc9  libstdc++-v3/testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc
! b156707a9c78c39d6425cbae7cb3f90a  libstdc++-v3/testsuite/23_containers/mdspan/extents/misc.cc
! 7d027bfd05e10a23595a7e3890f8f780  libstdc++-v3/testsuite/23_containers/mdspan/int_like.h
! bead52db525471c98d26137e05743c97  libstdc++-v3/testsuite/23_containers/mdspan/layout_like.h
! da389bc5518d9172e2dec1d7e53315fb  libstdc++-v3/testsuite/23_containers/mdspan/layout_traits.h
! ab07a82ad1f2a1ee5e8b19e0b60f44ea  libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc
! 17c0f6c2479b2697a0e1f1e5dbbeb6af  libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc
! ea1a2f61fac46b6b55b9ff2c52289540  libstdc++-v3/testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc
! afe443cccc07fbd59aff2af0edd955ce  libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc
! f100ecfcef3f79639fc5c07828bee8f2  libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc
! 2226303150eee3ae46373765f6a6d08f  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc
! 490297a4a90a084a51d7dfe6eb3a0f72  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc
! 3f96813b92ac712ab8210f7eb24e7158  libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc
! 13c4652458676185e5ef28eed77c0527  libstdc++-v3/testsuite/23_containers/mdspan/mdspan.cc
! 4b1a50b4d361b155b60027f1bdc566e7  libstdc++-v3/testsuite/23_containers/mdspan/out_of_bounds_neg.cc
! d0948adb8d08e1ed90f5223c0e45676b  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/canonical_slices.cc
! c27c291ecb32ad3eccc01987f563a8b4  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/canonical_slices_neg.cc
! 0d809aabcc502f57321097810eb58061  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/extent_slice.cc
! ba61b09cc597008ca51cf543bf72683e  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/extent_slice_neg.cc
! 75dcf76383a9e8f1226c23f8af9a325b  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/generic.cc
! 5beafab2247372d8808eba8ea2470da5  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left.cc
! 320c7a19014594422581c98059449421  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/left_padded.cc
! 98e5bb874b218c9ecd93d13b2c743953  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right.cc
! 8765797743fde1edc95a98d1d68d50ea  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/right_padded.cc
! 5976cf404456fbbe6f2f13639760eee4  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/stride.cc
! ddce93540a944d39b64672e1c8cc25dc  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/selections/testcases.h
! c159f330520ead218ac259e3d55de786  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/subextents.cc
! 5da81bd97d8328198e62895f5f414bfa  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/subextents_neg.cc
! 25510afa31ee5c2b8e84311e1463fd09  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc
! 71b9441fb0f807b3010604460da4adcb  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc
! a1e2443fdfc824b4a97945b2d4aa84a0  libstdc++-v3/testsuite/23_containers/mdspan/version.cc
! 45f85dd89e11f6e3166a8771041f6e8f  libstdc++-v3/testsuite/23_containers/multimap/14340.cc
! c31e5e6710909146da22f7151dfcf6fc  libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc
! 803ad24289260522c74ad3ce53c2599c  libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
! 79b795189ab0c29f09a07683d0390471  libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
! adbc503cc7b5b81cbd2155d7a4929abd  libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
! 259790d0d2debed46039c5e14c4f23d1  libstdc++-v3/testsuite/23_containers/multimap/58764.cc
! 4f539def7478b1713248cbbf22b6a8e5  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc
! bfbfbdefd128a17f0580b30f8aaf2477  libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc
  aab122fa30d9865d25fec417a7a74b33  libstdc++-v3/testsuite/23_containers/multimap/allocator/ext_ptr.cc
! 1190fb49909a85b748bcabfd48996f2f  libstdc++-v3/testsuite/23_containers/multimap/allocator/init-list.cc
! 329b17f33585a0cf15bee451cceb38c3  libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc
! a81c660b263a0c6aa212ed581a16d50e  libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc
! 966e4a4e539078f52a9b190c4768f4ab  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc
! f0a2830c754ea6bfabb391c6a4065367  libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc
! e5daee8d1414c9805a1086cafb8f294a  libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc
! e1353f1dc9506101a72fcf97f6e81dc1  libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc
! 334762b81f2172d31b584a1e9dfa9c55  libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc
! 1a8ef5aa88657ddac49ca7e05e7bc306  libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc
! 67e10336044b5eee40db91d5b499d8b9  libstdc++-v3/testsuite/23_containers/multimap/cons/from_range.cc
! 0b935b77f8716f19d0ea652340927b5c  libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc
! e18a6a5534572fdf3a54f29b8dec3ffa  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc
! fb953014fc204bba3ff37e1740fe13f4  libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc
! efc08bdfec2de062466c9c0f6824e515  libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc
! c1369051ca8834ab9c8a533f7effe3eb  libstdc++-v3/testsuite/23_containers/multimap/debug/90102.cc
! 4ce6723f6cb737b82e54ba1731cc81f8  libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc
! 59a007f1cd5426c5d1d970f53c1a8c33  libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc
! 65becab5b37e1500a119c7f13c9ced57  libstdc++-v3/testsuite/23_containers/multimap/debug/construct3_neg.cc
! 0e85d452fa485c1dd31c707a383bc7c2  libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
! 4280a2f618117fa05262e5e64b5904fa  libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
! 1d92c5cd28d9cb2a4140bd3f9818f45a  libstdc++-v3/testsuite/23_containers/multimap/debug/erase_if.cc
! 61b2c34b6ecf7a1f03be4766f09c75dc  libstdc++-v3/testsuite/23_containers/multimap/debug/insert1_neg.cc
! 1dee5a3aa56fbb56e95c9e5c6949017a  libstdc++-v3/testsuite/23_containers/multimap/debug/insert2_neg.cc
! c133585e43b4470405ec622f743d71cf  libstdc++-v3/testsuite/23_containers/multimap/debug/insert3_neg.cc
! f628f5aa1b6c9134ce90957697cb6fea  libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
! 26295929f49b16878a46421ce1331462  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
! 3d6bd27c147ba30ec31821b7743e7067  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
! b709e6fe79210867089e9d8233f72c70  libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/erase_if.cc
! 08344d8e277578b8d259d872da8fdc1a  libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
! 9096a7a54e12f236d2b1d7c7ce8ac822  libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
! 27265905dac4e1033fc7a2726b509d7d  libstdc++-v3/testsuite/23_containers/multimap/init-list.cc
! 70488da16f3ddf27a68ffa07c6d5613b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/dr130.cc
! eb233bc5c6656ba5051564f6a58c01be  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/1.cc
! 823f9cd9cdfcbc072b6a204188dc2f34  libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
! b88666152b4b2433976e3689a1333fa9  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/47628.cc
! c443b6c761521cb6ce34e95ca88bc291  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/51142.cc
! 691774450bc3311619f388de2497b1c5  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc
! e61a9683ddff14ba8c65152b9dd28c8e  libstdc++-v3/testsuite/23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
! c7ae9c1cf76a403090fd65f16459413d  libstdc++-v3/testsuite/23_containers/multimap/modifiers/extract.cc
! cfc6f17db25a12c8c106fdb82aca377c  libstdc++-v3/testsuite/23_containers/multimap/modifiers/hetero/erase.cc
! cba2fb5ccb140db11938b469499dd9ab  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/1.cc
! 0d6e30cf6317033ef2e7976dfca68f9c  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/2.cc
! dd17999a6d77ce0ffd8a3b979c0eba4b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/22102.cc
! eea18231fdee771b9e1133db781cd82a  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/3.cc
! c7203b45b9e9946947477ca01b35df8f  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/4.cc
! b954c6c50f809e0c472b0704a8ab90b4  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/78595.cc
! 4664edde061f7cf2c9153ea89257b89c  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/87194.cc
! 5bae455ea7d7486daffa79c54c82ebd1  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/dr2354.cc
  afa5f753174b312ca04573c15027ee8a  libstdc++-v3/testsuite/23_containers/multimap/modifiers/insert/insert_range.cc
! 2ce96726ca6d18b24812f7a7d13eb580  libstdc++-v3/testsuite/23_containers/multimap/modifiers/merge.cc
! 56cffaa2014bef3e591efdc3b83d2b7b  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/1.cc
! ee05c2e9c75aa016dd6674fa799fa799  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/2.cc
! 80056b173d61a5eb002cdb314328c755  libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap/3.cc
! 779603b9aebebe5fa2c7107114127e77  libstdc++-v3/testsuite/23_containers/multimap/operations/1.cc
! c4d146c9793c76f76cf92765dfa7f24c  libstdc++-v3/testsuite/23_containers/multimap/operations/2.cc
! 0dfe8f5a034fd23187fc58db07c0e537  libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
! ff5454a841985ac7b90c2661e33c15dd  libstdc++-v3/testsuite/23_containers/multimap/operations/count.cc
! dc22e2e36cc9d38d447d24bca81dbc1e  libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
! 42f87833a952ce15b4cea4acdff36df3  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs.cc
! 873dfa1b280df264b784a841e0e30938  libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc
! 21cea1765c2fc7924fa5245bf9c0387b  libstdc++-v3/testsuite/23_containers/multimap/range_access.cc
! c6eacb344b4d5e8f1f0e80134260c95c  libstdc++-v3/testsuite/23_containers/multimap/requirements/citerators.cc
! bd74bc3dad9debbfc17a15681d81b351  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/basic.cc
! 59e1ab563433667ab18ced245a15bc76  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/generation_prohibited.cc
! b50edfbf3d472dca991562e99f91e87a  libstdc++-v3/testsuite/23_containers/multimap/requirements/exception/propagation_consistent.cc
! 1de0117023dba895d04b878d4ac70860  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/1.cc
! 373b70331e766faed2ce5cbbb870da4a  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/2.cc
! c213b70adf04389ca00b9c291f0a0172  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc
! 0ac7864cfc1ec24e61264e0e3392f73f  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/4.cc
! aa7fcd7596d800c65dd960f5b5cd9561  libstdc++-v3/testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc
! c4ce2b4843982290a5b5e40e10f293b4  libstdc++-v3/testsuite/23_containers/multimap/requirements/partial_specialization/1.cc
! 7fc689592cf252168157b9716cb39e5f  libstdc++-v3/testsuite/23_containers/multimap/requirements/typedefs.cc
! a2bd27af5349fece71adadf9ef9ff770  libstdc++-v3/testsuite/23_containers/multiset/14340.cc
! e9abbc85a137feef4dce67c39ec585f8  libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc
! 66b13085a8af49ed6c940c626311a795  libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
! 242021321e1fd4c1a1058e3478b1f304  libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
! a2f9bed24c1301c3326a497c387607c9  libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc
! ba62beea15400e0b59038a210d0b3f2f  libstdc++-v3/testsuite/23_containers/multiset/58764.cc
  c599e48655ea2e75c592ab5a1cf5ae3c  libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc
! ea4a56ddc5798993f145afef1898d795  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc
! 46ed69fb93b1f5f4c7007e0e51712a94  libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc
  198a4529b4a90febfb29faa4e8947500  libstdc++-v3/testsuite/23_containers/multiset/allocator/ext_ptr.cc
! 781ceb3c00c9cbd40ed416be1ee0ff5b  libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc
! 0d17f178ef95e309e01c32e5e40a6865  libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc
! b6b5ed0aeeb1bfd39c3fa132241c0b21  libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc
! f7c13796895c67f9a93a1a1f2baef824  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc
! 95b691f4b064b5d39d7eb3c83694f99c  libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc
! e68b2abd9de35ad0e7c3967a1c49e658  libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc
! f7228083d78fbc2858d24468898df16d  libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc
! 4c7d78c86054dfd88c96dc1da4678f79  libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc
  bbb896871fd7c7c3f4be6d45db152294  libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc
! 779aabcf59c7b7e95ec9d91e468ea260  libstdc++-v3/testsuite/23_containers/multiset/cons/from_range.cc
! 9c6f5f534c5a55befd09b7d01efa9c9b  libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc
! 191ddbf6d564def5e453d59aef3c89ec  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc
! 0fe7ed5555c4276a77506913e6937ec2  libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc
! 37ab031c7ea54067d6cc9585d8b4f729  libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc
! cad525e777d47e8e110138c968f9df9f  libstdc++-v3/testsuite/23_containers/multiset/debug/90102.cc
! 660c56ffe17bdd9aa1ad3b80a0c43e1f  libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc
! 87fb9104e02a9e7aa49c020c9242cb48  libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc
! 979426c587fe1d43c1fb5c2be4904bf5  libstdc++-v3/testsuite/23_containers/multiset/debug/construct3_neg.cc
! 1dd60c2eacb3f58769f8fbc86eea590e  libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
! 0e75434438d2ad5211b31c052342a907  libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
! 2df62192fdd034a272ba0f77324f645b  libstdc++-v3/testsuite/23_containers/multiset/debug/erase_if.cc
! c40f63e711dd193d76b407ca70b3d8f8  libstdc++-v3/testsuite/23_containers/multiset/debug/insert1_neg.cc
! c38e498c23a1b1d1aeef1c30a92213cb  libstdc++-v3/testsuite/23_containers/multiset/debug/insert2_neg.cc
! 27f721c8b197de84baf3915cb6ad4927  libstdc++-v3/testsuite/23_containers/multiset/debug/insert3_neg.cc
! 0330540691b71f95d4765aed165f9c2a  libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
! 8c866633846af73056b93f96d7badcb0  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
! 40b59e8e4ecfe660170ae916a1fbfed9  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
! 86e251b70f73950565c7961e93afd4dc  libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/erase_if.cc
! c7f4dcdaa957b1bb027e29d635d7674e  libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
! dfccfafe03eb24674ad2ae5fb2b5f203  libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
! 3b29950e98aebc1c6ae9a49fd9ad3b0c  libstdc++-v3/testsuite/23_containers/multiset/init-list.cc
  b761d5230bf4935944006f713e5604d5  libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc
! 0371053d9bb2dedfa325c70180201ab9  libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc
! 7a24899f9d082b2082d158404abb4a0c  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc
! eb8318c1385174a39fea7ba8ac760cf3  libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
! 4af78ae34b7611d9cf19bfacbb5c1a82  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/51142.cc
! 8c3da0caed551c3df75ab21ffa286776  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc
! f7d19184d5eb60590e31a2ebb8b35558  libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
! a2ba2119469540457b1de5afeb17427e  libstdc++-v3/testsuite/23_containers/multiset/modifiers/extract.cc
! 5ebc5ef9dbb1bdd1561176a842f60705  libstdc++-v3/testsuite/23_containers/multiset/modifiers/hetero/erase.cc
! 4d1248eb129018789f36125c2e67c8a1  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/1.cc
! 4f94e7ac1e8b8eee0d7a103d803bb309  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/2.cc
! dda45230d8a15b54c6cacaba9bb0470a  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/22102.cc
! 2cd4df444e1fd479b1d0c330f7efa01a  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/3.cc
! 96d98ee26d4b38ec6b6916d908bf6a62  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/4.cc
! 457813ffe9acbb18122f747696f32bd8  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/87194.cc
  7c14040f27b9d6d1ddc33d97bbb38abb  libstdc++-v3/testsuite/23_containers/multiset/modifiers/insert/insert_range.cc
! a6a89658d8202c55b511a699142b8947  libstdc++-v3/testsuite/23_containers/multiset/modifiers/merge.cc
! ff179f969bc7af62e225d6efe4b76149  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/1.cc
! 20bfa44a884c095cd3877efe5380a29b  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/2.cc
! 3f9fd89c19f42d8b70a58047b658f380  libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap/3.cc
! 83ea754651bb04d1cd424b359b093482  libstdc++-v3/testsuite/23_containers/multiset/operations/1.cc
! c8741e98624e6a1e5586ad16993fc69b  libstdc++-v3/testsuite/23_containers/multiset/operations/2.cc
! 5457561abefa6d6e674773bbeb4671c6  libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
! 136811d2188175896e74395c3cc392d9  libstdc++-v3/testsuite/23_containers/multiset/operations/count.cc
! b0f7e73ef898d113c6fb71d5a14029e0  libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
! aaa919efe8cb639aa1d218e411d370a4  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs.cc
! f1e0bcdd6fdad5c95c26b9dc1647ecda  libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc
! 4b0234974466ea67d506d1df3017667d  libstdc++-v3/testsuite/23_containers/multiset/range_access.cc
! 64193dafde9844a8f3e092e0ad3c3d7a  libstdc++-v3/testsuite/23_containers/multiset/requirements/citerators.cc
! f0dcbec69dee71a27081e30c7f1b02b1  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/basic.cc
! 589d03be35644f6048eaa1d41e911d1a  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/generation_prohibited.cc
! 6b15c71ce501d84d1c3563ea1ccec7df  libstdc++-v3/testsuite/23_containers/multiset/requirements/exception/propagation_consistent.cc
! 9d09baa94b07fcf8379c7d2d862c243a  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1.cc
! 863b37a8ca1ba7c36847009c16aff277  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/1_c++0x.cc
! be8d7cc2c782ea6b1e96ca6dec467a33  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/2.cc
! c3f40ed217149bbca4ebeb3e0a30b65e  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc
! 8c9c00cf88bfde042dfa0180671546c2  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/4.cc
! 859c95f0cd9c8b84e30b7e654cb52d69  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
! 396ad8020697c8565b3881bc46193881  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
! 13df330e1c8a5605dd6bd6ef780ea77e  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
  c2def03f80594fdacabf96a3fe28473a  libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc
! 324fa40645d4e16f6fb34d9a994d7801  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
! 922ee5eab056f6260a21a0e0eefb366e  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
! f95b540cb16ae5c8140d1176ba7abe7f  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
! 0b887155f47fb0624742255fe2cbebb9  libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc
  3b183dd93ee947a513bf68c877e9bf62  libstdc++-v3/testsuite/23_containers/priority_queue/cons_from_range.cc
! 7854bb88f3eeae212b5ebf531089e7fa  libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
! b973914ffc3f0fb17c99a7c8943f58b3  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
! 885a9a57f280d4b51535d6bf2133b880  libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
  8241ae79f4eb459fc333bf2d68d79047  libstdc++-v3/testsuite/23_containers/priority_queue/members/push_range.cc
! 66a1d2a5724e69d6b3e2682360aa28b6  libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc
! 3f4411c19eee125053087f59e3ba2885  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc
! 3bf36ab66120392ed0673ef7a7ccc2f5  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc
! 101a674967f7042ebff34107fca8089d  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc
! ebd0b086d0cd0f8aca0f221d164aa21b  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/typedefs.cc
! 0a6594effd2fdefa1c37a4ad4be766f1  libstdc++-v3/testsuite/23_containers/priority_queue/requirements/uses_allocator.cc
! dfbab9949a0444fe061e17ab890753ab  libstdc++-v3/testsuite/23_containers/queue/77528.cc
! fe18547aa6f9203640219742abfbf414  libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
! 2957d4435850a38f3a0dfbae6c651b6e  libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
! 74a3d55e3dbf0bc1cd72e1a2ad0f7851  libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
  dc7631b4b7f464f3e69220e4b2fc9b3c  libstdc++-v3/testsuite/23_containers/queue/cons_from_range.cc
! 1bbcd1b507d2c220827b12f021c85b03  libstdc++-v3/testsuite/23_containers/queue/deduction.cc
! eb7b9c8e203a790b99bf72a3a81fec15  libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
! 87e234f747fe5735219d938259c9b7a8  libstdc++-v3/testsuite/23_containers/queue/members/emplace_cxx17_return.cc
  7862723a7e643cd75b64dbbf4ce85889  libstdc++-v3/testsuite/23_containers/queue/members/push_range.cc
! 1467b8c0c36ee1ef9cb98d9657e17937  libstdc++-v3/testsuite/23_containers/queue/moveable.cc
! 9ae56d8985f5c9761e2861b4d352e408  libstdc++-v3/testsuite/23_containers/queue/requirements/constructible.cc
! c59164a0455b9e4edde4cd103eb880c2  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc
! 617659220f9000eb09f117809538028c  libstdc++-v3/testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc
! 270915ff50b6b117dc943441402c0618  libstdc++-v3/testsuite/23_containers/queue/requirements/typedefs.cc
! 55fffdac835281ae030880cd070b7334  libstdc++-v3/testsuite/23_containers/queue/requirements/uses_allocator.cc
! 5dcb53dc81657b14b494e2a1ec874622  libstdc++-v3/testsuite/23_containers/set/14340.cc
! 721e558a04482998fe3a22e9c77f4765  libstdc++-v3/testsuite/23_containers/set/18604.cc
! c9901ed1f0da00a2df218b56ec0ff068  libstdc++-v3/testsuite/23_containers/set/23781_neg.cc
! a29f39fb4160aa1e003759e72e3c622a  libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
! b2f98667456566252ada0ece4f036219  libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
! 4157b54cdf8ec6d1786875f87e5dfe59  libstdc++-v3/testsuite/23_containers/set/48101_neg.cc
! 29c9051c4ad7c085bb37d02f5670a4e8  libstdc++-v3/testsuite/23_containers/set/58764.cc
! 3845834aa10ab765ba522d702961b775  libstdc++-v3/testsuite/23_containers/set/85965.cc
! 56f67157afbad64036e8b6a01b51cafc  libstdc++-v3/testsuite/23_containers/set/92124.cc
  4934612c2b7203e0e300739be2067260  libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc
! f799cd044875cea3a7aa5ae418cbea7a  libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc
! e42115b8f6063d11c2d0ede5d0abeaf5  libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc
! 61e640678a092891767979a0f67c25c7  libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc
! 71eb2783e48b1663c963cf2f2145949a  libstdc++-v3/testsuite/23_containers/set/allocator/default_init.cc
  4d3f6415cb8f27aac132f5dcbeabc7c9  libstdc++-v3/testsuite/23_containers/set/allocator/ext_ptr.cc
! cf8cc9b121b052997e8e6d877b3ed195  libstdc++-v3/testsuite/23_containers/set/allocator/init-list.cc
! 6d2b092b04b3e3d9dfe3fd42ffac5b38  libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc
! 5a369ff658d3ad0df34f497c772b2911  libstdc++-v3/testsuite/23_containers/set/allocator/move.cc
! b43bddf1d13c6ae2749814f30682a2bc  libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc
! f493e4dfee8bb8e66f616ffe0d3fb995  libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc
! 6fbd71781be85b77df98d1d246dc227c  libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc
! 5f7a14a5cac33d6f609b8fc41b7d0241  libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc
! da593be702c9218774d04accd1bfb719  libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc
! acb0ff5e589bb18e2bbb0f2944e34f69  libstdc++-v3/testsuite/23_containers/set/check_construct_destroy.cc
! 90b635f3e1264871dfcf31102a899ffb  libstdc++-v3/testsuite/23_containers/set/cons/61023.cc
  481e4d5cd05c18aecc038aaa29dea042  libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc
! a4a9414eb9939f07d9d9f26a637cbd95  libstdc++-v3/testsuite/23_containers/set/cons/from_range.cc
! 2f94d03c1b25407a7a8b5851a7232631  libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc
! db717f2af2d8bf0d359d0c3acc9cd74d  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc
! e05453b204d584bf64f90a67052167af  libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc
! 0cce2038352524f5359072e8383ff55e  libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
  83968696d0a7067ff4a850c2eb0eea82  libstdc++-v3/testsuite/23_containers/set/debug/114316.cc
! 25b35ad5e9326b425a681764ce0169c5  libstdc++-v3/testsuite/23_containers/set/debug/60499.cc
! f16eded2c3fb130964090de50db9b524  libstdc++-v3/testsuite/23_containers/set/debug/90102.cc
! 906700fa6575e8194954a03d400597e5  libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc
! ee0eabd5902830477bce4f06bac2af75  libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc
! aaaad68eff76a000ac65d725825f3bc1  libstdc++-v3/testsuite/23_containers/set/debug/construct3_neg.cc
! 3c6694c95268c77782e7d50cd33f361f  libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
! 0a307cdcc159716e8ce69efa2c5e2b93  libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
! c70f627d3942cb970940aba529d46ea6  libstdc++-v3/testsuite/23_containers/set/debug/erase_if.cc
! 6ed58362de456ae646dd4f0b0abdeba2  libstdc++-v3/testsuite/23_containers/set/debug/insert1_neg.cc
! 746019e252775cf4062b298cf6568027  libstdc++-v3/testsuite/23_containers/set/debug/insert2_neg.cc
! 9eb01269b7288d0bb4e57eb91f22e5a5  libstdc++-v3/testsuite/23_containers/set/debug/insert3_neg.cc
! af2f92a5c474b2b9068f7b00fda33c59  libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
! ba5e7996b3d8760145466786e7d7939f  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
! c164356a151688f41808bfffe93d3bfe  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
! 22795cca8e5d309fdd585c41355ae1af  libstdc++-v3/testsuite/23_containers/set/debug/invalidation/erase_if.cc
! cf28a29caf5960ef4526edb5be120ab9  libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
! 591ff87520cec8e75a608245cef0dfd5  libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
! d018e4f350f6d2beab2f383ba0b78af9  libstdc++-v3/testsuite/23_containers/set/erasure.cc
! 3fa2d73cac9df189cac5ae5b64aae113  libstdc++-v3/testsuite/23_containers/set/init-list.cc
  600f3a07c5d12def9ca643094daf86cd  libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc
! a522cf9eb57f3d283ef39678803b76ec  libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc
! dd4c9d21acd5002c40e9cc6f9f8fcf87  libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc
! ac487eb227411760780429e2a35f3428  libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc
! 6d0b13961ec4a788e6c03a4eb9f48de7  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/1.cc
! f95ba57f04f239d37a45a28ba9159e97  libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
! c94cfb2ed1f4b7fe8f7ab5c07c4745eb  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/51142.cc
! 60ca465bc3c6a84ec54abf4625ff6a91  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/abi_tag.cc
! 84eebae90487c486688f7475d7fd38e6  libstdc++-v3/testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc
! 687ddfea02b6a32f9bdc9eadee224ad7  libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc
! 32adda000df6b1f75de5e23a71362f41  libstdc++-v3/testsuite/23_containers/set/modifiers/hetero/erase.cc
! 198dd8d84c1a0eee2aa95c9d4022f5db  libstdc++-v3/testsuite/23_containers/set/modifiers/hetero/insert.cc
! 43403bc296bfbcffaf9c1f499f7a9ae9  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/1.cc
! 776c7765eefe362400581db5981b8827  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/2.cc
! 55f68bf8edaeebdd286409ff2b4ae308  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/3.cc
! 2b69aecc0eb6721476097f2acf4f9b58  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/87194.cc
  00e1c15781735a596854401bdb2b0475  libstdc++-v3/testsuite/23_containers/set/modifiers/insert/insert_range.cc
! 32a4ec7831cbe7bd655011a8d66e4435  libstdc++-v3/testsuite/23_containers/set/modifiers/merge.cc
! abe59a511343a732d2fdf16416ca4bd5  libstdc++-v3/testsuite/23_containers/set/modifiers/node_swap.cc
! 7dd3b809b16f5fd72f98d2fb2062c8f0  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/1.cc
! b0d0b504b7c8d269632669dfbf052b6f  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/2.cc
! f5e34fa1cfa6f92e9047f388e1d610a2  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/3.cc
  c9dab4e9f5ce7812fc0b1b7df1af319c  libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
! 5fd88746d76e2a0c8c89f03075ab8773  libstdc++-v3/testsuite/23_containers/set/move_comparison.cc
! 13d47b92b3af9d15f87a15ad4bde30bf  libstdc++-v3/testsuite/23_containers/set/operations/1.cc
! 7326e467180e2910ac057774f1c43257  libstdc++-v3/testsuite/23_containers/set/operations/2.cc
! fb75406f76ec13d56d02da8ada6c2808  libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
! ec5060576579cbf448731f4c600b4277  libstdc++-v3/testsuite/23_containers/set/operations/count.cc
  065a68ad028dbc0bc280a1c97fa26875  libstdc++-v3/testsuite/23_containers/set/operations/equal_range_adl.cc
! 06773e1df29f92c918f36f8ff7947461  libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc
! d65f40f06b065ff4ea16acf0f6879a30  libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
! 9358962599a928aeef2096fe52e2169d  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs.cc
! 25aa61dd4b29a2c85bedc9c219cc44a8  libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc
! abbcf02c1122cd215f5d87b3e3c78fcd  libstdc++-v3/testsuite/23_containers/set/range_access.cc
! b9826cf904bb6dc9988de37389262c18  libstdc++-v3/testsuite/23_containers/set/requirements/citerators.cc
! 76e73fceaaefae06c659e0cef7dd81d0  libstdc++-v3/testsuite/23_containers/set/requirements/exception/basic.cc
! 912d1b5dfdf4ba7caecff45bbd71c365  libstdc++-v3/testsuite/23_containers/set/requirements/exception/generation_prohibited.cc
! 2ab9147360a41d162483e12ba42b6c42  libstdc++-v3/testsuite/23_containers/set/requirements/exception/propagation_consistent.cc
! 50dd6d7159cff6094d61390827f5727d  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/1.cc
! 3b95eeda12e9b7130fc4e8462d047c02  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/2.cc
! 6fb379d0823bb85ca017fe8db4f44e10  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/3.cc
! 3f3bfc354cfeba184d6f60ab5ca9bce6  libstdc++-v3/testsuite/23_containers/set/requirements/explicit_instantiation/4.cc
! d197c18225e4d033ffa4965a256e74db  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
! 6a788daaa4ea8ec48fa517670931702f  libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc
! 71c109196e1e5133b6f85ec2438c76c5  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
  dccb0814b19763bed788e2bee51d1569  libstdc++-v3/testsuite/23_containers/span/120997.cc
  abef8cc189d28e6cb89211d1b0abd4df  libstdc++-v3/testsuite/23_containers/span/at.cc
! 23fda392195a428570ac32a436dfd598  libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
! 19a99e24809a758b52ad3974a1cd8b17  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
! 372049d88db5d9caa3c7d840f1d9df5e  libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
! ea5b875161a89577caf9fe2b2f24245e  libstdc++-v3/testsuite/23_containers/span/deduction.cc
! 0591659af8152941ece2a3e48e236b61  libstdc++-v3/testsuite/23_containers/span/everything.cc
! 6c7a4ea5915391247cf95fc482283270  libstdc++-v3/testsuite/23_containers/span/explicit.cc
! d68409e9dd06d41f340813bad573e3e4  libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
! 46442ee793273dd07b871ecc1a9eab8b  libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
! 28cba2ec5807c42e56c665673e01bafb  libstdc++-v3/testsuite/23_containers/span/first_neg.cc
! eedd481f2befb0d21d3db28c12a34556  libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
! fbb9822385bda73133f788c053bdd0af  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
! 5260196210995384653a16eced4dda13  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
! eec03d1ca4b15479d2bd16d62c192062  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
! ed2f7d16ed6122b02949cf3ef4cfb78b  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
! 760b771abe88fc769a1a10a92041e529  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
! 407441710ce466addfbdb7524d8ac30b  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
! 01d00a6a60c37135634fbaf9be5a9ddb  libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
! ccacf604f42070049e07877e4a8eca51  libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
! 9a8e3d5dad56a50054965c95655bcebb  libstdc++-v3/testsuite/23_containers/span/lwg4243.cc
  e45c1853ec6f098abc263746f2bf72fa  libstdc++-v3/testsuite/23_containers/span/nodiscard.cc
! 2067203066f76dddaaa953130aab0344  libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
! b12ff1bd91cb23bb26fb42109f969847  libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
! 5481187a86d5152aca4ff89692b65d0b  libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
! a6965d83e590e33924cb84e9d6e91b04  libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
! ec461717f931a643961d4d3547f2ae1a  libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
! e3f02491d032c31c58371dea394e56d6  libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
! 947126a2424fcc9409d282e2b03442c2  libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
! c1a36b54b203b7aae1081cb7e6b46c52  libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
  b1ca4face6583d5fd3a66308ce733f8d  libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
! 93767a3dbce92a9a2174a2b81b9819d5  libstdc++-v3/testsuite/23_containers/span/version.cc
! 289724dd086e10b496b7ca2c715c3a54  libstdc++-v3/testsuite/23_containers/stack/77528.cc
! eec834164102eb888849d185398cf9e7  libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
! 6b4c98ed6cfefeab5e5e85c567237e19  libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
! 6a5ca5880d5f5bc24e0664542bd514b6  libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
  c81962f05580816062aa40e502ff7fbb  libstdc++-v3/testsuite/23_containers/stack/cons_from_range.cc
! 7f6771bf9dc079b3787f28f39e813887  libstdc++-v3/testsuite/23_containers/stack/deduction.cc
! 6c00a6937d272bd9333b423a9affb6f8  libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
! b0f34983c7cfce28758d7fc56230ba9d  libstdc++-v3/testsuite/23_containers/stack/members/emplace_cxx17_return.cc
  eadbff32059d27d5c636bcf56ca39f42  libstdc++-v3/testsuite/23_containers/stack/members/push_range.cc
! 1d2ab241139d7c6698e4921c1f9517a0  libstdc++-v3/testsuite/23_containers/stack/requirements/constructible.cc
! c8bb59ca3a9adcb8bfec96148728fde5  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc
! d3b0de73f96ff4070c7d6492f5d4a188  libstdc++-v3/testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc
! 8474825f2bd1890a958bb81b25be93ff  libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc
! 62c09196c8efb6e7cbde11bef1208860  libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc
! dc380b1b03a5539c127b54a32a8d85b8  libstdc++-v3/testsuite/23_containers/tuple/comparison_operators/119721.cc
! 1ea6046a71b855ab94e7f5203be0c8cd  libstdc++-v3/testsuite/23_containers/tuple/cons/119721.cc
  8095490ebaf0100077d254e713821ec0  libstdc++-v3/testsuite/23_containers/unordered_map/104174.cc
  156b154caf5f9ae3faee45845e073878  libstdc++-v3/testsuite/23_containers/unordered_map/115420.cc
  f9ade43cfbd598c0df31fad70de89cb8  libstdc++-v3/testsuite/23_containers/unordered_map/115939.cc
! bcd54c4a440f793d34803a947ddc3149  libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
! a429bcacc9acd39291684a14b2f949c1  libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
! dc976edd14316ff8009f94da111c9ded  libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc
! 3e4bca7a797ae276e7dd37c577519a7c  libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc
! 5ae49f61fb30c9e5d42df4bb49556647  libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc
! 0087cdb1cf9343ff0b0d72d470ffea8d  libstdc++-v3/testsuite/23_containers/unordered_map/96088.cc
! 9d5f00b847cee5103947a5d46c5ac5d0  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc
! 16a4a19657f7554625ce3e0ef54165f7  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc
! ee7c34d9812b0746d5e584f897c62309  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc
! d9a574354aed33caf2ae1601b240ea9f  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc
! 2a32f7c2f9637c4e3f7077a6decef408  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc
! 590fec1563596771452c58014f7c0cbf  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc
! d14ea547bfd0a0f72a2ec6c1598c4fd4  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/noexcept.cc
! 339791cfe81040f15eeb86855cde75d7  libstdc++-v3/testsuite/23_containers/unordered_map/allocator/swap.cc
! 48c53ba612b11968c9ab33918962b819  libstdc++-v3/testsuite/23_containers/unordered_map/cons/56112.cc
! 4f3281a042d74d928c3d78797f9f2010  libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc
! 6b241fb6eab7af4e2e05010c9b667283  libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc
! 86f501580d612079b4b125917a4fa3f2  libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc
  85f9f0cfc8a07ac716292470ac0bda11  libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc
! 1db8b458a0e84569800e7eee5613a312  libstdc++-v3/testsuite/23_containers/unordered_map/cons/from_range.cc
! 42d6c9629a591a0f0abb04e11ffb07df  libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc
! 9f53a777685e2c8e99e23ffda8629e7c  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc
! 46e82ced338ba535a7be2e654f08793d  libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc
! 0866ce56db98e925e5d99a897d1e64b2  libstdc++-v3/testsuite/23_containers/unordered_map/const_container.cc
! 1000c899da1f1119615b35bc9953cb72  libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc
! 38b8a5101b596fc9b22e8af7575ee7b8  libstdc++-v3/testsuite/23_containers/unordered_map/debug/90102.cc
! 3093e15671e6381eab73217e4bdea7fb  libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
! cd140d2b6323f8d75a3f3147ed40f674  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc
! 2243b488235e47a4a0cd1e2f5b2aac34  libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc
! e323ce5adbeca07890dc9a2566dfbdfc  libstdc++-v3/testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc
! 671914094c28dde22214d8a26651ed61  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cbegin_neg.cc
! a2fe3a36e4520e0d9daa6850cd1239dd  libstdc++-v3/testsuite/23_containers/unordered_map/debug/cend_neg.cc
! 1f128dddc3ea462ecfce3b5f11430695  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct1_neg.cc
! 578308e3e4b97a4abc4994f1e287d140  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct2_neg.cc
! 44b8f0a576663d0b24643e85f75e79a9  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct3_neg.cc
! dcbd72c768514bfbd8f209a860550f8e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
! c284509bf1f0ff8b1b3c0a4f833ff13a  libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
! 1c12a723e53145e617794e08a13fbde2  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end1_neg.cc
! b3d8ce4c6b58f1782e5b4079b29001e4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/end2_neg.cc
! 86f8c32f680b3746bb989e2bc55a1c0e  libstdc++-v3/testsuite/23_containers/unordered_map/debug/erase_if.cc
! 2b0738abaca9c0c0dfa8411cdc7f87f4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert1_neg.cc
! d10eaa5492677da1d3cc82de2b2e44ea  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert2_neg.cc
! 9ac6ba3daf1f8a842c592e4a268d9833  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert3_neg.cc
! 6f53d13245c9e2da4b88cc82b1f6183d  libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
! bfbec2459c270895b9353915568c2b75  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_arrow_operator_neg.cc
! 7bf3563c89b3aead81d5b3c30e0138d1  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc
! 1fb98b4994ffac24ca6b7fa74daf86d3  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_const_conversion_neg.cc
! 4124b0adb454b530c79c534d21128ec4  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_assignment_neg.cc
! 952b9a86f9f2d3f3829bc98e956094aa  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_construction_neg.cc
! 187d783b5d895abfd82463a377485388  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_assignment_neg.cc
! f7863b5de87ef7a96436a098b57156c6  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_construction_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
! d6ab0e9952bc003acb75bdeb47022472  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc
! 3f00369e6edfb847d5a27024fec226e1  libstdc++-v3/testsuite/23_containers/unordered_map/debug/invalidation/erase_if.cc
! 5ad45e3004b5b3345c571ec8ee9b9476  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
! da09967112429bcdbe37282c37be3a26  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
! 28233ce876ca5066e7b01edda33f7d25  libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
! 47c44507cdb87fceb62be81cdf9c5e2b  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc
! fd8b4d8156820329257dc5a576cd39b7  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc
! e87bd8a84266a9504d808f74f7abe272  libstdc++-v3/testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc
! 1ae9b25ce5fbb4ea4c2149d879db5fa7  libstdc++-v3/testsuite/23_containers/unordered_map/dr761.cc
! 520609d9626e78a4b700c18dc8b11f3a  libstdc++-v3/testsuite/23_containers/unordered_map/dup_types.cc
! 7e0ec8055c3f4f80e0c8d0365992fe0c  libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
! 759a14c26b1bf2644573a65c8a971cfd  libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
! 18d252dfe14ebcee07120943cf89c6b3  libstdc++-v3/testsuite/23_containers/unordered_map/erase/51142.cc
! d14e801b84f0e72b1e93532bc8e9f61c  libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc
! a24c9c2436c386fe9c670bb2848c5fc3  libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
! 0b6b27ce5c5ef2ed52b8369e933323ef  libstdc++-v3/testsuite/23_containers/unordered_map/final_hash.cc
! c1b38641b1f4c2008c87e8ad46a2c4e3  libstdc++-v3/testsuite/23_containers/unordered_map/hash_policy/dr1189.cc
! 48ede2c35ac073b3a62d321aa42d4c6f  libstdc++-v3/testsuite/23_containers/unordered_map/init-list.cc
! 841dbd8121acdb215989a8a3111f2cd4  libstdc++-v3/testsuite/23_containers/unordered_map/insert/105717.cc
  cb783701a139d172b4c025ec54b9bad6  libstdc++-v3/testsuite/23_containers/unordered_map/insert/115285.cc
! 94dd9905ccac4ebd9699658f364f8a0f  libstdc++-v3/testsuite/23_containers/unordered_map/insert/24061-map.cc
! 649f49bd71a1e2054c72d36117b9c382  libstdc++-v3/testsuite/23_containers/unordered_map/insert/57619.cc
! defcb00e861058b99fcfd7c9c67cfa12  libstdc++-v3/testsuite/23_containers/unordered_map/insert/83709.cc
! 2deeffe288775559ce15af6de5fe8c7a  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax.cc
! 1c7dd7408892257fb9a0d45b50165d09  libstdc++-v3/testsuite/23_containers/unordered_map/insert/array_syntax_move.cc
! 9b4d03e3e85aa8e26bce8d4ab217d03b  libstdc++-v3/testsuite/23_containers/unordered_map/insert/dr2354.cc
! 71dcd77ec541ecab22236dd8947aa1b8  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_range.cc
! e411e8d0f3dfb2cf8ad23f81e5f2df94  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single.cc
! fed981b2a05199c88570df56e006a42a  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-1.cc
! fb7ebb0dd26dfd1c9ad4c2ded8512528  libstdc++-v3/testsuite/23_containers/unordered_map/insert/map_single_move-2.cc
! bf96d509f3bb8a68f0b9483fc182b6b3  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/61667.cc
! 7132ab3ddaa275ad32cf6e318d05faa1  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/78595.cc
! 1f26c0848f40a9383cb31c785af455e3  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
! 60a22af06f9a1e7ae34fbf9396f6eb1c  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/emplace.cc
! 0f27bf6cc675b69645ffab40177c6138  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc
! 160db1cfa3c5d86e97017b0f287d814b  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/hetero/erase.cc
! c8de8fb8dc3faaf76a5f6a069a35392b  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/hetero/insert.cc
! 626219b7a3efc1844d9ebfbc2c950095  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc
  ad01e00eff3c7f80c31b6f90669ad326  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_range.cc
! 0b43e5aebdcd6c568bbccb3f7301b63a  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc
! 1e93a9643122661a9c42e5d21f3eda9d  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc
! a4bd6fa48af6b90ee8bc7e488840ea56  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc
! b5ad7de4357170d6f7c8b2d0159e96aa  libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc
! 4c8ee0974843fdb5bf98b1ba3c4cbd19  libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc
! 3f1dca2f3220b966b61ce43bfa41ca99  libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
! 303de29bb5706450d9604e5d61a5b8eb  libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
! d0e41afdcd32d3a8e89371739cf54911  libstdc++-v3/testsuite/23_containers/unordered_map/operations/count.cc
! b20acd0d06513a7e29b2e85531918e47  libstdc++-v3/testsuite/23_containers/unordered_map/operators/1.cc
! e7d5ea0cb3875fc41958699b8ae69ecb  libstdc++-v3/testsuite/23_containers/unordered_map/operators/2.cc
! 5a3a34ad07605344efdbfa497b2eb131  libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs.cc
! 94dc3b8c3aa4edf4c888072b64f34d84  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
! d4971b65baacce72d6863c0a70051b3f  libstdc++-v3/testsuite/23_containers/unordered_map/range_access.cc
! f3785ec3eeac594a4fe44e619de0dfcc  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc
! fc21518519a578cb340af31b897d45b6  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc
! d26b900eba4b75e5182263e168646890  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53339.cc
! ce63cb15b557c6fc4ff035cac7a4dcaf  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/citerators.cc
! d19163d72e3399f4893409a27a67860f  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/cliterators.cc
! efd48565adeb30bfc039a4c9e79b5119  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc
! d7f0df8d7addc3aa7fae4377bb6574ed  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_mode.cc
! ed2a90c275578a237b1383f5c6a2880c  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/basic.cc
! ad04b28aea94f06c2e3ec785864c7517  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/generation_prohibited.cc
! e951cfb1d0c639d812bf058415a50a08  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/exception/propagation_consistent.cc
! 6b5083c5659d8a7cc70266a5e9bbd3eb  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/1.cc
! fcad555a9f01f2325b9fbbaeec21de8a  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/2.cc
! ad979b2dfdd692e05d03691f6f825dfe  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc
! 48a65fcfb6fe1659b1f6077e79eeaa18  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/4.cc
! ce2935522faa9fe965b1bf93d77144ae  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc
! 274ffcb9c27f966e5127b148acc0644b  libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
  550a360423a3f9d2c80bcb95f509334e  libstdc++-v3/testsuite/23_containers/unordered_map/version.cc
! be2edc0c2daf1c13608e82497c78d5e7  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
! 4f4dfed56ca2c6a286d4eea50908bbb0  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
! 7407fbdc7b53239784209b970dfd5290  libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc
! d53b2d7bc96a228d03d7d48d5af97b56  libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc
! 837b257c9982f74a756f07ff8bac7ef6  libstdc++-v3/testsuite/23_containers/unordered_multimap/96088.cc
! e66e564279bb07a269e89101e040bd6e  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc
! 6a367fbf8aff1c515b4ca963392ead01  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc
! e0a09b157ff303e153725c04a64c070a  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/minimal.cc
! 1b90376b21eea565e1acfec89399f930  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move.cc
! 90d20989abba730864016fc4037bc9d8  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
! dc73030e7c99e3f8a491cc5c4bfbb03a  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/noexcept.cc
! e4d62380a89a22c9af1e285c12782e0f  libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/swap.cc
! 06e89fb4e4ce71b3a3cc5ab7976a9686  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc
! 2d679e35ff56ba9da3b959dd2f8c0c39  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc
! e90e00b755e9d3daf294441924a757ab  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/from_range.cc
! 7cd2dbf42e2066be7867e06d11a925d5  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc
! aeee5b9ec37c251f49c3669e50d3d1af  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc
! 14052111cd51a6237f3957ecf1578c08  libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc
! d6d7de23bf394fba272be4770105305b  libstdc++-v3/testsuite/23_containers/unordered_multimap/const_container.cc
! a0dbcc778d779529e1ac3fa82d954e6a  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc
! 59f3f04c8dda45631f82675f94ad32d6  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/90102.cc
! f1ff0409313ac8bfb682a9c1a5476084  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc
! 9e2e87376beae9e0925f94be2403a043  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc
! f5d51c78ae7576b263bf7c21f9f50b85  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc
! 796f23be8db817cb26fd894ffa8f73ce  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc
! f99516c4d7299fbbd00041b6945d70c4  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/cend_neg.cc
! 9184acc7d2159d2db787365f5fed7494  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc
! 28a0884f1712f474e55edec89aff1baa  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc
! d766b6a130913786f4c601889e9c4b9e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc
! 922367d7e68c13044a4daca28b431379  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
! e92bd425b438b4e11fef8f183519408f  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
! c000b54ac12c2a1fb45c616e25c45c22  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end1_neg.cc
! 3239034f3cf362b6cfcdd77b9daf3ee8  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/end2_neg.cc
! 03292cdc80254e5ddf8cbec2fd8bfdba  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/erase_if.cc
! 21243d59a337833300e1a503e9011087  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc
! eb53ad4e654c6dbc65e788ec1a59cafd  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc
! 2fd389102aa8593aa7a779aaa523b0e8  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc
! d20f3012c715d22835755c90b1abc74d  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
! 4bc935b7c169dfafdbb2f792a9df133e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_arrow_operator_neg.cc
! d409965a878f6a0e948a024a36f5e0a8  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc
! 71a37da65ef5129976ba3254d5579ea8  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_const_conversion_neg.cc
! ef64b124d968d5342b9f39b1786a00ec  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_assignment_neg.cc
! ccf533ff9b83f0c51618d899c9126fe0  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_construction_neg.cc
! b846c8f9c4b3769267293f32060c930e  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_assignment_neg.cc
! 350ff2954a72a3c21062e3de22b0b046  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_construction_neg.cc
! 717171314e3d760252fb14c70c21eb4d  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc
! 7427c4642e12d164904ebf6e6f837bbd  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/invalidation/erase_if.cc
! 644de5da03764f9820a93a4ea4d26fa1  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
! 7e8a638ad87e9b855d0149edaad7d663  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
! 13bd09ce67532dee790dd5d3c4463442  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
! 2d90064ed2bd8a1baf6b8c9aac2dd869  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc
! 22eee0fa348b92170dec7bbed4351bc3  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc
! f7cd52f1de1273411a82d0d86c4f27ee  libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc
! a99e5c48cbf3e2e5f5db94d4be84a2c1  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
! a9122b4320aba567b654b76790528881  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/2.cc
! 798278116029860649b661b4fa2c25ef  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
! a9b001951aae7d2eede4cca71780824f  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51142.cc
! 40508b78614a9f84b0af5ff04c3a7b20  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc
! cfb0d797cfddaed81300f29197a23d44  libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc
! 9b1df5201a45d01e1126fc7b5dcd2490  libstdc++-v3/testsuite/23_containers/unordered_multimap/final_hash.cc
! 9c0397c62caf2d2269dc543683a42436  libstdc++-v3/testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc
! 64a5030952906e213fa299896470cba4  libstdc++-v3/testsuite/23_containers/unordered_multimap/init-list.cc
! 664a90905e0cbde5b0768b6b295f0ceb  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
! 84a1066aa72e4b9812f63375792d51e8  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/51866.cc
! 69cc0d7e1c28c0518b264e2e317cd14e  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc
! 0025782dc8ab05ac1504d14a35539ca8  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc
! 9e34510629f60c8b94184578f60fa67b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc
! bb4aa394331992d87cb115cb19e61740  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/57619.cc
! 89b87e7b8a9dae8a2203ba20722cd8b6  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/dr2354.cc
! 3906141ecfb97351a831b59eb1623a1b  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/hint.cc
! 5003e442a19d2e4edb6886b4be3c8ae1  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_range.cc
! d8e1fbc2eff388c073a5e22e5835d49a  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single.cc
! 29d422c150b5bb27ffb496a7d31da946  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-1.cc
! d15ed324048b3b28586c4fdc39e494ea  libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/multimap_single_move-2.cc
! feb562b7d2d9e460578a47c159de61aa  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/78595.cc
! b62ff9c81cb7a5d385fec58522e77ed0  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
! ed1023af0886cb8732ad2d3ea5aa938c  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/emplace.cc
! 034792d8ac3479ee830894edb7c33e5f  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/extract.cc
! 8f18eb4e240741bda6417bc25408406b  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/hetero/erase.cc
! 7f58c379743ba349225e7e56a66f02d7  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/hetero/insert.cc
  73d0c8e42401f6cf69f1f0af0ff90e3a  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/insert_range.cc
! 2621d79726565a771366536a36d830ad  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/merge.cc
! 1857554ce78bdf0c0a5813031b42f41e  libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/reserve.cc
! 634675df99100a1ed86186e470bb8879  libstdc++-v3/testsuite/23_containers/unordered_multimap/observers.cc
! 53d54dd50f785d6ef000bd25d81b2fdb  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
! 1c8383e89a674552987cf2beff1f1734  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
! da0c554600baaf9ac044947ec91bd662  libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/count.cc
! cd536afecefd015dd3d7b764664ed58c  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/1.cc
! 4bbd48f0146337380a69f0863ab3b793  libstdc++-v3/testsuite/23_containers/unordered_multimap/operators/2.cc
! 6388fac18e56c1e25fe0415ee739957a  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs.cc
! 23b31185ab419483f2d24bba1d983add  libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc
! 6d0d6ed2d24b6536b08c6fa4559d42bc  libstdc++-v3/testsuite/23_containers/unordered_multimap/range_access.cc
! 09a557af70740cc4e36e40e6e58f8be7  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/53339.cc
! 46ae07c702a4887799b7d894ff4a7a6d  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/citerators.cc
! 74033bf41c15239fb20a324d1fc3d338  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/cliterators.cc
! 7b3721be06528eeb2a145b970c0e54f7  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc
! 3d1c848b5b8c213fc0a7fdf3f2bc89a4  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/basic.cc
! b4d8a5358b328c41e16ff6659432d7ad  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/generation_prohibited.cc
! 64d809365dcdc206209edc2404b9920d  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/exception/propagation_consistent.cc
! 4cba97b8440e2dddc7cfad603d94520f  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/1.cc
! 46141d3fa95c2bedfa67528163de0e31  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/2.cc
! b50182bfd76bbb42efaa041e88c93888  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc
! 1d022a26c893e451e79e99e448d7659b  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/4.cc
! bddf7df9ba568e11ca5b0d31676f5d5f  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc
! 22d66629216ca78413fe366ea9989bb6  libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
! d5d2f83b07a2978bfc59902f61c4142c  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
! d589b08585331096d2b532ae1c33dea7  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
! 737a21a8e76292427530e9dd14a3b992  libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc
! 98df6d9fe8c55202f6791bd5ce1d4230  libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc
! 6b049c43376a7d75e8333329fb1acfc7  libstdc++-v3/testsuite/23_containers/unordered_multiset/96088.cc
! 13b64f1b2fa8024a7aa536a6dbb0b84d  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc
! c1cd945294d26952d5164216cfa93b27  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc
! f14af25d0cb31cccb866ad841f4d75ac  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/minimal.cc
! 3fa189169a2fbf187e7cc0185f7aedee  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move.cc
! b40194594e7bfaf9d74679de5c8a4aa4  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
! 0701274e6695b1d492c5813e4b8feae8  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/noexcept.cc
! 542e8820b167c193fcb41404f4dcea5d  libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/swap.cc
! ef35b393a4179b7bfce37d5e4d10cf30  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/66055.cc
! 0b17fddf11e17b1f1ed54716508ece9c  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc
! f76cb3f2154e72e337635c0c8daaea7e  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc
! d3cef346e6568c15f69089e47e6cc7ff  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/from_range.cc
! d9b4d1836cc419e92054fa2a992632c8  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc
! baf9ee45f84a46999194baf36b97fb0b  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc
! 1a23d9cfb080cda8e5655e86111f346c  libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc
! ba78b1c83ac0cbc40720e1f431fdb280  libstdc++-v3/testsuite/23_containers/unordered_multiset/const_container.cc
! 6109cadfacf82ec5a8dea17fe0263ee5  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc
! 060075bad550b95fd2da85b3841c401b  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/90102.cc
! c05ca3a4a6b3c985030bc0a14834874e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc
! 9e0439da835366e29c11cbb74b6f534d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc
! ceb1ad3d1ffed4f86f0c11cc0fce7432  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc
! 8d6f1ac382e81baa8d9693f73bad7774  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc
! aa932405f1eb3a5abdc262a965df268f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/cend_neg.cc
! bd1d9ea66234f8ec9c2402c3db59e694  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc
! 2dad986f32b2d01b050670a7d66f6cab  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc
! e93940e1b9ee27a0b1394fbcf2609f7a  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc
! b25cdbdc238a7f45a9a469f5bd0f8d3d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
! 9ba2432c03ee911257033bcc376558e6  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
! 96a980c721b4c8f61becc9ee2679be9e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end1_neg.cc
! c05c599b035fb9e6fd39a10a3014cadb  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/end2_neg.cc
! d1777bd9643c1bced98879098f4ce462  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/erase_if.cc
! ebb1e404bc8e054a8057210b499b8fda  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc
! b518460b1db6159d26a6ad137d3ed396  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc
! 56224e91a72399bd72fb72b6c77c57ad  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc
! 0b5fa47e5f4337b4bc75678bde109478  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
! 998defd732c1026dbf545c0b259dbf9d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_arrow_operator_neg.cc
! 821080b94299b7bac146e2286eb93226  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc
! 2639e01444d72c174d390e0b8ac1d6e1  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_const_conversion_neg.cc
! e94704cdafb41903d3f5d254aaec1982  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_assignment_neg.cc
! 21af1b6334fa58aa33804fa3c8941e52  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_construction_neg.cc
! 7c50c0f8ebca9ddaae8d2fbd565ed22d  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_assignment_neg.cc
! 6d337bb772a977a65ef1619122c35825  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_construction_neg.cc
! d0ced60671b11e18eb805ddb061618bf  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc
! 15b58daa81f8d98dc4bd4613e8ee6b3f  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/invalidation/erase_if.cc
! c196f2de183915b7a6ef3620c40a8da9  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
! 676bb7f9837c6846995697c10b81dc9e  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
! cb364e879a9f131a3e54cf7ad7bc8dd8  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
! c3293733832d8a39f0a97361537642ac  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc
! 7f8b5d5fc013919e454061cb5f9613d8  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc
! ee94284547b1227f3ad42fe37c56c0b9  libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc
! 141ad7d644add5343a406abb23d3bc7f  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
! a03dd994c21b5fdb0154a5e7ff775477  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/2.cc
! 3cb86c7f7b88ea6018b1519bfdee9d74  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
! 1335b38145b3d047026e197998a48702  libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/51142.cc
! 7b498163b41ccb3f8e6599d7f83f36b3  libstdc++-v3/testsuite/23_containers/unordered_multiset/final_hash.cc
! e46a8c02acfc17c30b5844cb3a0be43f  libstdc++-v3/testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc
! 61a5b01c42f060ecae6b87aa350c0817  libstdc++-v3/testsuite/23_containers/unordered_multiset/init-list.cc
! 30ef643afc11fff9142f4e6322da4c41  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
! bab2af371e10c874cc86e3af38401e4c  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/51866.cc
! 435e06e193c0e0d115eed67b1c644958  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc
! c1d0dcbd6b2f503426bc6e0264418dc7  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc
! 75e7ec137a888c0f3ed945b96acbae12  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/hash_policy.cc
! 487890985bb8c645dbac6fa33c998815  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc
! 8782d9b2f997a574ba6d9e8d4af39531  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc
! c899f5b982928adbe31126282ddb1599  libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc
  81ce776a3ac75fcc704e7f3efc65de81  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc
! 853d817847dac729bede8a216887e25b  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
! 96b28ee79dc5972c013bcd8ae40c587e  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc
! 4366d356c83e4ed113a7195c6b96a46b  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc
! be50715ad11bd926a96072389178a81f  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/hetero/erase.cc
! 99133ff04621ce64ad629dc1286383dc  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/hetero/insert.cc
  c0e606fdb83ff823f737ea8ed1a87a92  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/insert_range.cc
! 6bfddae70b47bed9c4d395bdfc0a4247  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/merge.cc
! 20204aaa16168b1dadf98180f21f1678  libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/reserve.cc
! d25b1110e53a091bb9ecde1067a7b6c5  libstdc++-v3/testsuite/23_containers/unordered_multiset/observers.cc
! a1b1c0d014c0b5bd139fe7dba7a6d2b0  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
! 23eac016aa11bd412316bd4d0a6d0c03  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
! c7ab46ae4195e40db76452f193c2eed4  libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/count.cc
! 8d7f748f0e05c5058bfc1d4f62bee709  libstdc++-v3/testsuite/23_containers/unordered_multiset/operators/1.cc
! 242d83423a4c6b348609f5efcd563f8f  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs.cc
! c72320615fbb8a497a320a7dc883ed1f  libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc
! 79c3fc840e16246e167ffbbb6f8ecdbc  libstdc++-v3/testsuite/23_containers/unordered_multiset/range_access.cc
! af61054a81244ad833ee021f132032f1  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/citerators.cc
! 8466d0713097cd8dc1880ef3d6635b75  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/cliterators.cc
! 52dc1b5a92bc46233927e6ed07a5ef31  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc
! c5cf80534669b26273c37af02f3ef5a7  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/basic.cc
! 34af25f05fd267df8b395cca81f9e127  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/generation_prohibited.cc
! 0263253ae9bf2c9b31404ef6e2aee645  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/exception/propagation_consistent.cc
! dad839b823f8c00e010b91e9fb59767c  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/1.cc
! 8a45c605c5a7dfcc9b29c7eab7ef73bc  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/2.cc
! 31801fe27d1eef60f2c8e8b7421733f0  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc
! 7aae342a2c044f90225ad8c7d827eaa5  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/4.cc
! 4f253ee498c2db8419e27b374456ed47  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc
! dfa148d8e17827e9a6632885e07c6ef1  libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
! 1d25563c9800bb86762264eafe456ac4  libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
! 810fbb8981b76b97c1af51f6dfa37171  libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
! 7b0e3a5c95a2b44525495c7fce070491  libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc
! dd078cbb46a7808c994855597cddca66  libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc
! b08b74e7101a8272f36deeb278263bb1  libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
! 9e9881c22a7cb0eacbddb706c9da8dbc  libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc
! 80eda7962f30b0810174872ff5804230  libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc
! 30f46e316df763bf64d97547dbf887a1  libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc
! 136c30cce1935020ba13b73dfa93a9d4  libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc
! 5c05b560b3664bd3ecd5888dbbf797c6  libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc
! f59ae2ece6d327f95eae27a064fe2b47  libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
! f219b6b2d1117a5777c2081eaa7d5eaf  libstdc++-v3/testsuite/23_containers/unordered_set/96088.cc
! 00a14cba1dce4e2055ccd2965f1b1f4c  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc
! a5adbc133e73831bcdf37b68526c8f76  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc
! c6f103d6ce1ea831937b6f607ff6f4d7  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc
! fe746a193d36e2c5aa5f51861803df31  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc
! 13bfd072f5a3e2f01273222aa244efc8  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc
! c7325c3ffc96e30eff995af7e7287ef9  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc
! 2ffaeef7c6dffaef74d65c5909193b4c  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move_assign.cc
! c552b49815266ccf95782a625e15d68d  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/noexcept.cc
! e684debe735ab20e0c0e47374f22e7fe  libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc
! 76944dc7112d2b2076829d9d542f37d3  libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc
! c368749eacb0182f8ffaade3d9ec4f26  libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc
! 6b63a5eb35a2d9e1b48dd0e7376a687e  libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc
! 90397c7f3b700a54bed3516ab4e56d54  libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc
! b110396d62674d1f92078416b29e203b  libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc
  247af40f0de6e07e87bdde64812f8659  libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc
! c64e1cc29aa7b1b73a9c6fc7784573c3  libstdc++-v3/testsuite/23_containers/unordered_set/cons/from_range.cc
! e892333f655029e5a621e89242f03f7c  libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc
! ad83e2a4805a114efddc0f5c640fdd1c  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc
! 5ac470a882b242c426ceb5b2c7764be0  libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc
! 7d3ad9ae5ae8d19481ac539eca604ecb  libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
! 3bd5fc5da08cdd29a6cdd85be99b8b92  libstdc++-v3/testsuite/23_containers/unordered_set/const_container.cc
  1ff3da9ccb1453e5c696c1a351a88689  libstdc++-v3/testsuite/23_containers/unordered_set/debug/114316.cc
! 3f6d93e6fb1512d29e546bbd24ef106a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc
! 00bd0bb300a9a1cb78c8233aa64ee657  libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc
! 084fc85b8b1839411a6e4e5a5a18175f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/90102.cc
! a251cc72092e67967409bd980e28dc9f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc
! a303752421312fef5b72088d5258899b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin2_neg.cc
! ff25db6f32f4297a78090f733c4aea12  libstdc++-v3/testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc
! a630fd174db823604e6b43d50e7429da  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cbegin_neg.cc
! 06c9cddac7b8f11879ce3a86b11507f2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/cend_neg.cc
! ac120956ece126b270e7449f36def24f  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct1_neg.cc
! 0e5ae9f36c9474ef0eba63a3936d95c2  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct2_neg.cc
! 337560f5418e2394d5394714b7fd5f7e  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct3_neg.cc
! 523717e6ac010f486b1111d955a5dea8  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
! 7b7bc387fcccd03b0d15742c9caea9af  libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
! e773911253c8ae1ae0238b93f6bce16a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/debug_functions.cc
! 9b6e8600689fb4b403ca1ca419bd4174  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end1_neg.cc
! db477b21dd576b1e073e58e12bab5a46  libstdc++-v3/testsuite/23_containers/unordered_set/debug/end2_neg.cc
! 54c23ef244765428cd25899b811be00a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/erase_if.cc
! 0d129952dd3f26d95ef5ebefdf0d82b8  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert1_neg.cc
! 6a694e18959176cb6248d7e0cfe788a8  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert2_neg.cc
! 399205ea59b6947717391ee10e02bf84  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert3_neg.cc
! 2e483e8ec082aed236318206bd6ebf4b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
! 2cee4a4317d293a821b68b32fc6df70b  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_arrow_operator_neg.cc
! 5dce94da029c652d80fa5e52801c6196  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc
! c9c47b35e2fce2a0478fbbc3dddba026  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_const_conversion_neg.cc
! a5a6c35c005b437a788dab2f7c0a8ecd  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_assignment_neg.cc
! 2a6cebb6032c74bdd193ec0789714c69  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_construction_neg.cc
! 760bbbca9030fb464dc192ab9455535a  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_assignment_neg.cc
! 2860648eda0d98d2c9d3e70cd8aa8162  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_construction_neg.cc
! 099f6eb6017c5dcda037f71cb4951914  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc
! abfc9c597167bb2a81311ba63ee13f80  libstdc++-v3/testsuite/23_containers/unordered_set/debug/invalidation/erase_if.cc
! f2e0177effeabeb3e72c4d0cfc5264de  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
! fcfaf0df08bfaf05dfea37ea63c18438  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
! dafb2c53b59214280e106ec1338ed4b4  libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
! 283c898da25fcfcf0fce5e68ea21d0ef  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc
! 2654725d119e35abb4b305a2ebdf21a1  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc
! 7c977b2148734b4b3426f83df34557b7  libstdc++-v3/testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc
! 9ad644ac0562b94d1ac56f69d2c14fc0  libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
! 965167ed03eb436d07941263db8a5d56  libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
! 6fc38b3652730edb97e70e8bfb229249  libstdc++-v3/testsuite/23_containers/unordered_set/erase/51142.cc
! ae5519cefe5aa956df04a745667a8ea6  libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
! b525160cfca584ea814a356490e860ea  libstdc++-v3/testsuite/23_containers/unordered_set/final_hash.cc
! e58b91127d66338827ef5bccc9cdf099  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/26132.cc
! e2a367f071f0f1959c3b475be6ce0bd1  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/71181.cc
! fbe6b5cb509fc193411babf898fb98ab  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/dr1189.cc
! aeb2c1bc4a2bf03c691df721bbde39f5  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/load_factor.cc
! ce9aac54fa0ebcf530d3e947f6ad2654  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
! f9cd36856234a9b5910a53d051eccc07  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc
! 23f47263ed5d5ffd20ab404077f945fb  libstdc++-v3/testsuite/23_containers/unordered_set/hash_policy/rehash.cc
! dde0fc306a323e1bf7fa263158d94713  libstdc++-v3/testsuite/23_containers/unordered_set/init-list.cc
! c9202a3c728ab820ed650b21b1c27ee5  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
! dbfdf4df33bb40b35adcbe75397de27c  libstdc++-v3/testsuite/23_containers/unordered_set/insert/24061-set.cc
! 1c5e5e001194043ca79f2d7c95676445  libstdc++-v3/testsuite/23_containers/unordered_set/insert/83709.cc
! d6ad1d39674b0584a061ebbd549fe3e9  libstdc++-v3/testsuite/23_containers/unordered_set/insert/hash_policy.cc
! c6d99a409ac0b55050487af4fdc789a8  libstdc++-v3/testsuite/23_containers/unordered_set/insert/move_range.cc
! 6dcaf8af3fd7278c9d604a93596d81d0  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_range.cc
! dd25f6c395534aed6d7360bf474438bd  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single.cc
! 8ba33c7e69e4a704ec92b1c9c146bb7f  libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc
! 7116a985fb37b5f38447978b538f5d9e  libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
! 76a74b393003a3a1c3bffedc052460bf  libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc
  48b51763d3c882761e49bc54aa3174c2  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc
! 9b2b2bcb3688dfb5a97e86825f8c7139  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
! bb5e26a4cf39bfbd43ea6a4290218495  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc
! 7b3ab6fe39cf60211bfd1c7d0f373a55  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc
! 3d66fb2dbd65a3afc5ebf6e47c05255f  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/hetero/erase.cc
! 72ca7165aaba59ef70ddd4e79686f3ed  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/hetero/insert.cc
! c79e310a57e8ab117853a33fda2f3806  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert.cc
  0d6ba2efbfbcb910de8b5c5a7482640b  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/insert_range.cc
! 3e58cc18025c358982881a419b57461f  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/merge.cc
! 3660805111907cfab8de048d95213d95  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/reserve.cc
  9d5104a849f5b22d1c0f45bf45fbe3f3  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
! e16dd9ea6655d99b8f2e15044db1e0df  libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap.cc
! 8d22bff2d140493788364823a35846bd  libstdc++-v3/testsuite/23_containers/unordered_set/observers.cc
! 1eb222f2fb5d73824c897f2b1d2bc3f2  libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
! 490231552abbc6cdcc05ab293aaea14e  libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
! fcfe98d16aeed62b257f0f4057dc8249  libstdc++-v3/testsuite/23_containers/unordered_set/operations/count.cc
! f1bbced9e956948cc0278cf49f88e6d2  libstdc++-v3/testsuite/23_containers/unordered_set/operators/1.cc
! a41b08d71e56c57d69676d9f6f81072d  libstdc++-v3/testsuite/23_containers/unordered_set/operators/52309.cc
! 52fb23dcec96597d1ebd69702ae6ea9d  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs.cc
! fa81861dfcb80aa45ce0935a3559c5f6  libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc
  4a1a079c582e7959c6ee5f2cb8255a10  libstdc++-v3/testsuite/23_containers/unordered_set/pr115285.cc
! 3d8b1255d961018caabe4998e20a43e9  libstdc++-v3/testsuite/23_containers/unordered_set/range_access.cc
! b1f0cade4c8e512a6851fa606edae6e1  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc
! 555040a7d904b94da0046223898fa76b  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc
! 89bdbd0d75bcb0a9604b35ea4999b2b0  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/citerators.cc
! c3942f6beabd967407141761782e899a  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/cliterators.cc
! c0c9f65d0ebaa8841d20a0078a56312f  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc
! be65c36afd337b0fa3bb393a481cf87d  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_mode.cc
! aafc6b905b30ba9086131f53c0c4c8a8  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/basic.cc
! 9124baa514e7cf27d910e1e71dc3e9e1  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/generation_prohibited.cc
! b4053fa462914d804370fddbe328c3ce  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/exception/propagation_consistent.cc
! 584969a791b49642316f398c71b5177f  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/1.cc
! a397a1acf6910a5b898eff82a14b66f8  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/2.cc
! 7aaf9f4584a5bbcda4243e1b404dcc2d  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc
! ab01c14496a17d636a442529aef7a3eb  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/4.cc
! 8881e35f29ef76887321db825a3c0e28  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/5.cc
! b8184092d66d0ffaa4e90519fae0a6e8  libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
  e6499e4d59d19aca75b129fd2f6e317b  libstdc++-v3/testsuite/23_containers/unordered_set/version.cc
! 4367692e25bd467808be9473455fced4  libstdc++-v3/testsuite/23_containers/vector/14340.cc
! 3213bcd6c93b69affcc1ae7280084f4e  libstdc++-v3/testsuite/23_containers/vector/15523.cc
! c20b4a3620fa96977f75c3ff7cb0a12d  libstdc++-v3/testsuite/23_containers/vector/18604.cc
! 4d0e770c576067a69242827f0632ebb6  libstdc++-v3/testsuite/23_containers/vector/26142-1.cc
! eeb3d16d50fced2f42a895daa8ce8ee0  libstdc++-v3/testsuite/23_containers/vector/26142-2.cc
! cb25d21548d16cf9ed7648dbdace4ba1  libstdc++-v3/testsuite/23_containers/vector/40192.cc
! 62b429e4c4e3283add1077df7992487a  libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
! ed1f392ccf93741c7180eefbe3057c6b  libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
! ed68dd43939532d47099c7e5c8388f4f  libstdc++-v3/testsuite/23_containers/vector/48101_neg.cc
! 7f3a77807264f5620f292d95fa658349  libstdc++-v3/testsuite/23_containers/vector/52591.cc
! aa539b8fe596baf47d2411a1b963ffdf  libstdc++-v3/testsuite/23_containers/vector/58764.cc
! b6681a0098114a37ea7f4cd844834781  libstdc++-v3/testsuite/23_containers/vector/59829.cc
! 317576400864bec5a3e00f1905d4e69b  libstdc++-v3/testsuite/23_containers/vector/63500.cc
! 24b4985290c0ce23cde85f1dc87a6f06  libstdc++-v3/testsuite/23_containers/vector/70303.cc
! 7762dfb1ffe26bdfabdd5c7678b8f559  libstdc++-v3/testsuite/23_containers/vector/92124.cc
  371791c0200fa087edd099071f38f4ca  libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc
! 265d8ecd76bb80cc6bcb0cb99723dd09  libstdc++-v3/testsuite/23_containers/vector/allocator/construction.cc
! 2b992df98489347682b9dc8285afb4e1  libstdc++-v3/testsuite/23_containers/vector/allocator/copy.cc
! d1f7d7d7c1901f9616f460abfa6fb54b  libstdc++-v3/testsuite/23_containers/vector/allocator/copy_assign.cc
! 25d653227e70e3c6078b5fed6e160ec9  libstdc++-v3/testsuite/23_containers/vector/allocator/default_init.cc
! 18e6e55b784d719e7198c73bd96089a0  libstdc++-v3/testsuite/23_containers/vector/allocator/ext_ptr.cc
! 20dd7a6152b8581d302acb31d712c185  libstdc++-v3/testsuite/23_containers/vector/allocator/minimal.cc
! c739eed890fff5b49019f934eaf69f54  libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
! 20de9e2b193892b1a77014dcb9cee0d0  libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
! ef069811994bead2e163aec943dba055  libstdc++-v3/testsuite/23_containers/vector/allocator/noexcept.cc
! 5f5b1fdf62adc3dd86a9ec432eecd714  libstdc++-v3/testsuite/23_containers/vector/allocator/swap.cc
! 220a7942701fcb5ccfb2982fedc048d7  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
! e5e02b84bf274850c780bcf2b484cc9d  libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
! 8190db9457b72fcd49d4f18339ffd519  libstdc++-v3/testsuite/23_containers/vector/bool/23632.cc
! 29872c0217149cb64eed0fda261d6d4f  libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
! e3e6ac5f4f6d583a02d14dde177baa2c  libstdc++-v3/testsuite/23_containers/vector/bool/72847.cc
! be253402d314b9aff16cee99cf8f8df6  libstdc++-v3/testsuite/23_containers/vector/bool/80893.cc
! e2a7d4e223ffbdc6c5a5328667209c24  libstdc++-v3/testsuite/23_containers/vector/bool/82558.cc
  73c5b9c54b2908f68ed5159e5d3cb134  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc
! 162927b20635dce5a881e8b47e7750ea  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy.cc
! cbfde72a11dcf0514590f4c8ad4e4b42  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/copy_assign.cc
! e9191a3a585baa33f15aa3a3c055f687  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/default_init.cc
! 2f03f7c86d15681310c29e0c1e5e3793  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/ext_ptr.cc
! 405471e74097825c9bf0c8c3ea86d344  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/minimal.cc
! 48b6888d00bd29174bf605f7303574a9  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move.cc
! 2bcf29e6cd18b1dae0462895f088f393  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/move_assign.cc
! 69c2c8d3764afc2681c9ad994239f533  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/noexcept.cc
! 77e4836ba69d003871f16e3c168d5b9e  libstdc++-v3/testsuite/23_containers/vector/bool/allocator/swap.cc
! f65d157035403d4d822c871bed6b5e37  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
! 97de618ea242018276521f009adb1565  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
  bc99c897bc30ba1f3a12dd71e4619b8c  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
! 40b33fb606a58253d4f17c615f85eafb  libstdc++-v3/testsuite/23_containers/vector/bool/capacity/shrink_to_fit.cc
! b025e5b427377546e909828f639caa82  libstdc++-v3/testsuite/23_containers/vector/bool/clear_allocator.cc
! 1e517b5847ed26f28fafdf68375ff481  libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
! 497c060e9238aab4ef5f033e4bdae650  libstdc++-v3/testsuite/23_containers/vector/bool/cons/1.cc
! 199360d6a2727fb817138b2a256f06e8  libstdc++-v3/testsuite/23_containers/vector/bool/cons/2.cc
! 7a7a661a24e513f31bacfa810ac156fd  libstdc++-v3/testsuite/23_containers/vector/bool/cons/87809.cc
  8d0b07e1cf5846334fc00f9f4705e3fe  libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
! 943f0e119a2957746915dbdaefa190cf  libstdc++-v3/testsuite/23_containers/vector/bool/cons/from_range.cc
  5ae4b10af939a0161833a11ff6188af3  libstdc++-v3/testsuite/23_containers/vector/bool/cons/lwg3778.cc
! ad15fc56a5a30614ca5f7a9ede3c9c88  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
! cbc20ed4a734956b0114e35076144b6f  libstdc++-v3/testsuite/23_containers/vector/bool/emplace.cc
! 9bba5ce3ba0483f8ef7cb5a64b90bd8f  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_cxx17_return.cc
  61dccf009d507fd3f577a5aeacafcbf6  libstdc++-v3/testsuite/23_containers/vector/bool/emplace_rvalue.cc
! cb42bd09fec663b8765f509efef67c1a  libstdc++-v3/testsuite/23_containers/vector/bool/format.cc
! e484988268b8df62c62fc0c3f47b087e  libstdc++-v3/testsuite/23_containers/vector/bool/hash/1.cc
! eca238eeba09d0cfc1a4e6a1f38ff867  libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
! 708694025e6f683e8d9aa5d94095b397  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/1.cc
! e984dec113c5693b04d00111607183f9  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
! 1ea0f609e8f40584923a084dd1307b2e  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/1.cc
! 84bfd15ad0f42a2090336ccb8f489e9a  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/erase/54577.cc
! a3f6acaf0f148ccc887838a6ce174a0b  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/1.cc
  8411c535ec979be02e85103a2ce6a933  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/104559.cc
! 50135cea89c29db676f21c4374afde53  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc
! 932298e59279e959ff893f12aab9f310  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc
! 95586e994ac81c6009bbb8bcc1e23a88  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/const_iterator.cc
! ff9d5673f40678b2d4268d0b9a93a134  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc
! 48629400552c3855720bc8e0a59d85bb  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/1.cc
! 71934215bf3116918831a09da7b79072  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/2.cc
  780e46ea3d7c50d8c8512793253f488f  libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
! 31c799452b75d4a7fb199d7b5f443181  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/citerators.cc
! ad660fda3c29ab35eedf7379130c96b3  libstdc++-v3/testsuite/23_containers/vector/bool/requirements/dr438/constructor.cc
! f4381d5476ae68861583669200255268  libstdc++-v3/testsuite/23_containers/vector/bool/swap.cc
! 5ff8a2e4deb21f6d79a4763a63874fd8  libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
  587e21047f223d01e9861ad7d3854d32  libstdc++-v3/testsuite/23_containers/vector/capacity/114945.cc
! f0489b5e1ace6bddc93a2eef4fc2e8de  libstdc++-v3/testsuite/23_containers/vector/capacity/2.cc
! c6f2d5e8726007fe691c129cfdebc1d3  libstdc++-v3/testsuite/23_containers/vector/capacity/29134-2.cc
! 38d97c329e11f8b2140fe9c43054eeae  libstdc++-v3/testsuite/23_containers/vector/capacity/29134.cc
! 0d2f366309304d1d54dad4c1739a9f03  libstdc++-v3/testsuite/23_containers/vector/capacity/44190.cc
! 7ecbb80f45d89fdf3f351e17b2b709f6  libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
! bc623204f33e47b83faf45302f812e57  libstdc++-v3/testsuite/23_containers/vector/capacity/87544.cc
  459061d5a624ef8241999a7a4d7abc99  libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
! 3a0305d7efdae967e272e7885d69726f  libstdc++-v3/testsuite/23_containers/vector/capacity/max_size.cc
! 8a1cc92bd8b061d92c353a0a49d01ff5  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable.cc
! b42df4770a3b8ca9fc7c37379f46c2e1  libstdc++-v3/testsuite/23_containers/vector/capacity/reserve/moveable2.cc
! a6d9a33fdd892430e0f77105c7dbd9c0  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/1.cc
! bb6d676e2b7cd25bd2d820fd6a27a246  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc
! 6dc52e78edff9742ea8231538e8f8d04  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable2.cc
! 7e2699ee0905372b6bdb3470e7ab7173  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc
! da8af5653b15a6423e1b4fae4f80bfbd  libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
! 8c692f46d3cb588a2f0b0404da50556c  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit.cc
! 7fa635e13e3d124917075a0f9b0c406f  libstdc++-v3/testsuite/23_containers/vector/capacity/shrink_to_fit2.cc
! 3ca19c1b35d86b725fd5c1882dc24767  libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc
! ccb4168be50b6750ea807fd62fb4dbdd  libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
! f14aeb095fa1a8e199a59998e2ebbb92  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
! 5eb42fa1d6c7238de1440901a2923c6d  libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
! 5fc7390520ed85d58d16807ecbac519a  libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
! c0febcac42af0cd671c6d00b4c3b2d0f  libstdc++-v3/testsuite/23_containers/vector/cons/4.cc
! 1373ec5361be25466eeae8cc8131120f  libstdc++-v3/testsuite/23_containers/vector/cons/55977.cc
! 41c23e1d0448861a16d001d3bf32187d  libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
! 12aa15fcf9abafa55aac406ec2eecbfa  libstdc++-v3/testsuite/23_containers/vector/cons/86292.cc
! b930b6c02f48620f8d53d375f0080392  libstdc++-v3/testsuite/23_containers/vector/cons/87809.cc
! 285e2ee82d8e0504984db9738adbb172  libstdc++-v3/testsuite/23_containers/vector/cons/89164.cc
! 4fa9e1a763e921a68314c829217bb156  libstdc++-v3/testsuite/23_containers/vector/cons/89164_c++17.cc
! 75a86191e87d02e1a0bda877bfb3aebf  libstdc++-v3/testsuite/23_containers/vector/cons/94540.cc
! 59037f24bc824f56ed7abb7515aaa4f2  libstdc++-v3/testsuite/23_containers/vector/cons/94831.cc
! be9b8f7362cc69b8d5c25f6316039da3  libstdc++-v3/testsuite/23_containers/vector/cons/clear_allocator.cc
! 3021f67dddb34d5afe143cf5fdc80b6e  libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc
  61e8da4cd434fb8870df8cc065622ac8  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
! 20602f9d75abc2fccfcd81e83836dddc  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! 25ac2f636e462c7404566e2a578354b1  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! f252380e23160ed12ecdc009d048b553  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
! c76fb24cc0e3db5317766b313c4adf00  libstdc++-v3/testsuite/23_containers/vector/cons/from_range.cc
! 0c6a0bc665aed30559e4a291338e0e97  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
! 647f11a370db4fbf0386c53818866f94  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
! 3638e9cb0133f5e2d9f3804d34f8ef21  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
! 0f4b56d79990c1ba809162f48129d54f  libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
! 13cf8951e00107ad7abac69ed1c50137  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
! 7e7a268b87b9f2fed4354baef67bcfc3  libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc
! 8ef153aacfaff6285a970bdea1c49403  libstdc++-v3/testsuite/23_containers/vector/debug/57779_neg.cc
! c97feda3238799a5eaddb514c6d46c6b  libstdc++-v3/testsuite/23_containers/vector/debug/60499.cc
! e32393882b76a00d12ee932b011ee2bb  libstdc++-v3/testsuite/23_containers/vector/debug/60587.cc
! 5aa6cf67ad6f72c8feec864c1a9b90e8  libstdc++-v3/testsuite/23_containers/vector/debug/60587_neg.cc
! 053c42f16e7546a8d17f5e37f9ddc7dd  libstdc++-v3/testsuite/23_containers/vector/debug/90102.cc
! 57d87d1bb8d52d801095dbc496cb2f6f  libstdc++-v3/testsuite/23_containers/vector/debug/alloc_prop.cc
! 01c223d76c25643801fcf4b564b6ba65  libstdc++-v3/testsuite/23_containers/vector/debug/assign1_neg.cc
! ccae71940134f9375855c29a0dcb0580  libstdc++-v3/testsuite/23_containers/vector/debug/assign2_neg.cc
! 9bbb0bf0d575d9ce71fcd3ca31cbbba9  libstdc++-v3/testsuite/23_containers/vector/debug/assign3_neg.cc
  36541de3ba8c9a1aa64b2f64e2664b68  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
! 3e824b1a3d0a66aea2c2ce064d3e22f1  libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
! 70949eeacee7873b451698208b270765  libstdc++-v3/testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc
! 7da5523501006f1646ae95c1797db5ea  libstdc++-v3/testsuite/23_containers/vector/debug/construct1_neg.cc
! 4cd5c0195e98f11cb24b9f99fc7abbdb  libstdc++-v3/testsuite/23_containers/vector/debug/construct2_neg.cc
! 2b7df1a75667d99ed5a624c4afab7ef0  libstdc++-v3/testsuite/23_containers/vector/debug/construct3_neg.cc
! de9636909ae4c92209dfa082c6145ccc  libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
! 3828b8bd3deb2ad74ed871516f47add8  libstdc++-v3/testsuite/23_containers/vector/debug/debug_functions.cc
! 3a23763f4e3fb514449365e904dce12f  libstdc++-v3/testsuite/23_containers/vector/debug/erase.cc
! b23d46e5183d8953596752646c3c7dcf  libstdc++-v3/testsuite/23_containers/vector/debug/insert1_neg.cc
! d6adc48cf6ffac5016b1bb682d93556e  libstdc++-v3/testsuite/23_containers/vector/debug/insert2_neg.cc
! 2df41ac4c16d87d4086488004263c04a  libstdc++-v3/testsuite/23_containers/vector/debug/insert3_neg.cc
! 8136b29e6edf0891cb71799fbff6fed2  libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
! 2287054d27b931b41306825318f0c961  libstdc++-v3/testsuite/23_containers/vector/debug/insert5_neg.cc
! c6135f22b775f7bca420553b41a23c41  libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
! aca95c2e7fb964e128cff8c226b47d8c  libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
! a19b187fbad58b9f71f4bbbd2c2382e7  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
! 92198ed366d4ceacfc0b3246d094cdb9  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
! 61aa7e9e7ac7cfd7b9dc917d0bd8a9c7  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
! abaa5941069749f7ab223ee66706b13d  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
! c8d36597b0fb5793017bbf729243cd6f  libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/erase.cc
! 6a7528369a716c9dbd893509d7b1e3a0  libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
! 3bd2865cbccd1ed0e777325898c9961d  libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
! 2b983fb930eeffdb8622c9e46e94fcdc  libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc
! 557a6278b82aec9daf44795a228a8db3  libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
  7f7ee046dd79fd0dbaee1477492faa9d  libstdc++-v3/testsuite/23_containers/vector/debug/n3644.cc
! 39d911eb4af3956c78aedaa9ac5d0f8e  libstdc++-v3/testsuite/23_containers/vector/debug/shrink_to_fit.cc
! f850ec3fe83b99e0f3cacbaf0db695cb  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-1.cc
! 90cf216ec2df8c92b5e78f6f72dec352  libstdc++-v3/testsuite/23_containers/vector/debug_mode_requires_reallocation-2.cc
! 961e4d581b4b21f6391caf71471ba4ea  libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
  ce4b8e0e670f29f22e065079390df4f7  libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
! b795e090cde23175934326e79a8b0152  libstdc++-v3/testsuite/23_containers/vector/erasure.cc
! 7d7a6ab21ea32f3db87367443ea8878d  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/citerators.cc
! be5fff6326a2176b9df92f2af5438e33  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/data_access.cc
! d1e63b3b18898b93ea73a1141649d843  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/1.cc
! ee1940b90baaac1e0aacf97008090689  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc
! 1bf7f06bba6ae204b872694baa025a12  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/element.cc
! a7f789964fa0c302e77965da210e1057  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/erase.cc
! a3fb32c098a756e805600e63573283e0  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/modifiers/insert.cc
! 54cba0b20d7920787bc3f7380e053acc  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/resize.cc
! 4705f90465f5ad6ea1782646264a4b16  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/1.cc
! a93c290c73783b18dd8b3209cbed3c65  libstdc++-v3/testsuite/23_containers/vector/ext_pointer/types/2.cc
! e480413269203ff9d38def5dd3b7d9e4  libstdc++-v3/testsuite/23_containers/vector/init-list.cc
! db3d34193ebd12b889f37f4e42ea6333  libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
! fe119bf13996d37fae164fdfc77ee34c  libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
! 51f7c2cac76acbdc14070788c567fd75  libstdc++-v3/testsuite/23_containers/vector/modifiers/append_range.cc
! fcc106bc3707505f860fc46f28e313a8  libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/1.cc
! 1e1490fa3302bf9a5a136fd51b977a6a  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
! 1940c1c87df1e1e57902888e2452fd20  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
! 45cc3b6af51fd9fdee706437b637be63  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc
! d6fb60a2b30f7419f343777a17e9c352  libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc
! ddae0b3c999c660db9512cf5dc099e6f  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/1.cc
! b467e9e98e76f06b2504910c34d3b00c  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/50529.cc
! be8d5addb7fb3b738c2f5569127d74ca  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/54577.cc
! 29718cefb3b43902969716fb302d8554  libstdc++-v3/testsuite/23_containers/vector/modifiers/erase/moveable.cc
! 27daf00e36b840312c173089c79fe580  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/1.cc
  4efef42f0cfbeb752b2c967583ca4237  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/117983.cc
! 63f2351949c39468c3abf9945284aacf  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/58148.cc
! cb0b7921070e1b4abd7e04b68eccfe49  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
! 8644f187a6704f67509958ffc731be05  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/const_iterator.cc
! d62da1f1e000cf57a3797b218a6faf6f  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/insert_range.cc
! 1098a4a1b232c2c78ce28ea927ed19cb  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/self_insert.cc
  8fb5c601f412e71f5977219b7d89f18d  libstdc++-v3/testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc
! 6918a31bae7d38579496520f65562419  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable.cc
! 8ed736847052dbdd8573c5f109871264  libstdc++-v3/testsuite/23_containers/vector/modifiers/moveable2.cc
! 5514ab655b624b5996f8b95c10605ea7  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/49836.cc
! 221f02feb9b4285214ba8bb06536e0c7  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89130.cc
! 7bd2493e03a438242fe7f9c991ba154e  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/89416.cc
! 092d8feef2c332ad4f6f685b6b5a339d  libstdc++-v3/testsuite/23_containers/vector/modifiers/push_back/strong_guarantee.cc
! 4a2f9f9e84018ea58dae284a14d839cd  libstdc++-v3/testsuite/23_containers/vector/modifiers/resize.cc
! 89af890d842597ff4710eac9413e3498  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/1.cc
! a905cc3be1e452bf1821640b2aa93ec5  libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/2.cc
! 67ebc19f35598c69c0507818fa40012b  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
! 8b457e48dba654c229a54731d37d8731  libstdc++-v3/testsuite/23_containers/vector/pmr_typedefs.cc
  33db2bb591e55ad911ea124e372841ca  libstdc++-v3/testsuite/23_containers/vector/profile/vector.cc
! a4fc8f10748e370105748b224409be9b  libstdc++-v3/testsuite/23_containers/vector/range_access.cc
! 4af7e564098c5f46d1da563aa7d296ba  libstdc++-v3/testsuite/23_containers/vector/requirements/citerators.cc
! 3709ef06a9fc21cec5f2f54b37ea0a02  libstdc++-v3/testsuite/23_containers/vector/requirements/do_the_right_thing.cc
! 6cdc5db36db301c41dafd35a44e1d471  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
! ee82a068ea899bd18dd0374ca21cd010  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor.cc
! 774e95f11edb8fe5b65f3eb85563535d  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
! f2fc240c72517de82e688a6fd3467c92  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
! 92bcb17eda332db2fbc612c36c20c85e  libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
! 27683b08aa3ec1a327a81594fde85d24  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/basic.cc
! 68ed50d2393e326dbee5063ac2499a2c  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/generation_prohibited.cc
! 66ea0ebee016f9cd872d6481ceba3156  libstdc++-v3/testsuite/23_containers/vector/requirements/exception/propagation_consistent.cc
! 26bee2400f65bfae59c7996b5fb1b728  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1.cc
! de8b57d4a82bdfee1dac11822bfae5fc  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/1_c++0x.cc
! cf333f453329ebe7ae031acb521d4c61  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/2.cc
! 453431e4e1b5a40953317c813a28e10a  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc
! 69d918d55a12f0ecf416cdbc66b85fc5  libstdc++-v3/testsuite/23_containers/vector/requirements/explicit_instantiation/4.cc
! a38fb055f73a06d73bdd06678649acee  libstdc++-v3/testsuite/23_containers/vector/requirements/partial_specialization/1.cc
! 491a5015ee4bfca66e53f8b398eb44ba  libstdc++-v3/testsuite/23_containers/vector/requirements/typedefs.cc
  2ee39d513e4a8853a8cc693625426333  libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
! ff374bbd1d522aec651a66bf458ef685  libstdc++-v3/testsuite/23_containers/vector/types/1.cc
! 2b95923ca7264588178849ee076952e0  libstdc++-v3/testsuite/23_containers/vector/types/23767.cc
! 4085cad20c4d8bde00ca238ba0eb0005  libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc
  0843785a8c96facdcf360abd4429ea06  libstdc++-v3/testsuite/23_containers/vector/version.cc
! f99b62435f1d8550448b9941723d7b74  libstdc++-v3/testsuite/23_containers/vector/zero_sized_allocations.cc
! d98bd7bd215c151e32d1c87c6f562292  libstdc++-v3/testsuite/24_iterators/aliases.cc
! 838b7af5205bacab1e57b093c1bc92ee  libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
! 40b8ae3c60e43548c6165f13c4820c2d  libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
! 0a22f5aa6d40bf562581e10911e2ce1c  libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
! a83a2bd23cbf6eb36cb550a35ff23e83  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc
! 1c8c2573ed905f095293a40b1af4b0d7  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
! 940e82460698d9d129c0e75eb8910876  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
! 66280dbf833044ea1f31bc6af9e69e4e  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc
! 1101bbf0baab9d34e4bcda61a6686250  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/container.cc
! bae9f2ac453d2ba7606c55a7388aefae  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/explicit_instantiation.cc
! a12f599c0b9a730cd8a915367e58b42d  libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc
! 9542db65a00ea5ee01dd3429e7661e79  libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
! 56192bccee7f7aa8efeb4bc7fb0cac0c  libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc
! 44328a3c118555067c707d6e2b5b5475  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
! c6ac52c8147fba78bd91b638b6636af0  libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
! 2f1514de9134e83dc1048a4c719c67f2  libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
  3fcc24ac9868ef19598ff1bf296928bb  libstdc++-v3/testsuite/24_iterators/const_iterator/112490.cc
! 082e0fdeec6e7c6801fbedbd2403106d  libstdc++-v3/testsuite/24_iterators/container_access.cc
! 455d42f97231c4bf564c959e003aaa96  libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
! 9d87f97db8dec460a80d5feb726866cb  libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
! 7729633c1f5f2e9ba733960df2c33e72  libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
  7ca90fde51a1d54bde839b0d0e9048ca  libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc
! 19474b002075e081edef2eacfbf98c0c  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
  b37a6542819dd8a42cc6e9fee97b5944  libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
! 2879dacf4021d75611750ca05208ff4f  libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
! 08e6ef8ad4e7402939bad7aec02885b4  libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
! fa0fa23e78740f469a7bc6b9af0b4be0  libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
! 4e4dc07b1a2ffbc4bdb771b9b05051cc  libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
! 7c04ab04cb93baf3f80c772af8587ab7  libstdc++-v3/testsuite/24_iterators/forward/concept.cc
! 11dd866366ec97691b6a1aa5a4f1bbb3  libstdc++-v3/testsuite/24_iterators/forward/tag.cc
! 8fc5a889da45d5a7dca478926dd2a9e9  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/2.cc
! 2966c16d4d7bd3e959f957ba16fd18fa  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
! 7f65e822ed92a6a4be2216dfb62b1204  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
! 257961c6f12bbccf686c711ad3ad79b9  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc
! 741216f75cafee4838bd0bb22008bd65  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/container.cc
! d77def9f35f65d698d2c454f6ffb39ef  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/explicit_instantiation.cc
! b4de47ed7e64534cda4c375d7b3fceed  libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/typedefs.cc
! c70f0013a18018db691dc0612136d759  libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access.cc
! 75545a20070a02ce2138d16d7dfe71b6  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis.cc
! fea7620d46ae5e5eca5b3411dcdf24fe  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc
! 17f5ad561bef677c12353ed932e6e0c2  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc
! d071cc2320fa771716758a7e26e894a7  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc
! 4387d8e1926230ecd3dcba4793e69b57  libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
! 2381fc6944a38d83f0485d66ba3b85f8  libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc
! d080e2f2d41a17980bd887d05554dbd5  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
! 2126aeb9c2d0fc885376c830f518da74  libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
! ae64992d2b8229cf7f38eaa8f167537a  libstdc++-v3/testsuite/24_iterators/input/concept.cc
! 269aef09cb350cb6a4d977d026212365  libstdc++-v3/testsuite/24_iterators/input/tag.cc
! 9a224e1adb7540fd981aa57e48bb14d5  libstdc++-v3/testsuite/24_iterators/insert_iterator/2.cc
! 057e6cd50c6302cb126cdbb79ba182c8  libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
! 20be4b03275987700c0a140c5f9a65b3  libstdc++-v3/testsuite/24_iterators/insert_iterator/dr561.cc
! e00990b94976f8238c425c3cfc5c1ded  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc
! f0d58afa1f332377c77deff8af55fc5c  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/container.cc
! f8f54dba20d285788a792bdcd15fd92d  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/explicit_instantiation.cc
! 416155d895a60f946455319396604d1e  libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/typedefs.cc
! be996b25c8ef1439ea19bf5195600447  libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc
! 9a54b988323d7e55678f46e611c1b20b  libstdc++-v3/testsuite/24_iterators/istream_iterator/2.cc
! 77c3b4e087de1ce547b81196ff0c118f  libstdc++-v3/testsuite/24_iterators/istream_iterator/70766.cc
! 5335c85341a5307132b54df62603c334  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
! 524a394caca1344472ef07cf1c271442  libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
! 5a81f3365b18a8684dd9be03783c97eb  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc
! d6d11350cf8ab8df03ef7200d4a0780b  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/explicit_instantiation.cc
! 16fc7fe4ef465e60ef744c7605395b8b  libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/typedefs.cc
! e569186d63466f61fb9efd8a252846ab  libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
! 486fa49e6e6487aad2e12a66d481a54c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/105580.cc
! 760ec72aec19e561ff5ebdd8628478ba  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2.cc
! 056750d63b569b4e5db468fd95af8d9a  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/2627.cc
! 1a5f450007f055452b3fb783807645f9  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc
! fb71f2bb8648d1c2bc6a0ce5b333fd41  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
! 715699edc8970c2bbe84307b376aa043  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
! c9c06041db67ae84c9c68e7458b75f3c  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/1_neg.cc
! 74849171890c8dfe0ef80233f9fd1588  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/debug/2_neg.cc
! 024695cc4c5cec7d7aa9c7b27fe6d249  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc
! 4d4945825443c533c8de3be8518c58a8  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc
! 4adcfdd88c71f7b220736d3ca7bad5b2  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/explicit_instantiation.cc
! d40190ff0f8b9f3716c408e208136a4d  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc
! 29d6dd38b55c85a7c513c1bb488468c7  libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
! dba437b161175d7db8d53dd49b3da42a  libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
! 3da3736b8f1881aecc69df19e3cd3edb  libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
! ea5367ba7bfceab2b052494b9a7eb5fe  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc
! b82556249547ee63413f0af6d79db962  libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc
! 61402a5a3260a596751c0f9d2593b7b4  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc
! 526f176a2b4ad8e6531363587005574c  libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
! 6d5c0754abc61f71c4220a9e18864bd9  libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc
! 6601d478bf75efcf3b6243f759c5b286  libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
! 817f38538c8b61be793f5905459f924c  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
! 4ab73a52915bc40f3940b358a3e77b62  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
  5cce12d5802292914a78be13dd754c09  libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc
! c85996dd8aed972cd6c7c84e79683598  libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
  5b709c0c24b86afd9aaf272fe6396999  libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
! 4c3b903707f22e89f8e60f1790a097f2  libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
! d5f118497363ad253284ee8514c76939  libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
! 8b7af3c4099a15c5bb737ae2839b9a1d  libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc
! 1a48bdff502481244dec4b61ebe8691e  libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
! 5f71d24ca98c788262d2941ea8aecc0d  libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
! 9d0ec7912183dfcbe8929764f1012266  libstdc++-v3/testsuite/24_iterators/normal_iterator/greedy_ops.cc
  dbf77bad38ce01a34ca48b8453f71b33  libstdc++-v3/testsuite/24_iterators/normal_iterator/wrapping.cc
! 76f30ac496eca0513dfb8ed8b348d26b  libstdc++-v3/testsuite/24_iterators/operations/26020.cc
! cb8c6d68b5b36ab0d1fdff93dc92c206  libstdc++-v3/testsuite/24_iterators/operations/40497.cc
! 05ca8a97dce3706ab62cab51136f16ed  libstdc++-v3/testsuite/24_iterators/operations/cxx20_iterators.cc
  631af97d6c75b598ecf8901dc62067b2  libstdc++-v3/testsuite/24_iterators/operations/lwg2353.cc
! 581a1a02f2078024bb1ef62b62483e2c  libstdc++-v3/testsuite/24_iterators/operations/next.cc
! 9306e72e91b872e91b3203b8e18279e3  libstdc++-v3/testsuite/24_iterators/operations/prev.cc
! 94a72af5837af7fc949526e2676c89ac  libstdc++-v3/testsuite/24_iterators/operations/prev_neg.cc
! 5e773a640877b2c0769e029c20e3bef1  libstdc++-v3/testsuite/24_iterators/ostream_iterator/1.cc
! 6ec0247c3557995d2ae4f93fcfb87e7c  libstdc++-v3/testsuite/24_iterators/ostream_iterator/70766.cc
! 31cde1884b668192f68b00da57f36ca0  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc
! 89fe8685e9a548f302ef17988d6a7222  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/explicit_instantiation.cc
! bb0cc0531d8058ff450e917c826b2a98  libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/typedefs.cc
! c945a5e19eafe097c62c8a81dfa4d67b  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/2.cc
! 3521f209d19549a6e4b175c819c7e5f6  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc
! f83828b4326a275eecff72d0dd085155  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/explicit_instantiation.cc
! ac06fe4640bd9cd3fb6d595eb9363eba  libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc
! 4eaf4a7f19406e2365c55bd0f0a93a24  libstdc++-v3/testsuite/24_iterators/output/concept.cc
! 3eefa6600fd15e3031b2b7ed2bb0d6dc  libstdc++-v3/testsuite/24_iterators/output/tag.cc
! d3e1de491e2b71de5d3e9614b642312b  libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
! d8dd328bfb9b974b77a87cdebad8e5c2  libstdc++-v3/testsuite/24_iterators/random_access/string_vector_iterators.cc
! c6a47e0dad2e6eead0e1631388cb15bf  libstdc++-v3/testsuite/24_iterators/random_access/tag.cc
! a8de141c53fdf1c746af0ea62e7d483c  libstdc++-v3/testsuite/24_iterators/range_access/range_access.cc
! 9d8bd6dab68fbf88eee1964367d171c1  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp14.cc
! e6b96a407fc6221a59ba8bba21656d6d  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17.cc
! 0f9f7c9feb79e6b60bebe7f792a5f13e  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc
! 2d221f849b65cab6f98869ebffac681f  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
! 84794c9e2e6bb7b4f9844e700932d0ec  libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
! da6404179dd4ec62cefd0afb090092e3  libstdc++-v3/testsuite/24_iterators/range_generators/01.cc
! a815670e8a163699b4fe3fcdf4e253bc  libstdc++-v3/testsuite/24_iterators/range_generators/02.cc
  c8a50553dd3b7126efd679c539a6fe59  libstdc++-v3/testsuite/24_iterators/range_generators/alloc.cc
! 5055631169aea441874afaaa0ed8276d  libstdc++-v3/testsuite/24_iterators/range_generators/copy.cc
! d0b83ed4b22da06f1e6bc15affd497ad  libstdc++-v3/testsuite/24_iterators/range_generators/except.cc
! 9e11d5711b8d0f95f5ce207e381bd1d8  libstdc++-v3/testsuite/24_iterators/range_generators/iter_deref_return.cc
! c0cf7a998d7a04b5d3058bd84c0a1c74  libstdc++-v3/testsuite/24_iterators/range_generators/lwg3899.cc
! 5846a6625f238913840979281e9008d5  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
! 01e600e5482677c0f7909ed23e142ddb  libstdc++-v3/testsuite/24_iterators/range_generators/subrange.cc
! 8ab126f08d33dda01b0bb65c01615d64  libstdc++-v3/testsuite/24_iterators/range_generators/synopsis.cc
! f0283870e4543f049ca436043ed46ef0  libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
! fac581d78e5a7c5f9a935172c7cda695  libstdc++-v3/testsuite/24_iterators/range_operations/122224.cc
! 5938747d56a10a4f69fd8f8d4868f14d  libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
! fa86fc2c1f354d878defa2b9978026fd  libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
  f3e9bd715fe13148d21f32ce807ccb06  libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
! 8cb854db01e5d781e1c80589781964a6  libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
  a921cc7d3fdaaf8546958618d0214e1b  libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
! f0dec1baf86728984fdee46e35bd1bcf  libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
! 6d3e11c925ac79fe413bb95872346314  libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
! 7affc4a823c9ddd1ffc60937711ce4a9  libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
! 8547c3cb2bb289b4dac44b3f598e8e7a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc
! a0ea20c41bbc08bac431b0bb69d6a71b  libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc
! f3c52a67386deaa4087b504cdf5258e5  libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc
! bd42bd37e68551912df9d8430fd148b3  libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc
! fa05feaaf4cf52da62d9e063cadcf67a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
! 2e3b53aff195c0c36e7e04693481349a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
! 9c43c6dfe1d41d4625dc5f3212e48cc2  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr1052.cc
! 3cf5893d10ecc7a8bf306b82e4126362  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr2188.cc
! b5834bad8e4fd0eef5cea6c1e852765f  libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
! 2f6a71857c54c61bbc4bf097c9c197bc  libstdc++-v3/testsuite/24_iterators/reverse_iterator/greedy_ops.cc
! 829625e6d099baab52084b32829ce905  libstdc++-v3/testsuite/24_iterators/reverse_iterator/make.cc
  b0c0208d50f550375365900191253233  libstdc++-v3/testsuite/24_iterators/reverse_iterator/noexcept.cc
! 52e48417fc2623d5fbe72f06348e73b6  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops.cc
! 8ef3ec1b21f5f5180e26b905b56f277a  libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
! be8d84bdcc857b651e65761b001561a2  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc
! fdf1bb9eb5b68992dc57ac1eebdc505d  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/current.cc
! 6f2f0f48d8240e6bbba49cfa173e25d4  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/explicit_instantiation.cc
! 5fcc4183dbb5ea877f71254a5935c579  libstdc++-v3/testsuite/24_iterators/reverse_iterator/requirements/typedefs.cc
! 627e9bb721d5d078d09d57e01f1d6622  libstdc++-v3/testsuite/25_algorithms/adjacent_find/1.cc
! 77a5b862e785443664ca9d32cfde63a2  libstdc++-v3/testsuite/25_algorithms/adjacent_find/check_type.cc
! 9825cbee29615e2320184ec10e397bb4  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
! f92de4142380c56a41057e7af666d719  libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
! 05cc4f9847af3dc62bc0131ea13a7378  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/2.cc
! 6e3923c6e1d36b96731d4710c9d258a3  libstdc++-v3/testsuite/25_algorithms/adjacent_find/requirements/explicit_instantiation/pod.cc
! 0192d954ee7ae19e502b9754299825e3  libstdc++-v3/testsuite/25_algorithms/adjacent_find/vectorbool.cc
! 992fe677366289a6d85e4821edb67361  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1.cc
! ac8062b3529e49e5d94bf929c821bf41  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/1_neg.cc
! fe0fe338341e299fa3b8be7e0a7f729b  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc
! 0cc7f7ee2eff60c067214b0fe754fb1f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/2_neg.cc
! 76bdebb358783efdf9bb72938cc76d99  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/char/3_neg.cc
! 7065455f8050094e4e81a9f668a88adb  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1.cc
! ae4b4cba0e0a1df51a45c87d4c43325f  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/1_neg.cc
! 4b64f68f61e2726f9540fe638f6ccf18  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc
! e970ba9f6d7a7ec10d06d90400ca2231  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2_neg.cc
! 5dcc4675632006a7724ee3793fce82aa  libstdc++-v3/testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/3_neg.cc
! d75dd5f3833bba28f6f251dff6a2b990  libstdc++-v3/testsuite/25_algorithms/all_of/1.cc
! 028f5608c2097252ad95bf8d7c6e247d  libstdc++-v3/testsuite/25_algorithms/all_of/check_type.cc
! bf5d47b0c48cc4cc70f560cbf79b964d  libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
! e1560891d07c7bf579d2d4128ffec300  libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
! 75dd148f7db1f4c3203dcd45b43c9c26  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc
! 87511f93e40076ffb056c516c27287ab  libstdc++-v3/testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc
! 279e51952e2f553f081a84cf067ef3d4  libstdc++-v3/testsuite/25_algorithms/any_of/1.cc
! 7e3df604a19b30aff988b7281daa2cff  libstdc++-v3/testsuite/25_algorithms/any_of/check_type.cc
! 62a56bcca02497f1a2ee1221538684e5  libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
! cf14bba1c0c63e67ed6275cc1f739e62  libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
! c0f2b0a6f1f5b8f1f52d26bcf3787a77  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc
! ea94b8bce5c0f89787b021c868a2f73e  libstdc++-v3/testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc
! e0dcbe1838f2a71fe91bcebaafdf43f0  libstdc++-v3/testsuite/25_algorithms/binary_search/1.cc
! 41e47fbfdfc0f9fd019558b8a140f945  libstdc++-v3/testsuite/25_algorithms/binary_search/2.cc
! 603bbef269809d0a5f3ba727ceb7c9b1  libstdc++-v3/testsuite/25_algorithms/binary_search/check_type.cc
! 08b36e1805f83b902db1871ac67ab52f  libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
! 8e0f036c574841039e8e5666a927782b  libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
! d97aecc6834d6af5a6ed4a63629c7cf4  libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
! e2c6e8b596549b543dce84a1fec2869d  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
! 6b893bb0c0383e8e4198a08eeb0ba3ab  libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/pod.cc
! 377e35ac27661edc697b82793e32fcc7  libstdc++-v3/testsuite/25_algorithms/clamp/1.cc
  b3d45c29d5a2c403abc175fec1b99a6b  libstdc++-v3/testsuite/25_algorithms/clamp/118185.cc
! 53a1fb6c18116c3538c6e861a1b2d762  libstdc++-v3/testsuite/25_algorithms/clamp/2.cc
! 2f6dde8aa83abe4bed3e54ce931cee19  libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc
! 88d34548152af9fdd82cee9e5f7d4f38  libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
! e573f2860bc22fd7654cbb3fea729d73  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
! 50e614afe21238864e8351927696d1b9  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
! 26c69ea49e2e11c07638b2d598a35e53  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 0c63b67a100045ba8443139e5a30846d  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
  30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
! 9af3ee438eaed42d929a89f85adcd589  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
! 125e1ba85822cfd51c8df1b6a842bc84  libstdc++-v3/testsuite/25_algorithms/copy/122907.cc
! 8b0ff9a26b213c70695a2868ed050f22  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
! 39e718ce16ae44715d600fc6a30837b1  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
! c47de0deb0128d7fb17cb47aea64bc5f  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
! 7988b1c0dea6ea84bb5530b39f27a9a2  libstdc++-v3/testsuite/25_algorithms/copy/4.cc
! a8a8ddaf69b5d4b134bcab1b38cfcffb  libstdc++-v3/testsuite/25_algorithms/copy/58982.cc
! b59e01a1b866e3aa211045b48ec84702  libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
! 2141da4c9439d411d6e2f2fa81ec9159  libstdc++-v3/testsuite/25_algorithms/copy/94013.cc
! 67f59240a41283e630c10da4ea4a7d93  libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
! 2be738d8b9e9958470d161ed11e87e71  libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
! b5bd66da9fed23b7b1798201cbd3acd0  libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
  64ea5ba049127b1ac430ad8d38d2a97c  libstdc++-v3/testsuite/25_algorithms/copy/contiguous.cc
! 727e6d34c3843b0e6632b306d26386c9  libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc
! 4373c5a378ef2235077318413bd7eb56  libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc
! a92b1238172f1ffaaf5d2f76a0b95998  libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc
! d89811894a56b484c5138360bccd4817  libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
! c4f8fce120c32a54329f0443b9269f3f  libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
  a4e3b919e921272cb082f7fa810f39d2  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc
! 7f6eaef4dc75214168c97af034c0d228  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc
! 274a8625a53a7d2aa3b67283a32efab3  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc
! 7a7738263ccf59c22d18422a8a5d25da  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/32.cc
! 11f465f9a8af873642c37cf77a7eb735  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/33.cc
! aeac8b489ee0871c67670ee9ca799c69  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/41.cc
! bb86ede9303343dd7be58557f78a18c1  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/42.cc
! f51387fa8af3f5661e0ca8568fbc6de4  libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/43.cc
! 9729bea117629b1cea2cdbf304622987  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/1.cc
! 158ab9ae8f19773b23c63f228ba32d4c  libstdc++-v3/testsuite/25_algorithms/copy/move_iterators/69478.cc
! e3d0539c610b7fb0beaedab945fa4b47  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/2.cc
! 172aef5d334b7e52d7be581eb6313dea  libstdc++-v3/testsuite/25_algorithms/copy/requirements/explicit_instantiation/pod.cc
! 05e4c5bd4583186173fcfc616897bf0b  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/1.cc
! 27c021a049f8503281846ab844fb1f4c  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/2.cc
! 93942d6f5303cf3a9efff76285ab41c6  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/3.cc
! 3d97599a0c9101ef0cfea8bb15513146  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc
! 6141a75a292c999b93a8a6c01164da81  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/char/debug/deque_neg.cc
! 69b33a6282268db027613c880ff0885d  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/1.cc
! 6b1b417262f831bd8a6061f81a2c2cf6  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/2.cc
! 3a72214d97d0b8a04e2d55218d13e792  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/3.cc
! d049c3ddebab15fab2868cfd0caf3e73  libstdc++-v3/testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc
  ea6103a279f6870c767eeb7c52ec5c64  libstdc++-v3/testsuite/25_algorithms/copy_backward/108846.cc
! 826326517658ddbe4a3f5edfbae5a2e4  libstdc++-v3/testsuite/25_algorithms/copy_backward/94013.cc
! b421836f2bd75f32c37961f9d2f49e1e  libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
! 227b8e2390c8c2b223485766a7792de8  libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
! feb71ebf57351ac6614b3b6ab4ad326d  libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
  22fc4dc6e3e1e83a146c05d4acf678c1  libstdc++-v3/testsuite/25_algorithms/copy_backward/contiguous.cc
! 6f6a5c2cfafcd2cf6fbd55423c5a54e7  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc
! 5f638ec39f4506b50b6b28f117e4c6a0  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc
! ebec9675aaabc6c74c185b6123950698  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc
! f11148491c2e526a4288883eca91c86f  libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
  da1fb78d5a3cd469ddf537052865be96  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc
! 7e65a78ddb6ace37c08f5f096771978a  libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc
! 985a669db55e23bb1b61246ed4c23f02  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc
! 4db7d85cc42af0e2bb0198f6d505f113  libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc
! 006c61a7b710b5c4dd682f540f46bcd6  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc
! 4e8be7c8cbf6a7261624f9611824be38  libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc
! f24a6b4b870d3119112b2551a72d2d98  libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc
! 3fa4b51af822312d78ed9ea6d7e8ee68  libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
! 8cb73966db32cb1c8901b4819bed204e  libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
! 30012f0c88b9a01876fe4b879c22ee7b  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc
! 348b9491d2886cb6b59b5d7d94fd811b  libstdc++-v3/testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc
! 7c106bbd010edc3e4e8744154bd1fb14  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
! 109d70fa82df14d977ba973879e629d8  libstdc++-v3/testsuite/25_algorithms/copy_n/2.cc
! 4a6f555f3e3372be7fc178f5ae0ae636  libstdc++-v3/testsuite/25_algorithms/copy_n/3.cc
! 9049d75aa0135fb11fa7dcbcecf04578  libstdc++-v3/testsuite/25_algorithms/copy_n/4.cc
! 94527e2d6387b49327d04fd60c2537df  libstdc++-v3/testsuite/25_algorithms/copy_n/5.cc
! 4e4f2453bee02ffb0a721c6929ea6354  libstdc++-v3/testsuite/25_algorithms/copy_n/50119.cc
! 776e7ad4e9a1c8b20a244e22bc23ea5f  libstdc++-v3/testsuite/25_algorithms/copy_n/58982.cc
! 9c6980420e66c131142789efdf034471  libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
! b2368ee99ae874440afad22776bdacf5  libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
  72e2fefcaa366bd09649076f661374bb  libstdc++-v3/testsuite/25_algorithms/copy_n/contiguous.cc
! b8654296c9550f7c1d7c2de6a1fd7526  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/1_neg.cc
! 590514e46e8d44ace0500b31ff124c30  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/2_neg.cc
! 9e067c3a2bca46185bfd1cb118f282c0  libstdc++-v3/testsuite/25_algorithms/copy_n/debug/istreambuf_ite_deque_neg.cc
! 5e0b64a9cdf96bccd8b1d3136e775a03  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc
! 9359fc5328782a3b2f6e08fc8161cd94  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc
! fbb7fba3a3e9452da757267fe0f5f74a  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc
! 3a5e28538484693d415c23324fb454f1  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc
! 271bcced4adcc090fe9821f712ec4050  libstdc++-v3/testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc
! 0af74c0bb41bf8eaa4b977c913bc6c31  libstdc++-v3/testsuite/25_algorithms/copy_n/move_iterators/1.cc
! 6bcee5c0c426bd4a3c044c7552724dc2  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/2.cc
! 429d8858d9bc435150ee7cf1c16f506e  libstdc++-v3/testsuite/25_algorithms/copy_n/requirements/explicit_instantiation/pod.cc
! d0d695b94417804278a8902dac957a07  libstdc++-v3/testsuite/25_algorithms/count/1.cc
! 0d824abc388c0039440e2d21df33ba38  libstdc++-v3/testsuite/25_algorithms/count/check_type.cc
! f6a696aef366d6bc35519f479d7a58ab  libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
! 9e300ffc688ec079e1bd3a45cb035c80  libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
! 2dd93b42ea1ab7b300b77a5347f75c1e  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/2.cc
! 7d1ca8dfa841faf38c03dcaf6fea9762  libstdc++-v3/testsuite/25_algorithms/count/requirements/explicit_instantiation/pod.cc
! f83a87fb86544483d9e48f2814dc609b  libstdc++-v3/testsuite/25_algorithms/count_if/1.cc
! 2417ee2884499f063251d1e32a64b623  libstdc++-v3/testsuite/25_algorithms/count_if/check_type.cc
! fa7033273cf947e2589229ca7a990fb7  libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
! 92fbf7d47dd5577e637a6bf9c79abfc0  libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
! c3996c2cbd38cfce052b2453d6b7a633  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
! 8325dea92c97fa972b2996a8ed8b3d35  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
! eb039700066c0a50c700412b6fb41c72  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! a2a3a68c18f7b0e7d2e3587b994868f2  libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
! 574ef91b3f4ec1f13b9d9e79b4999fee  libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc
! 76ba0cf6c6859499ffc6782ce00a6546  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
  da701df52f121ca10189a8abe1f5e2af  libstdc++-v3/testsuite/25_algorithms/equal/101485.cc
! 57f6a55a4aab3c94c6bf1354592243c3  libstdc++-v3/testsuite/25_algorithms/equal/2.cc
! a2d02c76515d82f9b799e8b20b9b91fc  libstdc++-v3/testsuite/25_algorithms/equal/94013.cc
! 625eb58f2b267e68dfc9a80865bef6c4  libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
! 980e7a40c1e19b1c28501dc0e3f41f08  libstdc++-v3/testsuite/25_algorithms/equal/check_type.cc
! f3cbdc25e556ff2927d15eaa85916164  libstdc++-v3/testsuite/25_algorithms/equal/check_type2.cc
! 9dde55583aa1f8040bca49f9ef1a8113  libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
! 08dd422531a3dd9217839cd55e486a3f  libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
! 7cb3ef2fc3649799e3ecf6ed246475f5  libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
! af4340141151e451e69103777fb549b3  libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc
! 9ce37172b423b462f5e0a4a349cb3a9e  libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc
! f604fe549a2940cbccef4371ec8b4400  libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc
! 195a2fc4d178bafddfc8d0b6ee721140  libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
! 51e12831f3dc367c9237cf138a7ab0ec  libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc
  c0b18a7b4d710c241043a8c5994fa56b  libstdc++-v3/testsuite/25_algorithms/equal/lwg3560.cc
! fe45f268dfecfafc89130898371ece1b  libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc
! 0b53837b4237de6ae73388d4a062e52f  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc
! bc21481d7445f50def4db17cf30ac8c4  libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/pod.cc
! a048b2bb49caafca3ad4a17c4cba5666  libstdc++-v3/testsuite/25_algorithms/equal_range/1.cc
! 851e5fb081403fa2b8323b39da02a680  libstdc++-v3/testsuite/25_algorithms/equal_range/2.cc
! 228406d92c35170fd47281a4444ad8dc  libstdc++-v3/testsuite/25_algorithms/equal_range/check_type.cc
! c93f88f89d966c33f39ce68295449c03  libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
! 1104b7f6eec72fa6d7d38af51dc77523  libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
! d486e3221268367d10b9324bb628ca9c  libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
! c2867032f914f750a9ac8040ea83da14  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
! 7352c18678451904680a3b14bb6aeae9  libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/pod.cc
! 8618d866762174b478ce06036bc903b1  libstdc++-v3/testsuite/25_algorithms/fill/1.cc
  3f5c13fbbfdd75f85ce1a83e235665d6  libstdc++-v3/testsuite/25_algorithms/fill/109150.cc
! af70698f358006fa4621fb34138212f3  libstdc++-v3/testsuite/25_algorithms/fill/2.cc
! 90decea10bf1faafef43f6e8804c24b4  libstdc++-v3/testsuite/25_algorithms/fill/3.cc
! b800195814ebe0dae82ab358a86efae9  libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
! e4fcd54061f3db8656524795f36568e5  libstdc++-v3/testsuite/25_algorithms/fill/4.cc
! 27965e7423a77bc1ae9a3c7a2d044853  libstdc++-v3/testsuite/25_algorithms/fill/94013.cc
! 8f674692d142ea6f3e6916720559d577  libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
! 692d5b217b48475d1e7e4a210ed155d1  libstdc++-v3/testsuite/25_algorithms/fill/bvector/1.cc
! c0dbd4dc1a73a753050699073a7b4438  libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
! 807cbe0fd2420d0b68e3e62e3b969440  libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
! 5c253d391c2fa7695ac9cd34083853b6  libstdc++-v3/testsuite/25_algorithms/fill/deque_iterators/1.cc
! dae78f604493247588bc917fe4656129  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/2.cc
! 52a5bcb4a4e5bcd68bd41fe21d093229  libstdc++-v3/testsuite/25_algorithms/fill/requirements/explicit_instantiation/pod.cc
! 9f4b56689a3de2adb14340d59280689c  libstdc++-v3/testsuite/25_algorithms/fill_n/1.cc
  eb2b2a56b7b69f178708e45eead4f571  libstdc++-v3/testsuite/25_algorithms/fill_n/109150.cc
! af347d515625cbca1cf6877cabeb4d3d  libstdc++-v3/testsuite/25_algorithms/fill_n/2.cc
! b987baa2143644686281d105ab52e55c  libstdc++-v3/testsuite/25_algorithms/fill_n/25306.cc
! 07f9c7696563d7ce9a21350b2e51fa99  libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
! 06298df9c82d97cd324540a156168a23  libstdc++-v3/testsuite/25_algorithms/fill_n/87982.cc
! 1264f4bde02c0987125e8a5c304b8835  libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc
! ca69e671b9feffc8826045401d3b0384  libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
! 1f410f14f3e19108de692a4d89b523bc  libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
! 8e9fc196db22757ba5ec5af7833d4d5c  libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
! a2bf29a64042b0a275a6c402c8dc4b62  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc
! d6aab2a4688e2892bcc4a3b5d8a48eae  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc
! 11a3cab9aedea88dad4cb7d6b53d8cb4  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc
! b71f298abe10c61125acc7e61bf5671f  libstdc++-v3/testsuite/25_algorithms/fill_n/debug/4_neg.cc
! a59caf2b2bebde2df17ea5d0a2a31fd8  libstdc++-v3/testsuite/25_algorithms/fill_n/diff_type.cc
! 9191609c709f0e0c6cef4dcb09182b21  libstdc++-v3/testsuite/25_algorithms/fill_n/dr426.cc
! 0b53837b4237de6ae73388d4a062e52f  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/2.cc
! bc21481d7445f50def4db17cf30ac8c4  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/explicit_instantiation/pod.cc
  6d5ca26b4036cb7671730c8021b8ad10  libstdc++-v3/testsuite/25_algorithms/fill_n/requirements/version.cc
! 927d7867b476256b50a8f95ee54bcdb0  libstdc++-v3/testsuite/25_algorithms/find/1.cc
! 3a697c1879abca5a3e20969d095e32b4  libstdc++-v3/testsuite/25_algorithms/find/17441.cc
! 585fd1286639bbaa0da5b19047cdd585  libstdc++-v3/testsuite/25_algorithms/find/39546.cc
  e1032367658aba44902f7eac2ebfde3b  libstdc++-v3/testsuite/25_algorithms/find/bytes.cc
! 7768437e5d6dfb612a734ee0e743f5b3  libstdc++-v3/testsuite/25_algorithms/find/check_type.cc
! 7de2d8b55376227b84a8de1a20bdc904  libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
! 1c0768441b7efe3e5ad123af66522c06  libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
! 8d97fdac39a894dff4554cc41efc4923  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/1.cc
! 575f289617c203c7b366ec4df42847de  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc
! 97c0b9a8dc8e8dfbee103d54bfdfeeee  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/1.cc
! 54b25de2f8fe7dc0a2edaf4297d20246  libstdc++-v3/testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc
! a076461c348276b289cc58db6fad5d09  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/2.cc
! 0cf37ec895528c383caba40817a597f1  libstdc++-v3/testsuite/25_algorithms/find/requirements/explicit_instantiation/pod.cc
! fc527693214b21518359dccefd675e1f  libstdc++-v3/testsuite/25_algorithms/find/vectorbool.cc
! 9c37c69432e96efca8215713efb420d3  libstdc++-v3/testsuite/25_algorithms/find_end/1.cc
! 89574b1dd36c06082bf8afe4e1e9de9d  libstdc++-v3/testsuite/25_algorithms/find_end/c++20_iter.cc
! 6e5e25337b65ffe0e45959cb281be6a6  libstdc++-v3/testsuite/25_algorithms/find_end/check_type.cc
! 25032b33c85f21aec2e873f28318002e  libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
! 71d12a1e32e339729cdbd843854120f1  libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
! c10f897f39e1a00a981037af80062211  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
! a036a1c632e34ac267c9ca6125914b54  libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc
! acdd8282b73384311543e6fe112c0eb8  libstdc++-v3/testsuite/25_algorithms/find_end/vectorbool.cc
! c6374c636cb6d385c9b566d9c70313e6  libstdc++-v3/testsuite/25_algorithms/find_first_of/1.cc
! 4d1ba906f7d29517e683e4ea2e787069  libstdc++-v3/testsuite/25_algorithms/find_first_of/check_type.cc
! 8c049009eb06dc98317515237c16b981  libstdc++-v3/testsuite/25_algorithms/find_first_of/concept_check_1.cc
! 4ef8d2a231b9263c569e67b15761e26c  libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
! 356fbfa6899cc1d56b0dbf4ddf0e20ec  libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
! 96c563d0627d4a419c787b9aa42d6c5d  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
! 046fe13fff34f300f72fca59b4b767ae  libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc
! 874155f277f97b8a463381bdce804638  libstdc++-v3/testsuite/25_algorithms/find_first_of/vectorbool.cc
! ff13c54f5ff0b31a92c1377b847aa7cd  libstdc++-v3/testsuite/25_algorithms/find_if/1.cc
! 8d6758d7ccb3a9314a6b76abfbb1349f  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
! 88c73b85ddc28f6bc105c7343534e127  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
! 2bda84a1581fc4c417de6210038acbb5  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
! 1c6e66cc9a68b3033fd1c7252c55af84  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
! a597532e8836bf4878211fff4fc8c60d  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
! fc527693214b21518359dccefd675e1f  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
! 7ddfca013dd635a973d82e711c4d6ccd  libstdc++-v3/testsuite/25_algorithms/find_if_not/1.cc
! 486ab86d3bd9e2f7c55d0bb54fa87ba2  libstdc++-v3/testsuite/25_algorithms/find_if_not/check_type.cc
! ac017ce1cd184aa1222709b45679c365  libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
! 60cd288fb9b5e26738fc7b30e772c450  libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
! 8eb4ee1c6c77755b76013727421c4bbf  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc
! 7d6c5d796b21886c71ebabe1277052ef  libstdc++-v3/testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc
! fd134034c7b610df01aefe1c78bbf220  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
! 0f2e0a44a119c21e8fe0e0884eee5c9e  libstdc++-v3/testsuite/25_algorithms/for_each/1.cc
! bbeaba05b3cb319d4b01801ea0f093a5  libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
! 3aa82c160ff3b217eb13ec8660e6728a  libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
! 316d10117cba559e9bfbe83728a2a4ec  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
! 09e77989562377ab667d73183aad1844  libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
! 5f3662c2334ffe4963a28f32c27931b8  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
! 309cdbdf2f0391c2f3f176ab938ea987  libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc
! e84185e233fc3bb64581a4c21a8cffe5  libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
! 3859799832215ba720f5665126eeef7d  libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
! 256d70d40d20a50dc96122763b9f8a8a  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/2.cc
! 6c3cc8b16757801b7ea87f43e41ce163  libstdc++-v3/testsuite/25_algorithms/generate/requirements/explicit_instantiation/pod.cc
! 01ef1077bddd9a7b1120fd8d0dddba7e  libstdc++-v3/testsuite/25_algorithms/generate_n/1.cc
! 677beeb7d44b91e232e68e2aeac81f49  libstdc++-v3/testsuite/25_algorithms/generate_n/25306.cc
! 5500fecaf2c73f6cb790429d8d8c28bb  libstdc++-v3/testsuite/25_algorithms/generate_n/87982.cc
! 29ea932c8c21892c1cb66780ca4f777d  libstdc++-v3/testsuite/25_algorithms/generate_n/87982_neg.cc
! 84f80c6caa884c4c80d03ca5a9e8184f  libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
! 4356df44ed1f5251852bc6563af6761f  libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
! 94013abd6df931403d868a9dea845710  libstdc++-v3/testsuite/25_algorithms/generate_n/dr426.cc
! 9b4e7a1cb992b1cdb81ebf88c1b1392c  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/2.cc
! a3eb1f8f736215b9c279b7560b6cf4a5  libstdc++-v3/testsuite/25_algorithms/generate_n/requirements/explicit_instantiation/pod.cc
! 820826d11503518cda3bb7e646479d1d  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/algorithm_parallel_mode.cc
! 8630908474f1c99dd671f513ee9c8d52  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm.cc
! 0cebb280eb87e7a53d52b87ad5e531e0  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert.cc
! ef38237dcf881aef4f61c61142f69f42  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_assert2.cc
! ed92d246660cfd47fca3a5948d816be9  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed1.cc
! beaa037efe267a220a5133183ab5e89a  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/parallel_algorithm_mixed2.cc
! a8184fdf4f89405f7c80a06f3678b4cd  libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
! 6ef53563f309242d9efaff63298bee51  libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc
! 5729b737568128652534039a1300cb93  libstdc++-v3/testsuite/25_algorithms/heap/1.cc
! 7974a5d3e477a6a9fb3f33b706fa8168  libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
! 55b565fe9f556817280ee04f5aa8c5d8  libstdc++-v3/testsuite/25_algorithms/heap/moveable.cc
! 6a2274df1ed948ad2e381c3ea1cc6d54  libstdc++-v3/testsuite/25_algorithms/heap/moveable2.cc
! 5f28e014eb695ed8cbe895582412dedd  libstdc++-v3/testsuite/25_algorithms/heap/vectorbool.cc
! db3360d7a0fd21a91db727303c759ede  libstdc++-v3/testsuite/25_algorithms/includes/1.cc
! e2553cbdefe5e856d6d39d39aecf4987  libstdc++-v3/testsuite/25_algorithms/includes/check_type.cc
! 33e2e33b9ed51525ba3dd87c2b6f2023  libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
! 4772896e2e258e966106873e104f3d05  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
! 912aaeb1b536a13876a822da0fde14fb  libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/pod.cc
! 6bc914c70c301e75ebc53fde6f87a0bb  libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc
! 7c6653956d4edb8b2428a8e88964454c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/49559.cc
! d1edb1969168e28fdaf7e87124e38643  libstdc++-v3/testsuite/25_algorithms/inplace_merge/check_type.cc
  237d5748a0ddade76621aadbebdbb31e  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constexpr.cc
! 57124684765ba351b68c13be9307e734  libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
! 8c9916df4c28fcc39fd0698a0617967b  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable.cc
! 88336321a816b6047b00ee1af2a0b255  libstdc++-v3/testsuite/25_algorithms/inplace_merge/moveable2.cc
! 2b44555f7210469b9a553f5ec455367c  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
! 6767efc08a3710544d891bbb772abfcd  libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/pod.cc
! 227918541fff467b94950b56852ce33e  libstdc++-v3/testsuite/25_algorithms/is_heap/1.cc
! 1dc11cbb41fa1d0498c8df8b5003d53c  libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
! f3118d52bfef8b84e45ba4b1898dc697  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/2.cc
! beab30f402598ed7864734f54e80f3b8  libstdc++-v3/testsuite/25_algorithms/is_heap/requirements/explicit_instantiation/pod.cc
! a386fed691bc061c13aac8971387f62c  libstdc++-v3/testsuite/25_algorithms/is_heap_until/1.cc
! 19ec8bc1aa89b9e77f96a22b15c3196e  libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
! 036fb402f5cfc9ec9f9377dd46708a95  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/2.cc
! 03c2fdf08ea1247c1eab3db6ffd85fd9  libstdc++-v3/testsuite/25_algorithms/is_heap_until/requirements/explicit_instantiation/pod.cc
! 3e51314a6f5bd3c701975dbf1b32f25f  libstdc++-v3/testsuite/25_algorithms/is_partitioned/1.cc
! 4664ea62711e3fd06a58fe1b2d24ab4d  libstdc++-v3/testsuite/25_algorithms/is_partitioned/2.cc
! e59b78c6c41a10720519537cdad6e881  libstdc++-v3/testsuite/25_algorithms/is_partitioned/check_type.cc
! fcfd218a92ee804ff1f259d8e2e00c7e  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
! 3c73daf5afe222f9d2e112552faae873  libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
! 6afc6182da6645c182bde5924aa9c702  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc
! 37b072e0c74b65498c9b10a79ed513da  libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc
! ae110110c97323e050e338d3545afae1  libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc
! 84c9d2e86c8c1b77b82f70227433bd9d  libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc
! 36a08c7420ce912ea8baf1e9d4202d48  libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc
! c47aecb857849aa66829da07ba411dfb  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc
! 822f970fc63800f033fcd139c25ad20f  libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc
! dc048e18013d437884fcd931452d0433  libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
! b18f902302ff62fa2966aa002fe02421  libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
  a0615ab26a59e9cc0d5d52830fdeaa83  libstdc++-v3/testsuite/25_algorithms/is_permutation/lwg3560.cc
! 3de4d255037e54c046da2d7ab009ec90  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc
! f298c9cb3e257164eae138c9f9c322c8  libstdc++-v3/testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc
! c4d9b8b029ca69fd8db9eec5bba12bc5  libstdc++-v3/testsuite/25_algorithms/is_permutation/vectorbool.cc
! 72118461fafb53d6cdc41da5de5e41ac  libstdc++-v3/testsuite/25_algorithms/is_sorted/1.cc
! 0b199a8c0bd28dbb9b33623759b5bd34  libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
! 2127d0250e32a28f60aa02616b7a018c  libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
! f3e89e79b5b480aed6a05a1d82d2b21e  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/2.cc
! d3f9c82a7b6f4f7653bd221730c81e8f  libstdc++-v3/testsuite/25_algorithms/is_sorted/requirements/explicit_instantiation/pod.cc
! 9cf60c9fd228eaacbfe3de3be7c789f1  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/1.cc
! 8fdfabd81d116f4c829bdf34e364a9da  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
! 105023f14aec2b88755ce07f62258034  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
! ca1f0d0023147a8ead9455dfab4ad2e9  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/2.cc
! 8b4b76c586c0482c3712f0b25edefe66  libstdc++-v3/testsuite/25_algorithms/is_sorted_until/requirements/explicit_instantiation/pod.cc
! 8b4a5660a776a1929fcdbf9f1d135e20  libstdc++-v3/testsuite/25_algorithms/iter_swap/20577.cc
! d27a9146614ebf3ed2dcc0ddb13fb50e  libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
! a5d8000340e7f87f131a1a52bc011698  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/2.cc
! 9416ab8b5883bf6633c24a531da7051b  libstdc++-v3/testsuite/25_algorithms/iter_swap/requirements/explicit_instantiation/pod.cc
! 031cae9e8f9accd10e0c13ee92e3a8b8  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/1.cc
! 8723fc032dd791cf9049703b77be865d  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/71545.cc
! b39496141f967c02d237a02a4ceebc39  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
! 7e90611a96b68fa6fd5a16277ad0f4d2  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/94013.cc
! 89599b628b02ac3afa6530a7a9827cfb  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
! bd84564cc105dbaee45442249cc82254  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc
! 9759e2038cf366ce04ff058a61ddd0e8  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
! 2e53559616e87296d5a9012b50a48235  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
! c91c547704bed1c43bb794f397d33f9e  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc
! d691daf06a10b68206bb7c1833e8a7c7  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/diff_type.cc
! 54727c4bf5b144d3170dc18a833d0d4f  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
! a4a841b4e4ab9bc37d86391bce92f466  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc
! 6b0960ac4c627ab551a4ba18f59cb5d5  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc
! 315c539388bccc09a48fda7a0f3b3bc0  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
  fda158d264fd98a45243c1135a92fa52  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc
! d4d6c8eb4e8c035bbed11decf6846888  libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
! d88c07f7155e7b995a3f82c0bea325ef  libstdc++-v3/testsuite/25_algorithms/lower_bound/1.cc
! 2dc602e7ce43399b61527f80ddc0890d  libstdc++-v3/testsuite/25_algorithms/lower_bound/2.cc
! 9d9f81a6a9e37133c91889063bd58a6a  libstdc++-v3/testsuite/25_algorithms/lower_bound/33613.cc
! 480baf896de0a7b3256b1d21207595d2  libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc
! 231eaacc589c5d54adeac990ccc86b06  libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
! e0e1d3e9e2a6ee8da3941159674f8895  libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
! 001647595d6ff7ccc5e1c0e68a47e54e  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
! 1cac71dcfc0009f1ae031ccb80017b10  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
! 1e508ce71eebe5d6031d51297d361c89  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
! fc2804694f83b16eaa39cec1e36fce41  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc
! fd9936a15fb4ad48313e6df228e9b3eb  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc
! 332dab2506bbbf6ad0750731df8360fe  libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc
! af7f3011dc26f594b4bf858dbc1cc483  libstdc++-v3/testsuite/25_algorithms/lower_bound/no_operator_ne.cc
! 1dc24d95998e4153ced9e2729a115141  libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
! 790ebe8dc5c1f6600d9018aaf3fdf831  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
! 24c0cb516af3c47d8fb5c5e67b7805f4  libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/pod.cc
! 678db96ff99aeeab36c982fd9672e987  libstdc++-v3/testsuite/25_algorithms/make_heap/80064.cc
! 83dca74c35e93e2677ff5457c3e39227  libstdc++-v3/testsuite/25_algorithms/make_heap/complexity.cc
! 44273e2aaa6b54d6b72c4ea6d7037658  libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
! eb2bddd02c894104e3c8aa4cd3c27b05  libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc
! 7cf1b0a803fd6f978268ff17917cb7dd  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
! 86a6ec657186dcb6f09bf4cd0fd66226  libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/pod.cc
! d70a77c561ce956d2b5ad54b5dbac19f  libstdc++-v3/testsuite/25_algorithms/max/1.cc
! 9505976292766765494be3300b0fe1f3  libstdc++-v3/testsuite/25_algorithms/max/2.cc
! 6d1ec4a0ade462aa55728e87ce2c17e2  libstdc++-v3/testsuite/25_algorithms/max/3.cc
! 2da2969ea102dab57a56a01bc79f452a  libstdc++-v3/testsuite/25_algorithms/max/37547.cc
! 64e04169fbe934e8de5f64e0a51de7c1  libstdc++-v3/testsuite/25_algorithms/max/4.cc
! 26898dcfb3c1047230ba8deb7afd116c  libstdc++-v3/testsuite/25_algorithms/max/constexpr.cc
! 5f164acfa627f082187ee770eda18b0f  libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
! 19c8f18a0b3a008848e3d67d8dc9a1a7  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
! d935f59313236af13f4e1ff923a9b86d  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/3.cc
! 66c3052f111dc17342f0b4a50a67cf2a  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod.cc
! 4a74572c02273ebe479de3852d797ca6  libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/pod2.cc
! 8f7ecdab94ac5fb42013cdf4edce66e4  libstdc++-v3/testsuite/25_algorithms/max_element/1.cc
! 61d0a95aa809aac071a72febcebd4894  libstdc++-v3/testsuite/25_algorithms/max_element/check_type.cc
! 4017749ef70277fd5ec94049b008ce35  libstdc++-v3/testsuite/25_algorithms/max_element/constexpr.cc
! a3196307befab0637654aa12309ffd26  libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
! 08de33a8836087a3f3e0ab08d2c9acaa  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
! 6749e9bb8bfce26b01bad19c28cfb3aa  libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/pod.cc
! 565c5be07dce4b26d602f6b2dc917ee3  libstdc++-v3/testsuite/25_algorithms/merge/1.cc
! 4e06ca05b3f75d8727139c5c7646a6d8  libstdc++-v3/testsuite/25_algorithms/merge/check_type.cc
! 475a8a6a48ccf6bc6707ca6cea563695  libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
! 58d064f18964e2fdddf1b7b75e1c0ae6  libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
! a5977c9573f2eb8c603988f6f7c99dd8  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
! d59863d6e152d93c1ae00dd9d40f85a4  libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/pod.cc
! 66c61dc8824b66c3802dc4db7055406a  libstdc++-v3/testsuite/25_algorithms/min/1.cc
! 2e1c16b5729cc211d4cfba5dfc7e2f04  libstdc++-v3/testsuite/25_algorithms/min/2.cc
! 36138ce3b723c6c68a62608e9ce10b91  libstdc++-v3/testsuite/25_algorithms/min/3.cc
! d627a0a8d8bc7e21742a2e66485e6d4e  libstdc++-v3/testsuite/25_algorithms/min/37547.cc
! 0e22e000f05a991a58dcbfab4c096730  libstdc++-v3/testsuite/25_algorithms/min/4.cc
! 4c1f9d59ea882afb7a29e09fb1ba9309  libstdc++-v3/testsuite/25_algorithms/min/concept_checks.cc
! 0e9db45e2fc0a4564c02443e52d35673  libstdc++-v3/testsuite/25_algorithms/min/constexpr.cc
! bbe8401a178e5e688795fbe7b691515a  libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
! 2c1ce486257b669e6ae5a5587c4e4b41  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
! afc838df2ec8f2fd43883c23d45e7703  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/3.cc
! fb90ff649875c81d3495bb6dff6c1228  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod.cc
! 49372283d71c0901c5ca18ff3548715f  libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/pod2.cc
! d56e8f555bf17bf965827f58b443f5e4  libstdc++-v3/testsuite/25_algorithms/min_element/1.cc
! 94fa250ec067bee710f9c331e66a116c  libstdc++-v3/testsuite/25_algorithms/min_element/check_type.cc
! 2fdef1f154d9740276bcfd6667f033d3  libstdc++-v3/testsuite/25_algorithms/min_element/constexpr.cc
! 9655886c96d3b40c2eda7724af0cb2de  libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
! 01ffd42297f0a3b483169bfafa879101  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
! c26a169eeb6c5acbe12660daf73919ec  libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/pod.cc
! 650cdd7ccf3daa4dc367c8c438fee757  libstdc++-v3/testsuite/25_algorithms/minmax/1.cc
! 96cad84791c69c895e2f24a42c937863  libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
! 475ac7b7bb8aaab7d8432a7a00e26389  libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
! 803974c6b9081f4b5dcd5a898cdd0066  libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc
! efb0862450e1c6c371505e9634b4392c  libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc
! 51c20f2230ebfe70a97804021b0d93c0  libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
! 05c20fc2d37cc8fa4e539d514e0db030  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc
! ed02b002af7f0c0f5f8bcfac11140fc4  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc
! 22b38641ad5009263c64a65dc14dbd3e  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc
! c0eb5f242cf89625086e46367efd6511  libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod2.cc
! 903b3a41b8b120ade308fa6bd53996d4  libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc
! 8daca5c4d2909dc10ecf5717f80fbed5  libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc
! f993e78efd71a2ac7045eb20eb99eb93  libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc
! 62651bae81dbaf4e5a07519e6eabe5e3  libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
! 57d783b5242627aee3c7d7bf61c7d01b  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc
! c69ded0ad865c0632350f18e54f12ada  libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc
! 94485755fa3a5a180a410aab6d2b4b97  libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc
! 771116b8a221cf8f6cd644149f8bbe9d  libstdc++-v3/testsuite/25_algorithms/mismatch/2.cc
! f934273bae394b0465338209c9da4bb9  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type.cc
! 0f7f46c296b784550931c6ef8c57dfd9  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
! ad3de0336e537cc695a236c0e95bad5c  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
! 0de20b1846553d2c3995fa6f6c9e521f  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
! 049fed64ce1c8f5d9ff648435e216815  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
! 9f7bb8f92b187144904f02008e80a83a  libstdc++-v3/testsuite/25_algorithms/move/69478.cc
! f5fc94ebb0b34e64aa140c5e4eb3b8a0  libstdc++-v3/testsuite/25_algorithms/move/93872.cc
! 9f5ebdb30f24dbdd0c946ebb1b7e6129  libstdc++-v3/testsuite/25_algorithms/move/94013.cc
! 1dfd72e535a53fb81b666db1dc059644  libstdc++-v3/testsuite/25_algorithms/move/95578.cc
  84aa86eee8e864094db55390b46b1e0a  libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
! 3afd8ede1460fbf1809e80b14ea1e2e3  libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
  c41fedc68e3cee79d652221a1c6b2c9a  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc
! 073a350cc195024c118b89dd72caedb7  libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc
! 83dac24ebd559ed8b967e9bd4a5cc0d0  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc
! c6084048e7f1604696c5c1477721430d  libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc
! 315cd2653188510342523367dfeab3cf  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
! 452921d417770dee474bcdb56772d6d2  libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc
! 924c44f92b10d1c7762375e68c8ff114  libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
! 55eb24ce8405eac3473c09997807e76d  libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc
! 30114e47be9d8f12c0319936e62331ca  libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
! 2d4aa437c8146196a51ce53127ac33bd  libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
  d798b4d62b339492aca582244b60767f  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/1.cc
! a85a5b7db4b3a1ed491263add620a84b  libstdc++-v3/testsuite/25_algorithms/move_backward/deque_iterators/2.cc
! d0ed02f2d14477a09fd5f4fa097e5bcf  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/2.cc
! 1900727156f04cd4b3ba04a7646d4683  libstdc++-v3/testsuite/25_algorithms/move_backward/requirements/explicit_instantiation/pod.cc
! 1fd28c98f3aa863b290e88d948569b41  libstdc++-v3/testsuite/25_algorithms/next_permutation/1.cc
! a59f06fde516ac44891389c0d075ca82  libstdc++-v3/testsuite/25_algorithms/next_permutation/check_type.cc
! 02a012f626f69196ad3794f82c5fd6ac  libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
! 4735a941045c3d6471a7b9ef3fda79f5  libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
! 58d9c7a7e11e36f065f6dab216dd0c83  libstdc++-v3/testsuite/25_algorithms/next_permutation/moveable.cc
! db969452b9bed30fd51fb199261e823a  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
! 0c2c9e4de7d89bbfec9307d3f3eb5a5b  libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/pod.cc
! c70c83d86c222d9b5424d86b73ad4d1a  libstdc++-v3/testsuite/25_algorithms/none_of/1.cc
! 12740f39ae24c725efc2230dfdd59755  libstdc++-v3/testsuite/25_algorithms/none_of/check_type.cc
! 599bf4a3fda33175451e65159fd0adc4  libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
! d9f5917ee2fb8e251ec5eec4626a0c16  libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
! deb1b08d88f1c6c5054cd7b4fd218dc5  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc
! a5a79f180b4337a8571f236f40d025ae  libstdc++-v3/testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc
! 7e3355279dcb44f8eba40fc3ac2c12ea  libstdc++-v3/testsuite/25_algorithms/nth_element/1.cc
! 4e845e6275f1e7e8b9ba9934465df0b5  libstdc++-v3/testsuite/25_algorithms/nth_element/2.cc
! 20cd9a0eb193dc299eb426b4aa5d7db4  libstdc++-v3/testsuite/25_algorithms/nth_element/3.cc
! c9cca60c3b7271767f988c128d68208a  libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
! a1e6968f813b90b1493f3e59ce415e13  libstdc++-v3/testsuite/25_algorithms/nth_element/check_type.cc
! c680eea626dce0e61b0b21c1b7990768  libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
! d805fee6284d0df262e6ce9ac5b21c5e  libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
! f552f028b3f643e3698d3a6a9a666cbf  libstdc++-v3/testsuite/25_algorithms/nth_element/moveable.cc
! 346bc2c152aa86bc43b426905d456855  libstdc++-v3/testsuite/25_algorithms/nth_element/random_test.cc
! 571bf533fbb7e6fa36808f52eaac3315  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
! 29665bccd0ad14e6b7af7e69a4400896  libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/pod.cc
! d9ac8f434e96241bdc0abe78d4b8e3cb  libstdc++-v3/testsuite/25_algorithms/partial_sort/1.cc
! 3d86116d5946b372bc2693fba4227fda  libstdc++-v3/testsuite/25_algorithms/partial_sort/2.cc
! 87e31c3142424d1535702a29b1ef6910  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_compare_by_value.cc
! 42e6dcde4b8957d5ec7f2d6da88dfa9f  libstdc++-v3/testsuite/25_algorithms/partial_sort/check_type.cc
! 1ea8eedd16caec395c7c94dea3d9b362  libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
! 292f5a2a394049740dbf089567e9432a  libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
! 91e836dbf3ccdf184963c77b2ca9f8d9  libstdc++-v3/testsuite/25_algorithms/partial_sort/moveable.cc
! ea205e632343c46ad72ab635cbcc8f30  libstdc++-v3/testsuite/25_algorithms/partial_sort/random_test.cc
! 7c0c5b8d1f29e58eb8aa41fcf83aa6ba  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
! 67d0938dfd48ce4d33e99dcd46bd1e3f  libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/pod.cc
! 6195717698922ac181b8e56864920572  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/1.cc
! 4eb105535187f4259d22ec26821651d0  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/2.cc
! 85821e92d8be40d7f73f27676da90a9b  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/check_type.cc
! dee0ad0abe505d662b0ecb2392a94dc7  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
! bd105ef851a069893fedfcd57db75b40  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
! ff027af694d38155c87c1a5fbbbb9cf8  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc
! b00103674dbdb8b722788a3227281f1d  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/random_test.cc
! 2980a46477252e8c8d1a8aa71686a8c1  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
! 22ab41b7c353f1f09a61137a7e882175  libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/pod.cc
! 23baecafd9623cc748316b6ad5732b2c  libstdc++-v3/testsuite/25_algorithms/partition/1.cc
! c391d65c63b7eb88f1f45fcf6a280af4  libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
! ef666ef6bd4e4e9e1d755ea2b153f2a7  libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
! 08f7c10dd6984bf6abb2ff369f816a36  libstdc++-v3/testsuite/25_algorithms/partition/moveable.cc
! d153af341d8b96789a54b8828c517755  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
! 15f8476833f0bab5058696f24cba4668  libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc
! f24194b0ff9b42bc24ee0dd6c19c8568  libstdc++-v3/testsuite/25_algorithms/partition_copy/1.cc
! 6769d2b176a4b4705abf0f72c051b66a  libstdc++-v3/testsuite/25_algorithms/partition_copy/check_type.cc
! effee56a5664ebe2ce1e0b465367e3d0  libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
! eb5a1063564b5f8c989c1a9fc1fda589  libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
! db3a30974e3043f00727b47e39099498  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc
! 7ec4b35d74be7b4d7692913f8bc6b63d  libstdc++-v3/testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc
! 827f9d7599fb0da0e2fa9c6f37cd0b8b  libstdc++-v3/testsuite/25_algorithms/partition_point/1.cc
! 0c9b17a3df3ad7da73a1ecb39549daaa  libstdc++-v3/testsuite/25_algorithms/partition_point/check_type.cc
! 2a6e9b065dfe310fdd82566d088aded4  libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
! 2d1d0ccbb181dbdbe52ce31a09194ba0  libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
! 16cd8f4711a74c504be1e4af37f3c550  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc
! 1148e1c55c4ef70ba022f72c5cd0b258  libstdc++-v3/testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc
! c2028f9a474922c7f78b9e3523afb31c  libstdc++-v3/testsuite/25_algorithms/pop_heap/57010.cc
! 8dab3fc7e01b23e3ee362dd9979bdaeb  libstdc++-v3/testsuite/25_algorithms/pop_heap/complexity.cc
! fed57479bd7f17c1e197c639192f56a5  libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
! 112d9f521daa7063c204194c40fdd6d2  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty2_neg.cc
! ab8169839e5d8f448c8259514bf15237  libstdc++-v3/testsuite/25_algorithms/pop_heap/empty_neg.cc
! b83eed51a216e16f48d64d562cef6881  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
! f0413f891a9bc1aff633d6e622fdd48e  libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/pod.cc
! 95674d889884ff798b1918ee4d531553  libstdc++-v3/testsuite/25_algorithms/prev_permutation/1.cc
! 3afb2c278476c4da3a4982c89420bd23  libstdc++-v3/testsuite/25_algorithms/prev_permutation/check_type.cc
! ff9110233bd01b697b2551b8bb548dcb  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
! 792f1eed9ca2e58239f601a20c8395cd  libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
! 0793b553926ac0d4c963fd0e5c030c32  libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc
! 9035b2d8b3f907ba2d92ea3c60bf09c5  libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
! 0fafdaa48475ee1b1c76833cab808d24  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
*************** ac8890df44a550f4ce2ae489e8713185  libstd
*** 138974,139719 ****
  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
--- 153240,154021 ----
  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
! 6676cbec5c90d7d15cf96835715b70ae  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc
! 379d84c7c503a3dc7945e1a67a6b6dad  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc
! 05de32fe0036eb7b157c7032a8714a1a  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc
! fc38f49ee0cef5b17f08885e7adda206  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc
! 4256d29adac876e35595480593d9807e  libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc
! ee09a8e6ce822f3fa2b9e416c7663ffb  libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc
! 75ca8d74f2ab06bb595bea2eaabec8cf  libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
! f0a339d5539d82c5e402c393e755aa19  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
! 566af1cbd853d30703b096cb421e5bd5  libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/pod.cc
! 79d125d373d04a71f80d598e6984e9f8  libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc
! f1864bb65fff57faf57db71b75fd9588  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
! f9900930f09430e9778aa23c29f9fe27  libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc
! ec94423ecff648e254de17c1df74e96a  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
! 632fdf7504bc535a88760f2d9ae3bc28  libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc
! 493c25e7ac7e50962312bc006f4d8cac  libstdc++-v3/testsuite/25_algorithms/remove/1.cc
! 3bb76d71e6bdf9e4266c4bc66f973267  libstdc++-v3/testsuite/25_algorithms/remove/check_type.cc
! 2e6bd93b2285523951f15cadd46cd670  libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
! e2fe006ed64bcf3594ecc894d3d55d06  libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
! 282146d31ef01f2e109d82777c0dfc20  libstdc++-v3/testsuite/25_algorithms/remove/moveable.cc
! 7076cab3400e61d7ae7e483586008100  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/2.cc
! d8ff32b3f5ff1c01a1f18104822889f5  libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
! 2d84e0703653077429e9573d23e04b68  libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
! 94594122c15da4a4c473c72fe8f5b6c7  libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
! bbaedb1632bb8b530dc3ef5a9768457a  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/2.cc
! 15084feea3ba8204fd063e94ff88c11b  libstdc++-v3/testsuite/25_algorithms/remove_copy/requirements/explicit_instantiation/pod.cc
! 5fb992cb7db1d44440bb4dc35ac5096e  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/check_type.cc
! df111de5c22c26e9ff3df2e6e26a8284  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
! 49c4af9e7bee31b378fd2a425a8a311c  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
! 743c98778c6a56bd1b8b01f89f00d036  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
! abefb397595a567986152af47ed98b8e  libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc
! fc55f9f10fcc52e68d421c963122d3b7  libstdc++-v3/testsuite/25_algorithms/remove_if/1.cc
! 22e4da064ddab0c392673bb1bf3caaed  libstdc++-v3/testsuite/25_algorithms/remove_if/120789.cc
! d5880a3d2cb5cd537ebcf435ea92ffbf  libstdc++-v3/testsuite/25_algorithms/remove_if/check_type.cc
! 321eed89e66e7b163fed27fc15afe488  libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
! c2878032e9fafeef1b75e89d28975953  libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
! 3edc8015758554efd87b7d931211b6e6  libstdc++-v3/testsuite/25_algorithms/remove_if/moveable.cc
! f5f228904cad6dff59c100132bf3e70c  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
! df7735635039a7420ee7466b3f921eac  libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc
! 25b6ddfafef448603fdcc377958dc2c1  libstdc++-v3/testsuite/25_algorithms/replace/1.cc
! 88eefd6b2b96956e6af4c1e21cc34914  libstdc++-v3/testsuite/25_algorithms/replace/check_type.cc
! 89a9967b71d63a5b8dc76aceadd2763a  libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
! 2d6f156b73fd80f1fc465311847ff5ee  libstdc++-v3/testsuite/25_algorithms/replace/lwg4444.cc
! d46bd764e8e678045c8c6a8f19825933  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/2.cc
! 6f13166d6a120a735192d3d3a1b1673b  libstdc++-v3/testsuite/25_algorithms/replace/requirements/explicit_instantiation/pod.cc
! 443a5eb09b60882cff1c4044f4f6b9da  libstdc++-v3/testsuite/25_algorithms/replace_copy/1.cc
! 6483a4e43eee1881b01caa7afc009786  libstdc++-v3/testsuite/25_algorithms/replace_copy/check_type.cc
! a57c600be80f2e6292bc08fdc6a7e161  libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
! ee341469390aa950c13bec2fdcd88e05  libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
! 1b1691947ab82b229eab095b7aa2b2f3  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/2.cc
! f8a643780242ab08dc85bfe9c692ec46  libstdc++-v3/testsuite/25_algorithms/replace_copy/requirements/explicit_instantiation/pod.cc
! db52c55a47600121c24bc618bd04ff17  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/1.cc
! 149347e26d26ceff9f81da4e9fdc147a  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/check_type.cc
! da76b567e16e23766063668bb929a300  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
! 00ac5c427b9d9b3a980c5d5c4fce222a  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
! c043dbfa13d9de3df4f0bcc9e26f51c5  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
! 910b2e2943e7dbfe82e31c020436dcb9  libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc
! 38658a67514f388345d2b4ca0643aaf3  libstdc++-v3/testsuite/25_algorithms/replace_if/1.cc
! 7617145525f45a530d13c2d3c156beea  libstdc++-v3/testsuite/25_algorithms/replace_if/check_type.cc
! 410ba4483d0a2ba1ede99561b5dc7f05  libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
! 8d75d305772b652cf215067adc8ee8a0  libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
! 6420c0e151f951fc68af98eff7ce1156  libstdc++-v3/testsuite/25_algorithms/replace_if/lwg4444.cc
! c216203903de168738ef427fd700a833  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
! b4d7df0e885e1342a6cf4c1e44b3a352  libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc
  01eb615b6b94d9d8808b71bb50d162b4  libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
! 7e767b7029470b00359d5e3d700aa32a  libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
! be12151d1aad5fa621bee8733fecf5a4  libstdc++-v3/testsuite/25_algorithms/reverse/moveable.cc
! 66e334bdeb13ebfabc9997df533d62ae  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/2.cc
! 5f5f9078640d73cff2533f9883cb2442  libstdc++-v3/testsuite/25_algorithms/reverse/requirements/explicit_instantiation/pod.cc
! de1da7e33ae5035e94444c13c47ef7a9  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
! 953df7db76ceef7ecfc241233de8063c  libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
! 99f1179c21e4c8d5deaabd4d4eff93d6  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/2.cc
! 77d2db2c447a9b497d6f2240ef312cda  libstdc++-v3/testsuite/25_algorithms/reverse_copy/explicit_instantiation/pod.cc
! 03cdb7f7763bc321a6f8a05ff7fc2fe1  libstdc++-v3/testsuite/25_algorithms/rotate/1.cc
! b46d4df946f2a410785d20a9f6c457e5  libstdc++-v3/testsuite/25_algorithms/rotate/121913.cc
! dc24ebd91543e1814072f86f3d4e765c  libstdc++-v3/testsuite/25_algorithms/rotate/90920.cc
! ef1f1700a4d56b0fe33eb228e748ed5a  libstdc++-v3/testsuite/25_algorithms/rotate/check_type.cc
  2dc282def9ae5ab490a0d65707d78625  libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
! 3ddf83f8f98cd3351be637397acc0317  libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
! f3887e7ca93b82176bf8f4610325a841  libstdc++-v3/testsuite/25_algorithms/rotate/dr488.cc
! a7f1585697d061531d68cac8295f80a6  libstdc++-v3/testsuite/25_algorithms/rotate/moveable.cc
! 72c00a16bbc603234e0be6ef92be4790  libstdc++-v3/testsuite/25_algorithms/rotate/moveable2.cc
! 9411a323a6342b2592a5eb10d3d99ecd  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/2.cc
! 412869439990f873df0c23177d04cd15  libstdc++-v3/testsuite/25_algorithms/rotate/requirements/explicit_instantiation/pod.cc
! 067de981a3037420c45f05d98e920ed5  libstdc++-v3/testsuite/25_algorithms/rotate/rotate.cc
! 2fd4fe8bb9a232627be8510837897a06  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
! 138a3ed8dbfb7243881bcd7159c39787  libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
! 87c001c326294949e0306cc2f0d85d1c  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
! c7ae41c1c97ad800d4309c931c92c930  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
! 4bf5f04c7bbf2d51b6aefaa2593985f3  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
! 6dd04c2f1fcb10e8b113d141c072fbd0  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
! f0ce00c494f09b5d9df5e1352ac7d735  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
! 05f00be046ac1aa94845e5e849a35872  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
! 1cd3a73f6e27e313a8e5a6895f96ba0f  libstdc++-v3/testsuite/25_algorithms/sample/c++20_iter.cc
! aae3c062d6b2afa18261d373125d5640  libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
! 08ef2b510ab54b82a7aeb74c44f39fcc  libstdc++-v3/testsuite/25_algorithms/search/1.cc
! fbbe55e617610439ec580469c9960b56  libstdc++-v3/testsuite/25_algorithms/search/78346.cc
! f5cc2de4cfa49fb58921956f737c3c9b  libstdc++-v3/testsuite/25_algorithms/search/check_type.cc
! 7fd4d65916d27a0bb68a600fc8610a23  libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
! 51f5eef4fb5a5d93319c66240f5f9432  libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
! 8a0c538e1409e2648f1c4f26d2584b85  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
! 811159d5712a6c3b2b6c4ef4188d7cfb  libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc
! ef3a64643cf9c2b8b4cf833c88af7582  libstdc++-v3/testsuite/25_algorithms/search/searcher.cc
! 2021bcf33ea08b476f1c389556b1d5c9  libstdc++-v3/testsuite/25_algorithms/search_n/11400.cc
! 118847fd61a0662afcaa74ae8671f994  libstdc++-v3/testsuite/25_algorithms/search_n/58358.cc
! 17f40f1ce047f283986d1889f0a23057  libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
! 2766ae632c8e01a44f7ee469d5055249  libstdc++-v3/testsuite/25_algorithms/search_n/c++20_iter.cc
! 979f1ba629fb4ae039487294f14040b3  libstdc++-v3/testsuite/25_algorithms/search_n/check_type.cc
! b1affcaaded87b2bf89dab49ed56a92d  libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
! e2f7d860046a4782703f33d70c40014f  libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
! d6830f2b09feb823b47a28c81fe6358a  libstdc++-v3/testsuite/25_algorithms/search_n/iterator.cc
! 5ff2eec518b70d7058fadfd2e77df606  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
! b1afc164cd573a28e7fa06832b9e2b64  libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc
! 4d7c14b749874a40dc7d722d54b5dfb5  libstdc++-v3/testsuite/25_algorithms/set_difference/1.cc
! e18e6b3171958b286fa2445e0c1fe660  libstdc++-v3/testsuite/25_algorithms/set_difference/35541.cc
! a6e8db31d87926780dc70de4bbb44e59  libstdc++-v3/testsuite/25_algorithms/set_difference/check_type.cc
! b3c1756a8913538088314669428868dd  libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
! 29000babeb2786a5fe2808bf90125fb3  libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
! b2a4d1a8ef2f98c185bed64a86dc4a8c  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
! 124482d867e5e107b4a5c0f2443c788d  libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/pod.cc
! ce6affd3058a144033ed2d3615956465  libstdc++-v3/testsuite/25_algorithms/set_intersection/1.cc
! ebb8d0e1a4780e226223ef3ed62f17a2  libstdc++-v3/testsuite/25_algorithms/set_intersection/34730.cc
! 0324bfccc85eea370f58d9076887988b  libstdc++-v3/testsuite/25_algorithms/set_intersection/check_type.cc
! 35778980c1eee989d7b318dd34119fa5  libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
! db3790516f5bd9a63b7ec503f9fa457b  libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
! b6420a8f06aefdcc35a8d9a2c14a0039  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
! a1d1f09ab2073e558c89adafbdc5177a  libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/pod.cc
! e9c1113c8f0e83357334ff8184a59529  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/1.cc
! 7b261c5f26e302c9f2c252bb54254419  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/check_type.cc
! 5b859c1a01907752c0ef78ae70dcf7fe  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
! 82f407601128662f16f115558969eea6  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
! 0221509e998085c435dd149d52520d33  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
! dee12e25443f307668213e7b649f05e4  libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/pod.cc
! c59365e3da78c7d71e5a731614c5c200  libstdc++-v3/testsuite/25_algorithms/set_union/1.cc
! 6dfe0ff4bbc9a1b9234582821a161074  libstdc++-v3/testsuite/25_algorithms/set_union/check_type.cc
! fe766f11706beaab7c854845abe66ac4  libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
! e34230992cbc175b5d5dd79d96b94491  libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
! 46d07e7ad682d0753be231aa2e2607a7  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
! 4d106cb7c996248dc943ce27505caade  libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/pod.cc
! f4508e9f1de6dafc3f2e503f335a6b2f  libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
! 7b03b96800dfea06e3205349c621021e  libstdc++-v3/testsuite/25_algorithms/shift_left/constrained.cc
! 8c92fddb51c647f44f4835062b6d3b03  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
! ac10b07de50840641fa4ce2ddac1aaa4  libstdc++-v3/testsuite/25_algorithms/shift_right/constrained.cc
! d460ef9b36009a60331e0580c2cf575a  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
! b861eef3b28b1368049dafc7ee66a249  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
! 914c77754dc8bc5fcff9aa7c686ccce2  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
! ea48c11ed22e4deee094041aa1e7844e  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
! a198b4f35295705446d45880ce998e07  libstdc++-v3/testsuite/25_algorithms/sort/1.cc
! 62282bfed1662d71cf26a6d7a32a6163  libstdc++-v3/testsuite/25_algorithms/sort/118209.cc
! 588ebcaaf8b4dd873bd1524d9c877277  libstdc++-v3/testsuite/25_algorithms/sort/34095.cc
! 9d8cb185266b8b525d13589e15971437  libstdc++-v3/testsuite/25_algorithms/sort/34636.cc
! 0342b367085ae0ed08031ca5a894db57  libstdc++-v3/testsuite/25_algorithms/sort/35588.cc
! 438c6622d2874359611a7e9b5db8ef29  libstdc++-v3/testsuite/25_algorithms/sort/78991.cc
! fa9fd47bf1e55935e6b18089c0db6c1c  libstdc++-v3/testsuite/25_algorithms/sort/check_compare_by_value.cc
! a5eb83d8a3f95f2c59a9dfc9c479e10f  libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
! 9c152c795beccddd465d20ed2d79368d  libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
! 8cf4ac1bc61eb328415ec423a5cc8ae1  libstdc++-v3/testsuite/25_algorithms/sort/moveable.cc
! 45117fadd60dbbcc56cff4cefd83dbc4  libstdc++-v3/testsuite/25_algorithms/sort/random_test.cc
! 4ac96c4dd96e50d81a2581ae698d441a  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
! a07745bc3daad10d22bb51a685e38ccf  libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/pod.cc
! 4c2a224d0d0799a0ccb5e357b8ab1bfb  libstdc++-v3/testsuite/25_algorithms/sort/vectorbool.cc
! 4fc06400852be08d251e6fdbe01bfc7a  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_compare_by_value.cc
! f60389be6df402fcd03e8c914dd36763  libstdc++-v3/testsuite/25_algorithms/sort_heap/check_proxy_brackets.cc
! b21c211f10d0ea580e46c7ad49849a39  libstdc++-v3/testsuite/25_algorithms/sort_heap/complexity.cc
! a981dd3f4793ad460e58d24511d956d8  libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
! 83c1b359ec1a642347f1b79af3397f9a  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
! adce97adbba2edca8216b1e377ad0783  libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/pod.cc
! 54c0517f52deac79f45a423abffd778e  libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc
  2b0dcaff18087a7dde97bf450fe08b34  libstdc++-v3/testsuite/25_algorithms/stable_partition/constexpr.cc
! dfa435f8aecfaecb463c32aa07e99646  libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
! 73750236d12a9bab953cabb4484efa7e  libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc
! d429d131ae11001270f47bdbb3c3059c  libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc
! 6f67f443fcbb75ce48e28c25f6cba1f7  libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc
! a49d5aebbe2a6329e4e2d8722500c565  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
! 0b4f2a983f2d6d2c752ea9d0e3f49eda  libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc
! ea63fdbe0d6d71c0b6528b5a01ef7d1b  libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc
! e1fd5af67bdd8ea34782038792789f84  libstdc++-v3/testsuite/25_algorithms/stable_sort/123180.cc
! 0163e0f22ff43977afd0f7b4bde7948a  libstdc++-v3/testsuite/25_algorithms/stable_sort/2.cc
! 949901d670f951aa79507cb4fdd0568b  libstdc++-v3/testsuite/25_algorithms/stable_sort/3.cc
  b3f58b622470c2e75b734eba5c7ee60a  libstdc++-v3/testsuite/25_algorithms/stable_sort/4.cc
! d045b6d4348c87fc0b6547d0b4b00ab9  libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
! fc68372988eaf65500491aa376852f01  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_compare_by_value.cc
! d29f5ec63ba0f49c25bfdc492e3fb36b  libstdc++-v3/testsuite/25_algorithms/stable_sort/check_type.cc
  09797652d5c2649f6e49be9c2d8e6af0  libstdc++-v3/testsuite/25_algorithms/stable_sort/constexpr.cc
! b1ab501d9c5de4fb589b3e59e75ea735  libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
! ad82748b8e1c55d579d5a2f2d2e93e88  libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc
! 91441e2aa6e30a3416f61331ee733d40  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable.cc
! 8574bb8ff35f1cd78297867a51d81f62  libstdc++-v3/testsuite/25_algorithms/stable_sort/moveable2.cc
  aed5b5a1bbd68cf60e20fcece3ee0863  libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc
! 65eb6243ed6800cc7e604de5e316cfbf  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
! 0f180bd744517182819c0b3c88f39453  libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/pod.cc
! ed6f6f508ec323519c9a830fd0d89140  libstdc++-v3/testsuite/25_algorithms/starts_with/1.cc
! 308cdcc48075a0d8c783d64588d9fc11  libstdc++-v3/testsuite/25_algorithms/swap/68877.cc
! c861a628f54cfa972106005450ecb1f6  libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
! c61dbf4499d2346e02ca4c5e3caa96d2  libstdc++-v3/testsuite/25_algorithms/swap/dr809.cc
! 34a7a9709a94015e9873a4fc172e33e1  libstdc++-v3/testsuite/25_algorithms/swap/noexcept.cc
! 4ffef817d639ec46f200c18028fe6ffc  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/2.cc
! b0f707f48cd79f3bb3e8c497d1e1c325  libstdc++-v3/testsuite/25_algorithms/swap/requirements/explicit_instantiation/pod.cc
! 04c2bd36fbc00e2abd9c9b91e51e4c10  libstdc++-v3/testsuite/25_algorithms/swap_ranges/1.cc
! 619e64de77a39a12e14784d5d44fe794  libstdc++-v3/testsuite/25_algorithms/swap_ranges/check_type.cc
! b4e250c1022dec8e6b09ca18debfcaaa  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
! 0f4cd8bfc81c23e40949da190fe8868a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
! beb829f4dfcef7a7c92a647d72ebd16f  libstdc++-v3/testsuite/25_algorithms/swap_ranges/moveable.cc
! 8799dcfb6251dd4f9e2855dfa121bce5  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/2.cc
! 3b5b6351eafb4ef4c83fb3be8298a57c  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/explicit_instantiation/pod.cc
  58f6adb71334ef10f577004ee1e4843a  libstdc++-v3/testsuite/25_algorithms/swap_ranges/requirements/version.cc
! 897d225e8123ff692d4b44695c8b8965  libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
! 86acd880247363f304421c8da3239b69  libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
! 3b5220e1ab4e4a8501830f6cfd58ba65  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
! 936ad74dce91b0b02a49e1eb5572ddaf  libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc
! 24f1605cb07caf83f2d7f077fbea06a3  libstdc++-v3/testsuite/25_algorithms/unique/1.cc
! 185efecb9ecaee096f41ec6602c51443  libstdc++-v3/testsuite/25_algorithms/unique/11480.cc
! 12ee07b6e724d84c83471a929de6054c  libstdc++-v3/testsuite/25_algorithms/unique/120789.cc
! 1de4768be21560fa7ae8a5efc12cba79  libstdc++-v3/testsuite/25_algorithms/unique/2.cc
! 1543638274c44777f1f4de7ab4be1509  libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
! 7546d194749ee860e63e5099970ac11a  libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
! 799ed0caf5aff0f65e2a2612ae801b02  libstdc++-v3/testsuite/25_algorithms/unique/moveable.cc
! 1443578915ae8e04b93f67e1e863d7ac  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
! d9fd2718cad20e215f35085d807b9089  libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/pod.cc
! 293e06f12f9668df74d10b4191077b1c  libstdc++-v3/testsuite/25_algorithms/unique_copy/1.cc
! af21e5ed22ae1277398751ff84914c01  libstdc++-v3/testsuite/25_algorithms/unique_copy/120384.cc
! fcdd6dda2623bc19e61cd61a3a1c6f7b  libstdc++-v3/testsuite/25_algorithms/unique_copy/2.cc
! cc3cf62b31d650ba8ca714a38b7d9eb3  libstdc++-v3/testsuite/25_algorithms/unique_copy/26133.cc
! 2d6687e01be5154ecae5563667e339d6  libstdc++-v3/testsuite/25_algorithms/unique_copy/c++20_iter.cc
! f594c0634ad1ff633ccfefe5a98f8e86  libstdc++-v3/testsuite/25_algorithms/unique_copy/check_type.cc
! 0ac6db4bacc506fa75cee285d2a342e6  libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
! 4422cee307e66edec95c86f92eb9fe79  libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
! 91cc68ce8cc7db1c1695fb98cc9cad50  libstdc++-v3/testsuite/25_algorithms/unique_copy/lwg2439.cc
! 2820597d3ff87502365c2064c9bb1c77  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
! d25780acec3d5e46e0e3e9bd219163f8  libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/pod.cc
! 559171f0c7e140f3d075adddf270659e  libstdc++-v3/testsuite/25_algorithms/upper_bound/1.cc
! 13c501b772d37b316f1f462d16146cba  libstdc++-v3/testsuite/25_algorithms/upper_bound/2.cc
! d53abaf8670c7fc9576fcfc683cf4649  libstdc++-v3/testsuite/25_algorithms/upper_bound/33613.cc
! 54b2c5a4174b61184a7e093b321ddf8e  libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc
! 50def4c6aaa1e2a08e2134994d0b07aa  libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
! 3acdac6cc8776c4f11407d1f891dfc9f  libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
! 8cb963dc1354c436029c88340f26e79f  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
! 0bcf5c891bff29cfcae087a23066ad9c  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
! 92dc51c06ab6ba2fef3d6f7c5b89354c  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
! 5488ac413f26e01d9913d74c16fd4f79  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc
! 04fad240014a61ded4c78ddeb7726b68  libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc
! eff5ea6fabe84f1e7fae506d4cf7dad1  libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
! 40909dbc47818f6ba5251add5247c2bd  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
! e32f45345b4314e72d996251530ffec3  libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/pod.cc
! 5ac148dcaa2ff4220883fe68d5a15536  libstdc++-v3/testsuite/26_numerics/accumulate/1.cc
! fb8f2b69bed6e77fab52e912699af0a0  libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
! a1e0fd5664a35c57bca16a5090771ad2  libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
! 370151d4872c4f902004def80fad8b66  libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
! 1eae3f6aacb19ceb99f40fcf6cd7d848  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/2.cc
! 483b7db336856aafe0927010ab4e850a  libstdc++-v3/testsuite/26_numerics/accumulate/requirements/explicit_instantiation/pod.cc
! 5304271d9b158dd587cc61bf3744f656  libstdc++-v3/testsuite/26_numerics/adjacent_difference/1.cc
! 2b468f2b2761db1c07122da0b2714abe  libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
! 4a7cb525a0d203937505d5f387ceb520  libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
! 649f1de1f3b911f573a8eab8e4e5cc18  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc
! 0b1606fb85b8f0d3c9ec4031370270a8  libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc
! 0507608dbb105603fd0f6bfdf4400509  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
! 85559f6cd5dd0eec0b29cf6fe9e49bdb  libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
  8837bf0bc456a0e99d2e723a8e9b7357  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
! bd64ac16f1e4c79ec8dff73b1b792a8e  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
! b0b3576e41adfbb0f050a23dd41d1729  libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
! b941894a3316c284e29e05591a23d7aa  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
! 9ef033ff00ac9c08295e680a98c95743  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
! 7d4212ce2cbf96a500f175550f0add8e  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
! bda61382f0b78ad0eb21247c8ebe82e2  libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
! 7561f204fd0e96ecb443da16a1796047  libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
! 69c8f5bd070a6c6e997c3ffaf0f8b907  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
! d3930b2f916b689dd6e6724025e614e8  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
! 87f18841c212617c9dbf14f6bd0ab6b7  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
! 27b961cb380812bfd50165dbd1e69304  libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
! 85161947acab3db81858371df90b1c77  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
! 857eb6ce2d4290ecf1c444aa7eb376ab  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
! 13c1d93134c79237f2b9b5484b28cbca  libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
! ddf7b713623e4080d0d4e5529707b7eb  libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
! 87b9f1768fd27328365f15b13c87c2ec  libstdc++-v3/testsuite/26_numerics/bit/header.cc
! 481c8ae40be987b68258f80f4955c1a7  libstdc++-v3/testsuite/26_numerics/complex/1.cc
! f48e84194ce00e258827e44795413ad8  libstdc++-v3/testsuite/26_numerics/complex/13450.cc
! 5aa818ec386757faccb5d813e4ec599b  libstdc++-v3/testsuite/26_numerics/complex/2.cc
! f567463fae0fa1980adccf0f3a6585b3  libstdc++-v3/testsuite/26_numerics/complex/50880.cc
! c6b1e8460444250deae9b574f897f16d  libstdc++-v3/testsuite/26_numerics/complex/51083.cc
! 4c757c582e98d56995d21c32dca65280  libstdc++-v3/testsuite/26_numerics/complex/56111.cc
  af7877b96aa74cdfc7f025c671e3d6c2  libstdc++-v3/testsuite/26_numerics/complex/abi_tag.cc
! deae3fcb9067fa368f805228f716392a  libstdc++-v3/testsuite/26_numerics/complex/buggy_complex.cc
! 6dc9134766f62a443b0f5f6a950d5226  libstdc++-v3/testsuite/26_numerics/complex/c99.cc
! 273a88a56de6efca75c7fdbde349ef94  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/constexpr.cc
! a542f9b6c5106ddcaf5b388f8d482b1c  libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
! c401e95e6cfe8172e0a1c623db80384e  libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
! f24f7c2853a07d33fc8ec3d8f71f05d0  libstdc++-v3/testsuite/26_numerics/complex/cons/48760_c++0x.cc
! 74534c21bfa9948c03bca11dc6fdc6aa  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
! 6ec9c843b71f40c53b9ba3547a8dd5e7  libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr_primary.cc
! a2ce89152d0f9fe300c1820db8094e4d  libstdc++-v3/testsuite/26_numerics/complex/dr387_2.cc
! b6e7d76107211cbcb29a9dd2f409e29b  libstdc++-v3/testsuite/26_numerics/complex/dr781.cc
! 43b50de37f1ef426110cd7711e60ae05  libstdc++-v3/testsuite/26_numerics/complex/dr844.cc
! 0d285406a99611147059b78a9119d790  libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
! 732b33954c7fa9fbdd5414d3100dcce0  libstdc++-v3/testsuite/26_numerics/complex/fabs_neg.cc
! 3b04728b73f0cb5499695fad2647de92  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/1.cc
! bd6c83927433c55d86aa5dc600373072  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc
! 74369588eaf5924eb26b083a6fe23873  libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/wchar_t/1.cc
! c1a54303b2e89858f1e6ac6c7d6abcf5  libstdc++-v3/testsuite/26_numerics/complex/literals/types.cc
! 6567bcb516af91c3ffc39a2e0f7f356c  libstdc++-v3/testsuite/26_numerics/complex/literals/values.cc
! 4653081aacc9f1bea3b6a76cbb9673ba  libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
  906619ecf0877a7ff5302dd409c34714  libstdc++-v3/testsuite/26_numerics/complex/pow.cc
! 211bd710cb1322d1dc8159be82d62c09  libstdc++-v3/testsuite/26_numerics/complex/proj.cc
! 515d34deae437041c5b145cb97098a9e  libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
! 94d2f0e83be1c5ccf61529e8981f5be6  libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
  db7d79fa6c0acee091931a053080039e  libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc
! af6924094ccfb18caf0fe9ecc8b6caf7  libstdc++-v3/testsuite/26_numerics/complex/value_operations/1.cc
! cb78cdff1864e5b205781b7b9a5b5556  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr.cc
! b843bde6f67714daf86c2289954d146d  libstdc++-v3/testsuite/26_numerics/complex/value_operations/constexpr2.cc
! 165678c68eb964b7b21faf04fb7acdaf  libstdc++-v3/testsuite/26_numerics/complex/value_operations/dr387.cc
! 73bc4e33e8b97ef85bf3ea151097de4a  libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
! 337cad6009bb31323b000454430c4bd7  libstdc++-v3/testsuite/26_numerics/complex/value_operations/pr88341.cc
! a3f2698c78abbdd54cc3e8a71a90d3f9  libstdc++-v3/testsuite/26_numerics/endian/1.cc
! 67483663d860bd543d9b95fedd135645  libstdc++-v3/testsuite/26_numerics/endian/2.cc
! f3463fb6645c9759114b98f5d315d7ea  libstdc++-v3/testsuite/26_numerics/endian/3.cc
! f8a133249c1ab2a09af3b5f8b488beb4  libstdc++-v3/testsuite/26_numerics/endian/4.cc
! 906446a117da9363c21d1b87b8fbc031  libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
  dad3be405305f6b99125a0379a0d3209  libstdc++-v3/testsuite/26_numerics/exclusive_scan/2.cc
! 67191ea61e1f89df0836f69df4ee5176  libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
! dd93de0cdaa6a0d4629cc222e6913616  libstdc++-v3/testsuite/26_numerics/gcd/1.cc
  c0592f39e604ea2889d72927c929cbdb  libstdc++-v3/testsuite/26_numerics/gcd/105844.cc
! fcf7303fe72f1f76cf8d1ea1d12cfa94  libstdc++-v3/testsuite/26_numerics/gcd/2.cc
! 388e28cd52c6673a5b04651fe8b4b1a2  libstdc++-v3/testsuite/26_numerics/gcd/92978.cc
! b417f43c264f6c2cce93a69dbadfe6bb  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
! 85ef0862352ff417cc955ffb8bfbc02c  libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc
! d6e19176faf437b28c7ec692204b4790  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
! 08c4a6df27974d45485db3ac9e57b8a1  libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
! 3fdbbd77648ae7bcb1580ac677153566  libstdc++-v3/testsuite/26_numerics/headers/cmath/14608.cc
! d55a9eb77f2f106cab4241d2687d49f9  libstdc++-v3/testsuite/26_numerics/headers/cmath/19322.cc
! df0865f9200c7be6a48282b17cb5b42c  libstdc++-v3/testsuite/26_numerics/headers/cmath/25913.cc
! d8ce8d23ce41379569d8d101390c6f45  libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc
! c261226f1b51b841aefd4c507c0c13fb  libstdc++-v3/testsuite/26_numerics/headers/cmath/48891.cc
! 72e53d228db05e9265e404bbcfee7faf  libstdc++-v3/testsuite/26_numerics/headers/cmath/51083.cc
! d09df6a874ecae778e7895f5be0f077a  libstdc++-v3/testsuite/26_numerics/headers/cmath/53503.cc
! 4e0818968bbbece320789a205c573acb  libstdc++-v3/testsuite/26_numerics/headers/cmath/60401.cc
! 70d185f3470225c512b7113ce7d9fe0e  libstdc++-v3/testsuite/26_numerics/headers/cmath/60637.cc
! 14963ebc8d951f65da8460f735c2b4f7  libstdc++-v3/testsuite/26_numerics/headers/cmath/82644.cc
! 38b72d8edc9c20212f162543f3d8d704  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++11.cc
! 6bf06529b99d85bda1331dddd5d52835  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
! 75158ff0884eb6365841425a4e3df1c2  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++98.cc
! 84f6f46df821125004c997cbb4238b6f  libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
! 823573050ae5373c842e919301247b8f  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math.cc
! d779cc11b27436cdf0f37f476e63db3d  libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc
! 3635b7e53e520b299d92f6ae60b55e90  libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
! e83d37c59b353975ccf813fb015e7a63  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192.cc
! 1c398afd853355066319a7bedc6e4fb4  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr2192_neg.cc
! 769a420c025d67a530d6921df922249a  libstdc++-v3/testsuite/26_numerics/headers/cmath/dr550.cc
! 70d454ab5d84e70d317d6210db026a95  libstdc++-v3/testsuite/26_numerics/headers/cmath/equivalent_functions.cc
! b17ac3e9e480d30390ba9ba008803dff  libstdc++-v3/testsuite/26_numerics/headers/cmath/fabs_inline.cc
! 6f350c7590e829b0fc496ddf651b55c4  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global.cc
! 5fda409f30d1271b683a3956f67de484  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc
! d784f2f1bfaf4adb27f8e541852b0b32  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc
! ce44be64f7ec1e0b09e4a338f874876e  libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
! 38acf69753f7fa131fe21e99185fe5ca  libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc
! 82dbe375ef6796da58a2623be87b7287  libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc
! 7c26c9c10b86b8107800e103e18461ca  libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
! 7c615ca2d2b3c2f3442ae554de00a113  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc
! ba98780ac9dc9e197635381e5cedf2c2  libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc
! 8deffd1b23fd3fc2b828308c27cb8ee6  libstdc++-v3/testsuite/26_numerics/headers/cmath/powi.cc
! 52317e028c44f9b1b52d1b6d33239f1d  libstdc++-v3/testsuite/26_numerics/headers/cmath/specfun_c++17.cc
! 0fd3347bfdd2ecdd54f4a2149f7b3f69  libstdc++-v3/testsuite/26_numerics/headers/cmath/special_functions_global.cc
! 67693b05d2ed9c4481dc73e45577b954  libstdc++-v3/testsuite/26_numerics/headers/cmath/types_std_c++0x.cc
! 202c7663c461ba1098b7dc5fc9b10e8f  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.cc
! f1e997c8dfacc69e94276d3d9f0c9b87  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.cc
! 861ddd3a93ca17f1c1dbeab9d78c605a  libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.cc
! 117a30aab611307bb9c72d797275d2c0  libstdc++-v3/testsuite/26_numerics/headers/complex/synopsis.cc
! a9d4851d25e09a24e2fe0ddce48f13ad  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc
! cc31f261a1fedb6def4e875d4d1aaafb  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc
! 0309bf015b0f3093a7342c5ccef980b4  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/54686.cc
! 2e45a18091a4dbba8cd1fa7b4a427905  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc
! caf0644e0d7699c6a133d99ad8a45677  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/abs128.cc
! a0640c9491207661e9c54ecfdb45eae3  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc
! c7a401a9056f1fd4d5afee146d6efa77  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc
! 55be815e745e3b00b63fe535b3d2378f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc
! a7b29093d4426b9bc948c652307d243c  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc
! ffd21b860f6209b8cca7a36c1a2e0e02  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc
! 9823ed6d1069b9bad042e0128227612f  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc
! 7a50d1b7eb104d7e6e3e28bdd9255e26  libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc
! 71c37c4295d3d5dde5d44d69f6ac9226  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.cc
  aa74bb9dd3090424d8460a09de5f0419  libstdc++-v3/testsuite/26_numerics/headers/ctgmath/complex.h.cc
! 70e65a853d4f7536182f3e6213b9a73d  libstdc++-v3/testsuite/26_numerics/headers/numeric/numeric_parallel_mode.cc
! f43bf1f17e3678e49c3947881e6b5436  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric.cc
! 79f3d0744dafd29b2a28307e0490cd6f  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed1.cc
! 38da4553d0b3c7d03b16154fe6774688  libstdc++-v3/testsuite/26_numerics/headers/numeric/parallel_numeric_mixed2.cc
! 120e496661376f1171455cde5769fb9f  libstdc++-v3/testsuite/26_numerics/headers/numeric/synopsis.cc
! 36bbfef0000eb65c460e42222f0a456b  libstdc++-v3/testsuite/26_numerics/headers/random/std_c++0x_neg.cc
! 32cf820dd449cdc7424a2d15cbac383b  libstdc++-v3/testsuite/26_numerics/headers/random/types_std_c++0x.cc
! 45f157f8d9cc3eda37a925a22aff4818  libstdc++-v3/testsuite/26_numerics/headers/valarray/synopsis.cc
! 3be5d9982c31af05fe5a2c1c30a1d00b  libstdc++-v3/testsuite/26_numerics/headers/valarray/types_std.cc
! 71840cc3ba77fb38ec00a50080f89f32  libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
! 3a9d6079bde3a49fdde7c896da374bdc  libstdc++-v3/testsuite/26_numerics/inclusive_scan/c++20_iter.cc
! 013d6715d99314a85a695ac58f8002cf  libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
! ffe08e05fca7e7ad21e0eea47750bbde  libstdc++-v3/testsuite/26_numerics/inner_product/1.cc
! f59fb46c3958c352efa6423a84778b21  libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
! 13f4a945191da59a5b554bc2d533e69e  libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
! 4ff391be46e1fdc79065ff72ca26e8db  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/2.cc
! 50d2c68d34a9baccc3964d7366af4de8  libstdc++-v3/testsuite/26_numerics/inner_product/requirements/explicit_instantiation/pod.cc
! 1124dae4ef932e56b8904fa0a992b725  libstdc++-v3/testsuite/26_numerics/iota/1.cc
  fd7a1db1ae5f90be874b250f5212d66c  libstdc++-v3/testsuite/26_numerics/iota/2.cc
! c90fa5bea39d71202c996de139187f18  libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
! 9a02d0a161e522ce57748304112b99d0  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc
! 48e6ff2e71729f1bdc26812293572bf7  libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc
! 4744705fd9086a3ebdfc7775bbe0cd99  libstdc++-v3/testsuite/26_numerics/lcm/1.cc
  06e27c5d0bebfd86a30f02761b07fd55  libstdc++-v3/testsuite/26_numerics/lcm/105844.cc
! f080998e861b9b94448c0126f4d31b6a  libstdc++-v3/testsuite/26_numerics/lcm/92978.cc
! 475566a224300e2a805204be7b09186b  libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc
! 2ad55475405c82435d50a59f3c70fb13  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
! 5bfc7a60a97b8a87710b1c339cbd3416  libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
! d8a7e236765ad4db00268e768021049c  libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
! effc169f7454478b2efd4849a308cb0d  libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
! 479cc035b418515eaa4776d7f4df06f0  libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
  b42ff7d986cab9b160a370e20de27fd0  libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
! 751472a20936f25e31a56601bbb305bf  libstdc++-v3/testsuite/26_numerics/numbers/1.cc
! b6adb6317e9a74e290c5bd2a6b7d43ba  libstdc++-v3/testsuite/26_numerics/numbers/2.cc
! e4f1230cc9861cc6e1b4a6d6fa22d225  libstdc++-v3/testsuite/26_numerics/numbers/3.cc
! d31e244659117a93cda90a00e042014a  libstdc++-v3/testsuite/26_numerics/numbers/4.cc
! df86f783d2e31df49304c52995b8c943  libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
! 117eba7a39f3c1c47f7a85324bacc5c9  libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
! e8a75266933de342b8d09c959ddc0228  libstdc++-v3/testsuite/26_numerics/partial_sum/1.cc
! 083f375fa8d0fc6db4c4b2550f2fc0c7  libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
! 868ed8e76e588cc582a6d756b095efb9  libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
! b8e9f4ede55dfbc52807e587f6b14e9f  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc
! 333e45a5a4e4ebbc0c0837b1a421675d  libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc
! 034bcd1acf32b6a92e4cb86398c96eec  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/108236.cc
  c77f5444168b58d256585ece5f094189  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc
+ 07eecdd6435db1d054345dc88e7a5951  libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/move_only.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
! bc1dfe365f14329f9a1a19006b4b961d  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc
! 6ee451ca3495449ee31ae994d2c95ae6  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc
! 2b42cb014bba0296e75f0e05fbc14b38  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc
! 558bf23e16461663e53f8c6225cdbe14  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/inequal.cc
! 513ad4d0c0651bd62598f1d191f4de0c  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/serialize.cc
! 25cc50ec48d4be3548dc85911408560a  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc
! 39bd6aea4c38a781ee9ba3ee3f9ee218  libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/requirements/typedefs.cc
  2fc6c487a03711c1e879e86c61969626  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/114359.cc
! 70dd60d96ee7d86219afbe220fe66e98  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/default.cc
! 25a8b4ca3de6841f553ca9ac5299ee27  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/cons/parms.cc
! 2895e00f792afc902018277b7c43cb4d  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/equal.cc
! 6f2ed350ab95dd9d807612eb2bedd1b5  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/inequal.cc
! f0a97a895c94466713d0b868942ef030  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/serialize.cc
! b75a0a519c250aa3661ed15524d8ee62  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
! 7dd75fb1c62172d3a56ad9a17dd53907  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values2.cc
! 262adfa0e5a0270e9ce18bdaefae8d9e  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values3.cc
! e1beb4c6c361710e13841d1a89a4410a  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values4.cc
! 775381762961b5ab890cdf321472b217  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values5.cc
! e27cc61bd997218431f895d67ebebad2  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/explicit_instantiation/1.cc
! b1d305950a6816b988c94435609e3111  libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/requirements/typedefs.cc
! 2e49b92f61cf5346579cc14db3ccd6b4  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/default.cc
! 667afa2090fc42510aec28c41b87fe6b  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc
! 7f5c298d2a74f9bb14e6fda87e43c6e7  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/equal.cc
! 82311c49b5ab00c9fa46d8cd6d2d5e0a  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/inequal.cc
! cff8aee3da38717eb8e120a3d522c9cb  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/operators/serialize.cc
! ae8dfd23a74ff5db1f5802da6c06836d  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/explicit_instantiation/1.cc
! dfef547c835faf9fc17691122ccedc17  libstdc++-v3/testsuite/26_numerics/random/cauchy_distribution/requirements/typedefs.cc
! 64eaaca6c1bc6b5ba9e861cff394bef1  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/83833.cc
! f1bb48a6855f64a3c98bbedb08ef7035  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc
! e12674f9f303cab378b1b9088f56d5eb  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc
! 679764150afe3a10b8755ce97942f8e2  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/equal.cc
! 75cec7d5b23be39baa88a2f1dd7b3b73  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/inequal.cc
! cabe82e2fde3a20efe6a8697f5dde05f  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/operators/serialize.cc
! de4d7dbadfc6c238507af647835b48c7  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/explicit_instantiation/1.cc
! aa64011eb6ede48ac5be2724d682e57d  libstdc++-v3/testsuite/26_numerics/random/chi_squared_distribution/requirements/typedefs.cc
! fae03761ebd12283a9fd025a2b37ca66  libstdc++-v3/testsuite/26_numerics/random/concept.cc
! 72903276c32a004c52c2a0b629dc3bba  libstdc++-v3/testsuite/26_numerics/random/default_random_engine.cc
! 2e130d401d92b624b40aa19393b905cb  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/55215.cc
! 487d5edb64b565cde2acfe2bd4865ab5  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc
! 3bb90c163b3e6c8b64efb8fdb55594e1  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc
! 8bac9c5f25586c8fe316b1c44dc61153  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/copy.cc
! 266175f94282e256a9ab4165012e09b6  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/default.cc
! 524a51efc807c5a77fdb412b935febe5  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc
! 178b85f063553d572556f2bf3deee474  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc
! eb445a6504b6f1c12df38359ecb2c951  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc
! c17c02e40068748220a90fcc83aa97a4  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc
! c1df003793869676c57e929108f0d535  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/equal.cc
! 8fb110f0ab15c7f90102afcc60d859bf  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/inequal.cc
! 0251b3e0b6ed15dc5f194735d2e41925  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/operators/serialize.cc
! 3e72a3d25288daced666205819bcbeb9  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
! 0f4c4bbc274f6bcb6dcae7ee7f3728c8  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
! ea8554bc45b89a4c1a341381c04788b0  libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/typedefs.cc
! 0ed30ecb5b8e76bdbab2e4e9858c0f7e  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/default.cc
! 21af360e8225a96ec8e9aedf8ce2b7f6  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/initlist.cc
! 8b7bd1f580ab2b0eb3798e5c609701fc  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/num_xbound_fun.cc
! d67066ae03c1e54d66211a17b751f593  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/cons/range.cc
! 8214e3049fdcd928e8dc0a7a80b6e269  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/call-default.cc
! 47a0ad813039a3e8fd0ca9f261e7e42e  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/equal.cc
! fda07ad8ffa200d598dc0fd73a829f6b  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/inequal.cc
! 0b46f9f290cddd03ca4c75ff68eed845  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/serialize.cc
! ccab8612040d827510b9e95365b660f2  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/operators/values.cc
! f05741913ca9faaea1367a2101ae8a5f  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/explicit_instantiation/1.cc
! 9820a1963d37dcbc5a316eaa800d140d  libstdc++-v3/testsuite/26_numerics/random/discrete_distribution/requirements/typedefs.cc
! 9911a2d8dc2351742916b1b3b7381829  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/default.cc
! b2eb7050dae0cabdd2e21147497a9967  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/cons/parms.cc
! b2a6b658672d50474b43ea1f2c221c16  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/equal.cc
! 01fa78ce33faefb3ec6f338014d8f555  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/inequal.cc
! 97ccf603b68e54b054c256eea602a3c6  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/operators/serialize.cc
! f26f27471f4c22b0f2e277f44931d54d  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/explicit_instantiation/1.cc
! 95cd789b605329e7eaf1b077cd4f0300  libstdc++-v3/testsuite/26_numerics/random/exponential_distribution/requirements/typedefs.cc
! d54495ea50aa74e1a261e03889cc63bb  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc
! 6a0e22f005089029a24f9d8444aa90ee  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/cons/parms.cc
! f5a5a8266ad7e3698944ee0d83fdd36b  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/equal.cc
! 1fa3b653baf33ff5cd006bdb003f2ddf  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/inequal.cc
! c79f8ee4f16311437f7d09042fd54536  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/operators/serialize.cc
! 40a656eb1bde0cfad90306c110091559  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/explicit_instantiation/1.cc
! 1bf04947cd8c7da65295302ecc797c1b  libstdc++-v3/testsuite/26_numerics/random/extreme_value_distribution/requirements/typedefs.cc
! feb0c9c5e31d005a67300a2c1c3b22e0  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc
! 51fee6a136d25c0b4563bdd37403bc55  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc
! fc41d9a2d733ae4c00866049a57159f4  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/equal.cc
! 04983f3683f639cbb696c90bc4aaef48  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/inequal.cc
! 70c89a7d93b078c7a8417c6d49278bbf  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/operators/serialize.cc
! 43de699516cfd8464626c9cb04f462ef  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/explicit_instantiation/1.cc
! 74cee92dd3ec7e17f320ce996f5d74af  libstdc++-v3/testsuite/26_numerics/random/fisher_f_distribution/requirements/typedefs.cc
! 727bf7cf370c4a476c41bf5b3037e023  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/default.cc
! 72609c1898f84e5b93ea533fb8659660  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/cons/parms.cc
! b28e136bc8f5a0e4139b53310af41508  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/equal.cc
! e09e3fe06f74fe18b28ce7f8dc0fe13a  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/inequal.cc
! fc834030a320acc03668571e2cda9018  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/operators/serialize.cc
! 2fab29e33d6eac511162a347e58e8e92  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/explicit_instantiation/1.cc
! 0ce65a7290a32c2888e25d8ac4bb559c  libstdc++-v3/testsuite/26_numerics/random/gamma_distribution/requirements/typedefs.cc
! 7d5e49f8224c63fa98beced9e5e91ab0  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/default.cc
! 097c5e1f41d2a375a53bb22cdfde3f1b  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/cons/parms.cc
! 1f96e4b841577d0f2441e199dc4d5f84  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/equal.cc
! 57666c24b57de6ddf2db6c93bace7684  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/inequal.cc
! 98df904f1617a540753a81b328a0af13  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/serialize.cc
! 7f2310ed07b3ed8cc74a9885f796cff3  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/operators/values.cc
! 8af129980c5db4c0fcb63d9dcfc9e7ee  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/explicit_instantiation/1.cc
! 228f8054872b8f5db9ff2c49444445e6  libstdc++-v3/testsuite/26_numerics/random/geometric_distribution/requirements/typedefs.cc
! 19efa2d59157a77db819a72dea4b5d6e  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc
! c1045fd873fe181f6e904b97e6a22fca  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc
! 86141190a95cf82a78575d11e63cb7fb  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_move.cc
! 694b9a4788c660678d71f1dc75032c9e  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/copy.cc
! a2285eb0adf8243caeb5579e07ed7f05  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/default.cc
! 94feeb2e30bdac6edd619cc383ee5f5e  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed1.cc
! 76801cc0cbd991f70ab967795e31a3d4  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed2.cc
! 3e8750e24f8551ead1674095baa6e514  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq.cc
! e94c83bdf811e2c3b73e056a73f4c45f  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc
! afc96f3abc8c07be44c916b33992d87a  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/equal.cc
! 494bb99e861bb1de94e6ba47d3d53b08  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/inequal.cc
! 307d5ad8a862c1682a6d88018557ed5b  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/operators/serialize.cc
! a98227bc1853fd74fe78dea784341b30  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
! 7759e1bd9fd9da6069369495a4be3560  libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/typedefs.cc
! d708ba1fae084cf41c8b4a0ba0e45e04  libstdc++-v3/testsuite/26_numerics/random/knuth_b.cc
  45b91bf0319782738db89dd5c35f9b4e  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/87744.cc
! dc4662bd9ac53f59ab4295c91e17cd0d  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/55215.cc
! 7aa4d916e0b1005522a30a983479f6cc  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/copy.cc
! 4aa2d4ac5d17939607f4145188afd827  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/default.cc
! 5ca8d9d4646b01f1ecd53ce2a37135ab  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed1.cc
! 09f746376ce3ebe30265e45f782c72b6  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed2.cc
! 6988c1187c79060481fd4a6d408b4ce2  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq.cc
! 11b86026b581e6211437b12a9c3d31bc  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc
! 2b6dd9557271ac112cfe2a90cb9c7ec4  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/51795.cc
! 2d010fa9959af4daf00f247d6b4192df  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc
! 3320b3a772c6191fb6121ff3ffe34b3a  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/equal.cc
! 1258154839cbe329a5272e3dadfddf78  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/inequal.cc
! 8e6cbd4dcc5b5b3b5b04bdb18ca32386  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/operators/serialize.cc
! 762f68f65506613a757a7835136279d5  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constants.cc
! d42b34739976c86feb7f6c231a783698  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
! 4ee1ca6b60de775250fc073c4ec096a5  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
! cf654afb111c26252ebcd8368445e317  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
! a0ab831a7f224efc6fad65310fccf144  libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/typedefs.cc
! 0ce750b3c188536918b6bc4b5183bb48  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/default.cc
! 4a9a93a0951d758a4012475432d523cd  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc
! 4fe7f4012caaa43f3fbb183e51872518  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/equal.cc
! 34fa66b17f71a3c06dbd1e19db1b718b  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/inequal.cc
! 14d4922dc518b05872f680ed89190acd  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/operators/serialize.cc
! 9e326527681e26ec773a65c701bfda52  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/explicit_instantiation/1.cc
! 5490922f3674cc49b3800fc6ab6c657c  libstdc++-v3/testsuite/26_numerics/random/lognormal_distribution/requirements/typedefs.cc
! d211223ed3fd70963a51350be0cffa7c  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc
! ea4638f8824076151c159f28dbfcc7fd  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/copy.cc
! f8f925fa80d173efdced3a0b05c79d5d  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/default.cc
! 4fd11bb37ebdfedb67c4ac08c350caec  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed1.cc
! 6c649799671694cb8bd81ee20c24d178  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed2.cc
! d55a32ccc9c1c2a457a144d57f0f36e3  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq.cc
! 1339c68438067795659db8c290daa64f  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc
! 63d79886a75b3ea7898db92750e1ef7b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/equal.cc
! bea369375102a7c316c5d1c2dba9a8fe  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/inequal.cc
! 35d05b13a8101f45f63bf48c8c5fdf2b  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/operators/serialize.cc
! 75692cacaea72f210a3868f569410123  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constants.cc
! 6feb27044c488a3c9cd5d9e550ea7ab1  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
! 3d1c4518bff8e33d6cfef596585e319c  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
! 6bcf134d1453098b6671d48d89128b66  libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/typedefs.cc
! 7093b6d0c782e2214b3eb95dc68d1b11  libstdc++-v3/testsuite/26_numerics/random/minstd_rand.cc
! ba9c3a25a8f6226da035574c74b9f338  libstdc++-v3/testsuite/26_numerics/random/minstd_rand0.cc
! 91a33f95f28a1cf9964d245e608b458e  libstdc++-v3/testsuite/26_numerics/random/mt19937.cc
! c8aa25cf5a19915ceaf03fb407b1a5f1  libstdc++-v3/testsuite/26_numerics/random/mt19937_64.cc
! 6cb8fec273384144844f474043e4dbbd  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc
! 21f282684be92490d74464f54631becc  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/cons/parms.cc
! c7a3ff910fd0845874c10090e36f9430  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc
! 73a9dca1c2d9871cb4e5b3ad89946069  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/equal.cc
! a685877b3f43ea3c5697d351ffd6b89c  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/inequal.cc
! 6255b7951270f304c314bd8d76384fc6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/serialize.cc
! 956671641bfa865bac1ab71ba0948bd6  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc
! 007bd92138df64c2067f21190d81c2f3  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/explicit_instantiation/1.cc
! d4c9c3bd913cea798619c6bc8ad9b6cb  libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/requirements/typedefs.cc
! 7415d3f9518a8ecededd9a783279c74d  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/default.cc
! ef867ac7850c9c39f8cd50a02147cd36  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc
! 6d84a34ad5dee6f153648b259f2d5612  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc
! fd05827e3df12d4a085fa76606640ca7  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc
! 3ec88ccd1495bcad86862c91d18190a6  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc
! bcd6b1697ace00f86bb9d1240b696590  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc
! 55f99ce74baff22e8abf6ee511e7f659  libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc
! 77afeda865ca994856a85f8fd0744e04  libstdc++-v3/testsuite/26_numerics/random/philox4x32.cc
! 92f89089efad8b3f23591fe1ae7a7995  libstdc++-v3/testsuite/26_numerics/random/philox4x64.cc
! 39e746c95583b73ae0083ac8e10a847b  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/copy.cc
! c9f93ce5f5c9e82470077e6577ea1ff0  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/default.cc
! bbc0ac3db492f2094eb97d21360e9970  libstdc++-v3/testsuite/26_numerics/random/philox_engine/cons/seed.cc
! 3d55d6ba1c63a4b17da30e2635b48780  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc
! 6fed4d0d5264e18ca91096cef0cb2c50  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/equal.cc
! aa00adf50c193a2b13b2ebf5aa1f5858  libstdc++-v3/testsuite/26_numerics/random/philox_engine/operators/serialize.cc
! a8b98cfabb68398f2afafff0416479c1  libstdc++-v3/testsuite/26_numerics/random/philox_engine/requirements/constants.cc
! cbc4cea209f5ae35db8b0c6b8629a43e  libstdc++-v3/testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc
! f1f4ab0ed3810cd825bd204d0dbc49b9  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
! 03444d296f763a2acb0e7d98052b30ce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
! dd4a3cc0b7def8feaffc206507a96921  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
! d17dab8ffd2e842c2cb77f91319b2114  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
! f6c2b36fecacfa2276753fc24e4144f1  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
! ef5f5d1b895894921233f9e3cfa90cce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
! cdbf0d0142e6cc9bb51bf7ecc1445b0b  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
! 541635bb5d05f2f0c7bd21ebdc094207  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! f2c872e24f8164354f8bff8c6c3af918  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
! 36f30b4c9fae68677fb2d6a08e58a181  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
! c6b9a866c77dbfde316664357479e98d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc
! 598855ac4b0d3c6499262fb43a1e0769  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
! a9be44f1a462d60ab4b9a8b878519b0e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
! f9cddab3073895c5a21c9a804f241c29  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
! 69b21ed0916209ad639baed4b1b6787a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
! c0eaaac68e38d63aa1bbee1838a3f166  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
! 9e23ce0cfe6be702a574ad1cbc36eea7  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
! b4ef50df6dea01750543f8888be44431  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
! e7dd5d5ad979d1eaa1f9786411d95b9a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! c5f129a93ca3c75a086bc82e6374b986  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
! e0947c62fa030b9b28e9e931ce6992e0  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
! 54d93e8fe86b8cf61a01b7d129cfdd3f  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
! 8fef0b7f3d1d9c9fda0d1dd61ef21f24  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/parms.cc
! 45fd8ae8d86462bf113b834d39fec6f2  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/equal.cc
! 287fbfd35420f58b97df45549491478c  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/inequal.cc
! 8755c0ccc130571db5fb6ee4e6d182b2  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/serialize.cc
! ed9b60c4502ffe1b7c6f3ac0e32504da  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc
! 52e9d4966a53526b8d4a1317a292abcf  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc
! 786cd00848f5cd79c1c572359460169d  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc
! 47f96d5bdb7b4e74b2a11497ee349836  libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc
! 84736b99325801c78622fa10418a7ff1  libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc
! dc49bd8fb923c3e41a5456f25202c90a  libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc
! 574509af85b03bc6c8881c6885de8361  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc
! d76b7f6df613330e354ff93daa2e2d71  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc
! 93e7e4b69a4c075e17a3af8981438986  libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc
  f1798bce6b9cd34abe402fa50903386f  libstdc++-v3/testsuite/26_numerics/random/random_device/entropy.cc
! 2bdfb24c81427935380ec0b5b7d56a08  libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc
! c5d78bce9dc93e62ff302d4816cde111  libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc
! ce06e997708232f80d1177f89726129e  libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc
! ca6e35279642e363882b4800045c8f09  libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc
! d94c505dc210fefc02ec6364b4604d42  libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc
! 9eddbf482e68ca85ca32c021fb1e46f9  libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc
! bc4d839b7c7bffc89666a3a8f189f485  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc
! f6f4059032b53b1ef6250b7e75018aa8  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc
! 88996334c3e6c5c781176c861039e294  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc
! c4816a6b0252e7605ab5afa2b2de3044  libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc
! 3496f36acf1e992fd5c44d5109a506d2  libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc
! 50079405f82dd2a43a9ec19d799eb93c  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc
! 833145fa535effd0286db51dd122df6d  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc
! 06d917b5a4408bdfb39fe4d21b11f5cc  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_move.cc
! 3fdf1abebad71ba831f8d3d55117bf08  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/copy.cc
! 683921af2972221ccb82e2292c68f810  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/default.cc
! 7f31df9910e1102905d178716917ae57  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed1.cc
! df2b953014b3e42f8f39ee9c1a019277  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed2.cc
! 538f4905cb41c0487d993ff128ac539c  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq.cc
! 0ecbaf76cc0edb2370addd543d862395  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc
! 44cd4d856b2618e44697a9a49fd9970e  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/equal.cc
! fdc09e5b2dbd16ae873b21e12e432361  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/inequal.cc
! 9608371f5d36ee85d4f3cd8a7bb64bfa  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/operators/serialize.cc
! 297344ed2b012ed74e52d23fcd8bce23  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constants.cc
! 22e4bfbec26bd4c285775b01c39e19ef  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
! e0b64a1e2e42f7fc4aa8f95a874c4bf6  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
! de820d336474b3fbab004f9b10d74d74  libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/typedefs.cc
! 712d528a6463a901840eeb989635731e  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/default.cc
! c978f5ec6bbafd848681e12003ff1b96  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/cons/parms.cc
! 7e5ff657a7d3f61a57ee41085651311c  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/equal.cc
! fd04fd6a57a3dd1367674cd54b20b3ed  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/inequal.cc
! 904363d553dec26dbe2d4447403e7680  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/operators/serialize.cc
! 8f8292e529683bed1577c28a4a192e4c  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/explicit_instantiation/1.cc
! aaad7538e91f61fb180361c67f5e6c07  libstdc++-v3/testsuite/26_numerics/random/student_t_distribution/requirements/typedefs.cc
! 6dcee2451a8b97d707acf140623b27a8  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/55215.cc
! 5830962e23767c1094e3aca57935629e  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/copy.cc
! 4e6c4d76fe4a6ec4b0c8b13c1f1e27be  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
! c7b9ff9ccf031e4febce2a95c8f62d58  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed1.cc
! cf4f59415ea92ac449502a604c0f3403  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed2.cc
! a0328f4c67f21afb94d4871e72c96383  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq.cc
! 6fc79550d2b7e08a9975372673da865c  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc
! dbf3ec33c6cfc183fd406f2307ba9b67  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/equal.cc
! 5186bd8c5fc932d71fa06eb82c901d5f  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/inequal.cc
! 38294fd1058c97c98daadafa5b051752  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/operators/serialize.cc
! db40e8fb640677d6809b4b642d113ef7  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constants.cc
! 810c78f4ffad540f39f888c75e7a75c1  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
! 20e513bdd17785c6c976bad93c6a1205  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
! 5befc52208d834adcb09cc3d710fe729  libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/typedefs.cc
! cf7eba5b920f081274604b0469a0dc28  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc
! 98ba9eae7a53126788483f27edb4c548  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc
! 6c40eb0b1bf558f14ba0aedbd4612bb6  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/equal.cc
! 2c692ffca0266591eeaac5ae549b0a81  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/inequal.cc
! 1d6fb71971e5e9f3d7366ba84aa7f6a3  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/serialize.cc
! 3b3c712195d9cedad03a72227f23f803  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc
! bf3b0b114ea3efdbd4365c99cdd7742b  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/explicit_instantiation/1.cc
! 8a3b0368ac3b69846e01aaf3145acf0a  libstdc++-v3/testsuite/26_numerics/random/uniform_int_distribution/requirements/typedefs.cc
! 2dd4b5a5a7d0379b075b96055d60d90f  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc
! 16e9828686b07c695b1fcdf17b2fa2e0  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc
! efcb84be5a12aa91b3606ed0a050de2f  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
! ba065f15aed902b5215a94e08fdd6eaa  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/equal.cc
! 36040d6e7b200470ea5db1dac58fa3fc  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc
! 316869129064e3da75b4d3639c05a9ff  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon_eng.cc
! 5a4f033756610029c09db4bcce859646  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/inequal.cc
! 47a1c582eeebb3f94b058bb87f680102  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/operators/serialize.cc
! 05056e2e83ea550ed009a5e0b86b6894  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/explicit_instantiation/1.cc
! 797e2da6d4e39dd8bf25993a2f0ed6d2  libstdc++-v3/testsuite/26_numerics/random/uniform_real_distribution/requirements/typedefs.cc
! 754c9af5eb2b6915a294ab7e6574783e  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/default.cc
! 58af7f5234b56ec534e0f12ae88ed81b  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/cons/parms.cc
! fd2bbad8386b60640d11f9765557b766  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/equal.cc
! 5e4dc152c2cfbea8d0bb9d8ce685479d  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/inequal.cc
! bcdbd10eae1acecf9d51b6a180f71972  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/operators/serialize.cc
! 66990a86679da946f28a6599fe46b6c2  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/explicit_instantiation/1.cc
! 61af0b4f766c7517e5de9d3827a9a500  libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc
! d214cfd58746b0c0961894f60fc00f7a  libstdc++-v3/testsuite/26_numerics/reduce/1.cc
! 19e700ab5c151a76025b2bb1a1c0974b  libstdc++-v3/testsuite/26_numerics/reduce/2.cc
  51f14806bbec80c2d5883800a91dfc2e  libstdc++-v3/testsuite/26_numerics/reduce/95833.cc
! eda070d99e28d817fe6f1af952145a2a  libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
! 4605f0dd04bb867f801bfba5d34eea94  libstdc++-v3/testsuite/26_numerics/saturation/add.cc
! b5a7434f60ff49d42373231e6cf8dbbb  libstdc++-v3/testsuite/26_numerics/saturation/cast.cc
! 9403476ee38900e677566ad40c3b658d  libstdc++-v3/testsuite/26_numerics/saturation/div.cc
! cdd0c3a2d2d050b6169cae3036695d51  libstdc++-v3/testsuite/26_numerics/saturation/extended.cc
! 100d57bd757f268cc87a62f655c2de8b  libstdc++-v3/testsuite/26_numerics/saturation/mul.cc
! d3b36b91df9f0d7db711130cfc26965f  libstdc++-v3/testsuite/26_numerics/saturation/sub.cc
! 50f033ebce403d4759d720b26c50ef3f  libstdc++-v3/testsuite/26_numerics/saturation/version.cc
! 54ff09f13d835bd8e58900529a56f66a  libstdc++-v3/testsuite/26_numerics/slice/1.cc
! 9bbe4c50adc0b2ae93745e5178bd2be4  libstdc++-v3/testsuite/26_numerics/slice/compare.cc
! 4e2a2c362c4f00faa882fe0cd295ee8e  libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc
! 0611e8bac54de5b8f9879e48408ea912  libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc
! 6b80ad00efd9eb0fa1937e70f46e1475  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
! b6ec8fc1e4f9a548f94a64092b9efc78  libstdc++-v3/testsuite/26_numerics/stdckdint/extended.cc
! e3f86024a2007c443fdbcf736738faf2  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
! f6ed04996816c0379e2042ea236f936f  libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
! 2e4556f3f32726d99783a5d4f8f3d844  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
! ac8e83b82d0b63e16633dc9de39271b1  libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
! 8a7c2e029a91937ff88afef6ff2ba612  libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
! f0253000c2c1c536b4600cfe649e8bdc  libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
  525e5798867d708e7cc13551760f93c8  libstdc++-v3/testsuite/26_numerics/valarray/103022.cc
! 0a2f8038a6a96aba34c3e42154fc61ce  libstdc++-v3/testsuite/26_numerics/valarray/108951.cc
! 2c0d927c1a088b5008ed378f7b56d27a  libstdc++-v3/testsuite/26_numerics/valarray/27867.cc
! d4e5891eaae3f46d769b6d8ab567a6e1  libstdc++-v3/testsuite/26_numerics/valarray/28277.cc
! f7a22856dd891fb929137d27a983cd75  libstdc++-v3/testsuite/26_numerics/valarray/30416.cc
! 8eea7ea82e7ce9b29dc9b557ea78c07d  libstdc++-v3/testsuite/26_numerics/valarray/33084.cc
! 930f1b380b294425200cf84356f043df  libstdc++-v3/testsuite/26_numerics/valarray/40691.cc
! f1081baa93d69d155a3049bfc7e4d825  libstdc++-v3/testsuite/26_numerics/valarray/69116.cc
! 74b2417d01507bf6fc0bfe5cc413699a  libstdc++-v3/testsuite/26_numerics/valarray/83860.cc
! cb33a63f5083974a998ef2eba8af804f  libstdc++-v3/testsuite/26_numerics/valarray/87641.cc
! c6b970b7eae36108562954e008d34078  libstdc++-v3/testsuite/26_numerics/valarray/95592.cc
  660f003ff214d812c5b64389a98e24fa  libstdc++-v3/testsuite/26_numerics/valarray/99117.cc
! 2a93065b81908735bbbcfed98e718876  libstdc++-v3/testsuite/26_numerics/valarray/algo.cc
  3e191d68e11822f58de5e4bd15365ca5  libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc
! 09bb28c56e095c98f371d452a1ff1479  libstdc++-v3/testsuite/26_numerics/valarray/const_bracket.cc
! b1c110a215312cb909945c5a617c102d  libstdc++-v3/testsuite/26_numerics/valarray/deduction.cc
! 293cc7f1c91021516b5366d77a812a23  libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc
! 6717ebad0a6646048320e0502e4e3860  libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc
! dc77a816cd147f47b9887897e0e39222  libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc
! 5f67329c8944f8eedb62054ef53dc9ad  libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc
! 71e1d77c6fbeb220e15d4c9658afd3db  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
*** 139723,141651 ****
  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
  9b500ed50c013cdbd0290f1d06786f83  libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.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
! a5016633d435a0151778486da6a6bb36  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
--- 154025,155991 ----
  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
! 13404d0c01ea908d050b6147804633be  libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc
! f8a3ece135ffb34c9bb3ed4881b65fb9  libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc
! a52596c2f4c5076c6574d0ddc1397033  libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc
! 4bbebed52a6ae9fc40eaf3b0b0281c34  libstdc++-v3/testsuite/26_numerics/valarray/operators.cc
! 26f7156df4c3c246167419138ee3a831  libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc
! d530db67147a690d5d38b7e4644c2189  libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc
! c8108dd3ed10641a6c1f6c44722f8109  libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc
! e3f9b4adcdc87e58f6c367d48ecdcb93  libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc
! 3953b777693e352f27d1c03cbd2f6e26  libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc
! 1a254859bf2518449a53f4774c654337  libstdc++-v3/testsuite/26_numerics/valarray/swap.cc
! f134b77366b13ea9b227d072863daefd  libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc
! 47f5bb95ec0d956f52e4d03d054c9b90  libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc
! 9f8c13805b3330f4fb1566a490536a66  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc
! 7f9301bdf0fe8d24c20043c2000be0c8  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc
! 61530259491ce454005edf67f834335c  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc
! 82bbd11be3685a695d34e8f7adfd0688  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-3.cc
! 5de351f6c8200bbdf3139356799dffaa  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-4.cc
! fe9f7414df452a85c1714b55f4fdbbc4  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/2.cc
! 14e7a6879bec58c6084e5cc128bb4ce0  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/3.cc
! b59a0213fc87f1ac541911c3381ceceb  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4.cc
! 71f3f0f1f766b52955eca1bee20ffea8  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/4879.cc
! 7fd797bc7fe78b2208d5e6a33fcc2813  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/5.cc
! 6399467fe252eeaf08a1126de8bd2f17  libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/9964.cc
! 7ec5613bb5a049ed1711e7bb4f54ae2f  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc
! 868b86848ea74759131fe3ad80b0c8bb  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc
! fa87d020c2e507ec478d8dffaccb73e4  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc
! 2d02af00260dd758a145e343da65c61a  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc
! 7b486901849ba4d8f4b66b545a78496e  libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc
! aff593ff7fd55e3e3a6bf08f1b1be528  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc
! 1962e2b8cf8264ee1aaf51f788a1ea95  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc
! 6c27de522496e802e5c5b88843a600b4  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc
! 0dd84a7cb19e1f81d0f0b3d9a037ea78  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/1.cc
! ec5d75963b5b73fbbd55e0117e13a525  libstdc++-v3/testsuite/27_io/basic_filebuf/cons/wchar_t/10132-1.cc
! d9755eea743282be8d578f97eab2b34d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/12206.cc
! 65afda2e3618012ac5876f26d4e7a40a  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/1.cc
! e478c3ab987e73238921370483cfd7ff  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13007.cc
! 321d3ffbf158475d45d7630fd097b6b4  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc
! a2c2dbad92374ed5052cd50738917016  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc
! cc59f9a95afa46759ec5d8724d31b6ce  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc
! 8d38760bd83eac7c9c8dbb4cc4fb329c  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc
! ad560757657f271f4371208ea385af81  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc
! a56eb9d98671142aef88596c070f304b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/2.cc
! 98ed32c292f19afe886da629a8094677  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/3.cc
! 6b7a4a361dfdf2e0e4ccc58c6c12ec82  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/char/9322.cc
! 7772f51de72d625acfb216db95f5a649  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/1.cc
! 07e94f6ef1abf0fcef3bab68f4e4ae40  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc
! 8d2319b9b859206a47f549af3a19b20b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc
! b1ca4c63460446382740d9c9a0506a08  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc
! b6e172ece645cad6f6fbf460dcb97beb  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc
! 38f153b9bc82772b2240ad9b7949cfb0  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc
! ae24e1799cabd2322960b2348e657b9c  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc
! ac9c7111d402879a91255f61947c223b  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc
! 73c85361f6aa038aaf71bba334f6c17c  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/3.cc
! eae3dab3e97ce715f7bd3898b111846d  libstdc++-v3/testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc
! dd26690592a681bedebd67b0bea6fd08  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/1.cc
! b9bb75af7aed85a83fd8b5725de90138  libstdc++-v3/testsuite/27_io/basic_filebuf/in_avail/char/9701-3.cc
! 9607353ecc8e89edfa2a65c29c47b725  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
! 13c4c43018f8df88fb26b16a3b315348  libstdc++-v3/testsuite/27_io/basic_filebuf/open/12790-1.cc
! 1a5f16221fe22ebe974773b319b61095  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/1.cc
! 947dc004b1a406bedab5450e75fb1182  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/2.cc
! 6ee353f207d59d3387d4ff98814a6aa5  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/3.cc
! 6593c090c7383b77d9136fd5a29c0142  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/4.cc
! ed09689fa98188117d5f04b7a08620d2  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/5.cc
! 3ba8acb93060b14d5bffe1f2b59840ab  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/9507.cc
! 8b79272d3766e4b685ba96b90019926f  libstdc++-v3/testsuite/27_io/basic_filebuf/open/char/path.cc
! 89664852cca11b873e8a36595dbdd165  libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
! 74195381c6d605667e25b766c7b0a099  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/1.cc
! 3fea62a32df032c3126e91031282f9b1  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/13858.cc
! 45682751f939b0b59e86e2da2cde72e9  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2-unbuf.cc
! 0a65d53844993c3d9e977b66ed1e15d3  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/2.cc
! 5ddf2c4d9e2ce66cc8a09af607337d73  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/3599.cc
! 2b2b31c050e40f65b481e415db7a954c  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9169.cc
! 135357230f5acf7506852a7e65430f1e  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9182-2.cc
! d685fdff4c55383f2b17122141f935ee  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/char/9988.cc
! 49c5a196ace2b86efff21bff34edac7f  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc
! 1237314866479de3bf9218260a2b2557  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc
! d01dfb3018b91fe2881e1252d982ab14  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc
! 8fae0063f8a888724f90a4fd8fdc4979  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc
! 5921d88c87303380746f2a92f0c9ea0c  libstdc++-v3/testsuite/27_io/basic_filebuf/overflow/wchar_t/13858.cc
! 7f5e3f5d3fe14303fec829493050545e  libstdc++-v3/testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc
! 629c6a1d286335604b43787c6ef3aeb3  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/base_classes.cc
! 37a38f3bb5e72f5e7f241d268c64a76c  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/explicit_instantiation.cc
! 11dcefccdb3ba5475362c87a24fc4de8  libstdc++-v3/testsuite/27_io/basic_filebuf/requirements/typedefs.cc
! 269626fcca05d90a608f7b0681d5005a  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc
! f886774e7d6fe98367c48ac25acce64f  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc
! 9abd83caf8d1c22863a0a425900380f6  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc
! 1d2d4b67fa8a1dc28c9b543c255e62cf  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc
! e645ccb7b14affa08801233d599ae30d  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc
! cfbf8e12a0b9dc0c83b91223fc212c0f  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc
! acc2dce4fd81949f2319a1149f3d8a8c  libstdc++-v3/testsuite/27_io/basic_filebuf/sbumpc/char/9825.cc
! fe9ac4fcf38b0126a9032a1683364f1a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/10132-2.cc
! c2b03205a5cbc0305facf8874ded9e94  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-1.cc
! 48c294e9130a38385081008a8b2dabe8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-2.cc
! bd3621506363fd17ab80696e27aa71b6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-3.cc
! 9855a5be3b783b7452bced83296e7f62  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/12790-4.cc
! 0ff9257e34ae9a7d4b836f5a6658d3a3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/45628-2.cc
! 9b433b37e5ae7132fbef086ed7d8684f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc
! 3bb151b0be533a7164dc85f25842780c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
! ba5c6614d14ae390374141f2b364a233  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc
! 3825fcc78dd2f45e3248bb2641d4d846  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc
! 847823287df4a98c30ae38e3faddc24b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12232.cc
! 040a266fc04025276835cc9b3a114fb0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-1.cc
! 7dfbd382f942a8261ac5fb4bf3b6a8d9  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-2.cc
! 08faf3565bf151e832eb6dfca1b10a84  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-3.cc
! ab53192ce5579772b1aa07d2b28f12e4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/12790-4.cc
! e5ad3155205f97c83c6fdd195161490d  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc
! 89f35143aad60b3f91ad2503d065992f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
! ca2393b72263826aeb9fedf337e50d3b  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc
! b4e8454f88dad8abec68bf5758d4cb9e  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/26777.cc
! e99ed70721d6490695f19376c7ad9ad3  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc
! 1b3f572fbdfd510ede6e49263673dbc5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc
! 2866c4d6a445f63ab2779c08c6e3801f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/3-out.cc
! 2146f4cd1dff24f5e8756e991a93d776  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/4.cc
! c1b4971bc312de7bc273b108b73b70ac  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
! 78324f4757611117238e2b30f99092c6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc
! 8d5c59b900ceaeb310eafe82016c877f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc
! cd221a03e9024f0a09dfc97dff363a19  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc
! cd4cbbe53770cb00de65f7b1a96ace65  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc
! 48912090ccb02d13197557bd6a4ecd30  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc
! 960e69204a99bde8ff6cc57cd8614dae  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc
! a0d0e979ecefaa2c8c085585d4cb1786  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc
! 75e6c714cfcd22a519f7d13fd9b0ae21  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/3.cc
! 6e577b3d84c1f0a70c608d72537095cb  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
! d63057d6c7ba1cc6043a896af76e40eb  libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
! 62b7c21c52a55d6229f9587ccd713677  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/10132-3.cc
! 0d71d74b3da6aa3e52b7aef35566d40f  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-1.cc
! 7c4bd868d6e0ae97991eb96e8f6c3ee5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-2.cc
! c7c757ab7ae6673609c1b446e15429d0  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/12790-3.cc
! 39aa16cc4834bbbfc16c8be6b3a916e6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc
! ed350ea69dd580588798667c2da8b57a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
! aee7613e15699837e218723c4aee24d8  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc
! c9479ee0519e0347b52ce0a48a509570  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-1.cc
! 769286f2bbbfc8b96a789b5f035d2b41  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-2.cc
! a2fdcd19ef82972e6a351bc3786b7774  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-3.cc
! 75290f3a3d0a14c6faa63245433bf514  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/12790-4.cc
! 12b59464caf0ac1926723a2549aa2ab4  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc
! f2c4337094ca9fd7203fd11110fd46e5  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
! b46b19caccc5be030310834d32708765  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc
! 597902c23516a3eea404db15b8daeb73  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc
! c985157d6bfaa0af6c482082611ecd2c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc
! a82046cb68c55873372930bba8699a52  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/3-out.cc
! 0ba121ef87f29c4e1b54c6fbc6619311  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/1.cc
! 3f629e7f7663923e8d8505f9df86f848  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc
! 0098ce78e58be4c6499bd9236a253f1a  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc
! 29f6d4ea9ff708b6e81d27af335651ea  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-3.cc
! 0800cb4ddab0d8d3200cb3ee08fb12d1  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc
! b04874431ec182fc0a2bf74540f89d9c  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
! 956bff7851aa7bb8cfd755921a11ccc6  libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc
! 6c478c4de41061a2be2bd9ff103bb0b2  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/1.cc
! 1ff0616d4ec43ebb58b403f7f434d994  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-1.cc
! 8509c0600b9169ffa0b4dee718da0e57  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/12875-2.cc
! c1d200ffca5cb0e3b71052df32bf6c1d  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/2.cc
! 4a24c7e17185ac240a431e509a697215  libstdc++-v3/testsuite/27_io/basic_filebuf/setbuf/char/3.cc
! d3e313377d3c17af2e1b8f2bf35fc824  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc
! d795c203f0396eb50674bcff4ac512a8  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc
! 3e3dcc82d44730eed738637cc05feb52  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc
! bbbde7800ca8b90dc71de9ba893204ee  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc
! 607a68890d2c2f8589ade5748efe4807  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc
! ea05fce11a8ecc65e5200b0af3c13d4b  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc
! f23e0ba463a4f2efc89761f593f852e3  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
! 807d0b316c4ef0e7d7f2b29d4eef0870  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
! 945b0b803459e79b696a42e2e427033b  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc
! f50ffb7bf70fb7b5a5c749dc34da0117  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
! 466eabdf6b336d40a02ae8544465a02f  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
! 5f461e540f8920f569b5a7518d8dec5e  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc
! 56bec7383d5cc6140709e6465aa4108e  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/3.cc
! 3ccf7abbb0d55fcbdc380b143483230b  libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/81395.cc
! 69c5e8458e990b12551746edd3151630  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-1.cc
! 41685d8ac442ca5f89aa0ce5b5953c73  libstdc++-v3/testsuite/27_io/basic_filebuf/showmanyc/char/9533-2.cc
! f2951f7a43634874c57ffc9f1c82d858  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-in.cc
! 260beddc1094034adfa18cdc6b2a885c  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-io.cc
! 8acbf3a41ff958ad0c83d8779fb55135  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/1-out.cc
! 78e720335d6cd7d8c0359f9e0f125b7d  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-in.cc
! c4f19644c330aae7b02e23f4cbb502d1  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-io.cc
! 19dfc12513fd32ba850ff8ac5d208036  libstdc++-v3/testsuite/27_io/basic_filebuf/snextc/char/2-out.cc
! 7a002bd3628b0b151b7209fbe7c8172d  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc
! 8c76de64e330d9467d7299bcf339a026  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc
! ba055550144ab08bd6208d852b15f540  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc
! 311c5ba94e11b29a4e359b3d33a75061  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc
! 31a2d5211fde4307d7d65ff15e9caa52  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc
! 0d7546c2f9929a7faf95286091c67cab  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc
! c596b38193148cfb9f57f984df23b75d  libstdc++-v3/testsuite/27_io/basic_filebuf/sputbackc/char/9425.cc
! 0594bb72f9ae083286d0d36932d2fb9c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-in.cc
! 29ed13955551e12446ce28dbae1af4bf  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-io.cc
! 266092b84d71ed52b7461dff60707a40  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1-out.cc
! 62633c5e595d5ab4d4cde7e41eb91368  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/1057.cc
! 46eeb0be93a7d9314e69c191ff60b27c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-in.cc
! 7c262061fc4f3e9c8f09a5d69a4a7e4e  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-io.cc
! f9d0378fcc4b7de74881dede5cf0d256  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/2-out.cc
! f7518b1947bef9e83936566e793463fe  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/59427.cc
! ed0621cd537f4c0e10f1f524380a70d7  libstdc++-v3/testsuite/27_io/basic_filebuf/sputc/char/9701-2.cc
! 34735ac975a330e577e56d057228ef1a  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-in.cc
! 5a99959c1d83b53e07cd8a60beb63fc5  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-io.cc
! 24b14d242ef99be5b7609313e5e49019  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1-out.cc
! 69b8d90cf5a6c4248623eb9cebfdccec  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/1057.cc
! 8b811802a0c529aa9a24efa3c018b62c  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-in.cc
! a3a49ba829a1e759a02896ec1a9939ee  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-io.cc
! a53e90865e73ec393e48f0389d1438cd  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/2-out.cc
! 4fe6625f31ef9944989273d560af1897  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/59427.cc
  73d4eb67443415996209b1af2dbebbc1  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/63746.cc
! 4180d798f16d332432e751b358e9e01b  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9339.cc
! ddfa7d1dc806af9fdef6b5770325b49f  libstdc++-v3/testsuite/27_io/basic_filebuf/sputn/char/9701-1.cc
! fb74690d8c7f73c81d1b9bebecc91b4d  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc
! 0782f18f9422b73f79d3c475ff566fc3  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc
! 2d3be4f61dff39cf57532f05991d594d  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc
! f70520a96c520b83f8077f9d3ef70280  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc
! a5a46aef9c8d0baaa7e466a10acbdef2  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc
! e45c00887dab8626b9a8464c39b1e86a  libstdc++-v3/testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc
! 6cbc394d86d84a15568fbb9e24da69cd  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/1057.cc
! 74ad75ddc6a4857c63e5e7e985fbcdff  libstdc++-v3/testsuite/27_io/basic_filebuf/sync/char/9182-1.cc
! a5ebc37f552bf69aa773739ed49d51de  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/10096.cc
! 9b76b9bb0685749d320bd8fc10380ee9  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc
! 2c1c0f6c05f3e4168cd4213ed16d2c1d  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/10097.cc
! 8d737bb99d953be6cd32cee28753dae0  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/2.cc
! 084c7d822b4cbde5b2656884ec80dd6b  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/3.cc
! 526c10c7190b3be1a2ac79c6a889837f  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/45841.cc
! 31da31f75fe5849b67e44191c423c5dd  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/9027.cc
! ec334876d5cf7bf54814d7d33b533798  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc
! bc80579922e5cc71a8b5400bced4dfbf  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc
! 8caa161118807d9fa83479695e0b0ae9  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc
! d53880dd793159d5fe82c433527951cd  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc
! 10932136ad1c63d70a791b282a9c39c2  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc
! 3a43576c3f2bc743b5e664506ab9c2e7  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-1.cc
! 3121b2ffdbc04d3fb146ba70b0394442  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11544-2.cc
! ad518112b78494b74b27d145ad79e597  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
! 32da276a332ea1c670b6e0a36d51e187  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc
! 32878ecdfd1e96da7373132682496bb7  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc
! 50d4135d697e6f857aa3bbf8aad882e9  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc
! f3860846b101daf91d2f8cf02489bd1a  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/45841.cc
! 4c650421679559d9102257c9af5647c3  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc
! 709c9fc3311180e6936988510602dd73  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc
! a5b1f08641df174d88957fa52af54d89  libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc
! 524f19d04f14df0e6d0fffe26c836531  libstdc++-v3/testsuite/27_io/basic_fstream/53984.cc
! b5085fdcf3191fadaa8f5fa1e47c41bb  libstdc++-v3/testsuite/27_io/basic_fstream/assign/1.cc
! 97a93f5c3763b82ecdb15a47a38cae08  libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
! 0bd9cd68d3ff5ca4a69fa48ee5d13ab4  libstdc++-v3/testsuite/27_io/basic_fstream/cons/base.cc
! 22686576e58d9157a8e6f4e2c29c33b1  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/1.cc
! ec03f97606299a2bbf1824a8996c2518  libstdc++-v3/testsuite/27_io/basic_fstream/cons/char/path.cc
! 6c909471ca0159f0ccf03805d598eb1b  libstdc++-v3/testsuite/27_io/basic_fstream/cons/move.cc
! 7ff534a73c511a8f3e10e1cfe639f925  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
! cb1914d24681748e846bc3701be5f169  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
! c0906bd480a384619c4d006906b3a5a5  libstdc++-v3/testsuite/27_io/basic_fstream/open/char/path.cc
! d94e07f9cb97e586803236c3c3ff51a3  libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
! 4318af9cec327a619e3055fdda9a9ec9  libstdc++-v3/testsuite/27_io/basic_fstream/rdbuf/char/2832.cc
! 4adb485352f033df1b5c0b1ac1f013e8  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/base_classes.cc
! 1d4b6cc295bbddf74ddcd09f201e302b  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/explicit_instantiation.cc
! c890bc158ba32505e0e5caa7cdc4a124  libstdc++-v3/testsuite/27_io/basic_fstream/requirements/typedefs.cc
! 95ce1fe30f9770ee4b5597526d6761b6  libstdc++-v3/testsuite/27_io/basic_ifstream/assign/1.cc
! 036ab5e35e58b69df3763e774caa3392  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/2020.cc
! b6f67ad4434919d6a4c26e274c5c5abc  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/1.cc
! 137159fe9ad375f63623066826ac9744  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/2.cc
! 2112576ff0669191976314d3840c03d0  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/char/path.cc
! 9ae02e6c35c2dde20b6f2a4604f648c8  libstdc++-v3/testsuite/27_io/basic_ifstream/cons/move.cc
! c8da8a0a6b3538485b978b414a59f94a  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
! eb2ef3045ab1c8c02be10863b855e2cb  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/1.cc
! d9aa2298b21457695b5dd7945740510d  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/2.cc
! ec5190b609187dbe6f2290f67a7c1d31  libstdc++-v3/testsuite/27_io/basic_ifstream/open/char/path.cc
! 2f12757a50b22599a3843ff08ff1ae09  libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
! 4b1e2bdd3a2a1502e6a7fa818427314e  libstdc++-v3/testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc
! 5d7bdcefdcd6449cbc21ce484bd1ad70  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/base_classes.cc
! 546145912c4bc387748480c62e4eca32  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/explicit_instantiation.cc
! a1c6becfad4915ac8d21afcee148598c  libstdc++-v3/testsuite/27_io/basic_ifstream/requirements/typedefs.cc
! ec7a855b4178f1bc9ee4a0b15d6d2741  libstdc++-v3/testsuite/27_io/basic_ios/clear/char/1.cc
! 577d870140d66ce282e9b5b667f51684  libstdc++-v3/testsuite/27_io/basic_ios/cons/2020.cc
! c3dd64818768fecdffdfea15d3f0eaef  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/1.cc
! 4b679516ce790a29033f089e2e63c040  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/2.cc
! 1942e0066e7012321f6d46d5abd39815  libstdc++-v3/testsuite/27_io/basic_ios/cons/char/3.cc
! f611577914e16cc509533d2a66f843a7  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool.cc
! 2e782b33a9f02dc1a475de1b0dde646b  libstdc++-v3/testsuite/27_io/basic_ios/conv/bool_neg.cc
! 41d2f16d3c8e8e6a5de056c8ab3bd731  libstdc++-v3/testsuite/27_io/basic_ios/conv/voidptr.cc
! 9eb65f428058f4187c4106695125026c  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/1.cc
! 4ecf519e7a4c79a2fbabdb787c7b1d85  libstdc++-v3/testsuite/27_io/basic_ios/copyfmt/char/2.cc
! 5fa9314a079105f6989824fe0b5a6bcb  libstdc++-v3/testsuite/27_io/basic_ios/exceptions/char/1.cc
! 7bba4a530b4654a9ee6d2b93720022a5  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
! a190a0b45ac5a1a7f81d09be3306274c  libstdc++-v3/testsuite/27_io/basic_ios/imbue/14072.cc
! bd6bf06682d49787f30b2cb5dd942e35  libstdc++-v3/testsuite/27_io/basic_ios/locales/char/1.cc
! c4c644db3cdde378cd04edc0dedfaf34  libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc
! ec6d2023c5a4e2cc528defb0541e5e24  libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc
! cc8ad81234a1a139c499f11f5d13fb39  libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc
! 54e3a3539113db1b4c31c4fdb48ecb40  libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc
! 4296134d12c29dfa25143c2b4c5fe9bd  libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc
! 9b2a19776f220242181832d9476d4687  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc
! 0fc8c5f693f719c1291f1d12436f48b3  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc
! 5c0b0fa55e13adfeca1f241158a41e6a  libstdc++-v3/testsuite/27_io/basic_iostream/requirements/typedefs.cc
! 120406d61f45424cb600f755e8b4926b  libstdc++-v3/testsuite/27_io/basic_istream/cons/3.cc
! 1928332825fe96f0fd47c088dfc1cb3b  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/char/9561.cc
! bc0d36f84db1022ffd75a112ee725919  libstdc++-v3/testsuite/27_io/basic_istream/exceptions/wchar_t/9561.cc
! 5d47e76f09659e0665c82f733b7d3263  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc
! f9219291803d061203d9d27f15b8c17d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/02.cc
! 76c29b1054bec23fecbdbe263092a5b9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/03.cc
! fa052887c75de0e78cf1d08a2dd04188  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/06.cc
! c93d47607a0c2d4c8ea4e45b71e7f973  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/07.cc
! 6b83a68c8122f0a38c0cfa4efd03deaf  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/08.cc
! e85b1b62257f7849680d5d9499d1162e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc
! e389a928a73c2f2138575e7c8071f997  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc
! 986324f49f761c8429e21404c23f15ee  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/11.cc
! 5824de7d5c2627c3d3ea235fa9c1127e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
! db70a675cdcbb4c6f6a365b52a218eff  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/13.cc
! fab998faae0ad46b3a76ccf88d8edc69  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/9555-ia.cc
! 262dab29af4dfa157aa5cc4e19782dd9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/dr696.cc
! 3b55ce4fbbcdcf33c896b68a5ea3f2e2  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_badbit_throw.cc
! ac2742c619b570bc00ad1756889a3ad1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit.cc
! 7242abf6f95f1cedec160094bb8ff73f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/exceptions_failbit_throw.cc
! c14f8cbd967c8cbec35e5152e87219ce  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/pod/3983-1.cc
! 78876f2075d7e67937e5271d2836ce5a  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc
! 103c578111f91bf9801e3d1da9a08542  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/02.cc
! ae92aab62985bd09bff61990f42b0a76  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/03.cc
! 6972ca2ebfa1d6b64258e23d8b54b6c4  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/06.cc
! 3317990b5a0826a6520bd29897543327  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/07.cc
! df39077addd743dc1d3fa0ac6d8e1f2c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/08.cc
! f4bdee128e6edd5b04977e1bd8138717  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc
! 7c875ecb58b12cf56e7160f09926466e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc
! 6e3170ebc80edf2b7b66ed26bcbf5df9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/11.cc
! 4a444a1dc16c6185438fe86390726186  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
! 072b01a5596b06257be43e79c3dceaee  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/13.cc
! 319bc4052f005e01a66028fea6992162  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/9555-ia.cc
! 9abafea0f4be3639fcb88a885f17eb17  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/dr696.cc
! 19a394ab4cc282a5c4252e69db7e8af9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 494d2398b62c16a5e1ffd81ab228ac93  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit.cc
! 408ba9283c7e7b6239e198ce351fc884  libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 961ae5d8b3c6696caae4ec1563caca5d  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/1.cc
! 05aeb567bd3e12a2b91f07749f7d90e7  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/11095-i.cc
! d35abda4ffb282bbb7de5e15dcf99cd6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/2.cc
! 660d2e2fdb3b915f5a2db950233640dc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/3.cc
! edbc21c55721d52e5e476c8566156dd9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/4.cc
! a4500abcf974eb995f558975e5b8cb96  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/5.cc
! e233f2667b0cacbc7982e1151a8917df  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9555-ic.cc
! e4a5a05336eaf47101fdf31c565f5ae9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/9826.cc
! f6c8dde7c598b5688fb971f6192db334  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
! 9781ec1f1a79e5648b7b17524592fe91  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
! 75dc8f1cc4c0dc71b84c6f17a659008c  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
! e83247254d69611ac10758fbc871ae76  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc
! 12e0440579394989792014335a088f4c  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc
! 2cd6bbbaa3803e0152d0bbca69599919  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc
! fb52f6b7107dab757bd269313cb9d3ee  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/2.cc
! fdff63f1cd0db36f43998dcc72bab401  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/3.cc
! ba74433314e90b2374a2f8baf1f8f127  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc
! 23430ea9538d53785fa6afb5673483ac  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc
! a5afd20569c143434b0a8987fa15cdc1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc
! 7d490de61a314a3f5724d32177aaabdc  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
! 896e9ed5dc5fdbfbb4769bd0ccaffd5f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
! 38f330d86c021d917214fd77d897daa5  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
! 8f452800ab1d3e8dde213d465384b3a8  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc
! 593ab11aadc11ce55d946db324a1e603  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc
! 2762b6bbf967eb736aa7db978122e3c6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc
! 1f83c3e8c9ae42bf513796230a46db81  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/3.cc
! 2d47b5cacf34e5e78166aa54ab87bf26  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/4.cc
! 82a1103e01e95e571787bf7e531bfff5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9318-in.cc
! 4932c462cd0dce07c124614b79db7fb5  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9424-in.cc
! 45ac54b4bc2616057de0447cd76f95b6  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/9555-io.cc
! 7a33a49e625070168a90ceda9a18a220  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/error_failbit.cc
! 00d119a0c59cfc485958744e0b598d30  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_badbit_throw.cc
! 3fbf8fa642522bd49919dbb3b41dfdb9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_failbit_throw.cc
! 3ac064eb62d9f83f961b30e3dd627aac  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/exceptions_null.cc
! d95003e1fa5e3cac076232563d525a9f  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/pod/3983-3.cc
! a2475623da0effeecc9e9304e3a60548  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/1.cc
! 1f0a821fa0729c4d15b3b3e30bee8a21  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc
! 71c0d6647634363068cbde1903f06d5b  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/26181.cc
! 8e7bb56ccab50ef2b69bd4d2bcc126a1  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/3.cc
! c3d5c34cbb8330e74003e76dd20d97b9  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc
! 5c2f3dd6ad0eb160303a5b1120ea7262  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9318-in.cc
! 730c97cf9e57a9ee462dc0b309f8c4ff  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9424-in.cc
! 131e11c42170ccb7d6a9d9c6f36301bd  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/9555-io.cc
! b8d5ea9d1f89a2daf86e4e746fdf2612  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/error_failbit.cc
! 24874f56c061e78d8aac7d55898cae9e  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_badbit_throw.cc
! 18ff97346b398ab7e8989c1462d49c72  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_failbit_throw.cc
! 0938853e018f6e57d4fd277a539ada78  libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/wchar_t/exceptions_null.cc
! fc4d28e74c14a1ae529b861a9a953b51  libstdc++-v3/testsuite/27_io/basic_istream/get/char/1.cc
! 1a501e32b82f945bbfea6e325ce87b6e  libstdc++-v3/testsuite/27_io/basic_istream/get/char/2.cc
! 47a4c05ecbc4eac2e3a2c29e8dc5f85a  libstdc++-v3/testsuite/27_io/basic_istream/get/char/3.cc
! 345b5d24e297deee8ccb6bdef88d7704  libstdc++-v3/testsuite/27_io/basic_istream/get/char/lwg3464.cc
! c6ccb10aaffdfaa673e22bf7f37518f3  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/1.cc
! f3461018fea4f4249cf768a0438d1a22  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/2.cc
! 2ac409d89bba23c70512008987f10fe2  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/3.cc
! 413c2e4c6de36ee98da46d4e2a2ec709  libstdc++-v3/testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc
! 34faa44f7194c1a34ab56c6e4a44a938  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/1.cc
! ca19228e785230f639840bc9ffb827d2  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/2.cc
! 3f6306438251ffda85070c9045e286a9  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/3.cc
! f9931179689848786bd54212e6a0e5ae  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/4.cc
! e71eac3de3590a826d2ac3d166ec3c82  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/5.cc
! 6274d4c578b3c3e9f7801ea0569bca0b  libstdc++-v3/testsuite/27_io/basic_istream/getline/char/6.cc
! 6b2eaf4d7b181b4c6da9ef3f5886c14d  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/1.cc
! 94514bcec4b6cb9947897505d9379660  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/2.cc
! 1718db12941ee50eb54834d2c7410dd5  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/3.cc
! 526f88143d85602a9ccc2329b53cea47  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/4.cc
! 9cfdd3f2c584fd2a1e0e01fdc462677d  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/5.cc
! fc236e6ec91b6ee09d82905cd1a172ce  libstdc++-v3/testsuite/27_io/basic_istream/getline/wchar_t/6.cc
! c3c0cd939039934a5f3cb0791726c453  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/1.cc
! 945c2ffb76a7f1cdd555c24c9993dac0  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/2.cc
! c3ec3d88ed954caea441071b5648d1ef  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/3.cc
! 0deedb1f69bed3c740ff8251d3ddc250  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/4.cc
! 278f75cd3e049680259272ed1981737b  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/6360.cc
! 3dd3edddd7cd116277e994031931adb4  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/7220.cc
! d8daf4a3d8ca79bbf8f7709d38a58f0f  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/93672.cc
! 7ef93c7694eb38e487c240313b8107bc  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/94749.cc
! 5aced3253cbe722167788caa9b75452b  libstdc++-v3/testsuite/27_io/basic_istream/ignore/char/96161.cc
! cafd36d517da6056edfff520b30d1d91  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/1.cc
! 9abad4120d51cddae3904d0c6648daa1  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/2.cc
! 373b40f333a6fb0fbde531c4a17db85d  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/3.cc
! 10c698970a3bdc9088741e346a7aaaff  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/6360.cc
! 73dbc398fa52971bf9e17d57a56cd849  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
! e9e0f8b05083b011d4c117b089f88d00  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc
! c0da69c6873bd2b4b815de2f0c9771a7  libstdc++-v3/testsuite/27_io/basic_istream/ignore/wchar_t/96161.cc
! 334f4b3385d7ef58b0cbaa6934d0c9eb  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/1.cc
! 8428ebf1f9bc9c26a822fe952c446105  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/12296.cc
! fc8f3b71fbcf796317cf8b6e3a11eca6  libstdc++-v3/testsuite/27_io/basic_istream/peek/char/6414.cc
! 8a7e557b9e56760bb4fff96afbaad3be  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/1.cc
! 16c6c67bd9178932e365a9574aa85dd8  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/12296.cc
! 29f37c3679ad9e767e16fc53a5619a6d  libstdc++-v3/testsuite/27_io/basic_istream/peek/wchar_t/6414.cc
! e69d5b48d39512f2b93f4fdea2564c55  libstdc++-v3/testsuite/27_io/basic_istream/putback/char/1.cc
! 90b94218e61e0d1690c31daabf9f80b2  libstdc++-v3/testsuite/27_io/basic_istream/putback/wchar_t/1.cc
! 7b63c11c520c13ae270c9d212c1ed48d  libstdc++-v3/testsuite/27_io/basic_istream/read/char/1.cc
! 9ece0ffd20ec4f600610e93aef850937  libstdc++-v3/testsuite/27_io/basic_istream/read/char/2.cc
! c00f1d0630b9bf41ea8a2eb5101ef973  libstdc++-v3/testsuite/27_io/basic_istream/read/char/3.cc
! 8a19412b7b8aeb7e8e9b6bbe2ceff7a8  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/1.cc
! 47d7c31102b9fbddcac9698b0f6cb11f  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/2.cc
! 644c493a382ba0eb615db35c7b2c521d  libstdc++-v3/testsuite/27_io/basic_istream/read/wchar_t/3.cc
! 071a4967f8e8af5f80bf88f6d0e62d5c  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-1.cc
! 64929c0027bcb877d447eac7b7a8f574  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
! 40066d7f6dccc4477abdafdadc93e269  libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/8258.cc
! 569b654becdac4ed55f4ba798a8b5384  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-1.cc
! 12fcaab6290f6ddd7cd5a1260caeda71  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
! a77c5f0ee828758ae662f17f3a0b6752  libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/8258.cc
! c6120fd8eef0f217f57a7c34cb6d8a3d  libstdc++-v3/testsuite/27_io/basic_istream/requirements/base_classes.cc
! 4b0f4c2c5b3d6a0e0ca543dd9e38909e  libstdc++-v3/testsuite/27_io/basic_istream/requirements/explicit_instantiation.cc
! 42a27cc7837ed3cc19608df4d02a2034  libstdc++-v3/testsuite/27_io/basic_istream/requirements/typedefs.cc
! ae095135818b858ca6b513d3254a91a8  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc
! 7fd6cd87ccc5dad25dfaa72db1e2744a  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/26211.cc
! 729a6c0475990ebaffdedd8c36c982c8  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-1.cc
! 43812aef9564d35e90726e0ac38757da  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/8348-2.cc
! 709902bd88779af3b03555b23adbe098  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/exceptions_badbit_throw.cc
! bd6650a7ee66e22fabe2c375191857af  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/fstream.cc
! 8640d010c17e86e540e887a20334fecb  libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/sstream.cc
! 06a7f1dda29982e55701303846ef33fb  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/2.cc
! 458e37acb2c77f1c40b2250f3c917a8b  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/26211.cc
! e2c8e1231e6f1c5f1bc2773faa3977a4  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-1.cc
! dd212b623a3f80e3d00dec76bd5f3337  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/8348-2.cc
! a862866b8da4fa2a8320cda43d44011f  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/exceptions_badbit_throw.cc
! 22094e6593a01db4153e48e9265f4610  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc
! b08ed3d356f9792d286176390e781fba  libstdc++-v3/testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc
! ee0580f3f5fed8a6899e8dd0f09cd49c  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/1.cc
! 198f9e7470766c3afd6e67b10b24b8ae  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/12297.cc
! bfb786250c9497aec05ebaea31f3ee5b  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/2.cc
! d560b670734368407733096b794cb930  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/3.cc
! 0ef9e83e8ca3b3bb796d748c7fdb187d  libstdc++-v3/testsuite/27_io/basic_istream/sentry/char/53984.cc
! aaf2b8d607a1511b77040601dc2ed309  libstdc++-v3/testsuite/27_io/basic_istream/sentry/pod/1.cc
! 91e683bcdaf008f1725b076a1e3c49d3  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/1.cc
! 49eeaaa71f8f119cc9f143aa2a353305  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc
! 14978d794a3a7125b7d95bb3efe20795  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/2.cc
! e99b08f2e2cef2958060b480a8dae1c9  libstdc++-v3/testsuite/27_io/basic_istream/sentry/wchar_t/3.cc
! ced7867909ed34fc7b0f882270b4bf48  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/1.cc
! f5fa1385d0eec9896fe2921e97f7c55a  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/2.cc
! 65d4353f4b72b3dbac706accc9e04e93  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/26211.cc
! c901324c182294345ca18395b629a631  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/8348.cc
! 3f106f3876ca012ced21298378b76d55  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/exceptions_badbit_throw.cc
! 1b48d1ce411e1390a9c973a89b6748fe  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/fstream.cc
! 1f53a8ff29376c2484104edf6aeb0b92  libstdc++-v3/testsuite/27_io/basic_istream/tellg/char/sstream.cc
! f34ff9cbd1258d624f3e5ac70050546c  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/1.cc
! 008b9330fbd91bf1eca907342b739869  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/2.cc
! 595c25aa800362abc92f0e6554941ba4  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/26211.cc
! 0496e5c466ac54068746b62fd22e29fb  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/8348.cc
! e56a54d00b7095f248a7b8fa0f5c8c0f  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/exceptions_badbit_throw.cc
! 8a0ce80a60546c29324996a1b8dd8107  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc
! 7a972482d092181b4847772c997ecba8  libstdc++-v3/testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc
! 930c3150003d85b94a59066e8ecab2b5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/1.cc
  f839f1109e54bd94ee7c87d858176de5  libstdc++-v3/testsuite/27_io/basic_istream/ws/char/lwg415.cc
! 238005ff4fd60a00d8549852f320e1ca  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
! 4914f8797715c77521fc1ffcdf1e7b62  libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc
! 9df8aca1c42a63d21be97ddde31fe483  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc
! 251460e1811843af649386ae231d83b0  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
! b4ed4432198a68b4b7375b8bd0f861bd  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/string_view.cc
! 22b5686331b265a551581c1ae26d6834  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc
! cbdc0a853d669b83b7b076585ec73e9d  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc
! 13e76974956cdcd5a47e195d4d35b5d0  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
! 8a5d79a6889f51c454f8466d1b58d82b  libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc
! 0f352dc415456084ebbb03633886b94d  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc
! cb60bbc7c3f2910c4e4edce73b33fa82  libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc
! ec282c406d33dffbc8803a56dc61a6b7  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc
! 839fb149b044f277556c12bc40895f0c  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc
! 083333d9598cd069887ce6c66bf69781  libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc
! a337a887a4f2d34aa4fe8b023789e7b8  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc
! daa2497d461043b877e09625180c1d99  libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
! 1f11f82a5ad12e15adc0a2b7c9f55181  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc
! 5aa101d5cb665200a488863d46383807  libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
! 2688c97f70d4f099031b69ebba798d97  libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
! 8b47fc9be79483a2eac3a34c4f7a6aa3  libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
! 48bb2228c9d169d091ed488a706f0c93  libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc
! 902bc1d1d2a52ce5294986071b6dfe49  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc
! 003e0e51938df05f53d41cb357db3e3b  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
! 0da7e8ccd5466cd70490777c6cfcc2bf  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/2.cc
! f97e704d8b8844e44340eed3e5d0ecab  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/path.cc
! c63688f4ce57edcd7c3960609bbaa1e8  libstdc++-v3/testsuite/27_io/basic_ofstream/cons/move.cc
! 1f0cd739176c29d37c568145526ef1c8  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
! 50142408addc2caca7f0641f7360d2f2  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/1.cc
! 259a4504246bfdd0c3ff2ab8724c8e94  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/2.cc
  888ecdebb025b2ab4a82eb0b6f4d859a  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc
! e8cd31a8dec7a5999cc9f87e5f0bcf6e  libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/path.cc
! 4aabfb6b906deac263de3388e6145981  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
! cc3482873079426762aba492a5df4007  libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
! 5bab4f8e19ea8a5f6d4eda53f6b9958e  libstdc++-v3/testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc
! 38bf2530fd98d503521a038a75780768  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/base_classes.cc
! 3c6943b8f20f09b87b2ef02b1cebb1ef  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/explicit_instantiation.cc
! c653fae1b5af7d3ef3690f35d7c3f1c3  libstdc++-v3/testsuite/27_io/basic_ofstream/requirements/typedefs.cc
! 2579c232de048ffc7a193d7ad1b2c067  libstdc++-v3/testsuite/27_io/basic_ostream/cons/2020.cc
! 2217c42757243267d5d087726971d8dd  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc
! 013fb06a4d9110df9fd9bfb4413c8344  libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc
! efbdc28d11b4bc5e9447a64a0e24532a  libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
! 80893be11e53a0c20dcac679c7ed66b0  libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
! f5cdc9551aef5bdadb6baa141bcc1713  libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
! 5431ad41d6a3ed4e89555fa83c85c96c  libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
! d098c6e8dc33289f6cdc18b274274ce2  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
! a2b5b6102f301d3f3ae1156970a2d523  libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/2.cc
! 812b0cb677c940d0da1f00fa48cc0cf8  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
! ead255e32f347cb8f834a336c541b688  libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
! 1c496dc147b2073dee2c627d8143d661  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
  5057d332428ae18566e2bdf8079845c5  libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/lwg4188.cc
! df6de29c8ec37105139523c55abf9ff8  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
! 95ab83e38f214c18bc3dd14bb21cb01e  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
! b43080fd11caff7035ffff88fa5c808f  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
! 3f00dbbf3263a2c6e5430c11873f51ca  libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
! ba2534c76ecd71c7c66c499460383b30  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
! b9761c6504dc650979896c184ef90d70  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
! 035d0a7d28e0afb34c07a3c0078ca33c  libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
! e8a634220a059e505d8597963d7876d0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/1.cc
! 0f9088397fcbd4af0260026223915b42  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
! 37cbde3fdd282c517b7775dcdb656d4c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/23871.cc
! 89e001868adcbfba55fb5f86c7956246  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
! 1cd2cac8efbaf33f82216b875484b6a0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/31031.cc
! 51abb7022fa4c1a121d65577d54406c0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
! 723bf5bccbade9bf9e5333e565d35596  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
! 0b25188cfb32286c9521a8b0c05a5f7e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
! 0ec33242d31adf413ed91f8202e1fa00  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
! 5fe4be5be9f4c07d75198d0e880a056a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/7.cc
! d6fddced9ca2fb8e25976eb86f88a54d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/9555-oa.cc
! 26dc674e796f030e1971eef13c8ced9c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_badbit_throw.cc
! 10c2520e7a7115142aa20203006179a4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/exceptions_failbit_throw.cc
! 25bb2e81a95256383fb5ccd451e96b3d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc
  d2a0eb246a96a8167b3794e2ea4912ab  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/lwg4101.cc
! 7783e77fda78fed68c663861079005c3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/pod/23875.cc
! a8e90df80006254112a82ac42b718cad  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/1.cc
! 261da58eb737336bb1eecae5dc1bd28c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
! 102aa0f9ad0813b339addab177600abc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
! 1ddad6b23b3664993fe77e6ee80d858c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/31031.cc
! 95cc8db987708ee958aaeb1137e81ed6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
! 1a80a0b503e60d49522e799c9aa3e221  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
! b547924b15af22da03d087ead7966c8d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
! 66157bef9ae2ba434845ea187d5d8cae  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
! 52f1297b4bf893f4e264ffdb31f2a937  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc
! d1df9c21d63217cd67ce17a57d4c27c3  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
! ba9d9306d3ef4fa5011bc7170dfab765  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
! 4b0476d6e63441b1e5f78c96a285aec1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
! 84d73c3c878eb83d59b0e2f8e4eb8735  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/1.cc
! efb1e3f09867ba5d1b3660b67a6b7268  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oa.cc
! 9474ac865f6e987fd49ba0090503e44b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-ob.cc
! aa9ba33a525088674e6f71d049f0df7b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/11095-oc.cc
! b4052614c352130c931d9801f3d2ae22  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/2.cc
! 95633e6888048b9d1a951456584bce98  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-3.cc
! 6ba6b3669e7b653e7a5bc3d0ac7f20ad  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/28277-4.cc
! 3d6e7af141d9cbdac37d6c81b5aea2a9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/3.cc
! aaa08e3a0387d7f36fc1154a8fb505c2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
! 011fcd349fda5fb1c03db22509ca8e33  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/5.cc
! 2ea76bfbaaf0ee4570fe1c505c6611eb  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/6.cc
! b446f8149274ce90f76687c78be71c3e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/8.cc
! 9252ce4b88bca38fd30532836eeab599  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/9555-oc.cc
! 79aa58822341ca03468296a27ea5fcd9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
! 6a01427a493926d31325bb040610529a  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
! 573ec1f3f696d89abda645f71d9661d6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-od.cc
! f98042eb6e40ac2c4bf336170f67eba1  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-oe.cc
! 3892da7aa4902c514527ba594d946ba0  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/11095-of.cc
! a718f997ea81b89b406f510f6dc75318  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
! 6e2188ad8ff24c56e05c9d56f6a7db59  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-1.cc
! c602b5068650524a047d1400f8dfda32  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-2.cc
! 87ac160352819fb67af63ee32f9f293d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-3.cc
! 8604925dd956976251cc2f0e0d8f18f6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/28277-4.cc
! 4e008071c3129b9408253442afd95f3d  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
! 1bf8f0574f7676b0bac844a1e95c63bb  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
! 3d8f12ac6d7e8848b47aacf46d744cf8  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
! 84c1a949dcd52ca5e8dfa369e5ec8f4f  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
! 7d40de84e38562f44d0459ac8f399c44  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/7.cc
! cbf28df3e17ac0ff7654c432024ed9b5  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/8.cc
! 30e258d9a97362c0339d8e74575a6b99  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
! 3f4d8fbc912a9064af5ca0e2f5a92a83  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
! 0e8547b3f3652444d1bf2eb62104dbf4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/1.cc
! aeb62aaa6fa00e0cb2143877e15df3b4  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
! 582b816e163e571f254e4a28c951bd42  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/3.cc
! acf8468ec4336ccb87ec882f4e7f660b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/4.cc
! e787041cc86e782c3068b9f468a2222b  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
! b0c4f54fff4a3f03da19226efb4444a2  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
! a7c14a2b555c4171e8b7bc43663ee10c  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9318-out.cc
! df626bf263d34396cfa7c469ee7ce0fe  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/9424-out.cc
! 4af74f24f84e1ca4ddd4307ce4b16b7e  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
! 556486cdead7e8db6acc07d1e19b86a6  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
! 681ea07391b8bf926c45682667725fdc  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
! 44e986513b828b7a3bddb6750ca5e937  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
! 024c7b9afd18821fcb52196c79bf1093  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
! 3075deb854ac85bb2f1fba133e11715e  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
! f15ec93bf201c0a14f5499a4397b3106  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
! 5a7c07ffb2a253ab99a4d7b281ae4c66  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
! 2c8f81e8ef96ef4a2ac4c1821f3efb16  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
! 534f6cad2c3cefc960708712279b384e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
! d7898f4ca2e60b0d442fa9d7f1bd47da  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
! a366fd24a55e0944a581f717334e4aba  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
! bf33ec98af6274b2a1d3175384ed41c7  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
! 77b87d3a2948d14873e7eb4349b53e88  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
! 6307fbfb7d81a5520b36a8c0b203ca9e  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
! e8326120ec10fd7e827c422958f85b29  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
! 304f356984371d5a7f6100c3f74fec89  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
! ea726e96099d71142197ccef381043d9  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
! fde94ee498f27e6a3190dbb10040f991  libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
! 0ca1490427bc789c95f0500fb69b3298  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
! 6aa77cd4e84d84655d5e52446339f6a0  libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
! 9c2ee3041fa01b0be54b869173f9c909  libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
! a7ce59934d8c1e02e80c311c9b65899b  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/base_classes.cc
! 6242b442e3035ba92370d2cd557ed05c  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/explicit_instantiation.cc
! ffeb3a9c86841dba53e1755cf1489815  libstdc++-v3/testsuite/27_io/basic_ostream/requirements/typedefs.cc
! b3a2aa06926509641f79d61999c33dbd  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-fstream.cc
! 9447cda3c88f8bc728ba07419cd6b4f0  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/2346-sstream.cc
! 2f897ed1cca7710a8cf15f7e8503085b  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
! 6432d1cb902900839310269074357b4f  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
! 792f0417d3086bcf5fec8abd44ccb891  libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
! a832f93e744182ae94adf17b6f26bb3d  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
! dae3eac7bdcc9f7ff238f7f993ea98a1  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/1.cc
! 63de61d8c6dfdc601bc223694288420c  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
! 9df12bf1e0015af936c550970ccd2f66  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/pod/1.cc
! acadc976d7f23a5c370593adf35fe4fc  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
! 3911f01cec95b1b7018677d512a76a21  libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
! 96668cb456c950922348490172321ace  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/1.cc
! c677d1708c0c20f9a91f5e7fdc2288ab  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/char/2.cc
! a26e05cdbbf53bbff8669db737c7b01d  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
! 65eb4347129ce1c98ba4378f81f8da03  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
! a2f79c34d30a1459e2c8b7988d59c0c0  libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
! 974d2526a98c41d224dcf07393c3bb10  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
! 95e4995694695c567950708c0b18f344  libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
! d1102674435152dcf2b652a2974cfc50  libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
! 6e5ad193ffe2360462896223f98a0ec6  libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc
! 29c78d750708259d6d6829962f94f068  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc
! d632dabc42914616d3ad117930de3f8a  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
! 893fbc286c556806e690cc402c0f1a9e  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc
! 8441f82d4508a211fbbc705df8135863  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/string_view.cc
! 886182461f6274e0442bd5bacffba5ab  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc
! 136331c8a31fa4ca377da3c7609f48fe  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc
! 2388e125e36c0bec32f119d884880e2f  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
! 19df669d049666ab135442c047fb0222  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc
! bcb73da263574f844833df8f78a185fd  libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc
! e6b086de006e3e62eb7f656bcddaa17c  libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
! 6de9d7a7040f3af048b5582598bb2da8  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc
! e8de2afbf0f28721119752accb182384  libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc
! 0738a90fbf00ab8505d81b0385facc7f  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/base_classes.cc
! 3965286d5f1750a54c1e2c56f567ec39  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/explicit_instantiation.cc
! 27c2a723a136223edbe0f26a2b515665  libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc
! 7b971d9d9eb66d9f4d21725344f00adb  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc
! 9bf4a708073ae8916bae737e6cec7c10  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc
! 638995322f2deaa7ee042bcd1491cacd  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
! fcd079b8d1a60a91cda92789fcda8408  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc
! 59d0cf14da19c562645bac29fbefd813  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc
! 33cf10d132545aa9d0afb63a60fea683  libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
! caf2c75107521c89bf4229a066302290  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
! efd501a2ef9fbe9b346624772ede4365  libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
! 83690ac63b63c5f56d76399e62749915  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc
! 45a1cd60586ef6a9cfe1c25f22734ee3  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc
! aee7e70e26bd05af6fa15106de147593  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc
! 9d23e5fc6c0ea811f1359da94cf1f0d8  libstdc++-v3/testsuite/27_io/basic_streambuf/cons/wchar_t/1.cc
! cd904b52fda2378297a3fd703abb8c95  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/1.cc
! 2f22e7bb6467acb8697bc459ed888fdb  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc
! 31b0365847504ccc501b09ab221695a5  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc
! d19382916de29f9ce5780465d5654b37  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/char/9322.cc
! 2c9673c86a7241351f049b0d27e05ccb  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/1.cc
! 467f78883db7c2b50548ff00813b98d5  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc
! cae6d15ef4963e56efb046dc558093aa  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc
! 8a76d67c4c04a6ba42a5bbb78ee9d20a  libstdc++-v3/testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc
! c41efa5f1ba6af955b54dba85a37d153  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/char/1.cc
! e5cada3e25f59f1442d52739316cda2f  libstdc++-v3/testsuite/27_io/basic_streambuf/in_avail/wchar_t/1.cc
! eb57b9efa112eeb93d07127fce5df809  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/1.cc
! 9347d394b3b7b18e57acdc3a2f24c7d4  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/2.cc
! 0b0dc1170a1922db7424fd11a081ac83  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/char/3599.cc
! 71b0f7fef2b7c5e19cdbad49e0d43ac7  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/1.cc
! 716bd6fd96ede8f40ae7e23ea27be590  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/2.cc
! b9f3c15b60551213fedcf86991b47840  libstdc++-v3/testsuite/27_io/basic_streambuf/overflow/wchar_t/3599.cc
! f834bc2edda162fea7ad6efef382ccf2  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/base_classes.cc
! c591a2991762ffd2bf15d454ce379739  libstdc++-v3/testsuite/27_io/basic_streambuf/requirements/typedefs.cc
! 5aa85197cf1211a1044d6c002be4ff07  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char/1.cc
! 9fe0cee6d7c8ed95fc6cb7d30c141d9f  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc
! 6b37d56d3d2dc4a6f51b117e013b7c2a  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetc/wchar_t/1.cc
! 03a90acef94d2e9961e16e74e16546a2  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/char/1.cc
! 041184d7cdda96b4518ebcd7af6d55dc  libstdc++-v3/testsuite/27_io/basic_streambuf/sgetn/wchar_t/1.cc
! f7e691b6c19b428f318e253ef5fac1c1  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/char/9538.cc
! 3efb6a30c9640059ee94c1fb2dd90e03  libstdc++-v3/testsuite/27_io/basic_streambuf/sputbackc/wchar_t/9538.cc
! dffbc0f241a5d7d2383c62850cd2b407  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char/1057.cc
! 6c81c472bd5973b4e4b5c9928205e65c  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc
! e1c473bb82c5bccb891d8aa697c1a780  libstdc++-v3/testsuite/27_io/basic_streambuf/sputc/wchar_t/1057.cc
! c07405192fde3ea6fce2ae799528c3d3  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1.cc
! 3b9ec49c71627e4f6014803a9d737670  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/char/1057.cc
! 1b551beb398831f692e56531baffa90d  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1.cc
! 3b78590dabedfdbffff18a5a8eb93a47  libstdc++-v3/testsuite/27_io/basic_streambuf/sputn/wchar_t/1057.cc
! 318f0cbdb92db4bcd3cb02a6e9b6bf21  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/char/1057.cc
! ae5f1904b51543963814efb631f2bcde  libstdc++-v3/testsuite/27_io/basic_streambuf/sync/wchar_t/1057.cc
! 714e30fc3df5a87af8b56f43408127d7  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc
! c60099f10e7250f5308b41ca1d5e57a6  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc
! 9d8894a8b1d959ce8323a52f9b63873d  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc
! 2f253f33efdc920aa9db3601a5176402  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
! 8e2ef1bcb054a7953f061f10843da496  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc
! 6ded6e8fbf80b0bd8c122de7cfbc5ee9  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/string_view.cc
! 3e9ec6b1536ffc4a6d2bfa3aea2ddcdc  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc
! 4ada6ba6d3003e26ef3045590f359762  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
! 6865e2de63cccce585ad6e5011622ae9  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc
! b968b10ba230ad54a32e604aa8db00b6  libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc
! 405995826c46182383e3309a29dd7454  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc
! 9e69768d514cf974376fbc7d979218e4  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc
! ee3d64d2157ffbe84f041851d89bebe5  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/1.cc
! d87473985d29c3768b35d109e1e45fe6  libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc
! c67cec73068edea259eb213f2311a792  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/1.cc
! d03cc1ec20fdc9b2f3ad921518bf53fc  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/char/21955.cc
! c3f1d06348cea1e9b95a5af02193b3ac  libstdc++-v3/testsuite/27_io/basic_stringbuf/in_avail/wchar_t/1.cc
! 6fb837e34a1afc3ff79032a26f290044  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/1.cc
! 4e22f1cb91c39533da9ddedfbd776226  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/2.cc
! 768e8274bb5e3eebffa13feca4ae37c8  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/26250.cc
! 6fac965d028095eaa1b6fc29550884fb  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/3599.cc
! 746658ba67a6d009c2ed84914d0fc824  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/char/9988.cc
! e7070b8e10142f4f30406c4b06254c97  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/1.cc
! 272141d6174f46f54a5d34e196301161  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/2.cc
! 851fcb73f4620088787b858f432b2de3  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc
! 1843786dec8289c7f3ad6f5723f8d3a4  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/3599.cc
! a32642fda5d03b91d9e9daacee85b3b0  libstdc++-v3/testsuite/27_io/basic_stringbuf/overflow/wchar_t/9988.cc
! 07cc5a2c1ab51c587105509f6d556587  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/1.cc
! ce0eacede98997e0ccfa190e94d034aa  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/char/2.cc
! f32d4e614cf5e135540557d25a1d2829  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/1.cc
! 978d101f7fa6282a15fd2a46a8356c5b  libstdc++-v3/testsuite/27_io/basic_stringbuf/pbackfail/wchar_t/2.cc
! b20faae857592e09ab87e8023c03dd1a  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/base_classes.cc
! 9665456303926d38106d239b08bba251  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc
! 29c5567480febd3cfd3884930c205098  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc
! 6fb457ebde5b557bb001d4539f7959ec  libstdc++-v3/testsuite/27_io/basic_stringbuf/requirements/typedefs.cc
! f0cdb05e7cf498ccef672f2d812fafc3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/1.cc
! 2189693d8dd7b8b2d11a6601c5c1eefd  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/char/9825.cc
! ff9a808ce145d78d2e2bdb8fdd52134a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/1.cc
! 04162628004e20946b5a3084ae793b3c  libstdc++-v3/testsuite/27_io/basic_stringbuf/sbumpc/wchar_t/9825.cc
! 05d114768f95d8220f60924acc18d6da  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc
! e070c7be86ba2d6997a03e29421f459b  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/10975.cc
! 1a3b661bdc1947d9b67b870a45aab90c  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/16956.cc
! d7f162a19673efcc74f864c4d016acf9  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/2.cc
! c92793b097ee4471b93846e880c15f05  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc
! 6d9ffc0890ace2df667e591c94f6a171  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/10975.cc
! 35100df0a464e740ed72eff7403fd27b  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/16956.cc
! 8cb8194d870006a4ea722f9d46d019c0  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/wchar_t/2.cc
! b6875483537af2923b3e574a0f2db1fd  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc
! 81c87feda453ab399059f56460867e82  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/2.cc
! 1a26cf00acc20065ee778861943c5cee  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc
! f02e77b2b94404c343416d4dbca7d57d  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/3.cc
! 46e11e34db8b4d05860944a321c59e1d  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/1.cc
! 3ec151f588e29dfed3dca28df4ed2038  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/2.cc
! ec6aff15c13ea5edf123cc7099c035ea  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc
! 2618b156faddc0dbd97cb94553bded0c  libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/wchar_t/3.cc
! 35149c3336ba0dc554085c789c5438f0  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/1.cc
! 70984d017f000e7faa368e5ac9a94037  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/2.cc
! ca2486638e99eef04073a83de0e9fc3b  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/3.cc
! dd3430dd0145217462b381c09ff2395b  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/char/4.cc
! e872a88115c32ed4e28f51c24de04c71  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/1.cc
! 775f05ba1154561b48f30eb8cfa72849  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/2.cc
! 831c6575e39702061052348cde20860c  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/3.cc
! 7848342d158b4cda841e4c1781972d4d  libstdc++-v3/testsuite/27_io/basic_stringbuf/setbuf/wchar_t/4.cc
! 7981069029a66057ddcb54fee5ca943d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/char/1.cc
! 6a88531058d156c4a0f9cd3955466ab7  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetc/wchar_t/1.cc
! 3b91f700e47a6f188a864b387da752cb  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/char/1.cc
! b5921d6d0da18bff84059ed847130001  libstdc++-v3/testsuite/27_io/basic_stringbuf/sgetn/wchar_t/1.cc
! 2dcf5ac3cebcf24b73e2ab24430f93b3  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/char/1.cc
! ac245773f4d17c3c65bc7a2dbf8b68ff  libstdc++-v3/testsuite/27_io/basic_stringbuf/snextc/wchar_t/1.cc
! d624479e8cb8ec41f011d40243ba6165  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc
! 8cca1ac9456ff8f091d2de08e37ed45e  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/char/9425.cc
! 2c7e169f7ccebb05c2cf85080820d9c4  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc
! 374f7620d1b998f94f906616fc6d96f5  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/9425.cc
! eedb061111583859deb336caa721dd15  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1.cc
! a121db2008a0f7291e781fc339ec087d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/1057.cc
! 305e0e6ca85eccead986545c9eaf6fa2  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/char/9404-1.cc
! c30114795c3fd8dd88f30cc04d2ed489  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1.cc
! a2e73f70a204983b6c992945872c5c5a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/1057.cc
! 17c976c742429d2ff4e8d7588d8564a3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputc/wchar_t/9404-1.cc
! ab89c460e827a131bab9c14a93deae07  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1.cc
! 02379083a505c8d882ed43309e67e29c  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/1057.cc
! b43944cd60672700200cec0c119ed567  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/char/9404-2.cc
! 98c2b908b8fc8c8a3f07b3f15eb59f9f  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1.cc
! 207874aaf225f7e464ed8959badb84f3  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
! 1a0fe0a8915bb862946b3d96bab9914d  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
! 43e17425964b5f56f3fc4af18905c2da  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
! 977a013f60bef4a12b598777d9f03bd4  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc
! d886afee39a4461ba1bc54cc6de47f8e  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
! ff4a4f098ca658fff1a73a65ff6985e9  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
! 209e39a23af5588ce42874df66fa75a2  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
! 37e72d27c24210ea1809739a145c4f54  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
! 797ebd8210894b0d358bcaf3e25fea60  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc
! 1b065fbf5ae67ecaa7213c18adfab1e7  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc
! c740221587c761b94414ec924409b5be  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc
! 53852966aa42ab7a5fbb605428ce6870  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc
! 71cec413bf6c934adc3b9ad826d4958b  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
! 45d9881d5c8db6551ef60b7328e8c569  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc
! 244eeb21288083d79028c34d561f9728  libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc
! ac490d204be377d2a985620597a1da28  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc
! 88d68cd4900b9e5e515965ff580b1f38  libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc
! 5fb479162f4f616870516f620bc66692  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
! 470bb8fe5b418535a549dbc7cdeea7a7  libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
! 26c1842481bb43fdd4dce9d5aa4ecbb8  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc
! 53eca6b575adc5c3999746723ba69fe6  libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc
! 3d8d82d5e5b11a0c651670b8d59df4b7  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc
! 72da81586c3be8295b60e8d382065a75  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
! e9a7f352424face40f3067cc43f33f13  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
! 52be1020d5348d9f2bafa39ecf1f6f06  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/string_view.cc
! d9b26925c1aec415942f0cda7647da79  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc
! a00532d4308bfec433c9a19f7c69f548  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc
! 243b6cb3a64f30fa4dd47bdb41f7899f  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
! f38d4c8b5f14a540c9c992317b3fb187  libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc
! 851cc1f5878e8c0e08d678cc597a5a05  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc
! 1d098ee83abed74fa9abbb26529b0ac4  libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc
! da2b851d999ccf357fa3ee79b2b5d8a1  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc
! 159471d0f767739545589ea6a0c59e09  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/explicit_instantiation.cc
! d4805a6ea294585898bb751e3ed6fd5a  libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/typedefs.cc
! 91b382befea737fd4e2c6e0a8b7a72f5  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/1.cc
! f78b56d2b10690fb77b8348f8114acc8  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc
! 5846c63f743a08f66543f6a5739bdb64  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc
! c2587b96196fe3a82b93bd68ae7cd2d1  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc
! 25655fe111da6e386eb15a14f25df677  libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
! e3b09e0adf87687ece9a743b7153f877  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc
! 21c84fd79fd66cf7899f32f3314ed0ae  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc
! d320c3156b1f226c0064720dc107c1f4  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc
! c9b180547432308f0a2707c755159ebf  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc
! 7cace54ec257f62be3c51ce1373f1020  libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
! 99801403bd2c29a3013ddce9a4297134  libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
! fc3d5b46c01b7a8c37bd65b2ca501625  libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
! b988f14672c653e262a150962955e15d  libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
! 41fe2909b501d09523af976a223e92ad  libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
! 3cc184af0c0a92bd49b435d68c2ce49e  libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
! f8a3e9f610324da8d48eb6cab0143cf5  libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
! f47a3d05e4f48a22c217277979566f62  libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
! b988f14672c653e262a150962955e15d  libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
! 41fe2909b501d09523af976a223e92ad  libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
! 850635e5e39edcee5b5605b1097d2405  libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
! 58620a3d0ee42b91fcfa61639dd3f31b  libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
! 67c43ad012019621fef88630ccbaf7a7  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc
! de4ac3ac60931e7bf638cb99a53b952d  libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc
! 4c9202a769ae6b74403d8b3229607ad0  libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc
! 02f0a6cb5127ac79284eb4046940d6b6  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc
! 672a02ca984f1e679a126c971d5f482c  libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc
  332c803edbdff9c841b88227cc22332e  libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
! f3adc1f75911d5944fd09fa929edd3d4  libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc
! fe53a999ca74d506f9901b81f82d6d4f  libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc
! c5df1ae5cb3b17bcb46bbeebb23ff2b7  libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc
! da7b6ab013744ae69e9433e16b0c12f0  libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
! ebc82b40295b318795d6fba6e9a15b5d  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
! bd4d51e98b436168fb04851677472697  libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc
! e67916af10d12f123c4a405997c5e485  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc
! e2bd01cfb42800fef1fe5369d45810d4  libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
! 25a884862529116a233d9595647f3078  libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc
! 2430f4e5168c2a5f9a1edf6b65771d7e  libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc
  c4a0f1988ab64c05d8acb1647b35c6b6  libstdc++-v3/testsuite/27_io/filesystem/operations/bitmask_types.cc
! 5e2dc233605baf17154df55f66d3e048  libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc
! 832f8d573494c3abf8c0f6500b2032dd  libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
! a2aabc0ccf542933e77337b730a20b4e  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
  10b6e95add9984bd29138cd25bc3a19f  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc
! cffb913862500cfd29affa80e490e98a  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_symlink/1.cc
! 05dc7e66d0dfa60391d177d38acd0c39  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_symlink/2.cc
! d9bf221401c7689900c22be0c813dced  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_symlink/3.cc
! 64e47d79625895207fe2b6d78a89ded6  libstdc++-v3/testsuite/27_io/filesystem/operations/copy_symlink/4.cc
! 5fcd86f1a789d066b4a083fe71dabed4  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc
! c71f77900df86672b089222e0d14255b  libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc
! 1a5b1ee849c9982ffc64129da7d6b274  libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc
! 8506b771a468fbfe5866de3bdd9cf5f9  libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc
! d24c8a66e0a8e3b21273210b186c898e  libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc
! aecb3356c64edbcd333d271606efd55f  libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc
! 824341d8607dbbeddb12c879b38c480e  libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc
  25af75aca20d7f43b2517d9ce56b7c4b  libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
! 9aa4edaec681b4c91aa1fc15e09fd6bf  libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc
! e11957df9e55154829ef2c88f05939da  libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc
! 21ce7cfab3a7d4fae787d92e0964bbf0  libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc
  d3bfb9763a0417404cbf25c413706c20  libstdc++-v3/testsuite/27_io/filesystem/operations/pr118158.cc
! b647d57a9901c82d0129c5201acc9094  libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc
! 42bbabf2da09905ae37bbba098e11e54  libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc
! 7a4057ce0324bf3666a807bf226db6b0  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
! fa9cb661a609c85c1c56083ca7d1b07f  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
! 188d5d0c404da13d898e20d4f696b142  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! 1c86186d63e9b0d895cb79ffe26403e5  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
! 5b1f139296baa9d7352b83f77632719d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
! e7e092a06ff77f3e5512bfbdf499ef49  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
! 67ef0d7370ff91e2c7e865251870e776  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
! dcac9365571fc86d1db025d0b10eb773  libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc
! c13faf2980e08ab9c9a1ddac9d127948  libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc
! bd3e7e9b4dd0fdc9590ee569b21617aa  libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc
  6dfbc01f57a0a31caab30c71dc1b23ba  libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc
! 99c8b1451d6ba0a50947ce5524a5ec93  libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc
! 209cf7bdd2dc713bae10133069828a23  libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc
! 30f5d3680f186ffa6aa0d6d515a418c5  libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc
! 59cc4a1bbd81bf8cb274af7ad14ae607  libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
! 3956ee0c1c465830f5750e1c4327abca  libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc
! 239e4f03875ca2ad524f0b48a49531bd  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
! 82ac0299c1d99fcbc0a70c983f964e97  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
! 2ad387de23e6efa50d553f1f92e03e05  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
  9b500ed50c013cdbd0290f1d06786f83  libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc
! 86981b4799aa403053316c8099c7056f  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
! 0d1a7b8f15204e9c77d4cc6bbe06c6f0  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
! f05a1a31823ab622884fc9d7b43fc9ef  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
! f18654472bc1a2f878c743d120865350  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
! 6bbf2a15c8ba31c1f969796193131be9  libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc
! c6ebfbae473fb7fde197f6f9bae56f27  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc
! 8542816c5fa23273c4ad405f40f67a93  libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc
  7e3f9d185f69161e92a1fe6e162069f3  libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc
! a4a9b36e0158511702feb937e6d68d41  libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc
! 75620d0d12b06530397ac36958540b86  libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc
! a5375e09617e37d1b1a29eff088954a4  libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc
! fd51e0d9407526319e2ec21dce880689  libstdc++-v3/testsuite/27_io/filesystem/path/construct/locale.cc
! 20d5dd21df5828942ea9b9c6ab7cc45b  libstdc++-v3/testsuite/27_io/filesystem/path/construct/range.cc
! 9c9b61f875eadf348de8021aaba1be46  libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc
! e7a644fe162bb98069db1dc0716078df  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc
! 74421053825b65c4ffffccb8e1aa8dce  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc
! a62113679837b30fe4a5078df003a4ef  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc
! 56e32e279cd0397a1b899b2f82b06ce5  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc
! 1648c7db81817fbb0ebd4f4554c9866d  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc
! e15e2ca7d4df45ce7b15ed93ea5d4b3b  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc
! a10b93bda33fc8910b05b694d8370234  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc
! e70466f060d5ccc41eb72095d9c671da  libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc
! 454d52d2a24ada406a54c0be4f4dd132  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc
  8f37bcc6544c96dc14a1dda07d716d75  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
! 55522e017d9dfc4f25c94bafc08537b7  libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path.cc
! b647313152957f3d8a6a19c39dec2015  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc
! 1b0a67782f4deae0efc9ebe6818397eb  libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc
! e909502e2c4a36ead44f1cae22adb805  libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc
! 77a3a36c8cce01e716be2157af39be1d  libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc
! 29196858cdaedbcaa091bb7f9c1bbcc5  libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc
! 3832112d706bcfc737e33f49eca3f88e  libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc
! 811299813207c48701cb33954e568a4d  libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc
! 07185041b17f73a96f61c5b4cb73acc0  libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc
! 37b4d67e61f8b24684be3ea4c192219a  libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc
! 7ad6df2ba00fc6160b164dd9ff6218b2  libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc
! 4f614d6fd25e44c8640044fc502be714  libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc
! e99a9461266319a35661df026c06908a  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc
! b0d1dab8b6322dc8ab05b68dd3ea377b  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc
! 32477a224f3b1023d809d3b10337be2c  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc
! 0d0fff19edbd974721840345aa38be80  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc
! d57b3f5ea2d5fed4945b865634a1d8d2  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc
! 2170ee5f5508318c0cb6e42aa9038507  libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc
! 1792d650224d70763d6dc8dd221fe916  libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc
  18be18b6013e71480b71b201979f3916  libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
! 4b8c383deed92378aca6533ee30dc903  libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc
! 6917397b168ae75345713111bc781e17  libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc
! 24e0f19710c22b492031ff8b655e8b78  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc
! bd1a6dd86b3ce75e5e323537f0e87c18  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc
! 4810a5c607e9f2d604ff85f61a8afca7  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
! 04762e1cb99b75424174662001a97427  libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc
! a6818278798dcf51c658cdbecfa57ed5  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc
! 60ae92f0cd15069facb838d2931f48b9  libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc
! de697bb40f33ea3b1f0665932a5e1b68  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc
! e58463b46003a5bec55903b5055893e6  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_filename.cc
! f72273a2c07659d3334e352e8d29ac55  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_parent_path.cc
! 3ee14685ac3a34cc314f2a944a1a27de  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_relative_path.cc
! 325b30bc1adc02f253601dbe69536eb2  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_directory.cc
! 5e3d641b67fd3bfcd615833c26437585  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_name.cc
! 5e01bb633886d85a0df3398031ce6015  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_root_path.cc
! 5059514933e061bc07f38c3224124098  libstdc++-v3/testsuite/27_io/filesystem/path/query/has_stem.cc
! 0b3a99ad47474db838b5bbfe10316b4d  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_absolute.cc
! 0bc92f02ccafaf85d092cca288f60d12  libstdc++-v3/testsuite/27_io/filesystem/path/query/is_relative.cc
! f82b846358dc575eda26f65b5beb577a  libstdc++-v3/testsuite/27_io/fpos/11450.cc
! a18d6f719001c9ad9c8df6b6a87dc1c1  libstdc++-v3/testsuite/27_io/fpos/14252.cc
! 458fdd448d82f72c2c4984cf4c885f40  libstdc++-v3/testsuite/27_io/fpos/14320-1.cc
! 2a899ecdaee1bc5a25271d087edbcec7  libstdc++-v3/testsuite/27_io/fpos/14320-2.cc
! 7a59286dc7e71472ac5ce328269e4764  libstdc++-v3/testsuite/27_io/fpos/14320-3.cc
! 678a8f7b872ade2d15e3acae56d4f23e  libstdc++-v3/testsuite/27_io/fpos/14320-4.cc
! 8fbb8e3c59c9fe6bf6ed3e4a8dfd69b3  libstdc++-v3/testsuite/27_io/fpos/14320-5.cc
! c9e416cff756cc6a838040a3154d67b4  libstdc++-v3/testsuite/27_io/fpos/14775.cc
! 85a894300dc55671fdd4db962f6e3c0b  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/1.cc
! 9d466fee41902843b2ba376e066ead78  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc
! 31509b926600d10e1b9919e357b16c30  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/2.cc
! 424c5fe9fe8967c50824e7a815713bbd  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc
! cea023170b56b49ec35641eb8029d0f1  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc
! 2df9fe76fc50a87b001d428911b448f8  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/5.cc
! 1593f381db4a4739b6e87959ff0370c0  libstdc++-v3/testsuite/27_io/fpos/mbstate_t/6.cc
! 08f5f8f45fc53d68e193a9cdeebd4367  libstdc++-v3/testsuite/27_io/fpos/requirements/explicit_instantiation.cc
! 153f4c46e08e1f9545871b3b2a130c57  libstdc++-v3/testsuite/27_io/headers/cinttypes/std_c++0x_neg.cc
! a457c1bef57b9862a9f19ca88c27fde0  libstdc++-v3/testsuite/27_io/headers/cinttypes/types_std_c++0x.cc
! cb08d57025de462b1645eb8e55a6e012  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_neg.cc
! 146e27f80643774f2cac6f866367d4b8  libstdc++-v3/testsuite/27_io/headers/cstdio/functions_std.cc
! b7493858300627c1f6f4ea34e0491dc0  libstdc++-v3/testsuite/27_io/headers/cstdio/macros.cc
! cc6b4203029b3a83248820b30334bd0e  libstdc++-v3/testsuite/27_io/headers/cstdio/types_std.cc
! c246735e030f2a891097b39f7b1f674f  libstdc++-v3/testsuite/27_io/headers/fstream/synopsis.cc
! 3044137c107ec72c5592285f7cc323cf  libstdc++-v3/testsuite/27_io/headers/fstream/types_std.cc
! 7212250d677876506f0df5e1b018e210  libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc
! 8801627458be811224b1417875feacc0  libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc
! 0c3353f34afae391b62fc668551431f0  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
! 28aef2d437b2722351cf2ce1b9c4b993  libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc
! 66a0cddebdef1b8b8ebc8ae6b9e598da  libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc
! 8fa2f6545fa9a2c7adc1d35f3d9f5696  libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc
! c3866199dfc4de657501b07fa13d577d  libstdc++-v3/testsuite/27_io/headers/istream/types_std.cc
! f439b4b7fbb947db1db63da6c615d89a  libstdc++-v3/testsuite/27_io/headers/ostream/synopsis.cc
! 9597578834af5e640d77e94c73e0f721  libstdc++-v3/testsuite/27_io/headers/ostream/types_std.cc
! 043dc31e0aa6b8efbefbb2391c566334  libstdc++-v3/testsuite/27_io/headers/sstream/synopsis.cc
! 9368e384b672f904a986b56aa4c2c500  libstdc++-v3/testsuite/27_io/headers/sstream/types_std.cc
! 01a628459fb4720e026ca32da6b6da95  libstdc++-v3/testsuite/27_io/headers/streambuf/synopsis.cc
! f446051a42683bd3c6a3deb46f4496f6  libstdc++-v3/testsuite/27_io/headers/streambuf/types_std.cc
! a696d9700af7b8b2e384bfb94713f795  libstdc++-v3/testsuite/27_io/ios_base/callbacks/1.cc
! 040daa05ad8972b823adcae6abf4d36d  libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
! ead243f8ff54234142bcd057133a1669  libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
! f907fe99c5c0722167ea22b43e0b1ff7  libstdc++-v3/testsuite/27_io/ios_base/failure/cons_virtual_derivation.cc
! 671b88de7d10e7efca8254d2c716ec9f  libstdc++-v3/testsuite/27_io/ios_base/failure/cxx11.cc
! f39c7c8b48e3e18e7abfffbd01bd51fa  libstdc++-v3/testsuite/27_io/ios_base/failure/dual_abi.cc
! 8d42bf64f2bdcf6ea07c75a5216507cb  libstdc++-v3/testsuite/27_io/ios_base/failure/error_code.cc
! a258b60757fc5dabbb41fcd8308594f2  libstdc++-v3/testsuite/27_io/ios_base/failure/what-1.cc
! 68fe386b36559342d8b4ffdab8869dae  libstdc++-v3/testsuite/27_io/ios_base/failure/what-2.cc
! e8aaa330db946c1280b52f7c8af3a2b2  libstdc++-v3/testsuite/27_io/ios_base/failure/what-3.cc
! 03b7b303d326cb2b807d9d0b5b36d4f5  libstdc++-v3/testsuite/27_io/ios_base/failure/what-big.cc
! f436280540bf430c6401044d287be0dd  libstdc++-v3/testsuite/27_io/ios_base/state/1.cc
! 54f6cbcd7cb5191b5a821a1057d80f49  libstdc++-v3/testsuite/27_io/ios_base/storage/1.cc
! 7801ca17660617ed8482d1d71e3e5c36  libstdc++-v3/testsuite/27_io/ios_base/storage/11584.cc
! d02972a5ec43149ca09efa8acb2409ac  libstdc++-v3/testsuite/27_io/ios_base/storage/2.cc
! c2d82f76af0ed822e55bca3d3bf71a17  libstdc++-v3/testsuite/27_io/ios_base/storage/3.cc
! f1758d093b250ea500d2f89948efad13  libstdc++-v3/testsuite/27_io/ios_base/storage/68197.cc
! 80ef6ad1e6d0b4384d64cf00e64b6cbd  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/1.cc
! c2674853e3a1b10f672e6b7d22e03fbb  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/16959.cc
! 0bfd029b916a57f8234a1294cce01b1a  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/2.cc
! 88a7d957d40af5c378fd8db527a8c0bb  libstdc++-v3/testsuite/27_io/ios_base/sync_with_stdio/9523.cc
! aa34ba5c8d9968bccec54ab24be0fc23  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc
! 6ba3f9aca09a7e99f83e907def1e16e4  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/case_label.cc
! f70059fefd9ab66392dff32240b47252  libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
! b68981c73be97f6e1c35f31401a154a8  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc
! 501d4f5c0a4646b93eef6e22679740a9  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/case_label.cc
! 3b9c4a36e66daf60745e37869e6b4b94  libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
! 338432582bb68bf81b57907202c4c90c  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc
! 963af8eebfa042491464b964f84059e2  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/case_label.cc
! 9808b42cc1bd8fe69ab4bd4bd7edd522  libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
! 83e49495bcde285093e4d5bbaeaa75d9  libstdc++-v3/testsuite/27_io/ios_base/types/seekdir/case_label.cc
! 499fee96067fecd07a83f3f70647dc17  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/1.cc
! ba15cc9aa8e442ba6eb6d25d2d6709ea  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/char/2.cc
! cdbdb1a5030cba271466e961387374f6  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/1.cc
! 15b635fe05223c692256f8f8ad14107a  libstdc++-v3/testsuite/27_io/manipulators/adjustfield/wchar_t/2.cc
! 68cf58455daf69421e28f38d2c814e2a  libstdc++-v3/testsuite/27_io/manipulators/basefield/char/1.cc
! 8fc284259b86f1fc4a481da8cebae22b  libstdc++-v3/testsuite/27_io/manipulators/basefield/wchar_t/1.cc
! bae3429a961a4f697992ab9a8c87d349  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/1.cc
! 8ef9a65d3ac059e60d597c17e9a78cae  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/char/51288.cc
! 75d4ad571b93639c0ef3d34c9e0c77ac  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc
! d6ad6c2feb14e4b9b47d460e4c2659ac  libstdc++-v3/testsuite/27_io/manipulators/extended/get_money/wchar_t/51288.cc
! 5f92b19e106a3150b3d1bb9f13a613ce  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/1.cc
! 84f2d450c19d497801b8a75f5c50c0ef  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/char/2.cc
! 37658b91e01d038c828047b5bb54197a  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc
! a427d070dacd952ea5a531a987a37e3c  libstdc++-v3/testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc
! 6b750a635b8747bec6f19cd65c592308  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/1.cc
! c2cb52cb62f97b62d9ac09965cea306a  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/char/51288.cc
! d353087683fafe9089eda9b2a19cc71a  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc
! 00d6000ceb3f1ffe7b573a53d82fd248  libstdc++-v3/testsuite/27_io/manipulators/extended/put_money/wchar_t/51288.cc
! e39023a3ba7ab1f46ad2f32e6245604d  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/1.cc
! a2af87a770313368dfc886d95ee6203d  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/char/2.cc
! fc6bb5ebf516c5036a732af8c1892328  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/1.cc
! f47f0d6b1bc8b2b048da44662f9c0193  libstdc++-v3/testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc
! bf588c2009a509dd55bb4129cca3f76b  libstdc++-v3/testsuite/27_io/manipulators/standard/char/1.cc
! 3e2ccedeec1b97cac3a4c7def215d9bd  libstdc++-v3/testsuite/27_io/manipulators/standard/char/2.cc
! 5b96e7b00ac5883313782038ac3f6106  libstdc++-v3/testsuite/27_io/manipulators/standard/char/60270.cc
! 4d601a9c1a70a3a34e44341769fde5bf  libstdc++-v3/testsuite/27_io/manipulators/standard/char/dr2344.cc
! 79243f5ad8ef89bc474ff82554a06fc5  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted.cc
! 3d874a20be2550a9120e9f3dfa51ec85  libstdc++-v3/testsuite/27_io/manipulators/standard/char/quoted_sv.cc
! e5caed2d18a817b4e667b606f5103854  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/1.cc
! bffd508308e99d7241e62cc8f9cb3694  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/2.cc
! d9168e05287ecc659736ca9f4ac1bbae  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/dr2344.cc
! a06f623c7a225e12b91e5543f28c57bc  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted.cc
! 1bcf49da6887fbddf48803e9c2c3b1cc  libstdc++-v3/testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc
! 7276b8d2bb6ff579dcc783cce19e33f9  libstdc++-v3/testsuite/27_io/objects/char/1.cc
! def803eaa171df8ee37a334a33d26653  libstdc++-v3/testsuite/27_io/objects/char/10.cc
! fcbbf908eac5eef10102d2344051ca1e  libstdc++-v3/testsuite/27_io/objects/char/12048-1.cc
! 9cbf7112129ee5e739f4f0ed4967b318  libstdc++-v3/testsuite/27_io/objects/char/12048-2.cc
! 3a0aa0df5f4211e148607427d7578bd9  libstdc++-v3/testsuite/27_io/objects/char/12048-3.cc
! 3c481888d23c72034b619343ae7942e8  libstdc++-v3/testsuite/27_io/objects/char/12048-4.cc
! 681fa384d9ff9d56e51553074a2ba24f  libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
! 9fed171ca3dde81ac696242efbf3a3af  libstdc++-v3/testsuite/27_io/objects/char/2.cc
! 17a8d38296ce4585b4f86cd037d7e70e  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.cc
  8c1b578bb2722053c950f2cf943baf83  libstdc++-v3/testsuite/27_io/objects/char/2523-1_xin.in
! 599e843630a70601a6fe215598ae9a92  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.cc
  daa7a5fffcba8b5ec5ca1a8de7734416  libstdc++-v3/testsuite/27_io/objects/char/2523-2_xin.in
! d4c98191005629c867c52d02eea50778  libstdc++-v3/testsuite/27_io/objects/char/3045.cc
! 8dbdc8f9f3c18eb1e154f04d7e1943b0  libstdc++-v3/testsuite/27_io/objects/char/3647.cc
! 89ee10c2dc10d0a9394695534b4f2724  libstdc++-v3/testsuite/27_io/objects/char/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/char/3_xin.in
! 6a282e2e2798544950658a6197e96892  libstdc++-v3/testsuite/27_io/objects/char/41037.cc
! 70f7904f6826031affdccc7d8be66adf  libstdc++-v3/testsuite/27_io/objects/char/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/char/4_xin.in
! a6d53727de724d3781bf2e57258b641b  libstdc++-v3/testsuite/27_io/objects/char/5.cc
! e1aa4191fa9648ec16b653ceaa9f897a  libstdc++-v3/testsuite/27_io/objects/char/5268.cc
! 73e6ec977e7ff7a0fe9eeefc82bfd83e  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.cc
  81dc9bdb52d04dc20036dbd8313ed055  libstdc++-v3/testsuite/27_io/objects/char/5280_xin.in
! 62e4e0c8fb0c2646a5bdc0b6000c3af0  libstdc++-v3/testsuite/27_io/objects/char/6.cc
! 0edbf81f4cf95a7db2ec21ebabbe285d  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/char/6548_xin.in
! 9a3a99a0aacafc508b547c3452fbddea  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.cc
  069d0b68d99275bb4412e90bd9d5c966  libstdc++-v3/testsuite/27_io/objects/char/6648-1_xin.in
! 01d35104e8d8afdae9aa34789579e58d  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.cc
  6b76e6feddcc145dc3499d8d123d9da7  libstdc++-v3/testsuite/27_io/objects/char/6648-2_xin.in
! a37e3554ff5f95b0dcf1de895a7e4014  libstdc++-v3/testsuite/27_io/objects/char/7.cc
! 70012d3321458eb61253552ede48e7fd  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/char/7744_xin.in
! 3a2a1a98a00a12e9e6f37d66de28d883  libstdc++-v3/testsuite/27_io/objects/char/8.cc
! 628fdf39dddc7873733264d78ebf69b2  libstdc++-v3/testsuite/27_io/objects/char/9.cc
! 43a8ecbe2605f9f05feacf89c301c235  libstdc++-v3/testsuite/27_io/objects/char/9661-1.cc
! 8e291ec8f6ac06ad7c389dfd8596eb0c  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.cc
  33ab658c3d687d1d73a0e92a596f725e  libstdc++-v3/testsuite/27_io/objects/char/9661-2_xin.in
! 6dd567d84f77f047f0a684cc1788ba3c  libstdc++-v3/testsuite/27_io/objects/char/dr455.cc
! 7894df614f0927ff72a417bfab7c06b9  libstdc++-v3/testsuite/27_io/objects/wchar_t/1.cc
! 64ad02210179f3d81e59f56cb73b97ad  libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc
! f4cd25d57a4aefaa3365629324ffd05f  libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc
! dbbb54bf235cbef3a98cbc2c6db4d15c  libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc
! 0f13495011fff26ec4a30069686828f3  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-1.cc
! e691c36ef4d7d0cbb8e8c23e987e3347  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-2.cc
! 00e3afcb54e8486a1fa4dd614cedfe3d  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-3.cc
! 1d0b0eb853a2fa8cb6bab398a4f84e39  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-4.cc
! c58437c1de03366bc5e719e224dfe521  libstdc++-v3/testsuite/27_io/objects/wchar_t/12048-5.cc
! 85357f8bdfbab7a8dfe8819a2d1f086a  libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc
! 33149fb4d0124b494f1923c9ff55e57f  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
! 15c6d80f2baa44c3bb5d3f15cad82772  libstdc++-v3/testsuite/27_io/objects/wchar_t/2.cc
! 165b54b16207a8e7b75276c94f97f2c0  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
! 14cb2c02583c1cd10e997e71ffff102a  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
! e43a3699512aa37530cbc1a9f61adeb9  libstdc++-v3/testsuite/27_io/objects/wchar_t/3045.cc
! e0ee948e3bd62588b42110d68d87874d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3647.cc
! b940fed29ed5adbedb420d496483193b  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/3_xin.in
! b62bfcbb00ef2df811b40e469accff64  libstdc++-v3/testsuite/27_io/objects/wchar_t/41037.cc
! 61b29d7c12138e628aa3556218007ac3  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.cc
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/testsuite/27_io/objects/wchar_t/4_xin.in
! 426348d3584c5b9850b89b0132d678a5  libstdc++-v3/testsuite/27_io/objects/wchar_t/5.cc
! a108586a1997600b3a701e4f709aaf6b  libstdc++-v3/testsuite/27_io/objects/wchar_t/5268.cc
! 63e2938d6252ef7209a3845020c982b3  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.cc
  e7df7cd2ca07f4f1ab415d457a6e1c13  libstdc++-v3/testsuite/27_io/objects/wchar_t/5280_xin.in
! 7c59a2d87052c4fcb66925c63d3652b7  libstdc++-v3/testsuite/27_io/objects/wchar_t/6.cc
! 8de4e28358d8bf937e49de73efa4202b  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.cc
  d8e8fca2dc0f896fd7cb4cb0031ba249  libstdc++-v3/testsuite/27_io/objects/wchar_t/6548_xin.in
! 9732f761a4da432ff5c548b8da4e80f2  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
! 2436378d02decd8ee36bcf919587b966  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
! 7f329f910a929826c9bd4eddeb8ff0a4  libstdc++-v3/testsuite/27_io/objects/wchar_t/7.cc
! fe83e93086e5c6610d146ba083995ac7  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.cc
  0bee89b07a248e27c83fc3d5951213c1  libstdc++-v3/testsuite/27_io/objects/wchar_t/7744_xin.in
! 9bf2014263645d3d95c30399ee7d2a91  libstdc++-v3/testsuite/27_io/objects/wchar_t/8.cc
! b1b2edf669fb14e06ef00017a64ce67a  libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc
! 2ba4189e82aadfce7360a3bdc38d8992  libstdc++-v3/testsuite/27_io/objects/wchar_t/9661-1.cc
! d1265fa86fa3f51c1a8c48f6ce054cec  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
! 191c2b39d35cbb03774d68ca1c8ed8fe  libstdc++-v3/testsuite/27_io/objects/wchar_t/9662.cc
! 884f9924d63cda85d563691777b17daf  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
! bedb4787180de48850b9d3e93b069289  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! 9411c3470699cb8b6c41dca62d32aa88  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
! 1fcb896c44256929a07977ca21fe5196  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
! 37900198219b3bf746a84814e92c58b9  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
! 0289439f25a083a7baf572a21ffb21b6  libstdc++-v3/testsuite/27_io/types/1.cc
! 55db856ec1b3af2dcbff8ef9aeef989c  libstdc++-v3/testsuite/27_io/types/2.cc
! 62b769e1848c549234389e30d13bff26  libstdc++-v3/testsuite/27_io/types/3.cc
! a4ef8bfb1cae02d650288dabacf84c49  libstdc++-v3/testsuite/27_io/types/4.cc
  2311cea628cce5b052734c24d5a5cae9  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/107376.cc
! 0632fbe1e856f16fea0c3b2f225a7ee8  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc
! 7bdd0e8358b22bb39e1f0080b4c7bdc8  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc
! 74588f4c4a36bd69a092a4c8c035a939  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_01.cc
! a6b0401414d8536e20b18602fdc5112b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc
! 97349f5af2282dd9b73b477a9f1e57ef  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc
! 14819a46bd77c3ca91eb161f12f0c8f0  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc
! eb5ebe38e39cf7721e2331e20a9ec09a  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc
! ed6b3fd9865fd5b1eb8453ef5714ece3  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc
! 72d2b3eabe2d25753a561d61357d6cd7  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc
! 8c0bc8077d9dbed9224e527b8a48167f  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc
! 7149762e2cd4ad7a661fa2ab7c8f7277  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc
! 5ba243c964fbc2bd09f4528132f6802b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/61601.cc
! e536373ea3dd8ed5a7fa3bbebeeab322  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc
! 2901476c25cd8d56f7810d2af7928e6b  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc
! 3810b079ae384f1d892dcf641a2c1100  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc
! 587e54663ac3b9b79d3d57bac815e71e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc
! fb26628c630dad8cde79f802b7428dbd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc
! b700b5b51ed49a08ca08c89f3c40a915  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc
! 2606869c29a605ff67d40491f94f3f49  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc
! 457d5d7de507996965b9f13971599539  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc
! b930ffe2736a91b3c75aa35b04f1e056  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc
! 9e36bab66367f23b4fde85a2bb73e918  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc
! 4b16896b763263cc572a6ae5c4888e86  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc
! 91735ddbe9c20cf287eefc5d8fccd383  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc
! ff8186ed755a146b3f6e6f31e2832abd  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc
! 9a7b54f33fa65c71cc96f8aa512a379e  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_questionmark.cc
! 84e76a80cc67fa9305575e150ddcb70c  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc
! 68f96d9e59a05789eed1bdf1fea0ac67  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_any.cc
! 4e17a74e8ef358dea06f518078fc5674  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc
! 9a4cddcf7e246c4099b7d502a2a8efb0  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc
! 107cdfceea0386b72d540f51e476f588  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc
! ead32a639132135e4ffd8de7ecb756d3  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc
! 8beaa615f92e0d44a092f3447fad68e7  libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc
  2b65ead41cca6c486af5b12cb9181709  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/103664.cc
! 2287f1b0c155a03f47a46cd61c619cbf  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc
! aa6f2e27dffbd6aa41612e0405ac209a  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc
! ff13e85821d76e4a77b40b4e19037e4f  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc
! 184cf6a0817948beb707867a977dee26  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc
! cca3f0eca969ccec3667e5776c6c94c5  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc
! b90a5fb1a08571f801ec1446eb032a5c  libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc
! b68e5043d3cfe31ae366f37e5c4406f0  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61424.cc
! a510998d3ea78f63790482ebe40fdcd5  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/61720.cc
! 2e780eec015c661c191dd1ea0508d3d9  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/basic/string_01.cc
! 2f255f1277804768b88ff93619221615  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/dr2332_neg.cc
! 5675f93e4fc6ff47ebbb82c774eb7325  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc
! 36f711821f5057beaf9a9645703ef147  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc
! dc0db886b6f96e622bf9eadf2e8edab6  libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc
! 0a472c4108ef8fde7df0203c1013b493  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
! 629858de1fb8697986a7f51a6dd52f96  libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc
! f1696746b7ae246d0920622388e67aa7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc
! dd6933e16e2c3716ef72de35f284821a  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc
! 9cbfc7b78ce49f5aaed35de13d3e9e67  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/lwg3296.cc
! 7ae44e2ba6294c950495a57413787efa  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/moveable.cc
! 19a4e058a3acaddbbf4dbd595ca6b045  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/pstring.cc
! df916fede44af5c997b3ebd1f3552a83  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc
! 5fa6362d2a7287db9b10be5b463d12e5  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc
! 15ff039c29a39d16eb8fef489f653127  libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc
  195cadd08b447221da1077de685740f9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc
! 282e0e1d9d4605a9aa2012005bdcf90e  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc
! 94d3f258e3ef1f1294fc8e290f1d1e90  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc
! df349f41eb823568b21bfe32ea4cf2d1  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc
! 39da93be9107e990c7988576d620323f  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
! 1b08447620f3a1a3ae3f45c35d0a16a9  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/range.cc
! 8f64e48dfc5b17eb36b2bf2aa25133fc  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string.cc
! 35b084e0adf8fd862779a9174235e2e7  libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/string_op.cc
! e6aa89e921a62590290bd3c85dc28df6  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/47724.cc
! 50b93a12730500489343aa7b9c328d67  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/83598.cc
! 0166b985bda490a8ae4abdd5592b4abb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/cstring.cc
! efabdf616d681c71b74407639427ed2a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/default.cc
! 59917b57e8671b905658846790a0247b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc
! aaa5ecd452789445a706363ec17f9c5d  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_char.cc
! e31bbced84072eabc716933cb43d32d9  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/pstring_wchar_t.cc
! 82601a15688934dbef85c8734578dd7e  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc
! dafef96a0790f094291eb90cc1578a54  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/string_range_01_02_03.cc
! 7c1c4733c6246b14a3442c3351157ec0  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring.cc
! 2b93e84cab062adc80ba2e3c4b04ee8b  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_awk.cc
! b4184534a7570ec9e4ff0ed1a2bc23cd  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_ecma.cc
! 26da5d7bc48f857ae25009976a4ab85a  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc
! 152c9b1869b5524f52cbb1a93b7dce5f  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc
! 61d5e7b60dfcd024702f7d3cfa102688  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc
  9c80b6a78eb2b9bd9362289c681a9cfb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc
! 767f1de133990930a5d5dd6dc6d11481  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc
! c25d1caf9605ed2b50b4bd7bdc2b6473  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc
! 5be8d61ae3cfadcbd47fad0ad8704197  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc
! 4253f957bf6fa300c849553c718f83b4  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc
! d6b4b6a311605c0efc742b94969ea8c7  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
! 10cd41ab38a2b52a56b211ab72f3b562  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc
! 802798f791ff7626a5f6fc4410d371b7  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc
! e90b319d7ee441f9366b3ced6e1afa89  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc
! 5cee7bceeb68acc5e8f4a61d3bd3a7b8  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/cstring.cc
! f228503605494f43bc491686dbfdabdb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/default.cc
! a7480536f881d030778bd9fe180e17fb  libstdc++-v3/testsuite/28_regex/basic_regex/ctors/wchar_t/range.cc
! 654ee6dcb2fdea3381f7ca892bfb2bc8  libstdc++-v3/testsuite/28_regex/basic_regex/imbue/string.cc
! 0cbf71f653ee427f296cbb5c46752fb4  libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
! b620ebbb2b12bae50b9605dd7aaa6348  libstdc++-v3/testsuite/28_regex/basic_regex/requirements/constexpr_data.cc
! a0eee2bcde7b230ac1464c855c03aa72  libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
! c40f73beb87a41f42bb25260af97d0bd  libstdc++-v3/testsuite/28_regex/constants/error_type.cc
! 92b005bbef89b7c094b7e00677084007  libstdc++-v3/testsuite/28_regex/constants/match_flag_type.cc
! 41ec9b5f5bbfc5c4224aa89bff50e31d  libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
! 3f3d6812bea8c682652e08c1c409f4ad  libstdc++-v3/testsuite/28_regex/headers/regex/std_c++0x_neg.cc
! 863395af15e8c3a28ce98567a49af1e7  libstdc++-v3/testsuite/28_regex/init-list.cc
! be11e24eb0013edf0e6cc13e3e39393f  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/64140.cc
! 3dbdfbb798a14bb83b9aaedfb298c6ae  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_01.cc
! b587b629abaa76afab9c6c040a33d223  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/char/string_position_01.cc
! e171f644ca1de86a30eb1e544957ef86  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/default.cc
! 92a66683e3c2ed12b29ae3bbac6f2561  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc
! a9064a1de3d4f19952b53a4986043f25  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/ctors/wchar_t/default.cc
  fb837b2517e3a52c0fd562c8a8f23065  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
! 0f27a527e6218b2a82b62394af670063  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/typedefs.cc
! 29912cc36cbffd0de39f618c5f6879e1  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc
! 3678e63c636dcdad8257a20a6ed987cc  libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc
! 5532b8848d25b834a37522910b75cf54  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/64303.cc
! 49de2723f7e927c22a3bc0edbc26ce24  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc
! 7f13753da20c236aad46c91c99f7ed99  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/default.cc
! 6e114a735d07fc4673c12aa11aef394e  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/ctors/char/dr2332_neg.cc
! 6ea0359e627bdd32e45a16ffdce884d7  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
! d5d368080b9d9f00d9f2511a43074b23  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc
! aa423b31540934716ccae40d8399fab0  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc
! 1971251e0008bc9b2a8ea358a18dd3bc  libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc
  e50868497a6eac9c6a7e389f3cda11ef  libstdc++-v3/testsuite/28_regex/match_results/102667.cc
! e32cf283295ba6e487cae85829e5deca  libstdc++-v3/testsuite/28_regex/match_results/94627.cc
  ae3c69a2af41b63301190a3e8902a808  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/alloc.cc
! 892f833bc646dbd17e8babc8b3c30137  libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc
! 8ed55a743d4c8c535d0137cf43407667  libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc
! d20645816507ce0c7941e9a383250149  libstdc++-v3/testsuite/28_regex/match_results/format.cc
! 824f5332c16c8f72539234a7c73334f6  libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc
! 4f3a7613497dde81777e776d84bd8c38  libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
! b941e5f5237e3ff8b09c74184e390b20  libstdc++-v3/testsuite/28_regex/match_results/swap.cc
! 081cf3de84930858f88bd2fac2164e0a  libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc
! 3fbc6bb0b8f2401ed6a4e0b5aa3e8b3a  libstdc++-v3/testsuite/28_regex/range_access.cc
! f28717ab66b783deed079527260722a1  libstdc++-v3/testsuite/28_regex/regex_error/base.cc
! ba97cd6effc984ae696bcb69fc879766  libstdc++-v3/testsuite/28_regex/regex_error/regex_error.cc
! 17830c866bfd96444c6d9739b92944d3  libstdc++-v3/testsuite/28_regex/regression.cc
! f9d1843758692fe5f3c4c8efe224a7a4  libstdc++-v3/testsuite/28_regex/requirements/typedefs.cc
! 3eac6411dadde659ef89d8118aab032c  libstdc++-v3/testsuite/28_regex/simple_c++11.cc
! 72d3d65eecc62437c7e7b9402428eab2  libstdc++-v3/testsuite/28_regex/sub_match/cast_char.cc
! 67870cbe89167578d7f85098bbfa6e44  libstdc++-v3/testsuite/28_regex/sub_match/cast_wchar_t.cc
! 5eb8c3c034aed30bc13b71444ea4be14  libstdc++-v3/testsuite/28_regex/sub_match/compare.cc
! f943d4bf2aed6ea9c7b6b2f70190ae22  libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
! 66d50b1720cf2bde62c1e14ca9a96a8f  libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc
! 016b68348314c7e54774c1927b0a4963  libstdc++-v3/testsuite/28_regex/sub_match/length.cc
! b34e1f836c2e9c15a0bb611fed5e31a6  libstdc++-v3/testsuite/28_regex/sub_match/lwg3204.cc
! 240fa498a5f067f9ed7020c9f6baa0c4  libstdc++-v3/testsuite/28_regex/sub_match/typedefs.cc
! 0f598b7f8373b9c8a7880da1fa53f9d9  libstdc++-v3/testsuite/28_regex/traits/char/ctor.cc
! a7abcd80901c6251df12c79fc0fb0fee  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
! 19c145a97226f18583bd32fc226fe0f0  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
! 003496ff03087d6bbd83bd3d29b780ff  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! e44c332a02480481151401cd7629c4d8  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
! 1c357e99493b94730f35e8d50b9f766d  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
! a0a8f935630e3abec0299c8b4f09806b  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
! dd9326600ed0a500f7e849fe8b56f814  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
! 8786acfffe8ee85fd3c357a8b4674118  libstdc++-v3/testsuite/28_regex/traits/char/translate.cc
! da0c0c8c0c0ccbd26c40e87978da6c1e  libstdc++-v3/testsuite/28_regex/traits/char/translate_nocase.cc
! 44899c187a6f43fb0b6b12b9663c7485  libstdc++-v3/testsuite/28_regex/traits/char/user_defined.cc
! 55eae5ef8657f4b28a45f9a6739ba87d  libstdc++-v3/testsuite/28_regex/traits/char/value.cc
! 01d2e2521090863941c6737f569e517f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
! ca1ce72f5652cda686944065294a2397  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
! 29270addaefac522525bdd9783f9f9d1  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! 848d9589fd5999c3266bd3fa668a7628  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
! a10c9099f6e16ed951d99cba28acd582  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
! d615055ae2482a01d4174faecea0d74f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
! 7e453a6fc73f3d82433d2e1001db3fac  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
! 1a11fe94de057d6de75585f9dffee6ce  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate.cc
! d292faa7351f8fd98a8d7c5040de0bd7  libstdc++-v3/testsuite/28_regex/traits/wchar_t/translate_nocase.cc
! 129906f2da1107ae2236895dedbd6653  libstdc++-v3/testsuite/28_regex/traits/wchar_t/user_defined.cc
! 521911a954a075b38a2f1d1be556a3fd  libstdc++-v3/testsuite/28_regex/traits/wchar_t/value.cc
! cb53c9205838aaf7e17f2a5b47ff8d90  libstdc++-v3/testsuite/29_atomics/atomic/60658.cc
! 0a3aa6f1ef757c8dc3c2fc50df8a57e9  libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
! 1ec4aaad745617e0c97d0a823195d3fa  libstdc++-v3/testsuite/29_atomics/atomic/62259.cc
! 588821591e4ba7f1dfee281f5c8f2a0c  libstdc++-v3/testsuite/29_atomics/atomic/64658.cc
! 372a9e8c754b70552d6d94eb6f944b0d  libstdc++-v3/testsuite/29_atomics/atomic/65147.cc
! 9222a1082e875b4a9550dcf56c3a66c2  libstdc++-v3/testsuite/29_atomics/atomic/65913.cc
! fbaf0266a8ac9e6e6e0f56731e9c767f  libstdc++-v3/testsuite/29_atomics/atomic/69301.cc
! d4597c2d2a9d48213958196167f7824b  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
! 66865911f7c57b77d964389ac3022db7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
! ff2b392f6783fa3f15a3e1b095859a65  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
! bb3edba6296f96609c727171b522c41c  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
! f8335b6527363df52eb275583d3d60f7  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
! a6a306e6273bd1fb4124d807b6a581c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
! 3f9bcd0b4dbd44b7aac26bf92043a11d  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_list.cc
! d777490a22915bbc43d959382a9f698f  libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
! 8d7d2199f683d1abc7a81a03cef44361  libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc
! 9ea62afbea789d6ceb9c1c2105f144c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc
! f974f6fadf4fc3e716ea96f793a66be8  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
! 1af166c5b6bdcfe858d6133bb80062d3  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
! a05451f608e6909543bc4a6f1e5e6143  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 822ec88a7f5dfe8ce7d354c55824d6bb  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
! 6ec8c77bd0b9550e1af1efd741f41ded  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
! e9a010906a14cb93ae31af117674f8f0  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
! b334c02c6c8ce33e81af53c9dcfebe14  libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc
! 64c9566bb374ad1bfd4862bf62e16bf7  libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc
! fddbdcbbce075f32df711c576529e940  libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc
! 073739ea9f1eef25a6b8ee9d8c3ab821  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_assignment.cc
! 98a9ae72edb8ee0b1bc5b7017db963dc  libstdc++-v3/testsuite/29_atomics/atomic/operators/integral_conversion.cc
! ea6d3e75eefb33e70680fbf897d2ea83  libstdc++-v3/testsuite/29_atomics/atomic/operators/pointer_partial_void.cc
! 06526e15cc171bf743b814bdb4e55d6b  libstdc++-v3/testsuite/29_atomics/atomic/pointer_fetch_minmax.cc
! 356c3af6a6b91d27b1d00bd6d1ba0715  libstdc++-v3/testsuite/29_atomics/atomic/requirements/base_classes.cc
! 2eea91a6cef257255e1d66208fc3623a  libstdc++-v3/testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc
! e8fbf1bb05649946ef19b53b2a8892f0  libstdc++-v3/testsuite/29_atomics/atomic/requirements/explicit_instantiation/1.cc
! 8a061d3f6c61832aef35f15eb624ff0b  libstdc++-v3/testsuite/29_atomics/atomic/requirements/typedefs.cc
! 8df9d510c4fdaeb2eb7a064f22dfc95e  libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
! 59ed38c0601c7ca009f8d6e1ebde06dc  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
! 7e4531127939b81710fb3a46a1018e76  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
  0c57c2f91f968ace2a2fc16b2f362a94  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
! ed0554d6973c851af0ae5a986584b12f  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
! ff2aa0e57e8825201342cab7d7339e2d  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
! 6471c41394a6913a6417718a737e3098  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
! 51ab8b4cf5c687cbb256d4b2c46d55d9  libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
! a16236e087264a0002539cb72911b6e4  libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
! a179886146a756712f75edaaacc68ed4  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
! eb755010fefc2d7399775cb955d0a93d  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/56012.cc
! a555cbcda3a87f1cf69ae9606f541f91  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/aggregate.cc
! e64e2a8d81d0a430ece9d3191141ff8e  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/assign_neg.cc
! 196f1ef4d1c089a2dfe3b37cfc61d463  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/copy_neg.cc
! cf5562dbc1bf65a203474e89cf5a97c3  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/default.cc
! baf2e31f788004ce05193f2222184dee  libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
! de76e3720e4b6c54a46b00b44137957e  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc
! 58c7d5493769afa4fb2bc5ac2eb155ce  libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc
! 1998a3cb822062daf1640adf7b0ae767  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
! 5a9af0277ed1d8eecd123070ba6140b1  libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
! 7b6381196163397f564a011e5c901fc4  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc
! 9c301151d91972ef0efb8d4301e26b51  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc
! 9c301151d91972ef0efb8d4301e26b51  libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc
! a2edc235165d656f0611e1422876c7b4  libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
! 98cfb50966a9066142a005d9358eedb4  libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
! 41185b5b5b99a0caeb19f7ce3fa5c913  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
! 8a6b04cf70d6451745e498d015153939  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
! 0816defa216e9a0400ab47ced376f31c  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
! 35c0bdfa26e9c9f23b175248108240ed  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
! 485f49cf229c4fd3621b7f5be6574f71  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
! 25faa0b8cab947a81054c74813773331  libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc
! a8775224bc272bdb6ab78b664113e11b  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
! 495ca97d66bfdc126292495764579e29  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
! 13a7eadda9dda1df32b00313186b860f  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
! bdcc9f51c74fd4f9d058bba9fdcd5c8c  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
! b32922ab00afc357a823492f9b8d8b4a  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_list.cc
! 40dcda4bdfed56337b2be9e318174098  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
! 9aa722fdd7c6e566f41e2d6867d59820  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/default.cc
! fd968dbf2fcb9e3f38ec990b5a68790a  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/direct_list.cc
! 06d11593f7f8f723b9191749b12a8f5b  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/single_value.cc
! 37484f2185fa134b24894e9bae0f9dcd  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
! c194c379a7913582e21284169fb07dab  libstdc++-v3/testsuite/29_atomics/atomic_integral/is_always_lock_free.cc
! 49916b00a3edf0ee609af9f7b43beebd  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers.cc
! 80657e5fe1155ba0eff550cd9d41a930  libstdc++-v3/testsuite/29_atomics/atomic_integral/nonmembers_fetch_minmax.cc
! 1649b721a86d7fa1fb699730f6a3effe  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise.cc
! 51103359c0774e947c399caa898e96ea  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
! 83da00975afa7b0616add9c483c16847  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement.cc
! adf573379964f3343d137bfcccd7d5b0  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
! df4870bc0fe4e130e2d0b6b4e579983b  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment.cc
! a80d9e42b449a708a9222f254e9b4b8b  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
! c85fdbb08c35c8635255e9460e80b234  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_assignment.cc
! f882609fc9cef14853dca37c0a480f1c  libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/integral_conversion.cc
! b17b50b978ee5a01b9a69e88a670f2a1  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/standard_layout.cc
! a2be55363f50241a5784e780e94704b4  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/trivial.cc
! 87dd91704538b12197b3273daa13e408  libstdc++-v3/testsuite/29_atomics/atomic_integral/requirements/typedefs.cc
! 002cdee8d7e6848d568b0bebdb3ca8bc  libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
! 44718b8809e2d7b2511b77443cae1971  libstdc++-v3/testsuite/29_atomics/atomic_ref/address.cc
! 83cced2ba3130c560550818f7ea2bbba  libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc
  32c306fa56643321c7e2c4c7920c2990  libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
! 8c8c1dbc7c6d7c022d5e2b7b3c0dca88  libstdc++-v3/testsuite/29_atomics/atomic_ref/ctor.cc
! 792a65a5e5987084fbf85d26510b681e  libstdc++-v3/testsuite/29_atomics/atomic_ref/cv_qual.cc
! c57185193702620b24b0faea2ddffe07  libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
! ff483e47cc304ebed2db904a6b22972d  libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
! 8162e7335db0d5d2f52d167918157dbd  libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
! 76d0cc744a07bb7d5fb86e971a18a3c5  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
! 466eeaef9d0bd9d12bfc1c0d9b52cc18  libstdc++-v3/testsuite/29_atomics/atomic_ref/integral_fetch_minmax.cc
! 779308cbe51f34e0b8b26f34816217fd  libstdc++-v3/testsuite/29_atomics/atomic_ref/op_support.cc
! 7f262f301b67efbcff14280713c325ba  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
! 33656e5b621a8bc9c3ad9c515cd4c9a7  libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer_fetch_minmax.cc
! d89567d561f7608f056076f9523ac8ce  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
! a7e1f4923dbff03d5c3823e48f25b4d7  libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements_neg.cc
! de5a5e022da3a4c2ae1ea6e048a7e6f4  libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
! 5df3828564e4fcf271b2e2fe95522c1a  libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc
! fa6faa9b9a68e22b822390b629091efd  libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
! 75be78195d58beee455dae2731b56a52  libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc
! 0b0dbfb7dcffdb0f368cd4a2252a23b8  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
! 82f9f33f5c493108ba6d098a5be251e3  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
! ef44538cef82c833a5b07867b9a57cf8  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
! 837af74a24dbfb72f301bf58f3ca83a7  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
! 62e01d6e62aac68c5cb5e28d5f47afa2  libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
! 80495a66dfe62bdd7951e4876d6adfe1  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
! 435a921956375bb0bc807aa816ae0016  libstdc++-v3/testsuite/30_threads/async/42819.cc
! e1a27b715ab175ac4d5cf30b7f82387b  libstdc++-v3/testsuite/30_threads/async/49668.cc
! 6e1010653166bf42e59cd8d37fa81c86  libstdc++-v3/testsuite/30_threads/async/54297.cc
! 0bb75bea066cea3852ce21cbc308d322  libstdc++-v3/testsuite/30_threads/async/69724.cc
! f67a4cd90b47f9682e7e4a17d3c9026c  libstdc++-v3/testsuite/30_threads/async/84532.cc
! fcb040ba0ecda8386c4bffac78392de6  libstdc++-v3/testsuite/30_threads/async/any.cc
! 7379c8d5d60827e0c129900eecb7c080  libstdc++-v3/testsuite/30_threads/async/async.cc
! a9ee449624be1d2f04fbcba9a2563149  libstdc++-v3/testsuite/30_threads/async/except.cc
! 3581223626544dbed4271d07332cea03  libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
! ac6e8433c7593ce27f1f19d435efdb72  libstdc++-v3/testsuite/30_threads/async/launch.cc
! afbb6b097641191b4ac1de7a048500b3  libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
! 80d3b2d5b301813d0726b555eea14870  libstdc++-v3/testsuite/30_threads/async/sync.cc
! 3432498011055ff358ed551bfb361e19  libstdc++-v3/testsuite/30_threads/barrier/1.cc
! 4e7b4b210ed94edab8bc1846861e9549  libstdc++-v3/testsuite/30_threads/barrier/2.cc
! 11b283d703c471f341ff9653640f20b8  libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
! 0bf985f7db73234ccb6b1425b3977fe6  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
! b49e31bba2c401d7763da9a7493694da  libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
! f52b2922d9bd64aa907d03ee0f8184ed  libstdc++-v3/testsuite/30_threads/barrier/completion.cc
! f73c3005579f355eead377fe939119a0  libstdc++-v3/testsuite/30_threads/barrier/cons.cc
! f965da2a54e1f9ba8baa63ebe6bd8fab  libstdc++-v3/testsuite/30_threads/barrier/lwg3898.cc
! de5611549348ceeb7a960de77743eb9f  libstdc++-v3/testsuite/30_threads/call_once/39909.cc
! 5d48dcbe16450236de18d747f92c99fb  libstdc++-v3/testsuite/30_threads/call_once/49668.cc
! f76f15e2a41e75171b5b5f5e991c5484  libstdc++-v3/testsuite/30_threads/call_once/60497.cc
! f608927040801a534ca2adf8763f0bc7  libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc
! 9d107084d0529246130ecec209c2d15b  libstdc++-v3/testsuite/30_threads/call_once/dr2442.cc
! ef3125036303c4abab775bffb6331e48  libstdc++-v3/testsuite/30_threads/call_once/once_flag.cc
! ff617ea4379ad04ed6c9c93f09746054  libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc
! 751c4c11b0b08745b6f26707142a2aba  libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc
! 81b3c942f6f960c8d873bc74bad25538  libstdc++-v3/testsuite/30_threads/condition_variable/cons/assign_neg.cc
! db6e4693937674a986236e3f9b135451  libstdc++-v3/testsuite/30_threads/condition_variable/cons/copy_neg.cc
! 06087cf0be33298b5eb5df0c90b662bc  libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc
  a22ffec2ff77db41215e429fe83d58ac  libstdc++-v3/testsuite/30_threads/condition_variable/members/103382.cc
! e60ebe3b3ca4a349b6f9de9bab33aff4  libstdc++-v3/testsuite/30_threads/condition_variable/members/116586.cc
! 4d7ef86ebb0ccd597299e475a4f17aa8  libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc
! 929e35f20f3a1ff36c22e4e8015ea317  libstdc++-v3/testsuite/30_threads/condition_variable/members/3.cc
! 57f6e6b8b57fb4c7bf2bdad3ffaa5b55  libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc
! 426f178548c40243e34046bbfc6e19b1  libstdc++-v3/testsuite/30_threads/condition_variable/members/68519.cc
! 5827b3966c0ed313ce7af29093eb28ea  libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
! 12803621b86ec43dc3414eea5fb35e28  libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc
! 918c04c41cbe7984180b5bac8b0686cf  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/standard_layout.cc
! 962c0091f1ff352474bc749da03a2dd9  libstdc++-v3/testsuite/30_threads/condition_variable/requirements/typedefs.cc
! bde74bdcdf5b1fcfdab34b3bb7e4e568  libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc
! da52b2a7dc61ad2e55cf8aef3f2b19c3  libstdc++-v3/testsuite/30_threads/condition_variable_any/53830.cc
! 9262edefbd410dd0eb01a2a65cb3a8a8  libstdc++-v3/testsuite/30_threads/condition_variable_any/cond.cc
! 8df486ee41c2ce8e7a196faeabead859  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc
! 7a95acf3f9b89be60905377abd4f4fde  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/assign_neg.cc
! 291de6e72cd7ebb4b6aea3e5442edb2a  libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/copy_neg.cc
! 1d9df7552cb3a23e6537226631c3c771  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc
! abd0d3d2cad67296456a793d5aaa7665  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc
! b60d816f9a20912e80e96e3412efc3a5  libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
! 3d7603ba7bb4ccc7a931e2c1bb4bd2ce  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
! 84c6488f2602b83fcae87c22fe7aae29  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
! 1670fe09a2e863e6fbcde22caac471b8  libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
! 8a6b370e3647d4a815c5704e8e1dd444  libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
! 791ec104cd0cdb427f6e59660d7300e9  libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
! b2d50d5123ebc551c080c8a6a1d74ba9  libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
! 469b731b310130009552d843baba91e7  libstdc++-v3/testsuite/30_threads/future/cons/default.cc
! 5d3934ab98c6fca365fd283c5a647a6d  libstdc++-v3/testsuite/30_threads/future/cons/move.cc
! 6483bba1e07f466761ff96dd4c023a78  libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
! 8d96b84c0fc61d2be6423edb404fbd7a  libstdc++-v3/testsuite/30_threads/future/members/116586.cc
  558c2f7e2a442daebbbc612ba05b66c5  libstdc++-v3/testsuite/30_threads/future/members/118093.cc
! 0daffdf45e060de50b084b286a3f7cea  libstdc++-v3/testsuite/30_threads/future/members/45133.cc
! adf3b6dbd7bc0f9420745649dc8d230e  libstdc++-v3/testsuite/30_threads/future/members/93456.cc
! 432ab1ef6fc818c1014ae291ba6f47c9  libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
! 6666ab686d98dd8ba60a8619f5fae735  libstdc++-v3/testsuite/30_threads/future/members/get.cc
! 8fd191da240f54306cbc2940a38f6a3d  libstdc++-v3/testsuite/30_threads/future/members/get2.cc
! f0e2d00171e3d6125eba957099f1019d  libstdc++-v3/testsuite/30_threads/future/members/poll.cc
! f3491a8c7a9d12f90ad2bc7866fa0591  libstdc++-v3/testsuite/30_threads/future/members/share.cc
! 6b11899e9e3b9bbfb9aa859808dd5fa2  libstdc++-v3/testsuite/30_threads/future/members/valid.cc
! f855235e193f8bd5d1e7bdc9be7fe0c9  libstdc++-v3/testsuite/30_threads/future/members/wait.cc
! 4abbf5bbce644a3ce1a1b4b5a100abea  libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
! 07ec04bce50d63121f2c924799bcdaa8  libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
! fb4a7665b57a54bfee92d83ce8f5b0f2  libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
! 3cfe364550427842a767a84f4fa1339c  libstdc++-v3/testsuite/30_threads/future/requirements/lwg3458.cc
! aae977eb299648f6c21c8e7a9c7718fa  libstdc++-v3/testsuite/30_threads/headers/condition_variable/std_c++0x_neg.cc
! bbf9426d4ccfc69520a0b0ff0e00fcc2  libstdc++-v3/testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc
! 12c15524605671bb259c0633e54ba4b8  libstdc++-v3/testsuite/30_threads/headers/future/std_c++0x_neg.cc
! 1c6ac8de847a48bb26803d02de23fdc9  libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
! 47eaccf5673349c5f777832597f96948  libstdc++-v3/testsuite/30_threads/headers/mutex/std_c++0x_neg.cc
! f35d36cb5b0613d60cfab2986a94b7b0  libstdc++-v3/testsuite/30_threads/headers/mutex/types_std_c++0x.cc
! 3d47051143f0e2e3aa6d7516263ef837  libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
! cf46afcc25ac755784233c05a44daea2  libstdc++-v3/testsuite/30_threads/headers/thread/std_c++0x_neg.cc
! 85b79d11d5f385eac6c6664b3a1661fa  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++0x.cc
! 33403c0efbd57fe2a7b60d921243fafe  libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
! 8956653aa9575eddf9f86b144bb5eeb9  libstdc++-v3/testsuite/30_threads/jthread/1.cc
  7bcf5ad4022b2e3087ff5f773e489144  libstdc++-v3/testsuite/30_threads/jthread/100612.cc
! a61da62690bd8932117199ca70a51176  libstdc++-v3/testsuite/30_threads/jthread/3.cc
! b29f5c66509a1128501b0650ecef63e3  libstdc++-v3/testsuite/30_threads/jthread/95989.cc
! 2557eb7eecc36906c676d7cb4d820061  libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
! dca5798022ed3403d7d9874fef9b36c3  libstdc++-v3/testsuite/30_threads/jthread/version.cc
! ef44942354c015187c2eac16964263e4  libstdc++-v3/testsuite/30_threads/latch/1.cc
! 519d8fea6a6d7b6021ddf65b15307c94  libstdc++-v3/testsuite/30_threads/latch/2.cc
! ed233272fd3a1648f18f9739d6f1a945  libstdc++-v3/testsuite/30_threads/latch/3.cc
! 26506235dd7e1b5c6934f8e9065caf38  libstdc++-v3/testsuite/30_threads/lock/1.cc
! 71ed66fc9ae8ddf591167e5ac416cc6f  libstdc++-v3/testsuite/30_threads/lock/2.cc
! 1a03e04958527270e6f322592ba911ec  libstdc++-v3/testsuite/30_threads/lock/3.cc
! 389e46328ee5e6bd947463f8d0da872a  libstdc++-v3/testsuite/30_threads/lock/4.cc
! 3051290bba55f65787350a088ee9c0f5  libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc
! a57992a43095b9097ebac51cb3b45182  libstdc++-v3/testsuite/30_threads/lock_guard/cons/deduction.cc
  462211b16f32c8238aeef8f418897b81  libstdc++-v3/testsuite/30_threads/lock_guard/cons/nodiscard.cc
! 3e6d9a1f18367f0a82233053991b5ada  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/explicit_instantiation.cc
! 13d41c521f53ce62a8858a1bd52950f4  libstdc++-v3/testsuite/30_threads/lock_guard/requirements/typedefs.cc
! ce51d5499fe0bb3bf643dd3b14e638e2  libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc
! 757ba865df3d684d4fb5d324a914d11c  libstdc++-v3/testsuite/30_threads/mutex/cons/assign_neg.cc
! b9ee45fb5bfe1b31fc349ce8d2df2209  libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
! 2d05d3df4bda317d7ab29fc00b1bf645  libstdc++-v3/testsuite/30_threads/mutex/cons/copy_neg.cc
! f5c6fa671c933af1808f3e3df045d38d  libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc
! 0cea7b83dc3250932f8ff23fd4c2afae  libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc
! 63bab000b8cd3f6de66baed5ee9ca44c  libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc
! 0e24acd655f9c50c7a10f2a8914b8880  libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc
! 5f24a6525326df515907ff764810a9a0  libstdc++-v3/testsuite/30_threads/mutex/requirements/standard_layout.cc
! 9b325b9704ebb3f1a41c55ba47fe20b7  libstdc++-v3/testsuite/30_threads/mutex/requirements/typedefs.cc
! 6ccf1d74b5d240e5213172a1de02de18  libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc
! 4ad63bd834272f725c11ab7734bb0a8e  libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc
! b5e600ee6feb50a49d97a1292c40ea16  libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc
! b07e72ad72233d8b2acaec26da54ff7d  libstdc++-v3/testsuite/30_threads/mutex/unlock/2.cc
! 1b523088f0706dd6ac1cd01102bdbe03  libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
! e7c7c5622aeb09a475e8fdde457dbf48  libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
! b2bf896fda85dfc88e5b89c3e82a3e2d  libstdc++-v3/testsuite/30_threads/packaged_task/79486.cc
! ab0a57871857e887380d6bc5dd0933df  libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
! 9c0665f44f6bf9688760207348273a28  libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
! a5700ef2ee307f4f325cad8df3a230af  libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
! 164e27a36617f99a7d4b22ef7a44d41d  libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
! 38ebbbd678373379f5f10d4f9aba7150  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
! 50eabff3609a0e8ef2e24d7b1f2136fc  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
! 8f106bd3eae64bbf4a85657f9eb388ac  libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
! 384d18b541dd203deae13b9f8589a5d1  libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
! 698fd911dc83ab68df2f09479bfe7f89  libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
! 8bf24aa4b59be2677f45827b6c833267  libstdc++-v3/testsuite/30_threads/packaged_task/cons/dangling_ref.cc
! 2905e3c4a17d6e86c748cce60e3e9f5f  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc
  ba4413ab6f8707eecf7439c419b333f6  libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
! 3ca08c1b4280612a421fce56478d7c9b  libstdc++-v3/testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc
! b11ec442c04c331dd40fd634d7abc211  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
! 0139eb21afe2fe44cdd2659dcd548271  libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
! 4282a95bda26f3f92881346203ed48ae  libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
! dc18fe09623b1cac0f12ced574e0e21d  libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
! 9e94cc3bb60f0b23edb66b1a8cccecc8  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
! 5902b5e8cc04b0eba2210d6498d79051  libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
! 59a07b8317c1c72dfa5f33911cc8b615  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
! 288f3d47b88cef8050d448ad22326d34  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
! d6b0adb5e86a1bae3abacd07a3430008  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
! 69bccaec40e58b249f66851f7046e053  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
! 23dcf07aa2f41f06dfbb7e992049b7b7  libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
! c7c73b9ca28a7b95541a86cc195b7593  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
! 2854ea2b75aa2b152fe91bf99d310389  libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
! 3b37c5c35f6149d4f5476f117a53a2f3  libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
! 298e8f8f222adbc2f05c01d7e8f3f097  libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
! 1ad9888a8ad14e70e362043831d1d836  libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
! c632241f7e063a6f3b82b6e33a548945  libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
! 620578f2ab3490958a46ebec23ed2df6  libstdc++-v3/testsuite/30_threads/promise/60966.cc
! 9ff23d845b809b76435d54e80c773434  libstdc++-v3/testsuite/30_threads/promise/69106.cc
! 0cddcfa708e31cf75f3a302e5d567ede  libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
! 7c3e94a09558198cb0b3ff5568b16dd0  libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
! de8c866458c7d386560a12da513fd566  libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
! e5342b26fb04a5c3bd7f308e6c924f4d  libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
! ed428cab5976dbff0c538ee2dc624889  libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
! 7cbab189ba57db2deb32bb3e83121779  libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
! 959c37866e4b018fb963bb2fa068034f  libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
! 50f68a321375d7000f92827057ea5ffb  libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
! 026f2a2214755ae099e9ed87f5b35819  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
! 8596fd1e4cb20745cb29a0680d217c7f  libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc
! e12a7122ba129f2e7d5aa92c0b40a3a1  libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
! 4e6b17363762a231e10a1976c08242a6  libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
! 4aaca1d81dc50e88a147a3dd5c935628  libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
! f85c8ede99679105af0b7f5e4a6d1b35  libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
  8d747bcd5afe04faffaed0b4915aa245  libstdc++-v3/testsuite/30_threads/promise/members/set_exception_neg.cc
! d836732a786cd413aa2c2eb037dd4574  libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
! d77df97163e1c6936a6c0d6f174debf9  libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
! bd6ab4732bfd0bef570ada81baa85d67  libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
! 420c0b5a2e02293b95c6428669bf04a6  libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
! 0ca82e7fd95e01dc210682737d8eff64  libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
! a2d7051bd9557f0f2fd1cf2489d82314  libstdc++-v3/testsuite/30_threads/promise/requirements/lwg3466.cc
! b1baa8e43ab2922d6d6828e482d86313  libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
! 700e420f652d538caec8e705f810e04c  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc
! f3d45f0f418c2e8f1055daa5e89a36d6  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/assign_neg.cc
! e500a2962c689996445c5f667bf68de6  libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/copy_neg.cc
! ef7a4a39eb0c724aa0455acf7eb0427f  libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc
! dec6522dbfe801b5e219826bb4634746  libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc
! 0bb4d856c3bb0b136b4b0caa0fa577c5  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc
! 693a975859b790e171786ae20f5188dd  libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc
! 8504127fe6104a959a2322ec88f1bdf1  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc
! c5e4ae4a868c393232ce2f02a91bf5e8  libstdc++-v3/testsuite/30_threads/recursive_mutex/requirements/typedefs.cc
! 106111b7cac6e5bf5f8b8953d7d076cb  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc
! 24e90c8d520f97b8b8721819cfb1108e  libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc
! 8e8672af00ed537d4ff910bd98efeff1  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc
! 32b957b635edcd565b335219429216bd  libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/2.cc
! 99e5bbfcc652232cae722a274cdc0e41  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc
! 6fab1d37c2feb341ee33529c820a8aca  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc
! 2ebcce9c92b056870d724ae99d1cad06  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc
! 8d8b0815eebb976c11c2fd27b04480d8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc
! d123f2f92cbcb9991d8b50e8a6d11484  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc
! e900e702a703f6fb190e004e3e25d37a  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc
! 4d05bbf45c64e62db86eea1a0f925c40  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc
! 605c3ff2c86fa9a1f4a2096a2383457c  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc
! 965349ec700dbb5f61ec6f785b0bbe13  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc
! e3a6b38bf28c6794707d2b522753690f  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc
! ee05c87fcb72f7736f9a246eae447d73  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc
! c155778d5bee9424adfa7a277cd42b5b  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc
! 742183d019794aa869a884a494c92764  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc
! 907ed58dd8646cd9caabc3b88e9fd670  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc
! e3a6b38bf28c6794707d2b522753690f  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc
! 4c9f923441df09b7eea365ee5af99cae  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/116586.cc
! f90a19f6bc699ef61f9498d45a166bd8  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc
! 5788da8ab93fd6b200824499a04a39e6  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/3.cc
! 186c6696880bb52796828f9f14b87121  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
! 25224ca354daa174ea83f263193afdd4  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc
! d1b299fe51095c8c68ac743507017579  libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/2.cc
! ac3aeee0cadb4c86b291f5db859488b1  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc
! 510f79bfa7e4145020334d9276024d81  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc
  6d91a3500350913fb0ad2c995ac5c8b5  libstdc++-v3/testsuite/30_threads/scoped_lock/cons/nodiscard.cc
! 7932cc5e2dbd7da5ab8d943c111a4b16  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc
! 2307d9a64ae9c871f44ec4c973052944  libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc
! 1c375bc2ed3ab44080878ffdfbfd062e  libstdc++-v3/testsuite/30_threads/semaphore/1.cc
! 57c8658b1850c9bcf97a3d0f4692e542  libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
! 793ba6602c4ef1d90597853cc48da8c0  libstdc++-v3/testsuite/30_threads/semaphore/104928-2.cc
! bbad618d0600ff51ebf158402e336f56  libstdc++-v3/testsuite/30_threads/semaphore/104928.cc
! f0e2d08dc4073f01b769bdbba849c59e  libstdc++-v3/testsuite/30_threads/semaphore/2.cc
! f9b61c3e90198cb11778c83744270868  libstdc++-v3/testsuite/30_threads/semaphore/3.cc
! a1b75b087a553d7bd454e8afd100015c  libstdc++-v3/testsuite/30_threads/semaphore/cons.cc
! 50bbb3b91d48e84e674e5d633c6e6ebe  libstdc++-v3/testsuite/30_threads/semaphore/cons_neg.cc
! 03d6d8b9367e20d6752001d442afe62f  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value.cc
! ff7e245cef0be45ca95546a4d9021a1a  libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
! 309f9a79b56b934dd30aee2627922bf4  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
! a121de81646388ea83bff6574e2cd45d  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
! 332f876383368c39f19196639c4dfea8  libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
! b7e4a8ede65c3d0acaa40f6c309b28bf  libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
! 13ea80ee6723737ce4d351cef35be041  libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
! 56bf9651823568d68f91e19d23cd78f9  libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
! d217dc1b722951a289b11076104aed84  libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
! be06b7b9132ddd2777e90d1454c54020  libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
! bc7d9451b42e86b0cfcaa66f09881632  libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
! 26f37ffd2147d35e9880cb12806a422b  libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
! f194f83822d0b119ff0ed00d87f6d0e6  libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
! f4f1962fe5886cee34458ff089787d7d  libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
! b63e86886e2431445de76ab01247436f  libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
! c9b79c6d1ed8486458af93665488d5fb  libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
! 4e55639ef6929ce3c62fb8ff7b65f906  libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
! 059beeb9e733154b8aa8ed59d09ec692  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
! 1ebb6b434acaef5b446d377806a103d5  libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
! aae324c8099867c193a194b0b50c4a0b  libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
! 6255e39caa323e233757ada65c411825  libstdc++-v3/testsuite/30_threads/shared_future/requirements/lwg3458.cc
! 767f592c4a863f89bce173b103bb7288  libstdc++-v3/testsuite/30_threads/shared_lock/70766.cc
! d6d5f78d106c7b7aef8ed7af11d32282  libstdc++-v3/testsuite/30_threads/shared_lock/cons/1.cc
! 867c8439f856ba26dd4c87e42fb88945  libstdc++-v3/testsuite/30_threads/shared_lock/cons/2.cc
! 95733a07f9795410804282cb75e4b7c6  libstdc++-v3/testsuite/30_threads/shared_lock/cons/3.cc
! f5c78f0b6bfa08f994b03e9c2a36973b  libstdc++-v3/testsuite/30_threads/shared_lock/cons/4.cc
! 920605661ba563726a24f376184d707c  libstdc++-v3/testsuite/30_threads/shared_lock/cons/5.cc
! 31244708aa39ba17ef1c875bdb48978a  libstdc++-v3/testsuite/30_threads/shared_lock/cons/6.cc
  0fad0906d724c76cfba27dcba83ea843  libstdc++-v3/testsuite/30_threads/shared_lock/cons/lwg4172.cc
! 87d25e9d08330272a2e0f4fcae257b6b  libstdc++-v3/testsuite/30_threads/shared_lock/locking/1.cc
  f73343e4c89cb77298874c0578e423c3  libstdc++-v3/testsuite/30_threads/shared_lock/locking/112089.cc
! 4ac1476c99bea40b064486b8f04679f3  libstdc++-v3/testsuite/30_threads/shared_lock/locking/2.cc
! 040898fa0e18b33ce3ae69c277b78f97  libstdc++-v3/testsuite/30_threads/shared_lock/locking/3.cc
! 5bfe592555deede4161d10ea51713c2d  libstdc++-v3/testsuite/30_threads/shared_lock/locking/4.cc
! e10d065c19ae543c880594836e9ca542  libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
! e72d242d6115c3d9993d4e44d93fbb36  libstdc++-v3/testsuite/30_threads/shared_lock/modifiers/1.cc
! ca8576a254ef5db8ef50d9f085e6a88b  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/explicit_instantiation.cc
! 582035c72f334c27ef9457a05b9c9556  libstdc++-v3/testsuite/30_threads/shared_lock/requirements/typedefs.cc
! 84554db98142388ed7dc5efde805779d  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/1.cc
! 7b5bc068f27199135498a976b9efb444  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/assign_neg.cc
! bd8cc18936930ccdb01da61e055668df  libstdc++-v3/testsuite/30_threads/shared_mutex/cons/copy_neg.cc
! 093cb4f77a5ed7912e8ea8371a798711  libstdc++-v3/testsuite/30_threads/shared_mutex/requirements/standard_layout.cc
! c6db7764163092af1c3d0c59f9a537a1  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/1.cc
! 680b26da2479f9b2474d84598ff60d08  libstdc++-v3/testsuite/30_threads/shared_mutex/try_lock/2.cc
! e379439ed4601fe6f660e1daee9070cb  libstdc++-v3/testsuite/30_threads/shared_mutex/unlock/1.cc
! d18d06f18ca37f27c6ecd5ec4a54ef0a  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/94069.cc
! 4f6e8819c0127678c4ad2ff8e1a76160  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/1.cc
! e98994a180eed7342eabd44f73e99899  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc
! 8f73b1cf5cab162f7abd7d297309b4fa  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc
! a45ad1a9fc64106a11d18a385b78f506  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/requirements/standard_layout.cc
! 4af14e1dc9ae78d37a5cceded9652796  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/1.cc
! e998cf94cd851c0f6f9415d7774108bb  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/2.cc
! 1942997588565cdc826298e9ceec62d8  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock/3.cc
! bf9a1c6fd9b36235d2eb1d903fe02fbd  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/1.cc
! c79c47561b38fe300896990f4078444b  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc
! c99702cf4afe29fd80bfcd789ab89412  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/2.cc
! 0b53601c96ecf02f2fd13da3c4d686d4  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
! f785635c8729d222ee47a24edc734c50  libstdc++-v3/testsuite/30_threads/shared_timed_mutex/unlock/1.cc
! 97f90336f2e61c6efa75a09143c585ab  libstdc++-v3/testsuite/30_threads/stop_token/1.cc
! 84c6488f2602b83fcae87c22fe7aae29  libstdc++-v3/testsuite/30_threads/stop_token/2.cc
! 4d4c9335d9cec25e6a97cddae6822ab1  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
! 4eff25f88a938819afd7229a1b4d778b  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
! 51aa18a16c8c49967e161a69668f979d  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
! 2939197d0faf4cf88e52955d6cec2417  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
! cc9f153b03ee2dacbbb2c7b76f0e6af1  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
! e2ce0b5e31c694f28fde32e4b6e7375d  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
! 9f97282e63ac9cfad5a255cf5704bf1f  libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
! 0ea8cec351ddf197e9cfc6181a5f70bd  libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
  97c265fb2eb60646be155e18f47b2f61  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/109339.cc
! 42c90e689e9da2d8c2c546c74d496a07  libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
! 1ec6117eded361624f42138f90dc72a8  libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
! af64707de0219efab78cd5e4d6f9f111  libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
! 4dbabd0063ba8d715c692f12dc42c74c  libstdc++-v3/testsuite/30_threads/this_thread/1.cc
! def1a6f0a160cc12a9aa1bd61c64aea2  libstdc++-v3/testsuite/30_threads/this_thread/113327.cc
! aabea533a4b0e4231f2939a89d163faa  libstdc++-v3/testsuite/30_threads/this_thread/57060.cc
! 9e312491f46b9c5f920af3fb14b62381  libstdc++-v3/testsuite/30_threads/this_thread/58038.cc
! 4b0f03a3a2286067f2103da4bfd77a0b  libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
! 92e497c42cb8b372c016bcaf66f0b6c9  libstdc++-v3/testsuite/30_threads/this_thread/95989.cc
! a5165b9ecd8331eef277e6679d48b523  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for-mt.cc
! f92f03a44490395e03194a0ecfed880f  libstdc++-v3/testsuite/30_threads/this_thread/sleep_for.cc
! ad931261443b94704ac93b89b3bfa5aa  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc
! 6f600c142be9f5e5027c435ac5c8e7ff  libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc
! d9100793403227da4f3811b8aa02c593  libstdc++-v3/testsuite/30_threads/this_thread/yield.cc
  01f0a9872e8d09e04052489193a9e1e9  libstdc++-v3/testsuite/30_threads/thread/106695.cc
! 9a5cfdfd92edc1500bc55f2d34aed1f8  libstdc++-v3/testsuite/30_threads/thread/70503.cc
! 90274d129b9f0302ee733a5734f7d169  libstdc++-v3/testsuite/30_threads/thread/84532.cc
! f2b70c8724fe62f25cab5c6a22c3896d  libstdc++-v3/testsuite/30_threads/thread/adl.cc
! 10e0509694de1885794d986757c50692  libstdc++-v3/testsuite/30_threads/thread/cons/1.cc
! b2452d0d74f73471c50e4b708a22dc4c  libstdc++-v3/testsuite/30_threads/thread/cons/2.cc
! 9ad11bbf686920bac95228b5c14e590a  libstdc++-v3/testsuite/30_threads/thread/cons/3.cc
! bd659540cd00fb92b8dfe65334e0c68c  libstdc++-v3/testsuite/30_threads/thread/cons/4.cc
! 0cddc1d7f59a64acdc2ee9d162ea2e08  libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc
! c367966aa3ad4e1ee89b56e639643595  libstdc++-v3/testsuite/30_threads/thread/cons/5.cc
! 310b6a1b9d2730584c881abfb8d5386b  libstdc++-v3/testsuite/30_threads/thread/cons/6.cc
! a6e6a8085060bcdc873bef5e0290b0e2  libstdc++-v3/testsuite/30_threads/thread/cons/69724.cc
! 7487407a432d083a5203ce74980336b8  libstdc++-v3/testsuite/30_threads/thread/cons/7.cc
! ee715c0db8b0c0ffad998f500cc30faf  libstdc++-v3/testsuite/30_threads/thread/cons/8.cc
! 3b6a48fce69423c886b62a40e3a2a364  libstdc++-v3/testsuite/30_threads/thread/cons/84535.cc
! 0e47c9c8d045a82f35b73d64be5f35a8  libstdc++-v3/testsuite/30_threads/thread/cons/9.cc
! 40073839bcf23a0b3f782dc35910302d  libstdc++-v3/testsuite/30_threads/thread/cons/assign_neg.cc
! 4ad0e7913208ff235551b053c2732182  libstdc++-v3/testsuite/30_threads/thread/cons/copy_neg.cc
! 647d647c8650b99ab91a1662f7d3076a  libstdc++-v3/testsuite/30_threads/thread/cons/lwg2097.cc
! e48dee0169a7513491f4a43915a30a2c  libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc
! 1be5db7c84125e4148bde74066596757  libstdc++-v3/testsuite/30_threads/thread/cons/terminate.cc
! 657e3e873affc518aaea365d70efcaf2  libstdc++-v3/testsuite/30_threads/thread/id/70294.cc
! 74186ce834193337293c6c8e221a7998  libstdc++-v3/testsuite/30_threads/thread/id/hash.cc
! 736340b8aa8396c6c1a7b6d4ae15cb85  libstdc++-v3/testsuite/30_threads/thread/id/operators.cc
! f8ea7add0c48437926b4c014819caf81  libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
! 724ebf9c862c5c8eecf0c781e492736b  libstdc++-v3/testsuite/30_threads/thread/id/output.cc
! 5dc8c8ae1d8fcc47b051603f2dc1fc45  libstdc++-v3/testsuite/30_threads/thread/members/1.cc
! 22334589a0180a9e403fe8257db48206  libstdc++-v3/testsuite/30_threads/thread/members/2.cc
! 23220ad5322ca7a34d38169b122f91eb  libstdc++-v3/testsuite/30_threads/thread/members/3.cc
! 130d70e10ecc51b25fd6e1ec607d014e  libstdc++-v3/testsuite/30_threads/thread/members/4.cc
! 6b4f2576d415a801ec2eeecb0985dcf5  libstdc++-v3/testsuite/30_threads/thread/members/5.cc
! d48aa8d29aa6e9b425260fcaa903a9e8  libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc
! 0e396327c399d21ab7c86502fa2eb9fe  libstdc++-v3/testsuite/30_threads/thread/native_handle/cancel.cc
! f225d507db9919edc652f022845e0419  libstdc++-v3/testsuite/30_threads/thread/native_handle/typesizes.cc
! aadf74c5a8cf853cd5971449e4125896  libstdc++-v3/testsuite/30_threads/thread/swap/1.cc
! ec30d5440c1422ca4216d48631bf8250  libstdc++-v3/testsuite/30_threads/timed_mutex/121496.cc
! 797d922e9441f91243fd940b30a438a9  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc
! c02088aa221190392f3688a11d5f99f5  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/assign_neg.cc
! dfdef3bdc8cf047520a07347733ee1bf  libstdc++-v3/testsuite/30_threads/timed_mutex/cons/copy_neg.cc
! ed6bf96defc63279f78722f506d42a88  libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc
! f87f7fc1b800673bd6fac94128da0fd9  libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc
! c92eed20fe12e2500ed8a83444d01532  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc
! b889089d35026a1810a30ffb3ffeeed0  libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc
! 8b122e953012e9fbb07e6e29f110842d  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/standard_layout.cc
! 271fb5f51fd47c18d81a288b3093743a  libstdc++-v3/testsuite/30_threads/timed_mutex/requirements/typedefs.cc
! 22a12abecdb10fd9bd9fb985c1b5b11e  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc
! 409193cd9489bf84bf4d5493f764c019  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc
! 113d238785f9fea75cfcebd23571ee56  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc
! ce2e52da3c3117076cf50247154e7b60  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc
! 61f1ebf09b4559d23b4881f1be70788b  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc
! 22a12abecdb10fd9bd9fb985c1b5b11e  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc
! 0d238afb1e5c8095b1d9c7163ef9c1e6  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/116586.cc
! 409193cd9489bf84bf4d5493f764c019  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc
! 69ee8c525c2fc6331d19bb17e66f627f  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/3.cc
! 27a94d475b879ef4e8a02d19f9c5b9a5  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/4.cc
! 69b628d14b8c5481eac3e0c0b25497cf  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/57641.cc
! 728a774e584e3ab4e4b1d31990c2f244  libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
! 3a14a8e001a1033a086425784e1caa39  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc
! 2e26cdd111d8b8193dde55efa8ef1955  libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/2.cc
! d22e91d8bd50e4a152400fe8fd00175b  libstdc++-v3/testsuite/30_threads/try_lock/1.cc
! a10e43aeab1abc64561100524465da92  libstdc++-v3/testsuite/30_threads/try_lock/2.cc
! 85cdf0263d242e03b9a331534ba69e03  libstdc++-v3/testsuite/30_threads/try_lock/3.cc
! c698347d98ba23be8c3154ab1559b631  libstdc++-v3/testsuite/30_threads/try_lock/4.cc
  84b7f4186aa09b29885c62c89d8b8d64  libstdc++-v3/testsuite/30_threads/try_lock/5.cc
! 2df3cc3dfb85a8dd5497d6f97636c3f4  libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc
! 91a468896264b6ecc1b1b24dc42336e8  libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc
! 93064a905fc325947bb31d9a4529a505  libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc
! 7b56c1f1da2dbffca8c5d60b4a69ebb5  libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc
! 3f0bfa51cc6ab7ecb35cb95d6e2bfb13  libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc
! ea832c28c6eb6eea5e156c1ab037d032  libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc
! 0c3ffa2281906355387ef2ec0d25fed9  libstdc++-v3/testsuite/30_threads/unique_lock/cons/60497.cc
! b71fec7125d42349a57152569a5051b4  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
! 6d10eb91d5f7cba97a6f740c72707918  libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc
! 5a81e23c51b6bfbc88291e27ff316adb  libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
! 7d5eda6342ddece4601a2f65bdab0986  libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc
! 84fce6f3d5148039fb700c6a802602a7  libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc
! 3fe4a11e6d747bf3a807f4c1249d4068  libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
! 90821f98ebb49cc12bee588580c22951  libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc
! 7b46acab6e702713ff51f2460d9b3b0c  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
! d8b5c135838490a5dcd51a698dc08200  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
! 35ca934eefc5afeedad83cdc8194685c  libstdc++-v3/testsuite/Makefile.am
! 3f358f62ec6c0c939c6b51794f816c1f  libstdc++-v3/testsuite/Makefile.in
! 1d22b44f3b4aa9c7d62458767123c3ba  libstdc++-v3/testsuite/abi/30586.cc
  27472a7da5d420df6eceb879beb16116  libstdc++-v3/testsuite/abi/aligned_buffers.cc
! 84dd54b62d5865cc47a78cc88655c9e7  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
! fc64881ec01bcc8b8212b868deff99ae  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
! 6a9931515e130dd207a94ce86c908b28  libstdc++-v3/testsuite/abi/demangle/abi_examples/02.cc
! be8aaa2071924b4918e4fb2a72a40318  libstdc++-v3/testsuite/abi/demangle/abi_examples/03.cc
! 043d062d5b3bc19aefa1c83ee1f9891e  libstdc++-v3/testsuite/abi/demangle/abi_examples/04.cc
! 4e8da39eb6c97972d0c64d1f21158548  libstdc++-v3/testsuite/abi/demangle/abi_examples/05.cc
! 68aa04d7706a7232a3b0e5ce71911d26  libstdc++-v3/testsuite/abi/demangle/abi_examples/06.cc
! 0f3bc07e6da00fcc447bfbab01392053  libstdc++-v3/testsuite/abi/demangle/abi_examples/07.cc
! 9f41b152ca63b00aa0fc75d84c575590  libstdc++-v3/testsuite/abi/demangle/abi_examples/08.cc
! c0aff29e06f881f92418a575f613f539  libstdc++-v3/testsuite/abi/demangle/abi_examples/09.cc
! 43e89ee7c81e58853995bf866f5c364d  libstdc++-v3/testsuite/abi/demangle/abi_examples/10.cc
! d7ad9929e0929e5c6cbcdd7fc0e1ec06  libstdc++-v3/testsuite/abi/demangle/abi_examples/11.cc
! 70d17a6bbdbe366bd675097a6dc3b407  libstdc++-v3/testsuite/abi/demangle/abi_examples/12.cc
! b9171dee0248fe86fd1da9df3dc1e845  libstdc++-v3/testsuite/abi/demangle/abi_examples/13.cc
! d33ef2cfa4a4858423d9fffd790925a6  libstdc++-v3/testsuite/abi/demangle/abi_examples/14.cc
! 54fb956ff5bb4b504e1a5a291d52ad5b  libstdc++-v3/testsuite/abi/demangle/abi_examples/15.cc
! 54a1eb8f670b2ef2278628754447a3aa  libstdc++-v3/testsuite/abi/demangle/abi_examples/16.cc
! 8a9c6223e59115318f70e5035a844664  libstdc++-v3/testsuite/abi/demangle/abi_examples/17.cc
! 3a387b567a79b911dd10fc130f3c7b47  libstdc++-v3/testsuite/abi/demangle/abi_examples/18.cc
! 3499075175863e31bd5252209cacdc1e  libstdc++-v3/testsuite/abi/demangle/abi_examples/19.cc
! 371db13381c3d704c0db6d9891ff1803  libstdc++-v3/testsuite/abi/demangle/abi_examples/20.cc
! 184f6b0c71fdb7d2c9a73477d12d6d3f  libstdc++-v3/testsuite/abi/demangle/abi_examples/21.cc
! 184f6b0c71fdb7d2c9a73477d12d6d3f  libstdc++-v3/testsuite/abi/demangle/abi_examples/22.cc
! b9cf34643bc9a8f3097d82b0a4be40cf  libstdc++-v3/testsuite/abi/demangle/abi_examples/23.cc
! 6e6ccf8ca54db4ac12147e7e43496e77  libstdc++-v3/testsuite/abi/demangle/abi_examples/24.cc
! 82407821af79b0028d07fccbdf27140b  libstdc++-v3/testsuite/abi/demangle/abi_examples/25.cc
! 1fbdf334c97022c882c74ac1a13acf00  libstdc++-v3/testsuite/abi/demangle/abi_examples/26.cc
! f81f401b28fd9199b9619836ee19823c  libstdc++-v3/testsuite/abi/demangle/abi_text/01.cc
! f33ca44bea6604ca79ea53349831c904  libstdc++-v3/testsuite/abi/demangle/abi_text/02.cc
! 7919f905f1934004ab67d9987b5ff963  libstdc++-v3/testsuite/abi/demangle/abi_text/03.cc
! 95449c954edeea21223f301c961e8a34  libstdc++-v3/testsuite/abi/demangle/abi_text/04.cc
! 7ed031d35169506b2056fa7103c383c2  libstdc++-v3/testsuite/abi/demangle/abi_text/05.cc
! 35404ddbca8c52aec3e71b3bcd011888  libstdc++-v3/testsuite/abi/demangle/abi_text/06.cc
! f6dbd11f34d09a924a475c029375c17e  libstdc++-v3/testsuite/abi/demangle/abi_text/07.cc
! fec0d36de9d10582c4bc74e6cd90aaf9  libstdc++-v3/testsuite/abi/demangle/abi_text/08.cc
! 5a3a8778717b73d089c50e1ba596beea  libstdc++-v3/testsuite/abi/demangle/abi_text/09.cc
! 7ca7246ef07030fbe56076be794718e2  libstdc++-v3/testsuite/abi/demangle/abi_text/10.cc
! 7062ba45d50e3c0de216afafcbc02552  libstdc++-v3/testsuite/abi/demangle/abi_text/11.cc
! fc21e552c285df903c29fd7c3adc8da2  libstdc++-v3/testsuite/abi/demangle/abi_text/12.cc
! 9e84056c8344c32b1885388e7589ac3d  libstdc++-v3/testsuite/abi/demangle/abi_text/13.cc
! 2b9f825521c5597ed1df87220466fda7  libstdc++-v3/testsuite/abi/demangle/abi_text/14.cc
! 990b08812e6ce330170fef4ab96c2f1b  libstdc++-v3/testsuite/abi/demangle/cxx0x/rref.cc
! 1fe21e8da90270dc24823340520d814e  libstdc++-v3/testsuite/abi/demangle/regression/3111-1.cc
! 14869afe8a2f40e8e9c23363d725d4a8  libstdc++-v3/testsuite/abi/demangle/regression/3111-2.cc
! a8fff15ba2de222b056cc4bff7f50f45  libstdc++-v3/testsuite/abi/demangle/regression/7986-01.cc
! 0009c76cf8014d8675073f8de8e9f919  libstdc++-v3/testsuite/abi/demangle/regression/7986-02.cc
! c3c0023506b995635a87226f0a080035  libstdc++-v3/testsuite/abi/demangle/regression/7986-03.cc
! 6f19155d6a129d595b0ce42f5ad91f4a  libstdc++-v3/testsuite/abi/demangle/regression/7986-04.cc
! c2ef87cee7772ea6c36898135b9aff94  libstdc++-v3/testsuite/abi/demangle/regression/7986-05.cc
! 08ce6024ff873cb7d3d76698bbb7beb2  libstdc++-v3/testsuite/abi/demangle/regression/7986-06.cc
! 770c5c027dcf94957cf8c26b54ccafcc  libstdc++-v3/testsuite/abi/demangle/regression/7986-07.cc
! b047bc7b8fd99c08501759a5d7660db7  libstdc++-v3/testsuite/abi/demangle/regression/7986-08.cc
! ef819e436939e91b4970c87d5fc95be1  libstdc++-v3/testsuite/abi/demangle/regression/7986-09.cc
! 3ef56c3e0b001e481b0ca8e83e71d1e3  libstdc++-v3/testsuite/abi/demangle/regression/7986-10.cc
! 37346a9b7e977ca8101f2bfc104988ea  libstdc++-v3/testsuite/abi/demangle/regression/7986-11.cc
! 9f3efe2ee184dcae75badfcbe99d2bbc  libstdc++-v3/testsuite/abi/demangle/regression/7986-12.cc
! 6c45f449500bc46c6f19149a355ecea1  libstdc++-v3/testsuite/abi/demangle/regression/7986.cc
! 5c7b448fdd352c0b26c29cd153aa06a7  libstdc++-v3/testsuite/abi/demangle/regression/8897.cc
! 73f10d835c58864cfb58fc71441fa841  libstdc++-v3/testsuite/abi/demangle/regression/cw-01.cc
! bdbbc4f966f77e2fb09310d8fd231efc  libstdc++-v3/testsuite/abi/demangle/regression/cw-02.cc
! 461fed3670b0899f1d39ddcbbc73ca65  libstdc++-v3/testsuite/abi/demangle/regression/cw-03.cc
! 79895af4ded0511b0ed7b90fc949cc07  libstdc++-v3/testsuite/abi/demangle/regression/cw-04.cc
! ada0f44d886df2ae6da51f0a61608fef  libstdc++-v3/testsuite/abi/demangle/regression/cw-05.cc
! 4ea761e5d2d17746d382ae2d3afb4e34  libstdc++-v3/testsuite/abi/demangle/regression/cw-06.cc
! 2198c8cc425ec896eb4d805f6c55ea36  libstdc++-v3/testsuite/abi/demangle/regression/cw-07.cc
! 0ff487a879242f1d1784d6b162b18663  libstdc++-v3/testsuite/abi/demangle/regression/cw-08.cc
! a6db8c1c975706543fc5ffee2c49a6e7  libstdc++-v3/testsuite/abi/demangle/regression/cw-09.cc
! 871d00d87a52e27ddd7973595b7227a3  libstdc++-v3/testsuite/abi/demangle/regression/cw-10.cc
! 0b19af97a3de71161473134986bf0546  libstdc++-v3/testsuite/abi/demangle/regression/cw-11.cc
! bcf1236e3def5e5e195192523ffa3d70  libstdc++-v3/testsuite/abi/demangle/regression/cw-12.cc
! df8a813b8e120397620d7e767cb39b47  libstdc++-v3/testsuite/abi/demangle/regression/cw-13.cc
! 325922160da74cbffcc8ad36203e4e4e  libstdc++-v3/testsuite/abi/demangle/regression/cw-14.cc
! 77eeee1efdf3d3ddef4735ca1869245e  libstdc++-v3/testsuite/abi/demangle/regression/cw-15.cc
! e3b529fe0d3c4206501f89e358c847d0  libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc
! 039eeb61fccaca1b6fd7b2eccc31527c  libstdc++-v3/testsuite/abi/demangle/regression/old.cc
! ef3d53627c0cc42bfe53aef6cc82af65  libstdc++-v3/testsuite/abi/header_cxxabi.c
  026f7646f4161e79273f7580a661c0cc  libstdc++-v3/testsuite/abi/pr42230.cc
! 6d3a3a9543ac4c0d62a32b1d26c6e61b  libstdc++-v3/testsuite/backward/11460.cc
! 17094eb9004ce40b34ec8228297bec22  libstdc++-v3/testsuite/backward/hash_map/1.cc
! e03bf246501cdf3cd771218ac1f33b7d  libstdc++-v3/testsuite/backward/hash_map/14648.cc
! f6a3fe66cf4640b26284362d4153fba5  libstdc++-v3/testsuite/backward/hash_map/23528.cc
! 83eda102f78e79788d22fec0e19f5c63  libstdc++-v3/testsuite/backward/hash_map/25896.cc
! 2a6c8d4244a7053654cf9cb62ee65ead  libstdc++-v3/testsuite/backward/hash_map/requirements/explicit_instantiation.cc
! 597be3b9aec5e87ad1ff6f2d1aaefd6e  libstdc++-v3/testsuite/backward/hash_set/1.cc
! 155a0f841d0568b483ad0443b93c7cf8  libstdc++-v3/testsuite/backward/hash_set/25896.cc
  2c091597008357e678007f407f299a24  libstdc++-v3/testsuite/backward/hash_set/49060.cc
! ac1f0c859c345767cc8a413a9bed8bb4  libstdc++-v3/testsuite/backward/hash_set/check_construct_destroy.cc
! ba80e1ca77ccd3eff7fc741f56965b4b  libstdc++-v3/testsuite/backward/hash_set/requirements/explicit_instantiation.cc
! 0035c258adf4529c22f8746841979759  libstdc++-v3/testsuite/backward/strstream_members.cc
! 09caf36c829d09b7904609eceac0d6b3  libstdc++-v3/testsuite/backward/strstream_move.cc
! 7d6318264b72da6036351d813d78c14d  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
*** 141698,142003 ****
  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
  83f8a63ee6afbdafe75f08d3ab59ded7  libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.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
--- 156038,156343 ----
  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
! fd8a1f4db6ad45f3d00cf4c9142db8e4  libstdc++-v3/testsuite/decimal/binary-arith.cc
! dfa09964d81df858140ccc438a4f4a1c  libstdc++-v3/testsuite/decimal/cast_neg.cc
! 8303f3e8df60f9bacaaaccc40d36fce4  libstdc++-v3/testsuite/decimal/comparison.cc
! b12600cf332e49b725e181da6c2a3410  libstdc++-v3/testsuite/decimal/compound-assignment-memfunc.cc
! f4dfa86dcd16c0db91dd77ea1bafa7fd  libstdc++-v3/testsuite/decimal/compound-assignment.cc
! da8b9f7ac948672e7c81624418a2335a  libstdc++-v3/testsuite/decimal/conversion-from-float.cc
! 81f9eb9fb72e74d0013583a56c29413e  libstdc++-v3/testsuite/decimal/conversion-from-integral.cc
! 8868092e8d69edf4349ba04c3b5692f4  libstdc++-v3/testsuite/decimal/conversion-to-generic-float.cc
! 264f3011604d02d4de991a800e092c1c  libstdc++-v3/testsuite/decimal/conversion-to-integral.cc
! de41f84530dcaaad9522389e1bd4c903  libstdc++-v3/testsuite/decimal/ctor.cc
! 005513c00fd80a1dfd4d2c61da3c8392  libstdc++-v3/testsuite/decimal/incdec-memfunc.cc
! 2790b81db89deb77545e6bf6063dda0c  libstdc++-v3/testsuite/decimal/incdec.cc
! 1dbcfc616b849200ab1498825ce17f65  libstdc++-v3/testsuite/decimal/make-decimal.cc
! d4a8fc14ca321a9db5654596a45b5222  libstdc++-v3/testsuite/decimal/mixed-mode-arith_neg.cc
! 1f085d1a7a8f0fd7f0288889d9bf3337  libstdc++-v3/testsuite/decimal/mixed-mode-cmp_neg.cc
! 3c783d43d5a4b7140b25815832d940b3  libstdc++-v3/testsuite/decimal/operator_neg.cc
! 3f0f96dfc6bccf101d999d25cd454e96  libstdc++-v3/testsuite/decimal/pr54036-1.cc
! 15bea7460e0ed07ec1b16ce8e8e5256e  libstdc++-v3/testsuite/decimal/pr54036-2.cc
! bcfb25e63e26376369dd4296cdad2357  libstdc++-v3/testsuite/decimal/pr54036-3.cc
! 04d3b62df863a9782e7fb01783eb1609  libstdc++-v3/testsuite/decimal/pr58815.cc
! b89146bfe2503e577d94761ca5b3fbce  libstdc++-v3/testsuite/decimal/unary-arith.cc
! 0e10e6e4d7b25b512e1e96f30610d1ae  libstdc++-v3/testsuite/experimental/algorithm/sample-2.cc
! df3e0c1d30d08283109d87fe2a539959  libstdc++-v3/testsuite/experimental/algorithm/sample.cc
! 893170f7ff30f4b01ff90a87c8ca3e5e  libstdc++-v3/testsuite/experimental/algorithm/search.cc
! 9349a65ffa72a2d6f188775ad0efdf44  libstdc++-v3/testsuite/experimental/algorithm/shuffle.cc
! c050853e68e4c439ddc1104c246de39f  libstdc++-v3/testsuite/experimental/any/assign/1.cc
! 0e5f49b6d0047a0d65a866bcd34ab571  libstdc++-v3/testsuite/experimental/any/assign/2.cc
! 04af60685d16f669a76fb9597f8ab81a  libstdc++-v3/testsuite/experimental/any/assign/exception.cc
! 345e6f2cd46490d4d0446118b5d74246  libstdc++-v3/testsuite/experimental/any/assign/self.cc
! 99e632e8f01efaaf022ba474f35497ef  libstdc++-v3/testsuite/experimental/any/cons/1.cc
! ea526cc69756bdc84a88e33857b5bb17  libstdc++-v3/testsuite/experimental/any/cons/2.cc
! 917b3ed0a508a180828e69a789bb1359  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
! 609bad6be775f27c38f1178e7d1f6d75  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! 5ea110acc4f56b0db926b49f2babab0e  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! 6e77dfd3d1ca7d14c6edc1ff25b5ce27  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
! 3e46e5fe56f027d3d0e94766e0c42deb  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
! 7044a27ad179fa0ff3df6d3ce5f7d19b  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
! 8bffa190143ae102857a232b07ba8edc  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
! e5ae0d289a7517c63e0a2f4fef5e4500  libstdc++-v3/testsuite/experimental/any/observers/type.cc
! 570b286f369213d1392b7b4e78837d27  libstdc++-v3/testsuite/experimental/any/typedefs.cc
! 77c3dc17adf1d40059c49013bc80e2e9  libstdc++-v3/testsuite/experimental/array/make_array.cc
! 4253dbb2d171f15f85fb2e824adb4ddb  libstdc++-v3/testsuite/experimental/array/neg.cc
! 38c73cc98fad70a5478feef038020553  libstdc++-v3/testsuite/experimental/chrono/value.cc
! a349ce69444842255098c8d346a73d0b  libstdc++-v3/testsuite/experimental/deque/erasure.cc
  188e3c11b011fe3f38bba18280fb6fcc  libstdc++-v3/testsuite/experimental/feat-char8_t.cc
! ab095f5264efdb539bc860140285dbff  libstdc++-v3/testsuite/experimental/feat-cxx14.cc
  f754118861b851f83334813d834cb200  libstdc++-v3/testsuite/experimental/feat-lib-fund.cc
! 6ac46eb6464e1fc5153b06aab7a7c73e  libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc
! d4f2d44c2bf1310445e4ee4991f30504  libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc
  9f02c90fb45915ed51e3b5fc2dff19df  libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
! 6d4d458e982980167f1848a66db98e27  libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc
! 3147824df20d83da10e0cd2e09209225  libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
! 462825ed2aa2e769df22410e20ba5377  libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc
! 448b92ec74822109668fa96bfed90883  libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc
! a91b591e879bfd8870e6f3da3c598549  libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
! 63e7e61e4115d505b3ce0036350373f0  libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc
! 63c1b282b7cd57cc8757a8f56239b682  libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc
! 639eda574b49658a7a7e5fa0f3224958  libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc
! b63418840f72d2f094f7ad34cfe643a8  libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc
! a3a4b00b673e8902ae077755765738b4  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc
! 633227ff2d5e895a20702d0cfbc563c6  libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc
! 1cd1fea021889cb814bfe2a87cb1b3d8  libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc
! 98033d5b5d53d38a390f703834d9c7d8  libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc
! 8690f19e4a963f864725728455e300dc  libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc
! b6cc2807f5dfe2baf1c444b691b29d13  libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc
! 4f5e72f9c034c0f8ae6a01f00992effc  libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc
! 8f96c4d1bd7217ab36cc59265493bc4c  libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc
! 06403b5d49970fb82027c22de4396c24  libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc
! 713f75afcc6b4cdc7f05557765790035  libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc
! 2ef7270438056d8cc5a0f363dc4b3767  libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc
! c5fc0678bf8e0c3be52a2d6afa09814c  libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc
! b16d9f82df941c9a69d104c26301a94b  libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc
! f46bed1a3c51fe794de62ead7a16d763  libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc
! dbb2a11521cbf75e43fd1aca875828e0  libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc
! 45525ee07221d5ef8b39a2fd7ec2e494  libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc
! 3c8d17b785c2ccc06803989deeae45cd  libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc
! de60f81090f91eeca6c6c42df7737a3a  libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc
! 2a79781ffc02f4e1a3d069b70354731d  libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc
! 37f09584cb6df094b8c01136d83bb7bd  libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc
! 045edfec8d1654f6d6fe42b5822b9beb  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
! 9feb5f31d92ee5256b4a010340d0c2b8  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
! 17eca7fd02605b6e5307b1444fefea05  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
  83f8a63ee6afbdafe75f08d3ab59ded7  libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc
! 0d590bfb9c30804368f3bb8f771cb33f  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
! a7c1ae192970b7fbf5901c38c274cad5  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
! e44281e44ee7df829c33afb86211ece7  libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc
! 1d2449b0b1b24ee7573719a454e3d0d5  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc
! af1fdad160e80ba536110231b1818465  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  bc0c58037ed5ab6415d0899ccc8799af  libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc
! 24ba8ffc95ec87f23173083e456aefd2  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
! e4891c68c4aa076a3af9b3824d6639e8  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
! da4ec3dc9d5cb80e0bac78b458080936  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
! 131f593e0de029111bf58329a01d6831  libstdc++-v3/testsuite/experimental/filesystem/path/construct/range.cc
! 93c08e440fb313c2df64fd6d519fca81  libstdc++-v3/testsuite/experimental/filesystem/path/construct/string_view.cc
! 5103633f28b9bc945d781d94a74b6198  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/extension.cc
! bdebd5c6a34aceca00af9ba37597e8ad  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/filename.cc
! 56c57985584a2e55e7ecf5781f9df276  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/parent_path.cc
! 37ce78b16d1df050c6d7bf86f269c4e6  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/relative_path.cc
! 849dfc16759da9d317565963ec10fb3e  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_directory.cc
! 247822b278b36da644e3e3b935b25d47  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_name.cc
! f3d82dededa182b61c390d6f7c2791c3  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/root_path.cc
! fcb4fda420674d49e94dc763abe2f9f6  libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc
! 19e6b6261edcce40d1047f2b4670ae34  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc
! a52b2d425f9cef2212204e1b0f0b001a  libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc
! ea09f31bbdedeee859ae2a9e81ddabff  libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc
! afbbea25bdc9ed145ec3fcc8f1c7b766  libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc
! fc7ddcca29b888c902c09e931a9532e8  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc
! d1031324b43036bb85ab5f3f56e38a8a  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc
! 3c5f455d006fefc6124e5c200fc148a1  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/remove_filename.cc
! 30146c64eadd7b64205c6d58457742ba  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc
! 00e82860a663f36f992e66e39ed82074  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc
! d80f561c7dbc955eb2149f3582c7e1b7  libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc
! 01b9d6d6a0570b6e399b623a060c42fa  libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc
  9dd0c350cd1f231c2cf27e190e15b473  libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
! 088c76ef877279a5030fca8bb52486b9  libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc
! 817251780f977e8d818159933cc72a63  libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc
! fe2ae2ae1a102ddcec00643cca4ac8ed  libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc
! 5ce7dcecb6eb4973d94a61f1affc0adb  libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc
! 08bd1d5ab3a5a4a3a230dac5ab0fddd7  libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc
! 5519f88da04cf88cecfd994ff22c7aeb  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_extension.cc
! 152c542dd607988d888eba8a1fc53b73  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_filename.cc
! e5bd7725e11e07dabf82e4714b20092d  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_parent_path.cc
! 3d9204d124b028cb4dfc8fd465fd875c  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_relative_path.cc
! 6e17fd65671edb5ad5871e6669723e7a  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_directory.cc
! 9dfc18e66db76bb7fb19a2868fa224ae  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_name.cc
! 83aab6bee29c8e83ff911346cead01c2  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_root_path.cc
! 0c09c97ee1076e073c6484015c219d91  libstdc++-v3/testsuite/experimental/filesystem/path/query/has_stem.cc
! c8dbe2146160cb35958ca28b0abf1d5a  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_absolute.cc
! 9f29a15deb8161645dba193198994886  libstdc++-v3/testsuite/experimental/filesystem/path/query/is_relative.cc
! 734bb5cb048bd6b7ee037c6192e8b9c0  libstdc++-v3/testsuite/experimental/forward_list/erasure.cc
! a3f610d062b2e94fbfe39a73a214dcc9  libstdc++-v3/testsuite/experimental/functional/87538.cc
! f17add3c5677849bc0ffa140a2c571f9  libstdc++-v3/testsuite/experimental/functional/not_fn.cc
! b5d09d685d35d39be96b4213bc49a911  libstdc++-v3/testsuite/experimental/functional/searchers.cc
! bf236913faad52432c990586de12118a  libstdc++-v3/testsuite/experimental/functional/value.cc
! e3c868236f55ddf93f126b8ab7b9b0bf  libstdc++-v3/testsuite/experimental/iterator/make_ostream_joiner.cc
! cf95ca12546bd53465ec6ec204850dd1  libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc
! a178e463795ff889d60d36d24998a0a4  libstdc++-v3/testsuite/experimental/iterator/requirements.cc
! 0f5c380551674415ed7f7ebf00d0be56  libstdc++-v3/testsuite/experimental/list/erasure.cc
! 9bee06604cb8aaf27fdbf31d68cd8216  libstdc++-v3/testsuite/experimental/map/erasure.cc
! 771b75a8faaa4f28a01ec553bf6b191f  libstdc++-v3/testsuite/experimental/memory/observer_ptr/assignment/assign.cc
! ddff72b45eff2ccc5f4e169c821598b4  libstdc++-v3/testsuite/experimental/memory/observer_ptr/cons/cons.cc
! 34a7a77b3d36202db54b47a4ed24a8d9  libstdc++-v3/testsuite/experimental/memory/observer_ptr/hash/hash.cc
! b95b8c0989fc90b8c035c560de1c6a8c  libstdc++-v3/testsuite/experimental/memory/observer_ptr/make_observer.cc
! fd64204fb181812ea9ac3cf54befc5f6  libstdc++-v3/testsuite/experimental/memory/observer_ptr/relops/relops.cc
! c49eb75964790b5220333c4f39603080  libstdc++-v3/testsuite/experimental/memory/observer_ptr/requirements.cc
! af98769eda57be7b199da25375a12b63  libstdc++-v3/testsuite/experimental/memory/observer_ptr/swap/swap.cc
! 9b0227ae8865bd59f2108240871a13a7  libstdc++-v3/testsuite/experimental/memory/observer_ptr/typedefs.cc
! f44aeb94d985c94e40fce3c16a9f7756  libstdc++-v3/testsuite/experimental/memory/shared_ptr/assign/assign.cc
! 69b8711dc1eb8fdf891a472472fb33db  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cast/cast.cc
! c588ac85bf30d0c0b0794f4cf85edcdd  libstdc++-v3/testsuite/experimental/memory/shared_ptr/comparison/comparison.cc
! 196b3e053ca920af8fe49f265a8f8890  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc
! 3a1a3337efca4a9968a330d2e2c62735  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc
! a77e62a6e6b381fa3277fdfe73de8a76  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc
! 6338d294e32a31b31f5414ec99819e3f  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc
! 5140e7f6cff1fe30bc0683b8fe08e2ac  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc
! 760616938507d32213bcc38bdb5380ca  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/enable_shared_from_this.cc
! 857f4ee8778d81504e52ff548be984c4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc
! 966f7bc6fc71831ece8d3dc8ff8fb4c1  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc
! c230bd015fb77e4b57ba91329da387b4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc
! 2f2447d86d81bf19d0a66cc3de50ddec  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/torture.cc
! 0a1de84503eedb2b191b9861a1db9e61  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc
! 151eabd821dc9d6dc854fbd09d6f0c7c  libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc
! 719324293f5c89a99e3a2e3eadd73e49  libstdc++-v3/testsuite/experimental/memory/shared_ptr/dest/dest.cc
! 2b1d60186e74d9c427273c7bf642bd23  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset.cc
! 0b794f408fac61dbc80a5924c49e12b4  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc
! ade162963239dee4ca72117ac8e85725  libstdc++-v3/testsuite/experimental/memory/shared_ptr/modifiers/swap.cc
! 3ec6e6dffd8bf59972fe67a4fc539dd7  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc
! 0a70eb8d4e42eb24bde8ad1c78e97437  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/operators.cc
! b8f5b82d4e05bcb613df7dbf4b99abeb  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/owner_before.cc
! affc8fd6130dd647213448f8233f5d20  libstdc++-v3/testsuite/experimental/memory/shared_ptr/observers/use_count.cc
! 8bd7cdb5a5a6263135c45bbf35fa8dac  libstdc++-v3/testsuite/experimental/memory_resource/1.cc
! 588e7abbc0339b90d8c6377723d8827e  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
! 121c9096f85f4961510e57f0854d0d69  libstdc++-v3/testsuite/experimental/memory_resource/new_delete_resource.cc
! 17c17aa2f32c4fa114846816500b0d4b  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
! 0eabf93aceaf54382503bc57ed87e427  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
! f8ad68b512bd6284ae84ad8127b9060d  libstdc++-v3/testsuite/experimental/names.cc
! d3ed765ac202d3a158e88f2b871051f2  libstdc++-v3/testsuite/experimental/net/buffer/arithmetic.cc
! 14889d5c5d9c8faea0343162d2c4405f  libstdc++-v3/testsuite/experimental/net/buffer/const.cc
! c42f25c5c8157dc896ef03269a1c78fd  libstdc++-v3/testsuite/experimental/net/buffer/creation.cc
! 953eaca9b3f85919f1f2d177bf852e2a  libstdc++-v3/testsuite/experimental/net/buffer/mutable.cc
! 03e24a017c1ceb54df3439cb26aab4c6  libstdc++-v3/testsuite/experimental/net/buffer/size.cc
! 437eea9a44c7348cdbd78112511d53d7  libstdc++-v3/testsuite/experimental/net/buffer/traits.cc
! e8abd5b7877e0f6ba95677cc505865d7  libstdc++-v3/testsuite/experimental/net/execution_context/make_service.cc
! f0520df43d5a43d74502816ce0060ecd  libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc
! ba9a676280b91b3f9ec8c571a5da190d  libstdc++-v3/testsuite/experimental/net/executor/1.cc
! 1e4ba08d86f985f7beaff7c4b10ef3bd  libstdc++-v3/testsuite/experimental/net/headers.cc
! 5a18423223174b724f9554a19beed1a8  libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc
! 4173d3b27a92b90ae213326fcf66ed8a  libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc
! 8f6b1fd0af141a612b365251227203de  libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc
! 48f91efb3ec6dd6ee391ea3a08b2f5cb  libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc
! 78cf45e84daaafe430cdc5286297972d  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
! 0b24a1a9712c0b34fc5903c338965c68  libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc
! d054c291c26bc95a5a2beb177dd302df  libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc
! 93dc3d633aa47e3a479871d79228e79d  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
! 8ce44e3428480140811596d7203c3f69  libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc
! 9706757edff8d2ee222c352069952d2c  libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc
! 77c2ae4b45be8f3505156f8d5c6756e5  libstdc++-v3/testsuite/experimental/net/system_context/1.cc
! c0cf41b7ed366dc7b5d06150ef1c9279  libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc
! 5f826a4b423120c84175526afd4835ba  libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
! 96d21b83f4db7e0838cc54c6eff65608  libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
! 579f92b8fe1b53acd839e0d9bbaef23d  libstdc++-v3/testsuite/experimental/numeric/77801.cc
! 876bd143b0d5bd4b898689a1eec51b72  libstdc++-v3/testsuite/experimental/numeric/92978.cc
! 1527c8d6f236d66651ae7e6940d00c60  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
! 3f42a8a32afdb0ca763d06dd04d8fc31  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
! c8c518dfdd3581c17b03fdee74bf5e3e  libstdc++-v3/testsuite/experimental/optional/77288.cc
! 9eda735db34f5b25fbd0c901f7c44897  libstdc++-v3/testsuite/experimental/optional/assignment/1.cc
! e42ff5bce1f17b6ab416f7a6e5db893d  libstdc++-v3/testsuite/experimental/optional/assignment/2.cc
! 9bd8d5ec032bf5062d0413c5bbbfbc03  libstdc++-v3/testsuite/experimental/optional/assignment/3.cc
! 6c543d906f2ebad470cbadb07b613f80  libstdc++-v3/testsuite/experimental/optional/assignment/4.cc
! 947a24376ebcf9d74ce949670b087613  libstdc++-v3/testsuite/experimental/optional/assignment/5.cc
! f2509233cf59924b4a87876b9fb09328  libstdc++-v3/testsuite/experimental/optional/assignment/6.cc
! e7ceef8ae11c938224dbc1dcdf13c014  libstdc++-v3/testsuite/experimental/optional/cons/77727.cc
! c98af34c5a31100a4603ab44b5267a0a  libstdc++-v3/testsuite/experimental/optional/cons/copy.cc
! 3adca7d653aacf8a5cbbb18212304de8  libstdc++-v3/testsuite/experimental/optional/cons/default.cc
! a00d57c16366c3c9b00d8b7285685ddf  libstdc++-v3/testsuite/experimental/optional/cons/move.cc
! 35627c9246d3be7eb900be90ade6356c  libstdc++-v3/testsuite/experimental/optional/cons/value.cc
! 5171b005fa44c29e7e056245ab16b43e  libstdc++-v3/testsuite/experimental/optional/cons/value_neg.cc
! 2d52650d6eafc7fdb900f1edb03c6f9a  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/default.cc
! 8a2fecaa968c97f5cd9009bbe10ec01d  libstdc++-v3/testsuite/experimental/optional/constexpr/cons/value.cc
! 19ca671bb301ba333d21837a72bc254a  libstdc++-v3/testsuite/experimental/optional/constexpr/in_place.cc
! eb52b05914b1964fe1fca3e9b4708e34  libstdc++-v3/testsuite/experimental/optional/constexpr/make_optional.cc
! 72222a77ce630c509091aeda164bcd95  libstdc++-v3/testsuite/experimental/optional/constexpr/nullopt.cc
! 13c2e5f9b761284cc1ea842fc5deb76c  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/1.cc
! ba8bd4a07b165eff2d542ea3357427ed  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/2.cc
! a1ae4d910fac3c53ca10591edab1b845  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/3.cc
! 19962d79a07626268ee23be7218aa10c  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/4.cc
! a370afc2698d2346e101a8aa495fbb07  libstdc++-v3/testsuite/experimental/optional/constexpr/observers/5.cc
! 378a04104bb3e9dcb26fd957883ca1eb  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/1.cc
! 3f51199c24d174c658fb65e8cb7767a2  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/2.cc
! feab8af19c641b073fdd34cf4665a127  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/3.cc
! 0a395d59364d7edad53f775ef343702c  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/4.cc
! 6c0ff09f7c79221d7c11156caa801bbf  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/5.cc
! 3dee18216c73de8fddf02c7154d85729  libstdc++-v3/testsuite/experimental/optional/constexpr/relops/6.cc
! a5abd216c31c64d012e0c0230d003a60  libstdc++-v3/testsuite/experimental/optional/in_place.cc
! 2417fd27bb177b768f7c9aacfd0d3e97  libstdc++-v3/testsuite/experimental/optional/make_optional.cc
! db73eaea780eda53c6d8f42b9fd70666  libstdc++-v3/testsuite/experimental/optional/nullopt.cc
! 2b381232aadfe4b959208dc26ddda58d  libstdc++-v3/testsuite/experimental/optional/observers/1.cc
! b6ed539035119d0f9f0c4fc17980700c  libstdc++-v3/testsuite/experimental/optional/observers/2.cc
! 0532de1c77d5dfb8bfd554e1289c230f  libstdc++-v3/testsuite/experimental/optional/observers/3.cc
! 700645d67989d1d22b83376c30644dc0  libstdc++-v3/testsuite/experimental/optional/observers/4.cc
! 44a106ada0b10163637642fb0dc8c3c2  libstdc++-v3/testsuite/experimental/optional/observers/5.cc
! e22a9d9acc1dc071832cbd9beb39fe51  libstdc++-v3/testsuite/experimental/optional/relops/1.cc
! bdcc20dfb962a7ceec2af583d437b7e2  libstdc++-v3/testsuite/experimental/optional/relops/2.cc
! bfde4a14caeccc988a516453abc0b6b8  libstdc++-v3/testsuite/experimental/optional/relops/3.cc
! 89d492c1143da75f1de7e0ef50b2a3a1  libstdc++-v3/testsuite/experimental/optional/relops/4.cc
! 6d46b3a6b4ba9184b79c2af7f56058b6  libstdc++-v3/testsuite/experimental/optional/relops/5.cc
! 936b59878666a5bd3e382633b3b60cd4  libstdc++-v3/testsuite/experimental/optional/relops/6.cc
! cef5b8f2b98bd925e126b3456cfa0851  libstdc++-v3/testsuite/experimental/optional/requirements.cc
! 171461e9f0672f4098501431368312ca  libstdc++-v3/testsuite/experimental/optional/swap/1.cc
! b6b4e5e7ebc58b2f042f675b3c573529  libstdc++-v3/testsuite/experimental/optional/typedefs.cc
! d2cf46e2bae13d763cbecf99dd3c8930  libstdc++-v3/testsuite/experimental/polymorphic_allocator/1.cc
! 081fc3300e16c0cf79a8f2c19526ebc9  libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
! e21bbb2c63ea2d7d80c2a6189d6b109b  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
! 6125c4386a61f926abbf35a03b665506  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
! 3cdfd07fb2e3e085f0d13e709692cadb  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
! e13f7cac3ce7dd6dc76795c23cd10a2b  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
! 5697c2988f25f94c3dadd5d5713e1eac  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
! 924d7d3647aa0df31e809d17a0361a1d  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
! 795daeab1e0d558f4940cd3433d3790e  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
! 2667c5f9d24fe76041437e405e6de950  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
! 6c99f8e9edb2b95ac04a3658452622ac  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
! 4eb4c10cea6f4d816961ead45472a1e2  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
! bf2f05c180c0e0a080c2f7ef17ed9ef9  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
! 962f980085c6aa6de8f8667361b86183  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
! 8725ba41ea6941772aff59211897f694  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
! b90c6d55bfa666cb88cd4de8bf8c1d87  libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
! 7c95c2530dd621e8e7450e13f4627815  libstdc++-v3/testsuite/experimental/propagate_const/assignment/copy.cc
! e0cc148bbac63b5647692f5c2bf69e5d  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move.cc
! 6cf5b016d73b1b20dbe7f56e8e0350fb  libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
! 4962dc2c78cf170a7b58a7d1a26a7886  libstdc++-v3/testsuite/experimental/propagate_const/cons/copy.cc
! ebe51a05dd136af926bc684f8452ffd8  libstdc++-v3/testsuite/experimental/propagate_const/cons/default.cc
! 9e0cf1e5d5c9f6433a5460486e66879c  libstdc++-v3/testsuite/experimental/propagate_const/cons/move.cc
! 644ef74733ed21e90295d2dc84c0c083  libstdc++-v3/testsuite/experimental/propagate_const/cons/move_neg.cc
! 141e6e53ef96f061aed8efec09b534dd  libstdc++-v3/testsuite/experimental/propagate_const/hash/1.cc
! 2dab3c916cf8e10c92d4c03ef52d6dad  libstdc++-v3/testsuite/experimental/propagate_const/observers/1.cc
  04b09dce4e740e5b8a2e2620eb6b3ef4  libstdc++-v3/testsuite/experimental/propagate_const/observers/107525.cc
! 83a71c5bb490e1431ed4ecc854cfac79  libstdc++-v3/testsuite/experimental/propagate_const/relops/1.cc
! 4b0b5a3b6cc22dd814a8e2f2ea9883e3  libstdc++-v3/testsuite/experimental/propagate_const/requirements1.cc
! 1e60a15dd144e00e6171fb79629c6235  libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
! d3b369d03c05107cf702a7d7d2743921  libstdc++-v3/testsuite/experimental/propagate_const/requirements3.cc
! 965aeaaa152b500ef9db2578940918b1  libstdc++-v3/testsuite/experimental/propagate_const/requirements4.cc
! 186230ce8febfc5bc0066c35b44a8a5a  libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc
! aae0b93437b3f5d11657e8ecb44702a1  libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc
  f622008c5ec7680a2ac920136d22446f  libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc
! 01f20e6d36eee3da613c4c77bd38360f  libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc
! 486dd39845f8380fd9e972e8d33e75f0  libstdc++-v3/testsuite/experimental/random/randint.cc
! 361ede1c1f04c73ee779bf0149b04db4  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
! ff0fd7862395d7a8d0e3aae00471a386  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
*** 142006,142768 ****
  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
! 2bb4079516f0e2202a14792942165a79  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
  45280a2212e6fb520cb8b7465d640540  libstdc++-v3/testsuite/std/format/formatter/120625.cc
--- 156346,157114 ----
  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
! b9d7cfe704b55ff13a54e27de4a02891  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc
  3718cfdb2ca6d6f1e0fb585a7350e074  libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc
! 77b2a7a22c561540aa38beb5b5aa5eb5  libstdc++-v3/testsuite/experimental/simd/tests/abs.cc
! c3b388727cd181a1aaad85891f5eb7b8  libstdc++-v3/testsuite/experimental/simd/tests/algorithms.cc
! ef26c16b8de91b80c9b15065d7eb35e4  libstdc++-v3/testsuite/experimental/simd/tests/bits/conversions.h
! 910fa88ce00815a2ec985db299913707  libstdc++-v3/testsuite/experimental/simd/tests/bits/main.h
! a1128d1c0c70fdff35a2a3633659d12e  libstdc++-v3/testsuite/experimental/simd/tests/bits/make_vec.h
! 7ae6f4c6aa3d0b8f649fadb313fc6736  libstdc++-v3/testsuite/experimental/simd/tests/bits/mathreference.h
! 723e6709bc4b8ff693b176d04860d4f5  libstdc++-v3/testsuite/experimental/simd/tests/bits/metahelpers.h
! 83dd84d5b21efaaaa76c66bbb03675d2  libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h
! 3b3e9fd0b48aec1a2eb472f580b1c825  libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h
! 6acb9642c4e0c0cefb7150bdf4bbf70d  libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h
! c054069e5140ba3be9616474429b8a3a  libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h
! 84ee8a142bff17d7cbb26aa2927e2f6a  libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc
! c67684740f0a659c7a009088600b556d  libstdc++-v3/testsuite/experimental/simd/tests/casts.cc
! 7043d36dce3831d4fda8bc2ac95303b7  libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc
! 20884eceeca4b444258600a441d0070d  libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc
! 1a03a2025684b20f3ae9fc335b9c5e0d  libstdc++-v3/testsuite/experimental/simd/tests/generator.cc
! d5802ea47650317bea80b4cec8088ba3  libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc
! 4217fc4fe55e4f4c7228139322370370  libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc
! 827aad799534d1a09261843fb24d881c  libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc
! 3af6213d32ba83dd1974d720654f59cf  libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc
! 91432b29e34ea52b22c5f1c952690a35  libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc
! 62bd807b09849578dc1738fa50e3f3f3  libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc
! 70efc0eb819a9ea60f88dd8343d72222  libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc
! 86f0281d240b2b613d93f24f2a1da78e  libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc
! fe491dbdbf0b6c9de270478512e4f57e  libstdc++-v3/testsuite/experimental/simd/tests/mask_loadstore.cc
! 1e6a2338138c5c43abbee242f497c0bc  libstdc++-v3/testsuite/experimental/simd/tests/mask_operator_cvt.cc
! 28d0a54bf45f51d07dbd8918d9dbb357  libstdc++-v3/testsuite/experimental/simd/tests/mask_operators.cc
! 5a94f780feff535b97dd44f7f0494ea6  libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc
! 03a227671d242aa65ad32733320a8ff2  libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc
! 9b77761c927ca89155fd0e9caa89fcef  libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc
! 95e36d6e623175539cfb4d479d4286d8  libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc
! 0aa25c041f4768a5a018396a2a0f4574  libstdc++-v3/testsuite/experimental/simd/tests/operators.cc
! da460d59bfeea17c2a8f8d33cfb14973  libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc
! 693ee1d3a4b71496326c73db80ad173e  libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc
! 6be431e7b483c11fa51ed68705ff3b40  libstdc++-v3/testsuite/experimental/simd/tests/simd.cc
! e15f4e55782d0265a9759ebfd9dc0e49  libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc
! 9c718887237f76c87122d8cb59d7fa39  libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc
! 293cbcca2cc13c3c0a831efd2a5ed0b6  libstdc++-v3/testsuite/experimental/simd/tests/splits.cc
! 345fbc12df53dc415d55658778aaf995  libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc
! 806fc5a93a86b964329c5e752804b77e  libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc
! e2770b2ba5f59db2929a52a313f183a6  libstdc++-v3/testsuite/experimental/simd/tests/where.cc
! 2a075b08eb35ecf2cfa9d78b2db33e5a  libstdc++-v3/testsuite/experimental/source_location/1.cc
! 9c44fd7f919496a50d1edc28fcb13522  libstdc++-v3/testsuite/experimental/string/erasure.cc
! 921b68ce10b8e39fd728b5a425a0ab1f  libstdc++-v3/testsuite/experimental/string_view/capacity/1.cc
! 760359502dd6a59035349b6498a2bc1c  libstdc++-v3/testsuite/experimental/string_view/cons/char/1.cc
! dac8811d5e0d45abdcea79148b23051b  libstdc++-v3/testsuite/experimental/string_view/cons/char/2.cc
! 07e27f1915737ee1d6124dcfb19f30d1  libstdc++-v3/testsuite/experimental/string_view/cons/char/3.cc
! 40cd01399de756023534d86aa3290ddc  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/1.cc
! 02e3f79076492c73041db79cf7a890f3  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/2.cc
! fa7d8e79bf8db9acddab0998b1228eaf  libstdc++-v3/testsuite/experimental/string_view/cons/wchar_t/3.cc
! 9cec25c48b80164f32c6e542d587d843  libstdc++-v3/testsuite/experimental/string_view/element_access/char/1.cc
! 5dde487558cfe6e385653a41aa3ffb87  libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
! a89947938f8f03ca48b2c9c4f3637651  libstdc++-v3/testsuite/experimental/string_view/element_access/char/empty.cc
! 6a55eceb9e09d5b7e2ea78071e01bc19  libstdc++-v3/testsuite/experimental/string_view/element_access/char/front_back.cc
! 6e50c236de7a77eadcace4ffe45f3035  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/1.cc
! 1885254ca4b94c1a1a28aabaf364ebe0  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
! 24201680c47f3dfc1c187f3382377dbf  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/empty.cc
! 65361ed9f1c7d59fb322303898e5957a  libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/front_back.cc
! b1197cfc5ae9d65833d2b7382e6bc03e  libstdc++-v3/testsuite/experimental/string_view/include.cc
! 65a6bf2d9ff2a5ac050e19104bfbad66  libstdc++-v3/testsuite/experimental/string_view/inserters/char/1.cc
! 4668c34e8c9ac7368faf2fd1aa179a6d  libstdc++-v3/testsuite/experimental/string_view/inserters/char/2.cc
! bc9f35dc877b716406aea6b1716c4967  libstdc++-v3/testsuite/experimental/string_view/inserters/char/3.cc
! 77994d5de19c79fdb796edf41230858c  libstdc++-v3/testsuite/experimental/string_view/inserters/pod/10081-out.cc
! 65a0d6b2fde128cb7fee11a64905cc37  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/1.cc
! 626e361e4b423a1e3b68901950c88b18  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/2.cc
! 6a5c9e5dfaef0bb2627daa602798224d  libstdc++-v3/testsuite/experimental/string_view/inserters/wchar_t/3.cc
! 5469365d38a222c33a33115eb272c67e  libstdc++-v3/testsuite/experimental/string_view/literals/types-char8_t.cc
! af095435d6cb64f44347aa87a3a493af  libstdc++-v3/testsuite/experimental/string_view/literals/types.cc
! 8a9118203889c8395d6c6cd8b369a684  libstdc++-v3/testsuite/experimental/string_view/literals/values-char8_t.cc
! bcf4e3d093ef5142cefd4b545f3d6744  libstdc++-v3/testsuite/experimental/string_view/literals/values.cc
! 474e53b0a3366aed4e67e4b521d907f6  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc
! 7df95ba0a18188fb3551d5b6560f0e9e  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/1.cc
! 2d8cf651d5b319d4e654e434ecaab625  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc
! e54c8af9be0552455242c405dbd6a3c2  libstdc++-v3/testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/1.cc
! a28254ff7b1a30ff3d81fe4fd23d5b43  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc
! 9ae41f381256827ccebb3b8f62cb130c  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc
! f0c847f7608be05bd3e59083dbca58da  libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc
! 6dbfef6aabef788c86bdbe64c89d0b04  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc
! ba10340411cfcc1e64fe3b6fc089d614  libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc
! d02c7b24d683cb70e9dcb979248474e5  libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc
! 28548e34971f4ad391948944c361dfd0  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
! 9d6e463d3c27f1429047cf97f2562d5f  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/1.cc
! 33a4b67599f54f9798f5ce0c837b5d5f  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/2.cc
! 35d069d3ca52535ede2468b7a156c6ef  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/3.cc
! dfcfb535c48383d54f17b5d3bc186bef  libstdc++-v3/testsuite/experimental/string_view/operations/find/char/4.cc
! 26465557f7b2e5b4c70dc8a5e59ae8e7  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/1.cc
! ba102a91271c835f9afe1891a11f96ee  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/2.cc
! f813632571198e7fe1d3d6c5ad2d71aa  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/3.cc
! cc489fadb3ca1680ff79b2866a6b0946  libstdc++-v3/testsuite/experimental/string_view/operations/find/wchar_t/4.cc
! c5c866038f4a4c21820261bb45374fcf  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/1.cc
! 03de148a9fbc5bb4fb230f97ad027985  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/2.cc
! 7734d4099b283a0b3758bbebdba41b2a  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/char/3.cc
! 043386b3f19a3360c69b1bf594fcd9eb  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc
! ee93e4fbf0f31849b5fa83b793165e30  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc
! c820f71f38e3157e835efc388406d48c  libstdc++-v3/testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc
! 23b7ebbf8efb03b4487054b3b41e0128  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/1.cc
! dc6c66e39af0e383eb2ab275e0a35f7c  libstdc++-v3/testsuite/experimental/string_view/operations/substr/char/83511.cc
! 69a6309ca319c69e5d1e06e4536b1b7f  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/1.cc
! dc0db566c79fdece56455955a0360211  libstdc++-v3/testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc
! 6d88eac9ba93af8b18d9e8e517e3003e  libstdc++-v3/testsuite/experimental/string_view/operations/to_string/1.cc
! 868b85420e08c96560a101d1752dedd3  libstdc++-v3/testsuite/experimental/string_view/operators/char/2.cc
! 1cc247398d024e98c1107c42013d9868  libstdc++-v3/testsuite/experimental/string_view/operators/wchar_t/2.cc
! 4e7a0f2323e75b755a3e7b3703b83084  libstdc++-v3/testsuite/experimental/string_view/range_access/char/1.cc
! 75c9f1cec250105274b7c245d80959a2  libstdc++-v3/testsuite/experimental/string_view/range_access/wchar_t/1.cc
! f7071c502c99f175a7d90e5b6621a232  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/1.cc
! bf7fdcbec9b5a83616d39c107f2329fc  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char/1.cc
! 11366afcbd1971b54ab8d3c5454654d9  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char16_t/1.cc
! 670c6d6ddd5db95645b50c8568e3ce1c  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char32_t/1.cc
! 6835b2b8c89bbe705ae55485537286c3  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/char8_t/1.cc
! 2289ad5646ea51313b568898ded04156  libstdc++-v3/testsuite/experimental/string_view/requirements/explicit_instantiation/wchar_t/1.cc
! e65f676ad12f5cb0552bcd1174c21342  libstdc++-v3/testsuite/experimental/string_view/requirements/typedefs.cc
! 528f3a4460628b899a505aff8d16c519  libstdc++-v3/testsuite/experimental/string_view/typedefs.cc
! c4a5c62df1a6a047d81c148cb7f045e8  libstdc++-v3/testsuite/experimental/string_view/types/1.cc
  b89c4bdefa0bf886e09684838214bb81  libstdc++-v3/testsuite/experimental/synchronized_value.cc
! 391ba53b2737d90e4794dab1ed009f28  libstdc++-v3/testsuite/experimental/system_error/value.cc
! 7ffa68abd1d524b87f25cc97c9d32b73  libstdc++-v3/testsuite/experimental/tuple/apply.cc
! 23bbe96306ab449b894b57e266c0661e  libstdc++-v3/testsuite/experimental/tuple/tuple_size.cc
! dac7ef99a092fcc690da738ddd1f4a88  libstdc++-v3/testsuite/experimental/type_erased_allocator/2.cc
! e6d4b771d792f41aa5734502c40840c9  libstdc++-v3/testsuite/experimental/type_erased_allocator/uses_allocator.cc
! 8762ee4e75c64bff48e42e305b7ead0b  libstdc++-v3/testsuite/experimental/type_traits/detection.cc
! ce09042b3685bc07d0dd08ba05ee05a9  libstdc++-v3/testsuite/experimental/type_traits/nonesuch.cc
! 78f3a3d251e5fd892270c1cf67668032  libstdc++-v3/testsuite/experimental/type_traits/value.cc
! d44d019d427c72597f93a305b398905c  libstdc++-v3/testsuite/experimental/unordered_map/erasure.cc
! 2a545d01959a412fcbd6f1521a98ad5a  libstdc++-v3/testsuite/experimental/unordered_set/erasure.cc
! 3652cbbe930ee327a6b814005a0ecd8a  libstdc++-v3/testsuite/experimental/vector/erasure.cc
  95a373500a567d97002f91fef18ca2e2  libstdc++-v3/testsuite/ext/104395.cc
! 638c1d09bda9df6284361abaf225b541  libstdc++-v3/testsuite/ext/bitmap_allocator/check_allocate_max_size.cc
! 957ee5b0e8b1b1758eb7d2f99b0f207f  libstdc++-v3/testsuite/ext/bitmap_allocator/check_deallocate_null.cc
! 64ea6a76144dac7e85086318a8d482ee  libstdc++-v3/testsuite/ext/bitmap_allocator/check_delete.cc
! e8b9208c56164c0e6b6ba172afae6944  libstdc++-v3/testsuite/ext/bitmap_allocator/check_new.cc
! 41916ddc69dab098e1d0f35d6050f595  libstdc++-v3/testsuite/ext/bitmap_allocator/overaligned.cc
! 80f9a77a65b560a63ccecb3c24d32d13  libstdc++-v3/testsuite/ext/bitmap_allocator/variadic_construct.cc
  846dc8224edb857bb6953efa8b4cdb2d  libstdc++-v3/testsuite/ext/char8_t/atomic-1.cc
! a0f2b71ac18f348fe83fe61fb2c7058f  libstdc++-v3/testsuite/ext/codecvt/1.cc
! 90eb427b60804208c3d7b7a44e0a5b35  libstdc++-v3/testsuite/ext/codecvt/char-1.cc
! 43ab560da990c716bff30a2a11612d0b  libstdc++-v3/testsuite/ext/codecvt/char-2.cc
! 808de307e1aca649db0f8e7ceef12649  libstdc++-v3/testsuite/ext/codecvt/wchar_t.cc
! 5db2ef5b0145adac958548b85efa4849  libstdc++-v3/testsuite/ext/concept_checks.cc
! d7048cbfadae69a36e3f56d8415eb362  libstdc++-v3/testsuite/ext/concurrence_lock_error/cons_virtual_derivation.cc
! b1b113f0ac269013aab6c520bfae79d0  libstdc++-v3/testsuite/ext/concurrence_unlock_error/cons_virtual_derivation.cc
! c7efe31124c4ff3495d89a3e58da0e12  libstdc++-v3/testsuite/ext/debug_allocator/56170.cc
! 415f7ae0d7b897a5719937309f3f0edb  libstdc++-v3/testsuite/ext/debug_allocator/check_deallocate_null.cc
! 701b937823b374e604e0ab7be1dce6e6  libstdc++-v3/testsuite/ext/debug_allocator/check_delete.cc
! 7e81825a56b45b8bd70720c0378993fd  libstdc++-v3/testsuite/ext/debug_allocator/check_new.cc
! 76f37c5e5e044af7ceede7335c0a8191  libstdc++-v3/testsuite/ext/debug_allocator/eq.cc
! 210f4fc962cf9b525d5dd49e89d5a488  libstdc++-v3/testsuite/ext/debug_allocator/explicit_instantiation.cc
! 00ac116124f5e77a8922f67361197e58  libstdc++-v3/testsuite/ext/enc_filebuf/char/13189.cc
! 8e655a1c7ce4d6c18f910bd0d063c7b7  libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
! dc6385c6099525db0ecf1908ce6b63dc  libstdc++-v3/testsuite/ext/enc_filebuf/wchar_t/13189.cc
! 21262f264fff425d665d2fc258ecb07e  libstdc++-v3/testsuite/ext/ext_pointer/1.cc
! 5c6e45443f8ad3e4290a54de33669c4e  libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc
! eb5e0c476b402731977896b3567fc86e  libstdc++-v3/testsuite/ext/ext_pointer/alloc_eq.cc
! bc1f478be03e7ec75bcdb23542093cb8  libstdc++-v3/testsuite/ext/forced_error/cons_virtual_derivation.cc
! 89300cef3ea19e11a804d6a8d455703c  libstdc++-v3/testsuite/ext/headers.cc
! 746d5381151ffa242791f81733d3ae50  libstdc++-v3/testsuite/ext/iota/cxx0x.cc
! 658cf6b1c91739418d6b5e2a12d990f4  libstdc++-v3/testsuite/ext/iotaarray.cc
! 6c00c2425628fbc4eabc97cb2e83fd9a  libstdc++-v3/testsuite/ext/is_heap/1.cc
! 0a8fd12a01e646097df772bd82c35df8  libstdc++-v3/testsuite/ext/is_heap/47709.cc
! 4fe7b3cc98cab8836af3cef0b52b9a7b  libstdc++-v3/testsuite/ext/is_heap/check_type.cc
! 000fe0c8845f7e5dcda929eed3bceb5f  libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
! a9d2a853b6fbe8388dc01b6f54c6527c  libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
! cdcdf7409f5504aa6f9b71b645445319  libstdc++-v3/testsuite/ext/malloc_allocator/check_allocate_max_size.cc
! 8ed8e196e43522a34dc71b8dffd7b9d1  libstdc++-v3/testsuite/ext/malloc_allocator/check_deallocate_null.cc
! c6afe9e9827bbd68b1d8aaebec914b39  libstdc++-v3/testsuite/ext/malloc_allocator/check_delete.cc
! 414397a1c9da053de2c9d6a9068f9fcc  libstdc++-v3/testsuite/ext/malloc_allocator/check_new.cc
! 138c5c6625ce7ed721d54a382a97b073  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_global.cc
! 93fff98c8b127d2bec8dca29b58aad78  libstdc++-v3/testsuite/ext/malloc_allocator/deallocate_local.cc
! afee0898c904b0b0f7377965bdc0ce7f  libstdc++-v3/testsuite/ext/malloc_allocator/eq.cc
! 30da5aed45d257f3be7290d8eb6812a0  libstdc++-v3/testsuite/ext/malloc_allocator/explicit_instantiation.cc
! e0b29ec11fb4d4d8a3a52117b7ca6661  libstdc++-v3/testsuite/ext/malloc_allocator/overaligned.cc
! 8120ddcaf40d7ec3194924b592fb7fde  libstdc++-v3/testsuite/ext/malloc_allocator/sanity.cc
! cb20ae19e9611e31eff423743fdf8531  libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
! 25462689eb689ed0790c438ffea2e0f5  libstdc++-v3/testsuite/ext/median.cc
! 74362df067a36cb91482719253828dd9  libstdc++-v3/testsuite/ext/mt_allocator/22309_thread.cc
! 5a9161233dba0675949e81e6f8710ae2  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_big_per_type.cc
! 73fbde2e3bef18208041fab900160fbe  libstdc++-v3/testsuite/ext/mt_allocator/check_allocate_max_size.cc
! 234b66ba5d5fde32802fd8bda1bb3580  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null.cc
! d03c67cd631bc40dd7701a3b6477d8ed  libstdc++-v3/testsuite/ext/mt_allocator/check_deallocate_null_thread.cc
! 84d7bf89d3c0bcb5856360c7e22d237d  libstdc++-v3/testsuite/ext/mt_allocator/check_delete.cc
! a932f33e06cbb203a510600517633ed6  libstdc++-v3/testsuite/ext/mt_allocator/check_new.cc
! 380c39af5757a1437cd0bc162e98d48d  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-2.cc
! 3565b26d523003b1728dde6d3017ff8b  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global-4.cc
! 46af0385751e1821303ebec452cf0233  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-1.cc
! a5dda748d9af2ab8d81554b0c7b22c43  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_global_thread-3.cc
! 0cbadcfe41fb211cbfb9a8a3d666c2dc  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-2.cc
! ee5d09af5eebcf6b800efd5c645d01b8  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-4.cc
! be171233e648a5f26483ec44d84b29cf  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc
! c29aa4bc960937bd75fde5be95a36672  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-8.cc
! 0cc45619d3a7967d1021419fb0c0216a  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-1.cc
! 6d1f8d1f1276241a5d37c009bc862b05  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-3.cc
! 3509b73d258d243db1abefe7884a29b0  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-5.cc
! 8f62548f193d9f72e9f82e58a1efdbe9  libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local_thread-7.cc
! b0a91417ebc0c8d3b83a3f68995bb7f5  libstdc++-v3/testsuite/ext/mt_allocator/explicit_instantiation.cc
! 4e345a3f32f48607a8cdf80558af16d7  libstdc++-v3/testsuite/ext/mt_allocator/overaligned.cc
! 364efb49abbaaca8cce5235fedc5f56b  libstdc++-v3/testsuite/ext/mt_allocator/tune-1.cc
! a24570513264b843a91b664f5e95a3dd  libstdc++-v3/testsuite/ext/mt_allocator/tune-2.cc
! 8777838835117c745d5012546990b658  libstdc++-v3/testsuite/ext/mt_allocator/tune-3.cc
! f84fb90305565a80465e907832326e88  libstdc++-v3/testsuite/ext/mt_allocator/tune-4.cc
! be334b007da178b190f0a7d508db8f3e  libstdc++-v3/testsuite/ext/mt_allocator/variadic_construct.cc
! af0812bb4ccc28c14231cc5e1043f058  libstdc++-v3/testsuite/ext/new_allocator/89510.cc
! 22ca4ca6a4c9eb912d43e4c55fa830eb  libstdc++-v3/testsuite/ext/new_allocator/check_allocate_max_size.cc
! d2f6eda8a3cb79628431ad115b42db14  libstdc++-v3/testsuite/ext/new_allocator/check_deallocate_null.cc
! 95fefe76537a1e0575e04b7b72f16db5  libstdc++-v3/testsuite/ext/new_allocator/check_delete.cc
! a1a58afbfba9e02915cd8472026bb731  libstdc++-v3/testsuite/ext/new_allocator/check_new.cc
! 65f02841d32200f67ef3083aedda3d29  libstdc++-v3/testsuite/ext/new_allocator/deallocate_global.cc
! 9c340a3d134c2f8abbf72dd2a0c844d8  libstdc++-v3/testsuite/ext/new_allocator/deallocate_local.cc
! 614e3eb86dd882f1e2a873366492f985  libstdc++-v3/testsuite/ext/new_allocator/eq.cc
! c9693a182db41fefcd37d06aec8c1261  libstdc++-v3/testsuite/ext/new_allocator/instantiate.cc
! ada7a5097b4165cb4e65879c2d35f508  libstdc++-v3/testsuite/ext/new_allocator/overaligned.cc
! dfb9851f463c5f34b762d3108006bbe8  libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
! a535e808b9fa8758f92dd7b025a6678e  libstdc++-v3/testsuite/ext/numeric_traits/numeric_traits.cc
! 862dbc8ab8a78597593e439d951db9f1  libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
! 0645d6b2a2fe02b667782fdf1b71cff5  libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
! a5f5d6ec01b997b8b0287c8a9c459333  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
! b6c6c2e269b9be64d0b86905807eb082  libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
! 3ae679217976a526ee6cf3eadce90e05  libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
! e5ccb976f0e602661bf85d778b62744d  libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
! 76205ca054fa58bdab7b1b9d8c39c408  libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
! 4d5037ef75aa120c3ae28bb71af88dfe  libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
! cef7b670a29796bcf1b735aa44e6e9df  libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
! 4d7f26580e32ca29a8211a605b945627  libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
! c8b6fd3841fa065f0d5b286bb58f1469  libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
! 39ebad231e224203d562c2d3b29a551f  libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
! 4747c6ff366728d684afa4a5c0f7789d  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
! de546649f9818a17a201e990aa53fc7f  libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
! d8e195743d5092179f2e9db77d8fb137  libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
! c77edae66cb83405dadf976fa88f39c1  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
! 10a7108569068f53870baf582281f8c6  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
! f9d5895632ac72cee7d158c6e4a99001  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
! 713437aad2873f579dbe09908ca595b0  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
! 372ea73e558986af58c3e360942139bb  libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
! 7f2c4b975cb4cdc38fba276b6e0ff679  libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
! c7c33f80eea4f8632cd981b1928bec51  libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
! 740922b94ef8b678eeab977a932875f9  libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
! 39551c20b41f407c5b341b4ffd822f55  libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
! a0aac599474709672307a25ab25fd65a  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
! 108a81503eb5eb99fb59712547bec5ce  libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
! 57c7bc9927bded9d4a70630bebb55b61  libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
! bebd679c117f3b81440f53afeca7b8c3  libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
! 65750d867b9e046be5fb5e310ec4dffd  libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
! a978f2340d51665ff01039af2bd83112  libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
! 1828ecb8c96d0f71c307f8fd89749f92  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand.cc
! 3e75d9b9b125493ca83269b05180af90  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_map_rand_debug.cc
! 800235a8fa3e134e6a2f4ddefe7a6464  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand.cc
! 7503642a59cbadd70c19ef24cff41c8a  libstdc++-v3/testsuite/ext/pb_ds/regression/hash_set_rand_debug.cc
! 3b9bd4a93776520971c74d8ae48745eb  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand.cc
! 52418747de62e27182fcbf4987998de2  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_map_rand_debug.cc
! f61308af8adbbdc78ef4e94343102461  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand.cc
! 64c7708b5a4c845878a1ba107157c719  libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_set_rand_debug.cc
! ecaa4b21e8f90b9979559710a39ddbef  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc
! d21cebf8fb33ca9877eb6019818db47b  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
! 328a4fee103d979937430c8d6300d4a0  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand_debug.cc
! 7c5e21c7948cf1d3e666983962bb2326  libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
! f0b9adf064972011ceee6d5706cec387  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand.cc
! 3dc2ff9665cd1af138c0205f3a60c602  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_map_rand_debug.cc
! 71344092497f15f8ab532a441cb2ee36  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand.cc
! 7126be24490763566e4e2b5110ddefe2  libstdc++-v3/testsuite/ext/pb_ds/regression/tree_set_rand_debug.cc
! a49c6255f98ab92dabae94e8c8a0721f  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand.cc
! 7a505cd00892f9c8ff6cb297504802c9  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_map_rand_debug.cc
! b59e892fe0f12e7f187ea15e1275b264  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand.cc
! 22905ea80158e4b381020a7d1a0d5962  libstdc++-v3/testsuite/ext/pb_ds/regression/trie_set_rand_debug.cc
! 374dfe892d53ee4db95d300cdf94f2f7  libstdc++-v3/testsuite/ext/pod_char_traits.cc
! 5b9ac3a71428fb26b7b2215fa566a481  libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc
! 3593a0c6b55e8e7171761d1ec25eb604  libstdc++-v3/testsuite/ext/pool_allocator/check_allocate_max_size.cc
! 8a36c75f38a35cc7e764fe698f22064c  libstdc++-v3/testsuite/ext/pool_allocator/check_deallocate_null.cc
! 8dc6f8aa14d971d1ff785299cd69be26  libstdc++-v3/testsuite/ext/pool_allocator/check_delete.cc
! 4d8d8eb6fcab695a9cbc894b25801697  libstdc++-v3/testsuite/ext/pool_allocator/check_new.cc
! a90256cdf8d75ced7292a385429f410c  libstdc++-v3/testsuite/ext/pool_allocator/explicit_instantiation.cc
! e3ec409161590fa3dcfcf767bb14f90c  libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc
! 795cb59d8c5718468f530ae8c834372a  libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc
! 7a7dfb05dc0794b1ab2c1790319cacb5  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc
! de6e47be4032947c4ab45adde3c94330  libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/parms.cc
! 181171130875c5e0e20c0e6a66c0d887  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/equal.cc
! c3e025adc8cc3389b54de25510cc3476  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/inequal.cc
! 47edc9489fd4ffc015780e415e9a7c56  libstdc++-v3/testsuite/ext/random/arcsine_distribution/operators/serialize.cc
! 8033c5d4ead5e7975b0a9d7cff5dbc65  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/explicit_instantiation/1.cc
! eb7f10ed1f8c848751069425748c3f70  libstdc++-v3/testsuite/ext/random/arcsine_distribution/requirements/typedefs.cc
! d986faded7aa8189411e3ae6b105eafc  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/default.cc
! e27d18d57839768f040ee4fd08176eb0  libstdc++-v3/testsuite/ext/random/beta_distribution/cons/parms.cc
! 37f5c1fb51e9c10bb9c6adde1d7daf46  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/equal.cc
! 39c5e6f07015526cc8e37196d40f1d0b  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/inequal.cc
! 8684dbe32200f10b278a1525ef95d1d3  libstdc++-v3/testsuite/ext/random/beta_distribution/operators/serialize.cc
! a695135facc1171de8a169b459ffc5f5  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/explicit_instantiation/1.cc
! 997b07f480f47134c5a2af78b61e9c09  libstdc++-v3/testsuite/ext/random/beta_distribution/requirements/typedefs.cc
! 197682087dddf6758f7c54ea1c14ec81  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/default.cc
! ae257928aa2fc73612f3ed9d18094102  libstdc++-v3/testsuite/ext/random/hoyt_distribution/cons/parms.cc
! 9341b7a2d7d234a54dbe3286e14aca7b  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/equal.cc
! 09acb932164a23a29ebf7e52c2b27502  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/inequal.cc
! 4a3fa79ebdb599258309273bf4b35177  libstdc++-v3/testsuite/ext/random/hoyt_distribution/operators/serialize.cc
! a292861606cd26721074f96b5f9a4b04  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/explicit_instantiation/1.cc
! 4a2971c63a47d7eba37d3c53de59de69  libstdc++-v3/testsuite/ext/random/hoyt_distribution/requirements/typedefs.cc
! 71d896145a471b12d8a72e0957e064c3  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/default.cc
! fff135080e4a78105d2d5c51b8cc7d28  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/cons/parms.cc
! 56d2aff92420f8e8733dca7faf0b5095  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/equal.cc
! 5376e452705cae3c7f90ac07cae07e54  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/inequal.cc
! 9c8d675353452124b671132a024aa14a  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/serialize.cc
! f6d89c5289adcef6d56d74ed262c46a5  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/operators/values.cc
  5310d63384a16aab3ca0056f2cb3b3dc  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/pr60037.cc
! 9f661431d916175f009240b1c55b0f57  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/explicit_instantiation/1.cc
! 7911212ee92630f7f4a847f7201e6e23  libstdc++-v3/testsuite/ext/random/hypergeometric_distribution/requirements/typedefs.cc
! b12ccbc181b5cc2f877cd26dc8aa299c  libstdc++-v3/testsuite/ext/random/k_distribution/cons/default.cc
! 0df179ec3863f6c568ccf773d21b66fb  libstdc++-v3/testsuite/ext/random/k_distribution/cons/parms.cc
! 48a5485a5429ac44d869da4c4878ed92  libstdc++-v3/testsuite/ext/random/k_distribution/operators/equal.cc
! 034275b388a86bcabfb86ab41c50fc68  libstdc++-v3/testsuite/ext/random/k_distribution/operators/inequal.cc
! ad84d3893854647f716cf87f5f02fa8a  libstdc++-v3/testsuite/ext/random/k_distribution/operators/serialize.cc
! fe57ecf4e2fc82eb3d01c4b7c6eb75e1  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/explicit_instantiation/1.cc
! 29b576df3d3636463f7f07f04e784896  libstdc++-v3/testsuite/ext/random/k_distribution/requirements/typedefs.cc
! 9ac4f1580fdcd8fd8cfda750e27e8912  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/default.cc
! 5b00c5865cf0664d962643c7f759496d  libstdc++-v3/testsuite/ext/random/logistic_distribution/cons/parms.cc
! 01de69bd938f90732d5ed5c499aafdaa  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/equal.cc
! 0035def4a673d57fa0627e47a4db1080  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/inequal.cc
! f4d79fb08e3fc0936c270e85a7174a05  libstdc++-v3/testsuite/ext/random/logistic_distribution/operators/serialize.cc
! 5533e32273d2e17db0c6586d6c1a2cb3  libstdc++-v3/testsuite/ext/random/logistic_distribution/requirements/typedefs.cc
! b8c198c5138a04cb5063bc9c73d3b7a8  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/default.cc
! 7e30e68e391a4915ec7afcaa4791055b  libstdc++-v3/testsuite/ext/random/nakagami_distribution/cons/parms.cc
! c43403602e0f1760234e03b969162193  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/equal.cc
! 5287599d4c98dc0a48b0678744c199cc  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/inequal.cc
! b488b84d66145fbc4f69e90ce6be6d33  libstdc++-v3/testsuite/ext/random/nakagami_distribution/operators/serialize.cc
! 76d5d014a913457f200f80b6342f78ac  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/explicit_instantiation/1.cc
! 382c38e66a0907f1db51f6e5cc897285  libstdc++-v3/testsuite/ext/random/nakagami_distribution/requirements/typedefs.cc
! 913c2c4de5a02cd46ae2e1407e8124a8  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/default.cc
! a550653af7e05f96c4d54441bcf32aab  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/cons/parms.cc
! 5ad914947134c27d8a19c0a30228ec06  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/equal.cc
! 0a929988a7ffbf8f71c6de1c0a62cce9  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/inequal.cc
! d214c491b03ffe687e9228be1536038e  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/operators/serialize.cc
! 267486747fa916caf53e6ceb77497276  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/explicit_instantiation/1.cc
! 778ff16b43c45747a020a461517164c9  libstdc++-v3/testsuite/ext/random/normal_mv_distribution/requirements/typedefs.cc
! c331036994582ddd5eafc1a4a0cd49ea  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/default.cc
! 7984252568f835411e115d1a0a40cd57  libstdc++-v3/testsuite/ext/random/pareto_distribution/cons/parms.cc
! 87f26e753173afeab45a3b6250d047a8  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/equal.cc
! e16c236200c744e05e11465d5dd62c3a  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/inequal.cc
! 34043e02240e8ad018bea5de9610c130  libstdc++-v3/testsuite/ext/random/pareto_distribution/operators/serialize.cc
! 2853f55a665c8e9bb8373f4cda71edb8  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/explicit_instantiation/1.cc
! ccc9a9e36ddd20319f64916d7a7d2cd4  libstdc++-v3/testsuite/ext/random/pareto_distribution/requirements/typedefs.cc
! 81f40724f9885e7fafa34cbeaa82a946  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/default.cc
! 7cde7cc7f6c155330ce2bfde64cc6176  libstdc++-v3/testsuite/ext/random/rice_distribution/cons/parms.cc
! 0d13face84adc53bdd06e73fa9c69d21  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/equal.cc
! d83bda7cd0963998bcd403d1b1d31c33  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/inequal.cc
! af2c67a5a5cd5c0e46403e157e529621  libstdc++-v3/testsuite/ext/random/rice_distribution/operators/serialize.cc
! 266bd0b8e4b3b5eddbfcca7e4d92f429  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/explicit_instantiation/1.cc
! 5c5d39adb694e69ca30277dfd831d5ef  libstdc++-v3/testsuite/ext/random/rice_distribution/requirements/typedefs.cc
! 182c05173914a7438f35ab74d6b3fdfd  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/copy.cc
! 8f35100346d7b76c0fc471d6f459e5c9  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/default.cc
! edaac1961d8e85edd127cb18ddfb8d54  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed1.cc
! efb12490c72aa261b2afac1b249a028d  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed2.cc
! 2d041d088a4985c95c1e448cc677ab52  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq.cc
! e0f5cd3f217dc6e8ed6f92049e5a7b0c  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc
! 3f6ce280cfd63373b2b0b99d13d5298a  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/equal.cc
! 8f468b91bdefea115681891c4864681b  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/inequal.cc
! 5c1bf961e66dc7c34122ac5a0aa3c05f  libstdc++-v3/testsuite/ext/random/simd_fast_mersenne_twister_engine/operators/serialize.cc
! 4ab47766e42482a510de32a2d1fbcf0a  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/default.cc
! d94f63e57be733a14bf50312a55b4864  libstdc++-v3/testsuite/ext/random/triangular_distribution/cons/parms.cc
! 118d75a20cf364336060af2f4922135f  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/equal.cc
! d0df1d17bf179f298d597c6247f6f16a  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/inequal.cc
! a6cf273cef3b3cb33c767ef29379f68f  libstdc++-v3/testsuite/ext/random/triangular_distribution/operators/serialize.cc
! be07f8bef910c89422a2c9d93dbd81c2  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/explicit_instantiation/1.cc
! 0ac4712396cdb09eb7175e91aec2401c  libstdc++-v3/testsuite/ext/random/triangular_distribution/requirements/typedefs.cc
! 38a994cda0869917091aad540bd7e4bd  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc
! 5447a91a7a5a55cbf9af57bd97427208  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/cons/parms.cc
! 566cae8ef8521941509a08a6176eb6fa  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/equal.cc
! 31d1921c0f6c8470d33bb2f76cd0f77a  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/generate.cc
! 637c80cc48b93ccbde6ea77f2e0081c5  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/inequal.cc
! 4f93ae3669e89b7b12d39c81143850af  libstdc++-v3/testsuite/ext/random/uniform_inside_sphere_distribution/operators/serialize.cc
! b549756c02b469df1e1a07a62bdd32a5  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc
! 9e94d03ef75ca059bcdd32a1f09b568f  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/equal.cc
! 1083c7e082c136e86cd68e1bda7a8d54  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/generate.cc
! a0f87d3c7c8d6f00317c98ad1b088867  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/inequal.cc
! 304f7d95ea73c98026e2e203c553a9fa  libstdc++-v3/testsuite/ext/random/uniform_on_sphere_distribution/operators/serialize.cc
! 40c47adfefc89b50ba33fffbb271aa8a  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/default.cc
! 24c07051a09ac56076f3ba6094ecc7ae  libstdc++-v3/testsuite/ext/random/von_mises_distribution/cons/parms.cc
! 3d9c38319d1b3065cd3fd2496b6dc6c1  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/equal.cc
! 5635a666d3a26d62e9097af0cdb253b2  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/inequal.cc
! 2dacb6614cc7a93c34f84b67df015161  libstdc++-v3/testsuite/ext/random/von_mises_distribution/operators/serialize.cc
! 8fa70c945c92d1f1192d5093641cf5b9  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/explicit_instantiation/1.cc
! 67d09596b57407e1bf8bec4e3394e797  libstdc++-v3/testsuite/ext/random/von_mises_distribution/requirements/typedefs.cc
! 07c64f81220661db57cceb16e27d25f6  libstdc++-v3/testsuite/ext/rope/1.cc
  4b4043d9b7ee0d0043f2c34bac5eae23  libstdc++-v3/testsuite/ext/rope/101542.cc
! fe00acc0fab40d86bd55d4918ca7bfda  libstdc++-v3/testsuite/ext/rope/2.cc
! eaeb9f73c55d2e924d4df07657a87b4f  libstdc++-v3/testsuite/ext/rope/3.cc
! 07c7a2d26244128a612472f0c42f9459  libstdc++-v3/testsuite/ext/rope/36832.cc
! 8bf6edbec86a77ab4c180be0227c57ef  libstdc++-v3/testsuite/ext/rope/4.cc
! 4a0055c99a5e629f1dbe4e3362e00422  libstdc++-v3/testsuite/ext/rope/40299.cc
! cb52a32e211ab1d42b183a1a4537faad  libstdc++-v3/testsuite/ext/rope/44708.cc
! 4737be0c06fd17d44ed47ee353414260  libstdc++-v3/testsuite/ext/rope/44963.cc
! a4e08603c8d33fac709191e3fa7d2740  libstdc++-v3/testsuite/ext/rope/5.cc
! 9e090298b46c08a097fe828526616fbe  libstdc++-v3/testsuite/ext/rope/6.cc
! df14674966bc6749e0cfa8f3941644e0  libstdc++-v3/testsuite/ext/rope/61946.cc
! 5bde4a3a2e0be2bdc8177955452ff5df  libstdc++-v3/testsuite/ext/rope/7.cc
! 1c34968499ba1c34d1c65bd7fab989b0  libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
! b6301dc0b9a364c8cba14f7c1f9f2a9e  libstdc++-v3/testsuite/ext/shared_ptr/1.cc
! 3e095c0c2e5cbf07880f67598684982f  libstdc++-v3/testsuite/ext/slist/23781_neg.cc
! 3641619e1537c66609b54d7598c5a238  libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc
! 44e123354fd92ca7c73dd26226936050  libstdc++-v3/testsuite/ext/slist/requirements/explicit_instantiation.cc
! b7a0ffe527223ff545ebd3aecddc8f5e  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_nan.cc
! 9f8118c49fb51e0c5ac6fe89a2ff3e29  libstdc++-v3/testsuite/ext/special_functions/airy_ai/check_value.cc
! 9726914448ceeff49d1bb20b1efa3c4f  libstdc++-v3/testsuite/ext/special_functions/airy_ai/compile.cc
! 302db049954b7968840028fa93a8b087  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_nan.cc
! ab16a3ec7fcf530978b6438bdd204efa  libstdc++-v3/testsuite/ext/special_functions/airy_bi/check_value.cc
! 3e12f2fbd282abb85bc63f8f451f9e5c  libstdc++-v3/testsuite/ext/special_functions/airy_bi/compile.cc
! 938d1d1d8fb8b6d488a082be34c181c1  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_nan.cc
! 7badeef3d9445a969d9ace582f165b42  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
! 5ad4b238e5cf169054cba698b7ed608b  libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/compile.cc
! 7b31ec09401b7b96c32406a676a19b1f  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_nan.cc
! b76b41597c464d6e1b9ec84cd3c8d2ff  libstdc++-v3/testsuite/ext/special_functions/hyperg/check_value.cc
! 709a59d39d05c92bd42d14fe376a68b6  libstdc++-v3/testsuite/ext/special_functions/hyperg/compile.cc
! 6354712154b701386ed4b656b09d6a4d  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-1.cc
! aa845e852bf01cbb16d3b080079ab298  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-2.cc
! 8737227e1e2deb8204c3e872b11de5bc  libstdc++-v3/testsuite/ext/stdio_filebuf/char/10063-3.cc
! d1bfcf475f6b90c8af21c92f6d6103f4  libstdc++-v3/testsuite/ext/stdio_filebuf/char/2.cc
! e165e43727061ac4c68a11d04a035338  libstdc++-v3/testsuite/ext/stdio_filebuf/char/79820.cc
! f3fb65af28ab4fb41b4c548d2f0b4238  libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
! c7d6ac7c7e3f31b0f5f81c62a7f0919c  libstdc++-v3/testsuite/ext/stdio_filebuf/requirements/explicit_instantiation.cc
! df9bb367555904918784b7b3f9d86bfd  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/1.cc
! 93cff26cec969f15a2802bd734e06dc9  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-1.cc
! 9c029078e9e5caf901bf76ab68c92104  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-2.cc
! dbba22f71c4d5c7ca0d1539fd837dc4a  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-3.cc
! 715e84182d17ab22cd5fc40b49739efd  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/12048-4.cc
! 75712c3979847a35918b6fbcf743b38f  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc
! bfac469f36b409672849772f3c6b7ff4  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc
! d55376edfeaa071ff0848463c4566077  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc
! 9ea7487a8879baba1dbd8f32a96de58c  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc
! 685a1ab7f6c9835e8b0b40971adbecb1  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc
! 415a1d4e8e4896cb807cf19817e68585  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc
! ea7142c697b6cf5dfc2f7f0b75b49f7a  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc
! cf65a79c2dd0b07e3f643dc1221c6c25  libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc
! 901540fafcc8aad34c75000b76d47209  libstdc++-v3/testsuite/ext/throw_allocator/check_allocate_max_size.cc
! e6e8e8d9182bbafaecd3c56f37dd2f65  libstdc++-v3/testsuite/ext/throw_allocator/check_deallocate_null.cc
! 77f9f4256389071e808dcbfae975bc6b  libstdc++-v3/testsuite/ext/throw_allocator/check_delete.cc
! 8700f8c7e326863121805e69670605e8  libstdc++-v3/testsuite/ext/throw_allocator/check_new.cc
! 3d063189715826951fef980b3169d8aa  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_global.cc
! fcd5288cec6b5d731c0d7e652b68475a  libstdc++-v3/testsuite/ext/throw_allocator/deallocate_local.cc
! f665ab936b18b5e9f38d1da6a3eb2bdb  libstdc++-v3/testsuite/ext/throw_allocator/explicit_instantiation.cc
! fd7b41eb8b8820f16e0e79afb85d343d  libstdc++-v3/testsuite/ext/throw_allocator/variadic_construct.cc
! 1d1f380b55ccaa3813ceaa7bccb75770  libstdc++-v3/testsuite/ext/throw_value/cons.cc
! fe257502d410f4ce826e88a7c53fd08f  libstdc++-v3/testsuite/ext/type_traits/add_unsigned.cc
! daccb4b3a34f5add81140b9e984258c9  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc
! 431cd5a9d544e33e6222ae66d08be0fb  libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc
! a75e5283099b1d26d9d6f0bd40ece747  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned.cc
! a02b15542eccdd47ac6223745d4b5277  libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
! eb9bd4a37bb01c33be8c139fadda92ec  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
! bb74d3db85224a67ff56d7b51626f457  libstdc++-v3/testsuite/ext/unicode/properties.cc
! 6e43c0153b56669f1f81ef4a606ba4ad  libstdc++-v3/testsuite/ext/unicode/view.cc
! 5c8f44c5c7749eb627a3594790fcb046  libstdc++-v3/testsuite/ext/verify_neg.cc
! f8223dfd0b3c25c041cffcce2f34d79d  libstdc++-v3/testsuite/ext/vstring/capacity/29134.cc
! f3d6c2bd857769d449231ce325e80eaa  libstdc++-v3/testsuite/ext/vstring/capacity/shrink_to_fit.cc
! c0b4336586c7e3cb42bedb03b862e30d  libstdc++-v3/testsuite/ext/vstring/cons/58415-1.cc
! bc0c80438062d6d739a6f55c7d37615a  libstdc++-v3/testsuite/ext/vstring/cons/58415-2.cc
! b3db115afc2ee21b2afda1802c574e76  libstdc++-v3/testsuite/ext/vstring/cons/moveable.cc
! 4d85b6fb4b41d746e4da39561d343379  libstdc++-v3/testsuite/ext/vstring/cons/noexcept_move_construct.cc
! b5ac62158072e67a6259a6bcc1445fbd  libstdc++-v3/testsuite/ext/vstring/element_access/char/58163.cc
! 374335348add7b398ec77f62c4159a47  libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
! 5282bf34214f3eb6a7e497cf9a2621c2  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/58163.cc
! de02c38b82e3c759e13eee7ab9f27bc3  libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
! 858a989af9c2a2adb25e34defcedd51e  libstdc++-v3/testsuite/ext/vstring/hash/char/1.cc
! 529e3a9f2596f6c6ba46396bbaa33eb7  libstdc++-v3/testsuite/ext/vstring/hash/wchar_t/1.cc
! be9cc7074f936acf8e549fae3981834f  libstdc++-v3/testsuite/ext/vstring/init-list.cc
! 60fdd91d120b5c7b52e8531ff987f42a  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/char/28277.cc
! 4aabb9d40915584dacc2fec48b4b46c9  libstdc++-v3/testsuite/ext/vstring/inserters_extractors/wchar_t/28277.cc
! bad4e728c4ad456479d6290421436f04  libstdc++-v3/testsuite/ext/vstring/modifiers/assign/move_assign.cc
! 1ac1b7ba8d03a92c9d082dac8eade7b4  libstdc++-v3/testsuite/ext/vstring/modifiers/clear/56166.cc
! 5628d34be0062c6cd87ab262b0a0480c  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/char/54577.cc
! a08ea19d6c8a8eb893f9dc41c3b2d7dc  libstdc++-v3/testsuite/ext/vstring/modifiers/erase/wchar_t/54577.cc
! 70058edce5853453f1bc07f9bc1a5d57  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc
! 6076e914e3fcb600a9a10ab1876efd4a  libstdc++-v3/testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc
! de6e3e4f654d80cc5ef97f26d7c62f04  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/char/1.cc
! a5055a9e094e5c3b0401e0188b6f0cbc  libstdc++-v3/testsuite/ext/vstring/modifiers/pop_back/wchar_t/1.cc
! 23d45480d7a53a1a0a6b495fd8f5ade0  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc
! a4ecbd884a73fab894ede5229814bc64  libstdc++-v3/testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc
! b364cf847c6a0e641ecac344f924b497  libstdc++-v3/testsuite/ext/vstring/operators/1.cc
! a0f8eaf058406de53638d178bfb4974c  libstdc++-v3/testsuite/ext/vstring/operators/2.cc
! 3cc78ed23bc5079af99e43dba164056d  libstdc++-v3/testsuite/ext/vstring/range_access.cc
! 560e1b8ea705a6d93f9d8a352c9fc9b9  libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
! 82fa8809fcb106e525d80ee1b8b012a7  libstdc++-v3/testsuite/ext/vstring/requirements/do_the_right_thing.cc
! 76f5b092ca024b9a86daa2338a0fdba4  libstdc++-v3/testsuite/ext/vstring/requirements/dr438/constructor.cc
! c1317a6354783487d6397e9195571e3e  libstdc++-v3/testsuite/ext/vstring/requirements/exception/basic.cc
! b36383a836c8a111dc73b14a5e7585ce  libstdc++-v3/testsuite/ext/vstring/requirements/exception/generation_prohibited.cc
! 6a9ebedf36470fb223e6020309c70b23  libstdc++-v3/testsuite/ext/vstring/requirements/exception/propagation_consistent.cc
! 4fadae51daaefed7f2bca2515e13e616  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/1.cc
! 48b520b438bfa3e91ed83c70e0a8c11e  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/2.cc
! 63990c9d514ecd51abc50c8ff0217595  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char/1.cc
! ae67e12b1c6f9ffca9d7f3023ef13a9b  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
! 21b5376da1282fee5311dc08f4d74e70  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
! 95d91fc7cc972c0a58ed742ff28c6b10  libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc
! 48a279a1b8fb8b3a2cb34b8c3b1143a1  libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc
! 32d4944898c5e42531913c85e4ea9ff6  libstdc++-v3/testsuite/ext/vstring/types/23767.cc
! a5010e1860bebb1e16830ce834c641b9  libstdc++-v3/testsuite/lib/dg-options.exp
! 553de715cd949bf28f1c09918d91f7e3  libstdc++-v3/testsuite/lib/gdb-test.exp
! 1a47e7e45a62ba86e1733481775dd887  libstdc++-v3/testsuite/lib/libstdc++.exp
! 6acf65c30e8c11621ea821f66462e155  libstdc++-v3/testsuite/lib/prune.exp
! 9869c7f65acdb8c56e8bf71f506efa5e  libstdc++-v3/testsuite/libstdc++-abi/abi.exp
! 52c743e70b23bd7101609f0386f83fb5  libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
! d78e6b671d1a91767a5bd46fb7407720  libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc
! f1cd73733d4194e548c0fee71129753c  libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc
! 8557164e0a6fc6f5803771c54b07ed92  libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc
! 49e551e8c18348803255c1cb966ef782  libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc
! e009d17f67ad8a32ee7f6fb505cb12b7  libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
! 10e18429ad520393bae5c1714a94dbc6  libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc
! 094af99382da8721f6ab7d18d917c0f8  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc
! cbe4966842e55d9b3662341172b9ff66  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc
! 6b90cb4ac6ead3c72c7a7d616f25ec10  libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
! 8cc227d7e3c9e1a507c215157b02b2ef  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
! d3faedf9767ad203ab75e19ef5469ac6  libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc
! 0b80b1e438870bb18ed0741a843d8529  libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc
! 3f04df3f4a0b8031c86b30a1d08e740e  libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc
  6a9ac7f69736076c75da48c32d9d24b2  libstdc++-v3/testsuite/libstdc++-prettyprinters/locale.cc
! 00e2deea4d34ce2091fe3715c98b4521  libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
! cb3552b7d7c85d9bc3d83aee5f924d5c  libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc
! 4d8154cb676345b4fd01c8ab407aa3dc  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
! 7d7d3958aeba853222e144dd409473fb  libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
! a2f369f45dc00a993c6a68439afe3ff9  libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc
! d469e3e792befb99e914e611477c0037  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc
! c11ca812697945aef149b494585b94ec  libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc
! 69da7435cf6cd8fb9a457553ed0e9dc0  libstdc++-v3/testsuite/libstdc++-xmethods/array.cc
! 18f1f97ad50910d7df30e2f3428dd91d  libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc
! 93fb3f309bc960a7c4543cc8a645736a  libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc
! b8deb8ccef0690672171267ba191b3a1  libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc
! 65667d51132930968f1c50891c4e84b4  libstdc++-v3/testsuite/libstdc++-xmethods/list.cc
! af518825ef5a7101f3b28c063a7ae9a6  libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc
! cb9bb64bffc5bf009381c4a2b621cf39  libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc
! 7c3373915dfa0122a95f202bbe0dd041  libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc
! 66e8163c001c61a6732cf3a5138fde50  libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp
  b820b00ba5cbe4223008917eaf7e1778  libstdc++-v3/testsuite/performance/20_util/memory_resource/pools.cc
! 22bdba5e3780a91a9ec8ea7c08bc3a16  libstdc++-v3/testsuite/performance/21_strings/append-1.cc
! 2d361b49d2ecaddc552a81b144af0756  libstdc++-v3/testsuite/performance/21_strings/append-2.cc
! 39bf2afca30447ca859efa578711ec27  libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
! 322bdabd72d3f58917f023dd1ad0bd9b  libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
! 300cab85c9e21f2592cbd78403a28e77  libstdc++-v3/testsuite/performance/21_strings/find.cc
  efa1608e1841a10bba94a6d4de361846  libstdc++-v3/testsuite/performance/21_strings/hash.cc
! 1d54a1a7ab99ac50941c88b00f6603ae  libstdc++-v3/testsuite/performance/22_locale/is_wchar_t.cc
! f862afb5054a150f92ab497b9ff6d215  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_char.cc
! 6fc0311593222f9c52543ac05f746489  libstdc++-v3/testsuite/performance/22_locale/narrow_widen_wchar_t.cc
! e008e5ef90305be4ca7fc63191920c3d  libstdc++-v3/testsuite/performance/22_locale/wchar_t_in.cc
! 7c2db7ccfde30c3ce4d391799e844b09  libstdc++-v3/testsuite/performance/22_locale/wchar_t_length.cc
! df03e4c0419dd876a1edc3c8d8de893d  libstdc++-v3/testsuite/performance/22_locale/wchar_t_out.cc
! f7a663fc48f542e9ea0bf12b0be547e0  libstdc++-v3/testsuite/performance/23_containers/copy_construct/unordered_set.cc
! b5050c97c5124152830dba37ea857c8f  libstdc++-v3/testsuite/performance/23_containers/copy_construct/vector_bool.cc
! 9dcfd4d662125c0ee9211b4096d2785a  libstdc++-v3/testsuite/performance/23_containers/create/map.cc
! 4f6576489fd53d9aa67165406f2322ca  libstdc++-v3/testsuite/performance/23_containers/create_from_sorted/set.cc
! 6661c6cc2097c915ba57f4e47b97d298  libstdc++-v3/testsuite/performance/23_containers/create_sort/list.cc
! 92c174e916df84598c347d6dc03a3192  libstdc++-v3/testsuite/performance/23_containers/find/map.cc
! 272e22c4c4c152e328d3a91d830f456b  libstdc++-v3/testsuite/performance/23_containers/index/map.cc
! f18529cdc26ca8616f304399438171b9  libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc
! cbc02c895c3f624b8457d9fcf6b4e7cb  libstdc++-v3/testsuite/performance/23_containers/insert/81476.cc
! f54826f21ddd70da8523a86ab6ee265f  libstdc++-v3/testsuite/performance/23_containers/insert/associative.cc
! 56da2e563d9d69395887541d80b0246a  libstdc++-v3/testsuite/performance/23_containers/insert/sequence.cc
! 2ea5e1d515e1cedf0103bbc3c90d6ace  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
! 28bcc0481987e1db43355699ae0acafc  libstdc++-v3/testsuite/performance/23_containers/insert/unordered_multiset_hint.cc
! 44279450bf00e57fc3e91e7f12ca708b  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
! d074798103db7a93f2acfd0242c1138b  libstdc++-v3/testsuite/performance/23_containers/insert_erase/41975.cc
! 55b496378dcb7065ce6324e0dd05584b  libstdc++-v3/testsuite/performance/23_containers/insert_erase/associative.cc
! 149279697f488ef627be7618d85a57f9  libstdc++-v3/testsuite/performance/23_containers/insert_erase/unordered_small_size.cc
! 7517eb93a7c97eae1c1ff5e17971b645  libstdc++-v3/testsuite/performance/23_containers/insert_from_sorted/set.cc
! c89a503e19f1596412844e29ad662a30  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc
! 4a4320e902fcea33e2a101db8fb09acb  libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc
! 851bdcb1f9aea12f6112962b03d42ea5  libstdc++-v3/testsuite/performance/23_containers/range_construct/deque_construct.cc
! 68451dd3c97c6eb13462b8ad72c7e1b1  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct1.cc
! f05dc0ba3f49761d267a4ae811e31b32  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
! f526c7a9974359a9c16d1b883f29e3db  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
! 7a5b81216242f937b16e28aa97f6a72d  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! 5f65b26894fd82f17e83adb64106f00c  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
! ca58042c5d0d351eef830e7cf64e202b  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! d8ba1d87796bcb1e6ae0185360f4aa7b  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
! fd0c135ced59e5fd157469d4f0c5556a  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
! 39cc59b2ac81abe888254149f2f8a2b8  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
! eb410b98119ac070470e6433a3950716  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
! aa728ce1c1273166175f6586c94ecac8  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! 001a51f00906477ac0503b507b9eb566  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
! a4c2ea8ee947d8e3bd07b391ba2308b8  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
! 46a47d2871f8fdacedef836b44c7420d  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
! 51416f17cd550e1b8669124bd574e583  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
! b104ab5f27899d734f0d4924462943aa  libstdc++-v3/testsuite/performance/26_numerics/complex_norm.cc
! d103d91ec21c0ee259f54f4d951223d2  libstdc++-v3/testsuite/performance/26_numerics/random_dist.cc
! 952cbf1cd46e49d7dafdd33152915aa3  libstdc++-v3/testsuite/performance/26_numerics/valarray_gslice_to_index.cc
! 06cd46110d6985570af0a6600094cf3b  libstdc++-v3/testsuite/performance/27_io/cout_insert_int.cc
! 85e4e9df097dce14a6d750b1577cf33c  libstdc++-v3/testsuite/performance/27_io/filebuf_copy.cc
! 5c2edf01ecb6d57de848ee89bec83678  libstdc++-v3/testsuite/performance/27_io/filebuf_sgetn_unbuf.cc
! 07b26236692cd4a2aa865802163e34a4  libstdc++-v3/testsuite/performance/27_io/filebuf_sputc.cc
! 8f78044b5e36754c4d6c3f3885bd94bc  libstdc++-v3/testsuite/performance/27_io/filebuf_sputn_unbuf.cc
! 0c37d71f54b588b4f6ae1265255dc3e2  libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc
! d770045c93bcb26fca4dc0803292bc61  libstdc++-v3/testsuite/performance/27_io/fstream_seek_write.cc
! f344c55b90c3db471ec46f28d3647302  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_chars.cc
! 3ed20c11c6e4e4c53fcaed829125e5d7  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc
! 6763a00407efb88ab9710687b9131786  libstdc++-v3/testsuite/performance/27_io/ifstream_extract_int.cc
! 306b54c9679e335ff4670d74eadd1b5c  libstdc++-v3/testsuite/performance/27_io/ifstream_getline-2.cc
! 325664b8b0e98589cd2109119774520f  libstdc++-v3/testsuite/performance/27_io/ifstream_getline.cc
! f0970057cc2cd2d63b67ae565367adad  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_float.cc
! 7555313bbf08d960ea7e50038d36cefa  libstdc++-v3/testsuite/performance/27_io/ofstream_insert_int.cc
! cd69e29876b11e3556ff179cceccffbd  libstdc++-v3/testsuite/performance/27_io/stringbuf_overflow.cc
! 3fc2f2ebdd4dee70c6bd924fc6d86be3  libstdc++-v3/testsuite/performance/28_regex/range.cc
! bef22bb67a68c087508d8fff4590fad7  libstdc++-v3/testsuite/performance/28_regex/split.cc
! ab92489b7604731623892e84c293babd  libstdc++-v3/testsuite/performance/28_regex/split.h
! 75f394ad7a2c45f6407772ba3f7361e2  libstdc++-v3/testsuite/performance/28_regex/split_bfs.cc
! 4e625053496baea8dd4e6ce9b8d53f05  libstdc++-v3/testsuite/performance/29_atomics/atomic_flag.cc
! aa90314ef00bfbc24d5cb8464dc0821c  libstdc++-v3/testsuite/performance/30_threads/future/polling.cc
! 123d34f4b00394cc54a50f0ef810b9ec  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_find.cc
! 3ea37ab374e3bd28037f3c30a351f507  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_find.cc
! a32f00b7cefac25527c5d31e7c19f1b1  libstdc++-v3/testsuite/performance/ext/pb_ds/all_int_subscript_insert.cc
! 640174abab3fd44835d5b983863a99a4  libstdc++-v3/testsuite/performance/ext/pb_ds/all_text_find.cc
! e7be6d55ba4052db5ad5bad799fecc1b  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc
! 135ef015e76220c1240d48690d1598f0  libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_int_find.cc
! 65a839b9d7fca956fefb0c4a57dc8c6c  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find.hpp
! b5396decf58bbad9ab6ff4ec37afb78a  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_large.cc
! 45bb95e7c889d9c7902d6694cd3b3af5  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_small.cc
! 887443abfbb1a071842d04d196cf6d4f  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert.hpp
! 42f67457f4bc61c5c0eaa26a49cef4f9  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_large.cc
! 8d2289ad3043f9cc52c13a093ecea4d2  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp
! 8911639fdc09f69de5b8575db93a47f3  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_large.cc
! 6e5184c8a8291ecd77e92295785eaa77  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_small.cc
! 0a6ebc727e2e747c2de9af3693990c4a  libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_small.cc
! 8b2e5df36d7f222510b954fc1c5be2ce  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push.cc
! dd4785e370b18f1305c41f2c9f679744  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_int_push_pop.cc
! 54af0bf8ac83b603f89d5e126a7a4a9f  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join.cc
! c7000efe32ce7ec67d41471b3230b245  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp
! 5950343504fc5e7f99b796d5de35a7a6  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down.cc
! 5826a00e1044240bc6f53e0e7c58355b  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up.cc
! 9504ce5d1f62db958a1c633f2b6349f0  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc
! 482dfc1bee8c7795e25c5a86229fdee4  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push.cc
! 719d3f80eacc1d3df89555ab422fad6e  libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc
! 0d1936819719053f2f2996273e568836  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics.cc
! f16732861aca463ea7813555b4eae213  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join.cc
! 20880a52b31a53c88da67e6c74fe976c  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert.cc
! fd2da6959208629458d14131e72b4f8d  libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find.cc
! d255cc44aa3fa2a186592fc7c4adc428  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_nan.cc
! 9df24983fa01dc56cd79fd8b3a29faa0  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/check_value.cc
! 54aaebd662cf1a452ebb2f4943f84598  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile.cc
! 53077b15b4dc45b41a2da5b3d7d0b0bf  libstdc++-v3/testsuite/special_functions/01_assoc_laguerre/compile_2.cc
! 3a6de021e61083aec42632341ccc2cc7  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_nan.cc
! 4c04049dc66bb0827afeb052a6ec7fe4  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/check_value.cc
! 8c249bdf16c79a750b86481ead2e49d3  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile.cc
! 5bba5dcea437853c2ff88a11ff986ac5  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/compile_2.cc
! d0f84a7f052c40e1b4decb54017c9d29  libstdc++-v3/testsuite/special_functions/02_assoc_legendre/pr86655.cc
! 656931f5a7d7a1e5f39f4d054115a1eb  libstdc++-v3/testsuite/special_functions/03_beta/check_nan.cc
! 6e70c27b588aab52bcf540e743a2571f  libstdc++-v3/testsuite/special_functions/03_beta/check_value.cc
! 38b391925a6123986e52c2a8a598e851  libstdc++-v3/testsuite/special_functions/03_beta/compile.cc
! 0ccad11f6dfdd8b8fb7138116311186c  libstdc++-v3/testsuite/special_functions/03_beta/compile_2.cc
! dd3e7ae678c87ec75dc13e7ba36ca112  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_nan.cc
! 34b91f74c0c12d1dae010b6e04275461  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/check_value.cc
! 3158633590c3c54d11e28e7bf54acf40  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile.cc
! 227c4dded115dcc6baf4c0eba2d97e98  libstdc++-v3/testsuite/special_functions/04_comp_ellint_1/compile_2.cc
! d1fd6c89012fe84d39ccffe0886d49cf  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_nan.cc
! 3999d3798f15c311d4819675f883f2ce  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/check_value.cc
! 45621150825c603d320dcd17058e7fd9  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile.cc
! 85e50bf80aabdd1e5427f655ee1cecd3  libstdc++-v3/testsuite/special_functions/05_comp_ellint_2/compile_2.cc
! 926bcb9d3109bd4b099cc1a42d9f1e9c  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_nan.cc
! 3cab1838daca5f3a4395395e88c2c947  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/check_value.cc
! 67562dfcd1bc10c33066a5d2de7e51ed  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile.cc
! 18bb2c8c5afd467599040ab04082c5d8  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/compile_2.cc
  d40969d8e7a8973cde9b227f9ce95961  libstdc++-v3/testsuite/special_functions/06_comp_ellint_3/pr66689.cc
! 69362eab55ebd715633d9704fdad3efd  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_nan.cc
! 657f04bad379b7362dba4a4486a3e953  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/check_value.cc
! d51794347be9f703e0ae6ba7fe53c7ff  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile.cc
! 852d9cef14cff4b4838e9156d9a36a9e  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/compile_2.cc
! d339256f454a80af08225c41df2f507e  libstdc++-v3/testsuite/special_functions/07_cyl_bessel_i/pr56216.cc
! 714bd741346d1fddf1a5cdc9ce74b4ba  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_nan.cc
! 539a31488702874a723d615ed2cae144  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/check_value.cc
! e94d4edf67ef397033603e5959b76ea2  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile.cc
! 094f0a039230f4c14bfdb194cb648b3f  libstdc++-v3/testsuite/special_functions/08_cyl_bessel_j/compile_2.cc
! 93270f25e0b1d187e81581dbb82930d6  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_nan.cc
! 8047570d0ce5637669245d04fa431482  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/check_value.cc
! 9c94cf0312bd03a0cb8e40a9711dd81d  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile.cc
! f11ce3d565763c3b3efa477f07b79b10  libstdc++-v3/testsuite/special_functions/09_cyl_bessel_k/compile_2.cc
! 204691ae30ea3502dcab602599c2132c  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_nan.cc
! 77186a57701ac0752592eb20efbdf51a  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
! dcf34393b1a30218cbb8e7b99dfe2266  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
! cc5b3172e50ff8340e61ec1aef6ed09c  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
! 6dcf1ecf069848c48e496859db718b31  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
! c22cc5e28f74ce7865bccaedeaf1f615  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
! 02ec9395b16bec915768eb4eb943910f  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
! 00d4b92bbeb9139633262ecd8c998716  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
! 676458f9a5ddbe0db69a75388e369c9e  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
! 2766d1d14b45411bb5712f978ce7815e  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
! 94b9d8f6520faeddccc84f43d8428497  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
! 7a540da91582e5a74897e1281bd446c1  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
! 1fd9a4277f764d9c7956edc64db671ac  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
! 4235fbd535767145f3e699cb40fc6c79  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
! ac10228381c2da65b93427b6e087648a  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
! c52426f4fa243e8d2baeedf67135e5c4  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile_2.cc
  51586062b3eeaebd7af37c198695dc60  libstdc++-v3/testsuite/special_functions/13_ellint_3/pr66689.cc
! 59144cf30a2fd3163e210ef99d86a2de  libstdc++-v3/testsuite/special_functions/14_expint/check_nan.cc
! f83807d61926af7248192d1435e49871  libstdc++-v3/testsuite/special_functions/14_expint/check_value.cc
! bd8299e49c0071ac0db1245e57d322db  libstdc++-v3/testsuite/special_functions/14_expint/compile.cc
! 4821b9b69d7ef298f800e4b9047a4c50  libstdc++-v3/testsuite/special_functions/14_expint/compile_2.cc
! 69f0b803b7ee376265ca528d644be3e3  libstdc++-v3/testsuite/special_functions/14_expint/pr68397.cc
! e17358598594cce783d1cfd2b89e5b57  libstdc++-v3/testsuite/special_functions/15_hermite/check_nan.cc
! 0a59f75128be94dbdf1ab410bce97823  libstdc++-v3/testsuite/special_functions/15_hermite/check_value.cc
! 3d63917917566ec92a834af774b9baed  libstdc++-v3/testsuite/special_functions/15_hermite/compile.cc
! e383c8a79360d3578d87c1b4648405f7  libstdc++-v3/testsuite/special_functions/15_hermite/compile_2.cc
! 718d2ee73b928afd935cdf4cc138928c  libstdc++-v3/testsuite/special_functions/16_laguerre/check_nan.cc
! 7a830f9651bc36b72aec745a2eea7a65  libstdc++-v3/testsuite/special_functions/16_laguerre/check_value.cc
! 4a1d2020f4df5a9831c74e1ecc1abf4a  libstdc++-v3/testsuite/special_functions/16_laguerre/compile.cc
! 3d66af7c6dfa2351f67ac157ac927a4a  libstdc++-v3/testsuite/special_functions/16_laguerre/compile_2.cc
! 74db17b4b72341117b8dd7271c3e54fa  libstdc++-v3/testsuite/special_functions/17_legendre/check_nan.cc
! 32a9eb4d129dbc277878c4b0b7a1ee15  libstdc++-v3/testsuite/special_functions/17_legendre/check_value.cc
! 4cea667182a057087eb6075f6d646a0d  libstdc++-v3/testsuite/special_functions/17_legendre/compile.cc
! f1b79e97499eb962b910379fa80d75a3  libstdc++-v3/testsuite/special_functions/17_legendre/compile_2.cc
! deef58a127c73e2cf4abe3d7f0dbac2e  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_nan.cc
! 216d16f52abbd000a6c933c848ecf95e  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/check_value.cc
! ed6d4d71eec5a4f84eb7baefd89260a8  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile.cc
! 6103f714fc3d554b3c3be6ab38e3e552  libstdc++-v3/testsuite/special_functions/18_riemann_zeta/compile_2.cc
! 2de556bb9e18d0a94fc1f2819ff27c58  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_nan.cc
! 423cf6fa6130547b03d5b65bb9e746ca  libstdc++-v3/testsuite/special_functions/19_sph_bessel/check_value.cc
! 95148739690edad5a09a47609523addf  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile.cc
! 1be0e821c005cb47e1226060ca1f1c6a  libstdc++-v3/testsuite/special_functions/19_sph_bessel/compile_2.cc
! 60966ed1df2391083042e8345c185ec8  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_nan.cc
! ff9eac141904fd2632edecf8eddeade6  libstdc++-v3/testsuite/special_functions/20_sph_legendre/check_value.cc
! d77b04330a19c1c23962866d128dc4d1  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile.cc
! 988642fbf82f060d3e1f11f2afb957ee  libstdc++-v3/testsuite/special_functions/20_sph_legendre/compile_2.cc
! c371ecd78732aab13209d6cc37bb8518  libstdc++-v3/testsuite/special_functions/20_sph_legendre/pr86655.cc
! 92802655222b6b534d43d5ab3120ab71  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_nan.cc
! 5997e13c4028c7612f61c62f243767f0  libstdc++-v3/testsuite/special_functions/21_sph_neumann/check_value.cc
! a438294e557cf612fef35430354e344e  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile.cc
! 045d1002c9330f169f8ea193870b24f8  libstdc++-v3/testsuite/special_functions/21_sph_neumann/compile_2.cc
! 764249221b710b13215412b8d8d06805  libstdc++-v3/testsuite/std/concepts/1.cc
! b214f119aabee04fcbac2ec118cc4b3a  libstdc++-v3/testsuite/std/concepts/2.cc
! c9e137b4b33c2ea99d1b300554c06a36  libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
! 493c38746b753234c438d8b342770644  libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
! 518cdd3f8bb7bfa0532e9e77f711ac40  libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
! 4cf3aa828474b5740765cde8e02620a6  libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
! 16b8bcbdda5942c005d23f858ab65e72  libstdc++-v3/testsuite/std/concepts/concepts.compare/move_only.cc
! 14e4edb1f94056df67d43c0943e58254  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
! 0e8c28165e7041e39f853ae4789721d0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
! 227b76e90568af2751655a67225e5b56  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
! 8f067b12164ccef1ca930c3f0ae18c6a  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
! 0398f57977fad2c203e65afbcf09cf36  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
! 12df77268e1eb19e28d5a56300e31cc0  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
! bbfe3ba8961b452cb3ee772c833cd7d5  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
! 326f5112a88da8ea8a6c7b6bcbba8b6b  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
! f32f7edb64063e300fa19356aada5efa  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
! 927dfda817b2093f8100ddd96f68982d  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
! 56ca33171b0371eaa2ef751032e52af7  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
! 24ec0cdfdaf2397fb43b452dd80feabc  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
! a3a807612de9cb82d007dc07332e56f5  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
! 40432e8c08b2fedab8f40ecb8e22d7b3  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
! 0ff66b34d2a143f81ac91402266ad02e  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
! b26346363881da35f861d9ff89f90c93  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
! 974958fe5c1dafc19516d265847932c8  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
! 817e920b57134ebebfa06539ff50ca9c  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
! 28035b51a490621701eb5190275e3e61  libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
! 7d17d523f584a1d6a8c482d2a39aab75  libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
! 96a000992a3a91e2a2e6d710484f0bab  libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
! 8ff5189cd348d890491edc2f2f4114a3  libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
! a228a2340ca9de5350db67f736edcd0b  libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
  576d75aaf7d2aae28e341cda63776ff9  libstdc++-v3/testsuite/std/format/arguments/112607.cc
! 6aba59df6148b2c2d4a2bb0a6167d356  libstdc++-v3/testsuite/std/format/arguments/args.cc
! 9b395b28a17d44c9d7e0673396df4031  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
! 8f6b20493386ac083a968add9dea93ac  libstdc++-v3/testsuite/std/format/debug.cc
  4e1e1bd1eb1b2db2e9f55215527ebcd0  libstdc++-v3/testsuite/std/format/debug_nonunicode.cc
+ 4a9e40b038da4f2b5da7c5172bf22f04  libstdc++-v3/testsuite/std/format/dynamic_format.cc
  3f84148bfc5153a2278f3c8c413dad98  libstdc++-v3/testsuite/std/format/error.cc
+ 6483a22120f0c0c4849413aa1a3ab0d1  libstdc++-v3/testsuite/std/format/fill.cc
+ 825c9732faf7acdc5e109278b625fd98  libstdc++-v3/testsuite/std/format/fill_nonunicode.cc
  6425de3f85b700ce40dd3b11d934ee43  libstdc++-v3/testsuite/std/format/format_string.cc
  6fa5a2c92632d72f763333e89659d4a5  libstdc++-v3/testsuite/std/format/formatter/112832.cc
  45280a2212e6fb520cb8b7465d640540  libstdc++-v3/testsuite/std/format/formatter/120625.cc
*************** ba0338f26a871a1d2585f82e2ee43984  libstd
*** 142770,142862 ****
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
  43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
  e7d2a20ce851bd6197787606fcea68bd  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
! db7594263aafcbee351551419f886432  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
! ed2c787f1fa34b84cf6ab7877f8bd604  libstdc++-v3/testsuite/std/format/parse_ctx.cc
  98a750919025b1a6b7cbab28d1aba84a  libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc
! a16369d471363910d742a5c1b8b92c3c  libstdc++-v3/testsuite/std/format/ranges/adaptors.cc
  857552c77c29e3b58e4847f84fc27778  libstdc++-v3/testsuite/std/format/ranges/feature_test.cc
! 23c2d31669b319d0063a28d6dd8353cc  libstdc++-v3/testsuite/std/format/ranges/format_kind.cc
  3eb8e2fa183f344414482633d44531bb  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
  c400d0d58ad702f461b28668dc629c09  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
! 6ce4d9d01be4defd04026414dbac0d5b  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  326917eee6123d6a19d60b706ad52413  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 284143a02c085fd30e15e55c66cfde20  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
  6121dbeb75930b73fe5c552392ee5693  libstdc++-v3/testsuite/std/ranges/concat/1.cc
  474d22d474aece24ab6833bba4c36b37  libstdc++-v3/testsuite/std/ranges/conv/1.cc
--- 157116,157231 ----
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
  43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
  e7d2a20ce851bd6197787606fcea68bd  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
+ 11f82ceaf331c2e9766021ff63ac7ac5  libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc
  9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
+ 86e49f182d51a169cbc8b52c799d40a2  libstdc++-v3/testsuite/std/format/fs_path.cc
  a1d452e66d840a306985b18ad9ae0a8e  libstdc++-v3/testsuite/std/format/functions/107871.cc
  a7244ffd437f4addc853cfdd012c5cba  libstdc++-v3/testsuite/std/format/functions/114519.cc
! 2e322d829887ddbcbe464445bc11e93f  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
! 341fd71f544307f85453dfa5d899e9df  libstdc++-v3/testsuite/std/format/parse_ctx.cc
  98a750919025b1a6b7cbab28d1aba84a  libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc
! 1b3b368898e00e27fc4de00e410402a1  libstdc++-v3/testsuite/std/format/pr121765.cc
! adc36fa767db69881dc741e3677594b2  libstdc++-v3/testsuite/std/format/ranges/adaptors.cc
  857552c77c29e3b58e4847f84fc27778  libstdc++-v3/testsuite/std/format/ranges/feature_test.cc
! 970b8bb7949b0a609542bb298f4b4a77  libstdc++-v3/testsuite/std/format/ranges/format_kind.cc
  3eb8e2fa183f344414482633d44531bb  libstdc++-v3/testsuite/std/format/ranges/format_kind_neg.cc
! 07b9bef379083ed7da49c95c42ef0c39  libstdc++-v3/testsuite/std/format/ranges/formatter.cc
! d9708c521b612f15f943a911427b169b  libstdc++-v3/testsuite/std/format/ranges/map.cc
! 3c83d38b975b49e89716f008ae9810f3  libstdc++-v3/testsuite/std/format/ranges/pr119861_neg.cc
! 559739840dd6ec076b05995aa37cfa74  libstdc++-v3/testsuite/std/format/ranges/sequence.cc
! 9085de1a2c4f397091c62b0a0cab1069  libstdc++-v3/testsuite/std/format/ranges/string.cc
  c400d0d58ad702f461b28668dc629c09  libstdc++-v3/testsuite/std/format/string.cc
! 7c654edf02fc2f7793fb1f549b890993  libstdc++-v3/testsuite/std/format/string_neg.cc
! 246b2e9f25648a67850193b3368e0db9  libstdc++-v3/testsuite/std/format/tuple.cc
! 50518f97609e2ebe3b5f6363206fc2b4  libstdc++-v3/testsuite/std/memory/indirect/124890.cc
! f69347ccb773103796767f24914c4c96  libstdc++-v3/testsuite/std/memory/indirect/access.cc
! 720e1b38d222c15f72ac910b92301d4a  libstdc++-v3/testsuite/std/memory/indirect/copy.cc
! 82ef6f538e38c654811cb3eda65315df  libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc
! ae9c170f7a4c33d02f8e1a0b10b1dd28  libstdc++-v3/testsuite/std/memory/indirect/ctor.cc
! 7cd605544175affb50e32aca7d11e0e5  libstdc++-v3/testsuite/std/memory/indirect/incomplete.cc
! 3a2f27b06480e76c264f7c639bb1d676  libstdc++-v3/testsuite/std/memory/indirect/invalid_neg.cc
! 598510ad059f80ce1abc9303831df39d  libstdc++-v3/testsuite/std/memory/indirect/move.cc
! c8481944e61284a27d6058a2feb80d6f  libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc
! f3fe330b6bd5b986270684d1d058fcf4  libstdc++-v3/testsuite/std/memory/indirect/relops.cc
! 268ca7c7aea9fe1a7800f1e24de9064e  libstdc++-v3/testsuite/std/memory/polymorphic/access.cc
! ec577f25e43df56f2c55dd8b70cc4282  libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
! 800076192ee1f72935bff5d984b28ecd  libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
! 0f6f9b063219fc152cc9fc9d2b70b45e  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
! 86a3f71dd3cbd7d50f3e5833e9b475c4  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
! 55ac719ef5aacc445ff21a9ba04af7db  libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc
! f8c9db32ebd1429bbaf2c1ead8562583  libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
! 25b0d78575b430455c13bd9f89ac1220  libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
! 83a6a4f90d8bbb271dd1e34ad1d2a573  libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc
! 45c599ec07af3ccb18a0d8e3c2aea96f  libstdc++-v3/testsuite/std/memory/start_lifetime_as/start_lifetime_as.cc
! 93d5cc160b98cb8b7d737ffed5842b3d  libstdc++-v3/testsuite/std/ranges/97600.cc
  9f1ea1f1671d48aea7ae18a55694c05d  libstdc++-v3/testsuite/std/ranges/access/101782.cc
! e7078a9af027e18e5a9ae3a7b0cadcb2  libstdc++-v3/testsuite/std/ranges/access/begin.cc
! 21d2092168f37d6cf0af7cc177b98efd  libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
! c03840fe43897f28a86a87cb883a1231  libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
! 0206cef2a18c0bb2dad2a168425645d7  libstdc++-v3/testsuite/std/ranges/access/cdata.cc
! d6727a7355c3dd294e21d885670e2dd8  libstdc++-v3/testsuite/std/ranges/access/cend.cc
! 8b21e524b9989530b06c433725b745dc  libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
! a2efb13766a3d622a3e678fcd035980e  libstdc++-v3/testsuite/std/ranges/access/crend.cc
! 1ae38a8666c5827a312ff044a72d43be  libstdc++-v3/testsuite/std/ranges/access/data.cc
! c19465302358140c56b9263409118030  libstdc++-v3/testsuite/std/ranges/access/empty.cc
! 3fefb8ce585361955ef017ef0e5b3039  libstdc++-v3/testsuite/std/ranges/access/end.cc
! 00a92bda3641fb539e51b9e01fc80aee  libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
! 2f4f9a2261f06bff15fba92fb84f14ed  libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
  e542ec9539e3379d7c1a274e65589907  libstdc++-v3/testsuite/std/ranges/access/p2602.cc
! 847212e135dff57bcab3b79894f3b7da  libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
! 1be08502e92ae84197a03ecc429f14da  libstdc++-v3/testsuite/std/ranges/access/rend.cc
! da7e5a629f7dcbbfb9e3f789cf24700c  libstdc++-v3/testsuite/std/ranges/access/size.cc
! 2d8a4e4397bcb9611f01cb537fd7c375  libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
! 25d22ca3931e4c6b5ab431de7389854b  libstdc++-v3/testsuite/std/ranges/access/ssize.cc
! 8b74c79d9880822f9a05769ff2ec6903  libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
! 5a6fc805b2fd1a7e6050e53eaefb7c6c  libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
  c955965c3f553d2f22124d0ec851dc46  libstdc++-v3/testsuite/std/ranges/adaptors/116038.cc
! 10aa2811af2e2885126d87ab48f7868b  libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
! 873142c2dcd6d3ce7680a646f1d6fdef  libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
! 5d97570d16c7a29631bc46cf85de4524  libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
! b449af0622f9f74f9641842861f71b59  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
! 98332644c3ba6e62089aaa16fd8bd810  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
! c96d64f956c5de562101292909ff2a67  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
  72da4c7ac2546f0a5f6407897e1bd475  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
+ ebe7f66a4cffc0aa17135da5b1ffb633  libstdc++-v3/testsuite/std/ranges/adaptors/as_input/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
! 2f2c3cb9f57c19add321cb0f53868eba  libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
! aeaf7f39218f5075052aeb6e1df4ba43  libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
! ad1ad17702d42352937ca61dfa124fe4  libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
! 17c0cf8d50acb0ac518384bc1329eb77  libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
! 35891b4905c0a5f2c4bcb18a45872fea  libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
! f28879e88d94560214e5905a0fdb03e6  libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
! 00647fdb0d62ed7320632e648119f77e  libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
  40e31845569daf0829a17a44a8ee56a0  libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
! 190dd5fc0737d90cc62b4b53cc0c3a0e  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
! 0d0e8a2b6558c1f0cc6951a999f02636  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  326917eee6123d6a19d60b706ad52413  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 0d90b9bce22611d61b66f489d7769dd4  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
! 7acd154a7a523edcf187f726281ae30b  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
! 6230edce2b317f6e38f9820f3b6fbd87  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
! 2c39336cd160472f050e4414d2e36af5  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
! 62e545143aca47af3ee990738dcc2729  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
! 8d5c6b6e07d1dde012473c8b306535c6  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
! a39bf473369aa95a770758771640e020  libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
  c48ca1c4effaac34b1f94b789c370533  libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
! 34697a78387ba6e6b297f7ccf378d43e  libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
! ce526ad179d2a8b16f1b79fa8f704591  libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
  4cf87dc727e180a71a41f9ae3161a3e2  libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
! 489165fb5c8ffda3ca6aeb228652b0ff  libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
  a0e630899068a41f2ddf2c81cbd386a4  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
! 33605a52abccf517d64f172f0e4dbe37  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
! 92c37742494c8fb86f1e60dcd1ecc11e  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
! 84729959634b1ddb951ede66b24e991f  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
  c1b23609040e813a09294f54b708a162  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
  6121dbeb75930b73fe5c552392ee5693  libstdc++-v3/testsuite/std/ranges/concat/1.cc
  474d22d474aece24ab6833bba4c36b37  libstdc++-v3/testsuite/std/ranges/conv/1.cc
*************** c1b23609040e813a09294f54b708a162  libstd
*** 142864,143737 ****
  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
! 77e52cac2443b4c26b20b6bb1f917624  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
  11836aec53351222d0be5ee9402f3069  libstdc++-v3/testsuite/std/time/format/pr117214.cc
  107c8c7bd6daa477dad84b5cfee3eacf  libstdc++-v3/testsuite/std/time/format/pr119517.cc
! 7151cef2bf017dd6ee0e0ee9830b8909  libstdc++-v3/testsuite/std/time/format/pr120114.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
  55baea8c9c13ca011d239763ff0df1a9  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
! 52402cf6d88e998acd38454cbd155994  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
--- 157233,158144 ----
  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
! 644f63984890e7f7c0ffbcf5ac4272f4  libstdc++-v3/testsuite/std/ranges/empty_view.cc
! 3d4c92cb07870d36a64778cfda6bddb2  libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
! 91eec91ca964d2a4edb128e7615988b2  libstdc++-v3/testsuite/std/ranges/indices/1.cc
! 9619a3e3d6543f503072b889eb722df5  libstdc++-v3/testsuite/std/ranges/iota/93267.cc
! b85c5d11ff66a953580622b0e392f6ac  libstdc++-v3/testsuite/std/ranges/iota/96042.cc
! 4c6c806679f065884fa2a455411e8006  libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
! 5d76243e3488dec25e2f1494ca5234d0  libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
! fef674ee1549f36062a5c182c11e0ae1  libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
! 30a217f3288580f6c12c477540fff36d  libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
! 0cf5cf337ec774cc41330bb75bcf41db  libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
! 5489aac8301f963534dcc43e4f8fc80f  libstdc++-v3/testsuite/std/ranges/iota/size.cc
! b286db728ea3757103c0fe0aca5b1f52  libstdc++-v3/testsuite/std/ranges/istream_view.cc
! a80c0109913fe1cac9adba1df2c554fb  libstdc++-v3/testsuite/std/ranges/p2259.cc
  69defd43e76475db81c3e8bb6e87fcb0  libstdc++-v3/testsuite/std/ranges/p2325.cc
! 93332f3890aefcd8ec67b477a7d80fa9  libstdc++-v3/testsuite/std/ranges/p2367.cc
! c4d02b4dc122c707019be0b5c57f3afb  libstdc++-v3/testsuite/std/ranges/range.cc
  db3ad291e2e791f736d68a27e4606352  libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
! 811aae9dc02d48aa73f87baa765d9560  libstdc++-v3/testsuite/std/ranges/refinements.cc
  56f9938ca42bc5dbcbb10bba12c02dac  libstdc++-v3/testsuite/std/ranges/repeat/1.cc
! e00918d54b39a4dd3ec16cdda9555363  libstdc++-v3/testsuite/std/ranges/safe_range.cc
! a6d63f8157917022f63f2890bfde6793  libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
! 40737996603d80443ebec10fee1db28f  libstdc++-v3/testsuite/std/ranges/single_view.cc
! 1f753305f304f3b625cf8289181c4f05  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
! 39a09617578d2d397e2aa2efbedfc013  libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
! e73a3d523edd9272c6885c1f01e5df4f  libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
  deebf06a9086f7bbf73404c005fcee70  libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
! dc32a3f642dbb4efc873d4f296b031c5  libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
! 387127c07a6742b276fb83d1b383799a  libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
! 78806c3ae64f089cc112cdc28b64f2df  libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
  b694262e9c10340bdb562c2e01ff78bf  libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc
! 3694d06340c2b839b87e0ebbef28ef2e  libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
! 5381b4af4168c12ba724433142907e79  libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
! 5b2a0cc6d1227b9eae0206d48d932d77  libstdc++-v3/testsuite/std/ranges/view.cc
  e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
! 2a24268e29bff5326b9f5c3f611001c8  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
! 88f23ff7953b52443e710f07c271552d  libstdc++-v3/testsuite/std/simd/arithmetic.cc
! aa6cc0dafe21bb155a7598b9d0487e44  libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc
! 0f4c54b7b254944dcf6c0f1855cc40df  libstdc++-v3/testsuite/std/simd/create_tests.h
! b9969eb6247f261e1966f0c0070da700  libstdc++-v3/testsuite/std/simd/creation.cc
! 82a2d6d9521ef6d5858eb86a61177c1d  libstdc++-v3/testsuite/std/simd/creation_expensive.cc
! ea82ffeb62bbb0bd8a4761833f50983e  libstdc++-v3/testsuite/std/simd/loads.cc
! ce67aba9cf8e5641eaf7182f399be3ec  libstdc++-v3/testsuite/std/simd/loads_expensive.cc
! 4d4a17d28a0fa2d5f4dd2911c4fca5ca  libstdc++-v3/testsuite/std/simd/mask.cc
! 794c42e7e4ed323401a8836006afde3f  libstdc++-v3/testsuite/std/simd/mask2.cc
! 83717d1cc074fb79c8bf2eadccd417ae  libstdc++-v3/testsuite/std/simd/mask2_expensive.cc
! f74fe6b1be89ddeab7e498d76598a481  libstdc++-v3/testsuite/std/simd/mask_expensive.cc
! 2bb833f148d075bbcf4bee2427a8d686  libstdc++-v3/testsuite/std/simd/reductions.cc
! 891bc06e10cb74d3b83c4bbe2e6f9b32  libstdc++-v3/testsuite/std/simd/reductions_expensive.cc
! 8668c844085386581fbd12241e559efe  libstdc++-v3/testsuite/std/simd/shift_left.cc
! 4dcd2b27b4d71c9f7ee20012d97def33  libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc
! 244d3cc2cb67efbf3db44697dffce79a  libstdc++-v3/testsuite/std/simd/shift_right.cc
! d6862fc2c353bee6fd5c6a2912279384  libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc
! 02900bea7eadb949bc468a602069dff4  libstdc++-v3/testsuite/std/simd/simd_alg.cc
! 8f79bd8ce1a05cfdbad14dd9e4b4fd4b  libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc
! 546a3483b60e0e695e9a5f5c7d496895  libstdc++-v3/testsuite/std/simd/sse_intrin.cc
! e2493aaebd9a1a286017264515b56ba5  libstdc++-v3/testsuite/std/simd/stores.cc
! d020ffeed3a700de700dcd8ab75dcc70  libstdc++-v3/testsuite/std/simd/stores_expensive.cc
! 9555f30a8004fbe5c183c3d458dbe0c7  libstdc++-v3/testsuite/std/simd/test_setup.h
! 6fc3af6248205b9756a89ab36e7d57c7  libstdc++-v3/testsuite/std/simd/traits_common.cc
! 6e23d90aa722f32c50e0010fcf2a9dbf  libstdc++-v3/testsuite/std/simd/traits_impl.cc
! b9fbe2181e3faf5bba7943f5a46a4f00  libstdc++-v3/testsuite/std/simd/traits_math.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
! 8aede330c2627deede87e0de2779d13c  libstdc++-v3/testsuite/std/time/clock/file/members.cc
! 61f0379e50ce0e3eb792ed9d20b4460d  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
! 941a1907ab341b162b852bb6373f7705  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
! 225275a54c046285affc36a80ea7383b  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
! 34020a64a648a14a21a5266c23e4e13f  libstdc++-v3/testsuite/std/time/format/custom_rep.h
! 83b64b8147bb28b41838db46eca9e6d8  libstdc++-v3/testsuite/std/time/format/data_not_present_neg.cc
! 3c34751416c3a4bfe19f6039a9b79f3f  libstdc++-v3/testsuite/std/time/format/empty_spec.cc
! 58b8d8561c1b19c49d8678b61f6daea9  libstdc++-v3/testsuite/std/time/format/format.cc
  06b738d93b3d78681b0da48efd0a60bf  libstdc++-v3/testsuite/std/time/format/localized.cc
+ 05c346b6a642ecc4f627c81adda80425  libstdc++-v3/testsuite/std/time/format/nonlocking.cc
  9cd4d6791c125e40939cae77277f928d  libstdc++-v3/testsuite/std/time/format/pr117085.cc
  11836aec53351222d0be5ee9402f3069  libstdc++-v3/testsuite/std/time/format/pr117214.cc
+ 34f9145cd412516ebddaa24642c429e0  libstdc++-v3/testsuite/std/time/format/pr117214_custom_timeput.cc
  107c8c7bd6daa477dad84b5cfee3eacf  libstdc++-v3/testsuite/std/time/format/pr119517.cc
! 99dced26d110a5aeb88482eb2d9e7961  libstdc++-v3/testsuite/std/time/format/pr120114.cc
! f496430452bd60cbce2feef18bc17a51  libstdc++-v3/testsuite/std/time/format/pr120481.cc
! 800dbe8fc0f3de0665195494ae0661c0  libstdc++-v3/testsuite/std/time/format/precision.cc
! ac8733e3ca2758248129cb382c496ee0  libstdc++-v3/testsuite/std/time/format/whitespace.cc
  2be47743c9d490923037b020cfc220b7  libstdc++-v3/testsuite/std/time/freestanding.cc
! 0864087b478d5e67c9650763f104e371  libstdc++-v3/testsuite/std/time/hash.cc
! fde3a40a4a5af09d3fbf5bf29a9d391e  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
! 52f0b0987517a777c34bc0658d6950b4  libstdc++-v3/testsuite/std/time/is_am/1.cc
! 7dd4dff7a9dce65e086fead9ce04dbe6  libstdc++-v3/testsuite/std/time/is_pm/1.cc
  b8df75e467825e8a9438d51c4ece08dc  libstdc++-v3/testsuite/std/time/leap_seconds/io.cc
! 6097ff3e89ce0b5bde5129bbdf9c1697  libstdc++-v3/testsuite/std/time/make12/1.cc
! 2b774e8d0bea4e040ed9dcc7de9141a2  libstdc++-v3/testsuite/std/time/make24/1.cc
! 9fa579cb5888c368775c0b00e9023745  libstdc++-v3/testsuite/std/time/month/1.cc
  b7a5373ed0797aa495f69436f1939726  libstdc++-v3/testsuite/std/time/month/2.cc
! 11a34b6fd3c32ab71d499904fa3aece4  libstdc++-v3/testsuite/std/time/month/io.cc
! 8ee89afa99bf4f36b9746a833c802be1  libstdc++-v3/testsuite/std/time/month_day/1.cc
! e7f09baa4d21038e62d7914205579167  libstdc++-v3/testsuite/std/time/month_day/io.cc
! 21c4654f640c259274b28a881778d3e6  libstdc++-v3/testsuite/std/time/month_day_last/1.cc
! 1dbb306657982fc90f00e3749a9bc4df  libstdc++-v3/testsuite/std/time/month_day_last/io.cc
! 06c59c3b29887f1be48ac2710eaa7327  libstdc++-v3/testsuite/std/time/month_weekday/1.cc
! c8926de8f6ede51b5698239a063bcac4  libstdc++-v3/testsuite/std/time/month_weekday/io.cc
! dd57c14e38e93b2a78361d6e4c7350b1  libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
! 075601020e49a49a2f5131b011ff3b25  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
! 5762399d57d6d0d2d2d8cd51ff3f423d  libstdc++-v3/testsuite/std/time/parse/parse.cc
! f16dd4eb7915f1558b6ae75425ab2987  libstdc++-v3/testsuite/std/time/syn_c++20.cc
! 942f5bb5a199e3f7b0821958da8b265a  libstdc++-v3/testsuite/std/time/time_zone/116110.cc
! e5f71dc7f2292314c0c9b06c3b8acf2e  libstdc++-v3/testsuite/std/time/time_zone/124513.cc
  f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
! 5c55d9e35cb8c9c5e0a207bd53fa37d2  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
  efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
  105f0ca3c8074ef3b2c1751d37ec2b96  libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
! 62c56a128f0d03b2e348296c7a54ee3f  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
  3c922068cf98b21e732c0de16c319289  libstdc++-v3/testsuite/std/time/tzdb/1.cc
  c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
  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
! e944b6e4fdded3ef01f877c26c7b2596  libstdc++-v3/testsuite/std/time/weekday/1.cc
  d6cb5f0804c9bd14e047294d47decf33  libstdc++-v3/testsuite/std/time/weekday/2.cc
! 84a30249875432915027bc4a342388dc  libstdc++-v3/testsuite/std/time/weekday/io.cc
! c385e064e106f96c7ad6ec73e5764079  libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
! d28bf8709f83db901474a6e0f2f15f7d  libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
! bf7b45b1863bcf3cffd29be3b2b4d1ad  libstdc++-v3/testsuite/std/time/weekday_last/1.cc
! 3b0c00a0f106f27fc317d6c8b89f0abf  libstdc++-v3/testsuite/std/time/weekday_last/io.cc
! 07c2baeca80d43f83c6e4ae670fe7faf  libstdc++-v3/testsuite/std/time/year/1.cc
! 9d987e3af858cac2c64923e81b3e4242  libstdc++-v3/testsuite/std/time/year/2.cc
  31aee8f1dc8300b4c3ce95f8b013467a  libstdc++-v3/testsuite/std/time/year/io.cc
! 123c97696adddec5e2df26db9d5a6aaa  libstdc++-v3/testsuite/std/time/year_month/1.cc
! d437e51536b55b5c7f51f085978b12a0  libstdc++-v3/testsuite/std/time/year_month/2.cc
! 9bf4e07c924c2dc05afa75dbc79abe96  libstdc++-v3/testsuite/std/time/year_month/io.cc
! 1e12ca1aac8443650d8e705a752aabe1  libstdc++-v3/testsuite/std/time/year_month_day/1.cc
! e92cfdffd4b2cb9434f3f51570fac925  libstdc++-v3/testsuite/std/time/year_month_day/2.cc
! 40931564e98d9659981513e72bac3a44  libstdc++-v3/testsuite/std/time/year_month_day/3.cc
! 7fc7a778fe8ee7518b3ae7f305e66ecc  libstdc++-v3/testsuite/std/time/year_month_day/4.cc
! 818f3cf86eaf14826d288441c5722cb2  libstdc++-v3/testsuite/std/time/year_month_day/io.cc
! e465d2b6997fa30d2a02b528810e2632  libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
! 32353028c002890d19c275e13184c13c  libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
! 4630abe63f45b8a63a976a6fa0a6e8db  libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
! 0cf5fea8fdf8a72fbaed028589ac61a0  libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
! 419a92d32381392f9e8471b75436234f  libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
! dee36a19351f08b44fe23cf4099928bf  libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
! c2b7633026b3fcd6a0e292699193dc26  libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
! 20fd7f7e86b0ca4de006d76a50f68c55  libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
! 8c877daa283e4ffd73c4655a8641c7de  libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
! c09c39ea2316a7406221fdcc593170e1  libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
! fa43bb38cebbbda727864c9b2ac9b67b  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
! 8c083149b6a9f0c0e4f33a22849e2bf6  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/1.cc
! 63e188fb6b46cb6a1442afd6115142d5  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared.cc
! 05aee9c120e22585376e176b1e2633de  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared2.cc
! 47921e076b78c40b5bd853ef65e23403  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/not_shared3.cc
! 32fdd43ee9c592f2eee62f48155f45d6  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/requirements/explicit_instantiation/1.cc
! 5f84a41dfcf82bbe2080f582336bdc93  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/shared.cc
! 62fee3a0abf219f53449253f7a3c6fc9  libstdc++-v3/testsuite/tr1/2_general_utilities/enable_shared_from_this/still_shared.cc
! a024bb6e21e162f415439a5b8ba739ce  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
! df68203eb73e72b62f55edaaf270f0a7  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
! b1c677fb749a6efec52ced3c0757ca81  libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
! 62d241dd00ec1b084deefe504e4ac8bb  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/assign.cc
! c1b07a116ce3aca6c33f3bcd50b25e83  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc
! 9d3f2d703ed6ffc409747b2fb4b96d92  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc
! 6857fea8108b340adee170234afe9999  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc
! a35334f6274b706ba7b7790d88d088bd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/dr541.cc
! bb3c2c9a894641bb56fce5cbb4ba51a6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr.cc
! 5718b63debd6060d1c5df622d164ac0c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc
! 9f9160c118bd939b444cef7f8f9d06b7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/casts/1.cc
! 19aa154c42a2a1c979df4446d2e970b6  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/comparison/cmp.cc
! 5b2da9c0cb5596e6ecc7f394649fd536  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
! dc88596b8c5756813fe163d9a83e39c7  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
! f90a4b116dc7ec3fbfe0da9a99ff0c59  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc
! 4df7a81f63b59c7a2a1a3fd7c6657cb5  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc
! 011dbdee9dc2e33a7e1d067c4333325f  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/copy.cc
! 409d6a0c4fbab998ba889f56512993e9  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/default.cc
! bf38e98b832229fb114baf3932c19c1b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/pointer.cc
! 2c41b02e8f41cc8a9cc7f8be7b432d2d  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr.cc
! 4b761074dac2710c99d9c43dd6fd3edf  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/weak_ptr_expired.cc
! 227f16e6c682655fcc83c23ae2527c1a  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/dest/dest.cc
! 20a56a71352527557cdd715a59b108bd  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/24595.cc
! bef62feb845fc976580c6dbe5bb6cbd1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
! 375e9796ce125525983941d442472c17  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/io.cc
! 0404cd5bee8d3a31cbf76d105cb8c25e  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/swap.cc
! 4b2e4d7f5b347a703f4ea7968a04ae06  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/24805.cc
! 24f16652821c8cfd4d1d035f774e304c  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset.cc
! c7fd9040c001ce2ac0c7530a52123a41  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/reset_neg.cc
! c00a95f89b3af31cdaaa331f3f89f1e5  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap.cc
! 667435f3c04022f9df3655cb02c58f1b  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/modifiers/swap_neg.cc
! 0db7d2f1f78612bb82af4fdd78597545  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc
! 594ca33fae1910167b6f3407e1c80af1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/get.cc
! 5d420cabc3ac5767cbfcd0f2bba98dd1  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/unique.cc
! d3670f51456995735c8c69bbaeed4d88  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/observers/use_count.cc
! d2faae2df66c67777c9ca9e8c2fff224  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/1.cc
! 0a1056e1c41a17d4309418a726c171e2  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/requirements/explicit_instantiation/2.cc
! a593b3f3bc7fabc17532ab43e3823961  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc
! 13ab185c8746fb930b0fed6d5e5d05c3  libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc
! 420a2aaf803906dae14351d768a44b2c  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/lock/1.cc
! f602831f6f75147984e74b196f537c56  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/1.cc
! e9c481d0ef7329bcfbe9f844a53baa4e  libstdc++-v3/testsuite/tr1/2_general_utilities/weak_ptr/requirements/explicit_instantiation/2.cc
! ef87952c00eaf1ab34807c29d29d19c8  libstdc++-v3/testsuite/tr1/3_function_objects/bind/all_bound.cc
! 0cb176697d6aaf3642cf6b6bdc722380  libstdc++-v3/testsuite/tr1/3_function_objects/bind/cv_quals.cc
! ff64b27145c961a6aefbd1fef80ff717  libstdc++-v3/testsuite/tr1/3_function_objects/bind/mixed.cc
! b717266fd7b9420bab621017db0d9998  libstdc++-v3/testsuite/tr1/3_function_objects/bind/nested.cc
! 04a9dcdb6cbd1a76c0b440b651d0552b  libstdc++-v3/testsuite/tr1/3_function_objects/bind/placeholders.cc
! 0eed2f2eac9da06eda2bbe619121caf7  libstdc++-v3/testsuite/tr1/3_function_objects/bind/ref.cc
! 3ad5fa474a8659b2d5207d7f86a601b8  libstdc++-v3/testsuite/tr1/3_function_objects/function/1.cc
! e2861231c70db8aae848352031647e22  libstdc++-v3/testsuite/tr1/3_function_objects/function/10.cc
! 98456e295906d0cc0597d1724a4132ca  libstdc++-v3/testsuite/tr1/3_function_objects/function/2.cc
! cce96beaf528e3cb700977d5fdd31c69  libstdc++-v3/testsuite/tr1/3_function_objects/function/3.cc
! 110acd7ce48654448f250f48b440a0b5  libstdc++-v3/testsuite/tr1/3_function_objects/function/4.cc
! 08561ba35cf4f828c7e17fdb62632a26  libstdc++-v3/testsuite/tr1/3_function_objects/function/5.cc
! b3708dca9e0d61b8a860010160d18e3b  libstdc++-v3/testsuite/tr1/3_function_objects/function/6.cc
! 919275753c4d35a73eff896caf975a68  libstdc++-v3/testsuite/tr1/3_function_objects/function/63840.cc
! b9726360aeb1a2737bcdafc23270bf46  libstdc++-v3/testsuite/tr1/3_function_objects/function/7.cc
! 3bfc37bc3f560c38edd85b30fa248118  libstdc++-v3/testsuite/tr1/3_function_objects/function/8.cc
! 79be253b645e63e59759e122227d06cd  libstdc++-v3/testsuite/tr1/3_function_objects/function/9.cc
! 1ba9581b191a6eecc2aa1079cedfae08  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
! dbef7a4bed644bc79d43f127bdbebaab  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
! 4fec3cfd0e3864b441612950f48fefe2  libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
! e1e97c08fd62572ef76489d3ab964e9a  libstdc++-v3/testsuite/tr1/3_function_objects/mem_fn.cc
! e875c00e7535be81baccce0b1e28f1f0  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc
! 606642b907b8853960c23cbfa0bb9759  libstdc++-v3/testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc
! 865f667b134428b08b1881eadb92b48a  libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
! 6e71795c4052ab6bc1c55e8361574d50  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/requirements/explicit_instantiation.cc
! f27d98cb292973870ed9d4df14f44af4  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_const/value.cc
! f772899a0d839a78cdad58444276826b  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/requirements/explicit_instantiation.cc
! c1f004d9f4c2ce8e60a695284de94f53  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_cv/value.cc
! 05c178ede4d9848c55ffc9966792d747  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/requirements/explicit_instantiation.cc
! 13aeb1b1ced794cea9f787fb0e9a426f  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_pointer/value.cc
! 9612d6710ab74896b13046ef0df69b2f  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/requirements/explicit_instantiation.cc
! 30af628c1311dc08c26487e2556cc044  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_reference/value.cc
! e33eeded4a099a2d8eff41c071eef4c1  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/requirements/explicit_instantiation.cc
! c8839564063e7d28c197978b00639c9e  libstdc++-v3/testsuite/tr1/4_metaprogramming/add_volatile/value.cc
! 42853fbdf38ac050071e02882d13eab5  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/requirements/explicit_instantiation.cc
! b2c3fe06c6cb7387f554433c6c701931  libstdc++-v3/testsuite/tr1/4_metaprogramming/aligned_storage/value.cc
! 0d1ee68c4e7e2cf6db2bf803be5f6cef  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/explicit_instantiation.cc
! b1fd076502531f124a0c4da7a6a14f63  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/requirements/typedefs.cc
! 42c7967ba2a29b799d4d65f624772772  libstdc++-v3/testsuite/tr1/4_metaprogramming/alignment_of/value.cc
! 1344c3431d0dab23e113502b1a86595c  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/explicit_instantiation.cc
! 263508497564dbb0dd52075c22648c24  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/requirements/typedefs.cc
! 8b1013fb1e7f277ea913d813790cfd49  libstdc++-v3/testsuite/tr1/4_metaprogramming/extent/value.cc
! 8f2ff6a8d782a0a56095cfd71fe5849a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/explicit_instantiation.cc
! 38d0c9ee6d70d32e15ac3771a90d4822  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/requirements/typedefs.cc
! e9799c0c7549ae6879b148f8b6f7088c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_assign/value.cc
! 85293c6207af0ac57cca752bbbd3a60f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/explicit_instantiation.cc
! 2c8354195461d6951eb2b34ff4a4754a  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/requirements/typedefs.cc
! 81cdbf26847408a9906ab4308f0bec83  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_constructor/value.cc
! 08050ea87587ae1234e912b977708d5c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/explicit_instantiation.cc
! 679a5fdec5262e63023b94da0605cc52  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/requirements/typedefs.cc
! f0c197cd2e48964fa6f5e09ec7517c58  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_nothrow_copy/value.cc
! 42e4e3c37b352aa7e8d4aea411e4ab22  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/explicit_instantiation.cc
! 1b3f1e23b65255fa0ba158153f4ce483  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/requirements/typedefs.cc
! 18406a78395c1e4ce94249ccee9d7aca  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_assign/value.cc
! dd9b0462b1efc9be844de234182cf1b6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/explicit_instantiation.cc
! d463c7a5c343bc0cfc823f479b221d5f  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/requirements/typedefs.cc
! 4e284cd6ec30bc89567e4383df43c0c6  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_constructor/value.cc
! cb719e06f36b157bc0858dabc0a918a1  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/explicit_instantiation.cc
! 9375182c890c86489c120999ff34840c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/requirements/typedefs.cc
! 22ebcddd4f4b1fb47c68f798779fe13e  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_copy/value.cc
! 86a583fa88faba98902de686d9d2d29c  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/explicit_instantiation.cc
! 66ada6cc50648b3eb82d17392f2f43a1  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/requirements/typedefs.cc
! fb06363df64ca3aaa9c419a9565a40b9  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_trivial_destructor/value.cc
! 22afa87849030cd28e19deca6fb14950  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/explicit_instantiation.cc
! 9aea9459bc78ddb52cf3da151725dc21  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/requirements/typedefs.cc
! a112938bfa868f096ace31c87e5de785  libstdc++-v3/testsuite/tr1/4_metaprogramming/has_virtual_destructor/value.cc
! 96fa5b5f4a0afc4ee5655033fa9ad6ca  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
! 2579e387c1a306c6dbacfe2455cc4e50  libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
! 50dbe6c7be55a8190ccae192c62269f9  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/explicit_instantiation.cc
! 5912637958dc8f89b4edf514fbd8a2df  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/typedefs.cc
! 879d6d903cf959999c905df0635d2bc1  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/static_definition.cc
! 2dd6761142147576e8c668d8028c405a  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_type_typedefs.cc
! f52de499f16398e1261eca3b9081b5ba  libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/true_false_value.cc
! 78018f6871c2264187b4957fe15c8dd6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/explicit_instantiation.cc
! 6628add84e745dce7992e9fe11df84ff  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/requirements/typedefs.cc
! 4a79ed3bab6f9d785260b42bd8ce0a8a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_abstract/value.cc
! 32d2b2dd53aeb35c65b06bcd107d28ba  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/explicit_instantiation.cc
! 7ad00f3bfe336051b46ca1895b4ff789  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/requirements/typedefs.cc
! 6a55b031034ad812a34ad4c19f8b1bf6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc
! 0f7171fb57755df62639d6c0d5090c48  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/explicit_instantiation.cc
! a9c756b7288622bb2ac8ca676e645046  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/requirements/typedefs.cc
! 177a4d7046c3b53c119114549adc24c0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_array/value.cc
! 68e1640a6944b80e758b7d14c1d5ab34  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/explicit_instantiation.cc
! fba2cb8c8f3e17d2cafecc03915165dd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/requirements/typedefs.cc
! a62be59f9d591c661fe9e49474266822  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_base_of/value.cc
! e32cc3bb89535d8fd22c8ee65928d782  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/explicit_instantiation.cc
! cd612b2c9ddf0b6f60f72f61dbb806f8  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/requirements/typedefs.cc
! 4bcac36072057d9d33e6421436e78125  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_class/value.cc
! be5d43977a75c0e80ae383f8b36c6ef9  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/explicit_instantiation.cc
! b29b61fa64ce57d07018fb44974dbf8d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/requirements/typedefs.cc
! b71dad826043d16aee14a0fc152f662e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_compound/value.cc
! 2cb4f2186c48ca1204f09cac862841a0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/explicit_instantiation.cc
! b15a27a20b193bcdc6d06b65384da862  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/requirements/typedefs.cc
! 4bb43ef107d67b35b991615003f17cb3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_const/value.cc
! 22398f21ade6248ea3f6b22202a6abab  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/explicit_instantiation.cc
! 8c8f44080950e8b5d1a27845a78a96f1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/requirements/typedefs.cc
! 9e084686d565f3a2a41eb683c3aa538f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_convertible/value.cc
! 4078ef62425373ffab1dc11a7308be12  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/explicit_instantiation.cc
! 32c0015a7bc3f746e55606548ca88bbb  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/requirements/typedefs.cc
! 7b0128ca47d8a34f067410a8f1ccb633  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_empty/value.cc
! 39f93abd02756a06cd53794646ab9a27  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/24808.cc
! 09a977f77ab68d139e4ddf74b03bf5e1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/explicit_instantiation.cc
! 14c647932e72480c87a691c445be42ce  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/requirements/typedefs.cc
! 416fc6383b76a89f3ab0ed34288517dd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_enum/value.cc
! 94e370e121de1822535261fa22d87633  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/explicit_instantiation.cc
! 0bb57a55cec8faf7d966c8e6e9a2b71d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/requirements/typedefs.cc
! 8acd1bb81c5a97d9b32de3d1dd46253b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_floating_point/value.cc
! 823b0be0b759841b01ff50baaeb558f1  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/24808.cc
! 70b7e205e18ea57d714213d9866660b3  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/35637.cc
! 68d9815a5ddd98dc246d5a4912435f97  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/explicit_instantiation.cc
! b04d9286a59169b2b2784e30dcbf7786  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/requirements/typedefs.cc
! 3dee2f651b58b9311c3e3119dee8593a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_function/value.cc
! 27c1ca10b39846c01f61786ab0c00d40  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/explicit_instantiation.cc
! 7ad846de3d50e041b3525c504a42ed3d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/requirements/typedefs.cc
! 4012581f984fea75ae6ba361a876058e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_fundamental/value.cc
! 36e2e154e6221a4eeb2a7342b719d3cd  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/explicit_instantiation.cc
! 9a2ba12f99eae2a738582e0622f2c692  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/requirements/typedefs.cc
! 526582219d1ae71b58a753bbe67fff35  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_integral/value.cc
! ddc9b7b0c42f7298f5a241d64a8067ca  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/explicit_instantiation.cc
! 01bb2884efa7c3b8e7ea626b15bc8642  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/requirements/typedefs.cc
! f7e430cf7a37825e6c5bff19e9864c55  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_function_pointer/value.cc
! 52811e311d84130a8f1f4a348f456d8a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/explicit_instantiation.cc
! 159c39c920cfbea247c1dbd8a76d40d0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/requirements/typedefs.cc
! ee6d581726eace4617a91227c7416e75  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_object_pointer/value.cc
! cb4bd0a74d770d5ebe79b1dc79add33b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/explicit_instantiation.cc
! cf28f446cec9e7093c56ea9e1f0ffdb2  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/requirements/typedefs.cc
! b35cd35c3c5405e798638d4f6e24828b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_member_pointer/value.cc
! 62c2adaade9a2a6d0fe1093b3a373b29  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/24808.cc
! 9ccc7c355fab3d1e1135634d2d9dc479  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/explicit_instantiation.cc
! f0f0ee47ea428f98083f0ff31365b959  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/requirements/typedefs.cc
! 62c721db54eeea0b4941919c21f92839  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_object/value.cc
! 2897ced6f93d7323c3717f28173eae32  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/explicit_instantiation.cc
! d6d083a7d48215143dde4e882bad809a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/requirements/typedefs.cc
! 77815a315064202d49cdfab04ead2904  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pod/value.cc
! 9d8631d14622c7f3c49451dc30aa46f6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/explicit_instantiation.cc
! 19ded222df3d5f579e334a283a3829e6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/requirements/typedefs.cc
! 121910000ea904f0c1ff80ce84d99e4f  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_pointer/value.cc
! bad665e3f527f584038271ef67819734  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/24809.cc
! 7e28caa2330b3df484a2fb6a9a996195  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/explicit_instantiation.cc
! bfac4a8455de71602187a3110aaac1ed  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/requirements/typedefs.cc
! a2b401f2b8f855220f5cd44e9d8cc8b4  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_polymorphic/value.cc
! 4e6ad1912843cd5147b6a800d75addcc  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/explicit_instantiation.cc
! be908507e5006c8ad9b52bed8e74c647  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/requirements/typedefs.cc
! 0579b5e646975d84c51db14403aa301e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_reference/value.cc
! 8c99d9558f88db7ebe63a5986734a972  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/explicit_instantiation.cc
! f5c6342c10890fd93b4a703da8f13d34  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/requirements/typedefs.cc
! 01b54938b715a4533b9a868757d17d50  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_same/value.cc
! 9162bd5ebcf42db5003b8932acf4a5d6  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/explicit_instantiation.cc
! 549464dff6ec46d986d409dce249bc3a  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/requirements/typedefs.cc
! 4ef5ccf17138ae6b13685d9114dd5987  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_scalar/value.cc
! 28621e34a754993bd5af5c2c9dd61a13  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/explicit_instantiation.cc
! 8ccf2ba7486ffc7decce7e27c66c3426  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/requirements/typedefs.cc
! d4cffd6fc04f8b553df7377309174426  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_signed/value.cc
! df6a690be03e9a7db3416feb72fc766e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/explicit_instantiation.cc
! 6814010a453763ebce8501605df6b600  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/requirements/typedefs.cc
! 3852391c60145bfcffe592a5588eea1c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_union/value.cc
! 2faaac8801de7128b907dd48b09027ce  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/explicit_instantiation.cc
! 79b32c63e335379bd73a5f99c797034e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/requirements/typedefs.cc
! a72ee35da1625b006119d8895b9ace4b  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_unsigned/value.cc
! ef14905153ef80b3d47846120d5d762c  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/explicit_instantiation.cc
! 670a4885cac945006486eed7d99de54d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/requirements/typedefs.cc
! e9fae8b446e2663a7de2e0d7236d275d  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_void/value.cc
! a40b91c39c198ccc7b1cedb2a8a26649  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/explicit_instantiation.cc
! 827be742903c0c967ff9c643dfac6de0  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/requirements/typedefs.cc
! 48dbbd361f4acb45741224305a0c769e  libstdc++-v3/testsuite/tr1/4_metaprogramming/is_volatile/value.cc
! 0411d008176a2de2b303a381eede7424  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/explicit_instantiation.cc
! 24b341d86991e3fabfce419d1f86b763  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/requirements/typedefs.cc
! c3cdb1ecd1eabb29cb439b95b3689a95  libstdc++-v3/testsuite/tr1/4_metaprogramming/rank/value.cc
! 1e4cb6135f65865f2c7a7abfc806de32  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/requirements/explicit_instantiation.cc
! 3884ed3ffcc2f99fbe7d48df62fd92d9  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_all_extents/value.cc
! ea92c71ddea733ece347454bc72eabc9  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/requirements/explicit_instantiation.cc
! c2b18cbc49123856432b531e7feb4bde  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_const/value.cc
! fc4db826783f2a9e85800910e438d176  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/requirements/explicit_instantiation.cc
! 9ca8622be8a2b89853dea5227b6fc63f  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_cv/value.cc
! ea1a3545316ca1003c1596c278f53540  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/requirements/explicit_instantiation.cc
! ba8747ef09bd1a7ae2565ff29d04e2de  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_extent/value.cc
! 3cc35f29fc5b26faefe1245130d0b43c  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/requirements/explicit_instantiation.cc
! 8a8cd805bfdf6300045a62382b55cfd8  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_pointer/value.cc
! a5c809a5a575f1b16d7f624da989cadf  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/requirements/explicit_instantiation.cc
! 776eed1c1e781623fb74729cc8af5123  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_reference/value.cc
! 80e9bdb9e2418520f34a5bb8bce354b4  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/requirements/explicit_instantiation.cc
! 6e7d79555cadb3b29ae317bce34d869b  libstdc++-v3/testsuite/tr1/4_metaprogramming/remove_volatile/value.cc
! c11bf03e2f0511ea5b63f68867cb48c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
! abe3d6a80a2b646fb7bc17af28b91108  libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
! 3fbad5adba88f6e053acb7c2ddfe6bf0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/bernoulli_distribution/requirements/typedefs.cc
! f030711018533b4e7e54d846be2078f9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/binomial_distribution/requirements/typedefs.cc
! 07518258093f12bdd88a34591e904a59  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/equal.cc
! 56acb6049b0548ef5b6615e3bc7eee5b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/not_equal.cc
! a5a2560084fd84c89fa337d4c8c3a686  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/operators/serialize.cc
! 3c947b95a9871486c9fbbce0361501db  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/constants.cc
! 3a9f3b1f7eba7b5e4a2a728cffbe79d5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
! 5f541802bad7fe6ac63bbd4767f3cb43  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/exponential_distribution/requirements/typedefs.cc
! 5c2640f19394024c5ea131b56547d7ad  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/gamma_distribution/requirements/typedefs.cc
! 7a3487913614167158d4a89cb0c8230c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/geometric_distribution/requirements/typedefs.cc
! 8e4146534f80ecdbeeb9182da0bb4219  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/default.cc
! cb049d7c2c36ecabfdab39fa150b73c9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/gen1.cc
! c685da90122029bbc5b91027d82b2ca8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed1.cc
! aae72219db344195f537e02c0bf34b1a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/cons/seed2.cc
! 01a0b5c98c8bca3cf6c830b79dc5a92e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/equal.cc
! 2a5fcd73df58add3f6cf6b7635bbc423  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/not_equal.cc
! 47d1516df74470242227c10764d658e1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/operators/serialize.cc
! 58008894ba70a58723d762af35ec2078  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/constants.cc
! 335bf41e39203015e64823c06c654780  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
! e6a83271537678e0523a7aebccd2934f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/typedefs.cc
! 5bd3d8ea23db6add1f14e66cde549cc1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/default.cc
! 5a4ef59ae197646d964ac386598542a4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/gen1.cc
! a395799e37b11da8ad2a6b75217238e5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed1.cc
! 4c0c10fa13c47f18b5919ce91c6922c5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/cons/seed2.cc
! 52590bb4af51a6ef4a7e79aa9e218d07  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/equal.cc
! 46bddc3a0cfc51c878d662e93a59aed7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/not_equal.cc
! 291a7825fea376da2bfa512ee37e0f4c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/operators/serialize.cc
! 5a0c60fdfc0d5157b71fd3600b7825c5  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/constants.cc
! 3f4606398afd21f3f2bbac524b047599  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mersenne_twister/requirements/typedefs.cc
! 4cbb23f4675697839a70a53f3ee5b8f7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand.cc
! 0b3fefe73aaef03fb388ba4cf4aa0761  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/minstd_rand0.cc
! ccb9ee17895947be4495e628841928ba  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/mt19937.cc
! b849b32567647ea61d008d2f0c3f196f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/normal_distribution/requirements/typedefs.cc
! 4b9686efca0514cfa76e361e58a72e33  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/poisson_distribution/requirements/typedefs.cc
! 978d4c89e4ecf17ea822b60b7840bdbb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/default.cc
! ea8aa85f5ba521e9290c73b8ab595421  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/cons/token.cc
! 64cc73d8b0671fc885c6a05194edda15  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/random_device/requirements/typedefs.cc
! 30952ec90bbdd88cbad0f591b59bae01  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3.cc
! 02572d9fc78a620e4a6b17225938defb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux3_01.cc
! 0cdc4f0e7cef81f3aa258647fd6b9cdb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4.cc
! 27303a49cc70c215780735c6a376808f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/ranlux4_01.cc
! 97e2b6747e1ffa14b49f049a3b949ef3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/default.cc
! 55a0da33d74e9da529cca38c5b2fdc20  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/gen1.cc
! 6b98b1421811cb635850d04c74c137ea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed1.cc
! 541d94402db6171e9d08200088096d72  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/cons/seed2.cc
! f5646fb72c8edea76e55c0354866746c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/equal.cc
! 5a9d386dd003b33e858bf50681b54d08  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/not_equal.cc
! 6db693a9c2d2313f8600eb395ae51ed8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/operators/serialize.cc
! 10f0f219b5d1a606571ffaef455c0457  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/constants.cc
! 83b8668b863ee9b60129b137050eaec2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/requirements/typedefs.cc
! bf1e921efc8b85d1287bbef1cff4dba9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/default.cc
! 715bdf005edc55b9ab81b1abf2a38691  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/gen1.cc
! 67c3b8e59b64da06e5df472f363c75d6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed1.cc
! f23d47b249fe3f3712e25608ae21523b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/cons/seed2.cc
! 64d69e61b74449dd41a5edebe652b934  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/equal.cc
! ac293e8e4a60fe0c5bb9a02a6d75eb34  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/not_equal.cc
! a121c13eaad7e4f9152a5d464ee36c1d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/operators/serialize.cc
! bca2443d32ad40fe8ece984e5815029a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/constants.cc
! 5ec4a1e54c37f51e41855dcb5c2b3da2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/subtract_with_carry_01/requirements/typedefs.cc
! 75f6784b528f244171843a5ed76a0174  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc
! 5003504e8e0facdffadfb2b18a207044  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/default.cc
! d578f31213813f5f421d1b74b732ce82  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/cons/range.cc
! dbacee34e966b73c22350a77b1bbdecb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_int/requirements/typedefs.cc
! 5d6ef9a2e1c8f13c2567212a2f6c213d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/uniform_real/requirements/typedefs.cc
! dff0d375ba7dd596eafc424d3ff65f8f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc
! 5aa50ba0eb742f5613fe6cffc68382b6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc
! a08bc213bb60ce107aeede431b9dcced  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/cons/default.cc
! dbeb070d0b0464779263e7abe204921a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/equal.cc
! e60dd42c7d0c109ac4e0f5566a2d65a8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/not_equal.cc
! 23c1f6b31fbabf2965d6921acb88876a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/operators/serialize.cc
! 3cffc104a6dbf1402cdb52b301001496  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/constants.cc
! 553adcb1599c48042916d601d0f158f9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/xor_combine/requirements/typedefs.cc
! 392d530b3d083fa75dc7782394a9da26  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_nan.cc
! 98158329c6e0af8bc3a5ac52caa8216d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc
! 42c65168215ff814a20c75ca4fd3b773  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile.cc
! 34f336e3dad7915d46d4a29c018b713f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/compile_2.cc
! 8fc9a9f3a3fada2d2fd0f69ef76f14d0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_nan.cc
! d2621959a111b7d92105331697adbee9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc
! 94b24440d78e63bb850898c531a21f36  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile.cc
! b24979d885d5d6ce02f6fefd79d0fdf7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/compile_2.cc
! 72c2cdc3435f788aa4b4bd97a1a40836  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc
! 01610b9a9f2f1ff5e0f8d9f6c7bd8ab9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_nan.cc
! 8c733f67de763bb4751f1e8cecf73f6b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc
! de3e3c91750c3d2f7cdfe7f3b02db76c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile.cc
! c5ee31d2f0449924ecba1d756b930de3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/03_beta/compile_2.cc
! 8ca110f388f0efc6e9745536f918ef9c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_nan.cc
! 5283c802dbe2802e72427d89d67dec9a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc
! 20eb483213a6f0ebe55aabf1ade7f97a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile.cc
! 4ab3f692418eaba64a3783d78de0541c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/compile_2.cc
! 51f2f99d832ebbdbc8b4c3e85ef26c48  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_nan.cc
! d4b6691b9e9cf707d7651df260714e1b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc
! c7fc597e0569f87ba81ab87286106776  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile.cc
! 341ef6805b1d428f565d343894f441aa  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/compile_2.cc
! a4f29e3bf6d8552f320e621699ac3658  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_nan.cc
! 3c505b79fc5895352125029977ca254f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc
! cb8073f89014d2d9492b2a3c334dccfe  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/compile.cc
! 2f26f3d3a5ab8dcf14a9f4c6b9be25a4  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
! e6f983cf09c74ee64b9008e55f7d6e26  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_nan.cc
! 83960d2f466448cae55b7676d1ddbd62  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc
! 1075550e412ac4d6d571de6ed746c6f9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile.cc
! 2de17e3fc3eeda06d4ba458453e8e924  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_2.cc
! 78506f89abd569321fb8fd9f57f6c501  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
! f28db5c2cfd426b3767ce7c0f206c38b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_nan.cc
! 0c5a74803a09f693b64a9fb54b276411  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc
! b90398509c956cef6b474b996d1772f2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile.cc
! b60b8b6419355380e7305eeafabec5e6  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/compile_2.cc
! bf806b61bb14bba030e27a9d9906612c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/pr56216.cc
! 478d50a221bea28a52fedc472f54e5fb  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_nan.cc
! a0f6778cae2f514088e658ff1fd90673  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc
! 1b970583ecf36f0f59beb188dabfc7bf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile.cc
! e9d3791d644a0eca2b9ba18f4f04da82  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/compile_2.cc
! 6b406b65717b773325493d8d4ea230a8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/airy.cc
! f904fbe291397e67499ad3c75dd690ef  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_nan.cc
! b5a4a9389ac4e98cec6750990d86ba4f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc
! 557a7bb6ed377d35722fc72d214d29c3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile.cc
! 53ca293d213cd9a24756d7df4e15eb1e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/compile_2.cc
! c847ec67c459a3b45d9a72408f94511d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_nan.cc
! c7441e5379a673b5b7c18c24b343c90b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc
! 8a0987945829e9838778590af809f833  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile.cc
! ab89a66323e1bb3aa0a8c86213f22cac  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/compile_2.cc
! 0b51478a640bfcf3b7dd467fce6fb2f8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_nan.cc
! 3a4195b5b558f682186a1dcaa5adce0a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc
! e39f23ca3a305d010b42886b136d3e8a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile.cc
! 376cc4098cc5221c73f0888654443615  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/compile_2.cc
! 225b54823c41c98502ba6b8286f13d4d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_nan.cc
! b67eefd2864e88559167df2c8593cf1b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc
! b3e2537aa15d6f5c4297ba26a4aafbea  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile.cc
! 86e38d698eb12fbbf2ac98826d9cb601  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/compile_2.cc
! 0229da3bf6b9e93aab0299037cbab0b9  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_nan.cc
! 991c3a3ea50d74945d4c8920f576ea48  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc
! 87091a5c45dfa953876422eef7e9449a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/compile.cc
! 659c5851f57913dfaaf868b6df8f6063  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
! 14f2259d7929a37314576f4aab599a3a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_nan.cc
! 8730bbe7c4b94f358eeabdea2775527f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc
! 9cf40f9c34dca07fb553371dbde64652  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_pos.cc
! f96bf3053d6185f6135a7def07ac1175  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile.cc
! f7c0618e6ee4606b77df2e267fd14e20  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/compile_2.cc
! 11d124249464fe5800aef6c4a4aff54e  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/15_expint/pr68397.cc
! d8b6ec9cd38af40ea167e43e1e59348b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_nan.cc
! 8bf229e5719d2bec26884eb02c2e5b22  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc
! 7eb4117ffb68e78ce6e31cd27f652af4  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile.cc
! 166e11897b987d62417fc2cba694b537  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/compile_2.cc
! 82b5f5c6aed8b94405300e66b47e8982  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_nan.cc
! 8e7afbb7e0c0f9a60b2881f76533de6b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc
! 831af33a42afdcbf208ff9f08025c223  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile.cc
! 9596d8aae2d7430069d5f8ed02885dc8  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_2.cc
! d63d55b7ba34fc67b82ba48f7036d6bf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
! 76d43dec96a2ccd2c1eb2e6f8540a2f2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_nan.cc
! 7ad1a202c81c557409bedd5490601478  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc
! 940570bf22be52645b0d9a173b265d2b  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile.cc
! dc2d0a6e87bf104abf9d58bb91b56f33  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/compile_2.cc
! a0ef60175c046875f5f7e3e7c79aeeb3  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_nan.cc
! e003d5e29a47d0189859db4faaeea968  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc
! ba050dca0771b8c94d839b323877284d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile.cc
! 60dd9abf1ab3147ffe1e8fdc2aea35c7  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/compile_2.cc
! 16b94b3d47c5f02149fe51850e5dcd2f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_nan.cc
! 95b63eda193b40a06eeb5b418bb9a11d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc
! 07a4d9cb76550af5933115c7d5c684af  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_pos.cc
! 2ab0ed31c5a50080f95a3b5ca2bcf727  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile.cc
! 3791fad7ebfdf0743d85172dcc378b3d  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/compile_2.cc
! 50bf060148f51c8a7b0d5e7bc6a8fee0  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_nan.cc
! 8ec292b89b024b8faee1fa20ac79d81f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc
! da6e64d71a5bfd1992be2744c4b3445f  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile.cc
! b3eb4d353ee78c2d5137bedabd54e59c  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/compile_2.cc
! 52fd32fa0a833390e03cd6dc647dcce1  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_nan.cc
! 72f85cf0fedfbd55a7ea28b3ecea9dbf  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc
! f2bbce545984eb2cfc5a2e01efa90e35  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile.cc
! 2a92096712831328e4ea7ea2c3118458  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/compile_2.cc
! a91e5bc1a5cf93d4ab9d0c9aa98b214a  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc
! 1124b3816013d94015a88616a62f23db  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_nan.cc
! be959cbf08afb77a82e15510bdfad335  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc
! 9741bfbc4b53fad2c66d9d5cad3886d2  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile.cc
! fd82375534cd19af8f6402e74ca01d19  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/compile_2.cc
! ef44e119b24d2761c1be4e9a42b88cbc  libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/testcase.h
! e92f7554dec032570edd61f849ddfdf8  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/empty.cc
! a5d54af5bc41a109e3552d67ddf24af4  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/max_size.cc
! ad6484993ecda2c157e174345fd4fb08  libstdc++-v3/testsuite/tr1/6_containers/array/capacity/size.cc
! 6f4c071831f12f8dc501358dd5fb323a  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/equal.cc
! 17deff1b6886b70d2430c4e0b3a5e5d7  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater.cc
! 285e452ff796aedcfaca6bdd8f7c8b40  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/greater_or_equal.cc
! 1cc38cd74acc239c600d557101de9758  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less.cc
! c5bae390be4846743c18244437c666d1  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/less_or_equal.cc
! 0b9c6254248389efb46873f32437cae1  libstdc++-v3/testsuite/tr1/6_containers/array/comparison_operators/not_equal.cc
! 3c4e40a3a0b09768c627cf51d1737f4b  libstdc++-v3/testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc
! b1954e22154bda356bef497bb95fed0f  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/at_out_of_range.cc
! c8e9542a54f171edf5dab1b99d2b9cce  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/back.cc
! 2ef53e8a321c8d8d8cec9c5c46f0fb83  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/data.cc
! 2c6b884a36bc59ce88c798056cc0a18f  libstdc++-v3/testsuite/tr1/6_containers/array/element_access/front.cc
! f0549d0c8cb7c18d5ec139196078c44f  libstdc++-v3/testsuite/tr1/6_containers/array/iterators/end_is_one_past.cc
! f4885c1c92de7434772fb773d87ead40  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/assign.cc
! c4b3039738ad5d66fcfbd6266f21b6df  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/contiguous.cc
! fa3d9486a27470d86b6d7ae64d06c5df  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
! d7345e6d055ff29e853955cbb0d62e8b  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/member_swap.cc
! bc4ac59e1dc89ef47c1be07d039cf326  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/typedefs.cc
! fa023c0e5343246ccae593bd0320e7ca  libstdc++-v3/testsuite/tr1/6_containers/array/requirements/zero_sized_arrays.cc
! dc5d30a0c31f5a6f90fbb0d746901fa4  libstdc++-v3/testsuite/tr1/6_containers/array/specialized_algorithms/swap.cc
! 604a8c06cc828a964bbf77912547445a  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/get.cc
! adca10e5bc899c4e2058d6e018a8a35c  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_element.cc
! 24ed74a78a18961b9b4be6726cdf2e09  libstdc++-v3/testsuite/tr1/6_containers/array/tuple_interface/tuple_size.cc
! 94c3b8e28325f0e3022aa83b862752f0  libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
! a0ea59bcc13f9a3bdac7e4ce808c0fda  libstdc++-v3/testsuite/tr1/6_containers/hash/operators/size_t.cc
! 4a8b7f8d47034617695ac34519457b5b  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
! e1add8108ae59d43df9bd67cd7fb3f1a  libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
! e9b3f8db24cfcc04e5d69148b01660d0  libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
! e61761a1ca467cb6692428ac9c5865f7  libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
! 2a89a5d6332fa0bc7d0548548b1eadde  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
! 4a28908c2e3e599a3cbdaf56c28c7bbc  libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
! ea0142278118607307b66518dbfae181  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
! 807f19c34c4145699c7c8bf14b1b0b30  libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
! d367e11a740f26dcf455c1cb8c2a9374  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/35480_neg.cc
! 9082b217dfc380fe79125631a40f7059  libstdc++-v3/testsuite/tr1/6_containers/tuple/comparison_operators/comparisons.cc
! 438ce9a557e12d04b981f0af7ca1f01e  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/assignment.cc
! 6f8211dd4997788ee8fd1f92cbd68e75  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/big_tuples.cc
! 7edbe5bfcda30bd57cf63380989c41f4  libstdc++-v3/testsuite/tr1/6_containers/tuple/cons/constructor.cc
! 6f3a578b33b2baa182b4cb561bba04d8  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/23978.cc
! ca07a6dd0f50750f981d98099f604b64  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc
! bd1bdd89827e3f5d9f7d732a570b3f3e  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie.cc
! 21644f8f154df54f0b0707db9d323321  libstdc++-v3/testsuite/tr1/6_containers/tuple/creation_functions/tie2.cc
! a912f230f39f204a31edb3e80811b852  libstdc++-v3/testsuite/tr1/6_containers/tuple/element_access/get.cc
! 524ccf0b0e6785f80423d44ed8dd4bee  libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
! 86cf598f06361a5ce382fe56bff6a0ec  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_element.cc
! 8cb6e74bf523d0ba85f4fb35cefabcc8  libstdc++-v3/testsuite/tr1/6_containers/tuple/tuple_size.cc
! 841b386afb723d00c68e047e47b84429  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
! a679df1d1588a2ec0c697ee3769cd7ac  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
! 000509177fde4fe344ce1fd194f69e6f  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/1.cc
! 3b38af1b52c45ef9afab2140c78d4b37  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
! da67d48e42550afbbe1809e35b509d94  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
! d757bbe84274007712101a0a0669195b  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
! c73c8d3209332080b6a3b918113f7127  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
! f4b6a013b5799759b07cfe1eb0a145c6  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
! 07a45883ba8fe91ef968b4d6d7ebc978  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
! 1d25ef967481afdaf4b882c190570e1d  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
! b721ab73db19f8ba49365d4679b649ff  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
! f0add6e84a72832b89de0493d4dc8a08  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
! a3989e8d9903c50277c78f75d2d3bde3  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
! 7e9546e6cfc79b1797ee69e21b1b7c7e  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
! 6d64d41e9333d10fadf0c20a7c7d046e  libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
! 225d50ee653250bc48a21c5e213e46ec  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
! ce1065191102e98828393848a1b855e3  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/1.cc
! 1f00dacee553a7216fb9f3f4f7eb45d0  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
! 01d57f9857dcb4d321edbd02c7f89726  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
! cfe3bb43391713cc92b103a6fcb9fff9  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
! 974f813860a29189538ebd247b8e8d6d  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
! a1578b76a02fb33a9230bb6ad01185e7  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
! cc9ef0947ba912f26e164ead8f49852f  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
! f0eb846460e86c8c5a91110dae126ae8  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
! 2cd2612a74c695d5bb96ecf634e8cd25  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
! 207e0178dddf83638bc9757d3ce7fc86  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
! e25d3738ab3e99669754cf906ffa7038  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
! f2e968d813c3be7bba59b705cb3c56be  libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
! 9574aaea434e1e6be6457c429f91abbd  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
! 805f2d6232fb804fecc112dd975d8b86  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
! 7aa7e4f009db9252c9c2fcdac1bc708a  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/1.cc
! 489efe6f51b4dda48e72db0f29de9562  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
! 5dba23ef0202f2266baf347237003bc1  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
! ec67717a0e1ffa3417b9e6ff5678e995  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
! 96945c68e88e424a9147b14480535df2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
! 3c3cb767427c2e0a977a5940c7e51a42  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
! 9cc6df1466cf5d852066d3618f9dbfc2  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
! a7bd2a66c1b1065e8b4203a1e2c69169  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
! 7312945edc6db73c5e027d0b7178326e  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
! dbbc96e6e9bc247d12790d12cee2231c  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
! dab2be5c3046cc889c4de135758e97bb  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
! aa9fd5d938bf6066b11cfd795f0dae09  libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
! aa9ad4dae958505ef2122e5bc9e32b79  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
! 7dd91d5eb3a5058cf73ac043a0d7d80f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
! 6dcb5e85c51e3e6ee941c28034f5dc47  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
! 110e598fabd316b905d67a4497aea912  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
! 00018ffd069dd8eeca34fb10165ae7a7  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
! 88b7f230996aa01fca5f44061e2ed592  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/1.cc
! 9c1f3c0143d28031ab8a2cd53e76a72c  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
! fd893db1c96eaffff7fbf01e6227e912  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
! cfc52170b089e787819f5e95e9b9081e  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
! 77ff5e34c1655650a5c484d6234f5298  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
! fcdc9017557e529f9cd0b2273e33017f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
! a4df531e4e3933cf5c0263323931b0f4  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
! f0eceec4c42355fc0b52cea4833166e3  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
! a9c1d8be3a08b5b99a6c91505e853100  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
! 557c997ac0eb4668f441f30c718c9a7f  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
! 09dfa76dd00a64427025c4f8bdbe2979  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
! f1c9d721effc9029e22cb0a6ea1e16f2  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
! 2b788c3b494ad157f389e6fa61cc4841  libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
! 18d8f23270b25b09fbc6908e70651e38  libstdc++-v3/testsuite/tr1/6_containers/utility/19535.cc
! 223354e11ac9b85975c1d7f39f98598f  libstdc++-v3/testsuite/tr1/6_containers/utility/pair.cc
! 3a3f7c4604e548e61f77931721abe06d  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring.cc
! 3a9d01ff5c267d0f5ae7951c7685527f  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/cstring_op.cc
! af196bf51ef41dd29dee1198df43ae15  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/pstring.cc
! 60320ba6e00640b99edd59db90731b06  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/range.cc
! f76f71a961598c986c638ea4975314a6  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string.cc
! 12b00ac86e6b76c235830744dc18179f  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/char/string_op.cc
! bd976c009b5413814ec99372e28ca827  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring.cc
! 8f8327882963ac3ce6c14857642d34a5  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/cstring_op.cc
! c4b679b4e3615ef9cb31e61f95f6050c  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/pstring.cc
! ac62a6b3e99de04b7b6b858910b58ad1  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/range.cc
! 8746a0e56c4d08ce8b81b4fea95e8c0d  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string.cc
! bcd1588653c2602c4b86afaa2382a651  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/assign/wchar_t/string_op.cc
! f7deba3277b15bac8e0075da6d263b02  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/cstring.cc
! 0f6654c024195526ace46c0234f741be  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/default.cc
! 7c5819a1e18d89bf4806194ce2d6e15e  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/pstring.cc
! a0e5915c8ed0a05cdfa830adc5fac669  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/range.cc
! 24933109b55c44ff12a6b70762d30daa  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/string.cc
! dc86c5563d85308cb94e3c3bf1ffd4c2  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/cstring.cc
! e6397196c61c7d2f13acd46a03a81a0a  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/default.cc
! 6582193cebcc219e9d928cd51e4a0a0e  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/pstring.cc
! 248eecac405992c2f8ceb6868fe2dc58  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/range.cc
! e2ba5470a6fb3ff51efd3a51c2252aa3  libstdc++-v3/testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/string.cc
! b7e3b287193a8fb8fb2e1227249bd519  libstdc++-v3/testsuite/tr1/7_regular_expressions/match_results/ctors/char/default.cc
! 2d5d4d43a7c4d0138c8aac09a145bfd5  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_awk.cc
! aa175e7d8257f59a594d6036abb7efca  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_basic.cc
! a14da07763dbcfe19092b402aea1ca1a  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_ecma.cc
! fab4d9be04d206c478a33f7ab01f67f5  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_egrep.cc
! 4c8517aba1050353606da9f31551deb7  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/c_string_grep.cc
! 321dd1e73404595bfc330fde1dc89d83  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex/cons/char/default.cc
! c38a830f67ba1160f384dde2cca0cfec  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/ctor.cc
! bec66a520851bddf9b6da9c946c20a8b  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/translate_nocase.cc
! 13ec0863220d01874e03777773cc572d  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/char/value.cc
! 431633966409952eee5a28619a02f97c  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/ctor.cc
! 4645d5d381b813920ae26b65d95ddb85  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/translate_nocase.cc
! 13ec0863220d01874e03777773cc572d  libstdc++-v3/testsuite/tr1/7_regular_expressions/regex_traits/wchar_t/value.cc
! 437fa79c6b9588382d4d5c8dd2c57b79  libstdc++-v3/testsuite/tr1/8_c_compatibility/cctype/functions.cc
! 01b575fbd0b3ce7f0d3565680b76d805  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/functions.cc
! 3888c3800408555d9f28546dccc2ea9b  libstdc++-v3/testsuite/tr1/8_c_compatibility/cfenv/types_std_tr1.cc
! b79e9c25a3b2fc16fb43ba6fbe6f9a43  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/functions.cc
! 7b66dac9aff573d6594539ec6978a9d4  libstdc++-v3/testsuite/tr1/8_c_compatibility/cinttypes/types_std_tr1.cc
! fa4de7a0e81c7d1a314409ef4da0abd1  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/51083.cc
! 4a62b34e7a46ae24c3562462e7ee9cd6  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/functions.cc
! 21177059e429601c6d32379583786ada  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads.cc
! 98d9a6e9ed25ec1ca14e671382489227  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc
! a8607da2f4dfa34598561f15ebc678ad  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc
! a63cae3073c23804ce69af726cbba848  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/templates.cc
! b9e15dcaa013045af2dbd9894eca4b3d  libstdc++-v3/testsuite/tr1/8_c_compatibility/cmath/types_std_tr1.cc
! 87f90cf712f179fdc2de34f3028bc25a  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/50880.cc
! f0634412d54de80bcf6913a1dec2bb2d  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/51083.cc
! 14905025d656b6a2eb0b1baeb012d47e  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/functions.cc
! 4ee13fa69db94533d3a12401c90de410  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc
! 2a76225ae7a22234629df80189d5f408  libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc
! df4a63f0ea6171cd2f07d4072e562a84  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc
! 33544335e2cfc1baa75d03135123c16b  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc
! eee0442528da97c5f5797ea81400e9ff  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc
! 12edf9848f95d7e53e7b70807db98b23  libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc
! 86843984461588e21f75886636e2f0a2  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc
! f4a0c3e8f20d07bfe69d7d2d4beecfe0  libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc
! 3a7b800250d5bbfe0ff530a44058a751  libstdc++-v3/testsuite/tr1/headers/all.cc
! 3c4e021aa1d3acbd193844ed29a84b52  libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc
! 2fbcfb69b9a0ca254c44d574607ea7bc  libstdc++-v3/testsuite/tr1/headers/c++200x/math.cc
! f3c31df784ee574c3e64616b6f112014  libstdc++-v3/testsuite/tr1/headers/c++200x/using_namespace_std_tr1.cc
! 93015abd113879efb2b53e479f5a4379  libstdc++-v3/testsuite/tr1/headers/using_namespace_std_tr1.cc
! 1f48cad8dd25dcd88c94c5d5df2aeba1  libstdc++-v3/testsuite/tr2/bases/requirements/explicit_instantiation.cc
! 7fee7347ea04b8c6c76e1aea217dcdec  libstdc++-v3/testsuite/tr2/bases/requirements/typedefs.cc
! 70a825b0f9d6d1d8faa4cdfd3a5b003e  libstdc++-v3/testsuite/tr2/bases/value.cc
! bb6a1dce32fc5442d2bc374086a2560f  libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc
! 3667987bb8b0baf671ab19f959b2cd7f  libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc
! 89bcd4f4df19d3759f10211794d4c868  libstdc++-v3/testsuite/tr2/direct_bases/value.cc
! 287e504f6a4ab6452d15859833383e49  libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc
! 1456933750f4be8b9b1130dbb96ed64d  libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc
! 702442893d8eb9395e97b7e94cb3c9f4  libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc
! 10b0f42c956bce7eb1a04fea133e1156  libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc
  bb455cd7974df6cd892858b5c801e9eb  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr115399.cc
! 62fa2b8811eac153238ce0b3faf4b22b  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc
! 408ae7e185aef28a583568740d70b1f5  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr87784.cc
! dbe22d2d17ffd74e48b4fed19850e173  libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc
  ecda9a957b2187c0e03c98357f9a8f67  libstdc++-v3/testsuite/tr2/dynamic_bitset/string.cc
! ca6b55ded703d4480f10feba7826a36d  libstdc++-v3/testsuite/tr2/headers/all.cc
! 600de2a294ab1773208976c5c359707f  libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc
! ce6df988adc0bd65a87acd0a338bd486  libstdc++-v3/testsuite/util/atomic/wait_notify_util.h
! 4a5809dbae8731a9b7e54ca76867338f  libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
! d561ae6bdc0b12072a81687d2b3dd67f  libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
! 249d826a3f80e3fda1f9d7682714dc56  libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
! a3085b7f4623c6648856480dbbd27c63  libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
! 5adecb0195dbbd45bc26c5d4c62f6929  libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
! a4c43b723b98520cef051bb280906b16  libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
! 70879c1ce56db8c7f4ae7d8c62e88015  libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
! 98f317411f6ae9f8b5ee95ca9e721899  libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
! 408702deab46bfb83873dd7fd7820bda  libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
! f37b0d8fd1dcdacb54bce589fba78b0e  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
! 5d87002770be6dea97d010f2b8003704  libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
! 077b33d7919fad8d346ebbb48b12cba4  libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
! 43a8084b529295cc11099bc747aa4122  libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
! 46422bb05776404e538156abd7e7cf77  libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
! 6c57adfcee8986ed9e18109f1d6a1027  libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
! 0ca696682dcdda53340f9cb5d7e775f1  libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
! 0983f06ebc41d4d481d87178f1628b04  libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
! e4745a9f5b9e6b89c864d7e1bd8aac24  libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
! f1d5a885fc7bce64c4798f4126123255  libstdc++-v3/testsuite/util/debug/checks.h
! 8ba0e0d693660d9aa78248062b942760  libstdc++-v3/testsuite/util/debug/unordered_checks.h
! b10d9142ae40146ccf39c05e135bc917  libstdc++-v3/testsuite/util/exception/safety.h
! 865413d3620a2ca642f46f80a457bad7  libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
! 11cd67f639cade8038fcc4d012b54381  libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
! bf0982f17366c90f0b55bdbc9fe5a8f3  libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
! 9c2bf359fd7c4f38dfe98436fb0d7f53  libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
! 4fffd5dab58e41ff27819a8432c182d7  libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
! 3258546896c9bddf9a7dd3644f42d820  libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
! 5145e210126f2c6b764c986b70d98ccb  libstdc++-v3/testsuite/util/io/prog_bar.cc
! f7de6422235c4c37b193a071a8cee11b  libstdc++-v3/testsuite/util/io/prog_bar.hpp
! 02975d59e1c33786adaf21acb9a720da  libstdc++-v3/testsuite/util/io/text_populate.hpp
! 54c18129aa3f5327189b4223b50fe5f4  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
! dbb7e4191bd53179aede58843909cce0  libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
! 2270daf0c0c385929e6be1c26c023417  libstdc++-v3/testsuite/util/io/xml.hpp
! a5f5a51cd266e196ec4cc59754d0761d  libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
! 2beecc43c0cc72783963fb184992b923  libstdc++-v3/testsuite/util/native_type/native_hash_map.hpp
! cfdc1859da38e94d31aed9ecce9adef7  libstdc++-v3/testsuite/util/native_type/native_hash_multimap.hpp
! 9bfd34d78958ebada495db041c39a24a  libstdc++-v3/testsuite/util/native_type/native_hash_set.hpp
! 83330844d57ce898abedcc9a8dadf467  libstdc++-v3/testsuite/util/native_type/native_hash_tag.hpp
! d3c3a81faea37b058b107835b6af809e  libstdc++-v3/testsuite/util/native_type/native_map.hpp
! d97cf371b5f2675d4abc1ff7800a9563  libstdc++-v3/testsuite/util/native_type/native_multimap.hpp
! 37285746547c7cf5abb4faa9718b7400  libstdc++-v3/testsuite/util/native_type/native_priority_queue.hpp
! 2505e15bbbff77769d180fefe6203021  libstdc++-v3/testsuite/util/native_type/native_set.hpp
! 82dc410393c069b3394e18897bc75f30  libstdc++-v3/testsuite/util/native_type/native_tree_tag.hpp
! 2d91512a495454dccce55f2c89866c52  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
! 9c10551ba9b5693a881ef0e8ce535e12  libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
! ae420c4ad83b6aa311002f6575c5f2c6  libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
! 0c3b79003e18cf1e3d7762762138a1e0  libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
! 9afbac37553341dae3251ef8a5cd925d  libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
! 094a6be6188a967dc404e06380a72644  libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
! 6ee6cbd182a861ce4807348103efb4bc  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
! 181a15cebc10dc6e44ba2b5a0c1a8dae  libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
! aff5e0671136048bd8c9116a4b5a4f6b  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
! 12a8d3f8c368ca3ce07e358fc3683881  libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
! 558064a9c305a684e21329b12d909be7  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
! 4c503b8adca089631df888ab84eea3f5  libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
! 1308d6e858f479b2e3b4512f2212c923  libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
! a92a3f064e81269ece2bb8774388555c  libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
! 4aedfa37510fd9f09249583c6d5f8ff3  libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
! ceec13fdbef0fb69e8e1309a5216bb34  libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
! fb479eb16a3ed08738c305107b63b230  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
! 0b64eea83963b63a45744de47788c7b3  libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
! c3449a6eef6462df734827c70f4993b9  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
! 3dc94fe3dcfe9724a10abf239d5099b9  libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
! 1d47d09fb28c5882c4df5f123b0888da  libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
  f229f005fb6b0edfab2a25224f4aa670  libstdc++-v3/testsuite/util/pstl/pstl_test_config.h
  55baea8c9c13ca011d239763ff0df1a9  libstdc++-v3/testsuite/util/pstl/test_utils.h
! 2122fd4a6adccefee06f08b584270dd5  libstdc++-v3/testsuite/util/regression/basic_type.hpp
! d293d4315ee65431b1382ad6f23a3d32  libstdc++-v3/testsuite/util/regression/common_type.hpp
! a948bcfea9293dd1e77096daa5e343a1  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h
! 1c5b5bcc9137415a8fa09199ee2e0715  libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.tcc
! 48842b6734c711d63d168d131d6cef33  libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
! 39cca5cdacddfdccf4b5e4d3b1bde37d  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.h
! a939bdad35d22016cf653cd9227cd5ee  libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.tcc
! ecc3311b12e131c7bda1ed0a39be1c99  libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
! bf01f5d0c4e62c7097c8b80e281105a0  libstdc++-v3/testsuite/util/regression/rand/xml_formatter.hpp
! 1d50635c0b9470f2b45a1708cbecdaf3  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
! dc1daa99abfa63f8034d5b04d0056a6b  libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
! 5c445951e617988c3b8b4033e223f269  libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
! 1a59ce2cdfd6710573d4f6590939a02b  libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
! 9d5ad2bce6d6e60ede83a7841329061c  libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
! aa3fb8ee5ea808f8ce07ca7c8dde47e7  libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
! be77a89c37e828c51834c2ab1cc236a3  libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
! 426c66c5146e0e7e13fba57b628c8ff1  libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
! 05d4fe5022195241b3d9a2bea6f62710  libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
! af15b6781af6791b7c98a9d3c6c702e5  libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
! 9d855eddb5e5cf119fcd4df42f7a77c1  libstdc++-v3/testsuite/util/replacement_memory_operators.h
! f780e2fc46810f6679eec84f2dd1cf9b  libstdc++-v3/testsuite/util/slow_clock.h
! 4d5bd3c84f63dbded5c572da4f8a4713  libstdc++-v3/testsuite/util/specfun_testcase.h
! 7020fdceb3eafa2f375dc098e0129a6c  libstdc++-v3/testsuite/util/statistic/result_recorder.hpp
! 3a1096531268d7e3514024bb1e260114  libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
! 385ba811a55809bf13c1dab8d86fcc56  libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
! f030a30143a9640ad719d16f68d9bc10  libstdc++-v3/testsuite/util/statistic/sample_variance.hpp
! 8bc980f96fee411fcc6fec306068dc33  libstdc++-v3/testsuite/util/testsuite_abi.cc
! 54f2a8dfb9fbcdb569726ffbe6370f23  libstdc++-v3/testsuite/util/testsuite_abi.h
! db5d5717075b7e1c4eb267257b1ee418  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
! aac284c59df58716bba32e67d322c2a8  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! 73d6b9561a6ee5627267f6f043902f4c  libstdc++-v3/testsuite/util/testsuite_allocator.h
! b249d2a4baf04ea5ab1e5432b395b85f  libstdc++-v3/testsuite/util/testsuite_api.h
! ac38738c6b7dd4541f086659557cfcc8  libstdc++-v3/testsuite/util/testsuite_character.cc
! 9cbcfd8517660335b43ca0586ca3b309  libstdc++-v3/testsuite/util/testsuite_character.h
! a0ce6bc1efa190fc8b7eedec4fcb9b79  libstdc++-v3/testsuite/util/testsuite_common_types.h
! d0e4c75a4430f932eef2e477748b50af  libstdc++-v3/testsuite/util/testsuite_container_traits.h
! 383b53f9c1f438a81cb1dd06020190df  libstdc++-v3/testsuite/util/testsuite_containergen.h
! 2f0e564e1790e65e7676bc35cd73bddc  libstdc++-v3/testsuite/util/testsuite_containers.h
! 68f190d026ec8d9681c1ce7518e6a58e  libstdc++-v3/testsuite/util/testsuite_counter_type.h
! 842c7fdf6ded6fed0d44ed60cb219589  libstdc++-v3/testsuite/util/testsuite_error.h
! e0f7d13a790b40f07a58ba70a8d2e554  libstdc++-v3/testsuite/util/testsuite_fs.h
! 660cb38de43fa8bdd1adaeeb9136a5fb  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
! a61da9cbd87ad94712cf12bae7e1c98f  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! 37dbdb4efaa4756802e9d59a40b5f911  libstdc++-v3/testsuite/util/testsuite_hooks.h
! e63fd0c6465f79a8ba5e9ca578ce9b07  libstdc++-v3/testsuite/util/testsuite_io.h
! 4e37bb0b2da2cce7a6c71fb5b712d7f7  libstdc++-v3/testsuite/util/testsuite_iterators.h
! 661c313306e35430e26daff84954a8fb  libstdc++-v3/testsuite/util/testsuite_new_operators.h
! 5d84fdc1643c22bc0cf8019170a06aab  libstdc++-v3/testsuite/util/testsuite_performance.h
! 8ddb64c826c6cf6105b2d30ef241ec43  libstdc++-v3/testsuite/util/testsuite_random.h
! 00be67214b1e688d630183aecdb09923  libstdc++-v3/testsuite/util/testsuite_regex.h
! c9de86976bcd1d1cb0022dcadac65905  libstdc++-v3/testsuite/util/testsuite_rng.h
! e0c9e50df8d41d05918efe7e86898b10  libstdc++-v3/testsuite/util/testsuite_rvalref.h
! 7280199934d45f72c443ddb79b3632ec  libstdc++-v3/testsuite/util/testsuite_shared.cc
  529d22babbd76400264568f2be0d13df  libstdc++-v3/testsuite/util/testsuite_string.h
! 0e89d335c799cbc18dab805e297434c5  libstdc++-v3/testsuite/util/testsuite_tr1.h
! c23461854edd139c3540b67fb3115386  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
! 6374ef1e93ad5c2e7bf0d958dedc541d  libtool.m4
! 718746dc9b911a681f0e346548c41242  libvtv/ChangeLog
! 5d7582cbb1b5b11fd2786f785fabb3db  libvtv/Makefile.am
! 1f8c57ab70163566fc7c8ce5eb9ee70d  libvtv/Makefile.in
  3b765c4f4a0a0f606db1472bce2b8d29  libvtv/acinclude.m4
! 9326b744fb18bad65d4738d0d25f70c7  libvtv/aclocal.m4
! 93fbb34153b1d41d838700340ff70f4d  libvtv/configure
  aef48e6e222ecdfc5d416dc52541151f  libvtv/configure.ac
! cad5d2cb6e35193683f2f355da02a25c  libvtv/configure.tgt
  2caccd848c579fcddd2a8c8106cfaff9  libvtv/scripts/run-testsuite.sh
  09a6150d1619f2508d7844f860b3382c  libvtv/scripts/sum-vtv-counts.c
  4835ec70e1fbcd9acd3c280c0060afa4  libvtv/testsuite/Makefile.am
! 16a2ce557da01cbd4323b5aa82d0882f  libvtv/testsuite/Makefile.in
! 48783cb741388018ab25fca5cf046d62  libvtv/testsuite/config/default.exp
! 44c5c94dc23170fc0c737070a2ecb341  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
*************** e18c427700b2de867318b8dfb4ccdc4e  libvtv
*** 143766,143772 ****
  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
--- 158173,158179 ----
  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
! e6e9d5cfcb3f25c880d0988e1b4be5c9  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
*** 143776,143782 ****
  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
--- 158183,158189 ----
  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
! c8ad9c4dc77f4f84abb355ac9f53f43d  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
*** 143789,143868 ****
  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
! 2568c05dfebfd0651754a59ddd5a90d7  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
! bb857d2f1b2d601cae2111929d78badd  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 60e7f0e20854a0ea157c28792ffb31c6  maintainer-scripts/crontab
  c67f943b672b0dc1c628ebb0e2df97a3  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
  82b7b70a9845ee61a01f20b29dd2df2c  mkinstalldirs
  21b967372b521f607c0a119f425931ec  move-if-change
  35b0310839b35b3405a9a6ea5a6e40e3  multilib.am
! cf2baa0854f564a7785307e79f155efc  symlink-tree
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
! 03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! f436b7937562a47023e4688dd6acea58  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
! b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! a9750311dd8298b1b33c3af114dea33e  zlib/Makefile.in
! 26a915e4bc7d8d65872c524a4716e51e  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
! 5560350998c7f1171b2e343d788f5355  zlib/aclocal.m4
! 088f835e49176d2c289162fe277f1433  zlib/adler32.c
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
! 68c4c1f6c737d307d372130351b123a6  zlib/compress.c
! 79b30f4e79e7a435fae2d0ac9d92508f  zlib/configure
! 43b576b2873debe331e0f5f81468efe2  zlib/configure.ac
! 417c6b266549b949b958733f95d075ef  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
  a223bf66e23cc79eba08eadd40ee269b  zlib/contrib/ada/read.adb
! c998583cdc1fe9d7f8f6b92d1a9551a3  zlib/contrib/ada/readme.txt
! 8197c8e51a900ed2a1e98d9c1455dba0  zlib/contrib/ada/test.adb
  5d67ffc3a8cbe706d47d25f8124c72dd  zlib/contrib/ada/zlib-streams.adb
! 9659f0be883fe948d584bc969cbd8564  zlib/contrib/ada/zlib-streams.ads
  d520a330ed13ea54e7b20c8e5de64579  zlib/contrib/ada/zlib-thin.adb
  92b08ae0238ed5046f1a84959e6e8a54  zlib/contrib/ada/zlib-thin.ads
! f46bd97cccf4719989ee553daa36f8c6  zlib/contrib/ada/zlib.adb
! 71de2670f2e588b51c62e7f6a9046399  zlib/contrib/ada/zlib.ads
  38044e8f5f88e1f70ade036779d56ee8  zlib/contrib/ada/zlib.gpr
  5f6c5b314559290786a59c0320b800d5  zlib/contrib/amd64/amd64-match.S
  c28b5c0d295403ec6c6ba001238ec648  zlib/contrib/asm686/README.686
--- 158196,158276 ----
  fd1ee5c194e5759320643df81103775d  libvtv/testsuite/other-tests/temp_deriv.cc
  a28f0d44162e9d978de21ea4c82b411e  libvtv/testsuite/other-tests/temp_deriv2.cc
  fd44dfd4ba421163f0a14a74988ea97a  libvtv/testsuite/other-tests/temp_deriv3.cc
! b9b8f3185eb5f001d99b4e49f1f94874  libvtv/vtv_fail.cc
! 4fcda59807763684634a5e86bb293242  libvtv/vtv_fail.h
! 246fa8cd21c2beb8e0196f3dc31ea57f  libvtv/vtv_malloc.cc
! 44ec3dc45592dcd37f5c7b6bd4968ac4  libvtv/vtv_malloc.h
! 90fc161aeb84383a4f324c93eeeeafd9  libvtv/vtv_map.h
! 2289964a41ed28a57ecf059231f2068c  libvtv/vtv_rts.cc
! 1eff763a6dc25a5ca06a25b28c93cb14  libvtv/vtv_rts.h
! 7b9037c02362df12dae5848fa499656e  libvtv/vtv_set.h
! f0dc1a91e6683829fe64913f5ff806b8  libvtv/vtv_utils.cc
! 534c98ba47a56c08d77208f4c40a69fc  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  2d10540be0b9516e14daf48616877aad  ltmain.sh
! fcf3e1881fc0cd0db5e564d4b37129a0  lto-plugin/ChangeLog
  aced0d5ba993307440be577533b64eb3  lto-plugin/Makefile.am
! 92f6f16bc389d92c31885942b6b0f390  lto-plugin/Makefile.in
! 79b337b8e2e684d93cd124b348d1261a  lto-plugin/aclocal.m4
  26e3d7e6d62bd000d0ad9db3b610e91c  lto-plugin/config.h.in
! b386dde9241d1c015a642d8ab491fa30  lto-plugin/configure
  40efd97088318d4823aab5e72c85acd0  lto-plugin/configure.ac
! ed38c9195aacdc6bf822aae8efb3767b  lto-plugin/lto-plugin.c
  d00a1ca9cd8ba450f1a1028fd3e60dc3  lto-plugin/lto-plugin.map
  dee72a6a60e99528b0d17bf3ff9a1e15  ltoptions.m4
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 04bf09ef34da593b8167afac026a20eb  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  507e832af5f2d63b8a78eef217c807a7  maintainer-scripts/branch_changer.py
  c819510f0d438149c1518bda7b165ac4  maintainer-scripts/bugzilla-close-candidate.py
! 4768ac1c11fd5f6d1ff3384bdf7cb38a  maintainer-scripts/crontab
  c67f943b672b0dc1c628ebb0e2df97a3  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
! c54146fad8d652b15279dc9ef7a83901  maintainer-scripts/update_web_docs_git
! f96ea8872725419d57ba3089658c607e  maintainer-scripts/update_web_docs_libstdcxx_git
  5f2a276ee7b8decec541391229d03591  missing
  fbe2467afef81c41c166173adeb0ee20  mkdep
  82b7b70a9845ee61a01f20b29dd2df2c  mkinstalldirs
  21b967372b521f607c0a119f425931ec  move-if-change
  35b0310839b35b3405a9a6ea5a6e40e3  multilib.am
! d04558295b99a88449ce099b34342bc5  symlink-tree
  40bb1f4ce4a60a36d1ec50d66aeed4d1  test-driver
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
! c4b157dd71edcc1b9b2cc9ea24b49694  zlib/CMakeLists.txt
! 6e00b47c395063b6ab169148353956d7  zlib/ChangeLog
  f10e5e9394787b288e91fed29533720a  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
! b1d66913edd014b838cb18769d4fe7c6  zlib/FAQ
  3b6b6f9e88f2319b75e6ccb8c2823b13  zlib/INDEX
+ b51a40671bc46e961c0498897742c0b8  zlib/LICENSE
  9e808ecd2d75fc797d09e47f0982c345  zlib/Makefile.am
! 8f7bb8ebdbc9b0c32409e3443d31eb85  zlib/Makefile.in
! 0eef9e306e731d76dd46562154e247f6  zlib/README
  004a8c34eba1b805f836a09dd4759f34  zlib/acinclude.m4
! e89744f68241daec40b74b013b5e67a9  zlib/aclocal.m4
! cea51e08d9b176c6bf8b5820169d4102  zlib/adler32.c
  f16cd4621f5561cf147b5e56a8af1946  zlib/amiga/Makefile.pup
  315c9e3e7dd1d24aeb9d6bc55b7de5fd  zlib/amiga/Makefile.sas
! b0b5688c87d809bb32d0923dbef28ee6  zlib/compress.c
! 69fff112f96b111b9a862042a70c3d14  zlib/configure
! 5a7530d5dea3e90a954fde9b65cb7982  zlib/configure.ac
! 430971321023127490ca5e9b05fcb924  zlib/contrib/README.contrib
  cd14a97dd8a0613bb1244a68c0c764d6  zlib/contrib/ada/buffer_demo.adb
  20f2b8d64f3507ea0eb67bf4be048599  zlib/contrib/ada/mtest.adb
  a223bf66e23cc79eba08eadd40ee269b  zlib/contrib/ada/read.adb
! 56fd350f8566a9e48200470858a20bfa  zlib/contrib/ada/readme.txt
! 259320b447cd163e3cab1cb7f9bf3dd2  zlib/contrib/ada/test.adb
  5d67ffc3a8cbe706d47d25f8124c72dd  zlib/contrib/ada/zlib-streams.adb
! 5ebbb8f65bede7967c9500c9863d5376  zlib/contrib/ada/zlib-streams.ads
  d520a330ed13ea54e7b20c8e5de64579  zlib/contrib/ada/zlib-thin.adb
  92b08ae0238ed5046f1a84959e6e8a54  zlib/contrib/ada/zlib-thin.ads
! e2ea4015bf515dbd8c8edd91e89008fa  zlib/contrib/ada/zlib.adb
! f429ac548874fe6c4ea738ca30ca4f5f  zlib/contrib/ada/zlib.ads
  38044e8f5f88e1f70ade036779d56ee8  zlib/contrib/ada/zlib.gpr
  5f6c5b314559290786a59c0320b800d5  zlib/contrib/amd64/amd64-match.S
  c28b5c0d295403ec6c6ba001238ec648  zlib/contrib/asm686/README.686
*************** c28b5c0d295403ec6c6ba001238ec648  zlib/c
*** 143870,143917 ****
  5cd923d6c5e717cdc43180aaa2eeed18  zlib/contrib/blast/Makefile
  b93c34189a9302e6f43c53c7d0277637  zlib/contrib/blast/README
  fc91693deab323a4810a4cbd3c923c4a  zlib/contrib/blast/blast.c
! aa831d52e70bab6b0319724628e4acce  zlib/contrib/blast/blast.h
  f8dd3560a13a68bd15f5ca5a53c94ce9  zlib/contrib/blast/test.pk
  1201a93782f0542d6fbf5134c1a5a4c6  zlib/contrib/blast/test.txt
! bcc04a52a768c648243ede04a1d417ac  zlib/contrib/delphi/ZLib.pas
  b02c46423595bd6358de3b7c5a148a88  zlib/contrib/delphi/ZLibConst.pas
  e43e458c50d36075813a1533d05a0bdc  zlib/contrib/delphi/readme.txt
  b2cc80e48f2aa69be40b6f52ba3480c4  zlib/contrib/delphi/zlibd32.mak
  b1aaa7c52472b3cb4bc9ffd50de23c4c  zlib/contrib/dotzlib/DotZLib.build
! f8b0da2a5ad0018962542d37e28b7e24  zlib/contrib/dotzlib/DotZLib.chm
  46821b590c4a11eab8409b1d3f1c6fca  zlib/contrib/dotzlib/DotZLib.sln
  23d0d7c18846fc31655b6aa89b7c8038  zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs
! d01b3cb2e75da9b15f05b92b42f6bd33  zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs
  0f21c8a8e81b9409c3cc82200210b977  zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs
! 24dc08da7a2f4ae283334414effe4342  zlib/contrib/dotzlib/DotZLib/CodecBase.cs
  1fdc6f77f6fcf582ab011646db1b8080  zlib/contrib/dotzlib/DotZLib/Deflater.cs
  250192c134de2a3c9c1d11eaa490bce1  zlib/contrib/dotzlib/DotZLib/DotZLib.cs
  1549ce82a2662e77a22625f68c0a5d36  zlib/contrib/dotzlib/DotZLib/DotZLib.csproj
! 0c83e2409077960456b040ce13fa1fd4  zlib/contrib/dotzlib/DotZLib/GZipStream.cs
  6071d8412268ff9765540c491a26de1a  zlib/contrib/dotzlib/DotZLib/Inflater.cs
! 7bd54b47c37a88cc11c8e92c89be5a66  zlib/contrib/dotzlib/DotZLib/UnitTests.cs
  81543b22c36f10d20ac9712f8d80ef8d  zlib/contrib/dotzlib/LICENSE_1_0.txt
! 1f20f3168ee63d90de033edac2ce383c  zlib/contrib/dotzlib/readme.txt
  5e772d7302475e5473d0c4c57b9861e8  zlib/contrib/gcc_gvmat64/gvmat64.S
  84ff1d06483d3da2af928cddcab88a1b  zlib/contrib/infback9/README
! 23ff5edec0817da303cb1294c1e4205c  zlib/contrib/infback9/infback9.c
! 52b1ed99960d3ed7ed60cd20295e64a8  zlib/contrib/infback9/infback9.h
  1558f49aeca6376b7aa331add59e0e06  zlib/contrib/infback9/inffix9.h
  8a4de1bca6c4182d025ea55062d125d9  zlib/contrib/infback9/inflate9.h
! 24ad6e3224225202cc5d359440c2f4d9  zlib/contrib/infback9/inftree9.c
! be5cf855a19b76feb28468e5b46145b7  zlib/contrib/infback9/inftree9.h
  06aaf02bb8b5a73503774d78760b191f  zlib/contrib/inflate86/inffas86.c
  56cc7e752a85f9d6489892aad226976b  zlib/contrib/inflate86/inffast.S
  a20e40dae1e8b28ef2ec9ed98fdc8a03  zlib/contrib/iostream/test.cpp
  a73c28679044fdf0a8057c5193db8da0  zlib/contrib/iostream/zfstream.cpp
  93f90ecc4d5299d820c3da08f7c7e7d2  zlib/contrib/iostream/zfstream.h
! 446f6bce2e16dfd9163982c3701f3e91  zlib/contrib/iostream2/zstream.h
  d32476bde4e6d5f889092fdff6f8cdb0  zlib/contrib/iostream2/zstream_test.cpp
  7ec7295bc3b6fe132dba702e0f1f8892  zlib/contrib/iostream3/README
  06be56f0740f2a8dd9b9e04824709ad8  zlib/contrib/iostream3/TODO
  8e843c6f8614b260b153091edf9af3ec  zlib/contrib/iostream3/test.cc
  dda5e85498fe3936fabd955b5504c74e  zlib/contrib/iostream3/zfstream.cc
! 938f58c179fabf6ff9ffb85395ada81f  zlib/contrib/iostream3/zfstream.h
  94027d9beeb5a59503ac3978f9999e90  zlib/contrib/masmx64/bld_ml64.bat
  43cb3b368ada48e0ca4608ddb7df69e6  zlib/contrib/masmx64/gvmat64.asm
  8049971777ec44ca48f3043d9c4d1192  zlib/contrib/masmx64/gvmat64.obj
--- 158278,158325 ----
  5cd923d6c5e717cdc43180aaa2eeed18  zlib/contrib/blast/Makefile
  b93c34189a9302e6f43c53c7d0277637  zlib/contrib/blast/README
  fc91693deab323a4810a4cbd3c923c4a  zlib/contrib/blast/blast.c
! dca9f0033b73952ac96892934a231bed  zlib/contrib/blast/blast.h
  f8dd3560a13a68bd15f5ca5a53c94ce9  zlib/contrib/blast/test.pk
  1201a93782f0542d6fbf5134c1a5a4c6  zlib/contrib/blast/test.txt
! a7309a92dea9415a03276467c4273eb7  zlib/contrib/delphi/ZLib.pas
  b02c46423595bd6358de3b7c5a148a88  zlib/contrib/delphi/ZLibConst.pas
  e43e458c50d36075813a1533d05a0bdc  zlib/contrib/delphi/readme.txt
  b2cc80e48f2aa69be40b6f52ba3480c4  zlib/contrib/delphi/zlibd32.mak
  b1aaa7c52472b3cb4bc9ffd50de23c4c  zlib/contrib/dotzlib/DotZLib.build
! 87982cfd077364bc596aecebb7668297  zlib/contrib/dotzlib/DotZLib.chm
  46821b590c4a11eab8409b1d3f1c6fca  zlib/contrib/dotzlib/DotZLib.sln
  23d0d7c18846fc31655b6aa89b7c8038  zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs
! a1829b89dae07bee4569915a2e2b3c08  zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs
  0f21c8a8e81b9409c3cc82200210b977  zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs
! cba5f79c7d9b36ada486a2c6e8408807  zlib/contrib/dotzlib/DotZLib/CodecBase.cs
  1fdc6f77f6fcf582ab011646db1b8080  zlib/contrib/dotzlib/DotZLib/Deflater.cs
  250192c134de2a3c9c1d11eaa490bce1  zlib/contrib/dotzlib/DotZLib/DotZLib.cs
  1549ce82a2662e77a22625f68c0a5d36  zlib/contrib/dotzlib/DotZLib/DotZLib.csproj
! 81f5d08e398fac564a74eb7bdeeb011b  zlib/contrib/dotzlib/DotZLib/GZipStream.cs
  6071d8412268ff9765540c491a26de1a  zlib/contrib/dotzlib/DotZLib/Inflater.cs
! 700e18991368fbd615b8e7be80776f0a  zlib/contrib/dotzlib/DotZLib/UnitTests.cs
  81543b22c36f10d20ac9712f8d80ef8d  zlib/contrib/dotzlib/LICENSE_1_0.txt
! 75fbd767c489c8745faca090f9fbfe20  zlib/contrib/dotzlib/readme.txt
  5e772d7302475e5473d0c4c57b9861e8  zlib/contrib/gcc_gvmat64/gvmat64.S
  84ff1d06483d3da2af928cddcab88a1b  zlib/contrib/infback9/README
! 216b1cea3c43bcd506508d5b87e15435  zlib/contrib/infback9/infback9.c
! b9829ce80f3fb463868c65caba5390a7  zlib/contrib/infback9/infback9.h
  1558f49aeca6376b7aa331add59e0e06  zlib/contrib/infback9/inffix9.h
  8a4de1bca6c4182d025ea55062d125d9  zlib/contrib/infback9/inflate9.h
! a1e1215d8464e715fd1d7515ef282433  zlib/contrib/infback9/inftree9.c
! 0a9eabc128125a5dca9289cc0aa3e3aa  zlib/contrib/infback9/inftree9.h
  06aaf02bb8b5a73503774d78760b191f  zlib/contrib/inflate86/inffas86.c
  56cc7e752a85f9d6489892aad226976b  zlib/contrib/inflate86/inffast.S
  a20e40dae1e8b28ef2ec9ed98fdc8a03  zlib/contrib/iostream/test.cpp
  a73c28679044fdf0a8057c5193db8da0  zlib/contrib/iostream/zfstream.cpp
  93f90ecc4d5299d820c3da08f7c7e7d2  zlib/contrib/iostream/zfstream.h
! a980b61c1e8be68d5cdb1236ba6b43e7  zlib/contrib/iostream2/zstream.h
  d32476bde4e6d5f889092fdff6f8cdb0  zlib/contrib/iostream2/zstream_test.cpp
  7ec7295bc3b6fe132dba702e0f1f8892  zlib/contrib/iostream3/README
  06be56f0740f2a8dd9b9e04824709ad8  zlib/contrib/iostream3/TODO
  8e843c6f8614b260b153091edf9af3ec  zlib/contrib/iostream3/test.cc
  dda5e85498fe3936fabd955b5504c74e  zlib/contrib/iostream3/zfstream.cc
! 026a2ebf7ad6ebe01682a50b931f29bb  zlib/contrib/iostream3/zfstream.h
  94027d9beeb5a59503ac3978f9999e90  zlib/contrib/masmx64/bld_ml64.bat
  43cb3b368ada48e0ca4608ddb7df69e6  zlib/contrib/masmx64/gvmat64.asm
  8049971777ec44ca48f3043d9c4d1192  zlib/contrib/masmx64/gvmat64.obj
*************** b71c12c57e5a63630a759e728e92668e  zlib/c
*** 143925,144054 ****
  1ddb7c4061d8a9c96346d0eac2eb5c77  zlib/contrib/masmx86/inffas32.obj
  84c3c6d7025dfd97ad53b9dd93768f54  zlib/contrib/masmx86/match686.asm
  a809d4d52fc0a9d792b0d4e3c557836c  zlib/contrib/masmx86/readme.txt
! 064c9424ffab4af58c685140bb0fc3a0  zlib/contrib/minizip/Makefile
  3a50713bdffd399cba168843314850f4  zlib/contrib/minizip/Makefile.am
! ec302a2b5e19af31263ce77260dd49d0  zlib/contrib/minizip/MiniZip64_Changes.txt
  ab61e7d58c5c7114a6c531ce36ccc3e5  zlib/contrib/minizip/MiniZip64_info.txt
! 41b1495a0615dc17dbc5f4c74941fc63  zlib/contrib/minizip/configure.ac
! 6e72c46776f0db175ec8f15144a3c250  zlib/contrib/minizip/crypt.h
! e8a6cc43207a37d631d9e90bbec6e6ed  zlib/contrib/minizip/ioapi.c
! 7d6c0585719ba47fd356795801befc6d  zlib/contrib/minizip/ioapi.h
! 840ce05a6f75ee1683460b9873b120b6  zlib/contrib/minizip/iowin32.c
! 818e2950cc00d787eaa9b710007dc53f  zlib/contrib/minizip/iowin32.h
  7db484a6aa910e703838859f33867d02  zlib/contrib/minizip/make_vms.com
! 254fe0695464d4cbbaa1fdc0c83c6a3c  zlib/contrib/minizip/miniunz.c
  1f4ccb34373f0b46ae4fa7f3c731ae3b  zlib/contrib/minizip/miniunzip.1
  c7758789cc7e9e99f07d0e758475ea28  zlib/contrib/minizip/minizip.1
! e2a4a0c1cad4ceb1f77fb3b7e813bb35  zlib/contrib/minizip/minizip.c
  bcbe781316bdbd05584063176b90d672  zlib/contrib/minizip/minizip.pc.in
! 174c6f2a32dad5023616fc45855d8c59  zlib/contrib/minizip/mztools.c
  7caac7503f8f002d61e0f0e5b7f33bc6  zlib/contrib/minizip/mztools.h
! e6ee69414e1309f0669ae661ca56a7b3  zlib/contrib/minizip/unzip.c
! 11ae6a9d654c95c47da55fe16772a1e5  zlib/contrib/minizip/unzip.h
! 4fb98be7d5558dd0e8bb210c18f2ba1e  zlib/contrib/minizip/zip.c
! e1495f151b00503a64aae7b375cc3b80  zlib/contrib/minizip/zip.h
  6e41517081b62c5045e67146c2b5c3ec  zlib/contrib/pascal/example.pas
  6f8616a2ea8e227457c9f191b4c71018  zlib/contrib/pascal/readme.txt
  b2cc80e48f2aa69be40b6f52ba3480c4  zlib/contrib/pascal/zlibd32.mak
! 026e00db1f7988e09ba4b6069adc3957  zlib/contrib/pascal/zlibpas.pas
  82987a599277217cedc2ff78b2c3a63d  zlib/contrib/puff/Makefile
! 948659135181da512e6c37dd759d142d  zlib/contrib/puff/README
! b34af8b5903cf6dcd5c9e665cfed84e1  zlib/contrib/puff/puff.c
  7ecbeeb67e09a843961187673974f86d  zlib/contrib/puff/puff.h
! 897a1a43df17f320444e8d386fecf1c0  zlib/contrib/puff/pufftest.c
! b1319227312f62c24d98d619b417a43b  zlib/contrib/puff/zeros.raw
! 9e59472f7750d8d727a5cbdf94d8ce2b  zlib/contrib/testzlib/testzlib.c
  9fc09497cd386635010c5b665cac77b4  zlib/contrib/testzlib/testzlib.txt
  45070687ecca4a8953f666b91a4b54f4  zlib/contrib/untgz/Makefile
  d3be2a78c4fd759d1578b6d91f8430c1  zlib/contrib/untgz/Makefile.msc
! 1ff457742eb3588db60fd059d56a5dd5  zlib/contrib/untgz/untgz.c
! 59ccc97a1d79963cdec10a7005f21133  zlib/contrib/vstudio/readme.txt
  fa427177a54ab86e4b126116f34ecf8a  zlib/contrib/vstudio/vc10/miniunz.vcxproj
! 048091db0ef98c95b4674d4d4a46c964  zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters
  5b6ea18f33d45f32c7c52f9b63c56d73  zlib/contrib/vstudio/vc10/minizip.vcxproj
! 72131998544b1d1ce5c35fff7ae69db0  zlib/contrib/vstudio/vc10/minizip.vcxproj.filters
! 0879c03e97afa7051526dd972718b475  zlib/contrib/vstudio/vc10/testzlib.vcxproj
! 02632e0bdde13c80630d75ad130af599  zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters
  e6abb2e275cb6d056b0b49ffca125fc4  zlib/contrib/vstudio/vc10/testzlibdll.vcxproj
! 35e42b8be068e38e6642a3bde8d20299  zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
! 7e770b6d4d11f5a912458d5f5cd8e7b8  zlib/contrib/vstudio/vc10/zlib.rc
! 002fa9b3f7f92ca6c8558474d291df19  zlib/contrib/vstudio/vc10/zlibstat.vcxproj
! fa684ecb9b7ddd26f01523bce078b18f  zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters
! 2271100b7757c4693b11cf0774e4db5e  zlib/contrib/vstudio/vc10/zlibvc.def
  0346af46dff2a59b22e51aaf67930201  zlib/contrib/vstudio/vc10/zlibvc.sln
! ca5ae9c4b8558f8c4d303b46e694a8f2  zlib/contrib/vstudio/vc10/zlibvc.vcxproj
! 16267b153514d3f39d1b7c48527372ee  zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters
  86f17e0090299a0470d5ee59073406db  zlib/contrib/vstudio/vc11/miniunz.vcxproj
  c4b2a63a1f59196dc1b105c89dcb4816  zlib/contrib/vstudio/vc11/minizip.vcxproj
! 33a7b27fe1d9aec556781db0c4ecb5bc  zlib/contrib/vstudio/vc11/testzlib.vcxproj
  cd0082879b0e215569c605266a8afaa0  zlib/contrib/vstudio/vc11/testzlibdll.vcxproj
! 7e770b6d4d11f5a912458d5f5cd8e7b8  zlib/contrib/vstudio/vc11/zlib.rc
! 68876762bd4a6a95a6caa2a9ea357de8  zlib/contrib/vstudio/vc11/zlibstat.vcxproj
! 2271100b7757c4693b11cf0774e4db5e  zlib/contrib/vstudio/vc11/zlibvc.def
  6f61e1b1973401a8d09a3883bc1d4ecd  zlib/contrib/vstudio/vc11/zlibvc.sln
! 67a8a72530d1797e2f4711115a19b3a2  zlib/contrib/vstudio/vc11/zlibvc.vcxproj
  71cfe0a7366431ef50ac350f898e0a61  zlib/contrib/vstudio/vc12/miniunz.vcxproj
  61959b86fba2f58c84bc9a441ad0cbe0  zlib/contrib/vstudio/vc12/minizip.vcxproj
! fa8301e3d625a36575542248d14c94e3  zlib/contrib/vstudio/vc12/testzlib.vcxproj
  d3121fbcce2ad9726a34ab2992c02b18  zlib/contrib/vstudio/vc12/testzlibdll.vcxproj
! e3255b9ba8a2e6772034a7f2779547dd  zlib/contrib/vstudio/vc12/zlib.rc
! f34ae747f6d75f8417ffb70a71c102a3  zlib/contrib/vstudio/vc12/zlibstat.vcxproj
! 2271100b7757c4693b11cf0774e4db5e  zlib/contrib/vstudio/vc12/zlibvc.def
  ab4ae9b904012b1566ee5a307613d2aa  zlib/contrib/vstudio/vc12/zlibvc.sln
! 5b779ef8ec6c75419d1fee9a6ebaa954  zlib/contrib/vstudio/vc12/zlibvc.vcxproj
  c1bf6aeed421962812df7bc8d9c42632  zlib/contrib/vstudio/vc14/miniunz.vcxproj
  1f9392b57090712e57df751932b9cbe6  zlib/contrib/vstudio/vc14/minizip.vcxproj
! b3fc89a41918b28d8757a1d25f0ce629  zlib/contrib/vstudio/vc14/testzlib.vcxproj
  b0e3975c1939940c9566847afc003a9c  zlib/contrib/vstudio/vc14/testzlibdll.vcxproj
! e3255b9ba8a2e6772034a7f2779547dd  zlib/contrib/vstudio/vc14/zlib.rc
! efcc2393089500f1776f71fd5db5cc86  zlib/contrib/vstudio/vc14/zlibstat.vcxproj
! 2271100b7757c4693b11cf0774e4db5e  zlib/contrib/vstudio/vc14/zlibvc.def
  5198a1fde5c1e369764dcba9a08ee102  zlib/contrib/vstudio/vc14/zlibvc.sln
! 68f9d89ce57252e0a4d2975fd1cc862f  zlib/contrib/vstudio/vc14/zlibvc.vcxproj
! 39acac8b09fad25c73403d812887cfc9  zlib/contrib/vstudio/vc9/miniunz.vcproj
! a70e977e002d0df86a123ba7b02bed4d  zlib/contrib/vstudio/vc9/minizip.vcproj
! a2ab8c8ebdca681348ab0d721f4f0ea9  zlib/contrib/vstudio/vc9/testzlib.vcproj
! 3bd3847ddb393360355d1012338c638e  zlib/contrib/vstudio/vc9/testzlibdll.vcproj
! 7e770b6d4d11f5a912458d5f5cd8e7b8  zlib/contrib/vstudio/vc9/zlib.rc
! 2324ada784731ab79fd384114d73c727  zlib/contrib/vstudio/vc9/zlibstat.vcproj
! 2271100b7757c4693b11cf0774e4db5e  zlib/contrib/vstudio/vc9/zlibvc.def
  b34a55b36004333a0bec3a5da1ff25a3  zlib/contrib/vstudio/vc9/zlibvc.sln
! f3fd4bfc77606539f961b0aee7e57c4f  zlib/contrib/vstudio/vc9/zlibvc.vcproj
! 2bcf6a6edf7458057bcce4a84becf33b  zlib/crc32.c
! f28d16b67efecdfafa0d816a7d982124  zlib/crc32.h
! 18d61f3b741431bbc971340507f413e2  zlib/deflate.c
! c29c6b92cebd4ce2a599b33325919033  zlib/deflate.h
! 63be46f443f80cc9081ed765198d4b8a  zlib/doc/algorithm.txt
  c9680de1a6b8939e16fd5e2a4f4785b8  zlib/doc/rfc1950.txt
  fe89c9b2d3b621452c4f868590635c5f  zlib/doc/rfc1951.txt
  7c4ee539faa6c908c3860588df424be1  zlib/doc/rfc1952.txt
! 33a7749453d872da575e01c2c62fe877  zlib/doc/txtvsbin.txt
  08310c11af1d0076d133415431f659ef  zlib/example.c
! 7d040e322c50440b203bd70b3a448470  zlib/examples/README.examples
! 6ac79bd8913b81b91a5dfbbe372331dc  zlib/examples/enough.c
! 4061e63cf68f479ebbd4bab90178a774  zlib/examples/fitblk.c
! 3ae3e8df2161c8d00d586396fc419c2b  zlib/examples/gun.c
! cba90a61087e9d9c6bbb45a005543468  zlib/examples/gzappend.c
  d6c05757d17814110c93151ab5c1c910  zlib/examples/gzjoin.c
! 2140627edcd840671f03eced0741c520  zlib/examples/gzlog.c
! 7d497747a90370d3b13320bbf97e65dc  zlib/examples/gzlog.h
! f4912cf5a1ade2e862e193983c02b3ee  zlib/examples/zlib_how.html
  2baa24dfcde30e5378ebc823b9546fc5  zlib/examples/zpipe.c
! b21de2ad7c6a8dd26d58c831970e4efe  zlib/examples/zran.c
! 29d02cff161bde3e4e717b25a2ab7050  zlib/gzclose.c
! e2dee880a39c7781e9902c5db8f36e10  zlib/gzguts.h
! 2c08acd5014596272031fdd1a36d0f1c  zlib/gzlib.c
! c999b14aab6322655059b2f1146fb935  zlib/gzread.c
! a407d2308188e881b49c32d586d0da82  zlib/gzwrite.c
! f2adcadab3504b146be9c4928821f233  zlib/infback.c
! 20d7b26f5ae64f4e8501f846beab550c  zlib/inffast.c
! f3669099d3f571dbc0426401ed5f50e3  zlib/inffast.h
  7fa3e91804601b6618c915b76a8dc332  zlib/inffixed.h
! c892c303a1be104ed0efb628e18ed85a  zlib/inflate.c
! 12c1f3adaf005c8a4cfb629f2e266d30  zlib/inflate.h
! 34a634c4c6e1de2e357f18c170e6b96c  zlib/inftrees.c
! ec87be89b9bcca8ced80a70f857e823b  zlib/inftrees.h
! 0e5c38a1ec38448cfc594efc152d32f7  zlib/make_vms.com
  86734dafdef3e9a542a7c666a91ac591  zlib/minigzip.c
  80adf0a73c836697ef02cd8cc19733cd  zlib/msdos/Makefile.bor
  ddcc308923bda1742d6c6638367da0dd  zlib/msdos/Makefile.dj2
--- 158333,158476 ----
  1ddb7c4061d8a9c96346d0eac2eb5c77  zlib/contrib/masmx86/inffas32.obj
  84c3c6d7025dfd97ad53b9dd93768f54  zlib/contrib/masmx86/match686.asm
  a809d4d52fc0a9d792b0d4e3c557836c  zlib/contrib/masmx86/readme.txt
! 71439fbb5ac0e3bf10480ce2ba363ce1  zlib/contrib/minizip/Makefile
  3a50713bdffd399cba168843314850f4  zlib/contrib/minizip/Makefile.am
! 684e47cee10f0ee7595b013a55899367  zlib/contrib/minizip/MiniZip64_Changes.txt
  ab61e7d58c5c7114a6c531ce36ccc3e5  zlib/contrib/minizip/MiniZip64_info.txt
! 57f5e5f5f524933de61a4d473edf550b  zlib/contrib/minizip/configure.ac
! 7d6e31d8bfa4e49988a8cff499a8301a  zlib/contrib/minizip/crypt.h
! 0bb4267f9320e96ad7bf9c7dbe4c7912  zlib/contrib/minizip/ioapi.c
! c37471cc86ee6d146561c0fb0aface33  zlib/contrib/minizip/ioapi.h
! cddf0dd390490ad1b645355439342b04  zlib/contrib/minizip/iowin32.c
! f07668b6920ec3be64c5128ee1092004  zlib/contrib/minizip/iowin32.h
  7db484a6aa910e703838859f33867d02  zlib/contrib/minizip/make_vms.com
! 44b3f0c2720e51f504ff25f20191ce08  zlib/contrib/minizip/miniunz.c
  1f4ccb34373f0b46ae4fa7f3c731ae3b  zlib/contrib/minizip/miniunzip.1
  c7758789cc7e9e99f07d0e758475ea28  zlib/contrib/minizip/minizip.1
! 0f051d0e1de49ea5ae5f4c556d9c0943  zlib/contrib/minizip/minizip.c
  bcbe781316bdbd05584063176b90d672  zlib/contrib/minizip/minizip.pc.in
! 553f09d6c21d3bc8217474a1dd9c6b72  zlib/contrib/minizip/mztools.c
  7caac7503f8f002d61e0f0e5b7f33bc6  zlib/contrib/minizip/mztools.h
! 98defebfb3b5bb4fcac808d8e98563fe  zlib/contrib/minizip/unzip.c
! d0e3adfed5ebc36b34d7affacf971cbd  zlib/contrib/minizip/unzip.h
! de527951f617e879d9d25901a57f3241  zlib/contrib/minizip/zip.c
! 2656e5de21d13afb6fa1cbf5cab4142e  zlib/contrib/minizip/zip.h
! 5be809d7a6da5f1cc03a46c99713c19a  zlib/contrib/nuget/nuget.csproj
! b19a9085d229895ec2d70126567865af  zlib/contrib/nuget/nuget.sln
  6e41517081b62c5045e67146c2b5c3ec  zlib/contrib/pascal/example.pas
  6f8616a2ea8e227457c9f191b4c71018  zlib/contrib/pascal/readme.txt
  b2cc80e48f2aa69be40b6f52ba3480c4  zlib/contrib/pascal/zlibd32.mak
! 909a2a8bb982ca5529daa12fcb1ffb78  zlib/contrib/pascal/zlibpas.pas
  82987a599277217cedc2ff78b2c3a63d  zlib/contrib/puff/Makefile
! 823894283fb2ea8dd0738fb95b442741  zlib/contrib/puff/README
! 2552494978913ab65679c523fe7810df  zlib/contrib/puff/puff.c
  7ecbeeb67e09a843961187673974f86d  zlib/contrib/puff/puff.h
! d5014d8ae50ac45670326744ee04a807  zlib/contrib/puff/pufftest.c
! ae1471955182e98038420cdd6a4ad028  zlib/contrib/puff/zeros.raw
! e92bf1aa62cf345dbdb818fbd7ba5d7e  zlib/contrib/testzlib/testzlib.c
  9fc09497cd386635010c5b665cac77b4  zlib/contrib/testzlib/testzlib.txt
  45070687ecca4a8953f666b91a4b54f4  zlib/contrib/untgz/Makefile
  d3be2a78c4fd759d1578b6d91f8430c1  zlib/contrib/untgz/Makefile.msc
! c30fb4cc963ba51ad605f83e6488381b  zlib/contrib/untgz/untgz.c
! d91683ff3bbd7d67145e4ed16804c247  zlib/contrib/vstudio/readme.txt
  fa427177a54ab86e4b126116f34ecf8a  zlib/contrib/vstudio/vc10/miniunz.vcxproj
! 4f8b543ab50ca5d4cb8b01637319e23f  zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters
  5b6ea18f33d45f32c7c52f9b63c56d73  zlib/contrib/vstudio/vc10/minizip.vcxproj
! bec08793b4747bd1dd5543b7e49b89cd  zlib/contrib/vstudio/vc10/minizip.vcxproj.filters
! bf29705723384e841c1b7bab0bfba722  zlib/contrib/vstudio/vc10/testzlib.vcxproj
! 17b194ba127842cea06f0a7f8bc79459  zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters
  e6abb2e275cb6d056b0b49ffca125fc4  zlib/contrib/vstudio/vc10/testzlibdll.vcxproj
! 84d1b9a40fada7c7facf97852d9b4538  zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters
! 53408b8b33a65cc4bb0c0546fd82b6fe  zlib/contrib/vstudio/vc10/zlib.rc
! 524e6272eedb2e701dfc2f71d7c7bfc5  zlib/contrib/vstudio/vc10/zlibstat.vcxproj
! 25e16e78ec399eed4e2cb58031d5b1ed  zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters
! 6938009466e2e12bf2899a03e5beae5c  zlib/contrib/vstudio/vc10/zlibvc.def
  0346af46dff2a59b22e51aaf67930201  zlib/contrib/vstudio/vc10/zlibvc.sln
! e081e96b5b4255cac37c7cb32b95ae03  zlib/contrib/vstudio/vc10/zlibvc.vcxproj
! 23ec15fb541db0d3a36abdaa890f1ad5  zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters
  86f17e0090299a0470d5ee59073406db  zlib/contrib/vstudio/vc11/miniunz.vcxproj
  c4b2a63a1f59196dc1b105c89dcb4816  zlib/contrib/vstudio/vc11/minizip.vcxproj
! 6357273362d20fea93f11226630339f9  zlib/contrib/vstudio/vc11/testzlib.vcxproj
  cd0082879b0e215569c605266a8afaa0  zlib/contrib/vstudio/vc11/testzlibdll.vcxproj
! 53408b8b33a65cc4bb0c0546fd82b6fe  zlib/contrib/vstudio/vc11/zlib.rc
! e1a845b33f95984231aa9f9f42066eb3  zlib/contrib/vstudio/vc11/zlibstat.vcxproj
! 6938009466e2e12bf2899a03e5beae5c  zlib/contrib/vstudio/vc11/zlibvc.def
  6f61e1b1973401a8d09a3883bc1d4ecd  zlib/contrib/vstudio/vc11/zlibvc.sln
! 1d0cc5e77aced512ac6b51fccddeb122  zlib/contrib/vstudio/vc11/zlibvc.vcxproj
  71cfe0a7366431ef50ac350f898e0a61  zlib/contrib/vstudio/vc12/miniunz.vcxproj
  61959b86fba2f58c84bc9a441ad0cbe0  zlib/contrib/vstudio/vc12/minizip.vcxproj
! 9297dd8996b0c4ece3fe854a74fb410e  zlib/contrib/vstudio/vc12/testzlib.vcxproj
  d3121fbcce2ad9726a34ab2992c02b18  zlib/contrib/vstudio/vc12/testzlibdll.vcxproj
! 936254e02c4178d6b6dbfa22088627c9  zlib/contrib/vstudio/vc12/zlib.rc
! a87ebae529cb50f881b3cb7df3495598  zlib/contrib/vstudio/vc12/zlibstat.vcxproj
! 6938009466e2e12bf2899a03e5beae5c  zlib/contrib/vstudio/vc12/zlibvc.def
  ab4ae9b904012b1566ee5a307613d2aa  zlib/contrib/vstudio/vc12/zlibvc.sln
! fcbc8ab4bf51b24a9152d84a48012719  zlib/contrib/vstudio/vc12/zlibvc.vcxproj
  c1bf6aeed421962812df7bc8d9c42632  zlib/contrib/vstudio/vc14/miniunz.vcxproj
  1f9392b57090712e57df751932b9cbe6  zlib/contrib/vstudio/vc14/minizip.vcxproj
! 44c95beb2c5aa8727d9cac91fe9bdfbf  zlib/contrib/vstudio/vc14/testzlib.vcxproj
  b0e3975c1939940c9566847afc003a9c  zlib/contrib/vstudio/vc14/testzlibdll.vcxproj
! 936254e02c4178d6b6dbfa22088627c9  zlib/contrib/vstudio/vc14/zlib.rc
! 67953beb7f2d91eae736d3d3bb530b4a  zlib/contrib/vstudio/vc14/zlibstat.vcxproj
! 6938009466e2e12bf2899a03e5beae5c  zlib/contrib/vstudio/vc14/zlibvc.def
  5198a1fde5c1e369764dcba9a08ee102  zlib/contrib/vstudio/vc14/zlibvc.sln
! bc290fbbe233c75386c46036caad0e30  zlib/contrib/vstudio/vc14/zlibvc.vcxproj
! b9870ace6a67ec6d7fd3e3260f902a63  zlib/contrib/vstudio/vc17/miniunz.vcxproj
! 1ab48438fe7e949d68f8fd143330848f  zlib/contrib/vstudio/vc17/minizip.vcxproj
! f7f1a3efb65a99836d12aa98af41e0a5  zlib/contrib/vstudio/vc17/testzlib.vcxproj
! a52ba225b46e2bb2a2d4ade9de6d6dd9  zlib/contrib/vstudio/vc17/testzlibdll.vcxproj
! 936254e02c4178d6b6dbfa22088627c9  zlib/contrib/vstudio/vc17/zlib.rc
! 26cc574630315829a4b45067b76f8e23  zlib/contrib/vstudio/vc17/zlibstat.vcxproj
! daac20ac714be8950a03cc2534b8b394  zlib/contrib/vstudio/vc17/zlibvc.def
! 3c4969168a7ef11189841c5f98cf56c5  zlib/contrib/vstudio/vc17/zlibvc.sln
! f4725e77d7898c6f2fef2bef234879b4  zlib/contrib/vstudio/vc17/zlibvc.vcxproj
! b4ebff31e68cc33a1e0864585bbd6e33  zlib/contrib/vstudio/vc9/miniunz.vcproj
! c0da898a06b67f86fb602982fbe3ecb9  zlib/contrib/vstudio/vc9/minizip.vcproj
! 076c1a849d0734eee5105ea518adbe94  zlib/contrib/vstudio/vc9/testzlib.vcproj
! 33ee1ad4288fc84d46f6ed2d7934b73b  zlib/contrib/vstudio/vc9/testzlibdll.vcproj
! 53408b8b33a65cc4bb0c0546fd82b6fe  zlib/contrib/vstudio/vc9/zlib.rc
! 7982dcdb5a79dfedf4ce3df08bae49d6  zlib/contrib/vstudio/vc9/zlibstat.vcproj
! 6938009466e2e12bf2899a03e5beae5c  zlib/contrib/vstudio/vc9/zlibvc.def
  b34a55b36004333a0bec3a5da1ff25a3  zlib/contrib/vstudio/vc9/zlibvc.sln
! cf726ae7372c74bfd67502b23642df83  zlib/contrib/vstudio/vc9/zlibvc.vcproj
! 47f7b459ecb8e1cc0240d9ae8dda8e6e  zlib/crc32.c
! 0ce0ac9394905aa53ed0a915620d9e5d  zlib/crc32.h
! 66b59a69012d6f7b6367b9aaa12e6e61  zlib/deflate.c
! ee581a435edb549eafd3debd13405e10  zlib/deflate.h
! 7ab60f0d6ec3af1cc64b1e7449a47e25  zlib/doc/algorithm.txt
! c9baa8c1bdef9c01880744a6eff263d5  zlib/doc/crc-doc.1.0.pdf
  c9680de1a6b8939e16fd5e2a4f4785b8  zlib/doc/rfc1950.txt
  fe89c9b2d3b621452c4f868590635c5f  zlib/doc/rfc1951.txt
  7c4ee539faa6c908c3860588df424be1  zlib/doc/rfc1952.txt
! b70e887cd227fcbba8b3c471e93c15c9  zlib/doc/txtvsbin.txt
  08310c11af1d0076d133415431f659ef  zlib/example.c
! 040c96902b884772c422a0177ae2e818  zlib/examples/README.examples
! c7e5ea8a08ccdb2e0a956af9b4107e9a  zlib/examples/enough.c
! 8e00314ef70773107dac9dd1057e8088  zlib/examples/fitblk.c
! c0a551bb5996016a7b9a2421982e9c4d  zlib/examples/gun.c
! 10b0a6f9537900ec773061d95042eaf6  zlib/examples/gzappend.c
  d6c05757d17814110c93151ab5c1c910  zlib/examples/gzjoin.c
! 2cff130ca4a0620e9c44afbe86a4750a  zlib/examples/gzlog.c
! 340d8e0eb35d4f35d6f445f18cb06572  zlib/examples/gzlog.h
! ee00ade2ae9dec44c9d088b93fa54a0e  zlib/examples/gznorm.c
! 152c98a759a270853c06a46fecf87d73  zlib/examples/zlib_how.html
  2baa24dfcde30e5378ebc823b9546fc5  zlib/examples/zpipe.c
! 5f94bfca03e7154e199b8b2b0651ba05  zlib/examples/zran.c
! e5da691eae7d991b7cdde92b4d30b3d7  zlib/examples/zran.h
! 83049e4eaab1319f7ed94f15e7de5c4c  zlib/gzclose.c
! 87cb921cd718b1d70b1b5e53531f7877  zlib/gzguts.h
! b4425988f5aa88d1a99e3fb4383ec204  zlib/gzlib.c
! 1c8f8dfe08e58d6088a3b6c9bf4160bd  zlib/gzread.c
! fc122bb96017e7a19828e04a1b3dd564  zlib/gzwrite.c
! 1b8a0a4ebb220896e2610d292b821ce0  zlib/infback.c
! 1846b459fac461ded03f741f4953dc00  zlib/inffast.c
! 6c907e4d7c65aff48183101b66a6133b  zlib/inffast.h
  7fa3e91804601b6618c915b76a8dc332  zlib/inffixed.h
! c300e231ec51960c347b95b07345f9d7  zlib/inflate.c
! 819fb5556d0c65ba2577ee379b4641c0  zlib/inflate.h
! 605a4056f9d01d94f0d53042af8f614b  zlib/inftrees.c
! 9c8651504da6794ab1989db9a6ed082e  zlib/inftrees.h
! fc60183e7a9e7d4504888eaf7a938aa9  zlib/make_vms.com
  86734dafdef3e9a542a7c666a91ac591  zlib/minigzip.c
  80adf0a73c836697ef02cd8cc19733cd  zlib/msdos/Makefile.bor
  ddcc308923bda1742d6c6638367da0dd  zlib/msdos/Makefile.dj2
*************** bbfa7b4766eb254d816bcd7faf48f0f5  zlib/o
*** 144063,144099 ****
  cbf38eb0d95e0f43faf627cf42a680a7  zlib/old/descrip.mms
  52748c82e9464e36daec6caa3f50b7d9  zlib/old/os2/Makefile.os2
  b917eb81b8d4b72931282aeedc167f83  zlib/old/os2/zlib.def
! 94928575e535e4057290970b885627f0  zlib/old/visual-basic.txt
! cd5db617d9a470452431ef50bcd2d07d  zlib/os400/README400
! a60b56782ba1f108b3c1fa232f95fd1a  zlib/os400/bndsrc
  4d8dfda2096227d68f03499480c3740c  zlib/os400/make.sh
! 88375497cf85550425cedb3f1a0a05e8  zlib/os400/zlib.inc
! 041a9be530eca6d4b057404cf1cc9350  zlib/qnx/package.qpg
! 850825a7e5ddc45e520909406d25bdff  zlib/test/example.c
! 629a048f0edd2a18c6c18a11679628d8  zlib/test/infcover.c
! 929d15e7fc86ced153a5b0feae168b4e  zlib/test/minigzip.c
! a018d7e9e40c63ce8e1be3f6fa26e8a7  zlib/treebuild.xml
! 9ba95720f7a568bc6894ace309d78ac2  zlib/trees.c
  51fdcb3e2ccf60ca13c06920c89296a3  zlib/trees.h
! 8a3caeeacc6135dce18634b7b5da1eac  zlib/uncompr.c
  6f80451b702a08fa8d149161e1d75313  zlib/watcom/watcom_f.mak
  f6a102e1a91215f0e249b266053e9956  zlib/watcom/watcom_l.mak
! 1d9871d4ffd71645ac3d029d8de0e03a  zlib/win32/DLL_FAQ.txt
! fc5b8a38022995608b2a04fb7ebd17d7  zlib/win32/Makefile.bor
! bc2d8d3fda87e41e7f3e2536ab6ae806  zlib/win32/Makefile.gcc
! 257272e4cea1c919fe86edcdf5c2dd57  zlib/win32/Makefile.msc
! 0b80cb8a4ec18437ea653c67f466cb5b  zlib/win32/README-WIN32.txt
  41825008c400d365b2a660175bec4ad1  zlib/win32/VisualC.txt
! a71eedd908795ef5794f1d4135654415  zlib/win32/zlib.def
! 311d9cf5cbf7538b8b8120f13c6c1385  zlib/win32/zlib1.rc
! 65d06f6d5b67a82f5a06c7aee75a67c0  zlib/zconf.h
! 26ab763d924e6ffc50701c71a408ce39  zlib/zconf.h.cmakein
! 66c6b3953f574eca8b709dd5f6865745  zlib/zconf.h.in
! 8e4658ab605826672b98422b973305b6  zlib/zlib.3
! 41ed01a8629ee4eaf80dfc6562d9598d  zlib/zlib.h
! 8914872466a77551efb3898272ed98e0  zlib/zlib.map
  9d7ec0d0fe9134c725fc8b688ff673f4  zlib/zlib.pc.cmakein
  60674eee456b5cab09b25a4bfd55d533  zlib/zlib.pc.in
  381f96b09b247fbe8f4c329a89bd5bd3  zlib/zlib2ansi
! fb6a1f880ef0e3bca0dd9185e6eb283f  zlib/zutil.c
! f2a2eb9767175a34b816d7b31de0c6dc  zlib/zutil.h
--- 158485,158522 ----
  cbf38eb0d95e0f43faf627cf42a680a7  zlib/old/descrip.mms
  52748c82e9464e36daec6caa3f50b7d9  zlib/old/os2/Makefile.os2
  b917eb81b8d4b72931282aeedc167f83  zlib/old/os2/zlib.def
! a0c747d8c973438437c248dbd61c064d  zlib/old/visual-basic.txt
! 73c6bc8c4b56abe37a8e89b3b80038ec  zlib/os400/README400
! b24b51d83b153f9045943078bcf03d35  zlib/os400/bndsrc
  4d8dfda2096227d68f03499480c3740c  zlib/os400/make.sh
! 911f39f164b7cee632bc1779c6d7fab4  zlib/os400/zlib.inc
! 89640ef14aa4ecd0824d750f2031c55c  zlib/qnx/package.qpg
! 8ea99823f1d5f27d74869fdc40f8dff8  zlib/test/example.c
! 7fbf80caf15976ea2d5f5c16492da0c9  zlib/test/infcover.c
! 887e2e18f7b7d9b2dcc5d648afd1ba56  zlib/test/minigzip.c
! 51c0bb1c57a7c33c785bd17dbd1bcf5b  zlib/treebuild.xml
! 38161dcf9aaa70fb60bd9a2cb7fcc2b9  zlib/trees.c
  51fdcb3e2ccf60ca13c06920c89296a3  zlib/trees.h
! c76e0f7b934ca6695d453b1b51aa3112  zlib/uncompr.c
  6f80451b702a08fa8d149161e1d75313  zlib/watcom/watcom_f.mak
  f6a102e1a91215f0e249b266053e9956  zlib/watcom/watcom_l.mak
! 74027723067b85774db79256ce0b6f70  zlib/win32/DLL_FAQ.txt
! 63cdfd6798d79c3d181b59daa84c5df0  zlib/win32/Makefile.bor
! 14edf6fc0eb45b3e0ae5b73cef7300f5  zlib/win32/Makefile.gcc
! 4b7373caa4e587e84d56b3719bfcc288  zlib/win32/Makefile.msc
! b65e31ef529b3268367d1011a49bcc81  zlib/win32/README-WIN32.txt
  41825008c400d365b2a660175bec4ad1  zlib/win32/VisualC.txt
! 684d84fae62becb5ad9d0b4a95d262bd  zlib/win32/zlib.def
! 6ebfda6f8e9db737af5af76b5f06faa8  zlib/win32/zlib1.rc
! 055ee783ff2ea41a7e1be73baab1ee05  zlib/zconf.h
! 4975529589534dc26470cefa0c5a49c6  zlib/zconf.h.cmakein
! 055ee783ff2ea41a7e1be73baab1ee05  zlib/zconf.h.in
! d428ba236d9996649c4a52a7b6b028d9  zlib/zlib.3
! 5874aad6fe79c67e7cd79279511531de  zlib/zlib.3.pdf
! fbab4a455b2970c36a44c9464c9625e4  zlib/zlib.h
! 5bfae9ad99b730a10f0c3acff141aef1  zlib/zlib.map
  9d7ec0d0fe9134c725fc8b688ff673f4  zlib/zlib.pc.cmakein
  60674eee456b5cab09b25a4bfd55d533  zlib/zlib.pc.in
  381f96b09b247fbe8f4c329a89bd5bd3  zlib/zlib2ansi
! ef9f3b09085209c0193ab0686e1edd5b  zlib/zutil.c
! 992eed746c2cd971e8d8af2b67941e1f  zlib/zutil.h
diff -Nrcpad gcc-15.2.0/Makefile.def gcc-16.1.0-RC-20260423/Makefile.def
*** gcc-15.2.0/Makefile.def	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/Makefile.def	Thu Apr 23 11:07:32 2026
*************** target_modules = { module= zlib; bootstr
*** 205,210 ****
--- 205,211 ----
  target_modules = { module= rda; };
  target_modules = { module= libada; };
  target_modules = { module= libgm2; lib_path=.libs; };
+ target_modules = { module= libga68; lib_path=.libs; };
  target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
  target_modules = { module= libitm; lib_path=.libs; };
  target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; };
*************** flags_to_pass = { flag= GNATBIND ; };
*** 313,319 ****
  flags_to_pass = { flag= GNATMAKE ; };
  flags_to_pass = { flag= GDC ; };
  flags_to_pass = { flag= GDCFLAGS ; };
! flags_to_pass = { flag= GUILE ; };
  
  // Target tools
  flags_to_pass = { flag= AR_FOR_TARGET ; };
--- 314,321 ----
  flags_to_pass = { flag= GNATMAKE ; };
  flags_to_pass = { flag= GDC ; };
  flags_to_pass = { flag= GDCFLAGS ; };
! flags_to_pass = { flag= A68 ; };
! flags_to_pass = { flag= A68FLAGS ; };
  
  // Target tools
  flags_to_pass = { flag= AR_FOR_TARGET ; };
*************** flags_to_pass = { flag= GOC_FOR_TARGET ;
*** 330,335 ****
--- 332,339 ----
  flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; };
  flags_to_pass = { flag= GDC_FOR_TARGET ; };
  flags_to_pass = { flag= GDCFLAGS_FOR_TARGET ; };
+ flags_to_pass = { flag= A68_FOR_TARGET ; };
+ flags_to_pass = { flag= A68FLAGS_FOR_TARGET ; };
  flags_to_pass = { flag= GM2_FOR_TARGET ; };
  flags_to_pass = { flag= GM2FLAGS_FOR_TARGET ; };
  flags_to_pass = { flag= LD_FOR_TARGET ; };
*************** dependencies = { module=all-gdb; on=all-
*** 463,471 ****
--- 467,477 ----
  
  // Host modules specific to gdbserver.
  dependencies = { module=configure-gdbserver; on=all-gnulib; };
+ dependencies = { module=configure-gdbserver; on=all-libiconv; };
  dependencies = { module=all-gdbserver; on=all-gdbsupport; };
  dependencies = { module=all-gdbserver; on=all-gnulib; };
  dependencies = { module=all-gdbserver; on=all-libiberty; };
+ dependencies = { module=all-gdbserver; on=all-libiconv; };
  
  dependencies = { module=configure-libgui; on=configure-tcl; };
  dependencies = { module=configure-libgui; on=configure-tk; };
*************** dependencies = { module=install-bfd; on=
*** 524,530 ****
  dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
  
  // libopcodes depends on libbfd
! dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
--- 530,536 ----
  dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
  
  // libopcodes depends on libbfd
! dependencies = { module=configure-opcodes; on=all-bfd; hard=true; };
  dependencies = { module=install-opcodes; on=install-bfd; };
  dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
  
*************** dependencies = { module=install-gprofng;
*** 550,557 ****
  dependencies = { module=install-gprofng; on=install-bfd; };
  
  dependencies = { module=configure-ld; on=configure-gettext; };
  dependencies = { module=all-ld; on=all-libiberty; };
- dependencies = { module=all-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
--- 556,563 ----
  dependencies = { module=install-gprofng; on=install-bfd; };
  
  dependencies = { module=configure-ld; on=configure-gettext; };
+ dependencies = { module=configure-ld; on=all-bfd; };
  dependencies = { module=all-ld; on=all-libiberty; };
  dependencies = { module=all-ld; on=all-opcodes; };
  dependencies = { module=all-ld; on=all-build-bison; };
  dependencies = { module=all-ld; on=all-build-flex; };
*************** dependencies = { module=all-m4; on=all-b
*** 649,662 ****
  // on libgcc and newlib/libgloss.
  lang_env_dependencies = { module=libitm; cxx=true; };
  lang_env_dependencies = { module=libffi; cxx=true; };
! lang_env_dependencies = { module=newlib; no_c=true; };
! lang_env_dependencies = { module=libgloss; no_c=true; };
! lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
  // libiberty does not depend on newlib or libgloss because it must be
  // 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; };
--- 655,669 ----
  // on libgcc and newlib/libgloss.
  lang_env_dependencies = { module=libitm; cxx=true; };
  lang_env_dependencies = { module=libffi; cxx=true; };
! lang_env_dependencies = { module=newlib; no_c=true; no_atomic=true; };
! lang_env_dependencies = { module=libgloss; no_c=true; no_atomic=true; };
! lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; no_atomic=true; };
  // libiberty does not depend on newlib or libgloss because it must be
  // 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; no_atomic=true; };
! lang_env_dependencies = { module=libgcobol; cxx=true; no_atomic=true; };
! lang_env_dependencies = { module=libatomic; no_atomic=true; };
  
  dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
  dependencies = { module=all-target-fastjar; on=all-target-zlib; };
*************** dependencies = { module=configure-target
*** 676,681 ****
--- 683,689 ----
  dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
  dependencies = { module=configure-target-libvtv; on=all-target-libstdc++-v3; };
  dependencies = { module=configure-target-libgrust; on=all-target-libstdc++-v3; };
+ dependencies = { module=configure-target-libga68; on=all-target-libstdc++-v3; };
  // parallel_list.o and parallel_settings.o depend on omp.h, which is
  // generated by the libgomp configure.  Unfortunately, due to the use of
  //  recursive make, we can't be that specific.
*************** languages = { language=jit;	gcc-check-ta
*** 734,739 ****
--- 742,749 ----
  languages = { language=rust;	gcc-check-target=check-rust; };
  languages = { language=cobol;	gcc-check-target=check-cobol;
  				lib-check-target=check-target-libgcobol; };
+ languages = { language=algol68; gcc-check-target=check-algol68;
+           			lib-check-target=check-target-libga68; };
  
  // Toplevel bootstrap
  bootstrap_stage = { id=1 ; };
*************** bootstrap_stage = {
*** 758,764 ****
  	bootstrap_target=profiledbootstrap ; };
  bootstrap_stage = {
  	id=autoprofile ; prev=1 ;
!         autoprofile="$$s/gcc/config/i386/$(AUTO_PROFILE)" ; };
  bootstrap_stage = {
  	id=autofeedback ; prev=autoprofile ;
  	bootstrap_target=autoprofiledbootstrap ;
--- 768,774 ----
  	bootstrap_target=profiledbootstrap ; };
  bootstrap_stage = {
  	id=autoprofile ; prev=1 ;
!         autoprofile="$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE)" ; };
  bootstrap_stage = {
  	id=autofeedback ; prev=autoprofile ;
  	bootstrap_target=autoprofiledbootstrap ;
diff -Nrcpad gcc-15.2.0/Makefile.in gcc-16.1.0-RC-20260423/Makefile.in
*** gcc-15.2.0/Makefile.in	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/Makefile.in	Thu Apr 23 11:07:32 2026
***************
*** 3,9 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 3,9 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** build_alias=@build_noncanonical@
*** 38,43 ****
--- 38,44 ----
  build_vendor=@build_vendor@
  build_os=@build_os@
  build=@build@
+ cpu_type=@cpu_type@
  host_alias=@host_noncanonical@
  host_vendor=@host_vendor@
  host_os=@host_os@
*************** BASE_EXPORTS = \
*** 143,150 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 144,150 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** BUILD_EXPORTS = \
*** 160,165 ****
--- 160,167 ----
  	CXX="$(CXX_FOR_BUILD)"; export CXX; \
  	CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
+ 	A68="$(A68_FOR_BUILD)"; export A68; \
+ 	A68FLAGS="$(A68FLAGS_FOR_BUILD)"; export A68FLAGS; \
  	GOC="$(GOC_FOR_BUILD)"; export GOC; \
  	GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \
  	GDC="$(GDC_FOR_BUILD)"; export GDC; \
*************** HOST_EXPORTS = \
*** 203,211 ****
--- 205,215 ----
  	CXX="$(CXX)"; export CXX; \
  	CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \
+ 	A68="$(A68)"; export A68; \
  	GOC="$(GOC)"; export GOC; \
  	GDC="$(GDC)"; export GDC; \
  	GM2="$(GM2)"; export GM2; \
+ 	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
  	AR="$(AR)"; export AR; \
  	AS="$(AS)"; export AS; \
  	CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
*************** HOST_EXPORTS = \
*** 242,247 ****
--- 246,252 ----
  	GMPINC="$(HOST_GMPINC)"; export GMPINC; \
  	ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \
  	ISLINC="$(HOST_ISLINC)"; export ISLINC; \
+ 	TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
  	XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \
  @if gcc-bootstrap
  	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
*************** POSTSTAGE1_HOST_EXPORTS = \
*** 276,281 ****
--- 281,291 ----
  	CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
  	$(POSTSTAGE1_CXX_EXPORT) \
  	$(LTO_EXPORTS) \
+ 	A68="$$r/$(HOST_SUBDIR)/prev-gcc/ga68$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \
+ 	  -B$(build_tooldir)/bin/ $(A68FLAGS_FOR_TARGET) \
+ 	  -B$$r/prev-$(TARGET_SUBDIR)/libga68/.libs"; \
+ 	export A68; \
+ 	A68_FOR_BUILD="$$A68"; export A68_FOR_BUILD; \
  	GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \
  	  -B$(build_tooldir)/bin/ $(GDCFLAGS_FOR_TARGET) \
  	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/gcc \
*************** BASE_TARGET_EXPORTS = \
*** 308,316 ****
--- 318,328 ----
  	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
  	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \
+ 	A68="$(A68_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export A68; \
  	GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \
  	GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \
  	GM2="$(GM2_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GM2; \
+ 	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
  	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
  	DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \
  	LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \
*************** CXX_FOR_BUILD = @CXX_FOR_BUILD@
*** 377,385 ****
--- 389,399 ----
  DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
  DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@
  GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@
+ A68_FOR_BUILD = @A68_FOR_BUILD@
  GOC_FOR_BUILD = @GOC_FOR_BUILD@
  GDC_FOR_BUILD = @GDC_FOR_BUILD@
  GM2_FOR_BUILD = @GM2_FOR_BUILD@
+ GNATMAKE_FOR_BUILD = @GNATMAKE_FOR_BUILD@
  LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
  LD_FOR_BUILD = @LD_FOR_BUILD@
  NM_FOR_BUILD = @NM_FOR_BUILD@
*************** DLLTOOL = @DLLTOOL@
*** 430,436 ****
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
--- 444,450 ----
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@ @NM_PLUGIN_OPTION@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
*************** STRIP = @STRIP@
*** 439,444 ****
--- 453,459 ----
  WINDRES = @WINDRES@
  WINDMC = @WINDMC@
  
+ A68 = @A68@
  GDC = @GDC@
  GNATBIND = @GNATBIND@
  GNATMAKE = @GNATMAKE@
*************** LIBCFLAGS = $(CFLAGS)
*** 449,454 ****
--- 464,470 ----
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
+ A68FLAGS = @A68FLAGS@
  GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
*************** CRAB1_LIBS = @CRAB1_LIBS@
*** 456,463 ****
  
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
- GUILE = guile
- 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 472,477 ----
*************** STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKI
*** 619,625 ****
--- 633,665 ----
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
+ @if target-libstdc++-v3-bootstrap
+ STAGE1_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ STAGE2_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ STAGEprofile_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ @endif target-libstdc++-v3-bootstrap
+ 
  @if target-libphobos-bootstrap
+ # Defaults for each stage if we're bootstrapping D.
+ 
+ STAGE1_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGE2_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGE3_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGE4_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGEprofile_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGEtrain_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGEfeedback_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGEautoprofile_GDCFLAGS = $(GDCFLAGS)
+ 
+ STAGEautofeedback_GDCFLAGS = $(GDCFLAGS)
+ 
  STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only
  STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only
  @endif target-libphobos-bootstrap
*************** STAGE2_CFLAGS += -fno-checking
*** 633,638 ****
--- 673,682 ----
  STAGE2_TFLAGS += -fno-checking
  STAGE3_CFLAGS += -fchecking=1
  STAGE3_TFLAGS += -fchecking=1
+ @if target-libphobos-bootstrap
+ STAGE2_GDCFLAGS += -fno-checking
+ STAGE3_GDCFLAGS += -fchecking=1
+ @endif target-libphobos-bootstrap
  
  STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate
  STAGEprofile_TFLAGS = $(STAGE2_TFLAGS)
*************** do-compare3 = $(do-compare)
*** 663,669 ****
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
--- 707,713 ----
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
*************** CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_
*** 676,681 ****
--- 720,726 ----
  RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@
  GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@
  GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@
+ A68_FOR_TARGET=$(STAGE_CC_WRAPPER) @A68_FOR_TARGET@
  GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@
  GM2_FOR_TARGET=$(STAGE_CC_WRAPPER) @GM2_FOR_TARGET@
  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
*************** DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET
*** 683,693 ****
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
--- 728,738 ----
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
*************** LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_
*** 705,710 ****
--- 750,756 ----
  LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@
  GM2FLAGS_FOR_TARGET = -O2 -g
  GOCFLAGS_FOR_TARGET = -O2 -g
+ A68FLAGS_FOR_TARGET = -O2 -g
  GDCFLAGS_FOR_TARGET = -O2 -g
  
  FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
*************** all:
*** 730,736 ****
  
  # This is the list of directories that may be needed in RPATH_ENVVAR
  # so that programs built for the target machine work.
! TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libsanitizer)$(TARGET_LIB_PATH_libvtv)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgm2)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc)
  
  @if target-libstdc++-v3
  TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
--- 776,782 ----
  
  # This is the list of directories that may be needed in RPATH_ENVVAR
  # so that programs built for the target machine work.
! TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libsanitizer)$(TARGET_LIB_PATH_libvtv)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgm2)$(TARGET_LIB_PATH_libga68)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc)
  
  @if target-libstdc++-v3
  TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
*************** TARGET_LIB_PATH_libphobos = $$r/$(TARGET
*** 756,761 ****
--- 802,811 ----
  TARGET_LIB_PATH_libgm2 = $$r/$(TARGET_SUBDIR)/libgm2/.libs:
  @endif target-libgm2
  
+ @if target-libga68
+ TARGET_LIB_PATH_libga68 = $$r/$(TARGET_SUBDIR)/libga68/.libs:
+ @endif target-libga68
+ 
  @if target-libgomp
  TARGET_LIB_PATH_libgomp = $$r/$(TARGET_SUBDIR)/libgomp/.libs:
  @endif target-libgomp
*************** BASE_FLAGS_TO_PASS = \
*** 887,893 ****
  	"GNATMAKE=$(GNATMAKE)" \
  	"GDC=$(GDC)" \
  	"GDCFLAGS=$(GDCFLAGS)" \
! 	"GUILE=$(GUILE)" \
  	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
--- 937,944 ----
  	"GNATMAKE=$(GNATMAKE)" \
  	"GDC=$(GDC)" \
  	"GDCFLAGS=$(GDCFLAGS)" \
! 	"A68=$(A68)" \
! 	"A68FLAGS=$(A68FLAGS)" \
  	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
*************** BASE_FLAGS_TO_PASS = \
*** 902,907 ****
--- 953,960 ----
  	"GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \
  	"GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \
  	"GDCFLAGS_FOR_TARGET=$(GDCFLAGS_FOR_TARGET)" \
+ 	"A68_FOR_TARGET=$(A68_FOR_TARGET)" \
+ 	"A68FLAGS_FOR_TARGET=$(A68FLAGS_FOR_TARGET)" \
  	"GM2_FOR_TARGET=$(GM2_FOR_TARGET)" \
  	"GM2FLAGS_FOR_TARGET=$(GM2FLAGS_FOR_TARGET)" \
  	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
*************** BASE_FLAGS_TO_PASS = \
*** 922,959 ****
--- 975,1021 ----
  	"LEAN=$(LEAN)" \
  	"STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \
  	"STAGE1_CXXFLAGS=$(STAGE1_CXXFLAGS)" \
+ 	"STAGE1_GDCFLAGS=$(STAGE1_GDCFLAGS)" \
  	"STAGE1_GENERATOR_CFLAGS=$(STAGE1_GENERATOR_CFLAGS)" \
  	"STAGE1_TFLAGS=$(STAGE1_TFLAGS)" \
  	"STAGE2_CFLAGS=$(STAGE2_CFLAGS)" \
  	"STAGE2_CXXFLAGS=$(STAGE2_CXXFLAGS)" \
+ 	"STAGE2_GDCFLAGS=$(STAGE2_GDCFLAGS)" \
  	"STAGE2_GENERATOR_CFLAGS=$(STAGE2_GENERATOR_CFLAGS)" \
  	"STAGE2_TFLAGS=$(STAGE2_TFLAGS)" \
  	"STAGE3_CFLAGS=$(STAGE3_CFLAGS)" \
  	"STAGE3_CXXFLAGS=$(STAGE3_CXXFLAGS)" \
+ 	"STAGE3_GDCFLAGS=$(STAGE3_GDCFLAGS)" \
  	"STAGE3_GENERATOR_CFLAGS=$(STAGE3_GENERATOR_CFLAGS)" \
  	"STAGE3_TFLAGS=$(STAGE3_TFLAGS)" \
  	"STAGE4_CFLAGS=$(STAGE4_CFLAGS)" \
  	"STAGE4_CXXFLAGS=$(STAGE4_CXXFLAGS)" \
+ 	"STAGE4_GDCFLAGS=$(STAGE4_GDCFLAGS)" \
  	"STAGE4_GENERATOR_CFLAGS=$(STAGE4_GENERATOR_CFLAGS)" \
  	"STAGE4_TFLAGS=$(STAGE4_TFLAGS)" \
  	"STAGEprofile_CFLAGS=$(STAGEprofile_CFLAGS)" \
  	"STAGEprofile_CXXFLAGS=$(STAGEprofile_CXXFLAGS)" \
+ 	"STAGEprofile_GDCFLAGS=$(STAGEprofile_GDCFLAGS)" \
  	"STAGEprofile_GENERATOR_CFLAGS=$(STAGEprofile_GENERATOR_CFLAGS)" \
  	"STAGEprofile_TFLAGS=$(STAGEprofile_TFLAGS)" \
  	"STAGEtrain_CFLAGS=$(STAGEtrain_CFLAGS)" \
  	"STAGEtrain_CXXFLAGS=$(STAGEtrain_CXXFLAGS)" \
+ 	"STAGEtrain_GDCFLAGS=$(STAGEtrain_GDCFLAGS)" \
  	"STAGEtrain_GENERATOR_CFLAGS=$(STAGEtrain_GENERATOR_CFLAGS)" \
  	"STAGEtrain_TFLAGS=$(STAGEtrain_TFLAGS)" \
  	"STAGEfeedback_CFLAGS=$(STAGEfeedback_CFLAGS)" \
  	"STAGEfeedback_CXXFLAGS=$(STAGEfeedback_CXXFLAGS)" \
+ 	"STAGEfeedback_GDCFLAGS=$(STAGEfeedback_GDCFLAGS)" \
  	"STAGEfeedback_GENERATOR_CFLAGS=$(STAGEfeedback_GENERATOR_CFLAGS)" \
  	"STAGEfeedback_TFLAGS=$(STAGEfeedback_TFLAGS)" \
  	"STAGEautoprofile_CFLAGS=$(STAGEautoprofile_CFLAGS)" \
  	"STAGEautoprofile_CXXFLAGS=$(STAGEautoprofile_CXXFLAGS)" \
+ 	"STAGEautoprofile_GDCFLAGS=$(STAGEautoprofile_GDCFLAGS)" \
  	"STAGEautoprofile_GENERATOR_CFLAGS=$(STAGEautoprofile_GENERATOR_CFLAGS)" \
  	"STAGEautoprofile_TFLAGS=$(STAGEautoprofile_TFLAGS)" \
  	"STAGEautofeedback_CFLAGS=$(STAGEautofeedback_CFLAGS)" \
  	"STAGEautofeedback_CXXFLAGS=$(STAGEautofeedback_CXXFLAGS)" \
+ 	"STAGEautofeedback_GDCFLAGS=$(STAGEautofeedback_GDCFLAGS)" \
  	"STAGEautofeedback_GENERATOR_CFLAGS=$(STAGEautofeedback_GENERATOR_CFLAGS)" \
  	"STAGEautofeedback_TFLAGS=$(STAGEautofeedback_TFLAGS)" \
  	$(CXX_FOR_TARGET_FLAG_TO_PASS) \
*************** EXTRA_HOST_FLAGS = \
*** 976,981 ****
--- 1038,1044 ----
  	'DSYMUTIL=$(DSYMUTIL)' \
  	'GFORTRAN=$(GFORTRAN)' \
  	'GOC=$(GOC)' \
+ 	'A68=$(A68)' \
  	'GDC=$(GDC)' \
  	'GM2=$(GM2)' \
  	'LD=$(LD)' \
*************** STAGE1_FLAGS_TO_PASS = \
*** 1004,1009 ****
--- 1067,1073 ----
  POSTSTAGE1_FLAGS_TO_PASS = \
  	CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
  	CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \
+ 	A68="$${A68}" A68_FOR_BUILD="$${A68_FOR_BUILD}" \
  	GDC="$${GDC}" GDC_FOR_BUILD="$${GDC_FOR_BUILD}" \
  	GM2="$${GM2}" GM2_FOR_BUILD="$${GM2_FOR_BUILD}" \
  	GNATBIND="$${GNATBIND}" \
*************** EXTRA_TARGET_FLAGS = \
*** 1039,1044 ****
--- 1103,1110 ----
  	'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \
+ 	'A68=$$(A68_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
+ 	'A68FLAGS=$$(A68FLAGS_FOR_TARGET)' \
  	'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GDCFLAGS=$$(GDCFLAGS_FOR_TARGET)' \
  	'GM2=$$(GM2_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
*************** configure-target:  \
*** 1160,1165 ****
--- 1226,1232 ----
      maybe-configure-target-rda \
      maybe-configure-target-libada \
      maybe-configure-target-libgm2 \
+     maybe-configure-target-libga68 \
      maybe-configure-target-libgomp \
      maybe-configure-target-libitm \
      maybe-configure-target-libatomic \
*************** all-target: maybe-all-target-zlib
*** 1360,1365 ****
--- 1427,1433 ----
  all-target: maybe-all-target-rda
  all-target: maybe-all-target-libada
  all-target: maybe-all-target-libgm2
+ all-target: maybe-all-target-libga68
  @if target-libgomp-no-bootstrap
  all-target: maybe-all-target-libgomp
  @endif target-libgomp-no-bootstrap
*************** info-target: maybe-info-target-zlib
*** 1463,1468 ****
--- 1531,1537 ----
  info-target: maybe-info-target-rda
  info-target: maybe-info-target-libada
  info-target: maybe-info-target-libgm2
+ info-target: maybe-info-target-libga68
  info-target: maybe-info-target-libgomp
  info-target: maybe-info-target-libitm
  info-target: maybe-info-target-libatomic
*************** dvi-target: maybe-dvi-target-zlib
*** 1557,1562 ****
--- 1626,1632 ----
  dvi-target: maybe-dvi-target-rda
  dvi-target: maybe-dvi-target-libada
  dvi-target: maybe-dvi-target-libgm2
+ dvi-target: maybe-dvi-target-libga68
  dvi-target: maybe-dvi-target-libgomp
  dvi-target: maybe-dvi-target-libitm
  dvi-target: maybe-dvi-target-libatomic
*************** pdf-target: maybe-pdf-target-zlib
*** 1651,1656 ****
--- 1721,1727 ----
  pdf-target: maybe-pdf-target-rda
  pdf-target: maybe-pdf-target-libada
  pdf-target: maybe-pdf-target-libgm2
+ pdf-target: maybe-pdf-target-libga68
  pdf-target: maybe-pdf-target-libgomp
  pdf-target: maybe-pdf-target-libitm
  pdf-target: maybe-pdf-target-libatomic
*************** html-target: maybe-html-target-zlib
*** 1745,1750 ****
--- 1816,1822 ----
  html-target: maybe-html-target-rda
  html-target: maybe-html-target-libada
  html-target: maybe-html-target-libgm2
+ html-target: maybe-html-target-libga68
  html-target: maybe-html-target-libgomp
  html-target: maybe-html-target-libitm
  html-target: maybe-html-target-libatomic
*************** TAGS-target: maybe-TAGS-target-zlib
*** 1839,1844 ****
--- 1911,1917 ----
  TAGS-target: maybe-TAGS-target-rda
  TAGS-target: maybe-TAGS-target-libada
  TAGS-target: maybe-TAGS-target-libgm2
+ TAGS-target: maybe-TAGS-target-libga68
  TAGS-target: maybe-TAGS-target-libgomp
  TAGS-target: maybe-TAGS-target-libitm
  TAGS-target: maybe-TAGS-target-libatomic
*************** install-info-target: maybe-install-info-
*** 1933,1938 ****
--- 2006,2012 ----
  install-info-target: maybe-install-info-target-rda
  install-info-target: maybe-install-info-target-libada
  install-info-target: maybe-install-info-target-libgm2
+ install-info-target: maybe-install-info-target-libga68
  install-info-target: maybe-install-info-target-libgomp
  install-info-target: maybe-install-info-target-libitm
  install-info-target: maybe-install-info-target-libatomic
*************** install-dvi-target: maybe-install-dvi-ta
*** 2027,2032 ****
--- 2101,2107 ----
  install-dvi-target: maybe-install-dvi-target-rda
  install-dvi-target: maybe-install-dvi-target-libada
  install-dvi-target: maybe-install-dvi-target-libgm2
+ install-dvi-target: maybe-install-dvi-target-libga68
  install-dvi-target: maybe-install-dvi-target-libgomp
  install-dvi-target: maybe-install-dvi-target-libitm
  install-dvi-target: maybe-install-dvi-target-libatomic
*************** install-pdf-target: maybe-install-pdf-ta
*** 2121,2126 ****
--- 2196,2202 ----
  install-pdf-target: maybe-install-pdf-target-rda
  install-pdf-target: maybe-install-pdf-target-libada
  install-pdf-target: maybe-install-pdf-target-libgm2
+ install-pdf-target: maybe-install-pdf-target-libga68
  install-pdf-target: maybe-install-pdf-target-libgomp
  install-pdf-target: maybe-install-pdf-target-libitm
  install-pdf-target: maybe-install-pdf-target-libatomic
*************** install-html-target: maybe-install-html-
*** 2215,2220 ****
--- 2291,2297 ----
  install-html-target: maybe-install-html-target-rda
  install-html-target: maybe-install-html-target-libada
  install-html-target: maybe-install-html-target-libgm2
+ install-html-target: maybe-install-html-target-libga68
  install-html-target: maybe-install-html-target-libgomp
  install-html-target: maybe-install-html-target-libitm
  install-html-target: maybe-install-html-target-libatomic
*************** installcheck-target: maybe-installcheck-
*** 2309,2314 ****
--- 2386,2392 ----
  installcheck-target: maybe-installcheck-target-rda
  installcheck-target: maybe-installcheck-target-libada
  installcheck-target: maybe-installcheck-target-libgm2
+ installcheck-target: maybe-installcheck-target-libga68
  installcheck-target: maybe-installcheck-target-libgomp
  installcheck-target: maybe-installcheck-target-libitm
  installcheck-target: maybe-installcheck-target-libatomic
*************** mostlyclean-target: maybe-mostlyclean-ta
*** 2403,2408 ****
--- 2481,2487 ----
  mostlyclean-target: maybe-mostlyclean-target-rda
  mostlyclean-target: maybe-mostlyclean-target-libada
  mostlyclean-target: maybe-mostlyclean-target-libgm2
+ mostlyclean-target: maybe-mostlyclean-target-libga68
  mostlyclean-target: maybe-mostlyclean-target-libgomp
  mostlyclean-target: maybe-mostlyclean-target-libitm
  mostlyclean-target: maybe-mostlyclean-target-libatomic
*************** clean-target: maybe-clean-target-zlib
*** 2497,2502 ****
--- 2576,2582 ----
  clean-target: maybe-clean-target-rda
  clean-target: maybe-clean-target-libada
  clean-target: maybe-clean-target-libgm2
+ clean-target: maybe-clean-target-libga68
  clean-target: maybe-clean-target-libgomp
  clean-target: maybe-clean-target-libitm
  clean-target: maybe-clean-target-libatomic
*************** distclean-target: maybe-distclean-target
*** 2591,2596 ****
--- 2671,2677 ----
  distclean-target: maybe-distclean-target-rda
  distclean-target: maybe-distclean-target-libada
  distclean-target: maybe-distclean-target-libgm2
+ distclean-target: maybe-distclean-target-libga68
  distclean-target: maybe-distclean-target-libgomp
  distclean-target: maybe-distclean-target-libitm
  distclean-target: maybe-distclean-target-libatomic
*************** maintainer-clean-target: maybe-maintaine
*** 2685,2690 ****
--- 2766,2772 ----
  maintainer-clean-target: maybe-maintainer-clean-target-rda
  maintainer-clean-target: maybe-maintainer-clean-target-libada
  maintainer-clean-target: maybe-maintainer-clean-target-libgm2
+ maintainer-clean-target: maybe-maintainer-clean-target-libga68
  maintainer-clean-target: maybe-maintainer-clean-target-libgomp
  maintainer-clean-target: maybe-maintainer-clean-target-libitm
  maintainer-clean-target: maybe-maintainer-clean-target-libatomic
*************** local-distclean:
*** 2739,2745 ****
  	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
  	-rmdir c++tools fastjar gcc gnattools gotools 2>/dev/null
  	-rmdir libcc1 libiberty texinfo zlib 2>/dev/null
! 	-find . -name config.cache -exec rm -f {} \; \; 2>/dev/null
  
  local-maintainer-clean:
  	@echo "This command is intended for maintainers to use;"
--- 2821,2827 ----
  	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
  	-rmdir c++tools fastjar gcc gnattools gotools 2>/dev/null
  	-rmdir libcc1 libiberty texinfo zlib 2>/dev/null
! 	-find . -name config.cache -exec rm -f {} \; 2>/dev/null
  
  local-maintainer-clean:
  	@echo "This command is intended for maintainers to use;"
*************** check-target:  \
*** 2837,2842 ****
--- 2919,2925 ----
      maybe-check-target-rda \
      maybe-check-target-libada \
      maybe-check-target-libgm2 \
+     maybe-check-target-libga68 \
      maybe-check-target-libgomp \
      maybe-check-target-libitm \
      maybe-check-target-libatomic \
*************** install-target:  \
*** 3035,3040 ****
--- 3118,3124 ----
      maybe-install-target-rda \
      maybe-install-target-libada \
      maybe-install-target-libgm2 \
+     maybe-install-target-libga68 \
      maybe-install-target-libgomp \
      maybe-install-target-libitm \
      maybe-install-target-libatomic \
*************** install-strip-target:  \
*** 3149,3154 ****
--- 3233,3239 ----
      maybe-install-strip-target-rda \
      maybe-install-strip-target-libada \
      maybe-install-strip-target-libgm2 \
+     maybe-install-strip-target-libga68 \
      maybe-install-strip-target-libgomp \
      maybe-install-strip-target-libitm \
      maybe-install-strip-target-libatomic \
*************** all-stageautoprofile-bfd: configure-stag
*** 4271,4277 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/bfd && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 4356,4362 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/bfd && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-opcodes: configure-
*** 5411,5417 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/opcodes && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 5496,5502 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/opcodes && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-binutils: configure
*** 6551,6557 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/binutils && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 6636,6642 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/binutils && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-fixincludes: config
*** 10037,10043 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/fixincludes && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 10122,10128 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/fixincludes && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-gas: configure-stag
*** 11617,11623 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gas && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 11702,11708 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gas && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** configure-stage1-gcc:
*** 12134,12139 ****
--- 12219,12225 ----
  	$(HOST_EXPORTS) \
  	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGE1_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage 1 in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stage2-gcc:
*** 12168,12173 ****
--- 12254,12260 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGE2_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage 2 in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stage3-gcc:
*** 12202,12207 ****
--- 12289,12295 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGE3_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage 3 in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stage4-gcc:
*** 12236,12241 ****
--- 12324,12330 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGE4_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage 4 in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stageprofile-gcc:
*** 12270,12275 ****
--- 12359,12365 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGEprofile_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage profile in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stagetrain-gcc:
*** 12304,12309 ****
--- 12394,12400 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGEtrain_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage train in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stagefeedback-gcc:
*** 12338,12343 ****
--- 12429,12435 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGEfeedback_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage feedback in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stageautoprofile-gcc:
*** 12372,12377 ****
--- 12464,12470 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGEautoprofile_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** configure-stageautofeedback-gcc:
*** 12406,12411 ****
--- 12499,12505 ----
  	$(POSTSTAGE1_HOST_EXPORTS) \
  	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
  	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
+ 	GDCFLAGS="$(STAGEautofeedback_GDCFLAGS)"; export GDCFLAGS; \
  	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
  	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gcc; \
  	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
*************** all-stage1-gcc: configure-stage1-gcc
*** 12468,12473 ****
--- 12562,12568 ----
  		CFLAGS="$(STAGE1_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGE1_GDCFLAGS)" \
  		LIBCFLAGS="$(LIBCFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stage2-gcc: configure-stage2-gcc
*** 12513,12518 ****
--- 12608,12614 ----
  		CFLAGS="$(STAGE2_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGE2_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGE2_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stage3-gcc: configure-stage3-gcc
*** 12556,12561 ****
--- 12652,12658 ----
  		CFLAGS="$(STAGE3_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGE3_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGE3_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stage4-gcc: configure-stage4-gcc
*** 12599,12604 ****
--- 12696,12702 ----
  		CFLAGS="$(STAGE4_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGE4_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGE4_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageprofile-gcc: configure-stagepro
*** 12642,12647 ****
--- 12740,12746 ----
  		CFLAGS="$(STAGEprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGEprofile_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stagetrain-gcc: configure-stagetrain
*** 12685,12690 ****
--- 12784,12790 ----
  		CFLAGS="$(STAGEtrain_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGEtrain_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stagefeedback-gcc: configure-stagefe
*** 12728,12733 ****
--- 12828,12834 ----
  		CFLAGS="$(STAGEfeedback_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGEfeedback_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-gcc: configure-stag
*** 12766,12776 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gcc && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
  		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
--- 12867,12878 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gcc && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGEautoprofile_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautofeedback-gcc: configure-sta
*** 12814,12819 ****
--- 12916,12922 ----
  		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
  		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
+ 		GDCFLAGS="$(STAGEautofeedback_GDCFLAGS)" \
  		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-gmp: configure-stag
*** 13915,13921 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gmp && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 14018,14024 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gmp && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-mpfr: configure-sta
*** 15052,15058 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/mpfr && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 15155,15161 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/mpfr && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-mpc: configure-stag
*** 16189,16195 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/mpc && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 16292,16298 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/mpc && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-isl: configure-stag
*** 17326,17332 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/isl && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 17429,17435 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/isl && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-gold: configure-sta
*** 18454,18460 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gold && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 18557,18563 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gold && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-gettext: configure-
*** 20539,20545 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gettext && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 20642,20648 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/gettext && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-ld: configure-stage
*** 22449,22455 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/ld && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 22552,22558 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/ld && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libbacktrace: confi
*** 23589,23595 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libbacktrace && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 23692,23698 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libbacktrace && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libcpp: configure-s
*** 24729,24735 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libcpp && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 24832,24838 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libcpp && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libcody: configure-
*** 25869,25875 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libcody && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 25972,25978 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libcody && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libdecnumber: confi
*** 26858,26864 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libdecnumber && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 26961,26967 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libdecnumber && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libiberty: configur
*** 28460,28466 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiberty && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 28563,28569 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiberty && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libiberty-linker-pl
*** 29609,29615 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 29712,29718 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libiconv: configure
*** 30758,30764 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiconv && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 30861,30867 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libiconv && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-zlib: configure-sta
*** 34130,34136 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/zlib && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 34233,34239 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/zlib && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-lto-plugin: configu
*** 40321,40327 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/lto-plugin && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 40424,40430 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/lto-plugin && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libctf: configure-s
*** 42397,42403 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libctf && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 42500,42506 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libctf && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libsframe: configur
*** 43537,43543 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libsframe && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 43640,43646 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libsframe && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-libgrust: configure
*** 44677,44683 ****
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libgrust && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
--- 44780,44786 ----
  	$(HOST_EXPORTS) \
  	$(POSTSTAGE1_HOST_EXPORTS)  \
  	cd $(HOST_SUBDIR)/libgrust && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
*************** all-stageautoprofile-target-libstdc++-v3
*** 45939,45945 ****
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 46042,46048 ----
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libsanitizer
*** 47209,47215 ****
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libsanitizer && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 47312,47318 ----
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libsanitizer && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libvtv: conf
*** 48479,48485 ****
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libvtv && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 48582,48588 ----
  	$(RAW_CXX_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libvtv && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libgcc: conf
*** 50719,50725 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libgcc && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 50822,50828 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libgcc && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libbacktrace
*** 51951,51957 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libbacktrace && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 52054,52060 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libbacktrace && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libphobos: c
*** 55128,55134 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libphobos && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 55231,55237 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libphobos && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-zlib: config
*** 58258,58264 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/zlib && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 58361,58367 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/zlib && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** maintainer-clean-target-libgm2:
*** 60200,60205 ****
--- 60303,60793 ----
  
  
  
+ .PHONY: configure-target-libga68 maybe-configure-target-libga68
+ maybe-configure-target-libga68:
+ @if gcc-bootstrap
+ configure-target-libga68: stage_current
+ @endif gcc-bootstrap
+ @if target-libga68
+ maybe-configure-target-libga68: configure-target-libga68
+ configure-target-libga68: 
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	echo "Checking multilib configuration for libga68..."; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libga68; \
+ 	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libga68/multilib.tmp 2> /dev/null; \
+ 	if test -r $(TARGET_SUBDIR)/libga68/multilib.out; then \
+ 	  if cmp -s $(TARGET_SUBDIR)/libga68/multilib.tmp $(TARGET_SUBDIR)/libga68/multilib.out; then \
+ 	    rm -f $(TARGET_SUBDIR)/libga68/multilib.tmp; \
+ 	  else \
+ 	    rm -f $(TARGET_SUBDIR)/libga68/Makefile; \
+ 	    mv $(TARGET_SUBDIR)/libga68/multilib.tmp $(TARGET_SUBDIR)/libga68/multilib.out; \
+ 	  fi; \
+ 	else \
+ 	  mv $(TARGET_SUBDIR)/libga68/multilib.tmp $(TARGET_SUBDIR)/libga68/multilib.out; \
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libga68/Makefile || exit 0; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libga68; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	echo Configuring in $(TARGET_SUBDIR)/libga68; \
+ 	cd "$(TARGET_SUBDIR)/libga68" || exit 1; \
+ 	case $(srcdir) in \
+ 	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+ 	  *) topdir=`echo $(TARGET_SUBDIR)/libga68/ | \
+ 		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+ 	esac; \
+ 	module_srcdir=libga68; \
+ 	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-libga68
+ 
+ 
+ 
+ 
+ 
+ .PHONY: all-target-libga68 maybe-all-target-libga68
+ maybe-all-target-libga68:
+ @if gcc-bootstrap
+ all-target-libga68: stage_current
+ @endif gcc-bootstrap
+ @if target-libga68
+ TARGET-target-libga68=all
+ maybe-all-target-libga68: all-target-libga68
+ all-target-libga68: configure-target-libga68
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS)  \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-target-libga68))
+ @endif target-libga68
+ 
+ 
+ 
+ 
+ 
+ .PHONY: check-target-libga68 maybe-check-target-libga68
+ maybe-check-target-libga68:
+ @if target-libga68
+ maybe-check-target-libga68: check-target-libga68
+ 
+ check-target-libga68:
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
+ 
+ @endif target-libga68
+ 
+ .PHONY: install-target-libga68 maybe-install-target-libga68
+ maybe-install-target-libga68:
+ @if target-libga68
+ maybe-install-target-libga68: install-target-libga68
+ 
+ install-target-libga68: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
+ 
+ @endif target-libga68
+ 
+ .PHONY: install-strip-target-libga68 maybe-install-strip-target-libga68
+ maybe-install-strip-target-libga68:
+ @if target-libga68
+ maybe-install-strip-target-libga68: install-strip-target-libga68
+ 
+ install-strip-target-libga68: installdirs
+ 	@: $(MAKE); $(unstage)
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
+ 
+ @endif target-libga68
+ 
+ # Other targets (info, dvi, pdf, etc.)
+ 
+ .PHONY: maybe-info-target-libga68 info-target-libga68
+ maybe-info-target-libga68:
+ @if target-libga68
+ maybe-info-target-libga68: info-target-libga68
+ 
+ info-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing info in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-dvi-target-libga68 dvi-target-libga68
+ maybe-dvi-target-libga68:
+ @if target-libga68
+ maybe-dvi-target-libga68: dvi-target-libga68
+ 
+ dvi-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing dvi in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-pdf-target-libga68 pdf-target-libga68
+ maybe-pdf-target-libga68:
+ @if target-libga68
+ maybe-pdf-target-libga68: pdf-target-libga68
+ 
+ pdf-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing pdf in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-html-target-libga68 html-target-libga68
+ maybe-html-target-libga68:
+ @if target-libga68
+ maybe-html-target-libga68: html-target-libga68
+ 
+ html-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing html in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-TAGS-target-libga68 TAGS-target-libga68
+ maybe-TAGS-target-libga68:
+ @if target-libga68
+ maybe-TAGS-target-libga68: TAGS-target-libga68
+ 
+ TAGS-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing TAGS in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-install-info-target-libga68 install-info-target-libga68
+ maybe-install-info-target-libga68:
+ @if target-libga68
+ maybe-install-info-target-libga68: install-info-target-libga68
+ 
+ install-info-target-libga68: \
+     configure-target-libga68 \
+     info-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/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)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-install-dvi-target-libga68 install-dvi-target-libga68
+ maybe-install-dvi-target-libga68:
+ @if target-libga68
+ maybe-install-dvi-target-libga68: install-dvi-target-libga68
+ 
+ install-dvi-target-libga68: \
+     configure-target-libga68 \
+     dvi-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/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)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-install-pdf-target-libga68 install-pdf-target-libga68
+ maybe-install-pdf-target-libga68:
+ @if target-libga68
+ maybe-install-pdf-target-libga68: install-pdf-target-libga68
+ 
+ install-pdf-target-libga68: \
+     configure-target-libga68 \
+     pdf-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/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)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-install-html-target-libga68 install-html-target-libga68
+ maybe-install-html-target-libga68:
+ @if target-libga68
+ maybe-install-html-target-libga68: install-html-target-libga68
+ 
+ install-html-target-libga68: \
+     configure-target-libga68 \
+     html-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/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)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-installcheck-target-libga68 installcheck-target-libga68
+ maybe-installcheck-target-libga68:
+ @if target-libga68
+ maybe-installcheck-target-libga68: installcheck-target-libga68
+ 
+ installcheck-target-libga68: \
+     configure-target-libga68 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing installcheck in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-mostlyclean-target-libga68 mostlyclean-target-libga68
+ maybe-mostlyclean-target-libga68:
+ @if target-libga68
+ maybe-mostlyclean-target-libga68: mostlyclean-target-libga68
+ 
+ mostlyclean-target-libga68: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-clean-target-libga68 clean-target-libga68
+ maybe-clean-target-libga68:
+ @if target-libga68
+ maybe-clean-target-libga68: clean-target-libga68
+ 
+ clean-target-libga68: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing clean in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-distclean-target-libga68 distclean-target-libga68
+ maybe-distclean-target-libga68:
+ @if target-libga68
+ maybe-distclean-target-libga68: distclean-target-libga68
+ 
+ distclean-target-libga68: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/Makefile ] || exit 0; \
+ 	r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	echo "Doing distclean in $(TARGET_SUBDIR)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ .PHONY: maybe-maintainer-clean-target-libga68 maintainer-clean-target-libga68
+ maybe-maintainer-clean-target-libga68:
+ @if target-libga68
+ maybe-maintainer-clean-target-libga68: maintainer-clean-target-libga68
+ 
+ maintainer-clean-target-libga68: 
+ 	@: $(MAKE); $(unstage)
+ 	@[ -f $(TARGET_SUBDIR)/libga68/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)/libga68"; \
+ 	for flag in $(EXTRA_TARGET_FLAGS); do \
+ 	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+ 	done; \
+ 	(cd $(TARGET_SUBDIR)/libga68 && \
+ 	  $(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-libga68
+ 
+ 
+ 
+ 
+ 
  .PHONY: configure-target-libgomp maybe-configure-target-libgomp
  maybe-configure-target-libgomp:
  @if gcc-bootstrap
*************** all-stageautoprofile-target-libgomp: con
*** 60983,60989 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libgomp && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 61571,61577 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libgomp && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** all-stageautoprofile-target-libatomic: c
*** 62738,62744 ****
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libatomic && \
! 	$$s/gcc/config/i386/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
--- 63326,63332 ----
  	$(NORMAL_TARGET_EXPORTS) \
  	  \
  	cd $(TARGET_SUBDIR)/libatomic && \
! 	$$s/gcc/config/$(cpu_type)/$(AUTO_PROFILE) \
  	$(MAKE) $(BASE_FLAGS_TO_PASS) \
  		CFLAGS="$(CFLAGS_FOR_TARGET)" \
  		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
*************** check-gcc-cobol: gcc-site.exp
*** 64335,64340 ****
--- 64923,64936 ----
  	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-cobol);
  check-cobol: check-gcc-cobol check-target-libgcobol
  
+ .PHONY: check-gcc-algol68 check-algol68
+ check-gcc-algol68: 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-algol68);
+ check-algol68: check-gcc-algol68 check-target-libga68
+ 
  
  # 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-stageautofeedback-target-zlib:
*** 67876,67881 ****
--- 68472,68478 ----
  configure-target-rda: stage_last
  configure-target-libada: stage_last
  configure-target-libgm2: stage_last
+ configure-target-libga68: stage_last
  configure-stage1-target-libgomp: maybe-all-stage1-gcc
  configure-stage2-target-libgomp: maybe-all-stage2-gcc
  configure-stage3-target-libgomp: maybe-all-stage3-gcc
*************** configure-target-zlib: maybe-all-gcc
*** 67920,67925 ****
--- 68517,68523 ----
  configure-target-rda: maybe-all-gcc
  configure-target-libada: maybe-all-gcc
  configure-target-libgm2: maybe-all-gcc
+ configure-target-libga68: maybe-all-gcc
  configure-target-libgomp: maybe-all-gcc
  configure-target-libitm: maybe-all-gcc
  configure-target-libatomic: maybe-all-gcc
*************** install-strip-ld: maybe-install-strip-bf
*** 68678,68693 ****
  install-strip-ld: maybe-install-strip-libctf
  install-bfd: maybe-install-libsframe
  install-strip-bfd: maybe-install-strip-libsframe
! configure-opcodes: configure-bfd
! configure-stage1-opcodes: configure-stage1-bfd
! configure-stage2-opcodes: configure-stage2-bfd
! configure-stage3-opcodes: configure-stage3-bfd
! configure-stage4-opcodes: configure-stage4-bfd
! configure-stageprofile-opcodes: configure-stageprofile-bfd
! configure-stagetrain-opcodes: configure-stagetrain-bfd
! configure-stagefeedback-opcodes: configure-stagefeedback-bfd
! configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd
! configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
  configure-gas: maybe-configure-gettext
--- 69276,69291 ----
  install-strip-ld: maybe-install-strip-libctf
  install-bfd: maybe-install-libsframe
  install-strip-bfd: maybe-install-strip-libsframe
! configure-opcodes: all-bfd
! configure-stage1-opcodes: all-stage1-bfd
! configure-stage2-opcodes: all-stage2-bfd
! configure-stage3-opcodes: all-stage3-bfd
! configure-stage4-opcodes: all-stage4-bfd
! configure-stageprofile-opcodes: all-stageprofile-bfd
! configure-stagetrain-opcodes: all-stagetrain-bfd
! configure-stagefeedback-opcodes: all-stagefeedback-bfd
! configure-stageautoprofile-opcodes: all-stageautoprofile-bfd
! configure-stageautofeedback-opcodes: all-stageautofeedback-bfd
  install-opcodes: maybe-install-bfd
  install-strip-opcodes: maybe-install-strip-bfd
  configure-gas: maybe-configure-gettext
*************** configure-stagetrain-ld: maybe-configure
*** 68752,68757 ****
--- 69350,69365 ----
  configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext
  configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext
  configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext
+ configure-ld: maybe-all-bfd
+ configure-stage1-ld: maybe-all-stage1-bfd
+ configure-stage2-ld: maybe-all-stage2-bfd
+ configure-stage3-ld: maybe-all-stage3-bfd
+ configure-stage4-ld: maybe-all-stage4-bfd
+ configure-stageprofile-ld: maybe-all-stageprofile-bfd
+ configure-stagetrain-ld: maybe-all-stagetrain-bfd
+ configure-stagefeedback-ld: maybe-all-stagefeedback-bfd
+ configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
+ configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
  all-ld: maybe-all-libiberty
  all-stage1-ld: maybe-all-stage1-libiberty
  all-stage2-ld: maybe-all-stage2-libiberty
*************** all-stagetrain-ld: maybe-all-stagetrain-
*** 68762,68777 ****
  all-stagefeedback-ld: maybe-all-stagefeedback-libiberty
  all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty
  all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty
- all-ld: maybe-all-bfd
- all-stage1-ld: maybe-all-stage1-bfd
- all-stage2-ld: maybe-all-stage2-bfd
- all-stage3-ld: maybe-all-stage3-bfd
- all-stage4-ld: maybe-all-stage4-bfd
- all-stageprofile-ld: maybe-all-stageprofile-bfd
- all-stagetrain-ld: maybe-all-stagetrain-bfd
- all-stagefeedback-ld: maybe-all-stagefeedback-bfd
- all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
- all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
  all-ld: maybe-all-opcodes
  all-stage1-ld: maybe-all-stage1-opcodes
  all-stage2-ld: maybe-all-stage2-opcodes
--- 69370,69375 ----
*************** all-target-libgm2: maybe-all-target-liba
*** 69220,69225 ****
--- 69818,69826 ----
  @unless target-libstdc++-v3-bootstrap
  configure-target-libgrust: maybe-all-target-libstdc++-v3
  @endunless target-libstdc++-v3-bootstrap
+ @unless target-libstdc++-v3-bootstrap
+ configure-target-libga68: maybe-all-target-libstdc++-v3
+ @endunless target-libstdc++-v3-bootstrap
  @unless target-libbacktrace-bootstrap
  configure-target-libgfortran: maybe-all-target-libbacktrace
  @endunless target-libbacktrace-bootstrap
*************** all-gdb: maybe-all-opcodes
*** 69245,69251 ****
--- 69846,69854 ----
  all-gdb: maybe-all-libdecnumber
  all-gdb: maybe-all-libctf
  all-gdb: maybe-all-libbacktrace
+ configure-gdbserver: maybe-all-libiconv
  all-gdbserver: maybe-all-libiberty
+ all-gdbserver: maybe-all-libiconv
  configure-gdbsupport: maybe-configure-gettext
  all-gdbsupport: maybe-all-gettext
  configure-gprof: maybe-configure-gettext
*************** all-target-libgo: maybe-all-target-libat
*** 69281,69286 ****
--- 69884,69890 ----
  configure-target-libgm2: maybe-all-target-libstdc++-v3
  all-target-libgm2: maybe-all-target-libatomic
  configure-target-libgrust: maybe-all-target-libstdc++-v3
+ configure-target-libga68: maybe-all-target-libstdc++-v3
  configure-target-newlib: maybe-all-binutils
  configure-target-newlib: maybe-all-ld
  configure-target-libgfortran: maybe-all-target-libbacktrace
*************** configure-target-zlib: maybe-all-target-
*** 69387,69392 ****
--- 69991,69997 ----
  configure-target-rda: maybe-all-target-libgcc
  configure-target-libada: maybe-all-target-libgcc
  configure-target-libgm2: maybe-all-target-libgcc
+ configure-target-libga68: maybe-all-target-libgcc
  configure-target-libgomp: maybe-all-target-libgcc
  configure-target-libitm: maybe-all-target-libgcc
  configure-target-libatomic: maybe-all-target-libgcc
*************** configure-target-libada: maybe-all-targe
*** 69433,69438 ****
--- 70038,70045 ----
  
  configure-target-libgm2: maybe-all-target-newlib maybe-all-target-libgloss
  
+ configure-target-libga68: maybe-all-target-newlib maybe-all-target-libgloss
+ 
  configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss
  
  configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss
*************** configure-target-libgcobol: maybe-all-ta
*** 69446,69451 ****
--- 70053,70148 ----
  configure-target-libgcobol: maybe-all-target-libstdc++-v3
  
  
+ @if gcc-bootstrap
+ configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-zlib: maybe-all-stage1-target-libatomic
+ configure-stage2-target-zlib: maybe-all-stage2-target-libatomic
+ configure-stage3-target-zlib: maybe-all-stage3-target-libatomic
+ configure-stage4-target-zlib: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic
+ configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic
+ configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic
+ configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic
+ configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic
+ configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic
+ configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic
+ configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic
+ configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic
+ configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic
+ @endif gcc-bootstrap
+ 
+ @if gcc-no-bootstrap
+ configure-target-libstdc++-v3: maybe-all-target-libatomic
+ configure-target-libsanitizer: maybe-all-target-libatomic
+ configure-target-libvtv: maybe-all-target-libatomic
+ configure-target-libssp: maybe-all-target-libatomic
+ configure-target-libbacktrace: maybe-all-target-libatomic
+ configure-target-libquadmath: maybe-all-target-libatomic
+ configure-target-libgfortran: maybe-all-target-libatomic
+ configure-target-libobjc: maybe-all-target-libatomic
+ configure-target-libgo: maybe-all-target-libatomic
+ configure-target-libphobos: maybe-all-target-libatomic
+ configure-target-libtermcap: maybe-all-target-libatomic
+ configure-target-winsup: maybe-all-target-libatomic
+ configure-target-libffi: maybe-all-target-libatomic
+ configure-target-zlib: maybe-all-target-libatomic
+ configure-target-rda: maybe-all-target-libatomic
+ configure-target-libada: maybe-all-target-libatomic
+ configure-target-libgm2: maybe-all-target-libatomic
+ configure-target-libga68: maybe-all-target-libatomic
+ configure-target-libgomp: maybe-all-target-libatomic
+ configure-target-libitm: maybe-all-target-libatomic
+ configure-target-libgrust: maybe-all-target-libatomic
+ @endif gcc-no-bootstrap
+ 
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
  INSTALL_GDB_TK = @INSTALL_GDB_TK@
diff -Nrcpad gcc-15.2.0/Makefile.tpl gcc-16.1.0-RC-20260423/Makefile.tpl
*** gcc-15.2.0/Makefile.tpl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/Makefile.tpl	Thu Apr 23 11:07:32 2026
*************** in
*** 6,12 ****
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
--- 6,12 ----
  #
  # Makefile for directory with subdirs to build.
  #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
! #   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
  #   Free Software Foundation
  #
  # This file is free software; you can redistribute it and/or modify
*************** build_alias=@build_noncanonical@
*** 41,46 ****
--- 41,47 ----
  build_vendor=@build_vendor@
  build_os=@build_os@
  build=@build@
+ cpu_type=@cpu_type@
  host_alias=@host_noncanonical@
  host_vendor=@host_vendor@
  host_os=@host_os@
*************** BASE_EXPORTS = \
*** 146,153 ****
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \
! 	GUILE="$(GUILE)"; export GUILE;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
--- 147,153 ----
  	M4="$(M4)"; export M4; \
  	SED="$(SED)"; export SED; \
  	AWK="$(AWK)"; export AWK; \
! 	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
  
  # This is the list of variables to export in the environment when
  # configuring subdirectories for the build system.
*************** BUILD_EXPORTS = \
*** 163,168 ****
--- 163,170 ----
  	CXX="$(CXX_FOR_BUILD)"; export CXX; \
  	CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
+ 	A68="$(A68_FOR_BUILD)"; export A68; \
+ 	A68FLAGS="$(A68FLAGS_FOR_BUILD)"; export A68FLAGS; \
  	GOC="$(GOC_FOR_BUILD)"; export GOC; \
  	GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \
  	GDC="$(GDC_FOR_BUILD)"; export GDC; \
*************** HOST_EXPORTS = \
*** 206,214 ****
--- 208,218 ----
  	CXX="$(CXX)"; export CXX; \
  	CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \
+ 	A68="$(A68)"; export A68; \
  	GOC="$(GOC)"; export GOC; \
  	GDC="$(GDC)"; export GDC; \
  	GM2="$(GM2)"; export GM2; \
+ 	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
  	AR="$(AR)"; export AR; \
  	AS="$(AS)"; export AS; \
  	CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
*************** HOST_EXPORTS = \
*** 245,250 ****
--- 249,255 ----
  	GMPINC="$(HOST_GMPINC)"; export GMPINC; \
  	ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \
  	ISLINC="$(HOST_ISLINC)"; export ISLINC; \
+ 	TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \
  	XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \
  @if gcc-bootstrap
  	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
*************** POSTSTAGE1_HOST_EXPORTS = \
*** 279,284 ****
--- 284,294 ----
  	CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
  	$(POSTSTAGE1_CXX_EXPORT) \
  	$(LTO_EXPORTS) \
+ 	A68="$$r/$(HOST_SUBDIR)/prev-gcc/ga68$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \
+ 	  -B$(build_tooldir)/bin/ $(A68FLAGS_FOR_TARGET) \
+ 	  -B$$r/prev-$(TARGET_SUBDIR)/libga68/.libs"; \
+ 	export A68; \
+ 	A68_FOR_BUILD="$$A68"; export A68_FOR_BUILD; \
  	GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \
  	  -B$(build_tooldir)/bin/ $(GDCFLAGS_FOR_TARGET) \
  	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/gcc \
*************** BASE_TARGET_EXPORTS = \
*** 311,319 ****
--- 321,331 ----
  	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
  	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  	GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \
+ 	A68="$(A68_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export A68; \
  	GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \
  	GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \
  	GM2="$(GM2_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GM2; \
+ 	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
  	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
  	DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \
  	LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \
*************** CXX_FOR_BUILD = @CXX_FOR_BUILD@
*** 380,388 ****
--- 392,402 ----
  DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
  DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@
  GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@
+ A68_FOR_BUILD = @A68_FOR_BUILD@
  GOC_FOR_BUILD = @GOC_FOR_BUILD@
  GDC_FOR_BUILD = @GDC_FOR_BUILD@
  GM2_FOR_BUILD = @GM2_FOR_BUILD@
+ GNATMAKE_FOR_BUILD = @GNATMAKE_FOR_BUILD@
  LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
  LD_FOR_BUILD = @LD_FOR_BUILD@
  NM_FOR_BUILD = @NM_FOR_BUILD@
*************** DLLTOOL = @DLLTOOL@
*** 433,439 ****
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
--- 447,453 ----
  DSYMUTIL = @DSYMUTIL@
  LD = @LD@
  LIPO = @LIPO@
! NM = @NM@ @NM_PLUGIN_OPTION@
  OBJDUMP = @OBJDUMP@
  OTOOL = @OTOOL@
  RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
*************** STRIP = @STRIP@
*** 442,447 ****
--- 456,462 ----
  WINDRES = @WINDRES@
  WINDMC = @WINDMC@
  
+ A68 = @A68@
  GDC = @GDC@
  GNATBIND = @GNATBIND@
  GNATMAKE = @GNATMAKE@
*************** LIBCFLAGS = $(CFLAGS)
*** 452,457 ****
--- 467,473 ----
  CXXFLAGS = @CXXFLAGS@
  LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  GOCFLAGS = $(CFLAGS)
+ A68FLAGS = @A68FLAGS@
  GDCFLAGS = @GDCFLAGS@
  GM2FLAGS = $(CFLAGS)
  
*************** CRAB1_LIBS = @CRAB1_LIBS@
*** 459,466 ****
  
  PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
  
- GUILE = guile
- 
  # Pass additional PGO and LTO compiler options to the PGO build.
  BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
  override CFLAGS += $(BUILD_CFLAGS)
--- 475,480 ----
*************** STAGE1_CONFIGURE_FLAGS = $(STAGE1_CHECKI
*** 542,548 ****
--- 556,572 ----
  	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
  	  --disable-build-format-warnings
  
+ @if target-libstdc++-v3-bootstrap
+ STAGE1_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ STAGE2_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ STAGEprofile_CONFIGURE_FLAGS += --disable-libstdcxx-pch
+ @endif target-libstdc++-v3-bootstrap
+ 
  @if target-libphobos-bootstrap
+ # Defaults for each stage if we're bootstrapping D.
+ [+ FOR bootstrap-stage +]
+ STAGE[+id+]_GDCFLAGS = $(GDCFLAGS)
+ [+ ENDFOR bootstrap-stage +]
  STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only
  STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only
  @endif target-libphobos-bootstrap
*************** STAGE2_CFLAGS += -fno-checking
*** 556,561 ****
--- 580,589 ----
  STAGE2_TFLAGS += -fno-checking
  STAGE3_CFLAGS += -fchecking=1
  STAGE3_TFLAGS += -fchecking=1
+ @if target-libphobos-bootstrap
+ STAGE2_GDCFLAGS += -fno-checking
+ STAGE3_GDCFLAGS += -fchecking=1
+ @endif target-libphobos-bootstrap
  
  STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate
  STAGEprofile_TFLAGS = $(STAGE2_TFLAGS)
*************** do-compare3 = $(do-compare)
*** 586,592 ****
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
--- 614,620 ----
  # Programs producing files for the TARGET machine
  # -----------------------------------------------
  
! AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@
  AS_FOR_TARGET=@AS_FOR_TARGET@
  CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@
  
*************** CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_
*** 599,604 ****
--- 627,633 ----
  RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@
  GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@
  GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@
+ A68_FOR_TARGET=$(STAGE_CC_WRAPPER) @A68_FOR_TARGET@
  GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@
  GM2_FOR_TARGET=$(STAGE_CC_WRAPPER) @GM2_FOR_TARGET@
  DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
*************** DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET
*** 606,616 ****
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
--- 635,645 ----
  LD_FOR_TARGET=@LD_FOR_TARGET@
  
  LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
! NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@
  OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
  OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
  OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
! RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@
  READELF_FOR_TARGET=@READELF_FOR_TARGET@
  STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
  WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
*************** LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_
*** 628,633 ****
--- 657,663 ----
  LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@
  GM2FLAGS_FOR_TARGET = -O2 -g
  GOCFLAGS_FOR_TARGET = -O2 -g
+ A68FLAGS_FOR_TARGET = -O2 -g
  GDCFLAGS_FOR_TARGET = -O2 -g
  
  FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
*************** BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass
*** 710,715 ****
--- 740,746 ----
  	"[+flag+]=$([+flag+])"[+ ENDIF optional+][+ ENDFOR flags_to_pass +][+ FOR bootstrap-stage +] \
  	"STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \
  	"STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \
+ 	"STAGE[+id+]_GDCFLAGS=$(STAGE[+id+]_GDCFLAGS)" \
  	"STAGE[+id+]_GENERATOR_CFLAGS=$(STAGE[+id+]_GENERATOR_CFLAGS)" \
  	"STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \
  	$(CXX_FOR_TARGET_FLAG_TO_PASS) \
*************** EXTRA_HOST_FLAGS = \
*** 732,737 ****
--- 763,769 ----
  	'DSYMUTIL=$(DSYMUTIL)' \
  	'GFORTRAN=$(GFORTRAN)' \
  	'GOC=$(GOC)' \
+ 	'A68=$(A68)' \
  	'GDC=$(GDC)' \
  	'GM2=$(GM2)' \
  	'LD=$(LD)' \
*************** STAGE1_FLAGS_TO_PASS = \
*** 760,765 ****
--- 792,798 ----
  POSTSTAGE1_FLAGS_TO_PASS = \
  	CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
  	CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \
+ 	A68="$${A68}" A68_FOR_BUILD="$${A68_FOR_BUILD}" \
  	GDC="$${GDC}" GDC_FOR_BUILD="$${GDC_FOR_BUILD}" \
  	GM2="$${GM2}" GM2_FOR_BUILD="$${GM2_FOR_BUILD}" \
  	GNATBIND="$${GNATBIND}" \
*************** EXTRA_TARGET_FLAGS = \
*** 795,800 ****
--- 828,835 ----
  	'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \
+ 	'A68=$$(A68_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
+ 	'A68FLAGS=$$(A68FLAGS_FOR_TARGET)' \
  	'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
  	'GDCFLAGS=$$(GDCFLAGS_FOR_TARGET)' \
  	'GM2=$$(GM2_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
*************** local-distclean:
*** 977,983 ****
  	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
  	-rmdir c++tools fastjar gcc gnattools gotools 2>/dev/null
  	-rmdir libcc1 libiberty texinfo zlib 2>/dev/null
! 	-find . -name config.cache -exec rm -f {} \; \; 2>/dev/null
  
  local-maintainer-clean:
  	@echo "This command is intended for maintainers to use;"
--- 1012,1018 ----
  	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
  	-rmdir c++tools fastjar gcc gnattools gotools 2>/dev/null
  	-rmdir libcc1 libiberty texinfo zlib 2>/dev/null
! 	-find . -name config.cache -exec rm -f {} \; 2>/dev/null
  
  local-maintainer-clean:
  	@echo "This command is intended for maintainers to use;"
*************** configure-stage[+id+]-[+prefix+][+module
*** 1237,1243 ****
  	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;[+ ELSE prefix +] \
  	CFLAGS="$(STAGE[+id+]_CFLAGS)"; export CFLAGS; \
! 	CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"; export CXXFLAGS;[+ IF prev +] \
  	LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
  	LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +]; export LIBCFLAGS;[+
    ENDIF prefix +] [+extra_exports+] \
--- 1272,1279 ----
  	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;[+ ELSE prefix +] \
  	CFLAGS="$(STAGE[+id+]_CFLAGS)"; export CFLAGS; \
! 	CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"; export CXXFLAGS;[+ IF (= (get "module") "gcc") +] \
! 	GDCFLAGS="$(STAGE[+id+]_GDCFLAGS)"; export GDCFLAGS;[+ ENDIF +][+ IF prev +] \
  	LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
  	LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +]; export LIBCFLAGS;[+
    ENDIF prefix +] [+extra_exports+] \
*************** all-stage[+id+]-[+prefix+][+module+]: co
*** 1307,1313 ****
  		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \
  		CFLAGS="$(STAGE[+id+]_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE[+id+]_GENERATOR_CFLAGS)" \
! 		CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF prev +] \
  		LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
  		LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +][+ ENDIF prefix +] \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
--- 1343,1350 ----
  		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \
  		CFLAGS="$(STAGE[+id+]_CFLAGS)" \
  		GENERATOR_CFLAGS="$(STAGE[+id+]_GENERATOR_CFLAGS)" \
! 		CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF (= (get "module") "gcc") +] \
! 		GDCFLAGS="$(STAGE[+id+]_GDCFLAGS)"[+ ENDIF +][+ IF prev +] \
  		LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
  		LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +][+ ENDIF prefix +] \
  		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
*************** ENDFOR dependencies +]@endif gcc-bootstr
*** 2097,2102 ****
--- 2134,2144 ----
     (if (exist? "no_gcc")
         (hash-create-handle! lang-env-deps
  	  (string-append (get "module") "-" "no_gcc") #t))
+ 
+    (if (exist? "no_atomic")
+        (hash-create-handle! lang-env-deps
+ 	  (string-append (get "module") "-" "no_atomic") #t))
+ 
     "" +][+ ENDFOR lang_env_dependencies +]
  
  @if gcc-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_gcc"))
*************** configure-target-[+module+]: maybe-all-t
*** 2117,2122 ****
--- 2159,2175 ----
    ENDIF +]
  [+ ENDFOR target_modules +]
  
+ @if gcc-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_atomic"))
+   +][+ IF bootstrap +][+ FOR bootstrap_stage +]
+ configure-stage[+id+]-target-[+module+]: maybe-all-stage[+id+]-target-libatomic[+
+   ENDFOR +][+ ENDIF bootstrap +][+ ENDIF +][+ ENDFOR target_modules +]
+ @endif gcc-bootstrap
+ 
+ @if gcc-no-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_atomic")) +]
+ configure-target-[+module+]: maybe-all-target-libatomic[+
+   ENDIF +][+ ENDFOR target_modules +]
+ @endif gcc-no-bootstrap
+ 
  CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
  GDB_TK = @GDB_TK@
  INSTALL_GDB_TK = @INSTALL_GDB_TK@
diff -Nrcpad gcc-15.2.0/NEWS gcc-16.1.0-RC-20260423/NEWS
*** gcc-15.2.0/NEWS	Fri Aug  8 06:53:47 2025
--- gcc-16.1.0-RC-20260423/NEWS	Thu Apr 23 11:08:36 2026
*************** see ONEWS.
*** 6,12 ****
  
  ======================================================================
  http://gcc.gnu.org/gcc-15/index.html
- 
                               GCC 15 Release Series
  
     August 8, 2025
--- 6,11 ----
*************** References
*** 75,81 ****
    15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-15/changes.html
- 
                               GCC 15 Release Series
                          Changes, New Features, and Fixes
  
--- 74,79 ----
*************** Caveats
*** 89,98 ****
         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.
       * This is the last release supporting the old reload local register
         allocation code. It will be removed for GCC 16, causing targets
         that do not support the new LRA local register allocation code to
!        be removed. See the list of supported [3]targets for which ports
         are going to be affected (look for missing a, the ports that do not
         use LRA by default).
       * {0} initializer in C or C++ for unions no longer guarantees
--- 87,98 ----
         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.
+      * Support for Solaris 11.3 (*-*-solaris2.11.3) has been removed.
+        Details can be found in the [3]obsoletion announcement.
       * This is the last release supporting the old reload local register
         allocation code. It will be removed for GCC 16, causing targets
         that do not support the new LRA local register allocation code to
!        be removed. See the list of supported [4]targets for which ports
         are going to be affected (look for missing a, the ports that do not
         use LRA by default).
       * {0} initializer in C or C++ for unions no longer guarantees
*************** Caveats
*** 100,119 ****
         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.
!      * [4]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
!      * The json format for [5]-fdiagnostics-format= is deprecated and may
         be removed in a future release. Users seeking machine-readable
!        diagnostics from GCC should use [6]SARIF.
  
! [7]General Improvements
  
       * The default vectorizer cost model at -O2 has been enhanced to
!        handle an 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 only for loops
--- 100,120 ----
         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 the old GCC
!        behavior.
!      * [5]-fanalyzer is still only suitable for analyzing C code. In
         particular, using it on C++ is unlikely to give meaningful output.
!      * The json format for [6]-fdiagnostics-format= is deprecated and may
         be removed in a future release. Users seeking machine-readable
!        diagnostics from GCC should use [7]SARIF.
  
! [8]General Improvements
  
       * The default vectorizer cost model at -O2 has been enhanced to
!        handle an unknown tripcount. It still disables vectorization of
!        loops when any run-time check for data dependence or alignment is
!        required. It also disables vectorization of epilogue loops, but is
!        otherwise 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 only for loops
*************** Caveats
*** 123,131 ****
         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 [8]-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.
--- 124,132 ----
         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 [9]-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.
*************** Caveats
*** 135,162 ****
         larger than 4096. Very large source files have more accurate
         location reporting.
       * GCC can now emit diagnostics in multiple formats simultaneously,
!        via the new option [9]-fdiagnostics-add-output=. For example, use
!        [10]-fdiagnostics-add-output=sarif to get both GCC's classic text
!        output on stderr and [11]SARIF output to a file. There is also a
!        new option [12]-fdiagnostics-set-output= which exposes more control
         than existing options for some experimental cases. These new
         options are an alternative to the existing
!        [13]-fdiagnostics-format= which only supports a single output
         format at a time.
  
! [14]New Languages and Language specific improvements
  
!   [15]OpenMP
  
!    See the [16]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 [17]GNU Offloading and Multi Processing
         Runtime Library Manual.
!      * GCC added ompx_gnu_pinned_mem_alloc as a [18]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
--- 136,163 ----
         larger than 4096. Very large source files have more accurate
         location reporting.
       * GCC can now emit diagnostics in multiple formats simultaneously,
!        via the new option [10]-fdiagnostics-add-output=. For example, use
!        [11]-fdiagnostics-add-output=sarif to get both GCC's classic text
!        output on stderr and [12]SARIF output to a file. There is also a
!        new option [13]-fdiagnostics-set-output= which exposes more control
         than existing options for some experimental cases. These new
         options are an alternative to the existing
!        [14]-fdiagnostics-format= which only supports a single output
         format at a time.
  
! [15]New Languages and Language specific improvements
  
!   [16]OpenMP
  
!    See the [17]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 [18]GNU Offloading and Multi Processing
         Runtime Library Manual.
!      * GCC added ompx_gnu_pinned_mem_alloc as a [19]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
*************** Caveats
*** 165,171 ****
       * 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 [19]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.
--- 166,172 ----
       * 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 [20]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.
*************** Caveats
*** 180,197 ****
         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 [20]Cuda,
!        Cuda Driver, and HIP on Nvida GPUs and for [21]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 [22]get_device_from_uid and
!        [23]omp_get_uid_from_device API routines have been added.
  
!   [24]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
--- 181,198 ----
         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 [21]Cuda,
!        Cuda Driver, and HIP on Nvida GPUs and for [22]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 [23]get_device_from_uid and
!        [24]omp_get_uid_from_device API routines have been added.
  
!   [25]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
*************** Caveats
*** 203,219 ****
         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 [25]the COBOLworx
         website.
  
!   [26]Ada
  
!      * GNAT now allows the [27]'Round attribute also for ordinary
         fixed-point types.
!      * The new GNAT attribute [28]'Super can be applied to objects of
         tagged types in order to obtain a view conversion to the most
         immediate specific parent type.
!      * [29]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;
--- 204,220 ----
         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 [26]the COBOLworx
         website.
  
!   [27]Ada
  
!      * GNAT now allows the [28]'Round attribute also for ordinary
         fixed-point types.
!      * The new GNAT attribute [29]'Super can be applied to objects of
         tagged types in order to obtain a view conversion to the most
         immediate specific parent type.
!      * [30]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;
*************** type Base is tagged null record with Siz
*** 222,228 ****
  type Derived_Type is new Base with record Data_Field : Integer; end record;
       -- ERROR if Derived_Type exceeds 16 bytes
  
!      * New [30]Finalizable aspect. It is a GNAT language extension which
         serves as a lightweight alternative to controlled types.
  type T is record
       ...
--- 223,229 ----
  type Derived_Type is new Base with record Data_Field : Integer; end record;
       -- ERROR if Derived_Type exceeds 16 bytes
  
!      * New [31]Finalizable aspect. It is a GNAT language extension which
         serves as a lightweight alternative to controlled types.
  type T is record
       ...
*************** procedure Adjust     (Obj : in out T);
*** 235,259 ****
  procedure Finalize   (Obj : in out T);
  procedure Initialize (Obj : in out T);
  
!      * The aspect [31]No_Raise has been added, it declares that a
         subprogram cannot raise an exception.
!      * The aspect [32]External_Initialization has been added, it allows
         for data to be initialized using an external file which is loaded
         during compilation time.
!      * The aspect [33]Exit_Cases has been added to annotate functions and
!        procedures with side effects in SPARK (see [34]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 [35]some extra experimental extensions are
         enabled.
       * Several new compilation flags have been added, some examples
!        include [36]-gnatis, [37]-gnatw.n, [38]-gnatw_l and [39]-gnatw.v.
         The internal debugging utilities for the compiler have also
!        received a lot of new options, please refer to [40]debug.adb for
         more information.
       * The diagnostics code has seen major refactoring, it now supports
         the sarif format -fdiagnostics-format=sarif-file among other
--- 236,260 ----
  procedure Finalize   (Obj : in out T);
  procedure Initialize (Obj : in out T);
  
!      * The aspect [32]No_Raise has been added, it declares that a
         subprogram cannot raise an exception.
!      * The aspect [33]External_Initialization has been added, it allows
         for data to be initialized using an external file which is loaded
         during compilation time.
!      * The aspect [34]Exit_Cases has been added to annotate functions and
!        procedures with side effects in SPARK (see [35]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 [36]some extra experimental extensions are
         enabled.
       * Several new compilation flags have been added, some examples
!        include [37]-gnatis, [38]-gnatw.n, [39]-gnatw_l and [40]-gnatw.v.
         The internal debugging utilities for the compiler have also
!        received a lot of new options, please refer to [41]debug.adb for
         more information.
       * The diagnostics code has seen major refactoring, it now supports
         the sarif format -fdiagnostics-format=sarif-file among other
*************** procedure Initialize (Obj : in out T);
*** 266,278 ****
       * 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 [41]SPARK
         Library is recommended as a substitute.
  
!   [42]C family
  
!      * A [43]musttail statement attribute was added to enforce tail calls.
!      * [44]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
--- 267,286 ----
       * 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 [42]SPARK
         Library is recommended as a substitute.
+      * The new [43]finally [44][RFC] keyword makes it possible to specify
+        a sequence of statements that shall be executed when another
+        sequence of statements is completed, regardless of whether the
+        completion was normal or abnormal.
+      * [45]String interpolation [46][RFC], inspired by python f-strings
+        (e.g. f"The name is {Name} and the sum is {X + Y}."), has been
+        added.
  
!   [47]C family
  
!      * A [48]musttail statement attribute was added to enforce tail calls.
!      * [49]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
*************** sm.  */
*** 293,306 ****
       * 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 [45]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 [46]-Wtrailing-whitespace= and [47]-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 [48]-Wheader-guard warning has been added and enabled in -Wall
         to warn about some inconsistencies in header file guarding macros.
       * The C and C++ frontends now provide fix-it hints for some cases of
         missing '&' and '*'. For example, note the ampersand fix-it hint in
--- 301,314 ----
       * 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 [50]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 [51]-Wtrailing-whitespace= and [52]-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 [53]-Wheader-guard warning has been added and enabled in -Wall
         to warn about some inconsistencies in header file guarding macros.
       * The C and C++ frontends now provide fix-it hints for some cases of
         missing '&' and '*'. For example, note the ampersand fix-it hint in
*************** nt'}
*** 334,345 ****
         the left-hand type is shown in green and the right-hand type in
         dark blue.
  
!   [49]C
  
       * C23 by default: GCC 15 changes the default language version for C
!        compilation from [50]-std=gnu17 to [51]-std=gnu23. If your code
         relies on older versions of the C standard, you will need to either
!        add [52]-std= to your build flags, or port your code; see [53]the
         porting notes.
       * Some more C23 features have been implemented:
            + #embed preprocessing directive support.
--- 342,353 ----
         the left-hand type is shown in green and the right-hand type in
         dark blue.
  
!   [54]C
  
       * C23 by default: GCC 15 changes the default language version for C
!        compilation from [55]-std=gnu17 to [56]-std=gnu23. If your code
         relies on older versions of the C standard, you will need to either
!        add [57]-std= to your build flags, or port your code; see [58]the
         porting notes.
       * Some more C23 features have been implemented:
            + #embed preprocessing directive support.
*************** nt'}
*** 373,462 ****
              compiler side, C library headers will need adjustments too if
              using nonnull attribute).
  
!   [54]C++
  
       * Several C++26 features have been implemented:
!           + [55]P2558R2, Add @, $, and ` to the basic character set
!             ([56]PR110343)
!           + [57]P2552R3, On the ignorability of standard attributes
!             ([58]PR110345)
!           + [59]P2662R3, Pack indexing ([60]PR113798)
!           + [61]P0609R3, Attributes for structured bindings ([62]PR114456)
!           + [63]P2573R2, = delete("reason"); ([64]PR114458)
!           + [65]P2893R3, Variadic friends ([66]PR114459)
!           + [67]P3034R1, Disallow module declarations to be macros
!             ([68]PR114461)
!           + [69]P2747R2, constexpr placement new ([70]PR115744)
!           + [71]P0963R3, Structured binding declaration as a condition
!             ([72]PR115745)
!           + [73]P3144R2, Deleting a pointer to an incomplete type should
!             be ill-formed ([74]PR115747)
!           + [75]P3176R0, Oxford variadic comma ([76]PR117786)
!           + [77]P2865R5, Removing deprecated array comparisons
!             ([78]PR117788)
!           + [79]P1967R14, #embed ([80]PR119065)
!           + [81]P3247R2, Deprecating the notion of trivial types
!             ([82]PR117787)
       * Several C++23 features have been implemented:
!           + [83]P2615R1, Meaningful exports ([84]PR107688)
!           + [85]P2718R0, Wording for P2644R1 Fix for Range-based for Loop
!             ([86]PR107637)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [87]DR 36, using-declarations in multiple-declaration contexts
!           + [88]DR 882, Defining main as deleted
!           + [89]DR 1363, Triviality vs multiple default constructors
!           + [90]DR 1496, Triviality with deleted and missing default
              constructors
!           + [91]DR 2387, Linkage of const-qualified variable template
!           + [92]DR 2521, User-defined literals and reserved identifiers
!           + [93]DR 2627, Bit-fields and narrowing conversions
!           + [94]DR 2819, Cast from null pointer value in a constant
              expression (C++26 only)
!           + [95]DR 2867, Order of initialization for structured bindings
!           + [96]DR 2918, Consideration of constraints for address of
              overloaded function
!      * Inline assembler statements now support [97]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 [98]-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 [99]-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 [100]-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 [101]flag_enum attribute to indicate that the enumerators are
         used in bitwise operations; this suppresses a -Wswitch warning.
!      * The [102]-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
!        [103]-Wdefaulted-function-deleted warning warns when an explicitly
         defaulted function is deleted.
!      * The implementation of [104]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 [105]the manual for more info.
!      * More prvalues are evaluated at compile time ([106]git).
       * A new way of presenting complicated diagnostics (such as C++
         template errors) is available via
!        [107]-fdiagnostics-set-output=text:experimental-nesting=yes; an
!        example can be seen [108]here. This should be regarded as
         experimental in this release and is subject to change.
       * Various other diagnostic improvements.
  
!     [109]Runtime Library (libstdc++)
  
       * Debug assertions are now enabled by default for unoptimized builds.
         Use -D_GLIBCXX_NO_ASSERTIONS to override this.
--- 381,470 ----
              compiler side, C library headers will need adjustments too if
              using nonnull attribute).
  
!   [59]C++
  
       * Several C++26 features have been implemented:
!           + [60]P2558R2, Add @, $, and ` to the basic character set
!             ([61]PR110343)
!           + [62]P2552R3, On the ignorability of standard attributes
!             ([63]PR110345)
!           + [64]P2662R3, Pack indexing ([65]PR113798)
!           + [66]P0609R3, Attributes for structured bindings ([67]PR114456)
!           + [68]P2573R2, = delete("reason"); ([69]PR114458)
!           + [70]P2893R3, Variadic friends ([71]PR114459)
!           + [72]P3034R1, Disallow module declarations to be macros
!             ([73]PR114461)
!           + [74]P2747R2, constexpr placement new ([75]PR115744)
!           + [76]P0963R3, Structured binding declaration as a condition
!             ([77]PR115745)
!           + [78]P3144R2, Deleting a pointer to an incomplete type should
!             be ill-formed ([79]PR115747)
!           + [80]P3176R0, Oxford variadic comma ([81]PR117786)
!           + [82]P2865R5, Removing deprecated array comparisons
!             ([83]PR117788)
!           + [84]P1967R14, #embed ([85]PR119065)
!           + [86]P3247R2, Deprecating the notion of trivial types
!             ([87]PR117787)
       * Several C++23 features have been implemented:
!           + [88]P2615R1, Meaningful exports ([89]PR107688)
!           + [90]P2718R0, Wording for P2644R1 Fix for Range-based for Loop
!             ([91]PR107637)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [92]DR 36, using-declarations in multiple-declaration contexts
!           + [93]DR 882, Defining main as deleted
!           + [94]DR 1363, Triviality vs multiple default constructors
!           + [95]DR 1496, Triviality with deleted and missing default
              constructors
!           + [96]DR 2387, Linkage of const-qualified variable template
!           + [97]DR 2521, User-defined literals and reserved identifiers
!           + [98]DR 2627, Bit-fields and narrowing conversions
!           + [99]DR 2819, Cast from null pointer value in a constant
              expression (C++26 only)
!           + [100]DR 2867, Order of initialization for structured bindings
!           + [101]DR 2918, Consideration of constraints for address of
              overloaded function
!      * Inline assembler statements now support [102]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 [103]-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 [104]-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 [105]-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 [106]flag_enum attribute to indicate that the enumerators are
         used in bitwise operations; this suppresses a -Wswitch warning.
!      * The [107]-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
!        [108]-Wdefaulted-function-deleted warning warns when an explicitly
         defaulted function is deleted.
!      * The implementation of [109]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 [110]the manual for more info.
!      * More prvalues are evaluated at compile time ([111]git).
       * A new way of presenting complicated diagnostics (such as C++
         template errors) is available via
!        [112]-fdiagnostics-set-output=text:experimental-nesting=yes; an
!        example can be seen [113]here. This should be regarded as
         experimental in this release and is subject to change.
       * Various other diagnostic improvements.
  
!     [114]Runtime Library (libstdc++)
  
       * Debug assertions are now enabled by default for unoptimized builds.
         Use -D_GLIBCXX_NO_ASSERTIONS to override this.
*************** nt'}
*** 476,505 ****
            + std::from_range_t constructors added to all containers, as
              well as new member functions such as insert_range.
            + Formatting of ranges and tuples with std::format, as well as
!             string escaping for debug formats, thanks to Tomasz Kaminski.
            + Clarify handling of encodings in localized formatting of
              chrono types.
  
!   [110]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
!        [111]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 [112]-finclude-imports was added, which tells the
         compiler to include imported modules in the compilation, as if they
         were given on the command-line.
  
!   [113]Fortran
  
       * Fortran 2018 and 2023 locality specifiers to do concurrent are now
         supported.
       * Experimental support for unsigned modular integers, enabled by
!        -funsigned; see [114]gfortran documentation for details. This
!        follows ([115]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
--- 484,513 ----
            + std::from_range_t constructors added to all containers, as
              well as new member functions such as insert_range.
            + Formatting of ranges and tuples with std::format, as well as
!             string escaping for debug formats, thanks to Tomasz Kamiński.
            + Clarify handling of encodings in localized formatting of
              chrono types.
  
!   [115]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
!        [116]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 [117]-finclude-imports was added, which tells the
         compiler to include imported modules in the compilation, as if they
         were given on the command-line.
  
!   [118]Fortran
  
       * Fortran 2018 and 2023 locality specifiers to do concurrent are now
         supported.
       * Experimental support for unsigned modular integers, enabled by
!        -funsigned; see [119]gfortran documentation for details. This
!        follows ([120]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
*************** nt'}
*** 528,534 ****
         interoperable procedures with assumed shape and assumed rank
         arguments that require the header file <ISO_Fortran_binding.h>.
  
!   [116]Modula-2
  
       * The keyword FORWARD has been implemented in the compiler and is
         available by default in all dialects.
--- 536,542 ----
         interoperable procedures with assumed shape and assumed rank
         arguments that require the header file <ISO_Fortran_binding.h>.
  
!   [121]Modula-2
  
       * The keyword FORWARD has been implemented in the compiler and is
         available by default in all dialects.
*************** nt'}
*** 538,544 ****
       * Access to the GCC builtins clz, clzll, ctz and ctzll is now
         available from the module Builtins.
  
!   [117]Rust
  
       * Basic inline assembly support has been added to the frontend, which
         enables us to compile the architecture specific functions of core
--- 546,552 ----
       * Access to the GCC builtins clz, clzll, ctz and ctzll is now
         available from the module Builtins.
  
!   [122]Rust
  
       * Basic inline assembly support has been added to the frontend, which
         enables us to compile the architecture specific functions of core
*************** nt'}
*** 572,580 ****
       * Rewrite of our name resolution algorithm to properly handle the
         complex import/export structure used in core 1.49.
  
! [118]New Targets and Target Specific Improvements
  
!   [119]AArch64
  
       * Support has been added for the AArch64 MinGW target
         (aarch64-w64-mingw32). At present, this target supports C and C++
--- 580,588 ----
       * Rewrite of our name resolution algorithm to properly handle the
         complex import/export structure used in core 1.49.
  
! [123]New Targets and Target Specific Improvements
  
!   [124]AArch64
  
       * Support has been added for the AArch64 MinGW target
         (aarch64-w64-mingw32). At present, this target supports C and C++
*************** nt'}
*** 651,657 ****
            + 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
--- 659,665 ----
            + 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
*************** nt'}
*** 669,675 ****
              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 ([120]ACLE):
            + guarded control stacks
            + lookup table instructions with 2-bit and 4-bit indices
              (predefined macro __ARM_FEATURE_LUT, enabled by +lut)
--- 677,683 ----
              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 ([125]ACLE):
            + guarded control stacks
            + lookup table instructions with 2-bit and 4-bit indices
              (predefined macro __ARM_FEATURE_LUT, enabled by +lut)
*************** nt'}
*** 746,757 ****
            + improved register allocation, such as eliminating some vector
              moves
  
!   [121]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
!        [122]-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,
--- 754,765 ----
            + improved register allocation, such as eliminating some vector
              moves
  
!   [126]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
!        [127]-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,
*************** nt'}
*** 759,772 ****
         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 [123]installation notes.
       * Support for Fiji (gfx803) devices has been removed (this was
         already deprecated in GCC 14).
  
!   [124]AVR
  
       * Support has been added for the signal(num) and interrupt(num)
!        [125]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
--- 767,780 ----
         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 [128]installation notes.
       * Support for Fiji (gfx803) devices has been removed (this was
         already deprecated in GCC 14).
  
!   [129]AVR
  
       * Support has been added for the signal(num) and interrupt(num)
!        [130]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
*************** nt'}
*** 775,810 ****
         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 [126]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 [127]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 [128]-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 [129]-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 [130]-mfuse-move,
!        [131]-msplit-ldst, [132]-msplit-bit-shift and
!        [133]-muse-nonzero-bits.
!      * Support for the following devices has been added in v15.2:
            + AVR32DA28S, AVR32DA32S, AVR32DA48S, AVR64DA28S, AVR64DA32S,
              AVR64DA48S AVR64DA64S, AVR128DA28S, AVR128DA32S, AVR128DA48S,
              AVR128DA64S.
  
!   [134]IA-32/x86-64
  
       * New ISA extension support for Intel AMX-AVX512 was added.
         AMX-AVX512 intrinsics are available via the -mamx-avx512 compiler
--- 783,825 ----
         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 [131]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 [132]named address space
         __flashx. It is similar to the __memx address space introduced in
!        GCC 4.7, but reading is more efficient since it only supports
         reading from program memory. Objects in the __flashx address space
!        are located in the .progmemx.data section. The address space is
!        available when the feature-test macro __FLASHX is defined.
       * Apart from the built-in types __int24 and __uint24 supported since
!        GCC 4.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 [133]-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 [134]-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 [135]-mfuse-move,
!        [136]-msplit-ldst, [137]-msplit-bit-shift and
!        [138]-muse-nonzero-bits.
!      * Support for the following devices has been added in GCC 15.2:
            + AVR32DA28S, AVR32DA32S, AVR32DA48S, AVR64DA28S, AVR64DA32S,
              AVR64DA48S AVR64DA64S, AVR128DA28S, AVR128DA32S, AVR128DA48S,
              AVR128DA64S.
+      * Support for the following devices has been added in GCC 15.3:
+           + AVR32EB14, AVR32EB20, AVR32EB28, AVR32EB32, AVR16LA14,
+             AVR16LA20, AVR16LA28, AVR16LA32, AVR32LA14, AVR32LA20,
+             AVR32LA28, AVR32LA32.
+      * Support for the IEEE double functions sincos and sincosl has been
+        added in GCC 15.3.
  
!   [139]IA-32/x86-64
  
       * New ISA extension support for Intel AMX-AVX512 was added.
         AMX-AVX512 intrinsics are available via the -mamx-avx512 compiler
*************** nt'}
*** 831,840 ****
         intrinsics are available via the -msm4 -mavx10.2 compiler switches.
       * GCC now supports the Intel CPU named Diamond Rapids through
         -march=diamondrapids. Based on ISA extensions enabled on Granite
!        Rapids D, 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,
--- 846,864 ----
         intrinsics are available via the -msm4 -mavx10.2 compiler switches.
       * GCC now supports the Intel CPU named Diamond Rapids through
         -march=diamondrapids. Based on ISA extensions enabled on Granite
!        Rapids D, the switch in addition 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. Since GCC
!        15.2, AMX-TRANSPOSE and USER_MSR are not enabled any longer.
!      * Since GCC 15.2, CLDEMOTE is not enabled through the compiler
!        switches -march=alderlake, -march=arrowlake, -march=arrowlake-s,
!        -march=gracemont, -march=lunarlake, -march=meteorlake,
!        -march=pantherlake and -march=raptorlake any longer. KL and WIDEKL
!        are not enabled through the compiler switches
!        -march=clearwaterforest and -march=pantherlake any longer.
!        PREFETCHI is not enabled through the compiler switch
!        -march=pantherlake any longer.
       * 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,
*************** nt'}
*** 854,878 ****
         AMD Core Math Library (ACML). However, that library is end-of-life
         and AOCL offers many more vectorized functions.
  
!   [135]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 [136]documentation.
       * Support has been added for the new option
!        [137]-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.
  
!   [138]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 [139]nvptx-tools is required.
  
!   [140]S/390, System z, IBM z Systems
  
       * Support for the z17 architecture has been added. When using option
         -march=z17, the compiler will generate code making use of the new
--- 878,902 ----
         AMD Core Math Library (ACML). However, that library is end-of-life
         and AOCL offers many more vectorized functions.
  
!   [140]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 [141]documentation.
       * Support has been added for the new option
!        [142]-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.
  
!   [143]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 [144]nvptx-tools is required.
  
!   [145]S/390, System z, IBM z Systems
  
       * Support for the z17 architecture has been added. When using option
         -march=z17, the compiler will generate code making use of the new
*************** nt'}
*** 884,904 ****
         enabled as before using option -mzvector.
       * Option -mlra and its counterpart -mno-lra have been removed.
  
!   [141]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.
  
! [142]Operating Systems
  
    PowerPC Darwin
  
       * Fortran's IEEE modules are now supported on Darwin PowerPC.
  
! [143]Improvements to SARIF support
  
!      * GCC's [144]SARIF output has been extended in the following ways
            + GCC's SARIF output now captures all locations and labelled
              source ranges associated with a diagnostic, so that e.g. for
        PATH/missing-semicolon.c: In function 'missing_semicolon':
--- 908,928 ----
         enabled as before using option -mzvector.
       * Option -mlra and its counterpart -mno-lra have been removed.
  
!   [146]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.
  
! [147]Operating Systems
  
    PowerPC Darwin
  
       * Fortran's IEEE modules are now supported on Darwin PowerPC.
  
! [148]Improvements to SARIF support
  
!      * GCC's [149]SARIF output has been extended in the following ways
            + GCC's SARIF output now captures all locations and labelled
              source ranges associated with a diagnostic, so that e.g. for
        PATH/missing-semicolon.c: In function 'missing_semicolon':
*************** nt'}
*** 915,936 ****
            + For every location in a diagnostic that isn't in the main
              source file, GCC's SARIF output now captures the chain of
              #include directives that led to that location, using
!             locationRelationship objects ([145]�3.34).
!           + SARIF [146]message objects now capture embedded URLs in GCC
!             diagnostics ([147]�3.11.6). In particular, references to other
              events in diagnostic paths now capture URLs to the pertinent
              threadFlowLocation object for the other event, such as
            "text": "second 'free' here; first 'free' was at [(1)](sarif:/runs/0/r
  esults/0/codeFlows/0/threadFlows/0/locations/0)"
  
            + GCC's SARIF output now captures the command-line arguments
!             ([148]�3.20.2), timestamps for the start and end of
!             compilation ([149]��3.20.7-8), and the working directory
!             ([150]�3.20.19). It also now sets the roles property for SARIF
!             artifact objects ([151]�3.24.6).
            + For warnings where encoding is significant, such as
!             [152]-Wbidi-chars for a "trojan source" attack GCC's SARIF
!             output gains a rendered property ([153]�3.3.4) that escapes
              non-ASCII text in source snippets, such as:
      "rendered": {"text":
  
--- 939,960 ----
            + For every location in a diagnostic that isn't in the main
              source file, GCC's SARIF output now captures the chain of
              #include directives that led to that location, using
!             locationRelationship objects ([150]§3.34).
!           + SARIF [151]message objects now capture embedded URLs in GCC
!             diagnostics ([152]§3.11.6). In particular, references to other
              events in diagnostic paths now capture URLs to the pertinent
              threadFlowLocation object for the other event, such as
            "text": "second 'free' here; first 'free' was at [(1)](sarif:/runs/0/r
  esults/0/codeFlows/0/threadFlows/0/locations/0)"
  
            + GCC's SARIF output now captures the command-line arguments
!             ([153]§3.20.2), timestamps for the start and end of
!             compilation ([154]§§3.20.7-8), and the working directory
!             ([155]§3.20.19). It also now sets the roles property for SARIF
!             artifact objects ([156]§3.24.6).
            + For warnings where encoding is significant, such as
!             [157]-Wbidi-chars for a "trojan source" attack GCC's SARIF
!             output gains a rendered property ([158]§3.3.4) that escapes
              non-ASCII text in source snippets, such as:
      "rendered": {"text":
  
*************** E)\n"
*** 947,953 ****
              (shown here with the JSON string split into multiple lines for
              clarity).
            + Experimental SARIF 2.2 output has been added, via
!             [154]-fdiagnostics-add-output=sarif:version=2.2-prerelease.
              Given that the SARIF 2.2 specification is still under
              development, this uses an unofficial draft of the
              specification, and is subject to change.
--- 971,977 ----
              (shown here with the JSON string split into multiple lines for
              clarity).
            + Experimental SARIF 2.2 output has been added, via
!             [159]-fdiagnostics-add-output=sarif:version=2.2-prerelease.
              Given that the SARIF 2.2 specification is still under
              development, this uses an unofficial draft of the
              specification, and is subject to change.
*************** E)\n"
*** 956,1261 ****
              property bag in SARIF output. The precise format of the
              property is subject to change
       * GCC 15 adds a new sarif-replay command-line tool for viewing .sarif
!        files. It uses [155]libgdiagnostics to "replay" any diagnostics
         found in the .sarif files in text form as if they were GCC
         diagnostics, with support for details such as fix-it hints,
         underlined ranges, and diagnostic paths.
  
! [156]Improvements to Static Analyzer
  
       * GCC's logic for printing execution paths has been improved in
         various ways
            + The problematic event in an analyzer path is now highlighted
!             with a warning emoji (!!!), where the locale supports this,
              such as in the examples below.
            + Paths can show control flow using ASCII art, such as:
! infinite-loop-linked-list.c: In function `while_loop_missing_next':
  infinite-loop-linked-list.c:30:10: warning: infinite loop [CWE-835] [-Wanalyzer-
  infinite-loop]
     30 |   while (n)
        |          ^
!   `while_loop_missing_next': events 1-3
     30 |   while (n)
        |          ^
        |          |
!       |          (1) !!!  infinite loop here
!       |          (2) when `n' is non-NULL: always following `true' branch... ->-
! +
        |
! |
        |
! |
!       |+------------------------------------------------------------------------
! +
!    31 ||    {
!    32 ||      sum += n->val;
!       ||             ~~~~~~
!       ||              |
!       |+------------->(3) ...to here
!   `while_loop_missing_next': event 4
     32 |       sum += n->val;
        |       ~~~~^~~~~~~~~
        |           |
!       |           (4) looping back... ->-+
!       |                                  |
!   `while_loop_missing_next': event 5
!       |                                  |
!       |+---------------------------------+
!    30 ||  while (n)
!       ||         ^
!       ||         |
!       |+-------->(5) ...to here
  
            + Interprocedural depth markers now use unicode box-drawing
              characters where the locale supports this, and they are
              eliminated for purely intraprocedural paths, such as in the
!             example of [157]-Wanalyzer-infinite-loop above.
!      * A new [158]-fanalyzer warning
!        [159]-Wanalyzer-undefined-behavior-ptrdiff warns about pointer
         subtractions involving different chunks of memory. For example:
!     demo.c: In function `test_invalid_calc_of_array_size':
      demo.c:9:20: warning: undefined behavior when subtracting pointers [CWE-469]
   [-Wanalyzer-undefined-behavior-ptrdiff]
          9 |   return &sentinel - arr;
            |                    ^
        events 1-2
!         |
!         |    3 | int arr[42];
!         |      |     ~~~
!         |      |     |
!         |      |     (2) underlying object for right-hand side of subtraction cr
  eated here
!         |    4 | int sentinel;
!         |      |     ^~~~~~~~
!         |      |     |
!         |      |     (1) underlying object for left-hand side of subtraction cre
  ated here
!         |
!         +--> `test_invalid_calc_of_array_size': event 3
!                |
!                |    9 |   return &sentinel - arr;
!                |      |                    ^
!                |      |                    |
!                |      |                    (3) !!!  subtraction of pointers has
! undefined behavior if they do not point into the same array object
!                |
  
  Other significant improvements
  
!   [160]libgdiagnostics
  
     GCC's code for emitting diagnostics is now available to other
!    GPL3-compatible projects as a shared library, [161]libgdiagnostics.
     This covers such features as colorization, quoting lines of source
     code, labelling ranges of source, fix-it hints, execution paths, SARIF
     output, and so on. There is a C API, along with C++ and Python
     bindings.
  
! [162]GCC 15.1
  
!    This is the [163]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).
  
! [164]GCC 15.2
  
!    This is the [165]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 15.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 [166]GCC manuals. If that fails, the
!     [167]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 [168]gcc@gcc.gnu.org. All of [169]our lists have public
      archives.
  
!    Copyright (C) [170]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 [171]maintained by the GCC team. Last modified
!    2025-08-08.
  
  References
  
     1. https://gcc.gnu.org/gcc-15/porting_to.html
     2. https://gcc.gnu.org/onlinedocs/index.html#current
!    3. https://gcc.gnu.org/backends.html
!    4. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html
!    5. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!    6. https://gcc.gnu.org/wiki/SARIF
!    7. https://gcc.gnu.org/gcc-15/changes.html#general
!    8. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Optimize-Options.html#index-flto-incremental
!    9. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
    10. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
!   11. https://gcc.gnu.org/wiki/SARIF
!   12. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-set-output
!   13. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   14. https://gcc.gnu.org/gcc-15/changes.html#languages
!   15. https://gcc.gnu.org/gcc-15/changes.html#openmp
!   16. https://gcc.gnu.org/projects/gomp/
!   17. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Offload-Target-Specifics.html
!   18. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/OMP_005fALLOCATOR.html
!   19. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/nvptx.html
!   20. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Foreign-runtime-support-for-Nvidia-GPUs.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Foreign-runtime-support-for-AMD-GPUs.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/omp_005fget_005fdevice_005ffrom_005fuid.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/omp_005fget_005fuid_005ffrom_005fdevice.html
!   24. https://gcc.gnu.org/gcc-15/changes.html#cobol
!   25. https://www.cobolworx.com/
!   26. https://gcc.gnu.org/gcc-15/changes.html#ada
!   27. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Attribute-Round.html#index-Round
!   28. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Attribute-Super.html#index-Super
!   29. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Mutably-Tagged-Types-with-Size_2019Class-Aspect.html
!   30. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Generalized-Finalization.html
!   31. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/No_005fRaise-aspect.html
!   32. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/External_005fInitialization-Aspect.html
!   33. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Pragma-Exit_005fCases.html#index-Exit_005fCases
!   34. https://docs.adacore.com/spark2014-docs/html/lrm/subprograms.html#program-exit-aspects
!   35. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Experimental-Language-Extensions.html
!   36. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Info-message-Control.html
!   37. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_002en-_0028gcc_0029
!   38. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_005fl-_0028gcc_0029
!   39. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_002ev-_0028gcc_0029
!   40. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ada/debug.adb
!   41. https://docs.adacore.com/spark2014-docs/html/ug/en/source/spark_libraries.html
!   42. https://gcc.gnu.org/gcc-15/changes.html#c-family
!   43. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Statement-Attributes.html#index-musttail-statement-attribute
!   44. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Extended-Asm.html
!   45. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Common-Function-Attributes.html#index-nonnull_005fif_005fnonzero-function-attribute
!   46. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wtrailing-whitespace_003d
!   47. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wleading-whitespace_003d
!   48. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wheader-guard
!   49. https://gcc.gnu.org/gcc-15/changes.html#c
!   50. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   51. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   52. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   53. https://gcc.gnu.org/gcc-15/porting_to.html#c23
!   54. https://gcc.gnu.org/gcc-15/changes.html#cxx
!   55. https://wg21.link/P2558R2
!   56. https://gcc.gnu.org/PR110343
!   57. https://wg21.link/P2552R3
!   58. https://gcc.gnu.org/PR110345
!   59. https://wg21.link/P2662R3
!   60. https://gcc.gnu.org/PR113798
!   61. https://wg21.link/P0609R3
!   62. https://gcc.gnu.org/PR114456
!   63. https://wg21.link/P2573R2
!   64. https://gcc.gnu.org/PR114458
!   65. https://wg21.link/P2893R3
!   66. https://gcc.gnu.org/PR114459
!   67. https://wg21.link/P3034R1
!   68. https://gcc.gnu.org/PR114461
!   69. https://wg21.link/P2747R2
!   70. https://gcc.gnu.org/PR115744
!   71. https://wg21.link/P0963R3
!   72. https://gcc.gnu.org/PR115745
!   73. https://wg21.link/P3144R2
!   74. https://gcc.gnu.org/PR115747
!   75. https://wg21.link/P3176R0
!   76. https://gcc.gnu.org/PR117786
!   77. https://wg21.link/P2865R5
!   78. https://gcc.gnu.org/PR117788
!   79. https://wg21.link/P1967R14
!   80. https://gcc.gnu.org/PR119065
!   81. https://wg21.link/P3247R2
!   82. https://gcc.gnu.org/PR117787
!   83. https://wg21.link/P2615R1
!   84. https://gcc.gnu.org/PR107688
!   85. https://wg21.link/P2718R0
!   86. https://gcc.gnu.org/PR107637
!   87. https://wg21.link/cwg36
!   88. https://wg21.link/cwg882
!   89. https://wg21.link/cwg1363
!   90. https://wg21.link/cwg1496
!   91. https://wg21.link/cwg2387
!   92. https://wg21.link/cwg2521
!   93. https://wg21.link/cwg2627
!   94. https://wg21.link/cwg2819
!   95. https://wg21.link/cwg2867
!   96. https://wg21.link/cwg2918
!   97. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Asm-constexprs.html
!   98. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-fassume-sane-operators-new-delete
!   99. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wself-move
!  100. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wtemplate-body
!  101. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute
!  102. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!  103. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdefaulted-function-deleted
!  104. https://wg21.link/cwg2789
!  105. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/New_002fDelete-Builtins.html
!  106. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=12de1942a0a673f9f2f1c2bfce4279a666061ffc
!  107. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-set-output
!  108. https://godbolt.org/z/K4jGrhao1
!  109. https://gcc.gnu.org/gcc-15/changes.html#libstdcxx
!  110. https://gcc.gnu.org/gcc-15/changes.html#d
!  111. https://dlang.org/changelog/2.111.0.html
!  112. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gdc/Runtime-Options.html#index-finclude-imports
!  113. https://gcc.gnu.org/gcc-15/changes.html#fortran
!  114. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gfortran/Unsigned-integers.html
!  115. https://j3-fortran.org/doc/year/24/24-116.txt
!  116. https://gcc.gnu.org/gcc-15/changes.html#modula2
!  117. https://gcc.gnu.org/gcc-15/changes.html#rust
!  118. https://gcc.gnu.org/gcc-15/changes.html#targets
!  119. https://gcc.gnu.org/gcc-15/changes.html#aarch64
!  120. https://github.com/ARM-software/acle
!  121. https://gcc.gnu.org/gcc-15/changes.html#amdgcn
!  122. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AMD-GCN-Options.html
!  123. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  124. https://gcc.gnu.org/gcc-15/changes.html#avr
!  125. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Function-Attributes.html#index-signal_0028num_0029-function-attribute_002c-AVR
!  126. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Built-in-Functions.html#index-_005f_005fbuiltin_005favr_005fmask1
!  127. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Named-Address-Spaces.html#AVR-Named-Address-Spaces-1
!  128. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mcvt
!  129. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mno-call-main
!  130. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mfuse-move
!  131. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-msplit-ldst
!  132. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-msplit-bit-shift
!  133. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-muse-nonzero-bits
!  134. https://gcc.gnu.org/gcc-15/changes.html#x86
!  135. https://gcc.gnu.org/gcc-15/changes.html#loongarch
!  136. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Function-Attributes.html#LoongArch-Function-Attributes-1
!  137. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Options.html#index-mannotate-tablejump
!  138. https://gcc.gnu.org/gcc-15/changes.html#nvptx
!  139. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!  140. https://gcc.gnu.org/gcc-15/changes.html#s390
!  141. https://gcc.gnu.org/gcc-15/changes.html#sh
!  142. https://gcc.gnu.org/gcc-15/changes.html#os
!  143. https://gcc.gnu.org/gcc-15/changes.html#sarif
!  144. https://gcc.gnu.org/wiki/SARIF
!  145. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790978
!  146. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790709
!  147. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790717
!  148. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790819
!  149. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790824
!  150. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790836
!  151. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790867
!  152. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wbidi-chars
!  153. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790676
!  154. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
!  155. https://gcc.gnu.org/wiki/libgdiagnostics
!  156. https://gcc.gnu.org/gcc-15/changes.html#analyzer
!  157. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop
!  158. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html
!  159. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-ptrdiff
!  160. https://gcc.gnu.org/gcc-15/changes.html#libgdiagnostics
!  161. https://gcc.gnu.org/wiki/libgdiagnostics
!  162. https://gcc.gnu.org/gcc-15/changes.html#15.1
!  163. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.0
!  164. https://gcc.gnu.org/gcc-15/changes.html#15.2
!  165. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.1
!  166. https://gcc.gnu.org/onlinedocs/
!  167. mailto:gcc-help@gcc.gnu.org
!  168. mailto:gcc@gcc.gnu.org
!  169. https://gcc.gnu.org/lists.html
!  170. https://www.fsf.org/
!  171. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-14/index.html
- 
                               GCC 14 Release Series
  
     May 23, 2025
--- 980,1289 ----
              property bag in SARIF output. The precise format of the
              property is subject to change
       * GCC 15 adds a new sarif-replay command-line tool for viewing .sarif
!        files. It uses [160]libgdiagnostics to "replay" any diagnostics
         found in the .sarif files in text form as if they were GCC
         diagnostics, with support for details such as fix-it hints,
         underlined ranges, and diagnostic paths.
  
! [161]Improvements to Static Analyzer
  
       * GCC's logic for printing execution paths has been improved in
         various ways
            + The problematic event in an analyzer path is now highlighted
!             with a warning emoji (⚠️), where the locale supports this,
              such as in the examples below.
            + Paths can show control flow using ASCII art, such as:
! infinite-loop-linked-list.c: In function ‘while_loop_missing_next’:
  infinite-loop-linked-list.c:30:10: warning: infinite loop [CWE-835] [-Wanalyzer-
  infinite-loop]
     30 |   while (n)
        |          ^
!   ‘while_loop_missing_next’: events 1-3
     30 |   while (n)
        |          ^
        |          |
!       |          (1) ⚠️  infinite loop here
!       |          (2) when ‘n’ is non-NULL: always following ‘true’ branch... ─>
! ─┐
        |
! │
        |
! │
!       |┌──────────────────────────────────────────────────────────────────────
! ──┘
!    31 |│    {
!    32 |│      sum += n->val;
!       |│             ~~~~~~
!       |│              |
!       |└─────────────>(3) ...to here
!   ‘while_loop_missing_next’: event 4
     32 |       sum += n->val;
        |       ~~~~^~~~~~~~~
        |           |
!       |           (4) looping back... ─>─┐
!       |                                  │
!   ‘while_loop_missing_next’: event 5
!       |                                  │
!       |┌─────────────────────────────────┘
!    30 |│  while (n)
!       |│         ^
!       |│         |
!       |└────────>(5) ...to here
  
            + Interprocedural depth markers now use unicode box-drawing
              characters where the locale supports this, and they are
              eliminated for purely intraprocedural paths, such as in the
!             example of [162]-Wanalyzer-infinite-loop above.
!      * A new [163]-fanalyzer warning
!        [164]-Wanalyzer-undefined-behavior-ptrdiff warns about pointer
         subtractions involving different chunks of memory. For example:
!     demo.c: In function ‘test_invalid_calc_of_array_size’:
      demo.c:9:20: warning: undefined behavior when subtracting pointers [CWE-469]
   [-Wanalyzer-undefined-behavior-ptrdiff]
          9 |   return &sentinel - arr;
            |                    ^
        events 1-2
!         │
!         │    3 | int arr[42];
!         │      |     ~~~
!         │      |     |
!         │      |     (2) underlying object for right-hand side of subtraction cr
  eated here
!         │    4 | int sentinel;
!         │      |     ^~~~~~~~
!         │      |     |
!         │      |     (1) underlying object for left-hand side of subtraction cre
  ated here
!         │
!         └──> ‘test_invalid_calc_of_array_size’: event 3
!                │
!                │    9 |   return &sentinel - arr;
!                │      |                    ^
!                │      |                    |
!                │      |                    (3) ⚠️  subtraction of pointers has u
! ndefined behavior if they do not point into the same array object
!                │
  
  Other significant improvements
  
!   [165]libgdiagnostics
  
     GCC's code for emitting diagnostics is now available to other
!    GPL3-compatible projects as a shared library, [166]libgdiagnostics.
     This covers such features as colorization, quoting lines of source
     code, labelling ranges of source, fix-it hints, execution paths, SARIF
     output, and so on. There is a C API, along with C++ and Python
     bindings.
  
! [167]GCC 15.1
  
!    This is the [168]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).
  
! [169]GCC 15.2
  
!    This is the [170]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 15.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 [171]GCC manuals. If that fails, the
!     [172]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 [173]gcc@gcc.gnu.org. All of [174]our lists have public
      archives.
  
!    Copyright (C) [175]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 [176]maintained by the GCC team. Last modified
!    2026-04-13.
  
  References
  
     1. https://gcc.gnu.org/gcc-15/porting_to.html
     2. https://gcc.gnu.org/onlinedocs/index.html#current
!    3. https://gcc.gnu.org/pipermail/gcc/2022-December/240322.html
!    4. https://gcc.gnu.org/backends.html
!    5. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html
!    6. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!    7. https://gcc.gnu.org/wiki/SARIF
!    8. https://gcc.gnu.org/gcc-15/changes.html#general
!    9. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Optimize-Options.html#index-flto-incremental
    10. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
!   11. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
!   12. https://gcc.gnu.org/wiki/SARIF
!   13. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-set-output
!   14. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-format
!   15. https://gcc.gnu.org/gcc-15/changes.html#languages
!   16. https://gcc.gnu.org/gcc-15/changes.html#openmp
!   17. https://gcc.gnu.org/projects/gomp/
!   18. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Offload-Target-Specifics.html
!   19. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/OMP_005fALLOCATOR.html
!   20. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/nvptx.html
!   21. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Foreign-runtime-support-for-Nvidia-GPUs.html
!   22. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/Foreign-runtime-support-for-AMD-GPUs.html
!   23. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/omp_005fget_005fdevice_005ffrom_005fuid.html
!   24. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/libgomp/omp_005fget_005fuid_005ffrom_005fdevice.html
!   25. https://gcc.gnu.org/gcc-15/changes.html#cobol
!   26. https://www.cobolworx.com/
!   27. https://gcc.gnu.org/gcc-15/changes.html#ada
!   28. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Attribute-Round.html#index-Round
!   29. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Attribute-Super.html#index-Super
!   30. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Mutably-Tagged-Types-with-Size_2019Class-Aspect.html
!   31. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Generalized-Finalization.html
!   32. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/No_005fRaise-aspect.html
!   33. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/External_005fInitialization-Aspect.html
!   34. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Pragma-Exit_005fCases.html#index-Exit_005fCases
!   35. https://docs.adacore.com/spark2014-docs/html/lrm/subprograms.html#program-exit-aspects
!   36. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_rm/Experimental-Language-Extensions.html
!   37. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Info-message-Control.html
!   38. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_002en-_0028gcc_0029
!   39. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_005fl-_0028gcc_0029
!   40. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gnat_ugn/Warning-Message-Control.html#index--gnatw_002ev-_0028gcc_0029
!   41. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ada/debug.adb
!   42. https://docs.adacore.com/spark2014-docs/html/ug/en/source/spark_libraries.html
!   43. https://gcc.gnu.org/onlinedocs/gnat_rm/Finally-construct.html
!   44. https://github.com/AdaCore/ada-spark-rfcs/blob/master/features/rfc-finally.md
!   45. https://gcc.gnu.org/onlinedocs/gnat_rm/String-interpolation.html
!   46. https://github.com/AdaCore/ada-spark-rfcs/blob/master/features/rfc-string-interpolation.md
!   47. https://gcc.gnu.org/gcc-15/changes.html#c-family
!   48. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Statement-Attributes.html#index-musttail-statement-attribute
!   49. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Extended-Asm.html
!   50. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Common-Function-Attributes.html#index-nonnull_005fif_005fnonzero-function-attribute
!   51. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wtrailing-whitespace_003d
!   52. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wleading-whitespace_003d
!   53. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wheader-guard
!   54. https://gcc.gnu.org/gcc-15/changes.html#c
!   55. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   56. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   57. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C-Dialect-Options.html#index-std-1
!   58. https://gcc.gnu.org/gcc-15/porting_to.html#c23
!   59. https://gcc.gnu.org/gcc-15/changes.html#cxx
!   60. https://wg21.link/P2558R2
!   61. https://gcc.gnu.org/PR110343
!   62. https://wg21.link/P2552R3
!   63. https://gcc.gnu.org/PR110345
!   64. https://wg21.link/P2662R3
!   65. https://gcc.gnu.org/PR113798
!   66. https://wg21.link/P0609R3
!   67. https://gcc.gnu.org/PR114456
!   68. https://wg21.link/P2573R2
!   69. https://gcc.gnu.org/PR114458
!   70. https://wg21.link/P2893R3
!   71. https://gcc.gnu.org/PR114459
!   72. https://wg21.link/P3034R1
!   73. https://gcc.gnu.org/PR114461
!   74. https://wg21.link/P2747R2
!   75. https://gcc.gnu.org/PR115744
!   76. https://wg21.link/P0963R3
!   77. https://gcc.gnu.org/PR115745
!   78. https://wg21.link/P3144R2
!   79. https://gcc.gnu.org/PR115747
!   80. https://wg21.link/P3176R0
!   81. https://gcc.gnu.org/PR117786
!   82. https://wg21.link/P2865R5
!   83. https://gcc.gnu.org/PR117788
!   84. https://wg21.link/P1967R14
!   85. https://gcc.gnu.org/PR119065
!   86. https://wg21.link/P3247R2
!   87. https://gcc.gnu.org/PR117787
!   88. https://wg21.link/P2615R1
!   89. https://gcc.gnu.org/PR107688
!   90. https://wg21.link/P2718R0
!   91. https://gcc.gnu.org/PR107637
!   92. https://wg21.link/cwg36
!   93. https://wg21.link/cwg882
!   94. https://wg21.link/cwg1363
!   95. https://wg21.link/cwg1496
!   96. https://wg21.link/cwg2387
!   97. https://wg21.link/cwg2521
!   98. https://wg21.link/cwg2627
!   99. https://wg21.link/cwg2819
!  100. https://wg21.link/cwg2867
!  101. https://wg21.link/cwg2918
!  102. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Asm-constexprs.html
!  103. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-fassume-sane-operators-new-delete
!  104. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Warning-Options.html#index-Wself-move
!  105. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wtemplate-body
!  106. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Common-Type-Attributes.html#index-flag_005fenum-type-attribute
!  107. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!  108. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdefaulted-function-deleted
!  109. https://wg21.link/cwg2789
!  110. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/New_002fDelete-Builtins.html
!  111. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=12de1942a0a673f9f2f1c2bfce4279a666061ffc
!  112. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-set-output
!  113. https://godbolt.org/z/K4jGrhao1
!  114. https://gcc.gnu.org/gcc-15/changes.html#libstdcxx
!  115. https://gcc.gnu.org/gcc-15/changes.html#d
!  116. https://dlang.org/changelog/2.111.0.html
!  117. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gdc/Runtime-Options.html#index-finclude-imports
!  118. https://gcc.gnu.org/gcc-15/changes.html#fortran
!  119. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gfortran/Unsigned-integers.html
!  120. https://j3-fortran.org/doc/year/24/24-116.txt
!  121. https://gcc.gnu.org/gcc-15/changes.html#modula2
!  122. https://gcc.gnu.org/gcc-15/changes.html#rust
!  123. https://gcc.gnu.org/gcc-15/changes.html#targets
!  124. https://gcc.gnu.org/gcc-15/changes.html#aarch64
!  125. https://github.com/ARM-software/acle
!  126. https://gcc.gnu.org/gcc-15/changes.html#amdgcn
!  127. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AMD-GCN-Options.html
!  128. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  129. https://gcc.gnu.org/gcc-15/changes.html#avr
!  130. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Function-Attributes.html#index-signal_0028num_0029-function-attribute_002c-AVR
!  131. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Built-in-Functions.html#index-_005f_005fbuiltin_005favr_005fmask1
!  132. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Named-Address-Spaces.html#AVR-Named-Address-Spaces-1
!  133. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mcvt
!  134. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mno-call-main
!  135. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-mfuse-move
!  136. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-msplit-ldst
!  137. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-msplit-bit-shift
!  138. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/AVR-Options.html#index-muse-nonzero-bits
!  139. https://gcc.gnu.org/gcc-15/changes.html#x86
!  140. https://gcc.gnu.org/gcc-15/changes.html#loongarch
!  141. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Function-Attributes.html#LoongArch-Function-Attributes-1
!  142. https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/LoongArch-Options.html#index-mannotate-tablejump
!  143. https://gcc.gnu.org/gcc-15/changes.html#nvptx
!  144. https://gcc.gnu.org/install/specific.html#nvptx-x-none
!  145. https://gcc.gnu.org/gcc-15/changes.html#s390
!  146. https://gcc.gnu.org/gcc-15/changes.html#sh
!  147. https://gcc.gnu.org/gcc-15/changes.html#os
!  148. https://gcc.gnu.org/gcc-15/changes.html#sarif
!  149. https://gcc.gnu.org/wiki/SARIF
!  150. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790978
!  151. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790709
!  152. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790717
!  153. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790819
!  154. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790824
!  155. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790836
!  156. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790867
!  157. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wbidi-chars
!  158. https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/sarif-v2.1.0-errata01-os-complete.html#_Toc141790676
!  159. https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html#index-fdiagnostics-add-output
!  160. https://gcc.gnu.org/wiki/libgdiagnostics
!  161. https://gcc.gnu.org/gcc-15/changes.html#analyzer
!  162. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-infinite-loop
!  163. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html
!  164. https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-ptrdiff
!  165. https://gcc.gnu.org/gcc-15/changes.html#libgdiagnostics
!  166. https://gcc.gnu.org/wiki/libgdiagnostics
!  167. https://gcc.gnu.org/gcc-15/changes.html#15.1
!  168. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.0
!  169. https://gcc.gnu.org/gcc-15/changes.html#15.2
!  170. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=15.2
!  171. https://gcc.gnu.org/onlinedocs/
!  172. mailto:gcc-help@gcc.gnu.org
!  173. mailto:gcc@gcc.gnu.org
!  174. https://gcc.gnu.org/lists.html
!  175. https://www.fsf.org/
!  176. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-14/index.html
                               GCC 14 Release Series
  
     May 23, 2025
*************** References
*** 1329,1335 ****
    17. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-14/changes.html
- 
                               GCC 14 Release Series
                          Changes, New Features, and Fixes
  
--- 1357,1362 ----
*************** Caveats
*** 1509,1515 ****
         parts of the Ada runtime library, which has been subsequently
         proven to be correct with SPARK 2014.
       * 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.
--- 1536,1542 ----
         parts of the Ada runtime library, which has been subsequently
         proven to be correct with SPARK 2014.
       * 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.
*************** Caveats
*** 1521,1536 ****
              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
--- 1548,1570 ----
              higher performance and easier integration with low footprint
              embedded runtimes.
            + [38]String Interpolation: allows for easier string formatting.
+      * [39]Fixed lower bound [40][RFC] : Unconstrained array types and
+        subtypes can be specified with a lower bound that is fixed to a
+        certain value, by writing an index range that uses the syntax
+        <lower-bound-expression> .. <>. This guarantees that all objects of
+        the type or subtype will have the specified lower bound.
       * Further clean up and improvements to the GNAT code.
  
!   [41]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.
+      * GCC supports a new pragma #pragma GCC novector to indicate to the
+        vectorizer not to vectorize the loop annotated with the pragma.
  
!   [42]C
  
       * Some more C23 features have been implemented:
            + Bit-precise integer types (_BitInt (N) and unsigned _BitInt
*************** Caveats
*** 1546,1664 ****
         options -std=c23, -std=gnu23 and -Wc11-c23-compat. These are
         equivalent to the previous options -std=c2x, -std=gnu2x and
         -Wc11-c2x-compat, which are deprecated but remain supported.
-      * 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
         C++ as well
       * The DR 2237 code no longer gives an error, it emits a
         -Wtemplate-id-cdtor warning instead
-      * 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
--- 1580,1694 ----
         options -std=c23, -std=gnu23 and -Wc11-c23-compat. These are
         equivalent to the previous options -std=c2x, -std=gnu2x and
         -Wc11-c2x-compat, which are deprecated but remain supported.
  
!   [43]C++
  
       * Several C++26 features have been implemented:
!           + [44]P1854R4, Making non-encodable string literals ill-formed
!             ([45]PR110341)
!           + [46]P2752R3, Static storage for braced initializers
!             ([47]PR110346)
!           + [48]P2361R6, Unevaluated strings ([49]PR110342)
!           + [50]P2738R1, constexpr cast from void* ([51]PR110344)
!           + [52]P2741R3, User-generated static_assert messages
!             ([53]PR110348)
!           + [54]P2169R4, Placeholder variables with no name ([55]PR110349)
!           + [56]P2864R2, Removing deprecated arithmetic conversion on
              enumerations
!           + [57]P2748R5, Disallow binding a returned reference to a
!             temporary ([58]PR114455)
!           + [59]P2809R3, Trivial infinite loops are not undefined behavior
!             ([60]PR114462)
       * Several C++23 features have been implemented:
!           + [61]P0847R7, Deducing this ([62]PR102609)
!           + [63]P2280R4, Using unknown references in constant expressions
!             ([64]PR106650)
!           + [65]P2564R3, consteval needs to propagate up ([66]PR107687)
!           + [67]P2582R1, Class template argument deduction from inherited
!             constructors ([68]PR106653)
       * Several C++ Defect Reports have been resolved, e.g.:
!           + [69]DR 532, Member/nonmember operator template partial
              ordering
!           + [70]DR 976, Deduction for const T& conversion operators
!           + [71]DR 2262, Attributes for asm-definition
!           + [72]DR 2359, Unintended copy initialization with designated
              initializers
!           + [73]DR 2386, tuple_size requirements for structured binding
!           + [74]DR 2406, [[fallthrough]] attribute and iteration
              statements
!           + [75]DR 2543, constinit and optimized dynamic initialization
!           + [76]DR 2586, Explicit object parameter for assignment and
              comparison
!           + [77]DR 2735, List-initialization and conversions in overload
              resolution
!           + [78]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 ([79]PR100157)
       * goto can cross the initialization of a trivially initialized object
!        with a non-trivial destructor ([80]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 [81]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
!        [82]test
       * New -Wnrvo warning, to warn if the named return value optimization
         is not performed although it is allowed by [class.copy.elision].
!        See [83]the manual for more info.
       * The backing array for std::initializer_list has been made static,
!        allowing combining multiple equivalent initializer-lists ([84]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 ([85]PR110164)
       * The arguments of a variable template-id are coerced earlier than
!        before, so various problems are detected earlier ([86]PR89442)
       * -Wmissing-field-initializers is no longer emitted for empty classes
!        ([87]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 ([88]PR70331, [89]PR96630, [90]PR98675)
       * Array destruction can now be devirtualized
       * In-class member variable template partial specializations are now
!        accepted ([91]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 ([92]git)
       * Corrected mangling of static/thread_local structured bindings at
!        function/block scope ([93]PR111069)
       * [basic.scope.block]/2 violations are detected even in compound-stmt
         of function-try-block and for block-scope external variables
!        ([94]PR52953)
       * Improved "not a constant expression" diagnostic when taking the
!        address of a non-static constexpr variable ([95]PR91483)
       * Non-dependent simple assignments are checked even in templates
!        ([96]PR18474)
       * Attributes hot and cold can be applied to classes as well. See
!        [97]the manual for more info.
       * Function template constraints, as well as CTAD placeholders, are
         now mangled
!      * Various decltype fixes: [98]PR79620, [99]PR79378, [100]PR83167,
!        [101]PR96917
       * New option -fdiagnostics-all-candidates to note all candidates
         during overload resolution failure
       * -Walloc-size and -Wcalloc-transposed-args warnings are enabled for
         C++ as well
       * The DR 2237 code no longer gives an error, it emits a
         -Wtemplate-id-cdtor warning instead
       * C++ module scanning for named modules is now available, based on
!        the format described in [102]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=.
  
!     [103]Runtime Library (libstdc++)
  
       * The libstdc++exp.a library now includes all the Filesystem TS
         symbols from the libstdc++fs.a library. The experimental symbols
*************** Caveats
*** 1697,1710 ****
       * 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
--- 1727,1740 ----
       * Added missing functions for float and long double to <cmath>.
       * Using the std::setfill manipulator with std::istream is deprecated.
  
!   [104]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
!        [105]dlang.org website.
  
!   [106]Fortran
  
       * The compiler now accepts the -std=f2023 option, which has been
         added in preparation of support of Fortran 2023. This option
*************** Caveats
*** 1714,1720 ****
         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.
--- 1744,1750 ----
         extension will be generated from free-form source files such as
         .F90 and .fi from fixed-form files such as .F.
  
!   [107]Modula-2
  
       * The automatic dependency generation options: -M, -MD, -MF, -MMD,
         -MP, -MQ and -MT have been implemented in the compiler.
*************** Caveats
*** 1722,1728 ****
         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
--- 1752,1758 ----
         implemented to provide compile-time warnings against missing case
         clauses and uninitialized variables respectively.
  
!   [108]Rust
  
       * Experimental support for the Rust programming language has been
         added. The compiler is incomplete, but already supports a subset of
*************** Caveats
*** 1731,1753 ****
         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).
--- 1761,1783 ----
         real-world Rust code yet. However, you can experiment with the
         compiler to run Rust code on #[no_core] targets.
  
! [109]libgccjit
  
       * The libgccjit API gained 6 new entry points:
!           + [110]gcc_jit_type_get_restrict for adding restrict to types
!             ([111]LIBGCCJIT_ABI_25).
            + 4 functions for setting attributes on functions and variables
!             ([112]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
!           + [113]gcc_jit_context_new_sizeof for accessing the size of a
!             type ([114]LIBGCCJIT_ABI_27).
  
! [115]New Targets and Target Specific Improvements
  
!   [116]AArch64
  
       * A number of new CPUs are supported through the -mcpu and -mtune
         options (GCC identifiers in parentheses).
*************** Caveats
*** 1767,1773 ****
            + 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.
--- 1797,1803 ----
            + 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
!             [117]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.
*************** Caveats
*** 1795,1801 ****
       * 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,
--- 1825,1831 ----
       * 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 [118]Function
              Multiversioning Specification. This feature provides
              facilities to annotate functions with attributes that allow
              the compiler to generate multiple versions of the function,
*************** Caveats
*** 1803,1810 ****
              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,
--- 1833,1840 ----
              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 [119]Memory prefetch intrinsics and the
!             [120]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,
*************** Caveats
*** 1812,1830 ****
              -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).
--- 1842,1860 ----
              -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 [121]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
!        [122]documentation.
  
!   [123]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 [124]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).
*************** Caveats
*** 1832,1845 ****
         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.
--- 1862,1875 ----
         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
!        [125]--with-arch=fiji .
  
!   [126]arm
  
       * The Cortex-M52 CPU is now supported through the cortex-m52 argument
         to the -mcpu and -mtune options.
  
!   [127]AVR
  
       * On AVR64* and AVR128* devices, read-only data is now located in
         program memory per default and no longer in RAM.
*************** Caveats
*** 1855,1867 ****
              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
              __flmap_lock to a non-zero value will set bit
              NVMCTRL_CTRLB.FLMAPLOCK. This will protect NVMCTRL_CTRLB.FLMAP
!             from any further changes -- which would be Undefined Behaviour
              in C/C++. If you prefer to define the symbol in a C/C++ file,
              an asm statement can be used:
  __asm (".global __flmap_lock"  "\n\t"
--- 1885,1897 ----
              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 [128]#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
              __flmap_lock to a non-zero value will set bit
              NVMCTRL_CTRLB.FLMAPLOCK. This will protect NVMCTRL_CTRLB.FLMAP
!             from any further changes — which would be Undefined Behaviour
              in C/C++. If you prefer to define the symbol in a C/C++ file,
              an asm statement can be used:
  __asm (".global __flmap_lock"  "\n\t"
*************** __asm (".global __flmap_lock"  "\n\t"
*** 1876,1882 ****
            + 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
--- 1906,1912 ----
            + 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 [129]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
*************** __asm (".global __flmap_lock"  "\n\t"
*** 1884,1890 ****
                   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].
--- 1914,1920 ----
                   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 [130]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"
*** 1894,1919 ****
       * 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.
!      * Support for the following devices has been added in v14.4:
            + AVR32DA28S, AVR32DA32S, AVR32DA48S, AVR64DA28S, AVR64DA32S,
              AVR64DA48S AVR64DA64S, AVR128DA28S, AVR128DA32S, AVR128DA48S,
!             AVR128DA64S.
  
!   [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
--- 1924,1951 ----
       * 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 [131]avrxmega3 and [132]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 [133]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 GCC 14.3:
            + AVR32SD20, AVR32SD28, AVR32SD32, AVR64SD28, AVR64SD32,
              AVR64SD48.
!      * Support for the following devices has been added in GCC 14.4:
            + AVR32DA28S, AVR32DA32S, AVR32DA48S, AVR64DA28S, AVR64DA32S,
              AVR64DA48S AVR64DA64S, AVR128DA28S, AVR128DA32S, AVR128DA48S,
!             AVR128DA64S, AVR32EB14, AVR32EB20, AVR32EB28, AVR32EB32,
!             AVR16LA14, AVR16LA20, AVR16LA28, AVR16LA32, AVR32LA14,
!             AVR32LA20, AVR32LA28, AVR32LA32.
  
!   [134]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"
*** 1946,1974 ****
       * New ISA extension support for Intel USER_MSR was added. USER_MSR
         intrinsics are available via the -muser_msr compiler switch.
       * GCC now supports the Intel CPU named Clearwater Forest through
!        -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
!        extensions.
       * GCC now supports the Intel CPU named Arrow Lake S through
!        -march=arrowlake-s. Based on Arrow Lake, the switch further enables
!        the AVX-VNNI-INT16, SHA512, SM3 and SM4 ISA extensions.
       * GCC now supports the Intel CPU named Lunar Lake through
!        -march=lunarlake. Lunar Lake is based on Arrow Lake S.
       * GCC now supports the Intel CPU named Panther Lake through
!        -march=pantherlake. Based on Arrow Lake S, the switch further
!        enables the PREFETCHI ISA extensions.
       * Xeon Phi CPUs support (a.k.a. Knight Landing and Knight Mill) are
         marked as deprecated. GCC will emit a warning when using the
         -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
--- 1978,2014 ----
       * New ISA extension support for Intel USER_MSR was added. USER_MSR
         intrinsics are available via the -muser_msr compiler switch.
       * GCC now supports the Intel CPU named Clearwater Forest through
!        -march=clearwaterforest. Based on Sierra Forest, the switch in
!        addition enables the AVX-VNNI-INT16, PREFETCHI, SHA512, SM3, SM4
!        and USER_MSR ISA extensions. Since GCC 14.4, KL and WIDEKL are not
!        enabled any longer.
       * GCC now supports the Intel CPU named Gracemont through
!        -march=gracemont. Gracemont is based on Alder Lake. Since GCC 14.4,
!        CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Arrow Lake through
!        -march=arrowlake. Based on Alder Lake, the switch in addition
!        enables the AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8 and CMPccXADD
!        ISA extensions. Since GCC 14.4, CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Arrow Lake S through
!        -march=arrowlake-s. Based on Arrow Lake, the switch in addition
!        enables the AVX-VNNI-INT16, SHA512, SM3 and SM4 ISA extensions.
!        Since GCC 14.4, CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Lunar Lake through
!        -march=lunarlake. Lunar Lake is based on Arrow Lake S. Since GCC
!        14.4, CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Panther Lake through
!        -march=pantherlake. Based on Arrow Lake S, the switch in addition
!        further enables the PREFETCHI ISA extensions. Since GCC 14.4,
!        CLDEMOTE, KL, PREFETCHI and WIDEKL are not enabled any longer.
!      * Since GCC 14.4, CLDEMOTE is not enabled through the compiler
!        switches -march=alderlake, -march=meteorlake and -march=raptorlake
!        any longer.
       * Xeon Phi CPUs support (a.k.a. Knight Landing and Knight Mill) are
         marked as deprecated. GCC will emit a warning when using the
         -mavx5124fmaps, -mavx5124vnniw, -mavx512er, -mavx512pf,
         -mprefetchwt1, -march=knl, -march=knm, -mtune=knl or -mtune=knm
         compiler switches. Support will be removed in GCC 15.
!      * [135]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"
*** 1982,2003 ****
         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(TM) Architecture.
!      * Support for the following [138]-mtune parameters has been added:
            + generic
            + la664
       * New ISA Extension
--- 2022,2043 ----
         arithmetic support of these types instead of __FLT16_MAX__(or other
         similar Macros).
  
!   [136]MCore
  
       * Bitfields are now signed by default per GCC policy. If you need
         bitfields to be unsigned, use -funsigned-bitfields.
  
!   [137]LoongArch
  
!      * Support for the following [138]-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
!        [139]Toolchain Conventions of the LoongArch™ Architecture.
!      * Support for the following [140]-mtune parameters has been added:
            + generic
            + la664
       * New ISA Extension
*************** __asm (".global __flmap_lock"  "\n\t"
*** 2034,2057 ****
              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.
--- 2074,2097 ----
              1 or undefined (iff __loongarch_version_major is undefined).
            + __FLOAT128_TYPE: It's defined to 1.
       * New Intrinsics
!           + [141]__builtin_thread_pointer
!           + [142]__lsx_*
!           + [143]__lasx_*
!           + [144]__frecipe_{s/d} and __frsqrte_{s/d}
       * New Compiler Option
!           + [145]-m[no-]lsx
!           + [146]-m[no-]lasx
!           + [147]-m[no-]frecipe
!           + [148]-m[no-]div32
!           + [149]-m[no-]lam-bh
!           + [150]-m[no-]lamcas
!           + [151]-m[no-]ld-seq-sa
!           + [152]-mrecip=
!           + [153]-m[no-]recip
!           + [154]-mexplicit-relocs={none,always,auto}
!           + [155]-m[no-]relax
!           + [156]-m[no-]pass-mrelax-to-as
!           + [157]-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"
*** 2062,2076 ****
       * 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
--- 2102,2116 ----
       * 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 [158]-mtls-dialect=desc. The default behavior can be
         configured with --with-tls=[trad|desc].
  
!   [159]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
!        [160]RiVAI, Pan Li from Intel, and Robin Dapp from [161]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"
*** 2078,2117 ****
         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
!        canonical order, with only a few constraints remaining: the
         architecture string must start with rv[32|64][i|g|e], and must use
         an underscore as the separator after a multi-letter extension.
!      * -march=help option has been introduced to dump all supported
!        extensions.
       * Added experimental support for the -mrvv-vector-bits=zvl option and
         the riscv_rvv_vector_bits attribute, which specify a fixed length
         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
--- 2118,2153 ----
         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
!        [162]Rivos.
!      * Support for the vector intrinsics as specified in [163]version 1.0
         of the RISC-V vector intrinsic specification.
       * Support for the experimental vector crypto intrinsics as specified
!        in [164]RISC-V vector intrinsic specification, thanks to Feng Wang
!        et al. from [165]ESWIN Computing
       * Support for the T-head vector intrinsics.
       * Support for the scalar bitmanip and scalar crypto intrinsics,
!        thanks to Liao Shihua from [166]PLCT.
       * Support for the large code model via option -mcmodel=large, thanks
!        to Kuan-Lin Chen from [167]Andes Technology.
       * Support for the standard vector calling convention variant, thanks
!        to Lehua Ding from [168]RiVAI.
       * Supports the target attribute, which allows users to compile a
         function with specific extensions.
!      * The -march= option no longer requires the architecture string to be
!        in canonical order, with only a few constraints remaining: the
         architecture string must start with rv[32|64][i|g|e], and must use
         an underscore as the separator after a multi-letter extension.
!      * -march=help has been introduced to list all supported extensions.
       * Added experimental support for the -mrvv-vector-bits=zvl option and
         the riscv_rvv_vector_bits attribute, which specify a fixed length
         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 Intel.
!      * Support for TLS descriptors has been introduced. It can be enabled
!        by the -mtls-dialect=desc option. The default behavior can be
!        configured with --with-tls=[trad|desc]. This feature requires 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
*************** void test (void)
*** 2262,2289 ****
  }
  
         it emits:
!                                  +----+----+----+----+----++-----+-----+-----+
!                                  |[0] |[1] |[2] |[3] |[4] || [5] | [6] | [7] |
!                                  +----+----+----+----+----++-----+-----+-----+
!                                  |' ' |'w' |'o' |'r' |'l' || 'd' | '!' | NUL |
!                                  +----+----+----+----+----++-----+-----+-----+
!                                  |     string literal (type: 'char[8]')      |
!                                  +-------------------------------------------+
!                                    |    |    |    |    |      |     |     |
!                                    |    |    |    |    |      |     |     |
                                     v    v    v    v    v      v     v     v
!       +-----+--------------------+----+--------------+----++-----------------+
!       | [0] |        ...         |[5] |     ...      |[9] ||                 |
!       +-----+----+----+----+----++----+--------------+----+|                 |
!       | 'h' |'e' |'l' |'l' |'o' ||NUL |                    |after valid range|
!       +-----+----+----+----+----++----+-------------------+|                 |
!       |             'buf' (type: 'char[10]')              ||                 |
!       +---------------------------------------------------++-----------------+
!       +-------------------------+-------------------------++--------+--------+
!                                 |                                   |
!                       �---------+--------�                �---------+---------�
!                       |capacity: 10 bytes|                |overflow of 3 bytes|
!                       �------------------�                �-------------------�
  
         showing that the overflow occurs partway through the second string
         fragment.
--- 2298,2328 ----
  }
  
         it emits:
!                                  ┌────┬────┬────┬────┬────┐┌─────┬─────┬─────┐
!                                  │[0] │[1] │[2] │[3] │[4] ││ [5] │ [6] │ [7] │
!                                  ├────┼────┼────┼────┼────┤├─────┼─────┼─────┤
!                                  │' ' │'w' │'o' │'r' │'l' ││ 'd' │ '!' │ NUL │
!                                  ├────┴────┴────┴────┴────┴┴─────┴─────┴─────┤
!                                  │     string literal (type: 'char[8]')      │
!                                  └───────────────────────────────────────────┘
!                                    │    │    │    │    │      │     │     │
!                                    │    │    │    │    │      │     │     │
                                     v    v    v    v    v      v     v     v
!       ┌─────┬────────────────────┬────┬──────────────┬────┐┌─────────────────┐
!       │ [0] │        ...         │[5] │     ...      │[9] ││                 │
!       ├─────┼────┬────┬────┬────┬┼────┼──────────────┴────┘│                 │
!       │ 'h' │'e' │'l' │'l' │'o' ││NUL │                    │after valid range│
!       ├─────┴────┴────┴────┴────┴┴────┴───────────────────┐│                 │
!       │             'buf' (type: 'char[10]')              ││                 │
!       └───────────────────────────────────────────────────┘└─────────────────┘
!       ├─────────────────────────┬─────────────────────────┤├────────┬────────┤
!                                 │                                   │
!                       ╭─────────┴────────╮                ╭─────────┴─────────
! ╮
!                       │capacity: 10 bytes│                │overflow of 3 bytes
! │
!                       ╰──────────────────╯                ╰───────────────────
! ╯
  
         showing that the overflow occurs partway through the second string
         fragment.
*************** void test (void)
*** 2351,2357 ****
     provided this notice is preserved.
  
     These pages are [211]maintained by the GCC team. Last modified
!    2025-07-06.
  
  References
  
--- 2390,2396 ----
     provided this notice is preserved.
  
     These pages are [211]maintained by the GCC team. Last modified
!    2026-04-13.
  
  References
  
*************** References
*** 2393,2528 ****
    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%2B%2B.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
--- 2432,2567 ----
    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/onlinedocs/gnat_rm/Fixed-lower-bounds-for-array-types-and-subtypes.html
!   40. https://github.com/AdaCore/ada-spark-rfcs/blob/master/features/rfc-fixed-lower-bound.rst
!   41. https://gcc.gnu.org/gcc-14/changes.html#c-family
!   42. https://gcc.gnu.org/gcc-14/changes.html#c
!   43. https://gcc.gnu.org/gcc-14/changes.html#cxx
!   44. https://wg21.link/P1854R4
!   45. https://gcc.gnu.org/PR110341
!   46. https://wg21.link/P2752R3
!   47. https://gcc.gnu.org/PR110346
!   48. https://wg21.link/P2361R6
!   49. https://gcc.gnu.org/PR110342
!   50. https://wg21.link/P2738R1
!   51. https://gcc.gnu.org/PR110344
!   52. https://wg21.link/P2741R3
!   53. https://gcc.gnu.org/PR110348
!   54. https://wg21.link/P2169R4
!   55. https://gcc.gnu.org/PR110349
!   56. https://wg21.link/P2864R2
!   57. https://wg21.link/P2748R5
!   58. https://gcc.gnu.org/PR114455
!   59. https://wg21.link/P2809R3
!   60. https://gcc.gnu.org/PR114462
!   61. https://wg21.link/P0847R7
!   62. https://gcc.gnu.org/PR102609
!   63. https://wg21.link/P2280R4
!   64. https://gcc.gnu.org/PR106650
!   65. https://wg21.link/P2564R3
!   66. https://gcc.gnu.org/PR107687
!   67. https://wg21.link/P2582R1
!   68. https://gcc.gnu.org/PR106653
!   69. https://wg21.link/cwg532
!   70. https://wg21.link/cwg976
!   71. https://wg21.link/cwg2262
!   72. https://wg21.link/cwg2359
!   73. https://wg21.link/cwg2386
!   74. https://wg21.link/cwg2406
!   75. https://wg21.link/cwg2543
!   76. https://wg21.link/cwg2586
!   77. https://wg21.link/cwg2735
!   78. https://wg21.link/cwg2799
!   79. https://gcc.gnu.org/PR100157
!   80. https://cplusplus.github.io/CWG/issues/2256.html
!   81. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wdangling-reference
!   82. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/testsuite/g++.dg/opt/nrv23.C;h=9e1253cd830a84ad4de5ff3076a07c543afe344f;hb=7e0b65b239c3a0d68ce94896b236b03de666ffd6
!   83. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/Warning-Options.html#index-Wnrvo
!   84. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=4d935f52b0d5c00fcc154461b87415ebd8791a94
!   85. https://gcc.gnu.org/PR110164
!   86. https://gcc.gnu.org/PR89442
!   87. https://gcc.gnu.org/PR110064
!   88. https://gcc.gnu.org/PR70331
!   89. https://gcc.gnu.org/PR96630
!   90. https://gcc.gnu.org/PR98675
!   91. https://gcc.gnu.org/PR71954
!   92. https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=85ad41a494e31311f8a6b2dbe930a128c5e85840
!   93. https://gcc.gnu.org/PR111069
!   94. https://gcc.gnu.org/PR52953
!   95. https://gcc.gnu.org/PR91483
!   96. https://gcc.gnu.org/PR18474
!   97. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/C_002b_002b-Attributes.html#index-cold-type-attribute
!   98. https://gcc.gnu.org/PR79620
!   99. https://gcc.gnu.org/PR79378
!  100. https://gcc.gnu.org/PR83167
!  101. https://gcc.gnu.org/PR96917
!  102. https://wg21.link/P1689R5
!  103. https://gcc.gnu.org/gcc-14/changes.html#libstdcxx
!  104. https://gcc.gnu.org/gcc-14/changes.html#d
!  105. https://dlang.org/changelog/2.108.1.html
!  106. https://gcc.gnu.org/gcc-14/changes.html#fortran
!  107. https://gcc.gnu.org/gcc-14/changes.html#modula2
!  108. https://gcc.gnu.org/gcc-14/changes.html#rust
!  109. https://gcc.gnu.org/gcc-14/changes.html#jit
!  110. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/types.html#c.gcc_jit_type_get_restrict
!  111. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-25
!  112. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-26
!  113. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/expressions.html#c.gcc_jit_context_new_sizeof
!  114. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/jit/topics/compatibility.html#libgccjit-abi-27
!  115. https://gcc.gnu.org/gcc-14/changes.html#targets
!  116. https://gcc.gnu.org/gcc-14/changes.html#aarch64
!  117. https://github.com/ARM-software/acle/blob/main/main/acle.md#sme-language-extensions-and-intrinsics
!  118. https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning
!  119. https://github.com/ARM-software/acle/blob/main/main/acle.md#memory-prefetch-intrinsics
!  120. https://github.com/ARM-software/acle/blob/main/main/acle.md#special-register-intrinsics
!  121. https://github.com/ARM-software/acle/blob/main/main/acle.md#neon-sve-bridge
!  122. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AArch64-Options.html
!  123. https://gcc.gnu.org/gcc-14/changes.html#amdgcn
!  124. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  125. https://gcc.gnu.org/install/specific.html#amdgcn-x-amdhsa
!  126. https://gcc.gnu.org/gcc-14/changes.html#arm
!  127. https://gcc.gnu.org/gcc-14/changes.html#avr
!  128. https://github.com/avrdudes/avr-libc/issues/931
!  129. https://sourceware.org/PR31124
!  130. https://gcc.gnu.org/wiki/avr-gcc#spec-files
!  131. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrxmega3
!  132. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  133. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/AVR-Options.html#avrtiny
!  134. https://gcc.gnu.org/gcc-14/changes.html#x86
!  135. https://gcc.gnu.org/gcc-11/changes.html
!  136. https://gcc.gnu.org/gcc-14/changes.html#mcore
!  137. https://gcc.gnu.org/gcc-14/changes.html#loongarch
!  138. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-march-7
!  139. https://github.com/loongson/la-toolchain-conventions/
!  140. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtune-8
!  141. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  142. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-SX-Vector-Intrinsics.html
!  143. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-ASX-Vector-Intrinsics.html
!  144. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Base-Built-in-Functions.html
!  145. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  146. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-ml_005ba_005dsx
!  147. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mfrecipe
!  148. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mdiv32
!  149. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlam-bh
!  150. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mlamcas
!  151. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mld-seq-sa
!  152. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip_003dopt
!  153. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrecip
!  154. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mexplicit-relocs-1
!  155. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mrelax-2
!  156. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mpass-mrelax-to-as
!  157. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  158. https://gcc.gnu.org/onlinedocs/gcc-14.1.0/gcc/LoongArch-Options.html#index-mtls-dialect-1
!  159. https://gcc.gnu.org/gcc-14/changes.html#riscv
!  160. https://rivai-ic.com.cn/
!  161. https://www.ventanamicro.com/
!  162. https://www.rivosinc.com/
!  163. https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v1.0.x
!  164. https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/234
!  165. https://eswincomputing.com/
!  166. https://plctlab.org/
!  167. https://www.andestech.com/
!  168. https://rivai-ic.com.cn/
   169. https://bluewhale.systems/
   170. https://gcc.gnu.org/gcc-14/changes.html#sparc
   171. https://gcc.gnu.org/gcc-14/changes.html#analyzer
*************** References
*** 2568,2574 ****
   211. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/index.html
- 
                               GCC 13 Release Series
  
     June 5, 2025
--- 2607,2612 ----
*************** References
*** 2647,2653 ****
    19. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-13/changes.html
- 
                               GCC 13 Release Series
                          Changes, New Features, and Fixes
  
--- 2685,2690 ----
*************** Caveats
*** 2853,2868 ****
            + [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
--- 2890,2904 ----
            + [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 literals ([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
*************** Caveats
*** 2902,2908 ****
       * Support for the <experimental/synchronized_value> header from v2 of
         the Concurrency Technical Specification.
       * Support for many previously unavailable features in freestanding
!        mode, thanks to Arsen Arsenovic. 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
--- 2938,2944 ----
       * Support for the <experimental/synchronized_value> header from v2 of
         the Concurrency Technical Specification.
       * 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
*************** Caveats
*** 3018,3024 ****
  
    [95]AVR
  
!      * Support for the following devices has been added in v13.3:
            + ATtiny102, ATtiny104, ATtiny424, ATtiny426, ATtiny427,
              ATtiny824, ATtiny826, ATtiny827, ATtiny1624, ATtiny1626,
              ATtiny1627, ATtiny3224, ATtiny3226, ATtiny3227, AVR32DD14,
--- 3054,3060 ----
  
    [95]AVR
  
!      * Support for the following devices has been added in GCC 13.3:
            + ATtiny102, ATtiny104, ATtiny424, ATtiny426, ATtiny427,
              ATtiny824, ATtiny826, ATtiny827, ATtiny1624, ATtiny1626,
              ATtiny1627, ATtiny3224, ATtiny3226, ATtiny3227, AVR32DD14,
*************** Caveats
*** 3027,3035 ****
              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
  
--- 3063,3077 ----
              AVR64DD14, AVR64DD20, AVR64DD28, AVR64DD32, AVR64DU28,
              AVR64DU32, AVR64EA28, AVR64EA32, AVR64EA48, ATA5787, ATA5835,
              ATA5700M322.
!      * Support for the following devices has been added in GCC 13.4:
            + AVR32SD20, AVR32SD28, AVR32SD32, AVR64SD28, AVR64SD32,
              AVR64SD48.
+      * Support for the following devices has been added in GCC 13.5:
+           + AVR32DA28S, AVR32DA32S, AVR32DA48S, AVR64DA28S, AVR64DA32S,
+             AVR64DA48S AVR64DA64S, AVR128DA28S, AVR128DA32S, AVR128DA48S,
+             AVR128DA64S, AVR32EB14, AVR32EB20, AVR32EB28, AVR32EB32,
+             AVR16LA14, AVR16LA20, AVR16LA28, AVR16LA32, AVR32LA14,
+             AVR32LA20, AVR32LA28, AVR32LA32.
  
    [96]IA-32/x86-64
  
*************** Caveats
*** 3059,3081 ****
       * New ISA extension support for Intel RAO-INT was added. RAO-INT
         intrinsics are available via the -mraoint compiler switch.
       * GCC now supports the Intel CPU named Raptor Lake through
!        -march=raptorlake. Raptor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Meteor Lake through
!        -march=meteorlake. Meteor Lake is based on Alder Lake.
       * GCC now supports the Intel CPU named Sierra Forest through
         -march=sierraforest. Based on ISA extensions enabled on Alder Lake,
!        the switch further enables the AVX-IFMA, AVX-NE-CONVERT,
!        AVX-VNNI-INT8, CMPccXADD, ENQCMD and UINTR ISA extensions.
       * GCC now supports the Intel CPU named Grand Ridge through
!        -march=grandridge. Grand Ridge is based on Sierra Forest.
       * GCC now supports the Intel CPU named Emerald Rapids through
         -march=emeraldrapids. Emerald Rapids is based on Sapphire Rapids.
       * GCC now supports the Intel CPU named Granite Rapids through
!        -march=graniterapids. Based on Sapphire Rapids, the switch further
!        enables the AMX-FP16 and PREFETCHI ISA extensions.
       * GCC now supports the Intel CPU named Granite Rapids D through
!        -march=graniterapids-d. Based on Granite Rapids, the switch further
!        enables the AMX-COMPLEX ISA extensions.
       * GCC now supports AMD CPUs based on the znver4 core via
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
--- 3101,3131 ----
       * New ISA extension support for Intel RAO-INT was added. RAO-INT
         intrinsics are available via the -mraoint compiler switch.
       * GCC now supports the Intel CPU named Raptor Lake through
!        -march=raptorlake. Raptor Lake is based on Alder Lake. Since GCC
!        13.5, CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Meteor Lake through
!        -march=meteorlake. Meteor Lake is based on Alder Lake. Since GCC
!        13.5, CLDEMOTE is not enabled any longer.
       * GCC now supports the Intel CPU named Sierra Forest through
         -march=sierraforest. Based on ISA extensions enabled on Alder Lake,
!        the switch in addition enables the AVX-IFMA, AVX-NE-CONVERT,
!        AVX-VNNI-INT8 and CMPccXADD ISA extensions. Since GCC 13.2, ENQCMD
!        and UINTR are further enabled.
       * GCC now supports the Intel CPU named Grand Ridge through
!        -march=grandridge. Based on Sierra Forest, the switch in addition
!        enables the RAO-INT ISA extensions. Since GCC 13.2, ENQCMD and
!        UINTR are further enabled. Since GCC 13.3, RAO-INT is not enabled
!        any longer.
       * GCC now supports the Intel CPU named Emerald Rapids through
         -march=emeraldrapids. Emerald Rapids is based on Sapphire Rapids.
       * GCC now supports the Intel CPU named Granite Rapids through
!        -march=graniterapids. Based on Sapphire Rapids, the switch in
!        addition enables the AMX-FP16 and PREFETCHI ISA extensions.
       * GCC now supports the Intel CPU named Granite Rapids D through
!        -march=graniterapids-d. Based on Granite Rapids, the switch in
!        addition enables the AMX-COMPLEX ISA extensions.
!      * Since GCC 13.5, CLDEMOTE is not enabled through the compiler switch
!        -march=alderlake any longer.
       * GCC now supports AMD CPUs based on the znver4 core via
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
*************** Other significant improvements
*** 3271,3277 ****
     provided this notice is preserved.
  
     These pages are [145]maintained by the GCC team. Last modified
!    2025-06-05.
  
  References
  
--- 3321,3327 ----
     provided this notice is preserved.
  
     These pages are [145]maintained by the GCC team. Last modified
!    2026-03-15.
  
  References
  
*************** References
*** 3378,3384 ****
   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
--- 3428,3434 ----
   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/riscv-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
*************** References
*** 3422,3428 ****
   145. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/index.html
- 
                               GCC 12 Release Series
  
     (This release series is no longer supported.)
--- 3472,3477 ----
*************** References
*** 3508,3514 ****
    21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-12/changes.html
- 
                               GCC 12 Release Series
                          Changes, New Features, and Fixes
  
--- 3557,3562 ----
*************** function Multiply (S1, S2 : Sign) return
*** 4009,4014 ****
--- 4057,4064 ----
       * New ISA extension support for Intel AVX512-FP16 was added.
         AVX512-FP16 intrinsics are available via the -mavx512fp16 compiler
         switch.
+      * Since GCC 12.5, CLDEMOTE is not enabled through the compiler switch
+        -march=alderlake any longer.
       * For both C and C++ the _Float16 type is supported on x86 systems
         with SSE2 enabled. Without {-mavx512fp16}, all operations will be
         emulated in software and float instructions.
*************** Other significant improvements
*** 4207,4233 ****
  
    [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
!        be very compact and simple. A new command-line option -gctf enables
!        the generation of CTF.
       * GCC can now generate debugging information in BTF. This is a
         debugging format mainly used in BPF programs and the Linux kernel.
         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).
--- 4257,4283 ----
  
    [165]Debugging formats
  
!      * GCC can now generate debugging information in 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 be very
!        compact and simple. A new command-line option -gctf enables the
!        generation of CTF.
       * GCC can now generate debugging information in BTF. This is a
         debugging format mainly used in BPF programs and the Linux kernel.
         The compiler can generate BTF for any target, when enabled with the
         command-line option -gbtf
  
! [166]GCC 12.1
  
!    This is the [167]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).
  
! [168]GCC 12.2
  
!    This is the [169]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).
*************** Other significant improvements
*** 4241,4247 ****
         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
  
--- 4291,4297 ----
         all optimization levels but -O0 and -Og. The old behavior can be
         obtained by explicitly passing -mcheck-zero-division to GCC.
  
! [170]GCC 12.3
  
    Target Specific Changes
  
*************** Other significant improvements
*** 4251,4289 ****
         -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).
  
! [175]GCC 12.5
  
!    This is the [176]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.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 [177]GCC manuals. If that fails, the
!     [178]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 [179]gcc@gcc.gnu.org. All of [180]our lists have public
      archives.
  
!    Copyright (C) [181]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 [182]maintained by the GCC team. Last modified
!    2025-07-11.
  
  References
  
--- 4301,4339 ----
         -march=znver4. The switch makes GCC consider using 512-bit vectors
         when auto-vectorizing.
  
!    This is the [171]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).
  
! [172]GCC 12.4
  
!    This is the [173]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).
  
! [174]GCC 12.5
  
!    This is the [175]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 12.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 [176]GCC manuals. If that fails, the
!     [177]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 [178]gcc@gcc.gnu.org. All of [179]our lists have public
      archives.
  
!    Copyright (C) [180]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 [181]maintained by the GCC team. Last modified
!    2025-12-29.
  
  References
  
*************** References
*** 4299,4305 ****
    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%20Status#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
--- 4349,4355 ----
    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
*************** References
*** 4403,4409 ****
   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
--- 4453,4459 ----
   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://developer.arm.com/community/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
*************** References
*** 4452,4477 ****
   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/gcc-12/changes.html#12.5
!  176. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.5
!  177. https://gcc.gnu.org/onlinedocs/
!  178. mailto:gcc-help@gcc.gnu.org
!  179. mailto:gcc@gcc.gnu.org
!  180. https://gcc.gnu.org/lists.html
!  181. https://www.fsf.org/
!  182. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
- 
                               GCC 11 Release Series
  
     (This release series is no longer supported.)
--- 4502,4525 ----
   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://gcc.gnu.org/gcc-12/changes.html#12.1
!  167. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.0
!  168. https://gcc.gnu.org/gcc-12/changes.html#12.2
!  169. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.2
!  170. https://gcc.gnu.org/gcc-12/changes.html#12.3
!  171. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.3
!  172. https://gcc.gnu.org/gcc-12/changes.html#12.4
!  173. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.4
!  174. https://gcc.gnu.org/gcc-12/changes.html#12.5
!  175. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=12.5
!  176. https://gcc.gnu.org/onlinedocs/
!  177. mailto:gcc-help@gcc.gnu.org
!  178. mailto:gcc@gcc.gnu.org
!  179. https://gcc.gnu.org/lists.html
!  180. https://www.fsf.org/
!  181. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/index.html
                               GCC 11 Release Series
  
     (This release series is no longer supported.)
*************** References
*** 4557,4563 ****
    21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-11/changes.html
- 
                               GCC 11 Release Series
                          Changes, New Features, and Fixes
  
--- 4605,4610 ----
*************** Caveats
*** 4610,4619 ****
              and
            + multicolumn characters (requiring more than one column to
              display in a monospace font)
!        For example, the character p ("GREEK SMALL LETTER PI (U+03C0)")
         occupies one column, and its UTF-8 encoding requires two bytes; the
!        character &#x1F642; ("SLIGHTLY SMILING FACE (U+1F642)") occupies
!        two 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.
--- 4657,4666 ----
              and
            + multicolumn characters (requiring more than one column to
              display in a monospace font)
!        For example, the character π ("GREEK SMALL LETTER PI (U+03C0)")
         occupies one column, and its UTF-8 encoding requires two bytes; the
!        character 🙂 ("SLIGHTLY SMILING FACE (U+1F642)") occupies two
!        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.
*************** Other significant improvements
*** 5309,5315 ****
     provided this notice is preserved.
  
     These pages are [107]maintained by the GCC team. Last modified
!    2025-01-31.
  
  References
  
--- 5356,5362 ----
     provided this notice is preserved.
  
     These pages are [107]maintained by the GCC team. Last modified
!    2025-08-14.
  
  References
  
*************** References
*** 5335,5341 ****
    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%20Status#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
--- 5382,5388 ----
    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
*************** References
*** 5378,5384 ****
    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
--- 5425,5431 ----
    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/110280/latest
    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
*************** References
*** 5422,5428 ****
   107. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/index.html
- 
                               GCC 10 Release Series
  
     (This release series is no longer supported.)
--- 5469,5474 ----
*************** References
*** 5510,5516 ****
    22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-10/changes.html
- 
                               GCC 10 Release Series
                          Changes, New Features, and Fixes
  
--- 5556,5561 ----
*************** Caveats
*** 5680,5688 ****
         the input encoding (UTF-8, by default), in addition to the UCN
         syntax (\uNNNN or \UNNNNNNNN) that is already supported:
  
! static const int p = 3;
! int get_na�ve_pi() {
!   return p;
  }
  
    [33]C
--- 5725,5733 ----
         the input encoding (UTF-8, by default), in addition to the UCN
         syntax (\uNNNN or \UNNNNNNNN) that is already supported:
  
! static const int π = 3;
! int get_naïve_pi() {
!   return π;
  }
  
    [33]C
*************** typedef svbool_t pred512 __attribute__((
*** 5962,5968 ****
              one. Previously it would always use SVE if possible.
            + If a vector loop uses Advanced SIMD rather than SVE, the
              vectorizer now considers using SVE to vectorize the left-over
!             elements (the "scalar tail" or "epilog").
            + Besides these specific points, there have been many general
              improvements to the way that the vectorizer uses SVE.
       * The -mbranch-protection=pac-ret option now accepts the optional
--- 6007,6013 ----
              one. Previously it would always use SVE if possible.
            + If a vector loop uses Advanced SIMD rather than SVE, the
              vectorizer now considers using SVE to vectorize the left-over
!             elements (the “scalar tail” or “epilog”).
            + Besides these specific points, there have been many general
              improvements to the way that the vectorizer uses SVE.
       * The -mbranch-protection=pac-ret option now accepts the optional
*************** References
*** 6294,6300 ****
    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%20Status#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
--- 6339,6345 ----
    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
*************** References
*** 6332,6338 ****
    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%20Architecture
    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
--- 6377,6383 ----
    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
*************** References
*** 6373,6379 ****
    96. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/index.html
- 
                                GCC 9 Release Series
  
     (This release series is no longer supported.)
--- 6418,6423 ----
*************** References
*** 6461,6467 ****
    22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-9/changes.html
- 
                                GCC 9 Release Series
                          Changes, New Features, and Fixes
  
--- 6505,6510 ----
*************** References
*** 7302,7308 ****
    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%20Status#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
--- 7345,7351 ----
    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
*************** References
*** 7370,7376 ****
   103. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-8/index.html
- 
                                GCC 8 Release Series
  
     (This release series is no longer supported.)
--- 7413,7418 ----
*************** References
*** 7462,7468 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-8/changes.html
- 
                                GCC 8 Release Series
                          Changes, New Features, and Fixes
  
--- 7504,7509 ----
*************** void copy (const char *s)
*** 7748,7754 ****
  {
      char buf[80];
      strncpy (buf, s, sizeof buf);
!     ...
  }
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
--- 7789,7795 ----
  {
      char buf[80];
      strncpy (buf, s, sizeof buf);
!     …
  }
  warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca
  tion]
*************** void f (void)
*** 7821,7827 ****
  {
      char a[] = "abcd1234";
      strcpy (a, a + 4);
!     ...
  }
  warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset
   4 [-Wrestrict]
--- 7862,7868 ----
  {
      char a[] = "abcd1234";
      strcpy (a, a + 4);
!     …
  }
  warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset
   4 [-Wrestrict]
*************** References
*** 8630,8636 ****
    74. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-7/index.html
- 
                                GCC 7 Release Series
  
     (This release series is no longer supported.)
--- 8671,8676 ----
*************** References
*** 8722,8728 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-7/changes.html
- 
                                GCC 7 Release Series
                          Changes, New Features, and Fixes
  
--- 8762,8767 ----
*************** void f (int n)
*** 9091,9097 ****
      d = alloca (n);
    else
      d = malloc (n);
!   ...
  }
  
  warning: argument to 'alloca may be too large due to conversion from 'int' to 'l
--- 9130,9136 ----
      d = alloca (n);
    else
      d = malloc (n);
!   …
  }
  
  warning: argument to 'alloca may be too large due to conversion from 'int' to 'l
*************** ong unsigned int' [-Walloca-larger-than=
*** 9104,9110 ****
  void f (size_t n)
  {
    char *d = alloca (n);
!   ...
  }
  
  warning: unbounded use of 'alloca' [-Walloca-larger-than=]
--- 9143,9149 ----
  void f (size_t n)
  {
    char *d = alloca (n);
!   …
  }
  
  warning: unbounded use of 'alloca' [-Walloca-larger-than=]
*************** void f (unsigned x)
*** 9152,9158 ****
  {
    char d[4];
    snprintf (d, sizeof d, "%#02x", x & 0xff);
!   ...
  }
  
  warning: 'snprintf' output may be truncated before the last format character [-W
--- 9191,9197 ----
  {
    char d[4];
    snprintf (d, sizeof d, "%#02x", x & 0xff);
!   …
  }
  
  warning: 'snprintf' output may be truncated before the last format character [-W
*************** void f (const char *fname)
*** 9180,9186 ****
    char d[8];
    strncpy (d, "/tmp/", sizeof d);
    strncat (d, fname, sizeof d);
!   ...
  }
  
  warning: specified bound 8 equals the size of the destination [-Wstringop-overfl
--- 9219,9225 ----
    char d[8];
    strncpy (d, "/tmp/", sizeof d);
    strncat (d, fname, sizeof d);
!   …
  }
  
  warning: specified bound 8 equals the size of the destination [-Wstringop-overfl
*************** test.cc:4:11: error: expected ';' after
*** 9318,9327 ****
            + std::as_const, std::not_fn,
              std::has_unique_object_representations, constexpr
              std::addressof.
!        Thanks to Daniel Kr�gler, Tim Shen, Edward Smith-Rowland, and Ville
         Voutilainen for work on the C++17 support.
       * A new power-of-two rehashing policy for use with the _Hashtable
!        internals, thanks to Fran�ois Dumont.
  
    [20]Fortran
  
--- 9357,9366 ----
            + std::as_const, std::not_fn,
              std::has_unique_object_representations, constexpr
              std::addressof.
!        Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville
         Voutilainen for work on the C++17 support.
       * A new power-of-two rehashing policy for use with the _Hashtable
!        internals, thanks to François Dumont.
  
    [20]Fortran
  
*************** const int* get_address (unsigned idx)
*** 9491,9497 ****
  }
  
       * A new command-line option -Wmisspelled-isr has been added. It turns
!        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
--- 9530,9536 ----
  }
  
       * A new command-line option -Wmisspelled-isr has been added. It turns
!        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
*************** References
*** 9863,9869 ****
    67. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
- 
                                GCC 6 Release Series
  
     (This release series is no longer supported.)
--- 9902,9907 ----
*************** References
*** 9955,9961 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-6/changes.html
- 
                                GCC 6 Release Series
                          Changes, New Features, and Fixes
  
--- 9993,9998 ----
*************** Target Specific Changes
*** 10628,10670 ****
  
    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
  
--- 10665,10706 ----
  
    IA-32/x86-64
  
!      * Support for the deprecated pcommit instruction has been removed.
  
!                                   [51]GCC 6.4
  
!    This is the [52]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).
  
! [53]Operating Systems
  
!   [54]RTEMS
  
       * The ABI changes on ARM so that no short enums are used by default.
  
!                                   [55]GCC 6.5
  
!    This is the [56]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 [57]GCC manuals. If that fails, the
!     [58]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 [59]gcc@gcc.gnu.org. All of [60]our lists have public
      archives.
  
!    Copyright (C) [61]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 [62]maintained by the GCC team. Last modified
!    2025-09-29.
  
  References
  
*************** References
*** 10680,10686 ****
    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
--- 10716,10722 ----
    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://www.cve.org/CVERecord?id=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
*************** References
*** 10718,10739 ****
    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
  
     (This release series is no longer supported.)
--- 10754,10773 ----
    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://gcc.gnu.org/gcc-6/changes.html#GCC6.4
!   52. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4
!   53. https://gcc.gnu.org/gcc-6/changes.html#os64
!   54. https://gcc.gnu.org/gcc-6/changes.html#rtems64
!   55. https://gcc.gnu.org/gcc-6/changes.html#GCC6.5
!   56. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5
!   57. https://gcc.gnu.org/onlinedocs/
!   58. mailto:gcc-help@gcc.gnu.org
!   59. mailto:gcc@gcc.gnu.org
!   60. https://gcc.gnu.org/lists.html
!   61. https://www.fsf.org/
!   62. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-5/index.html
                                GCC 5 Release Series
  
     (This release series is no longer supported.)
*************** References
*** 10825,10831 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-5/changes.html
- 
                                GCC 5 Release Series
                          Changes, New Features, and Fixes
  
--- 10859,10864 ----
*************** Target Specific Changes
*** 11690,11718 ****
  
    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%20MPX%20support%20in%20the%20GCC%20compiler
     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
--- 11723,11750 ----
  
    IA-32/x86-64
  
!      * Support for the pcommit instruction has been removed.
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [71]GCC manuals. If that fails, the
!     [72]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 [73]gcc@gcc.gnu.org. All of [74]our lists have public
      archives.
  
!    Copyright (C) [75]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 [76]maintained by the GCC team. Last modified
!    2025-09-09.
  
  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
*************** References
*** 11780,11795 ****
    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
  
     (This release series is no longer supported.)
--- 11812,11825 ----
    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://gcc.gnu.org/onlinedocs/
!   72. mailto:gcc-help@gcc.gnu.org
!   73. mailto:gcc@gcc.gnu.org
!   74. https://gcc.gnu.org/lists.html
!   75. https://www.fsf.org/
!   76. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/index.html
                               GCC 4.9 Release Series
  
     (This release series is no longer supported.)
*************** References
*** 11881,11887 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.9/changes.html
- 
                               GCC 4.9 Release Series
                          Changes, New Features, and Fixes
  
--- 11911,11916 ----
*************** General Optimizer Improvements
*** 11995,12015 ****
         -fdiagnostics-color=never.
         Sample diagnostics output:
      $ g++ -fdiagnostics-color=always -S -Wall test.C
!     test.C: In function `int foo()':
      test.C:1:14: warning: no return statement in function returning non-void [-W
  return-type]
       int foo () { }
                    ^
      test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use
!  -ftemplate-depth= to increase the maximum) instantiating `struct X<100>'
       template <int N> struct X { static const int value = X<N-1>::value; }; temp
  late struct X<1000>;
                                                    ^
!     test.C:2:46:   recursively required from `const int X<999>::value'
!     test.C:2:46:   required from `const int X<1000>::value'
      test.C:2:88:   required from here
  
!     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
--- 12024,12044 ----
         -fdiagnostics-color=never.
         Sample diagnostics output:
      $ g++ -fdiagnostics-color=always -S -Wall test.C
!     test.C: In function ‘int foo()’:
      test.C:1:14: warning: no return statement in function returning non-void [-W
  return-type]
       int foo () { }
                    ^
      test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use
!  -ftemplate-depth= to increase the maximum) instantiating ‘struct X<100>’
       template <int N> struct X { static const int value = X<N-1>::value; }; temp
  late struct X<1000>;
                                                    ^
!     test.C:2:46:   recursively required from ‘const int X<999>::value’
!     test.C:2:46:   required from ‘const int X<1000>::value’
      test.C:2:88:   required from here
  
!     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
*************** auto incr = [](auto x) { return x++; };
*** 12114,12121 ****
  // a functional object that will add two like-type objects
  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 [20]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.
--- 12143,12150 ----
  // a functional object that will add two like-type objects
  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 [20]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++; }
*** 12208,12214 ****
         be used as argument to ISO_C_BINDING's C_LOC and as actual argument
         to another NO_ARG_CHECK dummy argument; also the other constraints
         of TYPE(*) apply. The dummy arguments should be declared as scalar
!        or assumed-size variable of type type(*) (recommended) - or of type
         integer, real, complex or logical. With NO_ARG_CHECK, a pointer to
         the data without further type or shape information is passed,
         similar to C's void*. Note that also TS 29113's
--- 12237,12243 ----
         be used as argument to ISO_C_BINDING's C_LOC and as actual argument
         to another NO_ARG_CHECK dummy argument; also the other constraints
         of TYPE(*) apply. The dummy arguments should be declared as scalar
!        or assumed-size variable of type type(*) (recommended) – or of type
         integer, real, complex or logical. With NO_ARG_CHECK, a pointer to
         the data without further type or shape information is passed,
         similar to C's void*. Note that also TS 29113's
*************** References
*** 12553,12559 ****
    56. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/index.html
- 
                               GCC 4.8 Release Series
  
     (This release series is no longer supported.)
--- 12582,12587 ----
*************** References
*** 12650,12656 ****
    25. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.8/changes.html
- 
                               GCC 4.8 Release Series
                          Changes, New Features, and Fixes
  
--- 12678,12683 ----
*************** New Languages and Language specific impr
*** 12769,12776 ****
         diagnostics. Combined with the caret information, an example
         diagnostic showing these two features is:
  
! t.c:1:94: error: invalid operands to binary < (have `struct mystruct' and `float
! ')
   #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) _
  _b = (B); __a < __b ? __b : __a; })
  
--- 12796,12803 ----
         diagnostics. Combined with the caret information, an example
         diagnostic showing these two features is:
  
! t.c:1:94: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float
! ’)
   #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) _
  _b = (B); __a < __b ? __b : __a; })
  
*************** int i = A().f();  // error, f() requires
*** 12894,12901 ****
              older versions except as noted below.
            + ABI: Some internal names (used in the assembler/object file)
              have changed for symbols declared in the specification part of
!             a module. If an affected module - or a file using it via use
!             association - is recompiled, the module and all files which
              directly use such symbols have to be recompiled as well. This
              change only affects the following kind of module symbols:
                 o Procedure pointers. Note: C-interoperable function
--- 12921,12928 ----
              older versions except as noted below.
            + ABI: Some internal names (used in the assembler/object file)
              have changed for symbols declared in the specification part of
!             a module. If an affected module – or a file using it via use
!             association – is recompiled, the module and all files which
              directly use such symbols have to be recompiled as well. This
              change only affects the following kind of module symbols:
                 o Procedure pointers. Note: C-interoperable function
*************** int i = A().f();  // error, f() requires
*** 12922,12928 ****
       * The [21]-Wcompare-reals command-line option has been added. When
         this is set, warnings are issued when comparing REAL or COMPLEX
         types for equality and inequality; consider replacing a == b by
!        abs(a-b) < eps with a suitable eps. -Wcompare-reals is enabled by
         -Wextra.
       * The [22]-Wtarget-lifetime command-line option has been added
         (enabled with -Wall), which warns if the pointer in a pointer
--- 12949,12955 ----
       * The [21]-Wcompare-reals command-line option has been added. When
         this is set, warnings are issued when comparing REAL or COMPLEX
         types for equality and inequality; consider replacing a == b by
!        abs(a−b) < eps with a suitable eps. -Wcompare-reals is enabled by
         -Wextra.
       * The [22]-Wtarget-lifetime command-line option has been added
         (enabled with -Wall), which warns if the pointer in a pointer
*************** int i = A().f();  // error, f() requires
*** 12934,12940 ****
         4.0e0).
         (For Fortran source code, consider replacing the "q" in
         floating-point literals by a kind parameter (e.g. 4.0e0_qp with a
!        suitable qp). Note that - in Fortran source code - replacing "q" by
         a simple "e" is not equivalent.)
       * The GFORTRAN_TMPDIR environment variable for specifying a
         non-default directory for files opened with STATUS="SCRATCH", is
--- 12961,12967 ----
         4.0e0).
         (For Fortran source code, consider replacing the "q" in
         floating-point literals by a kind parameter (e.g. 4.0e0_qp with a
!        suitable qp). Note that – in Fortran source code – replacing "q" by
         a simple "e" is not equivalent.)
       * The GFORTRAN_TMPDIR environment variable for specifying a
         non-default directory for files opened with STATUS="SCRATCH", is
*************** int i = A().f();  // error, f() requires
*** 13037,13044 ****
      }
         The inline assembler in this example will generate code like
      mov r24, 8+7
!        provided c is allocated to R24 and val is allocated to R8...R15.
!        This works because the GNU assembler accepts plain register numbers
         without register prefix.
       * Static initializers with 3-byte symbols are supported now:
      extern const __memx char foo;
--- 13064,13071 ----
      }
         The inline assembler in this example will generate code like
      mov r24, 8+7
!        provided c is allocated to R24 and val is allocated to R8…R15. This
!        works because the GNU assembler accepts plain register numbers
         without register prefix.
       * Static initializers with 3-byte symbols are supported now:
      extern const __memx char foo;
*************** int i = A().f();  // error, f() requires
*** 13372,13378 ****
     provided this notice is preserved.
  
     These pages are [67]maintained by the GCC team. Last modified
!    2025-02-28.
  
  References
  
--- 13399,13405 ----
     provided this notice is preserved.
  
     These pages are [67]maintained by the GCC team. Last modified
!    2025-10-05.
  
  References
  
*************** References
*** 13445,13451 ****
    67. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/index.html
- 
                               GCC 4.7 Release Series
  
     (This release series is no longer supported.)
--- 13472,13477 ----
*************** References
*** 13537,13543 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.7/changes.html
- 
                               GCC 4.7 Release Series
                          Changes, New Features, and Fixes
  
--- 13563,13568 ----
*************** long double pi = 180.0_degrees;
*** 13851,13857 ****
  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 {
--- 13876,13882 ----
  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 {
*************** const int &y = f(2);
*** 14061,14067 ****
         -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 [42]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)
--- 14086,14092 ----
         -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 [42]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)
*************** void set_portb (uint8_t value)
*** 14105,14111 ****
         suitable to be used as operand in an I/O command. The address must
         be a constant integer known at compile time.
       * The inline assembler constraint "R" to represent integers in the
!        range -6 ... 5 has been removed without replacement.
       * Many optimizations to:
            + 64-bit integer arithmetic
            + Widening multiplication
--- 14130,14136 ----
         suitable to be used as operand in an I/O command. The address must
         be a constant integer known at compile time.
       * The inline assembler constraint "R" to represent integers in the
!        range −6 … 5 has been removed without replacement.
       * Many optimizations to:
            + 64-bit integer arithmetic
            + Widening multiplication
*************** void set_portb (uint8_t value)
*** 14117,14123 ****
            + If-else decision trees generated by switch instructions
            + Merging of data located in flash memory
            + New libgcc variants for devices with 8-bit wide stack pointer
!           + ...
       * Better documentation:
            + Handling of EIND and indirect jumps on devices with more than
              128 KiB of program memory.
--- 14142,14148 ----
            + If-else decision trees generated by switch instructions
            + Merging of data located in flash memory
            + New libgcc variants for devices with 8-bit wide stack pointer
!           + …
       * Better documentation:
            + Handling of EIND and indirect jumps on devices with more than
              128 KiB of program memory.
*************** References
*** 14376,14382 ****
    42. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
    43. http://www.nongnu.org/avr-libc/
    44. https://gcc.gnu.org/PR54461
!   45. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html
    46. https://sites.google.com/site/x32abi/
    47. https://gcc.gnu.org/gcc-4.7/changes.html#mips
    48. https://dwarfstd.org/issues/100909.1.html
--- 14401,14407 ----
    42. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
    43. http://www.nongnu.org/avr-libc/
    44. https://gcc.gnu.org/PR54461
!   45. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html
    46. https://sites.google.com/site/x32abi/
    47. https://gcc.gnu.org/gcc-4.7/changes.html#mips
    48. https://dwarfstd.org/issues/100909.1.html
*************** References
*** 14400,14406 ****
    66. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
- 
                               GCC 4.6 Release Series
  
     (This release series is no longer supported.)
--- 14425,14430 ----
*************** References
*** 14492,14498 ****
    23. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/changes.html
- 
                               GCC 4.6 Release Series
                          Changes, New Features, and Fixes
  
--- 14516,14521 ----
*************** New Languages and Language specific impr
*** 14832,14838 ****
  
       * [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
--- 14855,14861 ----
  
       * [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
*************** New Languages and Language specific impr
*** 14887,14893 ****
              allocated (if unallocated) or reallocated (if the shape or
              type parameter is different). To avoid the small performance
              penalty, you can use a(:) = ... instead of a = ... for arrays
!             and character strings - or disable the feature using -std=f95
              or -fno-realloc-lhs.
            + Deferred type parameter: For scalar allocatable and pointer
              variables the character length can be deferred.
--- 14910,14916 ----
              allocated (if unallocated) or reallocated (if the shape or
              type parameter is different). To avoid the small performance
              penalty, you can use a(:) = ... instead of a = ... for arrays
!             and character strings – or disable the feature using -std=f95
              or -fno-realloc-lhs.
            + Deferred type parameter: For scalar allocatable and pointer
              variables the character length can be deferred.
*************** New Languages and Language specific impr
*** 14942,14948 ****
              be declared in a single PROCEDURE statement; implied-shape
              arrays are supported for named constants (PARAMETER). The
              transformational, three argument versions of BESSEL_JN and
!             BESSEL_YN were added - the elemental, two-argument version had
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
--- 14965,14971 ----
              be declared in a single PROCEDURE statement; implied-shape
              arrays are supported for named constants (PARAMETER). The
              transformational, three argument versions of BESSEL_JN and
!             BESSEL_YN were added – the elemental, two-argument version had
              been added in GCC 4.4; note that the transformational
              functions use a recurrence algorithm.
  
*************** References
*** 15439,15445 ****
    46. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/index.html
- 
                               GCC 4.5 Release Series
  
     (This release series is no longer supported.)
--- 15462,15467 ----
*************** References
*** 15526,15532 ****
    18. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.5/changes.html
- 
                               GCC 4.5 Release Series
                          Changes, New Features, and Fixes
  
--- 15548,15553 ----
*************** New Languages and Language specific impr
*** 15763,15769 ****
         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
--- 15784,15790 ----
         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
*************** New Languages and Language specific impr
*** 15804,15810 ****
            + 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,
--- 15825,15831 ----
            + Existing facilities now exploit explicit operators and the
              newly implemented core C++0x features.
            + The header <cstdatomic> has been renamed to <atomic>.
!      * An experimental 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
*** 15826,15832 ****
         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.
--- 15847,15853 ----
         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.
*************** vector-size: improvement = 3: call stack
*** 15836,15855 ****
         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
--- 15857,15876 ----
         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.
  
!   [17]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 ([18]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
*** 15867,15873 ****
       * 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,
--- 15888,15894 ----
       * 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 [19]-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
*** 15875,15881 ****
         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
--- 15896,15902 ----
         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 [20]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
*** 15887,15893 ****
       * 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
--- 15908,15914 ----
       * 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
!        [21]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
*** 15913,15919 ****
              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(*)).
--- 15934,15940 ----
              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.
!           + [22]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
*** 15930,15936 ****
              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
  
--- 15951,15957 ----
              ATAN(Y,X) is now an alias for ATAN2(Y,X).
            + The BLOCK construct has been implemented.
  
! [23]New Targets and Target Specific Improvements
  
    AIX
  
*************** vector-size: improvement = 3: call stack
*** 15961,15967 ****
            + ATmega16U2
            + ATmega32U2
  
!   [25]IA-32/x86-64
  
       * GCC now will set the default for -march= based on the configure
         target.
--- 15982,15988 ----
            + ATmega16U2
            + ATmega32U2
  
!   [24]IA-32/x86-64
  
       * GCC now will set the default for -march= based on the configure
         target.
*************** vector-size: improvement = 3: call stack
*** 15995,16001 ****
       * 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.
--- 16016,16022 ----
       * GCC now supports thread-local storage (TLS) on M68K and ColdFire
         processors.
  
!   [25]MeP
  
     Support has been added for the Toshiba Media embedded Processor (MeP,
     or mep-elf) embedded target.
*************** vector-size: improvement = 3: call stack
*** 16033,16039 ****
         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
--- 16054,16060 ----
         use_debug_exception_return. See the documentation for more details
         about these attributes.
  
!   [26]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
*************** vector-size: improvement = 3: call stack
*** 16058,16070 ****
         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.
--- 16079,16091 ----
         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.
  
!   [27]RX
  
     Support has been added for the Renesas RX Processor (rx-elf) target.
  
! [28]Operating Systems
  
!   [29]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
*** 16113,16128 ****
         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*)
--- 16134,16149 ----
         infodir info documentation [DATAROOTDIR/info]
         mandir  man documentation [DATAROOTDIR/man]
  
! [30]GCC 4.5.1
  
!    This is the [31]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 ([32]-flto) now also works on a few
         non-ELF targets:
            + Cygwin (*-cygwin*)
            + MinGW (*-mingw*)
*************** Other significant improvements
*** 16130,16145 ****
         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).
--- 16151,16166 ----
         LTO is not enabled by default for these targets. To enable LTO, you
         should configure with the --enable-lto option.
  
! [33]GCC 4.5.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.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).
  
! [35]GCC 4.5.3
  
!    This is the [36]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).
*************** Other significant improvements
*** 16154,16180 ****
     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
  
--- 16175,16201 ----
     vec_vsx_ld and vec_vsx_st which always generates the VSX memory
     instructions.
  
! [37]GCC 4.5.4
  
!    This is the [38]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 [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
!    2025-09-29.
  
  References
  
*************** References
*** 16192,16231 ****
    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
  
     This release series is no longer maintained.
--- 16213,16250 ----
    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/status.html#status.iso.tr24733
!   16. https://sourceware.org/gdb/wiki/STLSupport
!   17. https://gcc.gnu.org/gcc-4.5/changes.html#Fortran
!   18. https://gcc.gnu.org/gcc-4.4/changes.html
!   19. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
!   20. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
!   21. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
!   22. https://gcc.gnu.org/wiki/OOP
!   23. https://gcc.gnu.org/gcc-4.5/changes.html#targets
!   24. https://gcc.gnu.org/gcc-4.5/changes.html#x86
!   25. https://gcc.gnu.org/gcc-4.5/changes.html#mep
!   26. https://gcc.gnu.org/gcc-4.5/changes.html#rs6000
!   27. https://gcc.gnu.org/gcc-4.5/changes.html#rx
!   28. https://gcc.gnu.org/gcc-4.5/changes.html#os
!   29. https://gcc.gnu.org/gcc-4.5/changes.html#windows
!   30. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.1
!   31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
!   32. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
!   33. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.2
!   34. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
!   35. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.3
!   36. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
!   37. https://gcc.gnu.org/gcc-4.5/changes.html#GCC4.5.4
!   38. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
!   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-4.4/index.html
                               GCC 4.4 Release Series
  
     This release series is no longer maintained.
*************** References
*** 16324,16330 ****
    21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.4/changes.html
- 
                               GCC 4.4 Release Series
                          Changes, New Features, and Fixes
  
--- 16343,16348 ----
*************** References
*** 16965,16971 ****
    32. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/index.html
- 
                               GCC 4.3 Release Series
  
     (This release series is no longer supported.)
--- 16983,16988 ----
*************** References
*** 17060,17066 ****
    20. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.3/changes.html
- 
                               GCC 4.3 Release Series
                          Changes, New Features, and Fixes
  
--- 17077,17082 ----
*************** References
*** 17884,17890 ****
    39. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/index.html
- 
                               GCC 4.2 Release Series
  
     (This release series is no longer supported.)
--- 17900,17905 ----
*************** References
*** 17971,17977 ****
    18. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.2/changes.html
- 
                               GCC 4.2 Release Series
                          Changes, New Features, and Fixes
  
--- 17986,17991 ----
*************** References
*** 18295,18301 ****
    13. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/index.html
- 
                               GCC 4.1 Release Series
  
     (This release series is no longer supported.)
--- 18309,18314 ----
*************** References
*** 18374,18380 ****
    16. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.1/changes.html
- 
                               GCC 4.1 Release Series
                          Changes, New Features, and Fixes
  
--- 18387,18392 ----
*************** References
*** 18933,18939 ****
    15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/index.html
- 
                               GCC 4.0 Release Series
  
     (This release series is no longer supported.)
--- 18945,18950 ----
*************** References
*** 19020,19026 ****
    18. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-4.0/changes.html
- 
                               GCC 4.0 Release Series
                          Changes, New Features, and Fixes
  
--- 19031,19036 ----
*************** References
*** 19555,19561 ****
    27. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/index.html
- 
                               GCC 3.4 Release Series
  
     (This release series is no longer supported.)
--- 19565,19570 ----
*************** References
*** 19657,19663 ****
    22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.4/changes.html
- 
                               GCC 3.4 Release Series
                          Changes, New Features, and Fixes
  
--- 19666,19671 ----
*************** References
*** 21430,21436 ****
     7. https://www.boost.org/
     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%20Builtins
    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
--- 21438,21444 ----
     7. https://www.boost.org/
     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
*************** References
*** 21449,21455 ****
    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=%5C%5B3%5C.4.*%5BRr%5Degression&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
--- 21457,21463 ----
    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
*************** References
*** 21848,21854 ****
   425. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/index.html
- 
                               GCC 3.3 Release Series
  
     (This release series is no longer supported.)
--- 21856,21861 ----
*************** References
*** 21949,21955 ****
    21. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.3/changes.html
- 
                               GCC 3.3 Release Series
                          Changes, New Features, and Fixes
  
--- 21956,21961 ----
*************** References
*** 23866,23872 ****
   563. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/index.html
- 
                               GCC 3.2 Release Series
  
     (This release series is no longer supported.)
--- 23872,23877 ----
*************** References
*** 23957,23963 ****
    17. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.2/changes.html
- 
                               GCC 3.2 Release Series
                          Changes, New Features, and Fixes
  
--- 23962,23967 ----
*************** References
*** 24818,24824 ****
   255. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/index.html
- 
                                      GCC 3.1
  
     (This release series is no longer supported.)
--- 24822,24827 ----
*************** References
*** 24885,24891 ****
    13. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.1/changes.html
- 
                               GCC 3.1 Release Series
                          Changes, New Features, and Fixes
  
--- 24888,24893 ----
*************** New Targets and Target Specific Improvem
*** 25103,25109 ****
            + For those targets that support it, -mfpmath=sse will cause the
              compiler to generate SSE/SSE2 instructions for floating point
              math instead of x87 instructions. Usually, this will lead to
!             quicker code -- especially on the Pentium 4. Note that only
              scalar floating point instructions are used and GCC does not
              exploit SIMD features yet.
            + Prefetch support has been added to the Pentium III, Pentium 4,
--- 25105,25111 ----
            + For those targets that support it, -mfpmath=sse will cause the
              compiler to generate SSE/SSE2 instructions for floating point
              math instead of x87 instructions. Usually, this will lead to
!             quicker code — especially on the Pentium 4. Note that only
              scalar floating point instructions are used and GCC does not
              exploit SIMD features yet.
            + Prefetch support has been added to the Pentium III, Pentium 4,
*************** References
*** 25239,25245 ****
    14. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/index.html
- 
                                     GCC 3.0.4
  
     (This release series is no longer supported.)
--- 25241,25246 ----
*************** References
*** 25314,25320 ****
    14. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/features.html
- 
                                GCC 3.0 New Features
  
  Additional changes in GCC 3.0.4
--- 25315,25320 ----
*************** New Languages and Language specific impr
*** 25396,25404 ****
       * New C++ support library and many C++ bug fixes, vastly improving
         our conformance to the ISO C++ standard.
       * New [7]inliner for C++.
!      * Rewritten C preprocessor, integrated into the C, C++ and Objective
!        C compilers, with very many improvements including ISO C99 support
!        and [8]improvements to dependency generation.
       * Support for more [9]ISO C99 features.
       * Many improvements to support for checking calls to format functions
         such as printf and scanf, including support for ISO C99 format
--- 25396,25404 ----
       * New C++ support library and many C++ bug fixes, vastly improving
         our conformance to the ISO C++ standard.
       * New [7]inliner for C++.
!      * Rewritten C preprocessor, integrated into the C, C++ and
!        Objective-C compilers, with very many improvements including ISO
!        C99 support and [8]improvements to dependency generation.
       * Support for more [9]ISO C99 features.
       * Many improvements to support for checking calls to format functions
         such as printf and scanf, including support for ISO C99 format
*************** Other significant improvements
*** 25485,25491 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2025-06-05.
  
  References
  
--- 25485,25491 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2026-01-02.
  
  References
  
*************** References
*** 25509,25515 ****
    18. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-3.0/caveats.html
- 
                                  GCC 3.0 Caveats
  
       * -fstrict-aliasing is now part of -O2 and higher optimization
--- 25509,25514 ----
*************** http://gcc.gnu.org/gcc-3.0/caveats.html
*** 25526,25532 ****
         about this may be fixed by adding a null statement (a single
         semicolon) after the label.
       * The poorly documented extension that allowed string constants in C,
!        C++ and Objective C to contain unescaped newlines has been
         deprecated and may be removed in a future version. Programs using
         this extension may be fixed in several ways: the bare newline may
         be replaced by \n, or preceded by \n\, or string concatenation may
--- 25525,25531 ----
         about this may be fixed by adding a null statement (a single
         semicolon) after the label.
       * The poorly documented extension that allowed string constants in C,
!        C++ and Objective-C to contain unescaped newlines has been
         deprecated and may be removed in a future version. Programs using
         this extension may be fixed in several ways: the bare newline may
         be replaced by \n, or preceded by \n\, or string concatenation may
*************** http://gcc.gnu.org/gcc-3.0/caveats.html
*** 25556,25562 ****
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2022-10-26.
  
  References
  
--- 25555,25561 ----
     provided this notice is preserved.
  
     These pages are [7]maintained by the GCC team. Last modified
!    2026-01-02.
  
  References
  
*************** References
*** 25569,25575 ****
     7. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/index.html
- 
                                      GCC 2.95
  
     (This release series is no longer supported.)
--- 25568,25573 ----
*************** References
*** 25659,25665 ****
    15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/features.html
- 
                               GCC 2.95 New Features
  
       * General Optimizer Improvements:
--- 25657,25662 ----
*************** http://gcc.gnu.org/gcc-2.95/features.htm
*** 25706,25712 ****
            + sh4
            + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix,
              arm-linux)
!           + vxWorks targets include support for vxWorks threads
            + StrongARM 110 and ARM9 support added. ARM Scheduling
              parameters rewritten.
            + Various changes to the MIPS port to avoid assembler macros,
--- 25703,25709 ----
            + sh4
            + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix,
              arm-linux)
!           + VxWorks targets include support for VxWorks threads
            + StrongARM 110 and ARM9 support added. ARM Scheduling
              parameters rewritten.
            + Various changes to the MIPS port to avoid assembler macros,
*************** Additional Changes in GCC 2.95.1
*** 25762,25768 ****
            + Fix compiler abort in new cfg code exposed by x86 port.
            + Fix out of range array reference in code convert flat
              registers to the x87 stacked FP register file.
!           + Fix minor vxworks configuration bug.
            + Fix return type of bsearch for SunOS 4.x.
       * Language & Runtime specific fixes.
            + The G++ signature extension has been deprecated. It will be
--- 25759,25765 ----
            + Fix compiler abort in new cfg code exposed by x86 port.
            + Fix out of range array reference in code convert flat
              registers to the x87 stacked FP register file.
!           + Fix minor VxWorks configuration bug.
            + Fix return type of bsearch for SunOS 4.x.
       * Language & Runtime specific fixes.
            + The G++ signature extension has been deprecated. It will be
*************** Additional Changes in GCC 2.95.3
*** 25903,25909 ****
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2025-06-05.
  
  References
  
--- 25900,25906 ----
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2025-10-08.
  
  References
  
*************** References
*** 25931,25937 ****
    22. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/gcc-2.95/caveats.html
- 
                                  GCC 2.95 Caveats
  
       * GCC 2.95 will issue an error for invalid asm statements that had
--- 25928,25933 ----
*************** References
*** 25999,26005 ****
     7. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/index.html
- 
                                      EGCS 1.1
  
     September 3, 1998: We are pleased to announce the release of EGCS 1.1.
--- 25995,26000 ----
*************** References
*** 26228,26234 ****
    15. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/features.html
- 
                               EGCS 1.1 new features
  
       * Integrated GNU Fortran (g77) compiler and runtime library with
--- 26223,26228 ----
*************** References
*** 26322,26328 ****
    10. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.1/caveats.html
- 
                                  EGCS 1.1 Caveats
  
       * EGCS has an integrated libstdc++, but does not have an integrated
--- 26316,26321 ----
*************** References
*** 26372,26378 ****
     6. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/index.html
- 
                                      EGCS 1.0
  
     December 3, 1997: We are pleased to announce the release of EGCS 1.0.
--- 26365,26370 ----
*************** References
*** 26572,26578 ****
    10. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/features.html
- 
                                 EGCS 1.0 features
  
       * Core compiler is based on the gcc2 development tree from Aug 2,
--- 26564,26569 ----
*************** References
*** 26636,26642 ****
     8. https://gcc.gnu.org/about.html
  ======================================================================
  http://gcc.gnu.org/egcs-1.0/caveats.html
- 
                                  EGCS 1.0 Caveats
  
       * EGCS has an integrated libstdc++, but does not have an integrated
--- 26627,26632 ----
diff -Nrcpad gcc-15.2.0/SECURITY.txt gcc-16.1.0-RC-20260423/SECURITY.txt
*** gcc-15.2.0/SECURITY.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/SECURITY.txt	Thu Apr 23 11:07:32 2026
*************** Language runtime libraries
*** 85,90 ****
--- 85,91 ----
      * libcpp
      * libdecnumber
      * libffi
+     * libga68
      * libgcc
      * libgfortran
      * libgm2
diff -Nrcpad gcc-15.2.0/c++tools/ChangeLog gcc-16.1.0-RC-20260423/c++tools/ChangeLog
*** gcc-15.2.0/c++tools/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/c++tools/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,10 ****
! 2025-08-08  Release Manager
! 
! 	* GCC 15.2.0 released.
! 
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
--- 1,7 ----
! 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* configure.ac: Don't check `--enable-default-pie`.
! 	* configure: Regen.
  
  2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
***************
*** 213,221 ****
  	* resolver.cc: New.
  	* resolver.h: New.
  	* 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
--- 210,217 ----
  	* resolver.cc: New.
  	* resolver.h: New.
  	* server.cc: New.
  
! Copyright (C) 2020-2026 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-15.2.0/c++tools/Makefile.in gcc-16.1.0-RC-20260423/c++tools/Makefile.in
*** gcc-15.2.0/c++tools/Makefile.in	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/Makefile.in	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,5 ----
  # Makefile for c++tools
! #   Copyright (C) 2020-2026 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-15.2.0/c++tools/configure gcc-16.1.0-RC-20260423/c++tools/configure
*** gcc-15.2.0/c++tools/configure	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/configure	Thu Apr 23 11:07:32 2026
*************** enable_option_checking
*** 700,706 ****
  enable_c___tools
  enable_maintainer_mode
  enable_checking
- enable_default_pie
  enable_host_pie
  enable_host_bind_now
  with_gcc_major_version_only
--- 700,705 ----
*************** Optional Features:
*** 1335,1341 ****
                            enable expensive run-time checks. With LIST, enable
                            only specific categories of checks. Categories are:
                            yes,no,all,none,release.
-   --enable-default-pie    enable Position Independent Executable as default
    --enable-host-pie       build host code as PIE
    --enable-host-bind-now  link host code as BIND_NOW
  
--- 1334,1339 ----
*************** $as_echo "#define ENABLE_ASSERT_CHECKING
*** 2946,2960 ****
  
  fi
  
- # Check whether --enable-default-pie was given.
- # Check whether --enable-default-pie was given.
- if test "${enable_default_pie+set}" = set; then :
-   enableval=$enable_default_pie; PICFLAG=-fPIE
- else
-   PICFLAG=
- fi
- 
- 
  # Enable --enable-host-pie
  # Check whether --enable-host-pie was given.
  if test "${enable_host_pie+set}" = set; then :
--- 2944,2949 ----
diff -Nrcpad gcc-15.2.0/c++tools/configure.ac gcc-16.1.0-RC-20260423/c++tools/configure.ac
*** gcc-15.2.0/c++tools/configure.ac	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/configure.ac	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,5 ----
  # Configure script for c++tools
! #   Copyright (C) 2020-2026 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
*************** if test x$ac_assert_checking != x ; then
*** 97,108 ****
  [Define if you want assertions enabled.  This is a cheap check.])
  fi
  
- # Check whether --enable-default-pie was given.
- AC_ARG_ENABLE(default-pie,
- [AS_HELP_STRING([--enable-default-pie],
- 		  [enable Position Independent Executable as default])],
- [PICFLAG=-fPIE], [PICFLAG=])
- 
  # Enable --enable-host-pie
  AC_ARG_ENABLE(host-pie,
  [AS_HELP_STRING([--enable-host-pie],
--- 97,102 ----
diff -Nrcpad gcc-15.2.0/c++tools/resolver.cc gcc-16.1.0-RC-20260423/c++tools/resolver.cc
*** gcc-15.2.0/c++tools/resolver.cc	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/resolver.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2026 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-15.2.0/c++tools/resolver.h gcc-16.1.0-RC-20260423/c++tools/resolver.h
*** gcc-15.2.0/c++tools/resolver.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/resolver.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* C++ modules.  Experimental!	-*- c++ -*-
!    Copyright (C) 2017-2026 Free Software Foundation, Inc.
     Written by Nathan Sidwell <nathan@acm.org> while at FaceBook
  
     This file is part of GCC.
diff -Nrcpad gcc-15.2.0/c++tools/server.cc gcc-16.1.0-RC-20260423/c++tools/server.cc
*** gcc-15.2.0/c++tools/server.cc	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/c++tools/server.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* C++ modules.  Experimental!
!    Copyright (C) 2018-2026 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-2025 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-2026 Free Software Foundation, Inc.\n",
  	   ("(C)"));
    fnotice (stdout,
  	   ("This is free software; see the source for copying conditions.\n"
diff -Nrcpad gcc-15.2.0/config/ChangeLog gcc-16.1.0-RC-20260423/config/ChangeLog
*** gcc-15.2.0/config/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/config/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,10 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
--- 1,50 ----
! 2026-04-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR target/69639
! 	* mh-cygwin: Increase to 64MB stack reserve.
! 	* mh-mingw: Likewise.
  
! 2026-02-04  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	* bootstrap-lto-locality.mk (STAGEprofile_CFLAGS): Remove
! 	-fipa-reorder-for-locality.
! 	(STAGEtrain_CFLAGS): Ditto.
! 
! 2026-01-20  Prachi Godbole  <pgodbole@nvidia.com>
! 
! 	* bootstrap-lto-locality-cpp-template.mk: New file.
! 
! 2025-12-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* acx.m4: Define ACX_PROG_A68 rather than ACX_PROG_GA68.
! 	(ACX_PROG_A68): Set A68 rather than GA68.
! 
! 2025-12-09  John Ericson  <git@johnericson.me>
! 
! 	* gthr.m4: Create new GCC_AC_THREAD_MODEL macro
! 
! 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* acx.m4 (ACX_PROG_GA68): New defun.
! 
! 2025-11-03  Sam James  <sam@gentoo.org>
! 
! 	* clang-plugin.m4: Sync with binutils.
! 	* gcc-plugin.m4: Ditto.
! 
! 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	* clang-plugin.m4: Synced from binutils-gdb.
! 	* gcc-plugin.m4: Likewise.
! 
! 2025-08-10  Ijaz, Abdul B  <abdul.b.ijaz@intel.com>
! 
! 	* lib-link.m4: Handle dash in the library name for
! 	AC_LIB_LINKFLAGS_BODY.
! 
! 2025-05-23  Andi Kleen  <ak@gcc.gnu.org>
! 
! 	* bootstrap-native.mk: New file.
  
  2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
diff -Nrcpad gcc-15.2.0/config/acx.m4 gcc-16.1.0-RC-20260423/config/acx.m4
*** gcc-15.2.0/config/acx.m4	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/acx.m4	Thu Apr 23 11:07:32 2026
*************** AC_SUBST([target_subdir]) []dnl
*** 107,115 ****
  
  
  ####
! # _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_SYSTEM 
  # or AC_INIT.
! # These demand that AC_CANONICAL_SYSTEM be called beforehand.
  AC_DEFUN([_NCN_TOOL_PREFIXES],
  [ncn_tool_prefix=
  test -n "$host_alias" && ncn_tool_prefix=$host_alias-
--- 107,115 ----
  
  
  ####
! # _NCN_TOOL_PREFIXES:  Some stuff that oughtta be done in AC_CANONICAL_TARGET
  # or AC_INIT.
! # These demand that AC_CANONICAL_HOST and AC_CANONICAL_TARGET be called beforehand.
  AC_DEFUN([_NCN_TOOL_PREFIXES],
  [ncn_tool_prefix=
  test -n "$host_alias" && ncn_tool_prefix=$host_alias-
*************** else
*** 434,439 ****
--- 434,445 ----
    have_cargo=no
  fi])
  
+ # Test for Algol 68
+ AC_DEFUN([ACX_PROG_A68],
+ [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CHECK_TOOL(A68, ga68, no)])
+ 
  # Test for D.
  AC_DEFUN([ACX_PROG_GDC],
  [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
diff -Nrcpad gcc-15.2.0/config/bootstrap-lto-locality-cpp-template.mk gcc-16.1.0-RC-20260423/config/bootstrap-lto-locality-cpp-template.mk
*** gcc-15.2.0/config/bootstrap-lto-locality-cpp-template.mk	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/config/bootstrap-lto-locality-cpp-template.mk	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,22 ----
+ # 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 \
+ 		 --param=lto-partition-locality-heuristics=cpp_template
+ STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality \
+ 		 --param=lto-partition-locality-heuristics=cpp_template
+ STAGEprofile_CFLAGS += -flto=jobserver -frandom-seed=1
+ STAGEtrain_CFLAGS += -flto=jobserver -frandom-seed=1
+ 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-15.2.0/config/bootstrap-lto-locality.mk gcc-16.1.0-RC-20260423/config/bootstrap-lto-locality.mk
*** gcc-15.2.0/config/bootstrap-lto-locality.mk	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/bootstrap-lto-locality.mk	Thu Apr 23 11:07:32 2026
***************
*** 2,9 ****
  
  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
--- 2,9 ----
  
  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
! STAGEtrain_CFLAGS += -flto=jobserver -frandom-seed=1
  STAGEfeedback_CFLAGS += -flto=jobserver -frandom-seed=1 -fipa-reorder-for-locality
  
  # assumes the host supports the linker plugin
diff -Nrcpad gcc-15.2.0/config/bootstrap-native.mk gcc-16.1.0-RC-20260423/config/bootstrap-native.mk
*** gcc-15.2.0/config/bootstrap-native.mk	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/config/bootstrap-native.mk	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1 ----
+ BOOT_CFLAGS := -march=native -mtune=native $(BOOT_CFLAGS)
diff -Nrcpad gcc-15.2.0/config/clang-plugin.m4 gcc-16.1.0-RC-20260423/config/clang-plugin.m4
*** gcc-15.2.0/config/clang-plugin.m4	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/config/clang-plugin.m4	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,109 ----
+ # clang-plugin.m4 -*- Autoconf -*-
+ # Check clang plugin file.
+ 
+ dnl Copyright (C) 2025 Free Software Foundation, Inc.
+ dnl This file is free software, distributed under the terms of the GNU
+ dnl General Public License.  As a special exception to the GNU General
+ dnl Public License, this file may be distributed as part of a program
+ dnl that contains a configuration script generated by Autoconf, under
+ dnl the same distribution terms as the rest of that program.
+ 
+ dnl
+ dnl
+ dnl CLANG_PLUGIN_FILE
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([CLANG_PLUGIN_FILE],[dnl
+   AC_CACHE_CHECK([for clang], clang_cv_is_clang, [
+     AC_EGREP_CPP(yes, [
+ #ifdef __clang__
+   yes
+ #endif
+     ], clang_cv_is_clang=yes, clang_cv_is_clang=no)])
+   AC_CHECK_TOOL(LLVM_CONFIG, llvm-config)
+   plugin_file=
+   if test $clang_cv_is_clang = yes; then
+     AC_MSG_CHECKING([for clang plugin file])
+     plugin_names="LLVMgold.so"
+     for plugin in $plugin_names; do
+       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+       if test "$plugin_file" != "$plugin"; then
+ 	break;
+       fi
+       if test -n "${LLVM_CONFIG}"; then
+ 	plugin_file=`${LLVM_CONFIG} --libdir`/$plugin
+ 	if test -f "$plugin_file"; then
+ 	  break;
+ 	fi
+       fi
+       plugin_file=
+     done
+     if test -z "$plugin_file"; then
+       AC_MSG_RESULT([no])
+     else
+       AC_MSG_RESULT($plugin_file)
+       dnl Check if ${AR} $plugin_option rc works.
+       AC_CHECK_TOOL(AR, ar)
+       if test -z "${AR}"; then
+ 	AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
+       fi
+       plugin_option="--plugin $plugin_file"
+       touch conftest.c
+       ${AR} $plugin_option rc conftest.a conftest.c
+       if test "$?" != 0; then
+ 	AC_MSG_WARN([Failed: $AR $plugin_option rc])
+ 	plugin_file=
+       fi
+       rm -f conftest.*
+     fi
+   fi
+   $1="$plugin_file"
+ ])
+ 
+ dnl
+ dnl
+ dnl CLANG_PLUGIN_FILE_FOR_TARGET
+ dnl    (SHELL-CODE_HANDLER)
+ dnl
+ AC_DEFUN([CLANG_PLUGIN_FILE_FOR_TARGET],[dnl
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+   if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+     COMPILER_FOR_TARGET="$CC"
+   fi
+   saved_CC="$CC"
+   CC="$COMPILER_FOR_TARGET"
+   AC_CACHE_CHECK([for clang for target], clang_target_cv_working, [
+     AC_TRY_COMPILE([
+ #ifndef __clang__
+ #error Not clang
+ #endif
+     ],
+     [],
+     clang_target_cv_working=yes, clang_target_cv_working=no)])
+   CC="$saved_CC"
+   plugin_file=
+   if test $clang_target_cv_working = yes; then
+     GCC_TARGET_TOOL(llvm-config, LLVM_CONFIG_FOR_TARGET, LLVM_CONFIG)
+     AC_MSG_CHECKING([for clang plugin file for target])
+     plugin_names="LLVMgold.so"
+     for plugin in $plugin_names; do
+       plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+       if test "$plugin_file" != "$plugin"; then
+ 	break;
+       fi
+       if test -n "${LLVM_CONFIG_FOR_TARGET}"; then
+ 	plugin_file=`${LLVM_CONFIG_FOR_TARGET} --libdir`/$plugin
+ 	if test -f "$plugin_file"; then
+ 	  break;
+ 	fi
+       fi
+       plugin_file=
+     done
+     if test -z "$plugin_file"; then
+       AC_MSG_RESULT([no])
+     else
+       AC_MSG_RESULT($plugin_file)
+     fi
+   fi
+   $1="$plugin_file"
+ ])
diff -Nrcpad gcc-15.2.0/config/gcc-plugin.m4 gcc-16.1.0-RC-20260423/config/gcc-plugin.m4
*** gcc-15.2.0/config/gcc-plugin.m4	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/gcc-plugin.m4	Thu Apr 23 11:07:32 2026
*************** dnl GCC_PLUGIN_OPTION
*** 136,143 ****
  dnl    (SHELL-CODE_HANDLER)
  dnl
  AC_DEFUN([GCC_PLUGIN_OPTION],[dnl
  AC_MSG_CHECKING([for -plugin option])
- 
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  plugin_option=
  for plugin in $plugin_names; do
--- 136,146 ----
  dnl    (SHELL-CODE_HANDLER)
  dnl
  AC_DEFUN([GCC_PLUGIN_OPTION],[dnl
+ AC_CHECK_TOOL(AR, ar)
+ if test -z "${AR}"; then
+   AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
+ fi
  AC_MSG_CHECKING([for -plugin option])
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  plugin_option=
  for plugin in $plugin_names; do
*************** for plugin in $plugin_names; do
*** 150,171 ****
      break
    fi
  done
! dnl Check if ${AR} $plugin_option rc works.
! AC_CHECK_TOOL(AR, ar)
! if test "${AR}" = "" ; then
!   AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
  fi
! touch conftest.c
! ${AR} $plugin_option rc conftest.a conftest.c
! if test "$?" != 0; then
!   AC_MSG_WARN([Failed: $AR $plugin_option rc])
!   plugin_option=
  fi
! rm -f conftest.*
! if test -n "$plugin_option"; then
!   $1="$plugin_option"
!   AC_MSG_RESULT($plugin_option)
! else
    AC_MSG_RESULT([no])
  fi
  ])
--- 153,213 ----
      break
    fi
  done
! if test -z "$plugin_option"; then
!   AC_MSG_RESULT([no])
! else
!   AC_MSG_RESULT($plugin_option)
!   dnl Check if ${AR} $plugin_option rc works.
!   touch conftest.c
!   ${AR} $plugin_option rc conftest.a conftest.c
!   if test "$?" != 0; then
!     AC_MSG_WARN([Failed: $AR $plugin_option rc])
!     plugin_option=
!   fi
!   rm -f conftest.*
  fi
! $1="$plugin_option"
! ])
! 
! dnl
! dnl
! dnl GCC_PLUGIN_OPTION_FOR_TARGET
! dnl    (SHELL-CODE_HANDLER)
! dnl
! AC_DEFUN([GCC_PLUGIN_OPTION_FOR_TARGET],[dnl
! COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
! dnl Check if the host compiler is used.
! if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
!   COMPILER_FOR_TARGET="$CC"
  fi
! saved_CC="$CC"
! CC="$COMPILER_FOR_TARGET"
! AC_CACHE_CHECK([for gcc for target], gcc_target_cv_working, [
!   AC_TRY_COMPILE(
!   [],
!   [],
!   gcc_target_cv_working=yes,
!   gcc_target_cv_working=no)])
! CC="$saved_CC"
! AC_MSG_CHECKING([for target -plugin option])
! plugin_option=
! if test $gcc_target_cv_working = yes; then
!   plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
!   for plugin in $plugin_names; do
!     plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin`
!     if test x$plugin_so = x$plugin; then
!       plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
!     fi
!     if test x$plugin_so != x$plugin; then
!       plugin_option="--plugin $plugin_so"
!       break
!     fi
!   done
! fi
! if test -z "$plugin_option"; then
    AC_MSG_RESULT([no])
+ else
+   AC_MSG_RESULT($plugin_option)
  fi
+ $1="$plugin_option"
  ])
diff -Nrcpad gcc-15.2.0/config/gthr.m4 gcc-16.1.0-RC-20260423/config/gthr.m4
*** gcc-15.2.0/config/gthr.m4	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/gthr.m4	Thu Apr 23 11:07:32 2026
*************** dnl Public License, this file may be dis
*** 5,10 ****
--- 5,30 ----
  dnl that contains a configuration script generated by Autoconf, under
  dnl the same distribution terms as the rest of that program.
  
+ dnl Define thread model
+ 
+ dnl usage: GCC_AC_THREAD_MODEL
+ AC_DEFUN([GCC_AC_THREAD_MODEL],
+ [
+ # Specify the threading model for this GCC runtime library
+ # Pass with no value to take from compiler's metadata
+ # Pass with a value to specify a thread package
+ # 'single' means single threaded -- without threads.
+ AC_CACHE_CHECK([for the threading model used by GCC], [gcc_cv_target_thread_file], [
+   # Set new cache variable
+   gcc_cv_target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
+ ])
+ # Set variable name (not prefixed enough to be a good cache variable
+ # name) traditionally used for this purpose, to avoid having to change
+ # a bunch of configure scripts.
+ target_thread_file="$gcc_cv_target_thread_file"
+ ])
+ 
+ 
  dnl Define header location by thread model
  
  dnl usage: GCC_AC_THREAD_HEADER([thread_model])
*************** case $1 in
*** 23,28 ****
--- 43,51 ----
      vxworks)	thread_header=config/gthr-vxworks.h ;;
      win32)	thread_header=config/i386/gthr-win32.h ;;
      mcf)	thread_header=config/i386/gthr-mcf.h ;;
+     *)
+         AC_MSG_ERROR([No known header for threading model '$1'.])
+         ;;
  esac
  AC_SUBST(thread_header)
  ])
diff -Nrcpad gcc-15.2.0/config/lib-link.m4 gcc-16.1.0-RC-20260423/config/lib-link.m4
*** gcc-15.2.0/config/lib-link.m4	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/lib-link.m4	Thu Apr 23 11:07:32 2026
*************** AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
*** 126,131 ****
--- 126,132 ----
  [
    define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   define([Name],[translit([$1],[./-], [___])])
    dnl By default, look in $includedir and $libdir.
    use_additional=yes
    AC_LIB_WITH_FINAL_PREFIX([
*************** AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
*** 152,159 ****
  ])
    AC_LIB_ARG_WITH([lib$1-type],
  [  --with-lib$1-type=TYPE     type of library to search for (auto/static/shared) ],
!   [ with_lib$1_type=$withval ], [ with_lib$1_type=auto ])
!   lib_type=`eval echo \$with_lib$1_type`
  
    dnl Search the library and its dependencies in $additional_libdir and
    dnl $LDFLAGS. Using breadth-first-seach.
--- 153,160 ----
  ])
    AC_LIB_ARG_WITH([lib$1-type],
  [  --with-lib$1-type=TYPE     type of library to search for (auto/static/shared) ],
!   [ with_lib[]Name[]_type=$withval ], [ with_lib[]Name[]_type=auto ])
!   lib_type=`eval echo \$with_lib[]Name[]_type`
  
    dnl Search the library and its dependencies in $additional_libdir and
    dnl $LDFLAGS. Using breadth-first-seach.
diff -Nrcpad gcc-15.2.0/config/lthostflags.m4 gcc-16.1.0-RC-20260423/config/lthostflags.m4
*** gcc-15.2.0/config/lthostflags.m4	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/lthostflags.m4	Thu Apr 23 11:07:32 2026
*************** dnl Defines and AC_SUBSTs lt_host_flags
*** 10,16 ****
  
  
  AC_DEFUN([ACX_LT_HOST_FLAGS], [
! AC_REQUIRE([AC_CANONICAL_SYSTEM])
  
  case $host in
    *-cygwin* | *-mingw*)
--- 10,16 ----
  
  
  AC_DEFUN([ACX_LT_HOST_FLAGS], [
! AC_REQUIRE([AC_CANONICAL_HOST])
  
  case $host in
    *-cygwin* | *-mingw*)
diff -Nrcpad gcc-15.2.0/config/mh-cygwin gcc-16.1.0-RC-20260423/config/mh-cygwin
*** gcc-15.2.0/config/mh-cygwin	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/mh-cygwin	Thu Apr 23 11:07:32 2026
***************
*** 1,4 ****
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 1,5 ----
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-15.2.0/config/mh-mingw gcc-16.1.0-RC-20260423/config/mh-mingw
*** gcc-15.2.0/config/mh-mingw	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config/mh-mingw	Thu Apr 23 11:07:32 2026
*************** STAGE2_CXXFLAGS += -D__USE_MINGW_ACCESS
*** 8,14 ****
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 8,15 ----
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-15.2.0/config-ml.in gcc-16.1.0-RC-20260423/config-ml.in
*** gcc-15.2.0/config-ml.in	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/config-ml.in	Thu Apr 23 11:07:32 2026
***************
*** 24,31 ****
  # configuration script generated by Autoconf, you may include it under
  # the same distribution terms that you use for the rest of that program.
  #
! # Please report bugs to <gcc-bugs@gnu.org>
! # and send patches to <gcc-patches@gnu.org>.
  
  # It is advisable to support a few --enable/--disable options to let the
  # user select which libraries s/he really wants.
--- 24,31 ----
  # configuration script generated by Autoconf, you may include it under
  # the same distribution terms that you use for the rest of that program.
  #
! # Please report bugs according to <https://gcc.gnu.org/bugs/>
! # and send patches to <gcc-patches@gcc.gnu.org>.
  
  # It is advisable to support a few --enable/--disable options to let the
  # user select which libraries s/he really wants.
*************** powerpc*-*-* | rs6000*-*-*)
*** 488,493 ****
--- 488,510 ----
  	;;
  esac
  
+ # Use a filtered multilib list if requested.
+ 
+ if [ x$with_multi_buildlist != x ]; then
+   old_multidirs="${multidirs}"
+   if [ ! -f $with_multi_buildlist ]; then
+     echo "config-ml.in: Failed to find $with_multi_buildlist"
+     exit 1
+   fi
+   multidirs=""
+   for x in ${old_multidirs}; do
+     found=`grep "^${x}$" $with_multi_buildlist`
+     if [ -n "$found" ]; then
+       multidirs="${multidirs} ${x}"
+     fi
+   done
+ fi
+ 
  # Remove extraneous blanks from multidirs.
  # Tests like `if [ -n "$multidirs" ]' require it.
  multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
*************** multi-do:
*** 528,533 ****
--- 545,551 ----
  				exec_prefix="$(exec_prefix)" \
  				GOCFLAGS="$(GOCFLAGS) $${flags}" \
  				GDCFLAGS="$(GDCFLAGS) $${flags}" \
+ 				A68FLAGS="$(A68FLAGS) $${flags}" \
  				CXXFLAGS="$(CXXFLAGS) $${flags}" \
  				LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
  				LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
*************** else
*** 596,602 ****
  fi
  
  if [ -z "${with_multisubdir}" ]; then
!   ml_subdir=
    ml_builddotdot=
    : # ml_srcdotdot= # already set
  else
--- 614,625 ----
  fi
  
  if [ -z "${with_multisubdir}" ]; then
!   ml_top_subdir=`${CC-gcc} --print-multi-directory 2>/dev/null`
!   if [ "$ml_top_subdir" = . ]; then
!     ml_subdir=
!   else
!     ml_subdir=/$ml_top_subdir
!   fi
    ml_builddotdot=
    : # ml_srcdotdot= # already set
  else
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 675,680 ****
--- 698,708 ----
  
    for ml_dir in ${multidirs}; do
  
+     if [ "${ml_dir}" == "${ml_top_subdir}" ]; then
+       echo "Skipping configure in multilib subdir ${ml_dir}"
+       continue
+     fi
+ 
      if [ "${ml_verbose}" = --verbose ]; then
        echo "Running configure in multilib subdir ${ml_dir}"
        echo "pwd: `${PWDCMD-pwd}`"
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 759,765 ****
          break
        fi
      done
!     ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags" GDC="${GDC_}$flags"'
  
      if [ "${with_target_subdir}" = "." ]; then
  	CC_=$CC' '
--- 787,793 ----
          break
        fi
      done
!     ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags" GDC="${GDC_}$flags" A68="${A68_}$flags"'
  
      if [ "${with_target_subdir}" = "." ]; then
  	CC_=$CC' '
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 768,773 ****
--- 796,802 ----
  	GFORTRAN_=$GFORTRAN' '
  	GOC_=$GOC' '
  	GDC_=$GDC' '
+ 	A68_=$A68' '
      else
  	# Create a regular expression that matches any string as long
  	# as ML_POPDIR.
*************** if [ -n "${multidirs}" ] && [ -z "${ml_n
*** 857,862 ****
--- 886,905 ----
  	  esac
  	done
  
+ 	A68_=
+ 	for arg in ${A68}; do
+ 	  case $arg in
+ 	  -[BIL]"${ML_POPDIR}"/*)
+ 	    A68_="${A68_}"`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}"/*)
+ 	    A68_="${A68_}"`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/)
+ 	    A68_="${A68_}${arg}${multi_osdir} ${arg} " ;;
+ 	  *)
+ 	    A68_="${A68_}${arg} " ;;
+ 	  esac
+ 	done
+ 
  	if test "x${LD_LIBRARY_PATH+set}" = xset; then
  	  LD_LIBRARY_PATH_=
  	  for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do
diff -Nrcpad gcc-15.2.0/configure gcc-16.1.0-RC-20260423/configure
*** gcc-15.2.0/configure	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/configure	Thu Apr 23 11:07:32 2026
*************** MAINTAINER_MODE_TRUE
*** 596,601 ****
--- 596,605 ----
  COMPILER_NM_FOR_TARGET
  COMPILER_LD_FOR_TARGET
  COMPILER_AS_FOR_TARGET
+ RANLIB_PLUGIN_OPTION_FOR_TARGET
+ NM_PLUGIN_OPTION_FOR_TARGET
+ AR_PLUGIN_OPTION_FOR_TARGET
+ LLVM_CONFIG_FOR_TARGET
  FLAGS_FOR_TARGET
  RAW_CXX_FOR_TARGET
  WINDMC_FOR_TARGET
*************** AR_FOR_TARGET
*** 616,629 ****
--- 620,640 ----
  GM2_FOR_TARGET
  GDC_FOR_TARGET
  GOC_FOR_TARGET
+ A68_FOR_TARGET
  GFORTRAN_FOR_TARGET
  GCC_FOR_TARGET
  CXX_FOR_TARGET
  CC_FOR_TARGET
  RANLIB_PLUGIN_OPTION
+ NM_PLUGIN_OPTION
  AR_PLUGIN_OPTION
+ LLVM_CONFIG
+ EGREP
+ GREP
+ CPP
  PKG_CONFIG_PATH
  GDCFLAGS
+ A68FLAGS
  READELF
  OTOOL
  OBJDUMP
*************** RANLIB_FOR_BUILD
*** 653,660 ****
--- 664,673 ----
  NM_FOR_BUILD
  LD_FOR_BUILD
  LDFLAGS_FOR_BUILD
+ GNATMAKE_FOR_BUILD
  GDC_FOR_BUILD
  GOC_FOR_BUILD
+ A68_FOR_BUILD
  GFORTRAN_FOR_BUILD
  DSYMUTIL_FOR_BUILD
  DLLTOOL_FOR_BUILD
*************** HAVE_CXX14
*** 718,723 ****
--- 731,737 ----
  do_compare
  CARGO
  GDC
+ A68
  GNATMAKE
  GNATBIND
  ac_ct_CXX
*************** CPPFLAGS
*** 730,735 ****
--- 744,750 ----
  LDFLAGS
  CFLAGS
  CC
+ cpu_type
  target_subdir
  host_subdir
  build_subdir
*************** enable_libquadmath
*** 818,823 ****
--- 833,839 ----
  enable_libquadmath_support
  enable_libada
  enable_libgm2
+ enable_libga68
  enable_libssp
  enable_libstdcxx
  enable_bootstrap
*************** enable_host_shared
*** 848,853 ****
--- 864,870 ----
  enable_libgdiagnostics
  enable_stage1_languages
  enable_objc_gc
+ enable_algol68_gc
  with_target_bdw_gc
  with_target_bdw_gc_include
  with_target_bdw_gc_lib
*************** OBJCOPY
*** 891,900 ****
--- 908,919 ----
  OBJDUMP
  OTOOL
  READELF
+ CPP
  CC_FOR_TARGET
  CXX_FOR_TARGET
  GCC_FOR_TARGET
  GFORTRAN_FOR_TARGET
+ A68_FOR_TARGET
  GOC_FOR_TARGET
  GDC_FOR_TARGET
  GM2_FOR_TARGET
*************** Optional Features:
*** 1564,1569 ****
--- 1583,1589 ----
                            disable libquadmath support for Fortran
    --enable-libada         build libada directory
    --enable-libgm2         build libgm2 directory
+   --enable-libga68        build libga68 directory
    --enable-libssp         build libssp directory
    --disable-libstdcxx     do not build libstdc++-v3 directory
    --enable-bootstrap      enable bootstrapping [yes if native build]
*************** Optional Features:
*** 1587,1592 ****
--- 1607,1614 ----
                            Mostly useful for compiler development
    --enable-objc-gc        enable use of Boehm's garbage collector with the GNU
                            Objective-C runtime
+   --enable-algol68-gc     enable use of Boehm's garbage collector with the GNU
+                           Algol runtime
    --enable-vtable-verify  Enable vtable verification feature
    --enable-serial-[{host,target,build}-]configure
                            force sequential configuration of sub-packages for
*************** Some influential environment variables:
*** 1691,1696 ****
--- 1713,1719 ----
    OBJDUMP     OBJDUMP for the host
    OTOOL       OTOOL for the host
    READELF     READELF for the host
+   CPP         C preprocessor
    CC_FOR_TARGET
                CC for the target
    CXX_FOR_TARGET
*************** Some influential environment variables:
*** 1699,1704 ****
--- 1722,1729 ----
                GCC for the target
    GFORTRAN_FOR_TARGET
                GFORTRAN for the target
+   A68_FOR_TARGET
+               A68 for the target
    GOC_FOR_TARGET
                GOC for the target
    GDC_FOR_TARGET
*************** fi
*** 1983,1988 ****
--- 2008,2050 ----
    as_fn_set_status $ac_retval
  
  } # ac_fn_c_try_link
+ 
+ # ac_fn_c_try_cpp LINENO
+ # ----------------------
+ # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ ac_fn_c_try_cpp ()
+ {
+   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+   if { { ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+ $as_echo "$ac_try_echo"; } >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+   ac_status=$?
+   if test -s conftest.err; then
+     grep -v '^ *+' conftest.err >conftest.er1
+     cat conftest.er1 >&5
+     mv -f conftest.er1 conftest.err
+   fi
+   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; } > conftest.i && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then :
+   ac_retval=0
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+     ac_retval=1
+ fi
+   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+   as_fn_set_status $ac_retval
+ 
+ } # ac_fn_c_try_cpp
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
*************** ac_compiler_gnu=$ac_cv_c_compiler_gnu
*** 2341,2346 ****
--- 2403,2409 ----
  
  
  
+ 
  progname=$0
  # if PWD already has a value, it is probably wrong.
  if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
*************** test -n "$target_alias" &&
*** 2536,2542 ****
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_prefix=${target_alias}-
- 
  test "$program_prefix" != NONE &&
    program_transform_name="s&^&$program_prefix&;$program_transform_name"
  # Use a double $ so make ignores it.
--- 2599,2604 ----
*************** target_libraries="target-libgcc \
*** 2866,2871 ****
--- 2928,2934 ----
  		target-libgcobol \
  		target-libada \
  		target-libgm2 \
+                 target-libga68 \
  		target-libgo \
  		target-libgrust \
  		target-libphobos \
*************** if test "${ENABLE_LIBGM2}" != "yes" ; th
*** 3269,3274 ****
--- 3332,3345 ----
    noconfigdirs="$noconfigdirs gm2tools"
  fi
  
+ # Check whether --enable-libga68 was given.
+ if test "${enable_libga68+set}" = set; then :
+   enableval=$enable_libga68; ENABLE_LIBGA68=$enableval
+ else
+   ENABLE_LIBGA68=yes
+ fi
+ 
+ 
  # Check whether --enable-libssp was given.
  if test "${enable_libssp+set}" = set; then :
    enableval=$enable_libssp; ENABLE_LIBSSP=$enableval
*************** case "${target}" in
*** 3395,3400 ****
--- 3466,3478 ----
      ;;
  esac
  
+ cpu_type=`echo ${host} | sed 's/-.*$//'`
+ # Special case cpu_type for x86_64 as it shares AUTO_PROFILE from i386.
+ if test "${cpu_type}" = "x86_64" ; then
+   cpu_type="i386"
+ fi
+ 
+ 
  # Disable libssp for some systems.
  case "${target}" in
    avr-*-*)
*************** case "${target}" in
*** 3882,3887 ****
--- 3960,3966 ----
      noconfigdirs="$noconfigdirs sim target-rda"
      ;;
    amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs ld gas"
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
*************** case "${target}" in
*** 4095,4104 ****
      # always build newlib.
      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
      ;;
-     # This is temporary until we can link against shared libraries
-   powerpcle-*-solaris*)
-     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
-     ;;
    powerpc-*-beos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
--- 4174,4179 ----
*************** if test "${build}" != "${host}" ; then
*** 4245,4255 ****
    CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
    CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}"
    CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
    DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
    GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
    GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
    GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc}
!   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
    LD_FOR_BUILD=${LD_FOR_BUILD-ld}
    NM_FOR_BUILD=${NM_FOR_BUILD-nm}
    RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
--- 4320,4332 ----
    CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
    CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}"
    CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
+   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
    DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
    GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
+   A68_FOR_BUILD=${A68_FOR_BUILD-ga68}
    GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
    GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc}
!   GNATMAKE_FOR_BUILD=${GNATMAKE_FOR_BUILD-gnatmake}
    LD_FOR_BUILD=${LD_FOR_BUILD-ld}
    NM_FOR_BUILD=${NM_FOR_BUILD-nm}
    RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
*************** else
*** 4260,4270 ****
    AS_FOR_BUILD="\$(AS)"
    CC_FOR_BUILD="\$(CC)"
    CXX_FOR_BUILD="\$(CXX)"
    DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)"
    GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
    GOC_FOR_BUILD="\$(GOC)"
    GDC_FOR_BUILD="\$(GDC)"
!   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
    LD_FOR_BUILD="\$(LD)"
    NM_FOR_BUILD="\$(NM)"
    RANLIB_FOR_BUILD="\$(RANLIB)"
--- 4337,4349 ----
    AS_FOR_BUILD="\$(AS)"
    CC_FOR_BUILD="\$(CC)"
    CXX_FOR_BUILD="\$(CXX)"
+   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
    DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)"
    GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
+   A68_FOR_BUILD="\$(A68)"
    GOC_FOR_BUILD="\$(GOC)"
    GDC_FOR_BUILD="\$(GDC)"
!   GNATMAKE_FOR_BUILD="\$(GNATMAKE)"
    LD_FOR_BUILD="\$(LD)"
    NM_FOR_BUILD="\$(NM)"
    RANLIB_FOR_BUILD="\$(RANLIB)"
*************** fi
*** 5783,5788 ****
--- 5862,5961 ----
  
  
  if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ga68", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ga68; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_A68+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$A68"; then
+   ac_cv_prog_A68="$A68" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_A68="${ac_tool_prefix}ga68"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ A68=$ac_cv_prog_A68
+ if test -n "$A68"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $A68" >&5
+ $as_echo "$A68" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_A68"; then
+   ac_ct_A68=$A68
+   # Extract the first word of "ga68", so it can be a program name with args.
+ set dummy ga68; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_A68+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_A68"; then
+   ac_cv_prog_ac_ct_A68="$ac_ct_A68" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_A68="ga68"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_A68=$ac_cv_prog_ac_ct_A68
+ if test -n "$ac_ct_A68"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_A68" >&5
+ $as_echo "$ac_ct_A68" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_A68" = x; then
+     A68="no"
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     A68=$ac_ct_A68
+   fi
+ else
+   A68="$ac_cv_prog_A68"
+ fi
+ 
+ 
+ 
+ if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}gdc", so it can be a program name with args.
  set dummy ${ac_tool_prefix}gdc; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
*************** if test -d ${srcdir}/gcc; then
*** 9921,9936 ****
    # 'f95' is the old name for the 'fortran' language. We issue a warning
    # and make the substitution.
    case ,${enable_languages}, in
!     *,f95,*)
        echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
        enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
        ;;
    esac
  
    # If bootstrapping, C++ must be enabled.
!   case ",$enable_languages,:$enable_bootstrap" in
!     *,c++,*:*) ;;
!     *:yes)
        if test -f ${srcdir}/gcc/cp/config-lang.in; then
          enable_languages="${enable_languages},c++"
        else
--- 10094,10133 ----
    # 'f95' is the old name for the 'fortran' language. We issue a warning
    # and make the substitution.
    case ,${enable_languages}, in
!     *,f95,* | *,^f95,*)
        echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
        enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
        ;;
    esac
  
+   # Extract the language disable requests.  N.B. some non-GNU sed, e.g. on SunOS,
+   # will ignore a line without a trailing newline.
+   disable_languages=`echo "$enable_languages" | tr , "$as_nl" | grep '^\^' | (tr "$as_nl" , ; echo) | sed -e 's/\^//g' -e 's/,$//'`
+   new_enable_languages=
+   for lang in `echo "$enable_languages" | tr , ' '`; do
+     case "${lang}:,${disable_languages}," in
+       ^default:* | ^all:*)
+         as_fn_error $? "only specific individual languages may be disabled, not \"$lang\"" "$LINENO" 5
+         ;;
+       ^lto:*)
+ 	as_fn_error $? "LTO should be disabled with the \"--disable-lto\" argument, not via \"--enable-languages=^lto\"" "$LINENO" 5
+ 	;;
+       ^c:*)
+ 	as_fn_error $? "language \"c\" cannot be disabled" "$LINENO" 5
+ 	;;
+       ^* | ${lang}:*,${lang},*) ;;
+       *) new_enable_languages="${new_enable_languages}${lang}," ;;
+     esac
+   done
+   enable_languages=`echo "$new_enable_languages" | sed -e 's/,$//'`
+ 
    # If bootstrapping, C++ must be enabled.
!   case ",${enable_languages},:${enable_bootstrap}:,${disable_languages}," in
!     *:yes:*,c++,*)
!       as_fn_error $? "c++ cannot be disabled for a bootstrap build" "$LINENO" 5
!       ;;
!     *,c++,*:*:*) ;;
!     *:yes:*)
        if test -f ${srcdir}/gcc/cp/config-lang.in; then
          enable_languages="${enable_languages},c++"
        else
*************** if test -d ${srcdir}/gcc; then
*** 9939,9947 ****
        ;;
    esac
  
!   # First scan to see if an enabled language requires some other language.
!   # We assume that a given config-lang.in will list all the language
!   # front ends it requires, even if some are required indirectly.
    for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
      case ${lang_frag} in
        ..) ;;
--- 10136,10144 ----
        ;;
    esac
  
!   # Collect the list of default languages; keep it prefixed and suffixed with
!   # commas for later convenience.
!   default_languages=,
    for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
      case ${lang_frag} in
        ..) ;;
*************** if test -d ${srcdir}/gcc; then
*** 9949,9976 ****
        # an apparent bug in bash 1.12 on linux.
        ${srcdir}/gcc/[*]/config-lang.in) ;;
        *)
!         # From the config-lang.in, get $language, $lang_requires, and
!         # $lang_requires_boot_languages.
          language=
!         lang_requires=
!         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}
!         for other in ${lang_requires} ${lang_requires_boot_languages}; do
!           case ,${enable_languages}, in
! 	    *,$other,*) ;;
! 	    *,default,*) ;;
! 	    *,all,*) ;;
! 	    *,$language,*)
! 	      echo " \`$other' language required by \`$language'; enabling" 1>&2
! 	      enable_languages="${enable_languages},${other}"
  	      ;;
  	  esac
!         done
  	for other in ${lang_requires_boot_languages} ; do
  	  if test "$other" != "c"; then
  	    case ,${enable_stage1_languages}, in
--- 10146,10230 ----
        # an apparent bug in bash 1.12 on linux.
        ${srcdir}/gcc/[*]/config-lang.in) ;;
        *)
!         # From the config-lang.in, get $language and $build_by_default.
          language=
!         build_by_default=yes
!         # See note below about saving srcdir.
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
!         if test x"$build_by_default" = xyes; then
!           default_languages="${default_languages}${language},"
!         fi
!         ;;
!     esac
!   done
! 
!   # First scan to see if an enabled language requires some other language.
!   # We assume that a given config-lang.in will list all the language
!   # front ends it requires, even if some are required indirectly.
!   delayed_error_languages=,
!   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
!     case ${lang_frag} in
!       ..) ;;
!       # The odd quoting in the next line works around
!       # an apparent bug in bash 1.12 on linux.
!       ${srcdir}/gcc/[*]/config-lang.in) ;;
!       *)
! 	# From the config-lang.in, get $language, $lang_requires, and
! 	# $lang_requires_boot_languages.
! 	language=
! 	lang_requires=
! 	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}
! 
! 	# Determine if this language was requested; if not, don't bring in its
! 	# dependencies.  To match historical behavior, do bring in the dependencies
! 	# for unsupported languages that were not explicitly disabled.
! 	case ,${disable_languages}, in
! 	  *,${language},*) continue ;;
! 	esac
! 	case ,${enable_languages}, in
! 	  *,${language},* | *,all,*) ;;
! 	  *,default,*)
!             case ${default_languages} in
!               *,${language},*) ;;
!               *) continue ;;
!             esac
!             ;;
! 	  *) continue ;;
! 	esac
! 
! 	# This language was indeed requested; make sure all dependencies are
! 	# also enabled.
! 	for other in ${lang_requires} ${lang_requires_boot_languages}; do
! 	  need_to_add=0
! 	  case ,${enable_languages},:,${disable_languages}, in
!             *:*,${other},*)
! 	      # This language cannot be built because one of its dependencies
! 	      # was explicitly disabled.  Don't complain just yet, though; other
! 	      # checks later may decide the language won't be built anyway.
! 	      delayed_error_languages="${delayed_error_languages}${language}:${other},"
!               ;;
!             *,${other},*:* | *,all,*:*) ;;
!             *,default,*:*)
! 	      case ${default_languages} in
! 		*,${other},*) ;;
! 		*) need_to_add=1 ;;
! 	      esac
  	      ;;
+ 	    *) need_to_add=1 ;;
  	  esac
! 	  if test $need_to_add = 1; then
! 	    echo " \`$other' language required by \`$language'; enabling" 1>&2
! 	    enable_languages="${enable_languages},${other}"
! 	  fi
! 	done
  	for other in ${lang_requires_boot_languages} ; do
  	  if test "$other" != "c"; then
  	    case ,${enable_stage1_languages}, in
*************** if test -d ${srcdir}/gcc; then
*** 9978,9994 ****
  	      *,default,*) ;;
  	      *,all,*) ;;
  	      *)
! 		case ,${enable_languages}, in
! 		  *,$language,*)
! 		    echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
! 		    enable_stage1_languages="$enable_stage1_languages,${other}"
! 		    ;;
! 		esac
  		;;
  	    esac
!           fi
!         done
!         ;;
      esac
    done
  
--- 10232,10244 ----
  	      *,default,*) ;;
  	      *,all,*) ;;
  	      *)
! 		echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
! 		enable_stage1_languages="$enable_stage1_languages,${other}"
  		;;
  	    esac
! 	  fi
! 	done
! 	;;
      esac
    done
  
*************** if test -d ${srcdir}/gcc; then
*** 10027,10039 ****
        ${srcdir}/gcc/[*]/config-lang.in) ;;
        *)
          # From the config-lang.in, get $language, $target_libs,
!         # $lang_dirs, $boot_language, and $build_by_default
          language=
          target_libs=
          lang_dirs=
          subdir_requires=
          boot_language=no
-         build_by_default=yes
          # set srcdir during sourcing.  See above about save & restore
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
--- 10277,10288 ----
        ${srcdir}/gcc/[*]/config-lang.in) ;;
        *)
          # From the config-lang.in, get $language, $target_libs,
!         # $lang_dirs, and $boot_language.
          language=
          target_libs=
          lang_dirs=
          subdir_requires=
          boot_language=no
          # set srcdir during sourcing.  See above about save & restore
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
*************** if test -d ${srcdir}/gcc; then
*** 10049,10069 ****
  
          add_this_lang=no
          # C is always enabled, so no need to add it again
!         if test "$language" != "c"; then
!           case ,${enable_languages}, in
!             *,${language},*)
!               # Language was explicitly selected; include it
! 	      add_this_lang=yes
!               ;;
! 	    *,all,*)
! 	      # All languages are enabled
! 	      add_this_lang=all
!               ;;
!             *,default,*)
!               # 'default' was selected, select it if it is a default language
! 	      add_this_lang=${build_by_default}
!               ;;
!           esac
          fi
  
          # Disable languages that need other directories if these aren't available.
--- 10298,10326 ----
  
          add_this_lang=no
          # C is always enabled, so no need to add it again
! 	if test "$language" != "c"; then
! 	    # Determine if this language was requested.
! 	    case ,${disable_languages}, in
! 	      *,${language},* ) ;;
! 	      *)
! 		case ,${enable_languages}, in
! 		  *,${language},*)
! 		    # Language was explicitly selected; include it
! 		    add_this_lang=yes
! 		    ;;
! 		  *,all,*)
! 		    # All languages are enabled, and this one not excluded.
! 		    add_this_lang=all
! 		    ;;
! 		  *,default,*)
! 		    # 'default' was selected, select it if it is a default language
! 		    case ${default_languages} in
! 		      *,${language},*) add_this_lang=yes ;;
! 		    esac
! 		    ;;
! 		esac
! 		;;
! 	    esac
          fi
  
          # Disable languages that need other directories if these aren't available.
*************** $as_echo "$as_me: WARNING: --enable-host
*** 10169,10175 ****
                # Silently disable.
                add_this_lang=unsupported
                ;;
! 	        esac
            ;;
          esac
  
--- 10426,10432 ----
                # Silently disable.
                add_this_lang=unsupported
                ;;
! 	  esac
            ;;
          esac
  
*************** $as_echo "$as_me: WARNING: ${language} n
*** 10228,10233 ****
--- 10485,10495 ----
              potential_languages="${potential_languages}${language},"
  	    ;;
            all|yes)
+ 	    case "$delayed_error_languages" in
+ 	      *,${language}:*,*)
+ 		as_fn_error $? "invalid configuration for language \"${language}\"; at least one of the dependencies \"$delayed_error_languages\" was explicitly disabled" "$LINENO" 5
+ 		;;
+ 	    esac
  	    new_enable_languages="${new_enable_languages}${language},"
              potential_languages="${potential_languages}${language},"
  	    missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
*************** if test "${enable_objc_gc+set}" = set; t
*** 10328,10333 ****
--- 10590,10600 ----
    enableval=$enable_objc_gc;
  fi
  
+ # Check whether --enable-algol68-gc was given.
+ if test "${enable_algol68_gc+set}" = set; then :
+   enableval=$enable_algol68_gc;
+ fi
+ 
  
  # Check whether --with-target-bdw-gc was given.
  if test "${with_target_bdw_gc+set}" = set; then :
*************** if test "${with_target_bdw_gc_lib+set}"
*** 10347,10368 ****
  fi
  
  
! case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bdw garbage collector" >&5
  $as_echo_n "checking for bdw garbage collector... " >&6; }
!   if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
!         { $as_echo "$as_me:${as_lineno-$LINENO}: result: using bdw-gc in default locations" >&5
  $as_echo "using bdw-gc in default locations" >&6; }
-   else
-         if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
-       as_fn_error $? "found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing" "$LINENO" 5
-     elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
-       as_fn_error $? "found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing" "$LINENO" 5
      else
!       { $as_echo "$as_me:${as_lineno-$LINENO}: result: using paths configured with --with-target-bdw-gc options" >&5
  $as_echo "using paths configured with --with-target-bdw-gc options" >&6; }
      fi
-   fi
  esac
  
  # Disable libitm, libsanitizer, libvtv if we're not building C++
--- 10614,10636 ----
  fi
  
  
! case ,${enable_languages},:${enable_objc_gc}:${enable_algol68_gc} in
!   *,objc,*:yes:*|*,objc,*:auto:*|*,algol68,*:*:yes|*,algol68,*:*:auto)
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bdw garbage collector" >&5
  $as_echo_n "checking for bdw garbage collector... " >&6; }
!     if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
!             { $as_echo "$as_me:${as_lineno-$LINENO}: result: using bdw-gc in default locations" >&5
  $as_echo "using bdw-gc in default locations" >&6; }
      else
!             if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
!         as_fn_error $? "found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing" "$LINENO" 5
!       elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
!         as_fn_error $? "found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing" "$LINENO" 5
!       else
!         { $as_echo "$as_me:${as_lineno-$LINENO}: result: using paths configured with --with-target-bdw-gc options" >&5
  $as_echo "using paths configured with --with-target-bdw-gc options" >&6; }
+       fi
      fi
  esac
  
  # Disable libitm, libsanitizer, libvtv if we're not building C++
*************** case "${target}" in
*** 10810,10817 ****
      md_exec_prefix=/dev/env/DJDIR/bin
      ;;
    *-*-hpux* | \
!   *-*-nto-qnx* | \
!   *-*-solaris2*)
      md_exec_prefix=/usr/ccs/bin
      ;;
  esac
--- 11078,11084 ----
      md_exec_prefix=/dev/env/DJDIR/bin
      ;;
    *-*-hpux* | \
!   *-*-nto-qnx*)
      md_exec_prefix=/usr/ccs/bin
      ;;
  esac
*************** if echo " ${target_configdirs} " | grep
*** 11020,11025 ****
--- 11287,11297 ----
    bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
  fi
  
+ # If we are building libatomic, bootstrap it.
+ if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then
+   bootstrap_target_libs=${bootstrap_target_libs}target-libatomic,
+ fi
+ 
  # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
  # or bootstrap-ubsan, bootstrap it.
  if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
*************** case "$target:$have_compiler:$host:$targ
*** 11484,11494 ****
--- 11756,11797 ----
      ;;
  esac
  
+ # For s390, -m31 is deprecated.  Emit a warning if --enable-multilib and
+ # --enable-obsolete are explicitly specified.  If --enable-multilib is
+ # specified implicitly or --enable-obsolete is missing, error out.
+ case "$target:$enable_multilib:$enable_obsolete" in
+   s390*:yes:yes)
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Support for -m31 is deprecated and will be removed." >&5
+ $as_echo "$as_me: WARNING: Support for -m31 is deprecated and will be removed." >&2;}
+     ;;
+   s390*::*)
+     as_fn_error $? "Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway." "$LINENO" 5
+     ;;
+   s390*:yes:*)
+     as_fn_error $? "Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway." "$LINENO" 5
+     ;;
+ esac
+ 
  # Default to --enable-multilib.
  if test x${enable_multilib} = x ; then
    target_configargs="--enable-multilib ${target_configargs}"
  fi
  
+ # Source target-specific configuration fragment for GCC
+ if test -d ${srcdir}/gcc; then
+   . ${srcdir}/gcc/configure.tgt
+ fi
+ 
+ # Pass through with_multi_buildlist to host and target.  'gcc' needs it for the
+ # fixed includes which are multilib'd and target libraries need it as they use
+ # config-ml.in.
+ if test x${with_multi_buildlist} != x ; then
+   target_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+   ${target_configargs}"
+   host_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+   ${host_configargs}"
+ fi
+ 
  # Pass --with-newlib if appropriate.  Note that target_configdirs has
  # changed from the earlier setting of with_newlib.
  if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
*************** if test x"${build}" = x"${host}" ; then
*** 11595,11607 ****
    LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
  fi
  
! # On Canadian crosses, we'll be searching the right directories for
! # the previously-installed cross compiler, so don't bother to add
! # flags for directories within the install tree of the compiler
! # being built; programs in there won't even run.
! if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
    # Search for pre-installed headers if nothing else fits.
!   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
  fi
  
  if test "x${use_gnu_ld}" = x &&
--- 11898,11914 ----
    LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
  fi
  
! if test -d ${srcdir}/gcc; then
!   # On Canadian crosses, we'll be searching the right directories for the
!   # previously-installed cross compiler, so don't bother to add flags for
!   # executable directories within the install tree of the compiler being built;
!   # programs in there won't even run.
!   if test "${build}" = "${host}"; then
!     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/'
!   fi
! 
    # Search for pre-installed headers if nothing else fits.
!   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
  fi
  
  if test "x${use_gnu_ld}" = x &&
*************** done
*** 11684,11689 ****
--- 11991,11998 ----
  
  
  
+ 
+ 
  # Generate default definitions for YACC, M4, LEX and other programs that run
  # on the build machine.  These are used if the Makefile can't locate these
  # programs in objdir.
*************** fi
*** 14202,14226 ****
  
  
  
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
! $as_echo_n "checking for -plugin option... " >&6; }
  
! plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
! plugin_option=
! for plugin in $plugin_names; do
!   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
!   if test x$plugin_so = x$plugin; then
!     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
    fi
!   if test x$plugin_so != x$plugin; then
!     plugin_option="--plugin $plugin_so"
!     break
    fi
  done
! if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
--- 14511,14934 ----
  
  
  
+ A68FLAGS=${A68FLAGS-${CFLAGS}}
+ 
+ 
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  
  
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong PLUGIN_OPTION with clang.
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
! $as_echo_n "checking how to run the C preprocessor... " >&6; }
! # On Suns, sometimes $CPP names a directory.
! if test -n "$CPP" && test -d "$CPP"; then
!   CPP=
! fi
! if test -z "$CPP"; then
!   if ${ac_cv_prog_CPP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!       # Double quotes because CPP needs to be expanded
!     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
!     do
!       ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
  
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
!   break
! fi
! 
!     done
!     ac_cv_prog_CPP=$CPP
! 
! fi
!   CPP=$ac_cv_prog_CPP
! else
!   ac_cv_prog_CPP=$CPP
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
! $as_echo "$CPP" >&6; }
! ac_preproc_ok=false
! for ac_c_preproc_warn_flag in '' yes
! do
!   # Use a header file that comes with gcc, so configuring glibc
!   # with a fresh cross-compiler works.
!   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
!   # <limits.h> exists even on freestanding compilers.
!   # On the NeXT, cc -E runs the code through the compiler's parser,
!   # not just through cpp. "Syntax error" is here to catch this case.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #ifdef __STDC__
! # include <limits.h>
! #else
! # include <assert.h>
! #endif
! 		     Syntax error
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
! 
! else
!   # Broken: fails on valid input.
! continue
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
!   # OK, works on sane cases.  Now check whether nonexistent headers
!   # can be detected and how.
!   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! #include <ac_nonexistent.h>
! _ACEOF
! if ac_fn_c_try_cpp "$LINENO"; then :
!   # Broken: success on invalid input.
! continue
! else
!   # Passes both tests.
! ac_preproc_ok=:
! break
! fi
! rm -f conftest.err conftest.i conftest.$ac_ext
! 
! done
! # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
! rm -f conftest.i conftest.err conftest.$ac_ext
! if $ac_preproc_ok; then :
! 
! else
!   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
! as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
! See \`config.log' for more details" "$LINENO" 5; }
! fi
! 
! ac_ext=c
! ac_cpp='$CPP $CPPFLAGS'
! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
! ac_compiler_gnu=$ac_cv_c_compiler_gnu
! 
! 
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
! $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
! if ${ac_cv_path_GREP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -z "$GREP"; then
!   ac_path_GREP_found=false
!   # Loop through the user's path and test for each of PROGNAME-LIST
!   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_prog in grep ggrep; do
!     for ac_exec_ext in '' $ac_executable_extensions; do
!       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
!       as_fn_executable_p "$ac_path_GREP" || continue
! # Check for GNU ac_path_GREP and select it if it is found.
!   # Check for GNU $ac_path_GREP
! case `"$ac_path_GREP" --version 2>&1` in
! *GNU*)
!   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
! *)
!   ac_count=0
!   $as_echo_n 0123456789 >"conftest.in"
!   while :
!   do
!     cat "conftest.in" "conftest.in" >"conftest.tmp"
!     mv "conftest.tmp" "conftest.in"
!     cp "conftest.in" "conftest.nl"
!     $as_echo 'GREP' >> "conftest.nl"
!     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
!     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
!     as_fn_arith $ac_count + 1 && ac_count=$as_val
!     if test $ac_count -gt ${ac_path_GREP_max-0}; then
!       # Best one so far, save it but keep looking for a better one
!       ac_cv_path_GREP="$ac_path_GREP"
!       ac_path_GREP_max=$ac_count
!     fi
!     # 10*(2^10) chars as input seems more than enough
!     test $ac_count -gt 10 && break
!   done
!   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
! esac
! 
!       $ac_path_GREP_found && break 3
!     done
!   done
!   done
! IFS=$as_save_IFS
!   if test -z "$ac_cv_path_GREP"; then
!     as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
    fi
! else
!   ac_cv_path_GREP=$GREP
! fi
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
! $as_echo "$ac_cv_path_GREP" >&6; }
!  GREP="$ac_cv_path_GREP"
! 
! 
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
! $as_echo_n "checking for egrep... " >&6; }
! if ${ac_cv_path_EGREP+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
!    then ac_cv_path_EGREP="$GREP -E"
!    else
!      if test -z "$EGREP"; then
!   ac_path_EGREP_found=false
!   # Loop through the user's path and test for each of PROGNAME-LIST
!   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_prog in egrep; do
!     for ac_exec_ext in '' $ac_executable_extensions; do
!       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
!       as_fn_executable_p "$ac_path_EGREP" || continue
! # Check for GNU ac_path_EGREP and select it if it is found.
!   # Check for GNU $ac_path_EGREP
! case `"$ac_path_EGREP" --version 2>&1` in
! *GNU*)
!   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
! *)
!   ac_count=0
!   $as_echo_n 0123456789 >"conftest.in"
!   while :
!   do
!     cat "conftest.in" "conftest.in" >"conftest.tmp"
!     mv "conftest.tmp" "conftest.in"
!     cp "conftest.in" "conftest.nl"
!     $as_echo 'EGREP' >> "conftest.nl"
!     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
!     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
!     as_fn_arith $ac_count + 1 && ac_count=$as_val
!     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
!       # Best one so far, save it but keep looking for a better one
!       ac_cv_path_EGREP="$ac_path_EGREP"
!       ac_path_EGREP_max=$ac_count
!     fi
!     # 10*(2^10) chars as input seems more than enough
!     test $ac_count -gt 10 && break
!   done
!   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
! esac
! 
!       $ac_path_EGREP_found && break 3
!     done
!   done
!   done
! IFS=$as_save_IFS
!   if test -z "$ac_cv_path_EGREP"; then
!     as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
!   fi
! else
!   ac_cv_path_EGREP=$EGREP
! fi
! 
!    fi
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
! $as_echo "$ac_cv_path_EGREP" >&6; }
!  EGREP="$ac_cv_path_EGREP"
! 
! 
!   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
! $as_echo_n "checking for clang... " >&6; }
! if ${clang_cv_is_clang+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
! 
!     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
! /* end confdefs.h.  */
! 
! #ifdef __clang__
!   yes
! #endif
! 
! _ACEOF
! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
!   $EGREP "yes" >/dev/null 2>&1; then :
!   clang_cv_is_clang=yes
! else
!   clang_cv_is_clang=no
! fi
! rm -f conftest*
! 
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
! $as_echo "$clang_cv_is_clang" >&6; }
!   if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
! set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$LLVM_CONFIG"; then
!   ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
    fi
  done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
! if test -n "$LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
! $as_echo "$LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
! 
! fi
! if test -z "$ac_cv_prog_LLVM_CONFIG"; then
!   ac_ct_LLVM_CONFIG=$LLVM_CONFIG
!   # Extract the first word of "llvm-config", so it can be a program name with args.
! set dummy llvm-config; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$ac_ct_LLVM_CONFIG"; then
!   ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
! fi
! fi
! ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
! if test -n "$ac_ct_LLVM_CONFIG"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
! $as_echo "$ac_ct_LLVM_CONFIG" >&6; }
! else
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
! fi
! 
!   if test "x$ac_ct_LLVM_CONFIG" = x; then
!     LLVM_CONFIG=""
!   else
!     case $cross_compiling:$ac_tool_warned in
! yes:)
! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
! $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
! ac_tool_warned=yes ;;
! esac
!     LLVM_CONFIG=$ac_ct_LLVM_CONFIG
!   fi
! else
!   LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
! fi
! 
!   plugin_file=
!   if test $clang_cv_is_clang = yes; then
!     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
! $as_echo_n "checking for clang plugin file... " >&6; }
!     plugin_names="LLVMgold.so"
!     for plugin in $plugin_names; do
!       plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
!       if test "$plugin_file" != "$plugin"; then
! 	break;
!       fi
!       if test -n "${LLVM_CONFIG}"; then
! 	plugin_file=`${LLVM_CONFIG} --libdir`/$plugin
! 	if test -f "$plugin_file"; then
! 	  break;
! 	fi
!       fi
!       plugin_file=
!     done
!     if test -z "$plugin_file"; then
!       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
! $as_echo "no" >&6; }
!     else
!       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
! $as_echo "$plugin_file" >&6; }
!             if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
  set dummy ${ac_tool_prefix}ar; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
*************** else
*** 14312,14343 ****
    AR="$ac_cv_prog_AR"
  fi
  
! if test "${AR}" = "" ; then
!   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
! fi
! touch conftest.c
! ${AR} $plugin_option rc conftest.a conftest.c
! if test "$?" != 0; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
  $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
!   plugin_option=
  fi
! rm -f conftest.*
! if test -n "$plugin_option"; then
!   PLUGIN_OPTION="$plugin_option"
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
! $as_echo "$plugin_option" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
  AR_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
--- 15020,15181 ----
    AR="$ac_cv_prog_AR"
  fi
  
!       if test -z "${AR}"; then
! 	as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
!       fi
!       plugin_option="--plugin $plugin_file"
!       touch conftest.c
!       ${AR} $plugin_option rc conftest.a conftest.c
!       if test "$?" != 0; then
! 	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
  $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
! 	plugin_file=
!       fi
!       rm -f conftest.*
!     fi
!   fi
!   PLUGIN_FILE="$plugin_file"
! 
! if test -n "$PLUGIN_FILE"; then
!   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
! else
!   if test -n "$ac_tool_prefix"; then
!   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
! set dummy ${ac_tool_prefix}ar; ac_word=$2
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
! $as_echo_n "checking for $ac_word... " >&6; }
! if ${ac_cv_prog_AR+:} false; then :
!   $as_echo_n "(cached) " >&6
! else
!   if test -n "$AR"; then
!   ac_cv_prog_AR="$AR" # Let the user override the test.
! else
! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
! for as_dir in $PATH
! do
!   IFS=$as_save_IFS
!   test -z "$as_dir" && as_dir=.
!     for ac_exec_ext in '' $ac_executable_extensions; do
!   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
!     ac_cv_prog_AR="${ac_tool_prefix}ar"
!     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
!     break 2
!   fi
! done
!   done
! IFS=$as_save_IFS
! 
  fi
! fi
! AR=$ac_cv_prog_AR
! if test -n "$AR"; then
!   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
! $as_echo "$AR" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
+ 
+ fi
+ if test -z "$ac_cv_prog_AR"; then
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_ac_ct_AR+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_AR"; then
+   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_ac_ct_AR="ar"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+ $as_echo "$ac_ct_AR" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_AR" = x; then
+     AR=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     AR=$ac_ct_AR
+   fi
+ else
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+ if test -z "${AR}"; then
+   as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+ $as_echo_n "checking for -plugin option... " >&6; }
+ plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+ plugin_option=
+ for plugin in $plugin_names; do
+   plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
+   if test x$plugin_so = x$plugin; then
+     plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
+   fi
+   if test x$plugin_so != x$plugin; then
+     plugin_option="--plugin $plugin_so"
+     break
+   fi
+ done
+ if test -z "$plugin_option"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+     touch conftest.c
+   ${AR} $plugin_option rc conftest.a conftest.c
+   if test "$?" != 0; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+ $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+     plugin_option=
+   fi
+   rm -f conftest.*
+ fi
+ PLUGIN_OPTION="$plugin_option"
+ 
+ fi
  AR_PLUGIN_OPTION=
+ NM_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
+   if $NM --help 2>&1 | grep -q "\--plugin"; then
+     NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
*************** fi
*** 14345,14350 ****
--- 15183,15189 ----
  
  
  
+ 
  # Target tools.
  
  # Check whether --with-build-time-tools was given.
*************** fi
*** 15003,15008 ****
--- 15842,16008 ----
  
  
  
+ if test -n "$A68_FOR_TARGET"; then
+   ac_cv_prog_A68_FOR_TARGET=$A68_FOR_TARGET
+ elif test -n "$ac_cv_prog_A68_FOR_TARGET"; then
+   A68_FOR_TARGET=$ac_cv_prog_A68_FOR_TARGET
+ fi
+ 
+ if test -n "$ac_cv_prog_A68_FOR_TARGET"; then
+   for ncn_progname in ga68; do
+     # Extract the first word of "${ncn_progname}", so it can be a program name with args.
+ set dummy ${ncn_progname}; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_A68_FOR_TARGET+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$A68_FOR_TARGET"; then
+   ac_cv_prog_A68_FOR_TARGET="$A68_FOR_TARGET" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_A68_FOR_TARGET="${ncn_progname}"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ A68_FOR_TARGET=$ac_cv_prog_A68_FOR_TARGET
+ if test -n "$A68_FOR_TARGET"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $A68_FOR_TARGET" >&5
+ $as_echo "$A68_FOR_TARGET" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   done
+ fi
+ 
+ if test -z "$ac_cv_prog_A68_FOR_TARGET" && test -n "$with_build_time_tools"; then
+   for ncn_progname in ga68; do
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ncn_progname} in $with_build_time_tools" >&5
+ $as_echo_n "checking for ${ncn_progname} in $with_build_time_tools... " >&6; }
+     if test -x $with_build_time_tools/${ncn_progname}; then
+       ac_cv_prog_A68_FOR_TARGET=$with_build_time_tools/${ncn_progname}
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+       break
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+     fi
+   done
+ fi
+ 
+ if test -z "$ac_cv_prog_A68_FOR_TARGET"; then
+   for ncn_progname in ga68; do
+     if test -n "$ncn_target_tool_prefix"; then
+       # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
+ set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_A68_FOR_TARGET+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$A68_FOR_TARGET"; then
+   ac_cv_prog_A68_FOR_TARGET="$A68_FOR_TARGET" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_A68_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ A68_FOR_TARGET=$ac_cv_prog_A68_FOR_TARGET
+ if test -n "$A68_FOR_TARGET"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $A68_FOR_TARGET" >&5
+ $as_echo "$A68_FOR_TARGET" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+     fi
+     if test -z "$ac_cv_prog_A68_FOR_TARGET" && test $build = $target ; then
+       # Extract the first word of "${ncn_progname}", so it can be a program name with args.
+ set dummy ${ncn_progname}; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_prog_A68_FOR_TARGET+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$A68_FOR_TARGET"; then
+   ac_cv_prog_A68_FOR_TARGET="$A68_FOR_TARGET" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_prog_A68_FOR_TARGET="${ncn_progname}"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ A68_FOR_TARGET=$ac_cv_prog_A68_FOR_TARGET
+ if test -n "$A68_FOR_TARGET"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $A68_FOR_TARGET" >&5
+ $as_echo "$A68_FOR_TARGET" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+     fi
+     test -n "$ac_cv_prog_A68_FOR_TARGET" && break
+   done
+ fi
+ 
+ if test -z "$ac_cv_prog_A68_FOR_TARGET" ; then
+   set dummy ga68
+   if test $build = $target ; then
+     A68_FOR_TARGET="$2"
+   else
+     A68_FOR_TARGET="${ncn_target_tool_prefix}$2"
+   fi
+ else
+   A68_FOR_TARGET="$ac_cv_prog_A68_FOR_TARGET"
+ fi
+ 
+ 
+ 
  if test -n "$GOC_FOR_TARGET"; then
    ac_cv_prog_GOC_FOR_TARGET=$GOC_FOR_TARGET
  elif test -n "$ac_cv_prog_GOC_FOR_TARGET"; then
*************** $as_echo "pre-installed" >&6; }
*** 19469,19474 ****
--- 20469,20519 ----
    fi
  fi
  
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target ga68" >&5
+ $as_echo_n "checking where to find the target ga68... " >&6; }
+ if test "x${build}" != "x${host}" ; then
+   if expr "x$A68_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $A68_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
+     *,algol68,*) ;;
+     *) ok=no ;;
+   esac
+   if test $ok = yes; then
+     # An in-tree tool is available and we can use it
+     A68_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/ga68 -B$$r/$(HOST_SUBDIR)/gcc/'
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: just compiled" >&5
+ $as_echo "just compiled" >&6; }
+   elif expr "x$A68_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $A68_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
+     A68_FOR_TARGET='$(A68)'
+     { $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 gdc" >&5
  $as_echo_n "checking where to find the target gdc... " >&6; }
  if test "x${build}" != "x${host}" ; then
*************** AR_FOR_TARGET=${AR_FOR_TARGET}${extra_ar
*** 20008,20013 ****
--- 21053,21231 ----
  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
  
+ # Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET
+ # may return the wrong PLUGIN_OPTION_FOR_TARGET with clang.
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+   if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+     COMPILER_FOR_TARGET="$CC"
+   fi
+   saved_CC="$CC"
+   CC="$COMPILER_FOR_TARGET"
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang for target" >&5
+ $as_echo_n "checking for clang for target... " >&6; }
+ if ${clang_target_cv_working+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ #ifndef __clang__
+ #error Not clang
+ #endif
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+   clang_target_cv_working=yes
+ else
+   clang_target_cv_working=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_target_cv_working" >&5
+ $as_echo "$clang_target_cv_working" >&6; }
+   CC="$saved_CC"
+   plugin_file=
+   if test $clang_target_cv_working = yes; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target llvm-config" >&5
+ $as_echo_n "checking where to find the target llvm-config... " >&6; }
+ if test "x${build}" != "x${host}" ; then
+   if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET`
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5
+ $as_echo "pre-installed in $ac_dir" >&6; }
+   else
+     # Canadian cross, just use what we found
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5
+ $as_echo "pre-installed" >&6; }
+   fi
+ else
+   if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then
+     # We already found the complete path
+     ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET`
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5
+ $as_echo "pre-installed in $ac_dir" >&6; }
+   elif test "x$target" = "x$host"; then
+     # We can use an host tool
+     LLVM_CONFIG_FOR_TARGET='$(LLVM_CONFIG)'
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5
+ $as_echo "host tool" >&6; }
+   else
+     # We need a cross tool
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5
+ $as_echo "pre-installed" >&6; }
+   fi
+ fi
+ 
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file for target" >&5
+ $as_echo_n "checking for clang plugin file for target... " >&6; }
+     plugin_names="LLVMgold.so"
+     for plugin in $plugin_names; do
+       plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+       if test "$plugin_file" != "$plugin"; then
+ 	break;
+       fi
+       if test -n "${LLVM_CONFIG_FOR_TARGET}"; then
+ 	plugin_file=`${LLVM_CONFIG_FOR_TARGET} --libdir`/$plugin
+ 	if test -f "$plugin_file"; then
+ 	  break;
+ 	fi
+       fi
+       plugin_file=
+     done
+     if test -z "$plugin_file"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+ $as_echo "$plugin_file" >&6; }
+     fi
+   fi
+   PLUGIN_FILE_FOR_TARGET="$plugin_file"
+ 
+ if test -n "$PLUGIN_FILE_FOR_TARGET"; then
+   PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET"
+ else
+   COMPILER_FOR_TARGET="${CC_FOR_TARGET}"
+ if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then
+   COMPILER_FOR_TARGET="$CC"
+ fi
+ saved_CC="$CC"
+ CC="$COMPILER_FOR_TARGET"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc for target" >&5
+ $as_echo_n "checking for gcc for target... " >&6; }
+ if ${gcc_target_cv_working+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+   gcc_target_cv_working=yes
+ else
+   gcc_target_cv_working=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_target_cv_working" >&5
+ $as_echo "$gcc_target_cv_working" >&6; }
+ CC="$saved_CC"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for target -plugin option" >&5
+ $as_echo_n "checking for target -plugin option... " >&6; }
+ plugin_option=
+ if test $gcc_target_cv_working = yes; then
+   plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+   for plugin in $plugin_names; do
+     plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin`
+     if test x$plugin_so = x$plugin; then
+       plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin`
+     fi
+     if test x$plugin_so != x$plugin; then
+       plugin_option="--plugin $plugin_so"
+       break
+     fi
+   done
+ fi
+ if test -z "$plugin_option"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+ $as_echo "$plugin_option" >&6; }
+ fi
+ PLUGIN_OPTION_FOR_TARGET="$plugin_option"
+ 
+ fi
+ if test -n "$PLUGIN_OPTION_FOR_TARGET"; then
+   AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+ else
+   AR_PLUGIN_OPTION_FOR_TARGET=
+   NM_PLUGIN_OPTION_FOR_TARGET=
+   RANLIB_PLUGIN_OPTION_FOR_TARGET=
+ fi
+ 
+ 
+ 
+ 
  # When building target libraries, except in a Canadian cross, we use
  # the same toolchain as the compiler we just built.
  COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
diff -Nrcpad gcc-15.2.0/configure.ac gcc-16.1.0-RC-20260423/configure.ac
*** gcc-15.2.0/configure.ac	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/configure.ac	Thu Apr 23 11:07:32 2026
*************** m4_include(config/override.m4)
*** 24,29 ****
--- 24,30 ----
  m4_include(config/proginstall.m4)
  m4_include(config/elf.m4)
  m4_include(config/ax_cxx_compile_stdcxx.m4)
+ m4_include(config/clang-plugin.m4)
  m4_include(config/gcc-plugin.m4)
  m4_include([libtool.m4])
  m4_include([ltoptions.m4])
*************** m4_include([ltversion.m4])
*** 32,38 ****
  m4_include([lt~obsolete.m4])
  m4_include([config/isl.m4])
  
! AC_INIT(move-if-change)
  AC_DISABLE_OPTION_CHECKING
  
  progname=$0
--- 33,40 ----
  m4_include([lt~obsolete.m4])
  m4_include([config/isl.m4])
  
! AC_INIT
! AC_CONFIG_SRCDIR([move-if-change])
  AC_DISABLE_OPTION_CHECKING
  
  progname=$0
*************** ACX_NONCANONICAL_TARGET
*** 70,83 ****
  
  dnl Autoconf 2.5x and later will set a default program prefix if
  dnl --target was used, even if it was the same as --host.  Disable
! dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
  dnl to take effect.
  test "$host_noncanonical" = "$target_noncanonical" &&
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_transform_name=s,y,y,
  
! AC_CANONICAL_SYSTEM
  AC_ARG_PROGRAM
  
  m4_pattern_allow([^AS_FOR_TARGET$])dnl
--- 72,85 ----
  
  dnl Autoconf 2.5x and later will set a default program prefix if
  dnl --target was used, even if it was the same as --host.  Disable
! dnl that behavior.  This must be done before AC_CANONICAL_TARGET
  dnl to take effect.
  test "$host_noncanonical" = "$target_noncanonical" &&
    test "$program_prefix$program_suffix$program_transform_name" = \
      NONENONEs,x,x, &&
    program_transform_name=s,y,y,
  
! AC_CANONICAL_TARGET
  AC_ARG_PROGRAM
  
  m4_pattern_allow([^AS_FOR_TARGET$])dnl
*************** target_libraries="target-libgcc \
*** 164,169 ****
--- 166,172 ----
  		target-libgcobol \
  		target-libada \
  		target-libgm2 \
+                 target-libga68 \
  		target-libgo \
  		target-libgrust \
  		target-libphobos \
*************** if test "${ENABLE_LIBGM2}" != "yes" ; th
*** 512,517 ****
--- 515,525 ----
    noconfigdirs="$noconfigdirs gm2tools"
  fi
  
+ AC_ARG_ENABLE(libga68,
+ [AS_HELP_STRING([--enable-libga68], [build libga68 directory])],
+ ENABLE_LIBGA68=$enableval,
+ ENABLE_LIBGA68=yes)
+ 
  AC_ARG_ENABLE(libssp,
  [AS_HELP_STRING([--enable-libssp], [build libssp directory])],
  ENABLE_LIBSSP=$enableval,
*************** case "${target}" in
*** 621,626 ****
--- 629,641 ----
      ;;
  esac
  
+ cpu_type=`echo ${host} | sed 's/-.*$//'`
+ # Special case cpu_type for x86_64 as it shares AUTO_PROFILE from i386.
+ if test "${cpu_type}" = "x86_64" ; then
+   cpu_type="i386"
+ fi
+ AC_SUBST(cpu_type)
+ 
  # Disable libssp for some systems.
  case "${target}" in
    avr-*-*)
*************** case "${target}" in
*** 1099,1104 ****
--- 1114,1120 ----
      noconfigdirs="$noconfigdirs sim target-rda"
      ;;
    amdgcn*-*-*)
+     noconfigdirs="$noconfigdirs ld gas"
      ;;
    arm-*-darwin*)
      noconfigdirs="$noconfigdirs ld gas gdb gprof"
*************** case "${target}" in
*** 1312,1321 ****
      # always build newlib.
      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
      ;;
-     # This is temporary until we can link against shared libraries
-   powerpcle-*-solaris*)
-     noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
-     ;;
    powerpc-*-beos*)
      noconfigdirs="$noconfigdirs gdb"
      ;;
--- 1328,1333 ----
*************** if test "${build}" != "${host}" ; then
*** 1443,1453 ****
    CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
    CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}"
    CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
    DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
    GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
    GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
    GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc}
!   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
    LD_FOR_BUILD=${LD_FOR_BUILD-ld}
    NM_FOR_BUILD=${NM_FOR_BUILD-nm}
    RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
--- 1455,1467 ----
    CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
    CPP_FOR_BUILD="${CPP_FOR_BUILD-\$(CC_FOR_BUILD) -E}"
    CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
+   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
    DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil}
    GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
+   A68_FOR_BUILD=${A68_FOR_BUILD-ga68}
    GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
    GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc}
!   GNATMAKE_FOR_BUILD=${GNATMAKE_FOR_BUILD-gnatmake}
    LD_FOR_BUILD=${LD_FOR_BUILD-ld}
    NM_FOR_BUILD=${NM_FOR_BUILD-nm}
    RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
*************** else
*** 1458,1468 ****
    AS_FOR_BUILD="\$(AS)"
    CC_FOR_BUILD="\$(CC)"
    CXX_FOR_BUILD="\$(CXX)"
    DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)"
    GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
    GOC_FOR_BUILD="\$(GOC)"
    GDC_FOR_BUILD="\$(GDC)"
!   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
    LD_FOR_BUILD="\$(LD)"
    NM_FOR_BUILD="\$(NM)"
    RANLIB_FOR_BUILD="\$(RANLIB)"
--- 1472,1484 ----
    AS_FOR_BUILD="\$(AS)"
    CC_FOR_BUILD="\$(CC)"
    CXX_FOR_BUILD="\$(CXX)"
+   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
    DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)"
    GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
+   A68_FOR_BUILD="\$(A68)"
    GOC_FOR_BUILD="\$(GOC)"
    GDC_FOR_BUILD="\$(GDC)"
!   GNATMAKE_FOR_BUILD="\$(GNATMAKE)"
    LD_FOR_BUILD="\$(LD)"
    NM_FOR_BUILD="\$(NM)"
    RANLIB_FOR_BUILD="\$(RANLIB)"
*************** int main() {}])],
*** 1513,1518 ****
--- 1529,1535 ----
  fi
  
  ACX_PROG_GNAT
+ ACX_PROG_A68
  ACX_PROG_GDC
  ACX_PROG_CARGO
  ACX_PROG_CMP_IGNORE_INITIAL
*************** if test -d ${srcdir}/gcc; then
*** 2239,2254 ****
    # 'f95' is the old name for the 'fortran' language. We issue a warning
    # and make the substitution.
    case ,${enable_languages}, in
!     *,f95,*)
        echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
        enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
        ;;
    esac
  
    # If bootstrapping, C++ must be enabled.
!   case ",$enable_languages,:$enable_bootstrap" in
!     *,c++,*:*) ;;
!     *:yes)
        if test -f ${srcdir}/gcc/cp/config-lang.in; then
          enable_languages="${enable_languages},c++"
        else
--- 2256,2295 ----
    # 'f95' is the old name for the 'fortran' language. We issue a warning
    # and make the substitution.
    case ,${enable_languages}, in
!     *,f95,* | *,^f95,*)
        echo configure.ac: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
        enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
        ;;
    esac
  
+   # Extract the language disable requests.  N.B. some non-GNU sed, e.g. on SunOS,
+   # will ignore a line without a trailing newline.
+   disable_languages=`echo "$enable_languages" | tr , "$as_nl" | grep '^\^' | (tr "$as_nl" , ; echo) | sed -e 's/\^//g' -e 's/,$//'`
+   new_enable_languages=
+   for lang in `echo "$enable_languages" | tr , ' '`; do
+     case "${lang}:,${disable_languages}," in
+       ^default:* | ^all:*)
+         AC_MSG_ERROR([only specific individual languages may be disabled, not "$lang"])
+         ;;
+       ^lto:*)
+ 	AC_MSG_ERROR([LTO should be disabled with the "--disable-lto" argument, not via "--enable-languages=^lto"])
+ 	;;
+       ^c:*)
+ 	AC_MSG_ERROR([language "c" cannot be disabled])
+ 	;;
+       ^* | ${lang}:*,${lang},*) ;;
+       *) new_enable_languages="${new_enable_languages}${lang}," ;;
+     esac
+   done
+   enable_languages=`echo "$new_enable_languages" | sed -e 's/,$//'`
+ 
    # If bootstrapping, C++ must be enabled.
!   case ",${enable_languages},:${enable_bootstrap}:,${disable_languages}," in
!     *:yes:*,c++,*)
!       AC_MSG_ERROR([c++ cannot be disabled for a bootstrap build])
!       ;;
!     *,c++,*:*:*) ;;
!     *:yes:*)
        if test -f ${srcdir}/gcc/cp/config-lang.in; then
          enable_languages="${enable_languages},c++"
        else
*************** if test -d ${srcdir}/gcc; then
*** 2257,2265 ****
        ;;
    esac
  
!   # First scan to see if an enabled language requires some other language.
!   # We assume that a given config-lang.in will list all the language
!   # front ends it requires, even if some are required indirectly.
    for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
      case ${lang_frag} in
        ..) ;;
--- 2298,2306 ----
        ;;
    esac
  
!   # Collect the list of default languages; keep it prefixed and suffixed with
!   # commas for later convenience.
!   default_languages=,
    for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
      case ${lang_frag} in
        ..) ;;
*************** if test -d ${srcdir}/gcc; then
*** 2267,2294 ****
        # an apparent bug in bash 1.12 on linux.
        ${srcdir}/gcc/[[*]]/config-lang.in) ;;
        *)
!         # From the config-lang.in, get $language, $lang_requires, and
!         # $lang_requires_boot_languages.
          language=
!         lang_requires=
!         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}
!         for other in ${lang_requires} ${lang_requires_boot_languages}; do
!           case ,${enable_languages}, in
! 	    *,$other,*) ;;
! 	    *,default,*) ;;
! 	    *,all,*) ;;
! 	    *,$language,*)
! 	      echo " \`$other' language required by \`$language'; enabling" 1>&2
! 	      enable_languages="${enable_languages},${other}"
  	      ;;
  	  esac
!         done
  	for other in ${lang_requires_boot_languages} ; do
  	  if test "$other" != "c"; then
  	    case ,${enable_stage1_languages}, in
--- 2308,2392 ----
        # an apparent bug in bash 1.12 on linux.
        ${srcdir}/gcc/[[*]]/config-lang.in) ;;
        *)
!         # From the config-lang.in, get $language and $build_by_default.
          language=
!         build_by_default=yes
!         # See note below about saving srcdir.
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
          srcdir=${saved_srcdir}
!         if test x"$build_by_default" = xyes; then
!           default_languages="${default_languages}${language},"
!         fi
!         ;;
!     esac
!   done
! 
!   # First scan to see if an enabled language requires some other language.
!   # We assume that a given config-lang.in will list all the language
!   # front ends it requires, even if some are required indirectly.
!   delayed_error_languages=,
!   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
!     case ${lang_frag} in
!       ..) ;;
!       # The odd quoting in the next line works around
!       # an apparent bug in bash 1.12 on linux.
!       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
!       *)
! 	# From the config-lang.in, get $language, $lang_requires, and
! 	# $lang_requires_boot_languages.
! 	language=
! 	lang_requires=
! 	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}
! 
! 	# Determine if this language was requested; if not, don't bring in its
! 	# dependencies.  To match historical behavior, do bring in the dependencies
! 	# for unsupported languages that were not explicitly disabled.
! 	case ,${disable_languages}, in
! 	  *,${language},*) continue ;;
! 	esac
! 	case ,${enable_languages}, in
! 	  *,${language},* | *,all,*) ;;
! 	  *,default,*)
!             case ${default_languages} in
!               *,${language},*) ;;
!               *) continue ;;
!             esac
!             ;;
! 	  *) continue ;;
! 	esac
! 
! 	# This language was indeed requested; make sure all dependencies are
! 	# also enabled.
! 	for other in ${lang_requires} ${lang_requires_boot_languages}; do
! 	  need_to_add=0
! 	  case ,${enable_languages},:,${disable_languages}, in
!             *:*,${other},*)
! 	      # This language cannot be built because one of its dependencies
! 	      # was explicitly disabled.  Don't complain just yet, though; other
! 	      # checks later may decide the language won't be built anyway.
! 	      delayed_error_languages="${delayed_error_languages}${language}:${other},"
!               ;;
!             *,${other},*:* | *,all,*:*) ;;
!             *,default,*:*)
! 	      case ${default_languages} in
! 		*,${other},*) ;;
! 		*) need_to_add=1 ;;
! 	      esac
  	      ;;
+ 	    *) need_to_add=1 ;;
  	  esac
! 	  if test $need_to_add = 1; then
! 	    echo " \`$other' language required by \`$language'; enabling" 1>&2
! 	    enable_languages="${enable_languages},${other}"
! 	  fi
! 	done
  	for other in ${lang_requires_boot_languages} ; do
  	  if test "$other" != "c"; then
  	    case ,${enable_stage1_languages}, in
*************** if test -d ${srcdir}/gcc; then
*** 2296,2312 ****
  	      *,default,*) ;;
  	      *,all,*) ;;
  	      *)
! 		case ,${enable_languages}, in
! 		  *,$language,*)
! 		    echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
! 		    enable_stage1_languages="$enable_stage1_languages,${other}"
! 		    ;;
! 		esac
  		;;
  	    esac
!           fi
!         done
!         ;;
      esac
    done
  
--- 2394,2406 ----
  	      *,default,*) ;;
  	      *,all,*) ;;
  	      *)
! 		echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
! 		enable_stage1_languages="$enable_stage1_languages,${other}"
  		;;
  	    esac
! 	  fi
! 	done
! 	;;
      esac
    done
  
*************** if test -d ${srcdir}/gcc; then
*** 2345,2357 ****
        ${srcdir}/gcc/[[*]]/config-lang.in) ;;
        *)
          # From the config-lang.in, get $language, $target_libs, 
!         # $lang_dirs, $boot_language, and $build_by_default
          language=
          target_libs=
          lang_dirs=
          subdir_requires=
          boot_language=no
-         build_by_default=yes
          # set srcdir during sourcing.  See above about save & restore
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
--- 2439,2450 ----
        ${srcdir}/gcc/[[*]]/config-lang.in) ;;
        *)
          # From the config-lang.in, get $language, $target_libs, 
!         # $lang_dirs, and $boot_language.
          language=
          target_libs=
          lang_dirs=
          subdir_requires=
          boot_language=no
          # set srcdir during sourcing.  See above about save & restore
          saved_srcdir=${srcdir}
          srcdir=${srcdir}/gcc . ${lang_frag}
*************** if test -d ${srcdir}/gcc; then
*** 2367,2387 ****
  
          add_this_lang=no
          # C is always enabled, so no need to add it again
!         if test "$language" != "c"; then
!           case ,${enable_languages}, in
!             *,${language},*)
!               # Language was explicitly selected; include it
! 	      add_this_lang=yes
!               ;;
! 	    *,all,*)
! 	      # All languages are enabled
! 	      add_this_lang=all
!               ;;
!             *,default,*)
!               # 'default' was selected, select it if it is a default language
! 	      add_this_lang=${build_by_default}
!               ;;
!           esac
          fi
  
          # Disable languages that need other directories if these aren't available.
--- 2460,2488 ----
  
          add_this_lang=no
          # C is always enabled, so no need to add it again
! 	if test "$language" != "c"; then
! 	    # Determine if this language was requested.
! 	    case ,${disable_languages}, in
! 	      *,${language},* ) ;;
! 	      *)
! 		case ,${enable_languages}, in
! 		  *,${language},*)
! 		    # Language was explicitly selected; include it
! 		    add_this_lang=yes
! 		    ;;
! 		  *,all,*)
! 		    # All languages are enabled, and this one not excluded.
! 		    add_this_lang=all
! 		    ;;
! 		  *,default,*)
! 		    # 'default' was selected, select it if it is a default language
! 		    case ${default_languages} in
! 		      *,${language},*) add_this_lang=yes ;;
! 		    esac
! 		    ;;
! 		esac
! 		;;
! 	    esac
          fi
  
          # Disable languages that need other directories if these aren't available.
*************** directories, to avoid imposing the perfo
*** 2482,2488 ****
                # Silently disable.
                add_this_lang=unsupported
                ;;
! 	        esac
            ;;
          esac
  
--- 2583,2589 ----
                # Silently disable.
                add_this_lang=unsupported
                ;;
! 	  esac
            ;;
          esac
  
*************** directories, to avoid imposing the perfo
*** 2538,2543 ****
--- 2639,2649 ----
              potential_languages="${potential_languages}${language},"
  	    ;;
            all|yes)
+ 	    case "$delayed_error_languages" in
+ 	      *,${language}:*,*)
+ 		AC_MSG_ERROR([invalid configuration for language "${language}"; at least one of the dependencies "$delayed_error_languages" was explicitly disabled])
+ 		;;
+ 	    esac
  	    new_enable_languages="${new_enable_languages}${language},"
              potential_languages="${potential_languages}${language},"
  	    missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
*************** AC_ARG_ENABLE(objc-gc,
*** 2637,2642 ****
--- 2743,2752 ----
  [AS_HELP_STRING([--enable-objc-gc],
  		[enable use of Boehm's garbage collector with the
  		 GNU Objective-C runtime])])
+ AC_ARG_ENABLE(algol68-gc,
+ [AS_HELP_STRING([--enable-algol68-gc],
+                 [enable use of Boehm's garbage collector with the
+                  GNU Algol runtime])])
  AC_ARG_WITH([target-bdw-gc],
  [AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
  		[specify prefix directory for installed bdw-gc package.
*************** AC_ARG_WITH([target-bdw-gc-lib],
*** 2649,2669 ****
  [AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
  		[specify directories for installed bdw-gc library])])
  		  
! case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
!   AC_MSG_CHECKING([for bdw garbage collector])
!   if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
!     dnl no bdw-gw options, assume default locations
!     AC_MSG_RESULT([using bdw-gc in default locations])
!   else
!     dnl bdw-gw options, first error checking, complete checking in libobjc
!     if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
!       AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
!     elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
!       AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
      else
!       AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
      fi
-   fi
  esac
  
  # Disable libitm, libsanitizer, libvtv if we're not building C++
--- 2759,2780 ----
  [AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
  		[specify directories for installed bdw-gc library])])
  		  
! case ,${enable_languages},:${enable_objc_gc}:${enable_algol68_gc} in
!   *,objc,*:yes:*|*,objc,*:auto:*|*,algol68,*:*:yes|*,algol68,*:*:auto)
!     AC_MSG_CHECKING([for bdw garbage collector])
!     if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
!       dnl no bdw-gw options, assume default locations
!       AC_MSG_RESULT([using bdw-gc in default locations])
      else
!       dnl bdw-gw options, first error checking, complete checking in libobjc and libga68
!       if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
!         AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
!       elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
!         AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
!       else
!         AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
!       fi
      fi
  esac
  
  # Disable libitm, libsanitizer, libvtv if we're not building C++
*************** case "${target}" in
*** 3042,3049 ****
      md_exec_prefix=/dev/env/DJDIR/bin
      ;;
    *-*-hpux* | \
!   *-*-nto-qnx* | \
!   *-*-solaris2*)
      md_exec_prefix=/usr/ccs/bin
      ;;
  esac
--- 3153,3159 ----
      md_exec_prefix=/dev/env/DJDIR/bin
      ;;
    *-*-hpux* | \
!   *-*-nto-qnx*)
      md_exec_prefix=/usr/ccs/bin
      ;;
  esac
*************** if echo " ${target_configdirs} " | grep
*** 3244,3249 ****
--- 3354,3364 ----
    bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
  fi
  
+ # If we are building libatomic, bootstrap it.
+ if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then
+   bootstrap_target_libs=${bootstrap_target_libs}target-libatomic,
+ fi
+ 
  # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
  # or bootstrap-ubsan, bootstrap it.
  if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
*************** case "$target:$have_compiler:$host:$targ
*** 3711,3721 ****
--- 3826,3866 ----
      ;;
  esac
  
+ # For s390, -m31 is deprecated.  Emit a warning if --enable-multilib and
+ # --enable-obsolete are explicitly specified.  If --enable-multilib is
+ # specified implicitly or --enable-obsolete is missing, error out.
+ case "$target:$enable_multilib:$enable_obsolete" in
+   s390*:yes:yes)
+     AC_MSG_WARN([Support for -m31 is deprecated and will be removed.])
+     ;;
+   s390*::*)
+     AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Explicitly specify --disable-multilib or --enable-multilib --enable-obsolete to build it anyway.])
+     ;;
+   s390*:yes:*)
+     AC_MSG_ERROR([Support for -m31 is deprecated and will be removed. Specify --enable-obsolete to build it anyway.])
+     ;;
+ esac
+ 
  # Default to --enable-multilib.
  if test x${enable_multilib} = x ; then
    target_configargs="--enable-multilib ${target_configargs}"
  fi
  
+ # Source target-specific configuration fragment for GCC
+ if test -d ${srcdir}/gcc; then
+   . ${srcdir}/gcc/configure.tgt
+ fi
+ 
+ # Pass through with_multi_buildlist to host and target.  'gcc' needs it for the
+ # fixed includes which are multilib'd and target libraries need it as they use
+ # config-ml.in.
+ if test x${with_multi_buildlist} != x ; then
+   target_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+   ${target_configargs}"
+   host_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+   ${host_configargs}"
+ fi
+ 
  # Pass --with-newlib if appropriate.  Note that target_configdirs has
  # changed from the earlier setting of with_newlib.
  if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
*************** if test x"${build}" = x"${host}" ; then
*** 3822,3834 ****
    LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
  fi
  
! # On Canadian crosses, we'll be searching the right directories for
! # the previously-installed cross compiler, so don't bother to add
! # flags for directories within the install tree of the compiler
! # being built; programs in there won't even run.
! if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
    # Search for pre-installed headers if nothing else fits.
!   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
  fi
  
  if test "x${use_gnu_ld}" = x &&
--- 3967,3983 ----
    LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
  fi
  
! if test -d ${srcdir}/gcc; then
!   # On Canadian crosses, we'll be searching the right directories for the
!   # previously-installed cross compiler, so don't bother to add flags for
!   # executable directories within the install tree of the compiler being built;
!   # programs in there won't even run.
!   if test "${build}" = "${host}"; then
!     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/'
!   fi
! 
    # Search for pre-installed headers if nothing else fits.
!   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
  fi
  
  if test "x${use_gnu_ld}" = x &&
*************** AC_SUBST(CXX_FOR_BUILD)
*** 3902,3909 ****
--- 4051,4060 ----
  AC_SUBST(DLLTOOL_FOR_BUILD)
  AC_SUBST(DSYMUTIL_FOR_BUILD)
  AC_SUBST(GFORTRAN_FOR_BUILD)
+ AC_SUBST(A68_FOR_BUILD)
  AC_SUBST(GOC_FOR_BUILD)
  AC_SUBST(GDC_FOR_BUILD)
+ AC_SUBST(GNATMAKE_FOR_BUILD)
  AC_SUBST(LDFLAGS_FOR_BUILD)
  AC_SUBST(LD_FOR_BUILD)
  AC_SUBST(NM_FOR_BUILD)
*************** AC_SUBST(CC)
*** 3996,4018 ****
  AC_SUBST(CXX)
  AC_SUBST(CFLAGS)
  AC_SUBST(CXXFLAGS)
  AC_SUBST(GDC)
  AC_SUBST(GDCFLAGS)
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  AC_SUBST(PKG_CONFIG_PATH)
  
! GCC_PLUGIN_OPTION(PLUGIN_OPTION)
  AR_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
  fi
  AC_SUBST(AR_PLUGIN_OPTION)
  AC_SUBST(RANLIB_PLUGIN_OPTION)
  
  # Target tools.
--- 4147,4184 ----
  AC_SUBST(CXX)
  AC_SUBST(CFLAGS)
  AC_SUBST(CXXFLAGS)
+ AC_SUBST(A68)
+ AC_SUBST(A68FLAGS)
+ A68FLAGS=${A68FLAGS-${CFLAGS}}
  AC_SUBST(GDC)
  AC_SUBST(GDCFLAGS)
  GDCFLAGS=${GDCFLAGS-${CFLAGS}}
  AC_SUBST(PKG_CONFIG_PATH)
  
! # Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
! # wrong PLUGIN_OPTION with clang.
! CLANG_PLUGIN_FILE(PLUGIN_FILE)
! if test -n "$PLUGIN_FILE"; then
!   PLUGIN_OPTION="--plugin $PLUGIN_FILE"
! else
!   GCC_PLUGIN_OPTION(PLUGIN_OPTION)
! fi
  AR_PLUGIN_OPTION=
+ NM_PLUGIN_OPTION=
  RANLIB_PLUGIN_OPTION=
  if test -n "$PLUGIN_OPTION"; then
    if $AR --help 2>&1 | grep -q "\--plugin"; then
      AR_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
+   if $NM --help 2>&1 | grep -q "\--plugin"; then
+     NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+   fi
    if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
      RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
    fi
  fi
  AC_SUBST(AR_PLUGIN_OPTION)
+ AC_SUBST(NM_PLUGIN_OPTION)
  AC_SUBST(RANLIB_PLUGIN_OPTION)
  
  # Target tools.
*************** NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TAR
*** 4032,4037 ****
--- 4198,4204 ----
  NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
  NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
  NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
+ NCN_STRICT_CHECK_TARGET_TOOLS(A68_FOR_TARGET, ga68)
  NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
  NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc)
  NCN_STRICT_CHECK_TARGET_TOOLS(GM2_FOR_TARGET, gm2)
*************** GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_T
*** 4083,4088 ****
--- 4250,4257 ----
  		[gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
  GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
  		[gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
+ GCC_TARGET_TOOL(ga68, A68_FOR_TARGET, A68,
+                 [gcc/ga68 -B$$r/$(HOST_SUBDIR)/gcc/], algol68)
  GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC,
  		[gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d)
  GCC_TARGET_TOOL(gm2, GM2_FOR_TARGET, GM2,
*************** AR_FOR_TARGET=${AR_FOR_TARGET}${extra_ar
*** 4107,4112 ****
--- 4276,4302 ----
  RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
  NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
  
+ # Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET
+ # may return the wrong PLUGIN_OPTION_FOR_TARGET with clang.
+ CLANG_PLUGIN_FILE_FOR_TARGET(PLUGIN_FILE_FOR_TARGET)
+ if test -n "$PLUGIN_FILE_FOR_TARGET"; then
+   PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET"
+ else
+   GCC_PLUGIN_OPTION_FOR_TARGET(PLUGIN_OPTION_FOR_TARGET)
+ fi
+ if test -n "$PLUGIN_OPTION_FOR_TARGET"; then
+   AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+   RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET"
+ else
+   AR_PLUGIN_OPTION_FOR_TARGET=
+   NM_PLUGIN_OPTION_FOR_TARGET=
+   RANLIB_PLUGIN_OPTION_FOR_TARGET=
+ fi
+ AC_SUBST(AR_PLUGIN_OPTION_FOR_TARGET)
+ AC_SUBST(NM_PLUGIN_OPTION_FOR_TARGET)
+ AC_SUBST(RANLIB_PLUGIN_OPTION_FOR_TARGET)
+ 
  # When building target libraries, except in a Canadian cross, we use
  # the same toolchain as the compiler we just built.
  COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
diff -Nrcpad gcc-15.2.0/contrib/ChangeLog gcc-16.1.0-RC-20260423/contrib/ChangeLog
*** gcc-15.2.0/contrib/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/contrib/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,17 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 15.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2025-04-11  Tomasz Kamiński  <tkaminsk@redhat.com>
  
--- 1,341 ----
! 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc-changelog/git_update_version.py: Add
! 	9df40f1f4bec855da864f535e242308ceb1cd5ad and
! 	d5fb79718b22207253d62c92dcf8b1c16e1ea370 to ignored_commits.
  
! 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc-changelog/git_update_version.py: Add
! 	eec8da328cf1f91db302ab4cee803e269e68ad33 to ignored_commits.
! 
! 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py: Add
! 	69a2c243dd2cf9f77150c0eb86dfbc0931876bc1 to ignored_commits.
! 
! 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR other/124508
! 	* update-copyright.py: Add James Bohl. as another copyright.
! 
! 2026-03-09  Martin Jambor  <mjambor@suse.cz>
! 
! 	* filter-clang-warnings.py (skip_warning): Also ingore
! 	-Wimplicit-int-enum-cast in libiberty.
! 
! 2026-03-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add
! 	9a7da540b63e7d77e747b5cdd6fdbbd3954e28c8.
! 
! 2026-02-24  Piyush Raj  <piyushraj92739@gmail.com>
! 
! 	* bpf-vmtest-tool/README: New file.
! 	* bpf-vmtest-tool/bpf.py: New file.
! 	* bpf-vmtest-tool/config.py: New file.
! 	* bpf-vmtest-tool/kernel.py: New file.
! 	* bpf-vmtest-tool/main.py: New file.
! 	* bpf-vmtest-tool/pyproject.toml: New file.
! 	* bpf-vmtest-tool/tests/test_cli.py: New file.
! 	* bpf-vmtest-tool/utils.py: New file.
! 	* bpf-vmtest-tool/vm.py: New file.
! 
! 2026-02-24  Martin Jambor  <mjambor@suse.cz>
! 
! 	* filter-clang-warnings.py (skip_warning): Skip warning
! 	-Wreturn-type-c-linkage in rust/ast/rust-fmt.h.  Fix indentation of
! 	the entry for libiberty/sha1.c.
! 
! 2026-02-19  Filip Kastl  <fkastl@suse.cz>
! 
! 	* filter-clang-warnings.py: Filter out all warnings comming from
! 	files with ".texi" in their name.
! 
! 2026-02-05  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	* download_prerequisites: Switch gcc.gnu.org link to https
! 
! 2026-02-05  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-params-in-docs.py: Extend architecture-specific options
! 	filtering.  Remove the mechanism for seeking to the param
! 	section.
! 
! 2026-01-31  Pietro Monteiro  <pietro@sociotechnical.xyz>
! 
! 	* compare_tests: Use egrep if 'grep -E' is not supported.
! 
! 2026-01-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* update-copyright.py (GCCFilter): Don't filter out
! 	gen-evolution.awk and gen-cxxapi-file.py.
! 
! 2026-01-08  Pietro Monteiro  <pietro@sociotechnical.xyz>
! 
! 	* ci-containers/README: New file.
! 	* ci-containers/autoregen/Containerfile: New file.
! 	* ci-containers/autoregen/autoregen.py: New file.
! 	* ci-containers/build-image.sh: New file.
! 
! 2026-01-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* update-copyright.py (LibPhobosFilter): Ignore also
! 	__importc_builtins.di.
! 	(LibGRustFilter): New filter.
! 	(GCCCopyright): Add several external authors.
! 	(GCCCmdLine): Use LibGRustFilter for libgrust.  Add libga68
! 	directory, both to list of directories and default directories.
! 
! 2025-12-26  Matthew Fortune  <matthew.fortune@imgtec.com>
! 
! 	* test_installed: Use target to select default gcc/g++ etc.
! 	under test.
! 
! 2025-12-15  Joseph Myers  <josmyers@redhat.com>
! 
! 	* test_installed (--enable-plugin, --with-plugincc=)
! 	(--with-plugincflags=, --with-gmpinc=): New options.
! 
! 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
! 	    Jiajie Chen  <c@jia.je>
! 
! 	* config-list.mk: Add loongarch32-linux-gnu*.
! 
! 2025-12-11  Joseph Myers  <josmyers@redhat.com>
! 
! 	* test_installed: Use config.sub to determine canonical target.
! 
! 2025-12-08  Joseph Myers  <josmyers@redhat.com>
! 
! 	* test_installed (--with-alt-cc=, --with-alt-cxx=)
! 	(--with-compat-options=, --with-libiconv=): New options.
! 
! 2025-12-08  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* check_GNU_style_lib.py (check_GNU_style_file): Do not check
! 	libstdc++ files.
! 
! 2025-12-06  Mark Zhuang  <mark.zhuang@spacemit.com>
! 
! 	* prepare-commit-msg: check --default-prefix
! 
! 2025-12-04  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* check_GNU_style_lib.py (TrailinigOperatorCheck): Rename to
! 	TrailingOperatorCheck.
! 
! 2025-12-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add
! 	e69bea9b4ccfe79efeec6e87d7d24e6350f31375.
! 
! 2025-12-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
! 
! 	* gcc-changelog/git_commit.py: Add gcc/algol68 and libga68 to
! 	default_changelog_locations.
! 
! 2025-11-22  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* gcc-changelog/git_commit.py: Add algol68.
! 
! 2025-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* make_sunver.pl ($elfdump): Remove ccs from path.
! 
! 2025-11-13  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-params-in-docs.py: Start parsing from
! 	@itemx --param=@var{name}=@var{value} instead of
! 	@item --param @var{name}=@var{value}.
! 
! 2025-11-12  Owen Avery  <powerboat9.gamer@gmail.com>
! 
! 	* gcc-changelog/git_commit.py (ignored_prefixes): Add
! 	'libgrust/rustc-lib/stdarch/'.
! 
! 2025-11-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR diagnostics/115970
! 	* sarif-listener.py: New file.
! 
! 2025-10-30  Owen Avery  <powerboat9.gamer@gmail.com>
! 
! 	* gcc-changelog/git_commit.py (ignored_prefixes): Add
! 	'libgrust/rustc-lib/core/'.
! 
! 2025-10-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties
! 
! 2025-10-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* unicode/README: Add HangulSyllableType.txt file to the
! 	list as newest utf8_gen.py from glibc now needs it.  Adjust
! 	git commit hash and change unicode 16 version to 17.
! 	* unicode/from_glibc/utf8_gen.py: Updated from glibc.
! 	* unicode/DerivedCoreProperties.txt: Updated from Unicode 17.0.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.
! 	* unicode/DerivedGeneralCategory.txt: Likewise.
! 	* unicode/HangulSyllableType.txt: New file.
! 
! 2025-10-05  Mark Wielaard  <mark@klomp.org>
! 
! 	* gcc-changelog/git_update_version.py (ignored_commits): Add
! 	commit b40ef6e9dc096c8c19399e94947a1965258a6942.
! 
! 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	Revert:
! 	2025-10-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties
! 
! 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc.doxy (INPUT): Add gcc/custom-sarif-properties
! 
! 2025-09-23  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_libstdcxx_unicode_data.py: Fix comment type.
! 
! 2025-09-22  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* unicode/gen_libstdcxx_unicode_data.py: Update comment at the
! 	top of the file to mention DerivedGeneralCategory.txt
! 	prerequisite.
! 
! 2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* uninclude: Add `lib/gcc/<anything>/include`.
! 
! 2025-09-10  Christophe Lyon  <christophe.lyon@linaro.org>
! 
! 	* compare_tests: Improve non-unique tests report when testing
! 	several configurations.
! 
! 2025-09-08  Christophe Lyon  <christophe.lyon@linaro.org>
! 
! 	* compare_tests: Report non-unique test names.
! 
! 2025-08-17  Filip Kastl  <fkastl@suse.cz>
! 
! 	* check-MAINTAINERS.py: Document the way the script sorts
! 	entries.
! 
! 2025-08-07  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	PR other/120237
! 	* download_prerequisites: Update to download GMP 6.3.0 (before 6.2.1),
! 	MPFR 4.2.2 (before 4.1.0), and MPC 1.3.1 (before 1.2.1).
! 	* prerequisites.md5: Update hash.
! 	* prerequisites.sha512: Likewise.
! 
! 2025-07-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc-changelog/git_commit.py: Add "diagnostics" to bug
! 	components.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* filter-clang-warnings.py: Update for move of
! 	diagnostic-path-output.cc to diagnostics/paths-output.cc.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc.doxy (INPUT): Add gcc/diagnostics subdir.
! 
! 2025-07-23  Sam James  <sam@gentoo.org>
! 
! 	PR other/105404
! 	* gcc-changelog/git_commit.py (ignored_prefixes): Add zlib/.
! 
! 2025-07-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* gcc.doxy (INPUT): Add directory "gcc/text-art".
! 
! 2025-07-11  Richard Biener  <rguenther@suse.de>
! 
! 	* gcc-changelog/git_update_version.py: Stop updating gcc-12
! 	branch.
! 
! 2025-07-08  Pierre-Emmanuel Patry  <pierre-emmanuel.patry@embecosm.com>
! 
! 	* prepare-commit-msg: Force default git prefixes.
! 
! 2025-07-07  Martin Jambor  <mjambor@suse.cz>
! 
! 	* filter-clang-warnings.py (skip_warning): Also ignore
! 	-Woverloaded-shift-op-parentheses, -Wunused-function,
! 	-Wunneeded-internal-declaration, -Wvla-cxx-extension', and
! 	-Wunused-command-line-argument everywhere and a warning about
! 	m_logical_loc_mgr in diagnostic-path-output.cc.  Adjust gimple-match
! 	and generic-match "filenames."  Ignore -Wnontrivial-memcall warnings
! 	in wide-int.h, all warnings about unused stuff in files under
! 	m2/gm2-compiler-boot, all -Wunused-private-field in rust FE, in
! 	analyzer/ana-state-to-diagnostic-state.h and c-family/c-format.cc, all
! 	Warnings in avr-mmcu.texi, install.texi and libgccjit.texi and all
! 	-Wc23-extensions warnings in libiberty/sha1.c. Ignore
! 	-Wunused-parameter in analyzer/sm.cc.  Reorder entries.
! 
! 2025-06-29  Filip Kastl  <fkastl@suse.cz>
! 
! 	* mklog.py: In 'main()', specify variable 'root' as global.
! 
! 2025-06-26  Alex Coplan  <alex.coplan@arm.com>
! 
! 	* mklog.py (main): New.
! 
! 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116792
! 	PR testsuite/116163
! 	PR sarif-replay/120792
! 	* dg-lint/dg-lint: Add -fdiagnostics-add-output.
! 	* dg-lint/libgdiagnostics.py: Add
! 	diagnostic_manager_add_sink_from_spec.
! 	(Manager.add_sink_from_spec): New.
! 
! 2025-06-23  Andrew Burgess  <aburgess@redhat.com>
! 
! 	* dg-extract-results.py: Handle GDB's unexpected core file count.
! 	* dg-extract-results.sh: Likewise.
! 
! 2025-05-27  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	* gen_autofdo_event.py: Add support for AMD Zen 3 and
! 	later CPUs.
! 
! 2025-05-23  Andi Kleen  <ak@gcc.gnu.org>
! 
! 	* diffsummary.py: New file.
! 
! 2025-05-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	* check_GNU_style_lib.py: Remove literal prefix.
! 
! 2025-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
! 
! 	* config-list.mk: Update FreeBSD targets to version 13.
! 
! 2025-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
! 
! 	* config-list.mk: Add m32c*-*-* to the list of obsoleted targets.
! 
! 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
  	* gennews (files): Add files for GCC 15.
  
! 2025-04-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc-changelog/git_update_version.py (active_refs): Add
! 	releases/gcc-15.
  
  2025-04-11  Tomasz Kamiński  <tkaminsk@redhat.com>
  
diff -Nrcpad gcc-15.2.0/contrib/analyze_brprob.py gcc-16.1.0-RC-20260423/contrib/analyze_brprob.py
*** gcc-15.2.0/contrib/analyze_brprob.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/analyze_brprob.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2026 Free Software Foundation, Inc.
  #
  # Script to analyze results of our branch prediction heuristics
  #
diff -Nrcpad gcc-15.2.0/contrib/analyze_brprob_spec.py gcc-16.1.0-RC-20260423/contrib/analyze_brprob_spec.py
*** gcc-15.2.0/contrib/analyze_brprob_spec.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/analyze_brprob_spec.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/bench-stringop gcc-16.1.0-RC-20260423/contrib/bench-stringop
*** gcc-15.2.0/contrib/bench-stringop	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/bench-stringop	Thu Apr 23 11:07:32 2026
***************
*** 4,10 ****
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 4,10 ----
  #
  # Contributed by Jan Hubicka <jh@suse.cz>
  #
! # Copyright (C) 2019-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/README gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/README
*** gcc-15.2.0/contrib/bpf-vmtest-tool/README	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/README	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,248 ----
+ BPF vmtest Tool
+ ===============
+ https://gcc.gnu.org/wiki/BPFRunTimeTests
+ 
+ This directory contains a Python script for running BPF programs or shell commands
+ under a live Linux kernel using QEMU virtual machines.
+ 
+ 
+ USAGE
+ =====
+ 
+ Before using the tool, you must set the directory where vmtest will look for 
+ kernels and store kernel artifacts. You can do this in two ways:
+ 
+ 1. Set the VMTEST_DIR environment variable
+ 2. Use the --vmtest-dir flag with each command
+ 
+ Note: This is required to use the tool.
+ 
+ 
+ Available Options
+ -----------------
+ 
+     usage: main.py [-h] [-v DEBUG|INFO|WARNING|ERROR] [--vmtest-dir DIR] {bpf,vmtest,kernel} ...
+ 
+     BPF vmtest tool
+ 
+     positional arguments:
+       {bpf,vmtest,kernel}   Available commands
+         bpf                 BPF program management
+         vmtest              Run VM tests
+         kernel              Kernel management
+ 
+     options:
+       -h, --help            show this help message and exit
+       -v DEBUG|INFO|WARNING|ERROR, --log-level DEBUG|INFO|WARNING|ERROR
+                             Log level
+       --vmtest-dir DIR      Directory for vmtest artifacts (or set VMTEST_DIR env variable)
+ 
+ COMMANDS
+ ========
+ 
+ kernel subcommand
+ -----------------
+ 
+ Manage kernel builds for use in virtual machines. You must build a 
+ kernel before using it.
+ 
+ Build a kernel:
+ 
+     python main.py --vmtest-dir="/home/user/.bpf-vmtest-tool" kernel build 6.15
+ 
+     The tool downloads and builds the specified kernel version from 
+     https://www.kernel.org/pub/linux/kernel and stores the build artifacts in 
+     $VMTEST_DIR/kernels/linux-6.15-x86_64. Specifically, it stores bpftool, 
+     libbpf.a, bzImage-6.15-x86_64, and vmlinux.h, which are used when compiling 
+     BPF programs instead of relying on the host system.
+ 
+ List available kernels:
+ 
+     python main.py --vmtest-dir="/home/user/.bpf-vmtest-tool" kernel list
+ 
+ Remove kernels:
+ 
+     python main.py --vmtest-dir="/home/user/.bpf-vmtest-tool" kernel remove 6.15-x86_64
+ 
+ Note: If the architecture is omitted, the host architecture is assumed. For
+ example, 6.15 is treated as 6.15-x86_64 on an x86_64 system.
+ 
+ 
+ vmtest subcommand
+ -----------------
+ 
+ Run BPF programs and commands inside a QEMU virtual machine with a live kernel.
+ 
+ Options:
+ 
+   -k VERSION, --kernel VERSION
+       Kernel version to boot in the VM. Must be a kernel previously built using
+       the "kernel build" subcommand. The kernel version should match the format
+       used during build (e.g., 6.15-x86_64 or just 6.15 for host architecture).
+       
+       Required: Yes
+ 
+   -r PATH, --rootfs PATH
+       Path to a root filesystem directory to mount in the VM.
+       If not specified, the host's root filesystem (/) is mounted by default.
+       
+       Required: No
+       Default: / (host root filesystem)
+       
+       See "Creating a Custom Rootfs" section below for how to build a rootfs from
+       a container image.
+ 
+   --bpf-src PATH
+       BPF C source file to compile and load. Mutually exclusive with --bpf-obj.
+ 
+   --bpf-obj PATH
+       Pre-compiled BPF object to load. Mutually exclusive with --bpf-src.
+ 
+   -c COMMAND, --command COMMAND
+       Shell command to run in VM.
+ 
+ At least one of --bpf-src, --bpf-obj, or --command is required.
+ 
+ 
+ 
+ Examples:
+ 
+   Run a shell command inside a live kernel VM:
+ 
+     python main.py vmtest -k 6.15 -c "uname -a"
+ 
+   Load and run a BPF source file with custom rootfs:
+ 
+     python main.py vmtest -k 6.15 --bpf-src fail.c -r $HOME/rootfs/debian-rootfs
+ 
+     The tool compiles the source file using BPF_CC with BPF_CFLAGS and the
+     kernel-specific vmlinux.h, then generates a skeleton from the compiled BPF
+     object using bpftool and compiles it with a generated loader to produce
+     the final userspace binary.
+ 
+   Load a precompiled BPF object file:
+ 
+     python main.py vmtest -k 6.15 --bpf-obj fail.bpf.o
+ 
+     The tool follows the same steps to generate the final userspace binary, except
+     it skips the BPF object compilation step.
+ 
+ 
+ 
+ Creating a Custom Rootfs:
+ 
+   You can build a rootfs from a container image using this script:
+ 
+     #!/usr/bin/env bash
+     set -euo pipefail
+ 
+     ROOT="$HOME/rootfs"
+     IMAGE_NAME="debian-bookworm-rootfs"
+     CTR_NAME="debian-rootfs-ctr"
+ 
+     cat <<'EOF' | podman build -t "$IMAGE_NAME" -
+     FROM debian:bookworm
+     RUN apt-get update && \
+         apt-get install -y --no-install-recommends \
+             libelf1 \
+             qemu-guest-agent \
+             && \
+         apt-get clean && \
+         rm -rf /var/lib/apt/lists/*
+     EOF
+ 
+     CTR_ID=$(podman create --name "$CTR_NAME" "$IMAGE_NAME")
+     podman export -o "$ROOT/deb.tar" "$CTR_ID"
+     tar -xf "$ROOT/deb.tar" -C "$ROOT/debian-rootfs"
+     podman rm "$CTR_NAME"
+     echo "Debian rootfs ready at: $ROOT/debian-rootfs"
+ 
+   After running this script, use the rootfs with:
+ 
+     python main.py vmtest -k 6.15 -r $HOME/rootfs/debian-rootfs -c "uname -a"
+ 
+ 
+ bpf subcommand
+ --------------
+ 
+ Compile BPF source code to bytecode using kernel-specific headers.
+ 
+ Options:
+ 
+   compile
+       Compile a BPF C source file to a BPF object file.
+ 
+   -k VERSION, --kernel VERSION
+       Kernel version to use for compilation. The tool will use the vmlinux.h
+       header from this kernel for the compilation.
+       
+       Required: Yes
+ 
+   -o OUTPUT, --output OUTPUT
+       Output path for the compiled BPF object file.
+       
+       Required: Yes
+ 
+ Example:
+ 
+     python main.py --vmtest-dir="/home/user/.bpf-vmtest-tool" bpf compile \
+         invalid-memory-access.c -k 6.15 -o /tmp/invalid-memory-access.bpf.o
+ 
+ The compilation stage can be modified using the BPF_CFLAGS environment variable
+ (default: -c)
+ 
+  Example :
+     
+     BPF_CFLAGS="-O2 -E" python main.py --vmtest-dir="/home/user/.bpf-vmtest-tool" \
+         bpf compile invalid-memory-access.c -k 6.15 -o /tmp/invalid-memory-access.bpf.o
+ 
+ LIMITATIONS
+ ===========
+ 
+ - Only x86_64 architecture is currently supported
+ 
+ 
+ DEPENDENCIES
+ ============
+ 
+ - Python >= 3.9
+ - vmtest >= v0.18.0 (https://github.com/danobi/vmtest)
+   - QEMU
+   - qemu-guest-agent (on guest filesystem)
+ 
+ For compiling kernels:
+ - pahole
+ - See https://docs.kernel.org/process/changes.html#current-minimal-requirements
+ 
+ For compiling and loading BPF programs:
+ - libbpf
+ - gcc-bpf-unknown-none (https://gcc.gnu.org/wiki/BPFBackEnd#Where_to_find_GCC_BPF)
+ 
+ 
+ BUILD FLAGS
+ ===========
+ 
+ You can customize compiler settings using environment variables:
+ 
+ - BPF_CC:          Compiler for the BPF program (default: bpf-unknown-none-gcc)
+ - BPF_CFLAGS:      Extra flags for BPF program compilation (default: "-O2 -Wall -Werror -c")
+ - BPF_INCLUDES:    Include paths for BPF (default: "-I/usr/local/include -I/usr/include")
+ - VMTEST_CC:       Compiler for the user-space loader (default: gcc)
+ - VMTEST_CFLAGS:   Flags for compiling the loader (default: "-g -Wall -Werror")
+ - VMTEST_LDFLAGS:  Linker flags for the loader (default: "-lelf -lz")
+ 
+ Example usage:
+ 
+     BPF_CFLAGS="-O3 -g" BPF_CC="/bpf-gcc-build/gcc/xgcc" \
+         python main.py vmtest -k 6.15 --bpf-src fail.c
+ 
+ 
+ DEVELOPMENT
+ ===========
+ 
+ Development dependencies are specified in pyproject.toml and can be installed
+ using any suitable Python virtual environment manager.
+ 
+ To run the test suite:
+ 
+     python3 -m pytest
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/bpf.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/bpf.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/bpf.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/bpf.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,218 ----
+ import re
+ import subprocess
+ import logging
+ from pathlib import Path
+ import sys
+ import tempfile
+ from typing import Optional
+ import utils
+ import config
+ import os
+ 
+ # Based on the compilation process described in:
+ # https://git.sr.ht/~brianwitte/gcc-bpf-example/tree/master/item/Makefile
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ def generate_sanitized_name(path: Path):
+     """generate sanitized c variable name"""
+     name = re.sub(r"\W", "_", path.stem)
+     if name and name[0].isdigit():
+         name = "_" + name
+     return name
+ 
+ 
+ class BPFProgram:
+     tmp_base_dir = tempfile.TemporaryDirectory(prefix="vmtest-")
+     tmp_base_dir_path = Path(tmp_base_dir.name)
+ 
+     def __init__(
+         self,
+         source_path: Optional[Path] = None,
+         bpf_bytecode_path: Optional[Path] = None,
+         use_temp_dir: bool = False,
+     ):
+         path = source_path or bpf_bytecode_path
+         self.name = generate_sanitized_name(path)
+         self.build_dir = self.__class__.tmp_base_dir_path / "ebpf_programs" / self.name
+ 
+         if source_path:
+             self.bpf_src = source_path
+             self.bpf_obj = self.build_dir / f"{self.name}.bpf.o"
+         else:
+             self.bpf_obj = bpf_bytecode_path
+         self.build_dir.mkdir(parents=True, exist_ok=True)
+         self.bpf_skel = self.build_dir / f"{self.name}.skel.h"
+         self.loader_src = self.build_dir / f"{self.name}-loader.c"
+         self.output = self.build_dir / f"{self.name}.bin"
+ 
+     @classmethod
+     def from_source(cls, source_path: Path, kernel_spec):
+         self = cls(source_path=source_path)
+         self._compile_bpf(kernel_spec)
+         self._compile_from_bpf_bytecode(kernel_spec)
+         return self.output
+ 
+     @classmethod
+     def from_bpf_obj(cls, obj_path: Path, kernel_spec):
+         self = cls(bpf_bytecode_path=obj_path)
+         self._compile_from_bpf_bytecode(kernel_spec)
+         return self.output
+ 
+     def compile_bpf(self, kernel_spec) -> Path:
+         if self.bpf_src is None:
+             raise ValueError(
+                 "Cannot compile BPF source: instance was created with "
+                 "bpf_bytecode_path instead of source_path"
+             )
+         self._compile_bpf(kernel_spec)
+         return self.bpf_obj
+ 
+     def _compile_from_bpf_bytecode(self, kernel_spec):
+         self._generate_skeleton(kernel_spec)
+         self._compile_loader(kernel_spec)
+ 
+     def _compile_bpf(self, kernel_spec):
+         """Compile the eBPF program using gcc"""
+         logger.info(f"Compiling eBPF source: {self.bpf_src}")
+         cmd = [
+             config.config.bpf_cc,
+             f"-D__TARGET_ARCH_{config.config.arch}",
+             "-gbtf",
+             "-std=gnu17",
+         ]
+         cmd.append(f"-I{kernel_spec.vmlinux_path.parent}")
+         cmd.extend(config.config.bpf_cflags.split(" "))
+         cmd.extend(config.config.bpf_includes.split(" "))
+         cmd.extend(
+             [
+                 str(self.bpf_src),
+                 "-o",
+                 str(self.bpf_obj),
+             ]
+         )
+         logger.debug("".join(cmd))
+         try:
+             utils.run_command(cmd, stream_output=True)
+         except subprocess.CalledProcessError as e:
+             logger.error(f"bpf compilation failed: {e}")
+             sys.exit(1)
+         logger.info(f"eBPF compiled: {self.bpf_obj}")
+ 
+     def _generate_skeleton(self, kernel_spec):
+         """Generate the BPF skeleton header using bpftool"""
+         logger.info(f"Generating skeleton: {self.bpf_skel}")
+         cmd = [
+             kernel_spec.bpftool_path,
+             "gen",
+             "skeleton",
+             str(self.bpf_obj),
+             "name",
+             self.name,
+         ]
+         try:
+             result = utils.run_command(cmd)
+             with open(self.bpf_skel, "w") as f:
+                 f.write(result.stdout)
+             logger.info("Skeleton generated.")
+         except subprocess.CalledProcessError:
+             logger.error("Failed to generate skeleton.")
+             sys.exit(1)
+ 
+     def _compile_loader(self, kernel_spec):
+         """Compile the C loader program"""
+         self._generate_loader()
+         logger.info(f"Compiling loader: {self.loader_src}")
+         cmd = [
+             config.config.vmtest_cc,
+             *config.config.vmtest_cflags.split(" "),
+             "-I",
+             str(self.build_dir),
+             str(self.loader_src),
+             kernel_spec.libbpf_path,
+             *config.config.vmtest_ldflags.split(" "),
+             "-o",
+             str(self.output),
+         ]
+         # remove variables that conflict with host compiler
+         clean_env = os.environ.copy()
+         clean_env.pop("GCC_EXEC_PREFIX", None)
+         try:
+             utils.run_command(cmd, env=clean_env, stream_output=True)
+         except subprocess.CalledProcessError as e:
+             logger.error(f"bpf loader compilation failed: {e}")
+             sys.exit(1)
+ 
+         logger.info("Compilation complete")
+ 
+     def _generate_loader(self):
+         """
+         Generate a loader C file for the given BPF skeleton.
+ 
+         Args:
+             bpf_name (str): Name of the BPF program (e.g. "prog").
+             output_path (str): Path to write loader.c.
+         """
+         skeleton_header = f"{self.name}.skel.h"
+         loader_code = f"""\
+         #include <stdio.h>
+         #include <stdlib.h>
+         #include <signal.h>
+         #include <unistd.h>
+         #include <bpf/libbpf.h>
+         #include "{skeleton_header}"
+ 
+         #define LOG_BUF_SIZE 1024 * 1024
+ 
+         static volatile sig_atomic_t stop;
+         static char log_buf[LOG_BUF_SIZE];
+ 
+         void handle_sigint(int sig) {{
+             stop = 1;
+         }}
+ 
+         int main() {{
+             struct {self.name} *skel;
+             struct bpf_program *prog;
+             int err;
+ 
+             signal(SIGINT, handle_sigint);
+ 
+             skel = {self.name}__open();  // STEP 1: open only
+             if (!skel) {{
+                 fprintf(stderr, "Failed to open BPF skeleton\\n");
+                 return 1;
+             }}
+ 
+             // STEP 2: Get the bpf_program object for the main program
+             bpf_object__for_each_program(prog, skel->obj) {{
+                 bpf_program__set_log_buf(prog, log_buf, sizeof(log_buf));
+                 bpf_program__set_log_level(prog, 1); // optional: verbose logs
+             }}
+ 
+             // STEP 3: Load the program (this will trigger verifier log output)
+             err = {self.name}__load(skel);
+             fprintf(
+ 		stderr,
+ 		"--- Verifier log start ---\\n"
+ 		"%s\\n"
+ 		"--- Verifier log end ---\\n",
+ 		log_buf
+ 		);
+             if (err) {{
+                 fprintf(stderr, "Failed to load BPF skeleton: %d\\n", err);
+                 {self.name}__destroy(skel);
+                 return 1;
+             }}
+ 
+             printf("BPF program loaded successfully.\\n");
+ 
+             {self.name}__destroy(skel);
+             return 0;
+         }}
+ 
+         """
+         with open(self.loader_src, "w") as f:
+             f.write(loader_code)
+         logger.info(f"Generated loader at {self.loader_src}")
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/config.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/config.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/config.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/config.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,50 ----
+ import platform
+ from pathlib import Path
+ import os
+ from dataclasses import dataclass
+ 
+ 
+ @dataclass
+ class VMTestConfig:
+     """Configuration for BPF vmtest tool"""
+ 
+     vmtest_dir: Path
+     kernel_tarball_url: str = "https://cdn.kernel.org/pub/linux/kernel/"
+     arch: str = platform.machine()
+     vmtest_cc: str = os.getenv("VMTEST_CC", "gcc")
+     vmtest_cflags: str = os.getenv("VMTEST_CFLAGS", "-g -Wall -Werror ")
+     vmtest_ldflags: str = os.getenv("VMTEST_LDFLAGS", "-lelf -lz")
+     bpf_cc: str = os.getenv("BPF_CC", "bpf-unknown-none-gcc")
+     bpf_cflags: str = os.getenv("BPF_CFLAGS", "-O2 -Wall -Werror -c")
+     bpf_includes: str = os.getenv("BPF_INCLUDES", "-I/usr/local/include -I/usr/include")
+ 
+     @property
+     def kconfig_rel_paths(self) -> list:
+         """Kernel config paths relative to kernel directory"""
+         return [
+             "tools/testing/selftests/bpf/config",
+             "tools/testing/selftests/bpf/config.vm",
+             f"tools/testing/selftests/bpf/config.{self.arch}",
+         ]
+ 
+     @property
+     def kernels_dir(self) -> Path:
+         """Get kernels directory"""
+         return self.vmtest_dir / "kernels"
+ 
+     def __post_init__(self):
+         """Validate vmtest_dir exists"""
+         if not self.vmtest_dir.exists():
+             raise ValueError(f"VMTEST_DIR does not exist: {self.vmtest_dir}")
+         if not self.vmtest_dir.is_dir():
+             raise ValueError(f"VMTEST_DIR is not a directory: {self.vmtest_dir}")
+ 
+ 
+ # Global config instance
+ config = None
+ 
+ 
+ def init_config(vmtest_dir: str):
+     """Initialize global config"""
+     global config
+     config = VMTestConfig(vmtest_dir=Path(vmtest_dir))
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/kernel.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/kernel.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/kernel.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/kernel.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,301 ----
+ import logging
+ import os
+ import shutil
+ import subprocess
+ from pathlib import Path
+ import re
+ import sys
+ from urllib.parse import urljoin
+ from urllib.request import urlretrieve
+ from typing import Optional, List
+ from dataclasses import dataclass
+ 
+ import config
+ import utils
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ @dataclass
+ class KernelSpec:
+     """Immutable kernel specification"""
+ 
+     version: str
+     arch: str | None = None
+ 
+     def __post_init__(self):
+         if self.arch is None or self.arch == "":
+             self.arch = config.config.arch
+         self.major = self.version.split(".")[0]
+ 
+     def __str__(self):
+         return f"{self.version}-{self.arch}"
+ 
+     @property
+     def kernel_build_dir(self) -> Path:
+         return config.config.kernels_dir / f"linux-{self}-build"
+ 
+     @property
+     def kernel_dir(self) -> Path:
+         return config.config.kernels_dir / f"linux-{self}"
+ 
+     @property
+     def bzimage_path(self) -> Path:
+         return self.kernel_dir / f"bzImage-{self}"
+ 
+     @property
+     def bpftool_path(self) -> Path:
+         return self.kernel_dir / "bpftool"
+ 
+     @property
+     def libbpf_path(self) -> Path:
+         return self.kernel_dir / "libbpf.a"
+ 
+     @property
+     def vmlinux_path(self) -> Path:
+         return self.kernel_dir / "vmlinux.h"
+ 
+     @property
+     def tarball_path(self) -> Path:
+         return config.config.kernels_dir / f"linux-{self}.tar.xz"
+ 
+ 
+ class KernelImage:
+     """Represents a compiled kernel image"""
+ 
+     def __init__(self, path: Path):
+         if not isinstance(path, Path):
+             path = Path(path)
+ 
+         if not path.exists():
+             raise FileNotFoundError(f"Kernel image not found: {path}")
+ 
+         self.path = path
+ 
+     def __str__(self):
+         return str(self.path)
+ 
+ 
+ class KernelCompiler:
+     """Handles complete kernel compilation process including download and build"""
+ 
+     @staticmethod
+     def _progress_hook(block_num: int, block_size: int, total_size: int) -> None:
+         """Progress hook for urlretrieve to display download progress"""
+         if total_size <= 0:
+             return
+ 
+         downloaded = block_num * block_size
+         percent = min(downloaded * 100 // total_size, 100)
+         bar_length = 10
+         filled = int(bar_length * downloaded // total_size)
+         bar = "#" * filled + "-" * (bar_length - filled)
+ 
+         if logger.getEffectiveLevel() <= logging.INFO:
+             downloaded_mb = downloaded / (1024 * 1024)
+             total_mb = total_size / (1024 * 1024)
+ 
+             if sys.stdout.isatty():
+                 sys.stdout.write(
+                     f"\rDownloading: |{bar}| {percent}% ({downloaded_mb:.2f}MB / {total_mb:.2f}MB)"
+                 )
+                 sys.stdout.flush()
+                 if downloaded >= total_size:
+                     sys.stdout.write("\n")
+                     sys.stdout.flush()
+             else:
+                 if downloaded >= total_size or downloaded % (block_size * 100) == 0:
+                     logger.info(
+                         f"Downloading: {percent}% ({downloaded_mb:.2f}MB / {total_mb:.2f}MB)"
+                     )
+ 
+     def compile_from_version(self, spec: KernelSpec) -> KernelImage:
+         """Complete compilation process from kernel version"""
+         if spec.bzimage_path.exists():
+             logger.info(f"Kernel {spec} already exists, skipping compilation")
+             return KernelImage(spec.bzimage_path)
+ 
+         try:
+             self._download_source(spec)
+             self._extract_source(spec)
+             self._configure_kernel(spec)
+             self._compile_kernel(spec)
+             self._copy_bzimage(spec)
+ 
+             logger.info(f"Successfully compiled kernel {spec}")
+             return KernelImage(spec.bzimage_path)
+ 
+         except Exception as e:
+             logger.error(f"Failed to compile kernel {spec}: {e}")
+             sys.exit(1)
+         finally:
+             # Always cleanup temporary files
+             self._cleanup(spec)
+ 
+     def _download_source(self, spec: KernelSpec) -> None:
+         """Download kernel source tarball"""
+         if spec.tarball_path.exists():
+             logger.info(f"Tarball already exists: {spec.tarball_path}")
+             return
+ 
+         url_suffix = f"v{spec.major}.x/linux-{spec.version}.tar.xz"
+         url = urljoin(config.config.kernel_tarball_url, url_suffix)
+ 
+         logger.info(f"Downloading kernel from {url}")
+         spec.tarball_path.parent.mkdir(parents=True, exist_ok=True)
+         urlretrieve(url, spec.tarball_path, reporthook=self._progress_hook)
+         logger.info("Kernel source downloaded")
+ 
+     def _extract_source(self, spec: KernelSpec) -> None:
+         """Extract kernel source tarball"""
+         logger.info(f"Extracting kernel source to {spec.kernel_build_dir}")
+         spec.kernel_build_dir.mkdir(parents=True, exist_ok=True)
+ 
+         utils.run_command(
+             [
+                 "tar",
+                 "-xf",
+                 str(spec.tarball_path),
+                 "-C",
+                 str(spec.kernel_build_dir),
+                 "--strip-components=1",
+             ]
+         )
+ 
+     def _configure_kernel(self, spec: KernelSpec) -> None:
+         """Configure kernel with provided config files"""
+         config_path = spec.kernel_build_dir / ".config"
+ 
+         with open(config_path, "wb") as kconfig:
+             for config_rel_path in config.config.kconfig_rel_paths:
+                 config_abs_path = spec.kernel_build_dir / config_rel_path
+                 if config_abs_path.exists():
+                     with open(config_abs_path, "rb") as conf:
+                         kconfig.write(conf.read())
+ 
+         logger.info("Updated kernel configuration")
+ 
+     def _compile_kernel(self, spec: KernelSpec) -> None:
+         """Compile the kernel"""
+         logger.info(f"Compiling kernel in {spec.kernel_build_dir}")
+         old_cwd = os.getcwd()
+ 
+         try:
+             os.chdir(spec.kernel_build_dir)
+             # pahole is required for the DEBUG_INFO_BTF kernel configuration option.
+             pahole_path = shutil.which("pahole")
+             if pahole_path is None:
+                 logger.error(
+                     "pahole not found in PATH. BTF generation requires pahole v1.16 or later."
+                 )
+                 sys.exit(1)
+             friendly_cores = os.cpu_count() - 2
+             utils.run_command(["make", "olddefconfig"], stream_output=True)
+             logger.info("Starting kernel compilation")
+             utils.run_command(
+                 ["make", f"-j{friendly_cores}", "bzImage"], stream_output=True
+             )
+             logger.info("Compiling bpftool")
+             utils.run_command(
+                 ["make", "-C", "tools/bpf", f"-j{friendly_cores}", "bpftool"],
+                 stream_output=True,
+             )
+             logger.info("Compiling libbpf")
+             utils.run_command(
+                 ["make", "-C", "tools/lib/bpf", f"-j{friendly_cores}"],
+                 stream_output=True,
+             )
+         except subprocess.CalledProcessError as e:
+             logger.error(f"Kernel compilation failed: {e}")
+             sys.exit(1)
+         finally:
+             os.chdir(old_cwd)
+ 
+     def _copy_bzimage(self, spec: KernelSpec) -> None:
+         """Copy compiled bzImage to final location"""
+         # compile the bpftool as well
+         src = spec.kernel_build_dir / "arch/x86/boot/bzImage"
+         dest = spec.bzimage_path
+         dest.parent.mkdir(parents=True, exist_ok=True)
+ 
+         shutil.copy2(src, dest)
+         logger.info(f"Stored bzImage at {dest}")
+ 
+         shutil.copy2(
+             spec.kernel_build_dir / "tools/bpf/bpftool/vmlinux.h", spec.vmlinux_path
+         )
+         logger.info(f"Stored vmlinux at {spec.vmlinux_path}")
+ 
+         shutil.copy2(
+             spec.kernel_build_dir / "tools/bpf/bpftool/bpftool", spec.bpftool_path
+         )
+         logger.info(f"Stored bpftool at {spec.bpftool_path}")
+ 
+         shutil.copy2(spec.kernel_build_dir / "tools/lib/bpf/libbpf.a", spec.libbpf_path)
+         logger.info(f"Stored libbpf at {spec.libbpf_path}")
+ 
+     def _cleanup(self, spec: KernelSpec) -> None:
+         """Clean up temporary files"""
+         if spec.tarball_path.exists():
+             spec.tarball_path.unlink()
+             logger.info("Removed tarball")
+ 
+         if spec.kernel_build_dir.exists():
+             shutil.rmtree(spec.kernel_build_dir)
+             logger.info("Removed kernel source directory")
+ 
+ 
+ class KernelManager:
+     """Main interface for kernel management"""
+ 
+     def __init__(self):
+         self.compiler = KernelCompiler()
+ 
+     def remove_kernel(self, name: str) -> None:
+         """Remove compiled kernel by version"""
+         version, _, arch = name.partition("-")
+         spec = KernelSpec(version=version, arch=arch)
+         if spec.kernel_dir.exists():
+             shutil.rmtree(spec.kernel_dir)
+             logger.info(f"Removed kernel {spec}")
+         else:
+             logger.error(
+                 f"Kernel {spec} does not exist, path {spec.kernel_dir} not found"
+             )
+             raise SystemExit(1)
+ 
+     def build_kernel(self, version: str, arch=None) -> None:
+         """Build kernel from version"""
+ 
+         spec = KernelSpec(version=version, arch=arch)
+         self.compiler.compile_from_version(spec)
+ 
+     @staticmethod
+     def get_kernel_from_version(
+         version: str,
+     ):
+         """Get kernel image from version"""
+         version, _, arch = version.partition("-")
+         spec = KernelSpec(version=version, arch=arch)
+         if spec.bzimage_path.exists():
+             return spec, KernelImage(spec.bzimage_path)
+         else:
+             raise FileNotFoundError(
+                 f"Kernel {spec} not found. Use 'main.py kernel build' to create it."
+             )
+ 
+     def list_kernels(self) -> List[str]:
+         """List all available compiled kernels"""
+         if not config.config.kernels_dir.exists():
+             raise FileNotFoundError(
+                 f"Kernels directory not found: {config.config.kernels_dir}"
+             )
+ 
+         kernels = []
+         for file in config.config.kernels_dir.glob("linux-*"):
+             if file.is_dir():
+                 match = re.match(r"linux-(.*)", file.name)
+                 if match:
+                     kernels.append(match.group(1))
+ 
+         return sorted(kernels)
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/main.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/main.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/main.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/main.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,285 ----
+ import argparse
+ import logging
+ from pathlib import Path
+ import sys
+ import textwrap
+ import os
+ 
+ import bpf
+ import kernel
+ import vm
+ import config
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ def cmd_kernel_list(args):
+     """List all available kernels"""
+     kmanager = kernel.KernelManager()
+     kernels = kmanager.list_kernels()
+     if kernels:
+         for k in kernels:
+             print(k)
+     else:
+         logger.info("No kernels available")
+ 
+ 
+ def cmd_kernel_remove(args):
+     """Remove a kernel"""
+     kmanager = kernel.KernelManager()
+     if not args.kernel:
+         logger.error("kernel version required for remove action")
+         sys.exit(1)
+     kmanager.remove_kernel(args.kernel)
+     logger.info(f"Kernel {args.kernel} removed")
+     print(f"Kernel {args.kernel} removed")
+ 
+ 
+ def cmd_kernel_build(args):
+     """Build a kernel"""
+     kmanager = kernel.KernelManager()
+     if not args.kernel:
+         logger.error("kernel version required for build action")
+         sys.exit(1)
+     kmanager.build_kernel(version=args.kernel)
+ 
+ 
+ def cmd_bpf_compile(args):
+     """Compile BPF source to bytecode only"""
+     kmanager = kernel.KernelManager()
+ 
+     try:
+         kernel_spec, _ = kmanager.get_kernel_from_version(version=args.kernel)
+     except Exception as e:
+         logger.error(f"Failed to get kernel: {e}")
+         sys.exit(1)
+ 
+     try:
+         bpf_program = bpf.BPFProgram(source_path=Path(args.bpf_src))
+         output_path = bpf_program.compile_bpf(kernel_spec)
+ 
+         if args.output:
+             import shutil
+ 
+             output_dest = Path(args.output)
+             shutil.copy2(output_path, output_dest)
+             logger.info(f"Copied to: {output_dest}")
+ 
+     except Exception as e:
+         logger.error(f"Failed to compile BPF source: {e}")
+         sys.exit(1)
+ 
+ 
+ def cmd_vmtest(args):
+     """Handle vmtest subcommand"""
+     kmanager = kernel.KernelManager()
+ 
+     try:
+         kernel_spec, kernel_image = kmanager.get_kernel_from_version(
+             version=args.kernel
+         )
+     except Exception as e:
+         logger.error(f"Failed to get kernel: {e}")
+         sys.exit(1)
+ 
+     try:
+         if args.bpf_src:
+             command = bpf.BPFProgram.from_source(Path(args.bpf_src), kernel_spec)
+         elif args.bpf_obj:
+             command = bpf.BPFProgram.from_bpf_obj(Path(args.bpf_obj), kernel_spec)
+         elif args.command:
+             command = args.command
+     except Exception as e:
+         logger.error(f"Failed to prepare command for vmtest: {e}")
+         sys.exit(1)
+ 
+     virtual_machine = vm.VirtualMachine(kernel_image, args.rootfs, str(command))
+     try:
+         result = virtual_machine.execute()
+     except vm.BootFailedError as e:
+         logger.error(f"VM boot failure: {e}")
+         sys.exit(e.returncode)
+ 
+     if args.bpf_src or args.bpf_obj:
+         if result.returncode == 0:
+             print("BPF programs successfully loaded")
+         else:
+             if "Failed to load BPF skeleton" in result.stdout:
+                 print("BPF program failed to load")
+                 print("Verifier logs:")
+                 print(textwrap.indent(vm.bpf_verifier_logs(result.stdout), "\t"))
+     elif args.command:
+         print(result.stdout)
+ 
+     sys.exit(result.returncode)
+ 
+ 
+ def main():
+     parser = argparse.ArgumentParser(
+         description="BPF vmtest tool",
+         formatter_class=argparse.RawDescriptionHelpFormatter,
+         epilog=textwrap.dedent("""
+             Examples:
+               # Compile BPF source to bytecode
+               %(prog)s bpf compile my_prog.bpf.c -o my_prog.bpf.o
+               
+               # Run BPF program in VM
+               %(prog)s vmtest --kernel 6.15-x86_64 --bpf-src my_prog.bpf.c
+               
+               # List available kernels
+               %(prog)s kernel list
+         """),
+     )
+ 
+     parser.add_argument(
+         "-v",
+         "--log-level",
+         help="Log level",
+         metavar="DEBUG|INFO|WARNING|ERROR",
+         choices=["DEBUG", "INFO", "WARNING", "ERROR"],
+         default="INFO",
+     )
+ 
+     parser.add_argument(
+         "--vmtest-dir",
+         help="Directory for vmtest artifacts (or set VMTEST_DIR env variable)",
+         metavar="DIR",
+         type=str,
+         default=os.getenv("VMTEST_DIR"),
+     )
+ 
+     subparsers = parser.add_subparsers(dest="subcommand", help="Available commands")
+ 
+     # BPF subcommand
+     bpf_subparser = subparsers.add_parser("bpf", help="BPF program management")
+     bpf_subparsers = bpf_subparser.add_subparsers(dest="bpf_action", help="BPF actions")
+ 
+     # bpf compile subcommand
+     compile_parser = bpf_subparsers.add_parser(
+         "compile", help="Compile BPF source to bytecode (.bpf.o)"
+     )
+     compile_parser.add_argument(
+         "bpf_src",
+         help="Path to BPF C source file",
+         type=str,
+     )
+     compile_parser.add_argument(
+         "-o",
+         "--output",
+         help="Output path for compiled bytecode (optional, defaults to temp dir)",
+         metavar="PATH",
+         type=str,
+         required=True,
+     )
+     compile_parser.add_argument(
+         "-k",
+         "--kernel",
+         help="Kernel version to use for compilation",
+         metavar="VERSION",
+         type=str,
+         required=True,
+     )
+ 
+     compile_parser.set_defaults(func=cmd_bpf_compile)
+ 
+     # VMtest subcommand
+     vmtest_parser = subparsers.add_parser("vmtest", help="Run VM tests")
+     vmtest_parser.set_defaults(func=cmd_vmtest)
+ 
+     vmtest_parser.add_argument(
+         "-k",
+         "--kernel",
+         help="Kernel version to boot in the vm",
+         metavar="VERSION",
+         type=str,
+         required=True,
+     )
+     vmtest_parser.add_argument(
+         "-r", "--rootfs", help="rootfs to mount in the vm", default="/", metavar="PATH"
+     )
+     command_group = vmtest_parser.add_mutually_exclusive_group(required=True)
+     command_group.add_argument(
+         "--bpf-src",
+         help="Path to BPF C source file",
+         metavar="PATH",
+         type=str,
+     )
+     command_group.add_argument(
+         "--bpf-obj",
+         help="Path to bpf bytecode object",
+         metavar="PATH",
+         type=str,
+     )
+     command_group.add_argument(
+         "-c", "--command", help="command to run in the vm", metavar="COMMAND"
+     )
+ 
+     # Kernel subcommand with nested subcommands
+     kernel_subparser = subparsers.add_parser("kernel", help="Kernel management")
+     kernel_subparsers = kernel_subparser.add_subparsers(
+         dest="kernel_action", help="Kernel actions"
+     )
+ 
+     # kernel list subcommand
+     list_parser = kernel_subparsers.add_parser(
+         "list", help="List all available kernels"
+     )
+     list_parser.set_defaults(func=cmd_kernel_list)
+ 
+     # kernel remove subcommand
+     remove_parser = kernel_subparsers.add_parser("remove", help="Remove a kernel")
+     remove_parser.add_argument(
+         "kernel", help="Kernel version to remove (e.g., 6.15-x86_64)"
+     )
+     remove_parser.set_defaults(func=cmd_kernel_remove)
+ 
+     # kernel build subcommand
+     build_parser = kernel_subparsers.add_parser("build", help="Build a kernel")
+     build_parser.add_argument(
+         "kernel", help="Kernel version to build (e.g. 6.15-x86_64)"
+     )
+     build_parser.set_defaults(func=cmd_kernel_build)
+ 
+     args = parser.parse_args()
+     logging.basicConfig(level=args.log_level, format="%(levelname)s: %(message)s")
+ 
+     if not args.vmtest_dir:
+         logger.error(
+             "VMTEST_DIR not specified. Use --vmtest-dir=DIR or set VMTEST_DIR environment variable"
+         )
+         sys.exit(1)
+ 
+     vmtest_path = Path(args.vmtest_dir)
+     if not vmtest_path.exists():
+         logger.error(f"VMTEST_DIR does not exist: {vmtest_path}")
+         sys.exit(1)
+ 
+     if not vmtest_path.is_dir():
+         logger.error(f"VMTEST_DIR is not a directory: {vmtest_path}")
+         sys.exit(1)
+ 
+     try:
+         config.init_config(vmtest_dir=args.vmtest_dir)
+     except ValueError as e:
+         logger.error(str(e))
+         sys.exit(1)
+ 
+     logger.debug(f"VMTEST_DIR set to: {args.vmtest_dir}")
+ 
+     if hasattr(args, "func"):
+         args.func(args)
+         sys.exit(0)
+     else:
+         parser.print_help()
+         sys.exit(1)
+ 
+ 
+ if __name__ == "__main__":
+     try:
+         main()
+     except KeyboardInterrupt:
+         logger.error("Operation cancelled by user")
+         sys.exit(1)
+     except Exception as e:
+         logger.error(f"Unknown error: {e}")
+         sys.exit(1)
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/pyproject.toml gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/pyproject.toml
*** gcc-15.2.0/contrib/bpf-vmtest-tool/pyproject.toml	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/pyproject.toml	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,36 ----
+ [project]
+ name = "bpf-vmtest-tool"
+ version = "0.1.0"
+ description = "Test BPF code against live kernels"
+ readme = "README.md"
+ requires-python = ">=3.9"
+ dependencies = []
+ 
+ [dependency-groups]
+ dev = [
+     "pre-commit>=4.2.0",
+     "pytest>=8.4.0",
+     "pytest-sugar>=1.0.0",
+     "ruff>=0.11.13",
+     "tox>=4.26.0",
+ ]
+ 
+ [tool.pytest.ini_options]
+ addopts = [
+     "--import-mode=importlib",
+ ]
+ testpaths = ["tests"]
+ pythonpath = ["."]
+ 
+ [tool.ruff.lint]
+ select = [
+     # pycodestyle
+     "E",
+     # Pyflakes
+     "F",
+ ]
+ # Allow fix for all enabled rules (when `--fix`) is provided.
+ fixable = ["ALL"]
+ 
+ # Allow unused variables when underscore-prefixed.
+ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/tests/test_cli.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/tests/test_cli.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/tests/test_cli.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/tests/test_cli.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,219 ----
+ import sys
+ from unittest import mock
+ import pytest
+ from bpf import BPFProgram
+ import kernel
+ import main
+ import logging
+ import config
+ import os
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ @pytest.fixture
+ def tmp_config():
+     VMTEST_DIR = "/home/d3bug/.bpf-vmtest-tool"
+     assert VMTEST_DIR is not None, "Specify VMTEST_DIR environment varible"
+     config.init_config(vmtest_dir=VMTEST_DIR)
+ 
+ 
+ # reset config for every test
+ @pytest.fixture(autouse=True)
+ def reset_config():
+     config.config = None
+ 
+ 
+ @pytest.fixture
+ def openat_bpf_source(tmp_path):
+     openat_bpf = tmp_path / "openat_bpf.c"
+     openat_bpf.write_text(r"""
+     #include "vmlinux.h"
+     #include <bpf/bpf_helpers.h>
+     #include <bpf/bpf_tracing.h>
+     #include <bpf/bpf_core_read.h>
+ 
+     char LICENSE[] SEC("license") = "GPL";
+ 
+     int example_pid = 0;
+ 
+     SEC("tracepoint/syscalls/sys_enter_openat")
+     int handle_openat(struct trace_event_raw_sys_enter *ctx)
+     {
+         int pid = bpf_get_current_pid_tgid() >> 32;
+         char filename[256]; // filename buffer
+         bpf_probe_read_user(&filename, sizeof(filename), (void *)ctx->args[1]);
+         bpf_printk("sys_enter_openat() called from PID %d for file: %s\n", pid,
+             filename);
+ 
+         return 0;
+     }
+ 
+     """)
+     return openat_bpf
+ 
+ 
+ @pytest.fixture
+ def openat_bpf_obj(openat_bpf_source, tmp_config):
+     def _create_openat_bpf_obj(kernel_spec):
+         bpf_program = BPFProgram(source_path=openat_bpf_source)
+         bpf_program._compile_bpf(kernel_spec)
+         return bpf_program.bpf_obj
+ 
+     return _create_openat_bpf_obj
+ 
+ 
+ @pytest.fixture
+ def invalid_memory_access_bpf_source(tmp_path):
+     invalid_memory_access_bpf = tmp_path / "invalid_memory_access_bpf.c"
+     invalid_memory_access_bpf.write_text(r"""
+     #include "vmlinux.h"
+     #include <bpf/bpf_helpers.h>
+     #include <bpf/bpf_tracing.h>
+ 
+     char LICENSE[] SEC("license") = "GPL";
+ 
+     SEC("tracepoint/syscalls/sys_enter_openat")
+     int bpf_prog(struct trace_event_raw_sys_enter *ctx) {
+         int arr[4] = {1, 2, 3, 4};
+ 
+         // Invalid memory access: out-of-bounds
+         int val = arr[5];  // This causes the verifier to fail
+ 
+         return val;
+     }
+     """)
+     return invalid_memory_access_bpf
+ 
+ 
+ @pytest.fixture
+ def invalid_memory_access_bpf_obj(invalid_memory_access_bpf_source, tmp_config):
+     def _create_invalid_memory_access_bpf_obj(kernel_spec):
+         bpf_program = BPFProgram(source_path=invalid_memory_access_bpf_source)
+         bpf_program._compile_bpf(kernel_spec)
+         return bpf_program.bpf_obj
+ 
+     return _create_invalid_memory_access_bpf_obj
+ 
+ 
+ def run_main_with_args_and_capture_output(args, capsys):
+     with mock.patch.object(sys, "argv", args):
+         try:
+             main.main()
+         except SystemExit as e:
+             result = capsys.readouterr()
+             output = result.out.rstrip()
+             error = result.err.rstrip()
+             logger.debug("STDOUT:\n%s", output)
+             logger.debug("STDERR:\n%s", error)
+             return (e.code, output, error)
+         except Exception as e:
+             pytest.fail(f"Unknown error happend: {e}")
+         else:
+             pytest.fail("Expected main to raise SystemExit")
+ 
+ 
+ KERNEL_VERSION = "6.16"
+ kernel_cli_flags = [["--kernel", KERNEL_VERSION]]
+ 
+ 
+ @pytest.mark.parametrize("kernel_args", kernel_cli_flags)
+ class TestCLI:
+     def test_main_with_valid_bpf(self, kernel_args, openat_bpf_source, capsys):
+         args = [
+             "main.py",
+             "vmtest",
+             *kernel_args,
+             "--rootfs",
+             "/",
+             "--bpf-src",
+             str(openat_bpf_source),
+         ]
+         code, output, _ = run_main_with_args_and_capture_output(args, capsys)
+         assert code == 0
+         assert "BPF programs successfully loaded" == output
+ 
+     def test_main_with_valid_bpf_obj(self, kernel_args, openat_bpf_obj, capsys):
+         args = [
+             "main.py",
+             "vmtest",
+             *kernel_args,
+             "--rootfs",
+             "/",
+             "--bpf-obj",
+             str(openat_bpf_obj(kernel.KernelSpec(kernel_args[1]))),
+         ]
+         code, output, _ = run_main_with_args_and_capture_output(args, capsys)
+         assert code == 0
+         assert "BPF programs successfully loaded" == output
+ 
+     def test_main_with_invalid_bpf(
+         self, kernel_args, invalid_memory_access_bpf_source, capsys
+     ):
+         args = [
+             "main.py",
+             "vmtest",
+             *kernel_args,
+             "--rootfs",
+             "/",
+             "--bpf-src",
+             str(invalid_memory_access_bpf_source),
+         ]
+         code, output, _ = run_main_with_args_and_capture_output(args, capsys)
+         output_lines = output.splitlines()
+         assert code == 1
+         assert "BPF program failed to load" == output_lines[0]
+         assert "Verifier logs:" == output_lines[1]
+ 
+     def test_main_with_invalid_bpf_obj(
+         self, kernel_args, invalid_memory_access_bpf_obj, capsys
+     ):
+         args = [
+             "main.py",
+             "vmtest",
+             *kernel_args,
+             "--rootfs",
+             "/",
+             "--bpf-obj",
+             str(invalid_memory_access_bpf_obj(kernel.KernelSpec(kernel_args[1]))),
+         ]
+         code, output, _ = run_main_with_args_and_capture_output(args, capsys)
+         output_lines = output.splitlines()
+         assert code == 1
+         assert "BPF program failed to load" == output_lines[0]
+         assert "Verifier logs:" == output_lines[1]
+ 
+     def test_main_with_valid_command(self, kernel_args, capsys):
+         args = ["main.py", "vmtest", *kernel_args, "--rootfs", "/", "-c", "uname -r"]
+         code, output, _ = run_main_with_args_and_capture_output(args, capsys)
+         assert code == 0
+         assert f"{kernel_args[1]}.0" in output
+ 
+     def test_main_with_invalid_command(self, kernel_args, capsys):
+         args = [
+             "main.py",
+             "vmtest",
+             *kernel_args,
+             "--rootfs",
+             "/",
+             "-c",
+             "NotImplemented",
+         ]
+         code, output, error = run_main_with_args_and_capture_output(args, capsys)
+         assert code != 0
+         assert f"Command failed with exit code: {code}" in output
+ 
+     def test_bpf_compile_subcommand(
+         self, kernel_args, openat_bpf_source, tmp_path, capsys
+     ):
+         args = [
+             "main.py",
+             "bpf",
+             "compile",
+             *kernel_args,
+             "-o",
+             "",
+             str(openat_bpf_source),
+         ]
+         code, _, _ = run_main_with_args_and_capture_output(args, capsys)
+         assert code == 0
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/utils.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/utils.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/utils.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/utils.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,31 ----
+ import subprocess
+ import logging
+ from typing import Any
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ def run_command(cmd: list[str], stream_output: bool = False, **kwargs: Any):
+     cleaned_cmd = [str(item) for item in cmd if str(item).strip()]
+     capture_cmd_output = not stream_output
+     try:
+         logger.debug(f"running command: {cleaned_cmd}")
+         result = subprocess.run(
+             cleaned_cmd,
+             text=True,
+             check=True,
+             capture_output=capture_cmd_output,
+             shell=False,
+             **kwargs,
+         )
+         if capture_cmd_output:
+             logger.debug("Command stdout:\n" + result.stdout.strip())
+             if result.stderr:
+                 logger.debug("Command stderr:\n" + result.stderr.strip())
+         return result
+     except subprocess.CalledProcessError as e:
+         logger.error(e)
+         if capture_cmd_output:
+             logger.error("Command failed with stdout: %s", e.stdout.strip())
+             logger.error("Command failed with stderr: %s", e.stderr.strip())
+         raise
diff -Nrcpad gcc-15.2.0/contrib/bpf-vmtest-tool/vm.py gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/vm.py
*** gcc-15.2.0/contrib/bpf-vmtest-tool/vm.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/bpf-vmtest-tool/vm.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,175 ----
+ import logging
+ from pathlib import Path
+ import subprocess
+ from typing import List
+ 
+ from kernel import KernelImage
+ 
+ logger = logging.getLogger(__name__)
+ 
+ 
+ class VMConfig:
+     """Configuration container for VM settings"""
+ 
+     def __init__(
+         self, kernel_image: KernelImage, rootfs_path: str, command: str, **kwargs
+     ):
+         self.kernel = kernel_image
+         self.kernel_path = str(kernel_image.path)
+         self.rootfs_path = rootfs_path
+         self.command = command
+         self.memory_mb = kwargs.get("memory_mb", 512)
+         self.cpu_count = kwargs.get("cpu_count", 1)
+         self.extra_args = kwargs.get("extra_args", {})
+ 
+ 
+ def bpf_verifier_logs(output: str) -> str:
+     start_tag = "--- Verifier log start ---"
+     end_tag = "--- Verifier log end ---"
+ 
+     start_idx = output.find(start_tag)
+     end_idx = output.find(end_tag)
+ 
+     if start_idx != -1 and end_idx != -1:
+         # Extract between the tags (excluding the markers themselves)
+         log_body = output[start_idx + len(start_tag) : end_idx].strip()
+         return log_body
+     else:
+         return "No verifier log found in the output."
+ 
+ 
+ class Vmtest:
+     """vmtest backend implementation"""
+ 
+     def __init__(self):
+         pass
+ 
+     def _boot_command(self, vm_config: VMConfig):
+         vmtest_command = ["vmtest"]
+         vmtest_command.extend(["-k", vm_config.kernel_path])
+         vmtest_command.extend(["-r", vm_config.rootfs_path])
+         # If it is a compiled BPF program, use the mounted path inside the VM
+         if vm_config.command.endswith(".bin"):
+             vmtest_command.append("/mnt/vmtest/" + Path(vm_config.command).name)
+         else: 
+             vmtest_command.append(vm_config.command)
+         return vmtest_command
+ 
+     def _remove_boot_log(self, full_output: str) -> str:
+         """
+         Filters QEMU and kernel boot logs, returning only the output after the
+         `===> Running command` marker.
+         """
+         marker = "===> Running command"
+         lines = full_output.splitlines()
+ 
+         try:
+             start_index = next(i for i, line in enumerate(lines) if marker in line)
+             # Return everything after that marker (excluding the marker itself)
+             return "\n".join(lines[start_index + 1 :]).strip()
+         except StopIteration:
+             return full_output.strip()
+ 
+     def run_command(self, vm_config):
+         vm = None
+         try:
+             logger.info(f"Booting VM with kernel: {vm_config.kernel_path}")
+             logger.info(f"Using rootfs: {vm_config.rootfs_path}")
+             vm = subprocess.run(
+                 self._boot_command(vm_config),
+                 check=True,
+                 text=True,
+                 capture_output=True,
+                 shell=False,
+                 cwd=Path(vm_config.command).parent,
+             )
+             vm_stdout = vm.stdout
+             logger.debug(vm_stdout)
+             return VMCommandResult(
+                 vm.returncode, self._remove_boot_log(vm_stdout), None
+             )
+         except FileNotFoundError:
+             raise BootFailedError(
+                 "vmtest command not found in PATH. Please ensure vmtest is installed and available in your system PATH."
+             )
+         except subprocess.CalledProcessError as e:
+             out = e.stdout
+             err = e.stderr
+             # when the command in the vm fails we consider it as a successful boot
+             if "===> Running command" not in out:
+                 raise BootFailedError("Boot failed", out, err, e.returncode)
+             logger.debug("STDOUT: \n%s", out)
+             logger.debug("STDERR: \n%s", err)
+             return VMCommandResult(e.returncode, self._remove_boot_log(out), err)
+ 
+ 
+ class VMCommandResult:
+     def __init__(self, returncode, stdout, stderr) -> None:
+         self.returncode = returncode
+         self.stdout = stdout
+         self.stderr = stderr
+ 
+ 
+ class VirtualMachine:
+     """Main VM class - simple interface for end users"""
+ 
+     # Registry of available hypervisors
+     _hypervisors = {
+         "vmtest": Vmtest,
+     }
+ 
+     def __init__(
+         self,
+         kernel_image: KernelImage,
+         rootfs_path: str,
+         command: str,
+         hypervisor_type: str = "vmtest",
+         **kwargs,
+     ):
+         self.config = VMConfig(kernel_image, rootfs_path, command, **kwargs)
+ 
+         if hypervisor_type not in self._hypervisors:
+             raise ValueError(f"Unsupported hypervisor: {hypervisor_type}")
+ 
+         self.hypervisor = self._hypervisors[hypervisor_type]()
+ 
+     @classmethod
+     def list_hypervisors(cls) -> List[str]:
+         """List available hypervisors"""
+         return list(cls._hypervisors.keys())
+ 
+     def execute(self):
+         """Execute command in VM"""
+         return self.hypervisor.run_command(self.config)
+ 
+ 
+ class BootFailedError(Exception):
+     """Raised when VM fails to boot properly (before command execution)."""
+ 
+     def __init__(
+         self, message: str, stdout: str = "", stderr: str = "", returncode: int = -1
+     ):
+         super().__init__(message)
+         self.stdout = stdout
+         self.stderr = stderr
+         self.returncode = returncode
+ 
+     def __str__(self):
+         base = super().__str__()
+ 
+         output_parts = [
+             base,
+             f"Return code: {self.returncode}",
+         ]
+ 
+         optional_sections = [
+             ("STDOUT", self.stdout),
+             ("STDERR", self.stderr),
+         ]
+ 
+         for header, content in optional_sections:
+             if content:
+                 output_parts.append(f"--- {header} ---")
+                 output_parts.append(content)
+ 
+         return "\n".join(output_parts)
diff -Nrcpad gcc-15.2.0/contrib/check-MAINTAINERS.py gcc-16.1.0-RC-20260423/contrib/check-MAINTAINERS.py
*** gcc-15.2.0/contrib/check-MAINTAINERS.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check-MAINTAINERS.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2022-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
***************
*** 19,26 ****
  # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  # Boston, MA 02110-1301, USA.
  
! # Check that names in the file are sorted
! # alphabetically by surname.
  
  import locale
  import sys
--- 19,26 ----
  # the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  # Boston, MA 02110-1301, USA.
  
! # Check that names in the file are sorted alphabetically by surname, name
! # bugzilla handle and email (in this order).
  
  import locale
  import sys
diff -Nrcpad gcc-15.2.0/contrib/check-params-in-docs.py gcc-16.1.0-RC-20260423/contrib/check-params-in-docs.py
*** gcc-15.2.0/contrib/check-params-in-docs.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check-params-in-docs.py	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2026 Free Software Foundation, Inc.
  #
  # Find missing and extra parameters in documentation compared to
  # output of: gcc --help=params.
***************
*** 26,32 ****
  
  import argparse
  import sys
- from itertools import dropwhile, takewhile
  
  
  def get_param_tuple(line):
--- 26,31 ----
*************** def get_param_tuple(line):
*** 39,45 ****
      return (name, description)
  
  def target_specific(param):
!     return param.split('-')[0] in ('aarch64', 'gcn', 'x86')
  
  
  parser = argparse.ArgumentParser()
--- 38,45 ----
      return (name, description)
  
  def target_specific(param):
!     return param.split('-')[0] in ('aarch64', 'gcn', 'x86', 'riscv', 'rs6000',
!                                    'loongarch')
  
  
  parser = argparse.ArgumentParser()
*************** for line in open(args.params_output).rea
*** 59,69 ****
  # 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 = dropwhile(lambda x: 'item --param' not in x, texi)
! texi = takewhile(lambda x: '@node Instrumentation Options' not in x, texi)
! texi = list(texi)[1:]
  
  texi_params = []
  skip = False
--- 59,65 ----
  # Skip target-specific params
  help_params = {x:y for x,y in help_params.items() if not target_specific(x)}
  
! texi = list([x.strip() for x in open(args.texi_file).readlines()])
  
  texi_params = []
  skip = False
diff -Nrcpad gcc-15.2.0/contrib/check_GNU_style.py gcc-16.1.0-RC-20260423/contrib/check_GNU_style.py
*** gcc-15.2.0/contrib/check_GNU_style.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check_GNU_style.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2026 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-15.2.0/contrib/check_GNU_style.sh gcc-16.1.0-RC-20260423/contrib/check_GNU_style.sh
*** gcc-15.2.0/contrib/check_GNU_style.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check_GNU_style.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/bin/sh
  
  # Checks some of the GNU style formatting rules in a set of patches.
! # Copyright (C) 2010-2026 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-15.2.0/contrib/check_GNU_style_lib.py gcc-16.1.0-RC-20260423/contrib/check_GNU_style_lib.py
*** gcc-15.2.0/contrib/check_GNU_style_lib.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check_GNU_style_lib.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2026 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 BracesOnSeparateLineCheck:
*** 217,223 ****
                  line[:m.start(2)] + error_string(m.group(2)) + line[m.end(2):],
                  'braces should be on a separate line', m.start(2))
  
! class TrailinigOperatorCheck:
      def __init__(self):
          regex = r'^\s.*(([^a-zA-Z_]\*)|([-%<=&|^?])|([^*]/)|([^:][+]))$'
          self.re = re.compile(regex)
--- 217,223 ----
                  line[:m.start(2)] + error_string(m.group(2)) + line[m.end(2):],
                  'braces should be on a separate line', m.start(2))
  
! class TrailingOperatorCheck:
      def __init__(self):
          regex = r'^\s.*(([^a-zA-Z_]\*)|([-%<=&|^?])|([^*]/)|([^:][+]))$'
          self.re = re.compile(regex)
*************** def check_GNU_style_file(file, format):
*** 272,288 ****
          SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
          SentenceDotEndCheck(), FunctionParenthesisCheck(),
          SquareBracketCheck(), ClosingParenthesisCheck(),
!         BracesOnSeparateLineCheck(), TrailinigOperatorCheck(),
          SpacesAndTabsMixedCheck()]
      errors = []
  
      patch = PatchSet(file)
  
      for pfile in patch.added_files + patch.modified_files:
!         t = pfile.target_file.lstrip('b/')
          # Skip testsuite files
          if 'testsuite' in t or t.endswith('.py'):
              continue
  
          for hunk in pfile:
              delta = 0
--- 272,293 ----
          SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
          SentenceDotEndCheck(), FunctionParenthesisCheck(),
          SquareBracketCheck(), ClosingParenthesisCheck(),
!         BracesOnSeparateLineCheck(), TrailingOperatorCheck(),
          SpacesAndTabsMixedCheck()]
      errors = []
  
      patch = PatchSet(file)
  
      for pfile in patch.added_files + patch.modified_files:
!         t = pfile.target_file
!         if t.startswith('b/'):
!             t = t[2:]
          # Skip testsuite files
          if 'testsuite' in t or t.endswith('.py'):
              continue
+         # Libstdc++ does not use GNU style
+         if t.startswith('libstdc++-v3/'):
+             continue
  
          for hunk in pfile:
              delta = 0
diff -Nrcpad gcc-15.2.0/contrib/check_makefile_deps.sh gcc-16.1.0-RC-20260423/contrib/check_makefile_deps.sh
*** gcc-15.2.0/contrib/check_makefile_deps.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check_makefile_deps.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 2,8 ----
  #
  # Check for accurate dependencies in gcc/Makefile.in.
  #
! # Copyright (C) 2008-2026 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-15.2.0/contrib/check_warning_flags.sh gcc-16.1.0-RC-20260423/contrib/check_warning_flags.sh
*** gcc-15.2.0/contrib/check_warning_flags.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/check_warning_flags.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Check that the warning flags documented in invoke.texi match up
  # with what the compiler accepts.
  #
! # Copyright (C) 2008-2026 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-15.2.0/contrib/ci-containers/README gcc-16.1.0-RC-20260423/contrib/ci-containers/README
*** gcc-15.2.0/contrib/ci-containers/README	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/ci-containers/README	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,47 ----
+ # CI Containers
+ 
+ Each subdirectory under `contrib/ci-containers/` holds a hermetic description of
+ a container image that powers jobs on the [Sourceware
+ Forge](https://forge.sourceware.org).  The directory itself is used as the build
+ context, so any assets referenced by the `Containerfile` must be present
+ in the subdirectory.
+ 
+ Keeping the description self-contained guarantees reproducible builds.
+ 
+ ## Building Images
+ 
+ Images are built with [buildah](https://buildah.io) via the helper script
+ `build-image.sh`.  A typical invocation looks like:
+ 
+ ```bash
+ ./contrib/ci-containers/build-image.sh \
+     -d ./contrib/ci-containers/foo \
+     -t v1.0 \
+     -- --layers --no-cache
+ ```
+ 
+ * `-d` - Path to the directory containing the `Containerfile`.
+ * `-t` - Tag to apply to the resulting image.
+ * The trailing `--` passes additional flags directly to `buildah` (here we
+ request layered output and disable the cache).
+ 
+ The full image tag will be the basename of the directory, in this case `foo`,
+ and the value passed to the `-t/--tag` argument.  Our hypothetical image will be
+ tagged locally as `foo:v1.0`.
+ 
+ ### Verify the build
+ 
+ ```bash
+ buildah images --json foo:v1.0
+ ```
+ 
+ The command returns a JSON object with the image's ID, size, and other metadata.
+ 
+ ### Test the image locally
+ 
+ ```bash
+ podman run --rm -it foo:v1.0 /bin/bash
+ ```
+ 
+ By running the image interactively you can confirm that the environment behaves
+ as expected.
diff -Nrcpad gcc-15.2.0/contrib/ci-containers/autoregen/Containerfile gcc-16.1.0-RC-20260423/contrib/ci-containers/autoregen/Containerfile
*** gcc-15.2.0/contrib/ci-containers/autoregen/Containerfile	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/ci-containers/autoregen/Containerfile	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,83 ----
+ FROM debian:stable-slim
+ 
+ ARG AUTOCONF_VERSION=2.69
+ ARG AUTOMAKE_VERSION=1.15.1
+ 
+ # Run time deps
+ RUN set -eux; \
+     apt-get update; \
+     apt-get upgrade -y; \
+     apt-get install -y --no-install-recommends \
+       autogen \
+       ca-certificates \
+       git \
+       m4 \
+       nodejs \
+       perl \
+       python3 \
+       python3-git \
+       python3-termcolor \
+       python3-unidiff \
+       wget; \
+     rm -rf /var/lib/apt/lists/*
+ 
+ # Get and install the autoregen.py script
+ COPY --chmod=755 autoregen.py /usr/local/bin/autoregen.py
+ 
+ # Build and install autoconf and automake
+ # Automake depends on autoconf, which is built and installed first
+ RUN set -eux; \
+     \
+     savedAptMark="$(apt-mark showmanual)"; \
+     apt-get update; \
+     apt-get install -y --no-install-recommends \
+       build-essential \
+       ca-certificates \
+       gzip \
+       m4 \
+       tar \
+       wget \
+     ; \
+     rm -r /var/lib/apt/lists/*; \
+     \
+     builddir="$(mktemp -d)"; \
+     \
+     cd "${builddir}"; \
+     AUTOCONF_VERSION_SHORT="$(echo $AUTOCONF_VERSION | awk -F. '{ print $1 "." $2 }')"; \
+     wget -q "https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz"; \
+     tar xf "autoconf-${AUTOCONF_VERSION}.tar.gz"; \
+     cd "autoconf-${AUTOCONF_VERSION}"; \
+     ./configure --program-suffix="-${AUTOCONF_VERSION}"; \
+     make; \
+     make install; \
+     cd .. ;\
+     rm -rf autoconf*; \
+     cd /usr/local/bin; \
+     for f in autoconf autoheader autom4te autoreconf autoscan autoupdate ifnames; do \
+       ln -sv "$f-$AUTOCONF_VERSION" "$f"; \
+       [ ! "$AUTOCONF_VERSION" = "$AUTOCONF_VERSION_SHORT" ] && \
+         ln -sv "$f-$AUTOCONF_VERSION" "$f-$AUTOCONF_VERSION_SHORT"; \
+     done; \
+     \
+     cd "${builddir}"; \
+     AUTOMAKE_VERSION_SHORT="$(echo $AUTOMAKE_VERSION | awk -F. '{ print $1 "." $2 }')"; \
+     wget -q "https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VERSION}.tar.gz"; \
+     tar xf "automake-${AUTOMAKE_VERSION}.tar.gz"; \
+     cd "automake-${AUTOMAKE_VERSION}"; \
+     ./configure --program-suffix="-${AUTOMAKE_VERSION}"; \
+     make; \
+     make install; \
+     cd ..; \
+     rm -rf automake*; \
+     cd /usr/local/bin; \
+     for f in aclocal automake; do \
+       ln -sv "$f-$AUTOMAKE_VERSION" "$f"; \
+       [ ! "$AUTOMAKE_VERSION" = "$AUTOMAKE_VERSION_SHORT" ] && \
+     ln -sv "$f-$AUTOMAKE_VERSION" "$f-$AUTOMAKE_VERSION_SHORT"; \
+     done; \
+     \
+     rm -rf "${builddir}"; \
+     \
+     apt-mark auto '.*' > /dev/null; \
+     [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
+     apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
diff -Nrcpad gcc-15.2.0/contrib/ci-containers/autoregen/autoregen.py gcc-16.1.0-RC-20260423/contrib/ci-containers/autoregen/autoregen.py
*** gcc-15.2.0/contrib/ci-containers/autoregen/autoregen.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/ci-containers/autoregen/autoregen.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,146 ----
+ #!/usr/bin/env python3
+ 
+ # This script helps to regenerate files managed by autotools and
+ # autogen in binutils-gdb and gcc repositories.
+ 
+ # It can be used by buildbots to check that the current repository
+ # contents has been updated correctly, and by developers to update
+ # such files as expected.
+ 
+ import os
+ import shutil
+ import subprocess
+ from pathlib import Path
+ 
+ 
+ # On Gentoo, vanilla unpatched autotools are packaged separately.
+ # We place the vanilla names first as we want to prefer those if both exist.
+ AUTOCONF_NAMES = ["autoconf-vanilla-2.69", "autoconf-2.69", "autoconf"]
+ AUTOMAKE_NAMES = ["automake-vanilla-1.15", "automake-1.15.1", "automake"]
+ ACLOCAL_NAMES = ["aclocal-vanilla-1.15", "aclocal-1.15.1", "aclocal"]
+ AUTOHEADER_NAMES = ["autoheader-vanilla-2.69", "autoheader-2.69", "autoheader"]
+ AUTORECONF_NAMES = ["autoreconf-vanilla-2.69", "autoreconf-2.69", "autoreconf"]
+ 
+ # Pick the first for each list that exists on this system.
+ AUTOCONF_BIN = next(name for name in AUTOCONF_NAMES if shutil.which(name))
+ AUTOMAKE_BIN = next(name for name in AUTOMAKE_NAMES if shutil.which(name))
+ ACLOCAL_BIN = next(name for name in ACLOCAL_NAMES if shutil.which(name))
+ AUTOHEADER_BIN = next(name for name in AUTOHEADER_NAMES if shutil.which(name))
+ AUTORECONF_BIN = next(name for name in AUTORECONF_NAMES if shutil.which(name))
+ 
+ AUTOGEN_BIN = "autogen"
+ 
+ # autoconf-wrapper and automake-wrapper from Gentoo look at this environment variable.
+ # It's harmless to set it on other systems though.
+ EXTRA_ENV = {
+     "WANT_AUTOCONF": AUTOCONF_BIN.split("-", 1)[1] if "-" in AUTOCONF_BIN else "",
+     "WANT_AUTOMAKE": AUTOMAKE_BIN.split("-", 1)[1] if "-" in AUTOMAKE_BIN else "",
+     "AUTOCONF": AUTOCONF_BIN,
+     "ACLOCAL": ACLOCAL_BIN,
+     "AUTOMAKE": AUTOMAKE_BIN,
+     "AUTOGEN": AUTOGEN_BIN,
+ }
+ ENV = os.environ.copy()
+ ENV.update(EXTRA_ENV)
+ 
+ 
+ # Directories we should skip entirely because they're vendored or have different
+ # autotools versions.
+ SKIP_DIRS = [
+     # readline and minizip are maintained with different autotools versions
+     "readline",
+     "minizip",
+ ]
+ 
+ MANUAL_CONF_DIRS = [
+     ".",
+     # autoreconf does not update aclocal.m4
+     "fixincludes",
+     ]
+ 
+ # Run the shell command CMD.
+ #
+ # Print the command on stdout prior to running it.
+ def run_shell(cmd: str):
+     print(f"+ {cmd}", flush=True)
+     res = subprocess.run(
+         f"{cmd}",
+         shell=True,
+         encoding="utf8",
+         env=ENV,
+     )
+     res.check_returncode()
+ 
+ 
+ def regenerate_with_autoreconf():
+     run_shell(f"{AUTORECONF_BIN} -f")
+ 
+ def regenerate_with_autogen():
+     run_shell(f"{AUTOGEN_BIN} Makefile.def")
+ 
+ def regenerate_manually():
+     configure_lines = open("configure.ac").read().splitlines()
+     if folder.stem == "fixincludes" or any(
+             True for line in configure_lines if line.startswith("AC_CONFIG_MACRO_DIR")
+     ):
+         include_arg = ""
+         include_arg2 = ""
+         if (folder / ".." / "config").is_dir():
+             include_arg = "-I../config"
+ 
+         if folder.stem == "fixincludes":
+             include_arg = "-I.."
+             include_arg2 = "-I../config"
+ 
+         # aclocal does not support the -f short option for force
+         run_shell(f"{ACLOCAL_BIN} --force {include_arg} {include_arg2}")
+ 
+     if (folder / "config.in").is_file() or any(
+         True for line in configure_lines if line.startswith("AC_CONFIG_HEADERS")
+     ):
+         run_shell(f"{AUTOHEADER_BIN} -f")
+ 
+     # apparently automake is somehow unstable -> skip it for gotools
+     if any(
+         True for line in configure_lines if line.startswith("AM_INIT_AUTOMAKE")
+     ) and not str(folder).endswith("gotools"):
+         run_shell(f"{AUTOMAKE_BIN} -f")
+ 
+     run_shell(f"{AUTOCONF_BIN} -f")
+ 
+ 
+ run_shell(f"{AUTOCONF_BIN} --version")
+ run_shell(f"{AUTOMAKE_BIN} --version")
+ run_shell(f"{ACLOCAL_BIN} --version")
+ run_shell(f"{AUTOHEADER_BIN} --version")
+ 
+ print(f"Extra environment: {EXTRA_ENV}", flush=True)
+ 
+ config_folders: list[Path] = []
+ autogen_folders: list[Path] = []
+ repo_root = Path.cwd()
+ 
+ for root, _, files in os.walk("."):
+     for file in files:
+         if file == "configure.ac":
+             config_folders.append(Path(root).resolve())
+         if file == "Makefile.tpl":
+             autogen_folders.append(Path(root).resolve())
+ 
+ for folder in sorted(autogen_folders):
+     print(f"Entering directory {folder}", flush=True)
+     os.chdir(folder)
+     regenerate_with_autogen()
+ 
+ for folder in sorted(config_folders):
+     if folder.stem in SKIP_DIRS:
+         print(f"Skipping directory {folder}", flush=True)
+         continue
+ 
+     print(f"Entering directory {folder}", flush=True)
+     os.chdir(folder)
+ 
+     if str(folder.relative_to(repo_root)) in MANUAL_CONF_DIRS:
+         regenerate_manually()
+     else:
+         regenerate_with_autoreconf()
diff -Nrcpad gcc-15.2.0/contrib/ci-containers/build-image.sh gcc-16.1.0-RC-20260423/contrib/ci-containers/build-image.sh
*** gcc-15.2.0/contrib/ci-containers/build-image.sh	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/ci-containers/build-image.sh	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,104 ----
+ #!/usr/bin/env bash
+ #
+ # Build a container using buildah
+ #
+ set -euo pipefail
+ 
+ usage() {
+     cat <<EOF
+ Usage: build-image.sh -d <directory> -t <tag> [-e timestamp] [-- buildah-args...]
+ 
+ Options:
+   -d, --dir <path>	Directory with the Containerfile (required).
+   -t, --tag <tag>	Tag to apply to the built image (required).
+   -e, --epoch <ts>	Set the "created" timestamp for the built image to this number of seconds since the epoch (optional).
+ 			Default is to use the timestamp of the current commit.
+ 			Needs buildah 1.41 or newer.
+   -h, --help		Show this help message and exit.
+ 
+ All arguments after a double-dash (--) are forwarded unchanged to 'buildah'.
+ 
+ Example:
+   ./build-image.sh -d src -t v1.0 -- --layers --no-cache
+ EOF
+     exit 1
+ }
+ 
+ DIR=""
+ TAG=""
+ EXTRA_ARGS=()
+ 
+ while (( "$#" )); do
+     case "$1" in
+         -d|--dir)
+             if [[ -n "${2-}" ]]; then
+                 DIR="$2"
+                 shift 2
+             else
+                 echo "error: --dir requires a value" >&2
+                 exit 1
+             fi
+             ;;
+         -t|--tag)
+             if [[ -n "${2-}" ]]; then
+                 TAG="$2"
+                 shift 2
+             else
+                 echo "error: --tag requires a value" >&2
+                 exit 1
+             fi
+             ;;
+         -e|--epoch)
+             if [[ -n "${2-}" ]]; then
+                 SOURCE_DATE_EPOCH="$2"
+                 shift 2
+             else
+                 echo "error: --source-date-epoch requires a value" >&2
+                 exit 1
+             fi
+             ;;
+         -h|--help)
+             usage
+             ;;
+         --)
+             shift
+             EXTRA_ARGS+=("$@")
+             break
+             ;;
+         *)
+             echo "error: unknown option '$1'" >&2
+             usage
+             ;;
+     esac
+ done
+ 
+ if [[ -z "$DIR" ]]; then
+     echo "error: directory (-d/--dir) is required" >&2
+     usage
+ fi
+ 
+ if [[ -z "$TAG" ]]; then
+     echo "error: Tag (-t/--tag) is required." >&2
+     usage
+ fi
+ 
+ if [[ ! -e "${DIR}/Containerfile" ]]; then
+     echo "error: '${DIR}/Containerfile' does not exist." >&2
+     usage
+ fi
+ 
+ CONTAINER="$(basename "$DIR")"
+ IMAGE_TAG="${CONTAINER}:${TAG}"
+ 
+ if [[ -z "${SOURCE_DATE_EPOCH-}" ]]; then
+     SCRIPT_DIR="$(dirname "$0")"
+     SOURCE_DATE_EPOCH="$(cd "${SCRIPT_DIR}" && git log -1 --pretty=%ct)"
+ fi
+ export SOURCE_DATE_EPOCH
+ 
+ 
+ buildah build \
+     -f "${DIR}/Containerfile" \
+     -t "$IMAGE_TAG" \
+     "${EXTRA_ARGS[@]}" \
+     "$DIR"
diff -Nrcpad gcc-15.2.0/contrib/clang-format gcc-16.1.0-RC-20260423/contrib/clang-format
*** gcc-15.2.0/contrib/clang-format	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/clang-format	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,4 ----
! # Copyright (C) 2015-2026 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-15.2.0/contrib/compare-all-tests gcc-16.1.0-RC-20260423/contrib/compare-all-tests
*** gcc-15.2.0/contrib/compare-all-tests	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compare-all-tests	Thu Apr 23 11:07:32 2026
***************
*** 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".
--- 1,7 ----
  #! /bin/bash
  
  # Compare the assembly language output for all the gcc tests.
! # Copyright (C) 2009-2026 Free Software Foundation, Inc.
  # Contributed by Paolo Bonzini.
  #
  # Invoke it as "bash compare-all-tests target1 target2 ... targetN".
diff -Nrcpad gcc-15.2.0/contrib/compare-debug gcc-16.1.0-RC-20260423/contrib/compare-debug
*** gcc-15.2.0/contrib/compare-debug	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compare-debug	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 2,8 ----
  
  # Compare stripped copies of two given object files.
  
! # Copyright (C) 2007-2026 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  
  # This file is part of GCC.
diff -Nrcpad gcc-15.2.0/contrib/compare-lto gcc-16.1.0-RC-20260423/contrib/compare-lto
*** gcc-15.2.0/contrib/compare-lto	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compare-lto	Thu Apr 23 11:07:32 2026
***************
*** 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>
  
--- 2,8 ----
  
  # Compare copies of two given object files.
  
! # Copyright (C) 2007-2026 Free Software Foundation, Inc.
  # Originally by Alexandre Oliva <aoliva@redhat.com>
  # Modified for LTO bootstrap by Richard Biener <rguenther@suse.de>
  
diff -Nrcpad gcc-15.2.0/contrib/compareSumTests3 gcc-16.1.0-RC-20260423/contrib/compareSumTests3
*** gcc-15.2.0/contrib/compareSumTests3	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compareSumTests3	Thu Apr 23 11:07:32 2026
***************
*** 5,11 ****
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  #
  # Author: Matthew Sachs <msachs@apple.com>
  #
! # Copyright (C) 2006-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/compare_tests gcc-16.1.0-RC-20260423/contrib/compare_tests
*** gcc-15.2.0/contrib/compare_tests	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compare_tests	Thu Apr 23 11:07:32 2026
*************** tmp1=$TMPDIR/$tool-testing.$$a
*** 41,46 ****
--- 41,48 ----
  tmp2=$TMPDIR/$tool-testing.$$b
  now_s=$TMPDIR/$tool-testing.$$d
  before_s=$TMPDIR/$tool-testing.$$e
+ now_u=$TMPDIR/$tool-uniq.$$d
+ before_u=$TMPDIR/$tool-uniq.$$e
  lst1=$TMPDIR/$tool-lst1.$$
  lst2=$TMPDIR/$tool-lst2.$$
  lst3=$TMPDIR/$tool-lst3.$$
*************** lst4=$TMPDIR/$tool-lst4.$$
*** 48,54 ****
  lst5=$TMPDIR/$tool-lst5.$$
  sum1=$TMPDIR/$tool-sum1.$$
  sum2=$TMPDIR/$tool-sum2.$$
! tmps="$tmp1 $tmp2 $now_s $before_s $lst1 $lst2 $lst3 $lst4 $lst5 $sum1 $sum2"
  
  [ "$1" = "-strict" ] && strict=$1 && shift
  [ "$1" = "-?" ] && usage
--- 50,56 ----
  lst5=$TMPDIR/$tool-lst5.$$
  sum1=$TMPDIR/$tool-sum1.$$
  sum2=$TMPDIR/$tool-sum2.$$
! tmps="$tmp1 $tmp2 $now_s $before_s $now_u $before_u $lst1 $lst2 $lst3 $lst4 $lst5 $sum1 $sum2"
  
  [ "$1" = "-strict" ] && strict=$1 && shift
  [ "$1" = "-?" ] && usage
*************** fi
*** 124,129 ****
--- 126,167 ----
  sort -t ':' $skip1 "$now" > "$now_s"
  sort -t ':' $skip1 "$before" > "$before_s"
  
+ # Report non-unique test names and print the diff between the two
+ # lists if they are different.
+ #
+ # If the results include several configurations (schedule of
+ # variations), we report duplicates several times with different
+ # target/tool prefixes because at this stage we do not know if the
+ # target and/or tool prefix was inserted.
+ # If we used the input files (so generally several times the same
+ # results in one section per target), we would incorreclty detect
+ # duplicates (as many as targets)
+ EGREP="grep -E"
+ 
+ if ! echo PASS | $EGREP '^(PASS|FAIL)' >/dev/null 2>&1; then
+     EGREP="egrep"
+ fi
+ 
+ $EGREP '^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|UNSUPPORTED|UNTESTED|ERROR):' "$now_s"    | uniq -cd > "$now_u"
+ $EGREP '^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|UNSUPPORTED|UNTESTED|ERROR):' "$before_s" | uniq -cd > "$before_u"
+ 
+ same_uniq=" now"
+ cmp -s "$before_u" "$now_u" && same_uniq=""
+ 
+ if [ -s "$now_u" ]; then
+     echo "Non-unique test names$same_uniq: (Eeek!)"
+     cat "$now_u"
+     echo
+     exit_status=1
+ fi
+ 
+ if [ -s "$before_u" -a "x$same_uniq" != "x" ]; then
+     echo "Changes to non-unique test names:"
+     diff -u "$before_u" "$now_u" | $EGREP '^[-\\+] '
+     echo
+     exit_status=1
+ fi
+ 
  grep '^FAIL:' "$now_s" | sed 's/^[^:]*:[ 	]//' >$tmp1
  grep '^PASS' "$before_s" | sed 's/^[^:]*:[ 	]//' | comm -12 $tmp1 - >$tmp2
  
diff -Nrcpad gcc-15.2.0/contrib/compare_two_ftime_report_sets gcc-16.1.0-RC-20260423/contrib/compare_two_ftime_report_sets
*** gcc-15.2.0/contrib/compare_two_ftime_report_sets	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/compare_two_ftime_report_sets	Thu Apr 23 11:07:32 2026
***************
*** 5,11 ****
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Lawrence Crowl <crowl@google.com>
  #
! # Copyright (C) 2012-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/config-list.mk gcc-16.1.0-RC-20260423/contrib/config-list.mk
*** gcc-15.2.0/contrib/config-list.mk	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/config-list.mk	Thu Apr 23 11:07:32 2026
*************** OPT_IN_LANGUAGES=
*** 35,41 ****
  #
  
  LIST = \
!   aarch64-elf aarch64-freebsd13 aarch64-linux-gnu aarch64-rtems \
    alpha-linux-gnu alpha-netbsd alpha-openbsd \
    alpha64-dec-vms alpha-dec-vms \
    amdgcn-amdhsa \
--- 35,41 ----
  #
  
  LIST = \
!   aarch64-elf aarch64-freebsd14 aarch64-linux-gnu aarch64-rtems \
    alpha-linux-gnu alpha-netbsd alpha-openbsd \
    alpha64-dec-vms alpha-dec-vms \
    amdgcn-amdhsa \
*************** LIST = \
*** 54,60 ****
    hppa64-hpux11.3 \
    hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes \
    i686-apple-darwin9 i686-apple-darwin13 i686-apple-darwin17 \
!   i686-freebsd13 i686-kfreebsd-gnu \
    i686-netbsdelf9 \
    i686-openbsd i686-elf i686-kopensolaris-gnu i686-gnu \
    i686-pc-linux-gnu i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
--- 54,60 ----
    hppa64-hpux11.3 \
    hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes \
    i686-apple-darwin9 i686-apple-darwin13 i686-apple-darwin17 \
!   i686-freebsd14 i686-kfreebsd-gnu \
    i686-netbsdelf9 \
    i686-openbsd i686-elf i686-kopensolaris-gnu i686-gnu \
    i686-pc-linux-gnu i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
*************** LIST = \
*** 64,71 ****
    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 \
!   m32c-elf m32r-elf m32rle-elf \
    m68k-elf m68k-netbsdelf \
    m68k-uclinux m68k-linux m68k-rtems \
    mcore-elf microblaze-linux microblaze-elf \
--- 64,72 ----
    ia64-linux ia64-hpuxOPT-enable-obsolete \
    ia64-hp-vmsOPT-enable-obsolete iq2000-elf lm32-elf \
    lm32-rtems lm32-uclinux \
+   loongarch32-linux-gnuf64 loongarch32-linux-gnuf32 loongarch32-linux-gnusf \
    loongarch64-linux-gnuf64 loongarch64-linux-gnuf32 loongarch64-linux-gnusf \
!   m32c-elfOPT-enable-obsolete m32r-elf m32rle-elf \
    m68k-elf m68k-netbsdelf \
    m68k-uclinux m68k-linux m68k-rtems \
    mcore-elf microblaze-linux microblaze-elf \
*************** LIST = \
*** 82,88 ****
    or1k-elf or1k-linux-uclibc or1k-linux-musl or1k-rtems \
    pdp11-aout \
    powerpc-apple-darwin9 powerpc64-apple-darwin9 powerpc-apple-darwin8 \
!   powerpc-freebsd13 powerpc-netbsd \
    powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
    powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
    powerpc-rtems \
--- 83,89 ----
    or1k-elf or1k-linux-uclibc or1k-linux-musl or1k-rtems \
    pdp11-aout \
    powerpc-apple-darwin9 powerpc64-apple-darwin9 powerpc-apple-darwin8 \
!   powerpc-freebsd14 powerpc-netbsd \
    powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
    powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
    powerpc-rtems \
*************** LIST = \
*** 105,111 ****
    vax-netbsdelf visium-elf \
    x86_64-apple-darwin10 x86_64-apple-darwin15 x86_64-apple-darwin21 \
    x86_64-gnu x86_64-pc-linux-gnuOPT-with-fpmath=avx \
!   x86_64-elfOPT-with-fpmath=sse x86_64-freebsd13 x86_64-netbsd \
    x86_64-w64-mingw32 \
    x86_64-mingw32OPT-enable-sjlj-exceptions=yes x86_64-rtems \
    xstormy16-elf xtensa-elf \
--- 106,112 ----
    vax-netbsdelf visium-elf \
    x86_64-apple-darwin10 x86_64-apple-darwin15 x86_64-apple-darwin21 \
    x86_64-gnu x86_64-pc-linux-gnuOPT-with-fpmath=avx \
!   x86_64-elfOPT-with-fpmath=sse x86_64-freebsd14 x86_64-netbsd \
    x86_64-w64-mingw32 \
    x86_64-mingw32OPT-enable-sjlj-exceptions=yes x86_64-rtems \
    xstormy16-elf xtensa-elf \
diff -Nrcpad gcc-15.2.0/contrib/dg-cmp-results.sh gcc-16.1.0-RC-20260423/contrib/dg-cmp-results.sh
*** gcc-15.2.0/contrib/dg-cmp-results.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-cmp-results.sh	Thu Apr 23 11:07:32 2026
***************
*** 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>.
--- 1,5 ----
  #!/bin/bash
! # Copyright (C) 2006-2026 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-15.2.0/contrib/dg-extract-results.py gcc-16.1.0-RC-20260423/contrib/dg-extract-results.py
*** gcc-15.2.0/contrib/dg-extract-results.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-extract-results.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  #!/usr/bin/python
  #
! # Copyright (C) 2014-2026 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 Prog:
*** 146,152 ****
              '# of unresolved testcases\t',
              '# of unsupported tests\t\t',
              '# of paths in test names\t',
!             '# of duplicate test names\t'
          ]
          self.runs = dict()
  
--- 146,153 ----
              '# of unresolved testcases\t',
              '# of unsupported tests\t\t',
              '# of paths in test names\t',
!             '# of duplicate test names\t',
!             '# of unexpected core files\t'
          ]
          self.runs = dict()
  
diff -Nrcpad gcc-15.2.0/contrib/dg-extract-results.sh gcc-16.1.0-RC-20260423/contrib/dg-extract-results.sh
*** gcc-15.2.0/contrib/dg-extract-results.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-extract-results.sh	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 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-2026 Free Software Foundation, Inc.
  # Contributed by Janis Johnson <janis187@us.ibm.com>
  #
  # This file is part of GCC.
*************** BEGIN {
*** 403,409 ****
    variant="$VAR"
    tool="$TOOL"
    passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0;
!   pathcnt=0; dupcnt=0
    curvar=""; insummary=0
  }
  /^Running target /		{ curvar = \$3; next }
--- 403,409 ----
    variant="$VAR"
    tool="$TOOL"
    passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0;
!   pathcnt=0; dupcnt=0; corecnt=0
    curvar=""; insummary=0
  }
  /^Running target /		{ curvar = \$3; next }
*************** BEGIN {
*** 420,425 ****
--- 420,426 ----
  /^# of unsupported tests/	{ if (insummary == 1) unsupcnt += \$5; next; }
  /^# of paths in test names/	{ if (insummary == 1) pathcnt += \$7; next; }
  /^# of duplicate test names/	{ if (insummary == 1) dupcnt += \$6; next; }
+ /^# of unexpected core files/	{ if (insummary == 1) corecnt += \$6; next; }
  /^$/				{ if (insummary == 1)
  				    { insummary = 0; curvar = "" }
  				  next
*************** END {
*** 439,444 ****
--- 440,446 ----
    if (unsupcnt != 0) printf ("# of unsupported tests\t\t%d\n", unsupcnt)
    if (pathcnt != 0) printf ("# of paths in test names\t%d\n", pathcnt)
    if (dupcnt != 0) printf ("# of duplicate test names\t%d\n", dupcnt)
+   if (corecnt != 0) printf ("# of unexpected core files\t%d\n", corecnt)
  }
  EOF
  
*************** cat << EOF > $TOTAL_AWK
*** 460,466 ****
  BEGIN {
    tool="$TOOL"
    passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0
!   pathcnt=0; dupcnt=0
  }
  /^# of DejaGnu errors/		{ dgerrorcnt += \$5 }
  /^# of expected passes/		{ passcnt += \$5 }
--- 462,468 ----
  BEGIN {
    tool="$TOOL"
    passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0
!   pathcnt=0; dupcnt=0; corecnt=0
  }
  /^# of DejaGnu errors/		{ dgerrorcnt += \$5 }
  /^# of expected passes/		{ passcnt += \$5 }
*************** BEGIN {
*** 474,479 ****
--- 476,482 ----
  /^# of unsupported tests/	{ unsupcnt += \$5 }
  /^# of paths in test names/	{ pathcnt += \$7 }
  /^# of duplicate test names/	{ dupcnt += \$6 }
+ /^# of unexpected core files/	{ corecnt += \$6 }
  END {
    printf ("\n\t\t=== %s Summary ===\n\n", tool)
    if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt)
*************** END {
*** 488,493 ****
--- 491,497 ----
    if (unsupcnt != 0) printf ("# of unsupported tests\t\t%d\n", unsupcnt)
    if (pathcnt != 0) printf ("# of paths in test names\t%d\n", pathcnt)
    if (dupcnt != 0) printf ("# of duplicate test names\t%d\n", dupcnt)
+   if (corecnt != 0) printf ("# of unexpected core files\t%d\n", corecnt)
  }
  EOF
  
diff -Nrcpad gcc-15.2.0/contrib/dg-lint/dg-lint gcc-16.1.0-RC-20260423/contrib/dg-lint/dg-lint
*** gcc-15.2.0/contrib/dg-lint/dg-lint	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-lint/dg-lint	Thu Apr 23 11:07:32 2026
***************
*** 4,10 ****
  
  # Contributed by David Malcolm <dmalcolm@redhat.com>
  #
! # Copyright (C) 2024-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 4,10 ----
  
  # Contributed by David Malcolm <dmalcolm@redhat.com>
  #
! # Copyright (C) 2024-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** def skip_file(filename):
*** 380,388 ****
--- 380,396 ----
  def main(argv):
      parser = argparse.ArgumentParser()#usage=__doc__)
      parser.add_argument('paths', nargs='+', type=pathlib.Path)
+     parser.add_argument('-fdiagnostics-add-output', action='append')
      opts = parser.parse_args(argv[1:])
  
      ctxt = Context()
+     control_mgr = libgdiagnostics.Manager()
+     control_mgr.add_text_sink()
+     for scheme in opts.fdiagnostics_add_output:
+         ctxt.mgr.add_sink_from_spec("-fdiagnostics-add-output=",
+                                     scheme,
+                                     control_mgr)
+ 
      for path in opts.paths:
          if path.is_dir():
              for dirpath, dirnames, filenames in os.walk(path):
diff -Nrcpad gcc-15.2.0/contrib/dg-lint/libgdiagnostics.py gcc-16.1.0-RC-20260423/contrib/dg-lint/libgdiagnostics.py
*** gcc-15.2.0/contrib/dg-lint/libgdiagnostics.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-lint/libgdiagnostics.py	Thu Apr 23 11:07:32 2026
***************
*** 4,10 ****
  
  # Contributed by David Malcolm <dmalcolm@redhat.com>
  #
! # Copyright (C) 2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 4,10 ----
  
  # Contributed by David Malcolm <dmalcolm@redhat.com>
  #
! # Copyright (C) 2025-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** cdll.diagnostic_add_fix_it_hint_replace.
*** 124,129 ****
--- 124,136 ----
         ctypes.c_char_p]
  cdll.diagnostic_add_fix_it_hint_replace.restype = None
  
+ cdll.diagnostic_manager_add_sink_from_spec.argtypes \
+     = [c_diagnostic_manager_ptr,
+        ctypes.c_char_p,
+        ctypes.c_char_p,
+        c_diagnostic_manager_ptr]
+ cdll.diagnostic_manager_add_sink_from_spec.restype = ctypes.c_int
+ 
  # Helper functions
  
  def _to_utf8(s: str):
*************** class Manager:
*** 156,161 ****
--- 163,178 ----
                                                 c_stderr,
                                                 DIAGNOSTIC_COLORIZE_IF_TTY)
  
+     def add_sink_from_spec(self, option_name: str, scheme: str, control_mgr):
+         assert self.c_mgr
+         assert control_mgr.c_mgr
+         res = cdll.diagnostic_manager_add_sink_from_spec (self.c_mgr,
+                                                           _to_utf8(option_name),
+                                                           _to_utf8(scheme),
+                                                           control_mgr.c_mgr)
+         if res:
+             raise RuntimeError()
+ 
      def get_file(self, path: str, sarif_lang: str = None):
          assert self.c_mgr
          assert path
diff -Nrcpad gcc-15.2.0/contrib/dg-out-generator.pl gcc-16.1.0-RC-20260423/contrib/dg-out-generator.pl
*** gcc-15.2.0/contrib/dg-out-generator.pl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dg-out-generator.pl	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  #!/usr/bin/env perl
  #
! # Copyright (C) 2022-2026 Free Software Foundation, Inc.
  # Contributed by Arsen Arsenović.
  #
  # This script is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-15.2.0/contrib/dglib.pm gcc-16.1.0-RC-20260423/contrib/dglib.pm
*** gcc-15.2.0/contrib/dglib.pm	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/dglib.pm	Thu Apr 23 11:07:32 2026
***************
*** 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.
  #
--- 10,16 ----
  #		true if and only if it is a passing result (PASS, XFAIL, or
  #		KFAIL.)
  #
! # Copyright (C) 2006-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/diffsummary.py gcc-16.1.0-RC-20260423/contrib/diffsummary.py
*** gcc-15.2.0/contrib/diffsummary.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/diffsummary.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,103 ----
+ #!/usr/bin/env python3
+ # Show or diff test_summary output to latest posted test result for a platform
+ # test_summary -t | diffsummary.py (compare test result from current build to last posted)
+ # diffsummary.py --show     (only show last posted)
+ from urllib.request import urlopen
+ from html.parser import HTMLParser
+ import time
+ import re
+ import argparse
+ import platform
+ import tempfile
+ import os
+ import sys
+ 
+ baseurl = "https://gcc.gnu.org/pipermail/gcc-testresults/"
+ 
+ ap = argparse.ArgumentParser(description="Diff stdin to latest posted test result and set exit code to result")
+ ap.add_argument("--branch", default="experimental",
+                 help="Branch to match (regex substring match)")
+ ap.add_argument("--arch", default=platform.machine() + ".*" + platform.system().lower(),
+                 help="architecture to match (regex substring match)")
+ ap.add_argument("--retrytime", default=1, type=int,
+                 help="time to wait before fetching next page (fractional seconds)")
+ ap.add_argument("--show", help="Show last test result, but do not diff", action="store_true", default=False)
+ ap.add_argument("--url", help="Show URLs downloaded", action="store_true")
+ ap.add_argument("--diff", help="Diff program to use (default diff)", default="diff")
+ ap.add_argument("--diff-args", help="Diff arguments to use (default -u)", default="-u")
+ ap.add_argument("--skip", type=int, default=0, help="Skip first N posted test results")
+ args = ap.parse_args()
+ 
+ class ParseMonths(HTMLParser):
+     def __init__(self):
+         super().__init__()
+         self.months = []
+     def handle_starttag(self, tag, attrs):
+         if tag == "a" and "thread.html" in attrs[0][1]:
+             self.months.append(attrs[0][1])
+ 
+ class ParseThread(HTMLParser):
+     def __init__(self):
+         super().__init__()
+         self.link = None
+         self.target = []
+     def handle_starttag(self, tag, attrs):
+         if (tag == "a"
+             and attrs[0][1][0].isdigit()
+             and attrs[0][1].endswith(".html")):
+             self.link = attrs[0][1]
+         else:
+             self.link = None
+     def handle_data(self, data):
+         if (self.link
+             and re.search(args.branch, data)
+             and re.search(args.arch, data)):
+             self.target.append(thread.link)
+ 
+ class ParseArticle(HTMLParser):
+     def __init__(self):
+         super().__init__()
+         self.contents = None
+         self.pre = False
+         self.data = None
+     def handle_starttag(self, tag, attrs):
+         self.pre = tag == "pre"
+     def handle_data(self, data):
+         if self.pre and not self.data:
+             self.data = data
+ 
+ def my_urlopen(url):
+     if args.url:
+         print(url)
+     return urlopen(url)
+ 
+ with my_urlopen(baseurl) as index:
+     months = ParseMonths()
+     months.feed(index.read().decode('utf-8'))
+ if len(months.months) == 0:
+     sys.exit("no months found")
+ for month in months.months:
+     with my_urlopen(baseurl + month) as m:
+         thread = ParseThread()
+         thread.feed(m.read().decode('utf-8'))
+         if thread.target:
+             if args.skip > len(thread.target):
+                 args.skip -= len(thread.target)
+                 continue
+             url = (baseurl + month).replace("thread.html", thread.target[-1 - args.skip])
+             with my_urlopen(url) as t:
+                 article = ParseArticle()
+                 article.feed(t.read().decode('utf-8'))
+                 if args.show:
+                     print(article.data)
+                     break
+                 with tempfile.NamedTemporaryFile(delete=False) as tf:
+                     tf.write(article.data.encode('utf-8'))
+                     tf.close()
+                     cmd = f"{args.diff} {args.diff_args} - {tf.name}"
+                     print(cmd)
+                     ret = os.system(cmd)
+                     os.unlink(tf.name)
+                     sys.exit(ret)
+                 break
+         time.sleep(args.retrytime)
diff -Nrcpad gcc-15.2.0/contrib/download_prerequisites gcc-16.1.0-RC-20260423/contrib/download_prerequisites
*** gcc-15.2.0/contrib/download_prerequisites	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/download_prerequisites	Thu Apr 23 11:07:32 2026
*************** version='(unversioned)'
*** 27,39 ****
  # remember to also update the files `contrib/prerequisites.sha512` and
  # `contrib/prerequisites.md5` with the new checksums.
  
! gmp='gmp-6.2.1.tar.bz2'
! mpfr='mpfr-4.1.0.tar.bz2'
! mpc='mpc-1.2.1.tar.gz'
  isl='isl-0.24.tar.bz2'
  gettext='gettext-0.22.tar.gz'
  
! base_url='http://gcc.gnu.org/pub/gcc/infrastructure/'
  
  echo_archives() {
      echo "${gettext}"
--- 27,39 ----
  # remember to also update the files `contrib/prerequisites.sha512` and
  # `contrib/prerequisites.md5` with the new checksums.
  
! gmp='gmp-6.3.0.tar.bz2'
! mpfr='mpfr-4.2.2.tar.bz2'
! mpc='mpc-1.3.1.tar.gz'
  isl='isl-0.24.tar.bz2'
  gettext='gettext-0.22.tar.gz'
  
! base_url='https://gcc.gnu.org/pub/gcc/infrastructure/'
  
  echo_archives() {
      echo "${gettext}"
*************** The following options are available:
*** 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."
  
--- 82,88 ----
  "
  
  versiontext="${program} ${version}
! Copyright (C) 2016-2026 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-15.2.0/contrib/filter-clang-warnings.py gcc-16.1.0-RC-20260423/contrib/filter-clang-warnings.py
*** gcc-15.2.0/contrib/filter-clang-warnings.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/filter-clang-warnings.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2025 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2018-2026 Free Software Foundation, Inc.
  #
  # Script to analyze warnings produced by clang.
  #
*************** def skip_warning(filename, message):
*** 41,64 ****
                   '-Wignored-attributes', '-Wgnu-zero-variadic-macro-arguments',
                   '-Wformat-security', '-Wundefined-internal',
                   '-Wunknown-warning-option', '-Wc++20-extensions',
!                  '-Wbitwise-instead-of-logical', 'egrep is obsolescent'],
              'insn-modes.cc': ['-Wshift-count-overflow'],
              'insn-emit.cc': ['-Wtautological-compare'],
              'insn-attrtab.cc': ['-Wparentheses-equality'],
!             'gimple-match.cc': ['-Wunused-', '-Wtautological-compare'],
!             'generic-match.cc': ['-Wunused-', '-Wtautological-compare'],
              'i386.md': ['-Wparentheses-equality', '-Wtautological-compare',
                          '-Wtautological-overlap-compare'],
              'sse.md': ['-Wparentheses-equality', '-Wtautological-compare',
                         '-Wconstant-logical-operand'],
              'mmx.md': ['-Wtautological-compare'],
-             'genautomata.cc': ['-Wstring-plus-int'],
-             'fold-const-call.cc': ['-Wreturn-type'],
-             'gfortran.texi': [''],
-             'libtool': [''],
              'lex.cc': ['-Wc++20-attribute-extensions'],
      }
  
      for name, ignore in ignores.items():
          for i in ignore:
              if name in filename and i in message:
--- 41,88 ----
                   '-Wignored-attributes', '-Wgnu-zero-variadic-macro-arguments',
                   '-Wformat-security', '-Wundefined-internal',
                   '-Wunknown-warning-option', '-Wc++20-extensions',
!                  '-Wbitwise-instead-of-logical', 'egrep is obsolescent',
!                  '-Woverloaded-shift-op-parentheses',
!                  '-Wunused-function', '-Wunneeded-internal-declaration',
!                  '-Wvla-cxx-extension', '-Wunused-command-line-argument'],
! 
!             'diagnostics/paths-output.cc': ['m_logical_loc_mgr'],
!             'fold-const-call.cc': ['-Wreturn-type'],
!             'gimple-match': ['-Wunused-', '-Wtautological-compare'],
!             'generic-match': ['-Wunused-', '-Wtautological-compare'],
!             'genautomata.cc': ['-Wstring-plus-int'],
!             # Perhaps revisit when ATTR_FNSPEC_DECONST_WATERMARK ifdef case is
!             # made default or removed:
!             'ipa-strub.cc': ['-Wunused-but-set-variable'],
              'insn-modes.cc': ['-Wshift-count-overflow'],
              'insn-emit.cc': ['-Wtautological-compare'],
              'insn-attrtab.cc': ['-Wparentheses-equality'],
!             'omp-builtins.def': ['-Wc++11-narrowing'],
!             'wide-int.h': ['-Wnontrivial-memcall'],
              'i386.md': ['-Wparentheses-equality', '-Wtautological-compare',
                          '-Wtautological-overlap-compare'],
              'sse.md': ['-Wparentheses-equality', '-Wtautological-compare',
                         '-Wconstant-logical-operand'],
              'mmx.md': ['-Wtautological-compare'],
              'lex.cc': ['-Wc++20-attribute-extensions'],
+             # Perhaps remove once PR 120960 is resolved:
+             'analyzer/ana-state-to-diagnostic-state.h': ['-Wunused-private-field'],
+             'analyzer/sm.cc': ['-Wunused-parameter'],
+             'c-family/c-format.cc': ['-Wunused-private-field'],
+             'm2/gm2-compiler-boot': ['-Wunused-'],
+             # Rust peopel promised to clean these warnings too
+             'rust/': ['-Wunused-private-field'],
+             # except perhaps for this one, see
+             # https://github.com/Rust-GCC/gccrs/issues/4441
+             'rust/ast/rust-fmt.h': ['-Wreturn-type-c-linkage'],
+             'libiberty/': ["-Wimplicit-int-enum-cast"],
+             'libiberty/sha1.c': ['-Wc23-extensions'],
+             'libtool': ['']
      }
  
+     if ".texi" in filename:
+         return True
+ 
      for name, ignore in ignores.items():
          for i in ignore:
              if name in filename and i in message:
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/git_check_commit.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_check_commit.py
*** gcc-15.2.0/contrib/gcc-changelog/git_check_commit.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_check_commit.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/git_commit.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_commit.py
*** gcc-15.2.0/contrib/gcc-changelog/git_commit.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_commit.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** default_changelog_locations = {
*** 33,38 ****
--- 33,39 ----
      'contrib/regression',
      'fixincludes',
      'gcc/ada',
+     'gcc/algol68',
      'gcc/analyzer',
      'gcc/brig',
      'gcc/c',
*************** default_changelog_locations = {
*** 64,69 ****
--- 65,71 ----
      'libcpp/po',
      'libdecnumber',
      'libffi',
+     'libga68',
      'libgcc',
      'libgcc/config/avr/libf7',
      'libgcc/config/libbid',
*************** default_changelog_locations = {
*** 88,93 ****
--- 90,96 ----
  
  bug_components = {
      'ada',
+     'algol68',
      'analyzer',
      'boehm-gc',
      'bootstrap',
*************** bug_components = {
*** 97,102 ****
--- 100,106 ----
      'd',
      'debug',
      'demangler',
+     'diagnostics',
      'driver',
      'fastjar',
      'fortran',
*************** ignored_prefixes = {
*** 149,157 ****
--- 153,164 ----
      'gcc/testsuite/go.test/test/',
      'libffi/',
      'libgo/',
+     'libgrust/rustc-lib/core/',
+     'libgrust/rustc-lib/stdarch/',
      'libphobos/libdruntime/',
      'libphobos/src/',
      'libsanitizer/',
+     'zlib/',
      }
  
  wildcard_prefixes = {
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/git_email.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_email.py
*** gcc-15.2.0/contrib/gcc-changelog/git_email.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_email.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/git_repository.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_repository.py
*** gcc-15.2.0/contrib/gcc-changelog/git_repository.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_repository.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/git_update_version.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_update_version.py
*** gcc-15.2.0/contrib/gcc-changelog/git_update_version.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/git_update_version.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** ignored_commits = {
*** 47,53 ****
          '72677e1119dc40aa680755d009e079ad49446c46',
          '10d76b7f1e5b63ad6d2b92940c39007913ced037',
          'de3b277247ce98d189f121155b75f490725a42f6',
!         '13cf22eb557eb5e3d796822247d8d4957bdb25da'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
--- 47,60 ----
          '72677e1119dc40aa680755d009e079ad49446c46',
          '10d76b7f1e5b63ad6d2b92940c39007913ced037',
          'de3b277247ce98d189f121155b75f490725a42f6',
!         '13cf22eb557eb5e3d796822247d8d4957bdb25da',
!         'b40ef6e9dc096c8c19399e94947a1965258a6942',
!         'e69bea9b4ccfe79efeec6e87d7d24e6350f31375',
!         '9a7da540b63e7d77e747b5cdd6fdbbd3954e28c8',
!         '69a2c243dd2cf9f77150c0eb86dfbc0931876bc1',
!         'eec8da328cf1f91db302ab4cee803e269e68ad33',
!         '9df40f1f4bec855da864f535e242308ceb1cd5ad',
!         'd5fb79718b22207253d62c92dcf8b1c16e1ea370'}
  
  FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s'
  logging.basicConfig(level=logging.INFO, format=FORMAT,
*************** def prepend_to_changelog_files(repo, fol
*** 86,92 ****
  
  
  active_refs = ['master',
!                'releases/gcc-12', 'releases/gcc-13', 'releases/gcc-14']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
--- 93,99 ----
  
  
  active_refs = ['master',
!                'releases/gcc-13', 'releases/gcc-14', 'releases/gcc-15']
  
  parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
                                   'ChangeLog entries')
diff -Nrcpad gcc-15.2.0/contrib/gcc-changelog/test_email.py gcc-16.1.0-RC-20260423/contrib/gcc-changelog/test_email.py
*** gcc-15.2.0/contrib/gcc-changelog/test_email.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc-changelog/test_email.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/gcc.doxy gcc-16.1.0-RC-20260423/contrib/gcc.doxy
*** gcc-15.2.0/contrib/gcc.doxy	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc.doxy	Thu Apr 23 11:07:32 2026
*************** WARN_LOGFILE           =
*** 478,484 ****
  # directories like "/usr/src/myproject". Separate the files or directories 
  # with spaces.
  
! INPUT                  = gcc gcc/analyzer
  
  # This tag can be used to specify the character encoding of the source files that 
  # doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
--- 478,484 ----
  # directories like "/usr/src/myproject". Separate the files or directories 
  # with spaces.
  
! INPUT                  = gcc gcc/analyzer gcc/custom-sarif-properties gcc/diagnostics gcc/text-art
  
  # This tag can be used to specify the character encoding of the source files that 
  # doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
diff -Nrcpad gcc-15.2.0/contrib/gcc_build gcc-16.1.0-RC-20260423/contrib/gcc_build
*** gcc-15.2.0/contrib/gcc_build	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gcc_build	Thu Apr 23 11:07:32 2026
***************
*** 11,17 ****
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 11,17 ----
  # Contents:
  #   Script to automatically download and build GCC.
  #
! # Copyright (C) 2000-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/gen_autofdo_event.py gcc-16.1.0-RC-20260423/contrib/gen_autofdo_event.py
*** gcc-15.2.0/contrib/gen_autofdo_event.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gen_autofdo_event.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/usr/bin/python3
  # Generate Intel taken branches Linux perf event script for autofdo profiling.
  
! # Copyright (C) 2016-2026 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify it under
  # the terms of the GNU General Public License as published by the Free
*************** if [ "$1" = "--all" ] ; then
*** 138,145 ****
    shift
  fi
  
! if ! grep -q Intel /proc/cpuinfo ; then
!   echo >&2 "Only Intel CPUs supported"
    exit 1
  fi
  
--- 138,153 ----
    shift
  fi
  
! if grep -q AuthenticAMD /proc/cpuinfo ; then
!   vendor=AMD
!   if ! grep -q " brs" /proc/cpuinfo && ! grep -q amd_lbr_v2 /proc/cpuinfo ; then
!     echo >&2 "AMD CPU with brs (Zen 3) or amd_lbr_v2 (Zen 4+) feature is required"
!     exit 1
!   fi
! elif grep -q Intel /proc/cpuinfo ; then
!   vendor=Intel
! else
!   echo >&2 "Only AMD and Intel CPUs supported"
    exit 1
  fi
  
*************** if grep -q hypervisor /proc/cpuinfo ; th
*** 147,153 ****
    echo >&2 "Warning: branch profiling may not be functional in VMs"
  fi
  
! case `grep -E -q "^cpu family\s*: 6" /proc/cpuinfo &&
    grep -E "^model\s*:" /proc/cpuinfo | head -n1` in''')
      for event, mod in eventmap.items():
          for m in mod[:-1]:
--- 155,161 ----
    echo >&2 "Warning: branch profiling may not be functional in VMs"
  fi
  
! case `test $vendor = Intel && grep -E -q "^cpu family\s*: 6" /proc/cpuinfo &&
    grep -E "^model\s*:" /proc/cpuinfo | head -n1` in''')
      for event, mod in eventmap.items():
          for m in mod[:-1]:
*************** case `grep -E -q "^cpu family\s*: 6" /pr
*** 156,163 ****
      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")
--- 164,176 ----
      print(r'''*)
          if perf list br_inst_retired | grep -q br_inst_retired.near_taken ; then
              E=br_inst_retired.near_taken:p
+         elif perf list ex_ret_brn_tkn | grep -q ex_ret_brn_tkn ; then
+             E=ex_ret_brn_tkn:P$FLAGS
+         elif $vendor = Intel ; then
+ echo >&2 "Unknown Intel CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
+ 	  exit 1
          else
! echo >&2 "AMD CPU without support for ex_ret_brn_tkn event"
  	  exit 1
          fi ;;''')
      print(r"esac")
diff -Nrcpad gcc-15.2.0/contrib/gennews gcc-16.1.0-RC-20260423/contrib/gennews
*** gcc-15.2.0/contrib/gennews	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/gennews	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Script to generate the NEWS file from online release notes.
  # Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  #
! # Copyright (C) 2000-2026 Free Software Foundation, Inc.
  # This file is part of GCC.
  #
  # GCC is free software; you can redistribute it and/or modify
diff -Nrcpad gcc-15.2.0/contrib/git-backport.py gcc-16.1.0-RC-20260423/contrib/git-backport.py
*** gcc-15.2.0/contrib/git-backport.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/git-backport.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/git-commit-mklog.py gcc-16.1.0-RC-20260423/contrib/git-commit-mklog.py
*** gcc-15.2.0/contrib/git-commit-mklog.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/git-commit-mklog.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/git-fix-changelog.py gcc-16.1.0-RC-20260423/contrib/git-fix-changelog.py
*** gcc-15.2.0/contrib/git-fix-changelog.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/git-fix-changelog.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/header-tools/ChangeLog gcc-16.1.0-RC-20260423/contrib/header-tools/ChangeLog
*** gcc-15.2.0/contrib/header-tools/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/contrib/header-tools/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,11 ****
- 2025-08-08  Release Manager
- 
- 	* GCC 15.2.0 released.
- 
- 2025-04-25  Release Manager
- 
- 	* GCC 15.1.0 released.
- 
  2024-06-05  Jonathan Wakely  <jwakely@redhat.com>
  
  	* README: Fix spelling and capitalization typos.
--- 1,3 ----
diff -Nrcpad gcc-15.2.0/contrib/jit-coverage-report.py gcc-16.1.0-RC-20260423/contrib/jit-coverage-report.py
*** gcc-15.2.0/contrib/jit-coverage-report.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/jit-coverage-report.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 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-2026 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-15.2.0/contrib/legacy/mklog gcc-16.1.0-RC-20260423/contrib/legacy/mklog
*** gcc-15.2.0/contrib/legacy/mklog	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/legacy/mklog	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2017-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/legacy/mklog.pl gcc-16.1.0-RC-20260423/contrib/legacy/mklog.pl
*** gcc-15.2.0/contrib/legacy/mklog.pl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/legacy/mklog.pl	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  #!/usr/bin/perl
! # Copyright (C) 2012-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,5 ----
  #!/usr/bin/perl
! # Copyright (C) 2012-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/make_sunver.pl gcc-16.1.0-RC-20260423/contrib/make_sunver.pl
*** gcc-15.2.0/contrib/make_sunver.pl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/make_sunver.pl	Thu Apr 23 11:07:32 2026
*************** foreach $file (@ARGV) {
*** 66,72 ****
  # columns.
  
  # The path to elfdump.
! my $elfdump = "/usr/ccs/bin/elfdump";
  
  if (-f $elfdump) {
      open ELFDUMP,$elfdump.' -s '.(join ' ',@OBJECTS).'|' or die $!;
--- 66,72 ----
  # columns.
  
  # The path to elfdump.
! my $elfdump = "/usr/bin/elfdump";
  
  if (-f $elfdump) {
      open ELFDUMP,$elfdump.' -s '.(join ' ',@OBJECTS).'|' or die $!;
diff -Nrcpad gcc-15.2.0/contrib/mark_spam.py gcc-16.1.0-RC-20260423/contrib/mark_spam.py
*** gcc-15.2.0/contrib/mark_spam.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/mark_spam.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2025 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2016-2026 Free Software Foundation, Inc.
  #
  # Script to mark bunch of PRs as spam 
  #
diff -Nrcpad gcc-15.2.0/contrib/mklog.py gcc-16.1.0-RC-20260423/contrib/mklog.py
*** gcc-15.2.0/contrib/mklog.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/mklog.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** def skip_line_in_changelog(line):
*** 360,366 ****
      return FIRST_LINE_OF_END_RE.match(line) is None
  
  
! if __name__ == '__main__':
      extra_args = os.getenv('GCC_MKLOG_ARGS')
      if extra_args:
          sys.argv += json.loads(extra_args)
--- 360,366 ----
      return FIRST_LINE_OF_END_RE.match(line) is None
  
  
! def main():
      extra_args = os.getenv('GCC_MKLOG_ARGS')
      if extra_args:
          sys.argv += json.loads(extra_args)
*************** if __name__ == '__main__':
*** 389,394 ****
--- 389,395 ----
      if args.input == '-':
          args.input = None
      if args.directory:
+         global root
          root = args.directory
  
      data = open(args.input, newline='\n') if args.input else sys.stdin
*************** if __name__ == '__main__':
*** 447,449 ****
--- 448,453 ----
                  f.write('\n'.join(end))
          else:
              print(output, end='')
+ 
+ if __name__ == '__main__':
+     main()
diff -Nrcpad gcc-15.2.0/contrib/patch_tester.sh gcc-16.1.0-RC-20260423/contrib/patch_tester.sh
*** gcc-15.2.0/contrib/patch_tester.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/patch_tester.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/bin/sh
  
  # Tests a set of patches from a directory.
! # Copyright (C) 2007-2026 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-15.2.0/contrib/prepare-commit-msg gcc-16.1.0-RC-20260423/contrib/prepare-commit-msg
*** gcc-15.2.0/contrib/prepare-commit-msg	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/prepare-commit-msg	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/bin/sh
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/bin/sh
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** else
*** 78,81 ****
--- 78,86 ----
      tee="cat"
  fi
  
+ # Use --default-prefix if supported
+ if git diff --help | grep -q "\-\-default-prefix" 2>/dev/null; then
+     cmd="$cmd --default-prefix"
+ fi
+ 
  git $cmd | $tee | git gcc-mklog -c "$COMMIT_MSG_FILE"
diff -Nrcpad gcc-15.2.0/contrib/prepare_patch.sh gcc-16.1.0-RC-20260423/contrib/prepare_patch.sh
*** gcc-15.2.0/contrib/prepare_patch.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/prepare_patch.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 2,8 ----
  #set -x
  
  # Prepares a patch for the patch tester.
! # Copyright (C) 2007-2026 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-15.2.0/contrib/prerequisites.md5 gcc-16.1.0-RC-20260423/contrib/prerequisites.md5
*** gcc-15.2.0/contrib/prerequisites.md5	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/prerequisites.md5	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
! 28971fc21cf028042d4897f02fd355ea  gmp-6.2.1.tar.bz2
! 44b892bc5a45bafb4294d134e13aad1d  mpfr-4.1.0.tar.bz2
! 9f16c976c25bb0f76b50be749cd7a3a8  mpc-1.2.1.tar.gz
  dd2f7b78e118c25bd96134a52aae7f4d  isl-0.24.tar.bz2
  c092102240f8f66134d22718421d5115  gettext-0.22.tar.gz
--- 1,5 ----
! c1cd6ef33085e9cb818b9b08371f9000  gmp-6.3.0.tar.bz2
! afe8268360bc8702fbc8297d351c8b5e  mpfr-4.2.2.tar.bz2
! 5c9bc658c9fd0f940e8e3e0f09530c62  mpc-1.3.1.tar.gz
  dd2f7b78e118c25bd96134a52aae7f4d  isl-0.24.tar.bz2
  c092102240f8f66134d22718421d5115  gettext-0.22.tar.gz
diff -Nrcpad gcc-15.2.0/contrib/prerequisites.sha512 gcc-16.1.0-RC-20260423/contrib/prerequisites.sha512
*** gcc-15.2.0/contrib/prerequisites.sha512	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/prerequisites.sha512	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
! 8904334a3bcc5c896ececabc75cda9dec642e401fb5397c4992c4fabea5e962c9ce8bd44e8e4233c34e55c8010cc28db0545f5f750cbdbb5f00af538dc763be9  gmp-6.2.1.tar.bz2
! 410208ee0d48474c1c10d3d4a59decd2dfa187064183b09358ec4c4666e34d74383128436b404123b831e585d81a9176b24c7ced9d913967c5fce35d4040a0b4  mpfr-4.1.0.tar.bz2
! 3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee  mpc-1.2.1.tar.gz
  aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95  isl-0.24.tar.bz2
  e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
--- 1,5 ----
! 3b684c9bcb9ede2b7e54d0ba4c9764bfa17c20d4f3000017c553b6f1e135b536949580ff37341680c25dc236cfe0ba1db8cfdfe619ce013656189ef0871b89f8  gmp-6.3.0.tar.bz2
! 0176e50808dcc07afbf5bc3e38bf9b7b21918e5f194aa0bfd860d99b00c470630aef149776c4be814a61c44269c3a5b9a4b0b1c0fcd4c9feb1459d8466452da8  mpfr-4.2.2.tar.bz2
! 4bab4ef6076f8c5dfdc99d810b51108ced61ea2942ba0c1c932d624360a5473df20d32b300fc76f2ba4aa2a97e1f275c9fd494a1ba9f07c4cb2ad7ceaeb1ae97  mpc-1.3.1.tar.gz
  aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95  isl-0.24.tar.bz2
  e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04  gettext-0.22.tar.gz
diff -Nrcpad gcc-15.2.0/contrib/regenerate-sarif-spec-index.py gcc-16.1.0-RC-20260423/contrib/regenerate-sarif-spec-index.py
*** gcc-15.2.0/contrib/regenerate-sarif-spec-index.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/regenerate-sarif-spec-index.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2024-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2024-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/reghunt/ChangeLog gcc-16.1.0-RC-20260423/contrib/reghunt/ChangeLog
*** gcc-15.2.0/contrib/reghunt/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,11 ****
- 2025-08-08  Release Manager
- 
- 	* GCC 15.2.0 released.
- 
- 2025-04-25  Release Manager
- 
- 	* GCC 15.1.0 released.
- 
  2023-05-18  Jonathan Wakely  <jwakely@redhat.com>
  
  	PR bootstrap/105831
--- 1,3 ----
diff -Nrcpad gcc-15.2.0/contrib/reghunt/bin/gcc-build-full gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-build-full
*** gcc-15.2.0/contrib/reghunt/bin/gcc-build-full	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-build-full	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 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-2026 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-15.2.0/contrib/reghunt/bin/gcc-build-simple gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-build-simple
*** gcc-15.2.0/contrib/reghunt/bin/gcc-build-simple	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-build-simple	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 5,11 ----
  #
  # This doesn't work for sources earlier than about 2003-02-25.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-svn-patchlist gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-svn-patchlist
*** gcc-15.2.0/contrib/reghunt/bin/gcc-svn-patchlist	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-svn-patchlist	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 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-2026 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-15.2.0/contrib/reghunt/bin/gcc-svn-update gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-svn-update
*** gcc-15.2.0/contrib/reghunt/bin/gcc-svn-update	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-svn-update	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Update or check out GCC sources for a particular Subversion revision
  # and a particular branch.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-accepts-invalid
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-accepts-invalid	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-accepts-invalid	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test an "accepts-invalid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-bogus-warning gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-bogus-warning
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-bogus-warning	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-bogus-warning	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test a "bogus-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-compiler-hangs
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-compiler-hangs	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-compiler-hangs	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test a bug for which the compiler hangs, using environment variables
  # set in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-ice-on-invalid-code
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-ice-on-invalid-code	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test an "ice-on-invalid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-ice-on-valid-code
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-ice-on-valid-code	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test an "ice-on-valid-code" GCC bug, using environment variables set
  # in several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-missing-warning gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-missing-warning
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-missing-warning	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-missing-warning	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test a "missing-warning" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-rejects-valid gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-rejects-valid
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-rejects-valid	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-rejects-valid	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test a "rejects-valid" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-segfault-on-valid-code
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-segfault-on-valid-code	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 4,10 ----
  # segfault, using environment variables set in several reghunt scripts
  # and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/gcc-test-wrong-code gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-wrong-code
*** gcc-15.2.0/contrib/reghunt/bin/gcc-test-wrong-code	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/gcc-test-wrong-code	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  # Test a "wrong-code" GCC bug, using environment variables set in
  # several reghunt scripts and configuration files.
  #
! # Copyright (C) 2007-2026 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-15.2.0/contrib/reghunt/bin/reg-hunt gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-hunt
*** gcc-15.2.0/contrib/reghunt/bin/reg-hunt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-hunt	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 47,53 ----
  #
  #
  #
! # Copyright (C) 2002-2026 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-15.2.0/contrib/reghunt/bin/reg-newmid gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-newmid
*** gcc-15.2.0/contrib/reghunt/bin/reg-newmid	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-newmid	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 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-2026 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-15.2.0/contrib/reghunt/bin/reg-test gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-test
*** gcc-15.2.0/contrib/reghunt/bin/reg-test	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/bin/reg-test	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2026 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-15.2.0/contrib/reghunt/date_based/reg_periodic gcc-16.1.0-RC-20260423/contrib/reghunt/date_based/reg_periodic
*** gcc-15.2.0/contrib/reghunt/date_based/reg_periodic	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/date_based/reg_periodic	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 25,31 ----
  #               is STOP in the current directory.
  #
  #
! # Copyright (C) 2002-2026 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-15.2.0/contrib/reghunt/date_based/reg_search gcc-16.1.0-RC-20260423/contrib/reghunt/date_based/reg_search
*** gcc-15.2.0/contrib/reghunt/date_based/reg_search	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/reghunt/date_based/reg_search	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 45,51 ----
  #
  #
  #
! # Copyright (C) 2002-2026 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-15.2.0/contrib/regression/ChangeLog gcc-16.1.0-RC-20260423/contrib/regression/ChangeLog
*** gcc-15.2.0/contrib/regression/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/contrib/regression/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,11 ****
- 2025-08-08  Release Manager
- 
- 	* GCC 15.2.0 released.
- 
- 2025-04-25  Release Manager
- 
- 	* GCC 15.1.0 released.
- 
  2023-11-23  Hans-Peter Nilsson  <hp@axis.com>
  
  	* btest-gcc.sh (--handle-xpass-as-fail): New option.
--- 1,3 ----
diff -Nrcpad gcc-15.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html gcc-16.1.0-RC-20260423/contrib/regression/GCC_Regression_Tester.wdgt/widget.html
*** gcc-15.2.0/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/regression/GCC_Regression_Tester.wdgt/widget.html	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,5 ----
  <!-- Get and update the GCC regression tester's web page.
!      Copyright (C) 2005-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/contrib/regression/btest-gcc.sh gcc-16.1.0-RC-20260423/contrib/regression/btest-gcc.sh
*** gcc-15.2.0/contrib/regression/btest-gcc.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/regression/btest-gcc.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/bin/sh
  
  #  Test GCC.
! #  Copyright (C) 1999-2026 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-15.2.0/contrib/regression/mkindex.pl gcc-16.1.0-RC-20260423/contrib/regression/mkindex.pl
*** gcc-15.2.0/contrib/regression/mkindex.pl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/regression/mkindex.pl	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/usr/bin/perl
  
  # Copy log files from a GCC build for HTTP access.
! # Copyright (C) 2008-2026 Free Software Foundation, Inc.
  # 
  # This program is free software: you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-15.2.0/contrib/regression/objs-gcc.sh gcc-16.1.0-RC-20260423/contrib/regression/objs-gcc.sh
*** gcc-15.2.0/contrib/regression/objs-gcc.sh	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/regression/objs-gcc.sh	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/bin/sh
  
  #  Build tools for testing GCC.
! #  Copyright (C) 1999-2026 Free Software Foundation, Inc.
  
  #  This program is free software; you can redistribute it and/or modify
  #  it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-15.2.0/contrib/sarif-listener.py gcc-16.1.0-RC-20260423/contrib/sarif-listener.py
*** gcc-15.2.0/contrib/sarif-listener.py	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/sarif-listener.py	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,41 ----
+ #!/usr/bin/env python3
+ 
+ # Example listener for SARIF output to a socket.
+ # Copyright (C) 2025-2026 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/>.  */
+ 
+ from pathlib import Path
+ from socketserver import UnixStreamServer, StreamRequestHandler, ThreadingMixIn
+ import tempfile
+ 
+ class MyHandler(StreamRequestHandler):
+     def handle(self):
+         notification = self.rfile.read()
+         print(notification)
+ 
+ class ThreadedUnixStreamServer(ThreadingMixIn, UnixStreamServer):
+     pass
+ 
+ if __name__ == '__main__':
+     with tempfile.TemporaryDirectory() as tmpdir:
+         socket_path = Path(tmpdir) / 'socket'
+         with ThreadedUnixStreamServer(socket_path.as_posix(),
+                                       MyHandler) as server:
+             print('listening on socket: %s' % socket_path)
+             server.serve_forever()
diff -Nrcpad gcc-15.2.0/contrib/test_installed gcc-16.1.0-RC-20260423/contrib/test_installed
*** gcc-15.2.0/contrib/test_installed	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/test_installed	Thu Apr 23 11:07:32 2026
*************** if test -f site.exp; then
*** 42,56 ****
--- 42,65 ----
      exit 1
  fi
  
+ libiconv=-liconv
  while true; do
    case "$1" in
    --with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --target=*) target=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --enable-plugin) ENABLE_PLUGIN=1; shift;;
    --with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-gfortran=*) GFORTRAN_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-alt-cc=*) ALT_CC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-alt-cxx=*) ALT_CXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-compat-options=*) COMPAT_OPTIONS=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-libiconv=*) libiconv=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-plugincc=*) PLUGINCC=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-plugincflags=*) PLUGINCFLAGS=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-gmpinc=*) GMPINC=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --without-gcc) GCC_UNDER_TEST=no; shift;;
    --without-g++) GXX_UNDER_TEST=no; shift;;
    --without-gfortran) GFORTRAN_UNDER_TEST=no; shift;;
*************** while true; do
*** 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:
--- 69,75 ----
  
    --help) cat <<\EOF
  Runs the testsuite for an installed version of gcc/g++/gfortran/objc
! Copyright (C) 1998-2026 Free Software Foundation, Inc.
  by Alexandre Oliva <oliva@dcc.unicamp.br>
  
  Supported arguments:
*************** Supported arguments:
*** 75,83 ****
--- 84,100 ----
                                tested if different than the host.
  
  --prefix=/some/dir            use gcc, g++ and gfortran from /some/dir/bin [PATH]
+ --enable-plugin               run GCC plugin tests
  --with-gcc=/some/dir/bin/gcc  use specified gcc program [gcc]
  --with-g++=/some/dir/bin/g++  use specified g++ program [g++]
  --with-gfortran=/some/dir/bin/gfortran  use specified gfortran program [gfortran]
+ --with-alt-cc=/some/compiler  use specified alternative compiler in compat tests
+ --with-alt-cxx=/some/compiler use specified alternative compiler in compat tests
+ --with-compat-options=opts    use specified COMPAT_OPTIONS in compat tests
+ --with-libiconv=linker-args   use given arguments to link with iconv [-liconv]
+ --with-plugincc=/some/c++     use given host compiler to build plugins [g++]
+ --with-plugincflags=args      use given options to build plugins [-g -O2]
+ --with-gmpinc=args            use given options to find GMP for host []
  --without-gcc                 do not run gcc testsuite
  --without-g++                 do not run g++ testsuite
  --without-gfortran            do not run gfortran testsuite
*************** EOF
*** 95,128 ****
    *) break;;
    esac
  done
!   
  if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
!   file=$0
!   while [ -h $file ]; do
!     file=`ls -l $file | sed s/'.* -> '//`
!   done
!   srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
  fi
  
  cat >site.exp <<EOF
  set rootme "."
  set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
  set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
  set CFLAGS ""
  set CXXFLAGS ""
! set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
! set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
! set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}gfortran}"
! set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
  set HOSTCC "${HOSTCC-cc}"
  set HOSTCXX "${HOSTCXX-c++}"
  set HOSTCFLAGS ""
  set HOSTCXXFLAGS ""
  EOF
  if test x${target} != x; then
!   echo "set target_triplet $target" >> site.exp
    echo "set target_alias $target" >> site.exp
  fi
  
  test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
  test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
--- 112,169 ----
    *) break;;
    esac
  done
! 
! # Determine the source directory to find config.sub, whether or not
! # that is also used to locate the testsuite sources.
! file=$0
! while [ -h $file ]; do
!   file=`ls -l $file | sed s/'.* -> '//`
! done
! top_srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
  if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
!   srcdir=$top_srcdir
  fi
  
  cat >site.exp <<EOF
  set rootme "."
  set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
  set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
+ set libiconv "$libiconv"
  set CFLAGS ""
  set CXXFLAGS ""
! set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}\
! ${target+$target-}gcc}"
! set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}\
! ${target+$target-}g++}"
! set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}\
! ${target+$target-}gfortran}"
! set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}\
! ${target+$target-}gcc}"
  set HOSTCC "${HOSTCC-cc}"
  set HOSTCXX "${HOSTCXX-c++}"
  set HOSTCFLAGS ""
  set HOSTCXXFLAGS ""
  EOF
  if test x${target} != x; then
!   target_canonical=`$top_srcdir/config.sub $target`
!   echo "set target_triplet $target_canonical" >> site.exp
    echo "set target_alias $target" >> site.exp
  fi
+ if test x"$ALT_CC_UNDER_TEST" != x; then
+   echo "set ALT_CC_UNDER_TEST \"${ALT_CC_UNDER_TEST}\"" >> site.exp
+ fi
+ if test x"$ALT_CXX_UNDER_TEST" != x; then
+   echo "set ALT_CXX_UNDER_TEST \"${ALT_CXX_UNDER_TEST}\"" >> site.exp
+ fi
+ if test x"$COMPAT_OPTIONS" != x; then
+   echo "set COMPAT_OPTIONS \"${COMPAT_OPTIONS}\"" >> site.exp
+ fi
+ if test x"$ENABLE_PLUGIN" != x; then
+     echo "set ENABLE_PLUGIN \"${ENABLE_PLUGIN}\"" >> site.exp
+     echo "set PLUGINCC \"${PLUGINCC-g++}\"" >> site.exp
+     echo "set PLUGINCFLAGS \"${PLUGINCFLAGS--g -O2}\"" >> site.exp
+     echo "set GMPINC \"${GMPINC}\"" >> site.exp
+ fi
  
  test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
  test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
diff -Nrcpad gcc-15.2.0/contrib/test_mklog.py gcc-16.1.0-RC-20260423/contrib/test_mklog.py
*** gcc-15.2.0/contrib/test_mklog.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/test_mklog.py	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,6 ----
  #!/usr/bin/env python3
  
! # Copyright (C) 2020-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
*************** index aab79492357..f0df1002488 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
--- 155,161 ----
  +
  +
   /* Interprocedural Identical Code Folding pass
!     Copyright (C) 2014-2026 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-2025 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-2026 Free Software Foundation, Inc.
   
  diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c
  index 4ad78c1f77b..6687b368038 100644
diff -Nrcpad gcc-15.2.0/contrib/testsuite-management/validate_failures.py gcc-16.1.0-RC-20260423/contrib/testsuite-management/validate_failures.py
*** gcc-15.2.0/contrib/testsuite-management/validate_failures.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/testsuite-management/validate_failures.py	Thu Apr 23 11:07:32 2026
***************
*** 5,11 ****
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 5,11 ----
  
  # Contributed by Diego Novillo <dnovillo@google.com>
  #
! # Copyright (C) 2011-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/contrib/texi2pod.pl gcc-16.1.0-RC-20260423/contrib/texi2pod.pl
*** gcc-15.2.0/contrib/texi2pod.pl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/texi2pod.pl	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2025 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
--- 1,6 ----
  #! /usr/bin/perl -w
  
! #   Copyright (C) 1999-2026 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/contrib/unicode/DerivedCoreProperties.txt gcc-16.1.0-RC-20260423/contrib/unicode/DerivedCoreProperties.txt
*** gcc-15.2.0/contrib/unicode/DerivedCoreProperties.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/DerivedCoreProperties.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # DerivedCoreProperties-17.0.0.txt
! # Date: 2025-07-30, 23:55:08 GMT
! # © 2025 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
  #
*************** FF5E          ; Math # Sm       FULLWIDT
*** 178,183 ****
--- 178,184 ----
  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
+ 1CEF0         ; Math # Sm       MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
  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,260 ****
  1EEA5..1EEA9  ; Math # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  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
  
  # ================================================
  
--- 254,262 ----
  1EEA5..1EEA9  ; Math # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  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
+ 1F8D0..1F8D8  ; Math # Sm   [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
  
! # Total code points: 2322
  
  # ================================================
  
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 273,280 ****
  01BC..01BF    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; Alphabetic # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; Alphabetic # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; Alphabetic # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; Alphabetic # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; Alphabetic # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; Alphabetic # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; Alphabetic # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 275,282 ----
  01BC..01BF    ; Alphabetic # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; Alphabetic # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; Alphabetic # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; Alphabetic # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; Alphabetic # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; Alphabetic # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; Alphabetic # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; Alphabetic # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 344,350 ****
  0840..0858    ; Alphabetic # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  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
--- 346,352 ----
  0840..0858    ; Alphabetic # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  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..088F    ; Alphabetic # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  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
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 477,483 ****
  0C4A..0C4C    ; Alphabetic # Mn   [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
  0C55..0C56    ; Alphabetic # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; Alphabetic # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; Alphabetic # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; Alphabetic # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; Alphabetic # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C80          ; Alphabetic # Lo       KANNADA SIGN SPACING CANDRABINDU
--- 479,485 ----
  0C4A..0C4C    ; Alphabetic # Mn   [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
  0C55..0C56    ; Alphabetic # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; Alphabetic # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; Alphabetic # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; Alphabetic # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; Alphabetic # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C80          ; Alphabetic # Lo       KANNADA SIGN SPACING CANDRABINDU
*************** FFE9..FFEC    ; Math # Sm   [4] HALFWIDT
*** 497,503 ****
  0CCA..0CCB    ; Alphabetic # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC          ; Alphabetic # Mn       KANNADA VOWEL SIGN AU
  0CD5..0CD6    ; Alphabetic # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE    ; Alphabetic # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; Alphabetic # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CF1..0CF2    ; Alphabetic # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
--- 499,505 ----
  0CCA..0CCB    ; Alphabetic # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC          ; Alphabetic # Mn       KANNADA VOWEL SIGN AU
  0CD5..0CD6    ; Alphabetic # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDC..0CDE    ; Alphabetic # Lo   [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1    ; Alphabetic # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; Alphabetic # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CF1..0CF2    ; Alphabetic # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
*************** A771..A787    ; Alphabetic # L&  [23] LA
*** 833,843 ****
  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
  A7F8..A7F9    ; Alphabetic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 835,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..A7DC    ; Alphabetic # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; Alphabetic # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; Alphabetic # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1020,1025 ****
--- 1019,1025 ----
  108F4..108F5  ; Alphabetic # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
  10900..10915  ; Alphabetic # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
  10920..10939  ; Alphabetic # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10940..10959  ; Alphabetic # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; Alphabetic # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BE..109BF  ; Alphabetic # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
  10A00         ; Alphabetic # Lo       KHAROSHTHI LETTER A
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1053,1059 ****
  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
--- 1053,1061 ----
  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
! 10EC5         ; Alphabetic # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
! 10EC6..10EC7  ; Alphabetic # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
! 10EFA..10EFC  ; Alphabetic # Mn   [3] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 1239,1244 ****
--- 1241,1252 ----
  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
+ 11B60         ; Alphabetic # Mn       SHARADA VOWEL SIGN OE
+ 11B61         ; Alphabetic # Mc       SHARADA VOWEL SIGN OOE
+ 11B62..11B64  ; Alphabetic # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B65         ; Alphabetic # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B66         ; Alphabetic # Mn       SHARADA VOWEL SIGN CANDRA E
+ 11B67         ; Alphabetic # Mc       SHARADA VOWEL SIGN CANDRA O
  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
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1274,1279 ****
--- 1282,1290 ----
  11D95         ; Alphabetic # Mn       GUNJALA GONDI SIGN ANUSVARA
  11D96         ; Alphabetic # Mc       GUNJALA GONDI SIGN VISARGA
  11D98         ; Alphabetic # Lo       GUNJALA GONDI OM
+ 11DB0..11DD8  ; Alphabetic # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; Alphabetic # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; Alphabetic # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
  11EE0..11EF2  ; Alphabetic # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11EF3..11EF4  ; Alphabetic # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
  11EF5..11EF6  ; Alphabetic # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1311,1316 ****
--- 1322,1329 ----
  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
+ 16EA0..16EB8  ; Alphabetic # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; Alphabetic # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; Alphabetic # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; Alphabetic # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F50         ; Alphabetic # Lo       MIAO LETTER NASALIZATION
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1320,1328 ****
  16FE0..16FE1  ; Alphabetic # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; Alphabetic # Lm       OLD CHINESE ITERATION MARK
  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
--- 1333,1343 ----
  16FE0..16FE1  ; Alphabetic # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; Alphabetic # Lm       OLD CHINESE ITERATION MARK
  16FF0..16FF1  ; Alphabetic # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 16FF2..16FF3  ; Alphabetic # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; Alphabetic # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; Alphabetic # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; Alphabetic # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; Alphabetic # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
*** 1387,1392 ****
--- 1402,1418 ----
  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
+ 1E6C0..1E6DE  ; Alphabetic # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; Alphabetic # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E3         ; Alphabetic # Mn       TAI YO SIGN UE
+ 1E6E4..1E6E5  ; Alphabetic # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E6         ; Alphabetic # Mn       TAI YO SIGN AU
+ 1E6E7..1E6ED  ; Alphabetic # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6EE..1E6EF  ; Alphabetic # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F0..1E6F4  ; Alphabetic # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6F5         ; Alphabetic # Mn       TAI YO SIGN OM
+ 1E6FE         ; Alphabetic # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; Alphabetic # Lm       TAI YO XAM LAI
  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
*** 1432,1447 ****
  1F150..1F169  ; Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  20000..2A6DF  ; Alphabetic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; Alphabetic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Alphabetic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  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
  
  # ================================================
  
--- 1458,1472 ----
  1F150..1F169  ; Alphabetic # So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
  1F170..1F189  ; Alphabetic # So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
  20000..2A6DF  ; Alphabetic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; Alphabetic # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; Alphabetic # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Alphabetic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; Alphabetic # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 147421
  
  # ================================================
  
*************** FFDA..FFDC    ; Alphabetic # Lo   [3] HA
*** 1595,1601 ****
  024B          ; Lowercase # L&       LATIN SMALL LETTER Q WITH HOOK TAIL
  024D          ; Lowercase # L&       LATIN SMALL LETTER R WITH STROKE
  024F..0293    ; Lowercase # L&  [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL
! 0295..02AF    ; Lowercase # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02B8    ; Lowercase # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
  02C0..02C1    ; Lowercase # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
  02E0..02E4    ; Lowercase # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 1620,1626 ----
  024B          ; Lowercase # L&       LATIN SMALL LETTER Q WITH HOOK TAIL
  024D          ; Lowercase # L&       LATIN SMALL LETTER R WITH STROKE
  024F..0293    ; Lowercase # L&  [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL
! 0296..02AF    ; Lowercase # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02B8    ; Lowercase # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
  02C0..02C1    ; Lowercase # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
  02E0..02E4    ; Lowercase # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** A7C3          ; Lowercase # L&       LAT
*** 2073,2085 ****
  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
  A7FA          ; Lowercase # L&       LATIN LETTER SMALL CAPITAL TURNED M
--- 2098,2111 ----
  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
+ A7CF          ; Lowercase # L&       LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE
  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
! A7F1..A7F4    ; Lowercase # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7FA          ; Lowercase # L&       LATIN LETTER SMALL CAPITAL TURNED M
*************** FF41..FF5A    ; Lowercase # L&  [26] FUL
*** 2105,2110 ****
--- 2131,2137 ----
  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
+ 16EBB..16ED3  ; Lowercase # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  1D41A..1D433  ; Lowercase # L&  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
  1D44E..1D454  ; Lowercase # L&   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
  1D456..1D467  ; Lowercase # L&  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
*************** FF41..FF5A    ; Lowercase # L&  [26] FUL
*** 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
  
  # ================================================
  
--- 2166,2172 ----
  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: 2595
  
  # ================================================
  
*************** A7C2          ; Uppercase # L&       LAT
*** 2750,2756 ****
--- 2777,2786 ----
  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
+ A7CE          ; Uppercase # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; Uppercase # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; Uppercase # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; Uppercase # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  A7D6          ; Uppercase # L&       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Uppercase # L&       LATIN CAPITAL LETTER SIGMOID S
  A7DA          ; Uppercase # L&       LATIN CAPITAL LETTER LAMBDA
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 2767,2772 ****
--- 2797,2803 ----
  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
+ 16EA0..16EB8  ; Uppercase # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
  1D400..1D419  ; Uppercase # L&  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
  1D434..1D44D  ; Uppercase # L&  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
  1D468..1D481  ; Uppercase # L&  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 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
  
  # ================================================
  
--- 2834,2840 ----
  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: 2006
  
  # ================================================
  
*************** FF21..FF3A    ; Uppercase # L&  [26] FUL
*** 2821,2827 ****
  00F8..01BA    ; Cased # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
  01BC..01BF    ; Cased # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C4..0293    ; Cased # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0295..02AF    ; Cased # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02B8    ; Cased # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
  02C0..02C1    ; Cased # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
  02E0..02E4    ; Cased # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 2852,2858 ----
  00F8..01BA    ; Cased # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
  01BC..01BF    ; Cased # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C4..0293    ; Cased # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0296..02AF    ; Cased # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02B8    ; Cased # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
  02C0..02C1    ; Cased # Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
  02E0..02E4    ; Cased # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** A722..A76F    ; Cased # L&  [78] LATIN C
*** 2911,2921 ****
  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
  A7FA          ; Cased # L&       LATIN LETTER SMALL CAPITAL TURNED M
--- 2942,2949 ----
  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..A7DC    ; Cased # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; Cased # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7FA          ; Cased # L&       LATIN LETTER SMALL CAPITAL TURNED M
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 2949,2954 ****
--- 2977,2984 ----
  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
+ 16EA0..16EB8  ; Cased # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; Cased # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  1D400..1D454  ; Cased # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
  1D456..1D49C  ; Cased # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
  1D49E..1D49F  ; Cased # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 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
  
  # ================================================
  
--- 3018,3024 ----
  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: 4632
  
  # ================================================
  
*************** FF41..FF5A    ; Cased # L&  [26] FULLWID
*** 3194,3200 ****
  1AA7          ; Case_Ignorable # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; Case_Ignorable # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Case_Ignorable # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE    ; Case_Ignorable # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03    ; Case_Ignorable # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Case_Ignorable # Mn       BALINESE SIGN REREKAN
  1B36..1B3A    ; Case_Ignorable # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
--- 3224,3231 ----
  1AA7          ; Case_Ignorable # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; Case_Ignorable # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Case_Ignorable # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ADD    ; Case_Ignorable # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; Case_Ignorable # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03    ; Case_Ignorable # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Case_Ignorable # Mn       BALINESE SIGN REREKAN
  1B36..1B3A    ; Case_Ignorable # Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
*************** A720..A721    ; Case_Ignorable # Sk   [2
*** 3274,3280 ****
  A770          ; Case_Ignorable # Lm       MODIFIER LETTER US
  A788          ; Case_Ignorable # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A789..A78A    ; Case_Ignorable # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
! A7F2..A7F4    ; Case_Ignorable # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; Case_Ignorable # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  A802          ; Case_Ignorable # Mn       SYLOTI NAGRI SIGN DVISVARA
  A806          ; Case_Ignorable # Mn       SYLOTI NAGRI SIGN HASANTA
--- 3305,3311 ----
  A770          ; Case_Ignorable # Lm       MODIFIER LETTER US
  A788          ; Case_Ignorable # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A789..A78A    ; Case_Ignorable # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
! A7F1..A7F4    ; Case_Ignorable # Lm   [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; Case_Ignorable # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  A802          ; Case_Ignorable # Mn       SYLOTI NAGRI SIGN DVISVARA
  A806          ; Case_Ignorable # Mn       SYLOTI NAGRI SIGN HASANTA
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3350,3356 ****
  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
--- 3381,3388 ----
  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
! 10EC5         ; Case_Ignorable # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
! 10EFA..10EFF  ; Case_Ignorable # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 3427,3432 ****
--- 3459,3467 ----
  11A59..11A5B  ; Case_Ignorable # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
  11A8A..11A96  ; Case_Ignorable # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
  11A98..11A99  ; Case_Ignorable # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+ 11B60         ; Case_Ignorable # Mn       SHARADA VOWEL SIGN OE
+ 11B62..11B64  ; Case_Ignorable # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B66         ; Case_Ignorable # Mn       SHARADA VOWEL SIGN CANDRA E
  11C30..11C36  ; Case_Ignorable # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
  11C38..11C3D  ; Case_Ignorable # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
  11C3F         ; Case_Ignorable # Mn       BHAIKSUKI SIGN VIRAMA
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3442,3447 ****
--- 3477,3483 ----
  11D90..11D91  ; Case_Ignorable # Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
  11D95         ; Case_Ignorable # Mn       GUNJALA GONDI SIGN ANUSVARA
  11D97         ; Case_Ignorable # Mn       GUNJALA GONDI VIRAMA
+ 11DD9         ; Case_Ignorable # Lm       TOLONG SIKI SIGN SELA
  11EF3..11EF4  ; Case_Ignorable # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
  11F00..11F01  ; Case_Ignorable # Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
  11F36..11F3A  ; Case_Ignorable # Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3464,3469 ****
--- 3500,3506 ----
  16FE0..16FE1  ; Case_Ignorable # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; Case_Ignorable # Lm       OLD CHINESE ITERATION MARK
  16FE4         ; Case_Ignorable # Mn       KHITAN SMALL SCRIPT FILLER
+ 16FF2..16FF3  ; Case_Ignorable # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
  1AFF0..1AFF3  ; Case_Ignorable # Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
  1AFF5..1AFFB  ; Case_Ignorable # Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
  1AFFD..1AFFE  ; Case_Ignorable # Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFF9..FFFB    ; Case_Ignorable # Cf   [3
*** 3497,3502 ****
--- 3534,3544 ----
  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
+ 1E6E3         ; Case_Ignorable # Mn       TAI YO SIGN UE
+ 1E6E6         ; Case_Ignorable # Mn       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; Case_Ignorable # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; Case_Ignorable # Mn       TAI YO SIGN OM
+ 1E6FF         ; Case_Ignorable # Lm       TAI YO XAM LAI
  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
*** 3505,3517 ****
  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
  
  # ================================================
  
  # Derived Property:   Changes_When_Lowercased (CWL)
  #  Characters whose normalized forms are not stable under a toLowercase mapping.
! #  For more information, see D139 in Section 3.13, "Default Case Algorithms".
  #  Changes_When_Lowercased(X) is true when toLowercase(toNFD(X)) != toNFD(X)
  
  0041..005A    ; Changes_When_Lowercased # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
--- 3547,3560 ----
  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: 2794
  
  # ================================================
  
  # Derived Property:   Changes_When_Lowercased (CWL)
  #  Characters whose normalized forms are not stable under a toLowercase mapping.
! #  For more information, see the definition of "isLowercase(X)"
! #  in the "Conformance" / "Default Case Algorithms" section of the core specification.
  #  Changes_When_Lowercased(X) is true when toLowercase(toNFD(X)) != toNFD(X)
  
  0041..005A    ; Changes_When_Lowercased # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
*************** A7C2          ; Changes_When_Lowercased
*** 4110,4116 ****
--- 4153,4162 ----
  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
+ A7CE          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; Changes_When_Lowercased # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  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
*************** FF21..FF3A    ; Changes_When_Lowercased
*** 4127,4141 ****
  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
  
  # ================================================
  
  # Derived Property:   Changes_When_Uppercased (CWU)
  #  Characters whose normalized forms are not stable under a toUppercase mapping.
! #  For more information, see D140 in Section 3.13, "Default Case Algorithms".
  #  Changes_When_Uppercased(X) is true when toUppercase(toNFD(X)) != toNFD(X)
  
  0061..007A    ; Changes_When_Uppercased # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
--- 4173,4189 ----
  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
+ 16EA0..16EB8  ; Changes_When_Lowercased # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
  1E900..1E921  ; Changes_When_Lowercased # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1488
  
  # ================================================
  
  # Derived Property:   Changes_When_Uppercased (CWU)
  #  Characters whose normalized forms are not stable under a toUppercase mapping.
! #  For more information, see the definition of "isUppercase(X)"
! #  in the "Conformance" / "Default Case Algorithms" section of the core specification.
  #  Changes_When_Uppercased(X) is true when toUppercase(toNFD(X)) != toNFD(X)
  
  0061..007A    ; Changes_When_Uppercased # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
*************** A7C3          ; Changes_When_Uppercased
*** 4747,4753 ****
--- 4795,4804 ----
  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
+ A7CF          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D1          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER CLOSED INSULAR G
+ A7D3          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER DOUBLE THORN
+ A7D5          ; Changes_When_Uppercased # L&       LATIN SMALL LETTER DOUBLE WYNN
  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
*************** FF41..FF5A    ; Changes_When_Uppercased
*** 4767,4781 ****
  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
  
  # ================================================
  
  # Derived Property:   Changes_When_Titlecased (CWT)
  #  Characters whose normalized forms are not stable under a toTitlecase mapping.
! #  For more information, see D141 in Section 3.13, "Default Case Algorithms".
  #  Changes_When_Titlecased(X) is true when toTitlecase(toNFD(X)) != toNFD(X)
  
  0061..007A    ; Changes_When_Titlecased # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
--- 4818,4834 ----
  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
+ 16EBB..16ED3  ; Changes_When_Uppercased # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  1E922..1E943  ; Changes_When_Uppercased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1580
  
  # ================================================
  
  # Derived Property:   Changes_When_Titlecased (CWT)
  #  Characters whose normalized forms are not stable under a toTitlecase mapping.
! #  For more information, see the definition of "isTitlecase(X)"
! #  in the "Conformance" / "Default Case Algorithms" section of the core specification.
  #  Changes_When_Titlecased(X) is true when toTitlecase(toNFD(X)) != toNFD(X)
  
  0061..007A    ; Changes_When_Titlecased # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
*************** A7C3          ; Changes_When_Titlecased
*** 5386,5392 ****
--- 5439,5448 ----
  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
+ A7CF          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D1          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER CLOSED INSULAR G
+ A7D3          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER DOUBLE THORN
+ A7D5          ; Changes_When_Titlecased # L&       LATIN SMALL LETTER DOUBLE WYNN
  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
*************** FF41..FF5A    ; Changes_When_Titlecased
*** 5406,5420 ****
  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
  
  # ================================================
  
  # Derived Property:   Changes_When_Casefolded (CWCF)
  #  Characters whose normalized forms are not stable under case folding.
! #  For more information, see D142 in Section 3.13, "Default Case Algorithms".
  #  Changes_When_Casefolded(X) is true when toCasefold(toNFD(X)) != toNFD(X)
  
  0041..005A    ; Changes_When_Casefolded # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
--- 5462,5478 ----
  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
+ 16EBB..16ED3  ; Changes_When_Titlecased # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  1E922..1E943  ; Changes_When_Titlecased # L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 1507
  
  # ================================================
  
  # Derived Property:   Changes_When_Casefolded (CWCF)
  #  Characters whose normalized forms are not stable under case folding.
! #  For more information, see the definition of "isCasefolded(X)"
! #  in the "Conformance" / "Default Case Algorithms" section of the core specification.
  #  Changes_When_Casefolded(X) is true when toCasefold(toNFD(X)) != toNFD(X)
  
  0041..005A    ; Changes_When_Casefolded # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
*************** A7C2          ; Changes_When_Casefolded
*** 6022,6028 ****
--- 6080,6089 ----
  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
+ A7CE          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; Changes_When_Casefolded # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  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
*************** FF21..FF3A    ; Changes_When_Casefolded
*** 6042,6056 ****
  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
  
  # ================================================
  
  # Derived Property:   Changes_When_Casemapped (CWCM)
  #  Characters whose normalized forms are not stable under case mapping.
! #  For more information, see D143 in Section 3.13, "Default Case Algorithms".
  #  Changes_When_Casemapped(X) is true when CWL(X), or CWT(X), or CWU(X)
  
  0041..005A    ; Changes_When_Casemapped # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
--- 6103,6119 ----
  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
+ 16EA0..16EB8  ; Changes_When_Casefolded # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
  1E900..1E921  ; Changes_When_Casefolded # L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1561
  
  # ================================================
  
  # Derived Property:   Changes_When_Casemapped (CWCM)
  #  Characters whose normalized forms are not stable under case mapping.
! #  For more information, see the definition of "isCased(X)"
! #  in the "Conformance" / "Default Case Algorithms" section of the core specification.
  #  Changes_When_Casemapped(X) is true when CWL(X), or CWT(X), or CWU(X)
  
  0041..005A    ; Changes_When_Casemapped # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
*************** A779..A787    ; Changes_When_Casemapped
*** 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
--- 6219,6225 ----
  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..A7DC    ; Changes_When_Casemapped # L&  [45] LATIN CAPITAL LETTER TURNED K..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
*** 6183,6191 ****
  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
  
  # ================================================
  
--- 6244,6254 ----
  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
+ 16EA0..16EB8  ; Changes_When_Casemapped # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; Changes_When_Casemapped # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  1E900..1E943  ; Changes_When_Casemapped # L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
  
! # Total code points: 3037
  
  # ================================================
  
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6210,6217 ****
  01BC..01BF    ; ID_Start # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; ID_Start # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; ID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; ID_Start # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; ID_Start # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; ID_Start # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; ID_Start # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; ID_Start # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 6273,6280 ----
  01BC..01BF    ; ID_Start # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; ID_Start # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; ID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; ID_Start # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; ID_Start # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; ID_Start # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; ID_Start # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; ID_Start # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6259,6265 ****
  0840..0858    ; ID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  0860..086A    ; ID_Start # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; ID_Start # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0889..088E    ; ID_Start # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
  08A0..08C8    ; ID_Start # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; ID_Start # Lm       ARABIC SMALL FARSI YEH
  0904..0939    ; ID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
--- 6322,6328 ----
  0840..0858    ; ID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  0860..086A    ; ID_Start # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; ID_Start # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0889..088F    ; ID_Start # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  08A0..08C8    ; ID_Start # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; ID_Start # Lm       ARABIC SMALL FARSI YEH
  0904..0939    ; ID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6327,6333 ****
  0C2A..0C39    ; ID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C3D          ; ID_Start # Lo       TELUGU SIGN AVAGRAHA
  0C58..0C5A    ; ID_Start # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; ID_Start # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; ID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C80          ; ID_Start # Lo       KANNADA SIGN SPACING CANDRABINDU
  0C85..0C8C    ; ID_Start # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
--- 6390,6396 ----
  0C2A..0C39    ; ID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C3D          ; ID_Start # Lo       TELUGU SIGN AVAGRAHA
  0C58..0C5A    ; ID_Start # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; ID_Start # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; ID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C80          ; ID_Start # Lo       KANNADA SIGN SPACING CANDRABINDU
  0C85..0C8C    ; ID_Start # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
*************** FF41..FF5A    ; Changes_When_Casemapped
*** 6336,6342 ****
  0CAA..0CB3    ; ID_Start # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA
  0CB5..0CB9    ; ID_Start # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; ID_Start # Lo       KANNADA SIGN AVAGRAHA
! 0CDD..0CDE    ; ID_Start # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; ID_Start # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CF1..0CF2    ; ID_Start # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
  0D04..0D0C    ; ID_Start # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
--- 6399,6405 ----
  0CAA..0CB3    ; ID_Start # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA
  0CB5..0CB9    ; ID_Start # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; ID_Start # Lo       KANNADA SIGN AVAGRAHA
! 0CDC..0CDE    ; ID_Start # Lo   [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1    ; ID_Start # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CF1..0CF2    ; ID_Start # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
  0D04..0D0C    ; ID_Start # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
*************** A771..A787    ; ID_Start # L&  [23] LATI
*** 6561,6571 ****
  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
  A7F8..A7F9    ; ID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 6624,6631 ----
  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..A7DC    ; ID_Start # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; ID_Start # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; ID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6702,6707 ****
--- 6762,6768 ----
  108F4..108F5  ; ID_Start # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
  10900..10915  ; ID_Start # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
  10920..10939  ; ID_Start # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10940..10959  ; ID_Start # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; ID_Start # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BE..109BF  ; ID_Start # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
  10A00         ; ID_Start # Lo       KHAROSHTHI LETTER A
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6729,6734 ****
--- 6790,6797 ----
  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
+ 10EC5         ; ID_Start # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
+ 10EC6..10EC7  ; ID_Start # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS 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
*** 6821,6826 ****
--- 6884,6892 ----
  11D67..11D68  ; ID_Start # Lo   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
  11D6A..11D89  ; ID_Start # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
  11D98         ; ID_Start # Lo       GUNJALA GONDI OM
+ 11DB0..11DD8  ; ID_Start # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; ID_Start # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; ID_Start # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
  11EE0..11EF2  ; ID_Start # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11F02         ; ID_Start # Lo       KAWI SIGN REPHA
  11F04..11F10  ; ID_Start # Lo  [13] KAWI LETTER A..KAWI LETTER O
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6847,6860 ****
  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
  16F93..16F9F  ; ID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
  16FE0..16FE1  ; ID_Start # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  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
--- 6913,6930 ----
  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
+ 16EA0..16EB8  ; ID_Start # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; ID_Start # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; ID_Start # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F50         ; ID_Start # Lo       MIAO LETTER NASALIZATION
  16F93..16F9F  ; ID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
  16FE0..16FE1  ; ID_Start # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; ID_Start # Lm       OLD CHINESE ITERATION MARK
! 16FF2..16FF3  ; ID_Start # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; ID_Start # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; ID_Start # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; ID_Start # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; ID_Start # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
*** 6912,6917 ****
--- 6982,6994 ----
  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
+ 1E6C0..1E6DE  ; ID_Start # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; ID_Start # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E4..1E6E5  ; ID_Start # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E7..1E6ED  ; ID_Start # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6F0..1E6F4  ; ID_Start # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6FE         ; ID_Start # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; ID_Start # Lm       TAI YO XAM LAI
  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
*** 6953,6968 ****
  1EEA5..1EEA9  ; ID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  1EEAB..1EEBB  ; ID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  20000..2A6DF  ; ID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; ID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; ID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  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
  
  # ================================================
  
--- 7030,7044 ----
  1EEA5..1EEA9  ; ID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  1EEAB..1EEBB  ; ID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  20000..2A6DF  ; ID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; ID_Start # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; ID_Start # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; ID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; ID_Start # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 145916
  
  # ================================================
  
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 6991,6998 ****
  01BC..01BF    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; ID_Continue # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; ID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; ID_Continue # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; ID_Continue # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; ID_Continue # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; ID_Continue # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; ID_Continue # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 7067,7074 ----
  01BC..01BF    ; ID_Continue # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; ID_Continue # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; ID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; ID_Continue # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; ID_Continue # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; ID_Continue # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; ID_Continue # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; ID_Continue # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7068,7074 ****
  0859..085B    ; ID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  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
--- 7144,7150 ----
  0859..085B    ; ID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  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..088F    ; ID_Continue # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  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
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7218,7224 ****
  0C4A..0C4D    ; ID_Continue # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56    ; ID_Continue # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; ID_Continue # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; ID_Continue # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; ID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; ID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F    ; ID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
--- 7294,7300 ----
  0C4A..0C4D    ; ID_Continue # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56    ; ID_Continue # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; ID_Continue # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; ID_Continue # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; ID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; ID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F    ; ID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7240,7246 ****
  0CCA..0CCB    ; ID_Continue # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; ID_Continue # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE    ; ID_Continue # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; ID_Continue # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF    ; ID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
--- 7316,7322 ----
  0CCA..0CCB    ; ID_Continue # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; ID_Continue # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDC..0CDE    ; ID_Continue # Lo   [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1    ; ID_Continue # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; ID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF    ; ID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
*************** FFDA..FFDC    ; ID_Start # Lo   [3] HALF
*** 7457,7463 ****
  1A90..1A99    ; ID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
  1AA7          ; ID_Continue # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; ID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABF..1ACE    ; ID_Continue # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03    ; ID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04          ; ID_Continue # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; ID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
--- 7533,7540 ----
  1A90..1A99    ; ID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
  1AA7          ; ID_Continue # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; ID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABF..1ADD    ; ID_Continue # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; ID_Continue # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03    ; ID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04          ; ID_Continue # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; ID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
*************** A771..A787    ; ID_Continue # L&  [23] L
*** 7646,7656 ****
  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
  A7F8..A7F9    ; ID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 7723,7730 ----
  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..A7DC    ; ID_Continue # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; ID_Continue # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; ID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7857,7862 ****
--- 7931,7937 ----
  108F4..108F5  ; ID_Continue # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
  10900..10915  ; ID_Continue # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
  10920..10939  ; ID_Continue # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10940..10959  ; ID_Continue # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; ID_Continue # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BE..109BF  ; ID_Continue # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
  10A00         ; ID_Continue # Lo       KHAROSHTHI LETTER A
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 7895,7901 ****
  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
--- 7970,7978 ----
  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
! 10EC5         ; ID_Continue # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
! 10EC6..10EC7  ; ID_Continue # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
! 10EFA..10EFF  ; ID_Continue # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 8122,8127 ****
--- 8199,8210 ----
  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
+ 11B60         ; ID_Continue # Mn       SHARADA VOWEL SIGN OE
+ 11B61         ; ID_Continue # Mc       SHARADA VOWEL SIGN OOE
+ 11B62..11B64  ; ID_Continue # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B65         ; ID_Continue # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B66         ; ID_Continue # Mn       SHARADA VOWEL SIGN CANDRA E
+ 11B67         ; ID_Continue # Mc       SHARADA VOWEL SIGN CANDRA O
  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
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8162,8167 ****
--- 8245,8254 ----
  11D97         ; ID_Continue # Mn       GUNJALA GONDI VIRAMA
  11D98         ; ID_Continue # Lo       GUNJALA GONDI OM
  11DA0..11DA9  ; ID_Continue # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+ 11DB0..11DD8  ; ID_Continue # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; ID_Continue # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; ID_Continue # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
+ 11DE0..11DE9  ; ID_Continue # Nd  [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
  11EE0..11EF2  ; ID_Continue # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11EF3..11EF4  ; ID_Continue # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
  11EF5..11EF6  ; ID_Continue # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8212,8217 ****
--- 8299,8306 ----
  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
+ 16EA0..16EB8  ; ID_Continue # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; ID_Continue # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; ID_Continue # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; ID_Continue # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F50         ; ID_Continue # Lo       MIAO LETTER NASALIZATION
*************** FFDA..FFDC    ; ID_Continue # Lo   [3] H
*** 8222,8230 ****
  16FE3         ; ID_Continue # Lm       OLD CHINESE ITERATION MARK
  16FE4         ; ID_Continue # Mn       KHITAN SMALL SCRIPT FILLER
  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
--- 8311,8321 ----
  16FE3         ; ID_Continue # Lm       OLD CHINESE ITERATION MARK
  16FE4         ; ID_Continue # Mn       KHITAN SMALL SCRIPT FILLER
  16FF0..16FF1  ; ID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 16FF2..16FF3  ; ID_Continue # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; ID_Continue # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; ID_Continue # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; ID_Continue # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; ID_Continue # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
*** 8315,8320 ****
--- 8406,8422 ----
  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
+ 1E6C0..1E6DE  ; ID_Continue # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; ID_Continue # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E3         ; ID_Continue # Mn       TAI YO SIGN UE
+ 1E6E4..1E6E5  ; ID_Continue # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E6         ; ID_Continue # Mn       TAI YO SIGN AU
+ 1E6E7..1E6ED  ; ID_Continue # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6EE..1E6EF  ; ID_Continue # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F0..1E6F4  ; ID_Continue # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6F5         ; ID_Continue # Mn       TAI YO SIGN OM
+ 1E6FE         ; ID_Continue # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; ID_Continue # Lm       TAI YO XAM LAI
  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
*** 8360,8376 ****
  1EEAB..1EEBB  ; ID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1FBF0..1FBF9  ; ID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; ID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; ID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; ID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; ID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 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
  
  # ================================================
  
--- 8462,8477 ----
  1EEAB..1EEBB  ; ID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1FBF0..1FBF9  ; ID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; ID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; ID_Continue # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; ID_Continue # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; ID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; ID_Continue # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  E0100..E01EF  ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 149240
  
  # ================================================
  
*************** E0100..E01EF  ; ID_Continue # Mn [240] V
*** 8393,8400 ****
  01BC..01BF    ; XID_Start # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; XID_Start # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; XID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; XID_Start # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; XID_Start # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; XID_Start # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; XID_Start # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; XID_Start # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 8494,8501 ----
  01BC..01BF    ; XID_Start # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; XID_Start # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; XID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; XID_Start # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; XID_Start # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; XID_Start # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; XID_Start # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; XID_Start # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** E0100..E01EF  ; ID_Continue # Mn [240] V
*** 8441,8447 ****
  0840..0858    ; XID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  0860..086A    ; XID_Start # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; XID_Start # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0889..088E    ; XID_Start # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
  08A0..08C8    ; XID_Start # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; XID_Start # Lm       ARABIC SMALL FARSI YEH
  0904..0939    ; XID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
--- 8542,8548 ----
  0840..0858    ; XID_Start # Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
  0860..086A    ; XID_Start # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; XID_Start # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
! 0889..088F    ; XID_Start # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  08A0..08C8    ; XID_Start # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; XID_Start # Lm       ARABIC SMALL FARSI YEH
  0904..0939    ; XID_Start # Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
*************** E0100..E01EF  ; ID_Continue # Mn [240] V
*** 8509,8515 ****
  0C2A..0C39    ; XID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C3D          ; XID_Start # Lo       TELUGU SIGN AVAGRAHA
  0C58..0C5A    ; XID_Start # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; XID_Start # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; XID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C80          ; XID_Start # Lo       KANNADA SIGN SPACING CANDRABINDU
  0C85..0C8C    ; XID_Start # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
--- 8610,8616 ----
  0C2A..0C39    ; XID_Start # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C3D          ; XID_Start # Lo       TELUGU SIGN AVAGRAHA
  0C58..0C5A    ; XID_Start # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; XID_Start # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; XID_Start # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C80          ; XID_Start # Lo       KANNADA SIGN SPACING CANDRABINDU
  0C85..0C8C    ; XID_Start # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
*************** E0100..E01EF  ; ID_Continue # Mn [240] V
*** 8518,8524 ****
  0CAA..0CB3    ; XID_Start # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA
  0CB5..0CB9    ; XID_Start # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; XID_Start # Lo       KANNADA SIGN AVAGRAHA
! 0CDD..0CDE    ; XID_Start # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; XID_Start # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CF1..0CF2    ; XID_Start # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
  0D04..0D0C    ; XID_Start # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
--- 8619,8625 ----
  0CAA..0CB3    ; XID_Start # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA
  0CB5..0CB9    ; XID_Start # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA
  0CBD          ; XID_Start # Lo       KANNADA SIGN AVAGRAHA
! 0CDC..0CDE    ; XID_Start # Lo   [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1    ; XID_Start # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CF1..0CF2    ; XID_Start # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
  0D04..0D0C    ; XID_Start # Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
*************** A771..A787    ; XID_Start # L&  [23] LAT
*** 8742,8752 ****
  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
  A7F8..A7F9    ; XID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 8843,8850 ----
  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..A7DC    ; XID_Start # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; XID_Start # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; XID_Start # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8888,8893 ****
--- 8986,8992 ----
  108F4..108F5  ; XID_Start # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
  10900..10915  ; XID_Start # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
  10920..10939  ; XID_Start # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10940..10959  ; XID_Start # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; XID_Start # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BE..109BF  ; XID_Start # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
  10A00         ; XID_Start # Lo       KHAROSHTHI LETTER A
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 8915,8920 ****
--- 9014,9021 ----
  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
+ 10EC5         ; XID_Start # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
+ 10EC6..10EC7  ; XID_Start # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS 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
*** 9007,9012 ****
--- 9108,9116 ----
  11D67..11D68  ; XID_Start # Lo   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
  11D6A..11D89  ; XID_Start # Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
  11D98         ; XID_Start # Lo       GUNJALA GONDI OM
+ 11DB0..11DD8  ; XID_Start # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; XID_Start # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; XID_Start # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
  11EE0..11EF2  ; XID_Start # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11F02         ; XID_Start # Lo       KAWI SIGN REPHA
  11F04..11F10  ; XID_Start # Lo  [13] KAWI LETTER A..KAWI LETTER O
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9033,9046 ****
  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
  16F93..16F9F  ; XID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
  16FE0..16FE1  ; XID_Start # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  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
--- 9137,9154 ----
  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
+ 16EA0..16EB8  ; XID_Start # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; XID_Start # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; XID_Start # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F50         ; XID_Start # Lo       MIAO LETTER NASALIZATION
  16F93..16F9F  ; XID_Start # Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
  16FE0..16FE1  ; XID_Start # Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
  16FE3         ; XID_Start # Lm       OLD CHINESE ITERATION MARK
! 16FF2..16FF3  ; XID_Start # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; XID_Start # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; XID_Start # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; XID_Start # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; XID_Start # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
*** 9098,9103 ****
--- 9206,9218 ----
  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
+ 1E6C0..1E6DE  ; XID_Start # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; XID_Start # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E4..1E6E5  ; XID_Start # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E7..1E6ED  ; XID_Start # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6F0..1E6F4  ; XID_Start # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6FE         ; XID_Start # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; XID_Start # Lm       TAI YO XAM LAI
  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
*** 9139,9154 ****
  1EEA5..1EEA9  ; XID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  1EEAB..1EEBB  ; XID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  20000..2A6DF  ; XID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; XID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; XID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  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
  
  # ================================================
  
--- 9254,9268 ----
  1EEA5..1EEA9  ; XID_Start # Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
  1EEAB..1EEBB  ; XID_Start # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  20000..2A6DF  ; XID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; XID_Start # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; XID_Start # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; XID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; XID_Start # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 145893
  
  # ================================================
  
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9174,9181 ****
  01BC..01BF    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; XID_Continue # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; XID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; XID_Continue # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; XID_Continue # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; XID_Continue # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; XID_Continue # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; XID_Continue # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
--- 9288,9295 ----
  01BC..01BF    ; XID_Continue # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; XID_Continue # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; XID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; XID_Continue # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; XID_Continue # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; XID_Continue # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C6..02D1    ; XID_Continue # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
  02E0..02E4    ; XID_Continue # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9250,9256 ****
  0859..085B    ; XID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  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
--- 9364,9370 ----
  0859..085B    ; XID_Continue # Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  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..088F    ; XID_Continue # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  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
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9400,9406 ****
  0C4A..0C4D    ; XID_Continue # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56    ; XID_Continue # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; XID_Continue # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; XID_Continue # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; XID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; XID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F    ; XID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
--- 9514,9520 ----
  0C4A..0C4D    ; XID_Continue # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56    ; XID_Continue # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A    ; XID_Continue # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; XID_Continue # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; XID_Continue # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63    ; XID_Continue # Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F    ; XID_Continue # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9422,9428 ****
  0CCA..0CCB    ; XID_Continue # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; XID_Continue # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE    ; XID_Continue # Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1    ; XID_Continue # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF    ; XID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
--- 9536,9542 ----
  0CCA..0CCB    ; XID_Continue # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6    ; XID_Continue # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDC..0CDE    ; XID_Continue # Lo   [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1    ; XID_Continue # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3    ; XID_Continue # Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF    ; XID_Continue # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
*************** FFDA..FFDC    ; XID_Start # Lo   [3] HAL
*** 9639,9645 ****
  1A90..1A99    ; XID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
  1AA7          ; XID_Continue # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; XID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABF..1ACE    ; XID_Continue # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03    ; XID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04          ; XID_Continue # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; XID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
--- 9753,9760 ----
  1A90..1A99    ; XID_Continue # Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
  1AA7          ; XID_Continue # Lm       TAI THAM SIGN MAI YAMOK
  1AB0..1ABD    ; XID_Continue # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
! 1ABF..1ADD    ; XID_Continue # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; XID_Continue # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03    ; XID_Continue # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04          ; XID_Continue # Mc       BALINESE SIGN BISAH
  1B05..1B33    ; XID_Continue # Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA
*************** A771..A787    ; XID_Continue # L&  [23]
*** 9827,9837 ****
  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
  A7F8..A7F9    ; XID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 9942,9949 ----
  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..A7DC    ; XID_Continue # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; XID_Continue # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; XID_Continue # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10044,10049 ****
--- 10156,10162 ----
  108F4..108F5  ; XID_Continue # Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
  10900..10915  ; XID_Continue # Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
  10920..10939  ; XID_Continue # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
+ 10940..10959  ; XID_Continue # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; XID_Continue # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BE..109BF  ; XID_Continue # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
  10A00         ; XID_Continue # Lo       KHAROSHTHI LETTER A
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10082,10088 ****
  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
--- 10195,10203 ----
  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
! 10EC5         ; XID_Continue # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
! 10EC6..10EC7  ; XID_Continue # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
! 10EFA..10EFF  ; XID_Continue # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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]
*** 10309,10314 ****
--- 10424,10435 ----
  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
+ 11B60         ; XID_Continue # Mn       SHARADA VOWEL SIGN OE
+ 11B61         ; XID_Continue # Mc       SHARADA VOWEL SIGN OOE
+ 11B62..11B64  ; XID_Continue # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B65         ; XID_Continue # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B66         ; XID_Continue # Mn       SHARADA VOWEL SIGN CANDRA E
+ 11B67         ; XID_Continue # Mc       SHARADA VOWEL SIGN CANDRA O
  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
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10349,10354 ****
--- 10470,10479 ----
  11D97         ; XID_Continue # Mn       GUNJALA GONDI VIRAMA
  11D98         ; XID_Continue # Lo       GUNJALA GONDI OM
  11DA0..11DA9  ; XID_Continue # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+ 11DB0..11DD8  ; XID_Continue # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; XID_Continue # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; XID_Continue # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
+ 11DE0..11DE9  ; XID_Continue # Nd  [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
  11EE0..11EF2  ; XID_Continue # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11EF3..11EF4  ; XID_Continue # Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
  11EF5..11EF6  ; XID_Continue # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10399,10404 ****
--- 10524,10531 ----
  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
+ 16EA0..16EB8  ; XID_Continue # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; XID_Continue # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; XID_Continue # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F         ; XID_Continue # Mn       MIAO SIGN CONSONANT MODIFIER BAR
  16F50         ; XID_Continue # Lo       MIAO LETTER NASALIZATION
*************** FFDA..FFDC    ; XID_Continue # Lo   [3]
*** 10409,10417 ****
  16FE3         ; XID_Continue # Lm       OLD CHINESE ITERATION MARK
  16FE4         ; XID_Continue # Mn       KHITAN SMALL SCRIPT FILLER
  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
--- 10536,10546 ----
  16FE3         ; XID_Continue # Lm       OLD CHINESE ITERATION MARK
  16FE4         ; XID_Continue # Mn       KHITAN SMALL SCRIPT FILLER
  16FF0..16FF1  ; XID_Continue # Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 16FF2..16FF3  ; XID_Continue # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; XID_Continue # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; XID_Continue # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; XID_Continue # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; XID_Continue # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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]
*** 10502,10507 ****
--- 10631,10647 ----
  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
+ 1E6C0..1E6DE  ; XID_Continue # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; XID_Continue # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E3         ; XID_Continue # Mn       TAI YO SIGN UE
+ 1E6E4..1E6E5  ; XID_Continue # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E6         ; XID_Continue # Mn       TAI YO SIGN AU
+ 1E6E7..1E6ED  ; XID_Continue # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6EE..1E6EF  ; XID_Continue # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F0..1E6F4  ; XID_Continue # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6F5         ; XID_Continue # Mn       TAI YO SIGN OM
+ 1E6FE         ; XID_Continue # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; XID_Continue # Lm       TAI YO XAM LAI
  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]
*** 10547,10563 ****
  1EEAB..1EEBB  ; XID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1FBF0..1FBF9  ; XID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; XID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; XID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; XID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; XID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 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
  
  # ================================================
  
--- 10687,10702 ----
  1EEAB..1EEBB  ; XID_Continue # Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
  1FBF0..1FBF9  ; XID_Continue # Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  20000..2A6DF  ; XID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; XID_Continue # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; XID_Continue # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; XID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; XID_Continue # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  E0100..E01EF  ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  
! # Total code points: 149221
  
  # ================================================
  
*************** E01F0..E0FFF  ; Default_Ignorable_Code_P
*** 10778,10784 ****
  1A7F          ; Grapheme_Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; Grapheme_Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Grapheme_Extend # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE    ; Grapheme_Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03    ; Grapheme_Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Grapheme_Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Grapheme_Extend # Mc       BALINESE VOWEL SIGN TEDUNG
--- 10917,10924 ----
  1A7F          ; Grapheme_Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; Grapheme_Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Grapheme_Extend # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ADD    ; Grapheme_Extend # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; Grapheme_Extend # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03    ; Grapheme_Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Grapheme_Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Grapheme_Extend # Mc       BALINESE VOWEL SIGN TEDUNG
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 10874,10880 ****
  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
--- 11014,11020 ----
  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
! 10EFA..10EFF  ; Grapheme_Extend # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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   [
*** 10965,10970 ****
--- 11105,11113 ----
  11A59..11A5B  ; Grapheme_Extend # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
  11A8A..11A96  ; Grapheme_Extend # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
  11A98..11A99  ; Grapheme_Extend # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+ 11B60         ; Grapheme_Extend # Mn       SHARADA VOWEL SIGN OE
+ 11B62..11B64  ; Grapheme_Extend # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B66         ; Grapheme_Extend # Mn       SHARADA VOWEL SIGN CANDRA E
  11C30..11C36  ; Grapheme_Extend # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
  11C38..11C3D  ; Grapheme_Extend # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
  11C3F         ; Grapheme_Extend # Mn       BHAIKSUKI SIGN VIRAMA
*************** FF9E..FF9F    ; Grapheme_Extend # Lm   [
*** 11024,11035 ****
  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
  
  # ================================================
  
--- 11167,11182 ----
  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
+ 1E6E3         ; Grapheme_Extend # Mn       TAI YO SIGN UE
+ 1E6E6         ; Grapheme_Extend # Mn       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; Grapheme_Extend # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; Grapheme_Extend # Mn       TAI YO SIGN OM
  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: 2232
  
  # ================================================
  
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11098,11105 ****
  01BC..01BF    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; Grapheme_Base # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; Grapheme_Base # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294          ; Grapheme_Base # Lo       LATIN LETTER GLOTTAL STOP
! 0295..02AF    ; Grapheme_Base # L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; Grapheme_Base # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C2..02C5    ; Grapheme_Base # Sk   [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
  02C6..02D1    ; Grapheme_Base # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
--- 11245,11252 ----
  01BC..01BF    ; Grapheme_Base # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
  01C0..01C3    ; Grapheme_Base # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
  01C4..0293    ; Grapheme_Base # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295    ; Grapheme_Base # Lo   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF    ; Grapheme_Base # L&  [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1    ; Grapheme_Base # Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C2..02C5    ; Grapheme_Base # Sk   [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
  02C6..02D1    ; Grapheme_Base # Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11190,11196 ****
  0860..086A    ; Grapheme_Base # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; Grapheme_Base # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0888          ; Grapheme_Base # Sk       ARABIC RAISED ROUND DOT
! 0889..088E    ; Grapheme_Base # Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
  08A0..08C8    ; Grapheme_Base # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; Grapheme_Base # Lm       ARABIC SMALL FARSI YEH
  0903          ; Grapheme_Base # Mc       DEVANAGARI SIGN VISARGA
--- 11337,11343 ----
  0860..086A    ; Grapheme_Base # Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887    ; Grapheme_Base # Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0888          ; Grapheme_Base # Sk       ARABIC RAISED ROUND DOT
! 0889..088F    ; Grapheme_Base # Lo   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  08A0..08C8    ; Grapheme_Base # Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
  08C9          ; Grapheme_Base # Lm       ARABIC SMALL FARSI YEH
  0903          ; Grapheme_Base # Mc       DEVANAGARI SIGN VISARGA
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11305,11311 ****
  0C3D          ; Grapheme_Base # Lo       TELUGU SIGN AVAGRAHA
  0C41..0C44    ; Grapheme_Base # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
  0C58..0C5A    ; Grapheme_Base # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D          ; Grapheme_Base # Lo       TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; Grapheme_Base # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C66..0C6F    ; Grapheme_Base # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
  0C77          ; Grapheme_Base # Po       TELUGU SIGN SIDDHAM
--- 11452,11458 ----
  0C3D          ; Grapheme_Base # Lo       TELUGU SIGN AVAGRAHA
  0C41..0C44    ; Grapheme_Base # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
  0C58..0C5A    ; Grapheme_Base # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D    ; Grapheme_Base # Lo   [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61    ; Grapheme_Base # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C66..0C6F    ; Grapheme_Base # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
  0C77          ; Grapheme_Base # Po       TELUGU SIGN SIDDHAM
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11323,11329 ****
  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
  0CF1..0CF2    ; Grapheme_Base # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
--- 11470,11476 ----
  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
! 0CDC..0CDE    ; Grapheme_Base # Lo   [3] KANNADA ARCHAIC SHRII..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
  0CF1..0CF2    ; Grapheme_Base # Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11639,11645 ****
  208D          ; Grapheme_Base # Ps       SUBSCRIPT LEFT PARENTHESIS
  208E          ; Grapheme_Base # Pe       SUBSCRIPT RIGHT PARENTHESIS
  2090..209C    ; Grapheme_Base # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
! 20A0..20C0    ; Grapheme_Base # Sc  [33] EURO-CURRENCY SIGN..SOM SIGN
  2100..2101    ; Grapheme_Base # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
  2102          ; Grapheme_Base # L&       DOUBLE-STRUCK CAPITAL C
  2103..2106    ; Grapheme_Base # So   [4] DEGREE CELSIUS..CADA UNA
--- 11786,11792 ----
  208D          ; Grapheme_Base # Ps       SUBSCRIPT LEFT PARENTHESIS
  208E          ; Grapheme_Base # Pe       SUBSCRIPT RIGHT PARENTHESIS
  2090..209C    ; Grapheme_Base # Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
! 20A0..20C1    ; Grapheme_Base # Sc  [34] EURO-CURRENCY SIGN..SAUDI RIYAL SIGN
  2100..2101    ; Grapheme_Base # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
  2102          ; Grapheme_Base # L&       DOUBLE-STRUCK CAPITAL C
  2103..2106    ; Grapheme_Base # So   [4] DEGREE CELSIUS..CADA UNA
*************** E0100..E01EF  ; Grapheme_Extend # Mn [24
*** 11796,11803 ****
  2B45..2B46    ; Grapheme_Base # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
  2B47..2B4C    ; Grapheme_Base # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
  2B4D..2B73    ; Grapheme_Base # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2B95    ; Grapheme_Base # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
! 2B97..2BFF    ; Grapheme_Base # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
  2C00..2C7B    ; Grapheme_Base # L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E
  2C7C..2C7D    ; Grapheme_Base # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
  2C7E..2CE4    ; Grapheme_Base # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
--- 11943,11949 ----
  2B45..2B46    ; Grapheme_Base # So   [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
  2B47..2B4C    ; Grapheme_Base # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
  2B4D..2B73    ; Grapheme_Base # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2BFF    ; Grapheme_Base # So [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL
  2C00..2C7B    ; Grapheme_Base # L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E
  2C7C..2C7D    ; Grapheme_Base # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
  2C7E..2CE4    ; Grapheme_Base # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
*************** A788          ; Grapheme_Base # Lm
*** 11977,11987 ****
  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
  A7F8..A7F9    ; Grapheme_Base # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 12123,12130 ----
  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..A7DC    ; Grapheme_Base # L&  [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4    ; Grapheme_Base # Lm   [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9    ; Grapheme_Base # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FB40..FB41    ; Grapheme_Base # Lo   [2]
*** 12097,12109 ****
  FB43..FB44    ; Grapheme_Base # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FBB1    ; Grapheme_Base # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
  FBB2..FBC2    ; Grapheme_Base # Sk  [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
  FBD3..FD3D    ; Grapheme_Base # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
  FD3E          ; Grapheme_Base # Pe       ORNATE LEFT PARENTHESIS
  FD3F          ; Grapheme_Base # Ps       ORNATE RIGHT PARENTHESIS
  FD40..FD4F    ; Grapheme_Base # So  [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
  FD50..FD8F    ; Grapheme_Base # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
  FD92..FDC7    ; Grapheme_Base # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDCF          ; Grapheme_Base # So       ARABIC LIGATURE SALAAMUHU ALAYNAA
  FDF0..FDFB    ; Grapheme_Base # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
  FDFC          ; Grapheme_Base # Sc       RIAL SIGN
  FDFD..FDFF    ; Grapheme_Base # So   [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
--- 12240,12254 ----
  FB43..FB44    ; Grapheme_Base # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
  FB46..FBB1    ; Grapheme_Base # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
  FBB2..FBC2    ; Grapheme_Base # Sk  [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
+ FBC3..FBD2    ; Grapheme_Base # So  [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH
  FBD3..FD3D    ; Grapheme_Base # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
  FD3E          ; Grapheme_Base # Pe       ORNATE LEFT PARENTHESIS
  FD3F          ; Grapheme_Base # Ps       ORNATE RIGHT PARENTHESIS
  FD40..FD4F    ; Grapheme_Base # So  [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
  FD50..FD8F    ; Grapheme_Base # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+ FD90..FD91    ; Grapheme_Base # So   [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA
  FD92..FDC7    ; Grapheme_Base # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDC8..FDCF    ; Grapheme_Base # So   [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA
  FDF0..FDFB    ; Grapheme_Base # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
  FDFC          ; Grapheme_Base # Sc       RIAL SIGN
  FDFD..FDFF    ; Grapheme_Base # So   [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12280,12285 ****
--- 12425,12431 ----
  1091F         ; Grapheme_Base # Po       PHOENICIAN WORD SEPARATOR
  10920..10939  ; Grapheme_Base # Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C
  1093F         ; Grapheme_Base # Po       LYDIAN TRIANGULAR MARK
+ 10940..10959  ; Grapheme_Base # Lo  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..109B7  ; Grapheme_Base # Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
  109BC..109BD  ; Grapheme_Base # No   [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
  109BE..109BF  ; Grapheme_Base # Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12330,12335 ****
--- 12476,12485 ----
  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
+ 10EC5         ; Grapheme_Base # Lm       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
+ 10EC6..10EC7  ; Grapheme_Base # Lo   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
+ 10ED0         ; Grapheme_Base # Po       ARABIC BIBLICAL END OF VERSE
+ 10ED1..10ED8  ; Grapheme_Base # So   [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH
  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]
*** 12515,12520 ****
--- 12665,12673 ----
  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
+ 11B61         ; Grapheme_Base # Mc       SHARADA VOWEL SIGN OOE
+ 11B65         ; Grapheme_Base # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B67         ; Grapheme_Base # Mc       SHARADA VOWEL SIGN CANDRA O
  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
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12544,12549 ****
--- 12697,12706 ----
  11D96         ; Grapheme_Base # Mc       GUNJALA GONDI SIGN VISARGA
  11D98         ; Grapheme_Base # Lo       GUNJALA GONDI OM
  11DA0..11DA9  ; Grapheme_Base # Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+ 11DB0..11DD8  ; Grapheme_Base # Lo  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9         ; Grapheme_Base # Lm       TOLONG SIKI SIGN SELA
+ 11DDA..11DDB  ; Grapheme_Base # Lo   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
+ 11DE0..11DE9  ; Grapheme_Base # Nd  [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
  11EE0..11EF2  ; Grapheme_Base # Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11EF5..11EF6  ; Grapheme_Base # Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
  11EF7..11EF8  ; Grapheme_Base # Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12600,12605 ****
--- 12757,12764 ----
  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
+ 16EA0..16EB8  ; Grapheme_Base # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3  ; Grapheme_Base # L&  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A  ; Grapheme_Base # Lo  [75] MIAO LETTER PA..MIAO LETTER RTE
  16F50         ; Grapheme_Base # Lo       MIAO LETTER NASALIZATION
  16F51..16F87  ; Grapheme_Base # Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 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
--- 12766,12776 ----
  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
! 16FF2..16FF3  ; Grapheme_Base # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; Grapheme_Base # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; Grapheme_Base # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; Grapheme_Base # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; Grapheme_Base # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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]
*** 12627,12633 ****
--- 12788,12798 ----
  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
+ 1CCFA..1CCFC  ; Grapheme_Base # So   [3] SNAKE SYMBOL..NOSE SYMBOL
  1CD00..1CEB3  ; Grapheme_Base # So [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
+ 1CEBA..1CED0  ; Grapheme_Base # So  [23] FRAGILE SYMBOL..LEUKOTHEA
+ 1CEE0..1CEEF  ; Grapheme_Base # So  [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA
+ 1CEF0         ; Grapheme_Base # Sm       MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
  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
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12710,12715 ****
--- 12875,12887 ----
  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
+ 1E6C0..1E6DE  ; Grapheme_Base # Lo  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; Grapheme_Base # Lo   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E4..1E6E5  ; Grapheme_Base # Lo   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E7..1E6ED  ; Grapheme_Base # Lo   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6F0..1E6F4  ; Grapheme_Base # Lo   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6FE         ; Grapheme_Base # Lo       TAI YO SYMBOL MUEANG
+ 1E6FF         ; Grapheme_Base # Lm       TAI YO XAM LAI
  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]
*** 12777,12787 ****
  1F260..1F265  ; Grapheme_Base # So   [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
  1F300..1F3FA  ; Grapheme_Base # So [251] CYCLONE..AMPHORA
  1F3FB..1F3FF  ; Grapheme_Base # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
! 1F400..1F6D7  ; Grapheme_Base # So [728] RAT..ELEVATOR
  1F6DC..1F6EC  ; Grapheme_Base # So  [17] WIRELESS..AIRPLANE ARRIVING
  1F6F0..1F6FC  ; Grapheme_Base # So  [13] SATELLITE..ROLLER SKATE
! 1F700..1F776  ; Grapheme_Base # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
! 1F77B..1F7D9  ; Grapheme_Base # So  [95] HAUMEA..NINE POINTED WHITE STAR
  1F7E0..1F7EB  ; Grapheme_Base # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
  1F7F0         ; Grapheme_Base # So       HEAVY EQUALS SIGN
  1F800..1F80B  ; Grapheme_Base # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
--- 12949,12958 ----
  1F260..1F265  ; Grapheme_Base # So   [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
  1F300..1F3FA  ; Grapheme_Base # So [251] CYCLONE..AMPHORA
  1F3FB..1F3FF  ; Grapheme_Base # Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
! 1F400..1F6D8  ; Grapheme_Base # So [729] RAT..LANDSLIDE
  1F6DC..1F6EC  ; Grapheme_Base # So  [17] WIRELESS..AIRPLANE ARRIVING
  1F6F0..1F6FC  ; Grapheme_Base # So  [13] SATELLITE..ROLLER SKATE
! 1F700..1F7D9  ; Grapheme_Base # So [218] ALCHEMICAL SYMBOL FOR QUINTESSENCE..NINE POINTED WHITE STAR
  1F7E0..1F7EB  ; Grapheme_Base # So  [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
  1F7F0         ; Grapheme_Base # So       HEAVY EQUALS SIGN
  1F800..1F80B  ; Grapheme_Base # So  [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
*************** FFFC..FFFD    ; Grapheme_Base # So   [2]
*** 12791,12818 ****
  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
! 2B740..2B81D  ; Grapheme_Base # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; Grapheme_Base # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Grapheme_Base # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  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
  
  # ================================================
  
--- 12962,12991 ----
  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
! 1F8D0..1F8D8  ; Grapheme_Base # Sm   [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
! 1F900..1FA57  ; Grapheme_Base # So [344] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS ALFIL
  1FA60..1FA6D  ; Grapheme_Base # So  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C  ; Grapheme_Base # So  [13] BALLET SHOES..CRUTCH
! 1FA80..1FA8A  ; Grapheme_Base # So  [11] YO-YO..TROMBONE
! 1FA8E..1FAC6  ; Grapheme_Base # So  [57] TREASURE CHEST..FINGERPRINT
! 1FAC8         ; Grapheme_Base # So       HAIRY CREATURE
! 1FACD..1FADC  ; Grapheme_Base # So  [16] ORCA..ROOT VEGETABLE
! 1FADF..1FAEA  ; Grapheme_Base # So  [12] SPLATTER..DISTORTED FACE
! 1FAEF..1FAF8  ; Grapheme_Base # So  [10] FIGHT CLOUD..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
+ 1FBFA         ; Grapheme_Base # So       ALARM BELL SYMBOL
  20000..2A6DF  ; Grapheme_Base # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; Grapheme_Base # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; Grapheme_Base # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; Grapheme_Base # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Grapheme_Base # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Grapheme_Base # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Grapheme_Base # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; Grapheme_Base # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 157494
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 12909,12916 ****
  0B4D          ; InCB; Linker # Mn       ORIYA SIGN VIRAMA
  0C4D          ; InCB; Linker # Mn       TELUGU SIGN VIRAMA
  0D4D          ; InCB; Linker # Mn       MALAYALAM SIGN VIRAMA
  
! # Total code points: 6
  
  # ================================================
  
--- 13082,13103 ----
  0B4D          ; InCB; Linker # Mn       ORIYA SIGN VIRAMA
  0C4D          ; InCB; Linker # Mn       TELUGU SIGN VIRAMA
  0D4D          ; InCB; Linker # Mn       MALAYALAM SIGN VIRAMA
+ 1039          ; InCB; Linker # Mn       MYANMAR SIGN VIRAMA
+ 17D2          ; InCB; Linker # Mn       KHMER SIGN COENG
+ 1A60          ; InCB; Linker # Mn       TAI THAM SIGN SAKOT
+ 1B44          ; InCB; Linker # Mc       BALINESE ADEG ADEG
+ 1BAB          ; InCB; Linker # Mn       SUNDANESE SIGN VIRAMA
+ A9C0          ; InCB; Linker # Mc       JAVANESE PANGKON
+ AAF6          ; InCB; Linker # Mn       MEETEI MAYEK VIRAMA
+ 10A3F         ; InCB; Linker # Mn       KHAROSHTHI VIRAMA
+ 11133         ; InCB; Linker # Mn       CHAKMA VIRAMA
+ 113D0         ; InCB; Linker # Mn       TULU-TIGALARI CONJOINER
+ 1193E         ; InCB; Linker # Mn       DIVES AKURU VIRAMA
+ 11A47         ; InCB; Linker # Mn       ZANABAZAR SQUARE SUBJOINER
+ 11A99         ; InCB; Linker # Mn       SOYOMBO SUBJOINER
+ 11F42         ; InCB; Linker # Mn       KAWI CONJOINER
  
! # Total code points: 20
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 12942,12949 ****
  0C2A..0C39    ; InCB; Consonant # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C58..0C5A    ; InCB; Consonant # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
  0D15..0D3A    ; InCB; Consonant # Lo  [38] MALAYALAM LETTER KA..MALAYALAM LETTER TTTA
  
! # Total code points: 240
  
  # ================================================
  
--- 13129,13186 ----
  0C2A..0C39    ; InCB; Consonant # Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA
  0C58..0C5A    ; InCB; Consonant # Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
  0D15..0D3A    ; InCB; Consonant # Lo  [38] MALAYALAM LETTER KA..MALAYALAM LETTER TTTA
+ 1000..102A    ; InCB; Consonant # Lo  [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+ 103F          ; InCB; Consonant # Lo       MYANMAR LETTER GREAT SA
+ 1050..1055    ; InCB; Consonant # Lo   [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+ 105A..105D    ; InCB; Consonant # Lo   [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+ 1061          ; InCB; Consonant # Lo       MYANMAR LETTER SGAW KAREN SHA
+ 1065..1066    ; InCB; Consonant # Lo   [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+ 106E..1070    ; InCB; Consonant # Lo   [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+ 1075..1081    ; InCB; Consonant # Lo  [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+ 108E          ; InCB; Consonant # Lo       MYANMAR LETTER RUMAI PALAUNG FA
+ 1780..17B3    ; InCB; Consonant # Lo  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+ 1A20..1A54    ; InCB; Consonant # Lo  [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+ 1B0B..1B0C    ; InCB; Consonant # Lo   [2] BALINESE LETTER RA REPA..BALINESE LETTER RA REPA TEDUNG
+ 1B13..1B33    ; InCB; Consonant # Lo  [33] BALINESE LETTER KA..BALINESE LETTER HA
+ 1B45..1B4C    ; InCB; Consonant # Lo   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+ 1B83..1BA0    ; InCB; Consonant # Lo  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+ 1BAE..1BAF    ; InCB; Consonant # Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+ 1BBB..1BBD    ; InCB; Consonant # Lo   [3] SUNDANESE LETTER REU..SUNDANESE LETTER BHA
+ A989..A98B    ; InCB; Consonant # Lo   [3] JAVANESE LETTER PA CEREK..JAVANESE LETTER NGA LELET RASWADI
+ A98F..A9B2    ; InCB; Consonant # Lo  [36] JAVANESE LETTER KA..JAVANESE LETTER HA
+ A9E0..A9E4    ; InCB; Consonant # Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+ A9E7..A9EF    ; InCB; Consonant # Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+ A9FA..A9FE    ; InCB; Consonant # Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+ AA60..AA6F    ; InCB; Consonant # Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+ AA71..AA73    ; InCB; Consonant # Lo   [3] MYANMAR LETTER KHAMTI XA..MYANMAR LETTER KHAMTI RA
+ AA7A          ; InCB; Consonant # Lo       MYANMAR LETTER AITON RA
+ AA7E..AA7F    ; InCB; Consonant # Lo   [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+ AAE0..AAEA    ; InCB; Consonant # Lo  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+ ABC0..ABDA    ; InCB; Consonant # Lo  [27] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER BHAM
+ 10A00         ; InCB; Consonant # Lo       KHAROSHTHI LETTER A
+ 10A10..10A13  ; InCB; Consonant # Lo   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+ 10A15..10A17  ; InCB; Consonant # Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+ 10A19..10A35  ; InCB; Consonant # Lo  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+ 11103..11126  ; InCB; Consonant # Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+ 11144         ; InCB; Consonant # Lo       CHAKMA LETTER LHAA
+ 11147         ; InCB; Consonant # Lo       CHAKMA LETTER VAA
+ 11380..11389  ; InCB; Consonant # Lo  [10] TULU-TIGALARI LETTER A..TULU-TIGALARI LETTER VOCALIC LL
+ 1138B         ; InCB; Consonant # Lo       TULU-TIGALARI LETTER EE
+ 1138E         ; InCB; Consonant # Lo       TULU-TIGALARI LETTER AI
+ 11390..113B5  ; InCB; Consonant # Lo  [38] TULU-TIGALARI LETTER OO..TULU-TIGALARI LETTER LLLA
+ 11900..11906  ; InCB; Consonant # Lo   [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
+ 11909         ; InCB; Consonant # Lo       DIVES AKURU LETTER O
+ 1190C..11913  ; InCB; Consonant # Lo   [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+ 11915..11916  ; InCB; Consonant # Lo   [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+ 11918..1192F  ; InCB; Consonant # Lo  [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
+ 11A00         ; InCB; Consonant # Lo       ZANABAZAR SQUARE LETTER A
+ 11A0B..11A32  ; InCB; Consonant # Lo  [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
+ 11A50         ; InCB; Consonant # Lo       SOYOMBO LETTER A
+ 11A5C..11A83  ; InCB; Consonant # Lo  [40] SOYOMBO LETTER KA..SOYOMBO LETTER KSSA
+ 11F04..11F10  ; InCB; Consonant # Lo  [13] KAWI LETTER A..KAWI LETTER O
+ 11F12..11F33  ; InCB; Consonant # Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA
  
! # Total code points: 911
  
  # ================================================
  
*************** ABED          ; Grapheme_Link # Mn
*** 13065,13071 ****
  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
--- 13302,13308 ----
  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
! 103A          ; InCB; Extend # Mn       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
*************** ABED          ; Grapheme_Link # Mn
*** 13084,13090 ****
  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
--- 13321,13328 ----
  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..17D1    ; InCB; Extend # Mn   [9] KHMER SIGN MUUSIKATOAN..KHMER SIGN VIRIAM
! 17D3          ; InCB; Extend # Mn       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
*************** ABED          ; Grapheme_Link # Mn
*** 13098,13111 ****
  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
--- 13336,13349 ----
  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
  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..1ADD    ; InCB; Extend # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; InCB; Extend # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  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
*************** ABED          ; Grapheme_Link # Mn
*** 13114,13126 ****
  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
--- 13352,13364 ----
  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          ; InCB; Extend # Mc       BALINESE VOWEL SIGN PEPET TEDUNG
  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
! 1BAC..1BAD    ; InCB; Extend # Mn   [2] SUNDANESE CONSONANT SIGN PASANGAN MA..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
*************** A980..A982    ; InCB; Extend # Mn   [3]
*** 13167,13173 ****
  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
--- 13405,13410 ----
*************** AAB7..AAB8    ; InCB; Extend # Mn   [2]
*** 13181,13187 ****
  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
--- 13418,13423 ----
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13196,13207 ****
  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
--- 13432,13442 ----
  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
  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
! 10EFA..10EFF  ; InCB; Extend # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13214,13220 ****
  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
--- 13449,13456 ----
  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..11132  ; InCB; Extend # Mn   [6] CHAKMA VOWEL SIGN AI..CHAKMA AU MARK
! 11134         ; InCB; Extend # Mn       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
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13244,13250 ****
  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
--- 13480,13485 ----
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13279,13285 ****
  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
--- 13514,13519 ----
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13287,13297 ****
  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
--- 13521,13533 ----
  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
  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         ; InCB; Extend # Mn       SOYOMBO GEMINATION MARK
! 11B60         ; InCB; Extend # Mn       SHARADA VOWEL SIGN OE
! 11B62..11B64  ; InCB; Extend # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
! 11B66         ; InCB; Extend # Mn       SHARADA VOWEL SIGN CANDRA E
  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
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13312,13318 ****
  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
--- 13548,13553 ----
*************** FF9E..FF9F    ; InCB; Extend # Lm   [2]
*** 13351,13362 ****
  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
--- 13586,13601 ----
  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
+ 1E6E3         ; InCB; Extend # Mn       TAI YO SIGN UE
+ 1E6E6         ; InCB; Extend # Mn       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; InCB; Extend # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; InCB; Extend # Mn       TAI YO SIGN OM
  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: 2217
  
  # EOF
diff -Nrcpad gcc-15.2.0/contrib/unicode/DerivedGeneralCategory.txt gcc-16.1.0-RC-20260423/contrib/unicode/DerivedGeneralCategory.txt
*** gcc-15.2.0/contrib/unicode/DerivedGeneralCategory.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/DerivedGeneralCategory.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # DerivedGeneralCategory-17.0.0.txt
! # Date: 2025-07-24, 00:12:50 GMT
! # © 2025 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
  #
***************
*** 36,42 ****
  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>
--- 36,41 ----
***************
*** 120,126 ****
  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>
--- 119,125 ----
  0C49          ; Cn #       <reserved-0C49>
  0C4E..0C54    ; Cn #   [7] <reserved-0C4E>..<reserved-0C54>
  0C57          ; Cn #       <reserved-0C57>
! 0C5B          ; Cn #       <reserved-0C5B>
  0C5E..0C5F    ; Cn #   [2] <reserved-0C5E>..<reserved-0C5F>
  0C64..0C65    ; Cn #   [2] <reserved-0C64>..<reserved-0C65>
  0C70..0C76    ; Cn #   [7] <reserved-0C70>..<reserved-0C76>
***************
*** 132,138 ****
  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>
--- 131,137 ----
  0CC5          ; Cn #       <reserved-0CC5>
  0CC9          ; Cn #       <reserved-0CC9>
  0CCE..0CD4    ; Cn #   [7] <reserved-0CCE>..<reserved-0CD4>
! 0CD7..0CDB    ; Cn #   [5] <reserved-0CD7>..<reserved-0CDB>
  0CDF          ; Cn #       <reserved-0CDF>
  0CE4..0CE5    ; Cn #   [2] <reserved-0CE4>..<reserved-0CE5>
  0CF0          ; Cn #       <reserved-0CF0>
***************
*** 228,234 ****
  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>
--- 227,234 ----
  1A8A..1A8F    ; Cn #   [6] <reserved-1A8A>..<reserved-1A8F>
  1A9A..1A9F    ; Cn #   [6] <reserved-1A9A>..<reserved-1A9F>
  1AAE..1AAF    ; Cn #   [2] <reserved-1AAE>..<reserved-1AAF>
! 1ADE..1ADF    ; Cn #   [2] <reserved-1ADE>..<reserved-1ADF>
! 1AEC..1AFF    ; Cn #  [20] <reserved-1AEC>..<reserved-1AFF>
  1B4D          ; Cn #       <reserved-1B4D>
  1BF4..1BFB    ; Cn #   [8] <reserved-1BF4>..<reserved-1BFB>
  1C38..1C3A    ; Cn #   [3] <reserved-1C38>..<reserved-1C3A>
***************
*** 257,269 ****
  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>
--- 257,268 ----
  2072..2073    ; Cn #   [2] <reserved-2072>..<reserved-2073>
  208F          ; Cn #       <reserved-208F>
  209D..209F    ; Cn #   [3] <reserved-209D>..<reserved-209F>
! 20C2..20CF    ; Cn #  [14] <reserved-20C2>..<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>
  2CF4..2CF8    ; Cn #   [5] <reserved-2CF4>..<reserved-2CF8>
  2D26          ; Cn #       <reserved-2D26>
  2D28..2D2C    ; Cn #   [5] <reserved-2D28>..<reserved-2D2C>
*************** A48D..A48F    ; Cn #   [3] <reserved-A48
*** 294,303 ****
  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>
--- 293,299 ----
  A4C7..A4CF    ; Cn #   [9] <reserved-A4C7>..<reserved-A4CF>
  A62C..A63F    ; Cn #  [20] <reserved-A62C>..<reserved-A63F>
  A6F8..A6FF    ; Cn #   [8] <reserved-A6F8>..<reserved-A6FF>
! A7DD..A7F0    ; Cn #  [20] <reserved-A7DD>..<reserved-A7F0>
  A82D..A82F    ; Cn #   [3] <reserved-A82D>..<reserved-A82F>
  A83A..A83F    ; Cn #   [6] <reserved-A83A>..<reserved-A83F>
  A878..A87F    ; Cn #   [8] <reserved-A878>..<reserved-A87F>
*************** FB3D          ; Cn #       <reserved-FB3
*** 333,341 ****
  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>
--- 329,334 ----
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 407,413 ****
  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>
--- 400,406 ----
  108F6..108FA  ; Cn #   [5] <reserved-108F6>..<reserved-108FA>
  1091C..1091E  ; Cn #   [3] <reserved-1091C>..<reserved-1091E>
  1093A..1093E  ; Cn #   [5] <reserved-1093A>..<reserved-1093E>
! 1095A..1097F  ; Cn #  [38] <reserved-1095A>..<reserved-1097F>
  109B8..109BB  ; Cn #   [4] <reserved-109B8>..<reserved-109BB>
  109D0..109D1  ; Cn #   [2] <reserved-109D0>..<reserved-109D1>
  10A04         ; Cn #       <reserved-10A04>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 439,445 ****
  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>
--- 432,439 ----
  10EAA         ; Cn #       <reserved-10EAA>
  10EAE..10EAF  ; Cn #   [2] <reserved-10EAE>..<reserved-10EAF>
  10EB2..10EC1  ; Cn #  [16] <reserved-10EB2>..<reserved-10EC1>
! 10EC8..10ECF  ; Cn #   [8] <reserved-10EC8>..<reserved-10ECF>
! 10ED9..10EF9  ; Cn #  [33] <reserved-10ED9>..<reserved-10EF9>
  10F28..10F2F  ; Cn #   [8] <reserved-10F28>..<reserved-10F2F>
  10F5A..10F6F  ; Cn #  [22] <reserved-10F5A>..<reserved-10F6F>
  10F8A..10FAF  ; Cn #  [38] <reserved-10F8A>..<reserved-10FAF>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 522,528 ****
  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>
--- 516,523 ----
  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..11B5F  ; Cn #  [86] <reserved-11B0A>..<reserved-11B5F>
! 11B68..11BBF  ; Cn #  [88] <reserved-11B68>..<reserved-11BBF>
  11BE2..11BEF  ; Cn #  [14] <reserved-11BE2>..<reserved-11BEF>
  11BFA..11BFF  ; Cn #   [6] <reserved-11BFA>..<reserved-11BFF>
  11C09         ; Cn #       <reserved-11C09>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 544,550 ****
  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>
--- 539,547 ----
  11D8F         ; Cn #       <reserved-11D8F>
  11D92         ; Cn #       <reserved-11D92>
  11D99..11D9F  ; Cn #   [7] <reserved-11D99>..<reserved-11D9F>
! 11DAA..11DAF  ; Cn #   [6] <reserved-11DAA>..<reserved-11DAF>
! 11DDC..11DDF  ; Cn #   [4] <reserved-11DDC>..<reserved-11DDF>
! 11DEA..11EDF  ; Cn # [246] <reserved-11DEA>..<reserved-11EDF>
  11EF9..11EFF  ; Cn #   [7] <reserved-11EF9>..<reserved-11EFF>
  11F11         ; Cn #       <reserved-11F11>
  11F3B..11F3D  ; Cn #   [3] <reserved-11F3B>..<reserved-11F3D>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 573,587 ****
  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>
--- 570,586 ----
  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..16E9F  ; Cn #   [5] <reserved-16E9B>..<reserved-16E9F>
! 16EB9..16EBA  ; Cn #   [2] <reserved-16EB9>..<reserved-16EBA>
! 16ED4..16EFF  ; Cn #  [44] <reserved-16ED4>..<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>
! 16FF7..16FFF  ; Cn #   [9] <reserved-16FF7>..<reserved-16FFF>
  18CD6..18CFE  ; Cn #  [41] <reserved-18CD6>..<reserved-18CFE>
! 18D1F..18D7F  ; Cn #  [97] <reserved-18D1F>..<reserved-18D7F>
! 18DF3..1AFEF  ; Cn # [8701] <reserved-18DF3>..<reserved-1AFEF>
  1AFF4         ; Cn #       <reserved-1AFF4>
  1AFFC         ; Cn #       <reserved-1AFFC>
  1AFFF         ; Cn #       <reserved-1AFFF>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 596,603 ****
  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>
--- 595,604 ----
  1BC89..1BC8F  ; Cn #   [7] <reserved-1BC89>..<reserved-1BC8F>
  1BC9A..1BC9B  ; Cn #   [2] <reserved-1BC9A>..<reserved-1BC9B>
  1BCA4..1CBFF  ; Cn # [3932] <reserved-1BCA4>..<reserved-1CBFF>
! 1CCFD..1CCFF  ; Cn #   [3] <reserved-1CCFD>..<reserved-1CCFF>
! 1CEB4..1CEB9  ; Cn #   [6] <reserved-1CEB4>..<reserved-1CEB9>
! 1CED1..1CEDF  ; Cn #  [15] <reserved-1CED1>..<reserved-1CEDF>
! 1CEF1..1CEFF  ; Cn #  [15] <reserved-1CEF1>..<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>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 650,656 ****
  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>
--- 651,660 ----
  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..1E6BF  ; Cn # [192] <reserved-1E600>..<reserved-1E6BF>
! 1E6DF         ; Cn #       <reserved-1E6DF>
! 1E6F6..1E6FD  ; Cn #   [8] <reserved-1E6F6>..<reserved-1E6FD>
! 1E700..1E7DF  ; Cn # [224] <reserved-1E700>..<reserved-1E7DF>
  1E7E7         ; Cn #       <reserved-1E7E7>
  1E7EC         ; Cn #       <reserved-1E7EC>
  1E7EF         ; Cn #       <reserved-1E7EF>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 708,717 ****
  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>
--- 712,720 ----
  1F249..1F24F  ; Cn #   [7] <reserved-1F249>..<reserved-1F24F>
  1F252..1F25F  ; Cn #  [14] <reserved-1F252>..<reserved-1F25F>
  1F266..1F2FF  ; Cn # [154] <reserved-1F266>..<reserved-1F2FF>
! 1F6D9..1F6DB  ; Cn #   [3] <reserved-1F6D9>..<reserved-1F6DB>
  1F6ED..1F6EF  ; Cn #   [3] <reserved-1F6ED>..<reserved-1F6EF>
  1F6FD..1F6FF  ; Cn #   [3] <reserved-1F6FD>..<reserved-1F6FF>
  1F7DA..1F7DF  ; Cn #   [6] <reserved-1F7DA>..<reserved-1F7DF>
  1F7EC..1F7EF  ; Cn #   [4] <reserved-1F7EC>..<reserved-1F7EF>
  1F7F1..1F7FF  ; Cn #  [15] <reserved-1F7F1>..<reserved-1F7FF>
*************** FFFE..FFFF    ; Cn #   [2] <noncharacter
*** 721,753 ****
  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
  
  # ================================================
  
--- 724,757 ----
  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..1F8CF  ; Cn #  [14] <reserved-1F8C2>..<reserved-1F8CF>
! 1F8D9..1F8FF  ; Cn #  [39] <reserved-1F8D9>..<reserved-1F8FF>
! 1FA58..1FA5F  ; Cn #   [8] <reserved-1FA58>..<reserved-1FA5F>
  1FA6E..1FA6F  ; Cn #   [2] <reserved-1FA6E>..<reserved-1FA6F>
  1FA7D..1FA7F  ; Cn #   [3] <reserved-1FA7D>..<reserved-1FA7F>
! 1FA8B..1FA8D  ; Cn #   [3] <reserved-1FA8B>..<reserved-1FA8D>
! 1FAC7         ; Cn #       <reserved-1FAC7>
! 1FAC9..1FACC  ; Cn #   [4] <reserved-1FAC9>..<reserved-1FACC>
  1FADD..1FADE  ; Cn #   [2] <reserved-1FADD>..<reserved-1FADE>
! 1FAEB..1FAEE  ; Cn #   [4] <reserved-1FAEB>..<reserved-1FAEE>
  1FAF9..1FAFF  ; Cn #   [7] <reserved-1FAF9>..<reserved-1FAFF>
  1FB93         ; Cn #       <reserved-1FB93>
! 1FBFB..1FFFF  ; Cn # [1029] <reserved-1FBFB>..<noncharacter-1FFFF>
  2A6E0..2A6FF  ; Cn #  [32] <reserved-2A6E0>..<reserved-2A6FF>
  2B81E..2B81F  ; Cn #   [2] <reserved-2B81E>..<reserved-2B81F>
! 2CEAE..2CEAF  ; Cn #   [2] <reserved-2CEAE>..<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>
! 3347A..E0000  ; Cn # [707463] <reserved-3347A>..<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: 814730
  
  # ================================================
  
*************** A7C2          ; Lu #       LATIN CAPITAL
*** 1355,1361 ****
--- 1359,1368 ----
  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
+ A7CE          ; Lu #       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; Lu #       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; Lu #       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; Lu #       LATIN CAPITAL LETTER DOUBLE WYNN
  A7D6          ; Lu #       LATIN CAPITAL LETTER MIDDLE SCOTS S
  A7D8          ; Lu #       LATIN CAPITAL LETTER SIGMOID S
  A7DA          ; Lu #       LATIN CAPITAL LETTER LAMBDA
*************** FF21..FF3A    ; Lu #  [26] FULLWIDTH LAT
*** 1372,1377 ****
--- 1379,1385 ----
  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
+ 16EA0..16EB8  ; Lu #  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
  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
*************** FF21..FF3A    ; Lu #  [26] FULLWIDTH LAT
*** 1405,1411 ****
  1D7CA         ; Lu #       MATHEMATICAL BOLD CAPITAL DIGAMMA
  1E900..1E921  ; Lu #  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1858
  
  # ================================================
  
--- 1413,1419 ----
  1D7CA         ; Lu #       MATHEMATICAL BOLD CAPITAL DIGAMMA
  1E900..1E921  ; Lu #  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
  
! # Total code points: 1886
  
  # ================================================
  
*************** FF21..FF3A    ; Lu #  [26] FULLWIDTH LAT
*** 1556,1562 ****
  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
--- 1564,1570 ----
  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
! 0296..02AF    ; Ll #  [26] LATIN LETTER INVERTED GLOTTAL STOP..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
*************** A7C3          ; Ll #       LATIN SMALL L
*** 2017,2022 ****
--- 2025,2031 ----
  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
+ A7CF          ; Ll #       LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D1          ; Ll #       LATIN SMALL LETTER CLOSED INSULAR G
  A7D3          ; Ll #       LATIN SMALL LETTER DOUBLE THORN
  A7D5          ; Ll #       LATIN SMALL LETTER DOUBLE WYNN
*************** FF41..FF5A    ; Ll #  [26] FULLWIDTH LAT
*** 2041,2046 ****
--- 2050,2056 ----
  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
+ 16EBB..16ED3  ; Ll #  [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  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
*************** FF41..FF5A    ; Ll #  [26] FULLWIDTH LAT
*** 2074,2080 ****
  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
  
  # ================================================
  
--- 2084,2090 ----
  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: 2283
  
  # ================================================
  
*************** A69C..A69D    ; Lm #   [2] MODIFIER LETT
*** 2143,2149 ****
  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
--- 2153,2159 ----
  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
! A7F1..A7F4    ; Lm #   [4] MODIFIER LETTER CAPITAL S..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
*************** FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
*** 2159,2179 ****
  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
  
  # ================================================
  
--- 2169,2193 ----
  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
+ 10EC5         ; Lm #       ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
+ 11DD9         ; Lm #       TOLONG SIKI SIGN SELA
  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
+ 16FF2..16FF3  ; Lm #   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
  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
+ 1E6FF         ; Lm #       TAI YO XAM LAI
  1E94B         ; Lm #       ADLAM NASALIZATION MARK
  
! # Total code points: 410
  
  # ================================================
  
*************** FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
*** 2183,2189 ****
  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
--- 2197,2203 ----
  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..0295    ; Lo #   [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
  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
*************** FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
*** 2203,2209 ****
  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
--- 2217,2223 ----
  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..088F    ; Lo #   [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  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
*************** FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
*** 2269,2275 ****
  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
--- 2283,2289 ----
  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
! 0C5C..0C5D    ; Lo #   [2] TELUGU ARCHAIC SHRII..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
*************** FF9E..FF9F    ; Lm #   [2] HALFWIDTH KAT
*** 2278,2284 ****
  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
--- 2292,2298 ----
  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
! 0CDC..0CDE    ; Lo #   [3] KANNADA ARCHAIC SHRII..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
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2504,2509 ****
--- 2518,2524 ----
  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
+ 10940..10959  ; Lo #  [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  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
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2525,2530 ****
--- 2540,2546 ----
  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
+ 10EC6..10EC7  ; Lo #   [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS 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
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2616,2621 ****
--- 2632,2639 ----
  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
+ 11DB0..11DD8  ; Lo #  [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DDA..11DDB  ; Lo #   [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
  11EE0..11EF2  ; Lo #  [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11F02         ; Lo #       KAWI SIGN REPHA
  11F04..11F10  ; Lo #  [13] KAWI LETTER A..KAWI LETTER O
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2639,2647 ****
  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
--- 2657,2665 ----
  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..18CD5  ; Lo # [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; Lo #  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; Lo # [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2660,2665 ****
--- 2678,2689 ----
  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
+ 1E6C0..1E6DE  ; Lo #  [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2  ; Lo #   [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E4..1E6E5  ; Lo #   [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E7..1E6ED  ; Lo #   [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6F0..1E6F4  ; Lo #   [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6FE         ; Lo #       TAI YO SYMBOL MUEANG
  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
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2699,2714 ****
  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
  
  # ================================================
  
--- 2723,2737 ----
  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..2B81D  ; Lo # [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; Lo # [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  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..33479  ; Lo # [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 141062
  
  # ================================================
  
*************** FFDA..FFDC    ; Lo #   [3] HALFWIDTH HAN
*** 2856,2862 ****
  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
--- 2879,2886 ----
  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..1ADD    ; Mn #  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; Mn #  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  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
*************** FE20..FE2F    ; Mn #  [16] COMBINING LIG
*** 2938,2944 ****
  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
--- 2962,2968 ----
  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
! 10EFA..10EFF  ; Mn #   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*************** FE20..FE2F    ; Mn #  [16] COMBINING LIG
*** 3013,3018 ****
--- 3037,3045 ----
  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
+ 11B60         ; Mn #       SHARADA VOWEL SIGN OE
+ 11B62..11B64  ; Mn #   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B66         ; Mn #       SHARADA VOWEL SIGN CANDRA E
  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
*************** FE20..FE2F    ; Mn #  [16] COMBINING LIG
*** 3068,3078 ****
  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
  
  # ================================================
  
--- 3095,3109 ----
  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
+ 1E6E3         ; Mn #       TAI YO SIGN UE
+ 1E6E6         ; Mn #       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; Mn #   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; Mn #       TAI YO SIGN OM
  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: 2059
  
  # ================================================
  
*************** ABEC          ; Mc #       MEETEI MAYEK
*** 3262,3267 ****
--- 3293,3301 ----
  11A39         ; Mc #       ZANABAZAR SQUARE SIGN VISARGA
  11A57..11A58  ; Mc #   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
  11A97         ; Mc #       SOYOMBO SIGN VISARGA
+ 11B61         ; Mc #       SHARADA VOWEL SIGN OOE
+ 11B65         ; Mc #       SHARADA VOWEL SIGN SHORT O
+ 11B67         ; Mc #       SHARADA VOWEL SIGN CANDRA O
  11C2F         ; Mc #       BHAIKSUKI VOWEL SIGN AA
  11C3E         ; Mc #       BHAIKSUKI SIGN VISARGA
  11CA9         ; Mc #       MARCHEN SUBJOINED LETTER YA
*************** ABEC          ; Mc #       MEETEI MAYEK
*** 3281,3287 ****
  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
  
  # ================================================
  
--- 3315,3321 ----
  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: 471
  
  # ================================================
  
*************** FF10..FF19    ; Nd #  [10] FULLWIDTH DIG
*** 3344,3349 ****
--- 3378,3384 ----
  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
+ 11DE0..11DE9  ; Nd #  [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI 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
*************** FF10..FF19    ; Nd #  [10] FULLWIDTH DIG
*** 3359,3365 ****
  1E950..1E959  ; Nd #  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
  1FBF0..1FBF9  ; Nd #  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  
! # Total code points: 760
  
  # ================================================
  
--- 3394,3400 ----
  1E950..1E959  ; Nd #  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
  1FBF0..1FBF9  ; Nd #  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
  
! # Total code points: 770
  
  # ================================================
  
*************** A6E6..A6EF    ; Nl #  [10] BAMUM LETTER
*** 3377,3384 ****
  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
  
  # ================================================
  
--- 3412,3420 ----
  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
+ 16FF4..16FF6  ; Nl #   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
  
! # Total code points: 239
  
  # ================================================
  
*************** FF64..FF65    ; Po #   [2] HALFWIDTH IDE
*** 3900,3905 ****
--- 3936,3942 ----
  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
+ 10ED0         ; Po #       ARABIC BIBLICAL END OF VERSE
  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
*************** FF64..FF65    ; Po #   [2] HALFWIDTH IDE
*** 3951,3957 ****
  1E5FF         ; Po #       OL ONAL ABBREVIATION SIGN
  1E95E..1E95F  ; Po #   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
  
! # Total code points: 640
  
  # ================================================
  
--- 3988,3994 ----
  1E5FF         ; Po #       OL ONAL ABBREVIATION SIGN
  1E95E..1E95F  ; Po #   [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
  
! # Total code points: 641
  
  # ================================================
  
*************** FF5E          ; Sm #       FULLWIDTH TIL
*** 4011,4016 ****
--- 4048,4054 ----
  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
+ 1CEF0         ; Sm #       MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
  1D6C1         ; Sm #       MATHEMATICAL BOLD NABLA
  1D6DB         ; Sm #       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
  1D6FB         ; Sm #       MATHEMATICAL ITALIC NABLA
*************** FFE9..FFEC    ; Sm #   [4] HALFWIDTH LEF
*** 4022,4029 ****
  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
  
  # ================================================
  
--- 4060,4068 ----
  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
+ 1F8D0..1F8D8  ; Sm #   [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
  
! # Total code points: 960
  
  # ================================================
  
*************** FFE9..FFEC    ; Sm #   [4] HALFWIDTH LEF
*** 4040,4046 ****
  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
--- 4079,4085 ----
  0BF9          ; Sc #       TAMIL RUPEE SIGN
  0E3F          ; Sc #       THAI CURRENCY SYMBOL BAHT
  17DB          ; Sc #       KHMER CURRENCY SYMBOL RIEL
! 20A0..20C1    ; Sc #  [34] EURO-CURRENCY SIGN..SAUDI RIYAL SIGN
  A838          ; Sc #       NORTH INDIC RUPEE MARK
  FDFC          ; Sc #       RIAL SIGN
  FE69          ; Sc #       SMALL DOLLAR SIGN
*************** FFE5..FFE6    ; Sc #   [2] FULLWIDTH YEN
*** 4051,4057 ****
  1E2FF         ; Sc #       WANCHO NGUN SIGN
  1ECB0         ; Sc #       INDIC SIYAQ RUPEE MARK
  
! # Total code points: 63
  
  # ================================================
  
--- 4090,4096 ----
  1E2FF         ; Sc #       WANCHO NGUN SIGN
  1ECB0         ; Sc #       INDIC SIYAQ RUPEE MARK
  
! # Total code points: 64
  
  # ================================================
  
*************** FFE3          ; Sk #       FULLWIDTH MAC
*** 4174,4181 ****
  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
--- 4213,4219 ----
  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..2BFF    ; So # [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..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
*************** A828..A82B    ; So #   [4] SYLOTI NAGRI
*** 4203,4210 ****
  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
--- 4241,4250 ----
  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
+ FBC3..FBD2    ; So #  [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH
  FD40..FD4F    ; So #  [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
! FD90..FD91    ; So #   [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA
! FDC8..FDCF    ; So #   [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..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
*************** FFFC..FFFD    ; So #   [2] OBJECT REPLAC
*** 4218,4223 ****
--- 4258,4264 ----
  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
+ 10ED1..10ED8  ; So #   [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH
  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
*************** FFFC..FFFD    ; So #   [2] OBJECT REPLAC
*** 4225,4231 ****
--- 4266,4275 ----
  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
+ 1CCFA..1CCFC  ; So #   [3] SNAKE SYMBOL..NOSE SYMBOL
  1CD00..1CEB3  ; So # [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
+ 1CEBA..1CED0  ; So #  [23] FRAGILE SYMBOL..LEUKOTHEA
+ 1CEE0..1CEEF  ; So #  [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA
  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
*************** FFFC..FFFD    ; So #   [2] OBJECT REPLAC
*** 4258,4268 ****
  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
--- 4302,4311 ----
  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..1F6D8  ; So # [729] RAT..LANDSLIDE
  1F6DC..1F6EC  ; So #  [17] WIRELESS..AIRPLANE ARRIVING
  1F6F0..1F6FC  ; So #  [13] SATELLITE..ROLLER SKATE
! 1F700..1F7D9  ; So # [218] ALCHEMICAL SYMBOL FOR QUINTESSENCE..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
*************** FFFC..FFFD    ; So #   [2] OBJECT REPLAC
*** 4272,4289 ****
  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
  
  # ================================================
  
--- 4315,4334 ----
  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..1FA57  ; So # [344] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS ALFIL
  1FA60..1FA6D  ; So #  [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C  ; So #  [13] BALLET SHOES..CRUTCH
! 1FA80..1FA8A  ; So #  [11] YO-YO..TROMBONE
! 1FA8E..1FAC6  ; So #  [57] TREASURE CHEST..FINGERPRINT
! 1FAC8         ; So #       HAIRY CREATURE
! 1FACD..1FADC  ; So #  [16] ORCA..ROOT VEGETABLE
! 1FADF..1FAEA  ; So #  [12] SPLATTER..DISTORTED FACE
! 1FAEF..1FAF8  ; So #  [10] FIGHT CLOUD..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
+ 1FBFA         ; So #       ALARM BELL SYMBOL
  
! # Total code points: 7468
  
  # ================================================
  
diff -Nrcpad gcc-15.2.0/contrib/unicode/DerivedNormalizationProps.txt gcc-16.1.0-RC-20260423/contrib/unicode/DerivedNormalizationProps.txt
*** gcc-15.2.0/contrib/unicode/DerivedNormalizationProps.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/DerivedNormalizationProps.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # DerivedNormalizationProps-17.0.0.txt
! # Date: 2025-01-27, 18:09:14 GMT
! # © 2025 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
  #
***************
*** 132,137 ****
--- 132,138 ----
  33DD  ; FC_NFKC; 0077 0062      # So  SQUARE WB
  33DE  ; FC_NFKC; 0076 2215 006D # So  SQUARE V OVER M
  33DF  ; FC_NFKC; 0061 2215 006D # So  SQUARE A OVER M
+ A7F1  ; FC_NFKC; 0073           # Lm  MODIFIER LETTER CAPITAL S
  A7F2  ; FC_NFKC; 0063           # Lm  MODIFIER LETTER CAPITAL C
  A7F3  ; FC_NFKC; 0066           # Lm  MODIFIER LETTER CAPITAL F
  A7F4  ; FC_NFKC; 0071           # Lm  MODIFIER LETTER CAPITAL Q
*************** A7F8  ; FC_NFKC; 0127           # Lm  MO
*** 679,685 ****
  1F16C ; FC_NFKC; 006D 0072      # So  RAISED MR SIGN
  1F190 ; FC_NFKC; 0064 006A      # So  SQUARE DJ
  
! # Total code points: 663
  
  # ================================================
  
--- 680,686 ----
  1F16C ; FC_NFKC; 006D 0072      # So  RAISED MR SIGN
  1F190 ; FC_NFKC; 0064 006A      # So  SQUARE DJ
  
! # Total code points: 664
  
  # ================================================
  
*************** FB46..FB4E    ; NFC_QC; N # Lo   [9] HEB
*** 1515,1521 ****
  32C0..33FF    ; NFKD_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
  A69C..A69D    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; NFKD_QC; N # Lm       MODIFIER LETTER US
! A7F2..A7F4    ; NFKD_QC; N # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; NFKD_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; NFKD_QC; N # Lm       MODIFIER LETTER SMALL TURNED W
--- 1516,1522 ----
  32C0..33FF    ; NFKD_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
  A69C..A69D    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; NFKD_QC; N # Lm       MODIFIER LETTER US
! A7F1..A7F4    ; NFKD_QC; N # Lm   [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; NFKD_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; NFKD_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; NFKD_QC; N # Lm       MODIFIER LETTER SMALL TURNED W
*************** FFED..FFEE    ; NFKD_QC; N # So   [2] HA
*** 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
  
  # ================================================
  
--- 1754,1760 ----
  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: 17086
  
  # ================================================
  
*************** FFED..FFEE    ; NFKD_QC; N # So   [2] HA
*** 1946,1952 ****
  32C0..33FF    ; NFKC_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
  A69C..A69D    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; NFKC_QC; N # Lm       MODIFIER LETTER US
! A7F2..A7F4    ; NFKC_QC; N # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; NFKC_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; NFKC_QC; N # Lm       MODIFIER LETTER SMALL TURNED W
--- 1947,1953 ----
  32C0..33FF    ; NFKC_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
  A69C..A69D    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; NFKC_QC; N # Lm       MODIFIER LETTER US
! A7F1..A7F4    ; NFKC_QC; N # Lm   [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; NFKC_QC; N # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; NFKC_QC; N # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; NFKC_QC; N # Lm       MODIFIER LETTER SMALL TURNED W
*************** FFED..FFEE    ; NFKC_QC; N # So   [2] HA
*** 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
  
  # ================================================
  
--- 2165,2171 ----
  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: 4965
  
  # ================================================
  
*************** A7C7          ; NFKC_CF; A7C8
*** 5448,5458 ****
--- 5449,5463 ----
  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
+ A7CE          ; NFKC_CF; A7CF           # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; NFKC_CF; A7D1           # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; NFKC_CF; A7D3           # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; NFKC_CF; A7D5           # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  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
+ A7F1          ; NFKC_CF; 0073           # Lm       MODIFIER LETTER CAPITAL S
  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;
*** 7184,7189 ****
--- 7189,7219 ----
  16E5D         ; NFKC_CF; 16E7D          # L&       MEDEFAIDRIN CAPITAL LETTER O
  16E5E         ; NFKC_CF; 16E7E          # L&       MEDEFAIDRIN CAPITAL LETTER AI
  16E5F         ; NFKC_CF; 16E7F          # L&       MEDEFAIDRIN CAPITAL LETTER Y
+ 16EA0         ; NFKC_CF; 16EBB          # L&       BERIA ERFE CAPITAL LETTER ARKAB
+ 16EA1         ; NFKC_CF; 16EBC          # L&       BERIA ERFE CAPITAL LETTER BASIGNA
+ 16EA2         ; NFKC_CF; 16EBD          # L&       BERIA ERFE CAPITAL LETTER DARBAI
+ 16EA3         ; NFKC_CF; 16EBE          # L&       BERIA ERFE CAPITAL LETTER EH
+ 16EA4         ; NFKC_CF; 16EBF          # L&       BERIA ERFE CAPITAL LETTER FITKO
+ 16EA5         ; NFKC_CF; 16EC0          # L&       BERIA ERFE CAPITAL LETTER GOWAY
+ 16EA6         ; NFKC_CF; 16EC1          # L&       BERIA ERFE CAPITAL LETTER HIRDEABO
+ 16EA7         ; NFKC_CF; 16EC2          # L&       BERIA ERFE CAPITAL LETTER I
+ 16EA8         ; NFKC_CF; 16EC3          # L&       BERIA ERFE CAPITAL LETTER DJAI
+ 16EA9         ; NFKC_CF; 16EC4          # L&       BERIA ERFE CAPITAL LETTER KOBO
+ 16EAA         ; NFKC_CF; 16EC5          # L&       BERIA ERFE CAPITAL LETTER LAKKO
+ 16EAB         ; NFKC_CF; 16EC6          # L&       BERIA ERFE CAPITAL LETTER MERI
+ 16EAC         ; NFKC_CF; 16EC7          # L&       BERIA ERFE CAPITAL LETTER NINI
+ 16EAD         ; NFKC_CF; 16EC8          # L&       BERIA ERFE CAPITAL LETTER GNA
+ 16EAE         ; NFKC_CF; 16EC9          # L&       BERIA ERFE CAPITAL LETTER NGAY
+ 16EAF         ; NFKC_CF; 16ECA          # L&       BERIA ERFE CAPITAL LETTER OI
+ 16EB0         ; NFKC_CF; 16ECB          # L&       BERIA ERFE CAPITAL LETTER PI
+ 16EB1         ; NFKC_CF; 16ECC          # L&       BERIA ERFE CAPITAL LETTER ERIGO
+ 16EB2         ; NFKC_CF; 16ECD          # L&       BERIA ERFE CAPITAL LETTER ERIGO TAMURA
+ 16EB3         ; NFKC_CF; 16ECE          # L&       BERIA ERFE CAPITAL LETTER SERI
+ 16EB4         ; NFKC_CF; 16ECF          # L&       BERIA ERFE CAPITAL LETTER SHEP
+ 16EB5         ; NFKC_CF; 16ED0          # L&       BERIA ERFE CAPITAL LETTER TATASOUE
+ 16EB6         ; NFKC_CF; 16ED1          # L&       BERIA ERFE CAPITAL LETTER UI
+ 16EB7         ; NFKC_CF; 16ED2          # L&       BERIA ERFE CAPITAL LETTER WASSE
+ 16EB8         ; NFKC_CF; 16ED3          # L&       BERIA ERFE CAPITAL LETTER AY
  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
*************** E0080..E00FF  ; NFKC_CF;
*** 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
  
  # ================================================
  
--- 9178,9184 ----
  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: 10583
  
  # ================================================
  
*************** A7C7          ; NFKC_SCF; A7C8
*** 11582,11592 ****
--- 11612,11626 ----
  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
+ A7CE          ; NFKC_SCF; A7CF           # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; NFKC_SCF; A7D1           # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; NFKC_SCF; A7D3           # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; NFKC_SCF; A7D5           # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  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
+ A7F1          ; NFKC_SCF; 0073           # Lm       MODIFIER LETTER CAPITAL S
  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;
*** 13318,13323 ****
--- 13352,13382 ----
  16E5D         ; NFKC_SCF; 16E7D          # L&       MEDEFAIDRIN CAPITAL LETTER O
  16E5E         ; NFKC_SCF; 16E7E          # L&       MEDEFAIDRIN CAPITAL LETTER AI
  16E5F         ; NFKC_SCF; 16E7F          # L&       MEDEFAIDRIN CAPITAL LETTER Y
+ 16EA0         ; NFKC_SCF; 16EBB          # L&       BERIA ERFE CAPITAL LETTER ARKAB
+ 16EA1         ; NFKC_SCF; 16EBC          # L&       BERIA ERFE CAPITAL LETTER BASIGNA
+ 16EA2         ; NFKC_SCF; 16EBD          # L&       BERIA ERFE CAPITAL LETTER DARBAI
+ 16EA3         ; NFKC_SCF; 16EBE          # L&       BERIA ERFE CAPITAL LETTER EH
+ 16EA4         ; NFKC_SCF; 16EBF          # L&       BERIA ERFE CAPITAL LETTER FITKO
+ 16EA5         ; NFKC_SCF; 16EC0          # L&       BERIA ERFE CAPITAL LETTER GOWAY
+ 16EA6         ; NFKC_SCF; 16EC1          # L&       BERIA ERFE CAPITAL LETTER HIRDEABO
+ 16EA7         ; NFKC_SCF; 16EC2          # L&       BERIA ERFE CAPITAL LETTER I
+ 16EA8         ; NFKC_SCF; 16EC3          # L&       BERIA ERFE CAPITAL LETTER DJAI
+ 16EA9         ; NFKC_SCF; 16EC4          # L&       BERIA ERFE CAPITAL LETTER KOBO
+ 16EAA         ; NFKC_SCF; 16EC5          # L&       BERIA ERFE CAPITAL LETTER LAKKO
+ 16EAB         ; NFKC_SCF; 16EC6          # L&       BERIA ERFE CAPITAL LETTER MERI
+ 16EAC         ; NFKC_SCF; 16EC7          # L&       BERIA ERFE CAPITAL LETTER NINI
+ 16EAD         ; NFKC_SCF; 16EC8          # L&       BERIA ERFE CAPITAL LETTER GNA
+ 16EAE         ; NFKC_SCF; 16EC9          # L&       BERIA ERFE CAPITAL LETTER NGAY
+ 16EAF         ; NFKC_SCF; 16ECA          # L&       BERIA ERFE CAPITAL LETTER OI
+ 16EB0         ; NFKC_SCF; 16ECB          # L&       BERIA ERFE CAPITAL LETTER PI
+ 16EB1         ; NFKC_SCF; 16ECC          # L&       BERIA ERFE CAPITAL LETTER ERIGO
+ 16EB2         ; NFKC_SCF; 16ECD          # L&       BERIA ERFE CAPITAL LETTER ERIGO TAMURA
+ 16EB3         ; NFKC_SCF; 16ECE          # L&       BERIA ERFE CAPITAL LETTER SERI
+ 16EB4         ; NFKC_SCF; 16ECF          # L&       BERIA ERFE CAPITAL LETTER SHEP
+ 16EB5         ; NFKC_SCF; 16ED0          # L&       BERIA ERFE CAPITAL LETTER TATASOUE
+ 16EB6         ; NFKC_SCF; 16ED1          # L&       BERIA ERFE CAPITAL LETTER UI
+ 16EB7         ; NFKC_SCF; 16ED2          # L&       BERIA ERFE CAPITAL LETTER WASSE
+ 16EB8         ; NFKC_SCF; 16ED3          # L&       BERIA ERFE CAPITAL LETTER AY
  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
*************** E0080..E00FF  ; NFKC_SCF;
*** 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
  
  # ================================================
  
--- 15341,15347 ----
  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: 10545
  
  # ================================================
  
*************** A7C2          ; Changes_When_NFKC_Casefo
*** 16052,16063 ****
  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
  AB5C..AB5F    ; Changes_When_NFKC_Casefolded # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
--- 16111,16125 ----
  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
+ A7CE          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE
  A7D0          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER CLOSED INSULAR G
+ A7D2          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER DOUBLE THORN
+ A7D4          ; Changes_When_NFKC_Casefolded # L&       LATIN CAPITAL LETTER DOUBLE WYNN
  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
! A7F1..A7F4    ; Changes_When_NFKC_Casefolded # Lm   [4] MODIFIER LETTER CAPITAL S..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
  AB5C..AB5F    ; Changes_When_NFKC_Casefolded # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
*************** FFF0..FFF8    ; Changes_When_NFKC_Casefo
*** 16199,16204 ****
--- 16261,16267 ----
  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
+ 16EA0..16EB8  ; Changes_When_NFKC_Casefolded # L&  [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
  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
*************** E0080..E00FF  ; Changes_When_NFKC_Casefo
*** 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
--- 16363,16368 ----
  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: 10583
  
  # EOF
diff -Nrcpad gcc-15.2.0/contrib/unicode/EastAsianWidth.txt gcc-16.1.0-RC-20260423/contrib/unicode/EastAsianWidth.txt
*** gcc-15.2.0/contrib/unicode/EastAsianWidth.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/EastAsianWidth.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # EastAsianWidth-17.0.0.txt
! # Date: 2025-07-24, 00:12:54 GMT
! # © 2025 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
  #
***************
*** 180,187 ****
  0252..0260     ; N  # Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
  0261           ; A  # Ll         LATIN SMALL LETTER SCRIPT G
  0262..0293     ; N  # Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
! 0294           ; N  # Lo         LATIN LETTER GLOTTAL STOP
! 0295..02AF     ; N  # Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1     ; N  # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C2..02C3     ; N  # Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
  02C4           ; A  # Sk         MODIFIER LETTER UP ARROWHEAD
--- 180,187 ----
  0252..0260     ; N  # Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
  0261           ; A  # Ll         LATIN SMALL LETTER SCRIPT G
  0262..0293     ; N  # Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
! 0294..0295     ; N  # Lo     [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE
! 0296..02AF     ; N  # Ll    [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
  02B0..02C1     ; N  # Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
  02C2..02C3     ; N  # Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
  02C4           ; A  # Sk         MODIFIER LETTER UP ARROWHEAD
***************
*** 332,338 ****
  0860..086A     ; N  # Lo    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887     ; N  # Lo    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  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
--- 332,338 ----
  0860..086A     ; N  # Lo    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
  0870..0887     ; N  # Lo    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
  0888           ; N  # Sk         ARABIC RAISED ROUND DOT
! 0889..088F     ; N  # Lo     [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE
  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
***************
*** 502,508 ****
  0C4A..0C4D     ; N  # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56     ; N  # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A     ; N  # Lo     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5D           ; N  # Lo         TELUGU LETTER NAKAARA POLLU
  0C60..0C61     ; N  # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63     ; N  # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F     ; N  # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
--- 502,508 ----
  0C4A..0C4D     ; N  # Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  0C55..0C56     ; N  # Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  0C58..0C5A     ; N  # Lo     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
! 0C5C..0C5D     ; N  # Lo     [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU
  0C60..0C61     ; N  # Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
  0C62..0C63     ; N  # Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  0C66..0C6F     ; N  # Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
***************
*** 528,534 ****
  0CCA..0CCB     ; N  # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD     ; N  # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6     ; N  # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDD..0CDE     ; N  # Lo     [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
  0CE0..0CE1     ; N  # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3     ; N  # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF     ; N  # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
--- 528,534 ----
  0CCA..0CCB     ; N  # Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  0CCC..0CCD     ; N  # Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  0CD5..0CD6     ; N  # Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
! 0CDC..0CDE     ; N  # Lo     [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA
  0CE0..0CE1     ; N  # Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
  0CE2..0CE3     ; N  # Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  0CE6..0CEF     ; N  # Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
***************
*** 806,812 ****
  1AA8..1AAD     ; N  # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
  1AB0..1ABD     ; N  # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE           ; N  # Me         COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE     ; N  # Mn    [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03     ; N  # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04           ; N  # Mc         BALINESE SIGN BISAH
  1B05..1B33     ; N  # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
--- 806,813 ----
  1AA8..1AAD     ; N  # Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
  1AB0..1ABD     ; N  # Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE           ; N  # Me         COMBINING PARENTHESES OVERLAY
! 1ABF..1ADD     ; N  # Mn    [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB     ; N  # Mn    [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03     ; N  # Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B04           ; N  # Mc         BALINESE SIGN BISAH
  1B05..1B33     ; N  # Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA
***************
*** 976,982 ****
  20A9           ; H  # Sc         WON SIGN
  20AA..20AB     ; N  # Sc     [2] NEW SHEQEL SIGN..DONG SIGN
  20AC           ; A  # Sc         EURO SIGN
! 20AD..20C0     ; N  # Sc    [20] KIP SIGN..SOM SIGN
  20D0..20DC     ; N  # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
  20DD..20E0     ; N  # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
  20E1           ; N  # Mn         COMBINING LEFT RIGHT ARROW ABOVE
--- 977,983 ----
  20A9           ; H  # Sc         WON SIGN
  20AA..20AB     ; N  # Sc     [2] NEW SHEQEL SIGN..DONG SIGN
  20AC           ; A  # Sc         EURO SIGN
! 20AD..20C1     ; N  # Sc    [21] KIP SIGN..SAUDI RIYAL SIGN
  20D0..20DC     ; N  # Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
  20DD..20E0     ; N  # Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
  20E1           ; N  # Mn         COMBINING LEFT RIGHT ARROW ABOVE
***************
*** 1351,1358 ****
  2B55           ; W  # So         HEAVY LARGE CIRCLE
  2B56..2B59     ; A  # So     [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
  2B5A..2B73     ; N  # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2B95     ; N  # So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
! 2B97..2BFF     ; N  # So   [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
  2C00..2C5F     ; N  # L&    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
  2C60..2C7B     ; N  # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
  2C7C..2C7D     ; N  # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
--- 1352,1358 ----
  2B55           ; W  # So         HEAVY LARGE CIRCLE
  2B56..2B59     ; A  # So     [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
  2B5A..2B73     ; N  # So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
! 2B76..2BFF     ; N  # So   [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL
  2C00..2C5F     ; N  # L&    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
  2C60..2C7B     ; N  # L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
  2C7C..2C7D     ; N  # Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
*************** A788           ; N  # Lm         MODIFIE
*** 1548,1558 ****
  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
  A7F8..A7F9     ; N  # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
--- 1548,1555 ----
  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..A7DC     ; N  # L&    [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE
! A7F1..A7F4     ; N  # Lm     [4] MODIFIER LETTER CAPITAL S..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
  A7F8..A7F9     ; N  # Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
*************** FB43..FB44     ; N  # Lo     [2] HEBREW
*** 1709,1721 ****
  FB46..FB4F     ; N  # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
  FB50..FBB1     ; N  # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
  FBB2..FBC2     ; N  # Sk    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
  FBD3..FD3D     ; N  # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
  FD3E           ; N  # Pe         ORNATE LEFT PARENTHESIS
  FD3F           ; N  # Ps         ORNATE RIGHT PARENTHESIS
  FD40..FD4F     ; N  # So    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
  FD50..FD8F     ; N  # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
  FD92..FDC7     ; N  # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDCF           ; N  # So         ARABIC LIGATURE SALAAMUHU ALAYNAA
  FDF0..FDFB     ; N  # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
  FDFC           ; N  # Sc         RIAL SIGN
  FDFD..FDFF     ; N  # So     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
--- 1706,1720 ----
  FB46..FB4F     ; N  # Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
  FB50..FBB1     ; N  # Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
  FBB2..FBC2     ; N  # Sk    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
+ FBC3..FBD2     ; N  # So    [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH
  FBD3..FD3D     ; N  # Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
  FD3E           ; N  # Pe         ORNATE LEFT PARENTHESIS
  FD3F           ; N  # Ps         ORNATE RIGHT PARENTHESIS
  FD40..FD4F     ; N  # So    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
  FD50..FD8F     ; N  # Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+ FD90..FD91     ; N  # So     [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA
  FD92..FDC7     ; N  # Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
! FDC8..FDCF     ; N  # So     [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA
  FDF0..FDFB     ; N  # Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
  FDFC           ; N  # Sc         RIAL SIGN
  FDFD..FDFF     ; N  # So     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
*************** FFFD           ; A  # So         REPLACE
*** 1904,1909 ****
--- 1903,1909 ----
  1091F          ; N  # Po         PHOENICIAN WORD SEPARATOR
  10920..10939   ; N  # Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C
  1093F          ; N  # Po         LYDIAN TRIANGULAR MARK
+ 10940..10959   ; N  # Lo    [26] SIDETIC LETTER N01..SIDETIC LETTER N26
  10980..1099F   ; N  # Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
  109A0..109B7   ; N  # Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
  109BC..109BD   ; N  # No     [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
*************** FFFD           ; A  # So         REPLACE
*** 1964,1970 ****
  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
--- 1964,1974 ----
  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
! 10EC5          ; N  # Lm         ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW
! 10EC6..10EC7   ; N  # Lo     [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW
! 10ED0          ; N  # Po         ARABIC BIBLICAL END OF VERSE
! 10ED1..10ED8   ; N  # So     [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH
! 10EFA..10EFF   ; N  # Mn     [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 2235,2240 ****
--- 2239,2250 ----
  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
+ 11B60          ; N  # Mn         SHARADA VOWEL SIGN OE
+ 11B61          ; N  # Mc         SHARADA VOWEL SIGN OOE
+ 11B62..11B64   ; N  # Mn     [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B65          ; N  # Mc         SHARADA VOWEL SIGN SHORT O
+ 11B66          ; N  # Mn         SHARADA VOWEL SIGN CANDRA E
+ 11B67          ; N  # Mc         SHARADA VOWEL SIGN CANDRA O
  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
*************** FFFD           ; A  # So         REPLACE
*** 2279,2284 ****
--- 2289,2298 ----
  11D97          ; N  # Mn         GUNJALA GONDI VIRAMA
  11D98          ; N  # Lo         GUNJALA GONDI OM
  11DA0..11DA9   ; N  # Nd    [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+ 11DB0..11DD8   ; N  # Lo    [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH
+ 11DD9          ; N  # Lm         TOLONG SIKI SIGN SELA
+ 11DDA..11DDB   ; N  # Lo     [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA
+ 11DE0..11DE9   ; N  # Nd    [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE
  11EE0..11EF2   ; N  # Lo    [19] MAKASAR LETTER KA..MAKASAR ANGKA
  11EF3..11EF4   ; N  # Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
  11EF5..11EF6   ; N  # Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
*************** FFFD           ; A  # So         REPLACE
*** 2349,2354 ****
--- 2363,2370 ----
  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
+ 16EA0..16EB8   ; N  # Lu    [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY
+ 16EBB..16ED3   ; N  # Ll    [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY
  16F00..16F4A   ; N  # Lo    [75] MIAO LETTER PA..MIAO LETTER RTE
  16F4F          ; N  # Mn         MIAO SIGN CONSONANT MODIFIER BAR
  16F50          ; N  # Lo         MIAO LETTER NASALIZATION
*************** FFFD           ; A  # So         REPLACE
*** 2360,2370 ****
  16FE3          ; W  # Lm         OLD CHINESE ITERATION MARK
  16FE4          ; W  # Mn         KHITAN SMALL SCRIPT FILLER
  16FF0..16FF1   ; W  # Mc     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 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
  1AFFD..1AFFE   ; W  # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
--- 2376,2389 ----
  16FE3          ; W  # Lm         OLD CHINESE ITERATION MARK
  16FE4          ; W  # Mn         KHITAN SMALL SCRIPT FILLER
  16FF0..16FF1   ; W  # Mc     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
! 16FF2..16FF3   ; W  # Lm     [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6   ; W  # Nl     [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..187FF   ; W  # Lo  [6144] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187FF
  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..18D1E   ; W  # Lo    [31] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2   ; W  # Lo   [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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
  1AFFD..1AFFE   ; W  # Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
*************** FFFD           ; A  # So         REPLACE
*** 2385,2391 ****
--- 2404,2415 ----
  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
+ 1CCFA..1CCFC   ; N  # So     [3] SNAKE SYMBOL..NOSE SYMBOL
  1CD00..1CEB3   ; N  # So   [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET
+ 1CEBA..1CEBF   ; N  # So     [6] FRAGILE SYMBOL..STRAWBERRY SYMBOL
+ 1CEC0..1CED0   ; N  # So    [17] HEBE..LEUKOTHEA
+ 1CEE0..1CEEF   ; N  # So    [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA
+ 1CEF0          ; N  # Sm         MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR
  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
*** 2496,2501 ****
--- 2520,2536 ----
  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
+ 1E6C0..1E6DE   ; N  # Lo    [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO
+ 1E6E0..1E6E2   ; N  # Lo     [3] TAI YO LETTER AA..TAI YO LETTER UE
+ 1E6E3          ; N  # Mn         TAI YO SIGN UE
+ 1E6E4..1E6E5   ; N  # Lo     [2] TAI YO LETTER U..TAI YO LETTER AE
+ 1E6E6          ; N  # Mn         TAI YO SIGN AU
+ 1E6E7..1E6ED   ; N  # Lo     [7] TAI YO LETTER O..TAI YO LETTER AUE
+ 1E6EE..1E6EF   ; N  # Mn     [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F0..1E6F4   ; N  # Lo     [5] TAI YO LETTER AN..TAI YO LETTER AP
+ 1E6F5          ; N  # Mn         TAI YO SIGN OM
+ 1E6FE          ; N  # Lo         TAI YO SYMBOL MUEANG
+ 1E6FF          ; N  # Lm         TAI YO XAM LAI
  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
*** 2623,2636 ****
  1F6CD..1F6CF   ; N  # So     [3] SHOPPING BAGS..BED
  1F6D0..1F6D2   ; W  # So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY
  1F6D3..1F6D4   ; N  # So     [2] STUPA..PAGODA
! 1F6D5..1F6D7   ; W  # So     [3] HINDU TEMPLE..ELEVATOR
  1F6DC..1F6DF   ; W  # So     [4] WIRELESS..RING BUOY
  1F6E0..1F6EA   ; N  # So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
  1F6EB..1F6EC   ; W  # So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
  1F6F0..1F6F3   ; N  # So     [4] SATELLITE..PASSENGER SHIP
  1F6F4..1F6FC   ; W  # So     [9] SCOOTER..ROLLER SKATE
! 1F700..1F776   ; N  # So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
! 1F77B..1F77F   ; N  # So     [5] HAUMEA..ORCUS
  1F780..1F7D9   ; N  # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
  1F7E0..1F7EB   ; W  # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
  1F7F0          ; W  # So         HEAVY EQUALS SIGN
--- 2658,2670 ----
  1F6CD..1F6CF   ; N  # So     [3] SHOPPING BAGS..BED
  1F6D0..1F6D2   ; W  # So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY
  1F6D3..1F6D4   ; N  # So     [2] STUPA..PAGODA
! 1F6D5..1F6D8   ; W  # So     [4] HINDU TEMPLE..LANDSLIDE
  1F6DC..1F6DF   ; W  # So     [4] WIRELESS..RING BUOY
  1F6E0..1F6EA   ; N  # So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
  1F6EB..1F6EC   ; W  # So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
  1F6F0..1F6F3   ; N  # So     [4] SATELLITE..PASSENGER SHIP
  1F6F4..1F6FC   ; W  # So     [9] SCOOTER..ROLLER SKATE
! 1F700..1F77F   ; N  # So   [128] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ORCUS
  1F780..1F7D9   ; N  # So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
  1F7E0..1F7EB   ; W  # So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
  1F7F0          ; W  # So         HEAVY EQUALS SIGN
*************** FFFD           ; A  # So         REPLACE
*** 2641,2671 ****
  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
  1F93C..1F945   ; W  # So    [10] WRESTLERS..GOAL NET
  1F946          ; N  # So         RIFLE
  1F947..1F9FF   ; W  # So   [185] FIRST PLACE MEDAL..NAZAR AMULET
! 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>
! 2A700..2B739   ; W  # Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B73A..2B73F   ; W  # Cn     [6] <reserved-2B73A>..<reserved-2B73F>
! 2B740..2B81D   ; W  # Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
  2B81E..2B81F   ; W  # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
! 2B820..2CEA1   ; W  # Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
! 2CEA2..2CEAF   ; W  # Cn    [14] <reserved-2CEA2>..<reserved-2CEAF>
  2CEB0..2EBE0   ; W  # Lo  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBE1..2EBEF   ; W  # Cn    [15] <reserved-2EBE1>..<reserved-2EBEF>
  2EBF0..2EE5D   ; W  # Lo   [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
--- 2675,2706 ----
  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
+ 1F8D0..1F8D8   ; N  # Sm     [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE
  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
  1F93C..1F945   ; W  # So    [10] WRESTLERS..GOAL NET
  1F946          ; N  # So         RIFLE
  1F947..1F9FF   ; W  # So   [185] FIRST PLACE MEDAL..NAZAR AMULET
! 1FA00..1FA57   ; N  # So    [88] NEUTRAL CHESS KING..BLACK CHESS ALFIL
  1FA60..1FA6D   ; N  # So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
  1FA70..1FA7C   ; W  # So    [13] BALLET SHOES..CRUTCH
! 1FA80..1FA8A   ; W  # So    [11] YO-YO..TROMBONE
! 1FA8E..1FAC6   ; W  # So    [57] TREASURE CHEST..FINGERPRINT
! 1FAC8          ; W  # So         HAIRY CREATURE
! 1FACD..1FADC   ; W  # So    [16] ORCA..ROOT VEGETABLE
! 1FADF..1FAEA   ; W  # So    [12] SPLATTER..DISTORTED FACE
! 1FAEF..1FAF8   ; W  # So    [10] FIGHT CLOUD..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
+ 1FBFA          ; N  # So         ALARM BELL SYMBOL
  20000..2A6DF   ; W  # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
  2A6E0..2A6FF   ; W  # Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>
! 2A700..2B81D   ; W  # Lo  [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
  2B81E..2B81F   ; W  # Cn     [2] <reserved-2B81E>..<reserved-2B81F>
! 2B820..2CEAD   ; W  # Lo  [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
! 2CEAE..2CEAF   ; W  # Cn     [2] <reserved-2CEAE>..<reserved-2CEAF>
  2CEB0..2EBE0   ; W  # Lo  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBE1..2EBEF   ; W  # Cn    [15] <reserved-2EBE1>..<reserved-2EBEF>
  2EBF0..2EE5D   ; W  # Lo   [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
*************** FFFD           ; A  # So         REPLACE
*** 2675,2682 ****
  2FA20..2FFFD   ; W  # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
  30000..3134A   ; W  # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  3134B..3134F   ; W  # Cn     [5] <reserved-3134B>..<reserved-3134F>
! 31350..323AF   ; W  # Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
! 323B0..3FFFD   ; W  # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
  E0001          ; N  # Cf         LANGUAGE TAG
  E0020..E007F   ; N  # Cf    [96] TAG SPACE..CANCEL TAG
  E0100..E01EF   ; A  # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
--- 2710,2717 ----
  2FA20..2FFFD   ; W  # Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>
  30000..3134A   ; W  # Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
  3134B..3134F   ; W  # Cn     [5] <reserved-3134B>..<reserved-3134F>
! 31350..33479   ; W  # Lo  [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
! 3347A..3FFFD   ; W  # Cn [52100] <reserved-3347A>..<reserved-3FFFD>
  E0001          ; N  # Cf         LANGUAGE TAG
  E0020..E007F   ; N  # Cf    [96] TAG SPACE..CANCEL TAG
  E0100..E01EF   ; A  # Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
diff -Nrcpad gcc-15.2.0/contrib/unicode/GraphemeBreakProperty.txt gcc-16.1.0-RC-20260423/contrib/unicode/GraphemeBreakProperty.txt
*** gcc-15.2.0/contrib/unicode/GraphemeBreakProperty.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/GraphemeBreakProperty.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # GraphemeBreakProperty-17.0.0.txt
! # Date: 2025-06-30, 06:20:23 GMT
! # © 2025 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
  #
***************
*** 30,41 ****
  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
  11A84..11A89  ; Prepend # Lo   [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
  11D46         ; Prepend # Lo       MASARAM GONDI REPHA
  11F02         ; Prepend # Lo       KAWI SIGN REPHA
  
! # Total code points: 28
  
  # ================================================
  
--- 30,40 ----
  113D1         ; Prepend # Lo       TULU-TIGALARI REPHA
  1193F         ; Prepend # Lo       DIVES AKURU PREFIXED NASAL SIGN
  11941         ; Prepend # Lo       DIVES AKURU INITIAL RA
  11A84..11A89  ; Prepend # Lo   [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
  11D46         ; Prepend # Lo       MASARAM GONDI REPHA
  11F02         ; Prepend # Lo       KAWI SIGN REPHA
  
! # Total code points: 27
  
  # ================================================
  
*************** E01F0..E0FFF  ; Control # Cn [3600] <res
*** 243,249 ****
  1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ACE    ; Extend # Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
  1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Extend # Mc       BALINESE VOWEL SIGN TEDUNG
--- 242,249 ----
  1A7F          ; Extend # Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT
  1AB0..1ABD    ; Extend # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Extend # Me       COMBINING PARENTHESES OVERLAY
! 1ABF..1ADD    ; Extend # Mn  [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW
! 1AE0..1AEB    ; Extend # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B00..1B03    ; Extend # Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  1B34          ; Extend # Mn       BALINESE SIGN REREKAN
  1B35          ; Extend # Mc       BALINESE VOWEL SIGN TEDUNG
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 339,345 ****
  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
--- 339,345 ----
  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
! 10EFA..10EFF  ; Extend # Mn   [6] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 430,435 ****
--- 430,438 ----
  11A59..11A5B  ; Extend # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
  11A8A..11A96  ; Extend # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
  11A98..11A99  ; Extend # Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+ 11B60         ; Extend # Mn       SHARADA VOWEL SIGN OE
+ 11B62..11B64  ; Extend # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B66         ; Extend # Mn       SHARADA VOWEL SIGN CANDRA E
  11C30..11C36  ; Extend # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
  11C38..11C3D  ; Extend # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
  11C3F         ; Extend # Mn       BHAIKSUKI SIGN VIRAMA
*************** FF9E..FF9F    ; Extend # Lm   [2] HALFWI
*** 489,501 ****
  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
  
  # ================================================
  
--- 492,508 ----
  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
+ 1E6E3         ; Extend # Mn       TAI YO SIGN UE
+ 1E6E6         ; Extend # Mn       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; Extend # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; Extend # Mn       TAI YO SIGN OM
  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: 2237
  
  # ================================================
  
*************** ABEC          ; SpacingMark # Mc       M
*** 646,651 ****
--- 653,661 ----
  11A39         ; SpacingMark # Mc       ZANABAZAR SQUARE SIGN VISARGA
  11A57..11A58  ; SpacingMark # Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
  11A97         ; SpacingMark # Mc       SOYOMBO SIGN VISARGA
+ 11B61         ; SpacingMark # Mc       SHARADA VOWEL SIGN OOE
+ 11B65         ; SpacingMark # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B67         ; SpacingMark # Mc       SHARADA VOWEL SIGN CANDRA O
  11C2F         ; SpacingMark # Mc       BHAIKSUKI VOWEL SIGN AA
  11C3E         ; SpacingMark # Mc       BHAIKSUKI SIGN VISARGA
  11CA9         ; SpacingMark # Mc       MARCHEN SUBJOINED LETTER YA
*************** ABEC          ; SpacingMark # Mc       M
*** 661,667 ****
  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
  
  # ================================================
  
--- 671,677 ----
  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: 381
  
  # ================================================
  
diff -Nrcpad gcc-15.2.0/contrib/unicode/HangulSyllableType.txt gcc-16.1.0-RC-20260423/contrib/unicode/HangulSyllableType.txt
*** gcc-15.2.0/contrib/unicode/HangulSyllableType.txt	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/contrib/unicode/HangulSyllableType.txt	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,858 ----
+ # HangulSyllableType-17.0.0.txt
+ # Date: 2025-01-27, 18:09:16 GMT
+ # © 2025 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:	Hangul_Syllable_Type
+ 
+ #  All code points not explicitly listed for Hangul_Syllable_Type
+ #  have the value Not_Applicable (NA).
+ 
+ # @missing: 0000..10FFFF; Not_Applicable
+ 
+ # ================================================
+ 
+ # Hangul_Syllable_Type=Leading_Jamo
+ 
+ 1100..115F    ; L # Lo  [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+ A960..A97C    ; L # Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+ 
+ # Total code points: 125
+ 
+ # ================================================
+ 
+ # Hangul_Syllable_Type=Vowel_Jamo
+ 
+ 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
+ 
+ # ================================================
+ 
+ # Hangul_Syllable_Type=Trailing_Jamo
+ 
+ 11A8..11FF    ; T # Lo  [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+ D7CB..D7FB    ; T # Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+ 
+ # Total code points: 137
+ 
+ # ================================================
+ 
+ # Hangul_Syllable_Type=LV_Syllable
+ 
+ AC00          ; LV # Lo       HANGUL SYLLABLE GA
+ AC1C          ; LV # Lo       HANGUL SYLLABLE GAE
+ AC38          ; LV # Lo       HANGUL SYLLABLE GYA
+ AC54          ; LV # Lo       HANGUL SYLLABLE GYAE
+ AC70          ; LV # Lo       HANGUL SYLLABLE GEO
+ AC8C          ; LV # Lo       HANGUL SYLLABLE GE
+ ACA8          ; LV # Lo       HANGUL SYLLABLE GYEO
+ ACC4          ; LV # Lo       HANGUL SYLLABLE GYE
+ ACE0          ; LV # Lo       HANGUL SYLLABLE GO
+ ACFC          ; LV # Lo       HANGUL SYLLABLE GWA
+ AD18          ; LV # Lo       HANGUL SYLLABLE GWAE
+ AD34          ; LV # Lo       HANGUL SYLLABLE GOE
+ AD50          ; LV # Lo       HANGUL SYLLABLE GYO
+ AD6C          ; LV # Lo       HANGUL SYLLABLE GU
+ AD88          ; LV # Lo       HANGUL SYLLABLE GWEO
+ ADA4          ; LV # Lo       HANGUL SYLLABLE GWE
+ ADC0          ; LV # Lo       HANGUL SYLLABLE GWI
+ ADDC          ; LV # Lo       HANGUL SYLLABLE GYU
+ ADF8          ; LV # Lo       HANGUL SYLLABLE GEU
+ AE14          ; LV # Lo       HANGUL SYLLABLE GYI
+ AE30          ; LV # Lo       HANGUL SYLLABLE GI
+ AE4C          ; LV # Lo       HANGUL SYLLABLE GGA
+ AE68          ; LV # Lo       HANGUL SYLLABLE GGAE
+ AE84          ; LV # Lo       HANGUL SYLLABLE GGYA
+ AEA0          ; LV # Lo       HANGUL SYLLABLE GGYAE
+ AEBC          ; LV # Lo       HANGUL SYLLABLE GGEO
+ AED8          ; LV # Lo       HANGUL SYLLABLE GGE
+ AEF4          ; LV # Lo       HANGUL SYLLABLE GGYEO
+ AF10          ; LV # Lo       HANGUL SYLLABLE GGYE
+ AF2C          ; LV # Lo       HANGUL SYLLABLE GGO
+ AF48          ; LV # Lo       HANGUL SYLLABLE GGWA
+ AF64          ; LV # Lo       HANGUL SYLLABLE GGWAE
+ AF80          ; LV # Lo       HANGUL SYLLABLE GGOE
+ AF9C          ; LV # Lo       HANGUL SYLLABLE GGYO
+ AFB8          ; LV # Lo       HANGUL SYLLABLE GGU
+ AFD4          ; LV # Lo       HANGUL SYLLABLE GGWEO
+ AFF0          ; LV # Lo       HANGUL SYLLABLE GGWE
+ B00C          ; LV # Lo       HANGUL SYLLABLE GGWI
+ B028          ; LV # Lo       HANGUL SYLLABLE GGYU
+ B044          ; LV # Lo       HANGUL SYLLABLE GGEU
+ B060          ; LV # Lo       HANGUL SYLLABLE GGYI
+ B07C          ; LV # Lo       HANGUL SYLLABLE GGI
+ B098          ; LV # Lo       HANGUL SYLLABLE NA
+ B0B4          ; LV # Lo       HANGUL SYLLABLE NAE
+ B0D0          ; LV # Lo       HANGUL SYLLABLE NYA
+ B0EC          ; LV # Lo       HANGUL SYLLABLE NYAE
+ B108          ; LV # Lo       HANGUL SYLLABLE NEO
+ B124          ; LV # Lo       HANGUL SYLLABLE NE
+ B140          ; LV # Lo       HANGUL SYLLABLE NYEO
+ B15C          ; LV # Lo       HANGUL SYLLABLE NYE
+ B178          ; LV # Lo       HANGUL SYLLABLE NO
+ B194          ; LV # Lo       HANGUL SYLLABLE NWA
+ B1B0          ; LV # Lo       HANGUL SYLLABLE NWAE
+ B1CC          ; LV # Lo       HANGUL SYLLABLE NOE
+ B1E8          ; LV # Lo       HANGUL SYLLABLE NYO
+ B204          ; LV # Lo       HANGUL SYLLABLE NU
+ B220          ; LV # Lo       HANGUL SYLLABLE NWEO
+ B23C          ; LV # Lo       HANGUL SYLLABLE NWE
+ B258          ; LV # Lo       HANGUL SYLLABLE NWI
+ B274          ; LV # Lo       HANGUL SYLLABLE NYU
+ B290          ; LV # Lo       HANGUL SYLLABLE NEU
+ B2AC          ; LV # Lo       HANGUL SYLLABLE NYI
+ B2C8          ; LV # Lo       HANGUL SYLLABLE NI
+ B2E4          ; LV # Lo       HANGUL SYLLABLE DA
+ B300          ; LV # Lo       HANGUL SYLLABLE DAE
+ B31C          ; LV # Lo       HANGUL SYLLABLE DYA
+ B338          ; LV # Lo       HANGUL SYLLABLE DYAE
+ B354          ; LV # Lo       HANGUL SYLLABLE DEO
+ B370          ; LV # Lo       HANGUL SYLLABLE DE
+ B38C          ; LV # Lo       HANGUL SYLLABLE DYEO
+ B3A8          ; LV # Lo       HANGUL SYLLABLE DYE
+ B3C4          ; LV # Lo       HANGUL SYLLABLE DO
+ B3E0          ; LV # Lo       HANGUL SYLLABLE DWA
+ B3FC          ; LV # Lo       HANGUL SYLLABLE DWAE
+ B418          ; LV # Lo       HANGUL SYLLABLE DOE
+ B434          ; LV # Lo       HANGUL SYLLABLE DYO
+ B450          ; LV # Lo       HANGUL SYLLABLE DU
+ B46C          ; LV # Lo       HANGUL SYLLABLE DWEO
+ B488          ; LV # Lo       HANGUL SYLLABLE DWE
+ B4A4          ; LV # Lo       HANGUL SYLLABLE DWI
+ B4C0          ; LV # Lo       HANGUL SYLLABLE DYU
+ B4DC          ; LV # Lo       HANGUL SYLLABLE DEU
+ B4F8          ; LV # Lo       HANGUL SYLLABLE DYI
+ B514          ; LV # Lo       HANGUL SYLLABLE DI
+ B530          ; LV # Lo       HANGUL SYLLABLE DDA
+ B54C          ; LV # Lo       HANGUL SYLLABLE DDAE
+ B568          ; LV # Lo       HANGUL SYLLABLE DDYA
+ B584          ; LV # Lo       HANGUL SYLLABLE DDYAE
+ B5A0          ; LV # Lo       HANGUL SYLLABLE DDEO
+ B5BC          ; LV # Lo       HANGUL SYLLABLE DDE
+ B5D8          ; LV # Lo       HANGUL SYLLABLE DDYEO
+ B5F4          ; LV # Lo       HANGUL SYLLABLE DDYE
+ B610          ; LV # Lo       HANGUL SYLLABLE DDO
+ B62C          ; LV # Lo       HANGUL SYLLABLE DDWA
+ B648          ; LV # Lo       HANGUL SYLLABLE DDWAE
+ B664          ; LV # Lo       HANGUL SYLLABLE DDOE
+ B680          ; LV # Lo       HANGUL SYLLABLE DDYO
+ B69C          ; LV # Lo       HANGUL SYLLABLE DDU
+ B6B8          ; LV # Lo       HANGUL SYLLABLE DDWEO
+ B6D4          ; LV # Lo       HANGUL SYLLABLE DDWE
+ B6F0          ; LV # Lo       HANGUL SYLLABLE DDWI
+ B70C          ; LV # Lo       HANGUL SYLLABLE DDYU
+ B728          ; LV # Lo       HANGUL SYLLABLE DDEU
+ B744          ; LV # Lo       HANGUL SYLLABLE DDYI
+ B760          ; LV # Lo       HANGUL SYLLABLE DDI
+ B77C          ; LV # Lo       HANGUL SYLLABLE RA
+ B798          ; LV # Lo       HANGUL SYLLABLE RAE
+ B7B4          ; LV # Lo       HANGUL SYLLABLE RYA
+ B7D0          ; LV # Lo       HANGUL SYLLABLE RYAE
+ B7EC          ; LV # Lo       HANGUL SYLLABLE REO
+ B808          ; LV # Lo       HANGUL SYLLABLE RE
+ B824          ; LV # Lo       HANGUL SYLLABLE RYEO
+ B840          ; LV # Lo       HANGUL SYLLABLE RYE
+ B85C          ; LV # Lo       HANGUL SYLLABLE RO
+ B878          ; LV # Lo       HANGUL SYLLABLE RWA
+ B894          ; LV # Lo       HANGUL SYLLABLE RWAE
+ B8B0          ; LV # Lo       HANGUL SYLLABLE ROE
+ B8CC          ; LV # Lo       HANGUL SYLLABLE RYO
+ B8E8          ; LV # Lo       HANGUL SYLLABLE RU
+ B904          ; LV # Lo       HANGUL SYLLABLE RWEO
+ B920          ; LV # Lo       HANGUL SYLLABLE RWE
+ B93C          ; LV # Lo       HANGUL SYLLABLE RWI
+ B958          ; LV # Lo       HANGUL SYLLABLE RYU
+ B974          ; LV # Lo       HANGUL SYLLABLE REU
+ B990          ; LV # Lo       HANGUL SYLLABLE RYI
+ B9AC          ; LV # Lo       HANGUL SYLLABLE RI
+ B9C8          ; LV # Lo       HANGUL SYLLABLE MA
+ B9E4          ; LV # Lo       HANGUL SYLLABLE MAE
+ BA00          ; LV # Lo       HANGUL SYLLABLE MYA
+ BA1C          ; LV # Lo       HANGUL SYLLABLE MYAE
+ BA38          ; LV # Lo       HANGUL SYLLABLE MEO
+ BA54          ; LV # Lo       HANGUL SYLLABLE ME
+ BA70          ; LV # Lo       HANGUL SYLLABLE MYEO
+ BA8C          ; LV # Lo       HANGUL SYLLABLE MYE
+ BAA8          ; LV # Lo       HANGUL SYLLABLE MO
+ BAC4          ; LV # Lo       HANGUL SYLLABLE MWA
+ BAE0          ; LV # Lo       HANGUL SYLLABLE MWAE
+ BAFC          ; LV # Lo       HANGUL SYLLABLE MOE
+ BB18          ; LV # Lo       HANGUL SYLLABLE MYO
+ BB34          ; LV # Lo       HANGUL SYLLABLE MU
+ BB50          ; LV # Lo       HANGUL SYLLABLE MWEO
+ BB6C          ; LV # Lo       HANGUL SYLLABLE MWE
+ BB88          ; LV # Lo       HANGUL SYLLABLE MWI
+ BBA4          ; LV # Lo       HANGUL SYLLABLE MYU
+ BBC0          ; LV # Lo       HANGUL SYLLABLE MEU
+ BBDC          ; LV # Lo       HANGUL SYLLABLE MYI
+ BBF8          ; LV # Lo       HANGUL SYLLABLE MI
+ BC14          ; LV # Lo       HANGUL SYLLABLE BA
+ BC30          ; LV # Lo       HANGUL SYLLABLE BAE
+ BC4C          ; LV # Lo       HANGUL SYLLABLE BYA
+ BC68          ; LV # Lo       HANGUL SYLLABLE BYAE
+ BC84          ; LV # Lo       HANGUL SYLLABLE BEO
+ BCA0          ; LV # Lo       HANGUL SYLLABLE BE
+ BCBC          ; LV # Lo       HANGUL SYLLABLE BYEO
+ BCD8          ; LV # Lo       HANGUL SYLLABLE BYE
+ BCF4          ; LV # Lo       HANGUL SYLLABLE BO
+ BD10          ; LV # Lo       HANGUL SYLLABLE BWA
+ BD2C          ; LV # Lo       HANGUL SYLLABLE BWAE
+ BD48          ; LV # Lo       HANGUL SYLLABLE BOE
+ BD64          ; LV # Lo       HANGUL SYLLABLE BYO
+ BD80          ; LV # Lo       HANGUL SYLLABLE BU
+ BD9C          ; LV # Lo       HANGUL SYLLABLE BWEO
+ BDB8          ; LV # Lo       HANGUL SYLLABLE BWE
+ BDD4          ; LV # Lo       HANGUL SYLLABLE BWI
+ BDF0          ; LV # Lo       HANGUL SYLLABLE BYU
+ BE0C          ; LV # Lo       HANGUL SYLLABLE BEU
+ BE28          ; LV # Lo       HANGUL SYLLABLE BYI
+ BE44          ; LV # Lo       HANGUL SYLLABLE BI
+ BE60          ; LV # Lo       HANGUL SYLLABLE BBA
+ BE7C          ; LV # Lo       HANGUL SYLLABLE BBAE
+ BE98          ; LV # Lo       HANGUL SYLLABLE BBYA
+ BEB4          ; LV # Lo       HANGUL SYLLABLE BBYAE
+ BED0          ; LV # Lo       HANGUL SYLLABLE BBEO
+ BEEC          ; LV # Lo       HANGUL SYLLABLE BBE
+ BF08          ; LV # Lo       HANGUL SYLLABLE BBYEO
+ BF24          ; LV # Lo       HANGUL SYLLABLE BBYE
+ BF40          ; LV # Lo       HANGUL SYLLABLE BBO
+ BF5C          ; LV # Lo       HANGUL SYLLABLE BBWA
+ BF78          ; LV # Lo       HANGUL SYLLABLE BBWAE
+ BF94          ; LV # Lo       HANGUL SYLLABLE BBOE
+ BFB0          ; LV # Lo       HANGUL SYLLABLE BBYO
+ BFCC          ; LV # Lo       HANGUL SYLLABLE BBU
+ BFE8          ; LV # Lo       HANGUL SYLLABLE BBWEO
+ C004          ; LV # Lo       HANGUL SYLLABLE BBWE
+ C020          ; LV # Lo       HANGUL SYLLABLE BBWI
+ C03C          ; LV # Lo       HANGUL SYLLABLE BBYU
+ C058          ; LV # Lo       HANGUL SYLLABLE BBEU
+ C074          ; LV # Lo       HANGUL SYLLABLE BBYI
+ C090          ; LV # Lo       HANGUL SYLLABLE BBI
+ C0AC          ; LV # Lo       HANGUL SYLLABLE SA
+ C0C8          ; LV # Lo       HANGUL SYLLABLE SAE
+ C0E4          ; LV # Lo       HANGUL SYLLABLE SYA
+ C100          ; LV # Lo       HANGUL SYLLABLE SYAE
+ C11C          ; LV # Lo       HANGUL SYLLABLE SEO
+ C138          ; LV # Lo       HANGUL SYLLABLE SE
+ C154          ; LV # Lo       HANGUL SYLLABLE SYEO
+ C170          ; LV # Lo       HANGUL SYLLABLE SYE
+ C18C          ; LV # Lo       HANGUL SYLLABLE SO
+ C1A8          ; LV # Lo       HANGUL SYLLABLE SWA
+ C1C4          ; LV # Lo       HANGUL SYLLABLE SWAE
+ C1E0          ; LV # Lo       HANGUL SYLLABLE SOE
+ C1FC          ; LV # Lo       HANGUL SYLLABLE SYO
+ C218          ; LV # Lo       HANGUL SYLLABLE SU
+ C234          ; LV # Lo       HANGUL SYLLABLE SWEO
+ C250          ; LV # Lo       HANGUL SYLLABLE SWE
+ C26C          ; LV # Lo       HANGUL SYLLABLE SWI
+ C288          ; LV # Lo       HANGUL SYLLABLE SYU
+ C2A4          ; LV # Lo       HANGUL SYLLABLE SEU
+ C2C0          ; LV # Lo       HANGUL SYLLABLE SYI
+ C2DC          ; LV # Lo       HANGUL SYLLABLE SI
+ C2F8          ; LV # Lo       HANGUL SYLLABLE SSA
+ C314          ; LV # Lo       HANGUL SYLLABLE SSAE
+ C330          ; LV # Lo       HANGUL SYLLABLE SSYA
+ C34C          ; LV # Lo       HANGUL SYLLABLE SSYAE
+ C368          ; LV # Lo       HANGUL SYLLABLE SSEO
+ C384          ; LV # Lo       HANGUL SYLLABLE SSE
+ C3A0          ; LV # Lo       HANGUL SYLLABLE SSYEO
+ C3BC          ; LV # Lo       HANGUL SYLLABLE SSYE
+ C3D8          ; LV # Lo       HANGUL SYLLABLE SSO
+ C3F4          ; LV # Lo       HANGUL SYLLABLE SSWA
+ C410          ; LV # Lo       HANGUL SYLLABLE SSWAE
+ C42C          ; LV # Lo       HANGUL SYLLABLE SSOE
+ C448          ; LV # Lo       HANGUL SYLLABLE SSYO
+ C464          ; LV # Lo       HANGUL SYLLABLE SSU
+ C480          ; LV # Lo       HANGUL SYLLABLE SSWEO
+ C49C          ; LV # Lo       HANGUL SYLLABLE SSWE
+ C4B8          ; LV # Lo       HANGUL SYLLABLE SSWI
+ C4D4          ; LV # Lo       HANGUL SYLLABLE SSYU
+ C4F0          ; LV # Lo       HANGUL SYLLABLE SSEU
+ C50C          ; LV # Lo       HANGUL SYLLABLE SSYI
+ C528          ; LV # Lo       HANGUL SYLLABLE SSI
+ C544          ; LV # Lo       HANGUL SYLLABLE A
+ C560          ; LV # Lo       HANGUL SYLLABLE AE
+ C57C          ; LV # Lo       HANGUL SYLLABLE YA
+ C598          ; LV # Lo       HANGUL SYLLABLE YAE
+ C5B4          ; LV # Lo       HANGUL SYLLABLE EO
+ C5D0          ; LV # Lo       HANGUL SYLLABLE E
+ C5EC          ; LV # Lo       HANGUL SYLLABLE YEO
+ C608          ; LV # Lo       HANGUL SYLLABLE YE
+ C624          ; LV # Lo       HANGUL SYLLABLE O
+ C640          ; LV # Lo       HANGUL SYLLABLE WA
+ C65C          ; LV # Lo       HANGUL SYLLABLE WAE
+ C678          ; LV # Lo       HANGUL SYLLABLE OE
+ C694          ; LV # Lo       HANGUL SYLLABLE YO
+ C6B0          ; LV # Lo       HANGUL SYLLABLE U
+ C6CC          ; LV # Lo       HANGUL SYLLABLE WEO
+ C6E8          ; LV # Lo       HANGUL SYLLABLE WE
+ C704          ; LV # Lo       HANGUL SYLLABLE WI
+ C720          ; LV # Lo       HANGUL SYLLABLE YU
+ C73C          ; LV # Lo       HANGUL SYLLABLE EU
+ C758          ; LV # Lo       HANGUL SYLLABLE YI
+ C774          ; LV # Lo       HANGUL SYLLABLE I
+ C790          ; LV # Lo       HANGUL SYLLABLE JA
+ C7AC          ; LV # Lo       HANGUL SYLLABLE JAE
+ C7C8          ; LV # Lo       HANGUL SYLLABLE JYA
+ C7E4          ; LV # Lo       HANGUL SYLLABLE JYAE
+ C800          ; LV # Lo       HANGUL SYLLABLE JEO
+ C81C          ; LV # Lo       HANGUL SYLLABLE JE
+ C838          ; LV # Lo       HANGUL SYLLABLE JYEO
+ C854          ; LV # Lo       HANGUL SYLLABLE JYE
+ C870          ; LV # Lo       HANGUL SYLLABLE JO
+ C88C          ; LV # Lo       HANGUL SYLLABLE JWA
+ C8A8          ; LV # Lo       HANGUL SYLLABLE JWAE
+ C8C4          ; LV # Lo       HANGUL SYLLABLE JOE
+ C8E0          ; LV # Lo       HANGUL SYLLABLE JYO
+ C8FC          ; LV # Lo       HANGUL SYLLABLE JU
+ C918          ; LV # Lo       HANGUL SYLLABLE JWEO
+ C934          ; LV # Lo       HANGUL SYLLABLE JWE
+ C950          ; LV # Lo       HANGUL SYLLABLE JWI
+ C96C          ; LV # Lo       HANGUL SYLLABLE JYU
+ C988          ; LV # Lo       HANGUL SYLLABLE JEU
+ C9A4          ; LV # Lo       HANGUL SYLLABLE JYI
+ C9C0          ; LV # Lo       HANGUL SYLLABLE JI
+ C9DC          ; LV # Lo       HANGUL SYLLABLE JJA
+ C9F8          ; LV # Lo       HANGUL SYLLABLE JJAE
+ CA14          ; LV # Lo       HANGUL SYLLABLE JJYA
+ CA30          ; LV # Lo       HANGUL SYLLABLE JJYAE
+ CA4C          ; LV # Lo       HANGUL SYLLABLE JJEO
+ CA68          ; LV # Lo       HANGUL SYLLABLE JJE
+ CA84          ; LV # Lo       HANGUL SYLLABLE JJYEO
+ CAA0          ; LV # Lo       HANGUL SYLLABLE JJYE
+ CABC          ; LV # Lo       HANGUL SYLLABLE JJO
+ CAD8          ; LV # Lo       HANGUL SYLLABLE JJWA
+ CAF4          ; LV # Lo       HANGUL SYLLABLE JJWAE
+ CB10          ; LV # Lo       HANGUL SYLLABLE JJOE
+ CB2C          ; LV # Lo       HANGUL SYLLABLE JJYO
+ CB48          ; LV # Lo       HANGUL SYLLABLE JJU
+ CB64          ; LV # Lo       HANGUL SYLLABLE JJWEO
+ CB80          ; LV # Lo       HANGUL SYLLABLE JJWE
+ CB9C          ; LV # Lo       HANGUL SYLLABLE JJWI
+ CBB8          ; LV # Lo       HANGUL SYLLABLE JJYU
+ CBD4          ; LV # Lo       HANGUL SYLLABLE JJEU
+ CBF0          ; LV # Lo       HANGUL SYLLABLE JJYI
+ CC0C          ; LV # Lo       HANGUL SYLLABLE JJI
+ CC28          ; LV # Lo       HANGUL SYLLABLE CA
+ CC44          ; LV # Lo       HANGUL SYLLABLE CAE
+ CC60          ; LV # Lo       HANGUL SYLLABLE CYA
+ CC7C          ; LV # Lo       HANGUL SYLLABLE CYAE
+ CC98          ; LV # Lo       HANGUL SYLLABLE CEO
+ CCB4          ; LV # Lo       HANGUL SYLLABLE CE
+ CCD0          ; LV # Lo       HANGUL SYLLABLE CYEO
+ CCEC          ; LV # Lo       HANGUL SYLLABLE CYE
+ CD08          ; LV # Lo       HANGUL SYLLABLE CO
+ CD24          ; LV # Lo       HANGUL SYLLABLE CWA
+ CD40          ; LV # Lo       HANGUL SYLLABLE CWAE
+ CD5C          ; LV # Lo       HANGUL SYLLABLE COE
+ CD78          ; LV # Lo       HANGUL SYLLABLE CYO
+ CD94          ; LV # Lo       HANGUL SYLLABLE CU
+ CDB0          ; LV # Lo       HANGUL SYLLABLE CWEO
+ CDCC          ; LV # Lo       HANGUL SYLLABLE CWE
+ CDE8          ; LV # Lo       HANGUL SYLLABLE CWI
+ CE04          ; LV # Lo       HANGUL SYLLABLE CYU
+ CE20          ; LV # Lo       HANGUL SYLLABLE CEU
+ CE3C          ; LV # Lo       HANGUL SYLLABLE CYI
+ CE58          ; LV # Lo       HANGUL SYLLABLE CI
+ CE74          ; LV # Lo       HANGUL SYLLABLE KA
+ CE90          ; LV # Lo       HANGUL SYLLABLE KAE
+ CEAC          ; LV # Lo       HANGUL SYLLABLE KYA
+ CEC8          ; LV # Lo       HANGUL SYLLABLE KYAE
+ CEE4          ; LV # Lo       HANGUL SYLLABLE KEO
+ CF00          ; LV # Lo       HANGUL SYLLABLE KE
+ CF1C          ; LV # Lo       HANGUL SYLLABLE KYEO
+ CF38          ; LV # Lo       HANGUL SYLLABLE KYE
+ CF54          ; LV # Lo       HANGUL SYLLABLE KO
+ CF70          ; LV # Lo       HANGUL SYLLABLE KWA
+ CF8C          ; LV # Lo       HANGUL SYLLABLE KWAE
+ CFA8          ; LV # Lo       HANGUL SYLLABLE KOE
+ CFC4          ; LV # Lo       HANGUL SYLLABLE KYO
+ CFE0          ; LV # Lo       HANGUL SYLLABLE KU
+ CFFC          ; LV # Lo       HANGUL SYLLABLE KWEO
+ D018          ; LV # Lo       HANGUL SYLLABLE KWE
+ D034          ; LV # Lo       HANGUL SYLLABLE KWI
+ D050          ; LV # Lo       HANGUL SYLLABLE KYU
+ D06C          ; LV # Lo       HANGUL SYLLABLE KEU
+ D088          ; LV # Lo       HANGUL SYLLABLE KYI
+ D0A4          ; LV # Lo       HANGUL SYLLABLE KI
+ D0C0          ; LV # Lo       HANGUL SYLLABLE TA
+ D0DC          ; LV # Lo       HANGUL SYLLABLE TAE
+ D0F8          ; LV # Lo       HANGUL SYLLABLE TYA
+ D114          ; LV # Lo       HANGUL SYLLABLE TYAE
+ D130          ; LV # Lo       HANGUL SYLLABLE TEO
+ D14C          ; LV # Lo       HANGUL SYLLABLE TE
+ D168          ; LV # Lo       HANGUL SYLLABLE TYEO
+ D184          ; LV # Lo       HANGUL SYLLABLE TYE
+ D1A0          ; LV # Lo       HANGUL SYLLABLE TO
+ D1BC          ; LV # Lo       HANGUL SYLLABLE TWA
+ D1D8          ; LV # Lo       HANGUL SYLLABLE TWAE
+ D1F4          ; LV # Lo       HANGUL SYLLABLE TOE
+ D210          ; LV # Lo       HANGUL SYLLABLE TYO
+ D22C          ; LV # Lo       HANGUL SYLLABLE TU
+ D248          ; LV # Lo       HANGUL SYLLABLE TWEO
+ D264          ; LV # Lo       HANGUL SYLLABLE TWE
+ D280          ; LV # Lo       HANGUL SYLLABLE TWI
+ D29C          ; LV # Lo       HANGUL SYLLABLE TYU
+ D2B8          ; LV # Lo       HANGUL SYLLABLE TEU
+ D2D4          ; LV # Lo       HANGUL SYLLABLE TYI
+ D2F0          ; LV # Lo       HANGUL SYLLABLE TI
+ D30C          ; LV # Lo       HANGUL SYLLABLE PA
+ D328          ; LV # Lo       HANGUL SYLLABLE PAE
+ D344          ; LV # Lo       HANGUL SYLLABLE PYA
+ D360          ; LV # Lo       HANGUL SYLLABLE PYAE
+ D37C          ; LV # Lo       HANGUL SYLLABLE PEO
+ D398          ; LV # Lo       HANGUL SYLLABLE PE
+ D3B4          ; LV # Lo       HANGUL SYLLABLE PYEO
+ D3D0          ; LV # Lo       HANGUL SYLLABLE PYE
+ D3EC          ; LV # Lo       HANGUL SYLLABLE PO
+ D408          ; LV # Lo       HANGUL SYLLABLE PWA
+ D424          ; LV # Lo       HANGUL SYLLABLE PWAE
+ D440          ; LV # Lo       HANGUL SYLLABLE POE
+ D45C          ; LV # Lo       HANGUL SYLLABLE PYO
+ D478          ; LV # Lo       HANGUL SYLLABLE PU
+ D494          ; LV # Lo       HANGUL SYLLABLE PWEO
+ D4B0          ; LV # Lo       HANGUL SYLLABLE PWE
+ D4CC          ; LV # Lo       HANGUL SYLLABLE PWI
+ D4E8          ; LV # Lo       HANGUL SYLLABLE PYU
+ D504          ; LV # Lo       HANGUL SYLLABLE PEU
+ D520          ; LV # Lo       HANGUL SYLLABLE PYI
+ D53C          ; LV # Lo       HANGUL SYLLABLE PI
+ D558          ; LV # Lo       HANGUL SYLLABLE HA
+ D574          ; LV # Lo       HANGUL SYLLABLE HAE
+ D590          ; LV # Lo       HANGUL SYLLABLE HYA
+ D5AC          ; LV # Lo       HANGUL SYLLABLE HYAE
+ D5C8          ; LV # Lo       HANGUL SYLLABLE HEO
+ D5E4          ; LV # Lo       HANGUL SYLLABLE HE
+ D600          ; LV # Lo       HANGUL SYLLABLE HYEO
+ D61C          ; LV # Lo       HANGUL SYLLABLE HYE
+ D638          ; LV # Lo       HANGUL SYLLABLE HO
+ D654          ; LV # Lo       HANGUL SYLLABLE HWA
+ D670          ; LV # Lo       HANGUL SYLLABLE HWAE
+ D68C          ; LV # Lo       HANGUL SYLLABLE HOE
+ D6A8          ; LV # Lo       HANGUL SYLLABLE HYO
+ D6C4          ; LV # Lo       HANGUL SYLLABLE HU
+ D6E0          ; LV # Lo       HANGUL SYLLABLE HWEO
+ D6FC          ; LV # Lo       HANGUL SYLLABLE HWE
+ D718          ; LV # Lo       HANGUL SYLLABLE HWI
+ D734          ; LV # Lo       HANGUL SYLLABLE HYU
+ D750          ; LV # Lo       HANGUL SYLLABLE HEU
+ D76C          ; LV # Lo       HANGUL SYLLABLE HYI
+ D788          ; LV # Lo       HANGUL SYLLABLE HI
+ 
+ # Total code points: 399
+ 
+ # ================================================
+ 
+ # Hangul_Syllable_Type=LVT_Syllable
+ 
+ AC01..AC1B    ; LVT # Lo  [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+ AC1D..AC37    ; LVT # Lo  [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+ AC39..AC53    ; LVT # Lo  [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+ AC55..AC6F    ; LVT # Lo  [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+ AC71..AC8B    ; LVT # Lo  [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+ AC8D..ACA7    ; LVT # Lo  [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ ACA9..ACC3    ; LVT # Lo  [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ ACC5..ACDF    ; LVT # Lo  [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ ACE1..ACFB    ; LVT # Lo  [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ ACFD..AD17    ; LVT # Lo  [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+ AD19..AD33    ; LVT # Lo  [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+ AD35..AD4F    ; LVT # Lo  [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+ AD51..AD6B    ; LVT # Lo  [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+ AD6D..AD87    ; LVT # Lo  [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+ AD89..ADA3    ; LVT # Lo  [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ ADA5..ADBF    ; LVT # Lo  [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ ADC1..ADDB    ; LVT # Lo  [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ ADDD..ADF7    ; LVT # Lo  [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ ADF9..AE13    ; LVT # Lo  [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+ AE15..AE2F    ; LVT # Lo  [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+ AE31..AE4B    ; LVT # Lo  [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+ AE4D..AE67    ; LVT # Lo  [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+ AE69..AE83    ; LVT # Lo  [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+ AE85..AE9F    ; LVT # Lo  [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+ AEA1..AEBB    ; LVT # Lo  [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+ AEBD..AED7    ; LVT # Lo  [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+ AED9..AEF3    ; LVT # Lo  [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+ AEF5..AF0F    ; LVT # Lo  [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+ AF11..AF2B    ; LVT # Lo  [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+ AF2D..AF47    ; LVT # Lo  [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+ AF49..AF63    ; LVT # Lo  [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+ AF65..AF7F    ; LVT # Lo  [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+ AF81..AF9B    ; LVT # Lo  [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+ AF9D..AFB7    ; LVT # Lo  [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+ AFB9..AFD3    ; LVT # Lo  [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+ AFD5..AFEF    ; LVT # Lo  [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+ AFF1..B00B    ; LVT # Lo  [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+ B00D..B027    ; LVT # Lo  [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+ B029..B043    ; LVT # Lo  [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+ B045..B05F    ; LVT # Lo  [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+ B061..B07B    ; LVT # Lo  [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+ B07D..B097    ; LVT # Lo  [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+ B099..B0B3    ; LVT # Lo  [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+ B0B5..B0CF    ; LVT # Lo  [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+ B0D1..B0EB    ; LVT # Lo  [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+ B0ED..B107    ; LVT # Lo  [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+ B109..B123    ; LVT # Lo  [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+ B125..B13F    ; LVT # Lo  [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+ B141..B15B    ; LVT # Lo  [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+ B15D..B177    ; LVT # Lo  [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+ B179..B193    ; LVT # Lo  [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+ B195..B1AF    ; LVT # Lo  [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+ B1B1..B1CB    ; LVT # Lo  [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+ B1CD..B1E7    ; LVT # Lo  [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+ B1E9..B203    ; LVT # Lo  [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+ B205..B21F    ; LVT # Lo  [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+ B221..B23B    ; LVT # Lo  [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+ B23D..B257    ; LVT # Lo  [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+ B259..B273    ; LVT # Lo  [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+ B275..B28F    ; LVT # Lo  [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+ B291..B2AB    ; LVT # Lo  [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+ B2AD..B2C7    ; LVT # Lo  [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+ B2C9..B2E3    ; LVT # Lo  [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+ B2E5..B2FF    ; LVT # Lo  [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+ B301..B31B    ; LVT # Lo  [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+ B31D..B337    ; LVT # Lo  [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+ B339..B353    ; LVT # Lo  [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+ B355..B36F    ; LVT # Lo  [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+ B371..B38B    ; LVT # Lo  [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+ B38D..B3A7    ; LVT # Lo  [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+ B3A9..B3C3    ; LVT # Lo  [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+ B3C5..B3DF    ; LVT # Lo  [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+ B3E1..B3FB    ; LVT # Lo  [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+ B3FD..B417    ; LVT # Lo  [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+ B419..B433    ; LVT # Lo  [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+ B435..B44F    ; LVT # Lo  [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+ B451..B46B    ; LVT # Lo  [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+ B46D..B487    ; LVT # Lo  [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+ B489..B4A3    ; LVT # Lo  [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+ B4A5..B4BF    ; LVT # Lo  [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+ B4C1..B4DB    ; LVT # Lo  [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+ B4DD..B4F7    ; LVT # Lo  [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+ B4F9..B513    ; LVT # Lo  [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+ B515..B52F    ; LVT # Lo  [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+ B531..B54B    ; LVT # Lo  [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+ B54D..B567    ; LVT # Lo  [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+ B569..B583    ; LVT # Lo  [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+ B585..B59F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+ B5A1..B5BB    ; LVT # Lo  [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+ B5BD..B5D7    ; LVT # Lo  [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+ B5D9..B5F3    ; LVT # Lo  [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+ B5F5..B60F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+ B611..B62B    ; LVT # Lo  [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+ B62D..B647    ; LVT # Lo  [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+ B649..B663    ; LVT # Lo  [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+ B665..B67F    ; LVT # Lo  [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+ B681..B69B    ; LVT # Lo  [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+ B69D..B6B7    ; LVT # Lo  [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+ B6B9..B6D3    ; LVT # Lo  [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+ B6D5..B6EF    ; LVT # Lo  [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+ B6F1..B70B    ; LVT # Lo  [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+ B70D..B727    ; LVT # Lo  [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+ B729..B743    ; LVT # Lo  [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+ B745..B75F    ; LVT # Lo  [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+ B761..B77B    ; LVT # Lo  [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+ B77D..B797    ; LVT # Lo  [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+ B799..B7B3    ; LVT # Lo  [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+ B7B5..B7CF    ; LVT # Lo  [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+ B7D1..B7EB    ; LVT # Lo  [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+ B7ED..B807    ; LVT # Lo  [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+ B809..B823    ; LVT # Lo  [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+ B825..B83F    ; LVT # Lo  [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+ B841..B85B    ; LVT # Lo  [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+ B85D..B877    ; LVT # Lo  [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+ B879..B893    ; LVT # Lo  [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+ B895..B8AF    ; LVT # Lo  [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+ B8B1..B8CB    ; LVT # Lo  [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+ B8CD..B8E7    ; LVT # Lo  [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+ B8E9..B903    ; LVT # Lo  [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+ B905..B91F    ; LVT # Lo  [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+ B921..B93B    ; LVT # Lo  [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+ B93D..B957    ; LVT # Lo  [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+ B959..B973    ; LVT # Lo  [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+ B975..B98F    ; LVT # Lo  [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+ B991..B9AB    ; LVT # Lo  [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+ B9AD..B9C7    ; LVT # Lo  [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+ B9C9..B9E3    ; LVT # Lo  [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+ B9E5..B9FF    ; LVT # Lo  [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+ BA01..BA1B    ; LVT # Lo  [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+ BA1D..BA37    ; LVT # Lo  [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+ BA39..BA53    ; LVT # Lo  [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+ BA55..BA6F    ; LVT # Lo  [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+ BA71..BA8B    ; LVT # Lo  [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+ BA8D..BAA7    ; LVT # Lo  [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+ BAA9..BAC3    ; LVT # Lo  [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+ BAC5..BADF    ; LVT # Lo  [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+ BAE1..BAFB    ; LVT # Lo  [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+ BAFD..BB17    ; LVT # Lo  [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+ BB19..BB33    ; LVT # Lo  [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+ BB35..BB4F    ; LVT # Lo  [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+ BB51..BB6B    ; LVT # Lo  [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+ BB6D..BB87    ; LVT # Lo  [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+ BB89..BBA3    ; LVT # Lo  [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+ BBA5..BBBF    ; LVT # Lo  [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+ BBC1..BBDB    ; LVT # Lo  [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+ BBDD..BBF7    ; LVT # Lo  [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+ BBF9..BC13    ; LVT # Lo  [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+ BC15..BC2F    ; LVT # Lo  [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+ BC31..BC4B    ; LVT # Lo  [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+ BC4D..BC67    ; LVT # Lo  [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+ BC69..BC83    ; LVT # Lo  [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+ BC85..BC9F    ; LVT # Lo  [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+ BCA1..BCBB    ; LVT # Lo  [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+ BCBD..BCD7    ; LVT # Lo  [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+ BCD9..BCF3    ; LVT # Lo  [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+ BCF5..BD0F    ; LVT # Lo  [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+ BD11..BD2B    ; LVT # Lo  [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+ BD2D..BD47    ; LVT # Lo  [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+ BD49..BD63    ; LVT # Lo  [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+ BD65..BD7F    ; LVT # Lo  [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+ BD81..BD9B    ; LVT # Lo  [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+ BD9D..BDB7    ; LVT # Lo  [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+ BDB9..BDD3    ; LVT # Lo  [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+ BDD5..BDEF    ; LVT # Lo  [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+ BDF1..BE0B    ; LVT # Lo  [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+ BE0D..BE27    ; LVT # Lo  [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+ BE29..BE43    ; LVT # Lo  [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+ BE45..BE5F    ; LVT # Lo  [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+ BE61..BE7B    ; LVT # Lo  [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+ BE7D..BE97    ; LVT # Lo  [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+ BE99..BEB3    ; LVT # Lo  [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+ BEB5..BECF    ; LVT # Lo  [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+ BED1..BEEB    ; LVT # Lo  [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+ BEED..BF07    ; LVT # Lo  [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+ BF09..BF23    ; LVT # Lo  [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+ BF25..BF3F    ; LVT # Lo  [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+ BF41..BF5B    ; LVT # Lo  [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+ BF5D..BF77    ; LVT # Lo  [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+ BF79..BF93    ; LVT # Lo  [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+ BF95..BFAF    ; LVT # Lo  [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+ BFB1..BFCB    ; LVT # Lo  [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+ BFCD..BFE7    ; LVT # Lo  [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+ BFE9..C003    ; LVT # Lo  [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+ C005..C01F    ; LVT # Lo  [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+ C021..C03B    ; LVT # Lo  [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+ C03D..C057    ; LVT # Lo  [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+ C059..C073    ; LVT # Lo  [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+ C075..C08F    ; LVT # Lo  [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+ C091..C0AB    ; LVT # Lo  [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+ C0AD..C0C7    ; LVT # Lo  [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+ C0C9..C0E3    ; LVT # Lo  [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+ C0E5..C0FF    ; LVT # Lo  [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+ C101..C11B    ; LVT # Lo  [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+ C11D..C137    ; LVT # Lo  [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+ C139..C153    ; LVT # Lo  [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+ C155..C16F    ; LVT # Lo  [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+ C171..C18B    ; LVT # Lo  [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+ C18D..C1A7    ; LVT # Lo  [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+ C1A9..C1C3    ; LVT # Lo  [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+ C1C5..C1DF    ; LVT # Lo  [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+ C1E1..C1FB    ; LVT # Lo  [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+ C1FD..C217    ; LVT # Lo  [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+ C219..C233    ; LVT # Lo  [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+ C235..C24F    ; LVT # Lo  [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+ C251..C26B    ; LVT # Lo  [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+ C26D..C287    ; LVT # Lo  [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+ C289..C2A3    ; LVT # Lo  [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+ C2A5..C2BF    ; LVT # Lo  [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+ C2C1..C2DB    ; LVT # Lo  [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+ C2DD..C2F7    ; LVT # Lo  [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+ C2F9..C313    ; LVT # Lo  [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+ C315..C32F    ; LVT # Lo  [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+ C331..C34B    ; LVT # Lo  [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+ C34D..C367    ; LVT # Lo  [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+ C369..C383    ; LVT # Lo  [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+ C385..C39F    ; LVT # Lo  [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+ C3A1..C3BB    ; LVT # Lo  [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+ C3BD..C3D7    ; LVT # Lo  [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+ C3D9..C3F3    ; LVT # Lo  [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+ C3F5..C40F    ; LVT # Lo  [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+ C411..C42B    ; LVT # Lo  [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+ C42D..C447    ; LVT # Lo  [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+ C449..C463    ; LVT # Lo  [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+ C465..C47F    ; LVT # Lo  [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+ C481..C49B    ; LVT # Lo  [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+ C49D..C4B7    ; LVT # Lo  [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+ C4B9..C4D3    ; LVT # Lo  [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+ C4D5..C4EF    ; LVT # Lo  [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+ C4F1..C50B    ; LVT # Lo  [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+ C50D..C527    ; LVT # Lo  [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+ C529..C543    ; LVT # Lo  [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+ C545..C55F    ; LVT # Lo  [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+ C561..C57B    ; LVT # Lo  [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+ C57D..C597    ; LVT # Lo  [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+ C599..C5B3    ; LVT # Lo  [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+ C5B5..C5CF    ; LVT # Lo  [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+ C5D1..C5EB    ; LVT # Lo  [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+ C5ED..C607    ; LVT # Lo  [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+ C609..C623    ; LVT # Lo  [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+ C625..C63F    ; LVT # Lo  [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+ C641..C65B    ; LVT # Lo  [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+ C65D..C677    ; LVT # Lo  [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+ C679..C693    ; LVT # Lo  [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+ C695..C6AF    ; LVT # Lo  [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+ C6B1..C6CB    ; LVT # Lo  [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+ C6CD..C6E7    ; LVT # Lo  [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+ C6E9..C703    ; LVT # Lo  [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+ C705..C71F    ; LVT # Lo  [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+ C721..C73B    ; LVT # Lo  [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+ C73D..C757    ; LVT # Lo  [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+ C759..C773    ; LVT # Lo  [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+ C775..C78F    ; LVT # Lo  [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+ C791..C7AB    ; LVT # Lo  [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+ C7AD..C7C7    ; LVT # Lo  [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+ C7C9..C7E3    ; LVT # Lo  [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+ C7E5..C7FF    ; LVT # Lo  [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+ C801..C81B    ; LVT # Lo  [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+ C81D..C837    ; LVT # Lo  [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+ C839..C853    ; LVT # Lo  [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+ C855..C86F    ; LVT # Lo  [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+ C871..C88B    ; LVT # Lo  [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+ C88D..C8A7    ; LVT # Lo  [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+ C8A9..C8C3    ; LVT # Lo  [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+ C8C5..C8DF    ; LVT # Lo  [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+ C8E1..C8FB    ; LVT # Lo  [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+ C8FD..C917    ; LVT # Lo  [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+ C919..C933    ; LVT # Lo  [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+ C935..C94F    ; LVT # Lo  [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+ C951..C96B    ; LVT # Lo  [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+ C96D..C987    ; LVT # Lo  [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+ C989..C9A3    ; LVT # Lo  [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+ C9A5..C9BF    ; LVT # Lo  [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+ C9C1..C9DB    ; LVT # Lo  [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+ C9DD..C9F7    ; LVT # Lo  [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+ C9F9..CA13    ; LVT # Lo  [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+ CA15..CA2F    ; LVT # Lo  [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+ CA31..CA4B    ; LVT # Lo  [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+ CA4D..CA67    ; LVT # Lo  [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+ CA69..CA83    ; LVT # Lo  [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+ CA85..CA9F    ; LVT # Lo  [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+ CAA1..CABB    ; LVT # Lo  [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+ CABD..CAD7    ; LVT # Lo  [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+ CAD9..CAF3    ; LVT # Lo  [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+ CAF5..CB0F    ; LVT # Lo  [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+ CB11..CB2B    ; LVT # Lo  [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+ CB2D..CB47    ; LVT # Lo  [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+ CB49..CB63    ; LVT # Lo  [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+ CB65..CB7F    ; LVT # Lo  [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+ CB81..CB9B    ; LVT # Lo  [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+ CB9D..CBB7    ; LVT # Lo  [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+ CBB9..CBD3    ; LVT # Lo  [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+ CBD5..CBEF    ; LVT # Lo  [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+ CBF1..CC0B    ; LVT # Lo  [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+ CC0D..CC27    ; LVT # Lo  [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+ CC29..CC43    ; LVT # Lo  [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+ CC45..CC5F    ; LVT # Lo  [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+ CC61..CC7B    ; LVT # Lo  [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+ CC7D..CC97    ; LVT # Lo  [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+ CC99..CCB3    ; LVT # Lo  [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+ CCB5..CCCF    ; LVT # Lo  [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+ CCD1..CCEB    ; LVT # Lo  [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+ CCED..CD07    ; LVT # Lo  [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+ CD09..CD23    ; LVT # Lo  [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+ CD25..CD3F    ; LVT # Lo  [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+ CD41..CD5B    ; LVT # Lo  [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+ CD5D..CD77    ; LVT # Lo  [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+ CD79..CD93    ; LVT # Lo  [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+ CD95..CDAF    ; LVT # Lo  [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+ CDB1..CDCB    ; LVT # Lo  [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+ CDCD..CDE7    ; LVT # Lo  [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+ CDE9..CE03    ; LVT # Lo  [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+ CE05..CE1F    ; LVT # Lo  [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+ CE21..CE3B    ; LVT # Lo  [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+ CE3D..CE57    ; LVT # Lo  [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+ CE59..CE73    ; LVT # Lo  [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+ CE75..CE8F    ; LVT # Lo  [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+ CE91..CEAB    ; LVT # Lo  [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+ CEAD..CEC7    ; LVT # Lo  [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+ CEC9..CEE3    ; LVT # Lo  [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+ CEE5..CEFF    ; LVT # Lo  [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+ CF01..CF1B    ; LVT # Lo  [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+ CF1D..CF37    ; LVT # Lo  [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+ CF39..CF53    ; LVT # Lo  [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+ CF55..CF6F    ; LVT # Lo  [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+ CF71..CF8B    ; LVT # Lo  [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+ CF8D..CFA7    ; LVT # Lo  [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+ CFA9..CFC3    ; LVT # Lo  [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+ CFC5..CFDF    ; LVT # Lo  [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+ CFE1..CFFB    ; LVT # Lo  [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+ CFFD..D017    ; LVT # Lo  [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+ D019..D033    ; LVT # Lo  [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+ D035..D04F    ; LVT # Lo  [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+ D051..D06B    ; LVT # Lo  [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+ D06D..D087    ; LVT # Lo  [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+ D089..D0A3    ; LVT # Lo  [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+ D0A5..D0BF    ; LVT # Lo  [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+ D0C1..D0DB    ; LVT # Lo  [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+ D0DD..D0F7    ; LVT # Lo  [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+ D0F9..D113    ; LVT # Lo  [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+ D115..D12F    ; LVT # Lo  [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+ D131..D14B    ; LVT # Lo  [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+ D14D..D167    ; LVT # Lo  [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+ D169..D183    ; LVT # Lo  [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+ D185..D19F    ; LVT # Lo  [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+ D1A1..D1BB    ; LVT # Lo  [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+ D1BD..D1D7    ; LVT # Lo  [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+ D1D9..D1F3    ; LVT # Lo  [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+ D1F5..D20F    ; LVT # Lo  [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+ D211..D22B    ; LVT # Lo  [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+ D22D..D247    ; LVT # Lo  [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+ D249..D263    ; LVT # Lo  [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+ D265..D27F    ; LVT # Lo  [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+ D281..D29B    ; LVT # Lo  [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+ D29D..D2B7    ; LVT # Lo  [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+ D2B9..D2D3    ; LVT # Lo  [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+ D2D5..D2EF    ; LVT # Lo  [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+ D2F1..D30B    ; LVT # Lo  [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+ D30D..D327    ; LVT # Lo  [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+ D329..D343    ; LVT # Lo  [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+ D345..D35F    ; LVT # Lo  [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+ D361..D37B    ; LVT # Lo  [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+ D37D..D397    ; LVT # Lo  [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+ D399..D3B3    ; LVT # Lo  [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+ D3B5..D3CF    ; LVT # Lo  [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+ D3D1..D3EB    ; LVT # Lo  [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+ D3ED..D407    ; LVT # Lo  [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+ D409..D423    ; LVT # Lo  [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+ D425..D43F    ; LVT # Lo  [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+ D441..D45B    ; LVT # Lo  [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+ D45D..D477    ; LVT # Lo  [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+ D479..D493    ; LVT # Lo  [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+ D495..D4AF    ; LVT # Lo  [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+ D4B1..D4CB    ; LVT # Lo  [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+ D4CD..D4E7    ; LVT # Lo  [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+ D4E9..D503    ; LVT # Lo  [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+ D505..D51F    ; LVT # Lo  [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+ D521..D53B    ; LVT # Lo  [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+ D53D..D557    ; LVT # Lo  [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+ D559..D573    ; LVT # Lo  [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+ D575..D58F    ; LVT # Lo  [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+ D591..D5AB    ; LVT # Lo  [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+ D5AD..D5C7    ; LVT # Lo  [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+ D5C9..D5E3    ; LVT # Lo  [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+ D5E5..D5FF    ; LVT # Lo  [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+ D601..D61B    ; LVT # Lo  [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+ D61D..D637    ; LVT # Lo  [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+ D639..D653    ; LVT # Lo  [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+ D655..D66F    ; LVT # Lo  [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+ D671..D68B    ; LVT # Lo  [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+ D68D..D6A7    ; LVT # Lo  [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+ D6A9..D6C3    ; LVT # Lo  [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+ D6C5..D6DF    ; LVT # Lo  [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+ D6E1..D6FB    ; LVT # Lo  [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+ D6FD..D717    ; LVT # Lo  [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+ D719..D733    ; LVT # Lo  [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+ D735..D74F    ; LVT # Lo  [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+ D751..D76B    ; LVT # Lo  [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+ D76D..D787    ; LVT # Lo  [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+ D789..D7A3    ; LVT # Lo  [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+ 
+ # Total code points: 10773
+ 
+ # EOF
diff -Nrcpad gcc-15.2.0/contrib/unicode/NameAliases.txt gcc-16.1.0-RC-20260423/contrib/unicode/NameAliases.txt
*** gcc-15.2.0/contrib/unicode/NameAliases.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/NameAliases.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # NameAliases-17.0.0.txt
! # Date: 2025-04-23
! # © 2025 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
  #
*************** FEFF;ZWNBSP;abbreviation
*** 323,328 ****
--- 323,332 ----
  122D5;CUNEIFORM SIGN NU11 OVER NU11 BUR OVER BUR;correction
  12327;CUNEIFORM SIGN KALAM;correction
  1680B;BAMUM LETTER PHASE-A MAEMGBIEE;correction
+ 16881;BAMUM LETTER PHASE-B PUNGGAAM;correction
+ 1688E;BAMUM LETTER PHASE-B NGGOM;correction
+ 168DC;BAMUM LETTER PHASE-C SHETFON;correction
+ 1697D;BAMUM LETTER PHASE-E NGGOP;correction
  16E56;MEDEFAIDRIN CAPITAL LETTER H;correction
  16E57;MEDEFAIDRIN CAPITAL LETTER NG;correction
  16E76;MEDEFAIDRIN SMALL LETTER H;correction
diff -Nrcpad gcc-15.2.0/contrib/unicode/PropList.txt gcc-16.1.0-RC-20260423/contrib/unicode/PropList.txt
*** gcc-15.2.0/contrib/unicode/PropList.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/PropList.txt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
! # 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
  #
--- 1,6 ----
! # PropList-17.0.0.txt
! # Date: 2025-06-30, 06:19:01 GMT
! # © 2025 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
  #
*************** FB1E          ; Other_Alphabetic # Mn
*** 702,708 ****
  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
--- 702,708 ----
  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
! 10EFA..10EFC  ; Other_Alphabetic # Mn   [3] ARABIC DOUBLE VERTICAL BAR BELOW..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
*** 809,814 ****
--- 809,820 ----
  11A59..11A5B  ; Other_Alphabetic # Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
  11A8A..11A96  ; Other_Alphabetic # Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
  11A97         ; Other_Alphabetic # Mc       SOYOMBO SIGN VISARGA
+ 11B60         ; Other_Alphabetic # Mn       SHARADA VOWEL SIGN OE
+ 11B61         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN OOE
+ 11B62..11B64  ; Other_Alphabetic # Mn   [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E
+ 11B65         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN SHORT O
+ 11B66         ; Other_Alphabetic # Mn       SHARADA VOWEL SIGN CANDRA E
+ 11B67         ; Other_Alphabetic # Mc       SHARADA VOWEL SIGN CANDRA O
  11C2F         ; Other_Alphabetic # Mc       BHAIKSUKI VOWEL SIGN AA
  11C30..11C36  ; Other_Alphabetic # Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
  11C38..11C3D  ; Other_Alphabetic # Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
*************** FB1E          ; Other_Alphabetic # Mn
*** 853,864 ****
  1E023..1E024  ; Other_Alphabetic # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
  1E026..1E02A  ; Other_Alphabetic # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
  1E08F         ; Other_Alphabetic # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
  1E947         ; Other_Alphabetic # Mn       ADLAM HAMZA
  1F130..1F149  ; Other_Alphabetic # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
  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
  
  # ================================================
  
--- 859,874 ----
  1E023..1E024  ; Other_Alphabetic # Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
  1E026..1E02A  ; Other_Alphabetic # Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
  1E08F         ; Other_Alphabetic # Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+ 1E6E3         ; Other_Alphabetic # Mn       TAI YO SIGN UE
+ 1E6E6         ; Other_Alphabetic # Mn       TAI YO SIGN AU
+ 1E6EE..1E6EF  ; Other_Alphabetic # Mn   [2] TAI YO SIGN AY..TAI YO SIGN ANG
+ 1E6F5         ; Other_Alphabetic # Mn       TAI YO SIGN OM
  1E947         ; Other_Alphabetic # Mn       ADLAM HAMZA
  1F130..1F149  ; Other_Alphabetic # So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
  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: 1510
  
  # ================================================
  
*************** FB1E          ; Other_Alphabetic # Mn
*** 871,891 ****
  F900..FA6D    ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
  FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
  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
! 2B740..2B81D  ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Ideographic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  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
  
  # ================================================
  
--- 881,902 ----
  F900..FA6D    ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
  FA70..FAD9    ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
  16FE4         ; Ideographic # Mn       KHITAN SMALL SCRIPT FILLER
! 16FF2..16FF3  ; Ideographic # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
! 16FF4..16FF6  ; Ideographic # Nl   [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS
! 17000..18CD5  ; Ideographic # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5
! 18CFF..18D1E  ; Ideographic # Lo  [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E
! 18D80..18DF2  ; Ideographic # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883
  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..2B81D  ; Ideographic # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; Ideographic # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Ideographic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  2F800..2FA1D  ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
  30000..3134A  ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; Ideographic # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 110943
  
  # ================================================
  
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 915,925 ****
  0384..0385    ; Diacritic # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
  0483..0487    ; Diacritic # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
  0559          ; Diacritic # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
! 0591..05A1    ; Diacritic # Mn  [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER
! 05A3..05BD    ; Diacritic # Mn  [27] HEBREW ACCENT MUNAH..HEBREW POINT METEG
  05BF          ; Diacritic # Mn       HEBREW POINT RAFE
  05C1..05C2    ; Diacritic # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
! 05C4          ; Diacritic # Mn       HEBREW MARK UPPER DOT
  064B..0652    ; Diacritic # Mn   [8] ARABIC FATHATAN..ARABIC SUKUN
  0657..0658    ; Diacritic # Mn   [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA
  06DF..06E0    ; Diacritic # Mn   [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
--- 926,936 ----
  0384..0385    ; Diacritic # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS
  0483..0487    ; Diacritic # Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
  0559          ; Diacritic # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING
! 0591..05BD    ; Diacritic # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
  05BF          ; Diacritic # Mn       HEBREW POINT RAFE
  05C1..05C2    ; Diacritic # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
! 05C4..05C5    ; Diacritic # Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
! 05C7          ; Diacritic # Mn       HEBREW POINT QAMATS QATAN
  064B..0652    ; Diacritic # Mn   [8] ARABIC FATHATAN..ARABIC SUKUN
  0657..0658    ; Diacritic # Mn   [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA
  06DF..06E0    ; Diacritic # Mn   [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 990,995 ****
--- 1001,1008 ----
  1AB0..1ABD    ; Diacritic # Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  1ABE          ; Diacritic # Me       COMBINING PARENTHESES OVERLAY
  1AC1..1ACB    ; Diacritic # Mn  [11] COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING TRIPLE ACUTE ACCENT
+ 1ACF..1ADD    ; Diacritic # Mn  [15] COMBINING DOUBLE CARON..COMBINING DOT-AND-RING BELOW
+ 1AE0..1AEB    ; Diacritic # Mn  [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE
  1B34          ; Diacritic # Mn       BALINESE SIGN REREKAN
  1B44          ; Diacritic # Mc       BALINESE ADEG ADEG
  1B6B..1B73    ; Diacritic # Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
*************** FA70..FAD9    ; Ideographic # Lo [106] C
*** 1009,1014 ****
--- 1022,1028 ----
  1CF7          ; Diacritic # Mc       VEDIC SIGN ATIKRAMA
  1CF8..1CF9    ; Diacritic # Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
  1D2C..1D6A    ; Diacritic # Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+ 1D9B..1DBE    ; Diacritic # Lm  [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH
  1DC4..1DCF    ; Diacritic # Mn  [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW
  1DF5..1DFF    ; Diacritic # Mn  [11] COMBINING UP TACK ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
  1FBD          ; Diacritic # Sk       GREEK KORONIS
*************** A717..A71F    ; Diacritic # Lm   [9] MOD
*** 1034,1039 ****
--- 1048,1054 ----
  A720..A721    ; Diacritic # Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
  A788          ; Diacritic # Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT
  A789..A78A    ; Diacritic # Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+ A7F1          ; Diacritic # Lm       MODIFIER LETTER CAPITAL S
  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
*************** FFE3          ; Diacritic # Sk       FUL
*** 1077,1082 ****
--- 1092,1098 ----
  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
+ 10EFA         ; Diacritic # Mn       ARABIC DOUBLE VERTICAL BAR BELOW
  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
*** 1120,1125 ****
--- 1136,1142 ----
  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
+ 11DD9         ; Diacritic # Lm       TOLONG SIKI SIGN SELA
  11F41         ; Diacritic # Mc       KAWI SIGN KILLER
  11F42         ; Diacritic # Mn       KAWI CONJOINER
  11F5A         ; Diacritic # Mn       KAWI SIGN NUKTA
*************** FFE3          ; Diacritic # Sk       FUL
*** 1150,1156 ****
  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
  
  # ================================================
  
--- 1167,1173 ----
  1E944..1E946  ; Diacritic # Mn   [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
  1E948..1E94A  ; Diacritic # Mn   [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
  
! # Total code points: 1247
  
  # ================================================
  
*************** FF70          ; Extender # Lm       HALF
*** 1190,1203 ****
  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
  
  # ================================================
  
--- 1207,1222 ----
  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
+ 11DD9         ; Extender # Lm       TOLONG SIKI SIGN SELA
  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
+ 16FF2..16FF3  ; Extender # Lm   [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER
  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: 62
  
  # ================================================
  
*************** FF70          ; Extender # Lm       HALF
*** 1220,1226 ****
  2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
  A69C..A69D    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
! A7F2..A7F4    ; Other_Lowercase # Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; Other_Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; Other_Lowercase # Lm       MODIFIER LETTER SMALL TURNED W
--- 1239,1245 ----
  2C7C..2C7D    ; Other_Lowercase # Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
  A69C..A69D    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
  A770          ; Other_Lowercase # Lm       MODIFIER LETTER US
! A7F1..A7F4    ; Other_Lowercase # Lm   [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q
  A7F8..A7F9    ; Other_Lowercase # Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
  AB5C..AB5F    ; Other_Lowercase # Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
  AB69          ; Other_Lowercase # Lm       MODIFIER LETTER SMALL TURNED W
*************** AB69          ; Other_Lowercase # Lm
*** 1230,1236 ****
  107B2..107BA  ; Other_Lowercase # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
  1E030..1E06D  ; Other_Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
  
! # Total code points: 311
  
  # ================================================
  
--- 1249,1255 ----
  107B2..107BA  ; Other_Lowercase # Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
  1E030..1E06D  ; Other_Lowercase # Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
  
! # Total code points: 312
  
  # ================================================
  
*************** FA21          ; Unified_Ideograph # Lo
*** 1359,1373 ****
  FA23..FA24    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
  FA27..FA29    ; Unified_Ideograph # Lo   [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
  20000..2A6DF  ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B739  ; Unified_Ideograph # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
! 2B740..2B81D  ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEA1  ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
  2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Unified_Ideograph # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  30000..3134A  ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..323AF  ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
  
! # Total code points: 97680
  
  # ================================================
  
--- 1378,1391 ----
  FA23..FA24    ; Unified_Ideograph # Lo   [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
  FA27..FA29    ; Unified_Ideograph # Lo   [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
  20000..2A6DF  ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
! 2A700..2B81D  ; Unified_Ideograph # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D
! 2B820..2CEAD  ; Unified_Ideograph # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD
  2CEB0..2EBE0  ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
  2EBF0..2EE5D  ; Unified_Ideograph # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
  30000..3134A  ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
! 31350..33479  ; Unified_Ideograph # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479
  
! # Total code points: 101996
  
  # ================================================
  
*************** E0100..E01EF  ; Variation_Selector # Mn
*** 1809,1817 ****
  2B47..2B4C    ; Pattern_Syntax # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
  2B4D..2B73    ; Pattern_Syntax # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
  2B74..2B75    ; Pattern_Syntax # Cn   [2] <reserved-2B74>..<reserved-2B75>
! 2B76..2B95    ; Pattern_Syntax # So  [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
! 2B96          ; Pattern_Syntax # Cn       <reserved-2B96>
! 2B97..2BFF    ; Pattern_Syntax # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
  2E00..2E01    ; Pattern_Syntax # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
  2E02          ; Pattern_Syntax # Pi       LEFT SUBSTITUTION BRACKET
  2E03          ; Pattern_Syntax # Pf       RIGHT SUBSTITUTION BRACKET
--- 1827,1833 ----
  2B47..2B4C    ; Pattern_Syntax # Sm   [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
  2B4D..2B73    ; Pattern_Syntax # So  [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
  2B74..2B75    ; Pattern_Syntax # Cn   [2] <reserved-2B74>..<reserved-2B75>
! 2B76..2BFF    ; Pattern_Syntax # So [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL
  2E00..2E01    ; Pattern_Syntax # Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
  2E02          ; Pattern_Syntax # Pi       LEFT SUBSTITUTION BRACKET
  2E03          ; Pattern_Syntax # Pf       RIGHT SUBSTITUTION BRACKET
diff -Nrcpad gcc-15.2.0/contrib/unicode/README gcc-16.1.0-RC-20260423/contrib/unicode/README
*** gcc-15.2.0/contrib/unicode/README	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/README	Thu Apr 23 11:07:32 2026
*************** ftp://ftp.unicode.org/Public/UNIDATA/Pro
*** 15,20 ****
--- 15,21 ----
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
  ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt
+ ftp://ftp.unicode.org/Public/UNIDATA/HangulSyllableType.txt
  
  Three additional files are needed for lookup tables in libstdc++:
  
*************** localedata/unicode-gen/unicode_utils.py
*** 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
--- 37,43 ----
  localedata/unicode-gen/utf8_gen.py
  
  And the most recent versions added to GCC are from glibc git commit:
! 2642002380aafb71a1d3b569b6d7ebeab3284816
  
  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
*** 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
--- 54,60 ----
  
  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, 17.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
*** 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:
--- 69,75 ----
  	> ../../libcpp/ucnid.h
  
  7.  Read the corresponding Unicode's standard and update correspondingly
!     generated_ranges table in libcpp/makeuname2c.cc (in Unicode 17 all
      the needed information was in Table 4-8).
  
  8.  Compile makeuname2c, e.g. with:
diff -Nrcpad gcc-15.2.0/contrib/unicode/UnicodeData.txt gcc-16.1.0-RC-20260423/contrib/unicode/UnicodeData.txt
*** gcc-15.2.0/contrib/unicode/UnicodeData.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/UnicodeData.txt	Thu Apr 23 11:07:32 2026
***************
*** 659,665 ****
  0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
  0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
  0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
! 0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
  0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
  0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
  0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
--- 659,665 ----
  0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
  0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
  0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
! 0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Lo;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
  0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
  0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
  0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
***************
*** 2121,2126 ****
--- 2121,2127 ----
  088C;ARABIC LETTER TAH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
  088D;ARABIC LETTER KEHEH WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;;
  088E;ARABIC VERTICAL TAIL;Lo;0;AL;;;;;N;;;;;
+ 088F;ARABIC LETTER NOON WITH RING ABOVE;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;;;;;
***************
*** 2862,2867 ****
--- 2863,2869 ----
  0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;;
  0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;;
  0C5A;TELUGU LETTER RRRA;Lo;0;L;;;;;N;;;;;
+ 0C5C;TELUGU ARCHAIC SHRII;Lo;0;L;;;;;N;;;;;
  0C5D;TELUGU LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;;
  0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
  0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
***************
*** 2958,2963 ****
--- 2960,2966 ----
  0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
  0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
  0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+ 0CDC;KANNADA ARCHAIC SHRII;Lo;0;L;;;;;N;;;;;
  0CDD;KANNADA LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;;
  0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
  0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
***************
*** 6137,6142 ****
--- 6140,6172 ----
  1ACC;COMBINING LATIN SMALL LETTER INSULAR G;Mn;230;NSM;;;;;N;;;;;
  1ACD;COMBINING LATIN SMALL LETTER INSULAR R;Mn;230;NSM;;;;;N;;;;;
  1ACE;COMBINING LATIN SMALL LETTER INSULAR T;Mn;230;NSM;;;;;N;;;;;
+ 1ACF;COMBINING DOUBLE CARON;Mn;230;NSM;;;;;N;;;;;
+ 1AD0;COMBINING VERTICAL-LINE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+ 1AD1;COMBINING GRAVE-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;;
+ 1AD2;COMBINING VERTICAL-LINE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+ 1AD3;COMBINING ACUTE-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;;
+ 1AD4;COMBINING VERTICAL-LINE-MACRON;Mn;230;NSM;;;;;N;;;;;
+ 1AD5;COMBINING MACRON-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;;
+ 1AD6;COMBINING VERTICAL-LINE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+ 1AD7;COMBINING VERTICAL-LINE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+ 1AD8;COMBINING MACRON-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+ 1AD9;COMBINING SHARP SIGN;Mn;230;NSM;;;;;N;;;;;
+ 1ADA;COMBINING FLAT SIGN;Mn;230;NSM;;;;;N;;;;;
+ 1ADB;COMBINING DOWN TACK ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1ADC;COMBINING DIAERESIS WITH RAISED LEFT DOT;Mn;230;NSM;;;;;N;;;;;
+ 1ADD;COMBINING DOT-AND-RING BELOW;Mn;220;NSM;;;;;N;;;;;
+ 1AE0;COMBINING LEFT TACK ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE1;COMBINING RIGHT TACK ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE2;COMBINING MINUS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE3;COMBINING INVERTED BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE4;COMBINING SQUARE ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE5;COMBINING SEAGULL ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE6;COMBINING DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;;;;;
+ 1AE7;COMBINING DOUBLE ARCH ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE8;COMBINING EQUALS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AE9;COMBINING LEFT ANGLE CENTRED ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AEA;COMBINING UPWARDS ARROW ABOVE;Mn;230;NSM;;;;;N;;;;;
+ 1AEB;COMBINING DOUBLE RIGHTWARDS ARROW ABOVE;Mn;234;NSM;;;;;N;;;;;
  1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
  1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
  1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
***************
*** 7545,7550 ****
--- 7575,7581 ----
  20BE;LARI SIGN;Sc;0;ET;;;;;N;;;;;
  20BF;BITCOIN SIGN;Sc;0;ET;;;;;N;;;;;
  20C0;SOM SIGN;Sc;0;ET;;;;;N;;;;;
+ 20C1;SAUDI RIYAL SIGN;Sc;0;ET;;;;;N;;;;;
  20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
  20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
  20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
***************
*** 10239,10244 ****
--- 10270,10276 ----
  2B93;NEWLINE RIGHT;So;0;ON;;;;;N;;;;;
  2B94;FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE;So;0;ON;;;;;N;;;;;
  2B95;RIGHTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+ 2B96;EQUALS SIGN WITH INFINITY ABOVE;So;0;ON;;;;;N;;;;;
  2B97;SYMBOL FOR TYPE A ELECTRONICS;So;0;ON;;;;;N;;;;;
  2B98;THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
  2B99;THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
*************** A7CA;LATIN SMALL LETTER S WITH SHORT STR
*** 14274,14283 ****
  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;;;;;
! A7D5;LATIN SMALL LETTER DOUBLE WYNN;Ll;0;L;;;;;N;;;;;
  A7D6;LATIN CAPITAL LETTER MIDDLE SCOTS S;Lu;0;L;;;;;N;;;;A7D7;
  A7D7;LATIN SMALL LETTER MIDDLE SCOTS S;Ll;0;L;;;;;N;;;A7D6;;A7D6
  A7D8;LATIN CAPITAL LETTER SIGMOID S;Lu;0;L;;;;;N;;;;A7D9;
--- 14306,14319 ----
  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
+ A7CE;LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE;Lu;0;L;;;;;N;;;;A7CF;
+ A7CF;LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;;;A7CE;;A7CE
  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
! A7D2;LATIN CAPITAL LETTER DOUBLE THORN;Lu;0;L;;;;;N;;;;A7D3;
! A7D3;LATIN SMALL LETTER DOUBLE THORN;Ll;0;L;;;;;N;;;A7D2;;A7D2
! A7D4;LATIN CAPITAL LETTER DOUBLE WYNN;Lu;0;L;;;;;N;;;;A7D5;
! A7D5;LATIN SMALL LETTER DOUBLE WYNN;Ll;0;L;;;;;N;;;A7D4;;A7D4
  A7D6;LATIN CAPITAL LETTER MIDDLE SCOTS S;Lu;0;L;;;;;N;;;;A7D7;
  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
*** 14285,14290 ****
--- 14321,14327 ----
  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;
+ A7F1;MODIFIER LETTER CAPITAL S;Lm;0;L;<super> 0053;;;;N;;;;;
  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;;;;;
*************** FBBF;ARABIC SYMBOL RING;Sk;0;AL;;;;;N;;;
*** 15925,15930 ****
--- 15962,15983 ----
  FBC0;ARABIC SYMBOL SMALL TAH ABOVE;Sk;0;AL;;;;;N;;;;;
  FBC1;ARABIC SYMBOL SMALL TAH BELOW;Sk;0;AL;;;;;N;;;;;
  FBC2;ARABIC SYMBOL WASLA ABOVE;Sk;0;AL;;;;;N;;;;;
+ FBC3;ARABIC LIGATURE JALLA WA-ALAA;So;0;ON;;;;;N;;;;;
+ FBC4;ARABIC LIGATURE DAAMAT BARAKAATUHUM;So;0;ON;;;;;N;;;;;
+ FBC5;ARABIC LIGATURE RAHMATU ALLAAHI TAAALAA ALAYH;So;0;ON;;;;;N;;;;;
+ FBC6;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHIM;So;0;ON;;;;;N;;;;;
+ FBC7;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHIMAA;So;0;ON;;;;;N;;;;;
+ FBC8;ARABIC LIGATURE RAHIMAHUM ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;;
+ FBC9;ARABIC LIGATURE RAHIMAHUMAA ALLAAH;So;0;ON;;;;;N;;;;;
+ FBCA;ARABIC LIGATURE RAHIMAHUMAA ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;;
+ FBCB;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHUM;So;0;ON;;;;;N;;;;;
+ FBCC;ARABIC LIGATURE HAFIZAHU ALLAAH;So;0;ON;;;;;N;;;;;
+ FBCD;ARABIC LIGATURE HAFIZAHU ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;;
+ FBCE;ARABIC LIGATURE HAFIZAHUM ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;;
+ FBCF;ARABIC LIGATURE HAFIZAHUMAA ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;;
+ FBD0;ARABIC LIGATURE SALLALLAAHU TAAALAA ALAYHI WA-SALLAM;So;0;ON;;;;;N;;;;;
+ FBD1;ARABIC LIGATURE AJJAL ALLAAHU FARAJAHU ASH-SHAREEF;So;0;ON;;;;;N;;;;;
+ FBD2;ARABIC LIGATURE ALAYHI AR-RAHMAH;So;0;ON;;;;;N;;;;;
  FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
  FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
  FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
*************** FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH
*** 16370,16375 ****
--- 16423,16430 ----
  FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
  FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
  FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
+ FD90;ARABIC LIGATURE RAHMATU ALLAAHI ALAYH;So;0;ON;;;;;N;;;;;
+ FD91;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA;So;0;ON;;;;;N;;;;;
  FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
  FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
  FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
*************** FDC4;ARABIC LIGATURE AIN WITH JEEM WITH
*** 16424,16429 ****
--- 16479,16491 ----
  FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
  FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
  FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+ FDC8;ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA;So;0;ON;;;;;N;;;;;
+ FDC9;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANH;So;0;ON;;;;;N;;;;;
+ FDCA;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHAA;So;0;ON;;;;;N;;;;;
+ FDCB;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHUMAA;So;0;ON;;;;;N;;;;;
+ FDCC;ARABIC LIGATURE SALLALLAHU ALAYHI WA-ALAA AALIHEE WA-SALLAM;So;0;ON;;;;;N;;;;;
+ FDCD;ARABIC LIGATURE AJJAL ALLAAHU TAAALAA FARAJAHU ASH-SHAREEF;So;0;ON;;;;;N;;;;;
+ FDCE;ARABIC LIGATURE KARRAMA ALLAAHU WAJHAH;So;0;ON;;;;;N;;;;;
  FDCF;ARABIC LIGATURE SALAAMUHU ALAYNAA;So;0;ON;;;;;N;;;;;
  FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
  FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 18708,18713 ****
--- 18770,18801 ----
  10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;;
  10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;;
  1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
+ 10940;SIDETIC LETTER N01;Lo;0;R;;;;;N;;;;;
+ 10941;SIDETIC LETTER N02;Lo;0;R;;;;;N;;;;;
+ 10942;SIDETIC LETTER N03;Lo;0;R;;;;;N;;;;;
+ 10943;SIDETIC LETTER N04;Lo;0;R;;;;;N;;;;;
+ 10944;SIDETIC LETTER N05;Lo;0;R;;;;;N;;;;;
+ 10945;SIDETIC LETTER N06;Lo;0;R;;;;;N;;;;;
+ 10946;SIDETIC LETTER N07;Lo;0;R;;;;;N;;;;;
+ 10947;SIDETIC LETTER N08;Lo;0;R;;;;;N;;;;;
+ 10948;SIDETIC LETTER N09;Lo;0;R;;;;;N;;;;;
+ 10949;SIDETIC LETTER N10;Lo;0;R;;;;;N;;;;;
+ 1094A;SIDETIC LETTER N11;Lo;0;R;;;;;N;;;;;
+ 1094B;SIDETIC LETTER N12;Lo;0;R;;;;;N;;;;;
+ 1094C;SIDETIC LETTER N13;Lo;0;R;;;;;N;;;;;
+ 1094D;SIDETIC LETTER N14;Lo;0;R;;;;;N;;;;;
+ 1094E;SIDETIC LETTER N15;Lo;0;R;;;;;N;;;;;
+ 1094F;SIDETIC LETTER N16;Lo;0;R;;;;;N;;;;;
+ 10950;SIDETIC LETTER N17;Lo;0;R;;;;;N;;;;;
+ 10951;SIDETIC LETTER N18;Lo;0;R;;;;;N;;;;;
+ 10952;SIDETIC LETTER N19;Lo;0;R;;;;;N;;;;;
+ 10953;SIDETIC LETTER N20;Lo;0;R;;;;;N;;;;;
+ 10954;SIDETIC LETTER N21;Lo;0;R;;;;;N;;;;;
+ 10955;SIDETIC LETTER N22;Lo;0;R;;;;;N;;;;;
+ 10956;SIDETIC LETTER N23;Lo;0;R;;;;;N;;;;;
+ 10957;SIDETIC LETTER N24;Lo;0;R;;;;;N;;;;;
+ 10958;SIDETIC LETTER N25;Lo;0;R;;;;;N;;;;;
+ 10959;SIDETIC LETTER N26;Lo;0;R;;;;;N;;;;;
  10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;;
  10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;;
  10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 19541,19546 ****
--- 19629,19648 ----
  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;;;;;
+ 10EC5;ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW;Lm;0;AL;;;;;N;;;;;
+ 10EC6;ARABIC LETTER THIN NOON;Lo;0;AL;;;;;N;;;;;
+ 10EC7;ARABIC LETTER YEH WITH FOUR DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+ 10ED0;ARABIC BIBLICAL END OF VERSE;Po;0;ON;;;;;N;;;;;
+ 10ED1;ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;;
+ 10ED2;ARABIC LIGATURE ALAYHIM AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;;
+ 10ED3;ARABIC LIGATURE ALAYHIMAA AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;;
+ 10ED4;ARABIC LIGATURE QADDASA ALLAAHU SIRRAH;So;0;ON;;;;;N;;;;;
+ 10ED5;ARABIC LIGATURE QUDDISA SIRRUHUM;So;0;ON;;;;;N;;;;;
+ 10ED6;ARABIC LIGATURE QUDDISA SIRRUHUMAA;So;0;ON;;;;;N;;;;;
+ 10ED7;ARABIC LIGATURE QUDDISAT ASRAARUHUM;So;0;ON;;;;;N;;;;;
+ 10ED8;ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH;So;0;ON;;;;;N;;;;;
+ 10EFA;ARABIC DOUBLE VERTICAL BAR BELOW;Mn;220;NSM;;;;;N;;;;;
+ 10EFB;ARABIC SMALL LOW NOON;Mn;220;NSM;;;;;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;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 21521,21526 ****
--- 21623,21636 ----
  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;;;;;
+ 11B60;SHARADA VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;;
+ 11B61;SHARADA VOWEL SIGN OOE;Mc;0;L;;;;;N;;;;;
+ 11B62;SHARADA VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
+ 11B63;SHARADA VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;;
+ 11B64;SHARADA VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
+ 11B65;SHARADA VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
+ 11B66;SHARADA VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
+ 11B67;SHARADA VOWEL SIGN CANDRA O;Mc;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;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 21868,21873 ****
--- 21978,22037 ----
  11DA7;GUNJALA GONDI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
  11DA8;GUNJALA GONDI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
  11DA9;GUNJALA GONDI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+ 11DB0;TOLONG SIKI LETTER I;Lo;0;L;;;;;N;;;;;
+ 11DB1;TOLONG SIKI LETTER E;Lo;0;L;;;;;N;;;;;
+ 11DB2;TOLONG SIKI LETTER U;Lo;0;L;;;;;N;;;;;
+ 11DB3;TOLONG SIKI LETTER O;Lo;0;L;;;;;N;;;;;
+ 11DB4;TOLONG SIKI LETTER A;Lo;0;L;;;;;N;;;;;
+ 11DB5;TOLONG SIKI LETTER AA;Lo;0;L;;;;;N;;;;;
+ 11DB6;TOLONG SIKI LETTER P;Lo;0;L;;;;;N;;;;;
+ 11DB7;TOLONG SIKI LETTER PH;Lo;0;L;;;;;N;;;;;
+ 11DB8;TOLONG SIKI LETTER B;Lo;0;L;;;;;N;;;;;
+ 11DB9;TOLONG SIKI LETTER BH;Lo;0;L;;;;;N;;;;;
+ 11DBA;TOLONG SIKI LETTER M;Lo;0;L;;;;;N;;;;;
+ 11DBB;TOLONG SIKI LETTER T;Lo;0;L;;;;;N;;;;;
+ 11DBC;TOLONG SIKI LETTER TH;Lo;0;L;;;;;N;;;;;
+ 11DBD;TOLONG SIKI LETTER D;Lo;0;L;;;;;N;;;;;
+ 11DBE;TOLONG SIKI LETTER DH;Lo;0;L;;;;;N;;;;;
+ 11DBF;TOLONG SIKI LETTER N;Lo;0;L;;;;;N;;;;;
+ 11DC0;TOLONG SIKI LETTER TT;Lo;0;L;;;;;N;;;;;
+ 11DC1;TOLONG SIKI LETTER TTH;Lo;0;L;;;;;N;;;;;
+ 11DC2;TOLONG SIKI LETTER DD;Lo;0;L;;;;;N;;;;;
+ 11DC3;TOLONG SIKI LETTER DDH;Lo;0;L;;;;;N;;;;;
+ 11DC4;TOLONG SIKI LETTER NN;Lo;0;L;;;;;N;;;;;
+ 11DC5;TOLONG SIKI LETTER C;Lo;0;L;;;;;N;;;;;
+ 11DC6;TOLONG SIKI LETTER CH;Lo;0;L;;;;;N;;;;;
+ 11DC7;TOLONG SIKI LETTER J;Lo;0;L;;;;;N;;;;;
+ 11DC8;TOLONG SIKI LETTER JH;Lo;0;L;;;;;N;;;;;
+ 11DC9;TOLONG SIKI LETTER NY;Lo;0;L;;;;;N;;;;;
+ 11DCA;TOLONG SIKI LETTER K;Lo;0;L;;;;;N;;;;;
+ 11DCB;TOLONG SIKI LETTER KH;Lo;0;L;;;;;N;;;;;
+ 11DCC;TOLONG SIKI LETTER G;Lo;0;L;;;;;N;;;;;
+ 11DCD;TOLONG SIKI LETTER GH;Lo;0;L;;;;;N;;;;;
+ 11DCE;TOLONG SIKI LETTER NG;Lo;0;L;;;;;N;;;;;
+ 11DCF;TOLONG SIKI LETTER Y;Lo;0;L;;;;;N;;;;;
+ 11DD0;TOLONG SIKI LETTER R;Lo;0;L;;;;;N;;;;;
+ 11DD1;TOLONG SIKI LETTER L;Lo;0;L;;;;;N;;;;;
+ 11DD2;TOLONG SIKI LETTER V;Lo;0;L;;;;;N;;;;;
+ 11DD3;TOLONG SIKI LETTER NNY;Lo;0;L;;;;;N;;;;;
+ 11DD4;TOLONG SIKI LETTER S;Lo;0;L;;;;;N;;;;;
+ 11DD5;TOLONG SIKI LETTER H;Lo;0;L;;;;;N;;;;;
+ 11DD6;TOLONG SIKI LETTER X;Lo;0;L;;;;;N;;;;;
+ 11DD7;TOLONG SIKI LETTER RR;Lo;0;L;;;;;N;;;;;
+ 11DD8;TOLONG SIKI LETTER RRH;Lo;0;L;;;;;N;;;;;
+ 11DD9;TOLONG SIKI SIGN SELA;Lm;0;L;;;;;N;;;;;
+ 11DDA;TOLONG SIKI SIGN HECAKA;Lo;0;L;;;;;N;;;;;
+ 11DDB;TOLONG SIKI UNGGA;Lo;0;L;;;;;N;;;;;
+ 11DE0;TOLONG SIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+ 11DE1;TOLONG SIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+ 11DE2;TOLONG SIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+ 11DE3;TOLONG SIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+ 11DE4;TOLONG SIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+ 11DE5;TOLONG SIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+ 11DE6;TOLONG SIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+ 11DE7;TOLONG SIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+ 11DE8;TOLONG SIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+ 11DE9;TOLONG SIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
  11EE0;MAKASAR LETTER KA;Lo;0;L;;;;;N;;;;;
  11EE1;MAKASAR LETTER GA;Lo;0;L;;;;;N;;;;;
  11EE2;MAKASAR LETTER NGA;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 22088,22095 ****
  12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
  12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
  12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
! 12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
! 12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
  1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
  1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
  1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
--- 22252,22259 ----
  12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
  12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
  12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
! 12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;1;N;;;;;
! 12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;1;N;;;;;
  1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
  1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
  1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 22153,22159 ****
  12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
  12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
  12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
! 12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
  1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
  1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
  1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
--- 22317,22323 ----
  12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
  12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
  12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
! 12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;1;N;;;;;
  1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
  1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
  1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 22582,22593 ****
  12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
  12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
  12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
! 12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
  12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
  12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
  12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
  1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
! 1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
  1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
  1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
  1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
--- 22746,22757 ----
  12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
  12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
  12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
! 12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;1/2;N;;;;;
  12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
  12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
  12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
  1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
! 1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;2;N;;;;;
  1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
  1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
  1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 22811,22819 ****
  12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
  12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
  1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
! 1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
  1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
! 1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
  1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
  1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
  12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
--- 22975,22983 ----
  12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
  12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
  1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
! 1230B;CUNEIFORM SIGN U;Lo;0;L;;;;1;N;;;;;
  1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
! 1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;3;N;;;;;
  1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
  1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
  12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 22953,22959 ****
  12396;CUNEIFORM SIGN SAG TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
  12397;CUNEIFORM SIGN TI2;Lo;0;L;;;;;N;;;;;
  12398;CUNEIFORM SIGN UM TIMES ME;Lo;0;L;;;;;N;;;;;
! 12399;CUNEIFORM SIGN U U;Lo;0;L;;;;;N;;;;;
  12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
  12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
  12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
--- 23117,23123 ----
  12396;CUNEIFORM SIGN SAG TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
  12397;CUNEIFORM SIGN TI2;Lo;0;L;;;;;N;;;;;
  12398;CUNEIFORM SIGN UM TIMES ME;Lo;0;L;;;;;N;;;;;
! 12399;CUNEIFORM SIGN U U;Lo;0;L;;;;2;N;;;;;
  12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
  12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
  12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 30124,30129 ****
--- 30288,30343 ----
  16E98;MEDEFAIDRIN FULL STOP;Po;0;L;;;;;N;;;;;
  16E99;MEDEFAIDRIN SYMBOL AIVA;Po;0;L;;;;;N;;;;;
  16E9A;MEDEFAIDRIN EXCLAMATION OH;Po;0;L;;;;;N;;;;;
+ 16EA0;BERIA ERFE CAPITAL LETTER ARKAB;Lu;0;L;;;;;N;;;;16EBB;
+ 16EA1;BERIA ERFE CAPITAL LETTER BASIGNA;Lu;0;L;;;;;N;;;;16EBC;
+ 16EA2;BERIA ERFE CAPITAL LETTER DARBAI;Lu;0;L;;;;;N;;;;16EBD;
+ 16EA3;BERIA ERFE CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;16EBE;
+ 16EA4;BERIA ERFE CAPITAL LETTER FITKO;Lu;0;L;;;;;N;;;;16EBF;
+ 16EA5;BERIA ERFE CAPITAL LETTER GOWAY;Lu;0;L;;;;;N;;;;16EC0;
+ 16EA6;BERIA ERFE CAPITAL LETTER HIRDEABO;Lu;0;L;;;;;N;;;;16EC1;
+ 16EA7;BERIA ERFE CAPITAL LETTER I;Lu;0;L;;;;;N;;;;16EC2;
+ 16EA8;BERIA ERFE CAPITAL LETTER DJAI;Lu;0;L;;;;;N;;;;16EC3;
+ 16EA9;BERIA ERFE CAPITAL LETTER KOBO;Lu;0;L;;;;;N;;;;16EC4;
+ 16EAA;BERIA ERFE CAPITAL LETTER LAKKO;Lu;0;L;;;;;N;;;;16EC5;
+ 16EAB;BERIA ERFE CAPITAL LETTER MERI;Lu;0;L;;;;;N;;;;16EC6;
+ 16EAC;BERIA ERFE CAPITAL LETTER NINI;Lu;0;L;;;;;N;;;;16EC7;
+ 16EAD;BERIA ERFE CAPITAL LETTER GNA;Lu;0;L;;;;;N;;;;16EC8;
+ 16EAE;BERIA ERFE CAPITAL LETTER NGAY;Lu;0;L;;;;;N;;;;16EC9;
+ 16EAF;BERIA ERFE CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;16ECA;
+ 16EB0;BERIA ERFE CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;16ECB;
+ 16EB1;BERIA ERFE CAPITAL LETTER ERIGO;Lu;0;L;;;;;N;;;;16ECC;
+ 16EB2;BERIA ERFE CAPITAL LETTER ERIGO TAMURA;Lu;0;L;;;;;N;;;;16ECD;
+ 16EB3;BERIA ERFE CAPITAL LETTER SERI;Lu;0;L;;;;;N;;;;16ECE;
+ 16EB4;BERIA ERFE CAPITAL LETTER SHEP;Lu;0;L;;;;;N;;;;16ECF;
+ 16EB5;BERIA ERFE CAPITAL LETTER TATASOUE;Lu;0;L;;;;;N;;;;16ED0;
+ 16EB6;BERIA ERFE CAPITAL LETTER UI;Lu;0;L;;;;;N;;;;16ED1;
+ 16EB7;BERIA ERFE CAPITAL LETTER WASSE;Lu;0;L;;;;;N;;;;16ED2;
+ 16EB8;BERIA ERFE CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;16ED3;
+ 16EBB;BERIA ERFE SMALL LETTER ARKAB;Ll;0;L;;;;;N;;;16EA0;;16EA0
+ 16EBC;BERIA ERFE SMALL LETTER BASIGNA;Ll;0;L;;;;;N;;;16EA1;;16EA1
+ 16EBD;BERIA ERFE SMALL LETTER DARBAI;Ll;0;L;;;;;N;;;16EA2;;16EA2
+ 16EBE;BERIA ERFE SMALL LETTER EH;Ll;0;L;;;;;N;;;16EA3;;16EA3
+ 16EBF;BERIA ERFE SMALL LETTER FITKO;Ll;0;L;;;;;N;;;16EA4;;16EA4
+ 16EC0;BERIA ERFE SMALL LETTER GOWAY;Ll;0;L;;;;;N;;;16EA5;;16EA5
+ 16EC1;BERIA ERFE SMALL LETTER HIRDEABO;Ll;0;L;;;;;N;;;16EA6;;16EA6
+ 16EC2;BERIA ERFE SMALL LETTER I;Ll;0;L;;;;;N;;;16EA7;;16EA7
+ 16EC3;BERIA ERFE SMALL LETTER DJAI;Ll;0;L;;;;;N;;;16EA8;;16EA8
+ 16EC4;BERIA ERFE SMALL LETTER KOBO;Ll;0;L;;;;;N;;;16EA9;;16EA9
+ 16EC5;BERIA ERFE SMALL LETTER LAKKO;Ll;0;L;;;;;N;;;16EAA;;16EAA
+ 16EC6;BERIA ERFE SMALL LETTER MERI;Ll;0;L;;;;;N;;;16EAB;;16EAB
+ 16EC7;BERIA ERFE SMALL LETTER NINI;Ll;0;L;;;;;N;;;16EAC;;16EAC
+ 16EC8;BERIA ERFE SMALL LETTER GNA;Ll;0;L;;;;;N;;;16EAD;;16EAD
+ 16EC9;BERIA ERFE SMALL LETTER NGAY;Ll;0;L;;;;;N;;;16EAE;;16EAE
+ 16ECA;BERIA ERFE SMALL LETTER OI;Ll;0;L;;;;;N;;;16EAF;;16EAF
+ 16ECB;BERIA ERFE SMALL LETTER PI;Ll;0;L;;;;;N;;;16EB0;;16EB0
+ 16ECC;BERIA ERFE SMALL LETTER ERIGO;Ll;0;L;;;;;N;;;16EB1;;16EB1
+ 16ECD;BERIA ERFE SMALL LETTER ERIGO TAMURA;Ll;0;L;;;;;N;;;16EB2;;16EB2
+ 16ECE;BERIA ERFE SMALL LETTER SERI;Ll;0;L;;;;;N;;;16EB3;;16EB3
+ 16ECF;BERIA ERFE SMALL LETTER SHEP;Ll;0;L;;;;;N;;;16EB4;;16EB4
+ 16ED0;BERIA ERFE SMALL LETTER TATASOUE;Ll;0;L;;;;;N;;;16EB5;;16EB5
+ 16ED1;BERIA ERFE SMALL LETTER UI;Ll;0;L;;;;;N;;;16EB6;;16EB6
+ 16ED2;BERIA ERFE SMALL LETTER WASSE;Ll;0;L;;;;;N;;;16EB7;;16EB7
+ 16ED3;BERIA ERFE SMALL LETTER AY;Ll;0;L;;;;;N;;;16EB8;;16EB8
  16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
  16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
  16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 30280,30287 ****
  16FE4;KHITAN SMALL SCRIPT FILLER;Mn;0;NSM;;;;;N;;;;;
  16FF0;VIETNAMESE ALTERNATE READING MARK CA;Mc;6;L;;;;;N;;;;;
  16FF1;VIETNAMESE ALTERNATE READING MARK NHAY;Mc;6;L;;;;;N;;;;;
  17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;
! 187F7;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
  18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;;
  18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;;
  18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;;
--- 30494,30506 ----
  16FE4;KHITAN SMALL SCRIPT FILLER;Mn;0;NSM;;;;;N;;;;;
  16FF0;VIETNAMESE ALTERNATE READING MARK CA;Mc;6;L;;;;;N;;;;;
  16FF1;VIETNAMESE ALTERNATE READING MARK NHAY;Mc;6;L;;;;;N;;;;;
+ 16FF2;CHINESE SMALL SIMPLIFIED ER;Lm;0;L;;;;;N;;;;;
+ 16FF3;CHINESE SMALL TRADITIONAL ER;Lm;0;L;;;;;N;;;;;
+ 16FF4;YANGQIN SIGN SLOW ONE BEAT;Nl;0;L;;;;1;N;;;;;
+ 16FF5;YANGQIN SIGN SLOW THREE HALF BEATS;Nl;0;L;;;;3/2;N;;;;;
+ 16FF6;YANGQIN SIGN SLOW TWO BEATS;Nl;0;L;;;;2;N;;;;;
  17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;
! 187FF;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
  18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;;
  18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;;
  18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 31522,31528 ****
  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;;;;;
  1AFF1;KATAKANA LETTER MINNAN TONE-3;Lm;0;L;;;;;N;;;;;
  1AFF2;KATAKANA LETTER MINNAN TONE-4;Lm;0;L;;;;;N;;;;;
--- 31741,31862 ----
  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;;;;;
! 18D1E;<Tangut Ideograph Supplement, Last>;Lo;0;L;;;;;N;;;;;
! 18D80;TANGUT COMPONENT-769;Lo;0;L;;;;;N;;;;;
! 18D81;TANGUT COMPONENT-770;Lo;0;L;;;;;N;;;;;
! 18D82;TANGUT COMPONENT-771;Lo;0;L;;;;;N;;;;;
! 18D83;TANGUT COMPONENT-772;Lo;0;L;;;;;N;;;;;
! 18D84;TANGUT COMPONENT-773;Lo;0;L;;;;;N;;;;;
! 18D85;TANGUT COMPONENT-774;Lo;0;L;;;;;N;;;;;
! 18D86;TANGUT COMPONENT-775;Lo;0;L;;;;;N;;;;;
! 18D87;TANGUT COMPONENT-776;Lo;0;L;;;;;N;;;;;
! 18D88;TANGUT COMPONENT-777;Lo;0;L;;;;;N;;;;;
! 18D89;TANGUT COMPONENT-778;Lo;0;L;;;;;N;;;;;
! 18D8A;TANGUT COMPONENT-779;Lo;0;L;;;;;N;;;;;
! 18D8B;TANGUT COMPONENT-780;Lo;0;L;;;;;N;;;;;
! 18D8C;TANGUT COMPONENT-781;Lo;0;L;;;;;N;;;;;
! 18D8D;TANGUT COMPONENT-782;Lo;0;L;;;;;N;;;;;
! 18D8E;TANGUT COMPONENT-783;Lo;0;L;;;;;N;;;;;
! 18D8F;TANGUT COMPONENT-784;Lo;0;L;;;;;N;;;;;
! 18D90;TANGUT COMPONENT-785;Lo;0;L;;;;;N;;;;;
! 18D91;TANGUT COMPONENT-786;Lo;0;L;;;;;N;;;;;
! 18D92;TANGUT COMPONENT-787;Lo;0;L;;;;;N;;;;;
! 18D93;TANGUT COMPONENT-788;Lo;0;L;;;;;N;;;;;
! 18D94;TANGUT COMPONENT-789;Lo;0;L;;;;;N;;;;;
! 18D95;TANGUT COMPONENT-790;Lo;0;L;;;;;N;;;;;
! 18D96;TANGUT COMPONENT-791;Lo;0;L;;;;;N;;;;;
! 18D97;TANGUT COMPONENT-792;Lo;0;L;;;;;N;;;;;
! 18D98;TANGUT COMPONENT-793;Lo;0;L;;;;;N;;;;;
! 18D99;TANGUT COMPONENT-794;Lo;0;L;;;;;N;;;;;
! 18D9A;TANGUT COMPONENT-795;Lo;0;L;;;;;N;;;;;
! 18D9B;TANGUT COMPONENT-796;Lo;0;L;;;;;N;;;;;
! 18D9C;TANGUT COMPONENT-797;Lo;0;L;;;;;N;;;;;
! 18D9D;TANGUT COMPONENT-798;Lo;0;L;;;;;N;;;;;
! 18D9E;TANGUT COMPONENT-799;Lo;0;L;;;;;N;;;;;
! 18D9F;TANGUT COMPONENT-800;Lo;0;L;;;;;N;;;;;
! 18DA0;TANGUT COMPONENT-801;Lo;0;L;;;;;N;;;;;
! 18DA1;TANGUT COMPONENT-802;Lo;0;L;;;;;N;;;;;
! 18DA2;TANGUT COMPONENT-803;Lo;0;L;;;;;N;;;;;
! 18DA3;TANGUT COMPONENT-804;Lo;0;L;;;;;N;;;;;
! 18DA4;TANGUT COMPONENT-805;Lo;0;L;;;;;N;;;;;
! 18DA5;TANGUT COMPONENT-806;Lo;0;L;;;;;N;;;;;
! 18DA6;TANGUT COMPONENT-807;Lo;0;L;;;;;N;;;;;
! 18DA7;TANGUT COMPONENT-808;Lo;0;L;;;;;N;;;;;
! 18DA8;TANGUT COMPONENT-809;Lo;0;L;;;;;N;;;;;
! 18DA9;TANGUT COMPONENT-810;Lo;0;L;;;;;N;;;;;
! 18DAA;TANGUT COMPONENT-811;Lo;0;L;;;;;N;;;;;
! 18DAB;TANGUT COMPONENT-812;Lo;0;L;;;;;N;;;;;
! 18DAC;TANGUT COMPONENT-813;Lo;0;L;;;;;N;;;;;
! 18DAD;TANGUT COMPONENT-814;Lo;0;L;;;;;N;;;;;
! 18DAE;TANGUT COMPONENT-815;Lo;0;L;;;;;N;;;;;
! 18DAF;TANGUT COMPONENT-816;Lo;0;L;;;;;N;;;;;
! 18DB0;TANGUT COMPONENT-817;Lo;0;L;;;;;N;;;;;
! 18DB1;TANGUT COMPONENT-818;Lo;0;L;;;;;N;;;;;
! 18DB2;TANGUT COMPONENT-819;Lo;0;L;;;;;N;;;;;
! 18DB3;TANGUT COMPONENT-820;Lo;0;L;;;;;N;;;;;
! 18DB4;TANGUT COMPONENT-821;Lo;0;L;;;;;N;;;;;
! 18DB5;TANGUT COMPONENT-822;Lo;0;L;;;;;N;;;;;
! 18DB6;TANGUT COMPONENT-823;Lo;0;L;;;;;N;;;;;
! 18DB7;TANGUT COMPONENT-824;Lo;0;L;;;;;N;;;;;
! 18DB8;TANGUT COMPONENT-825;Lo;0;L;;;;;N;;;;;
! 18DB9;TANGUT COMPONENT-826;Lo;0;L;;;;;N;;;;;
! 18DBA;TANGUT COMPONENT-827;Lo;0;L;;;;;N;;;;;
! 18DBB;TANGUT COMPONENT-828;Lo;0;L;;;;;N;;;;;
! 18DBC;TANGUT COMPONENT-829;Lo;0;L;;;;;N;;;;;
! 18DBD;TANGUT COMPONENT-830;Lo;0;L;;;;;N;;;;;
! 18DBE;TANGUT COMPONENT-831;Lo;0;L;;;;;N;;;;;
! 18DBF;TANGUT COMPONENT-832;Lo;0;L;;;;;N;;;;;
! 18DC0;TANGUT COMPONENT-833;Lo;0;L;;;;;N;;;;;
! 18DC1;TANGUT COMPONENT-834;Lo;0;L;;;;;N;;;;;
! 18DC2;TANGUT COMPONENT-835;Lo;0;L;;;;;N;;;;;
! 18DC3;TANGUT COMPONENT-836;Lo;0;L;;;;;N;;;;;
! 18DC4;TANGUT COMPONENT-837;Lo;0;L;;;;;N;;;;;
! 18DC5;TANGUT COMPONENT-838;Lo;0;L;;;;;N;;;;;
! 18DC6;TANGUT COMPONENT-839;Lo;0;L;;;;;N;;;;;
! 18DC7;TANGUT COMPONENT-840;Lo;0;L;;;;;N;;;;;
! 18DC8;TANGUT COMPONENT-841;Lo;0;L;;;;;N;;;;;
! 18DC9;TANGUT COMPONENT-842;Lo;0;L;;;;;N;;;;;
! 18DCA;TANGUT COMPONENT-843;Lo;0;L;;;;;N;;;;;
! 18DCB;TANGUT COMPONENT-844;Lo;0;L;;;;;N;;;;;
! 18DCC;TANGUT COMPONENT-845;Lo;0;L;;;;;N;;;;;
! 18DCD;TANGUT COMPONENT-846;Lo;0;L;;;;;N;;;;;
! 18DCE;TANGUT COMPONENT-847;Lo;0;L;;;;;N;;;;;
! 18DCF;TANGUT COMPONENT-848;Lo;0;L;;;;;N;;;;;
! 18DD0;TANGUT COMPONENT-849;Lo;0;L;;;;;N;;;;;
! 18DD1;TANGUT COMPONENT-850;Lo;0;L;;;;;N;;;;;
! 18DD2;TANGUT COMPONENT-851;Lo;0;L;;;;;N;;;;;
! 18DD3;TANGUT COMPONENT-852;Lo;0;L;;;;;N;;;;;
! 18DD4;TANGUT COMPONENT-853;Lo;0;L;;;;;N;;;;;
! 18DD5;TANGUT COMPONENT-854;Lo;0;L;;;;;N;;;;;
! 18DD6;TANGUT COMPONENT-855;Lo;0;L;;;;;N;;;;;
! 18DD7;TANGUT COMPONENT-856;Lo;0;L;;;;;N;;;;;
! 18DD8;TANGUT COMPONENT-857;Lo;0;L;;;;;N;;;;;
! 18DD9;TANGUT COMPONENT-858;Lo;0;L;;;;;N;;;;;
! 18DDA;TANGUT COMPONENT-859;Lo;0;L;;;;;N;;;;;
! 18DDB;TANGUT COMPONENT-860;Lo;0;L;;;;;N;;;;;
! 18DDC;TANGUT COMPONENT-861;Lo;0;L;;;;;N;;;;;
! 18DDD;TANGUT COMPONENT-862;Lo;0;L;;;;;N;;;;;
! 18DDE;TANGUT COMPONENT-863;Lo;0;L;;;;;N;;;;;
! 18DDF;TANGUT COMPONENT-864;Lo;0;L;;;;;N;;;;;
! 18DE0;TANGUT COMPONENT-865;Lo;0;L;;;;;N;;;;;
! 18DE1;TANGUT COMPONENT-866;Lo;0;L;;;;;N;;;;;
! 18DE2;TANGUT COMPONENT-867;Lo;0;L;;;;;N;;;;;
! 18DE3;TANGUT COMPONENT-868;Lo;0;L;;;;;N;;;;;
! 18DE4;TANGUT COMPONENT-869;Lo;0;L;;;;;N;;;;;
! 18DE5;TANGUT COMPONENT-870;Lo;0;L;;;;;N;;;;;
! 18DE6;TANGUT COMPONENT-871;Lo;0;L;;;;;N;;;;;
! 18DE7;TANGUT COMPONENT-872;Lo;0;L;;;;;N;;;;;
! 18DE8;TANGUT COMPONENT-873;Lo;0;L;;;;;N;;;;;
! 18DE9;TANGUT COMPONENT-874;Lo;0;L;;;;;N;;;;;
! 18DEA;TANGUT COMPONENT-875;Lo;0;L;;;;;N;;;;;
! 18DEB;TANGUT COMPONENT-876;Lo;0;L;;;;;N;;;;;
! 18DEC;TANGUT COMPONENT-877;Lo;0;L;;;;;N;;;;;
! 18DED;TANGUT COMPONENT-878;Lo;0;L;;;;;N;;;;;
! 18DEE;TANGUT COMPONENT-879;Lo;0;L;;;;;N;;;;;
! 18DEF;TANGUT COMPONENT-880;Lo;0;L;;;;;N;;;;;
! 18DF0;TANGUT COMPONENT-881;Lo;0;L;;;;;N;;;;;
! 18DF1;TANGUT COMPONENT-882;Lo;0;L;;;;;N;;;;;
! 18DF2;TANGUT COMPONENT-883;Lo;0;L;;;;;N;;;;;
  1AFF0;KATAKANA LETTER MINNAN TONE-2;Lm;0;L;;;;;N;;;;;
  1AFF1;KATAKANA LETTER MINNAN TONE-3;Lm;0;L;;;;;N;;;;;
  1AFF2;KATAKANA LETTER MINNAN TONE-4;Lm;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 32629,32634 ****
--- 32963,32971 ----
  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;;;;;
+ 1CCFA;SNAKE SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CCFB;FLYING SAUCER SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CCFC;NOSE SYMBOL;So;0;ON;;;;;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;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 33065,33070 ****
--- 33402,33447 ----
  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;;;;;
+ 1CEBA;FRAGILE SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEBB;OFFICE BUILDING SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEBC;TREE SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEBD;APPLE SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEBE;CHERRY SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEBF;STRAWBERRY SYMBOL;So;0;ON;;;;;N;;;;;
+ 1CEC0;HEBE;So;0;ON;;;;;N;;;;;
+ 1CEC1;IRIS;So;0;ON;;;;;N;;;;;
+ 1CEC2;FLORA;So;0;ON;;;;;N;;;;;
+ 1CEC3;METIS;So;0;ON;;;;;N;;;;;
+ 1CEC4;PARTHENOPE;So;0;ON;;;;;N;;;;;
+ 1CEC5;VICTORIA;So;0;ON;;;;;N;;;;;
+ 1CEC6;EGERIA;So;0;ON;;;;;N;;;;;
+ 1CEC7;IRENE;So;0;ON;;;;;N;;;;;
+ 1CEC8;EUNOMIA;So;0;ON;;;;;N;;;;;
+ 1CEC9;PSYCHE;So;0;ON;;;;;N;;;;;
+ 1CECA;THETIS;So;0;ON;;;;;N;;;;;
+ 1CECB;MELPOMENE;So;0;ON;;;;;N;;;;;
+ 1CECC;FORTUNA;So;0;ON;;;;;N;;;;;
+ 1CECD;ASTRONOMICAL SYMBOL FOR ASTEROID PROSERPINA;So;0;ON;;;;;N;;;;;
+ 1CECE;BELLONA;So;0;ON;;;;;N;;;;;
+ 1CECF;AMPHITRITE;So;0;ON;;;;;N;;;;;
+ 1CED0;LEUKOTHEA;So;0;ON;;;;;N;;;;;
+ 1CEE0;GEOMANTIC FIGURE POPULUS;So;0;ON;;;;;N;;;;;
+ 1CEE1;GEOMANTIC FIGURE TRISTITIA;So;0;ON;;;;;N;;;;;
+ 1CEE2;GEOMANTIC FIGURE ALBUS;So;0;ON;;;;;N;;;;;
+ 1CEE3;GEOMANTIC FIGURE FORTUNA MAJOR;So;0;ON;;;;;N;;;;;
+ 1CEE4;GEOMANTIC FIGURE RUBEUS;So;0;ON;;;;;N;;;;;
+ 1CEE5;GEOMANTIC FIGURE ACQUISITIO;So;0;ON;;;;;N;;;;;
+ 1CEE6;GEOMANTIC FIGURE CONJUNCTIO;So;0;ON;;;;;N;;;;;
+ 1CEE7;GEOMANTIC FIGURE CAPUT DRACONIS;So;0;ON;;;;;N;;;;;
+ 1CEE8;GEOMANTIC FIGURE LAETITIA;So;0;ON;;;;;N;;;;;
+ 1CEE9;GEOMANTIC FIGURE CARCER;So;0;ON;;;;;N;;;;;
+ 1CEEA;GEOMANTIC FIGURE AMISSIO;So;0;ON;;;;;N;;;;;
+ 1CEEB;GEOMANTIC FIGURE PUELLA;So;0;ON;;;;;N;;;;;
+ 1CEEC;GEOMANTIC FIGURE FORTUNA MINOR;So;0;ON;;;;;N;;;;;
+ 1CEED;GEOMANTIC FIGURE PUER;So;0;ON;;;;;N;;;;;
+ 1CEEE;GEOMANTIC FIGURE CAUDA DRACONIS;So;0;ON;;;;;N;;;;;
+ 1CEEF;GEOMANTIC FIGURE VIA;So;0;ON;;;;;N;;;;;
+ 1CEF0;MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR;Sm;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
*** 36004,36009 ****
--- 36381,36441 ----
  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;;;;;
+ 1E6C0;TAI YO LETTER LOW KO;Lo;0;L;;;;;N;;;;;
+ 1E6C1;TAI YO LETTER HIGH KO;Lo;0;L;;;;;N;;;;;
+ 1E6C2;TAI YO LETTER LOW KHO;Lo;0;L;;;;;N;;;;;
+ 1E6C3;TAI YO LETTER HIGH KHO;Lo;0;L;;;;;N;;;;;
+ 1E6C4;TAI YO LETTER GO;Lo;0;L;;;;;N;;;;;
+ 1E6C5;TAI YO LETTER NGO;Lo;0;L;;;;;N;;;;;
+ 1E6C6;TAI YO LETTER CO;Lo;0;L;;;;;N;;;;;
+ 1E6C7;TAI YO LETTER LOW XO;Lo;0;L;;;;;N;;;;;
+ 1E6C8;TAI YO LETTER HIGH XO;Lo;0;L;;;;;N;;;;;
+ 1E6C9;TAI YO LETTER LOW NYO;Lo;0;L;;;;;N;;;;;
+ 1E6CA;TAI YO LETTER HIGH NYO;Lo;0;L;;;;;N;;;;;
+ 1E6CB;TAI YO LETTER DO;Lo;0;L;;;;;N;;;;;
+ 1E6CC;TAI YO LETTER LOW TO;Lo;0;L;;;;;N;;;;;
+ 1E6CD;TAI YO LETTER HIGH TO;Lo;0;L;;;;;N;;;;;
+ 1E6CE;TAI YO LETTER THO;Lo;0;L;;;;;N;;;;;
+ 1E6CF;TAI YO LETTER NO;Lo;0;L;;;;;N;;;;;
+ 1E6D0;TAI YO LETTER BO;Lo;0;L;;;;;N;;;;;
+ 1E6D1;TAI YO LETTER LOW PO;Lo;0;L;;;;;N;;;;;
+ 1E6D2;TAI YO LETTER HIGH PO;Lo;0;L;;;;;N;;;;;
+ 1E6D3;TAI YO LETTER PHO;Lo;0;L;;;;;N;;;;;
+ 1E6D4;TAI YO LETTER LOW FO;Lo;0;L;;;;;N;;;;;
+ 1E6D5;TAI YO LETTER HIGH FO;Lo;0;L;;;;;N;;;;;
+ 1E6D6;TAI YO LETTER MO;Lo;0;L;;;;;N;;;;;
+ 1E6D7;TAI YO LETTER YO;Lo;0;L;;;;;N;;;;;
+ 1E6D8;TAI YO LETTER LO;Lo;0;L;;;;;N;;;;;
+ 1E6D9;TAI YO LETTER VO;Lo;0;L;;;;;N;;;;;
+ 1E6DA;TAI YO LETTER LOW HO;Lo;0;L;;;;;N;;;;;
+ 1E6DB;TAI YO LETTER HIGH HO;Lo;0;L;;;;;N;;;;;
+ 1E6DC;TAI YO LETTER QO;Lo;0;L;;;;;N;;;;;
+ 1E6DD;TAI YO LETTER LOW KVO;Lo;0;L;;;;;N;;;;;
+ 1E6DE;TAI YO LETTER HIGH KVO;Lo;0;L;;;;;N;;;;;
+ 1E6E0;TAI YO LETTER AA;Lo;0;L;;;;;N;;;;;
+ 1E6E1;TAI YO LETTER I;Lo;0;L;;;;;N;;;;;
+ 1E6E2;TAI YO LETTER UE;Lo;0;L;;;;;N;;;;;
+ 1E6E3;TAI YO SIGN UE;Mn;230;NSM;;;;;N;;;;;
+ 1E6E4;TAI YO LETTER U;Lo;0;L;;;;;N;;;;;
+ 1E6E5;TAI YO LETTER AE;Lo;0;L;;;;;N;;;;;
+ 1E6E6;TAI YO SIGN AU;Mn;230;NSM;;;;;N;;;;;
+ 1E6E7;TAI YO LETTER O;Lo;0;L;;;;;N;;;;;
+ 1E6E8;TAI YO LETTER E;Lo;0;L;;;;;N;;;;;
+ 1E6E9;TAI YO LETTER IA;Lo;0;L;;;;;N;;;;;
+ 1E6EA;TAI YO LETTER UEA;Lo;0;L;;;;;N;;;;;
+ 1E6EB;TAI YO LETTER UA;Lo;0;L;;;;;N;;;;;
+ 1E6EC;TAI YO LETTER OO;Lo;0;L;;;;;N;;;;;
+ 1E6ED;TAI YO LETTER AUE;Lo;0;L;;;;;N;;;;;
+ 1E6EE;TAI YO SIGN AY;Mn;230;NSM;;;;;N;;;;;
+ 1E6EF;TAI YO SIGN ANG;Mn;230;NSM;;;;;N;;;;;
+ 1E6F0;TAI YO LETTER AN;Lo;0;L;;;;;N;;;;;
+ 1E6F1;TAI YO LETTER AM;Lo;0;L;;;;;N;;;;;
+ 1E6F2;TAI YO LETTER AK;Lo;0;L;;;;;N;;;;;
+ 1E6F3;TAI YO LETTER AT;Lo;0;L;;;;;N;;;;;
+ 1E6F4;TAI YO LETTER AP;Lo;0;L;;;;;N;;;;;
+ 1E6F5;TAI YO SIGN OM;Mn;230;NSM;;;;;N;;;;;
+ 1E6FE;TAI YO SYMBOL MUEANG;Lo;0;L;;;;;N;;;;;
+ 1E6FF;TAI YO XAM LAI;Lm;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
*** 38079,38084 ****
--- 38511,38517 ----
  1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
  1F6D6;HUT;So;0;ON;;;;;N;;;;;
  1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
+ 1F6D8;LANDSLIDE;So;0;ON;;;;;N;;;;;
  1F6DC;WIRELESS;So;0;ON;;;;;N;;;;;
  1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;;
  1F6DE;WHEEL;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 38228,38233 ****
--- 38661,38670 ----
  1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;;
  1F775;OCCULTATION;So;0;ON;;;;;N;;;;;
  1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;;
+ 1F777;VESTA FORM TWO;So;0;ON;;;;;N;;;;;
+ 1F778;ASTRAEA FORM TWO;So;0;ON;;;;;N;;;;;
+ 1F779;HYGIEA FORM TWO;So;0;ON;;;;;N;;;;;
+ 1F77A;PARTHENOPE FORM TWO;So;0;ON;;;;;N;;;;;
  1F77B;HAUMEA;So;0;ON;;;;;N;;;;;
  1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;;
  1F77D;GONGGONG;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 38498,38503 ****
--- 38935,38949 ----
  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;;;;;
+ 1F8D0;LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
+ 1F8D1;LONG RIGHTWARDS HARPOON OVER LONG LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;;
+ 1F8D2;LONG RIGHTWARDS HARPOON ABOVE SHORT LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;;
+ 1F8D3;SHORT RIGHTWARDS HARPOON ABOVE LONG LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;;
+ 1F8D4;LONG LEFTWARDS HARPOON ABOVE SHORT RIGHTWARDS HARPOON;Sm;0;ON;;;;;N;;;;;
+ 1F8D5;SHORT LEFTWARDS HARPOON ABOVE LONG RIGHTWARDS HARPOON;Sm;0;ON;;;;;N;;;;;
+ 1F8D6;LONG RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
+ 1F8D7;LONG RIGHTWARDS ARROW WITH DOUBLE SLASH;Sm;0;ON;;;;;N;;;;;
+ 1F8D8;LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE;Sm;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
*** 38838,38843 ****
--- 39284,39293 ----
  1FA51;BLACK CHESS KNIGHT-QUEEN;So;0;ON;;;;;N;;;;;
  1FA52;BLACK CHESS KNIGHT-ROOK;So;0;ON;;;;;N;;;;;
  1FA53;BLACK CHESS KNIGHT-BISHOP;So;0;ON;;;;;N;;;;;
+ 1FA54;WHITE CHESS FERZ;So;0;ON;;;;;N;;;;;
+ 1FA55;WHITE CHESS ALFIL;So;0;ON;;;;;N;;;;;
+ 1FA56;BLACK CHESS FERZ;So;0;ON;;;;;N;;;;;
+ 1FA57;BLACK CHESS ALFIL;So;0;ON;;;;;N;;;;;
  1FA60;XIANGQI RED GENERAL;So;0;ON;;;;;N;;;;;
  1FA61;XIANGQI RED MANDARIN;So;0;ON;;;;;N;;;;;
  1FA62;XIANGQI RED ELEPHANT;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 38875,38880 ****
--- 39325,39332 ----
  1FA87;MARACAS;So;0;ON;;;;;N;;;;;
  1FA88;FLUTE;So;0;ON;;;;;N;;;;;
  1FA89;HARP;So;0;ON;;;;;N;;;;;
+ 1FA8A;TROMBONE;So;0;ON;;;;;N;;;;;
+ 1FA8E;TREASURE CHEST;So;0;ON;;;;;N;;;;;
  1FA8F;SHOVEL;So;0;ON;;;;;N;;;;;
  1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
  1FA91;CHAIR;So;0;ON;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 38931,38936 ****
--- 39383,39390 ----
  1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;;
  1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;;
  1FAC6;FINGERPRINT;So;0;ON;;;;;N;;;;;
+ 1FAC8;HAIRY CREATURE;So;0;ON;;;;;N;;;;;
+ 1FACD;ORCA;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
*** 38957,38962 ****
--- 39411,39418 ----
  1FAE7;BUBBLES;So;0;ON;;;;;N;;;;;
  1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;;
  1FAE9;FACE WITH BAGS UNDER EYES;So;0;ON;;;;;N;;;;;
+ 1FAEA;DISTORTED FACE;So;0;ON;;;;;N;;;;;
+ 1FAEF;FIGHT CLOUD;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
*** 39215,39228 ****
  1FBF7;SEGMENTED DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
  1FBF8;SEGMENTED DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
  1FBF9;SEGMENTED DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
  20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
  2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
  2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
! 2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
  2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
  2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
  2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;;
! 2CEA1;<CJK Ideograph Extension E, Last>;Lo;0;L;;;;;N;;;;;
  2CEB0;<CJK Ideograph Extension F, First>;Lo;0;L;;;;;N;;;;;
  2EBE0;<CJK Ideograph Extension F, Last>;Lo;0;L;;;;;N;;;;;
  2EBF0;<CJK Ideograph Extension I, First>;Lo;0;L;;;;;N;;;;;
--- 39671,39685 ----
  1FBF7;SEGMENTED DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
  1FBF8;SEGMENTED DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
  1FBF9;SEGMENTED DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+ 1FBFA;ALARM BELL SYMBOL;So;0;ON;;;;;N;;;;;
  20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
  2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
  2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
! 2B73F;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
  2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
  2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
  2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;;
! 2CEAD;<CJK Ideograph Extension E, Last>;Lo;0;L;;;;;N;;;;;
  2CEB0;<CJK Ideograph Extension F, First>;Lo;0;L;;;;;N;;;;;
  2EBE0;<CJK Ideograph Extension F, Last>;Lo;0;L;;;;;N;;;;;
  2EBF0;<CJK Ideograph Extension I, First>;Lo;0;L;;;;;N;;;;;
*************** FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N
*** 39773,39778 ****
--- 40230,40237 ----
  3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;;
  31350;<CJK Ideograph Extension H, First>;Lo;0;L;;;;;N;;;;;
  323AF;<CJK Ideograph Extension H, Last>;Lo;0;L;;;;;N;;;;;
+ 323B0;<CJK Ideograph Extension J, First>;Lo;0;L;;;;;N;;;;;
+ 33479;<CJK Ideograph Extension J, Last>;Lo;0;L;;;;;N;;;;;
  E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
  E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
  E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
diff -Nrcpad gcc-15.2.0/contrib/unicode/emoji-data.txt gcc-16.1.0-RC-20260423/contrib/unicode/emoji-data.txt
*** gcc-15.2.0/contrib/unicode/emoji-data.txt	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/emoji-data.txt	Thu Apr 23 11:07:32 2026
***************
*** 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
  #
--- 1,11 ----
  # emoji-data.txt
! # Date: 2025-07-25, 17:54:31 GMT
! # © 2025 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
! # Version: 17.0
  #
  # For documentation and usage, see https://www.unicode.org/reports/tr51
  #
***************
*** 340,345 ****
--- 340,346 ----
  1F6D1..1F6D2  ; Emoji                # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
  1F6D5         ; Emoji                # E12.0  [1] (🛕)       hindu temple
  1F6D6..1F6D7  ; Emoji                # E13.0  [2] (🛖..🛗)    hut..elevator
+ 1F6D8         ; Emoji                # E17.0  [1] (🛘)       landslide
  1F6DC         ; Emoji                # E15.0  [1] (🛜)       wireless
  1F6DD..1F6DF  ; Emoji                # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
  1F6E0..1F6E5  ; Emoji                # E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
***************
*** 408,413 ****
--- 409,416 ----
  1FA83..1FA86  ; Emoji                # E13.0  [4] (🪃..🪆)    boomerang..nesting dolls
  1FA87..1FA88  ; Emoji                # E15.0  [2] (🪇..🪈)    maracas..flute
  1FA89         ; Emoji                # E16.0  [1] (🪉)       harp
+ 1FA8A         ; Emoji                # E17.0  [1] (🪊)       trombone
+ 1FA8E         ; Emoji                # E17.0  [1] (🪎)       treasure chest
  1FA8F         ; Emoji                # E16.0  [1] (🪏)       shovel
  1FA90..1FA95  ; Emoji                # E12.0  [6] (🪐..🪕)    ringed planet..banjo
  1FA96..1FAA8  ; Emoji                # E13.0 [19] (🪖..🪨)    military helmet..rock
***************
*** 421,426 ****
--- 424,431 ----
  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
+ 1FAC8         ; Emoji                # E17.0  [1] (🫈)       hairy creature
+ 1FACD         ; Emoji                # E17.0  [1] (🫍)       orca
  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
***************
*** 430,439 ****
  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
  
  # ================================================
  
--- 435,446 ----
  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
+ 1FAEA         ; Emoji                # E17.0  [1] (🫪)       distorted face
+ 1FAEF         ; Emoji                # E17.0  [1] (🫯)       fight cloud
  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: 1438
  
  # ================================================
  
***************
*** 640,645 ****
--- 647,653 ----
  1F6D1..1F6D2  ; Emoji_Presentation   # E3.0   [2] (🛑..🛒)    stop sign..shopping cart
  1F6D5         ; Emoji_Presentation   # E12.0  [1] (🛕)       hindu temple
  1F6D6..1F6D7  ; Emoji_Presentation   # E13.0  [2] (🛖..🛗)    hut..elevator
+ 1F6D8         ; Emoji_Presentation   # E17.0  [1] (🛘)       landslide
  1F6DC         ; Emoji_Presentation   # E15.0  [1] (🛜)       wireless
  1F6DD..1F6DF  ; Emoji_Presentation   # E14.0  [3] (🛝..🛟)    playground slide..ring buoy
  1F6EB..1F6EC  ; Emoji_Presentation   # E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
***************
*** 704,709 ****
--- 712,719 ----
  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
+ 1FA8A         ; Emoji_Presentation   # E17.0  [1] (🪊)       trombone
+ 1FA8E         ; Emoji_Presentation   # E17.0  [1] (🪎)       treasure chest
  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
***************
*** 717,722 ****
--- 727,734 ----
  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
+ 1FAC8         ; Emoji_Presentation   # E17.0  [1] (🫈)       hairy creature
+ 1FACD         ; Emoji_Presentation   # E17.0  [1] (🫍)       orca
  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
***************
*** 726,735 ****
  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
  
  # ================================================
  
--- 738,749 ----
  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
+ 1FAEA         ; Emoji_Presentation   # E17.0  [1] (🫪)       distorted face
+ 1FAEF         ; Emoji_Presentation   # E17.0  [1] (🫯)       fight cloud
  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: 1219
  
  # ================================================
  
*************** E0020..E007F  ; Emoji_Component      # E
*** 827,833 ****
  21A9..21AA    ; Extended_Pictographic# E0.6   [2] (↩️..↪️)    right arrow curving left..left arrow curving right
  231A..231B    ; Extended_Pictographic# E0.6   [2] (⌚..⌛)    watch..hourglass done
  2328          ; Extended_Pictographic# E1.0   [1] (⌨️)       keyboard
- 2388          ; Extended_Pictographic# E0.0   [1] (⎈)       HELM SYMBOL
  23CF          ; Extended_Pictographic# E1.0   [1] (⏏️)       eject button
  23E9..23EC    ; Extended_Pictographic# E0.6   [4] (⏩..⏬)    fast-forward button..fast down button
  23ED..23EE    ; Extended_Pictographic# E0.7   [2] (⏭️..⏮️)    next track button..last track button
--- 841,846 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 844,949 ****
  2600..2601    ; Extended_Pictographic# E0.6   [2] (☀️..☁️)    sun..cloud
  2602..2603    ; Extended_Pictographic# E0.7   [2] (☂️..☃️)    umbrella..snowman
  2604          ; Extended_Pictographic# E1.0   [1] (☄️)       comet
- 2605          ; Extended_Pictographic# E0.0   [1] (★)       BLACK STAR
- 2607..260D    ; Extended_Pictographic# E0.0   [7] (☇..☍)    LIGHTNING..OPPOSITION
  260E          ; Extended_Pictographic# E0.6   [1] (☎️)       telephone
- 260F..2610    ; Extended_Pictographic# E0.0   [2] (☏..☐)    WHITE TELEPHONE..BALLOT BOX
  2611          ; Extended_Pictographic# E0.6   [1] (☑️)       check box with check
- 2612          ; Extended_Pictographic# E0.0   [1] (☒)       BALLOT BOX WITH X
  2614..2615    ; Extended_Pictographic# E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage
- 2616..2617    ; Extended_Pictographic# E0.0   [2] (☖..☗)    WHITE SHOGI PIECE..BLACK SHOGI PIECE
  2618          ; Extended_Pictographic# E1.0   [1] (☘️)       shamrock
- 2619..261C    ; Extended_Pictographic# E0.0   [4] (☙..☜)    REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX
  261D          ; Extended_Pictographic# E0.6   [1] (☝️)       index pointing up
- 261E..261F    ; Extended_Pictographic# E0.0   [2] (☞..☟)    WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
  2620          ; Extended_Pictographic# E1.0   [1] (☠️)       skull and crossbones
- 2621          ; Extended_Pictographic# E0.0   [1] (☡)       CAUTION SIGN
  2622..2623    ; Extended_Pictographic# E1.0   [2] (☢️..☣️)    radioactive..biohazard
- 2624..2625    ; Extended_Pictographic# E0.0   [2] (☤..☥)    CADUCEUS..ANKH
  2626          ; Extended_Pictographic# E1.0   [1] (☦️)       orthodox cross
- 2627..2629    ; Extended_Pictographic# E0.0   [3] (☧..☩)    CHI RHO..CROSS OF JERUSALEM
  262A          ; Extended_Pictographic# E0.7   [1] (☪️)       star and crescent
- 262B..262D    ; Extended_Pictographic# E0.0   [3] (☫..☭)    FARSI SYMBOL..HAMMER AND SICKLE
  262E          ; Extended_Pictographic# E1.0   [1] (☮️)       peace symbol
  262F          ; Extended_Pictographic# E0.7   [1] (☯️)       yin yang
- 2630..2637    ; Extended_Pictographic# E0.0   [8] (☰..☷)    TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH
  2638..2639    ; Extended_Pictographic# E0.7   [2] (☸️..☹️)    wheel of dharma..frowning face
  263A          ; Extended_Pictographic# E0.6   [1] (☺️)       smiling face
- 263B..263F    ; Extended_Pictographic# E0.0   [5] (☻..☿)    BLACK SMILING FACE..MERCURY
  2640          ; Extended_Pictographic# E4.0   [1] (♀️)       female sign
- 2641          ; Extended_Pictographic# E0.0   [1] (♁)       EARTH
  2642          ; Extended_Pictographic# E4.0   [1] (♂️)       male sign
- 2643..2647    ; Extended_Pictographic# E0.0   [5] (♃..♇)    JUPITER..PLUTO
  2648..2653    ; Extended_Pictographic# E0.6  [12] (♈..♓)    Aries..Pisces
- 2654..265E    ; Extended_Pictographic# E0.0  [11] (♔..♞)    WHITE CHESS KING..BLACK CHESS KNIGHT
  265F          ; Extended_Pictographic# E11.0  [1] (♟️)       chess pawn
  2660          ; Extended_Pictographic# E0.6   [1] (♠️)       spade suit
- 2661..2662    ; Extended_Pictographic# E0.0   [2] (♡..♢)    WHITE HEART SUIT..WHITE DIAMOND SUIT
  2663          ; Extended_Pictographic# E0.6   [1] (♣️)       club suit
- 2664          ; Extended_Pictographic# E0.0   [1] (♤)       WHITE SPADE SUIT
  2665..2666    ; Extended_Pictographic# E0.6   [2] (♥️..♦️)    heart suit..diamond suit
- 2667          ; Extended_Pictographic# E0.0   [1] (♧)       WHITE CLUB SUIT
  2668          ; Extended_Pictographic# E0.6   [1] (♨️)       hot springs
- 2669..267A    ; Extended_Pictographic# E0.0  [18] (♩..♺)    QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS
  267B          ; Extended_Pictographic# E0.6   [1] (♻️)       recycling symbol
- 267C..267D    ; Extended_Pictographic# E0.0   [2] (♼..♽)    RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
  267E          ; Extended_Pictographic# E11.0  [1] (♾️)       infinity
  267F          ; Extended_Pictographic# E0.6   [1] (♿)       wheelchair symbol
- 2680..2685    ; Extended_Pictographic# E0.0   [6] (⚀..⚅)    DIE FACE-1..DIE FACE-6
- 2690..2691    ; Extended_Pictographic# E0.0   [2] (⚐..⚑)    WHITE FLAG..BLACK FLAG
  2692          ; Extended_Pictographic# E1.0   [1] (⚒️)       hammer and pick
  2693          ; Extended_Pictographic# E0.6   [1] (⚓)       anchor
  2694          ; Extended_Pictographic# E1.0   [1] (⚔️)       crossed swords
  2695          ; Extended_Pictographic# E4.0   [1] (⚕️)       medical symbol
  2696..2697    ; Extended_Pictographic# E1.0   [2] (⚖️..⚗️)    balance scale..alembic
- 2698          ; Extended_Pictographic# E0.0   [1] (⚘)       FLOWER
  2699          ; Extended_Pictographic# E1.0   [1] (⚙️)       gear
- 269A          ; Extended_Pictographic# E0.0   [1] (⚚)       STAFF OF HERMES
  269B..269C    ; Extended_Pictographic# E1.0   [2] (⚛️..⚜️)    atom symbol..fleur-de-lis
- 269D..269F    ; Extended_Pictographic# E0.0   [3] (⚝..⚟)    OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT
  26A0..26A1    ; Extended_Pictographic# E0.6   [2] (⚠️..⚡)    warning..high voltage
- 26A2..26A6    ; Extended_Pictographic# E0.0   [5] (⚢..⚦)    DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN
  26A7          ; Extended_Pictographic# E13.0  [1] (⚧️)       transgender symbol
- 26A8..26A9    ; Extended_Pictographic# E0.0   [2] (⚨..⚩)    VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN
  26AA..26AB    ; Extended_Pictographic# E0.6   [2] (⚪..⚫)    white circle..black circle
- 26AC..26AF    ; Extended_Pictographic# E0.0   [4] (⚬..⚯)    MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL
  26B0..26B1    ; Extended_Pictographic# E1.0   [2] (⚰️..⚱️)    coffin..funeral urn
- 26B2..26BC    ; Extended_Pictographic# E0.0  [11] (⚲..⚼)    NEUTER..SESQUIQUADRATE
  26BD..26BE    ; Extended_Pictographic# E0.6   [2] (⚽..⚾)    soccer ball..baseball
- 26BF..26C3    ; Extended_Pictographic# E0.0   [5] (⚿..⛃)    SQUARED KEY..BLACK DRAUGHTS KING
  26C4..26C5    ; Extended_Pictographic# E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud
- 26C6..26C7    ; Extended_Pictographic# E0.0   [2] (⛆..⛇)    RAIN..BLACK SNOWMAN
  26C8          ; Extended_Pictographic# E0.7   [1] (⛈️)       cloud with lightning and rain
- 26C9..26CD    ; Extended_Pictographic# E0.0   [5] (⛉..⛍)    TURNED WHITE SHOGI PIECE..DISABLED CAR
  26CE          ; Extended_Pictographic# E0.6   [1] (⛎)       Ophiuchus
  26CF          ; Extended_Pictographic# E0.7   [1] (⛏️)       pick
- 26D0          ; Extended_Pictographic# E0.0   [1] (⛐)       CAR SLIDING
  26D1          ; Extended_Pictographic# E0.7   [1] (⛑️)       rescue worker’s helmet
- 26D2          ; Extended_Pictographic# E0.0   [1] (⛒)       CIRCLED CROSSING LANES
  26D3          ; Extended_Pictographic# E0.7   [1] (⛓️)       chains
  26D4          ; Extended_Pictographic# E0.6   [1] (⛔)       no entry
- 26D5..26E8    ; Extended_Pictographic# E0.0  [20] (⛕..⛨)    ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD
  26E9          ; Extended_Pictographic# E0.7   [1] (⛩️)       shinto shrine
  26EA          ; Extended_Pictographic# E0.6   [1] (⛪)       church
- 26EB..26EF    ; Extended_Pictographic# E0.0   [5] (⛫..⛯)    CASTLE..MAP SYMBOL FOR LIGHTHOUSE
  26F0..26F1    ; Extended_Pictographic# E0.7   [2] (⛰️..⛱️)    mountain..umbrella on ground
  26F2..26F3    ; Extended_Pictographic# E0.6   [2] (⛲..⛳)    fountain..flag in hole
  26F4          ; Extended_Pictographic# E0.7   [1] (⛴️)       ferry
  26F5          ; Extended_Pictographic# E0.6   [1] (⛵)       sailboat
- 26F6          ; Extended_Pictographic# E0.0   [1] (⛶)       SQUARE FOUR CORNERS
  26F7..26F9    ; Extended_Pictographic# E0.7   [3] (⛷️..⛹️)    skier..person bouncing ball
  26FA          ; Extended_Pictographic# E0.6   [1] (⛺)       tent
- 26FB..26FC    ; Extended_Pictographic# E0.0   [2] (⛻..⛼)    JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
  26FD          ; Extended_Pictographic# E0.6   [1] (⛽)       fuel pump
- 26FE..2701    ; Extended_Pictographic# E0.0   [4] (⛾..✁)    CUP ON BLACK SQUARE..UPPER BLADE SCISSORS
  2702          ; Extended_Pictographic# E0.6   [1] (✂️)       scissors
- 2703..2704    ; Extended_Pictographic# E0.0   [2] (✃..✄)    LOWER BLADE SCISSORS..WHITE SCISSORS
  2705          ; Extended_Pictographic# E0.6   [1] (✅)       check mark button
  2708..270C    ; Extended_Pictographic# E0.6   [5] (✈️..✌️)    airplane..victory hand
  270D          ; Extended_Pictographic# E0.7   [1] (✍️)       writing hand
- 270E          ; Extended_Pictographic# E0.0   [1] (✎)       LOWER RIGHT PENCIL
  270F          ; Extended_Pictographic# E0.6   [1] (✏️)       pencil
- 2710..2711    ; Extended_Pictographic# E0.0   [2] (✐..✑)    UPPER RIGHT PENCIL..WHITE NIB
  2712          ; Extended_Pictographic# E0.6   [1] (✒️)       black nib
  2714          ; Extended_Pictographic# E0.6   [1] (✔️)       check mark
  2716          ; Extended_Pictographic# E0.6   [1] (✖️)       multiply
--- 857,919 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 959,965 ****
  2757          ; Extended_Pictographic# E0.6   [1] (❗)       red exclamation mark
  2763          ; Extended_Pictographic# E1.0   [1] (❣️)       heart exclamation
  2764          ; Extended_Pictographic# E0.6   [1] (❤️)       red heart
- 2765..2767    ; Extended_Pictographic# E0.0   [3] (❥..❧)    ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
  2795..2797    ; Extended_Pictographic# E0.6   [3] (➕..➗)    plus..divide
  27A1          ; Extended_Pictographic# E0.6   [1] (➡️)       right arrow
  27B0          ; Extended_Pictographic# E0.6   [1] (➰)       curly loop
--- 929,934 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 973,991 ****
  303D          ; Extended_Pictographic# E0.6   [1] (〽️)       part alternation mark
  3297          ; Extended_Pictographic# E0.6   [1] (㊗️)       Japanese “congratulations” button
  3299          ; Extended_Pictographic# E0.6   [1] (㊙️)       Japanese “secret” button
- 1F000..1F003  ; Extended_Pictographic# E0.0   [4] (🀀..🀃)    MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
  1F004         ; Extended_Pictographic# E0.6   [1] (🀄)       mahjong red dragon
! 1F005..1F0CE  ; Extended_Pictographic# E0.0 [202] (🀅..🃎)    MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS
  1F0CF         ; Extended_Pictographic# E0.6   [1] (🃏)       joker
! 1F0D0..1F0FF  ; Extended_Pictographic# E0.0  [48] (🃐..🃿)    <reserved-1F0D0>..<reserved-1F0FF>
! 1F10D..1F10F  ; Extended_Pictographic# E0.0   [3] (🄍..🄏)    CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
! 1F12F         ; Extended_Pictographic# E0.0   [1] (🄯)       COPYLEFT SYMBOL
! 1F16C..1F16F  ; Extended_Pictographic# E0.0   [4] (🅬..🅯)    RAISED MR SIGN..CIRCLED HUMAN FIGURE
  1F170..1F171  ; Extended_Pictographic# E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)
  1F17E..1F17F  ; Extended_Pictographic# E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button
  1F18E         ; Extended_Pictographic# E0.6   [1] (🆎)       AB button (blood type)
  1F191..1F19A  ; Extended_Pictographic# E0.6  [10] (🆑..🆚)    CL button..VS button
! 1F1AD..1F1E5  ; Extended_Pictographic# E0.0  [57] (🆭..🇥)    MASK WORK SYMBOL..<reserved-1F1E5>
  1F201..1F202  ; Extended_Pictographic# E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button
  1F203..1F20F  ; Extended_Pictographic# E0.0  [13] (🈃..🈏)    <reserved-1F203>..<reserved-1F20F>
  1F21A         ; Extended_Pictographic# E0.6   [1] (🈚)       Japanese “free of charge” button
--- 942,960 ----
  303D          ; Extended_Pictographic# E0.6   [1] (〽️)       part alternation mark
  3297          ; Extended_Pictographic# E0.6   [1] (㊗️)       Japanese “congratulations” button
  3299          ; Extended_Pictographic# E0.6   [1] (㊙️)       Japanese “secret” button
  1F004         ; Extended_Pictographic# E0.6   [1] (🀄)       mahjong red dragon
! 1F02C..1F02F  ; Extended_Pictographic# E0.0   [4] (🀬..🀯)    <reserved-1F02C>..<reserved-1F02F>
! 1F094..1F09F  ; Extended_Pictographic# E0.0  [12] (🂔..🂟)    <reserved-1F094>..<reserved-1F09F>
! 1F0AF..1F0B0  ; Extended_Pictographic# E0.0   [2] (🂯..🂰)    <reserved-1F0AF>..<reserved-1F0B0>
! 1F0C0         ; Extended_Pictographic# E0.0   [1] (🃀)       <reserved-1F0C0>
  1F0CF         ; Extended_Pictographic# E0.6   [1] (🃏)       joker
! 1F0D0         ; Extended_Pictographic# E0.0   [1] (🃐)       <reserved-1F0D0>
! 1F0F6..1F0FF  ; Extended_Pictographic# E0.0  [10] (🃶..🃿)    <reserved-1F0F6>..<reserved-1F0FF>
  1F170..1F171  ; Extended_Pictographic# E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)
  1F17E..1F17F  ; Extended_Pictographic# E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button
  1F18E         ; Extended_Pictographic# E0.6   [1] (🆎)       AB button (blood type)
  1F191..1F19A  ; Extended_Pictographic# E0.6  [10] (🆑..🆚)    CL button..VS button
! 1F1AE..1F1E5  ; Extended_Pictographic# E0.0  [56] (🆮..🇥)    <reserved-1F1AE>..<reserved-1F1E5>
  1F201..1F202  ; Extended_Pictographic# E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button
  1F203..1F20F  ; Extended_Pictographic# E0.0  [13] (🈃..🈏)    <reserved-1F203>..<reserved-1F20F>
  1F21A         ; Extended_Pictographic# E0.6   [1] (🈚)       Japanese “free of charge” button
*************** E0020..E007F  ; Emoji_Component      # E
*** 994,1000 ****
  1F23C..1F23F  ; Extended_Pictographic# E0.0   [4] (🈼..🈿)    <reserved-1F23C>..<reserved-1F23F>
  1F249..1F24F  ; Extended_Pictographic# E0.0   [7] (🉉..🉏)    <reserved-1F249>..<reserved-1F24F>
  1F250..1F251  ; Extended_Pictographic# E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
! 1F252..1F2FF  ; Extended_Pictographic# E0.0 [174] (🉒..🋿)    <reserved-1F252>..<reserved-1F2FF>
  1F300..1F30C  ; Extended_Pictographic# E0.6  [13] (🌀..🌌)    cyclone..milky way
  1F30D..1F30E  ; Extended_Pictographic# E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas
  1F30F         ; Extended_Pictographic# E0.6   [1] (🌏)       globe showing Asia-Australia
--- 963,970 ----
  1F23C..1F23F  ; Extended_Pictographic# E0.0   [4] (🈼..🈿)    <reserved-1F23C>..<reserved-1F23F>
  1F249..1F24F  ; Extended_Pictographic# E0.0   [7] (🉉..🉏)    <reserved-1F249>..<reserved-1F24F>
  1F250..1F251  ; Extended_Pictographic# E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button
! 1F252..1F25F  ; Extended_Pictographic# E0.0  [14] (🉒..🉟)    <reserved-1F252>..<reserved-1F25F>
! 1F266..1F2FF  ; Extended_Pictographic# E0.0 [154] (🉦..🋿)    <reserved-1F266>..<reserved-1F2FF>
  1F300..1F30C  ; Extended_Pictographic# E0.6  [13] (🌀..🌌)    cyclone..milky way
  1F30D..1F30E  ; Extended_Pictographic# E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas
  1F30F         ; Extended_Pictographic# E0.6   [1] (🌏)       globe showing Asia-Australia
*************** E0020..E007F  ; Emoji_Component      # E
*** 1010,1016 ****
  1F31D..1F31E  ; Extended_Pictographic# E1.0   [2] (🌝..🌞)    full moon face..sun with face
  1F31F..1F320  ; Extended_Pictographic# E0.6   [2] (🌟..🌠)    glowing star..shooting star
  1F321         ; Extended_Pictographic# E0.7   [1] (🌡️)       thermometer
- 1F322..1F323  ; Extended_Pictographic# E0.0   [2] (🌢..🌣)    BLACK DROPLET..WHITE SUN
  1F324..1F32C  ; Extended_Pictographic# E0.7   [9] (🌤️..🌬️)    sun behind small cloud..wind face
  1F32D..1F32F  ; Extended_Pictographic# E1.0   [3] (🌭..🌯)    hot dog..burrito
  1F330..1F331  ; Extended_Pictographic# E0.6   [2] (🌰..🌱)    chestnut..seedling
--- 980,985 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 1026,1036 ****
  1F37D         ; Extended_Pictographic# E0.7   [1] (🍽️)       fork and knife with plate
  1F37E..1F37F  ; Extended_Pictographic# E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn
  1F380..1F393  ; Extended_Pictographic# E0.6  [20] (🎀..🎓)    ribbon..graduation cap
- 1F394..1F395  ; Extended_Pictographic# E0.0   [2] (🎔..🎕)    HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS
  1F396..1F397  ; Extended_Pictographic# E0.7   [2] (🎖️..🎗️)    military medal..reminder ribbon
- 1F398         ; Extended_Pictographic# E0.0   [1] (🎘)       MUSICAL KEYBOARD WITH JACKS
  1F399..1F39B  ; Extended_Pictographic# E0.7   [3] (🎙️..🎛️)    studio microphone..control knobs
- 1F39C..1F39D  ; Extended_Pictographic# E0.0   [2] (🎜..🎝)    BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
  1F39E..1F39F  ; Extended_Pictographic# E0.7   [2] (🎞️..🎟️)    film frames..admission tickets
  1F3A0..1F3C4  ; Extended_Pictographic# E0.6  [37] (🎠..🏄)    carousel horse..person surfing
  1F3C5         ; Extended_Pictographic# E1.0   [1] (🏅)       sports medal
--- 995,1002 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 1045,1055 ****
  1F3E0..1F3E3  ; Extended_Pictographic# E0.6   [4] (🏠..🏣)    house..Japanese post office
  1F3E4         ; Extended_Pictographic# E1.0   [1] (🏤)       post office
  1F3E5..1F3F0  ; Extended_Pictographic# E0.6  [12] (🏥..🏰)    hospital..castle
- 1F3F1..1F3F2  ; Extended_Pictographic# E0.0   [2] (🏱..🏲)    WHITE PENNANT..BLACK PENNANT
  1F3F3         ; Extended_Pictographic# E0.7   [1] (🏳️)       white flag
  1F3F4         ; Extended_Pictographic# E1.0   [1] (🏴)       black flag
  1F3F5         ; Extended_Pictographic# E0.7   [1] (🏵️)       rosette
- 1F3F6         ; Extended_Pictographic# E0.0   [1] (🏶)       BLACK ROSETTE
  1F3F7         ; Extended_Pictographic# E0.7   [1] (🏷️)       label
  1F3F8..1F3FA  ; Extended_Pictographic# E1.0   [3] (🏸..🏺)    badminton..amphora
  1F400..1F407  ; Extended_Pictographic# E1.0   [8] (🐀..🐇)    rat..rabbit
--- 1011,1019 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 1086,1092 ****
  1F4F8         ; Extended_Pictographic# E1.0   [1] (📸)       camera with flash
  1F4F9..1F4FC  ; Extended_Pictographic# E0.6   [4] (📹..📼)    video camera..videocassette
  1F4FD         ; Extended_Pictographic# E0.7   [1] (📽️)       film projector
- 1F4FE         ; Extended_Pictographic# E0.0   [1] (📾)       PORTABLE STEREO
  1F4FF..1F502  ; Extended_Pictographic# E1.0   [4] (📿..🔂)    prayer beads..repeat single button
  1F503         ; Extended_Pictographic# E0.6   [1] (🔃)       clockwise vertical arrows
  1F504..1F507  ; Extended_Pictographic# E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker
--- 1050,1055 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 1097,1147 ****
  1F516..1F52B  ; Extended_Pictographic# E0.6  [22] (🔖..🔫)    bookmark..water pistol
  1F52C..1F52D  ; Extended_Pictographic# E1.0   [2] (🔬..🔭)    microscope..telescope
  1F52E..1F53D  ; Extended_Pictographic# E0.6  [16] (🔮..🔽)    crystal ball..downwards button
- 1F546..1F548  ; Extended_Pictographic# E0.0   [3] (🕆..🕈)    WHITE LATIN CROSS..CELTIC CROSS
  1F549..1F54A  ; Extended_Pictographic# E0.7   [2] (🕉️..🕊️)    om..dove
  1F54B..1F54E  ; Extended_Pictographic# E1.0   [4] (🕋..🕎)    kaaba..menorah
- 1F54F         ; Extended_Pictographic# E0.0   [1] (🕏)       BOWL OF HYGIEIA
  1F550..1F55B  ; Extended_Pictographic# E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock
  1F55C..1F567  ; Extended_Pictographic# E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty
- 1F568..1F56E  ; Extended_Pictographic# E0.0   [7] (🕨..🕮)    RIGHT SPEAKER..BOOK
  1F56F..1F570  ; Extended_Pictographic# E0.7   [2] (🕯️..🕰️)    candle..mantelpiece clock
- 1F571..1F572  ; Extended_Pictographic# E0.0   [2] (🕱..🕲)    BLACK SKULL AND CROSSBONES..NO PIRACY
  1F573..1F579  ; Extended_Pictographic# E0.7   [7] (🕳️..🕹️)    hole..joystick
  1F57A         ; Extended_Pictographic# E3.0   [1] (🕺)       man dancing
- 1F57B..1F586  ; Extended_Pictographic# E0.0  [12] (🕻..🖆)    LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE
  1F587         ; Extended_Pictographic# E0.7   [1] (🖇️)       linked paperclips
- 1F588..1F589  ; Extended_Pictographic# E0.0   [2] (🖈..🖉)    BLACK PUSHPIN..LOWER LEFT PENCIL
  1F58A..1F58D  ; Extended_Pictographic# E0.7   [4] (🖊️..🖍️)    pen..crayon
- 1F58E..1F58F  ; Extended_Pictographic# E0.0   [2] (🖎..🖏)    LEFT WRITING HAND..TURNED OK HAND SIGN
  1F590         ; Extended_Pictographic# E0.7   [1] (🖐️)       hand with fingers splayed
- 1F591..1F594  ; Extended_Pictographic# E0.0   [4] (🖑..🖔)    REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND
  1F595..1F596  ; Extended_Pictographic# E1.0   [2] (🖕..🖖)    middle finger..vulcan salute
- 1F597..1F5A3  ; Extended_Pictographic# E0.0  [13] (🖗..🖣)    WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
  1F5A4         ; Extended_Pictographic# E3.0   [1] (🖤)       black heart
  1F5A5         ; Extended_Pictographic# E0.7   [1] (🖥️)       desktop computer
- 1F5A6..1F5A7  ; Extended_Pictographic# E0.0   [2] (🖦..🖧)    KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS
  1F5A8         ; Extended_Pictographic# E0.7   [1] (🖨️)       printer
- 1F5A9..1F5B0  ; Extended_Pictographic# E0.0   [8] (🖩..🖰)    POCKET CALCULATOR..TWO BUTTON MOUSE
  1F5B1..1F5B2  ; Extended_Pictographic# E0.7   [2] (🖱️..🖲️)    computer mouse..trackball
- 1F5B3..1F5BB  ; Extended_Pictographic# E0.0   [9] (🖳..🖻)    OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE
  1F5BC         ; Extended_Pictographic# E0.7   [1] (🖼️)       framed picture
- 1F5BD..1F5C1  ; Extended_Pictographic# E0.0   [5] (🖽..🗁)    FRAME WITH TILES..OPEN FOLDER
  1F5C2..1F5C4  ; Extended_Pictographic# E0.7   [3] (🗂️..🗄️)    card index dividers..file cabinet
- 1F5C5..1F5D0  ; Extended_Pictographic# E0.0  [12] (🗅..🗐)    EMPTY NOTE..PAGES
  1F5D1..1F5D3  ; Extended_Pictographic# E0.7   [3] (🗑️..🗓️)    wastebasket..spiral calendar
- 1F5D4..1F5DB  ; Extended_Pictographic# E0.0   [8] (🗔..🗛)    DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
  1F5DC..1F5DE  ; Extended_Pictographic# E0.7   [3] (🗜️..🗞️)    clamp..rolled-up newspaper
- 1F5DF..1F5E0  ; Extended_Pictographic# E0.0   [2] (🗟..🗠)    PAGE WITH CIRCLED TEXT..STOCK CHART
  1F5E1         ; Extended_Pictographic# E0.7   [1] (🗡️)       dagger
- 1F5E2         ; Extended_Pictographic# E0.0   [1] (🗢)       LIPS
  1F5E3         ; Extended_Pictographic# E0.7   [1] (🗣️)       speaking head
- 1F5E4..1F5E7  ; Extended_Pictographic# E0.0   [4] (🗤..🗧)    THREE RAYS ABOVE..THREE RAYS RIGHT
  1F5E8         ; Extended_Pictographic# E2.0   [1] (🗨️)       left speech bubble
- 1F5E9..1F5EE  ; Extended_Pictographic# E0.0   [6] (🗩..🗮)    RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE
  1F5EF         ; Extended_Pictographic# E0.7   [1] (🗯️)       right anger bubble
- 1F5F0..1F5F2  ; Extended_Pictographic# E0.0   [3] (🗰..🗲)    MOOD BUBBLE..LIGHTNING MOOD
  1F5F3         ; Extended_Pictographic# E0.7   [1] (🗳️)       ballot box with ballot
- 1F5F4..1F5F9  ; Extended_Pictographic# E0.0   [6] (🗴..🗹)    BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
  1F5FA         ; Extended_Pictographic# E0.7   [1] (🗺️)       world map
  1F5FB..1F5FF  ; Extended_Pictographic# E0.6   [5] (🗻..🗿)    mount fuji..moai
  1F600         ; Extended_Pictographic# E1.0   [1] (😀)       grinning face
--- 1060,1089 ----
*************** E0020..E007F  ; Emoji_Component      # E
*** 1210,1235 ****
  1F6BF         ; Extended_Pictographic# E1.0   [1] (🚿)       shower
  1F6C0         ; Extended_Pictographic# E0.6   [1] (🛀)       person taking bath
  1F6C1..1F6C5  ; Extended_Pictographic# E1.0   [5] (🛁..🛅)    bathtub..left luggage
- 1F6C6..1F6CA  ; Extended_Pictographic# E0.0   [5] (🛆..🛊)    TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL
  1F6CB         ; Extended_Pictographic# E0.7   [1] (🛋️)       couch and lamp
  1F6CC         ; Extended_Pictographic# E1.0   [1] (🛌)       person in bed
  1F6CD..1F6CF  ; Extended_Pictographic# E0.7   [3] (🛍️..🛏️)    shopping bags..bed
  1F6D0         ; Extended_Pictographic# E1.0   [1] (🛐)       place of worship
  1F6D1..1F6D2  ; Extended_Pictographic# E3.0   [2] (🛑..🛒)    stop sign..shopping cart
- 1F6D3..1F6D4  ; Extended_Pictographic# E0.0   [2] (🛓..🛔)    STUPA..PAGODA
  1F6D5         ; Extended_Pictographic# E12.0  [1] (🛕)       hindu temple
  1F6D6..1F6D7  ; Extended_Pictographic# E13.0  [2] (🛖..🛗)    hut..elevator
! 1F6D8..1F6DB  ; Extended_Pictographic# E0.0   [4] (🛘..🛛)    <reserved-1F6D8>..<reserved-1F6DB>
  1F6DC         ; Extended_Pictographic# E15.0  [1] (🛜)       wireless
  1F6DD..1F6DF  ; Extended_Pictographic# E14.0  [3] (🛝..🛟)    playground slide..ring buoy
  1F6E0..1F6E5  ; Extended_Pictographic# E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
- 1F6E6..1F6E8  ; Extended_Pictographic# E0.0   [3] (🛦..🛨)    UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
  1F6E9         ; Extended_Pictographic# E0.7   [1] (🛩️)       small airplane
- 1F6EA         ; Extended_Pictographic# E0.0   [1] (🛪)       NORTHEAST-POINTING AIRPLANE
  1F6EB..1F6EC  ; Extended_Pictographic# E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
  1F6ED..1F6EF  ; Extended_Pictographic# E0.0   [3] (🛭..🛯)    <reserved-1F6ED>..<reserved-1F6EF>
  1F6F0         ; Extended_Pictographic# E0.7   [1] (🛰️)       satellite
- 1F6F1..1F6F2  ; Extended_Pictographic# E0.0   [2] (🛱..🛲)    ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE
  1F6F3         ; Extended_Pictographic# E0.7   [1] (🛳️)       passenger ship
  1F6F4..1F6F6  ; Extended_Pictographic# E3.0   [3] (🛴..🛶)    kick scooter..canoe
  1F6F7..1F6F8  ; Extended_Pictographic# E5.0   [2] (🛷..🛸)    sled..flying saucer
--- 1152,1173 ----
  1F6BF         ; Extended_Pictographic# E1.0   [1] (🚿)       shower
  1F6C0         ; Extended_Pictographic# E0.6   [1] (🛀)       person taking bath
  1F6C1..1F6C5  ; Extended_Pictographic# E1.0   [5] (🛁..🛅)    bathtub..left luggage
  1F6CB         ; Extended_Pictographic# E0.7   [1] (🛋️)       couch and lamp
  1F6CC         ; Extended_Pictographic# E1.0   [1] (🛌)       person in bed
  1F6CD..1F6CF  ; Extended_Pictographic# E0.7   [3] (🛍️..🛏️)    shopping bags..bed
  1F6D0         ; Extended_Pictographic# E1.0   [1] (🛐)       place of worship
  1F6D1..1F6D2  ; Extended_Pictographic# E3.0   [2] (🛑..🛒)    stop sign..shopping cart
  1F6D5         ; Extended_Pictographic# E12.0  [1] (🛕)       hindu temple
  1F6D6..1F6D7  ; Extended_Pictographic# E13.0  [2] (🛖..🛗)    hut..elevator
! 1F6D8         ; Extended_Pictographic# E17.0  [1] (🛘)       landslide
! 1F6D9..1F6DB  ; Extended_Pictographic# E0.0   [3] (🛙..🛛)    <reserved-1F6D9>..<reserved-1F6DB>
  1F6DC         ; Extended_Pictographic# E15.0  [1] (🛜)       wireless
  1F6DD..1F6DF  ; Extended_Pictographic# E14.0  [3] (🛝..🛟)    playground slide..ring buoy
  1F6E0..1F6E5  ; Extended_Pictographic# E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat
  1F6E9         ; Extended_Pictographic# E0.7   [1] (🛩️)       small airplane
  1F6EB..1F6EC  ; Extended_Pictographic# E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival
  1F6ED..1F6EF  ; Extended_Pictographic# E0.0   [3] (🛭..🛯)    <reserved-1F6ED>..<reserved-1F6EF>
  1F6F0         ; Extended_Pictographic# E0.7   [1] (🛰️)       satellite
  1F6F3         ; Extended_Pictographic# E0.7   [1] (🛳️)       passenger ship
  1F6F4..1F6F6  ; Extended_Pictographic# E3.0   [3] (🛴..🛶)    kick scooter..canoe
  1F6F7..1F6F8  ; Extended_Pictographic# E5.0   [2] (🛷..🛸)    sled..flying saucer
*************** E0020..E007F  ; Emoji_Component      # E
*** 1237,1244 ****
  1F6FA         ; Extended_Pictographic# E12.0  [1] (🛺)       auto rickshaw
  1F6FB..1F6FC  ; Extended_Pictographic# E13.0  [2] (🛻..🛼)    pickup truck..roller skate
  1F6FD..1F6FF  ; Extended_Pictographic# E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>
! 1F774..1F77F  ; Extended_Pictographic# E0.0  [12] (🝴..🝿)    LOT OF FORTUNE..ORCUS
! 1F7D5..1F7DF  ; Extended_Pictographic# E0.0  [11] (🟕..🟟)    CIRCLED TRIANGLE..<reserved-1F7DF>
  1F7E0..1F7EB  ; Extended_Pictographic# E12.0 [12] (🟠..🟫)    orange circle..brown square
  1F7EC..1F7EF  ; Extended_Pictographic# E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>
  1F7F0         ; Extended_Pictographic# E14.0  [1] (🟰)       heavy equals sign
--- 1175,1181 ----
  1F6FA         ; Extended_Pictographic# E12.0  [1] (🛺)       auto rickshaw
  1F6FB..1F6FC  ; Extended_Pictographic# E13.0  [2] (🛻..🛼)    pickup truck..roller skate
  1F6FD..1F6FF  ; Extended_Pictographic# E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>
! 1F7DA..1F7DF  ; Extended_Pictographic# E0.0   [6] (🟚..🟟)    <reserved-1F7DA>..<reserved-1F7DF>
  1F7E0..1F7EB  ; Extended_Pictographic# E12.0 [12] (🟠..🟫)    orange circle..brown square
  1F7EC..1F7EF  ; Extended_Pictographic# E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>
  1F7F0         ; Extended_Pictographic# E14.0  [1] (🟰)       heavy equals sign
*************** E0020..E007F  ; Emoji_Component      # E
*** 1247,1253 ****
  1F848..1F84F  ; Extended_Pictographic# E0.0   [8] (🡈..🡏)    <reserved-1F848>..<reserved-1F84F>
  1F85A..1F85F  ; Extended_Pictographic# E0.0   [6] (🡚..🡟)    <reserved-1F85A>..<reserved-1F85F>
  1F888..1F88F  ; Extended_Pictographic# E0.0   [8] (🢈..🢏)    <reserved-1F888>..<reserved-1F88F>
! 1F8AE..1F8FF  ; Extended_Pictographic# E0.0  [82] (🢮..🣿)    <reserved-1F8AE>..<reserved-1F8FF>
  1F90C         ; Extended_Pictographic# E13.0  [1] (🤌)       pinched fingers
  1F90D..1F90F  ; Extended_Pictographic# E12.0  [3] (🤍..🤏)    white heart..pinching hand
  1F910..1F918  ; Extended_Pictographic# E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns
--- 1184,1193 ----
  1F848..1F84F  ; Extended_Pictographic# E0.0   [8] (🡈..🡏)    <reserved-1F848>..<reserved-1F84F>
  1F85A..1F85F  ; Extended_Pictographic# E0.0   [6] (🡚..🡟)    <reserved-1F85A>..<reserved-1F85F>
  1F888..1F88F  ; Extended_Pictographic# E0.0   [8] (🢈..🢏)    <reserved-1F888>..<reserved-1F88F>
! 1F8AE..1F8AF  ; Extended_Pictographic# E0.0   [2] (🢮..🢯)    <reserved-1F8AE>..<reserved-1F8AF>
! 1F8BC..1F8BF  ; Extended_Pictographic# E0.0   [4] (🢼..🢿)    <reserved-1F8BC>..<reserved-1F8BF>
! 1F8C2..1F8CF  ; Extended_Pictographic# E0.0  [14] (🣂..🣏)    <reserved-1F8C2>..<reserved-1F8CF>
! 1F8D9..1F8FF  ; Extended_Pictographic# E0.0  [39] (🣙..🣿)    <reserved-1F8D9>..<reserved-1F8FF>
  1F90C         ; Extended_Pictographic# E13.0  [1] (🤌)       pinched fingers
  1F90D..1F90F  ; Extended_Pictographic# E12.0  [3] (🤍..🤏)    white heart..pinching hand
  1F910..1F918  ; Extended_Pictographic# E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns
*************** E0020..E007F  ; Emoji_Component      # E
*** 1293,1299 ****
  1F9CD..1F9CF  ; Extended_Pictographic# E12.0  [3] (🧍..🧏)    person standing..deaf person
  1F9D0..1F9E6  ; Extended_Pictographic# E5.0  [23] (🧐..🧦)    face with monocle..socks
  1F9E7..1F9FF  ; Extended_Pictographic# E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
! 1FA00..1FA6F  ; Extended_Pictographic# E0.0 [112] (🨀..🩯)    NEUTRAL CHESS KING..<reserved-1FA6F>
  1FA70..1FA73  ; Extended_Pictographic# E12.0  [4] (🩰..🩳)    ballet shoes..shorts
  1FA74         ; Extended_Pictographic# E13.0  [1] (🩴)       thong sandal
  1FA75..1FA77  ; Extended_Pictographic# E15.0  [3] (🩵..🩷)    light blue heart..pink heart
--- 1233,1240 ----
  1F9CD..1F9CF  ; Extended_Pictographic# E12.0  [3] (🧍..🧏)    person standing..deaf person
  1F9D0..1F9E6  ; Extended_Pictographic# E5.0  [23] (🧐..🧦)    face with monocle..socks
  1F9E7..1F9FF  ; Extended_Pictographic# E11.0 [25] (🧧..🧿)    red envelope..nazar amulet
! 1FA58..1FA5F  ; Extended_Pictographic# E0.0   [8] (🩘..🩟)    <reserved-1FA58>..<reserved-1FA5F>
! 1FA6E..1FA6F  ; Extended_Pictographic# E0.0   [2] (🩮..🩯)    <reserved-1FA6E>..<reserved-1FA6F>
  1FA70..1FA73  ; Extended_Pictographic# E12.0  [4] (🩰..🩳)    ballet shoes..shorts
  1FA74         ; Extended_Pictographic# E13.0  [1] (🩴)       thong sandal
  1FA75..1FA77  ; Extended_Pictographic# E15.0  [3] (🩵..🩷)    light blue heart..pink heart
*************** E0020..E007F  ; Emoji_Component      # E
*** 1304,1310 ****
  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
--- 1245,1253 ----
  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         ; Extended_Pictographic# E17.0  [1] (🪊)       trombone
! 1FA8B..1FA8D  ; Extended_Pictographic# E0.0   [3] (🪋..🪍)    <reserved-1FA8B>..<reserved-1FA8D>
! 1FA8E         ; Extended_Pictographic# E17.0  [1] (🪎)       treasure chest
  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
*************** E0020..E007F  ; Emoji_Component      # E
*** 1318,1324 ****
  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
--- 1261,1270 ----
  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         ; Extended_Pictographic# E0.0   [1] (🫇)       <reserved-1FAC7>
! 1FAC8         ; Extended_Pictographic# E17.0  [1] (🫈)       hairy creature
! 1FAC9..1FACC  ; Extended_Pictographic# E0.0   [4] (🫉..🫌)    <reserved-1FAC9>..<reserved-1FACC>
! 1FACD         ; Extended_Pictographic# E17.0  [1] (🫍)       orca
  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
*************** E0020..E007F  ; Emoji_Component      # E
*** 1329,1340 ****
  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>
  1FC00..1FFFD  ; Extended_Pictographic# E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>
  
! # Total elements: 3537
  
  #EOF
--- 1275,1288 ----
  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         ; Extended_Pictographic# E17.0  [1] (🫪)       distorted face
! 1FAEB..1FAEE  ; Extended_Pictographic# E0.0   [4] (🫫..🫮)    <reserved-1FAEB>..<reserved-1FAEE>
! 1FAEF         ; Extended_Pictographic# E17.0  [1] (🫯)       fight cloud
  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>
  1FC00..1FFFD  ; Extended_Pictographic# E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>
  
! # Total elements: 2848
  
  #EOF
diff -Nrcpad gcc-15.2.0/contrib/unicode/from_glibc/unicode_utils.py gcc-16.1.0-RC-20260423/contrib/unicode/from_glibc/unicode_utils.py
*** gcc-15.2.0/contrib/unicode/from_glibc/unicode_utils.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/from_glibc/unicode_utils.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  # Utilities to generate Unicode data for glibc from upstream Unicode data.
  #
! # Copyright (C) 2014-2026 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-15.2.0/contrib/unicode/from_glibc/utf8_gen.py gcc-16.1.0-RC-20260423/contrib/unicode/from_glibc/utf8_gen.py
*** gcc-15.2.0/contrib/unicode/from_glibc/utf8_gen.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/from_glibc/utf8_gen.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,7 ----
  #!/usr/bin/python3
  # -*- coding: utf-8 -*-
! # Copyright (C) 2014-2026 Free Software Foundation, Inc.
! # Copyright The GNU Toolchain Authors.
  # This file is part of the GNU C Library.
  #
  # The GNU C Library is free software; you can redistribute it and/or
***************
*** 10,16 ****
  #
  # The GNU C Library 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
  # Lesser General Public License for more details.
  #
  # You should have received a copy of the GNU Lesser General Public
--- 11,17 ----
  #
  # The GNU C Library 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
  # Lesser General Public License for more details.
  #
  # You should have received a copy of the GNU Lesser General Public
*************** It will output UTF-8 file
*** 28,34 ****
  '''
  
  import argparse
- import sys
  import re
  import unicode_utils
  
--- 29,34 ----
*************** def write_header_charmap(outfile):
*** 200,229 ****
  
  def write_header_width(outfile, unicode_version):
      '''Writes the header on top of the WIDTH section to the output file'''
!     outfile.write('% Character width according to Unicode '
!                   + '{: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;\' '
!                   + 'UnicodeData.txt"\n')
!     outfile.write('% - Format control characters have width 0; '
!                   + 'generated from\n')
!     outfile.write("%   \"grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt\"\n")
! #   Not needed covered by Cf
! #    outfile.write("% - Zero width characters have width 0; generated from\n")
! #    outfile.write("%   \"grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt\"\n")
      outfile.write("WIDTH\n")
  
! def process_width(outfile, ulines, elines, plines):
!     '''ulines are lines from UnicodeData.txt, elines are lines from
!     EastAsianWidth.txt containing characters with width “W” or “F”,
!     plines are lines from PropList.txt which contain characters
!     with the property “Prepended_Concatenation_Mark”.
! 
      '''
      width_dict = {}
      for line in elines:
          fields = line.split(";")
--- 200,239 ----
  
  def write_header_width(outfile, unicode_version):
      '''Writes the header on top of the WIDTH section to the output file'''
!     outfile.write('% Character width according to Unicode {:s}.\n'.format(unicode_version))
!     outfile.write('% Width is determined by the following rules, in order of decreasing precedence:\n')
!     outfile.write('% - U+00AD SOFT HYPHEN has width 1, as a special case for compatibility (https://archive.is/b5Ck).\n')
!     outfile.write('% - U+115F HANGUL CHOSEONG FILLER has width 2.\n')
!     outfile.write('%   This character stands in for an intentionally omitted leading consonant\n')
!     outfile.write('%   in a Hangul syllable block; as such it must be assigned width 2 despite its lack\n')
!     outfile.write('%   of visible display to ensure that the complete block has the correct width.\n')
!     outfile.write('%   (See below for more information on Hangul syllables.)\n')
!     outfile.write('% - Combining jungseong and jongseong Hangul jamo have width 0; generated from\n')
!     outfile.write('%   "grep \'^[^;]*;[VT]\' HangulSyllableType.txt".\n')
!     outfile.write('%   One composed Hangul "syllable block" like 퓛 is made up of\n')
!     outfile.write('%   two to three individual component characters called "jamo".\n')
!     outfile.write('%   The complete block must have total width 2;\n')
!     outfile.write('%   to achieve this, we assign a width of 2 to leading "choseong" jamo,\n')
!     outfile.write('%   and of 0 to medial vowel "jungseong" and trailing "jongseong" jamo.\n')
!     outfile.write('% - Non-spacing and enclosing marks have width 0; generated from\n')
!     outfile.write('%   "grep -E \'^[^;]*;[^;]*;(Mn|Me);\' UnicodeData.txt".\n')
!     outfile.write('% - "Default_Ignorable_Code_Point"s have width 0; generated from\n')
!     outfile.write('%   "grep \'^[^;]*;\\s*Default_Ignorable_Code_Point\' DerivedCoreProperties.txt".\n')
      outfile.write('% - Double-width characters have width 2; generated from\n')
!     outfile.write('%   "grep \'^[^;]*;[WF]\' EastAsianWidth.txt".\n')
!     outfile.write('% - Default width for all other characters is 1.\n')
      outfile.write("WIDTH\n")
  
! def process_width(outfile, ulines, dlines, elines, klines):
!     '''ulines are lines from UnicodeData.txt.
!     elines are lines from EastAsianWidth.txt containing characters with width
!     “W” or “F”.
!     dlines are lines from DerivedCoreProperties.txt which contain
!     characters with the property “Default_Ignorable_Code_Point”.
!     klines are lines from HangulSyllableType.txt which contain characters
!     with syllable type “V” or “T”.
      '''
+     # Wide and fullwidth characters have width 1
      width_dict = {}
      for line in elines:
          fields = line.split(";")
*************** def process_width(outfile, ulines, eline
*** 235,248 ****
                           int(code_points[1], 16)+1):
              width_dict[key] = 2
  
      for line in ulines:
          fields = line.split(";")
!         if fields[4] == "NSM" or fields[2] in ("Cf", "Me", "Mn"):
              width_dict[int(fields[0], 16)] = 0
  
!     for line in plines:
!         # Characters with the property “Prepended_Concatenation_Mark”
!         # should have the width 1:
          fields = line.split(";")
          if not '..' in fields[0]:
              code_points = (fields[0], fields[0])
--- 245,258 ----
                           int(code_points[1], 16)+1):
              width_dict[key] = 2
  
+     # Nonspacing and enclosing marks have width 0
      for line in ulines:
          fields = line.split(";")
!         if fields[4] == "NSM" or fields[2] in ("Me", "Mn"):
              width_dict[int(fields[0], 16)] = 0
  
!     # Conjoining vowel and trailing jamo have width 0
!     for line in klines:
          fields = line.split(";")
          if not '..' in fields[0]:
              code_points = (fields[0], fields[0])
*************** def process_width(outfile, ulines, eline
*** 250,270 ****
              code_points = fields[0].split("..")
          for key in range(int(code_points[0], 16),
                           int(code_points[1], 16)+1):
-             del width_dict[key] # default width is 1
- 
-     # handle special cases for compatibility
-     for key in list((0x00AD,)):
-         # https://www.cs.tut.fi/~jkorpela/shy.html
-         if key in width_dict:
-             del width_dict[key] # default width is 1
-     for key in list(range(0x1160, 0x1200)):
-         # Hangul jungseong and jongseong:
-         if key in unicode_utils.UNICODE_ATTRIBUTES:
-             width_dict[key] = 0
-     for key in list(range(0xD7B0, 0xD800)):
-         # Hangul jungseong and jongseong:
-         if key in unicode_utils.UNICODE_ATTRIBUTES:
              width_dict[key] = 0
      for key in list(range(0x3248, 0x3250)):
          # These are “A” which means we can decide whether to treat them
          # as “W” or “N” based on context:
--- 260,285 ----
              code_points = fields[0].split("..")
          for key in range(int(code_points[0], 16),
                           int(code_points[1], 16)+1):
              width_dict[key] = 0
+ 
+     # “Default_Ignorable_Code_Point”s have width 0
+     for line in dlines:
+         fields = line.split(";")
+         if not '..' in fields[0]:
+             code_points = (fields[0], fields[0])
+         else:
+             code_points = fields[0].split("..")
+         for key in range(int(code_points[0], 16),
+                          int(code_points[1], 16)+1):
+             width_dict[key] = 0 # default width is 1
+ 
+ 
+     # Special case: U+00AD SOFT HYPHEN
+     del width_dict[0x00AD]
+ 
+     # Special case: U+115F HANGUL CHOSEONG FILLER
+     width_dict[0x115F] = 2
+ 
      for key in list(range(0x3248, 0x3250)):
          # These are “A” which means we can decide whether to treat them
          # as “W” or “N” based on context:
*************** def process_width(outfile, ulines, eline
*** 302,308 ****
  if __name__ == "__main__":
      PARSER = argparse.ArgumentParser(
          description='''
!         Generate a UTF-8 file from UnicodeData.txt, EastAsianWidth.txt, and PropList.txt.
          ''')
      PARSER.add_argument(
          '-u', '--unicode_data_file',
--- 317,323 ----
  if __name__ == "__main__":
      PARSER = argparse.ArgumentParser(
          description='''
!         Generate a UTF-8 file from UnicodeData.txt, DerivedCoreProperties.txt, EastAsianWidth.txt, and HangulSyllableType.txt
          ''')
      PARSER.add_argument(
          '-u', '--unicode_data_file',
*************** if __name__ == "__main__":
*** 312,317 ****
--- 327,339 ----
          help=('The UnicodeData.txt file to read, '
                + 'default: %(default)s'))
      PARSER.add_argument(
+         '-d', '--derived_core_properties_file',
+         nargs='?',
+         type=str,
+         default='DerivedCoreProperties.txt',
+         help=('The DerivedCoreProperties.txt file to read, '
+               + 'default: %(default)s'))
+     PARSER.add_argument(
          '-e', '--east_asian_with_file',
          nargs='?',
          type=str,
*************** if __name__ == "__main__":
*** 319,329 ****
          help=('The EastAsianWidth.txt file to read, '
                + 'default: %(default)s'))
      PARSER.add_argument(
!         '-p', '--prop_list_file',
          nargs='?',
          type=str,
!         default='PropList.txt',
!         help=('The PropList.txt file to read, '
                + 'default: %(default)s'))
      PARSER.add_argument(
          '--unicode_version',
--- 341,351 ----
          help=('The EastAsianWidth.txt file to read, '
                + 'default: %(default)s'))
      PARSER.add_argument(
!         '-k', '--hangul_syllable_type_file',
          nargs='?',
          type=str,
!         default='HangulSyllableType.txt',
!         help=('The HangulSyllableType.txt file to read, '
                + 'default: %(default)s'))
      PARSER.add_argument(
          '--unicode_version',
*************** if __name__ == "__main__":
*** 336,362 ****
      unicode_utils.fill_attributes(ARGS.unicode_data_file)
      with open(ARGS.unicode_data_file, mode='r') as UNIDATA_FILE:
          UNICODE_DATA_LINES = UNIDATA_FILE.readlines()
!     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
              # are not in the CHARMAP section of the UTF-8 file.
              #
!             # Therefore, we skip all reserved code points when reading
!             # 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 = []
!         for LINE in PROP_LIST_FILE:
!             if re.match(r'^[^;]*;[\s]*Prepended_Concatenation_Mark', LINE):
!                 PROP_LIST_LINES.append(LINE.strip())
      with open('UTF-8', mode='w') as OUTFILE:
          # Processing UnicodeData.txt and write CHARMAP to UTF-8 file
          write_header_charmap(OUTFILE)
--- 358,392 ----
      unicode_utils.fill_attributes(ARGS.unicode_data_file)
      with open(ARGS.unicode_data_file, mode='r') as UNIDATA_FILE:
          UNICODE_DATA_LINES = UNIDATA_FILE.readlines()
!     with open(ARGS.derived_core_properties_file, mode='r') as DERIVED_CORE_PROPERTIES_FILE:
!         DERIVED_CORE_PROPERTIES_LINES = []
!         for LINE in DERIVED_CORE_PROPERTIES_FILE:
!             # If characters 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
              # are not in the CHARMAP section of the UTF-8 file.
              #
!             # Therefore, we skip all reserved code points.
!             if re.match(r'.*<reserved-.+>', LINE):
!                 continue
!             if re.match(r'^[^;]*;\s*Default_Ignorable_Code_Point', LINE):
!                 DERIVED_CORE_PROPERTIES_LINES.append(LINE.strip())
!     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 re.match(r'.*<reserved-.+>', LINE):
                  continue
              if re.match(r'^[^;]*;\s*[WF]', LINE):
                  EAST_ASIAN_WIDTH_LINES.append(LINE.strip())
!     with open(ARGS.hangul_syllable_type_file, mode='r') as HANGUL_SYLLABLE_TYPE_FILE:
!         HANGUL_SYLLABLE_TYPE_LINES = []
!         for LINE in HANGUL_SYLLABLE_TYPE_FILE:
!             if re.match(r'.*<reserved-.+>', LINE):
!                 continue
!             if re.match(r'^[^;]*;\s*[VT]', LINE):
!                 HANGUL_SYLLABLE_TYPE_LINES.append(LINE.strip())
      with open('UTF-8', mode='w') as OUTFILE:
          # Processing UnicodeData.txt and write CHARMAP to UTF-8 file
          write_header_charmap(OUTFILE)
*************** if __name__ == "__main__":
*** 366,371 ****
          write_header_width(OUTFILE, ARGS.unicode_version)
          process_width(OUTFILE,
                        UNICODE_DATA_LINES,
                        EAST_ASIAN_WIDTH_LINES,
!                       PROP_LIST_LINES)
          OUTFILE.write("END WIDTH\n")
--- 396,402 ----
          write_header_width(OUTFILE, ARGS.unicode_version)
          process_width(OUTFILE,
                        UNICODE_DATA_LINES,
+                       DERIVED_CORE_PROPERTIES_LINES,
                        EAST_ASIAN_WIDTH_LINES,
!                       HANGUL_SYLLABLE_TYPE_LINES)
          OUTFILE.write("END WIDTH\n")
diff -Nrcpad gcc-15.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py gcc-16.1.0-RC-20260423/contrib/unicode/gen_libstdcxx_unicode_data.py
*** gcc-15.2.0/contrib/unicode/gen_libstdcxx_unicode_data.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unicode/gen_libstdcxx_unicode_data.py	Thu Apr 23 11:07:32 2026
***************
*** 23,28 ****
--- 23,29 ----
  # ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
  # 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
  # Then run this script and save the output to
  # ../../libstdc++-v3/include/bits/unicode-data.h
  
*************** escaped_general_categories = {
*** 148,154 ****
      "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:
--- 149,155 ----
      "Cc", "Cf", "Cs", "Co", "Cn",
  }
  
! # Extract General_Category and determine if it should be escaped
  # for all code points.
  for line in open("DerivedGeneralCategory.txt", "r"):
      # Example lines:
diff -Nrcpad gcc-15.2.0/contrib/uninclude gcc-16.1.0-RC-20260423/contrib/uninclude
*** gcc-15.2.0/contrib/uninclude	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/uninclude	Thu Apr 23 11:07:32 2026
***************
*** 27,39 ****
  
  # Header files whose pathnames contain any of the following patterns
  # are considered as standard headers: usr/include, g++-include,
! # include/g++, include/c++/<version>, gcc-lib/<anything>/include.
  
  gawk ${EXCLUDEPATT+-vexclude="$EXCLUDEPATT"} \
       ${INCLUDEPATT+-vinclude="$INCLUDEPATT"} '
  BEGIN { 
    skipping = 0; 
!   cppline = "^# [0-9]+ \"[^\"]*/(usr/include|g\\+\\+-include|include/g\\+\\+|include/c\\+\\+/[^/]+|gcc-lib/[^\"]+/include|gcc/include)/([^\"]+)\"( [1-4])*$"
  }
  !skipping && $0 ~ cppline && 
  (exclude == "" || $3 !~ exclude) && (include == "" || $3 ~ include) {
--- 27,40 ----
  
  # Header files whose pathnames contain any of the following patterns
  # are considered as standard headers: usr/include, g++-include,
! # include/g++, include/c++/<version>, gcc-lib/<anything>/include,
! # lib/gcc/<anything>/include.
  
  gawk ${EXCLUDEPATT+-vexclude="$EXCLUDEPATT"} \
       ${INCLUDEPATT+-vinclude="$INCLUDEPATT"} '
  BEGIN { 
    skipping = 0; 
!   cppline = "^# [0-9]+ \"[^\"]*/(usr/include|g\\+\\+-include|include/g\\+\\+|include/c\\+\\+/[^/]+|gcc-lib/[^\"]+/include|lib/gcc/[^\"]+/include|gcc/include)/([^\"]+)\"( [1-4])*$"
  }
  !skipping && $0 ~ cppline && 
  (exclude == "" || $3 !~ exclude) && (include == "" || $3 ~ include) {
diff -Nrcpad gcc-15.2.0/contrib/unused_functions.py gcc-16.1.0-RC-20260423/contrib/unused_functions.py
*** gcc-15.2.0/contrib/unused_functions.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/unused_functions.py	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,7 ----
  #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
! # Copyright (C) 2018-2026 Free Software Foundation, Inc.
  # Contributed by Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
  # Inspired by bloat-o-meter from busybox.
  
diff -Nrcpad gcc-15.2.0/contrib/update-copyright.py gcc-16.1.0-RC-20260423/contrib/update-copyright.py
*** gcc-15.2.0/contrib/update-copyright.py	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/update-copyright.py	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  #!/usr/bin/env python3
  #
! # Copyright (C) 2013-2026 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,567 ****
  
                  # Weird ways to compose copyright year
                  'GmcOptions.cc',
-                 'gen-evolution.awk',
-                 'gen-cxxapi-file.py',
                  ])
  
          self.skip_dirs |= set ([
--- 560,565 ----
*************** class LibPhobosFilter (GenericFilter):
*** 657,663 ****
          self.skip_files |= set ([
                  # Source modules imported from upstream.
                  'object.d',
!                 '__builtins.di'
                  ])
  
          self.skip_dirs |= set ([
--- 655,662 ----
          self.skip_files |= set ([
                  # Source modules imported from upstream.
                  'object.d',
!                 '__builtins.di',
!                 '__importc_builtins.di',
                  ])
  
          self.skip_dirs |= set ([
*************** class LibStdCxxFilter (GenericFilter):
*** 700,705 ****
--- 699,713 ----
              return re.compile ('// \(C\) Copyright Jeremy Siek')
          return GenericFilter.get_line_filter (self, dir, filename)
  
+ class LibGRustFilter (GenericFilter):
+     def __init__ (self):
+         GenericFilter.__init__ (self)
+ 
+         self.skip_files |= set ([
+                 'arm-intrinsics.html',
+                 '.cargo-checksum.json',
+                 ])
+ 
  class ContribFilter(GenericFilter):
      def __init__ (self):
          GenericFilter.__init__ (self)
*************** class GCCCopyright (Copyright):
*** 731,736 ****
--- 739,745 ----
          self.add_external_author ('AdaCore')
          self.add_external_author ('Advanced Micro Devices Inc.')
          self.add_external_author ('Ami Tavory and Vladimir Dreizin, IBM-HRL.')
+         self.add_external_author ('Andrew Gallant, bluss and Nicolas Koch')
          self.add_external_author ('Cavium Networks.')
          self.add_external_author ('David Malcolm')
          self.add_external_author ('Faraday Technology Corp.')
*************** class GCCCopyright (Copyright):
*** 740,746 ****
--- 749,759 ----
          self.add_external_author ('Hewlett-Packard Company')
          self.add_external_author ('Intel Corporation')
          self.add_external_author ('Information Technology Industry Council.')
+         self.add_external_author ('James Bohl.')
          self.add_external_author ('James Theiler, Brian Gough')
+         self.add_external_author ('Jose E. Marchesi')
+         self.add_external_author ('Jose E. Marchesi.')
+         self.add_external_author ('J. Marcel van der Veer.')
          self.add_external_author ('Makoto Matsumoto and Takuji Nishimura,')
          self.add_external_author ('Mentor Graphics Corporation')
          self.add_external_author ('National Research Council of Canada.')
*************** class GCCCopyright (Copyright):
*** 753,764 ****
--- 766,780 ----
          self.add_external_author ('Silicon Graphics')
          self.add_external_author ('Stephen L. Moshier')
          self.add_external_author ('Sun Microsystems, Inc. All rights reserved.')
+         self.add_external_author ('Symas Corporation')
          self.add_external_author ('The D Language Foundation, All Rights Reserved')
          self.add_external_author ('The fast_float authors')
          self.add_external_author ('The Go Authors.  All rights reserved.')
          self.add_external_author ('The Go Authors. All rights reserved.')
          self.add_external_author ('The Go Authors.')
          self.add_external_author ('The Regents of the University of California.')
+         self.add_external_author ('The Rust Project Developers')
+         self.add_external_author ('The Rust Project Developers. See the COPYRIGHT')
          self.add_external_author ('Ulf Adams')
          self.add_external_author ('Unicode, Inc.')
          self.add_external_author ('University of Illinois at Urbana-Champaign.')
*************** class GCCCmdLine (CmdLine):
*** 788,798 ****
          self.add_dir ('libcpp', LibCppFilter())
          self.add_dir ('libdecnumber')
          # libffi is imported from upstream.
          self.add_dir ('libgcc', LibGCCFilter())
          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')
--- 804,815 ----
          self.add_dir ('libcpp', LibCppFilter())
          self.add_dir ('libdecnumber')
          # libffi is imported from upstream.
+         self.add_dir ('libga68')
          self.add_dir ('libgcc', LibGCCFilter())
          self.add_dir ('libgfortran')
          # libgo is imported from upstream.
          self.add_dir ('libgomp')
!         self.add_dir ('libgrust', LibGRustFilter())
          self.add_dir ('libiberty')
          self.add_dir ('libitm')
          self.add_dir ('libobjc')
*************** class GCCCmdLine (CmdLine):
*** 818,823 ****
--- 835,841 ----
              'libcpp',
              'libdecnumber',
              'libgcc',
+             'libga68',
              'libgfortran',
              'libgomp',
              'libgrust',
diff -Nrcpad gcc-15.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim
*** gcc-15.2.0/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/ftdetect/gcc-dev.vim	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  " Vim file type detection rules for GCC development
  "
! " Copyright (C) 2018-2026 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-15.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gcc-match.vim
*** gcc-15.2.0/contrib/vim-gcc-dev/syntax/gcc-match.vim	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gcc-match.vim	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  " Vim syntax highlighting rules for GCC match-and-simplify language.
  "
! " Copyright (C) 2018-2026 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-15.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gcc-rtl.vim
*** gcc-15.2.0/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gcc-rtl.vim	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  " Syntax highlighting rules for RTL dump files (for Vim).
  "
! " Copyright (C) 2018-2026 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-15.2.0/contrib/vim-gcc-dev/syntax/gimple.vim gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gimple.vim
*** gcc-15.2.0/contrib/vim-gcc-dev/syntax/gimple.vim	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/vim-gcc-dev/syntax/gimple.vim	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,6 ----
  " Syntax highlighting rules for GIMPLE dump files (for Vim).
  "
! " Copyright (C) 2015-2026 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-15.2.0/contrib/vimrc gcc-16.1.0-RC-20260423/contrib/vimrc
*** gcc-15.2.0/contrib/vimrc	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/contrib/vimrc	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 11,17 ----
  "   $ make vimrc
  " from GCC build folder.
  " 
! " Copyright (C) 2014-2026 Free Software Foundation, Inc.
  "
  " This program is free software; you can redistribute it and/or modify
  " it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-15.2.0/fixincludes/ChangeLog gcc-16.1.0-RC-20260423/fixincludes/ChangeLog
*** gcc-15.2.0/fixincludes/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/fixincludes/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,10 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2024-07-11  Iain Sandoe  <iain@sandoe.co.uk>
  
--- 1,79 ----
! 2026-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR libstdc++/113450
! 	PR libstdc++/123176
! 	* inclhack.def (solaris_int8_t): New fix.
! 	* fixincl.x: Regenerate.
! 	* tests/base/sys/int_types.h: New file.
  
! 2026-01-09  Ben Boeckel  <ben.boeckel@kitware.com>
  
! 	* README: Replace gcc-bugs@ with bug reporting link.
! 
! 2026-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	* inclhack.def (AAB_solaris_sys_varargs_h): Remove.
! 	(solaris___restrict): Likewise.
! 	(solaris_complex): Likewise.
! 	(solaris_complex_cxx): Likewise.
! 	(solaris_cxx_linkage): Likewise.
! 	(solaris_getc_strict_stdc): Likewise.
! 	(solaris_gets_c11): Likewise.
! 	(solaris_gets_cxx14): Likewise.
! 	(solaris_int_limits_2): Likewise.
! 	(solaris_math_1): Likewise.
! 	(solaris_math_10): Likewise.
! 	(solaris_math_2): Likewise.
! 	(solaris_math_3): Likewise.
! 	(solaris_math_4): Likewise.
! 	(solaris_math_8): Likewise.
! 	(solaris_math_9): Likewise.
! 	(solaris_math_11): Likewise.
! 	(solaris_once_init_1): Likewise.
! 	(solaris_posix_spawn_restrict): Likewise.
! 	(solaris_rwlock_init_1): Likewise.
! 	(solaris_std___filbuf): Likewise.
! 	(solaris_std_gets_cxx14): Likewise.
! 	(solaris_stdio_tag): Likewise.
! 	(solaris_stdlib_noreturn): Likewise.
! 	(gnu_types): Simplify Solaris guard.
! 	(stdio_stdarg_h): Likewise.
! 	(stdio_va_list): Likewise.
! 	(stdio_va_list_clients): Bypass on Solaris.
! 	(strict_ansi_only): Likewise.
! 	* fixincl.x: Regenerate.
! 	* tests/base/iso/math_c99.h: Remove.
! 	* tests/base/iso/stdio_iso.h: Likewise.
! 	* tests/base/iso/stdlib_c99.h: Likewise.
! 	* tests/base/iso/stdlib_iso.h: Likewise.
! 	* tests/base/spawn.h: Likewise.
! 	* tests/base/stdio_tag.h: Likewise.
! 	* tests/base/sys/feature_tests.h: Likewise.
! 	* tests/base/complex.h 	[SOLARIS_COMPLEX_CHECK]: Remove.
! 	[SOLARIS_COMPLEX_CXX_CHECK]: Likewise.
! 	* tests/base/pthread.h [SOLARIS_ONCE_INIT_1_CHECK]: Likewise.
! 	[SOLARIS_RWLOCK_INIT_1_CHECK]: Likewise
! 	* tests/base/stdio.h [SOLARIS_STD___FILBUF_CHECK]: Likewise.
! 	[SOLARIS_GETS_CXX14_CHECK]: Likewise.
! 	* tests/base/sys/int_limits.h [SOLARIS_INT_LIMITS_2_CHECK]: Likewise.
! 
! 2025-08-28  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	PR bootstrap/118009
! 	PR bootstrap/119089
! 	* inclhack.def (pthread_incomplete_struct_argument): Add bypass.
! 	* fixincl.tpl: Remove reference to svn in comment.
! 	* fixincl.x: Regenerate.
! 
! 2025-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (stdio_va_list): Skip on recent darwin.
! 
! 2025-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	* fixincl.x: Regenerate.
! 	* inclhack.def (stdio_stdarg_h): Skip on darwin.
  
  2024-07-11  Iain Sandoe  <iain@sandoe.co.uk>
  
diff -Nrcpad gcc-15.2.0/fixincludes/README gcc-16.1.0-RC-20260423/fixincludes/README
*** gcc-15.2.0/fixincludes/README	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/README	Thu Apr 23 11:07:32 2026
*************** If you are having some problem with a sy
*** 6,13 ****
  broken by the manufacturer, or is broken by the fixinclude process,
  then you will need to alter or add information to the include fix
  definitions file, ``inclhack.def''.  Please also send relevant
! information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and,
! please, to me:  bkorb@gnu.org.
  
  To make your fix, you will need to do several things:
  
--- 6,13 ----
  broken by the manufacturer, or is broken by the fixinclude process,
  then you will need to alter or add information to the include fix
  definitions file, ``inclhack.def''.  Please also send relevant
! information according to https://gcc.gnu.org/bugs/, to
! gcc-patches@gcc.gnu.org and, please, to me:  bkorb@gnu.org.
  
  To make your fix, you will need to do several things:
  
diff -Nrcpad gcc-15.2.0/fixincludes/fixincl.tpl gcc-16.1.0-RC-20260423/fixincludes/fixincl.tpl
*** gcc-15.2.0/fixincludes/fixincl.tpl	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/fixincl.tpl	Thu Apr 23 11:07:32 2026
*************** x=fixincl.x =]
*** 5,11 ****
       (dne "-D" " * " "/* ")
       (dne " * " "/* ") ) =]
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER [=
     (define re-ct 0) (define max-mach 0) (define ct 0)
     (define HACK "") (define Hack "")    (define tmp "") 
     (shell "date") =]
--- 5,11 ----
       (dne "-D" " * " "/* ")
       (dne " * " "/* ") ) =]
   */
! /* DO NOT MERGE THIS FILE, EITHER [=
     (define re-ct 0) (define max-mach 0) (define ct 0)
     (define HACK "") (define Hack "")    (define tmp "") 
     (shell "date") =]
diff -Nrcpad gcc-15.2.0/fixincludes/fixincl.x gcc-16.1.0-RC-20260423/fixincludes/fixincl.x
*** gcc-15.2.0/fixincludes/fixincl.x	Fri Aug  8 06:52:54 2025
--- gcc-16.1.0-RC-20260423/fixincludes/fixincl.x	Thu Apr 23 11:07:44 2026
***************
*** 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.
   *
--- 2,12 ----
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  February 15, 2026 at 11:11:08 PM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT MERGE THIS FILE, EITHER Sun Feb 15 23:11:08 CET 2026
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
***************
*** 15,21 ****
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 274 fixup descriptions.
   *
   * See README for more information.
   *
--- 15,21 ----
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 251 fixup descriptions.
   *
   * See README for more information.
   *
*************** static const char* apzAab_Fd_Zero_Select
*** 470,507 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
-  *  Description of Aab_Solaris_Sys_Varargs_H fix
-  */
- tSCC zAab_Solaris_Sys_Varargs_HName[] =
-      "AAB_solaris_sys_varargs_h";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zAab_Solaris_Sys_Varargs_HList[] =
-   "sys/varargs.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzAab_Solaris_Sys_Varargs_HMachs[] = {
-         "*-*-solaris*",
-         (const char*)NULL };
- #define AAB_SOLARIS_SYS_VARARGS_H_TEST_CT  0
- #define aAab_Solaris_Sys_Varargs_HTests   (tTestDesc*)NULL
- 
- /*
-  *  Fix Command Arguments for Aab_Solaris_Sys_Varargs_H
-  */
- static const char* apzAab_Solaris_Sys_Varargs_HPatch[] = {
- "#ifdef __STDC__\n\
-   #include <stdarg.h>\n\
- #else\n\
-   #include <varargs.h>\n\
- #endif",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
   *  Description of Aab_Sun_Memcpy fix
   */
  tSCC zAab_Sun_MemcpyName[] =
--- 470,475 ----
*************** tSCC zGnu_TypesList[] =
*** 4618,4624 ****
   *  Machine/OS name selection pattern
   */
  tSCC* apzGnu_TypesMachs[] = {
!         "*-*-solaris2.1[0-9]*",
          (const char*)NULL };
  
  /*
--- 4586,4592 ----
   *  Machine/OS name selection pattern
   */
  tSCC* apzGnu_TypesMachs[] = {
!         "*-*-solaris2*",
          (const char*)NULL };
  
  /*
*************** tSCC zPthread_Incomplete_Struct_Argument
*** 7547,7554 ****
  tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] =
         "struct __jmp_buf_tag";
  
! #define    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT  1
  static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
    { TT_EGREP,    zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };
  
  /*
--- 7515,7529 ----
  tSCC zPthread_Incomplete_Struct_ArgumentSelect0[] =
         "struct __jmp_buf_tag";
  
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zPthread_Incomplete_Struct_ArgumentBypass0[] =
!        "bits/types/struct___jmp_buf_tag.h";
! 
! #define    PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_TEST_CT  2
  static tTestDesc aPthread_Incomplete_Struct_ArgumentTests[] = {
+   { TT_NEGREP,   zPthread_Incomplete_Struct_ArgumentBypass0, (regex_t*)NULL },
    { TT_EGREP,    zPthread_Incomplete_Struct_ArgumentSelect0, (regex_t*)NULL }, };
  
  /*
*************** static const char* apzRs6000_ParamPatch[
*** 7779,8054 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
-  *  Description of Solaris___Restrict fix
-  */
- tSCC zSolaris___RestrictName[] =
-      "solaris___restrict";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris___RestrictList[] =
-   "sys/feature_tests.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris___RestrictMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris___RestrictSelect0[] =
-        "#define[ \t]*_RESTRICT_KYWD[ \t]*restrict";
- 
- #define    SOLARIS___RESTRICT_TEST_CT  1
- static tTestDesc aSolaris___RestrictTests[] = {
-   { TT_EGREP,    zSolaris___RestrictSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris___Restrict
-  */
- static const char* apzSolaris___RestrictPatch[] = {
-     "format",
-     "#ifdef __cplusplus\n\
- #define\t_RESTRICT_KYWD\t__restrict\n\
- #else\n\
- %0\n\
- #endif",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Complex fix
-  */
- tSCC zSolaris_ComplexName[] =
-      "solaris_complex";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_ComplexList[] =
-   "complex.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_ComplexMachs[] = {
-         "*-*-solaris2.*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_ComplexSelect0[] =
-        "#define[ \t]_Complex_I[ \t]_Complex_I";
- 
- #define    SOLARIS_COMPLEX_TEST_CT  1
- static tTestDesc aSolaris_ComplexTests[] = {
-   { TT_EGREP,    zSolaris_ComplexSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Complex
-  */
- static const char* apzSolaris_ComplexPatch[] = { sed_cmd_z,
-     "-e", "s/#define[ \t]_Complex_I[ \t]_Complex_I/#define\t_Complex_I\t(__extension__ 1.0iF)/",
-     "-e", "/#define[ \t]_Imaginary_I[ \t]_Imaginary_I/d",
-     "-e", "/#define[ \t]imaginary[ \t]_Imaginary/d",
-     "-e", "s/#define[ \t]I[ \t]\\{1,\\}_Imaginary_I/#define\tI\t\t_Complex_I/",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Complex_Cxx fix
-  */
- tSCC zSolaris_Complex_CxxName[] =
-      "solaris_complex_cxx";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Complex_CxxList[] =
-   "complex.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Complex_CxxMachs[] = {
-         "*-*-solaris2.*",
-         (const char*)NULL };
- #define SOLARIS_COMPLEX_CXX_TEST_CT  0
- #define aSolaris_Complex_CxxTests   (tTestDesc*)NULL
- 
- /*
-  *  Fix Command Arguments for Solaris_Complex_Cxx
-  */
- static const char* apzSolaris_Complex_CxxPatch[] = { sed_cmd_z,
-     "-e", "/#if[ \t]*!defined(__cplusplus)/c\\\n\
- #ifdef\t__cplusplus\\\n\
- extern \"C\" {\\\n\
- #endif",
-     "-e", "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n\
- #ifdef\t__cplusplus\\\n\
- }\\\n\
- #endif",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Cxx_Linkage fix
-  */
- tSCC zSolaris_Cxx_LinkageName[] =
-      "solaris_cxx_linkage";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Cxx_LinkageList[] =
-   "iso/stdlib_iso.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Cxx_LinkageMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Cxx_LinkageSelect0[] =
-        "(#if __cplusplus >= 199711L)\n\
- (extern \"C\\+\\+\" \\{\n\
- )(.*(bsearch|qsort).*)";
- 
- #define    SOLARIS_CXX_LINKAGE_TEST_CT  1
- static tTestDesc aSolaris_Cxx_LinkageTests[] = {
-   { TT_EGREP,    zSolaris_Cxx_LinkageSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Cxx_Linkage
-  */
- static const char* apzSolaris_Cxx_LinkagePatch[] = {
-     "format",
-     "%1 && !__GNUG__\n\
- %2%3",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Getc_Strict_Stdc fix
-  */
- tSCC zSolaris_Getc_Strict_StdcName[] =
-      "solaris_getc_strict_stdc";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Getc_Strict_StdcList[] =
-   "iso/stdio_iso.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Getc_Strict_StdcMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Getc_Strict_StdcSelect0[] =
-        "(.*&& )!defined\\(_STRICT_STDC\\)(.*)";
- 
- #define    SOLARIS_GETC_STRICT_STDC_TEST_CT  1
- static tTestDesc aSolaris_Getc_Strict_StdcTests[] = {
-   { TT_EGREP,    zSolaris_Getc_Strict_StdcSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Getc_Strict_Stdc
-  */
- static const char* apzSolaris_Getc_Strict_StdcPatch[] = {
-     "format",
-     "%1(!defined(_STRICT_STDC) || (__cplusplus >= 199711L))%2",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Gets_C11 fix
-  */
- tSCC zSolaris_Gets_C11Name[] =
-      "solaris_gets_c11";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Gets_C11List[] =
-   "iso/stdio_iso.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Gets_C11Machs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Gets_C11Select0[] =
-        "(extern char[ \t]*\\*gets\\(char \\*\\));";
- 
- #define    SOLARIS_GETS_C11_TEST_CT  1
- static tTestDesc aSolaris_Gets_C11Tests[] = {
-   { TT_EGREP,    zSolaris_Gets_C11Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Gets_C11
-  */
- static const char* apzSolaris_Gets_C11Patch[] = {
-     "format",
-     "#if __STDC_VERSION__ < 201112L && __cplusplus < 201402L\n\
- %1 __attribute__((__deprecated__));\n\
- #endif",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Gets_Cxx14 fix
-  */
- tSCC zSolaris_Gets_Cxx14Name[] =
-      "solaris_gets_cxx14";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Gets_Cxx14List[] =
-   "iso/stdio_iso.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Gets_Cxx14Machs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Gets_Cxx14Select0[] =
-        "(#if __STDC_VERSION__ < 201112L)\n\
- (extern char\t\\*gets\\(char \\*\\) __ATTR_DEPRECATED;)";
- 
- #define    SOLARIS_GETS_CXX14_TEST_CT  1
- static tTestDesc aSolaris_Gets_Cxx14Tests[] = {
-   { TT_EGREP,    zSolaris_Gets_Cxx14Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Gets_Cxx14
-  */
- static const char* apzSolaris_Gets_Cxx14Patch[] = {
-     "format",
-     "%1 && __cplusplus < 201402L\n\
- %2",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
   *  Description of Solaris_Int_Const fix
   */
  tSCC zSolaris_Int_ConstName[] =
--- 7754,7759 ----
*************** static const char* apzSolaris_Int_Limits
*** 8129,8171 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
-  *  Description of Solaris_Int_Limits_2 fix
-  */
- tSCC zSolaris_Int_Limits_2Name[] =
-      "solaris_int_limits_2";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Int_Limits_2List[] =
-   "sys/int_limits.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Int_Limits_2Machs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Int_Limits_2Select0[] =
-        "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*";
- 
- #define    SOLARIS_INT_LIMITS_2_TEST_CT  1
- static tTestDesc aSolaris_Int_Limits_2Tests[] = {
-   { TT_EGREP,    zSolaris_Int_Limits_2Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Int_Limits_2
-  */
- static const char* apzSolaris_Int_Limits_2Patch[] = {
-     "format",
-     "#define\t%1_FAST16_%2 %132_%2",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
   *  Description of Solaris_Int_Limits_3 fix
   */
  tSCC zSolaris_Int_Limits_3Name[] =
--- 7834,7839 ----
*************** static const char* apzSolaris_Int_Limits
*** 8203,8559 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
!  *  Description of Solaris_Math_1 fix
!  */
! tSCC zSolaris_Math_1Name[] =
!      "solaris_math_1";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_1List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_1Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_1Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zSolaris_Math_1Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_1_TEST_CT  2
! static tTestDesc aSolaris_Math_1Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_1Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_1Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_1
!  */
! static const char* apzSolaris_Math_1Patch[] = {
!     "format",
!     "#define\tHUGE_VA%1\t(__builtin_huge_va%2())",
!     "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_10 fix
!  */
! tSCC zSolaris_Math_10Name[] =
!      "solaris_math_10";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_10List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_10Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_10Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! #define    SOLARIS_MATH_10_TEST_CT  1
! static tTestDesc aSolaris_Math_10Tests[] = {
!   { TT_EGREP,    zSolaris_Math_10Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_10
!  */
! static const char* apzSolaris_Math_10Patch[] = {
!     "format",
!     "#define\tisinf(x) __builtin_isinf(x)",
!     "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n\
! [ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
! [ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*INFINITY[ \t]*\\|\\|[ \t]*\\\\\n\
! [ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*\\(-INFINITY\\);[ \t]*\\}\\)",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_2 fix
!  */
! tSCC zSolaris_Math_2Name[] =
!      "solaris_math_2";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_2List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_2Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_2Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zSolaris_Math_2Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_2_TEST_CT  2
! static tTestDesc aSolaris_Math_2Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_2Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_2Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_2
!  */
! static const char* apzSolaris_Math_2Patch[] = {
!     "format",
!     "#define\tINFINITY\t(__builtin_inff())",
!     "^#define[ \t]+INFINITY[ \t]+__builtin_infinity",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_3 fix
!  */
! tSCC zSolaris_Math_3Name[] =
!      "solaris_math_3";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_3List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_3Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_3Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zSolaris_Math_3Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_3_TEST_CT  2
! static tTestDesc aSolaris_Math_3Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_3Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_3Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_3
!  */
! static const char* apzSolaris_Math_3Patch[] = {
!     "format",
!     "#define\tNAN\t\t(__builtin_nanf(\"\"))",
!     "^#define[ \t]+NAN[ \t]+__builtin_nan",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_4 fix
!  */
! tSCC zSolaris_Math_4Name[] =
!      "solaris_math_4";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_4List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_4Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_4Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zSolaris_Math_4Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_4_TEST_CT  2
! static tTestDesc aSolaris_Math_4Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_4Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_4Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_4
!  */
! static const char* apzSolaris_Math_4Patch[] = {
!     "format",
!     "#define\tfpclassify(x) \\\n\
!   __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))",
!     "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_8 fix
!  */
! tSCC zSolaris_Math_8Name[] =
!      "solaris_math_8";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_8List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_8Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_8Select0[] =
!        "@\\(#\\)math_c99\\.h[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI";
! 
! /*
!  *  content bypass pattern - skip fix if pattern found
!  */
! tSCC zSolaris_Math_8Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_8_TEST_CT  2
! static tTestDesc aSolaris_Math_8Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_8Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_8Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_8
!  */
! static const char* apzSolaris_Math_8Patch[] = {
!     "format",
!     "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
! \t\t\t   ? __builtin_signbitf(x) \\\n\
! \t\t\t   : sizeof(x) == sizeof(long double) \\\n\
! \t\t\t     ? __builtin_signbitl(x) \\\n\
! \t\t\t     : __builtin_signbit(x))",
!     "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_9 fix
   */
! tSCC zSolaris_Math_9Name[] =
!      "solaris_math_9";
  
  /*
   *  File name selection pattern
   */
! tSCC zSolaris_Math_9List[] =
!   "iso/math_c99.h\0";
  /*
   *  Machine/OS name selection pattern
   */
! #define apzSolaris_Math_9Machs (const char**)NULL
  
  /*
   *  content selection pattern - do fix if pattern found
   */
! tSCC zSolaris_Math_9Select0[] =
!        "@\\(#\\)math_c99.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
! tSCC zSolaris_Math_9Bypass0[] =
!        "__GNUC__";
! 
! #define    SOLARIS_MATH_9_TEST_CT  2
! static tTestDesc aSolaris_Math_9Tests[] = {
!   { TT_NEGREP,   zSolaris_Math_9Bypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Math_9Select0, (regex_t*)NULL }, };
! 
! /*
!  *  Fix Command Arguments for Solaris_Math_9
!  */
! static const char* apzSolaris_Math_9Patch[] = {
!     "format",
!     "#define\t%1(x, y)%2__builtin_%1(x, y)",
!     "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) __builtin_[a-z]+\\(y\\)\\)",
!     (char*)NULL };
! 
! /* * * * * * * * * * * * * * * * * * * * * * * * * *
!  *
!  *  Description of Solaris_Math_11 fix
!  */
! tSCC zSolaris_Math_11Name[] =
!      "solaris_math_11";
! 
! /*
!  *  File name selection pattern
!  */
! tSCC zSolaris_Math_11List[] =
!   "iso/math_c99.h\0";
! /*
!  *  Machine/OS name selection pattern
!  */
! #define apzSolaris_Math_11Machs (const char**)NULL
! 
! /*
!  *  content selection pattern - do fix if pattern found
!  */
! tSCC zSolaris_Math_11Select0[] =
!        "@\\(#\\)math_c99\\.h[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ ";
  
! #define    SOLARIS_MATH_11_TEST_CT  1
! static tTestDesc aSolaris_Math_11Tests[] = {
!   { TT_EGREP,    zSolaris_Math_11Select0, (regex_t*)NULL }, };
  
  /*
!  *  Fix Command Arguments for Solaris_Math_11
   */
! static const char* apzSolaris_Math_11Patch[] = {
      "format",
!     "#undef\tsignbit\n\
! #define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n\
! \t\t\t   ? __builtin_signbitf(x) \\\n\
! \t\t\t   : sizeof(x) == sizeof(long double) \\\n\
! \t\t\t     ? __builtin_signbitl(x) \\\n\
! \t\t\t     : __builtin_signbit(x))",
!     "^#undef[ \t]+signbit\n\
! #if defined\\(__sparc\\)\n\
! #define[ \t]+signbit\\(x\\)[ \t]+__extension__\\( \\\\\n\
! [ \t]+\\{[ \t]*__typeof\\(x\\)[ \t]*__x_s[ \t]*=[ \t]*\\(x\\);[ \t]*\\\\\n\
! [ \t]+\\(int\\)[ \t]*\\(\\*\\(unsigned[ \t]*\\*\\)[ \t]*\\&__x_s[ \t]*>>[ \t]*31\\);[ \t]*\\}\\)\n\
! #elif defined\\(__i386\\) \\|\\| defined\\(__amd64\\)\n\
! #define[ \t]+signbit\\(x\\)[ \t]+__extension__\\( \\\\\n\
! [ \t]+\\{ __typeof\\(x\\) __x_s = \\(x\\); \\\\\n\
! [ \t]+\\(sizeof \\(__x_s\\) == sizeof \\(float\\) \\? \\\\\n\
! [ \t]+\\(int\\) \\(\\*\\(unsigned \\*\\) \\&__x_s >> 31\\) : \\\\\n\
! [ \t]+sizeof \\(__x_s\\) == sizeof \\(double\\) \\? \\\\\n\
! [ \t]+\\(int\\) \\(\\(\\(unsigned \\*\\) \\&__x_s\\)\\[1\\] >> 31\\) : \\\\\n\
! [ \t]+\\(int\\) \\(\\(\\(unsigned short \\*\\) \\&__x_s\\)\\[4\\] >> 15\\)\\); \\}\\)\n\
  #endif",
      (char*)NULL };
  
--- 7871,7919 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
!  *  Description of Solaris_Int8_T fix
   */
! tSCC zSolaris_Int8_TName[] =
!      "solaris_int8_t";
  
  /*
   *  File name selection pattern
   */
! tSCC zSolaris_Int8_TList[] =
!   "sys/int_types.h\0";
  /*
   *  Machine/OS name selection pattern
   */
! tSCC* apzSolaris_Int8_TMachs[] = {
!         "*-*-solaris2*",
!         (const char*)NULL };
  
  /*
   *  content selection pattern - do fix if pattern found
   */
! tSCC zSolaris_Int8_TSelect0[] =
!        "^[ \t]*typedef[ \t]*char[ \t]*int(|_fast|_least)8_t.*";
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
! tSCC zSolaris_Int8_TBypass0[] =
!        "_LEGACY_INT8_T";
  
! #define    SOLARIS_INT8_T_TEST_CT  2
! static tTestDesc aSolaris_Int8_TTests[] = {
!   { TT_NEGREP,   zSolaris_Int8_TBypass0, (regex_t*)NULL },
!   { TT_EGREP,    zSolaris_Int8_TSelect0, (regex_t*)NULL }, };
  
  /*
!  *  Fix Command Arguments for Solaris_Int8_T
   */
! static const char* apzSolaris_Int8_TPatch[] = {
      "format",
!     "#if !defined(_LEGACY_INT8_T)\n\
! typedef signed char int%18_t;\n\
! #else\n\
! %0\n\
  #endif",
      (char*)NULL };
  
*************** static const char* apzSolaris_Math_12Pat
*** 8602,8682 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
-  *  Description of Solaris_Once_Init_1 fix
-  */
- tSCC zSolaris_Once_Init_1Name[] =
-      "solaris_once_init_1";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Once_Init_1List[] =
-   "pthread.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Once_Init_1Machs[] = {
-         "*-*-solaris*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Once_Init_1Select0[] =
-        "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
- 
- #define    SOLARIS_ONCE_INIT_1_TEST_CT  1
- static tTestDesc aSolaris_Once_Init_1Tests[] = {
-   { TT_EGREP,    zSolaris_Once_Init_1Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Once_Init_1
-  */
- static const char* apzSolaris_Once_Init_1Patch[] = {
-     "format",
-     "%1{%2}%3",
-     "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Posix_Spawn_Restrict fix
-  */
- tSCC zSolaris_Posix_Spawn_RestrictName[] =
-      "solaris_posix_spawn_restrict";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Posix_Spawn_RestrictList[] =
-   "spawn.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Posix_Spawn_RestrictMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Posix_Spawn_RestrictSelect0[] =
-        "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)";
- 
- #define    SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT  1
- static tTestDesc aSolaris_Posix_Spawn_RestrictTests[] = {
-   { TT_EGREP,    zSolaris_Posix_Spawn_RestrictSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Posix_Spawn_Restrict
-  */
- static const char* apzSolaris_Posix_Spawn_RestrictPatch[] = {
-     "format",
-     "%1*_RESTRICT_KYWD %2%3",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
   *  Description of Solaris_Pow_Int_Overload fix
   */
  tSCC zSolaris_Pow_Int_OverloadName[] =
--- 7962,7967 ----
*************** static const char* apzSolaris_Pow_Int_Ov
*** 8717,8930 ****
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
-  *  Description of Solaris_Rwlock_Init_1 fix
-  */
- tSCC zSolaris_Rwlock_Init_1Name[] =
-      "solaris_rwlock_init_1";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Rwlock_Init_1List[] =
-   "pthread.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Rwlock_Init_1Machs[] = {
-         "*-*-solaris*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Rwlock_Init_1Select0[] =
-        "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
- 
- #define    SOLARIS_RWLOCK_INIT_1_TEST_CT  1
- static tTestDesc aSolaris_Rwlock_Init_1Tests[] = {
-   { TT_EGREP,    zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Rwlock_Init_1
-  */
- static const char* apzSolaris_Rwlock_Init_1Patch[] = {
-     "format",
-     "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n\
- %0\n\
- #else\n\
- %1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n\
- #endif",
-     "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Std___Filbuf fix
-  */
- tSCC zSolaris_Std___FilbufName[] =
-      "solaris_std___filbuf";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Std___FilbufList[] =
-   "stdio.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Std___FilbufMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Std___FilbufSelect0[] =
-        "(using std::perror;\n\
- )(#endif)";
- 
- /*
-  *  content bypass pattern - skip fix if pattern found
-  */
- tSCC zSolaris_Std___FilbufBypass0[] =
-        "using std::__filbuf";
- 
- #define    SOLARIS_STD___FILBUF_TEST_CT  2
- static tTestDesc aSolaris_Std___FilbufTests[] = {
-   { TT_NEGREP,   zSolaris_Std___FilbufBypass0, (regex_t*)NULL },
-   { TT_EGREP,    zSolaris_Std___FilbufSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Std___Filbuf
-  */
- static const char* apzSolaris_Std___FilbufPatch[] = {
-     "format",
-     "%1#ifndef _LP64\n\
- using std::__filbuf;\n\
- using std::__flsbuf;\n\
- #endif\n\
- %2",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Std_Gets_Cxx14 fix
-  */
- tSCC zSolaris_Std_Gets_Cxx14Name[] =
-      "solaris_std_gets_cxx14";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Std_Gets_Cxx14List[] =
-   "stdio.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Std_Gets_Cxx14Machs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Std_Gets_Cxx14Select0[] =
-        "using std::gets;";
- 
- #define    SOLARIS_STD_GETS_CXX14_TEST_CT  1
- static tTestDesc aSolaris_Std_Gets_Cxx14Tests[] = {
-   { TT_EGREP,    zSolaris_Std_Gets_Cxx14Select0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Std_Gets_Cxx14
-  */
- static const char* apzSolaris_Std_Gets_Cxx14Patch[] = {
-     "format",
-     "#if __cplusplus < 201402L\n\
- %0\n\
- #endif",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Stdio_Tag fix
-  */
- tSCC zSolaris_Stdio_TagName[] =
-      "solaris_stdio_tag";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Stdio_TagList[] =
-   "stdio_tag.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- #define apzSolaris_Stdio_TagMachs (const char**)NULL
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Stdio_TagSelect0[] =
-        "__cplusplus < 54321L";
- 
- /*
-  *  content bypass pattern - skip fix if pattern found
-  */
- tSCC zSolaris_Stdio_TagBypass0[] =
-        "__GNUC__";
- 
- #define    SOLARIS_STDIO_TAG_TEST_CT  2
- static tTestDesc aSolaris_Stdio_TagTests[] = {
-   { TT_NEGREP,   zSolaris_Stdio_TagBypass0, (regex_t*)NULL },
-   { TT_EGREP,    zSolaris_Stdio_TagSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Stdio_Tag
-  */
- static const char* apzSolaris_Stdio_TagPatch[] = { sed_cmd_z,
-     "-e", "s/defined(__cplusplus) && (__cplusplus < 54321L)/0/",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
-  *  Description of Solaris_Stdlib_Noreturn fix
-  */
- tSCC zSolaris_Stdlib_NoreturnName[] =
-      "solaris_stdlib_noreturn";
- 
- /*
-  *  File name selection pattern
-  */
- tSCC zSolaris_Stdlib_NoreturnList[] =
-   "iso/stdlib_c99.h\0";
- /*
-  *  Machine/OS name selection pattern
-  */
- tSCC* apzSolaris_Stdlib_NoreturnMachs[] = {
-         "*-*-solaris2*",
-         (const char*)NULL };
- 
- /*
-  *  content selection pattern - do fix if pattern found
-  */
- tSCC zSolaris_Stdlib_NoreturnSelect0[] =
-        "(extern) _Noreturn (void quick_exit\\(int\\));";
- 
- #define    SOLARIS_STDLIB_NORETURN_TEST_CT  1
- static tTestDesc aSolaris_Stdlib_NoreturnTests[] = {
-   { TT_EGREP,    zSolaris_Stdlib_NoreturnSelect0, (regex_t*)NULL }, };
- 
- /*
-  *  Fix Command Arguments for Solaris_Stdlib_Noreturn
-  */
- static const char* apzSolaris_Stdlib_NoreturnPatch[] = {
-     "format",
-     "%1 %2 __attribute__((__noreturn__));",
-     (char*)NULL };
- 
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-  *
   *  Description of Statsswtch fix
   */
  tSCC zStatsswtchName[] =
--- 8002,8007 ----
*************** tSCC zStdio_Stdarg_HList[] =
*** 8974,8987 ****
   *  Machine/OS name selection pattern
   */
  tSCC* apzStdio_Stdarg_HMachs[] = {
!         "*-*-solaris2.1[0-9]*",
          (const char*)NULL };
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zStdio_Stdarg_HBypass0[] =
!        "include.*(stdarg.h|machine/ansi.h)";
  
  #define    STDIO_STDARG_H_TEST_CT  1
  static tTestDesc aStdio_Stdarg_HTests[] = {
--- 8051,8064 ----
   *  Machine/OS name selection pattern
   */
  tSCC* apzStdio_Stdarg_HMachs[] = {
!         "*-*-solaris2*",
          (const char*)NULL };
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zStdio_Stdarg_HBypass0[] =
!        "include.*(stdarg.h|machine/ansi.h|_stdio.h)";
  
  #define    STDIO_STDARG_H_TEST_CT  1
  static tTestDesc aStdio_Stdarg_HTests[] = {
*************** tSCC zStdio_Va_ListList[] =
*** 9012,9025 ****
   *  Machine/OS name selection pattern
   */
  tSCC* apzStdio_Va_ListMachs[] = {
!         "*-*-solaris2.1[0-9]*",
          (const char*)NULL };
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zStdio_Va_ListBypass0[] =
!        "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list";
  
  #define    STDIO_VA_LIST_TEST_CT  1
  static tTestDesc aStdio_Va_ListTests[] = {
--- 8089,8102 ----
   *  Machine/OS name selection pattern
   */
  tSCC* apzStdio_Va_ListMachs[] = {
!         "*-*-solaris2*",
          (const char*)NULL };
  
  /*
   *  content bypass pattern - skip fix if pattern found
   */
  tSCC zStdio_Va_ListBypass0[] =
!        "__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list|_stdio.h";
  
  #define    STDIO_VA_LIST_TEST_CT  1
  static tTestDesc aStdio_Va_ListTests[] = {
*************** tSCC zStdio_Va_List_ClientsList[] =
*** 9060,9066 ****
  /*
   *  Machine/OS name selection pattern
   */
! #define apzStdio_Va_List_ClientsMachs (const char**)NULL
  
  /*
   *  content bypass pattern - skip fix if pattern found
--- 8137,8145 ----
  /*
   *  Machine/OS name selection pattern
   */
! tSCC* apzStdio_Va_List_ClientsMachs[] = {
!         "*-*-solaris2.1[0-9]*",
!         (const char*)NULL };
  
  /*
   *  content bypass pattern - skip fix if pattern found
*************** tSCC zStrict_Ansi_OnlyName[] =
*** 9200,9206 ****
  /*
   *  Machine/OS name selection pattern
   */
! #define apzStrict_Ansi_OnlyMachs (const char**)NULL
  
  /*
   *  content selection pattern - do fix if pattern found
--- 8279,8287 ----
  /*
   *  Machine/OS name selection pattern
   */
! tSCC* apzStrict_Ansi_OnlyMachs[] = {
!         "*-*-solaris2*",
!         (const char*)NULL };
  
  /*
   *  content selection pattern - do fix if pattern found
*************** static const char* apzX11_SprintfPatch[]
*** 11202,11210 ****
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          318
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            274
  
  /*
   *  Enumerate the fixes
--- 10283,10291 ----
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          291
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            251
  
  /*
   *  Enumerate the fixes
*************** typedef enum {
*** 11217,11223 ****
      AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
      AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
      AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
-     AAB_SOLARIS_SYS_VARARGS_H_FIXIDX,
      AAB_SUN_MEMCPY_FIXIDX,
      AAB_VXWORKS_ASSERT_FIXIDX,
      AAB_VXWORKS_REGS_VXTYPES_FIXIDX,
--- 10298,10303 ----
*************** typedef enum {
*** 11399,11432 ****
      RS6000_DOUBLE_FIXIDX,
      RS6000_FCHMOD_FIXIDX,
      RS6000_PARAM_FIXIDX,
-     SOLARIS___RESTRICT_FIXIDX,
-     SOLARIS_COMPLEX_FIXIDX,
-     SOLARIS_COMPLEX_CXX_FIXIDX,
-     SOLARIS_CXX_LINKAGE_FIXIDX,
-     SOLARIS_GETC_STRICT_STDC_FIXIDX,
-     SOLARIS_GETS_C11_FIXIDX,
-     SOLARIS_GETS_CXX14_FIXIDX,
      SOLARIS_INT_CONST_FIXIDX,
      SOLARIS_INT_LIMITS_1_FIXIDX,
-     SOLARIS_INT_LIMITS_2_FIXIDX,
      SOLARIS_INT_LIMITS_3_FIXIDX,
!     SOLARIS_MATH_1_FIXIDX,
!     SOLARIS_MATH_10_FIXIDX,
!     SOLARIS_MATH_2_FIXIDX,
!     SOLARIS_MATH_3_FIXIDX,
!     SOLARIS_MATH_4_FIXIDX,
!     SOLARIS_MATH_8_FIXIDX,
!     SOLARIS_MATH_9_FIXIDX,
!     SOLARIS_MATH_11_FIXIDX,
      SOLARIS_MATH_12_FIXIDX,
-     SOLARIS_ONCE_INIT_1_FIXIDX,
-     SOLARIS_POSIX_SPAWN_RESTRICT_FIXIDX,
      SOLARIS_POW_INT_OVERLOAD_FIXIDX,
-     SOLARIS_RWLOCK_INIT_1_FIXIDX,
-     SOLARIS_STD___FILBUF_FIXIDX,
-     SOLARIS_STD_GETS_CXX14_FIXIDX,
-     SOLARIS_STDIO_TAG_FIXIDX,
-     SOLARIS_STDLIB_NORETURN_FIXIDX,
      STATSSWTCH_FIXIDX,
      STDIO_STDARG_H_FIXIDX,
      STDIO_VA_LIST_FIXIDX,
--- 10479,10490 ----
      RS6000_DOUBLE_FIXIDX,
      RS6000_FCHMOD_FIXIDX,
      RS6000_PARAM_FIXIDX,
      SOLARIS_INT_CONST_FIXIDX,
      SOLARIS_INT_LIMITS_1_FIXIDX,
      SOLARIS_INT_LIMITS_3_FIXIDX,
!     SOLARIS_INT8_T_FIXIDX,
      SOLARIS_MATH_12_FIXIDX,
      SOLARIS_POW_INT_OVERLOAD_FIXIDX,
      STATSSWTCH_FIXIDX,
      STDIO_STDARG_H_FIXIDX,
      STDIO_VA_LIST_FIXIDX,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 11522,11532 ****
       AAB_FD_ZERO_SELECTBITS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
       aAab_Fd_Zero_Selectbits_HTests,   apzAab_Fd_Zero_Selectbits_HPatch, 0 },
  
-   {  zAab_Solaris_Sys_Varargs_HName,    zAab_Solaris_Sys_Varargs_HList,
-      apzAab_Solaris_Sys_Varargs_HMachs,
-      AAB_SOLARIS_SYS_VARARGS_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
-      aAab_Solaris_Sys_Varargs_HTests,   apzAab_Solaris_Sys_Varargs_HPatch, 0 },
- 
    {  zAab_Sun_MemcpyName,    zAab_Sun_MemcpyList,
       apzAab_Sun_MemcpyMachs,
       AAB_SUN_MEMCPY_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
--- 10580,10585 ----
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 12432,12472 ****
       RS6000_PARAM_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aRs6000_ParamTests,   apzRs6000_ParamPatch, 0 },
  
-   {  zSolaris___RestrictName,    zSolaris___RestrictList,
-      apzSolaris___RestrictMachs,
-      SOLARIS___RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris___RestrictTests,   apzSolaris___RestrictPatch, 0 },
- 
-   {  zSolaris_ComplexName,    zSolaris_ComplexList,
-      apzSolaris_ComplexMachs,
-      SOLARIS_COMPLEX_TEST_CT, FD_MACH_ONLY,
-      aSolaris_ComplexTests,   apzSolaris_ComplexPatch, 0 },
- 
-   {  zSolaris_Complex_CxxName,    zSolaris_Complex_CxxList,
-      apzSolaris_Complex_CxxMachs,
-      SOLARIS_COMPLEX_CXX_TEST_CT, FD_MACH_ONLY,
-      aSolaris_Complex_CxxTests,   apzSolaris_Complex_CxxPatch, 0 },
- 
-   {  zSolaris_Cxx_LinkageName,    zSolaris_Cxx_LinkageList,
-      apzSolaris_Cxx_LinkageMachs,
-      SOLARIS_CXX_LINKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Cxx_LinkageTests,   apzSolaris_Cxx_LinkagePatch, 0 },
- 
-   {  zSolaris_Getc_Strict_StdcName,    zSolaris_Getc_Strict_StdcList,
-      apzSolaris_Getc_Strict_StdcMachs,
-      SOLARIS_GETC_STRICT_STDC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Getc_Strict_StdcTests,   apzSolaris_Getc_Strict_StdcPatch, 0 },
- 
-   {  zSolaris_Gets_C11Name,    zSolaris_Gets_C11List,
-      apzSolaris_Gets_C11Machs,
-      SOLARIS_GETS_C11_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Gets_C11Tests,   apzSolaris_Gets_C11Patch, 0 },
- 
-   {  zSolaris_Gets_Cxx14Name,    zSolaris_Gets_Cxx14List,
-      apzSolaris_Gets_Cxx14Machs,
-      SOLARIS_GETS_CXX14_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Gets_Cxx14Tests,   apzSolaris_Gets_Cxx14Patch, 0 },
- 
    {  zSolaris_Int_ConstName,    zSolaris_Int_ConstList,
       apzSolaris_Int_ConstMachs,
       SOLARIS_INT_CONST_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
--- 11485,11490 ----
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 12477,12577 ****
       SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Int_Limits_1Tests,   apzSolaris_Int_Limits_1Patch, 0 },
  
-   {  zSolaris_Int_Limits_2Name,    zSolaris_Int_Limits_2List,
-      apzSolaris_Int_Limits_2Machs,
-      SOLARIS_INT_LIMITS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Int_Limits_2Tests,   apzSolaris_Int_Limits_2Patch, 0 },
- 
    {  zSolaris_Int_Limits_3Name,    zSolaris_Int_Limits_3List,
       apzSolaris_Int_Limits_3Machs,
       SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Int_Limits_3Tests,   apzSolaris_Int_Limits_3Patch, 0 },
  
!   {  zSolaris_Math_1Name,    zSolaris_Math_1List,
!      apzSolaris_Math_1Machs,
!      SOLARIS_MATH_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_1Tests,   apzSolaris_Math_1Patch, 0 },
! 
!   {  zSolaris_Math_10Name,    zSolaris_Math_10List,
!      apzSolaris_Math_10Machs,
!      SOLARIS_MATH_10_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_10Tests,   apzSolaris_Math_10Patch, 0 },
! 
!   {  zSolaris_Math_2Name,    zSolaris_Math_2List,
!      apzSolaris_Math_2Machs,
!      SOLARIS_MATH_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_2Tests,   apzSolaris_Math_2Patch, 0 },
! 
!   {  zSolaris_Math_3Name,    zSolaris_Math_3List,
!      apzSolaris_Math_3Machs,
!      SOLARIS_MATH_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_3Tests,   apzSolaris_Math_3Patch, 0 },
! 
!   {  zSolaris_Math_4Name,    zSolaris_Math_4List,
!      apzSolaris_Math_4Machs,
!      SOLARIS_MATH_4_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_4Tests,   apzSolaris_Math_4Patch, 0 },
! 
!   {  zSolaris_Math_8Name,    zSolaris_Math_8List,
!      apzSolaris_Math_8Machs,
!      SOLARIS_MATH_8_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_8Tests,   apzSolaris_Math_8Patch, 0 },
! 
!   {  zSolaris_Math_9Name,    zSolaris_Math_9List,
!      apzSolaris_Math_9Machs,
!      SOLARIS_MATH_9_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_9Tests,   apzSolaris_Math_9Patch, 0 },
! 
!   {  zSolaris_Math_11Name,    zSolaris_Math_11List,
!      apzSolaris_Math_11Machs,
!      SOLARIS_MATH_11_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Math_11Tests,   apzSolaris_Math_11Patch, 0 },
  
    {  zSolaris_Math_12Name,    zSolaris_Math_12List,
       apzSolaris_Math_12Machs,
       SOLARIS_MATH_12_TEST_CT, FD_MACH_ONLY,
       aSolaris_Math_12Tests,   apzSolaris_Math_12Patch, 0 },
  
-   {  zSolaris_Once_Init_1Name,    zSolaris_Once_Init_1List,
-      apzSolaris_Once_Init_1Machs,
-      SOLARIS_ONCE_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Once_Init_1Tests,   apzSolaris_Once_Init_1Patch, 0 },
- 
-   {  zSolaris_Posix_Spawn_RestrictName,    zSolaris_Posix_Spawn_RestrictList,
-      apzSolaris_Posix_Spawn_RestrictMachs,
-      SOLARIS_POSIX_SPAWN_RESTRICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Posix_Spawn_RestrictTests,   apzSolaris_Posix_Spawn_RestrictPatch, 0 },
- 
    {  zSolaris_Pow_Int_OverloadName,    zSolaris_Pow_Int_OverloadList,
       apzSolaris_Pow_Int_OverloadMachs,
       SOLARIS_POW_INT_OVERLOAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Pow_Int_OverloadTests,   apzSolaris_Pow_Int_OverloadPatch, 0 },
  
-   {  zSolaris_Rwlock_Init_1Name,    zSolaris_Rwlock_Init_1List,
-      apzSolaris_Rwlock_Init_1Machs,
-      SOLARIS_RWLOCK_INIT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Rwlock_Init_1Tests,   apzSolaris_Rwlock_Init_1Patch, 0 },
- 
-   {  zSolaris_Std___FilbufName,    zSolaris_Std___FilbufList,
-      apzSolaris_Std___FilbufMachs,
-      SOLARIS_STD___FILBUF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Std___FilbufTests,   apzSolaris_Std___FilbufPatch, 0 },
- 
-   {  zSolaris_Std_Gets_Cxx14Name,    zSolaris_Std_Gets_Cxx14List,
-      apzSolaris_Std_Gets_Cxx14Machs,
-      SOLARIS_STD_GETS_CXX14_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Std_Gets_Cxx14Tests,   apzSolaris_Std_Gets_Cxx14Patch, 0 },
- 
-   {  zSolaris_Stdio_TagName,    zSolaris_Stdio_TagList,
-      apzSolaris_Stdio_TagMachs,
-      SOLARIS_STDIO_TAG_TEST_CT, FD_MACH_ONLY,
-      aSolaris_Stdio_TagTests,   apzSolaris_Stdio_TagPatch, 0 },
- 
-   {  zSolaris_Stdlib_NoreturnName,    zSolaris_Stdlib_NoreturnList,
-      apzSolaris_Stdlib_NoreturnMachs,
-      SOLARIS_STDLIB_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
-      aSolaris_Stdlib_NoreturnTests,   apzSolaris_Stdlib_NoreturnPatch, 0 },
- 
    {  zStatsswtchName,    zStatsswtchList,
       apzStatsswtchMachs,
       STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
--- 11495,11520 ----
       SOLARIS_INT_LIMITS_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Int_Limits_1Tests,   apzSolaris_Int_Limits_1Patch, 0 },
  
    {  zSolaris_Int_Limits_3Name,    zSolaris_Int_Limits_3List,
       apzSolaris_Int_Limits_3Machs,
       SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Int_Limits_3Tests,   apzSolaris_Int_Limits_3Patch, 0 },
  
!   {  zSolaris_Int8_TName,    zSolaris_Int8_TList,
!      apzSolaris_Int8_TMachs,
!      SOLARIS_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
!      aSolaris_Int8_TTests,   apzSolaris_Int8_TPatch, 0 },
  
    {  zSolaris_Math_12Name,    zSolaris_Math_12List,
       apzSolaris_Math_12Machs,
       SOLARIS_MATH_12_TEST_CT, FD_MACH_ONLY,
       aSolaris_Math_12Tests,   apzSolaris_Math_12Patch, 0 },
  
    {  zSolaris_Pow_Int_OverloadName,    zSolaris_Pow_Int_OverloadList,
       apzSolaris_Pow_Int_OverloadMachs,
       SOLARIS_POW_INT_OVERLOAD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Pow_Int_OverloadTests,   apzSolaris_Pow_Int_OverloadPatch, 0 },
  
    {  zStatsswtchName,    zStatsswtchList,
       apzStatsswtchMachs,
       STATSSWTCH_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 12589,12595 ****
  
    {  zStdio_Va_List_ClientsName,    zStdio_Va_List_ClientsList,
       apzStdio_Va_List_ClientsMachs,
!      STDIO_VA_LIST_CLIENTS_TEST_CT, FD_MACH_ONLY,
       aStdio_Va_List_ClientsTests,   apzStdio_Va_List_ClientsPatch, 0 },
  
    {  zStrict_Ansi_NotName,    zStrict_Ansi_NotList,
--- 11532,11538 ----
  
    {  zStdio_Va_List_ClientsName,    zStdio_Va_List_ClientsList,
       apzStdio_Va_List_ClientsMachs,
!      STDIO_VA_LIST_CLIENTS_TEST_CT, FD_MACH_IFNOT,
       aStdio_Va_List_ClientsTests,   apzStdio_Va_List_ClientsPatch, 0 },
  
    {  zStrict_Ansi_NotName,    zStrict_Ansi_NotList,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 12604,12610 ****
  
    {  zStrict_Ansi_OnlyName,    zStrict_Ansi_OnlyList,
       apzStrict_Ansi_OnlyMachs,
!      STRICT_ANSI_ONLY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aStrict_Ansi_OnlyTests,   apzStrict_Ansi_OnlyPatch, 0 },
  
    {  zStruct_FileName,    zStruct_FileList,
--- 11547,11553 ----
  
    {  zStrict_Ansi_OnlyName,    zStrict_Ansi_OnlyList,
       apzStrict_Ansi_OnlyMachs,
!      STRICT_ANSI_ONLY_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
       aStrict_Ansi_OnlyTests,   apzStrict_Ansi_OnlyPatch, 0 },
  
    {  zStruct_FileName,    zStruct_FileList,
diff -Nrcpad gcc-15.2.0/fixincludes/inclhack.def gcc-16.1.0-RC-20260423/fixincludes/inclhack.def
*** gcc-15.2.0/fixincludes/inclhack.def	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/inclhack.def	Thu Apr 23 11:07:32 2026
*************** fix = {
*** 341,364 ****
  };
  
  /*
-  * Solaris <sys/varargs.h> is a DDK (aka kernel-land) header providing
-  * the same interface as <stdarg.h>.  No idea why they couldn't have just
-  * used the standard header.
-  */
- fix = {
-     hackname = AAB_solaris_sys_varargs_h;
-     files    = "sys/varargs.h";
-     mach     = '*-*-solaris*';
-     replace  = <<-  _EndOfHeader_
- 	#ifdef __STDC__
- 	  #include <stdarg.h>
- 	#else
- 	  #include <varargs.h>
- 	#endif
- 	_EndOfHeader_;
- };
- 
- /*
   *  Fix non-ANSI memcpy declaration that conflicts with gcc's builtin
   *  declaration on Sun OS 4.x.  We must only fix this on Sun OS 4.x, because
   *  many other systems have similar text but correct versions of the file.
--- 341,346 ----
*************** fix = {
*** 2346,2353 ****
      bypass    = '_GCC_(PTRDIFF|SIZE|WCHAR)_T';
      select    = "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";
      c_fix     = gnu_type;
!     /* The Solaris 10 headers already define these types correctly.  */
!     mach   = '*-*-solaris2.1[0-9]*';
      not_machine = true;
  
      test_text = "typedef long int ptrdiff_t; /* long int */\n"
--- 2328,2335 ----
      bypass    = '_GCC_(PTRDIFF|SIZE|WCHAR)_T';
      select    = "^[ \t]*typedef[ \t]+.*[ \t](ptrdiff|size|wchar)_t;";
      c_fix     = gnu_type;
!     /* The Solaris 10+ headers already define these types correctly.  */
!     mach   = '*-*-solaris2*';
      not_machine = true;
  
      test_text = "typedef long int ptrdiff_t; /* long int */\n"
*************** fix = {
*** 3803,3808 ****
--- 3785,3791 ----
      hackname  = pthread_incomplete_struct_argument;
      files     = pthread.h;
      select    = "struct __jmp_buf_tag";
+     bypass    = "bits/types/struct___jmp_buf_tag.h";
      c_fix     = format;
      c_fix_arg = "%1 *%2%3";
      c_fix_arg = "^(extern int __sigsetjmp \\(struct __jmp_buf_tag) "
*************** fix = {
*** 3894,4026 ****
  };
  
  /*
-  *  Solaris 10+ <sys/feature_tests.h> defines _RESTRICT_KYWD as restrict
-  *  for C99.  This is wrong for C++, which needs many C99 features, but
-  *  only supports __restrict.
-  */
- fix = {
-     hackname  = solaris___restrict;
-     files     = sys/feature_tests.h;
-     select    = "#define[ \t]*_RESTRICT_KYWD[ \t]*restrict";
-     mach      = "*-*-solaris2*";
-     c_fix     = format;
-     c_fix_arg = "#ifdef __cplusplus\n#define\t_RESTRICT_KYWD\t__restrict\n"
-     	        "#else\n%0\n#endif";
-     test_text = "#define	_RESTRICT_KYWD	restrict";
- };
- 
- /*
-  * Solaris 10+ complex.h defines _Complex_I and _Imaginary_I in terms of
-  * themselves, which are Sun Studio compiler intrinsics.  Remove _Imaginary_I
-  * and imaginary definitions which are not supported by GCC.
-  */
- fix = {
-     hackname  = solaris_complex;
-     mach      = "*-*-solaris2.*";
-     files     = complex.h;
-     select    = "#define[ \t]_Complex_I[ \t]_Complex_I";
-     sed	      = "s/#define[ \t]_Complex_I[ \t]_Complex_I/"
- 		"#define\t_Complex_I\t(__extension__ 1.0iF)/";
-     sed	      = "/#define[ \t]_Imaginary_I[ \t]_Imaginary_I/d";
-     sed	      = "/#define[ \t]imaginary[ \t]_Imaginary/d";
-     sed       = "s/#define[ \t]I[ \t]\\{1,\\}_Imaginary_I/#define\tI\t\t_Complex_I/";
-     test_text = "#define	_Complex_I	_Complex_I\n"
-     		"#define	complex		_Complex\n"
- 		"#define	_Imaginary_I	_Imaginary_I\n"
- 		"#define	imaginary	_Imaginary\n"
- 		"#undef	I\n"
- 		"#define	I		_Imaginary_I";
- };
- 
- /*
-  * Solaris 10+ <complex.h> is wrapped in #ifndef __cplusplus.  Wrap in
-  * extern "C" instead so libstdc++ can use it.
-  */
- fix = {
-     hackname  = solaris_complex_cxx;
-     mach      = "*-*-solaris2.*";
-     files     = complex.h;
-     sed	      = "/#if[ \t]*!defined(__cplusplus)/c\\\n"
-     		"#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif";
-     sed	      = "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n"
- 		"#ifdef\t__cplusplus\\\n}\\\n#endif";
-     test_text = "#if !defined(__cplusplus)\n"
- 		"#endif	/* !defined(__cplusplus) */";
- };
- 
- /*
-  *  g++ rejects functions declared with both C and C++ linkage.
-  */
- fix = {
-     hackname  = solaris_cxx_linkage;
-     mach      = '*-*-solaris2*';
-     files     = "iso/stdlib_iso.h";
-     select    = "(#if __cplusplus >= 199711L)\n"
- 	        "(extern \"C\\+\\+\" \\{\n)"
- 	        "(.*(bsearch|qsort).*)";
-     c_fix     = format;
-     c_fix_arg = "%1 && !__GNUG__\n%2%3";
- 
-     test_text =
-     "#if __cplusplus >= 199711L\n"
-     "extern \"C++\" {\n"
-     "	void *bsearch(const void *, const void *, size_t, size_t,";
- };
- 
- /*
-  *  Solaris <iso/stdio_iso.h> doesn't declare getc for C++ with
-  *  _STRICT_STDC, but uses it.
-  */
- fix = {
-     hackname  = solaris_getc_strict_stdc;
-     mach      = "*-*-solaris2*";
-     files     = "iso/stdio_iso.h";
-     select    = "(.*&& )!defined\\(_STRICT_STDC\\)(.*)";
-     c_fix     = format;
-     c_fix_arg = "%1(!defined(_STRICT_STDC) || (__cplusplus >= 199711L))%2";
- 
-     test_text =
-     "#if	!defined(_REENTRANT) && !defined(_LP64) && !defined(_STRICT_STDC)";
- };
- 
- /*
-  *  Solaris <iso/stdio_iso.h> should deprecate gets before C11.
-  */
- fix = {
-     hackname  = solaris_gets_c11;
-     mach      = "*-*-solaris2*";
-     files     = "iso/stdio_iso.h";
-     select    = "(extern char[ \t]*\\*gets\\(char \\*\\));";
- 
-     c_fix     = format;
-     c_fix_arg = "#if __STDC_VERSION__ < 201112L && __cplusplus < 201402L\n"
-     		"%1 __attribute__((__deprecated__));\n"
- 		"#endif";
- 
-     test_text = "extern char	*gets(char *);";
- };
- 
- /*
-  *  Solaris <iso/stdio_iso.h> shouldn't declare gets for C++14.
-  */
- fix = {
-     hackname  = solaris_gets_cxx14;
-     mach      = "*-*-solaris2*";
-     files     = "iso/stdio_iso.h";
-     select    = <<- _EOSelect_
- (#if __STDC_VERSION__ < 201112L)
- (extern char	\*gets\(char \*\) __ATTR_DEPRECATED;)
- _EOSelect_;
-     c_fix     = format;
-     c_fix_arg = "%1 && __cplusplus < 201402L\n%2";
- 
-     test_text = <<- _EOText_
- #if __STDC_VERSION__ < 201112L
- extern char	*gets(char *) __ATTR_DEPRECATED;
- _EOText_;
- };
- 
- /*
   * Sun Solaris 2 has a version of sys/int_const.h that defines
   * UINT8_C and UINT16_C to unsigned constants.
   */
--- 3877,3882 ----
*************** fix = {
*** 4061,4083 ****
  
  /*
   * Sun Solaris 2 has a version of sys/int_limits.h that defines
-  * INT_FAST16 limits to wrong values for sys/int_types.h.
-  */
- fix = {
-     hackname  = solaris_int_limits_2;
-     files     = sys/int_limits.h;
-     mach      = '*-*-solaris2*';
-     c_fix     = format;
-     c_fix_arg = "#define\t%1_FAST16_%2 %132_%2";
-     select    = "^#define[ \t]+(INT|UINT)_FAST16_(MAX|MIN)[ \t](INT|UINT)16.*";
-     test_text =
-     "#define	INT_FAST16_MAX INT16_MAX\n"
-     "#define	UINT_FAST16_MAX UINT16_MAX\n"
-     "#define	INT_FAST16_MIN	INT16_MIN";
- };
- 
- /*
-  * Sun Solaris 2 has a version of sys/int_limits.h that defines
   * SIZE_MAX as unsigned long.
   */
  fix = {
--- 3917,3922 ----
*************** fix = {
*** 4092,4298 ****
  };
  
  /*
!  * Sun Solaris 10 defines several C99 math macros in terms of
!  * builtins specific to the Studio compiler, in particular not
!  * compatible with the GNU compiler.
!  */
! fix = {
!     hackname = solaris_math_1;
!     select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\tHUGE_VA%1\t(__builtin_huge_va%2())";
!     c_fix_arg = "^#define[ \t]+HUGE_VA([LF]+)[ \t]+__builtin_huge_va([lf]+)";
!     test_text =
!     '#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"'"\n"
!     "#undef	HUGE_VAL\n"
!     "#define	HUGE_VAL	__builtin_huge_val\n"
!     "#undef	HUGE_VALF\n"
!     "#define	HUGE_VALF	__builtin_huge_valf\n"
!     "#undef	HUGE_VALL\n"
!     "#define	HUGE_VALL	__builtin_huge_vall";
! };
! 
! /*
!  * On Solaris 11, if you do isinf(NaN) you'll get a floating point
!  * exception.  Provide an alternative using GCC's builtin.
   */
  fix = {
!     hackname  = solaris_math_10;
!     select    = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     files     = iso/math_c99.h;
      c_fix     = format;
!     c_fix_arg = "#define\tisinf(x) __builtin_isinf(x)";
!     c_fix_arg = "^#define[ \t]+isinf\\(x\\)[ \t]+__extension__\\([ \t]*\\\\\n"
!                 "[ \t]*\\{[ \t]*__typeof\\(x\\)[ \t]*__x_i[ \t]*=[ \t]*\\(x\\);"
!                     "[ \t]*\\\\\n"
!                 "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*"
!                     "INFINITY[ \t]*\\|\\|[ \t]*\\\\\n"
!                 "[ \t]*__x_i[ \t]*==[ \t]*\\(__typeof\\(__x_i\\)\\)[ \t]*"
!                     "\\(-INFINITY\\);[ \t]*\\}\\)";
!     test_text =
!     '#pragma ident	"@(#)math_c99.h	1.12	07/01/21 SMI"'"\n"
!     "#undef	isinf\n"
!     "#define	isinf(x)	__extension__( \\\\\n"
!     "			{ __typeof(x) __x_i = (x); \\\\\n"
!     "			__x_i == (__typeof(__x_i)) INFINITY || \\\\\n"
!     "			__x_i == (__typeof(__x_i)) (-INFINITY); })";
! };
! 
! /*
!  * Solaris math INFINITY
!  */
! fix = {
!     hackname = solaris_math_2;
!     select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\tINFINITY\t(__builtin_inff())";
!     c_fix_arg = "^#define[ \t]+INFINITY[ \t]+__builtin_infinity";
!     test_text =
!     '#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"'"\n"
!     "#undef	INFINITY\n"
!     "#define	INFINITY	__builtin_infinity";
! };
! 
! /*
!  * Solaris math NAN
!  */
! fix = {
!     hackname = solaris_math_3;
!     select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\tNAN\t\t(__builtin_nanf(\"\"))";
!     c_fix_arg = "^#define[ \t]+NAN[ \t]+__builtin_nan";
!     test_text =
!     '#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"'"\n"
!     "#undef	NAN\n"
!     "#define	NAN	__builtin_nan";
! };
! 
! /*
!  * Solaris math fpclassify
!  */
! fix = {
!     hackname = solaris_math_4;
!     select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\tfpclassify(x) \\\n"
!                 "  __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, "
!                     "FP_SUBNORMAL, FP_ZERO, (x))";
!     c_fix_arg = "^#define[ \t]+fpclassify\\(x\\)[ \t]+__builtin_fpclassify\\(x\\)";
!     test_text =
!     '#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"'"\n"
!     "#undef	fpclassify\n"
!     "#define	fpclassify(x)	__builtin_fpclassify(x)";
! };
! 
! /*
!  * Solaris math signbit
!  */
! fix = {
!     hackname = solaris_math_8;
!     select = '@\(#\)math_c99\.h' "[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\tsignbit(x)\t(sizeof(x) == sizeof(float) \\\n"
!                 "\t\t\t   ? __builtin_signbitf(x) \\\n"
!                 "\t\t\t   : sizeof(x) == sizeof(long double) \\\n"
!                 "\t\t\t     ? __builtin_signbitl(x) \\\n"
!                 "\t\t\t     : __builtin_signbit(x))";
!     c_fix_arg = "^#define[ \t]+signbit\\(x\\)[ \t]+__builtin_signbit\\(x\\)";
!     test_text = <<- _EOText_
! 	#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
! 	#undef	signbit
! 	#define	signbit(x)	__builtin_signbit(x)
! 	_EOText_;
! };
! 
! /*
!  * Solaris math comparison macros
!  */
! fix = {
!     hackname = solaris_math_9;
!     select = '@\(#\)math_c99.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
!     bypass = "__GNUC__";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = "#define\t%1(x, y)%2__builtin_%1(x, y)";
!     c_fix_arg = "^#define[ \t]+([a-z]+)\\(x, y\\)([ \t]+)\\(\\(x\\) "
!                     "__builtin_[a-z]+\\(y\\)\\)";
      test_text =
!     '#ident	"@(#)math_c99.h	1.9	04/11/01 SMI"'"\n"
!     "#undef	isgreater\n"
!     "#define	isgreater(x, y)		((x) __builtin_isgreater(y))\n"
!     "#undef	isgreaterequal\n"
!     "#define	isgreaterequal(x, y)	((x) __builtin_isgreaterequal(y))\n"
!     "#undef	isless\n"
!     "#define	isless(x, y)		((x) __builtin_isless(y))\n"
!     "#undef	islessequal\n"
!     "#define	islessequal(x, y)	((x) __builtin_islessequal(y))\n"
!     "#undef	islessgreater\n"
!     "#define	islessgreater(x, y)	((x) __builtin_islessgreater(y))\n"
!     "#undef	isunordered\n"
!     "#define	isunordered(x, y)	((x) __builtin_isunordered(y))";
! };
! 
! /*
!  * Newer Solaris 10/11 GCC signbit implementations cause strict-aliasing
!  * warnings.
!  */
! fix = {
!     hackname = solaris_math_11;
!     select = '@\(#\)math_c99\.h' "[ \t]+1\\.[0-9]+[ \t]+[0-9/]+ ";
!     files = iso/math_c99.h;
!     c_fix = format;
!     c_fix_arg = << _EOArg_
! #undef	signbit
! #define	signbit(x)	(sizeof(x) == sizeof(float) \
! 			   ? __builtin_signbitf(x) \
! 			   : sizeof(x) == sizeof(long double) \
! 			     ? __builtin_signbitl(x) \
! 			     : __builtin_signbit(x))
! _EOArg_;
!     c_fix_arg = << _EOArg_
! ^#undef[ 	]+signbit
! #if defined\(__sparc\)
! #define[ 	]+signbit\(x\)[ 	]+__extension__\( \\
! [ 	]+\{[ 	]*__typeof\(x\)[ 	]*__x_s[ 	]*=[ 	]*\(x\);[ 	]*\\
! [ 	]+\(int\)[ 	]*\(\*\(unsigned[ 	]*\*\)[ 	]*\&__x_s[ 	]*>>[ 	]*31\);[ 	]*\}\)
! #elif defined\(__i386\) \|\| defined\(__amd64\)
! #define[ 	]+signbit\(x\)[ 	]+__extension__\( \\
! [ 	]+\{ __typeof\(x\) __x_s = \(x\); \\
! [ 	]+\(sizeof \(__x_s\) == sizeof \(float\) \? \\
! [ 	]+\(int\) \(\*\(unsigned \*\) \&__x_s >> 31\) : \\
! [ 	]+sizeof \(__x_s\) == sizeof \(double\) \? \\
! [ 	]+\(int\) \(\(\(unsigned \*\) \&__x_s\)\[1\] >> 31\) : \\
! [ 	]+\(int\) \(\(\(unsigned short \*\) \&__x_s\)\[4\] >> 15\)\); \}\)
! #endif
! _EOArg_;
!     test_text = << _EOText_
! /* @(#)math_c99.h	1.14	13/03/27 */
! #undef	signbit
! #if defined(__sparc)
! #define	signbit(x)	__extension__( \\
! 				{ __typeof(x) __x_s = (x); \\
! 				(int) (*(unsigned *) &__x_s >> 31); })
! #elif defined(__i386) || defined(__amd64)
! #define	signbit(x)	__extension__( \\
! 			{ __typeof(x) __x_s = (x); \\
! 			(sizeof (__x_s) == sizeof (float) ? \\
! 			(int) (*(unsigned *) &__x_s >> 31) : \\
! 			sizeof (__x_s) == sizeof (double) ? \\
! 			(int) (((unsigned *) &__x_s)[1] >> 31) : \\
! 			(int) (((unsigned short *) &__x_s)[4] >> 15)); })
! #endif
! _EOText_;
  };
  
  /*
--- 3931,3955 ----
  };
  
  /*
!  * Solaris <sys/int_types.h> defines int8_t as char which violates C99.
!  * Same for int_fast8_t and int_least8_t.
   */
  fix = {
!     hackname  = solaris_int8_t;
!     files     = sys/int_types.h;
!     mach      = '*-*-solaris2*';
!     bypass    = '_LEGACY_INT8_T';
      c_fix     = format;
!     c_fix_arg = "#if !defined(_LEGACY_INT8_T)\n"
!                 "typedef signed char int%18_t;\n"
!                 "#else\n"
!                 "%0\n"
!                 "#endif";
!     select    = "^[ \t]*typedef[ \t]*char[ \t]*int(|_fast|_least)8_t.*";
      test_text =
!     "typedef char int8_t;\n"
!     "typedef char int_fast8_t;\n"
!     "typedef char int_least8_t;";
  };
  
  /*
*************** _EOText_;
*** 4314,4353 ****
  };
  
  /*
-  * Sun Solaris defines PTHREAD_ONCE_INIT as an array containing a
-  * structure.  As such, it need two levels of brackets, but only
-  * contains one.  Wrap the macro definition in an extra layer.
-  */
- fix = {
-     hackname = solaris_once_init_1;
-     select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
-     files = pthread.h;
-     mach = '*-*-solaris*';
-     c_fix = format;
-     c_fix_arg = "%1{%2}%3";
-     c_fix_arg = "(^#define[ \t]+PTHREAD_ONCE_INIT[ \t]+\\{)([^}]+)(\\})[ \t]*$";
-     test_text =
-     '#pragma ident	"@(#)pthread.h	1.37	04/09/28 SMI"'"\n"
-     "#define PTHREAD_ONCE_INIT\t{0, 0, 0, PTHREAD_ONCE_NOTDONE}";
- };
- 
- /*
-  * Solaris 10+ <spawn.h> uses char *const argv[_RESTRICT_KYWD] in the
-  * posix_spawn declarations, which doesn't work with C++.
-  */
- fix = {
-     hackname  = solaris_posix_spawn_restrict;
-     files     = spawn.h;
-     mach      = '*-*-solaris2*';
-     c_fix     = format;
-     c_fix_arg = "%1*_RESTRICT_KYWD %2%3";
-     select    = "(.*[ \t]+)([a-z]+)\\[_RESTRICT_KYWD\\](.*)";
-     test_text =
-     "char *const argv[_RESTRICT_KYWD],\n"
-     "char *const envp[_RESTRICT_KYWD]);";
- };
- 
- /*
   *  The pow overloads with int were removed in C++ 2011 DR 550.
   */
  fix = {
--- 3971,3976 ----
*************** fix = {
*** 4365,4464 ****
  };
  
  /*
-  * Sun Solaris defines PTHREAD_RWLOCK_INITIALIZER with a "0" for some
-  *  fields of the pthread_rwlock_t structure, which are of type
-  *  upad64_t, which itself is typedef'd to int64_t, but with __STDC__
-  *  defined (e.g. by -ansi) it is a union. So change the initializer
-  *  to "{0}" instead.
-  */
- fix = {
-     hackname = solaris_rwlock_init_1;
-     select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
-     files = pthread.h;
-     mach = '*-*-solaris*';
-     c_fix = format;
-     c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
-                 "%0\n"
-                 "#else\n"
-                 "%1{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}\n"
-                 "#endif";
-     c_fix_arg = "(^#define[ \t]+PTHREAD_RWLOCK_INITIALIZER[ \t]+)"
-                 "\\{0, 0, 0, \\{0, 0, 0\\}, \\{0, 0\\}, \\{0, 0\\}\\}[ \t]*$";
- 
-     test_text =
-     '#ident "@(#)pthread.h  1.26  98/04/12 SMI"'"\n"
-     "#define PTHREAD_RWLOCK_INITIALIZER\t{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}";
- };
- 
- /*
-  * Before Solaris 10, <stdio.h> lacks declarations of std::__filbuf and
-  * std::__flsbuf, but <iso/stdio_iso.h> uses them.
-  */
- fix = {
-     hackname  = solaris_std___filbuf;
-     files     = stdio.h;
-     mach      = '*-*-solaris2*';
-     bypass    = "using std::__filbuf";
-     select    = "(using std::perror;\n)(#endif)";
-     c_fix     = format;
-     c_fix_arg = "%1#ifndef _LP64\n"
- 		"using std::__filbuf;\n"
- 		"using std::__flsbuf;\n"
- 		"#endif\n%2";
- 
-     test_text = "using std::perror;\n"
- 		"#endif";
- };
- 
- /*
-  *  Solaris <stdio.h> shouldn't use std::gets for C++14.
-  */
- fix = {
-     hackname  = solaris_std_gets_cxx14;
-     mach      = "*-*-solaris2*";
-     files     = "stdio.h";
-     select    = "using std::gets;";
- 
-     c_fix     = format;
-     c_fix_arg = "#if __cplusplus < 201402L\n%0\n#endif";
- 
-     test_text = "using std::gets;";
- };
- 
- /*
-  * Sun Solaris 8 has what appears to be some gross workaround for
-  * some old version of their c++ compiler.  G++ doesn't want it
-  * either, but doesn't want to be tied to SunPRO version numbers.
-  */
- fix = {
-     hackname = solaris_stdio_tag;
-     files    = stdio_tag.h;
- 
-     select   = '__cplusplus < 54321L';
-     /* In Solaris 10, the code in stdio_tag.h is conditionalized on 
-        "!defined(__GNUC__)" so we no longer need to fix it.  */
-     bypass   = '__GNUC__';
-     sed      = 's/defined(__cplusplus) && (__cplusplus < 54321L)/0/';
- 
-     test_text = "#if\tdefined(__cplusplus) && (__cplusplus < 54321L)";
- };
- 
- /*
-  *  Solaris <stdlib.h> shouldn't use _Noreturn, breaks with C++.
-  */
- fix = {
-     hackname  = solaris_stdlib_noreturn;
-     mach      = "*-*-solaris2*";
-     files     = "iso/stdlib_c99.h";
-     select    = "(extern) _Noreturn (void quick_exit\\(int\\));";
- 
-     c_fix     = format;
-     c_fix_arg = "%1 %2 __attribute__((__noreturn__));";
- 
-     test_text = "extern _Noreturn void quick_exit(int);";
- };
- 
- /*
   *  a missing semi-colon at the end of the statsswtch structure definition.
   */
  fix = {
--- 3988,3993 ----
*************** fix = {
*** 4472,4489 ****
  
  /*
   *  Arrange for stdio.h to use stdarg.h to define __gnuc_va_list.
!  *  On 4BSD-derived systems, stdio.h defers to machine/ansi.h; that's
!  *  OK too.
   */
  fix = {
      hackname = stdio_stdarg_h;
      files    = stdio.h;
!     bypass   = "include.*(stdarg\.h|machine/ansi\.h)";
      /*
!      * On Solaris 10, this fix is unncessary; <stdio.h> includes
       * <iso/stdio_iso.h>, which includes <sys/va_list.h>.
        */
!     mach     = '*-*-solaris2.1[0-9]*';
      not_machine = true;
  
      c_fix     = wrap;
--- 4001,4018 ----
  
  /*
   *  Arrange for stdio.h to use stdarg.h to define __gnuc_va_list.
!  *  On 4BSD-derived systems, stdio.h defers to machine/ansi.h, that's
!  *  OK too. Modern macOS includes _stdio.h, and does not need the fix.
   */
  fix = {
      hackname = stdio_stdarg_h;
      files    = stdio.h;
!     bypass   = "include.*(stdarg\.h|machine/ansi\.h|_stdio\.h)";
      /*
!      * On Solaris 10+, this fix is unncessary; <stdio.h> includes
       * <iso/stdio_iso.h>, which includes <sys/va_list.h>.
        */
!     mach     = '*-*-solaris2*';
      not_machine = true;
  
      c_fix     = wrap;
*************** fix = {
*** 4499,4516 ****
   *  of __gnuc_va_list, __DJ_va_list, or _G_va_list is taken to
   *  indicate that the header knows what it's doing -- under SUSv2,
   *  stdio.h is required to define va_list, and we shouldn't break
!  *  that.
   */
  fix = {
      hackname = stdio_va_list;
      files    = stdio.h;
!     bypass   = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list';
      /* 
!      * On Solaris 10, the definition in 
!      * <stdio.h> is guarded appropriately by the _XPG4 feature macro; 
!      * there is therefore no need for this fix there.
       */
!     mach = '*-*-solaris2.1[0-9]*';
      not_machine = true;
  
      /*
--- 4028,4044 ----
   *  of __gnuc_va_list, __DJ_va_list, or _G_va_list is taken to
   *  indicate that the header knows what it's doing -- under SUSv2,
   *  stdio.h is required to define va_list, and we shouldn't break
!  *  that. Modern macOS includes _stdio.h, and does not need the fix.
   */
  fix = {
      hackname = stdio_va_list;
      files    = stdio.h;
!     bypass   = '__gnuc_va_list|_BSD_VA_LIST_|__DJ_va_list|_G_va_list|_stdio.h';
      /* 
!      * On Solaris 10+, the definition in <stdio.h> is guarded appropriately
!      * by the _XPG4 feature macro.
       */
!     mach = '*-*-solaris2*';
      not_machine = true;
  
      /*
*************** fix = {
*** 4561,4566 ****
--- 4089,4097 ----
      /* Don't fix, if we use va_list from stdarg.h, or if the use is
         otherwise protected.  */
      bypass   = 'include <stdarg\.h>|#ifdef va_start';
+     /* Only used in comments.  */
+     mach   = '*-*-solaris2.1[0-9]*';
+     not_machine = true;
  
      /*
       * Use __gnuc_va_list in arg types in place of va_list.
*************** fix = {
*** 4666,4671 ****
--- 4197,4205 ----
  
      c_fix     = format;
      c_fix_arg = "%1 defined(__STRICT_ANSI__)";
+     /* The Solaris 10+ headers only use this if !__GNUC__.  */
+     mach   = '*-*-solaris2*';
+     not_machine = true;
  
      test_text = "#if __STDC__ == 1 /* is std C\n */\nint foo;\n#endif";
  };
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/complex.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/complex.h
*** gcc-15.2.0/fixincludes/tests/base/complex.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/complex.h	Thu Apr 23 11:07:32 2026
***************
*** 19,39 ****
  #define _Complex_I (__extension__ 1.0iF)
  
  #endif  /* HPUX_IMAGINARY_I_CHECK */
- 
- 
- #if defined( SOLARIS_COMPLEX_CHECK )
- #define _Complex_I (__extension__ 1.0iF)
- #define	complex		_Complex
- #undef	I
- #define	I		_Complex_I
- #endif  /* SOLARIS_COMPLEX_CHECK */
- 
- 
- #if defined( SOLARIS_COMPLEX_CXX_CHECK )
- #ifdef	__cplusplus
- extern "C" {
- #endif
- #ifdef	__cplusplus
- }
- #endif
- #endif  /* SOLARIS_COMPLEX_CXX_CHECK */
--- 19,21 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/iso/math_c99.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/math_c99.h
*** gcc-15.2.0/fixincludes/tests/base/iso/math_c99.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/math_c99.h	Thu Jan  1 00:00:00 1970
***************
*** 1,88 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/iso/math_c99.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_MATH_1_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	HUGE_VAL
- #define	HUGE_VAL	(__builtin_huge_val())
- #undef	HUGE_VALF
- #define	HUGE_VALF	(__builtin_huge_valf())
- #undef	HUGE_VALL
- #define	HUGE_VALL	(__builtin_huge_vall())
- #endif  /* SOLARIS_MATH_1_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_10_CHECK )
- #pragma ident	"@(#)math_c99.h	1.12	07/01/21 SMI"
- #undef	isinf
- #define	isinf(x) __builtin_isinf(x)
- #endif  /* SOLARIS_MATH_10_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_2_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	INFINITY
- #define	INFINITY	(__builtin_inff())
- #endif  /* SOLARIS_MATH_2_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_3_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	NAN
- #define	NAN		(__builtin_nanf(""))
- #endif  /* SOLARIS_MATH_3_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_4_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	fpclassify
- #define	fpclassify(x) \
-   __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, (x))
- #endif  /* SOLARIS_MATH_4_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_8_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	signbit
- #define	signbit(x)	(sizeof(x) == sizeof(float) \
- 			   ? __builtin_signbitf(x) \
- 			   : sizeof(x) == sizeof(long double) \
- 			     ? __builtin_signbitl(x) \
- 			     : __builtin_signbit(x))
- #endif  /* SOLARIS_MATH_8_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_9_CHECK )
- #ident	"@(#)math_c99.h	1.9	04/11/01 SMI"
- #undef	isgreater
- #define	isgreater(x, y)		__builtin_isgreater(x, y)
- #undef	isgreaterequal
- #define	isgreaterequal(x, y)	__builtin_isgreaterequal(x, y)
- #undef	isless
- #define	isless(x, y)		__builtin_isless(x, y)
- #undef	islessequal
- #define	islessequal(x, y)	__builtin_islessequal(x, y)
- #undef	islessgreater
- #define	islessgreater(x, y)	__builtin_islessgreater(x, y)
- #undef	isunordered
- #define	isunordered(x, y)	__builtin_isunordered(x, y)
- #endif  /* SOLARIS_MATH_9_CHECK */
- 
- 
- #if defined( SOLARIS_MATH_11_CHECK )
- /* @(#)math_c99.h	1.14	13/03/27 */
- #undef	signbit
- #define	signbit(x)	(sizeof(x) == sizeof(float) \
- 			   ? __builtin_signbitf(x) \
- 			   : sizeof(x) == sizeof(long double) \
- 			     ? __builtin_signbitl(x) \
- 			     : __builtin_signbit(x))
- #endif  /* SOLARIS_MATH_11_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/iso/stdio_iso.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdio_iso.h
*** gcc-15.2.0/fixincludes/tests/base/iso/stdio_iso.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdio_iso.h	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/iso/stdio_iso.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_GETC_STRICT_STDC_CHECK )
- #if	!defined(_REENTRANT) && !defined(_LP64) && (!defined(_STRICT_STDC) || (__cplusplus >= 199711L))
- #endif  /* SOLARIS_GETC_STRICT_STDC_CHECK */
- 
- 
- #if defined( SOLARIS_GETS_C11_CHECK )
- #if __STDC_VERSION__ < 201112L && __cplusplus < 201402L
- extern char	*gets(char *) __attribute__((__deprecated__));
- #endif
- #endif  /* SOLARIS_GETS_C11_CHECK */
- 
- 
- #if defined( SOLARIS_GETS_CXX14_CHECK )
- #if __STDC_VERSION__ < 201112L && __cplusplus < 201402L
- extern char	*gets(char *) __ATTR_DEPRECATED;
- #endif  /* SOLARIS_GETS_CXX14_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/iso/stdlib_c99.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdlib_c99.h
*** gcc-15.2.0/fixincludes/tests/base/iso/stdlib_c99.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdlib_c99.h	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/iso/stdlib_c99.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_STDLIB_NORETURN_CHECK )
- extern void quick_exit(int) __attribute__((__noreturn__));
- #endif  /* SOLARIS_STDLIB_NORETURN_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/iso/stdlib_iso.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdlib_iso.h
*** gcc-15.2.0/fixincludes/tests/base/iso/stdlib_iso.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/iso/stdlib_iso.h	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/iso/stdlib_iso.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_CXX_LINKAGE_CHECK )
- #if __cplusplus >= 199711L && !__GNUG__
- extern "C++" {
- 	void *bsearch(const void *, const void *, size_t, size_t,
- #endif  /* SOLARIS_CXX_LINKAGE_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/pthread.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/pthread.h
*** gcc-15.2.0/fixincludes/tests/base/pthread.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/pthread.h	Thu Apr 23 11:07:32 2026
*************** extern int __sigsetjmp (struct __jmp_buf
*** 96,117 ****
  #endif  /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */
  
  
- #if defined( SOLARIS_ONCE_INIT_1_CHECK )
- #pragma ident	"@(#)pthread.h	1.37	04/09/28 SMI"
- #define PTHREAD_ONCE_INIT	{{0, 0, 0, PTHREAD_ONCE_NOTDONE}}
- #endif  /* SOLARIS_ONCE_INIT_1_CHECK */
- 
- 
- #if defined( SOLARIS_RWLOCK_INIT_1_CHECK )
- #ident "@(#)pthread.h  1.26  98/04/12 SMI"
- #if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
- #define PTHREAD_RWLOCK_INITIALIZER	{0, 0, 0, {0, 0, 0}, {0, 0}, {0, 0}}
- #else
- #define PTHREAD_RWLOCK_INITIALIZER	{0, 0, 0, {{0}, {0}, {0}}, {{0}, {0}}, {{0}, {0}}}
- #endif
- #endif  /* SOLARIS_RWLOCK_INIT_1_CHECK */
- 
- 
  #if defined( THREAD_KEYWORD_CHECK )
  extern int pthread_create (pthread_t *__restrict __thr,
  extern int pthread_kill (pthread_t __thr, int __signo);
--- 96,101 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/spawn.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/spawn.h
*** gcc-15.2.0/fixincludes/tests/base/spawn.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/spawn.h	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/spawn.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_POSIX_SPAWN_RESTRICT_CHECK )
- char *const *_RESTRICT_KYWD argv,
- char *const *_RESTRICT_KYWD envp);
- #endif  /* SOLARIS_POSIX_SPAWN_RESTRICT_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/stdio.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/stdio.h
*** gcc-15.2.0/fixincludes/tests/base/stdio.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/stdio.h	Thu Apr 23 11:07:32 2026
*************** extern int rename(const char *_old, cons
*** 87,109 ****
  #endif  /* RS6000_PARAM_CHECK */
  
  
- #if defined( SOLARIS_STD___FILBUF_CHECK )
- using std::perror;
- #ifndef _LP64
- using std::__filbuf;
- using std::__flsbuf;
- #endif
- #endif
- #endif  /* SOLARIS_STD___FILBUF_CHECK */
- 
- 
- #if defined( SOLARIS_STD_GETS_CXX14_CHECK )
- #if __cplusplus < 201402L
- using std::gets;
- #endif
- #endif  /* SOLARIS_STD_GETS_CXX14_CHECK */
- 
- 
  #if defined( STDIO_STDARG_H_CHECK )
  
  #endif  /* STDIO_STDARG_H_CHECK */
--- 87,92 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/stdio_tag.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/stdio_tag.h
*** gcc-15.2.0/fixincludes/tests/base/stdio_tag.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/stdio_tag.h	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/stdio_tag.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS_STDIO_TAG_CHECK )
- #if	0
- #endif  /* SOLARIS_STDIO_TAG_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/sys/feature_tests.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/feature_tests.h
*** gcc-15.2.0/fixincludes/tests/base/sys/feature_tests.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/feature_tests.h	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /*  DO NOT EDIT THIS FILE.
- 
-     It has been auto-edited by fixincludes from:
- 
- 	"fixinc/tests/inc/sys/feature_tests.h"
- 
-     This had to be done to correct non-standard usages in the
-     original, manufacturer supplied header file.  */
- 
- 
- 
- #if defined( SOLARIS___RESTRICT_CHECK )
- #ifdef __cplusplus
- #define	_RESTRICT_KYWD	__restrict
- #else
- #define	_RESTRICT_KYWD	restrict
- #endif
- #endif  /* SOLARIS___RESTRICT_CHECK */
--- 0 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/sys/int_limits.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/int_limits.h
*** gcc-15.2.0/fixincludes/tests/base/sys/int_limits.h	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/int_limits.h	Thu Apr 23 11:07:32 2026
***************
*** 15,27 ****
  #endif  /* SOLARIS_INT_LIMITS_1_CHECK */
  
  
- #if defined( SOLARIS_INT_LIMITS_2_CHECK )
- #define	INT_FAST16_MAX INT32_MAX
- #define	UINT_FAST16_MAX UINT32_MAX
- #define	INT_FAST16_MIN INT32_MIN
- #endif  /* SOLARIS_INT_LIMITS_2_CHECK */
- 
- 
  #if defined( SOLARIS_INT_LIMITS_3_CHECK )
  #define	SIZE_MAX	4294967295U
  #endif  /* SOLARIS_INT_LIMITS_3_CHECK */
--- 15,20 ----
diff -Nrcpad gcc-15.2.0/fixincludes/tests/base/sys/int_types.h gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/int_types.h
*** gcc-15.2.0/fixincludes/tests/base/sys/int_types.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/fixincludes/tests/base/sys/int_types.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,28 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/sys/int_types.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( SOLARIS_INT8_T_CHECK )
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int8_t;
+ #else
+ typedef char int8_t;
+ #endif
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int_fast8_t;
+ #else
+ typedef char int_fast8_t;
+ #endif
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int_least8_t;
+ #else
+ typedef char int_least8_t;
+ #endif
+ #endif  /* SOLARIS_INT8_T_CHECK */
diff -Nrcpad gcc-15.2.0/gcc/ABOUT-GCC-NLS gcc-16.1.0-RC-20260423/gcc/ABOUT-GCC-NLS
*** gcc-15.2.0/gcc/ABOUT-GCC-NLS	Fri Aug  8 06:51:39 2025
--- gcc-16.1.0-RC-20260423/gcc/ABOUT-GCC-NLS	Thu Apr 23 11:07:32 2026
*************** configure GCC with --enable-maintainer-m
*** 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
--- 65,71 ----
  rebuilt.
  
  
! Copyright (C) 1998-2026 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-15.2.0/gcc/BASE-VER gcc-16.1.0-RC-20260423/gcc/BASE-VER
*** gcc-15.2.0/gcc/BASE-VER	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/BASE-VER	Thu Apr 23 11:07:32 2026
***************
*** 1 ****
! 15.2.0
--- 1 ----
! 16.0.1
diff -Nrcpad gcc-15.2.0/gcc/ChangeLog gcc-16.1.0-RC-20260423/gcc/ChangeLog
*** gcc-15.2.0/gcc/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,10208 ****
! 2025-08-08  Release Manager
! 
! 	* GCC 15.2.0 released.
! 
! 2025-08-07  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	Backported from master:
! 	2025-08-06  Uros Bizjak  <ubizjak@gmail.com>
! 
! 	PR target/96226
! 	* config/i386/predicates.md (and_operator): New operator.
! 	* config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask):
! 	Use and_operator to match AND RTX and use its mode
! 	in the split pattern.
! 
! 2025-08-01  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	Backported from master:
! 	2025-05-19  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	PR target/120351
! 	* config/arm/predicates.md (mem_noofs_operand): Also check the op
! 	is a valid memory_operand.
! 
! 2025-08-01  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121323
! 	* tree-ssa-alias.cc (ao_ref_init_from_ptr_and_range): Check
! 	the pointer offset fits in a HWI when represented in bits.
! 
! 2025-08-01  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121320
! 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Convert
! 	op->off to poly_offset_int before multiplying by
! 	BITS_PER_UNIT.
! 
! 2025-08-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-08-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/121322
! 	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Return NULL if
! 	count is 0.
! 
! 2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR rtl-optimization/121340
! 	* config/avr/avr.opt (-mfuse-move2): New option.
! 	* config/avr/avr-passes.def (avr_pass_2moves): Insert after combine.
! 	* config/avr/avr-passes.cc (make_avr_pass_2moves): New function.
! 	(pass_data avr_pass_data_2moves): New static variable.
! 	(avr_pass_2moves): New rtl_opt_pass.
! 	* config/avr/avr-protos.h (make_avr_pass_2moves): New proto.
! 	* common/config/avr/avr-common.cc
! 	(default_options avr_option_optimization_table) <-mfuse-move2>:
! 	Set for -O1 and higher.
! 	* doc/invoke.texi (AVR Options) <-mfuse-move2>: Document.
! 	* config/avr/avr.opt.urls (-mfuse-move2): Add url.
! 
! 2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr.cc (avr_output_addr_vec) <labl>: Asm out its .type.
! 
! 2025-07-31  Spencer Abson  <spencer.abson@arm.com>
! 
! 	Backported from master:
! 	2025-07-31  Spencer Abson  <spencer.abson@arm.com>
! 
! 	PR target/121028
! 	* config/aarch64/aarch64-sme.md (aarch64_smstart_sm): Use the .inst
! 	directive if !TARGET_SME.
! 	(aarch64_smstop_sm): Likewise.
! 
! 2025-07-31  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121256
! 	* tree-vect-loop.cc (vectorizable_recurr): Handle the case
! 	of a NULL SLP node.
! 
! 2025-07-31  Andreas Schwab  <schwab@suse.de>
! 
! 	Backported from master:
! 	2025-07-21  Andreas Schwab  <schwab@suse.de>
! 
! 	PR target/121121
! 	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
! 	Use temp2 instead of temp1 for the CFA note.
! 
! 2025-07-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-07-31  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/121264
! 	* machmode.h (get_best_mode): Change type of first 2 arguments
! 	from int to HOST_WIDE_INT.
! 	* stor-layout.cc (get_best_mode): Likewise.
! 
! 2025-07-31  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	Backported from master:
! 	2025-07-11  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	PR ipa/114790
! 	* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Resolve devirtualization
! 	if call statement was optimized out or turned to direct call.
! 
! 2025-07-31  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-28  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121256
! 	* tree-vect-loop.cc (vectorizable_recurr): Build a correct
! 	initialization vector for SLP_TREE_LANES > 1.
! 
! 2025-07-31  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-30  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121130
! 	* tree-vect-stmts.cc (vectorizable_call): Bail out for
! 	.MASK_CALL.
! 
! 2025-07-31  Pengfei Li  <Pengfei.Li2@arm.com>
! 
! 	Backported from master:
! 	2025-07-30  Pengfei Li  <Pengfei.Li2@arm.com>
! 
! 	PR tree-optimization/121190
! 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
! 	Increase alignment requirement for speculative loads.
! 
! 2025-07-31  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	Backported from master:
! 	2025-07-30  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/120427
! 	* config/i386/i386.md (peephole2): Transform "movq $-1,reg" to
! 	"pushq $-1; popq reg" for -Oz if reg is a legacy integer register.
! 
! 2025-07-31  liuhongt  <hongtao.liu@intel.com>
! 
! 	Backported from master:
! 	2025-07-30  liuhongt  <hongtao.liu@intel.com>
! 
! 	PR target/121274
! 	* config/i386/sse.md (*vec_concatv2di_0): Add a splitter
! 	before it.
! 
! 2025-07-30  Jennifer Schmitz  <jschmitz@nvidia.com>
! 	    Dhruv Chawla  <dhruvc@nvidia.com>
! 
! 	* config/aarch64/aarch64-cores.def (olympus): Use olympus tuning
! 	model.
! 	* config/aarch64/aarch64.cc: Include olympus.h.
! 	* config/aarch64/tuning_models/olympus.h: New file.
! 
! 2025-07-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	Backported from master:
! 	2025-07-14  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
! 
! 	PR target/120645
! 	* config/darwin-driver.cc: Account for latest macOS numbering
! 	scheme.
! 
! 2025-07-29  Martin Jambor  <mjambor@suse.cz>
! 
! 	Backported from master:
! 	2025-07-23  Martin Jambor  <mjambor@suse.cz>
! 
! 	PR tree-optimization/119085
! 	* tree-sra.cc (sort_and_splice_var_accesses): Prevent total
! 	scalarization if two incompatible aggregates access the same place.
! 
! 2025-07-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-07-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/121159
! 	* calls.cc (can_implement_as_sibling_call_p): Don't reject declared
! 	noreturn functions in musttail calls.
! 
! 2025-07-29  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	Backported from master:
! 	2025-06-19  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/120427
! 	* config/i386/i386.md (*mov<mode>_and): Changed to
! 	define_insn_and_split.  Split it to "mov $0,mem" if not -Oz.
! 	(*mov<mode>_or): Changed to define_insn_and_split.  Split it
! 	to "mov $-1,mem" if not -Oz.
! 	(peephole2): Don't transform "mov $-1,reg" to "push $-1; pop reg"
! 	for -Oz since it will be transformed to "or $-1,reg".
! 
! 2025-07-28  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2025-07-28  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR target/121277
! 	* config/avr/avr.cc (avr_addr_space_convert): When converting
! 	from generic AS to __flashx, don't set bit 23.
! 	(avr_convert_to_type): Don't -Waddr-space-convert when NULL
! 	is converted to __flashx or to __flash.
! 
! 2025-07-28  Xi Ruoyao  <xry111@xry111.site>
! 
! 	Backported from master:
! 	2025-07-17  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/121064
! 	* config/loongarch/lsx.md (lsx_vshuf_<lsxfmt_f>): Add '@' to
! 	generate a mode-aware helper.  Use <VIMODE> as the mode of the
! 	operand 1 (selector).
! 	* config/loongarch/lasx.md (lasx_xvshuf_<lasxfmt_f>): Likewise.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_try_expand_lsx_vshuf_const): Create a new pseudo for
! 	the selector.  Use the mode-aware helper to simplify the code.
! 	(loongarch_expand_vec_perm_const): Likewise.
  
! 2025-07-27  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
  
! 	Backported from master:
! 	2025-06-30  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
  
! 	PR target/120714
! 	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
! 	Fix SP-addresses in REG_CFA_DEF_CFA notes for stack-clash case.
  
! 2025-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	Backported from master:
! 	2025-07-17  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR middle-end/121095
! 	* gcse.cc (execute_hardreg_pre): Skip if the hardreg which is never live.
  
! 2025-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	Backported from master:
! 	2025-07-23  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/120119
! 	* config/aarch64/cortex-a57-fma-steering.cc (func_fma_steering::analyze):
! 	Skip if renaming fails.
  
! 2025-07-24  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-07-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/121202
! 	* tree-vect-slp.cc (vect_schedule_slp_node): Do not take
! 	an out-of-region stmt as "last".
  
! 2025-07-23  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2025-07-18  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/117423
! 	* tree-sra.cc (analyze_access_subtree): Fix computation of grp_covered
! 	flag.
  
! 2025-07-22  Tobias Burnus  <tburnus@baylibre.com>
  
! 	Backported from master:
! 	2025-06-17  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Also
! 	walk external functions that are declare inline (and have a
! 	DECL_SAVED_TREE).
  
! 2025-07-22  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	Backported from master:
! 	2025-06-04  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/mkoffload.cc (process): Use an 'auto_vec' for
! 	'file_idx'.
  
! 2025-07-22  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	Backported from master:
! 	2025-05-30  Thomas Schwinge  <tschwinge@baylibre.com>
! 		    Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/119835
! 	* tree-nrv.cc (pass_nrv::execute): Defuse 'RESULT_DECL' check.
  
! 2025-07-22  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	Backported from master:
! 	2025-05-19  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	PR lto/120308
! 	* lto-streamer-out.cc (hash_tree): Don't handle 'TYPE_EMPTY_P' for
! 	'lto_stream_offload_p'.
! 	* tree-streamer-in.cc (unpack_ts_type_common_value_fields):
! 	Likewise.
! 	* tree-streamer-out.cc (pack_ts_type_common_value_fields):
! 	Likewise.
  
! 2025-07-22  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	Backported from master:
! 	2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx-sm.def: Add '61'.
  	* 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_61, -march-map=sm_62):
! 	Likewise.
  	* config.gcc: Likewise.
! 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_61'.
  	* config/nvptx/gen-multilib-matches-tests: Extend.
  
! 2025-07-22  Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	Backported from master:
! 	2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>
  
  	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
! 	'PTX_VERSION_5_0'.
  	* config/nvptx/nvptx.cc (ptx_version_to_string)
  	(ptx_version_to_number): Adjust.
! 	* config/nvptx/nvptx.h (TARGET_PTX_5_0): New.
  	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
! 	'5.0' for 'PTX_VERSION_5_0'.
! 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=5.0'.
! 
! 2025-07-22  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	Backported from master:
! 	2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
! 		    Thomas Schwinge  <tschwinge@baylibre.com>
! 
! 	PR target/119737
! 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly
! 	switch sections.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-11  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/121027
! 	* config/aarch64/aarch64.cc (aarch64_evpc_sve_tbl): Punt on 2-input
! 	operations that can be handled by vec_perm.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64-sve2.md (aarch64_gather_ld1q): Replace with...
! 	(@aarch64_gather_ld1q<mode>): ...this, parameterizing based on mode.
! 	* config/aarch64/aarch64-sve-builtins-sve2.cc
! 	(svld1q_gather_impl::expand): Update accordingly.
! 	(svst1q_scatter_impl::expand): Use aarch64_sve_reinterpret
! 	instead of force_lowpart_subreg.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* doc/sourcebuild.texi (aarch64_sve2_hw, aarch64_sve2p1_hw): Document.
! 	* config/aarch64/aarch64.cc (aarch64_evpc_hvla): Extend to
! 	BYTES_BIG_ENDIAN.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Account
! 	for FLOAT_WORDS_BIG_ENDIAN when building a floating-point value.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64.cc (aarch64_sve_index_series_p): New
! 	function, split out from...
! 	(aarch64_simd_valid_imm): ...here.  Account for the different
! 	SVE and Advanced SIMD element orders on big-endian targets.
! 	Check each vector in a structure mode.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* read-rtl-function.cc (function_reader::read_rtx_operand_r): Use
! 	hard_regno_nregs to work out REG_NREGS for hard registers.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
! 	to the subreg_lsb.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/118891
! 	* config/aarch64/aarch64.cc (aarch64_expand_vector_init): Fix the
! 	ZIP1 operand order for big-endian targets.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* config/aarch64/aarch64-sve.md (@aarch64_sve_set_neonq_<mode>):
! 	Use %Z instead of lowpart_subreg.  Tweak formatting.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
! 	to the subreg_lsb.
! 
! 2025-07-21  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR tree-optimization/118891
! 	* tree-vect-stmts.cc (supportable_widening_operation): Swap the
! 	hi and lo internal functions on big-endian targets.
! 
! 2025-07-18  Hans-Peter Nilsson  <hp@bitrange.com>
! 	    Pietro Monteiro  <pietro@sociotechnical.xyz>
! 
! 	PR middle-end/120935
! 	* config/mmix/mmix.h (MAX_FIXED_MODE_SIZE): Define.
! 
! 2025-07-18  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120924
! 	* params.opt (uninit-max-chain-len): Up from 8 to 12.
! 
! 2025-07-18  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-15  Richard Biener  <rguenther@suse.de>
! 		    Richard Sandiford   <richard.sandiford@arm.com>
! 
! 	PR tree-optimization/121059
! 	* tree-vect-stmts.cc (vectorizable_operation): Query
! 	scalar_cond_masked_set with the correct number of masks.
! 
! 2025-07-18  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-16  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121049
! 	* internal-fn.h (widening_evenodd_fn_p): Declare.
! 	* internal-fn.cc (widening_evenodd_fn_p): New function.
! 	* tree-vect-stmts.cc (vectorizable_conversion): When using
! 	an even/odd widening function disable loop masking.
! 
! 2025-07-18  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-17  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/121035
! 	* tree-ssa-pre.cc (find_or_generate_expression): Handle
! 	values without expression.
! 
! 2025-07-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-07-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/121131
! 	* gimple-fold.cc (fold_nonarray_ctor_reference): Use
! 	TREE_INT_CST_LOW (TYPE_SIZE ()) instead of
! 	GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE ()) for BLKmode BITINT_TYPEs.
! 	Don't compute encoding_size at all for little endian targets.
! 
! 2025-07-17  Xi Ruoyao  <xry111@xry111.site>
! 
! 	Backported from master:
! 	2025-07-04  Xi Ruoyao  <xry111@xry111.site>
! 
! 	PR target/120807
! 	* config/loongarch/loongarch.md (crc_combine): Avoid nested
! 	subreg.
! 
! 2025-07-16  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* common/config/i386/i386-common.cc
! 	(OPTION_MASK_ISA2_AMX_AVX512_SET): Do not set AVX10.2.
! 	(OPTION_MASK_ISA2_AVX10_2_UNSET): Remove AMX-AVX512 unset.
! 	(OPTION_MASK_ISA2_AVX512F_UNSET): Unset AMX-AVX512.
! 	(ix86_handle_option): Imply AVX512F for AMX-AVX512.
! 
! 2025-07-15  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	Backported from master:
! 	2025-07-07  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR middle-end/120709
! 	* builtins.cc (expand_builtin_crc_table_based): Error out
! 	instead of asserting the 3rd argument is an integer constant.
! 	* internal-fn.cc (expand_crc_optab_fn): Likewise.
! 	* doc/extend.texi (crc): Document requirement of the poly argument
! 	being a constant.
! 
! 2025-07-14  Kyrylo Tkachov  <ktkachov@nvidia.com>
! 
! 	Backported from master:
! 	2025-07-10  Kyrylo Tkachov  <ktkachov@nvidia.com>
! 
! 	PR target/120999
! 	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_nor<mode>):
! 	Adjust movprfx alternative.
! 
! 2025-07-14  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	Backported from master:
! 	2025-05-08  Richard Earnshaw  <rearnsha@arm.com>
! 
! 	* config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Move
! 	commutative marker to the cons specification.
! 	(add<mode>3): Likewise.
! 	(@aarch64_pred_<su>abd<mode>): Likewise.
! 	(@aarch64_pred_<optab><mode>): Likewise.
! 	(*cond_<optab><mode>_z): Likewise.
! 	(<optab><mode>3): Likewise.
! 	(@aarch64_pred_<optab><mode>): Likewise.
! 	(*aarch64_pred_abd<mode>_relaxed): Likewise.
! 	(*aarch64_pred_abd<mode>_strict): Likewise.
! 	(@aarch64_pred_<optab><mode>): Likewise.
! 	(@aarch64_pred_<optab><mode>): Likewise.
! 	(@aarch64_pred_fma<mode>): Likewise.
! 	(@aarch64_pred_fnma<mode>): Likewise.
! 	(@aarch64_pred_<optab><mode>): Likewise.
! 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_<su>clamp<mode>): Move
! 	commutative marker to the cons specification.
! 	(*aarch64_sve_<su>clamp<mode>_x): Likewise.
! 	(@aarch64_sve_fclamp<mode>): Likewise.
! 	(*aarch64_sve_fclamp<mode>_x): Likewise.
! 	(*aarch64_sve2_nor<mode>): Likewise.
! 	(*aarch64_sve2_nand<mode>): Likewise.
! 	(*aarch64_pred_faminmax_fused): Likewise.
! 	* config/aarch64/aarch64.md (*loadwb_pre_pair_<ldst_sz>): Move the
! 	early-clobber marker to the relevant alternative.
! 	(*storewb_pre_pair_<ldst_sz>): Likewise.
! 	(*add<mode>3_aarch64): Move commutative marker to the cons
! 	specification.
! 	(*addsi3_aarch64_uxtw): Likewise.
! 	(*add<mode>3_poly_1): Likewise.
! 	(add<mode>3_compare0): Likewise.
! 	(*addsi3_compare0_uxtw): Likewise.
! 	(*add<mode>3nr_compare0): Likewise.
! 	(<optab><mode>3): Likewise.
! 	(*<optab>si3_uxtw): Likewise.
! 	(*and<mode>3_compare0): Likewise.
! 	(*andsi3_compare0_uxtw): Likewise.
! 	(@aarch64_and<mode>3nr_compare0): Likewise.
! 
! 2025-07-14  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-06-30  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR rtl-optimization/120242
! 	PR rtl-optimization/120627
! 	PR rtl-optimization/120736
! 	PR rtl-optimization/120813
! 	* ext-dce.cc (ext_dce_process_uses): Remove some cases where we
! 	unnecessarily expanded live sets for promoted subregs.
! 	(expand_changed_pseudos): New function.
! 	(reset_subreg_promoted_p): Use it.
! 
! 2025-07-14  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	Backported from master:
! 	2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	PR target/118241
! 	* config/riscv/riscv.md (prefetch): Add alternative "r".
! 
! 2025-07-14  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	Backported from master:
! 	2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>
! 
! 	* config/riscv/predicates.md (prefetch_operand): mack 5 bits.
! 
! 2025-07-14  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-06-24  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR target/118241
! 	* config/riscv/predicates.md: Fix comment typo in recent change.
! 
! 2025-07-14  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-06-21  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR target/118241
! 	* config/riscv/predicates.md (prefetch_operand): New predicate.
! 	* config/riscv/constraints.md (Q): New constraint.
! 	* config/riscv/riscv.md (prefetch): Use new predicate and constraint.
! 	(riscv_prefetchi_<mode>): Similarly.
! 
! 2025-07-14  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	Backported from master:
! 	2025-07-03  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/120908
! 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
! 	gen_tls_local_dynamic_64.
! 	* config/i386/i386.md (*tls_global_dynamic_64_largepic): Add
! 	RDI clobber and use it to generate LEA.
! 	(*tls_local_dynamic_64_<mode>): Likewise.
! 	(*tls_local_dynamic_base_64_largepic): Likewise.
! 	(@tls_local_dynamic_64_<mode>): Add a clobber.
! 
! 2025-07-14  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	Backported from master:
! 	2025-07-02  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR target/120908
! 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
! 	gen_tls_global_dynamic_64.
! 	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Add RDI
! 	clobber and use it to generate LEA.
! 	(@tls_global_dynamic_64_<mode>): Add a clobber.
! 
! 2025-07-14  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* config/i386/i386.h (PTA_PANTHERLAKE): Revmoe KL and WIDEKL.
! 	(PTA_CLEARWATERFOREST): Ditto.
! 	* doc/invoke.texi: Revise documentation.
! 
! 2025-07-13  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
! 
! 	Backported from master:
! 	2025-07-02  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
! 
! 	PR target/120356
! 	* config/riscv/riscv-v.cc
! 	(expand_const_vector_interleaved_stepped_npatterns):
! 	Fix ASHIFT to LSHIFTRT insn.
! 
! 2025-07-13  Andreas Schwab  <schwab@suse.de>
! 
! 	Backported from master:
! 	2025-07-08  Andreas Schwab  <schwab@suse.de>
! 
! 	PR target/120995
! 	* config/riscv/sync.md (zacas_atomic_cas_value_strong<mode>):
! 	Allow op3 to be zero.
! 
! 2025-07-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-07-11  Jakub Jelinek  <jakub@redhat.com>
! 		    Martin Jambor  <mjambor@suse.cz>
! 
! 	PR ipa/121023
! 	* ipa-fnsummary.cc (compute_fn_summary): Disallow signature changes
! 	on cfun->has_musttail functions.
! 
! 2025-07-10  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	Backported from master:
! 	2025-07-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>
! 
! 	PR tree-optimization/120780
! 	* tree-object-size.cc (inner_at_offset,
! 	get_wholesize_for_memref): New functions.
! 	(addr_object_size): Call get_wholesize_for_memref.
! 
! 2025-07-10  Kyrylo Tkachov  <ktkachov@nvidia.com>
! 
! 	Backported from master:
! 	2025-06-30  Kyrylo Tkachov  <ktkachov@nvidia.com>
! 
! 	* config/aarch64/aarch64-cores.def (gb10): New entry.
! 	* config/aarch64/aarch64-tune.md: Regenerate.
! 	* doc/invoke.texi (AArch64 Options): Document the above.
! 
! 2025-07-09  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-08  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120358
! 	* tree-ssa-structalias.cc (get_constraint_for_1): Adjust
! 	pruning of sub-variables according to the imprecise
! 	known start offset.
! 
! 2025-07-09  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-03  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/118669
! 	* tree-vect-stmts.cc (vectorizable_load): Emit loads
! 	with proper (element) alignment.
! 	(vectorizable_store): Likewise.
! 
! 2025-07-09  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-07  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120817
! 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use
! 	ao_ref_init_from_ptr_and_range with unknown size for
! 	.MASK_STORE and .MASK_LEN_STORE.
! 
! 2025-07-09  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120927
! 	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
! 	Do not force a DRs base alignment when analyzing an
! 	epilog loop.  Check whether the step preserves alignment
! 	for all VFs possibly involved sofar.
! 
! 2025-07-09  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-04  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120944
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Gate optimizations
! 	invalid when volatile is involved.
! 
! 2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-mcus.def: -mmcu= takes lower case MCU names.
! 	* doc/avr-mmcu.texi: Rebuild.
! 
! 2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	Backported from master:
! 	2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	* config/avr/avr-mcus.def (avr32da28S, avr32da32S, avr32da48S)
! 	(avr64da28S, avr64da32S, avr64da48S avr64da64S)
! 	(avr128da28S, avr128da32S, avr128da48S, avr128da64S): Add devices.
! 	* doc/avr-mmcu.texi: Rebuild.
! 
! 2025-07-03  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	Backported from master:
! 	2025-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR middle-end/120369
! 	* tree-complex.cc (gimple_expand_builtin_cabs): Return early
! 	if the LHS of cabs is null.
! 
! 2025-07-03  Sam James  <sam@gentoo.org>
! 
! 	Backported from master:
! 	2025-06-23  Sam James  <sam@gentoo.org>
! 		    Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR rtl-optimization/120795
! 	* ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in
! 	remove_reg_equal_equiv_notes call.
! 
! 2025-07-03  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-06-22  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR rtl-optimization/120550
! 	* ext-dce.cc (ext_dce_try_optimize_insn): Drop REG_EQUAL/REG_EQUIV
! 	notes on modified insns.
! 
! 2025-07-02  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-07-02  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120927
! 	* tree-vect-loop.cc (vect_analyze_loop): Stop querying
! 	further epilogues after one with partial vectors.
! 
! 2025-07-02  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* config/i386/driver-i386.cc (host_detect_local_cpu): Change
! 	to AMX-FP8 for Diamond Rapids.
! 
! 2025-07-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-07-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120608
! 	* passes.def (pass_musttail): Move before pass_sanopt.
! 	* tree-tailcall.cc (empty_eh_cleanup): Handle GIMPLE_RESX
! 	which doesn't throw externally through recursion on single
! 	eh edge (if any and cnt still allows that).
! 	(find_tail_calls): Add ESUCC, IGNORED_EDGES and MUST_SEE_BBS
! 	arguments.  Handle GIMPLE_CONDs for non-simplified cleanups with
! 	finally_tmp temporaries both on backward and forward walks, adjust
! 	recursive call.
! 	(tree_optimize_tail_calls_1): Adjust find_tail_calls callers.
! 
! 2025-06-27  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gimple-fold.cc (fold_const_aggregate_ref_1) <COMPONENT_REF>:
! 	Bail out immediately if the reference has reverse storage order.
! 	* tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise.
! 
! 2025-06-26  Richard Biener  <rguenther@suse.de>
! 
! 	* lto-streamer.h (LTO_minor_version): Bump to 1.
! 
! 2025-06-26  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-06-23  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120729
! 	* gimple-predicate-analysis.h (uninit_analysis::prune_phi_opnds):
! 	Add argument of work budget remaining.
! 	* gimple-predicate-analysis.cc (uninit_analysis::prune_phi_opnds):
! 	Likewise.  Maintain and honor it throughout the recursion.
! 	* params.opt (uninit-max-prune-work): New.
! 	* doc/invoke.texi (uninit-max-prune-work): Document.
! 
! 2025-06-26  Richard Biener  <rguenther@suse.de>
! 
! 	Backported from master:
! 	2025-06-20  Richard Biener  <rguenther@suse.de>
! 
! 	PR tree-optimization/120654
! 	* vr-values.cc (range_fits_type_p): Check for undefined_p ()
! 	before accessing type ().
! 
! 2025-06-25  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-06-10  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	* config/riscv/riscv.md (lui-constraint<X:mode>and_to_or): Do not use
! 	the RTL template for split code.  Emit it directly taking care to avoid
! 	emitting a constant load that needed synthesis.  Fix formatting.
! 
! 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-06-12  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR target/120624
! 	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Expand on comments.
! 	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Also set
! 	SME_STATE_REGNUM
! 
! 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	Backported from master:
! 	2025-05-30  Richard Sandiford  <richard.sandiford@arm.com>
! 
! 	PR rtl-optimization/120347
! 	* rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the
! 	IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers.
! 	* rtl-ssa/changes.cc (recog_level2): Check whether an
! 	RTX_AUTOINCed register also appears outside of an address.
! 
! 2025-06-25  Haochen Jiang  <haochen.jiang@intel.com>
! 
! 	* config/i386/i386.h (PTA_ALDERLAKE): Use PTA_GOLDMONT_PLUS
! 	as base to remove PTA_CLDEMOTE.
! 	(PTA_SIERRAFOREST): Add PTA_CLDEMOTE since PTA_ALDERLAKE
! 	does not include that anymore.
! 	* doc/invoke.texi: Update texi file.
! 
! 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120608
! 	* tree-tailcall.cc (empty_eh_cleanup): Ignore .ASAN_MARK (POISON)
! 	internal calls for the cfun->has_musttail case and diag_musttail.
! 	(find_tail_calls): Likewise.
! 
! 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120608
! 	* cfgexpand.cc: Include rtl-iter.h.
! 	(expand_gimple_tailcall): Add ASAN_EPILOG_SEQ argument, if non-NULL
! 	and expand_gimple_stmt emitted a tail call, emit a copy of that
! 	insn sequence before the call sequence.
! 	(expand_gimple_basic_block): Remove DISABLE_TAIL_CALLS argument, add
! 	ASAN_EPILOG_SEQ argument.  Disable tail call flag only on non-musttail
! 	calls if that flag is set, pass it to expand_gimple_tailcall.
! 	(pass_expand::execute): Pass VAR_RET_SEQ directly as last
! 	expand_gimple_basic_block argument rather than its comparison with
! 	NULL.
! 
! 2025-06-20  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	Backported from master:
! 	2025-05-05  Jeff Law  <jlaw@ventanamicro.com>
! 
! 	PR target/119971
! 	* config/riscv/bitmanip.md (rotation with masked count): Rewrite
! 	as define_insn patterns.  Fix formatting.
! 	* config/riscv/riscv.md (shift with masked count): Similarly.
! 
! 2025-06-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120631
! 	* dfp.cc (decimal_real_to_integer): Use result multiplication not just
! 	when precision > 128 and dn.exponent > 19, but when precision > 64
! 	and dn.exponent > 0.
! 
! 2025-06-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120631
! 	* real.cc (decimal_from_integer): Add digits argument, if larger than
! 	256, use XALLOCAVEC allocated buffer.
! 	(real_from_integer): Pass val_in's precision divided by 3 to
! 	decimal_from_integer.
! 	* dfp.cc (decimal_real_to_integer): For precision > 128 if finite
! 	and exponent is large, decrease exponent and multiply resulting
! 	wide_int by powers of 10^19.
! 
! 2025-06-18  Jan Beulich  <jbeulich@suse.com>
! 
! 	* doc/gcov.texi: Drop blank after @anchor.
! 
! 2025-06-18  Jan Beulich  <jbeulich@suse.com>
! 
! 	* doc/extend.texi: Fill first argument of @xref{}.
! 
! 2025-06-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/120677
! 	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop):
! 	Insert before gsi_after_labels instead of gsi_start_bb.  Use
! 	gimple_bb (output_crc) instead of output_crc->bb.  Formatting fix.
! 
! 2025-06-14  Georg-Johann Lay  <avr@gjlay.de>
! 
! 	PR rtl-optimization/120423
! 	PR rtl-optimization/116389
! 	* config/avr/avr.md [-mno-lra]: Add pre-reload split to transform
! 	(left shift of) a paradoxical subreg to a (left shift of) zero-extend.
! 
! 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/120638
! 	* tree-ssa-math-opts.cc (pass_cse_reciprocals::execute): Call
! 	reset_flow_sensitive_info on arg1.
! 
! 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-06-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120547
! 	* real.cc (real_from_integer): Remove maxbitlen variable, use
! 	len instead of that.  When shifting right, or in 1 if any of the
! 	shifted away bits are non-zero.  Formatting fix.
! 
! 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-05-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* tree-chrec.cc (convert_affine_scev): Use signed_type_for instead of
! 	build_nonstandard_integer_type.
! 
! 2025-06-12  Martin Jambor  <mjambor@suse.cz>
! 
! 	Backported from master:
! 	2025-05-29  Martin Jambor  <mjambor@suse.cz>
! 
! 	PR ipa/120295
! 	* ipa-prop.cc (update_jump_functions_after_inlining): Do not
! 	combine pass-through jump functions with type-casts changing
! 	signedness.
! 
! 2025-06-10  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	Backported from master:
! 	2025-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
  
! 	PR target/120042
! 	* tree-vectorizer.h: Include dominance.h.
  
! 2025-06-10  Xi Ruoyao  <xry111@xry111.site>
  
! 	Backported from master:
! 	2025-06-04  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR rtl-optimization/120050
! 	* ext-dce.cc (ext_dce_process_uses): Break early if a SUBREG in
! 	rhs is promoted and the truncation from the inner mode to the
! 	outer mode is not a noop when handling SETs.
  
! 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
  
! 	Backported from master:
! 	2025-06-05  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* config.gcc (--with-{arch,tune}): Use .def file to validate gcn
! 	processor names.
! 	* doc/install.texi (amdgcn*-*-*): Update list of devices supported
! 	by --with-arch/--with-tune.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-31  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120357
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Create
! 	the conditional reduction induction IV increment before the
! 	main IV exit.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120341
! 	* tree-ssa-loop-im.cc (can_sm_ref_p): STRING_CSTs are readonly.
! 	* tree-ssa-phiopt.cc (cond_store_replacement): Likewise.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-09  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/120182
! 	* dse.cc (canon_address): Constant addresses have no
! 	separate store group.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-04-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120003
! 	* tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
! 	Allow block re-use but do not enlarge the path beyond such a
! 	re-use.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119960
! 	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
! 	Handle cases where defs from multiple BBs are ordered
! 	by their dominance relation.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/116352
! 	* tree-vect-slp.cc (vect_build_slp_tree_2): When compressing
! 	operands from a two-operator node make sure the resulting
! 	operation does not mix defs from different basic-blocks.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-04-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/119960
! 	* tree-vect-slp.cc (vect_schedule_slp_node): Sanity
! 	check dominance check on operand defs.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-04-30  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vectorizer.h (get_later_stmt): Robustify against
! 	stmts in different BBs, assert when they are unordered.
  
! 2025-06-06  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-15  Richard Biener  <rguenther@suse.de>
  
! 	* config/i386/i386.cc (ix86_vector_costs::finish_cost):
! 	Do not suggest a first epilogue mode for AVX512 sized
! 	main loops with X86_TUNE_AVX512_TWO_EPILOGUES as that
! 	interferes with using a masked epilogue.
  
! 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): Return
! 	false if the variable has no symtab node.
  
! 2025-05-29  Yuta Mukai  <mukai.yuta@fujitsu.com>
  
! 	Backported from master:
! 	2025-05-28  Yuta Mukai  <mukai.yuta@fujitsu.com>
  
! 	* config/aarch64/aarch64-cores.def (fujitsu-monaka): Update ISA
! 	features.
  
! 2025-05-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* ipa-sra.cc (scan_expr_access): Also disqualify storage order
! 	barriers from splitting.
! 	* tree.h (storage_order_barrier_p): Also return false if the
! 	operand of the VIEW_CONVERT_EXPR has reverse storage order.
  
! 2025-05-27  Jonathan Wakely  <jwakely@redhat.com>
  
! 	Backported from master:
! 	2025-05-27  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/extend.texi (Common Variable Attributes): Fix typo in
! 	description of nonstring.
  
! 2025-05-25  Michael J. Eager  <eager@eagercon.com>
  
! 	PR target/86772
! 	Tracking CVE-2017-5753
! 	* config/microblaze/microblaze.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE):
! 	Define to speculation_save_value_not_needed
  
! 2025-05-20  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2025-05-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/111873
! 	* tree-sra.cc (sra_modify_expr): When processing a load which has
! 	a type-incompatible replacement, do not store the contents of the
! 	replacement into the original aggregate when that aggregate is
! 	const.
  
! 2025-05-20  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2025-05-16  Martin Jambor  <mjambor@suse.cz>
! 		    Michal Jires  <mjires@suse.cz>
  
! 	* cgraph.h (symtab_node): Make member function get_uid const.
! 	* cgraphclones.cc (dump_callgraph_transformation): Dump m_uid of the
! 	call graph nodes instead of order.
! 	* cgraph.cc (cgraph_node::remove): Likewise.
! 	* ipa-cp.cc (ipcp_lattice<valtype>::print): Likewise.
! 	* ipa-sra.cc (ipa_sra_summarize_function): Likewise.
! 	* symtab.cc (symtab_node::dump_base): Likewise.
  
! 2025-05-16  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	Backported from master:
! 	2025-04-19  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/alpha/alpha.cc
! 	(alpha_get_mem_rtx_alignment_and_offset): Recurse into
! 	COMPONENT_REF nodes.
  
! 2025-05-14  Kyle Huey  <me@kylehuey.com>
  
! 	* dwarf2out.cc (resolve_addr_in_expr): Propagate dtprel into the address
! 	table when appropriate.
  
! 2025-05-13  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	Backported from master:
! 	2025-05-12  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/120188
! 	* doc/gm2.texi (Semantic checking): Add -fm2-plugin command line option.
  
! 2025-05-11  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120211
! 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Only add PHIs
! 	from the loop header to LOOP_VINFO_EARLY_BREAKS_LIVE_IVS.
  
! 2025-05-11  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-08  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/120146
! 	* tree-ssa-structalias.cc (create_variable_info_for): If
! 	the symtab cannot tell us whether all refs to a variable
! 	are explicit assume they are not.
  
! 2025-05-11  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120143
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	Move/update the original stmts, not the pattern stmts which
! 	lack virtual operands and are not in the IL.
  
! 2025-05-11  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120089
! 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Mark all
! 	PHIs live when not already so and doing early-break
! 	vectorization.
! 	(vect_mark_stmts_to_be_vectorized): Skip virtual PHIs.
! 	* tree-vect-slp.cc (vect_analyze_slp): Robustify handling
! 	of early-break forced IVs.
  
! 2025-05-11  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-05-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/120043
! 	* tree-ssa-phiopt.cc (cond_store_replacement): Check
! 	whether the store is to readonly memory.
  
! 2025-05-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* vr-values.cc (simplify_using_ranges::simplify) <BIT_AND_EXPR>:
! 	Do not call simplify_bit_ops_using_ranges for boolean types whose
! 	precision is not 1.
  
! 2025-05-07  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2025-05-06  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/119852
! 	* cgraphclones.cc (dump_callgraph_transformation): Document the
! 	function.  Do not dump if suffix is NULL.
  
! 2025-05-07  Martin Jambor  <mjambor@suse.cz>
  
! 	Backported from master:
! 	2025-05-06  Martin Jambor  <mjambor@suse.cz>
  
! 	* doc/invoke.texi (Developer Options): Document -fdump-ipa-clones.
  
! 2025-05-06  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/120048
! 	* ipa-cp.cc (ipcp_store_vr_results): Check for UNDEFINED.
  
! 2025-05-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-05-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/120074
! 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): For
! 	lsignbit && l_xor case, punt if ll_bitsize != lr_bitsize.  Similarly
! 	for rsignbit && r_xor case, punt if rl_bitsize != rr_bitsize.
! 	Formatting fix.
  
! 2025-05-05  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-04-30  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/120006
! 	* tree-ssa-structalias.cc (find_func_clobbers): Handle
! 	strdup, strndup, realloc, index, strchr, strrchr, memchr,
! 	strstr, strpbrk builtins like find_func_aliases does.
  
! 2025-05-05  Richard Biener  <rguenther@suse.de>
  
! 	Backported from master:
! 	2025-04-28  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/119973
! 	* tree-ssa-structalias.cc (create_variable_info_for):
! 	Build constraints from DECL_INITIAL directly rather than
! 	the IPA reference list which is incomplete.
  
! 2025-04-30  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/119712
! 	* value-range.cc (range_bitmask::adjust_range): Delete.
! 	(irange::set_range_from_bitmask): Integrate adjust_range.
! 	(irange::update_bitmask): Do nothing if bitmask doesnt change.
! 	(irange:intersect_bitmask): Do not call adjust_range. Exit if there
! 	is no second bitmask.
! 	* value-range.h (adjust_range): Remove prototype.
  
! 2025-04-30  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md (fxload_<mode>_libgcc): Use REG_ prefix for
! 	magix register numbers (aligns with trunk).
  
! 2025-04-30  Georg-Johann Lay  <avr@gjlay.de>
  
! 	Backported from master:
! 	2025-04-30  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z.
  
! 2025-04-29  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	Backported from master:
! 	2025-04-24  Richard Sandiford  <richard.sandiford@arm.com>
  
! 	PR target/119610
! 	* config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
! 	Add a bytes_below_sp parameter and use it to calculate the CFA
! 	offsets.  Attach the first SVE CFA note to the move into the
! 	associated temporary register.
! 	(aarch64_allocate_and_probe_stack_space): Update calls accordingly.
! 	Start out with bytes_per_sp set to the frame size and decrement
! 	it after each allocation.
  
! 2025-04-29  liuhongt  <hongtao.liu@intel.com>
  
! 	Backported from master:
! 	2025-04-29  liuhongt  <hongtao.liu@intel.com>
  
! 	* config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC):
! 	Remove other processor except for GLC since this one is only
! 	for GLC.
  
! 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119873
! 	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
! 	true if default definition of PARM_DECL SSA_NAME of the same register
! 	is passed in call saved register in the PARALLEL case either.
  
! 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-04-24  Jakub Jelinek  <jakub@redhat.com>
! 		    Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/119873
! 	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
! 	true if default definition of PARM_DECL SSA_NAME of the same register
! 	is passed in call saved register.
! 	(s390_function_ok_for_sibcall): Adjust comment.
  
! 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/119327
! 	* config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also
! 	OPTION_MASK_SAVE_TOC_INDIRECT differences.
  
! 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.
--- 1,6719 ----
! 2026-04-22  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/124933
! 	* config/arm/constraints.md (Uj): Allow offset addressing for
! 	all targets, only allow Neon addressing when we have both Neon
! 	and FP16INST.
! 	* config/arm/vfp.md (mov<mode>_vfp_<mode>16): Only use vld1/vst1
! 	when the pattern needs address write-back.
  
! 2026-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/124971
! 	* gensupport.cc (convert_syntax): Fix up // comment handling.
  
! 2026-04-21  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/120189
! 	* doc/gm2.texi (Building a shared library): Replace
! 	constant string with DEFAULT_RUNTIME_MODULE_OVERRIDE.
  
! 2026-04-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123635
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt):
! 	Extend the padding bits not just for unsigned MULT_EXPR but for any
! 	TYPE_OVERFLOW_WRAPS MULT_EXPR and signed TYPE_OVERFLOW_WRAPS division.
  
! 2026-04-21  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124941
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Use build_bitint_type
! 	rather than build_nonstandard_integer_type for
! 	maxsizei larger than MAX_FIXED_MODE_SIZE.
  
! 2026-04-21  Gaius Mulley  <gaiusmod2@gmail.com>
  
! 	PR modula2/120189
! 	* doc/gm2.texi (Building a shared library): Rewrite.
  
! 2026-04-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123635
! 	* gimple-lower-bitint.cc (bitint_large_huge::lower_shift_stmt): In the
! 	RSHIFT_EXPR case, use p2 in two LE_EXPR conditions rather than just
! 	one.  In LSHIFT_EXPR case, use signed RSHIFT_EXPR instead of unsigned.
! 	(bitint_large_huge::lower_muldiv_stmt): For unsigned MULT_EXPR with
! 	bitint_extended if prec is not multiple of limb_prec, clear padding
! 	bits after libgcc call.
! 	(bitint_large_huge::lower_float_conv_stmt): Use signed RSHIFT_EXPR
! 	instead of unsigned.
  
! 2026-04-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123635
! 	* gimple-lower-bitint.cc (bitint_precision_kind): Assert the current
! 	assumptions, that bitint_ext_full for abi_limb_prec > limb_prec is
! 	supported only when abi_limb_prec is limb_Prec * 2 and it is not
! 	big endian in that case.
! 	(bitint_large_huge::lower_mergeable_stmt): Don't set separate_ext
! 	fir bitint_ext_full for bit-field stores.  Guard the condition
! 	on an extra limb of padding bits to be extended rather than including
! 	earlier extensions in that too.  If already sign extending before
! 	and type is unsigned, set zero_ms_limb instead and later handle it.
! 	(bitint_large_huge::lower_shift_stmt): Handle bitint_ext_full.
  
! 2026-04-20  Soumya AR  <soumyaa@nvidia.com>
  
! 	* config/aarch64/aarch64-narrow-gp-writes.cc (narrow_dimode_src): Remove
! 	redundant checks. Don't recurse when an operand remains DImode.
! 	(narrow_gp_writes::optimize_compare_arith_insn): Use
! 	HOST_WIDE_INT_PRINT_HEX.
! 	(narrow_gp_writes::optimize_single_set_insn): Likewise.
  
! 2026-04-19  Richard Sandiford  <rdsandiford@googlemail.com>
  
! 	PR rtl-optimization/124643
! 	* cse.cc (canon_reg): Handle and canonicalize subregs.
  
! 2026-04-18  Richard Sandiford  <rdsandiford@googlemail.com>
  
! 	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Fix a comment typo.
  
! 2026-04-18  Gopi Kumar Bulusu  <gopi@sankhya.com>
  
! 	PR target/103383
! 	* config/microblaze/microblaze.md: bswaphi2: (set_attr length 8)
  
! 2026-04-17  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR c/84717
! 	* doc/extend.texi (Decimal Float): Document d and D suffixes.
! 	Fix index entries for decimal float suffixes.
  
! 2026-04-17  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/120098
! 	* ipa-polymorphic-call.cc (polymorphic_ctor_dtor_p): Remove
! 	check for pure/const flags
  
! 2026-04-17  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/120098
! 	* ipa-devirt.cc (odr_type_p): Add no_derived_construction_vtables
! 	(odr_types_ptr): Move ahead in file.
! 	(odr_types): Move ahead in file.
! 	(anonymous_construction_vtable_p): New function.
! 	(mark_derived_construction_vtables): New function.
! 	(construction_vtable_hook): New function.
! 	(type_possibly_instantiated_p): Watch for construction vtables.
  
! 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
  
! 	* config/nvptx/nvptx-sm.def: Add '50'.
  	* 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_50): Likewise.
  	* config.gcc: Likewise.
! 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_50'.
  	* config/nvptx/gen-multilib-matches-tests: Extend.
  
! 2026-04-17  Thomas Schwinge  <tschwinge@baylibre.com>
  
  	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
! 	'PTX_VERSION_4_0'.
  	* config/nvptx/nvptx.cc (ptx_version_to_string)
  	(ptx_version_to_number): Adjust.
! 	* config/nvptx/nvptx.h (TARGET_PTX_4_0): New.
  	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
! 	'4.0' for 'PTX_VERSION_4_0'.
! 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.0'.
  
! 2026-04-17  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR middle-end/124900
! 	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): Do
! 	not expand to table when compiling for size.
! 	(class crc_optimization): Update prototype of optimize_crc_loop to
! 	include loop.
! 	(crc_optimization::execute): Pass loop to optimize_crc_loop.
  
! 2026-04-16  Richard Earnshaw  <rearnsha@arm.com>
  
! 	* config/arm/arm-cpus.in (cortex-m85): Allow +cdecp<n>.
! 	* doc/invoke.texi: Document this
  
! 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124565
! 	* config/stormy16/stormy16.cc (xstormy16_build_builtin_va_list): Set
! 	TREE_PUBLIC on type_decl.
! 	* config/xtensa/xtensa.cc (xtensa_build_builtin_va_list): Likewise.
  
! 2026-04-16  Tobias Burnus  <tburnus@baylibre.com>
  
! 	PR target/124897
! 	* doc/install.texi (amdgcn-amdhsa): Fix required LLVM version for
! 	default multilib.
  
! 2026-04-16  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/124877
! 	* calls.cc (initialize_argument_information): Compute
! 	signedness of the formal argument type before applying
! 	PROMOTE_PROTOTYPES promotion.  Also apply promotion to
! 	a smaller than int integer first member type of a
! 	transparent union.
! 	* target.def (promote_prototypes): Update documentation.
! 	* doc/tm.texi: Re-generate.
  
! 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124892
! 	* config/i386/i386.md (clz<mode>2_lzcnt_nf,
! 	<lt_zcnt>_<mode>_nf, popcount<mode>2_nf): Emit explicit
! 	set of (match_dup 0) to (const_int 0) without flags clobber instead of
! 	using ix86_expand_clear.
  
! 2026-04-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124891
! 	* tree-ssa-propagate.cc
! 	(substitute_and_fold_dom_walker::before_dom_children): Call update_stmt
! 	in the did_replace case before calling fold_stmt.
  
! 2026-04-15  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/122976
! 	* tree-sra.cc (path_comparable_for_same_access): Return false if the
! 	base is a MEM_REF with a different underlying type.
  
! 2026-04-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123635
! 	* target.h (enum bitint_ext): New.
! 	(struct bitint_info): Change extend type from bool to enum bitint_ext
! 	and document it.
! 	* gimple-lower-bitint.cc (bitint_extended): Change type from bool
! 	to enum bitint_ext.
! 	(bitint_precision_kind): Change bitint_extended to bitint_ext_partial
! 	from bitint_ext_full if limb_mode is the same as abi_limb_mode.
! 	(bitint_large_huge::limb_access_type): For
! 	bitint_extended == bitint_ext_full allow access to the most
! 	significant limb solely with padding bits if present.
! 	(bitint_large_huge::lower_mergeable_stmt): Handle
! 	bitint_extended == bitint_ext_full extension if needed.
! 	(bitint_large_huge::lower_muldiv_stmt): Likewise.
! 	(bitint_large_huge::lower_float_conv_stmt): Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_bitint_type_info): Set
! 	info->extended to bitint_ext_undef rather than false.
! 	* config/arm/arm.cc (arm_bitint_type_info): Set
! 	info->extended to bitint_ext_full rather than true.
! 	* config/i386/i386.cc (ix86_bitint_type_info): Set
! 	info->extended to bitint_ext_undef rather than false.
! 	* config/loongarch/loongarch.cc (loongarch_bitint_type_info): Set
! 	info->extended to bitint_ext_partial rather than true.
! 	* config/riscv/riscv.cc (riscv_bitint_type_info): Set
! 	info->extended to bitint_ext_full rather than true.
! 	* config/s390/s390.cc (s390_bitint_type_info): Likewise.
  
! 2026-04-15  Jason Merrill  <jason@redhat.com>
  
! 	PR c++/117133
! 	PR c++/124768
! 	PR c++/124773
! 	* doc/trouble.texi (Linkage in Anonymous Namespaces): Remove.
  
! 2026-04-15  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* config/i386/i386.cc
! 	(x86_64_preserve_none_int_parameter_registers): Replace
! 	ix86_function_value_regno_p with ix86_function_arg_regno_p in
! 	comments.
  
! 2026-04-14  Tamar Christina  <tamar.christina@arm.com>
  
! 	* config/aarch64/aarch64-cores.def (armagicpu): New.
! 	* config/aarch64/aarch64-tune.md: Renegerate
! 	* doc/invoke.texi: Document it.
  
! 2026-04-14  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/124809
! 	* value-relation.cc (equiv_oracle::equiv_oracle): Allocate lhs
! 	equivalence bitmap.
! 	(relation_oracle::record): Check if LHS has already created an
! 	equivalence record.
! 	* value-relation.h (relation_oracle::relation_oracle): New.
! 	(relation_oracle::m_lhs_equiv_set_p): New.
  
! 2026-04-14  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/123102
! 	* config/arm/arm.md (*cmp_ite0): Apply stricter checks on the
! 	comparison mode.
! 	(*cmp_ite1, *cmp_and, *cmp_ior): Likewise.
  
! 2026-04-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/124777
! 	* ipa-cp.h (ipacp_value_safe_for_type): Declare.
! 	* ipa-cp.cc (ipacp_value_safe_for_type): Make public.
! 	* ipa-prop.cc (ipa_set_jf_cst_copy): Fix comment.
! 	(ipa_convert_prop_cst_jf): New function.
! 	(update_jump_functions_after_inlining): Handle the constant to
! 	pass-through case by calling ipa_convert_prop_cst_jf.
  
! 2026-04-14  Soumya AR  <soumyaa@nvidia.com>
  
! 	* config/aarch64/aarch64.opt.urls: Regenerate.
  
! 2026-04-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124875
! 	* tree-ssa-pre.cc (prefer): Also compare TBAA set and base_set.
! 	Refactor computing the final prefered expression, do early outs
! 	and allow same prefered expressions.
! 	(sorted_array_from_bitmap_set): Fix thinko that prevented
! 	the last expression in the set of being excluded.
  
! 2026-04-14  Soumya AR  <soumyaa@nvidia.com>
! 	    Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config.gcc: Add aarch64-narrow-gp-writes.o.
! 	* config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert
! 	pass_narrow_gp_writes before pass_cleanup_barriers.
! 	* config/aarch64/aarch64-protos.h (make_pass_narrow_gp_writes): Declare.
! 	* config/aarch64/aarch64-tuning-flags.def
! 	(AARCH64_EXTRA_TUNING_OPTION): Add NARROW_GP_WRITES.
! 	* config/aarch64/aarch64.opt (mnarrow-gp-writes): New option.
! 	* config/aarch64/t-aarch64: Add aarch64-narrow-gp-writes.o rule.
! 	* config/aarch64/tuning_models/olympus.h: Add
! 	AARCH64_EXTRA_TUNE_NARROW_GP_WRITES to tune_flags.
! 	* doc/invoke.texi: Document -mnarrow-gp-writes.
! 	* config/aarch64/aarch64-narrow-gp-writes.cc: New file.
  
! 2026-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124826
! 	* gimple-lower-bitint.cc (bitint_large_huge::handle_load): Look through
! 	BIT_FIELD_REF with zero bit offset.
  
! 2026-04-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	* cgraphunit.cc (process_symver_attribute): Fix comment typo,
! 	bintuils -> binutils.
  
! 2026-04-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124868
! 	* gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg):
! 	Do not diagnose returns in blocks not dominated by the PHI.
! 	(find_implicit_erroneous_behavior): Do two sweeps over PHIs,
! 	first for NULL dereferences and then for local address returns.
  
! 2026-04-14  Avinash Jayakar  <avinashd@linux.ibm.com>
  
! 	Revert:
! 	2026-04-07  Avinash Jayakar  <avinashd@linux.ibm.com>
! 		    Surya Kumari Jangala  <jskumari@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add
! 	logic to handle __builtin_ppc_atomic_cas_local.
! 	* config/rs6000/rs6000-builtins.def: New builtins for
! 	__builtin_ppc_atomic_cas_local with types.
! 	* config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin):
! 	Handle builtins with up to 6 arguments.
! 	* config/rs6000/rs6000-overload.def: Overload builtin for
! 	signed/unsiged char, short, int, long, __int128.
! 	* config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap):
! 	Add additional parameter 'local' to the prototype.
! 	* config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass
! 	new parameter to generate load-locked instruction.
! 	(rs6000_expand_atomic_compare_and_swap): Add new parameter. Call
! 	emit_load_locked() with additional parameter value of EH bit.
! 	(rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked().
! 	(rs6000_expand_atomic_op): Likewise.
! 	* config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL
! 	template. Specify EH bit in the larx instruction.
! 	(load_locked<QHI:mode>_si): Likewise.
! 	(load_lockedpti): Likewise.
! 	(load_lockedti): Add new operand in RTL template. Pass EH bit to
! 	gen_load_lockedpti().
! 	(atomic_compare_and_swap<mode>): Pass new parameter 'false' to
! 	rs6000_expand_atomic_compare_and_swap.
! 	(atomic_compare_and_swap_local<mode>): New define_expand.
  
! 2026-04-14  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124876
! 	* config/i386/i386.cc (ix86_zero_call_used_regs): Zero ZMM16-31
! 	if needed.
  
! 2026-04-13  Surya Kumari Jangala  <jskumari@linux.ibm.com>
  
! 	Revert:
! 	2025-06-30  Peter Bergner  <bergner@linux.ibm.com>
  
! 	PR target/109116
! 	* config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT.
! 	(vsx_disassemble_pair): Expand into a vector register sized subreg.
! 	(mma_disassemble_acc): Likewise.
! 	(*vsx_disassemble_pair): Delete.
! 	(*mma_disassemble_acc): Likewise.
  
! 2026-04-13  Josef Melcr  <josef.melcr@suse.com>
  
! 	PR ipa/124700
! 	* cgraph.cc (cgraph_node::is_clone_of): New method, determines
! 	whether a node is a descendant of another in the clone tree.
! 	* cgraph.h (struct cgraph_node): Add decl of is_clone_of.
! 	* cgraphbuild.cc (mark_address): Fix reference creation for
! 	cloned callback functions.
  
! 2026-04-13  Hu, Lin1  <lin1.hu@intel.com>
  
! 	PR target/124710
! 	* config/i386/sse.md (iptrps2qq): New mode attribute for
! 	ps2qq Intel syntax memory operand size override.
! 	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
! 	Use %<iptrps2qq>1 in Intel syntax to emit qword ptr for V2DI (128-bit)
! 	memory operands.
! 	(avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
! 	Use %q1 in Intel syntax to emit qword ptr for scalar double memory
! 	operands.
! 	(avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
! 	Use %k1 in Intel syntax to emit dword ptr for scalar single memory
! 	operands.
  
! 2026-04-11  Christopher Albert  <albert@tugraz.at>
  
! 	PR fortran/93554
! 	* omp-expand.cc (expand_oacc_for): Relax entry_bb and cont_bb
! 	assertions to allow intermediate blocks from finalization code.
! 	Remove exit_bb predecessor count assertion.
  
! 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/124827
! 	* gimple-ssa-warn-access.cc (xchg_models): Remove.
! 	(pass_waccess::check_atomic_builtin): Fix up sucs_arg for
! 	BUILT_IN_ATOMIC_EXCHAGE_* and use all_models instead of xchg_models.
! 	Handle BUILT_IN_TSAN_ATOMIC*.  Formatting fixes.
  
! 2026-04-10  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* configure: Regenerate.
  
! 2026-04-10  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Set
! 	__riscv_v_intrinsic to v1.0.
! 	* doc/extend.texi (RISC-V Vector Intrinsics): Document the
! 	ratified v1.0 RVV intrinsic specification and update the link.
  
! 2026-04-09  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/124773
! 	* doc/trouble.texi (Linkage in Anonymous Namespaces): New section.
  
! 2026-04-09  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/122483
! 	* config/aarch64/t-aarch64: Replace instances of TM_H with
! 	TARGET_H where appropriate, add missing dependency on TARGET_H
! 	for aarch64-early-ra.cc.
  
! 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* Makefile.in (AFDO_PROFILER): New variable.
! 	(PERF): Likewise.
! 	* config/aarch64/gcc-auto-profile: Detect and use ARM SPE events when
! 	invoking perf record.
! 	* configure: Regenerate.
! 	* configure.ac: Detect whether build has perf utility available and
! 	check for ARM SPE-based profiling support when building on AArch64.
  
! 2026-04-09  Richard Biener  <rguenther@suse.de>
  
! 	* coverage.cc (coverage_init): Do not call read_counts_file
! 	if flag_auto_profile.
  
! 2026-04-09  Christoph Müllner  <christoph.muellner@vrull.eu>
  
! 	PR target/124818
! 	* config/riscv/riscv.cc (synthesize_ior_xor): Do not treat
! 	TARGET_ZBKB as sufficient for single-bit immediate IOR/XOR.
  
! 2026-04-09  Tamar Christina  <tamar.christina@arm.com>
  
! 	* doc/params.texi: Replace param_vect_scalar_cost_multiplier with
! 	param_vect_allow_possibly_not_worthwhile_vectorizations
! 	* params.opt: Likewise.
! 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
! 	Likewise.
! 	* config/riscv/riscv.cc (riscv_override_options_internal): Likewise.
! 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters): Likewise.
! 	* tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise.
! 	(vect_slp_region): Likewise.
  
! 2026-04-09  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/105192
! 	* ifcvt.cc (find_if_header): Don't attempt to use ctrap expander
! 	after reload.
  
! 2026-04-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124810
! 	* cfgloopmanip.cc (fix_loop_placements): Do not stop
! 	iterating when an inner loop didn't get re-parented.
! 	Compute the outermost loop we have to consider re-parenting.
  
! 2026-04-08  Prathamesh Kulkarni  <prathameshk@nvidia.com>
  
! 	* auto-profile.cc (function_instance::merge): Set other->timestamp() if it's
! 	lesser than timestamp() and greater than zero or if timestamp() is zero.
  
! 2026-04-07  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124759
! 	PR target/124789
! 	* config/i386/i386.cc (ix86_need_alignment_p_2): New function.
! 	Exclude memory with SYMBOLIC_CONST.
! 	(ix86_need_alignment_p_1): Call ix86_need_alignment_p_2.
! 	(ix86_find_max_used_stack_alignment): Restore
! 	hard_stack_slot_access handling.
  
! 2026-04-07  H.J. Lu  <hjl.tools@gmail.com>
  
! 	* config/i386/i386.cc (ix86_need_alignment_p_1): Replace
! 	GET_MODE_ALIGNMENT with MEM_ALIGN.
  
! 2026-04-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124802
! 	* tree-vect-slp-patterns.cc (vect_match_expression_p): Fail
! 	for SLP_TREE_PERMUTE_P.
  
! 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR sanitizer/124170
! 	* doc/invoke.texi (Option Summary) <Linker Options>: Add
! 	-static-libhwasan and fix alphabetization of similar options.
! 	(Link Options): Likewise.
! 	* common.opt.urls: Regenerated.
  
! 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/124784
! 	* regenerate-opt-urls.py (canonicalize_option_name):  Remove one
! 	of the dashes from option names starting with two dashes.
! 	(test_parse_option_index): Add a self-test for this.
! 	* common.opt.urls: Regenerated.
! 	* config/picolibc.opt.urls: Regenerated.
  
! 2026-04-07  Peter Damianov  <peter0x44@disroot.org>
  
! 	* config/mingw/t-cygming: Remove obsolete STMP_FIXINC
! 	override.
  
! 2026-04-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124743
! 	* tree-vect-slp.cc (vect_schedule_slp_node): Schedule
! 	loop invariant operations in the loop preheader.
  
! 2026-04-07  Avinash Jayakar  <avinashd@linux.ibm.com>
! 	    Surya Kumari Jangala  <jskumari@linux.ibm.com>
  
! 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add
! 	logic to handle __builtin_ppc_atomic_cas_local.
! 	* config/rs6000/rs6000-builtins.def: New builtins for
! 	__builtin_ppc_atomic_cas_local with types.
! 	* config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin):
! 	Handle builtins with up to 6 arguments.
! 	* config/rs6000/rs6000-overload.def: Overload builtin for
! 	signed/unsiged char, short, int, long, __int128.
! 	* config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap):
! 	Add additional parameter 'local' to the prototype.
! 	* config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass
! 	new parameter to generate load-locked instruction.
! 	(rs6000_expand_atomic_compare_and_swap): Add new parameter. Call
! 	emit_load_locked() with additional parameter value of EH bit.
! 	(rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked().
! 	(rs6000_expand_atomic_op): Likewise.
! 	* config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL
! 	template. Specify EH bit in the larx instruction.
! 	(load_locked<QHI:mode>_si): Likewise.
! 	(load_lockedpti): Likewise.
! 	(load_lockedti): Add new operand in RTL template. Pass EH bit to
! 	gen_load_lockedpti().
! 	(atomic_compare_and_swap<mode>): Pass new parameter 'false' to
! 	rs6000_expand_atomic_compare_and_swap.
! 	(atomic_compare_and_swap_local<mode>): New define_expand.
  
! 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
  
! 	PR libstdc++/124268
! 	* doc/invoke.texi: Note that -Wexpose-global-module-tu-local
! 	also applies to 'export using' declarations.
  
! 2026-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* doc/install.texi (Specific, amd64-*-solaris2*, i?86-*-solaris2*)
! 	(sparc-sun-solaris2*, sparc64-*-solaris2*, sparcv9-*-solaris2*)
! 	(x86_64-*-solaris2*): Remove.  Fold into ...
! 	(Specific, *-*-solaris2*): ... this.
! 	Rewrite.
  
! 2026-04-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/invoke.texi (Picolibc Options): Copy-edit for markup, use
! 	of proper names, etc.
  
! 2026-04-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/invoke.texi (GCC Command Options): Move Picolibc Options
! 	section to Target-Specific Options.
! 	(Option Summary): Likewise.
  
! 2026-04-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Common Attributes): Fix cross-reference for
! 	renamed "Submodel Options" -> "Target-Specific Options".
! 	* doc/invoke.texi (Invoking GCC): Likewise for the menu.
! 	(Option Summary): Likewise for the use here.
! 	(Submodel Options): Rename to Target-Specific Options.  Leave
! 	an anchor with the old name.  Add better index entries.  Rewrite
! 	introductory text.
! 	(Precompiled Headers): Fix another cross-reference.
  
! 2026-04-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/107337
! 	* doc/invoke.texi (x86 Options): Add CX16 feature to nocona,
! 	alderlake, arrowlake, arrowlake-s, pantherlake, novalake,
! 	bonnell, sierraforest, grandridge, clearwaterforest, and amdfam10
! 	family processors.
  
! 2026-04-04  Richard Biener  <rguenther@suse.de>
  
! 	* doc/gccint.texi: Add named pattern index with @mdindex.
! 	* doc/md.texi (Standard Pattern Names For Generation): Split
! 	table into two using subsections, splitting out vectorizer
! 	related standard patterns.  Use @mdindex for all standard
! 	pattern names.
  
! 2026-04-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (xtensa_legitimize_address):
! 	Add code to legitimize the displacement of 64 kilobytes before and
! 	after using two ADDMI instructions.
  
! 2026-04-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (negsf2):
! 	Change define_insn to define_insn_and_split, and replace the
! 	corresponding output template with the split pattern.
  
! 2026-04-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P):
! 	Remove.
  
! 2026-04-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (smalloffset_mem_p):
! 	Rename it to smalloffset_address_p and remove the result check
! 	of MEM_P().
! 	(constantpool_address_p): Change from static scope to global.
! 	* config/xtensa/xtensa-protos.h (smalloffset_mem_p):
! 	Rename it to smalloffset_address_p.
! 	(constantpool_address_p): New function prototype.
! 	* config/xtensa/constraints.md (R):
! 	Change the call in (match_test "...") from smalloffset_mem_p()
! 	to smalloffset_address_p().
! 	(T, U): Change the call in (match_test "...") from
! 	constantpool_mem_p() to constantpool_address_p().
  
! 2026-04-03  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/123234
! 	* doc/extend.texi (Decimal Float): Clarify that GCC really does
! 	support only the older N1312 draft as documented here, not the
! 	standard C23 functionality yet.
  
! 2026-04-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124754
! 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_strcpy): Make
! 	sure both get_stridx calls are done before first get_strinfo call.
! 	(strlen_pass::handle_builtin_memcpy): Likewise.
! 	(strlen_pass::handle_builtin_strcat): Likewise.
  
! 2026-04-03  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR debug/94491
! 	* doc/invoke.texi (Debugging Options): Explicitly document what
! 	-g2 does instead of just saying it's the default.
  
! 2026-04-03  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/94182
! 	* doc/implement-c.texi (Characters implementation): Add
! 	cross-reference to more detailed discussion about signedness.
! 	* doc/invoke.texi (C Dialect Options): Combine -fsigned-char
! 	and -funsigned-char table entries since the following discussion
! 	applies to both.  Add an anchor so other things can point at it.
! 	(Warning Options): Add cross-references to the above two places.
! 	Clarify that the warning is given regardless of whether char is
! 	signed or unsigned.
  
! 2026-04-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/124746
! 	* tree-ssa-phiprop.cc (propagate_with_phi): Treat
! 	and aggregate copy as it is a trapping load.
  
! 2026-04-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* tree-ssa-phiprop.cc (propagate_with_phi): Move the
! 	check for load from ptr before the checks of domination.
  
! 2026-04-02  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-protos.h
! 	(loongarch_parse_fmv_features): Modify parameter type.
! 	* config/loongarch/loongarch-target-attr.cc
! 	(loongarch_parse_fmv_features): Some errors have been
! 	changed to warnings.
! 	* config/loongarch/loongarch.cc
! 	(loongarch_process_target_version_attr): Update parameters.
! 	(loongarch_check_target_clone_version): Likewise.
! 	(loongarch_option_same_function_versions): Likewise.
! 	(TARGET_CHECK_TARGET_CLONE_VERSION): Define.
  
! 2026-04-01  Tamar Christina  <tamar.christina@arm.com>
! 	    Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/123238
! 	* config/aarch64/aarch64.cc (aarch64_rtx_costs) <case NE/EQ>:
! 	Provide improved costs for scalar and vector comparisons.
  
! 2026-04-01  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/123238
! 	* expr.cc (convert_tree_comp_to_rtx): Make global.
! 	* expr.h (convert_tree_comp_to_rtx): Prototype here.
! 	* internal-fn.cc (expand_vec_cond_mask_optab_fn): Use rtx_costs
! 	to determine whether swapping operands would result in better
! 	code.
! 	* config/i386/i386-expand.cc (ix86_expand_int_vec_cmp): On
! 	AVX512 targets use a ternlog instead of a comparison to negate
! 	the mask (requires one instruction instead of two).
! 	* config/i386/i386.cc (ix86_rtx_costs): Refactor code for UNSPEC.
! 	Provide costs for UNSPEC_BLENDV and  UNSPEC_MOVMSK.  Provide
! 	costs for comparison operators of integer vector modes.
  
! 2026-04-01  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/124696
! 	* lra-constraints.cc (simplify_operand_subreg): Reload
! 	paradoxical subreg only if it requires more than one hard reg.
  
! 2026-04-01  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.cc (print_operand): Use fputs instead of
! 	fprintf.
  
! 2026-04-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR preprocessor/70917
! 	* doc/invoke.texi (Environment Variables): Clarify that LC_ALL,
! 	LC_CTYPE, LC_MESSAGES, and LANG affect only diagnostics and
! 	informational output from GCC, not the encodings of input and
! 	output files.	Remove separate bit-rotten entry for LANG.
  
! 2026-04-01  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/124742
! 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Exit
! 	if the vdef on the stmt is NULL.
  
! 2026-04-01  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR middle-end/124697
! 	* function.cc (assign_parm_adjust_stack_rtl): Force a local copy
! 	if the current alignment is less than the minimum of
! 	BIGGEST_ALIGNMENT and MAX_SUPPORTED_STACK_ALIGNMENT.
  
! 2026-04-01  Richard Biener  <rguenther@suse.de>
! 	    Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR middle-end/124634
! 	* doc/ifn.texi: New file.
! 	* doc/gccint.texi: Include ifn.texi.
! 	* Makefile.in (TEXI_GCCINT_FILES): Add ifn.texi.
  
! 2026-04-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/61896
! 	* doc/cppopts.texi (-finput-charset=): Remove long-obsolete
! 	locale discussion.  Document behavior about ill-formed inputs.
  
! 2026-04-01  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/poly-int.texi: Add copyright notice.
! 	* doc/specs.texi: Likewise.
  
! 2026-03-31  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* tree-ssa-dse.cc (compute_trims): Bail out if ref->size is not
! 	byte aligned either.
  
! 2026-03-31  Mikael Morin  <mikael@gcc.gnu.org>
! 	    Christopher Albert  <albert@tugraz.at>
  
! 	PR fortran/121185
! 	PR fortran/124661
! 	* tree-inline.cc (debug_find_tree, debug_find_tree_1): Move
! 	and rename functions...
! 	* tree.cc (find_tree, find_tree_1): ... here.
! 	* tree-inline.h (debug_find_tree): Move renamed declaration...
! 	* tree.h (find_tree): ... here.
  
! 2026-03-31  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124165
! 	PR target/124684
! 	* config/i386/i386.cc (ix86_symbolic_const_load_p_1): Renamed to
! 	...
! 	(ix86_need_alignment_p_1): This.
! 	(ix86_symbolic_const_load_p): Renamed to ...
! 	(ix86_need_alignment_p): This.
! 	(ix86_find_max_used_stack_alignment): Call ix86_access_stack_p
! 	only if the INSN needs alignment > stack alignment.
  
! 2026-03-31  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
  
! 2026-03-31  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
  
! 	* config/aarch64/aarch64-option-extensions.def (poe2):
! 	New CLI extension option.
! 	(tev): Likewise.
! 	(tlbid): Likewise.
! 	(gcie): Likewise.
! 	(mpamv2): Likewise.
! 	(lscp): Likewise.
! 	(mops-go): Likewise.
! 	(sve2p3): Likewise.
! 	(sme2p3): Likewise.
! 	(f16f32dot): Likewise.
! 	(sve-b16mm): Likewise.
! 	(mtetc): Likewise.
! 	(f16f32mm): Likewise.
! 	(f16mm): Likewise.
! 	* doc/invoke.texi (poe2): Document option.
! 	(tev): Likewise.
! 	(tlbid): Likewise.
! 	(gcie): Likewise.
! 	(mpamv2): Likewise.
! 	(lscp): Likewise.
! 	(mops-go): Likewise.
! 	(sve2p3): Likewise.
! 	(sme2p3): Likewise.
! 	(f16f32dot): Likewise.
! 	(sve-b16mm): Likewise.
! 	(mtetc): Likewise.
! 	(f16f32mm): Likewise.
! 	(f16mm): Likewise.
  
! 2026-03-31  Wu Haotian  <rigoligo03@gmail.com>
  
! 	* config.gcc: removed linux.h and t-linux for loongarch*-*-elf* targets
  
! 2026-03-30  H.J. Lu  <hjl.tools@gmail.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR target/120839
! 	PR middle-end/124671
! 	* function.cc (assign_parm_adjust_stack_rtl): Get the parameter
! 	as argument.  Adjust alignment check forcing a local copy.
! 	(assign_parms): Adjust.
! 	* config/i386/i386.cc (ix86_argument_passed_on_stack_p): New.
! 	(ix86_update_stack_alignment): Ignore argument passed on stack.
  
! 2026-03-30  Vineet Gupta  <vineet.gupta@linux.dev>
  
! 	* config/bpf/bpf.md (zero_extendhidi2): Add alternates for
! 	alu32 and use 'W' for reg operands.
! 	(zero_extendqidi2): Ditto.
  
! 2026-03-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124692
! 	* tree-cfg.cc (replace_uses_by): Call update_stmt after
! 	substitution and before folding.
  
! 2026-03-30  Saurabh Jha  <saurabh.jha@arm.com>
! 	    Evgeny Karpov  <evgeny.karpov@arm.com>
  
  	* config/aarch64/aarch64.cc
! 	(aarch64_scalar_mode_supported_p): Only return true on TFmode if
! 	TARGET_LONG_DOUBLE_128 is set.
  
! 2026-03-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/88576
! 	* tree-ssa-alias.cc (check_fnspec): Remove flag_errno_math check.
! 	* ipa-modref.cc (modref_access_analysis::process_fnspec):
  	Likewise.
  
! 2026-03-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124677
! 	* tree-vect-loop.cc (vectorizable_recurr): Skip vector
! 	stmts for the def.
  
! 2026-03-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
  
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple M5
! 	cores.
  	* config/aarch64/aarch64-tune.md: Regenerate.
! 	* doc/invoke.texi: Add apple-m5 core to the ones listed
  	for arch and tune selections.
  
! 2026-03-30  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR target/102309
! 	* config/arm/arm.cc (arm_constant_limit): Allways allow at least
! 	one insn when loading a constant.
  
! 2026-03-29  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/124674
! 	* config/riscv/riscv-modes.def: Create OImode.
  
! 2026-03-27  Vineet Gupta  <vineet.gupta@linux.dev>
  
! 	PR target/124670
! 	* config/bpf/bpf.md (zero_extendsidi2): Use 'W' in asm template.
  
! 2026-03-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/124649
! 	* regcprop.cc (maybe_mode_change): Return early
! 	for unordered modes.
  
! 2026-03-27  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/124613
! 	* config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
! 	Add riscv_registering_builtins.
! 	(rvv_switcher::~rvv_switcher): Set riscv_registering_builtins to
! 	false.
! 	* config/riscv/riscv.cc (riscv_vector_mode_supported_p): Use
! 	riscv_registering_builtins.
! 	* config/riscv/riscv.h: Declare.
  
! 2026-03-27  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/124644
! 	* dwarf2out.cc (dwarf2out_abstract_function): Only
! 	add DW_AT_artificial if the decl isn't DECL_ARTIFICIAL.
  
! 2026-03-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	* Makefile.in: (PLUGIN_HEADERS): Add $(srcdir)/topics/*.h.
! 	(install-plugin): Preserve directory structure for topics
! 	headers.
  
! 2026-03-25  Richard Biener  <rguenther@suse.de>
  
! 	PR gcov-profile/121074
! 	* coverage.h (coverage_init_file): Declare.
! 	(coverage_finish_file): Likewise.
! 	* coverage.cc (coverage_init_file): New function, split
! 	out actual file opening and writing from ...
! 	(coverage_init): ... here.
! 	(coverage_finish_file): Likewise for file closing, from ...
! 	(coverage_finish): ... here.
! 	* tree-profile.cc (tree_profiling): Call coverage_init_file
! 	and coverage_finish_file here.
  
! 2026-03-25  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124627
! 	* tree-inline.cc (copy_debug_stmts): Only copy debug
! 	stmts that are still in the IL.
  
! 2026-03-25  Alexandre Oliva  <oliva@adacore.com>
  
! 	* gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Map
! 	OPT_Wuse_after_free like OPT_Wuse_after_free_.
  
! 2026-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/i386/i386.cc (ix86_in_large_data_p): Check for .lbss etc.
! 	(x86_64_elf_section_type_flags): Clear SECTION_NOTYPE for .lbss etc.
! 	* config/i386/x86-64.h (MACH_DEP_SECTION_ASM_FLAG): Define.
! 	* config/i386/sol2.h [HAVE_SOLARIS_AS]
! 	(MACH_DEP_SECTION_ASM_FLAG): Redefine as 'h'.
  
! 2026-03-25  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* cgraph.cc (cgraph_edge::get_next_speculative_id): Use
! 	next_speculative_call_target in get_next_speculative_id.
  
! 2026-03-24  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/124572
! 	* lra-eliminations.cc (lra_eliminate): Push new reload insns for
! 	eliminations in insns.
  
! 2026-03-24  Christopher Bazley  <chris.bazley@arm.com>
  
! 	* doc/rtl.texi: Fix example of the SSA form.
  
! 2026-03-24  Alfie Richards  <alfie.richards@arm.com>
  
! 	* tree-vect-stmts.cc (vectorizable_load): Swap order of failure
! 	message checks.
  
! 2026-03-23  Stefan Weigl-Bosker  <stefan@s00.xyz>
  
! 	* omp-general.h: Fix typos.
  
! 2026-03-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124599
! 	* tree-ssa-pre.cc (compute_avail): Make the VUSE in the
! 	PRE reference expression part of the value again.
! 	(phi_translate_1): Likewise.
  
! 2026-03-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR bootstrap/124547
! 	* configure.ac: After config.gcc inclusion use or set only gas instead
! 	of gas_flag and gnu_ld instead of gnu_ld_flag.
! 	* config.gcc: Document possibility of gas_flag or gnu_ld_flag being
! 	empty.
! 	* acinclude.m4 (gcc_GAS_FLAGS): Use gas instead of gas_flag.
! 	(gcc_AC_INITFINI_ARRAY): Likewise.  Use gnu_ld instead of gnu_ld_flag.
  	* configure: Regenerate.
  
! 2026-03-22  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/124597
! 	* config/i386/i386-builtins.cc (ix86_init_builtins_va_builtins_abi):
! 	Also add nothrow and leaf attributes to the va builtins.
  
! 2026-03-22  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/124597
! 	* gimple-fold.cc (gimple_fold_builtin_stdarg): Correct the
! 	eh_update argument to gsi_replace for the VA_END case.
  
! 2026-03-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/123852
! 	* config/sh/sh.md (movsicc_t_false): Add the SImode
! 	on the if_then_else.
! 	(movsicc_t_true): Likewise.
! 	(negsi_cond): Likewise.
! 	(negdi_cond): Add the DImode on the if_then_else.
! 	(bst_m2a): Add the QImode on the if_then_else.
  
! 2026-03-20  Tobias Burnus  <tburnus@baylibre.com>
! 	    Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/122866
! 	* gimplify.cc (omp_instantiate_mapper): Give a sorry if there are
! 	iterators.
  
! 2026-03-20  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 	    Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* gimplify.cc (gimplify_omp_workshare): Handle iterators in
! 	"target data".
  
! 2026-03-20  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config/aarch64/tuning_models/olympus.h (olympus_tunings): Set
! 	loop_align to 64:16.
  
! 2026-03-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (gen_int_relational):
! 	Specify the table array "info" and the pointer to its elements
! 	as const.
  
! 2026-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124565
! 	* config/i386/i386.cc (ix86_build_builtin_va_list_64): Set TREE_PUBLIC
! 	on type_decl.
  
! 2026-03-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124566
! 	* config/sh/sh.cc (sh_build_builtin_va_list): Set TREE_PUBLIC
! 	on type_decl.
  
! 2026-03-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124578
! 	* tree-ssa-sccvn.cc (vn_reference_eq): Consistently check
! 	fields from vro2.
  
! 2026-03-20  Yangyu Chen  <cyy@cyyself.name>
  
! 	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
! 	Check DECL_VIRTUAL_P for virtual functions for LTO handling.
! 	* config/i386/i386-features.cc (ix86_generate_version_dispatcher_body):
! 	Ditto.
! 	* config/riscv/riscv.cc (riscv_generate_version_dispatcher_body): Ditto.
! 	* config/rs6000/rs6000.cc (rs6000_generate_version_dispatcher_body):
  	Ditto.
  	* config/loongarch/loongarch.cc
! 	(loongarch_generate_version_dispatcher_body): Ditto.
  
! 2026-03-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124565
! 	* config/alpha/alpha.cc (alpha_build_builtin_va_list): Set TREE_PUBLIC
! 	on type_decl.
  
! 2026-03-19  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* common.opt.urls: Added missing entry.
  
! 2026-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/124041
! 	PR rtl-optimization/124439
! 	* lra-constraints.cc (process_alt_operands): Check hard reg subreg
! 	mode by hard_regno_mode_ok.
! 	(curr_insn_transform): Always subsitute equivalence for hard reg
! 	subreg.
  
! 2026-03-18  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124555
! 	* match.pd ((A - B) >=/> 0 ? (A - B) : (B - A) -> abs (A - B)):
! 	Guard the vector case with target_supports_op_p checks.
! 	((A - B) <=/< 0 ? (A - B) : (B - A) -> -abs (A - B)): Likewise.
! 	((type)A >=/> 0 ? A : -A -> abs (A)): Likewise.
! 	((type)A <=/< 0 ? A : -A -> -abs (A)): Likewise.
  
! 2026-03-18  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* Makefile.in (all.fda): Add `--print-autofdo-gcov-version` to
! 	profile_merger invocation.
! 	* auto-profile.cc (AUTO_PROFILE_VERSION): Move from here ...
! 	* auto-profile.h (AUTO_PROFILE_VERSION): ... to here.
! 	* common.opt: Add -print-autofdo-gcov-version and
! 	--print-autofdo-gcov-version.
! 	* doc/invoke.texi: Document the options.
! 	* gcc.cc: Add include for auto-profile.h.
! 	(driver_handle_option): Add OPT_print_autofdo_gcov_version.
! 	(driver::maybe_print_and_exit): Handle the option.
  
! 2026-03-18  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/124552
! 	* function.cc (free_after_compilation): Free the copyid
! 	allocator.
  
! 2026-03-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR bootstrap/124547
! 	* configure.ac (--with-gnu-ld): Set gnu_ld_flag= instead of
! 	gnu_ld_flag=no if not explicitly specified.
! 	(--with-gnu-as): Similarly for gas_flag.
! 	(DEFAULT_ASSEMBLER): Use wording without GNU as whenever gas_flag
! 	is not yes rather than when it is no.
  	* configure: Regenerate.
  
! 2026-03-18  Richard Biener  <rguenther@suse.de>
  
! 	* common.opt (fpost-ipa-mem-report): Fix typo.
  
! 2026-03-18  Richard Biener  <rguenther@suse.de>
  
! 	* ipa-cp.cc (gather_edges_for_value): Return an auto_vec.
! 	(decide_about_value): Simplify, fixing leak of callers.
  
! 2026-03-18  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	PR target/123749
! 	* ipa-locality-cloning.cc (partition_callchain): Start new partition
! 	if no. of insns exceeds size and if there are nodes to process.
  
! 2026-03-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* config/sparc/t-rtems: Add leon5 multilibs.
  
! 2026-03-17  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-sve2.md (@aarch64_pred_revd<mode>):
! 	Remove movprfx alternative.
! 	(@cond_revd<mode>): Likewise.
  
! 2026-03-17  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	PR rtl-optimization/124476
! 	* avoid-store-forwarding.cc
! 	(store_forwarding_analyzer::process_store_forwarding): Replace
! 	bitmap_all_bits_in_range_p with bitmap_any_bit_in_range_p and
! 	return false on partial overlap.  Remove redundant-store vectors
! 	and their associated removal, dump, and deletion logic.
  
! 2026-03-17  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-slp.cc (vect_analyze_slp): Release BST map when
! 	returning.
  
! 2026-03-17  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info):
! 	Initialize loop_iv_cond given it's no longer always
! 	initialized ...
! 	(vect_create_loop_vinfo): ... here.  Fix formatting.
  
! 2026-03-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/122380
! 	* tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
! 	(vn_reference_compute_hash): Likewise.
! 	(vn_reference_eq): Add parameter indicating lexical equivalence,
! 	defaulted to false.
! 	* tree-ssa-sccvn.cc (vn_reference_eq): Likewise.
! 	(print_vn_reference_ops): Print alias type and alignment.
! 	(vn_reference_compute_hash): Export.
! 	(copy_reference_ops_from_ref): Likewise.
! 	* tree-ssa-pre.cc (pre_expr_d::equal): Use lexical equivalence.
! 	(get_or_alloc_expr_for_reference): Also get value-id, upon
! 	zero assign a new value-id if the expression is unknown.
! 	(expr_cmp): New helper.
! 	(prefer): Likewise.
! 	(pre_expr_DFS): Get expression exclusion bitmap and honor it.
! 	(sorted_array_from_bitmap_set): If done for insertion, do limited
! 	canonexpr() via pairwise prefer on expression pairs with the same
! 	value, populating an exclution bitmap.
! 	(phi_translate_1): Do not use the VN hashtable expressions
! 	or insert there.  Instead maintain a PRE view of expressions.
! 	(clean): Adjust.
! 	(do_hoist_insertion): Likewise.
! 	(insert): Likewise.
! 	(compute_avail): Use gimple_could_trap_p_1
! 	on the original stmt rather than vn_reference_may_trap on
! 	the VN leader.  Use the original stmt operands for the PRE
! 	view of reference expressions, only use the value number from the VN
! 	tables.  Remove no longer effective workarounds for semantically
! 	different references with same value.
! 	(fini_pre): Release operand vectors for PRE IL reference
! 	expressions.
  
! 2026-03-17  Yangyu Chen  <cyy@cyyself.name>
  
! 	* config/i386/i386-features.cc (make_resolver_func): Use
! 	symtab->change_decl_assembler_name instead of
! 	SET_DECL_ASSEMBLER_NAME to properly update the symbol table.
  
! 2026-03-16  Jose E. Marchesi  <jemarch@gnu.org>
  
! 	* doc/install.texi (Configuration): Fix copy pasto
! 	--enable-objc-gc to --enable-algol68-gc.
  
! 2026-03-16  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124528
! 	* tree-scalar-evolution.cc (scev_dfs::add_to_evolution):
! 	Perform the negation in an unsigned type if we cannot make
! 	sure it will not cause UB.
  
! 2026-03-16  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* doc/invoke.texi: Add experimental warning for RISC-V
! 	big-endian support.
  
! 2026-03-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc
! 	(constantsynth_method_lshr_mi12b): New.
! 	(constantsynth_methods): Add constantsynth_method_lshr_mi12b.
  
! 2026-03-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/124508
! 	* config/loongarch/genopts/gen-evolution.awk: Rename copyright_header
! 	routine so that update-copyright.py isn't upset about it.
  
! 2026-03-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/124454
! 	* regcprop.cc (pass_cprop_hardreg::execute): If something
! 	changed and non-call exceptions is on, call purge_all_dead_edges
! 	and cleanup_cfg.
  
! 2026-03-13  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/117182
! 	* lra-constraints.cc (curr_insn_transform): Don't change an output
! 	operand by constant or invariant equivalence.
  
! 2026-03-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	* config/arm/arm.cc (TARGET_C_BITINT_TYPE_INFO): New Macro.
! 	(arm_return_in_memory): Return true for any _BitInt(N) where N > 64.
! 	(arm_needs_doubleword_align): Return true for any _BitInt(N) where N > 32.
! 	(arm_bitint_type_info): New.
! 	* config/arm/arm-protos.h (arm_bitint_type_info): New declaration.
  
! 2026-03-13  Saurabh Jha  <saurabh.jha@arm.com>
  
! 	PR target/122953
! 	* config/aarch64/aarch64-c.cc
! 	(TARGET_AARCH64_MS_ABI): Explicitly set it to 0 if not on mingw.
! 	(aarch64_define_unconditional_macros): Remove __ARM_PCS_AAPCS64
! 	from here.
! 	(aarch64_update_cpp_builtins): Define __ARM_PCS_AAPCS64 if not
! 	on Windows ABI.
! 	---
! 	Hey,
! 	Regression tested on aarch64-linux-gnu and found no regressions.
! 	Built for arch64-w64-mingw32, ran target dependent tests, and
! 	found no regressions.
! 	Ok for master?
! 	Thanks,
! 	Saurabh
  
! 2026-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	* tree-profile.cc (struct conds_ctx): Formatting fixes.
! 	Rename B1, B2, G1, G2 and G3 members to b1, b2, g1, g2 and g3.
! 	Adjust all uses.
! 	(topological_cmp, topological_src_cmp, index_of, single_p,
! 	single_edge, contract_edge_up): Formatting fixes.
! 	(struct outcomes): Likewise.
! 	(conditional_succs, condition_index, condition_uid,
! 	masking_vectors, emit_assign, emit_bitwise_op): Likewise.
! 	(make_top_index_visit, make_top_index): Likewise.  Rename
! 	L argument to l.
! 	(paths_between): Formatting fixes.
! 	(struct condcov): Likewise.
! 	(cov_length, cov_blocks, cov_masks, cov_maps, cov_free): Likewise.
! 	(find_conditions): Likewise.  Don't start warning_at message with
! 	uppercase letter.
! 	(struct counters): Formatting fixes.
! 	(find_counters, resolve_counter, resolve_counters,
! 	instrument_decisions): Likewise.
! 	(init_ic_make_global_vars): Comment formatting fixes.
! 	(gimple_init_gcov_profiler): Formatting fixes.
  
! 2026-03-13  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR ipa/124462
! 	* tree-profile.cc (masking_vectors): Skip blocks with less than
! 	2 non-complex incoming edges.
  
! 2026-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (constantsynth_pass1):
! 	Change the comparison between src and SET_SRC(pat) to be performed
! 	using rtx_equal_p rather than between references (pointer values)
! 	directly, and adjust the destination of changes in validate_change
! 	to eliminate the need to call gen_rtx_SET.
! 	(constantsynth_pass2):
! 	Fill in missing spacing in one place and changes dump file output
! 	slightly.
  
! 2026-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (xtensa_split_operand_pair)
! 	Move the common code from the split part of movd[if]_internal
! 	MD patterns into this function, since this function is only
! 	called from the split part of that patterns.
! 	Also, during non-debug optimization, re-register new literal
! 	pool entries with the split values themselves instead of
! 	splitting the memory reference of the source numeric constant
! 	placed in the pool.
! 	(split_DI_SF_DF_const):
! 	Rename to convert_SF_const and remove the split function of
! 	D[IF]mode constant assignment.
! 	(do_largeconst2):
! 	Change the call from split_DI_SF_DF_const to convert_SF_const.
! 	* config/xtensa/xtensa.md (movdi_internal, movdf_internal):
! 	Reduce their split parts to just a call to xtensa_split_operand_pair.
  
! 2026-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (FPreg_neg_scaled_simm12b_1):
! 	Change the test to determine whether REAL_VALUE_TYPE is a non-
! 	zero finite value to whether it is normal.
! 	(FPreg_neg_scaled_simm12b):
! 	Place the call to FPreg_neg_scaled_simm12b_1 last in the
! 	expression to improve performance, and change the dump file
! 	output slightly.
  
! 2026-03-13  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa-passes.def (pass_xtensa_largeconst):
! 	Rename to pass_xtensa_largeconst1.
! 	(pass_xtensa_largeconst2): New target-specific pass.
! 	* config/xtensa/xtensa-protos.h (make_pass_xtensa_largeconst):
! 	Rename to make_pass_xtensa_largeconst1.
! 	(make_pass_xtensa_largeconst2): New function prototype.
! 	* config/xtensa/xtensa.cc (litpool_set_src_1):
! 	Change to process large numeric constant assignments to DImode
! 	as well as [SH]Imode.
! 	(do_largeconst):
! 	Rename it to do_largeconst1 and leave only the mandatory insn
! 	transformation process.
! 	(do_largeconst2): New function that inherits the optional insn
! 	transformation processes from the old do_largeconst.
! 	(rest_of_handle_largeconst):
! 	Rename to rest_of_handle_largeconst1 and change to call
! 	do_largeconst1.
! 	(rest_of_handle_largeconst2): New function that calls
! 	do_largeconst2.
! 	(pass_data_xtensa_largeconst)
! 	Rename to pass_data_xtensa_largeconst1.
! 	(pass_xtensa_largeconst):
! 	Rename to pass_xtensa_largeconst1 and change to call
! 	rest_of_handle_largeconst1.
! 	(pass_data_xtensa_largeconst2): New opt_pass data.
! 	(pass_xtensa_largeconst2):
! 	New rtl_opt_pass that runs rest_of_handle_largeconst2 when non-
! 	debug optimizations are enabled.
! 	(make_pass_xtensa_largeconst):
! 	Rename to make_pass_xtensa_largeconst1.
! 	(make_pass_xtensa_largeconst2): New function definition.
  
! 2026-03-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124461
! 	* config/i386/i386.md (movrs<mode>): Use <imodesuffix> only for
! 	-masm=att, not for -masm=intel.
  
! 2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/123822
! 	* simplify-rtx.cc (simplify_context::simplify_subreg): Check the
! 	mode of the part to be non-VOIDmode before calling gen_rtx_SUBREG.
  
! 2026-03-12  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/124452
! 	* lra-constraints.cc (curr_insn_transform): Move return on the
! 	postponed insn before any reload generation.
  
! 2026-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	Revert:
! 	2026-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into
! 	AC_ARG_WITH(gnu-ld).
! 	(gcc_cv_ld): Set before gnu_ld_flag.
! 	(gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld).
! 	(gcc_cv_as): Set before gas_flag.
! 	* configure: Regenerate.
  
! 2026-03-12  Martin Jambor  <mjambor@suse.cz>
  
! 	PR objc/124260
! 	* ipa-prop.cc (ipa_analyze_var_static_initializer): Skip a constructor
! 	entry if its index is NULL.
  
! 2026-03-12  Richard Biener  <rguenther@suse.de>
  
! 	PR bootstrap/124406
! 	* ipa-pure-const.cc (skip_function_for_local_pure_const):
! 	Do not analyze interposable functions when LTO is enabled.
  
! 2026-03-12  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/122925
! 	PR target/119979
! 	* config/sh/sh.cc (TARGET_PROMOTE_PROTOTYPES): Removed.
  
! 2026-03-12  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* fold-mem-offsets.cc (do_analysis): Revise comment.
  
! 2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR middle-end/120030
! 	* symtab.cc (symtab_node::set_init_priority): Better
! 	handle the case of setting the priority back to default.
! 	(cgraph_node::set_fini_priority): Likewise.
  
! 2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* doc/extend.texi (constructor/destructor): Add documentation
! 	about multiple attributes here.
  
! 2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* doc/extend.texi (constructor/destructor): Document
! 	the priority when none is supplied.
  
! 2026-03-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/124409
! 	* doc/install.texi: Increment the required binutils for
! 	riscv to 2.40.
  
! 2026-03-12  Marek Polacek  <polacek@redhat.com>
  
! 	PR c++/124397
! 	* diagnostic.h (emitting_diagnostic_p): New.
! 	* diagnostics/context.h (context::emitting_diagnostic_p): New.
  
! 2026-03-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124436
! 	* genautomata.cc (output_dfa_insn_code_func): Use
! 	MIN (INT_MAX, 2U * uid) instead of 2 * uid in dfa_insn_code_enlarge.
  
! 2026-03-11  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124407
! 	* config/i386/i386-features.cc (ix86_place_single_vector_set):
! 	Handle non-int load with integer constant.
! 	(ix86_broadcast_inner): Convert const0_rtx to non-int mode.
  
! 2026-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
  
! 	PR middle-end/124435
! 	* expr.cc (store_field_updates_msb_p): Use GET_MODE_BITSIZE
! 	instead of GET_MODE_SIZE.  Handle the two endiannesses separately.
  
! 2026-03-11  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
  	Revert:
! 	2026-02-27  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR tree-optimization/90036
! 	* tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always
! 	record the new hash table entry.
  
! 2026-03-11  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
  	Revert:
! 	2026-02-28  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR tree-optimization/90036
! 	* tree-ssa-dom.cc (back_propagate_equivalences): Accept new
! 	argument for available expression stack.  Lookup equivalences
! 	in the expression hash table too.  If an expression hash a
! 	known constant value, record it and recurse.
! 	(record_temporary_equivalences): Back propagate for a subset of
! 	edge equivalences.
  
! 2026-03-11  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/123271
! 	* config/arm/arm.md (subvsi3_intmin): Renamed to ...
! 	(sub_cmpVsi3_intmin): ... this.
! 	(subvsi3): Renamed to ...
! 	(sub_cmpVsi3): ... this.
! 	(subvsi3_imm1): Renamed to ...
! 	(sub_cmpVsi3_imm1): ... this.
! 	(usubvsi3_borrow): Renamed to ...
! 	(usub_cmpVsi3_borrow): ... this.
! 	(usubvsi3_borrow_imm): Renamed to ...
! 	(usub_cmpVsi3_borrow_imm): ... this.
! 	(subvsi3_borrow): Renamed to ...
! 	(sub_cmpVsi3_borrow): ... this.
! 	(subvsi3_borrow_imm): Renamed to ...
! 	(sub_cmpVsi3_borrow_imm): ... this.
  
! 2026-03-11  Arsen Arsenović  <aarsenovic@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_addr_space_convert): Use
! 	SHARED_BASE_REG to find flat address space base of LDS.
  
! 2026-03-11  Arsen Arsenović  <aarsenovic@baylibre.com>
  
! 	PR target/124044
! 	* config/gcn/gcn.cc (gcn_addr_space_resolve_default): New
! 	function.  Converts from ADDR_SPACE_DEFAULT to
! 	DEFAULT_ADDR_SPACE.
! 	(gcn_addr_space_convert): Resolve from_type and to_type address
! 	spaces.
  
! 2026-03-11  Arsen Arsenović  <aarsenovic@baylibre.com>
  
! 	* config/gcn/gcn.cc (gcn_regno_reg_class): Handle
! 	MEMORY_APERTURE_REGS.
! 	(gcn_hard_regno_rename_ok): Return false for memory aperture
! 	regs.
! 	(gcn_memory_move_cost): Handle memory aperture regs the same as
! 	general registers.
! 	(gcn_hard_regno_nregs): Handle MEMORY_APERTURE_REGS.
! 	* config/gcn/gcn.h (SHARED_BASE_REG): Define.
! 	(SHARED_LIMT_REG): Ditto.
! 	(PRIVATE_BASE_REG): Ditto.
! 	(PRIVATE_LIMT_REG): Ditto.
! 	(MEMORY_APERTURE_REG_P): New macro.  Evaluates to non-zero if
! 	parameter is one of the above registers.
! 	(SSRC_REGNO_P): Also evaluate to non-zero for aperture regs, as
! 	they can be sources to scalar instructions.
! 	(enum reg_class): New class: MEMORY_APERTURE_REGS.
! 	(REG_CLASS_NAMES): Provide name for that class.
! 	(MEMORY_APERTURE_REGS_MASK): New helper macro.  Value of
! 	NAMED_REG_MASK2 for each of the memory aperture regs.
! 	(REG_CLASS_CONTENTS): Add the above registers to
! 	MEMORY_APERTURE_REGS, SGPR_VOP_SRC_REGS, and SGPR_SRC_REGS.
  
! 2026-03-11  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* fold-mem-offsets.cc (do_check_validity): fix wrong mode
! 	and rename arguments to avoid future confusion
  
! 2026-03-10  Yangyu Chen  <cyy@cyyself.name>
  
! 	* config/riscv/riscv.cc (riscv_check_target_clone_version):
! 	Fix TARGET_CHECK_TARGET_CLONE_VERSION implementation.
  
! 2026-03-10  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop.cc (vect_get_datarefs_in_loop): Add function
! 	level comment.
! 	(vect_analyze_loop_2): Fix comment.
  
! 2026-03-10  Jan Hubicka  <jh@suse.cz>
! 	    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/120987
! 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask
! 	off non const/pure/novops related flags when combining of outer
! 	functions.
  
! 2026-03-09  Jonathan Wakely  <jwakely@redhat.com>
  
! 	PR translation/124422
! 	* config/loongarch/loongarch-target-attr.cc
! 	(loongarch_parse_fmv_features): Fix spelling in diagnostics.
! 	* params.opt (max-devirt-targets): Fix typo in description.
  
! 2026-03-09  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/124291
! 	* ipa-cp.cc (ipcp_val_replacement_ok_p): Allow more precise
! 	contexts that what the clone was originally intended for.
  
! 2026-03-09  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	PR gcov-profile/124075
! 	* config/aarch64/gcc-auto-profile: Add "-o perf.data" to perf
! 	record invocation.
! 	* config/i386/gcc-auto-profile: Likewise.
  
! 2026-03-09  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	PR gcov-profile/123923
! 	* config/aarch64/gcc-auto-profile: Add --inherit to perf record flags.
! 	* config/i386/gcc-auto-profile: Likewise.
  
! 2026-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
  
! 	PR middle-end/118608
! 	* rtlanal.cc (truncated_to_mode): Revert a change made on 2026-02-03.
! 	* config/mips/mips.md (*extenddi_truncate<mode>): Likewise.
  
! 2026-03-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (movdi_internal, movdf_internal, *btrue,
! 	*ubtrue, movsicc_internal0, movsicc_internal1, movsfcc_internal0,
! 	movsfcc_internal1):
! 	Rewrite in compact syntax.
  
! 2026-03-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/124403
! 	* config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix formating
! 	of the diagnostic.
  
! 2026-03-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR driver/69367
! 	PR driver/69849
! 	* Makefile.in (TEXI_GCCINT_FILES): Add specs.texi.
! 	* doc/gccint.texi: Include it.
! 	* doc/install.texi: Fix cross-references.
! 	* doc/invoke.texi: Likewise.
! 	(Option Summary): Reclassify -specs/--specs as a developer option.
! 	(Overall Options): Move -specs= documentation to...
! 	(Developer Options): ...here.
! 	(Spec Files): Move entire section to....
! 	* doc/specs.texi: ....new file.
! 	* common.opt.urls: Regenerated.
  
! 2026-03-07  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* tree-profile.cc (struct conds_ctx): Add edges.
! 	(topological_src_cmp): New function.
! 	(masking_vectors): New search strategy.
  
! 2026-03-07  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR rtl-optimization/121649
! 	* cse.cc (find_sets_in_insn):  Only use non-reg vec_select
! 	simplifications.
  
! 2026-03-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/124126
! 	* config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types): Copy
! 	the array type before setting the mode.
  
! 2026-03-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124135
! 	* tree-inline.cc (expand_call_inline): If both gimple_call_lhs (stmt)
! 	and use_retvar aren't gimple regs but have gimple reg type, use
! 	separate load of use_retva into SSA_NAME and then store of it
! 	into gimple_call_lhs (stmt).
  
! 2026-03-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/124358
! 	* match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): Simplify
! 	into (ptr) x p+ (y + z) instead.
  
! 2026-03-05  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	PR tree-optimization/124037
! 	* tree-vect-stmts.cc (get_load_store_type): Fix
! 	alignment_support_scheme categorization for early
! 	break VMAT_ELEMENTWISE accesses.
  
! 2026-03-05  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-loop.cc (vectorizable_live_operation): Fix typo.
  
! 2026-03-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/98064
! 	* tree-vect-loop.cc (vectorizable_live_operation): Do
! 	not restrict replacing uses in a LC PHI.
  
! 2026-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.md (swap<mode>): Swap operand order for
! 	-masm=intel.
  
! 2026-03-05  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/123807
! 	PR middle-end/124250
! 	* config/loongarch/loongarch.cc
! 	(loongarch_expand_vector_init_same): Revert r16-7163 change.
  
! 2026-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124349
! 	* config/i386/sse.md (iptrssebvec_2): New define_mode_attr.
! 	(cvthf82ph<mode><mask_name>): Use it for -masm=intel input
! 	operand.
  
! 2026-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124367
! 	* config/i386/sse.md (*andnot<mode>3): Use 0x44 rather than $0x44
! 	for -masm=intel.
  
! 2026-03-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124366
! 	* config/i386/i386.md (@wrss<mode>, @wruss<mode>): Swap operand
! 	order for -masm=intel.
  
! 2026-03-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/119568
! 	* tree-ssa-math-opts.cc (convert_plusminus_to_widen): Reject different
! 	mode classes.
  
! 2026-03-04  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR rtl-optimization/124041
! 	* lra-constraints.cc (curr_insn_transform): Check if hardreg is
! 	valid in subreg context.
  
! 2026-03-04  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	PR rtl-optimization/124351
! 	* avoid-store-forwarding.cc (process_store_forwarding): Add
! 	bitmap_clear after allocating forwarded_bytes.
  
! 2026-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124341
! 	* config/i386/sse.md (vcvt<convertfp8_pack><mode><mask_name>): Use
! 	<mask_operand3> rather than <mask_operand2> for -masm=intel.
  
! 2026-03-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124349
! 	* config/i386/sse.md (avx10_2_comisbf16_v8bf): Use %w1 instead of %1
! 	for -masm=intel.
  
! 2026-03-03  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124165
! 	* config/i386/i386-protos.h (symbolic_reference_mentioned_p):
! 	Change the argument type from rtx to const_rtx.
! 	* config/i386/i386.cc (symbolic_reference_mentioned_p): Likewise.
! 	(ix86_access_stack_p): Add 2 auto_bitmap[] arguments.  Cache
! 	the register BB domination result.
! 	(ix86_symbolic_const_load_p_1): New.
! 	(ix86_symbolic_const_load_p): Likewise.
! 	(ix86_find_max_used_stack_alignment): If there is no symbolic
! 	constant load into the register, don't call ix86_access_stack_p.
  
! 2026-03-03  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/115042
! 	* lra-int.h (lra_postponed_insns): New.
! 	* lra.cc (lra_set_insn_deleted, lra_asm_insn_error): Clear
! 	postponed insn flag.
! 	(lra_process_new_insns): Propagate postponed insn flag for asm
! 	gotos.
! 	(lra_postponed_insns): New.
! 	(lra): Initialize lra_postponed_insns.  Push postponed insns on
! 	the stack.
! 	* lra-constraints.cc (postpone_insns): New function.
! 	(curr_insn_transform): Use it to postpone processing reload insn
! 	constraints.  Skip processing postponed insns.
  
! 2026-03-03  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/45273
! 	* predict.cc (combine_predictions_for_insn): Use int64_t
! 	math instead of double.
  
! 2026-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124336
! 	* config/i386/i386.cc (output_adjust_stack_and_probe): Use
! 	or{b} rather than or%z0 and BYTE PTR rather than DWORD PTR.
! 	(output_probe_stack_range): Likewise.
! 	* config/i386/i386.md (probe_stack): Pass just 2 arguments
! 	to gen_probe_stack_1, first adjust_address to QImode, second
! 	const0_rtx.
! 	(@probe_stack_1_<mode>): Remove.
! 	(probe_stack_1): New define_insn.
  
! 2026-03-03  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* fold-const.cc: Fix "Conveinece" typo in comment.
  
! 2026-03-03  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-slp.cc (vect_make_slp_decision): Do not call
! 	vect_mark_slp_stmts.
! 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
! 	We are always doing SLP.
! 	(vect_supportable_dr_alignment): Likewise.
! 	* tree-vect-loop.cc (vect_analyze_loop_2): No need to reset
! 	STMT_SLP_TYPE.
  
! 2026-03-03  Jonathan Yong  <10walls@gmail.com>
  
! 	* Makefile.in: the libgdiagnostics shared object for mingw
! 	should be based on host name, not target name.
  
! 2026-03-03  Richard Sandiford  <rdsandiford@googlemail.com>
! 	    Artemiy Volkov  <artemiy.volkov@arm.com>
  
! 	PR rtl-optimization/123786
! 	* rtl-ssa/functions.h (function_info::live_out_value): Delete.
! 	(function_info::create_degenerate_phi): New overload.
! 	* rtl-ssa/blocks.cc (all_uses_are_live_out_uses): Delete.
! 	(function_info::live_out_value): Likewise.
! 	(function_info::replace_phi): Keep live-out uses if they are followed
! 	by a definition in the same EBB.
! 	(function_info::create_degenerate_phi): New overload, extracted
! 	from create_reg_use.
! 	(function_info::add_phi_nodes): Ensure that there is a phi for
! 	every live input that is redefined by a second or subsequent
! 	block in the EBB.  Record that such phis need live-out uses.
! 	(function_info::record_block_live_out): Use look_through_degenerate_phi
! 	rather than live_out_value when setting phi inputs.  Remove use of
! 	live_out_value for live-out uses.  Inline the old handling of
! 	bb_mem_live_out.
! 	(function_info::start_block): Move append_bb call to...
! 	(function_info::create_ebbs): ...here.
! 	* rtl-ssa/insns.cc (function_info::create_reg_use): Use the new
! 	create_degenerate_phi overload.
  
! 2026-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124315
! 	* config/i386/sse.md (avx512f_vmfmadd_<mode>_mask3<round_name>,
! 	avx512f_vmfmsub_<mode>_mask3<round_name>,
! 	avx512f_vmfnmadd_<mode>_mask3<round_name>,
! 	avx512f_vmfnmsub_<mode>_mask3<round_name>): Use %<iptr>1 instead of
! 	%<iptr>3 in -masm=intel syntax.
  
! 2026-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124335
! 	* config/i386/sse.md (*avx512f_load<mode>_mask): Use %{%3%} instead of
! 	%{3%} for -masm=intel syntax.
  
! 2026-03-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/sse.md (avx512fp16_mov<mode>): Rename pattern to...
! 	(*avx512fp16_mov<mode>): ... this.
  
! 2026-03-02  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/102397
! 	* doc/extend.texi (Attributes): Explicitly say that all attributes
! 	work in both syntaxes and examples may show either form.
! 	(Common Attributes): Convert some examples to use the new syntax.
  
! 2026-03-02  Filip Kastl  <fkastl@suse.cz>
  
! 	PR target/123926
! 	* config/sparc/sparc.h (HAVE_AS_TLS): Default to 0.
  
! 2026-03-02  Alfie Richards  <alfie.richards@arm.com>
  
! 	PR target/124167
! 	* attribs.cc (make_dispatcher_decl): Change node->definition
! 	to inherit from the node its called on.
! 	* ipa.cc (remote_unreachable_nodes): Move FMV logic out of
! 	(!in_boundary_p) if block.
  
! 2026-03-02  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/113453
! 	* config/bpf/bpf-protos.h (bpf_output_call): Change prototype.
! 	* config/bpf/bpf.cc (bpf_output_call): Change to adapt operands
! 	and return
! 	the instruction template instead of immediately emit asm and
! 	not allow proper final expected execution flow.
! 	(bpf_output_line_info): Add function to introduce line info
! 	entries in respective structures
! 	(bpf_asm_out_unwind_emit): Add function as hook to
! 	TARGET_ASM_UNWIND_EMIT. This hook is called before any
! 	instruction is emitted.
! 	* config/bpf/bpf.md: Change calls to bpf_output_call.
! 	* config/bpf/btfext-out.cc (struct btf_ext_lineinfo): Add fields
! 	to struct.
! 	(bpf_create_lineinfo, btf_add_line_info_for): Add support
! 	function to insert line_info data in respective structures.
! 	(output_btfext_line_info): Function to emit line_info data in
! 	.BTF.ext section.
! 	(btf_ext_output): Call output_btfext_line_info.
! 	* config/bpf/btfext-out.h: Add prototype for
! 	btf_add_line_info_for.
  
! 2026-03-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124294
! 	* config/i386/sse.md (avx512fp16_mov<mode>): Fix ordering of operands
! 	for -masm=intel for the avx10_2 alternative.  Fix up indentation in
! 	the insn condition.
! 	(vec_set<mode>_0): Fix comment typo, higer -> higher.
  
! 2026-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR target/57261
! 	* configure.ac (gcc_cv_ld_as_needed) <i?86-*-solaris2* |
! 	x86_64-*-solaris2*>: Don't disable.
  	* configure: Regenerate.
  
! 2026-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (solaris_ld): New check.
! 	Test solaris_ld instead of gnu_ld_flag.
  	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* config/i386/sol2.h: Switch to HAVE_SOLARIS_LD.
! 	* config/sol2.h: Likewise.
! 	* config/sparc/sol2.h: Likewise.
! 	* config/sparc/sparc.md: Likewise.
  
! 2026-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (solaris_as): New check.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* config/i386/i386.cc: Switch to HAVE_SOLARIS_AS.
! 	* config/i386/sol2.h: Likewise.
! 	* config/sol2.h: Likewise.
! 	* config/sparc/sol2.h: Likewise.
! 	* config/sparc/sparc.cc: Likewise.
! 	* config/sparc/sparc.md: Likewise.
  
! 2026-02-28  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR tree-optimization/90036
! 	* tree-ssa-dom.cc (back_propagate_equivalences): Accept new
! 	argument for available expression stack.  Lookup equivalences
! 	in the expression hash table too.  If an expression hash a
! 	known constant value, record it and recurse.
! 	(record_temporary_equivalences): Back propagate for a subset of
! 	edge equivalences.
  
! 2026-02-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR target/124094
! 	* config/aarch64/aarch64-generate-json-tuning-routines.py
! 	(generate_field_code): Add "ctxt, " arg to function call when
! 	operation is "parse".
! 	(generate_function): Add "gcc_json_context &ctxt, " param to
! 	function decl when operation is "parse".
! 	* config/aarch64/aarch64-json-tunings-parser-generated.inc:
! 	Regenerate, passing around a gcc_json_context &.
! 	* config/aarch64/aarch64-json-tunings-parser.cc: Include
! 	"json-diagnostic.h".
! 	(WARNING_OPT) New macro.
! 	(PARSE_INTEGER_FIELD): Add "ctxt" param and pass it around.
! 	(PARSE_UNSIGNED_INTEGER_FIELD): Likewise.
! 	(PARSE_BOOLEAN_FIELD): Likewise.
! 	(PARSE_STRING_FIELD): Likewise.
! 	(PARSE_OBJECT): Likewise.
! 	(PARSE_ARRAY_FIELD): Likewise.
! 	(PARSE_ENUM_FIELD): Likewise.
! 	(parse_func_type): Likewise.
! 	(parse_object_helper): Likewise.  Use json_error rather than error.
! 	(inform_about_wrong_kind_of_json_value): New.
! 	(extract_string): Add "ctxt" param.  Replace "warning" with a pair
! 	of calls to json_warning and
! 	inform_about_wrong_kind_of_json_value, tweaking wording
! 	accordingly.
! 	(extract_integer): Likewise.
! 	(extract_unsigned_integer): Likewise.
! 	(parse_enum_field): Likewise.
! 	(validate_and_traverse): Replace "warning" and "error" with
! 	"json_warning" and "json_error".
! 	(check_version_compatibility): Use WARNING_OPT.  Add
! 	auto_diagnostic_group to group the error and note.
! 	(aarch64_load_tuning_params_from_json_string): Add "js_filename"
! 	param.  Use gcc_json_context to capture location info.  Use it
! 	when reporting errors to get file/line/column info.  Replace check
! 	on root being non-null with assertion, as this is guaranteed if
! 	error is non-null.  Replace warning with json_warning.
! 	(aarch64_load_tuning_params_from_json): Pass data_filename to
! 	aarch64_load_tuning_params_from_json_string for use when reporting
! 	diagnostics.
! 	(selftest::test_json_integers): Add a placeholder filename.
! 	(selftest::test_json_boolean): Likewise.
! 	(selftest::test_json_strings): Likewise.
! 	(selftest::test_json_enums): Likewise.
  
! 2026-02-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (OBJS-libcommon): Add json-diagnostic.o.
! 	* diagnostics/client-data-hooks.h
! 	(class client_data_hooks_decorator): New.
! 	* diagnostics/context.cc (context::set_client_data_hooks): Return
! 	the old hooks.
! 	* diagnostics/context.h (context::set_client_data_hooks): Update
! 	decl likewise.
! 	* json-diagnostic.cc: New file.
! 	* json-diagnostic.h: New file.
  
! 2026-02-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* config/aarch64/aarch64-json-tunings-parser.cc: Define
! 	INCLUDE_MAP.
! 	* json-parsing.cc: Likewise.
! 	* json-parsing.h (class simple_location_map): New class, moved and
! 	renamed from...
! 	* libsarifreplay.cc (class replayer_location_map): ...here.
! 	(sarif_replayer::m_json_location_map): Update for renaming of
! 	class.
  
! 2026-02-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (OBJS-libcommon):
! 	Add diagnostics/physical-location-maker.o.
! 	* diagnostics/physical-location-maker.cc: New file, adapted from
! 	material in libgdiagnostics.cc.
! 	* diagnostics/physical-location-maker.h: New file, adapted from
! 	material in libgdiagnostics.cc.
! 	* libgdiagnostics.cc: Include
! 	"diagnostics/physical-location-maker.h".
! 	(diagnostic_manager::diagnostic_manager): Initialize
! 	m_phys_loc_maker.
! 	(diagnostic_manager::new_location_from_file_and_line): Split out
! 	into physical_location_maker.
! 	(diagnostic_manager::new_location_from_file_line_column):
! 	Likewise.
! 	(diagnostic_manager::ensure_linemap_for_file_and_line): Likewise.
! 	(diagnostic_manager::m_phys_loc_maker): New field.
  
! 2026-02-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* diagnostics/html-sink.cc
! 	(html_builder::make_element_for_diagnostic): Update for logical
! 	location strings being returned as  label_text rather than
! 	const char *.
! 	* diagnostics/logical-locations.h
! 	(logical_locations::manager::get_short_name): Return label_text
! 	rather than const char *.
! 	(logical_locations::manager::get_name_with_scope): Likewise.
! 	(logical_locations::manager::get_internal_name): Likewise.
! 	* diagnostics/sarif-sink.cc
! 	(sarif_builder::ensure_sarif_logical_location_for): Update for
! 	logical location strings being returned as label_text rather than
! 	const char *.
! 	(sarif_builder::make_minimal_sarif_logical_location): Likewise.
! 	* diagnostics/selftest-logical-locations.cc
! 	(test_manager::get_short_name): Likewise.
! 	(test_manager::get_name_with_scope): Likewise.
! 	(test_manager::get_internal_name): Likewise.
! 	(selftest_logical_locations_cc_tests): Likewise.
! 	* diagnostics/selftest-logical-locations.h
! 	(test_manager::get_short_name): Likewise.
! 	(test_manager::get_name_with_scope): Likewise.
! 	(test_manager::get_internal_name): Likewise.
! 	* diagnostics/state-graphs-to-dot.cc
! 	(state_diagram::on_node_in_table): Likewise.
! 	* libgdiagnostics.cc
! 	(impl_logical_location_manager::get_short_name): Likewise.
! 	(impl_logical_location_manager::get_name_with_scope): Likewise.
! 	(impl_logical_location_manager::get_internal_name): Likewise.
! 	* tree-logical-location.cc
! 	(tree_logical_location_manager::get_short_name): Likewise.
! 	(tree_logical_location_manager::get_name_with_scope): Likewise.
! 	(tree_logical_location_manager::get_internal_name): Likewise.
! 	* tree-logical-location.h
! 	(tree_logical_location_manager::get_short_name): Likewise.
! 	(tree_logical_location_manager::get_name_with_scope): Likewise.
! 	(tree_logical_location_manager::get_internal_name): Likewise.
  
! 2026-02-28  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c/87591
! 	* doc/extend.texi (Attributes): Document __attribute keyword.
! 	(Attribute Syntax): Here too.
  
! 2026-02-28  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Attributes): Rename the node "GNU Attribute
! 	Syntax" node back to "Attribute Syntax"; fix references.  Add
! 	@anchor for sections recently merged away at the new location of
! 	the material they used to contain.
  
! 2026-02-28  Kwok Cheung Yeung  <kcyeung@baylibre.com>
  
! 	PR middle-end/113436
! 	* omp-low.cc (lower_omp_target): Merge branches for allocating memory
! 	for private clauses.  Add handling for references when allocator
! 	clause not specified.
  
! 2026-02-27  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/124142
! 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
! 	For early break require masking when operation can trap.
  
! 2026-02-27  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR tree-optimization/90036
! 	* tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always
! 	record the new hash table entry.
  
! 2026-02-27  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR middle-end/124280
! 	* optabs.cc (expand_vector_broadcast): Allow broadcasting QImode
! 	to BImode vector.
  
! 2026-02-27  Vladimir N. Makarov  <vmakarov@redhat.com>
  
  	Revert:
! 	2026-02-26  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/115042
! 	* lra-int.h (lra_constraint_insn_stack_clear): New prototype.
! 	* lra.cc (lra_constraint_insn_stack2): New vector.
! 	(lra_constraint_insn_stack_clear): New function.
! 	(lra): Initialize/finalize lra_constraint_insn_stack2.
! 	* lra-constraints.cc (lra_constraints): Use
! 	lra_constraint_insn_stack_clear to postpone processing new reload
! 	insns.
  
! 2026-02-27  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123229
! 	* ipa-prop.cc (update_indirect_edges_after_inlining): Reset parameter
! 	index associated with an indirect edge if the inlined edge does not
! 	have any jump functions.
  
! 2026-02-27  Soumya AR  <soumyaa@nvidia.com>
  
! 	* config/aarch64/aarch64-json-tunings-parser.cc (parse_object_helper):
! 	Zero-initialize objects that are NULL in the base tunings, if provided
! 	in JSON tunings.
! 	* config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add default
! 	constructor.
! 	(struct aarch64_simd_vec_issue_info): Likewise.
! 	(struct aarch64_sve_vec_issue_info): Likewise.
  
! 2026-02-27  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123629
! 	* ipa-polymorphic-call.cc
! 	(ipa_polymorphic_call_context::meet_with): When an outer context is
! 	NULL, call make_speculative on the other one.
  
! 2026-02-27  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/124162
! 	* config/aarch64/aarch64-sve.md (cond_vec_cbranch_any,
! 	cond_vec_cbranch_all): Drop partial vectors support.
  
! 2026-02-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/117935
! 	* tree-ssa-phiopt.cc (contains_hot_cold_predict): New function.
! 	(match_simplify_replacement): Return early if early_p and one of
! 	the middle bb(s) have a hot/cold predict statement.
  
! 2026-02-26  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/115042
! 	* lra-int.h (lra_constraint_insn_stack_clear): New prototype.
! 	* lra.cc (lra_constraint_insn_stack2): New vector.
! 	(lra_constraint_insn_stack_clear): New function.
! 	(lra): Initialize/finalize lra_constraint_insn_stack2.
! 	* lra-constraints.cc (lra_constraints): Use
! 	lra_constraint_insn_stack_clear to postpone processing new reload
! 	insns.
  
! 2026-02-26  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/122448
! 	* config/riscv/riscv-vsetvl.cc (compute_reaching_defintion):
! 	Rename...
! 	(compute_reaching_definition): ...To this.
! 	(pre_vsetvl::compute_vsetvl_def_data):  Compute reaching
! 	definitions for vsetvl VL -> vsetvl AVL.
! 	(pre_vsetvl::compute_transparent): Include VL uses.
! 	(pre_vsetvl::fuse_local_vsetvl_info): Initialize m_reg_use_loc.
! 	(pre_vsetvl::earliest_fuse_vsetvl_info): Don't hoist if any
! 	successor would use VL.
  
! 2026-02-26  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR middle-end/124250
! 	PR target/123807
! 	* optabs.cc (expand_vector_broadcast): Add a checking assert to
! 	verify the precondition about the input modes.
! 	(expand_binop): Extend the shift amount if it's narrower than
! 	the element of the shifted vector.
  
! 2026-02-26  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR target/124194
! 	* config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): Also return
! 	CONSTM1_RTX for the case cmp_imm == 7 (predicate TRUE).
  
! 2026-02-26  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR c/119651
! 	PR c/123472
! 	* fold-const.cc (tree_nonzero_bits): Rename the original as a
! 	static function taking an additional precision parameter.  Make
! 	this implementation robust to error_mark_node.  Preserve the
! 	original API by checking for error_operand_p before invoking the
! 	static helper function.
  
! 2026-02-26  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/119979
! 	PR target/120888
! 	* targhooks.cc (default_promote_function_mode_sign_extend): New.
! 	* targhooks.h (default_promote_function_mode_sign_extend):
  	Likewise.
+ 	* config/mcore/mcore.cc (TARGET_PROMOTE_FUNCTION_MODE): Use
+ 	default_promote_function_mode_sign_extend.
+ 	(TARGET_PROMOTE_PROTOTYPES): Removed.
+ 	* config/xtensa/xtensa.cc (xtensa_promote_function_mode): Removed.
+ 	(TARGET_PROMOTE_FUNCTION_MODE): Use
+ 	default_promote_function_mode_sign_extend.
  
! 2026-02-25  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* avoid-store-forwarding.cc
! 	(store_forwarding_analyzer::process_store_forwarding): Use
! 	auto_sbitmap for forwarded_bytes to ensure it is freed on all
! 	return paths.
  
! 2026-02-25  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* avoid-store-forwarding.cc
! 	(store_forwarding_analyzer::update_stats): Use stats_sf_avoided
! 	for the "avoided" counter.
  
! 2026-02-25  Philipp Tomsich  <philipp.tomsich@vrull.eu>
  
! 	* avoid-store-forwarding.cc: Move config.h before
! 	avoid-store-forwarding.h; place avoid-store-forwarding.h
! 	after rtl.h; remove unused cselib.h include.
! 	* avoid-store-forwarding.h: Remove includes of config.h,
! 	system.h, coretypes.h, backend.h, rtl.h.
  
! 2026-02-25  Cupertino Miranda  <cupertino.miranda@oracle.com>
  
! 	PR target/120241
! 	* config/bpf/core-builtins.cc
! 	(is_attr_preserve_access): Correct for pointer types.
! 	(maybe_get_base_for_field_expr, core_access_index_map,
! 	core_access_clean, core_is_access_index, core_mark_as_access_index):
! 	Remove.
! 	(make_gimple_core_safe_access_index): Remove function.
! 	(struct walker_data): New struct to pass data to tree walker.
! 	(callback_should_do_core_access, should_do_core_access): Add
! 	function to identify expressions that should not be converted to
! 	CO-RE.
! 	(core_make_builtins): Add callback tree walker function to
! 	convert expressions to CO-RE.
! 	(callback_find_next_split_location, core_should_split_expr,
! 	find_next_split_location, gimple_core_early_split_expr): Add
! 	function to split expressions in CO-RE and non-CO-RE
! 	expressions.
! 	(execute_lower_bpf_core): Adapt to new code.
! 	* config/bpf/bpf.opt: Add option Wco-re.
! 	* doc/invoke.texi: Add documentation for Wco-re.
  
! 2026-02-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/110091
! 	* ipa-split.cc (split_function): Find the bb
! 	which is used for return in the outlined function.
! 	Move the clobbers that are at the end of that bb
! 	to be after the new call.
  
! 2026-02-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/110091
! 	* ipa-split.cc (split_function): Split after
! 	the clobbers/debug stmts rather than after the labels.
  
! 2026-02-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.md (spaceshipsi4):
! 	New RTL generation pattern.
  
! 2026-02-25  Richard Biener  <rguenther@suse.de>
  
! 	PR target/120234
! 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
! 	For constructor elements always look through a conversion.
! 	Rewrite load and vector extraction matching to be more obvious.
! 	Allow arbitrary conversions from the vector extract to elide
! 	costing of a gpr<->xmm move.
  
! 2026-02-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/123285
! 	* config/aarch64/aarch64-early-ra.cc (early_ra::form_chains): Process clobbers
! 	and ABI clobbers before starting to form the chain.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* Makefile.in (ATTR_URLS_HTML_DEPS): Point at new index file.
! 	* attr-urls.def: Regenerated.
! 	* gcc-attribute-urlifier.cc (test_attribute_urlifier): Adjust
! 	URLs to match formatting in the new index.
! 	* regenerate-attr-urls.py (parse_html_line_attribute_index):
! 	Update pattern to match formatting in the new combined index.
! 	Don't segregate entries into separate function/variable/etc
! 	arrays.
! 	(INDEX_REL_PATH): Point at the new index file.
! 	(class TestParsingIndex): Update patterns in self-tests to match
! 	the current formatting.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* doc/extend.texi (Common Attributes): Change @cindex entries for
! 	attributes to @atindex.  Add some additional @cindex entries.
! 	(AArch64 Attributes): Likewise.
! 	(AMD GCN Attributes): Likewise.
! 	(ARC Attributes): Likewise.
! 	(ARM Attributes): Likewise.
! 	(AVR Attributes): Likewise.
! 	(Blackfin Attributes): Likewise.
! 	(BPF Attributes): Likewise.
! 	(C-SKY Attributes): Likewise.
! 	(Epiphany Attributes): Likewise.
! 	(H8/300 Attributes): Likewise.
! 	(IA-64 Attributes): Likewise.
! 	(LoongArch Attributes): Likewise.
! 	(M32C Attributes): Likewise.
! 	(M32R/D Attributes): Likewise.
! 	(m68k Attributes): Likewise.
! 	(MicroBlaze Attributes): Likewise.
! 	(Microsoft Windows Attributes): Likewise.
! 	(MIPS Attributes): Likewise.
! 	(MSP430 Attributes): Likewise.
! 	(NDS32 Attributes): Likewise.
! 	(Nvidia PTX Attributes): Likewise.
! 	(PowerPC Attributes): Likewise.
! 	(RISC-V Attributes): Likewise.
! 	(RL78 Attributes): Likewise.
! 	(RX Attributes): Likewise.
! 	(S/390 Attributes): Likewise.
! 	(SH Attributes): Likewise.
! 	(Symbian OS Attributes): Likewise.
! 	(V850 Attributes): Likewise.
! 	(Visium Attributes): Likewise.
! 	(x86 Attributes): Likewise.
! 	(Xstormy16 Attributes): Likewise.
! 	(C++ Attributes): Likewise.
! 	* doc/gcc.texi: Define a new "at" index for attributes.
! 	(Attribute Index): New appendix.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* doc/extend.texi (Common Attributes): Document the "naked"
! 	attribute here.
! 	(ARC Attributes): Delete entry for "naked".
! 	(ARM Attributes): Likewise.
! 	(AVR Attributes): Likewise.
! 	(BPF Attributes): Likewise.
! 	(C-SKY Attributes): Likewise.
! 	(MCORE Attributes): Delete entire section since "naked" was
! 	the only thing listed.
! 	(MSP430 Attributes): Delete entry for "naked".
! 	(NDS32 Attributes): Likewise.
! 	(RISC-V Attributes): Likewise.
! 	(RL78 Attributes): Likewise.
! 	(RX Attributes): Likewise.
! 	(x86 Attributes): Likewise.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* doc/extend.texi (Common Attributes): Consolidate documentation
! 	for "cold" and "hot" attributes, including the C++-specific
! 	behavior.
! 	(C++ Attributes): Likewise, just point to the main entry.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (RISC-V Attributes): Format and index options
! 	for the "target" attribute consistently with the documentation
! 	for other back ends.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Common Attributes): Add LoongArch to lists of
! 	targets supporting target_clones and target_version.
! 	(LoongArch Attributes): Copy-edit for grammar and markup.  Wrap
! 	excessively long lines.  Rearrange the introductory material for
! 	the target attribute.  Correct index entries for target attribute
! 	options.
! 	(Function Multiversioning): Add LoongArch to list of targets
! 	supporting this feature.  Fix nearby typo.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (AArch64 Attributes): Reorganize material in this
! 	section, correct terminology and formatting.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/extend.texi (Attributes): General copy-editing.
! 	(C++ Attributes): Likewise.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* doc/extend.texi (Attributes): Start each attribute's
! 	documentation with a short paragraph describing what it applies to.
! 	(C++ Attributes): Likewise.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/88472
! 	* doc/extend.texi (Attributes): Merge respective subsections of
! 	Function Attributes, Variable Attributes, Type Attributes,
! 	Label Attributes, Enumerator Attributes, and Statement Attributes
! 	into new sections Common Attributes and Target-Specific Attributes.
! 	Fix cross-references.
! 	* doc/invoke.texi: Fix cross-references.
! 	* doc/trouble.texi: Likewise.
  
! 2026-02-24  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR c++/102397
! 	* doc/extend.texi (Attributes): Rewrite and expand discussion
! 	of standard vs legacy syntax, with several examples.
! 	(Attribute Syntax): Rename section to...
! 	(GNU Attribute Syntax): ...this.  Prune discussion of standard
! 	attribute syntax.  Fix cross-references.
  
! 2026-02-24  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	* config/riscv/vector.md:  Change 'X' to 'r' in _lra insns.
  
! 2026-02-24  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/124147
! 	* config/riscv/autovec.md: Work around fractional-LMUL modes for
! 	TARGET_XTHEADVECTOR.
! 	* config/riscv/riscv-protos.h (get_m1_mode): Export.
! 	* config/riscv/riscv-v.cc (get_m1_mode): Allow to get a VLS m1
! 	vector.
  
! 2026-02-24  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR rtl-optimization/123381
! 	* lra-constraints.cc (process_alt_operands): Detect cycles in
! 	three-operand moves with clobber.
! 	(curr_insn_transform): Don't write back a scratch operand.
  
! 2026-02-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/121240
! 	* config/aarch64/aarch64-simd.md (mov<mode>): Expand vector constants
! 	early.
! 	* config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force
! 	vector immediates <= 16 bytes to constdata.
  
! 2026-02-24  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123117
! 	PR target/120234
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Fix
! 	sign conversion check guarding unpacking.
  
! 2026-02-24  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123629
! 	* ipa-cp.cc (ipcp_val_replacement_ok_p): Also verify that the
! 	vector of known contexts has sufficient length.
  
! 2026-02-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR translation/118988
! 	* params.opt (-param=cycle-accurate-model=): Fix wording of help
! 	string.
! 	(-param=phiopt-factor-max-stmts-live=): Likewise.
  
! 2026-02-23  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* config/gcn/gcn.md (addsi3): Disparage vector alternative.
! 	(addptrdi3): Reverse order of vector and scalar alternatives
! 	to prefer the latter.
! 	(subsi3): Disparage vector alternatives.
! 	(mulsi3): Likewise.
! 	(muldi3): Likewise.
! 	(bitunop <expander>si2): Likewise.
! 	(vec_and_scalar_com <expander>si3): Likewise.
! 	(vec_and_scalar_nocom <expander>si3): Likewise.
! 	(one_cmpldi2): Likewise.
! 	(vec_and_scalar64_com <expander>di3): Likwise.
! 	(vec_and_scalar64_nocom <expander>di3): Likwise.
  
! 2026-02-23  Paul-Antoine Arras  <parras@baylibre.com>
  
! 	PR fortran/120505
! 	* gimplify.cc (omp_accumulate_sibling_list): When the containing struct
! 	is a Fortran array descriptor, sort mapped components by offset.
  
! 2026-02-23  Paul-Antoine Arras  <parras@baylibre.com>
  
! 	PR fortran/120505
! 	* gimplify.cc (omp_mapped_by_containing_struct): Handle Fortran array
! 	descriptors.
! 	(omp_build_struct_sibling_lists): Allow attach_detach bias to be
! 	adjusted on non-target regions.
! 	(gimplify_adjust_omp_clauses): Remove GIMPLE-only nodes.
! 	* tree-pretty-print.cc (dump_omp_clause): Handle
! 	OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT and OMP_CLAUSE_MAP_GIMPLE_ONLY.
! 	* tree.h (OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT,
! 	OMP_CLAUSE_MAP_GIMPLE_ONLY): Define.
  
! 2026-02-23  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
! 	Remove +sme+nosve sorry, and remove SVE from nosme workaround.
! 	* doc/invoke.texi: Remove SVE2 requirement from +sme.
  
! 2026-02-23  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
! 	Replace TARGET_SVE{2} with explicit feature flag checks.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_adjust_generic_arch_tuning): Add SME to SVE2 check.
! 	* config/aarch64/aarch64.h (TARGET_SVE): Adjust condition.
! 	(TARGET_SVE2): Ditto.
  
! 2026-02-23  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-sme.md (UNSPEC_GET_CURRENT_VG): New
! 	enum value.
! 	(aarch64_get_current_vg): New insn.
! 	* config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
! 	__arm_get_current_vg if cntd is unavailable.
  
! 2026-02-22  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR c/123716
! 	* tree.cc (tree_nop_conversion_p): Move sanity checks on
! 	inner_type to here...
! 	(tree_nop_conversion): ... from here.
  
! 2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
  
! 	PR c++/120974
! 	* gcc.cc (join_spec_func): Escape special characters.
  
! 2026-02-21  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.cc (constantsynth_pass1):
! 	Add the case where the assignment destination is a stack pointer
! 	to the exclusion criteria for processing.
  
! 2026-02-21  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR rtl-optimization/123994
! 	* rtl-ssa/changes.cc (function_info::verify_insn_changes): Bullet
! 	proof loop to not fault if we run off the end of the insn chain.
  
! 2026-02-21  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/124147
! 	* config/riscv/riscv.cc (riscv_same_function_versions): Use nullptr_t rather
! 	than UNKNOWN_LOCATION for pointer argument.
  
! 2026-02-20  Kwok Cheung Yeung  <kcyeung@baylibre.com>
  
! 	PR middle-end/113436
! 	* omp-low.cc (omp_lower_target):  Do not check for variable-length
! 	variables in private clauses by reference when allocating memory.
  
! 2026-02-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124068
! 	* tree-vect-patterns.cc (target_has_vecop_for_code): Move
! 	earlier, add defaulted optab_subtype parameter.
! 	(vect_recog_over_widening_pattern): Check that the target
! 	supports the narrowed operation before committing to the
! 	pattern.
  
! 2026-02-20  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/122856
! 	* ipa-cp.cc (self_recursive_pass_through_p): Test jump function type first.
! 	(self_recursive_ancestor_p): New function.
! 	(find_scalar_values_for_callers_subset): Test also for self-recursive
! 	ancestor jump functions.
! 	(push_agg_values_for_index_from_edge): Likewise.
  
! 2026-02-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/121103
! 	* gimple-fold.cc (gimple_fold_call): Don't simplify
! 	noreturn functions.
! 	* tree-ssa-dse.cc (dse_optimize_stmt): Don't handle
! 	calls to noreturn functions.
  
! 2026-02-19  jlaw  <jeffreyalaw@gmail.com>
  
! 	PR tree-optimization/124108
! 	* match.pd (reassociating XOR to expose rotations): Check
! 	type_has_mode_precision_p before simplifying.
  
! 2026-02-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/i386/i386.cc (avx_vpermilp_parallel): Use IN_RANGE
! 	macro.
  
! 2026-02-19  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/autovec-opt.md (*literal_v<ieee_fmaxmin_op>_vf_<mode>):
! 	Add new pattern for vfmax/min combine to fx.
  
! 2026-02-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/116053
! 	* regcprop.cc (copyprop_hardreg_forward_1): Use delete_insn_and_edges
! 	instead of delete_insn.
  
! 2026-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/120169
! 	* lra-int.h (lra_process_new_insns): Modify the prototype.
! 	* lra.cc (lra_process_new_insns): Add arg fixup_reg_args_size with
! 	implicit value.  Move REG_ARGS_SIZE note if necessary.
! 	* lra-constraints.cc (curr_insn_transform): Pass the new arg value.
  
! 2026-02-18  Richard Biener  <rguenther@suse.de>
  
! 	PR target/123137
! 	* config/i386/i386-features.cc (ix86_emit_tls_call): Improve
! 	local FLAGS_REG liveness calculation.
  
! 2026-02-18  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/124138
! 	* config/i386/i386.cc (avx_vpermilp_parallel): Verify
! 	ipar[2] and ipar[3] aren't larger than 3.
  
! 2026-02-18  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124098
! 	* config/i386/i386.cc (ix86_access_stack_p): New.
! 	(ix86_find_max_used_stack_alignment): Update stack alignment only
! 	if stack is used.
  
! 2026-02-17  H.J. Lu  <hjl.tools@gmail.com>
  
! 	PR target/124136
! 	* config/i386/i386-features.cc (ix86_check_flags_reg): Don't
! 	mark clobbered FLAGS_REG as live.
  
! 2026-02-17  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/124134
! 	* config/arm/arm.md (movsfcc): FAIL if using restricted IT
! 	blocks and we lack VSEL.
! 	(movdfcc): Likewise.
  
! 2026-02-17  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/124048
! 	* config/riscv/zicond.md (conditional AND patterns): Fix missed
! 	flipping the condition's test in RTL output.
  
! 2026-02-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124130
! 	* tree-inline.cc (copy_edges_for_bb): Fixup noreturn calls
! 	with abnormal edge source.
  
! 2026-02-17  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124132
! 	* tree-ssa-loop-split.cc (compute_new_first_bound): Fix
! 	bound difference computation.
  
! 2026-02-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/120233
! 	* gimple-ssa-store-merging.cc (find_bswap_or_nop_2): New function.
! 	(find_bswap_or_nop): Move CONSTRUCTOR handling to above function,
! 	call it instead of find_bswap_or_nop_1.
! 	(bswap_replace): Handle VEC_PACK_TRUNC_EXPR like CONSTRUCTOR.
! 	(maybe_optimize_vector_constructor): Likewise.
! 	(pass_optimize_bswap::execute): Likewise.
! 	(get_status_for_store_merging): Likewise.
! 	(pass_store_merging::execute): Likewise.
  
! 2026-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR libstdc++/113450
! 	PR libstdc++/123176
! 	* config/sol2.h (INT8_TYPE): Change to signed char.
! 	(INT_LEAST8_TYPE): Likewise.
! 	(INT_FAST8_TYPE): Likewise.
  
! 2026-02-15  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* json.cc (pointer::token::print): Cast the value to pp_scalar
! 	with (fmt_size_t).
  
! 2026-02-15  Jan Hubicka  <hubicka@ucw.cz>
  
! 	* ipa-devirt.cc (ipa_devirt): Improve statistics for multi-target
! 	devirtualization; do not simple-call devirtualize already devirtualized calls.
  
! 2026-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac <sparc*-*-*> (gcc_cv_as_sparc_fmaf): Remove.
! 	(gcc_cv_as_sparc_sparc4): Remove.
! 	(gcc_cv_as_sparc_sparc): Remove.
! 	(gcc_cv_as_sparc_sparc6): Remove.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* config/sparc/sparc.h (AS_NIAGARA3_FLAG) Remove.  Replace uses by
! 	definition.
! 	(AS_NIAGARA4_FLAG): Likewise.
! 	(AS_NIAGARA7_FLAG): Likewise.
! 	(AS_M8_FLAG): Likewise.
! 	* config/sparc/sol2.h [!HAVE_AS_SPARC4]: Remove.
! 	(AS_SPARC32_FLAG): Remove.
! 	(AS_SPARC64_FLAG): Remove.
! 	(AS_NIAGARA3_FLAG) Replace uses by definition.
! 	(AS_NIAGARA4_FLAG): Likewise.
! 	(AS_NIAGARA7_FLAG): Likewise.
! 	(AS_M8_FLAG): Likewise.
! 	* config/sparc/sparc.cc (sparc_option_override):
! 	[!HAVE_AS_FMAF_HPC_VIS3]: Remove.
! 	[!HAVE_AS_SPARC4]: Likewise.
! 	[!HAVE_AS_SPARC5_VIS4]: Likewise.
! 	[!HAVE_AS_SPARC6]: Likewise.
  
! 2026-02-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/124099
! 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_return): Don't do anything
! 	if the return is already result decl or a deference of result decl.
! 	Also reject non local var decls.
  
! 2026-02-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR cobol/122839
! 	* doc/install.texi (COBOL-Specific Options): New.
  
! 2026-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac <sparc*-*-*> (gcc_cv_as_sparc_gotdata_op): Remove.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* config/sparc/sparc.md [!HAVE_AS_SPARC_GOTDATA_OP]: Remove.
  
! 2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
  
! 	PR target/112400
! 	* config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE
! 	where used with the insn split to.
! 	(*casesi1): Likewise naked incoming operand 1.
  
! 2026-02-14  Maciej W. Rozycki  <macro@orcam.me.uk>
  
! 	* config/vax/vax.cc (nonindexed_address_p): Move incoming RTX's
! 	operand 0 access to the actual use places.
  
! 2026-02-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/124086
! 	* tree-complex.cc (extract_component): Extend the check
! 	for ssa names for VCE to include invariants.
  
! 2026-02-13  David Malcolm  <dmalcolm@redhat.com>
  
! 	* json-parsing.cc (selftest::assert_json_pointer_eq): New.
! 	(ASSERT_JSON_POINTER_EQ): New.
! 	(selftest::test_parse_object): Add tests of JSON pointer.
! 	(selftest::test_pointer_escaping): New test.
! 	(selftest::json_parser_cc_tests): Call it.
! 	* json.cc (json::pointer::token::print): New.
! 	(json::value::print_pointer): New.
! 	* json.h (json::pointer::token::print): New decl.
! 	(json::value::print_pointer): New decl.
! 	* libsarifreplay.cc: Include pretty-print.h.
! 	(make_logical_location_from_jv): Use
! 	json::pointer::token::print for short_name.
  
! 2026-02-13  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/124079
! 	* lra-constraints.cc (get_matching_reload_reg_subreg): Add new arg
! 	rclass.  Use another condition to use lowpart_subreg.  Use lra_constraint_offset
! 	to calculate the subreg offset.
! 	(get_reload_reg, match_reload): Pass the new arg.
  
! 2026-02-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/95825
! 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_return): New function.
! 	(optimize_agr_copyprop): Call optimize_agr_copyprop_return
! 	for return statements.
  
! 2026-02-13  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR diagnostics/124014
! 	* diagnostics/html-sink.cc (html_builder::get_logical_loc_mgr):
! 	New.
! 	(html_builder::m_logical_loc_mgr): Drop field.
! 	(html_builder::html_builder): Drop initialization of
! 	m_logical_loc_mgr.
! 	(html_builder::maybe_make_state_diagram): Use get_logical_loc_mgr
! 	rather than m_logical_loc_mgr.
! 	(html_builder::make_element_for_diagnostic): Likewise.
  
! 2026-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/99959
! 	* tree-sra.cc (create_access_replacement): Guard DECL_NONLOCAL_FRAME
! 	access.
  
! 2026-02-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/99959
! 	* tree-sra.cc (create_access_replacement): Always create
! 	debug expressions for DECL_NONLOCAL_FRAME bases.
  
! 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* Makefile.in (all.fda): Bump profile_merger gcov_version to 3.
  
! 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.cc (cris_reduce_compare): Add forcing the first
! 	operand to be a register, unless the second operand is 0, to scope.
! 	* config/cris/cris.md ("*cstore<mode><code>4")
! 	("*cbranch<mode><code>4"): Add guards to condition, for either operand
! 	to be a register unless the last operand is zero.
  
! 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.md (BWDSF): New mode_iterator replacing SISF.
! 	All callers changed.
! 	("*movhi_internal<setcc><setnz><setnzvc>"): Anonymized from
! 	"<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>" to make it a
! 	match-only pattern.  Add conditions to guard from source and
! 	destination both being memory operands.
! 	("*movstricthi_internal", "*movstrictqi_internal"): Similarly
! 	for "movstricthi" and "movstrictqi".
! 	("movstrict<mode>"): Add common expander for BW, forcing one operand
! 	to be a register or source being zero.
  
! 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.md (SISF): New mode_iterator for SI and SF.
! 	("mov<mode>"): Make "movsi" a define_expand to include SFmode by
! 	means of the SISF iterator and adjust to also handle SFmode.
! 	("*movsf_internal"): Anonymize "movsf"; make it a match-only pattern.
! 	Add conditions to guard from source and destination both being memory
! 	operands.
  
! 2026-02-12  Kwok Cheung Yeung  <kcyeung@baylibre.com>
  
! 	PR middle-end/113436
! 	* omp-low.cc (is_variable_sized): Add extra is_ref argument.  Check
! 	referenced type if true.
! 	(lower_omp_target): Call lower_private_allocate to generate code to
! 	allocate memory for firstprivate/private clauses with allocators, and
! 	insert code after dependent variables have been initialized.
! 	Construct calls to free allocate memory and insert after target block.
! 	Adjust decl values for clause variables.  Copy value of firstprivate
! 	variables to allocated memory.
  
! 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/124062
! 	* ifcvt.cc (noce_try_cond_arith): Check the conditional code
! 	for UNKNOWN.
  
! 2026-02-12  Soumya AR  <soumyaa@nvidia.com>
  
! 	* config/aarch64/aarch64-json-schema.h: Include inherited members for
! 	SVE vector costs.
! 	* config/aarch64/aarch64-json-tunings-parser-generated.inc
! 	(parse_vec_costs_sve): Regenerate.
! 	* config/aarch64/aarch64-json-tunings-parser.cc
! 	(aarch64_load_tuning_params_from_json_string): Clear dispatch scheduling
! 	flag if dispatch_constraints is NULL.
! 	* config/aarch64/aarch64-json-tunings-printer-generated.inc
! 	(serialize_vec_costs_sve): Regenerate.
  
! 2026-02-11  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/121191
! 	* lra-constraints.cc (get_matching_reload_reg_subreg): New.
! 	(get_reload_reg, match_reload): Use it.
  
! 2026-02-11  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/124038
! 	* tree-ssa-math-opts.cc (strip_nop_view_converts): Remove.
! 	(convert_mult_to_fma): Undo stripping.
  
! 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/124056
! 	* cfgexpand.cc (expand_asm_stmt): If after_md_seq is non-NULL, emit
! 	it at the start of after_rtl_seq instead of after fallthru_label.
  
! 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/116600
! 	PR middle-end/123386
! 	* cfgrtl.cc (force_nonfallthru_and_redirect): Don't do any
! 	asm goto adjustments early, only note in asm_goto_edge if
! 	any labels point originally to e->dest head.  After jumpblock
! 	creation don't add an extra edge for asm_goto_edge, instead
! 	adjust those labels pointing to former e->dest head to point
! 	to jumpblock instead.
  
! 2026-02-10  Dimitry Andric  <dimitry@andric.com>
  
! 	PR libfortran/123366
! 	* configure.ac: Move restoring of CXXFLAGS/LDFLAGS for zstd test to
! 	the correct place.
! 	* configure: Regenerate.
  
! 2026-02-10  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	PR target/123624
! 	* config/aarch64/aarch64-protos.h
! 	(aarch64_use_simple_return_insn_p): New.
! 	* config/aarch64/aarch64.cc
! 	(aarch64_use_simple_return_insn_p): New, used...
! 	* config/aarch64/aarch64.md (simple_return): ...here.
  
! 2026-02-10  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config.gcc: Improve aarch64 --with-arch checks.
  
! 2026-02-10  Alfie Richards  <alfie.richards@arm.com>
  
! 	* tree-vect-data-refs.cc (vect_analyze_data_refs_alignment):
! 	Update signature and comment.
! 	* tree-vect-loop.cc (vect_analyze_loop_2): Update comment for
! 	vect_analyze_data_refs_alignment and remove control flow.
! 	* tree-vectorizer.h (vect_analyze_data_refs_alignment): Update
! 	signature.
  
! 2026-02-10  Juergen Christ  <jchrist@linux.ibm.com>
  
! 	PR tree-optimization/122297
! 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Adjust.
! 	(vectorizable_induction): Adjust.
! 	(vectorizable_live_operation_1): Adjust.
! 	(vect_get_loop_len): Provide parameter to select bias-adjusted
! 	length.
! 	(vect_gen_loop_len_mask): Adjust.
! 	(vect_update_ivs_after_vectorizer_for_early_breaks): Adjust.
! 	* tree-vect-stmts.cc (vect_get_strided_load_store_ops): Adjust.
! 	(vectorizable_call): Adjust.
! 	(vectorizable_operation): Adjust.
! 	(vectorizable_store): Adjust.
! 	(vectorizable_load): Adjust.
! 	(vectorizable_condition): Adjust.
! 	* tree-vectorizer.h (vect_get_loop_len): Add parameter.
  
! 2026-02-10  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	* config/aarch64/tuning_models/olympus.h (olympus_sve_vector_cost):
! 	Set align_load_cost to 6.
  
! 2026-02-10  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/107690
! 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Do not merge
! 	possibly analyzable exit conditions.
  
! 2026-02-09  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR diagnostics/124014
! 	* diagnostics/sarif-sink.cc
! 	(sarif_builder::get_logical_location_manager): Reimplement, to
! 	eliminate m_logical_loc_mgr.
! 	(sarif_builder::m_logical_loc_mgr): Drop field.
! 	(sarif_builder::sarif_builder): Update for removed field.
! 	(sarif_builder::set_any_logical_locs_arr): Likewise.
! 	(sarif_builder::ensure_sarif_logical_location_for): Likewise.
! 	(sarif_builder::make_minimal_sarif_logical_location): Likewise.
  
! 2026-02-09  David Faust  <david.faust@oracle.com>
  
! 	PR target/123556
! 	* config/bpf/bpf.h (SLOW_BYTE_ACCESS): Set to 0, update comment.
  
! 2026-02-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/80881
! 	* attribs.cc (handle_dll_attribute): If TARGET_WIN32_TLS is 1,
! 	issue an error if either attribute is set on a TLS variable.
  
! 2026-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR other/123841
! 	PR target/123926
! 	* acinclude.m4 (gcc_GAS_FLAGS): Handle non-Darwin/Solaris as cases
! 	alike on x86 and SPARC.
! 	* configure: Regenerate.
  
! 2026-02-09  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/123796
! 	* lra-int.h (lra_pointer_equiv_set_add): Add prototype.
! 	(lra_pointer_equiv_set_in, lra_finish_equiv): Ditto.
! 	* lra.cc (lra_emit_move): Set up pointer flag of the destination
! 	if necessary.
! 	(lra): Call lra_finish_equiv.
! 	* lra-constraints.cc: Include hash-set.h.
! 	(pointer_equiv_set, lra_pointer_equiv_set_add): New.
! 	(lra_pointer_equiv_set_in, lra_finish_equiv): New.
! 	(get_equiv_with_elimination): Propagate pointer flag by adding to
! 	pointer_equiv_set.
! 	(process_addr_reg, curr_insn_transform): Ditto.
  
! 2026-02-09  Richard Biener  <rguenther@suse.de>
  
! 	* doc/analyzer.texi (State Tracking): Fix typo.
  
! 2026-02-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123225
! 	* tree-vect-loop.cc (vect_analyze_loop_costing): For uncounted
! 	loops reject not trivially profitable loops that have no
! 	estimate on the number of scalar iterations.
  
! 2026-02-09  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/124034
! 	* tree-vect-stmts.cc (process_use): Never force induction
! 	latch defs relevant when doing early break vectorization.
  
! 2026-02-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* doc/invoke.texi (-mconst16/-mno-const16):
! 	Remove the clause "The CONST16 instruction is currently not a
! 	standard option from Tensilica."
  
! 2026-02-09  Martin Jambor  <mjambor@suse.cz>
  
! 	PR tree-optimization/117217
! 	* tree-sra.cc (propagate_subaccesses_from_rhs): Do not propagate
! 	bit-field children.
! 	(propagate_subaccesses_from_lhs): Likewise.
  
! 2026-02-09  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/123911
! 	* config/riscv/riscv.cc (riscv_legitimize_move): Elide nop moves to
! 	avoid infinite recursion.
  
! 2026-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123672
! 	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): Use std::swap
! 	instead of fetching gimple_assign_rhs{1,2} again.  Change type of lanes
! 	vector from auto_vec<unsigned int> to auto_vec<bool> and store true
! 	instead of 1 into it.  Fix comment typo and formatting fix.
! 	(can_blend_vec_perm_simplify_seqs_p): Put end of comment on the same
! 	line as the last sentence in it.
! 	(calc_perm_vec_perm_simplify_seqs): Change lane_assignment type from
! 	auto_vec<int> to auto_vec<unsigned> and store 2 + l_orig into it
! 	instead of true.  Fix comment typo and formatting fix.  Set use_seq1
! 	to line_assignment[i] < 2 instead of line_assignment[i] != 2.  Replace
! 	bogus computation of index for !use_seq with using
! 	line_assignment[i] - 2.  Set l1 to l1 % nelts and similarly for l2.
  
! 2026-02-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	* optabs.cc (expand_vec_perm_const): Comment spelling fix,
! 	permuation -> permutation.
! 	* config/arm/arm.cc (arm_evpc_neon_vtbl): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_try_expand_lsx_vshuf_const):
! 	Comment spelling fix, permuatation -> permutation.
! 	(loongarch_is_elem_duplicate): Likewise.  Comment spelling fix,
! 	permuation -> permutation.
  
! 2026-02-07  Richard Biener  <rguenther@suse.de>
  
! 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
! 	Remove double and triple accounting of GPR -> XMM moves
! 	in construction of AVX and AVX512 vectors.
  
! 2026-02-07  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* cse.cc (invalidate_from_sets_and_clobbers): Consider any hard
! 	register referred to by any single register constraint
! 	potentially being clobbered.
  
! 2026-02-07  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR middle-end/123826
! 	PR tree-optimization/123958
! 	PR c++/124002
! 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
! 	Delete code that (mis)handled conversion of pow(x,2.0) to x*x.
  
! 2026-02-07  Roger Sayle  <roger@nextmovesoftware.com>
! 	    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 	    Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR rtl-optimization/123833
! 	* recog.cc (cancel_changes): Update the recog_data cache if it
! 	holds the instruction being changed.
  
! 2026-02-06  Richard Ball  <Richard.Ball@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc
! 	(enum aarch64_builtins): Add ptr and generic variants.
! 	(aarch64_init_pcdphint_builtins): Likewise.
! 	(aarch64_general_expand_builtin): Add ptr variant.
! 	(aarch64_resolve_overloaded_builtin_stshh): Function to handle
! 	overloaded atomic_store_with_stshh.
! 	(aarch64_resolve_overloaded_builtin_general): Add call to stshh function.
! 	* config/aarch64/aarch64-c.cc
! 	(aarch64_resolve_overloaded_builtin): Allow fndecl to return.
! 	* config/aarch64/arm_acle.h
! 	(__atomic_store_with_stshh): Remove __Generic.
  
! 2026-02-06  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/106260
! 	* ipa-cp.cc (initialize_node_lattices): Replace assert that there are
! 	callers with handling that situation when -fno-toplevel_reorder.
  
! 2026-02-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into
! 	AC_ARG_WITH(gnu-ld).
! 	(gcc_cv_ld): Set before gnu_ld_flag.
! 	(gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld).
! 	(gcc_cv_as): Set before gas_flag.
! 	* configure: Regenerate.
  
! 2026-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/101312
! 	* alias.cc (get_alias_set): Allow TYPE_CANONICAL (mv) to be
! 	not its own TYPE_MAIN_VARIANT, as long as its TYPE_MAIN_VARIANT
! 	has TYPE_CANONICAL equal to itself.
! 	* tree.cc (verify_type): Likewise.
  
! 2026-02-06  Daniel Barboza  <daniel.barboza@oss.qualcomm.com>
  
! 	PR tree-optimization/114969
! 	* match.pd (`(A | (convert?)(A != 0)) EQ|NE 0`): New pattern.
  
! 2026-02-06  Andrew Stubbs  <ams@baylibre.com>
  
! 	* config/gcn/gcn-valu.md (*mov<mode>_exec_match): Delete.
! 	(*mov<mode>_exec_match): Likewise.
! 	(*mov<mode>): Delete unaligned register support, and convert to new
! 	constraint syntax.
! 	(mov<mode>_exec): Likewise.
! 	(@mov<mode>_sgprbase): Likewise.
! 	* config/gcn/gcn.md (*movbi): Likewise.
  
! 2026-02-06  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/114274
! 	* tree-switch-conversion.cc (switch_conversion::build_one_array):
! 	Use UNKNOWN_LOCATION for the CSWTCH decl.
  
! 2026-02-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/123977
! 	* tree.cc (build_function_type): Pass no_named_args_stdarg_p
! 	as last argument to recursive call.
  
! 2026-02-06  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123940
! 	* tree-ssa-math-opts.cc (convert_mult_to_fma): Check
! 	multiplication result is an addend.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* attribs.cc: Replace CONST_CAST with const_cast<>.
! 	* builtins.cc: Likewise.
! 	* collect2.cc: Likewise.
! 	* config/bpf/core-builtins.cc: Likewise.
! 	* config/gcn/mkoffload.cc: Likewise.
! 	* config/nvptx/mkoffload.cc: Likewise.
! 	* config/nvptx/nvptx.cc: Likewise.
! 	* ctfc.cc: Likewise.
! 	* dumpfile.cc: Likewise.
! 	* gcc.cc: Likewise.
! 	* gcov.cc: Likewise.
! 	* gengtype-parse.cc: Likewise.
! 	* gengtype-state.cc: Likewise.
! 	* gengtype.cc: Likewise.
! 	* genoutput.cc: Likewise.
! 	* ggc-page.cc: Likewise.
! 	* godump.cc: Likewise.
! 	* lto-section-in.cc: Likewise.
! 	* lto-wrapper.cc: Likewise.
! 	* omp-offload.cc: Likewise.
! 	* passes.cc: Likewise.
! 	* plugin.cc: Likewise.
! 	* prefix.cc: Likewise.
! 	* pretty-print.cc: Likewise.
! 	* selftest.cc: Likewise.
! 	* statistics.cc: Likewise.
! 	* stringpool.cc: Likewise.
! 	* tree.h: Likewise.
! 	* tree-profile.cc: Likewise.
! 	* vec.h: Likewise.
! 	* system.h (CONST_CAST2): Remove.
! 	(CONST_CAST): Likewise.
! 	* tsystem.h (CONST_CAST2): Remove.
! 	(CONST_CAST): Likewise.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* tree.h: Replace CONST_CAST2 with const_cast<>.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* attribs.cc: Replace CONST_CAST_TREE with const_cast<tree>.
! 	* config/aarch64/aarch64.cc: Likewise.
! 	* config/arm/arm.cc: Likewise.
! 	* config/darwin.cc: Likewise.
! 	* fold-const.cc: Likewise.
! 	* gimple-expr.cc: Likewise.
! 	* print-rtl.cc: Likewise.
! 	* tree-object-size.cc: Likewise.
! 	* tree.cc: Likewise.
! 	* varasm.cc: Likewise.
! 	* tree.h: Likewise.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* gimple.h: Replace CONST_CAST_GIMPLE with const_cast<gimple *>.
! 	* system.h (CONST_CAST_GIMPLE): Remove.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* system.h: Remove.
! 	* tracer.cc: Replace CONST_CAST_BB with
! 	const_cast<basic_block>.
! 	* tree-cfg.cc: Likewise.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* alias.cc: Replace CONST_CAST_RTX with const_cast<rtx>.
! 	* config/i386/x86-tune-sched-bd.cc: Likewise.
! 	* config/rs6000/rs6000.cc: Likewise.
! 	* recog.cc: Likewise.
! 	* sel-sched-ir.cc: Likewise.
! 	* var-tracking.cc: Likewise.
! 	* varasm.cc: Likewise.
! 	* system.h (CONST_CAST_RTX): Remove.
  
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* config/aarch64/aarch64.cc: Replace CONST_CAST_RTX_INSN with
! 	const_cast<struct rtx_insn *>.
! 	* rtlanal.cc: Likewise.
! 	* sched-deps.cc: Likewise.
! 	* system.h (CONST_CAST_RTX_INSN): Remove.
  
! 2026-02-05  David Malcolm  <dmalcolm@redhat.com>
  
! 	* value-range.cc (irange_bitmask::irange_bitmask): Fix typo in
! 	comment.
! 	* value-range.h (class vrange): Update leading comment to refer
! 	to "subsets" rather than "ranges".  Allude to the available
! 	subclasses.  Warn that the classes can be over-approximations and
! 	thus can introduce imprecision.
! 	(class irange_bitmask): Updating leading comment to refer to
! 	knowledge about a "value", rather than a "range".  Reword
! 	description of MASK and VALUE to clarify implementation, and
! 	add an example.
! 	(class irange): Update leading comment to refer to a
! 	"subset of possible values" rather than a "range", and
! 	that subclasses have responsibility for storage.
! 	(class nan_state): Rewrite leading comment.
! 	(class frange final): Update leading comment to refer to
! 	subsets of possible values, rather than ranges, and to
! 	consistently use "Nan" when capitalizing.
  
! 2026-02-05  Michal Jires  <mjires@suse.cz>
  
! 	PR testsuite/123559
! 	* cgraphunit.cc (check_global_declaration): Suppress OPT_Wunused.
  
! 2026-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	Revert:
! 	2026-01-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/101312
! 	* langhooks.h (struct lang_hooks_for_types): Remove
! 	copy_lang_qualifiers.  Add build_lang_qualified_type.
! 	* langhooks.cc (lhd_build_lang_qualified_type): New function.
! 	* langhooks-def.h (lhd_build_lang_qualified_type): Declare.
! 	(LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove.
! 	(LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add.
! 	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use
! 	LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of
! 	LANG_HOOKS_COPY_LANG_QUALIFIERS.
! 	* attribs.cc (build_type_attribute_qual_variant): Use
! 	lang_hooks.types.build_lang_qualified_type instead of
! 	build_qualified_type and/or build_qualified_type with
! 	optional lang_hooks.types.copy_lang_qualifiers call.
! 	(attr_access::array_as_string): Use "array " attribute instead of
! 	"array".  If attribute has been created or intended quals differ
! 	from quals of build_array_type, use copy_node and adjust quals and
! 	attributes on the copy, print and then ggc_free.
  
! 2026-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123986
! 	* tree-vect-slp.cc (vect_slp_analyze_operations): When
! 	rolling back analyzed nodes, release node specific data
! 	and reset SLP_TREE_TYPE.
  
! 2026-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123983
! 	* tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
! 	Only update the PHI argument on the requested edge.
  
! 2026-02-05  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/123604
! 	* compare-elim.cc (find_flags_uses_in_insn): Handle COND_EXEC.
! 	* config/arm/arm.cc (TARGET_FLAGS_REGNUM): Define.
  
! 2026-02-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123978
! 	* range-op.h (OP_WIDEN_MULT_SIGNED_UNSIGNED): Define.
! 	(OP_WIDEN_PLUS_SIGNED, OP_WIDEN_PLUS_UNSIGNED,
! 	RANGE_OP_TABLE_SIZE): Renumber.
! 	* gimple-range-op.cc (imple_range_op_handler::maybe_non_standard):
! 	Use 3 different classes instead of 2 for WIDEN_MULT_EXPR, one
! 	for both operands signed, one for both operands unsigned and
! 	one for operands with different signedness.  In the last case
! 	canonicalize to first operand signed second unsigned.
! 	* range-op.cc (operator_widen_mult_signed::wi_fold): Use
! 	TYPE_PRECISION (type) rather than wi::get_precision (whatever) * 2,
! 	use SIGNED for all wide_int::from calls.
! 	(operator_widen_mult_unsigned::wi_fold): Similarly but use UNSIGNED
! 	for all wide_int::from calls.
! 	(class operator_widen_mult_signed_unsigned): New type.
! 	(operator_widen_mult_signed_unsigned::wi_fold): Define.
  
! 2026-02-05  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/123226
! 	* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Fix handling
! 	of multi-target speculations resolved at clone materialization time
  
! 2026-02-05  xiezhiheng  <xiezhiheng@huawei.com>
! 	    liyunfei  <liyunfei33@huawei.com>
  
! 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add hip12 core
! 	* config/aarch64/aarch64-cost-tables.h: Add hip12_extra_costs
! 	* config/aarch64/aarch64-tune.md: Regenerate
! 	* config/aarch64/aarch64.cc: Include hip12 tuning model
! 	* doc/invoke.texi: Document -mcpu=hip12
! 	* config/aarch64/tuning_models/hip12.h: New file.
  
! 2026-02-05  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123870
! 	PR target/123969
! 	* config/riscv/vector.md: Add vlds to "no ratio" for
! 	theadvector.
  
! 2026-02-05  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123971
! 	* config/riscv/riscv.cc (riscv_vector_mode_supported_any_target_p):
! 	Remove TARGET_XTHEADVECTOR.
  
! 2026-02-05  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123925
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor):
! 	Add nop-conversion handling for maybe_ident.
  
! 2026-02-05  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123910
! 	* config/riscv/riscv-string.cc (riscv_expand_block_move):
! 	Remove !xtheadvector guard.
! 	(use_vector_stringop_p): Guard small LMULs.
! 	(check_vectorise_memory_operation): Ditto.
  
! 2026-02-05  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/121726
! 	* tree-sra.cc (build_ref_for_offset): Add force_ref_all
! 	parameter and use ptr_type_node as alias pointer type in
! 	that case.
! 	(build_ref_for_model): Add force_ref_all parameter and
! 	pass it through, forcing build_ref_for_offset.
! 	(generate_subtree_copies): Likewise.
! 	(sra_modify_call_arg): Force ref-all accesses.
  
! 2026-02-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/123898
! 	* tree-ssa-math-opts.cc (strip_nop_view_converts): New.
! 	(convert_mult_to_fma): Use it.
  
! 2026-02-05  Alexandre Oliva  <oliva@adacore.com>
  
! 	* simplify-rtx.cc (negated_ops_p): New.
! 	(simplify_context::simplify_binary_operation_1): Use it.
  
! 2026-02-05  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-opts.h (VR2FPR_COST_UNPROVIDED): Add new
! 	sentinel for unprovided cost.
! 	* config/riscv/riscv-protos.h (get_vr2fr_cost): Add new func
! 	decl.
! 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
! 	Leverage new func to get cost of vr2fpr.
! 	* config/riscv/riscv.cc (riscv_register_move_cost): Ditto.
! 	(get_vr2fr_cost): Add new func to wrap access to the cost
! 	of the vr2fpr.
! 	* config/riscv/riscv.opt: Add new param vr2fpr-cost.
  
! 2026-02-05  Pan Li  <pan2.li@intel.com>
  
! 	* config/riscv/riscv-opts.h (GPR2VR_COST_UNPROVIDED): Depend on
! 	default unprovided value.
! 	(FPR2VR_COST_UNPROVIDED): Ditto.
! 	(VR2GPR_COST_UNPROVIDED): Ditto.
! 	(COST_UNPROVIDED): Add new default unprovided value.
! 	* config/riscv/riscv-protos.h (get_vr2gr_cost): Add new func
! 	decl.
! 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
! 	Leverage new func to get cost of vr2gpr.
! 	* config/riscv/riscv.cc (riscv_register_move_cost): Ditto.
! 	(get_vr2gr_cost): Add new func to wrap access to the cost
! 	of the vr2gpr.
! 	* config/riscv/riscv.opt: Add new param vr2gpr-cost.
  
! 2026-02-04  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/123922
! 	* lra-assigns.cc (lra_split_hard_reg_for): Allocate and free
! 	update_hard_regno_preference_check.  Clear non_reload_pseudos for
! 	successful spilling too.
  
! 2026-02-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR middle-end/121661
! 	* tree-complex.cc (extract_component): Create gimple
! 	assign statements directly rather than call force_gimple_operand_gsi.
  
! 2026-02-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR translation/89915
! 	* doc/params.texi: Copy-edit text throughout the file.
! 	* params.opt: Likewise in documentation strings.
  
! 2026-02-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/123245
! 	PR translation/89915
! 	* doc/invoke.texi (Warning Options): Remove discussion of parameters
! 	from -Winterference-size documentation.
! 	(Static Analyzer Options): Ditto for -Wanalyzer-symbol-too-complex,
! 	the list of things the analyzer has specific knowledge of, and
! 	-fanalyzer-call-summaries.
! 	(Optimize Options): Ditto for -finline-limit and fipa-cp-clone.
! 	(Instrumentation Options): Likewise for -fsanitize=kernel-hwaddress
! 	and -fharden-control-flow-redundancy.
! 	(C++ Compiled Module Interface): Likewise for discussion of limits
! 	on number of open files.
  
! 2026-02-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR target/123245
! 	PR translation/89915
! 	* Makefile.in (TEXI_GCCINT_FILES): Add params.texi.
! 	* doc/gccint.texi (pa): New index.
! 	(Top): Add new Parameters and Parameters Index nodes to menu.
! 	Include params.texi.
! 	(Parameter Index): New.
! 	* doc/invoke.texi (Option Summary): Move --param from Optimization
! 	Options to Developer Options.
! 	(Optimization Options): Move parameter documentation to params.texi.
! 	(Developer Options): Add abbreviated discussion of --param here.
! 	(LoongArch Options): Move parameter documentation to params.texi.
! 	(RISC-V Options): Likewise.
! 	(RS/6000 and PowerPC Options): Likewise.
! 	* doc/params.texi: New file.
  
! 2026-02-04  Yangyu Chen  <cyy@cyyself.name>
  
! 	* config/riscv/riscv-target-attr.cc
! 	(riscv_target_attr_parser::parse_arch): Fix nullptr dereference
! 	when parsing invalid arch string.
  
! 2026-02-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/123818
! 	* tree.cc (simple_cst_equal) <case CONSTRUCTOR>: Return -1 if some
! 	recursive call returns -1.  Also compare indexes.
  
! 2026-02-04  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/122689
! 	* gimple-lower-bitint.cc (gimple_lower_bitint): For the PHI handling
! 	if min_prec == prec, break after emitting assignment from c.
  
! 2026-02-04  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	* params.opt: Change default param value.
  
! 2026-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR other/123841
! 	* acinclude.m4 (gcc_GAS_FLAGS): Check $gas_flag, $gnu_ld_flag
! 	instead of $gas, $gnu_ld.
! 	* configure.ac: Likewise.
! 	(gas_flag): Determine if not already set.
! 	(gnu_ld_flag): Likewise.
! 	(ld_32_opt): Only set after gnu_ld_flag is set.
! 	(ld_64_opt): Likewise.
! 	* configure: Regenerate.
  
! 2026-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR other/123841
! 	* acinclude.m4 (gcc_GAS_FLAGS): Handle Darwin as cases separately.
! 	* configure: Regenerate.
  
! 2026-02-03  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR middle-end/118608
! 	* expr.cc (store_field_updates_msb_p): New helper function that
! 	now also handles BYTES_BIG_ENDIAN targets.
! 	(expand_assignment): Use the above function when deciding to emit
! 	a required sign/zero extension.
! 	* rtlanal.cc (truncated_to_mode): Call targetm.mode_rep_extended
! 	to check whether an explicit TRUNCATE is required (i.e. performs
! 	an extension) on this target.
! 	* config/mips/mips.md (*extenddi_truncate<mode>): Handle all
! 	SUBDI modes, not just SHORT modes.
  
! 2026-02-03  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR middle-end/123826
! 	* tree-ssa-math-opts.cc (gimple_expand_builtin_pow): Add test
! 	for flag_errno_math.
! 	* fold-const-call.cc (fold_const_pow): Reorganize, eliminating
! 	call to real_powi, and letting do_mpfr_arg2 do all the heavy
! 	lifting.
  
! 2026-02-03  Alfie Richards  <alfie.richards@arm.com>
  
! 	PR target/123548
! 	* config/aarch64/aarch64-builtins.cc
! 	(aarch64_builtins): Rename AARCH64_PL<X> to
! 	AARCH64_PREFETCH_PL<X>.
! 	(aarch64_init_prefetch_builtin): Rename to...
! 	(aarch64_init_prefetch_builtins): ...this and change builtin
! 	names.
! 	(AARCH64_INIT_PREFETCH_BUILTIN): Change to not add
! 	"__builtin_aarch64__" prefix and to register builtins.
! 	(handle_arm_acle_h): Add call to aarch64_init_prefetch_builtins.
! 	(aarch64_init_pcdphint_builtins): Move __pldir code to init
! 	prefetch builtins.
! 	(aarch64_general_init_builtins): Remove call to
! 	aarch64_init_prefetch_builtin.
! 	(aarch64_expand_prefetch_builtin): Update names of PL<X>
! 	builtins.`
! 	* config/aarch64/arm_acle.h
! 	(__pld): Remove
! 	(__pli): Likewise.
! 	(__plix): Likewise.
! 	(__pldx): Likewise.
! 	(__pldir): Likewise.
  
! 2026-02-03  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR rtl-optimization/123322
! 	* combine.cc (try_combine): Consider an IF_THEN_ELSE "good" when
! 	evaluating if 4 insn combinations should be tried.
! 	* config/riscv/iterators.md (zero_is_neutral_op): New iterator.
! 	(zero_is_neutral_op_c): Likewise.
! 	(any_shift_rotate): Likewise.
! 	* config/riscv/riscv.cc (riscv_rtx_costs): Recognize the conditional
! 	AND RTL and cost is appropriately.
! 	* config/riscv/zicond.md: Add patterns to rewrite general conditional
! 	move sequences into simpler forms.
  
! 2026-02-03  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
! 	* configure.ac (gcc_cv_header_afunix_h): New test.
! 	(HAVE_AFUNIX_H): New AC_DEFINE.
! 	* diagnostics/sarif-sink.cc: Conditionally include afunix.h
! 	if it's available, else fall back to internal definition.
  
! 2026-02-03  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	PR middle-end/123892
! 	* collect2.cc: Migrate from CONST_CAST2() macro to
! 	const_cast<>() C++ expression.
! 	* config/sparc/driver-sparc.cc: Likewise.
! 	* gcc-ar.cc: Likewise.
! 	* gcc.cc: Likewise.
! 	* toplev.cc: Likewise.
! 	* tree-nested.cc: Likewise.
  
! 2026-02-03  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/123416
! 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining):
! 	Fix typo in condtion for load merging when no callee summary.
  
! 2026-02-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	Revert:
! 	2025-11-08  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/122097
! 	* config/loongarch/loongarch.cc
! 	(loongarch_const_vector_same_bytes_p): Add processing for
! 	floating-point vector data.
  
! 2026-02-03  Xi Ruoyao  <xry111@xry111.site>
  
! 	* config/loongarch/predicates.md (const_vector_neg_fp_operand):
! 	New define_predicate.
! 	(reg_or_vector_neg_fp_operand): New define_predicate.
! 	* config/loongarch/lasx.md (copysign<mode>3): Remove.
! 	(xorsign<mode>3): Remove.
! 	* config/loongarch/lsx.md (copysign<mode>3): Remove.
! 	(@xorsign<mode>3): Remove.
! 	* config/loongarch/simd.md (copysign<mode>3): New define_expand.
! 	(@xorsign<mode>3): New define_expand.
! 	(and<mode>3): Only allow IVEC instead of ALLVEC.
! 	(ior<mode>3): Likewise.
! 	(xor<mode>3): Likewise.
! 	* config/loongarch/loongarch.cc (loongarch_print_operand): No
! 	longer allow floating-point vector constants for %V.
! 	(loongarch_const_vector_bitimm_set_p): Always return false for
! 	floating-point vector constants.
! 	(loongarch_build_signbit_mask): Factor out force_reg.
! 	(loongarch_emit_swrsqrtsf): Use integer vector mode instead of
! 	floating-point vector mode when masking zero inputs.
  
! 2026-02-02  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR diagnostics/110522
! 	* gcc.cc (driver_handle_option): Use
! 	get_diagnostic_file_output_basename for
! 	OPT_fdiagnostics_format_.
! 	* opts-diagnostic.cc (get_base_filename): Likewise.
! 	(get_diagnostic_file_output_basename): New.
! 	* opts-diagnostic.h (get_diagnostic_file_output_basename): New
! 	decl.
! 	* opts.cc (maybe_prepend_dump_dir_name): New, based on code in
! 	finish_options.
! 	(finish_options): Move code for determining prepended
! 	dump_base_name to maybe_prepend_dump_dir_name and call it.
! 	(common_handle_option): Use get_diagnostic_file_output_basename
! 	for OPT_fdiagnostics_format_.
! 	* opts.h (maybe_prepend_dump_dir_name): New decl.
  
! 2026-02-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/123294
! 	* ifcvt.cc (noce_emit_store_flag): Reject modes
! 	greater than MAX_FIXED_MODE_SIZE.
  
! 2026-02-02  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/123897
! 	* tree-ssa-math-opts.cc (convert_mult_to_fma_1): Use type of variable
! 	being folded.
  
! 2026-02-02  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/121290
! 	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
! 	Remove else.
  
! 2026-02-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/121104
! 	* tree-ssa-math-opts.cc (match_uaddc_usubc): Punt if
! 	lhs of ovf1 or ovf2 doesn't have element type compatible with type.
  
! 2026-02-01  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123755
! 	* tree-vect-stmts.cc (vectorizable_call): Adjust len-masking
! 	condition.  Simplify code generation.
  
! 2026-01-31  Keith Packard  <keithp@keithp.com>
  
! 	* config/picolibc-spec.h (LIBC_LINK_SPEC): Use find-file for test
! 	and access to picolibc.ld.
  
! 2026-01-31  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123887
! 	* match.pd ((a ? x : y) !=/== (b ? x : y)): Make sure
! 	x and y have no side-effects before evaluating them
! 	unconditionally.
  
! 2026-01-31  Gerald Pfeifer  <gerald@pfeifer.com>
  
! 	* doc/install.texi (Binaries): Switch delorie.com to https.
  
! 2026-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123887
! 	* match.pd ((zero_one ==/!= 0) ? .. z <op> y .. -> zero_one * z ..):
! 	Check evaluating z unconditionally has no side-effects, like
! 	trapping.
  
! 2026-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/123886
! 	* dwarf2out.cc (sym_off_pair::sym): Remove GTY((skip)).
  
! 2026-01-30  Michal Jires  <mjires@suse.cz>
  
! 	* doc/extend.texi: Mention flto-toplevel-asm-heuristics.
! 	* doc/invoke.texi: Add flto-toplevel-asm-heuristics.
  
! 2026-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/110885
! 	* dwarf2out.cc (generate_skeleton_bottom_up): Generate the
! 	skeleton ancestor tree when moving a new child to the parent
! 	even for template instantiations.
  
! 2026-01-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123864
! 	* match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
! 	x > stype_max / cst || x < stype_min / cst): Only check
! 	integer_minus_onep for signed types.
  
! 2026-01-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/123790
! 	* fold-const.cc (fold_convert_const): Handle conversion of
! 	integer_zerop to NULLPTR_TYPE.
! 	(fold_convert_loc): Likewise.
  
! 2026-01-30  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR gcov-profile/123855
! 	* path-coverage.cc (flush_on_edges): Only look up SSA name def
! 	stmt when counter is non-const.
  
! 2026-01-30  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* gcov-dump.cc (tag_paths): New function.
  
! 2026-01-30  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* common.opt: ftest-coverage enabled by fpath-coverage or
! 	fcondition-coverage
  
! 2026-01-30  Jørgen Kvalsvik  <j@lambda.is>
  
! 	* gcov-dump.cc (tag_conditions):  Read position before blocks,
! 	terms.
  
! 2026-01-30  Jørgen Kvalsvik  <j@lambda.is>
  
! 	PR gcov-profile/121084
! 	PR gcov-profile/121123
! 	PR gcov-profile/121409
! 	* profile.cc (branch_prob): Record seen_locations without
! 	discriminators.
  
! 2026-01-30  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123876
! 	* omp-low.cc (diagnose_sb_2): Handle GIMPLE_ASM.
  
! 2026-01-30  Alex Coplan  <alex.coplan@arm.com>
  
! 	PR target/123206
! 	* config/aarch64/aarch64-builtins.cc (struct aarch64_pragma_builtins_data):
! 	Declare array as CONSTEXPR.
! 	* config/aarch64/aarch64-simd-pragma-builtins.def: Update
! 	incorrect uses of TARGET_SIMD to use AARCH64_FL_SIMD instead.
  
! 2026-01-30  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/109410
! 	* tree-ssa-reassoc.cc (build_and_add_sum): Use
! 	gsi_start_nondebug_after_labels_bb to look for a possible
! 	returns-twice call.
  
! 2026-01-30  Iain Buclaw  <ibuclaw@gdcproject.org>
  
! 	* config/darwin-d.cc (darwin_d_os_builtins): Add Apple.
  
! 2026-01-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/122170
! 	* ifcvt.cc (noce_can_force_operand): Don't only check if
! 	there is an optab for the code check the entry for the
! 	mode is non-null. Handle non integral div by checking
! 	optab like force_operand does.
  
! 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	* config/loongarch/loongarch-ftypes.def: Remove unused type.
  
! 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/123766
! 	* config/loongarch/loongarch-builtins.cc
! 	(loongarch_build_vpointer_type): New function.  Return a type
! 	for 'volatile void *'.
! 	(LARCH_ATYPE_VPOINTER): New macro.
! 	* config/loongarch/loongarch-ftypes.def: Change the pointer
! 	type of the store class function from CVPOINTER to VPOINTER.
  
! 2026-01-30  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/123807
! 	* config/loongarch/loongarch.cc
! 	(loongarch_expand_vector_init_same): When same is MEM and
! 	GET_MODE(same) != imode, first load the data from memory
! 	and then process it further.
  
! 2026-01-30  mengqinggang  <mengqinggang@loongson.cn>
  
! 	* config/loongarch/loongarch.md: Delete movsf TARGET_HARD_FLOAT
! 	condition.
  
! 2026-01-29  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR middle-end/123869
! 	* optabs.cc (expand_unop): Move the NEG optab
! 	handling before the widening code.
! 	Move the ABS bitwise expansion from expand_abs_nojump
! 	to before the widening code.
! 	(expand_abs_nojump): Remove the bitwise expansion trial
! 	since expand_unop is called right above.
  
! 2026-01-29  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	* expr.cc (emit_group_load_1): Don't call force_reg if orig_src
! 	is already a CONCAT.
  
! 2026-01-29  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/options.texi (Options): Point to the "user experience"
! 	documentation.
! 	* doc/ux.texi (Guidelines for Options): Add some.
  
! 2026-01-29  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123806
! 	* config/riscv/riscv-string.cc (expand_rawmemchr): Use unified
! 	vl_read.
! 	(expand_strcmp): Ditto.
! 	* config/riscv/riscv-vector-builtins-bases.cc:
! 	* config/riscv/riscv-vector-builtins.cc (function_expander::use_fof_load_insn):
! 	Only emit the store and not the VL read.
! 	* config/riscv/riscv-vsetvl.cc (get_fof_set_vl_reg): New
! 	function.
! 	(init_rtl_ssa): New wrapper.
! 	(finish_rtl_ssa): Ditto.
! 	(emit_fof_read_vls): Emit read_vl after each fault-only-first
! 	load.
! 	(pass_vsetvl::simple_vsetvl): Call emit_fof_read_vls ().
! 	(pass_vsetvl::lazy_vsetvl): Ditto.
! 	* config/riscv/vector-iterators.md: Add read_vl unspec.
! 	* config/riscv/vector.md (read_vlsi): Unify.
! 	(@read_vl<mode>): Ditto.
! 	(read_vldi_zero_extend): Ditto.
! 	(@pred_fault_load_set_vl<V_VLS:mode><P:mode>): New FoF variant
! 	that saves VL in a register.
! 	(@pred_fault_load_set_vl<VT:mode><P:mode>): Ditto.
  
! 2026-01-29  Filip Kastl  <fkastl@suse.cz>
  
! 	* gimple-ssa-pta-constraints.cc (make_param_constraints): Adjust
! 	comment: The function only creates varinfos for the parameters,
! 	the return value and the static chain.
  
! 2026-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/122537
! 	* tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): Register
! 	may_be_zero condition when the IV may overflow.
  
! 2026-01-29  Sangamesh Mallayya  <swamy.sangamesh@gmail.com>
  
! 	* diagnostics/sarif-sink.cc: Move config.h at the begining.
  
! 2026-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123596
! 	* tree-eh.cc (sink_clobbers): Create a virtual PHI when
! 	one is required but not present, queuing arguments
! 	for renaming.
  
! 2026-01-29  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/116747
! 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Avoid
! 	duplicate stmts in the set of store pairs to process.
  
! 2026-01-28  Uros Bizjak  <ubizjak@gmail.com>
  
! 	PR target/36503
! 	* config/i386/i386.md (*<insn:any_shift><mode:SWI48>3_sub):
! 	Also allow operands[3] & (<mode_bitsize>-1) == (<mode_bitsize>-1)
! 	in insn condition. Emit NOT RTX instead of NEG RTX in this case.
! 	(*<insn:any_shift><mode:SWI48>3_sub_1): Ditto.
  
! 2026-01-28  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123824
! 	* config/riscv/riscv.cc (riscv_vls_mode_fits_in_gprs_p): New
! 	helper.
! 	(riscv_pass_vls_aggregate_in_gpr): Use helper and distribute
! 	half-fitting vector to GPR and stack.
! 	(riscv_pass_aggregate_in_vr): Reformat comment.
! 	(riscv_get_arg_info): Use helper.
! 	(riscv_pass_by_reference): Ditto.
  
! 2026-01-28  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/121571
! 	* lra-constraints.cc (process_alt_operands): Reprocess asm insn
! 	when there are no enough regs for the asm-insn.
  
! 2026-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123575
! 	* match.pd (abs ((T)x) -> absu (x)): For vector type
! 	arguments require the resulting operation is supported.
  
! 2026-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/111036
! 	* match.pd (__builtin_constant_p ((T)x)): Strip nop-conversions
! 	from __builtin_constant_p arguments.
  
! 2026-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR rtl-optimization/106859
! 	* var-tracking.cc (val_store): Dump -1 as UID if setting_insn
! 	is NULL.
  
! 2026-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123537
! 	* match.pd (REDUC (@0 & @1) -> @0[I] & @1[I]): Restrict
! 	allowed conversions.
  
! 2026-01-28  Karl Meakin  <karl.meakin@arm.com>
  
! 	* doc/invoke.texi: Document `+sve-bfscale` flag.
! 	* config/aarch64/aarch64.h (TARGET_SVE_BFSCALE): New macro.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
! 	Define `__AARCH64_FEATURE_SVE_BFSCALE`.
! 	* config/aarch64/aarch64-sve-builtins-base.cc: Skip constant
! 	folding for floating-point or unpredicated multiplications.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def: New `SVE_FUNCTION`s.
! 	* config/aarch64/aarch64-sve.md: Modify insns for
! 	`SVE_COND_FP_BINARY_INT` to handle BF16 modes.
! 	* config/aarch64/aarch64-sve2.md
! 	(@aarch64_sve_<optab><mode>, @aarch64_sve_<optab><mode>_single): New insn for `BFSCALE`.
! 	Modify insns for `UNSPEC_FSCALE` to handle BF16 modes.
! 	* config/aarch64/iterators.md (SVE_FULL_F_SCALAR): Add `VNx8BF` to iterator.
! 	(SVE_FULL_F_BFSCALE): New iterator.
! 	(SVE_Fx24_BFSCALE): New iterator.
! 	(SVE_BFx24): New iterator.
! 	(UNSPEC_FMUL): New unspec.
! 	(V_INT_EQUIV): Add entries for BF16 modes.
! 	(b): Add entries for scalar float modes.
! 	(is_bf16): Add entries for BF16 modes and reformat.
! 	(SVSCALE_SINGLE_INTARG): Likewise.
! 	(SVSCALE_INTARG): Likewise.
! 	(SVE_FP_MULL): New iterator.
  
! 2026-01-28  Pengfei Li  <Pengfei.Li2@arm.com>
  
! 	PR middle-end/123447
! 	* expr.cc (expand_expr_real_1): Increase stack slot alignment
! 	for STRICT_ALIGNMENT targets.
  
! 2026-01-28  Andre Vieira  <andre.simoesdiasvieira@arm.com>
  
! 	PR target/123016
! 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): use
! 	'build_truth_vector_type_for_mode' to reconstruct mask's vectype for
! 	non-scalar masks.
  
! 2026-01-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/101312
! 	* langhooks.h (struct lang_hooks_for_types): Remove
! 	copy_lang_qualifiers.  Add build_lang_qualified_type.
! 	* langhooks.cc (lhd_build_lang_qualified_type): New function.
! 	* langhooks-def.h (lhd_build_lang_qualified_type): Declare.
! 	(LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove.
! 	(LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add.
! 	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use
! 	LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of
! 	LANG_HOOKS_COPY_LANG_QUALIFIERS.
! 	* attribs.cc (build_type_attribute_qual_variant): Use
! 	lang_hooks.types.build_lang_qualified_type instead of
! 	build_qualified_type and/or build_qualified_type with
! 	optional lang_hooks.types.copy_lang_qualifiers call.
! 	(attr_access::array_as_string): Use "array " attribute instead of
! 	"array".  If attribute has been created or intended quals differ
! 	from quals of build_array_type, use copy_node and adjust quals and
! 	attributes on the copy, print and then ggc_free.
  
! 2026-01-28  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/123837
! 	* ipa-free-lang-data.cc (find_decls_types_r): Remove C++ annotations
! 	from {DECL,TYPE}_ATRIBUTES.
  
! 2026-01-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123849
! 	* gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
! 	DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE like DEMANGLE_COMPONENT_BUILTIN_TYPE.
  
! 2026-01-28  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/110043
! 	* pointer-query.cc (get_offset_range): Fail for integer
! 	types with precision larger than ptrdiff_type_node.
  
! 2026-01-28  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	PR target/123779
! 	* config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2):
! 	Rename to ...
! 	(*sse4_1_<code>v8qiv8hi2_2): ... this, and drop mask conditions.
! 	(*avx2_<code>v8qiv8si2<mask_name>_2): Rename to ...
! 	(*avx2_<code>v8qiv8si2_2): ... this, and likewise.
! 	(*sse4_1_<code>v4qiv4si2<mask_name>_2): Rename to ...
! 	(*sse4_1_<code>v4qiv4si2_2): ... this, and likewise.
! 	(*sse4_1_<code>v4hiv4si2<mask_name>_2): Rename to ...
! 	(*sse4_1_<code>v4hiv4si2_2): ... this, and likewise.
! 	(*avx2_<code>v4qiv4di2<mask_name>_2): Rename to ...
! 	(*avx2_<code>v4qiv4di2_2): ... this, and likewise.
! 	(*avx2_<code>v4hiv4di2<mask_name>_2): Rename to ...
! 	(*avx2_<code>v4hiv4di2_2): ... this, and likewise.
! 	(*sse4_1_<code>v2hiv2di2<mask_name>_2): Rename to ...
! 	(*sse4_1_<code>v2hiv2di2_2): ... this, and likewise.
! 	(*sse4_1_<code>v2siv2di2<mask_name>_2): Rename to ...
! 	(*sse4_1_<code>v2siv2di2_2): ... this, and likewise.
! 	(*avx512f_<code>v8qiv8di2<mask_name>_2): Rename to ...
! 	(*avx512f_<code>v8qiv8di2_2): ... this.
! 	(*avx512vl_<code>v8qiv8hi2_mask_2): New define_insn_and_split.
! 	(*avx512vl_<code>v8qiv8si2_mask_2): Likewise.
! 	(*avx512vl_<code>v4qiv4si2_mask_2): Likewise.
! 	(*avx512vl_<code>v4hiv4si2_mask_2): Likewise.
! 	(*avx512f_<code>v8qiv8di2_mask_2): Likewise.
! 	(*avx512vl_<code>v4qiv4di2_mask_2): Likewise.
! 	(*avx512vl_<code>v4hiv4di2_mask_2): Likewise.
! 	(*avx512vl_<code>v2hiv2di2_mask_2): Likewise.
! 	(*avx512vl_<code>v2siv2di2_mask_2): Likewise.
  
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
  
! 	* doc/invoke.texi: Document -fcontracts-client-check= and
! 	-fcontracts-definition-check=.
  
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
  
! 	* doc/invoke.texi: Document -fcontract-checks-outlined and
! 	-fcontract-disable-optimized-checks.
  
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* tree-core.h (struct tree_base): Update tree flag usage comment.
  
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* tree.h (CONST_WRAPPER_P): New.
  
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* doc/invoke.texi: Document -fcontracts-conservative-ipa.
  
! 2026-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Nina Ranns  <dinka.ranns@gmail.com>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
  
! 	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add cases for contract
! 	constant data that need to be in independent link-time 'atoms'.
! 	* doc/invoke.texi: Document -fcontracts and
! 	-fcontract-evaluation-semantic=.
  
! 2026-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Nina Ranns  <dinka.ranns@gmail.com>
  
! 	* doc/invoke.texi: Remove documentation of contracts options.
  
! 2026-01-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR other/123841
! 	* acinclude.m4 (gcc_GAS_FLAGS) <i?86-*-* | x86_64-*-*>: Set
! 	gcc_cv_as_flags irrespective of $gas_flag.
  	* configure: Regenerate.
  
! 2026-01-27  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/122623
! 	* doc/invoke.texi (-fanalyzer-assume-nothrow): New option.
  
! 2026-01-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR middle-end/97898
! 	* omp-expand.cc (expand_omp_for_static_chunk): Don't
! 	conditionalize the call to force_gimple_operand_gsi on DECL_P/TREE_ADDRESSABLE
! 	but rather pass that as the 3rd argument.
  
! 2026-01-27  Jan Hubicka  <hubicka@ucw.cz>
  
! 	PR ipa/123619
! 	* ipa-polymorphic-call.cc
! 	(ipa_polymorphic_call_context::possible_dynamic_type_change): Remove impossible
! 	speuculation.
  
! 2026-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (ld_32_opt, ld_64_opt): Set.
! 	(ld_ix86_gld_32_opt): Replace by ld_32_opt.
! 	(ld_ix86_gld_64_opt): Replace by ld_64_opt.
! 	Replace -melf_x86_64 by ld_64_opt.
! 	* configure: Regenerate.
  
! 2026-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* acinclude.m4 (gcc_cv_as_flags) Provide Solaris settings.
! 	Apply Linux/x86 gas settings on all x86 gas targets, too.
! 	(as_32_opt, as_64_opt): Set on all x86 gas targets.
! 	* configure.ac: Consistenly use as_32_opt, as_64_opt instead of
! 	as_ix86_gas_{32,64}_opt or hardcoded --64.
! 	<sparc*-*-*>: Simplify setting TLS test code.
! 	* configure: Regenerate.
  
! 2026-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (fw_as_opt): Set.
! 	Replace --fatal-warnings by $fw_as_opt.
! 	(tls_as_opt): Remove --fatal-warnings.
! 	(gcc_cv_as_tls): Use $fw_as_opt.
! 	* configure: Regenerate.
  
! 2026-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR ipa/116296
! 	* ipa-modref-tree.cc (modref_access_node::contains): Use
! 	poly_offset_int for the param offset difference and the
! 	overlap computation.
  
! 2026-01-27  Richard Biener  <rguenther@suse.de>
  
! 	PR debug/123376
! 	* dwarf2out.cc (tree_add_const_value_attribute): Walk all
! 	initializers for early mangling of referenced decls.
! 	(mangle_referenced_decls): Also walk subtrees of CONSTRUCTORS.
  
! 2026-01-27  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123799
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Pun
! 	conversion element type with integer type.
  
! 2026-01-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/123791
! 	* config/aarch64/aarch64.cc (aarch64_cannot_force_const_mem):
! 	Always return true for symbols and labels except for large model.
! 	(aarch64_select_rtx_section): Force .rodata for constants only.
  
! 2026-01-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/123792
! 	* config/aarch64/aarch64.md (aarch64_<optab>_reg_minus<mode>3):
! 	Add support for invert in shift count.
  
! 2026-01-27  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (gcn): Require Newlib 4.6.0+, replacing 4.3.0+
! 	requirement with long list of recommended fixes up to post-4.5.0.
  
! 2026-01-27  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122749
! 	* tree-ssa-math-opts.cc (convert_mult_to_fma_1, convert_mult_to_fma):
! 	Unwrap converts around addend.
  
! 2026-01-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123820
! 	* gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Use
! 	the correct type for the stride (lhs if non-pointer).
  
! 2026-01-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR middle-end/123709
! 	* final.cc (output_asm_operand_names): Skip over
! 	opnum which is MAX_RECOG_OPERANDS (invalid).
! 	(output_asm_insn): Increase opoutput and oporder size
! 	by 1. For out of range operands, set the opnum to
! 	MAX_RECOG_OPERANDS.
  
! 2026-01-26  Filip Kastl  <fkastl@suse.cz>
  
! 	* doc/invoke.texi: Document --param auto-profile-reorder-only.
! 	* params.opt: Fix spelling.
  
! 2026-01-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/122474
! 	* tree-vectorizer.h (vect_reduc_info_s::neutral_op): New.
! 	(VECT_REDUC_INFO_NEUTRAL_OP): New.
! 	* tree-vect-loop.cc (vectorizable_reduction): Adjust condition
! 	guarding the check for .VEC_SHL_INSERT.
  
! 2026-01-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123755
! 	* tree-vect-stmts.cc (vectorizable_call): Fixup LEN masking
! 	of unconditional but possibly trapping calls.
  
! 2026-01-26  Victor Do Nascimento  <victor.donascimento@arm.com>
  
! 	PR tree-optimization/123657
! 	* tree-vect-loop.cc (vect_analyze_loop_form): Add
! 	chrec_dont_know check.
  
! 2026-01-26  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123794
! 	* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Unlink
! 	VOPs for all calls.
  
! 2026-01-26  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	PR tree-optimization/123628
! 	* tree-if-conv.cc (if_convertible_simdclone_stmt_p): New.
! 	(if_convertible_stmt_p, predicate_statements): Use it.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* gcc-urlifier.cc (test_gcc_urlifier): Match either positive
! 	or negative option URLS.
  
! 2026-01-25  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR middle-end/122348
! 	* expr.cc (store_constructor): Ignore fields where DECL_SIZE
! 	is NULL_TREE, i.e. flexible array members.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* common.opt.urls: Regenerated.
! 	* config/alpha/alpha.opt.urls: Regenerated.
! 	* config/arc/arc.opt.urls: Regenerated.
! 	* config/arm/arm.opt.urls: Regenerated.
! 	* config/avr/avr.opt.urls: Regenerated.
! 	* config/bpf/bpf.opt.urls: Regenerated.
! 	* config/cris/cris.opt.urls: Regenerated.
! 	* config/lynx.opt.urls: Regenerated.
! 	* config/m68k/m68k.opt.urls: Regenerated.
! 	* config/mcore/mcore.opt.urls: Regenerated.
! 	* config/mingw/cygming.opt.urls: Regenerated.
! 	* config/mips/mips.opt.urls: Regenerated.
! 	* config/mips/sde.opt.urls: Regenerated.
! 	* config/mmix/mmix.opt.urls: Regenerated.
! 	* config/nvptx/nvptx.opt.urls: Regenerated.
! 	* config/rs6000/linux64.opt.urls: Regenerated.
! 	* config/rs6000/rs6000.opt.urls: Regenerated.
! 	* config/rs6000/sysv4.opt.urls: Regenerated.
! 	* config/sh/sh.opt.urls: Regenerated.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* doc/invoke.texi (Option Summary): Fix whitespace in @gccoptlist
! 	tables.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/cppopts.texi: Add missing @opindex entries for
! 	-fno-* options.
! 	* doc/invoke.texi: Likewise.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/cppwarnopts.texi: Add missing @opindex entries for
! 	-Wno-* options.
! 	* doc/invoke.texi: Likewise.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/cppdiropts.texi: Document -imultiarch.
! 	* doc/invoke.texi (Option Summary) <Optimization Options>: Add
! 	-flto-toplevel-asm-heuristics.
! 	<Program Instrumentation Options>: Remove -fbounds-check.
! 	<Directory Options>: Add -imultiarch.
! 	<ARC Options>: Add -mbitops, -mcmem, -munaligned-access.
! 	<ARM Options>: Add -mvectorize-with-neon-quad and
! 	-mvectorize-with-neon-double.
! 	<AVR Options>: Add -mrmw and -mstrict-X.
! 	<CRIS Options>: Fix typo in -mmax-stackframe.
! 	<Cygwin and MinGW Options>: Add -muse-libstdc-wrappers.
! 	<M680x0 Options>: Add several missing CPU options, plus -mxtls.
! 	<MIPS Options>: Add -mno-data-in-code and -mcode-xonly.
! 	<MMIX Options>: Add mset-data-start, -mset-program-start, and
! 	-mno-set-program-start.
! 	<Nvidia PTX Options>: Add -msoft-stack-reserve-local.
! 	<RS/6000 and PowerPC Options>: Add -mprofile-kernel, -mbit-word,
! 	-mno-splat-word-constant, -mno-splat-float-constant,
! 	-mno-ieee128-constant, and -mno-warn-altivec-long.
! 	(Optimization Options): Document -flto-toplevel-asm-heuristics.
! 	(ARC Options): Document -mbitops and -mcmem.
! 	(ARM Options): Add index entries for mbe32,
! 	m[no-]fix-cortex-a57-aes-1742098, m[no-]fix-cortex-a72-aes-1655431.
! 	Document -mvectorize-with-neon-quad and -mvectorize-with-neon-double.
! 	(AVR Options): Document -mpmem-wrap-around.
! 	(CRIS Options): Fix typo in -mmax-stackframe.
! 	(Cygwin and MinGW Options): Document -muse-libstdc-wrappers.
! 	(DEC Alpha Options): Fix typo in -mfp-regs.
! 	(eBPF Options): Add @opindex for -mframe-limit.
! 	(HPPA Options): Fix typos in -mno-disable-fpregs and -mno-gas
! 	index entries.
! 	(m680x0 Options): Document -m68302, -m68332, -m68851, and -mfidoa.
! 	Document -mnoshort and -mnortd aliases.  Document -mxtls.
! 	(MCore Options): Fix typos in -m[no-]relax-immediates.
! 	(MIPS Options): Document -mno-data-in-code and -mcode-xonly.
! 	(MMIX Options): Document -mset-data-start, -mset-program-start, and
! 	-mno-set-program-start.
! 	(Nvidia PTX Options): Document -msoft-stack-reserve-local.
! 	(RS/6000 and PowerPC Options): Document -mprofile-kernel,
! 	-mbit-word, -msplat-word-constant, -msplat-float-constant,
! 	-mieee128-constant, and -mwarn-altivec-long.
! 	(SH Options): Add index entry for -m2e.  Document -m4-400.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* common.opt (fbounds-check): Mark as Undocumented, expand comments
! 	to explain why.
! 	* config/frv/frv.opt (msched-lookahead=): Mark unused option as
! 	Undocumented.
! 	* config/m68k/m68k.opt (m68851): Add RejectNegative.
! 	* config/nvptx/nvptx.opt (minit-regs=): Mark as Undocumented.  It's
! 	not currently documented and seems to have been introduced as a
! 	stopgap to experiment with different implementation strategies.
! 	* config/rs6000/476.opt (mpreserve-link-stack): Mark as Undocumented.
! 	It seems to be an internal option that is enabled by default on the
! 	cpu that can benefit from it.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* common.opt (gtoggle): Mark RejectNegative.
! 	* doc/invoke.texi (Option Summary) <Debugging Options>: Remove
! 	redundant -gno- forms from the list.
! 	(Debugging Options): Add @opindex for -gno- option forms.
! 	Copy-edit option descriptions to avoid future tense and use of
! 	implementor jargon.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/67300
! 	* common.opt (foffload-abi, foffload-abi-host-opts): Mark
! 	"Undocumented".
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/invoke.texi (Option Summary) <LynxOS Options>: New.
! 	(LynxOS Options): New section.
  
! 2026-01-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123803
! 	* gimple-ssa-strength-reduction.cc (replace_rhs_if_not_dup): For
! 	pointer lhs use sizetype.
  
! 2026-01-23  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123780
! 	* config/riscv/vector.md: Correct output template.
  
! 2026-01-23  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123767
! 	* tree-vect-stmts.cc (vectorizable_store): Only scale offset
! 	once.
! 	(vectorizable_load): Ditto.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123778
! 	* genmatch.cc (parser::parse_expr): Peek on the next
! 	token after eating the `!` or `^`.
! 	* match.pd (`(op (cnd @0 @1 @2) @3)`, `(op @3 (cnd @0 @1 @2))`):
! 	Add the type to resulting op.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/120258
! 	PR tree-optimization/106883
! 	* gimple-ssa-strength-reduction.cc (replace_mult_candidate): Allow for
! 	basis_name and bump_tree not to be the same type as the lhs.
! 	Rewrite added multiply for undefined overflow.
! 	(create_add_on_incoming_edge): Allow for init
! 	to be a different type from the wanted type.
! 	Rewrite added add for undefined overflow.
! 	(replace_rhs_if_not_dup): Rewrite replaced stmts
! 	for undefined overflow.
! 	(replace_one_candidate): Allow for basis_name and
! 	rhs2 to be a different type from lhs.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/106883
! 	* gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Rewrite
! 	the new addition on the edge too.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* gimple-ssa-strength-reduction.cc (introduce_cast_before_cand): Use
! 	gimple_convert instead of manually creating the gimple_assign.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/121347
! 	PR tree-optimization/106883
! 	* gimple-ssa-strength-reduction.cc (insert_initializers): Rewrite
! 	newly inserted statements for undefinedness (overflow).
  
! 2026-01-23  Peter Bergner  <bergner@tenstorrent.com>
  
! 	PR target/123492
! 	* config/riscv/riscv-cores.def (RISCV_CORE): Add zvfbfmin to
! 	tt-ascalon-d8.
  
! 2026-01-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123776
! 	* gimple-fold.cc (gimple_fold_partial_load_store): Copy
! 	the vdef from the old statement to the new statement of a
! 	load that is also a store to non gimple_reg.
  
! 2026-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
  
! 	PR rtl-optimization/80357
! 	PR rtl-optimization/94014
! 	PR rtl-optimization/123144
! 	* haifa-sched.cc (model_recompute): Ignore dying uses of registers
! 	that are not assumed to be live.
  
! 2026-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* match.pd ((convert (vec_cond ...))): Make sure the
! 	resulting vec_cond can be expanded.
  
! 2026-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123775
! 	* match.pd ((view_convert (vec_cond ...))): Make sure the
! 	resulting vec_cond can be expanded.
  
! 2026-01-23  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
  	Revert:
! 	2026-01-20  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR target/123584
! 	* config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>): Use
! 	aarch64_simd_rshift_imm predicate for rotate amount.
  
! 2026-01-23  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123703
! 	* builtins.cc (fold_builtin_abs): Return NULL_TREE if type is not
! 	integral.
  
! 2026-01-23  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123771
! 	* tree-vect-loop.cc (vectorizable_induction): Convert step
! 	also for VLA vectors.
  
! 2026-01-23  Richard Biener  <rguenther@suse.de>
  
! 	* config/i386/i386.cc (ix86_vector_costs::finish_cost):
! 	Avoid selecting masked epilogs for in-order reductions.
  
! 2026-01-23  Hongyu Wang  <hongyu.wang@intel.com>
  
! 	* config/i386/sse.md (avx2_vbroadcasti128_<mode>): Constraint
! 	alternative 0 with jm and add gpr16 attr to avoid egpr usage.
  
! 2026-01-22  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/123742
! 	* config/arm/neon.md (*smin<mode>3_neon): Renamed to ...
! 	(*smin<VDQWH:mode>3_neon): ... this.  Add HFmode support.
! 	(*smax<mode>3_neon): Renamed to ...
! 	(*smax<VDQWH:mode>3_neon): ... this.  Add HFmode support.
  
! 2026-01-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123741
! 	* tree-vect-stmts.cc (vectorizable_store): Add missing check
! 	on loop vectorization.
  
! 2026-01-22  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* tree-vrp.cc (remove_unreachable::fully_replaceable): Fix typo
! 	in comment.
  
! 2026-01-22  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123731
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Handle nop
! 	conversion between during extraction.
  
! 2026-01-22  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/122869
! 	* config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load):
! 	Remove
! 	* config/riscv/riscv-vector-builtins.cc (function_expander::use_contiguous_load_insn):
! 	Use new helper.
! 	(function_expander::prepare_contiguous_load_insn): New helper.
! 	(function_expander::use_fof_load_insn): New function to emit FoF
! 	loads.
! 	* config/riscv/riscv-vector-builtins.h: Declare new functions.
  
! 2026-01-22  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR target/123279
! 	* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
! 	Add VECTOR_EXT_NO_XTHEAD.
! 	(vlm): Move to VECTOR_EXT_NO_XTHEAD.
! 	(vsm): Ditto.
! 	(vzext): Ditto.
! 	(vsext): Ditto.
! 	(vaaddu): Ditto.
! 	(vaadd): Ditto.
! 	(vasubu): Ditto.
! 	(vasub): Ditto.
! 	(vfrsqrt7): Ditto.
! 	(vfrec7): Ditto.
! 	(vfrec7_frm): Ditto.
! 	(vfslide1up): Ditto.
! 	(vfslide1down): Ditto.
! 	(vluxei8): Ditto.
! 	(vluxei16): Ditto.
! 	(vluxei32): Ditto.
! 	(vluxei64): Ditto.
! 	(vsuxei8): Ditto.
! 	(vsuxei16): Ditto.
! 	(vsuxei32): Ditto.
! 	(vsuxei64): Ditto.
! 	(vluxseg): Ditto.
! 	(vsuxseg): Ditto.
! 	(vrgatherei16): Ditto.
! 	(vlseg): Keep.
! 	(vsseg): Keep.
! 	(vlsseg): Keep.
! 	(vssseg): Keep.
! 	(vloxseg): Keep.
! 	(vsoxseg): Keep.
! 	(vlsegff): Keep.
! 	* config/riscv/riscv-vector-builtins.cc (GTY): Split
! 	registered_functions into multiple partitions.
! 	(is_fractional_lmul): New function.
! 	(xthvector_unsupported_p): Ditto.
! 	(get_builtin_partition): Ditto.
! 	(function_builder::add_function): Use new functions.
! 	(lookup_registered_function): Ditto.
! 	(builtin_decl): Use lookup_registered_function.
! 	(gimple_fold_builtin): Ditto.
! 	(expand_builtin): Ditto.
! 	(check_builtin_call): Ditto.
! 	(resolve_overloaded_builtin): Ditto.
! 	* config/riscv/riscv-vector-builtins.h (enum required_ext):
! 	(enum rvv_builtin_partition): New enum.
! 	(required_ext_to_isa_name): Add NO_XTHEAD.
! 	(required_extensions_specified): Ditto.
! 	* config/riscv/riscv-vector-switch.def (ENTRY): Remove
! 	XTheadVector.
! 	(TUPLE_ENTRY): Ditto.
! 	* config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Fix
! 	whitespace.
! 	(riscv_legitimize_poly_move): Ditto.
! 	(riscv_vector_fractional_lmul_p): New function.
! 	(riscv_validate_vector_type): Use new function.
  
! 2026-01-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123755
! 	* tree-vect-stmts.cc (vectorizable_call): Register mask when
! 	the call could trap.
  
! 2026-01-22  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123756
! 	* tree-vect-loop.cc (vect_transform_reduction): Remove
! 	bogus assert.
  
! 2026-01-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123736
! 	* tree-ssa-loop-unswitch.cc (hoist_guard): Guard dump message
! 	on dump_file && (dump_flags & TDF_DETAILS) condition.
  
! 2026-01-22  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR diagnostics/122622
! 	* diagnostics/paths-output.cc: Include "diagnostics/file-cache.h".
! 	(event_range::print_as_text): Generalize the fallback logic for
! 	special locations to also cover the case where source-printing
! 	will fail, and show the location for that case.
! 	(event_range::print_as_html): Likewise.
! 	(event_range::can_print_source_p): New.
  
! 2026-01-22  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/123631
! 	* config/i386/i386-expand.cc (ix86_vector_duplicate_value):
! 	Don't force CONST_INT to reg !TARGET_PREFER_BCST_FROM_INTEGER,
! 	force it to mem instead.
! 	* config/i386/i386.h (TARGET_PREFER_BCST_FROM_INTEGER): New macro.
! 	* config/i386/x86-tune.def
! 	(X86_TUNE_PREFER_BCST_FROM_INTEGER): New tune.
  
! 2026-01-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	PR target/122781
! 	* config/s390/vector.md: Don't emulate vec_cmpgtu for 128-bit
! 	integers for VXE3.
  
! 2026-01-20  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR rtl-optimization/123380
! 	* combine.cc (gen_lowpart_for_combine): Don't try to create a
! 	paradoxical SUBREG if it's going to be rejected by validate_subreg.
  
! 2026-01-20  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/123626
! 	* config/riscv/vector.md (vxrm_mode): Handle CALL_INSNs, which set
! 	the attribute to the new VXRM_MODE_CLOBBER state.
! 	* config/riscv/riscv.cc (riscv_emit_mode_set): Don't emit code when
! 	VXRM's state changes to VXRM_MODE_CLOBBER.
  
! 2026-01-20  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/123314
! 	* gimple-range.cc (gimple_ranger::range_on_entry): Do not check
! 	ranger cache for an SSA_NAME with no BB.
! 	(gimple_ranger::prefill_stmt_dependencies): Stop filling
! 	dependencies when an out-of IL name is encountered.
  
! 2026-01-20  supers1ngular  <supers1ngular@baylibre.com>
  
! 	* doc/extend.texi: Swap samp fields to fix overfull hbox.
! 	* doc/invoke.texi: Ditto.
  
! 2026-01-20  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
  
! 	PR c++/123639
! 	* doc/invoke.texi: Add @item for -Wsfinae-incomplete.
  
! 2026-01-20  Nathan Sidwell  <nathan@acm.org>
  
! 	* diagnostics/context.cc (context::action_after_output): Print
! 	invocation on ICE.
  
! 2026-01-20  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR sarif-replay/123056
! 	* libsarifreplay.cc (struct embedded_link): Move decl earlier.
! 	(sarif_replayer::append_embeddded_link): New.
! 	(sarif_replayer::make_plain_text_within_result_message): Move the
! 	link-replay logic to the above, and skip the link part of
! 	intra-sarif links.
  
! 2026-01-20  Georg-Johann Lay  <avr@gjlay.de>
  
! 	* config/avr/avr.cc (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P):
! 	Return true when WITH_AVRLIBC.
  
! 2026-01-20  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64.md: Update comment.
! 	* config/aarch64/aarch64-simd.md: Change comment to refer to
! 	aarch64.md.
! 	* config/aarch64/aarch64-sme.md: Likewise.
! 	* config/aarch64/aarch64-sve.md: Likewise.
! 	* config/aarch64/aarch64-sve2.md: Likewise.
! 	* config/aarch64/aarch64-sve-builtins.def: Update comment.
! 	* config/aarch64/aarch64-sve-builtins-base.def: Update to refer
! 	to aarch64-sve-builtins.def.
! 	* config/aarch64/aarch64-sve-builtins-sme.def: Likewise.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
  
! 2026-01-20  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/123724
! 	* config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): Ignore
! 	debug stmts.
  
! 2026-01-20  Roger Sayle  <roger@nextmovesoftware.com>
  
! 	PR rtl-optimization/123585
! 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
! 	<case VEC_SELECT>: Correct gcc_assert when optimizing a vec_select
! 	of a vec_select with differing vector lengths.
  
! 2026-01-20  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR target/123584
! 	* config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>): Use
! 	aarch64_simd_rshift_imm predicate for rotate amount.
  
! 2026-01-20  Kyrylo Tkachov  <ktkachov@nvidia.com>
  
! 	PR target/123584
! 	* config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Leave zero
! 	rotate amounts as zero during expansion.
! 	(*aarch64_xarqv2di_insn): Account for zero rotate amounts.  Print #
! 	in rotate immediate.
  
! 2026-01-20  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	* flag-types.h (enum lto_locality_heuristics): New enum.
! 	* ipa-locality-cloning.cc (struct templ_info): New struct.
! 	(struct locality_info): Add templ_info field.
! 	(templ_hash_map): New hash_map.
! 	(callee_templ_cmp): Ditto.
! 	(static_profile_templ_cmp): Ditto.
! 	(sort_templ_hashes_cmp): Ditto.
! 	(order_templ_hashes): Ditto.
! 	(locality_dc_template_p): Ditto.
! 	(populate_templ_info): Ditto.
! 	(create_locality_info): Call populate_templ_info.
! 	(partition_callchain): Call callee_templ_cmp.
! 	(locality_determine_static_order): Populate and sort templ_hash_map.
! 	(locality_partition_and_clone): Handle lto_locality_heuristics.
! 	(lc_execute): Initialize templ_hash_map.
! 	* params.opt: New param.
  
! 2026-01-20  Prachi Godbole  <pgodbole@nvidia.com>
  
! 	* ipa-locality-cloning.cc (struct locality_callee_info): New struct.
! 	(struct locality_info): Ditto.
! 	(loc_infos): Ditto.
! 	(get_locality_info): New function.
! 	(sort_all_callees_default): Ditto.
! 	(callee_default_cmp): Ditto.
! 	(populate_callee_locality_info): Ditto.
! 	(populate_caller_locality_info): Ditto.
! 	(create_locality_info): Ditto.
! 	(adjust_recursive_callees): Access node_to_clone by reference.
! 	(inline_clones): Access node_to_clone and clone_to_node by reference.
! 	(clone_node_as_needed): Ditto.
! 	(accumulate_incoming_edge_frequency): Remove function.
! 	(clone_node_p): New function.
! 	(partition_callchain): Refactor the function.
! 	(is_entry_node_p): Call local_p ().
! 	(locality_determine_ipa_order): Call create_locality_info ().
! 	(locality_determine_static_order): Ditto.
! 	(locality_partition_and_clone): Update call to partition_callchain ()
! 	according prototype.
! 	(lc_execute): Allocate and free node_to_ch_info, node_to_clone,
! 	clone_to_node.
  
! 2026-01-20  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123697
! 	* gimple-fold.cc (gimple_fold_partial_load_store): Use an
! 	empty CTOR for a zero else value in .MASK_LOAD_LANES.
  
! 2026-01-20  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123729
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Set
! 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the reduction flows
! 	across an abnomal edge.
  
! 2026-01-20  Richard Biener  <rguenther@suse.de>
  
! 	* tree-phinodes.h (phi_arg_index_from_use): Use gphi *.
! 	(phi_arg_edge_from_use): New helper composing
! 	phi_arg_index_from_use and gimple_phi_arg_edge.
  
! 2026-01-19  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR rtl-optimization/121787
! 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl): Adjust call to
! 	loop_optimizer_init to avoid making CFG changes.
  
! 2026-01-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sol2.opt.urls: Regenerate.
! 	* config/darwin.opt.urls: Likewise.
! 	* config/dragonfly.opt.urls: Likewise.
! 	* config/freebsd.opt.urls: Likewise.
! 	* config/gnu-user.opt.urls: Likewise.
! 	* config/hpux11.opt.urls: Likewise.
! 	* config/i386/cygwin.opt.urls: Likewise.
! 	* config/mingw/mingw.opt.urls: Likewise.
! 	* config/netbsd.opt.urls: Likewise.
! 	* config/openbsd.opt.urls: Likewise.
! 	* config/rs6000/aix64.opt.urls: Likewise.
! 	* config/rtems.opt.urls: Likewise.
  
! 2026-01-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sol2.h (CPP_SUBTARGET_SPEC): Remove.
! 	* config/sol2.opt (pthread): Ignore.
! 	(pthreads): Likewise.
! 	* config/i386/sol2.h (CPP_SPEC): Remove.
! 	(SUBTARGET_CPU_EXTRA_SPECS): Remove cpp_subtarget.
! 	* doc/invoke.texi (Solaris 2 Options, pthread): Remove.
  
! 2026-01-19  Jeff Law  <jeffrey.law@oss.qualcomm.com>
! 	    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/113666
! 	* fold-const-call.cc (fold_const_vec_extract): New function.
! 	(fold_const_call, case CFN_VEC_EXTRACT): Call it.
! 	* match.pd (IFN_VEC_EXTRACT): Handle extraction from a uniform
! 	vector.
  
! 2026-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123061
! 	PR tree-optimization/123636
! 	* tree-ssa-loop-im.cc (fill_always_executed_in_1): Change
! 	outer-to-inner to inner-to-outer iteration.  Update inner
! 	loop state only when always executed in an immediately
! 	nested loop.
  
! 2026-01-19  Tobias Burnus  <tburnus@baylibre.com>
  
! 	* doc/install.texi (GCN): gfx9-4-generic requires LLVM 20.
  
! 2026-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123602
! 	* tree-ssa-pre.cc (find_or_generate_expression): Do not
! 	generate references to abnormal SSA names.
  
! 2026-01-19  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config.gcc: Deprecate -m31.
! 	* doc/invoke.texi: Deprecate -m31.
  
! 2026-01-19  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123656
! 	* tree-vect-generic.cc (expand_vector_mult): Fix up alg_sub_factor
! 	handling.  Fix up formatting in alg_add_t_m2 handling.
  
! 2026-01-19  Richard Biener  <rguenther@suse.de>
  
! 	PR target/123603
! 	* config/i386/i386.opt (-param=ix86-vect-compare-costs=): Add.
! 	* config/i386/i386.cc (ix86_autovectorize_vector_modes): Honor it.
! 	* doc/invoke.texi (ix86-vect-compare-costs): Document.
  
! 2026-01-19  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/117575
! 	* config/loongarch/lasx.md: Modify the range of operand1.
  
! 2026-01-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123645
! 	* tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Rewrite
! 	the canonicalization of the args code based on e1/e2 being edges into
! 	the join block.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* config/darwin.opt.urls: Regenerated.
! 	* config/dragonfly.opt.urls: Regenerated.
! 	* config/freebsd.opt.urls: Regenerated.
! 	* config/gnu-user.opt.urls: Regenerated.
! 	* config/hpux11.opt.urls: Regenerated.
! 	* config/i386/cygwin.opt.urls: Regenerated.
! 	* config/i386/i386.opt.urls: Regenerated.
! 	* config/mingw/mingw.opt.urls: Regenerated.
! 	* config/nds32/nds32.opt.urls: Regenerated.
! 	* config/netbsd.opt.urls: Regenerated.
! 	* config/nvptx/nvptx.opt.urls: Regenerated.
! 	* config/openbsd.opt.urls: Regenerated.
! 	* config/pru/pru.opt.urls: Regenerated.
! 	* config/riscv/riscv.opt.urls: Regenerated.
! 	* config/rl78/rl78.opt.urls: Regenerated.
! 	* config/rs6000/aix64.opt.urls: Regenerated.
! 	* config/rs6000/rs6000.opt.urls: Regenerated.
! 	* config/rs6000/sysv4.opt.urls: Regenerated.
! 	* config/rtems.opt.urls: Regenerated.
! 	* config/rx/rx.opt.urls: Regenerated.
! 	* config/s390/s390.opt.urls: Regenerated.
! 	* config/s390/tpf.opt.urls: Regenerated.
! 	* config/sh/sh.opt.urls: Regenerated.
! 	* config/sol2.opt.urls: Regenerated.
! 	* config/sparc/sparc.opt.urls: Regenerated.
! 	* config/v850/v850.opt.urls: Regenerated.
! 	* config/vax/vax.opt.urls: Regenerated.
! 	* config/vxworks.opt.urls: Regenerated.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/nds32/nds32.opt: Tidy documentation strings.
! 	(mbig-endian, mlittle-endian): Remove "Undocumented" flag since
! 	these are, in fact, documented.
! 	* doc/invoke.texi (Option Summary) <NDS32 Options>: Document
! 	-EB, -EL, -mabi, -mfloat-abi, -malways-align, -malign-functions,
! 	-mfp-as-gp, -mext-dsp, -mext-fpu-fma, -mext-fpu-sp, -mext-fpu-dp,
! 	-misr-vector-size, -misr-secure, -mcpu, -mconfig-fpu,
! 	-mconfig-mul, -mconfig-register-ports, -mrelax-hint,
! 	-msched-prolog-epilog, -mno-ret-in-naked-func, -malways-save-lp,
! 	-munaligned-access, and -minline-asm-r15.
! 	(NDS32 Options): Likewise.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/xtensa/uclinux.opt (elf2flt, elf2flt=): Mark as Undocumented.
! 	* config/xtensa/xtensa.opt (mlra): Likewise.
! 	* doc/invoke.texi (Option Summary) <Xtensa Options>: Remove
! 	redundant negative forms plus obsolete -mfused-madd option.
! 	(Xtensa Options): Likewise undocument -mfused-madd.  List
! 	negative form of -mforce-no-pic.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/i386/i386.opt (malign-functions): Mark undocumented/unused
! 	option as Undocumented.
! 	(malign-jumps): Likewise.
! 	(malign-loops): Likewise.
! 	(mbranch-cost, mforce-drap): Mark undocumented options likely
! 	intended for developer use only as Undocumented.
! 	(mstv): Correct sense of option in doc string.
! 	(mavx512cd): Remove extra "and" from doc string.
! 	(mavx512dq): Likewise.
! 	(mavx512bw): Likewise.
! 	(mavx512vl): Likewise.
! 	(mavx512ifma): Likewise.
! 	(mavx512bvmi): Likewise.
! 	* doc/invoke.texi (Options Summary) <x86 Options>: Add
! 	missing options.  Correct whitespace and re-wrap long lines.
! 	Remove -mthreads which is now classed as a MinGW option.
! 	(Cygwin and MinGW Options): Replace existing documentation of
! 	-mthreads with the more detailed text moved from x86 Options.
! 	(x86 Options): Move introductory text about ISA extensions before
! 	the individual options instead of after.  Document them all
! 	individually instead of as a group, and move immediately after
! 	-march/-mtune documentation.  Rewrap long lines.  Document
! 	interaction between SSE and AVX with -mfpmath=sse.  Move -masm
! 	documentation farther down instead of grouped with options
! 	affecting floating-point behavior.  Add missing @opindex
! 	entries.  Rewrite the -mdaz-ftz documentation.  Document
! 	-mstack-arg-probe.  Copy-editing.  Document -mstv.  Remove
! 	obsolete warning about -mskip-rax-setup in very old GCC versions.
! 	Rewrite the -mapx-inline-asm-use-gpr32 documentation.
! 	Document -mgather and -mscatter.  Split -miamcu documentation
! 	from -m32/-m64/etc.  Rewrite -munroll-only-small-loops documentation.
! 	Document -mdispatch-scheduler.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/invoke.texi (Option Summary) <VxWorks Options>: Add -mvthreads.
! 	(VxWorks Options): Likewise.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/vms/vms.opt (map): Mark as Undocumented.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/visium/visium.opt (menable-trampolines): Mark Undocumented.
! 	* doc/invoke.texi (Options Summary) <Visium Options>: Remove
! 	redundant -mno- option.
! 	(Visium Options): Copy-editing to put in active voice and add markup.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/vax/elf.opt (mno-asm-pic): Mark as Undocumented.
! 	* doc/invoke.texi (Option Summary) <VAX Options>: Add
! 	-mvaxc-alignment and -mqmath.
! 	(VAX Options): Likewise.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/v850/v850.opt: Copy-edit documentation strings.
! 	(mdebug): Make Undocumented.
! 	(mno-strict-align): Add RejectNegative.
! 	(mUS-bit-set): Make Undocumented.
! 	* doc/invoke.texi (Option Summary) <V850 Options>: Remove
! 	redundant -mno- forms from list.  Add missing entries.
! 	(V850 Options): Add @opindex for negative forms.  Combine
! 	entries for -mapp-regs and -mno-app-regs.  Document -msmall-sld,
! 	-mno-strict-align, and -mjump-tables-in-data-section.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/invoke.texi (Option Summary) <SPARC Options>: Remove
! 	redundant -mno- forms from the list.  Add -mptr32 and -mptr64.
! 	(SPARC Options): Document -mptr32 and -mptr64.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* doc/invoke.texi (Option Summary) <Solaris 2 Options>:
! 	Remove redundant negative option forms from list.  List both
! 	-pthread and -pthreads.
! 	(Solaris 2 Options): Index and list the negative forms here.
! 	Combine the two @table environments.  Document both -pthread
! 	and -pthreads.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/sh/sh.opt (mhitachi, mpadstruct): Mark obsolete options
! 	as Undocumented.
! 	* doc/invoke.texi (Option Summary) <SH Options>: Add missing
! 	entries for -m4-* and other options.  Remove redundant -mno- entries
! 	and obsolete options.  Add missing options -mfdpic, -mlra.
! 	(SH Options): Combine entries for -mrenesas and -mno-renesas.
! 	Index and list -mno- forms for other options that have them.
! 	Remove documentation for obsolete options -mpadstruct and
! 	-mfused-madd.  Add documentation for -mlra.  Copy-edit and wrap long
! 	lines throughout the section.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/s390/s390.opt (mbranch-cost): Mark as Undocumented.
! 	* config/s390/tpf.opt (mtpf-trace-hook-prologue-check=): Likewise.
! 	(mtpf-trace-hook-prologue-target=): Likewise.
! 	(mtpf-trace-hook-epilogue-check=): Likewise.
! 	(mtpf-trace-hook-epilogue-target=): Likewise.
! 	* doc/invoke.texi (Option Summary) <S/390 and zSeries Options>:
! 	Remove redundant -mno- entries and add missing options.  Make
! 	entries with arguments match the syntax in the main documentation.
! 	(S/390 and zSeries Options): Light copy-editing.  Wrap overly-long
! 	lines.  Add missing @opindex entries.  Add documention for
! 	-mmain, -mno-pic-data-is-text-relative, -mindirect-branch,
! 	-mindirect-branch-jump, -mindirect-branch-call,
! 	-mfunction-return, -mfunction-return-mem, -mfunction-return-reg,
! 	-mindirect-branch-table, -mfentry, -mrecord-mcount, -mnop-mcount,
! 	-mpreserve-args, and -munaligned-symbols.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/rx/rx.opt (mgcc-abi, mrx-abi): Mark as Undocumented.
! 	* doc/invoke.texi (Option Summary) <RX Options>: Remove redundant
! 	entries for -mno-forms, correct name of -msmall-data-limit option,
! 	add -mlra, clean up formatting.
! 	(RX Options): Minor copy-editing, add -mlra.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	* config/rs6000/darwin.opt (Waltivec-long-deprecated): Mark as
! 	Undocumented.
! 	(faltivec, ffix-and-continue, findirect-data): Likewise.
! 	* config/rs6000/rs6000.opt (mvrsave): Likewise.
! 	* config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback): Likewise.
! 	(mshlib, mnewlib): Likewise.
! 	* doc/invoke.texi (Option Summary) <RS/6000 and PowerPC Options>:
! 	Document only one form of each option.  Add missing options.
! 	Correct whitespace.
! 	(RS/6000 and PowerPC Options): Separately document -mpowerpc-gpopt,
! 	-mpowerpc-gfxopt, -mpowerpc64, -mmfcrf, -mpopcntb, -mpopcntd,
! 	-mfprnd, -mcmpb, and -mhard-dfp and move their documentation after
! 	-mcpu=.  Remove documentation for -mtoc which is unimplemented.
! 	Add missing @opindex entries.  Minor copy-editing and whitespace
! 	fixes.
  
! 2026-01-17  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/122243
! 	PR target/71340
! 	* doc/invoke.texi (Option Summary) <RL78 Options>: Remove
! 	never-implemented -m64bit-doubles and -m32bit-doubles options.
! 	Add missing entries for -mrelax, -mes0, -mmul=rl78, -mcpu=rl78,
! 	and -mrl78.
! 	(RL78 Options): Likewise.  Add missing @opindex entries.
! 	Light copy-editing.
  
! 2026-01-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123513
! 	* tree.cc (valid_new_delete_pair_p): If new_name[3] or delete_name[3]
! 	is 'I', return false with *pcertain set to false rather than true.
  
! 2026-01-16  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* hierarchical_discriminator.cc (init_copyid_allocator): Walks the function
! 	body to find existing max copyids per location.
! 	(record_existing_copyid): New.
  
! 2026-01-16  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	PR target/123460
! 	* config.gcc: Accept hyphens in aarch64 --with-arch extensions.
  
! 2026-01-16  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/123145
! 	* timevar.def (TV_ANALYZER_SUPERGRAPH): Rename to...
! 	(TV_ANALYZER_SUPERGRAPH_CREATION): ...this.
! 	(TV_ANALYZER_SUPERGRAPH_FIXUP_LOCATIONS): New.
! 	(TV_ANALYZER_SUPERGRAPH_SIMPLIFY): New.
! 	(TV_ANALYZER_SUPERGRAPH_SORTING): New.
  
! 2026-01-16  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR target/123092
! 	* lra-constraints.cc (lra_constraints): Push insn on processing
! 	stack after equivalence substitution.
  
! 2026-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR pch/110746
! 	* config/host-freebsd.cc: New file.
! 	* config.host <*-*-freebsd*>: Use it.
! 	* config/x-freebsd: New file.
  
! 2026-01-16  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123412
! 	* ipa-cp.cc (devirtualization_time_bonus): Do add the indirect
! 	edge frequency at least once even for targets which cannot be
! 	inlined.
  
! 2026-01-16  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/123607
! 	* config/i386/i386.md (movhf_mask): Change constraint on
! 	match_operand 2's second alternative from 0C to 0.
  
! 2026-01-16  Lulu Cheng  <chenglulu@loongson.cn>
  
! 	PR target/123521
! 	* config/loongarch/loongarch.cc
! 	(loongarch_expand_vector_init_same): Fixed a bug in the
! 	vector initialization section..
  
! 2026-01-16  David Guillen Fandos  <david@davidgf.net>
  
! 	* config/mips/mips.h (ISA_HAS_FMIN_FMAX): Add R5900;
! 	note that, R5900 is not IEEE754 fully compatiable.
  
! 2026-01-15  Marek Polacek  <polacek@redhat.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/120775
! 	PR c++/123081
! 	PR c++/122634
! 	* attribs.cc (attribute_value_equal): Return false if either attribute
! 	is ATTR_UNIQUE_VALUE_P.
! 	(merge_attributes): Handle lists with ATTR_UNIQUE_VALUE_P values.
! 	* doc/invoke.texi: Document -freflection.
! 	* dwarf2out.cc (is_base_type) <case default>: Check
! 	TREE_CODE >= LAST_AND_UNUSED_TREE_CODE instead of is_cxx_auto.
! 	(gen_type_die_with_usage): For TREE_CODE >= LAST_AND_UNUSED_TREE_CODE
! 	trees use use DW_TAG_unspecified_type.
! 	* tree-core.h (struct tree_base): Update a comment.
! 	* tree.h (ATTR_UNIQUE_VALUE_P): Define.
! 	(BINFO_BASE_ACCESSES): Update the comment.
  
! 2026-01-15  Peter Damianov  <peter0x44@disroot.org>
  
! 	PR driver/123504
! 	* config/i386/cygming.h (EXTRA_DEFAULT_COMPILERS): Comment out
! 	.res spec to allow COFF files with .res extension to pass
! 	through to the linker.
! 	* config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise.
  
! 2026-01-15  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* ira-lives.cc (ira_implicitly_set_insn_hard_regs): Honor hard
! 	register constraints.
! 	* ira.cc (ira_setup_alts): Ditto.
  
! 2026-01-15  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* doc/extend.texi: Document current limitations of hard register
! 	constraints.
! 	* stmt.cc (parse_output_constraint): Reject multiple hard
! 	register constraints or a combination of hard register
! 	constraints and regular register constraints in one alternative.
! 	(parse_input_constraint): Ditto.
  
! 2026-01-15  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64-simd.md: Add comment.
! 	* config/aarch64/aarch64-sme.md: Likewise.
! 	* config/aarch64/aarch64-sve-builtins-base.def: Likewise.
! 	* config/aarch64/aarch64-sve-builtins-sme.def: Likewise.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
! 	* config/aarch64/aarch64-sve-builtins.def: Likewise.
! 	* config/aarch64/aarch64-sve.md: Likewise.
! 	* config/aarch64/aarch64-sve2.md: Likewise.
! 	* config/aarch64/aarch64.md: Likewise.
  
! 2026-01-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sparc/sparc.h (TARGET_SUN_TLS): Remove.
! 	* config/sparc/sol2.h (TARGET_SUN_TLS): Likewise.
! 	* config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Guard
! 	with HAVE_GNU_AS.
! 	(sparc_tls_got): Guard with !HAVE_GNU_AS.
! 	(sparc_legitimize_tls_address): Likewise.
! 	* config/sparc/sparc.md ("tls_delay_slot"): Likewise.
! 	("@tie_add<P:mode>"): Likewise.
  
! 2026-01-15  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR debug/121045
! 	* tree-pretty-print.h (dump_location): Add new dump_flags_t
! 	argument defaulted to TDF_NONE.
! 	* tree-pretty-print.cc (dump_location): Add flags argument.  Don't
! 	print discriminator if TDF_COMPARE_DEBUG bit is set in flags.
! 	(dump_block_node, dump_generic_node): Pass through flags to
! 	dump_location.
! 	* gimple-pretty-print.cc (dump_gimple_phi, pp_gimple_stmt_1,
! 	dump_implicit_edges): Likewise.
! 	(gimple_dump_bb_as_sarif_properties): Pass dump_flags to
! 	dump_location.
! 	* print-rtl.cc (rtx_writer::print_rtx_operand_code_L): If dump_flags
! 	has TDF_COMPARE_DEBUG bit set, don't print discriminators.
  
! 2026-01-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/i386/sol2.h [!HAVE_GNU_AS] (ASM_CPU32_DEFAULT_SPEC): Use -m32.
! 	(ASM_CPU64_DEFAULT_SPEC): Use -m64.
  
! 2026-01-15  Josef Melcr  <josef.melcr@suse.com>
  
! 	PR ipa/122852
! 	* cgraph.cc (cgraph_node::verify_node): Verify that callback
! 	edges are unreachable when the carrying edge is unreachable.
! 	* ipa-fnsummary.cc (redirect_to_unreachable): Redirect callback
! 	edges to unreachable when redirecting the carrying edge.
  
! 2026-01-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* configure.ac (gcc_cv_as_sparc_ua_pcrel): Remove.
! 	(gcc_cv_as_sparc_ua_pcrel_hidden): Likewise.
! 	* configure: Regenerate.
! 	* config.in: Regenerate.
! 	* config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
! 	!HAVE_AS_SPARC_UA_PCREL, !HAVE_AS_SPARC_UA_PCREL_HIDDEN support.
! 	* config/sparc/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
! 	* config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Remove
! 	HAVE_AS_SPARC_UA_PCREL guard.
  
! 2026-01-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	* config/sparc/sparc.h (TARGET_TLS): Define as HAVE_AS_TLS.
! 	Update comment.
! 	(TARGET_SUN_TLS): Define as 0.
! 	(TARGET_GNU_TLS): Remove.
! 	* config/sparc/freebsd.h (TARGET_SUN_TLS): Remove.
! 	(TARGET_GNU_TLS): Remove.
! 	* config/sparc/linux.h: Likewise.
! 	* config/sparc/linux64.h: Likewise.
! 	* config/sparc/sol2.h (TARGET_SUN_TLS): Redefine as 1.
! 	Guard with HAVE_AS_TLS && !HAVE_GNU_AS.
! 	(TARGET_GNU_TLS): Remove.
! 	* config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Use
! 	!TARGET_SUN_TLS in guard.
! 	with !TARGET_SUN_TLS only.
! 	* config/sparc/sparc.md ("tls_delay_slot"): Guard with
! 	!TARGET_SUN_TLS.
  
! 2026-01-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR target/38118
! 	* config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Remove.
  
! 2026-01-15  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Assign
! 	hierarchical discriminators for loop unrolling.
! 	* cfgloopmanip.h (DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR): New flag.
! 	* tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Pass flag
! 	to enable hierarchical discriminator assignment.
! 	(try_peel_loop): Likewise.
  
! 2026-01-15  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* gimple-loop-versioning.cc (loop_versioning::version_loop): Assign
! 	copyid discriminators to distinguish different loop versions.
  
! 2026-01-15  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* tree-vect-loop-manip.cc (vect_loop_versioning): Assign copyid
! 	discriminators for vectorized and scalar loop versions.
! 	* tree-vect-loop.cc (vect_transform_loop): Assign copyid
! 	discriminators for vectorized and scalar loop versions.
  
! 2026-01-15  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* Makefile.in: Add hierarchical_discriminator.o to OBJS.
! 	* hierarchical_discriminator.cc: New file.
! 	* hierarchical_discriminator.h: New file.
! 	* function.h (copyid_alloc): New.
! 	* input.cc (location_with_discriminator_components): New function.
! 	(get_discriminator_components_from_loc): Likewise.
! 	* input.h (DISCR_BASE_BITS): New constant.
! 	(DISCR_MULTIPLICITY_BITS): Likewise.
! 	(DISCR_COPYID_BITS): Likewise.
! 	(DISCR_UNUSED_BITS): Likewise.
! 	(DISCR_BASE_MASK): Likewise.
! 	(DISCR_MULTIPLICITY_MASK): Likewise.
! 	(DISCR_COPYID_MASK): Likewise.
! 	(DISCR_BASE_SHIFT): Likewise.
! 	(DISCR_MULTIPLICITY_SHIFT): Likewise.
! 	(DISCR_COPYID_SHIFT): Likewise.
! 	(DISCR_BASE_MAX): Likewise.
! 	(DISCR_MULTIPLICITY_MAX): Likewise.
! 	(DISCR_COPYID_MAX): Likewise.
! 	(location_with_discriminator_components): New function declaration.
! 	(get_discriminator_components_from_loc): Likewise.
  
! 2026-01-15  DengJianbo  <dengjianbo@loongson.cn>
  
! 	* config/loongarch/loongarch.md: Remove condition in template
! 	movdi_symbolic_off64.
  
! 2026-01-14  Peter Bergner  <bergner@tenstorrent.com>
  
! 	PR target/123092
! 	* config/riscv/constraints.md (ZD): Disable when xmipscbop is disabled.
  
! 2026-01-14  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123542
! 	* ipa-cp.cc (ipa_value_from_jfunc): Always use
! 	ipacp_value_safe_for_type.  Bail out if parm_type is NULL.
  
! 2026-01-14  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/121240
! 	* config/aarch64/aarch64.md (mov<mode>): Expand FP immediates early.
! 	* config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force
! 	immediates <= 8 bytes to constdata.
! 	(aarch64_rtx_costs): Increase cost of CONST_DOUBLE loaded from memory.
  
! 2026-01-14  Wilco Dijkstra  <wilco.dijkstra@arm.com>
  
! 	PR target/114528
! 	* config/aarch64/aarch64.cc (aarch64_check_mov_add_imm12):
! 	New function to check and emit MOV+ADD/SUB immediates.
! 	(aarch64_internal_mov_immediate): Add support for MOV+ADD/SUB
! 	immediates.
  
! 2026-01-14  Tejas Belagod  <tejas.belagod@arm.com>
  
! 	PR middle-end/123392
! 	* cfgexpand.cc (expand_debug_expr): Handle variable-length initializer
! 	for CONSTRUCTOR.
  
! 2026-01-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/123115
! 	* defaults.h (EH_RETURN_DATA_REGNO): Add void (N) to the macro
! 	definition inside of a comma expression before INVALID_REGNUM.
  
! 2026-01-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/120250
! 	* combine.cc (recog_for_combine): Don't try to put SET_SRC
! 	into a constant pool if SET_DEST is pc_rtx.
  
! 2026-01-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123190
! 	* tree-vectorizer.h (vect_load_store_data): Add n_loads member.
! 	* tree-vect-stmts.cc (get_load_store_type): Record the
! 	number of required loads for permuted loads.
! 	(vectorizable_load): Make use of this when costing loads
! 	for VMAT_CONTIGUOUS[_REVERSE].
  
! 2026-01-14  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123190
! 	* tree-vect-loop.cc (vect_analyze_loop_costing): Allow
! 	vectorizing loops with a single scalar iteration iff the
! 	vectorization factor is 1.
  
! 2026-01-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/123544
! 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
! 	<case AND>: Don't canonicalize (subreg (lshiftrt (x cnt)) low) into
! 	(lshiftrt (subreg x low) cnt) if the SUBREG is paradoxical.
  
! 2026-01-14  Prathamesh Kulkarni  <prathameshk@nvidia.com>
  
! 	* auto-profile.cc: (string_table::filenames): New method.
! 	(function_instance::timestamp_): New member.
! 	(function_instance::timestamp): New accessor for timestamp_ member.
! 	(function_instance::set_timestamp): New function.
! 	(function_instance::prop_timestamp): Likewise.
! 	(function_instance::prop_timestamp_1): Likewise.
! 	(function_instance::function_instance): Initialize timestamp_ to 0.
! 	(function_instance::read_function_instance): Adjust prototype by
! 	replacing head_count with toplevel param with default value true, and
! 	stream in head_count and timestamp values from gcov file.
! 	(autofdo::timestamp_info_map): New std::map.
! 	(autofdo_source_profile::get_function_instance_by_decl): New argument
! 	filename with default value NULL.
! 	(autofdo_source_profile::read): Populate timestamp_info_map and
! 	propagate timestamp to inlined instances from toplevel function.
! 	(afdo_annotate_cfg): Assign node->tp_first_run based on
! 	timestamp_info_map and bail out of annotation if
! 	param_auto_profile_reorder_only is enabled.
! 	* params.opt: New param auto-profile-reorder-only.
  
! 2026-01-14  Lili Cui  <lili.cui@intel.com>
  
! 	* config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS):
! 	disable tight loop alignment for m_CORE_ATOM.
  
! 2026-01-14  Daniel Barboza  <daniel.barboza@oss.qualcomm.com>
  
! 	* match.pd: remove 'fold_overflow_warning' references.
! 	* tree.h (TYPE_OVERFLOW_UNDEFINED): remove note telling
! 	that we must use warn_strict_overflow for every optimization
! 	based on TYPE_OVERFLOW_UNDEFINED.
  
! 2026-01-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* match.pd (`(T1)(a bit_op (T2)b)`): Remove redundant
! 	type checks.
  
! 2026-01-13  Pengxuan Zheng  <pengxuan.zheng@oss.qualcomm.com>
  
! 	PR tree-optimization/123109
! 	* fold-const.cc (fold_binary_loc): Remove (X >> C) NE/EQ 0 -> X LT/GE 0
! 	folding.
! 	* match.pd (`(X >> C) NE/EQ 0 -> X LT/GE 0`): New pattern.
  
! 2026-01-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/119402
! 	* match.pd (`(a*zero_one_valued_p) & b`): New pattern.
  
! 2026-01-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/123312
! 	* ifcvt.cc (noce_try_cond_zero_arith): Rename to ...
! 	(noce_try_cond_arith): This. For AND try `cmp ? a : -1`
! 	also to see which one cost less.
! 	(noce_process_if_block): Handle the rename.
  
! 2026-01-13  Jonathan Yong  <10walls@gmail.com>
  
! 	* config/i386/winnt-utf8.manifest: enable longPathAware.
  
! 2026-01-13  Jonathan Yong  <10walls@gmail.com>
  
! 	PR driver/108865
! 	* config/i386/winnt-utf8.manifest: correct XML tags
  
! 2026-01-13  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR tree-optimization/123530
! 	* match.pd (reassociating xor to enable rotations): Verify constants
! 	fit into a uhwi before trying to extract them as a uhwi.
  
! 2026-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123573
! 	* fold-const.cc (fold_vec_perm): Actually check, not assert,
! 	that input and output vector element numbers agree.
! 	* match.pd (vec_perm @0 @1 @2): Make sure element numbers
! 	are the same when folding to an input vector and wrap that
! 	inside a VIEW_CONVERT_EXPR.
  
! 2026-01-13  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123525
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Use
! 	converted source type for conversion bit field ref.
  
! 2026-01-13  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123301
! 	* tree-if-conv.cc (convert_scalar_cond_reduction):
! 	Disallow vector types.
  
! 2026-01-13  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR rtl-optimization/123501
! 	PR rtl-optimization/123444
! 	* rtlanal.cc (nonzero_bits1): Use operand mode instead of
! 	operation mode.
  
! 2026-01-13  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR libstdc++/123396
! 	* configure.ac (gcc_cv_ld_use_as_needed_ldscript): New test.
! 	(USE_LD_AS_NEEDED_LDSCRIPT): New AC_DEFINE.
! 	* gcc.cc (LINK_LIBATOMIC_SPEC): Use "-latomic_asneeded" instead
! 	of LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION
! 	if USE_LD_AS_NEEDED_LDSCRIPT is defined.
! 	(init_gcc_specs): Use "-lgcc_s_asneeded" instead of
! 	LD_AS_NEEDED_OPTION " -lgcc_s " LD_NO_AS_NEEDED_OPTION
! 	if USE_LD_AS_NEEDED_LDSCRIPT is defined.
! 	* config.in: Regenerate.
! 	* configure: Regenerate.
  
! 2026-01-13  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123539
! 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
! 	Use the compute vectype to pun down to smaller or element
! 	size for by-element reductions.
  
! 2026-01-13  Kito Cheng  <kito.cheng@sifive.com>
  
! 	* tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
! 	build_bitint_type for BITINT_TYPE when maxsizei exceeds
! 	MAX_FIXED_MODE_SIZE.
  
! 2026-01-13  Kito Cheng  <kito.cheng@sifive.com>
  
! 	PR target/117581
! 	* config/riscv/riscv.cc (riscv_bitint_type_info): New function.
! 	(TARGET_C_BITINT_TYPE_INFO): Define.
  
! 2026-01-13  liuhongt  <hongtao.liu@intel.com>
  
! 	PR target/123484
! 	* config/i386/mmx.md (divv4hf3): Add TARGET_MMX_WITH_SSE to
! 	the condition.
! 	(cmlav4hf4): Ditto.
! 	(cmla_conjv4hf4): Ditto.
! 	(cmulv4hf3): Ditto.
! 	(cmul_conjv4hf3): Ditto.
  
! 2026-01-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/122845
! 	PR tree-optimization/122843
! 	* match.pd (`(T1)(a bit_op (T2)b)`): Also
! 	simplify if T1 is the same type as b and T2 is wider
! 	type than T1.
  
! 2026-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123528
! 	* tree-vect-patterns.cc (vect_recog_bool_pattern): Restore
! 	INTEGRAL_TYPE_P check but also allow SCALAR_FLOAT_TYPE_P.
  
! 2026-01-12  Martin Jambor  <mjambor@suse.cz>
  
! 	PR ipa/123543
! 	* ipa-cp.cc (propagate_bits_across_jump_function): Fix test for
! 	recipient_only_p.
  
! 2026-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/122830
! 	PR tree-optimization/122824
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize
! 	aggregate copy handling when no variable offsets are
! 	involved.
  
! 2026-01-12  Richard Biener  <rguenther@suse.de>
  
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Only tentatively
! 	accumulate extra_off when tentatively consuming components
! 	during aggregate copy handling.
  
! 2026-01-12  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123175
! 	* match.pd (vec_perm @0 @1 @2): Fixup for inputs having a
! 	different number of elements than the result.
! 	* tree-vect-generic.cc (lower_vec_perm): Likewise.
  
! 2026-01-12  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/123523
! 	* simplify-rtx.cc (simplify_const_binary_operation): Use
! 	DImode for VOIDmode shift and truncation counts if int_mode
! 	is narrower than HOST_BITS_PER_WIDE_INT rather than
! 	word_mode if int_mode it is narrower than BITS_PER_WORD.
  
! 2026-01-12  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* auto-profile.cc (autofdo_source_profile::offline_unrealized_inlines):
! 	Add missing check for in_map.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* asm-toplevel.cc (mark_fragile_ref_by_asm):
! 	Add marked_local to handle symbol as local.
! 	(ipa_asm_heuristics): New.
! 	(class pass_ipa_asm): New.
! 	(make_pass_ipa_asm_lgen): New.
! 	(make_pass_ipa_asm_wpa): New.
! 	* common.opt: New flto-toplevel-asm-heuristics.
! 	* passes.def: New asm passes.
! 	* timevar.def (TV_IPA_LTO_ASM): New.
! 	* tree-pass.h (make_pass_ipa_asm_lgen): New.
! 	(make_pass_ipa_asm_wpa): New.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* asm-toplevel.cc (mark_fragile_ref_by_asm): New.
! 	(struct constraint_data): New.
! 	(walk_through_constraints): Handle .local definitions.
! 	(analyze_toplevel_extended_asm): Propagate constraint_data.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* cgraph.h: Add must_remain_in_tu_*.
  	* cgraphclones.cc (cgraph_node::create_clone): Propagate
! 	must_remain_in_tu_body.
! 	* cif-code.def (MUST_REMAIN_IN_TU): New.
! 	* ipa-icf.cc (sem_function::equals_wpa): Check
! 	must_remain_in_tu_*
! 	(sem_variable::equals_wpa): Likewise.
! 	* ipa-inline-transform.cc (inline_call): Propagate
! 	must_remain_in_tu_body.
! 	* ipa-inline.cc (can_inline_edge_p): Check
! 	must_remain_in_tu_body.
! 	* lto-cgraph.cc (lto_output_node): Output must_remain_in_tu_*
! 	(lto_output_varpool_node): Likewise.
! 	(input_overwrite_node): Input must_remain_in_tu_*.
! 	(input_varpool_node): Likewise.
! 	* tree.cc (decl_address_ip_invariant_p): Check
! 	must_remain_in_tu_name.
! 	* varpool.cc (varpool_node::ctor_useable_for_folding_p): Check
! 	must_remain_in_tu_body.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* lto-cgraph.cc (compute_ltrans_boundary): Add symbols
! 	referenced from asm_nodes.
! 	* lto-streamer-out.cc (lto_output): Move adding asm_nodes
! 	to...
! 	* passes.cc (ipa_write_summaries): ...here.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* ipa-free-lang-data.cc (find_decls_types_in_asm): New.
! 	(free_lang_data_in_cgraph): Use find_decls_types_in_asm.
! 	* lto-cgraph.cc (input_cgraph_1): Move asm to..
! 	(input_toplevel_asms): ..here.
! 	* lto-streamer-in.cc (lto_input_toplevel_asms):
! 	Allow extended asm.
! 	* lto-streamer-out.cc (lto_output_toplevel_asms):
! 	Allow extended asm.
! 	(lto_output_toplevel_asms): Allow ASM_EXPR.
! 	* lto-streamer.h (input_toplevel_asms): New.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	PR ipa/122458
! 	* Makefile.in: Add new file.
! 	* cgraph.h (analyze_toplevel_extended_asm): New.
! 	* cgraphunit.cc (symbol_table::finalize_compilation_unit):
! 	Call analyze_toplevel_extended_asm.
! 	* asm-toplevel.cc: New file.
  
! 2026-01-11  Michal Jires  <mjires@suse.cz>
  
! 	* cgraph.cc (cgraph_node_cannot_be_local_p_1): Check ref_by_asm.
! 	(cgraph_node::verify_node): Likewise.
! 	* cgraph.h (cgraph_node::only_called_directly_or_aliased_p):
! 	Likewise.
! 	(cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
! 	Likewise.
! 	(varpool_node::can_remove_if_no_refs_p): Likewise.
! 	(varpool_node::all_refs_explicit_p): Likewise.
! 	* cgraphunit.cc (symtab_node::needed_p): Likewise.
! 	(analyze_functions): Likewise.
! 	* gimple-ssa-pta-constraints.cc (refered_from_nonlocal_fn):
! 	Likewise.
! 	(refered_from_nonlocal_var): Likewise.
! 	(ipa_create_global_variable_infos): Likewise.
! 	* ipa-comdats.cc (ipa_comdats): Likewise.
! 	* ipa-visibility.cc (cgraph_externally_visible_p): Likewise.
! 	(varpool_node::externally_visible_p): Likewise.
! 	* ipa.cc (symbol_table::remove_unreachable_nodes): Likewise.
! 	* lto-cgraph.cc (lto_output_node): Output ref_by_asm.
! 	(lto_output_varpool_node): Likewise.
! 	(input_overwrite_node): Input ref_by_asm.
! 	(input_varpool_node): Likewise.
! 	* symtab.cc (address_matters_1): Check ref_by_asm.
  
! 2026-01-11  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* config/cris/cris.cc (cris_rtx_costs) <POST_INC>: Handle POST_INC
! 	as ZERO_EXTEND and SIGN_EXTEND, i.e. as an operator without cost.
  
! 2026-01-10  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	* config/mcore/mcore.h (ASM_OUT_ADDR_DIFF_ELT): Remove.
  
! 2026-01-10  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390-modes.def (FLOAT_MODE): Add HF mode.
! 	(VECTOR_MODE): Add V{1,2,4,8,16}HF modes.
! 	* config/s390/s390.cc (s390_scalar_mode_supported_p): For 64-bit
! 	targets z10 and newer support HF mode.
! 	(s390_vector_mode_supported_p): Add HF mode.
! 	(s390_register_move_cost): Keep HF mode operands in registers.
! 	(s390_legitimate_constant_p): Support zero constant.
! 	(s390_secondary_reload): For GPR to FPR moves a secondary reload
! 	register is required.
! 	(s390_secondary_memory_needed): GPR<->FPR moves don't require
! 	secondary memory.
! 	(s390_libgcc_floating_mode_supported_p): For 64-bit targets z10
! 	and newer support HF mode.
! 	(s390_hard_regno_mode_ok): Allow HF mode for FPRs and VRs.
! 	(s390_function_arg_float): Consider HF mode, too.
! 	(s390_excess_precision): For EXCESS_PRECISION_TYPE_FLOAT16
! 	return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16.
! 	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
! 	* config/s390/s390.md (movhf): Define.
! 	(reload_half_gprtofpr_z10): Define.
! 	(signbithf2): Define.
! 	* config/s390/vector.md: Add new vector modes to various
! 	iterators.
  
! 2026-01-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123417
! 	* tree-cfgcleanup.cc (maybe_remove_forwarder_block): Always
! 	protect latches.
  
! 2026-01-10  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123431
! 	* gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call):
! 	Punt if type-generic builtins with a single argument don't have
! 	exactly one argument.  For returns_arg punt if call doesn't have
! 	at least one argument.
  
! 2026-01-09  Robin Dapp  <rdapp@oss.qualcomm.com>
  
! 	PR tree-optimization/123414
! 	* tree-ssa-forwprop.cc (simplify_vector_constructor):
! 	Use ssizetype as mask type.
  
! 2026-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* config/loongarch/genopts/gen-evolution.awk: Update
! 	copyright year.
! 	(copyright_header): Separate parts of Copyright word
! 	with " " so that it doesn't get matched by update-copyright.py.
! 	(gen_full_header, gen_full_source, gen_full_def): Include
! 	2026 year in the ranges.
  
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
  
! 	* channels.h (gcc::topics::analyzer_events::subscriber): New
! 	forward decl.
! 	(compiler_channels::analyzer_events_channel): New field.
! 	* doc/plugins.texi (PLUGIN_ANALYZER_INIT): Delete.
! 	* plugin.cc (register_callback): Delete PLUGIN_ANALYZER_INIT.
! 	(invoke_plugin_callbacks_full): Likewise.
! 	* plugin.def (PLUGIN_ANALYZER_INIT): Delete this event.
  
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (OBJS): Add tree-diagnostic-cfg.o.
! 	(OBJS-libcommon): Add custom-sarif-properties/cfg.o,
! 	diagnostics/digraphs-to-dot.o, and
! 	diagnostics/digraphs-to-dot-from-cfg.o.
! 	* cfghooks.cc: Define INCLUDE_VECTOR.  Add includes of
! 	"diagnostics/sarif-sink.h" and "custom-sarif-properties/cfg.h".
! 	(dump_bb_as_sarif_properties): New.
! 	* cfghooks.h (diagnostics::sarif_builder): New forward decl.
! 	(json::object): New forward decl.
! 	(cfg_hooks::dump_bb_as_sarif_properties): New callback field.
! 	(dump_bb_as_sarif_properties): New decl.
! 	* cfgrtl.cc (rtl_cfg_hooks): Populate the new callback
! 	field with rtl_dump_bb_as_sarif_properties.
! 	(cfg_layout_rtl_cfg_hooks): Likewise.
! 	* custom-sarif-properties/cfg.cc: New file.
! 	* custom-sarif-properties/cfg.h: New file.
! 	* diagnostics/digraphs-to-dot-from-cfg.cc: New file, partly
! 	adapted from gcc/graph.cc.
! 	* diagnostics/digraphs-to-dot.cc: New file.
! 	* diagnostics/digraphs-to-dot.h: New file, based on material in...
! 	* diagnostics/digraphs.cc: Include
! 	"diagnostics/digraphs-to-dot.h".
! 	(class conversion_to_dot): Rework and move to above.
! 	(make_dot_graph_from_diagnostic_graph): Likewise.
! 	(make_dot_node_from_digraph_node): Likewise.
! 	(make_dot_edge_from_digraph_edge): Likewise.
! 	(conversion_to_dot::get_dot_id_for_node): Likewise.
! 	(conversion_to_dot::has_edges_p): Likewise.
! 	(digraph::make_dot_graph): Use to_dot::converter::make and invoke
! 	the result to make the dot graph.
! 	* diagnostics/digraphs.h (digraph:get_all_nodes): New accessor.
! 	* diagnostics/html-sink.cc
! 	(html_builder::m_per_logical_loc_graphs): New field.
! 	(html_builder::add_graph_for_logical_loc): New.
! 	(html_sink::report_digraph_for_logical_location): New.
! 	* diagnostics/sarif-sink.cc (sarif_array_of_unique::get_element):
! 	New.
! 	(sarif_builder::report_digraph_for_logical_location): New.
! 	(sarif_sink::report_digraph_for_logical_location): New.
! 	* diagnostics/sink.h: Include "diagnostics/logical-locations.h".
! 	(sink::report_digraph_for_logical_location): New vfunc.
! 	* diagnostics/text-sink.h
! 	(text_sink::report_digraph_for_logical_location): New.
! 	* doc/invoke.texi (fdiagnostics-add-output): Clarify wording.
! 	Distinguish between scheme-specific vs GCC-specific keys, and add
! 	"cfgs" as the first example of the latter.
! 	* gimple-pretty-print.cc: Include "cfghooks.h", "json.h", and
! 	"custom-sarif-properties/cfg.h".
! 	(gimple_dump_bb_as_sarif_properties): New.
! 	* gimple-pretty-print.h (diagnostics::sarif_builder): New forward
! 	decl.
! 	(json::object): Likewise.
! 	(gimple_dump_bb_as_sarif_properties): New.
! 	* graphviz.cc (get_compass_pt_from_string): New
! 	* graphviz.h (get_compass_pt_from_string): New decl.
! 	* libsarifreplay.cc (sarif_replayer::handle_graph_object): Fix
! 	overlong line.
! 	* opts-common.cc: Define INCLUDE_VECTOR.
! 	* opts-diagnostic.cc: Define INCLUDE_LIST.  Include
! 	"diagnostics/sarif-sink.h", "tree-diagnostic-sink-extensions.h",
! 	"opts-diagnostic.h", and "pub-sub.h".
! 	(class gcc_extra_keys): New class.
! 	(opt_spec_context::opt_spec_context): Add "client_keys" param and
! 	pass to dc_spec_context.
! 	(handle_gcc_specific_keys): New.
! 	(try_to_make_sink): New.
! 	(gcc_extension_factory::singleton): New.
! 	(handle_OPT_fdiagnostics_add_output_): Rework to use
! 	try_to_make_sink.
! 	(handle_OPT_fdiagnostics_set_output_): Likewise.
! 	* opts-diagnostic.h: Include "diagnostics/sink.h".
! 	(class gcc_extension_factory): New.
! 	* opts.cc: Define INCLUDE_LIST.
! 	* print-rtl.cc: Include "dumpfile.h", "cfghooks.h", "json.h", and
! 	"custom-sarif-properties/cfg.h".
! 	(rtl_dump_bb_as_sarif_properties): New.
! 	* print-rtl.h (diagnostics::sarif_builder): New forward decl.
! 	(json::object): Likewise.
! 	(rtl_dump_bb_as_sarif_properties): New decl.
! 	* tree-cfg.cc (gimple_cfg_hooks): Use
! 	gimple_dump_bb_as_sarif_properties for new callback field.
! 	* tree-diagnostic-cfg.cc: New file, based on material in graph.cc.
! 	* tree-diagnostic-sink-extensions.h: New file.
! 	* tree-diagnostic.cc: Define INCLUDE_LIST.  Include
! 	"tree-diagnostic-sink-extensions.h".
! 	(compiler_ext_factory): New.
! 	(tree_diagnostics_defaults): Set gcc_extension_factory::singleton
! 	to be compiler_ext_factory.
  
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
  
! 	* channels.h: New file.
! 	* context.cc: Define INCLUDE_LIST.  Include "channels.h".
! 	(gcc::context::context): Create m_channels.
! 	(gcc::context::~context): Delete it.
! 	* context.h (struct compiler_channels): New forward decl.
! 	(gcc::context::get_channels): New accessor.
! 	(gcc::context::m_channels): New field.
! 	* passes.cc: Define INCLUDE_LIST.  Include "topics/pass-events.h"
! 	and "channels.h".
! 	(execute_one_pass): If the global context's pass_events_channel
! 	has subscribers, publish before_pass and after_pass events to it.
! 	* topics/pass-events.h: New file.
  
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
  
! 	* Makefile.in (OBJS-libcommon): Add pub-sub.o.
! 	* pub-sub.cc: New file.
! 	* pub-sub.h: New file.
! 	* selftest-run-tests.cc (selftest::run_tests): Call
! 	selftest::pub_sub_cc_tests.
! 	* selftest.h (selftest::pub_sub_cc_tests): New decl.
  
! 2026-01-09  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR target/123457
! 	* config/aarch64/aarch64-sve-builtins.cc (struct registered_function_hasher):
! 	Change base class to ggc_ptr_hash.
! 	(initial_indexes): Mark with GTY.
! 	(function_table): Likewise.
! 	(handle_arm_sve_h): Allocate function_table from ggc instead of heap.
  
! 2026-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* doc/invoke.texi (-x): Add c++-system-module, objc-cpp-output,
! 	objc++-cpp-output, adascil, adawhy, modula-2, modula-2-cpp-output,
! 	rust, algol68 and lto as further possible option arguments.
  
! 2026-01-09  Vladimir N. Makarov  <vmakarov@redhat.com>
  
! 	PR rtl-optimization/123121
! 	* lra-remat.cc (bad_for_rematerialization_p): Consider div/mod ops.
! 	(operand_to_remat): Exclude rematerialization of insns with
! 	multiple sets.
  
! 2026-01-09  Peter Bergner  <bergner@tenstorrent.com>
  
! 	PR target/123492
! 	* config/riscv/riscv-cores.def (RISCV_CORE)<tt-ascalon-d8>: Add missing
! 	extensions via use of rva23s64 profile and adding zkr, smaia, smmpm,
! 	smnpm, smrnmi, smstateen, ssaia, ssstrict, svadu.
  
! 2026-01-09  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-cp.h (class ipcp_bits_lattice): New members set_recipient_only,
! 	recipient_only_p and m_recipient_only.
! 	(class ipcp_vr_lattice): Likewise.
! 	(ipcp_vr_lattice::init): Initialize also m_recipient_only.
! 	* ipa-cp.cc (ipcp_bits_lattice::print): Adjust printting to also
! 	print the new flag.
! 	(ipcp_vr_lattice::print): Likewise.
! 	(ipcp_vr_lattice::set_recipient_only): New function.
! 	(ipcp_bits_lattice::set_recipient_only): Likewise.
! 	(set_all_contains_variable): New parameter MAKE_SIMPLE_RECIPIENTS, set
! 	bits and vr lattices to recibient only insted to bottom when it is
! 	true.
! 	(initialize_node_lattices): Pass true to the second parameter of
! 	set_all_contains_variable.
! 	(propagate_bits_across_jump_function): Treat recipient_only source
! 	lattices like bottom.
! 	(propagate_vr_across_jump_function): Likewise.
! 	(ipcp_store_vr_results): Skip non-local nodes.
  
! 2026-01-09  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-cp.cc (good_cloning_opportunity_p): Dump a message when
! 	bailing out early too.
! 	(find_more_scalar_values_for_callers_subset): Rename to
! 	find_scalar_values_for_callers_subset, collect constants regardless of
! 	what is already in the vector.  Remove dumping.
! 	(find_more_contexts_for_caller_subset): Rename to
! 	find_contexts_for_caller_subset, collect contexts regardless of what
! 	is already in the vector.  Remove dumping.
! 	(find_aggregate_values_for_callers_subset): Rename to
! 	find_aggregate_values_for_callers_subset_gc, implement using new
! 	functions.
! 	(find_aggregate_values_for_callers_subset_1): New function.
! 	(find_aggregate_values_for_callers_subset): Likewise.
! 	(copy_known_vectors_add_val): Removed.
! 	(dump_reestimation_message): New function.
! 	(decide_about_value): Remove formal parameter avals, compute it
! 	independently, and use it to estimate local cloning effects.
! 	(struct cloning_opportunity_ranking): New type.
! 	(compare_cloning_opportunities): New function.
! 	(cloning_opportunity_ranking_evaluation): Likewise.
! 	(decide_whether_version_node): Pre-sort candidates for cloning before
! 	really evaluating them.  Calculate context independent values only
! 	when considering versioning for all contexts.
! 	(ipcp_val_agg_replacement_ok_p): Renamed to
! 	ipcp_val_replacement_ok_p, check also non-aggregate values.
  
! 2026-01-09  Alexandre Oliva  <oliva@gnu.org>
  
! 	PR target/119430
! 	* config/arm/arm.cc (arm_function_ok_for_sibcall): Disable
! 	sibcalls for long-calls that use all call-clobbered
! 	general-purpose registers, including the static chain.
  
! 2026-01-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.cc (print_operand): Align %cN with %N.
! 	* config/s390/s390.md: Remove comment.
  
! 2026-01-09  Filip Kastl  <fkastl@suse.cz>
  
! 	PR c/123212
! 	* opts.cc: Enable -fbit-tests and -fjump-tables at -Og.
  
! 2026-01-09  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc
! 	(aarch64_expand_pragma_builtin): Add case for FMMLA.
! 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
! 	Add new __ARM_FEATURE_X macros.
! 	* config/aarch64/aarch64-simd-pragma-builtins.def
! 	(vmmlaq_f16_mf8): New intrinsic.
! 	(vmmlaq_f32_mf8): Likewise.
! 	* config/aarch64/aarch64-simd.md
! 	(@aarch64_<insn><VDQ_HSF_FMMLA:mode>): New instruction.
! 	* config/aarch64/aarch64-sve-builtins-base.cc: Update mmla_impl
! 	for new instructions.
! 	* config/aarch64/aarch64-sve-builtins-shapes.cc
! 	(struct mmla_def): Add support for the new widening forms.
! 	* config/aarch64/aarch64-sve-builtins-sve2.def (svmmla) Add new
! 	intrinsics.
! 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_narrow_s):
! 	Fix comment.
! 	* config/aarch64/aarch64-sve2.md
! 	(@aarch64_sve2_<sve_fp_op><SVE_FULL_HSF_FMMLA:mode><VNx16QI_ONLY:mode>): New instruction.
! 	(@aarch64_sve2_<sve_fp_op><VNx4SF_ONLY:mode><VNx8HF_ONLY:mode>): Likewise.
! 	* config/aarch64/aarch64.h (TARGET_F8F32MM): New macro.
! 	(TARGET_F8F16MM): Likewise.
! 	(TARGET_SVE_F16F32MM): Likewise.
! 	* config/aarch64/iterators.md (insn): Add fmmla entry.
! 	(VDQ_HSF_FMMLA): New iterator.
! 	(SVE_FULL_HSF_FMMLA): Likewise.
  
! 2026-01-09  Christophe Lyon  <christophe.lyon@linaro.org>
  
! 	* config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Remove
! 	TARGET_HAVE_MVE condition.
! 	(class arm_target_switcher): New.
! 	(arm_init_mve_builtins): Remove calls to
! 	arm_init_simd_builtin_types and
! 	arm_init_simd_builtin_scalar_types.  Switch to MVE isa flags.
! 	(arm_init_neon_builtins): Remove calls to
! 	arm_init_simd_builtin_types and
! 	arm_init_simd_builtin_scalar_types.
! 	(arm_need_mve_mode_regs): New.
! 	(arm_need_neon_mode_regs): New.
! 	(arm_target_switcher::arm_target_switcher): New.
! 	(arm_target_switcher::~arm_target_switcher): New.
! 	(arm_init_builtins): Call arm_init_simd_builtin_scalar_types and
! 	arm_init_simd_builtin_types.  Always call arm_init_mve_builtins
! 	and arm_init_neon_builtins.
  
! 2026-01-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR target/123489
! 	* config/i386/i386-builtin.def (__builtin_ia32_cvttsd2sis64_round,
! 	__builtin_ia32_cvttsd2usis64_round, __builtin_ia32_cvttss2sis64_round,
! 	__builtin_ia32_cvttss2usis64_round): Require OPTION_MASK_ISA_64BIT.
  
! 2026-01-09  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR rtl-optimization/123491
! 	* ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar
! 	integer modes for the inner mode of the subreg.
  
! 2026-01-09  Shreya Munnangi  <smunnangi1@ventanamicro.com>
! 	    Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/121778
! 	* match.pd: Add pattern to recognize rotate with one or more
! 	bits flipped via xor.
! 	* config/sh/sh.md (*rotcl); New variant which handles the output
! 	we get after the match.pd change above.
  
! 2026-01-09  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	* config/riscv/andes-23-series.md: Clamp reservations to 7c.
! 	* config/riscv/andes-25-series.md: Likewise.
! 	* config/riscv/andes-45-series.md: Likewise.
! 	* config/riscv/generic.md: Likewise.
! 	* config/riscv/mips-p8700.md: Likewise.
! 	* config/riscv/sifive-7.md: Likewise.
! 	* config/riscv/spacemit-x60.md: Likewise.
  
! 2026-01-09  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	PR gcov-profile/123019
! 	* auto-profile.cc (auto_profile): Call execute_fixup_cfg.
  
! 2026-01-09  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	PR ipa/123383
! 	* cgraph.cc (cgraph_edge::get_next_speculative_id): Check
! 	lto_stmt_uid in get_next_speculative_id.
  
! 2026-01-08  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/111817
! 	* stmt.cc (parse_input_constraint): For matching construct, goto
! 	before the loop without changing j instead of break.  Remove comment
! 	about that problem.
  
! 2026-01-08  Robin Dapp  <rdapp@ventanamicro.com>
  
! 	PR target/122846
! 	* config/riscv/riscv-opts.h (enum rvv_max_lmul_enum): Add
! 	RVV_CONV_DYNAMIC.
! 	(TARGET_MAX_LMUL): Ditto.
! 	* config/riscv/riscv-string.cc (use_vector_stringop_p): Use
! 	LMUL1 for RVV_CONV_DYNAMIC.
! 	(expand_rawmemchr): Ditto.
! 	(expand_strcmp): Ditto.
! 	(check_vectorise_memory_operation): Ditto.
! 	* config/riscv/riscv-vector-costs.cc (get_smallest_mode):
! 	New function.
! 	(compute_lmul_from_conversion_ratio): Calculate LMUL from
! 	largest/smallest type.
! 	(costs::has_unexpected_spills_p): Split.
! 	(costs::compute_live_ranges_and_lmul): Compute smallest type and
! 	call new function.
! 	(costs::cleanup_live_range_data): New function.
! 	(costs::compute_conversion_dynamic_lmul): New function.
! 	(costs::record_potential_unexpected_spills): Use new function.
! 	(costs::better_main_loop_than_p): Allow appropriate LMUL.
! 	* config/riscv/riscv-vector-costs.h: Declare.
! 	* config/riscv/riscv.opt: New option
! 	-mrvv-max-lmul=conv-dynamic.
  
! 2026-01-08  Qing Zhao  <qing.zhao@oracle.com>
  
! 	* doc/extend.texi: Update doc to support pointers inside structures.
  
! 2026-01-08  Olivier Hainque  <hainque@adacore.com>
! 	    Alexandre Oliva  <oliva@adacore.com>
  
! 	* config.gcc [x86_64-*-*]: Match *abi32 target, default to m32
! 	abi.  Accept 32 or m32 for --with-abi.
  
! 2026-01-08  Jonathan Wakely  <jwakely@redhat.com>
  
! 	* doc/invoke.texi (C++ Dialect Options): Fix typo in
! 	documentation of -flang-info-module-cmi.
  
! 2026-01-08  Aleksandar Rakic  <aleksandar.rakic@htecgroup.com>
  
! 	* Makefile.in: Add with_multi_buildlist for multilib
! 	configuration control. Pass an additional argument to
! 	genmultilib indicating whether --with-multi-buildlist is set
! 	(true or false). Use with_multi_buildlist to filter
! 	multilib directories in fixinc_list.
! 	* configure: Regenerate.
! 	* configure.ac: Restrict the installed fixedincludes multilibs.
! 	* configure.tgt: New file.
! 	* doc/install.texi: Add --with-multi-buildlist configure option
! 	for multilib filtering.
! 	* genmultilib: Document the new eleventh argument indicating
! 	whether --with-multi-buildlist configure option is set (true or
! 	false). Update argument parsing to include this flag before
! 	enable_multilib. Modify reuse rule validation:
! 	- Keep the original error for reuse of nonexistent multilibs
! 	when --with-multi-buildlist is not used.
! 	- Suppress the error only when the new configure option is
! 	active, allowing reuse rules to reference multilibs that are
! 	intentionally excluded from the build.
  
! 2026-01-08  Tomas Glozar  <tglozar@gmail.com>
  
! 	* config/ia64/ia64.cc (MAX_VECT_LEN): Set to 16 from 8.
  
! 2026-01-08  Robin Dapp  <rdapp.gcc@gmail.com>
  
! 	PR target/123268
! 	* gimple-match-exports.cc (convert_conditional_op): Check if
! 	orig_op->type and type of else value match.
  
! 2026-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
! 	    Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/122793
! 	* tree-vect-slp.cc (vect_add_slp_permutation): Document the existing
! 	identity_offset parameter.  Handle identities that take from the
! 	second input rather than the first.
  
! 2026-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123310
! 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Properly
! 	test against unknown offset.
  
! 2026-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123298
! 	* tree-ssa-alias.h (get_continuation_for_phi): Take a gphi *,
! 	add is_backedge hook argument.
! 	(walk_non_aliased_vuses): Add is_backedge hook argument.
! 	* tree-ssa-alias.cc (maybe_skip_until): Adjust.
! 	(get_continuation_for_phi): Use new hook to classify an
! 	edge into the PHI as backedge.
! 	(walk_non_aliased_vuses): Adjust.
! 	* gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children):
! 	Likewise.
! 	* ipa-prop.cc (determine_known_aggregate_parts): Likewise.
! 	* tree-ssa-scopedtables.cc (avail_exprs_stack::lookup_avail_expr):
! 	Likewise.
! 	* tree-ssa-pre.cc (translate_vuse_through_block): Likewise.
! 	* tree-ssa-sccvn.cc (vn_bb_to_rpo): Make BB to RPO order
! 	mapping accessible from new hook.
! 	(do_rpo_vn_1): Likewise.
! 	(vn_is_backedge): New hook to classify edge.
! 	(vn_reference_lookup_pieces): Adjust.
! 	(vn_reference_lookup): Likewise.
  
! 2026-01-08  Richard Biener  <rguenther@suse.de>
  
! 	* tree-vect-stmts.cc (vectorizable_shift): Improve missing
! 	optab or optab support messages.
! 	(vectorizable_operation): Likewise.
  
! 2026-01-08  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
! 	* config/s390/s390.cc (s390_logical_operator_ok_p): Test for
! 	volatile memory.
! 	(s390_mem_constraint): Remove volatile condition.
! 	* config/s390/s390.md (*andc_split_<mode>): Test for volatile
! 	memory.
  
! 2026-01-08  Richard Biener  <rguenther@suse.de>
  
! 	PR middle-end/123107
! 	* fold-const.cc (fold_binary_loc): Guard (v >> CST) == { 0, 0.. }
! 	to v < { 0, 0.. } folding.
  
! 2026-01-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	PR tree-optimization/123382
! 	* tree-if-conv.cc: Reject VEC_PERM_EXPR for factoring
! 	if it is the mask and they are constant.
  
! 2026-01-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* cse.cc (cse_find_path): Change follow_jumps to bool.
  
! 2026-01-07  Tomas Glozar  <tglozar@gmail.com>
  
! 	PR target/121535
! 	* config/ia64/ia64.cc (TARGET_ZERO_CALL_USED_REGS): Override
! 	function with target-specific one.
! 	(struct gcc_target): Move to end of file.
! 	(ia64_zero_call_used_regs): Add target-specific function.
  
! 2026-01-07  Xinhui Yang  <cyan@cyano.uk>
  
! 	* config.gcc: limit -lunwind usage by testing if the system
! 	libunwind is being used.
  
! 2026-01-07  Xi Ruoyao  <xry111@xry111.site>
  
! 	PR target/123320
! 	* config/loongarch/loongarch.md (<optab><mode>3): Only expand
! 	using psuedos when can_create_pseudo_p ().
! 	(addsi3): Likewise.
  
! 2026-01-07  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/123300
! 	* gimple-range-gori.cc (gori_map::exports_and_deps): New.
! 	* gimple-range-gori.h (exports_and_deps): New prototype.
! 	(FOR_EACH_GORI_EXPORT_AND_DEP_NAME): New macro.
! 	* tree-vrp.cc (remove_unreachable:remove_unreachable): Initialize
! 	m_tmp bitmap.
! 	(remove_unreachable:~remove_unreachable): Dispose of m_tmp bitmap.
! 	(remove_unreachable:fully_replaceable): Move from static function
! 	and check reachability of exports and dependencies.
  
! 2026-01-07  Andrew MacLeod  <amacleod@redhat.com>
  
! 	PR tree-optimization/123319
! 	* value-range.cc (irange::intersect): If there is a bitmask, snap
! 	subranges after creating them.
  
! 2026-01-07  Daniel Barboza  <daniel.barboza@oss.qualcomm.com>
  
! 	PR tree-optimization/102486
! 	* match.pd (`popcount (X & -X) -> -X != 0`): New pattern.
  
! 2026-01-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/119291
! 	PR rtl-optimization/121773
! 	* combine.cc (try_combine): Check that SET_DEST (setN) is neither
! 	modified_between_p nor reg_used_between_p instead of just not
! 	reg_used_between_p or pc_rtx.
  
! 2026-01-07  Richard Earnshaw  <rearnsha@arm.com>
  
! 	PR target/123390
! 	* config/arm/arm.cc (arm_gen_constant): Fix types of HWI literals.
! 	(arm_const_double_prefer_rsbs_rsc): Likewise.
  
! 2026-01-07  Alfie Richards  <alfie.richards@arm.com>
  
! 	* config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Add parsing
! 	for priority arguments.
! 	(aarch64_process_target_version_attr): Update call to
! 	aarch64_parse_fmv_features.
! 	(get_feature_mask_for_version): Update call to
! 	aarch64_parse_fmv_features.
! 	(aarch64_compare_version_priority): Add logic to order by priority if present.
! 	(aarch64_functions_b_resolvable_from_a): Update call to
! 	aarch64_parse_fmv_features.
! 	(aarch64_mangle_decl_assembler_name): Update call to
! 	aarch64_parse_fmv_features.
! 	(dispatch_function_versions): Add logic to sort by priority.
! 	(aarch64_same_function_versions): Add diagnostic if invalid use of
! 	priority syntax.
! 	(aarch64_merge_decl_attributes): Add logic to make suer priority
! 	arguments are preserved.
! 	(aarch64_check_target_clone_version): Update call to
! 	aarch64_parse_fmv_features.
  
! 2026-01-07  Alfie Richards  <alfie.richards@arm.com>
  
+ 	* target.def (TARGET_OPTION_SAME_FUNCTION_VERSIONS): Update
+ 	documentation.
+ 	* tree.cc (disjoint_version_decls): Change for new NULL parameter
+ 	to same_function_versions.
+ 	(diagnose_versioned_decls): Update to pass diagnostic location to
+ 	same_function_versions.
+ 	* doc/tm.texi: Regenerate.
+ 	* config/aarch64/aarch64.cc (aarch64_same_function_versions):
+ 	Update hook impl for new arguments.
+ 	* config/riscv/riscv.cc (riscv_same_function_versions): Update
+ 	hook impl for new arguments.
  	* config/loongarch/loongarch.cc
! 	(loongarch_same_function_versions): Likewise
! 	* hooks.cc (hook_stringslice_stringslice_unreachable): Changed
! 	to...
! 	(hook_stringslice_consttree_stringslice_consttree_unreachable):
! 	...this and add extra arguments.
! 	* hooks.h (hook_stringslice_stringslice_unreachable): Changed
! 	to...
! 	(hook_stringslice_consttree_stringslice_consttree_unreachable):
! 	and add extra arguments.
  
! 2026-01-07  Martin Jambor  <mjambor@suse.cz>
  
! 	* params.opt (param_ipa_cp_sweeps): New.
! 	* doc/invoke.texi (ipa-cp-sweeps): New.
! 	* ipa-cp.cc (max_number_sweeps): New.
! 	(get_max_overall_size): New parameter cur_sweep, use it and the total
! 	number of sweeps from the NODE to calculate the result too.
! 	(ipcp_propagate_stage): Get the maximum number of sweeps specified in
! 	the corresponding parameter of any possibly affected node.
! 	(good_cloning_opportunity_p): Add parameter cur_sweep, adjust the
! 	threshold according to it.
! 	(decide_about_value): New parameter cur_sweep, pass it to
! 	get_max_overall_size and to good_cloning_opportunity_p.
! 	(decide_whether_version_node): New parameter cur_sweep, pass it to
! 	decide_about_value and get_max_overall_size.  Make sure the node is
! 	not dead.
! 	(ipcp_decision_stage): Make multiple sweeps over the call-graph.
  
! 2026-01-07  Martin Jambor  <mjambor@suse.cz>
  
! 	* ipa-prop.h (ipa_node_params): Remove member do_clone_for_all_contexts.
! 	(ipa_node_params::ipa_node_params): Do not initialize
! 	do_clone_for_all_contexts.
! 	* ipa-cp.cc (gather_context_independent_values): Remove parameter
! 	calculate_aggs, calculate them always.
! 	(estimate_local_effects): Move the decision whether to clone for
! 	all context...
! 	(decide_whether_version_node): ...here.  Fix dumps.
! 	(decide_about_value): Adjust alignment in dumps.
  
! 2026-01-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123315
! 	* tree-vect-loop.cc (vect_analyze_loop_2): Reset
! 	LOOP_VINFO_USING_DECREMENTING_IV_P before retrying.
  
! 2026-01-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123221
! 	* tree-vect-loop.cc (vectorizable_reduction): When we did not
! 	find the non-conversion reduction operation, bail.
  
! 2026-01-07  Richard Biener  <rguenther@suse.de>
  
! 	PR tree-optimization/123316
! 	* tree-vect-loop.cc (vectorizable_reduction): Detect missing
! 	PHI patterns for bools.
  
! 2026-01-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
! 	PR debug/123259
! 	* toplev.cc (process_options): Guard CTF non-C warning by
! 	-Wcomplain-wrong-lang.
! 	* doc/invoke.texi (Warning Options, -Wno-complain-wrong-lang):
! 	Document effect on -gctf/-gsctf.
  
! 2026-01-07  Siddhesh Poyarekar  <siddhesh@gotplt.org>
  
! 	PR tree-optimization/123374
! 	* gimple-ssa-warn-access.cc (pass_waccess::set_pass_param): Add
! 	a second parameter.
! 	(pass_waccess::check_call): Skip access checks for waccess2.
! 	(pass_waccess::execute): Drop initialization of
! 	M_CHECK_DANGLING_P.
! 	* passes.def: Adjust.
  
! 2026-01-06  Sebastian Huber  <sebastian.huber@embedded-brains.de>
  
! 	* tree-profile.cc (tree_profiling): Do not use atomic operations
! 	if they are not available.  Try to use at least partial atomic
! 	updates as a fallback.
  
! 2026-01-06  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
  
! 	* config/xtensa/xtensa.h (EPILOGUE_USES): New macro definition.
! 	* config/xtensa/xtensa.md (return):
! 	Remove '(use (reg:SI A0_REG))' from the template description, and
! 	reload_completed from the condition.
! 	(sibcall_epilogue): Remove emitting '(use (reg:SI A0_REG))'.
  
! 2026-01-06  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* tree-if-conv.cc (ifcvt_can_predicate): Add check for
! 	normal builtins.
  
! 2026-01-06  Richard Ball  <Richard.Ball@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc
! 	(enum aarch64_builtins): New builtin flag.
! 	(aarch64_init_pcdphint_builtins): New builtin function.
! 	(aarch64_expand_pldir_builtin): Expander for new intrinsic.
! 	(aarch64_general_expand_builtin): Call new expander.
! 	* config/aarch64/aarch64.md
! 	(aarch64_pldir): New pattern for instrinsic.
! 	* config/aarch64/arm_acle.h
! 	(__attribute__): New call to builtin.
! 	(__pldir): Likewise.
  
! 2026-01-06  Richard Ball  <Richard.Ball@arm.com>
  
! 	* config/aarch64/aarch64-builtins.cc
! 	(enum aarch64_builtins): Add new flags.
! 	(aarch64_init_pcdphint_builtins): Create new Builtin functions.
! 	(aarch64_general_init_builtins): Call init for PCDPHINT.
! 	(aarch64_expand_stshh_builtin): Expander for new intrinsic.
! 	(aarch64_general_expand_builtin): Call new expander.
! 	* config/aarch64/aarch64-c.cc
! 	(aarch64_update_cpp_builtins): New feature.
! 	* config/aarch64/aarch64.h (TARGET_PCDPHINT): Likewise.
! 	* config/aarch64/arm_acle.h
! 	(__atomic_store_with_stshh): Generic to call builtins.
! 	* config/aarch64/atomics.md
! 	(@aarch64_atomic_store_stshh<mode>): New pattern for intrinsic.
! 	* config/aarch64/iterators.md: New UNSPEC.
  
! 2026-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR target/121192
! 	* expr.cc (store_constructor) <VECTOR_TYPE>: Disable the special
! 	trick for uniform boolean vectors with integer modes and single-bit
! 	mask entries on big-endian platforms.
  
! 2026-01-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* doc/install.texi (Prerequisites): Remove reference to Ada in
! 	conjunction with GCC 9.5 and adjust its GCC version requirement.
  
! 2026-01-06  Jakub Jelinek  <jakub@redhat.com>
! 	    Marco Falke  <falke.marco@gmail.com>
  
! 	PR tree-optimization/123351
! 	* tree-object-size.cc (object_sizes_set_temp): Separate calls to
! 	make_ssa_name to ensure deterministic execution order.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* tree-vect-stmts.cc (vectorizable_call): Handle trapping math.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* tree-if-conv.cc (ifcvt_can_predicate): Support gimple_call_builtin_p.
! 	(if_convertible_stmt_p, predicate_rhs_code,
! 	predicate_statements): Likewise.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* match.pd: Add COND_FMA to COND_FMS rewrite rules.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* doc/md.texi: Document them
! 	* internal-fn.cc (FOR_EACH_COND_FN_PAIR, internal_fn_else_index): Add
! 	SQRT, CEIL, FLOOR, ROUND and RINT.
! 	* internal-fn.def (IFN_COND_SQRT, IFN_COND_CEIL, IFN_COND_FLOOR,
! 	IFN_COND_ROUND, IFN_COND_RINT, IFN_COND_LEN_SQRT, IFN_COND_LEN_CEIL,
! 	IFN_COND_LEN_FLOOR, IFN_COND_LEN_ROUND, IFN_COND_LEN_RINT): New.
! 	* optabs.def (cond_rint_optab, cond_sqrt_optab, cond_round_optab,
! 	cond_ceil_optab, cond_floor_optab, cond_len_rint_optab,
! 	cond_len_sqrt_optab, cond_len_round_optab, cond_len_ceil_optab,
! 	cond_len_floor_optab): New.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR tree-optimization/122103
! 	* gimple.cc (gimple_could_trap_p_1): Handle __builtin_ calls.
  
! 2026-01-05  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	* config/riscv/riscv-string.cc (expand_block_move): Restore using
! 	inlined memcpy/memmove for unknown counts if the param hasn't been
! 	specified.
! 	(expand_vec_setmem): Similarly for memset.
  
! 2026-01-05  Pan Li  <pan2.li@intel.com>
  
! 	PR target/123317
! 	* config/riscv/autovec-opt.md: Take zero_extend for
! 	both the vwaddu and vwsubu wx pattern.
  
! 2026-01-05  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* config/aarch64/aarch64-sme.md
! 	(aarch64_sme_write_zt): Add TARGET_STREAMING requirement.
! 	(aarch64_sme_lut_zt): Ditto.
  
! 2026-01-05  Alice Carlotti  <alice.carlotti@arm.com>
  
! 	* doc/invoke.texi: Fix incorrect function name.
  
! 2026-01-05  Pan Li  <pan2.li@intel.com>
  
! 	* tree-vect-slp.cc (vec_slp_has_scalar_use): Adjust the
! 	depth_limit from 2 to 3.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/121290
! 	* config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): New.
! 	(aarch64_vector_costs): Add m_num_dup_stmts and m_num_total_stmts.
! 	(aarch64_vector_costs::add_stmt_cost): Use them.
! 	(adjust_body_cost): Likewise.
  
! 2026-01-05  Tamar Christina  <tamar.christina@arm.com>
  
! 	PR target/123017
! 	* config/aarch64/aarch64-json-schema.h: Add br_mispredict_factor.
! 	* config/aarch64/aarch64-json-tunings-parser-generated.inc
! 	(parse_branch_costs): Add br_mispredict_factor.
! 	* config/aarch64/aarch64-json-tunings-printer-generated.inc
! 	(serialize_branch_costs): Add br_mispredict_factor.
! 	* config/aarch64/aarch64-protos.h (struct cpu_branch_cost): Add
! 	br_mispredict_factor.
! 	* config/aarch64/aarch64.cc (aarch64_max_noce_ifcvt_seq_cost,
! 	aarch64_noce_conversion_profitable_p,
! 	TARGET_MAX_NOCE_IFCVT_SEQ_COST,
! 	TARGET_NOCE_CONVERSION_PROFITABLE_P): New.
! 	* config/aarch64/tuning_models/generic.h (generic_branch_cost): Add
! 	br_mispredict_factor.
! 	* config/aarch64/tuning_models/generic_armv8_a.h: Remove
! 	generic_armv8_a_branch_cost and use generic_branch_cost.
  
! 2026-01-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
  
! 	* configure: Regenerate.
  
! 2026-01-04  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	* config/riscv/riscv.cc (riscv_conditional_register_usage): Revert
! 	patch that made VXRM a global register.
  
! 2026-01-04  Keith Packard  <keithp@keithp.com>
  
! 	* config.gcc: Add clause for picolibc.
! 	* config/picolibc-spec.h: New file.
! 	* config/picolibc.opt: Likewise.
! 	* config/picolibc.opt.urls: Likewise.
! 	* configure.ac: Add support for --with-picolibc.
! 	* configure: Rebuilt.
! 	* doc/invoke.texi: Document picolibc options.
! 	* doc/tm.texi.in (LIBC_CPP_SPEC): Document.
! 	(LIBC_LINK_SPEC): Similarly.
! 	* doc/tm.texi: Rebuilt.
! 	* gcc.cc (LIBC_CPP_SPEC): Provide default definition.
! 	(LIBC_LINK_SPEC): Likewise.
! 	(cpp_spec): Include LIBC_CPP_SPEC.
! 	(link_spec): Similarly for LIBC_LINK_SPEC.
  
! 2026-01-04  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	* doc/contrib.texi: Add Kazumoto & Oleg.
  
! 2026-01-04  Richard Braun  <rbraun@sceen.net>
  
! 	* config/c6x/c6x-sched.md.in (mpydp_m_N__CROSS_,
! 	mpyspdp_m_N__CROSS_, mpysp2dp_m_N__CROSS_): Update reservations.
! 	* config/c6x/c6x-sched.md: Regenerated.
! 	* config/c6x/c6x.md (m1dp, m1spdp, m2dp, m2spdp): New CPU units.
  
! 2026-01-04  Kalvis Duckmanton  <kalvisd@gmail.com>
  
! 	* config/host-netbsd.cc (netbsd_gt_pch_use_address): Support PCH
! 	loading at addresses other than its preferred address.
! 	* config/host-openbsd.cc (openbsd_gt_pch_use_address): Likewise.
  
! 2026-01-04  Daniel Barboza  <daniel.barboza@oss.qualcomm.com>
  
! 	PR tree-optimization/122608
! 	* match.pd (`(c ? a : b) op d -> c ? (a op d) : (b op d)`): New
! 	pattern.
! 	(`d op (c ? a : b) -> c ? (d op a) : (d op b)`): Likewise
  
! 2026-01-04  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
! 	PR target/123010
! 	* simplify-rtx.cc (simplify_binary_operation_1, case ASHIFT): Simplify
! 	case where a left shift of the sign extracted field can be turned into
! 	a sign extension of a left shift.
  
! 2026-01-03  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/123372
! 	* tree-ssa-math-opts.cc
! 	(build_saturation_binary_arith_call_and_replace): Pass type of op_0
! 	rather than type of lhs as second argument to
! 	direct_internal_fn_supported_p.
  
! 2026-01-02  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* config/aarch64/aarch64-sve-builtins-shapes.cc
! 	(INCLUDE_ALGORITHM): Define.
  
! 2026-01-01  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
  
! 	* cgraph.cc (cgraph_edge::get_next_speculative_id): New.
! 	* cgraph.h (cgraph_edge::get_next_speculative_id): New.
! 	* ipa-devirt.cc (ipa_devirt): Use get_next_speculative_id
! 	in make_speculative.
  
! 2026-01-01  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.cc (process_command): Update copyright notice dates.
  	* gcov-dump.cc (print_version): Ditto.
***************
*** 10217,10368 ****
  	* 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
--- 6728,6735 ----
  	* doc/install.texi: Ditto.
  	* doc/invoke.texi: Ditto.
  
  
! Copyright (C) 2026 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-15.2.0/gcc/ChangeLog-2025 gcc-16.1.0-RC-20260423/gcc/ChangeLog-2025
*** gcc-15.2.0/gcc/ChangeLog-2025	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ChangeLog-2025	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,36191 ----
+ 2025-12-31  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* doc/install.texi (--enable-languages): Fix typo.
+ 
+ 2025-12-31  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/121485
+ 	* config/riscv/vector-crypto.md: Fix mode attribute for the
+ 	lmul extending Zvkned patterns.
+ 
+ 2025-12-30  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123318
+ 	* config/riscv/riscv.cc (riscv_legitimize_const_move): Force
+ 	riscv_split_symbol to generate a new temporary if the provided
+ 	one isn't Pmode.
+ 
+ 2025-12-29  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Remove restriction on comparison
+ 	against 0.
+ 
+ 2025-12-29  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123308
+ 	* ifcvt.cc (noce_try_cond_zero_arith): If noce_emit_cmove fails
+ 	for a lowpart subreg case, then try the full reg cmove and
+ 	take the lowpart subreg afterwards.
+ 
+ 2025-12-29  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Don't swap if_info->cond
+ 	but use it directly with if_info->rev_cond.
+ 
+ 2025-12-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* auto-profile.cc (string_table::get_original_name): Avoid using
+ 	init-statement in selection statement.
+ 
+ 2025-12-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure: Regenerate.
+ 
+ 2025-12-29  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/i386.md (*setcc_qi): Force output setzucc for
+ 	reg operand[0].
+ 	(*setcc_qi_slp): Likewise.
+ 
+ 2025-12-29  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123295
+ 	* lra-eliminations.cc (lra_eliminate_regs_1): For a debug
+ 	insn, create a raw SUBREG if simplify_gen_subreg fails.
+ 
+ 2025-12-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (gcc_cv_ld_ctf): New check.
+ 	(gcc_cv_have_ctfmerge): Likewise.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* config/sol2.h (SCTF_CC1_SPEC): Define.
+ 	(LINK_SCTF_SPEC): Define.
+ 	(LINK_SPEC): Add LINK_SCTF_SPEC.
+ 	* config/i386/sol2.h (CC1_SPEC): Add SCTF_CC1_SPEC.
+ 	* config/sparc/sol2.h: Likewise.
+ 	* config/sol2.opt (gsctf): Declare.
+ 	* config/sol2.opt.urls: Regenerate.
+ 	* doc/invoke.texi (Option Summary): Add -gsctf.
+ 	(Solaris 2 Options): Document it.
+ 
+ 2025-12-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (gcc_cv_as_ix86_xbrace_comment): Remove.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Adapt guard.
+ 
+ 2025-12-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/123114
+ 	* simplify-rtx.cc (simplify_context::simplify_relational_operation):
+ 	Verify XEXP (XEXP (op0, 0), 0) mode and use CONST0_RTX (cmp_mode)
+ 	instead of CONST0_RTX (mode).
+ 
+ 2025-12-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Revert:
+ 	2025-12-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* ifcvt.cc (noce_process_if_block): Move noce_try_cond_zero_arith
+ 	last.
+ 
+ 2025-12-26  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123283
+ 	* config/riscv/sync.md (subword_atomic_fetch_strong_nand): Add
+ 	USEs for naked operands that might be pseudos.
+ 	(subword_atomic_fetch_strong_<atomic_optab>): Likewise.
+ 	(subword_atomic_exchange_strong): Likewise.
+ 	(subword_atomic_cas_strong): Likewise.
+ 
+ 2025-12-26  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/riscv/riscv.opt.urls: Regenerated.
+ 
+ 2025-12-26  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* config/riscv/gen-riscv-ext-texi.cc: Fix table markup and
+ 	layout.
+ 	* config/riscv/riscv-ext-corev.def: Document missing extensions,
+ 	regularize spelling/capitalization in existing descriptions
+ 	* config/riscv/riscv-ext-mips.def: Likewise.
+ 	* config/riscv/riscv-ext-sifive.def: Likewise.
+ 	* config/riscv/riscv-ext-thead.def: Likewise.
+ 	* config/riscv/riscv-ext.def: Likewise.
+ 	* doc/riscv-ext.texi: Regenerated.
+ 
+ 2025-12-26  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/riscv/riscv.opt (mplt): Mark deprecated option Undocumented.
+ 	(msmall-data-limit=): Mark RejectNegative.
+ 	* doc/invoke.texi (Option Summary) <RISC-V Options>:  Remove -mplt
+ 	documentation.  Only list one form of each option.  Add missing
+ 	options -mcpu, -mscalar-strict-align, -mno-vector-strict-align,
+ 	-momit-leaf-frame-pointer, -mstringop-strategy, -mrvv-vector-bits,
+ 	-mrvv-max-lmul, -madjust-lmul-cost, -mmax-vectorization, and
+ 	-mno-autovec-segment.
+ 	(RISC-V Options):  Remove -mplt documentation.  Add documentation for
+ 	missing options listed above.  Add missing index entries for negative
+ 	forms.  Correct the default for the -minline-str* options, which
+ 	has changed.  Copy-edit for markup, spelling, and usage.  Trivial
+ 	whitespace fixes.
+ 
+ 2025-12-25  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	* tree-ssa-math-opts.cc (execute_cse_sincos_1): If
+ 	mathfn_built_in_type fails to determine a type for our
+ 	operation, presume that it is the same as the input type.
+ 
+ 2025-12-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/predicates.md: Add geu to the swappable
+ 	cmp operator iterator.
+ 	* config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Take
+ 	care of the swapped rtx code correspondly.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc: (svmul_impl::fold):
+ 	Replace use of type_suffix_pair with type_suffix_triple.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc: (parse_element_type):
+ 	Handle third type suffix.
+ 	(parse_type): Handle c2 in function signature. Add the u signature with
+ 	the ability to pass a tuple with twice as many vectors as the base type.
+ 	Calculate number of vectors against the type with the maximum number of
+ 	bits rather than "the other one".
+ 	(load_contiguous_base::resolve): Add argument to resolve_to call.
+ 	(compare_scalar_def::resolve): Likewise.
+ 	(ternary_mfloat8_def::resolve): Likewise.
+ 	(ternary_mfloat8_lane_def::resolve): Likewise.
+ 	(ternary_mfloat8_opt_n_def::resolve): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc: (TYPES_all_pred,
+ 	TYPES_all_count, TYPES_all_pred_count, TYPES_all_float,
+ 	TYPES_all_signed, TYPES_all_float_and_signed, TYPES_all_unsigned,
+ 	TYPES_all_integer, TYPES_all_arith, TYPES_all_data, TYPES_b, TYPES_c,
+ 	TYPES_b_unsigned, TYPES_b_integer, TYPES_b_data, TYPES_bh_integer,
+ 	TYPES_bs_unsigned, TYPES_bhs_signed, TYPES_bhs_unsigned,
+ 	TYPES_bhs_integer, TYPES_bh_data, TYPES_bhs_data, TYPES_bhs_widen,
+ 	TYPES_h_bfloat, TYPES_h_float, TYPES_h_integer, TYPES_h_data,
+ 	TYPES_hs_signed, TYPES_hs_integer, TYPES_hs_float, TYPES_hs_data,
+ 	TYPES_hd_unsigned, TYPES_hsd_signed, TYPES_hsd_integer, TYPES_hsd_data,
+ 	TYPES_h_float_mf8, TYPES_s_float, TYPES_s_float_mf8,
+ 	TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer, TYPES_s_signed,
+ 	TYPES_s_unsigned, TYPES_s_integer, TYPES_s_data, TYPES_sd_signed,
+ 	TYPES_sd_unsigned, TYPES_sd_integer, TYPES_sd_data,
+ 	TYPES_all_float_and_sd_integer, TYPES_d_float, TYPES_d_unsigned,
+ 	TYPES_d_integer, TYPES_d_data, TYPES_cvt, TYPES_cvt_bfloat,
+ 	TYPES_cvt_h_s_float, TYPES_cvt_f32_f16, TYPES_cvt_long,
+ 	TYPES_cvt_narrow_s, TYPES_cvt_narrow, TYPES_cvt_s_s, TYPES_cvt_mf8,
+ 	TYPES_cvtn_mf8, TYPES_cvtnx_mf8, TYPES_inc_dec_n, TYPES_qcvt_x2,
+ 	TYPES_qcvt_x4, TYPES_qrshr_x2,TYPES_qrshru_x2, TYPES_qrshr_x4,
+ 	TYPES_qrshru_x4, TYPES_reinterpret, TYPES_reinterpret_b,TYPES_while,
+ 	TYPES_while_x, TYPES_while_x_c, TYPES_s_narrow_fsu,TYPES_all_za,
+ 	TYPES_d_za, TYPES_za_bhsd_data,TYPES_za_all_data, TYPES_za_h_mf8,
+ 	TYPES_za_hs_mf8, TYPES_za_h_bfloat, TYPES_za_h_float,
+ 	TYPES_za_s_b_signed, TYPES_za_s_b_unsigned, TYPES_za_s_b_integer,
+ 	TYPES_za_s_h_integer,TYPES_za_s_h_data, TYPES_za_s_unsigned,
+ 	TYPES_za_s_integer, TYPES_za_s_mf8, TYPES_za_s_float, TYPES_za_s_data,
+ 	TYPES_za_d_h_integer, TYPES_za_d_float, TYPES_za_d_integer,
+ 	TYPES_mop_base, TYPES_mop_base_signed, TYPES_mop_base_unsigned,
+ 	TYPES_mop_i16i64, TYPES_mop_i16i64_signed, TYPES_mop_i16i64_unsigned,
+ 	ΤYPES_za): Extend defines to three arguments.
+ 	(DEF_VECTOR_TYPE, DEF_DOUBLE_TYPE): Likewise.
+ 	(DEF_TRIPLE_TYPE): Add new define.
+ 	(DEF_SVE_TYPES_ARRAY): Redefine all types_ arrays into arrays of
+ 	type_suffix_triple.
+ 	(types_none): Likewise.
+ 	(function_instance::hash): Add third type to hash calculation.
+ 	(function_builder::get_name): Add third type to function name.
+ 	(function_builder::add_overloaded_functions): Handle third type.
+ 	(function_resolver::lookup_form): Likewise.
+ 	(function_resolver::resolve_to): Likewise.
+ 	(function_resolver::resolve_unary): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.h: (type_suffix_triple): replace
+ 	type_suffix_pair.
+ 	(function_group_info::types): Likewise.
+ 	(function_instance::ctor): Likewise.
+ 	(function_instance::type_suffix_ids): Likewise.
+ 	(function_resolver::lookup_form): Add third type argument.
+ 	(function_resolver::resolve_to): Likewise.
+ 	(function_instance::operator==): Add third type to equality calculation.
+ 
+ 2025-12-24  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): New insn.
+ 	(@aarch64_fvdot_half<optab>): Likewise.
+ 	(@aarch64_fvdot_half<optab>_plus): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(class svvdot_half_impl): New function impl.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (FUNCTION): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (struct dot_half_za_slice_lane_def):
+ 	New function shape.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svdot): New function.
+ 	(svdot_lane): Likewise.
+ 	(svvdot_lane): Likewise.
+ 	(svvdotb_lane): Likewise.
+ 	(svvdott_lane): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.h (svvdotb_lane_za): New function.
+ 	(svvdott_lane_za): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_za_s_mf8): New types array.
+ 	(TYPES_za_hs_mf8): Likewise.
+ 	(za_hs_mf8): Likewise.
+ 	* config/aarch64/iterators.md (SME_ZA_F8F16): New mode iterator.
+ 	(SME_ZA_F8F32): Likewise.
+ 	(SME_ZA_FP8_x1): Likewise.
+ 	(SME_ZA_FP8_x2): Likewise.
+ 	(SME_ZA_FP8_x4): Likewise.
+ 	(UNSPEC_SME_FDOT_FP8): New unspec.
+ 	(UNSPEC_SME_FVDOT_FP8): Likewise.
+ 	(UNSPEC_SME_FVDOTT_FP8): Likewise.
+ 	(UNSPEC_SME_FVDOTB_FP8): Likewise.
+ 	(SME_FP8_DOTPROD): New int iterator.
+ 	(SME_FP8_FVDOT): Likewise.
+ 	(SME_FP8_FVDOT_HALF): Likewise.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>): Add
+ 	new define_insn.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(struct binary_za_m_base): Support fpm argument.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (svmopa_za): Extend for
+ 	fp8.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svmopa): Add new
+ 	DEF_SME_ZA_FUNCTION_GS_FPM entries.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md
+ 	(@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>): Add
+ 	new define_insn.
+ 	(*aarch64_sme_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus,
+ 	*aarch64_sme_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus,
+ 	@aarch64_sme_<optab><SME_ZA_F8F16_32:mode><VNx16QI_ONLY:mode>,
+ 	*aarch64_sme_<optab><VNx8HI_ONLY:mode><VNx16QI_ONLY:mode>_plus,
+ 	*aarch64_sme_<optab><VNx4SI_ONLY:mode><VNx16QI_ONLY:mode>_plus,
+ 	@aarch64_sme_single_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x24:mode>,
+ 	*aarch64_sme_single_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus,
+ 	*aarch64_sme_single_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x24:mode>_plus,
+ 	@aarch64_sme_lane_<optab><SME_ZA_F8F16_32:mode><SME_ZA_FP8_x124:mode>,
+ 	*aarch64_sme_lane_<optab><VNx8HI_ONLY:mode><SME_ZA_FP8_x124:mode>,
+ 	*aarch64_sme_lane_<optab><VNx4SI_ONLY:mode><SME_ZA_FP8_x124:mode>):
+ 	Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc
+ 	(struct binary_za_slice_lane_base): Support fpm argument.
+ 	(struct binary_za_slice_opt_single_base): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (svmla_za): Extend for fp8.
+ 	(svmla_lane_za): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svmla_lane): Add new
+ 	DEF_SME_ZA_FUNCTION_GS_FPM entries.
+ 	(svmla): Likewise.
+ 	* config/aarch64/iterators.md (SME_ZA_F8F16_32): Add new mode iterator.
+ 	(SME_ZA_FP8_x24, SME_ZA_FP8_x124): Likewise.
+ 	(UNSPEC_SME_FMLAL): Add new unspec.
+ 	(za16_offset_range): Add new mode_attr.
+ 	(za16_32_long): Likewise.
+ 	(za16_32_last_offset): Likewise.
+ 	(SME_FP8_TERNARY_SLICE): Add new iterator.
+ 	(optab): Add entry for UNSPEC_SME_FMLAL.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64.h:
+ 	(TARGET_STREAMING_SME_F8F16, TARGET_STREAMING_SME_F8F32): Add defines.
+ 	* config/aarch64/aarch64-c.cc:
+ 	(__ARM_FEATURE_SME_F8F16, __ARM_FEATURE_SME_F8F32): Add defines.
+ 	* config/aarch64/aarch64-option-extensions.def:
+ 	(sme-f8f16, sme-f8f32): Add arch options in command line.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h:
+ 	(sme_2mode_function_t): Pass unspec_for_mfp8 parameter through ctor.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def:
+ 	(DEF_SME_FUNCTION_GS, DEF_SME_FUNCTION): Redefine based on
+ 	DEF_SME_FUNCTION_GS_FPM.
+ 	(DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Redefine based on
+ 	DEF_SME_ZA_FUNCTION_GS_FPM.
+ 	(AARCH64_FL_SME_F8F16, AARCH64_FL_SME_F8F32): Add new
+ 	REQUIRED_EXTENSIONS sections.
+ 	* config/aarch64/aarch64-sve-builtins.cc:
+ 	(TYPES_za_h_mf8): Add new types.
+ 	(TYPES_za_s_mf8): Likewise.
+ 	(sme_function_groups): Define using DEF_SME_FUNCTION_GS_FPM instead of
+ 	DEF_SME_FUNCTION_GS.
+ 	* doc/invoke.texi: (sme-f8f16, sme-f8f32): Add documentation of option.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svscale_impl): Added new
+ 	class for dealing with all svscale functions (including sve)
+ 	(svscale): updated FUNCTION macro call to make use of new class.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: (svscale):
+ 	Added new DEF_SVE_FUNCTION_GS call to enable recognition of new variant.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_fscale<mode>): Added
+ 	new define_insn. (@aarch64_sve_single_fscale<mode>): Likewise.
+ 	* config/aarch64/iterators.md: (SVE_Fx24_NOBF): Added new iterator,
+ 	similar to SVE_Fx24 but without brainfloat.
+ 	(SVE_Fx24): Updated to make use of SVE_Fx24_NOBF.
+ 	(SVSCALE_SINGLE_INTARG): Added new mode_attr.
+ 	(SVSCALE_INTARG): Likewise.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svcvt_impl): Update to
+ 	handle fp8 cases.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtn): Added
+ 	DEF_SVE_FUNCTION_GS_FPM instances.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve2_fp8_cvtn<mode>): Updated define_insn for additional case.
+ 	(@aarch64_sme2_fp8_cvt<mode>): Added new define_insn.
+ 	* config/aarch64/iterators.md (VNx16F_NARROW): Added new iterator to
+ 	handle narrowing SVE floating point operations.
+ 	(UNSPEC_FCVT): Added new unspec.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl1, svcvtl2): Added
+ 	new FUNTIONs.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def
+ 	(svcvt1, svcvt2, svcvtl1, svcvtl2): Added new DEF_SVE_FUNCTION_GS_FPM.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl1, svcvtl2): Added
+ 	new function_base.
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_resolver::resolve_unary): use group_suffix_id when resolving
+ 	C overloads.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>): Added new define_insn.
+ 	* config/aarch64/aarch64.h (TARGET_SSME2_FP8): Added new define.
+ 	* config/aarch64/iterators.md
+ 	(UNSPEC_F1CVTL. UNSPEC_F2CVTL): Added new unspecs.
+ 	(FP8CVT_UNS): Extended int_iterator.
+ 	(fp8_cvt_uns_op): Likewise.
+ 
+ 2025-12-24  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (TYPES_za_bhsd_data): Add
+ 	D (za8, mf8) combination to za_bhsd_data.
+ 
+ 2025-12-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* ifcvt.cc (noce_process_if_block): Move noce_try_cond_zero_arith
+ 	last.
+ 
+ 2025-12-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123276
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar integral modes.
+ 
+ 2025-12-23  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123274
+ 	* config/riscv/riscv.md (usmul<mode>3): Add proper condition.
+ 
+ 2025-12-23  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123278
+ 	* config/riscv/andes-45-series.md (andes_45_fpu_alu_s): Handle
+ 	BF/HF modes too.
+ 	(andes_45_fpu_mul_s, andes_45_fpu_mac_s): Likewise.
+ 
+ 2025-12-23  Milan Tripkovic  <Milan.Tripkovic@rt-rk.com>
+ 
+ 	* config/riscv/spacemit-x60.md (spacemit_x60_clmul): Adjust latency.
+ 
+ 2025-12-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config.gcc: Relax the check for LoongArch with_tune.
+ 
+ 2025-12-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/123267
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Pass the original operands
+ 	of a instead of the stripped off values. The mode of the operand
+ 	which is being used.
+ 
+ 2025-12-23  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* auto-profile.cc (struct summary_info): New struct.
+ 	(summary_info::read): New function.
+ 	(summary_info::get_threshold_count): Likewise.
+ 	(function_instance::read_function_instance): Read
+ 	afdo_profile_info->sum_max directly from summary info.
+ 	(autofdo_source_profile::read): Set afdo_hot_bb_threshold from
+ 	param_hot_bb_count_ws_permille.
+ 	(read_profile): Call summary_info->read.
+ 	(end_auto_profile): Free afdo_summary_info.
+ 	* gcov-io.h (GCOV_TAG_AFDO_SUMMARY): New define.
+ 
+ 2025-12-23  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* auto-profile.cc (string_table::~string_table): Update to free
+ 	original_names_map_.
+ 	(string_table::original_names_map_): New member.
+ 	(string_table::clashing_names_map_): Likewise.
+ 	(string_table::get_original_name): New function.
+ 	(string_table::read): Figure out clashes while reading.
+ 	(autofdo_source_profile::offline_external_functions): Call
+ 	get_original_name.
+ 
+ 2025-12-23  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* auto-profile.cc (AUTO_PROFILE_VERSION): Bump to 3.
+ 	(class function_instance_descriptor): New class.
+ 	(get_normalized_path): New function.
+ 	(string_table::~string_table): Update to free filenames.
+ 	(string_table::vector_): Rename to ...
+ 	(string_table::symbol_names_): ... this.
+ 	(string_table::map_): Rename to ...
+ 	(string_table::symbol_name_map_): ... this.
+ 	(string_table::filenames_): New member.
+ 	(string_table::filename_map_): Likewise.
+ 	(string_table::symbol_to_filename_map_): Likewise.
+ 	(string_table::get_index): Update to lookup symbol_name_map_.
+ 	(string_table::get_name): Rename to ...
+ 	(string_table::get_symbol_name): ... this.
+ 	(string_table::add_name): Rename to ...
+ 	(string_table::add_symbol_name): ... this.
+ 	(string_table::get_filename): New function.
+ 	(string_table::get_filename_by_symbol): Likewise.
+ 	(string_table::get_filename_index): Likewise.
+ 	(string_table::add_filename): Likewise.
+ 	(string_table::read): Read file names from the GCOV profile.
+ 	(function_instance::offline): Call
+ 	get_function_instance_by_descriptor.
+ 	(string_table::get_cgraph_node): Call get_symbol_name and
+ 	symbol_name.
+ 	(function_instance::get_function_instance_by_decl): Likewise.
+ 	(function_instance::get_cgraph_node): Likewise.
+ 	(function_instance::merge): Likewise.
+ 	(match_with_target): Likewise.
+ 	(function_instance::match): Likewise.
+ 	(function_instance::dump): Likewise.
+ 	(function_instance::dump_inline_stack): Likewise.
+ 	(function_instance::find_icall_target_map): Likewise.
+ 	(autofdo_source_profile::offline_unrealized_inlines): Likewise.
+ 	(autofdo_source_profile::offline_external_functions): Likewise.
+ 	(function_instance::read_function_instance): Likewise.
+ 	(afdo_indirect_call):
+ 	Also call find_function_instance, add_function_instance and
+ 	remove_function_instance.
+ 	(autofdo_source_profile::read): Likewise.
+ 	(autofdo_source_profile::get_function_instance_by_decl): Call
+ 	find_function_instance.
+ 	(autofdo_source_profile::get_function_instance_by_name_index):
+ 	Rename to ...
+ 	(autofdo_source_profile::get_function_instance_by_descriptor):
+ 	... this.
+ 	(autofdo_source_profile::find_iter_for_function_instance): New
+ 	function.
+ 	(autofdo_source_profile::find_function_instance): Likewise.
+ 	(autofdo_source_profile::add_function_instance): Likewise.
+ 	(autofdo_source_profile::remove_function_instance): Likewise.
+ 
+ 2025-12-22  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	PR middle-end/123067
+ 	* tree-ssa-loop-im.cc(is_self_write): Check
+ 	load and store refer to same location.
+ 
+ 2025-12-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* ifcvt.cc (get_base_reg): Handle subreg.
+ 
+ 2025-12-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	PR target/122769
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Use noce_emit_cmove.
+ 	Delete noce_emit_czero () no longer used.
+ 
+ 2025-12-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Use expand_simple_binop
+ 	to re-expand the final pattern.
+ 
+ 2025-12-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* ifcvt.cc (noce_try_cond_zero_arith): Refactor.
+ 
+ 2025-12-22  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* ifcvt.cc (noce_bbs_ok_for_cond_zero_arith): Move logic out.
+ 	(noce_try_cond_zero_arith): Into here.
+ 
+ 2025-12-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Signal
+ 	when this creates a simple copy that may be optimized.
+ 	(riscv_legitimate_poly_move): Try to optimize away any copy created
+ 	by riscv_expand_mult_with_const_int.
+ 
+ 2025-12-22  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* doc/invoke.texi: Document
+ 	--param=memtag-instrument-mem-intrinsics
+ 
+ 2025-12-21  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/123089
+ 	* tree-vect-loop.cc (vect_update_ivs_after_vectorizer_for_early_breaks):
+ 	Add conversion if required, Note that if we did truncate the original
+ 	scalar loop had an overflow here anyway.
+ 	(vect_get_max_nscalars_per_iter): Expose.
+ 	* tree-vect-stmts.cc (vect_compute_type_for_early_break_scalar_iv): New.
+ 	(vectorizable_early_exit): Find smallest type where we won't have UB in
+ 	the signed IV and store it.
+ 	* tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_IV_TYPE): New.
+ 	(class _loop_vec_info): Add early_break_iv_type.
+ 	(vect_min_prec_for_max_niters): New.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Use it.
+ 
+ 2025-12-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/123222
+ 	* doc/extend.texi: Fix copy-and-pasto for __builtin_*_overflow_p.
+ 
+ 2025-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/123216
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA_AVX512FP16_UNSET):
+ 	Remove unused macro.
+ 	(OPTION_MASK_ISA2_AVX512FP16_UNSET, OPTION_MASK_ISA2_AVX512BF16_UNSET,
+ 	OPTION_MASK_ISA2_AVX512BW_UNSET): Or in OPTION_MASK_ISA2_AVX10_1_UNSET.
+ 	(OPTION_MASK_ISA2_AVX512CD_UNSET, OPTION_MASK_ISA2_AVX512DQ_UNSET,
+ 	OPTION_MASK_ISA2_AVX512VL_UNSET, OPTION_MASK_ISA2_AVX512IFMA_UNSET,
+ 	OPTION_MASK_ISA2_AVX512VNNI_UNSET,
+ 	OPTION_MASK_ISA2_AVX512VPOPCNTDQ_UNSET,
+ 	OPTION_MASK_ISA2_AVX512VBMI_UNSET, OPTION_MASK_ISA2_AVX512VBMI2_UNSET,
+ 	OPTION_MASK_ISA2_AVX512BITALG_UNSET): Define.
+ 	(ix86_handle_option): For
+ 	-mno-avx512{cd,dq,vl,ifma,vnni,vpopcntdq,vbmi,vbmi2,bitalg} also remove
+ 	corresponding OPTION_MASK_ISA2_AVX512*_UNSET from ix86_isa_flags2
+ 	and add it to ix86_isa_flags2_explicit.
+ 
+ 2025-12-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/123217
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin)
+ 	<case IX86_BUILTIN_ENCODEKEY128U32, case IX86_BUILTIN_ENCODEKEY256U32,
+ 	case IX86_BUILTIN_URDMSR>: Set target to a new pseudo even if it is
+ 	non-NULL but doesn't satisfy register_operand predicate.
+ 
+ 2025-12-19  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR tree-optimization/123152
+ 	* tree-vect-loop-manip.cc
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Correct order of
+ 	dominator update.
+ 
+ 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* alias.cc (alias_set_subset_of): Fix comment typo, explicitely
+ 	-> explicitly.
+ 	* builtins.cc (get_object_alignment_2): Likewise.
+ 	* combine.cc (make_extraction): Fix comment typos, potentionally
+ 	-> potentially and implicitely -> implicitly.
+ 	(simplify_comparison): Fix comment typo, outmost -> outermost.
+ 	(record_truncated_values): Fix comment typo, truning -> turning.
+ 	(distribute_notes): Fix comment typo, recourse -> recurse.
+ 	* config/avr/avr.md (*<extend_u>maddqihi4_split): Fix comment
+ 	typo, explicitely -> explicitly.
+ 	(*mulu<mode>si3): Likewise.  Fix comment typo, implicitely
+ 	-> implicitly.
+ 	* config/i386/i386.cc (ix86_get_drap_rtx): Fix comment typo,
+ 	statment -> statement.
+ 	* config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Fix comment typo,
+ 	transfered -> transferred.
+ 	* config/s390/s390.cc (s390_encode_section_info): Fix comment typo,
+ 	catched -> caught.
+ 	* dwarf2out.cc (dwarf_proc_stack_usage_map): Fix comment typo,
+ 	invokation -> invocation.
+ 	(dwarf2out_die_ref_for_decl): Fix comment typo, refering -> referring.
+ 	(loc_list_from_tree_1): Fix message typo, INDCREMENT -> INCREMENT.
+ 	(field_byte_offset): Fix comment typo, simplier -> simpler.
+ 	(add_data_member_location_attribute): Fix comment typo, catched
+ 	-> caught.
+ 	(gen_lexical_block_die): Fix comment typo, conrecte -> concrete.
+ 	(analyze_variants_discr): Fix comment typo, consistant -> consistent.
+ 	(gen_decl_die): Fix comment typo, prunning -> pruning.
+ 	(resolve_variable_values): Fix comment typo, refering -> referring.
+ 	* genmatch.cc (expr::expr_type): Fix comment typo, explicitely
+ 	-> explicitly.
+ 	* gimple-range-phi.cc (phi_group::is_modifier_p): Fix comment typo,
+ 	statment -> statement.
+ 	* gimple-ssa-store-merging.cc (pass_optimize_bswap::execute): Fix
+ 	comment typo, invokation -> invocation.  Add second space after dot.
+ 	* gimple-walk.cc (walk_gimple_op): Fix comment typo, explicitely
+ 	-> explicitly.
+ 	* gimplify.cc (mostly_copy_tree_r): Fix comment typo, gimplication
+ 	-> gimplification.
+ 	(var_needs_auto_init_p): Fix comment typo, automaticly
+ 	-> automatically.
+ 	(gimplify_decl_expr): Fix comment typos, varaible -> variable
+ 	and compatiple -> compatible.
+ 	(emit_warn_switch_unreachable): Fix comment typo, statment
+ 	-> statement.
+ 	(should_warn_for_implicit_fallthrough): Fix comment typo, fallthough
+ 	-> fallthrough.
+ 	(modify_call_for_omp_dispatch): Fix comment typo, interobject
+ 	-> interop.
+ 	(oacc_default_clause): Fix comment typo, tranfered -> transferred.
+ 	(omp_notice_variable): Likewise.
+ 	* graphite-isl-ast-to-gimple.cc (binary_op_to_tree): Fix comment
+ 	typo, explicitely -> explicitly.
+ 	* ipa-param-manipulation.cc (push_function_arg_decls): Likewise.
+ 	* ipa-prop.cc (ipa_make_edge_direct_to_target): Likewise.
+ 	* ipa-prop.h (ipa_node_params::node_within_scc): Fix comment typo,
+ 	potentionally -> potentially.
+ 	* loop-init.cc (fix_loop_structure): Fix comment typo, refering
+ 	-> referring.
+ 	* match.pd (1 / X -> X == 1): Fix comment typo, simplier -> simpler.
+ 	* opts.cc (global_options): Fix comment typo, explicitely
+ 	-> explicitly.
+ 	* sanopt.cc (sanopt_optimize_walker): Fix comment typo, potentionally
+ 	-> potentially.
+ 	* tree.cc (variably_modified_type_p): Fix comment typo, refering
+ 	-> referring.
+ 	* tree-cfg.cc (group_case_labels_stmt): Likewise.
+ 	(dump_function_to_file): Fix comment typo, explicitely -> explicitly.
+ 	(make_forwarders_with_degenerate_phis): Likewise.
+ 	* tree-inline.cc (replace_locals_op): Likewise.
+ 	* tree-loop-distribution.cc (loop_distribution::execute): Fix comment
+ 	typo, refering -> referring.
+ 	* tree-sra.cc (generate_subtree_deferred_init): Fix comment typo,
+ 	statment -> statement.
+ 	* tree-ssa-alias.cc (ptrs_compare_unequal): Fix comment typo,
+ 	explicitely -> explicitly.
+ 	* tree-ssa-forwprop.cc (_vec_perm_simplify_seq::stmt): Fix comment
+ 	typo, statment -> statement.
+ 	(narrow_vec_perm_simplify_seq): Fix message typo, statment
+ 	-> statement.
+ 	(blend_vec_perm_simplify_seqs): Likewise.
+ 	* tree-ssa-pre.cc (compute_antic_aux): Fix comment typo, explicitely
+ 	-> explicitly.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Fix comment typo,
+ 	refering -> referring.
+ 	* tree-vect-patterns.cc: Fix comment typo, transfered -> transferred.
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Fix comment typo,
+ 	explicitely -> explicitly.
+ 	(vect_build_slp_instance): Fix comment typo, transfered
+ 	-> transferred.
+ 	(vect_optimize_slp_pass::build_vertices): Fix comment typo,
+ 	explicitely -> explicitly.
+ 	(vect_slp_analyze_node_operations): Likewise.  Fix comment typo,
+ 	refering -> referring.
+ 	* tree-vect-stmts.cc (vectorizable_store): Fix comment typo, catched
+ 	-> caught.
+ 	* vec.h (auto_vec::auto_vec): Fix comment typo, refering -> referring.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@qti.qualcomm.com>
+ 
+ 	PR target/122970
+ 	* config/riscv/riscv-v.cc (expand_const_vector_interleaved_stepped_npatterns):
+ 	Reinterpret base as smaller type.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vector_subreg_extract): New
+ 	function that checks for and performs "vector extracts".
+ 	(legitimize_move): Call new function.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/autovec-opt.md: Add VLS modes.
+ 	* config/riscv/vector-crypto.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md (@pred_ffs<VB:mode><P:mode>): Ditto.
+ 	(@pred_ffs<VB_VLS:mode><P:mode>): Ditto.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Rename.
+ 	* config/riscv/riscv-protos.h (riscv_v_ext_vector_mode_p):
+ 	Rename.
+ 	(riscv_v_ext_tuple_mode_p): Ditto.
+ 	(riscv_v_ext_vls_mode_p): Ditto.
+ 	(riscv_vla_mode_p): To new name.
+ 	(riscv_tuple_mode_p): Ditto.
+ 	(riscv_vls_mode_p): Ditto.
+ 	* config/riscv/riscv-selftests.cc (run_const_vector_selftests):
+ 	Use new name.
+ 	(BROADCAST_TEST): Ditto.
+ 	* config/riscv/riscv-v.cc (imm_avl_p): Ditto.
+ 	(legitimize_move): Ditto.
+ 	(get_vlmul): Ditto.
+ 	(get_vlmax_rtx): Ditto.
+ 	(get_nf): Ditto.
+ 	(get_subpart_mode): Ditto.
+ 	(get_ratio): Ditto.
+ 	(get_mask_mode): Ditto.
+ 	(get_vector_mode): Ditto.
+ 	(get_tuple_mode): Ditto.
+ 	(can_find_related_mode_p): Ditto.
+ 	(cmp_lmul_le_one): Ditto.
+ 	(cmp_lmul_gt_one): Ditto.
+ 	(vls_mode_valid_p): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher): Ditto.
+ 	(register_builtin_type): Ditto.
+ 	* config/riscv/riscv-vector-costs.cc (max_number_of_live_regs):
+ 	Ditto.
+ 	(compute_estimated_lmul): Ditto.
+ 	(costs::costs): Ditto.
+ 	(costs::better_main_loop_than_p): Ditto.
+ 	(costs::adjust_stmt_cost): Ditto.
+ 	* config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): Ditto.
+ 	(riscv_vla_mode_p): Ditto.
+ 	(riscv_v_ext_tuple_mode_p): Ditto.
+ 	(riscv_tuple_mode_p): Ditto.
+ 	(riscv_v_ext_vls_mode_p): Ditto.
+ 	(riscv_vls_mode_p): Ditto.
+ 	(riscv_v_ext_mode_p): Ditto.
+ 	(riscv_vector_mode_p): Ditto.
+ 	(riscv_v_adjust_nunits): Ditto.
+ 	(riscv_v_adjust_bytesize): Ditto.
+ 	(riscv_classify_address): Ditto.
+ 	(riscv_legitimate_address_p): Ditto.
+ 	(riscv_address_insns): Ditto.
+ 	(riscv_const_insns): Ditto.
+ 	(riscv_legitimize_move): Ditto.
+ 	(riscv_binary_cost): Ditto.
+ 	(riscv_rtx_costs): Ditto.
+ 	(riscv_pass_vls_aggregate_in_gpr): Ditto.
+ 	(riscv_get_vector_arg): Ditto.
+ 	(riscv_pass_vls_in_vr): Ditto.
+ 	(riscv_get_arg_info): Ditto.
+ 	(riscv_pass_by_reference): Ditto.
+ 	(riscv_vector_required_min_vlen): Ditto.
+ 	(riscv_get_v_regno_alignment): Ditto.
+ 	(riscv_print_operand): Ditto.
+ 	(riscv_secondary_memory_needed): Ditto.
+ 	(riscv_hard_regno_nregs): Ditto.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 	(riscv_modes_tieable_p): Ditto.
+ 	(riscv_can_change_mode_class): Ditto.
+ 	(riscv_vector_mode_supported_p): Ditto.
+ 	(riscv_regmode_natural_size): Ditto.
+ 	(riscv_get_mask_mode): Ditto.
+ 	(riscv_vectorize_preferred_vector_alignment): Ditto.
+ 	(riscv_vectorize_vec_perm_const): Ditto.
+ 	(get_common_costs): Ditto.
+ 	(riscv_preferred_else_value): Ditto.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (mask_len_gather_load<RATIO64:mode><RATIO64I:mode>):
+ 	Change from this...
+ 	(mask_len_gather_load<mode><vindex>): ...to this.
+ 	(mask_len_gather_load<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_double_trunc>): Ditto.
+ 	(mask_len_gather_load<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_quad_trunc>): Ditto.
+ 	(mask_len_gather_load<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_oct_trunc>): Ditto.
+ 	(mask_len_gather_load<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_double_ext>): Ditto.
+ 	(mask_len_gather_load<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_quad_ext>): Ditto.
+ 	(mask_len_gather_load<mode><mode>): Ditto.
+ 	(mask_len_gather_load<mode><vindex_oct_ext>): Ditto.
+ 	(mask_len_scatter_store<RATIO64:mode><RATIO64I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex>): Ditto.
+ 	(mask_len_scatter_store<RATIO32:mode><RATIO32I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_double_trunc>): Ditto.
+ 	(mask_len_scatter_store<RATIO16:mode><RATIO16I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_quad_trunc>): Ditto.
+ 	(mask_len_scatter_store<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_oct_trunc>): Ditto.
+ 	(mask_len_scatter_store<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_double_ext>): Ditto.
+ 	(mask_len_scatter_store<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_quad_ext>): Ditto.
+ 	(mask_len_scatter_store<mode><mode>): Ditto.
+ 	(mask_len_scatter_store<mode><vindex_oct_ext>): Ditto.
+ 	* config/riscv/riscv-v.cc (prepare_gather_scatter): Use new
+ 	scheme
+ 	(get_gather_scatter_code): Ditto.
+ 	(expand_gather_scatter): Ditto.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Ditto.
+ 	* config/riscv/vector-iterators.md: Ditto.
+ 	* config/riscv/vector.md (@pred_indexed_<order>store<RATIO64:mode><RATIO64I:mode>):
+ 	Go from this...
+ 	(@pred_indexed_<order>store<mode>_same_eew): ...to this.
+ 	(@pred_indexed_<order>store<RATIO32:mode><RATIO32I:mode>):
+ 	Ditto.
+ 	(@pred_indexed_<order>store<mode>_x2_greater_eew): Ditto.
+ 	(@pred_indexed_<order>store<RATIO16:mode><RATIO16I:mode>):
+ 	Ditto.
+ 	(@pred_indexed_<order>store<mode>_x4_greater_eew): Ditto.
+ 	(@pred_indexed_<order>store<RATIO8:mode><RATIO8I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<mode>_x8_greater_eew): Ditto.
+ 	(@pred_indexed_<order>store<RATIO4:mode><RATIO4I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<mode>_x2_smaller_eew): Ditto.
+ 	(@pred_indexed_<order>store<RATIO2:mode><RATIO2I:mode>): Ditto.
+ 	(@pred_indexed_<order>store<mode>_x4_smaller_eew): Ditto.
+ 	(@pred_indexed_<order>store<RATIO1:mode><RATIO1:mode>): Ditto.
+ 	(@pred_indexed_<order>store<mode>_x8_smaller_eew): Ditto.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@qti.qualcomm.com>
+ 
+ 	PR tree-optimization/123118
+ 	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Check that
+ 	the type sign is equal.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@qti.qualcomm.com>
+ 
+ 	PR tree-optimization/123117
+ 	* tree-ssa-forwprop.cc (simplify_vector_constructor):
+ 	Check if we had a nop conversion and don't use pack/unpack in
+ 	that case.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@qti.qualcomm.com>
+ 
+ 	* doc/md.texi: Use unicode quotation marks.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (<cbranch_optab><mode>): Implement.
+ 	* config/riscv/predicates.md (riscv_cbranch_comparison_operator):
+ 	Define.
+ 	* config/riscv/vector-iterators.md: New iterators.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* optabs.cc (emit_cmp_and_jump_insns): Fix len/bias operands.
+ 
+ 2025-12-19  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/123097
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Calculate vector size by number of elements * bit size per
+ 	element.
+ 
+ 2025-12-19  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/123223
+ 	* lra-constraints.cc (match_reload, curr_insn_transform): Check
+ 	rtx on REG when testing scratch pseudos.
+ 
+ 2025-12-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/h8300/h8300.cc (output_logical_op): Adjust last argument to
+ 	be a pattern, not an insn.  Corresponding implementation changes.
+ 	(output_shift_loop): Extracted from output_a_shift and improved
+ 	to use a sentinel to indicate when to stop the loop.
+ 	(output_a_shift): Use output_shift_loop.
+ 	(compute_a_shift_length): Handle adjusted shift loop code.
+ 	* config/h8300/logical.md (logicals): Pass pattern to output_logical_op
+ 	rather then the full insn.
+ 	* config/h8300/h8300-protos.h (output_logical_op): Update prototype.
+ 
+ 2025-12-19  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/123205
+ 	* gimple-range-gori.cc (gori_compute::may_recompute_p): Only
+ 	recompute range-op statements.
+ 	* gimple-range-op.cc (gimple_range_op_handler): Default
+ 	recomputation to true.
+ 	(maybe_builtin_call): CFN_BUILT_IN_CONSTANT_P should not be
+ 	recomputable.
+ 	* gimple-range-op.h (recomputable_p): New.
+ 	(recomputable_p): New.
+ 
+ 2025-12-19  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* tree-pretty-print.cc (dump_omp_clause): For uses_allocators,
+ 	print modifier before allocator variable.
+ 
+ 2025-12-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md (xtensa_cstoresi_operator):
+ 	Change it to include unsigned comparisons only when TARGET_SALT is
+ 	enabled.
+ 
+ 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/122968
+ 	* dwarf2out.cc (premark_used_variables): Handle "structured bindings"
+ 	attribute.
+ 	(dwarf2out_late_global_decl): Likewise.
+ 
+ 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/install.texi (--with-tls=): Fix a typo, were -> where.
+ 
+ 2025-12-19  Alexandre Oliva  <oliva@gnu.org>
+ 
+ 	PR target/55212
+ 	* lra-constraints.cc (match_reload): Treat former scratch
+ 	regs as implicit unused output reloads.
+ 	(process_alt_operands): Likewise.
+ 	(curr_insn_transform): Likewise.
+ 
+ 2025-12-19  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR bootstrap/12407
+ 	* doc/install.texi (--enable-languages): Document the new language
+ 	exclusion feature.
+ 
+ 2025-12-18  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Handle
+ 	OpenMP device_type clause.
+ 	* omp-low.cc (scan_sharing_clauses): Likewise.
+ 	(lower_omp_target): Print 'sorry, unimplemented' for
+ 	device_type clause value other than 'any'.
+ 
+ 2025-12-18  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
+ 	__ARM_FEATURE_SVE_PREDICATE_OPERATORS.
+ 
+ 2025-12-18  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	PR tree-optimization/123153
+ 	* tree-vect-loop-manip.cc
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): use
+ 	profile_probability::even () for even likelihood.
+ 
+ 2025-12-18  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (sme-lutv2): Fix
+ 	feature string.
+ 
+ 2025-12-18  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-arches.def: Add armv9.6-a.
+ 	* config/aarch64/aarch64-option-extensions.def:
+ 	(sve-aes): Update to be enables by smeaes.
+ 	(sve-bitperm): Update to be enables by smesbitperm.
+ 	(fprcvt): New cli extension option.
+ 	(lsfe): Likewise.
+ 	(f8f32mm): Likewise.
+ 	(f8f16mm): Likewise.
+ 	(sme2p2): Likewise.
+ 	(sve2p2): Likewise.
+ 	(sve-aes2): Likewise.
+ 	(sve-f16f32mm): Likewise.
+ 	(sve-bfscale): Likewise.
+ 	(ssve-aes): Likewise.
+ 	(lsui): Likewise.
+ 	(occmo): Likewise.
+ 	(pcdphint): Likewise.
+ 	(pops): Likewise.
+ 	(ssve-bitperm): Likewise.
+ 	(ssve-fexpa): Likewise.
+ 	(sme-mop4): Likewise.
+ 	(sme-tmop): Likewise.
+ 
+ 2025-12-18  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(sve-aes): New cli extension option.
+ 	(sve2-aes): Changed to be alias of sve2+sve-aes2.
+ 	(sve-bitperm): New cli extension option.
+ 	(sve2-bitperm): Changed to be alias of sve2+sve-bitperm.
+ 	(sve-sm4): New cli extension option.
+ 	(sve2-sm4): Changed to be alias of sve2+sve-sm4.
+ 	(sve-sm4): New cli extension option.
+ 	(sve2-sm4): Changed to be alias of sve2+sve-sm4.
+ 	* config/aarch64/aarch64.h (TARGET_SVE2_AES): Updated to require
+ 	sve2+sve-aes.
+ 	(TARGET_SVE2_BITPERM): Updated to require sve2+sve-bitperm.
+ 	(TARGET_SVE2_SHA3): Updated to require sve2+sve-sha3.
+ 	(TARGET_SVE2_SM4): Updated to require sve2+sve-sm4
+ 	* config/aarch64/aarch64-sve-builtins-sve2.def: Update gating for sve2-X
+ 	intrinsics.
+ 
+ 2025-12-18  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* common/config/aarch64/aarch64-common.cc
+ 	(struct aarch64_extension_info): Add flags_alias_preferred_over.
+ 	(AARCH64_OPT_EXTENSION): Add setting flags preferred over to 0.
+ 	(AARCH64_OPT_EXTENSION_ALIAS): New macro def.
+ 	(aarch64_get_extension_string_for_isa_flags): Update to use alias
+ 	extensions over constituent extensions.
+ 	* config/aarch64/aarch64-feature-deps.h (alias_flags): New variable
+ 	(AARCH64_OPT_EXTENSION): New macro def.
+ 	(AARCH64_OPT_EXTENSION_ALIAS): New macro def.
+ 	(HANDLE): Update to use alias_flags.
+ 	(AARCH64_CORE): Update to use alias_flags.
+ 	* config/aarch64/aarch64-option-extensions.def
+ 	(AARCH64_OPT_EXTENSION_ALIAS): New macro def to
+ 	define alias_prefer_over_flags_X.
+ 	(crypto): Update to us AARCH64_OPT_EXTENSION_ALIAS.
+ 
+ 2025-12-18  WANG Xuerui  <git@xen0n.name>
+ 
+ 	PR target/123171
+ 	* config/loongarch/loongarch.cc (loongarch_option_restore): Add
+ 	missing update to la_target.isa.base.
+ 
+ 2025-12-18  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_modes_tieable_p):
+ 	Add support for vector conversion.
+ 
+ 2025-12-18  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
+ 
+ 	* opts-common.cc (jobserver_info::jobserver_info): Do not skip
+ 	negative file descriptors in simple UNIX pipe mode.
+ 
+ 2025-12-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122734
+ 	* tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Remove
+ 	check on very_unlikely probability.
+ 
+ 2025-12-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* predict.cc (unlikely_executed_stmt_p): Fix up return for
+ 	__builtin_unreachable/__builtin_trap.
+ 
+ 2025-12-18  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* var-tracking.cc (vt_expand_var_loc_chain): Prepare to exit
+ 	the loop after unsuitable_loc.
+ 
+ 2025-12-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122343
+ 	* cselib.cc (cselib_redundant_set_p): Return false for volatile
+ 	memory source or destination.
+ 
+ 2025-12-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_out_shift_with_cnt): Tweak
+ 	execution time by count-1 cycles in some cases.
+ 
+ 2025-12-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-protos.h (out_shift_with_cnt): Remove.
+ 	* config/avr/avr.cc (avr_out_shift_with_cnt): New static
+ 	function from out_shift_with_cnt: Pass shift rtx_code instead
+ 	of asm template.
+ 	(avr_out_shift_1): New static helper function.
+ 	(ashlqi3_out, ashlhi3_out, avr_out_ashlpsi3, ashlsi3_out)
+ 	(ashrqi3_out, ashrhi3_out, avr_out_ashrpsi3, ashrsi3_out)
+ 	(lshrqi3_out, lshrhi3_out, avr_out_lshrpsi3, lshrsi3_out):
+ 	Adjust avr_out_shift_with_cnt to new interface.
+ 
+ 2025-12-17  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	* config/riscv/sync.md (atomic compare and set): Reorder patterns
+ 	so the stricter pattern comes first.
+ 
+ 2025-12-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/123155
+ 	* config/i386/xmmintrin.h (_mm_maskmove_si64): Rename offset automatic
+ 	variable to __offset.
+ 
+ 2025-12-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/123155
+ 	* config/i386/avx10_2bf16intrin.h (_mm512_roundscale_pbh,
+ 	_mm512_mask_roundscale_pbh, _mm512_maskz_roundscale_pbh,
+ 	_mm256_roundscale_pbh, _mm256_mask_roundscale_pbh,
+ 	_mm256_maskz_roundscale_pbh, _mm_roundscale_pbh,
+ 	_mm_mask_roundscale_pbh, _mm_maskz_roundscale_pbh,
+ 	_mm512_reduce_pbh, _mm512_mask_reduce_pbh, _mm512_maskz_reduce_pbh,
+ 	_mm256_reduce_pbh, _mm256_mask_reduce_pbh, _mm256_maskz_reduce_pbh,
+ 	_mm_reduce_pbh, _mm_mask_reduce_pbh, _mm_maskz_reduce_pbh): Rename
+ 	B argument to __B.
+ 
+ 2025-12-17  Umesh Kalvakuntla  <umesh.kalvakuntla@amd.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_amd_cpu): Add znver6 1Ah
+ 	family model numbers.
+ 	(get_available_features): Set feature AVX512BMM.
+ 	* common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512BMM_SET):
+ 	New macro.
+ 	(OPTION_MASK_ISA2_AVX512BMM_UNSET): New macro.
+ 	(OPTION_MASK_ISA2_AVX512BW_UNSET): Unset AVX512BMM.
+ 	(ix86_handle_option): Likewise.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
+ 	Add AMDFAM1AH_ZNVER6.
+ 	(enum processor_features): Add FEATURE_AVX512BMM.
+ 	* common/config/i386/i386-isas.h: Likewise.
+ 	* config.gcc: Add avx512bmmintrin.h, avx512bmmvlintrin.h,
+ 	znver6.
+ 	* config/i386/cpuid.h (bit_AVX512BMM): New macro.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Likewise.
+ 	* config/i386/i386-builtin.def (BDESC): Add AVX512BMM builtins.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Likewise.
+ 	* config/i386/i386-isa.def (AVX512BMM): Likewise.
+ 	* config/i386/i386-options.cc (m_ZNVER6): New macro.
+ 	(m_ZNVER): Add m_ZNVER6.
+ 	(processor_cost_table): Uses znver5_cost table for
+ 	PROCESSOR_ZNVER6 for now.
+ 	(ix86_valid_target_attribute_inner_p): Likewise.
+ 	* config/i386/i386.cc (ix86_reassociation_width): Likewise.
+ 	* config/i386/i386.h (enum processor_type): Likewise.
+ 	* config/i386/i386.md: Likewise.
+ 	* config/i386/i386.opt: Likewise.
+ 	* config/i386/i386.opt.urls: Likewise.
+ 	* config/i386/immintrin.h: Likewise.
+ 	* config/i386/sse.md (avx512bmm_vbmacor16x16x16_<mode>): New
+ 	define_insn.
+ 	(avx512bmm_vbmacxor16x16x16_<mode>): Likewise.
+ 	(avx512bmm_vbitrevb_<mode>_mask): Likewise.
+ 	(avx512bmm_vbitrevb_<mode>): Likewise.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Likewise.
+ 	(ix86_adjust_cost): Likewise.
+ 	* config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add
+ 	m_ZNVER6.
+ 	(X86_TUNE_FUSE_MOV_AND_ALU): Likewise.
+ 	(X86_TUNE_USE_SCATTER_2PARTS): Likewise.
+ 	(X86_TUNE_USE_SCATTER_4PARTS): Likewise.
+ 	(X86_TUNE_USE_SCATTER_8PARTS): Likewise.
+ 	(X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
+ 	(X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
+ 	(X86_TUNE_AVX512_MOVE_BY_PIECES): Likewise.
+ 	* doc/extend.texi: Likewise.
+ 	* doc/invoke.texi: Likewise.
+ 	* config/i386/avx512bmmintrin.h: New file.
+ 	* config/i386/avx512bmmvlintrin.h: New file.
+ 
+ 2025-12-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_function_abi): Use checking assert.
+ 	(aarch64_fndecl_abi): Test for the availability of the
+ 	machine content before trying to look up the cached PCS.
+ 	Use a checking assert.
+ 
+ 2025-12-16  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-12-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_expand_scc_SALT):
+ 	New sub-function that emits the SALT/SALTU instructions.
+ 	(xtensa_expand_scc): Change the part related to the SALT/SALTU
+ 	instructions to a call to the above sub-function.
+ 
+ 2025-12-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_expand_block_set_libcall,
+ 	xtensa_expand_block_set_unrolled_loop,
+ 	xtensa_expand_block_set_small_loop, xtensa_call_tls_desc):
+ 	Change the return statement to pass the return value of
+ 	end_sequence() directly without going through a variable, and
+ 	remove the definition of that variable.
+ 
+ 2025-12-16  Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 	    Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	* config/aarch64/aarch64.md (addg): Update pattern to use
+ 	addg/subg instructions.
+ 	(stg): Update pattern.
+ 	(st2g): New pattern.
+ 	(tag_memory): Likewise.
+ 	(compose_tag): Likewise.
+ 	(irq): Update pattern to accept xzr register.
+ 	(gmi): Likewise.
+ 	(UNSPECV_TAG_SPACE): Define.
+ 	* config/aarch64/aarch64.cc (AARCH64_MEMTAG_GRANULE_SIZE):
+ 	Define.
+ 	(AARCH64_MEMTAG_TAG_BITSIZE): Likewise.
+ 	(aarch64_override_options_internal): Error out if MTE instructions
+ 	are not available.
+ 	(aarch64_post_cfi_startproc): Emit .cfi_mte_tagged_frame.
+ 	(aarch64_can_tag_addresses): Add MEMTAG specific handling.
+ 	(aarch64_memtag_tag_bitsize): New function
+ 	(aarch64_memtag_granule_size): Likewise.
+ 	(aarch64_memtag_insert_random_tag): Likwise.
+ 	(aarch64_memtag_add_tag): Likewise.
+ 	(aarch64_memtag_extract_tag): Likewise.
+ 	(aarch64_granule16_memory_address_p): Likewise.
+ 	(aarch64_emit_stxg_insn): Likewise.
+ 	(aarch64_memtag_tag_memory_via_loop): New definition.
+ 	(aarch64_expand_tag_memory): Likewise.
+ 	(aarch64_check_memtag_ops): Likewise.
+ 	(TARGET_MEMTAG_TAG_BITSIZE): Likewise.
+ 	(TARGET_MEMTAG_GRANULE_SIZE): Likewise.
+ 	(TARGET_MEMTAG_INSERT_RANDOM_TAG): Likewise.
+ 	(TARGET_MEMTAG_ADD_TAG): Likewise.
+ 	(TARGET_MEMTAG_EXTRACT_TAG): Likewise.
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_expand_builtin_memtag): Update set tag builtin logic.
+ 	* config/aarch64/aarch64-linux.h: Pass memtag-stack sanitizer
+ 	specific options to the linker.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_granule16_memory_address_p): New prototype.
+ 	(aarch64_check_memtag_ops): Likewise.
+ 	(aarch64_expand_tag_memory): Likewise.
+ 	* config/aarch64/constraints.md (Umg): New memory constraint.
+ 	(Uag): New constraint.
+ 	(Ung): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_memtag_tag_offset):
+ 	Refactor it.
+ 	(aarch64_granule16_imm6): Rename from aarch64_granule16_uimm6 and
+ 	refactor it.
+ 	(aarch64_granule16_memory_operand): New constraint.
+ 	* config/aarch64/iterators.md (MTE_PP): New code iterator to be
+ 	used for mte instructions.
+ 	(stg_ops): New code attributes.
+ 	(st2g_ops): Likewise.
+ 	(mte_name): Likewise.
+ 	* config/aarch64/aarch64.opt (aarch64-tag-memory-loop-threshold):
+ 	New parameter.
+ 	* doc/invoke.texi: Update documentation.
+ 
+ 2025-12-16  Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 	    Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	* asan.cc (handle_builtin_stack_restore): Accommodate MEMTAG
+ 	sanitizer.
+ 	(handle_builtin_alloca): Expand differently if MEMTAG sanitizer.
+ 	(get_mem_refs_of_builtin_call): Include MEMTAG along with
+ 	HWASAN.
+ 	(memtag_sanitize_stack_p): New definition.
+ 	(memtag_sanitize_allocas_p): Likewise.
+ 	(memtag_memintrin): Likewise.
+ 	(hwassist_sanitize_p): Likewise.
+ 	(hwassist_sanitize_stack_p): Likewise.
+ 	(report_error_func): Include MEMTAG along with HWASAN.
+ 	(build_check_stmt): Likewise.
+ 	(instrument_derefs): MEMTAG too does not deal with globals yet.
+ 	(instrument_builtin_call): Include MEMTAG along with HWASAN.
+ 	(maybe_instrument_call): Likewise.
+ 	(asan_expand_mark_ifn): Likewise.
+ 	(asan_expand_check_ifn): Likewise.
+ 	(asan_expand_poison_ifn): Expand differently if MEMTAG sanitizer.
+ 	(asan_instrument): Include MEMTAG along with HWASAN.
+ 	(hwasan_emit_prologue): Expand differently if MEMTAG sanitizer.
+ 	(hwasan_emit_untag_frame): Likewise.
+ 	* asan.h (memtag_sanitize_stack_p): New declaration.
+ 	(memtag_sanitize_allocas_p): Likewise.
+ 	(hwassist_sanitize_p): Likewise.
+ 	(hwassist_sanitize_stack_p): Likewise.
+ 	(asan_sanitize_use_after_scope): Include MEMTAG along with
+ 	HWASAN.
+ 	* cfgexpand.cc (align_local_variable): Likewise.
+ 	(expand_one_stack_var_at): Likewise.
+ 	(expand_stack_vars): Likewise.
+ 	(expand_one_stack_var_1): Likewise.
+ 	(init_vars_expansion): Likewise.
+ 	(expand_used_vars): Likewise.
+ 	(pass_expand::execute): Likewise.
+ 	* gimplify.cc (asan_poison_variable): Likewise.
+ 	* internal-fn.cc (expand_HWASAN_ALLOCA_POISON): New definition.
+ 	(expand_HWASAN_ALLOCA_UNPOISON): Expand differently if MEMTAG
+ 	sanitizer.
+ 	(expand_HWASAN_MARK): Likewise.
+ 	* internal-fn.def (HWASAN_ALLOCA_POISON): Define new.
+ 	* params.opt: Document new param.
+ 	* sanopt.cc (pass_sanopt::execute): Include MEMTAG along with
+ 	HWASAN.
+ 	* gcc.cc (sanitize_spec_function): Add check for memtag-stack.
+ 	* doc/tm.texi: Regenerate.
+ 	* target.def (extract_tag): Update documentation.
+ 	(add_tag): Likewise.
+ 	(insert_random_tag): Likewise.
+ 
+ 2025-12-16  Indu Bhagat  <indu.bhagat@oracle.com>
+ 	    Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 
+ 	* builtins.def: Adjust the macro to include the new
+ 	SANTIZIE_MEMTAG_STACK.
+ 	* flag-types.h (enum sanitize_code): Add new enumerator for
+ 	SANITIZE_MEMTAG and SANITIZE_MEMTAG_STACK.
+ 	* opts.cc (finish_options): memtag-stack sanitizer conflicts with
+ 	hwaddress and address sanitizers.
+ 	(sanitizer_opts): Add new memtag-stack sanitizer.
+ 	(parse_sanitizer_options): memtag-stack sanitizer cannot recover.
+ 	* params.opt: Add new params for memtag-stack sanitizer.
+ 	* doc/invoke.texi: Update documentation.
+ 
+ 2025-12-16  Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 
+ 	* target-insns.def (compose_tag): New target instruction.
+ 	* doc/md.texi (compose_tag): Add documentation.
+ 
+ 2025-12-16  Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 
+ 	* target-insns.def (tag_memory): New target instruction.
+ 	* doc/md.texi (tag_memory): Add documentation.
+ 
+ 2025-12-16  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.md: Include olympus.md.
+ 	* config/aarch64/olympus.md: New file.
+ 	* config/aarch64/tuning_models/olympus.h: Add dispatch
+ 	constraints and enable dispatch scheduling.
+ 
+ 2025-12-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
+ 
+ 	* haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0
+ 	to schedule SCHED_GROUP_P insns first.
+ 
+ 2025-12-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/122456
+ 	* cgraph.cc (cgraph_edge::resolve_speculation): Handle
+ 	a NULL symtab_node::get (callee_decl).
+ 
+ 2025-12-16  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/123110
+ 	* tree-cfgcleanup.cc (maybe_remove_forwarder_block): Add back
+ 	check for eh landing pad or non-local dest on the dest.
+ 
+ 2025-12-16  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/123111
+ 	* tree-cfg.cc (ifconvertable_edge): New function.
+ 	(make_forwarders_with_degenerate_phis):	Add skip_ifcvtable argument,
+ 	check ifconvertable_edge if skip_ifcvtable is true.
+ 	* tree-cfg.h (make_forwarders_with_degenerate_phis): New argument
+ 	with default of false.
+ 	* tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): Update
+ 	argument to make_forwarders_with_degenerate_phis.
+ 
+ 2025-12-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/107666
+ 	* common.opt (fspeculatively-call-stored-functions): New.
+ 	* cgraph.h (cgraph_simple_indirect_info): New fields rec_type and
+ 	fld_offset.
+ 	* ipa-prop.h (ipa_analyze_var_static_initializer): Declare.
+ 	(ipa_dump_noted_record_fnptrs): Likewise.
+ 	(ipa_debug_noted_record_fnptrs): Likewise.
+ 	(ipa_single_noted_fnptr_in_record): Likewise.
+ 	(ipa_free_noted_fnptr_calls): Likewise.
+ 	* ipa-cp.cc (ipcp_generate_summary): Call
+ 	ipa_analyze_var_static_initializer on each varbool node with a static
+ 	initializer.
+ 	* ipa-devirt.cc (struct devirt_stats): New type.
+ 	(devirt_target_ok_p): New function.
+ 	(ipa_devirt): Move statistics counters to the new structure.  dump
+ 	noted function pointers stored in records.  Check for edge hotness
+ 	first and for odr_types only for polymorphic edges.  Moved a number of
+ 	checks to devirt_target_ok_p.  Also add speculative direct calls for
+ 	non-polymorphic indirect ones when ipa_single_noted_fnptr_in_record
+ 	finds a likely target.  Call ipa_free_noted_fnptr_calls.
+ 	(pass_ipa_devirt::gate): Also check the new flag.
+ 	* ipa-prop.cc (noted_fnptr_store): New type.
+ 	(struct noted_fnptr_hasher): Likewise.
+ 	(noted_fnptr_hasher::hash): New function.
+ 	(noted_fnptr_hasher::equal): Likewise.
+ 	(noted_fnptrs_in_records): New.
+ 	(is_func_ptr_from_record): New function.
+ 	(ipa_analyze_indirect_call_uses): Also simple create indirect info
+ 	structures with fnptr_loaded_from_record set.
+ 	(note_fnptr_in_record): New function.
+ 	(ipa_dump_noted_record_fnptrs): Likewise.
+ 	(ipa_debug_noted_record_fnptrs): Likewise.
+ 	(ipa_single_noted_fnptr_in_record): Likewise.
+ 	(ipa_free_noted_fnptr_calls): Likewise.
+ 	(ipa_analyze_stmt_uses): Also look for stroes of function pointers to
+ 	record structures.
+ 	(ipa_analyze_var_static_initializer): New function.
+ 	(ipa_write_indirect_edge_info): Also stream fnptr_loaded_from_record
+ 	indirec infos.
+ 	(ipa_read_indirect_edge_info): Likewise.
+ 	(ipa_prop_write_jump_functions): Also stream the contents of
+ 	noted_fnptrs_in_records.
+ 	(ipa_prop_read_section): Likewise.
+ 	* opts.cc (default_options_table): Also turn on
+ 	OPT_fspeculatively_call_stored_functions at -O2.
+ 	(common_handle_option): Turn flag_speculatively_call_stored_functions
+ 	when using profile feedback.
+ 	* doc/invoke.texi (-fspeculatively-call-stored-functions): New.
+ 
+ 2025-12-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* cgraph.h (cgraph_node): Adjust the comment of member function
+ 	create_indirect_edge.
+ 	(enum cgraph_indirect_info_kind): New.
+ 	(cgraph_indirect_call_info): Convert into a base class.
+ 	(cgraph_simple_indirect_info): New.
+ 	(cgraph_polymorphic_indirect_info): Likewise.
+ 	(usable_polymorphic_info_p): Likewise.
+ 	(is_a_helper <cgraph_simple_indirect_info *>::test): Likewise.
+ 	(is_a_helper <cgraph_polymorphic_indirect_info *>::test): Likewise.
+ 	(cgraph_allocate_init_indirect_info): Remove declaration.
+ 	(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use the
+ 	appropriate derived type of indirect info.
+ 	* cgraph.cc (cgraph_allocate_init_indirect_info): Removed.
+ 	(cgraph_node::create_indirect_edge): Create an appropriate type of
+ 	indirect_info.
+ 	(cgraph_node::dump): Dump indirect info using its dump function.
+ 	(cgraph_indirect_call_info::dump): New function.
+ 	(cgraph_indirect_call_info::debug): Likewise.
+ 	* cgraphclones.cc (cgraph_edge::clone): Create an appropriate type of
+ 	indirect_info.
+ 	* cgraphunit.cc (analyze_functions): Use the appropriate derived type
+ 	of indirect info.
+ 	* ipa-cp.cc (initialize_node_lattices): Adjust the check for
+ 	polymorphic indirect info.
+ 	(ipa_get_indirect_edge_target_1): Use the appropriate derived types of
+ 	indirect info.
+ 	(ipcp_discover_new_direct_edges): Likewise.
+ 	* ipa-devirt.cc (ipa_devirt): Use the polymorphis derived type of
+ 	indirect info and check that it is usable.
+ 	* ipa-inline.cc (dump_inline_stats): Adjust the check for polymorphic
+ 	indirect info.
+ 	* ipa-profile.cc (ipa_profile): Likewise and check usability.
+ 	* ipa-prop.cc (ipa_print_node_jump_functions): Dump indirect info
+ 	using its dumping member function.
+ 	(ipa_note_param_call): Removed.
+ 	(ipa_analyze_indirect_call_uses): Use the appropriate derived type of
+ 	indirect info, set all fields of indirect info separately rather than
+ 	relying on ipa_note_param_call.
+ 	(ipa_analyze_virtual_call_uses): Use the polymorphis derived type of
+ 	indirect info and check that it is usable, set all fields of indirect
+ 	info separately rather than relying on ipa_note_param_call.
+ 	(ipa_analyze_call_uses): Use the appropriate derived type of indirect
+ 	info.
+ 	(ipa_make_edge_direct_to_target): Use the appropriate derived type of
+ 	indirect info.  Remove wrong note that member_ptr check was not
+ 	needed.  Adjust check for polymorphic call when dumping.
+ 	(try_make_edge_direct_simple_call): Use the appropriate derived type
+ 	of indirect info.
+ 	(try_make_edge_direct_virtual_call): Use the polymorphis derived type
+ 	of indirect info and check that it is usable.
+ 	(update_indirect_edges_after_inlining): Use the appropriate derived
+ 	type of indirect info.  Define local variables only before their first
+ 	use.
+ 	(ipa_write_indirect_edge_info): Also stream indirect info kind.  Use
+ 	the appropriate derived type of indirect info.
+ 	(ipa_read_indirect_edge_info): Check that the streamed in indirect
+ 	info kind matches rthe structure at hand.  Use the appropriate derived
+ 	type of indirect info.
+ 	* ipa-utils.h (possible_polymorphic_call_targets): Use the
+ 	polymorphis derived type of indirect info.  Assert it is usable.
+ 	(dump_possible_polymorphic_call_targets): Use the polymorphis
+ 	derived type of indirect info and check it is usable.
+ 	(possible_polymorphic_call_target_p): Likewise.
+ 	* ipa.cc (symbol_table::remove_unreachable_nodes): Use
+ 	usable_polymorphic_info_p.
+ 	* lto-cgraph.cc (lto_output_edge): Stream indirect info kind.
+ 	(compute_ltrans_boundary): Use usable_polymorphic_info_p.
+ 	(input_edge): Move definition of ecf_flags before its first use.
+ 	Pass true as the last parameter to create_indirect_edge.  Stream
+ 	indirect info kind and create a corresponding type to hold the
+ 	information.
+ 	* trans-mem.cc (ipa_tm_insert_gettmclone_call): Use the
+ 	polymorphis derived type of indirect info.
+ 
+ 2025-12-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* gengtype.cc (walk_subclasses): Avoid generating code with unused
+ 	variables.
+ 
+ 2025-12-15  Pengxuan Zheng  <pengxuan.zheng@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122987
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Replace
+ 	force_gimple_operand_gsi with gimple_build.
+ 
+ 2025-12-15  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* Makefile.in (PLUGIN_HEADERS): Add $(srcdir)/text-art/*.h.
+ 	(install-plugin): Preserve directory structure for text-art
+ 	headers.
+ 
+ 2025-12-15  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (cortex-a320): New core.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_form): Relax niters
+ 	condition.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ 	Enable peeling for uncounted loops.
+ 	* tree-vect-loop-manip.cc
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Add exit condition
+ 	duplication functionality.
+ 	* tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	Modify function signature.
+ 	(vect_do_peeling): Enable uncounted loop peeling.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list):
+ 	Reject when !operand_equal_p for any data ref pair.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Disable partial
+ 	vector use for uncounted loops.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	reset IVs and accumulators for all exits for uncounted loops.
+ 	* tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg):
+ 	add boolean `uncounted_p' argument.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Disable vector
+ 	loop skip checking.
+ 	(vect_loop_versioning): skip profitability check for uncounted loops.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Disable niters
+ 	update.
+ 	* tree-vect-loop.cc (vect_transform_loop): Likewise.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vectorizer.h (LOOP_VINFO_IV_EXIT): Replace this...
+ 	(LOOP_VINFO_MAIN_EXIT): ...with this.
+ 	(LOOP_VINFO_EPILOGUE_IV_EXIT): Replace this...
+ 	(LOOP_VINFO_EPILOGUE_MAIN_EXIT): ...with this.
+ 	(LOOP_VINFO_SCALAR_IV_EXIT): Replace this...
+ 	(LOOP_VINFO_SCALAR_MAIN_EXIT): ...with this.
+ 	(class _loop_vec_info): s/iv/main for `vec_loop_iv_exit',
+ 	`vec_epilogue_loop_main_exit' and `scalar_loop_main_exit'
+ 	class members.
+ 	* tree-vect-data-refs.cc
+ 	(vect_enhance_data_refs_alignment):
+ 	s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/.
+ 	* tree-vect-loop-manip.cc
+ 	(vect_set_loop_controls_directly): Likewise.
+ 	(vect_gen_vector_loop_niters_mult_vf): Likewise.
+ 	(vect_loop_versioning): Likewise.
+ 	(vect_do_peeling):
+ 	s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/,
+ 	s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT,
+ 	s/LOOP_VINFO_EPILOGUE_IV_EXIT/LOOP_VINFO_EPILOGUE_MAIN_EXIT.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info):
+ 	s/iv_exit/main_exit/ in initializer list.
+ 	(vec_init_loop_exit_info): Handle multiple-exit uncounted loops.
+ 	(vect_analyze_loop_form): Fix `failure_at' message.
+ 	(vect_create_loop_vinfo):
+ 	s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/.
+ 	(vect_create_epilog_for_reduction): Likewise.
+ 	(vectorizable_live_operation): Likewise.
+ 	(vect_update_ivs_after_vectorizer_for_early_breaks): Likewise.
+ 	(vect_transform_loop):
+ 	s/LOOP_VINFO_IV_EXIT/LOOP_VINFO_MAIN_EXIT/,
+ 	s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT.
+ 	* tree-vectorizer.cc (set_uid_loop_bbs):
+ 	s/LOOP_VINFO_SCALAR_IV_EXIT/LOOP_VINFO_SCALAR_MAIN_EXIT.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vectorizer.h (LOOP_VINFO_EARLY_BREAKS_VECT_PEELED): OR
+ 	its current definition with `LOOP_VINFO_NITERS_UNCOUNTED_P(L)'
+ 	* tree-vect-loop.cc (vect_create_loop_vinfo): Don't populate
+ 	`LOOP_VINFO_LOOP_IV_COND' for uncounted loops.
+ 
+ 2025-12-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_build_loop_niters): Gracefully
+ 	handle uncounted loops.
+ 	(vect_gen_prolog_loop_niters): Add type default of `sizetype'.
+ 	(vect_gen_vector_loop_niters): Likewise.
+ 	(vect_do_peeling): Likewise.
+ 	* tree-vect-loop.cc (vect_min_prec_for_max_niters): Likewise.
+ 	(loop_niters_no_overflow): Likewise.
+ 	* tree-vectorizer.h (LOOP_VINFO_NITERS_UNCOUNTED_P): New.
+ 
+ 2025-12-15  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	PR target/108866
+ 	* doc/install.texi: Document --with-windres configure option.
+ 
+ 2025-12-15  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	PR target/108866
+ 	* gcc.cc (find_a_program): Add check for DEFAULT_WINDRES.
+ 	* configure.ac: Add --with-windres= option.
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 
+ 2025-12-15  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	PR driver/108866
+ 	* gcc.cc (default_compilers): Add EXTRA_DEFAULT_COMPILERS so the config
+ 	of a target can add an extra compiler spec to default_compilers.
+ 	* config/i386/cygming.h (WINDRES_FORMAT_SPEC): New macro to handle
+ 	PE format selection based on TARGET_64BIT_DEFAULT and -m32/-m64 flags.
+ 	(EXTRA_DEFAULT_COMPILERS): Add spec for windres.
+ 	* config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise.
+ 
+ 2025-12-15  Jerry Zhang Jian  <jerry.zhangjian@sifive.com>
+ 
+ 	* config/riscv/gen-riscv-ext-opt.cc: Rename UPPERCAE_NAME to
+ 	UPPERCASE_NAME.
+ 	* config/riscv/gen-riscv-ext-texi.cc: Likewise.
+ 	* config/riscv/riscv-ext-corev.def: Likewise.
+ 	* config/riscv/riscv-ext-sifive.def: Likewise.
+ 	* config/riscv/riscv-ext-thead.def: Likewise.
+ 	* config/riscv/riscv-ext-ventana.def: Likewise.
+ 
+ 2025-12-14  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR tree-optimization/106409
+ 	* gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Adjust
+ 	comment for clarity, and augment check to work in LTO as well.
+ 
+ 2025-12-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/122274
+ 	* regcprop.cc (value_data_entry): New field.
+ 	(kill_value_one_regno): Update field.
+ 	(init_value_data): Initialize field.
+ 	(kill_set_value_data): New field.
+ 	(kill_set_value): Update field.
+ 	(kill_autoinc_value): Likewise.
+ 	(copy_value): New parameter. Update field.
+ 	(incompatible_frame_status): New function.
+ 	(find_oldest_value_reg): New parameter. Compare frame relatedness of
+ 	insn and propagated value.
+ 	(replace_oldest_value_reg): Pass additional parameter to
+ 	find_oldest_value_reg().
+ 	(copyprop_hardreg_forward_1): Pass additional parameter to
+ 	find_oldest_value_reg(). Compare frame relatedness of insn and
+ 	propagated value. Call copy_value() with additional parameter.
+ 
+ 2025-12-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/46555
+ 	* tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing):
+ 	Unconditionally set TODO_cleanup_cfg.
+ 
+ 2025-12-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* match.pd: Disable a few match patterns for !GIMPLE.
+ 
+ 2025-12-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122734
+ 	* tree-ssa-loop-ch.cc (should_duplicate_loop_header_p): Add new argument,
+ 	canbe_neverexecuted. When canbe_neverexecuted is true, return if a loop
+ 	exit is "never executed" like we are doing an invariant conditional.
+ 	(ch_base::copy_headers): Update call to should_duplicate_loop_header_p.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* config/alpha/alpha.opt.urls: Regenerated.
+ 	* config/arc/arc.opt.urls: Regenerated.
+ 	* config/arm/arm.opt.urls: Regenerated.
+ 	* config/bpf/bpf.opt.urls: Regenerated.
+ 	* config/c6x/c6x.opt.urls: Regenerated.
+ 	* config/cris/cris.opt.urls: Regenerated.
+ 	* config/csky/csky.opt.urls: Regenerated.
+ 	* config/h8300/h8300.opt.urls: Regenerated.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/ia64/ia64.opt.urls: Regenerated.
+ 	* config/lm32/lm32.opt.urls: Regenerated.
+ 	* config/loongarch/loongarch.opt.urls: Regenerated.
+ 	* config/lynx.opt.urls: Regenerated.
+ 	* config/m32r/m32r.opt.urls: Regenerated.
+ 	* config/m68k/m68k.opt.urls: Regenerated.
+ 	* config/mcore/mcore.opt.urls: Regenerated.
+ 	* config/microblaze/microblaze.opt.urls: Regenerated.
+ 	* config/mips/mips.opt.urls: Regenerated.
+ 	* config/mn10300/mn10300.opt.urls: Regenerated.
+ 	* config/moxie/moxie.opt.urls: Regenerated.
+ 	* config/msp430/msp430.opt.urls: Regenerated.
+ 	* config/nds32/nds32.opt.urls: Regenerated.
+ 	* config/or1k/elf.opt.urls: Regenerated.
+ 	* config/pa/pa-hpux.opt.urls: Regenerated.
+ 	* config/pa/pa.opt.urls: Regenerated.
+ 	* config/pdp11/pdp11.opt.urls: Regenerated.
+ 	* config/pru/pru.opt.urls: Regenerated.
+ 	* config/riscv/riscv.opt.urls: Regenerated.
+ 	* config/rs6000/rs6000.opt.urls: Regenerated.
+ 	* config/rs6000/sysv4.opt.urls: Regenerated.
+ 	* config/s390/s390.opt.urls: Regenerated.
+ 	* config/sh/sh.opt.urls: Regenerated.
+ 	* config/sparc/sparc.opt.urls: Regenerated.
+ 	* config/v850/v850.opt.urls: Regenerated.
+ 	* config/vax/vax.opt.urls: Regenerated.
+ 	* config/visium/visium.opt.urls: Regenerated.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <PRU Options>: Fix whitespace
+ 	in option list.
+ 	(PRU Options): Copy-editing.  Index and list negative option forms.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/pdp11/pdp11.opt (m40, m45): Add RejectNegative.
+ 	* doc/invoke.texi (Option Summary) <PDP-11 Options>: Remove
+ 	redundant -mno- forms from the list.
+ 	(PDP-11 Options): Fix some markup issues.  Merge documentation
+ 	of positive and negative forms of -mac0.  Index negative forms
+ 	of -msplit, -mlra.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/or1k/elf.opt (mnewlib): Mark obsolete option as
+ 	"Undocumented".
+ 	* config/or1k/or1k.opt (mcmov): Don't use future tense in doc string.
+ 	(msfimm): Likewise.
+ 	(mshftimm): Likewise.
+ 	* doc/invoke.texi (Option Summary) <OpenRISC Options>: Don't
+ 	document -mnewlib.
+ 	(OpenRISC Options): Likewise.  Add @opindex entry for
+ 	-mno-double-float.  Fix more instances of incorrect use of future
+ 	tense.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <Nvidia PTX Options>: Add
+ 	several missing options.
+ 	(Nvidia PTX Options): Correct index entry for -march-map.  List
+ 	negative forms of -moptimize, muniform-simt, and -mgomp.  Fix some
+ 	Texinfo markup issues.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <NDS32 Options>: Don't list
+ 	both positive and negative option forms.
+ 	(NDS32 Options): Consolidate separate entries for positive and
+ 	negative forms of the same option.  Document missing negative
+ 	forms in the same style.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/msp430/msp430.opt (mcpu): Mark deprecated option as
+ 	"Undocumented".
+ 	(mdevices-csv-loc=): Mark option not intended to be used by users
+ 	as "Undocumented".
+ 	* doc/invoke.texi (Option Summary) <MSP430 Options>: Fill in
+ 	argument syntax for options of the form -mfoo=@var{arg}.  Don't
+ 	list deprecated option -mcpu=.  Add missing entries for
+ 	-mwarn-devices-csv and -muse-lower-region-prefix.
+ 	(MSP430 Options): Similarly document argument syntax in the table
+ 	@item entries.  Add @opindex entries for negative forms.
+ 	Delete documentation of deprecated -mcpu= option.  Add
+ 	documentation for -muse-lower-region-prefix.  Markup and
+ 	copy-editing fixes throughout the section.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <MN10300 Options>: Remove
+ 	redundant -mno- forms from the list.
+ 	(MN10300 Options): Combine the documentation for -mmult-bug,
+ 	-mam33, -mliw, and -msetlb with the entries for the respective
+ 	negative forms.  List and index the negative forms -mno-am33-2,
+ 	-mno-am34, -mno-return-pointer-on-d0, -mno-mul.x.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <MMIX Options>: Remove redundant
+ 	-mno- forms from the list.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/mips/mips.opt (mnoasmopt): Mark as "Undocumented".
+ 	* doc/invoke.texi (Option Summary) <MIPS Options>: Add missing
+ 	entries for -mel/-meb.  Only list one of -mfoo/-mno-foo.
+ 	(MIPS Options):  Document -meb/-mel as synonyms for -EB/-EL.
+ 	Add missing @opindex entries.  Document -mmsa and -mfix4300.
+ 	Minor copy-editing for grammar and jargon issues.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/microblaze/microblaze.opt (Zxl-mode-bootstrap):
+ 	Mark as "Undocumented".
+ 	(Zxl-mode-executable): Likewise.
+ 	(Zxl-mode-novectors): Likewise.
+ 	(Zxl-mode-xilkernel): Likewise.
+ 	(Zxl-mode-xmdstub): Likewise.
+ 	(mxl-stack-check): Likewise.
+ 	(mno-clearbss): Likewise.
+ 	(mxl-mode-executable): Make help string more useful.
+ 	(mxl-mode-xmdstub): Likewise.
+ 	(mxl-mode-bootstrap): Likewise.
+ 	(mxl-mode-novectors): Likewise.
+ 	(mxl-mode-xilkernel): Mark as "Undocumented".
+ 	* doc/invoke.texi (Option Summary) <MicroBlaze Options>: Delete
+ 	entries for obsolete options now explicitly undocumented, and add
+ 	missing -mxl-prefetch option.
+ 	(MicroBlaze Options): Add missing @opindex entries for negative
+ 	option forms and list negative forms explicitly when appropriate.
+ 	Delete documentation for obsolete/deprecated options.  Add
+ 	missing @opindex entries for the m[no-]xml-mode- options.
+ 	Add missing documentation for -mxl-prefetch.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <MCore Options>: Remove
+ 	redundant -no options.
+ 	(MCore Options): Disambiguate documentation for
+ 	-mbig-endian/-mlittle-endian and -m210/-m340.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	PR target/119404
+ 	* config/m68k/m68k.opt (mlra): Fix typo in help string.
+ 	* doc/invoke.texi (Option Summary) <M680x0 Options>: Remove
+ 	redundant -mno- forms from the list.
+ 	(M680x0 Options): Combine documentation for -mshort, mbitfield,
+ 	-msep-data, -mid-shared-library with that for their respective
+ 	negatives that were formerly separately listed.  Add missing
+ 	@opindex entries.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <M32R/D Options>: Remove
+ 	redundant -mno entry.
+ 	(M32R/D Options): Regularize form of @opindex entries for
+ 	various options of the form -mfoo=@var{value}.  Combine
+ 	the documentation for -malign-loops and -mno-align-loops.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (M32C Options): Add missing @opindex for negative
+ 	form.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <LoongArch Options>:
+ 	Remove redundant -mno forms from list.  Fix formatting so that
+ 	there is uniformly two spaces between options on the same line.
+ 	(LoongArch Options): Copy-editing for grammar, etc.  Add
+ 	@opindex for negative forms.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (LM32 Options): Add @opindex entries for negative
+ 	option forms.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/ia64/ia64.opt (msched-prefer-data-spec-insns): Mark as
+ 	explicitly "Undocumented".
+ 	(msched-prefer-non-control-spec-insns): Likewise.
+ 	* doc/invoke.texi (Option Summary) <IA-64 Options>: Remove
+ 	explicitly undocumented and redundant mno- forms from the list.
+ 	(IA-64 Options): Remove documentation for already-deleted option
+ 	-mfused-add and the two explicitly undocumented options.  Add
+ 	@opindex for negative forms and explicitly list the -mno-forms
+ 	of options that are enabled by default.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/pa/pa.opt (mbig-switch): Mark obsolete option as
+ 	"Undocumented".
+ 	(mjump-in-delay): Likewise.
+ 	(mlra): Likewise.
+ 	(mnosnake, msnake): Likewise.
+ 	* doc/invoke.texi (Option Summary) <HPPA Options>: Remove
+ 	deliberately undocumented options from list.  Remove redundant
+ 	negative/positive forms from list.  Fix formatting so there is
+ 	uniformly two spaces between options on the same line.
+ 	(HPPA Options): Remove documentation for obsolete options.
+ 	Add @opindex for negative forms.  Properly list -mwsio instead
+ 	of just referring to it in the -msio docs.  Light copy-editing to
+ 	fix markup, jargon, etc.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/h8300/h8300.opt (mexr, mno-exr): Add FIXME re ambiguity
+ 	for -mno-exr semantics.
+ 	* doc/extend.texi (H8/300 Function Attributes): Document
+ 	monitor and OS_Task attributes.
+ 	* doc/invoke.texi (Option Summary) <H8/300 Options}: Add -msx,
+ 	-ms2600, -mquickcall, -mslowbyte.  Combine -mexr and -mno-exr.
+ 	(H8/300 Options): Likewise.  Add @opindex entries for options
+ 	that have negative forms.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/arc/arc.opt: Mark -mbig-endian, -mlittle-endian,
+ 	-mmixed-code, -mno-mpy, -margonaut, -munalign-prob-threshold=,
+ 	-mannotate-align, -malign-call, -mRcq, -mRcw, -mbbit-peephole,
+ 	-mcompact-casesi, -mq-class, -mexpand-adddi, -mcrc, -mdsp-packa,
+ 	-mdvbf, -mtelephony, -mrtsc, -EB, -EL, -mrla, -mEA, and
+ 	-multcost= as "Undocumented".
+ 	* doc/invoke.texi: Remove documentation for the above options.
+ 	plus -mmac-d16 and -mmac-24 (which were already marked as
+ 	"Undocumented").  Likewise remove documentation for
+ 	-mbarrel_shifter, -mdpfp_compact, -mdpfp_fast, -mdsp_packa,
+ 	-mmac_24, -mmac_d16, -mspfp_compact, and -mspfp_fast, which
+ 	had already been deleted from arc.opt at some point.
+ 	Add index entries for the -mno- forms of remaining options that
+ 	have them.  Document positive forms of -mno-brcc and -mno-dpfp-lrsr.
+ 
+ 2025-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/arc/arc.opt (-mno-brcc, -mno-dpfp-lrsr): Redefine in
+ 	the positive sense.
+ 
+ 2025-12-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR ipa/122955
+ 	* cgraph.h (toplevel_node): Add next and previous fields.
+ 	Add chain_next and chain_prev to GTY.
+ 	(symtab_node): Remove next and previous field. Remove chain_next and chain_prev
+ 	from the GTY.
+ 	(asm_node): Remove next field.
+ 	(symtab_node::next_defined_symbol): Use save_as_a<symtab_node*> around next.
+ 	(symbol_table::unregister): Likewise
+ 	(FOR_EACH_SYMBOL): Likewise
+ 	(symbol_table::first_defined_symbol): Likewise
+ 	(symbol_table::first_variable): Likewise
+ 	(symbol_table::next_variable): Likewise
+ 	(symbol_table::first_static_initializer): Likewise
+ 	(symbol_table::next_static_initializer): Likewise
+ 	(symbol_table::first_defined_variable): Likewise
+ 	(symbol_table::next_defined_variable): Likewise
+ 	(symbol_table::first_defined_function): Likewise
+ 	(symbol_table::next_defined_function): Likewise
+ 	(symbol_table::first_function): Likewise
+ 	(symbol_table::next_function): Likewise
+ 	(symbol_table::first_function_with_gimple_body): Likewise
+ 	(symbol_table::next_function_with_gimple_body): Likewise
+ 	* cgraphunit.cc (analyze_functions): Likewise
+ 	(output_in_order): Likewise
+ 	* lto-streamer-out.cc (lto_output): Use save_as_a<asm_node*> around next.
+ 	* symtab.cc (symtab_node::verify_symtab_nodes): Likewise.
+ 
+ 2025-12-12  Chung-Lin Tang  <cltang@baylibre.com>
+ 	    Tobias Burnus  <tburnus@baylibre.com>
+ 	    Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Handle uses_allocators
+ 	by printing a 'sorry, unimplemented' and removing it.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_USES_ALLOCATORS.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise.
+ 	* tree-pretty-print.cc (dump_omp_clause): Handle it.
+ 	* tree.h (OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR,
+ 	OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE,
+ 	OMP_CLAUSE_USES_ALLOCATORS_TRAITS): New.
+ 
+ 2025-12-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/103680
+ 	* tree-loop-distribution.cc (destroy_loop): Set probability
+ 	of the exit edge to be always.
+ 
+ 2025-12-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/103680
+ 	* tree-cfg.cc (make_forwarders_with_degenerate_phis): Fix
+ 	initial value of the count to new bb.
+ 
+ 2025-12-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (s390_expand_builtin): Warn about
+ 	non-overloaded deprecated builtins.
+ 
+ 2025-12-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-c.cc (s390_adjust_builtin_arglist): Fix
+ 	builtin s390_vec_load_bndry for C++.
+ 
+ 2025-12-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
+ 	Perform array-to-pointer conversion for C++.
+ 
+ 2025-12-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/122003
+ 	* Makefile.in (ANALYZER_OBJS): Add analyzer/ops.o,
+ 	analyzer/supergraph-fixup-locations.o,
+ 	analyzer/supergraph-simplify.o, and analyzer/supergraph-sorting.o.
+ 	* digraph.h (dnode::add_in_edge): New.
+ 	(dnode::remove_in_edge): New.
+ 	(dnode::add_out_edge): New.
+ 	(dnode::remove_out_edge): New.
+ 	(dnode::m_preds): Make public.
+ 	(dnode::m_succs): Likewise.
+ 	(dnode::find_edge_idx): New.
+ 	(dedge::edge_t): New typedef.
+ 	(dedge::m_src): Make non-const.
+ 	(dedge::m_dest): Likewise.
+ 	(dedge::set_dest): New.
+ 	(digraph::add_any_extra_stmts): New.
+ 	(digraph<GraphTraits>::dump_dot_to_pp): Call it.
+ 	* doc/analyzer.texi: Update for rewrite of supergraph.
+ 	* doc/invoke.texi (fanalyzer-fine-grained): Make this as a no-op
+ 	preserved for backwards compatibility.
+ 	(fanalyzer-simplify-supergraph): Document new option.
+ 	(fdump-analyzer-supergraph): Update for changes to output.
+ 	* gdbhooks.py (AnaSupernodePrinter.to_string): Update for renaming
+ 	of supernode::m_index to supernode::m_id.
+ 	* system.h: Include <deque> if INCLUDE_DEQUE was defined.
+ 
+ 2025-12-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/121852
+ 	* rtlanal.cc (single_set_2): Only look for REG_UNUSED notes if
+ 	df && df_note, otherwise if df and SET_DEST is a pseudo with
+ 	DF_REG_USE_COUNT 0, assume it is unused as well.  Otherwise
+ 	assume it may be used.
+ 
+ 2025-12-12  Tejas Belagod  <tejas.belagod@arm.com>
+ 	    Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_instruction_selection): Flip
+ 	svbool_t == to != to avoid extra bit-inverse.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_block_move_loop): Change
+ 	length, align to unsigned.
+ 	(loongarch_expand_block_move): Ditto.
+ 
+ 2025-12-12  Jiajie Chen  <c@jia.je>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_emit_int_compare):
+ 	Call trunc_int_mode to ensure valid rhs.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 
+ 	* config/loongarch/predicates.md: Add CONSTM1_RTX for low_bitmask_operand.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 
+ 	* config/loongarch/larchintrin.h (__movgr2fcsr): Disable on soft float.
+ 	(__cacop_w): New.
+ 	(__lddir_d): Delete #error.
+ 	(__ldpte_d): Likewise.
+ 	(__crc_w_w_w): Disable on LA32
+ 	(__crc_w_d_w): Likewise.
+ 	(__crcc_w_w_w): Likewise.
+ 	* config/loongarch/loongarch-builtins.cc : Disable some builtin on LA32.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 	    Jiajie Chen  <c@jia.je>
+ 
+ 	* config/loongarch/loongarch-opts.cc (loongarch_target_option_override):
+ 	Delete opts->x_flag_pcc_struct_return and enable mstrict-align by
+ 	default on LA32.
+ 	* config/loongarch/loongarch.cc (loongarch_for_each_saved_reg): Save reg
+ 	depend on float abi.
+ 	(loongarch_explicit_relocs_p): Disable explicit relocs on LA32.
+ 	(loongarch_valid_offset_p): Disable const_imm16_operand with 4 byte aligned.
+ 	(loongarch_valid_lo_sum_p): Allow lo_sum to be used with DF in ilp32d.
+ 	(loongarch_valid_index_p): Disable ADDRESS_REG_REG on LA32.
+ 	(loongarch_legitimize_address): Disable mem_shadd_or_shadd_rtx_p on LA32.
+ 	(loongarch_output_move_index):  Assert TARGET_64BIT for ldx/stx.
+ 	(loongarch_output_move): Disable ldptr/stptr if offset is 0.
+ 	(loongarch_output_equal_conditional_branch): Disable beqz/bnez on LA32R.
+ 	(loongarch_trampoline_init): Change pcaddi to pcaddu12i.
+ 	(loongarch_get_separate_components): Disable ldptr/stptr on LA32.
+ 	(loongarch_c_mode_for_floating_type): Use TFmode for long double
+ 	regardless of target bitness.
+ 	(loongarch_bitint_type_info): Disable BitInt on LA32.
+ 	(loongarch_call_tls_get_addr): Use call30 on LA32.
+ 	(loongarch_split_move): Add split for DI, DF, TF.
+ 	* config/loongarch/loongarch.h (LA_LONG_DOUBLE_TYPE_SIZE): Set
+ 	LONG_DOUBLE_TYPE_SIZE to 128 regardless of target bitness.
+ 	(MAX_FIXED_MODE_SIZE): Set to 64 on LA32.
+ 	(DEFAULT_PCC_STRUCT_RETURN): New.
+ 	(STACK_BOUNDARY): Set to 128 on LA64 and LA32.
+ 	(LARCH_STACK_ALIGN): Set to 16 on LA64 and LA32.
+ 	(TRAMPOLINE_SIZE): Set to same value on LA64 and LA32.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 	    Jiajie Chen  <c@jia.je>
+ 
+ 	* config/loongarch/constraints.md: Disable k on LA32.
+ 	* config/loongarch/loongarch.md (*and<mode>3): Delete.
+ 	(*and<mode>3_extend): New.
+ 	(zero_extend<SHORT:mode><GPR:mode>2_la32r): New.
+ 	(extend<SHORT:mode><GPR:mode>2_la32r): New.
+ 	(extendqihi2_la32r): New.
+ 	(*movdi_32bit): Remove not working split, use existing
+ 	loongarch_split_move instead.
+ 	(move_doubleword_2_<mode>): New.
+ 	(load_low<mode>): New.
+ 	(load_high<mode>): New.
+ 	(store_word<mode>): New.
+ 	(movgr2frh<mode>): New.
+ 	(movfrh2gr<mode>): New.
+ 	* config/loongarch/predicates.md: Disable low_bitmask_operand and
+ 	ins_zero_bitmask_operand on LA32. Enable const_call_insn_operand on LA32.
+ 	* config/loongarch/sync.md (atomic_<amop><mode>): Change to define_expand.
+ 	(la64_atomic_<amop><mode>): New.
+ 	(la32_atomic_<amop>si): New.
+ 	(atomic_fetch_<amop><mode>): Change to define_expand.
+ 	(la64_atomic_fetch_<amop><mode>): New.
+ 	(la32_atomic_fetch_<amop>si): New.
+ 	(atomic_exchange<mode>): Change to define_expand.
+ 	(la64_atomic_exchange<mode>): New.
+ 	(la32_atomic_exchangesi): New.
+ 
+ 2025-12-12  mengqinggang  <mengqinggang@loongson.cn>
+ 	    Jiajie Chen  <c@jia.je>
+ 
+ 	* config.gcc: Add target triple loongarch32-*-*-* and
+ 	corresponding abi ilp32f, ilp32d and ilp32s.
+ 	* config/loongarch/genopts/loongarch-strings: Add strings for
+ 	loongarch32 and ilp32 abi variants.
+ 	* config/loongarch/genopts/loongarch.opt.in: Add
+ 	-march=la32v1.0/la32rv1.0 and -mabi=ilp32d/ilp32f/ilp32s.
+ 	* config/loongarch/gnu-user.h: Add ilp32 abi variants to spec.
+ 	* config/loongarch/linux.h: Add ABI_LIBDIR for ilp32 abi
+ 	variants.
+ 	* config/loongarch/loongarch-c.cc (loongarch_define_unconditional_macros):
+ 	Add builtin definitions for loongarch32 target.
+ 	* config/loongarch/loongarch-def.cc: Add loongarch32 and ilp32
+ 	definitions.
+ 	* config/loongarch/loongarch-def.h: Add loongarch32 and ilp32
+ 	definitions.
+ 	* config/loongarch/loongarch-driver.h: Add ilp32 abi variants to
+ 	spec.
+ 	* config/loongarch/loongarch-opts.cc: Handle ilp32 abi variants.
+ 	* config/loongarch/loongarch-opts.h: Add loongarch32 case to
+ 	macros.
+ 	* config/loongarch/loongarch-str.h: Add loongarch32 and ilp32
+ 	strings.
+ 	* config/loongarch/loongarch.opt: Add -march=la32v1.0/la32rv1.0
+ 	and -mabi=ilp32d/ilp32f/ilp32s.
+ 	* config/loongarch/t-linux: Add ilp32 abi variants to multilib.
+ 	* doc/invoke.texi: Add LA32 arch and tune.
+ 
+ 2025-12-12  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-12-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/arc/arc.cc (hwloop_optimize): Fix comment typo,
+ 	begining -> beginning.
+ 	* config/nds32/nds32-utils.cc (nds32::extract_pattern_from_insn):
+ 	Fix comment typo, funciton -> function.
+ 	* ipa-inline.cc (speculation_useful_p): Fix comment typo,
+ 	calll -> call.
+ 	* auto-profile.cc: Fix comment typos, implements -> implement,
+ 	inlning -> inlining, passe -> passes, form -> from, ambigous
+ 	-> ambiguous.
+ 	(afdo_hot_bb_threshod): Rename to ...
+ 	(afdo_hot_bb_threshold): ... this.
+ 	(maybe_hot_afdo_count_p): Adjust for the above change.
+ 	(function_instance::merge): Fix comment typo, hasnt -> hasn't.
+ 	(function_instance::offline_if_not_realized): Fix comment typo,
+ 	instancs -> instances.
+ 	(afdo_count_scale): Fix comment typo, reudce -> reduce.
+ 	(get_original_name): Fix comment typos, generetad -> generated,
+ 	sufix -> suffix.
+ 	(function_instance::get_function_instance): Fix dump message
+ 	typo, insteed -> instead.
+ 	(function_instance::merge): Fix comment typos, hasnt -> hasn't,
+ 	acounting -> accounting, calll -> call, begining -> beginning.
+ 	(function_instance::offline_if_in_set): Fix comment typo,
+ 	begining -> beginning.
+ 	(match_with_target): Fix comment typo, correspons -> corresponds.
+ 	(function_instance::match): Fix diagnostic typo, discrimnator
+ 	-> discriminator.
+ 	(autofdo_source_profile::offline_external_functions): Fix comment
+ 	typos, Doint -> Doing, distingush -> distinguish, shold -> should,
+ 	Poppulate -> Populate.  Fix dump message typo, suffxes -> suffixes.
+ 	(autofdo_source_profile::offline_unrealized_inlines): Fix comment
+ 	typo, Poppulate -> Populate.
+ 	(autofdo_source_profile::update_inlined_ind_target): Fix dump message
+ 	typo, funciton -> function.
+ 	(autofdo_source_profile::read): Fix comment typos, function_instace
+ 	-> function_instance, exixts -> exits.  Use afdo_hot_bb_threshold
+ 	instead of afdo_hot_bb_threshod.
+ 	(autofdo_source_profile::get_function_instance_by_inline_stack):
+ 	Fix dump message typo, locaction -> location.
+ 	(afdo_propagate_edge): Fix dump message typo, succesors -> successors.
+ 	(afdo_propagate): Fix comment typo, stablize -> stabilize.
+ 	(struct scale): Fix comment typo, descired -> desired.
+ 	(afdo_adjust_guessed_profile): Fix dump message typos, predecesor
+ 	-> predecessor, sucessor -> successor.  Fix comment typo, inprecise
+ 	-> imprecise.
+ 	(auto_profile): Fix comment typo, annoate -> annotate.
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Fix comment typo,
+ 	cylical -> cyclical.
+ 	* except.cc (maybe_add_nop_after_section_switch): Fix comment typo,
+ 	begining -> beginning.
+ 	* tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely): Fix comment
+ 	typo, begining -> beginning.
+ 	* gcc.cc (insert_comments): Likewise.
+ 
+ 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
+ 
+ 	* doc/extend.texi: Bump version and clarify implementation
+ 	status.
+ 
+ 2025-12-11  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/123014
+ 	* tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): Detect
+ 	empty pre-header block.
+ 	(vect_do_peeling): Undo changes from PR122959.
+ 
+ 2025-12-11  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_fndecl_abi): New function.
+ 	(aarch64_function_abi): New function.
+ 	(aarch64_function_arg_regno_p): Update to use aarch64_fndecl_abi.
+ 	(aarch64_output_mi_thunk): Likewise.
+ 	(aarch64_is_variant_pcs): Likewise.
+ 	(aarch64_set_current_function): Update to initialize pcs value.
+ 	* config/aarch64/aarch64.h (enum arm_pcs): Move location earlier in
+ 	file.
+ 	(machine_function) Add pcs value.
+ 
+ 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
+ 
+ 	* doc/invoke.texi: Update docs for '-Wdeprecated-openmp'.
+ 
+ 2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/80881
+ 	* config/i386/i386.h (DEFAULT_TLS_SEG_OFFSET): New define.
+ 	* config/mingw/mingw32.h (DEFAULT_TLS_SEG_OFFSET): Likewise.
+ 	* config/i386/i386.cc (ix86_tls_index): Fix long line.
+ 	(legitimize_tls_address): Use get_thread_pointer, add comments and
+ 	fix long lines.
+ 	* config/i386/i386.md (*load_tp_<mode>): Use DEFAULT_TLS_SEG_OFFSET
+ 	(*load_tp_x32_zext): Likewise.
+ 	(*add_tp_<mode>): Likewise.
+ 	(*add_tp_x32_zext): Likewise.
+ 	* config/i386/predicates.md (pic_32bit_operand): Fix oversight.
+ 	(symbolic_operand): Accept UNSPEC_SECREL32 with or without offset.
+ 
+ 2025-12-10  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/i386/i386.md (lea peephole2): Add 3 new variants.
+ 
+ 2025-12-10  Jakub Jelinek  <jakub@redhat.com>
+ 	    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/123069
+ 	* tree-vect-generic.cc (expand_vector_mult): Use
+ 	build_zero_cst (vectype) instead of build_int_cst (vectype, 0).
+ 
+ 2025-12-10  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Modules): Remove standard library header
+ 	units from missing pieces, mention importable header redirection.
+ 
+ 2025-12-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h (PID_TYPE): Define.
+ 	* doc/tm.texi.in (Type Layout): Document PID_TYPE.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2025-12-09  John Ericson  <git@JohnEricson.me>
+ 
+ 	* Makefile.in: No longer include TARGET_SYSTEM_ROOT in
+ 	libgcc.mvars.
+ 
+ 2025-12-09  John Ericson  <git@JohnEricson.me>
+ 
+ 	* Makefile.in:: Remove NO_PIE_CFLAGS logic, since it is now in
+ 	libgcc.
+ 	* configure: Regenerate.
+ 	* configure.ac: Remove the enable_default_pie substitution, since
+ 	libgcc now has its own logic.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/123074
+ 	* tree-vect-loop.cc: Reset LOOP_VINFO_USING_SELECT_VL_P.
+ 
+ 2025-12-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/predicates.md: Append operator lt to
+ 	the comparison_swappable_operator.
+ 	* config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Add
+ 	swappable operator lt handing.
+ 
+ 2025-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/121230
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	With FP mode and 387 math cost spill/reload.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.opt.urls:  Regenerate.
+ 
+ 2025-12-09  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_init_cumulative_args): Only warn once.
+ 	Use "required" instead of "enabled" in the warning.
+ 	* config/gcn/mkoffload.cc (process_asm): Warn, don't error.
+ 	Use "required" instead of "on" in the warning.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/122635
+ 	* gimple-fold.cc (enum mask_load_store_state): New enum.
+ 	(gimple_fold_partial_load_store_mem_ref): Only fold
+ 	"all active" loads/stores.
+ 	(partial_load_store_mask_state): New function to compute mask
+ 	state.
+ 	(gimple_fold_partial_load): Remove.
+ 	(gimple_fold_partial_load_store): New function.
+ 	(gimple_fold_partial_store): Remove.
+ 	(gimple_fold_call): Use new function.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/rs6000/predicates.md (lxvl_else_operand): New
+ 	predicate.
+ 	* config/rs6000/vsx.md: Add else operand.
+ 	* config/s390/predicates.md (vll_else_operand): New predicate.
+ 	* config/s390/vector.md: Add else operand.
+ 	* doc/md.texi: Document else operand.
+ 	* internal-fn.cc (internal_fn_len_index): Adjust IFN_LEN_LOAD.
+ 	(internal_fn_else_index): Add IFN_LEN_LOAD.
+ 	* optabs-tree.cc (target_supports_len_load_store_p): Get else
+ 	value for len_load.
+ 	* tree-vect-stmts.cc (vectorizable_load): Pun the else value
+ 	type.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::handle_max_vect):
+ 	New parser entry.
+ 	(riscv_target_attr_parser::update_settings): Set max-vect
+ 	option.
+ 	(riscv_process_one_target_attr): Change null-arg handling.
+ 	* config/riscv/riscv.cc (riscv_override_options_internal): Set
+ 	max-vect option.
+ 	* config/riscv/riscv.opt: Add -mmax-vectorization option.
+ 	* doc/extend.texi: Document new option.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/123022
+ 	* config/riscv/vector.md: Add mode_idx attribute.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/115325
+ 	* config/riscv/riscv-c.cc (riscv_pragma_target_parse): New
+ 	function.
+ 	(riscv_register_pragmas): Register riscv_pragma_target_parse.
+ 	* config/riscv/riscv-protos.h (riscv_process_target_attr_for_pragma):
+ 	Declare.
+ 	(riscv_reset_previous_fndecl): Ditto.
+ 	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr_for_pragma):
+ 	New function.
+ 	* config/riscv/riscv.cc (riscv_reset_previous_fndecl): Reset.
+ 	(riscv_option_save): New function.
+ 	(riscv_option_print): Ditto.
+ 	(riscv_get_interrupt_type): Adjust docs.
+ 	(TARGET_OPTION_SAVE): Implement.
+ 	(TARGET_OPTION_PRINT): Ditto.
+ 	* doc/extend.texi: Document that riscv can do target pragams.
+ 
+ 2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md (reduc_sbool_and_scal_<mode>): New
+ 	expander.
+ 	(reduc_sbool_ior_scal_<mode>): Ditto.
+ 	(reduc_sbool_xor_scal_<mode>): Ditto.
+ 	* config/riscv/riscv-protos.h (expand_mask_reduction): Declare.
+ 	* config/riscv/riscv-v.cc (expand_mask_reduction): New function.
+ 
+ 2025-12-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR target/123027
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_fp_minmax):
+ 	With !HONOR_NANS we can handle LE by swapping and inverting.
+ 
+ 2025-12-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/46555
+ 	* tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing):
+ 	Don't set todo to include cleanupcfg; do it manually.
+ 	Call make_forwarders_with_degenerate_phis if optimizing.
+ 
+ 2025-12-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfg.cc (make_forwarders_with_degenerate_phis): Add debug
+ 	dump.
+ 
+ 2025-12-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-dce.cc (sort_phi_args): Move to tree-cfg.cc.
+ 	(make_forwarders_with_degenerate_phis): Move to tree-cfg.cc.
+ 	(perform_tree_ssa_dce): Update for the updated return type
+ 	of make_forwarders_with_degenerate_phis.
+ 	* tree-cfg.cc (sort_phi_args): Moved from tree-ssa-dce.cc.
+ 	(make_forwarders_with_degenerate_phis): Moved from tree-ssa-dce.cc.
+ 	Update return type to bool and return true if an edge was split.
+ 	* tree-cfg.h (make_forwarders_with_degenerate_phis): New decl.
+ 
+ 2025-12-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/80881
+ 	* config/mingw/winnt.cc (mingw_pe_unique_section): Put two dollar
+ 	signs for TLS sections after the prefix.
+ 	(mingw_pe_asm_named_section): Deal with all TLS sections uniformly.
+ 
+ 2025-12-08  Ezra Sitorus  <Ezra.Sitorus@arm.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add C1-Nano,
+ 	C1-Pro, C1-Premium and C1-Ultra.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Document C1 cores.
+ 
+ 2025-12-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123040
+ 	* tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Only insert
+ 	nary results.
+ 
+ 2025-12-08  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/122798
+ 	* cgraph.cc (cgraph_edge::redirect_callee): Use
+ 	iterate_referring instead of referred_to_p.
+ 	* cgraphclones.cc (set_new_clone_decl_and_node_flags): Set local
+ 	to true iff the node does not have its address taken.
+ 
+ 2025-12-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123038
+ 	* tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Reject
+ 	pattern for reductions when the call argument is used multiple
+ 	times.
+ 
+ 2025-12-08  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/123026
+ 	* config/aarch64/aarch64-simd.md (reduc_sbool_ior_scal_<mode>,
+ 	reduc_sbool_and_scal_<mode>): Fix tmp operands[1] override.
+ 
+ 2025-12-08  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122868
+ 	* tree-vect-stmts.cc (vectorizable_load): Move check for invariant loads
+ 	down into the loop.
+ 
+ 2025-12-08  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122343
+ 	* config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): Don't allow
+ 	2 volatile memory references.
+ 
+ 2025-12-07  Jason Merrill  <jason@redhat.com>
+ 
+ 	* config/darwin-c.cc (find_subframework_header): Use
+ 	_cpp_get_file_*.
+ 
+ 2025-12-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122343
+ 	* common.opt: Add -ffuse-ops-with-volatile-access.
+ 	* common.opt.urls: Regenerated.
+ 	* recog.cc (general_operand): Allow volatile memory reference if
+ 	-ffuse-ops-with-volatile-access is enabled.
+ 	* simplify-rtx.cc (simplify_binary_operation_1): Keep PLUS for 2
+ 	volatile memory references.
+ 	* doc/invoke.texi: Document -ffuse-ops-with-volatile-access.
+ 
+ 2025-12-07  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* cselib.cc (dump_cselib_val): Split out of and rename to...
+ 	(dump_cselib_val_ptr): ... this.
+ 	(dump_cselib_table): Adjust.  Skip cselib_preserved_hash_table
+ 	when not allocated.
+ 
+ 2025-12-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/122947
+ 	* calls.cc (expand_call): Add stack function usage in
+ 	non-ACCUMULATE_OUTGOING_ARGS configurations.
+ 
+ 2025-12-06  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/91420
+ 	* config/riscv/riscv.cc (riscv_symbolic_constant_p): Require
+ 	offsets smaller than +/- 1GiB for PCREL symbols.
+ 
+ 2025-12-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* attribs.cc (decl_attributes): Use attribute_value_equal to
+ 	compare attribute values instead of simple_cst_equal.
+ 
+ 2025-12-06  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR rtl-optimization/122675
+ 	* bb-reorder.cc (edge_order): Fix BB edge ordering to be
+ 	descending.
+ 
+ 2025-12-05  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/122215
+ 	* ira-color.cc (improve_allocation): Use register filter for all
+ 	loop on hard regs.
+ 
+ 2025-12-05  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/122999
+ 	* config/arm/arm.cc (arm_canonicalize_comparison): Defer
+ 	initializing maxval until we know we are dealing with an
+ 	integer mode.
+ 
+ 2025-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
+ 	When peeling for gaps we always need an epilog.
+ 
+ 2025-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120939
+ 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
+ 	Remove eliding an epilogue based on not computed
+ 	LOOP_VINFO_COST_MODEL_THRESHOLD and estimated max stmt executions.
+ 
+ 2025-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123002
+ 	* tree-vectorizer.h (supportable_widening_operation): Remove
+ 	vinfo and stmt_info parameters, add flag to indicate whether
+ 	the context would allow OP_{EVEN,ODD}.
+ 	* tree-vect-patterns.cc (vect_recog_abd_pattern): Adjust
+ 	and pass false.
+ 	(vect_recog_widen_op_pattern): Likewise.
+ 	(vect_recog_widen_abd_pattern): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Move
+ 	even/odd validity check here, from supportable_widening_operation.
+ 	Adjust it to be conservative.
+ 	(supportable_widening_operation): Get flag whether even/odd
+ 	is OK to use and remove then unused parameters and code.
+ 
+ 2025-12-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-pretty-print.cc (dump_mem_ref): Dump clique : base
+ 	specifier for MEM_REF and TARGET_MEM_REF when dumping
+ 	GIMPLE format.
+ 
+ 2025-12-05  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_scan_omp_clauses): Handle
+ 	OMP_CLAUSE_DYN_GROUPPRIVATE by printing 'sorry, unimplemented'.
+ 	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DYN_GROUPPRIVATE.
+ 	(enum omp_clause_fallback_kind): New.
+ 	(struct tree_omp_clause): Add fallback_kind union member.
+ 	* tree-nested.cc (convert_nonlocal_omp_clauses,
+ 	convert_local_omp_clauses): Handle OMP_CLAUSE_DYN_GROUPPRIVATE.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
+ 	OMP_CLAUSE_DYN_GROUPPRIVATE.
+ 	* tree-pretty-print.cc (dump_omp_clause): Handle
+ 	OMP_CLAUSE_DYN_GROUPPRIVATE.
+ 	* tree.h (OMP_CLAUSE_DYN_GROUPPRIVATE_EXPR,
+ 	OMP_CLAUSE_DYN_GROUPPRIVATE_KIND): New #define.
+ 
+ 2025-12-05  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/99782
+ 	* config/i386/i386-expand.cc (ix86_gen_ccmp_next): Move the check
+ 	for mode earlier before expand_operands.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_ccmp_next): Likewise.
+ 
+ 2025-12-05  Daniel Barboza  <dbarboza@ventanamicro.com>
+ 	    Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* match.pd (`x & c ? (x - c) | (x | c)`): New pattern.
+ 	(`x & c ? (x & ~c) | (x | c)`): Likewise.
+ 
+ 2025-12-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*pred_cmp_swapped<mode>_scalar):
+ 	Add new pattern to match vec_dup > vec for vmsltu.
+ 	* config/riscv/predicates.md (comparison_swappable_operator):
+ 	Add new iterator for above pattern
+ 	* config/riscv/riscv-protos.h (expand_vx_cmp_vec_dup_vec): Add
+ 	new func to emit vmsltu.vx.
+ 	* config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Add new
+ 	func to convert cmp code to swapped, like gtu to ltu.
+ 	(expand_vx_cmp_vec_dup_vec): Add new func decl.
+ 
+ 2025-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/122991
+ 	* config/aarch64/aarch64.md (crc_rev<ALLI:mode><ALLX:mode>4,
+ 	crc<ALLI:mode><ALLX:mode>4): Use const_int_operand predicate for
+ 	the last operand.
+ 
+ 2025-12-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122776
+ 	* tree-vectorizer.h (vect_simd_clone_data::clone,
+ 	vect_simd_clone_data::clone_inbranch): New fields for
+ 	the two selected clones.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Record
+ 	both a possibly notinbranch and a inbranch clone.  Delay
+ 	the choice between both to code generation based on
+ 	LOOP_VINFO_FULLY_MASKED_P.
+ 
+ 2025-12-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* gimple-range-fold.h (class fold_using_range): New member
+ 	function range_from_readonly_var.
+ 	* gimple-range-fold.cc (fold_using_range::fold_stmt): Call
+ 	range_from_readonly_var on assignments.
+ 	(range_from_missing_constructor_part): New function.
+ 	(range_from_readonly_load): Likewise.
+ 	(fold_using_range::range_from_readonly_var): Likewise.
+ 	* params.opt (param_vrp_cstload_limit): New.
+ 	* doc/invoke.texi (vrp-cstload-limit): Likewise.
+ 
+ 2025-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/122991
+ 	* config/i386/i386.md (crc_rev<SWI124:mode>si4): Use const_int_operand
+ 	predicate for the last input argument.
+ 
+ 2025-12-04  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* lra-constraints.cc (get_reload_reg): Honor exclude start regs
+ 	while reusing reloads.
+ 
+ 2025-12-04  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	Revert:
+ 	2025-12-02  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* ipa-inline.cc (inline_functions_by_afdo): Remove resetting bool inlined.
+ 
+ 2025-12-03  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/85072
+ 	* lra-assigns.cc (init_live_reload_and_inheritance_pseudos):
+ 	Improve calculation of live_reload_and_inheritance_pseudos and set
+ 	a constraint to do this.
+ 	* params.opt
+ 	(lra-max-pseudos-points-log2-considered-for-preferences): New.
+ 	* doc/invoke.texi
+ 	(lra-max-pseudos-points-log2-considered-for-preferences): Document
+ 	it.
+ 
+ 2025-12-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR tree-optimization/122934
+ 	* tree-ssa-loop-niter.cc (simplify_using_initial_conditions): Use
+ 	singleton_p predicate even with boolean ranges.
+ 
+ 2025-12-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122943
+ 	* tree-switch-conversion.cc (switch_conversion::build_arrays):
+ 	Always gimplify subtraction in utype without cast to tidxtype
+ 	and set m_arr_ref_first to the last stmt of that.  Remove unneeded
+ 	update_stmt call.  If tidxtype is not utype, append after that stmt
+ 	cast to tidxtype and set tidx to the lhs of that cast.
+ 
+ 2025-12-03  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/122898
+ 	* gimple-range-fold.cc (fur_source::register_relation): Return a bool;
+ 	(fur_depend::register_relation): Ditto.
+ 	(fur_relation::register_relation): Ditto.
+ 	* gimple-range-fold.h (fur_source::register_relation): Adjust prototype.
+ 	(fur_depend::register_relation): Ditto.
+ 	* gimple-range-path.cc (jt_fur_source::register_relation): Return bool.
+ 	* value-relation.cc (equiv_oracle::add_partial_equiv): Return a bool.
+ 	(equiv_oracle::record): Return a bool.
+ 	(relation_oracle::record): Return a bool.
+ 	(dom_oracle::record): Return a bool.
+ 	(dom_oracle::set_one_relation): Remove some debug output.
+ 	(path_oracle::equiv_set): Return a bool.
+ 	(path_oracle::register_equiv): Return a bool.
+ 	(path_oracle::record): Return a bool.
+ 	* value-relation.h (relation_oracle::record): Adjust prototype.
+ 	(equiv_oracle::add_partial_equiv): Ditto
+ 	(equiv_oracle::record): Ditto.
+ 	(dom_oracle::record): Ditto.
+ 	(path_oracle::equiv_set): Ditto.
+ 	(path_oracle::register_equiv): Ditto.
+ 	(path_oracle::record): Ditto.
+ 
+ 2025-12-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/122964
+ 	* dwarf2out.cc (gen_compile_unit_die): Set LVERSION to 1978 for
+ 	Algol 68 and add dwarf_version >= 5 to guard.
+ 
+ 2025-12-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122969
+ 	* tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): handle
+ 	non-ssa name IV var args.
+ 
+ 2025-12-03  Mathias Krause  <minipli@grsecurity.net>
+ 
+ 	* config/i386/i386.cc (x86_print_call_or_nop): Fix 16-bit NOP
+ 	generation.
+ 
+ 2025-12-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122959
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Delay setting update_e.
+ 
+ 2025-12-03  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/71921
+ 	* config/i386/predicates.md (ieee_maxmin_comparison_operator):
+ 	New predicator.
+ 	* config/i386/sse.md (*minmax<mode>3_3): New define_insn_and_split.
+ 	(*minmax<mode>3_4): Ditto.
+ 	(*minmax<mode>3_1): Extend operands[2]/operands[4] to handle
+ 	immediate_operand.
+ 
+ 2025-12-02  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/122874
+ 	* config/pa/pa.cc (pa_emit_move_sequence): Break out large
+ 	REG+D addresses from MEM operands.  Also, don't allow
+ 	unscaled indexed source operands till reload completes.
+ 
+ 2025-12-02  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/122656
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Use
+ 	use_contiguous_load for vlsegff.
+ 	* config/riscv/riscv-vector-builtins.cc (function_expander::use_exact_insn):
+ 	Only add rounding mode operand if insn requires it and number of
+ 	arguments is < required.
+ 	(function_expander::use_ternop_insn): Ditto.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	* config/riscv/vector.md: Use vector-mode source operand.
+ 
+ 2025-12-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(function_builder::add_function): Remove placeholder_p parameter.
+ 	(function_builder::add_unique_function): Update call.
+ 	(function_builder::add_overloaded_function): Likewise.
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(function_builder::add_function): Update declaration.
+ 
+ 2025-12-02  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_scan_store): Pass loop_lens
+ 	to vect_get_data_ptr_increment.
+ 
+ 2025-12-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122868
+ 	* tree-vect-stmts.cc (vectorizable_load): Don't hoist loop invariant
+ 	conditional loads unless in header.
+ 
+ 2025-12-02  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* ipa-inline.cc (inline_functions_by_afdo): Remove resetting bool inlined.
+ 
+ 2025-12-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/122912
+ 	* config/aarch64/t-aarch64 (TM_H): Add aarch64-tuning-enums.def.
+ 
+ 2025-12-02  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* hard-reg-set.h (hard_reg_set_iter_init): Drop unnecessary
+ 	increment of min.
+ 	(hard_reg_set_iter_set): Use ctz_hwi, and compute
+ 	word-advanced regno from word_no.
+ 	(hard_reg_set_iter_next): Only clear the cached LSB.
+ 
+ 2025-12-02  David Guillen Fandos  <david@davidgf.net>
+ 
+ 	* config/mips/mips.h (ISA_HAS_MADD_MSUB): Include allegrex.
+ 	* config/mips/mips.md: Tweak mul_acc_si/mul_sub_si to make it
+ 	work when MUL3 is not available.
+ 
+ 2025-12-02  David Guillen Fandos  <david@davidgf.net>
+ 
+ 	* config/mips/mips.h (ISA_HAS_WSBW): Defined a new macro.
+ 	* config/mips/mips.md (bswapsi2): Add new instruction.
+ 	(wsbwsi2): Replace with expand to support both wsbw and wsbh.
+ 
+ 2025-12-02  David Guillen Fandos  <david@davidgf.net>
+ 
+ 	* config/mips/mips.h (ISA_HAS_MIN_MAX): Defined a new macro.
+ 	* config/mips/mips.md (sminsi3): Defined a new instruction.
+ 	(smaxsi3): Defined a new instruction.
+ 
+ 2025-12-02  David Guillen Fandos  <david@davidgf.net>
+ 
+ 	* config/mips/mips-cpus.def (MIPS_CPU): Added a new CPU.
+ 	* config/mips/mips-tables.opt: Regenerated table.
+ 	* config/mips/mips.cc: Added cost table for the new CPU.
+ 	* config/mips/mips.h (TARGET_ALLEGREX): Defined a new macro.
+ 	(TUNE_ALLEGREX): Defined a new macro.
+ 	(ISA_HAS_CONDMOVE): Added Allegrex CPU to the list.
+ 	(ISA_HAS_LDC1_SDC1): Exclude Allegrex from the list.
+ 	(ISA_HAS_COND_TRAP): Exclude Allegrex from the list.
+ 	(ISA_HAS_COND_TRAPI): Exclude Allegrex from the list.
+ 	(ISA_HAS_CLZ_CLO): Added Allegrex CPU to the list.
+ 	(ISA_HAS_ROR): Added Allegrex CPU to the list.
+ 	(ISA_HAS_WSBH): Added Allegrex CPU to the list.
+ 	(ISA_HAS_SEB_SEH): Added Allegrex CPU to the list.
+ 	(ISA_HAS_EXT_INS): Added Allegrex CPU to the list.
+ 	(ISA_HAS_XFER_DELAY): Exclude Allegrex from the list.
+ 	(ISA_HAS_HILO_INTERLOCKS): Added Allegrex CPU to the list.
+ 	* config/mips/mips.md: Added Allegrex CPU as a new processor.
+ 	* doc/invoke.texi: Documented Allegrex as a new arch
+ 
+ 2025-12-02  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Radek Barton  <radek.barton@microsoft.com>
+ 
+ 	* config.gcc: Add new Makefile fragment and new object file.
+ 	* config/aarch64/aarch64-builtins.cc
+ 	(aarch64_ms_variadic_abi_init_builtins): Initialize builtin
+ 	variadic functions for aarch64-w64-mingw32.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_ms_variadic_abi_init_builtins): Initialize builtin
+ 	variadic functions for aarch64-w64-mingw32.
+ 	* config/aarch64/aarch64.cc
+ 	(handle_aarch64_vector_pcs_attribute): Add support for
+ 	ARM_PCS_MS_VARIADIC.
+ 	(aarch64_ms_variadic_abi): Return descriptor to variadic
+ 	function call ABI for aarch64-w64-mingw32 target.
+ 	(aarch64_fntype_abi): Add support for variadic functions for
+ 	aarch64-w64-mingw32 target.
+ 	(aarch64_reg_save_mode): Add support for ARM_PCS_MS_VARIADIC.
+ 	(num_pcs_arg_regs): Add support for ARM_PCS_MS_VARIADIC.
+ 	(get_pcs_arg_reg): Add support for ARM_PCS_MS_VARIADIC.
+ 	(aarch64_arg_size): Returns size of argument.
+ 	(aarch64_ms_variadic_abi_layout_arg): aarch64-w64-mingw32
+ 	specific support for variadic ABI.
+ 	(aarch64_layout_arg): Add support for ARM_PCS_MS_VARIADIC.
+ 	(aarch64_function_arg): Implement TARGET_FUNCTION_ARG.
+ 	(aarch64_function_arg_advance): Add support for
+ 	ARM_PCS_MS_VARIADIC.
+ 	(aarch64_function_arg_regno_p): Add support for
+ 	ARM_PCS_MS_VARIADIC.
+ 	(aarch64_init_builtins): Add support for TARGET_AARCH64_MS_ABI.
+ 	(aarch64_ms_variadic_abi_build_builtin_va_list): Setup va_list
+ 	for aarch64-w64-mingw32.
+ 	(aarch64_build_builtin_va_list): Add support for
+ 	TARGET_AARCH64_MS_ABI.
+ 	(aarch64_ms_variadic_abi_expand_builtin_va_start): Implement
+ 	TARGET_BUILD_BUILTIN_VA_START.
+ 	(aarch64_setup_incoming_varargs): Implement
+ 	TARGET_SETUP_INCOMING_VARARGS.
+ 	(aarch64_mangle_type): Implement TARGET_MANGLE_TYPE.
+ 	(aarch64_variadic_abi_strict_argument_naming): Implement
+ 	TARGET_STRICT_ARGUMENT_NAMING.
+ 	* config/aarch64/aarch64.h
+ 	(aarch64_frame): Add new field
+ 	unaligned_saved_varargs_size.
+ 	(enum arm_pcs): Add new enum option
+ 	ARM_PCS_MS_VARIADIC.
+ 	* config/aarch64/cygming.h
+ 	(SUBTARGET_ATTRIBUTE_TABLE): Add support for ms_abi.
+ 	* config/mingw/winnt.cc
+ 	(aarch64_handle_ms_abi_attribute): Handle ms_abi attribue.
+ 	* config/mingw/winnt.h
+ 	(aarch64_handle_ms_abi_attribute): Handle ms_abi attribute.
+ 	* config/aarch64/aarch64-abi-ms-protos.h:
+ 	(aarch64_arg_partial_bytes): Declare.
+ 	(aarch64_ms_variadic_abi_canonical_va_list_type): Declare.
+ 	(aarch64_ms_variadic_abi_enum_va_list): Declare.
+ 	(aarch64_ms_variadic_abi_fn_abi_va_list): Implement
+ 	TARGET_FN_ABI_VA_LIST.
+ 	* config/aarch64/aarch64-abi-ms.cc:
+ 	(aarch64_arg_partial_bytes): Implement TARGET_ARG_PARTIAL_BYTES.
+ 	(aarch64_ms_variadic_abi_canonical_va_list_type): Implement
+ 	TARGET_CANONICAL_VA_LIST_TYPE.
+ 	(aarch64_ms_variadic_abi_enum_va_list): Implement
+ 	TARGET_ENUM_VA_LIST_P.
+ 	(aarch64_ms_variadic_abi_fn_abi_va_list): Implement
+ 	TARGET_FN_ABI_VA_LIST.
+ 	* config/aarch64/t-aarch64-mingw: New Makefile fragment.
+ 
+ 2025-12-02  Saurabh Jha  <saurabh.jha@arm.com>
+ 	    Radek Barton  <radek.barton@microsoft.com>
+ 	    Martin Vejbora  <mvejbora@microsoft.com>
+ 
+ 	* config/aarch64/aarch64-abi-ms.h
+ 	(TARGET_LONG_DOUBLE_128): Set this to 0.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_scalar_mode_supported_p): Make long double 64 bits.
+ 	(aarch64_c_mode_for_floating_type): Return true for TFmode.
+ 	* config/aarch64/aarch64.h
+ 	(TARGET_LONG_DOUBLE_128): Set this to 1.
+ 
+ 2025-12-02  Saurabh Jha  <saurabh.jha@arm.com>
+ 
+ 	* config/aarch64/aarch64-abi-ms.h
+ 	(ASM_COMMENT_START): Specify start of comment.
+ 	(ASM_OUTPUT_TYPE_DIRECTIVE): Moved from aarch64-coff.h.
+ 	(ASM_DECLARE_FUNCTION_SIZE): Specify end of function as comment.
+ 	* config/aarch64/aarch64-coff.h
+ 	(ASM_OUTPUT_TYPE_DIRECTIVE): Moved to aarch64-abi-ms.h.
+ 	(ASM_DECLARE_FUNCTION_SIZE): Moved to aarch64-abi-ms.h.
+ 
+ 2025-12-01  Peter Bergner  <bergner@tenstorrent.com>
+ 
+ 	PR target/122942
+ 	* config/riscv/riscv-profiles.def (rva23s64): Add zifencei.
+ 	(rvb23s64): Likewise.
+ 
+ 2025-12-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* doc/install.texi (Downloading the source): Mention Algol 68.
+ 
+ 2025-12-01  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122858
+ 	* config/arm/constraints.md (Ph): New constraint.
+ 	* config/arm/mve.md (mve_asrl_imm, mve_lsll_imm): Fix constraints
+ 	of operand 1 and handle 32 as special shift amount.
+ 
+ 2025-12-01  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/122652
+ 	* config/riscv/riscv-vsetvl.cc: Add nullptr check.
+ 
+ 2025-12-01  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR fortran/120505
+ 	* omp-low.cc (lower_omp_target): Set GOMP_MAP_IMPLICIT flag.
+ 
+ 2025-12-01  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122906
+ 	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
+ 	TLS call after deleted instructions.
+ 
+ 2025-11-30  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/115120
+ 	PR tree-optimization/119577
+ 	PR tree-optimization/119860
+ 	* tree-vect-loop-manip.cc (vect_can_advance_ivs_p): Check for nonlinear
+ 	mult induction and early break.
+ 	(vect_update_ivs_after_vectorizer): Support early break exits.
+ 	(vect_do_peeling): Support scalar IVs.
+ 	* tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Support early break.
+ 	(vect_update_nonlinear_iv): use `unsigned_type_for` such that function
+ 	works for both vector and scalar types.
+ 	(vectorizable_induction, vectorizable_live_operation): Remove vector
+ 	early break IV code.
+ 	(vect_update_ivs_after_vectorizer_for_early_breaks): New.
+ 	(vect_transform_loop): Support new scalar IV for early break.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Remove SLP build for early break
+ 	IVs.
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): No longer mark early break
+ 	IVs as completely unused rather than used_only_live.  They no longer
+ 	contribute to the vector loop and so should not be analyzed.
+ 	(can_vectorize_live_stmts): Remove vector early vreak IV code.
+ 	* tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_NITERS_VAR): New.
+ 	(class loop_vec_info): Add early_break_niters_var.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* Makefile.in (OPT_URLS_HTML_DEPS): Add ga68/Option-Index.html.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* doc/install.texi (Configuration): Mention algol68 option for
+ 	--enable-languages.
+ 	(Algol 68-Specific Options): New section.
+ 	* doc/sourcebuild.texi (Top Level): Add entry for libga68.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue):
+ 	Handle "GNU Algol 68" in language_string.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* config/darwin.h: Adapt specs for libga68.a.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* dwarf2out.cc: Set DW_LANG_Algol68 an DW_LNAME_Algol68.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* common.opt: New option -static-libga68.
+ 	* common.opt.urls: Generate.
+ 	* gcc.cc: Handle OPT_static_libga68.
+ 	* regenerate-opt-urls.py (PER_LANGUAGE_OPTION_INDEXES): Add Algol68.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* Makefile.def (libga68): New module.
+ 	(configure-target-libga68): Likewise.
+ 	* Makefile.tpl (GA68): Define.
+ 	(GA68_FOR_BUILD): Likewise.
+ 	(GA68FLAGS): Likewise.
+ 	* configure.ac (--enable-libga68): New option.
+ 	(--enable-algol68-gc): Likewise.
+ 	(GA68): Subst.
+ 	(GA68FLAGS): Likewise.
+ 	Invoke ACX_PROG_GA68.
+ 	* configure: Regenerate.
+ 	* Makefile.in: Likewise.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* common.opt.urls: Regenerated.
+ 	* config/aarch64/aarch64.opt.urls: Regenerated.
+ 	* config/alpha/alpha.opt.urls: Regenerated.
+ 	* config/arm/arm.opt.urls: Regenerated.
+ 	* config/avr/avr.opt.urls: Regenerated.
+ 	* config/bpf/bpf.opt.urls: Regenerated.
+ 	* config/c6x/c6x.opt.urls: Regenerated.
+ 	* config/cris/cris.opt.urls: Regenerated.
+ 	* config/cris/elf.opt.urls: Regenerated.
+ 	* config/csky/csky.opt.urls: Regenerated.
+ 	* config/darwin.opt.urls: Regenerated.
+ 	* config/epiphany/epiphany.opt.urls: Regenerated.
+ 	* config/frv/frv.opt.urls: Regenerated.
+ 	* config/ft32/ft32.opt.urls: Regenerated.
+ 	* config/gcn/gcn.opt.urls: Regenerated.
+ 	* config/i386/i386.opt.urls: Regenerated.
+ 	* config/ia64/ia64.opt.urls: Regenerated.
+ 	* config/loongarch/loongarch.opt.urls: Regenerated.
+ 	* config/m68k/m68k.opt.urls: Regenerated.
+ 	* config/microblaze/microblaze.opt.urls: Regenerated.
+ 	* config/mips/mips.opt.urls: Regenerated.
+ 	* config/mmix/mmix.opt.urls: Regenerated.
+ 	* config/or1k/or1k.opt.urls: Regenerated.
+ 	* config/pa/pa.opt.urls: Regenerated.
+ 	* config/pdp11/pdp11.opt.urls: Regenerated.
+ 	* config/rs6000/rs6000.opt.urls: Regenerated.
+ 	* config/s390/s390.opt.urls: Regenerated.
+ 	* config/sparc/sparc.opt.urls: Regenerated.
+ 	* config/v850/v850.opt.urls: Regenerated.
+ 	* config/vax/vax.opt.urls: Regenerated.
+ 	* config/visium/visium.opt.urls: Regenerated.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/invoke.texi (Options Summary): Switch ordering of FRV
+ 	and FT32.
+ 	(Submodel Options): Likewise in the menu and section ordering.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi: Document -mno-android.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/frv/frv.opt (mbranch-cost=): Mark as Undocumented.
+ 	(mcond-exec-insns=): Likewise.
+ 	(mcond-exec-tempss=): Likewise.
+ 	* doc/invoke.texi (Option Summary) <FRV Options>: Remove duplicate
+ 	positive/negative forms from the list.
+ 	(FRV Options): Combine documentation of positive/negative forms
+ 	where they were listed separately.  Add @opindex entries for
+ 	negative forms.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/ft32/ft32.opt (mlra): Mark obsolete option as Undocumented.
+ 	* doc/invoke.texi (Option Summary) <FT32 Options>: Remove -mlra.
+ 	(FT32 Options): Likewise.  Add @opindex entries for negative
+ 	option forms.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (FR30 Options): Add @opindex for -mno-small-model.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <eBPF Options>: Fix formatting
+ 	issues.  Remove redundant entry for -mno-co-re.
+ 	(eBPF Options): Add missing @opindex entries.  Combine documentation
+ 	for -mco-re and -mno-co-re.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/alpha/alpha.opt (mgas): Mark as Undocumented.
+ 	* doc/invoke.texi (Option Summary) <DEC Alpha Options>:  Add
+ 	-mtls-kernel, -mtls-size=, -mlong-double-128, and -mlong-double-64.
+ 	(DEC Alpha Options): Likewise.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/darwin.opt (findirect-virtual-calls): Mark as Undocumented.
+ 	(fterminated-vtables): Likewise.
+ 	(multi_module): Likewise.
+ 	(multiply_defined): Likewise.
+ 	(multiply_defined_unused): Likewise.
+ 	(no_dead_strip_inits_and_terms): Likewise.
+ 	(noprefixbinding): Likewise.
+ 	(nomultidefs): Likewise.
+ 	(noprebind): Likewise.
+ 	(noseglinkedit): Likewise.
+ 	(ObjC, ObjC++): Add documentation strings.
+ 	(object): Mark as Undocumented.
+ 	(prebind): Likewise.
+ 	(prebind_all_twolevel_modules): Likewise.
+ 	(private_bundle): Likewise.
+ 	(sectobjectsymbols): Likewise.
+ 	(sectorder): Likewise.
+ 	(seg_addr_table_filename): Likewise.
+ 	(segcreate): Likewise.
+ 	(seglinkedit): Likewise.
+ 	(single_module): Likewise.
+ 	(X): Likewise.
+ 	(y): Likewise.
+ 	(Mach): Likewise.
+ 	* doc/invoke.texi (Option Summary) <Darwin Options>: Improve
+ 	alphabetization of the list.  Remove obsolete/undocumented
+ 	options and add missing entries.
+ 	(Darwin Options): Add documentation for -arch, -dependency-file,
+ 	-fapple-kext, -matt-stubs, -fconstant-cfstrings, -mdynamic-no-pic,
+ 	-asm_macosx_version_min, -msymbol-stubs, -mtarget-linker,
+ 	-ObjC, -ObjC++, -Wnonportable-cfstrings.  Update the list
+ 	of options passed to the linker to remove obsolete options
+ 	and add missing ones; also move the block of @opindex entries
+ 	before the list items instead of putting it in the middle.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <Cygwin and MinGW Options>:
+ 	Correct spelling of -mthreads and add missing options.
+ 	(Cygwin and MinGW Options): Add @opindex for negative forms.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <C-SKY Options>: Remove
+ 	entries for "Undocumented" options -EB, -EL, -mhard-float,
+ 	-msoft-float, and nonexistent option -mcse-cc.
+ 	(C-SKY Options): Likewise.  Also remove references to "Undocumented"
+ 	option -mstm and uniformly index/document the -mno- forms for
+ 	consistency with other options in this section that already do so.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/cris/cris.opt (m32-bit, m16-bit, m8-bit): Remove
+ 	Undocumented property.
+ 	(m32bit, m8bit): Add Undocumented property.
+ 	* doc/invoke.texi (Option Summary) <CRIS Options>: Remove
+ 	obsolete -melf and -maout options from table, plus redundant
+ 	-mno-mul-bug-workaround.
+ 	(CRIS Options): Add @opindex for -mno- forms that didn't already
+ 	have one.  Remove obsolete -melf documentation.  Document
+ 	-mbest-lib-options, -moverride-best-lib-options,
+ 	-mtrap-using-break8, -mtrap-unaligned-atomic, and
+ 	-munaligned-atomic-may-use-library.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <C6X Options>: Add -mdbst
+ 	and -mlong-calls.
+ 	(C6X Options): Likewise.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary) <Blackfin Options>:
+ 	Remove redundant -mno- entries.
+ 	(Blackfin Options): Combine explicit -mno-* documentation
+ 	with that for the corresponding positive form of the option.
+ 	Add @opindex entries for the negative forms of options that
+ 	didn't already have one.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/arm/arm.opt (mapcs-reentrant): Mark as "Undocumented",
+ 	updatehelp string for internal documentation.
+ 	(mapcs-stack-check): Likewise update help string.
+ 	(mprint-tune-info, mneon-for-64bits): Mark as "Undocumented".
+ 	* doc/invoke.texi (Option Summary) <ARM Options>: Remove duplicate
+ 	entries for negative forms and entries for options that are
+ 	explicitly "Undocumented".  Add missing entry for
+ 	-mpic-data-is-text-relative.  Fix some formatting issues.
+ 	(ARM Options): Remove documentation for -mapcs-stack-check,
+ 	-mapcs-reentrant, -mflip-thumb, -mneon-for-64-bits,
+ 	-mprint-tune-info, and -mverbose-cost-dump.  Add index entries
+ 	for -mno- option forms.  Minor editing for clarity.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	PR target/122288
+ 	* config/gcn/gcn.opt (m32, m64, mgomp): Mark "Undocumented"
+ 	since these options don't actually do anything useful.
+ 	(flag_bypass_init_error, stack_size_opt, gang_size_opt): Correct
+ 	opt file syntax.
+ 	(mstack-size=): Mark "Undocumented" since it's obsolete.
+ 	* doc/invoke.texi (Option Summary) <AMD GCN Options>:
+ 	Remove obsolete options, add missing entries for
+ 	-mgang-private-size=, -msram-ecc=, and -mxnack=.
+ 	(AMD GCN Options): Likewise.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/epiphany/epiphany.opt (mlong-calls): Make it do something
+ 	useful.
+ 	(may-round-for-trunc): Make this undocumented option with a weird
+ 	name an alias for -mmay-round-for-trunc.
+ 	(mfp-iarith): Fix doc string.
+ 	* doc/invoke.texi (Option Summary) <Adapteva Epiphany Options>:
+ 	Add missing options.
+ 	(Adapteva Epiphany Options): Document negative forms also when
+ 	that is not the default, or where it's unclear.  Document
+ 	-may-round-for-trunc and -mfp-iarith.  Fix spelling of
+ 	-mpost-inc and -mpost-modify.
+ 
+ 2025-11-29  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* config/aarch64/aarch64.opt (Wexperimental-fmv-target): Mark
+ 	as "Undocumented".
+ 	* doc/invoke.texi (Option Summary) <AArch64 Options>: Don't
+ 	list "Undocumented" aarch64 options -mverbose-cost-dump or
+ 	-Wexperimental-fmv-target, or both positive and negative forms
+ 	of other options.  Add missing options.  Fix whitespace problems.
+ 	(AArch64 Options): Light copy-editing.  Add missing @opindex
+ 	entries	to match the documented options.  Undocument
+ 	-mverbose-cost-dump and -Wexperimental-fmv-target.
+ 
+ 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/rs6000/rs6000.cc (complex_multiply_builtin_code):
+ 	Avoid arithmetics between enumerators from different enum types.
+ 	(complex_divide_builtin_code): Likewise.
+ 
+ 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_unspec_address_offset):
+ 	Avoid arithmetics between enumerators from different enum types.
+ 	(loongarch_call_tls_get_addr): Likewise.
+ 
+ 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/mips/mips.cc (mips_unspec_address_offset): Avoid
+ 	arithmetics between enumerators from different enum types.
+ 
+ 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector_onestep): Avoid
+ 	bitwise ops between enumerators from different enum types.
+ 	(emit_vec_cvt_x_f): Likewise.
+ 	(emit_vec_cvt_x_f_rtz): Likewise.
+ 	* config/riscv/riscv.cc (riscv_unspec_address_offset): Avoid
+ 	arithmetics between enumerators from different enum types.
+ 
+ 2025-11-28  Sam James  <sam@gentoo.org>
+ 
+ 	* crc-verification.cc (crc_symbolic_execution::is_used_outside_the_loop):
+ 	Fix 'assignment' typo.
+ 
+ 2025-11-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/122686
+ 	* range-op.cc (operator_bitwise_and::op1_range): Check for
+ 	undefined bitmask.
+ 	* value-range.cc (prange::intersect): Handle undefined bitmask
+ 	intersection.
+ 	(irange::get_bitmask): Ditto.
+ 	(irange::intersect_bitmask): Ditto.
+ 	* value-range.h (irange_bitmask::intersect): Return false if the
+ 	result is UNDEFINED.
+ 
+ 2025-11-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config.gcc (amdgcn-*-*): Use gfx90a for 'with_arch'.
+ 	For TM_MULTILIB_CONFIG, replace specific archs by
+ 	gfx{9,9-4,10-3,11}-generic, keep gfx90{8,a}.
+ 	* config/gcn/gcn.opt (march=, mtune=): Use gfx90a.
+ 	* doc/install.texi (amdgcn): Update accordingly.
+ 
+ 2025-11-28  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-builtins.h
+ 	(S390_OVERLOADED_BUILTIN_VAR_OFFSET,S390_ALL_BUILTIN_MAX): Fix
+ 	enum arithmetic.
+ 	* config/s390/s390.cc (OB_DEF): Ditto.
+ 
+ 2025-11-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122844
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Only
+ 	try stripping sign conversions around ops where this is valid.
+ 
+ 2025-11-28  Jim Lin  <jim@andestech.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_output_move): Use \n\t instead
+ 	of semicolon to separate instructions in fmv.x.h emulation.
+ 
+ 2025-11-28  Charlie Jenkins  <charlie@rivosinc.com>
+ 
+ 	* config.gcc: Add cpu to supported configure options
+ 	* config/riscv/riscv.h (riscv_arch_help): Use --with-cpu during
+ 	compilation
+ 	* doc/install.texi: Mention in docs that --with-cpu is supported
+ 
+ 2025-11-28  Mark Zhuang  <mark.zhuang@spacemit.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_CORE): Add xsmtvdot to
+ 	spacemit-x60
+ 	* config/riscv/riscv-ext.def: Add xsmtvdot
+ 	* config/riscv/riscv-ext.opt: Ditto
+ 	* config/riscv/t-riscv: Ditto
+ 	* doc/riscv-ext.texi: Ditto
+ 	* config/riscv/riscv-ext-spacemit.def: Define xsmtvdot
+ 
+ 2025-11-28  Mark Zhuang  <mark.zhuang@spacemit.com>
+ 
+ 	* config/riscv/riscv-ext.opt: Generated file.
+ 
+ 2025-11-28  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-45-sereis.
+ 	(RISCV_CORE): Add Andes 45 series cpu list.
+ 	* config/riscv/riscv-opts.h
+ 	(enum riscv_microarchitecture_type): Add andes_45_series.
+ 	* config/riscv/riscv.cc: Add andes_45_tune_info.
+ 	* config/riscv/riscv.md: Add andes_45.
+ 	* doc/riscv-mcpu.texi: Regenerated for Andes cpu list.
+ 	* doc/riscv-mtune.texi: Regenerated for andes-45-series.
+ 	* config/riscv/andes-45-series.md: New file.
+ 
+ 2025-11-28  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-23-series.
+ 	(RISCV_CORE): Add Andes 23-series cpu list.
+ 	* config/riscv/riscv-opts.h
+ 	(enum riscv_microarchitecture_type): Add andes_23_series.
+ 	* config/riscv/riscv.cc: Add andes_23_tune_info.
+ 	* config/riscv/riscv.md: Add andes_23.
+ 	* doc/riscv-mcpu.texi: Regenerated for Andes cpu list.
+ 	* doc/riscv-mtune.texi: Regenerated for andes-23-series.
+ 	* config/riscv/andes-23-series.md: New file.
+ 
+ 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122733
+ 	* gimple-match-head.cc (gimple_match_range_of_expr): Return false
+ 	even when range_of_expr returns true, but the range is undefined_p.
+ 	* match.pd ((mult (plus:s@5 (mult:s@4 @0 @1) @2) @3)): Remove
+ 	vr0.undefined_p () check.
+ 	((plus (mult:s@5 (plus:s@4 @0 @1) @2) @3)): Likewise.
+ 	((X + M*N) / N -> X / N + M): Remove vr4.undefined_p () check.
+ 	((X - M*N) / N -> X / N - M): Likewise.
+ 	((y << x) == x, (y << x) != x): Use convert2? instead of
+ 	nop_convert2? and test INTEGRAL_TYPE_P on TREE_TYPE (@0) rather than
+ 	TREE_TYPE (@1).
+ 	((y << x) {<,<=,>,>=} x): New simplification.
+ 	(((T)(A)) + CST -> (T)(A + CST)): Remove vr.undefined_p () check.
+ 	(x_5 == cstN ? cst4 : cst3): Remove r.undefined_p () check.
+ 
+ 2025-11-28  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122890
+ 	* optabs.cc (emit_cmp_and_jump_insns): Check for SSA Name.
+ 
+ 2025-11-27  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros): Define
+ 	__ARM_BUILDATTR64_FV when BA support is detected in GAS.
+ 
+ 2025-11-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (ctz<mode>2): Use compact syntax.
+ 
+ 2025-11-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (ffs<mode>2): Use gen_ctz.
+ 	(ctz<mode>2): Model ctz as a single target instruction.
+ 
+ 2025-11-27  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/atomics.md (*dmb): Expand release fence into dmb ishld
+ 	and dmb ishst.
+ 
+ 2025-11-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-reassoc.cc (rewrite_expr_tree): Swap
+ 	oe1 and oe2 if commutative code and not in
+ 	canonical order.
+ 
+ 2025-11-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def (AVR_MCUS): Add avr16la14, avr16la20,
+ 	avr16la28, avr16la32, avr32la14, avr32la20, avr32la28, avr32la32.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2025-11-27  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/122855
+ 	PR tree-optimization/122850
+ 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Nop
+ 	convert input if necessary.
+ 
+ 2025-11-27  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_init_cumulative_args): Emit a warning if the
+ 	-mxnack setting looks wrong.
+ 	* config/gcn/mkoffload.cc: Include tree.h and omp-general.h.
+ 	(process_asm): Add omp_requires parameter.
+ 	Emit HSA_XNACK code into mkoffload_setup, as required.
+ 	(main): Modify HSACO_ATTR_OFF to preserve user-set -mxnack.
+ 	Pass omp_requires to process_asm.
+ 
+ 2025-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/122714
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Adjust
+ 	MEM_REFs offset for bitint_big_endian if ltype doesn't have the
+ 	same byte size as m_limb_type.
+ 
+ 2025-11-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fix
+ 	recording of the mask type again.  Adjust placing of
+ 	mask arguments for non-masked calls.
+ 
+ 2025-11-27  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	PR tree-optimization/122733
+ 	* match.pd ((y << x) {<,<=,>,>=} x): Remove.
+ 	((y << x) {==,!=} x): Call constant_boolean_node instead of
+ 	build_one_cst/build_zero_cst and combine into one pattern.
+ 
+ 2025-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* fold-const.h (expr_not_equal_to): Add gimple * argument defaulted
+ 	to NULL.
+ 	* fold-const.cc (expr_not_equal_to): Likewise, pass it through to
+ 	range_of_expr.
+ 	* generic-match-head.cc (gimple_match_ctx): New static inline.
+ 	* match.pd (X % -Y -> X % Y): Capture NEGATE and pass
+ 	gimple_match_ctx (@2) as new 3rd argument to expr_not_equal_to.
+ 	((A * C) +- (B * C) -> (A+-B) * C): Pass gimple_match_ctx (@3)
+ 	as new 3rd argument to expr_not_equal_to.
+ 	(a rrotate (bitsize-b) -> a lrotate b): Likewise.
+ 
+ 2025-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/119683
+ 	* gimple-match.h (gimple_match_ctx): Move to ...
+ 	* gimple-match-head.cc (gimple_match_ctx): ... here.  Make static.
+ 	(gimple_match_range_of_expr): New static inline.
+ 	* match.pd ((mult (plus:s (mult:s @0 @1) @2) @3)): Use
+ 	gimple_match_range_of_expr.
+ 	((plus (mult:s (plus:s @0 @1) @2) @3)): Likewise.
+ 	((t * u) / u -> t): Likewise.
+ 	((t * u) / v -> t * (u / v)): Likewise.
+ 	((X + M*N) / N -> X / N + M): Likewise.
+ 	((X - M*N) / N -> X / N - M): Likewise.
+ 	((X + C) / N -> X / N + C / N): Likewise.
+ 	(((T)(A)) + CST -> (T)(A + CST)): Likewise
+ 	(x_5 == cstN ? cst4 : cst3): Likewise.  Do r.set_varying
+ 	even when gimple_match_range_of_expr failed.
+ 
+ 2025-11-27  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-builtins.cc (arm_init_mve_builtins): Remove
+ 	volatile qualifier.
+ 
+ 2025-11-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122885
+ 	* tree-vect-loop.cc (vect_find_reusable_accumulator): Reject
+ 	mask vectors which do not use integer vector modes.
+ 	(vect_create_partial_epilog): Assert the same.
+ 
+ 2025-11-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-options.cc (set_ix86_tune_features): Set
+ 	gather/scatter tune if OPTION_SET_P.
+ 	* config/i386/i386.opt: Refactor mgather/mscatter.
+ 
+ 2025-11-27  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* doc/extend.texi: Remove the incorrect prompt message.
+ 
+ 2025-11-27  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/invoke.texi (Option Summary) <C++ Langauge Options>:
+ 	Add --compile-std-module.
+ 
+ 2025-11-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2025-10-14  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::get_profile_name):
+ 	New function.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
+ 	profile macro if a profile is detected.
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::get_profile_name): Declare.
+ 
+ 2025-11-26  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* doc/extend.texi (Syntax Extensions): Document _Maxof & _Minof.
+ 
+ 2025-11-26  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* optabs.cc (emit_cmp_and_jump_insns): Check for non-single use.
+ 
+ 2025-11-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122735
+ 	* simplify-rtx.cc (simplify_binary_operation_1): When moving a SUBREG
+ 	from an outer expression to an inner operand, make sure to avoid
+ 	trying to create invalid SUBREGs.
+ 
+ 2025-11-26  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/122867
+ 	* config/arm/arm.cc (arm_print_operand): Use %- to
+ 	emit LOCAL_LABEL_PREFIX.
+ 	(arm_print_operand_punct_valid_p): Allow %- for punct
+ 	and make %_ valid for all compilation variants.
+ 	* config/arm/thumb2.md (*thumb2_cbz): Handle very
+ 	large branch ranges that exceed the limit of b<cond>.
+ 	(*thumb2_cbnz): Likewise.
+ 
+ 2025-11-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110571
+ 	* tree-vectorizer.h (vect_need_peeling_or_partial_vectors_p): Remove.
+ 	* tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
+ 	Fix when called on epilog loops.  Make static.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Do not
+ 	re-compute LOOP_VINFO_PEELING_FOR_NITER.
+ 
+ 2025-11-26  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122861
+ 	* optabs.cc (emit_cmp_and_jump_insns): Check argument instead of result.
+ 
+ 2025-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (gnu++17): Remove comment about the default.
+ 	(c++20): Remove note about experimental support, except add a note
+ 	that modules are still experimental and need to be enabled separately.
+ 	(gnu++20): Likewise.  Move here comment about the default.
+ 	(fcoroutines): Mention it is enabled by default for C++20 and later.
+ 	* doc/standards.texi: Document that the default for C++ is
+ 	-std=gnu++20.
+ 
+ 2025-11-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
+ 	AVX512 masking for loop masked SIMD clone call.
+ 
+ 2025-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122835
+ 	* tree-eh.cc (replace_goto_queue_1): Handle GIMPLE_ASM.
+ 	(maybe_record_in_goto_queue): Likewise.
+ 	(lower_eh_constructs_2): Likewise.
+ 
+ 2025-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/119683
+ 	* gimple-match.h (gimple_match_ctx): New inline function.
+ 	* match.pd ((mult (plus:s (mult:s @0 @1) @2) @3)): Capture
+ 	PLUS, use get_range_query (cfun) instead of
+ 	get_global_range_query () and pass gimple_match_ctx (@5)
+ 	as 3rd argument to range_of_expr.
+ 	((plus (mult:s (plus:s @0 @1) @2) @3)): Similarly for MULT,
+ 	with @4 instead of @5.
+ 	((t * u) / u -> t): Similarly with @2 instead of @4.
+ 	((t * u) / v -> t * (u / v)): Capture MULT, pass gimple_match_ctx (@3)
+ 	as 3rd argument to range_of_expr.
+ 	((X + M*N) / N -> X / N + M): Pass gimple_match_ctx (@3) or
+ 	gimple_match_ctx (@4) as 3rd arg to some range_of_expr calls.
+ 	((X - M*N) / N -> X / N - M): Likewise.
+ 	((X + C) / N -> X / N + C / N): Similarly.
+ 	(((T)(A)) + CST -> (T)(A + CST)): Capture CONVERT, use
+ 	get_range_query (cfun) instead of get_global_range_query ()
+ 	and pass gimple_match_ctx (@2) as 3rd argument to range_of_expr.
+ 	(x_5 == cstN ? cst4 : cst3): Capture EQNE and pass
+ 	gimple_match_ctx (@4) as 3rd argument to range_of_expr.
+ 
+ 2025-11-26  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-json-tunings-parser.cc: Include
+ 	aarch64-json-tunings-parser-generated.inc.
+ 	* config/aarch64/aarch64-json-tunings-printer.cc: Include
+ 	aarch64-json-tunings-printer-generated.inc.
+ 	* config/aarch64/aarch64-opts.h (AARCH64_LDP_STP_POLICY): Use
+ 	aarch64-tuning-enums.def.
+ 	* config/aarch64/aarch64-protos.h (AARCH64_AUTOPREFETCH_MODE): Use
+ 	aarch64-tuning-enums.def.
+ 	* config/aarch64/t-aarch64: Invoke
+ 	aarch64-generate-json-tuning-routines.py if the schema is modified.
+ 	* config/aarch64/aarch64-generate-json-tuning-routines.py: New
+ 	maintenance script to generate JSON parser/printer routines.
+ 	* config/aarch64/aarch64-json-tunings-parser-generated.inc: New file.
+ 	* config/aarch64/aarch64-json-tunings-printer-generated.inc: New file.
+ 	* config/aarch64/aarch64-tuning-enums.def: New file.
+ 
+ 2025-11-26  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config.gcc: Add aarch64-json-tunings-parser.o.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Invoke
+ 	aarch64_load_tuning_params_from_json if -muser-provided-CPU= is
+ 	(aarch64_json_tunings_tests): Extern aarch64_json_tunings_tests().
+ 	(aarch64_run_selftests): Add aarch64_json_tunings_tests().
+ 	* config/aarch64/aarch64.opt: New option.
+ 	* config/aarch64/t-aarch64 (aarch64-json-tunings-parser.o): New define.
+ 	* config/aarch64/aarch64-json-schema.h: New file.
+ 	* config/aarch64/aarch64-json-tunings-parser.cc: New file.
+ 	* config/aarch64/aarch64-json-tunings-parser.h: New file.
+ 
+ 2025-11-26  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* json.h (class object): Add get_map () method.
+ 	(is_a_helper<json::literal *>, is_a_helper<const json::literal *>):
+ 	New template specializations.
+ 
+ 2025-11-26  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config.gcc: Add aarch64-json-tunings-printer.o.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Invoke
+ 	aarch64_print_tune_params if -fdump-tuning-model= is specified.
+ 	* config/aarch64/aarch64.opt: New option.
+ 	* config/aarch64/t-aarch64 (aarch64-json-tunings-printer.o): New define.
+ 	* config/aarch64/aarch64-json-tunings-printer.cc: New file.
+ 	* config/aarch64/aarch64-json-tunings-printer.h: New file.
+ 
+ 2025-11-26  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-protos.h
+ 	(struct scale_addr_mode_cost): Remove const from struct members.
+ 	(struct cpu_addrcost_table): Likewise.
+ 	(struct cpu_regmove_cost): Likewise.
+ 	(struct simd_vec_cost): Likewise.
+ 	(struct sve_vec_cost): Likewise.
+ 	(struct aarch64_base_vec_issue_info): Likewise.
+ 	(struct aarch64_simd_vec_issue_info): Likewise.
+ 	(struct aarch64_sve_vec_issue_info): Likewise.
+ 	(struct aarch64_vec_issue_info): Likewise.
+ 	(struct cpu_vector_cost): Likewise.
+ 	(struct cpu_branch_cost): Likewise.
+ 	(struct cpu_approx_modes): Likewise.
+ 	(struct cpu_prefetch_tune): Likewise.
+ 	* config/arm/aarch-common-protos.h
+ 	(struct alu_cost_table): Remove const from struct members.
+ 	(struct mult_cost_table): Likewise.
+ 	(struct mem_cost_table): Likewise.
+ 	(struct fp_cost_table): Likewise.
+ 	(struct vector_cost_table): Likewise.
+ 	(struct cpu_cost_table): Likewise.
+ 
+ 2025-11-26  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	PR middle-end/116815
+ 	* config/aarch64/aarch64.md
+ 	(*aarch64_plus_within_<optab><mode>3_<ovf_commutate>): New pattern.
+ 	(*aarch64_minus_within_<optab><mode>3): Likewise.
+ 	* config/aarch64/iterators.md (ovf_add_cmp): New code attribute.
+ 	(udf_sub_cmp): Likewise.
+ 	(UMAXMIN): New code iterator.
+ 	(ovf_commutate): New iterator.
+ 	(ovf_comm_opp): New int attribute.
+ 
+ 2025-11-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add pattern for SAT_MUL form 7 include
+ 	mul and widen_mul.
+ 
+ 2025-11-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Only
+ 	calculate on demand post dom info when the new store
+ 	might trap.
+ 
+ 2025-11-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122847
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Add type
+ 	check for reuse of the phi for the delayed statements.
+ 
+ 2025-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (gcc_cv_header_zstd_h): Save, restore CXXFLAGS,
+ 	LDFLAGS.
+ 	* configure: Regenerate.
+ 
+ 2025-11-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/118974
+ 	* config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>): Rename ...
+ 	(@xor<mode>3<vczle><vczbe>): .. to this.
+ 	(cbranch<mode>4): Update comments.
+ 	(<optab><mode>): New.
+ 	* config/aarch64/aarch64-sve.md (cbranch<mode>4): Update comment.
+ 	(<optab><mode>): New.
+ 	(aarch64_ptest<mode>): Rename to ...
+ 	(@aarch64_ptest<mode>): .. this.
+ 	* config/aarch64/iterators.md (UNSPEC_CMP_ALL, UNSPEC_CMP_ANY,
+ 	UNSPEC_COND_CMP_ALL, UNSPEC_COND_CMP_ANY): New.
+ 	(optabs): Add them.
+ 	(CBRANCH_CMP, COND_CBRANCH_CMP, cbranch_op): New.
+ 	* config/aarch64/predicates.md (aarch64_cbranch_compare_operation): New.
+ 
+ 2025-11-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/118974
+ 	* tree-vect-stmts.cc (supports_vector_compare_and_branch): New.
+ 	(vectorizable_early_exit): Use it.
+ 
+ 2025-11-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/118974
+ 	* optabs.def (vec_cbranch_any_optab, vec_cbranch_all_optab,
+ 	cond_vec_cbranch_any_optab, cond_vec_cbranch_all_optab,
+ 	cond_len_vec_cbranch_any_optab, cond_len_vec_cbranch_all_optab): New.
+ 	* doc/md.texi: Document them.
+ 	* optabs.cc (prepare_cmp_insn): Refactor to take optab to check for
+ 	instead of hardcoded cbranch and support mask and len.
+ 	(emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns): Implement them.
+ 	(emit_conditional_move, emit_conditional_add, gen_cond_trap): Update
+ 	after changing function signatures to support new optabs.
+ 
+ 2025-11-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Document --compile-std-module.
+ 	* gcc.cc (struct infile): Add artificial field.
+ 	(add_infile): Set it.
+ 	(driver::prepare_infiles): Check it.
+ 
+ 2025-11-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi (C++ Modules): Remove TU-local caveat.
+ 
+ 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120052
+ 	* gimplify.cc (gimplify_call_expr): For IFN_UBSAN_BOUNDS
+ 	call with integer_onep first argument, change that argument
+ 	to 0 and add TYPE_MAX_VALUE (TYPE_DOMAIN (arr_type)) to
+ 	3rd argument before gimplification.
+ 
+ 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120564
+ 	* omp-expand.cc (extract_omp_for_update_vars): Use build2 instead of
+ 	fold_build2 to build argument for gimple_build_cond_empty.
+ 
+ 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* alias.cc (get_alias_set): Fix comment typo, TYPE_CANOINCAL
+ 	-> TYPE_CANONICAL.
+ 
+ 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122624
+ 	* tree.cc (build_bitint_type): Use type_hash_canon_hash.
+ 
+ 2025-11-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* doc/sourcebuild.texi (Add Options): Document
+ 	check_function_bodies.
+ 
+ 2025-11-24  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/122767
+ 	* ira-color.cc (allocno_hard_regs_compare): Break ties
+ 	using...
+ 	* hard-reg-set.h (hard_reg_set_first_diff): ... this.  New
+ 	HARD_REG_SET API entry point.
+ 
+ 2025-11-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-slp.cc (vect_bb_vectorization_profitable_p):
+ 	Multiply scalar cost by vect-scalar-cost-multiplier.
+ 
+ 2025-11-24  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/autovec.md (select_vl<mode>): Rename to...
+ 	(select_vl<V:mode><P:mode>): ...this.
+ 	* doc/md.texi: Document new behavior.
+ 	* internal-fn.cc (select_vl_direct): Make
+ 	(expand_select_vl_optab_fn): Adjust for convert optab.
+ 	(direct_select_vl_optab_supported_p): Ditto.
+ 	* internal-fn.def (SELECT_VL): Ditto.
+ 	* optabs.def (OPTAB_CD): Add select_vl.
+ 	(OPTAB_D): Remove select_vl.
+ 	* tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
+ 	Adjust for convert select_vl optab.
+ 	* tree-vect-loop.cc: Ditto.
+ 
+ 2025-11-24  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* config/riscv/autovec.md: Use V_VLS_ZVFH for vec_set.
+ 	* config/riscv/riscv-modes.def (RVV_NF4_MODES): Add BF mdoes.
+ 	(ADJUST_PRECISION): Ditto.
+ 	(VECTOR_MODE_WITH_PREFIX): Ditto.
+ 	(VLS_MODES): Ditto.
+ 	* config/riscv/riscv-v.cc (can_be_broadcast_p): Add BF handling.
+ 	* config/riscv/riscv-vector-switch.def (VLS_ENTRY): Add BF
+ 	modes.
+ 	* config/riscv/riscv.md: Ditto.
+ 	* config/riscv/vector-iterators.md: Document modes.
+ 	* config/riscv/vector.md: Add BF modes.
+ 
+ 2025-11-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR tree-optimization/122797
+ 	* tree-vect-slp.cc (vect_load_perm_consecutive_p): Check
+ 	permutation start at element 0 with value instead of starting
+ 	at a given element.
+ 	(vect_optimize_slp_pass::remove_redundant_permutations):
+ 	Use start value of 0.
+ 	* tree-vectorizer.h (vect_load_perm_consecutive_p): Set default
+ 	value to to UINT_MAX.
+ 
+ 2025-11-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_vector_constructor):
+ 	Allow nop conversions.
+ 
+ 2025-11-24  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.h (REGS_OK_FOR_BASE_INDEX): New define.
+ 	* config/pa/pa.md: Update peephole2 patterns for scaled/unscaled
+ 	indexed loads and stores.
+ 
+ 2025-11-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122826
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Only
+ 	use single-lane SLP for SIMD_CLONE_ARG_TYPE_UNIFORM
+ 	and SIMD_CLONE_ARG_TYPE_LINEAR_[REF_]CONSTANT_STEP.
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116835
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Admend the
+ 	post-dom check to deal with ssa cycles.
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/60183
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Delay the decision
+ 	of always rejecting proping into the loop until all are done.
+ 	if there was some delay stmts and a phi was created fill them in.
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/60183
+ 	* tree-ssa-phiprop.cc (propagate_with_phi): Allow
+ 	known non-trapping loads to happen back into the
+ 	loop.
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (do_simple_agr_dse): Allow
+ 	for mismatched clobbers.
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122633
+ 	* tree-ssa-forwprop.cc (do_simple_agr_dse): Remove
+ 	lhs of dead store for a call (or the whole call stmt).
+ 
+ 2025-11-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* match.pd (`(ptr_diff (ptr_plus @0 @2) (ptr_plus @1 @2))`): Move pattern
+ 	earlier to the other `(ptr_diff (ptr_plus) (ptr_plus))` pattern.
+ 
+ 2025-11-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Move
+ 	all SIMD clone validity checks to SIMD clone selection.
+ 	Remove late constant/external def vector type setting and
+ 	verification.
+ 
+ 2025-11-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122782
+ 	* ext-dce.cc (ext_dct_process_uses): Guard against undefined shifts
+ 	by properly checking modes on the input object.
+ 
+ 2025-11-24  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	PR debug/121964
+ 	* dwarf2out.cc (gen_array_type_die): Add DW_AT_bit_stride attribute
+ 	for array types based on element type bit precision for integer and
+ 	boolean element types.
+ 
+ 2025-11-24  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* machmode.def (VECTOR_BOOL_MODE): Fix comment.
+ 
+ 2025-11-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/33994
+ 	* fold-const.h (int_const_convert): New prototype.
+ 	* fold-const.cc (fold_convert_const_int_from_int): Rename to...
+ 	(int_const_convert): ...this, remove static keyword and add third
+ 	parameter OVERFLOWABLE.
+ 	(fold_convert_const): Call int_const_convert if ARG1 is an integer
+ 	constant.
+ 
+ 2025-11-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* config.gcc (aarch64-*-mingw*): Set native_system_header_dir.
+ 
+ 2025-11-23  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa64-linux.h (GLIBC_DYNAMIC_LINKER): Define.
+ 
+ 2025-11-23  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/113932
+ 	PR target/113933
+ 	* config/pa/pa.opt (mlra): Default to LRA instead of reload.
+ 
+ 2025-11-23  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_print_operand): Use REG_POINTER
+ 	flag to select base and index registers on targets with
+ 	non-equivalent space registers.
+ 	(pa_legitimate_address_p): Don't allow scaled and unscaled
+ 	indexed addresses until reload is complete.  Allow any
+ 	register order in unscaled addresses as long as the
+ 	REG_POINTER flag is correctly set/unset in the base/index
+ 	registers.
+ 	* config/pa/predicates.md (mem_operand): Remove code to
+ 	delay creating move insns with unscaled indexed addresses
+ 	until CSE is not expected.
+ 	(move_src_operand): Likewise.
+ 
+ 2025-11-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* match.pd (1/x): Use fold_before_rtl_expansion_p.
+ 	(`(m1 CMP m2) * d`): Likewise.
+ 
+ 2025-11-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Remove unnecessary outer convert and add
+ 	c for the outer bit_ior.
+ 
+ 2025-11-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add simplfy to fold outer convert of bit_op
+ 	to inner captures.
+ 
+ 2025-11-23  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* ipa-split.cc (pass_split_functions::gate): Do not run when
+ 	flag_auto_profile.
+ 	(pass_feedback_split_functions::gate): Run when flag_auto_profile.
+ 
+ 2025-11-23  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* tree-ssa-loop-im.cc (is_self_write): New.
+ 	(ref_indep_loop_p): Allow hoisting when aliasing references
+ 	form a self write pattern.
+ 
+ 2025-11-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122701
+ 	* ext-dce.cc (ext_dce_try_optimize_rshift): Emit a fresh reg->reg
+ 	copy rather than modifying the existing right shift.
+ 
+ 2025-11-22  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* omp-general.cc (omp_context_selector_matches): Add an optional
+ 	bool argument for the code elision case.
+ 	* omp-general.h (omp_context_selector_matches): Likewise.
+ 
+ 2025-11-22  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* omp-general.cc (omp_mangle_variant_name): New.
+ 	(omp_check_for_duplicate_variant): New.
+ 	(omp_copy_trait_set): New.
+ 	(omp_trait_selectors_equivalent): New.
+ 	(omp_combine_trait_sets): New.
+ 	(omp_merge_context_selectors): New.
+ 	* omp-general.h (omp_mangle_variant_name): Declare.
+ 	(omp_check_for_duplicate_variant): Declare.
+ 	(omp_merge_context_selectors): Declare.
+ 
+ 2025-11-22  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc: Extract plus operation.
+ 
+ 2025-11-22  Deng Jianbo  <dengjianbo@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md
+ 	(*bstrins_w_for_ior_ashift_and_extend): New template.
+ 	(*bstrins_d_for_ior_ashift_and): New template.
+ 	* config/loongarch/predicates.md (const_uimm63_operand): New
+ 	predicate.
+ 
+ 2025-11-22  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config/loongarch/lsx.md (lsx_vshuf4i_mem_w_0): Add template.
+ 	(lsx_vldrepl_merge_w_0): Ditto.
+ 
+ 2025-11-22  Kees Cook  <kees@kernel.org>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_indirect_branch_asm):
+ 	Declare.
+ 	* config/aarch64/aarch64.cc (aarch64_indirect_branch_asm): New
+ 	function to generate indirect branch with SLS barrier.
+ 	* config/aarch64/aarch64.md (*sibcall_insn): Use
+ 	aarch64_indirect_branch_asm.
+ 	(*sibcall_value_insn): Likewise.
+ 
+ 2025-11-21  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/118358
+ 	* lra-constraints.cc (curr_insn_transform): Move insn reloading
+ 	constant into a register right before insn using it.
+ 
+ 2025-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122762
+ 	PR tree-optimization/122736
+ 	PR tree-optimization/122790
+ 	* cgraph.h (cgraph_simd_clone_arg::linear_step): Document
+ 	use for SIMD_CLONE_ARG_TYPE_MASK.
+ 	* omp-simd-clone.cc (simd_clone_adjust_argument_types):
+ 	Record the number of mask arguments in linear_step if
+ 	mask_mode is not VOIDmode.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call):
+ 	Remove num_mask_args computation, use a proper ncopies
+ 	to query/register loop masks, use linear_step for the
+ 	number of mask arguments when determining the number of
+ 	mask elements in a mask argument.
+ 
+ 2025-11-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122778
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Honor
+ 	a loop mask when passing the conditional mask with AVX512
+ 	style masking.
+ 
+ 2025-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/122598
+ 	* config/i386/predicates.md (const_vec_dup_operand): Remove.
+ 	* config/i386/sse.md (cond<<insn><mode> with VI1_AVX512VL iterator):
+ 	Remove.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/invoke.texi (Optimize Options) <-fmalloc-dce>: Remove
+ 	trailing space.
+ 	(AArch64 Options) <-march>: Fix pasto.
+ 
+ 2025-11-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122773
+ 	* gimplify.cc (collect_fallthrough_labels): Check whether
+ 	gimple_goto_dest is a LABEL_DECL before testing VACUOUS_INIT_LABEL_P.
+ 	(expand_FALLTHROUGH_r): Likewise.
+ 
+ 2025-11-21  Loeka Rogge  <loeka@synopsys.com>
+ 	    Keith Packard  <keithp@keithp.com>
+ 
+ 	PR target/120375
+ 	* config/arc/arc.md (*<insn>si3_nobs): merged with <insn>si3_loop.
+ 	(<insn>si3_loop): splits to relevant pattern or emits loop assembly.
+ 	(<insn>si3_cnt1_clobber): Removes clobber for shift or rotate by
+ 	const1.
+ 
+ 2025-11-21  Claudiu Zissulescu  <claziss@gmail.com>
+ 	    Michiel Derhaeg  <michiel@synopsys.com>
+ 
+ 	* config/arc/arc.md: Modify define_insn_and_split "*extvsi_n_0"
+ 
+ 2025-11-21  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	* attr-callback.cc (callback_edge_callee_has_attr): New
+ 	function.
+ 	* attr-callback.h (callback_edge_callee_has_attr): New function
+ 	decl.
+ 	* ipa-prop.cc (ipa_compute_jump_functions_for_bb): Don't skip
+ 	callback carriers when calculating jump functions.
+ 
+ 2025-11-21  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/122768
+ 	* attr-callback.cc (callback_edge_useful_p): Rewrite the
+ 	heuristic, now consider clones as well as icf bodies.
+ 
+ 2025-11-21  Deng Jianbo  <dengjianbo@loongson.cn>
+ 
+ 	* config/loongarch/constraints.md: Update constraint YI to support
+ 	more numbers.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_const_vector_vrepli): Rename.
+ 	(loongarch_const_vector_vldi): Ditto.
+ 	* config/loongarch/loongarch.cc (VLDI_NEG_MASK): New macro.
+ 	(loongarch_parse_vldi_const): New function to check if numbers can
+ 	be generated by {x}vldi instruction.
+ 	(loongarch_const_vector_vrepli): Rename.
+ 	(loongarch_const_vector_vldi): Use above function.
+ 	(loongarch_const_insns): Call renamed function.
+ 	(loongarch_split_vector_move_p): Ditto.
+ 	(loongarch_output_move): Ditto.
+ 
+ 2025-11-21  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config/loongarch/lsx.md: Fix predicate.
+ 
+ 2025-11-20  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/121345
+ 	* gimple-range-phi.cc (phi_group::calculate_using_modifier): Restore
+ 	performance loss by being more selective when iterating.
+ 
+ 2025-11-20  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-opt-popretz.cc: New file.
+ 	* config/riscv/riscv-passes.def: Insert pass_combine_popretz before
+ 	pass_shorten_branches.
+ 	* config/riscv/riscv-protos.h (make_pass_combine_popretz): New
+ 	declaration.
+ 	* config/riscv/t-riscv: Add riscv-opt-popretz.o build rule.
+ 	* config.gcc (riscv*): Add riscv-opt-popretz.o to extra_objs.
+ 
+ 2025-11-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/122692
+ 	* config/riscv/riscv.cc (riscv_expand_ustrunc): Leverage
+ 	riscv_extend_to_xmode_reg to take care of src rtx.
+ 
+ 2025-11-20  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* target.def (instruction_selection): New.
+ 	* doc/tm.texi.in: Document it.
+ 	* doc/tm.texi: Regenerate
+ 	* gimple-isel.cc (pass_gimple_isel::execute): Use it.
+ 	* targhooks.cc (default_instruction_selection): New.
+ 	* targhooks.h (default_instruction_selection): New.
+ 
+ 2025-11-20  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/122358
+ 	* cgraph.cc (cgraph_add_edge_to_call_site_hash): Add an early
+ 	return when the hashed edge is a callback-carrying edge.
+ 
+ 2025-11-20  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	* doc/rtl.texi (Regs and Memory): Use @table instead of @itemize
+ 	for lists with named items.
+ 
+ 2025-11-20  Xinhui Yang  <cyan@cyano.uk>
+ 
+ 	PR bootstrap/105664
+ 	* Makefile.in (install-driver): detect name collision when
+ 	installing the driver program.
+ 
+ 2025-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/i386/sol2.h: Replace USE_GAS by HAVE_GNU_AS.
+ 	Replace USE_GLD by HAVE_GNU_LD.
+ 	* config/sol2.h: Likewise.
+ 	* config/sparc/sol2.h: Likewise.
+ 	* config/i386/i386.cc (i386_solaris_elf_named_section)
+ 	[TARGET_SOLARIS]: Replace USE_GAS by HAVE_GNU_AS.
+ 	* config/ia64/hpux.h: Likewise.
+ 	* config.gcc: Remove usegas.h, usegld.h.
+ 	* config/usegas.h: Remove.
+ 	* config/usegld.h: Remove
+ 
+ 2025-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h (LINK_ARCH32_SPEC_BASE): Don't provide -YP
+ 	defaults.  Rename to ...
+ 	(LINK_ARCH_SPEC_BASE): ... this.
+ 	(LINK_ARCH32_SPEC): Remove.
+ 	(LINK_ARCH64_SPEC_BASE): Remove.
+ 	(LINK_ARCH64_SPEC): Rename to ...
+ 	(LINK_ARCH_SPEC_1): ... this.
+ 	[!USE_GLD]: Simplify map.below4G use.
+ 	(LINK_ARCH_ERROR_SPEC): New macro.
+ 	(LINK_ARCH32_SPEC): Remove.
+ 	(LINK_ARCH_DEFAULT_SPEC): Remove.
+ 	(LINK_ARCH_SPEC): Simplify using LINK_ARCH_ERROR_SPEC,
+ 	LINK_ARCH_SPEC_1.
+ 	(SUBTARGET_EXTRA_SPECS): Remove link_arch32, link_arch64
+ 	link_arch_default.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lsx.md (vec_perm<mode>): Expand directly with
+ 	RTL template.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_expand_vec_perm): Delete.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm):
+ 	Delete.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvpermi_d): Add "@".
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Use gen_lasx_xvpermi_d instead of
+ 	gen_lasx_xvpermi_d_{v32qi,v16hi} to deduplicate the logic.  Do
+ 	structrual programming instead of goto and label.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Clamp the selector using the twice of actual number of elements.
+ 	Compare the clamped selector with the element number to get the
+ 	blending mask.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvshuf_b): Remove.
+ 	(lasx_xvshuf_<lasxfmt_f): Remove.
+ 	(unspec): Remove UNSPEC_LASX_XVSHUF and UNSPEC_LASX_XVSHUF_B.
+ 	* config/loongarch/lsx.md (lsx_vshuf_b): Remove.
+ 	(lsx_vshuf_<lasxfmt_f): Remove.
+ 	(unspec): Remove UNSPEC_LSX_VSHUF and UNSPEC_LSX_VSHUF_B.
+ 	* config/loongarch/simd.md (unspec): Add UNSPEC_SIMD_VSHUF.
+ 	(@simd_vshuf): New define_insn.
+ 	(<simd_isa>_<x>vshuf_<simdfmt><_f>): New define_expand.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_try_expand_lsx_vshuf_const): Call gen_simd_vshuf
+ 	instead of gen_lasx_xvshuf and gen_lasx_xvshuf_b.
+ 	(loongarch_expand_vec_perm_const): Likewise.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvperm_<lasxfmt_f_wd>): Add
+ 	"@" for gen_lasx_xvperm helper.
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Call gen_lasx_xvperm to unify V8SF and V8SI handling.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Use lasx_xvpackev_h (mask * 2, mask * 2 + 1) to "expand" the
+ 	V4DI selector to V8SI.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/122695
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Simplify and fix the logic preventing the xvshuf.* unpredictable
+ 	behavior.
+ 
+ 2025-11-19  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/122756
+ 	* gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do
+ 	not invoke SCEV if already in a SCEV call.
+ 
+ 2025-11-19  Martin Liska  <martin.liska@hey.com>
+ 
+ 	* common.opt.urls: Include -fuse-ld=wild
+ 
+ 2025-11-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122754
+ 	* gimple-fold.cc (get_range_strlen_tree): Use POINTER_TYPE_P instead
+ 	of direct comparing to POINTER_TYPE.
+ 	* gimple-ssa-sprintf.cc (format_integer): Likewise.
+ 	* gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): Likewise.
+ 	* gimple-ssa-warn-restrict.cc (pass_wrestrict::check_call): Likewise.
+ 	* tree-ssa-strlen.cc (maybe_set_strlen_range): Likewise.
+ 	(is_strlen_related_p): Likewise.
+ 	(strlen_pass::handle_assign): Likewise.
+ 
+ 2025-11-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist): Use FOR_EACH_IMM_USE_FAST instead of
+ 	FOR_EACH_IMM_USE_STMT.
+ 
+ 2025-11-19  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/122763
+ 	* config/aarch64/aarch64.cc (aarch64_layout_arg): Return NULL_RTX for
+ 	arguments of size 0.
+ 	(aarch64_function_arg_advance): Remove assert.
+ 
+ 2025-11-19  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* doc/extend.texi (preserve_none): Minor grammar fix.
+ 
+ 2025-11-19  Martin Liska  <martin.liska@hey.com>
+ 
+ 	* collect2.cc (main): Add wild linker to -fuse-ld.
+ 	* common.opt: Likewise.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add detection for wild linker.
+ 	* doc/invoke.texi: Document -fuse-ld=wild.
+ 	* gcc.cc (driver_handle_option): Support -fuse-ld=wild.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2025-11-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (vec_extract<mode><v128>,
+ 	vec_extract<mode><v64>): New.
+ 	* config/aarch64/iterators.md (V64, v64): New.
+ 	* config/aarch64/predicates.md (const0_to_1_operand): New.
+ 
+ 2025-11-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move_scalar):
+ 	Fix signed vs unsigned warning.
+ 
+ 2025-11-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Make dr_chain
+ 	an auto_vec, move down to where we use it to avoid creating
+ 	it twice.
+ 
+ 2025-11-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122722
+ 	* tree-vect-slp.cc (vect_analyze_slp_reductions): New
+ 	function, split out from vect_analyze_slp.  Try SLP
+ 	sub-groups.
+ 	(vect_analyze_slp_reduction_group): New helper.
+ 
+ 2025-11-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122747
+ 	* tree-vect-stmts.cc (vectorizable_call): Handle reduction
+ 	operations that are already conditional.
+ 
+ 2025-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-ssanames.cc (get_known_nonzero_bits): Fix a pasto in
+ 	function comment, this function returns 0 if unknown rather
+ 	than -1.
+ 
+ 2025-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122184
+ 	* tree-ssa-live.cc (remove_unused_locals): Drop .DEFERRED_INIT
+ 	calls with MEM_REF lhs based on uninitialized SSA_NAME.
+ 
+ 2025-11-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* genmultilib: Check $enable_multilib to define DISABLE_MULTILIB.
+ 
+ 2025-11-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h: Check USE_GLD instead of USE_GNU_LD.
+ 
+ 2025-11-19  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR target/119130
+ 	* config/rs6000/altivec.md (convert_4f32_8f16): Use same operand
+ 	order for both endian format.
+ 
+ 2025-11-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc: Adjust to P_PROC_AVX10_1.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu):
+ 	Move Nova Lake to under AVX512 part.
+ 	* config/i386/i386.h (PTA_NOVALAKE): Add AVX10.1, AVX10.2,
+ 	APX_F and MOVRS.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Set to 8.
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add Nova
+ 	Lake.
+ 	* doc/invoke.texi: Adjust documentation.
+ 
+ 2025-11-18  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv-string.cc (riscv_expand_block_move_scalar):
+ 	Add length check.
+ 	(expand_block_move): Ditto.
+ 	(expand_vec_setmem): Ditto.
+ 	* config/riscv/riscv.opt: Add param flags.
+ 
+ 2025-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_mve.h (__ARM_mve_typeid): Delete.
+ 	(__ARM_mve_coerce): Delete.
+ 	(__ARM_mve_coerce_i_scalar): Delete.
+ 	(__ARM_mve_coerce_s8_ptr): Delete.
+ 	(__ARM_mve_coerce_u8_ptr): Delete.
+ 	(__ARM_mve_coerce_s16_ptr): Delete.
+ 	(__ARM_mve_coerce_u16_ptr): Delete.
+ 	(__ARM_mve_coerce_s32_ptr): Delete.
+ 	(__ARM_mve_coerce_u32_ptr): Delete.
+ 	(__ARM_mve_coerce_s64_ptr): Delete.
+ 	(__ARM_mve_coerce_u64_ptr): Delete.
+ 	(__ARM_mve_coerce_f_scalar): Delete.
+ 	(__ARM_mve_coerce_f16_ptr): Delete.
+ 	(__ARM_mve_coerce_f32_ptr): Delete.
+ 
+ 2025-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-shapes.cc (build_one): Add
+ 	which_overload parameter.
+ 	(inherent): Derive from overloaded_base<0>.  Add support for
+ 	overloaded version.
+ 	* config/arm/arm-mve-builtins-shapes.h (inherent): Update comment.
+ 	* config/arm/arm-mve-builtins.cc (add_unique_function): Add
+ 	support for new which_overload parameter.
+ 	(pop_and_resolve_to): New.
+ 	* config/arm/arm-mve-builtins.h (NONOVERLOADED_FORM)
+ 	(OVERLOADED_FORM): New.
+ 	(add_unique_function): Update prototype.
+ 	(pop_and_resolve_to): New prototype.
+ 	* config/arm/arm_mve.h (vuninitializedq): Delete.
+ 	(vuninitializedq_u8): Delete.
+ 	(vuninitializedq_u16): Delete.
+ 	(vuninitializedq_u32): Delete.
+ 	(vuninitializedq_u64): Delete.
+ 	(vuninitializedq_s8): Delete.
+ 	(vuninitializedq_s16): Delete.
+ 	(vuninitializedq_s32): Delete.
+ 	(vuninitializedq_s64): Delete.
+ 	(vuninitializedq_f16): Delete.
+ 	(vuninitializedq_f32): Delete.
+ 	(__arm_vuninitializedq): Delete.
+ 
+ 2025-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class
+ 	mve_function_vset_vget_lane): New.
+ 	(vgetq_lane, vsetq_lane): New.
+ 	* config/arm/arm-mve-builtins-base.def (vgetq_lane, vsetq_lane):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.h (vgetq_lane, vsetq_lane):
+ 	New.
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct getq_lane)
+ 	(setq_lane): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (getq_lane, setq_lane):
+ 	New.
+ 	* config/arm/arm_mve.h (vsetq_lane): Delete.
+ 	(vgetq_lane): Delete.
+ 	(vsetq_lane_f16): Delete.
+ 	(vsetq_lane_f32): Delete.
+ 	(vsetq_lane_s16): Delete.
+ 	(vsetq_lane_s32): Delete.
+ 	(vsetq_lane_s8): Delete.
+ 	(vsetq_lane_s64): Delete.
+ 	(vsetq_lane_u8): Delete.
+ 	(vsetq_lane_u16): Delete.
+ 	(vsetq_lane_u32): Delete.
+ 	(vsetq_lane_u64): Delete.
+ 	(vgetq_lane_f16): Delete.
+ 	(vgetq_lane_f32): Delete.
+ 	(vgetq_lane_s16): Delete.
+ 	(vgetq_lane_s32): Delete.
+ 	(vgetq_lane_s8): Delete.
+ 	(vgetq_lane_s64): Delete.
+ 	(vgetq_lane_u8): Delete.
+ 	(vgetq_lane_u16): Delete.
+ 	(vgetq_lane_u32): Delete.
+ 	(vgetq_lane_u64): Delete.
+ 	(__ARM_NUM_LANES): Delete.
+ 	(__ARM_LANEQ): Delete.
+ 	(__ARM_CHECK_LANEQ): Delete.
+ 	(__arm_vsetq_lane_s16): Delete.
+ 	(__arm_vsetq_lane_s32): Delete.
+ 	(__arm_vsetq_lane_s8): Delete.
+ 	(__arm_vsetq_lane_s64): Delete.
+ 	(__arm_vsetq_lane_u8): Delete.
+ 	(__arm_vsetq_lane_u16): Delete.
+ 	(__arm_vsetq_lane_u32): Delete.
+ 	(__arm_vsetq_lane_u64): Delete.
+ 	(__arm_vgetq_lane_s16): Delete.
+ 	(__arm_vgetq_lane_s32): Delete.
+ 	(__arm_vgetq_lane_s8): Delete.
+ 	(__arm_vgetq_lane_s64): Delete.
+ 	(__arm_vgetq_lane_u8): Delete.
+ 	(__arm_vgetq_lane_u16): Delete.
+ 	(__arm_vgetq_lane_u32): Delete.
+ 	(__arm_vgetq_lane_u64): Delete.
+ 	(__arm_vsetq_lane_f16): Delete.
+ 	(__arm_vsetq_lane_f32): Delete.
+ 	(__arm_vgetq_lane_f16): Delete.
+ 	(__arm_vgetq_lane_f32): Delete.
+ 	(__arm_vsetq_lane): Delete.
+ 	(__arm_vgetq_lane): Delete.
+ 	* config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Add '@'
+ 	prefix.
+ 	(mve_vec_set<mode>_internal): Likewise.
+ 
+ 2025-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/extend.texi (Half-precision Floating-point): __fp16 is now
+ 	always available on arm.  Move x86 paragraph closer to the rest of
+ 	the x86 information, and make it use present tense.
+ 
+ 2025-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/117814
+ 	* config/arm/arm-builtins.cc (arm_init_fp16_builtins): Always
+ 	register __fp16 type.
+ 	* config/arm/arm-mve-builtins.cc (register_builtin_tuple_types):
+ 	Remove special handling when TARGET_HAVE_MVE_FLOAT is false.
+ 	(register_vector_type): Likewise.
+ 	(register_builtin_tuple_types): Likewise.
+ 	* config/arm/arm-opts.h (arm_fp16_format_type): Add
+ 	ARM_FP16_FORMAT_DEFAULT.
+ 	* config/arm/arm.cc (arm_vector_mode_supported_p): Accept
+ 	floating-point vector modes even if TARGET_HAVE_MVE_FLOAT is
+ 	false.
+ 	(arm_option_reconfigure_globals): Apply ARM_FP16_FORMAT_NONE if
+ 	requested.
+ 	* config/arm/arm.opt (mfp16-format): Default to
+ 	ARM_FP16_FORMAT_DEFAULT.
+ 	* config/arm/arm_mve_types.h (float16_t, float32_t): Define
+ 	unconditionally.
+ 	* doc/sourcebuild.texi (ARM-specific attributes): Document
+ 	arm_v8_1m_mve_nofp_ok.
+ 
+ 2025-11-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122736
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Compute
+ 	num_mask_args for all mask modes.  Pass the mask vector
+ 	type to vect_record_loop_mask and adjust ncopies according
+ 	to the number of mask arguments.
+ 
+ 2025-11-18  Austin Law  <austinkylelaw@gmail.com>
+ 
+ 	* config/riscv/riscv-cores.def: Add RISCV_TUNE and RISCV_CORE entries
+ 	for the spacemit-x60 design.
+ 	* config/riscv/riscv-opts.h (riscv_microarchitecture_type): Add entry
+ 	for spacemit-x60 design.
+ 	* config/riscv/riscv.cc (spacemit_x60_tune_info): New tune structure
+ 	for the spacemit-x60 design.
+ 	* config/riscv/riscv.md (tune): Add spacemit_x60.
+ 	Include spacemit-x60.md.
+ 	* config/riscv/spacemit-x60.md: New file
+ 	* doc/riscv-mtune.texi: Regenerate.
+ 	* doc/riscv-mcpu.texi: Regenerate.
+ 
+ 2025-11-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122723
+ 	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
+ 	Handle incoming .COND_* operation.
+ 	(vect_transform_reduction): Likewise.  Handle .COND_*
+ 	operation when not using COND_EXPR masking in a masked loop.
+ 
+ 2025-11-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122723
+ 	* tree-vect-stmts.cc (supportable_widening_operation):
+ 	Correct optab to query in the multi-step case when it is
+ 	supposed to hit the sbool case.
+ 
+ 2025-11-18  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/103750
+ 	* config/i386/sse.md (*<avx512>_eq<mode>3_and15): New
+ 	define_insn.
+ 	(*avx512vl_eqv2di_and3): Ditto.
+ 	* config/i386/i386.md (*ior<mode>_ccz_1): Fix the typo in the
+ 	comments above.
+ 
+ 2025-11-17  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/122626
+ 	* tree-logical-location.cc
+ 	(tree_logical_location_manager::get_parent): Return null when
+ 	TYPE_CONTEXT is a TRANSLATION_UNIT_DECL so that we don't fail
+ 	the assertion in assert_valid_tree.
+ 
+ 2025-11-17  Evgeny Karpov  <evgeny@kmaps.co>
+ 
+ 	PR diagnostics/122666
+ 	* config/i386/x-mingw32 (LIBS): Add -lws2_32
+ 	* diagnostics/sarif-sink.cc: Move sockets includes to before
+ 	config.h and support __MINGW32__.
+ 
+ 2025-11-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/97894
+ 	* attr-fnspec.h (attr_fnspec): arg_idx, known_p, arg_specified_p,
+ 	arg_direct_p,  arg_used_p, arg_readonly_p,
+ 	arg_maybe_read_p, arg_maybe_written_p,
+ 	arg_max_access_size_given_by_arg_p,
+ 	arg_access_size_given_by_type_p,
+ 	arg_copied_to_arg_p, arg_noescape_p, returns_arg,
+ 	returns_noalias_p, global_memory_read_p,
+ 	global_memory_written_p, errno_maybe_written_p, arg_eaf_flags,
+ 	and get_str as const methods.
+ 
+ 2025-11-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (maybe_remove_forwarder_block): Move a few
+ 	checks earlier.
+ 
+ 2025-11-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Merge this and ...
+ 	(remove_forwarder_block): This into ...
+ 	(maybe_remove_forwarder_block): Here.
+ 	(cleanup_tree_cfg_bb): Call only maybe_remove_forwarder_block.
+ 	(pass_merge_phi::execute): Likewise.
+ 
+ 2025-11-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (pass_merge_phi::execute): Add stats for the removed
+ 	blocks.
+ 
+ 2025-11-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122575
+ 	* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
+ 	Use correct mode for simplified IOR expression inside equality
+ 	conditional.
+ 
+ 2025-11-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* simplify-rtx.cc (simplify_const_binary_operation): Simplify
+ 	VEC_CONCAT two constant vectors.
+ 
+ 2025-11-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-im.cc (move_computations_worker): Avoid newline
+ 	between 'Moving statement' and actual statement dump in dumpfile.
+ 
+ 2025-11-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-im.cc (fill_always_executed_in): Skip
+ 	blocks not in loops when looking for possibly not returning
+ 	calls.
+ 
+ 2025-11-17  Victor Do Nascimento  <vicdon01@ip-10-248-139-187.eu-west-1.compute.internal>
+ 
+ 	* cfgloop.cc (loop_exits_to_bb_p): Change return type.
+ 	(loop_exits_from_bb_p): Likewise.
+ 	* cfgloop.h: (loop_exits_to_bb_p): Likewise.
+ 	(loop_exits_from_bb_p): Likewise.
+ 
+ 2025-11-17  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* doc/extend.texi: (ARM C Language Extensions (ACLE)) Update ACLE URL
+ 	and description.
+ 
+ 2025-11-17  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_vector_load): Inhibit
+ 	optimization when all uses are through subvectors without
+ 	extension.
+ 
+ 2025-11-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-core.h (enum built_in_function): Avoid arithmetics or
+ 	bitwise operations between enumerators from different enums.
+ 	* lto-streamer.h (lto_tag_is_gimple_code_p): Likewise.
+ 	* gimple.h (gimple_omp_atomic_set_memory_order): Likewise.
+ 	* common/config/i386/i386-cpuinfo.h (M_CPU_SUBTYPE_START,
+ 	M_CPU_TYPE): Likewise.
+ 	* tree-complex.cc (expand_complex_libcall): Likewise.
+ 	* ipa-modref-tree.h (modref_access_node::operator ==): Change
+ 	argument type from modref_access_node & to
+ 	const modref_access_node &.
+ 	* ipa-modref-tree.cc (modref_access_node::operator ==): Likewise.
+ 
+ 2025-11-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122573
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost): Avoid
+ 	using masked epilogues when an SSE epilogue would have a VF of one.
+ 
+ 2025-11-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac (gcc_cv_ld_compress_debug) <*-*-solaris2*>: Check
+ 	for zstd compression support.
+ 	* configure: Regenerate.
+ 	* doc/invoke.texi (Debugging Options, gz): Document zstd.
+ 
+ 2025-11-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/121345
+ 	* gimple-range-phi.cc (phi_group::phi_group): Add modifier name.
+ 	(phi_group::is_modifier_p): Set modifier stmt operand name.
+ 	(phi_group::calculate_using_modifier): Bound the iteration range
+ 	by known global range.
+ 	(phi_analyzer::process_phi): Allow single PHIS if they meet certain
+ 	criteria.
+ 	* gimple-range-phi.h (m_modifier_name): New member.
+ 	(is_modifier_p): Adjust prototype.
+ 
+ 2025-11-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
+ 	the PHI analysis query.
+ 	* gimple-range-phi.cc (phi_analysis_object): Delete.
+ 	(phi_analysis_initialize): Delete.
+ 	(phi_analysis_finalize): Delete.
+ 	(phi_analysis_available_p): Delete.
+ 	(phi_analysis): Invoke a phi analyzer.
+ 	(phi_analyzer::phi_analyzer): Preprocess all phi nodes and set
+ 	global values for them in a query.
+ 	(phi_analyzer::process_phi): Use query, and export any inital
+ 	values found to the query.
+ 	* gimple-range-phi.h (m_global): Delete.
+ 	(phi_analysis_initialize): Delete.
+ 	(phi_analysis_finalize): Delete.
+ 	(phi_analysis_available_p): Delete.
+ 	(phi_analysis): Change prototype.
+ 	* tree-vrp.cc (execute_ranger_vrp): Call phi_analysis.
+ 
+ 2025-11-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::update_consumers): New.
+ 	* gimple-range-cache.h (update_consumers): New prototype.
+ 	* gimple-range-fold.cc (fur_depend::fur_depend): Add cache ptr.
+ 	(fur_depend::register_relation): call update_consumers.
+ 	* gimple-range-fold.h (fur_depend): Add a cache pointer.
+ 	* gimple-range.cc (gimple_ranger::fold_range_internal): Add cache ptr.
+ 
+ 2025-11-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range.cc (gimple_ranger::update_range_info): New.
+ 	* gimple-range.h (update_range_info): New prototype.
+ 	* tree-ssanames.cc (set_range_info): Update the range info for
+ 	the current range query.
+ 	* value-query.h (update_range_info): New prototype.
+ 	* value-query.cc (update_range_info): New default stub.
+ 
+ 2025-11-16  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Restore check on
+ 	LOOPS_HAVE_PREHEADERS.
+ 
+ 2025-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/sol2.h (MD_EXEC_PREFIX): Remove.
+ 
+ 2025-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info):
+ 	Initialize can_use_partial_vectors_p to true.
+ 	(vect_determine_partial_vectors_and_peeling): Add masked_p
+ 	parameter and honor it.
+ 	(vect_analyze_loop_2): Pass through masked_p.
+ 	(vect_analyze_loop_1): Pass down masked_p.
+ 	(vect_analyze_loop): Simplify check on possible masking of
+ 	the epilog when there's no .WHILE_ULT.
+ 
+ 2025-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
+ 	Remove resetting of LOOP_VINFO_USING_SELECT_VL_P.
+ 	(vect_analyze_loop_2): Decide on partial vectors before
+ 	deciding on decrementing IV or .SELECT_VL usage.
+ 
+ 2025-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_determine_partial_vectors_and_peeling):
+ 	Remove.
+ 	(vect_need_peeling_or_partial_vectors_p): Declare.
+ 	* tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
+ 	Make static.
+ 	(vect_need_peeling_or_partial_vectors_p): Export.
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Do not call
+ 	vect_determine_partial_vectors_and_peeling but instead
+ 	re-compute LOOP_VINFO_PEELING_FOR_NITER using
+ 	vect_need_peeling_or_partial_vectors_p.
+ 
+ 2025-11-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_loop_vec_info::epil_using_partial_vectors_p):
+ 	Remove.
+ 	(LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info):
+ 	Do not initialize epil_using_partial_vectors_p.
+ 	(vect_determine_partial_vectors_and_peeling): Do not set it.
+ 
+ 2025-11-16  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* diagnostics/context.cc (num_digits): Change argument type from
+ 	`int' to `uint64_t'.
+ 	(test_num_digits): Add test for 64-bit argument.
+ 	* diagnostic.h (num_digits): Adjust prototype.
+ 	* input.cc (write_digit): Accept argument in range 0-9 instead of
+ 	an arbitrary int.
+ 	(write_digit_row): Adjust to change in write_digit().
+ 
+ 2025-11-15  Jason Xu  <bravejason@outlook.com>
+ 
+ 	* config.gcc (aarch64-*-mingw*): Set use_gcc_stdint to wrap.
+ 
+ 2025-11-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (risc_legitimize_move): Use convert_modes
+ 	rather than gen_extend_insn for most cases.
+ 	* config/riscv/riscv.md (addv<mode>4): Likewise.
+ 	(uaddv<mode>4, subv<mode>4, usubv<mode>4): Likewise.
+ 	(mulv<mode>4, umulv<mode>4): Likewise.
+ 	* config/riscv/sync.md (atomic_compare_and_swap<mode>): Likewise.
+ 
+ 2025-11-15  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (mov<GPF:mode><GPI:mode>cc): Delete.
+ 
+ 2025-11-15  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md(mov<ALLI_GPF:mode>cc): Use new predicate.
+ 	(mov<GPF:mode><GPI:mode>cc): Likewise.
+ 	(<neg_not_op><mode>cc): Likewise.
+ 	* config/aarch64/predicates.md (aarch64_comparison_operator_cc):
+ 	New predicate.
+ 
+ 2025-11-15  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (mov<ALLI_GPF:mode>): Delete
+ 	redundant check.
+ 	(mov<GPF:mode><GPI:mode>cc): Likewise.
+ 	(<neg_not_op><mode>cc): Likewise.
+ 
+ 2025-11-15  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (mov<ALLI>cc): Merge with ...
+ 	(mov<ALLI>cc): ... this.
+ 	* config/aarch64/iterators.md(ALLI_GPF): New mode iterator.
+ 
+ 2025-11-15  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md(mov<GPF>cc): Accept MODE_CC
+ 	conditions directly; reject QI/HImode conditions.
+ 
+ 2025-11-14  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv.cc (andes_25_tune_info): Add prefer-agnostic.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift):
+ 	Add ss_SQRSHR, ss_SQSHL, ss_SRSHR, ss_UQRSHL, ss_UQSHL, and
+ 	ss_URSHR.
+ 	(mve_function_scalar_shift): Add support for ss_SQRSHR, ss_SQSHL,
+ 	ss_SRSHR, ss_UQRSHL, ss_UQSHL, and ss_URSHR.
+ 	(sqrshr, sqshl, srshr, uqrshl, uqshl, urshr): New.
+ 	* config/arm/arm-mve-builtins-base.def (sqrshr, sqshl, srshr)
+ 	(uqrshl, uqshl, urshr): New.
+ 	* config/arm/arm-mve-builtins-base.h (sqrshr, sqshl, srshr)
+ 	(uqrshl, uqshl, urshr): New.
+ 	* config/arm/arm-mve-builtins-shapes.cc (scalar_s32_shift): New.
+ 	(scalar_s32_shift_imm): New.
+ 	(scalar_u32_shift): New.
+ 	(scalar_u32_shift_imm): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (scalar_s32_shift): New.
+ 	(scalar_s32_shift_imm): New.
+ 	(scalar_u32_shift): New.
+ 	(scalar_u32_shift_imm): New.
+ 	* config/arm/arm_mve.h (sqrshr): Delete.
+ 	(sqshl): Delete.
+ 	(srshr): Delete.
+ 	(uqrshl): Delete.
+ 	(uqshl): Delete.
+ 	(urshr): Delete.
+ 	(__arm_uqrshl): Delete.
+ 	(__arm_sqrshr): Delete.
+ 	(__arm_uqshl): Delete.
+ 	(__arm_urshr): Delete.
+ 	(__arm_sqshl): Delete.
+ 	(__arm_srshr): Delete.
+ 	* config/arm/mve.md (mve_sqshl_si, mve_srshr_si): Fix operand 1
+ 	mode.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift):
+ 	Add ss_SQSHLL, ss_SRSHRL, ss_UQSHLL, ss_URSHRL.
+ 	(mve_function_scalar_shift): Add support for ss_SQSHLL, ss_SRSHRL,
+ 	ss_UQSHLL, ss_URSHRL.
+ 	* config/arm/arm-mve-builtins-base.def (sqshll, srshrl, uqshll)
+ 	(urshrl): New.
+ 	* config/arm/arm-mve-builtins-base.h (sqshll, srshrl, uqshll)
+ 	(urshrl): New.
+ 	* config/arm/arm-mve-builtins-shapes.cc (scalar_s64_shift_imm)
+ 	(scalar_u64_shift_imm): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (scalar_s64_shift_imm)
+ 	(scalar_u64_shift_imm): New.
+ 	* config/arm/arm_mve.h (sqshll): Delete.
+ 	(srshrl): Delete.
+ 	(uqshll): Delete.
+ 	(urshrl): Delete.
+ 	(__arm_uqshll): Delete.
+ 	(__arm_urshrl): Delete.
+ 	(__arm_srshrl): Delete.
+ 	(__arm_sqshll): Delete.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift):
+ 	Add ss_SQRSHRL, ss_SQRSHRL_SAT48.
+ 	(mve_function_scalar_shift): Add support for ss_SQRSHRL,
+ 	ss_SQRSHRL_SAT48.
+ 	(sqrshrl, sqrshrl_sat48): New.
+ 	* config/arm/arm-mve-builtins-base.def (sqrshrl, sqrshrl_sat48): New.
+ 	* config/arm/arm-mve-builtins-base.h (sqrshrl, sqrshrl_sat48): New.
+ 	* config/arm/arm_mve.h (sqrshrl): Delete.
+ 	(sqrshrl_sat48): Delete.
+ 	(__arm_sqrshrl): Delete.
+ 	(__arm_sqrshrl_sat48): Delete.
+ 	* config/arm/mve.md (mve_sqrshrl_sat<supf>_di): Add '@' prefix.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift):
+ 	Add ss_UQRSHLL, ss_UQRSHLL_SAT48.
+ 	(mve_function_scalar_shift): Add support for ss_UQRSHLL,
+ 	ss_UQRSHLL_SAT48.
+ 	* config/arm/arm-mve-builtins-base.def (uqrshll, uqrshll_sat48):
+ 	New.
+ 	* config/arm/arm-mve-builtins-base.h (uqrshll, uqrshll_sat48):
+ 	New.
+ 	* config/arm/arm_mve.h (uqrshll): Delete.
+ 	(uqrshll_sat48): Delete.
+ 	(__arm_uqrshll): Delete.
+ 	(__arm_uqrshll_sat48): Delete.
+ 	* config/arm/mve.md (mve_uqrshll_sat<supf>_di): Add '@' prefix.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm-mve-builtins-base.cc (class mve_function_vpnot): New.
+ 	(vpnot): New.
+ 	* config/arm/arm-mve-builtins-base.def (vpnot): New.
+ 	* config/arm/arm-mve-builtins-base.h (vpnot): New.
+ 	* config/arm/arm-mve-builtins-shapes.cc (struct vpnot): New.
+ 	* config/arm/arm-mve-builtins-shapes.h (vpnot): New.
+ 	* config/arm/arm_mve.h (vpnot): Delete.
+ 	(__arm_vpnot): Delete.
+ 
+ 2025-11-14  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* doc/invoke.texi: Remove mention of switch-lower-slow-alg-max-cases.
+ 	* params.opt: Remove switch-lower-slow-alg-max-cases.
+ 
+ 2025-11-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md (*sub<mode>_3):
+ 	Remove 'i' from operand 0 constraint.
+ 
+ 2025-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/122663
+ 	* ipa-param-manipulation.cc (purge_all_uses): Collect
+ 	stmts to remove and process that list in reverse.
+ 
+ 2025-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122573
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Support
+ 	groups of invariant loads.
+ 	(vect_build_slp_tree_2): Likewise.
+ 	(vect_transform_slp_perm_load_1): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_load): Handle non-splat
+ 	SLP for invaraint loads.
+ 
+ 2025-11-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122680
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Avoid range
+ 	queries during transform.
+ 
+ 2025-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR target/121458
+ 	PR target/121457
+ 	* configure.ac: Fix typos.
+ 	<*-*-solaris2*>: Require GNU ld 2.30.
+ 	(comdat_group) <*-*-solaris2.1[1-9]*>: Always set to yes.
+ 	(ld_ix86_gld_32_opt): Only use -melf_i386_sol2 for Solaris target.
+ 	(ld_ix86_gld_64_opt): Likewise with -melf_x86_64_sol.
+ 	(gcc_cv_ld_eh_frame_hdr) <*-*-solaris2*>: Likewise.
+ 	(gcc_cv_ld_pie) <*-*-solaris2*>: Remove special cases.
+ 	(gcc_cv_ld_compress_debug) <*-*-solaris2*>: Remove guard.
+ 	(gcc_cv_ld_as_needed): Simplify guard.
+ 	(gcc_cv_ld_sol2_emulation): Remove.
+ 	(gcc_cv_solaris_crts): Remove.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Remove !HAVE_LD_PIE
+ 	support.
+ 	(ENDFILE_CRTEND_SPEC): Likewise.
+ 	(LD_PIE_SPEC): Likewise.
+ 	[USE_GLD] (LINK_EH_SPEC): Set unconditionally.
+ 	* config/i386/sol2.h [USE_GLD]: Remove !HAVE_LD_SOL2_EMULATION
+ 	support.
+ 	* config/sparc/sol2.h: Likewise.
+ 	* doc/install.texi (Specific, *-*-solaris2*): Update bundled gcc
+ 	versions.
+ 	Raise required binutils version.
+ 	Remove binutils 2.44 caveat.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122216
+ 	* config/arm/arm-mve-builtins-base.cc (enum which_scalar_shift): New.
+ 	(mve_function_scalar_shift): New.
+ 	(asrl, lsll): New.
+ 	* config/arm/arm-mve-builtins-base.def (asrl, lsll): New.
+ 	* config/arm/arm-mve-builtins-base.h (asrl, lsll): New.
+ 	* config/arm/arm_mve.h (asrl): Delete.
+ 	(lsll): Delete.
+ 	(__arm_asrl): Delete.
+ 	(__arm_lsll): Delete.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122216
+ 	* config/arm/arm-mve-builtins-shapes.cc (scalar_s64_shift): New.
+ 	(scalar_u64_shift): New.
+ 	* config/arm/arm-mve-builtins-shapes.h: Likewise.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122216
+ 	* config/arm/arm.md (ashldi3, ashrdi3): Force shift amount into
+ 	QImode.
+ 	* config/arm/constraints.md: Fix comment, Pg is valid in Thumb-2
+ 	state only.
+ 	* config/arm/mve.md (mve_asrl): Handle various shift amount ranges.
+ 	(mve_asrl_imm, mve_asrl_internal): New patterns.
+ 	(mve_lsll): Handle various shift amount ranges.
+ 	(mve_lsll_imm, mve_lsll_internal): New patterns.
+ 
+ 2025-11-14  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122216
+ 	* config/arm/thumb2.md (thumb2_asrl, thumb2_lsll, thumb2_lsrl):
+ 	Move to ...
+ 	* config/arm/mve.md (mve_asrl, mve_lsll, mve_lsrl): ... here. Use
+ 	match_operand instead of match_dup.
+ 	* config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Remove useless
+ 	copy. Update for new prototype.
+ 
+ 2025-11-14  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* configure: Regenerate.
+ 
+ 2025-11-14  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvbsrl_d_f): New template.
+ 	* config/loongarch/loongarch.cc (emit_reduc_half): Replace insn.
+ 
+ 2025-11-14  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config/loongarch/predicates.md: Update ops.
+ 
+ 2025-11-14  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* config.gcc: Add target_gtfiles.
+ 	* config/loongarch/loongarch-builtins.cc: Add header file.
+ 
+ 2025-11-13  Alexandre Oliva  <oliva@adacore.com>
+ 	    Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/vxworks/base/b_NULL.h: New.
+ 	* config.gcc (extra_headers) <*-*-vxworks*>: Add it.
+ 	* Makefile.in (stmp-int-hdrs): Support /././ markers in USER_H
+ 	to mark the beginning of the install name.  Document.
+ 	* doc/sourcebuild.texi (Headers): Document /././ marker.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Remove must argument.
+ 	(remove_forwarder_block): Add can_split
+ 	argument. Handle the splitting case (iff phis in bb).
+ 	(cleanup_tree_cfg_bb): Update argument to tree_forwarder_block_p.
+ 	(remove_forwarder_block_with_phi): Remove.
+ 	(pass_merge_phi::execute): Update argument to tree_forwarder_block_p
+ 	and call remove_forwarder_block instead of remove_forwarder_block_with_phi.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122493
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Change bool argument
+ 	to a must have phi and allow phis if it is false.
+ 	(remove_forwarder_block): Add support for merging of forwarder blocks
+ 	with phis.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfg.cc (copy_phi_arg_into_existing_phi): Use the original location
+ 	if the mapped location is unknown.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfg.cc (copy_phi_arg_into_existing_phi): New use_map argument.
+ 	* tree-cfg.h (copy_phi_arg_into_existing_phi): Update declaration.
+ 	* tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Use
+ 	copy_phi_arg_into_existing_phi instead of inlining it.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (remove_forwarder_block): Move
+ 	variable declaration ei into for loop.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Use
+ 	edge iterator instead of while loop.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (remove_forwarder_block): Remove check
+ 	on the available dominator information.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Reject bb which has a single
+ 	predecessor which has a single successor.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (pass_merge_phi::execute): Move
+ 	check for abnormal or no phis to remove_forwarder_block_with_phi
+ 	and the check on dominated to tree_forwarder_block_p.
+ 	(remove_forwarder_block_with_phi): here.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (remove_forwarder_block_with_phi): Remove check on non-local label.
+ 	(remove_forwarder_block): Remove check on non-label/eh landing pad.
+ 	(tree_forwarder_block_p): Add check on lable for an eh landing pad.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (remove_forwarder_block): Remove check for infinite loop.
+ 	(remove_forwarder_block_with_phi): Likewise. Also remove check for loop header.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-cfgcleanup.cc (pass_merge_phi::execute): Remove worklist.
+ 
+ 2025-11-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ext-dce.cc (ext_dce_try_optimize_rshift): New function to optimize a
+ 	shift pair implementing a zero/sign extension.
+ 	(ext_dce_try_optimize_extension): Renamed from
+ 	ext_dce_try_optimize_insn.
+ 	(ext_dce_process_uses): Handle shift pairs implementing extensions.
+ 
+ 2025-11-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122637
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop): Fix order
+ 	of gimplification and constant prop.
+ 
+ 2025-11-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122627
+ 	* lra-constraints.cc (update_equiv): Remove patch from last week
+ 	related to pr122321.
+ 	(lra_constraints): Expand the equivalence array after eliminations
+ 	are complete.
+ 
+ 2025-11-13  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* configure.ac (HAVE_AS_16B_ATOMIC): Define if the assembler
+ 	supports LSX and sc.q.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* config/loongarch/loongarch-opts.h (HAVE_AS_16B_ATOMIC):
+ 	Defined to 0 if undefined yet.
+ 	* config/loongarch/linux.h (HAVE_IFUNC_FOR_LIBATOMIC_16B):
+ 	Define as HAVE_AS_16B_ATOMIC && OPTION_GLIBC.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_16b_atomic_lock_free_p): New prototype.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_16b_atomic_lock_free_p): Implement.
+ 	* config/loongarch/sync.md (atomic_storeti_lsx): Require
+ 	loongarch_16b_atomic_lock_free_p.
+ 	(atomic_storeti): Likewise.
+ 	(atomic_exchangeti_scq): Likewise.
+ 	(atomic_exchangeti): Likewise.
+ 	(atomic_compare_and_swapti): Likewise.
+ 	(atomic_fetch_<amop_ti_fetch>ti_scq): Likewise.
+ 	(atomic_fetch_<amop_ti_fetch>ti): Likewise.
+ 	(ALL_SC): Likewise for TImode.
+ 	(atomic_storeti_scq): Remove.
+ 
+ 2025-11-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386-features.cc (pass_x86_cse::x86_cse): Delete
+ 	loads.
+ 
+ 2025-11-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR other/122638
+ 	* doc/install.texi (Configuration, --enable-x86-64-mfentry): Fix
+ 	typo.
+ 
+ 2025-11-13  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.md (*ior<mode>_ccz_1): New define_insn.
+ 
+ 2025-11-13  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* config/aarch64/driver-aarch64.cc
+ 	(host_detect_local_cpu): Extend feature string syntax.
+ 
+ 2025-11-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-dce.cc (simple_dce_from_worklist): For calls
+ 	with side-effects remove their LHS.
+ 
+ 2025-11-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*eor3q<mode>4): New insn to be used by
+ 	combine after reload to optimize any grouping of eor's that are using FP
+ 	registers for scalar modes.
+ 
+ 2025-11-13  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc (riscv_process_target_str): Clean
+ 	the final byte of str_to_check.
+ 
+ 2025-11-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/115970
+ 	* diagnostics/sarif-sink.cc (maybe_open_sarif_sink_for_socket):
+ 	Add "%m" to error messages, so that we print the string form of
+ 	errno.
+ 
+ 2025-11-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/sarif-sink.cc (class unique_fd): New.
+ 	(sarif_socket_sink::sarif_socket_sink): Convert "fd" arg and m_fd
+ 	from int to unique_fd.
+ 	(~sarif_socket_sink): Drop.
+ 	(sarif_socket_sink::dump_kind): Update for m_fd becoming a
+ 	unique_fd.
+ 	(sarif_socket_sink::m_fd): Convert from "int" to "unique_fd".
+ 	(maybe_open_sarif_sink_for_socket): Likewise for "sfd".
+ 
+ 2025-11-12  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1c.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Document the above.
+ 
+ 2025-11-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/i386/i386.opt.urls: Regenerate.
+ 	* config/s390/s390.opt.urls: Ditto.
+ 	* doc/invoke.texi: Add documentation for
+ 	-mstack-protector-guard= and -mstack-protector-guard-record.
+ 
+ 2025-11-12  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
+ 	index entries for SARIF and HTML output formats.
+ 
+ 2025-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122653
+ 	* tree-scalar-evolution.cc (interpret_rhs_expr): Handle
+ 	POINTER_DIFF_EXPR.
+ 
+ 2025-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
+ 	    Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/122175
+ 	* config/arm/iterators.md (asm_const_size): New mode attr.
+ 	* config/arm/mve.md (@mve_<mve_insn>q_n_<supf><mode>): Use it.
+ 
+ 2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/122539
+ 	* config/arm/arm.cc (comp_not_to_clear_mask_str_un): Skip partial
+ 	register clearing logic for FP_REGS.
+ 	(compute_not_to_clear_mask): Likewise.
+ 
+ 2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/122539
+ 	* config/arm/arm.cc (comp_not_to_clear_mask_str_un): Update
+ 	not_to_clear_reg_mask for union members.
+ 
+ 2025-11-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-opts.h (enum stack_protector_guard): Define
+ 	SP_TLS and SP_GLOBAL.
+ 	* config/s390/s390.h (TARGET_SP_GLOBAL_GUARD): Define predicate.
+ 	(TARGET_SP_TLS_GUARD): Define predicate.
+ 	* config/s390/s390.md (stack_protect_global_guard_addr<mode>):
+ 	New insn.
+ 	(stack_protect_set): Also deal with a global guard.
+ 	(stack_protect_test): Also deal with a global guard.
+ 	* config/s390/s390.opt (-mstack-protector-guard={global,tls}):
+ 	New option.
+ 	(-mstack-protector-guard-record) New option.
+ 
+ 2025-11-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122647
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Fix guard on
+ 	bool to non-bool conversion.
+ 	* tree-vect-patterns.cc (vect_recog_bool_pattern): Also handle
+ 	FLOAT_EXPR from bool.
+ 
+ 2025-11-12  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/andes-25-series.md: New file.
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add andes-25-series.
+ 	(RISCV_CORE): Add Andes 25-series cpu list.
+ 	* config/riscv/riscv-opts.h
+ 	(enum riscv_microarchitecture_type): Add andes_25_series_.
+ 	* config/riscv/riscv.cc: Add andes_25_tune_info.
+ 	* config/riscv/riscv.md: Add andes_25.
+ 	* doc/riscv-mcpu.texi: Regenerated for Andes cpu list.
+ 	* doc/riscv-mtune.texi: Regenerated for andes-25-series.
+ 
+ 2025-11-11  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/mkoffload.cc (process_asm): Replace "configure_stack_size"
+ 	constructor with a new regular function, "mkoffload_setup".
+ 	(process_obj): Call mkoffload_setup from the "init" constructor.
+ 
+ 2025-11-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/115970
+ 	* diagnostics/sarif-sink.cc: Include <sys/un.h> and <sys/socket.h>.
+ 	(sarif_builder::end_group): Update comment.
+ 	(sarif_sink::on_end_group): Drop "final".
+ 	(class sarif_socket_sink): New subclass.
+ 	(maybe_open_sarif_sink_for_socket): New function.
+ 	* diagnostics/sarif-sink.h: (maybe_open_sarif_sink_for_socket):
+ 	New decl.
+ 	* doc/invoke.texi (EXPERIMENTAL_SARIF_SOCKET): Document new
+ 	environment variable.
+ 	* toplev.cc: Define INCLUDE_VECTOR. Add include of
+ 	"diagnostics/sarif-sink.h".
+ 	(toplev::main): Call
+ 	diagnostics::maybe_open_sarif_sink_for_socket.
+ 
+ 2025-11-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122587
+ 	* tree-vectorizer.cc (pass_vectorize::execute): Enable
+ 	ranger around analysis and code generation.
+ 
+ 2025-11-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-niter.cc (simplify_using_initial_conditions):
+ 	Use the active ranger to simplify boolean expressions.
+ 
+ 2025-11-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/crypto.md (packf splitters): Variant with
+ 	operands reversed.  Add variants with the ashift/sign extend
+ 	exchanged as well.
+ 
+ 2025-11-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_extend_to_xmode_reg): Simplify
+ 	by using convert_modes + force_reg.
+ 
+ 2025-11-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-range.cc (gimple_ranger::range_on_edge): Pass
+ 	the edge as 'edge' to get_tree_range.
+ 	(dom_ranger::range_on_edge): Likewise.
+ 
+ 2025-11-11  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-query.cc (range_query::invoke_range_of_expr): New
+ 	edge argument.  If set invoke range_on_edge.
+ 	(range_query::get_tree_range): Likewise and adjust.
+ 	* value-query.h (range_query::invoke_range_of_expr): New
+ 	edge argument.
+ 	(range_query::get_tree_range): Likewise.
+ 
+ 2025-11-11  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* match.pd: New patterns.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* doc/extend.texi: Add description for LoongArch function
+ 	attributes.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_can_inline_p):
+ 	Do not inline when callee is versioned but caller is not.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_option_same_function_versions): Compare the target
+ 	attributes in two functions to determine which function’s
+ 	features get higher priority.
+ 	(TARGET_OPTION_SAME_FUNCTION_VERSIONS): Define.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_parse_fmv_features): Modify the type of parameter.
+ 	(loongarch_compare_version_priority): Function declaration.
+ 	* config/loongarch/loongarch-target-attr.cc
+ 	(enum features_prio): Define LA_PRIO_MAX to indicate the
+ 	highest priority of supported attributes.
+ 	(loongarch_parse_fmv_features): Added handling of setting
+ 	priority in attribute string.
+ 	(loongarch_compare_version_priority): Likewise.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_process_target_version_attr): Likewise.
+ 	(get_feature_mask_for_version): Likewise.
+ 	(loongarch_compare_version_priority): Delete.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_compare_version_priority): Returns true if DECL1
+ 	and DECL2 are versions of the same function.
+ 	(TARGET_COMPARE_VERSION_PRIORITY): Define.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/genopts/gen-evolution.awk:
+ 	* config/loongarch/loongarch-evol-attr.def: Regenerate.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_parse_fmv_features): Function declaration.
+ 	(get_feature_mask_for_version): Likewise.
+ 	* config/loongarch/loongarch-target-attr.cc
+ 	(enum features_prio): Defining the priority of features.
+ 	(struct loongarch_attribute_info): Add members about
+ 	features.
+ 	(LARCH_ATTR_MASK): Likewise.
+ 	(LARCH_ATTR_ENUM): Likewise.
+ 	(LARCH_ATTR_BOOL): Likewise.
+ 	(loongarch_parse_fmv_features): Parse a function
+ 	multiversioning feature string STR.
+ 	* config/loongarch/loongarch.cc
+ 	(get_suffixed_assembler_name): Return an identifier for the
+ 	base assembler name of a versioned function.
+ 	(get_feature_mask_for_version): Get the mask and priority of
+ 	features.
+ 	(add_condition_to_bb): Insert judgment statements for different
+ 	features functions.
+ 	(dispatch_function_versions): Generates the dispatch function for
+ 	multi-versioned functions.
+ 	(make_resolver_func): Make the resolver function decl to dispatch
+ 	the versions of a multi-versioned function.
+ 	(loongarch_generate_version_dispatcher_body): Generate the
+ 	dispatcher logic to invoke the right function version at run-time
+ 	for a given set of function versions.
+ 	(TARGET_GENERATE_VERSION_DISPATCHER_BODY): Define.
+ 	* common/config/loongarch/cpu-features.h: New file.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (INCLUDE_STRING): Include.
+ 	(loongarch_mangle_decl_assembler_name): New function.
+ 	(TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_get_function_versions_dispatcher): New function.
+ 	(TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Define.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_process_target_version_attr): New function.
+ 	(loongarch_option_valid_version_attribute_p): New function.
+ 	(TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): Define.
+ 	* config/loongarch/loongarch.h
+ 	(TARGET_HAS_FMV_TARGET_ATTRIBUTE): Define it to 0.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/genopts/gen-evolution.awk: Output the
+ 	info needed for handling evolution features when parsing
+ 	the target pragma and attribute.
+ 	* config/loongarch/genopts/genstr.sh: Add support for
+ 	generating *.def files.
+ 	* config/loongarch/loongarch-target-attr.cc
+ 	(struct loongarch_attribute_info): Add structure member
+ 	record option mask.
+ 	(LARCH_ATTR_MASK): New macro.
+ 	(LARCH_ATTR_ENUM): Likewise.
+ 	(LARCH_ATTR_BOOL): Likewise.
+ 	(loongarch_handle_option): Support for new options.
+ 	(loongarch_process_one_target_attr): Added support for
+ 	the la64v1.1 extended instruction set.
+ 	* config/loongarch/t-loongarch: Generate loongarch-evol-attr.def.
+ 	* doc/extend.texi: Add new attribute description information.
+ 	* config/loongarch/loongarch-evol-attr.def: Generate.
+ 
+ 2025-11-11  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-target-attr.cc
+ 	(loongarch_process_one_target_attr): Fix ICE.
+ 
+ 2025-11-11  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122629
+ 	* tree-if-conv.cc (factor_out_operators): Reject
+ 	BIT_FIELD_REF and BIT_INSERT_EXPR if operand other
+ 	than 0 is different.
+ 
+ 2025-11-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR lto/122620
+ 	* gimplify-me.cc (gimple_regimplify_operands): Don't try to regimplify
+ 	TREE_CLOBBER on rhs of gimple_clobber_p if it has gimple_reg_type.
+ 
+ 2025-11-11  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/122446
+ 	* config/i386/amxavx512intrin.h (_tile_cvtrowps2bf16hi_internal):
+ 	Input register name by inline asm %c[...], and remove %% before tmm
+ 	from intel side.
+ 	(_tile_cvtrowps2bf16li_internal): Ditto.
+ 	* config/i386/amxbf16intrin.h (_tile_dpbf16ps_internal): Ditto
+ 	* config/i386/amxcomplexintrin.h (_tile_cmmimfp16ps_internal): Ditto
+ 	(_tile_cmmrlfp16ps_internal): Ditto
+ 	(_tile_cmmimfp16ps): Ditto
+ 	(_tile_cmmrlfp16ps): Ditto
+ 	* config/i386/amxfp16intrin.h (_tile_dpfp16ps_internal): Ditto
+ 	(_tile_dpfp16ps): Ditto
+ 	* config/i386/amxfp8intrin.h (_tile_dpbf8ps_internal): Ditto
+ 	(_tile_dpbhf8ps_internal): Ditto
+ 	(_tile_dphbf8ps_internal): Ditto
+ 	(_tile_dphf8ps_internal): Ditto
+ 	(_tile_dpbf8ps): Ditto
+ 	(_tile_dpbhf8ps): Ditto
+ 	(_tile_dphbf8ps): Ditto
+ 	(_tile_dphf8ps): Ditto
+ 	* config/i386/amxint8intrin.h (_tile_int8_dp_internal): Ditto
+ 	* config/i386/amxmovrsintrin.h (_tile_loaddrs_internal): Ditto
+ 	(_tile_loaddrst1_internal): Ditto
+ 	(_tile_loaddrs): Ditto
+ 	(_tile_loaddrst1): Ditto
+ 	* config/i386/amxtf32intrin.h (_tile_mmultf32ps_internal): Ditto
+ 	* config/i386/amxtileintrin.h (_tile_loadd): Ditto
+ 	(_tile_loadd_internal): Ditto
+ 	(_tile_stream_loadd): Ditto
+ 	(_tile_stream_loadd_internal): Ditto
+ 	(_tile_stored): Ditto
+ 	(_tile_stored_internal): Ditto
+ 	(_tile_zero): Ditto
+ 	(_tile_zero_internal): Ditto
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt.urls: Regenerated.
+ 	* config/dragonfly.opt.urls: Regenerated.
+ 	* config/freebsd.opt.urls: Regenerated.
+ 	* config/gcn/gcn.opt.urls: Regenerated.
+ 	* config/gnu-user.opt.urls: Regenerated.
+ 
+ 2025-11-10  Sam James  <sam@gentoo.org>
+ 
+ 	* acinclude.m4: Quote "$gcc_cv_nm" and friends.
+ 	* configure.ac: Ditto.
+ 	* configure: Regenerate.
+ 
+ 2025-11-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/122605
+ 	* builtins.cc (expand_ifn_atomic_bit_test_and): Split out the call to
+ 	build_call_nary into two different statements.
+ 	(expand_ifn_atomic_op_fetch_cmp_0): Likewise.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt: Clean up comments/documentation for -fident.
+ 	* doc/invoke.texi: Move -Qy/-Qn documentation from System V options
+ 	and combine with -fident/-fno-ident entry.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt: Add comments/documentation for -N, -Q, -S, -T,
+ 	-Tbss, -Tdata, -Ttext, -Z, -n, -Q, -s, -t, -z.
+ 	* doc/invoke.texi: Add documentation for -Tbss, -Tdata, -Ttext,
+ 	-N, -n, -t, -Z.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	PR rtl-optimization/120064
+ 	* doc/invoke.texi: Document -fconcepts-diagnostics-depth,
+ 	-Wdeprecated-copy-dtor, -Wformat-diag, -Wcannot-profile,
+ 	-fvar-tracking-uninit, -gno-pubnames, -finline-atomics,
+ 	-fext-dce, -fipa-icf-functions, -fipa-icf-variables,
+ 	-fprofile, -fdump-internal-locations, and -Wopenacc-dims.
+ 	Minor copy-editing and rearrangement of items in the option
+ 	summary lists.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/cppdiropts.texi: Document --include-directory,
+ 	--include-directory-after, --include-barrier, --include-prefix,
+ 	--include-with-prefix, --include-with-prefix-after,
+ 	--include-with-prefix-before, --no-standard-includes.
+ 	--embed-directory.
+ 	* doc/cppopts.texi: Document --define-macro, --undefine-macro,
+ 	--include, --imacros, --dependencies, --user-dependencies,
+ 	--print-missing-file-dependencies, --write-dependencies,
+ 	--write-user-dependencies, --comments, --comments-in-macros,
+ 	--no-line-commands, --traditional, --traditional-cpp,
+ 	--trigraphs, --trace-includes, --dump.
+ 	* doc/invoke.texi: Add missing long options to Option Summary.
+ 	Document --language, --compile, --assemble, --preprocess,
+ 	--output, --dumpbase, --dumpbase-ext, --dumpdir,
+ 	--verbose, --pass-exit-codes, --pipe, --specs, --ansi,
+ 	--no-warnings, --pedantic, --pedantic-errors, --all-warnings,
+ 	--extra-warnings, --debug, --optimize, --profile, -coverage,
+ 	--no-integrated-cpp, --for-assembler, --no-standard-libraries,
+ 	--entries, --pie, --static-pie, --static, --shared, --symbolic,
+ 	--for-linker, --force-link, --library-directory, --prefix,
+ 	--no-canonical-prefixes, --dump, --save-temps, --print-file-name,
+ 	--print-multi-directory, --print-multi-lib,
+ 	--print-multi-os-directory, --print-multiarch,
+ 	--print-prog-name, --print-libgcc-file-name, --print-search-dirs,
+ 	--print-sysroot, --print-sysroot-headers-suffix.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/cppopts.texi (-A): Restrict option documentation to the CPP
+ 	manual.  Also document the --assert form.
+ 	* doc/invoke.texi (Option Summary): Don't list the -A option.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (Option Summary): Add missing entries,
+ 	also correct alphabetization and formatting of the C++ options.
+ 	(C++ Language Options): Fix some formatting issues.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt (fhelp, fhelp=, ftarget-help, fversion): Mark as
+ 	"Undocumented".
+ 	(fbounds-check): Update comments.
+ 	(flag-graphite, fsel-sched-reschedule-pipelined): Mark as
+ 	"Undocumented".
+ 	(fstack-limit): Add comment.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt (fhelp): Add RejectNegative.
+ 	(fhelp=): Likewise.
+ 	(ftarget-help): Likewise.
+ 	(fversion): Likewise.
+ 	(Wno-frame-larger-than): Likewise.
+ 	(Wno-larger-than): Likewise.
+ 	(Wno-stack-usage): Likewise.
+ 	(fdiagnostics-minimum-margin-width=): Likewise.
+ 	(flto-incremental=): Likewise.
+ 	(foffload=): Likewise.
+ 	(foffload-options=): Likewise.
+ 	(foffload-abi-host-opts=): Likewise.
+ 	(fpatchable-function-entry=): Likewise.
+ 	(gno-pubnames): Likewise.
+ 	(gpubnames): Likewise.
+ 	(ggnu-pubnames): Likewise.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* common.opt (ftree-lrs): Mark as "Ignore".
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/cppopts.texi (fcanonical-system-headers): Add @opindex.
+ 	* doc/invoke.texi (fdump-ada-spec-slim): Add @opindex.
+ 	(fcontract-semantic): Likewise.
+ 	(fdiagnostics-plain-output): Likewise.
+ 	(Wc11-c2x-compat): Likewise.
+ 	(Wvla-parameter): Likewise.
+ 	(fanalyzer-verbose-edges): Likewise.
+ 	(fanalyzer-verbose-state-changes): Likewise.
+ 	(fanalyzer-verbosity): Likewise.
+ 	(flimit-function-alignment): Likewise.
+ 
+ 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/122243
+ 	* doc/invoke.texi (fdump-analyzer-exploded-nodes): Correct
+ 	spelling of option in @opindex.
+ 	(fdump-analyzer-exploded-nodes-2): Likewise.
+ 	(fdump-analyzer-exploded-nodes-3): Likewise.
+ 	(fdump-analyzer-feasibility): Likewise.
+ 	(fdump-analyzer-infinite-loop): Likewise.
+ 	(fstack-reuse): Likewise.
+ 
+ 2025-11-10  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.h (REG_CLASS_CONTENTS): Use unsigned integer
+ 	constants.
+ 
+ 2025-11-10  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/122415
+ 	* config/pru/pru-protos.h (pru_fixup_jump_address_operand):
+ 	Declare.
+ 	* config/pru/pru.cc (pru_fixup_jump_address_operand): New
+ 	function.
+ 	(pru_addr_space_legitimize_address): New function.
+ 	(TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Declare.
+ 	* config/pru/pru.md (call): Fixup the address operand.
+ 	(call_value): Ditto.
+ 	(sibcall): Ditto.
+ 	(sibcall_value): Ditto.
+ 
+ 2025-11-10  Tejas Belagod  <tejas.belagod@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Make
+ 	SVE vector boolean type equivalent to GNU vectors.
+ 	* config/aarch64/aarch64-sve.md (extend<vpred><mode>2,
+ 	zero_extend<vpred><mode>2, trunc<mode><vpred>2, vec_cmp<mode><mode>):
+ 	New patterns to support additional operations on predicate modes.
+ 	* config/aarch64/aarch64.cc (aarch64_valid_vector_boolean_op): New.
+ 	(aarch64_invalid_unary_op): Consider vector bool types.
+ 	(aarch64_invalid_binary_op): Likewise.
+ 	(aarch64_convert_to_type): Define target hook and handle standard to
+ 	non-standard bool conversion.
+ 
+ 2025-11-10  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/118460
+ 	* config/arm/arm.md (movhfcc): Use expandable_comparison_operator.
+ 	(movsfcc, movdfcc): Likewise.
+ 
+ 2025-11-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/121985
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Only
+ 	set niter_vector's range if step == 1.
+ 
+ 2025-11-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* optabs-query.cc (qimode_for_vec_perm): Check if QImode's
+ 	precision divides the inner mode's precision.
+ 
+ 2025-11-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Bail if
+ 	offset_vectype is NULL.
+ 
+ 2025-11-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-slp.cc (vect_load_perm_consecutive_p): New function.
+ 	(vect_lower_load_permutations): Use.
+ 	(vect_optimize_slp_pass::remove_redundant_permutations): Use.
+ 	* tree-vect-stmts.cc (has_consecutive_load_permutation): New
+ 	function that uses vect_load_perm_consecutive_p.
+ 	(get_load_store_type): Use.
+ 	(vectorizable_load): Reduce group size.
+ 	* tree-vectorizer.h (struct vect_load_store_data): Add
+ 	subchain_p.
+ 	(vect_load_perm_consecutive_p): Declare.
+ 
+ 2025-11-08  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR tree-optimization/122126
+ 	* gimple-isel.cc (gimple_expand_vec_set_extract_expr): Add bound check.
+ 
+ 2025-11-08  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/122097
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_const_vector_same_bytes_p): Add processing for
+ 	floating-point vector data.
+ 
+ 2025-11-08  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR tree-optimization/122065
+ 	* tree-vect-generic.cc (target_supports_mult_synth_alg): Add helper to
+ 	check mult synth.
+ 	(expand_vector_mult): Optimize mult when const is uniform but not
+ 	power of 2.
+ 
+ 2025-11-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122599
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop): Move
+ 	the removal of the phi until after the gimplification of the final
+ 	value expression.
+ 
+ 2025-11-07  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gdbhooks.py (class AnaSupernodePrinter): New.
+ 	(class AnaExplodedNodePrinter): New.
+ 	(build_pretty_printer): Register the above.
+ 
+ 2025-11-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree.cc (build_call_nary): Remove decl.
+ 	Add template definition that uses std::initializer_list<tree>
+ 	and call build_call.
+ 	(build_call): New declaration.
+ 	* tree.h (build_call_nary): Remove.
+ 	(build_call): New function.
+ 
+ 2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/autovec.md: Use const_1_operand for scale and
+ 	extend predicates.
+ 	* config/riscv/riscv-v.cc (expand_gather_scatter): Remove scale
+ 	and extension handling.
+ 
+ 2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-stmts.cc (vect_use_strided_gather_scatters_p):
+ 	Do not convert offset type.
+ 
+ 2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-data-refs.cc (struct gather_scatter_config):
+ 	Add scale.
+ 	(vect_gather_scatter_get_configs): Try various scales.
+ 	(vect_gather_scatter_fn_p): Add scale handling.
+ 	(vect_check_gather_scatter): Add scale parameter.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Ditto.
+ 	(vect_truncate_gather_scatter_offset): Ditto.
+ 	(vect_use_grouped_gather): Ditto.
+ 	(get_load_store_type): Ditto.
+ 	(vectorizable_store): Scale offset if necessary.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (struct vect_load_store_data): Add
+ 	supported_scale.
+ 	(vect_gather_scatter_fn_p): Add argument.
+ 
+ 2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-data-refs.cc (struct gather_scatter_config): New
+ 	struct to hold gather/scatter configurations.
+ 	(vect_gather_scatter_which_ifn): New function to determine which
+ 	IFN to use.
+ 	(vect_gather_scatter_get_configs): New function to enumerate all
+ 	target-supported configs.
+ 	(vect_gather_scatter_fn_p): Rework to use
+ 	vect_gather_scatter_get_configs and try sign-swapped offset.
+ 	(vect_check_gather_scatter): Use new supported offset vectype
+ 	argument.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Ditto.
+ 	(vect_truncate_gather_scatter_offset): Ditto.
+ 	(vect_use_grouped_gather): Ditto.
+ 	(get_load_store_type): Ditto.
+ 	(vectorizable_store): Convert to sign-swapped offset type if
+ 	needed.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (struct vect_load_store_data): Add
+ 	supported_offset_vectype.
+ 	(vect_gather_scatter_fn_p): Add argument.
+ 
+ 2025-11-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122588
+ 	* tree-ssa-forwprop.cc (optimize_unreachable): Don't touch
+ 	if the condition was already true or false.
+ 
+ 2025-11-07  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/122140
+ 	* config/bpf/bpf.cc (bpf_expand_cpymem): Fix off-by-one offset
+ 	in backwards loop.  Improve src and dest addrs used for the
+ 	branch condition.
+ 	(emit_move_loop): Improve emitted set insns and remove the
+ 	explict temporary register.
+ 
+ 2025-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122577
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Allow conversions
+ 	from non-mode-precision types.
+ 
+ 2025-11-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Leverage usmul_widen_mult by bit_ior based
+ 	unsigned SAT_MUL pattern.
+ 
+ 2025-11-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vwsll_sign_extend_<mode>): Add
+ 	pattern to combine vsext.vf2 and vslli.vi to vwsll.vi.
+ 
+ 2025-11-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122589
+ 	PR middle-end/122594
+ 	* gimple-iterator.cc (gsi_replace_with_seq): Instead of
+ 	removing the last stmt from the sequence with gsi_remove,
+ 	split it using gsi_split_seq_before.
+ 	(gsi_split_seq_before): Fix bogus documentation.
+ 
+ 2025-11-07  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/118328
+ 	* config/aarch64/aarch64.cc (handle_aarch64_vector_pcs_attribute):
+ 	Add handling for ARM_PCS_PRESERVE_NONE.
+ 	(aarch64_pcs_exclusions): New definition.
+ 	(aarch64_gnu_attributes): Add entry for preserve_none and add
+ 	aarch64_pcs_exclusions to aarch64_vector_pcs entry.
+ 	(aarch64_preserve_none_abi): New function.
+ 	(aarch64_fntype_abi): Add handling for preserve_none.
+ 	(aarch64_reg_save_mode): Add handling for ARM_PCS_PRESERVE_NONE.
+ 	(aarch64_hard_regno_call_part_clobbered): Add handling for
+ 	ARM_PCS_PRESERVE_NONE.
+ 	(num_pcs_arg_regs): New helper function.
+ 	(get_pcs_arg_reg): New helper function.
+ 	(aarch64_function_ok_for_sibcall): Add handling for ARM_PCS_PRESERVE_NONE.
+ 	(aarch64_layout_arg): Add preserve_none argument lauout..
+ 	(function_arg_preserve_none_regno_p): New helper function.
+ 	(aarch64_function_arg): Update to handle preserve_none.
+ 	(function_arg_preserve_none_regno_p): Update logic for preserve_none.
+ 	(aarch64_expand_builtin_va_start): Add preserve_none layout.
+ 	(aarch64_setup_incoming_varargs): Add preserve_none layout.
+ 	(aarch64_is_variant_pcs): Update for case of ARM_PCS_PRESERVE_NONE.
+ 	(aarch64_comp_type_attributes): Add preserve_none.
+ 	* config/aarch64/aarch64.h (NUM_PRESERVE_NONE_ARG_REGS): New macro.
+ 	(PRESERVE_NONE_REGISTERS): New macro.
+ 	(enum arm_pcs): Add ARM_PCS_PRESERVE_NONE.
+ 	* doc/extend.texi (preserve_none): Add docs for new attribute.
+ 
+ 2025-11-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*widen_mul_plus_vx_<mode>): Add
+ 	new pattern to combine the vwmaccu.vx.
+ 	* config/riscv/vector.md (*pred_widen_mul_plus_u_vx<mode>_undef):
+ 	Add undef define_insn for vmwaccu.vx emiting.
+ 	(@pred_widen_mul_plus_u_vx<mode>): Ditto.
+ 
+ 2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_sign_extend_if_subreg_prom_p): Determine if the
+ 	current operand	is SUBREG and if the source of SUBREG is
+ 	the sign-extended value.
+ 	(loongarch_expand_conditional_move): Optimize.
+ 
+ 2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_canonicalize_int_order_test): Support GT GTU LT
+ 	and LTU.
+ 	(loongarch_extend_comparands): Expand the scope of op1 from
+ 	0 to all immediate values.
+ 	* config/loongarch/loongarch.md
+ 	(*sge<u>_<X:mode><GPR:mode>): New template.
+ 
+ 2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_legitimize_move): Optimize.
+ 
+ 2025-11-06  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/invoke.texi (AArch64 Options): Clean up description of
+ 	-mbranch-protection= argument.
+ 	(ARM Options): Likewise.
+ 
+ 2025-11-06  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* doc/extend.texi: Move _Countof under 'Syntax Extensions'.
+ 
+ 2025-11-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/122516
+ 	* config/avr/elf.h (SUPPORTS_SHF_GNU_RETAIN): Define if
+ 	HAVE_GAS_SHF_GNU_RETAIN.
+ 
+ 2025-11-06  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Ignore
+ 	assignments of (const_int 0) to a register.  They will get propagated
+ 	away.
+ 
+ 2025-11-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_output_addr_vec): Output
+ 	a valid opcode prior to the first gs() label provided:
+ 	- The code is compiled for an arch that has AVR-SD mcus, and
+ 	- the function has a "section" attribute, and
+ 	- the function has a gs() label addresses switch/case table.
+ 
+ 2025-11-06  Your Name  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/121136
+ 	* config/riscv/riscv.md: Add define_insn to test the
+ 	upper bits of a register against zero using sltiu when
+ 	the bits are extracted via zero_extract or logial right shift.
+ 	Add 3->2 define_splits for gtu/leu cases testing upper bits
+ 	against zero.
+ 
+ 2025-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-core.h (tree_ssa_name::active_iterated_stmt): Mark
+ 	GTY((skip(""))).
+ 
+ 2025-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* ssa-iterators.h (imm_use_iterator::name): Add.
+ 	(delink_imm_use): When in a FOR_EACH_IMM_USE_STMT iteration
+ 	enforce we only remove uses from the current stmt.
+ 	(end_imm_use_stmt_traverse): Reset current stmt.
+ 	(first_imm_use_stmt): Assert no FOR_EACH_IMM_USE_STMT on
+ 	var is in progress.  Set the current stmt.
+ 	(next_imm_use_stmt): Set the current stmt.
+ 	(auto_end_imm_use_fast_traverse): New, lower iteration
+ 	depth upon destruction.
+ 	(first_readonly_imm_use): Bump the iteration depth.
+ 	* tree-core.h (tree_ssa_name::active_iterated_stmt,
+ 	tree_ssa_name::fast_iteration_depth): New members when
+ 	ENABLE_GIMPLE_CHECKING.
+ 	* tree-ssanames.cc (make_ssa_name_fn): Initialize
+ 	immediate use verifier bookkeeping members.
+ 
+ 2025-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122502
+ 	* ssa-iterators.h (imm_use_iterator::iter_node): Remove.
+ 	(imm_use_iterator::next_stmt_use): New.
+ 	(next_readonly_imm_use): Adjust checking code.
+ 	(end_imm_use_stmt_traverse): Simplify.
+ 	(link_use_stmts_after): Likewise.  Return the last use
+ 	with the same stmt.
+ 	(first_imm_use_stmt): Simplify.  Set next_stmt_use.
+ 	(next_imm_use_stmt): Likewise.
+ 	(end_imm_use_on_stmt_p): Adjust.
+ 
+ 2025-11-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/tree-ssa.texi: Update immediate use iterator
+ 	documentation.
+ 	* ssa-iterators.h: Likewise.
+ 
+ 2025-11-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/113632
+ 	* range-op-mixed.h (operator_bitwise_xor): Relocate and adjust.
+ 	(operator_bitwise_xor::m_and, m_or, m_not): New.
+ 	* range-op.cc (operator_bitwise_xor::fold_range): New.
+ 
+ 2025-11-06  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config.gcc: Support --with-cmodel={medium,normal} and make
+ 	medium the default for LoongArch, define TARGET_DEFAULT_CMODEL
+ 	as the selected value.
+ 	* config/loongarch/loongarch-opts.cc: Use TARGET_DEFAULT_CMODEL
+ 	instead of hard coding CMODEL_NORMAL.
+ 	* doc/install.texi: Document that --with-cmodel= is supported
+ 	for LoongArch.
+ 	* doc/invoke.texi: Update the document about default code model
+ 	on LoongArch.
+ 
+ 2025-11-05  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/121574
+ 	* doc/invoke.texi: Document '-Wexpose-global-module-tu-local'.
+ 
+ 2025-11-05  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_vector_constructor): Support
+ 	vector constructor elements.
+ 	* tree-vect-generic.cc (ssa_uniform_vector_p): Make non-static and
+ 	move ...
+ 	* tree.cc (ssa_uniform_vector_p): ... here.
+ 	* tree.h (ssa_uniform_vector_p): Declare it.
+ 
+ 2025-11-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (forward_propagate_addr_expr):
+ 	Use gather_imm_use_stmts instead of FOR_EACH_IMM_USE_STMT.
+ 
+ 2025-11-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple.h (gimple::pad): Rename to ...
+ 	(gimple::ilf): ... this.
+ 	* ssa-iterators.h (gather_imm_use_stmts): Declare.
+ 	* tree-ssa-operands.cc (gather_imm_use_stmts): New function.
+ 
+ 2025-11-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-ssa-isolate-paths.cc (check_loadstore): Set
+ 	the volatile flag on the stmt manually.
+ 	(find_implicit_erroneous_behavior): Move code transform
+ 	outside of FOR_EACH_IMM_USE_STMT iteration.
+ 
+ 2025-11-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-loop-niter.cc (dump_affine_iv): Use file, not
+ 	dump_file when printing.
+ 	(debug): New overload for affine_iv.
+ 
+ 2025-11-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (cntmap): Change to uppercase.
+ 	(popcount<GPR:mode>2): Modify to a post reload split.
+ 
+ 2025-11-04  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/122390
+ 	* config/i386/i386.md (*add<mode>3_carry_2): New insn pattern.
+ 	(*add<mode>3_carry_0_cc): Ditto.
+ 	(*add<mode>3_carry_0r_cc): Ditto.
+ 	(*sub<mode>3_carry_2): Ditto.
+ 	(*sub<mode>3_carry_0_cc): Ditto.
+ 	(*sub<mode>3_carry_0r_cc): Ditt.
+ 
+ 2025-11-04  Kees Cook  <kees@kernel.org>
+ 
+ 	* config/arc/builtins.def: Add ATTRS parameter to DEF_BUILTIN
+ 	macro calls.  Mark mathematical builtins (FFS, FLS, NORM, NORMW,
+ 	SWAP) with attr_const, leave others as NULL_TREE.
+ 	* config/arc/arc.cc: Add support for builtin function attributes.
+ 	Create attr_const using tree_cons.  Update DEF_BUILTIN macro to
+ 	pass ATTRS parameter to add_builtin_function.
+ 
+ 2025-11-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add usmul_widen_mult helper and referenced by
+ 	min based unsigned SAT_MUL pattern.
+ 
+ 2025-11-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR lto/122515
+ 	* lto-wrapper.cc (debug_objcopy): Set type of INOFF to int64_t.
+ 	(run_gcc): Set type of FILE_OFFSET to int64_t.
+ 
+ 2025-11-04  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	PR rtl-optimization/93738
+ 	* simplify-rtx.cc (simplify_binary_operation_1): Canonicalize
+ 	SUBREG(LSHIFTRT) into LSHIFTRT(SUBREG) when valid.
+ 
+ 2025-11-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/122544
+ 	* diagnostics/paths.cc (event::meaning::maybe_get_verb_str):
+ 	Handle the new verbs.
+ 	* diagnostics/paths.h (event::meaning::verb): Add new values
+ 	for special control flow operations.
+ 	(event::meaning::meaning): Add ctor taking just a verb.
+ 
+ 2025-11-03  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/122534
+ 	* config/i386/i386.md (@test<mode>_ccno_1):
+ 	Use <general_szext_operand> as operand 1 predicate.
+ 	(testqi_ccz_1): Use general_operand as operand 1 predicate.
+ 	(*testdi_1): Use x86_64_szext_general_operand as operand 1 predicate.
+ 	(*testqi_1_maybe_si): Use general_operand as operand 1 predicate.
+ 	Add (n,*a) alternative to allow UV pairing for pentium processor.
+ 	(*test<mode>_1): Use <general_operand> as operand 1 predicate.
+ 
+ 2025-11-03  Sam James  <sam@gentoo.org>
+ 
+ 	* configure: Regenerate.
+ 
+ 2025-11-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122536
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Fix
+ 	guard against variable bit extracts in recent change.
+ 
+ 2025-11-03  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR ipa/122512
+ 	* symtab.cc: Fix 'static_assert'.
+ 
+ 2025-11-03  Loeka Rogge  <loeka@synopsys.com>
+ 
+ 	* config/arc/simdext.md(movv2hi_insn): Change order for movv2hi
+ 	for big-endian.
+ 
+ 2025-11-03  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR libgomp/122281
+ 	PR middle-end/105001
+ 	* gimple.cc (gimple_copy): Add missing unshare_expr for
+ 	GIMPLE_OMP_ATOMIC_LOAD and GIMPLE_OMP_ATOMIC_STORE.
+ 
+ 2025-11-03  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR c/122202
+ 	* doc/extend.texi (target function attribute): Update to describe FMV
+ 	behaviour.
+ 	(target_version function attribute): New section.
+ 	(target_clones attribute): Update to descrbe new behaviour with
+ 	target_version.
+ 	(Function Multiversioning): Update to discuss both target_version and
+ 	target based FMV.
+ 
+ 2025-11-03  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_flatten_aggregate_field): Skip
+ 	empty unions and zero-length arrays when flattening aggregate
+ 	fields for ABI classification.
+ 	(riscv_pass_aggregate_in_fpr_pair_p): Refactor to use separate
+ 	field parsing and emit ABI change warning for affected types.
+ 	(riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
+ 
+ 2025-11-03  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (dit): New fmv feature.
+ 	(dpb): New fmv feature.
+ 	(dpb2): New fmv feature.
+ 	(memtag): Change to also define an FMV feature.
+ 	(ssbs): Change to also define an FMV feature.
+ 	(bti): New fmv feature.
+ 	* config/aarch64/aarch64.cc (FEAT_SSBS): Add macro.
+ 	(FEAT_MEMTAG): Ditto.
+ 
+ 2025-11-03  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (int_iterator ANY_ROUND):
+ 	Specify "flag_unsafe_math_optimizations" in the condition of the
+ 	UNSPEC_ROUND element.
+ 	(int_attr c_round): Remove.
+ 	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
+ 	Remove " && <c_round>" from the conditions.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_modes_tieable_p):
+ 	Make MODE_FLOAT and MODE_INT tieable.
+ 	* config/loongarch/loongarch.md: Adjust constraints.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md
+ 	(and_load_zero_extend<mode>): New combiner.
+ 	* config/loongarch/predicates.md
+ 	(mask_operand):	New predicate.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
+ 	Add new splitter for optimization.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_use_bstrins_bstrpick_for_and): New proto.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_use_bstrins_bstrpick_for_and): Decide whether
+ 	to optimize.
+ 	(loongarch_rtx_costs): Adjust the cost of AND operation.
+ 	* config/loongarch/loongarch.md
+ 	(bstrins_bstrpick_for_and_imm<mode>): New insn_and_split.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_can_change_mode_class): Support for conversion
+ 	between scalar INT and scalar FP.
+ 
+ 2025-11-03  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_rtx_costs):
+ 	Correct the cost of mulh.{w[u]|d[u]}.
+ 
+ 2025-11-03  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122475
+ 	* tree-vect-loop.cc (vectorizable_reduction): Check for neutral_op.
+ 
+ 2025-11-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/90262
+ 	* config/i386/i386-expand.cc (ix86_expand_unroll_movmem): New.
+ 	(ix86_expand_n_move_movmem): Likewise.
+ 	(ix86_expand_load_movmem): Likewise.
+ 	(ix86_expand_store_movmem): Likewise.
+ 	(ix86_expand_n_overlapping_move_movmem): Likewise.
+ 	(ix86_expand_less_move_movmem): Likewise.
+ 	(ix86_expand_movmem): Likewise.
+ 	* config/i386/i386-protos.h (ix86_expand_movmem): Likewise.
+ 	* config/i386/i386.md (movmem<mode>): Likewise.
+ 
+ 2025-11-03  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR target/52345
+ 	* simplify-rtx.cc (simplify_relational_operation_1): Optimize boolean
+ 	IOR equality tests.
+ 
+ 2025-11-03  chenxiaolong  <chenxiaolong@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_cast<mode>): New template
+ 	implemention.
+ 	(vec_insert_lo_<mode>): Dito.
+ 	(vec_insert_hi_<mode>): Dito.
+ 	* config/loongarch/lasxintrin.h (defined): Test for adding
+ 	the builtin function.
+ 	(__lasx_cast_128_s): Dito.
+ 	(__lasx_cast_128_d): Dito.
+ 	(__lasx_cast_128): Dito.
+ 	(__lasx_concat_128_s): Dito.
+ 	(__lasx_concat_128_d): Dito.
+ 	(__lasx_concat_128): Dito.
+ 	(__lasx_extract_128_lo_s): Dito.
+ 	(__lasx_extract_128_hi_s): Dito.
+ 	(__lasx_extract_128_lo_d): Dito.
+ 	(__lasx_extract_128_hi_d): Dito.
+ 	(__lasx_extract_128_lo): Dito.
+ 	(__lasx_extract_128_hi): Dito.
+ 	(__lasx_insert_128_lo_s): Dito.
+ 	(__lasx_insert_128_hi_s): Dito.
+ 	(__lasx_insert_128_lo_d): Dito.
+ 	(__lasx_insert_128_hi_d): Dito.
+ 	(__lasx_insert_128_lo): Dito.
+ 	(__lasx_insert_128_hi): Dito.
+ 	* config/loongarch/loongarch-builtins.cc
+ 	(CODE_FOR_lasx_extract_128_lo_s): Add builtins and register
+ 	icode.
+ 	(CODE_FOR_lasx_extract_128_hi_s): Dito.
+ 	(CODE_FOR_lasx_extract_128_lo_d): Dito.
+ 	(CODE_FOR_lasx_extract_128_hi_d): Dito.
+ 	(CODE_FOR_lasx_extract_128_lo): Dito.
+ 	(CODE_FOR_lasx_extract_128_hi): Dito.
+ 	(CODE_FOR_lasx_insert_128_lo_s): Dito.
+ 	(CODE_FOR_lasx_insert_128_hi_s): Dito.
+ 	(CODE_FOR_lasx_insert_128_lo_d): Dito.
+ 	(CODE_FOR_lasx_insert_128_hi_d): Dito.
+ 	(CODE_FOR_lasx_insert_128_lo): Dito.
+ 	(CODE_FOR_lasx_insert_128_hi): Dito.
+ 	(CODE_FOR_lasx_concat_128_s): Dito.
+ 	(CODE_FOR_lasx_concat_128_d): Dito.
+ 	(CODE_FOR_lasx_concat_128): Dito.
+ 	(CODE_FOR_lasx_cast_128_s): Dito.
+ 	(CODE_FOR_lasx_cast_128_d): Dito.
+ 	(CODE_FOR_lasx_cast_128): Dito.
+ 	(loongarch_expand_builtin_direct): For the newly added
+ 	insertion or extraction, construct the parallel parameter
+ 	corresponding to the operand.
+ 	* config/loongarch/loongarch-c.cc
+ 	(loongarch_update_cpp_builtins): Define
+ 	__loongarch_asx_sx_conv.
+ 	* config/loongarch/loongarch-ftypes.def: Declare the type
+ 	of the builtin function.
+ 	* doc/extend.texi: Add document description.
+ 
+ 2025-11-03  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_move_integer):
+ 	No new virtual register is allocated during immediate load.
+ 
+ 2025-11-03  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/122477
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_split_reduction): Added handling of scalar mode.
+ 
+ 2025-11-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (rotrsi3): Use the sign extended form
+ 	for 32 bit rotates on TARGET_64BIT, even for constant counts.
+ 	* config/riscv/thead.md (th_srrisi3_extended): New pattern.
+ 	(th_srri<mode>3): Adjust formatting.
+ 
+ 2025-11-02  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/122518
+ 	* config/i386/i386.cc (ix86_canonicalize_comparison): Convert
+ 	(compare (minus (a b)) a) to (compare (a b)) to
+ 	match *sub<mode>_3 pattern.
+ 
+ 2025-11-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/122527
+ 	* config/avr/avr.cc (avr_load_libgcc_p): Return false if
+ 	the address-space is not ADDR_SPACE_FLASH.
+ 	(avr_out_lpm_no_lpmx [addr=REG]): Handle sizes of 3 and 4 bytes.
+ 
+ 2025-11-02  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR tree-optimization/118012
+ 	PR tree-optimization/122505
+ 	* config/avr/avr.md (mulpsi3): Also allow the insn condition
+ 	in the case where avropt_pr118012 && !AVR_TINY.
+ 	(*mulpsi3): Handle split for the !AVR_HAVE_MUL case.
+ 	(*mulpsi3-nomul.libgcc_split, *mulpsi3-nomul.libgcc): New insns.
+ 
+ 2025-11-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/tree-ssa.texi: Remove outdated info on FOR_EACH_IMM_USE_STMT
+ 	iteration, clarify SSA operand parts.
+ 	* ssa-iterators.h: Update toplevel comment.
+ 
+ 2025-11-02  Sam James  <sam@gentoo.org>
+ 
+ 	* .simplify-rtx.cc.swo: Removed.
+ 
+ 2025-11-01  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR target/67731
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	Handle IOR of single bit bitfields from the same object.
+ 
+ 2025-11-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-protos.h (has_vtype_op): Add prototype.
+ 	(mask_agnostic_p, get_avl, vsetvl_insn_p): Likewise.
+ 	* config/riscv/riscv-vsetvl.cc (has_vtype_op): No longer static.
+ 	(vsetvl_insn_p, get_avl_mask_agnostic_p): Likewise.
+ 	* config/riscv/riscv.cc (struct last_vcofnig): New structure.
+ 	(clear_vconfig): New function.
+ 	(compatible_with_last_vconfig, riscv_sched_init): Likewise.
+ 	(riscv_sched_reorder): Likewise.
+ 	(TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Define.
+ 	* config/riscv/vector.md ("*mov<mode>"): Set has_vtype_op, has_vl_op
+ 	attributes.
+ 	* .simplify-rtx.cc.swo: New file.
+ 
+ 2025-11-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122321
+ 	* lra-constraints.cc (update_equiv): Make sure REGNO is in
+ 	ira_reg_equiv before trying to update ira_reg_equiv.
+ 
+ 2025-11-01  Martin Uecker  <uecker@tugraz.at>
+ 
+ 	* doc/extend.texi: Document new extension.
+ 
+ 2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (negsf2):
+ 	Add another insn pattern that is valid when TARGET_DENSITY is
+ 	enabled and both the source and destination are address registers.
+ 
+ 2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md
+ 	(c_enum "unspec", int_iterator ANY_ROUND): Add UNSPEC_ROUND.
+ 	(int_attr m_round): Add a pair of UNSPEC_ROUND and "round".
+ 	(int_attr c_round): New integer iterator attribute, that expands
+ 	to "flag_unsafe_math_optimizations" in the case of UNSPEC_ROUND,
+ 	and to "1" otherwise.
+ 	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
+ 	Append " && <c_round>" to the conditions.
+ 
+ 2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*fix<s_fix>_truncsfsi2_scaled,
+ 	*float<s_float>sisf2_scaled, *l<m_round>sfsi2_scaled):
+ 	Remove 'F'-constraint.
+ 
+ 2025-11-01  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR ipa/122512
+ 	* cgraph.h (enum toplevel_type): Add TOPLEVEL_MAX. Add comment
+ 	about keeping toplevel_type_names in sync.
+ 	* symtab.cc (symtab_type_names): Rename to ...
+ 	(toplevel_type_names): Add new types and add an assert about
+ 	the size.
+ 	(symtab_node::get_symtab_type_string): Use toplevel_type_names
+ 	instead of symtab_type_names.
+ 	(symtab_node::dump_base): Likewise.
+ 
+ 2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122437
+ 	* fold-const.h (div_if_zero_remainder): Remove.
+ 
+ 2025-10-31  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121853
+ 	* config/aarch64/aarch64-simd.md (extendbfsf2): New.
+ 
+ 2025-10-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122502
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop):
+ 	Avoid folding from within FOR_EACH_IMM_USE_STMT due to active
+ 	ranger.
+ 
+ 2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122437
+ 	* fold-const.cc (div_if_zero_remainder): Remove.
+ 
+ 2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122497
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop): Call replace_uses_by
+ 	only after the replacement statement was created.
+ 
+ 2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md: Support.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vec_widen_hilo): Remove unused code.
+ 	* config/loongarch/lsx.md: Support.
+ 
+ 2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (ILASX_HB): Move to ...
+ 	* config/loongarch/lsx.md (ILSX_HB): Move to ...
+ 	* config/loongarch/simd.md (ILSX_HB): ... here.
+ 	(ILASX_HB): ... here.
+ 	(IVEC_HB): New iterator.
+ 	(WVEC_QUARTER): New attr.
+ 	(wvec_quarter): Likewise.
+ 	(simdfmt_qw): Likewise.
+ 	(<su>dot_prod<wvec_quarter><mode>): New template.
+ 
+ 2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (hi_lo): Move to ...
+ 	* config/loongarch/simd.md (hi_lo): ... here.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vec_widen_hilo): Add 128-bit data processing.
+ 	* config/loongarch/lsx.md
+ 	(vec_widen_<su><optab>_<hi_lo>_<mode>):	New define_expand.
+ 	(vec_widen_<su>mult_<hi_lo>_<mode>): Likewise.
+ 
+ 2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_widen_<su>add_hi_<mode>):
+ 	Move.
+ 	(vec_widen_<su>add_lo_<mode>): Move.
+ 	(vec_widen_<su>sub_hi_<mode>): Move.
+ 	(vec_widen_<su>sub_lo_<mode>): Move.
+ 	(vec_widen_<su>mult_hi_<mode>): Move.
+ 	(vec_widen_<su>mult_lo_<mode>): Move.
+ 	(hi_lo): New define_int_attr.
+ 	(vec_widen_<su><optab>_<hi_lo>_<mode>): New define_expand.
+ 	(vec_widen_<su>mult_<hi_lo>_<mode>): Likewise.
+ 	* config/loongarch/loongarch-protos.h
+ 	(loongarch_expand_vec_widen_hilo): Modify the function
+ 	parameter list.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vec_widen_hilo): Optimized.
+ 
+ 2025-10-30  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/122248
+ 	* dwarf2out.cc (gen_btf_tag_dies): Always replace an existing
+ 	AT_GNU_annotation on the target die.
+ 
+ 2025-10-30  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (btf_add_used_type_1): Do not consider creating
+ 	fixups at typedefs.
+ 
+ 2025-10-30  Michal Jires  <mjires@suse.cz>
+ 
+ 	* lto-cgraph.cc (output_symtab): Remove asm_nodes_out.
+ 	* lto-streamer-out.cc (lto_output_toplevel_asms): Use
+ 	partitioning.
+ 	(create_order_remap): Remove asm_nodes_out.
+ 	(lto_output): In LGEN add asm_nodes into partition.
+ 	* lto-streamer.h (lto_output_toplevel_asms): Add encoder.
+ 
+ 2025-10-30  Michal Jires  <mjires@suse.cz>
+ 
+ 	* lto-cgraph.cc (compute_ltrans_boundary): Add asm_node.
+ 
+ 2025-10-30  Michal Jires  <mjires@suse.cz>
+ 
+ 	* ipa-icf.cc (sem_item_optimizer::write_summary): Use
+ 	toplevel_node.
+ 	(sem_item_optimizer::read_section): Likewise.
+ 	* ipa-modref.cc (modref_write): Likewise.
+ 	* ipa-prop.cc (ipa_write_return_summaries): Likewise.
+ 	(ipcp_write_transformation_summaries): Likewise.
+ 	* ipa-reference.cc (ipa_reference_write_optimization_summary):
+ 	Likewise.
+ 	* lto-cgraph.cc (lto_symtab_encoder_new): Likewise.
+ 	(lto_symtab_encoder_encode): Likewise.
+ 	(lto_symtab_encoder_delete_node): Likewise.
+ 	(lto_symtab_encoder_in_partition_p): Likewise.
+ 	(lto_set_symtab_encoder_in_partition): Likewise.
+ 	(output_refs): Likewise.
+ 	(compute_ltrans_boundary): Likewise.
+ 	(output_symtab): Likewise.
+ 	(output_cgraph_opt_summary): Likewise.
+ 	* lto-streamer-out.cc (lto_output): Likewise.
+ 	(produce_symtab): Likewise.
+ 	(produce_symtab_extension): Likewise.
+ 	* lto-streamer.h (struct lto_encoder_entry): Likewise.
+ 	(struct lto_symtab_encoder_d): Likewise.
+ 	(lto_symtab_encoder_encode): Likewise.
+ 	(lto_symtab_encoder_delete_node): Likewise.
+ 	(lto_symtab_encoder_in_partition_p): Likewise.
+ 	(lto_symtab_encoder_lookup): Likewise.
+ 	(lsei_next): Likewise.
+ 	(lsei_varpool_node): Likewise.
+ 
+ 2025-10-30  Michal Jires  <mjires@suse.cz>
+ 
+ 	* cgraph.h (enum symtab_type): Replace with toplevel_type.
+ 	(enum toplevel_type): New.
+ 	(struct toplevel_node): New.
+ 	(struct asm_node): Inherits from toplevel_node.
+ 	(test): New.
+ 	(symbol_table::finalize_toplevel_asm): Use constructor.
+ 	* coretypes.h (struct toplevel_node): New.
+ 	(struct asm_node): New.
+ 	* lto-streamer-in.cc (lto_input_toplevel_asms): Add
+ 	lto_file_data.
+ 
+ 2025-10-30  Michal Jires  <mjires@suse.cz>
+ 
+ 	* cgraph.cc (cgraph_node::release_body): Keep lto_file_data.
+ 	(cgraph_node::remove): likewise.
+ 	* lto-section-in.cc (lto_free_function_in_decl_state_for_node):
+ 	likewise.
+ 	* varpool.cc (varpool_node::remove): likewise.
+ 
+ 2025-10-30  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Clarification when the counted_by attribute is applied
+ 	on a void pointer.
+ 
+ 2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/116075
+ 	* fold-const-call.cc (fold_const_vec_shl_insert): New function.
+ 	(fold_const_call): Call fold_const_vec_shl_insert for CFN_VEC_SHL_INSERT.
+ 	* match.pd (`VEC_SHL_INSERT (dup (A), A)`): New pattern.
+ 
+ 2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122247
+ 	* tree-ssa-forwprop.cc (do_simple_agr_dse): Allow phi node for the usage
+ 	if the usage of the phi result is just the "same" as the original clobber.
+ 
+ 2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122247
+ 	* tree-ssa-forwprop.cc (do_simple_agr_dse): Allow
+ 	use to be a clobber of the same kind to the same lhs.
+ 
+ 2025-10-30  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-ssa-loop-niter.cc (shifted_range_nonzero_p): New
+ 	function.
+ 	(number_of_iterations_cltz): Call new function.
+ 	* tree-ssa-loop.cc (pass_scev_cprop::execute): Enable ranger.
+ 
+ 2025-10-30  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/122445
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl):
+ 	Scale AVL of subreg uses.
+ 
+ 2025-10-30  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	PR tree-optimization/122478
+ 	* match.pd: Fix the view_convert (BIT_FIELD_REF) pattern.
+ 
+ 2025-10-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Fix check during opts->x_ix86_move_max initialization.
+ 
+ 2025-10-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/121198
+ 	* lra-constraints.cc (process_alt_operands): Compute least upper
+ 	bound of all register classes over all required registers in
+ 	order to determine register class for a hard register constraint.
+ 
+ 2025-10-30  Richard Biener  <rguenther@suse.de>
+ 	    Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-vect-slp.cc (vect_get_operand_map): Handle commutative
+ 	operands when swapping is requested.
+ 	(vect_build_slp_tree_1): Allow STMT_VINFO_REDUC_IDX differences
+ 	when operand swapping makes them match and request swapping.
+ 	(vect_build_slp_instance): Indicate we have successfully
+ 	discovered a SLP reduction group.
+ 
+ 2025-10-30  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/116815
+ 	* config/i386/i386.md (ovf_add_cmp): New code attribute.
+ 	(udf_sub_cmp): Ditto.
+ 	(ovf_comm): New int iterator.
+ 	(*plus_within_<code><mode>3_<ovf_comm>): New insn and split pattern.
+ 	(*minus_within_<code><mode>3): Ditto.
+ 
+ 2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* gimple-fold.cc (gimple_fold_builtin_assume_aligned): Remove.
+ 	(gimple_fold_builtin): Don't fold __builtin_assume_aligned
+ 
+ 2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Revert:
+ 	2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/107389
+ 	PR tree-optimization/122086
+ 	* tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function.
+ 	(pass_forwprop::execute):  Use forwprop_may_propagate_copy
+ 	instead of may_propagate_copy.
+ 
+ 2025-10-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120687
+ 	* tree-vect-slp.cc (vect_optimize_slp_pass::is_compatible_layout):
+ 	New overload for checking a whole partition.
+ 	(vect_optimize_slp_pass::legitimize): New function trying
+ 	a single layout for all partitions for now.
+ 	(vect_optimize_slp_pass::run): Try legitimizing to a single
+ 	layout before propagating.
+ 	(vect_slp_analyze_operations): For dumping deal with
+ 	SLP_TREE_SCALAR_STMTS being empty or element zero being NULL.
+ 
+ 2025-10-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/122457
+ 	* config/i386/sse.md (VI2_AVX10_2): New mode iterator.
+ 	(usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX10_2
+ 	instead of VI2_AVX512F.
+ 	(udot_prod<sseunpackmodelower><mode>): Ditto.
+ 
+ 2025-10-30  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (fnma<mode>4): Remove.
+ 	* config/loongarch/lsx.md (fnma<mode>4): Remove.
+ 	* config/loongarch/simd.md (fnma<mode>4): Simplify and correct.
+ 
+ 2025-10-30  Jinyang He  <hejinyang@loongson.cn>
+ 	    Peng Fan  <fanpeng@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_conditional_move): Only allow valid binary
+ 	op when optimize conditional move.
+ 
+ 2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116662
+ 	* config/riscv/riscv.cc (riscv_option_override): Override
+ 	default value for destructive interference size.
+ 
+ 2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116662
+ 	* config/riscv/riscv.cc (riscv_option_override): Apply correct version
+ 	of the patch.
+ 
+ 2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116662
+ 	* config/riscv/riscv.cc (riscv_option_override): Apply correct version
+ 	of the patch.
+ 
+ 2025-10-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/116662
+ 	* config/riscv/riscv.cc (riscv_option_override): Override
+ 	default value for destructive interference size.
+ 
+ 2025-10-29  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/91191
+ 	* gimple-range-op.cc (gimple_range_op_handler): Descend one
+ 	operand lower for a VIEW_CONVERT_EXPR.
+ 	* range-op-mixed.h (class operator_view): New.
+ 	* range-op.cc (range_op_table): Add VIEW_CONVERT_EXPR case.
+ 	(operator_view::fold_range): New.
+ 	(operator_view::op1_range): New.
+ 	(operator_view::update_bitmask): New.
+ 
+ 2025-10-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Mark stmts in BB roots
+ 	as released after vect_build_slp_instance.
+ 	(vect_build_slp_instance): Release scalar_stmts when exiting
+ 	early.
+ 
+ 2025-10-29  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/122097
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_const_vector_bitimm_set_p): Add support for vector float.
+ 	(loongarch_const_vector_bitimm_clr_p): Likewise.
+ 	(loongarch_print_operand): Likewise.
+ 	* config/loongarch/simd.md (and<mode>3): Likewise.
+ 
+ 2025-10-29  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (xor<mode>3): Delete.
+ 	(ior<mode>3): Delete.
+ 	(and<mode>3): Delete.
+ 	* config/loongarch/lsx.md (xor<mode>3): Delete.
+ 	(ior<mode>3): Delete.
+ 	(and<mode>3): Delete.
+ 	* config/loongarch/simd.md (xor<mode>3): Define.
+ 	(ior<mode>3): Likewise.
+ 	(and<mode>3): Likewise.
+ 
+ 2025-10-29  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/loongarch.opt.in (-mbreak-code=):
+ 	New.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.md (trap): Separate to a
+ 	define_insn and a define_expand which takes la_break_code.
+ 	* doc/invoke.texi (-mbreak-code=): Document.
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 
+ 2025-10-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
+ 	Avoid explicit LOOP_VINFO_IV_EXIT reference.
+ 
+ 2025-10-28  Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	* match.pd: Add pattern to simplify view_convert (BIT_FIELD_REF).
+ 
+ 2025-10-28  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix error message
+ 	parameter order and add check_only condition.  Improve diagnostic
+ 	message formatting with proper quoting.
+ 	(riscv_handle_rvv_vls_cc_attribute): Anonymize unused node parameter.
+ 
+ 2025-10-28  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR tree-optimization/122065
+ 	* tree-vect-generic.cc (add_rshift): Update name and add code parameter.
+ 	(add_shift): Update name.
+ 	(expand_vector_mult): New lowering for MULT_EXPR.
+ 	(expand_vector_divmod): Use updated function name.
+ 	(expand_vector_operation): Use updated function name.
+ 
+ 2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* expr.cc (expr_has_boolean_range): New function.
+ 	(expand_expr_real_2): Use expr_has_boolean_range instead of
+ 	gimple_zero_one_valued_p.
+ 	* tree-ssanames.cc (ssa_name_has_boolean_range): Update to take
+ 	a gimple STMT.
+ 	* tree-ssanames.h (ssa_name_has_boolean_range): Update for the new
+ 	argument and default to nullptr.
+ 
+ 2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/105749
+ 	PR tree-optimization/80635
+ 	* match.pd (`VCE<bool>(zero_one_valued_p) ==\!= 0`): New pattern.
+ 
+ 2025-10-27  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/122408
+ 	* tree-vect-slp-patterns.cc (vect_validate_multiplication): Cleanup and
+ 	document interface.
+ 	(complex_mul_pattern::matches, complex_fms_pattern::matches): Update to
+ 	new interface.
+ 
+ 2025-10-27  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	PR tree-optimization/104116
+ 	* config/gcn/gcn-valu.md (abs<mode>2): New define_expand for
+ 	integer vector modes.
+ 
+ 2025-10-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/122325
+ 	* common.opt (flag_default_complex_method): Remove.
+ 	* opts.cc (init_options_struct): Default to fortran rules
+ 	for complex evaluations.
+ 	(finish_options): Remove (re-)instantiating of the frontend
+ 	default of the complex evaluation method.
+ 
+ 2025-10-27  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_init_cumulative_args): Add
+ 	bool parameter.
+ 	* config/riscv/riscv.h (enum riscv_cc): Add RISCV_CC_VLS_V_32,
+ 	RISCV_CC_VLS_V_64, RISCV_CC_VLS_V_128, RISCV_CC_VLS_V_256,
+ 	RISCV_CC_VLS_V_512, RISCV_CC_VLS_V_1024, RISCV_CC_VLS_V_2048,
+ 	RISCV_CC_VLS_V_4096, RISCV_CC_VLS_V_8192, RISCV_CC_VLS_V_16384.
+ 	(CUMULATIVE_ARGS): Add abi_vlen field.
+ 	* config/riscv/riscv.cc (riscv_handle_rvv_vls_cc_attribute): New
+ 	function.
+ 	(riscv_gnu_attributes): Add vls_cc attribute entry.
+ 	(riscv_attributes): Add riscv_vls_cc attribute entry.
+ 	(riscv_flatten_aggregate_field): Add vls_p and abi_vlen parameters
+ 	to handle VLS vector types.
+ 	(riscv_flatten_aggregate_argument): Update call to
+ 	riscv_flatten_aggregate_field.
+ 	(riscv_get_vector_arg): Add vls_p parameter for VLS handling.
+ 	(riscv_vls_cc_p): New function.
+ 	(riscv_get_cc_abi_vlen): New function.
+ 	(riscv_valid_abi_vlen_vls_cc_p): New function.
+ 	(riscv_get_riscv_cc_by_abi_vlen): New function.
+ 	(riscv_get_vls_container_type): New function.
+ 	(riscv_pass_vls_in_vr): New function.
+ 	(riscv_pass_aggregate_in_vr): New function.
+ 	(riscv_get_arg_info): Add VLS calling convention handling.
+ 	(riscv_function_arg_advance): Update for VLS calling convention.
+ 	(riscv_return_in_memory): Add fntype parameter and initialize
+ 	cumulative args properly.
+ 	(riscv_v_abi): Add abi parameter.
+ 	(riscv_get_vls_cc_attr): New function.
+ 	(riscv_vls_cc_function_abi): New function.
+ 	(riscv_fntype_abi): Add VLS calling convention detection.
+ 	(riscv_asm_output_variant_cc): Update for VLS calling convention.
+ 
+ 2025-10-27  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/64345
+ 	PR tree-optimization/80770
+ 	* config/riscv/bitmanip.md (<optab>_not_const<mode>): Turn into a
+ 	peephole2 to avoid matching prior to combine.
+ 	* ifcvt.cc (noce_try_sign_bit_splat): When costs are equal steer
+ 	towards an AND based sequence.
+ 
+ 2025-10-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122419
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Only
+ 	skip noop conversions.
+ 
+ 2025-10-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122435
+ 	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
+ 	Also match noop conversions when detecting redundant stores.
+ 
+ 2025-10-27  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_rtx_costs):
+ 	Ignore the cost impact of SIGN_EXTEND/ZERO_EXTEND.
+ 
+ 2025-10-27  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md (both_non_zero): New combiner.
+ 	(both_non_zero_subreg): Ditto.
+ 
+ 2025-10-27  Guo Jie  <guojie@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.md
+ 	(sign_extend_ashift<GPR:mode><SHORT:mode>): New combiner.
+ 
+ 2025-10-27  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* function-abi.h (NUM_ABI_IDS): Increase from 8 to 12.
+ 
+ 2025-10-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (one_cmplsi2):
+ 	Rearrange back as an expand pattern.
+ 
+ 2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/107389
+ 	PR tree-optimization/122086
+ 	* tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function.
+ 	(pass_forwprop::execute):  Use forwprop_may_propagate_copy
+ 	instead of may_propagate_copy.
+ 
+ 2025-10-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR target/122270
+ 	* config/riscv/riscv-vector-builtins-bases.cc (vset::fold): Use the
+ 	unshare_expr for the statement that will be added seperately rather
+ 	the one which will be used for the replacement.
+ 
+ 2025-10-26  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* doc/install.texi: Add libxml2 dependency for COBOL
+ 	library. Clarify 128-bit numeric dependency.
+ 
+ 2025-10-26  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* poly-int.h: Change struct poly_int to class poly_int.
+ 
+ 2025-10-26  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR target/119079
+ 	* config/i386/i386.md: Use `movsxd` to perform SI-to-DI extension in Intel
+ 	syntax.
+ 
+ 2025-10-26  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Append extend.
+ 
+ 2025-10-26  Osama Abdelkader  <osama.abdelkader@gmail.com>
+ 
+ 	* wide-int.h: Fix typo "accomodate" to "accommodate" in comment.
+ 	* value-range-storage.h: Likewise.
+ 	* tree-vectorizer.h (dr_set_safe_speculative_read_required):
+ 	Fix duplicate "the the" to "the" in comment.
+ 
+ 2025-10-25  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/extend.texi (nocf_check): Fix syntax errors in example.
+ 
+ 2025-10-25  Jiahao Xu  <xujiahao@loongson.cn>
+ 
+ 	* config/loongarch/lasx.md (vec_extract<mode><lasxhalf>): New define_expand.
+ 	(vec_extract_lo_<mode>): New define_insn_and_split.
+ 	(vec_extract_hi_<mode>): New define_insn.
+ 	* config/loongarch/loongarch-protos.h (loongarch_check_vect_par_cnst_half)
+ 	New function prototype.
+ 	* config/loongarch/loongarch.cc (loongarch_split_reduction):
+ 	Implement TARGET_VECTORIZE_SPLIT_REDUCTION.
+ 	(loongarch_check_vect_par_cnst_half): New function.
+ 	* config/loongarch/predicates.md
+ 	(vect_par_cnst_low_half): New predicate.
+ 	(vect_par_cnst_high_half): New predicate.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/114025
+ 	* gimple-range-fold.cc (fold_using_range::condexpr_adjust): Handle
+ 	the same ssa_name in the condition and the COND_EXPR better.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op.cc (operator_bitwise_and::wi_fold): Split signed
+ 	operations crossing zero into 2 operations.
+ 
+ 2025-10-24  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/118254
+ 	PR tree-optimization/114331
+ 	* range-op.cc (operator_cast::fold_range): When VARYING is
+ 	reached, update the bitmask if we reach VARYING.
+ 	(operator_cast::op1_range): For truncating casts, create a
+ 	bitmask bit in LHS.
+ 
+ 2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (call_internal, call_value_internal,
+ 	sibcall_internal, sibcall_value_internal): Remove 'n'-constraint.
+ 
+ 2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*addsubx, *subsi3_from_const,
+ 	*xtensa_clamps, *andsi3_const_pow2_minus_one,
+ 	*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
+ 	*splice_bits, extvsi_internal, extzvsi_internal,
+ 	*extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx, insvsi, *lsiu, *ssiu,
+ 	*lsip, *ssip, *shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1,
+ 	*shlrd_const, *shlrd_per_byte_omit_AND, *masktrue_const_bitcmpl,
+ 	*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
+ 	*masktrue_const_shifted_mask, call_internal, call_value_internal,
+ 	sibcall_internal, sibcall_value_internal, entry,
+ 	*eqne_zero_masked_bits, *eqne_in_range): Remove 'i'-constraint.
+ 
+ 2025-10-24  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	PR middle-end/122392
+ 	* attr-callback.cc (callback_build_attr): Remove erroneous
+ 	annotation.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): SLP-ify reduction
+ 	operation processing a bit more.
+ 
+ 2025-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122406
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Create
+ 	the SLP nodes for the conversions around the reduction
+ 	operation if required.
+ 
+ 2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR fortran/121452
+ 	* omp-low.cc (check_omp_nesting_restrictions): Accept an
+ 	OMP_STRUCTURED_BLOCK in a collapsed simd region and in an ordered loop.
+ 
+ 2025-10-24  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* match.pd: Fold VEC_PERM_EXPR chains implementing vector
+ 	concat-and-extract.
+ 
+ 2025-10-24  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (SET_CMODEL): Undefine before
+ 	(re)defining.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Better handling
+ 	of `((signed)x) < 0`.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/101024
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Special
+ 	case fp `a CMP b ? a : b` when not creating a min/max.
+ 	(strip_bit_not): Remove.
+ 	(invert_minmax_code): Remove.
+ 	(minmax_replacement): Remove.
+ 	(pass_phiopt::execute): Update pass comment.
+ 	Don't call minmax_replacement.
+ 
+ 2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/101024
+ 	* fold-const.cc (minmax_from_comparison): New version that takes widest_int
+ 	instead of tree.
+ 	(minmax_from_comparison):  Call minmax_from_comparison for integer cst case.
+ 	* fold-const.h (minmax_from_comparison): New declaration.
+ 	* match.pd (`((signed)a </>= 0) ? min/max (a, c) : b`): New pattern.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add
+ 	__HAVE_FUNCTION_MULTI_VERSIONING macro.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (dispatch_function_versions): Remove
+ 	unnecessary sorting and data structure.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/122190
+ 	* config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules.
+ 
+ 2025-10-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
+ 	Dump function versions and the ordering.
+ 
+ 2025-10-23  zhaozhou  <zhaozhou@loongson.cn>
+ 
+ 	* match.pd: Add new pattern for round.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_loop_vec_info::slp_unrolling_factor): Remove.
+ 	(LOOP_VINFO_SLP_UNROLLING_FACTOR): Likewise.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Adjust.
+ 	(vect_analyze_loop_2): Likewise.
+ 	* tree-vect-slp.cc (vect_make_slp_decision): Set
+ 	LOOP_VINFO_VECT_FACTOR directly.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Move vect_optimize_slp
+ 	after applying suggested_unroll_factor.
+ 
+ 2025-10-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Deal with NULL
+ 	element in SLP_TREE_SCALAR_STMTS.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/101639
+ 	* config/i386/sse.md
+ 	(VI_AVX): New mode iterator.
+ 	(VI_AVX_CMP): Ditto.
+ 	(ssebytemode): Add V16HI, V32QI, V16QI.
+ 	(reduc_sbool_and_scal_<mode>): New expander.
+ 	(reduc_sbool_ior_scal_<mode>): Ditto.
+ 	(reduc_sbool_xor_scal_<mode>): Ditto.
+ 	(*eq<mode>3_2_negate): New pre_reload splitter.
+ 	(*ptest<mode>_ccz): Ditto.
+ 
+ 2025-10-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/101639
+ 	* config/i386/sse.md
+ 	(reduc_sbool_and_scal_<mode>): New expander.
+ 	(reduc_sbool_ior_scal_<mode>): Ditto.
+ 	(reduc_sbool_xor_scal_<mode>): Ditto.
+ 
+ 2025-10-22  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
+ 	HOST_WIDE_INT_0U and HOST_WIDE_INT_M1U to initialize unsigned
+ 	HOST_WIDE_INT.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): Use SVE if
+ 	available.
+ 	* config/aarch64/aarch64-sve.md (*cmp<cmp_op><mode>_ptest): Rename ...
+ 	(@aarch64_pred_cmp<cmp_op><mode>_ptest): ... To this.
+ 	(reduc_sbool_xor_scal_<mode>): Rename ...
+ 	(@reduc_sbool_xor_scal_<mode>): ... To this.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.
+ 	* config/aarch64/iterators.md (VALLI): New.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (reduc_sbool_and_scal_<mode>,
+ 	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.
+ 
+ 2025-10-22  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Don't always require
+ 	IFN_VEC_SHL_INSERT when using reduc sbool optabs.
+ 
+ 2025-10-22  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt.urls: Regenerate.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122364
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Re-try
+ 	linearization on a conversion source.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122370
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Also update compute_vectype when demoting masks to an
+ 	integer vector.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122371
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Get
+ 	to the scalar def to replace via the scalar PHI backedge def.
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Do not
+ 	re-associate to for a reduction chain if a fold-left
+ 	reduction is required.
+ 
+ 2025-10-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122365
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Convert all inputs.  Use the proper vector element sizes
+ 	for the elementwise reduction.
+ 
+ 2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Nova Lake.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Add Nova Lake.
+ 	(processor_alias_table): Ditto.
+ 	* common/config/i386/i386-cpuinfo.h (enum processor_types):
+ 	Add INTEL_COREI7_NOVALAKE.
+ 	* config.gcc: Add -march=novalake.
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
+ 	novalake.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
+ 	* config/i386/i386-options.cc (processor_cost_table): Ditto.
+ 	(m_NOVALAKE): New.
+ 	(m_CORE_HYBRID): Add novalake.
+ 	* config/i386/i386.h (enum processor_type): Ditto.
+ 	* doc/extend.texi: Ditto.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Correct
+ 	the logic for unknown model number cpu guess value.
+ 
+ 2025-10-22  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/122320
+ 	* config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): New define_insn_and_split.
+ 
+ 2025-10-22  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* config/i386/i386-jit.cc: Mark new float types as supported.
+ 
+ 2025-10-21  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* config.gcc (jit_target_objs): Don't set this variable since
+ 	the object files don't exist.
+ 
+ 2025-10-21  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	* config/i386/i386-features.cc (timode_concatdi_p): New
+ 	function to recognize the various variants of *concatditi3_[1-7].
+ 	(scalar_chain::add_insn): Like VEC_SELECT, ZERO_EXTEND and
+ 	timode_concatdi_p instructions don't require their input
+ 	operands to be converted (to TImode).
+ 	(timode_scalar_chain::compute_convert_gain): Split/clone XOR and
+ 	IOR cases from AND case, to handle timode_concatdi_p costs.
+ 	<case PLUS>: Handle timode_concatdi_p conversion costs.
+ 	<case ZERO_EXTEND>: Provide costs of DImode to TImode extension.
+ 	(timode_convert_concatdi): Helper function to transform
+ 	a *concatditi3 instruction into a vec_concatv2di instruction.
+ 	(timode_scalar_chain::convert_insn): Split/clone XOR and IOR
+ 	cases from ANS case, to handle timode_concatdi_p using the new
+ 	timode_convert_concatdi helper function.
+ 	<case ZERO_EXTEND>: Convert zero_extendditi2 to *vec_concatv2di_0.
+ 	<case PLUS>: Handle timode_concatdi_p using the new
+ 	timode_convert_concatdi helper function.
+ 	(timode_scalar_to_vector_candidate_p): Support timode_concatdi_p
+ 	instructions in IOR, XOR and PLUS cases.
+ 	<case ZERO_EXTEND>: Consider zero extension of a register from
+ 	DImode to TImode to be a candidate.
+ 
+ 2025-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120687
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): When
+ 	there's no natural reduction chain see if vect_slp_linearize_chain
+ 	can recover one and built the SLP instance manually in that
+ 	case.
+ 	(vect_schedule_slp): Deal with NULL lanes when looking for
+ 	stores to remove.
+ 	* tree-vect-loop.cc (vect_transform_cycle_phi): Dump when we
+ 	are successfully transforming a reduction chain.
+ 
+ 2025-10-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_partial_epilog): Pun back
+ 	to the requested type if necessary.
+ 
+ 2025-10-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/95699
+ 	PR tree-optimization/101024
+ 	PR tree-optimization/110068
+ 	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Treat
+ 	`(signed)x </>= 0` as `x >=/< SIGNED_TYPE_MIN`
+ 
+ 2025-10-21  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT):
+ 	Redefine.
+ 
+ 2025-10-21  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC):
+ 	Remove guard on -fself-tests and replace %:getenv(VSB_DIR) by
+ 	sysroot references.
+ 
+ 2025-10-20  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* ipa-fnsummary.cc (redirect_to_unreachable): Purge callback
+ 	edges when redirecting the carrying edge.
+ 	(analyze_function_body): Fix typo.
+ 
+ 2025-10-20  Svante Signell  <svante.signell@gmail.com>
+ 
+ 	PR go/104290
+ 	* config/gnu.h (OPTION_GLIBC_P, OPTION_GLIBC): Define.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/constraints.md (R, U):
+ 	Change define_memory_constraint to define_special_memory_constraint.
+ 	* config/xtensa/xtensa.md
+ 	(movsi_internal, movhi_internal, movqi_internal):
+ 	Rearrange their alternatives in the order of constant assignment, register-
+ 	register move, load, store and special.  And also consolidate overlapping
+ 	alternatives.
+ 	(movsf_internal): Rearrange the alternatives as above, and remove the '^'
+ 	alternative character which is no longer needed.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(constantsynth_method_const16): New.
+ 	(constantsynth_methods): Append constantsynth_method_const16().
+ 	(constantsynth_info): Add cost calculation for full-word constant
+ 	assignment when TARGET_CONST16 is enabled.
+ 	(constantsynth_pass1): Change it so that it works regardless of
+ 	TARGET_CONST16.
+ 	* config/xtensa/xtensa.md (*xtensa_const16): New.
+ 
+ 2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (do_largeconst):
+ 	Change split_DI_SF_DF_const() to be called unconditionally.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config.gcc (powerpc*-wrs-vxworks7r*): Add linux-protos.h
+ 	to tm_p_file.
+ 
+ 2025-10-20  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Only
+ 	builtin_define TOOL and TOOL_FAMILY for !TARGET_VXWORKS7.
+ 	Augment comment on VXWORKS_PERSONALITY.
+ 	* config/vxworks/vxworks-predef.h: Infer TOOL and TOOL_FAMILY
+ 	from the VSB autoconf.h	when we have one, determined by the presence
+ 	of a _VSB_CONFIG_FILE definition.
+ 
+ 2025-10-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro.
+ 	* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p):
+ 	Add feature check condition.
+ 	(aarch64_retrieve_sysreg): Likewise.
+ 	* config/aarch64/aarch64.opt (menable-sysreg-checking):
+ 	Define new flag.
+ 	* doc/invoke.texi (menable-sysreg-checking): Document new flag.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121631
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	When the reduction operation invokes UB on signed overflow
+ 	make sure to perform operations with it on an unsigned type.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/101639
+ 	PR tree-optimization/103495
+ 	* tree-vectorizer.h (vect_reduc_info_s): Add reduc_type_for_mask.
+ 	(VECT_REDUC_INFO_VECTYPE_FOR_MASK): New.
+ 	* tree-vect-patterns.cc (vect_determine_mask_precision):
+ 	Return whether the mask precision changed.
+ 	(vect_determine_precisions): Iterate mask precision computation
+ 	for loop vectorization.
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction): Properly
+ 	convert non-mask initial values to a mask initial def for
+ 	the reduction.
+ 	(sbool_reduction_fn_for_fn): New function.
+ 	(vect_create_epilog_for_reduction): For a mask input convert
+ 	it to the vector type analysis decided to use.  Use a regular
+ 	conversion for the final convert to the scalar code type.
+ 	(vectorizable_reduction): Support mask reductions.  Verify
+ 	we can compute a data vector from the mask result or a direct
+ 	maks reduction is provided by the target.
+ 
+ 2025-10-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/md.texi (reduc_sbool_{and,ior,xor}_scal_<mode>): Document.
+ 	* optabs.def (reduc_sbool_and_scal_optab,
+ 	reduc_sbool_ior_scal_optab, reduc_sbool_xor_scal_optab): New.
+ 	* internal-fn.def (REDUC_SBOOL_AND, REDUC_SBOOL_IOR,
+ 	REDUC_SBOO_XOR): Likewise.
+ 	* internal-fn.cc (reduc_sbool_direct): New initializer.
+ 	(expand_reduc_sbool_optab_fn): New expander.
+ 	(direct_reduc_sbool_optab_supported_p): New.
+ 
+ 2025-10-20  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/99930
+ 	PR target/122323
+ 	* config/i386/i386-expand.cc (ix86_expand_copysign): Swap
+ 	operands[1] with operands[2].  Optimize copysign (x, const_double)
+ 	instead of copysign (const_double, x).
+ 	* config/i386/i386.md (copysign<mode>3): Swap constraints for
+ 	operands[1] and operands[2].
+ 
+ 2025-10-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): Also
+ 	handle PLUS.
+ 	* config/avr/avr.md (pixaop): New code iterator for PLUS,
+ 	IOR, XOR, AND.
+ 	(nzb=1 insns): Use pixaop instead of bitop code iterator.
+ 	Handle PLUS in outputs.
+ 
+ 2025-10-18  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/119060
+ 	* builtins.cc (expand_builtin): Handle BUILT_IN_OBSERVABLE_CHKPT.
+ 	* builtins.def (BUILT_IN_OBSERVABLE_CHKPT): New.
+ 	* tree.cc (build_common_builtin_nodes): Build observable
+ 	checkpoint builtin.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/aarch64/aarch64-sve2.md
+ 	(widen_ssum<mode><Vnarrow>3): Update.
+ 	(widen_usum<mode><Vnarrow>3): Update.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/aarch64/aarch64-sve2.md: (widen_ssum<mode><Vnarrow>3): New.
+ 	(widen_usum<mode><Vnarrow>3): New.
+ 	* config/aarch64/iterators.md (Vnarrow): New, to match VNARROW.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/aarch64/aarch64-sve.md (widen_<sur>sum<mode><vsi2qi>3): New.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/rs6000/altivec.md (widen_usum<mode>3): Rename ...
+ 	(widen_usumv4si<mode>3): ... to this.
+ 	(widen_ssumv16qi3): Rename ...
+ 	(widen_ssumv4siv16qi3): ... to this.
+ 	(widen_ssumv8hi3): Rename ...
+ 	(widen_ssumv4siv8hi3): ... to this.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/ia64/vect.md (widen_usumv8qi3): Renamed ...
+ 	(widen_usumv4hiv8qi3): ... into this.
+ 	(widen_usumv4hi3): Renamed ...
+ 	(widen_usumv2siv4hi3): ... into this.
+ 	(widen_ssumv8qi3): Renamed ...
+ 	(widen_ssumv4hiv8qi3): ... into this.
+ 	(widen_ssumv4hi3): Renamed ...
+ 	(widen_ssumv2siv4hi3): ... into this.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/arm/iterators.md (v_double_width): New, matching
+ 	V_double_width.
+ 	* config/arm/neon.md (widen_ssum<mode>3): Renamed ...
+ 	(widen_ssum<v_double_width><mode>3, widen_ssum<V_widen_l><mode>3): ...
+ 	into these.
+ 	(widen_usum<mode>3): Renamed ...
+ 	(widen_usum<v_double_width><mode>3, widen_usum<V_widen_l><mode>3): ...
+ 	into these.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/aarch64/aarch64-simd.md (widen_ssum<mode><vsi2qi>3): New.
+ 	(widen_usum<mode><vsi2qi>3): New.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* config/aarch64/aarch64-simd.md (widen_ssum<mode>3): Change into..
+ 	(widen_ssum<Vdblw><mode>3, widen_ssum<Vwide><mode>3): ... these.
+ 	(widen_usum<mode>3): Change into ...
+ 	(widen_usum<Vdblw><mode>3, widen_usum<Vwide><mode>3): ... these.
+ 	* config/aarch64/iterators.md (Vdblw): New.
+ 	(Vwide): Extend to match VWIDE.
+ 
+ 2025-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR middle-end/122069
+ 	* doc/md.texi (widen_ssum@var{n}@var{m}3, widen_usum@var{n}@var{m}3):
+ 	Update docs.
+ 	* optabs.cc (expand_widen_pattern_expr): Add WIDEN_SUM_EXPR as widening.
+ 	* optabs.def (ssum_widen_optab, usum_widen_optab): Convert from direct
+ 	to a conversion optab.
+ 	* tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Change
+ 	vect_supportable_direct_optab_p into vect_supportable_conv_optab_p.
+ 
+ 2025-10-18  Linsen Zhou  <i@lin.moe>
+ 
+ 	PR tree-optimization/122012
+ 	* tree-object-size.cc (check_for_plus_in_loops): Skip check
+ 	for the variable offset
+ 
+ 2025-10-17  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/122139
+ 	* config/bpf/bpf.cc (bpf_expand_setmem): Duplicate byte value
+ 	across to new mode when using larger modes for store.
+ 
+ 2025-10-17  Tamar Christina  <tamar.christina@arm.com>
+ 	    Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/121604
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
+ 	Store gp_index.
+ 	(struct pmov_to_vector_lane_def): Mark instruction as has no GP.
+ 	* config/aarch64/aarch64-sve-builtins.h (function_instance::gp_value,
+ 	function_instance::inactive_values, function_instance::gp_index,
+ 	function_shape::has_gp_argument_p): New.
+ 	* config/aarch64/aarch64-sve-builtins.cc (gimple_folder::fold_pfalse):
+ 	Simplify code and use GP helpers.
+ 
+ 2025-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122308
+ 	* gimple-loop-jam.cc (tree_loop_unroll_and_jam): Do LIM
+ 	after applying unroll-and-jam.
+ 
+ 2025-10-17  Josef Melcr  <jmelcr02@gmail.com>
+ 
+ 	* Makefile.in: Add attr-callback.o to OBJS.
+ 	* builtin-attrs.def (ATTR_CALLBACK): Callback attr identifier.
+ 	(DEF_CALLBACK_ATTRIBUTE): Macro for callback attr creation.
+ 	(GOMP): Attr for libgomp functions.
+ 	(ATTR_CALLBACK_GOMP_LIST): ATTR_NOTHROW_LIST with GOMP callback
+ 	attr added.
+ 	* cgraph.cc (cgraph_add_edge_to_call_site_hash): Always hash the
+ 	callback-carrying edge.
+ 	(cgraph_node::get_edge): Always return the callback-carrying
+ 	edge.
+ 	(cgraph_edge::set_call_stmt): Add cascade for callback edges.
+ 	(symbol_table::create_edge): Allow callback edges to share call
+ 	stmts, initialize new flags.
+ 	(cgraph_edge::make_callback): New method, derives a new callback
+ 	edge.
+ 	(cgraph_edge::get_callback_carrying_edge): New method.
+ 	(cgraph_edge::first_callback_edge): Likewise.
+ 	(cgraph_edge::next_callback_edge): Likewise.
+ 	(cgraph_edge::purge_callback_edges): Likewise.
+ 	(cgraph_edge::redirect_callee): When redirecting a callback
+ 	edge, redirect its ref as well.
+ 	(cgraph_edge::redirect_call_stmt_to_callee): Add callback edge
+ 	redirection logic, set update_derived_edges to true hwne
+ 	redirecting the carrying edge.
+ 	(cgraph_node::remove_callers): Add cascade for callback edges.
+ 	(cgraph_edge::dump_edge_flags): Print callback flags.
+ 	(cgraph_node::verify_node): Add sanity checks for callback
+ 	edges.
+ 	* cgraph.h: Add new 1 bit flags and 16 bit callback_id to
+ 	cgraph_edge class.
+ 	* cgraphclones.cc (cgraph_edge::clone): Copy over callback data.
+ 	* cif-code.def (CALLBACK_EDGE): Add CIF_CALLBACK_EDGE code.
+ 	* ipa-cp.cc (purge_useless_callback_edges): New function,
+ 	deletes callback edges when necessary.
+ 	(ipcp_decision_stage): Call purge_useless_callback_edges.
+ 	* ipa-fnsummary.cc (ipa_call_summary_t::duplicate): Add
+ 	an exception for callback edges.
+ 	(analyze_function_body): Copy over summary from carrying to
+ 	callback edge.
+ 	* ipa-inline-analysis.cc (do_estimate_growth_1): Skip callback
+ 	edges when estimating growth.
+ 	* ipa-inline-transform.cc (inline_transform): Add redirection
+ 	cascade for callback edges.
+ 	* ipa-param-manipulation.cc
+ 	(drop_decl_attribute_if_params_changed_p): New function.
+ 	(ipa_param_adjustments::build_new_function_type): Add
+ 	args_modified out param.
+ 	(ipa_param_adjustments::adjust_decl): Drop callback attrs when
+ 	modifying args.
+ 	* ipa-param-manipulation.h: Adjust decl of
+ 	build_new_function_type.
+ 	* ipa-prop.cc (ipa_duplicate_jump_function): Add decl.
+ 	(init_callback_edge_summary): New function.
+ 	(ipa_compute_jump_functions_for_edge): Add callback edge
+ 	creation logic.
+ 	* lto-cgraph.cc (lto_output_edge): Stream out callback data.
+ 	(input_edge): Input callback data.
+ 	* omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC): Use new
+ 	attr list.
+ 	(BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED): Likewise.
+ 	(BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC): Likewise.
+ 	(BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME): Likewise.
+ 	(BUILT_IN_GOMP_PARALLEL): Likewise.
+ 	(BUILT_IN_GOMP_PARALLEL_SECTIONS): Likewise.
+ 	(BUILT_IN_GOMP_TEAMS_REG): Likewise.
+ 	* tree-core.h (ECF_CB_1_2): New constant for callback(1,2).
+ 	* tree-inline.cc (copy_bb): Copy callback edges when copying the
+ 	carrying edge.
+ 	(redirect_all_calls): Redirect callback edges.
+ 	* tree.cc (set_call_expr_flags): Create callback attr according
+ 	to the ECF_CB flag.
+ 	* attr-callback.cc: New file.
+ 	* attr-callback.h: New file.
+ 
+ 2025-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122301
+ 	* tree-vect-patterns.cc (vect_recog_over_widening_pattern):
+ 	Fix reduction guard.
+ 	(vect_mark_pattern_stmts): Fix reduction def check.
+ 
+ 2025-10-17  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR tree-optimization/104116
+ 	* tree-vect-patterns.cc (add_code_for_floorceilround_divmod): patt recog
+ 	for {FLOOR,ROUND,CEIL}_{DIV,MOD}_EXPR.
+ 	(vect_recog_divmod_pattern): Call add_code_for_floorceilround_divmod
+ 	after computing div/mod for each control path.
+ 
+ 2025-10-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122296
+ 	* match.pd (`(a != b) | ((a|b) != 0)`): Reuse both
+ 	the ior and zero instead of recreating them.
+ 	(`(a == b) & ((a|b) == 0)`): Likewise
+ 
+ 2025-10-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122296
+ 	* match.pd (`(a == b) | ((a|b) != 0)`): Fix true value.
+ 
+ 2025-10-17  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/122119
+ 	* config/i386/amxmovrsintrin.h
+ 	(_tile_loaddrs_internal): Use __PTRDIFF_TYPE__ instead of long.
+ 	(_tile_loaddrst1_internal): Ditto.
+ 
+ 2025-10-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	custom-sarif-properties/digraphs.o and
+ 	custom-sarif-properties/state-graphs.o.  Remove
+ 	diagnostics/state-graphs.o.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add custom-sarif-properties to subdir iteration.
+ 	* custom-sarif-properties/digraphs.cc: New file.
+ 	* custom-sarif-properties/digraphs.h: New file.
+ 	* custom-sarif-properties/state-graphs.cc: New file.
+ 	* custom-sarif-properties/state-graphs.h: New file.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
+ 	Delete decl.
+ 	* diagnostics/digraphs.cc: Include
+ 	"custom-sarif-properties/digraphs.h".  Move include of
+ 	"selftest.h" to within CHECKING_P section.
+ 	(using digraph_object): New.
+ 	(namespace properties): New.
+ 	(diagnostics::digraphs::object::get_attr): Delete.
+ 	(diagnostics::digraphs::object::set_attr): Delete.
+ 	(diagnostics::digraphs::object::set_json_attr): Delete.
+ 	(digraph_object::get_property): New definitions, for various
+ 	property types.
+ 	(digraph_object::set_property): Likewise.
+ 	(digraph_object::maybe_get_property): New.
+ 	(digraph_object::get_property_as_tristate): New.
+ 	(digraph_object::ensure_property_bag): New.
+ 	(digraph::get_graph_kind): New.
+ 	(digraph::set_graph_kind): New.
+ 	Add include of "custom-sarif-properties/state-graphs.h".
+ 	(selftest::test_simple_graph): Rewrite to use json::property
+ 	instances rather than string attribute names.
+ 	(selftest::test_property_objects): New test.
+ 	(selftest::digraphs_cc_tests): Call it.
+ 	* diagnostics/digraphs.h: Include "tristate.h".
+ 	(object::get_attr): Delete.
+ 	(object::set_attr): Delete.
+ 	(object::get_property): New decls.
+ 	(object::set_property): New decls.
+ 	(object::maybe_get_property): New.
+ 	(object::get_property_as_tristate): New.
+ 	(object::set_json_attr): Delete.
+ 	(object::ensure_property_bag): New.
+ 	(graph::get_graph_kind): New.
+ 	(graph::set_graph_kind): New.
+ 	* diagnostics/html-sink.cc
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renamings.
+ 	(html_generation_options::dump): Likewise.
+ 	(html_builder::maybe_make_state_diagram): Likewise.
+ 	(html_builder::add_graph): Show SARIF and .dot src inline, if
+ 	requested.
+ 	* diagnostics/html-sink.h
+ 	(html_generation_options::m_show_state_diagrams_sarif): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagrams_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_dot_src0): ...this.
+ 	* diagnostics/output-spec.cc
+ 	(html_scheme_handler::maybe_handle_kv): Rename keys.
+ 	(html_scheme_handler::get_keys): Likewise.
+ 	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
+ 	use json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* diagnostics/state-graphs.cc: Deleted file.
+ 	* diagnostics/state-graphs.h: Delete almost all, except decl of
+ 	diagnostics::state_graphs::make_dot_graph.
+ 	* doc/invoke.texi: Update for changes to "experimental-html" sink
+ 	keys.
+ 	* json.cc (json::object::set_string): New.
+ 	(json::object::set_integer): New.
+ 	(json::object::set_bool): New.
+ 	(json::object::set_array_of_string): New.
+ 	* json.h: Include "label-text.h".
+ 	(struct json::property): New template.
+ 	(json::string_property): New.
+ 	(json::integer_property): New.
+ 	(json::bool_property): New.
+ 	(json::json_property): New.
+ 	(using json::array_of_string_property): New.
+ 	(struct json::enum_traits): New.
+ 	(enum_json::property): New.
+ 	(json::value::dyn_cast_array): New vfunc.
+ 	(json::value::dyn_cast_integer_number): New vfunc.
+ 	(json::value::set_string): New.
+ 	(json::value::set_integer): New.
+ 	(json::value::set_bool): New.
+ 	(json::value::set_array_of_string): New.
+ 	(json::value::maybe_get_enum): New.
+ 	(json::value::set_enum): New.
+ 	(json::array::dyn_cast_array): New.
+ 	(json::integer_number::dyn_cast_integer_number): New.
+ 	(object::maybe_get_enum): New.
+ 	(object::set_enum): New.
+ 
+ 2025-10-16  Ayappan Perumal  <ayappap2@in.ibm.com>
+ 
+ 	* config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS):
+ 	Error out when stack-protector option is used in AIX
+ 	as it is not supported on AIX
+ 	Approved By: Segher Boessenkool <segher@kernel.crashing.org>
+ 
+ 2025-10-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122292
+ 	* tree-vect-loop.cc (vect_transform_reduction): Compute the
+ 	input vector type the same way the analysis phase does.
+ 
+ 2025-10-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/121468
+ 	PR tree-optimization/121206
+ 	PR tree-optimization/122200
+ 	* value-range.cc (irange_bitmask::range_from_mask): New.
+ 	(irange::snap): Add explicit overflow flag.
+ 	(irange::snap_subranges): Use overflow flag.
+ 	(irange::set_range_from_bitmask): Use range_from_mask.
+ 	(test_irange_snap_bounds): Adjust for improved ranges.
+ 	* value-range.h (irange::range_from_mask): Add prototype.
+ 	(irange::snap): Adjust prototype.
+ 
+ 2025-10-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-devices.def (gfx942, gfx950): Set generic name
+ 	to GFX9_4_GENERIC.
+ 	* config/gcn/t-omp-device: Include generic names for OpenMP's
+ 	ISA trait.
+ 
+ 2025-10-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* print-tree.cc (print_node): Print out clique/base
+ 	for MEM_REF and TARGET_MEM_REF.
+ 
+ 2025-10-15  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/118460
+ 	* config/arm/arm.cc (arm_canonicalize_comparison): For floating-
+ 	point comparisons, swap the operand order if that will be more
+ 	likely to produce a comparison that can be used with VSEL.
+ 	(arm_validize_comparison): Make sure that HFmode comparisons
+ 	are compatible with VSEL.
+ 
+ 2025-10-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122037
+ 	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
+ 	__builtin_stack_save when the lhs is unused.
+ 
+ 2025-10-15  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ 	* config/aarch64/aarch64.cc (F_ARCHEXT): Delete flag.
+ 	* config/aarch64/aarch64.h
+ 	(AARCH64_FL_AMU): Delete unused macro.
+ 	(AARCH64_FL_SCXTNUM): Ditto.
+ 	(AARCH64_FL_ID_PFR2): Ditto.
+ 	(AARCH64_FL_AIE): Ditto.
+ 	(AARCH64_FL_DEBUGv8p9): Ditto.
+ 	(AARCH64_FL_FGT2): Ditto.
+ 	(AARCH64_FL_PFAR): Ditto.
+ 	(AARCH64_FL_PMUv3_ICNTR): Ditto.
+ 	(AARCH64_FL_PMUv3_SS): Ditto.
+ 	(AARCH64_FL_PMUv3p9): Ditto.
+ 	(AARCH64_FL_S1PIE): Ditto.
+ 	(AARCH64_FL_S1POE): Ditto.
+ 	(AARCH64_FL_S2PIE): Ditto.
+ 	(AARCH64_FL_S2POE): Ditto.
+ 	(AARCH64_FL_SCTLR2): Ditto.
+ 	(AARCH64_FL_SEBEP): Ditto.
+ 	(AARCH64_FL_SPE_FDS): Ditto.
+ 	(AARCH64_FL_TCR2): Ditto.
+ 
+ 2025-10-15  Sebastian Pop  <spop@nvidia.com>
+ 
+ 	* doc/invoke.texi (ftree-parallelize-loops): Update.
+ 	* common.opt (ftree-parallelize-loops): Add alias that maps to
+ 	special value INT_MAX for runtime thread detection.
+ 	* tree-parloops.cc (create_parallel_loop): Use INT_MAX for runtime
+ 	detection.  Call gimple_build_omp_parallel without building a
+ 	OMP_CLAUSE_NUM_THREADS clause.
+ 	(gen_parallel_loop): For auto-detection, use a conservative
+ 	estimate of 2 threads.
+ 	(parallelize_loops): Same.
+ 
+ 2025-10-15  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122189
+ 	* config/arm/iterators.md (VxCIQ_carry, VxCIQ_M_carry, VxCQ_carry)
+ 	(VxCQ_M_carry): New iterators.
+ 	* config/arm/mve.md (get_fpscr_nzcvqc, set_fpscr_nzcvqc): Use
+ 	unspec instead of unspec_volatile.
+ 	(vadciq, vadciq_m, vadcq, vadcq_m): Use vfpcc in operation.  Use a
+ 	different unspec code for carry calcultation.
+ 	* config/arm/unspecs.md (VADCQ_U_carry, VADCQ_M_U_carry)
+ 	(VADCQ_S_carry, VADCQ_M_S_carry, VSBCIQ_U_carry ,VSBCIQ_S_carry
+ 	,VSBCIQ_M_U_carry ,VSBCIQ_M_S_carry ,VSBCQ_U_carry ,VSBCQ_S_carry
+ 	,VSBCQ_M_U_carry ,VSBCQ_M_S_carry ,VADCIQ_U_carry
+ 	,VADCIQ_M_U_carry ,VADCIQ_S_carry ,VADCIQ_M_S_carry): New unspec
+ 	codes.
+ 
+ 2025-10-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/122266
+ 	* combine.cc (struct reg_stat_type): Change types of sign_bit_copies
+ 	and last_set_sign_bit_copies to unsigned short, to avoid overflows
+ 	on TImode (and wider) values.
+ 
+ 2025-10-15  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (scale_bb_profile): Use
+ 	profile_count::max_prefer_initialized.
+ 	(afdo_adjust_guessed_profile): Likewise.
+ 	* bb-reorder.cc (edge_order): Do not use max.
+ 	* cfghooks.cc (merge_blocks): Likewise.
+ 	* ipa-fnsummary.cc (param_change_prob): Likewise.
+ 	* ipa-inline-transform.cc (inline_transform): Likewise.
+ 	* predict.cc (update_max_bb_count): Likewise.
+ 	(estimate_bb_frequencies): Likewise.
+ 	(rebuild_frequencies): Likewise.
+ 	* tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Likewise.
+ 	* profile-count.h (profile_count::max): Rename to
+ 	(profile_count::max_prefer_initialized): this; update handling
+ 	of qualities.
+ 
+ 2025-10-15  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_intel_cpu): Handle Wildcat Lake.
+ 	* common/config/i386/i386-common.cc (processor_name):
+ 	Add Wildcat Lake.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-10-15  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h
+ 	(PTA_PANTHERLAKE): Remove PREFETCHI.
+ 	(PTA_DIAMONDRAPIDS): Remove USER_MSR.
+ 	* doc/invoke.texi: Correct documentation.
+ 
+ 2025-10-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Take concrete op instead
+ 	of any_widen_binop for vwaddu/vwsubu wx combine.
+ 
+ 2025-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (REDUC_GROUP_FIRST_ELEMENT,
+ 	REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Remove.
+ 	* tree-vect-slp.cc (REDUC_GROUP_FIRST_ELEMENT): Re-instantiate
+ 	here.
+ 
+ 2025-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduction): Move
+ 	reduction chain discovery ...
+ 	(vect_analyze_slp_reduc_chain): ... here.
+ 
+ 2025-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Move
+ 	bitsize compute down to where it is used and consistently
+ 	use vectype1 for element extraction.
+ 
+ 2025-10-14  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/121949
+ 	* tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern): Remove
+ 	restriction on internal_def.
+ 
+ 2025-10-14  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-stmts.cc (get_load_store_type): Add load-permutation
+ 	checks and setting of slp_perm.
+ 	(vectorizable_store): Remove perm_ok argument.
+ 	(vectorizable_load): Ditto and replace slp_perm by ls.slp_perm.
+ 	* tree-vectorizer.h (struct vect_load_store_data): Add slp_perm.
+ 
+ 2025-10-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_reduc_info_s::is_reduc_chain): New.
+ 	(_loop_vec_info::reduction_chains): Remove.
+ 	(LOOP_VINFO_REDUCTION_CHAINS): Likewise.
+ 	* tree-vect-patterns.cc (vect_reassociating_reduction_p):
+ 	Do not special-case reduction group stmts.
+ 	* tree-vect-loop.cc (vect_is_simple_reduction): Remove
+ 	reduction chain handling.
+ 	(vect_analyze_scalar_cycles_1): Remove slp parameter and adjust.
+ 	(vect_analyze_scalar_cycles): Likewise.
+ 	(vect_fixup_reduc_chain): Remove.
+ 	(vect_fixup_scalar_cycles_with_patterns): Likewise.
+ 	(vect_analyze_loop_2): Adjust.
+ 	(vect_create_epilog_for_reduction): Check the reduction info
+ 	for whether this is a reduction chain.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vectorizable_reduction): Likewise.  Simplify code for all-SLP.
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Simplify.
+ 	(vect_analyze_slp_reduction): New function, perform reduction
+ 	chain discovery here.
+ 	(vect_analyze_slp): Remove reduction chain handling.
+ 	Use vect_analyze_slp_reduction for possible reduction chain
+ 	processing.
+ 
+ 2025-10-14  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_available_features): Remove AMX-TRANSPOSE.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_TRANSPOSE_SET): Removed.
+ 	(OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): Ditto.
+ 	(ix86_handle_option): Remove amx-transpose handle.
+ 	* common/config/i386/i386-cpuinfo.h
+ 	(enum processor_features): Remove FEATURE_AMX_TRANSPOSE.
+ 	Set FEATURE_AMX_MOVRS value.
+ 	* common/config/i386/i386-isas.h: Remove AMX-TRANSPOSE.
+ 	* config.gcc: Do not include amxtransposeintrin.h.
+ 	* config/i386/amxmovrsintrin.h: Remove AMX-TRANSPOSE intrins.
+ 	* config/i386/amxtransposeintrin.h: Ditto.
+ 	* config/i386/cpuid.h (bit_AMX_TRANSPOSE): Removed.
+ 	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Remove AMX-TRANSPOSE.
+ 	* config/i386/i386-c.cc (ix86_target_macros_internal): Remove
+ 	AMX_TRANSPOSE.
+ 	* config/i386/i386-isa.def (AMX_TRANSPOSE): Removed.
+ 	* config/i386/i386-options.cc
+ 	(ix86_valid_target_attribute_inner_p): Remove AMX-TRANSPOSE.
+ 	* config/i386/i386.opt: Ditto.
+ 	* config/i386/i386.opt.urls: Ditto.
+ 	* config/i386/immintrin.h: Remove amxtransposeintrin.h.
+ 	* doc/extend.texi: Remove amx-transpose.
+ 	* doc/invoke.texi: Ditto.
+ 	* doc/sourcebuild.texi: Ditto.
+ 
+ 2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-phiopt.cc (pass_phiopt::execute): Disable
+ 	cselim-limited and factor out operations for -Og.
+ 
+ 2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122178
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle
+ 	clobber statements.
+ 
+ 2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122182
+ 	* tree-ssa-dom.cc (cprop_operand): Don't check may_propagate_copy_into_asm.
+ 	* tree-ssa-propagate.cc (substitute_and_fold_engine::replace_uses_in): Don't
+ 	check may_propagate_copy_into_asm.
+ 	(may_propagate_copy_into_asm): Remove.
+ 	* tree-ssa-propagate.h (may_propagate_copy_into_asm): Remove.
+ 
+ 2025-10-14  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::get_profile_name):
+ 	New function.
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
+ 	profile macro if a profile is detected.
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::get_profile_name): Declare.
+ 
+ 2025-10-13  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR target/120811
+ 	* config/riscv/riscv.cc (synthesize_add): Exchange constant terms when
+ 	generating addi pairs.
+ 	(synthesize_addsi): Similarly.
+ 	* config/riscv/riscv.md (addptr<mode>3): New define_expand.
+ 	(*add<mode>3_const_sum_of_two_s12): Remove pattern.
+ 
+ 2025-10-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120674
+ 	* config/riscv/riscv.cc (riscv_dwarf_poly_indeterminite_value): Do not
+ 	set FACTOR to zero, for that case use one instead.
+ 
+ 2025-10-13  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add simplifed pattern for widen_mul based unsigned
+ 	SAT_MUL.
+ 
+ 2025-10-13  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-inline.cc (max_count): Remove.
+ 	(has_nonzero_ipa_profile): New.
+ 	(inline_small_functions): Update.
+ 	(dump_inline_stats): Update.
+ 
+ 2025-10-13  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/118019
+ 	* internal-fn.cc (get_supported_else_vals): Exit at invalid
+ 	index.
+ 	(internal_strided_fn_supported_p): New funtion.
+ 	* internal-fn.h (internal_strided_fn_supported_p): Declare.
+ 	* tree-vect-stmts.cc (vector_vector_composition_type):
+ 	Add vector_only argument.
+ 	(vect_use_grouped_gather): New function.
+ 	(vect_get_store_rhs): Adjust docs of
+ 	vector_vector_composition_type.
+ 	(get_load_store_type): Try grouped gather.
+ 	(vectorizable_store): Use punned vectype.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (struct vect_load_store_data): Add punned
+ 	vectype.
+ 
+ 2025-10-13  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR tree-optimization/122213
+ 	* match.pd: Canonicalize unsigned pow2 div only for trunk, floor and
+ 	exact div.
+ 
+ 2025-10-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (integer_type_for_mask): Add optional
+ 	output dt argument.
+ 	(vect_recog_bool_pattern): Make sure to not apply the bitwise
+ 	binary pattern to an external operand.
+ 
+ 2025-10-11  Bohan Lei  <garthlei@linux.alibaba.com>
+ 
+ 	PR target/119587
+ 	* config/riscv/thead.md (*th_memidx_operand): New splitter.
+ 
+ 2025-10-11  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* coretypes.h (enum artificial_rodata): New enum type.
+ 	* doc/tm.texi: Rebuild.
+ 	* doc/tm.texi.in (TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA):
+ 	New hook.
+ 	* target.def (addr_sapce.for_artificial_rodata): New DEFHOOK.
+ 	* targhooks.cc (default_addr_space_convert): New function.
+ 	* targhooks.h (default_addr_space_convert): New prototype.
+ 	* tree-switch-conversion.cc (build_one_array) <value_type>:
+ 	Set type_quals address-space according to
+ 	targetm.addr_space.for_artificial_rodata().
+ 	* config/avr/avr.cc (avr_rodata_in_flash_p): Move up.
+ 	(TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA): Define to...
+ 	(avr_addr_space_for_artificial_rodata): ...this new function.
+ 	* common/config/avr/avr-common.cc (avr_option_optimization_table):
+ 	Adjust -ftree-switch-conversion comment.
+ 
+ 2025-10-11  Austin Law  <austinklaw@gmail.com>
+ 
+ 	* config/riscv/sync.md (lrsc_atomic_fetch_<atomic_optab><mode>):
+ 	Adjust operand predicate/constraint to allow simm12 operands
+ 	where valid.  Adjust output template accordingly.
+ 	(subword_atomic_fech_strong_<atomic_optab>): Likewise.
+ 	(subword_atomic_fetch_strong_nand): Likewise.
+ 	(subword_atomic_exchange_strong): Likewise.
+ 	(subword_atomic_cas_strong): Likewise.
+ 
+ 2025-10-10  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/122141
+ 	* config/bpf/bpf.cc (bpf_expand_cbranch): Use swap_condition
+ 	rather than reverse_condition when reversing jump condition to
+ 	work around missing instructions in very old BPF ISAs.
+ 
+ 2025-10-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (do_simple_agr_dse): New function.
+ 	(pass_forwprop::execute): Call do_simple_agr_dse for clobbers.
+ 
+ 2025-10-10  Umesh Kalvakuntla  <Umesh.Kalvakuntla@amd.com>
+ 
+ 	* common/config/i386/cpuinfo.h (get_amd_cpu): Fix znver5 family
+ 	model numbers.
+ 	(get_available_features): Set FEATURE_PREFETCHI for bit_AMD_PREFETCHI.
+ 	* config/i386/cpuid.h (bit_AMD_PREFETCHI): New Macro.
+ 
+ 2025-10-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*widen_wsubu_wx_<mode>): Add new
+ 	pattern to match vwsubu.wx.
+ 
+ 2025-10-10  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (fmax<mode>3): Restrict to no trapping
+ 	math.
+ 	(fmin<mode>3): Ditto.
+ 
+ 2025-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/rs6000.md (mode_iterator CCANY): Add CCFP and CCEQ.
+ 
+ 2025-10-10  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/122223
+ 	* config/arm/mve.md (@mve_vbicq_f<mode>): Fix operands order.
+ 
+ 2025-10-10  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* tree-vect-stmts.cc: Fix VEC_STMT parameter comments throughout.
+ 
+ 2025-10-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Improve Apple
+ 	M3 and add Apple M4 cores.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi: Add apple-m4 core to the ones listed
+ 	for arch and tune selections.
+ 
+ 2025-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122111
+ 	* tree-ssa-math-opts.cc (build_and_insert_cast): Remove
+ 	conversion simplification, instead use gimple_convert.
+ 
+ 2025-10-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
+ 	Remove use of type.
+ 
+ 2025-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122225
+ 	* tree-cfg.cc (verify_gimple_return): Look at DECL_RESULT
+ 	for DECL_BY_REFERENCE.
+ 
+ 2025-10-10  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
+ 
+ 	Revert:
+ 	2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_option_override):Add conditions
+ 	for use of the -mmips16e2 and -mips16 option.
+ 
+ 2025-10-09  David Faust  <david.faust@oracle.com>
+ 
+ 	* doc/extend.texi (Common Function Attributes)
+ 	(Common Variable Attributes): Document btf_decl_tag attribute.
+ 	(Common Type Attributes): Document btf_type_tag attribute.
+ 
+ 2025-10-09  David Faust  <david.faust@oracle.com>
+ 
+ 	* btfout.cc (get_btf_kind): Handle DECL_TAG and TYPE_TAG kinds.
+ 	(btf_calc_num_vbytes): Likewise.
+ 	(btf_asm_type): Likewise.
+ 	(output_asm_btf_vlen_bytes): Likewise.
+ 	(output_btf_tags): New.
+ 	(btf_output): Call it here.
+ 	(btf_add_used_type): Replace with simple wrapper around...
+ 	(btf_add_used_type_1): ...the implementation.  Handle
+ 	BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG.
+ 	(btf_add_vars): Update btf_add_used_type call.
+ 	(btf_assign_tag_ids): New.
+ 	(btf_mark_type_used): Update btf_add_used_type call.
+ 	(btf_collect_pruned_types): Likewise.  Handle type and decl tags.
+ 	(btf_finish): Call btf_assign_tag_ids.
+ 
+ 2025-10-09  David Faust  <david.faust@oracle.com>
+ 
+ 	* ctfc.cc (ctf_dtu_d_union_selector): Handle CTF_K_DECL_TAG and
+ 	CTF_K_TYPE_TAG.
+ 	(ctf_add_type_tag, ctf_add_decl_tag): New.
+ 	(ctf_add_variable): Return the new ctf_dvdef_ref rather than zero.
+ 	(new_ctf_container): Initialize new members.
+ 	(ctfc_delete_container): Deallocate new members.
+ 	* ctfc.h (ctf_dvdef, ctf_dvdef_t, ctf_dvdef_ref): Move forward
+ 	declarations earlier in file.
+ 	(ctf_decl_tag_t): New typedef.
+ 	(ctf_dtdef): Add ctf_decl_tag_t member to dtd_u union.
+ 	(ctf_dtu_d_union_enum): Add new CTF_DTU_D_TAG enumerator.
+ 	(ctf_container): Add ctfc_tags vector and ctfc_type_tags_map hash_map
+ 	members.
+ 	(ctf_add_type_tag, ctf_add_decl_tag): New function protos.
+ 	(ctf_add_variable): Change prototype return type to ctf_dvdef_ref.
+ 	* dwarf2ctf.cc (gen_ctf_type_tags, gen_ctf_decl_tags)
+ 	(gen_ctf_decl_tags_for_var): New static functions.
+ 	(gen_ctf_pointer_type): Handle type tags.
+ 	(gen_ctf_sou_type): Handle decl tags.
+ 	(gen_ctf_function_type): Likewise.
+ 	(gen_ctf_variable): Likewise.
+ 	(gen_ctf_function): Likewise.
+ 	(gen_ctf_type): Handle TAG_GNU_annotation DIEs.
+ 
+ 2025-10-09  David Faust  <david.faust@oracle.com>
+ 
+ 	* dwarf2out.cc (struct annotation_node, struct annotation_node_hasher)
+ 	(btf_tag_htab): New ancillary structures and hash table.
+ 	(annotation_node_hasher::hash, annotation_node_hasher::equal): New.
+ 	(hash_btf_tag, gen_btf_tag_dies, maybe_gen_btf_type_tag_dies)
+ 	(maybe_gen_btf_decl_tag_dies): New functions.
+ 	(modified_type_die): Add new argument to pass type attributes.
+ 	Handle btf_type_tag, and update recursive calls.
+ 	(base_type_for_mode): Add new arg for modified_type_die call.
+ 	(add_type_attribute): Likewise.
+ 	(gen_array_type_die): Call maybe_gen_btf_type_tag_dies for the type.
+ 	(gen_formal_parameter_die): Call maybe_gen_btf_decl_tag_dies for the
+ 	parameter.
+ 	(override_type_for_decl_p): Add new arg for modified_type_die call.
+ 	(force_type_die): Likewise.
+ 	(gen_tagged_type_die): Call maybe_gen_btf_type_tag_dies for the type.
+ 	(gen_decl_die): Call maybe_gen_btf_decl_tag_dies for the decl.
+ 	(dwarf2out_finish): Empty btf_tag_htab.
+ 	(dwarf2out_cc_finalize): Delete btf_tag_htab hash table.
+ 
+ 2025-10-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* ginclude/stdarg.h (va_start): Use __builtin_c23_va_start
+ 	also for C++26.
+ 	(__STDC_VERSION_STDARG_H__): Also define for C++26.
+ 
+ 2025-10-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-global-context.cc: Define INCLUDE_VECTOR.
+ 	* diagnostics/buffering.cc: Likewise.
+ 	* diagnostics/context.cc (context::finish): Call
+ 	finalize_extensions on each sink.
+ 	(sink::dump): Dump any extensions.
+ 	(sink::finalize_extensions): New.
+ 	* diagnostics/macro-unwinding.cc: Define INCLUDE_VECTOR.
+ 	* diagnostics/selftest-context.cc: Likewise.
+ 	* diagnostics/sink.h (class sink::extension): New.
+ 	(sink::add_extension): New.
+ 	(sink::finalize_extensions): New decl.
+ 	(sink::m_extensions): New member.
+ 	* gcc.cc: Define INCLUDE_VECTOR.
+ 	* langhooks.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 
+ 2025-10-09  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* Makefile.in: Add gimple-ssa-pta-constraints.cc.
+ 	* tree-ssa-structalias.cc (determine_global_memory_access):
+ 	External linkage, move to namespace pointer_analysis.
+ 	(fndecl_maybe_in_other_partition): External linkage, move to
+ 	namespace pointer_analysis.
+ 	(new_var_info): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(create_variable_info_for): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(lookup_vi_for_tree): External linkage, move to namespace
+ 	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
+ 	(type_can_have_subvars): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_param_constraints): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_call_vi): Move to gimple-ssa-pta-constraints.cc.
+ 	(lookup_call_use_vi): External linkage, move to namespace
+ 	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
+ 	(lookup_call_clobber_vi): External linkage, move to namespace
+ 	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
+ 	(get_call_use_vi): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_call_clobber_vi): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_1): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_rhs): Move to gimple-ssa-pta-constraints.cc.
+ 	(do_deref): Move to gimple-ssa-pta-constraints.cc.
+ 	(constraint_pool): Move to gimple-ssa-pta-constraints.cc.
+ 	(new_constraint): Move to gimple-ssa-pta-constraints.cc.
+ 	(insert_vi_for_tree): Move to gimple-ssa-pta-constraints.cc.
+ 	(alias_get_name): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_vi_for_tree): Move to gimple-ssa-pta-constraints.cc.
+ 	(new_scalar_tmp_constraint_exp): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_ssa_var): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(process_constraint): Move to gimple-ssa-pta-constraints.cc.
+ 	(bitpos_of_field): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_ptr_offset): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_component_ref): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(get_constraint_for_address_of): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(process_all_all_constraints): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(do_structure_copy): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_constraints_to): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_constraint_to): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_constraint_from): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_copy_constraint): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_escape_constraint): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_indirect_escape_constraint): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(make_transitive_closure_constraints): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(make_any_offset_constraints): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(struct obstack fake_var_decl_obstack): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(build_fake_var_decl): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_heapvar): Move to gimple-ssa-pta-constraints.cc.
+ 	(make_constraint_from_restrict): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(make_constraint_from_global_restrict): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(get_function_part_constraint): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(handle_call_arg): Move to gimple-ssa-pta-constraints.cc.
+ 	(handle_rhs_call): Move to gimple-ssa-pta-constraints.cc.
+ 	(handle_lhs_call): Move to gimple-ssa-pta-constraints.cc.
+ 	(get_fi_for_callee): Move to gimple-ssa-pta-constraints.cc.
+ 	(find_func_aliases_for_call_arg): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(find_func_aliases_for_builtin_call): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(find_func_aliases_for_call): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(find_func_aliases): Move to gimple-ssa-pta-constraints.cc.
+ 	(process_ipa_clobber): Move to gimple-ssa-pta-constraints.cc.
+ 	(find_func_clobbers): Move to gimple-ssa-pta-constraints.cc.
+ 	(struct fieldoff): Move to gimple-ssa-pta-constraints.cc.
+ 	(fieldoff_compare): Move to gimple-ssa-pta-constraints.cc.
+ 	(sort_fieldstack): Move to gimple-ssa-pta-constraints.cc.
+ 	(var_can_have_subvars): Move to gimple-ssa-pta-constraints.cc.
+ 	(type_must_have_pointers): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(field_must_have_pointers): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(push_fields_onto_fieldstack): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(count_num_arguments): Move to gimple-ssa-pta-constraints.cc.
+ 	(create_function_info_for): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(check_for_overlaps): Move to gimple-ssa-pta-constraints.cc.
+ 	(create_variable_info_for_1): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(intra_create_variable_infos): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(init_base_vars): Move to gimple-ssa-pta-constraints.cc.
+ 	(init_constraint_builder): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(delete_constraint_builder): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(intra_build_constraints): Move to
+ 	gimple-ssa-pta-constraints.cc.
+ 	(delete_points_to_sets): Move to gimple-ssa-pta-constraints.cc.
+ 	(associate_varinfo_to_alias): Move to
+ 	gimple-ssa-pta-constraints.cc
+ 	(refered_from_nonlocal_fn): Move to
+ 	gimple-ssa-pta-constraints.cc
+ 	(refered_from_nonlocal_var): Move to
+ 	gimple-ssa-pta-constraints.cc
+ 	(ipa_create_function_infos): Move to
+ 	gimple-ssa-pta-constraints.cc
+ 	(ipa_create_global_variable_infos): Move to
+ 	gimple-ssa-pta-constraints.cc
+ 	(ipa_build_constraints): Move to gimple-ssa-pta-constraints.cc
+ 	* tree-ssa-structalias.h (struct constraint_stats):
+ 	(determine_global_memory_access): External linkage, move to
+ 	namespace pointer_analysis.
+ 	(fndecl_maybe_in_other_partition): External linkage, move to
+ 	namespace pointer_analysis.
+ 	(new_var_info): External linkage, move to namespace
+ 	pointer_analysis.
+ 	* gimple-ssa-pta-constraints.cc: New file.
+ 	* gimple-ssa-pta-constraints.h: New file.
+ 
+ 2025-10-09  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* tree-ssa-structalias.cc (init_constraint_builder): New
+ 	function.
+ 	(delete_constraint_builder): New function.
+ 	(compute_points_to_sets): Put constraint building into
+ 	intra_build_constraints and call it.
+ 	(intra_build_constraints): New function.
+ 	(delete_points_to_sets): Put cleanup of constraint builder
+ 	global vars into delete_constraint_builder and call it.
+ 	(ipa_pta_execute): Put constraint building into
+ 	ipa_build_constraints and call it.
+ 	(ipa_create_function_infos): New function.
+ 	(ipa_create_global_variable_infos): New function.
+ 	(ipa_build_constraints): New function.
+ 
+ 2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_constantsynth): Remove.
+ 	* config/xtensa/xtensa.cc
+ 	(#include): Remove "context.h" and "pass_manager.h".
+ 	(machine_function): Remove "litpool_usage" member.
+ 	(xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
+ 	xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth): Remove.
+ 	(constantsynth_method_lshr_m1, split_hwi_to_MOVI_ADDMI,
+ 	constantsynth_method_16bits, constantsynth_method_32bits,
+ 	constantsynth_method_square): New worker function related to
+ 	constant synthesis methods.
+ 	(constantsynth_method_info, constantsynth_methods):
+ 	New structure representing the list of all constant synthesis
+ 	methods.
+ 	(constantsynth_info): New structure that stores internal
+ 	information for "constantsynth".
+ 	(constantsynth_pass1, verify_synth_seq, constantsynth_pass2):
+ 	New functions that are the core of "constantsynth".
+ 	(do_largeconst): Add a call to constantsynth_pass1() to the insn
+ 	enumeration loop, and add a call to constantsynth_pass2() to the
+ 	end of this function.
+ 	* config/xtensa/xtensa.md (SHI): Remove.
+ 	(The two auxiliary define_splits for mov[sh]i_internal): Remove.
+ 	(The two auxiliary define_splits for movsf_internal): Remove.
+ 
+ 2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h
+ 	(xtensa_split_DI_reg_imm): Remove.
+ 	* config/xtensa/xtensa.cc (xtensa_split_DI_reg_imm): Remove.
+ 	(split_DI_SF_DF_const): New worker function.
+ 	(do_largeconst): Add a call to split_DI_SF_DF_const() to the insn
+ 	enumeration loop.
+ 	* config/xtensa/xtensa.md (movdi): Remove split code when the
+ 	source is constant.
+ 	(movdi_internal): Add a new constraint pair (a, Y) to the second
+ 	of the existing constraint alternatives.
+ 	(The auxiliary define_split for movdi_internal): Remove.
+ 
+ 2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xt_full_rtx_costs):
+ 	New struct, derived from full_rtx_costs.
+ 	(FPreg_neg_scaled_simm12b_1, FPreg_neg_scaled_simm12b):
+ 	New worker functions.
+ 	(do_largeconst): Add a call to FPreg_neg_scaled_simm12b() to the
+ 	insn enumeration loop.
+ 
+ 2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/constraints.md (Y):
+ 	Change to reference xtensa_postreload_completed_p() instead of
+ 	xtensa_split1_finished_p().
+ 	* config/xtensa/predicates.md (move_operand): Ditto.
+ 	* config/xtensa/t-xtensa (PASSES_EXTRA):
+ 	Add xtensa-passes.def as target-specific pass description.
+ 	* config/xtensa/xtensa-passes.def:
+ 	New definition file that inserts pass_xtensa_largeconst after
+ 	pass_postreload_cse.
+ 	* config/xtensa/xtensa-protos.h (xtensa_split1_finished_p): Remove.
+ 	(xtensa_postreload_completed_p, make_pass_xtensa_largeconst):
+ 	New function prototypes.
+ 	* config/xtensa/xtensa.cc (machine_function):
+ 	Add a new member "postreload_completed".
+ 	(xtensa_emit_move_sequence):
+ 	Change to reference xtensa_postreload_completed_p() instead of
+ 	can_create_pseudo_p().
+ 	(xtensa_split1_finished_p): Remove.
+ 	(xtensa_postreload_completed_p): New function.
+ 	(xtensa_legitimate_constant_p): Change to also consider
+ 	xtensa_postreload_completed_p().
+ 	(litpool_set_src_1, litpool_set_src, do_largeconst,
+ 	rest_of_handle_largeconst):
+ 	New sub-functions for pass_xtensa_largeconst.
+ 	(pass_data_xtensa_largeconst, pass_xtensa_largeconst):
+ 	New target-specific pass definition.
+ 	(make_pass_xtensa_largeconst):
+ 	New function called by the pass manager.
+ 	* config/xtensa/xtensa.md
+ 	(The auxiliary define_split for movdi_internal):
+ 	Change to reference xtensa_postreload_completed_p() instead of
+ 	xtensa_split1_finished_p().
+ 	(The first of three auxiliary define_splits for mov[sh]i_internal):
+ 	Remove.
+ 
+ 2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(TARGET_MD_ASM_ADJUST): New macro definition.
+ 	(xtensa_md_asm_adjust): New function prototype and definition, that
+ 	prepends all 'g'-constraints in the "constraints" vector with 'n',
+ 	if neither TARGET_CONST16 nor TARGET_AUTO_LITPOOLS is enabled.
+ 
+ 2025-10-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122212
+ 	* tree-ssa-forwprop.cc (simplify_count_zeroes): Apply
+ 	bias for CLZ after dealing with the zero special value.
+ 
+ 2025-10-09  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h (vls_mode_valid_p): New argument
+ 	allow_up_to_lmul_8.
+ 	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Set
+ 	allow_up_to_lmul_8 to false.
+ 	(vls_mode_valid_p): Add new argument allow_up_to_lmul_8, and use
+ 	it to determine whether to allow LMUL 8.
+ 
+ 2025-10-09  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/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Use LINK_LIBATOMIC_SPEC.
+ 	* config/arm/uclinux-elf.h: Likewise.
+ 	* config/arm/unknown-elf.h: Likewise.
+ 	* config/avr/avrlibc.h: Likewise.
+ 	* config/bfin/linux.h: Likewise.
+ 	* config/darwin.h: Likewise.
+ 	* config/gnu-user.h: Likewise.
+ 	* config/lm32/uclinux-elf.h: Likewise.
+ 	* config/rs6000/linux64.h: Likewise.
+ 	* config/rs6000/rtems.h: Likewise.
+ 	* config/sparc/sparc.h: Likewise.
+ 	* doc/invoke.texi: Document -flink-libatomic.
+ 	* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-10-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment):
+ 	Remove type.
+ 	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* config/epiphany/epiphany.cc (epiphany_support_vector_misalignment):
+ 	Ditto.
+ 	* config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment):
+ 	Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* config/riscv/riscv.cc (riscv_support_vector_misalignment):
+ 	Ditto.
+ 	* config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* config/s390/s390.cc (s390_support_vector_misalignment):
+ 	Ditto.
+ 	* doc/tm.texi: Adjust vector misalignment docs.
+ 	* target.def: Ditto.
+ 	* targhooks.cc (default_builtin_support_vector_misalignment):
+ 	Remove type.
+ 	* targhooks.h (default_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p):
+ 	Set misalignment for gather/scatter and remove type.
+ 	(vect_supportable_dr_alignment): Ditto.
+ 
+ 2025-10-09  Sam James  <sam@gentoo.org>
+ 
+ 	PR c++/117219
+ 	* doc/invoke.texi (-fstrict-aliasing): Explain that type-punning
+ 	through a union in C++ is supported as a GNU extension.
+ 
+ 2025-10-09  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/invoke.texi: Add missing full stop.
+ 
+ 2025-10-09  Sam James  <sam@gentoo.org>
+ 
+ 	PR tree-optimization/18501
+ 	* doc/invoke.texi (-Wmaybe-uninitialized): Mention interaction with
+ 	CCP.
+ 
+ 2025-10-08  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2025-10-08  Trevor Gross  <tmgross@umich.edu>
+ 
+ 	PR target/115054
+ 	* config/i386/i386.cc (function_arg_ms_64,
+ 	function_value_ms_64): Pass and return _Float16 in vector
+ 	registers on Windows.
+ 
+ 2025-10-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110223
+ 	PR tree-optimization/122128
+ 	* tree-vect-patterns.cc (vect_recog_bool_pattern): Add
+ 	compensation for mixed mask/data bitwise operations.
+ 
+ 2025-10-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (integer_type_for_mask): Only
+ 	reject vect_external_defs.
+ 
+ 2025-10-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/tm.texi.in (JIT Language and ABI): Add menu item.
+ 	* doc/tm.texi: Re-generate.
+ 
+ 2025-10-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/110223
+ 	* tree-vect-patterns.cc (vect_recog_bool_pattern): Fix
+ 	mistakes in the store-from-mask bool pattern.  Add
+ 	required mask conversions.
+ 
+ 2025-10-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/105490
+ 	* tree-vect-patterns.cc (build_mask_conversion): Move earlier.
+ 	(vect_convert_mask_for_vectype): Likewise.
+ 	(vect_recog_bool_pattern): Remove redundant truth type
+ 	construction.  Add missing possibly required mask conversion.
+ 
+ 2025-10-08  Antoni Boucher  <bouanto@zoho.com>
+ 
+ 	PR jit/112466
+ 	* Makefile.in (tm_jit_file_list, tm_jit_include_list, TM_JIT_H,
+ 	JIT_TARGET_DEF, JIT_TARGET_H, JIT_TARGET_OBJS): New variables.
+ 	(tm_jit.h, cs-tm_jit.h, jit/jit-target-hooks-def.h,
+ 	s-jit-target-hooks-def-h, default-jit.o): New rules.
+ 	(s-tm-texi): Also check timestamp on jit-target.def.
+ 	(generated_files): Add TM_JIT_H and jit/jit-target-hooks-def.h.
+ 	(build/genhooks.o): Also depend on JIT_TARGET_DEF.
+ 	* config.gcc (tm_jit_file, jit_target_objs, target_has_targetjitm):
+ 	New variables.
+ 	* config/i386/t-i386 (i386-jit.o): New rule.
+ 	* configure: Regenerate.
+ 	* configure.ac (tm_jit_file_list, tm_jit_include_list,
+ 	jit_target_objs): Add substitutes.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in (targetjitm): Document.
+ 	(target_has_targetjitm): Document.
+ 	* genhooks.cc: Include jit/jit-target.def.
+ 	* config/default-jit.cc: New file.
+ 	* config/i386/i386-jit.cc: New file.
+ 	* config/i386/i386-jit.h: New file.
+ 
+ 2025-10-07  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Add documentation for TARGET_HAS_FMV_TARGET_ATTRIBUTE.
+ 
+ 2025-10-07  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/122187
+ 	* config/avr/avr.cc (avr_out_extr, avr_out_extr_not):
+ 	Make a local copy of the passed rtx[] operands.
+ 
+ 2025-10-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* config/i386/i386-features.cc
+ 	(general_scalar_chain::vector_const_cost): Fix spelling in
+ 	comment.
+ 	* ipa-prop.h (enum jump_func_type): Likewise.
+ 	* tree-vectorizer.cc (try_vectorize_loop_1): Likewise.
+ 
+ 2025-10-07  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/121845
+ 	* config/riscv/riscv-v.cc (shuffle_series_patterns):
+ 	Modulo indices for VLA and punt when wrapping for VLS.
+ 
+ 2025-10-07  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/122124
+ 	* config/riscv/riscv-v.cc (shuffle_slide_patterns): Check if
+ 	the second pivot is in OP1 and improve comments.
+ 
+ 2025-10-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121921
+ 	* match.pd (`-(a ptrdiff b)`): Extend for a nop_convert
+ 	between the neg and ptrdiff.
+ 
+ 2025-10-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122083
+ 	* tree-ssa-phiopt.cc (single_trailing_store_in_bb): Rename to ...
+ 	(trailing_store_in_bb): This and take new argument to check for
+ 	only store.
+ 	(cond_if_else_store_replacement_limited): Update to use
+ 	trailing_store_in_bb.
+ 	(cond_if_else_store_replacement): Loop until
+ 	cond_if_else_store_replacement_limited returns false.
+ 	(pass_phiopt::execute): Instead of calling cond_if_else_store_replacement_limited
+ 	once, also loop on it.
+ 
+ 2025-10-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122155
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Don't
+ 	create a phi if the 2 rhs are the same.
+ 
+ 2025-10-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR middle-end/122122
+ 	* tree-cfgcleanup.cc (tree_forwarder_block_p): Cleanup.
+ 	* tree-ssa-dce.cc (propagate_counts): New function.
+ 	(eliminate_unnecessary_stmts): Use it.
+ 
+ 2025-10-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* params.opt (-param=auto-profile-bbs=): Add missing full stop after
+ 	description.
+ 
+ 2025-10-06  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/121206
+ 	* value-range.cc (irange::intersect_bitmask): Always call
+ 	set_range_from_bitmask if the bitmask changes.
+ 
+ 2025-10-06  Sam James  <sam@gentoo.org>
+ 
+ 	PR rtl-optimization/111619
+ 	* doc/install.texi (Building a native compiler): Discuss STAGE1_CFLAGS.
+ 
+ 2025-10-06  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/121599
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::use_cond_insn): Use add_fixed_operand if
+ 	fallback_arg == CONST0_RTX (mode).
+ 
+ 2025-10-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122131
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment): Do
+ 	not use re-align loads for gathers.
+ 
+ 2025-10-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122158
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle
+ 	bit-precision result.
+ 
+ 2025-10-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/122133
+ 	* stmt.cc (resolve_asm_operand_names): Handle % and 2 letters followed
+ 	by open square.
+ 
+ 2025-10-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122142
+ 	* generic-match-head.cc: Include gimple-iterator.h
+ 	and gimple-fold.h.
+ 	* gimple-fold.cc (gimple_fold_builtin_constant_p): Use
+ 	fold_before_rtl_expansion_p.
+ 	(gimple_fold_builtin_assume_aligned): Likewise.
+ 	(gimple_fold_builtin_stdarg): Likewise.
+ 	(gimple_fold_call): Likewise.
+ 	* gimple-fold.h: Include "tree-pass.h".
+ 	(fold_before_rtl_expansion_p): New function.
+ 	* match.pd: Use fold_before_rtl_expansion_p
+ 	instead of `cfun->curr_properties & PROP_last_full_fold`.
+ 	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Likewise.
+ 	(optimize_stack_restore): Likewise.
+ 
+ 2025-10-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/122150
+ 	* config/i386/i386-expand.cc (setmem_epilogue_gen_val): Duplicate
+ 	OP if its size is smaller than MODE size.
+ 
+ 2025-10-05  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.h (FUNCTION_BOUNDARY): Set to 32.
+ 
+ 2025-10-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*widen_waddu_wx_<mode>): Add new
+ 	pattern to match vwaddu.wx.
+ 
+ 2025-10-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Refactor the form 1 of SAT_MUL by keyword for.
+ 
+ 2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122143
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting
+ 	TODO_update_address_taken only when the statement was a call before fold_stmt.
+ 
+ 2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122153
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle
+ 	stores of empty constructors too.
+ 
+ 2025-10-04  Matteo Nicoli  <matteo.nicoli001@gmail.com>
+ 
+ 	PR tree-optimization/117760
+ 	* match.pd: Add simplifications that exploit implied values after
+ 	logical tests.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/122104
+ 	* tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call
+ 	reset_flow_sensitive_info_in_bb on bb when optimizing out the
+ 	guarding condition.
+ 
+ 2025-10-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	PR target/122114
+ 	* config/riscv/riscv.cc
+ 	(riscv_allocate_and_probe_stack_space): Change initial_cfa_offset
+ 	type.
+ 
+ 2025-10-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122147
+ 	* config/riscv/predicates.md (move_operand): Only allow a REG as the
+ 	operand of a SUBREG.
+ 
+ 2025-10-04  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	PR target/118945
+ 	* config/riscv/riscv.cc (riscv_prefer_agnostic_p): New function.
+ 	(riscv_tune_param): Add prefer_agnostic member.
+ 	(various tune info structures): Initialize prefer_agnostic.
+ 	* config/riscv/riscv-protos.h (riscv_prefer_agnostic_p): Add
+ 	prototype.
+ 	* config/riscv/riscv-v.cc (get_prefer_tail_policy,
+ 	get_prefer_mask_policy): Use riscv_prefer_agnostic_p.
+ 	* config/riscv/riscv-vsetvl.cc (vsetvl_info::get_demand_flags):
+ 	demand policy for agnostic when prefer_agnostic is true.
+ 
+ 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/114457
+ 	* flag-types.h (enum auto_init_type): Add AUTO_INIT_CXX26.
+ 	* tree.h (VACUOUS_INIT_LABEL_P): Define.
+ 	* gimplify.cc (is_var_need_auto_init): Renamed to ...
+ 	(var_needs_auto_init_p): ... this.  Don't return true for
+ 	vars with "indeterminate" attribute.  Formatting fixes.
+ 	(gimplify_decl_expr): Use var_needs_auto_init_p instead of
+ 	is_var_need_auto_init.
+ 	(emit_warn_switch_unreachable): Remove the flag_auto_var_init
+ 	special cases.
+ 	(warn_switch_unreachable_and_auto_init_r): Handle them here
+ 	by doing just returning NULL.
+ 	(last_stmt_in_scope): Don't skip just debug stmts to find
+ 	the last stmt in seq, skip for
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also IFN_DEFERRED_INIT
+ 	calls.
+ 	(collect_fallthrough_labels): For
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED ignore
+ 	IFN_DEFERRED_INIT calls and GIMPLE_GOTOs to
+ 	VACUOUS_INIT_LABEL_P.
+ 	(should_warn_for_implicit_fallthrough): For
+ 	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also skip over
+ 	IFN_DEFERRED_INIT calls.
+ 	(expand_FALLTHROUGH_r): Likewise, and handle GIMPLE_GOTOs
+ 	to VACUOUS_INIT_LABEL_P.
+ 	(gimplify_init_constructor): Use var_needs_auto_init_p instead
+ 	of is_var_need_auto_init and for flag_auto_var_init
+ 	AUTO_INIT_CXX26 don't call gimple_add_padding_init_for_auto_var.
+ 	(gimplify_target_expr): If var_needs_auto_init_p and init has
+ 	void type, call gimple_add_init_for_auto_var and for
+ 	AUTO_INIT_PATTERN also gimple_add_padding_init_for_auto_var.
+ 	* tree-ssa-uninit.cc (maybe_warn_operand): Handle loads from *this
+ 	at the start of the function with "clobber *this" attribute on the
+ 	PARM_DECL.
+ 	* ipa-split.cc (split_function): Remove "clobber *this" attribute
+ 	from the first PARM_DECL (if any).
+ 	* doc/invoke.texi (ftrivial-auto-var-init=): Adjust documentation.
+ 
+ 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/117658
+ 	* doc/invoke.texi: Document '-Wno-external-tu-local'.
+ 
+ 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	Revert:
+ 	2025-10-03  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	custom-sarif-properties/digraphs.o and
+ 	custom-sarif-properties/state-graphs.o.  Remove
+ 	diagnostics/state-graphs.o.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add custom-sarif-properties to subdir iteration.
+ 	* custom-sarif-properties/digraphs.cc: New file.
+ 	* custom-sarif-properties/digraphs.h: New file.
+ 	* custom-sarif-properties/state-graphs.cc: New file.
+ 	* custom-sarif-properties/state-graphs.h: New file.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
+ 	Delete decl.
+ 	* diagnostics/digraphs.cc: Include
+ 	"custom-sarif-properties/digraphs.h".  Move include of
+ 	"selftest.h" to within CHECKING_P section.
+ 	(using digraph_object): New.
+ 	(namespace properties): New.
+ 	(diagnostics::digraphs::object::get_attr): Delete.
+ 	(diagnostics::digraphs::object::set_attr): Delete.
+ 	(diagnostics::digraphs::object::set_json_attr): Delete.
+ 	(digraph_object::get_property): New definitions, for various
+ 	property types.
+ 	(digraph_object::set_property): Likewise.
+ 	(digraph_object::maybe_get_property): New.
+ 	(digraph_object::get_property_as_tristate): New.
+ 	(digraph_object::ensure_property_bag): New.
+ 	(digraph::get_graph_kind): New.
+ 	(digraph::set_graph_kind): New.
+ 	Add include of "custom-sarif-properties/state-graphs.h".
+ 	(selftest::test_simple_graph): Rewrite to use json::property
+ 	instances rather than string attribute names.
+ 	(selftest::test_property_objects): New test.
+ 	(selftest::digraphs_cc_tests): Call it.
+ 	* diagnostics/digraphs.h: Include "tristate.h".
+ 	(object::get_attr): Delete.
+ 	(object::set_attr): Delete.
+ 	(object::get_property): New decls.
+ 	(object::set_property): New decls.
+ 	(object::maybe_get_property): New.
+ 	(object::get_property_as_tristate): New.
+ 	(object::set_json_attr): Delete.
+ 	(object::ensure_property_bag): New.
+ 	(graph::get_graph_kind): New.
+ 	(graph::set_graph_kind): New.
+ 	* diagnostics/html-sink.cc
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renamings.
+ 	(html_generation_options::dump): Likewise.
+ 	(html_builder::maybe_make_state_diagram): Likewise.
+ 	(html_builder::add_graph): Show SARIF and .dot src inline, if
+ 	requested.
+ 	* diagnostics/html-sink.h
+ 	(html_generation_options::m_show_state_diagrams_sarif): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagrams_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_dot_src0): ...this.
+ 	* diagnostics/output-spec.cc
+ 	(html_scheme_handler::maybe_handle_kv): Rename keys.
+ 	(html_scheme_handler::get_keys): Likewise.
+ 	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
+ 	use json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* diagnostics/state-graphs.cc: Deleted file.
+ 	* diagnostics/state-graphs.h: Delete almost all, except decl of
+ 	diagnostics::state_graphs::make_dot_graph.
+ 	* doc/invoke.texi: Update for changes to "experimental-html" sink
+ 	keys.
+ 	* json.cc (json::object::set_string): New.
+ 	(json::object::set_integer): New.
+ 	(json::object::set_bool): New.
+ 	(json::object::set_array_of_string): New.
+ 	* json.h: Include "label-text.h".
+ 	(struct json::property): New template.
+ 	(json::string_property): New.
+ 	(json::integer_property): New.
+ 	(json::bool_property): New.
+ 	(json::json_property): New.
+ 	(using json::array_of_string_property): New.
+ 	(struct json::enum_traits): New.
+ 	(enum_json::property): New.
+ 	(json::value::dyn_cast_array): New vfunc.
+ 	(json::value::dyn_cast_integer_number): New vfunc.
+ 	(json::value::set_string): New.
+ 	(json::value::set_integer): New.
+ 	(json::value::set_bool): New.
+ 	(json::value::set_array_of_string): New.
+ 	(json::value::maybe_get_enum): New.
+ 	(json::value::set_enum): New.
+ 	(json::array::dyn_cast_array): New.
+ 	(json::integer_number::dyn_cast_integer_number): New.
+ 	(object::maybe_get_enum): New.
+ 	(object::set_enum): New.
+ 
+ 2025-10-03  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/121937
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Make
+ 	sure we've got a scalar_int_mode before calling neg_poly_int_rtx.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* passes.def: Remove both pass_fold_builtin.
+ 	Swap out pass_copy_prop for pass_forwprop with
+ 	full_walk = false and last=true.
+ 	* tree-pass.h (make_pass_fold_builtins): Remove.
+ 	* tree-ssa-ccp.cc (class pass_fold_builtins): Delete.
+ 	(pass_fold_builtins::execute): Delete.
+ 	(make_pass_fold_builtins): Remove.
+ 	* doc/passes.texi (Folding built-in functions): Remove.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-isel.cc (gimple_nop_atomic_bit_test_and_p): New decl.
+ 	(gimple_nop_convert): Likewise.
+ 	(convert_atomic_bit_not): Moved from tree-ssa-ccp.cc.
+ 	(optimize_atomic_bit_test_and): Likewise.
+ 	(optimize_atomic_op_fetch_cmp_0): Likewise.
+ 	(gimple_isel_builtin_call): New function.
+ 	(CASE_ATOMIC): Moved from tree-ssa-ccp.cc.
+ 	(CASE_ATOMIC_CMP0): Likewise.
+ 	(CASE_ATOMIC_BIT_TEST_AND): Likewise.
+ 	(pass_gimple_isel::execute): For calls just call gimple_isel_builtin_call.
+ 	* tree-ssa-ccp.cc (convert_atomic_bit_not): Move to gimple-isel.cc.
+ 	(gimple_nop_atomic_bit_test_and_p): Likewise.
+ 	(gimple_nop_convert): Likewise.
+ 	(optimize_atomic_bit_test_and): Likewise.
+ 	(optimize_atomic_op_fetch_cmp_0): Likewise.
+ 	(pass_fold_builtins::execute): Just call fold_stmt for internal
+ 	or normal bultin calls.
+ 	(CASE_ATOMIC): Move to gimple-isel.cc.
+ 	(CASE_ATOMIC_CMP0): Likewise.
+ 	(CASE_ATOMIC_BIT_TEST_AND): Likewise.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (CASE_ATOMIC): New defined.
+ 	(CASE_ATOMIC_CMP0): New define.
+ 	(CASE_ATOMIC_BIT_TEST_AND): New defined.
+ 	(pass_fold_builtins::execute): Use CASE_ATOMIC, CASE_ATOMIC_CMP0,
+ 	and CASE_ATOMIC_BIT_TEST_AND.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-fold.cc (gimple_fold_builtin_stdarg): New function,
+ 	moved from tree-ssa-ccp.cc (optimize_stdarg_builtin).
+ 	(gimple_fold_builtin): Call gimple_fold_builtin_stdarg for
+ 	va_start, va_copy and va_end.
+ 	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Remove.
+ 	(pass_fold_builtins::execute): Remove handling of
+ 	va_start, va_copy and va_end.
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Update
+ 	todos if fold_stmt return true if last forwprop to include
+ 	TODO_update_address_taken.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* tree-ssa-ccp.cc (optimize_unreachable): Move to tree-ssa-forwprop.cc
+ 	(pass_fold_builtins::execute): Remove handling of __builtin_unreachable.
+ 	* tree-ssa-forwprop.cc (optimize_unreachable): New function from
+ 	tree-ssa-ccp.cc. Change argument to bb. Remove check on first statement
+ 	being the __builtin_unreachable since it is handled already.
+ 	(pass_forwprop::execute): Handle first statement as being __builtin_unreachable
+ 	by calling optimize_unreachable.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* tree-ssa-ccp.cc (optimize_stack_restore): Move to tree-ssa-forwprop.cc.
+ 	(pass_fold_builtins::execute): Don't call optimize_stack_restore.
+ 	* tree-ssa-forwprop.cc (optimize_stack_restore): New function from
+ 	tree-ssa-ccp.cc. Return bool instead of value, use replace_call_with_value
+ 	istead of returning integer_zero_node.
+ 	(simplify_builtin_call): Call optimize_stack_restore.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/122033
+ 	* tree-ssa-ccp.cc (optimize_stack_restore): Rewrite the call check.
+ 	Update comment in the front to new rules on calls.
+ 	* tree.h (fndecl_builtin_alloc_p): New function.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-fold.cc (gimple_fold_call): Remove ASSUME internal function
+ 	calls when PROP_last_full_fold is set.
+ 	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Handling folding
+ 	of all internal functions.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Mannually create the
+ 	gimple statements instead of depending on the gimplifier.
+ 	(pass_fold_builtins::execute): Handle updated call to optimize_stdarg_builtin.
+ 
+ 2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_memcmp_eq): Remove.
+ 	(pass_fold_builtins::execute): Remove handling of memcmp.
+ 	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Add folding
+ 	of memcmp to memcmp_eq for PROP_last_full_fold.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	custom-sarif-properties/digraphs.o and
+ 	custom-sarif-properties/state-graphs.o.  Remove
+ 	diagnostics/state-graphs.o.
+ 	* configure: Regenerate.
+ 	* configure.ac: Add custom-sarif-properties to subdir iteration.
+ 	* custom-sarif-properties/digraphs.cc: New file.
+ 	* custom-sarif-properties/digraphs.h: New file.
+ 	* custom-sarif-properties/state-graphs.cc: New file.
+ 	* custom-sarif-properties/state-graphs.h: New file.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
+ 	Delete decl.
+ 	* diagnostics/digraphs.cc: Include
+ 	"custom-sarif-properties/digraphs.h".  Move include of
+ 	"selftest.h" to within CHECKING_P section.
+ 	(using digraph_object): New.
+ 	(namespace properties): New.
+ 	(diagnostics::digraphs::object::get_attr): Delete.
+ 	(diagnostics::digraphs::object::set_attr): Delete.
+ 	(diagnostics::digraphs::object::set_json_attr): Delete.
+ 	(digraph_object::get_property): New definitions, for various
+ 	property types.
+ 	(digraph_object::set_property): Likewise.
+ 	(digraph_object::maybe_get_property): New.
+ 	(digraph_object::get_property_as_tristate): New.
+ 	(digraph_object::ensure_property_bag): New.
+ 	(digraph::get_graph_kind): New.
+ 	(digraph::set_graph_kind): New.
+ 	Add include of "custom-sarif-properties/state-graphs.h".
+ 	(selftest::test_simple_graph): Rewrite to use json::property
+ 	instances rather than string attribute names.
+ 	(selftest::test_property_objects): New test.
+ 	(selftest::digraphs_cc_tests): Call it.
+ 	* diagnostics/digraphs.h: Include "tristate.h".
+ 	(object::get_attr): Delete.
+ 	(object::set_attr): Delete.
+ 	(object::get_property): New decls.
+ 	(object::set_property): New decls.
+ 	(object::maybe_get_property): New.
+ 	(object::get_property_as_tristate): New.
+ 	(object::set_json_attr): Delete.
+ 	(object::ensure_property_bag): New.
+ 	(graph::get_graph_kind): New.
+ 	(graph::set_graph_kind): New.
+ 	* diagnostics/html-sink.cc
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renamings.
+ 	(html_generation_options::dump): Likewise.
+ 	(html_builder::maybe_make_state_diagram): Likewise.
+ 	(html_builder::add_graph): Show SARIF and .dot src inline, if
+ 	requested.
+ 	* diagnostics/html-sink.h
+ 	(html_generation_options::m_show_state_diagrams_sarif): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagrams_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_graph_dot_src0): ...this.
+ 	* diagnostics/output-spec.cc
+ 	(html_scheme_handler::maybe_handle_kv): Rename keys.
+ 	(html_scheme_handler::get_keys): Likewise.
+ 	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
+ 	use json::property instances found within custom_sarif_properties
+ 	throughout, rather than types in diagnostics::state_graphs.
+ 	* diagnostics/state-graphs.cc: Deleted file.
+ 	* diagnostics/state-graphs.h: Delete almost all, except decl of
+ 	diagnostics::state_graphs::make_dot_graph.
+ 	* doc/invoke.texi: Update for changes to "experimental-html" sink
+ 	keys.
+ 	* json.cc (json::object::set_string): New.
+ 	(json::object::set_integer): New.
+ 	(json::object::set_bool): New.
+ 	(json::object::set_array_of_string): New.
+ 	* json.h: Include "label-text.h".
+ 	(struct json::property): New template.
+ 	(json::string_property): New.
+ 	(json::integer_property): New.
+ 	(json::bool_property): New.
+ 	(json::json_property): New.
+ 	(using json::array_of_string_property): New.
+ 	(struct json::enum_traits): New.
+ 	(enum_json::property): New.
+ 	(json::value::dyn_cast_array): New vfunc.
+ 	(json::value::dyn_cast_integer_number): New vfunc.
+ 	(json::value::set_string): New.
+ 	(json::value::set_integer): New.
+ 	(json::value::set_bool): New.
+ 	(json::value::set_array_of_string): New.
+ 	(json::value::maybe_get_enum): New.
+ 	(json::value::set_enum): New.
+ 	(json::array::dyn_cast_array): New.
+ 	(json::integer_number::dyn_cast_integer_number): New.
+ 	(object::maybe_get_enum): New.
+ 	(object::set_enum): New.
+ 
+ 2025-10-02  Aurelien Jarno  <aurelien@aurel32.net>
+ 
+ 	PR target/121652
+ 	* config/riscv/riscv.md (round_pattern): special case NaN input
+ 	instead of saving/restoring fflags.
+ 
+ 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: (scheme_handler::parse_bool_value):
+ 	Convert to...
+ 	(key_handler::parse_bool_value): ...this.
+ 	(scheme_handler::parse_enum_value): Convert to...
+ 	(key_handler::parse_enum_value): ...this.
+ 	(struct text_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class text_scheme_handler.
+ 	(text_scheme_handler::text_scheme_handler): Initialize the new
+ 	fields.
+ 	Add a "dc" param and use it to initialize m_show_color.
+ 	(struct sarif_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class sarif_scheme_handler.
+ 	(sarif_scheme_handler::sarif_scheme_handler): Initialize the new
+ 	fields.
+ 	(struct html_scheme_handler::decoded_args): Eliminate, moving
+ 	fields into class html_scheme_handler.
+ 	(html_scheme_handler::html_scheme_handler): Initialize the new
+ 	fields.
+ 	(context::report_unknown_key): Get keys from scheme rather than
+ 	passing them in.  Support client keys.
+ 	(context::parse_and_make_sink): Pass dc to output_factory ctor.
+ 	(output_factory::output_factory): Pass dc to text_scheme_handler.
+ 	(output_factory::get_scheme_handler): Make return non-const.
+ 	(output_factory::make_sink): Move key-handling here, rather than
+ 	in individual sinks.
+ 	(context::handle_kv): New.
+ 	(text_scheme_handler::make_sink): Eliminate key decoding.
+ 	(text_scheme_handler::decode_kv): Convert to...
+ 	(text_scheme_handler::maybe_handle_kv): ...this...
+ 	(text_scheme_handler::get_keys): ...and this.
+ 	(sarif_scheme_handler::make_sink): Eliminate key decoding.
+ 	(sarif_scheme_handler::decode_kv): Convert to...
+ 	(sarif_scheme_handler::maybe_handle_kv): ...this...
+ 	(sarif_scheme_handler::get_keys): ...and this.
+ 	(html_scheme_handler::make_sink): Eliminate key decoding.
+ 	(html_scheme_handler::decode_kv): Convert to...
+ 	(html_scheme_handler::maybe_handle_kv): ...this...
+ 	(html_scheme_handler::get_keys): ...and this.
+ 	(struct selftest::parser_test): Add "client_keys" arg, and update
+ 	for new param ordering.
+ 	(selftest::parser_test::parse_and_make_sink): New.
+ 	(selftest::test_output_arg_parsing): Move auto-fixes to caller.
+ 	(class selftest::test_key_handler): New.
+ 	(selftest::test_client_arg_parsing): New test.
+ 	(selftest::output_spec_cc_tests): Call it.
+ 	* diagnostics/output-spec.h (class key_handler): New.
+ 	(class scheme_handler): Move here from output-spec.cc.
+ 	(context::report_unknown_key): Simplify params.
+ 	(context::handle_kv): Update params.
+ 	(context::context): Add "client_keys" param.
+ 	(context::m_client_keys): New field.
+ 	(struct dc_spec_context): Update order of params.  Add
+ 	"client_keys" param.
+ 	* libgdiagnostics.cc (spec_context::spec_context): Pass nullptr
+ 	for client keys.
+ 	* opts-diagnostic.cc (opt_spec_context::opt_spec_context):
+ 	Likewise.  Update for new param ordering.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Do not allow
+ 	mask reductions.
+ 
+ 2025-10-02  Jan Hubicka  <jh@suse.cz>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* cfghooks.cc (merge_blocks): Fix typo in the previous change.
+ 
+ 2025-10-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122051
+ 	* config/riscv/predicates.md (pmode_reg_or_uimm5_operand): Implement
+ 	directly rather than using vector_length_operand.
+ 
+ 2025-10-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* aclocal.m4: Regenerated.
+ 	* configure: Likewise.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* tree-ssa-pre.cc (compute_antic_aux): Re-instantiate
+ 	ANTIC_IN value pruning by the old solution.
+ 
+ 2025-10-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122079
+ 	* tree-ssa-pre.cc (prune_clobbered_mems): Do not prune
+ 	values when the maximum expression set is involved.
+ 
+ 2025-10-01  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/122106
+ 	* config/riscv/bitmanip.md (crc expanders): Add predicate for
+ 	polynomial argument.  Drop unnecessary constraints.
+ 
+ 2025-10-01  Andreas Schwab  <schwab@linux-m68k.org>
+ 
+ 	PR target/122066
+ 	* config/m68k/m68k.md (adddi3, subdi3): Strip POST_INC and PRE_DEC
+ 	when generating high part of the destination operand.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_calculate_branch_prob): Improve dump file.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (determine_scale): Break out from ...
+ 	(afdo_adjust_guessed_profile): ... here.
+ 	(scale_bb_profile): New function.
+ 	(afdo_annotate_cfg): Use it.
+ 	* params.opt (auto-profile-bbs): New parmaeter.
+ 	* doc/invoke.texi (auto-profile-bbs): Document.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_unscaled_edge_count): New function based on
+ 	part of ...
+ 	(afdo_set_bb_count): ... this function; use it here.
+ 	(afdo_calculate_branch_prob): Try to determine edge counts using
+ 	phi args and goto locuses.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* Makefile.in (ALL_FDAS): New variable.
+ 	(ALL_HOST_BACKEND_OBJ): Use all.fda instead of cc1plus.fda
+ 	(all.fda): New target
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cfghooks.cc (merge_blocks): Choose more reliable or higher BB
+ 	count.
+ 
+ 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* predict.cc (unlikely_executed_stmt_p): Remove redundant check.
+ 	(rebuild_frequencies): Also recompute unlikely bbs when profile is
+ 	present or consistent.
+ 
+ 2025-10-01  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120560
+ 	* vr-values.cc (range_from_loop_direction): Use wi::ge_p rather
+ 	than wi::gt_p.
+ 
+ 2025-10-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122110
+ 	* tree-vect-loop.cc (vectorizable_reduction): Relax restriction
+ 	to mode-precision operations.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc (text_scheme_handler::make_sink): Use
+ 	the value of the "color" to determine if the sink's printer is
+ 	colorized.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Add comments.  Introduce a
+ 	"struct decoded_args" within each scheme_handler subclass,
+ 	and split out per-scheme key-value parsing from each make_sink
+ 	implementation into new per-scheme decode_kv member functions.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Move class scheme_handler out from
+ 	inside class output_factory.
+ 
+ 2025-09-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc: Rename "parsed_arg" to
+ 	"scheme_and_kvs" throughout.  Rename "unparsed_arg" to
+ 	"unparsed_spec" throughout, and make a member of
+ 	output_spec::context rather than passing it around.
+ 	* diagnostics/output-spec.h: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* opts-diagnostic.cc: Likewise.
+ 
+ 2025-09-30  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_functions_b_resolvable_from_a): New
+ 	function.
+ 	(TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A): New define.
+ 	* doc/tm.texi: Regenerate.
+ 	* doc/tm.texi.in: Add documentation for
+ 	TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.
+ 	* multiple_target.cc (redirect_to_specific_clone): Add new optimisation
+ 	logic.
+ 	(ipa_target_clone): Remove check for TARGET_HAS_FMV_TARGET_ATTRIBUTE.
+ 	* target.def: Document new hook..
+ 	* attribs.cc: (functions_b_resolvable_from_a) New function.
+ 	* attribs.h: (functions_b_resolvable_from_a) New function.
+ 
+ 2025-09-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* auto-profile.h (maybe_hot_afdo_count_p): Fix comment typos,
+ 	possiby -> possibly and ture -> true.
+ 	* gimplify.cc (build_asan_poison_call_expr): Change "of a for"
+ 	to "memory of the" in a comment.
+ 	* ipa-devirt.cc (add_type_duplicate): Fix comment typo,
+ 	mangles -> mangled.
+ 	* auto-profile.cc: Fix comment typo, -fauto-profile-inlinig
+ 	-> -fauto-profile-inlining.
+ 	(maybe_hot_afdo_count_p): Fix comment typos, possiby -> possibly
+ 	and ture -> true.
+ 	(function_instance::removed_icall_target): Fix comment typo,
+ 	Reutrn -> Return.
+ 	(function_instance::in_worklist_): Fix comment typo, Ture -> True.
+ 	(function_instance::offline): Fix comment typo, tolevel -> toplevel.
+ 	(function_instance::match): Fix comment typo, craeate_gcov ->
+ 	create_gcov.
+ 	(autofdo_source_profile::offline_external_functions): Fix comment
+ 	typos, tolevel -> toplevel and porfile -> profile.
+ 	(autofdo_source_profile::get_function_instance_by_inline_stack): Fix
+ 	comment typo, chekcing -> checking.
+ 	(struct scale): Fix comment typo, scalle -> scale.
+ 	* gimple.h (currently_expanding_gimple_stmt): Fix comment typo,
+ 	comminucating -> communicating.
+ 	* tree.h (canonical_type_used_p): Fix comment typo, ture -> true.
+ 	* tree-ssa-alias.cc (types_equal_for_same_type_for_tbaa_p): Likewise.
+ 	* ipa-profile.cc (contains_hot_call_p): Likewise.
+ 	* cfgexpand.cc (add_scope_conflicts_2): Fix comment typos,
+ 	Querry -> Query, referendd -> referenced and Querrying -> Querying.
+ 	* ipa-param-manipulation.cc (currently_expanding_gimple_stmt): Fix
+ 	comment typo, comminucating -> communicating.
+ 	* ipa-prop.cc (ipa_cst_ref_desc::refcount): Fix comment typo,
+ 	if -> is.
+ 	* tree-if-conv.cc (version_loop_for_if_conversion): Fix comment typos,
+ 	porfile -> profile and confistency -> consistency.
+ 	* fold-const.cc: Change size_int_wide in comment to size_int as
+ 	size_int_wide doesn't exit for 21 years.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::match): Sanity check
+ 	that gimple PHI has no location.
+ 	* tree-cfg.cc (assign_discriminators): Also remap locations
+ 	of gimple PHI arguments.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* basic-block.h (GCOV_COMPUTE_SCALE): Remove.
+ 	* ipa-profile.cc (ipa_profile_generate_summary): Use
+ 	profile-count scaling.
+ 	* sched-rgn.cc (compute_trg_info): Likewise.
+ 
+ 2025-09-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (stmt_loc_used_by_debug_info): New function.
+ 	(autofdo_source_profile::get_count_info): Use it.
+ 	(afdo_set_bb_count): Likewise.
+ 	(afdo_vpt_for_early_inline): Likewise.
+ 
+ 2025-09-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gimple-lower-bitint.cc (bitint_precision_kind): Fix inconsistency in
+ 	results between first and consecutive calls to this function.
+ 
+ 2025-09-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/121970
+ 	* config/i386/i386-options.cc (ix86_target_string): Remove
+ 	store_max.
+ 	(ix86_debug_options): Ditto.
+ 	(ix86_function_specific_print): Ditto.
+ 	(ix86_valid_target_attribute_tree): Ditto.
+ 	(ix86_option_override_internal): Ditto.
+ 	* config/i386/i386-expand.cc (ix86_expand_builtin): Ditto.
+ 	* config/i386/i386-options.h (ix86_target_string): Ditto.
+ 	* config/i386/i386.h (MOVE_MAX): Ditto.
+ 	(STORE_MAX_PIECES): Set by move_max.
+ 	* config/i386/i386.opt: Deprecate mmove-max=.
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX256_STORE_BY_PIECES):
+ 	Removed.
+ 	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.
+ 
+ 2025-09-28  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* pretty-print.cc (decode_utf8_char): Move forward declaration.
+ 	(mingw_utf8_str_to_utf16_str): New function to convert UTF-8 to UTF-16.
+ 	(is_console_handle): New function to detect Windows console handles.
+ 	(write_all): Add UTF-8 to UTF-16 conversion for console output,
+ 	falling back to WriteFile for ASCII strings and regular files.
+ 
+ 2025-09-27  ChengLulu  <chenglulu@loongson.cn>
+ 
+ 	PR target/99217
+ 	* config/mips/mips.cc (mips_start_function_definition):
+ 	Implements the functionality of '-fpatchable-function-entry='.
+ 	(mips_print_patchable_function_entry): Define empty function.
+ 	(TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define macro.
+ 
+ 2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.cc(mips_option_override):Add conditions
+ 	for use of the -mmips16e2 and -mips16 option.
+ 
+ 2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>
+ 
+ 	* config/mips/mips.md (fms<mode>4): Generates MSUBF.fmt
+ 	instructions.
+ 	(*fms<mode>4_msubf): Same as above.
+ 	(fnma<mode>4): Same as above.
+ 	(*fnma<mode>4_msubf): Same as above.
+ 
+ 2025-09-26  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	* doc/extend.texi: Clarify documentation about lists of
+ 	parameter forward declarations, and mention that more than one
+ 	of them are unnecessary.
+ 	* doc/invoke.texi: Document the new
+ 	-Wmultiple-parameter-fwd-decl-lists.
+ 
+ 2025-09-26  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_propagate_edge): Fix handling of precize 0
+ 	counts.
+ 
+ 2025-09-26  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc
+ 	(gcn_vectorize_support_vector_misalignment): Allow any alignment, as
+ 	long as it's not packed.
+ 
+ 2025-09-26  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* profile-count.h (profile_probability::operator/): Do not cap
+ 	twice.
+ 	(profile_probability::operator/=): Likewise.
+ 	(profile_probability::apply_scale): Do not watch for overflow.
+ 	(profile_count::probability_in): Watch overflow.
+ 
+ 2025-09-26  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/121875
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_can_inline_p): New function.
+ 	(TARGET_CAN_INLINE_P): Define.
+ 
+ 2025-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Use "bitwise" over
+ 	"bit-wise".
+ 	* doc/extend.texi (Vector Extensions): Use "elementwise"
+ 	over "element-wise".
+ 	* doc/md.texi (Standard Names): Ditto.
+ 
+ 2025-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Vector Extensions): Fix grammar.
+ 
+ 2025-09-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/invoke.texi (-ffp-int-builtin-inexact): Reword to match
+ 	the default value with the default C standard.
+ 
+ 2025-09-24  Dusan Stojkovic  <Dusan.Stojkovic@rt-rk.com>
+ 
+ 	PR target/121778
+ 	* config/riscv/riscv.md: Add define_split pattern.
+ 
+ 2025-09-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* gimple-fold.cc (gimple_fold_builtin_assume_aligned): New function.
+ 	(gimple_fold_builtin): Call gimple_fold_builtin_assume_aligned
+ 	for BUILT_IN_ASSUME_ALIGNED.
+ 	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove handling
+ 	of BUILT_IN_ASSUME_ALIGNED.
+ 
+ 2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.md: Include neoversev2.md.
+ 	* config/aarch64/tuning_models/neoversev2.h: Enable dispatch
+ 	scheduling and add dispatch constraints.
+ 	* config/aarch64/neoversev2.md: New file and new instruction attribute
+ 	neoversev2_dispatch.
+ 
+ 2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config.gcc: Add aarch64-sched-dispatch.o to extra_objs.
+ 	* config/aarch64/aarch64-protos.h (struct tune_params): New
+ 	field for dispatch scheduling.
+ 	(struct dispatch_constraint_info): New struct for dispatch scheduling.
+ 	* config/aarch64/aarch64-tuning-flags.def
+ 	(AARCH64_EXTRA_TUNING_OPTION): New flag to enable dispatch scheduling.
+ 	* config/aarch64/aarch64.cc (TARGET_SCHED_DISPATCH): Implement
+ 	target hook.
+ 	(TARGET_SCHED_DISPATCH_DO): Likewise.
+ 	(aarch64_override_options_internal): Add check for definition of
+ 	dispatch constraints if dispatch-scheduling tune flag is set.
+ 	* config/aarch64/t-aarch64: Add aarch64-sched-dispatch.o.
+ 	* config/aarch64/tuning_models/a64fx.h: Initialize fields for
+ 	dispatch scheduling in tune_params.
+ 	* 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/emag.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/olympus.h: Likewise.
+ 	* config/aarch64/tuning_models/qdf24xx.h: Likewise.
+ 	* config/aarch64/tuning_models/saphira.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderx.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderx2t99.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderx3t110.h: Likewise.
+ 	* config/aarch64/tuning_models/thunderxt88.h: Likewise.
+ 	* config/aarch64/tuning_models/tsv110.h: Likewise.
+ 	* config/aarch64/tuning_models/xgene1.h: Likewise.
+ 	* config/aarch64/aarch64-sched-dispatch.cc: New file for
+ 	dispatch scheduling for aarch64.
+ 	* config/aarch64/aarch64-sched-dispatch.h: New header file.
+ 
+ 2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve.md: Annotate instructions with
+ 	attribute sve_type.
+ 	* config/aarch64/aarch64-sve2.md: Likewise.
+ 	* config/aarch64/aarch64.md (sve_type): New attribute sve_type.
+ 	* config/aarch64/iterators.md (sve_type_unspec): New int attribute.
+ 	(sve_type_int): New code attribute.
+ 	(sve_type_fp): New int attribute.
+ 
+ 2025-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116816
+ 	* tree-vect-stmts.cc (get_load_store_type): Allow multi-lane
+ 	single-element interleaving to fall back to VMAT_ELEMENTWISE.
+ 	Fall back to VMAT_ELEMENTWISE when we cannot handle a load
+ 	permutation.
+ 	(vectorizable_load): Do not check a load permutation
+ 	for VMAT_ELEMENTWISE.  Handle grouped loads with
+ 	VMAT_ELEMENTWISE and directly apply a load permutation.
+ 
+ 2025-09-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_load_store_type): Explicitly fail
+ 	when we end up with VMAT_ELEMENTWISE for BB vectorization.
+ 
+ 2025-09-24  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR tree-optimization/122040
+ 	* doc/invoke.texi (-fisolate-erroneous-paths-dereference):
+ 	Mention it also turns division by zero into a trap in addition
+ 	to null dereference.
+ 
+ 2025-09-24  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR middle-end/66462
+ 	* config/loongarch/loongarch.md (FCLASS_MASK): Add 3.
+ 	(fclass_optab): Assign isnan for 3.
+ 	(<FCLASS_MASK:fclass_optab><ANYF:mode>2): If FCLASS_MASK is 3,
+ 	only enable when -fsignaling-nans.
+ 
+ 2025-09-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add pattern of mult and reuse the widen-mul
+ 	by for keyword.
+ 
+ 2025-09-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/121986
+ 	* diagnostics/sarif-sink.cc: Include "intl.h".
+ 	(sarif_builder::make_message_describing_fix_it_hint): New.
+ 	(sarif_builder::make_fix_object): Attempt to auto-generate a
+ 	description for fix-it hints.
+ 
+ 2025-09-23  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/121810
+ 	* config/arm/mve.md (mve_mov<mode>): Move the Ui constraint
+ 	and pool_range attributes to the final alternative.  Fix
+ 	the forward range value and correctly name the negative
+ 	range.
+ 
+ 2025-09-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR middle-end/122031
+ 	* tree-ssa-math-opts.cc (build_and_insert_cast): Fix the typo
+ 	of self assignment.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_process_target_version_attr):
+ 	Remove warning.
+ 	* config/aarch64/aarch64.opt: Mark -Wno-experimental-fmv-target
+ 	deprecated.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* attribs.cc (is_function_default_version): Update to handle
+ 	target_clones.
+ 	* cgraph.h (FOR_EACH_FUNCTION_REMOVABLE): New macro.
+ 	* multiple_target.cc (expand_target_clones): Update logic to delete
+ 	empty target_clones and modify diagnostic.
+ 	(ipa_target_clone): Update to use FOR_EACH_FUNCTION_REMOVABLE.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* attribs.h (common_function_versions): Removed.
+ 	* attribs.cc (common_function_versions): Removed.
+ 	* config/aarch64/aarch64.cc (aarch64_common_function_versions): Removed.
+ 	(aarch64_same_function_versions): New function to check if two version
+ 	strings imply the same version.
+ 	(TARGET_OPTION_FUNCTION_VERSIONS): Removed.
+ 	(TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro.
+ 	* config/i386/i386.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed.
+ 	* config/rs6000/rs6000.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed.
+ 	* config/riscv/riscv.cc (riscv_same_function_versions):  New function
+ 	to check if two version strings imply the same version.
+ 	(riscv_common_function_versions): Removed.
+ 	(TARGET_OPTION_FUNCTION_VERSIONS): Removed.
+ 	(TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro.
+ 	* doc/tm.texi: Regenerated.
+ 	* target.def: Remove common_version hook and add same_function_version
+ 	hook.
+ 	* doc/tm.texi.in: Ditto.
+ 	* tree.cc (distinct_version_decls): New function.
+ 	(mergeable_version_decls): Ditto.
+ 	* tree.h (distinct_version_decls): New function.
+ 	(mergeable_version_decls): Ditto.
+ 	* hooks.h (hook_stringslice_stringslice_unreachable): New function.
+ 	* hooks.cc (hook_stringslice_stringslice_unreachable): New function.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/118313
+ 	* cgraph.cc (delete_function_version): Made public static member of
+ 	cgraph_node.
+ 	* cgraph.h (delete_function_version): Ditto.
+ 	* cgraphunit.cc (analyze_functions): Add logic for target version
+ 	dependencies.
+ 	* ipa.cc (symbol_table::remove_unreachable_nodes): Ditto.
+ 	* multiple_target.cc (create_dispatcher_calls): Change to support
+ 	target version semantics.
+ 	(ipa_target_clone): Change to dispatch all function sets in
+ 	target_version semantics, and to have early and late pass.
+ 	(expand_target_clones): Add logic for cases of target_clones with no
+ 	defaults.
+ 	(is_simple_target_clones_case): New function.
+ 	(class pass_target_clone): New parameter for early or late pass.
+ 	* config/aarch64/aarch64.cc: (aarch64_get_function_versions_dispatcher):
+ 	Refactor with the assumption that the DECL node will be default.
+ 	* config/riscv/riscv.cc: (riscv_get_function_versions_dispatcher):
+ 	Refactor with the assumption that the DECL node will be default.
+ 	* passes.def: Split target_clones pass into early and late version.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/118339
+ 	* target.def: Add check_target_clone_version hook.
+ 	* tree.cc (get_clone_attr_versions): Add filter argument.
+ 	(get_clone_versions): Add filter argument.
+ 	* tree.h (get_clone_attr_versions): Add filter.
+ 	(get_clone_versions): Add filter argument.
+ 	* config/aarch64/aarch64.cc (aarch64_check_target_clone_version):
+ 	New function
+ 	(TARGET_CHECK_TARGET_CLONE_VERSION): New define.
+ 	* config/riscv/riscv.cc (riscv_check_target_clone_version):
+ 	New function.
+ 	(TARGET_CHECK_TARGET_CLONE_VERSION): New define.
+ 	* doc/tm.texi: Regenerated.
+ 	* doc/tm.texi.in: Add documentation for new hook.
+ 	* hooks.h (hook_stringslice_locationtptr_true): New function.
+ 	* hooks.cc (hook_stringslice_locationtptr_true): New function.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_process_target_version_str): New function..
+ 	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr): Refactor to take
+ 	string_slice.
+ 	(riscv_process_target_version_str): New function.
+ 	* config/riscv/riscv.cc (parse_features_for_version): Refactor to take
+ 	string_slice.
+ 	(riscv_compare_version_priority): Ditto.
+ 	(dispatch_function_versions): Change to pass location.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* attribs.cc (make_dispatcher_decl): Move duplicated cgraph logic into
+ 	this function and change to use targetm.mangle_decl_assembler_name for
+ 	mangling.
+ 	* cgraph.cc (cgraph_node::insert_new_function_version): Record
+ 	assembler_name.
+ 	* cgraph.h (struct cgraph_function_version_info): Add assembler_name.
+ 	(struct cgraph_node): Add dispatcher_resolver_function and
+ 	is_target_clone.
+ 	* config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Change to
+ 	support string_slice.
+ 	(aarch64_process_target_version_attr): Ditto.
+ 	(get_feature_mask_for_version): Ditto.
+ 	(aarch64_mangle_decl_assembler_name): Add logic for mangling dispatched
+ 	symbol and resolver.
+ 	(get_suffixed_assembler_name): Removed.
+ 	(make_resolver_func): Refactor to use
+ 	aarch64_mangle_decl_assembler_name for mangling.
+ 	(aarch64_generate_version_dispatcher_body): Remove remangling.
+ 	(aarch64_get_function_versions_dispatcher): Refactor to remove
+ 	duplicated cgraph logic.
+ 	* config/i386/i386-features.cc
+ 	(ix86_mangle_function_version_assembler_name): Refactor to use
+ 	clone_identifier and to mangle default.
+ 	(ix86_mangle_decl_assembler_name): Add logic for mangling dispatched
+ 	symbol and resolver.
+ 	(ix86_get_function_versions_dispatcher): Remove duplicated cgraph
+ 	logic.
+ 	(make_resolver_func): Refactor to use ix86_mangle_decl_assembler_name
+ 	for mangling.
+ 	* config/riscv/riscv.cc (riscv_mangle_decl_assembler_name): Add logic
+ 	for FMV mangling.
+ 	(get_suffixed_assembler_name): Removed.
+ 	(make_resolver_func): Refactor to use riscv_mangle_decl_assembler_name
+ 	for mangling.
+ 	(riscv_generate_version_dispatcher_body): Remove unnecessary remangling.
+ 	(riscv_get_function_versions_dispatcher): Remove duplicated cgraph
+ 	logic.
+ 	* config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): New
+ 	function.
+ 	(rs6000_get_function_versions_dispatcher): Remove duplicated cgraph
+ 	logic.
+ 	(make_resolver_func): Refactor to use rs6000_mangle_decl_assembler_name
+ 	for mangling.
+ 	(rs6000_mangle_function_version_assembler_name): New function.
+ 	* multiple_target.cc (create_dispatcher_calls): Remove mangling code.
+ 	(get_attr_str): Removed.
+ 	(separate_attrs): Ditto.
+ 	(is_valid_asm_symbol): Removed.
+ 	(create_new_asm_name): Ditto.
+ 	(expand_target_clones): Refactor to use
+ 	targetm.mangle_decl_assembler_name for mangling and be more general.
+ 	* tree.cc (get_target_clone_attr_len): Removed.
+ 	* tree.h (get_target_clone_attr_len): Removed.
+ 
+ 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* cgraph.h (clone_identifier): New function.
+ 	* cgraphclones.cc (clone_identifier): New function.
+ 	(clone_function_name): Refactored to use clone_identifier.
+ 	(is_valid_asm_symbol): New helper function.
+ 
+ 2025-09-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/121994
+ 	* config/i386/x86-tune-costs.h (znver2_cost): Set
+ 	vect_unroll_limit to 1.
+ 	(znver1_cost): Ditto.
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Adjust count number for	{AVX256,AVX512}_SPLIT_REGS.
+ 
+ 2025-09-22  Peter Bergner  <bergner@tenstorrent.com>
+ 
+ 	PR target/121982
+ 	* config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_byte): New
+ 	define_insn_reservation.
+ 
+ 2025-09-22  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121762
+ 	* builtins.cc (fold_builtin_constant_p): Make non-static.
+ 	* builtins.h (fold_builtin_constant_p): New declaration.
+ 	* gimple-fold.cc (gimple_fold_builtin_constant_p): New function.
+ 	(gimple_fold_builtin): Call gimple_fold_builtin_constant_p
+ 	for BUILT_IN_CONSTANT_P.
+ 	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Set PROP_last_full_fold
+ 	on curr_properties. Remove handling of BUILT_IN_CONSTANT_P.
+ 
+ 2025-09-22  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/libgdiagnostics/index.rst: Drop broken reference to
+ 	`modindex`.
+ 
+ 2025-09-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR middle-end/122021
+ 	* tree-ssa-math-opts.cc (build_and_insert_cast): Add sign-extend
+ 	check before prop.
+ 
+ 2025-09-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122016
+ 	* tree-ssa-sccvn.cc (vn_nary_simplify): Do not use the
+ 	simplified expression when it references abnormals.
+ 
+ 2025-09-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122023
+ 	* tree-vect-patterns.cc (vect_recog_rotate_pattern): Disable
+ 	for rotates.
+ 
+ 2025-09-22  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/116205
+ 	* config/pru/pru-passes.cc (class pass_pru_tiabi_check): Make
+ 	this an IPA pass.
+ 	(chkp_type_has_function_pointer): Remove.
+ 	(check_type_tiabi_compatibility): New function.
+ 	(chk_function_decl): Rename.
+ 	(check_function_decl): Simplify.
+ 	(check_op_callback): Rework to use
+ 	check_type_tiabi_compatibility.
+ 	(pass_pru_tiabi_check::execute): Rework to scan all symbols and
+ 	gimple contents of all defined functions.
+ 	* config/pru/pru-passes.def (INSERT_PASS_AFTER): Move after
+ 	pass_ipa_auto_profile_offline.
+ 	* config/pru/pru-protos.h (make_pru_tiabi_check): New
+ 	declaration to mark as IPA pass.
+ 	(make_pru_minrt_check): Specify it is making a gimple pass.
+ 	* doc/invoke.texi: Document that bit-fields are now rejected for
+ 	TI ABI.
+ 
+ 2025-09-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_unreachable): Don't check for forced labels.
+ 
+ 2025-09-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cgraphclones.cc (cgraph_node::create_version_clone): Recompute
+ 	calls_comdat_local
+ 
+ 2025-09-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cgraph.cc (cgraph_edge::maybe_hot_p): For AFDO profiles force
+ 	count to be non-zero.
+ 
+ 2025-09-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* auto-profile.cc (autofdo_source_profile::read): Scale profile up to
+ 	profile_count::n_bits - 10.
+ 
+ 2025-09-21  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* ipa-inline-transform.cc (clone_inlined_nodes): Add KEEP_OFFLINE_COPY
+ 	parameter.
+ 	(inline_call): Sanity check profile and if it is clearly broken do
+ 	not subtract profile from original function.
+ 	* ipa-inline.cc (recursive_inlining): Update.
+ 	* ipa-inline.h (clone_inlined_nodes): Update.
+ 
+ 2025-09-20  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* doc/invoke.texi (--param max-devirt-targets) Document.
+ 	* ipa-devirt.cc (ipa_devirt): Implement muti-target
+ 	devirtualization.
+ 	* params.opt (max-devirt-targets): New parameter.
+ 
+ 2025-09-19  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* ira.cc (setup_reg_equiv): Retain function invariant
+ 	equivalences.
+ 
+ 2025-09-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Take gimple*
+ 	instead of iterator.
+ 	(optimize_agr_copyprop): Likewise.
+ 	(simplify_builtin_call): Update call to optimize_aggr_zeroprop.
+ 	(pass_forwprop::execute): Update calls to optimize_aggr_zeroprop
+ 	and optimize_agr_copyprop.
+ 
+ 2025-09-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop_1): Change return type
+ 	to void.
+ 	(optimize_aggr_zeroprop): Likewise.
+ 	(optimize_agr_copyprop_1): Likewise.
+ 	(optimize_agr_copyprop_arg): Likewise.
+ 	(optimize_agr_copyprop): Likewise.
+ 	(simplify_builtin_call): Handle update of the return type
+ 	of optimize_aggr_zeroprop.
+ 	(pass_forwprop::execute): Likewise and optimize_agr_copyprop.
+ 
+ 2025-09-19  Michael Eager  <eager@eagercon.com>
+ 
+ 	PR target/118280
+ 	* config/microblaze/iterators.md: New.
+ 	* config/microblaze/microblaze-protos.h: Add
+ 	microblaze_subword_address.
+ 	* config/microblaze/microblaze.cc: Ditto.
+ 	* config/microblaze/microblaze.md: constants: Add UNSPECV_CAS_BOOL,
+ 	UNSPECV_CAS_MEM, UNSPECV_CAS_VAL, UNSPECV_ATOMIC_FETCH_OP
+ 	type: add atomic
+ 	* config/microblaze/sync.md: Add atomic_fetch_<atomic_optab>si
+ 	atomic_test_and_set
+ 
+ 2025-09-19  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* ipa-fnsummary.cc (estimate_edge_devirt_benefit): Handle speculative
+ 	edges correctly.
+ 	(estimate_edge_size_and_time): Even when not collecting hints,
+ 	devirtualization affects function size.
+ 	(estimate_calls_size_and_time): Do not use tables when devirtualization
+ 	is possible.
+ 
+ 2025-09-19  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* cgraph.cc (cgraph_edge::make_direct): Do not ICE when there are
+ 	multiple speculations to comptaible targets
+ 	(cgraph_edge::combined_sreal_frequency): New member function.
+ 	* cgraph.h (cgraph_edge::combined_sreal_frequency): Declare.
+ 	* ipa-cp.cc (devirtualization_time_bonus): Return sreal; consider
+ 	profile.
+ 	(estimate_local_effects): Likewise.
+ 
+ 2025-09-19  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/121856
+ 	* doc/gm2.texi (Compiler options): New item -fwideset.
+ 
+ 2025-09-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/121983
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Make sure
+ 	object is a REG before asking for its REGNO.  Fix a trivial
+ 	whitespace nit.
+ 
+ 2025-09-19  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc
+ 	(shuffle_slide_patterns): Cover more permutations.
+ 
+ 2025-09-19  Jim Lin  <jim@andestech.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_compute_frame_info): Remove the
+ 	dedicated calculation for RVE.
+ 
+ 2025-09-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config.gcc (riscv*); Add riscv-bclr-lowest-set-bit.o to extra_objs.
+ 	* config/riscv/riscv-bclr-lowest-set-bit.cc: New file.
+ 	* config/riscv/riscv-passes.def: Add new pass after combine.
+ 	* config/riscv/riscv-protos.h (make_pass_bclr_lowest_set_bit): Add
+ 	prototype.
+ 	* config/riscv/t-riscv: Add rules to build riscv-bclr-lowest-set-bit.o.
+ 
+ 2025-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-pre.cc (compute_antic_aux): Remove dead code.
+ 
+ 2025-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_stmt_vec_info::store_count): Remove.
+ 	(DR_GROUP_STORE_COUNT): Likewise.
+ 	* tree-vect-stmts.cc (vect_transform_stmt): Remove non-SLP
+ 	path.
+ 
+ 2025-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_get_num_copies): Remove unused
+ 	overload.  Remove defaulted vectype argument and always
+ 	use the vector type of the SLP node.
+ 	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
+ 	Adjust.
+ 	(vectorizable_lane_reducing): Likewise.
+ 	(vect_transform_reduction): Likewise.
+ 	(vectorizable_nonlinear_induction): Likewise.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Likewise.
+ 
+ 2025-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_tree::vec_stmts_size): Remove.
+ 	(SLP_TREE_NUMBER_OF_VEC_STMTS): Likewise.
+ 	* tree-vect-loop.cc (vectorizable_reduction): Adjust.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vect_transform_lc_phi): Likewise.
+ 	(vectorizable_recurr): Likewise.
+ 	(vectorizable_induction): Likewise.
+ 	(vectorizable_live_operation): Likewise.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Do not set
+ 	SLP_TREE_NUMBER_OF_VEC_STMTS.
+ 	(vect_slp_analyze_node_operations_1): Likewise.
+ 	(vect_slp_analyze_node_operations): Likewise.
+ 	(vect_prologue_cost_for_slp): Adjust.
+ 	(vect_create_constant_vectors): Likewise.
+ 	(vect_get_slp_vect_def): Likewise.
+ 	(vect_transform_slp_perm_load_1): Likewise.
+ 	(vectorizable_slp_permutation_1): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 	(vectorize_slp_instance_root_stmt): Likewise.
+ 	* tree-vect-stmts.cc (vect_model_simple_cost): Likewise.
+ 	(vectorizable_bswap): Likewise.
+ 	(vectorizable_call): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_early_exit): Likewise.
+ 
+ 2025-09-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/client-data-hooks.h (client_data_hooks::dump): New.
+ 	* diagnostics/context.cc (context::dump): Dump
+ 	m_client_data_hooks.
+ 	(client_data_hooks::dump): New.
+ 	* diagnostics/logical-locations.h
+ 	(logical_locations::manager::dump): New.
+ 	* diagnostics/selftest-logical-locations.cc: Include
+ 	"diagnostics/dumping.h".
+ 	(test_manager::dump): New.
+ 	* diagnostics/selftest-logical-locations.h (test_manager::dump):
+ 	New decl.
+ 	* libgdiagnostics.cc: Include "diagnostics/dumping.h".
+ 	(impl_logical_location_manager::dump): New.
+ 	* tree-logical-location.cc: Include "diagnostics/dumping.h".
+ 	(tree_logical_location_manager::dump): New.
+ 	* tree-logical-location.h (tree_logical_location_manager::dump):
+ 	New decl.
+ 
+ 2025-09-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/paths-output.cc: Update for conversion of
+ 	location_aspect to enum class.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* input.cc: Likewise.
+ 	* input.h: Likewise.
+ 
+ 2025-09-18  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/buffering.cc: Drop include of "diagnostic.h".
+ 	* diagnostics/buffering.h: Likewise.
+ 	* diagnostics/context.h (diagnostics::metadata): Add forward decl.
+ 	* diagnostics/html-sink.cc: Drop include of "diagnostic.h".
+ 	* diagnostics/lazy-paths.cc: Likewise.
+ 	* diagnostics/macro-unwinding.cc: Likewise.
+ 	* diagnostics/macro-unwinding.h (diagnostics:diagnostic_info): Add
+ 	forward decl.
+ 	* diagnostics/option-classifier.h: Include
+ 	"diagnostics/option-id.h" and "diagnostics/kinds.h".
+ 	(diagnostics:diagnostic_info): Add forward decl.
+ 	* diagnostics/output-spec.cc: Drop include of "diagnostic.h".
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/paths.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/selftest-context.cc: Likewise.
+ 	* diagnostics/selftest-paths.cc: Likewise.
+ 	* diagnostics/source-printing-options.h: Include
+ 	"rich-location.h".
+ 	* diagnostics/text-sink.cc: Drop include of "diagnostic.h".
+ 
+ 2025-09-18  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR tree-optimization/121894
+ 	* tree-sra.cc (scan_function): Set grp_assignment_write to 1 when
+ 	specially handle call to .DEFERRED_INIT.
+ 
+ 2025-09-18  Zhongyao Chen  <chenzhongyao.hit@gmail.com>
+ 
+ 	PR target/121910
+ 	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
+ 	Return RVV_M8 when estimated lmul is too large.
+ 
+ 2025-09-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/121977
+ 	* omp-low.cc (lower_omp_regimplify_operands_p): If maybe_lookup_decl
+ 	returns NULL, use maybe_lookup_decl_in_outer_ctx as fallback.
+ 
+ 2025-09-18  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_write_zt<SVE_FULL:mode>): New insn.
+ 	(aarch64_sme_lut_zt): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): New type format "%T".
+ 	(struct luti_lane_zt_base): New function shape.
+ 	(SHAPE): Likewise.
+ 	(struct write_zt_def): Likewise.
+ 	(struct write_lane_zt_def): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-shapes.h: New function shape.
+ 	* config/aarch64/aarch64-sve-builtins-sme.cc (class svluti_zt_impl): New function expander.
+ 	(class svwrite_zt_impl): Likewise.
+ 	(class svwrite_lane_zt_impl): Likewise.
+ 	(FUNCTION): Likewise
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svwrite_zt): New function shape.
+ 	(svwrite_lane_zt): Likewise.
+ 	(svluti4_zt): Likewise.
+ 	* config/aarch64/aarch64-sve-builtins-sme.h: New function base.
+ 	* config/aarch64/aarch64-sve-builtins.h: Mention the arrays of function_group_info by name.
+ 
+ 2025-09-18  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Conditonally define
+ 	`__ARM_FEATURE_SME_LUTv2" macro.
+ 	* config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION("sme-lutv2")): New
+ 	optional architecture extension.
+ 	* config/aarch64/aarch64.h (TARGET_SME_LUTv2): New macro.
+ 	* doc/invoke.texi: Document `+sme-lutv2` flag.
+ 
+ 2025-09-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add pattern for SAT_MUL form 5.
+ 	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
+ 	Try match pattern for IOR.
+ 
+ 2025-09-18  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (update_counts_for_self_gen_clones): Do not update
+ 	call frequency for local profiles.
+ 
+ 2025-09-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/87615
+ 	* tree-ssa-sccvn.cc (vn_nary_op_insert_into): When inserting
+ 	a new predicate or location into an existing predicate list
+ 	make sure to not exceed 8 locations.  Avoid copying things
+ 	when we later eventually throw them away.
+ 	(vn_nary_op_insert_pieces_predicated): Avoid expensive check
+ 	when not checking.
+ 	(dominated_by_p_w_unex): Apply the limit on a single successors
+ 	predecessor count consistently.
+ 
+ 2025-09-18  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR middle-end/121922
+ 	* omp-general.cc (omp_dynamic_cond): Use 'unshare_expr' for
+ 	the user condition.
+ 
+ 2025-09-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121720
+ 	* tree-ssa-pre.cc (bitmap_set_subtract_expressions): Add
+ 	flag to tell whether we should copy instead of prune the
+ 	value set.
+ 	(compute_antic_aux): Remove intersection of ANTIC_IN with
+ 	the old solution.  When subtracting TMP_GEN from
+ 	ANTIC_OUT do not prune the value set when MAX was involved
+ 	in the ANTIC_OUT computation.
+ 
+ 2025-09-18  hongtao.liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES):
+ 	Remove SPR/GNR/DMR.
+ 	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.
+ 
+ 2025-09-17  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* sarif-replay.cc (set_defaults): Initialize
+ 	m_debug_physical_locations.
+ 
+ 2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121962
+ 	* tree-ssa-forwprop.cc (same_for_assignment): New function.
+ 	(optimize_agr_copyprop_1): Use same_for_assignment to check for
+ 	nop copies.
+ 	(optimize_agr_copyprop): Likewise.
+ 
+ 2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (new_src_based_on_copy): An early out
+ 	if both are decls.
+ 
+ 2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Split out
+ 	the case where `operand_equal_p (dest, src2)` is false into ...
+ 	(new_src_based_on_copy): This. New function.
+ 	(optimize_agr_copyprop_arg): Use new_src_based_on_copy
+ 	instead of operand_equal_p to find the new src.
+ 
+ 2025-09-17  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR tree-optimization/58727
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
+ 	In (A & C1) | C2, if (C1|C2) results in a constant with a single bit
+ 	clear, then adjust C1 appropriately.
+ 
+ 2025-09-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-inline.cc (maybe_copy_this_notrap): New function.  Also copy
+ 	the TREE_THIS_NOTRAP flag for parameters when the argument is a full
+ 	object and the parameter's type is self-referential.
+ 	(remap_gimple_op_r): Call maybe_copy_this_notrap.
+ 	(copy_tree_body_r): Likewise.
+ 
+ 2025-09-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*widen_first_<any_extend:su>_vx_<mode>):
+ 	Add helper bridge pattern for vwaddu.vx combine.
+ 	(*widen_<any_widen_binop:optab>_<any_extend:su>_vx_<mode>): Add
+ 	new pattern to match vwaddu.vx combine.
+ 	* config/riscv/iterators.md: Add code attr to get extend CODE.
+ 	* config/riscv/vector-iterators.md: Add Dmode iterator for
+ 	widen.
+ 
+ 2025-09-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/invoke.texi (Wimplicit-fallthrough=): Document that also C23
+ 	provides a standard way to suppress the warning with [[fallthrough]];.
+ 
+ 2025-09-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (#include):
+ 	Add "addresses.h".
+ 	* config/xtensa/xtensa.h (REGNO_OK_FOR_BASE_P):
+ 	Simplify to just a call to GP_REG_P().
+ 	(BASE_REG_P): Replace REGNO_OK_FOR_BASE_P() with the equivalent
+ 	call to regno_ok_for_base_p().
+ 
+ 2025-09-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR middle-end/66462
+ 	* config/aarch64/aarch64.md (isnan<mode>2): Add new expander.
+ 
+ 2025-09-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_load_store_type): Get in a flag
+ 	whether a SLP_TREE_LOAD_PERMUTATION on the node can be
+ 	code generated and use it.  Fix the condition on using
+ 	strided gather/scatter to avoid dropping a meaningful
+ 	permutation.
+ 	(vectorizable_store): Adjust.
+ 	(vectorizable_load): Analyze the permutation early and
+ 	pass the result down to get_load_store_type.  Fix the
+ 	condition on when we are allowed to elide a load permutation.
+ 
+ 2025-09-16  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/121602
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(gimple_folder::fold_active_lanes_to): Add force_vector
+ 	statement.
+ 
+ 2025-09-16  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config.gcc: Accept RISC-V profiles in `--with-arch`.
+ 	* config/riscv/arch-canonicalize: Add profile detection and
+ 	skip canonicalization for profiles.
+ 
+ 2025-09-16  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (struct riscv_profiles): Add comments.
+ 	(RISCV_PROFILE): Removed.
+ 	* config/riscv/riscv-profiles.def: New file.
+ 
+ 2025-09-16  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: Imply zicsr.
+ 
+ 2025-09-16  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/predicates.md (avx_vbroadcast128_operand): New
+ 	predicate.
+ 	* config/i386/sse.md (*avx_vbroadcastf128_<mode>_perm): New
+ 	pre_reload splitter.
+ 
+ 2025-09-15  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (TARGET_CMODEL, SET_CMODEL): Define.
+ 
+ 2025-09-15  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* configure.ac: Adjust base register in linker test for large
+ 	TOC support.
+ 	* configure: Rebuild.
+ 
+ 2025-09-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Remove unnecessary cast of unsigned
+ 	SAT_MUL for widen-mul.
+ 
+ 2025-09-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-ssa-math-opts.cc (build_and_insert_cast): Refine
+ 	the cast insert by check the rhs of val.
+ 
+ 2025-09-15  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/121411
+ 	PR debug/121903
+ 	* ctfc.h (ctf_add_sou): Change size arg from size_t to uHWI.
+ 	* ctfc.cc (ctf_add_sou): Likewise.
+ 
+ 2025-09-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121751
+ 	PR tree-optimization/121418
+ 	PR tree-optimization/121417
+ 	* tree-ssa-forwprop.cc (split_core_and_offset_size): New function.
+ 	(optimize_agr_copyprop_1): Allow for the same
+ 	address but different type accesses via a VCE.
+ 
+ 2025-09-15  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR tree-optimization/121772
+ 	* match.pd: Add type check to reduc(ctor) pattern.
+ 
+ 2025-09-15  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def: Add avr32eb14, avr32eb20,
+ 	avr32eb28, avr32eb32.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2025-09-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121934
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): If a
+ 	single instruction can store or move the whole block of memory,
+ 	use vector instruction and don't align destination.
+ 
+ 2025-09-15  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/121906
+ 	* config/loongarch/loongarch.md (*bstrins_<mode>_for_ior_mask):
+ 	Always create a new pseudo for the input register of the bstrins
+ 	instruction.
+ 
+ 2025-09-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121904
+ 	* tree.cc (get_range_pos_neg): Return 3 if arg doesn't have
+ 	scalar integral type.
+ 	* expr.cc (expand_expr_real_2) <CASE_CONVERT>: Only choose between
+ 	sign and zero extension based on costs for scalar integral inner
+ 	types.
+ 
+ 2025-09-15  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR middle-end/121391
+ 	* gimplify.cc (gimplify_asm_expr): In case an asm operand is an
+ 	error node, bail out early.
+ 
+ 2025-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/121935
+ 	* ipa-free-lang-data.cc (find_decls_types_r): Visit DECL_ARGUMENTS
+ 	chain manually.
+ 
+ 2025-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (stmt_vec_info_type::permute_info_type): Add.
+ 	(vectorizable_slp_permutation): Declare.
+ 	* tree-vect-slp.cc (vectorizable_slp_permutation): Export.
+ 	(vect_slp_analyze_node_operations_1): Set permute_info_type
+ 	on permute nodes successfully analyzed.
+ 	(vect_schedule_slp_node): Dispatch to vect_transform_stmt
+ 	for all nodes.
+ 	* tree-vect-stmts.cc (vect_transform_stmt): Remove redundant
+ 	dump, handle permute_info_type.
+ 
+ 2025-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_load_store_type): Use VMAT_STRIDED_SLP
+ 	for negative stride accesses when VMAT_CONTIGUOUS_REVERSE
+ 	isn't applicable.
+ 
+ 2025-09-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_load_store_data::n_perms): New.
+ 	* tree-vect-stmts.cc (vectorizable_load): Analyze
+ 	SLP_TREE_LOAD_PERMUTATION only once and remember n_perms.
+ 	Verify the transform-time n_perms against the value stored
+ 	during analysis.
+ 
+ 2025-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* target.def (dtors_from_cxa_atexit): Properly mark up
+ 	__cxa_atexit as code.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2025-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/121205
+ 	* lra-constraints.cc (curr_insn_transform): Stop processing on
+ 	error.
+ 
+ 2025-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (Optimize Options): Editorial changes around
+ 	-fprofile-partial-training.
+ 
+ 2025-09-12  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* lra-constraints.cc (get_equiv): Bounds check before accessing
+ 	data in ira_reg_equiv.
+ 
+ 2025-09-12  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* match.pd: New NARROW_CLIP variant for SAT_TRUNC.
+ 	* tree-vect-patterns.cc (gimple_unsigned_integer_narrow_clip):
+ 	Add new decl for NARROW_CLIP.
+ 	(vect_recog_sat_trunc_pattern): Add NARROW_CLIP check.
+ 
+ 2025-09-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/120063
+ 	* diagnostics/context.cc (context::execution_failed_p): Also treat
+ 	any kind::fatal errors as leading to failed execution.
+ 	* diagnostics/sarif-sink.cc (maybe_get_sarif_level): Handle
+ 	kind::fatal as SARIF level "error".
+ 
+ 2025-09-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/121876
+ 	* diagnostics/buffering.cc (context::set_diagnostic_buffer): Add
+ 	early reject of the no-op case.
+ 
+ 2025-09-12  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/121865
+ 	* ipa-free-lang-data.cc (find_decls_types_r): Don't walk into
+ 	DECL_CHAIN for any DECL.
+ 
+ 2025-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* ipa-pure-const.cc (check_stmt): Minor formatting tweaks.
+ 	(pass_data_nothrow): Fix pasto in description.
+ 
+ 2025-09-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* internal-fn.def (VEC_TRUNC_ADD_HIGH): New.
+ 	* doc/generic.texi: Document it.
+ 	* optabs.def (vec_trunc_add_high): New.
+ 	* doc/md.texi: Document it.
+ 	* tree-vect-stmts.cc (vectorizable_early_exit): Use addhn if supported.
+ 
+ 2025-09-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (vec_addh_narrow<mode>): New.
+ 
+ 2025-09-12  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): If the unroll pragma was set
+ 	mark it as handled.
+ 	* doc/extend.texi (pragma GCC unroll): Update documentation.
+ 
+ 2025-09-11  Trevor Gross  <tmgross@umich.edu>
+ 
+ 	* doc/libgcc.texi (Comparison functions): Document functions as
+ 	returning CMPtype.
+ 
+ 2025-09-11  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR middle-end/66462
+ 	* config/aarch64/aarch64.md (isfinite<mode>2): Add new expander.
+ 
+ 2025-09-11  Matteo Nicoli  <matteo.nicoli001@gmail.com>
+ 
+ 	PR tree-optimization/121595
+ 	* match.pd (fabs(a + 0.0) -> fabs (a)): Optimization pattern limited to
+ 	the -fno-trapping-math case.
+ 
+ 2025-09-11  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_compare_and_swapti_scq):
+ 	Require LSX.  Change the operands for the output, the memory,
+ 	and the expected value to LSX vector modes.  Add a FCCmode
+ 	output to indicate if CAS has written the desired value into
+ 	memory.  Use LSX to atomically load both words of the 16B value
+ 	in memory.
+ 	(atomic_compare_and_swapti): Pun the modes to satisify
+ 	the new atomic_compare_and_swapti_scq implementation.  Read the
+ 	bool return value from the FCC instead of performing a
+ 	comparision.
+ 
+ 2025-09-11  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): Call
+ 	reg_or_0_operand for checking the sanity of %t.
+ 
+ 2025-09-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121703
+ 	* tree-vect-stmts.cc (vectorizable_store): Value-initialize ls.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-09-11  Tsukasa OI  <research_trasio@irq.a4lg.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_function_ok_for_sibcall):
+ 	Suppress cross calling convention sibcall optimization from
+ 	the vector calling convention variant.
+ 
+ 2025-09-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121829
+ 	* cfgloopmanip.cc (create_preheader): Ensure we can insert
+ 	at the end of a preheader.
+ 
+ 2025-09-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121870
+ 	* tree-ssa-propagate.cc
+ 	(substitute_and_fold_engine::substitute_and_fold): Skip
+ 	removed stmts from noreturn fixup.
+ 
+ 2025-09-11  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (*<bitmanip_minmax_cmp_insn>_cmp_<mode>3):
+ 	New min/max ifcvt pattern.
+ 	* config/riscv/iterators.md (minu): New iterator.
+ 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
+ 	Remove riscv-specific adjustment.
+ 
+ 2025-09-11  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* ifcvt.cc (noce_convert_multiple_sets_1): Add use_cond_earliest
+ 	param.
+ 	(noce_convert_multiple_sets): Set use_cond_earliest.
+ 	(noce_process_if_block): Just use original cost.
+ 	(noce_find_if_block): Use insn_cost (jump_insn).
+ 
+ 2025-09-11  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-selftests.cc (riscv_run_selftests): Call
+ 	run_vectorize_related_mode_selftests.
+ 	(test_vectorize_related_mode): New function to test
+ 	vectorize_related_mode behavior.
+ 	(run_vectorize_related_mode_selftests): New function to run all
+ 	vectorize_related_mode tests.
+ 	(run_vectorize_related_mode_vla_selftests): New function to test
+ 	VLA modes.
+ 	(run_vectorize_related_mode_vls_rv64gcv_selftests): New function to
+ 	test VLS modes on rv64gcv.
+ 	(run_vectorize_related_mode_vls_rv32gc_zve32x_zvl256b_selftests):
+ 	New function to test VLS modes on rv32gc_zve32x_zvl256b.
+ 	(run_vectorize_related_mode_vls_selftests): New function to run all
+ 	VLS mode tests.
+ 	* config/riscv/riscv-v.cc (can_find_related_mode_p): Fix VLS type
+ 	handling by converting TARGET_MIN_VLEN from bits to bytes.
+ 
+ 2025-09-10  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/81540
+ 	PR target/49857
+ 	* common/config/avr/avr-common.cc: Disable -ftree-switch-conversion.
+ 
+ 2025-09-10  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
+ 	Change "Xtrnase" in the comment to "Xtensa".
+ 
+ 2025-09-10  Peter Bergner  <bergner@tenstorrent.com>
+ 
+ 	PR target/121878
+ 	* config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_half): Test the
+ 	Selected Element Width (SEW) rather than the mode.
+ 	(tt_ascalon_d8_vec_idiv_single): Likewise.
+ 	(tt_ascalon_d8_vec_idiv_double): Likewise.
+ 	(tt_ascalon_d8_vec_float_divsqrt_half): Likewise.
+ 	(tt_ascalon_d8_vec_float_divsqrt_single): Likewise.
+ 	(tt_ascalon_d8_vec_float_divsqrt_double): Likewise.
+ 
+ 2025-09-10  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1): Fix
+ 	load/store bias handling.
+ 
+ 2025-09-10  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfwsub_wf_<mode>): New pattern to
+ 	combine float_extend + vec_duplicate + vfsub.vv into vfwsub.wf.
+ 
+ 2025-09-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121828
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): For REALPART_EXPR
+ 	consumed by store in the same bb and with REALPART_EXPR from
+ 	optimizable_arith_overflow, don't add REALPART_EXPR lhs to
+ 	the m_names bitmap only if the cast from IMAGPART_EXPR doesn't
+ 	appear in between the REALPART_EXPR and the store.
+ 
+ 2025-09-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121831
+ 	* expr.cc (raw_data_cst_read_str): New function.
+ 	(store_constructor) <case ARRAY_TYPE>: Handle RAW_DATA_CST.
+ 
+ 2025-09-10  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.h (CLZ_DEFINED_VALUE_AT_ZERO): Adjust and
+ 	return 2.
+ 	(CTZ_DEFINED_VALUE_AT_ZERO): Return 2.
+ 	* config/s390/s390.md (clzsi2): Implement.
+ 	(ctzsi2): Implement.
+ 
+ 2025-09-10  Maximilian Immanuel Brandtner  <maxbr@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (*vec_extract<mode>_plus_zero_extend):
+ 	Fix define insn.
+ 
+ 2025-09-09  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-devices.def: Correct the Max ISA VGPRs counts for
+ 	GFX10 and GFX11 devices.
+ 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Remove the wave64
+ 	VGPR count fudge.
+ 
+ 2025-09-09  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_expand_builtin_1): Enable the "mode" parameter
+ 	and ensure that "target" is a register for most of the builtins.
+ 
+ 2025-09-09  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/121411
+ 	* dwarf2ctf.cc (ctf_get_AT_data_member_location) Use AT_unsigned
+ 	when fetching AT_bit_offset and AT_data_member_location.  Simplify.
+ 	(ctf_die_bitsize): Return unsigned HOST_WIDE_INT instead of
+ 	uint32_t.
+ 	(gen_ctf_base_type, gen_ctf_sou_type, gen_ctf_enumeration_type):
+ 	Adapt accordingly.
+ 
+ 2025-09-09  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfwsub_vf_<mode>): New pattern to
+ 	combine float_extend + vec_duplicate + vfwsub.vv into vfwsub.vf.
+ 
+ 2025-09-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/121678
+ 	* tree.cc (staticp): Handle REALPART_EXPR and IMAGPART_EXPR.
+ 
+ 2025-09-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/invoke.texi (Warning Options): Note that an option
+ 	enabled by -Wextra is for C and ObjC only.
+ 
+ 2025-09-09  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfwadd_wf_<mode>): New pattern to
+ 	combine float_extend + vec_duplicate + vfadd.vv into vfwadd.wf.
+ 	* config/riscv/vector.md
+ 	(@pred_single_widen_<plus_minus:optab><mode>_scalar): Swap and reorder
+ 	operands to match the RTL emitted by expand.
+ 
+ 2025-09-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Revert:
+ 	2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*bcaxqdi4): New
+ 	define_insn_and_split.
+ 
+ 2025-09-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Revert:
+ 	2025-09-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121829
+ 	* tree-vect-loop-manip.cc (vect_remove_forwarder): New
+ 	function.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Use it.
+ 
+ 2025-09-09  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121861
+ 	* config/i386/i386.cc (ix86_optab_supported_p): Drop
+ 	!flag_trapping_math check for floor_optab, ceil_optab and
+ 	btrunc_optab.
+ 
+ 2025-09-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (expand_vec_perm_vpermil): Extend
+ 	to handle V8SImode.
+ 	* config/i386/i386.cc (avx_vpermilp_parallel): Extend to
+ 	handle vector integer modes with same vector size and same
+ 	component size.
+ 	* config/i386/sse.md
+ 	(<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
+ 	(V48_AVX): New mode iterator.
+ 	(ssefltmodesuffix): Extend for V16SI/V8DI/V16SF/V8DF.
+ 
+ 2025-09-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Check permutation index for vec_perm, don't count it if we
+ 	know it's not a cross-lane permutation.
+ 
+ 2025-09-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107997
+ 	PR tree-optimization/121844
+ 	* tree-ssa-loop-ivopts.cc (allow_ip_end_pos_p): Do not allow
+ 	IP_END for latches ending with a control stmt.
+ 	(create_new_iv): Do not split the latch edge, instead assert
+ 	that's not necessary.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfwadd_vf_<mode>): New pattern to
+ 	combine float_extend + vec_duplicate + vfwadd.vv into vfwadd.vf.
+ 
+ 2025-09-08  Anton Blanchard  <antonb@tenstorrent.com>
+ 
+ 	* config/riscv/riscv.cc (tt_ascalon_d8_tune_info): Increase branch_cost
+ 	from 3 to 4.
+ 
+ 2025-09-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121830
+ 	* tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Only
+ 	set STMT_VINFO_REDUC_DEF on reductions.
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): Identify reduction
+ 	PHIs by a set STMT_VINFO_REDUC_DEF instead of their def type.
+ 
+ 2025-09-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121829
+ 	* tree-vect-loop-manip.cc (vect_remove_forwarder): New
+ 	function.
+ 	(slpeel_tree_duplicate_loop_to_edge_cfg): Use it.
+ 
+ 2025-09-08  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR tree-optimization/114892
+ 	* doc/invoke.texi (Developer Options): Document -folding option
+ 	for -fdump-tree-*.
+ 
+ 2025-09-08  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* ipa-cp.cc (gather_count_of_non_rec_edges): Check count
+ 	initialization before adding to total.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfrsub_vf_<mode>): New pattern to
+ 	combine vec_duplicate + vfsub.vv into vfrsub.vf.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfsub_vf_<mode>): New pattern to
+ 	combine vec_duplicate + vfsub.vv into vfsub.vf.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfadd_vf_<mode>): New pattern to
+ 	combine vec_duplicate + vfadd.vv into vfadd.vf.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfwmul_vf_<mode>): New pattern to
+ 	combine float_extend + vec_duplicate + vfmul.vv into vfmul.vf.
+ 	* config/riscv/vector.md (*@pred_dual_widen_<optab><mode>_scalar):
+ 	Swap operands to match the RTL emitted by expand, i.e. first
+ 	float_extend then vec_duplicate.
+ 
+ 2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfmin_vf_ieee_<mode>): Rename into...
+ 	(*v<ieee_fmaxmin_op>_vf_<mode>): New pattern to combine vec_duplicate +
+ 	vf{max,min}.vv (unspec) into vf{max,min}.vf.
+ 
+ 2025-09-08  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (SH Function Attributes): Remove reference to
+ 	GNU Binutils 2.7 requirement.
+ 	(H8/300 Variable Attributes): Ditto.
+ 
+ 2025-09-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/87900
+ 	* tree-ssa-strlen.cc  (strlen_pass::handle_assign): Add RHS argument.
+ 	For empty constructor RHS, see if can combine with a previous malloc into
+ 	a calloc.
+ 	(strlen_pass::check_and_optimize_call): Update call to handle_assign;
+ 	passing NULL_TREE for RHS.
+ 	(strlen_pass::check_and_optimize_stmt): Update call to handle_assign.
+ 
+ 2025-09-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/83022
+ 	* tree-ssa-strlen.cc (last_stmt_ptr_check): New function.
+ 	(allow_memset_malloc_to_calloc): New function.
+ 	(strlen_pass::handle_builtin_memset): Check to see if it is a good
+ 	idea to do the malloc+memset->calloc optimization.
+ 	(printf_strlen_execute): Free post dom info.
+ 
+ 2025-09-08  Sam James  <sam@gentoo.org>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-09-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121841
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow
+ 	two different decls as bases as non-overlapping bases.
+ 
+ 2025-09-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* dep-fusion.cc: Mark clone, gate and execute methods as final.
+ 
+ 2025-09-07  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/andes-vector-builtins-bases.cc (nds_vd4dot): New class.
+ 	(class nds_vd4dotsu): New class.
+ 	* config/riscv/andes-vector-builtins-bases.h: New def.
+ 	* config/riscv/andes-vector-builtins-functions.def (nds_vd4dots): Ditto.
+ 	(nds_vd4dotsu): Ditto.
+ 	(nds_vd4dotu): Ditto.
+ 	* config/riscv/andes-vector.md
+ 	(@pred_nds_vd4dot<su><mode>): New pattern.
+ 	(@pred_nds_vd4dotsu<mode>): New pattern.
+ 	* config/riscv/genrvv-type-indexer.cc (main): Modify sew of QUAD_FIX,
+ 	QUAD_FIX_SIGNED and QUAD_FIX_UNSIGNED.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(qexti_vvvv_ops): New operand information.
+ 	(qexti_su_vvvv_ops): New operand information.
+ 	(qextu_vvvv_ops): New operand information.
+ 	* config/riscv/riscv-vector-builtins.h (XANDESVDOT_EXT): New def.
+ 	(required_ext_to_isa_name): Add case XANDESVDOT_EXT.
+ 	(required_extensions_specified): Ditto.
+ 	(struct function_group_info): Ditto.
+ 	* config/riscv/vector-iterators.md (NDS_QUAD_FIX): New iterator.
+ 
+ 2025-09-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-opts.h (riscv_microarchitecture_type): Fix ordering.
+ 
+ 2025-09-07  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	Turn on VECTOR_ELEN_FP_16 for XAndesvpackfph.
+ 	* config/riscv/andes-vector-builtins-bases.cc (nds_vfpmad): New class.
+ 	* config/riscv/andes-vector-builtins-bases.h: New def.
+ 	* config/riscv/andes-vector-builtins-functions.def (nds_vfpmadt): Ditto.
+ 	(nds_vfpmadb): Ditto.
+ 	(nds_vfpmadt_frm): Ditto.
+ 	(nds_vfpmadb_frm): Ditto.
+ 	* config/riscv/andes-vector.md (@pred_nds_vfpmad<nds_tb><mode>):
+ 	New pattern.
+ 	* config/riscv/riscv-vector-builtins-types.def
+ 	(DEF_RVV_F16_OPS): New def.
+ 	* config/riscv/riscv-vector-builtins.cc (f16_ops): Ditto
+ 	* config/riscv/riscv-vector-builtins.def (float32_type_node): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (XANDESVPACKFPH_EXT): Ditto.
+ 	(required_ext_to_isa_name): Add case XANDESVPACKFPH_EXT.
+ 	(required_extensions_specified): Ditto.
+ 	* config/riscv/vector-iterators.md (VHF): New iterator.
+ 
+ 2025-09-07  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/121794
+ 	* config/avr/avr.md (cmpqi3): Use cpi R,0 if possible.
+ 
+ 2025-09-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Rename from.
+ 	(*mul_minus_vx_<mode>): Rename to and add nmsub support.
+ 	* config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Rename from.
+ 	(@pred_mul_minus_vx_<mode>): Rename to and add nmsub support.
+ 	(*pred_nmsac_<mode>_scalar_undef): Rename from.
+ 	(*pred_mul_minus_vx<mode>_undef): Rename to and add nmsub support.
+ 
+ 2025-09-06  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/generic.texi (TYPE_CANONICAL): Don't mention long-removed
+ 	--param verify-canonical-types.
+ 
+ 2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/121835
+ 	* dep-fusion.cc (pass_dep_fusion::execute): Return early if
+ 	macro_fusion_pair_p is null.
+ 
+ 2025-09-06  Artemiy Volkov  <artemiyv@acm.org>
+ 
+ 	* Makefile.in (OBJS): Add dep-fusion.o.
+ 	* common.opt (fdep-fusion): Add option.
+ 	* dep-fusion.cc: New pass.
+ 	* doc/invoke.texi: Document it.
+ 	* opts.cc (default_options_table): Enable it at -O2+ and -Os.
+ 	* passes.def: Insert two instances of dep_fusion.
+ 	* tree-pass.h (make_pass_dep_fusion): Declare new function.
+ 
+ 2025-09-06  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/invoke.texi (x86 Options): Fix '-momit-leaf-frame-pointer' typo.
+ 
+ 2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_builtin_call): Factor out
+ 	the memcpy followed by a memset optimization to ...
+ 	(simplify_builtin_memcpy_memset): Here. New function.
+ 
+ 2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_builtin_call): Factor out the memchr
+ 	optimization to ...
+ 	(simplify_builtin_memchr): Here. New function.
+ 
+ 2025-09-06  Simon Martin  <simon@nasilyan.com>
+ 
+ 	* ipa-inline-transform.cc: Define INCLUDE_ALGORITHM.
+ 
+ 2025-09-06  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Prerequisites): Properly capitalize
+ 	GNU Binutils.
+ 	(Configuration): Ditto.
+ 	(Building): Ditto.
+ 	(Specific): Ditto.
+ 
+ 2025-09-06  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/invoke.texi: Say 'whole-program' consistently where
+ 	appropriate.
+ 
+ 2025-09-06  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/invoke.texi: Capitalize 'GNU Binutils' consistently.
+ 
+ 2025-09-06  Sam James  <sam@gentoo.org>
+ 
+ 	PR ipa/116410
+ 	* doc/invoke.texi (Link Options): Update -flinker-output= text
+ 	to reflect GNU Binutils changes. Fix grammar.
+ 
+ 2025-09-06  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/andes-vector-builtins-bases.cc
+ 	(nds_nibbleload): New class.
+ 	* config/riscv/andes-vector-builtins-bases.h (nds_vln8): New def.
+ 	(nds_vlnu8): Ditto.
+ 	* config/riscv/andes-vector-builtins-functions.def (nds_vln8): Ditto.
+ 	(nds_vlnu8): Ditto.
+ 	* config/riscv/andes-vector.md (@pred_intload_mov<su><mode>): New pattern.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_Q_OPS): New def.
+ 	(DEF_RVV_QU_OPS): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(q_v_void_const_ptr_ops): New operand information.
+ 	(qu_v_void_const_ptr_ops): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (void_const_ptr): New def.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
+ 	(required_ext_to_isa_name): Add case XANDESVSINTLOAD_EXT.
+ 	(required_extensions_specified): Ditto.
+ 	* config/riscv/vector-iterators.md (NDS_QVI): New iterator.
+ 
+ 2025-09-06  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* common/config/riscv/riscv-common.cc:
+ 	Turn on VECTOR_ELEN_BF_16 for XAndesvbfhcvt.
+ 	* config.gcc: Add extra_objs andes-vector-builtins-bases.o
+ 	and extra_headers andes_vector.h.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc
+ 	(BASE_NAME_MAX_LEN): Increase size to 20.
+ 	* config/riscv/riscv-vector-builtins.cc
+ 	(f32_to_bf16_nf_w_ops): New operand information.
+ 	(f32_to_bf16_nf_w_ops): New operand information.
+ 	(DEF_RVV_FUNCTION): New def.
+ 	* config/riscv/riscv-vector-builtins.def (bf16): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
+ 	(required_ext_to_isa_name): Add case XANDESVBFHCVT_EXT.
+ 	(required_extensions_specified): Ditto.
+ 	* config/riscv/t-riscv: Add andes-vector-builtins-functions.def,
+ 	andes-vector-builtins-bases.h and andes-vector-builtins-bases.o.
+ 	* config/riscv/vector-iterators.md (NDS_VWEXTBF): New iterator.
+ 	(NDS_V_DOUBLE_TRUNC_BF): New attr.
+ 	* config/riscv/andes-vector-builtins-bases.cc: New file.
+ 	* config/riscv/andes-vector-builtins-bases.h: New file.
+ 	* config/riscv/andes-vector-builtins-functions.def: New file.
+ 	* config/riscv/andes_vector.h: New file.
+ 	* config/riscv/andes-vector.md: New file.
+ 	* config/riscv/vector.md: Include andes_vector.md.
+ 
+ 2025-09-06  Anton Blanchard  <antonb@tenstorrent.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Update.
+ 	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
+ 	Add tt_ascalon_d8.
+ 	* config/riscv/riscv.md: Update tune attribute and include
+ 	tt-ascalon-d8.md.
+ 	* config/riscv/tt-ascalon-d8.md: New file.
+ 
+ 2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/108466
+ 	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Give better
+ 	locations to the new phi args and the new statement.
+ 
+ 2025-09-05  Andre Vehreschild  <vehre@gcc.gnu.org>
+ 
+ 	PR middle-end/121806
+ 	* gcc.cc (for_each_path): Initialize return value.
+ 
+ 2025-09-05  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/121510
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Check if we can
+ 	vec_extract.
+ 
+ 2025-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
+ 
+ 	PR rtl-optimization/121757
+ 	* rtl-ssa/accesses.h (clobber_group::lookup_clobber): New member
+ 	function.
+ 	* rtl-ssa/accesses.cc (clobber_group::lookup_clobber): Likewise.
+ 	(clobber_group::prev_clobber, clobber_group::next_clobber)
+ 	(function_info::add_clobber): Use it.
+ 
+ 2025-09-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/121794
+ 	* config/avr/avr.cc (avr_out_compare): Only use zero_reg
+ 	when there is no other sequence of the same length.
+ 	(avr_out_plus_ext): Same.
+ 	(avr_out_plus_1): Same.
+ 
+ 2025-09-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Do not
+ 	cost zero remaining scalar stmts.
+ 	(vectorizable_slp_permutation): Do not cost zero actual
+ 	permutations.
+ 	* tree-vect-stmts.cc (vectorizable_load): Likewise.
+ 
+ 2025-09-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121802
+ 	* tree-vectorizer.h (vect_setup_realignment): Add vectype
+ 	argument.
+ 	* tree-vect-data-refs.cc (vect_setup_realignment): Replace
+ 	local vectype with argument.
+ 	* tree-vect-stmts.cc (vectorizable_load): Adjust.
+ 
+ 2025-09-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* J: Remove.
+ 
+ 2025-09-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/iterators.md (sve_di_suf): New mode attribute.
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>3 SVE_INT_BINARY_MULTI):
+ 	Rename to...
+ 	(<optab><mode>3<sve_di_suf>): ... This.  Use SVE_I_SIMD_DI mode
+ 	iterator.
+ 	* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Use the above
+ 	for TARGET_SVE.
+ 
+ 2025-09-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Rename to
+ 	handle both the macc and madd.
+ 	(*mul_plus_vx_<mode>): Add madd pattern.
+ 	* config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Rename to
+ 	handle both the macc and madd.
+ 	(*pred_macc_<mode>_scalar_undef): Remove.
+ 	(*pred_nmsac_<mode>_scalar_undef): Remove.
+ 	(*pred_mul_plus_vx<mode>_undef): Add new pattern to handle
+ 	both the vmacc and vmadd.
+ 	(@pred_mul_plus_vx<mode>): Ditto.
+ 
+ 2025-09-04  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_annotate_cfg): Apply zero_bbs after early
+ 	exit for missing profile; fix formating
+ 
+ 2025-09-04  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-inline-transform.cc (inline_call): If function with
+ 	AFDO profile is inlined into function with
+ 	GUESSED_GLOBAL0_AFDO or GUESSED_GLOBAL0_ADJUSTED, scale
+ 	caller to AFDO profile.
+ 	* profile-count.h (profile_count::apply_scale): If num is AFDO
+ 	and den is not GUESSED, make result AFDO rather then GUESSED.
+ 
+ 2025-09-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* builtins.cc (interclass_mathfn_icode): Add support for isnan
+ 	optab.
+ 	(expand_builtin): Add BUILT_IN_ISNAN to expand isnan optab.
+ 	(fold_builtin_interclass_mathfn): Expand BUILT_IN_ISNAN only after
+ 	checking for a valid optab.
+ 	(fold_builtin_classify): Move generic BUILT_IN_ISNAN expansion
+ 	to fold_builtin_interclass_mathfn.
+ 	(fold_builtin_1): For BUILT_IN_ISNAN first try fold_builtin_classify,
+ 	then fold_builtin_interclass_mathfn.
+ 	* optabs.def: Add isnan optab.
+ 	* doc/md.texi: Document isnan.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Remove unnecessary code around double reductions.
+ 
+ 2025-09-04  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/121775
+ 	* config/arm/neon.md (vec_set<mode>_internal, all variants):
+ 	validate the immediate operand that indicates the lane to
+ 	modify.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Eliminate
+ 	nested_cycle in favor of double_reduc and set that where
+ 	it makes most sense.  Remove never taken paths and always
+ 	true conditions.
+ 
+ 2025-09-04  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/121742
+ 	PR target/121780
+ 	PR target/121781
+ 	* config/riscv/riscv-v.cc (expand_vec_perm): Swap target and
+ 	tmp_target.
+ 
+ 2025-09-04  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_gen_prolog_loop_niters):
+ 	Change prolog bound to poly_int64.
+ 	(vect_gen_scalar_loop_niters): Ditto.
+ 	(vect_do_peeling): Use poly estimate for frequency scaling.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121768
+ 	* tree-vect-loop.cc (vect_inner_phi_in_double_reduction_p): Remove.
+ 	(vect_analyze_scalar_cycles_1): Analyze inner loops of
+ 	double reductions immediately and only mark fully recognized
+ 	double reductions.  Skip already analyzed inner loops.
+ 	(vect_is_simple_reduction): Change double_reduc from a flag
+ 	to an output of the inner loop PHI and to whether we are
+ 	processing an inner loop of a double reduction.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121685
+ 	* tree-eh.cc (ref_outside_object_p): Split out from ...
+ 	(tree_could_trap_p): ... here.  Assume the this pointer
+ 	of a method refers to an object of at least size of its
+ 	base type.
+ 
+ 2025-09-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/107051
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow for
+ 	memory sharing the same base if they known not to overlap over
+ 	the size.
+ 
+ 2025-09-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/110812
+ 	* config/riscv/riscv-c.cc (pragma_intrinsic_flags): Remove struct.
+ 	(riscv_pragma_intrinsic_flags_pollute): Remove function.
+ 	(riscv_pragma_intrinsic_flags_restore): Remove function.
+ 	(riscv_pragma_intrinsic): Simplify to only call handle_pragma_vector.
+ 	* config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags):
+ 	Move struct definition here from riscv-c.cc.
+ 	(riscv_pragma_intrinsic_flags_pollute): Move and adapt from
+ 	riscv-c.cc, add zvfbfmin, zvfhmin and vector_elen_bf_16 support.
+ 	(riscv_pragma_intrinsic_flags_restore): Move from riscv-c.cc.
+ 	(rvv_switcher::rvv_switcher): Add pollute_flags parameter to
+ 	control flag manipulation.
+ 	(rvv_switcher::~rvv_switcher): Restore flags conditionally.
+ 	(register_builtin_types): Use rvv_switcher without polluting flags.
+ 	(get_required_extensions): Remove function.
+ 	(check_required_extensions): Simplify to only check type validity.
+ 	(function_instance::function_returns_void_p): Move implementation
+ 	from header.
+ 	(function_builder::add_function): Register placeholder for LTO.
+ 	(init_builtins): Simplify and handle LTO case.
+ 	(reinit_builtins): Remove function.
+ 	(handle_pragma_vector): Remove extension checking.
+ 	* config/riscv/riscv-vector-builtins.h
+ 	(function_instance::function_returns_void_p): Add declaration.
+ 	(function_call_info::function_returns_void_p): Remove inline
+ 	implementation.
+ 
+ 2025-09-04  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_is_subset): Fix
+ 	inverted logic in extension subset check.
+ 
+ 2025-09-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117599
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Move
+ 	build_qualified_type calls into the if/else if/else bodies, for
+ 	the last one set ltype to m_limb_type first, drop limb_type_a
+ 	and use ltype instead.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/61247
+ 	* tree-scalar-evolution.cc (simplify_peeled_chrec):
+ 	Handle the case of a converted peeled chrec.
+ 
+ 2025-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121740
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow skipping
+ 	may-defs from CTORs.  Do not skip may-defs with storage-order
+ 	issues or (partial) must-defs.
+ 
+ 2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/andes.def: Add nds_fcvt_s_bf16 and nds_fcvt_bf16_s.
+ 	* config/riscv/riscv.md (truncsfbf2): Add TARGET_XANDESBFHCVT support.
+ 	(extendbfsf2): Ditto.
+ 	* config/riscv/riscv-builtins.cc: New AVAIL andesbfhcvt.
+ 	Add new define RISCV_ATYPE_BF and RISCV_ATYPE_SF.
+ 	* config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE.
+ 
+ 2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/constraints.md (Ou07): New constraint.
+ 	(ads_Bext): New constraint.
+ 	* config/riscv/iterators.md (ANYLE32): New iterator.
+ 	(sizen): New iterator.
+ 	(sh_limit): New iterator.
+ 	(sh_bit): New iterator.
+ 	(cs): New iterator.
+ 	* config/riscv/predicates.md (ads_branch_bbcs_operand): New predicate.
+ 	(ads_branch_bimm_operand): New predicate.
+ 	(ads_imm_extract_operand): New predicate.
+ 	(ads_extract_size_imm_si): New predicate.
+ 	(ads_extract_size_imm_di): New predicate.
+ 	(const_int5_operand): New predicate.
+ 	* config/riscv/riscv-builtins.cc:
+ 	Add new AVAIL andesperf32 and andesperf64.
+ 	Add new define RISCV_ATYPE_DI.
+ 	* config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE.
+ 	* config/riscv/riscv.cc
+ 	(riscv_extend_cost): Cost for pattern 'bfo'.
+ 	(riscv_rtx_costs): Cost for XAndesperf extension.
+ 	* config/riscv/riscv.md: Add support for XAndesperf to patterns
+ 	zero_extendsidi2_internal, zero_extendhi2, extendsidi2_internal,
+ 	extend<SHORT:mode><SUPERQI:mode>2, <any_extract:optab><GPR:mode>3
+ 	and branch_on_bit.
+ 	* config/riscv/vector-iterators.md
+ 	(sz): Add sign_extract and zero_extract.
+ 	* config/riscv/andes.def: New file for vender Andes.
+ 	* config/riscv/andes.md: New file for vender Andes.
+ 
+ 2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>
+ 
+ 	* config/riscv/riscv-ext.def: Include riscv-ext-andes.def.
+ 	* config/riscv/riscv-ext.opt (riscv_xandes_subext): New variable.
+ 	(XANDESPERF) : New mask.
+ 	(XANDESBFHCVT): Ditto.
+ 	(XANDESVBFHCVT): Ditto.
+ 	(XANDESVSINTLOAD): Ditto.
+ 	(XANDESVPACKFPH): Ditto.
+ 	(XANDESVDOT): Ditto.
+ 	* config/riscv/t-riscv: Add riscv-ext-andes.def.
+ 	* doc/riscv-ext.texi: Regenerated.
+ 	* config/riscv/riscv-ext-andes.def: New file.
+ 
+ 2025-09-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfmax_vf_<mode>): Rename into...
+ 	(*vf<optab>_vf_<mode>): New pattern to combine vec_duplicate +
+ 	vf{min,max}.vv into vf{max,min}.vf.
+ 	* J: New file.
+ 
+ 2025-09-03  Austin Law  <austinklaw@gmail.com>
+ 
+ 	PR target/121213
+ 	* config/riscv/sync.md (amo_atomic_exchange_extended<mode>):
+ 	Separate insn with sign extension for 64 bit targets.
+ 
+ 2025-09-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-profile.cc (ipa_profile): Dump profile_info.
+ 
+ 2025-09-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* opts.cc (enable_fdo_optimizations): Do not auto-enabele loop
+ 	optimizations with AutoFDO.
+ 
+ 2025-09-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* params.opt (-param=lto-partitions=): INcrease default value from 128 to 512.
+ 
+ 2025-09-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/121749
+ 	* config/aarch64/aarch64-simd.md (aarch64_<shrn_op>shrn_n<mode>):
+ 	Use aarch64_simd_shift_imm_offset_<vn_mode> instead of
+ 	aarch64_simd_shift_imm_offset_<ve_mode> predicate.
+ 	(aarch64_<shrn_op>shrn_n<mode> VQN define_expand): Likewise.
+ 	(*aarch64_<shrn_op>rshrn_n<mode>_insn): Likewise.
+ 	(aarch64_<shrn_op>rshrn_n<mode>): Likewise.
+ 	(aarch64_<shrn_op>rshrn_n<mode> VQN define_expand): Likewise.
+ 	(aarch64_sqshrun_n<mode>_insn): Likewise.
+ 	(aarch64_sqshrun_n<mode>): Likewise.
+ 	(aarch64_sqshrun_n<mode> VQN define_expand): Likewise.
+ 	(aarch64_sqrshrun_n<mode>_insn): Likewise.
+ 	(aarch64_sqrshrun_n<mode>): Likewise.
+ 	(aarch64_sqrshrun_n<mode>): Likewise.
+ 	* config/aarch64/iterators.md (vn_mode): Handle DI, SI, HI modes.
+ 
+ 2025-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121756
+ 	* tree-ssa-sink.cc (select_best_block): Avoid irreducible
+ 	regions in otherwise same loop depth.
+ 	(statement_sink_location): When sinking a VDEF, never place
+ 	that into an irreducible region.
+ 
+ 2025-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_cond_expr_convert_pattern):
+ 	Do not set any vector types.
+ 
+ 2025-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121767
+ 	* tree-vect-patterns.cc (vect_recog_mod_var_pattern): Disable
+ 	for reductions.
+ 
+ 2025-09-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121758
+ 	* tree-vect-patterns.cc (vect_mark_pattern_stmts): Try
+ 	harder to find a reduction continuation.
+ 
+ 2025-09-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121355
+ 	* fold-const.cc (split_address_to_core_and_offset): Handle an MEM_REF after the call
+ 	to get_inner_reference.
+ 
+ 2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-ccp.cc (optimize_memcmp_eq): New function.
+ 	(pass_fold_builtins::execute): Call optimize_memcmp_eq
+ 	for memcmp.
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Remove.
+ 	(strlen_pass::check_and_optimize_call): Don't call handle_builtin_memcmp.
+ 
+ 2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Create
+ 	unaligned types if the alignment of the pointers is less
+ 	than the alignment of the new type.
+ 
+ 2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Create
+ 	unaligned types if the alignment of the pointers is less
+ 	than the alignment of the new type.
+ 
+ 2025-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121753
+ 	* tree-vect-patterns.cc (vect_synth_mult_by_constant): Properly
+ 	bail when synth_shift_p and an alg_shift use.  Handle other
+ 	problematic cases.
+ 
+ 2025-09-02  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (is_vlmax_len_p): Properly handle VLS
+ 	modes.
+ 	(imm_avl_p): Fix VLS length check.
+ 	(expand_strided_load): Use is_vlmax_len_p.
+ 	(expand_strided_store): Ditto.
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute):
+ 	Use GET_MODE_NUNITS / NF as avl.
+ 
+ 2025-09-02  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/121742
+ 	* config/riscv/riscv-v.cc (expand_vec_perm): Use temporary if
+ 	op1 and target overlap.
+ 
+ 2025-09-02  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* doc/options.texi: Document NoOffload.
+ 
+ 2025-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_transform_stmt): Clear
+ 	STMT_VINFO_VECTYPE for all stmts.
+ 	(vect_analyze_stmt): Likewise.  But restore at the end again.
+ 
+ 2025-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121754
+ 	* tree-vectorizer.h (vect_reduc_type): Simplify to not ICE
+ 	on nested cycles.
+ 
+ 2025-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (bump_vector_ptr): Remove the
+ 	STMT_VINFO_VECTYPE use, bump is always specified.
+ 
+ 2025-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_check_gather_scatter): Add
+ 	vectype parameter.
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter): Get
+ 	vectype as parameter.
+ 	(vect_analyze_data_refs): Adjust.
+ 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Likewise.
+ 	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Get vectype
+ 	as parameter, pass down.
+ 	(vect_build_slp_tree_2): Adjust.
+ 	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Likewise.
+ 	(vect_use_strided_gather_scatters_p): Likewise.
+ 
+ 2025-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/extend.texi (Common Variable Attributes): Put counted_by
+ 	in alphabetical order.
+ 
+ 2025-09-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121663
+ 	* tree-cfg.cc (assign_discriminator): Change map argument type
+ 	from hash_map with int_hash <int64_t, -1, -2> to one with
+ 	int_hash <unsigned, -1U, -2U>.  Cast LOCATION_LINE to unsigned.
+ 	Return early for (unsigned) LOCATION_LINE above -3U.
+ 	(assign_discriminators): Change map type from hash_map with
+ 	int_hash <int64_t, -1, -2> to one with int_hash <unsigned, -1U, -2U>.
+ 
+ 2025-09-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/gen-riscv-ext-opt.cc (version_t): Remove unused
+ 	struct.
+ 	(print_ext_doc_entry): Remove unused function.
+ 
+ 2025-09-01  Jonathan Grant  <jg@jguk.org>
+ 
+ 	* doc/install.texi (Configuration): Fix spelling of "support"
+ 	and "floating-point arithmetic".
+ 
+ 2025-09-01  Mark Harmstone  <mark@harmstone.com>
+ 
+ 	* dwarf2codeview.cc (get_type_num_array_type): Don't try to
+ 	encode non-C-style arrays.
+ 
+ 2025-09-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* builtins.def: Implement C2Y N3577 - Rename s/uimaxabs/umaxabs/.
+ 	(BUILT_IN_UIMAXABS): Rename to ...
+ 	(BUILT_IN_UMAXABS): ... this.  Change second argument to "umaxabs".
+ 	* builtins.cc (fold_builtin_1): Use BUILT_IN_UMAXABS rather than
+ 	BUILT_IN_UIMAXABS.
+ 
+ 2025-09-01  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/invoke.texi (Optimize Options): Update the perfwiki web
+ 	address.
+ 
+ 2025-09-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* diagnostics/logging.h (log_param_location_t): Cast
+ 	location_t value to fmt_size_t.
+ 
+ 2025-09-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* configure: Regenerate.
+ 	* configure.ac: Do not claim cfi instruction support even
+ 	if the assembler has it.
+ 
+ 2025-09-01  Yoshinori Sato  <yoshinori.sato@nifty.com>
+ 
+ 	PR target/89828
+ 	* config/rx/rx.cc (add_pop_cfi_notes): Release the frame pointer if it is
+ 	used.
+ 	(rx_expand_prologue): Redesigned stack pointer and frame pointer update
+ 	process.
+ 
+ 2025-09-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121744
+ 	* tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern):
+ 	Allow constant left operand.
+ 
+ 2025-09-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
+ 	Use SLP_TREE_REDUC_IDX for following the SLP graph and
+ 	for identifying whether we use the 'else' in a COND.
+ 	(vectorizable_lane_reducing): Simplify check of whether
+ 	we are in a reduction.
+ 	(vectorizable_reduction): Add sanity checking around
+ 	SLP_TREE_REDUC_IDX and use it where it looks appropriate.
+ 	(vect_transform_reduction): Use SLP_TREE_REDUC_IDX.
+ 	* tree-vect-stmts.cc (vectorizable_call): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 
+ 2025-09-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Check
+ 	vect_is_reduction on the SLP node rather than
+ 	STMT_VINFO_REDUC_DEF on the stmt.
+ 	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_DEF
+ 	on live stmts.
+ 
+ 2025-09-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_reduc_info): New.
+ 	(create_info_for_reduction): Likewise.
+ 	(VECT_REDUC_INFO_TYPE): Likewise.
+ 	(VECT_REDUC_INFO_CODE): Likewise.
+ 	(VECT_REDUC_INFO_FN): Likewise.
+ 	(VECT_REDUC_INFO_SCALAR_RESULTS): Likewise.
+ 	(VECT_REDUC_INFO_INITIAL_VALUES): Likewise.
+ 	(VECT_REDUC_INFO_REUSED_ACCUMULATOR): Likewise.
+ 	(VECT_REDUC_INFO_INDUC_COND_INITIAL_VAL): Likewise.
+ 	(VECT_REDUC_INFO_EPILOGUE_ADJUSTMENT): Likewise.
+ 	(VECT_REDUC_INFO_FORCE_SINGLE_CYCLE): Likewise.
+ 	(VECT_REDUC_INFO_RESULT_POS): Likewise.
+ 	(VECT_REDUC_INFO_VECTYPE): Likewise.
+ 	(STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Remove.
+ 	(STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
+ 	(STMT_VINFO_FORCE_SINGLE_CYCLE): Likewise.
+ 	(STMT_VINFO_REDUC_FN): Likewise.
+ 	(STMT_VINFO_REDUC_VECTYPE): Likewise.
+ 	(vect_reusable_accumulator::reduc_info): Adjust.
+ 	(vect_reduc_type): Adjust.
+ 	(_slp_tree::cycle_info): New member.
+ 	(SLP_TREE_REDUC_IDX): Likewise.
+ 	(vect_reduc_info_s): Move/copy data from ...
+ 	(_stmt_vec_info): ... here.
+ 	(_loop_vec_info::redcu_infos): New member.
+ 	(info_for_reduction): Adjust to take SLP node.
+ 	(vect_reduc_type): Adjust.
+ 	(vect_is_reduction): Add overload for SLP node.
+ 	* tree-vectorizer.cc (vec_info::new_stmt_vec_info):
+ 	Do not initialize removed members.
+ 	(vec_info::free_stmt_vec_info): Do not release them.
+ 	* tree-vect-stmts.cc (vectorizable_condition): Adjust.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
+ 	cycle info.
+ 	(vect_build_slp_tree_2): Compute SLP reduc_idx and store
+ 	it.  Create, populate and propagate reduction info.
+ 	(vect_print_slp_tree): Print cycle info.
+ 	(vect_analyze_slp_reduc_chain): Set cycle info on the
+ 	manual added conversion node.
+ 	(vect_optimize_slp_pass::start_choosing_layouts): Adjust.
+ 	* tree-vect-loop.cc (_loop_vec_info::~_loop_vec_info):
+ 	Release reduction infos.
+ 	(info_for_reduction): Get the reduction info from
+ 	the vector in the loop_vinfo.
+ 	(vect_create_epilog_for_reduction): Adjust.
+ 	(vectorizable_reduction): Likewise.
+ 	(vect_transform_reduction): Likewise.
+ 	(vect_transform_cycle_phi): Likewise, deal with nested
+ 	cycles not part of a double reduction have no reduction info.
+ 	* config/aarch64/aarch64.cc (aarch64_force_single_cycle):
+ 	Use VECT_REDUC_INFO_FORCE_SINGLE_CYCLE, get SLP node and use
+ 	that.
+ 	(aarch64_vector_costs::count_ops): Adjust.
+ 
+ 2025-09-01  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR target/121392
+ 	* doc/install.texi (amdgcn): Mention Newlib commit
+ 	that fixes another SIMD issue.
+ 
+ 2025-09-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_is_simple_iv_evolution): Get
+ 	stmt_info and store into STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED
+ 	and STMT_VINFO_LOOP_PHI_EVOLUTION_PART here.  Drop unused
+ 	output parameters.
+ 	(vect_is_nonlinear_iv_evolution): Likewise.
+ 	(vect_analyze_scalar_cycles_1): Remove redundant setting
+ 	of STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED and
+ 	STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
+ 
+ 2025-09-01  Cui, Lili  <lili.cui@intel.com>
+ 
+ 	PR rtl-optimization/117838
+ 	* ira-color.cc (improve_allocation): Remove soft conflict related code.
+ 
+ 2025-09-01  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/121699
+ 	* config/i386/predicates.md (const_vec_dup_operand): New
+ 	predicate.
+ 	* config/i386/sse.md (cond_<insn><mode>): Fix predicate of
+ 	operands[3], and fix wrong operands passed to
+ 	ix86_vgf2p8affine_shift_matrix and
+ 	gen_vgf2p8affineqb_<mode>_mask.
+ 
+ 2025-08-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md (alt_ubranch_operator):
+ 	New predicate.
+ 	* config/xtensa/xtensa.md (*eqne_in_range):
+ 	New insn_and_split pattern.
+ 
+ 2025-08-31  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-protos.h (synthesize_add_extended): Prototype.
+ 	* config/riscv/riscv.cc (synthesize_add_extended): New function.
+ 	* config/riscv/riscv.md (addsi3): For RV64, try synthesize_add_extended.
+ 
+ 2025-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Binaries): Drop MinGW.
+ 
+ 2025-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121698
+ 	* tree-ssa-phiopt.cc (spaceship_replacement): Adjust
+ 	to handle spaceship unordered value -128 rather than 2 and
+ 	stmts from the new std::partial_order::_M_reverse() instead
+ 	of (_M_value & ~1) == _M_value etc.
+ 	* doc/md.texi (spaceship@var{m}4): Use -128 instead of 2.
+ 	* tree-ssa-math-opts.cc (optimize_spaceship): Adjust comments
+ 	that libstdc++ unordered value is -128 rather than 2 and use
+ 	that as the default unordered value.
+ 	* config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use
+ 	GEN_INT (-128) instead of const2_rtx and adjust comment accordingly.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship): Likewise.
+ 	* config/s390/s390.cc (s390_expand_fp_spaceship): Likewise.
+ 
+ 2025-08-30  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/extend.texi (Vector Extensions): Improve markup for list
+ 	of operators.
+ 
+ 2025-08-30  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/standards.texi (Standards): Update "Object-Oriented
+ 	Programming and the Objective-C Language" reference.
+ 
+ 2025-08-30  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121725
+ 	* config/i386/i386-features.cc
+ 	(pass_x86_cse::candidate_gnu2_tls_p): Use the UNSPEC_DTPOFF
+ 	operand to check source operand in TLS64_COMBINE pattern.
+ 
+ 2025-08-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/116651
+ 	PR tree-optimization/93265
+ 	PR tree-optimization/103647
+ 	PR tree-optimization/52171
+ 	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): New function.
+ 	(simplify_builtin_call): Call simplify_builtin_memcmp for memcmp
+ 	memcmp_eq builtins.
+ 
+ 2025-08-29  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/121709
+ 	* doc/gm2.texi (Module Search Path): Reflect the new
+ 	search order.
+ 
+ 2025-08-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostics/logging.o.
+ 	* diagnostic-global-context.cc: Include "diagnostics/logging.h".
+ 	(log_function_params, auto_inc_log_depth): New "using" decls.
+ 	(verbatim): Add logging.
+ 	(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.
+ 	* diagnostics/context.cc: Include "diagnostics/logging.h".
+ 	(context::initialize): Initialize m_logger.  Add logging.
+ 	(context::finish): Add logging.  Clean up m_logger.
+ 	(context::dump): Add indent param.
+ 	(context::set_sink): Add logging.
+ 	(context::add_sink): Add logging.
+ 	(diagnostic_kind_debug_text): New.
+ 	(get_debug_string_for_kind): New.
+ 	(context::report_diagnostic): Add logging.
+ 	(context::diagnostic_impl): Likewise.
+ 	(context::diagnostic_n_impl): Likewise.
+ 	(context::end_group): Likewise.
+ 	* diagnostics/context.h: Include "diagnostics/logging.h".
+ 	(context::dump): Add indent param.
+ 	(context::get_logger): New accessor.
+ 	(context::classify_diagnostics): Add logging.
+ 	(context::push_diagnostics): Likewise.
+ 	(context::pop_diagnostics): Likewise.
+ 	(context::m_logger): New field.
+ 	* diagnostics/html-sink.cc: Include "diagnostics/logging.h".
+ 	(html_builder::flush_to_file): Add logging.
+ 	(html_sink::on_report_diagnostic): Likewise.
+ 	* diagnostics/kinds.h (get_debug_string_for_kind): New decl.
+ 	* diagnostics/logging.cc: New file.
+ 	* diagnostics/logging.h: New file.
+ 	* diagnostics/output-file.h: Include "label-text.h".
+ 	* diagnostics/sarif-sink.cc: Include "diagnostics/logging.h".
+ 	(sarif_builder::flush_to_object): Add logging.
+ 	(sarif_builder::flush_to_file): Likewise.
+ 	(sarif_sink::on_report_diagnostic): Likewise.
+ 	* diagnostics/sink.h (sink::get_logger): New.
+ 	* diagnostics/text-sink.cc: Include "diagnostics/logging.h".
+ 	(text_sink::on_report_diagnostic): Add logging.
+ 	* doc/invoke.texi (Environment Variables): Document
+ 	GCC_DIAGNOSTICS_LOG.
+ 	* opts-diagnostic.cc: Include "diagnostics/logging.h".
+ 	(handle_OPT_fdiagnostics_add_output_): Add loggging.
+ 	(handle_OPT_fdiagnostics_set_output_): Likewise.
+ 
+ 2025-08-29  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa-protos.h (xtensa_bswapsi2_output):
+ 	New function prototype.
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_bswapsi2_output_1, xtensa_bswapsi2_output):
+ 	New functions.
+ 	* config/xtensa/xtensa.md (bswapsi2_internal):
+ 	Rewrite in compact syntax and use xtensa_bswapsi2_output() as asm
+ 	output.
+ 
+ 2025-08-29  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/121548
+ 	* config/riscv/riscv-avlprop.cc (get_insn_vtype_mode): Assert
+ 	MODE_IDX is smaller than the number of operands.
+ 	(simplify_replace_vlmax_avl): Similarly.
+ 	(pass_avlprop::get_vlmax_ta_preferred_avl): Similarly.
+ 	* config/riscv/vector.md: Override merge_op_idx computation
+ 	for simple moves, just like is done for avl_type_idx and mode_idx.
+ 
+ 2025-08-29  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md
+ 	(*vfmin_vf_ieee_<mode>): Add new patterns to combine vec_duplicate +
+ 	vfmin.vv (unspec) into vfmin.vf.
+ 	(*vfmul_vf_<mode>, *vfrdiv_vf_<mode>, *vfmin_vf_<mode>): Fix attribute
+ 	types.
+ 	* config/riscv/vector.md (@pred_<ieee_fmaxmin_op><mode>_scalar): Allow
+ 	VLS modes.
+ 
+ 2025-08-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121096
+ 	* config/i386/i386-expand.cc (expand_cpymem_epilogue): Set and
+ 	clear by_pieces_in_use when using by_pieces op.
+ 	(expand_setmem_epilogue): Likewise.
+ 	* config/i386/i386.cc (ix86_use_by_pieces_infrastructure_p): New.
+ 	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
+ 	* config/i386/i386.h (machine_function): Add by_pieces_in_use.
+ 
+ 2025-08-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121108
+ 	* config/i386/i386-expand.cc (setmem_epilogue_gen_val): Don't
+ 	assert op_mode == word_mode and handle any integer modes.
+ 
+ 2025-08-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121694
+ 	* config/i386/i386-features.cc (redundant_pattern): Add
+ 	tlsdesc_val.
+ 	(pass_x86_cse): Likewise.
+ 	(pass_x86_cse::tls_set_insn_from_symbol): New member function.
+ 	(pass_x86_cse::candidate_gnu2_tls_p): Set tlsdesc_val.  For
+ 	TLS64_COMBINE, match both UNSPEC_TLSDESC and UNSPEC_DTPOFF
+ 	symbols.  For TLS64_CALL, match the UNSPEC_TLSDESC sumbol.
+ 	(pass_x86_cse::x86_cse): Initialize the tlsdesc_val field in
+ 	load.  Pass the tlsdesc_val field to ix86_place_single_tls_call
+ 	for X86_CSE_TLSDESC.
+ 
+ 2025-08-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/invoke.texi (AMD GCN Options: -march): Remove '(experimental)'
+ 	from gfx-{9,10-3,11}-generic.
+ 
+ 2025-08-29  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/install.texi (amdgcn): Clarify which binaries must be the
+ 	LLVM version and which must be installed. Update version data for
+ 	ROCm for generic architectures.
+ 
+ 2025-08-29  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* doc/invoke.texi: Document -param=ix86-vect-unroll-limit.
+ 
+ 2025-08-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Add new
+ 	pattern to combine to vx.
+ 	* config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Add new
+ 	pattern to generate rtl.
+ 	(*pred_nmsac_<mode>_scalar_undef): Ditto.
+ 
+ 2025-08-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/115201
+ 	* passes.def: Move cleanup_eh before first tail_recursion.
+ 
+ 2025-08-28  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfmin_vf_<mode>): Add new pattern to
+ 	combine vec_duplicate + vfmin.vv into vfmin.vf.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.
+ 
+ 2025-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_form): Dump
+ 	niter assumption used for versioning.
+ 
+ 2025-08-28  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	PR middle-end/66462
+ 	* config/aarch64/aarch64.md (isinf<mode>2): Add new expander.
+ 	* config/aarch64/iterators.md (mantissa_bits): Add new mode_attr.
+ 
+ 2025-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Do not get
+ 	reduc_var as argument, instead compute it here.
+ 	(vect_transform_reduction): Adjust.
+ 
+ 2025-08-28  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/121629
+ 	* doc/gm2.texi (Module Search Path): New section.
+ 	(Compiler options): New option -fm2-pathname-root=.
+ 	New option -fm2-pathname-rootI.
+ 
+ 2025-08-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR debug/119367
+ 	* acinclude.m4 (gcc_GAS_FLAGS): For gcn, use "--filetype=obj
+ 	-triple=amdgcn--amdhsa", if supported.
+ 	* configure: Regenerate.
+ 	* doc/install.texi (amdgcn-*-*): Also add llvm-objdump to the list of
+ 	to-be-copied files.
+ 
+ 2025-08-28  Richard Biener  <rguenther@suse.de>
+ 	    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-vect-patterns.cc (vect_synth_mult_by_constant): Avoid
+ 	in cases that introduce multiple uses of reduction operands.
+ 
+ 2025-08-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Avoid
+ 	for stmts participating in a reduction.
+ 
+ 2025-08-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/119367
+ 	* configure.ac (gcc_cv_as_leb128): Add fallback using readelf.
+ 	Grammar fix in comment.
+ 	* configure: Regenerate.
+ 
+ 2025-08-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/119367
+ 	* dwarf2out.cc (output_one_line_info_table) <case LI_adv_address>: If
+ 	HAVE_AS_LEB128, use DW_LNS_advance_pc with dw2_asm_output_delta_uleb128
+ 	instead of DW_LNS_fixed_advance_pc with dw2_asm_output_delta.
+ 
+ 2025-08-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121695
+ 	* tree-if-conv.cc (factor_out_operators): Fix typo
+ 	in assignment of the phi.
+ 
+ 2025-08-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_transform_cycle_phi): Remove
+ 	unused reduc_stmt_info.
+ 
+ 2025-08-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121686
+ 	* tree-vect-slp.cc (vect_analyze_slp): Consider all only-live
+ 	non-reduction defs for discovery.
+ 
+ 2025-08-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121668
+ 	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
+ 	TLS call after debug marker.
+ 
+ 2025-08-27  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-cores.def (xt-c908v): Drop xtheadvdot.
+ 	(xt-c910v2): Remove extraenous whitespace.
+ 	(xt-c920v2): Drop xtheadvdot and remove extraeonous whitespace.
+ 
+ 2025-08-26  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
+ 	Addd new memeber m_num_reduc, m_prefer_unroll.
+ 	(ix86_vector_costs::add_stmt_cost): Set m_prefer_unroll and
+ 	m_num_reduc
+ 	(ix86_vector_costs::finish_cost): Determine
+ 	m_suggested_unroll_vector with consideration of
+ 	reduc_lat_mult_thr, m_num_reduction and
+ 	ix86_vect_unroll_limit.
+ 	* config/i386/i386.h (enum ix86_reduc_unroll_factor): New
+ 	enum.
+ 	(processor_costs): Add reduc_lat_mult_thr and
+ 	vect_unroll_limit.
+ 	* config/i386/x86-tune-costs.h: Initialize
+ 	reduc_lat_mult_thr and vect_unroll_limit.
+ 	* config/i386/i386.opt: Add -param=ix86-vect-unroll-limit.
+ 
+ 2025-08-26  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfrdiv_vf_<mode>): Add new pattern to
+ 	combine vec_duplicate + vfdiv.vv into vfrdiv.vf.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_reverse_scalar): Allow VLS
+ 	modes.
+ 
+ 2025-08-26  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121290
+ 	* config/aarch64/aarch64.cc
+ 	(class aarch64_vector_costs ): Add m_loop_fully_scalar_dup.
+ 	(aarch64_vector_costs::add_stmt_cost): Detect invariant inner loops.
+ 	(adjust_body_cost): Adjust final costing if m_loop_fully_scalar_dup.
+ 
+ 2025-08-26  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/autovec-opt.md (*vfmul_vf_<mode>): Add new pattern to
+ 	combine vec_duplicate + vfmul.vv into vfmul.vf.
+ 	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.
+ 
+ 2025-08-26  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_arg_partial_bytes): Remove name
+ 	from unused parameter.
+ 
+ 2025-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_reduc_type): Get SLP node as argument.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_in_loop_reduction_latency):
+ 	Take SLO node as argument and adjust.
+ 	(aarch64_in_loop_reduction_latency): Likewise.
+ 	(aarch64_detect_vector_stmt_subtype): Adjust.
+ 	(aarch64_vector_costs::count_ops): Likewise.  Treat reductions
+ 	during scalar costing as single-cycle.
+ 
+ 2025-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121659
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Do not allow
+ 	matching up comparison operators by swapping if that would
+ 	disturb STMT_VINFO_REDUC_IDX.  Make sure to only
+ 	actually mark operands for swapping when there was a
+ 	mismatch and we're not processing the first stmt.
+ 
+ 2025-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Access lanes_ifn
+ 	only when VMAT_LOAD_STORE_LANES.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-08-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (stmt_vec_info_::reduc_vectype_in): Remove.
+ 	(STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
+ 	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get
+ 	at the input vectype via the SLP node child.
+ 	(vectorizable_lane_reducing): Likewise.
+ 	(vect_transform_reduction): Likewise.
+ 	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN.
+ 
+ 2025-08-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/121658
+ 	* config/i386/sse.md (<insn><mode>3 any_shift): Use const0_rtx
+ 	instead of GEN_INT (0).
+ 	(cond_<insn><mode> any_shift): Likewise.  Formatting fix.
+ 	(<insn><mode>3 any_rotate): Use register_operand predicate instead of
+ 	general_operand for match_operand 1.  Use const0_rtx instead of
+ 	GEN_INT (0).
+ 	(<insn>v16qi3 any_rotate): Use force_reg on operands[1].  Formatting
+ 	fix.
+ 	* config/i386/i386.cc (ix86_shift_rotate_cost): Comment formatting
+ 	fixes.
+ 
+ 2025-08-26  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Add new pattern to
+ 	generate vmacc rtl.
+ 	(*pred_macc_<mode>_scalar_undef): Ditto.
+ 	* config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Add new
+ 	pattern to match the vmacc vx combine.
+ 
+ 2025-08-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121453
+ 	* omp-expand.cc (expand_omp_for_init_counts): Clear fd->loop.n2
+ 	before first zero count check if zero_iter1_bb is non-NULL upon
+ 	entry and fd->loop.n2 has not been written yet.
+ 
+ 2025-08-25  David Faust  <david.faust@oracle.com>
+ 
+ 	PR debug/121411
+ 	* dwarf2ctf.cc (gen_ctf_subrange_type): Use unsigned HWI for
+ 	array_num_elements.  Fallback to CTF_K_UNKNOWN if the array
+ 	type has too many elements for CTF to represent.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_permutation): Boolify.
+ 	(pass_forwprop::execute): No longer handle 2 as the return
+ 	from simplify_permutation.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (forward_propagate_into_comparison): Boolify.
+ 	(pass_forwprop::execute): Don't handle return of 2 from
+ 	forward_propagate_into_comparison.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (remove_prop_source_from_use): Remove
+ 	return type.
+ 	(forward_propagate_into_comparison): Update dealing with
+ 	no return type of remove_prop_source_from_use.
+ 	(forward_propagate_into_gimple_cond): Likewise.
+ 	(simplify_permutation): Likewise.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_gimple_switch): Add simple_dce_worklist
+ 	argument. Mark the old index when doing the replacement.
+ 	(pass_forwprop::execute): Update call to simplify_gimple_switch.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121279
+ 	* gimple-fold.cc (gimple_needing_rewrite_undefined): Return
+ 	true for non mode precision boolean loads.
+ 	(rewrite_to_defined_unconditional): Handle non mode precision loads.
+ 
+ 2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* tree-ssa-loop-im.cc (execute_sm): Call
+ 	get_or_create_ssa_default_def for the new uninitialized
+ 	decl.
+ 
+ 2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (addsi3, <u>mulhisi3, andsi3,
+ 	zero_extend<mode>si2, extendhisi2_internal, movsi_internal,
+ 	movhi_internal, movqi_internal, movsf_internal, ashlsi3_internal,
+ 	ashrsi3, lshrsi3, rotlsi3, rotrsi3):
+ 	Rewrite in compact syntax.
+ 
+ 2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md
+ 	(The auxiliary define_split for *masktrue_const_bitcmpl):
+ 	Use a more concise function call, i.e.,
+ 	(1 << GET_MODE_BITSIZE (mode)) - 1 is equivalent to
+ 	GET_MODE_MASK (mode).
+ 
+ 2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (mode_bits):
+ 	New mode attribute.
+ 	(zero_extend<mode>si2): Use the appropriate mode iterator and
+ 	attribute to unify "zero_extend[hq]isi2" to this description.
+ 
+ 2025-08-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121638
+ 	* tree-vect-stmts.cc (process_use): Do not make induction
+ 	PHI backedge values relevant.
+ 
+ 2025-08-25  Indu Bhagat  <indu.bhagat@oracle.com>
+ 	    Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>
+ 
+ 	* asan.h (HWASAN_TAG_SIZE): Use targetm.memtag.tag_bitsize.
+ 	* config/i386/i386.cc (ix86_memtag_tag_size): Rename to
+ 	ix86_memtag_tag_bitsize.
+ 	(TARGET_MEMTAG_TAG_SIZE): Renamed to TARGET_MEMTAG_TAG_BITSIZE.
+ 	* doc/tm.texi (TARGET_MEMTAG_TAG_SIZE): Likewise.
+ 	* doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE): Likewise.
+ 	* target.def (tag_size): Rename to tag_bitsize.
+ 	* targhooks.cc (default_memtag_tag_size): Rename to
+ 	default_memtag_tag_bitsize.
+ 	* targhooks.h (default_memtag_tag_size): Likewise.
+ 
+ 2025-08-25  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_init_cumulative_args): Change
+ 	fntype parameter from tree to const_tree.
+ 	* config/riscv/riscv.cc (riscv_init_cumulative_args): Likewise.
+ 	(riscv_function_value): Replace with new implementation that
+ 	conforms to TARGET_FUNCTION_VALUE hook signature.
+ 	(riscv_libcall_value): New function implementing TARGET_LIBCALL_VALUE.
+ 	(TARGET_FUNCTION_VALUE): Define.
+ 	(TARGET_LIBCALL_VALUE): Define.
+ 	* config/riscv/riscv.h (FUNCTION_VALUE): Remove.
+ 	(LIBCALL_VALUE): Remove.
+ 
+ 2025-08-25  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* config/i386/i386-expand.cc (ix86_vgf2p8affine_shift_matrix):
+ 	New function to lookup shift/rotate matrixes for gf2p8affine.
+ 	* config/i386/i386-protos.h (ix86_vgf2p8affine_shift_matrix):
+ 	Declare new function.
+ 	* config/i386/i386.cc (ix86_shift_rotate_cost): Add cost model
+ 	for shift/rotate implemented using gf2p8affine.
+ 	* config/i386/sse.md (VI1_AVX512_3264): New mode iterator.
+ 	(<insn><mode>3): Add GFNI case for shift patterns.
+ 	(cond_<insn><mode>3): New pattern.
+ 	(<insn><mode>3<mask_name>): Dito.
+ 	(<insn>v16qi): New rotate pattern to handle XOP V16QI case
+ 	and GFNI.
+ 	(rotl<mode>3, rotr<mode>3): Exclude V16QI case.
+ 
+ 2025-08-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/121634
+ 	* config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>): Use
+ 	WVEC_HALF instead of WVEC for the mode of the sign_extend for
+ 	the rhs of multiplication.
+ 
+ 2025-08-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* ifcvt.cc (noce_try_sign_bit_splat): Fix right shift computation.
+ 
+ 2025-08-23  Sam James  <sam@gentoo.org>
+ 
+ 	PR target/120933
+ 	* config.gcc (supported_defaults): Add tls for i386, x86_64.
+ 	* config/i386/i386.h (OPTION_DEFAULT_SPECS): Add tls.
+ 	* doc/install.texi: Document --with-tls= for i386, x86_64.
+ 
+ 2025-08-23  John Ericson  <git@JohnEricson.me>
+ 
+ 	* gcc.cc (for_each_path): templated, to make passing lambdas
+ 	possible/easy/safe, and to have a polymorphic return type.
+ 	(struct add_to_obstack_info): Deleted, lambda captures replace
+ 	it.
+ 	(add_to_obstack): Moved to lambda in build_search_list.
+ 	(build_search_list): Has above lambda now.
+ 	(struct file_at_path_info):  Deleted, lambda captures replace
+ 	it.
+ 	(file_at_path): Moved to lambda in find_a_file.
+ 	(find_a_file): Has above lambda now.
+ 	(struct spec_path_info): Reamed to just struct spec_path.
+ 	(struct spec_path): New name.
+ 	(spec_path): Rnamed to spec_path::operator()
+ 	(spec_path::operator()): New name
+ 	(do_spec_1): Updated for_each_path call sites.
+ 
+ 2025-08-22  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	PR target/118890
+ 	* config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Add bounds
+ 	checks for shift counts to prevent undefined behavior.
+ 	(rs6000_emit_set_long_const): Likewise.
+ 
+ 2025-08-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/120553
+ 	* ifcvt.cc (noce_try_sign_bit_splat): New function.
+ 	(noce_process_if_block): Use it.
+ 
+ 2025-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation): Pass
+ 	the representative of the PHIs node to
+ 	vect_create_epilog_for_reduction.
+ 
+ 2025-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_lane_reducing): Get
+ 	reduction info properly.  Adjust checks according to
+ 	comments.
+ 	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN
+ 	on the reduc info.
+ 	(vect_transform_reduction): Query STMT_VINFO_REDUC_VECTYPE_IN
+ 	on the actual reduction stmt, not the info.
+ 
+ 2025-08-22  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 3 for unsigned SAT_MUL.
+ 
+ 2025-08-22  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121635
+ 	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
+ 	TLS call after NOTE_INSN_FUNCTION_BEG.
+ 
+ 2025-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction): Adjust
+ 	comment.
+ 	(vect_create_epilog_for_reduction): Get at the reduction
+ 	kind via the instance, re-use the slp_reduc flag instead
+ 	of checking REDUC_GROUP_FIRST_ELEMENT again.
+ 	Remove unreachable code.
+ 	(vectorizable_reduction): Compute a reduc_chain flag from
+ 	the SLP instance kind, avoid REDUC_GROUP_FIRST_ELEMENT
+ 	checks.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vectorizable_live_operation): Check the SLP instance
+ 	kind instead of REDUC_GROUP_FIRST_ELEMENT.
+ 
+ 2025-08-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-parloops.cc (parloops_is_simple_reduction): Pass
+ 	in double reduction inner loop LC phis and query that.
+ 	(parloops_force_simple_reduction): Similar, but set it.
+ 	Check for valid reduction types here.
+ 	(valid_reduction_p): Remove.
+ 	(gather_scalar_reductions): Adjust, fixup double
+ 	reduction inner loop processing.
+ 
+ 2025-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/riscv/t-rtems: Add -mstrict-align multilibs for
+ 	targets without support for misaligned access in hardware.
+ 
+ 2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.cc (pru_init_libfuncs): Set softmpy libgcc
+ 	functions for optab multiplication entries if TARGET_OPT_MUL
+ 	option is not set.
+ 
+ 2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config.gcc: Include pru/t-multilib.
+ 	* config/pru/pru.h (MULTILIB_DEFAULTS): Define.
+ 	* config/pru/t-multilib: New file.
+ 
+ 2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* common/config/pru/pru-common.cc (TARGET_DEFAULT_TARGET_FLAGS):
+ 	Keep multiplication, FILL and ZERO instructions enabled by
+ 	default.
+ 	* config/pru/pru.md (prumov<mode>): Gate code generation on
+ 	TARGET_OPT_FILLZERO.
+ 	(mov<mode>): Ditto.
+ 	(zero_extendqidi2): Ditto.
+ 	(zero_extendhidi2): Ditto.
+ 	(zero_extendsidi2): Ditto.
+ 	(@pru_ior_fillbytes<mode>): Ditto.
+ 	(@pru_and_zerobytes<mode>): Ditto.
+ 	(@<code>di3): Ditto.
+ 	(mulsi3): Gate code generation on TARGET_OPT_MUL.
+ 	* config/pru/pru.opt: Add mmul and mfillzero options.
+ 	* config/pru/pru.opt.urls: Regenerate.
+ 	* config/rl78/rl78.opt.urls: Regenerate.
+ 	* doc/invoke.texi: Document new options.
+ 
+ 2025-08-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/121619
+ 	* rtl-ssa/functions.h (function_info::commit_make_use_available):
+ 	Declare.
+ 	* rtl-ssa/blocks.cc (function_info::commit_make_use_available):
+ 	New function.
+ 	* rtl-ssa/changes.cc (function_info::apply_changes_to_insn): Use it.
+ 
+ 2025-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/111494
+ 	* gimple-fold.h (arith_code_with_undefined_signed_overflow): Declare.
+ 	* gimple-fold.cc (arith_code_with_undefined_signed_overflow): Export.
+ 	* tree-vect-stmts.cc (vectorizable_operation): Use unsigned
+ 	arithmetic for operations participating in a reduction.
+ 
+ 2025-08-21  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121607
+ 	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
+ 	TLS call after NOTE_INSN_BASIC_BLOCK in a basic block with only
+ 	a label.
+ 
+ 2025-08-21  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (*btrue_INT_MIN):
+ 	Change the branch insn condition to test for a negative number
+ 	rather than testing for the MSB.
+ 
+ 2025-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vectorizable_phi): Take bb_vec_info.
+ 	(vectorizable_early_exit): Take loop_vec_info.
+ 	* tree-vect-loop.cc (vectorizable_phi): Adjust.
+ 	* tree-vect-slp.cc (vect_slp_analyze_operations): Likewise.
+ 	(vectorize_slp_instance_root_stmt): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_early_exit): Likewise.
+ 	(vect_transform_stmt): Likewise.
+ 	(vect_analyze_stmt): Merge the sequences of vectorizable_*
+ 	where common.
+ 
+ 2025-08-20  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-08-20  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR tree-optimization/109071
+ 	PR tree-optimization/85788
+ 	PR tree-optimization/88771
+ 	PR tree-optimization/106762
+ 	PR tree-optimization/108770
+ 	PR tree-optimization/115274
+ 	PR tree-optimization/117179
+ 	* Makefile.in (OBJS): Add diagnostic-context-rich-location.o.
+ 	* common.opt (fdiagnostics-show-context): New option.
+ 	(fdiagnostics-show-context=): New option.
+ 	* diagnostic-context-rich-location.cc: New file.
+ 	* diagnostic-context-rich-location.h: New file.
+ 	* doc/invoke.texi (fdiagnostics-details): Add
+ 	documentation for the new options.
+ 	* gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add
+ 	one new parameter. Use rich location with details for warning_at.
+ 	(array_bounds_checker::check_array_ref): Use rich location with
+ 	ditails for warning_at.
+ 	(array_bounds_checker::check_mem_ref): Add one new parameter.
+ 	Use rich location with details for warning_at.
+ 	(array_bounds_checker::check_addr_expr): Use rich location with
+ 	move_history_diagnostic_path for warning_at.
+ 	(array_bounds_checker::check_array_bounds): Call check_mem_ref with
+ 	one more parameter.
+ 	* gimple-array-bounds.h: Update prototype for check_mem_ref.
+ 	* gimple-ssa-warn-access.cc (warn_string_no_nul): Use rich location
+ 	with details for warning_at.
+ 	(maybe_warn_nonstring_arg): Likewise.
+ 	(maybe_warn_for_bound): Likewise.
+ 	(warn_for_access): Likewise.
+ 	(check_access): Likewise.
+ 	(pass_waccess::check_strncat): Likewise.
+ 	(pass_waccess::maybe_check_access_sizes): Likewise.
+ 	* gimple-ssa-warn-restrict.cc (pass_wrestrict::execute): Calculate
+ 	dominance info for diagnostics show context.
+ 	(maybe_diag_overlap): Use rich location with details for warning_at.
+ 	(maybe_diag_access_bounds): Use rich location with details for
+ 	warning_at.
+ 
+ 2025-08-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121568
+ 	* ipa-prop.h (build_ref_for_offset): Remove.
+ 	* tree-sra.cc (build_ref_for_offset): Make static.
+ 
+ 2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config.gcc (aarch64*-*-*): Remove aarch64-cc-fusion.o from
+ 	extra_objs.
+ 	* config/aarch64/aarch64-passes.def (pass_cc_fusion): Delete.
+ 	* config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Delete.
+ 	* config/aarch64/t-aarch64 (aarch64-cc-fusion.o): Delete.
+ 	* config/aarch64/aarch64-cc-fusion.cc: Delete.
+ 	* late-combine.cc (late_combine::optimizable_set): Take a set_info *
+ 	rather than an insn_info * and move destination tests from...
+ 	(late_combine::combine_into_uses): ...here. Take a set_info * rather
+ 	an insn_info *.  Take the rtx set.
+ 	(late_combine::parallelize_insns, late_combine::combine_cc_setter)
+ 	(late_combine::combine_insn): New member functions.
+ 	(late_combine::m_parallel): New member variable.
+ 	* rtlanal.cc (pattern_cost): Handle sets of CC registers in the
+ 	same way as comparisons.
+ 
+ 2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Fix
+ 	inverted test of bitmap_set_bit.  Call add_live_out_use even
+ 	if the register was previously live-out from the predecessor block.
+ 	Instead...
+ 	(function_info::add_live_out_use): ...check here whether a live-out
+ 	use already exists.
+ 
+ 2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl-ssa/accesses.h (use_lookup): New class.
+ 	* rtl-ssa/functions.h (function_info::find_def): Expand comment.
+ 	(function_info::find_use): Declare.
+ 	* rtl-ssa/member-fns.inl (use_lookup::prev_use, use_lookup::next_use)
+ 	(use_lookup::matching_use, use_lookup::matching_or_prev_use)
+ 	(use_lookup::matching_or_next_use): New member functions.
+ 	* rtl-ssa/accesses.cc (function_info::find_use): Likewise.
+ 
+ 2025-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114480
+ 	* cfganal.cc (compute_idf): Split processing of the initial
+ 	workset from the main iteration.  Use a vector for the
+ 	workset of the main iteration.
+ 
+ 2025-08-20  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/121608
+ 	* config/avr/specs.h (LINK_RELAX_SPEC): Wrap in %{!r...}.
+ 
+ 2025-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): New,
+ 	copied from vect_analyze_slp_instance and only handle
+ 	slp_inst_kind_reduc_chain.  Inline vect_build_slp_instance.
+ 	(vect_analyze_slp_instance): Only handle slp_inst_kind_store.
+ 	Inline vect_build_slp_instance.
+ 	(vect_build_slp_instance): Remove now unused stmt_info parameter,
+ 	remove special code for store groups and reduction chains.
+ 	(vect_analyze_slp): Call vect_analyze_slp_reduc_chain
+ 	for reduction chain SLP build and adjust.
+ 
+ 2025-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter):
+ 	Remove restriction on epilogue of epilogue vectorization.
+ 
+ 2025-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove
+ 	fixing up pattern stmt operands and gather/scatter DR_REFs.
+ 	(find_in_mapping): Remove.
+ 
+ 2025-08-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_load_store_data): New.
+ 	(_slp_tree::memory_access_type): Remove.
+ 	(SLP_TREE_MEMORY_ACCESS_TYPE): Turn into inline function.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Do not
+ 	initialize SLP_TREE_MEMORY_ACCESS_TYPE.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Remove gather_scatter_info pointer argument, instead get
+ 	info from the SLP node.
+ 	(vect_build_one_gather_load_call): Get SLP node and builtin
+ 	decl as argument and remove uses of gather_scatter_info.
+ 	(vect_build_one_scatter_store_call): Likewise.
+ 	(vect_get_gather_scatter_ops): Remove uses of gather_scatter_info.
+ 	(vect_get_strided_load_store_ops): Get SLP node and remove
+ 	uses of gather_scatter_info.
+ 	(get_load_store_type): Take pointer to vect_load_store_data
+ 	instead of individual pointers.
+ 	(vectorizable_store): Adjust.  Re-use get_load_store_type
+ 	result from analysis time.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-08-20  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121572
+ 	* config/i386/i386-features.cc (replace_tls_call): Add a bitmap
+ 	argument and put the updated TLS instruction in the bitmap.
+ 	(ix86_get_dominator_for_reg): New.
+ 	(ix86_check_flags_reg): Likewise.
+ 	(ix86_emit_tls_call): Likewise.
+ 	(ix86_place_single_tls_call): Add 2 bitmap arguments for updated
+ 	GNU and GNU2 TLS instructions.  Call ix86_emit_tls_call to emit
+ 	TLS instruction.  Correct debug dump for before instruction.
+ 
+ 2025-08-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/120024
+ 	* calls.cc (expand_call): Remove start_sequence/end_sequence
+ 	for ECF_MALLOC.
+ 	Check valreg before deferencing it when it comes to malloc like
+ 	functions. Use the return value of emit_move_insn instead of
+ 	calling get_last_insn.
+ 
+ 2025-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-parloops.cc (parloops_is_slp_reduction): Remove.
+ 	(parloops_is_simple_reduction): Do not call it.
+ 
+ 2025-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Pass the
+ 	appropriate SLP node for costing of single-def-use-cycle
+ 	operations.
+ 	(vectorizable_live_operation): Pass the SLP node to the
+ 	costing hook.
+ 	* tree-vect-stmts.cc (vectorizable_bswap): Likewise.
+ 	(vectorizable_store): Likewise.
+ 
+ 2025-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121592
+ 	* tree-vect-slp.cc (vect_analyze_slp): When SLP reduction chain
+ 	discovery fails, fail overall when the tail of the chain
+ 	isn't also the entry for the non-SLP reduction.
+ 
+ 2025-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config.gcc (riscv*-*-*): Look for python3, then fall back
+ 	to python.  Never use python2.
+ 
+ 2025-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121527
+ 	* tree-sra.cc (build_access_from_expr_1): Do not strip an
+ 	outer VIEW_CONVERT_EXPR as it's relevant for the size of
+ 	the access.
+ 	(get_access_for_expr): Likewise.
+ 
+ 2025-08-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121536
+ 	* config/aarch64/aarch64.cc (aarch64_bool_compound_p): Use
+ 	SLP_TREE_VECTYPE instead of STMT_VINFO_VECTYPE.
+ 	(aarch64_adjust_stmt_cost, aarch64_vector_costs::count_ops): Pass SLP
+ 	node to aarch64_bool_compound_p.
+ 
+ 2025-08-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121536
+ 	* tree-vect-loop.cc (vectorizable_phi, vectorizable_recurr,
+ 	vectorizable_nonlinear_induction, vectorizable_induction): Pass slp_node
+ 	instead of stmt_info to record_stmt_cost.
+ 
+ 2025-08-19  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121536
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): Set
+ 	vectype from type of lhs of gimple stmt.
+ 
+ 2025-08-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/121581
+ 	* doc/extend.texi (__builtin_object_size): Fix example.
+ 
+ 2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	* flag-types.h (sanitize_code_type): Define.
+ 	* asan.h (sanitize_flags_p): Use 'sanitize_code_type' instead of
+ 	'unsigned int'.
+ 	* common.opt: Likewise.
+ 	* dwarf2asm.cc (dw2_output_indirect_constant_1): Likewise.
+ 	* opts.cc (find_sanitizer_argument): Likewise.
+ 	(report_conflicting_sanitizer_options): Likewise.
+ 	(parse_sanitizer_options): Likewise.
+ 	(parse_no_sanitize_attribute): Likewise.
+ 	* opts.h (parse_sanitizer_options): Likewise.
+ 	(parse_no_sanitize_attribute): Likewise.
+ 	* tree-cfg.cc (print_no_sanitize_attr_value): Likewise.
+ 	* tree.cc (tree_fits_sanitize_code_type_p): Define.
+ 	(tree_to_sanitize_code_type): Likewise.
+ 	* tree.h (tree_fits_sanitize_code_type_p): Declare.
+ 	(tree_to_sanitize_code_type): Likewise.
+ 
+ 2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>
+ 
+ 	* config/aarch64/aarch64.md (MEMTAG_TAG_MASK): New define
+ 	constant.
+ 	(MEMTAG_ADDR_MASK): Likewise.
+ 	(irg, subp, ldg): Use new constants.
+ 
+ 2025-08-18  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/97497
+ 	* function-abi.h (predefined_function_abi::only_partial_reg_clobbers)
+ 	(function_abi::only_partial_reg_clobbers): New member functions.
+ 	* gcse-common.cc: Include regs.h and function-abi.h.
+ 	(compute_transp): Check for partially call-clobbered registers
+ 	and treat them as not being transparent in blocks with calls.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (UNSPEC_TI_FETCH_ADD): New unspec.
+ 	(UNSPEC_TI_FETCH_SUB): Likewise.
+ 	(UNSPEC_TI_FETCH_AND): Likewise.
+ 	(UNSPEC_TI_FETCH_XOR): Likewise.
+ 	(UNSPEC_TI_FETCH_OR): Likewise.
+ 	(UNSPEC_TI_FETCH_NAND_MASK_INVERTED): Likewise.
+ 	(ALL_SC): New define_mode_iterator.
+ 	(_scq): New define_mode_attr.
+ 	(atomic_fetch_nand<mode>): Accept ALL_SC instead of only GPR.
+ 	(UNSPEC_TI_FETCH_DIRECT): New define_int_iterator.
+ 	(UNSPEC_TI_FETCH): New define_int_iterator.
+ 	(amop_ti_fetch): New define_int_attr.
+ 	(size_ti_fetch): New define_int_attr.
+ 	(atomic_fetch_<amop_ti_fetch>ti_scq): New define_insn.
+ 	(atomic_fetch_<amop_ti_fetch>ti): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_exchangeti_scq): New
+ 	define_insn.
+ 	(atomic_exchangeti): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_compare_and_swapti_scq): New
+ 	define_insn.
+ 	(atomic_compare_and_swapti): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
+ 	Accept "%t" for printing the number of the 64-bit machine
+ 	register holding the upper half of a TImode.
+ 	* config/loongarch/sync.md (atomic_storeti_scq): New
+ 	define_insn.
+ 	(atomic_storeti): expand to atomic_storeti_scq if !ISA_HAS_LSX.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/genopts/isa-evolution.in (scq): New evolution
+ 	feature.
+ 	* config/loongarch/loongarch-evolution.cc: Regenerate.
+ 	* config/loongarch/loongarch-evolution.h: Regenerate.
+ 	* config/loongarch/loongarch-str.h: Regenerate.
+ 	* config/loongarch/loongarch.opt: Regenerate.
+ 	* config/loongarch/loongarch.opt.urls: Regenerate.
+ 	* config/loongarch/loongarch-def.cc: Make -mscq the default for
+ 	-march=la664 and -march=la64v1.1.
+ 	* doc/invoke.texi (LoongArch Options): Document -m[no-]scq.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_storeti_lsx): New
+ 	define_insn.
+ 	(atomic_storeti): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_loadti_lsx): New define_insn.
+ 	(atomic_loadti): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md
+ 	(atomic_fetch_nand_mask_inverted<GPR:mode>): New define_insn.
+ 	(atomic_fetch_nand<GPR:mode>): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_fetch_sub<SHORT:mode>):
+ 	Disable if ISA_HAS_LAM_BH.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AND):
+ 	Remove.
+ 	(UNSPEC_COMPARE_AND_SWAP_XOR): Remove.
+ 	(UNSPEC_COMPARE_AND_SWAP_OR): Remove.
+ 	(atomic_test_and_set): Rename to ...
+ 	(atomic_fetch_<any_bitwise:amop><SHORT:mode>): ... this, and
+ 	adapt the expansion to use it for any bitwise operations and any
+ 	val, instead of just ior 1.
+ 	(atomic_test_and_set): New define_expand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_test_and_set): Remove
+ 	unneeded andi instruction from the expansion.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
+ 	Make "%T" output a comment marker if the operand is a memory
+ 	order for which the barrier won't be generated; remove "%t".
+ 	* config/loongarch/sync.md (atomic_cas_value_strong<mode>): Add
+ 	%T before "b 3f".
+ 	(atomic_cas_value_cmp_and_7_<mode>): Likewise.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AMCAS): New
+ 	UNSPEC code.
+ 	(atomic_cas_value_strong<mode>): NFC, update the comment to note
+ 	we only need to consider failure memory order.
+ 	(atomic_cas_value_strong<mode>_amcas): Use
+ 	UNSPEC_COMPARE_AND_SWAP_AMCAS instead of
+ 	UNSPEC_COMPARE_AND_SWAP.
+ 	(atomic_compare_and_swap<mode:GPR>): Pass failure memorder to
+ 	gen_atomic_cas_value_strong<mode>.
+ 	(atomic_compare_and_swap<mode:SHORT>): Pass failure memorder to
+ 	gen_atomic_cas_value_cmp_and_7_si.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_test_and_set): Use bstrins
+ 	for masking the address if possible.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_load<mode>): Remove "+" for
+ 	the memory operand.
+ 	(atomic_store<mode>): Use "=" instead of "+" for the memory
+ 	operand.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md: Use <size> instead of <amo>.
+ 	(amo): Remove.
+ 
+ 2025-08-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/sync.md (atomic_optab): Remove.
+ 	(atomic_<atomic_optab><mode>): Change atomic_optab to amop.
+ 	(atomic_fetch_<atomic_optab><mode>): Likewise.
+ 
+ 2025-08-17  Austin Law  <austinklaw@gmail.com>
+ 
+ 	PR target/121213
+ 	* config/riscv/sync.md (amo_atomic_exchange<mode>): Allow
+ 	(const_int 0) as input operand. Do not tie input to output.
+ 	No longer earlyclobber the output.
+ 
+ 2025-08-17  Artemiy Volkov  <artemiyv@acm.org>
+ 
+ 	* regrename.cc (scan_rtx_reg): Handle fused insn pairs.
+ 
+ 2025-08-17  Jan Dubiec  <jdx@o2.pl>
+ 
+ 	PR target/109324
+ 	* config/h8300/addsub.md: Explicitly specify mode for plus operation.
+ 	* config/h8300/jumpcall.md: Explicitly specify modes for eq and
+ 	match_operand operations.
+ 	* config/h8300/testcompare.md: Explicitly specify modes for eq, ltu
+ 	and compare operations.
+ 
+ 2025-08-17  Artemiy Volkov  <artemiyv@acm.org>
+ 
+ 	* ira-conflicts.cc (add_insn_allocno_copies): Handle fused insn pairs.
+ 	* rtl.h (single_output_fused_pair_p): Declare new function.
+ 	* rtlanal.cc (single_output_fused_pair_p): Define it.
+ 
+ 2025-08-17  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/121538
+ 	* config/riscv/arch-canonicalize (parse_dep_exts):
+ 	Match condition block up to closing brace.
+ 	(test_parse_long_condition_block): New test.
+ 
+ 2025-08-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121541
+ 	* config/i386/i386-options.cc
+ 	(ix86_valid_target_attribute_inner_p): Add target("80387")
+ 	attribute.  Set the mask bit in opts_set->x_target_flags if the
+ 	mask bit in opts->x_target_flags is updated.
+ 	* doc/extend.texi: Document target("80387") function attribute.
+ 
+ 2025-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Add supported insn
+ 	of vx combine.
+ 
+ 2025-08-17  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Add missed DONE
+ 	for vx combine pattern.
+ 
+ 2025-08-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* doc/extend.texi (Type Traits): Document
+ 	__builtin_structured_binding_size.
+ 
+ 2025-08-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/121552
+ 	* doc/invoke.texi (-Wno-non-c-typedef-for-linkage): Document.
+ 
+ 2025-08-15  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* real.cc (real_to_decimal_for_mode): Set str[0] to known value.
+ 
+ 2025-08-15  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/121534
+ 	* config/riscv/riscv.md (round_pattern): save/restore fflags.
+ 
+ 2025-08-15  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Extend counted_by attribute to pointer fields in
+ 	structures. Add one more requirement to pointers with counted_by
+ 	attribute.
+ 
+ 2025-08-15  Umesh Kalappa  <ukalappa.mips@gmail.com>
+ 
+ 	* config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT):
+ 	Added mips prefetch extension.
+ 	* config/riscv/riscv-ext.opt: Generated file.
+ 	* config/riscv/riscv.md (prefetch):
+ 	Added mips prefetch address operand constraint.
+ 	* config/riscv/constraints.md: Added mips specific constraint.
+ 	* config/riscv/predicates.md (prefetch_operand):
+ 	Updated for mips nine bits offset.
+ 	* config/riscv/riscv.cc (riscv_prefetch_offset_address_p):
+ 	Legitimate address with offset for prefetch check.
+ 	* config/riscv/riscv-protos.h: Likewise.
+ 	* config/riscv/riscv.h:
+ 	Macros to support for mips cached type.
+ 	* doc/riscv-ext.texi: Updated for mips prefetch.
+ 
+ 2025-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/riscv/riscv-protos.h
+ 	(riscv_process_target_version_attr): Change location_t argument
+ 	to location_t *.
+ 	* config/riscv/riscv-subset.h
+ 	(riscv_subset_list::riscv_subset_list): Change location_t argument
+ 	to location_t *.
+ 	(riscv_subset_list::parse): Likwise.
+ 	(riscv_subset_list::set_loc): Likewise.
+ 	(riscv_minimal_hwprobe_feature_bits): Likewise.
+ 	(riscv_subset_list::m_loc): Change type to location_t.
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::riscv_subset_list): Change location_t argument
+ 	to location_t *.
+ 	(riscv_subset_list::add): Suppress diagnostics when m_loc is null.
+ 	(riscv_subset_list::parsing_subset_version): Likewise.
+ 	(riscv_subset_list::parse_profiles): Likewise.
+ 	(riscv_subset_list::parse_base_ext): Likewise.
+ 	(riscv_subset_list::parse_single_std_ext): Likewise.
+ 	(riscv_subset_list::check_conflict_ext): Likewise.
+ 	(riscv_subset_list::parse_single_multiletter_ext): Likewise.
+ 	(riscv_subset_list::parse): Change location_t argument to location_t *.
+ 	(riscv_subset_list::set_loc): Likewise.
+ 	(riscv_minimal_hwprobe_feature_bits): Likewise.
+ 	(riscv_parse_arch_string): Update call accordingly.
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::m_loc): Change type to location_t *.
+ 	(riscv_target_attr_parser::riscv_target_attr_parser): Change
+ 	location_t argument to location_t *.
+ 	(riscv_process_one_target_attr): Likewise.
+ 	(riscv_process_target_attr): Likewise.
+ 	(riscv_process_target_version_attr): Likewise.
+ 	(riscv_target_attr_parser::parse_arch): Suppress diagnostics when
+ 	m_loc is null.
+ 	(riscv_target_attr_parser::handle_arch): Likewise.
+ 	(riscv_target_attr_parser::handle_cpu): Likewise.
+ 	(riscv_target_attr_parser::handle_tune): Likewise.
+ 	(riscv_target_attr_parser::handle_priority): Likewise.
+ 	(riscv_option_valid_attribute_p): Update call accordingly.
+ 	(riscv_option_valid_version_attribute_p): Likewise.
+ 	* config/riscv/riscv.cc (parse_features_for_version): Add a
+ 	location_t * argument.
+ 	(dispatch_function_versions): Update call accordingly.
+ 	(riscv_compare_version_priority): Likewise, suppressing diagnostics.
+ 
+ 2025-08-15  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* tree-nrv.cc (pass_return_slot::execute): Use
+ 	gimple_call_fntype instead of gimple_call_fndecl.
+ 
+ 2025-08-15  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/121542
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_vector_costs::add_stmt_cost): When using vectype,
+ 	first determine whether it is NULL.
+ 
+ 2025-08-14  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/119275
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Avoid calling
+ 	gen_lowpart for cases where it'll fail.  Just use standard expander
+ 	paths for those cases.
+ 
+ 2025-08-14  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR target/121336
+ 	* config/cris/cris.h: Do not abbreviate --emulation.
+ 
+ 2025-08-14  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121501
+ 	* config/rs6000/rs6000.md (cmprb, setb_signed, setb_unsigned)
+ 	(cmprb2, cmpeqb): Add missing modes to nested if_then_elses.
+ 
+ 2025-08-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121474
+ 	* passes.def: Update forwprop1/2 to have full_walk to be true.
+ 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Add new argument
+ 	full_walk. Take into account the full_walk and clobbers at the end
+ 	of the limit can be done always.
+ 	(simplify_builtin_call): Add new argument, full_walk.
+ 	Update call to optimize_aggr_zeroprop.
+ 	(pass_forwprop): Add m_full_walk field.
+ 	(pass_forwprop::set_pass_param): Update for m_full_walk.
+ 	(pass_forwprop::execute): Update call to simplify_builtin_call
+ 	and optimize_aggr_zeroprop.
+ 
+ 2025-08-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): New function split out of ...
+ 	(optimize_agr_copyprop): Here. Also try calling optimize_agr_copyprop_arg.
+ 	(optimize_agr_copyprop_arg): New function.
+ 
+ 2025-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.md: Merge movdi<mode>_zero_extend_A and
+ 	movsi<mode>_zero_extend_A into zero_extendsidi2 and
+ 	zero_extendhi<mode>2_z10 and
+ 	zero_extend<HQI:mode><GPR:mode>2_extimm.
+ 	* config/s390/vector.md (*movdi<mode>_zero_extend_A): Remove.
+ 	(*movsi<mode>_zero_extend_A): Remove.
+ 	(*movdi<mode>_zero_extend_B): Move to vec_extract patterns and
+ 	rename to *vec_extract<mode>_zero_extend.
+ 	(*movsi<mode>_zero_extend_B): Ditto.
+ 
+ 2025-08-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121540
+ 	* config/i386/i386-options.cc (ix86_set_current_function):
+ 	Properly check if MMX and 80387 are enabled.
+ 
+ 2025-08-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/121531
+ 	* config/riscv/sifive-p400.md (sifive_p400_unknown): New reservation.
+ 	* config/riscv/sifive-p600.md (sifive_p600_unkonwn): Likewise.
+ 
+ 2025-08-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/output-spec.cc (sarif_scheme_handler::make_sink):
+ 	Populate sarif_generation_options instance directly, rather than
+ 	through local variables.
+ 	(sarif_scheme_handler::make_sarif_gen_opts): Drop.
+ 	(html_scheme_handler::make_sink): Populate html_generation_options
+ 	instance directly, rather than through local variables.
+ 
+ 2025-08-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* config.gcc: Mark epiphany*-*-* and rl78*-*-* as
+ 	obsolete targets.
+ 
+ 2025-08-13  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/81501
+ 	* config/i386/i386-features.cc (x86_cse_kind): Add X86_CSE_TLS_GD,
+ 	X86_CSE_TLS_LD_BASE and X86_CSE_TLSDESC.
+ 	(redundant_load): Renamed to ...
+ 	(redundant_pattern): This.
+ 	(ix86_place_single_vector_set): Replace redundant_load with
+ 	redundant_pattern.
+ 	(replace_tls_call): New.
+ 	(ix86_place_single_tls_call): Likewise.
+ 	(pass_remove_redundant_vector_load): Renamed to ...
+ 	(pass_x86_cse): This.  Add val, def_insn, mode, scalar_mode, kind,
+ 	x86_cse, candidate_gnu_tls_p, candidate_gnu2_tls_p and
+ 	candidate_vector_p.
+ 	(pass_x86_cse::candidate_gnu_tls_p): New.
+ 	(pass_x86_cse::candidate_gnu2_tls_p): Likewise.
+ 	(pass_x86_cse::candidate_vector_p): Likewise.
+ 	(remove_redundant_vector_load): Renamed to ...
+ 	(pass_x86_cse::x86_cse): This.  Extend to remove redundant TLS
+ 	calls.
+ 	(make_pass_remove_redundant_vector_load): Renamed to ...
+ 	(make_pass_x86_cse): This.
+ 	* config/i386/i386-passes.def: Replace
+ 	pass_remove_redundant_vector_load with pass_x86_cse.
+ 	* config/i386/i386-protos.h (ix86_tls_get_addr): New.
+ 	(make_pass_remove_redundant_vector_load): Renamed to ...
+ 	(make_pass_x86_cse): This.
+ 	* config/i386/i386.cc (ix86_tls_get_addr): Remove static.
+ 	* config/i386/i386.h (machine_function): Add
+ 	tls_descriptor_call_multiple_p.
+ 	* config/i386/i386.md (tls64): New attribute.
+ 	(@tls_global_dynamic_64_<mode>): Set tls_descriptor_call_multiple_p.
+ 	(@tls_local_dynamic_base_64_<mode>): Likewise.
+ 	(@tls_dynamic_gnu2_64_<mode>): Likewise.
+ 	(*tls_global_dynamic_64_<mode>): Set tls64 attribute to gd.
+ 	(*tls_local_dynamic_base_64_<mode>): Set tls64 attribute to ld_base.
+ 	(*tls_dynamic_gnu2_lea_64_<mode>): Set tls64 attribute to lea.
+ 	(*tls_dynamic_gnu2_call_64_<mode>): Set tls64 attribute to call.
+ 	(*tls_dynamic_gnu2_combine_64_<mode>): Set tls64 attribute to
+ 	combine.
+ 
+ 2025-08-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.in: Regenerate.
+ 	* config/darwin.h (DARWIN_LD_NO_DEDUPLICATE): New.
+ 	(LINK_SPEC): Handle -no_deduplicate.
+ 	* configure: Regenerate.
+ 	* configure.ac: Detect linker support for -no_deduplicate.
+ 
+ 2025-08-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-sections.def (asan_string_section,
+ 	asan_globals_section, asan_liveness_section): New.
+ 	* config/darwin.cc (objc_method_decl): Use asan sections
+ 	when asan is enabled.
+ 	(darwin_encode_section_info): Alter string constant
+ 	linker visibility depending on asan.
+ 	(machopic_select_section): Use the asan sections when
+ 	asan is enabled.
+ 
+ 2025-08-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/121160
+ 	* config/riscv/riscv.cc (canonicalize_comparands); Tighten check for
+ 	forcing value into a GPR.
+ 
+ 2025-08-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121474
+ 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Move the check
+ 	for limit before the alias check.
+ 
+ 2025-08-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (SLP_TREE_PERMUTE_P): New.
+ 	* tree-vect-slp-patterns.cc (linear_loads_p): Adjust.
+ 	(vect_detect_pair_op): Likewise.
+ 	(addsub_pattern::recognize): Likewise.
+ 	* tree-vect-slp.cc (vect_print_slp_tree): Likewise.
+ 	(vect_gather_slp_loads): Likewise.
+ 	(vect_is_slp_load_node): Likewise.
+ 	(optimize_load_redistribution_1): Likewise.
+ 	(vect_optimize_slp_pass::is_cfg_latch_edge): Likewise.
+ 	(vect_optimize_slp_pass::internal_node_cost): Likewise.
+ 	(vect_optimize_slp_pass::start_choosing_layouts): Likewise.
+ 	(vect_optimize_slp_pass::backward_cost): Likewise.
+ 	(vect_optimize_slp_pass::forward_pass): Likewise.
+ 	(vect_optimize_slp_pass::get_result_with_layout): Likewise.
+ 	(vect_optimize_slp_pass::materialize): Likewise.
+ 	(vect_optimize_slp_pass::dump): Likewise.
+ 	(vect_optimize_slp_pass::decide_masked_load_lanes): Likewise.
+ 	(vect_update_slp_vf_for_node): Likewise.
+ 	(vect_slp_analyze_node_operations_1): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 	(vect_schedule_scc): Likewise.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Likewise.
+ 	(vect_transform_stmt): Likewise.
+ 	(vect_is_simple_use): Likewise.
+ 
+ 2025-08-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Use
+ 	SLP_TREE_DEF_TYPE instead of STMT_VINFO_DEF_TYPE.
+ 
+ 2025-08-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_memory_access_type): Replace
+ 	VMAT_GATHER_SCATTER with three separate access types,
+ 	VMAT_GATHER_SCATTER_LEGACY, VMAT_GATHER_SCATTER_IFN and
+ 	VMAT_GATHER_SCATTER_EMULATED.
+ 	(mat_gather_scatter_p): New predicate.
+ 	(GATHER_SCATTER_LEGACY_P): Remove.
+ 	(GATHER_SCATTER_IFN_P): Likewise.
+ 	(GATHER_SCATTER_EMULATED_P): Likewise.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Adjust.
+ 	(get_load_store_type): Likewise.
+ 	(vect_get_loop_variant_data_ptr_increment): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Likewise.
+ 	* config/riscv/riscv-vector-costs.cc
+ 	(costs::need_additional_vector_vars_p): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype):
+ 	Likewise.
+ 	(aarch64_vector_costs::count_ops): Likewise.
+ 	(aarch64_vector_costs::add_stmt_cost): Likewise.
+ 
+ 2025-08-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_supportable_dr_alignment): Pass
+ 	a bool instead of a pointer to gather_scatter_info.
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
+ 	Likewise.
+ 	* tree-vect-stmts.cc (get_load_store_type): Adjust.
+ 
+ 2025-08-13  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/120476
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_compute_pressure_classes): New function.
+ 	(TARGET_COMPUTE_PRESSURE_CLASSES): Define.
+ 
+ 2025-08-13  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	PR target/117599
+ 	* config/loongarch/loongarch.h: Define a PROMOTE_MODE case for
+ 	small _BitInts.
+ 	* config/loongarch/loongarch.cc (loongarch_promote_function_mode):
+ 	Same.
+ 	(loongarch_bitint_type_info): New function.
+ 	(TARGET_C_BITINT_TYPE_INFO): Declare.
+ 
+ 2025-08-13  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/121113
+ 	* config/riscv/sifive-p400.md: Handle HFmode for fdiv/fsqrt.
+ 	* config/riscv/sifive-p600.md: Likewise.
+ 	* config/riscv/xiangshan.md: Likewise.
+ 
+ 2025-08-13  H.J. Lu  <hjl.tools@gmail.com>
+ 	    Liu, Hongtao  <hongtao.liu@intel.com>
+ 
+ 	PR target/121497
+ 	* config/i386/i386-features.cc (ix86_broadcast_inner): Convert
+ 	integer constant to mode of move
+ 
+ 2025-08-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*merge_vx_<mode>): Add new
+ 	pattern to combine the vmerge.vxm.
+ 
+ 2025-08-12  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/121334
+ 	* config/riscv/riscv-v.cc (expand_slide1up): New function.
+ 	(expand_vector_init_trailing_same_elem): Use new function.
+ 	(expand_const_vector_onestep): New function.
+ 	(expand_const_vector): Uew expand_slide1up.
+ 	(expand_vector_init_merge_repeating_sequence): Ditto.
+ 	(shuffle_off_by_one_patterns): Ditto.
+ 
+ 2025-08-12  mengqinggang  <mengqinggang@loongson.cn>
+ 
+ 	* config/loongarch/loongarch-def.h (ABI_BASE_LP64D): New macro.
+ 	(ABI_BASE_LP64F): New macro.
+ 	(ABI_BASE_LP64S): New macro.
+ 	(N_ABI_BASE_TYPES): New macro.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Change
+ 	slp_done_for_suggested_uf to a boolean
+ 	single_lane_slp_done_for_suggested_uf.  Change slp
+ 	to force_single_lane boolean.
+ 	(vect_analyze_loop_1): Adjust similarly.
+ 
+ 2025-08-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/121253
+ 	* fwprop.cc (forward_propagate_into): Don't propagate asm defs.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121509
+ 	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized):
+ 	Fail early when we detect a relevant but not handled PHI.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121514
+ 	* tree-ssa-sccvn.cc (visit_nary_op): Only call
+ 	vn_nary_op_insert_stmt for SSA name result.
+ 
+ 2025-08-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121494
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Mark the bb of the use
+ 	stmt if needed for eh cleanup.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Only set
+ 	STMT_VINFO_VECTYPE for dataref SLP representatives.
+ 	Clear it for others and do not restore the original value.
+ 	(vect_transform_stmt): Likewise.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (get_initial_defs_for_reduction):
+ 	Get vector type as argument.
+ 	(vect_find_reusable_accumulator): Likewise.
+ 	(vect_transform_cycle_phi): Adjust.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Replace
+ 	STMT_VINFO_VECTYPE use with SLP_TREE_VECTYPE.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121493
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Opportunistically
+ 	strip components with known offset.
+ 
+ 2025-08-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): When we fail to
+ 	match up the two base MEM_REFs, fail.
+ 
+ 2025-08-12  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 	    Jeff Law   <jlaw@ventanamicro.com>
+ 	    Philipp Tomsich  <philipp.tomsich@vrull.eu>
+ 
+ 	* config/riscv/riscv-protos.h (synthesize_add): Add prototype.
+ 	* config/riscv/riscv.cc (synthesize_add): New function.
+ 	* config/riscv/riscv.md (addsi3): Allow any constant as operands[2]
+ 	in the expander.  Force the constant into a register as needed for
+ 	TARGET_64BIT.  Use synthesize_add for !TARGET_64BIT.
+ 	(*adddi3): Renamed from adddi3.
+ 	(adddi3): New expander.  Use synthesize_add.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.md (mov<ALLI>cc): Accept MODE_CC
+ 	conditions directly; reject QI/HImode conditions.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	PR target/121388
+ 	* config/aarch64/aarch64.cc (aarch64_cb_rhs): Restrict the
+ 	range of LT/GE and GT/LE to their intersections.
+ 	* config/aarch64/aarch64.md (*aarch64_cb<INT_CMP><GPI>): Unexport.
+ 	Use cmpbr_imm_predicate instead of aarch64_cb_rhs.
+ 	* config/aarch64/constraints.md (Uc1): Accept 0..62.
+ 	(Uc2): Remove.
+ 	* config/aarch64/iterators.md (cmpbr_imm_predicate): New.
+ 	(cmpbr_imm_constraint): Update to match aarch64_cb_rhs.
+ 	* config/aarch64/predicates.md (aarch64_cb_reg_i63_operand): New.
+ 	(aarch64_cb_reg_i62_operand): New.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs):
+ 	Use aarch64_cb_rhs to match CB insns.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	PR target/121385
+ 	* config/aarch64/aarch64.md (*aarch64_tbz<LTGE><ALLI>1): Remove
+ 	cc clobber and expansion via TST+Bcond.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.h (TARGET_CMPBR): False when
+ 	aarch64_track_speculation is true.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_gen_compare_split_imm24): New.
+ 	* config/aarch64/aarch64-protos.h: Update.
+ 	* config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>): Use it.
+ 	Add match_scratch and cc clobbers.  Use match_operator instead of
+ 	iterator expansion.
+ 	(*compare_cstore<GPI>_insn): Likewise.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/predicates.md (aarch64_split_imm24): Rename from
+ 	aarch64_imm24; exclude aarch64_move_imm and aarch64_uimm12_shift.
+ 	* config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>):
+ 	Update for aarch64_split_imm24.
+ 	(*compare_cstore<GPI>_insn): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Likewise.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.md (tbranch_<EQL><SHORT>3): Remove.
+ 	(save_stack_nonlocal): Use aarch64_gen_compare_zero_and_branch.
+ 	(restore_stack_nonlocal): Likewise.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_gen_compare_zero_and_branch): Export.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_gen_compare_zero_and_branch): Declare it.
+ 	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Use it.
+ 	* config/aarch64/aarch64.md (*aarch64_cbz<EQL><GPI>): Unexport.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_if_the_else_costs): Reorg to
+ 	include the cost of inner within TBZ sign-bit test, only match
+ 	CBZ/CBNZ with valid modes, and both for the aarch64_imm24 test.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Remove
+ 	else after return and re-indent.
+ 
+ 2025-08-11  Richard Henderson  <richard.henderson@linaro.org>
+ 
+ 	* config/aarch64/aarch64.md (BRANCH_LEN_N_1KiB): Rename
+ 	from BRANCH_LEN_N_1Kib.
+ 
+ 2025-08-11  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Recognize stores
+ 	of integer_zerop as memset of 0.
+ 
+ 2025-08-11  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* doc/sourcebuild.texi: Add riscv_b_ok and riscv_v_ok target selectors.
+ 
+ 2025-08-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121488
+ 	* tree-ssa-sccvn.cc (visit_nary_op): If the BIT_FIELD_REF
+ 	result is of wrong type, try a VIEW_CONVERT_EXPR around it.
+ 
+ 2025-08-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121362
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Swap index
+ 	guards on component stripping loops.
+ 
+ 2025-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* tree-ssa-math-opts.cc (match_saturation_mul): Add new func
+ 	to emit IFN_SAT_MUL if matched.
+ 	(math_opts_dom_walker::after_dom_children): Try to match
+ 	the phi node for SAT_MUL.
+ 
+ 2025-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 2 for unsigned SAT_MUL.
+ 
+ 2025-08-11  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Remove.
+ 	(riscv_rtx_costs): Refactor to serach vec_duplicate on the
+ 	sub rtx.
+ 
+ 2025-08-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/121464
+ 	* config/arm/arm.md (arm_<mrrc>, arm_<mcrr>): Fix operand check.
+ 
+ 2025-08-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/121306
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Distribute
+ 	non-narrowing integer-to-integer subregs through logic ops,
+ 	in a similar way to the existing word_mode handling.
+ 
+ 2025-08-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-cfg.cc (find_case_label_for_value): Fix comment typo,
+ 	singe-valued -> single-valued.
+ 	* config/arc/arc.md: Fix comment typos, unsinged -> unsigned.
+ 
+ 2025-08-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+ 
+ 	* config/mips/mips.h (FRAME_GROWS_DOWNWARD) Allow the frame to
+ 	grow downwards for mips16 when -mgrow-frame-downwards is set.
+ 	* config/mips/mips.opt: Add -mgrow-frame-downwards option.
+ 
+ 2025-08-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/121438
+ 	PR middle-end/121444
+ 	* output.h (MAX_ALIGN_MERGABLE): Rename to ...
+ 	(MAX_MERGEABLE_BITSIZE): This.
+ 	* tree-switch-conversion.cc (switch_conversion::build_one_array): Don't
+ 	increase the alignment.
+ 	* varasm.cc (mergeable_string_section): Use MAX_MERGEABLE_BITSIZE
+ 	instead of MAX_ALIGN_MERGABLE. Also replace `/ 8` with `/ BITS_PER_UNIT`.
+ 	(mergeable_constant_section): Select the mergeable section based on
+ 	the bitsize rather than the alignment. Make sure the align is less
+ 	than the entity size.
+ 
+ 2025-08-10  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/121394
+ 	* varasm.cc (assemble_variable_contents): Pad out
+ 	mergeable sections if needed.
+ 	(output_constant_pool_1): Change the padding to be explicit
+ 	zeroing for mergeable sections.
+ 
+ 2025-08-10  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* configure: Regenerated.
+ 
+ 2025-08-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_encode_section_info): Do not
+ 	make anchored symbols linker-visible.
+ 	(darwin_use_anchors_for_symbol_p): Disallow anchoring on
+ 	symbols that must be linker-visible (or external), even
+ 	if the definitions are in this TU.
+ 
+ 2025-08-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): New
+ 	entry for LANCHOR.
+ 
+ 2025-08-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.cc (context::dump): Bulletproof against
+ 	m_reference_printer being null.
+ 	* diagnostics/dumping.cc (emit_field<const char *>): Replace
+ 	with...
+ 	(emit_string_field): ...this.
+ 	(emit_field<char *>): Eliminate.
+ 	(emit_field<bool>): Replace with...
+ 	(emit_bool_field): ...this.
+ 	(emit_field<size_t>): Replace with...
+ 	(emit_size_t_field): ...this, and use HOST_SIZE_T_PRINT_DEC rather
+ 	than %zi in fprintf call.
+ 	(emit_field<int>): Replace with...
+ 	(emit_int_field): ...this.
+ 	(emit_field<unsigned>): Replace with...
+ 	(emit_unsigned_field): ...this.
+ 	* diagnostics/dumping.h (emit_field): Replace this template decl
+ 	with...
+ 	(emit_string_field): ...this,
+ 	(emit_bool_field): ...this,
+ 	(emit_size_t_field): ...this,
+ 	(emit_int_field): ...this,
+ 	(emit_unsigned_field): ... and this.
+ 	(DIAGNOSTICS_DUMPING_EMIT_FIELD): Rename to...
+ 	(DIAGNOSTICS_DUMPING_EMIT_BOOL_FIELD): ...this and update for
+ 	above change.
+ 	* diagnostics/file-cache.cc (file_cache_slot::dump): Replace
+ 	emit_field calls with calls that explicitly state the type.  Fix
+ 	type of dump of m_missing_trailing_newline to use bool.
+ 	(file_cache_slot::dump): Use HOST_SIZE_T_PRINT_DEC rather than
+ 	%zi in fprintf call.
+ 	* diagnostics/html-sink.cc (html_generation_options::dump): Update
+ 	for macro renaming.
+ 	* diagnostics/sarif-sink.cc
+ 	(sarif_serialization_format_json::dump): Likewise.
+ 	(sarif_generation_options::dump): Likewise, and for function
+ 	renaming.
+ 	* diagnostics/text-sink.cc (text_sink::dump): Update for macro
+ 	renaming.
+ 	* libgdiagnostics.cc (diagnostic_manager_debug_dump_file): Use
+ 	HOST_SIZE_T_PRINT_DEC rather than %zi in fprintf call.
+ 	* pretty-print.cc: Include "diagnostics/dumping.h".
+ 	(pp_formatted_chunks::dump): Use it.
+ 	(get_url_format_as_string): New.
+ 	(pretty_printer::dump): Use diagnostics::dumping.  Bulletproof
+ 	against m_buffer being null.
+ 
+ 2025-08-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/constraints.md (T):
+ 	Change define_memory_constraint to define_special_memory_constraint.
+ 
+ 2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120599
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Don't try to copy
+ 	from statements that throw.
+ 
+ 2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/118946
+ 	PR tree-optimization/121422
+ 	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Remove.
+ 	(optimize_aggr_zeroprop_1): New function.
+ 	(optimize_aggr_zeroprop): New function.
+ 	(simplify_builtin_call): Don't call optimize_memcpy_to_memset
+ 	for memcpy but call optimize_aggr_zeroprop for memset.
+ 	(pass_forwprop::execute): Don't call optimize_memcpy_to_memset
+ 	for aggregate copies but rather call optimize_aggr_zeroprop
+ 	for aggregate stores.
+ 
+ 2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Change into a
+ 	forward looking (looking at vdef's uses) instead of a back
+ 	looking (vuse's def).
+ 
+ 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/116253
+ 	* common.opt (fdiagnostics-show-nesting): New option.
+ 	(fdiagnostics-show-nesting-locations): New option.
+ 	(fdiagnostics-show-nesting-levels): New option.
+ 	* common.opt.urls: Regenerate.
+ 	* diagnostics/context.cc (context::set_show_nesting): New.
+ 	(context::set_show_nesting_locations): New.
+ 	(context::set_show_nesting_levels): New.
+ 	* diagnostics/context.h (context::set_show_nesting): New decl.
+ 	(context::set_show_nesting_locations): New decl.
+ 	(context::set_show_nesting_levels): New decl.
+ 	* diagnostics/html-sink.cc: Tweak comment.
+ 	* diagnostics/output-spec.cc (text_scheme_handler::make_sink):
+ 	Rename "experimental-nesting" to "show-nesting" and enable by
+ 	default.  Rename "experimental-nesting-show-locations" to
+ 	"show-nesting-locations".  Rename
+ 	"experimental-nesting-show-levels" to "show-nesting-levels".
+ 	* diagnostics/sink.h (sink::dyn_cast_text_sink): New.
+ 	* diagnostics/text-sink.h (text_sink::dyn_cast_text_sink): New.
+ 	* doc/invoke.texi: Add -fdiagnostics-show-nesting,
+ 	-fdiagnostics-show-nesting-locations, and
+ 	-fdiagnostics-show-nesting-levels.  Update for changes to
+ 	output-spec.cc above.
+ 	* lto-wrapper.cc (merge_and_complain): Ignore
+ 	OPT_fdiagnostics_show_nesting,
+ 	OPT_fdiagnostics_show_nesting_locations, and
+ 	OPT_fdiagnostics_show_nesting_levels.
+ 	(append_compiler_options): Likewise.
+ 	(append_diag_options): Likewise.
+ 	* opts-common.cc (decode_cmdline_options_to_array): Add
+ 	"-fno-diagnostics-show-nesting" to -fdiagnostics-plain-output.
+ 	* opts.cc (common_handle_option): Handle the new options.
+ 	(gen_command_line_string): Ignore the new options.
+ 	* toplev.cc (general_init): Call set_show_nesting,
+ 	set_show_nesting_locations, and set_show_nesting_levels on
+ 	global_dc.
+ 
+ 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostics/dumping.o.
+ 	* diagnostics/buffering.cc: Include "diagnostics/dumping.h".
+ 	(buffer::dump): Reimplement using diagnostics::dumping.
+ 	* diagnostics/context.cc: Include "diagnostics/dumping.h".
+ 	(context::dump): Reimplement using diagnostics::dumping.
+ 	Use sink::dump_kind when listing the sinks.
+ 	(sink::dump): Reimplement using diagnostics::dumping.
+ 	(counters::dump): Likewise.
+ 	* diagnostics/dumping.cc: New file.
+ 	* diagnostics/dumping.h: New file.
+ 	* diagnostics/file-cache.cc: Include "diagnostics/dumping.h".
+ 	(file_cache::dump): Reimplement using diagnostics::dumping.
+ 	(file_cache_slot::dump): Likewise.
+ 	* diagnostics/html-sink.cc: Include "diagnostics/dumping.h".
+ 	(html_generation_options::dump): New.
+ 	(html_sink_buffer::dump): Reimplement using diagnostics::dumping.
+ 	(html_builder::dump): New.
+ 	(html_sink::dump): Reimplement using diagnostics::dumping.
+ 	Add dump of the html_builder.
+ 	(html_file_sink::dump): Replace with...
+ 	(html_file_sink::dump_kind): ...this.
+ 	(html_buffered_sink::dump_kind): New.
+ 	* diagnostics/html-sink.h (html_generation_options::dump): New
+ 	decl.
+ 	* diagnostics/sarif-sink.cc: Include "diagnostics/dumping.h".
+ 	(sarif_serialization_format_json::dump): New.
+ 	(sarif_builder::dump): New.
+ 	(sarif_sink_buffer::dump): Reimplement using diagnostics::dumping.
+ 	(sarif_sink::dump): Likewise.  Add dump of the sarif_builder.
+ 	(sarif_stream_sink::dump_kind): New.
+ 	(sarif_file_sink::dump): Replace with...
+ 	(sarif_file_sink::dump_kind): ...this.
+ 	(get_dump_string_for_sarif_version): New.
+ 	(sarif_generation_options::dump): New.
+ 	(class buffered_sink): Rename to...
+ 	(class sarif_buffered_sink): ...this.
+ 	(sarif_buffered_sink::dump_kind): New.
+ 	* diagnostics/sarif-sink.h (sarif_serialization_format::dump):
+ 	New.
+ 	(sarif_serialization_format_json::dump): New decl.
+ 	(sarif_generation_options::dump): New decl.
+ 	* diagnostics/sink.h (sink::dump_kind): New.
+ 	* diagnostics/text-sink.cc: Include "diagnostics/dumping.h".
+ 	(text_sink_buffer::dump): Reimplement using diagnostics::dumping.
+ 	(text_sink::dump): Likewise.  Emit fields m_show_nesting,
+ 	m_show_locations_in_nesting, and m_show_nesting_levels.
+ 	* diagnostics/text-sink.h (text_sink::dump_kind): New.
+ 
+ 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostics::get_cwe_url): Move decl to
+ 	diagnostics/metadata.h.
+ 	(diagnostics::maybe_line_and_column): Move into
+ 	diagnostics::text_sink.
+ 	* diagnostics/context.cc: Update for maybe_line_and_column
+ 	becoming a static member of text_sink.
+ 	* diagnostics/metadata.h (diagnostics::get_cwe_url): Move decl
+ 	here from diagnostic.h.
+ 	* diagnostics/text-sink.cc (maybe_line_and_column): Convert to...
+ 	(text_sink::maybe_line_and_column): ...this.
+ 	* diagnostics/text-sink.h (text_sink::maybe_line_and_column): Move
+ 	here from diagnostic.h.
+ 
+ 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.cc (context::get_any_inlining_info): Convert
+ 	"context" arg of m_set_locations_cb from ptr to const &.
+ 	(context::report_diagnostic): Convert "context" arg of
+ 	m_adjust_diagnostic_info from ptr to const &.
+ 	* diagnostics/context.h (context::set_locations_callback_t):
+ 	Likewise.
+ 	(context::set_adjust_diagnostic_info_callback): Likewise.
+ 	(context::m_adjust_diagnostic_info): Likewise.
+ 	* tree-diagnostic.cc (set_inlining_locations): Likewise.
+ 
+ 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/column-options.h: New file, adding struct
+ 	diagnostics::column_options, taken from fields in
+ 	diagnostics::context and diagnostics::column_policy.
+ 	* diagnostics/context.cc (context::initialize): Update for moving
+ 	fields of diagnostics::context into diagnostics::column_options.
+ 	(column_policy::column_policy): Likewise.
+ 	(column_policy::converted_column): Move implementation to...
+ 	(column_options::convert_column): ...this new function.
+ 	(context::report_diagnostic): Update for moving fields of
+ 	diagnostics::context into diagnostics::column_options.
+ 	(assert_location_text): Likewise.
+ 	* diagnostics/context.h: Include "diagnostics/column-options.h".
+ 	(class column_policy): Replace fields m_column_unit,
+ 	m_column_origin, and m_tabstop with m_column_options.
+ 	(context::get_column_options): New accessors.
+ 	(context::m_column_unit): Move to struct column_options and
+ 	replace with m_column_options.
+ 	(context::m_column_origin): Likewise.
+ 	(context::m_tabstop): Likewise.
+ 	* diagnostics/sarif-sink.cc (sarif_builder::sarif_builder): Update
+ 	for moving fields of diagnostics::context into
+ 	diagnostics::column_options.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* opts.cc (common_handle_option): Likewise.
+ 
+ 2025-08-08  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	PR target/120977
+ 	* config/arm/arm.md (call): Move unspec parameter to parallel.
+ 	(nonsecure_call_internal): Likewise.
+ 	(call_value): Likewise.
+ 	(nonsecure_call_value_internal): Likewise.
+ 	* config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Likewise.
+ 	(nonsecure_call_value_reg_thumb1_v5): Likewise.
+ 	* config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt):
+ 	Likewise.
+ 	(nonsecure_call_reg_thumb2): Likewise.
+ 	(nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
+ 	(nonsecure_call_value_reg_thumb2): Likewise.
+ 	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
+ 	Likewise.
+ 
+ 2025-08-08  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	PR target/121449
+ 	* config/aarch64/aarch64-sve.md
+ 	(mask_gather_load<mode><v_int_container>): Use vg<Vesize>
+ 	constraints for alternatives with immediate offset.
+ 	(mask_scatter_store<mode><v_int_container>): Likewise.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/tm.texi.in: Add Vectorization and OpenMP and OpenACC
+ 	sub-sections to the list of target macros and functions.
+ 	* doc/tm.texi: Re-generate.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_determine_vectype_for_stmt_1): Remove.
+ 	(vect_determine_vectype_for_stmt): Likewise.
+ 	(vect_set_stmts_vectype): Likewise.
+ 	(vect_analyze_loop_2): Do not call vect_set_stmts_vectype.
+ 	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Detect
+ 	irregular stmts early here.
+ 
+ 2025-08-08  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/120986
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::expand): Relax fpm_t assert to allow
+ 	modeless const_ints.
+ 
+ 2025-08-08  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/120986
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_dot<mode>):
+ 	Switch mode iterator from SVE_FULL_HSF to new iterator;
+ 	remove insn predicate as this is now taken care of by conditions
+ 	in the mode iterator.
+ 	(@aarch64_sve_dot_lane<mode>): Likewise.
+ 	* config/aarch64/iterators.md (SVE_FULL_HSF_FP8_FDOT): New.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121454
+ 	* tree-ssa-sccvn.cc (visit_nary_op): Avoid unexpected
+ 	BIT_FIELD_REFs.
+ 
+ 2025-08-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121389
+ 	* tree-tailcall.cc (find_tail_calls): For finally_tmp.N
+ 	handle not just GIMPLE_CONDs with EQ_EXPR/NE_EXPR and only
+ 	values 0 and 1, but arbitrary non-negative values, arbitrary
+ 	comparisons in conditions and also GIMPLE_SWITCH next to
+ 	GIMPLE_CONDs.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get
+ 	the SLP node rather than the stmt_info.
+ 	(vectorizable_lane_reducing): Adjust, pass SLP node to costing.
+ 	(vect_transform_reduction): Adjust.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_model_promotion_demotion_cost): Pass
+ 	in SLP node and drop unused dr argument.  Use SLP node for
+ 	costing, drop costing of constant/external operands.
+ 	(vectorizable_conversion): Adjust.
+ 
+ 2025-08-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Apply SLP_TREE_VECTYPE
+ 	to slp_node rather than stmt_info.
+ 
+ 2025-08-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121414
+ 	* config/aarch64/aarch64.cc (aarch64_is_variant_pcs): New function,
+ 	split out from...
+ 	(aarch64_asm_output_variant_pcs): ...here.  Handle various types
+ 	of SME function type.
+ 
+ 2025-08-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120718
+ 	* simplify-rtx.cc (simplify_context::simplify_gen_subreg):
+ 	Remove MODE_COMPOSITE_P condition.
+ 
+ 2025-08-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121405
+ 	* tree-ssa-sccvn.cc (visit_nary_op): Handle BIT_FIELD_REF
+ 	with reference def by looking up a combination of both.
+ 
+ 2025-08-07  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
+ 	Allow DR target alignment to be a poly_int.
+ 	(vect_enhance_data_refs_alignment): Support peeling and
+ 	versioning for VLA modes.
+ 	* tree-vect-loop-manip.cc (get_misalign_in_elems): Remove
+ 	power-of-two rounding in peeling.
+ 	(vect_create_cond_for_align_checks): Update alignment check
+ 	logic for poly_int mask.
+ 	(vect_create_cond_for_vla_spec_read): New runtime checks.
+ 	(vect_loop_versioning): Support new runtime checks.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Add a new
+ 	loop_vinfo field.
+ 	(vectorizable_induction): Fix wrong IV offset issue.
+ 	* tree-vect-stmts.cc (get_load_store_type): Refactor
+ 	vectorizable checks for speculative loads.
+ 	* tree-vectorizer.h (LOOP_VINFO_MAX_SPEC_READ_AMOUNT): New
+ 	macro for new runtime checks.
+ 	(LOOP_REQUIRES_VERSIONING_FOR_SPEC_READ): Likewise
+ 	(LOOP_REQUIRES_VERSIONING): Update macro for new runtime checks.
+ 
+ 2025-08-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR preprocessor/120778
+ 	* doc/invoke.texi (Wkeyword-macro): Document.
+ 
+ 2025-08-07  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (print_operand): Allow arbitrary wide_int
+ 	constants for _BitInt.
+ 	(s390_bitint_type_info): Implement target hook
+ 	TARGET_C_BITINT_TYPE_INFO.
+ 
+ 2025-08-06  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/96226
+ 	* config/i386/predicates.md (and_operator): New operator.
+ 	* config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask):
+ 	Use and_operator to match AND RTX and use its mode
+ 	in the split pattern.
+ 
+ 2025-08-06  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Prerequisites): Replace bzip2 by xz.
+ 
+ 2025-08-06  Yangyu Chen  <cyy@cyyself.name>
+ 
+ 	* config/i386/i386.h (PTA_BDVER1):
+ 	Add missing PTA_POPCNT and PTA_LZCNT with PTA_ABM.
+ 	(PTA_ZNVER1): Ditto.
+ 	(PTA_BTVER1): Ditto.
+ 	(PTA_LUJIAZUI): Ditto.
+ 	(PTA_YONGFENG): Do not include extra PTA_LZCNT.
+ 
+ 2025-08-06  Sam James  <sam@gentoo.org>
+ 
+ 	PR libstdc++/29286
+ 	* Makefile.in (ALIASING_FLAGS): Drop.
+ 	* configure: Regenerate.
+ 	* configure.ac: Drop -fno-strict-aliasing workaround for < GCC 4.3.
+ 
+ 2025-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
+ 	Prune dead code.
+ 
+ 2025-08-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/121231
+ 	PR c++/119688
+ 	PR c++/94511
+ 	* common.opt: Document additional ABI version 21 change.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2025-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_tree::gs_scale): New.
+ 	(_slp_tree::gs_base): Likewise.
+ 	(SLP_TREE_GS_SCALE): Likewise.
+ 	(SLP_TREE_GS_BASE): Likewise.
+ 	(vect_describe_gather_scatter_call): Declare.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
+ 	new members.
+ 	(vect_build_slp_tree_2): Record gather/scatter base and scale.
+ 	(vect_get_and_check_slp_defs): For gather/scatter IFNs
+ 	describe the call to first_gs_info.
+ 	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Add
+ 	mode of operation with fixed offset vector type.
+ 	(vect_describe_gather_scatter_call): Export.
+ 	* tree-vect-stmts.cc (get_load_store_type): Do not call
+ 	vect_check_gather_scatter to fill gs_info, instead populate
+ 	from the SLP tree.  Check which of, IFN, decl or fallback
+ 	is supported and record that decision.
+ 
+ 2025-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Build proper
+ 	alias + align pointer value for gather/scatter and SLP
+ 	and use it.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-08-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Remove redundant gather/scatter target support check, instead
+ 	check the recorded ifns.  Also allow legacy gather/scatter
+ 	with loop masking.
+ 
+ 2025-08-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121413
+ 	* gimple-lower-bitint.cc (gimple_lower_bitint): Fix up last
+ 	commit, cast limb_prec to unsigned before comparison.
+ 
+ 2025-08-06  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* match.pd: Preserve conversion to _BitInt before a VCE
+ 	if the _BitInt is extended.
+ 
+ 2025-08-06  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
+ 	Zero-extend the partial limb of any unsigned _BitInt LHS assigned
+ 	with a widening sign-extension.
+ 
+ 2025-08-06  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* gimple-lower-bitint.cc (bitint_large_huge::limb_access):
+ 	Add a parameter abi_load_p.  If set, load a limb directly
+ 	in its actual precision without casting from m_limb_type.
+ 	(struct bitint_large_huge): Same.
+ 	(bitint_large_huge::handle_load): Use.
+ 
+ 2025-08-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121413
+ 	* gimple-lower-bitint.cc (abi_limb_prec): New variable
+ 	(bitint_precision_kind): Initialize it.
+ 	(gimple_lower_bitint): Clear it at the start.  For
+ 	min_prec > limb_prec descreased precision vars for
+ 	INTEGER_CST PHI arguments ensure min_prec is either
+ 	prec or multiple of abi_limb_prec.
+ 
+ 2025-08-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121127
+ 	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): For
+ 	uninitialized SSA_NAME, set *prec_stored to 0 rather than *prec.
+ 	Handle that case in narrowing casts.  If prec_stored is non-NULL,
+ 	set *prec_stored to prec_stored_val.
+ 
+ 2025-08-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/121386
+ 	* Makefile.in (gengtype-lex.cc): Append #define FLEX_SCANNER,
+ 	#include "system.h" and #undef FLEX_SCANNER to the prepended lines.
+ 	* gengtype-lex.l: Remove inclusion of config.h or bconfig.h, system.h
+ 	and definition of malloc/realloc from %{} section.
+ 
+ 2025-08-06  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/arch-canonicalize: Read extension data from
+ 	riscv-ext*.def and adding unittest.
+ 
+ 2025-08-06  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_expand_arch):
+ 	Ignore `unset`.
+ 	* config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Handle
+ 	`-march=unset`.
+ 	(ARCH_UNSET_CLEANUP_SPECS): New.
+ 	(DRIVER_SELF_SPECS): Handle -march=unset.
+ 	* doc/invoke.texi (RISC-V Options): Update documentation for
+ 	`-march=unset`.
+ 
+ 2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 
+ 	* gimplify.cc (remove_unused_omp_iterator_vars): Display unused
+ 	variable warning for 'to' and 'from' clauses.
+ 	(gimplify_scan_omp_clauses): Add argument for iterator loop sequence.
+ 	Gimplify the clause decl and size into the iterator loop if iterators
+ 	are used.
+ 	(gimplify_omp_workshare): Add argument for iterator loops sequence
+ 	in call to gimplify_scan_omp_clauses.
+ 	(gimplify_omp_target_update): Call remove_unused_omp_iterator_vars and
+ 	build_omp_iterators_loops.  Add loop sequence as argument when calling
+ 	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses and building
+ 	the Gimple statement.
+ 	* tree-pretty-print.cc (dump_omp_clause): Call dump_omp_iterators
+ 	for to/from clauses with iterators.
+ 	* tree.cc (omp_clause_num_ops): Add extra operand for OMP_CLAUSE_FROM
+ 	and OMP_CLAUSE_TO.
+ 	* tree.h (OMP_CLAUSE_HAS_ITERATORS): Add check for OMP_CLAUSE_TO and
+ 	OMP_CLAUSE_FROM.
+ 	(OMP_CLAUSE_ITERATORS): Likewise.
+ 
+ 2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 	    Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* gimple-pretty-print.cc (dump_gimple_omp_target): Print expanded
+ 	iterator loops.
+ 	* gimple.cc (gimple_build_omp_target): Add argument for iterator
+ 	loops sequence.  Initialize iterator loops field.
+ 	* gimple.def (GIMPLE_OMP_TARGET): Set GSS symbol to GSS_OMP_TARGET.
+ 	* gimple.h (gomp_target): Set GSS symbol to GSS_OMP_TARGET.  Add extra
+ 	field for iterator loops.
+ 	(gimple_build_omp_target): Add argument for iterator loops sequence.
+ 	(gimple_omp_target_iterator_loops): New.
+ 	(gimple_omp_target_iterator_loops_ptr): New.
+ 	(gimple_omp_target_set_iterator_loops): New.
+ 	* gimplify.cc (find_var_decl): New.
+ 	(copy_omp_iterator): New.
+ 	(remap_omp_iterator_var_1): New.
+ 	(remap_omp_iterator_var): New.
+ 	(remove_unused_omp_iterator_vars): New.
+ 	(struct iterator_loop_info_t): New type.
+ 	(iterator_loop_info_map_t): New type.
+ 	(build_omp_iterators_loops): New.
+ 	(enter_omp_iterator_loop_context_1): New.
+ 	(enter_omp_iterator_loop_context): New.
+ 	(enter_omp_iterator_loop_context): New.
+ 	(exit_omp_iterator_loop_context): New.
+ 	(gimplify_adjust_omp_clauses): Add argument for iterator loop
+ 	sequence.  Gimplify the clause decl and size into the iterator
+ 	loop if iterators are used.
+ 	(gimplify_omp_workshare): Call remove_unused_omp_iterator_vars and
+ 	build_omp_iterators_loops for OpenMP target expressions.  Add
+ 	loop sequence as argument when calling gimplify_adjust_omp_clauses
+ 	and building the Gimple statement.
+ 	* gimplify.h (enter_omp_iterator_loop_context): New prototype.
+ 	(exit_omp_iterator_loop_context): New prototype.
+ 	* gsstruct.def (GSS_OMP_TARGET): New.
+ 	* omp-low.cc (lower_omp_map_iterator_expr): New.
+ 	(lower_omp_map_iterator_size): New.
+ 	(finish_omp_map_iterators): New.
+ 	(lower_omp_target): Add sorry if iterators used with deep mapping.
+ 	Call lower_omp_map_iterator_expr before assigning to sender ref.
+ 	Call lower_omp_map_iterator_size before setting the size.  Insert
+ 	iterator loop sequence before the statements for the target clause.
+ 	* tree-nested.cc (convert_nonlocal_reference_stmt): Walk the iterator
+ 	loop sequence of OpenMP target statements.
+ 	(convert_local_reference_stmt): Likewise.
+ 	(convert_tramp_reference_stmt): Likewise.
+ 	* tree-pretty-print.cc (dump_omp_iterators): Dump extra iterator
+ 	information if present.
+ 	(dump_omp_clause): Call dump_omp_iterators for iterators in map
+ 	clauses.
+ 	* tree.cc (omp_clause_num_ops): Add operand for OMP_CLAUSE_MAP.
+ 	(walk_tree_1): Do not walk last operand of OMP_CLAUSE_MAP.
+ 	* tree.h (OMP_CLAUSE_HAS_ITERATORS): New.
+ 	(OMP_CLAUSE_ITERATORS): New.
+ 
+ 2025-08-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121410
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
+ 	STORE_MAX_PIECES to get the widest vector mode in vector loop
+ 	for memset.
+ 
+ 2025-08-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_rtx_costs_1) [SIGN_EXTEND]: Adjust cost.
+ 	* config/avr/avr.md (*sext.ashift<QIPSI:mode><HISI:mode>2): New
+ 	insn and a cc split.
+ 
+ 2025-08-05  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121306
+ 	* config/i386/predicates.md (extract_operator): Replace with...
+ 	(extract_high_operator): ...this new predicate.
+ 	* config/i386/i386.md (*cmpqi_ext<mode>_1, *cmpqi_ext<mode>_2)
+ 	(*cmpqi_ext<mode>_3, *cmpqi_ext<mode>_4, *movstrictqi_ext<mode>_1)
+ 	(*extzv<mode>, *insvqi_2, *extendqi<SWI24:mode>_ext_1)
+ 	(*addqi_ext<mode>_1_slp, *addqi_ext<mode>_1_slp, *addqi_ext<mode>_0)
+ 	(*addqi_ext2<mode>_0, *addqi_ext<mode>_1, *<insn>qi_ext<mode>_2)
+ 	(*subqi_ext<mode>_1_slp, *subqi_ext<mode>_2_slp, *subqi_ext<mode>_0)
+ 	(*subqi_ext2<mode>_0, *subqi_ext<mode>_1, *testqi_ext<mode>_1)
+ 	(*testqi_ext<mode>_2, *<code>qi_ext<mode>_1_slp)
+ 	(*<code>qi_ext<mode>_2_slp. *<code>qi_ext<mode>_0)
+ 	(*<code>qi_ext2<mode>_0, *<code>qi_ext<mode>_1)
+ 	(*<code>qi_ext<mode>_1_cc, *<code>qi_ext<mode>_1_cc)
+ 	(*<code>qi_ext<mode>_2, *<code>qi_ext<mode>_3, *negqi_ext<mode>_1)
+ 	(*one_cmplqi_ext<mode>_1, *ashlqi_ext<mode>_1, *<insn>qi_ext<mode>_1)
+ 	(define_peephole2): Replace uses of extract_operator with
+ 	extract_high_operator, matching only the first operand.
+ 	Use zero_extract rather than match_op_dup when splitting.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_relevant::hybrid): Remove.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Do not call
+ 	vect_detect_hybrid_slp.
+ 	* tree-vect-slp.cc (maybe_push_to_hybrid_worklist): Remove.
+ 	(vect_detect_hybrid_slp): Likewise.
+ 
+ 2025-08-05  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/121359
+ 	* config/avr/avr.h: Remove -mlra and remains of reload.
+ 	* config/avr/avr.cc: Same.
+ 	* config/avr/avr.md: Same.
+ 	* config/avr/avr-log.cc: Same.
+ 	* config/avr/avr-protos.h: Same.
+ 	* config/avr/avr.opt: Same.
+ 	* config/avr/avr.opt.urls: Same.
+ 
+ 2025-08-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121306
+ 	* config/i386/i386.md (*one_cmplqi_ext<mode>_1): Updated to
+ 	support the new pattern.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121395
+ 	* tree-vectorizer.h (_loop_vec_info::alternate_defs): New member.
+ 	(LOOP_VINFO_ALTERNATE_DEFS): New.
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Populate it.
+ 	(vectorizable_simd_clone_call): Do not register a SLP def
+ 	when there is none.
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Allow a NULL
+ 	vectype when there's no LHS.  Allow all calls w/o LHS.
+ 	(vect_analyze_slp): Process LOOP_VINFO_ALTERNATE_DEFS as
+ 	SLP graph entries.
+ 	(vect_make_slp_decision): Handle a NULL SLP_TREE_VECTYPE.
+ 	(vect_slp_analyze_node_operations_1): Likewise.
+ 	(vect_schedule_slp_node): Likewise.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (enum slp_vect_type): Rename loop_vect
+ 	to not_vect, clarify docs.
+ 	(HYBRID_SLP_STMT): Remove.
+ 	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Adjust.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Likewise.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-data-refs.cc (vect_get_data_access_cost): Use
+ 	ncopies == 1.
+ 	* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Remove
+ 	hybrid/loop SLP skip.
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove pure SLP assert.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121382
+ 	* tree-ssa-loop-ivopts.cc (create_new_iv): Rewrite the IV
+ 	step to defined form.
+ 
+ 2025-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121370
+ 	* tree-scalar-evolution.cc (scev_dfs::add_to_evolution_1):
+ 	Avoid UB integer overflow in accumulating CHREC_RIGHT.
+ 
+ 2025-08-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* expr.cc (expand_expr_real_1): Do not call
+ 	reduce_to_bit_field_precision if the target assumes the _BitInt
+ 	results to be already extended.
+ 	(EXTEND_BITINT): Same.
+ 	* expr.h (bitint_extended): Declare the cache variable.
+ 	* function.cc (prepare_function_start): Initialize it.
+ 
+ 2025-08-05  Yang Yujie  <yangyujie@loongson.cn>
+ 
+ 	* explow.cc (promote_function_mode): Add a case for
+ 	small/medium _BitInts.
+ 	(promote_mode): Same.
+ 
+ 2025-08-05  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Configuration): Mark up atexit as code.
+ 
+ 2025-08-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_xmode_usmul): Take
+ 	umulhu for high bits mul result.
+ 
+ 2025-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
+ 
+ 	* defaults.h (MAX_FIXED_MODE_SIZE): Default to 2 * BITS_PER_WORD
+ 	for larger-than-32-bitters.
+ 	* doc/tm.texi.in (MAX_FIXED_MODE_SIZE): Adjust accordingly.  Tweak
+ 	wording.
+ 	* doc/tm.texi: Regenerate.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* dump-context.h: Convert "enum optinfo_item_kind" into
+ 	"enum class kind" within class optinfo_item.
+ 	* dumpfile.cc: Likewise.  Use "auto" in a few places.
+ 	Convert "enum optinfo_kind" to "enum class kind" within
+ 	class optinfo.
+ 	* opt-problem.cc: Likewise.
+ 	* optinfo-emit-json.cc: Likewise.
+ 	* optinfo.cc: Likewise.
+ 	* optinfo.h: Likewise.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/116253
+ 	* diagnostics/context.cc (context::set_nesting_level): New.
+ 	* diagnostics/context.h (context::set_nesting_level): New decl.
+ 	* doc/libgdiagnostics/topics/compatibility.rst
+ 	(LIBGDIAGNOSTICS_ABI_5): New.
+ 	* doc/libgdiagnostics/topics/physical-locations.rst
+ 	(diagnostic_manager_set_debug_physical_locations): New.
+ 	* libgdiagnostics++.h (manager::set_debug_physical_locations):
+ 	New.
+ 	* libgdiagnostics-private.h
+ 	(private_diagnostic_set_nesting_level): New decl.
+ 	* libgdiagnostics.cc (diagnostic_manager::diagnostic_manager):
+ 	Initialize m_debug_physical_locations.
+ 	(diagnostic_manager::new_location_from_file_and_line): Add debug
+ 	printing.
+ 	(diagnostic_manager::new_location_from_file_line_column):
+ 	Likewise.
+ 	(diagnostic_manager::new_location_from_range): Likewise.
+ 	(diagnostic_manager::set_debug_physical_locations): New.
+ 	(diagnostic_manager::ensure_linemap_for_file_and_line): Avoid
+ 	redundant calls to linemap_add.
+ 	(diagnostic_manager::new_location): Add debug printing.
+ 	(diagnostic_manager::m_debug_physical_locations): New field.
+ 	(diagnostic::diagnostic): Initialize m_nesting_level.
+ 	(diagnostic::get_nesting_level): New accessor.
+ 	(diagnostic::set_nesting_level): New.
+ 	(diagnostic::m_nesting_level): New field.
+ 	(diagnostic_manager::emit_va): Set and reset the nesting level
+ 	of the context from that of the diagnostic.
+ 	(diagnostic_manager_set_debug_physical_locations): New.
+ 	(private_diagnostic_set_nesting_level): New.
+ 	* libgdiagnostics.h
+ 	(diagnostic_manager_set_debug_physical_locations): New decl.
+ 	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_5): New.
+ 	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Support
+ 	the "nestingLevel" property.
+ 	* libsarifreplay.h (replay_options::m_debug_physical_locations):
+ 	New field.
+ 	* sarif-replay.cc: Add -fdebug-physical-locations.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/116792
+ 	* diagnostics/html-sink.cc
+ 	(html_builder::make_element_for_diagnostic): Don't add the
+ 	metadata element if it's empty.
+ 	(html_builder::make_element_for_metadata): Return null rather than
+ 	an empty element.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.h: Move struct counters to its own header
+ 	and include it.
+ 	* diagnostics/counters.h: New file, from the above.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.h: Split struct source_printing_options out
+ 	into "diagnostics/source-printing-options.h" and include it.
+ 	* diagnostics/source-printing-options.h: New file, from the above.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.cc: Update for renaming of option_manager to
+ 	option_id_manager and of context::m_option_mgr to
+ 	context::m_option_id_mgr.
+ 	* diagnostics/context.h: Likewise, moving class declaration to a
+ 	new diagnostics/option-id-manager.h.
+ 	* diagnostics/lazy-paths.cc: Likewise.
+ 	* diagnostics/option-id-manager.h: New file, from material in
+ 	diagnostics/context.h.
+ 	* lto-wrapper.cc: Update for renaming of option_manager to
+ 	option_id_manager.
+ 	* opts-common.cc: Likewise.
+ 	* opts-diagnostic.h: Likewise.
+ 	* opts.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/buffering.h: Update comment to refer to output sinks
+ 	rather than output formats.
+ 
+ 2025-08-04  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gimple-warn-recursion.cc (pass_warn_recursion::execute): Add
+ 	missing auto_diagnostic_group.
+ 
+ 2025-08-04  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/121303
+ 	* avoid-store-forwarding.cc (is_store_forwarding): Add check
+ 	for `off_val` in `is_store_forwarding`.
+ 
+ 2025-08-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): When analyzing a loop
+ 	and slp instance discovery fails, immediately fail the whole
+ 	process.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::expand): Assert that the return value
+ 	has an appropriate mode.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_convert_sve_data_to_pred): Remove the mode argument.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_sve_emit_int_cmp): Allow PRED_MODE to be VNx16BI or
+ 	the natural predicate mode for the data mode.
+ 	(aarch64_convert_sve_data_to_pred): Remove the mode argument
+ 	and instead always create a VNx16BI result.
+ 	(aarch64_expand_sve_const_pred): Update call accordingly.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdupq_impl::expand): Likewise, ensuring that the result
+ 	has mode VNx16BI.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_emit_sve_pred_vec_duplicate): Declare.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_emit_sve_pred_vec_duplicate): New function.
+ 	* config/aarch64/aarch64-sve.md (vec_duplicate<PRED_ALL:mode>): Use it.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svdup_impl::expand): Handle boolean values specially.  Check for
+ 	constants and fall back on aarch64_emit_sve_pred_vec_duplicate
+ 	for the variable case, ensuring that the result has mode VNx16BI.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/iterators.md (PNEXT_ONLY): New int iterator.
+ 	* config/aarch64/aarch64-sve.md
+ 	(@aarch64_sve_<sve_pred_op><mode>): Restrict SVE_PITER pattern
+ 	to VNx16BI_ONLY.
+ 	(@aarch64_sve_<sve_pred_op><mode>): New PNEXT_ONLY pattern for
+ 	PRED_HSD.
+ 	(*aarch64_sve_<sve_pred_op><mode>): Likewise.
+ 	(*aarch64_sve_<sve_pred_op><mode>_cc): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>):
+ 	Split SVE2_MATCH pattern into a VNx16QI_ONLY define_ins and a
+ 	VNx8HI_ONLY define_expand.  Use a VNx16BI destination for the latter.
+ 	(*aarch64_pred_<sve_int_op><mode>): New SVE2_MATCH pattern for
+ 	VNx8HI_ONLY.
+ 	(*aarch64_pred_<sve_int_op><mode>_cc): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_fac<cmp_op><mode>):
+ 	Replace with...
+ 	(@aarch64_pred_fac<cmp_op><mode>_acle): ...this new expander.
+ 	(*aarch64_pred_fac<cmp_op><mode>_strict_acle): New pattern.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svac_impl::expand): Update accordingly.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_fcm<cmp_op><mode>_acle)
+ 	(*aarch64_pred_fcm<cmp_op><mode>_acle, @aarch64_pred_fcmuo<mode>_acle)
+ 	(*aarch64_pred_fcmuo<mode>_acle): New patterns.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svcmp_impl::expand, svcmpuo_impl::expand): Use them.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide):
+ 	Split into VNx16QI_ONLY and SVE_FULL_HSI patterns.  Use VNx16BI
+ 	results for both.
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide): New pattern.
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Turn into a
+ 	define_insn_and_rewrite and rewrite the governing predicate
+ 	of the comparison so that it is identical to the PTEST's.
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide)
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Use <VPRED> instead of
+ 	VNx16BI for the governing predicate.
+ 	(*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_acle)
+ 	(*aarch64_pred_cmp<cmp_op><mode>_acle, *cmp<cmp_op><mode>_acle_cc)
+ 	(*cmp<cmp_op><mode>_acle_and): New patterns that yield VNx16BI
+ 	results for all element types.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svcmp_impl::expand): Use them.
+ 	(svcmp_wide_impl::expand): Likewise when implementing an svcmp_wide
+ 	against an in-range constant.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_punpk<perm_hilo>_acle)
+ 	(*aarch64_sve_punpk<perm_hilo>_acle): New patterns.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svunpk_impl::expand): Use them for boolean svunpk*.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121294
+ 	* config/aarch64/aarch64.md (UNSPEC_REV_PRED): New unspec.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_rev<mode>_acle)
+ 	(*aarch64_sve_rev<mode>_acle): New patterns.
+ 	* config/aarch64/aarch64-sve-builtins-base.cc
+ 	(svrev_impl::expand): Use the new patterns for boolean svrev.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121294
+ 	* config/aarch64/iterators.md (UNSPEC_TRN1_CONV): Delete.
+ 	(UNSPEC_PERMUTE_PRED): New unspec.
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>):
+ 	Replace with...
+ 	(@aarch64_sve_<perm_insn><mode>_acle)
+ 	(*aarch64_sve_<perm_insn><mode>_acle): ...these new patterns.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_sve_const_pred_trn):
+ 	Update accordingly.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(binary_permute::expand): Use the new _acle patterns for
+ 	predicate operations.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR testsuite/121118
+ 	* config/aarch64/iterators.md (VNx16BI_ONLY): New mode iterator.
+ 	* config/aarch64/predicates.md (aarch64_ptrue_all_operand): New
+ 	predicate.
+ 	* config/aarch64/aarch64-sve.md
+ 	(@aarch64_sve_while_<while_optab_cmp><GPI:mode><VNx16BI_ONLY:mode>_acle)
+ 	(@aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle)
+ 	(*aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle)
+ 	(*while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle_cc): New
+ 	patterns.
+ 	* config/aarch64/aarch64-sve-builtins-functions.h
+ 	(while_comparison::expand): Use the new _acle patterns that
+ 	always return a VNx16BI.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svwhilerw_svwhilewr_impl::expand): Likewise.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_sve_move_pred_via_while): Likewise.
+ 
+ 2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121293
+ 	* config/aarch64/aarch64-sve-builtins-base.cc (svdupq_lane::expand):
+ 	Use aarch64_sve_reinterpret instead of subregs.  Explicitly
+ 	reinterpret the result back to the required mode, rather than
+ 	leaving the caller to take a subreg.
+ 
+ 2025-08-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121362
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize
+ 	aggregate copy handling.
+ 
+ 2025-08-04  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* doc/invoke.texi: Add remark about -options being documented
+ 	under -fdump-tree.  Remove remark about -graph working only for
+ 	RTL.
+ 
+ 2025-08-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120941
+ 	* config/i386/i386-features.cc (x86_cse_kind): Moved before
+ 	ix86_place_single_vector_set.
+ 	(redundant_load): Likewise.
+ 	(ix86_place_single_vector_set): Replace the last argument to the
+ 	pointer to redundant_load.  For X86_CSE_VEC_DUP, don't place the
+ 	vector set outside of the loop to avoid extra spills.
+ 	(remove_redundant_vector_load): Pass load to
+ 	ix86_place_single_vector_set.
+ 
+ 2025-08-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (define_insn_and_split) [reload_completed]:
+ 	For splits that just append a (clobber (reg:CC REG_CC)) to
+ 	the pattern, use avr_add_ccclobber (curr_insn) instead of
+ 	repeating the original pattern.
+ 	* config/avr/avr-dimode.md: Same.
+ 	* config/avr/avr-fixed.md: Same.
+ 
+ 2025-08-03  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_add_ccclobber): New function.
+ 	* config/avr/avr-protos.h (avr_add_ccclobber): New proto.
+ 	(DONE_ADD_CCC): New define.
+ 
+ 2025-08-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90242
+ 	* tree-ssa-sccvn.cc (vn_reference_compute_hash): Use
+ 	poly_offset_int for offset accumulation.  For hashing
+ 	truncate to 64 bits and also hash 64 bits.
+ 	(vn_reference_eq): Likewise.
+ 
+ 2025-08-02  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	PR target/69374
+ 	* doc/install.texi (Specific) <windows>: Drop note on 16-bit
+ 	Windows support. Streamline note on 32-bit support.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121350
+ 	* tree-vect-stmts.cc (vectorizable_store): Pass down SLP
+ 	node when costing scalar stores in vect_body.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121349
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Get full SLP mask, reduce to uniform scalar_mask for further
+ 	processing if possible.
+ 	(vect_check_scalar_mask): Remove scalar mask output, remove
+ 	code conditional on slp_mask.
+ 	(vectorizable_call): Adjust.
+ 	(check_scan_store): Get and check SLP mask.
+ 	(vectorizable_store): Eliminate scalar mask variable.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-08-01  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/install.texi (Prerequisites): mdocml.bsd.lv is now
+ 	mandoc.bsd.lv.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Remove,
+ 	inline into ...
+ 	(get_load_store_type): ... this.  Remove ncopies parameter.
+ 	(vectorizable_load): Adjust.
+ 	(vectorizable_store): Likewise.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Remove
+ 	checks performed at SLP build time.
+ 	(vect_check_store_rhs): Remove scalar RHS output.
+ 	(vectorizable_store): Remove uses of scalar RHS.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (VMAT_UNINITIALIZED): New
+ 	vect_memory_access_type.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Use it.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121338
+ 	* tree-ssa-loop-ivopts.cc (avg_loop_niter): Return an
+ 	unsigned.
+ 	(adjust_setup_cost): When niters is so large the division
+ 	result is one or zero avoid it.
+ 	(create_new_ivs): Adjust.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_simd_clone_data): New.
+ 	(_slp_tree::simd_clone_info): Remove.
+ 	(SLP_TREE_SIMD_CLONE_INFO): Likewise.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust.
+ 	(_slp_tree::~_slp_tree): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
+ 	tyupe specific data to store SLP_TREE_SIMD_CLONE_INFO.
+ 
+ 2025-08-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust.
+ 	(_slp_tree::~_slp_tree): Likewise.
+ 	* tree-vectorizer.h (vect_data): New base class.
+ 	(_slp_tree::u): Remove.
+ 	(_slp_tree::data): Add pointer to vect_data.
+ 	(_slp_tree::get_data): New helper template.
+ 
+ 2025-08-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121322
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Return NULL if
+ 	count is 0.
+ 
+ 2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.opt.urls (-mfuse-move2): Add url.
+ 
+ 2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.cc (avr_output_addr_vec) <labl>: Asm out its .type.
+ 
+ 2025-07-31  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR rtl-optimization/121340
+ 	* config/avr/avr.opt (-mfuse-move2): New option.
+ 	* config/avr/avr-passes.def (avr_pass_2moves): Insert after combine.
+ 	* config/avr/avr-passes.cc (make_avr_pass_2moves): New function.
+ 	(pass_data avr_pass_data_2moves): New static variable.
+ 	(avr_pass_2moves): New rtl_opt_pass.
+ 	* config/avr/avr-protos.h (make_avr_pass_2moves): New proto.
+ 	* common/config/avr/avr-common.cc
+ 	(default_options avr_option_optimization_table) <-mfuse-move2>:
+ 	Set for -O1 and higher.
+ 	* doc/invoke.texi (AVR Options) <-mfuse-move2>: Document.
+ 
+ 2025-07-31  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/120805
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Skip setting
+ 	bounds on epilogues.
+ 
+ 2025-07-31  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* common/config/aarch64/cpuinfo.h: Remove unused features, add FEAT_CSSC
+ 	and FEAT_MOPS.
+ 	* config/aarch64/aarch64-option-extensions.def: Remove FMV support
+ 	for RPRES, use PULL rather than AES, add FMV support for CSSC and MOPS.
+ 
+ 2025-07-31  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+ 
+ 	* config/aarch64/tuning_models/generic_armv9_a.h
+ 	(generic_armv9_a_addrcost_table): Use zero cost for himode.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Properly
+ 	compare the scalar type of the gather/scatter offset to
+ 	the offset vector component type.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-fold.h (fold_stmt_inplace): Add valueization hook
+ 	argument, defaulted to no_follow_ssa_edges.
+ 	* gimple-fold.cc (fold_stmt_inplace): Adjust.
+ 
+ 2025-07-31  Artemiy Granat  <a.granat@ispras.ru>
+ 
+ 	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
+ 	Fix typo.
+ 
+ 2025-07-31  Artemiy Granat  <a.granat@ispras.ru>
+ 
+ 	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
+ 	Handle simultaneous use of regparm and thiscall attributes in
+ 	case when regparm is set before thiscall.
+ 
+ 2025-07-31  Artemiy Granat  <a.granat@ispras.ru>
+ 
+ 	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
+ 	Fix comments which state that combination of stdcall and fastcall
+ 	attributes is valid but redundant.
+ 
+ 2025-07-31  Artemiy Granat  <a.granat@ispras.ru>
+ 
+ 	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
+ 	Move 64-bit mode check before regparm handling.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121320
+ 	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Convert
+ 	op->off to poly_offset_int before multiplying by
+ 	BITS_PER_UNIT.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121323
+ 	* tree-ssa-alias.cc (ao_ref_init_from_ptr_and_range): Check
+ 	the pointer offset fits in a HWI when represented in bits.
+ 
+ 2025-07-31  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (build_ifunc_arg_type):
+ 	Add new fields _hwcap3 and _hwcap4.
+ 
+ 2025-07-31  Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	PR target/118890
+ 	* config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Avoid left
+ 	shift of negative value and guard shift count.
+ 	(can_be_built_by_li_and_rldic): Likewise.
+ 	(rs6000_emit_set_long_const): Likewise.
+ 	* config/rs6000/rs6000.md (splitter for plus into two 16-bit parts): Fix
+ 	UB from overflow in addition.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype):
+ 	Check for node before dereferencing.
+ 	(aarch64_vector_costs::add_stmt_cost): Likewise.
+ 
+ 2025-07-31  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	PR target/121028
+ 	* config/aarch64/aarch64-sme.md (aarch64_smstart_sm): Use the .inst
+ 	directive if !TARGET_SME.
+ 	(aarch64_smstop_sm): Likewise.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_stmt_vec_info::memory_access_type): Remove.
+ 	(STMT_VINFO_MEMORY_ACCESS_TYPE): Likewise.
+ 	(vect_mem_access_type): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_store): Do not set
+ 	STMT_VINFO_MEMORY_ACCESS_TYPE.  Fix SLP_TREE_MEMORY_ACCESS_TYPE
+ 	usage.
+ 	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove
+ 	checking of memory access type.
+ 	* config/riscv/riscv-vector-costs.cc (costs::compute_local_live_ranges):
+ 	Use SLP_TREE_MEMORY_ACCESS_TYPE.
+ 	(costs::need_additional_vector_vars_p): Likewise.
+ 	(segment_loadstore_group_size): Get SLP node as argument,
+ 	use SLP_TREE_MEMORY_ACCESS_TYPE.
+ 	(costs::adjust_stmt_cost): Pass down SLP node.
+ 	* config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use
+ 	SLP_TREE_MEMORY_ACCESS_TYPE instead of vect_mem_access_type.
+ 	(aarch64_detect_vector_stmt_subtype): Likewise.
+ 	(aarch64_vector_costs::count_ops): Likewise.
+ 	(aarch64_vector_costs::add_stmt_cost): Likewise.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_transform_loop): Do not verify DRs
+ 	have not been modified for epilogue loops.
+ 	(update_epilogue_loop_vinfo): Do not copy modified DRs to
+ 	the originals.
+ 
+ 2025-07-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121264
+ 	* machmode.h (get_best_mode): Change type of first 2 arguments
+ 	from int to HOST_WIDE_INT.
+ 	* stor-layout.cc (get_best_mode): Likewise.
+ 
+ 2025-07-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Fix comment typos,
+ 	hanlde -> handle.
+ 	* config/i386/i386.cc (ix86_gimple_fold_builtin, ix86_rtx_costs):
+ 	Likewise.
+ 	* config/i386/i386-features.cc (remove_partial_avx_dependency):
+ 	Likewise.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (check_scan_store): Remove redundant
+ 	slp_node check.  Disallow epilogue vectorization.
+ 
+ 2025-07-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vector_costs::costing_for_scalar): New
+ 	accessor.
+ 	(add_stmt_cost): For scalar costing force vectype to NULL.
+ 	Verify we do not pass in a SLP node.
+ 
+ 2025-07-31  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/121312
+ 	* config/riscv/arch-canonicalize: Add H extension to the
+ 	canonical order.
+ 
+ 2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/121308
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Handle
+ 	subreg of `not` with word_mode to make it symmetric with the
+ 	other bitwise operators.
+ 
+ 2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/121236
+ 	PR tree-optimization/121295
+ 	* tree-if-conv.cc (factor_out_operators): Change the phi node
+ 	to the new result and args.
+ 
+ 2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	Revert:
+ 	2025-07-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/121236
+ 	* tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument,
+ 	pass bb and res of the phi.
+ 	(factor_out_operators): Add iterator for the phi. Remove the phi
+ 	if this is the first time. Return if we had removed the phi.
+ 	(predicate_scalar_phi): Add the phi iterator argument.
+ 	Update call to is_cond_scalar_reduction.
+ 	Update call to factor_out_operators and set the return value to true
+ 	when factor_out_operators returns true.
+ 	(predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi
+ 	already removed it.
+ 
+ 2025-07-30  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* auto-profile.cc (string_table::read): Check gcov_is_error.
+ 	(read_profile): Likewise.
+ 	* gcov-io.cc (gcov_is_error): Export for gcc linkage.
+ 	* gcov-io.h (gcov_is_error): Declare.
+ 
+ 2025-07-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_default_vector_cost): Split
+ 	out from ...
+ 	(ix86_builtin_vectorization_cost): ... this and use
+ 	mode instead of vectype as argument.
+ 	(ix86_vector_costs::add_stmt_cost): Call
+ 	ix86_default_vector_cost instead of ix86_builtin_vectorization_cost.
+ 
+ 2025-07-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR target/117015
+ 	* config/s390/s390-protos.h (s390_expand_int_spaceship): New
+ 	function.
+ 	(s390_expand_fp_spaceship): New function.
+ 	* config/s390/s390.cc (s390_expand_int_spaceship): New function.
+ 	(s390_expand_fp_spaceship): New function.
+ 	* config/s390/s390.md (spaceship<mode>4): New expander.
+ 
+ 2025-07-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* cprop.cc (bypass_block): Extract single set.
+ 	(bypass_conditional_jumps): Ditto.
+ 
+ 2025-07-30  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120427
+ 	* config/i386/i386.md (peephole2): Transform "movq $-1,reg" to
+ 	"pushq $-1; popq reg" for -Oz if reg is a legacy integer register.
+ 
+ 2025-07-30  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* auto-profile.cc (function_instance::match): Disable warning
+ 	about bogus locations since dwarf does not represent enough
+ 	info to output them correctly in all cases.
+ 	(add_scale): Use nonzero_p instead of orig.force_nonzero () == orig.
+ 	(afdo_adjust_guessed_profile): Add missing newline in dump
+ 	file.
+ 
+ 2025-07-30  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* symtab.cc (symbol_table::change_decl_assembler_name): Recompute DECL_RTL
+ 	in case it is already computed.
+ 
+ 2025-07-30  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* predict.cc (unlikely_executed_edge_p): Ignore EDGE_EH if profile
+ 	is reliable.
+ 	(unlikely_executed_stmt_p): special case builtin_trap/unreachable and
+ 	ignore other heuristics for reliable profiles.
+ 	(tree_estimate_probability): Disable unlikely bb detection when
+ 	doing dry run
+ 
+ 2025-07-30  Andrew Stubbs  <ams@baylibre.com>
+ 	     Julian Brown   <julian@codesourcery.com>
+ 
+ 	* doc/tm.texi.in (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Add
+ 	documentation hook.
+ 	* doc/tm.texi: Regenerate.
+ 	* target.def (prefer_gather_scatter): Add target hook under vectorizer.
+ 	* hooks.cc (hook_bool_mode_int_unsigned_false): New function.
+ 	* hooks.h (hook_bool_mode_int_unsigned_false): New prototype.
+ 	* tree-vect-stmts.cc (vect_use_strided_gather_scatters_p): Add
+ 	parameters group_size and single_element_p, and rework to use
+ 	targetm.vectorize.prefer_gather_scatter.
+ 	(get_group_load_store_type): Move some of the condition into
+ 	vect_use_strided_gather_scatters_p.
+ 	* config/gcn/gcn.cc (gcn_prefer_gather_scatter): New function.
+ 	(TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Define hook.
+ 
+ 2025-07-30  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (gcn_option_override): Add note to set default for
+ 	param_vect_partial_vector_usage to "1".
+ 	* optc-save-gen.awk: Don't pass through options marked "NoOffload".
+ 	* params.opt (-param=vect-epilogues-nomask): Add NoOffload.
+ 	(-param=vect-partial-vector-usage): Likewise.
+ 	(-param=vect-inner-loop-cost-factor): Likewise.
+ 
+ 2025-07-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121130
+ 	* tree-vect-stmts.cc (vectorizable_call): Bail out for
+ 	.MASK_CALL.
+ 
+ 2025-07-30  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	PR tree-optimization/121020
+ 	* tree-vect-loop-manip.cc (vect_do_peeling): Update the
+ 	condition of omitting the skip-vector check.
+ 	* tree-vectorizer.h (LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING):
+ 	Add a helper macro.
+ 
+ 2025-07-30  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	PR tree-optimization/121190
+ 	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
+ 	Increase alignment requirement for speculative loads.
+ 
+ 2025-07-30  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR target/121300
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svamin/svamax): Fix
+ 	arch gating.
+ 
+ 2025-07-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type):
+ 	Process STMT_VINFO_GATHER_SCATTER before reading
+ 	memory_access_type.
+ 
+ 2025-07-30  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@cond_<optab><mode>): Extend
+ 	to support partial FP modes.
+ 	(*cond_<optab><mode>_2_strict): Extend from SVE_FULL_F to SVE_F,
+ 	use aarch64_predicate_operand.
+ 	(*cond_<optab><mode>_4_strict): Extend from SVE_FULL_F_B16B16 to
+ 	SVE_F_B16B16, use aarch64_predicate_operand.
+ 	(*cond_<optab><mode>_any_strict):  Likewise.
+ 
+ 2025-07-30  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
+ 	Extend from SVE_FULL_F to SVE_F.
+ 	(*cond_<optab><mode>_4_relaxed): Extend from SVE_FULL_F_B16B16
+ 	to SVE_F_B16B16.
+ 	(*cond_<optab><mode>_any_relaxed): Likewise.
+ 
+ 2025-07-30  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>4): Extend from
+ 	SVE_FULL_F_B16B16 to SVE_F_B16B16.  Use aarch64_sve_fp_pred instead
+ 	of aarch64_ptrue_reg.
+ 	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F_B16B16 to
+ 	SVE_F_B16B16.  Use aarch64_predicate_operand.
+ 
+ 2025-07-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-modes.def: Remove VECTOR_MODES(FLOAT, 256)
+ 	and VECTOR_MODE (INT, SI, 64).
+ 	* config/i386/i386.cc (ix86_hard_regno_nregs): Remove related
+ 	code for V64SF/V64SImode.
+ 
+ 2025-07-30  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/121274
+ 	* config/i386/sse.md (*vec_concatv2di_0): Add a splitter
+ 	before it.
+ 
+ 2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/121302
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Use
+ 	byte instead of 0 when calling simplify_subreg.
+ 
+ 2025-07-29  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_sve_emit_masked_fp_pred):
+ 	Declare.
+ 	* config/aarch64/aarch64-sve.md (and<mode>3):  Change this to...
+ 	(@and<mode>3): ...this, so that we can use gen_and3.
+ 	(@cond_<optab><mode>): Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16,
+ 	use aarch64_predicate_operand.
+ 	(*cond_<optab><mode>_2_strict): Likewise.
+ 	(*cond_<optab><mode>_3_strict): Likewise.
+ 	(*cond_<optab><mode>_any_strict): Likwise.
+ 	(*cond_<optab><mode>_2_const_strict): Extend from SVE_FULL_F to SVE_F,
+ 	use aarch64_predicate_operand.
+ 	(*cond_<optab><mode>_any_const_strict): Likewise.
+ 	(*cond_sub<mode>_3_const_strict): Likwise.
+ 	(*cond_sub<mode>_const_strict): Likewise.
+ 	(*vcond_mask_<mode><vpred>): Use aarch64_predicate_operand, and update
+ 	the comment here.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_emit_masked_fp_pred): New
+ 	function.  Helper to mask the predicate in conditional expanders.
+ 
+ 2025-07-29  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* Makefile.in: Add riscv-mcpu.texi and riscv-mtune.texi to the list
+ 	of files to be processed by the Texinfo generator.
+ 	* config/riscv/t-riscv: Add rule for generating riscv-mcpu.texi
+ 	and riscv-mtune.texi.
+ 	* doc/invoke.texi: Replace hand‑written extension table with
+ 	`@include riscv-mcpu.texi` and `@include riscv-mtune.texi` to
+ 	pull in auto‑generated entries.
+ 	* config/riscv/gen-riscv-mcpu-texi.cc: New file.
+ 	* config/riscv/gen-riscv-mtune-texi.cc: New file.
+ 	* doc/riscv-mcpu.texi: New file.
+ 	* doc/riscv-mtune.texi: New file.
+ 
+ 2025-07-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_subreg): Distribute
+ 	lowpart subregs through AND/IOR/XOR, if doing so eliminates one
+ 	of the terms.
+ 	(test_scalar_int_ext_ops): Add some tests of the above for integers.
+ 	* config/aarch64/aarch64.cc (aarch64_test_sve_folding): Likewise
+ 	add tests for predicate modes.
+ 
+ 2025-07-29  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc
+ 	(function_expander::get_reg_target): Check whether the target
+ 	is a valid register_operand.
+ 
+ 2025-07-29  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/120660
+ 	* avoid-store-forwarding.cc (process_store_forwarding):
+ 	Fix instruction generation when haveing multiple stores with
+ 	base offset.
+ 
+ 2025-07-29  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_is_subset):
+ 	Remove use of structured binding to fix compiler warning.
+ 
+ 2025-07-29  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/119795
+ 	* avoid-store-forwarding.cc
+ 	(store_forwarding_analyzer::avoid_store_forwarding): Skip
+ 	transformations for stores that operate on the same address
+ 	range as deleted ones.
+ 
+ 2025-07-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add mul based unsigned SAT_MUL.
+ 
+ 2025-07-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120687
+ 	* tree-ssa-reassoc.cc (reassociate_bb): Do not disturb
+ 	the sorted operand order in the early pass.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Dump when a detected
+ 	reduction chain fails SLP discovery.
+ 
+ 2025-07-29  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	PR middle-end/121261
+ 	* vec.h: Add null ptr check.
+ 
+ 2025-07-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/121159
+ 	* calls.cc (can_implement_as_sibling_call_p): Don't reject declared
+ 	noreturn functions in musttail calls.
+ 
+ 2025-07-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* output.h (MAX_ALIGN_MERGABLE): New define.
+ 	* tree-switch-conversion.cc (switch_conversion::build_one_array):
+ 	Use MAX_ALIGN_MERGABLE instead of 256.
+ 	* varasm.cc (mergeable_string_section): Likewise
+ 	(mergeable_constant_section): Likewise
+ 
+ 2025-07-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120523
+ 	* output.h (mergeable_constant_section): New declaration taking
+ 	unsigned HOST_WIDE_INT for the size.
+ 	* tree-switch-conversion.cc (switch_conversion::build_one_array):
+ 	Increase the alignment of CSWTCH for sizes less than 32bytes.
+ 	* varasm.cc (mergeable_constant_section): Split out twice.
+ 	One that takes the size in unsigned HOST_WIDE_INT and the
+ 	other size in a tree.
+ 	(default_elf_select_section): Pass DECL_SIZE instead of
+ 	DECL_MODE to mergeable_constant_section.
+ 
+ 2025-07-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Un-factor VMAT
+ 	specific code to their handling blocks.
+ 
+ 2025-07-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (gather_scatter_info::offset_dt): Remove.
+ 	* tree-vect-data-refs.cc (vect_describe_gather_scatter_call):
+ 	Do not set it.
+ 	(vect_check_gather_scatter): Likewise.
+ 	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
+ 	Likewise.
+ 	(get_group_load_store_type): Use the vector type of the offset
+ 	SLP child.  Do not re-check vect_is_simple_use validated by
+ 	SLP build.
+ 
+ 2025-07-28  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/121277
+ 	* config/avr/avr.cc (avr_addr_space_convert): When converting
+ 	from generic AS to __flashx, don't set bit 23.
+ 	(avr_convert_to_type): Don't -Waddr-space-convert when NULL
+ 	is converted to __flashx or to __flash.
+ 
+ 2025-07-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/121236
+ 	* tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument,
+ 	pass bb and res of the phi.
+ 	(factor_out_operators): Add iterator for the phi. Remove the phi
+ 	if this is the first time. Return if we had removed the phi.
+ 	(predicate_scalar_phi): Add the phi iterator argument.
+ 	Update call to is_cond_scalar_reduction.
+ 	Update call to factor_out_operators and set the return value to true
+ 	when factor_out_operators returns true.
+ 	(predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi
+ 	already removed it.
+ 
+ 2025-07-28  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/121208
+ 	* config/i386/i386.cc (ix86_tls_get_addr): Issue an error for
+ 	-mtls-dialect=gnu with no_caller_saved_registers attribute and
+ 	suggest -mtls-dialect=gnu2.
+ 
+ 2025-07-28  Mikael Pettersson  <mikpelinux@gmail.com>
+ 
+ 	PR other/121260
+ 	* diagnostics/changes.cc: Correct nesting of namespaces
+ 	and #if CHECKING_P blocks.
+ 	* diagnostics/context.cc: Likewise.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostics/output-spec.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 
+ 2025-07-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/nvptx/nvptx.opt (march-map=): Add sm_100{,f,a},
+ 	sm_101{,f,a}, sm_103{,a,f}, sm_120{,a,f} and sm_121{,f,a}.
+ 
+ 2025-07-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn.md (atomic_load, atomic_store, atomic_exchange):
+ 	Fix CDNA3 L2 cache write-back before atomic instructions.
+ 
+ 2025-07-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Make *gs_info const.
+ 	(vect_build_one_gather_load_call): Likewise.
+ 	(vect_build_one_scatter_store_call): Likewise.
+ 	(vect_get_gather_scatter_ops): Likewise.
+ 	(vect_get_strided_load_store_ops): Likewise.
+ 
+ 2025-07-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn.md  (define_attr "vcmp"): Add with values
+ 	vcmp/vcmpx/no.
+ 	(*movbi, cstoredi4.., cstore<mode>4): Set it.
+ 	* config/gcn/gcn-valu.md (vec_cmp<mode>...): Likewise.
+ 	* config/gcn/gcn.cc (gcn_cmpx_insn_p): Remove.
+ 	(gcn_md_reorg): Add two new conditions for MI300.
+ 
+ 2025-07-28  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (enum hsaco_attr_type): Add comment
+ 	about 'sc0'.
+ 	* config/gcn/gcn.cc (gcn_md_reorg): Use gen_nops instead of gen_nop.
+ 	(print_operand_address): Document 'R' and 'V' in the
+ 	pre-function comment as well.
+ 	* config/gcn/gcn.md (nops): Add.
+ 
+ 2025-07-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121256
+ 	* tree-vect-loop.cc (vectorizable_recurr): Build a correct
+ 	initialization vector for SLP_TREE_LANES > 1.
+ 
+ 2025-07-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_slp_tree::type): Add.
+ 	(_slp_tree::u): Likewise.
+ 	(_stmt_vec_info::type): Remove.
+ 	(STMT_VINFO_TYPE): Likewise.
+ 	(SLP_TREE_TYPE): New.
+ 	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not
+ 	initialize type.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize type.
+ 	(vect_slp_analyze_node_operations): Adjust.
+ 	(vect_schedule_slp_node): Likewise.
+ 	* tree-vect-patterns.cc (vect_init_pattern_stmt): Do not
+ 	copy STMT_VINFO_TYPE.
+ 	* tree-vect-loop.cc: Set SLP_TREE_TYPE instead of
+ 	STMT_VINFO_TYPE everywhere.
+ 	(vect_create_loop_vinfo): Do not set STMT_VINFO_TYPE on
+ 	loop conditions.
+ 	* tree-vect-stmts.cc: Set SLP_TREE_TYPE instead of
+ 	STMT_VINFO_TYPE everywhere.
+ 	(vect_analyze_stmt): Adjust.
+ 	(vect_transform_stmt): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops):
+ 	Access SLP_TREE_TYPE instead of STMT_VINFO_TYPE.
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
+ 	Remove non-SLP element-wise load/store matching.
+ 	* config/rs6000/rs6000.cc
+ 	(rs6000_cost_data::update_target_cost_per_stmt): Pass in
+ 	the SLP node.  Use that to get at the memory access
+ 	kind and type.
+ 	(rs6000_cost_data::add_stmt_cost): Pass down SLP node.
+ 	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p):
+ 	Use SLP_TREE_TYPE.
+ 	(costs::need_additional_vector_vars_p): Likewise.
+ 	(costs::update_local_live_ranges): Likewise.
+ 
+ 2025-07-28  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 	    Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (olympus): Use olympus tuning
+ 	model.
+ 	* config/aarch64/aarch64.cc: Include olympus.h.
+ 	* config/aarch64/tuning_models/olympus.h: New file.
+ 
+ 2025-07-28  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	* config/loongarch/loongarch.h
+ 	(CASE_VECTOR_SHORTEN_MODE): Delete.
+ 
+ 2025-07-28  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
+ 	Re-rewrite to more accurately capture insns that could be L32R machine
+ 	instructions wherever possible, and add comments that help understand
+ 	the intent of the process.
+ 
+ 2025-07-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vxrm_vec_vec_dup):
+ 	Add new case UNSPEC_VAADD.
+ 	(expand_vx_binary_vxrm_vec_dup_vec): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new case UNSPEC_VAADD to
+ 	iterator.
+ 
+ 2025-07-27  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR middle-end/120855
+ 	* cgraphunit.cc (symbol_table::compile): Assert a transparent
+ 	alias is not an internal identifier.
+ 	* symtab.cc (symbol_table::change_decl_assembler_name):
+ 	Likewise.
+ 	* varasm.cc (assemble_name_resolve): Check for
+ 	IDENTIFIER_TRANSPARENT_ALIAS instead of just TREE_CHAIN.
+ 
+ 2025-07-26  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* diagnostics/context.cc (context::diagnostic_impl)
+ 	(context::diagnostic_n_impl): In presence of formal parameter
+ 	'kind', explicitly state 'diagnostics::' scope for 'kind' enum.
+ 
+ 2025-07-26  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* diagnostics/option-classifier.cc
+ 	(update_effective_level_from_pragmas): In presence of local
+ 	variable 'kind', explicitly state 'diagnostics::' scope for 'kind'
+ 	enum.
+ 
+ 2025-07-26  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-ext.def: Add allocated group IDs and
+ 	group bit positions.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/context.cc: Eliminate digraphs::lazy_digraph in
+ 	favor of lazily_created template.
+ 	* diagnostics/context.h: Likewise.
+ 	* diagnostics/digraphs.cc: Likewise, also digraphs::lazy_digraphs.
+ 	* diagnostics/digraphs.h: Likewise.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostics/metadata.h: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/sink.h: Likewise.
+ 	* diagnostics/text-sink.h: Likewise.
+ 	* lazily-created.h: New file.
+ 	* libgdiagnostics.cc: Eliminate digraphs::lazy_digraph in
+ 	favor of lazily_created template.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h: Use TextOrHtml rather than Sink for template
+ 	params.
+ 	* diagnostics/context.h: Likewise.
+ 	* diagnostics/selftest-context.cc: Use "html_or_text" rather than
+ 	"sink".
+ 	* diagnostics/source-printing.cc: Use TextOrHtml rather than Sink
+ 	for template params.  Use "text_out" and "html_out" rather than
+ 	"sink".
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_set_caret_max_width): Drop forward
+ 	decl.
+ 	(diagnostic_same_line): Make
+ 	diagnostics::context::m_source_printing private.
+ 	* diagnostics/context.cc (diagnostic_set_caret_max_width): Convert
+ 	to...
+ 	(diagnostics::context::set_caret_max_width): ...this.
+ 	* diagnostics/context.h
+ 	(diagnostics::context::get_source_printing_options): New
+ 	accessors.
+ 	(diagnostics::context::m_source_printing): Make private.
+ 	* diagnostics/html-sink.cc: Make
+ 	diagnostics::context::m_source_printing private.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/selftest-context.cc: Likewise.
+ 	* diagnostics/selftest-context.h
+ 	(diagnostics::selftest::test_context::colorize_source): New.
+ 	(diagnostics::selftest::test_context::show_labels): New.
+ 	(diagnostics::selftest::test_context::show_line_numbers): New.
+ 	(diagnostics::selftest::test_context::show_ruler): New.
+ 	(diagnostics::selftest::test_context::show_event_links): New.
+ 	(diagnostics::selftest::test_context::set_caret_char): New.
+ 	* diagnostics/source-printing.cc: Make
+ 	diagnostics::context::m_source_printing private.
+ 	* diagnostics/text-sink.h: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h: Eliminate "diagnostic_info" typedef.
+ 	* diagnostics/context.cc: Update usage of "diagnostic_info" to
+ 	explicitly refer to "diagnostics::diagnostic_info".
+ 	* langhooks.cc: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* rtl-error.cc: Likewise.
+ 	* substring-locations.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 	* tree-diagnostic.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (enum diagnostics_column_unit): Move to
+ 	diagnostics/context-options.h.
+ 	(enum diagnostics_escape_format): Likewise.
+ 	(enum diagnostics_output_format): Likewise.
+ 	(enum diagnostic_path_format): Likewise.
+ 	(enum diagnostics_extra_output_kind): Likewise.
+ 	(enum diagnostic_text_art_charset): Likewise.
+ 	* diagnostics/context-options.h: New file, based on the above
+ 	material.
+ 	* diagnostics/context.h: Include it.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostics/file-cache.o.
+ 	* diagnostics/changes.cc: Update for file_cache and char_span
+ 	moving from input.h to diagnostics/file-cache.h and into the
+ 	"diagnostics::" namespace.
+ 	* diagnostics/context.cc: Likewise.
+ 	* diagnostics/diagnostics-selftests.cc: Likewise.
+ 	* diagnostics/diagnostics-selftests.h: Likewise.
+ 	* diagnostics/file-cache.cc: New file, based on the file_cache
+ 	and file_cache_slot material in input.cc.
+ 	* diagnostics/file-cache.h: Likewise for input.h.
+ 	* diagnostics/selftest-source-printing.h: Update for file_cache
+ 	and char_span moving from input.h to diagnostics/file-cache.h and
+ 	into the "diagnostics::" namespace.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* final.cc: Likewise.
+ 	* gcc-rich-location.cc: Likewise.
+ 	* input.cc (default_charset_callback): Move to
+ 	diagnostics/file-cache.cc.
+ 	(file_cache::initialize_input_context): Likewise.
+ 	(class file_cache_slot): Likewise.
+ 	(file_cache::tune): Likewise.
+ 	(file_cache::lookup_file): Likewise.
+ 	(file_cache::forcibly_evict_file): Likewise.
+ 	(file_cache::missing_trailing_newline_p): Likewise.
+ 	(file_cache::add_buffered_content): Likewise.
+ 	(file_cache::evicted_cache_tab_entry): Likewise.
+ 	(file_cache::add_file): Likewise.
+ 	(file_cache::file_cache): Likewise.
+ 	(file_cache::dump): Likewise.
+ 	(file_cache::dump): Likewise.
+ 	(file_cache::lookup_or_add_file): Likewise.
+ 	(find_end_of_line): Likewise.
+ 	(file_cache::get_source_line): Likewise.
+ 	(check_line): Likewise.
+ 	(test_replacement): Likewise.
+ 	(test_reading_source_line): Likewise.
+ 	(test_reading_source_buffer): Likewise.
+ 	* input.h (class char_span): Move to diagnostics/file-cache.h and
+ 	into the "diagnostics::" namespace.
+ 	(class file_cache_slot): Likewise.
+ 	(class file_cache): Likewise.
+ 	* libgdiagnostics.cc: Update for file_cache and char_span moving
+ 	from input.h to diagnostics/file-cache.h and into the
+ 	"diagnostics::" namespace.
+ 	* selftest.cc: Likewise.
+ 	* selftest.h: Likewise.
+ 	* substring-locations.h: Likewise.
+ 	* toplev.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostics/selftest-paths.cc: Don't include "demangle.h"
+ 	and "backtrace.h".
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* diagnostics/state-graphs.cc: Don't include "graphviz.h",
+ 	"xml.h", "xml-printer.h", or "intl.h".
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h: Move include of "unique-argv.h"
+ 	and various forward decls into...
+ 	* diagnostics/context.h: ...here.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (num_digits): Move to...
+ 	(diagnostics::num_digits): ...here.
+ 	(get_cwe_url): Move to...
+ 	(diagnostics::get_cwe_url): ...here.
+ 	(maybe_line_and_column): Move to...
+ 	(diagnostics::maybe_line_and_column): ...here.
+ 	* diagnostic.cc: Move to...
+ 	* diagnostics/context.cc: ...here.
+ 	* diagnostics/diagnostics-selftests.cc
+ 	(run_diagnostics_selftests): Add comment about context_cc_tests.
+ 	* diagnostics/diagnostics-selftests.h: Add context_cc_tests decl.
+ 	* diagnostics/sarif-sink.cc: Update for file rename.
+ 	* diagnostics/source-printing.cc: Update for num_digits moving to
+ 	diagnostics::num_digits.
+ 	* errors.cc: Update for file rename.
+ 	* input.cc: Update for num_digits moving to
+ 	diagnostics::num_digits.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace diagnostic.o with
+ 	diagnostics/context.o.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in: Replace diagnostic.def with diagnostics/kinds.def.
+ 	* config/aarch64/aarch64.cc: Update for diagnostic_t becoming
+ 	enum class diagnostics::kind.
+ 	* config/i386/i386-options.cc: Likewise.
+ 	* config/s390/s390.cc: Likewise.
+ 	* diagnostic-core.h: Replace typedef diagnostic_t with
+ 	enum class diagnostics::kind in diagnostics/kinds.h and include
+ 	it.
+ 	* diagnostic-global-context.cc: Update for diagnostic_t becoming
+ 	enum class diagnostics::kind.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostics/buffering.cc: Likewise.
+ 	* diagnostics/buffering.h: Likewise.
+ 	* diagnostics/context.h: Likewise.
+ 	* diagnostics/diagnostic-info.h: Likewise.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostic.def: Move to...
+ 	* diagnostics/kinds.def: ...here and update for diagnostic_t
+ 	becoming enum class diagnostics::kind.
+ 	* diagnostics/kinds.h: New file, based on material in
+ 	diagnostic-core.h.
+ 	* diagnostics/lazy-paths.cc: Update for diagnostic_t becoming
+ 	enum class diagnostics::kind.
+ 	* diagnostics/option-classifier.cc: Likewise.
+ 	* diagnostics/option-classifier.h: Likewise.
+ 	* diagnostics/output-spec.h: Likewise.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/selftest-context.cc: Likewise.
+ 	* diagnostics/selftest-context.h: Likewise.
+ 	* diagnostics/sink.h: Likewise.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* diagnostics/text-sink.cc: Likewise.
+ 	* diagnostics/text-sink.h: Likewise.
+ 	* gcc.cc: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* lto-wrapper.cc: Likewise.
+ 	* opts-common.cc: Likewise.
+ 	* opts-diagnostic.h: Likewise.
+ 	* opts.cc: Likewise.
+ 	* rtl-error.cc: Likewise.
+ 	* substring-locations.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h: Include "diagnostics/option-id.h".
+ 	(struct diagnostic_option_id): Move there, renaming to
+ 	diagnostics::option_id.
+ 	* diagnostic-global-context.cc: Update for renaming of
+ 	diagnostic_option_id to diagnostics::option_id.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostics/context.h: Likewise.
+ 	* diagnostics/diagnostic-info.h: Likewise.
+ 	* diagnostics/lazy-paths.cc: Likewise.
+ 	* diagnostics/option-classifier.cc: Likewise.
+ 	* diagnostics/option-classifier.h: Likewise.
+ 	* diagnostics/option-id.h: New file, taken from material in
+ 	diagnostic-core.h.
+ 	* diagnostics/selftest-context.cc: Update for renaming of
+ 	diagnostic_option_id to diagnostics::option_id.
+ 	* diagnostics/selftest-context.h: Likewise.
+ 	* ipa-pure-const.cc: Likewise.
+ 	* lto-wrapper.cc: Likewise.
+ 	* opts-common.cc: Likewise.
+ 	* opts-diagnostic.h: Likewise.
+ 	* opts.cc: Likewise.
+ 	* substring-locations.cc: Likewise.
+ 	* substring-locations.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace diagnostic-spec.o with
+ 	gcc-diagnostic-spec.o.
+ 	(GTFILES): Replace diagnostic-spec.h with gcc-diagnostic-spec.h.
+ 	* diagnostic-spec.cc: Move to...
+ 	* gcc-diagnostic-spec.cc: ...here.
+ 	* diagnostic-spec.h: Move to...
+ 	* gcc-diagnostic-spec.h: ...here.
+ 	* gengtype.cc (open_base_files): Replace diagnostic-spec.h with
+ 	gcc-diagnostic-spec.h.
+ 	* warning-control.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace diagnostics/changes.o with
+ 	diagnostics/edit-context.o.
+ 	* diagnostic.cc: Update for move of diagnostics/edit-context.h to
+ 	diagnostics/changes.h.
+ 	(diagnostics::context::initialize): Update for renaming of
+ 	m_edit_context_ptr to m_fixits_change_set.
+ 	(diagnostics::context::finish): Likewise.
+ 	(diagnostics::context::create_edit_context): Rename to...
+ 	(diagnostics::context::initialize_fixits_change_set): ...this and
+ 	update for other renamings.
+ 	(diagnostics::context::report_diagnostic): Update for renaming of
+ 	m_edit_context_ptr to m_fixits_change_set.
+ 	* diagnostic.h (diagnostics::edit_context): Drop forward decl
+ 	* diagnostics/edit-context.cc: Move to...
+ 	* diagnostics/changes.cc: ...here.  Update for move of
+ 	diagnostics/edit-context.h to diagnostics/changes.h.
+ 	Rename diagnostics::edit_context to
+ 	diagnostics::changes::change_set.  Rename diagnostics::edited_file
+ 	to diagnostics::changes::changed_file.  Rename
+ 	diagnostics::edited_line to diagnostics::changes::changed_line.
+ 	* diagnostics/edit-context.h: Move to...
+ 	* diagnostics/changes.h: ...here, renaming as above.
+ 	* diagnostics/context.h (diagnostics::changes::change_set): New
+ 	forward decl.
+ 	(diagnostics::context::create_edit_context): Rename to...
+ 	(diagnostics::context::initialize_fixits_change_set): ...this.
+ 	(diagnostics::context::get_edit_context): Rename to...
+ 	(diagnostics::context::get_fixits_change_set): ...this.
+ 	(diagnostics::context::m_edit_context_ptr): Rename to...
+ 	(diagnostics::context::m_fixits_change_set): ..this and update
+ 	type.
+ 	* diagnostics/diagnostics-selftests.cc: Update for renaming.
+ 	* diagnostics/diagnostics-selftests.h: Likewise.
+ 	* diagnostics/html-sink.cc: Update for above changes.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Move diagnostics/lazy-paths.o to...
+ 	(OBJS-libcommon): ...here.  Add
+ 	diagnostics/diagnostics-selftests.o.
+ 	* diagnostic.cc: Update for move of
+ 	selftest::test_diagnostic_context to
+ 	diagnostics::selftest::test_context.
+ 	* diagnostics/color.cc: Move selftests from selftest:: to
+ 	diagnostics::selftest::.
+ 	* diagnostics/diagnostics-selftests.cc: New file.
+ 	* diagnostics/diagnostics-selftests.h: New file.
+ 	* diagnostics/digraphs.cc: Move selftests from selftest:: to
+ 	diagnostics::selftest::.
+ 	* diagnostics/edit-context.cc: Likewise.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostics/lazy-paths.cc: Likewise.  Eliminate use of "tree"
+ 	by porting selftests from simple-diagnostic-path.h to
+ 	diagnostics/selftest-paths.h.
+ 	* diagnostics/output-spec.cc: Move selftests from selftest:: to
+ 	diagnostics::selftest::.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/selftest-context.cc: Move
+ 	selftest::test_diagnostic_context to
+ 	diagnostics::selftest::test_context.
+ 	* diagnostics/selftest-context.h: Likewise.
+ 	* diagnostics/selftest-logical-locations.cc: Move selftests from
+ 	selftest:: to diagnostics::logical_locations::selftest::.
+ 	* diagnostics/selftest-logical-locations.h: Move
+ 	selftest::logical_location_manager to
+ 	diagnostics::logical_locations::selftest::logical_location_manager.
+ 	* diagnostics/selftest-paths.cc: Move
+ 	selftest::test_diagnostic_path to
+ 	diagnostics::paths::selftest::test_path.  Move
+ 	selftest::test_diagnostic_event to
+ 	diagnostics::paths::selftest::test_event.
+ 	* diagnostics/selftest-paths.h: Likewise, and move
+ 	selftest::test_diagnostic_thread to
+ 	diagnostics::paths::selftest::test_thread.
+ 	* diagnostics/selftest-source-printing.h: Move
+ 	selftest::diagnostic_show_locus_fixture to
+ 	diagnostics::selftest::source_printing_fixture.
+ 	* diagnostics/source-printing.cc: Move selftests from selftest::
+ 	to diagnostics::selftest:: and update for renames.
+ 	* diagnostics/state-graphs.cc: Likewise.
+ 	* selftest-run-tests.cc: Include
+ 	"diagnostics/diagnostics-selftests.h".
+ 	(selftest::run_tests): Replace invocation of the various diagnostics
+ 	selftests with a call to
+ 	diagnostics::selftest::run_diagnostics_selftests.
+ 	* selftest.h: Move decls of the various per-file diagnostics
+ 	invocation functions to diagnostics/diagnostics-selftests.h,
+ 	renaming due to diagostics prefix being implied by namespace.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* common.opt: Update for move of diagnostic-url.h to
+ 	diagnostics/url.h.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostics/color.cc: Likewise.
+ 	* diagnostics/text-sink.cc: Likewise.
+ 	* diagnostic-url.h: Move to...
+ 	* diagnostics/url.h: ...here.
+ 	* libgdiagnostics.cc: Update for move of diagnostic-url.h to
+ 	diagnostics/url.h.
+ 	* pretty-print.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace diagnostic-color.o with
+ 	diagnostics/color.o.
+ 	(PLUGIN_HEADERS): Remove diagnostic-color.h in favor of glob.
+ 	* common.opt: Update for move of diagnostic-color.h to
+ 	diagnostics/color.h.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic-color.cc: Move to...
+ 	* diagnostics/color.cc: ...here.
+ 	* diagnostic-color.h: Move to...
+ 	* diagnostics/color.h: ...here.
+ 	* diagnostics/edit-context.cc: Update for move of
+ 	diagnostic-color.h to diagnostics/color.h.
+ 	* diagnostics/output-spec.cc: Likewise.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* diagnostics/text-sink.cc: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* pretty-print-markup.h: Likewise.
+ 	* pretty-print.cc: Likewise.
+ 	* selftest-run-tests.cc: Likewise.
+ 	* selftest.h: Likewise.
+ 	* text-art/style.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace selftest-diagnostic.o with
+ 	diagnostics/selftest-context.o.
+ 	* diagnostic.cc: Update for move of selftest-diagnostic.h to
+ 	diagnostics/selftest-context.h.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostics/lazy-paths.cc: Likewise.
+ 	* diagnostics/output-spec.cc: Likewise.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* selftest-diagnostic.cc: Move to...
+ 	* diagnostics/selftest-context.cc: ...here and update for move of
+ 	header file.
+ 	* selftest-diagnostic.h: Move to...
+ 	* diagnostics/selftest-context.h: ...here.
+ 	* diagnostics/source-printing.cc: Update for move of
+ 	selftest-diagnostic.h to diagnostics/selftest-context.h.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostics/buffering.o.
+ 	* diagnostic.cc (diagnostics::context::set_diagnostic_buffer): Move to
+ 	diagnostics/buffering.cc.
+ 	(diagnostics::context::clear_diagnostic_buffer): Likewise.
+ 	(diagnostics::context::flush_diagnostic_buffer): Likewise.
+ 	(diagnostics::buffer::buffer): Likewise.
+ 	(diagnostics::buffer::~buffer): Likewise.
+ 	(diagnostics::buffer::dump): Likewise.
+ 	(diagnostics::buffer::empty_p): Likewise.
+ 	(diagnostics::buffer::move_to): Likewise.
+ 	(diagnostics::buffer::ensure_per_sink_buffers): Likewise.
+ 	* diagnostics/buffering.cc: New file, from material in diagnostic.cc.
+ 	* diagnostics/buffering.h: Fix comment.
+ 	* diagnostics/text-sink.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add
+ 	diagnostics/option-classifier.o.
+ 	* diagnostic.cc (diagnostics::option_classifier::init): Move to
+ 	diagnostics/option-classifier.cc.
+ 	(diagnostics::option_classifier::fini): Likewise.
+ 	(diagnostics::option_classifier::pch_save): Likewise.
+ 	(diagnostics::option_classifier::pch_restore): Likewise.
+ 	(diagnostics::option_classifier::push): Likewise.
+ 	(diagnostics::option_classifier::pop): Likewise.
+ 	(diagnostics::option_classifier::classify_diagnostic): Likewise.
+ 	(diagnostics::option_classifier::update_effective_level_from_pragmas):
+ 	Likewise.
+ 	* diagnostics/context.h: Include
+ 	"diagnostics/option-classifier.h".
+ 	(class option_classifier): Move to
+ 	diagnostics/option-classifier.h.
+ 	* diagnostics/option-classifier.cc: New file, based on material
+ 	from diagnostic.cc.
+ 	* diagnostics/option-classifier.h: New file, based on material
+ 	from diagnostics/context.h.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* coretypes.h: Update for diagnostic_context becoming
+ 	diagnostics::context.
+ 	* diagnostic-global-context.cc: Likewise.
+ 	* diagnostic.cc: Likewise.  Also for diagnostic_option_classifier
+ 	becoming diagnostics::option_classifier.
+ 	* diagnostic.h (diagnostic_text_starter_fn): Rename to...
+ 	(diagnostics::text_starter_fn): ...this, and move to
+ 	diagnostics/context.h.
+ 	(get_printer): Rename to...
+ 	(diagnostics::get_printer): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class diagnostic_option_manager): Rename to...
+ 	(class diagnostics::option_manager): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class diagnostic_option_classifier): Rename to...
+ 	(class diagnostics::option_classifier): ...this, and move to
+ 	diagnostics/context.h.
+ 	(struct diagnostic_source_printing_options): Rename to...
+ 	(struct diagnostics::source_printing_options): ...this, and move
+ 	to diagnostics/context.h.
+ 	(class diagnostic_column_policy): Rename to...
+ 	(class diagnostics::column_policy): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class diagnostic_location_print_policy): Rename to...
+ 	(class diagnostics::location_print_policy): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class html_label_writer): Rename to...
+ 	(class diagnostics::html_label_writer): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class diagnostic_source_print_policy): Rename to...
+ 	(class diagnostics::source_print_policy): ...this, and move to
+ 	diagnostics/context.h.
+ 	(struct diagnostic_counters): Rename to...
+ 	(struct diagnostics::counters): ...this, and move to
+ 	diagnostics/context.h.
+ 	(class diagnostic_context): Rename to...
+ 	(class diagnostics::context): ...this, and move to
+ 	diagnostics/context.h.
+ 	(diagnostic_text_starter): Rename to...
+ 	(diagnostics::text_starter): ...this, and move to
+ 	diagnostics/context.h.
+ 	(diagnostic_start_span): Rename to...
+ 	(diagnostics::start_span): ...this, and move to
+ 	diagnostics/context.h.
+ 	(diagnostic_text_finalizer): Rename to...
+ 	(diagnostics::text_finalizer): ...this, and move to
+ 	diagnostics/context.h.
+ 	Include "diagnostics/context.h".
+ 	* diagnostics/buffering.h: Update for diagnostic_context becoming
+ 	diagnostics::context; similarly for diagnostic_counters.
+ 	* diagnostics/client-data-hooks.h: Likewise.
+ 	* diagnostics/context.h: New file, taken from material in
+ 	diagnostic.h.
+ 	* diagnostics/html-sink.cc: : Update for diagnostic_context
+ 	becoming diagnostics::context.
+ 	* diagnostics/html-sink.h: Likewise.
+ 	* diagnostics/lazy-paths.cc: Likewise for
+ 	diagnostic_option_manager.
+ 	* diagnostics/output-file.h: Likewise for diagnostic_context.
+ 	* diagnostics/output-spec.cc: Likewise.
+ 	* diagnostics/output-spec.h: Likewise.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/sarif-sink.h: Likewise.
+ 	* diagnostics/sink.h: Likewise.
+ 	* diagnostics/source-printing.cc: Likewise.
+ 	* diagnostics/text-sink.cc: Likewise.
+ 	* diagnostics/text-sink.h: Likewise.
+ 	* gcc-rich-location.h: Likewise.
+ 	* gcc.cc: Likewise.
+ 	* gdbinit.in: Likewise.
+ 	* langhooks-def.h: Likewise.
+ 	* langhooks.cc: Likewise.
+ 	* langhooks.h: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* optc-gen.awk: Likewise.
+ 	* opth-gen.awk: Likewise.
+ 	* opts-common.cc: Likewise.
+ 	* opts-diagnostic.cc: Likewise.
+ 	* opts-diagnostic.h: Likewise.
+ 	* opts-global.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* opts.h: Likewise.
+ 	* selftest-diagnostic.cc: Likewise.
+ 	* selftest-diagnostic.h: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 	* tree-diagnostic.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (struct diagnostic_info): Move to
+ 	diagnostics/diagnostic-info.h as diagnostics::diagnostic_info.
+ 	Add typedef bringing it back into root namespace, for now.
+ 	* diagnostics/diagnostic-info.h: New file, based on the above.
+ 	* langhooks-def.h: Update for diagnostic_info moving into
+ 	namespace diagnostics.
+ 	* langhooks.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.cc: Update to add "m_" prefix to fields of
+ 	diagnostic_info throughout.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostics/html-sink.cc: Likewise.
+ 	* diagnostics/sarif-sink.cc: Likewise.
+ 	* diagnostics/text-sink.cc: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* substring-locations.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Replace diagnostic-macro-unwinding.o with
+ 	diagnostics/macro-unwinding.o.
+ 	* diagnostic-macro-unwinding.cc: Move to...
+ 	* diagnostics/macro-unwinding.cc: ...here, moving content into
+ 	namespace diagnostics.
+ 	* diagnostic-macro-unwinding.h: Move to...
+ 	* diagnostics/macro-unwinding.h: ...here, moving content into
+ 	namespace diagnostics.
+ 	* diagnostics/paths-output.cc: Update for move of
+ 	"diagnostic-macro-unwinding.h" to "diagnostics/macro-unwinding.h".
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Replace diagnostic-show-locus.o with
+ 	diagnostics/source-printing.o.
+ 	* diagnostic.h (class diagnostic_source_effect_info): Replace
+ 	with...
+ 	(class diagnotics::source_effect_info): ...this.
+ 	* diagnostics/paths-output.cc: Likewise.  Update for move of
+ 	"diagnostic-label-effects.h" to
+ 	"diagnostics/source-printing-effects.h".
+ 	* diagnostics/sarif-sink.cc: Update for move of
+ 	"selftest-diagnostic-show-locus.h" to
+ 	"diagnostics/selftest-source-printing.h".
+ 	* selftest-diagnostic-show-locus.h: Move to...
+ 	* diagnostics/selftest-source-printing.h: ...here.
+ 	* diagnostic-label-effects.h: Move to...
+ 	* diagnostics/source-printing-effects.h: ...here, updating
+ 	for above changes.
+ 	* diagnostic-show-locus.cc: Move to...
+ 	* diagnostics/source-printing.cc: ...here.
+ 	* gcc-rich-location.h: Likewise.
+ 	* selftest-run-tests.cc: Likewise.
+ 	* selftest.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Replace diagnostic-format-html.o with
+ 	diagnostics/html-sink.o, diagnostic-format-sarif.o with
+ 	diagnostics/sarif-sink.o, and diagnostic-format-text.o with
+ 	diagnostics/text-sink.o.
+ 	* coretypes.h (class diagnostic_text_output_format): Replace
+ 	with...
+ 	(class diagnostics::text_sink): ...this.
+ 	* diagnostic-global-context.cc: Update for move of diagnostics
+ 	output formats into namespace "diagnostics", as "sinks".
+ 	* diagnostic-macro-unwinding.cc: Likewise.
+ 	* diagnostic-macro-unwinding.h: Likewise.
+ 	* diagnostic-show-locus.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostic-buffer.h: Rename to...
+ 	* diagnostics/buffering.h: ...this, updating for above changes.
+ 	* diagnostics/client-data-hooks.h: Likewise.
+ 	* diagnostics/digraphs.cc: Likewise.
+ 	* diagnostic-format-html.cc: Rename to...
+ 	* diagnostics/html-sink.cc: ...this, updating for above changes.
+ 	* diagnostic-format-html.h: Rename to...
+ 	* diagnostics/html-sink.h: ...this, updating for above changes.
+ 	* diagnostics/lazy-paths.cc: Likewise.
+ 	* diagnostics/metadata.h: Likewise.
+ 	* diagnostics/output-spec.cc: Likewise.
+ 	* diagnostics/output-spec.h: Likewise.
+ 	* diagnostics/paths-output.cc: Likewise.
+ 	* diagnostics/paths.h: Likewise.
+ 	* diagnostic-format-sarif.cc: Rename to...
+ 	* diagnostics/sarif-sink.cc: ...this, updating for above changes.
+ 	* diagnostic-format-sarif.h: Rename to...
+ 	* diagnostics/sarif-sink.h: ...this, updating for above changes.
+ 	* diagnostic-format.h: Rename to...
+ 	* diagnostics/sink.h: ...this, updating for above changes.
+ 	* diagnostics/state-graphs-to-dot.cc: Likewise.
+ 	* diagnostic-format-text.cc: Rename to...
+ 	* diagnostics/text-sink.cc: ...this, updating for above changes.
+ 	* diagnostic-format-text.h: Rename to...
+ 	* diagnostics/text-sink.h: ...this, updating for above changes.
+ 	* gcc.cc: Likewise.
+ 	* langhooks-def.h: Likewise.
+ 	* langhooks.cc: Likewise.
+ 	* langhooks.h: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* opts-diagnostic.cc: Likewise.
+ 	* opts.cc: Likewise.
+ 	* selftest-diagnostic.cc: Likewise.
+ 	* selftest-run-tests.cc: Likewise.
+ 	* selftest.h: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS): Replace lazy-diagnostic-path.o with
+ 	diagnostics/lazy-paths.o.
+ 	(OBJS-libcommon): Replace diagnostic-path.o with
+ 	diagnostics/paths.o, diagnostic-path-output.o with
+ 	diagnostics/paths-output.o, and selftest-diagnostic-path.o with
+ 	diagnostics/selftest-paths.o.
+ 	(EXTRA_BACKEND_OBJS): Replace lazy-diagnostic-path.o with
+ 	diagnostics/lazy-paths.o.
+ 	* diagnostic-format-html.cc: Update #include for
+ 	"diagnostic-path.h" moving to "diagnostics/paths.h",
+ 	diagnostic_thread_id_t to diagnostics::paths::thread_id_t,
+ 	diagnostic_event_id_t to diagnostics::paths::event_id_t,
+ 	diagnostic_path to diagnostics::paths::path, and
+ 	diagnostic_thread to diagnostics::paths::thread, and
+ 	diagnostic_event to diagnostics::paths::event.
+ 	* diagnostic-format-html.h: Likewise.
+ 	* diagnostic-format-sarif.cc: Likewise.  Update PROPERTY_PREFIX
+ 	for threadFlowLocations from "gcc/diagnostic_event/" to
+ 	"gcc/diagnostics/paths/event/".
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic-format-text.h: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostic-event-id.h: Move to...
+ 	* diagnostics/event-id.h: ...here, updating header guard.
+ 	(diagnostics:paths:event_id_t): New typedef.
+ 	(diagnostic_thread_id_t): Replace with...
+ 	(diagnostics:paths:thread_id_t): New typedef.
+ 	* lazy-diagnostic-path.cc: Move to...
+ 	* diagnostics/lazy-paths.cc: ...here.  Update for above changes,
+ 	lazy_diagnostic_path becomes diagnostics::paths::lazy_path.
+ 	(lazy_diagnostic_path_cc_tests): Rename to...
+ 	(diagnostics_lazy_paths_cc_tests): ...this.
+ 	* lazy-diagnostic-path.h: Move to...
+ 	* diagnostics/lazy-paths.h: ...here, updating header guard.
+ 	Update for above changes.
+ 	* diagnostic-path-output.cc: Move to...
+ 	* diagnostics/paths-output.cc: ...here.  Update for above changes.
+ 	(diagnostic_path_output_cc_tests): Rename to...
+ 	(diagnostics_paths_output_cc_tests): ...this.
+ 	* diagnostic-path.cc: Move to...
+ 	* diagnostics/paths.cc: ...here.  Update for above changes.
+ 	* diagnostic-path.h: Move to...
+ 	* diagnostics/paths.h: ...here, updating header guard.
+ 	Update #include for moving "diagnostic-event-id.h" to
+ 	"diagnostics/event-id.h".
+ 	(class diagnostic_event): Convert to...
+ 	(class diagnostics::paths::event): ...this.
+ 	(class diagnostic_thread): Convert to...
+ 	(class diagnostics::paths::thread): ...this.
+ 	(class diagnostic_path): Convert to...
+ 	(class diagnostics::paths::path): ...this.
+ 	* diagnostic-show-locus.cc: Update for above changes.
+ 	* doc/analyzer.texi: Likewise.
+ 	* selftest-diagnostic-path.cc: Move to...
+ 	* diagnostics/selftest-paths.cc: ...here.  Update for
+ 	above changes, and for "selftest-diagnostic-path.h" moving to
+ 	"diagnostics/selftest-paths.h".
+ 	* selftest-diagnostic-path.h: Move to...
+ 	* diagnostics/selftest-paths.h: ...here, updating header guard.
+ 	Update for above changes.
+ 	* libgdiagnostics.cc: Update for above changes.
+ 	* libsarifreplay.cc: Update property prefix for
+ 	threadFlowLocations from "gcc/diagnostic_event/" to
+ 	"gcc/diagnostics/paths/event/".
+ 	* pretty-print-format-impl.h: Update for above changes.
+ 	* pretty-print.cc: Likewise.
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for
+ 	renaming of lazy_diagnostic_path_cc_tests to
+ 	diagnostics_lazy_paths_cc_tests, and of
+ 	diagnostic_path_output_cc_tests to
+ 	diagnostics_paths_output_cc_tests.
+ 	* selftest.h (lazy_diagnostic_path_cc_tests): Replace decl with...
+ 	(diagnostics_lazy_paths_cc_tests): ...this.
+ 	(diagnostic_path_output_cc_tests): Replace decl with...
+ 	(diagnostics_paths_output_cc_tests): ...this.
+ 	* simple-diagnostic-path.cc: Clarify that this relates to "tree"
+ 	and thus shouldn't be in "diagnostics".  Update for above changes.
+ 	* simple-diagnostic-path.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace diagnostic-output-spec.o
+ 	with diagnostics/output-spec.o.
+ 	* diagnostic-output-spec.cc: Move to...
+ 	* diagnostics/output-spec.cc: ...here.  Update #include for
+ 	move of diagnostic-output-spec.h to diagnostics/output-spec.h.
+ 	(namespace::diagnostics_output_spec): Replace with...
+ 	(namespace diagnostics::output_spec): ...this, removing redundant
+ 	prefixes.
+ 	(diagnostics_output_spec::gcc_spec_context): Replace with...
+ 	(diagnostics::output_spec::dc_spec_context): ...this.
+ 	(diagnostic_output_spec_cc_tests): Rename to...
+ 	(diagnostics_output_spec_cc_tests): ...this.
+ 	* diagnostic-output-spec.h: Move to...
+ 	* diagnostics/output-spec.h: ...here and update inclusion guard.
+ 	(namespace::diagnostics_output_spec): Replace with...
+ 	(namespace diagnostics::output_spec): ...this, removing redundant
+ 	prefixes.
+ 	(diagnostics_output_spec::gcc_spec_context): Replace with...
+ 	(diagnostics::output_spec::dc_spec_context): ...this.
+ 	* libgdiagnostics.cc: Update #include for move of
+ 	diagnostic-output-spec.h to diagnostics/output-spec.h.
+ 	* opts-diagnostic.cc: Likewise.  Update for namespace and name
+ 	changes.
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for renaming
+ 	of diagnostic_output_spec_cc_tests to
+ 	diagnostics_output_spec_cc_tests.
+ 	* selftest.h (diagnostic_output_spec_cc_tests): Rename decl to...
+ 	(diagnostics_output_spec_cc_tests): ...this.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc: Update #include for move of
+ 	diagnostic-output-file.h to diagnostics/output-file.h.  Update for
+ 	move of diagnostic_output_file to diagnostics::output_file.
+ 	* diagnostic-format-html.h: Likewise.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-format-sarif.h: Likewise.
+ 	* diagnostic-output-spec.cc: Likewise.
+ 	* diagnostic-output-spec.h (along): Likewise.
+ 	* diagnostic-output-file.h: Move to...
+ 	* diagnostics/output-file.h: ...here, updating header guard.
+ 	(class diagnostic_output_file): Move to...
+ 	(class diagnostics::output_file): ...here.
+ 	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for
+ 	move of diagnostic_output_file to diagnostics::output_file.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc: Update #include for move of
+ 	diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h.
+ 	* diagnostic-format-sarif.cc: Likewise.  Update for move of
+ 	diagnostic_client_plugin_info to diagnostics::client_plugin_info.
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostic-client-data-hooks.h: Move to...
+ 	* diagnostics/client-data-hooks.h: ...here, updating header guard.
+ 	(class diagnostic_client_data_hooks): Move to...
+ 	(class diagnostics::client_data_hooks): ...here.  Remove redundant
+ 	"diagnostics::" prefixes.
+ 	(class diagnostic_client_plugin_info): Move to...
+ 	(class diagnostics::client_plugin_info): ...here.
+ 	* libgdiagnostics.cc: : Update #include for move of
+ 	diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h.
+ 	Update for move of diagnostic_client_data_hooks to
+ 	diagnostics::client_data_hooks, and for move of
+ 	diagnostic_client_version_info to diagnostics::client_version_info.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 	* tree-diagnostic.cc: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace edit-context.o with
+ 	diagnostics/edit-context.o.
+ 	* diagnostic-format-html.cc: Update #include for move
+ 	of edit-context.h to diagnostics subdir.
+ 	* diagnostic.cc: Likewise.  Update for move of edit_context to
+ 	diagnostics::edit_context.
+ 	* diagnostic.h: Likewise.
+ 	* edit-context.cc: Move to...
+ 	* diagnostics/edit-context.cc: ...here.  Update #include for move
+ 	of edit-context.h to diagnostics subdir.  Move all code
+ 	within namespace diagnostics.
+ 	* edit-context.h: Move to...
+ 	* diagnostics/edit-context.h: ...here, updating header guard.
+ 	Move all code within namespace diagnostics.
+ 	* libgdiagnostics.cc: Update #include for move of edit-context.h
+ 	to diagnostics subdir.  Update for move of edit_context
+ 	to diagnostics::edit_context.
+ 	* toplev.cc: Update #include for move of edit-context.h
+ 	to diagnostics subdir.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc: Update for move of diagnostic_diagram
+ 	to diagnostics::diagram.
+ 	* diagnostic-format-sarif.cc: Update #include for move of
+ 	"diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move
+ 	of diagnostic_diagram to diagnostics::diagram.
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic-format-text.h: Update for move of diagnostic_diagram
+ 	to diagnostics::diagram.
+ 	* diagnostic-format.h: Likewise.
+ 	* diagnostic.cc: Update #include for move of
+ 	"diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move
+ 	of diagnostic_diagram to diagnostics::diagram.
+ 	* diagnostic.h: Update for move of diagnostic_diagram to
+ 	diagnostics::diagram.
+ 	* diagnostic-diagram.h: Move to...
+ 	* diagnostics/diagram.h: ...here.
+ 	(class diagnostic_diagram): Convert to...
+ 	(class diagnostics::diagram): ...this.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-core.h: Update for move of diagnostic_metadata to
+ 	diagnostics::metadata.
+ 	* diagnostic-format-html.cc: Likewise; also, update #include for
+ 	move of "diagnostic-metadata.h" to "diagnostics/metadata.h".
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic-global-context.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* diagnostic.h: Likewise.
+ 	* diagnostic-metadata.h: Move to...
+ 	* diagnostics/metadata.h: ...here, updating header guard.
+ 	(class diagnostic_metadata): Move to...
+ 	(class diagnostics::metadata): ...here.  Drop redundant
+ 	"diagnostics::" qualifiers.
+ 	* libgdiagnostics.cc: : Update #include for move of
+ 	"diagnostic-metadata.h" to "diagnostics/metadata.h", and update
+ 	for move of diagnostic_metadata to diagnostics::metadata.
+ 	* selftest-diagnostic.cc: Update for move of diagnostic_metadata
+ 	to diagnostics::metadata.
+ 	* selftest-diagnostic.h: Likewise.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Replace
+ 	selftest-logical-location.o with
+ 	diagnostics/selftest-logical-locations.o.
+ 	* diagnostic-client-data-hooks.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, and of logical_location
+ 	to diagnostics::logical_locations::key.
+ 	* diagnostic-format-html.cc: Add "using namespace diagnostics;",
+ 	and drop now-redundant "diagnostics::" prefixes.
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, of logical_location to
+ 	diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	* diagnostic-format-sarif.cc: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".  Add
+ 	"using namespace diagnostics;", and drop now-redundant
+ 	"diagnostics::" prefixes.
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, of logical_location to
+ 	diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	* diagnostic-format-sarif.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location to
+ 	diagnostics::logical_locations::key.
+ 	* diagnostic-path-output.cc: Add "using namespace diagnostics;".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, and
+ 	of logical_location to diagnostics::logical_locations::key,
+ 	* diagnostic-path.cc: Add "using namespace diagnostics;".
+ 	Update for conversion of logical_location to
+ 	diagnostics::logical_locations::key.
+ 	* diagnostic-path.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, and of logical_location
+ 	to diagnostics::logical_locations::key,
+ 	* diagnostic.cc: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	* diagnostic.h: Reorganize forward decls.
+ 	(class logical_location_manager): Replace this forward decl
+ 	with...
+ 	(class diagnostics::logical_locations::manager): ...this.
+ 	(diagnostic_context::get_logical_location_manager): Update
+ 	return type.
+ 	* diagnostics/digraphs.h: : Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location to
+ 	diagnostics::logical_locations::key.
+ 	* logical-location.h: Move to...
+ 	* diagnostics/logical-locations.h: ...here.
+ 	(enum class logical_location_kind): Convert to...
+ 	(enum class diagnostics::logical_locations::kind): ... this.
+ 	(class logical_location_manager::key): Convert to...
+ 	(class diagnostics::logical_locations::key): ... this.
+ 	(class logical_location_manager): Convert to...
+ 	(class diagnostics::logical_locations::manager): ... this.
+ 	(logical_location): Drop this typedef in favor of
+ 	diagnostics::logical_locations::key.
+ 	* selftest-logical-location.cc: Move to...
+ 	* diagnostics/selftest-logical-locations.cc: ...here.
+ 	Update #include for move of "selftest-logical-location.h" to
+ 	"diagnostics/selftest-logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, of logical_location to
+ 	diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	(selftest_logical_location_cc_tests): Rename to...
+ 	(diagnostics_selftest_logical_locations_cc_tests): ...this.
+ 	* selftest-logical-location.h: Move to...
+ 	* diagnostics/selftest-logical-locations.h: ...here, updating
+ 	include guard.
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, of logical_location to
+ 	diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	* diagnostics/state-graphs-to-dot.cc: Add
+ 	"using namespace diagnostics;" and drop now-redundant
+ 	"diagnostics::" prefixes.
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager.
+ 	* diagnostics/state-graphs.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager,
+ 	of logical_location to diagnostics::logical_locations::key.
+ 	* libgdiagnostics.cc: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, and of logical_location
+ 	to diagnostics::logical_locations::key.
+ 	* selftest-diagnostic-path.cc: Update for conversion of
+ 	logical_location to diagnostics::logical_locations::key.
+ 	* selftest-diagnostic-path.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location to
+ 	diagnostics::logical_locations::key.
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for
+ 	renaming of selftest_logical_location_cc_tests to
+ 	diagnostics_selftest_logical_locations_cc_tests.
+ 	* selftest.h: Likewise.
+ 	* simple-diagnostic-path.h: Update for conversion of
+ 	logical_location to diagnostics::logical_locations::key.
+ 	* tree-diagnostic-client-data-hooks.cc: Update for conversion of
+ 	logical_location_manager to
+ 	diagnostics::logical_locations::manager, and of logical_location
+ 	to diagnostics::logical_locations::key.
+ 	* tree-logical-location.cc: Update for conversions.
+ 	Update for conversion of logical_location to
+ 	diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 	* tree-logical-location.h: Update #include for move of
+ 	"logical-location.h" to "diagnostics/logical-locations.h".
+ 	Update for conversion of logical_location_manager to
+ 	diagnostics::logical_locations::manager, of logical_location
+ 	to diagnostics::logical_locations::key, and of
+ 	enum logical_location_kind to
+ 	enum diagnostics::logical_locations::kind.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Rename diagnostic-digraphs.o to
+ 	diagnostics/digraphs.o.  Rename diagnostic-state-graphs.o to
+ 	diagnostics/state-graphs.o.  Rename diagnostic-state-to-dot.o to
+ 	diagnostics/state-graphs-to-dot.o.
+ 	(PLUGIN_HEADERS): Add $(srcdir)/diagnostics/*.h.
+ 	(install-plugin:): Likewise.
+ 	* configure: Regenerate.
+ 	* configure.ac (gccdepdir): Add "diagnostics" to directories.
+ 	* diagnostic-format-html.cc: Update #includes for move of
+ 	"diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of
+ 	move of "diagnostic-state-graphs.h" to
+ 	"diagnostics/state-graphs.h".
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-path.cc: Likewise for state-graphs.h
+ 	* diagnostic-digraphs.cc: Move...
+ 	* diagnostics/digraphs.cc: ...to here.  Update #include
+ 	for renaming of digraphs.h.
+ 	(selftest::diagnostic_digraphs_cc_tests): Rename to...
+ 	(selftest::diagnostics_digraphs_cc_tests): ...this.
+ 	* diagnostic-digraphs.h: Move...
+ 	* diagnostics/digraphs.h: ...to here, updating header guard.
+ 	* diagnostic-state-to-dot.cc: Move...
+ 	* diagnostics/state-graphs-to-dot.cc: ...to here.  Update #include
+ 	of state-graphs.h.
+ 	* diagnostic-state-graphs.cc: Move...
+ 	* diagnostics/state-graphs.cc: ...to here.  Update #include
+ 	of state-graphs.h.
+ 	(selftest::diagnostic_state_graphs_cc_tests): Rename...
+ 	(selftest::diagnostics_state_graphs_cc_tests): ...to this.
+ 	* diagnostic-state-graphs.h: Move...
+ 	* diagnostics/state-graphs.h: ...to here, updating header guard.
+ 	* libgdiagnostics.cc: Update #includes for move of
+ 	"diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of
+ 	move of "diagnostic-state-graphs.h" to
+ 	"diagnostics/state-graphs.h".
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for
+ 	function renamings that reflect file renamings.
+ 	* selftest.h (selftest::diagnostic_digraphs_cc_tests): Rename
+ 	to...
+ 	(selftest::diagnostics_digraphs_cc_tests): ...this.
+ 	(selftest::diagnostic_state_graphs_cc_tests): Rename...
+ 	(selftest::diagnostics_state_graphs_cc_tests): ...to this.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_get_vec_defs): Remove overload
+ 	with operand vector type.  Remove stmt_vec_info and
+ 	ncopies argument.
+ 	* tree-vect-stmts.cc (vect_get_vec_defs): Likewise.
+ 	(vectorizable_conversion): Adjust by not passing in
+ 	vector types, stmt_vec_info and ncopies.
+ 	(vectorizable_bswap): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_scan_store): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 	* tree-vect-loop.cc (vect_transform_reduction): Likewise.
+ 	(vect_transform_lc_phi): Likewise.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_is_simple_use): Remove stmt-info
+ 	with vectype output overload and remove stmt-info argument
+ 	from SLP based API.
+ 	* tree-vect-loop.cc (vectorizable_lane_reducing): Remove
+ 	unused def_stmt_info output argument to vect_is_simple_use.
+ 	Adjust.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Get
+ 	the gather/scatter offset vector type from the SLP child.
+ 	(vect_check_scalar_mask): Remove stmt_info argument.  Adjust.
+ 	(vect_check_store_rhs): Likewise.
+ 	(vectorizable_call): Likewise.
+ 	(vectorizable_simd_clone_call): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	(vect_is_simple_cond): Remove stmt_info argument.  Adjust.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vect_is_simple_use): Remove overload and non-SLP path.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_model_simple_cost): Removed code
+ 	when no SLP node is passed, remove then unused dt and ndts
+ 	parameters and fix the number of vector stmts calculation.
+ 	(vectorizable_call): Adjust.
+ 	(vectorizable_simd_clone_call): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 
+ 2025-07-25  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (get_live_range):
+ 	Move compute_local_program_points to cost class.
+ 	(variable_vectorized_p): Add slp node parameter.
+ 	(need_additional_vector_vars_p): Move from here...
+ 	(costs::need_additional_vector_vars_p): ... to here and add slp
+ 	parameter.
+ 	(compute_estimated_lmul): Move update_local_live_ranges to cost
+ 	class.
+ 	(has_unexpected_spills_p): Move from here...
+ 	(costs::has_unexpected_spills_p): ... to here.
+ 	(costs::record_lmul_spills): New function.
+ 	(costs::add_stmt_cost): Add stmt_info, slp mapping.
+ 	(costs::finish_cost): Analyze loop.
+ 	* config/riscv/riscv-vector-costs.h: Move declarations to class.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Get vectype
+ 	from the SLP node.
+ 	(vectorize_fold_left_reduction): Likewise.
+ 	(vect_transform_reduction): Likewise.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vect_transform_lc_phi): Likewise.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Likewise.
+ 	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
+ 	Pass in vectype and use that.
+ 	(vect_use_strided_gather_scatters_p): Likewise.
+ 	(get_group_load_store_type): Adjust.
+ 	(vect_check_scalar_mask): We always have a SLP node.
+ 	Use vectype from the SLP node.
+ 	(vect_check_store_rhs): Likewise.
+ 	(vect_build_one_gather_load_call): Pass in the vector type
+ 	and use that.
+ 	(vect_get_strided_load_store_ops): Likewise.
+ 	(vectorizable_store): Adjust.
+ 	(vectorizable_load): Use the vector type from the SLP node
+ 	and adjust.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* target.h (stmt_vectype): Remove.
+ 	* tree-vect-stmts.cc (stmt_vectype): Likewise.
+ 
+ 2025-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (enum riscv_privilege_levels): Remove USER_MODE.
+ 	(riscv_handle_type_attribute): Remove "user" interrupts.
+ 	(riscv_expand_epilogue): Likewise.
+ 	(riscv_get_interrupt_type): Likewise.
+ 	* config/riscv/riscv.md (riscv_uret): Remove URET pattern.
+ 	* doc/extend.texi: Remove documentation of user interrupts.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_stmt_vec_info::vec_stmts): Remove.
+ 	(STMT_VINFO_VEC_STMTS): Likewise.
+ 	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not
+ 	initialize it.
+ 	(vec_info::free_stmt_vec_info): Nor free it.
+ 	* tree-vect-data-refs.cc (vect_vfa_access_size): Remove
+ 	check on STMT_VINFO_VEC_STMTS.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_transform_grouped_load): Remove.
+ 	(vect_record_grouped_load_vectors): Likewise.
+ 	* tree-vect-data-refs.cc (vect_permute_load_chain): Likewise.
+ 	(vect_shift_permute_load_chain): Likewise.
+ 	(vect_transform_grouped_load): Likewise.
+ 	(vect_record_grouped_load_vectors): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_load): Remove comments
+ 	about load interleaving.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_permute_store_chain): Remove.
+ 	* tree-vect-data-refs.cc (vect_permute_store_chain): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove comment
+ 	about store interleaving.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_get_vec_defs_for_operand): Remove.
+ 	* tree-vect-stmts.cc (vect_get_vec_defs_for_operand): Likewise.
+ 	(vect_get_vec_defs): Remove non-SLP path.
+ 	(check_load_store_for_partial_vectors): We always have an
+ 	SLP node.
+ 	(vect_check_store_rhs): Likewise.
+ 	(vect_get_gather_scatter_ops): Likewise.
+ 	(vect_create_vectorized_demotion_stmts): Likewise.
+ 	(vectorizable_store): Adjust.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (VMAT_CONTIGUOUS_PERMUTE): Remove.
+ 	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
+ 	Remove checks on VMAT_CONTIGUOUS_PERMUTE.
+ 	(vectorizable_load): Likewise.
+ 	(vectorizable_store): Likewise.  Prune dead code.
+ 
+ 2025-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove trivially
+ 	dead code.
+ 
+ 2025-07-25  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (TARGET_NO_MANUAL_NOPS,
+ 	TARGET_CDNA3_NOPS): Define.
+ 	* config/gcn/gcn.md (define_attr "laneselect): Change 'yes' to
+ 	'read' and 'write'.
+ 	(define_attr "flatmemaccess"): Add with values store, storex34,
+ 	load, atomic, atomicwait, cmpswapx2, and no. Replacing ...
+ 	(define_attr "delayeduse"): Remove.
+ 	(define_attr "transop"): Add with values yes and no.
+ 	(various insns): Update 'laneselect', add flatmemaccess and transop,
+ 	remove delayeduse; fixing an issue for s_load_dwordx4 vs.
+ 	flat_store_dwordx4 related to delayeduse (now: flatmemaccess).
+ 	* config/gcn/gcn-valu.md: Update laneselect attribute and add
+ 	flatmemaccess.
+ 	* config/gcn/gcn.cc (gcn_cmpx_insn_p): New.
+ 	(gcn_md_reorg): Update for MI300 to add additional s_nop.
+ 	Skip s_nop-insertion part for RDNA{2,3}; add "VALU writes EXEC
+ 	followed by VALU DPP" unconditionally for CDNA2/CDNA3/GCN5.
+ 
+ 2025-07-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR middle-end/121214
+ 	* genpreds.cc (constraint_max_namelen): Delete.
+ 	(write_tm_preds_h): Always write insn_constraint_len() and
+ 	define CONSTRAINT_LEN to it, i.e., remove guard
+ 	constraint_max_namelen>1.  Remove outer guard
+ 	constraint_max_namelen>0 and re-indent.
+ 	(write_insn_preds_c): Remove guard
+ 	constraint_max_namelen>0 and re-indent.
+ 
+ 2025-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv.cc (enum riscv_privilege_levels): Add
+ 	RNMI_MODE.
+ 	(riscv_handle_type_attribute): Handle 'rnmi' interrupt attribute.
+ 	(riscv_expand_epilogue): Generate nmret for RNMI handlers.
+ 	(riscv_get_interrupt_type): Handle 'rnmi' interrupt attribute.
+ 	* config/riscv/riscv.md (riscv_rnmi): Add nmret INSN.
+ 	* doc/extend.texi: Add documentation for 'rnmi' interrupt attribute.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vectorizable_induction): Remove
+ 	gimple **vec_stmt argument.
+ 	(vectorizable_phi): Likewise.
+ 	(vectorizable_recurr): Likewise.
+ 	(vectorizable_early_exit): Likewise.
+ 	* tree-vect-loop.cc (vectorizable_phi): Likewise and adjust.
+ 	(vectorizable_recurr): Likewise.
+ 	(vectorizable_nonlinear_induction): Likewise.
+ 	(vectorizable_induction): Likewise.
+ 	* tree-vect-stmts.cc (vectorizable_bswap): Likewise.
+ 	(vectorizable_call): Likewise.
+ 	(vectorizable_simd_clone_call): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_store): Likewise.
+ 	(vectorizable_load): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 	(vectorizable_comparison): Likewise.
+ 	(vectorizable_early_exit): Likewise.
+ 	(vect_analyze_stmt): Adjust.
+ 	(vect_transform_stmt): Likewise.
+ 	* tree-vect-slp.cc (vect_slp_analyze_operations): Adjust.
+ 	(vectorize_slp_instance_root_stmt): Likewise.
+ 
+ 2025-07-24  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* doc/cpp.texi (#ifdef): Correct typo.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_early_exit): Remove non-SLP
+ 	path.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (_stmt_vec_info::simd_clone_info): Remove.
+ 	(STMT_VINFO_SIMD_CLONE_INFO): Likewise.
+ 	* tree-vectorizer.cc (vec_info::free_stmt_vec_info): Do not
+ 	release it.
+ 	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Remove
+ 	non-SLP path.
+ 
+ 2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* internal-fn.cc (internal_fn_len_index): Adjust indices for new
+ 	alias_ptr param.
+ 	(internal_fn_else_index): Ditto.
+ 	(internal_fn_mask_index): Ditto.
+ 	(internal_fn_stored_value_index): Ditto.
+ 	(internal_fn_alias_ptr_index): Ditto.
+ 	(internal_fn_offset_index): Ditto.
+ 	(internal_fn_scale_index): Ditto.
+ 	(internal_gather_scatter_fn_supported_p): Ditto.
+ 	* internal-fn.h (internal_fn_alias_ptr_index): Ditto.
+ 	* optabs-query.cc (supports_vec_gather_load_p): Ditto.
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter): Add alias
+ 	pointer.
+ 	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Add
+ 	alias pointer.
+ 	* tree-vect-slp.cc (vect_get_operand_map): Adjust for alias
+ 	pointer.
+ 	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): Add
+ 	alias pointer and misalignment handling.
+ 	(get_load_store_type): Move from here...
+ 	(get_group_load_store_type): ...To here.
+ 	(vectorizable_store): Add alias pointer.
+ 	(vectorizable_load): Ditto.
+ 	* tree-vectorizer.h (struct gather_scatter_info): Ditto.
+ 
+ 2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment):
+ 	Return true for gather/scatter.
+ 	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* config/epiphany/epiphany.cc (epiphany_support_vector_misalignment):
+ 	Ditto.
+ 	* config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment):
+ 	Ditto.
+ 	* config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* config/riscv/riscv.cc (riscv_support_vector_misalignment):
+ 	Add gather/scatter argument.
+ 	* config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment):
+ 	Return true for gather/scatter.
+ 	* config/s390/s390.cc (s390_support_vector_misalignment):
+ 	Ditto.
+ 	* doc/tm.texi: Add argument.
+ 	* target.def: Ditto.
+ 	* targhooks.cc (default_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* targhooks.h (default_builtin_support_vector_misalignment):
+ 	Ditto.
+ 	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
+ 	Ditto.
+ 
+ 2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* tree-vect-slp.cc (GATHER_SCATTER_OFFSET): New define.
+ 	(vect_get_and_check_slp_defs): Use.
+ 	* tree-vectorizer.h (GATHER_SCATTER_LEGACY_P): New define.
+ 	(GATHER_SCATTER_IFN_P): Ditto.
+ 	(GATHER_SCATTER_EMULATED_P): Ditto.
+ 	* tree-vect-stmts.cc (vectorizable_store): Use.
+ 	(vectorizable_load): Use.
+ 
+ 2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* internal-fn.cc (expand_scatter_store_optab_fn): Use new
+ 	function.
+ 	(expand_gather_load_optab_fn): Ditto.
+ 	(internal_fn_offset_index): Ditto.
+ 	(internal_fn_scale_index): Ditto.
+ 	* internal-fn.h (internal_fn_offset_index): New function.
+ 	(internal_fn_scale_index): Ditto.
+ 	* tree-vect-data-refs.cc (vect_describe_gather_scatter_call):
+ 	Use new function.
+ 
+ 2025-07-24  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Remove unnecessary
+ 	casts to aggr_ptr_type.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_comparison_1): Remove
+ 	non-SLP path.
+ 	(vectorizable_comparison): Likewise.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_condition): Remove
+ 	non-SLP paths.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_scan_store): Remove
+ 	non-SLP path and unused parameters.
+ 	(vectorizable_store): Adjust.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_shift): Remove non-SLP paths.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_assignment): Remove
+ 	non-SLP paths.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_call): Remove non-SLP path.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_bswap): Remove non-SLP path.
+ 
+ 2025-07-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_recurr): Remove non-SLP path.
+ 
+ 2025-07-24  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
+ 	Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16.
+ 	(*cond_<optab><mode>_3_relaxed): Likewise.
+ 	(*cond_<optab><mode>_any_relaxed): Likwise.
+ 	(*cond_<optab><mode>_any_const_relaxed): Extend from SVE_FULL_F
+ 	to SVE_F.
+ 	(*cond_add<mode>_2_const_relaxed): Likewise.
+ 	(*cond_add<mode>_any_const_relaxed): Likewise.
+ 	(*cond_sub<mode>_3_const_relaxed): Likewise.
+ 	(*cond_sub<mode>_const_relaxed): Likewise.
+ 
+ 2025-07-24  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md: (@aarch64_sve_<optab><mode>):
+ 	Extend from SVE_FULL_F to SVE_F, use aarch64_predicate_operand.
+ 	(@aarch64_frecpe<mode>): Extend from SVE_FULL_F to SVE_F.
+ 	(@aarch64_frecps<mode>): Likewise.
+ 	(div<mode>3): Likewise, use aarch64_sve_fp_pred.
+ 	* config/aarch64/iterators.md: Add warnings above SVE_FP_UNARY
+ 	and SVE_FP_BINARY.
+ 
+ 2025-07-24  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>3): Extend from
+ 	SVE_FULL_F to SVE_F, use aarch64_sve_fp_pred.
+ 	(*post_ra_<sve_fp_op><mode>3): Extend from SVE_FULL_F to SVE_F.
+ 	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F,
+ 	use aarch64_predicate_operand (ADD/SUB/MUL/MAX/MIN).
+ 	(split for using unpredicated insns): Move SVE_RELAXED_GP into
+ 	the pattern, rather than testing for it in the condition.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_pred_<optab><mode>):
+ 	Extend from VNx8BF_ONLY to SVE_BF.
+ 
+ 2025-07-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Rename
+ 	from...
+ 	(*<sat_op_v_vdup>_vx_<mode>): Rename to...
+ 	(*<sat_op_vdup_v>_vx_<mode>): Rename to...
+ 	* config/riscv/riscv-protos.h (enum insn_flags): Add vxrm
+ 	RNE, ROD type.
+ 	(enum insn_type): Add RNE_P, ROD_P type.
+ 	(expand_vx_binary_vxrm_vec_vec_dup): Add new func decl.
+ 	(expand_vx_binary_vxrm_vec_dup_vec): Ditto.
+ 	* config/riscv/riscv-v.cc (get_insn_type_by_vxrm_val): Add
+ 	helper to get insn type by vxrm value.
+ 	(expand_vx_binary_vxrm_vec_vec_dup): Add new func impl
+ 	to expand vec + vec_dup pattern.
+ 	(expand_vx_binary_vxrm_vec_dup_vec): Ditto but for
+ 	vec_dup + vec pattern.
+ 	* config/riscv/vector-iterators.md: Add helper iterator
+ 	for sat vx combine.
+ 
+ 2025-07-23  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
+ 	Extend from SVE_FULL_F to SVE_F.
+ 	(*cond_<optab><mode>_any_relaxed): Likewise.
+ 
+ 2025-07-23  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (<optab><mode>2): Replace use of
+ 	aarch64_ptrue_reg with aarch64_sve_fp_pred.
+ 	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F,
+ 	and use aarch64_predicate_operand.
+ 	* config/aarch64/iterators.md: Split FABS/FNEG out of
+ 	SVE_COND_FP_UNARY (into new SVE_COND_FP_UNARY_BITWISE).
+ 
+ 2025-07-23  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md
+ 	(*cond_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>_relaxed):
+ 	New FCVT/SEL combiner pattern.
+ 	(*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx2SI_ONLY:mode>_relaxed):
+ 	New FCVTZ{S,U}/SEL combiner pattern.
+ 	(*cond_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>_relaxed):
+ 	New {S,U}CVTF/SEL combiner pattern.
+ 	(*cond_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>):
+ 	New FCVT/SEL combiner pattern.
+ 	(*cond_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>_relaxed):
+ 	New FCVTZ{S,U}/SEL combiner pattern.
+ 	* config/aarch64/iterators.md: New mode iterator for VNx2SI.
+ 
+ 2025-07-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/121073
+ 	* config/riscv/autovec-opt.md: Use new helpers.
+ 	* config/riscv/autovec.md: Ditto.
+ 	* config/riscv/predicates.md (strided_broadcast_mask_operand):
+ 	New predicate.
+ 	(strided_broadcast_operand): Ditto.
+ 	(any_broadcast_operand): Ditto.
+ 	* config/riscv/riscv-protos.h (expand_broadcast): Declare.
+ 	(expand_set_first): Ditto.
+ 	(expand_set_first_tu): Ditto.
+ 	(strided_broadcast_p): Ditto.
+ 	* config/riscv/riscv-string.cc (expand_vec_setmem): Use new
+ 	helpers.
+ 	* config/riscv/riscv-v.cc (expand_broadcast): New functionk.
+ 	(expand_set_first): Ditto.
+ 	(expand_set_first_tu): Ditto.
+ 	(expand_const_vec_duplicate): Use new helpers.
+ 	(expand_const_vector_duplicate_repeating): Ditto.
+ 	(expand_const_vector_duplicate_default): Ditto.
+ 	(sew64_scalar_helper): Ditto.
+ 	(expand_vector_init_merge_repeating_sequence): Ditto.
+ 	(expand_reduction): Ditto.
+ 	(strided_broadcast_p): New function.
+ 	(whole_reg_to_reg_move_p): Use new helpers.
+ 	* config/riscv/riscv-vector-builtins-bases.cc: Use either
+ 	broadcast or strided broadcast.
+ 	* config/riscv/riscv-vector-builtins.cc (function_expander::use_ternop_insn):
+ 	Ditto.
+ 	(function_expander::use_widen_ternop_insn): Ditto.
+ 	(function_expander::use_scalar_broadcast_insn): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h: Declare scalar
+ 	broadcast.
+ 	* config/riscv/vector.md (*pred_broadcast<mode>): Split into
+ 	regular and strided broadcast.
+ 	(*pred_broadcast<mode>_zvfh): Split.
+ 	(pred_broadcast<mode>_zvfh): Ditto.
+ 	(*pred_broadcast<mode>_zvfhmin): Ditto.
+ 	(@pred_strided_broadcast<mode>): Ditto.
+ 	(*pred_strided_broadcast<mode>): Ditto.
+ 	(*pred_strided_broadcast<mode>_zvfhmin): Ditto.
+ 
+ 2025-07-23  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/120119
+ 	* config/aarch64/cortex-a57-fma-steering.cc (func_fma_steering::analyze):
+ 	Skip if renaming fails.
+ 
+ 2025-07-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121220
+ 	* tree-ssa-sink.cc (statement_sink_location): For stores
+ 	handle sinking to paths ending in a store.  Skip loads
+ 	that do not use the store.
+ 
+ 2025-07-23  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/119085
+ 	* tree-sra.cc (sort_and_splice_var_accesses): Prevent total
+ 	scalarization if two incompatible aggregates access the same place.
+ 
+ 2025-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config.gcc <sparc*-*-solaris2*> (with_cpu): Default to ultrasparc3.
+ 
+ 2025-07-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
+ 	Check vectype is non-NULL before accessing it.
+ 
+ 2025-07-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/121216
+ 	* expr.cc (constant_byte_string): Check the string type
+ 	size fits an uhwi before converting to uhwi.
+ 
+ 2025-07-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/109267
+ 	* tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): If the first
+ 	non debug statement in the first (and only) basic block is a call
+ 	to __builtin_unreachable change it to a call to __builtin_trap or an
+ 	infinite loop.
+ 
+ 2025-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
+ 	Rewrite to capture insns that could be L32R machine instructions
+ 	wherever possible.
+ 	(xtensa_rtx_costs): Fix to consider that moves larger than a
+ 	natural word can take multiple L32R machine instructions.
+ 	(constantpool_address_p): Cosmetics.
+ 	* config/xtensa/xtensa.md (movdi_internal, movdf_internal):
+ 	Add missing insn attributes.
+ 
+ 2025-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md
+ 	(movsi_internal, movhi_internal, movsf_internal):
+ 	Change the value of the "type" attribute from "move" to "load"
+ 	when the source operand constraint is "Y".
+ 
+ 2025-07-22  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_check_gather_scatter): Swap
+ 	`base` and `off` in more scenarios. Also assert at the end of
+ 	the function that `base` and `off` are loop-invariant and not
+ 	loop-invariant respectively.
+ 
+ 2025-07-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/generic-vector-ooo.md: Restrict insn reservations to
+ 	generic_ooo and generic tuning models.
+ 
+ 2025-07-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121202
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Do not take
+ 	an out-of-region stmt as "last".
+ 
+ 2025-07-22  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* genpreds.cc (write_insn_constraint_len): Replace rawmemchr by
+ 	a loop.
+ 
+ 2025-07-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/mips-p8700.md: Add support for "ghost" insn types.
+ 	* config/riscv/xiangshan.md: Add support for "sf_vc" and "sf_vc_se"
+ 	insn types.
+ 
+ 2025-07-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/110949
+ 	PR tree-optimization/95906
+ 	* match.pd (cmp - 1): New pattern.
+ 
+ 2025-07-21  Andreas Schwab  <schwab@suse.de>
+ 
+ 	PR target/121121
+ 	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
+ 	Use temp2 instead of temp1 for the CFA note.
+ 
+ 2025-07-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Allow VLS DImode for sat_op vx pattern.
+ 
+ 2025-07-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Add
+ 	pattern for vaaddu.vx combine.
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add UNSPEC
+ 	handling for UNSPEC_VAADDU.
+ 	(riscv_rtx_costs): Ditto.
+ 
+ 2025-07-21  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
+ 	Enable only when optimizing for size.
+ 
+ 2025-07-21  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Add extra_cost values
+ 	only when speed is true for CONST_VECTOR, VEC_DUPLICATE, VEC_SELECT
+ 	cases.
+ 	* config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs,
+ 	thunderx_extra_costs, thunderx2t99_extra_costs,
+ 	thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs,
+ 	ampere1_extra_costs, ampere1a_extra_costs, ampere1b_extra_costs):
+ 	Reduce cost of movi, dup, extract fields by COSTS_N_INSNS (1).
+ 	* config/arm/aarch-cost-tables.h (generic_extra_costs,
+ 	cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs,
+ 	exynosm1_extra_costs, xgene1_extra_costs): Likewise.
+ 
+ 2025-07-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121194
+ 	* tree-vect-loop.cc (vectorizable_lc_phi): Verify
+ 	vector types are compatible.
+ 
+ 2025-07-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md (gather_load<mode><vndi>): New.
+ 	(scatter_store<mode><vndi>): New.
+ 	(mask_gather_load<mode><vndi>): New.
+ 	(mask_scatter_store<mode><vndi>): New.
+ 	* config/gcn/gcn.cc (gcn_expand_scaled_offsets): Support DImode.
+ 
+ 2025-07-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn.cc (GEN_VNM_NOEXEC): Use USE_QHF.
+ 	(GEN_VNM): Likewise, and call for new ashl and mul variants.
+ 
+ 2025-07-21  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md (add<mode>3_dup): New.
+ 	(add<mode>3_dup_exec): New.
+ 	(<su>mul<mode>3_highpart_dup<exec>): New.
+ 	(mul<mode>3_dup): Move the vec_duplicate to operand 1.
+ 	(mul<mode>3_dup_exec): New.
+ 	(vec_series<mode>): Adjust call to gen_mul<mode>3_dup.
+ 	* config/gcn/gcn.cc (gcn_expand_vector_init): Likewise.
+ 
+ 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* genoutput.cc (main): Emit function
+ 	verify_reg_names_in_constraints() for run-time validation.
+ 	(mdep_constraint_len): Deal with hard register constraints.
+ 	* output.h (verify_reg_names_in_constraints): New function
+ 	declaration.
+ 	* toplev.cc (backend_init): If checking is enabled, call into
+ 	verify_reg_names_in_constraints().
+ 
+ 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* cfgexpand.cc (n_occurrences): Move this ...
+ 	(check_operand_nalternatives): and this ...
+ 	(expand_asm_stmt): and the call to gimplify.cc.
+ 	* config/s390/s390.cc (s390_md_asm_adjust): Pass null pointer to
+ 	parse_{input,output}_constraint().
+ 	* gimple-walk.cc (walk_gimple_asm): Pass null pointer to
+ 	parse_{input,output}_constraint().
+ 	(walk_stmt_load_store_addr_ops): Ditto.
+ 	* gimplify-me.cc (gimple_regimplify_operands): Ditto.
+ 	* gimplify.cc (num_occurrences): Moved from cfgexpand.cc.
+ 	(num_alternatives): Ditto.
+ 	(gimplify_asm_expr): Deal with hard register constraints.
+ 	* stmt.cc (eliminable_regno_p): New helper.
+ 	(hardreg_ok_p): Perform a similar check as done in
+ 	make_decl_rtl().
+ 	(parse_output_constraint): Add parameter for gimplify_reg_info
+ 	and validate hard register constrained operands.
+ 	(parse_input_constraint): Ditto.
+ 	* stmt.h (class gimplify_reg_info): Forward declaration.
+ 	(parse_output_constraint): Add parameter.
+ 	(parse_input_constraint): Ditto.
+ 	* tree-ssa-operands.cc
+ 	(operands_scanner::get_asm_stmt_operands): Pass null pointer
+ 	to parse_{input,output}_constraint().
+ 	* tree-ssa-structalias.cc (find_func_aliases): Pass null pointer
+ 	to parse_{input,output}_constraint().
+ 	* varasm.cc (assemble_asm): Pass null pointer to
+ 	parse_{input,output}_constraint().
+ 	* gimplify_reg_info.h: New file.
+ 
+ 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/cris/cris.cc (cris_md_asm_adjust): Deal with hard
+ 	register constraint.
+ 	* config/i386/i386.cc (map_egpr_constraints): Ditto.
+ 	* config/s390/s390.cc (f_constraint_p): Ditto.
+ 	* doc/extend.texi: Document hard register constraints.
+ 	* doc/md.texi: Ditto.
+ 	* function.cc (match_asm_constraints_2): Have a unique pseudo
+ 	for each operand with a hard register constraint.
+ 	(pass_match_asm_constraints::execute): Calling into new helper
+ 	match_asm_constraints_2().
+ 	* genoutput.cc (mdep_constraint_len): Return the length of a
+ 	hard register constraint.
+ 	* genpreds.cc (write_insn_constraint_len): Support hard register
+ 	constraints for insn_constraint_len().
+ 	* ira.cc (valid_replacement_for_asm_input_p_1): New helper.
+ 	(valid_replacement_for_asm_input_p): New helper.
+ 	(decrease_live_ranges_number): Similar to
+ 	match_asm_constraints_2() ensure that each operand has a unique
+ 	pseudo if constrained by a hard register.
+ 	* lra-constraints.cc (process_alt_operands): Install hard
+ 	register filter according to constraint.
+ 	* recog.cc (asm_operand_ok): Accept register type for hard
+ 	register constrained asm operands.
+ 	(constrain_operands): Validate hard register constraints.
+ 	* stmt.cc (decode_hard_reg_constraint): Parse a hard register
+ 	constraint into the corresponding register number or bail out.
+ 	(parse_output_constraint): Parse hard register constraint and
+ 	set *ALLOWS_REG.
+ 	(parse_input_constraint): Ditto.
+ 	* stmt.h (decode_hard_reg_constraint): Declaration of new
+ 	function.
+ 
+ 2025-07-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_analyze_data_refs): Remove min_vf
+ 	output.
+ 	* tree-vect-data-refs.cc (vect_analyze_data_refs): Likewise.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Remove early
+ 	out based on bogus min_vf.
+ 	* tree-vect-slp.cc (vect_slp_analyze_bb_1): Adjust.
+ 
+ 2025-07-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Add (const_int 1) as the op2 of
+ 	ashiftrt.
+ 
+ 2025-07-19  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	PR target/121124
+ 	* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Handle the
+ 	ctable base address as signed 32-bit value, and sign-extend to
+ 	HOST_WIDE_INT.
+ 	* config/pru/pru-protos.h (struct pru_ctable_entry): Store the
+ 	ctable base address as signed.
+ 	(pru_get_ctable_exact_base_index): Pass base address as signed.
+ 	(pru_get_ctable_base_index): Ditto.
+ 	(pru_get_ctable_base_offset): Ditto.
+ 	* config/pru/pru.cc (pru_get_ctable_exact_base_index): Ditto.
+ 	(pru_get_ctable_base_index): Ditto.
+ 	(pru_get_ctable_base_offset): Ditto.
+ 	(pru_print_operand_address): Ditto.
+ 
+ 2025-07-19  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*vfwnmacc_vf_<mode>): New pattern.
+ 	(*vfwnmsac_vf_<mode>): New pattern.
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add support for a
+ 	vec_duplicate in a neg.
+ 
+ 2025-07-19  Artemiy Volkov  <artemiyv@acm.org>
+ 
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Protect
+ 	from a NULL PREV_SET or CURR_SET.
+ 
+ 2025-07-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-passes.cc (avr_optimize_casesi): Fuse
+ 	get_insns() with end_sequence().
+ 
+ 2025-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (avg<mode>3_ceil): Add new pattern
+ 	of avg3_ceil for RVV DImode
+ 
+ 2025-07-18  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117423
+ 	* tree-sra.cc (analyze_access_subtree): Fix computation of grp_covered
+ 	flag.
+ 
+ 2025-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121126
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Analyze the
+ 	live lane extract for LC PHIs that are vect_internal_def.
+ 
+ 2025-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_live_operation_1):
+ 	Remove stmt_info and ncopies parameters.  Remove !slp_node
+ 	paths.
+ 	(vectorizable_live_operation): Remove !slp_node paths.
+ 
+ 2025-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120924
+ 	* params.opt (uninit-max-chain-len): Up from 8 to 12.
+ 
+ 2025-07-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121048
+ 	* tree-vect-loop.cc (vect_determine_vectype_for_stmt_1):
+ 	Remove rejecting vector(1) vector types.
+ 	(vect_set_stmts_vectype): Likewise.
+ 	* tree-vect-slp.cc (vect_make_slp_decision): Only
+ 	count instances with non-vector(1) root towards whether
+ 	we have any interesting instances to vectorize.
+ 
+ 2025-07-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/121131
+ 	* gimple-fold.cc (fold_nonarray_ctor_reference): Use
+ 	TREE_INT_CST_LOW (TYPE_SIZE ()) instead of
+ 	GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE ()) for BLKmode BITINT_TYPEs.
+ 	Don't compute encoding_size at all for little endian targets.
+ 
+ 2025-07-17  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/121095
+ 	* gcse.cc (execute_hardreg_pre): Skip if the hardreg which is never live.
+ 
+ 2025-07-17  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* tree-ssa-structalias.cc (lookup_vi_for_tree): Fix GNU style.
+ 	(process_constraint): Fix GNU style.
+ 	(get_constraint_for_component_ref): Fix GNU style.
+ 	(get_constraint_for_1): Fix GNU style.
+ 	(get_function_part_constraint): Fix GNU style.
+ 	(handle_lhs_call): Fix GNU style.
+ 	(find_func_aliases_for_builtin_call): Fix GNU style.
+ 	(find_func_aliases): Fix GNU style.
+ 	(find_func_clobbers): Fix GNU style.
+ 	(struct shared_bitmap_hasher): Fix GNU style.
+ 	(shared_bitmap_hasher::hash): Fix GNU style.
+ 	(pt_solution_includes_global): Fix GNU style.
+ 	(init_base_vars): Fix GNU style.
+ 	(visit_loadstore): Fix GNU style.
+ 	(compute_dependence_clique): Fix GNU style.
+ 	(struct pt_solution): Fix GNU style.
+ 	(ipa_pta_execute): Fix GNU style.
+ 
+ 2025-07-17  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* pta-andersen.cc (struct constraint_graph): Fix GNU style.
+ 	(constraint_equal): Fix GNU style.
+ 	(set_union_with_increment): Fix GNU style.
+ 	(insert_into_complex): Fix GNU style.
+ 	(merge_node_constraints): Fix GNU style.
+ 	(unify_nodes): Fix GNU style.
+ 	(do_ds_constraint): Fix GNU style.
+ 	(scc_info::scc_info): Fix GNU style.
+ 	(find_indirect_cycles): Fix GNU style.
+ 	(equiv_class_lookup_or_add): Fix GNU style.
+ 	(label_visit): Fix GNU style.
+ 	(dump_pred_graph): Fix GNU style.
+ 	(perform_var_substitution): Fix GNU style.
+ 	(eliminate_indirect_cycles): Fix GNU style.
+ 	(solve_graph): Fix GNU style.
+ 	(solve_constraints): Fix GNU style.
+ 	* tree-ssa-structalias.cc (first_vi_for_offset): Fix GNU style.
+ 	(debug_constraint): Fix GNU style.
+ 	* tree-ssa-structalias.h (struct constraint_expr): Fix GNU
+ 	style.
+ 	(struct variable_info): Fix GNU style.
+ 
+ 2025-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_ternlog): Don't change
+ 	mode for XOR.
+ 
+ 2025-07-17  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* Makefile.in: Add pta-andersen.o.
+ 	* tree-ssa-structalias.cc (create_variable_info_for): Just move
+ 	around.
+ 	(unify_nodes): Move to pta-andersen.cc.
+ 	(struct constraint): Move to tree-ssa-structalias.h.
+ 	(EXECUTE_IF_IN_NONNULL_BITMAP): Move to pta-andersen.cc.
+ 	(struct variable_info): Move to tree-ssa-structalias.h.
+ 	(struct constraint_stats): Move to tree-ssa-structalias.h.
+ 	(first_vi_for_offset): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(first_or_preceding_vi_for_offset): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(dump_constraint): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(debug_constraint): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(dump_constraints): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(debug_constraints): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(lookup_vi_for_tree): Move around inside tree-ssa-structalias.cc.
+ 	(type_can_have_subvars): Move around inside tree-ssa-structalias.cc.
+ 	(make_param_constraints): Move around inside tree-ssa-structalias.cc.
+ 	(dump_solution_for_var): External linkage, move to namespace
+ 	pointer_analysis.  find (...) -> var_rep[...].
+ 	(get_varinfo): Move to tree-ssa-structalias.h.
+ 	(debug_solution_for_var): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(vi_next): Move to tree-ssa-structalias.h.
+ 	(dump_sa_stats): External linkage, move to namespace pointer_analysis.
+ 	(new_var_info): Just move around.
+ 	(dump_sa_points_to_info): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(debug_sa_points_to_info): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(get_call_vi): Just move around.
+ 	(dump_varinfo): External linkage, move to namespace pointer_analysis.
+ 	(lookup_call_use_vi): Just move around.
+ 	(lookup_call_clobber_vi): Just move around.
+ 	(get_call_use_vi): Just move around.
+ 	(get_call_clobber_vi): Just move around.
+ 	(enum constraint_expr_type): Move to tree-ssa-structalias.h.
+ 	(struct constraint_expr): Move to tree-ssa-structalias.h.
+ 	(UNKNOWN_OFFSET): Move to tree-ssa-structalias.h.
+ 	(get_constraint_for_1): Just move around.
+ 	(get_constraint_for): Just move around.
+ 	(get_constraint_for_rhs): Just move around.
+ 	(do_deref): Just move around.
+ 	(constraint_pool): Just move around.
+ 	(struct constraint_graph): Move to pta-andersen.h.
+ 	(FIRST_REF_NODE): Move to pta-andersen.cc.
+ 	(LAST_REF_NODE): Move to pta-andersen.cc.
+ 	(find): Move to pta-andersen.cc.
+ 	(unite): Move to pta-andersen.cc.
+ 	(new_constraint): Just move around.
+ 	(debug_constraint_graph): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(debug_varinfo): External linkage, move to namespace pointer_analysis.
+ 	(debug_varmap): External linkage, move to namespace pointer_analysis.
+ 	(dump_constraint_graph): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(constraint_expr_equal): Move to pta-andersen.cc.
+ 	(constraint_expr_less): Move to pta-andersen.cc.
+ 	(constraint_less): Move to pta-andersen.cc.
+ 	(constraint_equal): Move to pta-andersen.cc.
+ 	(constraint_vec_find): Move to pta-andersen.cc.
+ 	(constraint_set_union): Move to pta-andersen.cc.
+ 	(solution_set_expand): Move to pta-andersen.cc.
+ 	(set_union_with_increment): Move to pta-andersen.cc.
+ 	(insert_into_complex): Move to pta-andersen.cc.
+ 	(merge_node_constraints): Move to pta-andersen.cc.
+ 	(clear_edges_for_node): Move to pta-andersen.cc.
+ 	(merge_graph_nodes): Move to pta-andersen.cc.
+ 	(add_implicit_graph_edge): Move to pta-andersen.cc.
+ 	(add_pred_graph_edge): Move to pta-andersen.cc.
+ 	(add_graph_edge): Move to pta-andersen.cc.
+ 	(init_graph): Move to pta-andersen.cc.  Initialize
+ 	predbitmap_obstack here.
+ 	(build_pred_graph): Move to pta-andersen.cc.
+ 	(build_succ_graph): Move to pta-andersen.cc.
+ 	(class scc_info): Move to pta-andersen.cc.
+ 	(scc_visit): Move to pta-andersen.cc.
+ 	(solve_add_graph_edge): Move to pta-andersen.cc.
+ 	(do_sd_constraint): Move to pta-andersen.cc.
+ 	(do_ds_constraint): Move to pta-andersen.cc.
+ 	(do_complex_constraint): Move to pta-andersen.cc.
+ 	(scc_info::scc_info): Move to pta-andersen.cc.
+ 	(scc_info::~scc_info): Move to pta-andersen.cc.
+ 	(find_indirect_cycles): Move to pta-andersen.cc.
+ 	(topo_visit): Move to pta-andersen.cc.
+ 	(compute_topo_order): Move to pta-andersen.cc.
+ 	(struct equiv_class_hasher): Move to pta-andersen.cc.
+ 	(equiv_class_hasher::hash): Move to pta-andersen.cc.
+ 	(equiv_class_hasher::equal): Move to pta-andersen.cc.
+ 	(equiv_class_lookup_or_add): Move to pta-andersen.cc.
+ 	(condense_visit): Move to pta-andersen.cc.
+ 	(label_visit): Move to pta-andersen.cc.
+ 	(dump_pred_graph): External linkage, move to namespace
+ 	pointer_analysis.
+ 	(dump_varmap): External linkage, move to namespace pointer_analysis.
+ 	(perform_var_substitution): Move to pta-andersen.cc.
+ 	(free_var_substitution_info): Move to pta-andersen.cc.
+ 	(find_equivalent_node): Move to pta-andersen.cc.
+ 	(unite_pointer_equivalences): Move to pta-andersen.cc.
+ 	(move_complex_constraints): Move to pta-andersen.cc.
+ 	(rewrite_constraints): Move to pta-andersen.cc.
+ 	(eliminate_indirect_cycles): Move to pta-andersen.cc.
+ 	(solve_graph): Move to pta-andersen.cc.
+ 	(set_uids_in_ptset): find (...) -> var_rep[...].
+ 	(find_what_var_points_to): find (...) -> var_rep[...].
+ 	(init_alias_vars): Don't initialize predbitmap_obstack here.
+ 	(remove_preds_and_fake_succs): Move to pta-andersen.cc.
+ 	(solve_constraints): Move to pta-andersen.cc.  Call
+ 	delete_graph() at the end.
+ 	(delete_points_to_sets): Don't delete graph here.  Delete var_rep here.
+ 	(visit_loadstore): find (...) -> var_rep[...].
+ 	(compute_dependence_clique): find (...) -> var_rep[...].
+ 	(ipa_pta_execute): find (...) -> var_rep[...].
+ 	* pta-andersen.cc: New file.
+ 	* pta-andersen.h: New file.
+ 	* tree-ssa-structalias.h: New file.
+ 
+ 2025-07-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 	    Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* doc/sourcebuild.texi (aarch64_sme_hw): Document.
+ 
+ 2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.md (signbit_tdc): Rename expander.
+ 	(signbit<mode>2): New expander.
+ 	(signbit<mode>2_z10): New expander.
+ 
+ 2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.cc (s390_register_move_cost): Add costing for
+ 	vlvg/vlgv.
+ 
+ 2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md (bhfgq): Add scalar modes.
+ 	(*movdi<mode>_zero_extend_A): New insn.
+ 	(*movsi<mode>_zero_extend_A): New insn.
+ 	(*movdi<mode>_zero_extend_B): New insn.
+ 	(*movsi<mode>_zero_extend_B): New insn.
+ 
+ 2025-07-17  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/121064
+ 	* config/loongarch/lsx.md (lsx_vshuf_<lsxfmt_f>): Add '@' to
+ 	generate a mode-aware helper.  Use <VIMODE> as the mode of the
+ 	operand 1 (selector).
+ 	* config/loongarch/lasx.md (lasx_xvshuf_<lasxfmt_f>): Likewise.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_try_expand_lsx_vshuf_const): Create a new pseudo for
+ 	the selector.  Use the mode-aware helper to simplify the code.
+ 	(loongarch_expand_vec_perm_const): Likewise.
+ 
+ 2025-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_tree_1): Reject
+ 	single-lane vector types.
+ 
+ 2025-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121035
+ 	* tree-ssa-pre.cc (find_or_generate_expression): Handle
+ 	values without expression.
+ 
+ 2025-07-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-state-to-dot.cc (state_diagram::m_show_tags): Drop
+ 	unused field.
+ 
+ 2025-07-16  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_omp_affinity): Use OMP_ITERATOR_DECL_P.
+ 	(compute_omp_iterator_count): New.
+ 	(build_omp_iterator_loop): New.
+ 	(gimplify_omp_depend): Use OMP_ITERATOR_DECL_P,
+ 	compute_omp_iterator_count and build_omp_iterator_loop.
+ 	* tree-inline.cc (copy_tree_body_r): Use OMP_ITERATOR_DECL_P.
+ 	* tree-pretty-print.cc (dump_omp_clause): Likewise.
+ 	* tree.h (OMP_ITERATOR_DECL_P): New macro.
+ 
+ 2025-07-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/121062
+ 	* config/i386/i386.cc (ix86_convert_const_vector_to_integer):
+ 	Handle E_V1SImode and E_V1DImode.
+ 	* config/i386/mmx.md (V_16_32_64): Add V1SI, V2BF and V1DI.
+ 	(mmxinsnmode): Add V1DI and V1SI.
+ 	Add V_16_32_64 splitter for constant vector loads from constant
+ 	vector pool.
+ 	(V_16_32_64:*mov<mode>_imm): Moved after V_16_32_64 splitter.
+ 	Replace lowpart_subreg with adjust_address.
+ 
+ 2025-07-16  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120881
+ 	PR testsuite/121078
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Warn -pg without -mfentry only on glibc targets.
+ 
+ 2025-07-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move):
+ 	Use MEM_P predicate instead of open coding it.
+ 	(ix86_erase_embedded_rounding):
+ 	Use NONJUMP_INSN_P predicate instead of open coding it.
+ 	* config/i386/i386-features.cc (convertible_comparison_p):
+ 	Use REG_P predicate instead of open coding it.
+ 	* config/i386/i386.cc (ix86_rtx_costs):
+ 	Use SUBREG_P predicate instead of open coding it.
+ 
+ 2025-07-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (symbolic_reference_mentioned_p):
+ 	Use LABEL_REF_P predicate instead of open coding it.
+ 	(ix86_legitimate_constant_p): Ditto.
+ 	(legitimate_pic_address_disp_p): Ditto.
+ 	(ix86_legitimate_address_p): Ditto.
+ 	(legitimize_pic_address): Ditto.
+ 	(ix86_print_operand): Ditto.
+ 	(ix86_print_operand_address_as): Ditto.
+ 	(ix86_rip_relative_addr_p): Ditto.
+ 	* config/i386/i386.h (SYMBOLIC_CONST): Ditto.
+ 	* config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto.
+ 	* config/i386/predicates.md (symbolic_operand): Ditto.
+ 	(local_symbolic_operand): Ditto.
+ 	(vsib_address_operand): Ditto.
+ 
+ 2025-07-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_move):
+ 	Use SYMBOL_REF_P predicate instead of open coding it.
+ 	(ix86_split_long_move): Ditto.
+ 	(construct_plt_address): Ditto.
+ 	(ix86_expand_call): Ditto.
+ 	(ix86_notrack_prefixed_insn_p): Ditto.
+ 	* config/i386/i386-features.cc
+ 	(rest_of_insert_endbr_and_patchable_area): Ditto.
+ 	* config/i386/i386.cc (symbolic_reference_mentioned_p): Ditto.
+ 	(ix86_force_load_from_GOT_p): Ditto.
+ 	(ix86_legitimate_constant_p): Ditto.
+ 	(legitimate_pic_operand_p): Ditto.
+ 	(legitimate_pic_address_disp_p): Ditto.
+ 	(ix86_legitimate_address_p): Ditto.
+ 	(legitimize_pic_address): Ditto.
+ 	(ix86_legitimize_address): Ditto.
+ 	(ix86_delegitimize_tls_address): Ditto.
+ 	(ix86_print_operand): Ditto.
+ 	(ix86_print_operand_address_as): Ditto.
+ 	(ix86_rip_relative_addr_p): Ditto.
+ 	(symbolic_base_address_p): Ditto.
+ 	* config/i386/i386.h (SYMBOLIC_CONST): Ditto.
+ 	* config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto.
+ 	* config/i386/predicates.md (symbolic_operand): Ditto.
+ 	(local_symbolic_operand): Ditto.
+ 	(local_func_symbolic_operand): Ditto.
+ 
+ 2025-07-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_expand_vector_logical_operator):
+ 	Use CONST_VECTOR_P instead of open coding it.
+ 	(ix86_expand_int_sse_cmp): Ditto.
+ 	(ix86_extract_perm_from_pool_constant): Ditto.
+ 	(ix86_split_to_parts): Ditto.
+ 	(const_vector_equal_evenodd_p): Ditto.
+ 	* config/i386/i386.cc (ix86_print_operand): Ditto.
+ 	* config/i386/predicates.md (zero_extended_scalar_load_operand): Ditto.
+ 	(float_vector_all_ones_operand): Ditto.
+ 	* config/i386/sse.md (avx512vl_vextractf128<mode>): Ditto.
+ 
+ 2025-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121049
+ 	* internal-fn.h (widening_evenodd_fn_p): Declare.
+ 	* internal-fn.cc (widening_evenodd_fn_p): New function.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): When using
+ 	an even/odd widening function disable loop masking.
+ 
+ 2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/119920
+ 	PR tree-optimization/112324
+ 	PR tree-optimization/110015
+ 	* tree-if-conv.cc (find_different_opnum): New function.
+ 	(factor_out_operators): New function.
+ 	(predicate_scalar_phi): Call factor_out_operators when
+ 	there is only 2 elements of a phi.
+ 
+ 2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-if-conv.cc (fold_build_cond_expr): Return early if lhs and rhs
+ 	are the same.
+ 
+ 2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-if-conv.cc (combine_blocks): Remove predicated
+ 	dynamic array.
+ 
+ 2025-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121116
+ 	* tree-vect-loop.cc (vectorizable_induction): Use the
+ 	step vector element type for further processing.
+ 
+ 2025-07-16  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md (add<mode>3_vcc_dup<exec_vcc>): Change
+ 	operand 2 to allow gcn_alu_operand.  Swap the operands in the VCC
+ 	update RTL.
+ 	(add<mode>3_vcc_zext_dup): Likewise.
+ 	(add<mode>3_vcc_zext_dup_exec): Likewise.
+ 	(add<mode>3_vcc_zext_dup2): Likewise.
+ 	(add<mode>3_vcc_zext_dup2_exec): Likewise.
+ 
+ 2025-07-16  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	PR target/117850
+ 	* config/aarch64/aarch64-builtins.cc (LO_HI_PAIRINGS): New, group the
+ 	lo/hi pairs from aarch64-builtin-pairs.def.
+ 	(aarch64_get_highpart_builtin): New function.
+ 	(aarch64_v128_highpart_ref): New function, helper to look for vector
+ 	highparts.
+ 	(aarch64_build_vector_cst): New function, helper to build duplicated
+ 	VECTOR_CSTs.
+ 	(aarch64_fold_lo_call_to_hi): New function.
+ 	(aarch64_general_gimple_fold_builtin): Add cases for the lo builtins
+ 	in aarch64-builtin-pairs.def.
+ 	* config/aarch64/aarch64-builtin-pairs.def: New file, declare the
+ 	parirs of lowpart-operating and highpart-operating builtins.
+ 
+ 2025-07-16  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* tree.cc (get_clone_versions): New function.
+ 	(get_clone_attr_versions): New function.
+ 	(get_version): New function.
+ 	* tree.h (get_clone_versions): New function.
+ 	(get_clone_attr_versions): New function.
+ 	(get_target_version): New function.
+ 
+ 2025-07-16  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* attribs.cc (make_attribute): Change arguments.
+ 	* attribs.h (make_attribute): Change arguments.
+ 
+ 2025-07-16  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* pretty-print.cc (format_phase_2): Add support for string_slice.
+ 	* vec.cc (string_slice::tokenize): New static method.
+ 	(string_slice::strcmp): New static method.
+ 	(string_slice::strip): New method.
+ 	(test_string_slice_initializers): New test.
+ 	(test_string_slice_tokenize): Ditto.
+ 	(test_string_slice_strcmp): Ditto.
+ 	(test_string_slice_equality): Ditto.
+ 	(test_string_slice_inequality): Ditto.
+ 	(test_string_slice_invalid): Ditto.
+ 	(test_string_slice_strip): Ditto.
+ 	(vec_cc_tests): Add new tests.
+ 	* vec.h (class string_slice): New class.
+ 
+ 2025-07-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR middle-end/121065
+ 	* cfgexpand.cc (expand_debug_expr): Allow fixed-point modes for
+ 	RDIV_EXPR.
+ 	* optabs-tree.cc (optab_for_tree_code): Ditto.
+ 
+ 2025-07-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/120297
+ 	* config/riscv/riscv-vsetvl.def: Do not forget ratio demand of
+ 	previous vsetvl.
+ 
+ 2025-07-16  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_bsl2n_eon<mode>):
+ 	New pattern.
+ 	(*aarch64_sve2_eon_bsl2n_unpred<mode>): Likewise.
+ 
+ 2025-07-16  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_unpred_nor<mode>):
+ 	New define_insn.
+ 	(*aarch64_sve2_nand_unpred<mode>): Likewise.
+ 
+ 2025-07-16  Jeremy Rifkin  <jeremy@rifkin.dev>
+ 
+ 	PR c/82134
+ 	* gimplify.cc (gimplify_modify_expr): Add suppress_warning
+ 	* tree-cfg.cc (do_warn_unused_result): Check warning_suppressed_p
+ 
+ 2025-07-16  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_AMX_AVX512_SET): Do not set AVX10.2.
+ 	(OPTION_MASK_ISA2_AVX10_2_UNSET): Remove AMX-AVX512 unset.
+ 	(OPTION_MASK_ISA2_AVX512F_UNSET): Unset AMX-AVX512.
+ 	(ix86_handle_option): Imply AVX512F for AMX-AVX512.
+ 
+ 2025-07-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (avg<mode>3_floor): Add new
+ 	pattern of avg3_floor for rvv DImode.
+ 
+ 2025-07-15  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* spellcheck.cc: Define INCLUDE_ALGORITHM.
+ 	(CASE_COST, BASE_COST): Convert to...
+ 	(case_cost, base_cost): ...these, in an anonymous namespace.
+ 	(get_edit_distance): Update for above.  Use std::min rather than
+ 	MIN.
+ 	(get_edit_distance_cutoff): Likewise.  Use std::max rather than
+ 	MAX.
+ 	(selftest::test_edit_distances): Update for BASE_COST renaming.
+ 	(selftest::get_old_cutoff): Likewise.  Use std::max.
+ 	(selftest::assert_not_suggested_for): Use nullptr.
+ 	(selftest::test_find_closest_string): Likewise.
+ 	* spellcheck.h: Replace TYPE with StringLikeType in templates,
+ 	and use CamelCase.
+ 
+ 2025-07-15  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR sarif-replay/120792
+ 	* auto-obstack.h: New file, based on material taken from
+ 	pretty-print.cc.
+ 	* diagnostic-digraphs.h
+ 	(diagnostics::digraphs::digraph::set_description): New.
+ 	(diagnostics::digraphs::node::set_label): New.
+ 	* doc/libgdiagnostics/topics/compatibility.rst: Add
+ 	LIBGDIAGNOSTICS_ABI_4.
+ 	* doc/libgdiagnostics/topics/diagnostics.rst
+ 	(diagnostic_finish_via_msg_buf): Document new entrypoint.
+ 	* doc/libgdiagnostics/topics/execution-paths.rst
+ 	(diagnostic_execution_path_add_event_via_msg_buf): Document new
+ 	entrypoint.
+ 	* doc/libgdiagnostics/topics/index.rst: Add message-buffers.rst.
+ 	* doc/libgdiagnostics/topics/message-buffers.rst: New file.
+ 	* doc/libgdiagnostics/topics/message-formatting.rst: Add note
+ 	about message buffers.
+ 	* doc/libgdiagnostics/topics/physical-locations.rst
+ 	(diagnostic_add_location_with_label_via_msg_buf): Add.
+ 	* doc/libgdiagnostics/tutorial/07-execution-paths.rst: Link to
+ 	next section.
+ 	* doc/libgdiagnostics/tutorial/08-message-buffers.rst: New file.
+ 	* doc/libgdiagnostics/tutorial/index.rst: Add
+ 	08-message-buffers.rst.
+ 	* libgdiagnostics++.h (libgdiagnostics::message_buffer): New
+ 	class.
+ 	(libgdiagnostics::execution_path::add_event_via_msg_buf): New.
+ 	(libgdiagnostics::diagnostic::add_location_with_label): New.
+ 	(libgdiagnostics::diagnostic::finish_via_msg_buf): New.
+ 	(libgdiagnostics::graph::set_description): New overload.
+ 	(libgdiagnostics::graph::add_edge): New overload.
+ 	(libgdiagnostics::node::set_label): New overload.
+ 	* libgdiagnostics-private.h
+ 	(private_diagnostic_execution_path_add_event_2): Drop decl.
+ 	(private_diagnostic_execution_path_add_event_3): New decl.
+ 	* libgdiagnostics.cc:  Include "pretty-print-format-impl.h",
+ 	"pretty-print-markup.h", and "auto-obstack.h".
+ 	(class copying_token_printer): New.
+ 	(struct diagnostic_message_buffer): New.
+ 	(class pp_element_message_buffer): New.
+ 	(libgdiagnostics_path_event::libgdiagnostics_path_event): Replace
+ 	params "gmsgid" and "args" with "msg_buf".
+ 	(libgdiagnostics_path_event::print_desc): Reimplement using
+ 	pp_element_message_buffer to replay m_msg_buf into "pp".
+ 	(libgdiagnostics_path_event::m_desc_uncolored): Drop field.
+ 	(libgdiagnostics_path_event::m_desc_colored): Drop field.
+ 	(libgdiagnostics_path_event::msg_buf): New field.
+ 	(diagnostic_execution_path::add_event_va): Reimplement.
+ 	(diagnostic_execution_path::add_event_via_msg_buf): New.
+ 	(diagnostic::add_location_with_label): New overload, using
+ 	msg_buf.
+ 	(diagnostic_manager::emit): Reimplement with...
+ 	(diagnostic_manager::emit_va): ...this.
+ 	(diagnostic_manager::emit_msg_buf): New.
+ 	(FAIL_IF_NULL): Rename "p" to "ptr_arg".
+ 	(diagnostic_finish_va): Update to use diagnostic_manager::emit_va.
+ 	(diagnostic_graph::add_node_with_id): Rename "id" to "node_id".
+ 	(diagnostic_graph_add_node): Likewise.
+ 	(diagnostic_graph_add_edge): Rename "id" to "edge_id".
+ 	(diagnostic_graph_get_node_by_id): Rename "id" to "node_id".
+ 	(diagnostic_graph_get_edge_by_id): Rename "id" to "edge_id".
+ 	(private_diagnostic_execution_path_add_event_2): Delete.
+ 	(diagnostic_message_buffer_new): New public entrypoint.
+ 	(diagnostic_message_buffer_release): Likewise.
+ 	(diagnostic_message_buffer_append_str): Likewise.
+ 	(diagnostic_message_buffer_append_text): Likewise.
+ 	(diagnostic_message_buffer_append_byte): Likewise.
+ 	(diagnostic_message_buffer_append_printf): Likewise.
+ 	(diagnostic_message_buffer_append_event_id): Likewise.
+ 	(diagnostic_message_buffer_begin_url): Likewise.
+ 	(diagnostic_message_buffer_end_url): Likewise.
+ 	(diagnostic_message_buffer_begin_quote): Likewise.
+ 	(diagnostic_message_buffer_end_quote): Likewise.
+ 	(diagnostic_message_buffer_begin_color): Likewise.
+ 	(diagnostic_message_buffer_end_color): Likewise.
+ 	(diagnostic_message_buffer_dump): Likewise.
+ 	(diagnostic_finish_via_msg_buf): Likewise.
+ 	(diagnostic_add_location_with_label_via_msg_buf): Likewise.
+ 	(diagnostic_execution_path_add_event_via_msg_buf): Likewise.
+ 	(diagnostic_graph_set_description_via_msg_buf): Likewise.
+ 	(diagnostic_graph_add_edge_via_msg_buf): Likewise.
+ 	(diagnostic_node_set_label_via_msg_buf): Likewise.
+ 	(private_diagnostic_execution_path_add_event_3): New private
+ 	entrypoint.
+ 	* libgdiagnostics.h (LIBGDIAGNOSTICS_PARAM_FORMAT_STRING): New macro.
+ 	(LIBGDIAGNOSTICS_PARAM_PRINTF_FORMAT_STRING): New macro.
+ 	(diagnostic_message_buffer): New typedef.
+ 	(LIBDIAGNOSTICS_HAVE_diagnostic_message_buffer): New define.
+ 	(diagnostic_message_buffer_new): New decl.
+ 	(diagnostic_message_buffer_release): New decl.
+ 	(diagnostic_message_buffer_append_str): New decl.
+ 	(diagnostic_message_buffer_append_text): New decl.
+ 	(diagnostic_message_buffer_append_byte): New decl.
+ 	(diagnostic_message_buffer_append_printf): New decl.
+ 	(diagnostic_message_buffer_append_event_id): New decl.
+ 	(diagnostic_message_buffer_begin_url): New decl.
+ 	(diagnostic_message_buffer_end_url): New decl.
+ 	(diagnostic_message_buffer_begin_quote): New decl.
+ 	(diagnostic_message_buffer_end_quote): New decl.
+ 	(diagnostic_message_buffer_begin_color): New decl.
+ 	(diagnostic_message_buffer_end_color): New decl.
+ 	(diagnostic_message_buffer_dump): New decl.
+ 	(diagnostic_finish_via_msg_buf): New decl.
+ 	(diagnostic_add_location_with_label_via_msg_buf): New decl.
+ 	(diagnostic_execution_path_add_event_via_msg_buf): New decl.
+ 	(diagnostic_graph_set_description_via_msg_buf): New decl.
+ 	(diagnostic_graph_add_edge_via_msg_buf): New decl.
+ 	(diagnostic_node_set_label_via_msg_buf): New decl.
+ 	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): Drop
+ 	private_diagnostic_execution_path_add_event_2.
+ 	(LIBGDIAGNOSTICS_ABI_4): New.
+ 	* libsarifreplay.cc (class annotation): Use
+ 	libgdiagnostics::message_buffer rather than label_text.
+ 	(add_any_annotations): Likewise.
+ 	(sarif_replayer::handle_result_obj): Likewise.
+ 	(make_plain_text_within_result_message): Likewise.
+ 	(handle_thread_flow_location_object): Likewise.
+ 	(handle_location_object): Likewise.
+ 	(sarif_replayer::handle_graph_object): Likewise.
+ 	(sarif_replayer::handle_node_object): Likewise.
+ 	(sarif_replayer::handle_edge_object): Likewise.
+ 	* pretty-print-format-impl.h (pp_token_list::push_back_byte): New
+ 	decl.
+ 	* pretty-print-markup.h (pp_markup::context::begin_url): New decl.
+ 	(pp_markup::context::end_url): New decl.
+ 	(pp_markup::context::add_event_id): New decl.
+ 	* pretty-print.cc: Include "auto-obstack.h".
+ 	(pp_token_list::push_back_byte): New.
+ 	(struct auto_obstack): Move to auto-obstack.h.
+ 	(default_token_printer): Make non-static.
+ 	(pp_markup::context::begin_url): New.
+ 	(pp_markup::context::end_url): New.
+ 	(pp_markup::context::add_event_id): New.
+ 
+ 2025-07-15  Umesh Kalappa  <ukalappa.mips@gmail.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_CORE): Updated the supported march.
+ 	* config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT):
+ 	New file added for mips conditional mov extension.
+ 	* config/riscv/riscv-ext.def: Likewise.
+ 	* config/riscv/t-riscv: Generates riscv-ext.opt
+ 	* config/riscv/riscv-ext.opt: Generated file.
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Updated for mips cmov
+ 	and outlined some code that handle arch cond move.
+ 	* config/riscv/riscv.md (mov<mode>cc): updated expand for MIPS CCMOV.
+ 	* config/riscv/mips-insn.md: New file for mips-p8700 ccmov insn.
+ 	* doc/riscv-ext.texi: Updated for mips cmov.
+ 
+ 2025-07-15  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	* avoid-store-forwarding.cc (generate_bit_insert_sequence):
+ 	Remove adjustment of bitfield insertion's starting position
+ 	when BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN.
+ 	(process_store_forwarding): Update offset check in base reg
+ 	initialization to take into account the target's endianness.
+ 
+ 2025-07-15  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
+ 	Add AVOID_LDAPUR tuning flag.
+ 	* config/aarch64/aarch64.cc (aarch64_adjust_generic_arch_tuning):
+ 	Set AVOID_LDAPUR for architectures before armv8.8-a.
+ 	(aarch64_override_options_internal): Apply generic tuning adjustments
+ 	to generic_armv8_a_tunings and generic_armv9_a_tunings.
+ 	* config/aarch64/aarch64.h (TARGET_ENABLE_LDAPUR): New macro to
+ 	control LDAPUR usage based on RCPC2 and tuning flags.
+ 	* config/aarch64/aarch64.md: Add enable_ldapur attribute.
+ 	* config/aarch64/atomics.md (aarch64_atomic_load<mode>_rcpc): Modify
+ 	to emit LDAPUR for cores with RCPC2.
+ 	(*aarch64_atomic_load<ALLX:mode>_rcpc_zext): Likewise.
+ 	(*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Update constraint to Ust.
+ 	* config/aarch64/tuning_models/cortexx925.h: Add AVOID_LDAPUR flag.
+ 	* config/aarch64/tuning_models/neoversev2.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3.h: Likewise.
+ 	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
+ 
+ 2025-07-15  Richard Biener  <rguenther@suse.de>
+ 	    Richard Sandiford   <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/121059
+ 	* tree-vect-stmts.cc (vectorizable_operation): Query
+ 	scalar_cond_masked_set with the correct number of masks.
+ 
+ 2025-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 	    Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c/44677
+ 	* common.opt (Wunused-but-set-parameter=, Wunused-but-set-variable=):
+ 	New options.
+ 	(Wunused-but-set-parameter, Wunused-but-set-variable): Turn into
+ 	aliases.
+ 	* common.opt.urls: Regenerate.
+ 	* diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Use
+ 	OPT_Wunused_but_set_variable_ instead of OPT_Wunused_but_set_variable
+ 	and OPT_Wunused_but_set_parameter_ instead of
+ 	OPT_Wunused_but_set_parameter.
+ 	* gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Remove unused
+ 	but set variable tmp.
+ 	* ipa-strub.cc (pass_ipa_strub::execute): Cast named_args to
+ 	(void) if ATTR_FNSPEC_DECONST_WATERMARK is not defined.
+ 	* doc/invoke.texi (Wunused-but-set-parameter=,
+ 	Wunused-but-set-variable=): Document new options.
+ 	(Wunused-but-set-parameter, Wunused-but-set-variable): Adjust
+ 	documentation now that they are just aliases.
+ 
+ 2025-07-15  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>):
+ 	Change gating and comment.
+ 
+ 2025-07-15  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Revert:
+ 	2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*eor3qdi4): New
+ 	define_insn_and_split.
+ 
+ 2025-07-15  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_and_combine):
+ 	Extend from SVE_FULL_F to SVE_F.
+ 	(*fcmuo<mode>_and_combine): Likewise.
+ 	(*fcm<cmp_op><mode>_bic_combine): Likewise.
+ 	(*fcm<cmp_op><mode>_nor_combine): Likewise.
+ 	(*fcmuo<mode>_bic_combine): Likewise.
+ 	(*fcmuo<mode>_nor_combine): Likewise.  Move the comment here to
+ 	above fcmuo<mode>_bic_combine, since it applies to both patterns.
+ 
+ 2025-07-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* tree.cc: Include memmodel.h.
+ 
+ 2025-07-14  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md (vec_cmpu<mode>di_exec): Call gen_vec_cmp*,
+ 	not gen_vec_cmpu*.
+ 
+ 2025-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2025-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121059
+ 	* tree-vect-stmts.cc (vectorizable_operation): Record a
+ 	loop mask for mask AND operations.
+ 
+ 2025-07-14  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (reduc_plus_scal_<mode>): Implement.
+ 	(reduc_plus_scal_v2df): Implement.
+ 	(reduc_plus_scal_v4sf): Implement.
+ 	(REDUC_FMINMAX): New int iterator.
+ 	(reduc_fminmax_name): New int attribute.
+ 	(reduc_minmax): New code iterator.
+ 	(reduc_minmax_name): New code attribute.
+ 	(reduc_<reduc_fminmax_name>_scal_v2df): Implement.
+ 	(reduc_<reduc_fminmax_name>_scal_v4sf): Implement.
+ 	(reduc_<reduc_minmax_name>_scal_v2df): Implement.
+ 	(reduc_<reduc_minmax_name>_scal_v4sf): Implement.
+ 	(REDUCBIN): New code iterator.
+ 	(reduc_bin_insn): New code attribute.
+ 	(reduc_<reduc_bin_insn>_scal_v2di): Implement.
+ 	(reduc_<reduc_bin_insn>_scal_v4si): Implement.
+ 	(reduc_<reduc_bin_insn>_scal_v8hi): Implement.
+ 	(reduc_<reduc_bin_insn>_scal_v16qi): Implement.
+ 
+ 2025-07-14  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (s390_option_override_internal): Remove override.
+ 
+ 2025-07-14  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Rename ...
+ 	(add<mode>3<exec>): ... to this, remove the clobber, and change the
+ 	instruction from v_add_co_u32 to v_add_u32.
+ 	(add<mode>3_dup<exec_clobber>): Rename ...
+ 	(add<mode>3_dup<exec>): ... to this, and likewise.
+ 	(sub<mode>3<exec_clobber>): Rename ...
+ 	(sub<mode>3<exec>): ... to this, and likewise
+ 	* config/gcn/gcn.md (addsi3): Remove the DI clobber, and change the
+ 	instruction from v_add_co_u32 to v_add_u32.
+ 	(addsi3_scc): Likewise.
+ 	(subsi3): Likewise, but for v_sub_co_u32.
+ 	(muldi3): Likewise.
+ 
+ 2025-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121059
+ 	* tree-vect-stmts.cc (vectorizable_operation): Record a
+ 	loop mask for mask AND operations.
+ 
+ 2025-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Make sure widen mul has twice bitsize
+ 	of the inputs in SAT_MUL pattern.
+ 
+ 2025-07-14  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/121015
+ 	* config/i386/i386-features.cc (ix86_broadcast_inner): Check all
+ 	0s/1s vectors with standard_sse_constant_p.
+ 
+ 2025-07-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120881
+ 	* config.in: Regenerated.
+ 	* configure: Likewise.
+ 	* configure.ac: Add --enable-x86-64-mfentry.
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Enable __fentry__ in 64-bit mode if ENABLE_X86_64_MFENTRY is set
+ 	to 1.  Warn -pg without -mfentry with shrink wrapping enabled.
+ 	* doc/install.texi: Document --enable-x86-64-mfentry.
+ 
+ 2025-07-14  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+ 
+ 	PR target/120645
+ 	* config/darwin-driver.cc: Account for latest macOS numbering
+ 	scheme.
+ 
+ 2025-07-14  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*vfwmacc_vf_<mode>): New pattern to
+ 	handle both vfwmacc and vfwmsac.
+ 	(*extend_vf_<mode>): New pattern that serves as an intermediate combine
+ 	step.
+ 	* config/riscv/vector-iterators.md (vsubel): New mode attribute. This is
+ 	just the lower-case version of VSUBEL.
+ 	* config/riscv/vector.md (@pred_widen_mul_<optab><mode>_scalar): Reorder
+ 	and swap operands to match the RTL emitted by expand, i.e. first
+ 	float_extend then vec_duplicate.
+ 
+ 2025-07-14  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>):
+ 	New patterns.
+ 	* config/aarch64/aarch64-sve-builtins-sme.def (svamin): New intrinsics.
+ 	(svamax): New intrinsics.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc (class faminmaximpl): New
+ 	class.
+ 	(svamin): New function.
+ 	(svamax): New function.
+ 
+ 2025-07-14  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h (PTA_PANTHERLAKE): Revmoe KL and WIDEKL.
+ 	(PTA_CLEARWATERFOREST): Ditto.
+ 	* doc/invoke.texi: Revise documentation.
+ 
+ 2025-07-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120866
+ 	* tree.cc: Add include to tm_p.h.
+ 
+ 2025-07-13  Benjamin Wu  <bwu25@cs.washington.edu>
+ 
+ 	* gimple.h (GTMA_DOES_GO_IRREVOCABLE): Fix typo.
+ 
+ 2025-07-12  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::~function_instance):
+ 	Move down in source.
+ 	(string_table::get_cgraph_node): New member function with
+ 	logic broken out from ...
+ 	(function_instance::get_cgraph_node): ... here.
+ 	(match_with_target): Fix formating.
+ 	(function_instance::match): Fix formating; do not use iterators
+ 	after modifying map; remove incorrect set of warned flag.
+ 	(autofdo_source_profile::offline_external_functions): Keep
+ 	seen set up to date.
+ 	(function_instance::read_function_instance): Fix formating.
+ 
+ 2025-07-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/mmx.md (mov<V_32:mode>):
+ 	Use nonimm_or_0_operand predicate for operand 1.
+ 	(*mov<V_32:mode>_internal): Ditto.
+ 	(movv2qi): Ditto.
+ 	(*movv2qi_internal): Ditto.  Use ix86_hardreg_mov_ok
+ 	in insn condition.
+ 
+ 2025-07-12  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR rtl-optimization/120983
+ 	* lra-constraints.cc (process_alt_operands): Allow reloading
+ 	user hard registers unless the insn is an asm.
+ 
+ 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc: Include "diagnostic-format-sarif.h",
+ 	Replace include of "diagnostic-state.h" with includes of
+ 	"diagnostic-digraphs.h" and "diagnostic-state-graphs.h".
+ 	(html_generation_options::html_generation_options): Update for
+ 	field renaming.
+ 	(html_builder::m_body_element): New field.
+ 	(html_builder::html_builder): Initialize m_body_element.
+ 	(html_builder::maybe_make_state_diagram): Port from XML
+ 	implementation to state graph implementation.
+ 	(html_builder::make_element_for_diagnostic): Add any
+ 	per-diagnostic graphs.
+ 	(html_builder::add_graph): New.
+ 	(html_builder::emit_global_graph): New.
+ 	(html_output_format::report_global_digraph): New.
+ 	* diagnostic-format-html.h
+ 	(html_generation_options::m_show_state_diagram_xml): Replace
+ 	with...
+ 	(html_generation_options::m_show_state_diagrams_sarif): ...this.
+ 	(html_generation_options::m_show_state_diagram_dot_src): Rename
+ 	to...
+ 	(html_generation_options::m_show_state_diagrams_dot_src): ...this.
+ 	* diagnostic-format-sarif.cc: Include "diagnostic-digraphs.h" and
+ 	"diagnostic-state-graphs.h".
+ 	(sarif_builder::m_run_graphs): New field.
+ 	(sarif_result::on_nested_diagnostic): Update call to
+ 	make_location_object to pass arg by pointer.
+ 	(sarif_builder::sarif_builder): Initialize m_run_graphs.
+ 	(sarif_builder::report_global_digraph): New.
+ 	(sarif_builder::make_result_object): Add any graphs to
+ 	the result object.
+ 	(sarif_builder::make_locations_arr): Update call to
+ 	make_location_object to pass arg by pointer.
+ 	(sarif_builder::make_location_object): Pass param "loc_mgr" by
+ 	pointer rather than by reference so that it can be null, and
+ 	handle this case.
+ 	(copy_any_property_bag): New.
+ 	(make_sarif_graph): New.
+ 	(make_sarif_node): New.
+ 	(make_sarif_edge): New.
+ 	(sarif_property_bag::set_graph): New.
+ 	(populate_thread_flow_location_object): Port from XML
+ 	implementation to state graph implementation.
+ 	(make_run_object): Store any graphs.
+ 	(sarif_output_format::report_global_digraph): New.
+ 	(sarif_generation_options::sarif_generation_options): Rename
+ 	m_xml_state to m_state_graph.
+ 	(selftest::test_make_location_object): Update for change to
+ 	make_location_object.
+ 	* diagnostic-format-sarif.h:
+ 	(sarif_generation_options::m_xml_state): Replace with...
+ 	(sarif_generation_options::m_state_graph): ...this.
+ 	(class sarif_location_manager): Add forward decl.
+ 	(diagnostics::digraphs::digraph): New forward decl.
+ 	(diagnostics::digraphs::node): New forward decl.
+ 	(diagnostics::digraphs::edge): New forward decl.
+ 	(sarif_property_bag::set_graph): New decl.
+ 	(class sarif_graph): New.
+ 	(class sarif_node): New.
+ 	(class sarif_edge): New.
+ 	(make_sarif_graph): New decl.
+ 	(make_sarif_node): New decl.
+ 	(make_sarif_edge): New decl.
+ 	* diagnostic-format-text.h
+ 	(diagnostic_text_output_format::report_global_digraph): New.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format::report_global_digraph): New vfunc.
+ 	* diagnostic-digraphs.cc: New file.
+ 	* diagnostic-digraphs.h: New file.
+ 	* diagnostic-metadata.h (diagnostics::digraphs::lazy_digraphs):
+ 	New forward decl.
+ 	(diagnostic_metadata::diagnostic_metadata): Initialize
+ 	m_lazy_digraphs.
+ 	(diagnostic_metadata::set_lazy_digraphs): New.
+ 	(diagnostic_metadata::get_lazy_digraphs): New.
+ 	(diagnostic_metadata::m_lazy_digraphs): New field.
+ 	* diagnostic-output-spec.cc (sarif_scheme_handler::make_sink):
+ 	Update for XML to state graph changes.
+ 	(sarif_scheme_handler::make_sarif_gen_opts): Likewise.
+ 	(html_scheme_handler::make_sink): Rename "show-state-diagram-xml"
+ 	to "show-state-diagrams-sarif" and use pluralization consistently.
+ 	* diagnostic-path.cc: Replace include of "xml.h" with
+ 	"diagnostic-state-graphs.h".
+ 	(diagnostic_event::maybe_make_xml_state): Replace with...
+ 	(diagnostic_event::maybe_make_diagnostic_state_graph): ...this.
+ 	* diagnostic-path.h (diagnostics::digraphs::digraph): New forward
+ 	decl.
+ 	(diagnostic_event::maybe_make_xml_state): Replace with...
+ 	(diagnostic_event::maybe_make_diagnostic_state_graph): ...this.
+ 	* diagnostic-state-graphs.cc: New file.
+ 	* diagnostic-state-graphs.h: New file.
+ 	* diagnostic-state-to-dot.cc: Port implementation from XML to
+ 	state graphs.
+ 	* diagnostic-state.h: Deleted file.
+ 	* diagnostic.cc (diagnostic_context::report_global_digraph): New.
+ 	* diagnostic.h (diagnostics::digraphs::lazy_digraph): New forward
+ 	decl.
+ 	(diagnostic_context::report_global_digraph): New decl.
+ 	* doc/analyzer.texi (Debugging the Analyzer): Update to reflect
+ 	change from XML to state graphs.
+ 	* doc/invoke.texi ("sarif" diagnostics sink): Replace "xml-state"
+ 	with "state-graphs".
+ 	("experimental-html" diagnostics sink): Replace
+ 	"show-state-diagrams-xml" with "show-state-diagrams-sarif"
+ 	* doc/libgdiagnostics/topics/compatibility.rst
+ 	(LIBGDIAGNOSTICS_ABI_3): New.
+ 	* doc/libgdiagnostics/topics/graphs.rst: New file.
+ 	* doc/libgdiagnostics/topics/index.rst: Add graphs.rst.
+ 	* graphviz.h (node_id::operator=): New.
+ 	* json.h (json::value::dyn_cast_string): New.
+ 	(json::object::get_num_keys): New accessor.
+ 	(json::object::get_key): New accessor.
+ 	(json::string::dyn_cast_string): New.
+ 	* libgdiagnostics++.h (class libgdiagnostics::graph): New.
+ 	(class libgdiagnostics::node): New.
+ 	(class libgdiagnostics::edge): New.
+ 	(class libgdiagnostics::diagnostic::take_graph): New.
+ 	(class libgdiagnostics::manager::take_global_graph): New.
+ 	(class libgdiagnostics::graph::set_description): New.
+ 	(class libgdiagnostics::graph::get_node_by_id): New.
+ 	(class libgdiagnostics::graph::get_edge_by_id): New.
+ 	(class libgdiagnostics::graph::add_edge): New.
+ 	(class libgdiagnostics::node::set_label): New.
+ 	(class libgdiagnostics::node::set_location): New.
+ 	(class libgdiagnostics::node::set_logical_location): New.
+ 	* libgdiagnostics-private.h: New file.
+ 	* libgdiagnostics.cc: Define INCLUDE_STRING.  Include
+ 	"diagnostic-digraphs.h", "diagnostic-state-graphs.h", and
+ 	"libgdiagnostics-private.h".
+ 	(struct diagnostic_graph): New.
+ 	(struct diagnostic_node): New.
+ 	(struct diagnostic_edge): New.
+ 	(libgdiagnostics_path_event::libgdiagnostics_path_event): Add
+ 	state_graph param.
+ 	(libgdiagnostics_path_event::maybe_make_diagnostic_state_graph):
+ 	New.
+ 	(libgdiagnostics_path_event::m_state_graph): New field.
+ 	(diagnostic_execution_path::add_event_va): Add state_graph param.
+ 	(class prebuilt_digraphs): New.
+ 	(diagnostic::diagnostic): Use m_graphs in m_metadata.
+ 	(diagnostic::take_graph): New.
+ 	(diagnostic::get_graphs): New accessor.
+ 	(diagnostic::m_graphs): New field.
+ 	(diagnostic_manager::take_global_graph): New.
+ 	(diagnostic_execution_path_add_event): Update for new param to
+ 	add_event_va.
+ 	(diagnostic_execution_path_add_event_va): Likewise.
+ 	(diagnostic_graph::add_node_with_id): New public entrypoint.
+ 	(diagnostic_graph::add_edge_with_label): New public entrypoint.
+ 	(diagnostic_manager_new_graph): New public entrypoint.
+ 	(diagnostic_manager_take_global_graph): New public entrypoint.
+ 	(diagnostic_take_graph): New public entrypoint.
+ 	(diagnostic_graph_release): New public entrypoint.
+ 	(diagnostic_graph_set_description): New public entrypoint.
+ 	(diagnostic_graph_add_node): New public entrypoint.
+ 	(diagnostic_graph_add_edge): New public entrypoint.
+ 	(diagnostic_graph_get_node_by_id): New public entrypoint.
+ 	(diagnostic_graph_get_edge_by_id): New public entrypoint.
+ 	(diagnostic_node_set_location): New public entrypoint.
+ 	(diagnostic_node_set_label): New public entrypoint.
+ 	(diagnostic_node_set_logical_location): New public entrypoint.
+ 	(private_diagnostic_execution_path_add_event_2): New private
+ 	entrypoint.
+ 	(private_diagnostic_graph_set_property_bag): New private
+ 	entrypoint.
+ 	(private_diagnostic_node_set_property_bag): New private
+ 	entrypoint.
+ 	(private_diagnostic_edge_set_property_bag): New private
+ 	entrypoint.
+ 	* libgdiagnostics.h (diagnostic_graph): New typedef.
+ 	(diagnostic_node): New typedef.
+ 	(diagnostic_edge): New typedef.
+ 	(diagnostic_manager_new_graph): New decl.
+ 	(diagnostic_manager_take_global_graph): New decl.
+ 	(diagnostic_take_graph): New decl.
+ 	(diagnostic_graph_release): New decl.
+ 	(diagnostic_graph_set_description): New decl.
+ 	(diagnostic_graph_add_node): New decl.
+ 	(diagnostic_graph_add_edge): New decl.
+ 	(diagnostic_graph_get_node_by_id): New decl.
+ 	(diagnostic_graph_get_edge_by_id): New decl.
+ 	(diagnostic_node_set_label): New decl.
+ 	(diagnostic_node_set_location): New decl.
+ 	(diagnostic_node_set_logical_location): New decl.
+ 	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): New.
+ 	* libsarifreplay.cc: Include "libgdiagnostics-private.h".
+ 	(id_map): New "using".
+ 	(sarif_replayer::report_invalid_sarif): Update for change to
+ 	report_problem params.
+ 	(sarif_replayer::report_unhandled_sarif): Likewise.
+ 	(sarif_replayer::report_note): New.
+ 	(sarif_replayer::report_problem): Pass param "ref" by
+ 	pointer rather than reference and handle it being null.
+ 	(sarif_replayer::maybe_get_property_bag): New.
+ 	(sarif_replayer::maybe_get_property_bag_value): New.
+ 	(sarif_replayer::handle_run_obj): Handle run-level "graphs" as per
+ 	§3.14.20.
+ 	(sarif_replayer::handle_result_obj): Handle result-level "graphs"
+ 	as per §3.27.19.
+ 	(handle_thread_flow_location_object): Optionally handle graphs
+ 	stored in property "gcc/diagnostic_event/state_graph" as state
+ 	graphs.
+ 	(sarif_replayer::handle_graph_object): New.
+ 	(sarif_replayer::handle_node_object): New.
+ 	(sarif_replayer::handle_edge_object): New.
+ 	(sarif_replayer::get_graph_node_by_id_property): New.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest::diagnostic_graph_cc_tests and
+ 	selftest::diagnostic_state_graph_cc_tests.
+ 	* selftest.h (selftest::diagnostic_graph_cc_tests): New decl.
+ 	(selftest::diagnostic_state_graph_cc_tests): New decl.
+ 
+ 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-digraphs.o and
+ 	diagnostic-state-graphs.o.
+ 
+ 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.cc (json::object::clone): New.
+ 	(json::object::clone_as_object): New.
+ 	(json::array::clone): New.
+ 	(json::float_number::clone): New.
+ 	(json::integer_number::clone): New.
+ 	(json::string::clone): New.
+ 	(json::literal::clone): New.
+ 	(selftest::test_cloning): New test.
+ 	(selftest::json_cc_tests): Call it.
+ 	* json.h (json::value::clone): New vfunc.
+ 	(json::object::clone): New decl.
+ 	(json::object::clone_as_object): New decl.
+ 	(json::array::clone): New decl.
+ 	(json::float_number::clone): New decl.
+ 	(json::integer_number::clone): New decl.
+ 	(json::string::clone): New decl.
+ 	(json::literal::clone): New decl.
+ 
+ 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json.cc (string::string): When constructing from pointer and
+ 	length, ensure the new buffer is null-terminated.
+ 	(selftest::test_strcmp): New.
+ 	(selftest::json_cc_tests): Likewise.
+ 
+ 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/topics/compatibility.rst
+ 	(_LIBGDIAGNOSTICS_ABI_2): Add missing anchor.
+ 	* doc/libgdiagnostics/topics/diagnostic-manager.rst
+ 	(diagnostic_manager_add_sink_from_spec): Add links to GCC's
+ 	documentation of "-fdiagnostics-add-output=".  Fix parameter
+ 	markup.
+ 	(diagnostic_manager_set_analysis_target): Fix parameter markup.
+ 	Add link to SARIF spec.
+ 	* doc/libgdiagnostics/topics/logical-locations.rst: Markup fix.
+ 	* doc/libgdiagnostics/tutorial/02-physical-locations.rst: Clarify
+ 	wording of what "the source file" means, and that a range can't
+ 	have multiple files.
+ 
+ 2025-07-11  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	* lra-constraints.cc (process_address_1): When changing base reg
+ 	on a reg of the base class, fall back to reload of whole inner address.
+ 	(process_address): Constrain the iteration number.
+ 
+ 2025-07-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/119064
+ 	* doc/invoke.texi (Wc++26-compat): Document.
+ 
+ 2025-07-11  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/121027
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_sve_tbl): Punt on 2-input
+ 	operations that can be handled by vec_perm.
+ 
+ 2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*eor3qdi4): New
+ 	define_insn_and_split.
+ 
+ 2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*bcaxqdi4): New
+ 	define_insn_and_split.
+ 
+ 2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (eor3q<mode>4): Use VDQ_I mode
+ 	iterator.
+ 
+ 2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (bcaxq<mode>4): Use VDQ_I mode
+ 	iterator.
+ 
+ 2025-07-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/121034
+ 	* tree-vect-loop.cc (vectorizable_reduction): Cleanup
+ 	reduction chain following code.
+ 
+ 2025-07-11  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* opts.cc (finish_options): Enable debug_nonbind_markers_p for
+ 	auto-profile.
+ 	* tree-cfg.cc (struct locus_discrim_map): Remove.
+ 	(struct locus_discrim_hasher): Remove.
+ 	(locus_discrim_hasher::hash): Remove.
+ 	(locus_discrim_hasher::equal): Remove.
+ 	(first_non_label_nondebug_stmt): Remove.
+ 	(build_gimple_cfg): Do not allocate discriminator tables.
+ 	(next_discriminator_for_locus): Remove.
+ 	(same_line_p): Remove.
+ 	(struct discrim_entry): New structure.
+ 	(assign_discriminator): Rewrite.
+ 	(assign_discriminators): Rewrite.
+ 
+ 2025-07-11  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/114790
+ 	* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Resolve devirtualization
+ 	if call statement was optimized out or turned to direct call.
+ 
+ 2025-07-11  Jakub Jelinek  <jakub@redhat.com>
+ 	    Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/121023
+ 	* ipa-fnsummary.cc (compute_fn_summary): Disallow signature changes
+ 	on cfun->has_musttail functions.
+ 
+ 2025-07-11  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/91384
+ 	* config/i386/i386.md: Add new peeophole2 for optimize *negsi_1
+ 	followed by *cmpsi_ccno_1 with APX_F.
+ 
+ 2025-07-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Use
+ 	the LHS of a scalar stmt to determine mode and whether it is FP.
+ 
+ 2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
+ 	Guard VF-based costing with !m_costing_for_scalar.
+ 
+ 2025-07-10  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
+ 	* internal-fn.def (ACCESS_WITH_SIZE): Update comments.
+ 	* tree-object-size.cc (access_with_size_object_size): Update comments.
+ 	Adjust the arguments per the new design.
+ 
+ 2025-07-10  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	PR middle-end/121000
+ 	* internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
+ 	* internal-fn.def (ACCESS_WITH_SIZE): Update comments.
+ 	* tree-object-size.cc (access_with_size_object_size): Update comments.
+ 	Get the element_size from the 6th argument directly.
+ 
+ 2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve2.md (aarch64_gather_ld1q): Replace with...
+ 	(@aarch64_gather_ld1q<mode>): ...this, parameterizing based on mode.
+ 	* config/aarch64/aarch64-sve-builtins-sve2.cc
+ 	(svld1q_gather_impl::expand): Update accordingly.
+ 	(svst1q_scatter_impl::expand): Use aarch64_sve_reinterpret
+ 	instead of force_lowpart_subreg.
+ 
+ 2025-07-10  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc: Include output.h.
+ 	(function_instance::set_call_location): Also sanity check
+ 	that location is known.
+ 	(raw_symbol_name): Two new static functions.
+ 	(dump_inline_stack): Use it.
+ 	(string_table::get_index_by_decl): Likewise.
+ 	(function_instance::get_cgraph_node): Likewise.
+ 	(function_instance::get_function_instance_by_decl): Fix typo
+ 	in warning; use raw names; fix lineno decoding.
+ 	(match_with_target): Add containing funciton parameter;
+ 	correctly output function and call location in warning.
+ 	(function_instance::lookup_count): Fix warning locations.
+ 	(function_instance::match): Fix warning locations; avoid
+ 	crash with mismatched callee; do not warn about broken callsites
+ 	twice.
+ 	(autofdo_source_profile::offline_external_functions): Use
+ 	raw_assembler_name.
+ 	(walk_block): Use raw_assembler_name.
+ 
+ 2025-07-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/121014
+ 	* cfgexpand.cc (expand_debug_expr): Assert FLOAT_MODE_P.
+ 	* optabs-tree.cc (optab_for_tree_code): Assert FLOAT_TYPE_P.
+ 	* tree-vect-loop.cc (vect_get_loop_len): Use EXACT_DIV_EXPR.
+ 
+ 2025-07-10  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/118734
+ 	* config/riscv/constraints.md (Wdm): Use tunable for Wdm
+ 	constraint.
+ 	* config/riscv/riscv-protos.h (emit_avltype_insn): Declare.
+ 	(can_be_broadcasted_p): Rename to...
+ 	(can_be_broadcast_p): ...this.
+ 	* config/riscv/predicates.md: Use renamed function.
+ 	(strided_load_broadcast_p): Declare.
+ 	* config/riscv/riscv-selftests.cc (run_broadcast_selftests):
+ 	Only run broadcast selftest if strided broadcasts are OK.
+ 	* config/riscv/riscv-v.cc (emit_avltype_insn): New function.
+ 	(sew64_scalar_helper): Only emit a pred_broadcast if the new
+ 	tunable says so.
+ 	(can_be_broadcasted_p): Rename to...
+ 	(can_be_broadcast_p): ...this and use new tunable.
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add strided
+ 	broad tunable.
+ 	(strided_load_broadcast_p): Implement.
+ 	* config/riscv/vector.md: Use strided_load_broadcast_p () and
+ 	work around 64-bit broadcast on rv32 targets.
+ 
+ 2025-07-10  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_fusion_pairs): Add new cases.
+ 	(riscv_set_is_add): New function.
+ 	(riscv_set_is_addi, riscv_set_is_adduw, riscv_set_is_shNadd): Likewise.
+ 	(riscv_set_is_shNadduw): Likewise.
+ 	(riscv_macro_fusion_pair_p): Add new fusion cases.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_analyze_slp): Fail for non-canonical
+ 	gconds.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_instance): Do not use
+ 	SLP_TREE_VECTYPE to determine the conversion back to the
+ 	reduction IV.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Avoid
+ 	vect_is_simple_use and record a vector type if we come
+ 	up with one.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_load_store_type): Do not use
+ 	vect_is_simple_use to fill gather/scatter offset operand
+ 	vectype and dt.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_model_reduction_cost): Get SLP
+ 	node instead of stmt_info and use that when recording costs.
+ 
+ 2025-07-10  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/120999
+ 	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_nor<mode>):
+ 	Adjust movprfx alternative.
+ 
+ 2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* doc/sourcebuild.texi (aarch64_sve2_hw, aarch64_sve2p1_hw): Document.
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_hvla): Extend to
+ 	BYTES_BIG_ENDIAN.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_analyze_stmt): Remove stmt-info
+ 	and need_to_vectorize arguments.
+ 	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
+ 	Adjust.
+ 	* tree-vect-stmts.cc (can_vectorize_live_stmts): Remove
+ 	stmt_info argument and remove non-SLP path.
+ 	(vect_analyze_stmt): Remove stmt_info and need_to_vectorize
+ 	argument and prune paths no longer reachable.
+ 	(vect_transform_stmt): Adjust.
+ 
+ 2025-07-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/x86-tune.def: Change "Tunning the" to "tuning" in
+ 	comment and use semicolon instead of dot in comment.
+ 	* loop-unroll.cc (decide_unroll_stupid): Comment spelling fix,
+ 	tunning -> tuning.
+ 
+ 2025-07-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-vect-loop.cc (scale_profile_for_vect_loop): Comment
+ 	spelling fix: bellow -> below.
+ 	* ipa-polymorphic-call.cc (record_known_type): Likewise.
+ 	* config/i386/x86-tune.def: Likewise.
+ 	* config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend):
+ 	Likewise.
+ 	* tree-scalar-evolution.cc (iv_can_overflow_p): Likewise.
+ 	* ipa-devirt.cc (add_type_duplicate): Likewise.
+ 	* tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Likewise.
+ 	* gimple-ssa-sccopy.cc: Likewise.
+ 	* cgraphunit.cc: Likewise.
+ 	* graphite.h (struct poly_dr): Likewise.
+ 	* ipa-reference.cc (ignore_edge_p): Likewise.
+ 	* tree-ssa-alias.cc (ao_compare::compare_ao_refs): Likewise.
+ 	* profile-count.h (profile_probability::probably_reliable_p):
+ 	Likewise.
+ 	* ipa-inline-transform.cc (inline_call): Likewise.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): Remove.
+ 	(vect_analyze_loop_2): Do not call it.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_active_double_reduction_p): Remove.
+ 	(vect_analyze_loop_operations): Remove.
+ 	(vect_analyze_loop_2): Do not call it.
+ 
+ 2025-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_determine_vf_for_stmt_1): Rename
+ 	to ...
+ 	(vect_determine_vectype_for_stmt_1): ... this and only set
+ 	STMT_VINFO_VECTYPE.  Fail for single-element vector types.
+ 	(vect_determine_vf_for_stmt): Rename to ...
+ 	(vect_determine_vectype_for_stmt): ... this and only set
+ 	STMT_VINFO_VECTYPE. Fail for single-element vector types.
+ 	(vect_determine_vectorization_factor): Rename to ...
+ 	(vect_set_stmts_vectype): ... this and only set STMT_VINFO_VECTYPE.
+ 	(vect_update_vf_for_slp): Remove.
+ 	(vect_analyze_loop_operations): Remove walk over stmts.
+ 	(vect_analyze_loop_2): Call vect_set_stmts_vectype instead of
+ 	vect_determine_vectorization_factor.  Set vectorization factor
+ 	from LOOP_VINFO_SLP_UNROLLING_FACTOR.  Fail if vect_detect_hybrid_slp
+ 	detects hybrid stmts or when vect_make_slp_decision finds
+ 	nothing to SLP.
+ 	* tree-vect-slp.cc (vect_detect_hybrid_slp): Move check
+ 	whether we have any hybrid stmts here from vect_update_vf_for_slp
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Remove loop over
+ 	stmts.
+ 	* tree-vectorizer.h (vect_detect_hybrid_slp): Update.
+ 
+ 2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Account
+ 	for FLOAT_WORDS_BIG_ENDIAN when building a floating-point value.
+ 
+ 2025-07-09  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_adjust_guessed_profile): Add forgotten
+ 	if (dump_file) guard.
+ 
+ 2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_sve_index_series_p): New
+ 	function, split out from...
+ 	(aarch64_simd_valid_imm): ...here.  Account for the different
+ 	SVE and Advanced SIMD element orders on big-endian targets.
+ 	Check each vector in a structure mode.
+ 
+ 2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* read-rtl-function.cc (function_reader::read_rtx_operand_r): Use
+ 	hard_regno_nregs to work out REG_NREGS for hard registers.
+ 
+ 2025-07-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add
+ 	new case SS_MINUS.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op ss_minus.
+ 
+ 2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
+ 	to the subreg_lsb.
+ 
+ 2025-07-09  Jan Dubiec  <jdx@o2.pl>
+ 
+ 	PR target/109286
+ 	* config.gcc: Include elfos.h before h8300/h8300.h.
+ 	* config/h8300/h8300.h (INIT_SECTION_ASM_OP): Override
+ 	default version from elfos.h.
+ 	(FINI_SECTION_ASM_OP): Ditto.
+ 	(ASM_DECLARE_FUNCTION_NAME): Ditto.
+ 	(ASM_GENERATE_INTERNAL_LABEL): Macro removed because it was
+ 	being overridden in elfos.h anyway.
+ 	(ASM_OUTPUT_SKIP): Ditto.
+ 
+ 2025-07-09  Icen Zeyada  <Icen.Zeyada2@arm.com>
+ 
+ 	PR tree-optimization/119196
+ 	* match.pd: Allow scalar optimizations with bitwise AND/OR/XOR to apply to vectors.
+ 
+ 2025-07-09  Icen Zeyada  <Icen.Zeyada2@arm.com>
+ 
+ 	PR tree-optimization/119196
+ 	* match.pd: Merge multiple vec_cond_expr in a single one for
+ 	bit_and, bit_ior and bit_xor.
+ 
+ 2025-07-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120642
+ 	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Do not do
+ 	constant AVL propagation for xtheadvector.
+ 
+ 2025-07-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_reduction): Get the
+ 	output vector type from slp_for_stmt_info.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Bail out earlier
+ 	for PURE_SLP_STMT when doing loop stmt analysis.
+ 
+ 2025-07-09  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (struct scale): New structure.
+ 	(add_scale): Also record weights.
+ 	(afdo_adjust_guessed_profile): Compute robust average
+ 	of scales and cap by max count in function.
+ 
+ 2025-07-09  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* tree-inline.cc (initialize_cfun): Use num and den for scaling.
+ 
+ 2025-07-09  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (get_original_name): Fix loop walking the
+ 	suffixes.
+ 
+ 2025-07-09  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* config/arm/arm_neon.h: Remove useless push/pop pragmas.
+ 
+ 2025-07-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/120922
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Support range
+ 	for partial vectors.
+ 
+ 2025-07-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/120922
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Don't set range
+ 	for partial vectors.
+ 
+ 2025-07-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_b4const_or_zero):
+ 	Remove.
+ 	(xtensa_b4const): Add a case where the value is 0, and rename
+ 	to xtensa_b4const_or_zero.
+ 	(xtensa_rtx_costs): Fix to also consider the result of
+ 	xtensa_b4constu().
+ 
+ 2025-07-08  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390.md (stack_protect_get_tpsi): New insn.
+ 	(stack_protect_get_tpdi): New insn.
+ 	(stack_protect_set): Use new insn.
+ 	(stack_protect_test): Use new insn.
+ 
+ 2025-07-08  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/120461
+ 	* config/riscv/riscv-v.cc (emit_vlmax_insn_lra): Do not emit
+ 	vsetivli for XTHeadVector.
+ 
+ 2025-07-08  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/113829
+ 	* config/riscv/riscv-vector-builtins.cc (registered_function::overloaded_hash):
+ 	Skip non-type arguments.
+ 
+ 2025-07-08  Andreas Schwab  <schwab@suse.de>
+ 
+ 	PR target/120995
+ 	* config/riscv/sync.md (zacas_atomic_cas_value_strong<mode>):
+ 	Allow op3 to be zero.
+ 
+ 2025-07-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_AVX512_MASKED_EPILOGUES):
+ 	New tunable, default on for m_ZNVER4 and m_ZNVER5.
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost): With
+ 	X86_TUNE_AVX512_MASKED_EPILOGUES and when the main loop
+ 	had a vectorization factor > 2 use a masked epilogue when
+ 	possible and when not obviously problematic.
+ 
+ 2025-07-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vector_costs::suggested_epilogue_mode):
+ 	Add masked output parameter and return m_masked_epilogue.
+ 	(vector_costs::m_masked_epilogue): New tristate flag.
+ 	(vector_costs::vector_costs): Initialize m_masked_epilogue.
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): Pass in masked
+ 	flag to optionally initialize can_use_partial_vectors_p.
+ 	(vect_analyze_loop): For epilogues also get whether to use
+ 	a masked epilogue for this loop from the target and use
+ 	that for the first epilogue mode we try.
+ 
+ 2025-07-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120358
+ 	* tree-ssa-structalias.cc (get_constraint_for_1): Adjust
+ 	pruning of sub-variables according to the imprecise
+ 	known start offset.
+ 
+ 2025-07-08  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/vxworks-dummy.h (TARGET_VXWORKS_VAROFF): New.
+ 	(TARGET_VXWORKS_GOTTPIC): New.
+ 	* config/vxworks.h (TARGET_VXWORKS_VAROFF): Override.
+ 	(TARGET_VXWORKS_GOTTPIC): Likewise.
+ 	* config/i386/i386.cc (output_set_got): Disable VxWorks6 GOT
+ 	sequence on VxWorks7.
+ 	(legitimize_pic_address): Accept relative addressing of
+ 	labels on VxWorks7.
+ 	(ix86_delegitimize_address_1): Likewise.
+ 	(ix86_output_addr_diff_elt): Likewise.
+ 	* config/i386/i386.md (tablejump): Likewise.
+ 	(set_got, set_got_labelled): Set no-red-zone flag on VxWorks7.
+ 	* config/i386/predicates.md (gotoff_operand): Test
+ 	TARGET_VXWORKS_VAROFF.
+ 
+ 2025-07-08  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config.gcc (vxworks-dummy.h): Add to aarch64-*-* as well.
+ 
+ 2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	Revert:
+ 	2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Extend counted_by attribute to pointer fields in
+ 	structures. Add one more requirement to pointers with counted_by
+ 	attribute.
+ 
+ 2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	Revert:
+ 	2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* tree-object-size.cc (access_with_size_object_size): Update comments
+ 	for pointers with .ACCESS_WITH_SIZE.
+ 	(collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN
+ 	for pointers with .ACCESS_WITH_SIZE.
+ 
+ 2025-07-07  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* value-range.h (class irange): Mark member function verify_range
+ 	with override.
+ 	(class prange): Mark member function verify_range with final override.
+ 	(class frange): Mark member function verify_range with override.
+ 
+ 2025-07-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120888
+ 	* config/xtensa/xtensa.cc (xtensa_promote_function_mode): New.
+ 	(TARGET_PROMOTE_FUNCTION_MODE): Use.
+ 	(TARGET_PROMOTE_PROTOTYPES): Removed.
+ 
+ 2025-07-07  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.md: Update UNSPECs
+ 	* config/s390/vector.md (fmax<mode>3): New expander.
+ 	(fmin<mode>3): New expander.
+ 	* config/s390/vx-builtins.md (*fmin<mode>): New insn.
+ 	(vfmin<mode>): Redefined to use new insn.
+ 	(*fmax<mode>): New insn.
+ 	(vfmax<mode>): Redefined to use new insn.
+ 
+ 2025-07-07  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120917
+ 	* doc/invoke.texi: Add -Wno-abbreviated-auto-in-template-arg.
+ 
+ 2025-07-07  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.md (popcountti2): Add TARGET_SVE path.
+ 
+ 2025-07-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120817
+ 	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use
+ 	ao_ref_init_from_ptr_and_range with unknown size for
+ 	.MASK_STORE and .MASK_LEN_STORE.
+ 
+ 2025-07-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (riscv_expand_usmul): Add new func
+ 	decl.
+ 	* config/riscv/riscv.cc (riscv_expand_xmode_usmul): Add new func
+ 	to expand Xmode SAT_MUL.
+ 	(riscv_expand_non_xmode_usmul): Ditto but for non-Xmode.
+ 	(riscv_expand_usmul): Add new func to implment SAT_MUL.
+ 	* config/riscv/riscv.md (usmul<mode>3): Add new pattern to match
+ 	standard name usmul.
+ 
+ 2025-07-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add new match pattern for unsigned SAT_MUL.
+ 	* tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_mul):
+ 	new decl for pattern match func.
+ 	(match_unsigned_saturation_mul): Add new func to match unsigned
+ 	SAT_MUL.
+ 	(math_opts_dom_walker::after_dom_children): Try to match
+ 	unsigned SAT_MUL on NOP.
+ 
+ 2025-07-07  Pan Li  <pan2.li@intel.com>
+ 
+ 	* internal-fn.cc (commutative_binary_fn_p): Add new case
+ 	for SAT_MUL.
+ 	* internal-fn.def (SAT_MUL): Add new IFN_SAT_MUL.
+ 	* optabs.def (OPTAB_NL): Remove fixed point limitation.
+ 
+ 2025-07-07  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.md: Removed unused unspecs.
+ 	* config/s390/vector.md (avg<mode>3_ceil): New expander.
+ 	(uavg<mode>3_ceil): New expander.
+ 	(smul<mode>3_highpart): New expander.
+ 	(umul<mode>3_highpart): New expander.
+ 	* config/s390/vx-builtins.md (vec_umulh<mode>): Remove unspec.
+ 	(vec_smulh<mode>): Remove unspec.
+ 
+ 2025-07-07  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Extend
+ 	to handle partial FP modes.
+ 	(@aarch64_pred_fcm<cmp_op><mode>): Likewise.
+ 	(@aarch64_pred_fcmuo<mode>): Likewise.
+ 	(*one_cmpl<mode>3): Rename to...
+ 	(@aarch64_pred_one_cmpl<mode>_z): ... this.
+ 	* config/aarch64/aarch64.cc (aarch64_emit_sve_fp_cond): Allow the
+ 	target and governing predicates to have different modes.
+ 	(aarch64_emit_sve_or_fp_conds): Likewise.
+ 	(aarch64_emit_sve_invert_fp_cond): Likewise.
+ 	(aarch64_expand_sve_vec_cmp_float): Likewise.
+ 
+ 2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR tree-optimization/118891
+ 	* tree-vect-stmts.cc (supportable_widening_operation): Swap the
+ 	hi and lo internal functions on big-endian targets.
+ 
+ 2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
+ 	to the subreg_lsb.
+ 
+ 2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_sve_set_neonq_<mode>):
+ 	Use %Z instead of lowpart_subreg.  Tweak formatting.
+ 
+ 2025-07-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/118891
+ 	* config/aarch64/aarch64.cc (aarch64_expand_vector_init): Fix the
+ 	ZIP1 operand order for big-endian targets.
+ 
+ 2025-07-07  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* tree-ssa-live.cc (dump_scope_block): Print discriminators
+ 	of inlined functions.
+ 
+ 2025-07-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120670
+ 	PR target/120683
+ 	* config/i386/i386-expand.cc (expand_set_or_cpymem_via_loop):
+ 	Don't generate the loop if the loop count is 1.
+ 	(expand_cpymem_epilogue): Use move_by_pieces.
+ 	(setmem_epilogue_gen_val): New.
+ 	(expand_setmem_epilogue): Use store_by_pieces.
+ 	(expand_small_cpymem_or_setmem): Choose cpymem mode from MOVE_MAX.
+ 	For memset with vector and the size is smaller than the vector
+ 	size, first try the narrower vector, otherwise, use the scalar
+ 	value.
+ 	(promote_duplicated_reg): Duplicate the scalar value for vector.
+ 	(ix86_expand_set_or_cpymem): Always expand vector-version of
+ 	memset for vector_loop.  Use misaligned prologue if alignment
+ 	isn't needed and destination isn't aligned.  Always initialize
+ 	vec_promoted_val from the promoted scalar value for vector_loop.
+ 
+ 2025-07-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120709
+ 	* builtins.cc (expand_builtin_crc_table_based): Error out
+ 	instead of asserting the 3rd argument is an integer constant.
+ 	* internal-fn.cc (expand_crc_optab_fn): Likewise.
+ 	* doc/extend.texi (crc): Document requirement of the poly argument
+ 	being a constant.
+ 
+ 2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def: -mmcu= takes lower case MCU names.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2025-07-06  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr-mcus.def (avr32da28S, avr32da32S, avr32da48S)
+ 	(avr64da28S, avr64da32S, avr64da48S avr64da64S)
+ 	(avr128da28S, avr128da32S, avr128da48S, avr128da64S): Add devices.
+ 	* doc/avr-mmcu.texi: Rebuild.
+ 
+ 2025-07-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120951
+ 	* tree-call-cdce.cc (use_internal_fn): For non-call exceptions
+ 	with EQ_EXPR can throw for floating point types, then create
+ 	the EQ_EXPR seperately.
+ 
+ 2025-07-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120921
+ 	* tree-cfg.cc (verify_gimple_assign_single): Reject constant and address expression LHS.
+ 	For non-empty vector constructors, make sure the LHS is an is_gimple_reg.
+ 
+ 2025-07-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc
+ 	(autofdo_source_profile::read): Scale cutoff.
+ 	(read_autofdo_file): Initialize cutoff
+ 	* coverage.cc (read_counts_file): Initialize cutoff to 1.
+ 	* gcov-io.h (struct gcov_summary): Add cutoff field.
+ 	* ipa-inline.cc (inline_small_functions): mac_count can be non-zero
+ 	also with auto_profile.
+ 	* lto-cgraph.cc (output_profile_summary): Write cutoff
+ 	and sum_max.
+ 	(input_profile_summary): Read cutoff and sum max.
+ 	(merge_profile_summaries): Initialize and scale global cutoffs
+ 	and sum max.
+ 	* profile-count.cc: Include profile.h
+ 	(profile_count::force_nonzero): move here from ...; use cutoff.
+ 	* profile-count.h: (profile_count::force_nonzero): ... here.
+ 
+ 2025-07-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* profile-count.cc (profile_count::operator*): fix overflow check.
+ 
+ 2025-07-05  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/rs6000/vxworks.h (SUBTARGET_DRIVER_SELF_SPECS):
+ 	Redefine to select word size matching TARGET_VXWORKS64.
+ 	(TARGET_VXWORKS64): Redefine in terms of TARGET_64BIT.
+ 
+ 2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/118241
+ 	* config/riscv/riscv.md (prefetch): Add alternative "r".
+ 
+ 2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/predicates.md (prefetch_operand): mack 5 bits.
+ 
+ 2025-07-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
+ 
+ 	* config/sh/predicates.md
+ 	(treg_set_expr_not_const01): call sh_recog_treg_set_expr_not_01
+ 	* config/sh/sh-protos.h
+ 	(sh_recog_treg_set_expr_not_01): New function
+ 	* config/sh/sh.cc (sh_recog_treg_set_expr_not_01): Likewise
+ 
+ 2025-07-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c/118948
+ 	* fold-const.cc (tree_expr_nonnegative_warnv_p): Use
+ 	error_operand_p instead of checking for error_mark_node directly.
+ 
+ 2025-07-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case SS_PLUS.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op ss_plus.
+ 
+ 2025-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120944
+ 	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Gate optimizations
+ 	invalid when volatile is involved.
+ 
+ 2025-07-04  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* common.opt: Add period.
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-07-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120927
+ 	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
+ 	Do not force a DRs base alignment when analyzing an
+ 	epilog loop.  Check whether the step preserves alignment
+ 	for all VFs possibly involved sofar.
+ 
+ 2025-07-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/loongarch.md (crc_combine): Avoid nested
+ 	subreg.
+ 
+ 2025-07-04  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Add basic
+ 	instrumentation to all cases where fusion is detected.  Fix
+ 	minor formatting goofs found in the process.
+ 
+ 2025-07-04  panciyan  <panciyan@eswincomputing.com>
+ 
+ 	* match.pd: Add signed scalar SAT_ADD IMM form2 matching.
+ 
+ 2025-07-03  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/s390.cc (expand_perm_with_merge): Add size change cases.
+ 	(expand_perm_with_pack): New function.
+ 	(vectorize_vec_perm_const_1): Wire up new function.
+ 
+ 2025-07-03  Co-authored-by: Daniel Barboza  <dbarboza@ventanamicro.com>
+ 	    Co-authored-by: Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR target/118886
+ 	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Check
+ 	for fusion being disabled earlier.  If PREV is already fused,
+ 	then it can't be fused again.  Be more selective about fusing
+ 	when the destination registers do not match.  Don't fuse into
+ 	loads that aren't scalar integer modes.  Revamp store pair
+ 	commit support.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (aarch64_cbz<optab><mode>1): Move
+ 	above rules for CBB<cond>/CBH<cond>/CB<cond>.
+ 	(*aarch64_tbz<optab><mode>1): Likewise.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_cb_rhs): New function.
+ 	* config/aarch64/aarch64.cc (aarch64_cb_rhs): Likewise.
+ 	* config/aarch64/aarch64.md (cbranch<mode>4): Rename to ...
+ 	(cbranch<GPI:mode>4): ...here, and emit CMPBR if possible.
+ 	(cbranch<SHORT:mode>4): New expand rule.
+ 	(aarch64_cb<INT_CMP:code><GPI:mode>): New insn rule.
+ 	(aarch64_cb<INT_CMP:code><SHORT:mode>): Likewise.
+ 	* config/aarch64/constraints.md (Uc0): New constraint.
+ 	(Uc1): Likewise.
+ 	(Uc2): Likewise.
+ 	* config/aarch64/iterators.md (cmpbr_suffix): New mode attr.
+ 	(INT_CMP): New code iterator.
+ 	(cmpbr_imm_constraint): New code attr.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64-option-extensions.def (cmpbr): New
+ 	option.
+ 	* config/aarch64/aarch64.h (TARGET_CMPBR): New macro.
+ 	* doc/invoke.texi (cmpbr): New option.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (far_branch): Replace 0/1 with
+ 	no/yes.
+ 	(aarch64_bcond): Handle rename.
+ 	(aarch64_cbz<optab><mode>1): Likewise.
+ 	(*aarch64_tbz<optab><mode>1): Likewise.
+ 	(@aarch64_tbz<optab><ALLI:mode><GPI:mode>): Likewise.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (BRANCH_LEN_P_1MiB): New constant.
+ 	(BRANCH_LEN_N_1MiB): Likewise.
+ 	(BRANCH_LEN_P_32KiB): Likewise.
+ 	(BRANCH_LEN_N_32KiB): Likewise.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (condjump): Rename to ...
+ 	(aarch64_bcond): ...here.
+ 	(*compare_condjump<GPI:mode>): Rename to ...
+ 	(*aarch64_bcond_wide_imm<GPI:mode>): ...here.
+ 	(aarch64_cb<optab><mode>): Rename to ...
+ 	(aarch64_cbz<optab><mode>1): ...here.
+ 	(*cb<optab><mode>1): Rename to ...
+ 	(*aarch64_tbz<optab><mode>1): ...here.
+ 	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Rename to ...
+ 	(@aarch64_tbz<optab><ALLI:mode><GPI:mode>): ...here.
+ 	(restore_stack_nonlocal): Handle rename.
+ 	(stack_protect_combined_test): Likewise.
+ 	* config/aarch64/aarch64-simd.md (cbranch<mode>4): Likewise.
+ 	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): Likewise.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (cbranch<mode>4): Reformat.
+ 	(cbranchcc4): Likewise.
+ 	(condjump): Likewise.
+ 	(*compare_condjump<GPI:mode>): Likewise.
+ 	(aarch64_cb<optab><mode>1): Likewise.
+ 	(*cb<optab><mode>1): Likewise.
+ 	(tbranch_<code><mode>3): Likewise.
+ 	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise.
+ 
+ 2025-07-03  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	* config/aarch64/aarch64.md (condjump): Move.
+ 	(*compare_condjump<GPI:mode>): Likewise.
+ 	(aarch64_cb<optab><mode>1): Likewise.
+ 	(*cb<optab><mode>1): Likewise.
+ 	(tbranch_<code><mode>3): Likewise.
+ 	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise.
+ 
+ 2025-07-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR tree-optimization/120780
+ 	* tree-object-size.cc (inner_at_offset,
+ 	get_wholesize_for_memref): New functions.
+ 	(addr_object_size): Call get_wholesize_for_memref.
+ 
+ 2025-07-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120936
+ 	* config/i386/i386.cc (x86_print_call_or_nop): Add a label
+ 	argument and use it to print label.
+ 	(x86_function_profiler): Emit label only when __mcount_loc
+ 	section is used.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (get_combined_location): Handle negative
+ 	offsets; output better diagnostics.
+ 	(get_relative_location_for_locus): Reutrn -1 for unknown location.
+ 	(function_instance::get_cgraph_node): New member function.
+ 	(match_with_target): New function.
+ 	(dump_stmt): New function.
+ 	(function_instance::lookup_count): New function.
+ 	(mark_expr_locations): New function.
+ 	(function_instance::match): New function.
+ 	(autofdo_source_profile::offline_external_functions): Do
+ 	not repeat renaming; manage two worklists and do matching.
+ 	(autofdo_source_profile::offline_unrealized_inlines): Simplify.
+ 	(afdo_set_bb_count): do not look for lost discriminators.
+ 	(auto_profile): Do not ICE when profile reading failed.
+ 	* common.opt (Wauto-profile): New warning flag
+ 	* doc/invoke.texi (-Wauto-profile): Document.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-fnsummary.cc (analyze_function_body): For loop
+ 	heuristics use header count instead of preheader count.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (update_profiling_info): Watch for division by zero.
+ 
+ 2025-07-03  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md
+ 	(vec_load_lanes<mode><vsingle>): Expand else operand in
+ 	subvector mode, as per optab documentation.
+ 	(vec_mask_load_lanes<mode><vsingle>): Add missing mode for
+ 	operand 3.
+ 	* config/aarch64/predicates.md (aarch64_maskload_else_operand):
+ 	Remove const_int.
+ 
+ 2025-07-03  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	* doc/md.texi (Standard Names): Clarify mode of else operand for
+ 	vec_mask_load_lanesmn optab.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (cs_interesting_for_ipcp_p): Handle
+ 	correctly GLOBAL0 afdo counts.
+ 	(ipcp_cloning_candidate_p): Do not rule out nodes
+ 	!node->optimize_for_size_p ().
+ 	(good_cloning_opportunity_p): Handle afdo counts
+ 	as non-zero.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (hint_time_bonus): Return sreal and avoid
+ 	conversions to integer.
+ 	(good_cloning_opportunity_p): Avoid sreal to integer
+ 	conversions
+ 	(perform_estimation_of_a_value): Update.
+ 
+ 2025-07-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_hot_bb_threshod): New global
+ 	variable.
+ 	(maybe_hot_afdo_count_p): New function.
+ 	(autofdo_source_profile::read): Do not set up dump file;
+ 	set afdo_hot_bb_threshod.
+ 	(afdo_annotate_cfg): Handle partial training.
+ 	(afdo_callsite_hot_enough_for_early_inline):
+ 	Use maybe_hot_afdo_count_p.
+ 	(auto_profile_offline::execute): Read autofdo file.
+ 	* auto-profile.h (maybe_hot_afdo_count_p): Declare.
+ 	(afdo_hot_bb_threshold): Declare.
+ 	* coverage.cc (read_counts_file): Also set gcov_profile_info.
+ 	(coverage_init): Do not read autofdo file.
+ 	* opts.cc (enable_fdo_optimizations): Add autofdo parameter;
+ 	do not set flag_branch_probabilities and flag_profile_values
+ 	with it.
+ 	(common_handle_option): Update.
+ 	* passes.cc (finish_optimization_passes): Do not end branch
+ 	prob here.
+ 	(pass_manager::dump_profile_report): Also mark change after
+ 	autofdo pass.
+ 	* profile.cc: Include auto-profile.h
+ 	(gcov_profile_info): New global variable.
+ 	(struct afdo_fdo_record): New struture.
+ 	(compute_branch_probabilities): Record afdo profile.
+ 	(end_branch_prob): Dump afdo/fdo profile comparsion.
+ 	* profile.h (gcov_profile_info): Declarre.
+ 	* tree-profile.cc (tree_profiling): Call end_branch_prob
+ 	(pass_ipa_tree_profile::gate): Also enable with autoFDO
+ 
+ 2025-07-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/118669
+ 	* tree-vect-stmts.cc (vectorizable_load): Emit loads
+ 	with proper (element) alignment.
+ 	(vectorizable_store): Likewise.
+ 
+ 2025-07-03  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120908
+ 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
+ 	gen_tls_local_dynamic_64.
+ 	* config/i386/i386.md (*tls_global_dynamic_64_largepic): Add
+ 	RDI clobber and use it to generate LEA.
+ 	(*tls_local_dynamic_64_<mode>): Likewise.
+ 	(*tls_local_dynamic_base_64_largepic): Likewise.
+ 	(@tls_local_dynamic_64_<mode>): Add a clobber.
+ 
+ 2025-07-02  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120908
+ 	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
+ 	gen_tls_global_dynamic_64.
+ 	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Add RDI
+ 	clobber and use it to generate LEA.
+ 	(@tls_global_dynamic_64_<mode>): Add a clobber.
+ 
+ 2025-07-02  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR target/120356
+ 	* config/riscv/riscv-v.cc
+ 	(expand_const_vector_interleaved_stepped_npatterns):
+ 	Fix ASHIFT to LSHIFTRT insn.
+ 
+ 2025-07-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120927
+ 	* tree-vect-loop.cc (vect_analyze_loop): Stop querying
+ 	further epilogues after one with partial vectors.
+ 
+ 2025-07-02  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/driver-i386.cc (host_detect_local_cpu): Change
+ 	to AMX-FP8 for Diamond Rapids.
+ 
+ 2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* tree-object-size.cc (access_with_size_object_size): Update comments
+ 	for pointers with .ACCESS_WITH_SIZE.
+ 	(collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN
+ 	for pointers with .ACCESS_WITH_SIZE.
+ 
+ 2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
+ 
+ 	* doc/extend.texi: Extend counted_by attribute to pointer fields in
+ 	structures. Add one more requirement to pointers with counted_by
+ 	attribute.
+ 
+ 2025-07-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120471
+ 	* tree.h (address_invariant_p): New function.
+ 	* tree.cc (address_invariant_p): New function.
+ 	(tree_invariant_p_1): Use it for ADDR_EXPR handling.  Formatting
+ 	tweak.
+ 
+ 2025-07-01  Remi Machet  <rmachet@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-simd.md (*shrn_to_subhn_<mode>): Add pattern
+ 	converting mvn+shrn into mvni+subhn.
+ 
+ 2025-07-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* passes.def (pass_musttail): Move before pass_sanopt.
+ 	* tree-tailcall.cc (empty_eh_cleanup): Handle GIMPLE_RESX
+ 	which doesn't throw externally through recursion on single
+ 	eh edge (if any and cnt still allows that).
+ 	(find_tail_calls): Add ESUCC, IGNORED_EDGES and MUST_SEE_BBS
+ 	arguments.  Handle GIMPLE_CONDs for non-simplified cleanups with
+ 	finally_tmp temporaries both on backward and forward walks, adjust
+ 	recursive call.
+ 	(tree_optimize_tail_calls_1): Adjust find_tail_calls callers.
+ 
+ 2025-07-01  Ezra Sitorus  <ezra.sitorus@arm.com>
+ 
+ 	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
+ 
+ 2025-07-01  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR debug/120902
+ 	* print-tree.cc (debug with const tree_node *): Call debug_tree
+ 	instead of debug.
+ 
+ 2025-07-01  Yuao Ma  <c8ef@outlook.com>
+ 
+ 	* fold-const-call.cc (fold_const_call_ss): Constant fold for
+ 	single arg pi-based trigonometric builtins.
+ 	(fold_const_call_sss): Constant fold for double arg pi-based
+ 	trigonometric builtins.
+ 	* fold-const.cc (negate_mathfn_p): asinpi/atanpi is odd func.
+ 	(tree_call_nonnegative_warnv_p): acospi always non-neg,
+ 	asinpi/atanpi non-neg iff arg non-neg.
+ 	* tree-call-cdce.cc (can_test_argument_range): Add acospi/asinpi.
+ 	(edom_only_function): Add acospi/asinpi/cospi/sinpi.
+ 	(get_no_error_domain): Add acospi/asinpi.
+ 
+ 2025-06-30  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/120242
+ 	PR rtl-optimization/120627
+ 	PR rtl-optimization/120736
+ 	PR rtl-optimization/120813
+ 	* ext-dce.cc (ext_dce_process_uses): Remove some cases where we
+ 	unnecessarily expanded live sets for promoted subregs.
+ 	(expand_changed_pseudos): New function.
+ 	(reset_subreg_promoted_p): Use it.
+ 
+ 2025-06-30  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR target/120714
+ 	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
+ 	Fix SP-addresses in REG_CFA_DEF_CFA notes for stack-clash case.
+ 
+ 2025-06-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-color.cc: Use nullptr rather than NULL.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic-macro-unwinding.cc: Likewise.
+ 	* diagnostic-path-output.cc: Likewise.
+ 	* diagnostic-path.cc: Likewise.
+ 	* diagnostic-show-locus.cc: Likewise.
+ 	* diagnostic-spec.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* lazy-diagnostic-path.cc: Likewise.
+ 	* simple-diagnostic-path.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 
+ 2025-06-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::maybe_make_kinds_array): Convert
+ 	diagnostic_event::meaning enums to enum class.
+ 	* diagnostic-path-output.cc (path_label::get_text): Likewise.
+ 	* 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.h (diagnostic_event::verb): Likewise.
+ 	(diagnostic_event::noun): Likewise.
+ 	(diagnostic_event::property): Likewise.
+ 	(diagnostic_event::meaning): Likewise.
+ 
+ 2025-06-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Drop diagnostic-format-json.o.
+ 	* common.opt (fdiagnostics-format=): Drop
+ 	"json|json-stderr|json-file".
+ 	(diagnostics_output_format): Drop values "json", "json-stderr",
+ 	and "json-file".
+ 	* diagnostic-format-json.cc: Delete file.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format_init_json_stderr): Delete.
+ 	(diagnostic_output_format_init_json_file): Delete.
+ 	* diagnostic.cc (diagnostic_output_format_init): Delete cases for
+ 	DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR and
+ 	DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
+ 	* diagnostic.h (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): Delete.
+ 	(DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE): Delete.
+ 	* doc/invoke.texi: Remove references to json output format.
+ 	* doc/ux.texi: Likewise.
+ 	* selftest-run-tests.cc (selftest::run_tests): Drop call to
+ 	deleted selftest::diagnostic_format_json_cc_tests.
+ 	* selftest.h (selftest::diagnostic_format_json_cc_tests): Delete.
+ 
+ 2025-06-30  Mark Wielaard  <mark@klomp.org>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-06-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add
+ 	new case US_MINUS.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op us_minus.
+ 
+ 2025-06-30  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/109116
+ 	* config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT.
+ 	(vsx_disassemble_pair): Expand into a vector register sized subreg.
+ 	(mma_disassemble_acc): Likewise.
+ 	(*vsx_disassemble_pair): Delete.
+ 	(*mma_disassemble_acc): Likewise.
+ 
+ 2025-06-30  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/sifive-7.md: Add primary vector pipeline model
+ 	for SiFive 7 series.
+ 
+ 2025-06-30  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/120659
+ 	* config/riscv/sifive-7.md: Add B extension, fp16 and missing
+ 	scalar instruction type for sifive-7 pipeline model.
+ 
+ 2025-06-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_build_slp_2): Handle ternary
+ 	and call operators when swapping operands.
+ 
+ 2025-06-30  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*vfnmsub_<mode>,*vfnmadd_<mode>): Handle
+ 	both add and acc variants.
+ 	* config/riscv/vector.md (*pred_mul_neg_<optab><mode>_scalar_undef): New
+ 	pattern.
+ 
+ 2025-06-30  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (gb10): New entry.
+ 	* config/aarch64/aarch64-tune.md: Regenerate.
+ 	* doc/invoke.texi (AArch64 Options): Document the above.
+ 
+ 2025-06-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/120520
+ 	PR c/117023
+ 	* builtin-attrs.def (DEF_LIST_INT_INT_INT): Define it and
+ 	use for 1,2,3.
+ 	(ATTR_NONNULL_IF123_LIST): New DEF_ATTR_TREE_LIST.
+ 	(ATTR_NONNULL_4_IF123_LIST): Likewise.
+ 	* builtins.def (BUILT_IN_FWRITE): Use ATTR_NONNULL_4_IF123_LIST
+ 	instead of ATTR_NONNULL_LIST.
+ 	(BUILT_IN_FWRITE_UNLOCKED): Likewise.
+ 	* gimple.h (infer_nonnull_range_by_attribute): Add another optional
+ 	tree * argument defaulted to NULL.
+ 	* gimple.cc (infer_nonnull_range_by_attribute): Add OP3 argument,
+ 	handle 3 argument nonnull_if_nonzero attribute.
+ 	* builtins.cc (validate_arglist): Handle 3 argument nonnull_if_nonzero
+ 	attribute.
+ 	* tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Likewise.
+ 	* ubsan.cc (instrument_nonnull_arg): Adjust
+ 	infer_nonnull_range_by_attribute caller, handle 3 argument
+ 	nonnull_if_nonzero attribute.
+ 	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
+ 	Handle 3 argument nonnull_if_nonzero attribute.
+ 	* doc/extend.texi (nonnull_if_nonzero): Document 3 argument version
+ 	of the attribute.
+ 
+ 2025-06-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120733
+ 	* lra-eliminations.cc (move_plus_up): Check whether lowpart_subreg
+ 	returns null.
+ 
+ 2025-06-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (autofdo_source_profile::offline_external_functions):
+ 	Add missing newline in dump.
+ 	(afdo_propagate_edge): If annotated BB or edge has too small count
+ 	bump it up to mitigate profile imprecisions caused by vectorizer.
+ 	(afdo_propagate): Increase number of iteraitons and fix dump
+ 
+ 2025-06-30  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (struct decl_lineno): Turn to structure; add
+ 	location.
+ 	(dump_inline_stack): Update.
+ 	(get_inline_stack): Update.
+ 	(get_relative_location_for_locus): Fixup formating.
+ 	(function_instance::get_function_instance_by_decl): Add
+ 	LOCATION parameter; improve dumping.
+ 	(autofdo_source_profile::get_callsite_total_count): Improve dumping;
+ 	update.
+ 	(walk_block): Update.
+ 	(autofdo_source_profile::offline_unrealized_inlines): Update.
+ 	(autofdo_source_profile::get_count_info): Update.
+ 
+ 2025-06-30  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120840
+ 	* config/i386/i386-expand.cc (ix86_expand_call): Don't mark
+ 	hard frame pointer as clobber.
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Use
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS instead of
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
+ 	* config/i386/i386.cc (ix86_function_ok_for_sibcall): Remove the
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP check.
+ 	(ix86_save_reg): Merge TYPE_NO_CALLEE_SAVED_REGISTERS and
+ 	TYPE_PRESERVE_NONE with TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
+ 	* config/i386/i386.h (call_saved_registers_type): Remove
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
+ 	* doc/extend.texi: Update no_callee_saved_registers documentation.
+ 
+ 2025-06-30  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-vsetvl.cc (bitmap_union_of_preds_with_entry):
+ 	Refactor.
+ 
+ 2025-06-30  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/pipeline-checker: New file.
+ 
+ 2025-06-28  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR debug/120849
+ 	* print-tree.cc (debug): New.
+ 	* print-tree.h (debug): Likewise.
+ 
+ 2025-06-28  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/120856
+ 	* config/avr/avr.cc (avr_hard_regno_mode_ok) [-mno-lra]: Deny
+ 	hard regs >= 4 bytes that overlap Y.
+ 
+ 2025-06-28  Jan Hubicka  <hubicka@ucw.cz>
+ 	    Kugan Vivekanandarajah   <kvivekananda@nvidia.com>
+ 
+ 	* auto-profile.cc (get_original_name): Only strip suffixes introduced
+ 	after auto-fdo annotation.
+ 	(string_table::get_index_by_decl):  Simplify.
+ 	(string_table::add_name): New member function.
+ 	(string_table::read): Micro-optimize allocation.
+ 	(function_instance::get_function_instance_by_decl): Dump reasons
+ 	for failure; try to compensate lost discriminators.
+ 	(function_instance::merge): Simplify sanity check; do not check
+ 	for realized flag; fix merging of targets.
+ 	(function_instance::offline_if_in_set): Simplify.
+ 	(function_instance::dump): Sanity check that names are consistent.
+ 	(autofdo_source_profile::offline_external_functions): Also handle
+ 	stripping suffixes.
+ 	(walk_block): Move up in source.
+ 	(autofdo_source_profile::offline_unrealized_inlines): Also compute
+ 	realized functions.
+ 	(autofdo_source_profile::get_function_instance_by_name_index): Simplify.
+ 	(autofdo_source_profile::add_function_instance): Simplify.
+ 	(autofdo_source_profile::read): Do not strip suffxies; error on duplicates.
+ 	(mark_realized_functions): Remove.
+ 	(auto_profile): Do not call mark_realized_functions.
+ 	* passes.def: Move auto_profile_offline before free_lang_data.
+ 
+ 2025-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimple-fold.cc (fold_const_aggregate_ref_1) <COMPONENT_REF>:
+ 	Bail out immediately if the reference has reverse storage order.
+ 	* tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise.
+ 
+ 2025-06-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120777
+ 	* gimple-fold.cc (gimple_get_virt_method_for_vtable): Revert
+ 	2018-09-18 changes.
+ 
+ 2025-06-27  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/98735
+ 	PR c++/118904
+ 	* tree.cc (struct identifier_hash): New type.
+ 	(struct identifier_count_traits): New traits.
+ 	(internal_label_nums): New hash map.
+ 	(generate_internal_label): New function.
+ 	(prefix_for_internal_label): New function.
+ 	* tree.h (IDENTIFIER_INTERNAL_P): New macro.
+ 	(generate_internal_label): Declare.
+ 	(prefix_for_internal_label): Declare.
+ 	* ubsan.cc (ubsan_ids): Remove.
+ 	(ubsan_type_descriptor): Use generate_internal_label.
+ 	(ubsan_create_data): Likewise.
+ 
+ 2025-06-27  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::set_name,
+ 	function_instance::set_realized, function_instnace::realized_p,
+ 	function_instance::set_in_worklist,
+ 	function_instance::clear_in_worklist,
+ 	function_instance::in_worklist_p): New member functions.
+ 	(function_instance::in_worklist, function_instance::realized_):
+ 	new.
+ 	(get_relative_location_for_locus): Break out from ....
+ 	(get_relative_location_for_stmt): ... here.
+ 	(function_instance::~function_instance): Sanity check that
+ 	removed function is not in worklist.
+ 	(function_instance::merge): Do not offline realized instances.
+ 	(function_instance::offline): Make private; add duplicate functions
+ 	to worklist rather then merging immediately.
+ 	(function_instance::offline_if_in_set):  Cleanup.
+ 	(function_instance::remove_external_functions): Likewise.
+ 	(function_instance::offline_if_not_realized): New member function.
+ 	(autofdo_source_profile::offline_external_functions): Handle delayed
+ 	functions.
+ 	(autofdo_source_profile::offline_unrealized_inlines): New member function.
+ 	(walk_block): New function.
+ 	(mark_realized_functions): New function.
+ 	(afdo_annotate_cfg): Fix dump.
+ 	(auto_profile): Mark realized functions and offline rest; do not compute
+ 	fn summary.
+ 
+ 2025-06-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/113934
+ 	* config/avr/avr.opt (-mlra): Turn on per default.
+ 
+ 2025-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120808
+ 	* tree-vect-slp-patterns.cc (vect_match_expression_p):
+ 	Take a code_helper and also match calls.
+ 	(addsub_pattern::recognize): Handle .FMA/.FMS pairs
+ 	in addition to PLUS/MINUS.
+ 	(addsub_pattern::build): Adjust.
+ 
+ 2025-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_chooses_same_modes_p): New
+ 	overload.
+ 	* tree-vect-stmts.cc (vect_chooses_same_modes_p): Likewise.
+ 	* tree-vect-loop.cc (vect_analyze_loop): Prune epilogue
+ 	analysis further when not using partial vectors.
+ 
+ 2025-06-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop): Consider AVX512
+ 	style masking when computing supports_partial_vectors.
+ 
+ 2025-06-27  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/extend.texi: Fix typo in unsed attribute docs.
+ 
+ 2025-06-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120830
+ 	* config/i386/i386-features.cc (ix86_get_vector_cse_mode): Handle
+ 	vector broadcast source.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (elimination_2sp_occurred_p): Rename
+ 	from...
+ 	(elimination_fp2sp_occured_p): ... this.  Adjust all uses.
+ 	(lra_eliminate_regs_1): Don't require a from-frame-pointer
+ 	elimination to set it.
+ 	(update_reg_eliminate): Likewise to test it.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (lra_eliminate_regs_1): Adjust autoinc
+ 	addresses that are MEMs.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (lra_update_fp2sp_elimination): Reorder
+ 	and regroup related statements.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (lra_update_fp2sp_elimination):
+ 	Avoid sp offsets in further fp2sp eliminations...
+ 	(update_reg_eliminate): ... and restore to_rtx before assert
+ 	checking.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (lra_update_fp2sp_elimination):
+ 	Compute complete live ranges and recompute slots' live ranges
+ 	if needed.
+ 	* lra-lives.cc (lra_reset_live_range_list): New.
+ 	(lra_complete_live_ranges): New.
+ 	* lra-spills.cc (assign_spill_hard_regs): Reject empty live
+ 	ranges.
+ 	(add_pseudo_to_slot): Likewise.
+ 	(lra_recompute_slots_live_ranges): New.
+ 	* lra-int.h (lra_reset_live_range_list): Declare.
+ 	(lra_complete_live_ranges): Declare.
+ 	(lra_recompute_slots_live_ranges): Declare.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* genoutput.cc (scan_operands): Make MATCH_SCRATCHes eliminable.
+ 
+ 2025-06-27  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	* lra-eliminations.cc (lra_update_fp2sp_elimination):
+ 	Inactivate the unused fp2sp elimination right away.
+ 
+ 2025-06-26  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/pru/pru.md (reg move splitter): New splitter for 64-bit
+ 	register moves into two 32-bit moves.
+ 	(const_int move splitter): New splitter for 64-bit constant
+ 	integer moves into two 32-bit moves.
+ 
+ 2025-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_context::set_permissive_option): New.
+ 	(diagnostic_context::set_fatal_errors): New.
+ 	(diagnostic_context::set_internal_error_callback): New.
+ 	(diagnostic_context::set_adjust_diagnostic_info_callback): New.
+ 	(diagnostic_context::inhibit_notes): New.
+ 	(diagnostic_context::m_opt_permissive): Make private.
+ 	(diagnostic_context::m_fatal_errors): Likewise.
+ 	(diagnostic_context::m_internal_error): Likewise.
+ 	(diagnostic_context::m_adjust_diagnostic_info): Likewise.
+ 	(diagnostic_context::m_inhibit_notes_p): Likewise.
+ 	(diagnostic_inhibit_notes): Delete.
+ 	* opts.cc (common_handle_option): Use
+ 	diagnostic_context::set_fatal_errors.
+ 	* toplev.cc (internal_error_function): Use
+ 	diagnostic_context::set_internal_error_callback.
+ 	(general_init): Likewise.
+ 	(process_options): Use diagnostic_context::inhibit_notes.
+ 
+ 2025-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/120809
+ 	* diagnostic-format-html.cc
+ 	(html_builder::maybe_make_state_diagram): Bulletproof against the
+ 	SVG generation failing.
+ 	* xml.cc (xml::printer::push_element): Assert that the ptr is
+ 	nonnull.
+ 	(xml::printer::append): Likewise.
+ 
+ 2025-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-output-spec.cc (sarif_scheme_handler::make_sink):
+ 	Split out creation of sarif_generation_options and
+ 	sarif_serialization_format into...
+ 	(sarif_scheme_handler::make_sarif_gen_opts): ...this...
+ 	(sarif_scheme_handler::make_sarif_serialization_object): ...and
+ 	this.
+ 
+ 2025-06-26  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/120828
+ 	* config/riscv/riscv-v.cc (prepare_ternary_operands): Handle the
+ 	vector-scalar case.
+ 
+ 2025-06-26  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120719
+ 	* config/i386/i386.md (crc_rev<SWI124:mode>si4): New expander.
+ 
+ 2025-06-26  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.md: Fix build issue.
+ 
+ 2025-06-26  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* lto-ltrans-cache.h (class ltrans_file_cache): Remove member prefix.
+ 	* lto-ltrans-cache.cc (ltrans_file_cache::ltrans_file_cache): Do
+ 	not initialize member prefix.
+ 
+ 2025-06-26  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.md: Add comment and reorder include
+ 	files.
+ 
+ 2025-06-26  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-vect-stmts.cc (supportable_indirect_convert_operation):
+ 	Remove an unused shadowed variable.
+ 
+ 2025-06-26  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-vect-slp.cc (cond_expr_maps): Remove.
+ 
+ 2025-06-26  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::merge): Add TODO.
+ 	(autofdo_source_profile::offline_external_functions):
+ 	Do not use range for on the worklist.
+ 	* timevar.def (TV_IPA_AUTOFDO_OFFLINE): New timevar.
+ 
+ 2025-06-26  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (name_index_set, name_index_map): New types.
+ 	(dump_afdo_loc): New function.
+ 	(dump_inline_stack): Simplify.
+ 	(function_instance::merge): Merge recursively inlined functions;
+ 	offline if necessary; collect new fnctions.
+ 	(function_instance::offline): New member function.
+ 	(function_instance::offline_if_in_set): New member function.
+ 	(function_instance::remove_external_functions): New member function.
+ 	(function_instance::dump): New member function.
+ 	(function_instance::debug): New member function.
+ 	(function_instance::dump_inline_stack): New member function.
+ 	(function_instance::find_icall_target_map): Use removed_icall_target.
+ 	(function_instance::remove_icall_target): Only mark icall target removed.
+ 	(autofdo_source_profile::offline_external_functions): New function.
+ 	(function_instance::read_function_instance): Record inlined_to pointers;
+ 	use -1 for unknown head counts.
+ 	(autofdo_source_profile::get_function_instance_by_name_index): New
+ 	function.
+ 	(autofdo_source_profile::add_function_instance): New member function.
+ 	(autofdo_source_profile::read): Do not leak memory; fix formatting.
+ 	(read_profile): Fix formatting.
+ 	(afdo_annotate_cfg): LIkewise.
+ 	(class pass_ipa_auto_profile_offline): New pass.
+ 	(make_pass_ipa_auto_profile_offline): New function.
+ 	* passes.def (pass_ipa_auto_profile_offline): Add
+ 	* tree-pass.h (make_pass_ipa_auto_profile): Declare
+ 
+ 2025-06-26  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120819
+ 	* config/i386/i386-features.cc (ix86_broadcast_inner): Also handle
+ 	all 1s float vector constant.
+ 
+ 2025-06-26  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120816
+ 	* config/i386/i386-features.cc (remove_redundant_vector_load):
+ 	Handle REG_EH_REGION note in DEF_INSN.
+ 
+ 2025-06-26  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/119628
+ 	* config/i386/i386-expand.cc (ix86_expand_call): Call
+ 	ix86_type_no_callee_saved_registers_p instead of looking up
+ 	no_callee_saved_registers attribute.
+ 	* config/i386/i386-options.cc (ix86_set_func_type): Look up
+ 	preserve_none attribute.  Check preserve_none attribute for
+ 	interrupt attribute.  Don't check no_caller_saved_registers nor
+ 	no_callee_saved_registers conflicts here.
+ 	(ix86_set_func_type): Check no_callee_saved_registers before
+ 	checking no_caller_saved_registers attribute.
+ 	(ix86_set_current_function): Allow SSE with
+ 	no_caller_saved_registers attribute.
+ 	(ix86_handle_call_saved_registers_attribute): Check preserve_none,
+ 	no_callee_saved_registers and no_caller_saved_registers conflicts.
+ 	(ix86_gnu_attributes): Add preserve_none attribute.
+ 	* config/i386/i386-protos.h (ix86_type_no_callee_saved_registers_p):
+ 	New.
+ 	* config/i386/i386.cc
+ 	(x86_64_preserve_none_int_parameter_registers): New.
+ 	(ix86_using_red_zone): Don't use red-zone when there are no
+ 	caller-saved registers with SSE.
+ 	(ix86_type_no_callee_saved_registers_p): New.
+ 	(ix86_function_ok_for_sibcall): Also check TYPE_PRESERVE_NONE
+ 	and call ix86_type_no_callee_saved_registers_p instead of looking
+ 	up no_callee_saved_registers attribute.
+ 	(ix86_comp_type_attributes): Call
+ 	ix86_type_no_callee_saved_registers_p instead of looking up
+ 	no_callee_saved_registers attribute.  Return 0 if preserve_none
+ 	attribute doesn't match in 64-bit mode.
+ 	(ix86_function_arg_regno_p): For cfun with TYPE_PRESERVE_NONE,
+ 	use x86_64_preserve_none_int_parameter_registers.
+ 	(init_cumulative_args): Set preserve_none_abi.
+ 	(function_arg_64): Use x86_64_preserve_none_int_parameter_registers
+ 	with preserve_none attribute.
+ 	(setup_incoming_varargs_64): Use
+ 	x86_64_preserve_none_int_parameter_registers with preserve_none
+ 	attribute.
+ 	(ix86_save_reg): Treat TYPE_PRESERVE_NONE like
+ 	TYPE_NO_CALLEE_SAVED_REGISTERS.
+ 	(ix86_nsaved_sseregs): Allow saving XMM registers for
+ 	no_caller_saved_registers attribute.
+ 	(ix86_compute_frame_layout): Likewise.
+ 	(x86_this_parameter): Use
+ 	x86_64_preserve_none_int_parameter_registers with preserve_none
+ 	attribute.
+ 	* config/i386/i386.h (ix86_args): Add preserve_none_abi.
+ 	(call_saved_registers_type): Add TYPE_PRESERVE_NONE.
+ 	(machine_function): Change call_saved_registers to 3 bits.
+ 	* doc/extend.texi: Add preserve_none attribute.  Update
+ 	no_caller_saved_registers attribute to remove -mgeneral-regs-only
+ 	restriction.
+ 
+ 2025-06-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-features.cc (ix86_place_single_vector_set):
+ 	Add debug dump.
+ 	(replace_vector_const): Likewise.
+ 	(remove_redundant_vector_load): Likewise.
+ 
+ 2025-06-25  Luis Silva  <luiss@synopsys.com>
+ 
+ 	* config/arc/arc.md (<su_optab>mulvsi4): New define_expand.
+ 	(<su_optab>mulsi3_Vcmp): New define_insn.
+ 
+ 2025-06-25  Luis Silva  <luiss@synopsys.com>
+ 
+ 	* config/arc/arc.cc (arc_select_cc_mode): Handle multiplication
+ 	results compared against zero, selecting CC_Zmode.
+ 	* config/arc/arc.md (*mulsi3_cmp0): New define_insn.
+ 	(*mulsi3_cmp0_noout): New define_insn.
+ 
+ 2025-06-25  Shahab Vahedi  <shahab@synopsys.com>
+ 
+ 	* config/arc/arc.md (subsi3_v, subvsi4, subsi3_c): New patterns.
+ 
+ 2025-06-25  Shahab Vahedi  <shahab@synopsys.com>
+ 
+ 	* config/arc/arc-modes.def (CC_V): New mode.
+ 	* config/arc/arc-protos.h (arc_gen_unlikely_cbranch): New
+ 	function declaration.
+ 	* config/arc/arc.cc (arc_gen_unlikely_cbranch): New
+ 	function.
+ 	(get_arc_condition_code): Handle new mode.
+ 	* config/arc/arc.md (addvsi3_v, addvsi4, addsi3_c, uaddvsi4): New
+ 	patterns.
+ 	* config/arc/predicates.md (proper_comparison_operator): Handel
+ 	the new V_mode.
+ 	(equality_comparison_operator): Likewise.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* diagnostic-path-output.cc (path_label::get_effects): Mark as
+ 	final override.
+ 	* diagnostic-format-html.cc
+ 	(html_output_format::after_diagnostic): Likewise.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* gimple-range-op.cc
+ 	(gimple_range_op_handler::maybe_builtin_call): Use
+ 	CFN_BUILT_IN_ISINF instead of BUILT_IN_ISINF.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* value-relation.h (class dom_oracle): Mark member function
+ 	next_relation as override.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-ssa-propagate.h (class substitute_and_fold_engine): Mark
+ 	member functions value_of_expr and range_of_expr as override.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* range-op-mixed.h (class operator_plus): Mark member function
+ 	overflow_free_p as final override.
+ 	(class operator_minus): Likewise.
+ 	(class operator_mult): Likewise.
+ 	* range-op-ptr.cc (class pointer_plus_operator): Mark member
+ 	function lhs_op1_relation as final override.
+ 	* range-op.cc (class operator_div::): Mark member functions
+ 	op2_range and update_bitmask as final override.
+ 	(class operator_logical_and): Mark member functions fold_range,
+ 	op1_range and op2_range as final override.  Remove unnecessary
+ 	virtual.
+ 	(class operator_logical_or): Likewise.
+ 	(class operator_logical_not): Mark member functions fold_range and
+ 	op1_range as final override.  Remove unnecessary virtual.
+ 	formatting easier.
+ 	(class operator_absu): Mark member functions wi_fold as final
+ 	override.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* gimple-ssa-sccopy.cc (class pass_sccopy): Mark member functions
+ 	gate and execute as final override.
+ 
+ 2025-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* avoid-store-forwarding.cc (class
+ 	pass_rtl_avoid_store_forwarding): Mark member function gate as
+ 	final override.
+ 
+ 2025-06-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-relation.cc (relation_to_code): Remove.
+ 
+ 2025-06-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (frange::verify_range): Constify.
+ 	(irange::verify_range): Constify.
+ 	* value-range.h (vrange::verify_range): New.
+ 	(irange::verify_range): Make public.
+ 	(prange::verify_range): Make public.
+ 	(prange::verify_range): Make public.
+ 	(value_range::verify_range): New.
+ 
+ 2025-06-25  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange::get_bitmask): Return original mask if
+ 	result is unknown.
+ 	(assert_snap_result): New.
+ 	(test_irange_snap_bounds): New.
+ 	(range_tests_misc): Call test_irange_snap_bounds.
+ 
+ 2025-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/109892
+ 	* tree-vect-loop.cc (check_reduction_path): Handle fma.
+ 	(vectorizable_reduction): Apply FOLD_LEFT_REDUCTION code
+ 	generation constraints.
+ 
+ 2025-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120808
+ 	* tree-vectorizer.h (compatible_calls_p): Add flag to
+ 	indicate a FMA/FMS pair is allowed.
+ 	* tree-vect-slp.cc (compatible_calls_p): Likewise.
+ 	(vect_build_slp_tree_1): Allow mixed .FMA/.FMS as two-operator.
+ 	(vect_build_slp_tree_2): Handle calls in two-operator SLP build.
+ 	* tree-vect-slp-patterns.cc (compatible_complex_nodes_p):
+ 	Adjust.
+ 
+ 2025-06-25  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* tree-ssa-loop-ivopts.cc (constant_multiple_of): Change
+ 	tree_to_aff_combination to tree_to_aff_combination_expand and add
+ 	parameter to take ivopts_data.
+ 	(get_computation_aff_1): Change parameters and calls to include
+ 	ivopts_data.
+ 	(get_computation_aff): Ditto.
+ 	(get_computation_at) Ditto.:
+ 	(get_debug_computation_at) Ditto.:
+ 	(get_computation_cost) Ditto.:
+ 	(rewrite_use_nonlinear_expr) Ditto.:
+ 	(rewrite_use_address) Ditto.:
+ 	(rewrite_use_compare) Ditto.:
+ 	(remove_unused_ivs) Ditto.:
+ 
+ 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120745
+ 	* rtl-ssa/changes.cc (process_uses_of_deleted_def): Rewrite to
+ 	handle deletions of non-degenerate phis.
+ 
+ 2025-06-25  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120815
+ 	* common/config/i386/i386-common.cc (processor_alias_table):
+ 	Replace CPU_SLM/PTA_NEHALEM with CPU_HASWELL/PTA_HASWELL for
+ 	PROCESSOR_INTEL.
+ 	* config/i386/i386-options.cc (processor_cost_table): Replace
+ 	intel_cost with alderlake_cost.
+ 	* config/i386/x86-tune-costs.h (intel_cost): Removed.
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Treat
+ 	PROCESSOR_INTEL like PROCESSOR_ALDERLAKE.
+ 	(ix86_adjust_cost): Likewise.
+ 	* doc/invoke.texi: Update -mtune=intel for Diamond Rapids and
+ 	Clearwater Forest.
+ 
+ 2025-06-25  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h (PTA_ALDERLAKE): Use PTA_GOLDMONT_PLUS
+ 	as base to remove PTA_CLDEMOTE.
+ 	(PTA_SIERRAFOREST): Add PTA_CLDEMOTE since PTA_ALDERLAKE
+ 	does not include that anymore.
+ 	* doc/invoke.texi: Update texi file.
+ 
+ 2025-06-25  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New Profiles.
+ 
+ 2025-06-25  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* common.opt: (fauto-profile-inlining): New
+ 	* doc/invoke.texi (-fauto-profile-inlining): Document.
+ 	* ipa-inline.cc (inline_functions_by_afdo): Check
+ 	flag_auto_profile.
+ 	(early_inliner): Also do inline_functions_by_afdo with
+ 	!flag_early_inlining.
+ 
+ 2025-06-25  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc: Update toplevel comment.
+ 	(early_inline): Remove.
+ 	(auto_profile): Don't do early inlining.
+ 
+ 2025-06-24  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-opts.h (TARGET_GLC_NAME): Fix and extend the
+ 	description in the comment.
+ 	* config/gcn/gcn.cc (print_operand): Extend the comment about
+ 	'G' and 'g'.
+ 	* config/gcn/gcn.md: Use 'glc' instead of %G where appropriate.
+ 
+ 2025-06-24  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Handle both add and
+ 	acc FMA variants.
+ 	* config/riscv/vector.md (*pred_mul_<optab><mode>_scalar_undef): New.
+ 
+ 2025-06-24  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.md
+ 	(@pro_epilogue_adjust_stack_add_nocc<mode>): Add type attribute.
+ 	(pro_epilogue_adjust_stack_add_nocc peephole2 pattern):
+ 	Convert pro_epilogue_adjust_stack_add_nocc variant to
+ 	pro_epilogue_adjust_stack_add when FLAGS_REG is dead.
+ 
+ 2025-06-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Remove non-SLP
+ 	paths and propagate out ncopies == 1.
+ 
+ 2025-06-24  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* diagnostic-state-to-dot.cc (get_color_for_dynalloc_state):
+ 	Rename argument dynalloc_state to dynalloc_st.
+ 	(add_title_tr): Rename argument style to styl.
+ 	(on_xml_node): Rename local variable dynalloc_state to dynalloc_st.
+ 
+ 2025-06-24  Yuao Ma  <c8ef@outlook.com>
+ 
+ 	* tree-call-cdce.cc (edom_only_function): Remove atan.
+ 
+ 2025-06-24  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (VF): Don't restrict modes.
+ 	(VEC_SET_SINGLEFLOAT): Ditto.
+ 
+ 2025-06-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Set
+ 	value of parameter based on option.
+ 	* config/aarch64/aarch64.opt (autovec-preference): New.
+ 	* doc/invoke.texi (autovec-preference): Document it.
+ 
+ 2025-06-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* config/aarch64/aarch64.opt (max-vectorization): New.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Save
+ 	and restore option.
+ 	Implement it through vect-scalar-cost-multiplier.
+ 	(aarch64_attributes): Default to off.
+ 	* common/config/aarch64/aarch64-common.cc (aarch64_handle_option):
+ 	Initialize option.
+ 	* doc/extend.texi (max-vectorization): Document attribute.
+ 	* doc/invoke.texi (max-vectorization): Document flag.
+ 
+ 2025-06-24  hongtao.liu  <hongtao.liu@intel.com>
+ 
+ 	PR target/115842
+ 	* tree-ssa-loop-ivopts.cc (determine_group_iv_cost_address):
+ 	Don't recalculate inv_expr when group-candidate cost
+ 	calucalution.
+ 
+ 2025-06-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/extend.texi: Document pragma unroll interaction with vectorizer.
+ 	* tree-vectorizer.h (LOOP_VINFO_USER_UNROLL): New.
+ 	(class _loop_vec_info): Add user_unroll.
+ 	* tree-vect-loop.cc (vect_analyze_loop_1): Set
+ 	suggested_unroll_factor and retry.
+ 	(_loop_vec_info::_loop_vec_info): Initialize user_unroll.
+ 	(vect_transform_loop): Clear the loop->unroll value if the pragma was
+ 	used.
+ 
+ 2025-06-24  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters,
+ 	vect_gen_vector_loop_niters_mult_vf): Remove uses of log_vf.
+ 
+ 2025-06-24  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/92080
+ 	* config/i386/i386-expand.cc (ix86_expand_call): Set
+ 	recursive_function to true for recursive call.
+ 	* config/i386/i386-features.cc (ix86_place_single_vector_set):
+ 	Add an argument for inner scalar, default to nullptr.  Set the
+ 	source from inner scalar if not nullptr.
+ 	(ix86_get_vector_load_mode): Renamed to ...
+ 	(ix86_get_vector_cse_mode): This.  Add an argument for scalar mode
+ 	and handle integer and float scalar modes.
+ 	(replace_vector_const): Add an argument for scalar mode and pass
+ 	it to ix86_get_vector_load_mode.
+ 	(x86_cse_kind): New.
+ 	(redundant_load): Likewise.
+ 	(ix86_broadcast_inner): Likewise.
+ 	(remove_redundant_vector_load): Also support const0_rtx and
+ 	constm1_rtx broadcasts.  Handle vector broadcasts from constant
+ 	and variable scalars.
+ 	* config/i386/i386.h (machine_function): Add recursive_function.
+ 
+ 2025-06-24  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/70308
+ 	PR target/101366
+ 	PR target/102294
+ 	PR target/108585
+ 	PR target/118276
+ 	PR target/119596
+ 	PR target/119703
+ 	PR target/119704
+ 	* config/i386/x86-tune-costs.h (generic_memcpy): Updated.
+ 	(generic_memset): Likewise.
+ 	(generic_cost): Change CLEAR_RATIO to 10.
+ 
+ 2025-06-24  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* tree-inline.cc (expand_call_inline): Preserve discriminator.
+ 
+ 2025-06-24  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_set_bb_count): Dump also 0 count stmts.
+ 	(afdo_annotate_cfg): Fix conditional for block having non-zero static
+ 	profile.
+ 
+ 2025-06-24  Lili Cui  <lili.cui@intel.com>
+ 
+ 	PR target/120741
+ 	* config/i386/i386.cc (ix86_expand_prologue):
+ 	Remove 1 assertion.
+ 
+ 2025-06-24  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/118241
+ 	* config/riscv/predicates.md: Fix comment typo in recent change.
+ 
+ 2025-06-23  Sam James  <sam@gentoo.org>
+ 	    Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/120795
+ 	* ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in
+ 	remove_reg_equal_equiv_notes call.
+ 
+ 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	PR testsuite/116163
+ 	PR sarif-replay/120792
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-output-spec.o.
+ 	* diagnostic-format-html.cc (html_builder::html_builder): Ensure
+ 	title is non-empty.
+ 	* diagnostic-output-spec.cc: New file, taken from material in
+ 	opts-diagnostic.cc.
+ 	* diagnostic-output-spec.h: New file.
+ 	* diagnostic.cc (diagnostic_context::set_main_input_filename):
+ 	New.
+ 	* diagnostic.h (diagnostic_context::set_main_input_filename): New
+ 	decl.
+ 	* doc/libgdiagnostics/topics/compatibility.rst
+ 	(LIBGDIAGNOSTICS_ABI_2): New.
+ 	* doc/libgdiagnostics/topics/diagnostic-manager.rst
+ 	(diagnostic_manager_add_sink_from_spec): New.
+ 	(diagnostic_manager_set_analysis_target): New.
+ 	* libgdiagnostics++.h (manager::add_sink_from_spec): New.
+ 	(manager::set_analysis_target): New.
+ 	* libgdiagnostics.cc: Include "diagnostic-output-spec.h".
+ 	(struct spec_context): New.
+ 	(diagnostic_manager_add_sink_from_spec): New.
+ 	(diagnostic_manager_set_analysis_target): New.
+ 	* libgdiagnostics.h
+ 	(LIBDIAGNOSTICS_HAVE_diagnostic_manager_add_sink_from_spec): New
+ 	define.
+ 	(diagnostic_manager_add_sink_from_spec): New decl.
+ 	(LIBDIAGNOSTICS_HAVE_diagnostic_manager_set_analysis_target): New
+ 	define.
+ 	(diagnostic_manager_set_analysis_target): New decl.
+ 	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_2): New.
+ 	* libsarifreplay.cc (sarif_replayer::handle_artifact_obj): Looks
+ 	for "analysisTarget" in roles and call set_analysis_target using
+ 	the artifact if found.
+ 	* opts-diagnostic.cc: Refactor, moving material to
+ 	diagnostic-output-spec.cc.
+ 	(struct opt_spec_context): New.
+ 	(handle_OPT_fdiagnostics_add_output_): Use opt_spec_context.
+ 	(handle_OPT_fdiagnostics_set_output_): Likewise.
+ 	* sarif-replay.cc: Define INCLUDE_STRING.
+ 	(struct options): Add m_extra_output_specs.
+ 	(usage_msg): Add -fdiagnostics-add-output=SCHEME.
+ 	(str_starts_with): New.
+ 	(parse_options): Add -fdiagnostics-add-output=SCHEME.
+ 	(main): Likewise.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	diagnostic_output_spec_cc_tests rather than
+ 	opts_diagnostic_cc_tests.
+ 	* selftest.h (selftest::diagnostic_output_spec_cc_tests):
+ 	Replace...
+ 	(selftest::opts_diagnostic_cc_tests): ...this.
+ 
+ 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* Makefile.in (ANALYZER_OBJS): Add
+ 	analyzer/ana-state-to-diagnostic-state.o.
+ 	(OBJS): Move graphviz.o to...
+ 	(OBJS-libcommon): ...here.  Add diagnostic-state-to-dot.o and pex.o.
+ 	* diagnostic-format-html.cc: Include "diagnostic-state.h" and
+ 	"graphviz.h".
+ 	(html_generation_options::html_generation_options): Initialize the
+ 	new flags.
+ 	(HTML_SCRIPT): Add function "get_any_state_diagram".  Use it
+ 	when changing current focus id to update the visibility of the
+ 	pertinent diagram, if any.
+ 	(print_pre_source): New.
+ 	(html_builder::maybe_make_state_diagram): New.
+ 	(html_path_label_writer::html_path_label_writer): Add "path" param.
+ 	Initialize m_path and m_curr_event_id.
+ 	(html_path_label_writer::begin_label): Store current event id.
+ 	(html_path_label_writer::end_label): Attempt to make a state
+ 	diagram and add it if successful.
+ 	(html_path_label_writer::get_element_id): New.
+ 	(html_path_label_writer::m_path): New field.
+ 	(html_path_label_writer::m_curr_event_id): New field.
+ 	(html_builder::make_element_for_diagnostic): Pass path to label
+ 	writer.
+ 	* diagnostic-format-html.h
+ 	(html_generation_options::m_show_state_diagrams): New field.
+ 	(html_generation_options::m_show_state_diagram_xml): New field.
+ 	(html_generation_options::m_show_state_diagram_dot_src): New field.
+ 	* diagnostic-format-sarif.cc: Include "xml.h".
+ 	(populate_thread_flow_location_object): If requested, attempt to
+ 	generate xml state and add it to the proeprty bag as
+ 	"gcc/diagnostic_event/xml_state" in xml source form.
+ 	(sarif_generation_options::sarif_generation_options): Initialize
+ 	m_xml_state.
+ 	* diagnostic-format-sarif.h
+ 	(sarif_generation_options::m_xml_state): New field.
+ 	* diagnostic-path.cc: Define INCLUDE_MAP.  Include "xml.h".
+ 	(diagnostic_event::maybe_make_xml_state): New.
+ 	* diagnostic-path.h (class xml::document): New forward decl.
+ 	(diagnostic_event::maybe_make_xml_state): New vfunc decl.
+ 	* diagnostic-state-to-dot.cc: New file.
+ 	* diagnostic-state.h: New file.
+ 	* digraph.cc: Define INCLUDE_STRING and INCLUDE_VECTOR.
+ 	* doc/analyzer.texi: Document state diagrams in html output.
+ 	(__analyzer_dump_dot): New.
+ 	(__analyzer_dump_xml): New.
+ 	* doc/invoke.texi (sarif): Add "xml-state" key.
+ 	(experimental-html): Add keys "show-state-diagrams",
+ 	"show-state-diagrams-dot-src" and "show-state-diagrams-xml".
+ 	* graphviz.cc: Define INCLUDE_MAP, INCLUDE_STRING, and
+ 	INCLUDE_VECTOR.  Include "xml.h", "xml-printer.h", "pex.h" and
+ 	"selftest.h".
+ 	(graphviz_out::graphviz_out): Extract...
+ 	(dot::writer::writer): ...this.
+ 	(graphviz_out::write_indent): Convert to...
+ 	(dot::writer::write_indent): ...this.
+ 	(graphviz_out::print): Use get_pp.
+ 	(graphviz_out::println): Likewise.
+ 	(graphviz_out::begin_tr): Likewise.
+ 	(graphviz_out::end_tr): Likewise.
+ 	(graphviz_out::begin_td): Likewise.
+ 	(graphviz_out::end_td): Likewise.
+ 	(graphviz_out::begin_trtd): Likewise.
+ 	(graphviz_out::end_tdtr): Likewise.
+ 	(dot::ast_node::dump): New.
+ 	(dot::id::id): New.
+ 	(dot::id::print): New.
+ 	(dot::id::is_identifier_p): New.
+ 	(dot::kv_pair::print): New.
+ 	(dot::attr_list::print): New.
+ 	(dot::stmt_list::print): New.
+ 	(dot::stmt_list::add_edge): New.
+ 	(dot::stmt_list::add_attr): New.
+ 	(dot::graph::print): New.
+ 	(dot::stmt_with_attr_list::set_label): New.
+ 	(dot::node_stmt::print): New.
+ 	(dot::attr_stmt::print): New.
+ 	(dot::kv_stmt::print): New.
+ 	(dot::node_id::print): New.
+ 	(dot::port::print): New.
+ 	(dot::edge_stmt::print): New.
+ 	(dot::subgraph::print): New.
+ 	(dot::make_svg_document_buffer_from_graph): New.
+ 	(dot::make_svg_from_graph): New.
+ 	(selftest:test_ids): New.
+ 	(selftest:test_trivial_graph): New.
+ 	(selftest:test_layout_example): New.
+ 	(selftest:graphviz_cc_tests): New.
+ 	* graphviz.h (xml::node): New forward decl.
+ 	(class graphviz_out): Split out into...
+ 	(class dot::writer): ...this new class
+ 	(struct dot::ast_node): New.
+ 	(struct dot::id): New.
+ 	(struct dot::kv_pair): New.
+ 	(struct dot::attr_list): New.
+ 	(struct dot::stmt_list): New.
+ 	(struct dot::graph): New.
+ 	(struct dot::stmt): New.
+ 	(struct dot::stmt_with_attr_list): New.
+ 	(struct dot::node_stmt): New.
+ 	(struct dot::attr_stmt): New.
+ 	(struct dot::kv_stmt): New.
+ 	(enum class dot::compass_pt): New.
+ 	(struct dot::port): New.
+ 	(struct dot::node_id): New.
+ 	(struct dot::edge_stmt): New.
+ 	(struct dot::subgraph): New.
+ 	(dot::make_svg_from_graph): New.
+ 	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add
+ 	"xml-state" flag.
+ 	(html_scheme_handler::make_sink): Add flags "show-state-diagrams",
+ 	"show-state-diagram-dot-src", and "show-state-diagram-xml".
+ 	* pex.cc: New file.
+ 	* pex.h: New file.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	graphviz_cc_tests.
+ 	* selftest.h (selftest::graphviz_cc_tests): New decl.
+ 	* xml.cc (xml::node_with_children::add_comment): New.
+ 	(xml::node_with_children::find_child_element): New.
+ 	(xml::element::get_attr): New.
+ 	(xml::comment::write_as_xml): New.
+ 	(selftest::test_printer): Add coverage of find_child_element and
+ 	get_attr.
+ 	(selftest::test_comment): New.
+ 	(selftest::xml_cc_tests): Call test_comment.
+ 	* xml.h: New forward decls.
+ 	(xml::node::dyn_cast_text): Use nullptr.
+ 	(xml::node::dyn_cast_element): New vfunc.
+ 	(xml::node_with_children::add_comment): New decl.
+ 	(xml::node_with_children::find_child_element): New decl.
+ 	(xml::element::dyn_cast_element): New vfunc impl.
+ 	(xml::element::get_attr): New decl.
+ 	(struct xml::comment): New xml::node subclass.
+ 
+ 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc (html_token_printer::print_tokens):
+ 	Handle pp_token::kind::event_id.
+ 	(selftest::test_token_printer): Add coverage of printing an event
+ 	id.
+ 
+ 2025-06-23  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case US_PLUS.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op us_plus.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* tree-tailcall.cc (empty_eh_cleanup): Ignore .ASAN_MARK (POISON)
+ 	internal calls for the cfun->has_musttail case and diag_musttail.
+ 	(find_tail_calls): Likewise.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* cfgexpand.cc: Include rtl-iter.h.
+ 	(expand_gimple_tailcall): Add ASAN_EPILOG_SEQ argument, if non-NULL
+ 	and expand_gimple_stmt emitted a tail call, emit a copy of that
+ 	insn sequence before the call sequence.
+ 	(expand_gimple_basic_block): Remove DISABLE_TAIL_CALLS argument, add
+ 	ASAN_EPILOG_SEQ argument.  Disable tail call flag only on non-musttail
+ 	calls if that flag is set, pass it to expand_gimple_tailcall.
+ 	(pass_expand::execute): Pass VAR_RET_SEQ directly as last
+ 	expand_gimple_basic_block argument rather than its comparison with
+ 	NULL.
+ 
+ 2025-06-23  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_peeling_supportable): Return new
+ 	enum values to indicate if combined peeling and versioning can
+ 	potentially support vectorization.
+ 	(vect_enhance_data_refs_alignment): Support combined peeling and
+ 	versioning in vectorization analysis.
+ 	* tree-vect-loop-manip.cc (vect_create_cond_for_align_checks):
+ 	Add a new type of runtime check for mutually aligned DRs.
+ 	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Set
+ 	default value of allow_mutual_alignment in the initializer list.
+ 	* tree-vectorizer.h (enum peeling_support): Define type of
+ 	peeling support for function vect_peeling_supportable.
+ 	(LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT): New access macro.
+ 
+ 2025-06-23  Mikael Morin  <morin-mikael@orange.fr>
+ 
+ 	* match.pd (`-(-X)`, `~(~X)`, `conj(conj(X))`): Add a
+ 	NON_LVALUE_EXPR wrapper to the simplification of doubled unary
+ 	operators NEGATE_EXPR, BIT_NOT_EXPR and CONJ_EXPR.
+ 
+ 2025-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120729
+ 	* gimple-predicate-analysis.h (uninit_analysis::prune_phi_opnds):
+ 	Add argument of work budget remaining.
+ 	* gimple-predicate-analysis.cc (uninit_analysis::prune_phi_opnds):
+ 	Likewise.  Maintain and honor it throughout the recursion.
+ 	* params.opt (uninit-max-prune-work): New.
+ 	* doc/invoke.texi (uninit-max-prune-work): Document.
+ 
+ 2025-06-23  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120721
+ 	* function.cc (instantiate_virtual_regs_in_insn): Use force_subreg
+ 	instead of simplify_gen_subreg when instantiating an rvalue SUBREG.
+ 
+ 2025-06-23  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120728
+ 	* config/i386/i386.cc (ix86_get_ssemov): Use vmovdqu16/vmovdqu8
+ 	only with EVEX register operands.
+ 
+ 2025-06-23  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386-options.cc (processor_cost_table): Add a
+ 	PROCESSOR_XXX comment to each entry.
+ 
+ 2025-06-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/119830
+ 	* config/riscv/riscv.cc (riscv_build_integer_1): Make arithmetic in bclr case
+ 	clean for 32 bit hosts.
+ 
+ 2025-06-22  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/120550
+ 	* ext-dce.cc (ext_dce_try_optimize_insn): Drop REG_EQUAL/REG_EQUIV
+ 	notes on modified insns.
+ 
+ 2025-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.h (TARGET_DEPBITS): New macro.
+ 	* config/xtensa/xtensa.md (insvsi): New insn pattern.
+ 
+ 2025-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_zero_call_used_regs):
+ 	New prototype and function.
+ 	(TARGET_ZERO_CALL_USED_REGS): Define macro.
+ 
+ 2025-06-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (update_count_by_afdo_count): Make static;
+ 	add variant accepting profile_count.
+ 	(afdo_find_equiv_class): Use update_count_by_afdo_count.
+ 	(afdo_propagate_edge): Likewise.
+ 	(afdo_propagate): Likewise.
+ 	(afdo_calculate_branch_prob): Fix handling of all_known.
+ 	(afdo_annotate_cfg): Annotate by 0 where both afdo and static
+ 	profile agrees.
+ 
+ 2025-06-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_set_bb_count): Dump inline stacks
+ 	and reasons when lookup failed.
+ 	(afdo_set_bb_count): Record info about BBs with zero AFDO count.
+ 	(afdo_annotate_cfg): Set profile to global0_afdo if there are
+ 	no samples in profile.
+ 
+ 2025-06-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-profile.cc (ipa_profile): Use widest_int to avoid
+ 	possible overflows.
+ 
+ 2025-06-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (autofdo::afdo_count_scale): New.
+ 	(autofdo_source_profile::update_inlined_ind_target): Scale
+ 	counts.
+ 	(autofdo_source_profile::read): Set scale and dump
+ 	statistics.
+ 	(afdo_indirect_call): Scale.
+ 	(afdo_set_bb_count): Scale.
+ 	(afdo_find_equiv_class): Fix dumps.
+ 	(afdo_annotate_cfg): Scale.
+ 
+ 2025-06-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cgraph.cc (cgraph_node::make_profile_global0): Support
+ 	GUESSED_GLOBAL0_AFDO
+ 	* ipa-cp.cc (update_profiling_info): Use
+ 	GUESSED_GLOBAL0_AFDO.
+ 	* profile-count.cc (profile_probability::dump): Use
+ 	quality ().
+ 	(profile_probability::stream_in): Use m_adjusted_quality.
+ 	(profile_probability::stream_out): Use m_adjusted_quality.
+ 	(profile_count::combine_with_ipa_count): Use quality ().
+ 	(profile_probability::sqrt): Likewise.
+ 	* profile-count.h (enum profile_quality): Add
+ 	GUESSED_GLOBAL0_AFDO; reoder GUESSED_GLOBAL0_ADJUSTED and
+ 	GUESSED_GLOBAL0.
+ 	(profile_probability): Add min_quality; replase m_quality
+ 	by m_adjused_quality; add set_quality; update all users
+ 	of quality.
+ 	(profile_count): Set n_bits to 60; make m_quality 4 bits;
+ 	update uses of quality.
+ 	(profile_count::afdo_zero, profile_count::globa0afdo): New.
+ 
+ 2025-06-21  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* tree-inline.cc (copy_cfg_body): Fix profile of split functions.
+ 
+ 2025-06-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/118241
+ 	* config/riscv/predicates.md (prefetch_operand): New predicate.
+ 	* config/riscv/constraints.md (Q): New constraint.
+ 	* config/riscv/riscv.md (prefetch): Use new predicate and constraint.
+ 	(riscv_prefetchi_<mode>): Similarly.
+ 
+ 2025-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120746
+ 	* value-range.cc (irange::snap): Use int type instead of uint.
+ 
+ 2025-06-21  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (dump_inline_stack): New function.
+ 	(get_inline_stack_in_node): New function.
+ 	(get_relative_location_for_stmt): Add FN parameter.
+ 	(has_indirect_call): Remove.
+ 	(function_instance::find_icall_target_map): Add FN parameter.
+ 	(function_instance::remove_icall_target): New function.
+ 	(function_instance::read_function_instance): Set sum_max.
+ 	(autofdo_source_profile::get_count_info): Add NODE parameter.
+ 	(autofdo_source_profile::update_inlined_ind_target): Add NODE parameter.
+ 	(autofdo_source_profile::remove_icall_target): New function.
+ 	(afdo_indirect_call): Add INDIRECT_EDGE parameter; dump reason
+ 	for failure; do not check for recursion; do not inline call.
+ 	(afdo_vpt): Add INDIRECT_EDGE parameter.
+ 	(afdo_set_bb_count): Do not take PROMOTED set.
+ 	(afdo_vpt_for_early_inline): Remove.
+ 	(afdo_annotate_cfg): Do not take PROMOTED set.
+ 	(auto_profile): Do not call afdo_vpt_for_early_inline.
+ 	(afdo_callsite_hot_enough_for_early_inline): Dump count.
+ 	(remove_afdo_speculative_target): New function.
+ 	* auto-profile.h (afdo_vpt_for_early_inline): Declare.
+ 	(remove_afdo_speculative_target): Declare.
+ 	* ipa-inline.cc (inline_functions_by_afdo): Do VPT.
+ 	(early_inliner): Redirecct edges if inlining happened.
+ 	* tree-inline.cc (expand_call_inline): Add sanity check.
+ 
+ 2025-06-21  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (get_inline_stack): Add fn parameter.
+ 	* ipa-inline.cc (want_early_inline_function_p): Do not care
+ 	about AFDO.
+ 	(inline_functions_by_afdo): New function.
+ 	(early_inliner): Use it.
+ 
+ 2025-06-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	PR target/120652
+ 	* config/riscv/autovec.md: Add immediate_operand for
+ 	select_vl operand 2.
+ 
+ 2025-06-20  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120701
+ 	* value-range.cc (irange::verify_range): Verify range pairs are
+ 	sorted properly.
+ 	(irange::snap): Check for over/underflow properly.
+ 
+ 2025-06-20  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	PR target/120722
+ 	* config/gcn/gcn.cc (gcn_hard_regno_mode_ok): Allow SImode in VCC_HI.
+ 
+ 2025-06-20  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR gcov-profile/120634
+ 	* prime-paths.cc (struct auto_vec_vec): Add constructor from
+ 	vec.
+ 	(test_split_components): Use auto_vec_vec.
+ 	(test_scc_internal_prime_paths): Ditto.
+ 	(test_scc_entry_exit_paths): Ditto.
+ 	(test_complete_prime_paths): Ditto.
+ 	(test_entry_prime_paths): Ditto.
+ 	(test_singleton_path): Ditto.
+ 
+ 2025-06-20  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR gcov-profile/120634
+ 	* prime-paths.cc (trie::paths): Use auto_vec.
+ 
+ 2025-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120654
+ 	* vr-values.cc (range_fits_type_p): Check for undefined_p ()
+ 	before accessing type ().
+ 
+ 2025-06-20  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120708
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
+ 	MOVE_MAX to get the widest vector mode in vector loop.
+ 
+ 2025-06-20  Stafford Horne  <shorne@gmail.com>
+ 
+ 	* config/or1k/or1k.cc (or1k_noce_conversion_profitable_p): New
+ 	function.
+ 	(or1k_is_cmov_insn): New function.
+ 	(TARGET_NOCE_CONVERSION_PROFITABLE_P): Define macro.
+ 	* config/or1k/or1k.md (cbranchsi4): Convert to insn_and_split.
+ 	(cbranch<mode>4): Convert to insn_and_split.
+ 
+ 2025-06-20  Stafford Horne  <shorne@gmail.com>
+ 
+ 	PR target/120587
+ 	* config/or1k/or1k.md (zero_extendbisi2_sr_f): New expand.
+ 	(extendbisi2_sr_f): New expand.
+ 	* config/or1k/predicates.md (sr_f_reg_operand): New predicate.
+ 
+ 2025-06-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case UMIN.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op umin.
+ 
+ 2025-06-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/120689
+ 	* function.cc (assign_parm_setup_block): Align parm to at least
+ 	word alignment even on !STRICT_ALIGNMENT targets, as long as
+ 	BITS_PER_WORD is not larger than MAX_SUPPORTED_STACK_ALIGNMENT.
+ 
+ 2025-06-19  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120427
+ 	* config/i386/i386.md (*mov<mode>_and): Changed to
+ 	define_insn_and_split.  Split it to "mov $0,mem" if not -Oz.
+ 	(*mov<mode>_or): Changed to define_insn_and_split.  Split it
+ 	to "mov $-1,mem" if not -Oz.
+ 	(peephole2): Don't transform "mov $-1,reg" to "push $-1; pop reg"
+ 	for -Oz since it will be transformed to "or $-1,reg".
+ 
+ 2025-06-19  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR other/115893
+ 	* doc/install.texi (Prerequisites): Note that Texinfo older
+ 	than v7.1 may throw incorrect build warnings, cf.
+ 	https://lists.nongnu.org/archive/html/help-texinfo/2023-11/msg00004.html
+ 
+ 2025-06-19  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add "generic" tune.
+ 	* config/riscv/riscv.cc: Add generic_tune_info.
+ 	* config/riscv/riscv.h (RISCV_TUNE_STRING_DEFAULT): Change default tune.
+ 
+ 2025-06-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120631
+ 	* dfp.cc (decimal_real_to_integer): Use result multiplication not just
+ 	when precision > 128 and dn.exponent > 19, but when precision > 64
+ 	and dn.exponent > 0.
+ 
+ 2025-06-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Use
+ 	riscv_2x_xlen_mode_p.
+ 	(riscv_binary_cost): Ditto.
+ 	(riscv_hard_regno_mode_ok): Ditto.
+ 
+ 2025-06-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_cost_model): Add cost model for
+ 	zilsd.
+ 
+ 2025-06-19  Lili Cui  <lili.cui@intel.com>
+ 
+ 	PR target/120697
+ 	* config/i386/i386.cc (ix86_expand_prologue):
+ 	Remove 3 assertions and associated code.
+ 
+ 2025-06-18  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 	    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/119966
+ 	* emit-rtl.cc (validate_subreg): Call simplify_subreg_regno
+ 	instead of checking info.representable_p..
+ 	* rtl.h (simplify_subreg_regno): Add new argument
+ 	allow_stack_regs.
+ 	* rtlanal.cc (simplify_subreg_regno): Do not reject
+ 	stack-related registers if allow_stack_regs is true.
+ 
+ 2025-06-18  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange::intersect_bitmask): Always update the
+ 	stored mask to reflect the current calculated mask.
+ 
+ 2025-06-18  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/119039
+ 	* value-range.cc (irange::contains_p): Call wide_int version of
+ 	contains_p for singleton ranges.
+ 	(irange::intersect): If either range is a singleton, use
+ 	contains_p.
+ 
+ 2025-06-18  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/119039
+ 	* vr-values.cc (simplify_using_ranges::legacy_fold_cond): Remove.
+ 	(simplify_using_ranges::simplify_switch_using_ranges): Adjust.
+ 
+ 2025-06-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-cfg.cc (dump_function_to_file): Use flags, not dump_flags.
+ 
+ 2025-06-18  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* doc/gcov.texi: Drop blank after @anchor.
+ 
+ 2025-06-18  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* doc/extend.texi: Fill first argument of @xref{}.
+ 
+ 2025-06-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120631
+ 	* real.cc (decimal_from_integer): Add digits argument, if larger than
+ 	256, use XALLOCAVEC allocated buffer.
+ 	(real_from_integer): Pass val_in's precision divided by 3 to
+ 	decimal_from_integer.
+ 	* dfp.cc (decimal_real_to_integer): For precision > 128 if finite
+ 	and exponent is large, decrease exponent and multiply resulting
+ 	wide_int by powers of 10^19.
+ 
+ 2025-06-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case SMIN.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op smin.
+ 
+ 2025-06-18  Lili Cui  <lili.cui@intel.com>
+ 	    Michael Matz  <matz@suse.de>
+ 
+ 	* config/i386/i386-protos.h (ix86_get_separate_components):
+ 	New function.
+ 	(ix86_components_for_bb): Likewise.
+ 	(ix86_disqualify_components): Likewise.
+ 	(ix86_emit_prologue_components): Likewise.
+ 	(ix86_emit_epilogue_components): Likewise.
+ 	(ix86_set_handled_components): Likewise.
+ 	* config/i386/i386.cc (save_regs_using_push_pop):
+ 	Split from ix86_compute_frame_layout.
+ 	(ix86_compute_frame_layout):
+ 	Use save_regs_using_push_pop.
+ 	(pro_epilogue_adjust_stack):
+ 	Use gen_pro_epilogue_adjust_stack_add_nocc.
+ 	(ix86_expand_prologue): Add some assertions and adjust
+ 	the stack frame at the beginning of the prolog for shrink
+ 	wrapping separate.
+ 	(ix86_emit_save_regs_using_mov):
+ 	Skip registers that are wrapped separately.
+ 	(ix86_emit_restore_regs_using_mov): Likewise.
+ 	(ix86_expand_epilogue): Add some assertions and set
+ 	restore_regs_via_mov to true for shrink wrapping separate.
+ 	(ix86_get_separate_components): New function.
+ 	(ix86_components_for_bb): Likewise.
+ 	(ix86_disqualify_components): Likewise.
+ 	(ix86_emit_prologue_components): Likewise.
+ 	(ix86_emit_epilogue_components): Likewise.
+ 	(ix86_set_handled_components): Likewise.
+ 	(TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
+ 	(TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
+ 	(TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
+ 	(TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
+ 	* config/i386/i386.h (struct machine_function):Add
+ 	reg_is_wrapped_separately array for register wrapping
+ 	information.
+ 	* config/i386/i386.md
+ 	(@pro_epilogue_adjust_stack_add_nocc<mode>): New.
+ 
+ 2025-06-18  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120661
+ 	* value-range.cc (irange::snap): New.
+ 	(irange::snap_subranges): New.
+ 	(irange::set_range_from_bitmask): Call snap_subranges.
+ 	* value-range.h (snap, snap_subranges): New prototypes.
+ 
+ 2025-06-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_indirect_call): Compute speculative edge
+ 	probability.
+ 	(add_scale): Break out from ...
+ 	(scale_bbs): Break out from ...
+ 	(afdo_adjust_guessed_profile): ... here; use componet array instead of
+ 	current_component hash_map; handle components with only 0 profile;
+ 	be more agressive on finding scales along the boundary.
+ 
+ 2025-06-17  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cgraph.cc (cgraph_node::apply_scale): Special case scaling
+ 	to profile_count::zero ().
+ 	(cgraph_node::verify_node): Add extra compatibility check.
+ 
+ 2025-06-17  Umesh Kalappa  <ukalappa.mips@gmail.com>
+ 
+ 	* config/riscv/sync.md (lrsc_atomic_exchange<mode>): Use scratch
+ 	register for loop control rather than lr output.
+ 
+ 2025-06-17  Jason Merrill  <jason@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_option_classifier): Friend
+ 	diagnostic_context.
+ 	(diagnostic_context::get_classification_history): New.
+ 
+ 2025-06-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120677
+ 	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop):
+ 	Insert before gsi_after_labels instead of gsi_start_bb.  Use
+ 	gimple_bb (output_crc) instead of output_crc->bb.  Formatting fix.
+ 
+ 2025-06-17  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/113027
+ 	* config/aarch64/aarch64-protos.h (aarch64_decompose_vec_struct_index):
+ 	Declare.
+ 	* config/aarch64/aarch64.cc (aarch64_decompose_vec_struct_index): New
+ 	function.
+ 	* config/aarch64/iterators.md (VEL, Vel): Add Advanced SIMD
+ 	structure modes.
+ 	* config/aarch64/aarch64-simd.md (vec_set<VSTRUCT_QD:mode>)
+ 	(vec_extract<VSTRUCT_QD:mode>): New patterns.
+ 
+ 2025-06-17  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Also
+ 	walk external functions that are declare inline (and have a
+ 	DECL_SAVED_TREE).
+ 
+ 2025-06-16  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_sve_valid_pred_p):
+ 	Declare helper for aarch64_predicate_operand.
+ 	(aarch64_sve_packed_pred): Declare helper for new expanders.
+ 	(aarch64_sve_fp_pred): Likewise.
+ 	* config/aarch64/aarch64-sve.md (<optab><mode><v_int_equiv>2):
+ 	Extend into...
+ 	(<optab><SVE_HSF:mode><SVE_HSDI:mode>2): New expander for converting
+ 	vectors of HF,SF to vectors of HI,SI,DI.
+ 	(<optab><VNx2DF_ONLY:mode><SVE_2SDI:mode>2): New expander for converting
+ 	vectors of SI,DI to vectors of DF.
+ 	(*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>):
+ 	New pattern to match those we've added here.
+ 	(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Extend
+ 	into...
+ 	(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><SVE_SI:mode>): Match both
+ 	VNx2SI<-VNx2DF and VNx4SI<-VNx4DF.
+ 	(<optab><v_int_equiv><mode>2): Extend into...
+ 	(<optab><SVE_HSDI:mode><SVE_F:mode>2): New expander for converting vectors
+ 	of HI,SI,DI to vectors of HF,SF,DF.
+ 	(*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>): New
+ 	pattern to match those we've added here.
+ 	(trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>2): New expander to handle
+ 	narrowing ('truncating') FP<-FP conversions.
+ 	(*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>): New
+ 	pattern to handle those we've added here.
+ 	(extend<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>2): New expander to handle
+ 	widening ('extending') FP<-FP conversions.
+ 	(*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>): New
+ 	pattern to handle those we've added here.
+ 	* config/aarch64/aarch64.cc (aarch64_sve_packed_pred): New function.
+ 	(aarch64_sve_fp_pred): Likewise.
+ 	(aarch64_sve_valid_pred_p): Likewise.
+ 	* config/aarch64/iterators.md (SVE_PARTIAL_HSF): New mode iterator.
+ 	(SVE_HSF): Likewise.
+ 	(SVE_SDF): Likewise.
+ 	(SVE_SI): Likewise.
+ 	(SVE_2SDI) Likewise.
+ 	(self_mask):  Extend to all integer/FP vector modes.
+ 	(narrower_mask): Likewise (excluding QI).
+ 	* config/aarch64/predicates.md (aarch64_predicate_operand): New special
+ 	predicate to handle narrower predicate modes.
+ 
+ 2025-06-16  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md: Replace uses of SVE_FULL_F_BF
+ 	with SVE_FULL_F_B16B16.
+ 	Replace use of SVE_F with SVE_F_BF.
+ 	* config/aarch64/iterators.md (SVE_PARTIAL_F): New iterator for
+ 	partial SVE FP modes.
+ 	(SVE_FULL_F_BF): Rename to SVE_FULL_F_B16B16.
+ 	(SVE_PARTIAL_F_B16B16): New iterator (BF16 included) for partial
+ 	SVE FP modes.
+ 	(SVE_F_B16B16): New iterator for all SVE FP modes.
+ 	(SVE_BF): New iterator for all SVE BF16 modes.
+ 	(SVE_F): Redefine to exclude BF16 modes.
+ 	(SVE_F_BF): New iterator to replace the previous SVE_F.
+ 	(VPRED): Describe the VPRED mapping for partial vector modes.
+ 	(b): Cover partial FP modes.
+ 	(is_bf16): Likewise.
+ 
+ 2025-06-16  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Document -Wsfinae-incomplete.
+ 
+ 2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>
+ 	    Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	* config.in: Regenerate.
+ 	* config/aarch64/aarch64-elf-metadata.h
+ 	(class aeabi_subsection): New class for BAs.
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_pacret_enabled): New function.
+ 	* config/aarch64/aarch64.cc
+ 	(HAVE_AS_AEABI_BUILD_ATTRIBUTES): New definition.
+ 	(aarch64_file_end_indicate_exec_stack): Emit BAss.
+ 	(aarch64_pacret_enabled): New function.
+ 	(aarch64_start_file): Indent.
+ 	* configure: Regenerate.
+ 	* configure.ac: New configure check for BAs support in binutils.
+ 
+ 2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* Makefile.in: Add missing declaration of BACKEND_H.
+ 	* config.gcc: Add aarch64-elf-metadata.o to extra_objs.
+ 	* config/aarch64/aarch64-elf-metadata.h: New file
+ 	* config/aarch64/aarch64-elf-metadata.cc: New file.
+ 	* config/aarch64/aarch64.cc
+ 	(GNU_PROPERTY_AARCH64_FEATURE_1_AND): Removed.
+ 	(GNU_PROPERTY_AARCH64_FEATURE_1_BTI): Likewise.
+ 	(GNU_PROPERTY_AARCH64_FEATURE_1_PAC): Likewise.
+ 	(GNU_PROPERTY_AARCH64_FEATURE_1_GCS): Likewise.
+ 	(aarch64_file_end_indicate_exec_stack): Move GNU properties code to
+ 	aarch64-elf-metadata.cc
+ 	* config/aarch64/t-aarch64: Declare target aarch64-elf-metadata.o
+ 
+ 2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_file_end_indicate_exec_stack): Emit assembly comments.
+ 
+ 2025-06-16  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (edge_set): Remove unused typedef.
+ 	(is_bb_annotated): Sanity check that annotated BBs has
+ 	quality AFDO and non-anntoated non-AFDO.  Exceptions are
+ 	zeros.
+ 	(set_bb_annotated): Verify that BB set annotated has
+ 	AFDO profile.
+ 	(afdo_set_bb_count): Do not return true for 0 counts.
+ 	(afdo_find_equiv_class): Fix formating;
+ 	do not combine profile of annoated and non-annotated BBs.
+ 	(afdo_propagate_edge): Fix variable names; dump info
+ 	about changes; do not change non-annoated BB profiles;
+ 	if all flow out of BB was decided on, annotate remaining
+ 	edges with 0.
+ 	(afdo_propagate): Dump info about copied BB counts
+ 	and number of iteraitons used.
+ 	(cmp): New function.
+ 	(afdo_adjust_guessed_profile): New function.
+ 	(afdo_calculate_branch_prob): Do not initialize loop
+ 	optimizer here; call afdo_adjust_guessed_profile.
+ 	(afdo_annotate_cfg): Initialize profile here;
+ 	anotate entry/exit blocks only of profile is non-0.
+ 	* profile-count.h: (profile_count::force_guessed): New.
+ 	* tree-cfg.cc (gimple_verify_flow_info): Fix typo.
+ 
+ 2025-06-16  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add b-ext and supm.
+ 
+ 2025-06-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/predicates.md (reload_operand):
+ 	Remove.
+ 	* config/xtensa/xtensa.md:
+ 	Remove the peephole2 pattern that was previously added.
+ 
+ 2025-06-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md:
+ 	Remove the peephole2 pattern that was previously added.
+ 
+ 2025-06-16  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle
+ 	more logical simplifications.
+ 
+ 2025-06-15  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
+ 	case UMAX.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op umax.
+ 
+ 2025-06-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2025-06-14  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR rtl-optimization/120423
+ 	PR rtl-optimization/116389
+ 	* config/avr/avr.md [-mno-lra]: Add pre-reload split to transform
+ 	(left shift of) a paradoxical subreg to a (left shift of) zero-extend.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120629
+ 	* cfgexpand.cc (expand_split_edge): New function.
+ 	(expand_gimple_cond, construct_init_block): Use it.
+ 
+ 2025-06-13  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	PR target/118150
+ 	* config/aarch64/aarch64-sve.md (*one_cmpl<mode>3_cc): New
+ 	combiner pattern.
+ 	(*one_cmpl<mode>3_ptest): Likewise.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120629
+ 	* cfgexpand.cc (construct_init_block): If first_block isn't BB_RTL,
+ 	has any PHI nodes and false_edge->dest_idx before redirection is
+ 	different from make_single_succ_edge result's dest_idx, swap the
+ 	latter with the former last pred edge and their dest_idx members.
+ 
+ 2025-06-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* gcc.cc (driver::set_up_specs): Use gcc_exec_prefix to
+ 	read the spec file rather than standard_exec_prefix.
+ 
+ 2025-06-13  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120589
+ 	* config/mcore/mcore.cc (mcore_mark_dllimport): Don't use
+ 	gen_rtx_MEM.
+ 
+ 2025-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120638
+ 	* tree-ssa-math-opts.cc (pass_cse_reciprocals::execute): Call
+ 	reset_flow_sensitive_info on arg1.
+ 
+ 2025-06-12  Stafford Horne  <shorne@gmail.com>
+ 
+ 	PR target/120587
+ 	* config/or1k/or1k.cc (or1k_can_change_mode_class): Allow
+ 	changing flags mode from BI to SI to allow for paradoxical
+ 	subregs.
+ 
+ 2025-06-12  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120604
+ 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Make sure
+ 	we can represent the difference between two 64-bit DImode
+ 	immediate values in 64-bit HOST_WIDE_INT.
+ 
+ 2025-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120629
+ 	* cfgexpand.cc (expand_gimple_cond): If dest bb isn't BB_RTL,
+ 	has any PHI nodes and false_edge->dest_idx before redirection is
+ 	different from make_single_succ_edge result's dest_idx, swap the
+ 	latter with the former last pred edge and their dest_idx members.
+ 
+ 2025-06-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
+ 	case SMAX.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op smax.
+ 
+ 2025-06-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/120624
+ 	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Expand on comments.
+ 	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Also set
+ 	SME_STATE_REGNUM
+ 
+ 2025-06-12  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* cgraph.cc (cgraph_node::record_function_versions): Refactor and
+ 	rename to...
+ 	(cgraph_node::add_function_version): new function.
+ 	* cgraph.h (cgraph_node::record_function_versions): Refactor and
+ 	rename to...
+ 	(cgraph_node::add_function_version): new function.
+ 	* config/aarch64/aarch64.cc (aarch64_get_function_versions_dispatcher):
+ 	Remove reordering.
+ 	* config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
+ 	Remove reordering.
+ 	* config/riscv/riscv.cc (riscv_get_function_versions_dispatcher):
+ 	Remove reordering.
+ 	* config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
+ 	Remove reordering.
+ 
+ 2025-06-12  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* attribs.cc (is_function_default_version): Add target_version logic.
+ 
+ 2025-06-12  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Set 4 for SRF,
+ 	6 for GRR, GNR, CWF, DMR, ARL, PTL.
+ 
+ 2025-06-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc: Include "selftest-xml.h".
+ 	(html_builder::make_element_for_diagnostic): Move...
+ 	(class html_token_printer): ...from local to the function
+ 	to the global namespace.
+ 	(struct selftest::token_printer_test): New.
+ 	(selftest::test_token_printer): New.
+ 	(selftest::test_simple_log): Simplify using ASSERT_XML_PRINT_EQ.
+ 	(selftest::test_metadata): Likewise.
+ 	(selftest::diagnostic_format_html_cc_tests): Run the new test.
+ 	* selftest-xml.h: New file.
+ 	* xml.cc: Include "selftest-xml.h".
+ 	(selftest::assert_xml_print_eq): New.
+ 	(selftest::test_no_dtd): Simplify using ASSERT_XML_PRINT_EQ.
+ 	(selftest::test_printer): Likewise.
+ 	(selftest::test_attribute_ordering): Likewise.
+ 
+ 2025-06-11  Edwin Lu  <ewlu@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (struct riscv_tune_param): Add tune
+ 	param.
+ 	(riscv_sched_can_speculate_insn): Implement.
+ 	(TARGET_SCHED_CAN_SPECULATE_INSN): Ditto.
+ 
+ 2025-06-11  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120604
+ 	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Cast operands of
+ 	signed 64-bit HOST_WIDE_INT subtractions to (unsigned HOST_WIDE_INT).
+ 
+ 2025-06-11  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Only handle vfmadd
+ 	and vfmsub.
+ 	(*vfnmsub_<mode>): New pattern.
+ 	(*vfnmadd_<mode>): New pattern.
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add cost model for
+ 	NEG and VEC_DUPLICATE.
+ 
+ 2025-06-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120434
+ 	* gimple-range-fold.cc: Include rtl.h.
+ 	(fold_using_range::range_of_range_op): Handle bb ending with
+ 	GIMPLE_COND during RTL expansion where there is only one succ
+ 	edge instead of two.
+ 
+ 2025-06-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* internal-fn.cc (expand_POPCOUNT): Use
+ 	expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE) instead of
+ 	expand_normal (lhs).
+ 
+ 2025-06-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc: Include "diagnostic-path.h" and
+ 	"diagnostic-client-data-hooks.h".
+ 	(html_builder::m_logical_loc_mgr): New field.
+ 	(html_builder::m_cur_nesting_levels): New field.
+ 	(html_builder::m_last_logical_location): New field.
+ 	(html_builder::m_last_location): New field.
+ 	(html_builder::m_last_expanded_location): New field.
+ 	(HTML_STYLE): Add "white-space: pre;" to .source and .annotation.
+ 	Add "gcc-quoted-text" CSS class.
+ 	(html_builder::html_builder): Initialize the new fields.  If CSS
+ 	is enabled, add CDN links to PatternFly 3 stylesheets.
+ 	(html_builder::add_stylesheet): New.
+ 	(html_builder::on_report_diagnostic): Add "alert" param to
+ 	make_element_for_diagnostic, setting it by default, but unsetting
+ 	it for nested diagnostics below the top level.  Use
+ 	add_at_nesting_level for nested diagnostics.
+ 	(add_nesting_level_attr): New.
+ 	(html_builder::add_at_nesting_level): New.
+ 	(get_pf_class_for_alert_div): New.
+ 	(get_pf_class_for_alert_icon): New.
+ 	(get_label_for_logical_location_kind): New.
+ 	(add_labelled_value): New.
+ 	(html_builder::make_element_for_diagnostic): Add leading comment.
+ 	Add "alert" param.  Drop class="gcc-diagnostic" from <div> tag,
+ 	instead adding the class for a PatternFly 3 alert if "alert" is
+ 	true, and adding a <span> with an alert icon, both according to
+ 	the diagnostic severity.  Add a severity prefix to the message for
+ 	alerts.  Add any metadata/option text as suffixes to the message.
+ 	Show any logical location.  Show any physical location.  Don't
+ 	show the locus if the last location is unchanged within the
+ 	diagnostic_group.  Wrap any execution path element in a
+ 	<div id="execution-path"> and add a label to it.  Wrap any
+ 	generated patch in a <div id="suggested-fix"> and add a label
+ 	to it.
+ 	(selftest::test_simple_log): Update expected HTML.
+ 
+ 2025-06-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-path-output.cc: Use xml::printer::add_text_from_pp.
+ 	* diagnostic-show-locus.cc: Likewise.
+ 	* xml-printer.h (xml::printer::add_text_from_pp): New decl.
+ 	* xml.cc (xml::node_with_children::add_text_from_pp): New.
+ 	(xml::printer::add_text_from_pp): New.
+ 	* xml.h (xml::node_with_children::add_text_from_pp): New decl.
+ 
+ 2025-06-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/120610
+ 	* diagnostic-format-html.cc (html_builder::html_builder): Update
+ 	for new param of xml::printer::pop_tag.
+ 	(html_path_label_writer::end_label): Likewise.
+ 	(html_builder::make_element_for_diagnostic::html_token_printer):
+ 	Give the instance its own xml::printer.  Update for new param of
+ 	xml::printer::pop_tag.
+ 	(html_builder::make_element_for_diagnostic): Give the instance its
+ 	own xml::printer.
+ 	(html_builder::make_metadata_element): Update for new param of
+ 	xml::printer::pop_tag.
+ 	(html_builder::flush_to_file): Likewise.
+ 	* diagnostic-path-output.cc (begin_html_stack_frame): Likewise.
+ 	(begin_html_stack_frame): Likewise.
+ 	(end_html_stack_frame): Likewise.
+ 	(print_path_summary_as_html): Likewise.
+ 	* diagnostic-show-locus.cc
+ 	(struct to_text::auto_check_tag_nesting): New.
+ 	(struct to_html:: auto_check_tag_nesting): New.
+ 	(to_text::pop_html_tag): Change param to const char *.
+ 	(to_html::pop_html_tag): Likewise; rename param to
+ 	"expected_name".
+ 	(default_diagnostic_start_span_fn<to_html>): Update for new param
+ 	of xml::printer::pop_tag.
+ 	(layout_printer<to_html>::end_label): Likewise.
+ 	(layout_printer<Sink>::print_trailing_fixits): Add RAII sentinel
+ 	to check tag nesting for the HTML case.  Delete stray popping
+ 	of "td" in the presence of fix-it hints.
+ 	(layout_printer<Sink>::print_line): Add RAII sentinel
+ 	to check tag nesting for the HTML case.
+ 	(diagnostic_source_print_policy::print_as_html): Likewise.
+ 	(layout_printer<Sink>::print): Likewise.
+ 	* xml-printer.h (xml::printer::printer): Add optional
+ 	"check_popped_tags" param.
+ 	(xml::printer::pop_tag): Add "expected_name" param.
+ 	(xml::printer::get_num_open_tags): New accessor.
+ 	(xml::printer::dump): New decl.
+ 	(xml::printer::m_check_popped_tags): New field.
+ 	(class xml::auto_check_tag_nesting): New.
+ 	(class xml::auto_print_element): Update for new param of pop_tag.
+ 	* xml.cc: Move pragma pop so that the pragma also covers
+ 	xml::printer's member functions, "dump" in particular.
+ 	(xml::printer::printer): Add param "check_popped_tags".
+ 	(xml::printer::pop_tag): Add param "expected_name" and use it to assert
+ 	that the popped tag is as expected.  Assert that we have a tag to
+ 	pop.
+ 	(xml::printer::dump): New.
+ 	(selftest::test_printer): Update for new param of pop_tag.
+ 	(selftest::test_attribute_ordering): Likewise.
+ 
+ 2025-06-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gimple-ssa-warn-access.cc
+ 	(pass_waccess::maybe_check_dealloc_call): Add missing
+ 	auto_diagnostic_group to nest the "returned from %qD"
+ 	note within the warning.
+ 
+ 2025-06-10  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cgraph.cc (cgraph_node::make_profile_local): New member function.
+ 	(cgraph_node::make_profile_global0): New member function.
+ 	(cgraph_node::apply_scale): Do not call adjust_for_ipa_scalling.
+ 	(cgraph_node::scale_profile_to): New member function.
+ 	* cgraph.h (cgraph_node::make_profile_local,
+ 	cgraph_node::make_profile_global0, cgraph_node::scale_profile_to):
+ 	Declare.
+ 	* ipa-cp.cc (lenient_count_portion_handling): Fix logic dropping count
+ 	to local.
+ 	(update_counts_for_self_gen_clones): Use scale_profile_to.
+ 	(update_profiling_info): Use make_profile_local, make_profile_global0
+ 	and scale_profile_to.
+ 	(update_specialized_profile): Likewise.
+ 	* ipa-inline-transform.cc (clone_inlined_nodes): Call
+ 	adjust_for_ipa_scalling.
+ 
+ 2025-06-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120434
+ 	* expr.cc (expand_expr_real_2) <CASE_CONVERT>: If get_range_pos_neg
+ 	at -O2 for scalar integer extension suggests the most significant
+ 	bit of op0 is not set, try both unsigned and signed conversion and
+ 	choose the cheaper one.  If both are the same cost, choose one
+ 	based on TYPE_UNSIGNED (TREE_TYPE (treeop0)).
+ 
+ 2025-06-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120434
+ 	* config/i386/i386.md (*bsr_rex64_2): Rename to ...
+ 	(*bsr_rex64<u>_2): ... this.  Use any_extend instead of sign_extend.
+ 	(*bsr_2): Rename to ...
+ 	(*bsr<u>_2): ... this.  Use any_extend instead of sign_extend.
+ 	(bsr splitters after those): Use any_extend instead of sign_extend.
+ 
+ 2025-06-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120434
+ 	* cfgrtl.h (update_bb_for_insn_chain): Declare.
+ 	* cfgrtl.cc (update_bb_for_insn_chain): No longer static.
+ 	* cfgexpand.h (expand_remove_edge): Declare.
+ 	* cfgexpand.cc: Include "gimple-range.h".
+ 	(head_end_for_bb): New variable.
+ 	(label_rtx_for_bb): Drop ATTRIBUTE_UNUSED from bb argument.
+ 	Use head_end_for_bb if possible for non-BB_RTL bbs.
+ 	(expand_remove_edge): New function.
+ 	(maybe_cleanup_end_of_block): Use it instead of remove_edge.
+ 	(expand_gimple_cond): Don't clear EDGE_TRUE_VALUE and
+ 	EDGE_FALSE_VALUE just yet.  Use head_end_for_bb elts instead
+ 	of BB_END and update_bb_for_insn_chain instead of update_bb_for_insn.
+ 	(expand_gimple_tailcall): Use expand_remove_edge instead of
+ 	remove_edge.  Use head_end_for_bb elts instead of BB_END and
+ 	update_bb_for_insn_chain instead of update_bb_for_insn.
+ 	(expand_gimple_basic_block): Don't change bb to BB_RTL here, instead
+ 	use head_end_for_bb elts instead of BB_HEAD and BB_END.  Use
+ 	update_bb_for_insn_chain instead of update_bb_for_insn.
+ 	(pass_expand::execute): Enable ranger before expand_gimple_basic_block
+ 	calls and create head_end_for_bb vector.  Disable ranger after
+ 	those calls, turn still non-BB_RTL blocks into BB_RTL and set their
+ 	BB_HEAD and BB_END from head_end_for_bb elts, and clear EDGE_TRUE_VALUE
+ 	and EDGE_FALSE_VALUE flags on edges.  Release head_end_for_bb
+ 	vector.
+ 	* tree-outof-ssa.cc (expand_phi_nodes): Don't clear phi nodes here.
+ 	* tree.h (get_range_pos_neg): Add gimple * argument defaulted to NULL.
+ 	* tree.cc (get_range_pos_neg): Add stmt argument.  Use
+ 	get_range_query (cfun) instead of get_global_range_query () and pass
+ 	stmt as third argument to range_of_expr.
+ 	* expr.cc (expand_expr_divmod): Pass currently_expanding_gimple_stmt
+ 	to get_range_pos_neg.
+ 	(expand_expr_real_1) <case SSA_NAME>: Change internal fn handling
+ 	to avoid temporarily overwriting gimple_call_lhs of ifn, instead
+ 	temporarily overwrite SSA_NAME_VAR of its lhs.
+ 	(maybe_optimize_pow2p_mod_cmp): Pass currently_expanding_gimple_stmt
+ 	to get_range_pos_neg.
+ 	(maybe_optimize_mod_cmp): Likewise.
+ 	* internal-fn.cc (get_min_precision): Likewise.  Use
+ 	get_range_query (cfun) instead of get_global_range_query () and pass
+ 	currently_expanding_gimple_stmt as third argument to range_of_expr.
+ 	Pass g to get_range_pos_neg.
+ 	(expand_addsub_overflow): Pass currently_expanding_gimple_stmt
+ 	to get_range_pos_neg.
+ 	(expand_mul_overflow): Likewise.
+ 	(expand_arith_overflow): Pass stmt to get_range_pos_neg.
+ 	* gimple-range-edge.cc: Include rtl.h.
+ 	(gimple_outgoing_range_stmt_p): Return NULL for BB_RTL bbs.
+ 	(gimple_outgoing_range::calc_switch_range): If default_edge is NULL,
+ 	assert currently_expanding_to_rtl and return before trying to
+ 	set range on that edge.
+ 	* builtins.cc (expand_builtin_strnlen): Use get_range_query (cfun)
+ 	instead of get_global_range_query () and pass
+ 	currently_expanding_gimple_stmt as third argument to range_of_expr.
+ 	(determine_block_size): Likewise.
+ 	* gimple-range.cc (gimple_ranger::range_on_exit): Set s to NULL
+ 	instead of last_nondebug_stmt for BB_RTL bbs.
+ 	* stmt.cc: Include cfgexpand.h.
+ 	(expand_case): Use expand_remove_edge instead of remove_edge.
+ 
+ 2025-06-10  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange::set_range_from_bitmask): When the bitmask
+ 	result is a singleton, check if it is contained in the range.
+ 
+ 2025-06-10  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config/gcn/gcn-devices.def: Add gfx942, gfx950 and gfx9-4-generic.
+ 	* config/gcn/gcn-opts.h (TARGET_CDNA3, TARGET_CDNA3_PLUS,
+ 	TARGET_GLC_NAME, TARGET_TARGET_SC_CACHE): Define.
+ 	(TARGET_ARCHITECTED_FLAT_SCRATCH): Use also for CDNA3.
+ 	* config/gcn/gcn.h (gcn_isa): Add ISA_CDNA3 to the enum.
+ 	* config/gcn/gcn.cc (print_operand): Update 'g' to use
+ 	TARGET_GLC_NAME; add 'G' to print TARGET_GLC_NAME unconditionally.
+ 	* config/gcn/gcn-valu.md (scatter, gather): Use TARGET_GLC_NAME.
+ 	* config/gcn/gcn.md: Use %G<num> instead of glc; use 'buffer_inv sc1'
+ 	for TARGET_TARGET_SC_CACHE.
+ 	* doc/invoke.texi (march): Add gfx942, gfx950 and gfx9-4-generic.
+ 	* doc/install.texi (amdgcn*-*-*): Add gfx942, gfx950 and gfx9-4-generic.
+ 	* config/gcn/gcn-tables.opt: Regenerate.
+ 
+ 2025-06-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (lui-constraint<X:mode>and_to_or): Do not use
+ 	the RTL template for split code.  Emit it directly taking care to avoid
+ 	emitting a constant load that needed synthesis.  Fix formatting.
+ 
+ 2025-06-10  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/riscv-ext.texi: Regen.
+ 
+ 2025-06-10  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case UMOD.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op umod.
+ 
+ 2025-06-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (maybe_get_sarif_kind): Update for
+ 	conversion of enum logical_location_kind to enum class.
+ 	* diagnostic.cc (logical_location_manager::function_p): Likewise.
+ 	* libgdiagnostics.cc (html-output/missing-semicolon.py::get_kind):
+ 	Likewise.
+ 	* logical-location.h (enum logical_location_kind): Convert to...
+ 	(enum class logical_location_kind): ...this.
+ 	* selftest-logical-location.cc
+ 	(test_logical_location_manager::item_from_funcname): Update for
+ 	conversion of enum logical_location_kind to enum class.
+ 	* tree-logical-location.cc
+ 	(tree_logical_location_manager::get_kind): Likewise.
+ 
+ 2025-06-09  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cgraph.cc (cgraph_node::apply_scale): New member function.
+ 	* cgraph.h (struct cgraph_node): declare.
+ 	* ipa-cp.cc (update_counts_for_self_gen_clones):
+ 	Use cgraph_node::apply_scale.
+ 	(update_profiling_info): Do not overwrite local
+ 	profile when dropping to 0 global profile.
+ 	(update_specialized_profile): Likewise.
+ 	* ipa-inline-transform.cc (update_noncloned_counts): Remove.
+ 	(can_remove_node_now_p_1): Fix formating.
+ 	(clone_inlined_nodes): Use cgraph_node::apply_scale.
+ 	* profile-count.cc (profile_count::dump): Do not ICE
+ 	when count is not compatible with entry block count.
+ 	* tree-cfg.cc (gimple_verify_flow_info): Check
+ 	compatibility of count and entry block count.
+ 
+ 2025-06-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc (html_builder::m_title_element): New
+ 	field.
+ 	(html_builder::html_builder): Initialize it.  Don't add
+ 	placeholder text.
+ 	(html_builder::set_main_input_filename): New.
+ 	(html_output_format::set_main_input_filename): New.
+ 	(test_html_diagnostic_context::test_html_diagnostic_context): Call
+ 	set_main_input_filename on the new sink.
+ 	(seldtest::test_simple_log): Update expected <title> text.
+ 	* diagnostic-format-json.cc (diagnostic_output_format_init_json):
+ 	Return a reference to the new sink.
+ 	(diagnostic_output_format_init_json_stderr): Likewise.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	* diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Drop
+ 	"main_input_filename_" param, and move adding an artifact for it
+ 	with diagnostic_artifact_role::analysis_target to...
+ 	(sarif_builder::set_main_input_filename): ...this new function.
+ 	(sarif_output_format::set_main_input_filename): New.
+ 	(sarif_output_format::sarif_output_format): Drop
+ 	"main_input_filename_" param.
+ 	(sarif_stream_output_format::sarif_stream_output_format):
+ 	Likewise.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif): Return a reference to *FMT.
+ 	(diagnostic_output_format_init_sarif_stderr): Return a refererence
+ 	to the new sink.  Drop "main_input_filename_" param.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(make_sarif_sink): Drop "main_input_filename_" param.
+ 	(selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context):
+ 	Likewise.  Call set_main_input_filename on the new format.
+ 	(selftest::test_sarif_diagnostic_context::buffered_output_format::buffered_output_format):
+ 	Drop "main_input_filename_" param.
+ 	(selftest::test_make_location_object): Likewise.
+ 	* diagnostic-format-sarif.h
+ 	(diagnostic_output_format_init_sarif_stderr): Return a refererence
+ 	to the new sink.  Drop "main_input_filename_" param.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(make_sarif_sink): Drop "main_input_filename_" param.
+ 	* diagnostic-format.h
+ 	(diagnostic_output_format::set_main_input_filename): New vfunc.
+ 	(diagnostic_output_format_init_json_stderr): Return a refererence
+ 	to the new sink.
+ 	(diagnostic_output_format_init_json_file): Likewise.
+ 	* diagnostic.cc (diagnostic_output_format_init): Likewise.  Call
+ 	set_main_input_filename on the new sink.
+ 	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for above
+ 	changes.
+ 	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise.
+ 	(handle_OPT_fdiagnostics_add_output_): Likewise.
+ 	(handle_OPT_fdiagnostics_set_output_): Likewise.
+ 
+ 2025-06-09  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Relax
+ 	condition for adjustments due to copies from promoted SUBREGs.
+ 
+ 2025-06-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/extend.texi (outline-atomics): Document the inverse -mno flag.
+ 
+ 2025-06-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* params.opt (vect-scalar-cost-multiplier): New.
+ 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters): Use it.
+ 	* doc/invoke.texi (vect-scalar-cost-multiplier): Document it.
+ 
+ 2025-06-09  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/103750
+ 	* config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
+ 	maskload.
+ 	* config/i386/sse.md (*<avx512>_load<mode>mask_and15): New
+ 	define_insn_and_split.
+ 	(*<avx512>_load<mode>mask_and3): Ditto.
+ 
+ 2025-06-09  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case MOD.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op mod.
+ 
+ 2025-06-08  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* auto-profile.cc (function_instance::merge): Fix typo.
+ 
+ 2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/120203
+ 	* config/riscv/riscv.cc (CFUN_IN_CALL): New macro.
+ 	(struct mode_switching_info): Add new field.
+ 	(riscv_frm_adjust_mode_after_call): Remove.
+ 	(riscv_frm_mode_needed): Track call_insn.
+ 
+ 2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	PR target/119164
+ 	* config/riscv/riscv.cc (riscv_emit_frm_mode_set): check
+ 	STATIC_FRM_P for transition to DYN.
+ 
+ 2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_frm_emit_after_bb_end): Delete.
+ 	(riscv_frm_mode_needed): Remove call riscv_frm_emit_after_bb_end.
+ 
+ 2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): Remove.
+ 	(riscv_mode_confluence): Ditto.
+ 	(TARGET_MODE_CONFLUENCE): Ditto.
+ 
+ 2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>
+ 
+ 	* emit-rtl.cc (next_nonnote_nondebug_insn): Update comments.
+ 
+ 2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Move
+ 	definitin of else_vdef to right before the usage. Reformat
+ 	slightly.
+ 
+ 2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120533
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_limited): New function.
+ 	(pass_phiopt::execute):	Call cond_if_else_store_replacement_limited
+ 	for diamand case.
+ 
+ 2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (single_trailing_store_in_bb): Add vphi argument.
+ 	Check for single use of the vdef of the store instead of a loop
+ 	and check vdef's single use statement is the same as vphi.
+ 	(cond_if_else_store_replacement): Update call to single_trailing_store_in_bb.
+ 
+ 2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use get_virtual_phi
+ 	instead of inlining it.
+ 
+ 2025-06-08  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	riscv_extend_comparands to extend sub-word comparison arguments.
+ 
+ 2025-06-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (printx, print_operand):
+ 	Add two instruction operand format codes 'U' and 'V',
+ 	whose represent scale factors of 0 to 15th positive/negative
+ 	power of two.
+ 	* config/xtensa/xtensa.md (c_enum "unspec"):
+ 	Add UNSPEC_CEIL and UNSPEC_FLOOR.
+ 	(int_iterator ANY_ROUND, int_attr m_round):
+ 	New integer iterator and its attribute.
+ 	(fix<s_fix>_truncsfsi2, *fix<s_fix>_truncsfsi2_2x,
+ 	*fix<s_fix>_truncsfsi2_scaled, float<s_float>sisf2,
+ 	*float<s_float>sisf2_scaled):
+ 	Use output templates with the operand formats added above,
+ 	instead of individual output statements.
+ 	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
+ 	New insn patterns.
+ 
+ 2025-06-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
+ 	riscv_extend_comparands to extend sub-word comparison arguments.
+ 
+ 2025-06-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120572
+ 	* doc/invoke.texi (Wmusttail-local-addr,
+ 	Wno-maybe-musttail-local-addr): Fix opindex.
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc (struct html_doctypedecl): New.
+ 	(html_builder::html_builder): Use it to populate the document's
+ 	m_doctypedecl.
+ 	* xml.cc (xml::document::write_as_xml): Replace hardcoded HTML DTD
+ 	with use of m_doctypedecl field.
+ 	(selftest::test_no_dtd): New.
+ 	(selftest::xml_cc_tests): New.
+ 	* xml.h (struct doctypedecl): New decl.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add xml.o.
+ 	* diagnostic-format-html.cc (namespace xml): Move implementation
+ 	to xml.cc
+ 	(selftest::test_printer): Likewise.
+ 	(selftest::test_attribute_ordering): Likewise.
+ 	(selftest::diagnostic_format_html_cc_tests): Don't call the moved
+ 	tests here; they will be called from xml_cc_tests in xml.cc.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call xml_cc_tests.
+ 	* selftest.h (selftest::xml_cc_tests): New decl.
+ 	* xml.cc: New file, based on material from
+ 	diagnostic-format-html.cc.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* selftest.h: Fix the sorting of the various *_cc_tests decls.
+ 
+ 2025-06-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* text-art/widget.cc (selftest::test_empty_wrapper_widget): New.
+ 	(selftest::text_art_widget_cc_tests): Call it.
+ 	* text-art/widget.h (text_art::wrapper_widget::calc_req_size):
+ 	Gracefully handle m_child being null.
+ 	(text_art::wrapper_widget::update_child_alloc_rects): Likewise.
+ 	(text_art::wrapper_widget::paint_to_canvas): Likewise.
+ 
+ 2025-06-06  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add vphi argument.
+ 	Manually update the vphi and new_stmt vdef/lhs.
+ 	(cond_if_else_store_replacement): Update call to cond_if_else_store_replacement_1.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 	    Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* gimple-fold.cc (gimple_fold_builtin_omp_get_initial_device,
+ 	gimple_fold_builtin_omp_get_num_devices): New.
+ 	(gimple_fold_builtin): Call them.
+ 	* omp-builtins.def (BUILT_IN_OMP_GET_INITIAL_DEVICE): Add
+ 	(BUILT_IN_OMP_GET_NUM_DEVICES): Make uservisible + pure.
+ 
+ 2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* builtins.def (DEF_GOACC_BUILTIN_COMPILER, DEF_GOMP_BUILTIN_COMPILER):
+ 	Set NONANSI_P = false to enable those also with -fno-nonansi-builtins.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (get_group_load_store_type): Remove
+ 	non-SLP path.
+ 	(get_load_store_type): Likewise.
+ 
+ 2025-06-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case UDIV.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op divu.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_store): Remove non-SLP
+ 	paths.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-fold.h (create_tmp_reg_or_ssa_name): Remove.
+ 	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Likewise.
+ 	(gimple_fold_builtin_memory_op): Use make_ssa_name.
+ 	(gimple_fold_builtin_strchr): Likewise.
+ 	(gimple_fold_builtin_strcat): Likewise.
+ 	(gimple_load_first_char): Likewise.
+ 	(gimple_fold_builtin_string_compare): Likewise.
+ 	(gimple_build): Likewise.
+ 	* tree-inline.cc (copy_bb): Likewise.
+ 	* config/rs6000/rs6000-builtin.cc (fold_build_vec_cmp): Likewise.
+ 	(rs6000_gimple_fold_mma_builtin): Likewise.
+ 	(rs6000_gimple_fold_builtin): Likewise.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* expr.cc (store_constructor) <ARRAY_TYPE>: Perform the arithmetics
+ 	on offsets in (unsigned) sizetype.
+ 
+ 2025-06-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* coverage.cc (coverage_init): Return early when in LTO
+ 
+ 2025-06-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* profile-count.cc (profile_count::to_sreal_scale): Special case 0 of autofdo.
+ 	(profile_count::combine_with_ipa_count): If outer function has GLOBAL0 profile
+ 	but innter counter has non-zero profile, force it to be 0.
+ 
+ 2025-06-06  Jiawei  <jiawei@iscas.ac.cn>
+ 	    Jiawei Chen  <jiawei@iscas.ac.cn>
+ 	    Yangyu Chen  <cyy@cyyself.name>
+ 	    Tang Haojin  <tanghaojin@outlook.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): New cpu tune.
+ 	(RISCV_CORE): New cpu.
+ 	* doc/invoke.texi: Ditto.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* tree-ssa-forwprop.cc (simplify_count_zeroes): When we cannot use
+ 	the IFN to determine the result at zero use a conditional move
+ 	to reproduce the correct result from the table-based
+ 	algorithm.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120032
+ 	* match.pd (clz_table_index): New match.
+ 	* tree-ssa-forwprop.cc (check_table_array): Rename from
+ 	check_ctz_array.  Split out actual verification to a functor.
+ 	(check_table_string): Rename from check_ctz_string and likewise.
+ 	(check_table): Rename from check_ctz_table and adjust.
+ 	(gimple_clz_table_index): Declare.
+ 	(simplify_count_zeroes): Rename from simplify_count_trailing_zeroes.
+ 	Extend to cover CLZ.
+ 	(pass_forwprop::execute): Adjust.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (simplify_count_trailing_zeroes):
+ 	Use ranger instead of tree_expr_nonzero_p.
+ 
+ 2025-06-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_count_trailing_zeroes):
+ 	Inline into ...
+ 	(simplify_count_trailing_zeroes): ... this function.
+ 	Split out ...
+ 	(check_ctz_table): ... a wrapper for CONSTRUCTOR vs. STRING_CST
+ 	handling.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_expand_conditional_move): Avoid
+ 	zicond in some cases involving sign bit tests.
+ 	* config/riscv/riscv.md: Split a splat of the sign bit feeding a
+ 	masking off high bits into a pair of right shifts.
+ 
+ 2025-06-05  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/120553
+ 	* config/i386/i386.md (mov<mode>cc): Use "general_operand"
+ 	predicate for operands 2 and 3 for all modes.
+ 
+ 2025-06-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* doc/invoke.texi: Update a link to c99status.html.
+ 	* doc/standards.texi: Likewise.
+ 
+ 2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Update the virtual
+ 	op on the inserted clobber and the stack restore function.
+ 	(do_ssa_ccp): Don't add TODO_update_ssa to the todo.
+ 
+ 2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-sve-builtins.cc: Include value-range.h and tree-ssanames.h
+ 	(gimple_folder::convert_and_fold): Use make_ssa_name
+ 	instead of create_tmp_var for the temporary. Add comment about callback argument.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* range-op.cc (range_op_table::range_op_table): Register op_cast
+ 	also for FLOAT_EXPR and FIX_TRUNC_EXPR.
+ 	(RO_III): Adjust comment.
+ 	(range_op_handler::op1_range): Handle RO_IFI rather than RO_IFF.
+ 	Don't handle RO_FII.
+ 	(range_operator::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio
+ 	arguments.
+ 	* range-op-mixed.h (operator_cast::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio and
+ 	frange &, tree, const irange &, const frange &, relation_trio
+ 	arguments.
+ 	* range-op.h (range_operator::op1_cast): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio
+ 	arguments.
+ 	* range-op-float.cc (operator_cast::fold_range): Implement
+ 	float to int and int to float casts.
+ 	(operator_cast::op1_range): Remove overload with
+ 	irange &, tree, const frange &, const frange &, relation_trio
+ 	and frange &, tree, const irange &, const irange &, relation_trio
+ 	arguments.  Add overload with
+ 	irange &, tree, const frange &, const irange &, relation_trio and
+ 	frange &, tree, const irange &, const frange &, relation_trio
+ 	arguments and implement reverse op of float to int and int to float
+ 	cast there.
+ 
+ 2025-06-05  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (afdo_calculate_branch_prob): Fix typo
+ 	in previous patch.
+ 
+ 2025-06-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Remove structured binding
+ 	from the code.
+ 
+ 2025-06-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120547
+ 	* real.cc (real_from_integer): Remove maxbitlen variable, use
+ 	len instead of that.  When shifting right, or in 1 if any of the
+ 	shifted away bits are non-zero.  Formatting fix.
+ 
+ 2025-06-05  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (update_count_by_afdo_count): Fix handling
+ 	of GUESSED_LOCAL.
+ 	(afdo_calculate_branch_prob): Preserve static profile for
+ 	probabilities 0 and 1.
+ 
+ 2025-06-05  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Leverage vdup_v and v_vdup
+ 	binary op for different patterns.
+ 	* config/riscv/vector-iterators.md: Add vdup_v and v_vdup
+ 	binary op iterators.
+ 
+ 2025-06-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/zicond.md: Add new splitters to select
+ 	1, -1 or -1, 1 based on a sign bit test.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension definition.
+ 	* config/riscv/riscv-ext.opt: New extension mask.
+ 	* doc/riscv-ext.texi: Document the new extension.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): Return
+ 	false if the variable has no symtab node.
+ 
+ 2025-06-05  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* tree-eh.cc (operation_could_trap_helper_p): Cover FIX_TRUNC
+ 	expressions explicitly.
+ 
+ 2025-06-05  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* config.gcc (--with-{arch,tune}): Use .def file to validate gcn
+ 	processor names.
+ 	* doc/install.texi (amdgcn*-*-*): Update list of devices supported
+ 	by --with-arch/--with-tune.
+ 
+ 2025-06-05  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR middle-end/112824
+ 	* tree-sra.cc (sra_get_max_scalarization_size): Use MOVE_MAX
+ 	instead of UNITS_PER_WORD to define max_scalarization_size.
+ 
+ 2025-06-05  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/sse.md
+ 	(avx512f_movddup512<mask_name>): Change sselog1 to ssemov.
+ 	(avx_movddup256<mask_name>): Ditto.
+ 	(*vec_dupv2di): Change alternative 4's type attribute from sselog1
+ 	to ssemov.
+ 
+ 2025-06-05  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: Update declaration.
+ 
+ 2025-06-04  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* auto-profile.cc (autofdo_source_profile::read): Dump message
+ 	while merging profile.
+ 	* pass_manager.h (get_pass_auto_profile): New.
+ 
+ 2025-06-04  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR c++/120518
+ 	* omp-general.cc (omp_device_num_check): Look inside a
+ 	CLEANUP_POINT_EXPR when trying to optimize special cases.
+ 
+ 2025-06-04  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/mkoffload.cc (process): Use an 'auto_vec' for
+ 	'file_idx'.
+ 
+ 2025-06-04  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/14295
+ 	PR tree-optimization/108358
+ 	PR tree-optimization/114169
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop): New function.
+ 	(pass_forwprop::execute): Call optimize_agr_copyprop for load/store statements.
+ 
+ 2025-06-04  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* match.pd: Add folding rule for vector average.
+ 	* tree-ssa-ccp.cc (get_default_value): Reject vector types.
+ 	(evaluate_stmt): Reject vector types.
+ 	* tree-ssanames.cc (get_nonzero_bits_1): Extend to handle
+ 	uniform vectors.
+ 
+ 2025-06-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR rtl-optimization/120050
+ 	* ext-dce.cc (ext_dce_process_uses): Break early if a SUBREG in
+ 	rhs is promoted and the truncation from the inner mode to the
+ 	outer mode is not a noop when handling SETs.
+ 
+ 2025-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* range-op-float.cc (range_operator::fold_range,
+ 	range_operator::op1_range, range_operator::op2_range,
+ 	range_operator::lhs_op1_relation, range_operator::lhs_op2_relation,
+ 	operator_equal::op1_range, foperator_unordered_gt::op1_range): Fix
+ 	up parameter indentation.
+ 	* range-op.cc (range_operator::fold_range, range_operator::op1_range,
+ 	range_operator::op1_op2_relation_effect,
+ 	range_operator::update_bitmask, plus_minus_ranges,
+ 	operator_bitwise_and::lhs_op1_relation): Likewise.
+ 
+ 2025-06-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* range-op-mixed.h (operator_cast::fold_range): Add overload
+ 	with 3 {,const} frange & operands.  Change parameter names and
+ 	add final override keywords for float <-> integer cast overloads.
+ 	(operator_cast::op1_range): Likewise.
+ 	* range-op-float.cc (operator_cast::fold_range): New overload
+ 	with 3 {,const} frange & operands.
+ 	(operator_cast::op1_range): Likewise.
+ 
+ 2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: Imply zicsr.
+ 
+ 2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-04  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120447
+ 	* emit-rtl.cc (validate_subreg): Restrict ordered_p test
+ 	between osize and regsize to cases where the inner value
+ 	occupies multiple blocks.
+ 
+ 2025-06-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Rename
+ 	the args to scalar2vr.
+ 	(riscv_rtx_costs): Leverage above func to avoid code dup.
+ 
+ 2025-06-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR debug/120525
+ 	* var-tracking.cc (prepare_call_arguments): Use MEM_EXPR only
+ 	if MEM_P is true.
+ 
+ 2025-06-04  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386.md (define_peephole2): Define some new peephole2 for
+ 	APX NDD.
+ 
+ 2025-06-04  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	* config/i386/i386.md: Add 4 new peephole2 by swap the original
+ 	peephole2's operands' order to support new pattern.
+ 
+ 2025-06-04  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR other/120494
+ 	* calls.cc (expand_call): Always add REG_CALL_DECL note.
+ 	(emit_library_call_value_1): Likewise.
+ 
+ 2025-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Always
+ 	create a SSA name.
+ 
+ 2025-06-03  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
+ 	case for DIV op.
+ 	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add new func
+ 	to get the cost of vector binary.
+ 	(riscv_rtx_costs): Add div rtx match and leverage above wrap to
+ 	get cost.
+ 	* config/riscv/vector-iterators.md: Add new op div to no_shift_vx_op.
+ 
+ 2025-06-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120517
+ 	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
+ 	Fix math in dataref group split.
+ 
+ 2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Replace
+ 	FR2VR with get_fr2vr_cost ().
+ 	* config/riscv/riscv.cc (riscv_register_move_cost): Likewise.
+ 	(riscv_builtin_vectorization_cost): Likewise.
+ 
+ 2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	PR target/119100
+ 	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Add new pattern to
+ 	combine vec_duplicate + vfm{add,sub}.vv into vfm{add,sub}.vf.
+ 	* config/riscv/riscv-opts.h (FPR2VR_COST_UNPROVIDED): Define.
+ 	* config/riscv/riscv-protos.h (get_fr2vr_cost): Declare function.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add cost model for MULT with
+ 	VEC_DUPLICATE.
+ 	(get_fr2vr_cost): New function.
+ 	* config/riscv/riscv.opt: Add new option --param=fpr2vr-cost.
+ 
+ 2025-06-03  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120451
+ 	* tree-switch-conversion.cc (switch_conversion::build_one_array): Mark
+ 	the newly created decl as mergable.
+ 
+ 2025-06-02  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR rtl-optimization/120424
+ 	PR middle-end/118939
+ 	* lra-spills.cc (spill_pseudos): Update insn regno info.
+ 	* lra-eliminations.cc (update_reg_eliminate): Recognize
+ 	disabling of active elimination regardless of
+ 	prev_can_eliminate.
+ 
+ 2025-06-02  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-06-02  Stafford Horne  <shorne@gmail.com>
+ 
+ 	* config/or1k/predicates.md (call_insn_operand): Add condition
+ 	to not allow symbol_ref operands with TARGET_CMODEL_LARGE.
+ 	* config/or1k/or1k.opt: Document new -mcmodel=large
+ 	implications.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (tls_link): Add documentation.
+ 
+ 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/t-riscv: Adjust build rule for gen-riscv-ext-opt
+ 	and gen-riscv-ext-texi.
+ 
+ 2025-06-02  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Use
+ 	range-based-for-loop.
+ 	* config/riscv/riscv-subset.h (riscv_subset_list::iterator):
+ 	New.
+ 	(riscv_subset_list::const_iterator): New.
+ 
+ 2025-06-01  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR other/120493
+ 	* final.cc (call_from_call_insn): Change the argument type to
+ 	const rtx_call_insn *.
+ 	(get_call_rtx_from): New.
+ 	* rtl.h (is_a_helper <const rtx_call_insn *>::test): New.
+ 	(get_call_rtx_from): Moved to the final.cc section.
+ 	* rtlanal.cc (get_call_rtx_from): Removed.
+ 
+ 2025-06-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_vector_load): Set the vuse manually
+ 	on the new load statements. Also remove forward declaration since
+ 	the definition is before the first use.
+ 	(pass_forwprop::execute): Likewise for complex loads.
+ 	(pass_data_forwprop): Remove TODO_update_ssa.
+ 
+ 2025-06-01  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md: Fix line too long for sorts
+ 	of pattern.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc: Remove include of reload.h.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.md (movsf_internal):
+ 	Remove destination side constraint modifier '^' in the third
+ 	alternative.
+ 
+ 2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc
+ 	(xtensa_ira_change_pseudo_allocno_class):
+ 	New prototype and function.
+ 	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
+ 	(xtensa_register_move_cost):
+ 	Change between integer and FP register move cost to a value
+ 	based on actual behavior, i.e. 2, the default and the same as
+ 	the move cost between integer registers.
+ 
+ 2025-05-31  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* function.h (struct function): Remove last_verified.
+ 	* gimple-harden-conditionals.cc (pass_data_harden_compares): Remove
+ 	TODO_verify_il.
+ 	(pass_data_harden_conditional_branches): Likewise.
+ 	* gimple-harden-control-flow.cc (pass_harden_control_flow_redundancy::execute):
+ 	Don't return TODO_verify_il.
+ 	* ipa-strub.cc (pass_data_ipa_strub): Remove TODO_verify_il.
+ 	* passes.cc (TODO_verify_il): Define.
+ 	(execute_function_todo): Don't use or set last_verified.
+ 	(clear_last_verified): Remove.
+ 	(execute_one_ipa_transform_pass): Update comment before execute_todo.
+ 	Assert that none of the todos have TODO_verify_il set on it.
+ 	(execute_one_pass): Don't call clear_last_verified on all functions.
+ 	Assert that none of the todos have TODO_verify_il set on it.
+ 	* tree-inline.cc (initialize_cfun): Don't copy last_verified.
+ 	* tree-pass.h (TODO_verify_all): Remove.
+ 	* tree-vrp.cc (pass_data_early_vrp): Remove TODO_verify_all.
+ 	(pass_data_fast_vrp): Likewise.
+ 
+ 2025-05-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120357
+ 	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Create
+ 	the conditional reduction induction IV increment before the
+ 	main IV exit.
+ 
+ 2025-05-31  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/120389
+ 	* doc/gm2.texi (-fm2-strict-type-reason): Document new flag.
+ 
+ 2025-05-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc (HTML_STYLE): Add ".highlight-a" and
+ 	".highlight-b".
+ 	(html_builder::make_element_for_diagnostic): Handle begin_color
+ 	and end_color.
+ 	* diagnostic-show-locus.cc (to_html::to_html): Add "richloc"
+ 	param and use it to initialize m_richloc.
+ 	(to_html::colorize_text_for_range_idx): Drop.
+ 	(to_html::get_location_range_by_idx): New.
+ 	(to_html::get_highlight_color_for_range_idx): New.
+ 	(to_html::m_richloc): New field.
+ 	(print_html_span_start): Update for new param of to_html ctor.
+ 	(line_printer::m_was_in_range_p): New field.
+ 	(line_printer::m_last_range_idx): New field.
+ 	(layout_printer<Sink>::print_source_line): Use set_in_range
+ 	and set_outside_range rather than colorization calls.
+ 	(layout_printer<Sink>::set_in_range): New.
+ 	(layout_printer<Sink>::set_outside_range): New.
+ 	(layout_printer<Sink>::print_annotation_line): Use set_in_range
+ 	and set_outside_range rather than colorization calls.
+ 	(layout_printer<to_text>::begin_label): Convert param from label
+ 	to state_idx.  Add "is_label_text" param and use it to guard logic
+ 	for turning off colorization within paths.
+ 	(layout_printer<to_html>::begin_label): Likewise.  Push <span>
+ 	for any highlight color.
+ 	(layout_printer<to_text>::end_label): Likewise.
+ 	(layout_printer<to_text>::end_label): Likewise, popping the
+ 	<span>.
+ 	(layout_printer<Sink>::print_any_labels): Convert begin/end_label
+ 	calls to pass in state_idx rather than label.  Use begin/end_label
+ 	rather than colorization calls.
+ 	(layout_printer<Sink>::layout_printer): Likewise.
+ 	(layout_printer<Sink>::layout_printer): Initialize new fields.
+ 	(diagnostic_source_print_policy::print_as_html): Update for new
+ 	param of to_html ctor.
+ 
+ 2025-05-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* passes.cc (execute_all_ipa_transforms): Fix typo in
+ 	commenet.
+ 
+ 2025-05-30  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* doc/standards.texi (C Language): Document library facilities
+ 	provided in terms of headers not declaring functions with external
+ 	linkage, not in terms of headers required of freestanding
+ 	implementations.
+ 	* doc/sourcebuild.texi (Subdirectories, Headers): Likewise.
+ 	* doc/trouble.texi (Standard Libraries): Likewise.
+ 
+ 2025-05-30  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (avg<v_double_trunc>3_ceil): Add insn
+ 	expand to leverage vaadd with rnu directly.
+ 
+ 2025-05-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120341
+ 	* tree-ssa-loop-im.cc (can_sm_ref_p): STRING_CSTs are readonly.
+ 	* tree-ssa-phiopt.cc (cond_store_replacement): Likewise.
+ 
+ 2025-05-30  Thomas Schwinge  <tschwinge@baylibre.com>
+ 	    Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/119835
+ 	* tree-nrv.cc (pass_nrv::execute): Defuse 'RESULT_DECL' check.
+ 
+ 2025-05-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-show-locus.cc (colorizer::m_current_named_color): New
+ 	field.
+ 	(colorizer::set_named_color): Use it to consolidate repeated calls
+ 	to the same color.
+ 
+ 2025-05-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120457
+ 	* tree-vect-slp.cc (vect_lower_load_permutations): Implement
+ 	the same heuristics as load vectorization for single-element
+ 	interleaving that spans multiple vectors.
+ 
+ 2025-05-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120347
+ 	* rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the
+ 	IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers.
+ 	* rtl-ssa/changes.cc (recog_level2): Check whether an
+ 	RTX_AUTOINCed register also appears outside of an address.
+ 
+ 2025-05-30  Julian Brown  <julian@codesourcery.com>
+ 	    Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_omp_ctx): Add IMPLICIT_MAPPERS field.
+ 	(new_omp_context): Initialise IMPLICIT_MAPPERS hash map.
+ 	(delete_omp_context): Delete IMPLICIT_MAPPERS hash map.
+ 	(instantiate_mapper_info): New structs.
+ 	(remap_mapper_decl_1, omp_mapper_copy_decl, omp_instantiate_mapper,
+ 	omp_instantiate_implicit_mappers): New functions.
+ 	(gimplify_scan_omp_clauses): Handle MAPPER_BINDING clauses.
+ 	(gimplify_adjust_omp_clauses): Instantiate implicit declared mappers.
+ 	(gimplify_omp_declare_mapper): New function.
+ 	(gimplify_expr): Call above function.
+ 	* langhooks-def.h (lhd_omp_mapper_lookup,
+ 	lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): Add
+ 	prototypes.
+ 	(LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES,
+ 	LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE,
+ 	LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define macros.
+ 	(LANG_HOOK_DECLS): Add above macros.
+ 	* langhooks.cc (lhd_omp_mapper_lookup,
+ 	lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): New
+ 	dummy functions.
+ 	* langhooks.h (lang_hooks_for_decls): Add OMP_FINISH_MAPPER_CLAUSES,
+ 	OMP_MAPPER_LOOKUP, OMP_EXTRACT_MAPPER_DIRECTIVE, OMP_MAP_ARRAY_SECTION
+ 	hooks.
+ 	* omp-general.h (omp_name_type<T>): Add templatized struct, hash type
+ 	traits (for omp_name_type<tree> specialization).
+ 	(omp_mapper_list<T>): Add struct.
+ 	* tree-core.h (omp_clause_code): Add OMP_CLAUSE__MAPPER_BINDING_.
+ 	* tree-pretty-print.cc (dump_omp_clause): Support GOMP_MAP_UNSET,
+ 	GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping
+ 	clauses.  Support OMP_CLAUSE__MAPPER_BINDING_ and OMP_DECLARE_MAPPER.
+ 	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
+ 	OMP_CLAUSE__MAPPER_BINDING_.
+ 	* tree.def (OMP_DECLARE_MAPPER): New tree code.
+ 	* tree.h (OMP_DECLARE_MAPPER_ID, OMP_DECLARE_MAPPER_DECL,
+ 	OMP_DECLARE_MAPPER_CLAUSES): New defines.
+ 	(OMP_CLAUSE__MAPPER_BINDING__ID, OMP_CLAUSE__MAPPER_BINDING__DECL,
+ 	OMP_CLAUSE__MAPPER_BINDING__MAPPER): New defines.
+ 
+ 2025-05-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Return true
+ 	if something was done.
+ 	(scc_copy_prop::propagate): Return true if something was changed.
+ 	(pass_sccopy::execute): Return TODO_cleanup_cfg if a prop happened.
+ 
+ 2025-05-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* auto-profile.cc (function_instance::merge): New.
+ 	(autofdo_source_profile::read): Call merge.
+ 
+ 2025-05-29  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* config/aarch64/gcc-auto-profile: Make script executable.
+ 
+ 2025-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Adds
+ 	statistics when the statement changed.
+ 
+ 2025-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Change check
+ 	from NULL/non-ssa name to default name.
+ 
+ 2025-05-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc (HTML_STYLE): Fix PatternFly URL in
+ 	comment.
+ 
+ 2025-05-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc
+ 	(html_builder::make_element_for_diagnostic::html_token_printer):
+ 	Reimplement in terms of xml::printer.
+ 	(html_builder::make_element_for_diagnostic): Create an
+ 	xml::printer and use it with the html_token_printer.
+ 
+ 2025-05-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-html.cc (html_builder::make_metadata_element):
+ 	Gracefully handle the case where "url" is null.
+ 
+ 2025-05-29  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pretty-print.cc (pretty_printer::pretty_printer): Use "nullptr"
+ 	rather than "NULL".  Remove explicit delete of
+ 	m_format_postprocessor.
+ 	* pretty-print.h (format_postprocessor::clone): Use unique_ptr.
+ 	(pretty_printer::set_format_postprocessor): New.
+ 	(pretty_printer::m_format_postprocessor): Use unique_ptr.
+ 	(pp_format_postprocessor): Update for use of unique_ptr, removing
+ 	reference from return type.
+ 
+ 2025-05-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/120295
+ 	* ipa-prop.cc (update_jump_functions_after_inlining): Do not
+ 	combine pass-through jump functions with type-casts changing
+ 	signedness.
+ 
+ 2025-05-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* ipa-prop.cc (ipa_dump_jump_function): Fix whitespace when
+ 	dumping IPA VRs.
+ 
+ 2025-05-29  Pranav Gorantla  <Pranav.Gorantla@amd.com>
+ 
+ 	* config/i386/i386-expand.cc (emit_reduc_half): Use shuffles to
+ 	generate reduc half for V4SI, similar modes.
+ 	* config/i386/i386.h (TARGET_SSE_REDUCTION_PREFER_PSHUF): New Macro.
+ 	* config/i386/x86-tune.def (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF):
+ 	New tuning.
+ 
+ 2025-05-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR bootstrap/120464
+ 	* ggc-page.cc (struct ggc_globals): Fix up comment formatting.
+ 	(find_free_list): Likewise.
+ 	(alloc_page): For defined(USING_MALLOC_PAGE_GROUPS) use
+ 	free_list->free_pages instead of G.free_pages.
+ 	(do_release_pages): Add n1 and n2 arguments, make them used.
+ 	Move defined(USING_MALLOC_PAGE_GROUPS) page group freeing to
+ 	release_pages and dumping of statistics as well.  Formatting fixes.
+ 	(release_pages): Adjust do_release_pages caller, move here
+ 	defined(USING_MALLOC_PAGE_GROUPS) page group freeing and dumping
+ 	of statistics.
+ 	(ggc_handle_finalizers): Fix up comment formatting and typo.
+ 
+ 2025-05-29  Jerry Zhang Jian  <jerry.zhangjian@sifive.com>
+ 
+ 	* config/riscv/riscv-ext.def: New extensions
+ 	* config/riscv/riscv-ext.opt: Auto re-generated
+ 	* doc/riscv-ext.texi: Auto re-generated
+ 
+ 2025-05-29  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case for MULT op.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op mult to no_shift_vx_ops.
+ 
+ 2025-05-28  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/119298
+ 	* config/i386/x86-tune-costs.h (struct processor_costs): Set addss cost
+ 	back to 2.
+ 
+ 2025-05-28  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_load): Remove non-SLP paths.
+ 
+ 2025-05-28  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/120436
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct vset_def):
+ 	Avoid division by zero.
+ 	(struct vget_def): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (struct function_group_info):
+ 	Use required_extensions_specified instead of duplicating code.
+ 
+ 2025-05-28  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec.md (avg<v_double_trunc>3_floor): Add insn
+ 	expand to leverage vaadd directly.
+ 
+ 2025-05-28  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* cgraph.cc (cgraph_edge::maybe_hot_p): For auto-fdo turn 0
+ 	to non-zero.
+ 	* ipa-cp.cc (cs_interesting_for_ipcp_p): Do not trust
+ 	auto-fdo 0.
+ 	* profile-count.cc (profile_count::adjust_for_ipa_scaling): Likewise.
+ 	(profile_count::from_gcov_type): Fix formating.
+ 
+ 2025-05-28  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* predict.cc (rebuild_frequencies): look harder for presence
+ 	of profile feedback.
+ 
+ 2025-05-28  Yuta Mukai  <mukai.yuta@fujitsu.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (fujitsu-monaka): Update ISA
+ 	features.
+ 
+ 2025-05-28  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* predict.cc (set_even_probabilities): Set quality to guessed.
+ 
+ 2025-05-28  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (update_count_by_afdo_count): New function.
+ 	(afdo_set_bb_count): Add debug output; only set count if it is
+ 	non-zero.
+ 	(afdo_find_equiv_class): Add debug output.
+ 	(afdo_calculate_branch_prob): Fix formating.
+ 	(afdo_annotate_cfg): Add debug output; do not erase static
+ 	profile if autofdo profile is all 0.
+ 
+ 2025-05-28  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* doc/extend.texi (C Extensions): Add missing menu items.
+ 
+ 2025-05-28  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/119181
+ 	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
+ 	Split datarefs when there's a gap bigger than
+ 	MAX_BITSIZE_MODE_ANY_MODE.
+ 
+ 2025-05-27  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120400
+ 	* fold-const.cc (simple_operand_p): False for vars with
+ 	DECL_VALUE_EXPR.
+ 
+ 2025-05-27  Alejandro Colomar  <alx@kernel.org>
+ 
+ 	PR c/117025
+ 	* Makefile.in (USER_H): Add <stdcountof.h>.
+ 	* ginclude/stdcountof.h: New file.
+ 
+ 2025-05-27  Alejandro Colomar  <alx@kernel.org>
+ 	    Martin Uecker  <uecker@tugraz.at>
+ 
+ 	PR c/117025
+ 	* doc/extend.texi: Document _Countof operator.
+ 
+ 2025-05-27  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/gcc-auto-profile: regenerate.
+ 
+ 2025-05-27  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* auto-profile.cc (function_instance::mark_annotated): Remove.
+ 	(function_instance::total_annotated_count): Remove.
+ 	(autofdo_source_profile::mark_annotated): Remove.
+ 	(afdo_set_bb_count): Do not mark annotated locations.
+ 	(afdo_annotate_cfg): Likewise.
+ 
+ 2025-05-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* ipa-sra.cc (scan_expr_access): Also disqualify storage order
+ 	barriers from splitting.
+ 	* tree.h (storage_order_barrier_p): Also return false if the
+ 	operand of the VIEW_CONVERT_EXPR has reverse storage order.
+ 
+ 2025-05-27  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc: Define INCLUDE_STRING.
+ 	Include "xml.h", "xml-printer.h", and "json.h".
+ 	(html_generation_options::html_generation_options): New.
+ 	(namespace xml): Move decls to xml.h and convert from using
+ 	label_text to std::string.
+ 	(xml::text::write_as_xml): Reimplement indentation so it is done
+ 	by this node, rather than the parent.
+ 	(xml::node_with_children::add_text): Convert from label_text to
+ 	std::string.  Consolidate runs of text into a single node.
+ 	(xml::document::write_as_xml): Reimplement indentation.
+ 	(xml::element::write_as_xml): Reimplement indentation so it is
+ 	done by this node, rather than the parent.  Convert from
+ 	label_text to std::string.  Update attribute-printing to new
+ 	representation to preserve insertion order.
+ 	(xml::element::set_attr): Convert from label_text to std::string.
+ 	Record insertion order.
+ 	(xml::raw::write_as_xml): New.
+ 	(xml::printer::printer): New.
+ 	(xml::printer::push_tag): New.
+ 	(xml::printer::push_tag_with_class): New.
+ 	(xml::printer::pop_tag): New.
+ 	(xml::printer::set_attr): New.
+ 	(xml::printer::add_text): New.
+ 	(xml::printer::add_raw): New.
+ 	(xml::printer::push_element): New.
+ 	(xml::printer::append): New.
+ 	(xml::printer::get_insertion_point): New.
+ 	(html_builder::add_focus_id): New.
+ 	(html_builder::m_html_gen_opts): New field.
+ 	(html_builder::m_head_element): New field.
+ 	(html_builder::m_next_diag_id): New field.
+ 	(html_builder::m_ui_focus_ids): New field.
+ 	(make_div): Convert from label_text to std::string.
+ 	(make_span): Likewise.
+ 	(HTML_STYLE): New.
+ 	(HTML_SCRIPT): New.
+ 	(html_builder::html_builder): Fix indentation.  Add
+ 	"html_gen_opts" param.  Initialize new fields.  Reimplement
+ 	using xml::printer.  Optionally add style and script tags.
+ 	(class html_path_label_writer): New.
+ 	(html_builder::make_element_for_diagnostic): Convert from
+ 	label_text to std::string. Set "id" on "gcc-diagnostic" and
+ 	"gcc-message" <div> elements; add the latter to the focus ids.
+ 	Use diagnostic_context::maybe_show_locus_as_html rather than
+ 	html_builder::make_element_for_source.  Use print_path_as_html
+ 	rather than html_builder::make_element_for_path.
+ 	(html_builder::make_element_for_source): Drop.
+ 	(html_builder::make_element_for_path): Drop.
+ 	(html_builder::make_element_for_patch): Convert from label_text to
+ 	std::string.
+ 	(html_builder::make_metadata_element): Likewise.  Use
+ 	xml::printer.
+ 	(html_builder::make_element_for_metadata): Convert from label_text
+ 	to std::string.
+ 	(html_builder::emit_diagram): Expand comment.
+ 	(html_builder::flush_to_file): Write out initializer for
+ 	"focus_ids" into javascript.
+ 	(html_output_format::html_output_format): Add param
+ 	"html_gen_opts" and use it to initialize m_builder.
+ 	(html_file_output_format::html_file_output_format): Likewise, to
+ 	initialize base class.
+ 	(make_html_sink): Likewise, to pass to ctor.
+ 	(selftest::test_html_diagnostic_context::test_html_diagnostic_context):
+ 	Set up html_generation_options.
+ 	(selftest::html_buffered_output_format::html_buffered_output_format):
+ 	Add html_gen_opts param.
+ 	(selftest::test_simple_log): Add id attributes to expected text
+ 	for "gcc-diagnostic" and "gcc-message" elements.  Update
+ 	whitespace for indentation fixes.
+ 	(selftest::test_metadata): Update whitespace for indentation
+ 	fixes.
+ 	(selftest::test_printer): New selftest.
+ 	(selftest::test_attribute_ordering): New selftest.
+ 	(selftest::diagnostic_format_html_cc_tests): Call the new
+ 	selftests.
+ 	* diagnostic-format-html.h (struct html_generation_options): New.
+ 	(make_html_sink): Add "html_gen_opts" param.
+ 	(print_path_as_html): New decl.
+ 	* diagnostic-path-output.cc: Define INCLUDE_MAP.  Add includes of
+ 	"diagnostic-format-html.h", "xml.h", and "xml-printer.h".
+ 	(path_print_policy::path_print_policy): Add ctor.
+ 	(path_print_policy::get_diagram_theme): Fix whitespace.
+ 	(struct stack_frame): New.
+ 	(begin_html_stack_frame): New function.
+ 	(end_html_stack_frame): New function.
+ 	(emit_svg_arrow): New function.
+ 	(event_range::print): Rename to...
+ 	(event_range::print_as_text): ...this.  Update call to
+ 	diagnostic_start_span.
+ 	(event_range::print_as_html): New, based on the above, but ported
+ 	from pretty_printer to xml::printer.
+ 	(thread_event_printer::print_swimlane_for_event_range): Rename
+ 	to...
+ 	(thread_event_printer::print_swimlane_for_event_range_as_text):
+ 	...this.  Update for renaming of event_range::print to
+ 	event_range::print_as_text.
+ 	(thread_event_printer::print_swimlane_for_event_range_as_html):
+ 	New.
+ 	(print_path_summary_as_text): Update for "_as_text" renaming.
+ 	(print_path_summary_as_html): New.
+ 	(print_path_as_html): New.
+ 	* diagnostic-show-locus.cc: Add defines of INCLUDE_MAP and
+ 	INCLUDE_STRING.  Add includes of "xml.h" and "xml-printer.h".
+ 	(struct char_display_policy): Replace "m_print_cb" with
+ 	"m_print_text_cb" and "m_print_html_cb".
+ 	(struct to_text): New.
+ 	(struct to_html): New.
+ 	(get_printer): New.
+ 	(default_diagnostic_start_span_fn<to_text>): New.
+ 	(default_diagnostic_start_span_fn<to_html>): New.
+ 	(class layout): Update "friend class layout_printer;" for
+ 	template.
+ 	(enum class margin_kind): New.
+ 	(class layout_printer): Convert into a template.
+ 	(layout_printer::m_pp): Replace field with...
+ 	(layout_printer::m_sink): ...this.
+ 	(layout_printer::m_colorizer): Drop field in favor of a pointer
+ 	in the "to_text" sink.
+ 	(default_print_decoded_ch): Convert into a template.
+ 	(escape_as_bytes_print): Likewise.
+ 	(escape_as_unicode_print): Likewise.
+ 	(make_char_policy): Update to use both text and html callbacks.
+ 	(layout_printer::print_gap_in_line_numbering): Replace with...
+ 	(layout_printer<to_text>::print_gap_in_line_numbering): ...this
+ 	(layout_printer<to_html>::print_gap_in_line_numbering): ...and
+ 	this.
+ 	(layout_printer::print_source_line): Convert to template, using
+ 	m_sink.
+ 	(layout_printer::print_leftmost_column): Likewise.
+ 	(layout_printer::start_annotation_line): Likewise.
+ 	(layout_printer<to_text>::end_line): New.
+ 	(layout_printer<to_html>::end_line): New.
+ 	(layout_printer::print_annotation_line): Convert to template,
+ 	using m_sink.
+ 	(class line_label): Add field m_original_range_idx.
+ 	(layout_printer<to_text>::begin_label): New.
+ 	(layout_printer<to_html>::begin_label): New.
+ 	(layout_printer<to_text>::end_label): New.
+ 	(layout_printer<to_html>::end_label): New.
+ 	(layout_printer::print_any_labels): Convert to template, using
+ 	m_sink.
+ 	(layout_printer::print_leading_fixits): Likewise.
+ 	(layout_printer::print_trailing_fixits): Likewise.
+ 	(layout_printer::print_newline): Drop.
+ 	(layout_printer::move_to_column): Convert to template, using
+ 	m_sink.
+ 	(layout_printer::show_ruler): Likewise.
+ 	(layout_printer::print_line): Likewise.
+ 	(layout_printer::print_any_right_to_left_edge_lines): Likewise.
+ 	(layout_printer::layout_printer): Likewise.
+ 	(diagnostic_context::maybe_show_locus_as_html): New.
+ 	(diagnostic_source_print_policy::diagnostic_source_print_policy):
+ 	Update for split of start_span_cb into text vs html variants.
+ 	(diagnostic_source_print_policy::print): Update for use of
+ 	templates; use to_text.
+ 	(diagnostic_source_print_policy::print_as_html): New.
+ 	(layout_printer::print): Convert to template, using m_sink.
+ 	(selftest::make_element_for_locus): New.
+ 	(selftest::make_raw_html_for_locus): New.
+ 	(selftest::test_layout_x_offset_display_utf8): Update for use of
+ 	templates.
+ 	(selftest::test_layout_x_offset_display_tab): Likewise.
+ 	(selftest::test_one_liner_caret_and_range): Add test coverage of
+ 	HTML output.
+ 	(selftest::test_one_liner_labels): Likewise.
+ 	* diagnostic.cc (diagnostic_context::initialize): Update for split
+ 	of start_span_cb into text vs html variants.
+ 	(default_diagnostic_start_span_fn): Move to
+ 	diagnostic-show-locus.cc, converting to template.
+ 	* diagnostic.h (class xml::printer): New forward decl.
+ 	(diagnostic_start_span_fn): Replace typedef with "using",
+ 	converting to a template.
+ 	(struct to_text): New forward decl.
+ 	(struct to_html): New forward decl.
+ 	(get_printer): New decl.
+ 	(diagnostic_location_print_policy::print_text_span_start): New
+ 	decl.
+ 	(diagnostic_location_print_policy::print_html_span_start): New
+ 	decl.
+ 	(class html_label_writer): New.
+ 	(diagnostic_source_print_policy::print_as_html): New decl.
+ 	(diagnostic_source_print_policy::get_start_span_fn): Replace
+ 	with...
+ 	(diagnostic_source_print_policy::get_text_start_span_fn): ...this
+ 	(diagnostic_source_print_policy::get_html_start_span_fn): ...and
+ 	this
+ 	(diagnostic_source_print_policy::m_start_span_cb): Replace with...
+ 	(diagnostic_source_print_policy::m_text_start_span_cb): ...this
+ 	(diagnostic_source_print_policy::m_html_start_span_cb): ...and
+ 	this.
+ 	(diagnostic_context::maybe_show_locus_as_html): New decl.
+ 	(diagnostic_context::m_text_callbacks::m_start_span): Replace
+ 	with...
+ 	(diagnostic_context::m_text_callbacks::m_text_start_span): ...this
+ 	(diagnostic_context::m_text_callbacks::m_html_start_span): ...and
+ 	this.
+ 	(diagnostic_start_span): Update for template change.
+ 	(diagnostic_show_locus_as_html): New inline function.
+ 	(default_diagnostic_start_span_fn): Convert to template.
+ 	* doc/invoke.texi (experimental-html): Add "css" and "javascript"
+ 	keys.
+ 	* opts-diagnostic.cc (html_scheme_handler::make_sink): Likewise.
+ 	* selftest-diagnostic.cc
+ 	(selftest::test_diagnostic_context::start_span_cb): Update for
+ 	template changes.
+ 	* selftest-diagnostic.h
+ 	(selftest::test_diagnostic_context::start_span_cb): Likewise.
+ 	* xml-printer.h: New file.
+ 	* xml.h: New file, based on material in diagnostic-format-html.cc,
+ 	but using std::string rather than label_text.
+ 	(xml::element::m_key_insertion_order): New field.
+ 	(struct xml::raw): New.
+ 
+ 2025-05-27  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-path-output.o.
+ 	* diagnostic-path-output.cc: New file, taken from material in
+ 	diagnostic-path.cc.
+ 	* diagnostic-path.cc: Drop includes of
+ 	"diagnostic-macro-unwinding.h", "intl.h", "gcc-rich-location.h",
+ 	"diagnostic-color.h", "diagnostic-event-id.h",
+ 	"diagnostic-label-effects.h", "pretty-print-markup.h",
+ 	"selftest.h", "selftest-diagnostic.h",
+ 	"selftest-diagnostic-path.h", "text-art/theme.h", and
+ 	"diagnostic-format-text.h".
+ 	(class path_print_policy): Move to diagnostic-path-output.cc.
+ 	(class path_label): Likewise.
+ 	(can_consolidate_events): Likewise.
+ 	(class per_thread_summary): Likewise.
+ 	(struct event_range): Likewise.
+ 	(struct path_summary): Likewise.
+ 	(per_thread_summary::interprocedural_p): Likewise.
+ 	(path_summary::path_summary): Likewise.
+ 	(write_indent): Likewise.
+ 	(base_indent): Likewise.
+ 	(per_frame_indent): Likewise.
+ 	(class thread_event_printer): Likewise.
+ 	(print_path_summary_as_text): Likewise.
+ 	(class element_event_desc): Likewise.
+ 	(diagnostic_text_output_format::print_path): Likewise.
+ 	(selftest::path_events_have_column_data_p): 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.
+ 	(class selftest::control_flow_test): 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.
+ 	(ASSERT_CFG_EDGE_PATH_STREQ): Likewise.
+ 	(selftest::test_control_flow_4): Likewise.
+ 	(selftest::test_control_flow_5): Likewise.
+ 	(selftest::test_control_flow_6): Likewise.
+ 	(selftest::control_flow_tests): Likewise.
+ 	(selftest::diagnostic_path_cc_tests): Likewise, renaming
+ 	accordingly.
+ 	* selftest-run-tests.cc (selftest::run_tests): Update for
+ 	move of path-printing selftests.
+ 	* selftest.h (selftest::diagnostic_path_cc_tests): Replace decl
+ 	with...
+ 	(selftest::diagnostic_path_output_cc_tests): ...this.
+ 
+ 2025-05-27  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md(*vec_extract<mode>): Fix mnemonic.
+ 
+ 2025-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/117965
+ 	* tree-ssa-phiprop.cc (phivn_valid_p): Remove.
+ 	(propagate_with_phi): Pass in virtual PHI node from BB,
+ 	rewrite load motion validity check to require the same
+ 	virtual use along all paths.
+ 
+ 2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/119884
+ 	* avoid-store-forwarding.cc (process_store_forwarding):
+ 	Use `lowpart_subreg` for the base register initialization
+ 	and remove redundant stores from the store/load sequence.
+ 
+ 2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	* sbitmap.cc (bitmap_any_bit_in_range_p):
+ 	Call and return the result of `bitmap_bit_in_range_p` with the
+ 	`any_inverted` parameter set to false.
+ 	(bitmap_bit_in_range_p): New function.
+ 	(bitmap_all_bits_in_range_p): New function.
+ 	* sbitmap.h (bitmap_all_bits_in_range_p): New function.
+ 
+ 2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	* sbitmap.cc (bitmap_bit_in_range_p): Renamed the function.
+ 	(bitmap_any_bit_in_range_p): New function name.
+ 	(bitmap_bit_in_range_p_checking): Renamed the function.
+ 	(bitmap_any_bit_in_range_p_checking): New function name.
+ 	(test_set_range): Updated function calls to use the new name.
+ 	(test_bit_in_range): Likewise.
+ 	* sbitmap.h (bitmap_bit_in_range_p): Renamed the function.
+ 	(bitmap_any_bit_in_range_p): New function name.
+ 	* tree-ssa-dse.cc (live_bytes_read):
+ 	Updated function call to use the new name.
+ 
+ 2025-05-27  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (andi+bclr splits): Simplified from
+ 	prior define_insn_and_splits.
+ 	* config/riscv/riscv.cc (synthesize_and): Add support for andi+bclr
+ 	sequences.
+ 
+ 2025-05-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
+ 	new case for XOR op.
+ 	(expand_vx_binary_vec_vec_dup): Diito.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops.
+ 
+ 2025-05-27  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	* config/s390/vector.md (VF): New mode iterator.
+ 	(VEC_SET_NONFLOAT): New mode iterator.
+ 	(VEC_SET_SINGLEFLOAT): New mode iterator.
+ 	(*vec_set<mode>): Split pattern in two.
+ 	(*vec_setv2df): Extract special handling for V2DF mode.
+ 	(*vec_extract<mode>): Split pattern in two.
+ 
+ 2025-05-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/extend.texi (Common Variable Attributes): Fix typo in
+ 	description of nonstring.
+ 
+ 2025-05-27  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* gcc.cc (find_multilib_os_dir_by_multilib_dir): New.
+ 	(set_multilib_dir): Fix multilib_os_dir and multiarch_dir
+ 	if multilib_os_dir is not set.
+ 
+ 2025-05-27  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: add singned vector SAT_ADD IMM form1 matching.
+ 
+ 2025-05-27  xuli  <xuli1@eswincomputing.com>
+ 
+ 	* match.pd: Add signed scalar SAT_ADD IMM form1 with IMM=-1 matching.
+ 	* tree-ssa-math-opts.cc (match_unsigned_saturation_add): Adapt function name.
+ 	(match_saturation_add_with_assign): Match signed and unsigned SAT_ADD with assign.
+ 	(math_opts_dom_walker::after_dom_children): Match imm=-1 signed SAT_ADD with NOP_EXPR case.
+ 
+ 2025-05-26  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Move C++ -fdump-lang to C++ section.
+ 	Add -fdump-lang-tinst.
+ 
+ 2025-05-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* config/aarch64/gcc-auto-profile: New file.
+ 
+ 2025-05-26  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/rs6000.cc: Remove include of reload.h .
+ 
+ 2025-05-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
+ 
+ 	* ipa-split.cc (pass_feedback_split_functions::clone): New.
+ 	* passes.def: Enable pass_feedback_split_functions for
+ 	pass_ipa_auto_profile.
+ 
+ 2025-05-25  Michael J. Eager  <eager@eagercon.com>
+ 
+ 	PR target/86772
+ 	Tracking CVE-2017-5753
+ 	* config/microblaze/microblaze.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ 	Define to speculation_save_value_not_needed
+ 
+ 2025-05-25  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_builtin_vectorization_cost):
+ 	use sse_op instead of addss to cost vinsertti128 and vinsertti64x4;
+ 	compute correct mode of vinsertti128.
+ 	(ix86_vector_costs::add_stmt_cost): For integer 256bit and 512bit
+ 	vector constructions account more integer_to_sse moves.
+ 
+ 2025-05-25  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR target/53929
+ 	PR target/80881
+ 	* config/i386/i386-protos.h (ix86_asm_output_labelref): Declare new
+ 	function for quoting user-defined symbols in Intel syntax.
+ 	* config/i386/i386.cc (ix86_asm_output_labelref): Implement it.
+ 	* config/i386/i386.h (ASM_OUTPUT_LABELREF): Use it.
+ 	* config/i386/cygming.h (ASM_OUTPUT_LABELREF): Use it.
+ 
+ 2025-05-24  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (synthesize_and): Use a srl+andi+sll
+ 	sequence when the mask fits in a simm12 after shifting by the
+ 	number of trailing zeros.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2025-05-24  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
+ 	case for IOR op.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops.
+ 
+ 2025-05-23  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	* doc/install.texi: Document bootstrap-native.
+ 
+ 2025-05-23  Andi Kleen  <ak@gcc.gnu.org>
+ 
+ 	PR middle-end/114563
+ 	PR c++/119387
+ 	* ggc-page.cc (struct free_list): New structure.
+ 	(struct page_entry): Point to free_list.
+ 	(find_free_list): New function.
+ 	(find_free_list_order): Dito.
+ 	(alloc_page): Use specific free_list.
+ 	(release_pages): Dito.
+ 	(do_release_pages): Dito.
+ 	(init_ggc): Dito.
+ 	(ggc_print_statistics): Print overflow stat.
+ 	(ggc_pch_read): Use specific free list.
+ 
+ 2025-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* doc/implement-c.texi (C Implementation): Add missing menu items.
+ 
+ 2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse_base_ext):
+ 	Adjust error message.
+ 	(riscv_handle_option): Parse as CPU string first.
+ 	(riscv_expand_arch): Ditto.
+ 	* doc/invoke.texi: Document.
+ 
+ 2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Return
+ 	user-specified mode if available.
+ 	* config/riscv/riscv.opt: New param.
+ 
+ 2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (singleton_vxrm_need): Init
+ 	saved_vxrm_mode.
+ 
+ 2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
+ 	Always use vect_vf_for_cost and TARGET_MIN_VLEN.
+ 
+ 2025-05-23  Dhruv Chawla  <dhruvc@nvidia.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* expmed.cc (expand_rotate_as_vec_perm): Avoid a no-op move if the
+ 	target already provided the result in the expected register.
+ 	* config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const):
+ 	Avoid forcing subregs into fresh registers unnecessarily.
+ 	* config/aarch64/aarch64-sve.md: Add define_split for rotate.
+ 	(*v_revvnx8hi): New pattern.
+ 
+ 2025-05-23  Dhruv Chawla  <dhruvc@nvidia.com>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_adr<mode>_shift):
+ 	Match lowered form of ashift.
+ 	(*aarch64_adr<mode>_shift): Likewise.
+ 	(*aarch64_adr_shift_sxtw): Likewise.
+ 	(*aarch64_adr_shift_uxtw): Likewise.
+ 	(<ASHIFT:optab><mode>3): Check amount instead of operands[2] in
+ 	aarch64_sve_<lr>shift_operand.
+ 	(v<optab><mode>3): Generate unpredicated shifts for constant
+ 	operands.
+ 	(@aarch64_pred_<optab><mode>): Convert to a define_expand.
+ 	(*aarch64_pred_<optab><mode>): Create define_insn_and_split pattern
+ 	from @aarch64_pred_<optab><mode>.
+ 	(*post_ra_v_ashl<mode>3): Rename to ...
+ 	(aarch64_vashl<mode>3_const): ... this and remove reload requirement.
+ 	(*post_ra_v_<optab><mode>3): Rename to ...
+ 	(aarch64_v<optab><mode>3_const): ... this and remove reload
+ 	requirement.
+ 	* config/aarch64/aarch64-sve2.md
+ 	(@aarch64_sve_add_<sve_int_op><mode>): Match lowered form of
+ 	SHIFTRT.
+ 	(*aarch64_sve2_sra<mode>): Likewise.
+ 	(*bitmask_shift_plus<mode>): Match lowered form of lshiftrt.
+ 
+ 2025-05-22  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* doc/implement-c.texi: Document C23 implementation-defined
+ 	behavior.
+ 	(Constant expressions implementation, Types implementation): New
+ 	nodes.
+ 
+ 2025-05-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Add specific
+ 	handling of bit-fields for big-endian targets.
+ 
+ 2025-05-22  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18): Define.
+ 	Update comments.
+ 	* config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
+ 	Mark x18 as fixed on VxWorks.
+ 	(aarch64_override_options_internal): Issue sorry message on
+ 	-fsanitize=shadow-call-stack if TARGET_OS_USES_R18.
+ 
+ 2025-05-22  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (synthesize_and): When profitable, use a three
+ 	shift sequence to clear bits at both upper and lower bits rather than
+ 	synthesizing the constant mask.
+ 
+ 2025-05-22  Siarhei Volkau  <lis8215@gmail.com>
+ 
+ 	PR target/70557
+ 	* config/riscv/riscv.md (movdi_32bit): Add "J" constraint to allow storing 0
+ 	directly to memory.
+ 
+ 2025-05-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/120372
+ 	* config/aarch64/aarch64.cc (aarch64_rtx_costs <case CONST_INSN>): Handle
+ 	if outer is COMPARE and the constant can be handled by the cmp instruction.
+ 
+ 2025-05-22  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* expmed.cc (canonicalize_comparison): Use rtx_cost directly
+ 	instead of gen_move_insn. Print out the choice if dump is enabled.
+ 
+ 2025-05-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (bitint_extended): New variable.
+ 	(bitint_large_huge::lower_shift_stmt): For LSHIFT_EXPR with
+ 	bitint_extended if lhs has most significant partial limb extend
+ 	it afterwards.
+ 
+ 2025-05-22  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* doc/md.texi: Document the 'q' constraint for LoongArch.
+ 
+ 2025-05-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/120360
+ 	* config/i386/predicates.md (x86_64_neg_const_int_operand): New
+ 	predicate.
+ 	* config/i386/i386.md (*cmp<mode>_plus_1): New pattern.
+ 
+ 2025-05-22  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (synthesize_and): When profitable, use two
+ 	shift combinations to clear high or low bits rather than synthsizing
+ 	the constant.
+ 
+ 2025-05-22  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_reencode): Copy zero_op0_p and
+ 	zero_op1_p from d to newd.
+ 
+ 2025-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/120090
+ 	* combine.cc (gen_lowpart_for_combine_no_emit): New function.
+ 	(RTL_HOOKS_GEN_LOWPART_NO_EMIT): Set to gen_lowpart_for_combine_no_emit.
+ 
+ 2025-05-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md ((x << C1) + C2): Tighten split condition
+ 	and generate more efficient code when splitting.
+ 
+ 2025-05-21  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120368
+ 	* config/riscv/riscv.md (shift with masked shift count): Fix
+ 	opcode when generating an SImode shift on rv64.
+ 
+ 2025-05-21  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
+ 	case for rtx code AND.
+ 	(expand_vx_binary_vec_vec_dup): Ditto.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
+ 	* config/riscv/vector-iterators.md: Add new op and to no_shift_vx_ops.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* gensupport.h (needs_barrier_p): Delete.
+ 	* gensupport.cc (needs_barrier_p): Likewise.
+ 	* rtl.h (always_void_p): Return true for PC, RETURN and SIMPLE_RETURN.
+ 	(expand_opcode): New enum class.
+ 	(expand_rtx, complete_seq): Declare.
+ 	* emit-rtl.cc (rtx_expander): New class.
+ 	(expand_rtx, complete_seq): New functions.
+ 	* gengenrtl.cc (special_rtx, excluded_rtx): Add a cross-reference
+ 	comment.
+ 	* genemit.cc (FIRST_CODE): New constant.
+ 	(print_code): Delete.
+ 	(generator::file, generator::used, generator::sequence_type): Delete.
+ 	(generator::bytes): New member variable.
+ 	(generator::generator): Update accordingly.
+ 	(generator::gen_rtx_scratch): Delete.
+ 	(generator::add_uint, generator::add_opcode, generator::add_code)
+ 	(generator::add_match_operator, generator::add_exp)
+ 	(generator::add_vec, generator::gen_table): New member functions.
+ 	(generator::gen_exp): Rewrite to use a bytecode expansion.
+ 	(generator::gen_emit_seq): Likewise.
+ 	(start_gen_insn): Return the C++ expression for the operands array.
+ 	(gen_insn, gen_expand, gen_split): Update callers accordingly.
+ 	(emit_c_code): Remove use of _val.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (clobber_pat::code): Delete.
+ 	(maybe_queue_insn): Don't set clobber_pat::code.
+ 	(output_add_clobbers): Remove info argument and output the two
+ 	REG and SCRATCH cases directly.
+ 	(main): Update call accordingly.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (generator::gen_exp): Report an error for 's' operands.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (generator::gen_exp): Raise an error if we see
+ 	an 'L' operand.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (generator::used): Update comment.
+ 	(generator::gen_exp): Remove handling of null unused arrays.
+ 	(gen_insn, gen_expand): Always pass a used array.
+ 	(output_add_clobbers): Note why the used array is null here.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (generator): New structure.
+ 	(gen_rtx_scratch, gen_exp, gen_emit_seq): Turn into member
+ 	functions of generator.
+ 	(gen_insn, gen_expand, gen_split, output_add_clobbers): Update
+ 	users accordingly.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (gen_rtx_scratch, gen_exp): Use operands[%d] rather than
+ 	operand%d.
+ 	(start_gen_insn): Mark the incoming arguments as const and store
+ 	them to an operands array.
+ 	(gen_expand, gen_split): Remove copies into and out of the operands
+ 	array.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (start_gen_insn): New function, split out from...
+ 	(gen_insn, gen_expand): ...here.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (queue): New static variable.
+ 	(maybe_queue_insn): New function, split out from...
+ 	(gen_insn): ...here.
+ 	(queue_expand): New function, split out from...
+ 	(gen_expand): ...here.
+ 	(gen_split): New function, split out from...
+ 	(queue_split): ...here.
+ 	(main): Queue definitions for later processing rather than
+ 	emitting them on the fly.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* genemit.cc (gen_exp): Make the info argument a constant reference.
+ 	(gen_emit_seq, gen_insn, gen_expand, gen_split): Likewise.
+ 	(output_add_clobbers): Likewise.
+ 	(main): Update calls accordingly.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/sparc/sparc.md (zero_extendhisi2, zero_extendhidi2)
+ 	(extendhisi2, extendqihi2, extendqisi2, extendqidi2)
+ 	(extendhidi2): Use operands[0] and operands[1] instead of
+ 	operand0 and operand1.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/stormy16/stormy16.md (negsi2): Remove unused assignment.
+ 
+ 2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/100837
+ 	* config/nds32/nds32-intrinsic.md (unspec_get_pending_int): Use
+ 	a local variable instead of operands[2].
+ 
+ 2025-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120369
+ 	* tree-complex.cc (gimple_expand_builtin_cabs): Return early
+ 	if the LHS of cabs is null.
+ 
+ 2025-05-21  Co-Authored-By: Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-protos.h (synthesize_and): Prototype.
+ 	* config/riscv/riscv.cc (synthesize_and): New function.
+ 	* config/riscv/riscv.md (and<mode>3): Use it.
+ 
+ 2025-05-21  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR middle-end/118994
+ 	* match.pd ((a >> 1) + (b >> 1) + ((a | b) & 1) to
+ 	.AVG_CEIL (a, b)): New pattern.
+ 	((a | b) - ((a ^ b) >> 1) to .AVG_CEIL (a, b)): Ditto.
+ 
+ 2025-05-20  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* Makefile.in (gimple-match-exports.o-warn): Remove.
+ 	* gimple-match-exports.cc (gimple_extract): Remove valueize_condition
+ 	argument.
+ 	(gimple_extract_op): Update call to gimple_extract.
+ 	(gimple_simplify): Likewise. Also remove valueize_condition lambda.
+ 
+ 2025-05-20  Umesh Kalappa  <ukalappa.mips@gmail.com>
+ 
+ 	* config/riscv/mips-p8700.md (mips_p8700_dummies): New
+ 	reservation.
+ 	(mips_p8700_unknown): Reservation for all the dummies.
+ 
+ 2025-05-20  Umesh Kalappa  <ukalappa.mips@gmail.com>
+ 
+ 	* config/riscv/mips-p8700.md: New scheduler model.
+ 	* config/riscv/riscv-cores.def (mips-p87000): New tuning model
+ 	and core architecture.
+ 	* config/riscv/riscv-opts.h (riscv_microarchitecture_type); Add
+ 	mips-p8700.
+ 	* config/riscv/riscv.cc (mips_p8700_tune_info): New uarch
+ 	tuning parameters.
+ 	* config/riscv/riscv.md (tune): Add mips_p8700.
+ 	Include mips-p8700.md
+ 	* doc/invoke.texi: Document tune/cpu options for the MIPS P8700.
+ 	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
+ 
+ 2025-05-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* tree-chrec.cc (convert_affine_scev): Use signed_type_for instead of
+ 	build_nonstandard_integer_type.
+ 
+ 2025-05-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimple-lower-bitint.cc (bitint_big_endian): New variable.
+ 	(bitint_precision_kind): Set it.
+ 	(struct bitint_large_huge): Add unsigned argument to
+ 	finish_arith_overflow.
+ 	(bitint_large_huge::limb_access_type): Handle bitint_big_endian.
+ 	(bitint_large_huge::handle_operand): Likewise.
+ 	(bitint_large_huge::handle_cast): Likewise.
+ 	(bitint_large_huge::handle_bit_field_ref): Likewise.
+ 	(bitint_large_huge::handle_load): Likewise.
+ 	(bitint_large_huge::lower_shift_stmt): Likewise.
+ 	(bitint_large_huge::finish_arith_overflow): Likewise.
+ 	Add nelts argument.
+ 	(bitint_large_huge::lower_addsub_overflow): Handle bitint_big_endian.
+ 	Adjust finish_arith_overflow caller.
+ 	(bitint_large_huge::lower_mul_overflow): Likewise.
+ 	(bitint_large_huge::lower_bit_query): Handle bitint_big_endian.
+ 	(bitint_large_huge::lower_stmt): Likewise.
+ 	(build_bitint_stmt_ssa_conflicts): Likewise.
+ 	(gimple_lower_bitint): Likewise.
+ 
+ 2025-05-20  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (various splits): Avoid writing the output
+ 	more than once when trivially possible.
+ 
+ 2025-05-20  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/103771
+ 	* match.pd (cond_expr_convert_p): Extend the match to handle
+ 	REAL_CST.
+ 	* tree-vect-patterns.cc
+ 	(vect_recog_cond_expr_convert_pattern): Handle REAL_CST.
+ 
+ 2025-05-20  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md: Leverage the new add func to
+ 	expand the vx insn.
+ 	* config/riscv/riscv-protos.h (expand_vx_binary_vec_dup_vec): Add
+ 	new func decl to expand format v = vop(vec_dup(x), v).
+ 	(expand_vx_binary_vec_vec_dup): Diito but for format
+ 	v = vop(v, vec_dup(x)).
+ 	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
+ 	func impl to expand vx for v = vop(vec_dup(x), v).
+ 	(expand_vx_binary_vec_vec_dup): Diito but for another format
+ 	v = vop(v, vec_dup(x)).
+ 
+ 2025-05-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120333
+ 	* config/riscv/bitmanip.md: Remove bext formed from left+right
+ 	shift patterns.
+ 
+ 2025-05-19  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa-hpux.h (TARGET_HAVE_LIBATOMIC): Define.
+ 	(HAVE_sync_compare_and_swapqi): Likewise.
+ 	(HAVE_sync_compare_and_swaphi): Likewise.
+ 	(HAVE_sync_compare_and_swapsi): Likewise.
+ 	(HAVE_sync_compare_and_swapdi): Likewise.
+ 
+ 2025-05-19  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR lto/120308
+ 	* lto-streamer-out.cc (hash_tree): Don't handle 'TYPE_EMPTY_P' for
+ 	'lto_stream_offload_p'.
+ 	* tree-streamer-in.cc (unpack_ts_type_common_value_fields):
+ 	Likewise.
+ 	* tree-streamer-out.cc (pack_ts_type_common_value_fields):
+ 	Likewise.
+ 
+ 2025-05-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (synthesize_ior_xor): Initialize OUTPUT and
+ 	verify it's non-null before emitting the final copy insn.
+ 
+ 2025-05-19  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/120351
+ 	* config/arm/predicates.md (mem_noofs_operand): Also check the op
+ 	is a valid memory_operand.
+ 
+ 2025-05-19  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (get_riscv_ext_info): Fix argument type.
+ 	(riscv_subset_list::check_implied_ext): Type conversion.
+ 
+ 2025-05-19  zhusonghe  <zhusonghe@eswincomputing.com>
+ 
+ 	* config/riscv/gen-riscv-ext-texi.cc (struct version_t):rename
+ 	major/minor to major_version/minor_version.
+ 
+ 2025-05-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Handle
+ 	load/store with odd-even reg pair.
+ 	(riscv_split_64bit_move_p): Don't split load/store if zilsd enabled.
+ 	(riscv_hard_regno_mode_ok): Only allow even reg can be used for
+ 	64 bits mode for zilsd.
+ 
+ 2025-05-19  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR middle-end/120276
+ 	* regcprop.cc (copy_value): Return in case of unordered modes.
+ 
+ 2025-05-19  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/constraints.md (cR): New constraint.
+ 	* doc/md.texi (Machine Constraints::RISC-V): Document the new cR
+ 	constraint.
+ 
+ 2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config.gcc: Remove 512 intrin file.
+ 	* config/i386/avx10_2-512bf16intrin.h:
+ 	Removed and combined to ...
+ 	* config/i386/avx10_2bf16intrin.h: ... this.
+ 	* config/i386/avx10_2-512convertintrin.h:
+ 	Removed and combined to ...
+ 	* config/i386/avx10_2convertintrin.h: ... this.
+ 	* config/i386/avx10_2-512mediaintrin.h:
+ 	Removed and combined to ...
+ 	* config/i386/avx10_2mediaintrin.h: ... this.
+ 	* config/i386/avx10_2-512minmaxintrin.h:
+ 	Removed and combined to ...
+ 	* config/i386/avx10_2minmaxintrin.h: ... this.
+ 	* config/i386/avx10_2-512satcvtintrin.h:
+ 	Removed and combined to ...
+ 	* config/i386/avx10_2satcvtintrin.h: ... this.
+ 	* config/i386/immintrin.h: Remove 512 intrin file.
+ 
+ 2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/sse.md (VF1_VF2_AVX10_2): Removed.
+ 	(VF2_AVX10_2): Ditto.
+ 	(VI1248_AVX10_2): Ditto.
+ 	(VFH_AVX10_2): Ditto.
+ 	(VF1_AVX10_2): Ditto.
+ 	(VHF_AVX10_2): Ditto.
+ 	(VBF_AVX10_2): Ditto.
+ 	(VI8_AVX10_2): Ditto.
+ 	(VI2_AVX10_2): Ditto.
+ 	(VBF): New.
+ 	(div<mode>3): Use VBF instead of AVX10.2 ones.
+ 	(vec_cmp<mode><avx512fmaskmodelower>): Ditto.
+ 	(avx10_2_cvt2ps2phx_<mode><mask_name><round_name>):
+ 	Use VHF_AVX512VL instead of AVX10.2 ones.
+ 	(vcvt<convertfp8_pack><mode><mask_name>): Ditto.
+ 	(vcvthf82ph<mode><mask_name>): Ditto.
+ 	(VHF_AVX10_2_2): Remove not needed TARGET_AVX10_2.
+ 	(usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX512F
+ 	instead of AVX10.2 ones.
+ 	(vdpphps_<mode>): Use VF1_AVX512VL instead of AVX10.2 ones.
+ 	(vdpphps_<mode>_mask): Ditto.
+ 	(vdpphps_<mode>_maskz): Ditto.
+ 	(vdpphps_<mode>_maskz_1): Ditto.
+ 	(avx10_2_scalefbf16_<mode><mask_name>): Use VBF instead of
+ 	AVX10.2 ones.
+ 	(<code><mode>3): Ditto.
+ 	(avx10_2_<code>bf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_fmaddbf16_<mode>_maskz); Ditto.
+ 	(avx10_2_fmaddbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fmaddbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fmaddbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmaddbf16_<mode>_maskz): Ditto.
+ 	(avx10_2_fnmaddbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fnmaddbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fnmaddbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fmsubbf16_<mode>_maskz); Ditto.
+ 	(avx10_2_fmsubbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fmsubbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fmsubbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_fnmsubbf16_<mode>_maskz): Ditto.
+ 	(avx10_2_fnmsubbf16_<mode><sd_maskz_name>): Ditto.
+ 	(avx10_2_fnmsubbf16_<mode>_mask): Ditto.
+ 	(avx10_2_fnmsubbf16_<mode>_mask3): Ditto.
+ 	(avx10_2_rsqrtbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_sqrtbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_rcpbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_getexpbf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_<bf16immop>bf16_<mode><mask_name>): Ditto.
+ 	(avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): Ditto.
+ 	(avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): Ditto.
+ 	(avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
+ 	Ditto.
+ 	(avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
+ 	Use VHF_AVX512VL instead of AVX10.2 ones.
+ 	(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>):
+ 	Use VF1_AVX512VL instead of AVX10.2 ones.
+ 	(avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
+ 	Ditto.
+ 	(avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>):
+ 	Use VF instead of AVX10.2 ones.
+ 	(avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Use VF2 instead of AVX10.2 ones.
+ 	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Use VI8 instead of AVX10.2 ones.
+ 	(avx10_2_minmaxbf16_<mode><mask_name>): Use VBF instead of
+ 	AVX10.2 ones.
+ 	(avx10_2_minmaxp<mode><mask_name><round_saeonly_name>):
+ 	Use VFH_AVX512VL instead of AVX10.2 ones.
+ 	(avx10_2_vmovrs<ssemodesuffix><mode><mask_name>):
+ 	Use VI1248_AVX512VLBW instead of AVX10.2 ones.
+ 
+ 2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* common/config/i386/cpuinfo.h
+ 	(get_available_features): Remove feature set for AVX10_1_256.
+ 	* common/config/i386/i386-common.cc
+ 	(OPTION_MASK_ISA2_EVEX512_SET): Removed.
+ 	(OPTION_MASK_ISA2_AVX10_1_256_SET): Removed.
+ 	(OPTION_MASK_ISA_AVX10_1_SET): Imply all AVX512 features.
+ 	(OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
+ 	(OPTION_MASK_ISA2_AVX2_UNSET): Remove AVX10_1_UNSET.
+ 	(OPTION_MASK_ISA2_EVEX512_UNSET): Removed.
+ 	(OPTION_MASK_ISA2_AVX10_1_UNSET): Remove AVX10_1_256.
+ 	(OPTION_MASK_ISA2_AVX512F_UNSET): Unset AVX10_1.
+ 	(ix86_handle_option): Remove special handling for AVX512/AVX10.1
+ 	options, evex512 and avx10_1_256. Modify ISA set for AVX10 options.
+ 	* common/config/i386/i386-cpuinfo.h
+ 	(enum feature_priority): Remove P_AVX10_1_256.
+ 	(enum processor_features): Remove FEATURE_AVX10_1_256.
+ 	* common/config/i386/i386-isas.h: Remove avx10.1-256/512.
+ 	* config/i386/avx512bf16intrin.h: Rollback target push before
+ 	evex512 is introduced.
+ 	* config/i386/avx512bf16vlintrin.h: Ditto.
+ 	* config/i386/avx512bitalgintrin.h: Ditto.
+ 	* config/i386/avx512bitalgvlintrin.h: Ditto.
+ 	* config/i386/avx512bwintrin.h: Ditto.
+ 	* config/i386/avx512cdintrin.h: Ditto.
+ 	* config/i386/avx512dqintrin.h: Ditto.
+ 	* config/i386/avx512fintrin.h: Ditto.
+ 	* config/i386/avx512fp16intrin.h: Ditto.
+ 	* config/i386/avx512fp16vlintrin.h: Ditto.
+ 	* config/i386/avx512ifmaintrin.h: Ditto.
+ 	* config/i386/avx512ifmavlintrin.h: Ditto.
+ 	* config/i386/avx512vbmi2intrin.h: Ditto.
+ 	* config/i386/avx512vbmi2vlintrin.h: Ditto.
+ 	* config/i386/avx512vbmiintrin.h: Ditto.
+ 	* config/i386/avx512vbmivlintrin.h: Ditto.
+ 	* config/i386/avx512vlbwintrin.h: Ditto.
+ 	* config/i386/avx512vldqintrin.h: Ditto.
+ 	* config/i386/avx512vlintrin.h: Ditto.
+ 	* config/i386/avx512vnniintrin.h: Ditto.
+ 	* config/i386/avx512vnnivlintrin.h: Ditto.
+ 	* config/i386/avx512vp2intersectintrin.h: Ditto.
+ 	* config/i386/avx512vp2intersectvlintrin.h: Ditto.
+ 	* config/i386/avx512vpopcntdqintrin.h: Ditto.
+ 	* config/i386/avx512vpopcntdqvlintrin.h: Ditto.
+ 	* config/i386/gfniintrin.h: Ditto.
+ 	* config/i386/vaesintrin.h: Ditto.
+ 	* config/i386/vpclmulqdqintrin.h: Ditto.
+ 	* config/i386/driver-i386.cc (check_avx512_features): Removed.
+ 	(host_detect_local_cpu): Remove -march=native special handling.
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_vectorize_builtin_gather): Remove TARGET_EVEX512.
+ 	* config/i386/i386-c.cc
+ 	(ix86_target_macros_internal): Remove EVEX512 and AVX10_1_256.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_valid_mask_cmp_mode): Remove TARGET_EVEX512.
+ 	(ix86_expand_int_sse_cmp): Ditto.
+ 	(ix86_vector_duplicate_simode_const): Ditto.
+ 	(ix86_expand_vector_init_duplicate): Ditto.
+ 	(ix86_expand_vector_init_one_nonzero): Ditto.
+ 	(ix86_emit_swsqrtsf): Ditto.
+ 	(ix86_vectorize_vec_perm_const): Ditto.
+ 	(ix86_expand_vecop_qihi2): Ditto.
+ 	(ix86_expand_sse2_mulvxdi3): Ditto.
+ 	(ix86_gen_bcst_mem): Ditto.
+ 	* config/i386/i386-isa.def (EVEX512): Removed.
+ 	(AVX10_1_256): Ditto.
+ 	* config/i386/i386-options.cc
+ 	(isa2_opts): Remove evex512 and avx10.1-256.
+ 	(ix86_function_specific_save): Remove no_avx512_explicit and
+ 	no_avx10_1_explicit.
+ 	(ix86_function_specific_restore): Ditto.
+ 	(ix86_valid_target_attribute_inner_p): Remove evex512 and
+ 	avx10.1-256/512.
+ 	(ix86_valid_target_attribute_tree): Remove special handling
+ 	to rerun ix86_option_override_internal for AVX10.1-256.
+ 	(ix86_option_override_internal): Remove warning handling.
+ 	(ix86_simd_clone_adjust): Remove evex512.
+ 	* config/i386/i386.cc
+ 	(type_natural_mode): Remove TARGET_EVEX512.
+ 	(ix86_return_in_memory): Ditto.
+ 	(standard_sse_constant_p): Ditto.
+ 	(standard_sse_constant_opcode): Ditto.
+ 	(ix86_get_ssemov): Ditto.
+ 	(ix86_legitimate_constant_p): Ditto.
+ 	(ix86_vectorize_builtin_scatter): Ditto.
+ 	(ix86_hard_regno_mode_ok): Ditto.
+ 	(ix86_set_reg_reg_cost): Ditto.
+ 	(ix86_rtx_costs): Ditto.
+ 	(ix86_vector_mode_supported_p): Ditto.
+ 	(ix86_preferred_simd_mode): Ditto.
+ 	(ix86_autovectorize_vector_modes): Ditto.
+ 	(ix86_get_mask_mode): Ditto.
+ 	(ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
+ 	(ix86_simd_clone_usable): Ditto.
+ 	* config/i386/i386.h (BIGGEST_ALIGNMENT): Ditto.
+ 	(MOVE_MAX): Ditto.
+ 	(STORE_MAX_PIECES): Ditto.
+ 	(PTA_SKYLAKE_AVX512): Remove PTA_EVEX512.
+ 	(PTA_CANNONLAKE): Ditto.
+ 	(PTA_ZNVER4): Ditto.
+ 	(PTA_GRANITERAPIDS): Use PTA_AVX10_1.
+ 	(PTA_DIAMONDRAPIDS): Use PTA_GRANITERAPIDS.
+ 	* config/i386/i386.md: Remove TARGET_EVEX512, avx512f_512
+ 	and avx512bw_512.
+ 	* config/i386/i386.opt: Remove ix86_no_avx512_explicit,
+ 	ix86_no_avx10_1_explicit, mevex512, mavx10.1-256/512 and
+ 	warning for mavx10.1. Modify option comment.
+ 	* config/i386/i386.opt.urls: Remove evex512 and avx10.1-256/512.
+ 	* config/i386/predicates.md: Remove TARGET_EVEX512.
+ 	* config/i386/sse.md: Ditto.
+ 	* doc/extend.texi: Remove avx10.1-256/512. Modify avx10.1 doc.
+ 	* doc/invoke.texi: Remove avx10.1-256/512 and evex512.
+ 	* doc/sourcebuild.texi: Remove avx10.1-256/512.
+ 
+ 2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386-builtin.def
+ 	(BDESC): Remove OPTION_MASK_ISA2_EVEX512.
+ 	* config/i386/i386-builtins.cc
+ 	(ix86_init_mmx_sse_builtins): Ditto.
+ 
+ 2025-05-18  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 	    Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/119966
+ 	* emit-rtl.cc (validate_subreg): Do not exit immediately for
+ 	paradoxical subregs.  Filter subsequent tests which are
+ 	not valid for paradoxical subregs.
+ 
+ 2025-05-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Do not bail
+ 	out when the size is not a multiple of a byte.
+ 	Deal with bit-fields whose size is not a multiple of a byte when
+ 	dereferencing an address.
+ 
+ 2025-05-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-fold.cc (mark_lhs_in_seq_for_dce): Make
+ 	non-static.
+ 	* gimple-fold.h (mark_lhs_in_seq_for_dce): Declare.
+ 	* tree-ssa-phiopt.cc (match_simplify_replacement): Use
+ 	mark_lhs_in_seq_for_dce instead of manually looping.
+ 
+ 2025-05-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv-vect-permconst.cc (vector_permconst:process_bb):
+ 	Use rtvec_alloc, not gen_rtvec since we don't want/need to initialize
+ 	the vector.
+ 
+ 2025-05-17  Yuao Ma  <c8ef@outlook.com>
+ 
+ 	* doc/extend.texi: Mention new builtins.
+ 
+ 2025-05-17  Yuao Ma  <c8ef@outlook.com>
+ 
+ 	* builtins.def (TRIG_TYPE): New.
+ 	(BUILT_IN_ACOSPI): New.
+ 	(BUILT_IN_ACOSPIF): New.
+ 	(BUILT_IN_ACOSPIL): New.
+ 	(BUILT_IN_ASINPI): New.
+ 	(BUILT_IN_ASINPIF): New.
+ 	(BUILT_IN_ASINPIL): New.
+ 	(BUILT_IN_ATANPI): New.
+ 	(BUILT_IN_ATANPIF): New.
+ 	(BUILT_IN_ATANPIL): New.
+ 	(BUILT_IN_COSPI): New.
+ 	(BUILT_IN_COSPIF): New.
+ 	(BUILT_IN_COSPIL): New.
+ 	(BUILT_IN_SINPI): New.
+ 	(BUILT_IN_SINPIF): New.
+ 	(BUILT_IN_SINPIL): New.
+ 	(BUILT_IN_TANPI): New.
+ 	(BUILT_IN_TANPIF): New.
+ 	(BUILT_IN_TANPIL): New.
+ 	(TRIG2_TYPE): New.
+ 	(BUILT_IN_ATAN2PI): New.
+ 	(BUILT_IN_ATAN2PIF): New.
+ 	(BUILT_IN_ATAN2PIL): New.
+ 
+ 2025-05-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (synthesize_ior_xor): Avoid writing
+ 	operands[0] more than once, use new pseudos instead.
+ 
+ 2025-05-17  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_gpr_save_operation_p): Remove
+ 	break and fixbug for elt index.
+ 
+ 2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/100165
+ 	* config/aarch64/aarch64-protos.h (aarch64_output_fmov): New prototype.
+ 	(aarch64_simd_valid_and_imm_fmov): Likewise.
+ 	* config/aarch64/aarch64-simd.md (and<mode>3<vczle><vczbe>): Allow FMOV
+ 	codegen.
+ 	* config/aarch64/aarch64.cc (aarch64_simd_valid_and_imm_fmov): New.
+ 	(aarch64_output_fmov): Likewise.
+ 	* config/aarch64/constraints.md (Df): New constraint.
+ 	* config/aarch64/predicates.md (aarch64_reg_or_and_imm): Update
+ 	predicate to support FMOV codegen.
+ 
+ 2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	PR target/100165
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_and): New.
+ 	(aarch64_expand_vec_perm_const_1): Call aarch64_evpc_and.
+ 	* optabs.cc (vec_perm_and_mask): New.
+ 	* optabs.h (vec_perm_and_mask): New prototype.
+ 
+ 2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_evpc_reencode): Zero initialize
+ 	newd.
+ 
+ 2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (forward_propagate_into_comparison): Dump
+ 	when replacing statement.
+ 
+ 2025-05-16  Martin Jambor  <mjambor@suse.cz>
+ 	    Michal Jires  <mjires@suse.cz>
+ 
+ 	* cgraph.h (symtab_node): Make member function get_uid const.
+ 	* cgraphclones.cc (dump_callgraph_transformation): Dump m_uid of the
+ 	call graph nodes instead of order.
+ 	* cgraph.cc (cgraph_node::remove): Likewise.
+ 	* ipa-cp.cc (ipcp_lattice<valtype>::print): Likewise.
+ 	* ipa-sra.cc (ipa_sra_summarize_function): Likewise.
+ 	* symtab.cc (symtab_node::dump_base): Likewise.
+ 
+ 2025-05-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
+ 
+ 	* doc/invoke.texi: Add to_underlying to -ffold-simple-inlines.
+ 
+ 2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/118603
+ 	* config/aarch64/driver-aarch64.cc (aarch64_cpu_data): Add cast to unsigned
+ 	to VARIANT of the define AARCH64_CORE.
+ 
+ 2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (struct sve_vec_cost): Change gather_load_x32_cost
+ 	and gather_load_x64_cost fields to unsigned.
+ 
+ 2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Add a limit on the alias walk.
+ 
+ 2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-fold.cc (optimize_memcpy_to_memset): Move to
+ 	tree-ssa-forwprop.cc.
+ 	(gimple_fold_builtin_memory_op): Remove call to
+ 	optimize_memcpy_to_memset.
+ 	(fold_stmt_1): Likewise.
+ 	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Move from
+ 	gimple-fold.cc.
+ 	(simplify_builtin_call): Try to optimize memcpy/memset.
+ 	(pass_forwprop::execute): Try to optimize memcpy like assignment
+ 	from a previous memset.
+ 
+ 2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_gen_load_multiple_1): Simplify use of
+ 	end_sequence.
+ 	(arm_gen_store_multiple_1): Likewise.
+ 	* expr.cc (gen_move_insn): Likewise.
+ 	* gentarget-def.cc (main): Likewise.
+ 
+ 2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* asan.cc (asan_emit_allocas_unpoison): Directly return the
+ 	result of end_sequence.
+ 	(hwasan_emit_untag_frame): Likewise.
+ 	* config/aarch64/aarch64-speculation.cc
+ 	(aarch64_speculation_clobber_sp): Likewise.
+ 	(aarch64_speculation_establish_tracker): Likewise.
+ 	* config/arm/arm.cc (arm_call_tls_get_addr): Likewise.
+ 	* config/avr/avr-passes.cc (avr_parallel_insn_from_insns): Likewise.
+ 	* config/sh/sh_treg_combine.cc
+ 	(sh_treg_combine::make_not_reg_insn): Likewise.
+ 	* tree-outof-ssa.cc (emit_partition_copy): Likewise.
+ 
+ 2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* asan.cc (asan_clear_shadow): Use the return value of end_sequence,
+ 	rather than calling get_insns separately.
+ 	(asan_emit_stack_protection, asan_emit_allocas_unpoison): Likewise.
+ 	(hwasan_frame_base, hwasan_emit_untag_frame): Likewise.
+ 	* auto-inc-dec.cc (attempt_change): Likewise.
+ 	* avoid-store-forwarding.cc (process_store_forwarding): Likewise.
+ 	* bb-reorder.cc (fix_crossing_unconditional_branches): Likewise.
+ 	* builtins.cc (expand_builtin_apply_args): Likewise.
+ 	(expand_builtin_return, expand_builtin_mathfn_ternary): Likewise.
+ 	(expand_builtin_mathfn_3, expand_builtin_int_roundingfn): Likewise.
+ 	(expand_builtin_int_roundingfn_2, expand_builtin_saveregs): Likewise.
+ 	(inline_string_cmp): Likewise.
+ 	* calls.cc (expand_call): Likewise.
+ 	* cfgexpand.cc (expand_asm_stmt, pass_expand::execute): Likewise.
+ 	* cfgloopanal.cc (init_set_costs): Likewise.
+ 	* cfgrtl.cc (insert_insn_on_edge, prepend_insn_to_edge): Likewise.
+ 	(rtl_lv_add_condition_to_bb): Likewise.
+ 	* config/aarch64/aarch64-speculation.cc
+ 	(aarch64_speculation_clobber_sp): Likewise.
+ 	(aarch64_speculation_establish_tracker): Likewise.
+ 	(aarch64_do_track_speculation): Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_load_symref_appropriately)
+ 	(aarch64_expand_vector_init, aarch64_gen_ccmp_first): Likewise.
+ 	(aarch64_gen_ccmp_next, aarch64_mode_emit): Likewise.
+ 	(aarch64_md_asm_adjust): Likewise.
+ 	(aarch64_switch_pstate_sm_for_landing_pad): Likewise.
+ 	(aarch64_switch_pstate_sm_for_jump): Likewise.
+ 	(aarch64_switch_pstate_sm_for_call): Likewise.
+ 	* config/alpha/alpha.cc (alpha_legitimize_address_1): Likewise.
+ 	(alpha_emit_xfloating_libcall, alpha_gp_save_rtx): Likewise.
+ 	* config/arc/arc.cc (hwloop_optimize): Likewise.
+ 	* config/arm/aarch-common.cc (arm_md_asm_adjust): Likewise.
+ 	* config/arm/arm-builtins.cc: Likewise.
+ 	* config/arm/arm.cc (require_pic_register): Likewise.
+ 	(arm_call_tls_get_addr, arm_gen_load_multiple_1): Likewise.
+ 	(arm_gen_store_multiple_1, cmse_clear_registers): Likewise.
+ 	(cmse_nonsecure_call_inline_register_clear): Likewise.
+ 	(arm_attempt_dlstp_transform): Likewise.
+ 	* config/avr/avr-passes.cc (bbinfo_t::optimize_one_block): Likewise.
+ 	(avr_parallel_insn_from_insns): Likewise.
+ 	* config/avr/avr.cc (avr_prologue_setup_frame): Likewise.
+ 	(avr_expand_epilogue): Likewise.
+ 	* config/bfin/bfin.cc (hwloop_optimize): Likewise.
+ 	* config/c6x/c6x.cc (c6x_expand_compare): Likewise.
+ 	* config/cris/cris.cc (cris_split_movdx): Likewise.
+ 	* config/cris/cris.md: Likewise.
+ 	* config/csky/csky.cc (csky_call_tls_get_addr): Likewise.
+ 	* config/epiphany/resolve-sw-modes.cc
+ 	(pass_resolve_sw_modes::execute): Likewise.
+ 	* config/fr30/fr30.cc (fr30_move_double): Likewise.
+ 	* config/frv/frv.cc (frv_split_scc, frv_split_cond_move): Likewise.
+ 	(frv_split_minmax, frv_split_abs): Likewise.
+ 	* config/frv/frv.md: Likewise.
+ 	* config/gcn/gcn.cc (move_callee_saved_registers): Likewise.
+ 	(gcn_expand_prologue, gcn_restore_exec, gcn_md_reorg): Likewise.
+ 	* config/i386/i386-expand.cc
+ 	(ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Likewise.
+ 	(ix86_vector_duplicate_value, expand_vec_perm_interleave2): Likewise.
+ 	(expand_vec_perm_vperm2f128_vblend): Likewise.
+ 	(expand_vec_perm_2perm_interleave): Likewise.
+ 	(expand_vec_perm_2perm_pblendv): Likewise.
+ 	(expand_vec_perm2_vperm2f128_vblend, ix86_gen_ccmp_first): Likewise.
+ 	(ix86_gen_ccmp_next): Likewise.
+ 	* config/i386/i386-features.cc
+ 	(scalar_chain::make_vector_copies): Likewise.
+ 	(scalar_chain::convert_reg, scalar_chain::convert_op): Likewise.
+ 	(timode_scalar_chain::convert_insn): Likewise.
+ 	* config/i386/i386.cc (ix86_init_pic_reg, ix86_va_start): Likewise.
+ 	(ix86_get_drap_rtx, legitimize_tls_address): Likewise.
+ 	(ix86_md_asm_adjust): Likewise.
+ 	* config/ia64/ia64.cc (ia64_expand_tls_address): Likewise.
+ 	(ia64_expand_compare, spill_restore_mem): Likewise.
+ 	(expand_vec_perm_interleave_2): Likewise.
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_call_tls_get_addr): Likewise.
+ 	* config/m32r/m32r.cc (gen_split_move_double): Likewise.
+ 	* config/m32r/m32r.md: Likewise.
+ 	* config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
+ 	(m68k_call_m68k_read_tp, m68k_sched_md_init_global): Likewise.
+ 	* config/m68k/m68k.md: Likewise.
+ 	* config/microblaze/microblaze.cc
+ 	(microblaze_call_tls_get_addr): Likewise.
+ 	* config/mips/mips.cc (mips_call_tls_get_addr): Likewise.
+ 	(mips_ls2_init_dfa_post_cycle_insn): Likewise.
+ 	(mips16_split_long_branches): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_gen_shuffle): Likewise.
+ 	(nvptx_gen_shared_bcast, nvptx_propagate): Likewise.
+ 	(workaround_uninit_method_1, workaround_uninit_method_2): Likewise.
+ 	(workaround_uninit_method_3): Likewise.
+ 	* config/or1k/or1k.cc (or1k_init_pic_reg): Likewise.
+ 	* config/pa/pa.cc (legitimize_tls_address): Likewise.
+ 	* config/pru/pru.cc (pru_expand_fp_compare, pru_reorg_loop): Likewise.
+ 	* config/riscv/riscv-shorten-memrefs.cc
+ 	(pass_shorten_memrefs::transform): Likewise.
+ 	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Likewise.
+ 	* config/riscv/riscv.cc (riscv_call_tls_get_addr): Likewise.
+ 	(riscv_frm_emit_after_bb_end): Likewise.
+ 	* config/rl78/rl78.cc (rl78_emit_libcall): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_debug_legitimize_address): Likewise.
+ 	* config/s390/s390.cc (legitimize_tls_address): Likewise.
+ 	(s390_two_part_insv, s390_load_got, s390_va_start): Likewise.
+ 	* config/sh/sh_treg_combine.cc
+ 	(sh_treg_combine::make_not_reg_insn): Likewise.
+ 	* config/sparc/sparc.cc (sparc_legitimize_tls_address): Likewise.
+ 	(sparc_output_mi_thunk, sparc_init_pic_reg): Likewise.
+ 	* config/stormy16/stormy16.cc (xstormy16_split_cbranch): Likewise.
+ 	* config/xtensa/xtensa.cc (xtensa_copy_incoming_a7): Likewise.
+ 	(xtensa_expand_block_set_libcall): Likewise.
+ 	(xtensa_expand_block_set_unrolled_loop): Likewise.
+ 	(xtensa_expand_block_set_small_loop, xtensa_call_tls_desc): Likewise.
+ 	* dse.cc (emit_inc_dec_insn_before, find_shift_sequence): Likewise.
+ 	(replace_read): Likewise.
+ 	* emit-rtl.cc (reorder_insns, gen_clobber, gen_use): Likewise.
+ 	* except.cc (dw2_build_landing_pads, sjlj_mark_call_sites): Likewise.
+ 	(sjlj_emit_function_enter, sjlj_emit_function_exit): Likewise.
+ 	(sjlj_emit_dispatch_table): Likewise.
+ 	* expmed.cc (expmed_mult_highpart_optab, expand_sdiv_pow2): Likewise.
+ 	* expr.cc (convert_mode_scalar, emit_move_multi_word): Likewise.
+ 	(gen_move_insn, expand_cond_expr_using_cmove): Likewise.
+ 	(expand_expr_divmod, expand_expr_real_2): Likewise.
+ 	(maybe_optimize_pow2p_mod_cmp, maybe_optimize_mod_cmp): Likewise.
+ 	* function.cc (emit_initial_value_sets): Likewise.
+ 	(instantiate_virtual_regs_in_insn, expand_function_end): Likewise.
+ 	(get_arg_pointer_save_area, make_split_prologue_seq): Likewise.
+ 	(make_prologue_seq, gen_call_used_regs_seq): Likewise.
+ 	(thread_prologue_and_epilogue_insns): Likewise.
+ 	(match_asm_constraints_1): Likewise.
+ 	* gcse.cc (prepare_copy_insn): Likewise.
+ 	* ifcvt.cc (noce_emit_store_flag, noce_emit_move_insn): Likewise.
+ 	(noce_emit_cmove): Likewise.
+ 	* init-regs.cc (initialize_uninitialized_regs): Likewise.
+ 	* internal-fn.cc (expand_POPCOUNT): Likewise.
+ 	* ira-emit.cc (emit_move_list): Likewise.
+ 	* ira.cc (ira): Likewise.
+ 	* loop-doloop.cc (doloop_modify): Likewise.
+ 	* loop-unroll.cc (compare_and_jump_seq): Likewise.
+ 	(unroll_loop_runtime_iterations, insert_base_initialization): Likewise.
+ 	(split_iv, insert_var_expansion_initialization): Likewise.
+ 	(combine_var_copies_in_loop_exit): Likewise.
+ 	* lower-subreg.cc (resolve_simple_move,resolve_shift_zext): Likewise.
+ 	* lra-constraints.cc (match_reload, check_and_process_move): Likewise.
+ 	(process_addr_reg, insert_move_for_subreg): Likewise.
+ 	(process_address_1, curr_insn_transform): Likewise.
+ 	(inherit_reload_reg, process_invariant_for_inheritance): Likewise.
+ 	(inherit_in_ebb, remove_inheritance_pseudos): Likewise.
+ 	* lra-remat.cc (do_remat): Likewise.
+ 	* mode-switching.cc (commit_mode_sets): Likewise.
+ 	(optimize_mode_switching): Likewise.
+ 	* optabs.cc (expand_binop, expand_twoval_binop_libfunc): Likewise.
+ 	(expand_clrsb_using_clz, expand_doubleword_clz_ctz_ffs): Likewise.
+ 	(expand_doubleword_popcount, expand_ctz, expand_ffs): Likewise.
+ 	(expand_absneg_bit, expand_unop, expand_copysign_bit): Likewise.
+ 	(prepare_float_lib_cmp, expand_float, expand_fix): Likewise.
+ 	(expand_fixed_convert, gen_cond_trap): Likewise.
+ 	(expand_atomic_fetch_op): Likewise.
+ 	* ree.cc (combine_reaching_defs): Likewise.
+ 	* reg-stack.cc (compensate_edge): Likewise.
+ 	* reload1.cc (emit_input_reload_insns): Likewise.
+ 	* sel-sched-ir.cc (setup_nop_and_exit_insns): Likewise.
+ 	* shrink-wrap.cc (emit_common_heads_for_components): Likewise.
+ 	(emit_common_tails_for_components): Likewise.
+ 	(insert_prologue_epilogue_for_components): Likewise.
+ 	* tree-outof-ssa.cc (emit_partition_copy): Likewise.
+ 	(insert_value_copy_on_edge): Likewise.
+ 	* tree-ssa-loop-ivopts.cc (computation_cost): Likewise.
+ 
+ 2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl.h (end_sequence): Return the sequence.
+ 	* emit-rtl.cc (end_sequence): Likewise.
+ 
+ 2025-05-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new
+ 	pattern to convert vec_duplicate + vsub.vv to vsub.vx.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Add minus as plus op.
+ 	* config/riscv/vector-iterators.md: Add minus to iterator
+ 	any_int_binop_no_shift_vx.
+ 
+ 2025-05-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/116546
+ 	* range-op.cc (operator_bitwise_and::op1_range): Utilize bitmask
+ 	from the LHS to improve op1's bitmask.
+ 
+ 2025-05-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/116546
+ 	* value-range.cc (irange::intersect_bitmask): Allow unknown
+ 	bitmasks to be processed.
+ 
+ 2025-05-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/116546
+ 	* value-range.cc (irange_bitmask::irange_bitmask): Include
+ 	leading ones in the bitmask.
+ 
+ 2025-05-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-range.cc (irange_bitmask::irange_bitmask): Rename from
+ 	get_bitmask_from_range and tweak.
+ 	(prange::set): Use new constructor.
+ 	(prange::intersect): Use new constructor.
+ 	(irange::get_bitmask): Likewise.
+ 	* value-range.h (irange_bitmask): New constructor prototype.
+ 
+ 2025-05-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120277
+ 	* range-op-ptr.cc (operator_cast::fold_range): Check if the cast
+ 	if UNDEFINED before setting bounds.
+ 
+ 2025-05-15  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120223
+ 	* config/riscv/riscv.cc (synthesize_ior_xor): XTHEADBS does not have
+ 	single bit manipulations.
+ 
+ 2025-05-15  Alexander Monakov  <amonakov@ispras.ru>
+ 
+ 	* tree-cfg.cc (verify_gimple_assign_unary): Accept only
+ 	COMPLEX_TYPE for CONJ_EXPR.
+ 
+ 2025-05-15  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* fold-const.cc (tree_swap_operands_p): Put ADDR_EXPR last
+ 	instead of just is_gimple_invariant_address ones.
+ 	* match.pd (`a ptr+ b !=\== ADDR`, `ADDR !=/== ssa_name`):
+ 	Move the ADDR to the last operand. Update comment.
+ 
+ 2025-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.cc (vect_transform_loops): When diagnosing
+ 	a vectorized loop indicate whether we vectorized an epilogue,
+ 	whether we used masked vectors and what unroll factor was
+ 	used.
+ 
+ 2025-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::finish_cost):
+ 	Do not suggest a first epilogue mode for AVX512 sized
+ 	main loops with X86_TUNE_AVX512_TWO_EPILOGUES as that
+ 	interferes with using a masked epilogue.
+ 
+ 2025-05-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (record_stmt_cost): Remove mixed
+ 	stmt_vec_info/SLP node inline overload.
+ 	* tree-vect-stmts.cc (vectorizable_store): For costing
+ 	vector stmts only pass SLP node to record_stmt_cost.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-05-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vect_get_store_cost): Compute vectype based
+ 	on whether we got SLP node or stmt_vec_info and use the full
+ 	record_stmt_cost API.
+ 	(vect_get_load_cost): Likewise.
+ 
+ 2025-05-14  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::riscv_subset_list): Init m_allow_adding_dup.
+ 
+ 2025-05-14  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-ext.def: New extension defs.
+ 	* config/riscv/riscv-ext.opt: Ditto.
+ 	* doc/riscv-ext.texi: Ditto.
+ 
+ 2025-05-14  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/t-riscv: Drop duplicate build rule for
+ 	riscv-ext.opt.
+ 
+ 2025-05-14  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-ext.opt.urls: Regenerate.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-cfgcleanup.cc (canonicalize_bool_cond): New function.
+ 	(cleanup_control_expr_graph): Call canonicalize_bool_cond for GIMPLE_COND.
+ 	* tree-cfgcleanup.h (canonicalize_bool_cond): New declaration.
+ 	* tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond):
+ 	Call canonicalize_bool_cond.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple.h (gimple_cond_set_code): Add assert of the code
+ 	being a comparison.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond): Assert
+ 	that gimple_cond_code is always a comparison.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-fold.cc (replace_stmt_with_simplification): Check cfun before
+ 	accessing cfun.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Move marking of to_purge bb
+ 	and marking of fixup statements to after the local optimizations.
+ 
+ 2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-forwprop.cc (pass_forwprop::execute): Use `|=` for
+ 	changed on the local folding.
+ 
+ 2025-05-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (record_stmt_cost): Add overload with
+ 	only SLP node and no vector type.
+ 	* tree-vect-stmts.cc (record_stmt_cost): Use
+ 	SLP_TREE_REPRESENTATIVE for stmt_vec_info.
+ 	(vect_model_simple_cost): Do not get stmt_vec_info argument
+ 	and adjust.
+ 	(vectorizable_call): Adjust.
+ 	(vectorizable_simd_clone_call): Likewise.
+ 	(vectorizable_conversion): Likewise.
+ 	(vectorizable_assignment): Likewise.
+ 	(vectorizable_shift): Likewise.
+ 	(vectorizable_operation): Likewise.
+ 	(vectorizable_condition): Likewise.
+ 	(vectorizable_comparison_1): Likewise.
+ 	* tree-vect-slp.cc (vect_prologue_cost_for_slp): Use
+ 	full-blown record_stmt_cost.
+ 
+ 2025-05-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/120215
+ 	* config/i386/i386-features.cc
+ 	(scalar_chain::mark_dual_mode_def): Weight
+ 	cost of integer<->sse move with bb frequency when it's
+ 	optimized_for_speed_p.
+ 	(general_scalar_chain::compute_convert_gain): Ditto, and
+ 	adjust function prototype to return true/false when cost model
+ 	is profitable or not.
+ 	(timode_scalar_chain::compute_convert_gain): Ditto.
+ 	(convert_scalars_to_vector): Adjust after the upper two
+ 	function prototype are changed.
+ 	* config/i386/i386-features.h (class scalar_chain): Change
+ 	n_integer_to_sse/n_sse_to_integer to cost_sse_integer, and add
+ 	weighted_cost_sse_integer.
+ 	(class general_scalar_chain): Adjust prototype to return bool
+ 	intead of int.
+ 	(class timode_scalar_chain): Ditto.
+ 
+ 2025-05-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/111873
+ 	* tree-sra.cc (sra_modify_expr): When processing a load which has
+ 	a type-incompatible replacement, do not store the contents of the
+ 	replacement into the original aggregate when that aggregate is
+ 	const.
+ 
+ 2025-05-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md: Fix tf_to_fprx2 by using vlr instead of
+ 	ldr.
+ 
+ 2025-05-14  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR tree-optimization/103771
+ 	* match.pd (cond_expr_convert_p): Extend the match to handle
+ 	scalar floating point type.
+ 	* tree-vect-patterns.cc
+ 	(vect_recog_cond_expr_convert_pattern): Handle floating point
+ 	type.
+ 
+ 2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/119903
+ 	* gimple-fold.cc (replace_stmt_with_simplification): Reject for
+ 	noncall exceptions replacing comparison with itself.
+ 
+ 2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/118868
+ 	* tree-cfg.cc (verify_gimple_assign_unary): Allow pointers
+ 	but disallow aggregate types for PAREN_EXPR.
+ 
+ 2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* cfgexpand.cc (vars_ssa_cache::operator()): Update the cache if the use is already
+ 	has a cache.
+ 
+ 2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* cfgexpand.cc (vars_ssa_cache::operator()): Reverse the order of the going
+ 	through the update list.
+ 
+ 2025-05-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vectorizable_nonlinear_induction):
+ 	Remove non-SLP path, use SLP_TREE_VECTYPE.
+ 	(vectorizable_induction): Likewise.  Drop ncopies variable
+ 	which is always 1.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_extra_ext_flag_table_t):
+ 	New.
+ 	(riscv_ext_flag_table): Rename to ...
+ 	(riscv_extra_ext_flag_table): this, and drop most of definitions
+ 	that can obtained from the flags field of the riscv_ext_info_t
+ 	structures.
+ 	(apply_extra_extension_flags): Use riscv_ext_info_t.
+ 	(riscv_ext_is_subset): Ditto.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
+ 	Remove.
+ 	(standard_extensions_p): Use riscv_ext_info_t.
+ 	(get_default_version): Use riscv_ext_info_t.
+ 	(riscv_arch_help): Ditto.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_implied_info::riscv_implied_info_t): Remove unused
+ 	variant.
+ 	(struct riscv_implied_info_t): Remove unsued field.
+ 	(riscv_implied_info::match): Remove unused variant, and adjust
+ 	the logic.
+ 	(get_riscv_ext_info): New.
+ 	(riscv_implied_info): Remove.
+ 	(riscv_ext_info_t::apply_implied_ext): New.
+ 	(riscv_combine_info). Remove.
+ 	(riscv_subset_list::handle_implied_ext): Use riscv_ext_info_t
+ 	rather than riscv_implied_info.
+ 	(riscv_subset_list::check_implied_ext): Ditto.
+ 	(riscv_subset_list::handle_combine_ext): Use riscv_ext_info_t
+ 	rather than riscv_combine_info.
+ 	(riscv_minimal_hwprobe_feature_bits): Use riscv_ext_info_t
+ 	rather than riscv_implied_info.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_info_t): New
+ 	struct.
+ 	(opt_var_ref_t): Adjust order.
+ 	(cl_opt_var_ref_t): Ditto.
+ 	(riscv_ext_flag_table_t): Adjust order, and add a new construct
+ 	that not hold the extension name.
+ 	(riscv_version_t): New struct.
+ 	(riscv_implied_info_t): Adjust order, and add a new construct that not
+ 	hold the extension name.
+ 	(apply_extra_extension_flags): New function.
+ 	(riscv_ext_infos): New.
+ 	(riscv_implied_info): Adjust.
+ 	* config/riscv/riscv-opts.h (EXT_FLAG_MACRO): New macro.
+ 	(BITMASK_NOT_YET_ALLOCATED): New macro.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_can_inline_p): Drop
+ 	extension flags check from `target_flags`.
+ 	* config/riscv/riscv-subset.h (riscv_x_target_flags_isa_mask):
+ 	Remove.
+ 	* config/riscv/riscv.cc (riscv_x_target_flags_isa_mask): Remove.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* doc/invoke.texi: Replace hand‑written extension table with
+ 	`@include riscv-ext.texi` to pull in auto‑generated entries.
+ 	* doc/riscv-ext.texi: New generated definition file
+ 	containing formatted documentation entries for each extension.
+ 	* Makefile.in: Add riscv-ext.texi to the list of files to be
+ 	processed by the Texinfo generator.
+ 	* config/riscv/gen-riscv-ext-texi.cc: New.
+ 	* config/riscv/t-riscv: Add rule for generating riscv-ext.texi.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/gen-riscv-ext-opt.cc: New.
+ 	* config/riscv/riscv.opt: Drop manual entries for target
+ 	options, and include riscv-ext.opt.
+ 	* config/riscv/riscv-ext.opt: New.
+ 	* config/riscv/riscv-ext.opt.urls: New.
+ 	* config.gcc: Add riscv-ext.opt to the list of target options files.
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_flag_table): Adjsut target
+ 	option variable entry.
+ 	(riscv_set_arch_by_subset_list): Adjust target option variable.
+ 	* config/riscv/riscv-c.cc (riscv_ext_flag_table): Adjust target
+ 	option variable entry.
+ 	* config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags):
+ 	Adjust variable name.
+ 	(riscv_pragma_intrinsic_flags_pollute): Adjust variable name.
+ 	(riscv_pragma_intrinsic_flags_restore): Ditto.
+ 	* config/riscv/t-riscv: Add the rule for generating
+ 	riscv-ext.opt.
+ 	* config/riscv/riscv-opts.h (TARGET_MIN_VLEN): Update.
+ 	(TARGET_MIN_VLEN_OPTS): Update.
+ 
+ 2025-05-13  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv-ext.def: New file; define extension metadata table.
+ 	* config/riscv/riscv-ext-corev.def: New.
+ 	* config/riscv/riscv-ext-sifive.def: New.
+ 	* config/riscv/riscv-ext-thead.def: New.
+ 	* config/riscv/riscv-ext-ventana.def: New.
+ 
+ 2025-05-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* diagnostic-format-html.cc: Include "diagnostic-format-text.h",
+ 	"pretty-print-urlifier.h" and "edit-context.h".
+ 	(html_builder::html_builder): Fix indentation in decl.
+ 	(html_builder::make_element_for_diagnostic): Split out metadata
+ 	code into make_element_for_metadata.  Call
+ 	make_element_for_source, make_element_for_path, and
+ 	make_element_for_patch.
+ 	(html_builder::make_element_for_source): New.
+ 	(html_builder::make_element_for_path): New.
+ 	(html_builder::make_element_for_patch): New.
+ 	(html_builder::make_metadata_element): New.
+ 	(html_builder::make_element_for_metadata): New.
+ 	(html_output_format::get_builder): New.
+ 	(selftest::test_html_diagnostic_context::get_builder): New.
+ 	(selftest::test_simple_log): Update test to print a quoted string,
+ 	and verify that it uses a "gcc-quoted-text" span.
+ 	(selftest::test_metadata): New.
+ 	(selftest::diagnostic_format_html_cc_tests): Call it.
+ 
+ 2025-05-13  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* tree-ssanames.cc (set_bitmask): Use int_range_max for temps.
+ 	* value-range.cc (irange::set_range_from_bitmask): Handle all
+ 	trailing zero values.
+ 
+ 2025-05-12  Pan Li  <pan2.li@intel.com>
+ 
+ 	* match.pd: Add form 7 matching pattern for unsigned integer
+ 	SAT_ADD.
+ 
+ 2025-05-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* config/aarch64/aarch64.md (cmov<mode>6): Remove.
+ 
+ 2025-05-12  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/120230
+ 	* optabs.cc (can_compare_p): Remove support for ccp_cmov.
+ 	* optabs.def (cmov_optab): Remove.
+ 	* optabs.h (can_compare_purpose): Remove ccp_cmov.
+ 
+ 2025-05-12  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120231
+ 	* range-op-float.cc (operator_cast::fold_range): New variants.
+ 	(operator_cast::op1_range): Likewise.
+ 	* range-op-mixed.h (operator_cast::fold_range): Likewise.
+ 	(operator_cast::op1_range): Likewise
+ 	* range-op.cc (range_op_handler::fold_range): Add RO_FIF dispatch.
+ 	(range_op_handler::op1_range): Add RO_IFF and RO_FII patterns.
+ 	(range_operator::fold_range): Provide new variant default.
+ 	(range_operator::op1_range): Likewise.
+ 	* range-op.h (range_operator): Add new variant methods.
+ 
+ 2025-05-12  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/120188
+ 	* doc/gm2.texi (Semantic checking): Add -fm2-plugin command line option.
+ 
+ 2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-sm.def: Add '61'.
+ 	* 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_61, -march-map=sm_62):
+ 	Likewise.
+ 	* config.gcc: Likewise.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_61'.
+ 	* config/nvptx/gen-multilib-matches-tests: Extend.
+ 
+ 2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
+ 	'PTX_VERSION_5_0'.
+ 	* config/nvptx/nvptx.cc (ptx_version_to_string)
+ 	(ptx_version_to_number): Adjust.
+ 	* config/nvptx/nvptx.h (TARGET_PTX_5_0): New.
+ 	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
+ 	'5.0' for 'PTX_VERSION_5_0'.
+ 	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=5.0'.
+ 
+ 2025-05-12  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::check_conflict_ext): New extension.
+ 	* config/riscv/riscv.opt: Ditto.
+ 
+ 2025-05-12  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc
+ 	(riscv_subset_list::check_conflict_ext): New extension.
+ 	* config/riscv/riscv.opt: Ditto.
+ 
+ 2025-05-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* lto-streamer-out.cc (hash_tree): Hash TYPE_MODE_RAW.
+ 	When offloading hash modes as VOIDmode for aggregates
+ 	and vectors.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* doc/extend.texi: Remove the iwmmxt intrinsics.
+ 	* doc/md.texi: Remove the iwmmxt-related constraints.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/aout.h (REGISTER_NAMES): Remove iwmmxt registers.
+ 	* config/arm/arm.h (FIRST_IWMMXT_REGNUM): Delete.
+ 	(LAST_IWMMXT_REGNUM): Delete.
+ 	(FIRST_IWMMXT_GR_REGNUM): Delete.
+ 	(LAST_IWMMXT_GR_REGNUM): Delete.
+ 	(IS_IWMMXT_REGNUM):  Delete.
+ 	(IS_IWMMXT_GR_REGNUM): Delete.
+ 	(FRAME_POINTER_REGNUM): Define relative to CC_REGNUM.
+ 	(ARG_POINTER_REGNUM): Define relative to FRAME_POINTER_REGNUM.
+ 	(FIRST_PSEUDO_REGISTER): Adjust.
+ 	(WREG): Delete.
+ 	(WGREG): Delete.
+ 	(REG_ALLOC_ORDER): Remove iWMMX registers.
+ 	(enum reg_class): Remove iWMMX register classes.
+ 	(REG_CLASS_NAMES): Likewise.
+ 	(REG_CLASS_CONTENTS):  Remove iWMMX registers.
+ 	* config/arm/arm.md (CC_REGNUM): Adjust value.
+ 	(VFPCC_RENGUM): Likewise.
+ 	(APSRQ_REGNUM): Likewise.
+ 	(APSRGE_REGNUM): Likewise.
+ 	(VPR_REGNUM): Likewise.
+ 	(RA_AUTH_CODE): Likewise.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-cpus.in (feature iwmmxt, feature iwmmxt2):  Delete.
+ 	* config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Delete.
+ 	(arm_output_iwmmxt_tinsr): Delete.
+ 	(arm_arch_iwmmxt): Delete.
+ 	(arm_arch_iwmmxt2): Delete.
+ 	* config/arm/arm.h (TARGET_IWMMXT): Delete.
+ 	(TARGET_IWMMXT2): Delete.
+ 	(TARGET_REALLY_IWMMXT): Delete.
+ 	(TARGET_REALLY_IWMMXT2): Delete.
+ 	(VALID_IWMMXT_REG_MODE): Delete.
+ 	(ARM_HAVE_V8QI_ARITH): Remove iWMMXT.
+ 	(ARM_HAVE_V4HI_ARITH): Likewise.
+ 	(ARM_HAVE_V2SI_ARITH): Likewise.
+ 	(ARM_HAVE_V8QI_LDST): Likewise.
+ 	(ARM_HAVE_V4HI_LDST): Likewise.
+ 	(ARM_HAVE_V2SI_LDST): Likewise.
+ 	(SECONDARY_OUTPUT_RELOAD_CLASS):  Remove iWMMXT cases.
+ 	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
+ 	* config/arm/arm.cc (arm_arch_iwmmxt): Delete.
+ 	(arm_arch_iwmmxt2): Delete.
+ 	(arm_option_reconfigure_globals): Don't initialize them.
+ 	(arm_register_move_cost): Remove costs for iwmmxt.
+ 	(struct minipool_node):  Update comment.
+ 	(output_move_double): Likewise
+ 	(output_return_instruction): Likewise.
+ 	(arm_print_operand, cases 'U' and 'w'): Report an error if
+ 	used.
+ 	(arm_regno_class): Remove iWMMXT cases.
+ 	(arm_debugger_regno): Remove iWMMXT cases.
+ 	(arm_output_iwmmxt_shift_immediate): Delete.
+ 	(arm_output_iwmmxt_tinsr): Delete.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-c.cc (arm_cpu_builtins):  Remove predefines
+ 	for __IWWMXT__, __IWMMXT2__ and __ARM_WMMX.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/iterators.md (VMMX, VMMX2): Remove mode iterators.
+ 	(MMX_char): Remove mode iterator attribute.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.md (core_cycles): Remove iwmmxt attributes.
+ 	* config/arm/types.md (autodetect_type): Likewise.
+ 	* config/arm/marvell-f-iwmmxt.md: Removed.
+ 	* config/arm/t-arm: Remove marvell-f-iwmmxt.md
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.cc (arm_option_check_internal): Remove
+ 	IWMMXT check.
+ 	(arm_options_perform_arch_sanity_checks): Likewise.
+ 	(use_return_insn): Likewise.
+ 	(arm_init_cumulative_args): Likewise.
+ 	(arm_legitimate_index_p): Likewise.
+ 	(thumb2_legitimate_index_p): Likewise.
+ 	(arm_compute_save_core_reg_mask): Likewise.
+ 	(output_return_instruction): Likewise.
+ 	(arm_compute_frame_layout): Likewise.
+ 	(arm_save_coproc_regs): Likewise.
+ 	(arm_hard_regno_mode_ok): Likewise.
+ 	(arm_expand_epilogue_apcs_frame): Likewise.
+ 	(arm_expand_epilogue): Likewise.
+ 	(arm_vector_mode_supported_p): Likewise.
+ 	(arm_preferred_simd_mode): Likewise.
+ 	(arm_conditional_register_usage): Likewise.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config.gcc (arm, --with-abi): Remove iwmmxt abi option.
+ 	* config/arm/arm.opt (enum ARM_ABI_IWMMXT): Remove.
+ 	* config/arm/arm.h (TARGET_IWMMXT_ABI): Delete.
+ 	(enum arm_pcs): Remove ARM_PCS_AAPCS_IWMMXT.
+ 	(FUNCTION_ARG_REGNO_P): Remove IWMMXT ABI support.
+ 	(CUMULATIVE_ARGS): Remove iwmmxt_nregs.
+ 	* config/arm/arm.cc (arm_options_perform_arch_sanity_checks):
+ 	Remove IWMMXT ABI checks.
+ 	(arm_libcall_value_1): Likewise.
+ 	(arm_function_value_regno_p): Likewise.
+ 	(arm_apply_result_size): Remove adjustment for IWMMXT ABI.
+ 	(arm_function_arg): Remove IWMMXT ABI support.
+ 	(arm_arg_partial_bytes): Likewise.
+ 	(arm_function_arg_advance): Likewise.
+ 	(arm_init_cumulative_args): Don't initialize iwmmxt_nregs.
+ 	* doc/invoke.texi (arm -mabi): Remove mention of the iwmmxt
+ 	ABI option.
+ 	* config/arm/arm-opts.h (enum arm_abi_type): Remove ARM_ABI_IWMMXT.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.md(attr arch): Remove iwmmxt and iwmmxt2.
+ 	Remove checks based on TARGET_REALLY_IWMMXT2 from all split
+ 	patterns.
+ 	(arm_movdi): Likewise.
+ 	(*arm_movt): Likewise.
+ 	(arch_enabled): Remove test for iwmmxt2.
+ 	* config/arm/constraints.md (y, z): Remove register constraints.
+ 	(Uy): Remove memory constraint.
+ 	* config/arm/thumb2.md (thumb2_pop_single): Remove check for
+ 	IWMMXT.
+ 	* config/arm/vec-common.md (mov<mode>): Remove check for IWMMXT.
+ 	(mul<mode>3): Likewise.
+ 	(xor<mode>3): Likewise.
+ 	(<absneg_str><mode>2): Likewise.
+ 	(@movmisalign<mode>): Likewise.
+ 	(@mve_<mve_insn>q_<supf><mode>): Likewise.
+ 	(vashl<mode>3): Likewise.
+ 	(vashr<mode>3): Likewise.
+ 	(vlshr<mode>3): Likewise.
+ 	(uavg<mode>3_ceil): Likewise.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.md: Don't include iwmmxt.md.
+ 	* config/arm/t-arm (MD_INCLUDES): Remove iwmmxt*.md.
+ 	* config/arm/iwmmxt.md: Removed.
+ 	* config/arm/iwmmxt2.md: Removed.
+ 	* config/arm/unspecs.md: Remove comment referring to
+ 	iwmmxt2.md.
+ 	(enum unspec): Remove iWMMXt unspec values.
+ 	(enum unspecv): Likewise.
+ 	* config/arm/predicates.md (imm_or_reg_operand): Delete.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-builtins.cc (enum arm_builtins): Delete iWMMX
+ 	builtin values.
+ 	(bdesc_2arg): Likewise.
+ 	(bdesc_1arg): Likewise.
+ 	(arm_init_iwmmxt_builtins): Delete.
+ 	(arm_init_builtins): Don't call arm_init_iwmmxt_builtins.
+ 	(safe_vector_operand): Use __builtin_unreachable instead of emitting
+ 	an iwmmxt builtin.
+ 	(arm_general_expand_builtin): Remove iWMMX builtins support.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm-cpus.in (arch iwmmxt): treat in the same
+ 	way as we would treat XScale.
+ 	(arch iwmmxt2): Likewise.
+ 	(cpu xscale): Add aliases for iwmmxt and iwmmxt2.
+ 	(cpu iwmmxt): Delete.
+ 	(cpu iwmmxt2): Delete.
+ 	* config/arm/arm-generic.md (load_ldsched_xscale): Remove references
+ 	to iwmmxt.
+ 	(load_ldsched): Likewise.
+ 	* config/arm/arm-tables.opt: Regenerated.
+ 	* config/arm/arm-tune.md: Regenerated.
+ 	* doc/sourcebuild.texi (arm_iwmmxt_ok): Delete.
+ 
+ 2025-05-12  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add	parentheis
+ 	and re-indent.
+ 	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
+ 
+ 2025-05-12  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120228
+ 	* config/i386/i386-features.cc (ix86_place_single_vector_set):
+ 	Remove df_insn_rescan after emit_insn_*.
+ 	(remove_partial_avx_dependency): Likewise.
+ 	(replace_vector_const): Likewise.
+ 
+ 2025-05-11  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_widen_mult_cost): Use sse_op to cost
+ 	SSE integer addition.
+ 	(ix86_multiplication_cost): Use COSTS_N_INSNS (...)/2 to cost sse
+ 	loads.
+ 	(ix86_shift_rotate_cost): Likewise.
+ 	(ix86_vector_costs::add_stmt_cost): Likewise.
+ 
+ 2025-05-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* config/xtensa/xtensa.cc (xtensa_register_move_cost):
+ 	Add appropriate move costs between AR_REGS and FP_REGS.
+ 
+ 2025-05-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120211
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Only add PHIs
+ 	from the loop header to LOOP_VINFO_EARLY_BREAKS_LIVE_IVS.
+ 
+ 2025-05-11  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New profile.
+ 
+ 2025-05-11  Jiawei  <jiawei@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (struct riscv_profiles): New struct.
+ 	(riscv_subset_list::parse_profiles): New parser.
+ 	(riscv_subset_list::parse_base_ext): Ditto.
+ 	* config/riscv/riscv-subset.h: New def.
+ 	* doc/invoke.texi: New option descriptions.
+ 
+ 2025-05-10  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/92080
+ 	PR target/117839
+ 	* config/i386/i386-features.cc (replace_vector_const): Change
+ 	dest to src.
+ 
+ 2025-05-10  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386-features.cc
+ 	(general_scalar_chain::vector_const_cost): Add BB parameter; handle
+ 	size costs; use COSTS_N_INSNS to compute move costs.
+ 	(general_scalar_chain::compute_convert_gain): Use optimize_bb_for_size
+ 	instead of optimize_insn_for size; use COSTS_N_INSNS to compute move costs;
+ 	update calls of general_scalar_chain::vector_const_cost; use
+ 	ix86_cost->integer_to_sse.
+ 	(timode_immed_const_gain): Add bb parameter; use
+ 	optimize_bb_for_size_p.
+ 	(timode_scalar_chain::compute_convert_gain): Use optimize_bb_for_size_p.
+ 	* config/i386/i386-features.h (class general_scalar_chain): Update
+ 	prototype of vector_const_cost.
+ 	* config/i386/i386.h (struct processor_costs): Add integer_to_sse.
+ 	* config/i386/x86-tune-costs.h (struct processor_costs): Copy
+ 	sse_to_integer to integer_to_sse everywhere.
+ 
+ 2025-05-10  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR tree-optimization/120080
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
+ 	Replace assert with return.
+ 
+ 2025-05-10  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	* config/riscv/iterators.md (OPTAB): New iterator.
+ 	* config/riscv/predicates.md (arith_or_zbs_operand): Remove.
+ 	(reg_or_const_int_operand): New predicate.
+ 	* config/riscv/riscv-protos.h (synthesize_ior_xor): Prototype.
+ 	* config/riscv/riscv.cc (synthesize_ior_xor): New function.
+ 	* config/riscv/riscv.md (ior/xor expander): Use synthesize_ior_xor.
+ 
+ 2025-05-10  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR target/111107
+ 	* config/i386/cygming.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Override
+ 	definition from i386.h.
+ 	(STACK_REALIGN_DEFAULT): Undefine, as it no longer has an effect.
+ 	* config/i386/i386.cc (ix86_update_stack_boundary): Force minimum
+ 	128-bit alignment if `force_align_arg_pointer`.
+ 
+ 2025-05-10  Anton Blanchard  <antonb@tenstorrent.com>
+ 
+ 	* config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): Check
+ 	TARGET_ZVBC.
+ 	* config/riscv/riscv.cc (expand_crc_using_clmul): Emit code using
+ 	vclmul if TARGET_ZVBC.
+ 
+ 2025-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* vr-values.cc (simplify_using_ranges::simplify) <BIT_AND_EXPR>:
+ 	Do not call simplify_bit_ops_using_ranges for boolean types whose
+ 	precision is not 1.
+ 
+ 2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/114166
+ 	* tree-vect-stmts.cc (vectorizable_operation): Lower also
+ 	bitwise operations on word-mode vectors.
+ 
+ 2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_operation): Remve non-SLP
+ 	path.
+ 
+ 2025-05-09  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple.h (gimple_cond_true_canonical_p): New function.
+ 	(gimple_cond_false_canonical_p): New function.
+ 	* gimple-fold.cc (replace_stmt_with_simplification): Return
+ 	false if replacing the operands of GIMPLE_COND with an INTEGER_CST
+ 	and already in canonical form.
+ 
+ 2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/120182
+ 	* dse.cc (canon_address): Constant addresses have no
+ 	separate store group.
+ 
+ 2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119960
+ 	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
+ 	Handle cases where defs from multiple BBs are ordered
+ 	by their dominance relation.
+ 
+ 2025-05-09  Jørgen Kvalsvik  <j@lambda.is>
+ 
+ 	PR gcov-profile/120086
+ 	* gcov.cc (print_prime_path_lines): Use unsigned, format with
+ 	%u.
+ 	(print_prime_path_source): Likewise.
+ 	(output_path_coverage): Format with HOST_SIZE_T_PRINT_UNSIGNED,
+ 	use unsigned for pathno.
+ 
+ 2025-05-09  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (*aarch64_sve_ptrue<mode>_ldr_str):
+ 	Add define_insn_and_split to fold predicated SVE loads/stores with
+ 	ptrue predicates to unpredicated instructions.
+ 
+ 2025-05-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116792
+ 	* Makefile.in (OBJS-libcommon): Add diagnostic-format-html.o.
+ 	* diagnostic-format-html.cc: Move here from
+ 	testsuite/gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc.
+ 	Simplify includes.  Rename "xhtml" to "html" throughout.
+ 	(write_escaped_text): Drop.
+ 	(class xhtml_stream_output_format): Drop.
+ 	(class html_file_output_format): Reimplement using
+ 	diagnostic_output_file.
+ 	(diagnostic_output_format_init_xhtml): Drop.
+ 	(diagnostic_output_format_init_xhtml_stderr): Drop.
+ 	(diagnostic_output_format_init_xhtml_file): Drop.
+ 	(diagnostic_output_format_open_html_file): New.
+ 	(make_html_sink): New.
+ 	(xhtml_format_selftests): Convert to...
+ 	(diagnostic_format_html_cc_tests): ...this.
+ 	(plugin_is_GPL_compatible): Drop.
+ 	(plugin_init): Drop.
+ 	* diagnostic-format-html.h: New file.
+ 	* doc/invoke.texi (-fdiagnostics-add-output=): Add
+ 	"experimental-html" scheme.
+ 	* opts-diagnostic.cc: Include "diagnostic-format-html.h".
+ 	(class html_scheme_handler): New.
+ 	(output_factory::output_factory): Add html_scheme_handler.
+ 	(html_scheme_handler::make_sink): New.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call the new
+ 	selftests.
+ 	* selftest.h (selftest::diagnostic_format_html_cc_tests): New
+ 	decl.
+ 
+ 2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple-fold.cc (replace_stmt_with_simplification): Return false
+ 	if replacing `bool_var != 0` with `bool_var` in GIMPLE_COND.
+ 
+ 2025-05-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* tree-vect-loop.cc (get_initial_def_for_reduction): Remove.
+ 	(vect-create_epilog_for_reduction): Remove non-SLP path.
+ 	(vectorize_fold_left_reduction): Likewise.
+ 	(vectorizable_lane_reducing): Likewise.
+ 	(vectorizable_reduction): Likewise.
+ 	(vect_transform_reduction): Likewise.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vectorizable_lc_phi): Remove non-SLP PATH and split into...
+ 	(vect_transform_lc_phi): ... this.
+ 	(update_epilogue_loop_vinfo): Update comment.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Update call to
+ 	vectorizable_lc_phi.
+ 	(vect_transform_stmt): Update calls to vect_transform_reduction and
+ 	vect_transform_cycle_phi.  Rename call from vectorizable_lc_phi to
+ 	vect_transform_lc_phi.
+ 	* tree-vectorizer.h (vect_transform_reduction): Update declaration.
+ 	(vect_transform_cycle_phi): Likewise.
+ 	(vectorizable_lc_phi): Likewise.
+ 	(vect_transform_lc_phi): New.
+ 
+ 2025-05-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* gensupport.cc (conlist::conlist): Pass a location to the constructor.
+ 	Only allow skipping of non-alpha-numeric characters when parsing a
+ 	number and only allow '=', '+' or '%'.  Add some error checking when
+ 	parsing an operand number.
+ 	(parse_section_layout): Pass the location to the conlist constructor.
+ 	(parse_section): Allow an optional list of forbidden characters.
+ 	If specified, reject strings containing them.
+ 	(convert_syntax): Reject '=', '+' or '%' in an alternative.
+ 
+ 2025-05-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Move
+ 	commutative marker to the cons specification.
+ 	(add<mode>3): Likewise.
+ 	(@aarch64_pred_<su>abd<mode>): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	(*cond_<optab><mode>_z): Likewise.
+ 	(<optab><mode>3): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	(*aarch64_pred_abd<mode>_relaxed): Likewise.
+ 	(*aarch64_pred_abd<mode>_strict): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	(@aarch64_pred_fma<mode>): Likewise.
+ 	(@aarch64_pred_fnma<mode>): Likewise.
+ 	(@aarch64_pred_<optab><mode>): Likewise.
+ 	* config/aarch64/aarch64-sve2.md (@aarch64_sve_<su>clamp<mode>): Move
+ 	commutative marker to the cons specification.
+ 	(*aarch64_sve_<su>clamp<mode>_x): Likewise.
+ 	(@aarch64_sve_fclamp<mode>): Likewise.
+ 	(*aarch64_sve_fclamp<mode>_x): Likewise.
+ 	(*aarch64_sve2_nor<mode>): Likewise.
+ 	(*aarch64_sve2_nand<mode>): Likewise.
+ 	(*aarch64_pred_faminmax_fused): Likewise.
+ 	* config/aarch64/aarch64.md (*loadwb_pre_pair_<ldst_sz>): Move the
+ 	early-clobber marker to the relevant alternative.
+ 	(*storewb_pre_pair_<ldst_sz>): Likewise.
+ 	(*add<mode>3_aarch64): Move commutative marker to the cons
+ 	specification.
+ 	(*addsi3_aarch64_uxtw): Likewise.
+ 	(*add<mode>3_poly_1): Likewise.
+ 	(add<mode>3_compare0): Likewise.
+ 	(*addsi3_compare0_uxtw): Likewise.
+ 	(*add<mode>3nr_compare0): Likewise.
+ 	(<optab><mode>3): Likewise.
+ 	(*<optab>si3_uxtw): Likewise.
+ 	(*and<mode>3_compare0): Likewise.
+ 	(*andsi3_compare0_uxtw): Likewise.
+ 	(@aarch64_and<mode>3nr_compare0): Likewise.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/116352
+ 	* tree-vect-slp.cc (vect_build_slp_tree_2): When compressing
+ 	operands from a two-operator node make sure the resulting
+ 	operation does not mix defs from different basic-blocks.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120043
+ 	* tree-ssa-phiopt.cc (cond_store_replacement): Check
+ 	whether the store is to readonly memory.
+ 
+ 2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116938
+ 	* tree-ssa-phiopt.cc (move_stmt): Use rewrite_to_defined_overflow
+ 	isntead of manually doing the rewrite of the VCE.
+ 
+ 2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/120122
+ 	PR tree-optimization/116939
+ 	* gimple-fold.h (gimple_with_undefined_signed_overflow): Rename to ..
+ 	(rewrite_to_defined_overflow): This.
+ 	(gimple_needing_rewrite_undefined): Rename to ...
+ 	(rewrite_to_defined_unconditional): this.
+ 	* gimple-fold.cc (gimple_with_undefined_signed_overflow): Rename to ...
+ 	(gimple_needing_rewrite_undefined): This. Return true for VCE with integral
+ 	types of smaller precision.
+ 	(rewrite_to_defined_overflow): Rename to ...
+ 	(rewrite_to_defined_unconditional): This. Handle VCE rewriting to a cast.
+ 	* tree-if-conv.cc: s/gimple_with_undefined_signed_overflow/gimple_needing_rewrite_undefined/
+ 	s/rewrite_to_defined_overflow/rewrite_to_defined_unconditional.
+ 	* tree-scalar-evolution.cc: Likewise
+ 	* tree-ssa-ifcombine.cc: Likewise.
+ 	* tree-ssa-loop-im.cc: Likewise.
+ 	* tree-ssa-loop-split.cc: Likewise.
+ 	* tree-ssa-reassoc.cc: Likewise.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/120146
+ 	* tree-ssa-structalias.cc (create_variable_info_for): If
+ 	the symtab cannot tell us whether all refs to a variable
+ 	are explicit assume they are not.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119589
+ 	PR tree-optimization/119586
+ 	PR tree-optimization/119155
+ 	* tree-vect-stmts.cc (vectorizable_store): Verify
+ 	DR_STEP_ALIGNMENT preserves DR_TARGET_ALIGNMENT when
+ 	VF > 1 and VMAT_STRIDED_SLP.  Use vector aligned accesses when
+ 	we can.
+ 	(vectorizable_load): Likewise.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120143
+ 	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
+ 	Move/update the original stmts, not the pattern stmts which
+ 	lack virtual operands and are not in the IL.
+ 
+ 2025-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120089
+ 	* tree-vect-stmts.cc (vect_stmt_relevant_p): Mark all
+ 	PHIs live when not already so and doing early-break
+ 	vectorization.
+ 	(vect_mark_stmts_to_be_vectorized): Skip virtual PHIs.
+ 	* tree-vect-slp.cc (vect_analyze_slp): Robustify handling
+ 	of early-break forced IVs.
+ 
+ 2025-05-08  Pengxuan Zheng  <quic_pzheng@quicinc.com>
+ 
+ 	* config/aarch64/aarch64-protos.h (aarch64_exact_log2_inverse): New.
+ 	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
+ 	Update pattern accordingly.
+ 	* config/aarch64/aarch64.cc (aarch64_exact_log2_inverse): New.
+ 	* simplify-rtx.cc (simplify_context::simplify_ternary_operation):
+ 	Canonicalize vec_merge.
+ 
+ 2025-05-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/120137
+ 	PR target/120154
+ 	* config/riscv/riscv-vect-permconst.cc (process_bb): Verify each
+ 	canonicalized element fits into the vector element mode.
+ 
+ 2025-05-07  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New extension.
+ 	* config/riscv/riscv.opt: Ditto.
+ 
+ 2025-05-07  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/91323
+ 	* config/arm/arm.cc (arm_select_cc_mode): Use CCFPEmode for LTGT.
+ 
+ 2025-05-07  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/110796
+ 	PR target/118446
+ 	* config/arm/arm.h (REVERSIBLE_CC_MODE): FP modes are only
+ 	reversible if flag_finite_math_only.
+ 	* config/arm/arm.cc (arm_select_cc_mode): Return CCFPmode for all
+ 	FP comparisons if flag_finite_math_only.
+ 
+ 2025-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/111276
+ 	* gimple-fold.cc (arith_code_with_undefined_signed_overflow): Make static.
+ 	(gimple_with_undefined_signed_overflow): New function.
+ 	* gimple-fold.h (arith_code_with_undefined_signed_overflow): Remove.
+ 	(gimple_with_undefined_signed_overflow): Add declaration.
+ 	* tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Use
+ 	gimple_with_undefined_signed_overflow instead of manually
+ 	checking lhs and the code of the stmt.
+ 	(predicate_statements): Likewise.
+ 	* tree-ssa-ifcombine.cc (ifcombine_rewrite_to_defined_overflow): Likewise.
+ 	* tree-ssa-loop-im.cc (move_computations_worker): Likewise.
+ 	* tree-ssa-reassoc.cc (update_range_test): Likewise. Reformat.
+ 	* tree-scalar-evolution.cc (final_value_replacement_loop): Use
+ 	gimple_with_undefined_signed_overflow instead of
+ 	arith_code_with_undefined_signed_overflow.
+ 	* tree-ssa-loop-split.cc (split_loop): Likewise.
+ 
+ 2025-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-loop-im.cc (compute_invariantness): Hoist to the always executed point
+ 	if ignorning the cost.
+ 
+ 2025-05-07  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add FLOAT_EXPR;
+ 	FIX_TRUNC_EXPR and vec_promote_demote costs.
+ 
+ 2025-05-07  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	PR target/117978
+ 	* config/aarch64/aarch64-protos.h: Declare
+ 	aarch64_emit_load_store_through_mode and aarch64_sve_maskloadstore.
+ 	* config/aarch64/aarch64-sve.md
+ 	(maskload<mode><vpred>): New define_expand folding maskloads with
+ 	certain predicate patterns to ASIMD loads.
+ 	(*aarch64_maskload<mode><vpred>): Renamed from maskload<mode><vpred>.
+ 	(maskstore<mode><vpred>): New define_expand folding maskstores with
+ 	certain predicate patterns to ASIMD stores.
+ 	(*aarch64_maskstore<mode><vpred>): Renamed from maskstore<mode><vpred>.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_emit_load_store_through_mode): New function emitting a
+ 	load/store through subregs of a given mode.
+ 	(aarch64_emit_sve_pred_move): Refactor to use
+ 	aarch64_emit_load_store_through_mode.
+ 	(aarch64_expand_maskloadstore): New function to emit ASIMD loads/stores
+ 	for maskloads/stores with SVE predicates with VL1, VL2, VL4, VL8, or
+ 	VL16 patterns.
+ 	(aarch64_partial_ptrue_length): New function returning number of leading
+ 	set bits in a predicate.
+ 
+ 2025-05-07  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/s390-protos.h (s390_expand_cstoreti4): New
+ 	function.
+ 	* config/s390/s390.cc (s390_expand_cstoreti4): New function.
+ 	* config/s390/s390.md (CC_SUZ): New mode iterator.
+ 	(l): New mode attribute.
+ 	(cc_tolower): New mode attribute.
+ 	* config/s390/vector.md (cstoreti4): New expander.
+ 	(*vec_cmpv2di_lane0_<cc_tolower>): New insn.
+ 	(*vec_cmpti_<cc_tolower>): New insn.
+ 
+ 2025-05-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120036
+ 	* config/i386/i386-features.cc (ix86_get_vector_load_mode):
+ 	Handle 8/4/2 bytes.
+ 	(remove_redundant_vector_load): If the mode size is smaller than
+ 	its natural size, first insert an extra move with a QI vector
+ 	SUBREG of the same size to avoid validate_subreg failure.
+ 
+ 2025-05-07  hongtao.liu  <hongtao.liu@intel.com>
+ 
+ 	PR gcov-profile/118508
+ 	* auto-profile.cc
+ 	(autofdo_source_profile::get_callsite_total_count): Fix name
+ 	mismatch for fortran.
+ 
+ 2025-05-07  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_equals_zero):
+ 	Avoid generating unnecessary andi.  Fix formatting.
+ 
+ 2025-05-06  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc: New extension.
+ 
+ 2025-05-06  Mingzhu Yan  <yanmingzhu@iscas.ac.cn>
+ 
+ 	* common/config/riscv/riscv-common.cc (riscv_ext_version_table): New
+ 	extension.
+ 	(riscv_ext_flag_table) Ditto.
+ 	* config/riscv/riscv.opt: New mask.
+ 	* doc/invoke.texi (RISC-V Options): New extension
+ 
+ 2025-05-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_rtx_costs): Cost FLOAT, UNSIGNED_FLOAT,
+ 	FIX, UNSIGNED_FIX.
+ 	* config/i386/i386.h (struct processor_costs): Add
+ 	cvtsi2ss, cvtss2si, cvtpi2ps, cvtps2pi.
+ 	* config/i386/x86-tune-costs.h (struct processor_costs): Update tables.
+ 
+ 2025-05-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/119852
+ 	* cgraph.h (cgraph_node::create_clone): Remove the default value of
+ 	argument suffix.  Update function comment.
+ 	* cgraphclones.cc (cgraph_node::create_clone): Update function comment.
+ 	* ipa-inline-transform.cc (clone_inlined_nodes): Pass NULL to suffix
+ 	of create_clone explicitely.
+ 	* ipa-inline.cc (recursive_inlining): Likewise.
+ 	* lto-cgraph.cc (input_node): Likewise.
+ 
+ 2025-05-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* cgraph.h (cgraph_node::create_version_clone_with_body): Fix function
+ 	comment.  Change the name of clone_name to suffix, in line with the
+ 	function definition.
+ 	* cgraphclones.cc (cgraph_node::create_version_clone_with_body): Fix
+ 	function comment.
+ 
+ 2025-05-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/119852
+ 	* cgraphclones.cc (dump_callgraph_transformation): Document the
+ 	function.  Do not dump if suffix is NULL.
+ 
+ 2025-05-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* doc/invoke.texi (Developer Options): Document -fdump-ipa-clones.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* selftest-diagnostic.cc (test_diagnostic_context::report): Use
+ 	diagnostic_option_id rather than plain int.
+ 	* selftest-diagnostic.h (test_diagnostic_context::report):
+ 	Likewise.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR sarif-replay/117988
+ 	* json.cc (json::pointer::token::token): New ctors.
+ 	(json::pointer::token::~token): New.
+ 	(json::pointer::token::operator=): New.
+ 	(json::object::set): Set the value's m_pointer_token.
+ 	(json::array::append): Likewise.
+ 	* json.h (json::pointer::token): New struct.
+ 	(json::value::get_pointer_token): New accessor.
+ 	(json::value::m_pointer_token): New field.
+ 	* libsarifreplay.cc (get_logical_location_kind_for_json_kind):
+ 	New.
+ 	(make_logical_location_from_jv): New.
+ 	(sarif_replayer::report_problem): Set the logical location of the
+ 	diagnostic.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (maybe_get_sarif_kind): Add cases for
+ 	new kinds of logical location.
+ 	* doc/libgdiagnostics/topics/logical-locations.rst: Add new kinds
+ 	of logical location for handling XML and JSON.
+ 	* libgdiagnostics.cc (impl_logical_location_manager::get_kind):
+ 	Add cases for new kinds of logical location.
+ 	(diagnostic_text_sink::text_starter): Likewise, introducing a
+ 	macro for this.
+ 	(diagnostic_manager_debug_dump_logical_location): Likewise.
+ 	* libgdiagnostics.h (enum diagnostic_logical_location_kind_t): Add
+ 	new kinds of logical location for handling XML and JSON.
+ 	* libsarifreplay.cc (handle_logical_location_object): Add entries
+ 	to "kind_values" for decoding sarif logical location kinds
+ 	relating to XML and JSON.
+ 	* logical-location.h (enum logical_location_kind): Add new kinds
+ 	of logical location for handling XML and JSON.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR other/116176
+ 	* diagnostic-format-sarif.cc (class sarif_array_of_unique): New
+ 	template.
+ 	(class sarif_logical_location): Move here from
+ 	diagnostic-format-sarif.h.
+ 	(sarif_builder::m_cached_logical_locs): New.
+ 	(sarif_builder::sarif_builder): Initialize it.
+ 	(sarif_builder::set_any_logical_locs_arr): Call
+ 	make_minimal_sarif_logical_location rather than
+ 	make_sarif_logical_location_object.
+ 	(sarif_property_bag::set_logical_location): Likewise.
+ 	(make_sarif_logical_location_object): Replace with...
+ 	(sarif_builder::ensure_sarif_logical_location_for): ...this.
+ 	Capture "parentIndex" property.  Consolidate into
+ 	theRuns.logicalLocations.
+ 	(sarif_builder::make_minimal_sarif_logical_location): New.
+ 	(sarif_builder::make_run_object): Add "index" properties to
+ 	m_cached_logical_locs and move it to theRuns.logicalLocations.
+ 	(selftest::test_sarif_array_of_unique_1): New.
+ 	(selftest::test_sarif_array_of_unique_2): New.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Call the new
+ 	selftests.
+ 	* diagnostic-format-sarif.h (class sarif_logical_location): Move
+ 	to diagnostic-format-sarif.cc.
+ 	(make_sarif_logical_location_object): Drop decl.
+ 	* json.cc (value::compare): New.
+ 	(object::compare): New.
+ 	(selftest::fail_comparison): New.
+ 	(selftest::assert_json_equal): New.
+ 	(ASSERT_JSON_EQ): New.
+ 	(selftest::assert_json_non_equal): New.
+ 	(ASSERT_JSON_NE): New.
+ 	(selftest::test_comparisons): New.
+ 	(selftest::json_cc_tests): Call the new selftest.
+ 	* json.h (json::value::dyn_cast_object): New vfunc.
+ 	(json::object::dyn_cast_object): New vfunc impl.
+ 	(json::object::compare): New decl.
+ 	* libgdiagnostics.cc
+ 	(impl_logical_location_manager::get_parent): New.
+ 	* logical-location.h (logical_location_manager::get_parent): New
+ 	vfunc impl.
+ 	* selftest-logical-location.h
+ 	(test_logical_location_manager::get_parent): New vfunc impl.
+ 	* tree-logical-location.cc (assert_valid_tree): New.
+ 	(tree_logical_location_manager::get_short_name): Support types as
+ 	well as decls.
+ 	(tree_logical_location_manager::get_name_with_scope): Gracefully
+ 	handle non-decl nodes.
+ 	(tree_logical_location_manager::get_internal_name): Likewise.
+ 	(tree_logical_location_manager::get_kind): Don't attempt to handle
+ 	null nodes.  Handle NAMESPACE_DECL and RECORD_TYPE.
+ 	(tree_logical_location_manager::get_name_for_path_output):
+ 	Gracefully handle non-decl nodes.
+ 	(tree_logical_location_manager::get_parent): New.
+ 	* tree-logical-location.h
+ 	(tree_logical_location_manager::get_parent): New vfunc impl.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-client-data-hooks.h: Include "logical-location.h".
+ 	(diagnostic_client_data_hooks::get_logical_location_manager): New.
+ 	(diagnostic_client_data_hooks::get_current_logical_location):
+ 	Convert return type from const logical_location * to
+ 	logical_location.
+ 	* diagnostic-format-json.cc: Include
+ 	"diagnostic-client-data-hooks.h".
+ 	(make_json_for_path): Update to use logical_location_manager from
+ 	the context.
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_builder::get_logical_location_manager): New.
+ 	(sarif_builder::make_location_object): Update type of logical_loc
+ 	from "const logical_location *" to "logical_location".
+ 	(sarif_builder::set_any_logical_locs_arr): Likewise.
+ 	(sarif_builder::m_logical_loc_mgr): New field.
+ 	(sarif_result::on_nested_diagnostic): Use logical_location default
+ 	ctor rather than nullptr.
+ 	(sarif_builder::sarif_builder): Initialize m_logical_loc_mgr from
+ 	context's client data hooks.
+ 	(sarif_builder::make_locations_arr): Convert type of logical_loc
+ 	from from "const logical_location *" to "logical_location".
+ 	(sarif_builder::set_any_logical_locs_arr): Likewise.  Pass manager
+ 	to make_sarif_logical_location_object.
+ 	(sarif_builder::make_location_object): Likewise.
+ 	(sarif_property_bag::set_logical_location): New.
+ 	(make_sarif_logical_location_object): Update for introduction of
+ 	logical_location_manager.
+ 	(populate_thread_flow_location_object): Pass builder to
+ 	ev.maybe_add_sarif_properties.
+ 	(selftest::test_make_location_object): Use logical_location
+ 	default ctor rather than nullptr.
+ 	* diagnostic-format-sarif.h (class logical_location): Replace
+ 	forward decl with include of "logical-location.h".
+ 	(class sarif_builder): New forward decl.
+ 	(sarif_property_bag::set_logical_location): New.
+ 	(make_sarif_logical_location_object): Add "mgr" param.
+ 	* diagnostic-path.cc
+ 	(diagnostic_path::get_first_event_in_a_function): Update for
+ 	change of logical_location type.
+ 	(per_thread_summary::per_thread_summary): Pass in
+ 	"logical_loc_mgr".
+ 	(per_thread_summary::m_logical_loc_mgr): New field.
+ 	(event_range::m_logical_loc): Update for change of
+ 	logical_location type.
+ 	(path_summary::get_logical_location_manager): New accessor.
+ 	(path_summary::m_logical_loc_mgr): New field.
+ 	(path_summary::get_or_create_events_for_thread_id): Pass
+ 	m_logical_loc_mgr to per_thread_summary ctor.
+ 	(path_summary::path_summary): Initialize m_logical_loc_mgr.
+ 	(thread_event_printer::print_swimlane_for_event_range): Add param
+ 	"logical_loc_mgr".  Update for change in logical_loc type.
+ 	(print_path_summary_as_text): Pass manager to
+ 	thread_event_printer::print_swimlane_for_event_range.
+ 	(diagnostic_text_output_format::print_path): Update for
+ 	introduction of logical_location_manager.
+ 	* diagnostic-path.h: Include "logical-location.h".
+ 	(class sarif_builder): New forward decl.
+ 	(diagnostic_event::get_logical_location): Convert return type from
+ 	"const logical_location *" to "logical_location".
+ 	(diagnostic_event::maybe_add_sarif_properties): Add sarif_builder
+ 	param.
+ 	(diagnostic_path::get_logical_location_manager): New accessor.
+ 	(diagnostic_path::diagnostic_path): New ctor, taking manager.
+ 	(diagnostic_path::m_logical_loc_mgr): New field.
+ 	* diagnostic.cc
+ 	(diagnostic_context::get_logical_location_manager): New.
+ 	(logical_location::function_p): Convert to...
+ 	(logical_location_manager::function_p): ...this.
+ 	* diagnostic.h (class logical_location): Replace forward decl
+ 	with...
+ 	(class logical_location_manager): ...this.
+ 	(diagnostic_context::get_logical_location_manager): New decl.
+ 	* lazy-diagnostic-path.cc
+ 	(selftest::test_lazy_path::test_lazy_path): Pass m_logical_loc_mgr
+ 	to path ctor.
+ 	(selftest::test_lazy_path::make_inner_path): Likewise.
+ 	(selftest::test_lazy_path::m_logical_loc_mgr): New field.
+ 	* lazy-diagnostic-path.h
+ 	(lazy_diagnostic_path::lazy_diagnostic_path): New ctor.
+ 	* libgdiagnostics.cc (struct diagnostic_logical_location): Convert
+ 	from subclass of logical_location to a plain struct, dropping
+ 	accessors.
+ 	(class impl_logical_location_manager): New.
+ 	(impl_diagnostic_client_data_hooks::get_logical_location_manager):
+ 	New
+ 	(impl_diagnostic_client_data_hooks::m_logical_location_manager):
+ 	New field.
+ 	(diagnostic_manager::get_logical_location_manager): New.
+ 	(libgdiagnostics_path_event::get_logical_location): Reimplement.
+ 	(diagnostic_execution_path::diagnostic_execution_path): Add
+ 	logical_loc_mgr and pass to base class.
+ 	(diagnostic_execution_path::same_function_p): Update for change to
+ 	logical_location type.
+ 	(diagnostic::add_execution_path): Pass logical_loc_mgr to path
+ 	ctor.
+ 	(impl_diagnostic_client_data_hooks::get_current_logical_location):
+ 	Reimplement.
+ 	(diagnostic_text_sink::text_starter): Reimplement printing of
+ 	logical location.
+ 	(diagnostic_manager::new_execution_path): Pass mgr to path ctor.
+ 	(diagnostic_manager_debug_dump_logical_location): Update for
+ 	changes to diagnostic_logical_location.
+ 	(diagnostic_logical_location_get_kind): Likewise.
+ 	(diagnostic_logical_location_get_parent): Likewise.
+ 	(diagnostic_logical_location_get_short_name): Likewise.
+ 	(diagnostic_logical_location_get_fully_qualified_name): Likewise.
+ 	(diagnostic_logical_location_get_decorated_name): Likewise.
+ 	* logical-location.h (class logical_location_manager): New.
+ 	(class logical_location): Convert to typedef of
+ 	logical_location_manager::key.
+ 	* selftest-diagnostic-path.cc
+ 	(selftest::test_diagnostic_path::test_diagnostic_path): Pass
+ 	m_test_logical_loc_mgr to base ctor.
+ 	(selftest::test_diagnostic_path::same_function_p): Use pointer
+ 	comparison.
+ 	(selftest::test_diagnostic_path::add_event): Use
+ 	logical_location_from_funcname.
+ 	(selftest::test_diagnostic_path::add_thread_event): Likewise.
+ 	(selftest::test_diagnostic_path::logical_location_from_funcname):
+ 	New.
+ 	(selftest::test_diagnostic_event::test_diagnostic_event): Fix
+ 	indentation.  Pass logical_location rather than const char *.
+ 	* selftest-diagnostic-path.h
+ 	(selftest::test_diagnostic_event::test_diagnostic_event):
+ 	Likewise.
+ 	(selftest::test_diagnostic_event::get_logical_location): Update
+ 	for change to logical_location type.
+ 	(selftest::test_diagnostic_event::get_function_name): Drop.
+ 	(selftest::test_diagnostic_event::m_logical_loc): Convert from
+ 	test_logical_location to logical_location.
+ 	(selftest::test_diagnostic_path::logical_location_from_funcname):
+ 	New.
+ 	(selftest::test_diagnostic_path::m_test_logical_loc_mgr): New
+ 	field.
+ 	* selftest-logical-location.cc: Include "selftest.h".
+ 	(selftest::test_logical_location::test_logical_location): Drop.
+ 	(selftest::test_logical_location_manager::~test_logical_location_manager):
+ 	New.
+ 	(selftest::test_logical_location::get_short_name): Replace with...
+ 	(selftest::test_logical_location_manager::get_short_name):
+ 	...this.
+ 	(selftest::test_logical_location::get_name_with_scope): Replace
+ 	with...
+ 	(selftest::test_logical_location_manager::get_name_with_scope):
+ 	...this.
+ 	(selftest::test_logical_location::get_internal_name): Replace
+ 	with...
+ 	(selftest::test_logical_location_manager::get_internal_name):
+ 	...this.
+ 	(selftest::test_logical_location::get_kind): Replace with...
+ 	(selftest::test_logical_location_manager::get_kind): ...this.
+ 	(selftest::test_logical_location::get_name_for_path_output):
+ 	Replace with...
+ 	(selftest::test_logical_location_manager::get_name_for_path_output):
+ 	...this.
+ 	(selftest::test_logical_location_manager::logical_location_from_funcname):
+ 	New.
+ 	(selftest::test_logical_location_manager::item_from_funcname):
+ 	New.
+ 	(selftest::selftest_logical_location_cc_tests): New.
+ 	* selftest-logical-location.h (class test_logical_location):
+ 	Replace with...
+ 	(class test_logical_location_manager): ...this.
+ 	* selftest-run-tests.cc (selftest::run_tests): Call
+ 	selftest_logical_location_cc_tests.
+ 	* selftest.h (selftest::selftest_logical_location_cc_tests): New
+ 	decl.
+ 	* simple-diagnostic-path.cc
+ 	(simple_diagnostic_path::simple_diagnostic_path): Add
+ 	"logical_loc_mgr" param and pass it to base ctor.
+ 	(simple_diagnostic_event::simple_diagnostic_event): Update init of
+ 	m_logical_loc.
+ 	(selftest::test_intraprocedural_path): Update for changes to
+ 	logical locations.
+ 	* simple-diagnostic-path.h: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc
+ 	(compiler_data_hooks::get_logical_location_manger): New.
+ 	(compiler_data_hooks::get_current_logical_location): Update.
+ 	(compiler_data_hooks::m_current_fndecl_logical_loc): Replace
+ 	with...
+ 	(compiler_data_hooks::m_logical_location_manager): ...this.
+ 	* tree-logical-location.cc
+ 	(compiler_logical_location::get_short_name_for_tree): Replace
+ 	with...
+ 	(tree_logical_location_manager::get_short_name): ...this.
+ 	(compiler_logical_location::get_name_with_scope_for_tree): Replace
+ 	with...
+ 	(tree_logical_location_manager::get_name_with_scope): ...this.
+ 	(compiler_logical_location::get_internal_name_for_tree): Replace
+ 	with...
+ 	(tree_logical_location_manager::get_internal_name): ...this.
+ 	(compiler_logical_location::get_kind_for_tree): Replace with...
+ 	(tree_logical_location_manager::get_kind): ...this.
+ 	(compiler_logical_location::get_name_for_tree_for_path_output):
+ 	Replace with...
+ 	(tree_logical_location_manager::get_name_for_path_output):
+ 	...this.
+ 	(tree_logical_location::get_short_name): Drop.
+ 	(tree_logical_location::get_name_with_scope): Drop.
+ 	(tree_logical_location::get_internal_name): Drop.
+ 	(tree_logical_location::get_kind): Drop.
+ 	(tree_logical_location::get_name_for_path_output): Drop.
+ 	(current_fndecl_logical_location::get_short_name): Drop.
+ 	(current_fndecl_logical_location::get_name_with_scope): Drop.
+ 	(current_fndecl_logical_location::get_internal_name): Drop.
+ 	(current_fndecl_logical_location::get_kind): Drop.
+ 	(current_fndecl_logical_location::get_name_for_path_output): Drop.
+ 	* tree-logical-location.h (class compiler_logical_location): Drop.
+ 	(class tree_logical_location): Drop.
+ 	(class current_fndecl_logical_location): Drop.
+ 	(class tree_logical_location_manager): New.
+ 
+ 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* doc/libgdiagnostics/topics/compatibility.rst: New file, based
+ 	on gcc/jit/docs/topics/compatibility.rst.
+ 	* doc/libgdiagnostics/topics/index.rst: Add compatibility.rst.
+ 	* doc/libgdiagnostics/topics/logical-locations.rst (Accessors):
+ 	New section.
+ 	* libgdiagnostics++.h (logical_location::operator bool): New.
+ 	(logical_location::operator==): New.
+ 	(logical_location::operator!=): New.
+ 	(logical_location::get_kind): New.
+ 	(logical_location::get_parent): New.
+ 	(logical_location::get_short_name): New.
+ 	(logical_location::get_fully_qualified_name): New.
+ 	(logical_location::get_decorated_name): New.
+ 	* libgdiagnostics.cc
+ 	(diagnostic_logical_location::get_fully_qualified_name): New.
+ 	(diagnostic_logical_location_get_kind): New entrypoint.
+ 	(diagnostic_logical_location_get_parent): New entrypoint.
+ 	(diagnostic_logical_location_get_short_name): New entrypoint.
+ 	(diagnostic_logical_location_get_fully_qualified_name): New
+ 	entrypoint.
+ 	(diagnostic_logical_location_get_decorated_name): New entrypoint.
+ 	* libgdiagnostics.h
+ 	(LIBDIAGNOSTICS_HAVE_LOGICAL_LOCATION_ACCESSORS): New define.
+ 	(diagnostic_logical_location_get_kind): New entrypoint.
+ 	(diagnostic_logical_location_get_parent): New entrypoint.
+ 	(diagnostic_logical_location_get_short_name): New entrypoint.
+ 	(diagnostic_logical_location_get_fully_qualified_name): New
+ 	entrypoint.
+ 	(diagnostic_logical_location_get_decorated_name): New entrypoint.
+ 	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_1): New.
+ 
+ 2025-05-06  Shreya Munnangi  <smunnangi1@ventanamicro.com>
+ 
+ 	PR middle-end/114512
+ 	* config/riscv/bitmanip.md (bext* patterns): New patterns for
+ 	bext recognition plus splitter for extracting variable bit from
+ 	a constant.
+ 	* config/riscv/predicates.md (bitpos_mask_operand): New predicate.
+ 
+ 2025-05-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new
+ 	combine to convert vec_duplicate + vadd.vv to vaddvx on GR2VR
+ 	cost.
+ 	* config/riscv/riscv.cc (riscv_rtx_costs): Take care of the cost
+ 	when vec_dup and vadd v, vec_dup(x).
+ 	* config/riscv/vector-iterators.md: Add new iterator for vx.
+ 
+ 2025-05-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-protos.h (get_gr2vr_cost): Add new decl to
+ 	get the cost of gr2vr.
+ 	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
+ 	Leverage the helper function to get the cost of gr2vr.
+ 	* config/riscv/riscv.cc (riscv_register_move_cost): Ditto.
+ 	(riscv_builtin_vectorization_cost): Ditto.
+ 	(get_gr2vr_cost): Add new impl of the helper function.
+ 
+ 2025-05-06  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-opts.h (RVV_GR2VR_COST_UNPROVIDED): Add
+ 	new macro to indicate the param is not provided.
+ 	* config/riscv/riscv.opt: Add new option --pararm=gpr2vr-cost.
+ 
+ 2025-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/1157777
+ 	* tree-vectorizer.h (_slp_tree::avoid_stlf_fail): New member.
+ 	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize it.
+ 	(vect_print_slp_tree): Dump it.
+ 	* tree-vect-data-refs.cc (vect_slp_analyze_instance_dependence):
+ 	For dataflow dependent loads of a store check whether there's
+ 	a cross-iteration data dependence that for sure prohibits
+ 	store-to-load forwarding and mark involved loads.
+ 	* tree-vect-stmts.cc (get_group_load_store_type): For avoid_stlf_fail
+ 	marked loads use VMAT_ELEMENTWISE.
+ 
+ 2025-05-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/120074
+ 	* gimple-fold.cc (fold_truth_andor_for_ifcombine): For
+ 	lsignbit && l_xor case, punt if ll_bitsize != lr_bitsize.  Similarly
+ 	for rsignbit && r_xor case, punt if rl_bitsize != rr_bitsize.
+ 	Formatting fix.
+ 
+ 2025-05-06  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_tls_index): Add ifdef.
+ 
+ 2025-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120031
+ 	* match.pd ((nop_outer_cast)-(inner_cast)var -> -(outer_cast)(var)):
+ 	Allow inner conversions that are not widenings when the outer
+ 	type is unsigned.
+ 
+ 2025-05-06  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR pch/14940
+ 	* config/i386/host-mingw32.cc (mingw32_gt_pch_use_address):
+ 	Replace the loop that attempted to map the PCH only to its
+ 	original address with more adaptive operations
+ 
+ 2025-05-06  Julian Waters  <tanksherman27@gmail.com>
+ 	    Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Uroš Bizjak  <ubizjak@gmail.com>
+ 	    Liu Hao  <lh_mouse@126.com>
+ 
+ 	* config/i386/i386.cc (ix86_legitimate_constant_p): Handle new UNSPEC.
+ 	(legitimate_pic_operand_p): Handle new UNSPEC.
+ 	(legitimate_pic_address_disp_p): Handle new UNSPEC.
+ 	(ix86_legitimate_address_p): Handle new UNSPEC.
+ 	(ix86_tls_index_symbol): New symbol for _tls_index.
+ 	(ix86_tls_index): Handle creation of _tls_index symbol.
+ 	(legitimize_tls_address): Create thread local access sequence.
+ 	(output_pic_addr_const): Handle new UNSPEC.
+ 	(i386_output_dwarf_dtprel): Handle new UNSPEC.
+ 	(i386_asm_output_addr_const_extra): Handle new UNSPEC.
+ 	* config/i386/i386.h (TARGET_WIN32_TLS): Define.
+ 	* config/i386/i386.md: New UNSPEC.
+ 	* config/i386/predicates.md: Handle new UNSPEC.
+ 	* config/mingw/mingw32.h (TARGET_WIN32_TLS): Define.
+ 	(TARGET_ASM_SELECT_SECTION): Define.
+ 	(DEFAULT_TLS_SEG_REG): Define.
+ 	* config/mingw/winnt.cc (mingw_pe_select_section): Select proper TLS section.
+ 	(mingw_pe_unique_section): Handle TLS section.
+ 	* config/mingw/winnt.h (mingw_pe_select_section): Declare.
+ 	* configure: Regenerate.
+ 	* configure.ac: New check for broken linker thread local support
+ 
+ 2025-05-05  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/119971
+ 	* config/riscv/bitmanip.md (rotation with masked count): Rewrite
+ 	as define_insn patterns.  Fix formatting.
+ 	* config/riscv/riscv.md (shift with masked count): Similarly.
+ 
+ 2025-05-05  Uros Bizjak  <ubizjak@gmail.com>
+ 	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR target/120019
+ 	* config/i386/i386.cc (ix86_print_operand): Handle 'v' operand
+ 	modifier to emit segment override prefix.
+ 	* config/i386/i386.md (*strmovdi_rex_1): Use %v operand modifier
+ 	to emit segment override prefix.
+ 	(*strmovsi_1): Ditto.
+ 	(*strmovhi_1): Ditto.
+ 	(*strmovqi_1): Ditto.
+ 	(*rep_movdi_rex64): Ditto.
+ 	(*rep_movsi): Ditto.
+ 	(*rep_movqi): Ditto.
+ 
+ 2025-05-05  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/120048
+ 	* ipa-cp.cc (ipcp_store_vr_results): Check for UNDEFINED.
+ 
+ 2025-05-05  Kyle Huey  <khuey@kylehuey.com>
+ 
+ 	* dwarf2out.cc (resolve_addr_in_expr): Propagate dtprel into the address
+ 	table when appropriate.
+ 
+ 2025-05-05  Simon Martin  <simon@nasilyan.com>
+ 
+ 	PR c++/118163
+ 	PR c++/118392
+ 	* diagnostic.cc (diagnostic_context::initialize): Initialize
+ 	m_diagnostic_groups.m_inhibiting_notes_from.
+ 	(diagnostic_context::inhibit_notes_in_group): New.
+ 	(diagnostic_context::notes_inhibited_in_group): New
+ 	(diagnostic_context::report_diagnostic): Call
+ 	inhibit_notes_in_group and notes_inhibited_in_group.
+ 	(diagnostic_context::end_group): Call inhibit_notes_in_group.
+ 	(diagnostic_context::pop_nesting_level): Ditto.
+ 	* diagnostic.h (diagnostic_context::m_diagnostic_groups): Add
+ 	member to track the depth at which a warning has been inhibited.
+ 	(diagnostic_context::notes_inhibited_in_group): Declare.
+ 	(diagnostic_context::inhibit_notes_in_group): Declare.
+ 	* doc/ux.texi: Document diagnostic_group behavior with regards
+ 	to inhibited warnings.
+ 
+ 2025-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* config/i386/i386.md (truncsfbf2): Fix comment typo,
+ 	unsafte -> unsafe.
+ 
+ 2025-05-05  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/genrvv-type-indexer.cc: Apply clang-format to the
+ 	file.
+ 
+ 2025-05-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config.gcc (riscv): Add riscv-vect-permcost.o to extra_objs.
+ 	* config/riscv/riscv-passes.def (pass_vector_permcost): Add new pass.
+ 	* config/riscv/riscv-protos.h (make_pass_vector_permconst): Declare.
+ 	* config/riscv/riscv-vect-permconst.cc: New file.
+ 	* config/riscv/t-riscv: Add build rule for riscv-vect-permcost.o
+ 
+ 2025-05-04  Jin Ma  <jinma@linux.alibaba.com>
+ 	    Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* config/riscv/riscv.cc (riscv_print_operand): Add H.
+ 	* doc/extend.texi: Document for H.
+ 
+ 2025-05-04  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_register_move_cost): Handle
+ 	subclasses with vector registers as well.
+ 
+ 2025-05-04  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/119900
+ 	* cgraph.cc (cgraph_edge::maybe_hot_p): Add
+ 	a variant accepting a sreal scale; use reliability of
+ 	profile.
+ 	* cgraph.h (cgraph_edge::maybe_hot_p): Declare
+ 	a varaint accepting a sreal scale.
+ 	* ipa-inline.cc (callee_speedup): New function.
+ 	(want_inline_small_function_p): add early return
+ 	and avoid duplicated lookup of summaries; use scaled
+ 	maybe_hot predicate.
+ 
+ 2025-05-04  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_emit_frm_mode_set): Refactor
+ 	the frm mode set by removing fsrmsi_restore_volatile.
+ 	* config/riscv/vector-iterators.md (unspecv): Remove as
+ 	unnecessary.
+ 	* config/riscv/vector.md (fsrmsi_restore_volatile): Ditto.
+ 
+ 2025-05-03  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (unspec_pcmp_p): New function.
+ 	(ix86_rtx_costs): Cost VEC_MERGE more realistically.
+ 
+ 2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/120059
+ 	* simplify-rtx.cc (simplify_with_subreg_not): Check the result
+ 	of simplify_gen_subreg.
+ 
+ 2025-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 	    Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR c/117023
+ 	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
+ 	For nonnull_if_nonzero attribute check also arg2 range if it doesn't
+ 	include zero and in that case call add_nonzero too.
+ 
+ 2025-05-02  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Revert:
+ 	2025-04-21  Matthew Fortune  <matthew.fortune@imgtec.com>
+ 
+ 	* config/mips/mips.cc (mips_option_override): Error out for
+ 	-mmicromips -mmsa.
+ 
+ 2025-05-02  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/119900
+ 	* config/i386/i386.cc (ix86_can_change_mode_class): Add TODO
+ 	comment.
+ 	(ix86_rtx_costs): Make VEC_SELECT equivalent to SUBREG cost 1.
+ 
+ 2025-05-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120012
+ 	* doc/invoke.texi: Document C++20 aggregate fix.
+ 	* common.opt: Likewise.
+ 
+ 2025-05-02  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/60336
+ 	* config/i386/i386.cc (ix86_warn_parameter_passing_abi):
+ 	If no target, check the current TU.
+ 
+ 2025-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/arc/arc.cc (TARGET_LRA_P): Remove define.
+ 	* config/gcn/gcn.cc (TARGET_LRA_P): Likewise.
+ 
+ 2025-05-02  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR middle-end/117091
+ 	* tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement):
+ 	Remove warning about using different algorithms.
+ 
+ 2025-05-02  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
+ 	Modify the dynamic programming algorithm to take is_beneficial()
+ 	into account earlier.  To do this efficiently, copy some logic
+ 	from is_beneficial() here.  Add detailed comments about how the
+ 	DP algorithm works.
+ 	(bit_test_cluster::can_be_handled): Check that the cluster range
+ 	is >, not >= BITS_IN_WORD.  Remove the
+ 	"vec<cluster *> &, unsigned, unsigned" overloaded variant since
+ 	we no longer need it.
+ 	(bit_test_cluster::is_beneficial): Add a comment that this
+ 	function is closely tied to m_max_case_bit_tests.  Remove the
+ 	"vec<cluster *> &, unsigned, unsigned" overloaded variant since
+ 	we no longer need it.
+ 	* tree-switch-conversion.h: Remove the vec overloaded variants
+ 	of bit_test_cluster::is_beneficial and
+ 	bit_test_cluster::can_be_handled.
+ 
+ 2025-05-02  Filip Kastl  <fkastl@suse.cz>
+ 
+ 	PR middle-end/117091
+ 	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests_fast):
+ 	Remove function.
+ 	(bit_test_cluster::find_bit_tests_slow): Remove function.
+ 	(bit_test_cluster::find_bit_tests): We don't need to decide
+ 	between slow and fast so just put the modified (no longer) slow
+ 	algorithm here.
+ 
+ 2025-05-02  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-sve.md (vec_extract<mode><Vel>):
+ 	Prevent the emission of pfalse+lastb for VLS.
+ 
+ 2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/118617
+ 	* tree-vect-generic.cc (expand_vector_conversion): Have 2 elements
+ 	as internal storage for converts.
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Likewise.
+ 
+ 2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/118659
+ 	* tree-ssanames.cc (get_known_nonzero_bits_1): Use
+ 	wi::bit_and_not instead of `a & ~b`.
+ 
+ 2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/118090
+ 	* ccmp.cc (get_compare_parts): Remove the up argument.
+ 	(expand_ccmp_next): Update call to get_compare_parts.
+ 	(expand_ccmp_expr_1): Likewise.
+ 
+ 2025-05-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	* common.opt.urls: Regenerate.
+ 
+ 2025-05-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	* doc/invoke.texi: Add -fabi-version detail.
+ 	* common.opt: Likewise.
+ 
+ 2025-05-01  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-ssa-phiopt.cc (phiopt_early_allow): Only allow a sequence
+ 	with one statement for MIN/MAX and the op was MIN/MAX.
+ 
+ 2025-05-01  Ayan Shafqat  <ayan.x.shafqat@gmail.com>
+ 
+ 	* config/aarch64/arm_acle.h (__sqrt, __sqrtf): New function.
+ 
+ 2025-05-01  Ayan Shafqat  <ayan.x.shafqat@gmail.com>
+ 
+ 	* config/aarch64/aarch64-simd-builtins.def: Change
+ 	BUILTIN_VHSDF_DF to BUILTIN_VHSDF_HSDF.
+ 
+ 2025-05-01  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/119162
+ 	* fold-const.cc (maybe_nonzero_address): Return 1 for non-symtab
+ 	vars if folding_cxx_constexpr.
+ 
+ 2025-05-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-stmts.cc (vectorizable_conversion): Remove non-SLP
+ 	paths.
+ 
+ 2025-05-01  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Look
+ 	at the original stmt.
+ 
+ 2025-05-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* combine.cc (try_combine): Sets which satisfy set_noop_p can go
+ 	to i2 unless i3 is a jump and the other set is not.
+ 
+ 2025-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR target/120042
+ 	* tree-vectorizer.h: Include dominance.h.
+ 
+ 2025-04-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* prime-paths.cc (limit_checked_add): Remove redundant trailing
+ 	';'.
+ 	(enters_through_p): Likewise.
+ 
+ 2025-04-30  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc
+ 	(sarif_serialization_format_json::write_to_file): New.
+ 	(sarif_builder::m_formatted): Replace field with...
+ 	(sarif_builder::m_serialization_format): ...this.
+ 	(sarif_builder::sarif_builder): Update for field change.
+ 	(sarif_builder::flush_to_file): Call m_serialization_format's
+ 	write_to_file vfunc.
+ 	(sarif_output_format::sarif_output_format): Replace param
+ 	"formatted" with "serialization_format".
+ 	(sarif_stream_output_format::sarif_output_format): Likewise.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Make a
+ 	sarif_serialization_format_json and pass it to
+ 	diagnostic_output_format_init_sarif.
+ 	(diagnostic_output_format_open_sarif_file): Split out into...
+ 	(diagnostic_output_file::try_to_open): ...this, adding
+ 	"serialization_kind" param.
+ 	(diagnostic_output_format_init_sarif_file): Update for new param
+ 	to diagnostic_output_format_open_sarif_file.  Make a
+ 	sarif_serialization_format_json and pass it to
+ 	diagnostic_output_format_init_sarif.
+ 	(diagnostic_output_format_init_sarif_stream): Make a
+ 	sarif_serialization_format_json and pass it to
+ 	diagnostic_output_format_init_sarif.
+ 	(make_sarif_sink): Replace param "formatted" with "serialization".
+ 	(selftest::test_make_location_object): Update for changes to
+ 	sarif_builder ctor.
+ 	* diagnostic-format-sarif.h (enum class sarif_serialization): New.
+ 	(diagnostic_output_format_open_sarif_file): Add param
+ 	"serialization_kind".
+ 	(class sarif_serialization_format): New.
+ 	(class sarif_serialization_format_json): New.
+ 	(make_sarif_sink): Replace param "formatted" with
+ 	"serialization_format".
+ 	* diagnostic-output-file.h (diagnostic_output_file::try_to_open):
+ 	New decl.
+ 	* diagnostic.h (enum diagnostics_output_format): Tweak comments.
+ 	* doc/invoke.texi (-fdiagnostics-add-output): Add "serialization"
+ 	param to sarif scheme.
+ 	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for change
+ 	to make_sarif_sink.
+ 	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add
+ 	"serialization" param and pass it on to make_sarif_sink.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119960
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Sanity
+ 	check dominance check on operand defs.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119960
+ 	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
+ 	Handle cases where defs from multiple BBs are ordered
+ 	by their dominance relation.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (get_later_stmt): Robustify against
+ 	stmts in different BBs, assert when they are unordered.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119960
+ 	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
+ 	Handle cases where defs from multiple BBs are ordered
+ 	by their dominance relation.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/120006
+ 	* tree-ssa-structalias.cc (find_func_clobbers): Handle
+ 	strdup, strndup, realloc, index, strchr, strrchr, memchr,
+ 	strstr, strpbrk builtins like find_func_aliases does.
+ 
+ 2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120003
+ 	* tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
+ 	Allow block re-use but do not enlarge the path beyond such a
+ 	re-use.
+ 
+ 2025-04-30  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2025-04-30  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z.
+ 
+ 2025-04-30  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	PR target/119832
+ 	* config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): New.
+ 	(riscv_mode_confluence): New.
+ 	(TARGET_MODE_CONFLUENCE): Define to riscv_mode_confluence.
+ 
+ 2025-04-30  Jerry Zhang Jian  <jerry.zhangjian@sifive.com>
+ 
+ 	* common/config/riscv/riscv-common.cc: Add Zve32x depends on Zicsr
+ 
+ 2025-04-30  Jennifer Schmitz  <jschmitz@nvidia.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_emit_sve_pred_move):
+ 	Fold LD1/ST1 with ptrue to LDR/STR for 128-bit VLS.
+ 
+ 2025-04-30  yulong  <shiyulong@iscas.ac.cn>
+ 
+ 	* config/riscv/constraints.md (Ou01): New constraint.
+ 	(Ou02): Ditto.
+ 	* config/riscv/generic-vector-ooo.md (vec_sf_vcp): New reservation.
+ 	* config/riscv/genrvv-type-indexer.cc (main): New type.
+ 	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Add xsfvcp strings.
+ 	* config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vcix_se_def):
+ 	New function.
+ 	(struct sf_vcix_def): Ditto.
+ 	(SHAPE): Ditto.
+ 	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ 	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_X2_U_OPS): New type.
+ 	(DEF_RVV_X2_WU_OPS): Ditto.
+ 	(vuint8mf8_t): Ditto.
+ 	(vuint8mf4_t): Ditto.
+ 	(vuint8mf2_t): Ditto.
+ 	(vuint8m1_t): Ditto.
+ 	(vuint8m2_t): Ditto.
+ 	(vuint8m4_t): Ditto.
+ 	(vuint16mf4_t): Ditto.
+ 	(vuint16mf2_t): Ditto.
+ 	(vuint16m1_t): Ditto.
+ 	(vuint16m2_t): Ditto.
+ 	(vuint16m4_t): Ditto.
+ 	(vuint32mf2_t): Ditto.
+ 	(vuint32m1_t): Ditto.
+ 	(vuint32m2_t): Ditto.
+ 	(vuint32m4_t): Ditto.
+ 	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_X2_U_OPS): New builtins
+ 	def.
+ 	(DEF_RVV_X2_WU_OPS): Ditto.
+ 	(rvv_arg_type_info::get_scalar_float_type): Ditto.
+ 	(function_instance::modifies_global_state_p): Ditto.
+ 	* config/riscv/riscv-vector-builtins.def (v_x): New base type.
+ 	(i): Ditto.
+ 	(v_i): Ditto.
+ 	(xv): Ditto.
+ 	(iv): Ditto.
+ 	(fv): Ditto.
+ 	(vvv): Ditto.
+ 	(xvv): Ditto.
+ 	(ivv): Ditto.
+ 	(fvv): Ditto.
+ 	(vvw): Ditto.
+ 	(xvw): Ditto.
+ 	(ivw): Ditto.
+ 	(fvw): Ditto.
+ 	(v_vv): Ditto.
+ 	(v_xv): Ditto.
+ 	(v_iv): Ditto.
+ 	(v_fv): Ditto.
+ 	(v_vvv): Ditto.
+ 	(v_xvv): Ditto.
+ 	(v_ivv): Ditto.
+ 	(v_fvv): Ditto.
+ 	(v_vvw): Ditto.
+ 	(v_xvw): Ditto.
+ 	(v_ivw): Ditto.
+ 	(v_fvw): Ditto.
+ 	(x2_vector): Ditto.
+ 	(scalar_float): Ditto.
+ 	* config/riscv/riscv-vector-builtins.h (enum required_ext): New extension.
+ 	(required_ext_to_isa_name): Ditto.
+ 	(required_extensions_specified): Ditto.
+ 	(struct rvv_arg_type_info): Ditto.
+ 	(struct function_group_info): Ditto.
+ 	* config/riscv/riscv.md: New attr.
+ 	* config/riscv/sifive-vector-builtins-bases.cc (class sf_vc): New function.
+ 	(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_vc): Ditto.
+ 	* config/riscv/sifive-vector.md (@sf_vc_x_se<mode>): New RTL mode.
+ 	(@sf_vc_v_x_se<mode>): Ditto.
+ 	(@sf_vc_v_x<mode>): Ditto.
+ 	(@sf_vc_i_se<mode>): Ditto.
+ 	(@sf_vc_v_i_se<mode>): Ditto.
+ 	(@sf_vc_v_i<mode>): Ditto.
+ 	(@sf_vc_vv_se<mode>): Ditto.
+ 	(@sf_vc_v_vv_se<mode>): Ditto.
+ 	(@sf_vc_v_vv<mode>): Ditto.
+ 	(@sf_vc_xv_se<mode>): Ditto.
+ 	(@sf_vc_v_xv_se<mode>): Ditto.
+ 	(@sf_vc_v_xv<mode>): Ditto.
+ 	(@sf_vc_iv_se<mode>): Ditto.
+ 	(@sf_vc_v_iv_se<mode>): Ditto.
+ 	(@sf_vc_v_iv<mode>): Ditto.
+ 	(@sf_vc_fv_se<mode>): Ditto.
+ 	(@sf_vc_v_fv_se<mode>): Ditto.
+ 	(@sf_vc_v_fv<mode>): Ditto.
+ 	(@sf_vc_vvv_se<mode>): Ditto.
+ 	(@sf_vc_v_vvv_se<mode>): Ditto.
+ 	(@sf_vc_v_vvv<mode>): Ditto.
+ 	(@sf_vc_xvv_se<mode>): Ditto.
+ 	(@sf_vc_v_xvv_se<mode>): Ditto.
+ 	(@sf_vc_v_xvv<mode>): Ditto.
+ 	(@sf_vc_ivv_se<mode>): Ditto.
+ 	(@sf_vc_v_ivv_se<mode>): Ditto.
+ 	(@sf_vc_v_ivv<mode>): Ditto.
+ 	(@sf_vc_fvv_se<mode>): Ditto.
+ 	(@sf_vc_v_fvv_se<mode>): Ditto.
+ 	(@sf_vc_v_fvv<mode>): Ditto.
+ 	(@sf_vc_vvw_se<mode>): Ditto.
+ 	(@sf_vc_v_vvw_se<mode>): Ditto.
+ 	(@sf_vc_v_vvw<mode>): Ditto.
+ 	(@sf_vc_xvw_se<mode>): Ditto.
+ 	(@sf_vc_v_xvw_se<mode>): Ditto.
+ 	(@sf_vc_v_xvw<mode>): Ditto.
+ 	(@sf_vc_ivw_se<mode>): Ditto.
+ 	(@sf_vc_v_ivw_se<mode>): Ditto.
+ 	(@sf_vc_v_ivw<mode>): Ditto.
+ 	(@sf_vc_fvw_se<mode>): Ditto.
+ 	(@sf_vc_v_fvw_se<mode>): Ditto.
+ 	(@sf_vc_v_fvw<mode>): Ditto.
+ 	* config/riscv/vector-iterators.md: New iterator.
+ 	* config/riscv/vector.md: New vtype.
+ 
+ 2025-04-29  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (cs_interesting_for_ipcp_p): Fix handling of uninitialized
+ 	counts and 0 IPA cost wrt flag_profile_partial_training.
+ 
+ 2025-04-29  Pengfei Li  <Pengfei.Li2@arm.com>
+ 
+ 	* simplify-rtx.cc (non_paradoxical_subreg_not_p): New function
+ 	for pattern match of (subreg (not X)).
+ 	(simplify_with_subreg_not): New function for simplification.
+ 
+ 2025-04-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111657
+ 	* config/i386/i386-expand.cc (alg_usable_p): For Pmode != word_mode
+ 	reject rep_prefix_{1,4,8}_byte algorithms with src_as in the
+ 	non-default address space.
+ 	* config/i386/i386-protos.h (ix86_check_movs): New prototype.
+ 	* config/i386/i386.cc (ix86_check_movs): New function.
+ 	(ix86_print_operand) [case '^']: Remove excess check for TARGET_64BIT.
+ 	* config/i386/i386.md (strmov): For Pmode != word_mode expand with
+ 	gen_strmov_single only when operands[3] (source) is in the default
+ 	address space.
+ 	(*strmovdi_rex_1) Use ix86_check_movs.  Remove %^ from asm template.
+ 	(*strmovsi_1): Ditto.
+ 	(*strmovhi_1): DItto.
+ 	(*strmovqi_1): Ditto.
+ 	(*rep_movdi_rex64): Ditto.
+ 	(*rep_movsi): Ditto.
+ 	(*rep_movqi): Ditto.
+ 
+ 2025-04-29  Zhijin Zeng  <zengzhijin@linux.spacemit.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_register_move_cost): Use
+ 	reg_class_subset_p to check the reg class.
+ 
+ 2025-04-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119997
+ 	* vec.h (vec<T, A, vl_embed>::last): Provide const overload.
+ 	(vec<T, va_heap, vl_ptr>::last): Likewise.
+ 	* tree-ssa-sccvn.h (vn_pp_nary_for_addr): Declare.
+ 	* tree-ssa-sccvn.cc (vn_pp_nary_for_addr): Split out from ...
+ 	(vn_reference_lookup): ... here.
+ 	(vn_reference_insert): ... and duplicate here.  Do not handle
+ 	zero offset as POINTER_PLUS_EXPR.
+ 	* tree-ssa-pre.cc (compute_avail): Implement
+ 	ADDR_EXPR-as-POINTER_PLUS_EXPR special casing.
+ 
+ 2025-04-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/111657
+ 	* config/i386/i386-expand.cc (alg_usable_p): Remove have_as bool
+ 	argument and add dst_as and src_as address space arguments.  Reject
+ 	libcall algorithm with dst_as and src_as in the non-default address
+ 	spaces.  Reject rep_prefix_{1,4,8}_byte algorithms with dst_as in
+ 	the non-default address space.
+ 	(decide_alg): Remove have_as bool argument and add dst_as and src_as
+ 	address space arguments.  Update calls to alg_usable_p.
+ 	(ix86_expand_set_or_cpymem): Update call to decide_alg.
+ 	* config/i386/i386.md (strmov): Do not fail if operand[3] (source)
+ 	is in the non-default address space.  Expand with gen_strmov_singleop
+ 	only when operand[1] (destination) is in the default address space.
+ 	(*strmovdi_rex_1): Determine memory operands from insn pattern.
+ 	Allow only when destination is in the default address space.
+ 	Rewrite asm template to use explicit operands.
+ 	(*strmovsi_1): Ditto.
+ 	(*strmovhi_1): DItto.
+ 	(*strmovqi_1): Ditto.
+ 	(*rep_movdi_rex64): Ditto.
+ 	(*rep_movsi): Ditto.
+ 	(*rep_movqi): Ditto.
+ 	(*strsetdi_rex_1): Determine memory operands from insn pattern.
+ 	Allow only when destination is in the default address space.
+ 	(*strsetsi_1): Ditto.
+ 	(*strsethi_1): Ditto.
+ 	(*strsetqi_1): Ditto.
+ 	(*rep_stosdi_rex64): Ditto.
+ 	(*rep_stossi): Ditto.
+ 	(*rep_stosqi): Ditto.
+ 
+ 2025-04-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/119985
+ 	* target.def: Remove TARGET_PROMOTE_FUNCTION_RETURN reference.
+ 	* doc/tm.texi: Regenerated.
+ 
+ 2025-04-29  hongtao.liu  <hongtao.liu@intel.com>
+ 
+ 	PR gcov-profile/118581
+ 	* auto-profile.cc (autofdo_source_profile::get_count_info):
+ 	Overload the function with parameter gimple location instead
+ 	of stmt.
+ 	(afdo_set_bb_count): For !has_annotated BB, Check single
+ 	successors PHIs corresponding to the block and use those
+ 	count.
+ 
+ 2025-04-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/78685
+ 	* doc/invoke.texi (-Og): Reword.
+ 
+ 2025-04-29  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_update_stack_alignment): Skip sub-RTXes
+ 	of the memory operand if stack access register is not mentioned in
+ 	the operand.
+ 
+ 2025-04-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/92080
+ 	PR target/117839
+ 	* config/i386/i386-features.cc (ix86_place_single_vector_set):
+ 	New function.
+ 	(remove_partial_avx_dependency): Use it.
+ 	(ix86_get_vector_load_mode): New function.
+ 	(replace_vector_const): Likewise.
+ 	(remove_redundant_vector_load): Likewise.
+ 	(pass_data_remove_redundant_vector_load): Likewise.
+ 	(pass_remove_redundant_vector_load): Likewise.
+ 	(make_pass_remove_redundant_vector_load): Likewise.
+ 	* config/i386/i386-passes.def: Add
+ 	pass_remove_redundant_vector_load after
+ 	pass_remove_partial_avx_dependency.
+ 	* config/i386/i386-protos.h
+ 	(make_pass_remove_redundant_vector_load): New.
+ 	* config/i386/i386.cc (ix86_modes_tieable_p): Return true for
+ 	narrower non-scalar-integer modes in SSE registers.
+ 
+ 2025-04-29  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/117547
+ 	* config/i386/i386-expand.cc (ix86_expand_unsigned_small_int_cst_argument):
+ 	New function.
+ 	(ix86_expand_args_builtin): Call
+ 	ix86_expand_unsigned_small_int_cst_argument to expand the argument
+ 	before calling fixup_modeless_constant.
+ 	(ix86_expand_round_builtin): Likewise.
+ 	(ix86_expand_special_args_builtin): Likewise.
+ 	(ix86_expand_builtin): Likewise.
+ 
+ 2025-04-29  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC):
+ 	Remove other processor except for GLC since this one is only
+ 	for GLC.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/97111
+ 	* doc/invoke.texi: Add -Wanalyzer-throw-of-unexpected-type.
+ 	* gimple.h (gimple_call_nothrow_p): Make arg const.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-json.cc: Drop include of "make-unique.h".
+ 	Replace uses of ::make_unique with std::make_unique.
+ 	* diagnostic-format-sarif.cc: Likewise.
+ 	* diagnostic-format-text.cc: Likewise.
+ 	* diagnostic.cc: Likewise.
+ 	* dumpfile.cc: Likewise.
+ 	* gcc-attribute-urlifier.cc: Likewise.
+ 	* gcc-urlifier.cc: Likewise.
+ 	* json-parsing.cc: Likewise.
+ 	* json.cc: Likewise.
+ 	* lazy-diagnostic-path.cc: Likewise.
+ 	* libgdiagnostics.cc: Likewise.
+ 	* libsarifreplay.cc: Likewise.
+ 	* lto-wrapper.cc: Likewise.
+ 	* make-unique.h: Delete.
+ 	* opts-diagnostic.cc: Drop include of "make-unique.h".
+ 	Replace uses of ::make_unique with std::make_unique.
+ 	* pretty-print.cc: Likewise.
+ 	* text-art/style.cc: Likewise.
+ 	* text-art/styled-string.cc: Likewise.
+ 	* text-art/table.cc: Likewise.
+ 	* text-art/tree-widget.cc: Likewise.
+ 	* text-art/widget.cc: Likewise.
+ 	* timevar.cc: Likewise.
+ 	* toplev.cc: Likewise.
+ 	* tree-diagnostic-client-data-hooks.cc: Likewise.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* pass_manager.h (class pass_manager): Add "m_" prefix to all pass
+ 	fields.
+ 	* passes.cc (pass_manager::execute_early_local_passes): Update
+ 	for added "m_" prefix.
+ 	(pass_manager::execute_pass_mode_switching): Likewise.
+ 	(pass_manager::finish_optimization_passes): Likewise.
+ 	(pass_manager::pass_manager): Likewise.
+ 	(pass_manager::dump_profile_report): Likewise.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_context::m_opt_permissive): Convert
+ 	from int to diagnostic_option_id.  Update comment.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic.h (diagnostic_context::set_abort_on_error): New.
+ 	(diagnostic_context::m_abort_on_error): Make private.
+ 	(diagnostic_abort_on_error): Delete.
+ 	* opts.cc (setup_core_dumping): Update for above changes.
+ 
+ 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* diagnostic-format-sarif.cc (sarif_builder::get_opts): New
+ 	accessor.
+ 	(sarif_builder::get_version): Update for...
+ 	(sarif_builder::m_version): Replace this field...
+ 	(sarif_builder::m_m_sarif_gen_opts): ...with this.
+ 	(sarif_builder::sarif_builder): Replace version with
+ 	sarif_gen_opts throughout.
+ 	(sarif_builder::make_top_level_object): Use get_version.
+ 	(sarif_output_format::sarif_output_format): Replace version with
+ 	sarif_gen_opts throughout.
+ 	(sarif_stream_output_format::sarif_stream_output_format):
+ 	Likewise.
+ 	(sarif_file_output_format::sarif_file_output_format): Likewise.
+ 	(diagnostic_output_format_init_sarif_stderr): Drop version param
+ 	and use default for sarif_generation_options instead.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(make_sarif_sink): Replace version with sarif_gen_opts throughout.
+ 	(sarif_generation_options::sarif_generation_options): New.
+ 	(selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context):
+ 	Replace version with sarif_gen_opts throughout.
+ 	(selftest::test_make_location_object): Likewise.
+ 	(selftest::test_simple_log): Likewise.
+ 	(selftest::test_simple_log_2): Likewise.
+ 	(selftest::test_message_with_embedded_link): Likewise.
+ 	(selftest::test_message_with_braces): Likewise.
+ 	(selftest::test_buffering): Likewise.
+ 	(selftest::run_tests_per_version): Replace with...
+ 	(selftest::for_each_sarif_gen_option): ...this...
+ 	(selftest::run_line_table_case_tests_per_version): ...and this.
+ 	(selftest::diagnostic_format_sarif_cc_tests): Update to use
+ 	for_each_sarif_gen_option and
+ 	run_line_table_case_tests_per_version.
+ 	* diagnostic-format-sarif.h (enum class sarif_version): Move lower
+ 	down.
+ 	(diagnostic_output_format_init_sarif_stderr): Drop "version"
+ 	param.
+ 	(diagnostic_output_format_init_sarif_file): Likewise.
+ 	(diagnostic_output_format_init_sarif_stream): Likewise.
+ 	(struct sarif_generation_options): New.
+ 	(make_sarif_sink): Add "formatted" param.  Replace version param
+ 	with sarif_gen_opts.
+ 	* diagnostic.cc (diagnostic_output_format_init): Drop hardcoded
+ 	sarif_version::v2_1_0 arguments from calls, which instead use
+ 	the default ctor for sarif_generation_options internally.
+ 	* libgdiagnostics.cc (sarif_sink::sarif_sink): Replace version
+ 	param with sarif_gen_opts, and update for changes to
+ 	make_sarif_sink.
+ 	(diagnostic_manager_add_sarif_sink): Use sarif_gen_opts rather
+ 	than version.
+ 	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise.
+ 	Pass "true" for "formatted" param.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* value-relation.cc (value_relation::swap): New.
+ 	(value_relation::negate): Remove.
+ 	(dom_oracle::next_relation): New.
+ 	(block_relation_iterator::block_relation_iterator): New.
+ 	(block_relation_iterator::get_next_relation): New.
+ 	(dom_oracle::dump): Use iterator.
+ 	* value-relation.h (relation_oracle::next_relation): New.
+ 	(dom_oracle::next_relation): New prototype.
+ 	(class block_relation_iterator): New.
+ 	(FOR_EACH_RELATION_BB): New.
+ 	(FOR_EACH_RELATION_NAME): New.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* range-op-ptr.cc (range_operator::lhs_op1_relation): Add
+ 	prange/prange/irange (PPI) default.
+ 	(pointer_plus_operator::lhs_op1_relation): New.
+ 	* range-op.cc (range_op_handler::lhs_op1_relation): Add RO_PPI case.
+ 	* range-op.h (range_op_handler::lhs_op1_relation): Add prototype.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Use a
+ 	new local variable for intermediate relation results.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	* gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): Pass
+ 	'this' as the range-query to the inferred range constructor.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/95801
+ 	* range-op.cc (operator_div::op2_range): New.
+ 
+ 2025-04-28  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/119712
+ 	* value-range.cc (range_bitmask::adjust_range): Delete.
+ 	(irange::set_range_from_bitmask): Integrate adjust_range.
+ 	(irange::update_bitmask): Do nothing if bitmask doesnt change.
+ 	(irange:intersect_bitmask): Do not call adjust_range. Exit if there
+ 	is no second bitmask.
+ 	* value-range.h (adjust_range): Remove prototype.
+ 
+ 2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/67797
+ 	* tree-tailcall.cc (find_tail_calls): Add support for ERF_RETURNS_ARG.
+ 
+ 2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* tree-cfg.cc (verify_gimple_cond): Error out if the comparison
+ 	throws.
+ 
+ 2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR c/119432
+ 	* tree-pretty-print.cc (op_symbol_code): For LROTATE_EXPR,
+ 	output __ROTATE_LEFT for gimple.
+ 	For RROTATE_EXPR output __ROTATE_RIGHT for gimple.
+ 
+ 2025-04-28  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* rtl.h (native_decode_int): Declare.
+ 	* simplify-rtx.cc (native_decode_int): New function, split out from...
+ 	(native_decode_rtx): ...here.
+ 
+ 2025-04-28  H.J. Lu  <hjl.tools@gmail.com>
+ 	    Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/109780
+ 	PR target/109093
+ 	* config/i386/i386.cc (stack_access_data): New.
+ 	(ix86_update_stack_alignment): Likewise.
+ 	(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-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR ipa/119973
+ 	* tree-ssa-structalias.cc (create_variable_info_for):
+ 	Build constraints from DECL_INITIAL directly rather than
+ 	the IPA reference list which is incomplete.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/113207
+ 	* ipa-free-lang-data.cc (fld_type_variant): Add extra checking.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119044
+ 	* tree-predcom.cc (ref_at_iteration): Copy alias info
+ 	from the original ref.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119103
+ 	* tree-ssa-loop-im.cc (in_loop_pipeline): Globalize.
+ 	(compute_invariantness): Override costing when we run
+ 	right before PRE and PRE is enabled.
+ 	(pass_lim::execute): Adjust.
+ 	* tree-vect-patterns.cc (vect_determine_precisions_from_users):
+ 	For variable shift amounts use range information.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* genmatch.cc (::gen_transform): Add in_place parameter.
+ 	Assert it isn't set in unexpected places.
+ 	(possible_noop_convert): New.
+ 	(expr::gen_transform): Support in_place and emit code to
+ 	compute a child in-place when the operation is a conversion.
+ 	(dt_simplify::gen_1): Arrange for an outermost conversion
+ 	to be elided by generating the transform of the operand
+ 	in-place.
+ 	* match.pd (__real cepxi (x) -> cos (x)): Use single_use.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/60779
+ 	* common.opt (fcx-method=): New, map to flag_complex_method.
+ 	(Enum complex_method): New.
+ 	(fcx-limited-range): Alias to -fcx-method=limited-range.
+ 	(fcx-fortran-rules): Alias to -fcx-medhot=fortran.
+ 	* ipa-inline-transform.cc (inline_call): Check flag_complex_method.
+ 	* ipa-inline.cc (can_inline_edge_by_limits_p): Likewise.
+ 	* opts.cc (finish_options): Adjust.
+ 	(set_fast_math_flags): Likewise.
+ 	* doc/invoke.texi (fcx-method=): Document.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/116083
+ 	* stor-layout.cc (layout_type): Compute TYPE_SIZE and
+ 	TYPE_SIZE_UNIT for vector types from the component mode
+ 	sizes.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_analyze_loop_operations): Prune
+ 	all actual analysis and only fail when we discover a not
+ 	SLP covered stmt.
+ 	(vect_analyze_loop_2): Remove path trying without SLP.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-loop.cc (vect_loop_kill_debug_uses): Remove.
+ 	(maybe_set_vectorized_backedge_value): Likewise.
+ 	(vect_transform_loop_stmt): Likewise.  Move dump printing
+ 	to vect_transform_stmt.
+ 	(vect_transform_loop): Remove loop over loop stmts transforming
+ 	them, but retain some DCE code still necessary.
+ 	* tree-vect-stmts.cc (vect_transform_stmt): Dump that
+ 	we're vectorizing a stmt.
+ 
+ 2025-04-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	* params.opt (--param=vect-force-slp): Remove.
+ 	* doc/invoke.texi (--param=vect-force-slp): Likewise.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Assume
+ 	param_vect_force_slp is 1.
+ 	* tree-vect-stmts.cc (vect_analyze_stmt): Likewise.
+ 
+ 2025-04-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/119493
+ 	* tree-tailcall.cc (find_tail_calls): Handle non-gimple_reg_type
+ 	arguments which aren't just passed through for tail recursions
+ 	even for non-musttail calls.
+ 
+ 2025-04-28  LIU Hao  <lh_mouse@126.com>
+ 
+ 	PR target/111107
+ 	* config/i386/cygming.h (STACK_REALIGN_DEFAULT): Copy from sol2.h.
+ 
+ 2025-04-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR c/48274
+ 	PR middle-end/112877
+ 	PR middle-end/118288
+ 	* gimple.cc (gimple_builtin_call_types_compatible_p): Remove the
+ 	targetm.calls.promote_prototypes call.
+ 	* tree.cc (tree_builtin_call_types_compatible_p): Likewise.
+ 
+ 2025-04-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR middle-end/112877
+ 	* calls.cc (initialize_argument_information): Promote small integer
+ 	arguments if TARGET_PROMOTE_PROTOTYPES returns true.
+ 
+ 2025-04-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Extract
+ 	const vector stepped into separated func.
+ 	(expand_const_vector_single_step_npatterns): Add new func
+ 	to take care of single step.
+ 	(expand_const_vector_interleaved_stepped_npatterns): Add new
+ 	func to take care of interleaved step.
+ 	(expand_const_vector_stepped): Add new func to take care of
+ 	const vector stepped.
+ 
+ 2025-04-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector_duplicate_repeating):
+ 	Add new func to take care of vector duplicate with repeating.
+ 	(expand_const_vector_duplicate_default): Add new func to take
+ 	care of default const vector duplicate.
+ 	(expand_const_vector_duplicate): Add new func to take care
+ 	of all const vector duplicate.
+ 	(expand_const_vector): Extract const vector duplicate into
+ 	separated function.
+ 
+ 2025-04-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vec_series): Add new
+ 	func to take care of the const vec_series.
+ 	(expand_const_vector): Extract const vec_series into separated
+ 	function.
+ 
+ 2025-04-27  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/riscv-v.cc (expand_const_vector): Extract
+ 	const vec_duplicate into separated function.
+ 	(expand_const_vec_duplicate): Add new func to take care
+ 	of the const vec_duplicate.
+ 
+ 2025-04-27  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/119549
+ 	* common/config/i386/i386-common.cc (ix86_handle_option):
+ 	Refactor msse4 and mno-sse4.
+ 	* config/i386/i386.opt (msse4): Remove RejectNegative.
+ 	(mno-sse4): Remove the entry.
+ 	* config/i386/i386-options.cc
+ 	(ix86_valid_target_attribute_inner_p): Remove special code
+ 	which handles mno-sse4.
+ 
+ 2025-04-26  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/105275
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Fix cost of FP scalar
+ 	MAX_EXPR and MIN_EXPR
+ 
+ 2025-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* config.gcc (LIST): --enable-obsolete for m32c-elf.
+ 
+ 2025-04-26  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1) <case ZERO_EXTEND>:
+ 	Add simplifcation for and with a constant.
+ 
+ 2025-04-25  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* doc/sourcebuild.texi: Document variadic_mi_thunk effective
+ 	target check.
+ 
+ 2025-04-25  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* doc/sourcebuild.texi: Document effective target
+ 	using_sjlj_exceptions.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* match.pd: Move `(cmp (cond @0 @1 @2) @3)` simplifcation after
+ 	the bool comparison simplifications.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* gimple.h (gimple_cond_make_false): Fix comment.
+ 	(gimple_cond_make_true): Likewise.
+ 	(gimple_cond_true_p): Fix spello for statement in comment.
+ 
+ 2025-04-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	* common.opt: Add ABI v21.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* ipa-icf.cc (sem_function::sem_function): Remove
+ 	the obstack argument version one.
+ 	(sem_variable::sem_variable): Likewise.
+ 	* ipa-icf.h (sem_function): Remove ctor for
+ 	obstack argument only one.
+ 	(sem_variable): Likewise.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* ipa-icf.cc (sem_function::init): Remove assignment of node from itself.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/119811
+ 	* tree-ssa-phiopt.cc: Remove calls.h include.
+ 
+ 2025-04-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR rtl-optimization/116479
+ 	* modulo-sched.cc (doloop_register_get): Reject conditions with
+ 	decrements that are not 1.
+ 
+ 2025-04-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119873
+ 	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
+ 	true if default definition of PARM_DECL SSA_NAME of the same register
+ 	is passed in call saved register in the PARALLEL case either.
+ 
+ 2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
+ 	    Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR target/119737
+ 	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly
+ 	switch sections.
+ 
+ 2025-04-25  Yuriy Kolerov  <Yuriy.Kolerov@synopsys.com>
+ 
+ 	PR target/119122
+ 	* common/config/riscv/riscv-common.cc (riscv_implied_info): Add a rule
+ 	for Zca to C implication.
+ 
+ 2025-04-24  Jakub Jelinek  <jakub@redhat.com>
+ 	    Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	PR target/119873
+ 	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
+ 	true if default definition of PARM_DECL SSA_NAME of the same register
+ 	is passed in call saved register.
+ 	(s390_function_ok_for_sibcall): Adjust comment.
+ 
+ 2025-04-24  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/119919
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Account
+ 	correctly cond_expr and min/max when one of operands is 0 or -1.
+ 
+ 2025-04-24  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR ipa/119924
+ 	* ipa-cp.cc (update_counts_for_self_gen_clones): Use nonzero_p.
+ 	(update_profiling_info): Likewise.
+ 	(update_specialized_profile): Likewise.
+ 
+ 2025-04-24  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/119610
+ 	* config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ 	Add a bytes_below_sp parameter and use it to calculate the CFA
+ 	offsets.  Attach the first SVE CFA note to the move into the
+ 	associated temporary register.
+ 	(aarch64_allocate_and_probe_stack_space): Update calls accordingly.
+ 	Start out with bytes_per_sp set to the frame size and decrement
+ 	it after each allocation.
+ 
+ 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>
+ 
+ 	* 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-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/119711
+ 	* dwarf2out.h (struct dw_val_node): Add u member.
+ 	(struct dw_loc_descr_node): Remove dw_loc_opc, dtprel,
+ 	frame_offset_rel and dw_loc_addr members.
+ 	(dw_loc_opc, dw_loc_dtprel, dw_loc_frame_offset_rel, dw_loc_addr):
+ 	Define.
+ 	(struct dw_attr_struct): Remove dw_attr member.
+ 	(dw_attr): Define.
+ 	* dwarf2out.cc (loc_descr_equal_p_1): Use dw_loc_dtprel instead of
+ 	dtprel.
+ 	(output_loc_operands, new_addr_loc_descr, loc_checksum,
+ 	loc_checksum_ordered): Likewise.
+ 	(resolve_args_picking_1): Use dw_loc_frame_offset_rel instead of
+ 	frame_offset_rel.
+ 	(loc_list_from_tree_1): Likewise.
+ 	(resolve_addr_in_expr): Use dw_loc_dtprel instead of dtprel.
+ 	(copy_deref_exprloc): Copy val_class, val_entry and v members
+ 	instead of whole dw_loc_oprnd1 and dw_loc_oprnd2.
+ 	(optimize_string_length): Copy val_class, val_entry and v members
+ 	instead of whole dw_attr_val.
+ 	(hash_loc_operands): Use dw_loc_dtprel instead of dtprel.
+ 	(compare_loc_operands, compare_locs): Likewise.
+ 
+ 2025-04-24  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	PR target/103750
+ 	* config/i386/sse.md (*<avx512>_cmp<mode>3_and15): New define_insn.
+ 	(*<avx512>_ucmp<mode>3_and15): Ditto.
+ 	(*<avx512>_cmp<mode>3_and3): Ditto.
+ 	(*avx512vl_ucmpv2di3_and3): Ditto.
+ 	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+ 	Change operands[3] predicate to <cmp_imm_predicate>.
+ 	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+ 	Ditto.
+ 	(*<avx512>_cmp<mode>3): Add GET_MODE_NUNITS (<MODE>mode) >= 8
+ 	to the condition.
+ 	(*<avx512>_ucmp<mode>3): Ditto.
+ 	(V48_AVX512VL_4): New mode iterator.
+ 	(VI48_AVX512VL_4): Ditto.
+ 	(V8_AVX512VL_2): Ditto.
+ 
+ 2025-04-23  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* ipa-cp.cc (base_count): Remove.
+ 	(struct caller_statistics): Rename n_hot_calls to n_interesting_calls;
+ 	add called_without_ipa_profile.
+ 	(init_caller_stats): Update.
+ 	(cs_interesting_for_ipcp_p): New function.
+ 	(gather_caller_stats): collect n_interesting_calls and
+ 	called_without_profile.
+ 	(ipcp_cloning_candidate_p): Use n_interesting-calls rather then hot.
+ 	(good_cloning_opportunity_p): Rewrite heuristics when IPA profile is
+ 	present
+ 	(estimate_local_effects): Update.
+ 	(value_topo_info::propagate_effects): Update.
+ 	(compare_edge_profile_counts): Remove.
+ 	(ipcp_propagate_stage): Do not collect base_count.
+ 	(get_info_about_necessary_edges): Record whether function is called
+ 	without profile.
+ 	(decide_about_value): Update.
+ 	(ipa_cp_cc_finalize): Do not initialie base_count.
+ 	* profile-count.cc (profile_count::operator*): New.
+ 	(profile_count::operator*=): New.
+ 	* profile-count.h (profile_count::operator*): Declare
+ 	(profile_count::operator*=): Declare.
+ 	* params.opt: Remove ipa-cp-profile-count-base.
+ 	* doc/invoke.texi: Likewise.
+ 
+ 2025-04-23  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost truth_value
+ 	exprs.
+ 
+ 2025-04-23  liuhongt  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/predicates.md (vector_or_0_or_1s_operand): New predicate.
+ 	(nonimm_or_0_or_1s_operand): Ditto.
+ 	* config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
+ 	Extend the predicate of operands1 to accept 0 or allones
+ 	operands.
+ 	(vcond_mask_<mode><sseintvecmodelower>): Ditto.
+ 	(vcond_mask_v1tiv1ti): Ditto.
+ 	(vcond_mask_<mode><sseintvecmodelower>): Ditto.
+ 	* config/i386/i386.md (mov<mode>cc): Ditto for operands[2] and
+ 	operands[3].
+ 	* config/i386/i386-expand.cc (ix86_expand_sse_fp_minmax):
+ 	Force immediate_operand to register.
+ 
+ 2025-04-22  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add special cases
+ 	for COND_EXPR; make MIN_EXPR, MAX_EXPR, ABS_EXPR and ABSU_EXPR more realistic.
+ 
+ 2025-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119327
+ 	* config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also
+ 	OPTION_MASK_SAVE_TOC_INDIRECT differences.
+ 
+ 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  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* tree-vect-loop.cc (vectorizable_induction): Add target support
+ 	checks for vectorized MULT_EXPR and FLOAT_EXPR where necessary for
+ 	scalable types.
+ 	Prefer target_supports_op_p over directly_supports_p for these tree
+ 	codes.
+ 	(vectorizable_nonlinear_induction): Fix a doc comment while I'm
+ 	here.
+ 
+ 2025-04-22  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	* config/aarch64/aarch64.md: Update cbranch, cstore, fcmp
+ 	and fcmpe to use the GPF_F16 iterator for floating-point
+ 	modes.
+ 
+ 2025-04-22  Spencer Abson  <spencer.abson@arm.com>
+ 
+ 	PR target/117013
+ 	* config/aarch64/aarch64-protos.h (aarch64_expand_fp_spaceship):
+ 	Declare optab expander function for floating-point types.
+ 	* config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship):
+ 	Define optab expansion for floating-point types (new function).
+ 	* config/aarch64/aarch64.md (spaceship<mode>4):
+ 	Add define_expands for spaceship<mode>4 on integer and
+ 	floating-point types.
+ 
+ 2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-cores.def (olympus): Add fp8fma, fp8dot4
+ 	explicitly.
+ 
+ 2025-04-22  Yixuan Chen  <chenyixuan@iscas.ac.cn>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add xt-c908, xt-c908v,
+ 	xt-c910, xt-c910v2, xt-c920, xt-c920v2.
+ 	(RISCV_CORE): Add xt-c908, xt-c908v, xt-c910, xt-c910v2, xt-c920,
+ 	xt-c920v2.
+ 	* doc/invoke.texi: Add xt-c908, xt-c908v, xt-c910, xt-c910v2,
+ 	xt-c920, xt-c920v2.
+ 
+ 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-22  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR target/118182
+ 	* config/riscv/vector.md (@pred_broadcast<mode>): Expand to
+ 	_zero and _imm variants without vec_duplicate.
+ 
+ 2025-04-21  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	PR target/119879
+ 	* config/i386/i386.cc (fp_conversion_stmt_cost): Inline to ...
+ 	(ix86_vector_costs::add_stmt_cost): ... here; fix handling of NOP_EXPR.
+ 
+ 2025-04-21  Matthew Fortune  <matthew.fortune@imgtec.com>
+ 
+ 	* config/mips/mips.cc (mips_option_override): Error out for
+ 	-mmicromips -mmsa.
+ 
+ 2025-04-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR middle-end/119507
+ 	* except.cc (switch_to_exception_section): Don't use the cached section if
+ 	the current function is in comdat.
+ 
+ 2025-04-21  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	* vec.h (array_slice::begin): Assert that the
+ 	slice is valid.
+ 	(array_slice::end): Likewise.
+ 
+ 2025-04-21  hongtao.liu  <hongtao.liu@intel.com>
+ 
+ 	* config/i386/i386-expand.cc (ix86_emit_swdivsf): Generate 2
+ 	FMA instructions when TARGET_FMA.
+ 
+ 2025-04-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/119865
+ 	* config/riscv/riscv.cc (parse_features_for_version): Do not
+ 	explicitly free the architecture string.
+ 
+ 2025-04-19  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR target/118410
+ 	* config/riscv/bitmanip.md (logical with constant argument): New
+ 	splitter for cases where synthesizing ~C is cheaper than synthesizing
+ 	the original constant C.
+ 
+ 2025-04-19  Jan Hubicka  <hubicka@ucw.cz>
+ 
+ 	* config/i386/i386.cc (vec_fp_conversion_cost): New function.
+ 	(ix86_rtx_costs): Use it for SSE/AVX FP conversoins.
+ 	(ix86_builtin_vectorization_cost): Fix indentation;
+ 	and use vec_fp_conversion_cost in vec_promote_demote.
+ 	(fp_conversion_stmt_cost): New function.
+ 	(ix86_vector_costs::add_stmt_cost): Use it to cost NOP_EXPR
+ 	and vec_promote_demote.
+ 	* config/i386/i386.h (struct processor_costs):
+ 	* config/i386/x86-tune-costs.h (struct processor_costs):
+ 
+ 2025-04-19  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR rtl-optimization/111949
+ 	* combine.cc (find_split_point): Add a split point
+ 	for `(and (not X) Y)` if not in the outer set already.
+ 
+ 2025-04-19  Jiaxun Yang  <jiaxun.yang@flygoat.com>
+ 
+ 	PR target/111814
+ 	* config/sh/sh-modes.def (RESET_FLOAT_FORMAT): Use mips format.
+ 	(FLOAT_MODE): Use mips mode.
+ 
+ 2025-04-19  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/alpha/alpha.cc
+ 	(alpha_get_mem_rtx_alignment_and_offset): Recurse into
+ 	COMPONENT_REF nodes.
+ 
+ 2025-04-18  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/bitmanip.md (*bext<mode>_mask_pos): New pattern
+ 	for extracting a single bit at masked bit position.
+ 
+ 2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/87901
+ 	* tree-ssa-dse.cc (maybe_trim_constructor_store): Add was_integer_cst argument.
+ 	Check for was_integer_cst instead of `{}` when was_integer_cst is true.
+ 	(maybe_trim_partially_dead_store): Handle INTEGER_CST stores of 0 as stores of `{}`.
+ 	Udpate call to maybe_trim_constructor_store for CONSTRUCTOR.
+ 
+ 2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/87901
+ 	* tree-ssa-dse.cc (maybe_trim_constructor_store): Strip over useless type
+ 	conversions after taking the address of the MEM_REF.
+ 
+ 2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/118902
+ 	* fold-const.cc (tree_swap_operands_p): Place invariants in the first operand
+ 	if not used with constants.
+ 
+ 2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/118947
+ 	* gimple-fold.cc (optimize_memcpy_to_memset): Walk back until we get a
+ 	statement that may clobber the read.
+ 
+ 2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/78408
+ 	PR tree-optimization/118947
+ 	* gimple-fold.cc (optimize_memcpy_to_memset): Handle STRING_CST case too.
+ 
+ 2025-04-18  Richard Braun  <rbraun@sceen.net>
+ 
+ 	* config/c6x/c6x.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove the
+ 	DW_EH_PE_indirect flag.
+ 
+ 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-18  Hakan Candar  <hakancandar@protonmail.com>
+ 
+ 	* config.gcc: Recognize riscv*-*-gnu* targets.
+ 	* config/riscv/gnu.h: New file.
+ 
+ 2025-04-18  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
+ 
+ 	PR middle-end/108016
+ 	PR middle-end/108016
+ 	* config/riscv/riscv.md (addv<mode>4, uaddv<mode>4, subv<mode>4,
+ 	usubv<mode>4): Tunes for unnecessary sext.w elimination.
+ 
+ 2025-04-18  kelefth  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	PR rtl-optimization/119160
+ 	* avoid-store-forwarding.cc (process_store_forwarding):
+ 	Zero-extend the value stored in the base register, in case
+ 	of load-elimination, only when the mode of the destination
+ 	is wider.
+ 
+ 2025-04-18  kelefth  <konstantinos.eleftheriou@vrull.eu>
+ 
+ 	* doc/cfg.texi: Update the exception handling section for the
+ 	REG_EH_REGION notes to make it clear that the note is attached
+ 	to the instruction throwing the exception.
+ 
+ 2025-04-17  翁愷邑  <kaiweng9487@gmail.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::update_settings):
+ 	Do not manually free any arch string.
+ 
+ 2025-04-17  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	* tree.def (BOOLEAN_TYPE): Add more details.
+ 
+ 2025-04-17  Sam James  <sam@gentoo.org>
+ 
+ 	* doc/invoke.texi: Use "compatible types" term. Rephrase to be
+ 	more precise (and correct).
+ 
+ 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.
+ 	* 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.
+ 
+ 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
+ notice and this notice are preserved.
diff -Nrcpad gcc-15.2.0/gcc/DATESTAMP gcc-16.1.0-RC-20260423/gcc/DATESTAMP
*** gcc-15.2.0/gcc/DATESTAMP	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/DATESTAMP	Thu Apr 23 11:07:32 2026
***************
*** 1 ****
! 20250808
--- 1 ----
! 20260423
diff -Nrcpad gcc-15.2.0/gcc/DEV-PHASE gcc-16.1.0-RC-20260423/gcc/DEV-PHASE
*** gcc-15.2.0/gcc/DEV-PHASE	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/DEV-PHASE	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1 ----
+ prerelease
diff -Nrcpad gcc-15.2.0/gcc/LANGUAGES gcc-16.1.0-RC-20260423/gcc/LANGUAGES
*** gcc-15.2.0/gcc/LANGUAGES	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/LANGUAGES	Thu Apr 23 11:07:32 2026
*************** Feb 1, 1998:
*** 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
--- 57,63 ----
      DEFTREECODE (CLASS_METHOD_DECL, "class_method_decl", 'd', 0)
  
  
! Copyright (C) 1998-2026 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-15.2.0/gcc/Makefile.in gcc-16.1.0-RC-20260423/gcc/Makefile.in
*** gcc-15.2.0/gcc/Makefile.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/Makefile.in	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,7 ----
  # Makefile for GNU Compiler Collection
  # Run 'configure' to generate Makefile from Makefile.in
  
! # Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** C_STRICT_WARN = @c_strict_warn@
*** 187,194 ****
  
  NOEXCEPTION_FLAGS = @noexception_flags@
  
- ALIASING_FLAGS = @aliasing_flags@
- 
  # This is set by --disable-maintainer-mode (default) to "#"
  # FIXME: 'MAINT' will always be set to an empty string, no matter if
  # --disable-maintainer-mode is used or not.  This is because the
--- 187,192 ----
*************** gengtype-lex.o-warn = -Wno-error
*** 253,259 ****
  libgcov-util.o-warn = -Wno-error
  libgcov-driver-tool.o-warn = -Wno-error
  libgcov-merge-tool.o-warn = -Wno-error
- gimple-match-exports.o-warn = -Wno-unused
  dfp.o-warn = -Wno-strict-aliasing
  
  # All warnings have to be shut off in stage1 if the compiler used then
--- 251,256 ----
*************** USER_H = $(srcdir)/ginclude/float.h \
*** 481,486 ****
--- 478,484 ----
  	 $(srcdir)/ginclude/stdalign.h \
  	 $(srcdir)/ginclude/stdatomic.h \
  	 $(srcdir)/ginclude/stdckdint.h \
+ 	 $(srcdir)/ginclude/stdcountof.h \
  	 $(EXTRA_HEADERS)
  
  USER_H_INC_NEXT_PRE = @user_headers_inc_next_pre@
*************** tm_d_file_list=@tm_d_file_list@
*** 615,620 ****
--- 613,620 ----
  tm_d_include_list=@tm_d_include_list@
  tm_rust_file_list=@tm_rust_file_list@
  tm_rust_include_list=@tm_rust_include_list@
+ tm_jit_file_list=@tm_jit_file_list@
+ tm_jit_include_list=@tm_jit_include_list@
  build_xm_file_list=@build_xm_file_list@
  build_xm_include_list=@build_xm_include_list@
  build_xm_defines=@build_xm_defines@
*************** else
*** 653,658 ****
--- 653,661 ----
    endif
  endif
  
+ # Multilib control
+ with_multi_buildlist = @with_multi_buildlist@
+ 
  # ------------------------
  # Installation directories
  # ------------------------
*************** TCONFIG_H = tconfig.h $(xm_file_list)
*** 919,924 ****
--- 922,928 ----
  TM_P_H    = tm_p.h    $(tm_p_file_list) $(TREE_H)
  TM_D_H    = tm_d.h    $(tm_d_file_list)
  TM_RUST_H = tm_rust.h $(tm_rust_file_list)
+ TM_JIT_H  = tm_jit.h    $(tm_jit_file_list)
  GTM_H     = tm.h      $(tm_file_list) insn-constants.h
  TM_H      = $(GTM_H) insn-flags.h $(OPTIONS_H)
  
*************** endif
*** 972,988 ****
--- 976,995 ----
  DUMPFILE_H = $(srcdir)/../libcpp/include/line-map.h dumpfile.h
  VEC_H = vec.h statistics.h $(GGC_H)
  HASH_TABLE_H = $(HASHTAB_H) hash-table.h $(GGC_H)
+ BITMAP_H = bitmap.h $(HASHTAB_H) statistics.h
  EXCEPT_H = except.h $(HASHTAB_H)
  TARGET_DEF = target.def target-hooks-macros.h target-insns.def
  C_TARGET_DEF = c-family/c-target.def target-hooks-macros.h
  COMMON_TARGET_DEF = common/common-target.def target-hooks-macros.h
  D_TARGET_DEF = d/d-target.def target-hooks-macros.h
  RUST_TARGET_DEF = rust/rust-target.def target-hooks-macros.h
+ JIT_TARGET_DEF = jit/jit-target.def target-hooks-macros.h
  TARGET_H = $(TM_H) target.h $(TARGET_DEF) insn-modes.h insn-codes.h
  C_TARGET_H = c-family/c-target.h $(C_TARGET_DEF)
  COMMON_TARGET_H = common/common-target.h $(INPUT_H) $(COMMON_TARGET_DEF)
  D_TARGET_H = d/d-target.h $(D_TARGET_DEF)
  RUST_TARGET_H = rust/rust-target.h $(RUST_TARGET_DEF)
+ JIT_TARGET_H = jit/jit-target.h $(JIT_TARGET_DEF)
  MACHMODE_H = machmode.h mode-classes.def
  HOOKS_H = hooks.h
  HOSTHOOKS_DEF_H = hosthooks-def.h $(HOOKS_H)
*************** FLAGS_H = flags.h flag-types.h $(OPTIONS
*** 1023,1028 ****
--- 1030,1037 ----
  OPTIONS_H = options.h flag-types.h $(OPTIONS_H_EXTRA)
  FUNCTION_H = function.h $(HASHTAB_H) $(TM_H) hard-reg-set.h \
  	$(VEC_H) $(INPUT_H)
+ BACKEND_H = backend.h $(TM_H) $(FUNCTION_H) $(BITMAP_H) sbitmap.h \
+ 	$(BASIC_BLOCK_H) cfg.h
  EXPR_H = expr.h insn-config.h $(FUNCTION_H) $(RTL_H) $(FLAGS_H) $(TREE_H) \
  	$(EMIT_RTL_H)
  OPTABS_H = optabs.h insn-codes.h insn-opinit.h
*************** TREE_SSA_H = tree-ssa.h tree-ssa-operand
*** 1066,1072 ****
  PRETTY_PRINT_H = pretty-print.h $(INPUT_H) $(OBSTACK_H) wide-int-print.h
  TREE_PRETTY_PRINT_H = tree-pretty-print.h $(PRETTY_PRINT_H)
  GIMPLE_PRETTY_PRINT_H = gimple-pretty-print.h $(TREE_PRETTY_PRINT_H)
! DIAGNOSTIC_CORE_H = diagnostic-core.h $(INPUT_H) bversion.h diagnostic.def
  DIAGNOSTIC_H = diagnostic.h $(DIAGNOSTIC_CORE_H) $(PRETTY_PRINT_H)
  C_PRETTY_PRINT_H = c-family/c-pretty-print.h $(PRETTY_PRINT_H) \
  	$(C_COMMON_H) $(TREE_H)
--- 1075,1081 ----
  PRETTY_PRINT_H = pretty-print.h $(INPUT_H) $(OBSTACK_H) wide-int-print.h
  TREE_PRETTY_PRINT_H = tree-pretty-print.h $(PRETTY_PRINT_H)
  GIMPLE_PRETTY_PRINT_H = gimple-pretty-print.h $(TREE_PRETTY_PRINT_H)
! DIAGNOSTIC_CORE_H = diagnostic-core.h $(INPUT_H) bversion.h diagnostics/kinds.def
  DIAGNOSTIC_H = diagnostic.h $(DIAGNOSTIC_CORE_H) $(PRETTY_PRINT_H)
  C_PRETTY_PRINT_H = c-family/c-pretty-print.h $(PRETTY_PRINT_H) \
  	$(C_COMMON_H) $(TREE_H)
*************** LTO_STREAMER_H = lto-streamer.h $(LINKER
*** 1076,1082 ****
  		$(CGRAPH_H) $(VEC_H) $(HASH_TABLE_H) $(TREE_H) $(GIMPLE_H) \
  		$(GCOV_IO_H) $(DIAGNOSTIC_H) alloc-pool.h
  IPA_PROP_H = ipa-prop.h $(TREE_H) $(VEC_H) $(CGRAPH_H) $(GIMPLE_H) alloc-pool.h
- BITMAP_H = bitmap.h $(HASHTAB_H) statistics.h
  GCC_PLUGIN_H = gcc-plugin.h highlev-plugin-common.h plugin.def \
  		$(CONFIG_H) $(SYSTEM_H) $(HASHTAB_H)
  PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
--- 1085,1090 ----
*************** ALL_LINKERFLAGS = $(ALL_CXXFLAGS) $(LD_P
*** 1125,1131 ****
  
  # Use the "pic" build of libiberty if --enable-host-shared or --enable-host-pie,
  # unless we are building for mingw.
! LIBIBERTY_PICDIR=$(if $(findstring mingw,$(target)),,pic)
  ifneq ($(enable_host_shared)$(enable_host_pie),)
  LIBIBERTY = ../libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
  else
--- 1133,1139 ----
  
  # Use the "pic" build of libiberty if --enable-host-shared or --enable-host-pie,
  # unless we are building for mingw.
! LIBIBERTY_PICDIR=$(if $(findstring mingw,$(host)),,pic)
  ifneq ($(enable_host_shared)$(enable_host_pie),)
  LIBIBERTY = ../libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
  else
*************** CXX_TARGET_OBJS=@cxx_target_objs@
*** 1297,1302 ****
--- 1305,1313 ----
  # Target specific, D specific object file
  D_TARGET_OBJS=@d_target_objs@
  
+ # Target specific, JIT specific object file
+ JIT_TARGET_OBJS=@jit_target_objs@
+ 
  # Target specific, Fortran specific object file
  FORTRAN_TARGET_OBJS=@fortran_target_objs@
  
*************** C_COMMON_OBJS = c-family/c-common.o c-fa
*** 1323,1328 ****
--- 1334,1340 ----
  # Analyzer object files
  ANALYZER_OBJS = \
  	analyzer/access-diagram.o \
+ 	analyzer/ana-state-to-diagnostic-state.o \
  	analyzer/analysis-plan.o \
  	analyzer/analyzer.o \
  	analyzer/analyzer-language.o \
*************** ANALYZER_OBJS = \
*** 1349,1354 ****
--- 1361,1367 ----
  	analyzer/kf-analyzer.o \
  	analyzer/kf-lang-cp.o \
  	analyzer/known-function-manager.o \
+ 	analyzer/ops.o \
  	analyzer/pending-diagnostic.o \
  	analyzer/program-point.o \
  	analyzer/program-state.o \
*************** ANALYZER_OBJS = \
*** 1370,1375 ****
--- 1383,1391 ----
  	analyzer/state-purge.o \
  	analyzer/store.o \
  	analyzer/supergraph.o \
+ 	analyzer/supergraph-fixup-locations.o \
+ 	analyzer/supergraph-simplify.o \
+ 	analyzer/supergraph-sorting.o \
  	analyzer/svalue.o \
  	analyzer/symbol.o \
  	analyzer/trimmed-graph.o \
*************** OBJS = \
*** 1400,1405 ****
--- 1416,1422 ----
  	adjust-alignment.o \
  	alias.o \
  	alloc-pool.o \
+ 	asm-toplevel.o \
  	auto-inc-dec.o \
  	auto-profile.o \
  	bb-reorder.o \
*************** OBJS = \
*** 1447,1452 ****
--- 1464,1471 ----
  	dce.o \
  	ddg.o \
  	debug.o \
+ 	hierarchical_discriminator.o \
+ 	dep-fusion.o \
  	df-core.o \
  	df-problems.o \
  	df-scan.o \
*************** OBJS = \
*** 1535,1541 ****
  	godump.o \
  	graph.o \
  	graphds.o \
- 	graphviz.o \
  	graphite.o \
  	graphite-isl-ast-to-gimple.o \
  	graphite-dependences.o \
--- 1554,1559 ----
*************** OBJS = \
*** 1593,1599 ****
  	jump.o \
  	langhooks.o \
  	late-combine.o \
- 	lazy-diagnostic-path.o \
  	lcm.o \
  	lists.o \
  	loop-doloop.o \
--- 1611,1616 ----
*************** OBJS = \
*** 1621,1626 ****
--- 1638,1644 ----
  	mcf.o \
  	mode-switching.o \
  	modulo-sched.o \
+ 	diagnostic-context-rich-location.o \
  	multiple_target.o \
  	omp-offload.o \
  	omp-expand.o \
*************** OBJS = \
*** 1733,1738 ****
--- 1751,1757 ----
  	tree-data-ref.o \
  	tree-dfa.o \
  	tree-diagnostic.o \
+ 	tree-diagnostic-cfg.o \
  	tree-diagnostic-client-data-hooks.o \
  	tree-dump.o \
  	tree-eh.o \
*************** OBJS = \
*** 1794,1799 ****
--- 1813,1820 ----
  	tree-ssa-sink.o \
  	tree-ssa-strlen.o \
  	tree-ssa-structalias.o \
+ 	pta-andersen.o \
+ 	gimple-ssa-pta-constraints.o \
  	tree-ssa-tail-merge.o \
  	tree-ssa-ter.o \
  	tree-ssa-threadbackward.o \
*************** OBJS = \
*** 1842,1847 ****
--- 1863,1869 ----
  	web.o \
  	wide-int.o \
  	wide-int-print.o \
+ 	attr-callback.o \
  	$(out_object_file) \
  	$(ANALYZER_OBJS) \
  	$(EXTRA_OBJS) \
*************** OBJS = \
*** 1849,1871 ****
  
  # Objects in libcommon.a, potentially used by all host binaries and with
  # no target dependencies.
! 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 \
--- 1871,1917 ----
  
  # Objects in libcommon.a, potentially used by all host binaries and with
  # no target dependencies.
! OBJS-libcommon = \
! 	custom-sarif-properties/cfg.o \
! 	custom-sarif-properties/digraphs.o \
! 	custom-sarif-properties/state-graphs.o \
  	diagnostic-global-context.o \
! 	diagnostics/buffering.o \
! 	diagnostics/changes.o \
! 	diagnostics/color.o \
! 	diagnostics/context.o \
! 	diagnostics/digraphs.o \
! 	diagnostics/dumping.o \
! 	diagnostics/digraphs-to-dot.o \
! 	diagnostics/digraphs-to-dot-from-cfg.o \
! 	diagnostics/file-cache.o \
! 	diagnostics/output-spec.o \
! 	diagnostics/html-sink.o \
! 	diagnostics/sarif-sink.o \
! 	diagnostics/text-sink.o \
! 	diagnostics/lazy-paths.o \
! 	diagnostics/logging.o \
! 	diagnostics/macro-unwinding.o \
! 	diagnostics/option-classifier.o \
! 	diagnostics/paths.o \
! 	diagnostics/paths-output.o \
! 	diagnostics/physical-location-maker.o \
! 	diagnostics/source-printing.o \
! 	diagnostics/state-graphs-to-dot.o \
! 	diagnostics/selftest-context.o \
! 	diagnostics/selftest-logical-locations.o \
! 	diagnostics/selftest-paths.o \
! 	diagnostics/diagnostics-selftests.o \
! 	gcc-diagnostic-spec.o \
! 	graphviz.o pex.o \
  	pretty-print.o intl.o \
! 	json.o json-parsing.o json-diagnostic.o \
! 	pub-sub.o \
! 	xml.o \
  	sbitmap.o \
  	vec.o input.o hash-table.o ggc-none.o memory-block.o \
! 	selftest.o sort.o \
  	selftest-json.o \
  	text-art/box-drawing.o \
  	text-art/canvas.o \
  	text-art/ruler.o \
*************** OBJS-libcommon-target = $(common_out_obj
*** 1888,1893 ****
--- 1934,1942 ----
  # This lists all host objects for the front ends.
  ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
  
+ # All auto-profile files
+ ALL_FDAS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_FDAS))
+ 
  ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \
    $(OBJS-libcommon-target) main.o c-family/cppspec.o \
    $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
*************** ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OB
*** 1898,1907 ****
  # is likely the most exercised during the build
  ifeq ($(if $(wildcard ../stage_current),$(shell cat \
    ../stage_current)),stageautofeedback)
! $(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=cc1plus.fda
! $(ALL_HOST_BACKEND_OBJS): cc1plus.fda
  endif
  
  # This lists all host object files, whether they are included in this
  # compilation or not.
  ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
--- 1947,1962 ----
  # is likely the most exercised during the build
  ifeq ($(if $(wildcard ../stage_current),$(shell cat \
    ../stage_current)),stageautofeedback)
! $(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=all.fda
! $(ALL_HOST_BACKEND_OBJS): all.fda
  endif
  
+ # Path to the perf utility
+ PERF = @PERF@
+ 
+ # The profiler to be used by autoprofiledbootstrap
+ AFDO_PROFILER = @AFDO_PROFILER@
+ 
  # This lists all host object files, whether they are included in this
  # compilation or not.
  ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
*************** endif
*** 1912,1918 ****
  
  # 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)
--- 1967,1973 ----
  
  # 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 diagnostics/lazy-paths.o
  
  BACKEND = $(EXTRA_BACKEND_OBJS) libbackend.a main.o libcommon-target.a \
  	libcommon.a $(CPPLIB) $(LIBDECNUMBER)
*************** tm.h: cs-tm.h ; @true
*** 2082,2087 ****
--- 2137,2143 ----
  tm_p.h: cs-tm_p.h ; @true
  tm_d.h: cs-tm_d.h ; @true
  tm_rust.h: cs-tm_rust.h ; @true
+ tm_jit.h: cs-tm_jit.h ; @true
  
  cs-config.h: Makefile
  	TARGET_CPU_DEFAULT="" \
*************** cs-tm_rust.h: Makefile
*** 2121,2126 ****
--- 2177,2187 ----
  	HEADERS="$(tm_rust_include_list)" DEFINES="" \
  	$(SHELL) $(srcdir)/mkconfig.sh tm_rust.h
  
+ cs-tm_jit.h: Makefile
+ 	TARGET_CPU_DEFAULT="" \
+ 	HEADERS="$(tm_jit_include_list)" DEFINES="" \
+ 	$(SHELL) $(srcdir)/mkconfig.sh tm_jit.h
+ 
  # Don't automatically run autoconf, since configure.ac might be accidentally
  # newer than configure.  Also, this writes into the source directory which
  # might be on a read-only file system.  If configured for maintainer mode
*************** LIBGDIAGNOSTICS_VERSION_NUM = 0
*** 2319,2325 ****
  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
  
--- 2380,2386 ----
  LIBGDIAGNOSTICS_MINOR_NUM = 0
  LIBGDIAGNOSTICS_RELEASE_NUM = 1
  
! ifneq (,$(findstring mingw,$(host)))
  LIBGDIAGNOSTICS_FILENAME = libgdiagnostics-$(LIBGDIAGNOSTICS_VERSION_NUM).dll
  LIBGDIAGNOSTICS_IMPORT_LIB = libgdiagnostics.dll.a
  
*************** libgdiagnostics.serial = $(LIBGDIAGNOSTI
*** 2392,2398 ****
  # 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
--- 2453,2459 ----
  # Tell GNU make to ignore these if they exist.
  .PHONY: libgdiagnostics
  
! ifneq (,$(findstring mingw,$(host)))
  # Create import library
  LIBGDIAGNOSTICS_EXTRA_OPTS = -Wl,--out-implib,$(LIBGDIAGNOSTICS_IMPORT_LIB)
  else
*************** $(LIBGDIAGNOSTICS_FILENAME): $(libgdiagn
*** 2420,2426 ****
  	@$(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.
--- 2481,2487 ----
  	@$(call LINK_PROGRESS,$(INDEX.libgdiagnostics),end)
  
  # Create symlinks when not building for Windows
! ifeq (,$(findstring mingw,$(host)))
  
  ifeq (,$(findstring darwin,$(host)))
  # but only one level for Darwin, version info is embedded.
*************** libgcc.mvars: config.status Makefile spe
*** 2463,2475 ****
  	: > tmp-libgcc.mvars
  	echo GCC_CFLAGS = '$(GCC_CFLAGS)' >> tmp-libgcc.mvars
  	echo INHIBIT_LIBC_CFLAGS = '$(INHIBIT_LIBC_CFLAGS)' >> tmp-libgcc.mvars
- 	echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
- 	if test @enable_default_pie@ = yes; then \
- 	  NO_PIE_CFLAGS="-fno-PIE"; \
- 	else \
- 	  NO_PIE_CFLAGS=; \
- 	fi; \
- 	echo NO_PIE_CFLAGS = "$$NO_PIE_CFLAGS" >> tmp-libgcc.mvars
  
  	mv tmp-libgcc.mvars libgcc.mvars
  
--- 2524,2529 ----
*************** s-mlib: $(srcdir)/genmultilib Makefile
*** 2491,2501 ****
  	    "$(MULTILIB_REQUIRED)" \
  	    "$(if $(MULTILIB_OSDIRNAMES),,$(MULTIARCH_DIRNAME))" \
  	    "$(MULTILIB_REUSE)" \
  	    "@enable_multilib@" \
  	    > tmp-mlib.h; \
  	else \
  	  $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' '' \
! 	    "$(MULTIARCH_DIRNAME)" '' no \
  	    > tmp-mlib.h; \
  	fi
  	$(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
--- 2545,2556 ----
  	    "$(MULTILIB_REQUIRED)" \
  	    "$(if $(MULTILIB_OSDIRNAMES),,$(MULTIARCH_DIRNAME))" \
  	    "$(MULTILIB_REUSE)" \
+ 	    "$(if $(with_multi_buildlist),true,false)" \
  	    "@enable_multilib@" \
  	    > tmp-mlib.h; \
  	else \
  	  $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' '' \
! 	    "$(MULTIARCH_DIRNAME)" '' 'false' no \
  	    > tmp-mlib.h; \
  	fi
  	$(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
*************** default-d.o: config/default-d.cc
*** 2588,2593 ****
--- 2643,2654 ----
  	$(COMPILE) $<
  	$(POSTCOMPILE)
  
+ # Files used by the JIT language front end.
+ 
+ default-jit.o: config/default-jit.cc
+ 	$(COMPILE) $<
+ 	$(POSTCOMPILE)
+ 
  # Files used by the Rust language front end.
  
  default-rust.o: config/default-rust.cc
*************** s-rust-target-hooks-def-h: build/genhook
*** 2940,2945 ****
--- 3001,3015 ----
  					     rust/rust-target-hooks-def.h
  	$(STAMP) s-rust-target-hooks-def-h
  
+ jit/jit-target-hooks-def.h: s-jit-target-hooks-def-h; @true
+ 
+ s-jit-target-hooks-def-h: build/genhooks$(build_exeext)
+ 	$(RUN_GEN) build/genhooks$(build_exeext) "JIT Target Hook" \
+ 					     > tmp-jit-target-hooks-def.h
+ 	$(SHELL) $(srcdir)/../move-if-change tmp-jit-target-hooks-def.h \
+ 					     jit/jit-target-hooks-def.h
+ 	$(STAMP) s-jit-target-hooks-def-h
+ 
  # check if someone mistakenly only changed tm.texi.
  # We use a different pathname here to avoid a circular dependency.
  s-tm-texi: $(srcdir)/doc/../doc/tm.texi
*************** GTFILES = $(CPPLIB_H) $(srcdir)/input.h
*** 3029,3035 ****
    $(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 \
--- 3099,3105 ----
    $(srcdir)/ipa-modref-tree.h \
    $(srcdir)/ipa-locality-cloning.cc \
    $(srcdir)/signop.h \
!   $(srcdir)/gcc-diagnostic-spec.h $(srcdir)/gcc-diagnostic-spec.cc \
    $(srcdir)/dwarf2out.h \
    $(srcdir)/dwarf2asm.cc \
    $(srcdir)/dwarf2cfi.cc \
*************** s-gtype: $(EXTRA_GTYPE_DEPS) build/gengt
*** 3137,3144 ****
                      -r gtype.state
  	$(STAMP) s-gtype
  
! generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_H) multilib.h \
!        $(simple_generated_h) specs.h \
         tree-check.h genrtl.h insn-modes.h insn-modes-inline.h \
         tm-preds.h tm-constrs.h \
         $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \
--- 3207,3214 ----
                      -r gtype.state
  	$(STAMP) s-gtype
  
! generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_JIT_H) $(TM_H) \
!        multilib.h $(simple_generated_h) specs.h \
         tree-check.h genrtl.h insn-modes.h insn-modes-inline.h \
         tm-preds.h tm-constrs.h \
         $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \
*************** generated_files = config.h tm.h $(TM_P_H
*** 3149,3154 ****
--- 3219,3225 ----
         c-family/c-target-hooks-def.h d/d-target-hooks-def.h \
         $(TM_RUST_H) rust/rust-target-hooks-def.h \
         case-cfn-macros.h \
+        jit/jit-target-hooks-def.h case-cfn-macros.h \
         cfn-operators.pd omp-device-properties.h
  
  #
*************** build/genrecog.o : genrecog.cc $(RTL_BAS
*** 3282,3289 ****
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)		\
    $(HASH_TABLE_H) inchash.h
  build/genhooks.o : genhooks.cc $(TARGET_DEF) $(C_TARGET_DEF)		\
!   $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(RUST_TARGET_DEF) $(BCONFIG_H) \
!   $(SYSTEM_H) errors.h
  build/genmddump.o : genmddump.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)
  build/genmatch.o : genmatch.cc $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \
--- 3353,3360 ----
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)		\
    $(HASH_TABLE_H) inchash.h
  build/genhooks.o : genhooks.cc $(TARGET_DEF) $(C_TARGET_DEF)		\
!   $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(RUST_TARGET_DEF) $(JIT_TARGET_DEF) \
!   $(BCONFIG_H) $(SYSTEM_H) errors.h
  build/genmddump.o : genmddump.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)	\
    $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H)
  build/genmatch.o : genmatch.cc $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \
*************** gengtype-lex.cc : gengtype-lex.l
*** 3384,3389 ****
--- 3455,3463 ----
  	  echo '#else'                     >> $@.tmp; \
  	  echo '#include "bconfig.h"'      >> $@.tmp; \
  	  echo '#endif'                    >> $@.tmp; \
+ 	  echo '#define FLEX_SCANNER'      >> $@.tmp; \
+ 	  echo '#include "system.h"'       >> $@.tmp; \
+ 	  echo '#undef FLEX_SCANNER'       >> $@.tmp; \
  	  cat $@ >> $@.tmp; \
  	  mv $@.tmp $@; \
  	}
*************** gcov-tool$(exeext): $(GCOV_TOOL_OBJS) $(
*** 3475,3483 ****
  stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMITS_H) $(T_STDINT_GCC_H) $(USER_H) fixinc_list
  # Copy in the headers provided with gcc.
  #
! # The sed command gets just the last file name component;
! # this is necessary because VPATH could add a dirname.
! # Using basename would be simpler, but some systems don't have it.
  #
  # The touch command is here to workaround an AIX/Linux NFS bug.
  #
--- 3549,3558 ----
  stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMITS_H) $(T_STDINT_GCC_H) $(USER_H) fixinc_list
  # Copy in the headers provided with gcc.
  #
! # If the sequence /././ appears somewhere after srcdir in a USER_H
! # name, install the header with the name after the marker, even if
! # that name involves subdirectories.  Otherwise, install it as the
! # basename (but some systems don't have the basename program).
  #
  # The touch command is here to workaround an AIX/Linux NFS bug.
  #
*************** stmp-int-hdrs: $(STMP_FIXINC) $(T_GLIMIT
*** 3488,3497 ****
  	-if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod a+rx include-fixed; fi
  	for file in .. $(USER_H); do \
  	  if [ X$$file != X.. ]; then \
! 	    realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
  	    $(STAMP) include/$$realfile; \
  	    rm -f include/$$realfile; \
! 	    cp $$file include; \
  	    chmod a+r include/$$realfile; \
  	  fi; \
  	done
--- 3563,3582 ----
  	-if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod a+rx include-fixed; fi
  	for file in .. $(USER_H); do \
  	  if [ X$$file != X.. ]; then \
! 	    case $$file in \
! 	      "$(srcdir)"*/././*) \
! 		realfile=`echo $$file | sed -e 's|^.*/\./\./||'`; \
! 		case $$realfile in \
! 		  */*) \
! 		    realdir=`echo $$realfile | sed -e 's|/[^/]*$$||'`; \
! 		    $(install_sh) -d include/$$realdir;; \
! 		esac;; \
! 	      *) \
! 		realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`;; \
! 	    esac; \
  	    $(STAMP) include/$$realfile; \
  	    rm -f include/$$realfile; \
! 	    cp $$file include/$$realfile; \
  	    chmod a+r include/$$realfile; \
  	  fi; \
  	done
*************** fixinc_list: s-fixinc_list; @true
*** 3564,3573 ****
--- 3649,3671 ----
  s-fixinc_list : $(GCC_PASSES)
  # Build up a list of multilib directories and corresponding sysroot
  # suffixes, in form sysroot;multilib.
+ # Use a filtered multilib list if requested.
  	if $(GCC_FOR_TARGET) -print-sysroot-headers-suffix > /dev/null 2>&1; then \
  	  set -e; for ml in `$(GCC_FOR_TARGET) -print-multi-lib`; do \
  	    multi_dir=`echo $${ml} | sed -e 's/;.*$$//'`; \
  	    flags=`echo $${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
+ 	    if [ x$(with_multi_buildlist) != x ]; then \
+ 	      if [ ! -f $(with_multi_buildlist) ]; then \
+ 		echo "fixinc_list: Failed to find $(with_multi_buildlist)"; \
+ 		exit 1; \
+ 	      fi; \
+ 	      set +e; \
+ 	      found=`grep "^$${multi_dir}$$" $(with_multi_buildlist)`; \
+ 	      set -e; \
+ 	      if [ -z "$$found" ]; then \
+ 		continue; \
+ 	      fi; \
+ 	    fi; \
  	    sfx=`$(GCC_FOR_TARGET) $${flags} -print-sysroot-headers-suffix`; \
  	    if [ "$${multi_dir}" = "." ]; \
  	      then multi_dir=""; \
*************** TEXI_GCC_FILES = gcc.texi gcc-common.tex
*** 3702,3708 ****
  	 contribute.texi compat.texi funding.texi gnu.texi gpl_v3.texi	\
  	 fdl.texi contrib.texi cppenv.texi cppopts.texi avr-mmcu.texi	\
  	 implement-c.texi implement-cxx.texi gcov-tool.texi gcov-dump.texi \
! 	 lto-dump.texi
  
  # we explicitly use $(srcdir)/doc/tm.texi here to avoid confusion with
  # the generated tm.texi; the latter might have a more recent timestamp,
--- 3800,3806 ----
  	 contribute.texi compat.texi funding.texi gnu.texi gpl_v3.texi	\
  	 fdl.texi contrib.texi cppenv.texi cppopts.texi avr-mmcu.texi	\
  	 implement-c.texi implement-cxx.texi gcov-tool.texi gcov-dump.texi \
! 	 lto-dump.texi riscv-ext.texi riscv-mcpu.texi riscv-mtune.texi
  
  # we explicitly use $(srcdir)/doc/tm.texi here to avoid confusion with
  # the generated tm.texi; the latter might have a more recent timestamp,
*************** TEXI_GCCINT_FILES = gccint.texi gcc-comm
*** 3716,3722 ****
  	 gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi	\
  	 sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi	\
  	 loop.texi generic.texi gimple.texi plugins.texi optinfo.texi   \
! 	 match-and-simplify.texi analyzer.texi ux.texi poly-int.texi
  
  TEXI_GCCINSTALL_FILES = install.texi fdl.texi		\
  	 gcc-common.texi gcc-vers.texi
--- 3814,3821 ----
  	 gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi	\
  	 sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi	\
  	 loop.texi generic.texi gimple.texi plugins.texi optinfo.texi   \
! 	 match-and-simplify.texi analyzer.texi ux.texi poly-int.texi	\
! 	 params.texi specs.texi ifn.texi
  
  TEXI_GCCINSTALL_FILES = install.texi fdl.texi		\
  	 gcc-common.texi gcc-vers.texi
*************** $(build_htmldir)/gccinstall/index.html:
*** 3832,3838 ****
  .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)
--- 3931,3938 ----
  .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 \
! 	$(build_htmldir)/ga68/Option-Index.html
  $(OPT_URLS_HTML_DEPS): %/Option-Index.html: %/index.html
  
  regenerate-opt-urls: $(srcdir)/regenerate-opt-urls.py $(OPT_URLS_HTML_DEPS)
*************** regenerate-opt-urls-unit-test: $(OPT_URL
*** 3845,3851 ****
  
  # 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))
--- 3945,3951 ----
  
  # Regenerate attr-urls.def from the generated html.
  .PHONY: regenerate-attr-urls
! ATTR_URLS_HTML_DEPS = $(build_htmldir)/gcc/Attribute-Index.html
  
  regenerate-attr-urls: $(srcdir)/regenerate-attr-urls.py $(ATTR_URLS_HTML_DEPS)
  	$(srcdir)/regenerate-attr-urls.py $(build_htmldir) $(shell dirname $(srcdir))
*************** PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $
*** 4062,4068 ****
    fold-const.h fold-const-call.h tree-cfg.h tree-into-ssa.h tree-ssanames.h \
    print-tree.h varasm.h context.h tree-phinodes.h stor-layout.h \
    ssa-iterators.h $(RESOURCE_H) tree-cfgcleanup.h attribs.h calls.h \
!   cfgexpand.h diagnostic-color.h gcc-symtab.h gimple-builder.h gimple-low.h \
    gimple-walk.h gimplify-me.h pass_manager.h print-rtl.h stmt.h \
    tree-dfa.h tree-hasher.h tree-nested.h tree-object-size.h tree-outof-ssa.h \
    tree-parloops.h tree-ssa-address.h tree-ssa-coalesce.h tree-ssa-dom.h \
--- 4162,4168 ----
    fold-const.h fold-const-call.h tree-cfg.h tree-into-ssa.h tree-ssanames.h \
    print-tree.h varasm.h context.h tree-phinodes.h stor-layout.h \
    ssa-iterators.h $(RESOURCE_H) tree-cfgcleanup.h attribs.h calls.h \
!   cfgexpand.h gcc-symtab.h gimple-builder.h gimple-low.h \
    gimple-walk.h gimplify-me.h pass_manager.h print-rtl.h stmt.h \
    tree-dfa.h tree-hasher.h tree-nested.h tree-object-size.h tree-outof-ssa.h \
    tree-parloops.h tree-ssa-address.h tree-ssa-coalesce.h tree-ssa-dom.h \
*************** PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $
*** 4072,4078 ****
    hash-set.h dominance.h cfg.h cfgrtl.h cfganal.h cfgbuild.h cfgcleanup.h \
    lcm.h cfgloopmanip.h file-prefix-map.h builtins.def $(INSN_ATTR_H) \
    pass-instances.def params.list $(srcdir)/../include/gomp-constants.h \
!   $(EXPR_H) $(srcdir)/analyzer/*.h
  
  # generate the 'build fragment' b-header-vars
  s-header-vars: Makefile
--- 4172,4179 ----
    hash-set.h dominance.h cfg.h cfgrtl.h cfganal.h cfgbuild.h cfgcleanup.h \
    lcm.h cfgloopmanip.h file-prefix-map.h builtins.def $(INSN_ATTR_H) \
    pass-instances.def params.list $(srcdir)/../include/gomp-constants.h \
!   $(EXPR_H) $(srcdir)/analyzer/*.h $(srcdir)/diagnostics/*.h \
!   $(srcdir)/text-art/*.h $(srcdir)/topics/*.h
  
  # generate the 'build fragment' b-header-vars
  s-header-vars: Makefile
*************** install-plugin: installdirs lang.install
*** 4110,4115 ****
--- 4211,4219 ----
  	  fi; \
  	  case $$path in \
  	  "$(srcdir)"/analyzer/* \
+ 	  | "$(srcdir)"/diagnostics/* \
+ 	  | "$(srcdir)"/text-art/* \
+ 	  | "$(srcdir)"/topics/* \
  	  | "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
  	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
  	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
*************** install-driver: installdirs xgcc$(exeext
*** 4182,4188 ****
  	      $(LN) $(GCC_INSTALL_NAME)$(exeext) $(FULL_DRIVER_NAME) ); \
  	  fi; \
  	  if [ ! -f gcc-cross$(exeext) ] \
! 	      && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \
  	    rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
  	    ( cd $(DESTDIR)$(bindir) && \
  	      $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-tmp$(exeext) && \
--- 4286,4293 ----
  	      $(LN) $(GCC_INSTALL_NAME)$(exeext) $(FULL_DRIVER_NAME) ); \
  	  fi; \
  	  if [ ! -f gcc-cross$(exeext) ] \
! 	      && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ] \
! 	      && [ "$(GCC_TARGET_INSTALL_NAME)$(exeext)" != "$(FULL_DRIVER_NAME)" ] ; then \
  	    rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \
  	    ( cd $(DESTDIR)$(bindir) && \
  	      $(LN) $(GCC_INSTALL_NAME)$(exeext) $(target_noncanonical)-gcc-tmp$(exeext) && \
*************** libgdiagnostics.install-headers: install
*** 4196,4202 ****
  	$(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) \
--- 4301,4307 ----
  	$(INSTALL_DATA) $(srcdir)/libgdiagnostics++.h \
  	  $(DESTDIR)$(includedir)/libgdiagnostics++.h
  
! ifneq (,$(findstring mingw,$(host)))
  libgdiagnostics.install-common: installdirs libgdiagnostics.install-headers
  # Install import library
  	$(INSTALL_PROGRAM) $(LIBGDIAGNOSTICS_IMPORT_LIB) \
*************** paranoia.o: $(srcdir)/../contrib/paranoi
*** 4720,4725 ****
--- 4825,4833 ----
  paranoia: paranoia.o real.o $(LIBIBERTY)
  	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
  
+ all.fda: $(ALL_FDAS)
+ 	$(PROFILE_MERGER) $(ALL_FDAS) --output_file all.fda -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version`
+ 
  # These exist for maintenance purposes.
  
  CTAGS=@CTAGS@
diff -Nrcpad gcc-15.2.0/gcc/README.Portability gcc-16.1.0-RC-20260423/gcc/README.Portability
*** gcc-15.2.0/gcc/README.Portability	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/README.Portability	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 1,4 ----
! Copyright (C) 2000-2026 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-15.2.0/gcc/acinclude.m4 gcc-16.1.0-RC-20260423/gcc/acinclude.m4
*** gcc-15.2.0/gcc/acinclude.m4	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/acinclude.m4	Thu Apr 23 11:07:32 2026
***************
*** 1,4 ****
! dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
--- 1,4 ----
! dnl Copyright (C) 2005-2026 Free Software Foundation, Inc.
  dnl
  dnl This file is part of GCC.
  dnl
*************** int (*fp) (void) __attribute__ ((section
*** 307,313 ****
  	     && test $in_tree_ld_is_elf = yes; then
  	    gcc_cv_initfini_array=yes
  	  fi
! 	elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
  	  case $target:$gas in
  	    *:yes)
  	      sh_flags='"a"'
--- 307,313 ----
  	     && test $in_tree_ld_is_elf = yes; then
  	    gcc_cv_initfini_array=yes
  	  fi
! 	elif test x"$gcc_cv_as" != x -a x"$gcc_cv_ld" != x -a x"$gcc_cv_objdump" != x ; then
  	  case $target:$gas in
  	    *:yes)
  	      sh_flags='"a"'
*************** dnl # Used by gcc_GAS_CHECK_FEATURE
*** 464,487 ****
  dnl #
  AC_DEFUN([gcc_GAS_FLAGS],
  [AC_CACHE_CHECK([assembler flags], gcc_cv_as_flags,
! [ case "$target" in
!   i[[34567]]86-*-linux*)
!     dnl Override the default, which may be incompatible.
!     gcc_cv_as_flags=--32
      ;;
!   x86_64-*-linux-gnux32)
!     dnl Override the default, which may be incompatible.
!     gcc_cv_as_flags=--x32
      ;;
!   x86_64-*-linux*)
!     dnl Override the default, which may be incompatible.
!     gcc_cv_as_flags=--64
      ;;
!   powerpc*-*-darwin*)
!     dnl Always pass -arch ppc to assembler.
!     gcc_cv_as_flags="-arch ppc"
      ;;
!   *)
      gcc_cv_as_flags=" "
      ;;
    esac])
--- 464,532 ----
  dnl #
  AC_DEFUN([gcc_GAS_FLAGS],
  [AC_CACHE_CHECK([assembler flags], gcc_cv_as_flags,
! [ case "$target:$gas" in
!   *-*-darwin*:*)
!     dnl Darwin with the native assembler uses -arch i386/x86_64/ppc/ppc64.
!     dnl
!     dnl Old cctools versions of the Darwin assembler identify as "GNU
!     dnl assembler version 1.38", but still accept the same options as later
!     dnl clang-based ones, so treat them all the same regardless.
!     case "$target" in
!       i?86-*-*)
! 	gcc_cv_as_flags="-arch i386"
! 	;;
!       powerpc64*-*-*)
! 	gcc_cv_as_flags="-arch ppc64"
! 	;;
!       powerpc*-*-*)
! 	gcc_cv_as_flags="-arch ppc"
! 	;;
!       x86_64-*-*)
! 	gcc_cv_as_flags="-arch x86_64"
! 	;;
!     esac
!     case "$target" in
!       i?86-*-* | x86_64-*-*)
! 	as_32_opt="-arch i386"
! 	as_64_opt="-arch x86_64"
! 	;;
!     esac
      ;;
!   *-*-solaris2*:no)
!     dnl Solaris with the native assembler uses -m32/-m64 consistently.
!     case "$target" in
!       i?86-*-* | sparc-*-*)
! 	gcc_cv_as_flags=-m32
! 	;;
!       x86_64-*-* | sparcv9-*-* | sparc64-*-*)
! 	gcc_cv_as_flags=-m64
! 	;;
!     esac
!     as_32_opt=-m32
!     as_64_opt=-m64
      ;;
!   i?86-*-*:* | x86_64-*-*:* | sparc*-*-*:*)
!     dnl Otherwise x86 and SPARC use GNU assembler options --32/--64/--x32.
!     case "$target" in
!       i?86-*-* | sparc-*-*)
! 	gcc_cv_as_flags=--32
! 	;;
!       x86_64-*-linux-gnux32*)
! 	gcc_cv_as_flags=--x32
! 	;;
!       x86_64-*-* | sparcv9-*-* | sparc64-*-*)
! 	gcc_cv_as_flags=--64
! 	;;
!     esac
!     as_32_opt=--32
!     as_64_opt=--64
      ;;
!   amdgcn*:*)
!     dnl Currently, only the llvm-mc assembler is supported.
!     dnl Add flags to ensure an amdgcn ELF file is written.
!     gcc_cv_as_flags="--filetype=obj -triple=amdgcn--amdhsa"
      ;;
!   *:*)
      gcc_cv_as_flags=" "
      ;;
    esac])
*************** AC_DEFUN([gcc_GAS_CHECK_FEATURE],
*** 500,506 ****
  [AC_REQUIRE([gcc_GAS_FLAGS])dnl
  AC_CACHE_CHECK([assembler for $1], [$2],
   [[$2]=no
!   if test x$gcc_cv_as != x; then
      AS_ECHO([ifelse(m4_substr([$4],0,1),[$], "[$4]", '[$4]')]) > conftest.s
      if AC_TRY_COMMAND([$gcc_cv_as $gcc_cv_as_flags $3 -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD])
      then
--- 545,551 ----
  [AC_REQUIRE([gcc_GAS_FLAGS])dnl
  AC_CACHE_CHECK([assembler for $1], [$2],
   [[$2]=no
!   if test x"$gcc_cv_as" != x; then
      AS_ECHO([ifelse(m4_substr([$4],0,1),[$], "[$4]", '[$4]')]) > conftest.s
      if AC_TRY_COMMAND([$gcc_cv_as $gcc_cv_as_flags $3 -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD])
      then
diff -Nrcpad gcc-15.2.0/gcc/aclocal.m4 gcc-16.1.0-RC-20260423/gcc/aclocal.m4
*** gcc-15.2.0/gcc/aclocal.m4	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/aclocal.m4	Thu Apr 23 11:07:32 2026
*************** m4_include([../ltversion.m4])
*** 69,74 ****
--- 69,75 ----
  m4_include([../lt~obsolete.m4])
  m4_include([../config/acx.m4])
  m4_include([../config/cet.m4])
+ m4_include([../config/clang-plugin.m4])
  m4_include([../config/codeset.m4])
  m4_include([../config/depstand.m4])
  m4_include([../config/dfp.m4])
diff -Nrcpad gcc-15.2.0/gcc/ada/ChangeLog gcc-16.1.0-RC-20260423/gcc/ada/ChangeLog
*** gcc-15.2.0/gcc/ada/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,1799 ****
! 2025-08-08  Release Manager
! 
! 	* GCC 15.2.0 released.
! 
! 2025-07-31  Eric Botcazou  <ebotcazou@gcc.gnu.org>
! 
! 	PR ada/120440
! 	* gcc-interface/Makefile.in (GNATLINK_OBJS): Add s-excmac.o.
! 	(GNATMAKE_OBJS): Likewise.
! 
! 2025-07-25  Bob Duff  <duff@adacore.com>
! 
! 	* sem_ch12.adb (Check_Formal_Package_Instance):
! 	Do nothing in case of E_Subprogram_Body.
! 
! 2025-07-25  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* sem_ch3.adb (Build_Derived_Record_Type): Set flag appropriately.
! 
! 2025-07-22  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* gen_il-fields.ads (Is_Implicit_Full_View): New field.
! 	* gen_il-gen-gen_entities.adb (Type_Kind): Use new field.
! 	* einfo.ads (Is_Implicit_Full_View): Document new field.
! 	* exp_ch7.adb (Make_Adjust_Call, Make_Init_Call, Make_Final_Call): Use
! 	new field.
! 	* exp_util.adb (Finalize_Address): Likewise.
! 	* sem_ch3.adb (Copy_And_Build): Set new field.
! 
! 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.ads (May_Generate_Large_Temp): Delete.
! 	* exp_util.adb (May_Generate_Large_Temp): Likewise.
! 	(Safe_Unchecked_Type_Conversion): Do not take stack checking into
! 	account to compute the result.
! 
! 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_util.adb (Safe_Unchecked_Type_Conversion): Always return True
! 	if the expression is the prefix of an N_Selected_Component.
! 
! 2025-07-22  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_util.adb (Get_Actual_Subtype): Do the same for GCC and GNATprove
! 	backends.
! 
! 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* sem_util.adb (Get_Actual_Subtype): Only create a new subtype when
! 	the expander is active.  Remove a useless test of type inequality,
! 	as well as a useless call to Set_Has_Delayed_Freeze on the subtype.
! 
! 2025-07-22  Ghjuvan Lacambre  <lacambre@adacore.com>
! 
! 	* exp_util.adb (Finalize_Address): Prevent infinite loop
! 
! 2025-07-21  Eric Botcazou  <ebotcazou@gcc.gnu.org>
! 
! 	PR ada/121184
! 	* styleg.adb (Check_Comment): Use consistent warning message.
! 
! 2025-07-14  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/121056
! 	* sem_ch4.adb (Try_Object_Operation.Try_Primitive_Operation): Add
! 	test on Is_Record_Type before accessing Underlying_Record_View.
! 
! 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/utils.cc (make_packable_type): Clear the TYPE_PACKED
! 	flag in the case where the alignment is bumped.
! 
! 2025-07-04  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_ch7.adb (Make_Final_Call): Tweak search of Finalize primitive.
! 	* exp_util.adb (Finalize_Address): Likewise.
! 
! 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* freeze.adb (Check_Compile_Time_Size): Try harder to see whether
! 	the bounds of array types are known at compile time.
! 
! 2025-07-04  Steve Baird  <baird@adacore.com>
! 
! 	* mutably_tagged.adb (Make_CW_Size_Compile_Check): Include the
! 	value of the Size'Class limit in the message generated via a
! 	Compile_Time_Error pragma.
! 
! 2025-07-04  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* sem_ch13.adb (Analyze_Aspect_Specifications): Fix error emission.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/Makefile.in (gnatlib-sjlj): Delete.
! 	(gnatlib-zcx): Do not modify Frontend_Exceptions constant.
! 	* libgnat/system-linux-loongarch.ads (Frontend_Exceptions): Delete.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/trans.cc (addressable_p): Add COMPG third parameter.
! 	<COMPONENT_REF>: Do not return true out of alignment considerations
! 	for non-strict-alignment targets if COMPG is set.
! 	(Call_to_gnu): Pass true as COMPG in the call to the addressable_p
! 	predicate if the called subprogram is an initialization procedure.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Allocator>: Allocate the
! 	bounds alongside the data if the Is_Constr_Array_Subt_With_Bounds
! 	flag is set on the designated type.
! 	<N_Free_Statement>: Take into account the allocated bounds if the
! 	Is_Constr_Array_Subt_With_Bounds flag is set on the designated type.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc-interface/decl.cc (gnat_to_gnu_component_type): Validate the
! 	Component_Size like the size of a type only if the component type
! 	is actually packed.
! 
! 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_util.adb (Insert_Actions): Fix check.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
! 	declarations of return objects.
! 
! 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_ch7.adb (Make_Deep_Record_Body): Fix case of absent Initialize
! 	primitive.
! 
! 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_aggr.adb (Generate_Finalization_Actions): Stop assuming that
! 	initialize primitive exists.
! 
! 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_ch7.adb (Insert_Actions_In_Scope_Around): Fix condition.
! 
! 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch4.adb (Handle_Changed_Representation): Alphabetize local
! 	variables.  Set the No_Finalize_Actions flag on the assignment.
! 
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/120705
! 	* exp_ch6.adb (Needs_BIP_Collection): Always return False if the
! 	type has relaxed finalization.
! 
! 2025-07-01  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Test not Has_Relaxed_Finalization
! 	as a guard against retrieving BIP_Collection formal (and related code).
! 
! 2025-07-01  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* sem_ch3.adb (Constrain_Corresponding_Record): Inherit Class_Wide_Type on the
! 	created constrained subtype.
! 
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch7.adb (Shift_Address_For_Descriptor): Add dummy variable
! 	to make sure that System_Storage_Elements is loaded.
! 
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch7.adb (Shift_Address_For_Descriptor): New function.
! 	(Make_Address_For_Finalize): Call above function.
! 	(Make_Finalize_Address_Stmts): Likewise.
! 	* exp_util.ads (Is_Constr_Array_Subt_Of_Unc_With_Controlled): New
! 	predicate.
! 	* exp_util.adb (Is_Constr_Array_Subt_Of_Unc_With_Controlled): Ditto.
! 	(Remove_Side_Effects): Call above predicate.
! 	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
! 	* sem_ch4.adb (Analyze_Allocator): Allocate the bounds by setting
! 	Is_Constr_Array_Subt_With_Bounds when appropriate.
! 
! 2025-07-01  Javier Miranda  <miranda@adacore.com>
! 
! 	* sem_ch4.adb (Try_Object_Operation): Handle mutably tagged
! 	class-wide type prefix.
! 
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.adb (Finalize_Address): Do not go to the root type for
! 	array types.
  
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.ads (Is_Finalizable_Access): New predicate.
! 	(Is_Non_BIP_Func_Call): Delete.
! 	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
! 	* exp_util.adb (Is_Finalizable_Access): New predicate.
! 	(Initialized_By_Aliased_BIP_Func_Call): Delete.
! 	(Initialized_By_Reference): Likewise.
! 	(Is_Aliased): Only consider the nontransient object serviced by
! 	the transient scope.
! 	(Is_Part_Of_BIP_Return_Statement): Minor tweak.
! 	(Is_Finalizable_Transient): Remove calls to Initialized_By_Reference
! 	and Initialized_By_Aliased_BIP_Func_Call.
! 	Call Is_Finalizable_Access for access objects.
! 	(Is_Non_BIP_Func_Call): Delete.
! 	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
! 	(Requires_Cleanup_Actions): Call Is_Finalizable_Access for access
! 	objects.
! 	(Side_Effect_Free): Return True for N_Reference.
! 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Call
! 	Is_Finalizable_Access for access objects.
  
! 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.adb (Is_Expression_Of_Func_Return): New predicate.
! 	(Is_Related_To_Func_Return): Call Is_Expression_Of_Func_Return.
! 	(Remove_Side_Effects): Generate a temporary for a function call
! 	that returns a constrained array type with controlled component
! 	and an unconstrained first subtype.
  
! 2025-06-30  Bob Duff  <duff@adacore.com>
  
! 	* exp_attr.adb (Attribute_Max_Size_In_Storage_Elements):
! 	Return Storage_Count'Last converted to universal_integer.
  
! 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_prag.adb (Analyze_Pragma) <Pragma_No_Component_Reordering>:
! 	Call Find_Type on the first argument of the pragma.
  
! 2025-06-30  Steve Baird  <baird@adacore.com>
  
! 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): If
! 	Discriminant_Specifications takes us from the full view of a type
! 	to an (intentionally) unanalyzed subtree, then instead find
! 	discriminant entities by calling Discriminant_Specifications on
! 	the partial view of the type.
  
! 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* sem_ch6.adb (Check_Delayed_Subprogram, Possible_Freeze): Restrict
! 	cases where freezing is delayed.
! 	* sem_ch6.ads (Check_Delayed_Subprogram): Improve documentation
! 	comment.
! 	* sprint.adb (Write_Itype): Improve output.
  
! 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch7.adb (Process_Transient_In_Scope): Bail out if the object
! 	is an ignored ghost entity.
  
! 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.adb (Insert_Actions): Extend special treatment applied
! 	to freeze nodes to the case of blocks generated for aggregates.
  
! 2025-06-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/120854
! 	* sem_eval.adb (Get_String_Val): Be prepared for an integer literal
! 	after a serious error is detected, and raise PE on other nodes.
  
! 2025-06-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/120665
! 	* sem_aggr.adb (Resolve_Container_Aggregate): Use robust guards.
  
! 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* doc/gnat_rm/gnat_language_extensions.rst
! 	(Generalized Finalization): Document the actual implementation.
! 	(No_Raise): Move to separate section.
  	* gnat_rm.texi: Regenerate.
  
! 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* sem_ch3.adb (Build_Derived_Private_Type): Fix test.
! 	(Build_Derived_Record_Type): Adjust error recovery paths.
! 
! 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* exp_util.adb (Insert_Actions): Refine test.
! 
! 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
! 	switches) <-O>: Fix long line.
! 	* gnat_ugn.texi: Regenerate.
! 
! 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* usage.adb (Usage): Justify the documentation of common switches
! 	like that of other switches.  Rework that of the -O switch.
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
! 	switches) <-O>: Rework and document 'z' and 'g' operands.
! 	* doc/gnat_ugn/gnat_and_program_execution.rst (Optimization Levels):
! 	Rework and document -Oz and -Og switches.
! 	* gnat_ugn.texi: Regenerate.
! 
! 2025-06-10  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* einfo.ads: Revise comment about Dynamic_Predicate flag to make it
! 	more accurate.
! 	* sem_case.adb (Check_Choices): Test "not Has_Static_Predicate_Aspect"
! 	as additional guard for error about use of subtype with nonstatic
! 	predicate as a case choice. Improve related error message.
! 
! 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* freeze.adb (Freeze_Static_Object): Do not issue any error message
! 	for compiler-generated entities.
! 
! 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Deal with a
! 	transient scope being created around the declaration.
! 	* freeze.adb (Freeze_Entity): Do not call Freeze_Static_Object for
! 	a renaming declaration.
! 
! 2025-06-10  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Apply Enumeration_Pos
! 	to Entity (Expr) rather than Expr.
! 
! 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* sem_ch12.adb (Copy_Generic_Node): Do not call Root_Type to find
! 	the root type of an aggregate of a derived tagged type.
! 
! 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
! 
! 	* libgnarl/s-stusta.adb (Compute_All_Tasks): Skip terminated tasks.
! 
! 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* sem_ch3.adb (Constrain_Index): In the case of a fixed-lower-bound index,
! 	set Etype of the newly created itype's Scalar_Range from the index's Etype.
! 	* sem_ch12.adb (Validate_Array_Type_Instance): If the actual subtype is
! 	a fixed-lower-bound type, then check again the Etype of its Scalar_Range.
! 
! 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_prag.adb (Analyze_Pragma): Fix conditions for legality checks on
! 	formal type declarations.
! 
! 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* sem_prag.adb (Analyze_Pragma): If pragmas apply to a formal array
! 	type, then set the flags on the base type.
! 
! 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* exp_aggr.adb (Expand_Container_Aggregate): Use the Base_Type of the
! 	subtype provided by the context as the subtype of the temporary object
! 	initialized by the aggregate.
! 
! 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
! 
! 	* exp_attr.adb (Expand_N_Attribute_Reference): When expanding attribute
! 	Valid, use signedness from the validated view, not from its base type.
! 
! 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* contracts.adb (Inherit_Condition): Remove Assoc_List and its uses
! 	along with function Check_Condition, since mapping of formals will
! 	effectively be done in Build_Class_Wide_Expression (by Replace_Entity).
! 	* exp_util.adb (Replace_Entity): Only rewrite entity references in
! 	function calls that qualify according to the result of calling the
! 	new function Call_To_Parent_Dispatching_Op_Must_Be_Mapped.
! 	(Call_To_Parent_Dispatching_Op_Must_Be_Mapped): New function that
! 	determines whether a function call to a primitive of Par_Subp
! 	associated tagged type needs to be mapped (according to whether
! 	it has any actuals that reference controlling formals of the
! 	primitive).
! 
! 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Remove Decl
! 	formal parameter, add Typ and Const formal parameters.
! 	(Expand_N_Case_Expression): Fix pasto in comment.  Adjust call to
! 	Insert_Conditional_Object_Declaration and tidy up surrounding code.
! 	(Expand_N_If_Expression): Adjust couple of calls to
! 	Insert_Conditional_Object_Declaration.
! 
! 2025-06-06  Javier Miranda  <miranda@adacore.com>
! 
! 	* sem_ch4.adb (Constant_Indexing_OK): Add missing support for
! 	RM 4.1.6(13/3), and improve performance to avoid climbing more
! 	than needed. Add documentation.
! 	(Try_Indexing_Function): New subprogram.
! 	(Expr_Matches_In_Formal): Added new formals.
! 	(Handle_Selected_Component): New subprogram.
! 	(Has_IN_Mode): New subprogram.
! 	(Try_Container_Indexing): Add documentation, code reorganization
! 	and extend its functionality to improve its support for prefixed
! 	notation calls.
! 
! 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_ch10.adb (Install_Siblings.In_Context): Add missing guard.
  
! 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Make sure the
! 	object is allocated properly by the code generator at library level.
  
! 2025-06-06  Steve Baird  <baird@adacore.com>
  
! 	* sem_ch4.adb
! 	(Find_Unary_Types): Because we reanalyze names in an instance,
! 	we sometimes have to take steps to filter out extraneous name
! 	resolution candidates that happen to be visible at the point of the
! 	instance declaration. Remove some code that appears to have been
! 	written with this in mind. This is done for two reasons. First, the
! 	code sometimes doesn't work (possibly because the In_Instance test
! 	is not specific enough - it probably should be testing to see whether
! 	we are in an instance of the particular generic in which the result
! 	of calling Corresponding_Generic_Type was declared) and causes correct
! 	code to be rejected. Second, the code seems to no longer be necessary
! 	(possibly because of subsequent fixes in this area which are not
! 	specific to unary operators).
  
! 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_aggr.adb (Expand_Record_Aggregate): Use the named form for the
! 	second actual parameter in the call to Duplicate_Subexpr.
! 	* exp_attr.adb (Expand_Size_Attribute): Likewise.
! 	* exp_ch5.adb (Expand_Assign_Array): Likewise.
! 	(Expand_Assign_Array_Bitfield): Likewise.
! 	(Expand_Assign_Array_Bitfield_Fast): Likewise.
! 	* exp_util.ads (Duplicate_Subexpr): Add New_Scope formal parameter.
! 	(Duplicate_Subexpr_No_Checks): Likewise.
! 	(Duplicate_Subexpr_Move_Checks): Likewise.
! 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass Proc_Id as the
! 	actual for New_Scope in the calls to Duplicate_Subexpr_No_Checks.
! 	(Duplicate_Subexpr): Add New_Scope formal parameter and forward it
! 	in the call to New_Copy_Tree.
! 	(Duplicate_Subexpr_No_Checks): Likewise.
! 	(Duplicate_Subexpr_Move_Checks): Likewise.
  
! 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* checks.adb (Insert_Valid_Check): Set flag Assignment_OK in the object
! 	declaration inserted for the validity checks.
  
! 2025-06-05  Javier Miranda  <miranda@adacore.com>
  
! 	* exp_ch7.adb (Process_Object_Declaration): Avoid generating
! 	duplicate names for master nodes.
  
! 2025-06-05  Steve Baird  <baird@adacore.com>
  
! 	* sem_util.adb
! 	(Side_Effect_Free_Statements): Return False if the statement list
! 	includes an explicit (i.e. Comes_From_Source) raise statement.
  
! 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* exp_ch4.adb (Tagged_Membership): Fix for protected types.
  
! 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* exp_attr.adb (Interunit_Ref_OK): Tweak categorization of compilation
! 	units.
  
! 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_aggr.adb (Build_Two_Pass_Aggr_Code): New function containing
! 	most of the code initially present in Two_Pass_Aggregate_Expansion.
! 	(Two_Pass_Aggregate_Expansion): Remove redundant N parameter.
! 	Implement built-in-place expansion for (static) object declarations
! 	and allocators, using Build_Two_Pass_Aggr_Code for the main work.
! 	(Expand_Array_Aggregate): Adjust Two_Pass_Aggregate_Expansion call.
! 	Replace Etype (N) by Typ in a couple of places.
! 	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove special case for
! 	two-pass array aggregates.
! 	(Expand_N_Object_Declaration): Do not adjust the object when it is
! 	initialized by a two-pass array aggregate.
! 	* exp_ch4.adb (Expand_Allocator_Expression): Apply the processing
! 	used for container aggregates to two-pass array aggregates.
! 	* exp_ch6.adb (Validate_Subprogram_Calls): Skip calls present in
! 	initialization expressions of N_Object_Declaration nodes that have
! 	No_Initialization set.
! 	* sem_ch3.adb (Analyze_Object_Declaration): Detect the cases of an
! 	array originally initialized by an aggregate consistently.
  
! 2025-06-05  Viljar Indus  <indus@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_attributes.rst: Update the
! 	documentation for Valid_Value.
! 	* sem_attr.adb (Analyze_Attribute): Reject types where
! 	the root type originates from Standard.
  	* gnat_rm.texi: Regenerate.
  
! 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment
! 	for the indexed aggregate object to call Change_Make_OK_Assignment instead.
! 
! 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* exp_ch6.adb (Expand_Actuals): Remove obsolete comment.
! 	(Make_Build_In_Place_Call_In_Anonymous_Context): Always use a proper
! 	object declaration initialized with the function call in the cases
! 	where a temporary is needed, with Assignment_OK set on it.
! 	* sem_util.adb (Entity_Of): Deal with rewritten function call first.
! 
! 2025-06-05  Steve Baird  <baird@adacore.com>
! 
! 	* exp_attr.adb (Expand_N_Attribute_Reference): When accessing the
! 	maps declared in package Cached_Attribute_Ops, the key value
! 	passed to Get or to Set should never be the entity node for a
! 	subtype. Use the entity of the corresponding type declaration
! 	instead.
! 
! 2025-06-05  Steve Baird  <baird@adacore.com>
! 
! 	* sem_res.adb
! 	(Set_Mixed_Mode_Operand): If we are about to call Resolve
! 	passing in Any_Fixed as the expected type, then instead pass in
! 	the fixed point type of the other operand (i.e., B_Typ).
! 
! 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
! 
! 	* sem_util.adb (Check_Function_Writable_Actuals): Add handling for
! 	N_Iterated_Component_Association and N_Iterated_Element_Association.
! 	Fix a typo in an RM reference (6.4.1(20/3) => 6.4.1(6.20/3)).
! 	(Collect_Expression_Ids): New procedure factoring code for collecting
! 	identifiers from expressions of aggregate associations.
! 	(Handle_Association_Choices): New procedure factoring code for handling
! 	id collection for expressions of aggregate associations with multiple
! 	choices. Removed redundant test of Box_Present from original code.
! 
! 2025-05-05  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/120104
! 	* exp_ch3.adb (Expand_Freeze_Record_Type): For a controlled tagged
! 	type, freeze only the controlled primitives that are present.
! 
! 2025-04-30  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/112958
! 	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) [x86 FreeBSD]: Add specific
! 	version of s-dorepr.adb.
! 	* libgnat/s-dorepr__freebsd.adb: New file.
! 
! 2025-04-30  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/112958
! 	* init.c (__gnat_error_handler) [__FreeBSD__]: Fix typo.
! 
! 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
--- 1,1086 ----
! 2026-04-20  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124918
! 	* gcc-interface/Makefile.in (TOOLS1_LIBS): Restore.
! 	(../../gnatmake$(exeext)): Link with $(TOOLS1_LIBS).
! 	(../../gnatlink$(exeext)): Likewise.
  
! 2026-04-19  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124918
! 	* gcc-interface/Makefile.in (TGT_LIB): Move up.
! 	(LIBBACKTRACE): Likewise.
! 	(LIBIBERTY): Likewise.
! 	(LIBGNAT): Likewise.
! 	(LIBS): Likewise.
! 	(TOOLS_LIBS): Use $(LIBS).
! 	(TOOLS1_LIBS): Delete.
! 	(../../gnatmake$(exeext)): Do not link with $(TOOLS1_LIBS).
! 	(../../gnatlink$(exeext)): Likewise.
  
! 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/107392
! 	* sem_res.adb: Add clauses for Ttypes.
! 	(Resolve.Patch_Up_Value): Do not try to convert real literals that
! 	do not fit in Universal_Integer.
  
! 2026-04-17  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/107391
! 	* urealp.adb (Decimal_Exponent_Hi): Check that the denominator is
! 	in range before invoking UI_To_Int on it, and cope with failure.
! 	(Decimal_Exponent_Lo): Likewise.
  
! 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/105212
! 	* exp_aggr.adb (Build_Array_Aggr_Code): If the aggregate comes from
! 	source, call Set_Referenced_Modified on the target.
  
! 2026-04-15  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/87170
! 	* sem_res.adb (Resolve_String_Literal): Copy Comes_From_Source from
! 	the string literal to the character literals.
  
! 2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/95452
! 	* libgnat/g-heasor.adb (Sort.Sift): Add guard against overflow.
! 	* libgnat/g-hesorg.adb (Sort.Sift): Likewise.
! 	* libgnat/g-hesora.adb (Sort.Sift): Likewise.  Restore consistency.
  
! 2026-04-13  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/77535
! 	* libgnat/s-pehage.adb (New_Word): Rebase the input.
  
! 2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124836
! 	* adaint.c [__MINGW32__]: Do not include mingw32.h twice, and also
! 	include sys/param.h.
  
! 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	PR other/124784
! 	* gcc-interface/lang.opt.urls: Regenerated.
  
! 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return
! 	object when the simple return is rewritten as an extended one.
! 	* libgnat/s-secsta.adb (SS_Allocate): Raise Storage_Error if the
! 	requested size is negative.
! 	* libgnat/s-secsta__cheri.adb (SS_Allocate): Likewise.
  
! 2026-04-03  Tonu Naks  <naks@adacore.com>
  
! 	* doc/gnat_rm/gnat_language_extensions.rst: Adjust rules for
! 	structural generic instantiations.
  	* gnat_rm.texi: Regenerate.
  
! 2026-03-31  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_attr.adb (Analyze_Attribute) <Attribute_Reduce>: Rewrite the
! 	analysis of a non-overloaded reducer.  Moreover, when both actuals
! 	are overloaded, compute the set of possible interpretations.
! 	(Resolve_Attribute) <Attribute_Reduce>: Streamline the processing.
  
! 2026-03-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_ch12.adb (Analyze_Structural_Associations): Create a local
! 	instance instead of a structural instance when a local entity of
! 	a library-level package is used in a subprogram instantiation.
  
! 2026-03-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124596
! 	* sem_ch12.ads (Check_Private_View): Move around.
! 	* sem_ch12.adb (Check_Private_View): Retrieve the partial view
! 	by means of a call to Incomplete_Or_Partial_View.
! 	(Save_Global_References.Set_Global_Type): Do not force the full
! 	view of a type when only the partial declaration is visible.
! 	* sem_res.adb (Resolve_Actuals.Insert_Default): Remove obsolete
! 	code coping with the above kludge.
  
! 2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124607
! 	* sem_elab.adb (Has_Body.Find_Body): Fix thinko.
  
! 2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124606
! 	* sem_ch12.adb (Find_Actual_Type): Rename formal parameter.
! 	(Map_Formal_Package_Entities): Do not register base types.
  
! 2026-03-20  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/120669
! 	* sem_ch4.adb (Analyze_Explicit_Dereference): Remove interpretations
! 	of the prefix only if they are of access types.
! 	(Analyze_One_Call.Indicate_Name_And_Type): Check for an implicit
! 	dereference only after indicating the name and type of the call.
! 	* sem_ch5.adb (Analyze_Assignment): Do not remove interpretations
! 	for the LHS if they are for a type with implicit dereference.
! 	* sem_res.adb (Resolve): Streamline the processing of overloaded
! 	nodes once an interpretation is picked for them.  Add a specific
! 	handling for additional interpretations for generalized references.
! 	(Resolve_Explicit_Dereference): Remove interpretations of the prefix
! 	only if they are of access types.
! 	(Is_Ambiguous_Operand): Skip the direct interpretation for a limited
! 	type that has implicit dereference.
! 	* sem_type.adb (Add_One_Interp): Set the name of the first entry of
! 	the table of interpretations in more cases.
  
! 2026-03-14  Matthias Klose  <doko@gcc.gnu.org>
  
! 	PR ada/107475
! 	* Makefile.rtl (s390% linux%): Define MISCLIB.
! 	(arm% linux-gnueabi%): Likewise.
! 	(%x32 linux%): Likewise.
  
! 2026-03-12  Steve Baird  <baird@adacore.com>
  
! 	PR ada/124016
! 	* libgnat/a-cbinho.adb (Create_Subpool): Handle the case where
! 	the type Holder_Subpool has nontrivial finalization. Declare the
! 	local variable Subpool with its Import aspect specified (to avoid
! 	unwanted finalization), and make corresponding changes in order to
! 	initialize that variable.
! 	* libgnat/s-stposu.ads (_Adjust_Clone): New procedure.
! 	* libgnat/s-stposu.adb (_Adjust_Clone): New body.
  
! 2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124369
! 	* accessibility.adb (Accessibility_Message): Give an error instead
! 	of a warning in an instance when No_Dynamic_Accessibility_Checks is
! 	in effect.
! 	(Innermost_Master_Scope_Depth): Restore the original computation of
! 	the nearest enclosing dynamic scope.
! 	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Call the
! 	Accessibility_Message routine in all cases to give accessibility
! 	errors and do not return.  Call the Static_Accessibility_Level
! 	function in all cases to compute static accessibility levels.
! 	Add guard before calling Prefix_With_Safe_Accessibility_Level.
  
! 2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124376
! 	* sem_res.adb (Resolve_Actuals.Check_Aliased_Parameter): Deal with
! 	assignment statements.
  
! 2026-03-12  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124376
! 	* accessibility.adb (Accessibility_Level): Minor formatting tweaks.
! 	(Accessibility_Level.Function_Call_Or_Allocator_Level): Implement
! 	AI12-0402.  Reimplement the loop climbing up the parent chain to
! 	find an object being initialized.  Restrict the specific handling
! 	of N_Assignment_Statement nodes to the anonymous access type case.
! 	* doc/gnat_rm/implementation_of_ada_2022_features.rst: Adjust the
! 	entries of AI12-0277, AI12-0345 & AI12-0372, add one for AI12-0402.
  	* gnat_rm.texi: Regenerate.
  
! 2026-03-07  Eric Botcazou  <ebotcazou@gcc.gnu.org>
  
! 	PR target/124336
! 	* init.c (__gnat_adjust_context_for_raise) [x86/Linux]: Fix typo.
  
! 2026-03-07  Eric Botcazou  <ebotcazou@gcc.gnu.org>
  
! 	PR target/124336
! 	* init.c (__gnat_adjust_context_for_raise) [x86/Linux]: Adjust
! 	pattern matching to new stack probes.
  
! 2026-02-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124285
! 	* gcc-interface/decl.cc (components_to_record): Force a packed
! 	layout for the innermost variant of an unchecked union type with
! 	fixed part and full representation clause.
  
! 2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124201
! 	PR ada/124282
! 	* exp_aggr.adb (Expand_Iterated_Component): Replace the iteration
! 	variable in the expression as well.
! 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Preanalyze
! 	the expression directly as well.
  
! 2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123306
! 	* freeze.adb (Freeze_Entity): For a class-wide equivalent type of
! 	a non-interface root type, freeze the root type before it.
! 	* sem_ch3.adb (Derived_Type_Declaration): Minor tweak.
! 	* sem_ch12.adb (Analyze_One_Association): Revert latest change.
! 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: When
! 	the prefix is a class-wide type, insert the declaration of the CW-
! 	equivalent type immediately after that of the root type, and the
! 	size check for the root type into its own freezing actions.
  
! 2026-02-26  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124201
! 	* exp_aggr.adb (Expand_Iterated_Component): Replace the iteration
! 	variable in the key expression and iterator filter, if any.
! 	* sem_aggr.adb (Resolve_Iterated_Component_Association): Preanalyze
! 	the specification and key expression directly.
  
! 2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124226
! 	* sem_res.adb (Resolve_Implicit_Dereference): Move declaration to...
! 	* sem_res.ads (Resolve_Implicit_Dereference): ...here.
! 	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Also call
! 	Resolve_Implicit_Dereference when resolving a protected operation.
  
! 2026-02-24  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/124224
! 	* sem_aggr.adb (Resolve_Container_Aggregate): Minor tweaks.
! 	(Resolve_Iterated_Association): Compute Typ on all paths.
  
! 2026-02-22  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124192
! 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
! 	(Max_Tasks): Adjust description.
! 	* gnat_rm.texi: Regenerate.
  
! 2026-02-22  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124179
! 	* sem_ch9.adb (Analyze_Triggering_Alternative): Use more robust
! 	test for delay and entry call statements and fix thinko in test
! 	for procedure call statements.
  
! 2026-02-20  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* libgnat/s-stposu.adb (Finalize_Pool): Pass a local copy of the
! 	handle in the call to Finalize_And_Deallocate.
  
! 2026-02-16  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/124106
! 	* exp_ch4.adb (Expand_N_Allocator): Minor fix in commentary.
! 	(Expand_Allocator_Expression): Propagate the Subpool_Handle_Name
! 	of the original allocator onto the newly built allocators.
! 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
! 	Use Preserve_Comes_From_Source to propagate Comes_From_Source.
! 	(Make_CPP_Constructor_Call_In_Allocator): Likewise.
  
! 2026-02-11  Steve Baird  <baird@adacore.com>
  
! 	PR ada/124016
! 	* doc/gnat_rm/implementation_defined_attributes.rst: Document
! 	that Finalization_Size attribute is defined for class-wide types.
! 	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
! 	Add support for class-wide types.
! 	<Size>: Raise Constraint_Error for class-wide types.
! 	* exp_imgv.adb (Expand_Image_Attribute): Adjust call to renaming.
! 	(Expand_Wide_Image_Attribute): Likewise.
! 	(Expand_Wide_Wide_Image_Attribute): Likewise.
! 	* sem_attr.ads (Finalization_Size): Update comment.
! 	* sem_attr.adb (Analyze_Image): Adjust call to renaming.
! 	(Analyze_Attribute): Remove check disallowing Finalization_Size
! 	attribute for class-wide types.
! 	* sem_util.ads (Is_Object_Image): Rename into...
! 	(Is_Object_Prefix): ...this.
! 	* sem_util.adb (Is_Object_Image): Rename into...
! 	(Is_Object_Prefix): ...this.
! 	* libgnat/a-cbinho.ads (Extra_Storage): Use Descriptor_Size and
! 	Finalization_Size attributes.
! 	(Max_Allocation_Overhead_In_Storage_Elements): Delete.
  
! 2026-02-11  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/124054
! 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Tidy up and pass
! 	Proc_Id as the new scope in the call to the New_Copy_Tree function.
  
! 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/124025
! 	* exp_ch9.adb (Expand_Entry_Barrier.Is_Global_Entity): Use
! 	Scope_Within_Or_Same to test whether the object is local.
  
! 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/121576
! 	* freeze.adb (Freeze_Array_Type): When the component size is
! 	specified, check that it is valid when the component type is
! 	either a fixed-point type or a bit-packed array type.
  
! 2026-02-03  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* checks.adb (Apply_Discriminant_Check): Bail out for a source type
! 	that is a class-wide type whose root type has no discriminants.
! 	* exp_ch4.adb (Expand_N_Type_Conversion): If the target type is an
! 	access type, emit null access checks before accessibility checks.
! 	* sem_util.adb (In_Return_Value): Deal again with assignments to
! 	return objects.
  
! 2026-02-02  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/89159
! 	* sem_ch6.adb (Conforming_Types.Is_Matching_Limited_View): Return
! 	true when the type is an incomplete view of the non-limited view.
  
! 2026-02-01  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/123902
! 	* sem_ch4.adb (Analyze_Selected_Component): Also test
! 	Core_Extensions_Allowed for discriminated private types.
! 	Rework and augment commentary throughout the procedure.
  
! 2026-02-01  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Liam Powell  <liam@liampwll.com>
  
! 	PR ada/121316
! 	* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Minor tweak.
! 	(Expand_Iterator_Loop_Over_Container): Likewise.
! 	(Expand_N_Loop_Statement): Use Statements (N) throughout.
  
! 2026-01-30  Gary Dismukes  <dismukes@adacore.com>
  
! 	* sem_ch8.adb (End_Use_Type): Remove test of Prev_Use_Clause as
! 	as a condition for resetting In_Use and Current_Use_Clause, and
! 	change setting of that flag and field based on Prev_Use_Clause
! 	rather than setting them to Empty. Revise preceding comment.
  
! 2026-01-30  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123867
! 	* sem_ch10.adb (Analyze_Compilation_Unit): Output info message
! 	when -gnatdi is specified.
! 	(Install_Parents): Likewise.  Set the Is_Visible_Lib_Unit flag
! 	on the unit.
! 	(Install_Private_With_Clauses): Do not output info message here.
! 	(Remove_Parents): Output info message when -gnatdi is specified
! 	and clear the Is_Visible_Lib_Unit flag on the unit.
  
! 2026-01-29  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123861
! 	* sem_type.adb (Covers): Fix couple of typos in comment.
! 	(Specific_Type): Adjust to Covers' handling of types declared
! 	with the Aggregate aspect in Ada 2022.
  
! 2026-01-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123857
! 	* checks.adb (Apply_Parameter_Validity_Checks.Add_Validity_Check):
! 	Set Is_Checked on the generated {Pre,Post}_Condition pragma and
! 	bail out if the parameter is of an Unchecked_Union type.
  
! 2026-01-28  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123832
! 	* exp_imgv.adb: Add with and use clauses for Exp_Ch7.
! 	(Expand_Image_Attribute): Establish a transient scope before
! 	rewriting the attribute as a call to Put_Image.
! 	(Expand_Wide_Image_Attribute): Likewise.
! 	(Expand_Wide_Wide_Image_Attribute): Likewise.
! 	* exp_put_image.ads (Build_Image_Call): Add note about the
! 	need for a transient scope when the function is invoked.
! 	* exp_put_image.adb (Build_Image_Call): Call Insert_Actions
! 	to immediately insert the actions instead of wrapping them
! 	in an Expression_With_Actions node.
  
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	* gcc-interface/lang.opt.urls: Regenerated.
  
! 2026-01-21  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123580
! 	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): Replace call to
! 	Scope_Within_Or_Same (Current_Scope, S) with In_Open_Scopes (S) to
! 	test whether S is open in the current scope.
! 	* sem_util.adb (From_Nested_Package): Likewise.
  
! 2026-01-17  Eric Botcazou  <ebotcazou@adacore.com>
! 	    Lisa Felidae  <lisa@felidae.bam.moe>
  
! 	PR ada/68179
! 	PR ada/123589
! 	* exp_ch3.adb (Expand_Freeze_Array_Type): Build an initialization
! 	procedure for a bit-packed array type if Has_Default_Aspect is set
! 	on the base type, but make sure not to build it twice.  Also test
! 	Has_Default_Aspect for a type derived from String.
  
! 2026-01-10  Iain Sandoe  <iain@sandoe.co.uk>
  
! 	* libgnarl/s-osinte__darwin.adb: Delete unneeded use clause.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/trans.cc (gnat_to_gnu): Add comment explaining why
! 	it is necessary to remove the padding for an object of a type with
! 	self-referential size when it is not converted to the result type.
! 	* gcc-interface/utils2.cc (build_binary_op) <MODIFY_EXPR>: For an
! 	assignment between small padded objects of the same type with self-
! 	referential size, and which have the same (constant) size, use the
! 	padded view of the objects.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* gcc-interface/trans.cc (gnat_to_gnu): For the LHS of an assignment
! 	or an actual parameter of a call, do not remove the padding even for
! 	a type of self-referential size when the padded size is small enough
! 	to be copied efficiently.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_ch12.ads (Save_Global_References_In_Aspects): Move to...
! 	* sem_ch12.adb (Save_Global_References_In_Aspects): Move to...
! 	* contracts.adb (Save_Global_References_In_Contract): ...here.
  
! 2026-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* exp_ch3.adb (Expand_N_Object_Declaration): Remove previous patch
! 	and place the call to the constructor into a compound statement
! 	attached to the object; the compound statement will be moved to
! 	the freezing actions of the object if the object has an address
! 	clause.
  
! 2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>
  
! 	* sem_ch13.adb (Check_Constructor_Initialization_Expression): The first
! 	parameter of an implicit constructor comes from Specification, not
! 	Corresponding_Spec.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch4.adb (Expand_N_Type_Conversion): Restore Comes_From_Source
! 	test on N itself instead of its parent node.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* accessibility.adb (Function_Call_Or_Allocator_Level): Return the
! 	level of the subprogram in Ada 95 only in the case where the result
! 	type is a return-by-reference type.
  
! 2026-01-09  Steve Baird  <baird@adacore.com>
  
! 	* libgnat/a-cbinho.ads: add Warnings pragmas.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* accessibility.adb (Function_Call_Or_Allocator_Level): Adjust the
! 	latest change to cope with _Wrapped_Statements functions.
! 	* einfo.ads (Wrapped_Statements): Fix description.
! 	* sem_util.adb (In_Return_Value): Fix typo in comment.
  
! 2026-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* checks.ads (Convert_From_Bignum): Add a new formal and update
! 	documentation.
! 	(Convert_To_Bignum): Update documentation.
! 	* checks.adb (Is_Signed_Integer_Arithmetic_Op): Renamed as
! 	Is_Overflow_Arithmetic_Op, and replace calls to function
! 	Is_Signed_Integer_Type by calls to Has_Overflow_Operations.
! 	(Apply_Arithmetic_Overflow_Minimized_Eliminated): Add support
! 	for types with the Unsigned_Base_Range aspect.
! 	(Apply_Divide_Checks): Replace calls to Is_Signed_Integer_Type
! 	by calls to Has_Overflow_Operations.
! 	(Compute_Range_For_Arithmetic_Op): Adjust comment.
! 	(Convert_To_Bignum): Add support for types with the Unsigned_
! 	Base_Range aspect.
! 	(Convert_From_Bignum): Add support for result type with the
! 	Unsigned_Base_Range aspect.
! 	(Minimize_Eliminate_Overflows): Add support for types with the
! 	Unsigned_Base_Range aspect.
! 	* exp_ch4.adb (Minimized_Eliminated_Overflow_Check): Replace
! 	call to Is_Signed_Integer_Type by call to Has_Overflow_Operations.
! 	(Expand_Compare_Minimize_Eliminate_Overflow): Add support for types
! 	with the Unsigned_Base_Range aspect.
! 	(Expand_Membership_Minimize_Eliminate_Overflow): Ditto.
! 	(Expand_N_Op_Expon): Ditto.
! 	(Expand_Exponentiation): New subprogram.
! 	* rtsfind.ads (RE_Id): Add RE_LLU_To_Bignum, RE_LLU_From_Bignum.
! 	* libgnat/s-bignum.ads (LLU_To_Bignum): New subprogram.
! 	(LLU_From_Bignum): New subprogram.
! 	* libgnat/s-bignum.adb (LLU_To_Bignum): New subprogram.
! 	(LLU_From_Bignum): New subprogram.
! 	* libgnat/s-genbig.ads (From_Bignum): New overloaded functions
! 	for Long_Long_Long_Unsigned and Long_Long_Unsigned types.
! 	(To_Bignum): Ditto.
! 	* libgnat/s-genbig.adb (From_Bignum): New overloaded functions
! 	for Long_Long_Long_Unsigned and Long_Long_Unsigned types.
! 	(To_Bignum): Ditto.
! 	* libgnat/s-expuns.ads (Exp_Unsigned): Fix documentation.
! 	* libgnat/s-expllu.ads (Exp_Long_Long_Unsigned): Ditto.
! 	* libgnat/s-explllu.ads (Exp_Long_Long_Long_Unsigned): Add missing
! 	documentation.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* accessibility.ads (Is_Special_Aliased_Formal_Access): Delete.
! 	* accessibility.adb (Is_Special_Aliased_Formal_Access): Likewise.
! 	(Accessibility_Level.Innermost_Master_Scope_Depth): Look for non-
! 	package bodies and statements directly.
! 	(Accessibility_Level.Function_Call_Or_Allocator_Level): For a
! 	function call in a return context, return the extra level of the
! 	master of the call only for dynamic checks.
! 	(Accessibility_Level) <N_Defining_Identifier>: Always return the
! 	library level for an explicitly aliased parameter in the context
! 	of a return from the subprogram where it is declared.
! 	* exp_ch4.adb (Expand_N_Allocator): Test manually whether the
! 	context is a return statement instead of calling In_Return_Value.
! 	(Expand_N_Type_Conversion): Do not apply accessibility checks to
! 	actuals of a tagged type in a synthesized subprogram call.
! 	* sem_attr.adb (Resolve_Attribute) <Access>: Remove specific test
! 	for explicitly aliased parameters.
! 	* sem_ch4.adb: Remove clauses for Accessibility package.
! 	(Analyze_Call): Do not apply static accessibility checks here...
! 	* sem_res.adb (Resolve_Actuals): ...but here instead.  Implement
! 	a generalized form of AI12-0402.
! 	(Valid_Conversion): Apply static accessibility checks in extended
! 	return statements too.
! 	* sem_util.ads (In_Return_Value): Adjust description.
! 	(Is_Master): Delete.
! 	* sem_util.adb (Is_Explicitly_Aliased): Reindent.
! 	(In_Return_Value): Reimplement.
! 	(Is_Master): Delete.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
! 	    Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* errout.adb (Insert): New function to create an insertion fix.
! 	(Deletion): New function to create a deletion fix.
! 	* errout.ads: Likewise.
! 	* sem_warn.adb (Create_Add_Constant_Fix): New function to create
! 	a fix for adding a constant qualifier for a variable declaration.
! 	(Change_In_Out_To_In_Fix): New function to create a fix for
! 	convertinting an in out parameter direction to a an in direction.
  
! 2026-01-09  Tonu Naks  <naks@adacore.com>
  
! 	* doc/gnat_rm/implementation_of_ada_2022_features.rst: update
! 	AI12-0350, add AI12-0254.
  	* gnat_rm.texi: Regenerate.
  	* gnat_ugn.texi: Regenerate.
  
! 2026-01-09  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* adaint.c (__gnat_set_thread_description): New function.
! 	* libgnarl/s-taprop__mingw.adb (Enter_Task): Set thread description.
! 	* rtinit.c (__gnat_runtime_initialize): Set up function pointer.
! 	* mingw32.h (HRESULT, pSetThreadDescription): New.
  
! 2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>
  
! 	* exp_ch3.adb (Build_Init_Procedure): Remove call to constructors.
! 	(Build_Default_Simple_Initialization): Implicit call to parameterless constructors in new
! 	allocations.
! 	(Expand_Freeze_Record_Type): Freeze constructors as we would freeze predefined operations.
! 	(Constructor_Freeze): Freeze all constructors.
! 	* sem_attr.adb (Analyze_Attribute): Handle missing parameterless constructors.
! 	* sem_ch3.adb: The default constructor is now called parameterless.
! 	* sem_util.adb (Find_Matching_Constructor): Return the constructor
! 	matching the given condition. Before it was just checking its
! 	existence.
! 	(Has_Copy_Constructor): Move it upward to maintain alphabetic
! 	order of utility subprograms.
! 	(Has_Parameterless_Constructor): The default constructor is now called parameterless.
! 	(Has_Explicit_Constructor): New utility to check for constructors
! 	defined by the user. Used to understand if an implicit
! 	parameterless constructor exists.
! 	(Is_Copy_Constructor): Refactor easier control flow.
! 	(Is_Parameterless_Constructor): New utility to check if a constructor has a profile
! 	compatible with the parameterless constructor.
! 	* sem_util.ads: Likewise.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* errid-diagnostic_repository.ads: Update the diagnostic repository.
! 	* errid-switch_repository.ads: Update the switch repository.
! 	* errid.ads: Add new Diagnostic_Id-s.
! 	* sem_warn.adb (Check_References): Add Diagnostic_Id-s for
! 	error messages triggered by -gnatwk.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* errid.adb (Check_Diagnostic_To_Switch_Consistency): New subprogram
! 	for checking the consistency of diagnostics.
! 	(Check_Switch_To_Diagnostic_Consistency) New subprogram for checking
! 	the consistency of switches.
! 	(Add_All_Diagnostic_Rules): Check diagnostic consitency.
! 	(Add_All_Switch_Rules): Check switch consitency.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* debug.adb: remove use case for -gnatd_E
! 	* errout.adb (Output_Messages): remove printing of
! 	the diagnostic repository when -gnatd_E is used.
! 	* gnatcmd.adb: Add support for printing the diagnostic repository.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* errid-diagnostic_repository.ads: New package for storing
! 	information about diagnostics.
! 	* errid-switch_repository.adb: New package for storing
! 	information about switches.
! 	* errid-switch_repository.ads: Likewise.
! 	* errid.adb: Move common methods related to Diagnostic_Id-s and
! 	Switch_Id-s to this pacakge.
! 	* errid.ads: Likewise.
! 	* errout.adb (Add_Unique_Diagnostics_And_Switches): New method
! 	for gathering all of the unique Diagnostic_Id-s and Switch_Id-s
! 	among all of the error messages.
! 	(Output_Messages): Use the new SARIF printer interface for printing
! 	the report.
! 	* erroutc-sarif_emitter.adb (Print_Relationship): New method for
! 	printing relationship nodes.
! 	(Print_Rule): Support printing switches as rules. Add support
! 	for printing relationship nodes under rules. Remove brackets around
! 	the rule name.
! 	(Print_Runs): Add a printer argument to pass all of the switches
! 	and diagnostics as rules in the SARIF report.
! 	(Print_Tool): Likewise.
! 	(Free): New method.
! 	(Get_Unique_Rules): Removed.
! 	(Print_Result): Remove brackets around the rule name.
! 	(Print_Rules): Print switches as rules.
! 	* erroutc-sarif_emitter.ads (SARIF_Printer): New record type for
! 	storing and passing all of the diagnostic and switch information
! 	around in the SARIF printer.
! 	(Report_Kind): New type for indicating the different reports the
! 	SARIF emitter can produce.
! 	(Free): New method for releasing all of the dynamically allocated
! 	memory.
! 	(Print_SARIF_Report): Add a SARIF_Printer argument.
! 	* erroutc.adb (Get_Human_Id): Removed.
! 	(Get_Switch): Removed.
! 	(Get_Doc_Switch): Simplify code.
! 	* erroutc.ads: (Get_Human_Id): Removed.
! 	(Get_Switch): Removed.
! 	* errsw.adb: Replaced by errid-switch_repository.adb.
! 	* errsw.ads: Replaced by errid-switch_repository.ads.
! 	* errutil.adb: Remove dependecy to errsw pacakge.
! 	* par-endh.adb: Fix whitespace.
! 	* gcc-interface/Make-lang.in: Update the dependencies.
! 	* gcc-interface/Makefile.in: Likewise.
  
! 2026-01-09  Steve Baird  <baird@adacore.com>
  
! 	* doc/gnat_rm/implementation_defined_attributes.rst: Document the
! 	From_Address attribute.
! 	* exp_attr.adb (Expand_N_Attribute_Reference): Implement expansion
! 	of a From_Address attribute reference.
! 	* sem_attr.adb (Analyze_Attribute): Implement analysis of a
! 	From_Address attribute reference.
! 	(Eval_Attribute): A From_Address attribute reference cannot be
! 	statically evaluated.
! 	* snames.ads-tmpl: Declare Name_From_Address and Attribute_From_Address.
  	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
  
! 2026-01-09  Steve Baird  <baird@adacore.com>
  
! 	* sem_ch13.adb (Analyze_Aspect_Specifications): Add new legality
! 	checks for Super and Initialize aspect specifications, implemented
! 	by calling a new local procedure,
! 	Check_Constructor_Initialization_Expression.
  
! 2026-01-09  Steve Baird  <baird@adacore.com>
  
! 	* Makefile.rtl: add entry for new unit
! 	* impunit.adb: add entry for new unit
! 	* libgnat/a-cbinho.adb: new file with body for new unit
! 	* libgnat/a-cbinho.ads: new file with spec for new unit
! 	* libgnat/a-coboho.ads: add comment
! 	* libgnat/a-undesu.ads: add Preelaborate aspect specification,
! 	as per AI22-0050.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	PR ada/123003
! 	* accessibility.adb: Remove unused clauses.
! 	* aspects.adb: Likewise.
! 	* checks.adb: Likewise.
! 	* comperr.adb: Likewise.
! 	* contracts.adb: Likewise.
! 	* cstand.adb: Likewise.
! 	* debug_a.adb: Likewise.
! 	* errout.adb: Likewise.
! 	* eval_fat.adb: Likewise.
! 	* exp_aggr.adb: Likewise.
! 	* exp_atag.adb: Likewise.
! 	* exp_attr.adb: Likewise.
! 	* exp_cg.adb: Likewise.
! 	* exp_ch11.adb: Likewise.
! 	* exp_ch12.adb: Likewise.
! 	* exp_ch13.adb: Likewise.
! 	* exp_ch2.adb: Likewise.
! 	* exp_ch3.adb: Likewise.
! 	* exp_ch4.adb: Likewise.
! 	* exp_ch5.adb: Likewise.
! 	* exp_ch6.adb: Likewise.
! 	* exp_ch7.adb: Likewise.
! 	* exp_ch8.adb: Likewise.
! 	* exp_ch9.adb: Likewise.
! 	* exp_code.adb: Likewise.
! 	* exp_dbug.adb: Likewise.
! 	* exp_disp.adb: Likewise.
! 	* exp_dist.adb: Likewise.
! 	* exp_fixd.adb: Likewise.
! 	* exp_imgv.adb: Likewise.
! 	* exp_intr.adb: Likewise.
! 	* exp_pakd.adb: Likewise.
! 	* exp_prag.adb: Likewise.
! 	* exp_put_image.adb: Likewise.
! 	* exp_sel.adb: Likewise.
! 	* exp_smem.adb: Likewise.
! 	* exp_spark.adb: Likewise.
! 	* exp_strm.adb: Likewise.
! 	* exp_tss.adb: Likewise.
! 	* exp_unst.adb: Likewise.
! 	* exp_util.adb: Likewise.
! 	* exp_util.ads: Likewise.
! 	* expander.adb: Likewise.
! 	* freeze.adb: Likewise.
! 	* frontend.adb: Likewise.
! 	* ghost.adb: Likewise.
! 	* gnat1drv.adb: Likewise.
! 	* gnat_cuda.adb: Likewise.
! 	* impunit.adb: Likewise.
! 	* inline.adb: Likewise.
! 	* itypes.adb: Likewise.
! 	* itypes.ads: Likewise.
! 	* layout.adb: Likewise.
! 	* lib.adb: Likewise.
! 	* libgnarl/s-tasuti.adb: Likewise.
! 	* live.adb: Likewise.
! 	* local_restrict.adb: Likewise.
! 	* mutably_tagged.adb: Likewise.
! 	* nlists.adb: Likewise.
! 	* par.adb: Likewise.
! 	* par_sco.adb: Likewise.
! 	* pprint.adb: Likewise.
! 	* repinfo.adb: Likewise.
! 	* restrict.adb: Likewise.
! 	* rtsfind.adb: Likewise.
! 	* scil_ll.adb: Likewise.
! 	* scn.adb: Likewise.
! 	* sem.adb: Likewise.
! 	* sem_aggr.adb: Likewise.
! 	* sem_attr.adb: Likewise.
! 	* sem_aux.adb: Likewise.
! 	* sem_case.adb: Likewise.
! 	* sem_cat.adb: Likewise.
! 	* sem_ch10.adb: Likewise.
! 	* sem_ch11.adb: Likewise.
! 	* sem_ch12.adb: Likewise.
! 	* sem_ch13.adb: Likewise.
! 	* sem_ch2.adb: Likewise.
! 	* sem_ch3.adb: Likewise.
! 	* sem_ch4.adb: Likewise.
! 	* sem_ch5.adb: Likewise.
! 	* sem_ch6.adb: Likewise.
! 	* sem_ch7.adb: Likewise.
! 	* sem_ch9.adb: Likewise.
! 	* sem_dim.adb: Likewise.
! 	* sem_disp.adb: Likewise.
! 	* sem_dist.adb: Likewise.
! 	* sem_elab.adb: Likewise.
! 	* sem_elim.adb: Likewise.
! 	* sem_eval.adb: Likewise.
! 	* sem_intr.adb: Likewise.
! 	* sem_mech.adb: Likewise.
! 	* sem_prag.adb: Likewise.
! 	* sem_res.adb: Likewise.
! 	* sem_scil.adb: Likewise.
! 	* sem_smem.adb: Likewise.
! 	* sem_type.adb: Likewise.
! 	* sem_util.adb: Likewise.
! 	* sem_util.ads: Likewise.
! 	* sem_warn.adb: Likewise.
! 	* sinput.adb: Likewise.
! 	* sprint.adb: Likewise.
! 	* strub.adb: Likewise.
! 	* style.adb: Likewise.
! 	* styleg.adb: Likewise.
! 	* tbuild.adb: Likewise.
! 	* tbuild.ads: Likewise.
! 	* treepr.adb: Likewise.
! 	* uname.adb: Likewise.
! 	* sem_ch8.adb: Likewise.
! 	(Mark_Use_Clauses.Mark_Use_Package): Do not recurse on the prefix
! 	for a package given by an expanded name.
  
! 2026-01-09  Bob Duff  <duff@adacore.com>
  
! 	* debug.adb: Remove doc for gnatd_X; no longer used.
! 	* einfo.ads: Minor comment improvement.
! 	* exp_ch3.adb: Minor reformatting.
! 	* exp_ch6.adb (Check_BIP_Actuals): Export.
! 	(Validate_Subprogram_Calls): Move to Vast.
! 	* exp_ch6.ads (Check_BIP_Actuals): Export.
! 	* exp_ch7.adb (Make_Init_Call): Remove obsolete Set_Assignment_OK.
! 	* frontend.adb: Move Validate_Subprogram_Calls call to VAST,
! 	as the comment suggested.
! 	* par.adb: Minor comment improvements.
! 	* par-ch13.adb (Get_Aspect_Specifications):
! 	Misc cleanup, including removal of redundant setting
! 	of Aspects, and changing multiple 'if's to 'case'.
! 	* par-ch4.adb (P_Simple_Name_Resync): Do not refer to Token_Node
! 	when it is documented as not defined.
! 	* par-ch6.adb: Minor comment improvement.
! 	* par-util.adb (Bad_Spelling_Of): After setting Token from
! 	identifier to keyword, destroy Token_Node, so it doesn't get
! 	accidentally used.
! 	* scans.adb (Save_Scan_State, Restore_Scan_State):
! 	Put these in logical order. Make sure we're not saving
! 	and restoring bogus information in Token_Node.
! 	* scans.ads: Fix incorrect comment.
! 	* scn.ads: Minor comment improvements. Do not duplicate (wrong)
! 	information from Scans.
! 	* scng.adb: Set Token_Node to Empty initially, so we don't
! 	accidentally refer to bogus information from previous tokens.
! 	* scng.ads: Minor comment improvement (remove information
! 	about one actual from comment on the formal).
! 	* sem_aux.ads (Initialization_Suppressed):
! 	Minor comment improvement.
! 	* sem_ch6.adb: Remove usage of Debug_Flag_Underscore_XX.
! 	This code is pretty well tested by now, and anyway, it's
! 	only called from within pragmas Assert.
! 	* sem_util.adb (Enter_Name): Minor cleanup.
! 	* sprint.adb (Dump_Generated_Only): Fix incorrect comment.
! 	* vast.adb: Misc cleanup. Enable assertion about
! 	Errout.Compilation_Errors (should be False if back end
! 	is enabled).
! 	(Validate_Subprogram_Calls): Move here from frontend.adb.
! 	Move call to it here from frontend.adb.
  
! 2026-01-09  Gary Dismukes  <dismukes@adacore.com>
  
! 	* sem_ch4.adb (Try_Container_Indexing): Conditionalize last actual of
! 	call to Error_Msg_NE to avoid blowup on N_Parameter_Association actuals.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_attr.adb (Expand_Size_Attribute): If the attribute is applied
! 	to a formal parameter allocated with an extra Constrained parameter,
! 	use the value of the latter to choose between the "unconstrained" or
! 	the "constrained" size of the formal parameter.
  
! 2026-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* exp_ch4.adb (Expand_Composite_Equality): Under Ada83 and Ada95
! 	modes, and compiling under -gnatw_q, search for an user-defined
! 	equality and report a warning if found since it will not be called.
  
! 2026-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* libgnat/system-mingw.ads (Underlying_Priorities): Restore previous
! 	mapping with distinct values around Default_Priority.
  
! 2026-01-09  Denis Mazzucato  <mazzucato@adacore.com>
  
! 	* exp_attr.adb (Expand_N_Attribute_Reference): Do not expand copy
! 	constructor calls when unnecessary.
! 	* exp_ch3.adb
! 	(Build_Implicit_Copy_Constructor): If necessary, build the implicit copy
! 	constructor as part of the initialization procedures of its type.
! 	(Expand_N_Object_Declaration): Add implicit 'Make attribute calls for
! 	objects that may need construction.
! 	* exp_ch6.adb (Make_Parent_Constructor_Call): Constructor's procedure
! 	calls should be only generated from expansion of the 'Make attribute as
! 	there is hidden logic to handle copy constructors.
! 	* sem_attr.adb (Analyze_Attribute): Emit a specific error message if a
! 	non-copy constructor is called but no constructor is defined.
! 	* sem_ch13.adb (Analyze_Aspect_Specifications): The Ekind of the
! 	implicitly generated copy constructor is not a subprogram body.
! 	* sem_ch4.adb (Extended_Primitive_Ops): Extend the operation list that
! 	can be called via prefix notation to include constructors.
! 	* sem_ch6.adb (Check_For_Primitive_Subprogram): Skip constructors for
! 	primitive analysis.
! 	* sem_util.adb (Has_Matching_Constructor): Generic function to
! 	check for the existence of a constructor matching a given
! 	condition.
! 	(Has_Copy_Constructor): Check whether a type has an implicit or explicit
! 	copy constructor.
! 	(Has_Default_Constructor): Use Has_Matching_Constructor.
! 	(Is_Copy_Constructor): Check whether a subprogram is a copy constructor.
! 	(Is_Copy_Constructor_Call): Check whether an attribute call is call to a
! 	copy constructor.
! 	* sem_util.ads: Add specs for copy constructor utility functions.
! 	* snames.ads-tmpl (Snames): Add names Self and From.
  
! 2026-01-09  Martin Clochard  <clochard@adacore.com>
  
! 	* exp_attr.adb (Expand_N_Attribute_Reference): For Old attribute,
! 	detect the anonymous access type case explicitly instead of
! 	implicitly within in Eligible_For_Conditional_Evaluation.
! 	* sem_util.ads: (Eligible_For_Conditional_Evaluation): Do not
! 	return True on anonymous access types. This was also breaking usage
! 	outside expansion (legality checks for Old).
! 	* sem_util.adb: (Conditional_Evaluation_Condition): Special case
! 	of no determiners for anonymous access types is no longer possible.
  
! 2026-01-09  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* snames.ads-tmpl: Make "Destructor" an attribute name.
! 	* snames.adb-tmpl: Allow direct attribute definition for Destructor.
! 	* gen_il-fields.ads (Destructor): New field.
! 	(Is_Destructor): Remove.
! 	* gen_il-gen-gen_entities.adb: (Destructor): New field.
! 	(Is_Destructor): Remove.
! 	* einfo.ads (Destructor): Document new field.
! 	(Is_Destructor): Remove documentation.
! 	* aspects.ads (Aspect_Destructor): Remove.
! 	* exp_attr.adb (Expand_N_Attribute_Reference): Adapt after aspect
! 	removal.
! 	* exp_ch7.adb (Build_Finalize_Statements): Adapt to new destructor
! 	representation.
! 	* freeze.adb (Freeze_Entity): Remove obsolete check.
! 	* sem_attr.adb (Analyze_Attribute, Eval_Attribute): Adapt to new
! 	attribute.
! 	* sem_ch13.adb (Analyze_Aspect_Specifications,
! 	Check_Aspect_At_End_Of_Declarations): Adapt after aspect removal.
! 	* sem_ch6.adb (Analyze_Direct_Attribute_Definition): Add handling
! 	of Destructor attribute.
! 	(Can_Be_Destructor_Of): New function.
! 	* doc/gnat_rm/gnat_language_extensions.rst: Adapt documentation to
! 	new syntax.
  	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
  
! 2026-01-09  Tom Tromey  <tromey@adacore.com>
  
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
! 	(GNATLLVM): Update debugging documentation.
! 	* gnat_ugn.texi: Regenerate.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_util.ads (Find_Hook_Context): Rename to...
! 	(Find_Master_Context): ...this and alphabetize.
! 	* exp_util.adb (Find_Master_Context): Rename to...
! 	(Find_Master_Context): ...this and alphabetize.
! 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Adjust to
! 	above renaming.
! 	(Process_Transients_In_Expression): Likewise.
  
! 2026-01-09  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Check direct
! 	attribute definitions for specs.
  
! 2026-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_prag.adb (Analyze_Pragma): Adjust references in comments for
! 	pragma Side_Effects and Volatile_Function.
  
! 2026-01-09  Javier Miranda  <miranda@adacore.com>
  
! 	* exp_ch3.adb (Build_Untagged_Record_Equality): Add missing
! 	support for incomplete and private types.
  
! 2026-01-09  Viljar Indus  <indus@adacore.com>
  
! 	* einfo-utils.adb (Can_Have_Formals): New function for checking
! 	if the entity can support formals.
! 	* einfo-utils.ads (Can_Have_Formals): Likewise.
! 	* ghost.adb (Check_Procedure_Call_Argument_Levels): Avoid checking
! 	the type of the formal if the called entity cannot hold formals.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Do not call
! 	Move_Activation_Chain if it is not available in the runtime library.
  
! 2026-01-09  Claire Dross  <dross@adacore.com>
  
! 	* sem_util.ads (Overlaid_Entity): Return the root of the address
! 	clause of an object if it is precisely supported in SPARK.
! 	* sem_util.adb (Ultimate_Overlaid_Entity): Use Overlaid_Entity to
! 	match the SPARK RM semantics.
! 	* sem_prag.adb (Analyze_Global_Item): Only check for overlays on
! 	variables.
! 	(Analyze_Initialization_Item): Likewise.
! 	(Analyze_Input_Item): Likewise.
  
! 2026-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* sem_util.adb (Find_Overlaid_Entity): Detect overlying with slice.
  
! 2026-01-09  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* freeze.adb (Size_Known): Modify rejection condition.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch5.adb (Expand_N_Assignment_Statement): If a predicate check
! 	made on the RHS forced the capture of a function call to remove its
! 	side effects, demote No_Ctrl_Actions into No_Finalize_Actions on the
! 	N_Assignment_Statement node.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* exp_ch9.ads (Build_Task_Allocate_Block): Change to function and
! 	remove first formal parameter.
! 	* exp_ch9.adb (Build_Task_Allocate_Block): Likewise.  Return an
! 	anonymous list of nodes.
! 	* exp_aggr.adb (Convert_Aggr_In_Allocator): Adjust to above change.
! 	* exp_ch4.adb (Expand_N_Allocator): Likewise.
! 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
  
! 2026-01-09  Piotr Trojanek  <trojanek@adacore.com>
  
! 	* inline.adb (Build_Body_To_Inline): Do not inline ghost functions.
  
! 2026-01-09  Ronan Desplanques  <desplanques@adacore.com>
  
! 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update
! 	example.
  	* gnat-style.texi: Regenerate.
! 	* gnat_ugn.texi: Regenerate.
  
! 2026-01-09  Eric Botcazou  <ebotcazou@adacore.com>
  
! 	* sem_ch4.adb (Analyze_Selected_Component): Give a specific error
! 	message for an invalid prefix that is the dereference of a name.
! 	* sem_ch8.adb (Find_Selected_Component): Give a consistent error
! 	message for the name of an invalid prefix.
  
! 2026-01-08  Olivier Hainque  <hainque@adacore.com>
! 	    Alexandre Oliva  <oliva@adacore.com>
  
! 	* gcc-interface/Make-lang.in (m32_target): Set.
! 	(not_m32_target, native_target, native_gnattools1): Set.
! 	(ADA_TOOLS_FLAGS_TO_PASS, gnattools): Handle x86_64 natives
! 	defaulting to -m32 as cross for gnattools.
! 	* gcc-interface/Makefile.in (target_cpu): Set to i686 for
! 	x86_64 configurations defaulting to -m32.
  
! 2026-01-03  Eric Botcazou  <ebotcazou@gcc.gnu.org>
  
! 	PR ada/123371
! 	* sem_aggr.adb (Resolve_Iterated_Association): Call Preanalyze
! 	instead of Analyze consistently, as well as Copy_Separate_Tree
! 	instead of New_Copy_Tree.
  
! 2026-01-01  Jakub Jelinek  <jakub@redhat.com>
  
  	* gnat_ugn.texi: Bump @copying's copyright year.
  	* gnat_rm.texi: Likewise.
  
  
! Copyright (C) 2026 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-15.2.0/gcc/ada/ChangeLog-2025 gcc-16.1.0-RC-20260423/gcc/ada/ChangeLog-2025
*** gcc-15.2.0/gcc/ada/ChangeLog-2025	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/ChangeLog-2025	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,7814 ----
+ 2025-12-30  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	* gcc-interface/Make-lang.in (GNATBIND_FLAGS): Delete.
+ 	(GNAT_ADA_OBJS): Move g-byorma.o, g-htable.o, g-spchge.o,
+ 	g-speche.o and g-u3spch.o to STAGE1 list.
+ 	(GNATBIND_OBJS): Move g-byorma.o, g-hesora.o and g-htable.o
+ 	to STAGE1 list.
+ 	(ada/b_gnat1.adb): Do not pass GNATBIND_FLAGS to gnatbind.
+ 	(ada/b_gnatb.adb): Likewise.
+ 	(ADA_GENERATED_FILES): Add g-byorma.ad[sb], g-hesora.ad[sb],
+ 	g-htable.ad[sb], g-spchge.ad[sb], g-speche.ad[sb], g-u3spch.ad[sb]
+ 	and alphabetize.
+ 	* libgnat/g-byorma.ads: Add note to head comment.
+ 	* libgnat/g-hesora.ads: Likewise.
+ 	* libgnat/g-htable.ads: Likewise.
+ 	* libgnat/g-spchge.ads: Likewise.
+ 	* libgnat/g-speche.ads: Likewise.
+ 	* libgnat/g-u3spch.ads: Likewise.
+ 
+ 2025-12-30  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/15605
+ 	* sem_ch8.adb (Analyze_Subprogram_Renaming): Give an error if the
+ 	name is also that of a formal parameter of the specification.
+ 
+ 2025-12-27  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/123306
+ 	* sem_ch12.adb (Analyze_One_Association): Immediately freeze the
+ 	root type of mutably tagged types used as actual type parameters.
+ 
+ 2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/123088
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Add more robust guard.
+ 
+ 2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/123302
+ 	* sem_ch12.adb (Save_Global_Reference.Save_References_In_Aggregate):
+ 	Recurse on the scope of the type to find one that is visible, in the
+ 	case of an actual in a subprogram call with a local type.
+ 
+ 2025-12-26  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/123289
+ 	* sem_ch13.adb (Resolve_Aspect_Aggregate.Resolve_Operation): Give
+ 	an error if the operation's name denotes more than one subprogram.
+ 
+ 2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Streamline.
+ 
+ 2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Preserve the alias
+ 	sets present on the old pointer and old reference, if any.
+ 
+ 2025-12-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123185
+ 	* sem_ch4.adb (Analyze_Overloaded_Selected_Component): Go to the
+ 	root when the prefix has a class-wide type.
+ 	* sem_res.adb (Resolve_Selected_Component): Likewise.
+ 
+ 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* sem_attr.adb (Set_Bounds): Fix comment typo, transfered
+ 	-> transferred.
+ 	* sem_ch6.adb (Analyze_Expression_Function): Likewise.
+ 	* sysdep.c (__gnat_get_task_options): Fix comment typo, explicitely
+ 	-> explicitly.
+ 
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123138
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Override a
+ 	universal numeric type only if the prefix is not an aggregate.
+ 
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Synthesize a new
+ 	TYPE_CANONICAL for the old pointer type in the case where there
+ 	is no new pointer type.  Likewise for references.
+ 
+ 2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123096
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Call
+ 	Incomplete_Or_Partial_View with Partial_Only set to True.
+ 
+ 2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123062
+ 	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Also propagate
+ 	the Convention and Is_Exported flag onto the anonymous actual.
+ 
+ 2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123088
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Add missing guard.
+ 
+ 2025-12-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123037
+ 	* rtinit.c [__MINGW32__]: Include <stdlib.h> and not <windows.h>.
+ 	* rtfinal.c [__MINGW32__]: Do not include <windows.h>.
+ 
+ 2025-12-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/115349
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Use the base
+ 	type as Accum_Type if the reducer is an operator from Standard and
+ 	the type is numeric.  Use the type of the first operand for other
+ 	operators.  Streamline the error message given for limited types.
+ 
+ 2025-12-06  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute): Check if the reducer is a
+ 	procedure before giving the warning.
+ 
+ 2025-12-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* einfo.ads (Has_Unsigned_Base_Range_Aspect): Update documentation.
+ 	(Has_Modular_Operations): New synthesized predicate.
+ 	(Has_Overflow_Operations): New synthesized predicate.
+ 	* einfo-utils.ads (Has_Modular_Operations): New function.
+ 	(Has_Overflow_Operations): New function.
+ 	* einfo-utils.adb (Is_Modular_Integer_Type): Undo previous patch.
+ 	(Is_Signed_Integer_Type): Undo previous patch.
+ 	(Has_Modular_Operations): New function.
+ 	(Has_Overflow_Operations): New function.
+ 	* checks.adb (Determine_Range): Replace selected occurrences of calls to
+ 	Is_Modular_Integer_Type by calls to Has_Modular_Operations, and calls to
+ 	Is_Signed_Integer_Type by calls to Has Overflow_Operations.
+ 	(Enable_Range_Check): Ditto.
+ 	(Insert_Valid_Check): Ditto.
+ 	* exp_aggr.adb (Others_Check): Ditto.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Pred,
+ 	Attribute_Succ]): Ditto.
+ 	* exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): Ditto.
+ 	(Size_In_Storage_Elements): Ditto.
+ 	(Expand_N_Op_Abs): Ditto.
+ 	(Expand_N_Op_Expon): Ditto.
+ 	(Expand_N_Op_Minus): Ditto.
+ 	(Expand_N_Op_Multiply): Ditto.
+ 	(Expand_N_Op_Subtract): Ditto.
+ 	* freeze.adb (Freeze_Entity): Ditto.
+ 	* sem_aggr.adb (Report_Null_Array_Constraint_Error): Ditto plus
+ 	report specific error for index with unsigned_base_range aspect.
+ 	* sem_attr.adb (Check_Modular_Integer_Type): Ditto.
+ 	(Analyze_Attribute [Attribute_Pred, Attribute_Succ, Attribute_
+ 	Range_Length, Attribute_Small, Attribute_Reduce]): Ditto.
+ 	* sem_ch12.adb (Instantiate_Type): Ditto.
+ 	(Validate_Formal_Type_Default): Ditto.
+ 	* sem_ch13.adb (Valid_Empty): Ditto.
+ 	* sem_ch2.adb (Analyze_Integer_Literal): Ditto.
+ 	* sem_ch3.adb (Unsigned_Base_Range_Type_Declaration): Set attribute
+ 	Has_Unsigned_Base_Range_Aspect on the implicit base, and set Etype
+ 	of its first subtype E_Modular_Integer_Subtype.
+ 	* sem_ch4.adb (Analyze_Call): Ditto.
+ 	* sem_eval.adb (Check_Non_Static_Context_For_Overflow): Ditto.
+ 	(Eval_Arithmetic_Op): Ditto.
+ 	(Eval_Integer_Literal): Ditto.
+ 	(Eval_Logical_Op): Ditto.
+ 	(Eval_Op_Expon): Ditto.
+ 	(Eval_Op_Not): Ditto.
+ 	(Eval_Unary_Op): Ditto.
+ 	(Fold_Shift): Ditto.
+ 	(Test_Expression_Is_Foldable): Ditto.
+ 	* sem_intr.adb (Check_Shift): Ditto.
+ 	* sem_prag.adb (Analyze_Pragma [Pragma_Unsigned_Base_Range]): Add
+ 	assertion.
+ 	* sem_res.adb (Resolve_Logical_Op): Ditto.
+ 	(Resolve_Unary_Op): Ditto.
+ 	(Set_String_Literal_Subtype): Ditto.
+ 	* sem_type.adb (Covers): Ditto.
+ 	(Specific_Type): Ditto.
+ 	(Valid_Boolean_Arg): Ditto.
+ 	* sem_util.adb (Wrong_Type): Ditto
+ 	* style.adb (Check_Boolean_Operator): Ditto.
+ 
+ 2025-12-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Improve table.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-12-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_util.adb (Get_Cursor_Type): use the
+ 	specific type for classwide container checks.
+ 
+ 2025-12-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Remove_Parent): Only set the Is_Transient component
+ 	of the local scope stack entry.
+ 
+ 2025-12-05  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
+ 	(-gnato??): Remove redundant/confusing doc on floating-point
+ 	overflow.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-12-05  Tonu Naks  <naks@adacore.com>
+ 
+ 	* adaint.c: use the _tsopen macro when opening RO file
+ 
+ 2025-12-05  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_attr.adb
+ 	(Analyze_Attribute): Set the type of the attribute expression only when
+ 	not ambiguous (it will later be resolved correctly). Emit an error in
+ 	case the type is limited.
+ 	(Resolve_Attribute): Emit an error if the reducer has no entity.
+ 	(Get_Value_Subtype): Try to resolve the Value_Subtype of the aggregate
+ 	expression, and if it succeeds, set the candidate reducer subprogram.
+ 	(Is_Reducer_Subprogram): Check whether the selected candidate has a
+ 	proper reducer profile.
+ 	(Make_Array_Type): Return simple array type to resolve the array
+ 	aggregate against it.
+ 	(Resolve_Attribute): Reimplement the resolution of Reduce attribute,
+ 	including its prefix.
+ 	* sem_res.adb (Resolve_Declare_Expression): Save and restore variables
+ 	that may be hidden by the local declaration. Only setting the new
+ 	entities is problematic when dealing with copied trees where the ref is
+ 	lost (eg. when resolving array aggregates).
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Remove tricks to resolve
+ 	the reducer in case of faulty resolution as not needed anymore.
+ 
+ 2025-12-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR ada/115305
+ 	* Makefile.rtl: Use s-oslock__darwin instead of the Posix version.
+ 	* libgnat/s-oslock__darwin.ads: New file.
+ 
+ 2025-12-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122960
+ 	* gcc-interface/Makefile.in (powerpc64-suse-linux): Remove kludge.
+ 
+ 2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* gcc-interface/lang.opt.urls: Regenerate.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Actuals): Do not create activation chain and
+ 	master for build-in-place calls here but...
+ 	(Make_Build_In_Place_Call_In_Allocator): Use Unqual_Conv.
+ 	(Make_Build_In_Place_Call_In_Anonymous_Context): ...here instead.
+ 	Call Make_Build_In_Place_Call_In_Object_Declaration directly.
+ 	(Make_Build_In_Place_Iface_Call_In_Anonymous_Context): ...and here
+ 	instead.  Add missing rewriting of the call.
+ 
+ 2025-11-27  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_ugn/about_this_guide.rst: Minor fixes
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122574
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatwp):
+ 	Replace reference to -gnatN with -gnatn and adjust accordingly.
+ 	* inline.adb: Remove clauses for Exp_Tss.
+ 	(Has_Initialized_Type): Delete.
+ 	(Add_Inlined_Subprogram): Test that the Is_Inlined flag is still set
+ 	on the subprogram.
+ 	* usage.adb (Usage): Adjust description of -gnatwp.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-11-27  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_ch5.adb: Skip check for assignment that doesn't come from source.
+ 
+ 2025-11-27  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Gen_Loop): Only preanalyze expressions we know won't
+ 	evaluated.
+ 
+ 2025-11-27  Tom Tromey  <tromey@adacore.com>
+ 
+ 	* repinfo.adb (Visit): New procedure.
+ 	(List_GCC_Expression): Rewrite.
+ 	* repinfo.ads (Visit): New generic procedure.
+ 
+ 2025-11-27  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Code_Statement): Do not emit error
+ 	message when only checking relaxed semantics.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Finalizer_Call): Delete.
+ 	(Build_Finalizer): Always insert the finalizer at the end of the
+ 	statement list in the non-package case.
+ 	(Expand_Cleanup_Actions): Attach the finalizer manually, if any.
+ 	* exp_smem.adb (Add_Shared_Var_Lock_Procs): Insert all the actions
+ 	directly in the transient scope.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statement): Merge the
+ 	eslif condition with the if condition for cleanup actions.
+ 	* sem_ch6.adb (Analyze_Procedure_Call.Analyze_Call_And_Resolve): Get
+ 	rid of if statement whose condition is always true.
+ 	* sinfo.ads (Finally_Statements): Document their purpose.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Extended_Return_Statement): Add
+ 	Activation_Chain_Entity semantic field.
+ 	* exp_ch3.adb (Build_Master): Use Build_Master_{Entity,Renaming} in
+ 	all cases.
+ 	(Expand_N_Object_Declaration): Small tweak.
+ 	* exp_ch6.adb (Make_Build_In_Place_Iface_Call_In_Allocator): Use
+ 	Build_Master_{Entity,Renaming} to build the master.
+ 	* exp_ch7.adb (Expand_N_Package_Declaration): Do not guard the call
+ 	to Build_Task_Activation_Call for the sake of consistency.
+ 	* exp_ch9.ads (Build_Class_Wide_Master): Delete.
+ 	(Find_Master_Scope): Likewise.
+ 	(Build_Protected_Subprogram_Call_Cleanup): Move to...
+ 	(First_Protected_Operation): Move to...
+ 	(Mark_Construct_As_Task_Master): New procedure.
+ 	* exp_ch9.adb (Build_Protected_Subprogram_Call_Cleanup): ...here.
+ 	(First_Protected_Operation): ...here.
+ 	(Build_Activation_Chain_Entity): Streamline handling of extended
+ 	return statements.
+ 	(Build_Class_Wide_Master): Delete.
+ 	(Build_Master_Entity): Streamline handling of extended return
+ 	statements and call Mark_Construct_As_Task_Master on the context.
+ 	(Build_Task_Activation_Call): Assert that the owner is not an
+ 	extended return statement.
+ 	(Find_Master_Scope): Delete.
+ 	(Mark_Construct_As_Task_Master): New procedure.
+ 	* sem_ch3.adb (Access_Definition): Use Build_Master_{Entity,Renaming}
+ 	in all cases to build a master.
+ 	* sem_ch6.adb (Check_Anonymous_Return): Rename to...
+ 	(Check_Anonymous_Access_Return_With_Tasks): ...this.  At the end,
+ 	call Mark_Construct_As_Task_Master on the parent node.
+ 	(Analyze_Subprogram_Body_Helper): Adjust to above renaming.
+ 	(Create_Extra_Formals): Do not set Has_Master_Entity here.
+ 	* sinfo.ads (Activation_Chain_Entity): Adjust description.
+ 
+ 2025-11-27  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch13.adb (Aspect_Annotate): Avoid disturbing the tree of the
+ 	aspect.
+ 	* vast.adb: Enable Check_Parent_Present.
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Minor reformatting.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Case_Expression): When not optimizing for a
+ 	specific context, call Make_Build_In_Place_Call_In_Anonymous_Context
+ 	on expressions of alternatives when they are calls to BIP functions.
+ 	(Expand_N_If_Expression): Likewise for the Then & Else expressions.
+ 
+ 2025-11-27  Bob Duff  <duff@adacore.com>
+ 
+ 	* frontend.adb: Move call to VAST from here...
+ 	* gnat1drv.adb: ...to here.
+ 	* vast.ads (VAST_If_Enabled): Rename main entry point of VAST from
+ 	VAST to VAST_If_Enabled.
+ 	* vast.adb: Miscellaneous improvements. Mostly debugging
+ 	improvements. Also enable Check_Error_Nodes. Also add checks:
+ 	Check_FE_Only, Check_Scope_Present, Check_Scope_Correct.
+ 	* debug.ads: Minor comment tweaks. The comment, "In the checks off
+ 	version of debug, the call to Set_Debug_Flag is always a null
+ 	operation." appears to be false, so is removed.
+ 	* debug.adb: Minor: Remove some code duplication.
+ 	* sinfo-utils.adb (nnd): Add comment warning about C vs. Ada
+ 	confusion.
+ 
+ 2025-11-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.ads (Needs_BIP_Task_Actuals): Adjust description.
+ 	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Move activation
+ 	chain for every build-in-place function with task formal parameters
+ 	when the type of the return object might have tasks.
+ 
+ 2025-11-27  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-dwalin.ads (Display_Mode_Type): New enumerated type.
+ 	(Symbolic_Traceback): Use new type in profile.
+ 	* libgnat/s-dwalin.adb (Symbolic_Traceback): Use new type in profile
+ 	and adapt body.
+ 	* libgnat/s-trasym__dwarf.adb (Multi_Module_Symbolic_Traceback): Fix
+ 	wrong call in body of one overload. Use new type in profile. Adapt
+ 	body.
+ 	(Symbolic_Traceback, Symbolic_Traceback_No_Lock,
+ 	Module_Symbolic_Traceback): Use new type in profile and adapt body.
+ 	(Calling_Entity): Adapt body.
+ 
+ 2025-11-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/81106
+ 	* gnatchop.adb (Gnatchop): If present in the source file, output
+ 	the BOM at the start of every compilation unit.
+ 
+ 2025-11-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/33994
+ 	* gcc-interface/utils.cc (convert) <INTEGER_TYPE>: Call
+ 	int_const_convert if the expression is an integer constant.
+ 
+ 2025-11-21  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Formal_Container_Loop):
+ 	Preanalyze block with empty statements; then set
+ 	the statements later before doing Analyze of the
+ 	block.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Array_Aggregate): Remove obsolete call to
+ 	Establish_Transient_Scope for an allocator in a loop.
+ 	* exp_ch7.adb (Establish_Transient_Scope): Adjust description.
+ 
+ 2025-11-21  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* lib-xref.adb (Output_References): Put local array object on the heap.
+ 
+ 2025-11-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* erroutc.adb (Is_Redundant_Error_Message): Avoid non-serious errors
+ 	masking fatal errors.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.ads (BIP_Formal_Kind): Update description of some values.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Eq): Use No instead of not Present.
+ 	(Optimize_Length_Comparison): Initialize Is_Zero and Comp variables.
+ 	(Safe_In_Place_Array_Op): Do not use local variable to pass data to
+ 	nested function Is_Safe_Operand.
+ 
+ 2025-11-21  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Create_Extra_Formals): Do not add extra formals to
+ 	anonymous access to subprogram types defined in the profile of
+ 	subprograms that have foreign convention.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Delete ancient comment.
+ 	* exp_ch6.adb (Expand_Call_Helper): Do not establish a transient
+ 	scope for build-in-place functions in anonymous contexts here...
+ 	(Make_Build_In_Place_Call_In_Anonymous_Context): ...but here instead.
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Range>: Remove obsolete
+ 	code dealing with transient scopes.
+ 	* sem_res.adb (Resolve_Actuals): Likewise.
+ 	(Resolve_Call): Adjust comment on the strategy for transient scopes.
+ 
+ 2025-11-21  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_Formal_Container_Loop):
+ 	Analyze Init_Decl in the correct scope. Remove patch-up
+ 	code that was needed because we were using the wrong scope.
+ 	* exp_ch7.adb (Process_Object_Declaration):
+ 	Remove code to unique-ify the name of Master_Node_Id;
+ 	no longer needed because of change to exp_ch5.adb.
+ 	* sem_warn.adb (Check_References):
+ 	Suppress warnings during preanalysis, because we don't
+ 	have complete information yet; otherwise, the new Preanalyze
+ 	call in exp_ch5.adb generates bogus warnings.
+ 
+ 2025-11-21  Steve Baird  <baird@adacore.com>
+ 
+ 	* libgnat/a-cobove.adb
+ 	(Append): Add an equivalent fast path for the case where tampering
+ 	checks are suppressed.
+ 
+ 2025-11-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Profile): Improve -gnatwx message.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.adb (List_Location): Do not output the final comma.
+ 	(List_Common_Type_Info): Adjust to above change.  Do not output
+ 	"??" for an unknown alignment.
+ 	(List_Entities): Do not output generic types.
+ 	(List_Object_Info): Adjust to above change.
+ 	(List_Subprogram_Info): Likewise.
+ 
+ 2025-11-21  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Call): ensure we generate a reference to the
+ 	non limited view of the return type to avoid scenarios where
+ 	the with-ed unit is not considered referenced.
+ 
+ 2025-11-18  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* gcc-interface/decl.cc
+ 	(is_cplusplus_method,gnat_to_gnu_param,gnat_to_gnu_subprog_type):
+ 	Adjust Is_Constructor/Is_CPP_Constructor after renaming.
+ 
+ 2025-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/34290
+ 	* sem_ch4.adb (Try_Object_Operation.Complete_Object_Operation): Call
+ 	Preserve_Comes_From_Source to preserve the flag on nodes.  Relocate
+ 	the Obj node consistently.  Preserve the Comes_From_Source flag for
+ 	the case of an implicit 'Access reference and post the local errors
+ 	on the rewritten prefix consistently.
+ 	* sem_util.adb (Is_Aliased_View): Also return true for a generalized
+ 	reference to the result of a function call.
+ 
+ 2025-11-18  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_util.ads (Flag_Interface_Pointer_Displacement): New subprogram.
+ 	* exp_util.adb (Flag_Interface_Pointer_Displacement): Ditto.
+ 	* exp_attr.adb (Add_Implicit_Interface_Type_Conversion): Flag type
+ 	conversions internally added to displace the pointer to the object.
+ 	(Expand_N_Attribute_Reference): Ditto.
+ 	* exp_ch4.adb (Displace_Allocator_Pointer): Ditto.
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Ditto.
+ 	(Make_Build_In_Place_Call_In_Allocator): Ditto.
+ 	(Make_CPP_Constructor_Call_In_Allocator): Ditto.
+ 	* exp_disp.adb (Expand_Interface_Actuals): Ditto.
+ 	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Ditto.
+ 	* sem_ch6.adb (Analyze_Function_Return): Ditto.
+ 	* sem_disp.adb (Propagate_Tag): Ditto.
+ 	* sem_res.adb (Resolve_Actuals): Ditto.
+ 	(Valid_Conversion): Rely on the new flag to handle the type conversion
+ 	as a conversion added to displace the pointer to the object. Factorize
+ 	code handling general and anonymous access types.
+ 	* sem_type.adb (Interface_Present_In_Ancestor): For concurrent types
+ 	add missing handling of class-wide types. Noticed working on this
+ 	issue.
+ 	* sinfo.ads (Is_Interface_Pointer_Displacement): Document this new flag.
+ 	* gen_il-fields.ads (Is_Interface_Pointer_Displacement): New flag.
+ 	* gen_il-gen-gen_nodes.adb (Is_Interface_Pointer_Displacement): New
+ 	flag on N_Type_Conversion nodes.
+ 	* gen_il-internals.adb (Image): Add Is_Interface_Pointer_Displacement
+ 	flag image.
+ 
+ 2025-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): Streamline and move
+ 	code clearing Needs_Body after it is computed to ...
+ 	(Needs_Body_Instantiated): ...here.  Chain if-then constructs.
+ 
+ 2025-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_type.adb (Last_Overloaded): Fix typo.
+ 
+ 2025-11-18  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/111433
+ 	* sem_util.ads (Incomplete_Or_Partial_View): Add Partial_Only formal
+ 	parameter.
+ 	* sem_util.adb (Incomplete_Or_Partial_View): Likewise.  Do not look
+ 	for an incomplete view if it is set to True.
+ 	* sem_ch6.adb (Check_Conformance.Null_Exclusions_Match): Pass True
+ 	for Partial_Only in the call to Incomplete_Or_Partial_View.
+ 
+ 2025-11-18  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/obsolescent_features.rst: update PolyOrb reference
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-11-18  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* par-ch4.adb (P_Simple_Expression): Improve diagnostic.
+ 
+ 2025-11-18  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Procedure_Call_Levels): New function for
+ 	implementing the check.
+ 	* ghost.ads (Check_Procedure_Call_Levels): Likewise.
+ 	* sem_ch6.adb (Analyze_Procedure_Call): Check the levels after
+ 	the call has been resolved and the previous ghost region has
+ 	been restored.
+ 
+ 2025-11-18  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_util.adb (Is_Constructor_Procedure): Replace by Is_Constructor.
+ 	* sem_util.ads: Likewise.
+ 	* sem_ch6.adb (Analyze_Direct_Attribute_Definition): Set Is_Constructor.
+ 	* einfo.ads: Use Is_Constructor for Ada constructors, and
+ 	Is_CPP_Constructor for CPP constructors.
+ 	* exp_ch6.adb: Likewise.
+ 	* exp_disp.adb: Likewise.
+ 	* freeze.adb: Likewise.
+ 	* gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* gen_il-internals.adb: Likewise.
+ 	* par-ch6.adb: Likewise.
+ 	* sem_prag.adb: Likewise.
+ 	* treepr.adb: Likewise.
+ 
+ 2025-11-18  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Ensure that
+ 	Build_Record_Or_Elementary_Input_Function and
+ 	Build_Record_Or_Elementary_Output_Procedure are only called
+ 	from within an instance of Build_And_Insert_Type_Attr_Subp.
+ 	In particular, the results returned by those 2 functions should
+ 	not be passed directly to Insert_Action. This is needed to
+ 	ensure that the newly-built subprogram is inserted at the correct
+ 	point in the tree.
+ 
+ 2025-11-18  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch4.adb (Warn_On_Abstract_Equality_For_Component):
+ 	Add additional information in the record-component case.
+ 
+ 2025-11-18  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Valid_Ghost_Policy): Remove function.
+ 	(Ghost_Policy_In_Effect): Force the ghost policy to be always be
+ 	ignore inside ignored regions.
+ 	(Mark_And_Set_Ghost_Declaration): Likewise.
+ 
+ 2025-11-18  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_imgv.adb (Build_Enumeration_Image_Tables): If a
+ 	No_Dynamic_Sized_Objects restriction is in effect, then choose a large
+ 	value for Threshold so that no Lit_Hash function is generated.
+ 
+ 2025-11-18  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taspri__mingw.ads (Suspension_Object): Remove.
+ 	(Private_Data): Revert unintentional removal.
+ 
+ 2025-11-18  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/a-sytaco.ads (Suspension_Object): Change components.
+ 	* libgnarl/a-sytaco.adb (Initialize, Finalize, Current_State,
+ 	Set_False, Set_True, Suspend_Until_True): New cross-platform version.
+ 	* libgnarl/s-taskin.ads (Task_States): New task state.
+ 	* libgnarl/s-tasini.adb (Locked_Abort_To_Level): Adapt to new state.
+ 	* libgnarl/s-taprop.ads (Is_Task_Context): New function Spec.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__dummy.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__linux.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__mingw.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__posix.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__qnx.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__rtems.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__solaris.adb (Is_Task_Context): New body.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taprop__vxworks.adb (Is_Task_Context): Remove spec.
+ 	(Initialize, Finalize, Current_State, Set_False, Set_True,
+ 	Suspend_Until_True): Remove.
+ 	* libgnarl/s-taspri__dummy.ads (Suspension_Object): Remove.
+ 	* libgnarl/s-taspri__lynxos.ads (Suspension_Object): Remove.
+ 	* libgnarl/s-taspri__mingw.ads (Suspension_Object): Remove.
+ 	* libgnarl/s-taspri__posix-noaltstack.ads (Suspension_Object):
+ 	Remove.
+ 	* libgnarl/s-taspri__posix.ads (Suspension_Object): Remove.
+ 	* libgnarl/s-taspri__solaris.ads (Suspension_Object): Remove.
+ 	* libgnarl/s-taspri__vxworks.ads (Suspension_Object): Remove.
+ 
+ 2025-11-18  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/a-sytaco.ads (Suspension_Object): Use Finalizable aspect.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch9.adb (Expand_N_Entry_Declaration): In the deferred case,
+ 	freeze immediately all the newly created entities.
+ 
+ 2025-11-13  Douglas B Rupp  <rupp@adacore.com>
+ 
+ 	* sigtramp-vxworks-target.h (REGNO_PC_OFFSET): Use 32 vice
+ 	96 with llvm/clang. (REGNO_G_REG_OFFSET): Remove parens on
+ 	operand. (REGNO_GR): Likewise.
+ 	* sigtramp-vxworks.c (__gnat_sigtramp): Define a macro for
+ 	__attribute__ optimize, which is empty of not available.
+ 	* raise-gcc.c (db): Define ATTRIBUTE_PRINTF_2 if not defined.
+ 
+ 2025-11-13  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb: Rewrite the spec and implementation of package
+ 	Cached_Attribute_Ops so that the saved value associated with a
+ 	type in a given map is not a single subprogram but instead a
+ 	set of subprograms. Thus, the correct generation of a second subprogram
+ 	for given type for use in some other context no longer causes the
+ 	first subprogram to be forgotten. This allows more reuse and,
+ 	in particular, allows reuse in the case where generating another
+ 	copy of the subprogram would result in a compilation failure.
+ 	Update Cached_Attribute_Ops clients correspondingly.
+ 
+ 2025-11-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Find_In_Enclosing_Context): Give up on declarations of
+ 	internal types.
+ 
+ 2025-11-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* treepr.adb (Print_End_Span): Print prefix, field name and line break.
+ 
+ 2025-11-13  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* libgnat/a-cbdlli.ads: Add "limited" to partial view of reference types.
+ 	* libgnat/a-cbhama.ads: Likewise.
+ 	* libgnat/a-cbhase.ads: Likewise.
+ 	* libgnat/a-cbmutr.ads: Likewise.
+ 	* libgnat/a-cborma.ads: Likewise.
+ 	* libgnat/a-cborse.ads: Likewise.
+ 	* libgnat/a-cdlili.ads: Likewise.
+ 	* libgnat/a-cidlli.ads: Likewise.
+ 	* libgnat/a-cihama.ads: Likewise.
+ 	* libgnat/a-cihase.ads: Likewise.
+ 	* libgnat/a-cimutr.ads: Likewise.
+ 	* libgnat/a-ciorma.ads: Likewise.
+ 	* libgnat/a-ciormu.ads: Likewise.
+ 	* libgnat/a-ciorse.ads: Likewise.
+ 	* libgnat/a-cobove.ads: Likewise.
+ 	* libgnat/a-cohama.ads: Likewise.
+ 	* libgnat/a-cohase.ads: Likewise.
+ 	* libgnat/a-coinho.ads: Likewise.
+ 	* libgnat/a-coinho__shared.ads: Likewise.
+ 	* libgnat/a-coinve.ads: Likewise.
+ 	* libgnat/a-comutr.ads: Likewise.
+ 	* libgnat/a-convec.ads: Likewise.
+ 	* libgnat/a-coorma.ads: Likewise.
+ 	* libgnat/a-coormu.ads: Likewise.
+ 	* libgnat/a-coorse.ads: Likewise.
+ 	* sem_ch5.adb (Analyze_Assignment): Added code to resolve the target
+ 	object (LHS) as a complete context when there are target names ("@")
+ 	present in the expression of the assignment. Loop over interpretations,
+ 	removing any that have a limited type, and set the type (T1) to be the
+ 	type of the first nonlimited interpretation. Test for ambiguity by
+ 	calling Is_Ambiguous_Operand. Delay analysis of Rhs in the target-name
+ 	case. Replace existing test for generalized indexing with implicit
+ 	dereference in existing analysis code with test of Is_Limited_Type
+ 	along with calling Remove_Interp in the limited case.
+ 	* sem_res.adb (Is_Ambiguous_Operand): Condition the calls to
+ 	Report_Interpretation on Report_Errors being True.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/29463
+ 	* sem_eval.adb (Fold_Uint): Use Universal_Integer as actual type
+ 	for a named number.
+ 	(Fold_Ureal): Likewise with Universal_Real.
+ 	* sem_res.adb (Resolve_Real_Literal): Test whether the literal is
+ 	a static expression instead of coming from source to give the error
+ 	prescribed by the RM 4.9(36/2) subclause.
+ 
+ 2025-11-13  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-taspri__posix.ads (Suspension_Object): Add some
+ 	documentation.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Alignment): Update description.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma) <Process_Suppress_Unsuppress>: For
+ 	Alignment_Check on a specific object with an address clause and no
+ 	alignment clause, toggle the Check_Address_Alignment flag present
+ 	on the address clause.
+ 
+ 2025-11-13  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
+ 	the list of junk names.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Likewise.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-11-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/g-crc32.ads (CRC32): Annotate as pure and always terminating.
+ 	* libgnat/s-crc32.ads (CRC32): Annotate as pure and always terminating.
+ 
+ 2025-11-13  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Get_Current_Value_Condition): Relax assertion about
+ 	rewritten ELSIF branch.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst
+ 	(Maximum_Alignment): Fix description.
+ 	* doc/gnat_rm/representation_clauses_and_pragmas.rst
+ 	(Alignment Clauses): Adjust accordingly.
+ 	* checks.adb (Apply_Address_Clause_Check): Remove incorrect test on
+ 	Maximum_Alignment.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Minor tweak
+ 	in comment.
+ 	* ttypes.ads (Maximum_Alignment): Fix description.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst (Pragma Suppress):
+ 	Remove mention of range checks in the entry for alignment checks.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-11-13  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* layout.adb (Set_Composite_Alignment): Fix typos and comments.
+ 
+ 2025-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122640
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Set Is_True_Constant
+ 	on entry for constants and Never_Set_In_Source in all cases.
+ 	If an initialization expression is present, set Has_Initial_Value
+ 	and Is_True_Constant on variables.
+ 
+ 2025-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/34374
+ 	* sem_ch10.adb (Check_Private_Limited_Withed_Unit): Use a separate
+ 	variable for the private child unit, streamline the loop locating
+ 	the nearest private ancestor, fix a too early termination of the
+ 	loop traversing the ancestor of the current unit, and use the same
+ 	privacy test as Check_Private_Child_Unit.
+ 
+ 2025-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/83188
+ 	* sem_eval.adb (Subtypes_Statically_Match): Deal with class-wide
+ 	subtypes whose class-wide types have discriminants.
+ 
+ 2025-11-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113352
+ 	* sem_ch4.adb (Diagnose_Call): Tweak error message.
+ 	* sem_ch8.adb (Find_Selected_Component): Remove bypass for calls
+ 	to procedures in the overloaded overloadable case.  Factor out
+ 	the diagnostics code and invoke it uniformly in this case.
+ 
+ 2025-11-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113350
+ 	PR ada/113351
+ 	* exp_ch2.adb (Expand_Renaming): Fix reference to Evaluate_Name.
+ 	* exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Call
+ 	Evaluate_Name to evaluate the name.
+ 	* sem_ch8.adb (Analyze_Renamed_Entry): Minor tweaks.
+ 	(Analyze_Renamed_Family_Member): Likewise.
+ 	(Analyze_Renamed_Primitive_Operation): Likewise.
+ 	Fix thinko in the function checking profile conformance, save the
+ 	result of the resolution and make implicit dereferences explicit.
+ 
+ 2025-11-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/35793
+ 	* sem_res.adb (Check_Discriminant_Use): In a constraint context,
+ 	check that the discriminant appears alone as a direct name in all
+ 	cases and give a consistent error message when it does not.
+ 
+ 2025-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Subtype_Declaration) <Concurrent_Kind>:
+ 	Propagate the Uses_Lock_Free flag for protected types.
+ 
+ 2025-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/18453
+ 	* sem_ch12.adb (Find_Actual_Type): Add Typ_Ref parameter and
+ 	perform a standard resolution on it in the fallback case.
+ 	Call Get_Instance_Of if the type is declared in a formal of
+ 	the child unit.
+ 	(Instantiate_Type.Validate_Access_Type_Instance): Adjust call
+ 	to Find_Actual_Type.
+ 	(Instantiate_Type.Validate_Array_Type_Instance): Likewise and
+ 	streamline the check for matching component subtypes.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/78175
+ 	* sem_ch12.adb (Hide_Current_Scope): Deal with a transient scope
+ 	as current scope.
+ 	(Remove_Parent): Likewise.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/55324
+ 	* par-ch3.adb (P_Type_Declaration): Give a better error message
+ 	for illegal "abstract" in a type derivation.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Get_Current_Value_Condition): Guard against orphaned
+ 	references in rewritten if-expressions.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/representation_clauses_and_pragmas.rst (Address
+ 	Clauses): Adjust description of alignment checks.
+ 	* sem_ch13.adb (Address_Clause_Check_Record): Remove now unused
+ 	Alignment_Checks_Suppressed component.
+ 	(Alignment_Checks_Suppressed): Delete.
+ 	(Analyze_Attribute_Definition_Clause) <Attribute_Alignment>: Do not
+ 	consider the status of range checks to decide whether to generate an
+ 	alignment check.  Always generate it if an alignment clause is also
+ 	given for the entity.
+ 	<Attribute_Alignment>: Generate an alignment check if an address
+ 	clause is also given for the entity.
+ 	(Register_Address_Clause_Check): Adjust for above removal.
+ 	(Validate_Address_Clauses): Test the Check_Address_Alignment flag
+ 	on the clause to decide whether to give the warning.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Apply_Address_Clause_Check): Adjust self-reference in
+ 	the opening comment.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Find_In_Enclosing_Context): Refactor from handling of
+ 	IF statements.
+ 	(Get_Current_Value_Condition): Reuse IF code for WHILE statements.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Get_Current_Value_Condition): Rewrite to not rely on
+ 	Sloc and End_Span of an if statement.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Update_Semantic_Fields): Preserve tree structure when
+ 	copying scalar range of a discrete type.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Process_Sloc): Remove.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/61127
+ 	* sem_ch12.adb (Associations.Match_Positional): Remove the always
+ 	false condition that guards the error on a positional box.
+ 
+ 2025-11-03  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_disp.adb (Check_Dispatching_Call): Remove "elsif" that does error
+ 	checking for abstract tag-indeterminate calls (seems to be no longer
+ 	needed).
+ 
+ 2025-11-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* exp_ch7.adb (Fixup_Inner_Scopes): Adjust to handle N_Freeze_Entity nodes.
+ 	* exp_unst.adb (Get_Level): Assert when the function didn't find the
+ 	nested level (indicates that inner sub has scope pointing higher in
+ 	the stack)
+ 
+ 2025-11-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fname.adb (Is_Predefined_File_Name): Tweak.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Exception_Declaration):
+ 	Change Expression from Sm to Sy, to match other Expression fields.
+ 	* gen_il-gen.adb (Setter_Needs_Parent):
+ 	Expression no longer needs to be a special case.
+ 	(Check_For_Syntactic_Field_Mismatch):
+ 	Do not exempt Expression from the Sy/Sm mixing rule.
+ 	This was the last such case, so remove all the exemption code.
+ 	* gen_il-gen.ads: Update comments to match new code.
+ 	* sinfo.ads (N_Exception_Declaration):
+ 	Document the meaning of the Expression field, because it
+ 	doesn't follow from the RM syntax of exception_declaration.
+ 	* exp_ch11.adb: Minor comment fixes.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause)
+ 	<Attribute_Size>: Tweak wording of existing error message for the
+ 	size of all elementary objects.  Move error handling for aliased
+ 	objects into the block for objects and give a similar error for
+ 	(nonaliased) floating-point objects.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_attr.adb (Rewrite_Attribute_Proc_Call)<Attribute_Put_Image>:
+ 	Fix call to Analyze.
+ 
+ 2025-11-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute): Remove rewriting of a slice
+ 	address expression.
+ 
+ 2025-11-03  Viljar Indus  <indus@adacore.com>
+ 
+ 	* libgnat/a-cbmutr.adb (Put_Image): Fix the condition and starting point
+ 	for printing the tree.
+ 	* libgnat/a-cimutr.adb (Put_Image): Likewise.
+ 	* libgnat/a-comutr.adb (Put_Image): Likewise.
+ 
+ 2025-11-03  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Avoid disabling
+ 	the expander for ignored ghost regions if Codepeer_Mode is active.
+ 	* sem_ch7.adb (Analyze_Package_Body_Helper): Likewise.
+ 	* freeze.adb (Freeze_Entity): Avoid triggering special freezing
+ 	action for entities within ignored ghost regions in Codepeer_Mode.
+ 
+ 2025-11-03  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Is_Ok_Context): consider ghost prefix to always
+ 	be a valid ghost context.
+ 
+ 2025-11-03  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* errout.adb (Set_Msg_Node): Support N_Attribute_Reference and
+ 	nodes that denotes direct attribute definitions.
+ 	* exp_dbug.ads: Description for the encoding of direct attribute
+ 	definitions as tick are hard to deal in entity names.
+ 	* erroutc.adb
+ 	(Set_Msg_Insertion_Name): Replace underscore between prefix and
+ 	attribute name in direct attribute definitions; at this point we
+ 	lost the semantic information of node type and we resort to match
+ 	the string name as described in exp_dbug.adb.
+ 	* exp_aggr.adb (Convert_To_Positional): Use Needs_Construction and
+ 	Has_Default_Constructor.
+ 	* exp_ch3.adb (Build_Record_Init_Proc)
+ 	(Expand_N_Object_Declaration): Likewise.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
+ 	* exp_ch4.adb (Expand_N_Allocator): Likewise.
+ 	* exp_ch6.adb
+ 	(Prepend_Constructor_Procedure_Prologue): Use
+ 	Is_Constructor_Procedure.
+ 	(Make_Parent_Constructor_Call): Use
+ 	Direct_Attribute_Definition_Name.
+ 	* gen_il-fields.ads: Remove Constructor_List and Constructor_Name.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* einfo.ads (Needs_Construction): Add description.
+ 	(Has_Delayed_Aspects): Adjust indentation.
+ 	* par-ch13.adb (P_Attribute_Designators): Parse attribute
+ 	designators.
+ 	(P_Representation_Clause): Use P_Attribute_Designators.
+ 	* par-ch6.adb (P_Subprogram): Support attribute designators in
+ 	subprogram name.
+ 	(Rewrites_Entity_If_Direct_Attribute_Def): Fix the specification
+ 	node in case of direct attribute definitions.
+ 	* par-endh.adb (Check_End, Same_Label): Likewise.
+ 	* par.adb (P_Attribute_Designators): Specification.
+ 	* sem_attr.adb (Analyze_Attribute): Error when using 'Constructor
+ 	outside procedure specification.
+ 	(Analyze_Attribute): Add error handling code.
+ 	* sem_ch3.adb (Analyze_Aspect_Specifications): Likewise.
+ 	* sem_ch6.adb (Analyze_Direct_Attribute_Definition): Handle direct
+ 	attribute definitions. Add error handling code for the
+ 	'Construction attribute and set constructor flags when necessary.
+ 	(Analyze_Subprogram_Specification): Use
+ 	Analyze_Direct_Attribute_Definition.
+ 	* sem_util.adb (Direct_Attribute_Definition_Name): Name of
+ 	entities created for direct attribute definitions. We emit an
+ 	error if multiple attributes.
+ 	(Is_Direct_Attribute_Subp_Spec): Helper to check whether a
+ 	subprogram specification is a direct attribute definition.
+ 	(Is_Constructor_Procedure): Helper to check whether a subprogram
+ 	is a constructor procedure.
+ 	(Has_Default_Constructor): Check whether the default constructor
+ 	exists.
+ 	(Default_Constructor): Not used anymore.
+ 	(Parameter_Count): Likewise.
+ 	(Process_End_Label): Get_Attribute_Reference_Name_String encodes
+ 	also direct attribute definition end labels.
+ 	* sem_util.ads: Likewise.
+ 	* snames.ads-tmpl: Support for 'Constructor attribute.
+ 	* snames.adb-tmpl (Is_Direct_Attribute_Definition_Name): Helper to
+ 	check attributes allowed in direct attribute definitions.
+ 	* aspects.ads: Remove constructor aspect.
+ 	* sem_ch13.adb: Likewise.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122161
+ 	* sem_ch12.adb: Improve the description of Check_Generic_Actuals,
+ 	Restore_Private_Views and Switch_View, and alphabetize them.
+ 	(Check_Generic_Actuals): Make actuals visible only if needed.
+ 	(Install_Formal_Packages): Pass exact Is_Formal_Box parameter and
+ 	remove call to Set_Is_Hidden.
+ 	(Instantiate_Formal_Package): Use Next_Non_Pragma consistently in
+ 	the loop computing the visibility of actuals.
+ 	(Analyze_Package_Instantiation): Use named second parameter in the
+ 	call to Restore_Private_Views.
+ 	(Analyze_Subprogram_Instantiation): Likewise.
+ 	(Instantiate_Package_Body): Likewise and for Check_Generic_Actuals.
+ 	(Instantiate_Subprogram_Body): Likewise.
+ 	(Restore_Env): Replace call to Restore_Private_Views.
+ 	(Restore_Private_Views): Remove default value for second parameter
+ 	and test of presence for first parameter.  Consistently clear the
+ 	Is_Potentially_Use_Visible flag when setting the Is_Hidden flag.
+ 	Remove call to Set_Is_Hidden for a formal package of the enclosing
+ 	generic unit, if any.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen.adb (N_Short_Circuit):
+ 	Make Actions syntactic.
+ 	(N_Case_Expression_Alternative): Likewise.
+ 	* gen_il-gen-gen_nodes.adb (Create_Type):
+ 	No longer exempt Actions from the syntactic/semantic ordering rule.
+ 	(Check_For_Syntactic_Field_Mismatch):
+ 	No longer exempt Actions from the syntactic/semantic mixing rule.
+ 	* sinfo.ads (N_Compound_Statement):
+ 	Add comment.
+ 
+ 2025-11-03  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_aux.adb (Enclosing_Dynamic_Scope): Remove comment.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads: Remove unused fields.
+ 	* gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* sinfo.ads: Likewise.
+ 	* gen_il-gen.adb (Compile): Remove obsolete comment.
+ 
+ 2025-11-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-stratt__cheri.adb (W_80IEEE): New procedure.
+ 
+ 2025-11-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-stratt.adb (W_80IEEE): Make constant local.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads (Has_Pragma_Controlled): Remove.
+ 	(Is_Activation_Record): Document usage by llvm.
+ 	* gen_il-fields.ads (Opt_Field_Enum):
+ 	Remove Has_Pragma_Controlled.
+ 	* gen_il-gen-gen_entities.adb (Access_Kind):
+ 	Remove Has_Pragma_Controlled.
+ 	* sem_prag.adb:
+ 	Remove setting of Has_Pragma_Controlled.
+ 	* sinfo.ads (Corresponding_Entry_Body):
+ 	Document usage by codepeer.
+ 
+ 2025-11-03  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Insert ctor call
+ 	after representation clauses.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* atree.adb (Same_Node_To_Fetch_From):
+ 	Use Node_To_Fetch_From_If_Set, and remove handler.
+ 	* einfo-utils.adb (Root_Type_If_Set):
+ 	Return Empty if Base_Type_If_Set returns Empty.
+ 	Return Empty if we find Etype (T) = Empty.
+ 	(Underlying_Type): Use "Has_Non_Limited_View..." instead
+ 	of "Present (Non_Limited_View...)", because the latter raises
+ 	an exception when given the wrong Ekind.
+ 
+ 2025-11-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gen_il-fields.ads (Is_IEEE_Extended_Precision): New flag.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* gen_il-internals.adb (Image): Likewise.
+ 	* treepr.adb (Image): Likewise.
+ 	* einfo.ads: Document new flag.
+ 	* cstand.adb (Copy_Float_Type, Register_Float_Type): Use new flag.
+ 	* libgnat/s-stratt.ads (W_80IEEE): New procedure.
+ 	* libgnat/s-stratt.adb (W_80IEEE): Likewise.
+ 	* exp_strm.adb (Get_Primitives): Select new procedure when
+ 	appropriate.
+ 	* rtsfind.ads: Register new runtime procedure.
+ 	* sem_ch3.adb (Build_Derived_Numeric_Type,
+ 	Analyze_Subtype_Declaration): Propagate new flag.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122160
+ 	* sem_res.adb (Resolve_Op_Concat_Rest): Do not build the subtype of
+ 	the second operand again if it has already been built.
+ 	(Resolve_String_Literal): Do not defer the creation of the subtype
+ 	for the right operand of a concatenation whose left operand may be
+ 	the null string.
+ 
+ 2025-11-03  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch6.ads (Make_Build_In_Place_Call_In_Allocator): Simplify comment.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Remove obsolete
+ 	comment about not being able to allocate fixed-size controlled results
+ 	on the caller side, and replace another obsolete comment with a simpler
+ 	comment. Call Build_Allocate_Deallocate_Proc when the function doesn't
+ 	need a BIPalloc formal to ensure that function results with controlled
+ 	parts allocated on the caller side will be chained for finalization.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Call Needs_BIP_Collection
+ 	on the function's Entity_Id rather than the function call.
+ 	(Needs_BIP_Collection): If a BIP function doesn't need a BIPalloc formal
+ 	then it doesn't need a BIP collection either; return False in that case.
+ 	(Needs_BIP_Alloc_Form): Remove test of Needs_BIP_Collection.
+ 	* exp_ch7.adb (Expand_Cleanup_Actions): Move test of Uses_Sec_Stack
+ 	to be the first conjunct in setting of Needs_Sec_Stack_Mark, and put
+ 	the other tests in a disjunction subsidiary to that. Improve preceding
+ 	comment.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb: Rename Default_Expression to be
+ 	Expression.
+ 	* gen_il-gen.adb (Check_For_Syntactic_Field_Mismatch): Do not
+ 	exempt Default_Expression from the rule.
+ 	* par-ch12.adb (P_Formal_Object_Declarations): Use renamed setter.
+ 	* sem_ch12.adb (Default): Use renamed getter.
+ 	(Analyze_Formal_Object_Declaration): Likewise.
+ 	* sprint.adb (Sprint_Node_Actual): Use renamed getter.
+ 	* sinfo.ads: Fix comments.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* style.adb (Check_Xtra_Parens_Precedence):
+ 	Give warning based on Original_Node.
+ 
+ 2025-11-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122161
+ 	* sem_ch12.adb (Check_Generic_Actuals): Consistently set the
+ 	Is_Potentially_Use_Visible flag on actuals whenever the Is_Hidden
+ 	flag is cleared.
+ 	(Restore_Private_Views): Clear the Is_Potentially_Use_Visible flag
+ 	explicitly on the entities of an actual package.
+ 
+ 2025-11-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-trasym.ads (Calling_Entity): New function.
+ 	* libgnat/s-trasym.adb (Calling_Entity): Add dummy body.
+ 	* libgnat/s-trasym__dwarf.adb (Calling_Entity): New function.
+ 	(Symbolic_Traceback, Symbolic_Traceback_No_Lock,
+ 	Module_Symbolic_Traceback, Multi_Module_Symbolic_Traceback): Add
+ 	Subprg_Name_Only parameter and corresponding functionality.
+ 	(Symbolic_Traceback_No_Lock): Fix typo in documentation comment.
+ 	* libgnat/s-dwalin.ads (Symbolic_Traceback): Likewise.
+ 	* libgnat/s-dwalin.adb (Symbolic_Traceback): Likewise.
+ 
+ 2025-11-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Op):
+ 	Make Chars syntactic, and move it down into subclasses
+ 	N_Binary_Op and N_Unary_Op.
+ 	* gen_il-gen.adb (Create_Type):
+ 	Do not exempt Chars from the ordering rule.
+ 	(Exception_To_Inheritance_Rule): Exempt Chars from the
+ 	inheritance rule.
+ 	(Check_For_Syntactic_Field_Mismatch):
+ 	Do not exempt Chars from the syntactic mismatch rule.
+ 	This is the main point of this change.
+ 	(Put_Make_Bodies): The Nmake functions for types in N_Op
+ 	will now take a Chars parameter, which should always
+ 	default to No_Name. This will be overwritten by the
+ 	special-case Set_Chars call. Assert that it is in
+ 	fact defaulted.
+ 	* exp_ch4.adb (Expand_Array_Comparison):
+ 	Use the Nkind instead of the Chars, which seems cleaner.
+ 	Use a case instead of an elsif chain.
+ 	* sem_attr.adb (Proper_Op): Minor cleanup.
+ 	* sem_ch8.adb: Minor reformatting.
+ 	* sem_res.adb (Operator_Kind): Tighten up the result subtype.
+ 
+ 2025-11-03  Viljar Indus  <indus@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Use the
+ 	First_Subtype when creating the procedure for stream
+ 	attributes.
+ 	(Get_Array_Stream_Item_Type): New method for calculating
+ 	the type for the Item argument for streaming methods.
+ 
+ 2025-11-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* locales.c (is_iso_639_3): New static function.
+ 	(c_get_language_code): Use it to validate the ISO-639-3 code
+ 	before returning it.
+ 
+ 2025-11-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/58881
+ 	* sem_ch3.adb (Build_Derived_Private_Type): Build the underlying
+ 	full view when the derivation occurs in the public part of the
+ 	scope of the parent.
+ 	(Build_Derived_Record_Type): Propagate Has_Unknown_Discriminants
+ 	in the same circumstances.
+ 	(Constrain_Discriminated_Type): Give a specific error message for
+ 	any type with the Has_Unknown_Discriminants flag.
+ 
+ 2025-11-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/52319
+ 	* sem_ch8.adb (End_Use_Package): Use the scope of the operator.
+ 
+ 2025-10-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/15610
+ 	* sem_type.adb (Collect_Interps): Apply the same visibility
+ 	criterion to expanded names as Find_Expanded_Name.
+ 
+ 2025-10-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/54178
+ 	* sem_ch12.adb (Instantiate_Object): Strip qualification to detect
+ 	aggregates used as actuals.
+ 
+ 2025-10-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/16214
+ 	* sem_ch8.adb (Find_Expanded_Name): Consolidate and streamline the
+ 	processing required for references to instances within themselves.
+ 
+ 2025-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/48039
+ 	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Call
+ 	Remove_Homonym to remove the enclosing package from visibility.
+ 
+ 2025-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Remove_Side_Effects): Use separately the Etype of
+ 	the expression to build new nodes and its Underlying_Type to drive
+ 	part of the processing.
+ 
+ 2025-10-28  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* adaint.c: Remove __gnat_enable_signals, __gnat_disable_signals
+ 	and related code for QNX.
+ 	* libgnarl/s-taprop__qnx.adb: Disable and enable
+ 	signals in Ada.
+ 
+ 2025-10-28  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Export_Import): Skip
+ 	Set_Is_Imported on E_Exception.
+ 	* sem_prag.adb (Process_Import_Or_Interface): Explain
+ 	why not Set_Is_Imported.
+ 
+ 2025-10-28  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_util.adb (Collect_Primitive_Operations): Avoid setting
+ 	Is_Primitive for noninherited and nonoverriding subprograms not
+ 	declared immediately within a package specification.
+ 	* sem_ch13.adb (Check_Nonoverridable_Aspect_Subprograms): Better
+ 	error posting to allow multiple errors on same type but different
+ 	aggregate subprogram.
+ 
+ 2025-10-28  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* table.ads (Clear, Is_Empty): New subprograms.
+ 	* table.adb (Clear, Is_Empty): Likewise.
+ 	(Init): Use new subprogram.
+ 	* atree.adb (Traverse_Func_With_Parent): Use new subprograms.
+ 	* fmap.adb (Empty_Tables): Use new subprogram.
+ 	* par_sco.adb (Process_Pending_Decisions): Likewise.
+ 	* sem_elab.adb (Check_Elab_Call): Likewise.
+ 	* sem_ch12.adb (Build_Local_Package, Analyze_Package_Instantiation,
+ 	Analyze_Subprogram_Instantiation): Likewise.
+ 	(Save_And_Reset): Use Table.Table.First.
+ 
+ 2025-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122063
+ 	* exp_fixd.adb (Build_Double_Divide_Code): Convert the result of the
+ 	multiply.
+ 	(Build_Multiply): Use base types of operands to size the operation.
+ 	(Build_Rem): Likewise.
+ 	(Build_Scaled_Divide_Code): Convert the result of the multiply.
+ 
+ 2025-10-28  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/obsolescent_features.rst: typo
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-10-28  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* aspects.adb (Get_Aspect_Id): Enable aspect Unsigned_Base_Range
+ 	using -gnatd.u
+ 	* debug.adb (Debug_Flag_Dot_U): Document this switch.
+ 	* einfo-utils.adb (Is_Modular_Integer_Type): Return True if
+ 	the entity is a modular integer type and its base type does
+ 	not have the attribute has_unsigned_base_range_aspect.
+ 	(Is_Signed_Integer_Type): Return True if the entity is a signed
+ 	integer type, or it is a modular integer type and its base type
+ 	has the attribute has_unsigned_base_range_aspect.
+ 	* einfo.ads (E_Modular_Integer_Type): Add documentation of
+ 	Has_Unsigned_Base_Range_Aspect.
+ 	* par-ch4.adb (Scan_Apostrophe): Enable attribute Unsigned_Base_Range
+ 	using -gnatd.u
+ 	* sem_ch13.adb (Analyze_One_Aspect): Check general language
+ 	restrictions on aspect Unsigned_Base_Range. For Unsigned_Base_Range
+ 	aspect, do not delay the generation of the pragma becase we need
+ 	to process it before any type or subtype derivation is analyzed.
+ 	* sem_ch3.adb (Build_Scalar_Bound): Disable code analyzing the
+ 	bound with the base type of the parent type because, for unsigned
+ 	base range types, their base type is a modular type but their
+ 	type is a signed integer type.
+ 	* sem_prag.adb (Analyze_Pragma): Enable pragma Unsigned_Base_Range
+ 	using -gnatd.u. Check more errors on Unsigned_Base_Range pragma,
+ 	and create the new base type only when required.
+ 
+ 2025-10-28  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch12.adb (Build_Local_Package)
+ 	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
+ 	Fix Set_Last calls.
+ 	(Set_Instance_Of): Use Table.Table.Append.
+ 	(Save_And_Reset): Remove useless call. Remove defensive code.
+ 	(Restore): Remove incorrect Set_Last call and adapt to
+ 	Set_Instance_Of change.
+ 
+ 2025-10-28  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Add enclosing quotation when the
+ 	invalid switch ends with a space.
+ 
+ 2025-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/59234
+ 	* sem_ch12.adb (Analyze_Formal_Package_Declaration): Mark the
+ 	special name built for the formal in the parent of a child unit
+ 	as internal.
+ 
+ 2025-10-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/34511
+ 	* sem_ch12.adb (Analyze_Associations): Add Parent_Installed formal
+ 	parameter and pass it in call to Analyze_One_Association.
+ 	(Analyze_One_Association): Add Parent_Installed formal parameter
+ 	and pass it in call to Instantiate_Formal_Subprogram.
+ 	(Analyze_Formal_Package_Declaration): Pass Parent_Installed in call
+ 	to Analyze_Associations.
+ 	(Analyze_Package_Instantiation): Likewise.
+ 	(Analyze_Subprogram_Instantiation): Likewise.
+ 	(Instantiate_Formal_Subprogram): Add Parent_Installed formal
+ 	parameter and prune references to the parent unit(s) only if
+ 	it is true.
+ 
+ 2025-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/29958
+ 	* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Deal with
+ 	formal types specially.
+ 
+ 2025-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/25988
+ 	* sem_ch12.adb (Save_Global_References.Reset_Entity): Also call
+ 	Save_Global_Defaults for instances with an expanded name.
+ 	(Save_Global_References.Save_References): Minor code cleanup.
+ 
+ 2025-10-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/15800
+ 	* freeze.adb (Freeze_Entity.Freeze_Record_Type): Small cleanup
+ 	in code and comments.
+ 	* gcc-interface/utils.cc (create_field_decl): Assert that the type
+ 	of the field is frozen at this point.
+ 
+ 2025-10-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/13370
+ 	* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Set the
+ 	Has_Delayed_Freeze flag if the argument is not a literal.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/80033
+ 	* gcc-interface/Makefile.in (force): Restore.
+ 
+ 2025-10-24  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/80033
+ 	* gcc-interface/Makefile.in (deftarg.o): Delete.
+ 	(init-vxsim.o): Likewise.
+ 	(force): Likewise.
+ 
+ 2025-10-24  Mivirl  <octoberstargazer7405@mivirl.dev>
+ 
+ 	PR ada/122367
+ 	* rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection
+ 	of quoted arguments.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/118782
+ 	* styleg.adb (Is_Box_Comment): Also stop the loop at EOF.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/113516
+ 	* s-oscons-tmplt.c [_WIN32]: Undefine POLLPRI before redefining it.
+ 
+ 2025-10-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/98879
+ 	* terminals.c (__gnat_setup_child_communication) [_WIN32]: Add else
+ 	blocks in the processing of the data returned by ReadFile.
+ 
+ 2025-10-24  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/81087
+ 	* gnatlink.adb (Is_Prefix): Move around, streamline and return false
+ 	when the prefix is not strict.
+ 	(Gnatlink): Fix other instances of incorrect lower bound assumption.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/102078
+ 	* affinity.c (__gnat_set_affinity_mask): Add U qualifier.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/32318
+ 	* libgnat/g-catiio.adb (Image_Helper) <'c'>: Fix comment.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/68179
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): Build an initialization
+ 	procedure for a type derived from String declared with the aspect
+ 	Default_Aspect_Component_Value.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/52319
+ 	* sem_ch7.adb (Uninstall_Declarations): Use direct test on Nkind
+ 	to spot operators.
+ 	* sem_ch8.adb (End_Use_Package): Also test the Etype of operators
+ 	to spot those which are primitive operators of use-visible types.
+ 
+ 2025-10-20  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/87777
+ 	* gnatchop.adb: Add with clause for Osint.
+ 	(Locate_Executable): Delete.
+ 	(Gnatchop): Use Osint.Program_Name and Locate_Exec_On_Path instead
+ 	of Locate_Executable to locate GCC's driver executable.
+ 
+ 2025-10-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/107536
+ 	* exp_ch2.adb (Expand_Renaming): Mark the entity as referenced.
+ 
+ 2025-10-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/122295
+ 	* sem_ch12.adb (Analyze_Package_Instantiation): Force Style_Check
+ 	to False only after possibly installing the parent.
+ 	* aspects.adb (UAD_Pragma_Map): Fix style violation.
+ 	* inline.adb (To_Pending_Instantiations): Likewise.
+ 	* lib.ads (Unit_Names): Likewise.
+ 	* repinfo.adb (Relevant_Entities): Likewise.
+ 	* sem_ch7.adb (Subprogram_Table): Likewise.
+ 	(Traversed_Table): Likewise.
+ 	* sem_util.adb (Interval_Sorting): Likewise.
+ 
+ 2025-10-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	Revert:
+ 	2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/118343
+ 	* Makefile.rtl (LLVM_BUILD): Delete.
+ 
+ 2025-10-06  Marc Poulhiès  <poulhies@adacore.com>
+ 	    Éric Botcazou  <botcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (get_extended_unconstrained_array): Handle
+ 	array subtype.
+ 
+ 2025-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (convert): Also extract the _Parent field
+ 	to implement upcasting in the case where only the sizes match.
+ 
+ 2025-10-06  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Attribute_to_gnu)<Attr_Pool_Address>: Handle
+ 	extended access.
+ 
+ 2025-10-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fmap.adb (File_Mapping, Path_Mapping): Fix instantiations.
+ 	(Add_To_File_Map): Use Table.Table.Append.
+ 
+ 2025-10-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fmap.ads (Add_Forbidden_File_Name): Remove obsolete code.
+ 	* fmap.adb (Forbidden_Names, Add_Forbidden_File_Name,
+ 	Mapped_Path_Name, Reset_Tables): Remove obsolete code.
+ 
+ 2025-10-06  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: refine
+ 	description of -gnatwr
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-10-05  Franck Behaghel  <franckbehaghel_gcc@protonmail.com>
+ 
+ 	PR ada/110314
+ 	* sem_ch4.adb (Analyze_Allocator): Add call to New_Copy_Tree.
+ 
+ 2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112446
+ 	* usage.adb (Usage): Add 'z' to the list of 'g' style.
+ 
+ 2025-10-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/118343
+ 	* Makefile.rtl (LLVM_BUILD): Delete.
+ 
+ 2025-10-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/64869
+ 	* sem_ch7.adb (Install_Private_Declarations): Also propagate the
+ 	Current_Use_Clause from partial to full view.
+ 	(Uninstall_Declarations): Extend implementation of RM 8.4(8.1/3)
+ 	subclause to all primitive subprograms.
+ 
+ 2025-09-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/117517
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Try to
+ 	resolve the reducer first.  Fix casing of error message.
+ 
+ 2025-09-29  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_advice.rst: PolyORB
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst: PolyORB
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: ASIS
+ 	* doc/gnat_rm/obsolescent_features.rst: PolyORB
+ 	* doc/gnat_rm/specialized_needs_annexes.rst: PolyORB
+ 	* doc/gnat_rm/the_gnat_library.rst: PolyORB
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: ASIS
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pre_Post_Condition): Handle contracts on
+ 	generic formal subprograms like on declarations of access-to-subprogram
+ 	types.
+ 
+ 2025-09-29  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_util.adb (Attribute_Constrained_Static_Value): Special case
+ 	stand-alone objects for GNATprove.
+ 
+ 2025-09-29  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Full_View): Fix error message.
+ 
+ 2025-09-29  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* aspects.adb (Get_Aspect_Id): Return No_Aspect for Unsigned_Base_Range
+ 	name.
+ 	* sem_prag.adb (Analyze_Pragma): Disable pragma Unsigned_Base_Range.
+ 	* par-ch4.adb (Scan_Apostrophe): Disable attribute Unsigned_Base_Range.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Remove documentation
+ 	of aspect unsigned base range.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-09-29  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Do not Check_Calls in CodePeer_Mode.
+ 	(Check_Calls): Remove CodePeer_Mode special case.
+ 
+ 2025-09-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: update
+ 	rules for pragmas affected by assertion levels.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-09-29  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Procedure_Call_Policies): Update the check
+ 	between the levels of the argument and the call.
+ 
+ 2025-09-23  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch6.adb (Prepend_Constructor_Procedure_Prologue):
+ 	Push/Pop the procedure scope, so that temps created herein
+ 	get the right Scope.
+ 
+ 2025-09-23  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* libgnarl/s-stusta.adb (Report_Impl): Export a copy of
+ 	the current stack usage while holding the runtime lock.
+ 	(Report_For_Task): Do not compute stack usage for a task
+ 	that has not yet initialized its stack with the expected
+ 	pattern.
+ 	(Report_For_Task): The Stack_Analyzer object for the
+ 	environment task is not part of its ATCB. For the rest of
+ 	the tasks wait until we have initialized the stack pattern
+ 	before computing stack usage.
+ 	(Report_All_Tasks, Get_All_Tasks_Usage,
+ 	Get_Current_Task_Usage): Adapt to the new interface from
+ 	Report_Impl. Take into account that Result_Array can be
+ 	null. When we don't store stack results for a task we
+ 	need to compute it when requested.
+ 	(Print): Handle the case when we don't know the stack
+ 	usage to be reported.
+ 	* libgnat/s-stausa.adb (Initialize): For the environment
+ 	task, approximate the stack origin with the topmost
+ 	stack address that is known.
+ 	* libgnat/s-stausa.ads: Clarify comments.
+ 
+ 2025-09-23  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_util.adb (Ultimate_Prefix): Clean-up the loop condition by using
+ 	Has_prefix instead of an explicit list of node kinds.
+ 
+ 2025-09-23  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_ch10.adb (Install_Siblings): Fix condition to emit warning.
+ 
+ 2025-09-23  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_case.adb (Is_Case_Choice_Pattern): Return False for allocators.
+ 
+ 2025-09-23  Douglas B Rupp  <rupp@adacore.com>
+ 
+ 	* libgnat/system-vxworks7-aarch64-rtp-smp.ads (Linker_Options):
+ 	Remove pragma for RTP specs.
+ 	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
+ 
+ 2025-09-23  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add doc
+ 	for addition of -gnateG options b, c, and e.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: Add doc for "-e" optionn
+ 	on gnatprep and integrated preprocessing. Add doc for addition of
+ 	-gnateG options b, c, and e.
+ 	* gprep.adb (Scan_Command_Line): Add 'e' to the list of allowed switch
+ 	letters in the string passed to GNAT.Command_Line.Getopt. Set the flag
+ 	Opt.Empty_Comment_Deleted_Lines to True when the "-e" switch is found.
+ 	(Usage): Output a switch description for the "-e" switch.
+ 	* opt.ads: Add new flag variable Empty_Comment_Deleted_Lines. Add
+ 	"GNAT" to the "GNATPREP" comment line for Comment_Deleted_Lines.
+ 	* prep.adb (Output_Line): Add handling for Empty_Comment_Deleted_Lines,
+ 	outputting comment lines consisting of "--!" for lines that are removed
+ 	in the preprocessed source file when Empty_Comment_Deleted_Lines is True.
+ 	* prepcomp.adb (Preproc_Data): Add Empty_Comments component (defaulting
+ 	to False).
+ 	(No_Preproc_Data): Add association for Empty_Comments component.
+ 	(Parse_Preprocessing_Data_File): Add handling for new switch -e.
+ 	(Prepare_To_Preprocess): Add logic for setting the new option
+ 	Empty_Comment_Deleted_Lines (and making it the default for
+ 	integrated preprocessing in the absence of other switches).
+ 	* switch-c.adb (Scan_Front_End_Switches): Add support adding a single
+ 	character 'b', 'c', 'e' to the "-gnateG" switch, to select any of the
+ 	three options for replacing deleted lines in preprocessing output file.
+ 	* usage.adb: Update usage info for -gnateG, to reflect the option of
+ 	appending b, c, or e to the switch.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-23  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sprint.adb (Sprint_Node_Actual): Print finally statements, if
+ 	present.
+ 
+ 2025-09-23  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_util.adb (Is_Partially_Initialized_Type): Return False
+ 	for record types with no components.
+ 
+ 2025-09-23  Steve Baird  <baird@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Document the
+ 	Extended_Access aspect.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/121968
+ 	* sem_ch12.adb (Associations.Find_Assoc): Add guard for clauses.
+ 	* sem_dim.adb (Analyze_Dimension_Array_Aggregate): Add test for
+ 	N_Iterated_Component_Association nodes.
+ 
+ 2025-09-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/gigi.h (create_var_decl): Add LINKONCE_FLAG boolean
+ 	parameter.
+ 	(create_subprog_decl): Likewise.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Adjust calls to
+ 	create_var_decl and create_subprog_decl.
+ 	(elaborate_expression_1): Likewise.
+ 	* gcc-interface/trans.cc (gigi): Likewise.
+ 	(build_raise_check): Likewise.
+ 	(Subprogram_Body_to_gnu): Likewise.
+ 	(create_temporary): Likewise.
+ 	(Exception_Handler_to_gnu): Likewise.
+ 	(Compilation_Unit_to_gnu): Likewise.
+ 	(gnat_to_gnu): Likewise.
+ 	(use_alias_for_thunk_p): Return false for a one-only target.
+ 	* gcc-interface/utils.cc (maybe_pad_type): Adjust call to
+ 	create_var_decl.
+ 	(create_var_decl): Add LINKONCE_FLAG boolean parameter.
+ 	(create_subprog_decl): Likewise.
+ 
+ 2025-09-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/ada-tree.h (TYPE_EXTENDED_POINTER_P): New.
+ 	(TYPE_IS_EXTENDED_POINTER_P): New.
+ 	(TYPE_EXTENDED_UNCONSTRAINED_ARRAY): New.
+ 	(SET_TYPE_EXTENDED_UNCONSTRAINED_ARRAY): New.
+ 	(TYPE_DUMMY_EXT_POINTER_TO): New.
+ 	(SET_TYPE_DUMMY_EXT_POINTER_TO): New.
+ 	* gcc-interface/decl.cc (get_extended_unconstrained_array): New.
+ 	(gnat_to_gnu_entity): Handle extended access type.
+ 	(get_unpadded_extended_type): New.
+ 	(gnat_to_gnu_component_type): Handle extended access type.
+ 	(build_template_type): New.
+ 	(gnat_to_gnu_field): Handle extended access type.
+ 	(validate_size): Likewise.
+ 	(set_rm_size): Likewise.
+ 	(copy_and_substitute_in_layout): Likewise.
+ 	(rm_size): Likewise.
+ 	* gcc-interface/gigi.h (get_unpadded_extended_type): New.
+ 	(build_template_type): New.
+ 	(build_dummy_unc_pointer_types_ext): New.
+ 	(finish_extended_pointer_type): New.
+ 	(build_unc_object_type_from_ptr): Rename first parameter.
+ 	* gcc-interface/misc.cc (gnat_print_type): Handle extended access type.
+ 	* gcc-interface/trans.cc (Identifier_to_gnu): Likewise.
+ 	(Attribute_to_gnu): Likewise.
+ 	(gnat_to_gnu): Likewise.
+ 	* gcc-interface/utils.cc (convert_to_fat_pointer): Assert if converting an
+ 	extended pointer.
+ 	(build_dummy_unc_pointer_types_ext): New.
+ 	(finish_extended_pointer_type): New.
+ 	(finish_record_type): Handle extended access type.
+ 	(build_unc_object_type_from_ptr): Likewise.
+ 	(convert_to_extended_pointer): New.
+ 	(convert): Handle extended access type.
+ 	(gnat_pushdecl): Likewise.
+ 	(maybe_pad_type): Likewise.
+ 	* gcc-interface/utils2.cc (build_unary_op): Likewise.
+ 	(build_binary_op): Likewise.
+ 	(build_allocator): Likewise.
+ 	(gnat_save_expr): Likewise.
+ 	(gnat_protect_expr): Likewise.
+ 	(gnat_stabilize_reference_1): Likewise.
+ 
+ 2025-09-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Selected_Component): Bail out if the prefix
+ 	has Void_Type.
+ 
+ 2025-09-19  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_User_Defined_Binary_Op): Remove declare block.
+ 
+ 2025-09-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst (Structural Generic
+ 	Instantiation): New entry
+ 	* einfo.ads (Is_Link_Once): New flag defined in entities.
+ 	* sinfo.ads (Is_Structural): New flag defined in instantiations.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add Is_Link_Once and
+ 	Is_Structural.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Add Is_Link_Once
+ 	semantic flag.
+ 	* gen_il-gen-gen_nodes.adb (N_Generic_Instantiation): Move up
+ 	Parent_Spec field and add Is_Structural semantic flag.
+ 	* frontend.adb: Add with clause for Sem_Ch12.
+ 	(Frontend): After analysis is complete and bodies are instantiated,
+ 	call Sem_Ch12.Mark_Link_Once on the declarations of the main unit.
+ 	* par.adb (P_Qualified_Simple_Name): Delete.
+ 	(P_Qualified_Simple_Name_Resync): Likewise
+ 	(P_Exception_Name): New function declaration.
+ 	(P_Label_Name): Likewise.
+ 	(P_Loop_Name): Likewise.
+ 	(P_Generic_Unit_Name): Likewise.
+ 	(P_Library_Unit_Name): Likewise.
+ 	(P_Package_Name): Likewise.
+ 	(P_Parent_Unit_Name): Likewise.
+ 	(P_Subtype_Name): Likewise.
+ 	(P_Subtype_Name_Resync): Likewise.
+ 	* par-ch3.adb (P_Subtype_Mark_Resync): Replace call to
+ 	P_Qualified_Simple_Name_Resync by P_Subtype_Name_Resync.
+ 	(P_Identifier_Declarations): Replace call to
+ 	P_Qualified_Simple_Name_Resync by P_Exception_Name.
+ 	(P_Derived_Type_Def_Or_Private_Ext_Decl): Replace call to
+ 	P_Qualified_Simple_Name by P_Subtype_Name.
+ 	(P_Interface_Type_Definition): Replace calls to
+ 	P_Qualified_Simple_Name by P_Subtype_Name.
+ 	* par-ch4.adb (P_Reduction_Attribute_Reference): Move around and
+ 	change name of parameter.
+ 	(P_Name): Document new grammar rule and make a couple of tweaks.
+ 	(P_Exception_Name): New function.
+ 	(P_Label_Name): Likewise.
+ 	(P_Loop_Name): Likewise.
+ 	(P_Generic_Unit_Name): Likewise.
+ 	(P_Library_Unit_Name): Likewise.
+ 	(P_Package_Name): Likewise.
+ 	(P_Parent_Unit_Name): Likewise.
+ 	(P_Subtype_Name): Likewise.
+ 	(P_Subtype_Name_Resync): Likewise.
+ 	(P_Qualified_Simple_Name): Rename into...
+ 	(P_Simple_Name): ...this.
+ 	(P_Qualified_Simple_Name_Resync): Rename into...
+ 	(P_Simple_Name_Resync): ...this.  Accept left parenthesis and
+ 	dot as name extensions.
+ 	(P_Allocator): Replace call to P_Qualified_Simple_Name_Resync
+ 	by P_Subtype_Name_Resync.
+ 	* par-ch5.adb (P_Goto_Statement): Replace call to
+ 	P_Qualified_Simple_Name by P_Label_Name.
+ 	(Parse_Loop_Flow_Statement): Replace call to
+ 	P_Qualified_Simple_Name by P_Loop_Name.
+ 	* par-ch6.adb (P_Subprogram): Replace call to
+ 	P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ 	* par-ch7.adb (P_Package): Replace calls to
+ 	P_Qualified_Simple_Name by P_Package_Name and P_Generic_Unit_Name.
+ 	* par-ch8.adb (P_Use_Package_Clause): Replace calls to
+ 	P_Qualified_Simple_Name by P_Package_Name.
+ 	* par-ch9.adb (P_Task): Replace call to
+ 	P_Qualified_Simple_Name by P_Subtype_Name.
+ 	(P_Protected): Likewise.
+ 	* par-ch10.adb (P_Context_Clause): Replace call to
+ 	P_Qualified_Simple_Name by P_Library_Unit_Name.
+ 	(P_Subunit): Replace call to P_Qualified_Simple_Name by
+ 	P_Parent_Unit_Name.
+ 	* par-ch12.adb (P_Generic): Replace call to
+ 	P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ 	(P_Formal_Derived_Type_Definition): Replace call to
+ 	P_Qualified_Simple_Name by P_Subtype_Name.
+ 	(P_Formal_Package_Declaration): Replace call to
+ 	P_Qualified_Simple_Name by P_Generic_Unit_Name.
+ 	* sem_ch4.adb: Add with and use clauses for Sem_Ch12.
+ 	(Analyze_Call): Accept implicit instantiations with -gnatX0.
+ 	(Analyze_Indexed_Component_Form): Likewise.
+ 	* sem_ch8.adb (Analyze_Use_Package): Add guard before inserting
+ 	a with clause automatically when there is a use clause.
+ 	(Check_In_Previous_With_Clause): Retrieve original names.
+ 	(Check_Library_Unit_Renaming): Deal with structural instances.
+ 	(End_Use_Type): Minor tweak.
+ 	* sem_ch10.adb (Analyze_With_Clause): Remove useless test and
+ 	call Defining_Entity_Of_Instance.
+ 	* sem_ch12.ads (Build_Structural_Instantiation): New function.
+ 	(Mark_Link_Once): New procedure.
+ 	* sem_ch12.adb: Add with and use clauses for Exp_Dbug.
+ 	(Analyze_Associations): Add support for structural instantiations.
+ 	(Analyze_Package_Instantiation): Likewise.
+ 	(Analyze_Subprogram_Instantiation): Likewise.
+ 	(Analyze_Structural_Associations): New procedure.
+ 	(Need_Subprogram_Instance_Body): Return True for instantiation is
+ 	in the auxiliary declarations of the main unit.
+ 	(Build_Structural_Instantiation): New function.
+ 	(Mark_Link_Once): New procedure.
+ 	* sem_util.ads (Add_Local_Declaration): New procedure.
+ 	(Defining_Entity_Of_Instance): New function.
+ 	* sem_util.adb (Add_Local_Declaration): New procedure.
+ 	(Defining_Entity_Of_Instance): New function.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-19  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* aspects.ads: Fix comment.
+ 
+ 2025-09-19  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* aspects.ads: Remove comment.
+ 
+ 2025-09-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* libgnat/s-putima.ads (Ext_Access_Pointer): New.
+ 	(Put_Image_Extended_Access_Pointer): New.
+ 	* libgnat/s-putima.adb (Ext_Acc_Instance): New.
+ 	(Put_Image_Extended_Access_Pointer): New.
+ 	* rtsfind.ads (RE_Id, RE_Unit_Table): Set value for
+ 	RE_Put_Image_Extended_Access_Pointer.
+ 	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Handle extended
+ 	access.
+ 
+ 2025-09-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* fe.h (Is_Extended_Access_Type): Add C bindings.
+ 	* sem_util.ads (Is_Extended_Access_Type): Add comment that any
+ 	change to the function must take care of the C binding.
+ 
+ 2025-09-19  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* layout.adb (Layout_Type): Adjust comment and code extended
+ 	accesses.
+ 
+ 2025-09-19  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Add_Tag): Remove superfluous statements.
+ 
+ 2025-09-19  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Interunit_Ref_OK): Treat a subunit like a body.
+ 	(Build_And_Insert_Type_Attr_Subp): When climbing up the
+ 	tree, go from an N_Subunit node to its stub (instead of to the
+ 	subunit's N_Compilation_Unit node).
+ 
+ 2025-09-19  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): In the case of a VADS-specific
+ 	size attribute, only fold to the object size when the Esize field
+ 	is known.
+ 
+ 2025-09-16  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_strm.ads (Get_Primitives): New function.
+ 	* exp_strm.adb (Get_Primitives): Likewise.
+ 	(Build_Elementary_Input_Call, Build_Elementary_Write_Call): use
+ 	Get_Primitives.
+ 	(Has_Stream_Standard_Rep): Add formal parameter and rename to...
+ 	(Is_Stream_Standard_Rep): New function.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Fix error
+ 	emission.
+ 
+ 2025-09-16  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	Revert:
+ 	2025-09-15  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch6.ads (Make_Build_In_Place_Call_In_Allocator): Simplify comment.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Remove obsolete
+ 	comment about not being able to allocate fixed-size controlled results
+ 	on the caller side, and replace another obsolete comment with a simpler
+ 	comment. Call Build_Allocate_Deallocate_Proc when the function doesn't
+ 	need a BIPalloc formal to ensure that function results with controlled
+ 	parts allocated on the caller side will be chained for finalization.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Call Needs_BIP_Collection
+ 	on the function's Entity_Id rather than the function call.
+ 	(Needs_BIP_Collection): If a BIP function doesn't need a BIPalloc formal
+ 	then it doesn't need a BIP collection either; return False in that case.
+ 	(Needs_BIP_Alloc_Form): Remove test of Needs_BIP_Collection.
+ 	* exp_ch7.adb (Expand_Cleanup_Actions): Move test of Uses_Sec_Stack
+ 	to be the first conjunct in setting of Needs_Sec_Stack_Mark, and put
+ 	the other tests in a disjunction subsidiary to that. Improve preceding
+ 	comment.
+ 
+ 2025-09-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR ada/114065
+ 	* libgnarl/s-osinte__darwin.adb: Add and reference clause
+ 	for Interfaces.C, remove clause for Interfaces.C.Extensions.
+ 
+ 2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/114065
+ 	PR ada/121953
+ 	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) [x32-linux]: Replace
+ 	libgnarl/s-osinte__x32.adb with libgnarl/s-osinte__posix.adb.
+ 	* libgnarl/s-osinte__x32.adb: Delete.
+ 
+ 2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu)
+ 	<N_Object_Renaming_Declaration>: Deal with objects whose elaboration
+ 	is deferred.
+ 	(process_freeze_entity): Deal with renamed objects whose elaboration
+ 	is deferred.
+ 
+ 2025-09-15  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch6.ads (Make_Build_In_Place_Call_In_Allocator): Simplify comment.
+ 	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Remove obsolete
+ 	comment about not being able to allocate fixed-size controlled results
+ 	on the caller side, and replace another obsolete comment with a simpler
+ 	comment. Call Build_Allocate_Deallocate_Proc when the function doesn't
+ 	need a BIPalloc formal to ensure that function results with controlled
+ 	parts allocated on the caller side will be chained for finalization.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration): Call Needs_BIP_Collection
+ 	on the function's Entity_Id rather than the function call.
+ 	(Needs_BIP_Collection): If a BIP function doesn't need a BIPalloc formal
+ 	then it doesn't need a BIP collection either; return False in that case.
+ 	(Needs_BIP_Alloc_Form): Remove test of Needs_BIP_Collection.
+ 	* exp_ch7.adb (Expand_Cleanup_Actions): Move test of Uses_Sec_Stack
+ 	to be the first conjunct in setting of Needs_Sec_Stack_Mark, and put
+ 	the other tests in a disjunction subsidiary to that. Improve preceding
+ 	comment.
+ 
+ 2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* checks.adb (Apply_Discriminant_Check): Remove undocumented test
+ 	on Is_Aliased_View applied to the left-hand side to skip the check
+ 	in the case where the subtypes are the same, and replace it with a
+ 	test that the subtypes are constrained.
+ 
+ 2025-09-15  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_rm/security_hardening_features.rst:
+ 	clarify that hardening options are not supported by the
+ 	LLVM back end.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Disable context checks for
+ 	the preanalysis of the expression for Loop_Invariant pragmas
+ 	as the ghost region for the pragma has not been set up yet.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Get_Applicable_Policy): Match assertion levels
+ 	by name.
+ 
+ 2025-09-15  Steve Baird  <baird@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): In the case of an anonymous
+ 	access-to-subprogram type where Do_Freeze_Profile is True, freeze
+ 	the designated subprogram type.
+ 	(Should_Freeze_Type): Do not call Unit_Declaration_Node with
+ 	a parentless argument.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): When calling
+ 	Freeze_Before, override the default value for Do_Freeze_Profile.
+ 	This is needed in some cases to prevent premature freezing in the
+ 	case of an object of an anonymous access-to-subprogram type.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Add ghost level check to
+ 	Assertion_Policy.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Assignment_Policies): The level of the assignee
+ 	should depend on the level of the region.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Is_Ok_Pragma): Remove calls to Check_Policies.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* contracts.adb: Update SPARK RM reference numbers.
+ 	* freeze.adb: Likewise.
+ 	* ghost.adb: Likewise.
+ 	* ghost.ads: Likewise.
+ 	* sem_ch12.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_prag.adb: Likwise.
+ 	* sem_res.adb: Likewise.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Inconsistent_Argument_Ghostliness):
+ 	new method for handling the ghost constency errors between
+ 	different arguments. Use this method in the processing for
+ 	pragmas Unused, Unrefefrenced, Unreferenced_Objects, Inline and
+ 	No_Return.
+ 	* sem_prag.ads (Suppressed_Ghost_Policy_Check_Pragma): add
+ 	missing entry for pragma Inline.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Assignee_Levels): Fix the condition and improve
+ 	error message handling.
+ 
+ 2025-09-15  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/114065
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-c_time$(objext) and
+ 	s-c_time$(objext).
+ 	(Aarch64/Android): Do not use s-osinte__android.adb.
+ 	(SPARC/Solaris): Do not use s-osprim__solaris.adb.
+ 	(x86/Solaris): Likewise.
+ 	(LynxOS178): Do not use s-parame__posix2008.ads.
+ 	(RTEMS): Likewise.
+ 	(x32/Linux): Likewise, as well as s-linux__x32.ads.  Replace
+ 	s-osprim__x32.adb with s-osprim__posix.adb.
+ 	(LIBGNAT_OBJS): Remove cal.o.
+ 	* cal.c: Delete.
+ 	* doc/gnat_rm/the_gnat_library.rst (GNAT.C_Time): New entry.
+ 	(GNAT.Calendar): Do not mention the obsolete conversion functions.
+ 	* impunit.adb (Non_Imp_File_Names_95): Add g-c_time.
+ 	* libgnarl/a-exetim__posix.adb: Add with clause for System.C_Time
+ 	(Clock): Use type and functions from System.C_Time.
+ 	* libgnarl/s-linux.ads: Remove with clause for System.Parameters.
+ 	Remove declarations of C time types.
+ 	* libgnarl/s-linux__alpha.ads: Likewise.
+ 	* libgnarl/s-linux__android-aarch64.ads: Likewise.
+ 	* libgnarl/s-linux__android-arm.ads: Likewise.
+ 	* libgnarl/s-linux__hppa.ads: Likewise.
+ 	* libgnarl/s-linux__loongarch.ads: Likewise.
+ 	* libgnarl/s-linux__mips.ads: Likewise.
+ 	* libgnarl/s-linux__riscv.ads: Likewise.
+ 	* libgnarl/s-linux__sparc.ads: Likewise.
+ 	* libgnarl/s-osinte__aix.ads: Likewise.
+ 	* libgnarl/s-osinte__android.ads: Likewise.
+ 	* libgnarl/s-osinte__cheribsd.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.ads: 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__solaris.ads: Likewise.
+ 	* libgnarl/s-osinte__vxworks.ads: Likewise.
+ 	* libgnarl/s-qnx.ads: Likewise.
+ 	* libgnarl/s-linux__x32.ads: Delete.
+ 	* libgnarl/s-osinte__darwin.adb (To_Duration): Remove.
+ 	(To_Timespec): Likewise.
+ 	* libgnarl/s-osinte__aix.adb: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.adb: Likewise.
+ 	* libgnarl/s-osinte__freebsd.adb: Likewise.
+ 	* libgnarl/s-osinte__gnu.adb: Likewise.
+ 	* libgnarl/s-osinte__lynxos178.adb: Likewise.
+ 	* libgnarl/s-osinte__posix.adb: Likewise.
+ 	* libgnarl/s-osinte__qnx.adb: Likewise.
+ 	* libgnarl/s-osinte__rtems.adb: Likewise.
+ 	* libgnarl/s-osinte__solaris.adb: Likewise.
+ 	* libgnarl/s-osinte__vxworks.adb: Likewise.
+ 	* libgnarl/s-osinte__x32.adb: Likewise.
+ 	* libgnarl/s-taprop__solaris.adb: Add with clause for System.C_Time.
+ 	(Monotonic_Clock): Use type and functions from System.C_Time.
+ 	(RT_Resolution): Likewise.
+ 	(Timed_Sleep): Likewise.
+ 	(Timed_Delay): Likewise.
+ 	* libgnarl/s-taprop__vxworks.adb: Likewise.
+ 	* libgnarl/s-tpopmo.adb: Likewise.
+ 	* libgnarl/s-osinte__android.adb: Delete.
+ 	* libgnat/g-c_time.ads: New file.
+ 	* libgnat/g-calend.adb: Delegate to System.C_Time.
+ 	* libgnat/g-calend.ads: Likewise.
+ 	* libgnat/g-socket.adb: Likewise.
+ 	* libgnat/g-socthi.adb: Likewise.
+ 	* libgnat/g-socthi__vxworks.adb: Likewise.
+ 	* libgnat/g-sothco.ads: Likewise.
+ 	* libgnat/g-spogwa.adb: Likewise.
+ 	* libgnat/s-c_time.adb: New file.
+ 	* libgnat/s-c_time.ads: Likewise.
+ 	* libgnat/s-optide.adb: Import nanosleep here.
+ 	* libgnat/s-os_lib.ads (time_t): Remove.
+ 	(To_Ada): Adjust.
+ 	(To_C): Likewise.
+ 	* libgnat/s-os_lib.adb: Likewise.
+ 	* libgnat/s-osprim__darwin.adb: Delegate to System.C_Time.
+ 	* libgnat/s-osprim__posix.adb: Likewise.
+ 	* libgnat/s-osprim__posix2008.adb: Likewise.
+ 	* libgnat/s-osprim__rtems.adb: Likewise.
+ 	* libgnat/s-osprim__unix.adb: Likewise.
+ 	* libgnat/s-osprim__solaris.adb: Delete.
+ 	* libgnat/s-osprim__x32.adb: Likewise.
+ 	* libgnat/s-parame.ads (time_t_bits): Remove.
+ 	* libgnat/s-parame__hpux.ads: Likewise.
+ 	* libgnat/s-parame__vxworks.ads: Likewise.
+ 	* libgnat/s-parame__posix2008.ads: Delete.
+ 	* s-oscons-tmplt.c (SIZEOF_tv_nsec): New constant.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Finalize_Address): In an untagged derivation, call
+ 	Root_Type on the full view of the base type if the partial view is
+ 	itself not a derived type.
+ 	(Is_Untagged_Derivation): Minor formatting tweak.
+ 
+ 2025-09-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Unqualified_Unconditional_Parent): New function.
+ 	* exp_util.adb (Unconditional_Parent): Do not look through qualified
+ 	expressions.
+ 	(Unqualified_Unconditional_Parent): New function identical to the
+ 	original Unconditional_Parent.
+ 	* exp_aggr.adb (Convert_To_Assignments): Replace Unconditional_Parent
+ 	with Unqualified_Unconditional_Parent.
+ 	(Expand_Array_Aggregate): Likewse.
+ 	* exp_ch4.adb (Expand_N_Case_Expression): Likewise.
+ 	(Expand_N_If_Expression): Likewise.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bypass an enclosing
+ 	qualified expression in the parent chain.
+ 
+ 2025-09-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Fix section of Finalizable.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Expression_Function): Disable ghost
+ 	checks during the early freeze.
+ 
+ 2025-09-15  Steve Baird  <baird@adacore.com>
+ 
+ 	* aspects.ads: Define Super aspect; allow Initialize aspect
+ 	specification on a subprogram body.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite Make
+ 	attribute implementation.
+ 	* exp_ch3.adb (Initialization_Control): Delete Initialization_Mode
+ 	and Make_Mode_Literal (those declarations were moved to the spec).
+ 	(Build_Record_Init_Proc): For a constructor type, component
+ 	initialization (other than for the tag component, if any) must be
+ 	performed by calling the single-argument constructor procedure.
+ 	(Requires_Init_Proc): Return True for a constructor type.
+ 	* exp_ch3.ads (Make_Mode_Literal, Initialization_Mode): New, moved
+ 	from the body of this package.
+ 	* exp_ch6.adb (Expand_N_Subprogram_Body): Declare, implement, and
+ 	call a new local procedure, Prepend_Constructor_Procedure_Prologue
+ 	in order to generate component initialization for a constructor
+ 	procedure.
+ 	* sem_attr.adb (Analyze_Attribute): Improve the error message
+ 	generated for a 'Make attribute reference if GNAT extensions are
+ 	not all allowed.
+ 	* sem_ch13.adb (Analyze_One_Aspect): Improved implementation of
+ 	aspect specifications for Initialize, Constructor, and Super
+ 	aspects. For Super, there was no previous implementation.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.adb (Mark_New_Ghost_Node): Set Is_Implicit_Ghost for
+ 	all newly created nodes.
+ 	* gen_il-fields.ads (Is_Implicit_Ghost): New attribute.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Add Is_Implicit_Ghost
+ 	attribute.
+ 	* ghost.adb (Ghost_Policy_In_Effect): Implicit_Ghost_Entities inside
+ 	pragmas get the ghost mode from the region isntead of the global
+ 	ghost policy.
+ 	(Ghost_Assertion_Level_In_Effect): New function that returns the
+ 	applicable assertion level for the given entity in a similar manner
+ 	as Ghost_Policy_In_Effect.
+ 	(Install_Ghost_Region): Set Is_Inside_Statement_Or_Pragma attribute.
+ 	(Mark_And_Set_Ghost_Body): Update the logic for deriving the ghost
+ 	region.
+ 	(Set_Ghost_Mode): Ignored pragmas attached to checked ghost entities
+ 	now create an ignored ghost region. Pragmas attached to non-ghost
+ 	entities create the ghost region based on the policy applied to the
+ 	given pragma.
+ 	* opt.ads (Ghost_Config_Type): add new attribute
+ 	Is_Inside_Statement_Or_Pragama to track whether we should take the
+ 	active ghost mode from the ghost region for implicit ghost entities.
+ 	* sem_prag.adb (Analyze_Pragma): Mark entities that have an explicit
+ 	ghost pragma as non-implicit ghost.
+ 
+ 2025-09-15  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ 	Remove the note on light runtimes.
+ 
+ 2025-09-15  Sebastian Poeplau  <poeplau@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Move
+ 	recommendation of Toolchain_Name up.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-15  Vadim Godunko  <godunko@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Adafinal): Don't generate call of adafinal
+ 	when use of standard library suppressed.
+ 
+ 2025-09-15  Vadim Godunko  <godunko@adacore.com>
+ 
+ 	* bindgen.adb (Gen_Adafinal): Don't generate code when
+ 	use of standard library suppressed.
+ 
+ 2025-09-15  Vadim Godunko  <godunko@adacore.com>
+ 
+ 	* libgnat/a-swunau.ads (Set_Wide_String): New subprogram.
+ 	* libgnat/a-swunau.adb (Set_Wide_String): Likewise.
+ 	* libgnat/a-swunau__shared.adb (Set_Wide_String): Likewise.
+ 	* libgnat/a-szunau.ads (Set_Wide_Wide_String): Likewise.
+ 	* libgnat/a-szunau.adb (Set_Wide_Wide_String): Likewise.
+ 	* libgnat/a-szunau__shared.adb (Set_Wide_Wide_String): Likewise.
+ 
+ 2025-09-15  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Context): Avoid context checks when they
+ 	are globally disabled.
+ 	* sem.ads (Ghost_Context_Checks_Disabled): New flag to control
+ 	whether ghost context checks are activated or not.
+ 	* sem_prag.adb (Analyze_Pragma): Disable ghost context checks for
+ 	pragmas that determine their ghostliness based on one of its arguments.
+ 
+ 2025-09-15  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.ads (Is_Ancestor_Package): Fix documentation comment.
+ 	* sem_util.adb (Is_Ancestor_Package): Rename local object.
+ 
+ 2025-09-11  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* libgnat/g-socket.adb (Listen_Socket): Change default value.
+ 	* libgnat/g-socket.ads (Listen_Socket): Likewise.
+ 	* s-oscons-tmplt.c (BACKLOG_MAX): New.
+ 
+ 2025-09-11  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* env.c (__gnat_clearenv): Adjust comment.
+ 	* libgnarl/a-intnam__bsd.ads: Fix copyright date.
+ 
+ 2025-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Give a
+ 	warning for huge imported objects as well.
+ 
+ 2025-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/ada-tree.h (TYPE_ALIGN_OK): Delete.
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Do not set it.
+ 	* gcc-interface/gigi.h (standard_datatypes): Add ADT_tag_name_id.
+ 	(tag_name_id): New macro.
+ 	(type_is_tagged_or_cw_equivalent): New inline predicate.
+ 	* gcc-interface/trans.cc (gigi): Initialize tag_name_id.
+ 	(gnat_to_gnu) <N_Unchecked_Type_Conversion>: Replace tests on
+ 	TYPE_ALIGN_OK with calls to type_is_tagged_or_cw_equivalent.
+ 	(addressable_p): Likewise.
+ 	* gcc-interface/utils.cc (convert): Likewise.
+ 	* gcc-interface/utils2.cc (build_binary_op): Likewise.
+ 
+ 2025-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/misc.cc (gnat_get_array_descr_info): In the record
+ 	type case, bail out if the original array type cannot be retrieved.
+ 
+ 2025-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/gigi.h (standard_datatypes): Add ADT_uns_mulv64_decl
+ 	and ADT_uns_mulv128_decl.
+ 	(uns_mulv64_decl): New macro.
+ 	(uns_mulv128_decl): Likewise.
+ 	* gcc-interface/trans.cc (gigi): Create the uns_mulv64_decl and
+ 	uns_mulv128_decl declarations.
+ 	(gnat_to_gnu) <N_Op_Add>: Perform an overflow check for unsigned
+ 	integer addition, subtraction and multiplication if required.
+ 	<N_Op_Minus>: Perform an overflow check for unsigned integer
+ 	negation if required.
+ 	(build_unary_op_trapv): Add support for unsigned types.
+ 	(build_binary_op_trapv): Likewise.
+ 	<MINUS_EXPR>: Perform the check if the LHS is zero in the signed
+ 	case as well.
+ 
+ 2025-09-11  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Actuals): After building the tree for a
+ 	predicate check, call Prepend_To instead of Append_To so that the
+ 	check is performed before, instead of after, the corresponding
+ 	parameter copy-back.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb: Create a ghost region for pragma annotate before
+ 	analyzing its arguments.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Iterator_Specification): Check ghost context
+ 	of Iterable functions when handling iterator specifications with an
+ 	Iterable aspect.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Policy): Update coding style.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Policy): Avoid triggering a ghost
+ 	policy error if the policy is referenced within the Iterable
+ 	aspect.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Is_OK_Statement): Check the levels of the
+ 	assignee with the levels of the entity are ghost level dependent.
+ 	(Check_Assignement_Levels): New function for checking the level
+ 	dependencies.
+ 
+ 2025-09-11  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo.ads (Ghost_Assertion_Level): Fix comment.
+ 
+ 2025-09-11  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Mark_And_Set_Ghost_Assignment): Create a ghost region
+ 	for an assigment irregardless of whether the expander is active.
+ 	Relocate the Assignment validity checks from Is_OK_Statement to
+ 	this subprogram.
+ 
+ 2025-09-11  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Container_Aggr_Code.Build_Size_Expr): In the case
+ 	of an association with a single choice, only call Update_Choices when
+ 	the choice expression is nonstatic.
+ 
+ 2025-09-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch5.adb
+ 	(Expand_Assign_With_Target_Names.Replace_Target):
+ 	Remove code setting Entity to Empty.
+ 	* sinfo.ads (Has_Target_Names):
+ 	Improve comment: add "@" to clarify what "target name"
+ 	means, and remove the content-free phrase "and must
+ 	be expanded accordingly."
+ 
+ 2025-09-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo-utils.adb (Root_Type): Do not deal with missing Etype.
+ 
+ 2025-09-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo-utils.adb (Root_Type): Deal with missing Etype.
+ 	(Root_Type_If_Set): Likewise.
+ 
+ 2025-09-11  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): Protect call to Associated_Storage_Pool
+ 	since it cannot be used when the Etype is not set.
+ 	* sem_ch3.adb (Access_Type_Declaration): Ditto.
+ 	* sem_aux.adb (Is_Derived_Type): Protect call to Root_Type since it
+ 	cannot be used when the Etype is not set.
+ 
+ 2025-09-11  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/s-crtl.ads: define unsigned
+ 	* libgnat/s-crtl__mingw.adb (read, write): change arg type
+ 
+ 2025-09-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Entity): Change "=" to ">=" in
+ 	size comparison for Implicit_Packing mode.
+ 	Keep it as "=" for giving error messages.
+ 	* opt.ads (Implicit_Packing): Minor: correct obsolete
+ 	comment.
+ 
+ 2025-09-11  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb (Report_Null_Array_Constraint_Error): Adjust code
+ 	for reporting the error on enumeration types.
+ 	(Resolve_Null_Array_Aggregate): On multidimiensional arrays, avoid
+ 	reporting the same error several times. Flag the node as raising
+ 	constraint error when the bounds are known and some of them is
+ 	known to raise constraint error.
+ 
+ 2025-09-11  Bob Duff  <duff@adacore.com>
+ 
+ 	* atree.ads (Node_To_Fetch_From_If_Set): Alternative to
+ 	Node_To_Fetch_From that returns Empty in error cases.
+ 	For use only in Treepr.
+ 	* treepr.adb (Print_Entity_Field): Avoid printing field
+ 	if Node_To_Fetch_From_If_Set returns Empty.
+ 	* einfo-utils.ads (Base_Type_If_Set): Alternative to
+ 	Base_Type that returns Empty in error cases.
+ 	(Implementation_Base_Type_If_Set): Likewise.
+ 	(Root_Type_If_Set): Likewise.
+ 	(Underlying_Type): Use more accurate result subtype.
+ 	* einfo-utils.adb (Base_Type): Add Asserts.
+ 	(Implementation_Base_Type): Add Assert; minor cleanup.
+ 	(Root_Type): Add Assert; minor cleanup. Remove Assert that
+ 	is redundant with predicate.
+ 	(Base_Type_If_Set): Body of new function.
+ 	(Implementation_Base_Type_If_Set): Body of new function.
+ 	(Root_Type_If_Set): Body of new function.
+ 
+ 2025-09-11  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* adaint.c: Add functions to disable and enable signals on QNX.
+ 	* libgnarl/s-taprop__qnx.adb (Create_Task): Disable
+ 	signals when calling pthread_create.
+ 
+ 2025-09-11  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Eq): Test for absence of user-defined
+ 	equality on type being compared (for both array and record types)
+ 	as a condition for checking for abstract equality on component
+ 	types. Add a "???" comment about current limitations on issuing
+ 	the new warning.
+ 	(Warn_On_Abstract_Equality_For_Component): Remove temporary disabling
+ 	of the warning. Improve comment on declaration.
+ 
+ 2025-09-11  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Discriminants, Process_Full_View): Fix
+ 	comments.
+ 
+ 2025-09-11  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Remove strict analysis condition.
+ 
+ 2025-09-11  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* par-load.adb (Load): Better warning message.
+ 
+ 2025-09-11  Tucker Taft  <taft@adacore.com>
+ 
+ 	* exp_attr.adb
+ 	(Build_Array_VS_Func and Build_Record_VS_Func): Pass in the
+ 	Attr as the Related_Node parametr when calling
+ 	Make_Temporary for the Func_Id for the array and record
+ 	Valid_Scalars local functions.
+ 
+ 2025-09-11  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.ads (Find_Type_Name): Improve documentation comment.
+ 
+ 2025-09-11  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch4.adb (Warn_On_Abstract_Equality_For_Component): Temporarily
+ 	disable warning.
+ 
+ 2025-09-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/121885
+ 	* snames.ads-tmpl (Pragma_Id): Rename Unknown_Pragma to
+ 	Pragma_Unknown for the sake of XSnamesT.
+ 	* snames.adb-tmpl (Get_Pragma_Id): Adjust to above renaming.
+ 	* snames.h-tmpl (Attribute_Id): Change underlying type to Byte.
+ 	(Get_Attribute_Id): Use Byte as return value.
+ 	(Pragma_Id): Change underlying type to Word.
+ 	(Get_Pragma_Id): Use Word as return value.
+ 	* types.h (Word): New typedef.
+ 	* exp_prag.adb (Expand_N_Pragma): Remove useless comment.
+ 	* par-prag.adb (Prag): Adjust to above renaming.
+ 	* sem_prag.adb (Analyze_Pragma): Likewise.
+ 	(Sig_Flags): Likewise.
+ 
+ 2025-09-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch4.adb (Expand_N_Op_Eq): Check for warning about call to
+ 	the abstract equality function of a component type, for both array
+ 	and record enclosing types.
+ 	(Warn_On_Abstract_Equality_For_Component): New procedure to issue
+ 	a warning when an abstract equality function of a component type
+ 	will be called and result in Program_Error.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Make_Call): Mark generated nodes as coming from source.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Incomplete_Type_Decl): Remove incorrect
+ 	comment.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Is_OK_Pragma): Use the
+ 	Suppressed_Ghost_Policy_Check_Pragma list for ignoring certain
+ 	pragmas.
+ 	* sem_prag.ads (Suppressed_Ghost_Policy_Check_Pragma): New variable
+ 	to store the pragmas that could be ignored when checking for
+ 	consitant ghost policy.
+ 
+ 2025-09-09  Tonu Naks  <naks@adacore.com>
+ 	    Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-crtl.ads (read, write): remove import
+ 	* libgnat/s-crtl__mingw.adb: body for windows
+ 	* libgnat/s-crtl.adb: body for all the other targets
+ 	* Makefile.rtl: configure s-crtl.adb/libgnat/s-crtl__mingw.adb
+ 	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Alphabetize.
+ 	(GNATBIND_OBJS): Add ada/libgnat/s-crtl.o.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* contracts.adb: Use the In_Codegen function instead.
+ 	* exp_ch3.adb: Likewise.
+ 	* exp_ch5.adb: Likewise.
+ 	* exp_ch6.adb: Likewise.
+ 	* exp_ch7.adb: Likewise.
+ 	* exp_ch9.adb: Likewise.
+ 	* exp_disp.adb: Likewise.
+ 	* exp_util.adb: Likewise.
+ 	* freeze.adb: Likewise.
+ 	* ghost.adb: Likewise.
+ 	* inline.adb: Likewise.
+ 	* repinfo.adb: Likewise.
+ 	* sem_ch10.adb: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_elab.adb: Likewise.
+ 	* sem_res.adb: Likewise.
+ 	* sem_util.adb (Predicates_Ignored_In_Codegen): Add new function for
+ 	the Predicates_Ignored property.
+ 	(Predicates_Enabled): Use Predicates_Ignored_In_Codegen instead.
+ 	* sem_util.ads (Predicates_Ignored_In_Codegen): New function.
+ 	(Is_Ignored_In_Codegen): Add documentation on how _In_Codegen
+ 	functions should be used.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Copy_And_Swap): Improve comments.
+ 
+ 2025-09-09  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_util.adb (Needs_One_Actual): Add support for untagged record
+ 	types when the sources are compiled with Core Extensions allowed.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Find_Type_Name): Fix comment.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Nonoverridable_Aspects): Remove if statement.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Nonoverridable_Aspects): Improve documentation
+ 	comment.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Completion): Add location info
+ 	to the policy messages.
+ 	(Check_Ghost_Policy): Likwise.
+ 
+ 2025-09-09  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_attr.adb (Rewrite_Attribute_Proc_Call): Add new parameter
+ 	to calls to Create_Extra_Formals.
+ 	(Expand_N_Attribute_Reference): Ditto.
+ 	* exp_ch3.adb (Expand_Freeze_Record_Type): Ditto.
+ 	* exp_ch6.adb (Expand_Call_Helper): Ditto.
+ 	* exp_disp.adb (Expand_Dispatching_Call): Ditto.
+ 	* freeze.adb (Check_Itype): Ditto.
+ 	(Freeze_Expression): Ditto.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Ditto.
+ 	(Create_Extra_Formals): Add new formal, and use it to determine
+ 	if the creation of the extra formals can be deferred. Add the
+ 	new parameter to calls to Create_Extra_Formals.
+ 	(Is_Unsupported_Extra_Actuals_Call): Adjust the code to improve
+ 	its performance when the result is known.
+ 	(Is_Unsupported_Extra_Formals_Entity): Ditto. Add new formal
+ 	* sem_ch6.ads (Create_Extra_Formals): Add new formal.
+ 	(Is_Unsupported_Extra_Formals_Entity): Ditto.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Array_Aggregate): Indicate an out of
+ 	bounds index error also in the case of a missing index.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Definitions): Create a temporary
+ 	pragma for the non-task and access type cases.
+ 
+ 2025-09-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch7.adb (New_Private_Type): Remove useless statements.
+ 
+ 2025-09-09  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* targparm.adb (Get_Target_Parameters): Address type declaration doesn't
+ 	ends anymore with a semicolon.
+ 	* libgnat/a-cdlili.ads: Replace Preelaborable_Initialization.
+ 	* libgnat/a-cidlli.ads: Likewise.
+ 	* libgnat/a-cihama.ads: Likewise.
+ 	* libgnat/a-cihase.ads: Likewise.
+ 	* libgnat/a-cimutr.ads: Likewise.
+ 	* libgnat/a-ciorma.ads: Likewise.
+ 	* libgnat/a-ciormu.ads: Likewise.
+ 	* libgnat/a-ciorse.ads: Likewise.
+ 	* libgnat/a-cohama.ads: Likewise.
+ 	* libgnat/a-cohase.ads: Likewise.
+ 	* libgnat/a-coinho.ads: Likewise.
+ 	* libgnat/a-coinho__shared.ads: Likewise.
+ 	* libgnat/a-coinve.ads: Likewise.
+ 	* libgnat/a-comutr.ads: Likewise.
+ 	* libgnat/a-convec.ads: Likewise.
+ 	* libgnat/a-coorma.ads: Likewise.
+ 	* libgnat/a-coormu.ads: Likewise.
+ 	* libgnat/a-coorse.ads: Likewise.
+ 	* libgnat/a-crdlli.ads: Likewise.
+ 	* libgnat/a-except.ads: Likewise.
+ 	* libgnat/a-finali.ads: Likewise.
+ 	* libgnat/a-ngcoty.ads: Likewise.
+ 	* libgnat/a-strbou.ads: Likewise.
+ 	* libgnat/a-stream.ads: Likewise.
+ 	* libgnat/a-strmap.ads: Likewise.
+ 	* libgnat/a-strunb.ads: Likewise.
+ 	* libgnat/a-strunb__shared.ads: Likewise.
+ 	* libgnat/a-ststio.ads: Likewise.
+ 	* libgnat/a-stwibo.ads: Likewise.
+ 	* libgnat/a-stwima.ads: Likewise.
+ 	* libgnat/a-stwiun.ads: Likewise.
+ 	* libgnat/a-stwiun__shared.ads: Likewise.
+ 	* libgnat/a-stzbou.ads: Likewise.
+ 	* libgnat/a-stzmap.ads: Likewise.
+ 	* libgnat/a-stzunb.ads: Likewise.
+ 	* libgnat/a-stzunb__shared.ads: Likewise.
+ 	* libgnat/a-tags.ads: Likewise.
+ 	* libgnat/i-cstrin.ads: Likewise.
+ 	* libgnat/s-stopoo.ads: Likewise.
+ 	* libgnat/s-stposu.ads: Likewise.
+ 	* libgnat/system-aix.ads: Likewise.
+ 	* libgnat/system-darwin-arm.ads: Likewise.
+ 	* libgnat/system-darwin-ppc.ads: Likewise.
+ 	* libgnat/system-darwin-x86.ads: Likewise.
+ 	* libgnat/system-djgpp.ads: Likewise.
+ 	* libgnat/system-dragonfly-x86_64.ads: Likewise.
+ 	* libgnat/system-freebsd.ads: Likewise.
+ 	* libgnat/system-gnu.ads: Likewise.
+ 	* libgnat/system-hpux-ia64.ads: Likewise.
+ 	* libgnat/system-hpux.ads: Likewise.
+ 	* libgnat/system-linux-alpha.ads: Likewise.
+ 	* libgnat/system-linux-arm.ads: Likewise.
+ 	* libgnat/system-linux-hppa.ads: Likewise.
+ 	* libgnat/system-linux-ia64.ads: Likewise.
+ 	* libgnat/system-linux-loongarch.ads: Likewise.
+ 	* libgnat/system-linux-m68k.ads: Likewise.
+ 	* libgnat/system-linux-mips.ads: Likewise.
+ 	* libgnat/system-linux-ppc.ads: Likewise.
+ 	* libgnat/system-linux-riscv.ads: Likewise.
+ 	* libgnat/system-linux-s390.ads: Likewise.
+ 	* libgnat/system-linux-sh4.ads: Likewise.
+ 	* libgnat/system-linux-sparc.ads: Likewise.
+ 	* libgnat/system-linux-x86.ads: Likewise.
+ 	* libgnat/system-lynxos178-ppc.ads: Likewise.
+ 	* libgnat/system-lynxos178-x86.ads: Likewise.
+ 	* libgnat/system-mingw.ads: Likewise.
+ 	* libgnat/system-qnx-arm.ads: Likewise.
+ 	* libgnat/system-rtems.ads: Likewise.
+ 	* libgnat/system-solaris-sparc.ads: Likewise.
+ 	* libgnat/system-solaris-x86.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
+ 	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-aarch64.ads: Likewise.
+ 	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-arm.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
+ 	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
+ 
+ 2025-09-09  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* s-pack.adb.tmpl: Typo fix in comment.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Set Mark_Ghost_Code individually
+ 	based on the semantics of each pragma.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Mark_Ghost_Declaration_Or_Body): Mark ghost
+ 	entity explicitly as ignored or checked.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Policy): ignore ghost policy changes
+ 	within instantiation statements.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Check_Ghost_Policy): Use the policy in affect for
+ 	the identifier at the current moment instead of the region
+ 	around it when checking a policy change for a procedure call.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Mark_And_Set_Ghost_Declaration): apply the
+ 	ghost policy and level from the declaration only if the declaration
+ 	has an explicit ghost aspect/pragma.
+ 
+ 2025-09-09  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Nonoverridable_Aspect_Subprograms): Add the new
+ 	legality check in Check_Nonoverridable_Aspect_Subprograms for
+ 	nonoverridable aspects to check whether the denoted subprograms satisfy
+ 	MR 13.1.1(18.4/6), otherwise we emit an error. Fix spacing.
+ 	* sem_ch6.adb (New_Overloaded_Entity): Set Is_Primitive flag
+ 	for inherited primitives, and filter out homonym candidates without a
+ 	function specification as parents.
+ 
+ 2025-09-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Refine test for
+ 	protected procedures; fix typo in comment.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Is_OK_Pragma): mark the context of ignored ghost
+ 	pragmas as OK.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* ghost.adb (Assertion_Level_From_Arg): Ensure that assertion level
+ 	is stored as the entity for its reference.
+ 	(Enables_Ghostness): Derive the result from whether or not the
+ 	an argument indicated an assertion level.
+ 	* tbuild.adb (Make_Assertion_Level): ensure that assertion levels
+ 	have a standard scope.
+ 
+ 2025-09-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Make_Bignum_Block): Check restriction No_Secondary_Stack.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_util.adb (Policy_In_Effect): Add special handling
+ 	for Runtime and Static values.
+ 
+ 2025-09-09  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* exp_ch3.adb (Init_Formals): Remove the check on Global_No_Tasking.
+ 	* sem.adb: Fix typo.
+ 
+ 2025-09-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Replace existing
+ 	conditional expression with call to Expr_Value.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): add default
+ 	assertion level to assertion aspects.
+ 	* sem_prag.adb (Analyze_Pragma): Likewise.
+ 
+ 2025-09-09  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_ch6.adb (Check_BIP_Actuals, Process_Node): Disable checks.
+ 
+ 2025-09-09  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Unsigned_Base_Range): New aspect.
+ 	* checks.adb (Determine_Range): Handle types with unsigned base range aspect.
+ 	(Enable_Overflow_Check): ditto
+ 	(Apply_Arithmetic_Overflow_Strict): ditto
+ 	* debug.adb (d_o): Document new usage.
+ 	* einfo.ads (Has_Unsigned_Base_Range_Aspect): New flag.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): No action since
+ 	it has been already handled at this stage.
+ 	* exp_ch4.adb (Expand_N_Op_Add): Generate aritmetic overflow check on
+ 	unsigned base range type operands.
+ 	(Expand_N_Op_Subtract): ditto
+ 	(Expand_N_Op_Multiply): ditto
+ 	(Expand_N_Op_Minus): ditto
+ 	* gen_il-fields.ads (Has_Unsigned_Base_Range_Aspect): New flag.
+ 	* gen_il-gen-gen_entities.adb (Has_Unsigned_Base_Range_Aspect): New flag.
+ 	* gen_il-internals.adb (Has_Unsigned_Base_Range_Aspect): New flag.
+ 	* gnat1drv.adb (Adjust_Global_Switches): Handle -gnatd_o
+ 	* par-prag.adb (Pragma_Unsigned_Base_Range): No action since it will
+ 	be entirely handled by the semantic analyzer.
+ 	* rtsfind.ads (RE_Id): Add RE_Uns_[Add|Subtract|Multiply]_With_ Ovflo_Check
+ 	* sem_attr.ads (Attribute_Unsigned_Base_Range): Added to the set of
+ 	implementation defined attributes.
+ 	* sem_attr.adb (Analyze_Attribute): Analyze attribute Unsigned_Base_Range.
+ 	(Eval_Attribute): Evaluate attribute Unsigned_Base_Range.
+ 	* sem_ch13.adb (Analyze_One_Aspect): Defer checks for this aspect to
+ 	the analysis of the corresponding pragma.
+ 	* sem_ch3.ads (Unsigned_Base_Range_Type_Declaration): New subprogram.
+ 	* sem_ch3.adb (Build_Derived_Numeric_Type): Inherit flag
+ 	Has_Unsigned_Base_Range_Aspect.
+ 	(Unsigned_Base_Range_Type_Declaration): New subprogram.
+ 	(Has_Pragma_Unsigned_Base_Range): New subprogram.
+ 	* sem_prag.adb (Analyze_Pragma): Handle Pragma_Unsigned_Base_Range.
+ 	* snames.adb-tmpl (Get_Pragma_Id): Handle Name_Unsigned_Base_Range.
+ 	(Is_Pragma_Name): ditto.
+ 	* snames.ads-tmpl (Name_Unsigned_Base_Range): New name.
+ 	(Attribute_Unsigned_Base_Range): New attribute.
+ 	(Pragma_Unsigned_Base_Range): New pragma.
+ 	* libgnat/s-aridou.ads (Add_With_Ovflo_Check): New routine for Double_Uns.
+ 	(Subtract_With_Ovflo_Check): ditto.
+ 	(Multiply_With_Ovflo_Check): ditto.
+ 	* libgnat/s-aridou.adb (Add_With_Ovflo_Check): ditto.
+ 	(Subtract_With_Ovflo_Check): ditto.
+ 	(Multiply_With_Ovflo_Check): ditto.
+ 	* libgnat/s-arit64.ads (Uns_Add_With_Ovflo_Check64): New subprogram.
+ 	(Uns_Subtract_With_Ovflo_Check64): ditto.
+ 	(Uns_Multiply_With_Ovflo_Check64): ditto.
+ 	* libgnat/s-arit64.adb (Uns_Add_With_Ovflo_Check64): New subprogram.
+ 	(Uns_Subtract_With_Ovflo_Check64): ditto.
+ 	(Uns_Multiply_With_Ovflo_Check64): ditto.
+ 	* libgnat/s-arit128.ads (Uns_Add_With_Ovflo_Check128): New subprogram.
+ 	(Uns_Subtract_With_Ovflo_Check128): ditto.
+ 	(Uns_Multiply_With_Ovflo_Check128): ditto.
+ 	* libgnat/s-arit128.adb (Uns_Add_With_Ovflo_Check128): New subprogram.
+ 	(Uns_Subtract_With_Ovflo_Check128): ditto.
+ 	(Uns_Multiply_With_Ovflo_Check128): ditto.
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Document unsigned
+ 	base range.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-09-09  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.adb (Mark_New_Ghost_Node): Store the assertion level on the
+ 	entity.
+ 	* contracts.adb (Analyze_Package_Contract): Add support for multiple
+ 	pragma Initial_Condition orginating from multiple assertion levels.
+ 	* cstand.adb (Make_Assertion_Level_Definition): New function that
+ 	creates a new Assertion_Level and adds it to the Assertion_Levels
+ 	table.
+ 	(Create_Standard): Add definitions for assertion levels defined in
+ 	Standard.
+ 	(Print_Standard): Add assertion level pragmas do the output.
+ 	* exp_ch6.adb (Check_Subprogram_Variant): Add support for multiple
+ 	Subprogram_Variant pragmas created by assertion levels.
+ 	* einfo.ads: add info for the new nodes and attributes.
+ 	* exp_prag.adb (Consequence_Error): Fix error message string
+ 	corruption caused by another call to the internal strings during
+ 	the call to Make_Procedure_Call_Statement.
+ 	(Expand_Pragma_Initial_Condition): Ensure all ghost related
+ 	attributes are copied to the new pragma.
+ 	(Expand_Pragma_Loop_Variant): Likewise.
+ 	(Expand_Pragma_Subprogram_Variant). Likewise. Additionally
+ 	create a new Subprogram_Variant function for each pragma associated
+ 	with an assertion level.
+ 	* exp_util.adb (Add_DIC_Check): Ensure all ghost related attributes
+ 	are copied to the new pragma.
+ 	(Build_DIC_Procedure_Body): Add support for mutliple DIC pragmas
+ 	created from assertion levels.
+ 	* gen_il-fields.ads:
+ 	(Aspect_Ghost_Assertion_Level): New field.
+ 	(Original_Aspect): New field.
+ 	(Original_Pragma): New field.
+ 	(Pragma_Ghost_Assertion_Level): New field.
+ 	(Child_Levels): New field.
+ 	(Ghost_Assertion_Level): New field.
+ 	(Parent_Levels): New field.
+ 	* gen_il-gen-gen_entities.adb:
+ 	Add Ghost_Assertion_Level field for all entities
+ 	Add new E_Assertion_Level entity for storing assertion levels.
+ 	* gen_il-gen-gen_nodes.adb:
+ 	Add Aspect_Ghost_Assertion_Level for N_Aspect to store the
+ 	assertion level associated with the aspect.
+ 	Add Original_Aspect to store the original aspect where the aspect
+ 	that was transformed from an aspect with an assertion level
+ 	origninated from.
+ 	Add Pragma_Ghost_Assertion_Level and Original_Pragma to store
+ 	the same information for N_Prama nodes.
+ 	* gen_il-types.ads: Add new entity kind E_Assertion_Level
+ 	* ghost.adb (Assertion_Level_Error_Msg): Create constant for
+ 	error messages using the same main error message.
+ 	(Ghost_Policy_Error_Msg): Likewise.
+ 	(Assertion_Level_To_Name): New subprogram.
+ 	(Check_Valid_Ghost_Declaration): New subprogram.
+ 	(Get_Ghost_Aspect): New subprogram.
+ 	(Get_Ghost_Assertion_Level): New subprogram.
+ 	(Ghost_Policy_In_Effect): New subprogram.
+ 	(Install_Ghost_Region): New subprogram.
+ 	(Mark_And_Set_Ghost_Region): New subprogram.
+ 	(Mark_Ghost_Declaration_Or_Body): Add new argument for assertion
+ 	levels.
+ 	(Check_Ghost_Completion): Update ghost policy calculation with
+ 	assertion levels. Refactor error message.
+ 	(Is_OK_Statement): Add new checks for valid assertion policies and
+ 	assertion levels.
+ 	(Is_OK_Pragma): Refactor the calculation of valid ghost pragmas.
+ 	(Check_Ghost_Policy): Make the checks ghost region based.
+ 	(Check_Ghost_Context): Refactor the order of checks.
+ 	(Check_Ghost_Formal_Procedure_Or_Package): Relax the checks for
+ 	overriding procedures. Now only ignored subprograms cannot be
+ 	overridden by checked or non-ghost subprograms.
+ 	(Check_Ghost_Primitive): Relax conditions for primitve operations.
+ 	Now only checked primitive subprograms are considered invalid for
+ 	ignored tagged types. Add assertion level compatibility checks.
+ 	(Check_Ghost_Refinement): Relax conditions for ghost refinements.
+ 	Add assertion level compatibility checks for refinements.
+ 	(Install_Ghost_Region): Store the current region and the assertion
+ 	for that region in the ghost config.
+ 	(Enables_Ghostness): Refactor implementation to support assertion
+ 	levels.
+ 	(Is_Subject_To_Ghost): Simplify implementation.
+ 	(Mark_And_Set_Ghost_Assignment): Refactor implementation.
+ 	(Mark_And_Set_Ghost_Body): Add support for assertion levels.
+ 	(Mark_And_Set_Ghost_Completion): Likewise.
+ 	(Mark_And_Set_Ghost_Declaration): Likwise.
+ 	(Mark_And_Set_Ghost_Instantiation): Likwise.
+ 	(Mark_And_Set_Ghost_Procedure_Call): Refactor implementation.
+ 	(Mark_Ghost_Declaration_Or_Body): Add support for assertion levels.
+ 	(Set_Ghost_Mode): Likwise.
+ 	* ghost.ads (Assertion_Level_From_Arg): New subprogram.
+ 	(Install_Ghost_Region): Add argument Level for assertrion levels.
+ 	(Is_Assertion_Level_Dependent): New subprogram.
+ 	* lib-xref.ads: Add new mapping for E_Assertion_Level entities.
+ 	* opt.ads (Ghost_Config_Type): Add new members Ghost_Assertion_Mode
+ 	and Current_Region to the structure.
+ 	* par-prag.adb (Prag): Add new pragma name Assertion_Level.
+ 	* rtsfind.adb (Load_RTU): Update the arguments for the call to
+ 	Install_Ghost_Region.
+ 	* sem.adb (Do_Analyze): Likewise.
+ 	* sem_ch13.adb (Convert_Aspect_With_Assertion_Levels): New
+ 	subprogram.
+ 	(Make_Aitem_Pragma): Copy ghost mode attributes from the aspect to
+ 	the pragma.
+ 	(Analyze_Aspect_Specifications): Convert aspects that have an
+ 	assertion level association in the aspects without the association
+ 	and the original supported syntax and with the assertion level
+ 	stored on the aspect node.
+ 	Updated duplicate detection to avoid duplicates being called on
+ 	aspects with assertion levels that orginated from the same aspect.
+ 	* sem_prag.adb (Apply_Check_Policy): New subprogram.
+ 	(Get_Applicable_Policy): New subprogram.
+ 	(Mark_Is_Checked): New subprogram.
+ 	(Mark_Is_Disabled): New subprogram.
+ 	(Mark_Is_Ignored): New subprgram.
+ 	(Check_Arg_Is_One_Of): Remove versions that had a specific number
+ 	of arguments and replace them with a list one.
+ 	(Create_Pragma_Without_Assertion_Level): New subprogram.
+ 	(Assertion_Level_Pragma_Comes_From_Source): New subprogram.
+ 	(Analyze_Pragma): Replace aspects that have an assertion level
+ 	with aspects without them where the level is stored on the pragma
+ 	node.
+ 	(Abstract_State): Add support for assertion levels in ghost
+ 	Abstract_State pragmas.
+ 	(Assert): Update argument handling for Assert like pragmas.
+ 	(Assertion_Level): Add a new section to support the analysis of
+ 	pragma Assertion_Level.
+ 	(Assertion_Policy): Add support for setting the policy for assertion
+ 	levels.
+ 	(Check): Update argument handling. Update the assertion policy
+ 	application process.
+ 	(Check_Policy): Add support for assertion levels. Add check_policy
+ 	pragmas for assertion_level dependencis also to the stack of
+ 	known Check_Policy pragmas.
+ 	(Default_Initial_Condition): Reject the use of DIC with assertion
+ 	levels. Update duplication checks.
+ 	(Ghost): Add support for assertion levels. Fix issue where
+ 	assertion levels with Ghost => False were treated as ghost.
+ 	(Predicate): Update the policy handling of Ghost_Predicate.
+ 	(Analyze_Refined_State_In_Decl_Part): Create a new ghost region
+ 	for analyzing Refined_State.
+ 	(Check_Applicable_Policy): Refactor the implementation. Break it
+ 	down to Get_Applicable_Policy and Apply_Check_Policy.
+ 	(Check_Kind): Removed. Replaced by Get_Applicable_Policy and
+ 	Apply_Check_Policy.
+ 	(Initialize): Initialize the table storing all know assertion
+ 	levels.
+ 	* sem_prag.ads (Find_Assertion_Level): New subprogram.
+ 	(Insert_Assertion_Level): New subprogram.
+ 	(Check_Applicable_Policy): Add new argument Level.
+ 	(Check_Kind): Removed. Merged with Get_Applicable_Policy.
+ 	(Get_Assertion_Level): New subprogram.
+ 	(Is_Valid_Assertion_Level): New subprogram.
+ 	* sem_util.adb (Copy_Assertion_Policy_Attributes): New function
+ 	for copying the ghost related attributes from one pragma to
+ 	another.
+ 	(Copy_Subprogram_Spec): Additionally copy the level from the spec.
+ 	(Depends_On_Level): New function for checking if one level depends
+ 	on another level.
+ 	(From_Same_Aspect): New function for checking whether the aspects
+ 	orignate from the same original aspect.
+ 	(From_Same_Pragma): New function for checking whether the pragmas
+ 	originate from the same original aspect or pragma.
+ 	(Get_Subprogram_Entity): Avoid crash when being called when the
+ 	entity has not been set for the subprogram.
+ 	(Has_Assertion_Level_Argument): New function for checking whether
+ 	the aspect or a pragma has an argument that is using an assertion
+ 	level association.
+ 	(Policy_In_Effect): add an additional argument for the level that
+ 	should be checked along with the assertion name.
+ 	* sem_util.ads (Copy_Assertion_Policy_Attributes): New function.
+ 	(Depends_On_Level): Likewise.
+ 	(From_Same_Aspect): Likewise.
+ 	(From_Same_Pragma): Likewise.
+ 	(Has_Assertion_Level_Argument): Likewise.
+ 	(Is_Same_Or_Depends_On_Level): Likewise.
+ 	(Policy_In_Effect): Add new argument Level.
+ 	* sinfo.ads: Add documentation for all the new attributes that
+ 	were added to the nodes and entities.
+ 	* snames.ads-tmpl: Add new entries for Name_Assertion_Level,
+ 	Name_uDefault_Assertion_Level and Pragma_Assertion_Level.
+ 	* stand.ads: Add new entities for the predefined assertion levels.
+ 	(Standard_Level_Static): Definition for the predefined Static
+ 	level that is always ignored.
+ 	(Standard_Level_Runtime): Defintion for the predefined Runtime
+ 	level that is always checked.
+ 	(Standard_Level_Default): Definition for the implicit Default
+ 	level that is given for ghost entities that were not associated
+ 	with an assertion level (e.g. Ghost => True).
+ 	* tbuild.adb (Make_Assertion_Level): New function for constructin
+ 	an assertion level.
+ 	* tbuild.ads (Make_Assertion_Level): Likewise.
+ 
+ 2025-08-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* contracts.adb: Use Is_Ignored_In_Codegen instead of just
+ 	using Is_Ignored.
+ 	* exp_ch6.adb: Likewise.
+ 	* exp_prag.adb: Likewise.
+ 	* exp_util.adb: Likewise.
+ 	* frontend.adb: Avoid removal of ignored nodes in GNATProve_Mode.
+ 	* gnat1drv.adb: Avoid forcing Assertions_Enabled in GNATProve_Mode.
+ 	* lib-writ.adb (Write_With_File_Names): Avoid early exit
+ 	with ignored entities in GNATProve_Mode.
+ 	* lib-xref.adb: Likewise.
+ 	* opt.adb: Remove check for Assertions_Enabled.
+ 	* sem_attr.adb: Use Is_Ignored_In_Codegen instead of Is_Ignored.
+ 	* sem_ch13.adb: Likewise. Additionally always add predicates in
+ 	GNATProve_Mode.
+ 	* sem_prag.adb: Likewise. Additionally remove modifications
+ 	to applied policies in GNATProve_Mode.
+ 	* sem_util.adb (Is_Ignored_In_Codegen): New function that overrides
+ 	Is_Ignored in GNATProve_Mode and Codepeer_Mode.
+ 	(Is_Ignored_Ghost_Pragma_In_Codegen): Likewise for
+ 	Is_Ignored_Ghost_Pragma.
+ 	(Is_Ignored_Ghost_Entity_In_Codegen): Likewise for
+ 	Is_Ignored_Ghost_Entity.
+ 	(Policy_In_List): Remove overriding of policies in GNATProve_Mode.
+ 	* sem_util.ads: Add specs for new functions.
+ 	* (Predicates_Enabled): Always generate predicates in
+ 	GNATProve_Mode.
+ 
+ 2025-08-04  Bob Duff  <duff@adacore.com>
+ 
+ 	* treepr.adb (Print_Node_Ref): Protect against
+ 	Entity (N) being empty before calling
+ 	Compile_Time_Known_Value.
+ 
+ 2025-08-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Validate_Compile_Time_Warning_Errors):
+ 	Check if the original compile time pragma was replaced and
+ 	validate the original node instead.
+ 
+ 2025-08-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error):
+ 	simplify the implementation.
+ 
+ 2025-08-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): If the
+ 	accessibility level being checked is known statically, then
+ 	statically check it against the level of the function being
+ 	returned from.
+ 
+ 2025-08-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.adb: update references to Ghost_Mode.
+ 	* exp_ch3.adb: use a structure type to store all of the existing
+ 	ghost mode related state variables.
+ 	* exp_disp.adb: Likewise.
+ 	* exp_spark.adb: Likewise.
+ 	* exp_util.adb: Likewise.
+ 	* expander.adb: Likewise.
+ 	* freeze.adb: Likewise and replace references to existing ghost
+ 	mode variables.
+ 	* ghost.adb (Install_Ghost_Region): install the changes of
+ 	the region in to the new Ghost_Config structure.
+ 	(Restore_Ghost_Region): Use the new Ghost_Config instead.
+ 	In general replace all references to the existing ghost mode
+ 	variables with the new structure equivalent.
+ 	* ghost.ads (Restore_Ghost_Region): update the spec.
+ 	* opt.ads (Ghost_Config_Type): A new type that has two of the
+ 	previous ghost code related global variables as memembers -
+ 	Ghost_Mode and Ignored_Ghost_Region.
+ 	(Ghost_Config) New variable to store the previous Ghost_Mode and
+ 	Ignored_Ghost_Region info.
+ 	* rtsfind.adb: Replace references to existing ghost mode variables.
+ 	* sem.adb: Likewise.
+ 	* sem_ch12.adb: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_ch5.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_ch7.adb: Likewise.
+ 	* sem_prag.adb: Likewise.
+ 	* sem_util.adb: Likewise.
+ 
+ 2025-08-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Profile): Do not emit a warning stating that
+ 	a formal parameter's size is 8 if the parameter's size is not 8.
+ 
+ 2025-08-04  Viljar Indus  <indus@adacore.com>
+ 
+ 	* table.adb (Max): Move variable to the body and initialize
+ 	it with the same value as in the Init function.
+ 	* table.ads (Max): Likewise.
+ 
+ 2025-08-04  Bob Duff  <duff@adacore.com>
+ 
+ 	* par.adb: Move and rewrite some comments.
+ 	(Util): Shared code and comments for dealing with
+ 	defining_identifier_lists.
+ 	* par-util.adb (Append): Shared code for appending
+ 	one identifier onto Defining_Identifiers.
+ 	(P_Def_Ids): Shared code for parsing a defining_identifier_list.
+ 	Unfortunately, this is not used in all cases, because some of
+ 	them mix in sophisticated error recovery, which we do not
+ 	modify here.
+ 	* par-ch12.adb (P_Formal_Object_Declarations):
+ 	Use Defining_Identifiers and related code.
+ 	* par-ch3.adb (P_Identifier_Declarations): Likewise.
+ 	(P_Known_Discriminant_Part_Opt): Likewise.
+ 	(P_Component_Items): Likewise.
+ 	* par-ch6.adb (P_Formal_Part): Likewise.
+ 
+ 2025-07-31  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	Revert:
+ 	2025-07-31  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/114065
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-c_time$(objext) and
+ 	s-c_time$(objext).
+ 	(Aarch64/Android): Do not use s-osinte__android.adb.
+ 	(SPARC/Solaris): Do not use s-osprim__solaris.adb.
+ 	(x86/Solaris): Likewise.
+ 	(LynxOS178): Do not use s-parame__posix2008.ads.
+ 	(RTEMS): Likewise.
+ 	(x32/Linux): Likewise, as well as s-linux__x32.ads.  Replace
+ 	s-osprim__x32.adb with s-osprim__posix.adb.
+ 	(LIBGNAT_OBJS): Remove cal.o.
+ 	* cal.c: Delete.
+ 	* doc/gnat_rm/the_gnat_library.rst (GNAT.C_Time): New entry.
+ 	(GNAT.Calendar): Do not mention the obsolete conversion functions.
+ 	* impunit.adb (Non_Imp_File_Names_95): Add g-c_time.
+ 	* libgnarl/a-exetim__posix.adb: Add with clause for System.C_Time
+ 	(Clock): Use type and functions from System.C_Time.
+ 	* libgnarl/s-linux.ads: Remove with clause for System.Parameters.
+ 	Remove declarations of C time types.
+ 	* libgnarl/s-linux__alpha.ads: Likewise.
+ 	* libgnarl/s-linux__android-aarch64.ads: Likewise.
+ 	* libgnarl/s-linux__android-arm.ads: Likewise.
+ 	* libgnarl/s-linux__hppa.ads: Likewise.
+ 	* libgnarl/s-linux__loongarch.ads: Likewise.
+ 	* libgnarl/s-linux__mips.ads: Likewise.
+ 	* libgnarl/s-linux__riscv.ads: Likewise.
+ 	* libgnarl/s-linux__sparc.ads: Likewise.
+ 	* libgnarl/s-osinte__aix.ads: Likewise.
+ 	* libgnarl/s-osinte__android.ads: Likewise.
+ 	* libgnarl/s-osinte__cheribsd.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.ads: 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__solaris.ads: Likewise.
+ 	* libgnarl/s-osinte__vxworks.ads: Likewise.
+ 	* libgnarl/s-qnx.ads: Likewise.
+ 	* libgnarl/s-linux__x32.ads: Delete.
+ 	* libgnarl/s-osinte__darwin.adb (To_Duration): Remove.
+ 	(To_Timespec): Likewise.
+ 	* libgnarl/s-osinte__aix.adb: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.adb: Likewise.
+ 	* libgnarl/s-osinte__freebsd.adb: Likewise.
+ 	* libgnarl/s-osinte__gnu.adb: Likewise.
+ 	* libgnarl/s-osinte__lynxos178.adb: Likewise.
+ 	* libgnarl/s-osinte__posix.adb: Likewise.
+ 	* libgnarl/s-osinte__qnx.adb: Likewise.
+ 	* libgnarl/s-osinte__rtems.adb: Likewise.
+ 	* libgnarl/s-osinte__solaris.adb: Likewise.
+ 	* libgnarl/s-osinte__vxworks.adb: Likewise.
+ 	* libgnarl/s-osinte__x32.adb: Likewise.
+ 	* libgnarl/s-taprop__solaris.adb: Add with clause for System.C_Time.
+ 	(Monotonic_Clock): Use type and functions from System.C_Time.
+ 	(RT_Resolution): Likewise.
+ 	(Timed_Sleep): Likewise.
+ 	(Timed_Delay): Likewise.
+ 	* libgnarl/s-taprop__vxworks.adb: Likewise.
+ 	* libgnarl/s-tpopmo.adb: Likewise.
+ 	* libgnarl/s-osinte__android.adb: Delete.
+ 	* libgnat/g-c_time.ads: New file.
+ 	* libgnat/g-calend.adb: Delegate to System.C_Time.
+ 	* libgnat/g-calend.ads: Likewise.
+ 	* libgnat/g-socket.adb: Likewise.
+ 	* libgnat/g-socthi.adb: Likewise.
+ 	* libgnat/g-socthi__vxworks.adb: Likewise.
+ 	* libgnat/g-sothco.ads: Likewise.
+ 	* libgnat/g-spogwa.adb: Likewise.
+ 	* libgnat/s-c_time.adb: New file.
+ 	* libgnat/s-c_time.ads: Likewise.
+ 	* libgnat/s-optide.adb: Import nanosleep here.
+ 	* libgnat/s-os_lib.ads (time_t): Remove.
+ 	(To_Ada): Adjust.
+ 	(To_C): Likewise.
+ 	* libgnat/s-os_lib.adb: Likewise.
+ 	* libgnat/s-osprim__darwin.adb: Delegate to System.C_Time.
+ 	* libgnat/s-osprim__posix.adb: Likewise.
+ 	* libgnat/s-osprim__posix2008.adb: Likewise.
+ 	* libgnat/s-osprim__rtems.adb: Likewise.
+ 	* libgnat/s-osprim__unix.adb: Likewise.
+ 	* libgnat/s-osprim__solaris.adb: Delete.
+ 	* libgnat/s-osprim__x32.adb: Likewise.
+ 	* libgnat/s-parame.ads (time_t_bits): Remove.
+ 	* libgnat/s-parame__hpux.ads: Likewise.
+ 	* libgnat/s-parame__vxworks.ads: Likewise.
+ 	* libgnat/s-parame__posix2008.ads: Delete.
+ 	* s-oscons-tmplt.c (SIZEOF_tv_nsec): New constant.
+ 
+ 2025-07-31  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/120440
+ 	* gcc-interface/Makefile.in (GNATLINK_OBJS): Add s-excmac.o.
+ 	(GNATMAKE_OBJS): Likewise.
+ 
+ 2025-07-31  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/114065
+ 	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-c_time$(objext) and
+ 	s-c_time$(objext).
+ 	(Aarch64/Android): Do not use s-osinte__android.adb.
+ 	(SPARC/Solaris): Do not use s-osprim__solaris.adb.
+ 	(x86/Solaris): Likewise.
+ 	(LynxOS178): Do not use s-parame__posix2008.ads.
+ 	(RTEMS): Likewise.
+ 	(x32/Linux): Likewise, as well as s-linux__x32.ads.  Replace
+ 	s-osprim__x32.adb with s-osprim__posix.adb.
+ 	(LIBGNAT_OBJS): Remove cal.o.
+ 	* cal.c: Delete.
+ 	* doc/gnat_rm/the_gnat_library.rst (GNAT.C_Time): New entry.
+ 	(GNAT.Calendar): Do not mention the obsolete conversion functions.
+ 	* impunit.adb (Non_Imp_File_Names_95): Add g-c_time.
+ 	* libgnarl/a-exetim__posix.adb: Add with clause for System.C_Time
+ 	(Clock): Use type and functions from System.C_Time.
+ 	* libgnarl/s-linux.ads: Remove with clause for System.Parameters.
+ 	Remove declarations of C time types.
+ 	* libgnarl/s-linux__alpha.ads: Likewise.
+ 	* libgnarl/s-linux__android-aarch64.ads: Likewise.
+ 	* libgnarl/s-linux__android-arm.ads: Likewise.
+ 	* libgnarl/s-linux__hppa.ads: Likewise.
+ 	* libgnarl/s-linux__loongarch.ads: Likewise.
+ 	* libgnarl/s-linux__mips.ads: Likewise.
+ 	* libgnarl/s-linux__riscv.ads: Likewise.
+ 	* libgnarl/s-linux__sparc.ads: Likewise.
+ 	* libgnarl/s-osinte__aix.ads: Likewise.
+ 	* libgnarl/s-osinte__android.ads: Likewise.
+ 	* libgnarl/s-osinte__cheribsd.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.ads: 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__solaris.ads: Likewise.
+ 	* libgnarl/s-osinte__vxworks.ads: Likewise.
+ 	* libgnarl/s-qnx.ads: Likewise.
+ 	* libgnarl/s-linux__x32.ads: Delete.
+ 	* libgnarl/s-osinte__darwin.adb (To_Duration): Remove.
+ 	(To_Timespec): Likewise.
+ 	* libgnarl/s-osinte__aix.adb: Likewise.
+ 	* libgnarl/s-osinte__dragonfly.adb: Likewise.
+ 	* libgnarl/s-osinte__freebsd.adb: Likewise.
+ 	* libgnarl/s-osinte__gnu.adb: Likewise.
+ 	* libgnarl/s-osinte__lynxos178.adb: Likewise.
+ 	* libgnarl/s-osinte__posix.adb: Likewise.
+ 	* libgnarl/s-osinte__qnx.adb: Likewise.
+ 	* libgnarl/s-osinte__rtems.adb: Likewise.
+ 	* libgnarl/s-osinte__solaris.adb: Likewise.
+ 	* libgnarl/s-osinte__vxworks.adb: Likewise.
+ 	* libgnarl/s-osinte__x32.adb: Likewise.
+ 	* libgnarl/s-taprop__solaris.adb: Add with clause for System.C_Time.
+ 	(Monotonic_Clock): Use type and functions from System.C_Time.
+ 	(RT_Resolution): Likewise.
+ 	(Timed_Sleep): Likewise.
+ 	(Timed_Delay): Likewise.
+ 	* libgnarl/s-taprop__vxworks.adb: Likewise.
+ 	* libgnarl/s-tpopmo.adb: Likewise.
+ 	* libgnarl/s-osinte__android.adb: Delete.
+ 	* libgnat/g-c_time.ads: New file.
+ 	* libgnat/g-calend.adb: Delegate to System.C_Time.
+ 	* libgnat/g-calend.ads: Likewise.
+ 	* libgnat/g-socket.adb: Likewise.
+ 	* libgnat/g-socthi.adb: Likewise.
+ 	* libgnat/g-socthi__vxworks.adb: Likewise.
+ 	* libgnat/g-sothco.ads: Likewise.
+ 	* libgnat/g-spogwa.adb: Likewise.
+ 	* libgnat/s-c_time.adb: New file.
+ 	* libgnat/s-c_time.ads: Likewise.
+ 	* libgnat/s-optide.adb: Import nanosleep here.
+ 	* libgnat/s-os_lib.ads (time_t): Remove.
+ 	(To_Ada): Adjust.
+ 	(To_C): Likewise.
+ 	* libgnat/s-os_lib.adb: Likewise.
+ 	* libgnat/s-osprim__darwin.adb: Delegate to System.C_Time.
+ 	* libgnat/s-osprim__posix.adb: Likewise.
+ 	* libgnat/s-osprim__posix2008.adb: Likewise.
+ 	* libgnat/s-osprim__rtems.adb: Likewise.
+ 	* libgnat/s-osprim__unix.adb: Likewise.
+ 	* libgnat/s-osprim__solaris.adb: Delete.
+ 	* libgnat/s-osprim__x32.adb: Likewise.
+ 	* libgnat/s-parame.ads (time_t_bits): Remove.
+ 	* libgnat/s-parame__hpux.ads: Likewise.
+ 	* libgnat/s-parame__vxworks.ads: Likewise.
+ 	* libgnat/s-parame__posix2008.ads: Delete.
+ 	* s-oscons-tmplt.c (SIZEOF_tv_nsec): New constant.
+ 
+ 2025-07-28  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu): Fix typo in comment.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc: Make
+ 	diagnostics::context::m_source_printing private.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/trans.cc: Update for diagnostic_t becoming
+ 	enum class diagnostics::kind.
+ 
+ 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc: Update for diagnostic_context becoming
+ 	diagnostics::context.
+ 
+ 2025-07-25  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (update_pointer_to): Renamed ptr/old_ptr, ref/old_ref.
+ 
+ 2025-07-25  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* s-oscons-tmplt.c (CLOCK_RT_Ada) [__vxworks]: Define to
+ 	CLOCK_REALTIME on VxWorks6.
+ 	* gsocket.h [__vxworks]: Include strings.h if available.
+ 	* sysdep.c [__vxworks]: Likewise.
+ 
+ 2025-07-25  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): Do
+ 	nothing and simply return if either Ada_Version <= Ada_95 or if
+ 	the function being returned from lacks the extra formal parameter
+ 	needed to perform the check (typically because the result is
+ 	tagged).
+ 
+ 2025-07-25  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_ch12.adb (Check_Formal_Package_Instance):
+ 	Do nothing in case of E_Subprogram_Body.
+ 
+ 2025-07-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Discriminants): Update comments
+ 
+ 2025-07-25  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Build_Derived_Record_Type): Set flag appropriately.
+ 
+ 2025-07-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/a-calend.adb (To_Struct_Timespec_64): Deal with negative
+ 	Duration values and truncate the nanoseconds too.
+ 	* libgnat/g-calend.adb (timeval_to_duration): Unsuppress overflow
+ 	checks.
+ 	(duration_to_timeval): Likewise.  Deal with negative Duration values
+ 	as well as integral Duration values.
+ 	* libgnat/g-socket.adb (To_Timeval): Simplify the implementation.
+ 
+ 2025-07-24  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_aggr.adb (Convert_To_Assignments): Add calls to Ensure_Defined
+ 	before generating assignments to components that could be
+ 	associated with a not-yet-defined itype.
+ 
+ 2025-07-24  Steve Baird  <baird@adacore.com>
+ 
+ 	* accessibility.adb (Function_Call_Or_Allocator_Level): Handle the
+ 	case where a function that has an Extra_Accessibility_Of_Result
+ 	parameter returns as its result a call to another such function.
+ 	In that case, the extra parameter should be passed along.
+ 	(Check_Return_Construct_Accessibility): Replace a warning about an
+ 	inevitable failure of a dynamic check with a legality-rule-violation
+ 	error message; adjust the text of the message accordingly.
+ 	* exp_ch6.ads (Apply_Access_Discrims_Accessibility_Check): New
+ 	procedure, following example of the existing
+ 	Apply_CW_Accessibility procedure.
+ 	* exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): body
+ 	for new procedure.
+ 	(Expand_Simple_Function_Return): Add call to new
+ 	Apply_Access_Discrims_Accessibility_Check procedure.
+ 	* exp_ch3.adb (Make_Allocator_For_Return): Add call to new
+ 	Apply_Access_Discrims_Accessibility_Check procedure.
+ 
+ 2025-07-24  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
+ 	clarify parameter description.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-22  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch8.adb (End_Use_Type): Add a test for there not being an earlier
+ 	use_type_clause for the same type as an additional criterion for turning
+ 	off In_Use and Current_Use_Clause.
+ 
+ 2025-07-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Eval_Attribute): Only fold array attributes when prefix
+ 	is static or at least safe to evaluate
+ 
+ 2025-07-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* einfo.ads (Is_Controlled_Active): Fix pasto in comment.
+ 	* sem_util.ads (Propagate_Controlled_Flags): Update comment for
+ 	Destructor aspect.
+ 
+ 2025-07-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Document new extension.
+ 	* snames.ads-tmpl: Add name for new aspect.
+ 	* gen_il-fields.ads (Has_Destructor, Is_Destructor): Add new fields.
+ 	* gen_il-gen-gen_entities.adb (E_Procedure, Type_Kind): Add new fields.
+ 	* einfo.ads (Has_Destructor, Is_Destructor): Document new fields.
+ 	* aspects.ads: Add new aspect.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications,
+ 	Check_Aspect_At_Freeze_Point, Check_Aspect_At_End_Of_Declarations):
+ 	Add semantic analysis for new aspect.
+ 	(Resolve_Finalization_Procedure): New function.
+ 	(Resolve_Finalizable_Argument): Use new function above.
+ 	* sem_util.adb (Propagate_Controlled_Flags): Extend for new field.
+ 	* freeze.adb (Freeze_Entity): Add legality check for new aspect.
+ 	* exp_ch3.adb (Expand_Freeze_Record_Type, Predefined_Primitive_Bodies):
+ 	Use new field.
+ 	* exp_ch7.adb (Build_Finalize_Statements): Add expansion for
+ 	destructors.
+ 	(Make_Final_Call, Build_Record_Deep_Procs): Adapt to new Has_Destructor
+ 	field.
+ 	(Build_Adjust_Statements): Tweak to handle cases of empty lists.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-22  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Before retrieving the original corresponding
+ 	operation we retrieve first the root of the aliased chain.
+ 
+ 2025-07-22  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gen_il-fields.ads (Is_Implicit_Full_View): New field.
+ 	* gen_il-gen-gen_entities.adb (Type_Kind): Use new field.
+ 	* einfo.ads (Is_Implicit_Full_View): Document new field.
+ 	* exp_ch7.adb (Make_Adjust_Call, Make_Init_Call, Make_Final_Call): Use
+ 	new field.
+ 	* exp_util.adb (Finalize_Address): Likewise.
+ 	* sem_ch3.adb (Copy_And_Build): Set new field.
+ 
+ 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (May_Generate_Large_Temp): Delete.
+ 	* exp_util.adb (May_Generate_Large_Temp): Likewise.
+ 	(Safe_Unchecked_Type_Conversion): Do not take stack checking into
+ 	account to compute the result.
+ 
+ 2025-07-22  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sinfo.ads (Is_Expanded_Dispatching_Call): New flag.
+ 	(Tag_Propagated): New flag.
+ 	* exp_ch6.adb (Expand_Call_Helper): Propagate the tag when
+ 	the dispatching call is placed in conditionl expressions or
+ 	case-expressions.
+ 	* sem_ch5.adb (Analyze_Assignment): For assignment of tag-
+ 	indeterminate expression, do not propagate the tag if
+ 	previously done.
+ 	* sem_disp.adb (Is_Tag_Indeterminate): Add missing support
+ 	for conditional expression and case expression.
+ 	* exp_disp.ads (Is_Expanded_Dispatching_Call): Removed. Function
+ 	replaced by a new flag in the nodes.
+ 	* exp_disp.adb (Expand_Dispatching_Call): Set a flag in the
+ 	call node to remember that the call has been expanded.
+ 	(Is_Expanded_Dispatching_Call): Function removed.
+ 	* gen_il-fields.ads (Tag_Propagated): New flag.
+ 	(Is_Expanded_Dispatching_Call): New flag.
+ 	* gen_il-gen-gen_nodes.adb (Tag_Propagated): New flag.
+ 	(Is_Expanded_Dispatching_Call): New flag.
+ 
+ 2025-07-22  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* libgnat/a-cbhama.ads (Empty): Add missing default to Capacity formal.
+ 	* libgnat/a-cbhama.adb (Empty): Add missing default to Capacity formal.
+ 	* exp_aggr.adb (Build_Size_Expr): Test for presence of Capacity
+ 	discriminant as additional criterion for generating the call to
+ 	the Length function. Update comments.
+ 
+ 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Safe_Unchecked_Type_Conversion): Always return True
+ 	if the expression is the prefix of an N_Selected_Component.
+ 
+ 2025-07-22  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Check whether No_Task_Parts is enabled in any
+ 	of the derived types, or interfaces, from the user-defined primitive return type.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Add No_Task_Parts and No_Controlled_Parts to
+ 	the representation chain to be visible in the full view of private types.
+ 	* aspects.ads (Nonoverridable_Aspect_Id): As per GNAT RM, No_Task_Parts is nonoverridable.
+ 	* sem_util.adb (Check_Inherited_Nonoverridable_Aspects): Likewise.
+ 	* sem_util.ads: Fix typo and style.
+ 	* sem_disp.adb: Missing comment.
+ 
+ 2025-07-22  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* einfo.ads (Extra_Formals): Complete documentation.
+ 	(Has_First_Controlling_Parameter_Aspect): Place it in alphabetical order.
+ 	(Has_Frozen_Extra_Formals): New attribute.
+ 	* gen_il-fields.ads (Has_Frozen_Extra_Formals): New entity field.
+ 	* gen_il-gen-gen_entities.adb (Has_Frozen_Extra_Formals): Adding new
+ 	entity flag to subprograms, subprogram types, and and entries.
+ 	* gen_il-internals.adb (Image): Adding Has_Frozen_Extra_Formals.
+ 	* exp_ch3.adb (Build_Array_Init_Proc): Freeze its extra formals.
+ 	(Build_Init_Procedure): Freeze its extra formals.
+ 	(Expand_Freeze_Record_Type): For tagged types with foreign convention
+ 	create the extra formals of primitives with convention Ada.
+ 	* exp_ch6.ads (Create_Extra_Actuals): New subprogram.
+ 	* exp_ch6.adb (Check_BIP_Actuals): Adding assertions.
+ 	(Create_Extra_Actuals): New subprogram that factorizes code from
+ 	Expand_Call_Helper.
+ 	(Expand_Call_Helper): Adding support to defer the addition of extra
+ 	actuals. Move the code that adds the extra actuals to a new subprogram.
+ 	(Is_Unchecked_Union_Equality): Renamed as Is_Unchecked_Union_Predefined_
+ 	Equality_Call.
+ 	* exp_ch7.adb (Create_Finalizer): Freeze its extra formals.
+ 	(Wrap_Transient_Expression): Link the temporary with its relocated
+ 	expression to facilitate locating the expression in the expanded code.
+ 	* exp_ch9.ads (Expand_N_Entry_Declaration): Adding one formal.
+ 	* exp_ch9.adb (Expand_N_Entry_Declaration): Defer the expansion of
+ 	the entry if the extra formals are not available; analyze the built
+ 	declarations for the record type that holds all the parameters if
+ 	the expansion of the entry declaration was deferred.
+ 	* exp_disp.adb (Expand_Dispatching_Call): Handle deferred extra formals.
+ 	(Set_CPP_Constructors): Freeze its extra formals.
+ 	* freeze.adb (Freeze_Entity): Create the extra actuals of acccess to
+ 	subprograms whose designated type is a subprogram type.
+ 	(Freeze_Subprogram): Adjust assertion to support deferred extra formals,
+ 	and freeze extra formals of non-dispatching subprograms with foreign
+ 	convention. Added assertion to check matching of formals in thunks.
+ 	* sem_aux.adb (Get_Called_Entity): Adding documentation.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): Create the extra formals
+ 	of deferred subprograms, subprogram types and entries; create also the
+ 	extra actuals of deferred calls.
+ 	* sem_ch6.ads (Freeze_Extra_Formals): New subprogram.
+ 	(Deferred_Extra_Formals_Support): New package.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Create the extra formals
+ 	of subprograms without separate spec.
+ 	(Add_Extra_Formal): Add documentation.
+ 	(Has_Extra_Formals): Removed.
+ 	(Parent_Subprogram): Adding documentation.
+ 	(Create_Extra_Formals): Defer adding extra formals if the underlying_type
+ 	of some formal type or return type is not available.
+ 	(Extra_Formals_Match_OK): Add missing check on the extra formals of
+ 	unchecked unions.
+ 	(Freeze_Extra_Formals): New subprogram.
+ 	(Deferred_Extra_Formals_Support): New package.
+ 	* sem_ch9.adb (Analyze_Entry_Declaration): Freeze its extra formals.
+ 	* sem_ch13.adb (New_Put_Image_Subprogram): ditto.
+ 	* sem_util.ads (Is_Unchecked_Union_Equality): New subprogram.
+ 	* sem_util.adb (Is_Unchecked_Union_Equality): ditto.
+ 
+ 2025-07-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Get_Actual_Subtype): Do the same for GCC and GNATprove
+ 	backends.
+ 
+ 2025-07-22  Martin Clochard  <clochard@adacore.com>
+ 
+ 	* exp_spark.adb (Expand_SPARK): Add expansion of continue statements.
+ 	(Expand_SPARK_N_Continue_Statement): Expand continue statements resolved
+ 	as procedure calls into said procedure calls.
+ 
+ 2025-07-22  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Call): Look at the base type of actual parameter
+ 	when checking call to Set_Handler.
+ 
+ 2025-07-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_util.adb (Get_Actual_Subtype): Only create a new subtype when
+ 	the expander is active.  Remove a useless test of type inequality,
+ 	as well as a useless call to Set_Has_Delayed_Freeze on the subtype.
+ 
+ 2025-07-22  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Size_Expr): Change test of "not Present (...)"
+ 	to "No (...)".
+ 
+ 2025-07-22  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Size_Expr): Determine the length of a container
+ 	aggregate association in the case where it's an iteration over an
+ 	object of a container type coming from an instantiation of a predefined
+ 	container generic. Minor updates to existing comments.
+ 
+ 2025-07-22  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* exp_util.adb (Finalize_Address): Prevent infinite loop
+ 
+ 2025-07-22  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_aux.ads: Declare new function Unique_Component_Name.
+ 	* sem_aux.adb: Implement new function Unique_Component_Name.
+ 
+ 2025-07-22  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations):
+ 	Ensure the Expression_Copy always has a parent before
+ 	calling any analyze.
+ 
+ 2025-07-22  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Record_Aggr_Code.Gen_Assign): In the case of
+ 	an aggregate component where the component type is mutably tagged
+ 	and the component value is provided by a qualified aggregate (and
+ 	qualified with a specific type), avoid incorrectly rejecting the
+ 	inner aggregate for violating the rule that the type of an
+ 	aggregate shall not be class-wide.
+ 	* exp_attr.adb: For a predefined streaming operation (i.e., Read,
+ 	Write, Input, or Output) of a class-wide type, the external name
+ 	of the tag of the value is normally written out by Output and read
+ 	in by Input. In the case of a mutably tagged type, this is instead
+ 	done in Write and Read.
+ 	* exp_ch4.adb (Expand_Composite_Equality): In the case of an
+ 	equality comparison for a type having a mutably tagged component,
+ 	we want the component comparison to compare two values of the
+ 	mutably tagged type, not two values of the corresponding
+ 	array-of-bytes-ish representation type. Even if there are no
+ 	user-defined equality functions anywhere in sight, comparing the
+ 	array values still doesn't work because undefined bits may end up
+ 	participating in the comparison (resulting in an incorrect result
+ 	of False).
+ 	* exp_put_image.adb: In the case of a class-wide type, the
+ 	predefined Image attribute includes the name of the specific type
+ 	(and a "'" character, to follow qualified expression syntax) to
+ 	indicate the tag of the value. With the introduction of mutably
+ 	tagged types, this case can now arise in the case of a component
+ 	(of either an enclosing array or an enclosing record), not just
+ 	for a top-level object. So we factor the code to do this into a
+ 	new procedure, Put_Specific_Type_Name_Qualifier, so that it can be
+ 	called from more than one place. This reorganization also involves
+ 	replacing the procedure Put_String_Exp with a new procedure,
+ 	Put_String_Exp_To_Buffer, declared in a less nested scope. For
+ 	mutably tagged components (at the source level) the component type
+ 	(at the GNAT tree level) is an array of bytes (actually a two
+ 	field record containing an array of bytes, but that's a detail).
+ 	Appropriate conversions need to be generated so that we don't end
+ 	up generating an image for an array of bytes; this is done at the
+ 	same places where Put_Specific_Type_Name_Qualifier is called
+ 	(for components) by calling Make_Mutably_Tagged_Conversion.
+ 	* exp_strm.adb (Make_Field_Attribute): Add
+ 	Make_Mutably_Tagged_Conversion call where we construct a
+ 	Selected_Component node and the corresponding component type is
+ 	the internal representation type for a mutably tagged type.
+ 	(Stream_Base_Type): Return the mutably
+ 	tagged type if given the corresponding internal representation type.
+ 	* sem_ch3.adb (Array_Type_Declaration): In the case where the
+ 	source-level component type of an array type is mutably tagged,
+ 	set the Component_Type field of the base type of the declared
+ 	array type (as opposed to that of the first subtype of the array
+ 	type) to the corresponding internal representation type.
+ 	* sem_ch4.adb (Analyze_Selected_Component): In the case of a
+ 	selected component name which references a component whose type is
+ 	the internal representation type of a mutably tagged type,
+ 	generate a conversion to the mutably tagged type.
+ 
+ 2025-07-21  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+ 
+ 	PR ada/121184
+ 	* styleg.adb (Check_Comment): Use consistent warning message.
+ 
+ 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu): Pass null pointer to
+ 	parse_{input,output}_constraint().
+ 
+ 2025-07-18  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch12.adb (Validate_Derived_Type_Instance): Cope with the case
+ 	where the ancestor type for a formal derived type is declared in
+ 	an earlier formal package but Get_Instance_Of does not return the
+ 	corresponding type from the corresponding actual package.
+ 
+ 2025-07-18  Bob Duff  <duff@adacore.com>
+ 
+ 	* tbuild.adb (Unchecked_Convert_To): Back out
+ 	change.
+ 
+ 2025-07-18  Marc Poulhiès  <poulhies@adacore.com>
+ 	    Eric Botcazou  <botcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Convert): Do not call Expand_Inlined_Call for
+ 	unsupported cases.
+ 	* inline.adb (Expand_Inlined_Call): Add assert to catch unsupported
+ 	case.
+ 
+ 2025-07-18  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* einfo.ads: Document new field Overridden_Inherited_Operation and
+ 	list it as a field for the entity kinds that it applies to.
+ 	* gen_il-fields.ads (type Opt_Field_Enum): Add new literal
+ 	Overridden_Inherited_Operation to the type.
+ 	* gen_il-gen-gen_entities.adb: Add Overridden_Inherited_Operation as
+ 	a field of entities of kinds E_Enumeration_Literal and Subprogram_Kind.
+ 	* sem_ch4.adb (Is_Callable_Private_Overriding): Change name (was
+ 	Is_Private_Overriding). Replace Is_Hidden test on Overridden_Operation
+ 	with test of Is_Hidden on the new field Overridden_Inherited_Operation.
+ 	* sem_ch6.adb (New_Overloaded_Entity): Set the new field
+ 	Overridden_Inherited_Operation on an operation derived from
+ 	an interface to refer to the inherited operation of a private
+ 	extension that's overridden by the derived operation. Also set
+ 	that field in the more common cases of an explicit subprogram
+ 	that overrides, to refer to the inherited subprogram that is
+ 	overridden. (Contrary to its name, the Overridden_Operation
+ 	field of the overriding subprogram, which is also set in these
+ 	places, refers to the *parent* subprogram from which the inherited
+ 	subprogram is derived.) Also, remove a redundant Present (Alias (S))
+ 	test in an if_statement and the dead "else" part of that statement.
+ 
+ 2025-07-18  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Build_Elaboration_Entity): Set ghost mode to none
+ 	before creating the elaboration entity; restore the ghost mode
+ 	afterwards.
+ 
+ 2025-07-18  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_aggr.adb (Gen_Assign): Code cleanup.
+ 	(Initialize_Component): Do not adjust the tag when the type of
+ 	the aggregate components is a mutably tagged type.
+ 
+ 2025-07-14  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/121056
+ 	* sem_ch4.adb (Try_Object_Operation.Try_Primitive_Operation): Add
+ 	test on Is_Record_Type before accessing Underlying_Record_View.
+ 
+ 2025-07-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* par-load.adb: Comment spelling fix: bellow -> below.
+ 	* libgnarl/s-taskin.ads: Likewise.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in (ACATSDIR): Change to acats-4.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (make_packable_type): Clear the TYPE_PACKED
+ 	flag in the case where the alignment is bumped.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): Do not generate
+ 	a block-copy out for a null initialization procedure when the _Init
+ 	parameter is not passed in.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Only apply the
+ 	transformation to integer types.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Add guards.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): In the case of a
+ 	subprogram using the Copy-In/Copy-Out mechanism, deal specially with
+ 	the case of 2 parameters of differing sizes.
+ 	* gcc-interface/trans.cc (Subprogram_Body_to_gnu): In the case of a
+ 	subprogram using the Copy-In/Copy-Out mechanism, make sure the types
+ 	are consistent on the two sides for all the parameters.
+ 
+ 2025-07-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Type_Conversion): Replace code for
+ 	detecting a similar case with a more comprehensive test.
+ 
+ 2025-07-04  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Short_Circuit_And_Or): Add more documentation.
+ 	* sem_ch8.adb (Analyze_Subprogram_Renaming):
+ 	Disallow renamings.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-04  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Final_Call): Tweak search of Finalize primitive.
+ 	* exp_util.adb (Finalize_Address): Likewise.
+ 
+ 2025-07-04  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Check_Compile_Time_Size): Try harder to see whether
+ 	the bounds of array types are known at compile time.
+ 
+ 2025-07-04  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_aux.ads (First_Discriminant): Remove space before period.
+ 
+ 2025-07-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Record_Representation_Clause): In deciding
+ 	whether to generate a warning about a missing component clause, in
+ 	addition to calling Is_Unchecked_Union also call a new local
+ 	function, Unchecked_Union_Pragma_Pending, which checks for the
+ 	case of a not-yet-analyzed Unchecked_Union pragma occurring later
+ 	in the declaration list.
+ 
+ 2025-07-04  Steve Baird  <baird@adacore.com>
+ 
+ 	* mutably_tagged.adb (Make_CW_Size_Compile_Check): Include the
+ 	value of the Size'Class limit in the message generated via a
+ 	Compile_Time_Error pragma.
+ 
+ 2025-07-04  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch13.adb (Check_Aspect_At_Freeze_Point): Remove obsolete bits.
+ 
+ 2025-07-04  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Fix error emission.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Makefile.in (gnatlib-sjlj): Delete.
+ 	(gnatlib-zcx): Do not modify Frontend_Exceptions constant.
+ 	* libgnat/system-linux-loongarch.ads (Frontend_Exceptions): Delete.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (type_contains_only_integral_data): Do not
+ 	return false only because the type contains pointer data.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use default messages
+ 	for errors reported for Object_Size clauses.
+ 	(validate_size): Give an error for stand-alone objects of composite
+ 	types if the specified size is not a multiple of the alignment.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (addressable_p): Add COMPG third parameter.
+ 	<COMPONENT_REF>: Do not return true out of alignment considerations
+ 	for non-strict-alignment targets if COMPG is set.
+ 	(Call_to_gnu): Pass true as COMPG in the call to the addressable_p
+ 	predicate if the called subprogram is an initialization procedure.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.cc (gnat_to_gnu) <N_Allocator>: Allocate the
+ 	bounds alongside the data if the Is_Constr_Array_Subt_With_Bounds
+ 	flag is set on the designated type.
+ 	<N_Free_Statement>: Take into account the allocated bounds if the
+ 	Is_Constr_Array_Subt_With_Bounds flag is set on the designated type.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_component_type): Validate the
+ 	Component_Size like the size of a type only if the component type
+ 	is actually packed.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_elab.adb (Check_Overriding_Primitive): Find early call region
+ 	of the subprogram body declaration, not of the subprogram body stub.
+ 
+ 2025-07-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* gen_il-gen-gen_nodes.adb (N_Unchecked_Type_Conversion):
+ 	Remove useless Nmake_Assert.
+ 	* tbuild.adb (Unchecked_Convert_To):
+ 	Narrow the bitfield-related conditions.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_util.adb (Insert_Actions): Fix check.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Precisify comment.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
+ 	declarations of return objects.
+ 
+ 2025-07-03  Daniel King  <dmking@adacore.com>
+ 
+ 	* Makefile.rtl (LIBGNAT_TARGET_PAIRS): New unit s-tsgsba__cheri.adb for morello-freebsd.
+ 	* libgnarl/s-tassta.adb (Get_Stack_Base): New function.
+ 	* libgnarl/s-tsgsba__cheri.adb: New file for CHERI targets.
+ 	* libgnarl/s-tsgsba.adb: New default file for non-CHERI targets.
+ 	* libgnat/s-stausa.adb (Fill_Stack, Compute_Result): Port to CHERI.
+ 	* libgnat/s-stausa.ads (Initialize_Analyzer, Stack_Analyzer): Port to CHERI.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Return_Subtype_Indication): Use Original_Node.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Return_Subtype_Indication): Use type from
+ 	explicit subtype indication, when possible.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Return_Subtype_Indication): Adjust error message
+ 	to match the RM wording.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Check_Return_Subtype_Indication): Use the nominal
+ 	subtype of a return object; literally implement the RM rule about
+ 	elementary types; check for static subtype compatibility both when
+ 	the subtype is given as a subtype mark and a subtype indication.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.adb (First_Comp_Or_Discr.Is_Placed_Before): Return True
+ 	only if the components are in the same component list.
+ 
+ 2025-07-03  Denis Mazzucato  <mazzucato@adacore.com>
+ 
+ 	* sem_disp.adb (Check_Dispatching_call): Fix uninitialized Subp_Entity.
+ 	* sem_util.adb (Update_Controlling_Argument): No need to replace controlling argument
+ 	in case of functions.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* errid.ads: Adjust header to renaming and fix copyright line.
+ 	* errid.adb: Adjust header to renaming and add blank line.
+ 	* erroutc-pretty_emitter.ads: Adjust header to renaming.
+ 	* erroutc-pretty_emitter.adb: Likewise.
+ 	* erroutc-sarif_emitter.ads: Likewise.
+ 	* erroutc-sarif_emitter.adb: Likewise.
+ 	* errsw.ads: Adjust header to renaming and add blank line.
+ 	* errsw.adb: Likewise.
+ 	* json_utils.ads: Likewise.
+ 	* json_utils.adb: Adjust header to renaming.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errid.ads (Diagnostic_Entries): Now a constant.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* errid.ads (Diagnostic_Entries): Remove nested aggregate.
+ 	* errsw.adb (Switches): Likewise.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch7.adb (Make_Deep_Record_Body): Fix case of absent Initialize
+ 	primitive.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Refine subtypes of
+ 	parameters; same for callsites.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_imgv.adb (Expand_Value_Attribute): Do not call Set_Etype on N
+ 	after rewriting it by means of OK_Convert_To.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_aggr.adb (Generate_Finalization_Actions): Stop assuming that
+ 	initialize primitive exists.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch7.adb (Build_Record_Deep_Procs): Fix typo in comment.
+ 
+ 2025-07-03  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch12.adb (Install_Spec): Remove "not Is_Generic_Instance (Par)"
+ 	in test for setting Instance_Parent_Unit. Revise comment to no longer
+ 	say "noninstance", plus remove "???".
+ 	(Remove_Parent): Restructure if_statement to allow for both "elsif"
+ 	parts to be executed (by changing them to be separate if_statements
+ 	within an "else" part).
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch3.adb (Predefined_Primitive_Bodies): Fix comment.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_tss.adb (TSS): Refactor IF condition to make code smaller.
+ 	* lib.adb (Increment_Serial_Number, Synchronize_Serial_Number):
+ 	Use type of renamed object when creating renaming.
+ 	* lib.ads (Unit_Record): Refine subtype of dependency number.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuef.adb: Document the prerequisites more precisely.
+ 	* libgnat/a-tifiio.adb (OK_Get_32): Adjust to the prerequisites.
+ 	(OK_Get_64): Likewise.
+ 	* libgnat/a-tifiio__128.adb (OK_Get_32): Likewise.
+ 	(OK_Get_64): Likewise.
+ 	(OK_Get_128): Likewise.
+ 	* libgnat/a-wtfiio.adb (OK_Get_32): Likewise.
+ 	(OK_Get_64): Likewise.
+ 	* libgnat/a-wtfiio__128.adb (OK_Get_32): Likewise.
+ 	(OK_Get_64): Likewise.
+ 	(OK_Get_128): Likewise.
+ 	* libgnat/a-ztfiio.adb (OK_Get_32): Likewise.
+ 	(OK_Get_64): Likewise.
+ 	* libgnat/a-ztfiio__128.adb (OK_Get_32): Likewise.
+ 	(OK_Get_64): Likewise.
+ 	(OK_Get_128): Likewise.
+ 	* exp_imgv.adb (Expand_Value_Attribute): Adjust the conditions under
+ 	which the RE_Value_Fixed{32,64,128} routines are called for ordinary
+ 	fixed-point types.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch3.adb (Make_Predefined_Primitive_Specs): Fix comment.
+ 
+ 2025-07-03  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch7.adb (Insert_Actions_In_Scope_Around): Fix condition.
+ 
+ 2025-07-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* checks.adb: Remove unnecessary "return;" statements.
+ 	* eval_fat.adb: Likewise.
+ 	* exp_aggr.adb: Likewise.
+ 	* exp_attr.adb: Likewise.
+ 	* exp_ch3.adb: Likewise.
+ 	* exp_ch4.adb: Likewise.
+ 	* exp_ch5.adb: Likewise.
+ 	* exp_ch6.adb: Likewise.
+ 	* exp_unst.adb: Likewise.
+ 	* krunch.adb: Likewise.
+ 	* layout.adb: Likewise.
+ 	* libgnat/s-excdeb.adb: Likewise.
+ 	* libgnat/s-trasym__dwarf.adb: Likewise.
+ 	* par-endh.adb: Likewise.
+ 	* par-tchk.adb: Likewise.
+ 	* sem.adb: Likewise.
+ 	* sem_attr.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_elim.adb: Likewise.
+ 	* sem_eval.adb: Likewise.
+ 	* sfn_scan.adb: Likewise.
+ 
+ 2025-07-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst:
+ 	Change Ignore to Disable.
+ 	* sem_ch13.ads (Analyze_Aspect_Specifications):
+ 	Minor: Remove incorrect comment; there is no need to check
+ 	Has_Aspects (N) at the call site.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-07-03  Bob Duff  <duff@adacore.com>
+ 
+ 	* types.ads (Empty_Or_Error): Remove.
+ 	* atree.adb: Remove reference to Empty_Or_Error.
+ 	* par-endh.adb: Likewise.
+ 	* sem_ch12.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_util.adb: Likewise.
+ 	* treepr.adb: Likewise.
+ 
+ 2025-07-03  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch10.adb(Analyze_With_Clause): Call Semantics instead
+ 	of Analyze to bring Current_Sem_Unit up to date.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* lib-xref-spark_specific.adb
+ 	(Enclosing_Subprogram_Or_Library_Package): Traverse subunits and body
+ 	stubs.
+ 
+ 2025-07-03  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/i-cstrin.ads (Value): add documentation
+ 
+ 2025-07-03  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/a-strsup.adb (Super_Delete): Fix index check.
+ 	* libgnat/a-stwisu.adb (Super_Delete): Likewise.
+ 	* libgnat/a-stzsup.adb (Super_Delete): Likewise.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Handle_Changed_Representation): Alphabetize local
+ 	variables.  Set the No_Finalize_Actions flag on the assignment.
+ 
+ 2025-07-03  Joffrey Huguet  <huguet@adacore.com>
+ 
+ 	* aspects.ads: Define an identifier for Potentially_Invalid.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst: Add section for Potentially_Invalid.
+ 	* sem_attr.adb (Analyze_Attribute_Old_Result): Attribute Old is allowed to occur in a
+ 	Potentially_Invalid aspect.
+ 	* sem_ch13.adb (Analyze_Aspect_Specifications): Handle Potentially_Invalid.
+ 	* sem_util.adb (Has_Potentially_Invalid): Returns True iff an entity is subject to the
+ 	Potentially_Invalid aspect.
+ 	* sem_util.ads (Has_Potentially_Invalid): Idem.
+ 	* snames.ads-tmpl: New name for Potentially_Invalid.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-03  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch10.adb (Analyze_Compilation_Unit): Ignored ghost unit need no
+ 	elaboration checks.
+ 
+ 2025-07-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valued.adb (Integer_to_Decimal): Use truncation for the
+ 	scaled divide operation performed for bases other than 10.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/120705
+ 	* exp_ch6.adb (Needs_BIP_Collection): Always return False if the
+ 	type has relaxed finalization.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuef.adb (Integer_to_Fixed): Restore rounding of the
+ 	first scaled divide operation.
+ 
+ 2025-07-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gnat1drv.adb (Gnat1drv): Do minimal decoration of the spec and body
+ 	of an ignored ghost compilation unit.
+ 
+ 2025-07-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* ali.ads (Unit_Record): Fix grammar in comment.
+ 	* bindgen.adb (Num_Elab_Calls, Num_Primary_Stacks): Remove counters
+ 	that were only incremented and never actually used.
+ 
+ 2025-07-01  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Decimal_Digits,
+ 	Scan_Integral_Digits): fix condition for rejecting
+ 	underscore.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valued.adb (Integer_To_Decimal): Deal specifically with
+ 	Val = 2**(Int'Size - 1) if Minus is not set.  Exit the loops when V
+ 	saturates to 0 in the case of (huge) negative exponents.  Use Base
+ 	instead of B consistently in unsigned computations.
+ 	* libgnat/s-valuef.adb (Integer_To_Fixed): Use Base instead of B
+ 	consistently in unsigned computations.
+ 
+ 2025-07-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_ch4.adb (Fixup_Universal_Fixed_Operation): Move to spec.
+ 	* exp_ch4.ads (Fixup_Universal_Fixed_Operation): Move from body.
+ 	* exp_spark.adb (Expand_SPARK): Call a fixup expansion routine.
+ 
+ 2025-07-01  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Test not Has_Relaxed_Finalization
+ 	as a guard against retrieving BIP_Collection formal (and related code).
+ 
+ 2025-07-01  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch3.adb (Build_Untagged_Record_Equality): Report the
+ 	warning when no component of an untagged record type U is a
+ 	record type, and the type C of some of its components has
+ 	defined its user-defined equality operator "=".
+ 	* exp_ch4.adb (Expand_Composite_Equality): Report the warning
+ 	calling Warn_On_Ignored_Equality_Operator.
+ 	* sem_warn.ads (Warn_On_Ignored_Equality_Operator): New subprogram.
+ 	* sem_warn.adb (Warn_On_Ignored_Equality_Operator): Factorize code
+ 	reporting the warning.
+ 
+ 2025-07-01  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/a-ngelfu.adb: conditional computation of X^2
+ 
+ 2025-07-01  Steve Baird  <baird@adacore.com>
+ 
+ 	* Makefile.rtl: Add entry for new unit's object file.
+ 	* libgnat/s-casuti.adb: Remove bodies of subprograms that were moved
+ 	to the new unit.
+ 	* libgnat/s-casuti.ads: Replace (with renamings) declarations for
+ 	subprograms that moved to the new unit.
+ 	* libgnat/s-cautns.adb: Body for new unit (a new source file).
+ 	* libgnat/s-cautns.ads: Spec for new unit (a new source file).
+ 	* libgnat/s-valuti.adb: Use the new unit instead of the old one.
+ 	* gcc-interface/Make-lang.in: Add entries for new unit's object file.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 
+ 2025-07-01  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Corresponding_Record): Inherit Class_Wide_Type on the
+ 	created constrained subtype.
+ 
+ 2025-07-01  Artur Pietrek  <pietrek@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: add
+ 	GNAT LLVM explicit selection in GPR file
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Shift_Address_For_Descriptor): Add dummy variable
+ 	to make sure that System_Storage_Elements is loaded.
+ 
+ 2025-07-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Document new extension.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Add new fields.
+ 	* gen_il-types.ads (N_Loop_Flow_Statement, N_Continue_Statement): New
+ 	node kinds.
+ 	* gen_il-gen-gen_nodes.adb (N_Loop_Flow_Statement): New abstract node
+ 	kind.
+ 	(N_Continue_Statement): New node kind.
+ 	(N_Exit_Statement): Reparent below N_Loop_Flow_Statement.
+ 	* sinfo.ads (N_Continue_Statement): Add description.
+ 	* sinfo-utils.ads (Loop_Flow_Keyword): New function.
+ 	* sinfo-utils.adb (Loop_Flow_Keyword): New function.
+ 	* gen_il-gen-gen_entities.adb (E_Loop): Add new field.
+ 	* einfo.ads (Continue_Mark): Document new field.
+ 	* sprint.adb (Sprint_Node_Actual): Update for new node kind.
+ 	* snames.ads-tmpl: Add new keyword.
+ 	* par-ch5.adb (P_Continue_Statement, Parse_Loop_Flow_Statement): New
+ 	functions.
+ 	(P_Sequence_Of_Statements): Handle continue statements.
+ 	(P_Exit_Statement): Use Parse_Loop_Flow_Statement.
+ 	* sem.adb (Analyze): Handle new node kind.
+ 	* sem_ch5.adb (Analyze_Loop_Flow_Statement): New function.
+ 	(Analyze_Continue_Statement): New procedure.
+ 	(Analyze_Exit_Statement): Use new Analyze_Loop_Flow_Statement function.
+ 	* sem_ch5.ads (Analyze_Continue_Statement): New procedure.
+ 	* expander.adb (Expand): Handle new node kind.
+ 	* exp_ch5.ads (Expand_N_Continue_Statement): New procedure.
+ 	* exp_ch5.adb (Expand_Loop_Flow_Statement): New procedure.
+ 	(Expand_N_Continue_Statement): New procedure.
+ 	(Expand_N_Exit_Statement): Use new Expand_Loop_Flow_Statement
+ 	procedure.
+ 	(Build_Formal_Container_Iteration): Always reuse original loop entity.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-01  Bob Duff  <duff@adacore.com>
+ 
+ 	* repinfo.adb (List_Entities):
+ 	Disable output in case of object renamings.
+ 
+ 2025-07-01  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/s-valuen.ads: Correct comment.
+ 
+ 2025-07-01  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* init.c: Include string.h.
+ 
+ 2025-07-01  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm.rst: remove ref to 2012 chapter
+ 	* doc/gnat_rm/about_this_guide.rst: remove ref to 2012 chapter
+ 	* doc/gnat_rm/compatibility_and_porting_guide.rst: update list of
+ 	supported versions
+ 	* doc/gnat_rm/implementation_of_ada_2012_features.rst: delete
+ 	* doc/gnat_rm/specialized_needs_annexes.rst: update list of
+ 	supported versions
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-01  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_advice.rst: remove GLADE
+ 	* doc/gnat_rm/implementation_defined_characteristics.rst: remove GLADE
+ 	* doc/gnat_rm/specialized_needs_annexes.rst: remove GLADE
+ 	* doc/gnat_rm/the_gnat_library.rst: remove GLADE
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-07-01  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* adaint.c [__vxworks] (alloca): Redirect to builtin.
+ 
+ 2025-07-01  Ghjuvan Lacambre  <lacambre@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Record_Type): Check for CodePeer_Mode.
+ 
+ 2025-07-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Move aspects when
+ 	instantiating subprogram as a library unit.
+ 
+ 2025-07-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch5.adb (Expand_N_Loop_Statement): Remove useless subexpressions.
+ 
+ 2025-07-01  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Add the
+ 	documentation about benefits of using sanitizers in
+ 	mixed-language applications.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.ads (Compile_Time_Pragma_Warnings): Removed.
+ 	* errout.adb (Initialize): Remove initialization for
+ 	Compile_Time_Pragma_Warnings.
+ 	(Error_Msg_Internal): Use Warning_As_Error_Kind in the
+ 	Error_Msg_Object. Set its value based on the reason the
+ 	warning was changed to an error.
+ 	(Write_JSON_Span): Adjust the code for Warn_Err.
+ 	(Output_Messages): Update the calculation for actual warnings
+ 	and errors by just using Warnings_Treated_As_Errors.
+ 	(Set_Msg_Text): Simply mark that we are dealing with a
+ 	run time message here. Move the code for the Warning_Mode to
+ 	Error_Msg_Internal.
+ 	* erroutc-pretty_emitter.adb (Write_Error_Msg_Line): Adjust the code
+ 	for Warn_Err. Use the Warn_As_Err_Tag token.
+ 	* erroutc.adb (Compilation_Errors): Simplify the implementation so
+ 	that it only checks for errors and warnings treated as errors.
+ 	(Decrease_Error_Msg_Count): Remove the count for
+ 	Compile_Time_Pragma_Warnings.
+ 	(dmsg): Adjust the code for changes to Warn_Err.
+ 	(Increase_Error_Msg_Count): Likewise and remove the count for
+ 	Compile_Time_Pragma_Warnings.
+ 	(Output_Msg_Text): Warnings converted to error by the
+ 	Warning_As_Error pragma and -gnatwE now use the error prefix
+ 	in their messages but only warnings changed by the pragma get
+ 	the [warning-as-error] tag.
+ 	(Output_Text_Within): Adjust the variable name for
+ 	Is_Runtime_Raise_Msg.
+ 	(Write_Error_Summary): Adjust printing of warnings so that it
+ 	just uses the counts for Warnings_Detected and
+ 	Warnings_Treated_As_Errors.
+ 	* erroutc.ads (Is_Runtime_Raise): renamed to Is_Runtime_Raise_Msg.
+ 	(Warning_As_Error_Kind): New type for marking the warning message
+ 	is treated as an error which also captures the reason for the
+ 	change. Historically each of the reasons will have a different way
+ 	of displaying the warning message.
+ 	(Error_Msg_Object.Warn_Err): Change type to Warning_As_Error_Kind.
+ 	(Kind_To_String): Warnings treated as errors originating from
+ 	the pragma or -gnatwE will return error where as warnings
+ 	originating from -gnatwe will return warning.
+ 	(Compilation_Errors): Update the documentation.
+ 	(Warn_As_Err_Tag): Constant string to be used when printing warnings
+ 	as errors.
+ 	* errutil.adb (Error_Msg): Adjust the code for Warn_Err.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Shift_Address_For_Descriptor): New function.
+ 	(Make_Address_For_Finalize): Call above function.
+ 	(Make_Finalize_Address_Stmts): Likewise.
+ 	* exp_util.ads (Is_Constr_Array_Subt_Of_Unc_With_Controlled): New
+ 	predicate.
+ 	* exp_util.adb (Is_Constr_Array_Subt_Of_Unc_With_Controlled): Ditto.
+ 	(Remove_Side_Effects): Call above predicate.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
+ 	* sem_ch4.adb (Analyze_Allocator): Allocate the bounds by setting
+ 	Is_Constr_Array_Subt_With_Bounds when appropriate.
+ 
+ 2025-07-01  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch4.adb (Try_Object_Operation): Handle mutably tagged
+ 	class-wide type prefix.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb (Error_Msg_Internal): Use the new
+ 	Warning_Treated_As_Error function.
+ 	* erroutc.adb (Get_Warning_Option): Add new version of this
+ 	function that operates on the Error_Msg_Object directly instead
+ 	of the Error_Id. Update the existing function to call the new
+ 	version interanlly.
+ 	(Get_Warning_Tag): Likewise.
+ 	(Warning_Treated_As_Error): Add a new method that combines the
+ 	checks for the error message itself and its tag.
+ 	* erroutc.ads (Get_Warning_Option): Add new spec.
+ 	(Get_Warning_Option): Likewise.
+ 	(Get_Warning_Option): Likewise.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* atree.ads: Add Compile_Time_Pragma_Warnings for counting
+ 	compile time warnings.
+ 	* errout.adb (Initialize): Initialize Compile_Time_Pragma_Warnings.
+ 	(Output_Messages): Use Compile_Time_Pragma_Warnings instead of
+ 	Count_Compile_Time_Pragma_Warnings.
+ 	* erroutc.adb (Compilation_Errors): Likewise.
+ 	(Count_Compile_Time_Pragma_Warnings): Removed.
+ 	(Decrease_Error_Msg_Count): Update Compile_Time_Pragma_Warnings.
+ 	(Increase_Error_Msg_Count): Likewise.
+ 	(Write_Error_Summary): Use Compile_Time_Pragma_Warnings instead of
+ 	Count_Compile_Time_Pragma_Warnings.
+ 	* erroutc.ads (Count_Compile_Time_Pragma_Warnings): Removed.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb (Delete_Warning_And_Continuations): Use
+ 	Decrease_Error_Msg_Count to update the message counts.
+ 	(Delete_Warning): Likewise.
+ 	(To_Be_Removed): Likewise.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb (Remove_Warning_Messages): Mark removed messages as
+ 	deleted.
+ 	* erroutc.adb (Purge_Messages): Likewise.
+ 
+ 2025-07-01  Martin Clochard  <clochard@adacore.com>
+ 
+ 	* frontend.adb (Frontend): do not override GNATprove's setting for
+ 	Warn_On_Non_Local_Exception
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Allocator): Do not set Etype to itself.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Finalize_Address): Do not go to the root type for
+ 	array types.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuer.ads (System.Value_R): Remove Round parameter.
+ 	(Scan_Raw_Real): Replace Extra with Extra2 and adjust the comment.
+ 	(Value_Raw_Real): Likewise.
+ 	* libgnat/s-valuer.adb (Round_Extra): Delete.
+ 	(Scan_Decimal_Digits): Replace Extra with Extra2 and adjust the
+ 	implementation.
+ 	(Scan_Integral_Digits): Replace Extra with Extra2 and Extra_Rounded
+ 	with Extra2_Filled and adjust the implementation.
+ 	(Scan_Raw_Real): Replace Extra with Extra2 and adjust the
+ 	implementation.
+ 	(Value_Raw_Real): Likewise.
+ 	* libgnat/s-valrea.adb (Impl): Remove actual for Round formal.
+ 	* libgnat/s-valued.adb (Impl): Likewise.
+ 	(Integer_to_Decimal): Replace Extra with Extra2 and adjust the
+ 	implementation.  Rename Unsigned_To_Signed to To_Signed.
+ 	(Scan_Decimal): Replace Extra with Extra2 and adjust the
+ 	implementation.
+ 	(Value_Decimal): Likewise.
+ 	* libgnat/s-valuef.adb (Impl): Remove actual for Round formal.
+ 	(Integer_to_Fixed): Replace Extra with Extra2 and adjust the
+ 	implementation.  Rename Unsigned_To_Signed to To_Signed.  Only
+ 	round the last scaled divide operation.
+ 	(Scan_Fixed): Replace Extra with Extra2 and adjust the
+ 	implementation.
+ 	(Value_Fixed): Likewise.
+ 
+ 2025-07-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Decimal_Digits, Scan_Integral_Digits):
+ 	Minor rephrasing.
+ 
+ 2025-07-01  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set ekind
+ 	earlier.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.ads (Is_Finalizable_Access): New predicate.
+ 	(Is_Non_BIP_Func_Call): Delete.
+ 	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
+ 	* exp_util.adb (Is_Finalizable_Access): New predicate.
+ 	(Initialized_By_Aliased_BIP_Func_Call): Delete.
+ 	(Initialized_By_Reference): Likewise.
+ 	(Is_Aliased): Only consider the nontransient object serviced by
+ 	the transient scope.
+ 	(Is_Part_Of_BIP_Return_Statement): Minor tweak.
+ 	(Is_Finalizable_Transient): Remove calls to Initialized_By_Reference
+ 	and Initialized_By_Aliased_BIP_Func_Call.
+ 	Call Is_Finalizable_Access for access objects.
+ 	(Is_Non_BIP_Func_Call): Delete.
+ 	(Is_Secondary_Stack_BIP_Func_Call): Likewise.
+ 	(Requires_Cleanup_Actions): Call Is_Finalizable_Access for access
+ 	objects.
+ 	(Side_Effect_Free): Return True for N_Reference.
+ 	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Call
+ 	Is_Finalizable_Access for access objects.
+ 
+ 2025-07-01  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Is_Expression_Of_Func_Return): New predicate.
+ 	(Is_Related_To_Func_Return): Call Is_Expression_Of_Func_Return.
+ 	(Remove_Side_Effects): Generate a temporary for a function call
+ 	that returns a constrained array type with controlled component
+ 	and an unconstrained first subtype.
+ 
+ 2025-07-01  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* inline.adb (Rewrite_Procedure_Call): Replace with a simple rewriting
+ 	of procedure call into a single block node, i.e. remove broken
+ 	optimization.
+ 	* sem_util.adb (Next_Actual): Adapt GNATprove-specific code that peeks
+ 	into inlined calls.
+ 
+ 2025-07-01  Martin Clochard  <clochard@adacore.com>
+ 
+ 	* exp_util.adb (Is_Controlling_Formal_Ref): test scope against
+ 	derived subprogram as well.
+ 
+ 2025-07-01  Viljar Indus  <indus@adacore.com>
+ 
+ 	* errout.adb (Error_Msg_Internal): Relocate Warn_As_Err propagation
+ 	to Increase_Error_Msg_Counti.
+ 	(Delete_Warning_And_Continuations): Update
+ 	Warnings_Treated_As_Errors count.
+ 	(Delete_Warning): Likewise.
+ 	(To_Be_Removed): Likewise.
+ 	* erroutc.adb (Increase_Error_Msg_Count): Count warnings treated
+ 	as errors here and perform the propagation of this property to
+ 	the parent message.
+ 	(Output_Msg_Text): Remove counting of warnings as errors from
+ 	here.
+ 	(Decrease_Error_Msg_Count): Update Warnings_Treated_As_Errors
+ 	count.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/120106
+ 	* Make-generated.in (GNATMAKE_FOR_BUILD): Define.
+ 
+ 2025-06-30  Viljar Indus  <indus@adacore.com>
+ 
+ 	* comperr.adb (Compiler_Abort): Pass the exit code in calls to
+ 	Output_Messages.
+ 	* errout.adb (Output_Messages): Add new parameter for the
+ 	Exit_Code and store its value.
+ 	* errout.ads (Output_Messages): Likewise.
+ 	* erroutc-sarif_emitter.adb (Print_Invocations): Set
+ 	Execution_Successful based on the exit code.
+ 	* erroutc.ads (Exit_Code): Store the exit code value.
+ 	* gnat1drv.adb (Gnat1drv): Pass the exit code in calls to
+ 	Output_Messages.
+ 	* prepcomp.adb (Parse_Preprocessing_Data_File, Prpare_To_Preprocess):
+ 	Likewise.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gen_il-gen-gen_entities.adb (Gen_Entities): Tweak Has_Exit.
+ 
+ 2025-06-30  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_attr.adb (Attribute_Max_Size_In_Storage_Elements):
+ 	Return Storage_Count'Last converted to universal_integer.
+ 
+ 2025-06-30  Tonu Naks  <naks@adacore.com>
+ 
+ 	* doc/gnat_rm.rst: add entry point for the new chapter
+ 	* doc/gnat_rm/about_this_guide.rst: add reference to the new
+ 	chapter
+ 	* doc/gnat_rm/implementation_of_ada_2022_features.rst: new file
+ 	* doc/gnat_rm/implementation_of_ada_2012_features.rst: update
+ 	explanation about RM references
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* par-util.adb (Check_Future_Keyword): Use Snames subtypes. Extend
+ 	comment.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch5.adb (Analyze_Loop_Statement): Remove obsolete comment.
+ 
+ 2025-06-30  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_warn.adb (Warn_On_Useless_Assignments):
+ 	Enable Warn_On_Useless_Assignment in the case of
+ 	Warn_On_All_Unread_Out_Parameters.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Subtype_Declaration): Remove uses of E_Void.
+ 	(Copy_Parent_Attributes): New procedure.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb (Make_Aliased_Component, Make_Formal, New_Operator,
+ 	Create_Standard): Remove useless calls.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Decimal_Digits): Also pretend that the
+ 	precision limit was just reached if it was already reached.
+ 	(Scan_Integral_Digits): Add Extra_Rounded out parameter, set it to
+ 	False on entry and to True when Extra is rounded.
+ 	(Scan_Raw_Real): New Extra_Rounded local variable.  Pass it in the
+ 	calls to Scan_Integral_Digits.  If it is True, pass a dummy extra
+ 	digit to Scan_Decimal_Digits.
+ 
+ 2025-06-30  Claire Dross  <dross@adacore.com>
+ 
+ 	* libgnat/a-strsup.ads: Ignore Ghost_Predicate in the assertion policy.
+ 
+ 2025-06-30  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_aggr.adb (Resolve_Record_Aggregate): Adjust the code to
+ 	handle mutably tagged class-wide types since they don't have
+ 	discriminants, but all class-wide types are considered to have
+ 	unknown discriminants. Initialize mutably tagged class-wide
+ 	type components calling their IP subprogram.
+ 	* exp_aggr.adb (Gen_Assign): Handle mutably tagged class-wide type
+ 	components that have an initializing qualified expression, and
+ 	mutably tagged class-wide components default initialization.
+ 	(Gen_Loop): Handle mutably tagged class-wide types.
+ 	(Gen_Assign): ditto.
+ 	(Build_Record_Aggr_Code): Default initialization of mutably tagged
+ 	class-wide types is performed by their IP subprogram.
+ 	* exp_ch3.adb (Init_Component): Generate code to raise Program_Error
+ 	in the IP subprogram of arrays when the type of their components is
+ 	a mutably tagged abstract class-wide type.
+ 	(Build_Init_Procedure): ditto for the init procedure of record types.
+ 	(Build_Init_Statements): Ensure that the type of the expression
+ 	initializing a mutably class-wide tagged type component is frozen.
+ 	(Requires_Init_Proc): Mutably tagged class-wide types require the
+ 	init-proc since it takes care of their default initialization.
+ 	* sem_util.adb (Needs_Simple_Initialization): Mutably tagged class-wide
+ 	types don't require simple initialization.
+ 	* types.ads (PE_Abstract_Type_Component): New reason for Program_Error.
+ 	* types.h (PE_Abstract_Type_Component): ditto.
+ 	* exp_ch11.adb (Get_RT_Exception_Name): Handle new reason for
+ 	Program_Error.
+ 	* libgnat/a-except.adb (Rcheck_PE_Abstract_Type_Component): New
+ 	subprogram.
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (Get_Enclosing_Object, Get_Enum_Lit_From_Pos,
+ 	Is_Universal_Numeric_Type): Reorder declarations.
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Get_Enclosing_Object): Traverse unchecked type
+ 	conversions since they from the compiler and should be transparent for
+ 	semantic reasoning.
+ 
+ 2025-06-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* einfo-utils.adb (Predicate_Function): Look through an Itype if
+ 	that takes us to another subtype of the same type.
+ 
+ 2025-06-30  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_util.adb (Must_Map_Call_To_Parent_Primitive): Change function
+ 	name (was Call_To_Parent_Dispatching_Op_Must_Be_Mapped). Move logic
+ 	for attributes and dereferences, plus testing for controlled formals,
+ 	into new function Expr_Has_Ctrl_Formal_Ref. Add handling for
+ 	access attributes, multiple levels of attributes/dereferences,
+ 	conditional_expressions, and declare_expressions. Properly account
+ 	for function calls with multiple operands and enclosing calls.
+ 	(Expr_Has_Ctrl_Formal_Ref): New function to determine whether
+ 	an expression is a reference to a controlling formal or has
+ 	a prefix that is such a reference.
+ 	(Is_Controlling_Formal_Ref): New function in Expr_Has_Ctrl_Formal_Ref
+ 	to determine if a node is a direct reference to a controlling formal.
+ 	* freeze.adb (Build_DTW_Body): Create an unchecked conversion instead
+ 	of a regular type conversion for converting actuals in calls to parent
+ 	inherited primitives that are wrapped for inherited pre/postconditions.
+ 	Avoids generating unnecessary checks (such as accessibility checks on
+ 	conversions for anonymous access formals).
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.ads (Get_Enclosing_Ghost_Entity): Rename spec.
+ 	* sem_util.adb (Get_Enclosing_Ghost_Object): Rename body; reorder
+ 	alphabetically; adapt recursive call.
+ 	* ghost.adb: Adapt calls to Get_Enclosing_Ghost_Object.
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* ghost.adb (Ghost_Entity): Remove; use Get_Enclosing_Ghost_Object
+ 	instead; adapt callers.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma) <Pragma_No_Component_Reordering>:
+ 	Call Find_Type on the first argument of the pragma.
+ 
+ 2025-06-30  Tonu Naks  <naks@adacore.com>
+ 
+ 	* gnatls.adb: remove -l switch
+ 
+ 2025-06-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Update documentation for
+ 	mutably tagged types and the Size'Class aspect.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* ghost.adb
+ 	(Whole_Object_Ref): Remove; use Get_Enclosing_Ghost_Object instead.
+ 	(Is_Ghost_Assignment): Handle more than object identifiers.
+ 	(Mark_And_Set_Ghost_Assignment): Likewise.
+ 	* sem_util.adb (Get_Enclosing_Ghost_Object): Detect more expressions
+ 	as ghost references; rename to better match the intended meaning.
+ 	* sem_util.ads (Get_Enclosing_Ghost_Object): Rename; adjust comment.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Backend_Processing_Possible.Component_Check): Return
+ 	False for delayed conditional expressions.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.ads (Parent_Is_Regular_Aggregate): New predicate.
+ 	* exp_aggr.adb (In_Place_Assign_OK.Safe_Component): Implement more
+ 	accurate criterion for function calls.
+ 	(Convert_To_Assignments): Use Parent_Is_Regular_Aggregate predicate.
+ 	(Expand_Array_Aggregate): Likewise.  Remove obsolete comment.
+ 	(Initialize_Component): Do not adjust when the expression is a naked
+ 	function call and Back_End_Return_Slot is True.
+ 	(Parent_Is_Regular_Aggregate): New predicate.
+ 	* exp_ch3.adb (Build_Record_Init_Proc.Build_Assignment): Add test of
+ 	Back_End_Return_Slot in conjunction with a function call.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Likewise.  Use the
+ 	Is_Container_Aggregate predicate to detect container aggregates.
+ 	(Expand_N_Case_Expression): Delay the expansion if the parent is a
+ 	regular aggregate and the type should not be copied.
+ 	(Expand_N_If_Expression): Likewise.
+ 	(New_Assign_Copy): New function.
+ 	* exp_ch6.adb (Expand_Ctrl_Function_Call): Bail out when the parent
+ 	is a regular aggregate.
+ 	* sem_util.adb (Check_Function_Writable_Actuals): Do not take into
+ 	account attribute references created by the compiler.
+ 
+ 2025-06-30  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* socket.c [__vxworks]
+ 	(__gnat_gethostbyname): Drop excess '&'.
+ 	(__gnat_gethostbyaddr): Likewise.
+ 
+ 2025-06-30  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* adaint.c [__vxworks]: Include ctype.h.
+ 
+ 2025-06-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_put_image.adb (Build_Record_Put_Image_Procedure): If
+ 	Discriminant_Specifications takes us from the full view of a type
+ 	to an (intentionally) unanalyzed subtree, then instead find
+ 	discriminant entities by calling Discriminant_Specifications on
+ 	the partial view of the type.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch6.adb (Check_Delayed_Subprogram, Possible_Freeze): Restrict
+ 	cases where freezing is delayed.
+ 	* sem_ch6.ads (Check_Delayed_Subprogram): Improve documentation
+ 	comment.
+ 	* sprint.adb (Write_Itype): Improve output.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valrea.adb (Integer_to_Real): Rename to...
+ 	(Integer_To_Real): ...this.  Remove the second condition of the
+ 	conjunction in the test for the zero value.
+ 	(Scan_Real): Adjust to above renaming.
+ 	(Value_Real): Likewise.
+ 	* libgnat/s-valuer.ads (Scan_Raw_Real): Add note about Val.
+ 
+ 2025-06-30  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix a
+ 	couple of minor formatting issues.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* treepr.ads (Print_Entity_Chain, pec, rpec): New subprograms.
+ 	* treepr.adb (Print_Entity_Chain, pec, rpec): Likewise.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (Parent_Or_List_Containing): Fix typo.
+ 
+ 2025-06-30  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* treepr.adb (Print_Node): Tweak Parent field printing.
+ 
+ 2025-06-30  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Add the
+ 	documentation about using sanitizers with Ada code.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-30  Jose Ruiz  <ruiz@adacore.com>
+ 
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst: Add the
+ 	documentation about using sanitizers with Ada code.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-30  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Get_Enclosing_Object): Remove dead code.
+ 
+ 2025-06-30  Steve Baird  <baird@adacore.com>
+ 
+ 	* einfo-utils.adb (Predicate_Function): Improve handling of a case
+ 	where a predicate specified for a subtype of a partial view of a
+ 	type was incorrectly ignored.
+ 	(Set_Predicate_Function): If the attribute has already been set to
+ 	the same value, then do nothing (instead of raising P_E).
+ 	* sem_ch13.adb (Build_Predicate_Function): Add new function
+ 	Has_Source_Predicate. If a subtype inherits a predicate but also
+ 	has its own explicitly specified predicate, then avoid
+ 	misinterpreting the presence of the function built for the
+ 	inherited predicate to mean that no additional predicate function
+ 	is needed.
+ 	* sem_util.adb (Build_Subtype): In the case where we are given a
+ 	constrained record or array subtype and we need to construct a
+ 	different subtype, subject to a different constraint, the
+ 	subtype_mark of the constructed subtype needs to reference an
+ 	unconstrained subtype (because a new constraint is going to be
+ 	imposed). If the Predicated_Parent attribute of the given subtype
+ 	is present and refers to a suitable unconstrained subtype, then
+ 	use that subtype instead of setting the Predicated_Parent
+ 	attribute on a new node (and performing the associated attribute
+ 	copying).
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch7.adb (Process_Transient_In_Scope): Bail out if the object
+ 	is an ignored ghost entity.
+ 
+ 2025-06-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_util.adb (Insert_Actions): Extend special treatment applied
+ 	to freeze nodes to the case of blocks generated for aggregates.
+ 
+ 2025-06-30  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb: Switch missing if-statements to
+ 	short-circuit form.
+ 	* libgnat/i-cpoint.adb: Ditto.
+ 
+ 2025-06-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/120854
+ 	* sem_eval.adb (Get_String_Val): Be prepared for an integer literal
+ 	after a serious error is detected, and raise PE on other nodes.
+ 
+ 2025-06-26  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* gcc-interface/misc.cc (gnat_init): Use
+ 	diagnostic_context::set_internal_error_callback.
+ 
+ 2025-06-22  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/120106
+ 	* gcc-interface/Make-lang.in: Set GNAT{MAKE,BIND,LINK_LS}_FOR_HOST
+ 	from GNAT{MAKE,BIND} instead of using hardcoded commands.
+ 
+ 2025-06-22  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Make-generated.in: Remove obsolete stuff.
+ 
+ 2025-06-22  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/120106
+ 	PR ada/120106
+ 	* Make-generated.in: Use GNATMAKE_FOR_BUILD instead of gnatmake.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 
+ 2025-06-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/120665
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): Use robust guards.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Generate
+ 	a zero-initialization for the anonymous object of a small aggregate
+ 	allocated on the stack.
+ 	(inline_status_for_subprog): Minor tweak.
+ 
+ 2025-06-12  Tonu Naks  <naks@adacore.com>
+ 
+ 	* comperr.adb: update support instructions
+ 	* switch.adb: update support instructions
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sinfo.ads: Fix RM reference.
+ 
+ 2025-06-12  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch3.adb (Apply_External_Initialization): Reuse local constant.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst
+ 	(Generalized Finalization): Document the actual implementation.
+ 	(No_Raise): Move to separate section.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Raw_Real): Apply tweak.
+ 
+ 2025-06-12  Tonu Naks  <naks@adacore.com>
+ 
+ 	* comperr.adb: replace report@ with support@
+ 	* gnatcmd.adb: replace report@ with support@
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Build_Derived_Private_Type): Fix test.
+ 	(Build_Derived_Record_Type): Adjust error recovery paths.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Has_Homonym): Fix inaccuracy in description.
+ 	* sem_ch8.ads (Find_Direct_Name): Remove obsolete description.
+ 	* sem_ch12.adb (Analyze_Associations): Rename I_Node parameter
+ 	into N and adjust description.
+ 	(Analyze_Subprogram_Instantiation): Add missing description.
+ 	(Contains_Instance_Of): Fix description.
+ 	(Associations): Rename Generic_Actual_Rec into Actual_Rec and
+ 	Gen_Assocs_Rec into Match_Rec.
+ 	(Analyze_One_Association): Rename I_Node parameter into N.
+ 	(Check_Fixed_Point_Warning): Rename Gen_Assocs parameter into
+ 	Match.
+ 	(Body of Associations): Minor cleanups and tweaks.
+ 	(Analyze_Associations): Rename I_Node parameter into N and
+ 	adjust implementation.
+ 	(Analyze_One_Association): Likewise.
+ 	(Analyze_Package_Instantiation): Remove obsolete code and clean up.
+ 	(Check_Fixed_Point_Warning): Rename Gen_Assocs parameter into
+ 	Match and adjust implementation.
+ 	(Freeze_Package_Instance): Simplify condition.
+ 	(Get_Unit_Instantiation_Node): Add support for instantiations of
+ 	subprograms and stop the loop properly in case of errors.
+ 	* sem_util.ads (Add_Global_Declaration): Rename N parameter into
+ 	Decl and fix description.
+ 	* sem_util.adb (Add_Global_Declaration): Rename N parameter into
+ 	Decl and adjust implementation.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Raw_Real): Add RM reference.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Scan_Raw_Real): Remove subexpression. Improve
+ 	surrounding comments.
+ 
+ 2025-06-12  Bob Duff  <duff@adacore.com>
+ 
+ 	* vast.adb: Check basic tree properties.
+ 	* atree.adb (Traverse_Field): Minor.
+ 	* treepr.adb (Destroy): Minor comment.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuer.adb (Round_Extra): Use multiplicative test.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* einfo-utils.adb (Set_Convention): Remove obsolete test.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Discriminants): Set Ekind earlier.
+ 	* sem_util.adb (Enter_Name): Adjust error processing.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valuef.adb (Integer_To_Fixed): Enable overflow checks.
+ 	Deal specifically with Val = 2**(Int'Size - 1) if Minus is not set.
+ 	Exit the loop when V saturates to 0 in the case of (huge) negative
+ 	exponents.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_util.adb (Insert_Actions): Refine test.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
+ 	switches) <-O>: Fix long line.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (List of
+ 	all switches): Add -gnatRh subswitch.
+ 	(Debugging Control): Document -gnatRh subswitch.
+ 	* opt.ads (List_Representation_Info_Holes): New boolean variable.
+ 	* repinfo.adb: Add with clause for GNAT.Heap_Sort_G.
+ 	(List_Common_Type_Info): Relax assertion.
+ 	(List_Object_Info): Replace assertion with additional test.
+ 	(List_Record_Layout): If -gnatRh is specified, make sure that the
+ 	components are ordered by increasing offsets.  Output a comment
+ 	line giving the number of unused bits if there is a hole between
+ 	consecutive components.  Streamline the control flow of the loop.
+ 	(List_Record_Info): Use the original record type giving the layout
+ 	of components, if any, to display the layout of the record.
+ 	* switch-c.adb (Scan_Front_End_Switches) <-gnatR>: Add support for
+ 	-gnatRh subswitch.
+ 	* usage.adb (Usage): Document -gnatRh subswitch.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-12  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-secsta.adb (SS_Allocate): Add comment about
+ 	conservative alignment padding calculation.
+ 	* libgnat/s-secsta__cheri.adb (SS_Allocate): Add comment about
+ 	conservative alignment padding calculation.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_warn.adb (Check_References): Rewrite expression
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Index, Make_Index, Array_Type_Declaration,
+ 	Analyze_Number_Declaration): Remove uses of E_Void.
+ 
+ 2025-06-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* usage.adb (Usage): Justify the documentation of common switches
+ 	like that of other switches.  Rework that of the -O switch.
+ 	* doc/gnat_ugn/building_executable_programs_with_gnat.rst (Compiler
+ 	switches) <-O>: Rework and document 'z' and 'g' operands.
+ 	* doc/gnat_ugn/gnat_and_program_execution.rst (Optimization Levels):
+ 	Rework and document -Oz and -Og switches.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Index): Avoid unused itypes.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Index): Factorize return statement.
+ 
+ 2025-06-12  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Build_Derived_Numeric_Type): Remove duplicate call.
+ 
+ 2025-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* gen_il-gen-gen_entities.adb (Formal_Object_Kind): Remove
+ 	Entry_Component field.
+ 
+ 2025-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute): Remove redundant guard.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* inline.adb (Analyze_Inlined_Bodies): Minor comment tweak.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* inline.adb (Instantiate_Body): Do not call Add_Scope_To_Clean if
+ 	the main unit is generic.
+ 	(Instantiate_Bodies): Do not deal with generic main units here.
+ 	* sem_ch12.adb (Need_Subprogram_Instance_Body): Return false if the
+ 	main unit is generic.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* Makefile.rtl (ADA_EXCLUDE_SRCS): Add the 128-bit support files.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Factorize code.
+ 
+ 2025-06-10  Bob Duff  <duff@adacore.com>
+ 
+ 	* einfo.ads (Associated_Node_For_Itype): Document that
+ 	Parent field may be empty.
+ 	* vast.adb:  Allow empty Parent in Itypes.
+ 
+ 2025-06-10  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* einfo.ads: Revise comment about Dynamic_Predicate flag to make it
+ 	more accurate.
+ 	* sem_case.adb (Check_Choices): Test "not Has_Static_Predicate_Aspect"
+ 	as additional guard for error about use of subtype with nonstatic
+ 	predicate as a case choice. Improve related error message.
+ 
+ 2025-06-10  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/s-valueu.adb: add explict raise
+ 	* libgnat/s-valueu.ads: update annotation
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch6.adb, sem_ch6.ads (Check_Discriminant_Conformance): Move to …
+ 	* sem_ch3.adb (Check_Discriminant_Conformance): … here.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* freeze.adb (Freeze_Static_Object): Do not issue any error message
+ 	for compiler-generated entities.
+ 
+ 2025-06-10  Bob Duff  <duff@adacore.com>
+ 
+ 	* vast.adb: Implement two checks. Improve debugging
+ 	outputs.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Deal with a
+ 	transient scope being created around the declaration.
+ 	* freeze.adb (Freeze_Entity): Do not call Freeze_Static_Object for
+ 	a renaming declaration.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-vafi32.ads: Fix head description.
+ 	* libgnat/s-vafi64.ads: Likewise.
+ 	* libgnat/s-vafi128.ads: Likewise.
+ 
+ 2025-06-10  Bob Duff  <duff@adacore.com>
+ 
+ 	* vast.adb: Initial implementation.
+ 	* vast.ads: Rename procedure. Remove parameter; body should decide
+ 	what to do.
+ 	* lib.ads (ipu): Minor: Rewrite comment for brevity, and because
+ 	of an inconvenient misspelling.
+ 	(Num_Units): Not used; remove.
+ 	(Remove_Unit): Minor: Remove "Currently" (which was current a decade
+ 	ago from) comment.
+ 	* lib.adb (Num_Units): Not used; remove.
+ 	* debug_a.adb (Debug_A_Entry): Fix bug: Use Write_Name_For_Debug,
+ 	so this won't crash on the Error node.
+ 	* debug.adb: Document -gnatd_V and -gnatd_W compiler switches.
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Remove redundant check for
+ 	Serious_Errors_Detected. (We turn off code gen when errors are
+ 	detected.)
+ 	* frontend.adb: Move decisions into VAST body.
+ 	* namet.ads (Present): Remove unnecessary overriding; these are
+ 	inherited by the derived types.
+ 	* namet.adb (Present): Likewise.
+ 
+ 2025-06-10  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Container_Aggr_Code.To_Int): Apply Enumeration_Pos
+ 	to Entity (Expr) rather than Expr.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Find_Type_Of_Object): Fix comment.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Component_Declaration): Rename constant.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Array): Simplify.
+ 	(Process_Subtype): Adjust.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch12.adb (Copy_Generic_Node): Do not call Root_Type to find
+ 	the root type of an aggregate of a derived tagged type.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnarl/s-stusta.adb (Compute_All_Tasks): Skip terminated tasks.
+ 
+ 2025-06-10  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_prag.adb (Is_Configuration_Pragma): Check that nodes
+ 	preceding the pragma are pragma nodes or originally were
+ 	pragma nodes.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-valued.adb (Integer_to_Decimal): Add Extra parameter and
+ 	use its value to call Bad_Value on boundary values.
+ 	(Scan_Decimal): Adjust call to Integer_to_Decimal.
+ 	(Value_Decimal): Likewise.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.ads (Process_Subtype): New formal.
+ 	* sem_ch3.adb (Process_Subtype): Likewise.
+ 	(Analyze_Subtype_Declaration, Access_Type_Declaration): Use new
+ 	formal.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Fix recursive call.
+ 
+ 2025-06-10  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* par-ch5.adb (P_Declare_Statement): Rename local variable.
+ 	(P_Begin_Statement): Likewise.
+ 
+ 2025-06-10  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo.ads (Overridden_Operation, Static_Initialization): Remove
+ 	comments about a reused entity field.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Tweak formatting.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Add assertion.
+ 
+ 2025-06-10  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Factorize initialization of variable.
+ 
+ 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch3.adb (Constrain_Index): In the case of a fixed-lower-bound index,
+ 	set Etype of the newly created itype's Scalar_Range from the index's Etype.
+ 	* sem_ch12.adb (Validate_Array_Type_Instance): If the actual subtype is
+ 	a fixed-lower-bound type, then check again the Etype of its Scalar_Range.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Fix conditions for legality checks on
+ 	formal type declarations.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): If pragmas apply to a formal array
+ 	type, then set the flags on the base type.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Process_Subtype): Clarify code.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.ads (Process_Subtype): Add formal.
+ 	* sem_ch3.adb (Process_Subtype): Use new formal.
+ 	(Analyze_Subtype_Declaration, Array_Type_Declaration,
+ 	Build_Derived_Access_Type): Pass new actual.
+ 	* sem_ch4.adb (Find_Type_Of_Object): Likewise.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch6.adb (Set_Formal_Mode): Extend profile. Move parts of the
+ 	body…
+ 	(Process_Formals): … here. Move call to Set_Formal_Mode earlier. Call
+ 	Set_Is_Not_Self_Hidden in second traversal.
+ 
+ 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Container_Aggregate): Use the Base_Type of the
+ 	subtype provided by the context as the subtype of the temporary object
+ 	initialized by the aggregate.
+ 
+ 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* par-ch4.adb (P_Function_Name): Delete body.
+ 	(P_Qualified_Simple_Name_Resync): Do not raise Error_Resync on an
+ 	operator symbol followed by something else than a dot.
+ 	* par-ch6.adb (P_Subprogram): Do not call P_Function_Name.
+ 	* par.adb (P_Function_Name): Delete declaration.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem.adb (Analyze): Adapt to new Ekinds.
+ 	* sem_ch3.adb (Analyze_Component_Declaration): Set Ekind early.
+ 	(Is_Visible_Component, Record_Type_Definition): Adjust.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem.adb (Analyze): Fix comment.
+ 
+ 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* par-ch4.adb (P_Name): Remove obsolete references in comments.
+ 	(P_Qualified_Simple_Name): Call P_Qualified_Simple_Name_Resync.
+ 	(P_Qualified_Simple_Name_Resync): Adjust a couple of comments.
+ 
+ 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_util.adb (Call_To_Parent_Dispatching_Op_Must_Be_Mapped): Replace
+ 	test of Covers with test of Is_Controlling_Formal. Add handling for
+ 	'Result actuals. Remove Actual_Type and its uses.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Is_Name_Reference): Remove check for selector_name of a
+ 	selected_component; reuse existing code for indexed components and
+ 	slices.
+ 	(Statically_Names_Object): Remove dead code.
+ 
+ 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Overlays_Constant): Define in constants and variables.
+ 	* gen_il-gen-gen_entities.adb (Entity_Kind): Move Overlays_Constant
+ 	semantic flag to...
+ 	(Constant_Or_Variable_Kind): ...here.
+ 	* sem_util.adb (Note_Possible_Modification): Add guard.
+ 
+ 2025-06-09  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration):
+ 	Deal with renamings transformed into object declarations.
+ 	* sem_ch8.adb (Analyze_Object_Renaming):
+ 	Reinstate transformation of a renaming into
+ 	an object declaration.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Call Mutate_Ekind earlier.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Tweak error handling.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* par-ch13.adb (Get_Aspect_Specifications): Save and restore flag while
+ 	parsing aspect Abstract_State.
+ 	* par-ch2.adb (P_Pragma): Same while parsing pragma Abstract_State.
+ 	* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Specialize error message
+ 	for contract Abstract_State and extended aggregate.
+ 	* par.adb (Inside_Abstract_State): Add new context flag.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch10.adb (Analyze_Compilation_Unit): Check for generic bodies.
+ 	* exp_disp.adb (Build_Dispatch_Tables): Likewise.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_util.adb (Find_Overlaid_Entity): Don't call Etype on empty Ent;
+ 	tune style; move computation of Overl_Typ out of the loop.
+ 
+ 2025-06-09  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst: Adding
+ 	documentation.
+ 	* doc/gnat_ugn/the_gnat_compilation_model.rst: ditto.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_attr.adb (Analyze_Attribute): Remove test.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Enter_Name): Remove special handling.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Enter_Name): Remove comment.
+ 
+ 2025-06-09  Bob Duff  <duff@adacore.com>
+ 
+ 	* exp_ch6.adb: Remove a couple of "???" suggesting something that
+ 	we will likely never do.
+ 	(Make_Build_In_Place_Call_In_Object_Declaration):
+ 	When a constraint check is needed, do the check.
+ 	Do it at the call site for now.
+ 	The check is still missing in the untagged case,
+ 	because the caller allocates in that case.
+ 	* sem_ch8.adb (Analyze_Object_Renaming):
+ 	Remove obsolete transformation of a renaming into
+ 	an object declaration. Given that we also (sometimes) tranform
+ 	object declarations into renamings, this transformation was
+ 	adding complexity; the new code in
+ 	Make_Build_In_Place_Call_In_Object_Declaration above
+ 	would need to explicitly avoid the run-time check in the case of
+ 	renamings, because renamings are supposed to ignore the nominal
+ 	subtype. Anyway, it is no longer needed.
+ 	* exp_ch3.adb (Expand_N_Object_Declaration): Rewrite comment;
+ 	it IS clear how to do it, but we haven't done it right yet.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (Copy_Node): Fix comment.
+ 
+ 2025-06-09  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): When expanding attribute
+ 	Valid, use signedness from the validated view, not from its base type.
+ 
+ 2025-06-09  Marc Poulhiès  <poulhies@adacore.com>
+ 
+ 	* sem_util.adb (Find_Overlaid_Entity): Add extra parameter to
+ 	extract the type being overlaid.
+ 	(Note_Possible_Modification): Adjust call to Find_Overlaid_Entity.
+ 	(Ultimate_Overlaid_Entity): Likewise.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Likewise.
+ 	* sem_util.ads (Find_Overlaid_Entity): Add extra parameter to
+ 	extract the type being overlaid.
+ 	* freeze.adb (Check_Address_Clause): Likewise.
+ 
+ 2025-06-09  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* contracts.adb (Inherit_Condition): Remove Assoc_List and its uses
+ 	along with function Check_Condition, since mapping of formals will
+ 	effectively be done in Build_Class_Wide_Expression (by Replace_Entity).
+ 	* exp_util.adb (Replace_Entity): Only rewrite entity references in
+ 	function calls that qualify according to the result of calling the
+ 	new function Call_To_Parent_Dispatching_Op_Must_Be_Mapped.
+ 	(Call_To_Parent_Dispatching_Op_Must_Be_Mapped): New function that
+ 	determines whether a function call to a primitive of Par_Subp
+ 	associated tagged type needs to be mapped (according to whether
+ 	it has any actuals that reference controlling formals of the
+ 	primitive).
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Remove comment.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.ads (Current_Entity_In_Scope): Add example in comment.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (Rewrite, Replace): Clarify comments.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (Rewrite): Remove comment.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.adb (Rewrite): Improve readability.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_util.adb (Kill_Current_Values): Tweak condition.
+ 
+ 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Remove Decl
+ 	formal parameter, add Typ and Const formal parameters.
+ 	(Expand_N_Case_Expression): Fix pasto in comment.  Adjust call to
+ 	Insert_Conditional_Object_Declaration and tidy up surrounding code.
+ 	(Expand_N_If_Expression): Adjust couple of calls to
+ 	Insert_Conditional_Object_Declaration.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch8.adb (Find_Selected_Component): Fix error path.
+ 
+ 2025-06-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* libgnat/s-dourea.adb (Is_Infinity): Rename to...
+ 	(Is_Infinity_Or_NaN): ...this.
+ 	("*"): Adjust accordingly.
+ 	("/"): Likewise.
+ 	(Sqr): Likewise.
+ 	* libgnat/s-dorepr.adb (Two_Prod): Likewise.
+ 	(Two_Sqr): Likewise.
+ 	* libgnat/s-dorepr__fma.adb (Two_Prod): Likewise.
+ 
+ 2025-06-09  Daniel King  <dmking@adacore.com>
+ 
+ 	* libgnat/i-cheri.ads
+ 	(Set_Bounds, Set_Exact_Bounds): Remove wrong intrinsic binding.
+ 	* libgnat/i-cheri.adb
+ 	(Set_Bounds, Set_Exact_Bounds): New subprogram bodies.
+ 
+ 2025-06-09  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch8.adb (Find_Selected_Component): Add mention.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* urealp.adb (UR_Negate): Capture array element in a local constant.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* urealp.adb (UR_Exponentiate): Use local variable.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Tune code for
+ 	attribute Small.
+ 	* sem_prag.adb (Analyze_Attribute): Tune code for pragma Time_Slice.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* ada_get_targ.adb, cstand.ads, cstand.adb, sem_eval.adb, sem_eval.ads,
+ 	urealp.adb, urealp.ads: Tune style.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* get_targ.ads (Register_Proc_Type): Add null exclusion.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* cstand.adb (Build_Float_Type, Register_Float_Type): Refine
+ 	parameter subtypes.
+ 	* set_targ.ads (FPT_Mode_Entry): Refine component subtype.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_prag.adb (Analyze_Pragma): Add dependency of Program_Exit on
+ 	Global and Depends contracts.
+ 	(Analyze_Program_Exit_In_Decl_Part): Check references to subprogram
+ 	outputs.
+ 
+ 2025-06-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Exit_Cases): Update the documentation for Exit_Cases.
+ 	* sem_prag.adb
+ 	(Anlayze_Pragma): Accept Program_Exit as an exit kind.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Argument): Argument for Program_Exit is now
+ 	optional.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Program_Exit): Change documentation for pragma syntax.
+ 	* sem_prag.adb (Analyze_Pragma): Argument for Program_Exit is now
+ 	optional.
+ 	(Analyze_Program_Exit_In_Decl_Part): Likewise.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* aspects.ads (Aspect_Id): Add new aspect identifier.
+ 	(Aspect_Argument): Specify argument for the new aspect.
+ 	(Is_Representation_Aspect): New aspect is not a representation aspect.
+ 	(Aspect_Names): Map new aspect to name.
+ 	(Aspect_Delay): New aspect is always delayed.
+ 	* contracts.adb (Expand_Subprogram_Contract)
+ 	(Add_Pre_Post_Condition, Add_Contract_Item)
+ 	(Analyze_Entry_Or_Subprogram_Contract)
+ 	(Analyze_Entry_Or_Subprogram_Body_Contract)
+ 	(Analyze_Subprogram_Body_Stub_Contract): Support new aspect.
+ 	* contracts.ads (Add_Contract_Item,
+ 	Analyze_Entry_Or_Subprogram_Contract,
+ 	Analyze_Entry_Or_Subprogram_Body_Contract,
+ 	Analyze_Subprogram_Body_Stub_Contract): Mention new contract in
+ 	comment.
+ 	* doc/gnat_rm/implementation_defined_aspects.rst
+ 	(Aspect Program_Exit): Document new aspect.
+ 	* doc/gnat_rm/implementation_defined_pragmas.rst
+ 	(Pragma Program_Exit): Document new pragma.
+ 	* einfo-utils.adb (Get_Pragma): Support new pragma.
+ 	* einfo-utils.ads (Get_Pragma): Mention new pragma in comment.
+ 	* exp_prag.adb (Expand_Pragma_Program_Exit): Expand new pragma;
+ 	body.
+ 	* exp_prag.ads (Expand_Pragma_Program_Exit): Expand new pragma;
+ 	spec.
+ 	* inline.adb (Remove_Aspects_And_Pragmas): Support new pragma.
+ 	* par-prag.adb (Prag): Support new pragma.
+ 	* sem_attr.adb (Analyze_Attribute_Old_Result): Accept attribute
+ 	Old in new pragma.
+ 	* sem_ch12.adb (Implementation of Generic Contracts): Mention new
+ 	aspect in comment.
+ 	* sem_ch13.adb (Insert_Pragma, Analyze_Aspect_Specifications):
+ 	Convert new new aspect to pragma.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Renumber
+ 	subsequent rule in comment.
+ 	* sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram)
+ 	(Contract_Freeze_Error): Mention new pragma in comment.
+ 	(Analyze_Pragma): Support new pragma; renumber subsequent rule in
+ 	comment.
+ 	(Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; body.
+ 	(Sig_Flags): References in new pragma are significant when
+ 	detecting unreferenced objects.
+ 	* sem_prag.ads (Aspect_Specifying_Pragma)
+ 	(Assertion_Expression_Pragma, Pragma_Significant_To_Subprograms):
+ 	Support new aspect and pragma.
+ 	(Analyze_Program_Exit_In_Decl_Part): Analyze new pragma; spec.
+ 	(Find_Related_Package_Or_Body): Mention new pragma in comment.
+ 	* sem_util.adb (Is_Subprogram_Contract_Annotation): Support new
+ 	pragma.
+ 	* sem_util.ads (Is_Subprogram_Contract_Annotation): Mention new
+ 	pragma in comment.
+ 	* sinfo.ads (Is_Generic_Contract_Pragma): Mention new pragma in
+ 	comment.
+ 	* snames.ads-tmpl (Preset Names, Pragma_Id): Add name and pragma
+ 	identifiers.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* libgnat/g-dyntab.ads (Instance): Update and extend comment.
+ 	* scos.ads: Remove comment about the corresponding C header.
+ 	* scos.h: Remove.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb (Collect_Primitive_Operations): When collecting
+ 	primitive operations, do not include child unit subprograms.
+ 
+ 2025-06-06  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch4.adb (Constant_Indexing_OK): Add missing support for
+ 	RM 4.1.6(13/3), and improve performance to avoid climbing more
+ 	than needed. Add documentation.
+ 	(Try_Indexing_Function): New subprogram.
+ 	(Expr_Matches_In_Formal): Added new formals.
+ 	(Handle_Selected_Component): New subprogram.
+ 	(Has_IN_Mode): New subprogram.
+ 	(Try_Container_Indexing): Add documentation, code reorganization
+ 	and extend its functionality to improve its support for prefixed
+ 	notation calls.
+ 
+ 2025-06-06  Viljar Indus  <indus@adacore.com>
+ 
+ 	* debug.adb: Mark -gnatd_D as unused.
+ 	* diagnostics-repository.adb: Move to...
+ 	* errid.adb: ...here.
+ 	* diagnostics-repository.ads: Move to...
+ 	* errid.ads: ...here.
+ 	* errout.adb (Error_Msg_Internal): Add new arguments for the new
+ 	attributes of Error_Msg_Objects.
+ 	(Error_Msg): Likewise.
+ 	(Error_Msg_N): Likewise.
+ 	(Labeled_Span): New method for creating Labeled_Span-s
+ 	(Primary_Label_Span): New method for creating primary Labeled_Spans.
+ 	(Secondary_Labeled_Span): New method for creating secondary
+ 	Labeled_Spans.
+ 	(Edit): New method for creating Edit elements.
+ 	(Fix): New method for creating Fix elements.
+ 	(Error_Msg_F): Simplify code for evaluating the span.
+ 	(Error_Msg_FE): Likewise.
+ 	(Error_Msg_NE): Likewise.
+ 	(Error_Msg_NEL): Likewise.
+ 	(Error_Msg_N_Gigi): New method that is used as a wrapper for the
+ 	Error_Msg_xxx methods that have the new arguments. This function
+ 	is later mapped to the Error_Msg method used inside gigi.
+ 	(Error_Msg_NE_Gigi): Likewise.
+ 	(Write_JSON_Span): Ensure that the Style prefix is included that is
+ 	removed when parsing the message is reinserted to the JSON report.
+ 	(Output_Messages): Use the new Pretty_Printer and Sarif_Printer
+ 	packages to print the messages and remove the old implementation
+ 	for the pretty printer.
+ 	(Set_Msg_Text): Remove message kind insertion characters from the
+ 	final message text to avoid some message kinds being duplicated.
+ 	(To_Full_Span_First): New method for creating a span for a node.
+ 	(To_Full_Span): Likewise.
+ 	* errout.ads: Add the specs for all of the newly added functions.
+ 	* diagnostics-pretty_emitter.adb: Move to...
+ 	* erroutc-pretty_emitter.adb: ...here.
+ 	* diagnostics-pretty_emitter.ads: Move to...
+ 	* erroutc-pretty_emitter.ads: ...here.
+ 	* diagnostics-sarif_emitter.adb: Move to...
+ 	* erroutc-sarif_emitter.adb: ...here.
+ 	* diagnostics-sarif_emitter.ads: Move to...
+ 	* erroutc-sarif_emitter.ads: ...here.
+ 	* erroutc.adb (Next_Error_Msg): New method for iterating to the
+ 	next error message.
+ 	(Next_Continuation_Msg): New method for iterating to the next
+ 	continuation message.
+ 	(Primary_Location): New method for returning the first primary
+ 	location for the error message.
+ 	(Get_Human_Id): New method for returning the human readable
+ 	name for the switch associated with this error message.
+ 	(Get_Doc_Switch): New method for creating the tag for the switch
+ 	used in the error message.
+ 	(Output_Text_Within): Change the method to operating on Strings
+ 	instead of String pointers.
+ 	(Output_Msg_Text): Simplify implementation for generating the
+ 	error message.
+ 	(Prescan_Message): Make the String handling more error proof.
+ 	* erroutc.ads (Error_Msg_Object): Add new attributes that were
+ 	added to Diagnostic objects to Error_Msg_Objects.
+ 	Add new methods for handling the new error objects.
+ 	* diagnostics-switch_repository.adb: Move to...
+ 	* errsw.adb: ...here.
+ 	* errutil.adb (Error_Msg): Initialize all of the new attributes
+ 	added to Error_Msg_Object-s.
+ 	* fe.h (Error_Msg_N): Update the binding.
+ 	(Error_Msg_NE): Update the binding.
+ 	For now the error_msg methods in gigi will use the old
+ 	simplified interface for those methods.
+ 	* diagnostics-json_utils.adb: Move to...
+ 	* json_utils.adb: ...here.
+ 	* diagnostics-json_utils.ads: Move to...
+ 	* json_utils.ads: ...here.
+ 	* par-endh.adb: Replace the old error_msg
+ 	calls with the updated interface.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch4.adb: Likewise.
+ 	* sem_ch9.adb: Likewise.
+ 	* diagnostics-brief_emitter.adb: Removed.
+ 	* diagnostics-brief_emitter.ads: Removed.
+ 	* diagnostics-constructors.adb: Removed.
+ 	* diagnostics-constructors.ads: Removed.
+ 	* diagnostics-converter.adb: Removed.
+ 	* diagnostics-converter.ads: Removed.
+ 	* diagnostics-switch_repository.ads: Removed.
+ 	* diagnostics-utils.adb: Removed.
+ 	* diagnostics-utils.ads: Removed.
+ 	* diagnostics.adb: Removed.
+ 	* diagnostics.ads: Removed.
+ 	* errsw.ads: New file. Based on diagnostics-switch_repository.ads.
+ 	It additionally contains all the switch enumerations.
+ 	* gcc-interface/Make-lang.in: Update compilation dependencies.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* contracts.adb (Add_Invariant_And_Predicate_Checks): Assign Ekind.
+ 	* inline.adb (Expand_Inlined_Call): Likewise.
+ 	* exp_ch9.adb (Build_Simple_Entry_Call): Likewise.
+ 	* exp_dist.adb (Append_Array_Traversal): Likewise.
+ 	* exp_fixd.adb (Build_Double_Divide_Code, Build_Scaled_Divide_Code):
+ 	Likewise.
+ 
+ 2025-06-06  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* libgnarl/s-linux__android-aarch64.ads: Provide an
+ 	Android_Sigaction generic package to expose an aarch64
+ 	version of struct_sigation, using a provided sigset_t
+ 	for sa_flags.
+ 	* libgnarl/s-linux__android-arm.ads: Likewise, for ARM
+ 	rather than aarch64.
+ 	* libgnarl/s-osinte__android.ads: Move sigset_t definition
+ 	to the visible part and use it to instantiate the Android_Sigation
+ 	generic provided by System.Linux, which is specialized for ARM vs
+ 	aarch64. Define struct_sigaction out of the Android_Sigaction
+ 	instance, remove the local representation clauses.
+ 
+ 2025-06-06  Olivier Hainque  <hainque@adacore.com>
+ 
+ 	* Makefile.rtl: Rework the Android pairs to match those of a
+ 	regular Linux port rather than a generic posix one.
+ 	* libgnarl/s-osinte__android.ads: Import pcrtl and add bindings
+ 	for the pthread_rwlock entry points, used by the Linux units now
+ 	in the libgnat target pairs.
+ 	* sysdep.c (__gnat_has_cap_sys_nice): Define for Android,
+ 	conservative return 0.
+ 	* adaint.c (__gnat_cpu_alloc): Define for Android as for Linux.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* namet.ads (Name_Entry): Update comments to explain the current needs.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* lib.ads (Unit_Record): Remove representation clauses and filler
+ 	components
+ 	* lib-load.adb, lib-writ.adb: Remove initialization of data fillers.
+ 	* nlists.adb (Allocate_List_Tables): Remove explicit initialization.
+ 	* repinfo.adb (Exp_Node): Remove representation clauses.
+ 	* sinput.ads (Source_File_Record): Likewise.
+ 	* urealp.adb (Ureal_Entry): Likewise.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_rm/representation_clauses_and_pragmas.rst
+ 	(Effect of Convention on Representation): Fix number of list items.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_ch10.adb (Install_Siblings.In_Context): Add missing guard.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch4.adb (Analyze_Selected_Component): Tweak condition.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch4.adb (Insert_Conditional_Object_Declaration): Make sure the
+ 	object is allocated properly by the code generator at library level.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* sem_eval.adb (Check_Non_Static_Context): Remove special handling of
+ 	floating-point zero.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* einfo.ads (Incomplete_View): Move from Sinfo; adapt wording.
+ 	* exp_ch3.adb (Build_Record_Init_Proc): Adapt retrieval of
+ 	Incomplete_View.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Move Incomplete_View from node
+ 	to entity field.
+ 	* gen_il-gen-gen_entities.adb (Gen_Entities): Add field.
+ 	* gen_il-gen-gen_nodes.adb (Gen_Nodes): Remove field.
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration,
+ 	Check_Anonymous_Access_Component): Adapt setting of Incomplete_View.
+ 	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Adapt retrieval of
+ 	Incomplete_View for class-wide types; no longer rely on class-wide
+ 	type being attached to non-classwide type declaration.
+ 	* sem_util.adb (Collect_Primitive_Operations): Adapt retrieval of
+ 	Incomplete_View.
+ 	* sinfo.ads (Incomplete_View): Move to Einfo.
+ 
+ 2025-06-06  squirek  <squirek@adacore.com>
+ 
+ 	* aspects.ads: Add support for constructors.
+ 	* exp_aggr.adb: Likewise.
+ 	* exp_attr.adb: Likewise.
+ 	* exp_ch3.adb: Likewise.
+ 	* exp_ch4.adb: Likewise.
+ 	* exp_util.adb: Likewise.
+ 	* gen_il-fields.ads: Likewise.
+ 	* gen_il-gen-gen_entities.adb: Likewise.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* par-ch4.adb: Likewise.
+ 	* sem_aggr.adb: Likewise.
+ 	* sem_attr.adb, sem_attr.ads: Likewise.
+ 	* sem_ch13.adb: Likewise.
+ 	* sem_ch3.adb: Likewise.
+ 	* sem_ch5.adb: Likewise.
+ 	* sem_ch6.adb: Likewise.
+ 	* sem_res.adb: Likewise.
+ 	* sem_util.adb, sem_util.ads: Likewise.
+ 	* snames.ads-tmpl: Likewise.
+ 
+ 2025-06-06  squirek  <squirek@adacore.com>
+ 
+ 	* doc/gnat_rm/gnat_language_extensions.rst: Add documentation.
+ 	* gnat_rm.texi: Regenerate.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Modulus): Change to implementation base type only.
+ 	* gen_il-gen-gen_entities.adb (Modular_Integer_Kind): Change type
+ 	of Modulus field to Impl_Base_Type_Only.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Original_Access_Type): Restore.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Restore Original_Access_Type.
+ 	* gen_il-gen-gen_entities.adb: Adjust accordingly.
+ 	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Restore the
+ 	call to Set_Original_Access_Type.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Default_Expr_Function): Delete.
+ 	(Dependent_Instances): Likewise.
+ 	(Handler_Records): Likewise.
+ 	(Needs_Activation_Record): Likewise.
+ 	(Original_Access_Type): Likewise.
+ 	(Register_Exception_Call): Likewise.
+ 	* sinfo.ads (Accept_Handler_Records): Likewise.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Accept_Handler_Records,
+ 	Default_Expr_Function, Dependent_Instances, Handler_Records,
+ 	Needs_Activation_Record, Original_Access_Type and
+ 	Register_Exception_Call.
+ 	* gen_il-gen-gen_entities.adb: Adjust accordingly.
+ 	* gen_il-gen-gen_nodes.adb: Likewise.
+ 	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Remove call
+ 	to Set_Original_Access_Type.
+ 	(Expand_N_Selective_Accept): Remove call to Set_Handler_Records.
+ 	* exp_ch11.adb (Expand_N_Exception_Declaration): Remove call to
+ 	Set_Register_Exception_Call.
+ 	* sem_ch3.adb (Access_Subprogram_Declaration): Remove call to
+ 	Set_Needs_Activation_Record.
+ 	* sem_ch12.adb (Instantiate_Package_Body): Remove call to
+ 	Set_Handler_Records.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_ch4.adb
+ 	(Find_Unary_Types): Because we reanalyze names in an instance,
+ 	we sometimes have to take steps to filter out extraneous name
+ 	resolution candidates that happen to be visible at the point of the
+ 	instance declaration. Remove some code that appears to have been
+ 	written with this in mind. This is done for two reasons. First, the
+ 	code sometimes doesn't work (possibly because the In_Instance test
+ 	is not specific enough - it probably should be testing to see whether
+ 	we are in an instance of the particular generic in which the result
+ 	of calling Corresponding_Generic_Type was declared) and causes correct
+ 	code to be rejected. Second, the code seems to no longer be necessary
+ 	(possibly because of subsequent fixes in this area which are not
+ 	specific to unary operators).
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* sem_ch8.adb (Premature_Usage): Remove dead code.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* einfo.ads (Size_Check_Code): Delete.
+ 	* gen_il-fields.ads (Opt_Field_Enum): Remove Size_Check_Code.
+ 	* gen_il-gen-gen_entities.adb (Constant_Or_Variable_Kind): Likewise.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove call
+ 	to Kill_Size_Check_Code.
+ 	* sem_prag.adb (Analyze_Pragma): Likewise.
+ 	* sem_util.ads (Kill_Size_Check_Code): Delete.
+ 	* sem_util.adb (Kill_Size_Check_Code): Likewise.
+ 
+ 2025-06-06  Claire Dross  <dross@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_SPARK_Subprogram_Specification):
+ 	Allow the first parameter of functions whose return type is
+ 	an anonymous access-to-variable type to have mode IN OUT.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* gen_il-fields.ads: New field.
+ 	* gen_il-gen-gen_entities.adb: New field.
+ 	* einfo.ads: Document new field.
+ 	* sem_res.adb (Check_Discriminant_Use): Record relevant uses in new
+ 	field. Move warning emission to...
+ 	* sem_ch3.adb (Analyze_Full_Type_Declaration): ... Here.
+ 
+ 2025-06-06  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_disp.adb
+ 	(Check_Dispatching_Operation): Delete code to generate
+ 	"missing overriding indicator" warning. Update comments.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb (Create_Standard): Delay declaration generation for
+ 	Natural and Positive.
+ 
+ 2025-06-06  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* cstand.adb (Create_Standard): Remove useless calls.
+ 
+ 2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Expand_Record_Aggregate): Use the named form for the
+ 	second actual parameter in the call to Duplicate_Subexpr.
+ 	* exp_attr.adb (Expand_Size_Attribute): Likewise.
+ 	* exp_ch5.adb (Expand_Assign_Array): Likewise.
+ 	(Expand_Assign_Array_Bitfield): Likewise.
+ 	(Expand_Assign_Array_Bitfield_Fast): Likewise.
+ 	* exp_util.ads (Duplicate_Subexpr): Add New_Scope formal parameter.
+ 	(Duplicate_Subexpr_No_Checks): Likewise.
+ 	(Duplicate_Subexpr_Move_Checks): Likewise.
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass Proc_Id as the
+ 	actual for New_Scope in the calls to Duplicate_Subexpr_No_Checks.
+ 	(Duplicate_Subexpr): Add New_Scope formal parameter and forward it
+ 	in the call to New_Copy_Tree.
+ 	(Duplicate_Subexpr_No_Checks): Likewise.
+ 	(Duplicate_Subexpr_Move_Checks): Likewise.
+ 
+ 2025-06-06  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* checks.adb (Insert_Valid_Check): Set flag Assignment_OK in the object
+ 	declaration inserted for the validity checks.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* sem_warn.adb
+ 	(Warn_On_Useless_Assignment): Disable out value "overwritten" warning
+ 	when we are not warning on unread out parameters (e.g. "-gnatw.o").
+ 
+ 2025-06-05  Tonu Naks  <naks@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb: null pointer check in Update
+ 
+ 2025-06-05  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* exp_util.adb, rtsfind.adb, rtsfind.ads, sem_prag.adb: Remove
+ 	references to RO_GH_Big_Integer and
+ 	Ada_Numerics_Big_Numbers_Big_Integers_Ghost.
+ 	* libgnat/a-strfix.adb, libgnat/a-strmap.adb,
+ 	libgnat/a-strsea.adb, libgnat/a-strsup.adb,
+ 	libgnat/i-c.ads, libgnat/i-c.adb, libgnat/s-aridou.adb,
+ 	libgnat/s-aridou.ads, libgnat/s-arit128.adb,
+ 	libgnat/s-arit128.ads, libgnat/s-arit32.adb,
+ 	libgnat/s-arit32.ads, libgnat/s-arit64.adb,
+ 	libgnat/s-arit64.ads, libgnat/s-casuti.adb,
+ 	libgnat/s-exnint.ads, libgnat/s-exnlli.ads,
+ 	libgnat/s-exnllli.ads, libgnat/s-expint.ads,
+ 	libgnat/s-explli.ads, libgnat/s-expllli.ads,
+ 	libgnat/s-explllu.ads, libgnat/s-expllu.ads,
+ 	libgnat/s-expmod.adb, libgnat/s-expmod.ads,
+ 	libgnat/s-exponn.adb, libgnat/s-exponn.ads,
+ 	libgnat/s-expont.adb, libgnat/s-expont.ads,
+ 	libgnat/s-exponu.adb, libgnat/s-exponu.ads,
+ 	libgnat/s-imaged.ads, libgnat/s-imaged.adb,
+ 	libgnat/s-expuns.ads, libgnat/s-imagef.ads,
+ 	libgnat/s-imagef.adb, libgnat/s-imagei.adb,
+ 	libgnat/s-imagei.ads, libgnat/s-imageu.adb,
+ 	libgnat/s-imageu.ads, libgnat/s-imgboo.adb,
+ 	libgnat/s-imde128.ads, libgnat/s-imde32.ads,
+ 	libgnat/s-imde64.ads, libgnat/s-imfi128.ads,
+ 	libgnat/s-imfi32.ads, libgnat/s-imfi64.ads,
+ 	libgnat/s-imgboo.ads, libgnat/s-imgint.ads,
+ 	libgnat/s-imglli.ads, libgnat/s-imgllli.ads,
+ 	libgnat/s-imglllu.ads, libgnat/s-imgllu.ads,
+ 	libgnat/s-imguns.ads, libgnat/s-valboo.adb,
+ 	libgnat/s-valboo.ads, libgnat/s-valint.ads,
+ 	libgnat/s-vallli.ads, libgnat/s-valllli.ads,
+ 	libgnat/s-vallllu.ads, libgnat/s-valllu.ads,
+ 	libgnat/s-valuns.ads, libgnat/s-valuti.adb,
+ 	libgnat/s-valuti.ads, libgnat/s-valuei.adb,
+ 	libgnat/s-valuei.ads, libgnat/s-valueu.ads,
+ 	libgnat/s-valueu.adb, libgnat/s-veboop.adb,
+ 	libgnat/s-veboop.ads, libgnat/s-widint.ads,
+ 	libgnat/s-widlli.ads, libgnat/s-widllli.ads,
+ 	libgnat/s-widlllu.ads, libgnat/s-widllu.ads,
+ 	libgnat/s-widthi.adb, libgnat/s-widthu.adb,
+ 	libgnat/s-widthu.ads, libgnat/s-widuns.ads: Remove ghost code
+ 	and SPARK annotations.
+ 	* libgnat/a-nbnbig.ads, libgnat/a-nbnbig.adb,
+ 	libgnat/s-spark.ads, libgnat/s-spcuop.adb,
+ 	libgnat/s-spcuop.ads, libgnat/s-vaispe.adb,
+ 	libgnat/s-vaispe.ads, libgnat/s-vauspe.adb,
+ 	libgnat/s-vauspe.ads, libgnat/s-vs_int.ads,
+ 	libgnat/s-vs_lli.ads, libgnat/s-vs_llu.ads,
+ 	libgnat/s-vs_uns.ads, libgnat/s-valspe.adb,
+ 	libgnat/s-valspe.ads, libgnat/s-vsllli.ads,
+ 	libgnat/s-vslllu.ads: Removed.
+ 	* Makefile.rtl: Update list of runtime units.
+ 	* gcc-interface/Make-lang.in: Remove object files.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* fname-uf.adb: Fix documentation comment.
+ 	(Get_Default_File_Name): Fix indices of default patterns.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* atree.ads (New_Copy, Relocate_Node): Tweak documentation comments.
+ 
+ 2025-06-05  Andres Toom  <toom@adacore.com>
+ 
+ 	* libgnat/a-nudira.ads: Activate SPARK mode and add missing
+ 	basic contracts. Mark the unit as always terminating.
+ 	* libgnat/a-nuflra.ads: Idem.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* exp_ch7.adb (Process_Object_Declaration): Avoid generating
+ 	duplicate names for master nodes.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* opt.ads: Remove useless variable.
+ 	* sem_ch9.adb (Analyze_Abort_Statement, Analyze_Accept_Alternative,
+ 	Analyze_Accept_Statement, Analyze_Asynchronous_Select,
+ 	Analyze_Conditional_Entry_Call, Analyze_Delay_Alternative,
+ 	Analyze_Delay_Relative, Analyze_Delay_Until, Analyze_Entry_Body,
+ 	Analyze_Entry_Body_Formal_Part, Analyze_Entry_Call_Alternative,
+ 	Analyze_Entry_Declaration, Analyze_Entry_Index_Specification,
+ 	Analyze_Protected_Body, Analyze_Protected_Definition,
+ 	Analyze_Protected_Type_Declaration, Analyze_Requeue,
+ 	Analyze_Selective_Accept, Analyze_Single_Protected_Declaration,
+ 	Analyze_Single_Task_Declaration, Analyze_Task_Body,
+ 	Analyze_Task_Definition, Analyze_Task_Type_Declaration,
+ 	Analyze_Terminate_Alternative, Analyze_Timed_Entry_Call,
+ 	Analyze_Triggering_Alternative): Remove useless assignments.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_util.adb
+ 	(Side_Effect_Free_Statements): Return False if the statement list
+ 	includes an explicit (i.e. Comes_From_Source) raise statement.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem_ch6.adb (Analyze_Expression_Function): Add missing check
+ 	on premature use of incomplete type.
+ 
+ 2025-06-05  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/s-arit32.adb: Add Ghost aspect to Lo.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_ch4.adb (Tagged_Membership): Fix for protected types.
+ 
+ 2025-06-05  Bob Duff  <duff@adacore.com>
+ 
+ 	* sem_eval.adb (Fold_Shift): If the Amount parameter is greater
+ 	than the size in bits, use the size. For example, if we are
+ 	shifting an Unsigned_8 value, then Amount => 1_000_001 gives the
+ 	same result as Amount => 8. This change avoids computing the value
+ 	of 2**1_000_000, which takes too long and uses too much memory.
+ 	Note that the computation we're talking about is a compile-time
+ 	computation. Minor cleanup. DRY.
+ 	* sem_eval.ads (Fold_Str, Fold_Uint, Fold_Ureal): Fold the
+ 	comments into one comment, because DRY. Remove useless
+ 	verbiage.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* exp_attr.adb (Interunit_Ref_OK): Tweak categorization of compilation
+ 	units.
+ 
+ 2025-06-05  Aleksandra Pasek  <pasek@adacore.com>
+ 
+ 	* libgnat/s-aridou.adb: Add missing Ghost aspect to
+ 	Lemma_Not_In_Range_Big2xx64.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/s-trasym__dwarf.adb (Init_Module): Add mitigation.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_aggr.adb (Build_Two_Pass_Aggr_Code): New function containing
+ 	most of the code initially present in Two_Pass_Aggregate_Expansion.
+ 	(Two_Pass_Aggregate_Expansion): Remove redundant N parameter.
+ 	Implement built-in-place expansion for (static) object declarations
+ 	and allocators, using Build_Two_Pass_Aggr_Code for the main work.
+ 	(Expand_Array_Aggregate): Adjust Two_Pass_Aggregate_Expansion call.
+ 	Replace Etype (N) by Typ in a couple of places.
+ 	* exp_ch3.adb (Expand_Freeze_Array_Type): Remove special case for
+ 	two-pass array aggregates.
+ 	(Expand_N_Object_Declaration): Do not adjust the object when it is
+ 	initialized by a two-pass array aggregate.
+ 	* exp_ch4.adb (Expand_Allocator_Expression): Apply the processing
+ 	used for container aggregates to two-pass array aggregates.
+ 	* exp_ch6.adb (Validate_Subprogram_Calls): Skip calls present in
+ 	initialization expressions of N_Object_Declaration nodes that have
+ 	No_Initialization set.
+ 	* sem_ch3.adb (Analyze_Object_Declaration): Detect the cases of an
+ 	array originally initialized by an aggregate consistently.
+ 
+ 2025-06-05  Johannes Kliemann  <kliemann@adacore.com>
+ 
+ 	* libgnat/s-arit32.adb (Lemma_Not_In_Range_Big2xx32): Add missing
+ 	Ghost aspect.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix
+ 	handling of preprocessing dependencies.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Update the
+ 	documentation for Valid_Value.
+ 	* sem_attr.adb (Analyze_Attribute): Reject types where
+ 	the root type originates from Standard.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Change call to Make_Assignment
+ 	for the indexed aggregate object to call Change_Make_OK_Assignment instead.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_prag.adb
+ 	(Analyze_Constituent): In the specific case case of a defined-too-late
+ 	abstract state constituent, generate an additional error message.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-sarif_emitter.adb (Print_Invocations): fix
+ 	commandLine and executionSuccessful nodes.
+ 	Fix typo in the name for startLine.
+ 	* osint.adb (Modified Get_Current_Dir) Fix generation of
+ 	the current directory.
+ 	(Relative_Path): Avoid relative paths starting with a
+ 	path separator.
+ 	* osint.ads: Update the documentation for Relative_Path.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (New_String): Fix size of allocation.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* sem_ch8.adb (Analyze_Package_Name): Add code to expand use
+ 	clauses such that they have an implicit with associated with them
+ 	when extensions are enabled.
+ 	* sem_ch10.ads (Analyze_With_Clause): New.
+ 	* sem_ch10.adb (Analyze_With_Clause): Add comes from source check
+ 	for warning.
+ 	(Expand_With_Clause): Moved to the spec.
+ 	* sem_util.adb, sem_util.ads
+ 	(Is_In_Context_Clause): Moved from sem_prag.
+ 	* sem_prag.adb (Analyze_Pragma): Update calls to
+ 	Is_In_Context_Clause.
+ 	(Is_In_Context_Clause): Moved to sem_util.
+ 
+ 2025-06-05  Piotr Trojanek  <trojanek@adacore.com>
+ 
+ 	* doc/gnat_ugn/platform_specific_information.rst
+ 	(Setting Stack Size from gnatlink): Improve documentation.
+ 	* gnat-style.texi: Regenerate.
+ 	* gnat_rm.texi: Regenerate.
+ 	* gnat_ugn.texi: Regenerate.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb (Check_Return_Construct_Accessibility):
+ 	Disable check generation when we are only checking semantics.
+ 	* opt.ads: Add new flag for -gnatc mode
+ 	* switch-c.adb (Scan_Front_End_Switches): Set flag for -gnatc mode
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_ch8.adb (Mark_Use_Type): Additionally mark the types
+ 	of the parameters and return values as used when analyzing an
+ 	operator.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch9.adb (Build_Dispatching_Requeue): Take 'Tag of the
+ 	concurrent object instead of doing an unchecked conversion.
+ 	* exp_pakd.adb (Expand_Packed_Address_Reference): Perform address
+ 	arithmetic using an operator of System.Storage_Elements.
+ 
+ 2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Actuals): Remove obsolete comment.
+ 	(Make_Build_In_Place_Call_In_Anonymous_Context): Always use a proper
+ 	object declaration initialized with the function call in the cases
+ 	where a temporary is needed, with Assignment_OK set on it.
+ 	* sem_util.adb (Entity_Of): Deal with rewritten function call first.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* libgnat/i-cstrin.adb (Position_Of_Nul): Change specification and
+ 	adjust body accordingly.
+ 	(New_Char_Array): Fix size of allocation.
+ 	(To_Chars_Ptr): Adapt to Position_Of_Nul change.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer): Fix
+ 	oracle generation.
+ 
+ 2025-06-05  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* generate_minimal_reproducer.adb (Generate_Minimal_Reproducer):
+ 	Fix when main library item is an instantiation.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* exp_attr.adb (Expand_N_Attribute_Reference): When accessing the
+ 	maps declared in package Cached_Attribute_Ops, the key value
+ 	passed to Get or to Set should never be the entity node for a
+ 	subtype. Use the entity of the corresponding type declaration
+ 	instead.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_res.adb (Resolve_Declare_Expression): Mark used
+ 	local variables inside a declare expression as referenced.
+ 
+ 2025-06-05  Javier Miranda  <miranda@adacore.com>
+ 
+ 	* sem.ads: Update reference to renamed subprogram in documentation.
+ 	* sem_ch3.ads (Preanalyze_Assert_Expression): Renamed.
+ 	(Preanalyze_Spec_Expression): Renamed.
+ 	* sem_ch3.adb (Preanalyze_Assert_Expression): Renamed and code cleanup.
+ 	(Preanalyze_Spec_Expression): Renamed.
+ 	(Preanalyze_Default_Expression): Renamed.
+ 	* contracts.adb: Update calls to renamed subprograms.
+ 	* exp_pakd.adb: Ditto.
+ 	* exp_util.adb: Ditto.
+ 	* freeze.adb: Ditto.
+ 	* sem_ch12.adb: Ditto.
+ 	* sem_ch13.adb: Ditto.
+ 	* sem_ch6.adb: Ditto.
+ 	* sem_prag.adb: Ditto.
+ 	* sem_res.adb (Preanalyze_And_Resolve): Add to the version without
+ 	context type the special handling for GNATprove mode provided by
+ 	the version with context type; required to cleanup the body of
+ 	Preanalyze_Assert_Expression.
+ 
+ 2025-06-05  squirek  <squirek@adacore.com>
+ 
+ 	* accessibility.adb
+ 	(Check_Return_Construct_Accessibility): Disable check generation
+ 	when we are only checking semantics.
+ 
+ 2025-06-05  Viljar Indus  <indus@adacore.com>
+ 
+ 	* diagnostics-json_utils.adb: Add new method To_File_Uri to
+ 	convert any path to the URI standard.
+ 	* diagnostics-json_utils.ads: Likewise.
+ 	* diagnostics-sarif_emitter.adb: Converted Artifact_Change
+ 	types to use the Source_File_Index instead of the file name
+ 	to store the source file.
+ 	Removed the body from Destroy (Elem : in out Artifact_Change)
+ 	since it no longer contained elements with dynamic memory.
+ 	Updated the implementation of Equals (L, R : Artifact_Change)
+ 	to take into account the changes for Artifact_Change.
+ 	Print_Artifact_Location: Use the Source_File_Index as an
+ 	input argument. Now prints the uriBaseId attribute and a
+ 	relative path from the uriBaseId to the file in question as
+ 	the value of the uri attribute.
+ 	New method Print_Original_Uri_Base_Ids to print the
+ 	originalUriBaseIds node.
+ 	Print_Run no prints the originalUriBaseIds node.
+ 	Use constants instead of strings for all the SARIF attributes.
+ 	* osint.adb: Add new method Relative_Path to calculate the
+ 	relative path from a base directory.
+ 	Add new method Root to calculate the root of each directory.
+ 	Add new method Get_Current_Dir to get the current working
+ 	directory for the execution environment.
+ 	* osint.ads: Likewise.
+ 	* clean.adb: Use full names for calls to Get_Current_Dir.
+ 	* gnatls.adb: Likewise.
+ 
+ 2025-06-05  Steve Baird  <baird@adacore.com>
+ 
+ 	* sem_res.adb
+ 	(Set_Mixed_Mode_Operand): If we are about to call Resolve
+ 	passing in Any_Fixed as the expected type, then instead pass in
+ 	the fixed point type of the other operand (i.e., B_Typ).
+ 
+ 2025-06-05  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_util.adb (Check_Function_Writable_Actuals): Add handling for
+ 	N_Iterated_Component_Association and N_Iterated_Element_Association.
+ 	Fix a typo in an RM reference (6.4.1(20/3) => 6.4.1(6.20/3)).
+ 	(Collect_Expression_Ids): New procedure factoring code for collecting
+ 	identifiers from expressions of aggregate associations.
+ 	(Handle_Association_Choices): New procedure factoring code for handling
+ 	id collection for expressions of aggregate associations with multiple
+ 	choices. Removed redundant test of Box_Present from original code.
+ 
+ 2025-05-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/Make-lang.in (ACATSDIR): Use acats-2 directory.
+ 
+ 2025-05-13  Nicolas Boulenguez  <nicolas@debian.org>
+ 
+ 	PR ada/87778
+ 	* Make-generated.in: Remove -q gnatmake option.
+ 	* gcc-interface/Makefile.in: Likewise.
+ 
+ 2025-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/120104
+ 	* exp_ch3.adb (Expand_Freeze_Record_Type): For a controlled tagged
+ 	type, freeze only the controlled primitives that are present.
+ 
+ 2025-04-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112958
+ 	* Makefile.rtl (LIBGNAT_TARGET_PAIRS) [x86 FreeBSD]: Add specific
+ 	version of s-dorepr.adb.
+ 	* libgnat/s-dorepr__freebsd.adb: New file.
+ 
+ 2025-04-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/112958
+ 	* init.c (__gnat_error_handler) [__FreeBSD__]: Fix typo.
+ 
+ 2025-04-27  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR middle-end/112877
+ 	* gcc-interface/utils.cc (create_param_decl): Remove the
+ 	targetm.calls.promote_prototypes call.
+ 
+ 2025-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gnatvsn.ads: Bump Library_Version to 16.
+ 
+ 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
+ notice and this notice are preserved.
diff -Nrcpad gcc-15.2.0/gcc/ada/Make-generated.in gcc-16.1.0-RC-20260423/gcc/ada/Make-generated.in
*** gcc-15.2.0/gcc/ada/Make-generated.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/Make-generated.in	Thu Apr 23 11:07:32 2026
***************
*** 1,14 ****
! # Dependencies for compiler sources that are generated at build time
! 
! # Note: can't use ?= here, not supported by older versions of GNU Make
! 
! ifeq ($(origin CP), undefined)
! CP=cp
! endif
  
! ifeq ($(origin MKDIR), undefined)
! MKDIR=mkdir -p
! endif
  
  fsrcdir := $(shell cd $(srcdir);${PWD_COMMAND})
  
--- 1,6 ----
! GNATMAKE_FOR_BUILD = gnatmake
  
! # Dependencies for compiler sources that are generated at build time
  
  fsrcdir := $(shell cd $(srcdir);${PWD_COMMAND})
  
*************** GEN_IL_FLAGS = -gnata -gnat2012 -gnatw.g
*** 18,24 ****
  ada/seinfo_tables.ads ada/seinfo_tables.adb ada/sinfo.h ada/einfo.h ada/nmake.ads ada/nmake.adb ada/seinfo.ads ada/sinfo-nodes.ads ada/sinfo-nodes.adb ada/einfo-entities.ads ada/einfo-entities.adb: ada/stamp-gen_il ; @true
  ada/stamp-gen_il: $(fsrcdir)/ada/gen_il*
  	$(MKDIR) ada/gen_il
! 	cd ada/gen_il; gnatmake -q -g $(GEN_IL_FLAGS) gen_il-main
  	# Ignore errors to work around finalization issues in older compilers
  	- cd ada/gen_il; ./gen_il-main
  	$(fsrcdir)/../move-if-change ada/gen_il/seinfo_tables.ads ada/seinfo_tables.ads
--- 10,16 ----
  ada/seinfo_tables.ads ada/seinfo_tables.adb ada/sinfo.h ada/einfo.h ada/nmake.ads ada/nmake.adb ada/seinfo.ads ada/sinfo-nodes.ads ada/sinfo-nodes.adb ada/einfo-entities.ads ada/einfo-entities.adb: ada/stamp-gen_il ; @true
  ada/stamp-gen_il: $(fsrcdir)/ada/gen_il*
  	$(MKDIR) ada/gen_il
! 	cd ada/gen_il; $(GNATMAKE_FOR_BUILD) $(GEN_IL_FLAGS) gen_il-main
  	# Ignore errors to work around finalization issues in older compilers
  	- cd ada/gen_il; ./gen_il-main
  	$(fsrcdir)/../move-if-change ada/gen_il/seinfo_tables.ads ada/seinfo_tables.ads
*************** ada/stamp-gen_il: $(fsrcdir)/ada/gen_il*
*** 39,52 ****
  # would cause bootstrapping with older compilers to fail. You can call it by
  # hand, as a sanity check that these files are legal.
  ada/seinfo_tables.o: ada/seinfo_tables.ads ada/seinfo_tables.adb
! 	cd ada ; gnatmake $(GEN_IL_INCLUDES) seinfo_tables.adb -gnatU -gnatX
  
  ada/snames.h ada/snames.ads ada/snames.adb : ada/stamp-snames ; @true
  ada/stamp-snames : ada/snames.ads-tmpl ada/snames.adb-tmpl ada/snames.h-tmpl ada/xsnamest.adb ada/xutil.ads ada/xutil.adb
  	-$(MKDIR) ada/bldtools/snamest
  	$(RM) $(addprefix ada/bldtools/snamest/,$(notdir $^))
  	$(CP) $^ ada/bldtools/snamest
! 	cd ada/bldtools/snamest && gnatmake -q xsnamest && ./xsnamest
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.ns ada/snames.ads
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nb ada/snames.adb
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nh ada/snames.h
--- 31,44 ----
  # would cause bootstrapping with older compilers to fail. You can call it by
  # hand, as a sanity check that these files are legal.
  ada/seinfo_tables.o: ada/seinfo_tables.ads ada/seinfo_tables.adb
! 	cd ada ; $(GNATMAKE_FOR_BUILD) $(GEN_IL_INCLUDES) seinfo_tables.adb -gnatX
  
  ada/snames.h ada/snames.ads ada/snames.adb : ada/stamp-snames ; @true
  ada/stamp-snames : ada/snames.ads-tmpl ada/snames.adb-tmpl ada/snames.h-tmpl ada/xsnamest.adb ada/xutil.ads ada/xutil.adb
  	-$(MKDIR) ada/bldtools/snamest
  	$(RM) $(addprefix ada/bldtools/snamest/,$(notdir $^))
  	$(CP) $^ ada/bldtools/snamest
! 	cd ada/bldtools/snamest && $(GNATMAKE_FOR_BUILD) xsnamest && ./xsnamest
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.ns ada/snames.ads
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nb ada/snames.adb
  	$(fsrcdir)/../move-if-change ada/bldtools/snamest/snames.nh ada/snames.h
diff -Nrcpad gcc-15.2.0/gcc/ada/Makefile.rtl gcc-16.1.0-RC-20260423/gcc/ada/Makefile.rtl
*** gcc-15.2.0/gcc/ada/Makefile.rtl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/Makefile.rtl	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2025, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile.rtl for GNU Ada Compiler (GNAT).
! #   Copyright (C) 2003-2026, Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** GNATRTL_NONTASKING_OBJS= \
*** 110,115 ****
--- 110,116 ----
    a-cbdlli$(objext) \
    a-cbhama$(objext) \
    a-cbhase$(objext) \
+   a-cbinho$(objext) \
    a-cbmutr$(objext) \
    a-cborma$(objext) \
    a-cborse$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 211,217 ****
    a-nallfl$(objext) \
    a-nalofl$(objext) \
    a-nashfl$(objext) \
-   a-nbnbig$(objext) \
    a-nbnbin$(objext) \
    a-nbnbre$(objext) \
    a-ncelfu$(objext) \
--- 212,217 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 416,421 ****
--- 416,422 ----
    g-busorg$(objext) \
    g-byorma$(objext) \
    g-bytswa$(objext) \
+   g-c_time$(objext) \
    g-calend$(objext) \
    g-casuti$(objext) \
    g-catiio$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 536,541 ****
--- 537,543 ----
    s-boarop$(objext) \
    s-boustr$(objext) \
    s-bytswa$(objext) \
+   s-c_time$(objext) \
    s-carsi8$(objext) \
    s-carun8$(objext) \
    s-casi16$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 545,550 ****
--- 547,553 ----
    s-caun16$(objext) \
    s-caun32$(objext) \
    s-caun64$(objext) \
+   s-cautns$(objext) \
    s-chepoo$(objext) \
    s-commun$(objext) \
    s-conca2$(objext) \
*************** GNATRTL_NONTASKING_OBJS= \
*** 745,752 ****
    s-shasto$(objext) \
    s-soflin$(objext) \
    s-soliin$(objext) \
-   s-spark$(objext) \
-   s-spcuop$(objext) \
    s-spsufi$(objext) \
    s-stache$(objext) \
    s-stalib$(objext) \
--- 748,753 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 772,778 ****
    s-vaenu8$(objext) \
    s-vafi32$(objext) \
    s-vafi64$(objext) \
-   s-vaispe$(objext) \
    s-valboo$(objext) \
    s-valcha$(objext) \
    s-valflt$(objext) \
--- 773,778 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 782,788 ****
    s-vallli$(objext) \
    s-valllu$(objext) \
    s-valrea$(objext) \
-   s-valspe$(objext) \
    s-valued$(objext) \
    s-valuef$(objext) \
    s-valuei$(objext) \
--- 782,787 ----
*************** GNATRTL_NONTASKING_OBJS= \
*** 792,805 ****
    s-valuns$(objext) \
    s-valuti$(objext) \
    s-valwch$(objext) \
-   s-vauspe$(objext) \
    s-veboop$(objext) \
    s-vector$(objext) \
    s-vercon$(objext) \
-   s-vs_int$(objext) \
-   s-vs_lli$(objext) \
-   s-vs_llu$(objext) \
-   s-vs_uns$(objext) \
    s-wchcnv$(objext) \
    s-wchcon$(objext) \
    s-wchjis$(objext) \
--- 791,799 ----
*************** GNATRTL_128BIT_OBJS = \
*** 1046,1053 ****
    s-vafi128$(objext) \
    s-valllli$(objext) \
    s-vallllu$(objext) \
-   s-vsllli$(objext) \
-   s-vslllu$(objext) \
    s-widllli$(objext) \
    s-widlllu$(objext)
  
--- 1040,1045 ----
*************** ifeq ($(SELECTED_PAIRS),PAIRS_NONE)
*** 1419,1442 ****
  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
  
    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
--- 1411,1441 ----
  ifeq ($(strip $(filter-out arm% aarch64 linux-android%,$(target_cpu) $(target_os))),)
  
    LIBGNAT_TARGET_PAIRS = \
+   a-exetim.adb<libgnarl/a-exetim__posix.adb \
+   a-exetim.ads<libgnarl/a-exetim__default.ads \
    a-intnam.ads<libgnarl/a-intnam__linux.ads \
+   a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
+   a-synbar.adb<libgnarl/a-synbar__posix.adb \
+   a-synbar.ads<libgnarl/a-synbar__posix.ads \
+   s-dorepr.adb<libgnat/s-dorepr__fma.adb \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__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-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 \
    $(ATOMICS_TARGET_PAIRS) \
    $(ATOMICS_BUILTINS_TARGET_PAIRS) \
    system.ads<libgnat/system-linux-arm.ads
  
    TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
  
!   EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
  
    # ARM and aarch64 rely on different unwinding mechanisms, and as
    # a 64bit target, aarch64 can also incorporate support for 128bit
*************** ifeq ($(strip $(filter-out sparc% sun so
*** 1534,1540 ****
    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 \
    s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
--- 1533,1539 ----
    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__unix.adb \
    s-taprop.adb<libgnarl/s-taprop__solaris.adb \
    s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
    s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
*************** ifeq ($(strip $(filter-out %86 %x86_64 s
*** 1583,1589 ****
    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 \
    s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
--- 1582,1588 ----
    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__unix.adb \
    s-taprop.adb<libgnarl/s-taprop__solaris.adb \
    s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
    s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
*************** ifeq ($(strip $(filter-out %aarch64 free
*** 1857,1862 ****
--- 1856,1862 ----
      LIBGNAT_TARGET_PAIRS += \
      s-intman.adb<libgnarl/s-intman__cheribsd.adb \
      s-osinte.ads<libgnarl/s-osinte__cheribsd.ads \
+     s-tsgsba.adb<libgnarl/s-tsgsba__cheri.adb \
      s-secsta.adb<libgnat/s-secsta__cheri.adb
  
      EXTRA_GNATRTL_NONTASKING_OBJS += i-cheri.o i-cheri-exceptions.o
*************** ifeq ($(strip $(filter-out s390% linux%,
*** 2036,2041 ****
--- 2036,2042 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-gcc
    THREADSLIB = -lpthread
+   MISCLIB = -ldl
    GNATLIB_SHARED = gnatlib-shared-dual
    LIBRARY_VERSION := $(LIB_VERSION)
  endif
*************** ifeq ($(strip $(filter-out lynxos178%,$(
*** 2148,2154 ****
  
    ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
      LIBGNAT_TARGET_PAIRS += \
-     s-parame.ads<libgnat/s-parame__posix2008.ads \
      s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
      s-osprim.adb<libgnat/s-osprim__posix2008.adb \
      s-tracon.adb<hie/s-tracon__ppc-eabi.adb
--- 2149,2154 ----
*************** ifeq ($(strip $(filter-out rtems%,$(targ
*** 2175,2181 ****
    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 \
    s-taprop.adb<libgnarl/s-taprop__rtems.adb \
    s-taspri.ads<libgnarl/s-taspri__posix.ads \
    s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
--- 2175,2180 ----
*************** ifeq ($(strip $(filter-out cygwin% mingw
*** 2263,2268 ****
--- 2262,2268 ----
    endif
    LIBGNAT_TARGET_PAIRS += \
    a-dirval.adb<libgnat/a-dirval__mingw.adb \
+   s-crtl.adb<libgnat/s-crtl__mingw.adb \
    s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
    s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
    s-taspri.ads<libgnarl/s-taspri__mingw.ads \
*************** ifeq ($(strip $(filter-out arm% linux-gn
*** 2530,2535 ****
--- 2530,2536 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
    EH_MECHANISM=-arm
    THREADSLIB = -lpthread
+   MISCLIB = -ldl
    GNATLIB_SHARED = gnatlib-shared-dual
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
*************** ifeq ($(strip $(filter-out %x32 linux%,$
*** 2943,2955 ****
    a-synbar.ads<libgnarl/a-synbar__posix.ads \
    s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
    s-intman.adb<libgnarl/s-intman__posix.adb \
-   s-linux.ads<libgnarl/s-linux__x32.ads \
    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 \
    s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
    s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
--- 2944,2954 ----
    a-synbar.ads<libgnarl/a-synbar__posix.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.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 \
*************** ifeq ($(strip $(filter-out %x32 linux%,$
*** 2971,2976 ****
--- 2970,2976 ----
    EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
    EH_MECHANISM=-gcc
    THREADSLIB=-lpthread -lrt
+   MISCLIB = -ldl
    GNATLIB_SHARED=gnatlib-shared-dual
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
*************** ifeq ($(strip $(filter-out darwin%,$(tar
*** 3040,3046 ****
      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 \
--- 3040,3046 ----
      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__darwin.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 \
*************** LIBGNAT_TARGET_PAIRS += \
*** 3196,3202 ****
  # library.  LIBGNAT_OBJS is the list of object files for libgnat.
  # thread.c is special as put into GNATRTL_TASKING_OBJS
  LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o 			\
!   cal.o cio.o cstreams.o ctrl_c.o					\
    env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o		\
    init.o initialize.o locales.o mkdir.o					\
    raise.o seh_init.o socket.o sysdep.o					\
--- 3196,3202 ----
  # library.  LIBGNAT_OBJS is the list of object files for libgnat.
  # thread.c is special as put into GNATRTL_TASKING_OBJS
  LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o 			\
!   cio.o cstreams.o ctrl_c.o						\
    env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o		\
    init.o initialize.o locales.o mkdir.o					\
    raise.o seh_init.o socket.o sysdep.o					\
*************** ADA_EXCLUDE_SRCS =\
*** 3246,3253 ****
    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 \
    s-qnx.ads \
  
  # ADA_EXCLUDE_SRCS without the sources used by the target
  ADA_EXCLUDE_FILES=$(filter-out \
--- 3246,3337 ----
    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.ads s-strcom.adb \
!   s-thread.ads \
    s-qnx.ads \
+   s-arit128.ads s-arit128.adb \
+   s-casi128.ads s-casi128.adb \
+   s-caun128.ads s-caun128.adb \
+   s-exnllli.ads \
+   s-expllli.ads \
+   s-explllu.ads \
+   s-fode128.ads \
+   s-fofi128.ads \
+   s-imde128.ads \
+   s-imfi128.ads \
+   s-imglllb.ads \
+   s-imgllli.ads \
+   s-imglllu.ads \
+   s-imglllw.ads \
+   s-pack65.ads s-pack65.adb \
+   s-pack66.ads s-pack66.adb \
+   s-pack67.ads s-pack67.adb \
+   s-pack68.ads s-pack68.adb \
+   s-pack69.ads s-pack69.adb \
+   s-pack70.ads s-pack70.adb \
+   s-pack71.ads s-pack71.adb \
+   s-pack72.ads s-pack72.adb \
+   s-pack73.ads s-pack73.adb \
+   s-pack74.ads s-pack74.adb \
+   s-pack75.ads s-pack75.adb \
+   s-pack76.ads s-pack76.adb \
+   s-pack77.ads s-pack77.adb \
+   s-pack78.ads s-pack78.adb \
+   s-pack79.ads s-pack79.adb \
+   s-pack80.ads s-pack80.adb \
+   s-pack81.ads s-pack81.adb \
+   s-pack82.ads s-pack82.adb \
+   s-pack83.ads s-pack83.adb \
+   s-pack84.ads s-pack84.adb \
+   s-pack85.ads s-pack85.adb \
+   s-pack86.ads s-pack86.adb \
+   s-pack87.ads s-pack87.adb \
+   s-pack88.ads s-pack88.adb \
+   s-pack89.ads s-pack89.adb \
+   s-pack90.ads s-pack90.adb \
+   s-pack91.ads s-pack91.adb \
+   s-pack92.ads s-pack92.adb \
+   s-pack93.ads s-pack93.adb \
+   s-pack94.ads s-pack94.adb \
+   s-pack95.ads s-pack95.adb \
+   s-pack96.ads s-pack96.adb \
+   s-pack97.ads s-pack97.adb \
+   s-pack98.ads s-pack98.adb \
+   s-pack99.ads s-pack99.adb \
+   s-pack100.ads s-pack100.adb \
+   s-pack101.ads s-pack101.adb \
+   s-pack102.ads s-pack102.adb \
+   s-pack103.ads s-pack103.adb \
+   s-pack104.ads s-pack104.adb \
+   s-pack105.ads s-pack105.adb \
+   s-pack106.ads s-pack106.adb \
+   s-pack107.ads s-pack107.adb \
+   s-pack108.ads s-pack108.adb \
+   s-pack109.ads s-pack109.adb \
+   s-pack110.ads s-pack110.adb \
+   s-pack111.ads s-pack111.adb \
+   s-pack112.ads s-pack112.adb \
+   s-pack113.ads s-pack113.adb \
+   s-pack114.ads s-pack114.adb \
+   s-pack115.ads s-pack115.adb \
+   s-pack116.ads s-pack116.adb \
+   s-pack117.ads s-pack117.adb \
+   s-pack118.ads s-pack118.adb \
+   s-pack119.ads s-pack119.adb \
+   s-pack120.ads s-pack120.adb \
+   s-pack121.ads s-pack121.adb \
+   s-pack122.ads s-pack122.adb \
+   s-pack123.ads s-pack123.adb \
+   s-pack124.ads s-pack124.adb \
+   s-pack125.ads s-pack125.adb \
+   s-pack126.ads s-pack126.adb \
+   s-pack127.ads s-pack127.adb \
+   s-vade128.ads \
+   s-vafi128.ads \
+   s-valllli.ads \
+   s-vallllu.ads \
+   s-widllli.ads \
+   s-widlllu.ads
  
  # ADA_EXCLUDE_SRCS without the sources used by the target
  ADA_EXCLUDE_FILES=$(filter-out \
diff -Nrcpad gcc-15.2.0/gcc/ada/accessibility.adb gcc-16.1.0-RC-20260423/gcc/ada/accessibility.adb
*** gcc-15.2.0/gcc/ada/accessibility.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/accessibility.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2022-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Elists;         use Elists;
  with Errout;         use Errout;
--- 26,31 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 46,52 ****
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 45,50 ----
*************** package body Accessibility is
*** 66,75 ****
  
     begin
        --  In an instance, this is a runtime check, but one we know will fail,
!       --  so generate an appropriate warning.
  
        if In_Instance_Body then
!          Error_Msg_Warn := SPARK_Mode /= On;
           Error_Msg_F
             ("non-local pointer cannot point to local object<<", P);
           Error_Msg_F ("\Program_Error [<<", P);
--- 64,76 ----
  
     begin
        --  In an instance, this is a runtime check, but one we know will fail,
!       --  so generate an appropriate warning. As usual, this kind of warning
!       --  is an error in SPARK mode or if No_Dynamic_Accessibility_Checks.
  
        if In_Instance_Body then
!          Error_Msg_Warn := SPARK_Mode /= On
!                              and then not
!                                No_Dynamic_Accessibility_Checks_Enabled (P);
           Error_Msg_F
             ("non-local pointer cannot point to local object<<", P);
           Error_Msg_F ("\Program_Error [<<", P);
*************** package body Accessibility is
*** 154,160 ****
        begin
           --  Locate the nearest enclosing node (by traversing Parents)
           --  that Defining_Entity can be applied to, and return the
!          --  depth of that entity's nearest enclosing scope.
  
           --  The RM 7.6.1(3) definition of "master" includes statements
           --  and conditions for loops among other things. Are these cases
--- 155,161 ----
        begin
           --  Locate the nearest enclosing node (by traversing Parents)
           --  that Defining_Entity can be applied to, and return the
!          --  depth of that entity's nearest enclosing dynamic scope.
  
           --  The RM 7.6.1(3) definition of "master" includes statements
           --  and conditions for loops among other things. Are these cases
*************** package body Accessibility is
*** 164,182 ****
              Ent := Defining_Entity_Or_Empty (Node_Par);
  
              if Present (Ent) then
!                --  X'Old is nested within the current subprogram, so we do not
!                --  want Find_Enclosing_Scope of that subprogram. If this is an
!                --  allocator, then we're looking for the innermost master of
!                --  the call, so again we do not want Find_Enclosing_Scope.
! 
!                if (Nkind (N) = N_Attribute_Reference
!                     and then Attribute_Name (N) = Name_Old)
!                  or else Nkind (N) = N_Allocator
!                then
!                   Encl_Scop := Ent;
!                else
!                   Encl_Scop := Find_Enclosing_Scope (Ent);
!                end if;
  
                 --  Ignore transient scopes made during expansion while also
                 --  taking into account certain expansions - like iterators
--- 165,171 ----
              Ent := Defining_Entity_Or_Empty (Node_Par);
  
              if Present (Ent) then
!                Encl_Scop := Nearest_Dynamic_Scope (Ent);
  
                 --  Ignore transient scopes made during expansion while also
                 --  taking into account certain expansions - like iterators
*************** package body Accessibility is
*** 219,227 ****
              then
                 return Scope_Depth (Enclosing_Subprogram (Node_Par));
  
!             --  Statements are counted as masters
  
!             elsif Is_Master (Node_Par) then
                 Master_Lvl_Modifier := Master_Lvl_Modifier + 1;
  
              end if;
--- 208,220 ----
              then
                 return Scope_Depth (Enclosing_Subprogram (Node_Par));
  
!             --  Non-package bodies and statements are counted as masters
  
!             elsif Nkind (Node_Par) in N_Entry_Body
!                                     | N_Subprogram_Body
!                                     | N_Task_Body
!               or else Is_Statement (Node_Par)
!             then
                 Master_Lvl_Modifier := Master_Lvl_Modifier + 1;
  
              end if;
*************** package body Accessibility is
*** 253,294 ****
        --------------------------------------
  
        function Function_Call_Or_Allocator_Level (N : Node_Id) return Node_Id is
!          Par      : Node_Id;
!          Prev_Par : Node_Id;
!       begin
!          --  Results of functions are objects, so we either get the
!          --  accessibility of the function or, in case of a call which is
!          --  indirect, the level of the access-to-subprogram type.
  
!          --  This code looks wrong ???
  
           if Nkind (N) = N_Function_Call
             and then Ada_Version < Ada_2005
           then
!             if Is_Entity_Name (Name (N)) then
                 return Make_Level_Literal
                          (Subprogram_Access_Level (Entity (Name (N))));
!             else
                 return Make_Level_Literal
                          (Typ_Access_Level (Etype (Prefix (Name (N)))));
              end if;
  
           --  We ignore coextensions as they cannot be implemented under the
!          --  "small-integer" model.
  
           elsif Nkind (N) = N_Allocator
             and then (Is_Static_Coextension (N)
                        or else Is_Dynamic_Coextension (N))
           then
              return Make_Level_Literal (Scope_Depth (Standard_Standard));
-          end if;
  
!          --  Named access types have a designated level
  
!          if Is_Named_Access_Type (Etype (N)) then
              return Make_Level_Literal (Typ_Access_Level (Etype (N)));
  
!          --  Otherwise, the level is dictated by RM 3.10.2 (10.7/3)
  
           else
              --  Check No_Dynamic_Accessibility_Checks restriction override for
--- 246,299 ----
        --------------------------------------
  
        function Function_Call_Or_Allocator_Level (N : Node_Id) return Node_Id is
!          Prev_Par : Node_Id := Expr;
!          Par      : Node_Id := Parent (Expr);
!          --  Par and Prev_Par will be used for traversing the AST, while
!          --  maintaining an invariant that Par = Parent (Prev_Par).
  
!       begin
!          --  First deal with function calls in Ada 95
  
           if Nkind (N) = N_Function_Call
             and then Ada_Version < Ada_2005
           then
!             --  With a return by reference, we either get the accessibility of
!             --  the function or, in case of an indirect call, the accessibility
!             --  level of the access-to-subprogram type.
! 
!             if Is_Entity_Name (Name (N))
!               and then Is_Inherently_Limited_Type (Etype (N))
!             then
                 return Make_Level_Literal
                          (Subprogram_Access_Level (Entity (Name (N))));
! 
!             elsif Nkind (Name (N)) = N_Explicit_Dereference
!               and then Is_Inherently_Limited_Type (Etype (N))
!             then
                 return Make_Level_Literal
                          (Typ_Access_Level (Etype (Prefix (Name (N)))));
+ 
+             --  Otherwise the accessibility level of the innermost master
+ 
+             else
+                return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
              end if;
  
           --  We ignore coextensions as they cannot be implemented under the
!          --  "small integer" model.
  
           elsif Nkind (N) = N_Allocator
             and then (Is_Static_Coextension (N)
                        or else Is_Dynamic_Coextension (N))
           then
              return Make_Level_Literal (Scope_Depth (Standard_Standard));
  
!          --  Objects of a named access type get their level from their type
  
!          elsif Is_Named_Access_Type (Etype (N)) then
              return Make_Level_Literal (Typ_Access_Level (Etype (N)));
  
!          --  Function calls in Ada 2005 and later, and anonymous allocators
  
           else
              --  Check No_Dynamic_Accessibility_Checks restriction override for
*************** package body Accessibility is
*** 305,407 ****
                    return Make_Level_Literal (Typ_Access_Level (Etype (N)));
  
                 --  For function calls the level is that of the innermost
!                --  master, otherwise (for allocators etc.) we get the level
!                --  of the corresponding anonymous access type, which is
                 --  calculated through the normal path of execution.
  
                 elsif Nkind (N) = N_Function_Call then
!                   return Make_Level_Literal
!                            (Innermost_Master_Scope_Depth (Expr));
                 end if;
              end if;
  
!             if Nkind (N) = N_Function_Call then
!                --  Dynamic checks are generated when we are within a return
!                --  value or we are in a function call within an anonymous
!                --  access discriminant constraint of a return object (signified
!                --  by In_Return_Context) on the side of the callee.
! 
!                --  So, in this case, return accessibility level of the
!                --  enclosing subprogram.
  
!                if In_Return_Value (N)
!                  or else In_Return_Context
!                then
!                   return Make_Level_Literal
!                            (Subprogram_Access_Level (Current_Subprogram));
!                end if;
              end if;
  
!             --  When the call is being dereferenced the level is that of the
!             --  enclosing master of the dereferenced call.
  
!             if Nkind (Parent (N)) in N_Explicit_Dereference
!                                    | N_Indexed_Component
!                                    | N_Selected_Component
              then
!                return Make_Level_Literal
!                         (Innermost_Master_Scope_Depth (Expr));
!             end if;
  
!             --  Find any relevant enclosing parent nodes that designate an
!             --  object being initialized.
  
!             --  Note: The above is only relevant if the result is used "in its
!             --  entirety" as RM 3.10.2 (10.2/3) states. However, this is
!             --  accounted for in the case statement in the main body of
!             --  Accessibility_Level for N_Selected_Component.
  
-             Par      := Parent (Expr);
-             Prev_Par := Empty;
              while Present (Par) loop
-                --  Detect an expanded implicit conversion, typically this
-                --  occurs on implicitly converted actuals in calls.
  
!                --  Does this catch all implicit conversions ???
  
!                if Nkind (Par) = N_Type_Conversion
!                  and then Is_Named_Access_Type (Etype (Par))
!                then
!                   return Make_Level_Literal
!                            (Typ_Access_Level (Etype (Par)));
!                end if;
  
!                --  Jump out when we hit an object declaration or the right-hand
!                --  side of an assignment, or a construct such as an aggregate
!                --  subtype indication which would be the result is not used
!                --  "in its entirety."
  
!                exit when Nkind (Par) in N_Object_Declaration
!                            or else (Nkind (Par) = N_Assignment_Statement
!                                      and then Name (Par) /= Prev_Par);
  
!                Prev_Par := Par;
!                Par      := Parent (Par);
!             end loop;
  
!             --  Assignment statements are handled in a similar way in
!             --  accordance to the left-hand part. However, strictly speaking,
!             --  this is illegal according to the RM, but this change is needed
!             --  to pass an ACATS C-test and is useful in general ???
  
!             case Nkind (Par) is
!                when N_Object_Declaration =>
!                   return Make_Level_Literal
!                            (Scope_Depth
!                              (Scope (Defining_Identifier (Par))));
  
!                when N_Assignment_Statement =>
!                   --  Return the accessibility level of the left-hand part
  
!                   return Accessibility_Level
!                            (Expr              => Name (Par),
!                             Level             => Object_Decl_Level,
!                             In_Return_Context => In_Return_Context);
  
!                when others =>
!                   return Make_Level_Literal
!                            (Innermost_Master_Scope_Depth (Expr));
!             end case;
           end if;
        end Function_Call_Or_Allocator_Level;
  
--- 310,462 ----
                    return Make_Level_Literal (Typ_Access_Level (Etype (N)));
  
                 --  For function calls the level is that of the innermost
!                --  master; otherwise, for allocators we get the level of
!                --  the corresponding anonymous access type, which is
                 --  calculated through the normal path of execution.
  
                 elsif Nkind (N) = N_Function_Call then
!                   return
!                     Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
                 end if;
              end if;
  
!             --  AI12-0402: The master of the function call for a function
!             --  whose result type is a scalar type is always the innermost
!             --  master invoking the function.
  
!             if Ada_Version >= Ada_2022
!               and then Nkind (N) = N_Function_Call
!               and then Is_Scalar_Type (Etype (N))
!             then
!                return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
              end if;
  
!             --  Dynamic checks are generated when we are within a return
!             --  value or we are in a function call within an anonymous
!             --  access discriminant constraint of a return object (signified
!             --  by In_Return_Context) on the side of the callee.
  
!             if Nkind (N) = N_Function_Call
!               and then (In_Return_Value (N) or else In_Return_Context)
              then
!                declare
!                   Extra_Formal : constant Entity_Id :=
!                     Extra_Accessibility_Of_Result (Current_Subprogram);
  
!                begin
!                   --  If a function is passed an extra "level of the
!                   --  master of the call" parameter and that function
!                   --  returns a call to another such function (or
!                   --  possibly to the same function, in the case of a
!                   --  recursive call), then that parameter should be
!                   --  "passed along".
  
!                   if Present (Extra_Formal) and then Level = Dynamic_Level then
!                      return New_Occurrence_Of (Extra_Formal, Loc);
! 
!                   --  Otherwise, return accessibility level of the enclosing
!                   --  subprogram.
! 
!                   else
!                      return Make_Level_Literal
!                               (Subprogram_Access_Level (Current_Subprogram));
!                   end if;
!                end;
!             end if;
! 
!             --  Find any relevant parent nodes that designate an object being
!             --  initialized and stop when there is an inappropriate construct.
  
              while Present (Par) loop
  
!                case Nkind (Par) is
  
!                   --  RM 3.10.2 (10.2/5) is relevant only if the result is used
!                   --  to "directly initialize" the object.
  
!                   when N_Explicit_Dereference | N_Function_Call | N_Op =>
!                      exit;
  
!                   --  RM 3.10.2 (10.2/5) is relevant only if the result is used
!                   --  "in its entirety".
  
!                   when N_Indexed_Component | N_Selected_Component | N_Slice =>
!                      exit;
  
!                   --  Accept operative constituents
  
!                   when N_Case_Expression =>
!                      exit when Prev_Par = Expression (Par);
  
!                   when N_If_Expression =>
!                      exit when Prev_Par = First (Expressions (Par));
  
!                   when N_Case_Expression_Alternative
!                      | N_Qualified_Expression
!                      | N_Unchecked_Type_Conversion
!                   =>
!                      null;
  
!                   --  Detect an expanded implicit conversion, typically this
!                   --  occurs on implicitly converted actuals in calls.
! 
!                   --  Does this catch all implicit conversions ???
! 
!                   when N_Type_Conversion  =>
!                      if Is_Named_Access_Type (Etype (Par)) then
!                         return
!                           Make_Level_Literal (Typ_Access_Level (Etype (Par)));
!                      end if;
! 
!                   --  For the (static) declaration of an object, return the
!                   --  accessibility level of the master of the object.
! 
!                   when N_Object_Declaration =>
!                      return
!                        Make_Level_Literal
!                          (Scope_Depth (Scope (Defining_Identifier (Par))));
! 
!                   --  For the dynamic allocation of an object, return the
!                   --  accessibility level of the allocator.
! 
!                   when N_Allocator =>
!                      return Accessibility_Level (Par);
! 
!                   --  RM 3.10.2(10.3/5): If the result is of an anonymous
!                   --  access type and is converted to a (named or anonymous)
!                   --  access type, the master is determined following the
!                   --  rules given for determining the master of an object
!                   --  created by an allocator.
! 
!                   --  The conversion can be an implicit subtype conversion,
!                   --  in particular the one in an assignment (RM 5.2(11/5)).
! 
!                   --  For an anonymous allocator in an assignment, return the
!                   --  accessibility level of the name (RM 3.10.2(14/6)).
! 
!                   when N_Assignment_Statement =>
!                      exit when Prev_Par = Name (Par)
!                        or else not Is_Anonymous_Access_Type (Etype (N));
! 
!                      return Accessibility_Level
!                               (Expr              => Name (Par),
!                                Level             => Object_Decl_Level,
!                                In_Return_Context => In_Return_Context);
! 
!                   when others =>
!                      --  Prevent the search from going too far
! 
!                      exit when Is_Statement (Par)
!                        or else Is_Body_Or_Package_Declaration (Par);
!                end case;
! 
!                Prev_Par := Par;
!                Par := Parent (Par);
!             end loop;
! 
!             --  Return the accessibility level of the innermost master
! 
!             return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
           end if;
        end Function_Call_Or_Allocator_Level;
  
*************** package body Accessibility is
*** 515,522 ****
                 --  Named access types
  
                 if Is_Named_Access_Type (Etype (Pre)) then
!                   return Make_Level_Literal
!                            (Typ_Access_Level (Etype (Pre)));
  
                 --  Anonymous access types
  
--- 570,576 ----
                 --  Named access types
  
                 if Is_Named_Access_Type (Etype (Pre)) then
!                   return Make_Level_Literal (Typ_Access_Level (Etype (Pre)));
  
                 --  Anonymous access types
  
*************** package body Accessibility is
*** 548,562 ****
           --  means we are near the end of our recursive traversal.
  
           when N_Defining_Identifier =>
!             --  A dynamic check is performed on the side of the callee when we
!             --  are within a return statement, so return a library-level
!             --  accessibility level to null out checks on the side of the
!             --  caller.
  
              if Is_Explicitly_Aliased (E)
!               and then (In_Return_Context
!                          or else (Level /= Dynamic_Level
!                                    and then In_Return_Value (Expr)))
              then
                 return Make_Level_Literal (Scope_Depth (Standard_Standard));
  
--- 602,630 ----
           --  means we are near the end of our recursive traversal.
  
           when N_Defining_Identifier =>
!             --  RM 3.10.2(21.1/5): Notwithstanding other rules [in 3.10.2],
!             --  the accessibility level of an entity that is tied to that of
!             --  an explicitly aliased formal parameter of an enclosing function
!             --  is considered (both statically and dynamically) to be the same
!             --  as that of an entity whose accessibility level is tied to that
!             --  of the return object of that function.
! 
!             --  This means that no checks are needed for an explicitly aliased
!             --  formal parameter in a return context and we return the library
!             --  level to null them out there.
! 
!             --  Note that we have to deal specifically with _Wrapped_Statements
!             --  functions of functions returning an access result, generated by
!             --  the expansion of contracts and postconditions, because they get
!             --  the same anonymous access result type as their parent function.
  
              if Is_Explicitly_Aliased (E)
!               and then (Scope (E) = Current_Subprogram
!                          or else (Has_Expanded_Contract (Scope (E))
!                                    and then
!                                      Wrapped_Statements (Scope (E)) =
!                                                            Current_Subprogram))
!               and then (In_Return_Value (Expr) or else In_Return_Context)
              then
                 return Make_Level_Literal (Scope_Depth (Standard_Standard));
  
*************** package body Accessibility is
*** 655,665 ****
              then
                 return Accessibility_Level (Renamed_Entity_Or_Object (E));
  
!             --  Named access types get their level from their associated type
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (E)));
  
              --  Check if E is an expansion-generated renaming of an iterator
              --  by examining Related_Expression. If so, determine the
--- 723,732 ----
              then
                 return Accessibility_Level (Renamed_Entity_Or_Object (E));
  
!             --  Objects of a named access type get their level from their type
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal (Typ_Access_Level (Etype (E)));
  
              --  Check if E is an expansion-generated renaming of an iterator
              --  by examining Related_Expression. If so, determine the
*************** package body Accessibility is
*** 715,730 ****
              --  of the named access type in the prefix.
  
              elsif Is_Named_Access_Type (Etype (Pre)) then
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (Pre)));
  
              --  The current expression is a named access type, so there is no
              --  reason to look at the prefix. Instead obtain the level of E's
              --  named access type.
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (E)));
  
              --  A nondiscriminant selected component where the component
              --  is an anonymous access type means that its associated
--- 782,795 ----
              --  of the named access type in the prefix.
  
              elsif Is_Named_Access_Type (Etype (Pre)) then
!                return Make_Level_Literal (Typ_Access_Level (Etype (Pre)));
  
              --  The current expression is a named access type, so there is no
              --  reason to look at the prefix. Instead obtain the level of E's
              --  named access type.
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal (Typ_Access_Level (Etype (E)));
  
              --  A nondiscriminant selected component where the component
              --  is an anonymous access type means that its associated
*************** package body Accessibility is
*** 766,779 ****
                   and then No_Dynamic_Accessibility_Checks_Enabled (E)
                   and then Debug_Flag_Underscore_B
                 then
!                   return Make_Level_Literal
!                            (Typ_Access_Level (Etype (E)));
                 end if;
  
                 --  Otherwise proceed normally
  
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (Prefix (E))));
  
              --  The accessibility calculation routine that handles function
              --  calls (Function_Call_Level) assumes, in the case the
--- 831,843 ----
                   and then No_Dynamic_Accessibility_Checks_Enabled (E)
                   and then Debug_Flag_Underscore_B
                 then
!                   return Make_Level_Literal (Typ_Access_Level (Etype (E)));
                 end if;
  
                 --  Otherwise proceed normally
  
!                return
!                  Make_Level_Literal (Typ_Access_Level (Etype (Prefix (E))));
  
              --  The accessibility calculation routine that handles function
              --  calls (Function_Call_Level) assumes, in the case the
*************** package body Accessibility is
*** 799,806 ****
                 --  So, in this case, return a library accessibility level to
                 --  null out the check on the side of the caller.
  
!                if (In_Return_Value (E)
!                     or else In_Return_Context)
                   and then Level /= Dynamic_Level
                 then
                    return Make_Level_Literal
--- 863,869 ----
                 --  So, in this case, return a library accessibility level to
                 --  null out the check on the side of the caller.
  
!                if (In_Return_Value (E) or else In_Return_Context)
                   and then Level /= Dynamic_Level
                 then
                    return Make_Level_Literal
*************** package body Accessibility is
*** 820,827 ****
  
           when N_Qualified_Expression =>
              if Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (E)));
              else
                 return Accessibility_Level (Expression (E));
              end if;
--- 883,889 ----
  
           when N_Qualified_Expression =>
              if Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal (Typ_Access_Level (Etype (E)));
              else
                 return Accessibility_Level (Expression (E));
              end if;
*************** package body Accessibility is
*** 866,873 ****
              --  access type.
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal
!                         (Typ_Access_Level (Etype (E)));
  
              --  In section RM 3.10.2 (10/4) the accessibility rules for
              --  aggregates and value conversions are outlined. Are these
--- 928,934 ----
              --  access type.
  
              elsif Is_Named_Access_Type (Etype (E)) then
!                return Make_Level_Literal (Typ_Access_Level (Etype (E)));
  
              --  In section RM 3.10.2 (10/4) the accessibility rules for
              --  aggregates and value conversions are outlined. Are these
*************** package body Accessibility is
*** 1642,1647 ****
--- 1703,1715 ----
               (No (Extra_Accessibility_Of_Result (Scope_Id))
                 and then Is_Formal_Of_Current_Function (Assoc_Expr)
                 and then Is_Tagged_Type (Etype (Scope_Id)))
+ 
+            --  Disable the check generation when we are only checking semantics
+            --  since required locals do not get generated (e.g. extra
+            --  accessibility of result), and constant folding can occur and
+            --  lead to spurious errors.
+ 
+            and then not Check_Semantics_Only_Mode
           then
              --  Generate a dynamic check based on the extra accessibility of
              --  the result or the scope of the current function.
*************** package body Accessibility is
*** 1676,1691 ****
                  Condition => Check_Cond,
                  Reason    => PE_Accessibility_Check_Failed));
  
!             --  If constant folding has happened on the condition for the
!             --  generated error, then warn about it being unconditional when
!             --  we know an error will be raised.
  
              if Nkind (Check_Cond) = N_Identifier
                and then Entity (Check_Cond) = Standard_True
              then
                 Error_Msg_N
!                  ("access discriminant in return object would be a dangling"
!                   & " reference", Return_Stmt);
              end if;
           end if;
  
--- 1744,1757 ----
                  Condition => Check_Cond,
                  Reason    => PE_Accessibility_Check_Failed));
  
!             --  ??? Is this how we want to detect RM 6.5(5.9) violations?
  
              if Nkind (Check_Cond) = N_Identifier
                and then Entity (Check_Cond) = Standard_True
              then
                 Error_Msg_N
!                  ("level of type of access discriminant value of return object"
!                     & " is statically too deep", Return_Stmt);
              end if;
           end if;
  
*************** package body Accessibility is
*** 1915,1952 ****
     end Is_Anonymous_Access_Actual;
  
     --------------------------------------
-    -- Is_Special_Aliased_Formal_Access --
-    --------------------------------------
- 
-    function Is_Special_Aliased_Formal_Access
-      (Exp               : Node_Id;
-       In_Return_Context : Boolean := False) return Boolean
-    is
-       Scop : constant Entity_Id := Current_Subprogram;
-    begin
-       --  Verify the expression is an access reference to 'Access within a
-       --  return statement as this is the only time an explicitly aliased
-       --  formal has different semantics.
- 
-       if Nkind (Exp) /= N_Attribute_Reference
-         or else Get_Attribute_Id (Attribute_Name (Exp)) /= Attribute_Access
-         or else not (In_Return_Value (Exp)
-                       or else In_Return_Context)
-         or else not Needs_Result_Accessibility_Level (Scop)
-       then
-          return False;
-       end if;
- 
-       --  Check if the prefix of the reference is indeed an explicitly aliased
-       --  formal parameter for the function Scop. Additionally, we must check
-       --  that Scop returns an anonymous access type, otherwise the special
-       --  rules dictating a need for a dynamic check are not in effect.
- 
-       return Is_Entity_Name (Prefix (Exp))
-                and then Is_Explicitly_Aliased (Entity (Prefix (Exp)));
-    end Is_Special_Aliased_Formal_Access;
- 
-    --------------------------------------
     -- Needs_Result_Accessibility_Level --
     --------------------------------------
  
--- 1981,1986 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/accessibility.ads gcc-16.1.0-RC-20260423/gcc/ada/accessibility.ads
*** gcc-15.2.0/gcc/ada/accessibility.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/accessibility.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Accessibility is
*** 182,202 ****
     --  Determine if N is used as an actual for a call whose corresponding
     --  formal is of an anonymous access type.
  
-    function Is_Special_Aliased_Formal_Access
-      (Exp               : Node_Id;
-       In_Return_Context : Boolean := False) return Boolean;
-    --  Determines whether a dynamic check must be generated for explicitly
-    --  aliased formals within a function Scop for the expression Exp.
- 
-    --  In_Return_Context forces Is_Special_Aliased_Formal_Access to assume
-    --  that Exp is within a return value which is useful for checking
-    --  expressions within discriminant associations of return objects.
- 
-    --  More specially, Is_Special_Aliased_Formal_Access checks that Exp is a
-    --  'Access attribute reference within a return statement where the ultimate
-    --  prefix is an aliased formal of Scop and that Scop returns an anonymous
-    --  access type. See RM 3.10.2 for more details.
- 
     function Needs_Result_Accessibility_Level
       (Func_Id : Entity_Id) return Boolean;
     --  Ada 2012 (AI05-0234): Return True if the function needs an implicit
--- 182,187 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/ada_get_targ.adb gcc-16.1.0-RC-20260423/gcc/ada/ada_get_targ.adb
*** gcc-15.2.0/gcc/ada/ada_get_targ.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ada_get_targ.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Get_Targ is
*** 219,227 ****
     begin
        Float_Str (Float_Str'First .. Float_Str'First + 4) := "float";
        Call_Back
!         (C_Name => Float_Str, Digs => 6, Complex => False, Count  => 0,
           Float_Rep => IEEE_Binary,
!          Precision => 32, Size => 32, Alignment => 32);
  
        Double_Str (Double_Str'First .. Double_Str'First + 5) := "double";
        Call_Back
--- 219,232 ----
     begin
        Float_Str (Float_Str'First .. Float_Str'First + 4) := "float";
        Call_Back
!         (C_Name    => Float_Str,
!          Digs      => 6,
!          Complex   => False,
!          Count     => 0,
           Float_Rep => IEEE_Binary,
!          Precision => 32,
!          Size      => 32,
!          Alignment => 32);
  
        Double_Str (Double_Str'First .. Double_Str'First + 5) := "double";
        Call_Back
diff -Nrcpad gcc-15.2.0/gcc/ada/adabkend.adb gcc-16.1.0-RC-20260423/gcc/ada/adabkend.adb
*** gcc-15.2.0/gcc/ada/adabkend.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adabkend.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/adabkend.ads gcc-16.1.0-RC-20260423/gcc/ada/adabkend.ads
*** gcc-15.2.0/gcc/ada/adabkend.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adabkend.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/adadecode.c gcc-16.1.0-RC-20260423/gcc/ada/adadecode.c
*** gcc-15.2.0/gcc/ada/adadecode.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adadecode.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2001-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/adadecode.h gcc-16.1.0-RC-20260423/gcc/ada/adadecode.h
*** gcc-15.2.0/gcc/ada/adadecode.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adadecode.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2001-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/adaint.c gcc-16.1.0-RC-20260423/gcc/ada/adaint.c
*** gcc-15.2.0/gcc/ada/adaint.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adaint.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 61,66 ****
--- 61,71 ----
  #define POSIX
  #include "vxWorks.h"
  #include <sys/time.h>
+ #include <ctype.h> /* for isalpha */
+ 
+ #ifndef alloca
+ #define alloca(n) __builtin_alloca(n)
+ #endif
  
  #if defined (__mips_vxworks)
  #include "cacheLib.h"
*************** extern "C" {
*** 174,179 ****
--- 179,185 ----
  #elif defined (__MINGW32__) || defined (__CYGWIN__)
  
  #include "mingw32.h"
+ #include "share.h"
  
  /* Current code page and CCS encoding to use, set in rtinit.c.  */
  UINT __gnat_current_codepage;
*************** const char *__gnat_library_template = GN
*** 344,354 ****
  
  #else
  
- #if defined (__MINGW32__)
- #include "mingw32.h"
- #else
  #include <sys/param.h>
- #endif
  
  #ifdef MAXPATHLEN
  #define GNAT_MAX_PATH_LEN MAXPATHLEN
--- 350,356 ----
*************** __gnat_open_read (char *path, int fmode)
*** 935,941 ****
     TCHAR wpath[GNAT_MAX_PATH_LEN];
  
     S2WSC (wpath, path, GNAT_MAX_PATH_LEN);
!    fd = _topen (wpath, O_RDONLY | o_fmode, 0444);
   }
  #else
    fd = GNAT_OPEN (path, O_RDONLY | o_fmode);
--- 937,943 ----
     TCHAR wpath[GNAT_MAX_PATH_LEN];
  
     S2WSC (wpath, path, GNAT_MAX_PATH_LEN);
!    fd = _tsopen (wpath, O_RDONLY | o_fmode, _SH_DENYNO, 0444);
   }
  #else
    fd = GNAT_OPEN (path, O_RDONLY | o_fmode);
*************** __gnat_lwp_self (void)
*** 3475,3481 ****
  }
  #endif
  
! #if defined (__linux__)
  #include <sched.h>
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
--- 3477,3483 ----
  }
  #endif
  
! #if defined (__linux__) || defined (__ANDROID__)
  #include <sched.h>
  
  /* glibc versions earlier than 2.7 do not define the routines to handle
*************** void __gnat_killprocesstree (int pid, in
*** 3714,3719 ****
--- 3716,3750 ----
    */
  }
  
+ #if defined (_WIN32)
+ 
+ int __gnat_set_thread_description(HANDLE h, char *descr, int length) {
+ 
+   /* This function is a no-op if Unicode support is not enabled */
+ #ifdef GNAT_UNICODE_SUPPORT
+ 
+   if (!pSetThreadDescription) {
+     /* This is presumably not an error case, SetThreadDescription is simply
+        not available in the current Windows version. */
+     return 1;
+   }
+ 
+   TCHAR wdescr[length + 1];
+ 
+   S2WSC (wdescr, descr, length + 1);
+ 
+   HRESULT res = pSetThreadDescription(h, wdescr);
+   if (FAILED(res)) {
+     return 0;
+   }
+ 
+ #endif
+ 
+   return 1;
+ }
+ 
+ #endif /* defined (_WIN32) */
+ 
  #ifdef __cplusplus
  }
  #endif
diff -Nrcpad gcc-15.2.0/gcc/ada/adaint.h gcc-16.1.0-RC-20260423/gcc/ada/adaint.h
*** gcc-15.2.0/gcc/ada/adaint.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/adaint.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/affinity.c gcc-16.1.0-RC-20260423/gcc/ada/affinity.c
*** gcc-15.2.0/gcc/ada/affinity.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/affinity.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is 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_set_affinity_mask (TASK_ID tid, u
*** 56,62 ****
    CPUSET_ZERO(cpuset);
  
    for (index = 0; index < sizeof (unsigned) * 8; index++)
!     if (mask & (1 << index))
        CPUSET_SET(cpuset, index);
  
    return taskCpuAffinitySet (tid, cpuset);
--- 56,62 ----
    CPUSET_ZERO(cpuset);
  
    for (index = 0; index < sizeof (unsigned) * 8; index++)
!     if (mask & (1U << index))
        CPUSET_SET(cpuset, index);
  
    return taskCpuAffinitySet (tid, cpuset);
diff -Nrcpad gcc-15.2.0/gcc/ada/ali-util.adb gcc-16.1.0-RC-20260423/gcc/ada/ali-util.adb
*** gcc-15.2.0/gcc/ada/ali-util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ali-util.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/ali-util.ads gcc-16.1.0-RC-20260423/gcc/ada/ali-util.ads
*** gcc-15.2.0/gcc/ada/ali-util.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ali-util.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/ali.adb gcc-16.1.0-RC-20260423/gcc/ada/ali.adb
*** gcc-15.2.0/gcc/ada/ali.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ali.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/ali.ads gcc-16.1.0-RC-20260423/gcc/ada/ali.ads
*** gcc-15.2.0/gcc/ada/ali.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ali.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ALI is
*** 358,365 ****
        --  Indicates presence of PR parameter for a preelaborated package
  
        No_Elab : Boolean;
!       --  Indicates presence of NE parameter for a unit that has does not
!       --  have an elaboration routine (since it has no elaboration code).
  
        Pure : Boolean;
        --  Indicates presence of PU parameter for a package having pragma Pure
--- 358,365 ----
        --  Indicates presence of PR parameter for a preelaborated package
  
        No_Elab : Boolean;
!       --  Indicates presence of NE parameter for a unit that does not have an
!       --  elaboration routine (since it has no elaboration code).
  
        Pure : Boolean;
        --  Indicates presence of PU parameter for a package having pragma Pure
diff -Nrcpad gcc-15.2.0/gcc/ada/alloc.ads gcc-16.1.0-RC-20260423/gcc/ada/alloc.ads
*** gcc-15.2.0/gcc/ada/alloc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/alloc.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/argv-lynxos178-raven-cert.c gcc-16.1.0-RC-20260423/gcc/ada/argv-lynxos178-raven-cert.c
*** gcc-15.2.0/gcc/ada/argv-lynxos178-raven-cert.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/argv-lynxos178-raven-cert.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/argv.c gcc-16.1.0-RC-20260423/gcc/ada/argv.c
*** gcc-15.2.0/gcc/ada/argv.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/argv.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/aspects.adb gcc-16.1.0-RC-20260423/gcc/ada/aspects.adb
*** gcc-15.2.0/gcc/ada/aspects.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/aspects.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
! with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Nlists;         use Nlists;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  
--- 24,33 ----
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
! with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Nlists;         use Nlists;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  
*************** package body Aspects is
*** 280,285 ****
--- 279,292 ----
  
     function Get_Aspect_Id (Name : Name_Id) return Aspect_Id is
     begin
+       --  Aspect Unsigned_Base_Range temporarily disabled
+ 
+       if Name = Name_Unsigned_Base_Range
+         and then not Debug_Flag_Dot_U
+       then
+          return No_Aspect;
+       end if;
+ 
        return Aspect_Id_Hash_Table.Get (Name);
     end Get_Aspect_Id;
  
*************** package body Aspects is
*** 572,578 ****
          return UAD_Pragma_Map_Header
        is (UAD_Pragma_Map_Header (Chars mod UAD_Pragma_Map_Size));
  
!       package UAD_Pragma_Map is new GNAT.Htable.Simple_Htable
          (Header_Num => UAD_Pragma_Map_Header,
           Key        => Name_Id,
           Element    => Opt_N_Pragma_Id,
--- 579,585 ----
          return UAD_Pragma_Map_Header
        is (UAD_Pragma_Map_Header (Chars mod UAD_Pragma_Map_Size));
  
!       package UAD_Pragma_Map is new GNAT.HTable.Simple_HTable
          (Header_Num => UAD_Pragma_Map_Header,
           Key        => Name_Id,
           Element    => Opt_N_Pragma_Id,
diff -Nrcpad gcc-15.2.0/gcc/ada/aspects.ads gcc-16.1.0-RC-20260423/gcc/ada/aspects.ads
*** gcc-15.2.0/gcc/ada/aspects.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/aspects.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Aspects is
*** 106,111 ****
--- 106,112 ----
        Aspect_GNAT_Annotate,                 -- GNAT
        Aspect_Implicit_Dereference,
        Aspect_Initial_Condition,             -- GNAT
+       Aspect_Initialize,                    -- GNAT
        Aspect_Initializes,                   -- GNAT
        Aspect_Input,
        Aspect_Integer_Literal,
*************** package Aspects is
*** 125,135 ****
--- 126,138 ----
        Aspect_Part_Of,                       -- GNAT
        Aspect_Post,
        Aspect_Postcondition,
+       Aspect_Potentially_Invalid,           -- GNAT
        Aspect_Pre,
        Aspect_Precondition,
        Aspect_Predicate,                     -- GNAT
        Aspect_Predicate_Failure,
        Aspect_Priority,
+       Aspect_Program_Exit,
        Aspect_Put_Image,
        Aspect_Read,
        Aspect_Real_Literal,
*************** package Aspects is
*** 153,158 ****
--- 156,162 ----
        Aspect_Stream_Size,
        Aspect_String_Literal,
        Aspect_Subprogram_Variant,            -- GNAT
+       Aspect_Super,                         -- GNAT
        Aspect_Suppress,
        Aspect_Synchronization,
        Aspect_Test_Case,                     -- GNAT
*************** package Aspects is
*** 235,240 ****
--- 239,245 ----
        Aspect_Unmodified,                    -- GNAT
        Aspect_Unreferenced,                  -- GNAT
        Aspect_Unreferenced_Objects,          -- GNAT
+       Aspect_Unsigned_Base_Range,           -- GNAT
        Aspect_Volatile,
        Aspect_Volatile_Components,
        Aspect_Volatile_Full_Access,          -- GNAT
*************** package Aspects is
*** 255,260 ****
--- 260,266 ----
                                   | Aspect_Iterator_Element
                                   | Aspect_Max_Entry_Queue_Length
                                   | Aspect_No_Controlled_Parts
+                                  | Aspect_No_Task_Parts
                                   | Aspect_Real_Literal
                                   | Aspect_String_Literal
                                   | Aspect_Variable_Indexing;
*************** package Aspects is
*** 324,329 ****
--- 330,336 ----
        Aspect_Obsolescent                => True,
        Aspect_Part_Of                    => True,
        Aspect_Persistent_BSS             => True,
+       Aspect_Potentially_Invalid        => True,
        Aspect_Predicate                  => True,
        Aspect_Pure_Function              => True,
        Aspect_Refined_Depends            => True,
*************** package Aspects is
*** 350,355 ****
--- 357,363 ----
        Aspect_Unmodified                 => True,
        Aspect_Unreferenced               => True,
        Aspect_Unreferenced_Objects       => True,
+       Aspect_Unsigned_Base_Range        => True,
        Aspect_User_Aspect                => True,
        Aspect_Value_Size                 => True,
        Aspect_Volatile_Full_Access       => True,
*************** package Aspects is
*** 358,366 ****
        others                            => False);
  
     --  The following array indicates aspects that specify operational
!    --  characteristics, and thus are view-specific. Representation
!    --  aspects break privacy, as they are needed during expansion and
!    --  code generation.
     --  List is currently incomplete ???
  
     Operational_Aspect : constant array (Aspect_Id) of Boolean :=
--- 366,372 ----
        others                            => False);
  
     --  The following array indicates aspects that specify operational
!    --  characteristics, and thus can be specified on partial views.
     --  List is currently incomplete ???
  
     Operational_Aspect : constant array (Aspect_Id) of Boolean :=
*************** package Aspects is
*** 404,411 ****
     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;
  
     --  The following type is used for indicating allowed expression forms
  
--- 410,420 ----
     subtype Boolean_Aspects is
       Aspect_Id range Aspect_Always_Terminates .. Aspect_Id'Last;
  
!    subtype Pre_Post_Aspects is Aspect_Id
!    with Static_Predicate => Pre_Post_Aspects in Aspect_Post
!                                               | Aspect_Postcondition
!                                               | Aspect_Pre
!                                               | Aspect_Precondition;
  
     --  The following type is used for indicating allowed expression forms
  
*************** package Aspects is
*** 453,458 ****
--- 462,468 ----
        Aspect_GNAT_Annotate              => Expression,
        Aspect_Implicit_Dereference       => Name,
        Aspect_Initial_Condition          => Expression,
+       Aspect_Initialize                 => Expression,
        Aspect_Initializes                => Expression,
        Aspect_Input                      => Name,
        Aspect_Integer_Literal            => Name,
*************** package Aspects is
*** 472,482 ****
--- 482,494 ----
        Aspect_Part_Of                    => Expression,
        Aspect_Post                       => Expression,
        Aspect_Postcondition              => Expression,
+       Aspect_Potentially_Invalid        => Optional_Expression,
        Aspect_Pre                        => Expression,
        Aspect_Precondition               => Expression,
        Aspect_Predicate                  => Expression,
        Aspect_Predicate_Failure          => Expression,
        Aspect_Priority                   => Expression,
+       Aspect_Program_Exit               => Optional_Expression,
        Aspect_Put_Image                  => Name,
        Aspect_Read                       => Name,
        Aspect_Real_Literal               => Name,
*************** package Aspects is
*** 500,505 ****
--- 512,518 ----
        Aspect_Stream_Size                => Expression,
        Aspect_String_Literal             => Name,
        Aspect_Subprogram_Variant         => Expression,
+       Aspect_Super                      => Expression,
        Aspect_Suppress                   => Name,
        Aspect_Synchronization            => Name,
        Aspect_Test_Case                  => Expression,
*************** package Aspects is
*** 556,561 ****
--- 569,575 ----
        Aspect_GNAT_Annotate                => False,
        Aspect_Implicit_Dereference         => False,
        Aspect_Initial_Condition            => False,
+       Aspect_Initialize                   => False,
        Aspect_Initializes                  => False,
        Aspect_Input                        => False,
        Aspect_Integer_Literal              => False,
*************** package Aspects is
*** 575,585 ****
--- 589,601 ----
        Aspect_Part_Of                      => False,
        Aspect_Post                         => False,
        Aspect_Postcondition                => False,
+       Aspect_Potentially_Invalid          => False,
        Aspect_Pre                          => False,
        Aspect_Precondition                 => False,
        Aspect_Predicate                    => False,
        Aspect_Predicate_Failure            => False,
        Aspect_Priority                     => False,
+       Aspect_Program_Exit                 => False,
        Aspect_Put_Image                    => False,
        Aspect_Read                         => False,
        Aspect_Real_Literal                 => False,
*************** package Aspects is
*** 603,613 ****
--- 619,631 ----
        Aspect_Stream_Size                  => True,
        Aspect_String_Literal               => False,
        Aspect_Subprogram_Variant           => False,
+       Aspect_Super                        => False,
        Aspect_Suppress                     => False,
        Aspect_Synchronization              => False,
        Aspect_Test_Case                    => False,
        Aspect_Type_Invariant               => False,
        Aspect_Unimplemented                => False,
+       Aspect_Unsigned_Base_Range          => True,
        Aspect_Unsuppress                   => False,
        Aspect_User_Aspect                  => False,
        Aspect_Value_Size                   => True,
*************** package Aspects is
*** 742,747 ****
--- 760,766 ----
        Aspect_Inline                       => Name_Inline,
        Aspect_Inline_Always                => Name_Inline_Always,
        Aspect_Initial_Condition            => Name_Initial_Condition,
+       Aspect_Initialize                   => Name_Initialize,
        Aspect_Initializes                  => Name_Initializes,
        Aspect_Input                        => Name_Input,
        Aspect_Integer_Literal              => Name_Integer_Literal,
*************** package Aspects is
*** 773,778 ****
--- 792,798 ----
        Aspect_Persistent_BSS               => Name_Persistent_BSS,
        Aspect_Post                         => Name_Post,
        Aspect_Postcondition                => Name_Postcondition,
+       Aspect_Potentially_Invalid          => Name_Potentially_Invalid,
        Aspect_Pre                          => Name_Pre,
        Aspect_Precondition                 => Name_Precondition,
        Aspect_Predicate                    => Name_Predicate,
*************** package Aspects is
*** 780,785 ****
--- 800,806 ----
        Aspect_Preelaborable_Initialization => Name_Preelaborable_Initialization,
        Aspect_Preelaborate                 => Name_Preelaborate,
        Aspect_Priority                     => Name_Priority,
+       Aspect_Program_Exit                 => Name_Program_Exit,
        Aspect_Pure                         => Name_Pure,
        Aspect_Pure_Function                => Name_Pure_Function,
        Aspect_Put_Image                    => Name_Put_Image,
*************** package Aspects is
*** 813,818 ****
--- 834,840 ----
        Aspect_Stream_Size                  => Name_Stream_Size,
        Aspect_String_Literal               => Name_String_Literal,
        Aspect_Subprogram_Variant           => Name_Subprogram_Variant,
+       Aspect_Super                        => Name_Super,
        Aspect_Suppress                     => Name_Suppress,
        Aspect_Suppress_Debug_Info          => Name_Suppress_Debug_Info,
        Aspect_Suppress_Initialization      => Name_Suppress_Initialization,
*************** package Aspects is
*** 826,831 ****
--- 848,854 ----
        Aspect_Unmodified                   => Name_Unmodified,
        Aspect_Unreferenced                 => Name_Unreferenced,
        Aspect_Unreferenced_Objects         => Name_Unreferenced_Objects,
+       Aspect_Unsigned_Base_Range          => Name_Unsigned_Base_Range,
        Aspect_Unsuppress                   => Name_Unsuppress,
        Aspect_User_Aspect                  => Name_User_Aspect,
        Aspect_Value_Size                   => Name_Value_Size,
*************** package Aspects is
*** 1009,1014 ****
--- 1032,1038 ----
        Aspect_Preelaborable_Initialization => Always_Delay,
        Aspect_Preelaborate                 => Always_Delay,
        Aspect_Priority                     => Always_Delay,
+       Aspect_Program_Exit                 => Always_Delay,
        Aspect_Pure                         => Always_Delay,
        Aspect_Pure_Function                => Always_Delay,
        Aspect_Put_Image                    => Always_Delay,
*************** package Aspects is
*** 1070,1075 ****
--- 1094,1100 ----
        Aspect_Import                       => Never_Delay,
        Aspect_Initial_Condition            => Never_Delay,
        Aspect_Local_Restrictions           => Never_Delay,
+       Aspect_Initialize                   => Never_Delay,
        Aspect_Initializes                  => Never_Delay,
        Aspect_Max_Entry_Queue_Length       => Never_Delay,
        Aspect_Max_Queue_Length             => Never_Delay,
*************** package Aspects is
*** 1080,1085 ****
--- 1105,1111 ----
        Aspect_No_Tagged_Streams            => Never_Delay,
        Aspect_Obsolescent                  => Never_Delay,
        Aspect_Part_Of                      => Never_Delay,
+       Aspect_Potentially_Invalid          => Never_Delay,
        Aspect_Refined_Depends              => Never_Delay,
        Aspect_Refined_Global               => Never_Delay,
        Aspect_Refined_Post                 => Never_Delay,
*************** package Aspects is
*** 1089,1094 ****
--- 1115,1121 ----
        Aspect_SPARK_Mode                   => Never_Delay,
        Aspect_Static                       => Never_Delay,
        Aspect_Subprogram_Variant           => Never_Delay,
+       Aspect_Super                        => Never_Delay,
        Aspect_Synchronization              => Never_Delay,
        Aspect_Test_Case                    => Never_Delay,
        Aspect_Unimplemented                => Never_Delay,
*************** package Aspects is
*** 1114,1119 ****
--- 1141,1147 ----
        Aspect_Size                         => Rep_Aspect,
        Aspect_Small                        => Rep_Aspect,
        Aspect_Storage_Size                 => Rep_Aspect,
+       Aspect_Unsigned_Base_Range          => Rep_Aspect,
        Aspect_Value_Size                   => Rep_Aspect,
        Aspect_Volatile                     => Rep_Aspect,
        Aspect_Volatile_Components          => Rep_Aspect,
*************** package Aspects is
*** 1157,1166 ****
     --  Sem_Prag.
  
     Aspect_On_Body_Or_Stub_OK : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Refined_Depends              => True,
        Aspect_Refined_Global               => True,
        Aspect_Refined_Post                 => True,
        Aspect_SPARK_Mode                   => True,
        Aspect_Warnings                     => True,
        others                              => False);
  
--- 1185,1196 ----
     --  Sem_Prag.
  
     Aspect_On_Body_Or_Stub_OK : constant array (Aspect_Id) of Boolean :=
!      (Aspect_Initialize                   => True,
!       Aspect_Refined_Depends              => True,
        Aspect_Refined_Global               => True,
        Aspect_Refined_Post                 => True,
        Aspect_SPARK_Mode                   => True,
+       Aspect_Super                        => True,
        Aspect_Warnings                     => True,
        others                              => False);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/atree.adb gcc-16.1.0-RC-20260423/gcc/ada/atree.adb
*** gcc-15.2.0/gcc/ada/atree.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/atree.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1005,1065 ****
  
        Old_Kind : constant Entity_Kind := Ekind (Old_N);
  
-       function Same_Node_To_Fetch_From
-         (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
-         return Boolean;
-       --  True if the field should be fetched from N. For most fields, this is
-       --  true. However, if the field is a "root type only" field, then this is
-       --  true only if N is the root type. If this is false, then we should not
-       --  do Reinit_Field_To_Zero, and we should not fail below, because the
-       --  field is not vanishing from the root type. Similar comments apply to
-       --  "base type only" and "implementation base type only" fields.
-       --
-       --  We need to ignore exceptions here, because in some cases,
-       --  Node_To_Fetch_From is being called before the relevant (root, base)
-       --  type has been set, so we fail some assertions.
- 
-       function Same_Node_To_Fetch_From
-         (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
-         return Boolean is
-       begin
-          return N = Node_To_Fetch_From (N, Field);
-       exception
-          when others => return False; -- ignore the exception
-       end Same_Node_To_Fetch_From;
- 
     --  Start of processing for Check_Vanishing_Fields
  
     begin
        for J in Entity_Field_Table (Old_Kind)'Range loop
           declare
              F : constant Entity_Field := Entity_Field_Table (Old_Kind) (J);
!          begin
!             if not Same_Node_To_Fetch_From (Old_N, F) then
!                null; -- no check in this case
!             elsif not Field_Checking.Field_Present (New_Kind, F) then
!                if not Field_Is_Initial_Zero (Old_N, F) then
!                   Write_Str ("# ");
!                   Write_Str (Osint.Get_First_Main_File_Name);
!                   Write_Str (": ");
!                   Write_Str (Old_Kind'Img);
!                   Write_Str (" --> ");
!                   Write_Str (New_Kind'Img);
!                   Write_Str (" Nonzero field ");
!                   Write_Str (F'Img);
!                   Write_Str (" is vanishing ");
  
!                   if New_Kind = E_Void or else Old_Kind = E_Void then
!                      Write_Line ("(E_Void case)");
!                   else
!                      Write_Line ("(non-E_Void case)");
!                   end if;
  
!                   Write_Str ("    ...mutating node ");
!                   Write_Int (Nat (Old_N));
!                   Write_Line ("");
!                   raise Program_Error;
                 end if;
              end if;
           end;
        end loop;
--- 1005,1053 ----
  
        Old_Kind : constant Entity_Kind := Ekind (Old_N);
  
     --  Start of processing for Check_Vanishing_Fields
  
     begin
        for J in Entity_Field_Table (Old_Kind)'Range loop
           declare
              F : constant Entity_Field := Entity_Field_Table (Old_Kind) (J);
!             Same_Node_To_Fetch_From : constant Boolean :=
!               Old_N = Node_To_Fetch_From_If_Set (Old_N, F);
!             --  True if the field F should be fetched from Old_N. For most
!             --  fields, this is True. However, if F is a "root type only"
!             --  field, then it should be fetched from the root type, so this is
!             --  true only if Old_N is the root type. If this is False, then we
!             --  should not have done Reinit_Field_To_Zero, and we should not
!             --  fail below, because the field is not vanishing from this node.
!             --  We use the ..._If_Set function to avoid failing when the root
!             --  type has not yet been set. Similar comments apply to "base type
!             --  only" and "implementation base type only" fields.
  
!          begin
!             if Same_Node_To_Fetch_From
!               and then not Field_Checking.Field_Present (New_Kind, F)
!               and then not Field_Is_Initial_Zero (Old_N, F)
!             then
!                Write_Str ("# ");
!                Write_Str (Osint.Get_First_Main_File_Name);
!                Write_Str (": ");
!                Write_Str (Old_Kind'Img);
!                Write_Str (" --> ");
!                Write_Str (New_Kind'Img);
!                Write_Str (" Nonzero field ");
!                Write_Str (F'Img);
!                Write_Str (" is vanishing ");
  
!                if New_Kind = E_Void or else Old_Kind = E_Void then
!                   Write_Line ("(E_Void case)");
!                else
!                   Write_Line ("(non-E_Void case)");
                 end if;
+ 
+                Write_Str ("    ...mutating node ");
+                Write_Int (Nat (Old_N));
+                Write_Line ("");
+                raise Program_Error;
              end if;
           end;
        end loop;
*************** package body Atree is
*** 1296,1303 ****
          Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
  
     begin
!       --  Empty_Or_Error use as described in types.ads
!       if Destination <= Empty_Or_Error or No (Source) then
           pragma Assert (Serious_Errors_Detected > 0);
           return;
        end if;
--- 1284,1290 ----
          Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
  
     begin
!       if Destination in Empty | Error or else No (Source) then
           pragma Assert (Serious_Errors_Detected > 0);
           return;
        end if;
*************** package body Atree is
*** 1458,1464 ****
     --  Start of processing for Copy_Separate_Tree
  
     begin
!       if Source <= Empty_Or_Error then
           return Source;
  
        elsif Is_Entity (Source) then
--- 1445,1451 ----
     --  Start of processing for Copy_Separate_Tree
  
     begin
!       if Source in Empty | Error then
           return Source;
  
        elsif Is_Entity (Source) then
*************** package body Atree is
*** 1803,1816 ****
  
        --  The Ghost node is created within a Ghost region
  
!       if Ghost_Mode = Check then
           if Nkind (N) in N_Entity then
              Set_Is_Checked_Ghost_Entity (N);
           end if;
  
!       elsif Ghost_Mode = Ignore then
           if Nkind (N) in N_Entity then
              Set_Is_Ignored_Ghost_Entity (N);
           end if;
  
           Set_Is_Ignored_Ghost_Node (N);
--- 1790,1809 ----
  
        --  The Ghost node is created within a Ghost region
  
!       if Ghost_Config.Ghost_Mode = Check then
           if Nkind (N) in N_Entity then
              Set_Is_Checked_Ghost_Entity (N);
+             Set_Ghost_Assertion_Level
+               (N, Ghost_Config.Ghost_Mode_Assertion_Level);
+             Set_Is_Implicit_Ghost (N);
           end if;
  
!       elsif Ghost_Config.Ghost_Mode = Ignore then
           if Nkind (N) in N_Entity then
              Set_Is_Ignored_Ghost_Entity (N);
+             Set_Ghost_Assertion_Level
+               (N, Ghost_Config.Ghost_Mode_Assertion_Level);
+             Set_Is_Implicit_Ghost (N);
           end if;
  
           Set_Is_Ignored_Ghost_Node (N);
*************** package body Atree is
*** 1841,1847 ****
        pragma Debug (Validate_Node (Source));
        S_Size : constant Slot_Count := Size_In_Slots_To_Alloc (Source);
     begin
!       if Source <= Empty_Or_Error then
           return Source;
        end if;
  
--- 1834,1840 ----
        pragma Debug (Validate_Node (Source));
        S_Size : constant Slot_Count := Size_In_Slots_To_Alloc (Source);
     begin
!       if Source in Empty | Error then
           return Source;
        end if;
  
*************** package body Atree is
*** 2271,2280 ****
        --  Copy substitute node into place, preserving old fields as required
  
        Copy_Node (Source => New_Node, Destination => Old_Node);
-       Set_Error_Posted (Old_Node, Old_Error_Posted);
  
        Set_Check_Actuals (Old_Node, Old_CA);
        Set_Is_Ignored_Ghost_Node (Old_Node, Old_Is_IGN);
  
        if Nkind (New_Node) in N_Subexpr then
           Set_Paren_Count     (Old_Node, Old_Paren_Count);
--- 2264,2273 ----
        --  Copy substitute node into place, preserving old fields as required
  
        Copy_Node (Source => New_Node, Destination => Old_Node);
  
        Set_Check_Actuals (Old_Node, Old_CA);
        Set_Is_Ignored_Ghost_Node (Old_Node, Old_Is_IGN);
+       Set_Error_Posted (Old_Node, Old_Error_Posted);
  
        if Nkind (New_Node) in N_Subexpr then
           Set_Paren_Count     (Old_Node, Old_Paren_Count);
*************** package body Atree is
*** 2702,2710 ****
        --  tail recursive step won't go past the end.
  
        declare
-          Cur_Field : Offset_Array_Index := Traversed_Offset_Array'First;
           Offsets : Traversed_Offset_Array renames
             Traversed_Fields (Nkind (Cur_Node));
  
        begin
           if Offsets (Traversed_Offset_Array'First) /= No_Field_Offset then
--- 2695,2703 ----
        --  tail recursive step won't go past the end.
  
        declare
           Offsets : Traversed_Offset_Array renames
             Traversed_Fields (Nkind (Cur_Node));
+          Cur_Field : Offset_Array_Index := Traversed_Offset_Array'First;
  
        begin
           if Offsets (Traversed_Offset_Array'First) /= No_Field_Offset then
*************** package body Atree is
*** 2761,2774 ****
        --  it is global and hence a tree traversal with parents must be finished
        --  before the next tree traversal with parents starts.
  
!       pragma Assert (Parents_Stack.Last = 0);
!       Parents_Stack.Set_Last (0);
  
        Parents_Stack.Append (Parent (Node));
        Result := Traverse (Node);
        Parents_Stack.Decrement_Last;
  
!       pragma Assert (Parents_Stack.Last = 0);
  
        return Result;
     end Traverse_Func_With_Parent;
--- 2754,2767 ----
        --  it is global and hence a tree traversal with parents must be finished
        --  before the next tree traversal with parents starts.
  
!       pragma Assert (Parents_Stack.Is_Empty);
!       Parents_Stack.Clear;
  
        Parents_Stack.Append (Parent (Node));
        Result := Traverse (Node);
        Parents_Stack.Decrement_Last;
  
!       pragma Assert (Parents_Stack.Is_Empty);
  
        return Result;
     end Traverse_Func_With_Parent;
diff -Nrcpad gcc-15.2.0/gcc/ada/atree.ads gcc-16.1.0-RC-20260423/gcc/ada/atree.ads
*** gcc-15.2.0/gcc/ada/atree.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/atree.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 285,318 ****
  
     procedure Copy_Node (Source, Destination : Node_Or_Entity_Id);
     --  Copy the entire contents of the source node to the destination node.
!    --  The contents of the source node is not affected. If the source node
!    --  has an extension, then the destination must have an extension also.
!    --  The parent pointer of the destination and its list link, if any, are
!    --  not affected by the copy. Note that parent pointers of descendants
!    --  are not adjusted, so the descendants of the destination node after
!    --  the Copy_Node is completed have dubious parent pointers. Note that
!    --  this routine does NOT copy aspect specifications, the Has_Aspects
!    --  flag in the returned node will always be False. The caller must deal
!    --  with copying aspect specifications where this is required.
  
     function New_Copy (Source : Node_Id) return Node_Id;
     --  This function allocates a new node, and then initializes it by copying
     --  the contents of the source node into it. The contents of the source node
     --  is not affected. The target node is always marked as not being in a list
!    --  (even if the source is a list member), and not overloaded. The new node
!    --  will have an extension if the source has an extension. New_Copy (Empty)
!    --  returns Empty, and New_Copy (Error) returns Error. Note that, unlike
!    --  Copy_Separate_Tree, New_Copy does not recursively copy any descendants,
!    --  so in general parent pointers are not set correctly for the descendants
!    --  of the copied node.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
     --  allocated, and the contents of Source are copied to this node, using
     --  New_Copy. The parent pointers of descendants of the node are then
     --  adjusted to point to the relocated copy. The original node is not
!    --  modified, but the parent pointers of its descendants are no longer
!    --  valid. The new copy is always marked as not overloaded. This routine is
     --  used in conjunction with the tree rewrite routines (see descriptions of
     --  Replace/Rewrite).
     --
--- 285,313 ----
  
     procedure Copy_Node (Source, Destination : Node_Or_Entity_Id);
     --  Copy the entire contents of the source node to the destination node.
!    --  The contents of the source node is not affected. The parent pointer of
!    --  the destination and its list link, if any, are not affected by the copy.
!    --  Note that parent pointers of descendants are not adjusted, so the
!    --  descendants of the destination node after the Copy_Node is completed
!    --  have dubious parent pointers.
  
     function New_Copy (Source : Node_Id) return Node_Id;
     --  This function allocates a new node, and then initializes it by copying
     --  the contents of the source node into it. The contents of the source node
     --  is not affected. The target node is always marked as not being in a list
!    --  (even if the source is a list member), and not overloaded.
!    --  New_Copy (Empty) returns Empty, and New_Copy (Error) returns Error. Note
!    --  that, unlike Copy_Separate_Tree, New_Copy does not recursively copy any
!    --  descendants, so in general parent pointers are not set correctly for the
!    --  descendants of the copied node.
  
     function Relocate_Node (Source : Node_Id) return Node_Id;
     --  Source is a non-entity node that is to be relocated. A new node is
     --  allocated, and the contents of Source are copied to this node, using
     --  New_Copy. The parent pointers of descendants of the node are then
     --  adjusted to point to the relocated copy. The original node is not
!    --  modified, but the parent pointers of its children no longer point back
!    --  at it. The new copy is always marked as not overloaded. This routine is
     --  used in conjunction with the tree rewrite routines (see descriptions of
     --  Replace/Rewrite).
     --
*************** package Atree is
*** 458,464 ****
  
     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;
--- 453,459 ----
  
     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 returns the parent of
     --  the list or node represented by X.
  
     function Paren_Count (N : Node_Id) return Nat;
*************** package Atree is
*** 537,552 ****
     procedure Rewrite (Old_Node, New_Node : Node_Id);
     --  This is used when a complete subtree is to be replaced. Old_Node is the
     --  root of the old subtree to be replaced, and New_Node is the root of the
!    --  newly constructed replacement subtree. The actual mechanism is to swap
!    --  the contents of these two nodes fixing up the parent pointers of the
!    --  replaced node (we do not attempt to preserve parent pointers for the
!    --  original node).
!    --  ??? The above explanation is incorrect, instead Copy_Node is called.
     --
     --  Note: New_Node may not contain references to Old_Node, for example as
!    --  descendants, since the rewrite would make such references invalid. If
!    --  New_Node does need to reference Old_Node, then these references should
!    --  be to a relocated copy of Old_Node (see Relocate_Node procedure).
     --
     --  Note: The Original_Node function applied to Old_Node (which has now
     --  been replaced by the contents of New_Node), can be used to obtain the
--- 532,544 ----
     procedure Rewrite (Old_Node, New_Node : Node_Id);
     --  This is used when a complete subtree is to be replaced. Old_Node is the
     --  root of the old subtree to be replaced, and New_Node is the root of the
!    --  newly constructed replacement subtree.
     --
     --  Note: New_Node may not contain references to Old_Node, for example as
!    --  descendants, since the rewrite would turn them into cyclic
!    --  self-references. If New_Node does need to reference Old_Node, then these
!    --  references should be to a relocated copy of Old_Node (see Relocate_Node
!    --  procedure).
     --
     --  Note: The Original_Node function applied to Old_Node (which has now
     --  been replaced by the contents of New_Node), can be used to obtain the
*************** package Atree is
*** 560,569 ****
     --  original contents of the Old_Node, but rather the New_Node value.
     --  Replace also preserves the setting of Comes_From_Source.
     --
!    --  Note that New_Node must not contain references to Old_Node, for example
!    --  as descendants, since the rewrite would make such references invalid. If
!    --  New_Node does need to reference Old_Node, then these references should
!    --  be to a relocated copy of Old_Node (see Relocate_Node procedure).
     --
     --  Replace is used in certain circumstances where it is desirable to
     --  suppress any history of the rewriting operation. Notably, it is used
--- 552,559 ----
     --  original contents of the Old_Node, but rather the New_Node value.
     --  Replace also preserves the setting of Comes_From_Source.
     --
!    --  The note in the documentation of Rewrite about the risk of creating
!    --  cyclic references also applies here.
     --
     --  Replace is used in certain circumstances where it is desirable to
     --  suppress any history of the rewriting operation. Notably, it is used
*************** package Atree is
*** 661,666 ****
--- 651,670 ----
     --  similarly for the other two cases. This can return something other
     --  than N only if N is an Entity.
  
+    function Node_To_Fetch_From_If_Set
+      (N : Node_Or_Entity_Id; Field : Node_Or_Entity_Field)
+      return Node_Or_Entity_Id is
+       (case Field_Descriptors (Field).Type_Only is
+          when No_Type_Only => N,
+          when Base_Type_Only => Base_Type_If_Set (N),
+          when Impl_Base_Type_Only => Implementation_Base_Type_If_Set (N),
+          when Root_Type_Only => Root_Type_If_Set (N));
+    --  This is a more permissive version of Node_To_Fetch_From, which
+    --  returns the same value, except it returns Empty in cases where
+    --  Node_To_Fetch_From would crash because relevant fields are not yet
+    --  set. This is used in Treepr, to allow it to print half-baked nodes
+    --  without crashing.
+ 
     -----------------------------
     -- Private Part Subpackage --
     -----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/atree.h gcc-16.1.0-RC-20260423/gcc/ada/atree.h
*** gcc-15.2.0/gcc/ada/atree.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/atree.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/aux-io.c gcc-16.1.0-RC-20260423/gcc/ada/aux-io.c
*** gcc-15.2.0/gcc/ada/aux-io.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/aux-io.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/back_end.adb gcc-16.1.0-RC-20260423/gcc/ada/back_end.adb
*** gcc-15.2.0/gcc/ada/back_end.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/back_end.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/back_end.ads gcc-16.1.0-RC-20260423/gcc/ada/back_end.ads
*** gcc-15.2.0/gcc/ada/back_end.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/back_end.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/backend_utils.adb gcc-16.1.0-RC-20260423/gcc/ada/backend_utils.adb
*** gcc-15.2.0/gcc/ada/backend_utils.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/backend_utils.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2021-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/backend_utils.ads gcc-16.1.0-RC-20260423/gcc/ada/backend_utils.ads
*** gcc-15.2.0/gcc/ada/backend_utils.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/backend_utils.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2021-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bcheck.adb gcc-16.1.0-RC-20260423/gcc/ada/bcheck.adb
*** gcc-15.2.0/gcc/ada/bcheck.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bcheck.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bcheck.ads gcc-16.1.0-RC-20260423/gcc/ada/bcheck.ads
*** gcc-15.2.0/gcc/ada/bcheck.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bcheck.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/binde.adb gcc-16.1.0-RC-20260423/gcc/ada/binde.adb
*** gcc-15.2.0/gcc/ada/binde.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/binde.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/binde.ads gcc-16.1.0-RC-20260423/gcc/ada/binde.ads
*** gcc-15.2.0/gcc/ada/binde.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/binde.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/binderr.adb gcc-16.1.0-RC-20260423/gcc/ada/binderr.adb
*** gcc-15.2.0/gcc/ada/binderr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/binderr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/binderr.ads gcc-16.1.0-RC-20260423/gcc/ada/binderr.ads
*** gcc-15.2.0/gcc/ada/binderr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/binderr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindgen.adb gcc-16.1.0-RC-20260423/gcc/ada/bindgen.adb
*** gcc-15.2.0/gcc/ada/bindgen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindgen.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Bindgen is
*** 53,65 ****
     --  Flag which indicates whether the program uses the GNARL library
     --  (presence of the unit System.OS_Interface)
  
-    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.
--- 53,58 ----
*************** package body Bindgen is
*** 483,489 ****
        --  but False for mains in other languages.) We do not want to do this if
        --  we're binding a library.
  
!       if not Bind_For_Library and not CodePeer_Mode then
           WBI ("      procedure s_stalib_adafinal;");
           Set_String ("      pragma Import (Ada, s_stalib_adafinal, ");
           Set_String ("""system__standard_library__adafinal"");");
--- 476,485 ----
        --  but False for mains in other languages.) We do not want to do this if
        --  we're binding a library.
  
!       if not Bind_For_Library
!         and not CodePeer_Mode
!         and not Suppress_Standard_Library_On_Target
!       then
           WBI ("      procedure s_stalib_adafinal;");
           Set_String ("      pragma Import (Ada, s_stalib_adafinal, ");
           Set_String ("""system__standard_library__adafinal"");");
*************** package body Bindgen is
*** 497,503 ****
        WBI ("");
        WBI ("   begin");
  
!       if not CodePeer_Mode then
           WBI ("      if not Is_Elaborated then");
           WBI ("         return;");
           WBI ("      end if;");
--- 493,501 ----
        WBI ("");
        WBI ("   begin");
  
!       if not CodePeer_Mode
!         and not Suppress_Standard_Library_On_Target
!       then
           WBI ("      if not Is_Elaborated then");
           WBI ("         return;");
           WBI ("      end if;");
*************** package body Bindgen is
*** 510,516 ****
        --  on whether this is the main program or a library.
  
        if not CodePeer_Mode then
!          if not Bind_For_Library then
              WBI ("      s_stalib_adafinal;");
           elsif Lib_Final_Built then
              WBI ("      finalize_library;");
--- 508,516 ----
        --  on whether this is the main program or a library.
  
        if not CodePeer_Mode then
!          if not Bind_For_Library
!            and not Suppress_Standard_Library_On_Target
!          then
              WBI ("      s_stalib_adafinal;");
           elsif Lib_Final_Built then
              WBI ("      finalize_library;");
*************** package body Bindgen is
*** 2483,2498 ****
           ALIs.Table (ALIs.First).Time_Slice_Value := Opt.Time_Slice_Value;
        end if;
  
-       --  Count number of elaboration calls
- 
-       for E in Elab_Order'Range loop
-          if Units.Table (Elab_Order (E)).No_Elab then
-             null;
-          else
-             Num_Elab_Calls := Num_Elab_Calls + 1;
-          end if;
-       end loop;
- 
        --  Count the number of statically allocated stacks to be generated by
        --  the binder. If the user has specified the number of default-sized
        --  secondary stacks, use that number. Otherwise start the count at one
--- 2483,2488 ----
*************** package body Bindgen is
*** 2506,2514 ****
        end if;
  
        for J in Units.First .. Units.Last loop
-          Num_Primary_Stacks :=
-            Num_Primary_Stacks + Units.Table (J).Primary_Stack_Count;
- 
           Num_Sec_Stacks :=
             Num_Sec_Stacks + Units.Table (J).Sec_Stack_Count;
        end loop;
--- 2496,2501 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/bindgen.ads gcc-16.1.0-RC-20260423/gcc/ada/bindgen.ads
*** gcc-15.2.0/gcc/ada/bindgen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindgen.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-augmentors.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-augmentors.adb
*** gcc-15.2.0/gcc/ada/bindo-augmentors.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-augmentors.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-augmentors.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-augmentors.ads
*** gcc-15.2.0/gcc/ada/bindo-augmentors.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-augmentors.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-builders.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-builders.adb
*** gcc-15.2.0/gcc/ada/bindo-builders.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-builders.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-builders.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-builders.ads
*** gcc-15.2.0/gcc/ada/bindo-builders.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-builders.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-diagnostics.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-diagnostics.adb
*** gcc-15.2.0/gcc/ada/bindo-diagnostics.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-diagnostics.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-diagnostics.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-diagnostics.ads
*** gcc-15.2.0/gcc/ada/bindo-diagnostics.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-diagnostics.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-elaborators.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-elaborators.adb
*** gcc-15.2.0/gcc/ada/bindo-elaborators.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-elaborators.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-elaborators.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-elaborators.ads
*** gcc-15.2.0/gcc/ada/bindo-elaborators.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-elaborators.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-graphs.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-graphs.adb
*** gcc-15.2.0/gcc/ada/bindo-graphs.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-graphs.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-graphs.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-graphs.ads
*** gcc-15.2.0/gcc/ada/bindo-graphs.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-graphs.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-units.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-units.adb
*** gcc-15.2.0/gcc/ada/bindo-units.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-units.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-units.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-units.ads
*** gcc-15.2.0/gcc/ada/bindo-units.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-units.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-validators.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-validators.adb
*** gcc-15.2.0/gcc/ada/bindo-validators.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-validators.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-validators.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-validators.ads
*** gcc-15.2.0/gcc/ada/bindo-validators.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-validators.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-writers.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo-writers.adb
*** gcc-15.2.0/gcc/ada/bindo-writers.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-writers.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo-writers.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo-writers.ads
*** gcc-15.2.0/gcc/ada/bindo-writers.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo-writers.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo.adb gcc-16.1.0-RC-20260423/gcc/ada/bindo.adb
*** gcc-15.2.0/gcc/ada/bindo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindo.ads gcc-16.1.0-RC-20260423/gcc/ada/bindo.ads
*** gcc-15.2.0/gcc/ada/bindo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindusg.adb gcc-16.1.0-RC-20260423/gcc/ada/bindusg.adb
*** gcc-15.2.0/gcc/ada/bindusg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindusg.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/bindusg.ads gcc-16.1.0-RC-20260423/gcc/ada/bindusg.ads
*** gcc-15.2.0/gcc/ada/bindusg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/bindusg.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/butil.adb gcc-16.1.0-RC-20260423/gcc/ada/butil.adb
*** gcc-15.2.0/gcc/ada/butil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/butil.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/butil.ads gcc-16.1.0-RC-20260423/gcc/ada/butil.ads
*** gcc-15.2.0/gcc/ada/butil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/butil.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/cal.c gcc-16.1.0-RC-20260423/gcc/ada/cal.c
*** gcc-15.2.0/gcc/ada/cal.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/cal.c	Thu Jan  1 00:00:00 1970
***************
*** 1,74 ****
- /****************************************************************************
-  *                                                                          *
-  *                         GNAT COMPILER COMPONENTS                         *
-  *                                                                          *
-  *                                   C A L                                  *
-  *                                                                          *
-  *                          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- *
-  * 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 file contains routines marked with pragmas Import in package       */
- /*  GNAT.Calendar. It is used to do Duration to timeval conversion.         */
- /*  These are simple wrapper functions to abstract the fact that the C      */
- /*  struct timeval fields are not normalized (they are generally            */
- /*  defined as int or long values).                                         */
- 
- #if defined (__vxworks)
- #ifdef __RTP__
- #include <time.h>
- #include <version.h>
- #if (_WRS_VXWORKS_MAJOR == 7) || (_WRS_VXWORKS_MINOR != 0)
- #include <sys/time.h>
- #endif
- #else
- #include <sys/times.h>
- #endif
- #elif defined (__nucleus__)
- #include <time.h>
- #else
- #include <sys/time.h>
- #endif
- 
- #ifdef __MINGW32__
- #include "mingw32.h"
- #include <winsock.h>
- #endif
- 
- void
- __gnat_timeval_to_duration (struct timeval *t, long long *sec, long *usec)
- {
-   *sec  = (long long) t->tv_sec;
-   *usec = (long) t->tv_usec;
- }
- 
- void
- __gnat_duration_to_timeval (long long sec, long usec, struct timeval *t)
- {
-   /* here we are doing implicit conversion to the struct timeval
-      fields types. */
- 
-   t->tv_sec = sec;
-   t->tv_usec = usec;
- }
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/casing.adb gcc-16.1.0-RC-20260423/gcc/ada/casing.adb
*** gcc-15.2.0/gcc/ada/casing.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/casing.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/casing.ads gcc-16.1.0-RC-20260423/gcc/ada/casing.ads
*** gcc-15.2.0/gcc/ada/casing.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/casing.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/checks.adb gcc-16.1.0-RC-20260423/gcc/ada/checks.adb
*** gcc-15.2.0/gcc/ada/checks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/checks.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Sem_Mech;       use Sem_Mech;
*** 56,62 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 55,60 ----
*************** package body Checks is
*** 328,338 ****
     --  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.
  
--- 326,337 ----
     --  Called by Apply_{Length,Range}_Checks to rewrite the tree with the
     --  Constraint_Error node.
  
!    function Is_Overflow_Arithmetic_Op (N : Node_Id) return Boolean;
!    --  Returns True if node N is for an arithmetic operation with operands
!    --  that have overflow operations. 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 or a modular type that has
!    --  the Unsigned_Base_Range aspect.
     --  These are the kinds of nodes for which special handling applies in
     --  MINIMIZED or ELIMINATED overflow checking mode.
  
*************** package body Checks is
*** 590,609 ****
        --  reset to reference the value expression of the constant).
  
     begin
!       --  See if alignment check needed. Note that we never need a check if the
!       --  maximum alignment is one, since the check will always succeed.
  
        --  Note: we do not check for checks suppressed here, since that check
        --  was done in Sem_Ch13 when the address clause was processed. We are
        --  only called if checks were not suppressed. The reason for this is
!       --  that we have to delay the call to Apply_Alignment_Check till freeze
!       --  time (so that all types etc are elaborated), but we have to check
!       --  the status of check suppressing at the point of the address clause.
  
!       if No (AC)
!         or else not Check_Address_Alignment (AC)
!         or else Maximum_Alignment = 1
!       then
           return;
        end if;
  
--- 589,605 ----
        --  reset to reference the value expression of the constant).
  
     begin
!       --  See if alignment check needed
  
        --  Note: we do not check for checks suppressed here, since that check
        --  was done in Sem_Ch13 when the address clause was processed. We are
        --  only called if checks were not suppressed. The reason for this is
!       --  that we have to delay the call to Apply_Address_Clause_Check till
!       --  freeze time (so that all types etc are elaborated), but we have to
!       --  check the status of check suppressing at the point of the address
!       --  clause.
  
!       if No (AC) or else not Check_Address_Alignment (AC) then
           return;
        end if;
  
*************** package body Checks is
*** 750,756 ****
        --  mode then just skip the check (it is not required in any case).
  
        when RE_Not_Available =>
!          return;
     end Apply_Address_Clause_Check;
  
     -------------------------------------
--- 746,752 ----
        --  mode then just skip the check (it is not required in any case).
  
        when RE_Not_Available =>
!          null;
     end Apply_Address_Clause_Check;
  
     -------------------------------------
*************** package body Checks is
*** 764,770 ****
        --  overflow checking mode set to MINIMIZED or ELIMINATED).
  
        if Overflow_Check_Mode = Strict
!         or else not Is_Signed_Integer_Arithmetic_Op (N)
        then
           Apply_Arithmetic_Overflow_Strict (N);
  
--- 760,766 ----
        --  overflow checking mode set to MINIMIZED or ELIMINATED).
  
        if Overflow_Check_Mode = Strict
!         or else not Is_Overflow_Arithmetic_Op (N)
        then
           Apply_Arithmetic_Overflow_Strict (N);
  
*************** package body Checks is
*** 852,858 ****
        --  sure not to generate the arithmetic overflow check in these cases
        --  (Exp_Ch4 would have a hard time removing them once generated).
  
!       if Is_Signed_Integer_Type (Typ)
          and then Nkind (Parent (N)) = N_Type_Conversion
        then
           Conversion_Optimization : declare
--- 848,854 ----
        --  sure not to generate the arithmetic overflow check in these cases
        --  (Exp_Ch4 would have a hard time removing them once generated).
  
!       if Has_Overflow_Operations (Typ)
          and then Nkind (Parent (N)) = N_Type_Conversion
        then
           Conversion_Optimization : declare
*************** package body Checks is
*** 970,984 ****
           --  we use a different approach, expanding to:
  
           --    typ (xxx_With_Ovflo_Check (Integer_NN (x), Integer_NN (y)))
  
           --  where xxx is Add, Multiply or Subtract as appropriate
  
           --  Find check type if one exists
  
           if Dsiz <= System_Max_Integer_Size then
!             Ctyp := Integer_Type_For (Dsiz, Uns => False);
  
!          --  No check type exists, use runtime call
  
           else
              if System_Max_Integer_Size = 64 then
--- 966,1026 ----
           --  we use a different approach, expanding to:
  
           --    typ (xxx_With_Ovflo_Check (Integer_NN (x), Integer_NN (y)))
+          --  or
+          --    typ (xxx_With_Ovflo_Check (Unsigned_NN (x), Unsigned_NN (y)))
  
           --  where xxx is Add, Multiply or Subtract as appropriate
  
           --  Find check type if one exists
  
           if Dsiz <= System_Max_Integer_Size then
!             Ctyp := Integer_Type_For (Dsiz,
!                       Uns => Has_Unsigned_Base_Range_Aspect (Base_Type (Typ)));
  
!          --  No check type exists, and the type has the unsigned base range
!          --  aspect; use runtime call.
! 
!          elsif Has_Unsigned_Base_Range_Aspect (Base_Type (Typ)) then
!             if System_Max_Integer_Size = 64 then
!                Ctyp := RTE (RE_Unsigned_64);
!             else
!                Ctyp := RTE (RE_Unsigned_128);
!             end if;
! 
!             if Nkind (N) = N_Op_Add then
!                if System_Max_Integer_Size = 64 then
!                   Cent := RE_Uns_Add_With_Ovflo_Check64;
!                else
!                   Cent := RE_Uns_Add_With_Ovflo_Check128;
!                end if;
! 
!             elsif Nkind (N) = N_Op_Subtract then
!                if System_Max_Integer_Size = 64 then
!                   Cent := RE_Uns_Subtract_With_Ovflo_Check64;
!                else
!                   Cent := RE_Uns_Subtract_With_Ovflo_Check128;
!                end if;
! 
!             else pragma Assert (Nkind (N) = N_Op_Multiply);
!                if System_Max_Integer_Size = 64 then
!                   Cent := RE_Uns_Multiply_With_Ovflo_Check64;
!                else
!                   Cent := RE_Uns_Multiply_With_Ovflo_Check128;
!                end if;
!             end if;
! 
!             Rewrite (N,
!               OK_Convert_To (Typ,
!                 Make_Function_Call (Loc,
!                   Name => New_Occurrence_Of (RTE (Cent), Loc),
!                   Parameter_Associations => New_List (
!                     OK_Convert_To (Ctyp, Left_Opnd  (N)),
!                     OK_Convert_To (Ctyp, Right_Opnd (N))))));
! 
!             Analyze_And_Resolve (N, Typ);
!             return;
! 
!          --  No check type exists, use runtime call (common case)
  
           else
              if System_Max_Integer_Size = 64 then
*************** package body Checks is
*** 1078,1084 ****
  
        exception
           when RE_Not_Available =>
!             return;
        end;
     end Apply_Arithmetic_Overflow_Strict;
  
--- 1120,1126 ----
  
        exception
           when RE_Not_Available =>
!             null;
        end;
     end Apply_Arithmetic_Overflow_Strict;
  
*************** package body Checks is
*** 1087,1099 ****
     ----------------------------------------------------
  
     procedure Apply_Arithmetic_Overflow_Minimized_Eliminated (Op : Node_Id) is
!       pragma Assert (Is_Signed_Integer_Arithmetic_Op (Op));
  
        Loc : constant Source_Ptr := Sloc (Op);
        P   : constant Node_Id    := Parent (Op);
  
!       LLIB : constant Entity_Id := Base_Type (Standard_Long_Long_Integer);
!       --  Operands and results are of this type when we convert
  
        Result_Type : constant Entity_Id := Etype (Op);
        --  Original result type
--- 1129,1143 ----
     ----------------------------------------------------
  
     procedure Apply_Arithmetic_Overflow_Minimized_Eliminated (Op : Node_Id) is
!       pragma Assert (Is_Overflow_Arithmetic_Op (Op));
  
        Loc : constant Source_Ptr := Sloc (Op);
        P   : constant Node_Id    := Parent (Op);
  
!       LL_Type : Entity_Id;
!       --  Operands and results are of this type when we perform convertion:
!       --  Long_Long_Integer or Long_Long_Unsigned (when the type of the
!       --  result has the Unsigned_Base_Range aspect).
  
        Result_Type : constant Entity_Id := Etype (Op);
        --  Original result type
*************** package body Checks is
*** 1115,1121 ****
        --  this node will be processed during the downwards recursion that
        --  is part of the processing in Minimize_Eliminate_Overflows).
  
!       if Is_Signed_Integer_Arithmetic_Op (P)
          or else Nkind (P) in N_Membership_Test
          or else Nkind (P) in N_Op_Compare
  
--- 1159,1165 ----
        --  this node will be processed during the downwards recursion that
        --  is part of the processing in Minimize_Eliminate_Overflows).
  
!       if Is_Overflow_Arithmetic_Op (P)
          or else Nkind (P) in N_Membership_Test
          or else Nkind (P) in N_Op_Compare
  
*************** package body Checks is
*** 1135,1141 ****
           --  Similarly, if these expressions are nested, we should go on.
  
           if Nkind (P) in N_If_Expression | N_Case_Expression
!            and then not Is_Signed_Integer_Arithmetic_Op (Parent (P))
           then
              null;
           elsif Nkind (P) in N_If_Expression | N_Case_Expression
--- 1179,1185 ----
           --  Similarly, if these expressions are nested, we should go on.
  
           if Nkind (P) in N_If_Expression | N_Case_Expression
!            and then not Is_Overflow_Arithmetic_Op (Parent (P))
           then
              null;
           elsif Nkind (P) in N_If_Expression | N_Case_Expression
*************** package body Checks is
*** 1156,1161 ****
--- 1200,1213 ----
  
        Minimize_Eliminate_Overflows (Op, Lo, Hi, Top_Level => True);
  
+       --  Initialize type of operands and results when we convert
+ 
+       if Has_Unsigned_Base_Range_Aspect (Base_Type (Result_Type)) then
+          LL_Type := Base_Type (Standard_Long_Long_Unsigned);
+       else
+          LL_Type := Base_Type (Standard_Long_Long_Integer);
+       end if;
+ 
        --  That call may but does not necessarily change the result type of Op.
        --  It is the job of this routine to undo such changes, so that at the
        --  top level, we have the proper type. This "undoing" is a point at
*************** package body Checks is
*** 1207,1213 ****
              Rtype : Entity_Id;
  
           begin
!             RHS := Convert_From_Bignum (Op);
  
              if Nkind (P) /= N_Type_Conversion then
                 Convert_To_And_Rewrite (Result_Type, RHS);
--- 1259,1265 ----
              Rtype : Entity_Id;
  
           begin
!             RHS := Convert_From_Bignum (Op, Result_Type);
  
              if Nkind (P) /= N_Type_Conversion then
                 Convert_To_And_Rewrite (Result_Type, RHS);
*************** package body Checks is
*** 1219,1225 ****
                 --  looked at later ???
  
              else
!                Rtype := LLIB;
              end if;
  
              Insert_Before
--- 1271,1277 ----
                 --  looked at later ???
  
              else
!                Rtype := LL_Type;
              end if;
  
              Insert_Before
*************** package body Checks is
*** 1238,1250 ****
              Analyze_And_Resolve (Op);
           end;
  
!       --  Here we know the result is Long_Long_Integer'Base, or that it has
!       --  been rewritten because the parent operation is a conversion. See
!       --  Apply_Arithmetic_Overflow_Strict.Conversion_Optimization.
  
        else
!          pragma Assert
!            (Etype (Op) = LLIB or else Nkind (Parent (Op)) = N_Type_Conversion);
  
           --  All we need to do here is to convert the result to the proper
           --  result type. As explained above for the Bignum case, we can
--- 1290,1303 ----
              Analyze_And_Resolve (Op);
           end;
  
!       --  Here we know the result is Long_Long_[Integer|Unsigned]'Base,
!       --  or that it has been rewritten because the parent operation is
!       --  a conversion.
!       --  See Apply_Arithmetic_Overflow_Strict.Conversion_Optimization.
  
        else
!          pragma Assert (Etype (Op) = LL_Type
!            or else Nkind (Parent (Op)) = N_Type_Conversion);
  
           --  All we need to do here is to convert the result to the proper
           --  result type. As explained above for the Bignum case, we can
*************** package body Checks is
*** 1480,1486 ****
  
        --  Also, if the expression is of an access type whose designated type is
        --  incomplete, then the access value must be null and we suppress the
!       --  check.
  
        if Known_Null (N) then
           return;
--- 1533,1540 ----
  
        --  Also, if the expression is of an access type whose designated type is
        --  incomplete, then the access value must be null and we suppress the
!       --  check. We also need to suppress it for a class-wide type whose root
!       --  type has no discriminants.
  
        if Known_Null (N) then
           return;
*************** package body Checks is
*** 1488,1494 ****
        elsif Is_Access_Type (S_Typ) then
           S_Typ := Designated_Type (S_Typ);
  
!          if Ekind (S_Typ) = E_Incomplete_Type then
              return;
           end if;
        end if;
--- 1542,1551 ----
        elsif Is_Access_Type (S_Typ) then
           S_Typ := Designated_Type (S_Typ);
  
!          if Ekind (S_Typ) = E_Incomplete_Type
!            or else (Is_Class_Wide_Type (S_Typ)
!                      and then not Has_Discriminants (Root_Type (S_Typ)))
!          then
              return;
           end if;
        end if;
*************** package body Checks is
*** 1539,1559 ****
           return;
        end if;
  
!       --  Suppress checks if the subtypes are the same. The check must be
!       --  preserved in an assignment to a formal, because the constraint is
!       --  given by the actual.
  
        if Nkind (Original_Node (N)) /= N_Allocator
          and then (No (Lhs)
                     or else not Is_Entity_Name (Lhs)
                     or else No (Param_Entity (Lhs)))
        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;
  
        --  We can also eliminate checks on allocators with a subtype mark that
        --  coincides with the context type. The context type may be a subtype
--- 1596,1613 ----
           return;
        end if;
  
!       --  Suppress checks if the subtypes are the same and constrained. The
!       --  check must be preserved in an assignment to a formal, because the
!       --  constraint is given by the actual.
  
        if Nkind (Original_Node (N)) /= N_Allocator
+         and then (if Do_Access then Designated_Type (Typ) else Typ) = S_Typ
+         and then Is_Constrained (S_Typ)
          and then (No (Lhs)
                     or else not Is_Entity_Name (Lhs)
                     or else No (Param_Entity (Lhs)))
        then
!          return;
  
        --  We can also eliminate checks on allocators with a subtype mark that
        --  coincides with the context type. The context type may be a subtype
*************** package body Checks is
*** 1775,1781 ****
        --  ensure that any needed overflow/division checks are properly applied.
  
        if Mode in Minimized_Or_Eliminated
!         and then Is_Signed_Integer_Type (Typ)
        then
           Apply_Arithmetic_Overflow_Minimized_Eliminated (N);
           return;
--- 1829,1835 ----
        --  ensure that any needed overflow/division checks are properly applied.
  
        if Mode in Minimized_Or_Eliminated
!         and then Has_Overflow_Operations (Typ)
        then
           Apply_Arithmetic_Overflow_Minimized_Eliminated (N);
           return;
*************** package body Checks is
*** 2534,2539 ****
--- 2588,2597 ----
                      Chars      => Name_Check,
                      Expression => Expr)));
  
+             --  The check is enabled unconditionally
+ 
+             Set_Is_Checked (Prag);
+ 
              --  Add a message unless exception messages are suppressed
  
              if not Exception_Locations_Suppressed then
*************** package body Checks is
*** 2591,2599 ****
           if Is_Scalar_Type (Typ) then
              Nam := Name_Valid;
  
!          --  For any non-scalar with scalar parts, generate 'Valid_Scalars test
  
!          elsif Scalar_Part_Present (Typ) then
              Nam := Name_Valid_Scalars;
  
           --  No test needed for other cases (no scalars to test)
--- 2649,2660 ----
           if Is_Scalar_Type (Typ) then
              Nam := Name_Valid;
  
!          --  For non-scalars with scalar parts, generate 'Valid_Scalars test,
!          --  except for unchecked unions since we cannot know where they are.
  
!          elsif Scalar_Part_Present (Typ)
!            and then not Is_Unchecked_Union (Typ)
!          then
              Nam := Name_Valid_Scalars;
  
           --  No test needed for other cases (no scalars to test)
*************** package body Checks is
*** 2685,2692 ****
           return;
        end if;
  
!       --  Inspect all the formals applying aliasing and scalar initialization
!       --  checks where applicable.
  
        Formal := First_Formal (Subp);
        while Present (Formal) loop
--- 2746,2752 ----
           return;
        end if;
  
!       --  Apply scalar initialization checks to formals where applicable
  
        Formal := First_Formal (Subp);
        while Present (Formal) loop
*************** package body Checks is
*** 4689,4696 ****
              --  giant useless bounds. Basically the number of bits in the
              --  result is the number of bits in the base multiplied by the
              --  value of the exponent. If this is big enough that the result
!             --  definitely won't fit in Long_Long_Integer, return immediately
!             --  and avoid computing giant bounds.
  
              --  The comparison here is approximate, but conservative, it
              --  only clicks on cases that are sure to exceed the bounds.
--- 4749,4756 ----
              --  giant useless bounds. Basically the number of bits in the
              --  result is the number of bits in the base multiplied by the
              --  value of the exponent. If this is big enough that the result
!             --  definitely won't fit in Long_Long_[Integer|Unsigned], return
!             --  immediately and avoid computing giant bounds.
  
              --  The comparison here is approximate, but conservative, it
              --  only clicks on cases that are sure to exceed the bounds.
*************** package body Checks is
*** 4916,4933 ****
     -- Convert_From_Bignum --
     -------------------------
  
!    function Convert_From_Bignum (N : Node_Id) return Node_Id is
!       Loc : constant Source_Ptr := Sloc (N);
  
     begin
        pragma Assert (Is_RTE (Etype (N), RE_Bignum));
  
        --  Construct call From Bignum
  
        return
          Make_Function_Call (Loc,
!           Name                   =>
!             New_Occurrence_Of (RTE (RE_From_Bignum), Loc),
            Parameter_Associations => New_List (Relocate_Node (N)));
     end Convert_From_Bignum;
  
--- 4976,5002 ----
     -- Convert_From_Bignum --
     -------------------------
  
!    function Convert_From_Bignum
!      (N           : Node_Id;
!       Result_Type : Entity_Id) return Node_Id
!    is
!       Loc     : constant Source_Ptr := Sloc (N);
!       Func_Id : Entity_Id;
  
     begin
        pragma Assert (Is_RTE (Etype (N), RE_Bignum));
  
        --  Construct call From Bignum
  
+       if Has_Unsigned_Base_Range_Aspect (Base_Type (Result_Type)) then
+          Func_Id := RTE (RE_LLU_From_Bignum);
+       else
+          Func_Id := RTE (RE_From_Bignum);
+       end if;
+ 
        return
          Make_Function_Call (Loc,
!           Name                   => New_Occurrence_Of (Func_Id, Loc),
            Parameter_Associations => New_List (Relocate_Node (N)));
     end Convert_From_Bignum;
  
*************** package body Checks is
*** 4936,4960 ****
     -----------------------
  
     function Convert_To_Bignum (N : Node_Id) return Node_Id is
!       Loc : constant Source_Ptr := Sloc (N);
  
     begin
        --  Nothing to do if Bignum already except call Relocate_Node
  
!       if Is_RTE (Etype (N), RE_Bignum) then
           return Relocate_Node (N);
  
!       --  Otherwise construct call to To_Bignum, converting the operand to the
!       --  required Long_Long_Integer form.
  
        else
!          pragma Assert (Is_Signed_Integer_Type (Etype (N)));
           return
             Make_Function_Call (Loc,
               Name                   =>
!                New_Occurrence_Of (RTE (RE_To_Bignum), Loc),
               Parameter_Associations => New_List (
!                Convert_To (Standard_Long_Long_Integer, Relocate_Node (N))));
        end if;
     end Convert_To_Bignum;
  
--- 5005,5044 ----
     -----------------------
  
     function Convert_To_Bignum (N : Node_Id) return Node_Id is
!       Loc     : constant Source_Ptr := Sloc (N);
!       Typ     : constant Entity_Id := Etype (N);
!       LL_Type : Entity_Id;
!       Func_Id : Entity_Id;
  
     begin
        --  Nothing to do if Bignum already except call Relocate_Node
  
!       if Is_RTE (Typ, RE_Bignum) then
           return Relocate_Node (N);
  
!       --  Otherwise construct call to To_Bignum, converting the operand to
!       --  the required Long_Long_[Integer|Unsigned] form.
  
        else
!          pragma Assert (Has_Overflow_Operations (Typ)
!            or else Base_Type (Typ) = Base_Type (Standard_Long_Long_Unsigned));
! 
!          if Has_Unsigned_Base_Range_Aspect (Base_Type (Typ))
!            or else Base_Type (Typ) = Base_Type (Standard_Long_Long_Unsigned)
!          then
!             LL_Type := Base_Type (RTE (RE_Long_Long_Unsigned));
!             Func_Id := RTE (RE_LLU_To_Bignum);
!          else
!             LL_Type := Base_Type (Standard_Long_Long_Integer);
!             Func_Id := RTE (RE_To_Bignum);
!          end if;
! 
           return
             Make_Function_Call (Loc,
               Name                   =>
!                New_Occurrence_Of (Func_Id, Loc),
               Parameter_Associations => New_List (
!                Convert_To (LL_Type, Relocate_Node (N))));
        end if;
     end Convert_To_Bignum;
  
*************** package body Checks is
*** 5492,5498 ****
           --  bound, because that means the result could wrap.
           --  Same applies for the lower bound if it is negative.
  
!          if Is_Modular_Integer_Type (Typ) then
              if Lor > Lo and then Hir <= Hbound then
                 Lo := Lor;
              end if;
--- 5576,5582 ----
           --  bound, because that means the result could wrap.
           --  Same applies for the lower bound if it is negative.
  
!          if Has_Modular_Operations (Typ) then
              if Lor > Lo and then Hir <= Hbound then
                 Lo := Lor;
              end if;
*************** package body Checks is
*** 6221,6229 ****
        if Overflow_Checks_Suppressed (Etype (N)) then
           return;
  
!       --  Nothing to do for unsigned integer types, which do not overflow
  
!       elsif Is_Modular_Integer_Type (Typ) then
           return;
        end if;
  
--- 6305,6313 ----
        if Overflow_Checks_Suppressed (Etype (N)) then
           return;
  
!       --  Nothing to do for modular integer types, which do not overflow
  
!       elsif Has_Modular_Operations (Typ) then
           return;
        end if;
  
*************** package body Checks is
*** 6437,6444 ****
           if Debug_Flag_CC then
              w ("  exception occurred, overflow flag set");
           end if;
- 
-          return;
     end Enable_Overflow_Check;
  
     ------------------------
--- 6521,6526 ----
*************** package body Checks is
*** 6686,6693 ****
           if Debug_Flag_CC then
              w ("  exception occurred, range flag set");
           end if;
- 
-          return;
     end Enable_Range_Check;
  
     ------------------
--- 6768,6773 ----
*************** package body Checks is
*** 7091,7098 ****
        end loop;
  
        --  If we fall through entry was not found
- 
-       return;
     end Find_Check;
  
     ---------------------------------
--- 7171,7176 ----
*************** package body Checks is
*** 8120,8126 ****
  
        elsif Nkind (Expr) = N_Selected_Component
          and then Present (Component_Clause (Entity (Selector_Name (Expr))))
!         and then Is_Modular_Integer_Type (Typ)
          and then Modulus (Typ) = 2 ** Esize (Entity (Selector_Name (Expr)))
        then
           return;
--- 8198,8204 ----
  
        elsif Nkind (Expr) = N_Selected_Component
          and then Present (Component_Clause (Entity (Selector_Name (Expr))))
!         and then Has_Modular_Operations (Typ)
          and then Modulus (Typ) = 2 ** Esize (Entity (Selector_Name (Expr)))
        then
           return;
*************** package body Checks is
*** 8331,8341 ****
        end;
     end Insert_Valid_Check;
  
!    -------------------------------------
!    -- Is_Signed_Integer_Arithmetic_Op --
!    -------------------------------------
  
!    function Is_Signed_Integer_Arithmetic_Op (N : Node_Id) return Boolean is
     begin
        case Nkind (N) is
           when N_Op_Abs
--- 8409,8419 ----
        end;
     end Insert_Valid_Check;
  
!    -------------------------------
!    -- Is_Overflow_Arithmetic_Op --
!    -------------------------------
  
!    function Is_Overflow_Arithmetic_Op (N : Node_Id) return Boolean is
     begin
        case Nkind (N) is
           when N_Op_Abs
*************** package body Checks is
*** 8349,8368 ****
              | N_Op_Rem
              | N_Op_Subtract
           =>
!             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
           =>
!             return Is_Signed_Integer_Type (Etype (N));
  
           when others =>
              return False;
        end case;
!    end Is_Signed_Integer_Arithmetic_Op;
  
     ----------------------------------
     -- Install_Null_Excluding_Check --
--- 8427,8446 ----
              | N_Op_Rem
              | N_Op_Subtract
           =>
!             return Has_Overflow_Operations (Etype (N));
  
           when N_Op_Compare =>
!             return Has_Overflow_Operations (Etype (Left_Opnd (N)));
  
           when N_Case_Expression
              | N_If_Expression
           =>
!             return Has_Overflow_Operations (Etype (N));
  
           when others =>
              return False;
        end case;
!    end Is_Overflow_Arithmetic_Op;
  
     ----------------------------------
     -- Install_Null_Excluding_Check --
*************** package body Checks is
*** 8902,8907 ****
--- 8980,8987 ----
     function Make_Bignum_Block (Loc : Source_Ptr) return Node_Id is
        M : constant Entity_Id := Make_Defining_Identifier (Loc, Name_uM);
     begin
+       Check_Restriction (No_Secondary_Stack, M);
+ 
        return
          Make_Block_Statement (Loc,
            Declarations               =>
*************** package body Checks is
*** 8918,8926 ****
     --  This is a recursive routine that is called at the top of an expression
     --  tree to properly process overflow checking for a whole subtree by making
     --  recursive calls to process operands. This processing may involve the use
!    --  of bignum or long long integer arithmetic, which will change the types
!    --  of operands and results. That's why we can't do this bottom up (since
!    --  it would interfere with semantic analysis).
  
     --  What happens is that if MINIMIZED/ELIMINATED mode is in effect then
     --  the operator expansion routines, as well as the expansion routines for
--- 8998,9006 ----
     --  This is a recursive routine that is called at the top of an expression
     --  tree to properly process overflow checking for a whole subtree by making
     --  recursive calls to process operands. This processing may involve the use
!    --  of bignum or long long [integer|unsigned] arithmetic, which will change
!    --  the types of operands and results. That's why we can't do this bottom up
!    --  (since it would interfere with semantic analysis).
  
     --  What happens is that if MINIMIZED/ELIMINATED mode is in effect then
     --  the operator expansion routines, as well as the expansion routines for
*************** package body Checks is
*** 8951,8958 ****
        Top_Level : Boolean)
     is
        Rtyp : constant Entity_Id := Etype (N);
!       pragma Assert (Is_Signed_Integer_Type (Rtyp));
!       --  Result type, must be a signed integer type
  
        Check_Mode : constant Overflow_Mode_Type := Overflow_Check_Mode;
        pragma Assert (Check_Mode in Minimized_Or_Eliminated);
--- 9031,9039 ----
        Top_Level : Boolean)
     is
        Rtyp : constant Entity_Id := Etype (N);
!       pragma Assert (Has_Overflow_Operations (Rtyp));
!       --  Result type, must be a signed type or a modular type that has the
!       --  Unsigned_Base_Range aspect.
  
        Check_Mode : constant Overflow_Mode_Type := Overflow_Check_Mode;
        pragma Assert (Check_Mode in Minimized_Or_Eliminated);
*************** package body Checks is
*** 8966,8977 ****
        Lhi : Uint := No_Uint;  -- initialize to prevent warning
        --  Ranges of values for left operand (operator case)
  
!       LLIB : constant Entity_Id := Base_Type (Standard_Long_Long_Integer);
!       --  Operands and results are of this type when we convert
  
!       LLLo : constant Uint := Intval (Type_Low_Bound  (LLIB));
!       LLHi : constant Uint := Intval (Type_High_Bound (LLIB));
!       --  Bounds of Long_Long_Integer
  
        Binary : constant Boolean := Nkind (N) in N_Binary_Op;
        --  Indicates binary operator case
--- 9047,9060 ----
        Lhi : Uint := No_Uint;  -- initialize to prevent warning
        --  Ranges of values for left operand (operator case)
  
!       LL_Type : Entity_Id;
!       --  Operands and results are of this type when we perform convertion:
!       --  Long_Long_Integer or Long_Long_Unsigned (when the type of the
!       --  result has the Unsigned_Base_Range aspect).
  
!       LLLo : Uint;
!       LLHi : Uint;
!       --  Bounds of LL_Type
  
        Binary : constant Boolean := Nkind (N) in N_Binary_Op;
        --  Indicates binary operator case
*************** package body Checks is
*** 8985,8994 ****
        --  doing the operation in Bignum mode (or in the case of a case or if
        --  expression, converting all the dependent expressions to Bignum).
  
!       Long_Long_Integer_Operands : Boolean;
        --  Set True if one or more operands is already of type Long_Long_Integer
!       --  which means that if the result is known to be in the result type
!       --  range, then we must convert such operands back to the result type.
  
        procedure Reanalyze (Typ : Entity_Id; Suppress : Boolean := False);
        --  This is called when we have modified the node and we therefore need
--- 9068,9078 ----
        --  doing the operation in Bignum mode (or in the case of a case or if
        --  expression, converting all the dependent expressions to Bignum).
  
!       Long_Long_Operands : Boolean;
        --  Set True if one or more operands is already of type Long_Long_Integer
!       --  or Long_Long_Unsigned (which means that if the result is known to be
!       --  in the result type range). Then we must convert such operands back to
!       --  the result type.
  
        procedure Reanalyze (Typ : Entity_Id; Suppress : Boolean := False);
        --  This is called when we have modified the node and we therefore need
*************** package body Checks is
*** 9124,9132 ****
        Lo := No_Uint;
        Hi := No_Uint;
  
!       --  Case where we do not have a signed integer arithmetic operation
  
!       if not Is_Signed_Integer_Arithmetic_Op (N) then
  
           --  Use the normal Determine_Range routine to get the range. We
           --  don't require operands to be valid, invalid values may result in
--- 9208,9227 ----
        Lo := No_Uint;
        Hi := No_Uint;
  
!       --  Initialize type of operands and results when we perform conversion
  
!       if Has_Unsigned_Base_Range_Aspect (Base_Type (Rtyp)) then
!          LL_Type := Base_Type (Standard_Long_Long_Unsigned);
!       else
!          LL_Type := Base_Type (Standard_Long_Long_Integer);
!       end if;
! 
!       LLLo := Intval (Type_Low_Bound  (LL_Type));
!       LLHi := Intval (Type_High_Bound (LL_Type));
! 
!       --  Case where we do not have an overflow arithmetic operation
! 
!       if not Is_Overflow_Arithmetic_Op (N) then
  
           --  Use the normal Determine_Range routine to get the range. We
           --  don't require operands to be valid, invalid values may result in
*************** package body Checks is
*** 9171,9178 ****
              if No (Rlo) then
                 Bignum_Operands := True;
              else
!                Long_Long_Integer_Operands :=
!                  Etype (Then_DE) = LLIB or else Etype (Else_DE) = LLIB;
  
                 Min (Lo, Rlo);
                 Max (Hi, Rhi);
--- 9266,9273 ----
              if No (Rlo) then
                 Bignum_Operands := True;
              else
!                Long_Long_Operands :=
!                  Etype (Then_DE) = LL_Type or else Etype (Else_DE) = LL_Type;
  
                 Min (Lo, Rlo);
                 Max (Hi, Rhi);
*************** package body Checks is
*** 9194,9222 ****
  
                 Reanalyze (RTE (RE_Bignum), Suppress => True);
  
!             --  If we have no Long_Long_Integer operands, then we are in result
!             --  range, since it means that none of our operands felt the need
!             --  to worry about overflow (otherwise it would have already been
!             --  converted to long long integer or bignum). We reexpand to
!             --  complete the expansion of the if expression (but we do not
!             --  need to reanalyze).
  
!             elsif not Long_Long_Integer_Operands then
                 Set_Do_Overflow_Check (N, False);
                 Reexpand;
  
!             --  Otherwise convert us to long long integer mode. Note that we
!             --  don't need any further overflow checking at this level.
  
              else
!                Convert_To_And_Rewrite (LLIB, Then_DE);
!                Convert_To_And_Rewrite (LLIB, Else_DE);
!                Set_Etype (N, LLIB);
  
                 --  Now reanalyze with overflow checks off
  
                 Set_Do_Overflow_Check (N, False);
!                Reanalyze (LLIB, Suppress => True);
              end if;
           end;
  
--- 9289,9317 ----
  
                 Reanalyze (RTE (RE_Bignum), Suppress => True);
  
!             --  If we have no Long_Long_[Integer|Unsigned] operands, then we
!             --  are in result range, since it means that none of our operands
!             --  felt the need to worry about overflow (otherwise it would have
!             --  already been converted to Long_Long_[Integer|Unsigned] or
!             --  bignum). We reexpand to complete the expansion of the if
!             --  expression (but we do not need to reanalyze).
  
!             elsif not Long_Long_Operands then
                 Set_Do_Overflow_Check (N, False);
                 Reexpand;
  
!             --  Otherwise convert us to long long [integer|unsigned] mode. Note
!             --  that we don't need any further overflow checking at this level.
  
              else
!                Convert_To_And_Rewrite (LL_Type, Then_DE);
!                Convert_To_And_Rewrite (LL_Type, Else_DE);
!                Set_Etype (N, LL_Type);
  
                 --  Now reanalyze with overflow checks off
  
                 Set_Do_Overflow_Check (N, False);
!                Reanalyze (LL_Type, Suppress => True);
              end if;
           end;
  
*************** package body Checks is
*** 9226,9232 ****
  
        elsif Nkind (N) = N_Case_Expression then
           Bignum_Operands := False;
!          Long_Long_Integer_Operands := False;
  
           declare
              Alt : Node_Id;
--- 9321,9327 ----
  
        elsif Nkind (N) = N_Case_Expression then
           Bignum_Operands := False;
!          Long_Long_Operands := False;
  
           declare
              Alt : Node_Id;
*************** package body Checks is
*** 9245,9272 ****
  
                    if No (Lo) then
                       Bignum_Operands := True;
!                   elsif Etype (Aexp) = LLIB then
!                      Long_Long_Integer_Operands := True;
                    end if;
                 end;
  
                 Next (Alt);
              end loop;
  
!             --  If we have no bignum or long long integer operands, it means
!             --  that none of our dependent expressions could raise overflow.
              --  In this case, we simply return with no changes except for
              --  resetting the overflow flag, since we are done with overflow
              --  checks for this node. We will reexpand to get the needed
              --  expansion for the case expression, but we do not need to
              --  reanalyze, since nothing has changed.
  
!             if not (Bignum_Operands or Long_Long_Integer_Operands) then
                 Set_Do_Overflow_Check (N, False);
                 Reexpand (Suppress => True);
  
              --  Otherwise we are going to rebuild the case expression using
!             --  either bignum or long long integer operands throughout.
  
              else
                 declare
--- 9340,9370 ----
  
                    if No (Lo) then
                       Bignum_Operands := True;
!                   elsif Etype (Aexp) = LL_Type then
!                      Long_Long_Operands := True;
                    end if;
                 end;
  
                 Next (Alt);
              end loop;
  
!             --  If we have no bignum or long long [integer|unsigned] operands,
!             --  it means that none of our dependent expressions could raise
!             --  overflow.
! 
              --  In this case, we simply return with no changes except for
              --  resetting the overflow flag, since we are done with overflow
              --  checks for this node. We will reexpand to get the needed
              --  expansion for the case expression, but we do not need to
              --  reanalyze, since nothing has changed.
  
!             if not (Bignum_Operands or Long_Long_Operands) then
                 Set_Do_Overflow_Check (N, False);
                 Reexpand (Suppress => True);
  
              --  Otherwise we are going to rebuild the case expression using
!             --  either bignum or long long [integer|unsigned] operands
!             --  throughout.
  
              else
                 declare
*************** package body Checks is
*** 9282,9289 ****
                          New_Exp := Convert_To_Bignum (Expression (Alt));
                          Rtype   := RTE (RE_Bignum);
                       else
!                         New_Exp := Convert_To (LLIB, Expression (Alt));
!                         Rtype   := LLIB;
                       end if;
  
                       Append_To (New_Alts,
--- 9380,9387 ----
                          New_Exp := Convert_To_Bignum (Expression (Alt));
                          Rtype   := RTE (RE_Bignum);
                       else
!                         New_Exp := Convert_To (LL_Type, Expression (Alt));
!                         Rtype   := LL_Type;
                       end if;
  
                       Append_To (New_Alts,
*************** package body Checks is
*** 9320,9330 ****
             (Left_Opnd (N), Llo, Lhi, Top_Level => False);
        end if;
  
!       --  Record if we have Long_Long_Integer operands
  
!       Long_Long_Integer_Operands :=
!         Etype (Right_Opnd (N)) = LLIB
!           or else (Binary and then Etype (Left_Opnd (N)) = LLIB);
  
        --  If either operand is a bignum, then result will be a bignum and we
        --  don't need to do any range analysis. As previously discussed we could
--- 9418,9428 ----
             (Left_Opnd (N), Llo, Lhi, Top_Level => False);
        end if;
  
!       --  Record if we have Long_Long_[Integer|Unsigned] operands
  
!       Long_Long_Operands :=
!         Etype (Right_Opnd (N)) = LL_Type
!           or else (Binary and then Etype (Left_Opnd (N)) = LL_Type);
  
        --  If either operand is a bignum, then result will be a bignum and we
        --  don't need to do any range analysis. As previously discussed we could
*************** package body Checks is
*** 9346,9360 ****
        end if;
  
        --  Here for the case where we have not rewritten anything (no bignum
!       --  operands or long long integer operands), and we know the result.
        --  If we know we are in the result range, and we do not have Bignum
!       --  operands or Long_Long_Integer operands, we can just reexpand with
!       --  overflow checks turned off (since we know we cannot have overflow).
        --  As always the reexpansion is required to complete expansion of the
        --  operator, but we do not need to reanalyze, and we prevent recursion
        --  by suppressing the check.
  
!       if not (Bignum_Operands or Long_Long_Integer_Operands)
          and then In_Result_Range
        then
           Set_Do_Overflow_Check (N, False);
--- 9444,9462 ----
        end if;
  
        --  Here for the case where we have not rewritten anything (no bignum
!       --  operands or Long_Long_[Integer|Unsigned] operands), and we know
!       --  the result.
! 
        --  If we know we are in the result range, and we do not have Bignum
!       --  operands or Long_Long_[Integer|Unsigned] operands, we can just
!       --  reexpand with overflow checks turned off (since we know we cannot
!       --  have overflow).
! 
        --  As always the reexpansion is required to complete expansion of the
        --  operator, but we do not need to reanalyze, and we prevent recursion
        --  by suppressing the check.
  
!       if not (Bignum_Operands or Long_Long_Operands)
          and then In_Result_Range
        then
           Set_Do_Overflow_Check (N, False);
*************** package body Checks is
*** 9362,9383 ****
           return;
  
        --  Here we know that we are not in the result range, and in the general
!       --  case we will move into either the Bignum or Long_Long_Integer domain
!       --  to compute the result. However, there is one exception. If we are
!       --  at the top level, and we do not have Bignum or Long_Long_Integer
!       --  operands, we will have to immediately convert the result back to
!       --  the result type, so there is no point in Bignum/Long_Long_Integer
!       --  fiddling.
  
        elsif Top_Level
!         and then not (Bignum_Operands or Long_Long_Integer_Operands)
  
          --  One further refinement. If we are at the top level, but our parent
!         --  is a type conversion, then go into bignum or long long integer node
!         --  since the result will be converted to that type directly without
!         --  going through the result type, and we may avoid an overflow. This
!         --  is the case for example of Long_Long_Integer (A ** 4), where A is
!         --  of type Integer, and the result A ** 4 fits in Long_Long_Integer
          --  but does not fit in Integer.
  
          and then Nkind (Parent (N)) /= N_Type_Conversion
--- 9464,9487 ----
           return;
  
        --  Here we know that we are not in the result range, and in the general
!       --  case we will move into either the Long_Long_[Integer|Unsigned] or
!       --  Bignum domain to compute the result. However, there is one exception.
!       --  If we are at the top level, and we do not have Long_Long_[Integer|
!       --  Unsigned] or Bignum operands, we will have to immediately convert
!       --  the result back to the result type, so there is no point in
!       --  Long_Long_[Integer|Unsigned]/Bignum fiddling.
  
        elsif Top_Level
!         and then not (Bignum_Operands or Long_Long_Operands)
  
          --  One further refinement. If we are at the top level, but our parent
!         --  is a type conversion, then go into bignum or long long [integer|
!         --  unsigned] node since the result will be converted to that type
!         --  directly without going through the result type, and we may avoid
!         --  an overflow.
! 
!         --  This is the case for example of Long_Long_Integer (A ** 4), where A
!         --  is of type Integer, and the result A ** 4 fits in Long_Long_Integer
          --  but does not fit in Integer.
  
          and then Nkind (Parent (N)) /= N_Type_Conversion
*************** package body Checks is
*** 9397,9404 ****
  
        --  Cases where we do the operation in Bignum mode. This happens either
        --  because one of our operands is in Bignum mode already, or because
!       --  the computed bounds are outside the bounds of Long_Long_Integer,
!       --  which in some cases can be indicated by Hi and Lo being No_Uint.
  
        --  Note: we could do better here and in some cases switch back from
        --  Bignum mode to normal mode, e.g. big mod 2 must be in the range
--- 9501,9509 ----
  
        --  Cases where we do the operation in Bignum mode. This happens either
        --  because one of our operands is in Bignum mode already, or because
!       --  the computed bounds are outside the bounds of Long_Long_[Integer|
!       --  Unsigned], which in some cases can be indicated by Hi and Lo being
!       --  No_Uint.
  
        --  Note: we could do better here and in some cases switch back from
        --  Bignum mode to normal mode, e.g. big mod 2 must be in the range
*************** package body Checks is
*** 9407,9415 ****
  
        elsif No (Lo) or else Lo < LLLo or else Hi > LLHi then
  
!          --  OK, we are definitely outside the range of Long_Long_Integer. The
!          --  question is whether to move to Bignum mode, or stay in the domain
!          --  of Long_Long_Integer, signalling that an overflow check is needed.
  
           --  Obviously in MINIMIZED mode we stay with LLI, since we are not in
           --  the Bignum business. In ELIMINATED mode, we will normally move
--- 9512,9521 ----
  
        elsif No (Lo) or else Lo < LLLo or else Hi > LLHi then
  
!          --  OK, we are definitely outside the range of Long_Long_[Integer|
!          --  Unsigned]. The question is whether to move to Bignum mode, or
!          --  stay in the domain of Long_Long_[Integer|Unsigned], signalling
!          --  that an overflow check is needed.
  
           --  Obviously in MINIMIZED mode we stay with LLI, since we are not in
           --  the Bignum business. In ELIMINATED mode, we will normally move
*************** package body Checks is
*** 9427,9435 ****
                 Enable_Overflow_Check (N);
              end if;
  
!             --  The result now has to be in Long_Long_Integer mode, so adjust
!             --  the possible range to reflect this. Note these calls also
!             --  change No_Uint values from the top level case to LLI bounds.
  
              Max (Lo, LLLo);
              Min (Hi, LLHi);
--- 9533,9542 ----
                 Enable_Overflow_Check (N);
              end if;
  
!             --  The result now has to be in Long_Long_[Integer|Unsigned] mode,
!             --  so adjust the possible range to reflect this. Note these calls
!             --  also change No_Uint values from the top level case to LL_Type
!             --  bounds.
  
              Max (Lo, LLLo);
              Min (Hi, LLHi);
*************** package body Checks is
*** 9508,9546 ****
              end;
           end if;
  
!       --  Otherwise we are in range of Long_Long_Integer, so no overflow
!       --  check is required, at least not yet.
  
        else
           Set_Do_Overflow_Check (N, False);
        end if;
  
        --  Here we are not in Bignum territory, but we may have long long
!       --  integer operands that need special handling. First a special check:
!       --  If an exponentiation operator exponent is of type Long_Long_Integer,
!       --  it means we converted it to prevent overflow, but exponentiation
!       --  requires a Natural right operand, so convert it back to Natural.
!       --  This conversion may raise an exception which is fine.
  
!       if Nkind (N) = N_Op_Expon and then Etype (Right_Opnd (N)) = LLIB then
           Convert_To_And_Rewrite (Standard_Natural, Right_Opnd (N));
        end if;
  
!       --  Here we will do the operation in Long_Long_Integer. We do this even
!       --  if we know an overflow check is required, better to do this in long
!       --  long integer mode, since we are less likely to overflow.
  
!       --  Convert right or only operand to Long_Long_Integer, except that
!       --  we do not touch the exponentiation right operand.
  
        if Nkind (N) /= N_Op_Expon then
!          Convert_To_And_Rewrite (LLIB, Right_Opnd (N));
        end if;
  
!       --  Convert left operand to Long_Long_Integer for binary case
  
        if Binary then
!          Convert_To_And_Rewrite (LLIB, Left_Opnd (N));
        end if;
  
        --  Reset node to unanalyzed
--- 9615,9656 ----
              end;
           end if;
  
!       --  Otherwise we are in range of Long_Long_[Integer|Unsigned], so no
!       --  overflow check is required, at least not yet.
  
        else
           Set_Do_Overflow_Check (N, False);
        end if;
  
        --  Here we are not in Bignum territory, but we may have long long
!       --  [integer|unsigned] operands that need special handling.
  
!       --  First a special check: If an exponentiation operator exponent is of
!       --  type Long_Long_[Integer|Unsigned] it means we converted it to prevent
!       --  overflow, but exponentiation requires a Natural right operand, so
!       --  convert it back to Natural. This conversion may raise an exception
!       --  which is fine.
! 
!       if Nkind (N) = N_Op_Expon and then Etype (Right_Opnd (N)) = LL_Type then
           Convert_To_And_Rewrite (Standard_Natural, Right_Opnd (N));
        end if;
  
!       --  Here we will do the operation in Long_Long_[Integer|Unsigned]. We do
!       --  this even if we know an overflow check is required, better to do this
!       --  in long long [integer|unsigned] mode, since we are less likely to
!       --  overflow.
  
!       --  Convert right or only operand to Long_Long_[Integer|Unsigned], except
!       --  that we do not touch the exponentiation right operand.
  
        if Nkind (N) /= N_Op_Expon then
!          Convert_To_And_Rewrite (LL_Type, Right_Opnd (N));
        end if;
  
!       --  Convert left operand to Long_Long_[Integer|Unsigned] for binary case
  
        if Binary then
!          Convert_To_And_Rewrite (LL_Type, Left_Opnd (N));
        end if;
  
        --  Reset node to unanalyzed
*************** package body Checks is
*** 9569,9577 ****
           Scope_Suppress.Overflow_Mode_Assertions := Strict;
  
           if not Do_Overflow_Check (N) then
!             Reanalyze (LLIB, Suppress => True);
           else
!             Reanalyze (LLIB);
           end if;
  
           Scope_Suppress.Overflow_Mode_General    := SG;
--- 9679,9687 ----
           Scope_Suppress.Overflow_Mode_Assertions := Strict;
  
           if not Do_Overflow_Check (N) then
!             Reanalyze (LL_Type, Suppress => True);
           else
!             Reanalyze (LL_Type);
           end if;
  
           Scope_Suppress.Overflow_Mode_General    := SG;
diff -Nrcpad gcc-15.2.0/gcc/ada/checks.ads gcc-16.1.0-RC-20260423/gcc/ada/checks.ads
*** gcc-15.2.0/gcc/ada/checks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/checks.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 294,309 ****
     --  that compares discriminants of the expression with discriminants of the
     --  type. Also used directly for membership tests (see Exp_Ch4.Expand_N_In).
  
!    function Convert_From_Bignum (N : Node_Id) return Node_Id;
     --  Returns result of converting node N from Bignum. The returned value is
     --  not analyzed, the caller takes responsibility for this. Node N must be
!    --  a subexpression node of type Bignum. The result is Long_Long_Integer.
  
     function Convert_To_Bignum (N : Node_Id) return Node_Id;
     --  Returns result of converting node N to Bignum. The returned value is not
     --  analyzed, the caller takes responsibility for this. Node N must be a
!    --  subexpression node of a signed integer type or Bignum type (if it is
!    --  already a Bignum, the returned value is Relocate_Node (N)).
  
     procedure Determine_Range
       (N            : Node_Id;
--- 294,314 ----
     --  that compares discriminants of the expression with discriminants of the
     --  type. Also used directly for membership tests (see Exp_Ch4.Expand_N_In).
  
!    function Convert_From_Bignum
!      (N           : Node_Id;
!       Result_Type : Entity_Id) return Node_Id;
     --  Returns result of converting node N from Bignum. The returned value is
     --  not analyzed, the caller takes responsibility for this. Node N must be
!    --  a subexpression node of type Bignum. The result is Long_Long_Unsigned
!    --  if Result_Type has aspect Unsigned_Base_Range; otherwise the result is
!    --  Long_Long_Integer.
  
     function Convert_To_Bignum (N : Node_Id) return Node_Id;
     --  Returns result of converting node N to Bignum. The returned value is not
     --  analyzed, the caller takes responsibility for this. Node N must be a
!    --  subexpression node of a Bignum type, a signed integer type, a long long
!    --  [integer | unsigned] type, or a type with the Unsigned_Base_Range aspect
!    --  (if it is already a Bignum, the returned value is Relocate_Node (N)).
  
     procedure Determine_Range
       (N            : Node_Id;
diff -Nrcpad gcc-15.2.0/gcc/ada/cio.c gcc-16.1.0-RC-20260423/gcc/ada/cio.c
*** gcc-15.2.0/gcc/ada/cio.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/cio.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/clean.adb gcc-16.1.0-RC-20260423/gcc/ada/clean.adb
*** gcc-15.2.0/gcc/ada/clean.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/clean.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 319,325 ****
                    Delete ("", Executable);
                 end if;
  
!                Delete_Binder_Generated_Files (Get_Current_Dir, Source);
              end;
           end if;
        end loop;
--- 319,327 ----
                    Delete ("", Executable);
                 end if;
  
!                Delete_Binder_Generated_Files
!                  (GNAT.Directory_Operations.Get_Current_Dir,
!                   Source);
              end;
           end if;
        end loop;
*************** package body Clean is
*** 405,411 ****
        Source : File_Name_Type)
     is
        Source_Name : constant String   := Get_Name_String (Source);
!       Current     : constant String   := Get_Current_Dir;
        Last        : constant Positive := B_Start'Length + Source_Name'Length;
        File_Name   : String (1 .. Last + 4);
  
--- 407,414 ----
        Source : File_Name_Type)
     is
        Source_Name : constant String   := Get_Name_String (Source);
!       Current : constant String :=
!         GNAT.Directory_Operations.Get_Current_Dir;
        Last        : constant Positive := B_Start'Length + Source_Name'Length;
        File_Name   : String (1 .. Last + 4);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/clean.ads gcc-16.1.0-RC-20260423/gcc/ada/clean.ads
*** gcc-15.2.0/gcc/ada/clean.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/clean.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/comperr.adb gcc-16.1.0-RC-20260423/gcc/ada/comperr.adb
*** gcc-15.2.0/gcc/ada/comperr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/comperr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 37,43 ****
  with Opt;            use Opt;
  with Osint;          use Osint;
  with Output;         use Output;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Sprint;         use Sprint;
--- 37,42 ----
*************** package body Comperr is
*** 146,152 ****
  
        if Serious_Errors_Detected /= 0 and then not Debug_Flag_K then
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
  
           Set_Standard_Error;
           Write_Str ("compilation abandoned due to previous error");
--- 145,151 ----
  
        if Serious_Errors_Detected /= 0 and then not Debug_Flag_K then
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (E_Errors);
  
           Set_Standard_Error;
           Write_Str ("compilation abandoned due to previous error");
*************** package body Comperr is
*** 307,322 ****
  
                    Write_Str
                      ("| Please submit a bug report by email " &
!                      "to report@adacore.com.");
                    End_Line;
  
                    Write_Str
!                     ("| GAP members can alternatively use GNAT Tracker:");
                    End_Line;
  
                    Write_Str
!                     ("| https://www.adacore.com/login?mode=gap " &
!                      "section 'Create New Ticket'.");
                    End_Line;
  
                    Write_Str
--- 306,321 ----
  
                    Write_Str
                      ("| Please submit a bug report by email " &
!                      "to support@adacore.com.");
                    End_Line;
  
                    Write_Str
!                     ("| GAP members can alternatively use GNATtracker:");
                    End_Line;
  
                    Write_Str
!                     ("| https://support.adacore.com/csm " &
!                      "by using the button 'Create A New Case'.");
                    End_Line;
  
                    Write_Str
*************** package body Comperr is
*** 326,342 ****
  
                 else
                    Write_Str
!                     ("| Please submit a bug report using GNAT Tracker:");
                    End_Line;
  
                    Write_Str
!                     ("| https://www.adacore.com/login " &
!                      "section 'Create New Ticket'.");
                    End_Line;
  
                    Write_Str
                      ("| Or submit a bug report by email " &
!                      "to report@adacore.com");
                    End_Line;
  
                    Write_Str
--- 325,341 ----
  
                 else
                    Write_Str
!                     ("| Please submit a bug report using GNATtracker at");
                    End_Line;
  
                    Write_Str
!                     ("| https://support.adacore.com/csm " &
!                      "by using the button 'Create New Case'.");
                    End_Line;
  
                    Write_Str
                      ("| Or submit a bug report by email " &
!                      "to support@adacore.com");
                    End_Line;
  
                    Write_Str
diff -Nrcpad gcc-15.2.0/gcc/ada/comperr.ads gcc-16.1.0-RC-20260423/gcc/ada/comperr.ads
*** gcc-15.2.0/gcc/ada/comperr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/comperr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/config-lang.in gcc-16.1.0-RC-20260423/gcc/ada/config-lang.in
*** gcc-15.2.0/gcc/ada/config-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/config-lang.in	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/contracts.adb gcc-16.1.0-RC-20260423/gcc/ada/contracts.adb
*** gcc-15.2.0/gcc/ada/contracts.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/contracts.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2015-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Aspects;        use Aspects;
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Sem_Disp;       use Sem_Disp;
*** 50,56 ****
  with Sem_Prag;       use Sem_Prag;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 49,54 ----
*************** package body Contracts is
*** 110,117 ****
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
     --  well as Always_Terminates, Contract_Cases, Exceptional_Cases,
!    --  Subprogram_Variant, invariants and predicates. Body_Id denotes the
!    --  entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
--- 108,115 ----
     --  Expand the contracts of a subprogram body and its correspoding spec (if
     --  any). This routine processes all [refined] pre- and postconditions as
     --  well as Always_Terminates, Contract_Cases, Exceptional_Cases,
!    --  Program_Exit, Subprogram_Variant, invariants and predicates. Body_Id
!    --  denotes the entity of the subprogram body.
  
     procedure Preanalyze_Condition
       (Subp : Entity_Id;
*************** package body Contracts is
*** 235,240 ****
--- 233,239 ----
        --    Interrupt_Handler
        --    Postcondition
        --    Precondition
+       --    Program_Exit
        --    Side_Effects
        --    Subprogram_Variant
        --    Test_Case
*************** package body Contracts is
*** 267,272 ****
--- 266,272 ----
                           | Name_Contract_Cases
                           | Name_Exceptional_Cases
                           | Name_Exit_Cases
+                          | Name_Program_Exit
                           | Name_Subprogram_Variant
                           | Name_Test_Case
           then
*************** package body Contracts is
*** 647,655 ****
        end if;
  
        --  Deal with preconditions, [refined] postconditions, Always_Terminates,
!       --  Contract_Cases, Exceptional_Cases, Subprogram_Variant, invariants and
!       --  predicates associated with body and its spec. Do not expand the
!       --  contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
--- 647,655 ----
        end if;
  
        --  Deal with preconditions, [refined] postconditions, Always_Terminates,
!       --  Contract_Cases, Exceptional_Cases, Program_Exit, Subprogram_Variant,
!       --  invariants and predicates associated with body and its spec. Do not
!       --  expand the contract of subprogram body stubs.
  
        if Nkind (Body_Decl) = N_Subprogram_Body then
           Expand_Subprogram_Contract (Body_Id);
*************** package body Contracts is
*** 797,802 ****
--- 797,805 ----
              elsif Prag_Nam = Name_Exceptional_Cases then
                 Analyze_Exceptional_Cases_In_Decl_Part (Prag);
  
+             elsif Prag_Nam = Name_Program_Exit then
+                Analyze_Program_Exit_In_Decl_Part (Prag);
+ 
              elsif Prag_Nam = Name_Subprogram_Variant then
                 Analyze_Subprogram_Variant_In_Decl_Part (Prag);
  
*************** package body Contracts is
*** 1126,1137 ****
        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);
  
!          --  A Ghost object cannot be imported or exported (SPARK RM 6.9(7)).
           --  One exception to this is the object that represents the dispatch
           --  table of a Ghost tagged type, as the symbol needs to be exported.
  
--- 1129,1140 ----
        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(22)).
  
           if Yields_Synchronized_Object (Obj_Typ) then
              Error_Msg_N ("ghost object & cannot be synchronized", Obj_Id);
  
!          --  A Ghost object cannot be imported or exported (SPARK RM 6.9(9)).
           --  One exception to this is the object that represents the dispatch
           --  table of a Ghost tagged type, as the symbol needs to be exported.
  
*************** package body Contracts is
*** 1273,1279 ****
           while Present (Prag) loop
              Prag_Nam := Pragma_Name (Prag);
  
!             if Prag_Nam = Name_Initial_Condition then
                 Init_Cond := Prag;
  
              elsif Prag_Nam = Name_Initializes then
--- 1276,1287 ----
           while Present (Prag) loop
              Prag_Nam := Pragma_Name (Prag);
  
!             --  When Assertion_Levels are used then the pacakage can have
!             --  multiple consecutive Initial_Condition pragmas.
!             --  Find the first one here and then iterate over all of them
!             --  later.
! 
!             if Prag_Nam = Name_Initial_Condition and then No (Init_Cond) then
                 Init_Cond := Prag;
  
              elsif Prag_Nam = Name_Initializes then
*************** package body Contracts is
*** 1290,1298 ****
              Analyze_Initializes_In_Decl_Part (Init);
           end if;
  
!          if Present (Init_Cond) then
              Analyze_Initial_Condition_In_Decl_Part (Init_Cond);
!          end if;
        end if;
  
        --  Restore the SPARK_Mode of the enclosing context after all delayed
--- 1298,1309 ----
              Analyze_Initializes_In_Decl_Part (Init);
           end if;
  
!          while Present (Init_Cond)
!            and then Pragma_Name (Init_Cond) = Name_Initial_Condition
!          loop
              Analyze_Initial_Condition_In_Decl_Part (Init_Cond);
!             Init_Cond := Next_Pragma (Init_Cond);
!          end loop;
        end if;
  
        --  Restore the SPARK_Mode of the enclosing context after all delayed
*************** package body Contracts is
*** 1413,1418 ****
--- 1424,1430 ----
        --    Global
        --    Postcondition
        --    Precondition
+       --    Program_Exit
        --    Subprogram_Variant
        --    Test_Case
  
*************** package body Contracts is
*** 2422,2427 ****
--- 2434,2440 ----
              --  verify the return value.
  
              Result := Make_Defining_Identifier (Loc, Name_uResult);
+             Mutate_Ekind (Result, E_Constant);
              Set_Etype (Result, Typ);
  
              --  Add an invariant check when the return type has invariants and
*************** package body Contracts is
*** 2707,2716 ****
  
        procedure Append_Enabled_Item (Item : Node_Id; List : in out List_Id) is
        begin
!          --  Do not chain ignored or disabled pragmas
  
           if Nkind (Item) = N_Pragma
!            and then (Is_Ignored (Item) or else Is_Disabled (Item))
           then
              null;
  
--- 2720,2730 ----
  
        procedure Append_Enabled_Item (Item : Node_Id; List : in out List_Id) is
        begin
!          --  Do not chain ignored or disabled pragmas. Note that disabled
!          --  pragmas are also considered ignored.
  
           if Nkind (Item) = N_Pragma
!            and then Is_Ignored_In_Codegen (Item)
           then
              null;
  
*************** package body Contracts is
*** 2761,2766 ****
--- 2775,2783 ----
                       elsif Pragma_Name (Prag) = Name_Exit_Cases then
                          Expand_Pragma_Exit_Cases (Prag);
  
+                      elsif Pragma_Name (Prag) = Name_Program_Exit then
+                         Expand_Pragma_Program_Exit (Prag);
+ 
                       elsif Pragma_Name (Prag) = Name_Subprogram_Variant then
                          Expand_Pragma_Subprogram_Variant
                            (Prag       => Prag,
*************** package body Contracts is
*** 3263,3269 ****
        --  The contract of an ignored Ghost subprogram does not need expansion,
        --  because the subprogram and all calls to it will be removed.
  
!       elsif Is_Ignored_Ghost_Entity (Subp_Id) then
           return;
  
        --  No action needed for helpers and indirect-call wrapper built to
--- 3280,3286 ----
        --  The contract of an ignored Ghost subprogram does not need expansion,
        --  because the subprogram and all calls to it will be removed.
  
!       elsif Is_Ignored_Ghost_Entity_In_Codegen (Subp_Id) then
           return;
  
        --  No action needed for helpers and indirect-call wrapper built to
*************** package body Contracts is
*** 4824,4830 ****
        Install_Formals (Subp);
        Inside_Class_Condition_Preanalysis := True;
  
!       Preanalyze_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
        End_Scope;
--- 4841,4847 ----
        Install_Formals (Subp);
        Inside_Class_Condition_Preanalysis := True;
  
!       Preanalyze_And_Resolve_Spec_Expression (Expr, Standard_Boolean);
  
        Inside_Class_Condition_Preanalysis := False;
        End_Scope;
*************** package body Contracts is
*** 4860,4869 ****
--- 4877,4911 ----
       (Templ  : Node_Id;
        Gen_Id : Entity_Id)
     is
+       procedure Save_Global_References_In_Aspects (N : Node_Id);
+       --  Save all global references found in the expressions of all aspects
+       --  that appear on node N.
+ 
        procedure Save_Global_References_In_List (First_Prag : Node_Id);
        --  Save all global references in contract-related source pragmas found
        --  in the list, starting with pragma First_Prag.
  
+       ---------------------------------------
+       -- Save_Global_References_In_Aspects --
+       ---------------------------------------
+ 
+       procedure Save_Global_References_In_Aspects (N : Node_Id) is
+          Asp  : Node_Id;
+          Expr : Node_Id;
+ 
+       begin
+          Asp := First (Aspect_Specifications (N));
+          while Present (Asp) loop
+             Expr := Expression (Asp);
+ 
+             if Present (Expr) then
+                Save_Global_References (Expr);
+             end if;
+ 
+             Next (Asp);
+          end loop;
+       end Save_Global_References_In_Aspects;
+ 
        ------------------------------------
        -- Save_Global_References_In_List --
        ------------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/contracts.ads gcc-16.1.0-RC-20260423/gcc/ada/contracts.ads
*** gcc-15.2.0/gcc/ada/contracts.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/contracts.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2015-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Contracts is
*** 56,61 ****
--- 56,62 ----
     --    Part_Of
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Contracts is
*** 90,95 ****
--- 91,97 ----
     --    Global             (stand alone subprogram body)
     --    Postcondition      (stand alone subprogram body)
     --    Precondition       (stand alone subprogram body)
+    --    Program_Exit       (stand alone subprogram body)
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Contracts is
*** 110,115 ****
--- 112,118 ----
     --    Global
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Subprogram_Variant
     --    Test_Case
     --
*************** package Contracts is
*** 186,191 ****
--- 189,195 ----
     --    Global
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
diff -Nrcpad gcc-15.2.0/gcc/ada/csets.adb gcc-16.1.0-RC-20260423/gcc/ada/csets.adb
*** gcc-15.2.0/gcc/ada/csets.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/csets.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/csets.ads gcc-16.1.0-RC-20260423/gcc/ada/csets.ads
*** gcc-15.2.0/gcc/ada/csets.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/csets.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/cstand.adb gcc-16.1.0-RC-20260423/gcc/ada/cstand.adb
*** gcc-15.2.0/gcc/ada/cstand.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/cstand.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  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 Elists;         use Elists;
--- 26,31 ----
*************** with Targparm;       use Targparm;
*** 41,48 ****
  with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
  with Sem_Mech;       use Sem_Mech;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 40,47 ----
  with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
  with Sem_Mech;       use Sem_Mech;
+ with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
*************** package body CStand is
*** 67,76 ****
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Int;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Int);
     --  Procedure to build standard predefined float base type. The first
     --  parameter is the entity for the type. The second parameter is the
     --  digits value. The third parameter indicates the representation to
--- 66,75 ----
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Pos;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Nat);
     --  Procedure to build standard predefined float base type. The first
     --  parameter is the entity for the type. The second parameter is the
     --  digits value. The third parameter indicates the representation to
*************** package body CStand is
*** 192,201 ****
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Int;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Int)
     is
     begin
        Set_Type_Definition (Parent (E),
--- 191,200 ----
  
     procedure Build_Float_Type
       (E     : Entity_Id;
!       Digs  : Pos;
        Rep   : Float_Rep_Kind;
        Siz   : Int;
!       Align : Nat)
     is
     begin
        Set_Type_Definition (Parent (E),
*************** package body CStand is
*** 297,302 ****
--- 296,302 ----
        Build_Float_Type
          (To, UI_To_Int (Digits_Value (From)), Float_Rep (From),
           UI_To_Int (Esize (From)), UI_To_Int (Alignment (From)));
+       Set_Is_IEEE_Extended_Precision (To, Is_IEEE_Extended_Precision (From));
     end Copy_Float_Type;
  
     ----------------------
*************** package body CStand is
*** 456,461 ****
--- 456,466 ----
        procedure Make_Dummy_Index (E : Entity_Id);
        --  Called to provide a dummy index field value for Any_Array/Any_String
  
+       function Make_Assertion_Level_Definition
+         (Nam : Name_Id) return Entity_Id;
+       --  Create an Assertion_Level definition with the given name in the'
+       --  Sandard package.
+ 
        procedure Pack_String_Type (String_Type : Entity_Id);
        --  Generate proper tree for pragma Pack that applies to given type, and
        --  mark type as having the pragma.
*************** package body CStand is
*** 558,563 ****
--- 563,580 ----
           Set_First_Index (E, Index);
        end Make_Dummy_Index;
  
+       -------------------------------------
+       -- Make_Assertion_Level_Definition --
+       -------------------------------------
+ 
+       function Make_Assertion_Level_Definition (Nam : Name_Id) return Entity_Id
+       is
+          Level : constant Entity_Id := Make_Assertion_Level (Stloc, Nam);
+       begin
+          Insert_Assertion_Level (Level);
+          return Level;
+       end Make_Assertion_Level_Definition;
+ 
        ----------------------
        -- Pack_String_Type --
        ----------------------
*************** package body CStand is
*** 612,638 ****
        Set_Is_Pure (Standard_Standard);
        Set_Is_Compilation_Unit (Standard_Standard);
  
!       --  Create type/subtype declaration nodes for standard types
  
        for S in S_Types loop
! 
!          --  Subtype declaration case
! 
!          if S = S_Natural or else S = S_Positive then
!             Decl := New_Node (N_Subtype_Declaration, Stloc);
!             Set_Subtype_Indication (Decl,
!               New_Occurrence_Of (Standard_Integer, Stloc));
! 
!          --  Full type declaration case
! 
!          else
              Decl := New_Node (N_Full_Type_Declaration, Stloc);
           end if;
- 
-          Set_Is_Frozen (Standard_Entity (S));
-          Set_Is_Public (Standard_Entity (S));
-          Set_Defining_Identifier (Decl, Standard_Entity (S));
-          Append (Decl, Decl_S);
        end loop;
  
        Create_Back_End_Float_Types;
--- 629,642 ----
        Set_Is_Pure (Standard_Standard);
        Set_Is_Compilation_Unit (Standard_Standard);
  
!       --  Create type declaration nodes for standard types
  
        for S in S_Types loop
!          if S not in S_Natural | S_Positive then
              Decl := New_Node (N_Full_Type_Declaration, Stloc);
+             Set_Defining_Identifier (Decl, Standard_Entity (S));
+             Append (Decl, Decl_S);
           end if;
        end loop;
  
        Create_Back_End_Float_Types;
*************** package body CStand is
*** 1023,1028 ****
--- 1027,1040 ----
          Hb  => Intval (High_Bound (Scalar_Range (Standard_Integer))));
        Set_Is_Constrained (Standard_Natural);
  
+       Append_To
+         (Decl_S,
+          Make_Subtype_Declaration
+            (Stloc,
+             Standard_Natural,
+             Subtype_Indication =>
+               New_Occurrence_Of (Standard_Integer, Stloc)));
+ 
        --  Setup entity for Positive
  
        Mutate_Ekind (Standard_Positive, E_Signed_Integer_Subtype);
*************** package body CStand is
*** 1040,1045 ****
--- 1052,1065 ----
           Hb  => Intval (High_Bound (Scalar_Range (Standard_Integer))));
        Set_Is_Constrained   (Standard_Positive);
  
+       Append_To
+         (Decl_S,
+          Make_Subtype_Declaration
+            (Stloc,
+             Standard_Positive,
+             Subtype_Indication =>
+               New_Occurrence_Of (Standard_Integer, Stloc)));
+ 
        --  Create declaration for package ASCII
  
        Decl := New_Node (N_Package_Declaration, Stloc);
*************** package body CStand is
*** 1073,1079 ****
              Set_Never_Set_In_Source    (A_Char, True);
              Set_Is_True_Constant       (A_Char, True);
              Set_Etype                  (A_Char, Standard_Character);
-             Set_Scope                  (A_Char, Standard_Entity (S_ASCII));
              Set_Is_Immediately_Visible (A_Char, False);
              Set_Is_Public              (A_Char, True);
              Set_Is_Known_Valid         (A_Char, True);
--- 1093,1098 ----
*************** package body CStand is
*** 1492,1497 ****
--- 1511,1521 ----
           Set_Size_Known_At_Compile_Time (Standard_Duration);
        end Build_Duration;
  
+       Standard_Level_Static := Make_Assertion_Level_Definition (Name_Static);
+       Standard_Level_Runtime := Make_Assertion_Level_Definition (Name_Runtime);
+       Standard_Level_Default :=
+         Make_Assertion_Level_Definition (Name_uDefault_Assertion_Level);
+ 
        --  Build standard exception type. Note that the type name here is
        --  actually used in the generated code, so it must be set correctly.
        --  The type Standard_Exception_Type must be consistent with the type
*************** package body CStand is
*** 1729,1735 ****
     begin
        Mutate_Ekind                  (Id, E_Component);
        Set_Etype                     (Id, Typ);
-       Set_Scope                     (Id, Rec);
        Reinit_Component_Location     (Id);
        Set_Original_Record_Component (Id, Id);
        Set_Is_Aliased                (Id);
--- 1753,1758 ----
*************** package body CStand is
*** 1747,1753 ****
     begin
        Mutate_Ekind  (Formal, E_In_Parameter);
        Set_Mechanism (Formal, Default_Mechanism);
-       Set_Scope     (Formal, Standard_Standard);
        Set_Etype     (Formal, Typ);
  
        return Formal;
--- 1770,1775 ----
*************** package body CStand is
*** 1777,1783 ****
        Set_Is_Pure    (Ident_Node, True);
        Mutate_Ekind   (Ident_Node, E_Operator);
        Set_Etype      (Ident_Node, Typ);
-       Set_Scope      (Ident_Node, Standard_Standard);
        Set_Homonym    (Ident_Node, Get_Name_Entity_Id (Op));
        Set_Convention (Ident_Node, Convention_Intrinsic);
  
--- 1799,1804 ----
*************** package body CStand is
*** 1936,1941 ****
--- 1957,1966 ----
        P ("--  characteristics of the Standard types for this compiler");
        Write_Eol;
  
+       P ("pragma Assertion_Level (Runtime);");
+       P ("pragma Assertion_Level (Static);");
+       Write_Eol;
+ 
        P ("package Standard is");
        P ("pragma Pure (Standard);");
        Write_Eol;
*************** package body CStand is
*** 2074,2089 ****
        Size      : Positive;
        Alignment : Natural)
     is
-       pragma Unreferenced (Precision);
-       --  See Build_Float_Type for the rationale
- 
        Ent : constant Entity_Id := New_Standard_Entity (Name);
  
     begin
        Set_Defining_Identifier (New_Node (N_Full_Type_Declaration, Stloc), Ent);
        Set_Scope (Ent, Standard_Standard);
        Build_Float_Type
!         (Ent, Pos (Digs), Float_Rep, Int (Size), Int (Alignment / 8));
  
        Append_New_Elmt (Ent, Back_End_Float_Types);
     end Register_Float_Type;
--- 2099,2119 ----
        Size      : Positive;
        Alignment : Natural)
     is
        Ent : constant Entity_Id := New_Standard_Entity (Name);
  
+       IEEE_Extended_Precision_Size : constant := 80;
     begin
        Set_Defining_Identifier (New_Node (N_Full_Type_Declaration, Stloc), Ent);
        Set_Scope (Ent, Standard_Standard);
        Build_Float_Type
!         (Ent, Pos (Digs), Float_Rep, Int (Size), Nat (Alignment / 8));
! 
!       --  We mostly disregard Precision, see Build_Float_Type for the
!       --  rationale. The only thing we use it for is to detect 80-bit IEEE
!       --  extended precision, in order to adjust the behavior of 'Write.
!       if Precision = IEEE_Extended_Precision_Size then
!          Set_Is_IEEE_Extended_Precision (Ent);
!       end if;
  
        Append_New_Elmt (Ent, Back_End_Float_Types);
     end Register_Float_Type;
*************** package body CStand is
*** 2092,2098 ****
     -- Set_Float_Bounds --
     ----------------------
  
!    procedure Set_Float_Bounds (Id  : Entity_Id) is
        L : Node_Id;
        H : Node_Id;
        --  Low and high bounds of literal value
--- 2122,2128 ----
     -- Set_Float_Bounds --
     ----------------------
  
!    procedure Set_Float_Bounds (Id : Entity_Id) is
        L : Node_Id;
        H : Node_Id;
        --  Low and high bounds of literal value
diff -Nrcpad gcc-15.2.0/gcc/ada/cstand.ads gcc-16.1.0-RC-20260423/gcc/ada/cstand.ads
*** gcc-15.2.0/gcc/ada/cstand.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/cstand.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 CStand is
*** 42,48 ****
     --  The semantics info is in the format given by Entity_Info. The global
     --  variables Last_Standard_Node_Id and Last_Standard_List_Id are also set.
  
!    procedure Set_Float_Bounds (Id  : Entity_Id);
     --  Procedure to set bounds for float type or subtype. Id is the entity
     --  whose bounds and type are to be set (a floating-point type).
  
--- 42,48 ----
     --  The semantics info is in the format given by Entity_Info. The global
     --  variables Last_Standard_Node_Id and Last_Standard_List_Id are also set.
  
!    procedure Set_Float_Bounds (Id : Entity_Id);
     --  Procedure to set bounds for float type or subtype. Id is the entity
     --  whose bounds and type are to be set (a floating-point type).
  
diff -Nrcpad gcc-15.2.0/gcc/ada/cstreams.c gcc-16.1.0-RC-20260423/gcc/ada/cstreams.c
*** gcc-15.2.0/gcc/ada/cstreams.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/cstreams.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *              Auxiliary C functions for Interfaces.C.Streams              *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/ctrl_c.c gcc-16.1.0-RC-20260423/gcc/ada/ctrl_c.c
*** gcc-15.2.0/gcc/ada/ctrl_c.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ctrl_c.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2002-2026, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/debug.adb gcc-16.1.0-RC-20260423/gcc/ada/debug.adb
*** gcc-15.2.0/gcc/ada/debug.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/debug.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 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
--- 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 Unsigned_Base_Range aspect language extension
     --  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
*** 152,158 ****
     --  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
--- 152,158 ----
     --  d_l  Disable strict alignment of array types with aliased component
     --  d_m  Run adareducer on crash
     --  d_n
!    --  d_o  Disable Backend_Overflow_Checks_On_Target; used for testing.
     --  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
*************** package body Debug is
*** 168,175 ****
     --  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
--- 168,175 ----
     --  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
*************** package body Debug is
*** 186,194 ****
     --  d_S
     --  d_T  Output trace information on invocation path recording
     --  d_U  Disable prepending messages with "error:".
!    --  d_V  Enable verifications on the expanded tree
!    --  d_W
!    --  d_X  Disable assertions to check matching of extra formals
     --  d_Y
     --  d_Z
  
--- 186,194 ----
     --  d_S
     --  d_T  Output trace information on invocation path recording
     --  d_U  Disable prepending messages with "error:".
!    --  d_V  Enable VAST (verifications on the expanded tree)
!    --  d_W  Enable VAST in verbose mode
!    --  d_X
     --  d_Y
     --  d_Z
  
*************** package body Debug is
*** 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
--- 800,807 ----
     --       previous dynamic construction of tables. It is there as a possible
     --       work around if we run into trouble with the new implementation.
  
!    --  d.u  Enable the support for Unsigned_Base_Range aspect, attribute, and
!    --       pragma.
  
     --  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
*** 995,1000 ****
--- 996,1004 ----
     --  d_l  The compiler does not enforce the strict alignment of array types
     --       that are declared with an aliased component.
  
+    --  d_o  The compiler disables Backend_Overflow_Checks_On_Target; used to
+    --       test the frontend support on targets without overflow checks.
+ 
     --  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.
*************** package body Debug is
*** 1065,1076 ****
     --  d_U  Disable prepending 'error:' to error messages. This used to be the
     --       default and can be seen as the opposite of -gnatU.
  
!    --  d_V  Enable verification of the expanded code before calling the backend
!    --       and generate error messages on each inconsistency found.
  
!    --  d_X  Disable assertions to check matching of extra formals; switch added
!    --       temporarily to disable these checks until this work is complete if
!    --       they cause unexpected assertion failures.
  
     --  d1   Error messages have node numbers where possible. Normally error
     --       messages have only source locations. This option is useful when
--- 1069,1079 ----
     --  d_U  Disable prepending 'error:' to error messages. This used to be the
     --       default and can be seen as the opposite of -gnatU.
  
!    --  d_V  Enable VAST (Verifier for the Ada Semantic Tree). This does
!    --       verification of the expanded code before calling the backend.
  
!    --  d_W  Same as d_V, but also prints lots of tracing/debugging output
!    --       as it walks the tree.
  
     --  d1   Error messages have node numbers where possible. Normally error
     --       messages have only source locations. This option is useful when
*************** package body Debug is
*** 1285,1299 ****
     --      display the source file name, the time stamp expected and
     --      the time stamp found.
  
     --------------------
     -- Set_Debug_Flag --
     --------------------
  
     procedure Set_Debug_Flag (C : Character; Val : Boolean := True) is
-       subtype Dig  is Character range '1' .. '9';
-       subtype LLet is Character range 'a' .. 'z';
-       subtype ULet is Character range 'A' .. 'Z';
- 
     begin
        if C in Dig then
           case Dig (C) is
--- 1288,1302 ----
     --      display the source file name, the time stamp expected and
     --      the time stamp found.
  
+    subtype Dig  is Character range '1' .. '9';
+    subtype LLet is Character range 'a' .. 'z';
+    subtype ULet is Character range 'A' .. 'Z';
+ 
     --------------------
     -- Set_Debug_Flag --
     --------------------
  
     procedure Set_Debug_Flag (C : Character; Val : Boolean := True) is
     begin
        if C in Dig then
           case Dig (C) is
*************** package body Debug is
*** 1436,1445 ****
     ---------------------------
  
     procedure Set_Dotted_Debug_Flag (C : Character; Val : Boolean := True) is
-       subtype Dig  is Character range '1' .. '9';
-       subtype LLet is Character range 'a' .. 'z';
-       subtype ULet is Character range 'A' .. 'Z';
- 
     begin
        if C in Dig then
           case Dig (C) is
--- 1439,1444 ----
*************** package body Debug is
*** 1585,1594 ****
       (C   : Character;
        Val : Boolean := True)
     is
-       subtype Dig  is Character range '1' .. '9';
-       subtype LLet is Character range 'a' .. 'z';
-       subtype ULet is Character range 'A' .. 'Z';
- 
     begin
        if C in Dig then
           case Dig (C) is
--- 1584,1589 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/debug.ads gcc-16.1.0-RC-20260423/gcc/ada/debug.ads
*** gcc-15.2.0/gcc/ada/debug.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/debug.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  package Debug is
     pragma Preelaborate;
  
!    -------------------------
!    -- Dynamic Debug Flags --
!    -------------------------
  
!    --  Flags that can be used to activate various specialized debugging output
!    --  information. The flags are preset to False, which corresponds to the
!    --  given output being suppressed. The individual flags can be turned on
!    --  using the undocumented switch dxxx where xxx is a string of letters for
!    --  flags to be turned on. Documentation on the current usage of these flags
!    --  is contained in the body of Debug rather than the spec, so that we don't
!    --  have to recompile the world when a new debug flag is added.
  
     --  WARNING: There is a matching C declaration of a few flags in fe.h
  
!    Debug_Flag_A : Boolean := False;
!    Debug_Flag_B : Boolean := False;
     Debug_Flag_C : Boolean := False;
     Debug_Flag_D : Boolean := False;
     Debug_Flag_E : Boolean := False;
--- 30,51 ----
  package Debug is
     pragma Preelaborate;
  
!    -----------------
!    -- Debug Flags --
!    -----------------
  
!    --  Flags that can be used to activate various debugging actions. They are
!    --  False by default, which means any output is suppressed. The individual
!    --  flags can be turned on using the undocumented switches -dxxx, -d.xxx, or
!    --  -d_xxx where xxx is a string of letters or digits for flags to be turned
!    --  on. For the compiler itself, "gnat" is prepended, as in -gnatdxxx,
!    --  -gnatd.xxx, or -gnatd_xxx. Documentation of each flag is given in the
!    --  package body.
  
     --  WARNING: There is a matching C declaration of a few flags in fe.h
  
!    Debug_Flag_A : Boolean := False; -- -da or -gnatda
!    Debug_Flag_B : Boolean := False; -- ... etc.
     Debug_Flag_C : Boolean := False;
     Debug_Flag_D : Boolean := False;
     Debug_Flag_E : Boolean := False;
*************** package Debug is
*** 71,77 ****
     Debug_Flag_Y : Boolean := False;
     Debug_Flag_Z : Boolean := False;
  
!    Debug_Flag_AA : Boolean := False;
     Debug_Flag_BB : Boolean := False;
     Debug_Flag_CC : Boolean := False;
     Debug_Flag_DD : Boolean := False;
--- 71,77 ----
     Debug_Flag_Y : Boolean := False;
     Debug_Flag_Z : Boolean := False;
  
!    Debug_Flag_AA : Boolean := False; -- -dA or -gnatdA
     Debug_Flag_BB : Boolean := False;
     Debug_Flag_CC : Boolean := False;
     Debug_Flag_DD : Boolean := False;
*************** package Debug is
*** 98,104 ****
     Debug_Flag_YY : Boolean := False;
     Debug_Flag_ZZ : Boolean := False;
  
!    Debug_Flag_1 : Boolean := False;
     Debug_Flag_2 : Boolean := False;
     Debug_Flag_3 : Boolean := False;
     Debug_Flag_4 : Boolean := False;
--- 98,104 ----
     Debug_Flag_YY : Boolean := False;
     Debug_Flag_ZZ : Boolean := False;
  
!    Debug_Flag_1 : Boolean := False; -- -d1 or -gnatd1
     Debug_Flag_2 : Boolean := False;
     Debug_Flag_3 : Boolean := False;
     Debug_Flag_4 : Boolean := False;
*************** package Debug is
*** 108,114 ****
     Debug_Flag_8 : Boolean := False;
     Debug_Flag_9 : Boolean := False;
  
!    Debug_Flag_Dot_A : Boolean := False;
     Debug_Flag_Dot_B : Boolean := False;
     Debug_Flag_Dot_C : Boolean := False;
     Debug_Flag_Dot_D : Boolean := False;
--- 108,114 ----
     Debug_Flag_8 : Boolean := False;
     Debug_Flag_9 : Boolean := False;
  
!    Debug_Flag_Dot_A : Boolean := False; -- -d.a or -gnatd.a
     Debug_Flag_Dot_B : Boolean := False;
     Debug_Flag_Dot_C : Boolean := False;
     Debug_Flag_Dot_D : Boolean := False;
*************** package Debug is
*** 135,141 ****
     Debug_Flag_Dot_Y : Boolean := False;
     Debug_Flag_Dot_Z : Boolean := False;
  
!    Debug_Flag_Dot_AA : Boolean := False;
     Debug_Flag_Dot_BB : Boolean := False;
     Debug_Flag_Dot_CC : Boolean := False;
     Debug_Flag_Dot_DD : Boolean := False;
--- 135,141 ----
     Debug_Flag_Dot_Y : Boolean := False;
     Debug_Flag_Dot_Z : Boolean := False;
  
!    Debug_Flag_Dot_AA : Boolean := False; -- -d.A or -gnatd.A
     Debug_Flag_Dot_BB : Boolean := False;
     Debug_Flag_Dot_CC : Boolean := False;
     Debug_Flag_Dot_DD : Boolean := False;
*************** package Debug is
*** 162,168 ****
     Debug_Flag_Dot_YY : Boolean := False;
     Debug_Flag_Dot_ZZ : Boolean := False;
  
!    Debug_Flag_Dot_1 : Boolean := False;
     Debug_Flag_Dot_2 : Boolean := False;
     Debug_Flag_Dot_3 : Boolean := False;
     Debug_Flag_Dot_4 : Boolean := False;
--- 162,168 ----
     Debug_Flag_Dot_YY : Boolean := False;
     Debug_Flag_Dot_ZZ : Boolean := False;
  
!    Debug_Flag_Dot_1 : Boolean := False; -- -d.1 or -gnatd.1
     Debug_Flag_Dot_2 : Boolean := False;
     Debug_Flag_Dot_3 : Boolean := False;
     Debug_Flag_Dot_4 : Boolean := False;
*************** package Debug is
*** 172,178 ****
     Debug_Flag_Dot_8 : Boolean := False;
     Debug_Flag_Dot_9 : Boolean := False;
  
!    Debug_Flag_Underscore_A : Boolean := False;
     Debug_Flag_Underscore_B : Boolean := False;
     Debug_Flag_Underscore_C : Boolean := False;
     Debug_Flag_Underscore_D : Boolean := False;
--- 172,178 ----
     Debug_Flag_Dot_8 : Boolean := False;
     Debug_Flag_Dot_9 : Boolean := False;
  
!    Debug_Flag_Underscore_A : Boolean := False; -- -d_a or -gnatd_a
     Debug_Flag_Underscore_B : Boolean := False;
     Debug_Flag_Underscore_C : Boolean := False;
     Debug_Flag_Underscore_D : Boolean := False;
*************** package Debug is
*** 199,205 ****
     Debug_Flag_Underscore_Y : Boolean := False;
     Debug_Flag_Underscore_Z : Boolean := False;
  
!    Debug_Flag_Underscore_AA : Boolean := False;
     Debug_Flag_Underscore_BB : Boolean := False;
     Debug_Flag_Underscore_CC : Boolean := False;
     Debug_Flag_Underscore_DD : Boolean := False;
--- 199,205 ----
     Debug_Flag_Underscore_Y : Boolean := False;
     Debug_Flag_Underscore_Z : Boolean := False;
  
!    Debug_Flag_Underscore_AA : Boolean := False; -- -d_A or -gnatd_A
     Debug_Flag_Underscore_BB : Boolean := False;
     Debug_Flag_Underscore_CC : Boolean := False;
     Debug_Flag_Underscore_DD : Boolean := False;
*************** package Debug is
*** 226,232 ****
     Debug_Flag_Underscore_YY : Boolean := False;
     Debug_Flag_Underscore_ZZ : Boolean := False;
  
!    Debug_Flag_Underscore_1 : Boolean := False;
     Debug_Flag_Underscore_2 : Boolean := False;
     Debug_Flag_Underscore_3 : Boolean := False;
     Debug_Flag_Underscore_4 : Boolean := False;
--- 226,232 ----
     Debug_Flag_Underscore_YY : Boolean := False;
     Debug_Flag_Underscore_ZZ : Boolean := False;
  
!    Debug_Flag_Underscore_1 : Boolean := False; -- -d_1 or -gnatd_1
     Debug_Flag_Underscore_2 : Boolean := False;
     Debug_Flag_Underscore_3 : Boolean := False;
     Debug_Flag_Underscore_4 : Boolean := False;
*************** package Debug is
*** 238,245 ****
  
     procedure Set_Debug_Flag (C : Character; Val : Boolean := True);
     --  Where C is 0-9, A-Z, or a-z, sets the corresponding debug flag to
!    --  the given value. In the checks off version of debug, the call to
!    --  Set_Debug_Flag is always a null operation.
  
     procedure Set_Dotted_Debug_Flag (C : Character; Val : Boolean := True);
     --  Where C is 0-9, A-Z, or a-z, sets the corresponding dotted debug
--- 238,244 ----
  
     procedure Set_Debug_Flag (C : Character; Val : Boolean := True);
     --  Where C is 0-9, A-Z, or a-z, sets the corresponding debug flag to
!    --  the given value.
  
     procedure Set_Dotted_Debug_Flag (C : Character; Val : Boolean := True);
     --  Where C is 0-9, A-Z, or a-z, sets the corresponding dotted debug
diff -Nrcpad gcc-15.2.0/gcc/ada/debug_a.adb gcc-16.1.0-RC-20260423/gcc/ada/debug_a.adb
*** gcc-15.2.0/gcc/ada/debug_a.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/debug_a.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Namet;          use Namet;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Output;         use Output;
--- 26,31 ----
*************** package body Debug_A is
*** 83,93 ****
  
           case Nkind (N) is
              when N_Has_Chars =>
!                Write_Str (" """);
!                if Present (Chars (N)) then
!                   Write_Str (Get_Name_String (Chars (N)));
!                end if;
!                Write_Str ("""");
              when others => null;
           end case;
  
--- 82,89 ----
  
           case Nkind (N) is
              when N_Has_Chars =>
!                Write_Str (" ");
!                Write_Name_For_Debug (Chars (N));
              when others => null;
           end case;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/debug_a.ads gcc-16.1.0-RC-20260423/gcc/ada/debug_a.ads
*** gcc-15.2.0/gcc/ada/debug_a.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/debug_a.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-brief_emitter.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-brief_emitter.adb
*** gcc-15.2.0/gcc/ada/diagnostics-brief_emitter.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-brief_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-brief_emitter.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-brief_emitter.ads
*** gcc-15.2.0/gcc/ada/diagnostics-brief_emitter.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-brief_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-constructors.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-constructors.adb
*** gcc-15.2.0/gcc/ada/diagnostics-constructors.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-constructors.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-constructors.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-constructors.ads
*** gcc-15.2.0/gcc/ada/diagnostics-constructors.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-constructors.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-converter.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-converter.adb
*** gcc-15.2.0/gcc/ada/diagnostics-converter.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-converter.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-converter.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-converter.ads
*** gcc-15.2.0/gcc/ada/diagnostics-converter.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-converter.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-json_utils.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-json_utils.adb
*** gcc-15.2.0/gcc/ada/diagnostics-json_utils.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-json_utils.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-json_utils.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-json_utils.ads
*** gcc-15.2.0/gcc/ada/diagnostics-json_utils.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-json_utils.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-pretty_emitter.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-pretty_emitter.adb
*** gcc-15.2.0/gcc/ada/diagnostics-pretty_emitter.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-pretty_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-pretty_emitter.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-pretty_emitter.ads
*** gcc-15.2.0/gcc/ada/diagnostics-pretty_emitter.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-pretty_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-repository.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-repository.adb
*** gcc-15.2.0/gcc/ada/diagnostics-repository.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-repository.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-repository.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-repository.ads
*** gcc-15.2.0/gcc/ada/diagnostics-repository.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-repository.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-sarif_emitter.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-sarif_emitter.adb
*** gcc-15.2.0/gcc/ada/diagnostics-sarif_emitter.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-sarif_emitter.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-sarif_emitter.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-sarif_emitter.ads
*** gcc-15.2.0/gcc/ada/diagnostics-sarif_emitter.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-sarif_emitter.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-switch_repository.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-switch_repository.adb
*** gcc-15.2.0/gcc/ada/diagnostics-switch_repository.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-switch_repository.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-switch_repository.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-switch_repository.ads
*** gcc-15.2.0/gcc/ada/diagnostics-switch_repository.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-switch_repository.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-utils.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-utils.adb
*** gcc-15.2.0/gcc/ada/diagnostics-utils.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-utils.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics-utils.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-utils.ads
*** gcc-15.2.0/gcc/ada/diagnostics-utils.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics-utils.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics.adb gcc-16.1.0-RC-20260423/gcc/ada/diagnostics.adb
*** gcc-15.2.0/gcc/ada/diagnostics.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics.adb	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/diagnostics.ads gcc-16.1.0-RC-20260423/gcc/ada/diagnostics.ads
*** gcc-15.2.0/gcc/ada/diagnostics.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/diagnostics.ads	Thu Jan  1 00:00:00 1970
***************
*** 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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/about_this_guide.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/about_this_guide.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/about_this_guide.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/about_this_guide.rst	Thu Apr 23 11:07:32 2026
*************** GNAT compiler.  It includes information
*** 14,20 ****
  characteristics of GNAT, including all the information required by
  Annex M of the Ada language standard.
  
! GNAT implements Ada 95, Ada 2005 and Ada 2012, 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
--- 14,20 ----
  characteristics of GNAT, including all the information required by
  Annex M of the Ada language standard.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012 and Ada 2022, 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
*************** This reference manual contains the follo
*** 93,100 ****
    to GNAT's implementation of machine code insertions, tasking, and several
    other features.
  
! * :ref:`Implementation_of_Ada_2012_Features`, describes the status of the
!   GNAT implementation of the Ada 2012 language standard.
  
  * :ref:`Security_Hardening_Features` documents GNAT extensions aimed
    at security hardening.
--- 93,100 ----
    to GNAT's implementation of machine code insertions, tasking, and several
    other features.
  
! * :ref:`Implementation_of_Ada_2022_Features`, describes the status of the
!   GNAT implementation of the Ada 2022 language standard.
  
  * :ref:`Security_Hardening_Features` documents GNAT extensions aimed
    at security hardening.
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/compatibility_and_porting_guide.rst	Thu Apr 23 11:07:32 2026
*************** types will be portable.
*** 134,142 ****
  Compatibility with Ada 83
  =========================
  
! .. index:: Compatibility (between Ada 83 and Ada 95 / Ada 2005 / Ada 2012)
  
! Ada 95 and the subsequent revisions Ada 2005 and Ada 2012
  are highly upwards compatible with Ada 83.  In
  particular, the design intention was that the difficulties associated
  with moving from Ada 83 to later versions of the standard should be no greater
--- 134,142 ----
  Compatibility with Ada 83
  =========================
  
! .. index:: Compatibility (between Ada 83 and Ada 95 / Ada 2005 / Ada 2012 / Ada 2022)
  
! Ada 95 and the subsequent revisions Ada 2005, Ada 2012, Ada 2022
  are highly upwards compatible with Ada 83.  In
  particular, the design intention was that the difficulties associated
  with moving from Ada 83 to later versions of the standard should be no greater
*************** such an Ada 83 application is being port
*** 505,511 ****
  example where the byte endianness has changed) then you will need to
  carefully examine the program logic; the porting effort will heavily depend
  on the robustness of the original design.  Moreover, Ada 95 (and thus
! 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:`Representation_Clauses`.
--- 505,511 ----
  example where the byte endianness has changed) then you will need to
  carefully examine the program logic; the porting effort will heavily depend
  on the robustness of the original design.  Moreover, Ada 95 (and thus
! Ada 2005, Ada 2012, and Ada 2022) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
  GNAT's approach to these issues is described in :ref:`Representation_Clauses`.
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst	Thu Apr 23 11:07:32 2026
***************
*** 1,3 ****
--- 1,6 ----
+ .. role:: ada(code)
+    :language: ada
+ 
  .. _GNAT_Language_Extensions:
  
  ************************
*************** Restricting the position of controlling
*** 581,586 ****
--- 584,719 ----
  
  * The result of a function is never a controlling result.
  
+ 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.
+ Here is the archetypal example:
+ 
+ .. code-block:: ada
+ 
+     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 three procedures have the same profile, with a single ``in out`` parameter,
+ and also have the same dynamic semantics as for controlled types:
+ 
+  - ``Initialize`` is called when an object of type ``T`` is declared without
+    initialization 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 deallocated (for heap-allocated objects).
+    It is also called when the value is replaced by an assignment.
+ 
+ However, when ``Relaxed_Finalization`` is either ``True`` or not explicitly
+ specified, the following differences are implemented relative to the semantics
+ of controlled types:
+ 
+ * The compiler has permission to perform no automatic finalization of
+   heap-allocated objects: ``Finalize`` is only called when such an object
+   is explicitly deallocated, or when the designated object is assigned a new
+   value. As a consequence, no runtime support is needed for performing
+   implicit deallocation. In particular, no per-object header data is needed
+   for heap-allocated objects.
+ 
+   Heap-allocated objects allocated through a nested access type will therefore
+   **not** be deallocated either. The result is simply that memory will be leaked
+   in this case.
+ 
+ * The ``Adjust`` and ``Finalize`` procedures are automatically considered as
+   having the :ref:`No_Raise_Aspect` specified for them. In particular, the
+   compiler has permission to enforce none of the guarantees specified by the
+   RM 7.6.1 (14/1) and subsequent subclauses.
+ 
+ Simple example of 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 Finalizable => (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;
+ 
+ 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 Finalizable (Finalize => Close);
+    end P;
+ 
+ Finalizable tagged types
+ ^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ The aspect is inherited by derived types and the primitives may be overridden
+ by the derivation. The compiler-generated calls to these operations are then
+ dispatching whenever it makes sense, i.e. when the object in question is of a
+ class-wide type and the class includes at least one finalizable tagged type.
+ 
+ Composite types
+ ^^^^^^^^^^^^^^^
+ 
+ When a finalizable type is used as a component of a composite type, the latter
+ becomes finalizable as well. The three primitives are derived automatically
+ in order to call the primitives of their components. The dynamic semantics is
+ the same as for controlled components of composite types.
+ 
+ Interoperability with controlled types
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ 
+ Finalizable types are fully interoperable with controlled types, in particular
+ it is possible for a finalizable type to have a controlled component and vice
+ versa, but the stricter dynamic semantics, in other words that of controlled
+ types, is applied in this case.
  
  .. _Experimental_Language_Extensions:
  
*************** An exception message can also be added:
*** 657,662 ****
--- 790,811 ----
          when Imported_C_Func /= 0;
     end;
  
+ Implicit With
+ -------------
+ 
+ This feature allows a standalone ``use`` clause in the context clause of a
+ compilation unit to imply an implicit ``with`` of the same library unit where
+ an equivalent ``with`` clause would be allowed.
+ 
+ .. code-block:: ada
+ 
+    use Ada.Text_IO;
+    procedure Main is
+    begin
+       Put_Line ("Hello");
+    end;
+ 
+ 
  Storage Model
  -------------
  
*************** case statement with composite selector t
*** 1334,1577 ****
  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.
! Here is the archetypal example:
  
  .. code-block:: ada
  
!     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 three procedures have the same profile, with a single ``in out`` parameter,
! and also have the same dynamic semantics as for controlled types:
! 
!  - ``Initialize`` is called when an object of type ``T`` is declared without
!    initialization 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 deallocated (for heap-allocated objects).
!    It is also called when the value is replaced by an assignment.
! 
! However, when ``Relaxed_Finalization`` is either ``True`` or not explicitly
! specified, the following differences are implemented relative to the semantics
! of controlled types:
! 
! * The compiler has permission to perform no automatic finalization of
!   heap-allocated objects: ``Finalize`` is only called when such an object
!   is explicitly deallocated, or when the designated object is assigned a new
!   value. As a consequence, no runtime support is needed for performing
!   implicit deallocation. In particular, no per-object header data is needed
!   for heap-allocated objects.
! 
!   Heap-allocated objects allocated through a nested access type will therefore
!   **not** be deallocated either. The result is simply that memory will be leaked
!   in this case.
  
! * The ``Adjust`` and ``Finalize`` procedures are automatically considered as
!   having the :ref:`No_Raise_Aspect` specified for them. In particular, the
!   compiler has permission to enforce none of the guarantees specified by the
!   RM 7.6.1 (14/1) and subsequent subclauses.
  
! Simple example of 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 Finalizable => (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;
  
! 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 Finalizable (Finalize => Close);
!    end P;
  
! Finalizable tagged types
! ^^^^^^^^^^^^^^^^^^^^^^^^
  
! The aspect is inherited by derived types and the primitives may be overridden
! by the derivation. The compiler-generated calls to these operations are then
! dispatching whenever it makes sense, i.e. when the object in question is of a
! class-wide type and the class includes at least one finalizable tagged type.
  
! Composite types
! ^^^^^^^^^^^^^^^
  
! When a finalizable type is used as a component of a composite type, the latter
! becomes finalizable as well. The three primitives are derived automatically
! in order to call the primitives of their components. The dynamic semantics is
! the same as for controlled components of composite types.
  
! Interoperability with controlled types
! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  
! Finalizable types are fully interoperable with controlled types, in particular
! it is possible for a finalizable type to have a controlled component and vice
! versa, but the stricter dynamic semantics, in other words that of controlled
! types, is applied in this case.
  
  .. _No_Raise_Aspect:
  
--- 1483,1632 ----
  Mutably Tagged Types with Size'Class Aspect
  -------------------------------------------
  
! For a specific tagged nonformal type T that satisfies some conditions
! described later in this section, the universal-integer-valued type-related
! representation aspect ``Size'Class`` may be specified; any such specified
! aspect value shall be static.
  
! Specifying this aspect imposes an upper bound on the sizes of all specific
! descendants of T (including T itself). T'Class (but not T) is then said to be
! a "mutably tagged" type - meaning that T'Class is a definite subtype and that
! the tag of a variable of type T'Class may be modified by assignment in some
! cases described later in this section. An inherited ``Size'Class`` aspect
! value may be overridden, but not with a larger value.
  
! If the ``Size'Class`` aspect is specified for a type T, then every specific
! descendant of T (including T itself)
  
! * shall have a Size that does not exceed the specified value; and
  
! * shall have a (possibly inherited) ``Size'Class`` aspect that does not exceed
!   the specifed value; and
  
! * shall be undiscriminated; and
  
! * shall have no composite subcomponent whose subtype is subject to a nonstatic
!   constraint; and
  
! * shall not have a tagged partial view other than a private extension; and
  
! * shall not be a descendant of an interface type; and
  
! * shall not have a statically deeper accessibility level than that of T.
  
! If the ``Size'Class`` aspect is not specified for a type T (either explicitly
! or by inheritance), then it shall not be specified for any descendant of T.
  
! Example:
  
  .. code-block:: ada
  
!     type Root_Type is tagged null record with Size'Class => 16 * 8;
  
!     type Derived_Type is new Root_Type with record
!        Stuff : Some_Type;
!     end record;  -- ERROR if Derived_Type exceeds 16 bytes
  
! Because any subtype of a mutably tagged type is definite, it can be used as a
! component subtype for enclosing array or record types, as the subtype of a
! default-initialized stand-alone object, or as the subtype of an uninitialized
! allocator, as in this example:
  
  .. code-block:: ada
  
!     Obj : Root_Type'Class;
!     type Array_of_Roots is array (Positive range <>) of Root_Type'Class;
  
! 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.
  
! There is a general design principle that if a type has a tagged partial view,
! then the type's ``Size'Class`` aspect (or lack thereof) should be determinable
! by looking only at the partial view. That provides the motivation for the
! rules of the next two paragraphs.
  
! If a type has a tagged partial view, then a ``Size'Class`` aspect specification
! may be provided only at the point of the partial view declaration (in other
! words, no such aspect specification may be provided when the full view of
! the type is declared). All of the above rules (in particular, the rule that
! an overriding ``Size'Class`` aspect value shall not be larger than the
! overridden inherited value) are also enforced when the full view (which may
! have a different ancestor type than that of the partial view) is declared.
! If a partial view for a type inherits a ``Size'Class`` aspect value and does
! not override that value with an explicit aspect specification, then the
! (static) aspect values inherited by the partial view and by the full view
! shall be equal.
  
! An actual parameter of an instantiation whose corresponding formal parameter
! is a formal tagged private type shall not be either mutably tagged or the
! corresponding specific type of a mutably tagged type.
  
! For the legality rules in this section, the RM 12.3(11) rule about legality
! checking in the visible part and formal part of an instance is extended (in
! the same way that it is extended in many other places in the RM) to include
! the private part of an instance.
  
! An object (or a view thereof) 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 view conversion to a type that is not a descendant of the operand's
!   type; or
  
! * a formal in out or out parameter whose corresponding actual parameter is
!   tag-constrained; or
  
! * a dereference of an access value.
  
! 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. Note that the tag of an object of a mutably tagged type MT
! will always be the tag of some specific type that is a descendant of MT.
! 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 RM 8.5.1) for a type conversion having an operand
! of a mutably tagged type MT and a target type TT such that TT (or its
! corresponding specific type if TT is class-wide) is not an ancestor of MT
! (this is sometimes called a "downward" conversion), nor for any part of
! such an object, nor for any slice of any part 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).
! [This is analogous to the way that renaming is not allowed for a
! discriminant-dependent component of an unconstrained variable.]
  
! 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. This disallows, for example, renaming such a prefixed view,
! passing the prefixed view name as a generic actual parameter, or using the
! prefixed view name as the prefix of an attribute.
  
! 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.
! This is analogous to the RM 3.7.2(4) rule about discriminant-dependent
! subcomponents.
! 
! 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).
! This is analogous to the RM 6.4.1(18) rule about discriminated parameters.
  
  .. _No_Raise_Aspect:
  
*************** If an exception is raised in the finally
*** 1724,1726 ****
--- 1779,2042 ----
  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.
+ 
+ Continue statement
+ ------------------
+ 
+ The ``continue`` keyword makes it possible to stop execution of a loop iteration
+ and continue with the next one. A continue statement has the same syntax
+ (except "exit" is replaced with "continue"), static semantics, and legality
+ rules as an exit statement. The difference is in the dynamic semantics: where an
+ exit statement would cause a transfer of control that completes the (implicitly
+ or explicitly) specified loop_statement, a continue statement would instead
+ cause a transfer of control that completes only the current iteration of that
+ loop_statement, like a goto statement targeting a label following the last
+ statement in the sequence of statements of the specified loop_statement.
+ 
+ Note that ``continue`` is a keyword but it is not a reserved word. This is a
+ configuration that does not exist in standard Ada.
+ 
+ Destructors
+ -----------
+ 
+ The :ada:`Destructor` extension adds a new finalization mechanism that
+ significantly differs standard Ada in how it interacts with type derivation.
+ 
+ New syntax is introduced to make it possible to define "destructors" for record
+ types, tagged or untagged. Here's a simple example:
+ 
+ .. code-block:: ada
+ 
+    package P is
+       type T is record
+          ...
+       end record;
+ 
+       procedure T'Destructor (X : in out T);
+    end P;
+ 
+ .. code-block:: ada
+ 
+    package body P is
+       procedure T'Destructor (X : in out T) is
+       begin
+          ...
+       end T'Destructor;
+    end P;
+ 
+ Like :ada:`Finalize` procedures, destructors are called on objects just before they
+ are destroyed. But destructors are more flexible in how they can used with derived
+ types. With standard Ada finalization, when you derive from a finalizable type,
+ you must either inherit the :ada:`Finalize` procedure or override it completely.
+ 
+ Destructors work differently. You can define a destructor for a type derived from
+ a parent type that also has a destructor, and then when objects of the derived type
+ are finalized, both destructors will be called. For example:
+ 
+ .. code-block:: ada
+ 
+    type T1 is record
+       ...
+    end record;
+ 
+    procedure T1'Destructor (X : in out T1);
+ 
+    type T2 is new T1;
+ 
+    procedure T2'Destructor (X : in out T2);
+ 
+ When an object of type :ada:`T2` is finalized, there will be first a call to
+ :ada:`T2'Destructor`, and then a call to :ada:`T1'Destructor` on the object.
+ 
+ Structural Generic Instantiation
+ --------------------------------
+ 
+ The compiler implements a second kind of generic instantiation, called
+ "structural", alongside the traditional instantiation specified by the
+ language, which is defined as follows: the structural instantiation of
+ a generic unit on given actual parameters is the anonymous instantiation
+ of the generic unit on the actual parameters done in the outermost scope
+ where it would be legal to do an identical traditional instantiation.
+ 
+ There is at most one structural instantiation of a generic unit on given
+ actual parameters done in a partition.
+ 
+ Structural generic instances (the product of structural instantiation)
+ are implicitly created whenever a reference to them is made in a place
+ where a name is accepted by the language.
+ 
+ Syntax
+ ^^^^^^
+ 
+ .. code-block:: text
+ 
+    name ::= { set of productions specified in the RM }
+             | structural_generic_instance_name
+ 
+    structural_generic_instance_name ::= name generic_actual_part
+ 
+ Legality Rules
+ ^^^^^^^^^^^^^^
+ 
+ The ``name`` in a ``structural_generic_instance_name`` shall denote a generic
+ unit that is preelaborated. Note that, unlike in a traditional instantiation,
+ there are no square brackets around the ``generic_actual_part`` in the second
+ production, which means that it is mandatory and, therefore, that the generic
+ unit shall have at least one generic formal parameter.
+ 
+ The generic unit shall not take a generic formal object of mode ``in out``.
+ If the generic unit takes a generic formal object of mode ``in``, then the
+ corresponding generic actual parameter shall be a static expression.
+ 
+ A ``structural_generic_instance_name`` for a generic package shall not be
+ present in a library unit if the structural instance is also a library unit
+ and has a semantic dependence on the former.
+ 
+ For a generic subprogram, if a local entity of the enclosing library-level
+ package is used as an actual and the structural instance would have a semantic
+ dependence on the package, the structural instantiation is automatically
+ demoted to a local instantiation. In this case, several instances of the
+ generic subprogram may be present in a single partition, unless
+ whole-partition optimization is performed (e.g., via LTO).
+ 
+ Static Semantics
+ ^^^^^^^^^^^^^^^^
+ 
+ A ``structural_generic_instance_name`` denotes the instance that is the
+ product of the structural instantiation of a generic unit on the specified
+ actual parameters. This instance is unique to a partition, except when a
+ generic subprogram instantiation is automatically demoted to a local
+ instantiation as described under Legality Rules.
+ 
+ Example:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Containers.Vectors;
+ 
+    procedure P is
+       V : Ada.Containers.Vectors(Positive,Integer).Vector;
+ 
+    begin
+       V.Append (1);
+       V.Append (0);
+       Ada.Containers.Vectors(Positive,Integer).Generic_Sorting("<").Sort (V);
+    end;
+ 
+ This procedure references two structural instantiations of two different generic
+ units: ``Ada.Containers.Vectors(Positive,Integer)`` is the structural instance
+ of the generic unit ``Ada.Containers.Vectors`` on ``Positive`` and ``Integer``
+ and ``Ada.Containers.Vectors(Positive,Integer).Generic_Sorting("<")`` is the
+ structural instance of the nested generic unit
+ ``Ada.Containers.Vectors(Positive,Integer).Generic_Sorting`` on ``"<"``.
+ 
+ Note that the following example is illegal:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Containers.Vectors;
+ 
+    package Q is
+       type T is record
+          I : Integer;
+       end record;
+ 
+       V : Ada.Containers.Vectors(Positive,T).Vector;
+    end Q;
+ 
+ The reason is that ``Ada.Containers.Vectors``, ``Positive`` and ``Q.T`` being
+ library-level entities, the structural instance ``Ada.Containers.Vectors(Positive,T)`` is a library unit with a dependence
+ on ``Q`` and, therefore, cannot be referenced from within ``Q``. This
+ restriction applies to structural instantiations of generic packages. The
+ simple way out is to declare a traditional instantiation in this case:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Containers.Vectors;
+ 
+    package Q is
+       type T is record
+          I : Integer;
+       end record;
+ 
+       package Vectors_Of_T is new Ada.Containers.Vectors(Positive,T);
+ 
+       V : Vectors_Of_T.Vector;
+    end Q;
+ 
+ But the following example is legal:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Containers.Vectors;
+ 
+    procedure P is
+       type T is record
+          I : Integer;
+       end record;
+ 
+       V : Ada.Containers.Vectors(Positive,T).Vector;
+    end;
+ 
+ because the structural instance ``Ada.Containers.Vectors(Positive,T)`` is
+ not a library unit.
+ 
+ For generic subprograms, the restriction does not apply: if a local entity of
+ a library-level package is used as an actual, the structural instantiation is
+ automatically demoted to a local instantiation. For example:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Unchecked_Deallocation;
+ 
+    package Q is
+       type T is record
+          I : Integer;
+       end record;
+ 
+       type T_Access is access T;
+    end Q;
+ 
+    package body Q is
+       procedure Free_T (X : in out T_Access) is
+       begin
+          Ada.Unchecked_Deallocation(T, T_Access)(X);
+       end Free_T;
+    end Q;
+ 
+ is legal: since ``T`` and ``T_Access`` are local entities of ``Q``, the
+ structural instantiation of ``Ada.Unchecked_Deallocation`` is demoted to a
+ local instantiation rather than producing an error. Note that the uniqueness
+ guarantee no longer holds in this case and several instances of the generic
+ subprogram may be present in a single partition.
+ 
+ The first example can be rewritten in a less verbose manner:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Containers.Vectors; use Ada.Containers.Vectors(Positive,Integer);
+ 
+    procedure P is
+       V : Vector;
+ 
+    begin
+       V.Append (1);
+       V.Append (0);
+       Generic_Sorting("<").Sort (V);
+    end;
+ 
+ Another example, which additionally uses the inference of dependent types:
+ 
+ .. code-block:: ada
+ 
+    with Ada.Unchecked_Deallocation;
+ 
+    procedure P is
+ 
+       type Integer_Access is access all Integer;
+ 
+       A : Integer_Access := new Integer'(1);
+ 
+    begin
+       Ada.Unchecked_Deallocation(Name => Integer_Access) (A);
+    end;
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_advice.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_advice.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_advice.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_advice.rst	Thu Apr 23 11:07:32 2026
*************** RM E.5(28-29): Partition Communication S
*** 1218,1233 ****
    should allow them to block until the corresponding subprogram body
    returns."
  
! Followed by GLADE, a separately supplied PCS that can be used with
! GNAT.
  
    "The ``Write`` operation on a stream of type ``Params_Stream_Type``
    should raise ``Storage_Error`` if it runs out of space trying to
    write the ``Item`` into the stream."
  
- Followed by GLADE, a separately supplied PCS that can be used with
- GNAT.
- 
  .. index:: COBOL support
  
  RM F(7): COBOL Support
--- 1218,1230 ----
    should allow them to block until the corresponding subprogram body
    returns."
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product (NB! See the note in :ref:`polyORB` regarding the lifetime
! of this product).
  
    "The ``Write`` operation on a stream of type ``Params_Stream_Type``
    should raise ``Storage_Error`` if it runs out of space trying to
    write the ``Item`` into the stream."
  
  .. index:: COBOL support
  
  RM F(7): COBOL Support
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst	Thu Apr 23 11:07:32 2026
*************** or propagate an exception).
*** 267,272 ****
--- 267,355 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.10.
  
+ Aspect Extended_Access
+ ======================
+ 
+ This nonoverridable boolean-valued type-related representation aspect can be
+ specified as part of a full_type_declaration for a general access type
+ designating an unconstrained array subtype.
+ 
+ The absence of an Extended_Access aspect specification for such a
+ full_type_declaration is equivalent to an explicit
+ "Extended_Access => False" specification. This implies
+ that the aspect is never unspecified for an eligible access type.
+ An access type for which this aspect is True is said to be an extended access
+ type; this includes the case of a type derived from an extended access type.
+ Similarly, a value of such a type is said to be an extended access value.
+ 
+ The representation of an extended access value is different than that of
+ other access values. This representation makes it possible to designate
+ objects that cannot be designated using the usual "thin" or "fat" access
+ representations for an access type designating an unconstrained array
+ subtype (notably slices and array objects imported from other languages).
+ 
+ In particular, two rules are modified in determining the legality of an Access
+ or Unchecked_Access attribute reference if the expected access type is
+ an extended access type:
+ 
+ * A slice of an aliased array object of a non-bitpacked type (more precisely,
+   of an array type having independently addressable components) is considered
+   to be aliased (and the accessibility level of a slice of an array object is
+   defined to be that of the array object); this also applies to renamings
+   of such slices, slices of such renamings, etc.
+ 
+ * The requirement that the nominal subtype of the prefix shall statically
+   match the designated subtype of the access type need not be met.
+ 
+ The Size aspect (and other aspects including Stream_Size, Object_Size,
+ and Alignment) of an extended access type may depend on the properties of the
+ designated type. Further details of this dependence are not documented.
+ 
+ An extended access value is not convertible to a non-extended access type,
+ although conversions in the opposite direction are allowed. We don't want
+ to allow
+ 
+ .. code-block:: ada
+ 
+    type Big_Ref is access all String with Extended_Access;
+    type Small_Ref is access all String;
+    Obj : aliased String := "abcde";
+    Big_Ptr : Big_Ref := Obj (2 .. 4)'Access; -- OK
+    Small_Ptr : Small_Ref := Small_Ref (Big_Ptr); -- ERROR: illegal conversion
+ 
+ because there is no way to represent the result of such a conversion.
+ 
+ A dereference of an extended access value (or a reference to a renaming
+ thereof) shall not occur in any of the following contexts:
+ 
+ * as an operative constituent of the prefix of an Access or
+   Unchecked_Access attribute reference whose expected type is not extended; or
+ 
+ * as an operative constituent of an actual parameter in a call where
+   the corresponding formal parameter is explicitly aliased.
+ 
+ For the same reasons that explicit conversions from an extended access type to a
+ non-extended access type are forbidden, we also need to disallow getting the
+ same effect via a Extended_Ptr.all'Access reference; this includes the case
+ of passing Extended_Ptr.all as an actual parameter in a call where the
+ corresponding formal parameter is explicitly aliased (because the callee
+ could evaluate Formal_Parameter'Access). This goal is accomplished by
+ adjusting the definition of the term "aliased". A dereference of an extended
+ value occurring in one of these contexts is defined to denote
+ a nonaliased view. This has the desired effect because these contexts require
+ an aliased view. Continuing the preceding example, this rule disallows
+ 
+ .. code-block:: ada
+ 
+    Sneaky_1 : Small_Ptr := Big_Ptr.all'Access; -- ERROR: illegal 'Access prefix
+ 
+    function Make (Str : aliased in out String) return Small_Ptr
+      is (Str'Access); -- OK
+ 
+    Sneaky_2 : Small_Ptr := Make (Str => Big_Ptr.all); -- ERROR: bad parameter
+ 
+ for the same reason given above in the case of an explicit type conversion.
+ 
  Aspect Extensions_Visible
  =========================
  .. index:: Extensions_Visible
*************** Aspect Persistent_BSS
*** 538,543 ****
--- 621,634 ----
  
  This boolean aspect is equivalent to :ref:`pragma Persistent_BSS<Pragma-Persistent_BSS>`.
  
+ Aspect Potentially_Invalid
+ ==========================
+ .. index:: Potentially_Invalid
+ 
+ For the syntax and semantics of this aspect, see the SPARK 2014 Reference
+ Manual, section 13.9.1.
+ 
+ 
  Aspect Predicate
  ================
  .. index:: Predicate
*************** predicate is static or dynamic is contro
*** 549,554 ****
--- 640,651 ----
  expression. It is also separately controllable using pragma
  ``Assertion_Policy``.
  
+ Aspect Program_Exit
+ ===================
+ .. index:: Program_Exit
+ 
+ This boolean aspect is equivalent to :ref:`pragma Program_Exit<Pragma-Program_Exit>`.
+ 
  Aspect Pure_Function
  ====================
  .. index:: Pure_Function
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Thu Apr 23 11:07:32 2026
*************** Attribute Finalization_Size
*** 416,428 ****
  .. index:: Finalization_Size
  
  The prefix of attribute ``Finalization_Size`` must be an object or
! a non-class-wide type. This attribute returns the size of any hidden data
  reserved by the compiler to handle finalization-related actions. The type of
  the attribute is *universal_integer*.
  
  ``Finalization_Size`` yields a value of zero for a type with no controlled
  parts, an object whose type has no controlled parts, or an object of a
  class-wide type whose tag denotes a type with no controlled parts.
  
  Note that only heap-allocated objects contain finalization data.
  
--- 416,430 ----
  .. index:: Finalization_Size
  
  The prefix of attribute ``Finalization_Size`` must be an object or
! a type. This attribute returns the size of any hidden data
  reserved by the compiler to handle finalization-related actions. The type of
  the attribute is *universal_integer*.
  
  ``Finalization_Size`` yields a value of zero for a type with no controlled
  parts, an object whose type has no controlled parts, or an object of a
  class-wide type whose tag denotes a type with no controlled parts.
+ For a class-wide type, ``Finalization_Size`` yields a non-zero value except
+ if a No_Finalization restriction is in effect, in which case it yields zero.
  
  Note that only heap-allocated objects contain finalization data.
  
*************** that there are full range checks, to ens
*** 449,454 ****
--- 451,493 ----
  This attribute is primarily intended for use in implementation of the
  input-output functions for fixed-point values.
  
+ Attribute From_Address
+ ======================
+ .. index:: From_Address
+ 
+ The prefix of this attribute must be a general access-to-array type (or
+ subtype); the attribute takes a System.Address argument and possibly some
+ additional arguments (described below) and yields a value of the given
+ access type that designates an array object located at the given address.
+ In the case of a non-null array this means that the given address is the
+ address of the first element of the array object (not the address of any sort
+ of bounds descriptor). This allows associating bounds with an address that is,
+ for example, passed in from C code.
+ 
+ If the designated array subtype is unconstrained (which is the usual case),
+ then for each dimension (in order) the attribute takes either one or two
+ additional arguments of the corresponding index type - one if the index
+ subtype is a fixed lower bound subtype, two (low bound first) otherwise.
+ In this case, the access type shall be an extended access type (see the
+ description of the Extended_Access aspect). These additional arguments
+ specify the bounds of the designated array object.
+ 
+ If the designated array subtype is constrained then no additional arguments
+ are provided and the bounds of the designated object are those of the
+ designated subtype.
+ 
+ Roughly speaking, My_Access_Type'From_Address (Addr, Lo, Hi) is equivalent to a
+ declare expression:
+ 
+ .. code-block:: ada
+ 
+    (declare
+       Obj : aliased Designated_Array_Type (Lo .. Hi)
+         with Import, Address => Addr;
+    begin
+       My_Access_Type'(Obj'Unchecked_Access)
+    end)
+ 
  Attribute From_Any
  ==================
  .. index:: From_Any
*************** Attribute Maximum_Alignment
*** 653,663 ****
  
  .. index:: Maximum_Alignment
  
! ``Standard'Maximum_Alignment`` (``Standard`` is the only
! allowed prefix) provides the maximum useful alignment value for the
! target.  This is a static value that can be used to specify the alignment
! for an object, guaranteeing that it is properly aligned in all
! cases.
  
  Attribute Max_Integer_Size
  ==========================
--- 692,703 ----
  
  .. index:: Maximum_Alignment
  
! ``Standard'Maximum_Alignment`` (``Standard`` is the only allowed prefix)
! provides the maximum default alignment value for the target, that is to
! say the maximum alignment that the compiler may choose by default for a
! type or an object. Larger alignments are supported up to some maximum
! value dependent on the target, but may require specific mechanisms that
! are not needed up to ``Standard'Maximum_Alignment``.
  
  Attribute Max_Integer_Size
  ==========================
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst	Thu Apr 23 11:07:32 2026
*************** may have been set by a call to ``Ada.Com
*** 377,387 ****
  *
    "The mechanisms for building and running partitions.  See 10.2(24)."
  
! GNAT itself supports programs with only a single partition. The GNATDIST
! tool provided with the GLADE package (which also includes an implementation
! of the PCS) provides a completely flexible method for building and running
! programs consisting of multiple partitions. See the separate GLADE manual
! for details.
  
  *
    "The details of program execution, including program
--- 377,384 ----
  *
    "The mechanisms for building and running partitions.  See 10.2(24)."
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. **NB!** See the note in :ref:`polyORB` regarding the lifetime
! of this product.
  
  *
    "The details of program execution, including program
*************** See separate section on compilation mode
*** 394,401 ****
    implementation.  See 10.2(28)."
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. See the GLADE reference manual for
! further details.
  
  *
    "The information returned by ``Exception_Message``.  See 11.4.1(10)."
--- 391,397 ----
    implementation.  See 10.2(28)."
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The information returned by ``Exception_Message``.  See 11.4.1(10)."
*************** Implementation-defined assertion_aspect_
*** 467,473 ****
  Assume, Contract_Cases, Debug, Ghost, Initial_Condition, Loop_Invariant,
  Loop_Variant, Postcondition, Precondition, Predicate, Refined_Post,
  Statement_Assertions, and Subprogram_Variant. Implementation-defined
! policy_identifiers include Ignore and Suppressible.
  
  *
    "The default assertion policy.  See 11.4.2(10)."
--- 463,469 ----
  Assume, Contract_Cases, Debug, Ghost, Initial_Condition, Loop_Invariant,
  Loop_Variant, Postcondition, Precondition, Predicate, Refined_Post,
  Statement_Assertions, and Subprogram_Variant. Implementation-defined
! policy_identifiers include Disable and Suppressible.
  
  *
    "The default assertion policy.  See 11.4.2(10)."
*************** Unknown.
*** 1188,1215 ****
    "The means for creating and executing distributed
    programs.  See E(5)."
  
! The GLADE package provides a utility GNATDIST for creating and executing
! distributed programs. See the GLADE reference manual for further details.
  
  *
    "Any events that can result in a partition becoming
    inaccessible.  See E.1(7)."
  
! See the GLADE reference manual for full details on such events.
  
  *
    "The scheduling policies, treatment of priorities, and management of
    shared resources between partitions in certain cases.  See E.1(11)."
  
! See the GLADE reference manual for full details on these aspects of
! multi-partition execution.
  
  *
    "Whether the execution of the remote subprogram is
    immediately aborted as a result of cancellation.  See E.4(13)."
  
! See the GLADE reference manual for details on the effect of abort in
! a distributed application.
  
  *
    "The range of type System.RPC.Partition_Id.  See E.5(14)."
--- 1184,1213 ----
    "The means for creating and executing distributed
    programs.  See E(5)."
  
! The PolyORB product provides means creating and executing
! distributed programs. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "Any events that can result in a partition becoming
    inaccessible.  See E.1(7)."
  
! See the PolyORB user guide for full details on such events.
! **NB!** Consider the note in :ref:`polyORB` regarding the lifetime
! of this product.
  
  *
    "The scheduling policies, treatment of priorities, and management of
    shared resources between partitions in certain cases.  See E.1(11)."
  
! See the PolyORB user guide for full details on these aspects of
! multi-partition execution. **NB!** Consider the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "Whether the execution of the remote subprogram is
    immediately aborted as a result of cancellation.  See E.4(13)."
  
! See the PolyORB user guide for details on the effect of abort in
! a distributed application.  **NB!** Consider the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The range of type System.RPC.Partition_Id.  See E.5(14)."
*************** System.RPC.Partition_ID'Last is Integer'
*** 1219,1226 ****
  *
    "Implementation-defined interfaces in the PCS.  See E.5(26)."
  
! See the GLADE reference manual for a full description of all
! implementation defined interfaces.
  
  *
    "The values of named numbers in the package
--- 1217,1224 ----
  *
    "Implementation-defined interfaces in the PCS.  See E.5(26)."
  
! See the PolyORB user guide for a full description of all
! implementation defined interfaces.  **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  *
    "The values of named numbers in the package
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst	Thu Apr 23 11:07:32 2026
*************** and generics may name types with unknown
*** 123,128 ****
--- 123,133 ----
  the ``(<>)`` notation.  In addition, some but not all of the additional
  restrictions of Ada 83 are enforced.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  Ada 83 mode is intended for two purposes.  Firstly, it allows existing
  Ada 83 code to be compiled and adapted to GNAT with less effort.
  Secondly, it aids in keeping code backwards compatible with Ada 83.
*************** contexts.  This pragma is useful when wr
*** 149,154 ****
--- 154,164 ----
  itself uses Ada 95 features, but which is intended to be usable from
  either Ada 83 or Ada 95 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  Pragma Ada_05
  =============
  
*************** This pragma is useful when writing a reu
*** 166,171 ****
--- 176,186 ----
  itself uses Ada 2005 features, but which is intended to be usable from
  either Ada 83 or Ada 95 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form (which is not a configuration pragma)
  is used for managing the transition from
  Ada 95 to Ada 2005 in the run-time library. If an entity is marked
*************** contexts.  This pragma is useful when wr
*** 209,214 ****
--- 224,234 ----
  itself uses Ada 2012 features, but which is intended to be usable from
  Ada 83, Ada 95, or Ada 2005 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form, which is not a configuration pragma,
  is used for managing the transition from Ada
  2005 to Ada 2012 in the run-time library. If an entity is marked
*************** contexts.  This pragma is useful when wr
*** 252,257 ****
--- 272,282 ----
  itself uses Ada 2022 features, but which is intended to be usable from
  Ada 83, Ada 95, Ada 2005 or Ada 2012 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form, which is not a configuration pragma,
  is used for managing the transition from Ada
  2012 to Ada 2022 in the run-time library. If an entity is marked
*************** The analyzed pragma is retained in the t
*** 373,381 ****
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools, including ASIS. The use of pragma Annotate does not
! affect the compilation process in any way. This pragma may be used as
! a configuration pragma.
  
  Pragma Assert
  =============
--- 398,405 ----
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools. The use of pragma Annotate does not affect the compilation
! process in any way. This pragma may be used as a configuration pragma.
  
  Pragma Assert
  =============
*************** of Ada from 2005 on. In GNAT, it is impl
*** 441,446 ****
--- 465,474 ----
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Assert_And_Cut
  =====================
  
*************** a subprogram into sections for the purpo
*** 465,470 ****
--- 493,517 ----
  formal verification. The pragma also serves as useful
  documentation.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
+ Pragma Assertion_Level
+ =======================
+ 
+ Syntax::
+ 
+   pragma Assertion_Level (LEVEL_IDENTIFIER
+                           [, depends => DEPENDENCY_DESCRIPTOR]);
+ 
+   DEPENDENCY_DESCRIPTOR ::= LEVEL_IDENTIFIER | LEVEL_IDENTIFIER_LIST
+ 
+   LEVEL_IDENTIFIER_LIST ::= '[' LEVEL_IDENTIFIER {, LEVEL_IDENTIFIER} ']'
+ 
+ For the semantics of this pragma, see the SPARK 2014 Reference Manual,
+ section 11.4.3.
+ 
  Pragma Assertion_Policy
  =======================
  
*************** Syntax::
*** 476,482 ****
        ASSERTION_KIND => POLICY_IDENTIFIER
     {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!   ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND
  
    RM_ASSERTION_KIND ::= Assert                    |
                          Static_Predicate          |
--- 523,529 ----
        ASSERTION_KIND => POLICY_IDENTIFIER
     {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!   ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND | ASSERTION_LEVEL
  
    RM_ASSERTION_KIND ::= Assert                    |
                          Static_Predicate          |
*************** The assertion kinds ``RM_ASSERTION_KIND`
*** 516,521 ****
--- 563,572 ----
  the Ada standard. The assertion kinds ``ID_ASSERTION_KIND``
  are implementation defined additions recognized by the GNAT compiler.
  
+ Additionally the pragma can apply to an assertion level defined by the
+ ``Assertion_Level`` pragma. For more details see the SPARK 2014 Reference
+ Manual, section 11.4.2.
+ 
  The pragma applies in both cases to pragmas and aspects with matching
  names, e.g. ``Pre`` applies to the Pre aspect, and ``Precondition``
  applies to both the ``Precondition`` pragma
*************** but it acts as a useful run-time check t
*** 583,588 ****
--- 634,643 ----
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Assume_No_Invalid_Values
  ===============================
  .. index:: Invalid representations
*************** call, as determined by the corresponding
*** 1272,1277 ****
--- 1327,1336 ----
  and that the consequence for this case should hold when the subprogram
  returns.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Convention_Identifier
  ============================
  .. index:: Conventions, synonyms
*************** pragmas can be enabled either by use of
*** 1480,1485 ****
--- 1539,1548 ----
  or by use of the pragma ``Check_Policy`` with a first argument of
  ``Debug``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Debug_Policy
  ===================
  
*************** Syntax:
*** 1509,1514 ****
--- 1572,1581 ----
  For the semantics of this pragma, see the entry for aspect
  ``Default_Initial_Condition`` in the SPARK 2014 Reference Manual, section 7.3.3.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Default_Scalar_Storage_Order
  ===================================
  .. index:: Default_Scalar_Storage_Order
*************** Syntax:
*** 1940,1946 ****
    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
--- 2007,2014 ----
    EXIT_CASE      ::= GUARD => EXIT_KIND
    EXIT_KIND      ::= Normal_Return
                     | Exception_Raised
!                    | (Exception_Raised => exception_name)
!                    | Program_Exit
    GUARD          ::= Boolean_expression
  
  For the semantics of this aspect, see the SPARK 2014 Reference Manual, section
*************** Syntax:
*** 2896,2901 ****
--- 2964,2973 ----
  For the semantics of this pragma, see the entry for aspect ``Initial_Condition``
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Initialize_Scalars
  =========================
  .. index:: debugging with Initialize_Scalars
*************** invariant pragma for the same entity.
*** 3248,3253 ****
--- 3320,3329 ----
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Keep_Names
  =================
  
*************** may be used to refer to the value of an
*** 3625,3630 ****
--- 3701,3710 ----
  attribute can only be used within the expression of a ``Loop_Invariant``
  pragma. For full details, see documentation of attribute ``Loop_Entry``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Loop_Optimize
  ====================
  
*************** statements.
*** 3727,3732 ****
--- 3807,3816 ----
  The ``Loop_Entry`` attribute may be used within the expressions of the
  ``Loop_Variant`` pragma to refer to values on entry to the loop.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Machine_Attribute
  ========================
  
*************** if there is no separate subprogram decla
*** 4601,4606 ****
--- 4685,4694 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Postcondition
  ====================
  .. index:: Postcondition
*************** use of the pragma identifier ``Check``.
*** 4773,4778 ****
--- 4861,4870 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Post_Class
  =================
  .. index:: Post
*************** aspects, but is prepared to ignore the p
*** 4807,4812 ****
--- 4899,4908 ----
  policy that controls this pragma is ``Post'Class``, not
  ``Post_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Pre
  ==========
  .. index:: Pre
*************** if there is no separate subprogram decla
*** 4831,4836 ****
--- 4927,4936 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Precondition
  ===================
  .. index:: Preconditions
*************** use of the pragma identifier ``Check``.
*** 4891,4896 ****
--- 4991,5000 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Predicate:
  
  Pragma Predicate
*************** fundamentally changed (for example a mem
*** 4951,4956 ****
--- 5055,5064 ----
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Predicate_Failure
  ========================
  
*************** aspects, but is prepared to ignore the p
*** 5048,5053 ****
--- 5156,5165 ----
  policy that controls this pragma is ``Pre'Class``, not
  ``Pre_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Priority_Specific_Dispatching
  ====================================
  
*************** generating ``Restrictions`` pragmas, it
*** 5285,5290 ****
--- 5397,5416 ----
  violations of the profile generate warning messages instead
  of error messages.
  
+ .. _Pragma-Program_Exit:
+ 
+ Pragma Program_Exit
+ ===================
+ 
+ Syntax:
+ 
+ .. code-block:: ada
+ 
+   pragma Program_Exit [ (boolean_EXPRESSION) ];
+ 
+ For the semantics of this pragma, see the entry for aspect ``Program_Exit``
+ in the SPARK 2014 Reference Manual, section 6.1.10.
+ 
  Pragma Propagate_Exceptions
  ===========================
  .. index:: Interfacing to C++
*************** Syntax:
*** 5522,5527 ****
--- 5648,5657 ----
  For the semantics of this pragma, see the entry for aspect ``Refined_Post`` in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Refined_State:
  
  Pragma Refined_State
*************** Syntax:
*** 5874,5886 ****
    pragma Short_Circuit_And_Or;
  
  
! This configuration pragma causes any occurrence of the AND operator applied to
! operands of type Standard.Boolean to be short-circuited (i.e. the AND operator
! is treated as if it were AND THEN). Or is similarly treated as OR ELSE. This
! may be useful in the context of certification protocols requiring the use of
! short-circuited logical operators. If this configuration pragma occurs locally
! within the file being compiled, it applies only to the file being compiled.
  There is no requirement that all units in a partition use this option.
  
  Pragma Short_Descriptors
  ========================
--- 6004,6036 ----
    pragma Short_Circuit_And_Or;
  
  
! This configuration pragma causes the predefined AND and OR operators of
! type Standard.Boolean to have short-circuit semantics. That is, they
! behave like AND THEN and OR ELSE; the right-hand side is not evaluated
! if the left-hand side determines the result. This may be useful in the
! context of certification protocols requiring the use of short-circuited
! logical operators.
! 
  There is no requirement that all units in a partition use this option.
+ However, mixing of short-circuit and non-short-circuit semantics can be
+ confusing. Therefore, the recommended use is to put the pragma in a
+ configuration file that applies to the whole program. Alternatively, if
+ you have a legacy library that should not use this pragma, you can put
+ it in a separate library project that does not use the pragma.
+ In any case, fine-grained mixing of the different semantics is not
+ recommended. If pragma ``Short_Circuit_And_Or`` is specified, then it
+ is illegal to rename the predefined Boolean AND and OR, or to pass
+ them to generic formal functions; this corresponds to the fact that
+ AND THEN and OR ELSE cannot be renamed nor passed as generic formal
+ functions.
+ 
+ Note that this pragma has no effect on other logical operators --
+ predefined operators of modular types, array-of-boolean types and types
+ derived from Standard.Boolean, nor user-defined operators.
+ 
+ See also the pragma ``Unevaluated_Use_Of_Old`` and the restriction
+ ``No_Direct_Boolean_Operators``, which may be useful in conjunction
+ with ``Short_Circuit_And_Or``.
  
  Pragma Short_Descriptors
  ========================
*************** The ``Subprogram_Variant`` pragma is int
*** 6487,6492 ****
--- 6637,6645 ----
  the implementation-defined ``Subprogram_Variant`` aspect, and shares its
  restrictions and semantics.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
  
  Pragma Subtitle
  ===============
*************** names that are implementation defined (a
*** 6519,6530 ****
  
  
  *
!   ``Alignment_Check`` can be used to suppress alignment checks
!   on addresses used in address clauses. Such checks can also be suppressed
!   by suppressing range checks, but the specific use of ``Alignment_Check``
!   allows suppression of alignment checks without suppressing other range checks.
!   Note that ``Alignment_Check`` is suppressed by default on machines (such as
!   the x86) with non-strict alignment.
  
  *
    ``Atomic_Synchronization`` can be used to suppress the special memory
--- 6672,6680 ----
  
  
  *
!   ``Alignment_Check`` can be used to suppress alignment checks on addresses
!   used in address clauses. Note that ``Alignment_Check`` is suppressed by
!   default on non-strict alignment machines (such as the x86).
  
  *
    ``Atomic_Synchronization`` can be used to suppress the special memory
*************** does not permit a string parameter, and
*** 6915,6920 ****
--- 7065,7074 ----
  controlled by the assertion identifier ``Type_Invariant``
  rather than ``Invariant``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  .. _Pragma-Type_Invariant_Class:
  
  Pragma Type_Invariant_Class
*************** aspects, but is prepared to ignore the p
*** 6944,6949 ****
--- 7098,7107 ----
  policy that controls this pragma is ``Type_Invariant'Class``,
  not ``Type_Invariant_Class``.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  Pragma Unchecked_Union
  ======================
  .. index:: Unions in C
*************** units and unreferenced entities within t
*** 7185,7191 ****
  
  For the variable case, warnings are never given for unreferenced variables
  whose name contains one of the substrings
! ``DISCARD, DUMMY, IGNORE, JUNK, UNUSED`` in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use ``pragma Unreferenced`` for such
  variables, though it is harmless to do so.
--- 7343,7349 ----
  
  For the variable case, warnings are never given for unreferenced variables
  whose name contains one of the substrings
! ``DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP`` in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use ``pragma Unreferenced`` for such
  variables, though it is harmless to do so.
*************** that it might be.
*** 7318,7324 ****
  
  For the variable case, warnings are never given for unreferenced
  variables whose name contains one of the substrings
! ``DISCARD, DUMMY, IGNORE, JUNK, UNUSED`` in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use ``pragma Unused`` for such
  variables, though it is harmless to do so.
--- 7476,7482 ----
  
  For the variable case, warnings are never given for unreferenced
  variables whose name contains one of the substrings
! ``DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP`` in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use ``pragma Unused`` for such
  variables, though it is harmless to do so.
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_of_ada_2012_features.rst	Thu Jan  1 00:00:00 1970
***************
*** 1,1330 ****
- .. _Implementation_of_Ada_2012_Features:
- 
- ***********************************
- Implementation of Ada 2012 Features
- ***********************************
- 
- .. index:: Ada 2012 implementation status
- 
- .. index:: -gnat12 option (gcc)
- 
- .. index:: pragma Ada_2012
- 
- .. index:: configuration pragma Ada_2012
- 
- .. index:: Ada_2012 configuration pragma
- 
- This chapter contains a complete list of Ada 2012 features that have been
- implemented.
- Generally, these features are only
- available if the *-gnat12* (Ada 2012 features enabled) option is set,
- which is the default behavior,
- or if the configuration pragma ``Ada_2012`` is used.
- 
- However, new pragmas, attributes, and restrictions are
- unconditionally available, since the Ada 95 standard allows the addition of
- new pragmas, attributes, and restrictions (there are exceptions, which are
- documented in the individual descriptions), and also certain packages
- were made available in earlier versions of Ada.
- 
- An ISO date (YYYY-MM-DD) appears in parentheses on the description line.
- This date shows the implementation date of the feature. Any wavefront
- subsequent to this date will contain the indicated feature, as will any
- subsequent releases. A date of 0000-00-00 means that GNAT has always
- implemented the feature, or implemented it as soon as it appeared as a
- binding interpretation.
- 
- Each feature corresponds to an Ada Issue ('AI') approved by the Ada
- standardization group (ISO/IEC JTC1/SC22/WG9) for inclusion in Ada 2012.
- The features are ordered based on the relevant sections of the Ada
- Reference Manual ("RM").  When a given AI relates to multiple points
- in the RM, the earliest is used.
- 
- 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)
- 
- * *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)
- 
- .. 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)
- 
- * *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)
- 
- .. index:: AI-0132 (Ada 2012 feature)
- 
- * *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)
- 
- .. 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)
- 
- * *AI-0177 Parameterized expressions (2010-07-10)*
- 
-   The new Ada 2012 notion of parameterized expressions is implemented. The form
-   is:
- 
-   .. code-block:: ada
- 
-      function-specification is (expression)
- 
-   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)
- 
- .. 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)
- 
- * *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)
- 
- .. 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)
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,2267 ----
+ .. _Implementation_of_Ada_2022_Features:
+ 
+ ***********************************
+ Implementation of Ada 2022 Features
+ ***********************************
+ 
+ .. index:: Ada 2022 implementation status
+ 
+ .. index:: -gnat22 option (gcc)
+ 
+ .. index:: pragma Ada_2022
+ 
+ .. index:: configuration pragma Ada_2022
+ 
+ .. index:: Ada_2022 configuration pragma
+ 
+ This chapter contains a complete list of Ada 2022 features that have been
+ implemented. Generally, these features are only available if the *-gnat22* (Ada 2022 features enabled) option is set, or if the configuration pragma ``Ada_2022`` is used.
+ 
+ However, new pragmas, attributes, and restrictions are unconditionally available, since the Ada standard allows the addition of new pragmas, attributes, and restrictions (there are exceptions, which are
+ documented in the individual descriptions), and also certain packages
+ were made available in earlier versions of Ada.
+ 
+ An ISO date (YYYY-MM-DD) appears in parentheses on the description line.
+ This date shows the implementation date of the feature. Any wavefront
+ subsequent to this date will contain the indicated feature, as will any
+ subsequent releases. A date of 0000-00-00 means that GNAT has always
+ implemented the feature, or implemented it as soon as it appeared as a
+ binding interpretation.
+ 
+ Each feature corresponds to an Ada Issue ('AI') approved by the Ada
+ standardization group (ISO/IEC JTC1/SC22/WG9) for inclusion in Ada 2022.
+ 
+ The section "RM references" lists all modified paragraphs in the Ada 2012 reference manual. The details of each modification as well as a complete description of the AIs may be found in
+ http://www.ada-auth.org/AI12-SUMMARY.HTML.
+ 
+ .. index:: AI12-0001 (Ada 2022 feature)
+ 
+ * *AI12-0001 Independence and Representation clauses for atomic objects (2019-11-27)*
+ 
+   The compiler accepts packing clauses in all cases, even if they have effectively no influence on the layout. Types, where packing is essentially infeasible are, for instance atomic, aliased and by-reference types.
+ 
+   RM references: 13.02 (6.1/2) 13.02 (7) 13.02 (8) 13.02 (9/3) C.06 (8.1/3)
+   C.06 (10) C.06 (11) C.06 (21) C.06 (24)
+ 
+ .. index:: AI12-0003 (Ada 2022 feature)
+ 
+ * *AI12-0003 Specifying the standard storage pool (2020-06-25)*
+ 
+   Allows the standard storage pool being specified with a ``Default_Storage_Pool`` pragma or aspect.
+ 
+   RM references: 8.02 (11) 13.11.03 (1/3) 13.11.03 (3.1/3) 13.11.03 (4/3)
+   13.11.03 (4.1/3) 13.11.03 (5/3) 13.11.03 (6.2/3) 13.11.03
+   (6.3/3)
+ 
+ .. index:: AI12-0004 (Ada 2022 feature)
+ 
+ * *AI12-0004 Normalization and allowed characters for identifiers (2020-06-11)*
+ 
+   This AI clarifies that Ada identifiers containing characters which are not
+   allowed in Normalization Form KC are illegal.
+ 
+   RM references: 2.01 (4.1/3) 2.03 (4/3) A.03.02 (4/3) A.03.02 (32.5/3)
+   A.03.05 (18/3) A.03.05 (51/3)
+ 
+ .. index:: AI12-0020 (Ada 2022 feature)
+ 
+ * *AI12-0020 'Image for all types (2020-03-30)*
+ 
+   Put_Image prints out a human-readable representation of an object. The
+   functionality in Ada2022 RM is fully implemented except the support for
+   types in the ``Remote_Types`` packages.
+ 
+   RM references: 4.10 (0) 3.05 (27.1/2) 3.05 (27.2/2) 3.05 (27.3/2) 3.05
+   (27.4/2) 3.05 (27.5/2) 3.05 (27.6/2) 3.05 (27.7/2) 3.05 (28) 3.05
+   (29) 3.05 (30/3) 3.05 (31) 3.05 (32) 3.05 (33/3) 3.05 (37.1/2)
+   3.05 (38) 3.05 (39) 3.05 (43/3) 3.05 (55/3) 3.05 (55.1/5) 3.05
+   (55.2/4) 3.05 (55.3/4) 3.05 (55.4/4) 3.05 (59) H.04 (23) H.04 (23.8/2)
+ 
+ .. index:: AI12-0022 (Ada 2022 feature)
+ 
+ * *AI12-0022 Raise_Expressions (2013-01-27)*
+ 
+   This feature allows you to write "raise NAME [with STRING]" in an
+   expression to rise given exception. It is particularly useful in the case of
+   assertions such as preconditions allowing to specify which exception a
+   precondition raises if it fails.
+ 
+   RM references: 4.04 (3/3) 11.02 (6) 11.03 (2/2) 11.03 (3) 11.03 (3.1/2)
+   11.03 (4/2) 11.04.01 (10.1/3)
+ 
+ .. index:: AI12-0027 (Ada 2022 feature)
+ 
+ * *AI12-0027 Access values should never designate unaliased components (2020-06-15)*
+ 
+   AI12-0027 adds a requirement for a value conversion that converts from an array of unaliased components to an array of aliased components to make a copy. It defines such conversions to have a local accessibility, effectively preventing the possibility of unsafe accesses to unaliased components.
+ 
+   RM references: 4.06 (24.17/3) 4.06 (24.21/2) 4.06 (58) 6.02 (10/3) 3.10.02 (10/3)
+ 
+ .. index:: AI12-0028 (Ada 2022 feature)
+ 
+ * *AI12-0028 Import of variadic C functions (2020-03-03)*
+ 
+   Ada programs can now properly call variadic C functions by means of the
+   conventions C_Variadic_<n>, for small integer values <n>.
+ 
+   RM references: B.03 (1/3) B.03 (60.15/3) B.03 (75)
+ 
+ .. index:: AI12-0030 (Ada 2022 feature)
+ 
+ * *AI12-0030 Formal derived types and stream attribute availability (2020-08-21)*
+ 
+   Corner cases involving streaming operations for formal derived limited types
+   that are now defined to raise Program_Error. Before, behavior in these cases
+   was undefined. Stream attribute availability is more precisely computed in cases where a derived type declaration occurs ahead of a streaming attribute specification for the parent type.
+ 
+   RM references: 12.05.01 (21/3) 13.13.02 (49/2)
+ 
+ .. index:: AI12-0031 (Ada 2022 feature)
+ 
+ * *AI12-0031 All_Calls_Remote and indirect calls (0000-00-00)*
+ 
+   Remote indirect calls (i.e., calls through a remote access-to-subprogram type)
+   behave the same as remote direct calls.
+ 
+   RM references: E.02.03 (19/3)
+ 
+ .. index:: AI12-0032 (Ada 2022 feature)
+ 
+ * *AI12-0032 Questions on 'Old (2020-04-24)*
+ 
+   AI12-0032 resolves several issues related to the 'Old attribute. The GNAT
+   compiler already implemented what the AI requires in most of those cases, but two having to do with static and dynamic checking of the accessibility level of the constant object implicitly declared for an 'Old attribute reference were not yet implemented. Accessibility checking for these constants is now implemented as defined in the AI.
+ 
+   RM references: 4.01.03 (9/3) 6.01.01 (22/3) 6.01.01 (26/3) 6.01.01 (35/3)
+ 
+ .. index:: AI12-0033 (Ada 2022 feature)
+ 
+ * *AI12-0033 Sets of CPUs when defining dispatching domains (0000-00-00)*
+ 
+   The set of CPUs associated with a dispatching domain is no longer required
+   to be a contiguous range of CPU values.
+ 
+   RM references: D.16.01 (7/3) D.16.01 (9/3) D.16.01 (20/3) D.16.01 (23/3)
+   D.16.01 (24/3) D.16.01 (26/3)
+ 
+ .. index:: AI12-0035 (Ada 2022 feature)
+ 
+ * *AI12-0035 Accessibility checks for indefinite elements of containers (0000-00-00)*
+ 
+   If the element type for an instance of one of the indefinite container generics has an access discriminant, then accessibility checks (at run-time) prevent inserting a value into a container object if the value's discriminant designates an object that is too short-lived (that is, if the designated object has an accessibility level that is deeper than that of the instance). Without this check, dangling references would be possible. GNAT handled this correctly already before this AI was issued.
+ 
+   RM references: A.18 (5/3) A.18.11 (8/2) A.18.12 (7/2) A.18.13 (8/2)
+   A.18.14 (8/2) A.18.15 (4/2) A.18.16 (4/2) A.18.17 (7/3) A.18.18
+   (39/3) A.18.18 (47/3)
+ 
+ .. index:: AI12-0036 (Ada 2022 feature)
+ 
+ * *AI12-0036 The actual for an untagged formal derived type cannot be tagged (2019-10-21)*
+ 
+   AI12-0036 is a binding interpretation that adds the following legality rule:
+   The actual type for a formal derived type shall be tagged if and only if the
+   formal derived type is a private extension. The check is implemented for all Ada dialects, not just Ada 2022.
+ 
+   RM references: 12.05.01 (5.1/3)
+ 
+ .. index:: AI12-0037 (Ada 2022 feature)
+ 
+ * *AI12-0037 New types in Ada.Locales can't be converted to/from strings (2016-09-10)*
+ 
+   The type definitions for Language_Code and Country_Code are now using dynamic
+   predicates.
+ 
+   RM references: A.19 (4/3)
+ 
+ .. index:: AI12-0039 (Ada 2022 feature)
+ 
+ * *AI12-0039 Ambiguity in syntax for membership expression removed (0000-00-00)*
+ 
+   An ambiguity in the syntax for membership expressions was resolved. For example, "A in B and C" can be parsed in only one way because of this AI.
+ 
+   RM references: 4.04 (3/3) 4.04 (3.2/3) 4.05.02 (3.1/3) 4.05.02 (4) 4.05.02
+   (4.1/3) 4.05.02 (27/3) 4.05.02 (27.1/3) 4.05.02 (28.1/3) 4.05.02
+   (28.2/3) 4.05.02 (29/3) 4.05.02 (30/3) 4.05.02 (30.1/3) 4.05.02
+   (30.2/3) 4.05.02 (30.3/3) 4.09 (11/3) 4.09 (32.6/3) 8.06 (27.1/3)
+   3.02.04 (17/3)
+ 
+ .. index:: AI12-0040 (Ada 2022 feature)
+ 
+ * *AI12-0040 Resolving the selecting_expression of a case_expression (0000-00-00)*
+ 
+   The definition of "complete context" is corrected so that selectors of case expressions
+   and of case statements are treated uniformly.
+ 
+   RM references: 8.06 (9)
+ 
+ .. index:: AI12-0041 (Ada 2022 feature)
+ 
+ * *AI12-0041 Type_Invariant'Class for interface types (2016-12-12)*
+ 
+   Subprogram calls within class-wide type invariant expressions get resolved
+   as primitive operations instead of being dynamically dispatched.
+ 
+   RM references: 7.03.02 (1/3) 7.03.02 (3/3)
+ 
+ .. index:: AI12-0042 (Ada 2022 feature)
+ 
+ * *AI12-0042 Type invariant checking rules (2020-06-05)*
+ 
+   AI12-0042 adds rules for type invariants.
+   Specifically, when inheriting a private dispatching operation when the ancestor operation is visible at the point of the type extension, the operation must be abstract or else overridden. In addition, for a class-wide view conversion from an object of a specific type T to which a type invariant applies, an invariant check is performed when the conversion is within the immediate scope of T.
+ 
+   RM references: 7.03.02 (6/3) 7.03.02 (17/3) 7.03.02 (18/3) 7.03.02 (19/3)
+   7.03.02 (20/3)
+ 
+ .. index:: AI12-0043 (Ada 2022 feature)
+ 
+ * *AI12-0043 Details of the storage pool used when Storage_Size is specified (0000-00-00)*
+ 
+   Clarify that a Storage_Size specification for an access type specifies both an upper bound and a lower bound (not just a lower bound) of the amount of storage allowed for allocated objects.
+ 
+   RM references: 13.11 (18)
+ 
+ .. index:: AI12-0044 (Ada 2022 feature)
+ 
+ * *AI12-0044 Calling visible functions from type invariant expressions (2020-05-11)*
+ 
+   AI05-0289-1 extends invariant checking to `in` parameters. However, this makes
+   it impossible to call a public function of the type from an invariant
+   expression, as that public function will attempt to check the invariant,
+   resulting in an infinite recursion.
+ 
+   This AI specifies, that type-invariant checking is performed on parameters
+   of mode `in` upon return from procedure calls, but not of `in`-mode
+   parameters in functions.
+ 
+   RM references: 7.03.02 (19/3)
+ 
+ .. index:: AI12-0045 (Ada 2022 feature)
+ 
+ * *AI12-0045 Pre- and Postconditions are allowed on generic subprograms (2015-03-17)*
+ 
+   The SPARK toolset now supports contracts on generic subprograms, packages and
+   their respective bodies.
+ 
+   RM references: 6.01.01 (1/3)
+ 
+ .. index:: AI12-0046 (Ada 2022 feature)
+ 
+ * *AI12-0046 Enforcing legality for anonymous access components in record aggregates (0000-00-00)*
+ 
+   For a record aggregate of the form (X | Y => ....), any relevant legality rules are checked for both for X and Y.
+ 
+   For example,
+ 
+   .. code::
+ 
+       X : aliased constant String := ... ;
+       type R is record
+         F1 : access constant String;
+         F2 : access String;
+       end record;
+       Obj : R := (F1 | F2 => X'Access); -- ok for F1, but illegal for F2
+ 
+   RM references: 4.03.01 (16/3)
+ 
+ .. index:: AI12-0047 (Ada 2022 feature)
+ 
+ * *AI12-0047 Generalized iterators and discriminant-dependent components (0000-00-00)*
+ 
+   Iterating over the elements of an array is subject to the same legality checks as renaming the array. For example, if an assignment to an enclosing discriminated object could cause an array object to cease to exist then we don't allow renaming the array. So it is similarly not allowed to iterate over the elements of such an array.
+ 
+   RM references: 5.05.02 (6/3)
+ 
+ .. index:: AI12-0048 (Ada 2022 feature)
+ 
+ * *AI12-0048 Default behavior of tasks on a multiprocessor with a specified dispatching policy (0000-00-00)*
+ 
+   Clarify that if the user does not impose requirements about what CPUs a given task might execute on, then the implementation does not get to impose such requirements. This avoids potential problems with priority inversion.
+ 
+   RM references: D.16.01 (30/3)
+ 
+ .. index:: AI12-0049 (Ada 2022 feature)
+ 
+ * *AI12-0049 Invariants need to be checked on the initialization of deferred constants (0000-00-00)*
+ 
+   Invariant checking for deferred constants (and subcomponents thereof) is performed. Corrects a clear oversight in the previous RM wording.
+ 
+   RM references: 7.03.02 (10/3)
+ 
+ .. index:: AI12-0050 (Ada 2022 feature)
+ 
+ * *AI12-0050 Conformance of quantified expressions (2016-07-22)*
+ 
+   Compiler rejects a subprogram body when an expression for a boolean formal
+   parameter includes a quantified expression, and the subprogram declaration
+   contains a textual copy of the same.
+ 
+   RM references: 6.03.01 (20) 6.03.01 (21)
+ 
+ .. index:: AI12-0051 (Ada 2022 feature)
+ 
+ * *AI12-0051 The Priority aspect can be specified when Attach_Handler is specified (0000-00-00)*
+ 
+   Previous RM wording had two contradictory rules for determining (in some cases) the priority of a protected subprogram that is attached to an interrupt. The AI clarifies which one of the rules takes precedence.
+ 
+   RM references: D.03 (10/3)
+ 
+ .. index:: AI12-0052 (Ada 2022 feature)
+ 
+ * *AI12-0052 Implicit objects are considered overlapping (0000-00-00)*
+ 
+   Clarify that the rules about unsynchronized concurrent access apply as one would expect in the case of predefined routines that access Text_IO's default input and default output files. There was no compiler changes needed to implement this.
+ 
+   RM references: A (3/2) A.10.03 (21)
+ 
+ .. index:: AI12-0054-2 (Ada 2022 feature)
+ 
+ * *AI12-0054-2 Aspect Predicate_Failure (0000-00-00)*
+ 
+   New aspect Predicate_Failure is defined.  A solution for the problem that a predicate like
+ 
+   ..  code::
+ 
+     subtype Open_File is File with Dynamic_Predicate =\> Is_Open (Open_File) or else (raise File_Not_Open);
+ 
+   does the wrong thing in the case of a membership test.
+ 
+   RM references: 3.02.04 (14/3) 3.02.04 (31/3) 3.02.04 (35/3)
+ 
+ .. index:: AI12-0055 (Ada 2022 feature)
+ 
+ * *AI12-0055 All properties of a usage profile are defined by pragmas (2020-06-09)*
+ 
+   AI12-0055 allows the use of the No_Dynamic_CPU_Assignment restriction in pragmas Restrictions and Restrictions_Warnings.
+ 
+   RM references: D.07 (10/3) D.13 (6/3) D.13 (8/3) D.13 (10/3)
+ 
+ .. index:: AI12-0059 (Ada 2022 feature)
+ 
+ * *AI12-0059 Object_Size attribute (2019-12-02)*
+ 
+   AI12-0059 brings GNAT-defined attribute Object_Size to Ada standard
+   and clarifies its semantics. Given that the attribute already existed in
+   GNAT compiler, the feature is supported for all language versions.
+ 
+   RM references: 4.09.01 (2/3) 13.01 (14) 13.01 (23) 13.03 (9/3) 13.03
+   (50/2) 13.03 (51) 13.03 (52) 13.03 (58)
+ 
+ .. index:: AI12-0061 (Ada 2022 feature)
+ 
+ * *AI12-0061 Iterated component associations in array aggregates (2016-09-01)*
+ 
+   Ada issue AI12-061 introduces a new construct in array aggregates allowing
+   component associations to be parameterized by a loop variable, for example:
+ 
+   .. code::
+ 
+     Array (1 .. 10) of Integer :=
+       (for I in 1 .. 10 => I ** 2);
+     type Matrix is
+     array
+       (Positive range <>, Positive range <>) of Float;
+     G : constant Matrix
+     :=
+       (for I in 1 .. 4 =>
+           (for J in 1 .. 4 =>
+               (if I=J then
+     1.0 else 0.0))); -- Identity matrix
+ 
+   The expression in such an association can also be a function that returns a
+   limited type, and the range can be specified by the 'others' choice.
+ 
+   RM references: 4.03.03 (5/2) 4.03.03 (6) 4.03.03 (17/3) 4.03.03 (20)
+   4.03.03 (23.1/4) 4.03.03 (32/3) 4.03.03 (43) 3.01 (6/3) 3.03 (6)
+   3.03 (18.1/3) 3.03.01 (23/3) 5.05 (6) 8.01 (2.1/4)
+ 
+ .. index:: AI12-0062 (Ada 2022 feature)
+ 
+ * *AI12-0062 Raise exception with failing string function (0000-00-00)*
+ 
+   Clarify that if raising exception E1 is accompanied with a String-valued
+   expression whose evaluation raises exception E2, then E2 is what gets propagated.
+ 
+   RM references: 11.03 (4/2)
+ 
+ .. index:: AI12-0065 (Ada 2022 feature)
+ 
+ * *AI12-0065 Descendants of incomplete views (0000-00-00)*
+ 
+   This AI is a clarification of potentially confusing wording.  GNAT correctly handles the example given in AARM 7.3.1(5.b-5.d), which illustrates the topic of this AI.
+ 
+   RM references: 7.03.01 (5.2/3)
+ 
+ .. index:: AI12-0067 (Ada 2022 feature)
+ 
+ * *AI12-0067 Accessibility level of explicitly aliased parameters of procedures and entries (0000-00-00)*
+ 
+   The AI fixes a case where the intent was fairly obvious but the RM wording failed to mention a case (with the result that the accessibility level of an explicitly aliased parameter of a procedure or entry was undefined even though the intent was clear).
+ 
+   RM references: 3.10.02 (7/3)
+ 
+ .. index:: AI12-0068 (Ada 2022 feature)
+ 
+ * *AI12-0068 Predicates and the current instance of a subtype (2020-05-06)*
+ 
+   AI12-0068 is a binding interpretation that defines the current instance name in a type or subtype aspect to be a value rather than an object. This affects
+   attributes whose prefix is a current instance in predicates, type invariants, and ``Default_Initial_Condition`` aspects. In particular, in the case of the ``Constrained`` attribute the value will always be True, and formerly legal attributes that require an object as their prefix (such as ``Size``, ``Access``, ``Address``, etc.) are illegal when applied to a current instance in type and subtype aspects.
+ 
+   RM references: 8.06 (17/3)
+ 
+ .. index:: AI12-0069 (Ada 2022 feature)
+ 
+ * *AI12-0069 Inconsistency in Tree container definition (0000-00-00)*
+ 
+   The description of how iteration over a Tree container's elements was contradictory in some cases regarding whether a cursor designating the Root node is included in the iteration. This contradiction was resolved. In the "!ACATS Test" section of the AI, it says that if an implementation were to get this wrong then almost any attempt to iterate over any tree would fail at runtime.
+ 
+   RM references: A.18.10 (153/3) A.18.10 (155/3) A.18.10 (157/3) A.18.10 (159/3)
+ 
+ .. index:: AI12-0070 (Ada 2022 feature)
+ 
+ * *AI12-0070 9.3(2) does not work for anonymous access types (0000-00-00)*
+ 
+   The RM contained some old wording about the master of an allocated object that only made sense for named access types. The AI clarifies the wording to clearly state the scope of validity and ensures that the paragraph does not contradict 3.10.2's rules for anonymous access  types.
+ 
+   RM references: 3.10.02 (13.1/3) 9.03 (2)
+ 
+ .. index:: AI12-0071 (Ada 2022 feature)
+ 
+ * *AI12-0071 Order of evaluation when multiple predicates apply (2015-08-10)*
+ 
+   AI12-0071 specifies the semantics of multiple/inherited predicates on a
+   single subtype.
+ 
+   RM references: 3.02.04 (4/3) 3.02.04 (6/3) 3.02.04 (30/3) 3.02.04 (31/3)
+   3.02.04 (32/3) 3.02.04 (33/3) 3.02.04 (35/3) 3.05.05 (7.1/3)
+   3.05.05 (7.2/3) 3.05.05 (7.3/3) 3.08.01 (10.1/3) 3.08.01 (15/3)
+   4.05.02 (29/3) 4.05.02 (30/3) 4.06 (51/3) 4.09.01 (10/3) 5.04
+   (7/3) 5.05 (9/3) 13.09.02 (3/3) 13.09.02 (12)
+ 
+ .. index:: AI12-0072 (Ada 2022 feature)
+ 
+ * *AI12-0072 Missing rules for Discard_Names aspect (0000-00-00)*
+ 
+   Clarify that Discard_Names is an aspect, not just a pragma.
+ 
+   RM references: C.05 (1) C.05 (5) C.05 (7/2) C.05 (8)
+ 
+ .. index:: AI12-0073 (Ada 2022 feature)
+ 
+ * *AI12-0073 Synchronous Barriers are not allowed with Ravenscar (2020-02-24)*
+ 
+   Ada 2022 adds (as a binding interpretation) a ``No_Dependence =>
+   Ada.Synchronous_Barriers`` restriction to the Ravenscar profile.
+ 
+   RM references: D.13 (6/3)
+ 
+ .. index:: AI12-0074 (Ada 2022 feature)
+ 
+ * *AI12-0074 View conversions and out parameters passed by copy (2020-03-26)*
+ 
+   This Ada 2022 AI makes illegal some cases of out parameters whose type has a
+   ``Default_Value`` aspect.
+ 
+   RM references: 4.06 (56) 6.04.01 (6.25/3) 6.04.01 (13.1/3)
+ 
+ .. index:: AI12-0075 (Ada 2022 feature)
+ 
+ * *AI12-0075 Static expression functions (2020-04-13)*
+ 
+   Ada 2022 defines a new aspect ``Static`` that can be specified on expression
+   functions. Such an expression function can be called in contexts requiring static expressions when the actual parameters are all static, allowing for greater abstraction in complex static expressions.
+ 
+   RM references: 4.09 (21) 6.08 (3/4) 6.08 (5/4) 6.08 (6/4) 7.03.02 (8.2/5)
+   7.03.02 (15/4) 7.03.02 (16/4) 7.03.02 (17/4) 7.03.02 (19/4)
+   7.03.02 (20/5)
+ 
+ .. index:: AI12-0076 (Ada 2022 feature)
+ 
+ * *AI12-0076 Variable state in pure packages (0000-00-00)*
+ 
+   Defines an obscure constant-modifying construct to be erroneous. The issue is that the current instance of a type is a variable object, so the following is legal:
+ 
+   .. code::
+ 
+      type T;
+      type T_Ref (Access_To_Variable : access T) is null record;
+      type T is limited record
+         Self : T_Ref (T'Access);
+         Int : Integer;
+      end record;
+ 
+      Obj : constant T := (Self => <>, Int => 123);
+    begin
+      Obj.Self.Access_To_Variable.Int := 456; -- modifying a component of a constant
+ 
+   In cases where constancy is really needed (e.g., for an object declared in a Pure context), such a case needs to be erroneous.
+ 
+   RM references: 10.02.01 (17/3) E.02.02 (17/2)
+ 
+ .. index:: AI12-0077 (Ada 2022 feature)
+ 
+ * *AI12-0077 Has_Same_Storage on objects of size zero (2020-03-30)*
+ 
+   This binding interpretation requires the Has_Same_Storage attribute
+   to return always `false` for objects that have a size of zero.
+ 
+   RM references: 13.03 (73.4/3)
+ 
+ .. index:: AI12-0078 (Ada 2022 feature)
+ 
+ * *AI12-0078 Definition of node for tree container is confusing (0000-00-00)*
+ 
+   Clarifies the expected behavior in processing tree containers.
+ 
+   RM references: A.18.10 (2/3) A.18.10 (3/3)
+ 
+ .. index:: AI12-0081 (Ada 2022 feature)
+ 
+ * *AI12-0081 Real-time aspects need to specify when they are evaluated (0000-00-00)*
+ 
+   Clarify the point at which Priority and Interrupt_Priority aspect expressions are evaluated.
+ 
+   RM references: D.01 (17/3) D.16 (9/3)
+ 
+ .. index:: AI12-0084 (Ada 2022 feature)
+ 
+ * *AI12-0084 Box expressions in array aggregates (2014-12-15)*
+ 
+   This AI addresses an issue where compiler used to fail to initialize
+   components of a multidimensional aggregates with box initialization when
+   scalar components have a specified default value. The AI clarifies that
+   in an array aggregate with box (i.e., ``<>``) component values, the
+   ``Default_Component_Value`` of the array type (if any) should not be ignored.
+ 
+   RM references: 4.03.03 (23.1/2)
+ 
+ .. index:: AI12-0085 (Ada 2022 feature)
+ 
+ * *AI12-0085 Missing aspect cases for Remote_Types (0000-00-00)*
+ 
+   A distributed systems annex (Annex E) clarification. Aspect specifications
+   that are forbidden using attribute definition clause syntax are also forbidden
+   using aspect_specification syntax.
+ 
+   RM references: E.02.02 (17/2)
+ 
+ .. index:: AI12-0086 (Ada 2022 feature)
+ 
+ * *AI12-0086 Aggregates and variant parts (2019-08-14)*
+ 
+   In Ada 2012, a discriminant value that governs an active variant part in an
+   aggregate had to be static. AI12-0086 relaxes this restriction: If the subtype of the discriminant value is a static subtype all of whose values select the same variant, then the expression for the discriminant is allowed to be nonstatic.
+ 
+   RM references: 4.03.01 (17/3) 4.03.01 (19/3)
+ 
+ .. index:: AI12-0088 (Ada 2022 feature)
+ 
+ * *AI12-0088 UTF_Encoding.Conversions and overlong characters on input (0000-00-00)*
+ 
+   Clarify that overlong characters are acceptable on input even if we never generate them as output.
+ 
+   RM references: A.04.11 (54/3) A.04.11 (55/3)
+ 
+ .. index:: AI12-0089 (Ada 2022 feature)
+ 
+ * *AI12-0089 Accessibility rules need to take into account that a generic function is not a (0000-00-00)*
+ 
+   Fix cases in RM wording where the accessibility rules for a function failed to take into account the fact that a generic function is not a function. For example, a generic function with an explicitly aliased parameter should be able to return references to that parameter in the same ways that a (non-generic) function can. The previous wording did not allow that.
+ 
+   RM references: 3.10.02 (7/3) 3.10.02 (19.2/3) 3.10.02 (19.3/3) 6.05 (4/3)
+ 
+ .. index:: AI12-0093 (Ada 2022 feature)
+ 
+ * *AI12-0093 Iterator with indefinite cursor (0000-00-00)*
+ 
+   A clarification that confirms what GNAT is already doing.
+ 
+   RM references: 5.05.02 (8/3) 5.05.02 (10/3)
+ 
+ .. index:: AI12-0094 (Ada 2022 feature)
+ 
+ * *AI12-0094 An access_definition should be a declarative region (0000-00-00)*
+ 
+   Fixes wording omission in the RM, confirming that the behaviour of GNAT is
+   correct.
+ 
+   RM references: 8.03 (2) 8.03 (26/3)
+ 
+ .. index:: AI12-0095 (Ada 2022 feature)
+ 
+ * *AI12-0095 Generic formal types and constrained partial views (0000-00-00)*
+ 
+   Deciding whether an actual parameter corresponding to an explicitly aliased formal parameter is legal depends on (among other things) whether the parameter type has a constrained partial view. The AI clarifies how this compile-time checking works in the case of a generic formal type (assume the best in the spec and recheck each instance, assume the worst in a generic body).
+ 
+   RM references: 3.10.02 (27.2/3) 4.06 (24.16/2) 6.04.01 (6.2/3) 12.05.01 (15)
+ 
+ .. index:: AI12-0096 (Ada 2022 feature)
+ 
+ * *AI12-0096 The exception raised when a subtype conversion fails a predicate check (0000-00-00)*
+ 
+   Clarify that the Predicate_Failure aspect works the same in a subtype conversion as in any other context.
+ 
+   RM references: 4.06 (57/3)
+ 
+ .. index:: AI12-0097 (Ada 2022 feature)
+ 
+ * *AI12-0097 Tag of the return object of a simple return expression (0000-00-00)*
+ 
+   Clarify wording about the tag of a function result in the case of a simple (i.e. not extended) return statement in a function with a class-wide result type.
+ 
+   RM references: 6.05 (8/3)
+ 
+ .. index:: AI12-0098 (Ada 2022 feature)
+ 
+ * *AI12-0098 Problematic examples for ATC (0000-00-00)*
+ 
+   The AI clarifies reference manual examples, there is no compiler impact.
+ 
+   RM references: 9.07.04 (13)
+ 
+ .. index:: AI12-0099 (Ada 2022 feature)
+ 
+ * *AI12-0099 Wording problems with predicates (2020-05-04)*
+ 
+   When extending a task or protected type from an ancestor interface subtype with  a predicate, a link error can occur due to the compiler failing to generate the predicate-checking function. This AI clarifies the requirement for such predicate inheritance for concurrent types.
+ 
+   RM references: 3.02.04 (4/4) 3.02.04 (12/3) 3.02.04 (20/3)
+ 
+ .. index:: AI12-0100 (Ada 2022 feature)
+ 
+ * *AI12-0100 A qualified expression makes a predicate check (2020-02-17)*
+ 
+   The compiler now enforces predicate checks on qualified expressions when the
+   qualifying subtype imposes a predicate.
+ 
+   RM references: 4.07 (4)
+ 
+ .. index:: AI12-0101 (Ada 2022 feature)
+ 
+ * *AI12-0101 Incompatibility of hidden untagged record equality (2019-10-31)*
+ 
+   AI12-0101 is a binding interpretation that removes a legality rule that
+   prohibited the declaration of a primitive equality function for a private type in the private part of its enclosing package (either before or after the completion of the type) when the type is completed as an untagged record type. Such declarations are now accepted in Ada 2012 and later Ada versions.
+ 
+   As a consequence of this work, some cases where the implementation of AI05-0123 was incomplete were corrected.
+   More specifically, if a user-defined equality operator is present for an untagged record type in an Ada 2012 program, that user-defined equality operator will be (correctly) executed in some difficult-to-characterize cases where the predefined component-by-component comparison was previously being (incorrectly) executed. This can arise, for example, in the case of the predefined equality operation for an enclosing composite type that has a component of the user-defined primitive equality op's operand type.
+   This correction means that the impact of this change is not limited solely to code that was previously rejected at compile time.
+ 
+   RM references: 4.05.02 (9.8/3)
+ 
+ .. index:: AI12-0102 (Ada 2022 feature)
+ 
+ * *AI12-0102 Stream_IO.File_Type has Preelaborable_Initialization (0000-00-00)*
+ 
+   Modifies the declaration of one type in a predefined package. GNAT's version of ``Ada.Streams.Stream_IO`` already had this modification (the ``Preelaborable__Initialization`` pragma).
+ 
+   RM references: A.12.01 (5)
+ 
+ .. index:: AI12-0103 (Ada 2022 feature)
+ 
+ * *AI12-0103 Expression functions that are completions in package specifications (0000-00-00)*
+ 
+   Clarifies that expression functions that are completions do not cause "general"  freeze-everybody-in-sight freezing like a subprogram body.
+ 
+   RM references: 13.14 (3/3) 13.14 (5/3)
+ 
+ .. index:: AI12-0104 (Ada 2022 feature)
+ 
+ * *AI12-0104 Overriding an aspect is undefined (0000-00-00)*
+ 
+   A clarification of the wording in RM, no compiler impact.
+ 
+   RM references: 4.01.06 (4/3) 4.01.06 (17/3)
+ 
+ .. index:: AI12-0105 (Ada 2022 feature)
+ 
+ * *AI12-0105 Pre and Post are not allowed on any subprogram completion (0000-00-00)*
+ 
+   Language-defined aspects (e.g., ``Post``) cannot be specified as part of the completion of  a subprogram declaration. Fix a hole in the RM wording to clarify that this general rule applies even in the special cases where the completion is either an expression function or a null procedure.
+ 
+   RM references: 13.01.01 (18/3)
+ 
+ .. index:: AI12-0106 (Ada 2022 feature)
+ 
+ * *AI12-0106 Write'Class aspect (0000-00-00)*
+ 
+   Clarify that the syntax used in an ACATS test BDD2005 for specifying a class-wide streaming aspect is correct.
+ 
+   RM references: 13.01.01 (28/3) 13.13.02 (38/3)
+ 
+ .. index:: AI12-0107 (Ada 2022 feature)
+ 
+ * *AI12-0107 A prefixed view of a By_Protected_Procedure interface has convention protected (2020-06-05)*
+ 
+   A prefixed view of a subprogram with aspect Synchronization set to
+   By_Protected_Procedure has convention protected.
+ 
+   RM references: 6.03.01 (10.1/2) 6.03.01 (12) 6.03.01 (13)
+ 
+ .. index:: AI12-0109 (Ada 2022 feature)
+ 
+ * *AI12-0109 Representation of untagged derived types (2019-11-12)*
+ 
+   Ada disallows a nonconforming specification of a type-related representation
+   aspect of an untagged by-reference type. The motivation for this rule is to ensure that a parent type and a later type derived from the parent agree with respect to such aspects. AI12-0109 disallows a construct that otherwise could be used to get around this rule: an aspect specification for the parent type that occurs after the declaration of the derived type.
+ 
+   RM references: 13.01 (10/3)
+ 
+ .. index:: AI12-0110 (Ada 2022 feature)
+ 
+ * *AI12-0110 Tampering checks are performed first (2020-04-14)*
+ 
+   AI12-0110 requires tampering checks in the containers library to be
+   performed first, before any other checks.
+ 
+   RM references: A.18.02 (97.1/3) A.18.03 (69.1/3) A.18.04 (15.1/3) A.18.07
+   (14.1/3) A.18.10 (90/3) A.18.18 (35/3)
+ 
+ .. index:: AI12-0112 (Ada 2022 feature)
+ 
+ * *AI12-0112 Contracts for container operations (0000-00-00)*
+ 
+   A representation change replacing english descriptions of contracts for
+   operations on predefined container types with pre/post-conditions. No compiler
+   impact.
+ 
+   RM references: A.18.02 (99/3) 11.04.02 (23.1/3) 11.05 (23) 11.05 (26) A
+   (4) A.18 (10)
+ 
+ .. index:: AI12-0114 (Ada 2022 feature)
+ 
+ * *AI12-0114 Overlapping objects designated by access parameters are not thread-safe (0000-00-00)*
+ 
+   There are rules saying that concurrent calls to predefined subprograms don't interfere with each other unless actual parameters overlap. The AI clarifies that such an interference is also possible if overlapping objects are reachable via access dereferencing from actual parameters of the two calls.
+ 
+   RM references: A (3/2)
+ 
+ .. index:: AI12-0116 (Ada 2022 feature)
+ 
+ * *AI12-0116 Private types and predicates (0000-00-00)*
+ 
+   Clarify that the same aspect cannot be specified twice for the same type. ``Dynamic_Predicate``, for example, can be specified on either the partial view of a type or on the completion in the private part, but not on both.
+ 
+   RM references: 13.01 (9/3) 13.01 (9.1/3)
+ 
+ .. index:: AI12-0117 (Ada 2022 feature)
+ 
+ * *AI12-0117 Restriction No_Tasks_Unassigned_To_CPU (2020-06-12)*
+ 
+   This AI adds a restriction No_Tasks_Unassigned_To_CPU to provide safe
+   use of Ravenscar.
+ 
+   The CPU aspect is specified for the environment task. No CPU aspect is
+   specified to be statically equal to ``Not_A_Specific_CPU``. If aspect CPU
+   is specified (dynamically) to the value ``Not_A_Specific_CPU``, then
+   Program_Error is raised. If Set_CPU or ``Delay_Until_And_Set_CPU`` are called
+   with the CPU parameter equal to ``Not_A_Specific_CPU``, then ``Program_Error`` is raised.
+ 
+   RM references: D.07 (10.8/3)
+ 
+ .. index:: AI12-0120 (Ada 2022 feature)
+ 
+ * *AI12-0120 Legality and exceptions of generalized loop iteration (0000-00-00)*
+ 
+   Clarify that the expansion-based definition of generalized loop iteration
+   includes legality checking. If the expansion would be illegal (for example,
+   because of passing a constant actual parameter in a call when the mode of
+   the corresponding formal parameter is in-out), then the loop is illegal too.
+ 
+   RM references: 5.05.02 (6.1/4) 5.05.02 (10/3) 5.05.02 (13/3)
+ 
+ .. index:: AI12-0121 (Ada 2022 feature)
+ 
+ * *AI12-0121 Stream-oriented aspects (0000-00-00)*
+ 
+   Clarify that streaming-oriented aspects (e.g., Read) can be specified using
+   aspect_specification syntax, not just via an attribute definition clause.
+ 
+   RM references: 13.13.02 (38/3)
+ 
+ .. index:: AI12-0124 (Ada 2022 feature)
+ 
+ * *AI12-0124 Add Object'Image (2017-03-24)*
+ 
+   The corrigendum of Ada 2012 extends attribute ``'Image following`` the syntax for the GNAT ``'Img`` attribute. This AI fixes a gap in the earlier implementation, which did not recognize function calls and attributes that are functions as valid object prefixes.
+ 
+   RM references: 3.05 (55/3)
+ 
+ .. index:: AI12-0125-3 (Ada 2022 feature)
+ 
+ * *AI12-0125-3 Add @ as an abbreviation for the LHS of an assignment (2016-11-11)*
+ 
+   This AI introduces the use of the character '@' as an abbreviation for the left-hand side of an assignment statement, usable anywhere within the expression on the right-hand side. To use this feature the compilation flag -gnat2022 must be specified.
+ 
+   RM references: 5.02.01 (0) 2.02 (9) 3.03 (21.1/3) 4.01 (2/3) 8.06 (9/4)
+ 
+ .. index:: AI12-0127 (Ada 2022 feature)
+ 
+ * *AI12-0127 Partial aggregate notation (2016-10-12)*
+ 
+   This AI describes a new constructor for aggregates, in terms of an existing record or array object, and a series of component-wise modifications of its value, given by named associations for the modified components. To use this feature the compilation flag ``-gnat2022`` must be specified.
+ 
+   RM references: 4.03 (2) 4.03 (3/2) 4.03 (4) 4.03.01 (9) 4.03.01 (15/3)
+   4.03.01 (16/4) 4.03.01 (17/5) 4.03.01 (17.1/2) 4.03.03 (4) 4.03.03
+   (14) 4.03.03 (17/5) 4.03.04 (0) 7.05 (2.6/2)
+ 
+ .. index:: AI12-0128 (Ada 2022 feature)
+ 
+ * *AI12-0128 Exact size access to parts of composite atomic objects (2019-11-24)*
+ 
+   According to this AI, the compiler generates full access to atomic composite objects even if the access is only partial in the source code. To use this feature the compilation flag ``-gnat2022`` must be specified.
+ 
+   RM references: C.06 (13.2/3) C.06 (19) C.06 (20) C.06 (22/2) C.06 (25/4)
+ 
+ .. index:: AI12-0129 (Ada 2022 feature)
+ 
+ * *AI12-0129 Make protected objects more protecting (2020-07-01)*
+ 
+   A new aspect Exclusive_Functions has been added to the language to force the
+   use of read/write locks on protected functions when needed.
+ 
+   RM references: 9.05.01 (2) 9.05.01 (4) 9.05.01 (5) 9.05.01 (7) 9.05.03
+   (15) 9.05.03 (23)
+ 
+ .. index:: AI12-0130 (Ada 2022 feature)
+ 
+ * *AI12-0130 All I/O packages should have Flush (2016-07-03)*
+ 
+   The Flush routine has been added for the ``Sequential_IO`` and ``Direct_IO`` standard packages in the Ada 2012 COR.1:2016. The Flush routine here is equivalent to the one found in ``Text_IO``. The ``Flush`` procedure synchronizes the external file with the internal file (by flushing any internal buffers) without closing the file.
+ 
+   RM references: A.08.01 (10) A.08.02 (28/3) A.08.04 (10) A.10.03 (21)
+   A.12.01 (28/2) A.12.01 (28.6/1)
+ 
+ .. index:: AI12-0131 (Ada 2022 feature)
+ 
+ * *AI12-0131 Inherited Pre'Class when unspecified on initial subprogram (0000-00-00)*
+ 
+   If T1 is a tagged type with a primitive P that has no class-wide precondition,
+   and if T2 is an extension of T1 which overrides the inherited primitive P, then that overriding P is not allowed to have a class-wide precondition. Allowing it would be ineffective except in corner cases where it would be confusing.
+ 
+   RM references: 6.01.01 (17/3) 6.01.01 (18/3)
+ 
+ .. index:: AI12-0132 (Ada 2022 feature)
+ 
+ * *AI12-0132 Freezing of renames-as-body (2020-06-13)*
+ 
+   This AI clarifies that a renames-as-body freezes the expression of any
+   expression function that it renames.
+ 
+   RM references: 13.14 (5/3)
+ 
+ .. index:: AI12-0133 (Ada 2022 feature)
+ 
+ * *AI12-0133 Type invariants and default initialized objects (0000-00-00)*
+ 
+   Clarify that invariant checking for a default-initialized object is performed regardless of where the object is declared (in particular, even when the full view of the type is visible).
+ 
+   RM references: 7.03.02 (10.3/3)
+ 
+ .. index:: AI12-0135 (Ada 2022 feature)
+ 
+ * *AI12-0135 Enumeration types should be eligible for convention C (0000-00-00)*
+ 
+   Ada previously allowed but did not require supporting specifying convention C for an enumeration type. Now it is required that an implementation shall support it.
+ 
+   RM references: B.01 (14/3) B.01 (41/3) B.03 (65)
+ 
+ .. index:: AI12-0136 (Ada 2022 feature)
+ 
+ * *AI12-0136 Language-defined packages and aspect Default_Storage_Pool (0000-00-00)*
+ 
+   Clarify that the effect of specifying Default_Storage_Pool for an instance of a predefined generic is implementation-defined. No compiler impact.
+ 
+   RM references: 13.11.03 (5/3)
+ 
+ .. index:: AI12-0137 (Ada 2022 feature)
+ 
+ * *AI12-0137 Incomplete views and access to class-wide types (0000-00-00)*
+ 
+   If the designated type of an access type is incomplete when the access type is declared, then we have rules about whether we get a complete view when a value of the access type is dereferenced. Clarify that analogous rules apply if the designated type is class-wide.
+ 
+   RM references: 3.10.01 (2.1/2)
+ 
+ .. index:: AI12-0138 (Ada 2022 feature)
+ 
+ * *AI12-0138 Iterators of formal derived types (2021-02-11)*
+ 
+   AI12-0138 specifies the legality rules for confirming specifications of
+   nonoverridable aspects. This completes the legality checks for aspect ``Implicit_Dereference`` and simplifies the checks for those aspects that are inherited operations.
+ 
+   RM references: 13.01.01 (18/4) 13.01.01 (34/3) 4.01.05 (6/3) 4.01.06 (5/3)
+   4.01.06 (6/3) 4.01.06 (7/3) 4.01.06 (8/3) 4.01.06 (9/3) 5.05.01 (11/3)
+ 
+ .. index:: AI12-0140 (Ada 2022 feature)
+ 
+ * *AI12-0140 Access to unconstrained partial view when full view is constrained (0000-00-00)*
+ 
+   Clarify some confusion about about whether what matters when checking whether designated subtypes statically match is the view of the designated type that is currently available v.s. the view that was available when the access type was declared.
+ 
+   RM references: 3.02 (7/2) 7.03.01 (5/1)
+ 
+ .. index:: AI12-0143 (Ada 2022 feature)
+ 
+ * *AI12-0143 Using an entry index of a family in a precondition (2022-04-05)*
+ 
+   Ada 2022 adds the ``Index`` attribute, which allows the use of the entry family index of an entry call within preconditions and post-conditions.
+ 
+   RM references: 6.01.01 (30/3) 9.05.04 (5/3)
+ 
+ .. index:: AI12-0144 (Ada 2022 feature)
+ 
+ * *AI12-0144 Make Discrete_Random more flexible (2020-01-31)*
+ 
+   A new function Random with First/Last parameters is provided in the
+   ``Ada.Numerics.Discrete_Random`` package.
+ 
+   RM references: A.05.02 (20) A.05.02 (32) A.05.02 (41) A.05.02 (42)
+ 
+ .. index:: AI12-0145 (Ada 2022 feature)
+ 
+ * *AI12-0145 Pool_of_Subpool returns null when called too early (0000-00-00)*
+ 
+   Clarify that if you ask for the pool of a subpool (by calling ``Pool_Of_Subpool``) before ``Set_Pool_of_Subpool`` is called, then the result is null.
+ 
+   RM references: 13.11.04 (20/3)
+ 
+ .. index:: AI12-0147 (Ada 2022 feature)
+ 
+ * *AI12-0147 Expression functions and null procedures can be declared in a protected_body (2015-03-05)*
+ 
+   AI12-0147 specifies that null procedures and expression functions are now
+   allowed in protected bodies.
+ 
+   RM references: 9.04 (8/1)
+ 
+ .. index:: AI12-0149 (Ada 2022 feature)
+ 
+ * *AI12-0149 Type invariants are checked for functions returning access-to-type (0000-00-00)*
+ 
+   Extend the rule saying that ``Type_Invariant`` checks are performed for access-to-T parameters (where T has a specified ``Type_Invariant``) so that the rule also applies to function results.
+ 
+   RM references: 7.03.02 (19.3/4)
+ 
+ .. index:: AI12-0150 (Ada 2022 feature)
+ 
+ * *AI12-0150 Class-wide type invariants and statically bound calls (0000-00-00)*
+ 
+   The same approach used in AI12-0113 to ensure that contract-related calls associated with a call to a subprogram "match" with respect to dispatching also applies to ``Type_Invariant`` checking.
+ 
+   RM references: 7.03.02 (3/3) 7.03.02 (5/3) 7.03.02 (9/3) 7.03.02 (22/3)
+ 
+ .. index:: AI12-0154 (Ada 2022 feature)
+ 
+ * *AI12-0154 Aspects of library units (0000-00-00)*
+ 
+   Clarify that an aspect_specification for a library unit is equivalent to a corresponding aspect-specifying pragma.
+ 
+   RM references: 13.01.01 (32/3)
+ 
+ .. index:: AI12-0156 (Ada 2022 feature)
+ 
+ * *AI12-0156 Use subtype_indication in generalized iterators (0000-00-00)*
+ 
+   For iterating over an array, we already allow (but do not require) explicitly providing a subtype indication in an iterator_specification. Tee AI generalizes this to handle the case where the element type of the array is of an anonymous access type. This also allows (but does not require) explicitly naming the cursor subtype in a generalized iterator.
+   The main motivation for allowing these new cases is improving readability by making it easy to infer the (sub)type of the iteration object just by looking at the loop.
+ 
+   RM references: 5.05.02 (2/3) 5.05.02 (5/4) 5.05.02 (7/3) 3.10.02 (11.1/2)
+ 
+ .. index:: AI12-0157 (Ada 2022 feature)
+ 
+ * *AI12-0157 Missing rules for expression functions (0000-00-00)*
+ 
+   Clarify that an expression function behaves like a single-return-statement
+   function in more cases: it can return an aggregate without extra parens, the expression has an applicable index constraint, and the same accessibility rules apply in both cases.
+ 
+   For instance, the code below is legal:
+ 
+   .. code::
+ 
+     subtype S is String (1 .. 10);
+     function f return S is (others => '?');
+ 
+   RM references: 3.10.02 (19.2/4) 3.10.02 (19.3/4) 4.03.03 (11/2) 6.08 (2/3)
+   6.08 (3/3) 6.08 (5/3) 6.08 (6/3) 6.08 (7/3) 7.05 (2.9/3) 13.14
+   (5.1/4) 13.14 (5.2/4) 13.14 (8/3) 13.14 (10.1/3) 13.14 (10.2/3)
+   13.14 (10.3/3)
+ 
+ .. index:: AI12-0160 (Ada 2022 feature)
+ 
+ * *AI12-0160 Adding an indexing aspect to an indexable container type (0000-00-00)*
+ 
+   If the parent type of a derived type has exactly one of the two indexing aspects (that is, constant_indexing and variable_indexing) specified, then the derived type cannot have a specification for the other one.
+ 
+   RM references: 4.01.06 (6/4) 4.01.06 (9/4) 3.06 (22.2/3)
+ 
+ .. index:: AI12-0162 (Ada 2022 feature)
+ 
+ * *AI12-0162 Memberships and Unchecked_Unions (0000-00-00)*
+ 
+   Clarify that membership tests for unchecked_union types work consistently when
+   testing membership in more than one subtype (X in AA | BB | CC)  as when
+   testing for one.
+ 
+   RM references: B.03.03 (25/2)
+ 
+ .. index:: AI12-0164 (Ada 2022 feature)
+ 
+ * *AI12-0164 Max_Entry_Queue_Length aspect for entries (2019-06-11)*
+ 
+   AI12-0164 defines pragma and aspect ``Max_Entry_Queue_Length`` in addition
+   to the GNAT-specific equivalents ``Max_Queue_Length`` and ``Max_Entry_Queue_Depth``.
+ 
+   RM references: D.04 (16)
+ 
+ .. index:: AI12-0165 (Ada 2022 feature)
+ 
+ * *AI12-0165 Operations of class-wide types and formal abstract subprograms (2021-10-19)*
+ 
+   Ada 2022 specifies that when the controlling type of a formal abstract
+   subprogram declaration is a formal type, and the actual type is a class-wide type T'Class, the actual subprogram can be an implicitly declared subprogram corresponding to a primitive operation of type T.
+ 
+   RM references: 12.06 (8.5/2)
+ 
+ .. index:: AI12-0166 (Ada 2022 feature)
+ 
+ * *AI12-0166 External calls to protected functions that appear to be internal calls (2016-11-15)*
+ 
+   According to this AI, the compiler rejects a call to a protected operation when the call appears within a precondition for another protected operation.
+ 
+   RM references: 6.01.01 (34/3) 9.05 (3/3) 9.05 (7.1/3)
+ 
+ .. index:: AI12-0167 (Ada 2022 feature)
+ 
+ * *AI12-0167 Type_Invariants and tagged-type View Conversions (0000-00-00)*
+ 
+   This AI clarifies that no invariant check is performed in a case where an invariant-violating value is assigned to a component. This confirms the current compiler behavior.
+ 
+   RM references: 7.03.02 (9/4)
+ 
+ .. index:: AI12-0168 (Ada 2022 feature)
+ 
+ * *AI12-0168 Freezing of generic instantiations of generics with bodies (0000-00-00)*
+ 
+   Adjust freezing rules to be compatible with AI12-0103-1. The change confirms the current compiler behavior.
+ 
+   RM references: 13.14 (3/4)
+ 
+ .. index:: AI12-0169 (Ada 2022 feature)
+ 
+ * *AI12-0169 Aspect specifications for entry bodies (0000-00-00)*
+ 
+   Change syntax to allow aspect specifications for implementation-defined aspects on entry bodies. The change doesn't influence any of the language-defined aspects and is solely required for SPARK.
+ 
+   RM references: 9.05.02 (5)
+ 
+ .. index:: AI12-0170 (Ada 2022 feature)
+ 
+ * *AI12-0170 Abstract subprogram calls in class-wide precondition expressions (2020-07-06)*
+ 
+   This AI specifies rules for calls to abstract functions within class-wide preconditions and postconditions.
+ 
+   RM references: 3.09.03 (7) 6.01.01 (7/4) 6.01.01 (18/4) 6.01.01 (18.2/4)
+ 
+ .. index:: AI12-0172 (Ada 2022 feature)
+ 
+ * *AI12-0172 Raise expressions in limited contexts (2019-07-29)*
+ 
+   The compiler has been enhanced to support the use of raise expressions in
+   limited contexts.
+ 
+   RM references: 7.05 (2.1/3)
+ 
+ .. index:: AI12-0173 (Ada 2022 feature)
+ 
+ * *AI12-0173 Expression of an extended return statement (0000-00-00)*
+ 
+   Fix the wording related to expression of an extended return statement that was made ambiguous by changes of syntax in other AI's. No compiler changes involved.
+ 
+   RM references: 6.05 (3/2) 6.05 (5/3)
+ 
+ .. index:: AI12-0174 (Ada 2022 feature)
+ 
+ * *AI12-0174 Aggregates of Unchecked_Unions using named notation (0000-00-00)*
+ 
+   In many cases, it is illegal to name a discriminant of an unchecked_union type.  Relax this rule to allow the use of named notation in an aggregate of an unchecked_union type.
+ 
+   RM references: B.03.03 (9/3)
+ 
+ .. index:: AI12-0175 (Ada 2022 feature)
+ 
+ * *AI12-0175 Preelaborable packages with address clauses (2020-03-20)*
+ 
+   The compiler nows accepts calls to certain functions that are essentially unchecked conversions in preelaborated library units. To use this feature the compilation flag ``-gnat2022`` must be specified.
+ 
+   RM references: 10.02.01 (7)
+ 
+ .. index:: AI12-0179 (Ada 2022 feature)
+ 
+ * *AI12-0179 Failure of postconditions of language-defined units (0000-00-00)*
+ 
+   A clarification that expressing postconditions for predefined units via RM wording or via ``Post`` aspect specifications are equivalent. In particular, the expression in such a ``Post`` aspect specification should not yield False. No implementation changes needed.
+ 
+   RM references: 1.01.03 (17/3) 11.04.02 (23.1/3)
+ 
+ .. index:: AI12-0180 (Ada 2022 feature)
+ 
+ * *AI12-0180 Using protected subprograms and entries within an invariant (2020-06-22)*
+ 
+   AI12-0180 makes entries and protected subprograms directly visible within Invariant aspects of a task or protected type.
+ 
+   RM references: 13.01.01 (12/3)
+ 
+ .. index:: AI12-0181 (Ada 2022 feature)
+ 
+ * *AI12-0181 Self-referencing representation aspects (0000-00-00)*
+ 
+   Clarify that a name or expression which freezes an entity cannot occur in an aspect specification for that entity.
+ 
+   RM references: 13.01 (9/4) 13.01 (9.1/4) 13.14 (19)
+ 
+ .. index:: AI12-0182 (Ada 2022 feature)
+ 
+ * *AI12-0182 Pre'Class and protected operations (0000-00-00)*
+ 
+   Confirm that Pre'Class and Post'Class cannot be specified for a protected operation. No language change.
+ 
+   RM references: 13.01.01 (16/3)
+ 
+ .. index:: AI12-0184 (Ada 2022 feature)
+ 
+ * *AI12-0184 Long Long C Data Types (2020-01-30)*
+ 
+   Two new types ``long_long`` and ``unsigned_long_long`` are introduced in the package ``Interfaces.C``.
+ 
+   RM references: B.03 (71.3/3)
+ 
+ .. index:: AI12-0185 (Ada 2022 feature)
+ 
+ * *AI12-0185 Resolution of postcondition-specific attributes (0000-00-00)*
+ 
+   Clarify resolution rules for ``'Old`` and ``'Result`` attribute references to match original intent.
+ 
+   RM references: 6.01.01 (7/4) 6.01.01 (8/3) 6.01.01 (26.10/4) 6.01.01 (29/3)
+ 
+ .. index:: AI12-0186 (Ada 2022 feature)
+ 
+ * *AI12-0186 Profile freezing for the Access attribute (0000-00-00)*
+ 
+   Clarify that the use of Some_Subprogram'Access does not freeze the profile of Some_Subprogram.
+ 
+   RM references: 13.14 (15)
+ 
+ .. index:: AI12-0187 (Ada 2022 feature)
+ 
+ * *AI12-0187 Stable properties of abstract data types (2020-11-04)*
+ 
+   Ada 2022 defines a new aspect, ``Stable_Properties``, for use in
+   generating additional postcondition checks for subprograms.
+ 
+   RM references: 7.03.04 (0) 13.01.01 (4/3)
+ 
+ .. index:: AI12-0191 (Ada 2022 feature)
+ 
+ * *AI12-0191 Clarify "part" for type invariants (0000-00-00)*
+ 
+   Clarify that for purposes of determining whether an invariant check is required for a "part" of an object, we do not look at "parts" which do not correspond to "parts" of the nominal type of the object. For example, if we have a parameter Param of a tagged type T1 (or equivalently of type T1'Class), and type T2 is an extension of T1 which declares a component Foo, and T1'Class (Param)'Tag = T2'Tag, then no invariant check is performed for Param's Foo component (or any subcomponent thereof).
+ 
+   RM references: 3.03 (23/5) 3.09.01 (4.1/2) 6.08 (5.8/5) 7.03.02 (8.3/5)
+   7.03.02 (8.4/5) 7.03.02 (8.5/5) 7.03.02 (8.6/5) 7.03.02 (8.7/5)
+   7.03.02 (8.8/5) 7.03.02 (8.9/5) 7.03.02 (8.10/5) 7.03.02 (8.11/5)
+   7.03.02 (8.12/5) 7.03.02 (10.1/4) 7.03.02 (15/5) 7.03.02 (17/4)
+   7.03.02 (18/4) 7.03.02 (19/4) 13.13.02 (9/3)
+ 
+ .. index:: AI12-0192 (Ada 2022 feature)
+ 
+ * *AI12-0192 "requires late initialization" and protected types (2020-03-11)*
+ 
+   This AI clarifies that components of a protected type require late initialization when their initialization references (implicitly) the current instance of the type.
+ 
+   RM references: 3.03.01 (8.1/2)
+ 
+ .. index:: AI12-0194 (Ada 2022 feature)
+ 
+ * *AI12-0194 Language-defined aspects and entry bodies (0000-00-00)*
+ 
+   The AI Includes entry bodies on the list of bodies for which no language-defined aspects can be specified (although specifying an implementation-defined aspect may be allowed).
+ 
+   A wording change, no implementation impact.
+ 
+   RM references: 13.01.01 (17/3)
+ 
+ .. index:: AI12-0195 (Ada 2022 feature)
+ 
+ * *AI12-0195 Inheriting body but overriding precondition or postcondition (2021-08-11)*
+ 
+   Ada 2022 specifies that if a primitive with a class-wide precondition or
+   postcondition is inherited, and some primitive function called in the class-wide precondition or postcondition is overridden, then a dispatching call to the first primitive with a controlling operand that has the tag of the overriding type is required to check both the interpretation using the overriding function and the interpretation using the original overridden function.
+ 
+   RM references: 6.01.01 (38/4)
+ 
+ .. index:: AI12-0196 (Ada 2022 feature)
+ 
+ * *AI12-0196 Concurrent access to Ada container libraries (0000-00-00)*
+ 
+   Clarify that parallel execution of operations which use cursors to refer to different elements of the same container does not violate the rules about erroneous concurrent access in some cases. That is, if C1 and C2 are cursors that refer to different elements of some container, then it is ok to concurrently execute an operation that is passed C1 and which accesses one element of the container, with another operation (perhaps the same operation, perhaps not) that is passed C2 and which accesses another element of the container.
+ 
+   RM references: A.18 (2/2) A.18.02 (125/2) A.18.02 (133/3) A.18.02 (135/3)
+   A.18.03 (81/3) A.18.04 (36/3) A.18.07 (34/2) A.18.10 (116/3)
+ 
+ .. index:: AI12-0198 (Ada 2022 feature)
+ 
+ * *AI12-0198 Potentially unevaluated components of array aggregates (2020-05-13)*
+ 
+   Ada 2022 enforces the detection of components that belong to a nonstatic or
+   null range of index values of an array aggregate.
+ 
+   RM references: 6.01.01 (22.1/4)
+ 
+ .. index:: AI12-0199 (Ada 2022 feature)
+ 
+ * *AI12-0199 Abstract subprogram calls in class-wide invariant expressions (0000-00-00)*
+ 
+   Class-wide type invariants do not apply to abstract types, to avoid various
+   problems. Define the notion of a "corresponding expression" for a class-wide
+   type invariant, replacing references to components as appropriate, taking into
+   account rules for corresponding and specified discriminants when applying them
+   to a nonabstract descendant.
+ 
+   RM references: 7.03.02 (5/4) 7.03.02 (8/3)
+ 
+ .. index:: AI12-0201 (Ada 2022 feature)
+ 
+ * *AI12-0201 Missing operations of static string types (2020-02-25)*
+ 
+   Relational operators and type conversions of static string types are now static in Ada 2022.
+ 
+   RM references: 4.09 (9) 4.09 (19) 4.09 (20) 4.09 (24)
+ 
+ .. index:: AI12-0203 (Ada 2022 feature)
+ 
+ * *AI12-0203 Overriding a nonoverridable aspect (0000-00-00)*
+ 
+   A corner case wording clarification that has no impact on compilers.
+ 
+   RM references: 4.01.05 (5.1/4) 4.01.05 (7/3)
+ 
+ .. index:: AI12-0204 (Ada 2022 feature)
+ 
+ * *AI12-0204 Renaming of a prefixed view (2020-02-24)*
+ 
+   AI12-0204 clarifies that the prefix of a prefixed view that is renamed or
+   passed as a formal subprogram must be renameable as an object.
+ 
+   RM references: 8.05.04 (5.2/2) 12.06 (8.3/2) 4.01.03 (13.1/2) 4.01.06 (9/5)
+ 
+ .. index:: AI12-0205 (Ada 2022 feature)
+ 
+ * *AI12-0205 Defaults for generic formal types (2021-04-01)*
+ 
+   AI12-0205 specifies syntax and semantics that provide defaults for formal types of generic units. The legality rules guarantee that the default subtype_mark that is specified for a formal type would be a legal actual in any instantiation of the generic unit.
+ 
+   RM references: 12.03 (7/3) 12.03 (10) 12.05 (2.1/3) 12.05 (2.2/3) 12.05 (7/2)
+ 
+ .. index:: AI12-0206 (Ada 2022 feature)
+ 
+ * *AI12-0206 Nonoverridable should allow arbitrary kinds of aspects (0000-00-00)*
+ 
+   A non-overridable aspect can have a value other than a name; for example, ``Max_Entry_Queue_Length`` is non-overridable and it has a scalar value.
+   Part of adding support for ``Max_Entry_Queue_Length`` (which is already supported by GNAT).
+ 
+   RM references: 13.01.01 (18.2/4) 13.01.01 (18.3/4) 13.01.01 (18.6/4)
+ 
+ .. index:: AI12-0207 (Ada 2022 feature)
+ 
+ * *AI12-0207 Convention of anonymous access types (2020-02-01)*
+ 
+   The convention of anonymous access elements of arrays now have the same convention as the array instead of convention Ada.
+ 
+   RM references: 6.03.01 (13.1/3) B.01 (19) B.01 (21/3)
+ 
+ .. index:: AI12-0208 (Ada 2022 feature)
+ 
+ * *AI12-0208 Predefined Big numbers support (0000-00-00)*
+ 
+   Add predefined package ``Ada.Numerics.Big_Numbers``.
+ 
+   RM references: A.05.05 (0) A.05.06 (0) A.05.07 (0)
+ 
+ .. index:: AI12-0211 (Ada 2022 feature)
+ 
+ * *AI12-0211 Interface types and inherited nonoverridable aspects (2020-08-24)*
+ 
+   AI12-0211 introduces two new legality rules for Ada 2022. The first says that
+   if a nonoverridable aspect is explicitly specified for a type that also inherits that aspect from another type (an ancestor or a progenitor), then the explicit aspect specification shall be confirming. The second says that if a type inherits a nonoverridable aspect from two different sources (this can only occur if at least one of the two is an interface type), then the two sources shall agree with respect to the given aspect. This AI is a binding interpretation, so these checks are performed even for earlier Ada versions. Because of compatibility concerns, an escape mechanism for suppressing these legality checks is provided: these new checks always pass if the ``-gnatd.M`` switch (relaxed RM semantics) is specified.
+ 
+   RM references: 13.01.01 (18.3/5) 13.01.01 (18.4/4)
+ 
+ .. index:: AI12-0212 (Ada 2022 feature)
+ 
+ * *AI12-0212 Container aggregates; generalized array aggregates (0000-00-00)*
+ 
+   The AI defines a new feature: generalized array aggregates that already exists in GNAT.
+ 
+   RM references: 4.03.05 (0) 1.01.04 (12) 1.01.04 (13) 2.01 (15) 2.02 (9/5)
+   3.07.01 (3) 3.08.01 (4) 4.03 (2/5) 4.03 (3/5) 4.03.01 (5) 4.03.03
+   (3/2) 4.03.03 (4/5) 4.03.03 (5.1/5) 4.03.03 (9) 4.03.03 (17/5)
+   4.03.03 (21) 4.03.03 (23.2/5) 4.03.03 (26) 4.03.03 (27) 4.03.03
+   (31) 4.03.04 (4/5) 4.04 (3.1/3) 11.02 (3) 13.01.01 (5/3)
+   13.01.01 (7/3) A.18.02 (8/3) A.18.02 (14/2) A.18.02 (47/2) A.18.02
+   (175/2) A.18.03 (6/3) A.18.05 (3/3) A.18.06 (4/3) A.18.08 (3/3)
+   A.18.09 (4/3)
+ 
+ .. index:: AI12-0216 (Ada 2022 feature)
+ 
+ * *AI12-0216 6.4.1(6.16-17/3) should never apply to composite objects (0000-00-00)*
+ 
+   Fix wording so that parameter passing cases where there isn't really any aliasing problems or evaluation order dependency are classified as acceptable.
+ 
+   No compiler impact.
+ 
+   RM references: 6.04.01 (6.17/3)
+ 
+ .. index:: AI12-0217 (Ada 2022 feature)
+ 
+ * *AI12-0217 Rules regarding restrictions on the use of the Old attribute are too strict (2020-03-25)*
+ 
+   AI12-0217 loosens the rules regarding what is allowed as the prefix of a 'Old
+   attribute reference. In particular, a prefix is now only required to "statically name" (as opposed to the previous "statically denote") an object. This means that components of composite objects that previously would have been illegal are now legal prefixes.
+ 
+   RM references: 6.01.01 (24/3) 6.01.01 (27/3)
+ 
+ .. index:: AI12-0220 (Ada 2022 feature)
+ 
+ * *AI12-0220 Pre/Post for access-to-subprogram types (2020-04-14)*
+ 
+   Contract aspects can now be specified for access-to-subprogram types, as
+   defined for Ada 2022 in this AI.
+ 
+   RM references: 6.01.01 (1/4) 6.01.01 (2/3) 6.01.01 (4/3) 6.01.01 (19/3)
+   6.01.01 (28/3) 6.01.01 (29/3) 6.01.01 (39/3) 13.01.01 (12/5)
+ 
+ .. index:: AI12-0222 (Ada 2022 feature)
+ 
+ * *AI12-0222 Representation aspects and private types (0000-00-00)*
+ 
+   Clarify that the rule against specifying a representation aspect for a type before the type is completely defined also applies in the case where aspect_specification syntax is used (not just in the case where a pragma or some other kind of representation item is used).
+ 
+   GNAT already implements this.
+ 
+   RM references: 13.01 (9/5) 13.01 (9.1/4) 13.01 (9.2/5)
+ 
+ .. index:: AI12-0225 (Ada 2022 feature)
+ 
+ * *AI12-0225 Prefix of Obj'Image (0000-00-00)*
+ 
+   Clarify some Object vs. Value corner cases to allow names that do not denote objects in more contexts, such as a qualified expression as a prefix of an Image attribute.
+ 
+   RM references: 3.05 (55.1/4)
+ 
+ .. index:: AI12-0226 (Ada 2022 feature)
+ 
+ * *AI12-0226 Make objects more consistent (0000-00-00)*
+ 
+   Allow value conversions as objects. For instance this example becomes legal: ``Long_Integer (Duration'Last)'Image``.
+ 
+   RM references: 3.03 (11.1/3) 3.03 (21.1/3) 3.03 (23.8/5) 4.06 (58.1/4)
+   4.06 (58.3/4)
+ 
+ .. index:: AI12-0227 (Ada 2022 feature)
+ 
+ * *AI12-0227 Evaluation of nonstatic universal expressions when no operators are involved (0000-00-00)*
+ 
+   Nonstatic universal integer expressions are always evaluated at runtime as values of type root_integer; similarly, nonstatic universal real expressions are always evaluated at runtime as values of type root_real.
+   This AI corrects a wording oversight. Previously, the above was only true if a call to operator was involved. With this change it is true in all cases.
+ 
+   No compiler impact.
+ 
+   RM references: 4.04 (10) 8.06 (29)
+ 
+ .. index:: AI12-0228 (Ada 2022 feature)
+ 
+ * *AI12-0228 Properties of qualified expressions used as names (2020-02-19)*
+ 
+   This AI clarifies that properties of a qualified object pass through a
+   qualified expression used as a name. Specifically, "aliased" and "known to be
+   constrained" are not changed by a qualified expression.
+ 
+   RM references: 3.03 (23.7/3) 3.10 (9/3)
+ 
+ .. index:: AI12-0231 (Ada 2022 feature)
+ 
+ * *AI12-0231 Null_Task_Id and Activation_Is_Complete (0000-00-00)*
+ 
+   Add ``Activation_Is_Complete`` to the list of functions that raise P_E if passed ``Null_Task_Id``, correcting an oversight.
+ 
+   RM references: C.07.01 (15)
+ 
+ .. index:: AI12-0232 (Ada 2022 feature)
+ 
+ * *AI12-0232 Rules for pure generic bodies (0000-00-00)*
+ 
+   Clarify the rules for a generic body nested in a pure library unit.
+ 
+   RM references: 10.02.01 (9/3) 10.02.01 (15.1/3) 10.02.01 (15.5/3)
+ 
+ .. index:: AI12-0233 (Ada 2022 feature)
+ 
+ * *AI12-0233 Pre'Class for hidden operations of private types (0000-00-00)*
+ 
+   Clarify how ``Pre'Class`` checking interacts with private-part overriding of inherited subprograms. A class-wide precondition can be checked at runtime even if it is specified in a private part that the caller cannot see into.
+ 
+   RM references: 6.01.01 (38/4)
+ 
+ .. index:: AI12-0234 (Ada 2022 feature)
+ 
+ * *AI12-0234 Compare-and-swap for atomic objects (0000-00-00)*
+ 
+   New predefined units for atomic operations (``System.Atomic_Operations`` and child units thereof).
+ 
+   RM references: C.06.01 (0) C.06.02 (0)
+ 
+ .. index:: AI12-0235 (Ada 2022 feature)
+ 
+ * *AI12-0235 System.Storage_Pools should be pure (0000-00-00)*
+ 
+   Change the predefined package System.Storage_Pools from preelaborated to pure.
+ 
+   RM references: 13.11 (5)
+ 
+ .. index:: AI12-0236 (Ada 2022 feature)
+ 
+ * *AI12-0236 declare expressions (2020-04-08)*
+ 
+   A ``declare expression`` allows constant objects and renamings to be
+   declared within an expression.
+ 
+   RM references: 2.08 (6) 3.09.02 (3) 3.10.02 (9.1/3) 3.10.02 (16.1/3)
+   3.10.02 (32.2/3) 4.03.02 (5.4/3) 4.03.03 (15.1/3) 4.04 (7/3)
+   4.05.09 (0) 6.02 (10/4) 7.05 (2.1/5) 8.01 (2.1/4)
+ 
+ .. index:: AI12-0237 (Ada 2022 feature)
+ 
+ * *AI12-0237 Getting the representation of an enumeration value (2020-01-31)*
+ 
+   The GNAT-specific attributes ``Enum_Rep`` and ``Enum_Val`` have been standardized and are now also supported as Ada 2022 attributes.
+ 
+   RM references: 13.04 (10) 13.04 (11/3)
+ 
+ .. index:: AI12-0242 (Ada 2022 feature)
+ 
+ * *AI12-0242 Shorthand Reduction Expressions for Objects (0000-00-00)*
+ 
+   Allow reduction expressions to iterate over an an array or an iterable object without having to explicitly create a value sequence.
+ 
+   This allows, for instance, writing ``A'Reduce("+", 0)`` instead of the equivalent (but more verbose) ``[for Value of A => Value]'Reduce("+", 0);``.
+ 
+   RM references: 4.05.10 (0) 4.01.04 (6)
+ 
+ .. index:: AI12-0247 (Ada 2022 feature)
+ 
+ * *AI12-0247 Potentially Blocking goes too far for Detect_Blocking (0000-00-00)*
+ 
+   During a protected action, a call on a subprogram that contains a potentially blocking operation is considered a bounded error (so raising P_E is optional).
+   This rule imposed an unreasonable implementation burden.
+   The new rule introduced by this AI allows ignoring (i.e., not detecting) the problem until execution of a potentially blocking operation is actually attempted.
+ 
+   RM references: 9.05 (55/5) 9.05 (56/5) 9.05.01 (18/5) H.05 (5/2)
+ 
+ .. index:: AI12-0249 (Ada 2022 feature)
+ 
+ * *AI12-0249 User-defined numeric literals (2020-04-07)*
+ 
+   Compiler support is added for three new aspects (``Integer_Literal``, ``Real_Literal``, and ``String_Literal``) as described in AI12-0249 (for ``Integer_Literal`` and ``Real_Literal``), AI12-0295 (for  ``String_Literal``), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined
+   aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
+ 
+   RM references: 4.02 (9) 4.02.01 (0) 4.09 (3)
+ 
+ .. index:: AI12-0250 (Ada 2022 feature)
+ 
+ * *AI12-0250 Iterator Filters (2020-05-19)*
+ 
+   This AI defines Ada 2022 feature of iterator filters, which can be
+   applied to loop parameter specifications and iterator specifications.
+ 
+   RM references: 4.03.03 (21) 4.03.03 (26) 4.03.03 (31) 4.03.05 (0) 4.05.10
+   (0) 5.05 (4) 5.05 (7) 5.05 (9/4) 5.05 (9.1/4) 5.05 (10)
+   5.05.02 (2/3) 5.05.02 (10/3) 5.05.02 (11/3)
+ 
+ .. index:: AI12-0252 (Ada 2022 feature)
+ 
+ * *AI12-0252 Duplicate interrupt handlers under Ravenscar (2018-07-05)*
+ 
+   Ada Issue AI12-0252 requires that the runtime shall terminate with a
+   Program_Error when more than one interrupt handler is attached to the same interrupt and the restriction No_Dynamic_Attachment is in effect.
+ 
+   RM references: C.03.01 (13)
+ 
+ .. index:: AI12-0254 (Ada 2022 feature)
+ 
+ * *AI12-0254 Bounded_Indefinite_Holders (2025-12-15)*
+ 
+   This AI defines a new package ``Ada.Containers.Indefinite_Holders`` which
+   is fully implemented by GNAT.
+ 
+   RM references: A.18.32 (0)
+ 
+ .. index:: AI12-0256 (Ada 2022 feature)
+ 
+ * *AI12-0256 Aspect No_Controlled_Parts (2021-01-26)*
+ 
+   The compiler now supports the Ada 2022 aspect No_Controlled_Parts (see
+   AI12-0256). When specified for a type, this aspect requires that the type and any of its ancestors must not have any controlled parts.
+ 
+   RM references: H.04.01 (0) 13.01.01 (18.7/5)
+ 
+ .. index:: AI12-0258 (Ada 2022 feature)
+ 
+ * *AI12-0258 Containers and controlled element types (0000-00-00)*
+ 
+   Most predefined containers are allowed to defer finalization of container elements until the finalization of the container. This allows implementation flexibility  but  causes problems in some cases. AI12-0258 tightens up the rules for the indefinite containers to say that finalization happens earlier - if a client needs the tighter finalization guarantees, then it can use the indefinite containers (even if the element subtype in question is definite). Other solutions involving the holder generic are also possible.
+ 
+   GNAT implements these tighter element finalization requirements for instances of the indefinite container generics.
+ 
+   RM references: A.18 (10/4)
+ 
+ .. index:: AI12-0259 (Ada 2022 feature)
+ 
+ * *AI12-0259 Lower bound of strings returned from Ada.Command_Line (0000-00-00)*
+ 
+   Specify that the low-bound of a couple of predefined String-valued functions will always be one.
+ 
+   RM references: A.15 (14) A.15 (16/3)
+ 
+ .. index:: AI12-0260 (Ada 2022 feature)
+ 
+ * *AI12-0260 Functions Is_Basic and To_Basic in Wide_Characters.Handling (2020-04-01)*
+ 
+   AI12-0260 is implemented for Ada 2022, providing the new functions ``Is_Basic`` and ``To_Basic`` in package ``Ada.Wide_Characters.Handling``.
+ 
+   RM references: 1.02 (8/3) A.03.05 (8/3) A.03.05 (20/3) A.03.05 (21/3)
+   A.03.05 (33/3) A.03.05 (61/3)
+ 
+ .. index:: AI12-0261 (Ada 2022 feature)
+ 
+ * *AI12-0261 Conflict in "private with" rules (0000-00-00)*
+ 
+   If a library unit is only visible at some point because of a "private with", there are legality rules about a name denoting that entity. The AI cleans up the wording so that it captures the intent in a corner case involving a private-child library-unit subprogram. The previous wording incorrectly caused this case to be illegal.
+ 
+   RM references: 10.01.02 (12/3) 10.01.02 (13/2) 10.01.02 (14/2) 10.01.02
+   (15/2) 10.01.02 (16/2)
+ 
+ .. index:: AI12-0262 (Ada 2022 feature)
+ 
+ * *AI12-0262 Map-Reduce attribute (0000-00-00)*
+ 
+   The AI defines Reduction Expressions to allow the programmer to apply the
+   Map-Reduce paradigm to map/transform a set of values to a new set of values,
+   and then summarize/reduce the transformed values into a single result value.
+ 
+   RM references: 4.01.04 (1) 4.01.04 (6) 4.01.04 (11) 4.05.10 (0)
+ 
+ .. index:: AI12-0263 (Ada 2022 feature)
+ 
+ * *AI12-0263 Update references to ISO/IEC 10646 (0000-00-00)*
+ 
+   Change RM references to ISO/IEC 10646:2011 to instead refer to ISO/IEC 10646:2017. No compiler impact.
+ 
+   RM references: 1.01.04 (14.2/3) 2.01 (1/3) 2.01 (3.1/3) 2.01 (4/3) 2.01
+   (4.1/5) 2.01 (5/3) 2.01 (15/3) 2.01 (4.1/5) 2.01 (5/3) 2.03
+   (4.1/5) 2.03 (5/3) 3.05.02 (2/3) 3.05.02 (3/3) 3.05.02 (4/3) A.01
+   (36.1/3) A.01 (36.2/3) A.03.02 (32.6/5) A.03.05 (51.2/5) A.03.05
+   (55/3) A.03.05 (59/3) A.04.10 (3/3) B.05 (21/5)
+ 
+ .. index:: AI12-0264 (Ada 2022 feature)
+ 
+ * *AI12-0264 Overshifting and overrotating (0000-00-00)*
+ 
+   Clarify Shift and Rotate op behavior with large shift/rotate amounts.
+ 
+   RM references: B.02 (9)
+ 
+ .. index:: AI12-0265 (Ada 2022 feature)
+ 
+ * *AI12-0265 Default_Initial_Condition for types (2020-11-13)*
+ 
+   The aspect ``Default_Initial_Condition``, originally proposed by SPARK and
+   supported in GNAT, is now also included in Ada 2022. One change from the
+   original implementation is that when the aspect is specified on ancestor types of a derived type, the ancestors' check expressions also apply to the derived type.
+   ``Default_Initial_Condition`` checks are also now applied in cases of default
+   initialization of components, allocators, ancestor parts of extension aggregates, and box associations of aggregates.
+ 
+   RM references: 7.03.03 (0) 1.01.03 (17.1/5) 11.04.02 (23.2/5) 11.04.02 (23.3/5)
+ 
+ .. index:: AI12-0269 (Ada 2022 feature)
+ 
+ * *AI12-0269 Aspect No_Return for functions reprise (2020-03-19)*
+ 
+   This amendment has been implemented under the ``-gnat2022`` switch, and the
+   compiler now accepts the aspect/pragma No_Return for functions and generic
+   functions.
+ 
+   RM references: 6.05.01 (0) 6.05.01 (1/3) 6.05.01 (3.1/3) 6.05.01 (3.4/3)
+   6.05.01 (5/2) 6.05.01 (6/2) 6.05.01 (7/2) J.15.02 (2/3) J.15.02
+   (3/3) J.15.02 (4/3)
+ 
+ .. index:: AI12-0272 (Ada 2022 feature)
+ 
+ * *AI12-0272 (part 1) Pre/Postconditions for formal subprograms (0000-00-00)*
+ 
+   Pre and Post aspects can be specified for a generic formal subprogram. ``Default_Initial_Condition`` can be specified for a generic formal private type.
+ 
+   GNAT implements this with an exception of the part related to ``Default_Initial_Condition``.
+ 
+   RM references: 6.01.01 (1/5) 6.01.01 (39/5) 7.03.03 (1/5) 7.03.03 (2/5)
+   7.03.03 (8/5) 7.03.04 (5/5) F.01 (1)
+ 
+ .. index:: AI12-0275 (Ada 2022 feature)
+ 
+ * *AI12-0275 Make subtype_mark optional in object renames (2020-01-28)*
+ 
+   AI12-0275 allows object renamings to be declared without an explicit
+   subtype_mark or access_definition. This feature can be used by compiling
+   with the switch ``-gnat2022``.
+ 
+   RM references: 8.05.01 (2/3) 8.05.01 (3/2)
+ 
+ .. index:: AI12-0277 (Ada 2022 feature)
+ 
+ * *AI12-0277 The meaning of "accessibility level of the body of F" (2020-09-09)*
+ 
+   Clarify that the only time that an explicitly aliased formal parameter has different accessibility properties than an aliased part of a "normal" parameter is for the accessibility checking associated with a return statement.
+ 
+   RM references: 3.10.02 (19.2/4)
+ 
+ .. index:: AI12-0278 (Ada 2022 feature)
+ 
+ * *AI12-0278 Implicit conversions of anonymous return types (0000-00-00)*
+ 
+   If a call to a function with an anonymous-access-type result is converted to a named access type, it doesn't matter whether the conversion is implicit or explicit. the AI fixes hole where the previous rules didn't cover the implicit conversion case.
+ 
+   RM references: 3.10.02 (10.3/3)
+ 
+ .. index:: AI12-0279 (Ada 2022 feature)
+ 
+ * *AI12-0279 Nonpreemptive dispatching needs more dispatching points (2020-04-17)*
+ 
+   Ada 2022 defines a new aspect `Yield` that can be specified in the declaration of a noninstance subprogram (including a generic formal subprogram), a generic subprogram, or an entry, to ensure that the associated subprogram has at least one task dispatching point during each invocation.
+ 
+   RM references: D.02.01 (1.5/2) D.02.01 (7/5)
+ 
+ .. index:: AI12-0280-2 (Ada 2022 feature)
+ 
+ * *AI12-0280-2 Making 'Old more flexible (2020-07-24)*
+ 
+   For Ada 2022, AI12-0280-2 relaxes Ada's restrictions on 'Old attribute
+   references whose attribute prefix does not statically name an entity. Previously, it was required that such an attribute reference must be unconditionally evaluated when the postcondition is evaluated; with the new rule, conditional evaluation is permitted if the relevant conditions can be evaluated upon entry to the subprogram with the same results as evaluation at the time of the postcondition's evaluation. In this case, the 'Old attribute prefix is evaluated conditionally (more specifically, the prefix is evaluated only if the result of that evaluation is going to be referenced later when the
+   postcondition is evaluated).
+ 
+   RM references: 6.01.01 (20/3) 6.01.01 (21/3) 6.01.01 (22/3) 6.01.01
+   (22.1/4) 6.01.01 (22.2/5) 6.01.01 (23/3) 6.01.01 (24/3) 6.01.01
+   (26/4) 6.01.01 (27/5) 6.01.01 (39/5)
+ 
+ .. index:: AI12-0282 (Ada 2022 feature)
+ 
+ * *AI12-0282 Atomic, Volatile, and Independent generic formal types (0000-00-00)*
+ 
+   The AI specifies that the aspects ``Atomic``, ``Volatile``, ``Independent``, ``Atomic_Components``, ``Volatile_Components``, and ``Independent_Components`` are specifiable for generic formal types. The actual type must have a matching specification.
+ 
+   RM references: C.06 (6.1/3) C.06 (6.3/3) C.06 (6.5/3) C.06 (6.8/3) C.06
+   (12/3) C.06 (12.1/3) C.06 (21/4)
+ 
+ .. index:: AI12-0285 (Ada 2022 feature)
+ 
+ * *AI12-0285 Syntax for Stable_Properties aspects (0000-00-00)*
+ 
+   The AI establishes the required named notation for a Stable_Properties aspect specification in order to avoid syntactic ambiguities.
+ 
+   With the old syntax, an example like
+ 
+   .. code::
+ 
+      type Ugh is ...
+         with Stable_Properties =\> Foo, Bar, Nonblocking, Pack;
+ 
+   was problematic; ``Nonblocking`` and ``Pack`` are other aspects, while ``Foo`` and ``Bar`` are ``Stable_Properties`` functions. With the clarified syntax, the example above shall be written as:
+ 
+   .. code::
+ 
+       type Ugh is ...
+         with Stable_Properties => (Foo, Bar), Nonblocking, Pack;
+ 
+   RM references: 7.03.04 (2/5) 7.03.04 (3/5) 7.03.04 (4/5) 7.03.04 (6/5)
+   7.03.04 (7/5) 7.03.04 (9/5) 7.03.04 (10/5) 7.03.04 (14/5) 13.01.01 (4/5)
+ 
+ .. index:: AI12-0287 (Ada 2022 feature)
+ 
+ * *AI12-0287 Legality Rules for null exclusions in renaming are too fierce (2020-02-17)*
+ 
+   The null exclusion legality rules for generic formal object matching and object renaming now only apply to generic formal objects with mode in out.
+ 
+   RM references: 8.05.01 (4.4/2) 8.05.01 (4.5/2) 8.05.01 (4.6/2) 8.05.04
+   (4.2/2) 12.04 (8.3/2) 12.04 (8.4/2) 12.04 (8.5/2) 12.04 (8.2/5)
+   12.06 (8.2/5)
+ 
+ .. index:: AI12-0289 (Ada 2022 feature)
+ 
+ * *AI12-0289 Implicitly null excluding anonymous access types and conformance (2020-06-09)*
+ 
+   AI12-0289 is implemented for Ada 2022, allowing safer use of access parameters
+   when the partial view of the designated type is untagged, but the full view is
+   tagged.
+ 
+   RM references: 3.10 (26)
+ 
+ .. index:: AI12-0290 (Ada 2022 feature)
+ 
+ * *AI12-0290 Restriction Pure_Barriers (2020-02-18)*
+ 
+   The GNAT implementation of the Pure_Barriers restriction has
+   been updated to match the Ada RM's definition as specified
+   in this AI. Some constructs that were accepted by the previous
+   implementation are now rejected, and vice versa. In
+   particular, the use of a component of a component of a
+   protected record in a barrier expression, as in "when
+   Some_Component.Another_Component =>", formerly was (at least
+   in some cases) not considered to be a violation of the
+   Pure_Barriers restriction; that is no longer the case.
+ 
+   RM references: D.07 (2) D.07 (10.10/4)
+ 
+ .. index:: AI12-0291 (Ada 2022 feature)
+ 
+ * *AI12-0291 Jorvik Profile (2020-02-19)*
+ 
+   The Jorvik profile is now implemented, as defined in this AI.
+   For Ada 2012 and earlier versions of Ada, Jorvik is an implementation-defined
+   profile whose definition matches its Ada 2022 definition.
+ 
+   RM references: D.13 (0) D.13 (1/3) D.13 (4/3) D.13 (6/4) D.13 (9/3) D.13
+   (10/3) D.13 (11/4) D.13 (12/4)
+ 
+ .. index:: AI12-0293 (Ada 2022 feature)
+ 
+ * *AI12-0293 Add predefined FIFO_Streams packages (0000-00-00)*
+ 
+   The AI adds ``Ada.Streams.Storage`` and its two subunits ``Bounded`` and ``Unbounded``.
+ 
+   RM references: 13.13.01 (1) 13.13.01 (9) 13.13.01 (9.1/1)
+ 
+ .. index:: AI12-0295 (Ada 2022 feature)
+ 
+ * *AI12-0295 User-defined string  (2020-04-07)*
+ 
+   Compiler support is added for three new aspects (``Integer_Literal``, ``Real_Literal``, and ``String_Literal``) as described in AI12-0249 (for ``Integer_Literal`` and ``Real_Literal``), AI12-0295 (for ``String_Literal``), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
+ 
+   RM references: 4.02 (6) 4.02 (10) 4.02 (11) 3.06.03 (1) 4.02.01 (0) 4.09 (26/3)
+ 
+ .. index:: AI12-0301 (Ada 2022 feature)
+ 
+ * *AI12-0301 Predicates should be checked like constraints for types with Default_Value (2020-02-25)*
+ 
+   This AI clarifies that predicate checks apply for objects that are initialized
+   by default and that are of a type that has any components whose subtypes specify ``Default_Value`` or ``Default_Component_Value``.
+ 
+   RM references: 3.02.04 (31/4)
+ 
+ .. index:: AI12-0304 (Ada 2022 feature)
+ 
+ * *AI12-0304 Image attributes of language-defined types (2020-07-07)*
+ 
+   According to this AI, ``Put_Image`` (and therefore ``'Image``) is provided for
+   the containers and for unbounded strings.
+ 
+   RM references: 4.10 (0)
+ 
+ .. index:: AI12-0306 (Ada 2022 feature)
+ 
+ * *AI12-0306 Split null array aggregates from positional array aggregates (0000-00-00)*
+ 
+   The AI clarifies the wording of the references RM paragraphs without introducing any language changes.
+ 
+   RM references: 4.03.03 (2) 4.03.03 (3/2) 4.03.03 (9/5) 4.03.03 (26/5)
+   4.03.03 (26.1/5) 4.03.03 (33/3) 4.03.03 (38) 4.03.03 (39) 4.03.03 (42)
+ 
+ .. index:: AI12-0307 (Ada 2022 feature)
+ 
+ * *AI12-0307 Resolution of aggregates (2020-08-13)*
+ 
+   The proposed new syntax for aggregates in Ada 2022 uses square brackets as
+   delimiters, and in particular allows ``[]`` as a notation for empty array and container aggregates. This syntax is currently available as an experimental feature under the ``-gnatX`` flag.
+ 
+   RM references: 4.03 (3/5)
+ 
+ .. index:: AI12-0309 (Ada 2022 feature)
+ 
+ * *AI12-0309 Missing checks for pragma Suppress (0000-00-00)*
+ 
+   The AI includes some previously overlooked run-time checks in the list of checks that are potentially suppressed via a pragma ``Suppress``. For example, AI12-0251-1 adds a check that the number of chunks in a chunk_specification is not zero or negative. Clarify that suppressing ``Program_Error_Check`` suppresses that check too.
+ 
+   RM references: 11.05 (10) 11.05 (19) 11.05 (20) 11.05 (22) 11.05 (24)
+ 
+ .. index:: AI12-0311 (Ada 2022 feature)
+ 
+ * *AI12-0311 Suppressing client-side assertions for language-defined units (0000-00-00)*
+ 
+   The AI defines some new assertion policies that can be given as arguments in a Suppress pragma (e.g., Calendar_Assertion_Check). GNAT recognizes and ignores those new policies, the checks are not implemented.
+ 
+   RM references: 11.04.02 (23.5/5) 11.05 (23) 11.05 (26)
+ 
+ .. index:: AI12-0315 (Ada 2022 feature)
+ 
+ * *AI12-0315 Image Attributes subclause improvements (0000-00-00)*
+ 
+   Clarify that a named number or similar can be the prefix of an Image attribute reference.
+ 
+   RM references: 4.10 (0)
+ 
+ .. index:: AI12-0318 (Ada 2022 feature)
+ 
+ * *AI12-0318 No_IO should apply to Ada.Directories (2020-01-31)*
+ 
+   The restriction No_IO now applies to and prevents the use of the
+   ``Ada.Directories package``.
+ 
+   RM references: H.04 (20/2) H.04 (24/3)
+ 
+ .. index:: AI12-0321 (Ada 2022 feature)
+ 
+ * *AI12-0321 Support for Arithmetic Atomic Operations and Test and Set (0000-00-00)*
+ 
+   The AI adds some predefined atomic operations, e.g. package System.``Atomic_Operations.Test_And_Set``.
+ 
+   RM references: C.06.03 (0) C.06.04 (0)
+ 
+ .. index:: AI12-0325 (Ada 2022 feature)
+ 
+ * *AI12-0325 Various issues with user-defined literals (2020-04-07)*
+ 
+   Compiler support is added for three new aspects (``Integer_Literal``, ``Real_Literal``, and ``String_Literal``) as described in AI12-0249 (for ``Integer_Literal`` and ``Real_Literal``), AI12-0295 (for ``String_Literal``), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
+ 
+   RM references: 4.02 (6) 4.02 (10) 4.02 (11) 4.02.01 (0)
+ 
+ .. index:: AI12-0329 (Ada 2022 feature)
+ 
+ * *AI12-0329 Naming of FIFO_Streams packages (0000-00-00)*
+ 
+   The AI changes the name of predefined package ``Ada.Streams.FIFO_Streams`` to ``Ada.Streams.Storage``.
+ 
+   RM references: 13.13.01 (9/5) 13.13.01 (9.1/5)
+ 
+ .. index:: AI12-0331 (Ada 2022 feature)
+ 
+ * *AI12-0331 Order of finalization of a subpool (0000-00-00)*
+ 
+   Clarify that when a subpool is being finalized, objects allocated from that subpool are finalized before (not after) they cease to exist (i.e. object's storage has been reclaimed).
+ 
+   RM references: 13.11.05 (5/3) 13.11.05 (6/3) 13.11.05 (7/3) 13.11.05
+   (7.1/4) 13.11.05 (8/3) 13.11.05 (9/3)
+ 
+ .. index:: AI12-0333 (Ada 2022 feature)
+ 
+ * *AI12-0333 Predicate checks on out parameters (0000-00-00)*
+ 
+   If a view conversion is passed as an actual parameter corresponding to an out-mode formal parameter, and if the subtype of the formal parameter has a predicate, then no predicate check associated with the conversion is performed.
+ 
+   RM references: 3.02.04 (31/5) 4.06 (51/4) 6.04.01 (14)
+ 
+ .. index:: AI12-0335 (Ada 2022 feature)
+ 
+ * *AI12-0335 Dynamic accessibility check needed for some requeue targets (0000-00-00)*
+ 
+   Define a new runtime accessibility check for a corner case involving requeue statements.
+ 
+   RM references: 9.05.04 (7/4)
+ 
+ .. index:: AI12-0336 (Ada 2022 feature)
+ 
+ * *AI12-0336 Meaning of Time_Offset (0000-00-00)*
+ 
+   The AI introduces changes to the predefined package ``Ada.Calendar.Time_Zones``.
+ 
+   RM references: 9.06.01 (6/2) 9.06.01 (35/2) 9.06.01 (40/2) 9.06.01 (41/2)
+   9.06.01 (42/3) 9.06.01 (90/2) 9.06.01 (91/2)
+ 
+ .. index:: AI12-0337 (Ada 2022 feature)
+ 
+ * *AI12-0337 Simple_Name("/") in Ada.Directories (0000-00-00)*
+ 
+   Clarify behavior of subprograms in the predefined package ``Ada.Directories``. In particular, Simple_Name ("/") should return "/" on Unix-like systems.
+ 
+   RM references: A.16 (47/2) A.16 (74/2) A.16 (82/3)
+ 
+ .. index:: AI12-0338 (Ada 2022 feature)
+ 
+ * *AI12-0338 Type invariant checking and incomplete types (0000-00-00)*
+ 
+   Clarify that type invariants for type T are not checked for incomplete types whose completion is not available, even if that completion has components of type T.
+ 
+   RM references: 7.03.02 (20/5)
+ 
+ .. index:: AI12-0339 (Ada 2022 feature)
+ 
+ * *AI12-0339 Empty function for Container aggregates (2020-08-06)*
+ 
+   To provide uniform support for container aggregates, all standard container
+   libraries have been enhanced with a function Empty, to be used when initializing an aggregate prior to inserting the specified elements in the object being constructed. All products have been updated to remove the ambiguities that may have arisen from previous uses of entities named Empty in our sources, and the expansion of container aggregates uses Empty wherever needed.
+ 
+   RM references: A.18.02 (8/5) A.18.02 (12.3/5) A.18.02 (78.2/5) A.18.02
+   (98.6/5) A.18.03 (6/5) A.18.03 (10.2/5) A.18.03 (50.2/5) A.18.05
+   (3/5) A.18.05 (7.2/5) A.18.05 (37.3/5) A.18.05 (46/2) A.18.06
+   (4/5) A.18.06 (8.2/5) A.18.06 (51.4/5) A.18.08 (3/5) A.18.08
+   (8.1/5) A.18.08 (59.2/5) A.18.08 (68/2) A.18.09 (4/5) A.18.09
+   (9.1/5) A.18.09 (74.2/5) A.18.10 (15.2/5) A.18.18 (8.1/5) A.18.19
+   (6.1/5) A.18.20 (6/3) A.18.21 (6/3) A.18.22 (6/3) A.18.23 (6/3)
+   A.18.24 (6/3) A.18.25 (8/3)
+ 
+ .. index:: AI12-0340 (Ada 2022 feature)
+ 
+ * *AI12-0340 Put_Image should use a Text_Buffer (0000-00-00)*
+ 
+   Add a new predefined package Ada.Strings.Text_Buffers (along with child units) and change the definition of Put_Image attribute to refer to it.
+ 
+   RM references: A.04.12 (0) 4.10 (3.1/5) 4.10 (3.2/5) 4.10 (6/5) 4.10
+   (25.2/5) 4.10 (28/5) 4.10 (31/5) 4.10 (41/5) H.04 (23.2/5) H.04 (23.11/5)
+ 
+ .. index:: AI12-0342 (Ada 2022 feature)
+ 
+ * *AI12-0342 Various issues with user-defined literals (part 2) (2020-04-07)*
+ 
+   Compiler support is added for three new aspects (``Integer_Literal``, ``Real_Literal``,  and ``String_Literal``) as described in AI12-0249 (for ``Integer_Literal`` and ``Real_Literal``), AI12-0295 (for ``String_Literal``), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
+ 
+   RM references: 4.02.01 (0) 3.09.02 (1/2) 6.03.01 (22)
+ 
+ .. index:: AI12-0343 (Ada 2022 feature)
+ 
+ * *AI12-0343 Return Statement Checks (2020-04-02)*
+ 
+   This binding interpretation has been implemented and the accessibility,
+   predicate, and tag checks prescribed by RM 6.5 are now performed at the appropriate points, as required by this AI.
+ 
+   RM references: 6.05 (5.12/5) 6.05 (8/4) 6.05 (8.1/3) 6.05 (21/3)
+ 
+ .. index:: AI12-0345 (Ada 2022 feature)
+ 
+ * *AI12-0345 Dynamic accessibility of explicitly aliased parameters (2020-09-09)*
+ 
+   Further clarify (after AI12-0277) accessibility rules for explicitly aliased parameters.
+ 
+   RM references: 3.10.02 (5) 3.10.02 (7/4) 3.10.02 (10.5/3) 3.10.02 (13.4/4)
+   3.10.02 (19.2/5) 3.10.02 (21)
+ 
+ .. index:: AI12-0350 (Ada 2022 feature)
+ 
+ * *AI12-0350 Swap for Indefinite_Holders (2025-12-15)*
+ 
+   Package ``Ada.Containers.Indefinite_Holders`` is implemented in GNAT, comprising the support for ``Swap`` as specified by this AI.
+ 
+   RM references: A.18.18 (22/5) A.18.18 (67/5) A.18.18 (73/3) A.18.32 (13/5)
+ 
+ .. index:: AI12-0351 (Ada 2022 feature)
+ 
+ * *AI12-0351 Matching for actuals for formal derived types (2020-04-03)*
+ 
+   This binding interpretation requires the compiler to checks
+   that an actual subtype in a generic parameter association of an instantiation is statically compatible (even when the actual is unconstrained) with the ancestor of an associated nondiscriminated generic formal derived type.
+ 
+   RM references: 12.05.01 (7) 12.05.01 (8)
+ 
+ .. index:: AI12-0352 (Ada 2022 feature)
+ 
+ * *AI12-0352 Early derivation and equality of untagged types (2020-07-09)*
+ 
+   AI12-0352 clarifies that declaring a user-defined primitive equality operation for a record type T is illegal if it occurs after a type has been derived from T.
+ 
+   RM references: 4.05.02 (9.8/4)
+ 
+ .. index:: AI12-0356 (Ada 2022 feature)
+ 
+ * *AI12-0356 Root_Storage_Pool_With_Subpools should have Preelaborable_Initialization (0000-00-00)*
+ 
+   Add Preelaborable_Initialization pragmas for predefined types ``Root_Storage_Pool_With_Subpools`` and ``Root_Subpool``.
+ 
+   RM references: 13.11.04 (4/3) 13.11.04 (5/3)
+ 
+ .. index:: AI12-0363 (Ada 2022 feature)
+ 
+ * *AI12-0363 Fixes for Atomic and Volatile (2020-09-08)*
+ 
+   This amendment has been implemented under the ``-gnat2022`` switch and the compiler now supports the ``Full_Access_Only`` aspect, which is mostly equivalent to GNAT's ``Volatile_Full_Access``.
+ 
+   RM references: 3.10.02 (26/3) 9.10 (1/5) C.06 (6.4/3) C.06 (6.10/3) C.06
+   (8.1/4) C.06 (12/5) C.06 (12.1/5) C.06 (13.3/5) C.06 (19.1/5)
+ 
+ .. index:: AI12-0364 (Ada 2022 feature)
+ 
+ * *AI12-0364 Add a modular atomic arithmetic package (0000-00-00)*
+ 
+   Generalize support for atomic integer operations to extend to modular types. Add new predefined generic package,
+   ``System.Atomic_Operations.Modular_Arithmetic``.
+ 
+   RM references: C.06.05 (0) C.06.04 (1/5) C.06.04 (2/5) C.06.04 (3/5)
+   C.06.04 (9/5)
+ 
+ .. index:: AI12-0366 (Ada 2022 feature)
+ 
+ * *AI12-0366 Changes to Big_Integer and Big_Real (0000-00-00)*
+ 
+   Simplify ``Big_Integer ``and ``Big_Real`` specs by eliminating explicit support for creating "invalid" values. No more
+   ``Optional_Big_[Integer,Real]`` types.
+ 
+   RM references: A.05.06 (0) A.05.07 (0)
+ 
+ .. index:: AI12-0367 (Ada 2022 feature)
+ 
+ * *AI12-0367 Glitches in aspect specifications (0000-00-00)*
+ 
+   The AI clarifies a few wording omissions. For example, a specified Small value for a fixed point type has to be positive.
+ 
+   RM references: 3.05.09 (8/2) 3.05.10 (2/1) 13.01 (9.1/5) 13.14 (10)
+ 
+ .. index:: AI12-0368 (Ada 2022 feature)
+ 
+ * *AI12-0368 Declare expressions can be static (2020-05-30)*
+ 
+   AI12-0368 allows declare expressions to be static in Ada 2022.
+ 
+   RM references: 4.09 (8) 4.09 (12.1/3) 4.09 (17) 6.01.01 (24.2/5) 6.01.01
+   (24.3/5) 6.01.01 (24.4/5) 6.01.01 (24.5/5) C.04 (9)
+ 
+ .. index:: AI12-0369 (Ada 2022 feature)
+ 
+ * *AI12-0369 Relaxing barrier restrictions (2020-03-25)*
+ 
+   The definitions of the ``Simple_Barriers`` and ``Pure_Barriers`` restrictions were modified by this AI, replacing uses of "statically denotes" with "statically names". This means that in many cases (but not all) a barrier expression that references a subcomponent of a component of the protected type while subject to either of the two restrictions is now allowed; with the previous restriction definitions, such a barrier expression would not have been legal.
+ 
+   RM references: D.07 (1.3/5) D.07 (10.12/5)
+ 
+ .. index:: AI12-0372 (Ada 2022 feature)
+ 
+ * *AI12-0372 Static accessibility of "master of the call" (2020-09-09)*
+ 
+   Add an extra compile-time accessibility check for explicitly aliased parameters needed to prevent dangling references.
+ 
+   RM references: 3.10.02 (10.5/5) 3.10.02 (19.3/4) 6.04.01 (6.4/3)
+ 
+ .. index:: AI12-0373 (Ada 2022 feature)
+ 
+ * *AI12-0373 Bunch of fixes (0000-00-00)*
+ 
+   Small clarifications to various RM entries with minor impact on compiler implementation.
+ 
+   RM references: 3.01 (1) 4.02 (4) 4.02 (8/2) 4.02.01 (3/5) 4.02.01 (4/5)
+   4.02.01 (5/5) 4.09 (17.3/5) 6.01.01 (41/5) 8.05.04 (4/3) 13.01.01
+   (4/3) 13.01.01 (11/3) 13.14 (3/5)
+ 
+ .. index:: AI12-0376 (Ada 2022 feature)
+ 
+ * *AI12-0376 Representation changes finally allowed for untagged derived types (0000-00-00)*
+ 
+   A change of representation for a derived type is allowed in some previously-illegal cases where a change of representation is required to implement a call to a derived subprogram.
+ 
+   RM references: 13.01 (10/4)
+ 
+ .. index:: AI12-0377 (Ada 2022 feature)
+ 
+ * *AI12-0377 View conversions and out parameters of types with Default_Value revisited (2020-06-17)*
+ 
+   This AI clarifies that an actual of an out parameter that is a view conversion
+   is illegal if either the target or operand type has Default_Value specified while the other does not.
+ 
+   RM references: 6.04.01 (5.1/4) 6.04.01 (5.2/4) 6.04.01 (5.3/4) 6.04.01
+   (13.1/4) 6.04.01 (13.2/4) 6.04.01 (13.3/4) 6.04.01 (13.4/4) 6.04.01 (15/3)
+ 
+ .. index:: AI12-0381 (Ada 2022 feature)
+ 
+ * *AI12-0381 Tag of a delta aggregate (0000-00-00)*
+ 
+   In the case of a delta aggregate of a specific tagged type, the tag of the aggregate comes from the specific type (as opposed to somehow from the base object).
+ 
+   RM references: 4.03.04 (14/5)
+ 
+ .. index:: AI12-0382 (Ada 2022 feature)
+ 
+ * *AI12-0382 Loosen type-invariant overriding requirement of AI12-0042-1 (0000-00-00)*
+ 
+   The AI relaxes some corner-case legality rules about type invariants that were added by AI12-0042-1.
+ 
+   RM references: 7.3.2(6.1/4)
+ 
+ .. index:: AI12-0383 (Ada 2022 feature)
+ 
+ * *AI12-0383 Renaming values (2020-06-17)*
+ 
+   This AI allow names that denote values rather than objects to nevertheless be
+   renamed using an object renaming.
+ 
+   RM references: 8.05.01 (1) 8.05.01 (4) 8.05.01 (4.1/2) 8.05.01 (6/2) 8.05.01 (8)
+ 
+ .. index:: AI12-0384-2 (Ada 2022 feature)
+ 
+ * *AI12-0384-2 Fixups for Put_Image and Text_Buffers (2021-04-29)*
+ 
+   In GNAT's initial implementation of the Ada 2022 ``Put_Image`` aspect and
+   attribute, buffering was performed using a GNAT-defined package,
+   ``Ada.Strings.Text_Output``. Ada 2022 requires a different package, Ada.``Strings.Text_Buffers``, for this role, and that package is now provided, and the older package is eliminated.
+ 
+   RM references: 4.10 (0) A.04.12 (0)
+ 
+ .. index:: AI12-0385 (Ada 2022 feature)
+ 
+ * *AI12-0385 Predefined shifts and rotates should be static (0000-00-00)*
+ 
+   This AI allows Shift and Rotate operations in static expressions. GNAT implements this AI partially.
+ 
+   RM references: 4.09 (20)
+ 
+ .. index:: AI12-0389 (Ada 2022 feature)
+ 
+ * *AI12-0389 Ignoring unrecognized aspects (2020-10-08)*
+ 
+   Two new restrictions, ``No_Unrecognized_Aspects`` and ``No_Unrecognized_Pragmas``, are available to make the compiler emit error messages on unrecognized pragmas and aspects.
+ 
+   RM references: 13.01.01 (38/3) 13.12.01 (6.3/3)
+ 
+ .. index:: AI12-0394 (Ada 2022 feature)
+ 
+ * *AI12-0394 Named Numbers and User-Defined Numeric Literals (2020-10-05)*
+ 
+   Ada 2022 allows using integer named numbers with types that have an
+   ``Integer_Literal`` aspect. Similarly, real named numbers may now be used with types that have a ``Real_Literal`` aspect with an overloading that takes two strings, to be used in particular  with
+   ``Ada.Numerics.Big_Numbers.Big_Reals``.
+ 
+   RM references: 3.03.02 (3) 4.02.01 (4/5) 4.02.01 (8/5) 4.02.01 (12/5)
+   4.02.01 (13/5) 4.09 (5)
+ 
+ .. index:: AI12-0395 (Ada 2022 feature)
+ 
+ * *AI12-0395 Allow aspect_specifications on formal parameters (0000-00-00)*
+ 
+   Change syntax rules to allow aspect_specifications on formal parameters, if an implementation if an implementation wants to define one. Currently, GNAT doesn't define any such aspect_specifications.
+ 
+   RM references: 6.01 (15/3)
+ 
+ .. index:: AI12-0397 (Ada 2022 feature)
+ 
+ * *AI12-0397 Default_Initial_Condition applied to derived type (2020-12-09)*
+ 
+   The compiler now implements the rules for resolving ``Default_Initial_Condition``
+   expressions that involve references to the current instance of types with the aspect, as specified by this AI. The type of the current instance is defined to be like a formal derived type, so for a derived type that inherits the aspect, a call passing the current instance to a primitive means that the call will resolve to invoke the corresponding primitive of the descendant type. This also now permits calls to abstract primitives to occur within the aspect expression of an abstract type.
+ 
+   RM references: 7.03.03 (3/5) 7.03.03 (6/5) 7.03.03 (8/5)
+ 
+ .. index:: AI12-0398 (Ada 2022 feature)
+ 
+ * *AI12-0398 Most declarations should have aspect specifications (2020-11-19)*
+ 
+   It is now possible to specify aspects for discriminant specifications, extended return object declarations, and entry index specifications. This is an extension added for Ada 2022 by this AI.
+ 
+   RM references: 3.07 (5/2) 6.03.01 (25) 6.05 (2.1/3) 9.05.02 (8)
+ 
+ .. index:: AI12-0399 (Ada 2022 feature)
+ 
+ * *AI12-0399 Aspect specification for Preelaborable_Initialization (0000-00-00)*
+ 
+   Semantics-preserving presentation change. Replace ``Preelaborable_Initialization`` pragmas with equivalent aspect specs in the listed predefined packages. GNAT follows the guidance of this AI partially.
+ 
+   RM references: 9.05 (53/5) 3.09 (6/5) 7.06 (5/2) 7.06 (7/2) 11.04.01 (2/5)
+   11.04.01 (3/2) 13.11 (6/2) 13.11.04 (4/5) 13.11.04 (5/5) 13.13.01
+   (3/2) A.04.02 (4/2) A.04.02 (20/2) A.04.05 (4/2) A.04.07 (4/2)
+   A.04.07 (20/2) A.04.08 (4/2) A.04.08 (20/2) A.12.01 (5/4) A.18.02
+   (8/5) A.18.02 (9/2) A.18.02 (79.2/5) A.18.02 (79.3/5) A.18.03
+   (6/5) A.18.03 (7/2) A.18.03 (50.2/5) A.18.03 (50.3/5) A.18.05
+   (3/5) A.18.05 (4/2) A.18.05 (37.3/5) A.18.05 (37.4/5) A.18.06
+   (4/5) A.18.06 (5/2) A.18.06 (51.4/5) A.18.06 (51.5/5) A.18.08
+   (3/5) A.18.08 (4/2) A.18.08 (58.2/5) A.18.08 (58.3/5) A.18.09
+   (4/5) A.18.09 (5/2) A.18.09 (74.2/5) A.18.09 (74.3/5) A.18.10
+   (8/5) A.18.10 (9/3) A.18.10 (70.2/5) A.18.10 (70.3/5) A.18.18
+   (6/5) B.03.01 (5/2) C.07.01 (2/5) G.01.01 (4/2)
+ 
+ .. index:: AI12-0400 (Ada 2022 feature)
+ 
+ * *AI12-0400 Ambiguities associated with Vector Append and container aggregates (0000-00-00)*
+ 
+   Change the names of subprograms in the predefined Vector containers from ``Append`` to ``Append_Vector`` and from ``Prepend`` to ``Prepend_Vector`` in order to resolve some ambiguity problems. GNAT adds the subprograms with new names but also keeps the old ones for backward compatibility.
+ 
+   RM references: A.18.02 (8/5) A.18.02 (36/5) A.18.02 (37/5) A.18.02 (38/5)
+   A.18.02 (44/5) A.18.02 (46/5) A.18.02 (47/5) A.18.02 (58/5)
+   A.18.02 (79.2/5) A.18.02 (150/5) A.18.02 (151/5) A.18.02 (152/5)
+   A.18.02 (153/5) A.18.02 (154/5) A.18.02 (155/5) A.18.02 (156/5)
+   A.18.02 (168/5) A.18.02 (169/5) A.18.02 (172/5) A.18.02 (173/5)
+   A.18.02 (174/5) A.18.02 (175.1/5) A.18.03 (23/5) A.18.03 (23.1/5)
+   A.18.03 (58.2/5) A.18.03 (96/5) A.18.03 (97.1/5)
+ 
+ .. index:: AI12-0401 (Ada 2022 feature)
+ 
+ * *AI12-0401 Renaming of qualified expression of variable (2020-10-31)*
+ 
+   Ada 2022 AI12-0401 restricts renaming of a qualified expression to cases where
+   the operand is a constant, or the target subtype statically matches the nominal subtype of the operand, or is unconstrained with no predicates, to prevent setting variables to values outside their range or constraints.
+ 
+   RM references: 3.03 (23.2/3) 8.05.01 (4.7/5) 8.05.01 (5/3)
+ 
+ .. index:: AI12-0402 (Ada 2022 feature)
+ 
+ * *AI12-0402 Master of a function call with elementary result type (2026-01-07)*
+ 
+   This AI restricts the rule that makes the master of a function call, which
+   is used to directly initialize part of an object, that of the object being
+   initialized, to the case where the result type of the function is composite.
+ 
+   RM references: 3.10.2 (10.2/5)
+ 
+ .. index:: AI12-0409 (Ada 2022 feature)
+ 
+ * *AI12-0409 Preelaborable_Initialization and bounded containers (2021-06-23)*
+ 
+   As defined by this AI, the ``Preelaborable_Initializatio`` aspect now has a
+   corresponding attribute of the same name. Types declared within a generic package specification are permitted to specify the expression of a ``Prelaborable_Initialization`` aspect by including one or more references to the attribute applied to a formal private or formal derived type conjoined by ``and`` operators. This permits the full type of a private type with such an aspect expression to have components of the named formal types, and such a type will have preelaborable initialization in an instance when the
+   actual types for all referenced formal types have preelaborable initialization.
+ 
+   RM references: 10.02.01 (4.1/2) 10.02.01 (4.2/2) 10.02.01 (11.1/2)
+   10.02.01 (11.2/2) 10.02.01 (11.6/2) 10.02.01 (11.7/2) 10.02.01
+   (11.8/2) 13.01 (11/3) A.18.19 (5/5) A.18.20 (5/5) A.18.21 (5/5)
+   A.18.22 (5/5) A.18.23 (5/5) A.18.24 (5/5) A.18.25 (5/5) A.18.32
+   (6/5) J.15.14 (0)
+ 
+ .. index:: AI12-0411 (Ada 2022 feature)
+ 
+ * *AI12-0411 Add "bool" to Interfaces.C (0000-00-00)*
+ 
+   RM references: B.03 (13) B.03 (43/2) B.03 (65.1/4)
+ 
+ .. index:: AI12-0412 (Ada 2022 feature)
+ 
+ * *AI12-0412 Abstract Pre/Post'Class on primitive of abstract type (2021-05-19)*
+ 
+   In Ada 2022, by AI12-0412, it's legal to specify Pre'Class and Post'Class
+   aspects on nonabstract primitive subprograms of an abstract type, but if the
+   expression of such an aspect is nonstatic, then it's illegal to make a nondispatching call to such a primitive, to apply ``'Access`` to it, or to pass such a primitive as an actual subprogram for a concrete formal subprogram in a generic instantiation.
+ 
+   RM references: 6.01.01 (18.2/4)
+ 
+ .. index:: AI12-0413 (Ada 2022 feature)
+ 
+ * *AI12-0413 Reemergence of "=" when defined to be abstract (0000-00-00)*
+ 
+   The AI clarifies rules about operator reemergence in instances, and nondispatching calls to abstract subprograms.
+ 
+   RM references: 3.09.03 (7) 4.05.02 (14.1/3) 4.05.02 (24.1/3) 12.05 (8/3)
+ 
+ .. index:: AI12-0423 (Ada 2022 feature)
+ 
+ * *AI12-0423 Aspect inheritance fixups (0000-00-00)*
+ 
+   Clarify that the No_Return aspect behaves as one would expect for an inherited subprogram and that inheritance works as one would expect for a multi-part aspect whose value is specified via an aggregate (e.g., the Aggregate aspect).
+ 
+   RM references: 6.05.01 (3.3/3) 13.01 (15.7/5) 13.01 (15.8/5)
+ 
+ .. index:: AI12-0432 (Ada 2022 feature)
+ 
+ * *AI12-0432 View conversions of assignments and predicate checks (2021-05-05)*
+ 
+   When a predicate applies to a tagged type, a view conversion to that type
+   normally requires a predicate check. However, as specified by AI12-0432, when the view conversion appears as the target of an assignment, a predicate check is not applied to the object in the conversion.
+ 
+   RM references: 3.02.04 (31/5) 4.06 (51.1/5)
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/obsolescent_features.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/obsolescent_features.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/obsolescent_features.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/obsolescent_features.rst	Thu Apr 23 11:07:32 2026
*************** Obsolescent Features
*** 5,13 ****
  ********************
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are preferred ways of achieving
! the same effect. These features are provided solely for historical
! compatibility purposes.
  
  .. _pragma_No_Run_Time:
  
--- 5,22 ----
  ********************
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are other, more appropriate, ways
! of achieving the same effect. These features are provided solely for
! historical compatibility purposes.
! 
! .. _polyORB:
! 
! PolyORB
! ========
! 
! PolyORB is a deprecated product. It will be baselined with the GNAT Pro
! release 28. After this release, there will be no new versions of this
! product. Contact AdaCore support to get recommendations for replacements.
  
  .. _pragma_No_Run_Time:
  
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/representation_clauses_and_pragmas.rst	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
--- 1,8 ----
  .. role:: switch(samp)
  
+ .. role:: ada(code)
+    :language: ada
+ 
  .. _Representation_Clauses_and_Pragmas:
  
  **********************************
*************** The default alignment values are as foll
*** 40,47 ****
  
    For elementary types, the alignment is the minimum of the actual size of
    objects of the type divided by ``Storage_Unit``,
!   and the maximum alignment supported by the target.
!   (This maximum alignment is given by the GNAT-specific attribute
    ``Standard'Maximum_Alignment``; see :ref:`Attribute_Maximum_Alignment`.)
  
    .. index:: Maximum_Alignment attribute
--- 43,50 ----
  
    For elementary types, the alignment is the minimum of the actual size of
    objects of the type divided by ``Storage_Unit``,
!   and the maximum default alignment supported by the target.
!   (This maximum default alignment is given by the GNAT-specific attribute
    ``Standard'Maximum_Alignment``; see :ref:`Attribute_Maximum_Alignment`.)
  
    .. index:: Maximum_Alignment attribute
*************** The default alignment values are as foll
*** 96,103 ****
    strict alignment.
  
  An alignment clause may specify a larger alignment than the default value
! up to some maximum value dependent on the target (obtainable by using the
! attribute reference ``Standard'Maximum_Alignment``). It may also specify
  a smaller alignment than the default value for enumeration, integer and
  fixed point types, as well as for record types, for example
  
--- 99,105 ----
    strict alignment.
  
  An alignment clause may specify a larger alignment than the default value
! up to some maximum value dependent on the target. It may also specify
  a smaller alignment than the default value for enumeration, integer and
  fixed point types, as well as for record types, for example
  
*************** description of the ``Object_Size`` attri
*** 561,584 ****
  To get a feel for the difference, consider the following examples (note
  that in each case the base is ``Short_Short_Integer`` with a size of 8):
  
! +---------------------------------------------+-------------+-------------+
! |Type or subtype declaration                  | Object_Size |   Value_Size|
! +=============================================+=============+=============+
! |``type x1 is range 0 .. 5;``                 |  8          |    3        |
! +---------------------------------------------+-------------+-------------+
! |``type x2 is range 0 .. 5;``                 | 16          |   12        |
! |``for x2'size use 12;``                      |             |             |
! +---------------------------------------------+-------------+-------------+
! |``subtype x3 is x2 range 0 .. 3;``           | 16          |    2        |
! +---------------------------------------------+-------------+-------------+
! |``subtype x4 is x2'base range 0 .. 10;``     |  8          |    4        |
! +---------------------------------------------+-------------+-------------+
! |``dynamic : x2'Base range -64 .. +63;``      |             |             |
! +---------------------------------------------+-------------+-------------+
! |``subtype x5 is x2 range 0 .. dynamic;``     | 16          |    3*       |
! +---------------------------------------------+-------------+-------------+
! |``subtype x6 is x2'base range 0 .. dynamic;``|  8          |    7*       |
! +---------------------------------------------+-------------+-------------+
  
  Note: the entries marked '*' are not actually specified by the Ada
  Reference Manual, which has nothing to say about size in the dynamic
--- 563,586 ----
  To get a feel for the difference, consider the following examples (note
  that in each case the base is ``Short_Short_Integer`` with a size of 8):
  
! +------------------------------------------------+-------------+-------------+
! |Type or subtype declaration                     | Object_Size |   Value_Size|
! +================================================+=============+=============+
! |:ada:`type X1 is range 0 .. 5;`                 |  8          |    3        |
! +------------------------------------------------+-------------+-------------+
! |:ada:`type X2 is range 0 .. 5;                  | 16          |   12        |
! |for X2'Size use 12;`                            |             |             |
! +------------------------------------------------+-------------+-------------+
! |:ada:`subtype X3 is X2 range 0 .. 3;`           | 16          |    2        |
! +------------------------------------------------+-------------+-------------+
! |:ada:`subtype X4 is X2'Base range 0 .. 10;`     |  8          |    4        |
! +------------------------------------------------+-------------+-------------+
! |:ada:`Dynamic : X2'Base range -64 .. +63;`      |             |             |
! +------------------------------------------------+-------------+-------------+
! |:ada:`subtype X5 is X2 range 0 .. Dynamic;`     | 16          |    3*       |
! +------------------------------------------------+-------------+-------------+
! |:ada:`subtype X6 is X2'Base range 0 .. Dynamic;`|  8          |    7*       |
! +------------------------------------------------+-------------+-------------+
  
  Note: the entries marked '*' are not actually specified by the Ada
  Reference Manual, which has nothing to say about size in the dynamic
*************** machines with strict alignment requireme
*** 1580,1587 ****
  checks (at compile time if possible, generating a warning, or at execution
  time with a run-time check) that the alignment is appropriate.  If the
  run-time check fails, then ``Program_Error`` is raised.  This run-time
! check is suppressed if range checks are suppressed, or if the special GNAT
! check Alignment_Check is suppressed, or if
  ``pragma Restrictions (No_Elaboration_Code)`` is in effect. It is also
  suppressed by default on non-strict alignment machines (such as the x86).
  
--- 1582,1588 ----
  checks (at compile time if possible, generating a warning, or at execution
  time with a run-time check) that the alignment is appropriate.  If the
  run-time check fails, then ``Program_Error`` is raised.  This run-time
! check is suppressed if the GNAT check Alignment_Check is suppressed, or if
  ``pragma Restrictions (No_Elaboration_Code)`` is in effect. It is also
  suppressed by default on non-strict alignment machines (such as the x86).
  
*************** conventions, and for example records are
*** 1872,1878 ****
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are four exceptions to this general rule:
  
  * *Convention Fortran and array subtypes*.
  
--- 1873,1879 ----
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are three exceptions to this general rule:
  
  * *Convention Fortran and array subtypes*.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/security_hardening_features.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/security_hardening_features.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/security_hardening_features.rst	Thu Apr 23 11:07:32 2026
*************** are provided by GNAT.
*** 10,15 ****
--- 10,17 ----
  The features in this chapter are currently experimental and subject to
  change.
  
+ These features are supported only by the GCC back end, not by LLVM.
+ 
  .. Register Scrubbing:
  
  Register Scrubbing
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/specialized_needs_annexes.rst	Thu Apr 23 11:07:32 2026
***************
*** 4,12 ****
  Specialized Needs Annexes
  *************************
  
! Ada 95, Ada 2005, and Ada 2012 define a number of Specialized Needs Annexes, which are not
! required in all implementations.  However, as described in this chapter,
! GNAT implements all of these annexes:
  
  *Systems Programming (Annex C)*
    The Systems Programming Annex is fully implemented.
--- 4,10 ----
  Specialized Needs Annexes
  *************************
  
! Ada 95, Ada 2005, Ada 2012, and Ada 2022 define a number of Specialized Needs Annexes, which are not required in all implementations.  However, as described in this chapter, GNAT implements all of these annexes:
  
  *Systems Programming (Annex C)*
    The Systems Programming Annex is fully implemented.
*************** GNAT implements all of these annexes:
*** 18,26 ****
  
  *Distributed Systems (Annex E)*
    Stub generation is fully implemented in the GNAT compiler.  In addition,
!   a complete compatible PCS is available as part of the GLADE system,
!   a separate product.  When the two
!   products are used in conjunction, this annex is fully implemented.
  
  
  *Information Systems (Annex F)*
--- 16,23 ----
  
  *Distributed Systems (Annex E)*
    Stub generation is fully implemented in the GNAT compiler.  In addition,
!   a complete compatible PCS is available as part of ``PolyORB``,
!   a separate product. **NB!** See the note in :ref:`polyORB` regarding the lifetime of this product.
  
  
  *Information Systems (Annex F)*
*************** GNAT implements all of these annexes:
*** 34,37 ****
  *Safety and Security / High-Integrity Systems (Annex H)*
    The Safety and Security Annex (termed the High-Integrity Systems Annex
    in Ada 2005) is fully implemented.
- 
--- 31,33 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/standard_and_implementation_defined_restrictions.rst	Thu Apr 23 11:07:32 2026
*************** Max_Tasks
*** 95,105 ****
  ---------
  .. index:: Max_Tasks
  
! [RM D.7] Specifies the maximum number of task that may be created, not
  counting the creation of the environment task.  Violations of this
! restriction with a value of zero are detected at compile
! time. Violations of this restriction with values other than zero cause
! Storage_Error to be raised.
  
  No_Abort_Statements
  -------------------
--- 95,106 ----
  ---------
  .. index:: Max_Tasks
  
! [RM D.7] Specifies the maximum number of tasks that may be created, not
  counting the creation of the environment task.  Violations of this
! restriction with a value of zero are detected at compile time in all
! contexts.  Violations of this restriction with a value greater than
! zero are detected for library-level tasks at compile time, but are
! not detected for local tasks at all.
  
  No_Abort_Statements
  -------------------
*************** must define with the following profile:
*** 333,341 ****
                   "__gnat_last_chance_handler");
  
  
! The parameter is a C null-terminated string representing a message to be
! associated with the exception (typically the source location of the raise
! statement generated by the compiler). The Line parameter when nonzero
  represents the line number in the source program where the raise occurs.
  
  No_Exception_Propagation
--- 334,342 ----
                   "__gnat_last_chance_handler");
  
  
! The ``Source_Location`` parameter is a C null-terminated string representing a
! message to be associated with the exception (typically the source location of
! the raise statement generated by the compiler). The Line parameter when nonzero
  represents the line number in the source program where the raise occurs.
  
  No_Exception_Propagation
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/the_gnat_library.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm/the_gnat_library.rst	Thu Apr 23 11:07:32 2026
*************** sequences for various UCS input formats.
*** 663,668 ****
--- 663,680 ----
  General routines for swapping the bytes in 2-, 4-, and 8-byte quantities.
  Machine-specific implementations are available in some cases.
  
+ .. _`GNAT.C_Time_(g-c_time.ads)`:
+ 
+ ``GNAT.C_Time`` (:file:`g-c_time.ads`)
+ ======================================
+ 
+ .. index:: GNAT.C_Time (g-c_time.ads)
+ 
+ .. index:: Time
+ 
+ Provides the time_t, timeval and timespec types corresponding to the C
+ types defined by the OS, as well as various conversion functions.
+ 
  .. _`GNAT.Calendar_(g-calend.ads)`:
  
  ``GNAT.Calendar`` (:file:`g-calend.ads`)
*************** Machine-specific implementations are ava
*** 674,681 ****
  
  Extends the facilities provided by ``Ada.Calendar`` to include handling
  of days of the week, an extended ``Split`` and ``Time_Of`` capability.
- Also provides conversion of ``Ada.Calendar.Time`` values to and from the
- C ``timeval`` format.
  
  .. _`GNAT.Calendar.Time_IO_(g-catiio.ads)`:
  
--- 686,691 ----
*************** technically an implementation-defined ad
*** 2037,2043 ****
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with ``GLADE``.
  
  .. _`System.Pool_Global_(s-pooglo.ads)`:
  
--- 2047,2054 ----
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with ``PolyORB``.  **NB!** See the note in :ref:`polyORB` regarding
! the lifetime of this product.
  
  .. _`System.Pool_Global_(s-pooglo.ads)`:
  
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_rm.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_rm.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_rm.rst	Thu Apr 23 11:07:32 2026
*************** GNAT Reference Manual
*** 54,60 ****
     gnat_rm/interfacing_to_other_languages
     gnat_rm/specialized_needs_annexes
     gnat_rm/implementation_of_specific_ada_features
!    gnat_rm/implementation_of_ada_2012_features
     gnat_rm/gnat_language_extensions
     gnat_rm/security_hardening_features
     gnat_rm/obsolescent_features
--- 54,60 ----
     gnat_rm/interfacing_to_other_languages
     gnat_rm/specialized_needs_annexes
     gnat_rm/implementation_of_specific_ada_features
!    gnat_rm/implementation_of_ada_2022_features
     gnat_rm/gnat_language_extensions
     gnat_rm/security_hardening_features
     gnat_rm/obsolescent_features
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/about_this_guide.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/about_this_guide.rst	Thu Apr 23 11:07:32 2026
*************** What You Should Know before Reading This
*** 78,84 ****
  This guide assumes a basic familiarity with the Ada 95 language, as
  described in the International Standard ANSI/ISO/IEC-8652:1995, January
  1995.
! Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in
  the GNAT documentation package.
  
  
--- 78,84 ----
  This guide assumes a basic familiarity with the Ada 95 language, as
  described in the International Standard ANSI/ISO/IEC-8652:1995, January
  1995.
! Reference manuals for Ada 95, Ada 2005, Ada 2012 and Ada 2022 are included in
  the GNAT documentation package.
  
  
*************** Related Information
*** 88,98 ****
  For further information about Ada and related tools, please refer to the
  following documents:
  
! * :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`, and
!   :title:`Ada 2012 Reference Manual`, which contain reference
!   material for the several revisions of the Ada language standard.
  
! * :title:`GNAT Reference_Manual`, which contains all reference material for the GNAT
    implementation of Ada.
  
  * :title:`Using GNAT Studio`, which describes the GNAT Studio
--- 88,99 ----
  For further information about Ada and related tools, please refer to the
  following documents:
  
! * :title:`Ada 95 Reference Manual`, :title:`Ada 2005 Reference Manual`,
!   :title:`Ada 2012 Reference Manual`,  and :title:`Ada 2022 Reference Manual`,
!   which contain reference material for the several revisions of the Ada language
!   standard.
  
! * :title:`GNAT Reference Manual`, which contains all reference material for the GNAT
    implementation of Ada.
  
  * :title:`Using GNAT Studio`, which describes the GNAT Studio
*************** following documents:
*** 104,114 ****
  * :title:`Debugging with GDB`,
    for all details on the use of the GNU source-level debugger.
  
- * :title:`GNU Emacs Manual`,
-   for full information on the extensible editor and programming
-   environment Emacs.
- 
- 
  Conventions
  ===========
  .. index:: Conventions, typographical
--- 105,110 ----
*************** in this guide:
*** 133,141 ****
  
  * Examples are described by text
  
!   ::
  
!     and then shown this way.
  
  * Commands that you enter are shown as preceded by a prompt string
    comprising the ``$`` character followed by a space.
--- 129,137 ----
  
  * Examples are described by text
  
!   .. code-block:: text
  
!      and then shown this way.
  
  * Commands that you enter are shown as preceded by a prompt string
    comprising the ``$`` character followed by a space.
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst	Thu Apr 23 11:07:32 2026
*************** compiled.
*** 957,978 ****
  .. index:: cannot generate code
  
  If you attempt to compile any of these files, you will get one of the
! following error messages (where ``fff`` is the name of the file you
  compiled):
  
!   ::
  
!     cannot generate code for file ``fff`` (package spec)
!     to check package spec, use -gnatc
  
!     cannot generate code for file ``fff`` (missing subunits)
!     to check parent unit, use -gnatc
  
!     cannot generate code for file ``fff`` (subprogram spec)
!     to check subprogram spec, use -gnatc
  
!     cannot generate code for file ``fff`` (subunit)
!     to check subunit, use -gnatc
  
  
  As indicated by the above error messages, if you want to submit
--- 957,974 ----
  .. index:: cannot generate code
  
  If you attempt to compile any of these files, you will get one of the
! following error messages (where :file:`fff` is the name of the file you
  compiled):
  
! .. code-block:: text
  
!    cannot generate code for file fff (package spec)
  
!    cannot generate code for file fff (missing subunits)
  
!    cannot generate code for file fff (subprogram spec)
  
!    cannot generate code for file fff (subunit)
  
  
  As indicated by the above error messages, if you want to submit
*************** Alphabetical List of All Switches
*** 1608,1615 ****
  
  .. index:: -gnateG  (gcc)
  
! :switch:`-gnateG`
!   Save result of preprocessing in a text file.
  
  
  .. index:: -gnateH  (gcc)
--- 1604,1615 ----
  
  .. index:: -gnateG  (gcc)
  
! :switch:`-gnateG[bce]`
!   Save result of preprocessing in a text file. An optional character (b, c,
!   or e) can be appended to indicate that filtered lines are to be replaced by
!   blank lines, comment lines that include the filtered line, or empty comment
!   lines ("--!"), respectively. The default is to replace filtered lines with
!   blank lines.
  
  
  .. index:: -gnateH  (gcc)
*************** Alphabetical List of All Switches
*** 1933,1945 ****
    Ignore representation clauses. When this switch is used,
    representation clauses are treated as comments. This is useful
    when initially porting code where you want to ignore rep clause
!   problems, and also for compiling foreign code (particularly
!   for use with ASIS). The representation clauses that are ignored
!   are: enumeration_representation_clause, record_representation_clause,
!   and attribute_definition_clause for the following attributes:
!   Address, Alignment, Bit_Order, Component_Size, Machine_Radix,
!   Object_Size, Scalar_Storage_Order, Size, Small, Stream_Size,
!   and Value_Size. Pragma Default_Scalar_Storage_Order is also ignored.
    Note that this option should be used only for compiling -- the
    code is likely to malfunction at run time.
  
--- 1933,1945 ----
    Ignore representation clauses. When this switch is used,
    representation clauses are treated as comments. This is useful
    when initially porting code where you want to ignore rep clause
!   problems, and also for compiling foreign code. The representation
!   clauses that are ignored are: enumeration_representation_clause,
!   record_representation_clause, and attribute_definition_clause for the
!   following attributes: Address, Alignment, Bit_Order, Component_Size,
!   Machine_Radix, Object_Size, Scalar_Storage_Order, Size, Small,
!   Stream_Size, and Value_Size.
!   Pragma Default_Scalar_Storage_Order is also ignored.
    Note that this option should be used only for compiling -- the
    code is likely to malfunction at run time.
  
*************** Alphabetical List of All Switches
*** 2112,2118 ****
  
  .. index:: -gnatR  (gcc)
  
! :switch:`-gnatR[0|1|2|3|4][e][j][m][s]`
    Output representation information for declared types, objects and
    subprograms. Note that this switch is not allowed if a previous
    :switch:`-gnatD` switch has been given, since these two switches
--- 2112,2118 ----
  
  .. index:: -gnatR  (gcc)
  
! :switch:`-gnatR[0|1|2|3|4][e][h][m][j][s]`
    Output representation information for declared types, objects and
    subprograms. Note that this switch is not allowed if a previous
    :switch:`-gnatD` switch has been given, since these two switches
*************** of the kinds of warnings that are genera
*** 2736,2744 ****
  
  * Unreferenced or unmodified variables. Note that a special
    exemption applies to variables which contain any of the substrings
!   ``DISCARD, DUMMY, IGNORE, JUNK, UNUSED``, in any casing. Such variables
!   are considered likely to be intentionally used in a situation where
!   otherwise a warning would be given, so warnings of this kind are
    always suppressed for such variables.
  
  * Address overlays that could clobber memory
--- 2736,2744 ----
  
  * Unreferenced or unmodified variables. Note that a special
    exemption applies to variables which contain any of the substrings
!   ``DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP`` in any casing. Such
!   variables are considered likely to be intentionally used in a situation
!   where otherwise a warning would be given, so warnings of this kind are
    always suppressed for such variables.
  
  * Address overlays that could clobber memory
*************** of the pragma in the :title:`GNAT_Refere
*** 3583,3595 ****
  :switch:`-gnatwp`
    *Activate warnings on ineffective pragma Inlines.*
  
!   This switch activates warnings for failure of front end inlining
!   (activated by :switch:`-gnatN`) to inline a particular call. There are
!   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.
  
  
  .. index:: -gnatwP  (gcc)
--- 3583,3595 ----
  :switch:`-gnatwp`
    *Activate warnings on ineffective pragma Inlines.*
  
!   This switch activates warnings for failure of cross-unit inlining
!   (activated by :switch:`-gnatn`) to inline calls to a subprogram.
!   There are many reasons for not being able to inline these calls,
!   including most commonly that the subprogram body is too complex
!   to inline. The default is that such warnings are not given.
!   Warnings on ineffective inlining (within units) by the back end
!   can be activated separately, using the -Winline switch.
  
  
  .. index:: -gnatwP  (gcc)
*************** of the pragma in the :title:`GNAT_Refere
*** 3751,3757 ****
  
    * Assignment of an item to itself.
  
!   * Type conversion that converts an expression to its own type.
  
    * Use of the attribute ``Base`` where ``typ'Base`` is the same
      as ``typ``.
--- 3751,3757 ----
  
    * Assignment of an item to itself.
  
!   * Type conversion that converts an expression to its own subtype.
  
    * Use of the attribute ``Base`` where ``typ'Base`` is the same
      as ``typ``.
*************** switches refine this default behavior.
*** 5410,5474 ****
    This switch controls the mode used for computing intermediate
    arithmetic integer operations, and also enables overflow checking.
    For a full description of overflow mode and checking control, see
!   the 'Overflow Check Handling in GNAT' appendix in this
    User's Guide.
  
-   Overflow checks are always enabled by this switch. The argument
-   controls the mode, using the codes
- 
- 
-   *1 = STRICT*
-     In STRICT mode, intermediate operations are always done using the
-     base type, and overflow checking ensures that the result is within
-     the base type range.
- 
- 
-   *2 = MINIMIZED*
-     In MINIMIZED mode, overflows in intermediate operations are avoided
-     where possible by using a larger integer type for the computation
-     (typically ``Long_Long_Integer``). Overflow checking ensures that
-     the result fits in this larger integer type.
- 
- 
-   *3 = ELIMINATED*
-     In ELIMINATED mode, overflows in intermediate operations are avoided
-     by using multi-precision arithmetic. In this case, overflow checking
-     has no effect on intermediate operations (since overflow is impossible).
- 
-   If two digits are present after :switch:`-gnato` then the first digit
-   sets the mode for expressions outside assertions, and the second digit
-   sets the mode for expressions within assertions. Here assertions is used
-   in the technical sense (which includes for example precondition and
-   postcondition expressions).
- 
-   If one digit is present, the corresponding mode is applicable to both
-   expressions within and outside assertion expressions.
- 
-   If no digits are present, the default is to enable overflow checks
-   and set STRICT mode for both kinds of expressions. This is compatible
-   with the use of :switch:`-gnato` in previous versions of GNAT.
- 
-   .. index:: Machine_Overflows
- 
-   Note that the :switch:`-gnato??` switch does not affect the code generated
-   for any floating-point operations; it applies only to integer semantics.
-   For floating-point, GNAT has the ``Machine_Overflows``
-   attribute set to ``False`` and the normal mode of operation is to
-   generate IEEE NaN and infinite values on overflow or invalid operations
-   (such as dividing 0.0 by 0.0).
- 
-   The reason that we distinguish overflow checking from other kinds of
-   range constraint checking is that a failure of an overflow check, unlike
-   for example the failure of a range check, can result in an incorrect
-   value, but cannot cause random memory destruction (like an out of range
-   subscript), or a wild jump (from an out of range case value). Overflow
-   checking is also quite expensive in time and space, since in general it
-   requires the use of double length arithmetic.
- 
-   Note again that the default is :switch:`-gnato11` (equivalent to :switch:`-gnato1`),
-   so overflow checking is performed in STRICT mode by default.
- 
- 
  .. index:: -gnatE  (gcc)
  .. index:: Elaboration checks
  .. index:: Check, elaboration
--- 5410,5418 ----
    This switch controls the mode used for computing intermediate
    arithmetic integer operations, and also enables overflow checking.
    For a full description of overflow mode and checking control, see
!   the :ref:`Overflow_Check_Handling_in_GNAT` appendix in this
    User's Guide.
  
  .. index:: -gnatE  (gcc)
  .. index:: Elaboration checks
  .. index:: Check, elaboration
*************** Debugging Control
*** 6089,6095 ****
  
  .. index:: -gnatR  (gcc)
  
! :switch:`-gnatR[0|1|2|3|4][e][j][m][s]`
    This switch controls output from the compiler of a listing showing
    representation information for declared types, objects and subprograms.
    For :switch:`-gnatR0`, no information is output (equivalent to omitting
--- 6033,6039 ----
  
  .. index:: -gnatR  (gcc)
  
! :switch:`-gnatR[0|1|2|3|4][e][h][m][j][s]`
    This switch controls output from the compiler of a listing showing
    representation information for declared types, objects and subprograms.
    For :switch:`-gnatR0`, no information is output (equivalent to omitting
*************** Debugging Control
*** 6117,6133 ****
    extended representation information for record sub-components of records
    is included.
  
    If the switch is followed by an ``m`` (e.g. :switch:`-gnatRm`), then
    subprogram conventions and parameter passing mechanisms for all the
    subprograms are included.
  
!   If the switch is followed by a ``j`` (e.g., :switch:`-gnatRj`), then
    the output is in the JSON data interchange format specified by the
    ECMA-404 standard. The semantic description of this JSON output is
    available in the specification of the Repinfo unit present in the
    compiler sources.
  
!   If the switch is followed by an ``s`` (e.g., :switch:`-gnatR3s`), then
    the output is to a file with the name :file:`file.rep` where ``file`` is
    the name of the corresponding source file, except if ``j`` is also
    specified, in which case the file name is :file:`file.json`.
--- 6061,6081 ----
    extended representation information for record sub-components of records
    is included.
  
+   If the switch is followed by a ``h`` (e.g. :switch:`-gnatR3h`), then
+   the components of records are sorted by increasing offsets and holes
+   between consecutive components are flagged.
+ 
    If the switch is followed by an ``m`` (e.g. :switch:`-gnatRm`), then
    subprogram conventions and parameter passing mechanisms for all the
    subprograms are included.
  
!   If the switch is followed by a ``j`` (e.g. :switch:`-gnatRj`), then
    the output is in the JSON data interchange format specified by the
    ECMA-404 standard. The semantic description of this JSON output is
    available in the specification of the Repinfo unit present in the
    compiler sources.
  
!   If the switch is followed by an ``s`` (e.g. :switch:`-gnatR3s`), then
    the output is to a file with the name :file:`file.rep` where ``file`` is
    the name of the corresponding source file, except if ``j`` is also
    specified, in which case the file name is :file:`file.json`.
*************** passed between C and Ada as simple as pr
*** 8056,8070 ****
  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
--- 8004,8024 ----
  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 a
! subset of types: scalar types; records whose field offsets are known
! at compile time, including discriminated records fitting this
! description; and arrays. Records that have a field whose size or
! offset is only known at run time do not yet have correct debugging
! data. 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.
! 
! In some situations, a name in the source may not be available.
! Renamings are not currently emitted into the debugging data. When
! debugging a nested function, variables from enclosing scopes will not
! be available. You will have to examine those variables in their
! hosting frame.
  
  In addition, debugging information may be confusing if you have
  ``out`` parameters to subprograms. If you have a procedure with only
*************** We provide two options that you can use
*** 8112,8128 ****
  
  * ``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
  
--- 8066,8083 ----
  
  * ``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 explicitly
!   selecting GNAT LLVM in your existing GPR project file by adding
!   :code:`for Toolchain_Name ("Ada") use "GNAT_LLVM";`. You can also
!   generate an explicit toolchain configuration file with ``gprconfig`` and
!   use 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
  
*************** GNAT.
*** 8138,8142 ****
  
  .. only:: PRO
  
!   It provides the same runtimes with the exception that light runtimes
!   are not currently included with the native compilers.
--- 8093,8096 ----
  
  .. only:: PRO
  
!   It provides the same runtimes.
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/gnat_and_program_execution.rst	Thu Apr 23 11:07:32 2026
*************** This chapter covers several topics:
*** 23,28 ****
--- 23,29 ----
  * `Performing Dimensionality Analysis in GNAT`_
  * `Stack Related Facilities`_
  * `Memory Management Issues`_
+ * `Sanitizers for Ada`_
  
  .. _Running_and_Debugging_Ada_Programs:
  
*************** execution of this erroneous program:
*** 4133,4135 ****
--- 4134,4458 ----
  
    The allocation root #1 of the first example has been split in 2 roots #1
    and #3, thanks to the more precise associated backtrace.
+ 
+ .. _Sanitizers_for_Ada:
+ 
+ Sanitizers for Ada
+ ==================
+ 
+ .. index:: Sanitizers
+ 
+ This section explains how to use sanitizers with Ada code. Sanitizers offer code
+ instrumentation and run-time libraries that detect certain memory issues and
+ undefined behaviors during execution. They provide dynamic analysis capabilities
+ useful for debugging and testing.
+ 
+ While many sanitizer capabilities overlap with Ada's built-in runtime checks,
+ they are particularly valuable for identifying issues that arise from unchecked
+ features or low-level operations.
+ 
+ .. _AddressSanitizer:
+ 
+ AddressSanitizer
+ ----------------
+ 
+ .. index:: AddressSanitizer
+ .. index:: ASan
+ .. index:: -fsanitize=address
+ 
+ AddressSanitizer (aka ASan) is a memory error detector activated with the
+ :switch:`-fsanitize=address` switch. Note that many of the typical memory errors,
+ such as use after free or buffer overflow, are detected by Ada’s ``Access_Check``
+ and ``Index_Check``.
+ 
+ It can detect the following types of problems:
+ 
+ * Wrong memory overlay
+ 
+   A memory overlay is a situation in which an object of one type is placed at the
+   same memory location as a distinct object of a different type, thus overlaying
+   one object over the other in memory. When there is an overflow because the
+   objects do not overlap (like in the following example), the sanitizer can signal
+   it.
+ 
+     .. code-block:: ada
+ 
+        procedure Wrong_Size_Overlay is
+           type Block is array (Natural range <>) of Integer;
+ 
+           Block4 : aliased Block := (1 .. 4 => 4);
+           Block5 : Block (1 .. 5) with Address => Block4'Address;
+        begin
+           Block5 (Block5'Last) := 5;  --  Outside the object
+        end Wrong_Size_Overlay;
+ 
+   If the code is built with the :switch:`-fsanitize=address` and :switch:`-g` options,
+   the following error is shown at execution time:
+ 
+     ::
+ 
+         ...
+         SUMMARY: AddressSanitizer: stack-buffer-overflow wrong_size_overlay.adb:7 in _ada_wrong_size_overlay
+         ...
+ 
+ * Buffer overflow
+ 
+   Ada’s ``Index_Check`` detects buffer overflows caused by out-of-bounds array
+   access. If run-time checks are disabled, the sanitizer can still detect such
+   overflows at execution time the same way as it signalled the previous wrong
+   memory overlay. Note that if both the Ada run-time checks and the sanitizer
+   are enabled, the Ada run-time exception takes precedence.
+ 
+     .. code-block:: ada
+ 
+        procedure Buffer_Overrun is
+           Size : constant := 100;
+           Buffer : array (1 .. Size) of Integer := (others => 0);
+           Wrong_Index : Integer := Size + 1 with Export;
+        begin
+           -- Access outside the boundaries
+           Put_Line ("Value: " & Integer'Image (Buffer (Wrong_Index)));
+        end Buffer_Overrun;
+ 
+ * Use after lifetime
+ 
+   Ada’s ``Accessibility_Check`` helps prevent use-after-return and
+   use-after-scope errors by enforcing lifetime rules. When these checks are
+   bypassed using ``Unchecked_Access``, sanitizers can still detect such
+   violations during execution.
+ 
+     .. code-block:: ada
+ 
+        with Ada.Text_IO; use Ada.Text_IO;
+ 
+        procedure Use_After_Return is
+           type Integer_Access is access all Integer;
+           Ptr : Integer_Access;
+ 
+           procedure Inner;
+ 
+           procedure Inner is
+              Local : aliased Integer := 42;
+           begin
+              Ptr := Local'Unchecked_Access;
+           end Inner;
+ 
+        begin
+           Inner;
+           --  Accessing Local after it has gone out of scope
+           Put_Line ("Value: " & Integer'Image (Ptr.all));
+        end Use_After_Return;
+ 
+   If the code is built with the :switch:`-fsanitize=address` and :switch:`-g`
+   options, the following error is shown at execution time:
+ 
+     ::
+ 
+         ...
+         ==1793927==ERROR: AddressSanitizer: stack-use-after-return on address 0xf6fa1a409060 at pc 0xb20b6cb6cac0 bp 0xffffcc89c8b0 sp 0xffffcc89c8c8
+         READ of size 4 at 0xf6fa1a409060 thread T0
+             #0 0xb20b6cb6cabc in _ada_use_after_return use_after_return.adb:18
+             ...
+ 
+         Address 0xf6fa1a409060 is located in stack of thread T0 at offset 32 in frame
+             #0 0xb20b6cb6c794 in use_after_return__inner use_after_return.adb:9
+ 
+           This frame has 1 object(s):
+             [32, 36) 'local' (line 10) <== Memory access at offset 32 is inside this variable
+         SUMMARY: AddressSanitizer: stack-use-after-return use_after_return.adb:18 in _ada_use_after_return
+         ...
+ 
+ * Memory leak
+ 
+   A memory leak happens when a program allocates memory from the heap but fails
+   to release it after it is no longer needed and loses all references to it like
+   in the following example.
+ 
+     .. code-block:: ada
+ 
+        procedure Memory_Leak is
+           type Integer_Access is access Integer;
+ 
+           procedure Allocate is
+              Ptr : Integer_Access := new Integer'(42);
+           begin
+              null;
+           end Allocate;
+        begin
+           --  Memory leak occurs in the following procedure
+          Allocate;
+        end Memory_Leak;
+ 
+   If the code is built with the :switch:`-fsanitize=address` and :switch:`-g`
+   options, the following error is emitted at execution time showing the
+   location of the offending allocation.
+ 
+     ::
+ 
+         ==1810634==ERROR: LeakSanitizer: detected memory leaks
+ 
+         Direct leak of 4 byte(s) in 1 object(s) allocated from:
+             #0 0xe3cbee4bb4a8 in __interceptor_malloc asan_malloc_linux.cpp:69
+             #1 0xc15bb25d0af8 in __gnat_malloc (memory_leak+0x10af8) (BuildId: f5914a6eac10824f81d512de50b514e7d5f733be)
+             #2 0xc15bb25c9060 in memory_leak__allocate memory_leak.adb:5
+             ...
+ 
+         SUMMARY: AddressSanitizer: 4 byte(s) leaked in 1 allocation(s).
+ 
+ .. _UndefinedBehaviorSanitizer:
+ 
+ UndefinedBehaviorSanitizer
+ --------------------------
+ 
+ .. index:: UndefinedBehaviorSanitizer
+ .. index:: UBSan
+ .. index:: -fsanitize=undefined
+ 
+ UndefinedBehaviorSanitizer (aka UBSan) modifies the program at compile-time to
+ catch various kinds of undefined behavior during program execution.
+ 
+ Different sanitize options (:switch:`-fsanitize=alignment,float-cast-overflow,signed-integer-overflow`)
+ detect the following types of problems:
+ 
+ * Wrong alignment
+ 
+   The :switch:`-fsanitize=alignment` flag (included also in
+   :switch:`-fsanitize=undefined`) enables run-time checks for misaligned memory
+   accesses, ensuring that objects are accessed at addresses that conform to the
+   alignment constraints of their declared types. Violations may lead to crashes
+   or performance penalties on certain architectures.
+ 
+   In the following example:
+ 
+     .. code-block:: ada
+ 
+        with Ada.Text_IO; use Ada.Text_IO;
+        with System.Storage_Elements; use System.Storage_Elements;
+ 
+        procedure Misaligned_Address is
+           type Aligned_Integer is new Integer with
+             Alignment => 4;  -- Ensure 4-byte alignment
+ 
+           Reference : Aligned_Integer := 42;  -- Properly aligned object
+ 
+           -- Create a misaligned object by modifying the address manually
+           Misaligned : Aligned_Integer with Address => Reference'Address + 1;
+ 
+        begin
+           -- This causes undefined behavior or an alignment exception on strict architectures
+           Put_Line ("Misaligned Value: " & Aligned_Integer'Image (Misaligned));
+        end Misaligned_Address;
+ 
+   If the code is built with the :switch:`-fsanitize=alignment` and :switch:`-g`
+   options, the following error is shown at execution time.
+ 
+     ::
+ 
+         misaligned_address.adb:15:51: runtime error: load of misaligned address 0xffffd836dd45 for type 'volatile misaligned_address__aligned_integer', which requires 4 byte alignment
+ 
+ * Signed integer overflow
+ 
+   Ada performs range checks at runtime in arithmetic operation on signed integers
+   to ensure the value is within the target type's bounds. If this check is removed,
+   the :switch:`-fsanitize=signed-integer-overflow` flag (included also in
+   :switch:`-fsanitize=undefined`) enables run-time checks for signed integer
+   overflows.
+ 
+   In the following example:
+ 
+     .. code-block:: ada
+ 
+        procedure Signed_Integer_Overflow is
+           type Small_Int is range -128 .. 127;
+           X, Y, Z : Small_Int with Export;
+        begin
+           X := 100;
+           Y := 50;
+           -- This addition will exceed 127, causing an overflow
+           Z := X + Y;
+        end Signed_Integer_Overflow;
+ 
+   If the code is built with the :switch:`-fsanitize=signed-integer-overflow` and
+   :switch:`-g` options, the following error is shown at execution time.
+ 
+     ::
+ 
+         signed_integer_overflow.adb:8:11: runtime error: signed integer overflow: 100 + 50 cannot be represented in type 'signed_integer_overflow__small_int'
+ 
+ * Float to integer overflow
+ 
+   When converting a floating-point value to an integer type, Ada performs a range
+   check at runtime to ensure the value is within the target type's bounds. If this
+   check is removed, the sanitizer can detect overflows in conversions from
+   floating point to integer types.
+ 
+   In the following code:
+ 
+       .. code-block:: ada
+ 
+          procedure Float_Cast_Overflow is
+             Flt : Float := Float'Last with Export;
+             Int : Integer;
+          begin
+             Int := Integer (Flt); --  Overflow
+          end Float_Cast_Overflow;
+ 
+   If the code is built with the :switch:`-fsanitize=float-cast-overflow` and
+   :switch:`-g` options, the following error is shown at execution time.
+ 
+     ::
+ 
+         float_cast_overflow.adb:5:20: runtime error: 3.40282e+38 is outside the range of representable values of type 'integer'
+ 
+ Sanitizers in mixed-language applications
+ -----------------------------------------
+ 
+ Most of the checks performed by sanitizers operate at a global level, which
+ means they can detect issues even when they span across language boundaries.
+ This applies notably to:
+ 
+ * All checks performed by the AddressSanitizer: wrong memory overlays, buffer
+   overflows, uses after lifetime, memory leaks. These checks apply globally,
+   regardless of where the objects are allocated or defined, or where they are
+   destroyed
+ 
+ * Wrong alignment checks performed by the UndefinedBehaviorSanitizer. It will
+   check whether an object created in a given language is accessed in another
+   with an incompatible alignment
+ 
+ An interesting case that highlights the benefit of global sanitization is a
+ buffer overflow caused by a mismatch in language bindings. Consider the
+ following C function, which allocates an array of 4 characters:
+ 
+       .. code-block:: c
+ 
+          char *get_str (void) {
+             char *str = malloc (4 * sizeof (char));
+          }
+ 
+ This function is then bound to Ada code, which incorrectly assumes the buffer
+ is of size 5:
+ 
+       .. code-block:: ada
+ 
+          type Buffer is array (1 .. 5) of Character;
+ 
+          function Get_Str return access Buffer
+             with Import => True, Convention => C, External_Name => "get_str";
+ 
+          Str : access Buffer := Get_Str;
+          Ch  : Character     := S (S'Last);  -- Detected by AddressSanitizer as erroneous
+ 
+ On the Ada side, accessing ``Str (5)`` appears valid because the array type
+ declares five elements. However, the actual memory allocated in C only holds
+ four. This mismatch is not detectable by Ada run-time checks, because Ada has
+ no visibility into how the memory was allocated.
+ 
+ However, the AddressSanitizer will detect the heap buffer overflow at runtime,
+ halting execution and providing a clear diagnostic:
+ 
+     ::
+ 
+         ...
+         SUMMARY: AddressSanitizer: heap-buffer-overflow buffer_overflow.adb:20 in _ada_buffer_overflow
+         ...
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/platform_specific_information.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/platform_specific_information.rst	Thu Apr 23 11:07:32 2026
*************** Setting Stack Size from ``gnatlink``
*** 2212,2222 ****
  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.
  
--- 2212,2223 ----
  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. The specified size will
! become the reserved memory size of the underlying thread.
  
  Since very old versions of Windows (2000, NT4, etc.) don't allow setting the
! reserve size of individual tasks, for those versions 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.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst
*** gcc-15.2.0/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/doc/gnat_ugn/the_gnat_compilation_model.rst	Thu Apr 23 11:07:32 2026
*************** You can place configuration pragmas eith
*** 1477,1482 ****
--- 1477,1486 ----
  unit or in a configuration pragma file that applies to
  all compilations performed in a given compilation environment.
  
+ Configuration pragmas placed before a library level package specification
+ are not propagated to the corresponding package body (see RM 10.1.5(8));
+ they must be added explicitly to the package body.
+ 
  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.
*************** Switches for ``gnatprep``
*** 2927,2932 ****
--- 2931,2948 ----
    don't specify a value, the symbol is defined to be ``True``. You can
    use this switch instead of providing a definition file.
  
+ .. index:: -e (gnatprep)
+ 
+ :switch:`-e`
+   Causes both preprocessor lines and the lines deleted by
+   preprocessing to be replaced by empty comment lines marked
+   with ``"--!"`` (and no other text) in the output source file,
+   preserving line numbers in the output file. This option can
+   be useful as an alternative to :switch:`-b` and :switch:`-c`
+   when compilation style switches like :switch:`-gnatyu` or
+   :switch:`-gnatyM` are used (to avoid warnings about multiple
+   blank lines or lines too long).
+ 
  .. index:: -r (gnatprep)
  
  :switch:`-r`
*************** that relate to integrated preprocessing.
*** 3244,3250 ****
      Causes both preprocessor lines and the lines deleted by
      preprocessing to be replaced by blank lines, preserving the line number.
      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
--- 3260,3266 ----
      Causes both preprocessor lines and the lines deleted by
      preprocessing to be replaced by blank lines, preserving the line number.
      This switch is always implied; however, if specified after :switch:`-c`
!     or :switch:`-e` it cancels the effect of those switches.
  
    :switch:`-c`
      Causes both preprocessor lines and the lines deleted
*************** that relate to integrated preprocessing.
*** 3262,3267 ****
--- 3278,3289 ----
      name defined in a definition file.
  
  
+   :switch:`-e`
+     Causes both preprocessor lines and the lines deleted by
+     preprocessing to be replaced by empty comment lines marked
+     with '`--!`' (and no other text) in the output source file,
+ 
+ 
    :switch:`-s`
      Causes a sorted list of symbol names and values to be
      listed on the standard output file.
*************** that relate to integrated preprocessing.
*** 3302,3313 ****
    This switch is similar to switch :switch:`-D` of ``gnatprep``.
  
  
! :switch:`-gnateG`
    When integrated preprocessing is performed on source file :file:`filename.extension`,
    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:
--- 3324,3342 ----
    This switch is similar to switch :switch:`-D` of ``gnatprep``.
  
  
! .. index:: -gnateG (gcc)
! 
! :switch:`-gnateG[bce]`
    When integrated preprocessing is performed on source file :file:`filename.extension`,
    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`.
+   An optional character (b, c, or e) can be appended to indicate that filtered
+   lines are to be replaced by blank lines, comments, or empty comments (see
+   documentation above about :switch:`-b`, :switch:`-c`, and :switch:`-e`).
+   If one of those switches is given in a preprocessor data file, then it
+   will override any option included with :switch:`-gnateG`.
  
  
  .. _Mixed_Language_Programming:
diff -Nrcpad gcc-15.2.0/gcc/ada/einfo-utils.adb gcc-16.1.0-RC-20260423/gcc/ada/einfo-utils.adb
*** gcc-15.2.0/gcc/ada/einfo-utils.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/einfo-utils.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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
*** 669,674 ****
--- 669,676 ----
              Result := Id;
           else
              pragma Assert (Is_Type (Id));
+             --  ...because Is_Base_Type returns True for nontypes
+ 
              Result := Etype (Id);
              if False then
                 pragma Assert (Is_Base_Type (Result));
*************** package body Einfo.Utils is
*** 679,688 ****
--- 681,716 ----
                 --  expect.
              end if;
           end if;
+ 
+          --  pragma Assert (Result = Base_Type_If_Set (Id));
+          --  Disabled; too slow
        end return;
     end Base_Type;
  
     ----------------------
+    -- Base_Type_If_Set --
+    ----------------------
+ 
+    function Base_Type_If_Set (Id : E) return Opt_N_Entity_Id is
+    begin
+       return Result : Opt_N_Entity_Id do
+          if Is_Base_Type (Id) then
+             Result := Id;
+          elsif Field_Is_Initial_Zero (Id, F_Etype) then
+             Result := Empty;
+          else
+             Result := Etype (Id);
+          end if;
+       end return;
+    end Base_Type_If_Set;
+ 
+    function Can_Have_Formals (Id : Entity_Id) return Boolean
+    is (Is_Generic_Subprogram (Id)
+        or else Is_Overloadable (Id)
+        or else Ekind (Id)
+                in E_Entry_Family | E_Subprogram_Body | E_Subprogram_Type);
+ 
+    ----------------------
     -- Declaration_Node --
     ----------------------
  
*************** package body Einfo.Utils is
*** 834,845 ****
        Formal : Entity_Id;
  
     begin
!       pragma Assert
!         (Is_Generic_Subprogram (Id)
!            or else Is_Overloadable (Id)
!            or else Ekind (Id) in E_Entry_Family
!                                | E_Subprogram_Body
!                                | E_Subprogram_Type);
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
--- 862,868 ----
        Formal : Entity_Id;
  
     begin
!       pragma Assert (Can_Have_Formals (Id));
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
*************** package body Einfo.Utils is
*** 875,886 ****
        Formal : Entity_Id;
  
     begin
!       pragma Assert
!         (Is_Generic_Subprogram (Id)
!            or else Is_Overloadable (Id)
!            or else Ekind (Id) in E_Entry_Family
!                                | E_Subprogram_Body
!                                | E_Subprogram_Type);
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
--- 898,904 ----
        Formal : Entity_Id;
  
     begin
!       pragma Assert (Can_Have_Formals (Id));
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
*************** package body Einfo.Utils is
*** 1037,1042 ****
--- 1055,1061 ----
                    Id = Pragma_Contract_Cases            or else
                    Id = Pragma_Exceptional_Cases         or else
                    Id = Pragma_Exit_Cases                or else
+                   Id = Pragma_Program_Exit              or else
                    Id = Pragma_Subprogram_Variant        or else
                    Id = Pragma_Test_Case;
  
*************** package body Einfo.Utils is
*** 1233,1238 ****
--- 1252,1267 ----
          and then Present (Limited_View (Id));
     end Has_Limited_View;
  
+    ----------------------------
+    -- Has_Modular_Operations --
+    ----------------------------
+ 
+    function Has_Modular_Operations (Id : E) return B is
+    begin
+       return Is_Modular_Integer_Type (Id)
+         and then not Has_Unsigned_Base_Range_Aspect (Base_Type (Id));
+    end Has_Modular_Operations;
+ 
     --------------------------
     -- Has_Non_Limited_View --
     --------------------------
*************** package body Einfo.Utils is
*** 1322,1327 ****
--- 1351,1367 ----
            and then Nkind (Node (First_Elmt (Constits))) = N_Null;
     end Has_Null_Visible_Refinement;
  
+    -----------------------------
+    -- Has_Overflow_Operations --
+    -----------------------------
+ 
+    function Has_Overflow_Operations (Id : E) return B is
+    begin
+       return Is_Signed_Integer_Type (Id)
+         or else (Is_Modular_Integer_Type (Id)
+                    and then Has_Unsigned_Base_Range_Aspect (Base_Type (Id)));
+    end Has_Overflow_Operations;
+ 
     --------------------
     -- Has_Unmodified --
     --------------------
*************** package body Einfo.Utils is
*** 1373,1402 ****
     ------------------------------
  
     function Implementation_Base_Type (Id : E) return E is
-       Bastyp : Entity_Id;
        Imptyp : Entity_Id;
- 
     begin
!       Bastyp := Base_Type (Id);
! 
!       if Is_Incomplete_Or_Private_Type (Bastyp) then
!          Imptyp := Underlying_Type (Bastyp);
  
!          --  If we have an implementation type, then just return it,
!          --  otherwise we return the Base_Type anyway. This can only
!          --  happen in error situations and should avoid some error bombs.
  
!          if Present (Imptyp) then
!             return Base_Type (Imptyp);
!          else
!             return Bastyp;
           end if;
  
!       else
!          return Bastyp;
!       end if;
     end Implementation_Base_Type;
  
     -------------------------
     -- Invariant_Procedure --
     -------------------------
--- 1413,1455 ----
     ------------------------------
  
     function Implementation_Base_Type (Id : E) return E is
        Imptyp : Entity_Id;
     begin
!       return Result : E := Base_Type (Id) do
!          if Is_Incomplete_Or_Private_Type (Result) then
!             Imptyp := Underlying_Type (Result);
  
!             --  If we have an implementation type, return its Base_Type.
  
!             if Present (Imptyp) then
!                Result := Base_Type (Imptyp);
!             end if;
           end if;
  
!          --  pragma Assert (Result = Implementation_Base_Type_If_Set (Id));
!          --  Disabled; too slow
!       end return;
     end Implementation_Base_Type;
  
+    -------------------------------------
+    -- Implementation_Base_Type_If_Set --
+    -------------------------------------
+ 
+    function Implementation_Base_Type_If_Set (Id : E) return Opt_N_Entity_Id is
+       Imptyp : Entity_Id;
+    begin
+       return Result : Opt_N_Entity_Id := Base_Type_If_Set (Id) do
+          if Present (Result) and then Is_Incomplete_Or_Private_Type (Result)
+          then
+             Imptyp := Underlying_Type (Result);
+ 
+             if Present (Imptyp) then
+                Result := Base_Type_If_Set (Imptyp);
+             end if;
+          end if;
+       end return;
+    end Implementation_Base_Type_If_Set;
+ 
     -------------------------
     -- Invariant_Procedure --
     -------------------------
*************** package body Einfo.Utils is
*** 1766,1776 ****
        Formal : Entity_Id;
  
     begin
!       pragma Assert
!         (Is_Overloadable (Id)
!           or else Ekind (Id) in E_Entry_Family
!                               | E_Subprogram_Body
!                               | E_Subprogram_Type);
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
--- 1819,1825 ----
        Formal : Entity_Id;
  
     begin
!       pragma Assert (Can_Have_Formals (Id));
  
        if Ekind (Id) = E_Enumeration_Literal then
           return Empty;
*************** package body Einfo.Utils is
*** 2344,2349 ****
--- 2393,2417 ----
     begin
        pragma Assert (Is_Type (Id));
  
+       if Nkind (Associated_Node_For_Itype (Id)) = N_Subtype_Declaration then
+          declare
+             Associated_Id : constant Entity_Id :=
+               Defining_Identifier (Associated_Node_For_Itype (Id));
+          begin
+             --  Avoid Itype/predicate problems by looking through Itypes.
+             --  We never introduce new predicates for Itypes, so doing this
+             --  will never cause us to incorrectly overlook a predicate.
+             --  It is not clear whether the FE needs this fix, but
+             --  GNATProve does (note that GNATProve calls Predicate_Function).
+ 
+             if Id /= Associated_Id
+               and then Base_Type (Id) = Base_Type (Associated_Id)
+             then
+                return Predicate_Function (Associated_Id);
+             end if;
+          end;
+       end if;
+ 
        --  If type is private and has a completion, predicate may be defined on
        --  the full view.
  
*************** package body Einfo.Utils is
*** 2375,2380 ****
--- 2443,2479 ----
              if Ekind (Subp_Id) = E_Function
                and then Is_Predicate_Function (Subp_Id)
              then
+                --  We may have incorrectly looked through predicate-bearing
+                --  subtypes when going from a private subtype to its full
+                --  view, so compensate for that case. Unfortunately,
+                --  Subp_Id might not be analyzed at this point, so we
+                --  use a crude works-most-of-the-time text-based
+                --  test to detect the case where Id is a subtype (declared by
+                --  a subtype declaration) and no predicate was explicitly
+                --  specified for Id. Ugh. ???
+ 
+                if Nkind (Parent (Id)) = N_Subtype_Declaration
+                  -- 1st choice ...
+                  --   and then Etype (First_Entity (Subp_Id)) /= Id
+                  -- but that doesn't work if Subp_Id is not analyzed.
+ 
+                  --  so we settle for 2nd choice, ignoring cases like
+                  --  "subtype Foo is Pkg.Foo;" where distinct subtypes
+                  --  have the same identifier:
+                  --
+                  and then Get_Name_String (Chars (Subp_Id)) /=
+                           Get_Name_String (Chars (Id)) & "Predicate"
+                then
+                   declare
+                      Mark : Node_Id := Subtype_Indication (Parent (Id));
+                   begin
+                      if Nkind (Mark) = N_Subtype_Indication then
+                         Mark := Subtype_Mark (Mark);
+                      end if;
+                      return Predicate_Function (Entity (Mark));
+                   end;
+                end if;
+ 
                 return Subp_Id;
              end if;
  
*************** package body Einfo.Utils is
*** 2489,2539 ****
     ---------------
  
     function Root_Type (Id : E) return E is
!       T, Etyp : Entity_Id;
  
     begin
!       pragma Assert (Nkind (Id) in N_Entity);
  
!       T := Base_Type (Id);
  
!       if Ekind (T) = E_Class_Wide_Type then
!          return Etype (T);
  
!       --  Other cases
  
!       else
!          loop
!             Etyp := Etype (T);
  
!             if T = Etyp then
!                return T;
  
!             --  Following test catches some error cases resulting from
!             --  previous errors.
  
!             elsif No (Etyp) then
!                Check_Error_Detected;
!                return T;
  
!             elsif Is_Private_Type (T) and then Etyp = Full_View (T) then
!                return T;
  
!             elsif Is_Private_Type (Etyp) and then Full_View (Etyp) = T then
!                return T;
!             end if;
  
!             T := Etyp;
  
!             --  Return if there is a circularity in the inheritance chain. This
!             --  happens in some error situations and we do not want to get
!             --  stuck in this loop.
  
!             if T = Base_Type (Id) then
!                return T;
!             end if;
!          end loop;
!       end if;
!    end Root_Type;
  
     ---------------------
     -- Safe_Emax_Value --
--- 2588,2668 ----
     ---------------
  
     function Root_Type (Id : E) return E is
!       Etyp : Entity_Id;
  
     begin
!       return T : E := Base_Type (Id) do
!          if Ekind (T) = E_Class_Wide_Type then
!             T := Etype (T);
!          else
!             loop
!                Etyp := Etype (T);
  
!                exit when T = Etyp
!                  or else
!                    (Is_Private_Type (T) and then Etyp = Full_View (T))
!                  or else
!                    (Is_Private_Type (Etyp) and then Full_View (Etyp) = T);
  
!                T := Etyp;
  
!                --  Quit if there is a circularity in the inheritance chain.
!                --  This happens in some error situations and we do not want
!                --  to get stuck in this loop.
  
!                if T = Base_Type (Id) then
!                   Check_Error_Detected;
!                   exit;
!                end if;
!             end loop;
!          end if;
  
!          --  pragma Assert (T = Root_Type_If_Set (Id));
!          --  Disabled; too slow
!       end return;
!    end Root_Type;
  
!    ----------------------
!    -- Root_Type_If_Set --
!    ----------------------
  
!    function Root_Type_If_Set (Id : E) return Opt_N_Entity_Id is
!       Etyp : Entity_Id;
  
!    begin
!       return T : Opt_N_Entity_Id := Base_Type_If_Set (Id) do
!          if No (T) then
!             null;
!          elsif Ekind (T) = E_Class_Wide_Type then
!             T := Etype (T);
!          else
!             loop
!                Etyp := Etype (T);
  
!                if No (Etyp) then
!                   T := Empty;
!                   exit;
!                end if;
  
!                exit when T = Etyp
!                  or else
!                    (Is_Private_Type (T) and then Etyp = Full_View (T))
!                  or else
!                    (Is_Private_Type (Etyp) and then Full_View (Etyp) = T);
  
!                T := Etyp;
  
!                --  Quit if there is a circularity in the inheritance chain.
!                --  This happens in some error situations and we do not want
!                --  to get stuck in this loop.
! 
!                if T = Base_Type_If_Set (Id) then
!                   exit;
!                end if;
!             end loop;
!          end if;
!       end return;
!    end Root_Type_If_Set;
  
     ---------------------
     -- Safe_Emax_Value --
*************** package body Einfo.Utils is
*** 2638,2651 ****
        --  anonymous protected types, since protected types always have the
        --  default convention.
  
!       if Present (Etype (E))
!         and then (Is_Object (E)
! 
!                    --  Allow E_Void (happens for pragma Convention appearing
!                    --  in the middle of a record applying to a component)
! 
!                    or else Ekind (E) = E_Void)
!       then
           declare
              Typ : constant Entity_Id := Etype (E);
  
--- 2767,2773 ----
        --  anonymous protected types, since protected types always have the
        --  default convention.
  
!       if Present (Etype (E)) and then Is_Object (E) then
           declare
              Typ : constant Entity_Id := Etype (E);
  
*************** package body Einfo.Utils is
*** 2809,2815 ****
        end if;
  
        Subp_Elmt := First_Elmt (Subps);
-       Prepend_Elmt (V, Subps);
  
        --  Check for a duplicate predication function
  
--- 2931,2936 ----
*************** package body Einfo.Utils is
*** 2819,2829 ****
           if Ekind (Subp_Id) = E_Function
             and then Is_Predicate_Function (Subp_Id)
           then
!             raise Program_Error;
           end if;
  
           Next_Elmt (Subp_Elmt);
        end loop;
     end Set_Predicate_Function;
  
     -----------------
--- 2940,2956 ----
           if Ekind (Subp_Id) = E_Function
             and then Is_Predicate_Function (Subp_Id)
           then
!             if V = Subp_Id then
!                return;
!             else
!                raise Program_Error;
!             end if;
           end if;
  
           Next_Elmt (Subp_Elmt);
        end loop;
+ 
+       Prepend_Elmt (V, Subps);
     end Set_Predicate_Function;
  
     -----------------
*************** package body Einfo.Utils is
*** 2961,2967 ****
     -- Underlying_Type --
     ---------------------
  
!    function Underlying_Type (Id : E) return Entity_Id is
     begin
        --  For record_with_private the underlying type is always the direct full
        --  view. Never try to take the full view of the parent it does not make
--- 3088,3094 ----
     -- Underlying_Type --
     ---------------------
  
!    function Underlying_Type (Id : E) return Opt_N_Entity_Id is
     begin
        --  For record_with_private the underlying type is always the direct full
        --  view. Never try to take the full view of the parent it does not make
*************** package body Einfo.Utils is
*** 2975,2981 ****
  
        elsif Ekind (Id) = E_Class_Wide_Type
          and then From_Limited_With (Id)
!         and then Present (Non_Limited_View (Id))
        then
           return Underlying_Type (Non_Limited_View (Id));
  
--- 3102,3108 ----
  
        elsif Ekind (Id) = E_Class_Wide_Type
          and then From_Limited_With (Id)
!         and then Has_Non_Limited_View (Id)
        then
           return Underlying_Type (Non_Limited_View (Id));
  
*************** package body Einfo.Utils is
*** 3007,3013 ****
           --  then we return the Underlying_Type of its nonlimited view.
  
           elsif From_Limited_With (Id)
!            and then Present (Non_Limited_View (Id))
           then
              return Underlying_Type (Non_Limited_View (Id));
  
--- 3134,3140 ----
           --  then we return the Underlying_Type of its nonlimited view.
  
           elsif From_Limited_With (Id)
!            and then Has_Non_Limited_View (Id)
           then
              return Underlying_Type (Non_Limited_View (Id));
  
diff -Nrcpad gcc-15.2.0/gcc/ada/einfo-utils.ads gcc-16.1.0-RC-20260423/gcc/ada/einfo-utils.ads
*** gcc-15.2.0/gcc/ada/einfo-utils.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/einfo-utils.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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
*** 161,166 ****
--- 161,175 ----
     function First_Formal (Id : E) return Entity_Id;
     function First_Formal_With_Extras (Id : E) return Entity_Id;
  
+    function Base_Type_If_Set (Id : E) return Opt_N_Entity_Id;
+    function Implementation_Base_Type_If_Set (Id : E) return Opt_N_Entity_Id;
+    function Root_Type_If_Set (Id : E) return Opt_N_Entity_Id;
+    --  Base_Type_If_Set is a more permissive version of Base_Type, which
+    --  returns the same value, except it returns Empty in cases where Base_Type
+    --  would crash because relevant fields are not yet set. Likewise for the
+    --  other two. These are used in Treepr, to allow it to print half-baked
+    --  nodes without crashing.
+ 
     function Float_Rep
       (N : Entity_Id) return F with Inline, Pre =>
        N in E_Void_Id
*************** package Einfo.Utils is
*** 177,187 ****
--- 186,198 ----
     function Has_Interrupt_Handler (Id : E) return B;
     function Has_Invariants (Id : E) return B;
     function Has_Limited_View (Id : E) return B;
+    function Has_Modular_Operations (Id : E) return B with Inline;
     function Has_Non_Limited_View (Id : E) return B with Inline;
     function Has_Non_Null_Abstract_State (Id : E) return B;
     function Has_Non_Null_Visible_Refinement (Id : E) return B;
     function Has_Null_Abstract_State (Id : E) return B;
     function Has_Null_Visible_Refinement (Id : E) return B;
+    function Has_Overflow_Operations (Id : E) return B with Inline;
     function Implementation_Base_Type (Id : E) return E;
     function Is_Boolean_Type (Id : E) return B with Inline;
     function Is_Constant_Object (Id : E) return B with Inline;
*************** package Einfo.Utils is
*** 238,244 ****
     function Stream_Size_Clause (Id : E) return N with Inline;
     function Type_High_Bound (Id : E) return N with Inline;
     function Type_Low_Bound (Id : E) return N with Inline;
!    function Underlying_Type (Id : E) return Entity_Id;
  
     function Scope_Depth (Id : Scope_Kind_Id) return U with Inline;
     function Scope_Depth_Set (Id : Scope_Kind_Id) return B with Inline;
--- 249,255 ----
     function Stream_Size_Clause (Id : E) return N with Inline;
     function Type_High_Bound (Id : E) return N with Inline;
     function Type_Low_Bound (Id : E) return N with Inline;
!    function Underlying_Type (Id : E) return Opt_N_Entity_Id;
  
     function Scope_Depth (Id : Scope_Kind_Id) return U with Inline;
     function Scope_Depth_Set (Id : Scope_Kind_Id) return B with Inline;
*************** package Einfo.Utils is
*** 456,461 ****
--- 467,473 ----
     --    No_Caching
     --    Part_Of
     --    Precondition
+    --    Program_Exit
     --    Postcondition
     --    Refined_Depends
     --    Refined_Global
*************** package Einfo.Utils is
*** 539,544 ****
--- 551,559 ----
     --  Call [Set_]Is_Volatile_Type/Is_Volatile_Object as appropriate for the
     --  Ekind of Id.
  
+    function Can_Have_Formals (Id : Entity_Id) return Boolean;
+    --  A utility function to see whether the entity can have formals.
+ 
     function Convention
       (N : Entity_Id) return Convention_Id renames Basic_Convention;
     procedure Set_Convention (E : Entity_Id; Val : Convention_Id);
diff -Nrcpad gcc-15.2.0/gcc/ada/einfo.adb gcc-16.1.0-RC-20260423/gcc/ada/einfo.adb
*** gcc-15.2.0/gcc/ada/einfo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/einfo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/einfo.ads gcc-16.1.0-RC-20260423/gcc/ada/einfo.ads
*** gcc-15.2.0/gcc/ada/einfo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/einfo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 405,416 ****
  --       (including exceptions where it refers to the static data allocated for
  --       an exception), loop parameters, and formal parameters. This indicates
  --       the desired alignment for a type, or the actual alignment for an
! --       object. A value of zero (Uint_0) indicates that the alignment has not
! --       been set yet. The alignment can be set by an explicit alignment
! --       clause, or set by the front-end in package Layout, or set by the
! --       back-end as part of the back-end back-annotation process. The
! --       alignment field is also defined in E_Exception entities, but there it
! --       is used only by the back-end for back annotation.
  
  --    Alignment_Clause (synthesized)
  --       Applies to all entities for types and objects. If an alignment
--- 405,431 ----
  --       (including exceptions where it refers to the static data allocated for
  --       an exception), loop parameters, and formal parameters. This indicates
  --       the desired alignment for a type, or the actual alignment for an
! --       object. The alignment can be set by an explicit alignment aspect or
! --       clause, or set by the front end in the package Layout, or set by the
! --       back end as part of the back-end back-annotation process. The field
! --       is also defined in E_Exception entities, but there it is used only by
! --       the back end for back annotation.
! 
! --       The implementation guarantees that the run-time address of an object
! --       is a multiple of the value of its Alignment field in storage units,
! --       up to some maximum value dependent on the target that is under the
! --       sole control of the back end (not equal to Ttypes.Maximum_Alignment
! --       in the general case), provided that the object is not subject to an
! --       address aspect/clause.
! 
! --       When the object is subject to an address aspect/clause, this guarantee
! --       is voided and the object may be misaligned at run time. On the targets
! --       that require strict alignment of memory accesses, a run-time alignment
! --       check is generated unconditionally and Program_Error is raised if the
! --       object is misaligned. On the other targets, this run-time alignment
! --       check is generated only if the object is also subject to an alignment
! --       aspect/clause; if it is not, the program may run with the misaligned
! --       object (its execution is erroneous as per the RM 13.3(27) subclause).
  
  --    Alignment_Clause (synthesized)
  --       Applies to all entities for types and objects. If an alignment
*************** package Einfo is
*** 463,473 ****
  
  --       For an access_to_protected_subprogram parameter it is the declaration
  --       of the corresponding formal parameter.
! --
! --       Itypes have no explicit declaration, and therefore are not attached to
! --       the tree: their Parent field is always empty. The Associated_Node_For_
! --       Itype is the only way to determine the construct that leads to the
! --       creation of a given itype entity.
  
  --    Associated_Storage_Pool [root type only]
  --       Defined in simple and general access type entities. References the
--- 478,490 ----
  
  --       For an access_to_protected_subprogram parameter it is the declaration
  --       of the corresponding formal parameter.
! 
! --       Itypes need not have an explicit declaration, in which case they are
! --       not attached to the tree through the Parent field, which is empty. In
! --       other cases, they have one and are attached to the tree through the
! --       Parent field as usual. Associated_Node_For_Itype should be used to
! --       determine the construct that leads to the creation of a given itype
! --       entity.
  
  --    Associated_Storage_Pool [root type only]
  --       Defined in simple and general access type entities. References the
*************** package Einfo is
*** 606,611 ****
--- 623,632 ----
  --       determine if there actually is an active Suppress or Unsuppress pragma
  --       that applies to the entity.
  
+ --    Child_Levels
+ --       Assrtion levels that depend on the given level are considered to be
+ --        the child levels of that level.
+ 
  --    Class_Postconditions
  --       Defined on subprogram entities. Set if the subprogram has class-wide
  --       postconditions. Denotes the (and-then) expression built by merging
*************** package Einfo is
*** 714,719 ****
--- 735,748 ----
  --       bodies. Set if the entity contains any ignored Ghost code in the form
  --       of declaration, procedure call, assignment statement or pragma.
  
+ --    Continue_Mark
+ --       Defined in loop entities. It points to the loop's statement after
+ --       which the label for continue statements must be inserted if one is
+ --       needed. This is not always the last statement in the loop's list; it
+ --       can notably be followed by assignment statements generated by
+ --       expansion of iterator specifications, which continue statements must
+ --       not jump past.
+ 
  --    Contract
  --       Defined in constant, entry, entry family, operator, [generic] package,
  --       package body, protected unit, [generic] subprogram, subprogram body,
*************** package Einfo is
*** 832,843 ****
  --       Default_Value aspect specification for the type, or inherited
  --       on derivation.
  
- --    Default_Expr_Function
- --       Defined in parameters. It holds the entity of the parameterless
- --       function that is built to evaluate the default expression if it is
- --       more complex than a simple identifier or literal. For the latter
- --       simple cases or if there is no default value, this field is Empty.
- 
  --    Default_Expressions_Processed
  --       A flag in subprograms (functions, operators, procedures) and in
  --       entries and entry families used to indicate that default expressions
--- 861,866 ----
*************** package Einfo is
*** 864,875 ****
  --       that holds value of delta for the type, as given in the declaration
  --       or as inherited by a subtype or derived type.
  
- --    Dependent_Instances
- --       Defined in packages that are instances. Holds list of instances
- --       of inner generics. Used to place freeze nodes for those instances
- --       after that of the current one, i.e. after the corresponding generic
- --       bodies.
- 
  --    Depends_On_Private
  --       Defined in all type entities. Set if the type is private or if it
  --       depends on a private type.
--- 887,892 ----
*************** package Einfo is
*** 902,907 ****
--- 919,931 ----
  --       incomplete type, and the full type is available, then this full type
  --       is returned instead of the incomplete type.
  
+ --    Destructor
+ --       Defined in all types and subtypes entities. For record type entities
+ --       that have destructors (in the strict sense, i.e., have destructors of
+ --       their own and do not just descend from types with destructors), set to
+ --       the procedure entity for the destructor. For other entities, set to
+ --       Empty.
+ 
  --    DIC_Procedure (synthesized)
  --       Defined in all type entities. Set for a private type and its full view
  --       when the type is subject to pragma Default_Initial_Condition (DIC), or
*************** package Einfo is
*** 1281,1289 ****
  --       that represents an activation record pointer is an extra formal.
  
  --    Extra_Formals
! --       Applies to subprograms, subprogram types, entries, and entry
! --       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
--- 1305,1314 ----
  --       that represents an activation record pointer is an extra formal.
  
  --    Extra_Formals
! --       Applies to subprograms, subprogram types, entries, and entry families.
! --       Returns the first extra formal of the subprogram or entry. An entity
! --       has no extra formals when this attribute is Empty, and its attribute
! --       Extra_Formals_Known is True.
  
  --    Finalization_Collection [root type only]
  --       Defined in access-to-controlled or access-to-class-wide types. The
*************** package Einfo is
*** 1462,1471 ****
  --       associates generic parameters with the corresponding instances, in
  --       those cases where the instance is an entity.
  
! --    Handler_Records
! --       Defined in subprogram and package entities. Points to a list of
! --       identifiers referencing the handler record entities for the
! --       corresponding unit.
  
  --    Has_Aliased_Components [implementation base type only]
  --       Defined in array type entities. Indicates that the component type
--- 1487,1497 ----
  --       associates generic parameters with the corresponding instances, in
  --       those cases where the instance is an entity.
  
! --    Ghost_Assertion_Level
! --       Assertion level associated with the declaration of the entity. Its
! --       value is either Empty for non-ghost entities, Standard_Level_Default
! --       for Ghost entities without an assertion level, or a user-defined
! --       assertion level.
  
  --    Has_Aliased_Components [implementation base type only]
  --       Defined in array type entities. Indicates that the component type
*************** package Einfo is
*** 1581,1591 ****
  --       type derivation.
  
  --    Has_Delayed_Aspects
! --      Defined in all entities. Set if the Rep_Item chain for the entity has
! --      one or more N_Aspect_Definition nodes chained which are not to be
! --      evaluated till the freeze point. The aspect definition expression
! --      clause has been preanalyzed to get visibility at the point of use,
! --      but no other action has been taken.
  
  --    Has_Delayed_Freeze
  --       Defined in all entities. Set to indicate that an explicit freeze
--- 1607,1617 ----
  --       type derivation.
  
  --    Has_Delayed_Aspects
! --       Defined in all entities. Set if the Rep_Item chain for the entity has
! --       one or more N_Aspect_Definition nodes chained which are not to be
! --       evaluated till the freeze point. The aspect definition expression
! --       clause has been preanalyzed to get visibility at the point of use,
! --       but no other action has been taken.
  
  --    Has_Delayed_Freeze
  --       Defined in all entities. Set to indicate that an explicit freeze
*************** package Einfo is
*** 1601,1606 ****
--- 1627,1637 ----
  --       set, signalling that Freeze.Inherit_Delayed_Rep_Aspects must be called
  --       at the freeze point of the derived type.
  
+ --    Has_Destructor
+ --       Defined in all type and subtype entities. Set only for record type
+ --       entities for which at least one ancestor has the Destructor aspect
+ --       specified.
+ 
  --    Has_DIC (synthesized)
  --       Defined in all type entities. Set for a private type and its full view
  --       when the type is subject to pragma Default_Initial_Condition (DIC), or
*************** package Einfo is
*** 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.
  
--- 1678,1683 ----
*************** package Einfo is
*** 1661,1666 ****
--- 1687,1698 ----
  --       flag prevents double expansion of a contract when a construct is
  --       rewritten into something else and subsequently reanalyzed/expanded.
  
+ --    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_Foreign_Convention (synthesized)
  --       Applies to all entities. Determines if the Convention for the entity
  --       is a foreign convention, i.e. non-native: other than Convention_Ada,
*************** package Einfo is
*** 1675,1680 ****
--- 1707,1718 ----
  --       the instance will conflict with the linear elaboration of front-end
  --       inlining.
  
+ --    Extra_Formals_Known
+ --       Defined in subprograms, subprogram types, entries, and entry families.
+ --       Set when the extra formals have been determined. An entity has no
+ --       extra formals when this attribute is True, and its attribute
+ --       Extra_Formals is Empty.
+ 
  --    Has_Fully_Qualified_Name
  --       Defined in all entities. Set if the name in the Chars field has been
  --       replaced by the fully qualified name, as used for debug output. See
*************** package Einfo is
*** 1704,1710 ****
  --
  --    Has_Homonym
  --       Defined in all entities. Set if an entity has a homonym in the same
! --       scope. Used by the backend to generate unique names for all entities.
  
  --    Has_Implicit_Dereference
  --       Defined in types and discriminants. Set if the type has an aspect
--- 1742,1748 ----
  --
  --    Has_Homonym
  --       Defined in all entities. Set if an entity has a homonym in the same
! --       scope. Used by Exp_Dbug to generate unique names for all entities.
  
  --    Has_Implicit_Dereference
  --       Defined in types and discriminants. Set if the type has an aspect
*************** package Einfo is
*** 1873,1882 ****
  --       5. N_Range_Constraint - when the range expression uses the
  --          discriminant of the enclosing type.
  
- --    Has_Pragma_Controlled [implementation base type only]
- --       Defined in access type entities. It is set if a pragma Controlled
- --       applies to the access type.
- 
  --    Has_Pragma_Elaborate_Body
  --       Defined in all entities. Set in compilation unit entities if a
  --       pragma Elaborate_Body applies to the compilation unit.
--- 1911,1916 ----
*************** package Einfo is
*** 2158,2163 ****
--- 2192,2214 ----
  --       on the partial view, to ensure that discriminants are properly
  --       inherited in certain contexts.
  
+ --    Has_Unsigned_Base_Range_Aspect [base type only]
+ --       Defined in modular integer types. This flag is set in the base type
+ --       generated by the frontend for a signed integer type that has an
+ --       Unsigned_Base_Range of True (whether by an aspect_specification, a
+ --       pragma, or inheritance).
+ 
+ --    Has_Modular_Operations (synthesized)
+ --       Defined in modular integer types. True when the type has modular
+ --       operations; that is, when its base type does NOT have the attribute
+ --       Unsigned_Base_Range_Aspect set to True.
+ 
+ --    Has_Overflow_Operations (synthesized)
+ --       Defined in signed integer types and modular integer types. True when
+ --       the type has overflow operations; that is, when the type is either
+ --       (1) a signed integer type, or (2) a modular integer type and its
+ --       base type has the attribute Unsigned_Base_Range_Aspect.
+ 
  --    Has_Visible_Refinement
  --       Defined in E_Abstract_State entities. Set when a state has at least
  --       one refinement constituent and analysis is in the region between
*************** package Einfo is
*** 2262,2267 ****
--- 2313,2323 ----
  --       is relocated to the corresponding package body, which must have a
  --       corresponding nonlimited with_clause.
  
+ --    Incomplete_View
+ --       Defined in all entities. Present in those that are completions of
+ --       incomplete types. Denotes the corresponding incomplete view declared
+ --       by the incomplete declaration.
+ 
  --    Indirect_Call_Wrapper
  --       Defined on subprogram entities. Set if the subprogram has class-wide
  --       preconditions. Denotes the internal wrapper that checks preconditions
*************** package Einfo is
*** 2357,2363 ****
  --    Is_Activation_Record
  --       Applies to E_In_Parameters generated in Exp_Unst for nested
  --       subprograms, to mark the added formal that carries the activation
! --       record created in the enclosing subprogram.
  
  --    Is_Actual_Subtype
  --       Defined on all types, true for the generated constrained subtypes
--- 2413,2419 ----
  --    Is_Activation_Record
  --       Applies to E_In_Parameters generated in Exp_Unst for nested
  --       subprograms, to mark the added formal that carries the activation
! --       record created in the enclosing subprogram. Used by the llvm back end.
  
  --    Is_Actual_Subtype
  --       Defined on all types, true for the generated constrained subtypes
*************** package Einfo is
*** 2500,2505 ****
--- 2556,2565 ----
  --       and subtypes, string types and subtypes, and all numeric types).
  --       Set if the type or subtype is constrained.
  
+ --    Is_Constructor
+ --       Defined in procedure entities. Set if a procedure denotes a
+ --       constructor that allows object initialization via the 'Make attribute.
+ 
  --    Is_Constr_Array_Subt_With_Bounds
  --       Defined in all types and subtypes. Set only for an array subtype
  --       which is constrained but nevertheless requires objects of this
*************** package Einfo is
*** 2511,2527 ****
  --       subtype of an object whose nominal subtype is unconstrained. Note
  --       that the constructed subtype itself will be constrained.
  
- --    Is_Constructor
- --       Defined in function and procedure entities. Set if a pragma
- --       CPP_Constructor applies to the subprogram.
- 
  --    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
--- 2571,2584 ----
  --       subtype of an object whose nominal subtype is unconstrained. Note
  --       that the constructed subtype itself will be constrained.
  
  --    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 or the Destructor aspect
! --       or has inherited the 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
*** 2535,2540 ****
--- 2592,2601 ----
  --       Defined in all type entities, set only for tagged types to which a
  --       valid pragma Import (CPP, ...) or pragma CPP_Class has been applied.
  
+ --    Is_CPP_Constructor
+ --       Defined in function and procedure entities. Set if a pragma
+ --       CPP_Constructor applies to the subprogram.
+ 
  --    Is_CUDA_Kernel
  --       Defined in function and procedure entities. Set if the subprogram is a
  --       CUDA kernel.
*************** package Einfo is
*** 2565,2571 ****
  
  --    Is_Discriminant_Check_Function
  --       Defined in all entities. Set only in E_Function entities for functions
! --       created to do discriminant checks.
  
  --    Is_Discriminal (synthesized)
  --       Applies to all entities, true for renamings of discriminants. Such
--- 2626,2632 ----
  
  --    Is_Discriminant_Check_Function
  --       Defined in all entities. Set only in E_Function entities for functions
! --       created to do discriminant checks. Used by CodePeer.
  
  --    Is_Discriminal (synthesized)
  --       Applies to all entities, true for renamings of discriminants. Such
*************** package Einfo is
*** 2971,2976 ****
--- 3032,3042 ----
  --       fully constructed, since it simply indicates the last state.
  --       Thus this flag has no meaning to the backend.
  
+ --    Is_Large_Unconstrained_Definite
+ --       Defined in record types. Used to detect types with default
+ --       discriminant values that have exaggerated sizes and emit warnings
+ --       about them.
+ 
  --    Is_Limited_Composite
  --       Defined in all entities. Set for composite types that have a limited
  --       component. Used to enforce the rule that operations on the composite
*************** package Einfo is
*** 2988,2993 ****
--- 3054,3066 ----
  --       record is declared to be limited. Note that this flag is not set
  --       simply because some components of the record are limited.
  
+ --    Is_Link_Once
+ --       Defined in all entities. Set to indicate that an entity can be defined
+ --       in multiple compilation units without generating a linker error. The
+ --       compiler guarantees that the multiple definitions are equivalent and,
+ --       therefore, that the linker can freely pick one of them. If this flag
+ --       is set on an entity, then the Is_Public flag is also set on it.
+ 
  --    Is_Local_Anonymous_Access
  --       Defined in access types. Set for an anonymous access type to indicate
  --       that the type is created for a record component with an access
*************** package Einfo is
*** 3428,3437 ****
  --       as its corresponding record type, but whose parent is the full view
  --       of the parent in the original type extension.
  
- --    Is_Unimplemented
- --       Defined in all entities. Set for any entity to which a valid pragma
- --       or aspect Unimplemented applies.
- 
  --    Is_Unsigned_Type
  --       Defined in all types, but can be set only for discrete and fixed-point
  --       type and subtype entities. This flag is only valid if the entity is
--- 3501,3506 ----
*************** package Einfo is
*** 3509,3514 ****
--- 3578,3592 ----
  --       a wrapper to handle inherited class-wide pre/post conditions that call
  --       overridden primitives or as a wrapper of a controlling function.
  
+ --    Is_IEEE_Extended_Precision
+ --       Defined in floating point types and subtypes. Indicates that the type
+ --       corresponds to the 80-bit IEEE extended precision format. That format
+ --       effectively uses 80 bits per value, but we set its Size to a larger
+ --       value for the reasons explained in the documentation comment of
+ --       Build_Float_Type. We also perform some extra work to consistently set
+ --       the extra bits to zero in the 'Write implementation, which is why we
+ --       need this flag.
+ 
  --    Itype_Printed
  --       Defined in all type and subtype entities. Set in Itypes if the Itype
  --       has been printed by Sprint. This is used to avoid printing an Itype
*************** package Einfo is
*** 3642,3648 ****
  --       subprogram or the formal's Extra_Accessibility - whichever one is
  --       lesser. The Minimum_Accessibility field then points to this object.
  
! --    Modulus [base type only]
  --       Defined in modular types. Contains the modulus. For the binary case,
  --       this will be a power of 2, but if Non_Binary_Modulus is set, then it
  --       will not be a power of 2.
--- 3720,3726 ----
  --       subprogram or the formal's Extra_Accessibility - whichever one is
  --       lesser. The Minimum_Accessibility field then points to this object.
  
! --    Modulus [implementation base type only]
  --       Defined in modular types. Contains the modulus. For the binary case,
  --       this will be a power of 2, but if Non_Binary_Modulus is set, then it
  --       will not be a power of 2.
*************** package Einfo is
*** 3662,3671 ****
  --       preelaborable initialization at freeze time (this has to be deferred
  --       to the freeze point because of the rule about overriding Initialize).
  
! --    Needs_Activation_Record
! --       Defined on generated subprogram types. Indicates that a call through
! --       a named or anonymous access to subprogram requires an activation
! --       record when compiling with unnesting for C or LLVM.
  
  --    Needs_Debug_Info
  --       Defined in all entities. Set if the entity requires normal debugging
--- 3740,3749 ----
  --       preelaborable initialization at freeze time (this has to be deferred
  --       to the freeze point because of the rule about overriding Initialize).
  
! --    Needs_Construction
! --       Defined in all type and subtype entities. Set only for record type
! --       entities for which at least one ancestor has specified a constructor
! --       through the 'Constructor direct attribute definition.
  
  --    Needs_Debug_Info
  --       Defined in all entities. Set if the entity requires normal debugging
*************** package Einfo is
*** 3908,3914 ****
  --       Defined in E_Access_Subprogram_Type entities. Set only if the access
  --       type was generated by the expander as part of processing an access-
  --       to-protected-subprogram type. Points to the access-to-protected-
! --       subprogram type.
  
  --    Original_Array_Type
  --       Defined in modular types and array types and subtypes. Set only if
--- 3986,3992 ----
  --       Defined in E_Access_Subprogram_Type entities. Set only if the access
  --       type was generated by the expander as part of processing an access-
  --       to-protected-subprogram type. Points to the access-to-protected-
! --       subprogram type. Read by CodePeer.
  
  --    Original_Array_Type
  --       Defined in modular types and array types and subtypes. Set only if
*************** package Einfo is
*** 3943,3959 ****
  --         Points to the component in the base type.
  
  --    Overlays_Constant
! --       Defined in all entities. Set only for E_Constant or E_Variable for
! --       which there is an address clause that causes the entity to overlay
! --       a constant object.
  
  --    Overridden_Operation
  --       Defined in subprograms. For overriding operations, points to the
! --       user-defined parent subprogram that is being overridden. Note: this
! --       attribute uses the same field as Static_Initialization. The latter
! --       is only defined for internal initialization procedures, for which
! --       Overridden_Operation is irrelevant. Thus this attribute must not be
! --       set for init_procs.
  
  --    Package_Instantiation
  --       Defined in packages and generic packages. When defined, this field
--- 4021,4044 ----
  --         Points to the component in the base type.
  
  --    Overlays_Constant
! --       Defined in constants and variables. Set if there is an address clause
! --       that causes the entity to overlay a constant object.
! 
! --    Overridden_Inherited_Operation
! --       Defined in subprograms and enumeration literals. When set on a
! --       subprogram S, indicates an inherited subprogram that S overrides.
! --       In the case of a privately declared explicit subprogram E that
! --       overrides a private inherited subprogram, and the inherited
! --       subprogram itself overrides another inherited subprogram declared
! --       for a private extension, the field on E will reference the subprogram
! --       inherited by the private extension. This field is used for properly
! --       handling visibility for such privately declared subprograms. This
! --       field is always Empty for enumeration literal entities.
  
  --    Overridden_Operation
  --       Defined in subprograms. For overriding operations, points to the
! --       user-defined parent subprogram from which the inherited subprogram
! --       that is being overridden is derived.
  
  --    Package_Instantiation
  --       Defined in packages and generic packages. When defined, this field
*************** package Einfo is
*** 3985,3990 ****
--- 4070,4079 ----
  --       used when obtaining the formal kind of a formal parameter (the result
  --       is one of E_[In/Out/In_Out]_Parameter).
  
+ --    Parent_Levels
+ --       Assrtion levels that the given level depends on are considered to be
+ --       parent levels of that level.
+ 
  --    Parent_Subtype [base type only]
  --       Defined in E_Record_Type. Set only for derived tagged types, in which
  --       case it points to the subtype of the parent type. This is the type
*************** package Einfo is
*** 4180,4193 ****
  --       refine the state, in other words, all the hidden states that appear in
  --       the constituent_list of aspect/pragma Refined_State.
  
- --    Register_Exception_Call
- --       Defined in exception entities. When an exception is declared,
- --       a call is expanded to Register_Exception. This field points to
- --       the expanded N_Procedure_Call_Statement node for this call. It
- --       is used for Import/Export_Exception processing to modify the
- --       register call to make appropriate entries in the special tables
- --       used for handling these pragmas at run time.
- 
  --    Related_Array_Object
  --       Defined in array types and subtypes. Used only for the base type
  --       and subtype created for an anonymous array object. Set to point
--- 4269,4274 ----
*************** package Einfo is
*** 4387,4397 ****
  --       set, in which case this is the entity for the associated instance of
  --       System.Shared_Storage.Shared_Var_Procs. See Exp_Smem for full details.
  
- --    Size_Check_Code
- --       Defined in constants and variables. Normally Empty. Set if code is
- --       generated to check the size of the object. This field is used to
- --       suppress this code if a subsequent address clause is encountered.
- 
  --    Size_Clause (synthesized)
  --       Applies to all entities. If a size or value size clause is present in
  --       the rep item chain for an entity then that attribute definition clause
--- 4468,4473 ----
*************** package Einfo is
*** 4520,4528 ****
  --       initialized statically. The value of this attribute is a positional
  --       aggregate whose components are compile-time static values. Used
  --       when available in object declarations to eliminate the call to the
! --       initialization procedure, and to minimize elaboration code. Note:
! --       This attribute uses the same field as Overridden_Operation, which is
! --       irrelevant in init_procs.
  
  --    Static_Real_Or_String_Predicate
  --       Defined in real types/subtypes with static predicates (with the two
--- 4596,4602 ----
  --       initialized statically. The value of this attribute is a positional
  --       aggregate whose components are compile-time static values. Used
  --       when available in object declarations to eliminate the call to the
! --       initialization procedure, and to minimize elaboration code.
  
  --    Static_Real_Or_String_Predicate
  --       Defined in real types/subtypes with static predicates (with the two
*************** package Einfo is
*** 4620,4626 ****
  --       if the type would normally require initialization. Set by use of
  --       pragma Suppress_Initialization and also for internal entities where
  --       we know that no initialization is required. For example, enumeration
! --       image table entities set it.
  
  --    Suppress_Style_Checks
  --       Defined in all entities. Suppresses any style checks specifically
--- 4694,4700 ----
  --       if the type would normally require initialization. Set by use of
  --       pragma Suppress_Initialization and also for internal entities where
  --       we know that no initialization is required. For example, enumeration
! --       image table entities set it. This is unrelated to pragma Import.
  
  --    Suppress_Style_Checks
  --       Defined in all entities. Suppresses any style checks specifically
*************** package Einfo is
*** 4786,4792 ****
  
  --    Wrapped_Statements
  --       Defined in functions, procedures, entries, and entry families. Refers
! --       to the entity of the _Wrapped_Statements procedure, which gets
  --       generated as part of the expansion of contracts and postconditions
  --       and contains its enclosing subprogram's original source declarations
  --       and statements.
--- 4860,4866 ----
  
  --    Wrapped_Statements
  --       Defined in functions, procedures, entries, and entry families. Refers
! --       to the entity of the _Wrapped_Statements subprogram, which gets
  --       generated as part of the expansion of contracts and postconditions
  --       and contains its enclosing subprogram's original source declarations
  --       and statements.
*************** package Einfo is
*** 4963,4968 ****
--- 5037,5043 ----
     --    Is_Known_Valid
     --    Is_Limited_Composite
     --    Is_Limited_Record
+    --    Is_Link_Once
     --    Is_Loop_Parameter
     --    Is_Obsolescent
     --    Is_Package_Body_Entity
*************** package Einfo is
*** 4983,4996 ****
     --    Is_Thunk
     --    Is_Trivial_Subprogram
     --    Is_Unchecked_Union
-    --    Is_Unimplemented
     --    Is_Visible_Formal
     --    Kill_Elaboration_Checks
     --    Low_Bound_Tested
     --    Materialize_Entity
     --    Needs_Debug_Info
     --    Never_Set_In_Source
-    --    Overlays_Constant
     --    Referenced
     --    Referenced_As_LHS
     --    Referenced_As_Out_Parameter
--- 5058,5069 ----
*************** package Einfo is
*** 5096,5101 ****
--- 5169,5175 ----
     --    May_Inherit_Delayed_Rep_Aspects
     --    Must_Be_On_Byte_Boundary
     --    Must_Have_Preelab_Init
+    --    Needs_Construction
     --    Optimize_Alignment_Space
     --    Optimize_Alignment_Time
     --    Partial_View_Has_Unknown_Discr
*************** package Einfo is
*** 5162,5171 ****
     --  E_Access_Subprogram_Type
     --    Equivalent_Type                       (remote types only)
     --    Directly_Designated_Type
-    --    Needs_No_Actuals
     --    Original_Access_Type
     --    Can_Use_Internal_Rep
-    --    Needs_Activation_Record
     --    Associated_Storage_Pool $$$
     --    Interface_Name $$$
     --    (plus type attributes)
--- 5236,5244 ----
     --  E_Access_Subprogram_Type
     --    Equivalent_Type                       (remote types only)
     --    Directly_Designated_Type
     --    Original_Access_Type
+    --    Needs_No_Actuals
     --    Can_Use_Internal_Rep
     --    Associated_Storage_Pool $$$
     --    Interface_Name $$$
     --    (plus type attributes)
*************** package Einfo is
*** 5178,5184 ****
     --    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)
     --    Is_Access_Constant
     --    Is_Local_Anonymous_Access
--- 5251,5256 ----
*************** package Einfo is
*** 5204,5210 ****
     --    Directly_Designated_Type
     --    Storage_Size_Variable                 is this needed ???
     --    Can_Use_Internal_Rep
-    --    Needs_Activation_Record
     --    (plus type attributes)
  
     --  E_Anonymous_Access_Type
--- 5276,5281 ----
*************** package Einfo is
*** 5238,5243 ****
--- 5309,5318 ----
     --    Number_Dimensions                     (synth)
     --    (plus type attributes)
  
+    --  E_Assertion_Level
+    --    Child_Levels
+    --    Parent_Levels
+ 
     --  E_Block
     --    Renamed_Entity $$$
     --    Renamed_Object $$$
*************** package Einfo is
*** 5315,5326 ****
     --    Actual_Subtype
     --    Renamed_Object
     --    Renamed_Entity $$$
-    --    Size_Check_Code                       (constants only)
     --    Prival_Link                           (privals only)
     --    Interface_Name                        (constants only)
     --    Related_Type                          (constants only)
     --    Initialization_Statements
!    --    BIP_Initialization_Call
     --    Finalization_Master_Node
     --    Last_Aggregate_Assignment
     --    Activation_Record_Component
--- 5390,5400 ----
     --    Actual_Subtype
     --    Renamed_Object
     --    Renamed_Entity $$$
     --    Prival_Link                           (privals only)
     --    Interface_Name                        (constants only)
     --    Related_Type                          (constants only)
     --    Initialization_Statements
!    --    BIP_Initialization_Call               (constants only)
     --    Finalization_Master_Node
     --    Last_Aggregate_Assignment
     --    Activation_Record_Component
*************** package Einfo is
*** 5350,5355 ****
--- 5424,5430 ----
     --    Is_Volatile_Full_Access
     --    Optimize_Alignment_Space              (constants only)
     --    Optimize_Alignment_Time               (constants only)
+    --    Overlays_Constant                     (constants only)
     --    SPARK_Pragma_Inherited                (constants only)
     --    Stores_Attribute_Old_Prefix           (constants only)
     --    Treat_As_Volatile
*************** package Einfo is
*** 5410,5420 ****
     --    Scope_Depth_Value
     --    Protection_Object                    (protected kind)
     --    Contract_Wrapper
-    --    Extra_Formals
     --    Contract
     --    SPARK_Pragma                         (protected kind)
     --    Default_Expressions_Processed
     --    Entry_Accepted
     --    Has_Yield_Aspect
     --    Has_Expanded_Contract
     --    Ignore_SPARK_Mode_Pragmas
--- 5485,5496 ----
     --    Scope_Depth_Value
     --    Protection_Object                    (protected kind)
     --    Contract_Wrapper
     --    Contract
     --    SPARK_Pragma                         (protected kind)
     --    Default_Expressions_Processed
     --    Entry_Accepted
+    --    Extra_Formals
+    --    Extra_Formals_Known
     --    Has_Yield_Aspect
     --    Has_Expanded_Contract
     --    Ignore_SPARK_Mode_Pragmas
*************** package Einfo is
*** 5442,5447 ****
--- 5518,5524 ----
     --    Enumeration_Pos
     --    Enumeration_Rep
     --    Alias
+    --    Overridden_Inherited_Operation
     --    Enumeration_Rep_Expr
     --    Interface_Name $$$
     --    Renamed_Object $$$
*************** package Einfo is
*** 5476,5482 ****
     --    Esize
     --    Alignment
     --    Renamed_Entity
-    --    Register_Exception_Call
     --    Interface_Name
     --    Activation_Record_Component
     --    Discard_Names
--- 5553,5558 ----
*************** package Einfo is
*** 5492,5497 ****
--- 5568,5574 ----
     --    Digits_Value
     --    Float_Rep                            (Float_Rep_Kind)
     --    Default_Aspect_Value                 (base type only)
+    --    Is_IEEE_Extended_Precision
     --    Scalar_Range
     --    Static_Real_Or_String_Predicate
     --    Machine_Emax_Value                   (synth)
*************** package Einfo is
*** 5512,5518 ****
     --  E_Function
     --  E_Generic_Function
     --    Mechanism                            (Mechanism_Type)
-    --    Handler_Records                      (non-generic case only)
     --    Protected_Body_Subprogram
     --    Next_Inlined_Subprogram
     --    Elaboration_Entity                   (not implicit /=)
--- 5589,5594 ----
*************** package Einfo is
*** 5533,5541 ****
--- 5609,5619 ----
     --    Subps_Index                          (non-generic case only)
     --    Interface_Alias
     --    LSP_Subprogram                       (non-generic case only)
+    --    Overridden_Inherited_Operation
     --    Overridden_Operation
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
+    --    Extra_Formals_Known                  (non-generic case only)
     --    Anonymous_Collections                (non-generic case only)
     --    Corresponding_Equality               (implicit /= only)
     --    Thunk_Entity                         (thunk case only)
*************** package Einfo is
*** 5573,5579 ****
     --    Is_Abstract_Subprogram               (non-generic case only)
     --    Is_Called                            (non-generic case only)
     --    Is_Class_Wide_Wrapper
!    --    Is_Constructor
     --    Is_CUDA_Kernel                       (non-generic case only)
     --    Is_DIC_Procedure                     (non-generic case only)
     --    Is_Discrim_SO_Function
--- 5651,5657 ----
     --    Is_Abstract_Subprogram               (non-generic case only)
     --    Is_Called                            (non-generic case only)
     --    Is_Class_Wide_Wrapper
!    --    Is_CPP_Constructor
     --    Is_CUDA_Kernel                       (non-generic case only)
     --    Is_DIC_Procedure                     (non-generic case only)
     --    Is_Discrim_SO_Function
*************** package Einfo is
*** 5666,5672 ****
     --    Renamed_Object
     --    Spec_Entity
     --    Default_Value
-    --    Default_Expr_Function
     --    Protected_Formal
     --    Extra_Constrained
     --    Minimum_Accessibility
--- 5744,5749 ----
*************** package Einfo is
*** 5720,5725 ****
--- 5797,5805 ----
     --    Non_Binary_Modulus                   (base type only)
     --    Has_Biased_Representation
     --    Has_Shift_Operator                   (base type only)
+    --    Has_Modular_Operations               (synth)
+    --    Has_Overflow_Operations              (synth)
+    --    Has_Unsigned_Base_Range_Aspect       (base type only)
     --    No_Predicate_On_Actual
     --    No_Dynamic_Predicate_On_Actual
     --    Type_Low_Bound                       (synth)
*************** package Einfo is
*** 5737,5745 ****
--- 5817,5828 ----
     --    Extra_Accessibility_Of_Result
     --    Last_Entity
     --    Subps_Index
+    --    Overridden_Inherited_Operation
     --    Overridden_Operation
     --    Linker_Section_Pragma
     --    Contract
+    --    Extra_Formals
+    --    Extra_Formals_Known
     --    Import_Pragma
     --    LSP_Subprogram
     --    SPARK_Pragma
*************** package Einfo is
*** 5777,5784 ****
  
     --  E_Package
     --  E_Generic_Package
-    --    Dependent_Instances                  (for an instance)
-    --    Handler_Records                      (non-generic case only)
     --    Generic_Homonym                      (generic case only)
     --    Associated_Formal_Package
     --    Elaboration_Entity
--- 5860,5865 ----
*************** package Einfo is
*** 5838,5844 ****
     --    Scope_Depth                          (synth)
  
     --  E_Package_Body
-    --    Handler_Records                      (non-generic case only)
     --    Related_Instance                     (non-generic case only)
     --    First_Entity
     --    Spec_Entity
--- 5919,5924 ----
*************** package Einfo is
*** 5873,5879 ****
     --  E_Procedure
     --  E_Generic_Procedure
     --    Associated_Node_For_Itype $$$ E_Procedure
-    --    Handler_Records                      (non-generic case only)
     --    Protected_Body_Subprogram
     --    Next_Inlined_Subprogram
     --    Elaboration_Entity
--- 5953,5958 ----
*************** package Einfo is
*** 5894,5902 ****
--- 5973,5983 ----
     --    Subps_Index                          (non-generic case only)
     --    Interface_Alias
     --    LSP_Subprogram                       (non-generic case only)
+    --    Overridden_Inherited_Operation
     --    Overridden_Operation                 (never for init proc)
     --    Wrapped_Entity                       (non-generic case only)
     --    Extra_Formals
+    --    Extra_Formals_Known                  (non-generic case only)
     --    Anonymous_Collections                (non-generic case only)
     --    Static_Initialization                (init_proc only)
     --    Thunk_Entity                         (thunk case only)
*************** package Einfo is
*** 5934,5939 ****
--- 6015,6021 ----
     --    Is_Called                            (non-generic case only)
     --    Is_Class_Wide_Wrapper
     --    Is_Constructor
+    --    Is_CPP_Constructor
     --    Is_CUDA_Kernel
     --    Is_DIC_Procedure                     (non-generic case only)
     --    Is_Elaboration_Checks_OK_Id
*************** package Einfo is
*** 6103,6108 ****
--- 6185,6191 ----
     --    Scalar_Range
     --    Static_Discrete_Predicate
     --    Has_Biased_Representation
+    --    Has_Overflow_Operations              (synth)
     --    Has_Shift_Operator                   (base type only)
     --    No_Predicate_On_Actual
     --    No_Dynamic_Predicate_On_Actual
*************** package Einfo is
*** 6124,6129 ****
--- 6207,6213 ----
     --    Last_Entity
     --    Scope_Depth_Value
     --    Extra_Formals
+    --    Extra_Formals_Known
     --    Anonymous_Collections
     --    Contract
     --    SPARK_Pragma
*************** package Einfo is
*** 6137,6142 ****
--- 6221,6227 ----
     --    Extra_Accessibility_Of_Result
     --    Directly_Designated_Type
     --    Extra_Formals
+    --    Extra_Formals_Known
     --    Access_Subprogram_Wrapper
     --    First_Formal                         (synth)
     --    First_Formal_With_Extras             (synth)
*************** package Einfo is
*** 6201,6207 ****
     --    Renamed_Object
     --    Renamed_Entity $$$
     --    Discriminal_Link $$$
-    --    Size_Check_Code
     --    Prival_Link
     --    Interface_Name
     --    Shared_Var_Procs_Instance
--- 6286,6291 ----
*************** package Einfo is
*** 6245,6250 ****
--- 6329,6335 ----
     --    OK_To_Rename
     --    Optimize_Alignment_Space
     --    Optimize_Alignment_Time
+    --    Overlays_Constant
     --    SPARK_Pragma_Inherited
     --    Suppress_Initialization
     --    Treat_As_Volatile
*************** package Einfo is
*** 6273,6279 ****
     --    Entry_Formal $$$
     --    Esize $$$
     --    First_Entity $$$
-    --    Handler_Records $$$
     --    Interface_Name $$$
     --    Last_Entity $$$
     --    Renamed_Entity $$$
--- 6358,6363 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/elists.adb gcc-16.1.0-RC-20260423/gcc/ada/elists.adb
*** gcc-15.2.0/gcc/ada/elists.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/elists.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/elists.ads gcc-16.1.0-RC-20260423/gcc/ada/elists.ads
*** gcc-15.2.0/gcc/ada/elists.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/elists.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/elists.h gcc-16.1.0-RC-20260423/gcc/ada/elists.h
*** gcc-15.2.0/gcc/ada/elists.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/elists.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/env.c gcc-16.1.0-RC-20260423/gcc/ada/env.c
*** gcc-15.2.0/gcc/ada/env.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/env.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2005-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** void __gnat_clearenv (void)
*** 229,235 ****
     || defined (__CYGWIN__) \
     || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__rtems__) \
     || defined (__DragonFly__) || defined (__DJGPP__)
!   /* On Windows, FreeBSD and MacOS there is no function to clean all the
       environment but there is a "clean" way to unset a variable. So go
       through the environ table and call __gnat_unsetenv on all entries */
    char **env = __gnat_environ ();
--- 229,236 ----
     || defined (__CYGWIN__) \
     || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__rtems__) \
     || defined (__DragonFly__) || defined (__DJGPP__)
!   /* On several platforms (e.g. Windows, FreeBSD, MacOS...)
!      there is no function to clean all the
       environment but there is a "clean" way to unset a variable. So go
       through the environ table and call __gnat_unsetenv on all entries */
    char **env = __gnat_environ ();
diff -Nrcpad gcc-15.2.0/gcc/ada/env.h gcc-16.1.0-RC-20260423/gcc/ada/env.h
*** gcc-15.2.0/gcc/ada/env.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/env.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2009-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/err_vars.ads gcc-16.1.0-RC-20260423/gcc/ada/err_vars.ads
*** gcc-15.2.0/gcc/ada/err_vars.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/err_vars.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/errid-diagnostic_repository.ads gcc-16.1.0-RC-20260423/gcc/ada/errid-diagnostic_repository.ads
*** gcc-15.2.0/gcc/ada/errid-diagnostic_repository.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/errid-diagnostic_repository.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,98 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --           E R R I D . D I A G N O S T I C _ R E P O S I T O R Y          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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;
+ 
+ package Errid.Diagnostic_Repository is
+    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.
+ 
+       Switch : Switch_Id := No_Switch_Id;
+       --  The switch that controls the diagnostic message.
+    end record;
+ 
+    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 : constant Diagnostics_Registry_Type :=
+      (No_Diagnostic_Id => <>,
+       GNAT0001         =>
+         (Status   => Active,
+          Human_Id => new String'("Default_Iterator_Not_Primitive_Error"),
+          Switch   => No_Switch_Id),
+       GNAT0002         =>
+         (Status   => Active,
+          Human_Id => new String'("Invalid_Operand_Types_General_Error"),
+          Switch   => No_Switch_Id),
+       GNAT0003         =>
+         (Status   => Active,
+          Human_Id => new String'("Pragma_No_Effect_With_Lock_Free_Warning"),
+          Switch   => No_Switch_Id),
+       GNAT0004         =>
+         (Status   => Active,
+          Human_Id => new String'("End_Loop_Expected_Error"),
+          Switch   => No_Switch_Id),
+       GNAT0005         =>
+         (Status   => Active,
+          Human_Id => new String'("Representation_Too_Late_Error"),
+          Switch   => No_Switch_Id),
+       GNAT0006         =>
+         (Status   => Active,
+          Human_Id => new String'("Mixed_Container_Aggregate_Error"),
+          Switch   => No_Switch_Id),
+      GNAT0007         =>
+         (Status   => Active,
+          Human_Id => new String'("Volatile_Not_Modifed_Warning"),
+          Switch   => gnatwk),
+      GNAT0008         =>
+         (Status   => Active,
+          Human_Id => new String'("Variable_Not_Modifed_Warning"),
+          Switch   => gnatwk),
+      GNAT0009         =>
+         (Status   => Active,
+          Human_Id => new String'("In_Out_Not_Modifed_Warning"),
+          Switch   => gnatwk));
+ end Errid.Diagnostic_Repository;
diff -Nrcpad gcc-15.2.0/gcc/ada/errid-switch_repository.adb gcc-16.1.0-RC-20260423/gcc/ada/errid-switch_repository.adb
*** gcc-15.2.0/gcc/ada/errid-switch_repository.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/errid-switch_repository.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,46 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               E R R I D . S W I T C H _ R E P O S I T O R Y              --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 body Errid.Switch_Repository is
+ 
+    -------------------
+    -- 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;
+ 
+ end Errid.Switch_Repository;
diff -Nrcpad gcc-15.2.0/gcc/ada/errid-switch_repository.ads gcc-16.1.0-RC-20260423/gcc/ada/errid-switch_repository.ads
*** gcc-15.2.0/gcc/ada/errid-switch_repository.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/errid-switch_repository.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,666 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --               E R R I D . S W I T C H _ R E P O S I T O R Y              --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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;
+ 
+ package Errid.Switch_Repository is
+ 
+    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.
+ 
+       Diagnostics : Diagnostic_Id_Array_Access := null;
+       --  Diagnostics that are activated by the given switch.
+ 
+    end record;
+ 
+    Switches : constant array (Switch_Id) of Switch_Type :=
+      (No_Switch_Id       => <>,
+       gnatwb             =>
+         (Human_Id          => new String'("Warn_On_Bad_Fixed_Value"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwb"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwc             =>
+         (Human_Id          => new String'("Constant_Condition_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwc"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatwf             =>
+         (Human_Id          => new String'("Check_Unreferenced_Formals"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwf"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwg             =>
+         (Human_Id          => new String'("Warn_On_Unrecognized_Pragma"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwg"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwh             =>
+         (Human_Id          => new String'("Warn_On_Hiding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwh"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwi             =>
+         (Human_Id          => new String'("Implementation_Unit_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwi"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwj             =>
+         (Human_Id          => new String'("Warn_On_Obsolescent_Feature"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwj"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwk             =>
+         (Human_Id          => new String'("Warn_On_Constant"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwk"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       =>
+            new Diagnostic_Id_Array'(GNAT0007, GNAT0008, GNAT0009)),
+       gnatwl             =>
+         (Human_Id          => new String'("Elab_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwl"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwm             =>
+         (Human_Id          => new String'("Warn_On_Modified_Unread"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwm"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwo             =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwo"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwp             =>
+         (Human_Id          => new String'("Ineffective_Inline_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwp"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwq             =>
+         (Human_Id          =>
+            new String'("Warn_On_Questionable_Missing_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwq"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwr             =>
+         (Human_Id          => new String'("Warn_On_Redundant_Constructs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwr"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwt             =>
+         (Human_Id          => new String'("Warn_On_Deleted_Code"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwt"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwu             =>
+         (Human_Id          => new String'("Warn_On_Unused_Entities"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwu"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwv             =>
+         (Human_Id          => new String'("Warn_On_No_Value_Assigned"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwv"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatww             =>
+         (Human_Id          => new String'("Warn_On_Assumed_Low_Bound"),
+          Status            => Active,
+          Short_Name        => new String'("gnatww"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwx             =>
+         (Human_Id          => new String'("Warn_On_Export_Import"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwx"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwy             =>
+         (Human_Id          => new String'("Warn_On_Ada_Compatibility_Issues"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwy"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatwz             =>
+         (Human_Id          => new String'("Warn_On_Unchecked_Conversion"),
+          Status            => Active,
+          Short_Name        => new String'("gnatwz"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatw_dot_i        =>
+         (Human_Id          => new String'("Warn_On_Overlap"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.i"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatw_dot_l        =>
+         (Human_Id          => new String'("List_Inherited_Aspects"),
+          Status            => Active,
+          Short_Name        => new String'("gnatw.l"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatya             =>
+         (Human_Id          => new String'("Style_Check_Attribute_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatya"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyaa            =>
+         (Human_Id          => new String'("Address_Clause_Overlay_Warnings"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyA"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyb             =>
+         (Human_Id          => new String'("Style_Check_Blanks_At_End"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyb"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatyc             =>
+         (Human_Id          => new String'("Style_Check_Comments_Double_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyc"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatycc            =>
+         (Human_Id          => new String'("Style_Check_Comments_Single_Space"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyC"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyd             =>
+         (Human_Id          => new String'("Style_Check_DOS_Line_Terminator"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyd"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatydd            =>
+         (Human_Id          => new String'("Style_Check_Mixed_Case_Decls"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyD"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatye             =>
+         (Human_Id          => new String'("Style_Check_End_Labels"),
+          Status            => Active,
+          Short_Name        => new String'("gnatye"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyf             =>
+         (Human_Id          => new String'("Style_Check_Form_Feeds"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyf"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyh             =>
+         (Human_Id          => new String'("Style_Check_Horizontal_Tabs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyh"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyi             =>
+         (Human_Id          => new String'("Style_Check_If_Then_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyi"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyii            =>
+         (Human_Id          => new String'("Style_Check_Mode_In"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyI"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyk             =>
+         (Human_Id          => new String'("Style_Check_Keyword_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyk"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyl             =>
+         (Human_Id          => new String'("Style_Check_Layout"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyl"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyll            =>
+         (Human_Id          => new String'("Style_Check_Max_Nesting_Level"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyL"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatym             =>
+         (Human_Id          => new String'("Style_Check_Max_Line_Length"),
+          Status            => Active,
+          Short_Name        => new String'("gnatym"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => 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,
+          Diagnostics       => null),
+       gnatyn             =>
+         (Human_Id          => new String'("Style_Check_Standard"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyn"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyo             =>
+         (Human_Id          => new String'("Style_Check_Order_Subprograms"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyo"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyoo            =>
+         (Human_Id          => new String'("Style_Check_Missing_Overriding"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyO"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyp             =>
+         (Human_Id          => new String'("Style_Check_Pragma_Casing"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyp"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyr             =>
+         (Human_Id          => new String'("Style_Check_References"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyr"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatys             =>
+         (Human_Id          => new String'("Style_Check_Specs"),
+          Status            => Active,
+          Short_Name        => new String'("gnatys"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyss            =>
+         (Human_Id          => new String'("Style_Check_Separate_Stmt_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyS"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatytt            =>
+         (Human_Id          => new String'("Style_Check_Tokens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyt"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyu             =>
+         (Human_Id          => new String'("Style_Check_Blank_Lines"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyu"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyx             =>
+         (Human_Id          => new String'("Style_Check_Xtra_Parens"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyx"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatyz             =>
+         (Human_Id          =>
+            new String'("Style_Check_Xtra_Parens_Precedence"),
+          Status            => Active,
+          Short_Name        => new String'("gnatyz"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null),
+       gnatel             =>
+         (Human_Id          => new String'("Display_Elaboration_Messages"),
+          Status            => Active,
+          Short_Name        => new String'("gnatel"),
+          Description       => null,
+          Documentation_Url => null,
+          Diagnostics       => null));
+ 
+    function Get_Switch_Id (Name : String) return Switch_Id;
+    --  Find the Switch_Id with a given Short_Name.
+ 
+ end Errid.Switch_Repository;
diff -Nrcpad gcc-15.2.0/gcc/ada/errid.adb gcc-16.1.0-RC-20260423/gcc/ada/errid.adb
*** gcc-15.2.0/gcc/ada/errid.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/errid.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,175 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                                E R R I D                                 --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 Errid.Diagnostic_Repository; use Errid.Diagnostic_Repository;
+ with Errid.Switch_Repository;     use Errid.Switch_Repository;
+ with Erroutc.SARIF_Emitter;       use Erroutc.SARIF_Emitter;
+ 
+ package body Errid is
+ 
+    Doc_Directory : constant String := "./error_codes";
+    Doc_Extension : constant String := ".md";
+ 
+    Diagnostic_Inconsistency : exception;
+ 
+    procedure Add_All_Diagnostic_Rules (Printer : in out SARIF_Printer);
+    --  Add all active Diagnostic_Id-s to the SARIF_Printer
+ 
+    procedure Add_All_Switch_Rules (Printer : in out SARIF_Printer);
+    --  Add all active Switch_Id-s to the SARIF_Printer
+ 
+    procedure Check_Diagnostic_To_Switch_Consistency (D_Id : Diagnostic_Id);
+    --  Check that if a diagnostic has a switch then that diagnostic is also
+    --  included in the list of diagnostics for that switch.
+ 
+    procedure Check_Switch_To_Diagnostic_Consistency (S_Id : Switch_Id);
+    --  Check that if a Switch has diagnostics then that diagnostic has the same
+    --  switch marked as its switch.
+ 
+    --------------------------------------------
+    -- Check_Diagnostic_To_Switch_Consistency --
+    --------------------------------------------
+ 
+    procedure Check_Diagnostic_To_Switch_Consistency (D_Id : Diagnostic_Id) is
+       D       : constant Diagnostic_Entry_Type := Diagnostic_Entries (D_Id);
+       Err_Msg : constant String :=
+         Switch_Id'Image (D.Switch)
+         & " should contain "
+         & Diagnostic_Id'Image (D_Id)
+         & " in its diagnostics";
+    begin
+       if D.Switch = No_Switch_Id then
+          return;
+       end if;
+ 
+       if Switches (D.Switch).Diagnostics = null then
+          raise Diagnostic_Inconsistency with Err_Msg;
+       end if;
+ 
+       for DD of Switches (D.Switch).Diagnostics.all loop
+          if D_Id = DD then
+             return;
+          end if;
+       end loop;
+ 
+       raise Diagnostic_Inconsistency with Err_Msg;
+    end Check_Diagnostic_To_Switch_Consistency;
+ 
+    --------------------------------------------
+    -- Check_Switch_To_Diagnostic_Consistency --
+    --------------------------------------------
+ 
+    procedure Check_Switch_To_Diagnostic_Consistency (S_Id : Switch_Id) is
+       S : constant Switch_Type := Switches (S_Id);
+       D : Diagnostic_Entry_Type;
+    begin
+       if S.Diagnostics = null then
+          return;
+       end if;
+ 
+       for D_Id of S.Diagnostics.all loop
+          D := Diagnostic_Entries (D_Id);
+          if D.Switch /= S_Id then
+             raise Diagnostic_Inconsistency
+               with
+                 Switch_Id'Image (S_Id)
+                 & " should be the switch for "
+                 & Diagnostic_Id'Image (D_Id);
+          end if;
+       end loop;
+    end Check_Switch_To_Diagnostic_Consistency;
+ 
+    ----------------------------
+    -- Get_Documentation_File --
+    ----------------------------
+ 
+    function Get_Documentation_File (Id : Diagnostic_Id) return String is
+    begin
+       if Id = No_Diagnostic_Id then
+          return "";
+       else
+          return Doc_Directory & "/" & To_String (Id) & Doc_Extension;
+       end if;
+    end Get_Documentation_File;
+ 
+    ---------------
+    -- 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;
+ 
+    ------------------------------
+    -- Add_All_Diagnostic_Rules --
+    ------------------------------
+ 
+    procedure Add_All_Diagnostic_Rules (Printer : in out SARIF_Printer) is
+    begin
+       Printer.Diagnostics := Diagnostic_Id_Lists.Create;
+       for Id in Diagnostic_Id loop
+          if Id /= No_Diagnostic_Id then
+             Diagnostic_Id_Lists.Append (Printer.Diagnostics, Id);
+             Check_Diagnostic_To_Switch_Consistency (Id);
+          end if;
+       end loop;
+    end Add_All_Diagnostic_Rules;
+ 
+    --------------------------
+    -- Add_All_Switch_Rules --
+    --------------------------
+ 
+    procedure Add_All_Switch_Rules (Printer : in out SARIF_Printer) is
+    begin
+       Printer.Switches := Switch_Id_Lists.Create;
+       for S in Switch_Id loop
+          if S /= No_Switch_Id then
+             Switch_Id_Lists.Append (Printer.Switches, S);
+             Check_Switch_To_Diagnostic_Consistency (S);
+          end if;
+       end loop;
+    end Add_All_Switch_Rules;
+ 
+    ---------------------------------
+    -- Print_Diagnostic_Repository --
+    ---------------------------------
+ 
+    procedure Print_Diagnostic_Repository is
+       Printer : SARIF_Printer;
+    begin
+       Add_All_Diagnostic_Rules (Printer);
+       Add_All_Switch_Rules (Printer);
+       Printer.Report_Type := Repository_Report;
+ 
+       Print_SARIF_Report (Printer);
+       Free (Printer);
+    end Print_Diagnostic_Repository;
+ 
+ end Errid;
diff -Nrcpad gcc-15.2.0/gcc/ada/errid.ads gcc-16.1.0-RC-20260423/gcc/ada/errid.ads
*** gcc-15.2.0/gcc/ada/errid.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/errid.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,146 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                                E R R I D                                 --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 Errid is
+ 
+    type Status_Type is
+      (Active,
+       Deprecated);
+ 
+    type Diagnostic_Id is
+      (No_Diagnostic_Id,
+       GNAT0001,
+       GNAT0002,
+       GNAT0003,
+       GNAT0004,
+       GNAT0005,
+       GNAT0006,
+       GNAT0007,
+       GNAT0008,
+       GNAT0009);
+ 
+    type Diagnostic_Id_Array is array (Positive range <>) of Diagnostic_Id;
+    type Diagnostic_Id_Array_Access is access Diagnostic_Id_Array;
+    type Switch_Id is (
+       No_Switch_Id,
+       gnatel,
+       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
+    );
+ 
+    subtype Active_Switch_Id is Switch_Id range gnatel .. gnatytt;
+ 
+    function Get_Documentation_File (Id : Diagnostic_Id) return String;
+    --  Return the location of the documentation file as a string.
+ 
+    function To_String (Id : Diagnostic_Id) return String;
+    --  Convert the diagnostic ID to a 4 character string padded with 0-s.
+ 
+    procedure Print_Diagnostic_Repository;
+    --  Print all of the Diagnostic_Id-s and Switch_Id-s as rules in the SARIF
+    --  format.
+ 
+ end Errid;
diff -Nrcpad gcc-15.2.0/gcc/ada/errno.c gcc-16.1.0-RC-20260423/gcc/ada/errno.c
*** gcc-15.2.0/gcc/ada/errno.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/errno.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 1992-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/errout.adb gcc-16.1.0-RC-20260423/gcc/ada/errout.adb
*** gcc-15.2.0/gcc/ada/errout.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/errout.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,43 ****
  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 Erroutc;        use Erroutc;
  with Gnatvsn;        use Gnatvsn;
  with Lib;            use Lib;
  with Opt;            use Opt;
--- 33,43 ----
  with Casing;         use Casing;
  with Csets;          use Csets;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Erroutc;        use Erroutc;
+ with Erroutc.Pretty_Emitter;
+ with Erroutc.SARIF_Emitter; use Erroutc.SARIF_Emitter;
  with Gnatvsn;        use Gnatvsn;
  with Lib;            use Lib;
  with Opt;            use Opt;
*************** with Output;         use Output;
*** 46,52 ****
  with Scans;          use Scans;
  with Sem_Aux;        use Sem_Aux;
  with Sinput;         use Sinput;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 46,51 ----
*************** package body Errout is
*** 96,106 ****
     -- Local Subprograms --
     -----------------------
  
     procedure Error_Msg_Internal
!      (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
--- 95,113 ----
     -- Local Subprograms --
     -----------------------
  
+    procedure Add_Unique_Diagnostics_And_Switches
+      (Printer : in out SARIF_Printer);
+    --  Fill the printer with the unique diagnostic and switch id.
+ 
     procedure Error_Msg_Internal
!      (Msg        : String;
!       Span       : Source_Span;
!       Opan       : Source_Span;
!       Msg_Cont   : Boolean;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  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
*** 157,164 ****
     procedure Set_Msg_Node (Node : Node_Id);
     --  Add the sequence of characters for the name associated with the given
     --  node to the current message. For N_Designator, N_Selected_Component,
!    --  N_Defining_Program_Unit_Name, and N_Expanded_Name, the Prefix is
!    --  included as well.
  
     procedure Set_Posted (N : Node_Id);
     --  Sets the Error_Posted flag on the given node, and all its parents that
--- 164,171 ----
     procedure Set_Msg_Node (Node : Node_Id);
     --  Add the sequence of characters for the name associated with the given
     --  node to the current message. For N_Designator, N_Selected_Component,
!    --  N_Defining_Program_Unit_Name, N_Expanded_Name, and N_Attribute_Reference
!    --  the Prefix is included as well.
  
     procedure Set_Posted (N : Node_Id);
     --  Sets the Error_Posted flag on the given node, and all its parents that
*************** package body Errout is
*** 212,217 ****
--- 219,310 ----
     --    " "     returns "?"
     --    other   trimmed, prefixed and suffixed with "?".
  
+    -----------------------------------------
+    -- Add_Unique_Diagnostics_And_Switches --
+    -----------------------------------------
+ 
+    procedure Add_Unique_Diagnostics_And_Switches
+      (Printer : in out SARIF_Printer)
+    is
+       E_Id  : Error_Msg_Id;
+       E_Obj : Error_Msg_Object;
+ 
+       procedure Insert_Diagnostic (D : Diagnostic_Id);
+       --  Insert a diagnostic to the printers diagnostic list by adding them in
+       --  the same order as they are defined (alphanumerically).
+ 
+       procedure Insert_Switch (S : Switch_Id);
+       --  Insert a switch to the printers swtiches list by adding them in
+       --  the same order as they are defined (alphanumerically).
+ 
+       -----------------------
+       -- Insert_Diagnostic --
+       -----------------------
+ 
+       procedure Insert_Diagnostic (D : Diagnostic_Id) is
+          use Diagnostic_Id_Lists;
+          It : Iterator := Iterate (Printer.Diagnostics);
+          El : Diagnostic_Id;
+       begin
+          while Has_Next (It) loop
+             Next (It, El);
+ 
+             if El = D then
+                return;
+             elsif El > D then
+                Insert_Before (Printer.Diagnostics, El, D);
+                return;
+             end if;
+          end loop;
+ 
+          Append (Printer.Diagnostics, D);
+       end Insert_Diagnostic;
+ 
+       -------------------
+       -- Insert_Switch --
+       -------------------
+ 
+       procedure Insert_Switch (S : Switch_Id) is
+          use Switch_Id_Lists;
+          It : Iterator := Iterate (Printer.Switches);
+          El : Switch_Id;
+       begin
+          --  Do not add a switch if the diagnostic was not using one
+ 
+          if S = No_Switch_Id then
+             return;
+          end if;
+ 
+          while Has_Next (It) loop
+             Next (It, El);
+ 
+             if El = S then
+                return;
+             elsif El > S then
+                Insert_Before (Printer.Switches, El, S);
+                return;
+             end if;
+          end loop;
+ 
+          Switch_Id_Lists.Append (Printer.Switches, S);
+       end Insert_Switch;
+ 
+       --  Start of processing for Add_Unique_Diagnostics_And_Switches
+ 
+    begin
+       Printer.Diagnostics := Diagnostic_Id_Lists.Create;
+       Printer.Switches := Switch_Id_Lists.Create;
+ 
+       E_Id := First_Error_Msg;
+       while E_Id /= No_Error_Msg loop
+          E_Obj := Errors.Table (E_Id);
+          Insert_Diagnostic (E_Obj.Id);
+          Insert_Switch (E_Obj.Switch);
+ 
+          Next_Error_Msg (E_Id);
+       end loop;
+    end Add_Unique_Diagnostics_And_Switches;
+ 
     -----------------------
     -- Change_Error_Text --
     -----------------------
*************** package body Errout is
*** 271,281 ****
           begin
              if not M.Deleted then
                 M.Deleted := True;
!                Warnings_Detected := Warnings_Detected - 1;
! 
!                if M.Warn_Err then
!                   Warnings_Treated_As_Errors := Warnings_Treated_As_Errors - 1;
!                end if;
              end if;
  
              Id := M.Next;
--- 364,370 ----
           begin
              if not M.Deleted then
                 M.Deleted := True;
!                Decrease_Error_Msg_Count (M);
              end if;
  
              Id := M.Next;
*************** package body Errout is
*** 285,290 ****
--- 374,513 ----
        end loop;
     end Delete_Warning_And_Continuations;
  
+    ------------------
+    -- 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;
+       L.Next       := No_Labeled_Span;
+ 
+       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;
+ 
+    ----------
+    -- Edit --
+    ----------
+ 
+    function Edit (Text : String; Span : Source_Span) return Edit_Type is
+    begin
+       return (Text => new String'(Text), Span => Span, Next => No_Edit);
+    end Edit;
+ 
+    ---------------
+    -- Insertion --
+    ---------------
+ 
+    function Insertion (Text : String; Location : Source_Ptr) return Edit_Type
+    is
+       function Location_Span (Loc : Source_Ptr) return Source_Span
+       is ((Ptr => Loc, First => Loc, Last => Loc - 1));
+       --  Returns a span for a given location without a span length. This is
+       --  useful for insertion edits where we want to distinguish it from a
+       --  span with a length of 1.
+ 
+    begin
+       return Edit (Text => Text, Span => Location_Span (Location));
+    end Insertion;
+ 
+    --------------
+    -- Deletion --
+    --------------
+ 
+    function Deletion (Span : Source_Span) return Edit_Type is
+    begin
+       return Edit (Text => "", Span => Span);
+    end Deletion;
+ 
+    ---------
+    -- Fix --
+    ---------
+ 
+    function Fix (Description : String; Edits : Edit_Array) return Fix_Type is
+       First_Edit : Edit_Id  := No_Edit;
+       Last_Edit  : Edit_Id  := No_Edit;
+    begin
+       for I in Edits'Range loop
+          Erroutc.Edits.Append (Edits (I));
+ 
+          if Last_Edit /= No_Edit then
+             Erroutc.Edits.Table (Last_Edit).Next := Erroutc.Edits.Last;
+          end if;
+          Last_Edit := Erroutc.Edits.Last;
+ 
+          --  Store the first element in the edit chain
+ 
+          if First_Edit = No_Edit then
+             First_Edit := Last_Edit;
+          end if;
+       end loop;
+ 
+       return (Description => new String'(Description),
+               Edits       => First_Edit,
+               Next        => No_Fix);
+    end Fix;
+ 
     ---------------
     -- Error_Msg --
     ---------------
*************** package body Errout is
*** 328,336 ****
     end Error_Msg;
  
     procedure Error_Msg
!      (Msg       : String;
!       Flag_Span : Source_Span;
!       N         : Node_Id)
     is
        Flag_Location : constant Source_Ptr := Flag_Span.Ptr;
  
--- 551,563 ----
     end Error_Msg;
  
     procedure Error_Msg
!      (Msg        : String;
!       Flag_Span  : Source_Span;
!       N          : Node_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
        Flag_Location : constant Source_Ptr := Flag_Span.Ptr;
  
*************** package body Errout is
*** 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;
  
--- 686,700 ----
        --  Error_Msg_Internal to place the message in the requested location.
  
        if Instantiation (Sindex) = No_Location then
!          Error_Msg_Internal
!            (Msg        => Msg,
!             Span       => Flag_Span,
!             Opan       => Flag_Span,
!             Msg_Cont   => False,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
           return;
        end if;
  
*************** package body Errout is
*** 626,635 ****
           --  Here we output the original message on the outer instantiation
  
           Error_Msg_Internal
!            (Msg      => Msg,
!             Span     => To_Span (Actual_Error_Loc),
!             Opan     => Flag_Span,
!             Msg_Cont => Msg_Cont_Status);
        end;
     end Error_Msg;
  
--- 861,874 ----
           --  Here we output the original message on the outer instantiation
  
           Error_Msg_Internal
!            (Msg        => Msg,
!             Span       => To_Span (Actual_Error_Loc),
!             Opan       => Flag_Span,
!             Msg_Cont   => Msg_Cont_Status,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
        end;
     end Error_Msg;
  
*************** package body Errout is
*** 715,721 ****
        --  error flag in this situation.
  
        S1 := Prev_Token_Ptr;
!       C := Source (S1);
  
        --  If the previous token is a string literal, we need a special approach
        --  since there may be white space inside the literal and we don't want
--- 954,960 ----
        --  error flag in this situation.
  
        S1 := Prev_Token_Ptr;
!       C := Sinput.Source (S1);
  
        --  If the previous token is a string literal, we need a special approach
        --  since there may be white space inside the literal and we don't want
*************** package body Errout is
*** 728,737 ****
           loop
              S1 := S1 + 1;
  
!             if Source (S1) = C then
                 S1 := S1 + 1;
!                exit when Source (S1) /= C;
!             elsif Source (S1) in Line_Terminator then
                 exit;
              end if;
           end loop;
--- 967,976 ----
           loop
              S1 := S1 + 1;
  
!             if Sinput.Source (S1) = C then
                 S1 := S1 + 1;
!                exit when Sinput.Source (S1) /= C;
!             elsif Sinput.Source (S1) in Line_Terminator then
                 exit;
              end if;
           end loop;
*************** package body Errout is
*** 749,758 ****
        --  characters in this context, since this is only for error recovery.
  
        else
!          while Source (S1) not in Line_Terminator
!            and then Source (S1) /= ' '
!            and then Source (S1) /= ASCII.HT
!            and then (Source (S1) /= '-' or else Source (S1 + 1) /= '-')
             and then S1 /= Token_Ptr
           loop
              S1 := S1 + 1;
--- 988,998 ----
        --  characters in this context, since this is only for error recovery.
  
        else
!          while Sinput.Source (S1) not in Line_Terminator
!            and then Sinput.Source (S1) /= ' '
!            and then Sinput.Source (S1) /= ASCII.HT
!            and then (Sinput.Source (S1) /= '-'
!              or else Sinput.Source (S1 + 1) /= '-')
             and then S1 /= Token_Ptr
           loop
              S1 := S1 + 1;
*************** package body Errout is
*** 785,792 ****
        --  we would really like to place it in the "last" character of the tab
        --  space, but that it too much trouble to worry about).
  
!       elsif Source (Token_Ptr - 1) = ' '
!          or else Source (Token_Ptr - 1) = ASCII.HT
        then
           Error_Msg (Msg, Token_Ptr - 1);
  
--- 1025,1032 ----
        --  we would really like to place it in the "last" character of the tab
        --  space, but that it too much trouble to worry about).
  
!       elsif Sinput.Source (Token_Ptr - 1) = ' '
!          or else Sinput.Source (Token_Ptr - 1) = ASCII.HT
        then
           Error_Msg (Msg, Token_Ptr - 1);
  
*************** package body Errout is
*** 842,854 ****
     -----------------
  
     procedure Error_Msg_F (Msg : String; N : Node_Id) is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, N,
!                      To_Span (Ptr   => Sloc (Fst),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_F;
  
     ------------------
--- 1082,1089 ----
     -----------------
  
     procedure Error_Msg_F (Msg : String; N : Node_Id) is
     begin
!       Error_Msg_NEL (Msg, N, N, To_Full_Span_First (N));
     end Error_Msg_F;
  
     ------------------
*************** package body Errout is
*** 860,872 ****
        N   : Node_Id;
        E   : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, E,
!                      To_Span (Ptr   => Sloc (Fst),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_FE;
  
     ------------------------------
--- 1095,1102 ----
        N   : Node_Id;
        E   : Node_Or_Entity_Id)
     is
     begin
!       Error_Msg_NEL (Msg, N, E, To_Full_Span_First (N));
     end Error_Msg_FE;
  
     ------------------------------
*************** package body Errout is
*** 918,927 ****
     ------------------------
  
     procedure Error_Msg_Internal
!      (Msg      : String;
!       Span     : Source_Span;
!       Opan     : Source_Span;
!       Msg_Cont : Boolean)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
--- 1148,1161 ----
     ------------------------
  
     procedure Error_Msg_Internal
!      (Msg        : String;
!       Span       : Source_Span;
!       Opan       : Source_Span;
!       Msg_Cont   : Boolean;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
        Sptr     : constant Source_Ptr := Span.Ptr;
        Optr     : constant Source_Ptr := Opan.Ptr;
*************** package body Errout is
*** 934,941 ****
  
        Temp_Msg : Error_Msg_Id;
  
!       Warn_Err : Boolean;
!       --  Set if warning to be treated as error
  
        procedure Handle_Serious_Error;
        --  Internal procedure to do all error message handling for a serious
--- 1168,1178 ----
  
        Temp_Msg : Error_Msg_Id;
  
!       First_Fix : Fix_Id := No_Fix;
!       Last_Fix  : Fix_Id := No_Fix;
! 
!       Primary_Loc : Labeled_Span_Id := No_Labeled_Span;
!       Last_Loc    : Labeled_Span_Id := No_Labeled_Span;
  
        procedure Handle_Serious_Error;
        --  Internal procedure to do all error message handling for a serious
*************** package body Errout is
*** 1156,1166 ****
  
              --  Remove (style) or info: at start of message
  
!             if Msglen > 8 and then Msg_Buffer (1 .. 8) = "(style) " then
!                M := 9;
  
!             elsif Msglen > 6 and then Msg_Buffer (1 .. 6) = "info: " then
!                M := 7;
  
              else
                 M := 1;
--- 1393,1407 ----
  
              --  Remove (style) or info: at start of message
  
!             if Msglen > Style_Prefix'Length
!               and then Msg_Buffer (1 .. Style_Prefix'Length) = Style_Prefix
!             then
!                M := Style_Prefix'Length + 1;
  
!             elsif Msglen > Info_Prefix'Length
!               and then Msg_Buffer (1 .. Info_Prefix'Length) = Info_Prefix
!             then
!                M := Info_Prefix'Length + 1;
  
              else
                 M := 1;
*************** package body Errout is
*** 1226,1231 ****
--- 1467,1503 ----
           return;
        end if;
  
+       if Continuation and then Has_Insertion_Line then
+          Erroutc.Locations.Append
+            (Primary_Labeled_Span (To_Span (Error_Msg_Sloc), Label));
+       else
+          Erroutc.Locations.Append (Primary_Labeled_Span (Span, Label));
+       end if;
+ 
+       Primary_Loc := Erroutc.Locations.Last;
+ 
+       Last_Loc := Primary_Loc;
+ 
+       for Span of Spans loop
+          Erroutc.Locations.Append (Span);
+          Erroutc.Locations.Table (Last_Loc).Next := Erroutc.Locations.Last;
+          Last_Loc := Erroutc.Locations.Last;
+       end loop;
+ 
+       for Fix of Fixes loop
+          Erroutc.Fixes.Append (Fix);
+          if Last_Fix /= No_Fix then
+             Erroutc.Fixes.Table (Last_Fix).Next := Erroutc.Fixes.Last;
+          end if;
+          Last_Fix := Erroutc.Fixes.Last;
+ 
+          --  Store the first element in the fix chain
+ 
+          if First_Fix = No_Fix then
+             First_Fix := Last_Fix;
+          end if;
+       end loop;
+ 
        --  Here we build a new error object
  
        Errors.Append
*************** package body Errout is
*** 1240,1268 ****
            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;
  
        --  If immediate errors mode set, output error message now. Also output
        --  now if the -d1 debug flag is set (so node number message comes out
--- 1512,1549 ----
            Line                => Get_Physical_Line_Number (Sptr),
            Col                 => Get_Column_Number (Sptr),
            Compile_Time_Pragma => Is_Compile_Time_Msg,
!           Warn_Err            => None, -- reset below
            Warn_Chr            => Warning_Msg_Char,
            Uncond              => Is_Unconditional_Msg,
            Msg_Cont            => Continuation,
            Deleted             => False,
!           Kind                => Error_Msg_Kind,
!           Locations           => Primary_Loc,
!           Id                  => Error_Code,
!           Switch              =>
!             Get_Switch_Id (Error_Msg_Kind, Warning_Msg_Char),
!           Fixes               => First_Fix));
        Cur_Msg := Errors.Last;
  
!       --  Test if a warning is to be treated as error:
!       --  * It is marked by a pragma Warning_As_Error
!       --  * Warning_Mode is Treat_Run_Time_Warnings_As_Errors and we are
!       --    dealing with a runtime warning.
!       --  * Warning_Mode is Warnings_As_Errors and it is not a compile time
!       --    message.
  
!       if Error_Msg_Kind in Warning | Style then
!          if Warning_Treated_As_Error (Errors.Table (Cur_Msg)) then
!             Errors.Table (Cur_Msg).Warn_Err := From_Pragma;
!          elsif Warning_Mode = Treat_Run_Time_Warnings_As_Errors
!            and then Is_Runtime_Raise_Msg
!          then
!             Errors.Table (Cur_Msg).Warn_Err := From_Run_Time_As_Err;
!          elsif Warning_Mode = Treat_As_Error and then not Is_Compile_Time_Msg
!          then
!             Errors.Table (Cur_Msg).Warn_Err := From_Warn_As_Err;
!          end if;
!       end if;
  
        --  If immediate errors mode set, output error message now. Also output
        --  now if the -d1 debug flag is set (so node number message comes out
*************** package body Errout is
*** 1416,1448 ****
     -- Error_Msg_N --
     -----------------
  
!    procedure Error_Msg_N (Msg : String; N : Node_Or_Entity_Id) is
!       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, N,
!                      To_Span (Ptr   => Sloc (N),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
     end Error_Msg_N;
  
     ------------------
     -- Error_Msg_NE --
     ------------------
  
     procedure Error_Msg_NE
       (Msg : String;
        N   : Node_Or_Entity_Id;
        E   : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
!       First_And_Last_Nodes (N, Fst, Lst);
!       Error_Msg_NEL (Msg, N, E,
!                      To_Span (Ptr   => Sloc (N),
!                               First => First_Sloc (Fst),
!                               Last  => Last_Sloc (Lst)));
!    end Error_Msg_NE;
  
     -------------------
     -- Error_Msg_NEL --
--- 1697,1768 ----
     -- Error_Msg_N --
     -----------------
  
!    procedure Error_Msg_N
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
!    is
     begin
!       Error_Msg_NEL
!         (Msg        => Msg,
!          N          => N,
!          E          => N,
!          Flag_Span  => To_Full_Span (N),
!          Error_Code => Error_Code,
!          Label      => Label,
!          Spans      => Spans,
!          Fixes      => Fixes);
     end Error_Msg_N;
  
+    ----------------------
+    -- Error_Msg_N_Gigi --
+    ----------------------
+ 
+    procedure Error_Msg_N_Gigi (Msg : String; N : Node_Or_Entity_Id) is
+    begin
+       Error_Msg_N (Msg, N);
+    end Error_Msg_N_Gigi;
+ 
     ------------------
     -- Error_Msg_NE --
     ------------------
  
     procedure Error_Msg_NE
+      (Msg        : String;
+       N          : Node_Or_Entity_Id;
+       E          : Node_Or_Entity_Id;
+       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
+       Label      : String := "";
+       Spans      : Labeled_Span_Array := No_Locations;
+       Fixes      : Fix_Array := No_Fixes)
+    is
+    begin
+       Error_Msg_NEL
+         (Msg        => Msg,
+          N          => N,
+          E          => E,
+          Flag_Span  => To_Full_Span (N),
+          Error_Code => Error_Code,
+          Label      => Label,
+          Spans      => Spans,
+          Fixes      => Fixes);
+    end Error_Msg_NE;
+ 
+    -----------------------
+    -- Error_Msg_NE_Gigi --
+    -----------------------
+ 
+    procedure Error_Msg_NE_Gigi
       (Msg : String;
        N   : Node_Or_Entity_Id;
        E   : Node_Or_Entity_Id)
     is
     begin
!       Error_Msg_NE (Msg, N, E);
!    end Error_Msg_NE_Gigi;
  
     -------------------
     -- Error_Msg_NEL --
*************** package body Errout is
*** 1465,1474 ****
     end Error_Msg_NEL;
  
     procedure Error_Msg_NEL
!      (Msg       : String;
!       N         : Node_Or_Entity_Id;
!       E         : Node_Or_Entity_Id;
!       Flag_Span : Source_Span)
     is
     begin
        if Special_Msg_Delete (Msg, N, E) then
--- 1785,1798 ----
     end Error_Msg_NEL;
  
     procedure Error_Msg_NEL
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Flag_Span  : Source_Span;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes)
     is
     begin
        if Special_Msg_Delete (Msg, N, E) then
*************** package body Errout is
*** 1502,1508 ****
        then
           Debug_Output (N);
           Error_Msg_Node_1 := E;
!          Error_Msg (Msg, Flag_Span, N);
  
        else
           Last_Killed := True;
--- 1826,1839 ----
        then
           Debug_Output (N);
           Error_Msg_Node_1 := E;
!          Error_Msg
!            (Msg        => Msg,
!             Flag_Span  => Flag_Span,
!             N          => N,
!             Error_Code => Error_Code,
!             Label      => Label,
!             Spans      => Spans,
!             Fixes      => Fixes);
  
        else
           Last_Killed := True;
*************** package body Errout is
*** 1522,1538 ****
        Msg   : String;
        N     : Node_Or_Entity_Id)
     is
-       Fst, Lst : Node_Id;
     begin
        if Eflag
          and then In_Extended_Main_Source_Unit (N)
          and then Comes_From_Source (N)
        then
!          First_And_Last_Nodes (N, Fst, Lst);
!          Error_Msg_NEL (Msg, N, N,
!                         To_Span (Ptr   => Sloc (N),
!                                  First => First_Sloc (Fst),
!                                  Last  => Last_Sloc (Lst)));
        end if;
     end Error_Msg_NW;
  
--- 1853,1864 ----
        Msg   : String;
        N     : Node_Or_Entity_Id)
     is
     begin
        if Eflag
          and then In_Extended_Main_Source_Unit (N)
          and then Comes_From_Source (N)
        then
!          Error_Msg_NEL (Msg, N, N, To_Full_Span (N));
        end if;
     end Error_Msg_NW;
  
*************** package body Errout is
*** 1597,1603 ****
        begin
           if not Errors.Table (E).Deleted then
              Errors.Table (E).Deleted := True;
!             Warnings_Detected := Warnings_Detected - 1;
           end if;
        end Delete_Warning;
  
--- 1923,1929 ----
        begin
           if not Errors.Table (E).Deleted then
              Errors.Table (E).Deleted := True;
!             Decrease_Error_Msg_Count (Errors.Table (E));
           end if;
        end Delete_Warning;
  
*************** package body Errout is
*** 2425,2431 ****
  
        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
--- 2751,2758 ----
  
        Write_Str ("{""kind"":");
  
!       if Errors.Table (E).Kind = Warning
!         and then Errors.Table (E).Warn_Err = None
        then
           Write_Str ("""warning""");
        elsif Errors.Table (E).Kind in
*************** package body Errout is
*** 2457,2465 ****
           Write_Str (",""option"":""" & Option & """");
        end if;
  
!       --  Print message content
  
        Write_Str (",""message"":""");
        Write_JSON_Escaped_String (Errors.Table (E).Text);
        Write_Str ("""");
  
--- 2784,2796 ----
           Write_Str (",""option"":""" & Option & """");
        end if;
  
!       --  Print message content and ensure that the removed style prefix is
!       --  still in the message.
  
        Write_Str (",""message"":""");
+       if Errors.Table (E).Kind = Style then
+          Write_JSON_Escaped_String (Style_Prefix);
+       end if;
        Write_JSON_Escaped_String (Errors.Table (E).Text);
        Write_Str ("""");
  
*************** package body Errout is
*** 2488,2494 ****
     -- Output_Messages --
     ---------------------
  
!    procedure Output_Messages is
  
        --  Local subprograms
  
--- 2819,2825 ----
     -- Output_Messages --
     ---------------------
  
!    procedure Output_Messages (Exit_Code : Exit_Code_Type) is
  
        --  Local subprograms
  
*************** package body Errout is
*** 2502,2610 ****
        procedure Write_Max_Errors;
        --  Write message if max errors reached
  
-       procedure Write_Source_Code_Lines
-         (Span     : Source_Span;
-          SGR_Span : String);
-       --  Write the source code line corresponding to Span, as follows when
-       --  Span in on one line:
-       --
-       --  line |  actual code line here with Span somewhere
-       --       |                        ~~~~~^~~~
-       --
-       --  where the caret on the line points to location Span.Ptr, and the
-       --  range Span.First..Span.Last is underlined.
-       --
-       --  or when the span is over multiple lines:
-       --
-       --  line |  beginning of the Span on this line
-       --   ... |     ...
-       --  line>|  actual code line here with Span.Ptr somewhere
-       --   ... |     ...
-       --  line |  end of the Span on this line
-       --
-       --  or when the span is a simple location, as follows:
-       --
-       --  line |  actual code line here with Span somewhere
-       --       |                             ^ here
-       --
-       --  where the caret on the line points to location Span.Ptr
-       --
-       --  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;
--- 2833,2853 ----
        procedure Write_Max_Errors;
        --  Write message if max errors reached
  
        --------------------
        -- Emit_Error_Msgs --
        ---------------------
  
        procedure Emit_Error_Msgs is
!          E : Error_Msg_Id;
        begin
           Set_Standard_Error;
  
           E := First_Error_Msg;
           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;
  
              E := Errors.Table (E).Next;
*************** package body Errout is
*** 2664,2973 ****
           end if;
        end Write_Max_Errors;
  
-       -----------------------------
-       -- Write_Source_Code_Lines --
-       -----------------------------
- 
-       procedure Write_Source_Code_Lines
-         (Span     : Source_Span;
-          SGR_Span : String)
-       is
-          function Get_Line_End
-            (Buf : Source_Buffer_Ptr;
-             Loc : Source_Ptr) return Source_Ptr;
-          --  Get the source location for the end of the line 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 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;
-             Mark  : Boolean;
-             Width : Positive);
-          --  Output the line number Num over Width characters, with possibly
-          --  a Mark to denote the line with the main location when reporting
-          --  a span over multiple lines.
- 
-          ------------------
-          -- 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;
- 
-          -----------
-          -- 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;
- 
-          ------------------
-          -- 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;
-             Mark  : Boolean;
-             Width : Positive)
-          is
-          begin
-             Write_Str (Image (Positive (Num), Width => Width));
-             Write_Str ((if Mark then ">" else " ") & "|");
-          end Write_Line_Marker;
- 
-          --  Local variables
- 
-          Loc     : constant Source_Ptr := Span.Ptr;
-          Line    : constant Pos        := Pos (Get_Physical_Line_Number (Loc));
- 
-          Col     : constant Natural    := Natural (Get_Column_Number (Loc));
- 
-          Fst      : constant Source_Ptr := Span.First;
-          Line_Fst : constant Pos        :=
-            Pos (Get_Physical_Line_Number (Fst));
-          Col_Fst  : constant Natural    :=
-            Natural (Get_Column_Number (Fst));
-          Lst      : constant Source_Ptr := Span.Last;
-          Line_Lst : constant Pos        :=
-            Pos (Get_Physical_Line_Number (Lst));
-          Col_Lst  : constant Natural    :=
-            Natural (Get_Column_Number (Lst));
- 
-          Width    : constant := 5;
-          Buf      : Source_Buffer_Ptr;
-          Cur_Loc  : Source_Ptr := Fst;
-          Cur_Line : Pos := Line_Fst;
- 
-       --  Start of processing for Write_Source_Code_Lines
- 
-       begin
-          if Loc >= First_Source_Ptr then
-             Buf := Source_Text (Get_Source_File_Index (Loc));
- 
-             --  First line of the span with actual source code. We retrieve
-             --  the beginning of the line instead of relying on Col_Fst, as
-             --  ASCII.HT characters change column numbers by possibly more
-             --  than one.
- 
-             Write_Line_Marker
-               (Cur_Line,
-                Line_Fst /= Line_Lst and then Cur_Line = Line,
-                Width);
-             Write_Buffer (Buf, Get_Line_Start (Buf, Cur_Loc), Cur_Loc - 1);
- 
-             --  Output the first/caret/last lines of the span, as well as
-             --  lines that are directly above/below the caret if they complete
-             --  the gap with first/last lines, otherwise use ... to denote
-             --  intermediate lines.
- 
-             --  If the span is on one line and not a simple source location,
-             --  color it appropriately.
- 
-             if Line_Fst = Line_Lst
-               and then Col_Fst /= Col_Lst
-             then
-                Write_Str (SGR_Span);
-             end if;
- 
-             declare
-                function Do_Write_Line (Cur_Line : Pos) return Boolean is
-                   (Cur_Line in Line_Fst | Line | Line_Lst
-                      or else
-                    (Cur_Line = Line_Fst + 1 and then Cur_Line = Line - 1)
-                      or else
-                    (Cur_Line = Line + 1 and then Cur_Line = Line_Lst - 1));
-             begin
-                while Cur_Loc <= Buf'Last
-                  and then Cur_Loc <= Lst
-                loop
-                   if Do_Write_Line (Cur_Line) then
-                      Write_Buffer_Char (Buf, Cur_Loc);
-                   end if;
- 
-                   if Buf (Cur_Loc) = ASCII.LF then
-                      Cur_Line := Cur_Line + 1;
- 
-                      --  Output ... for skipped lines
- 
-                      if (Cur_Line = Line
-                           and then not Do_Write_Line (Cur_Line - 1))
-                        or else
-                         (Cur_Line = Line + 1
-                           and then not Do_Write_Line (Cur_Line))
-                      then
-                         Write_Str ((1 .. Width - 3 => ' ') & "... | ...");
-                         Write_Eol;
-                      end if;
- 
-                      --  Display the line marker if the line should be
-                      --  displayed.
- 
-                      if Do_Write_Line (Cur_Line) then
-                         Write_Line_Marker
-                           (Cur_Line,
-                            Line_Fst /= Line_Lst and then Cur_Line = Line,
-                            Width);
-                      end if;
-                   end if;
- 
-                   Cur_Loc := Cur_Loc + 1;
-                end loop;
-             end;
- 
-             if Line_Fst = Line_Lst
-               and then Col_Fst /= Col_Lst
-             then
-                Write_Str (SGR_Reset);
-             end if;
- 
-             --  Output the rest of the last line of the span
- 
-             Write_Buffer (Buf, Cur_Loc, Get_Line_End (Buf, Cur_Loc));
- 
-             --  If the span is on one line, output a second line with caret
-             --  sign pointing to location Loc
- 
-             if Line_Fst = Line_Lst then
-                Write_Str (String'(1 .. Width => ' '));
-                Write_Str (" |");
-                Write_Str (String'(1 .. Col_Fst - 1 => ' '));
- 
-                Write_Str (SGR_Span);
- 
-                Write_Str (String'(Col_Fst .. Col - 1 => '~'));
-                Write_Str ("^");
-                Write_Str (String'(Col + 1 .. Col_Lst => '~'));
- 
-                --  If the span is really just a location, add the word "here"
-                --  to clarify this is the location for the message.
- 
-                if Col_Fst = Col_Lst then
-                   Write_Str (" here");
-                end if;
- 
-                Write_Str (SGR_Reset);
- 
-                Write_Eol;
-             end if;
-          end if;
-       end Write_Source_Code_Lines;
- 
        --  Local variables
  
        E          : Error_Msg_Id;
        Err_Flag   : Boolean;
  
     --  Start of processing for Output_Messages
  
     begin
--- 2907,2924 ----
           end if;
        end Write_Max_Errors;
  
        --  Local variables
  
        E          : Error_Msg_Id;
        Err_Flag   : Boolean;
  
+       Sarif_File_Name       : constant String :=
+         Get_First_Main_File_Name & ".gnat.sarif";
+ 
+       Printer : Erroutc.SARIF_Emitter.SARIF_Printer;
+ 
+       Dummy : Boolean;
+ 
     --  Start of processing for Output_Messages
  
     begin
*************** package body Errout is
*** 2977,2982 ****
--- 2928,2935 ----
           raise Program_Error;
        end if;
  
+       Erroutc.Exit_Code := Exit_Code;
+ 
        --  Reset current error source file if the main unit has a pragma
        --  Source_Reference. This ensures outputting the proper name of
        --  the source file in this situation.
*************** package body Errout is
*** 3039,3048 ****
  
           --  Use updated diagnostic mechanism
  
!          if Debug_Flag_Underscore_DD then
!             Convert_Errors_To_Diagnostics;
  
!             Emit_Diagnostics;
           else
              Emit_Error_Msgs;
           end if;
--- 2992,3021 ----
  
           --  Use updated diagnostic mechanism
  
!          if Opt.SARIF_Output then
!             Set_Standard_Error;
!             Add_Unique_Diagnostics_And_Switches (Printer);
!             Print_SARIF_Report (Printer);
!             Free (Printer);
!             Set_Standard_Output;
  
!          elsif Opt.SARIF_File then
!             System.OS_Lib.Delete_File (Sarif_File_Name, Dummy);
!             declare
!                Output_FD :
!                  constant System.OS_Lib.File_Descriptor :=
!                  System.OS_Lib.Create_New_File
!                    (Sarif_File_Name, Fmode => System.OS_Lib.Text);
!             begin
!                Set_Output (Output_FD);
!                Add_Unique_Diagnostics_And_Switches (Printer);
!                Print_SARIF_Report (Printer);
!                Free (Printer);
!                Set_Standard_Output;
!                System.OS_Lib.Close (Output_FD);
!             end;
!          elsif Debug_Flag_FF then
!             Erroutc.Pretty_Emitter.Print_Error_Messages;
           else
              Emit_Error_Msgs;
           end if;
*************** package body Errout is
*** 3241,3259 ****
        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;
  
--- 3214,3223 ----
        end if;
  
        if Warning_Mode = Treat_As_Error then
!          pragma Assert (Warnings_Detected >= Warnings_Treated_As_Errors);
!          Total_Errors_Detected :=
!            Total_Errors_Detected + Warnings_Treated_As_Errors;
!          Warnings_Detected := Warnings_Detected - Warnings_Treated_As_Errors;
        end if;
     end Output_Messages;
  
*************** package body Errout is
*** 3442,3448 ****
  
                 and then not Errors.Table (E).Uncond
              then
!                Warnings_Detected := Warnings_Detected - 1;
  
                 return True;
  
--- 3406,3412 ----
  
                 and then not Errors.Table (E).Uncond
              then
!                Decrease_Error_Msg_Count (Errors.Table (E));
  
                 return True;
  
*************** package body Errout is
*** 3467,3472 ****
--- 3431,3438 ----
           E := First_Error_Msg;
           while E /= No_Error_Msg loop
              while To_Be_Removed (Errors.Table (E).Next) loop
+                Errors.Table (Errors.Table (E).Next).Deleted := True;
+ 
                 Errors.Table (E).Next :=
                   Errors.Table (Errors.Table (E).Next).Next;
  
*************** package body Errout is
*** 3909,3914 ****
--- 3875,3903 ----
              Set_Msg_Node (Selector_Name (Node));
              return;
  
+          when N_Attribute_Reference =>
+             Set_Msg_Node (Prefix (Node));
+             Set_Msg_Char (''');
+             Get_Unqualified_Decoded_Name_String (Attribute_Name (Node));
+             Adjust_Name_Case (Global_Name_Buffer, Sloc (Node));
+             Set_Msg_Name_Buffer;
+             return;
+ 
+          when N_Defining_Identifier =>
+ 
+             --  Handle direct attribute definitions
+ 
+             if Parent_Kind (Node) in N_Subprogram_Specification
+               and then Original_Node (Parent (Node)) /= Parent (Node)
+               and then Nkind (Defining_Unit_Name
+                                (Original_Node (Parent (Node))))
+                          = N_Attribute_Reference
+             then
+                Set_Msg_Node
+                  (Defining_Unit_Name (Original_Node (Parent (Node))));
+                return;
+             end if;
+ 
           when others =>
              null;
        end case;
*************** package body Errout is
*** 4056,4072 ****
        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
!         and then Text (Text'First .. Text'First + 5) = "info: "
        then
!          P := Text'First + 6;
!       else
!          P := Text'First;
        end if;
  
        --  Loop through characters of message
--- 4045,4089 ----
        Msglen := 0;
        Flag_Source := Get_Source_File_Index (Flag);
  
!       P := Text'First;
! 
!       --  Skip the continuation symbols at the start
! 
!       if P <= Text'Last and then Text (P) = '\' then
!          Continuation := True;
!          P := P + 1;
! 
!          if P <= Text'Last and then Text (P) = '\' then
!             Continuation_New_Line := True;
!             P := P + 1;
!          end if;
!       end if;
! 
!       --  Skip the message kind tokens at start since it is recorded
!       --  in Error_Msg_Kind, and this will be used to put back the string when
!       --  it is printed. We need to do this, or we get confused
        --  with instantiation continuations.
  
!       if Text'Length > P + Info_Prefix'Length - 1
!         and then Text (P .. P + Info_Prefix'Length - 1) = Info_Prefix
        then
!          P := P + Info_Prefix'Length;
!       elsif Text'Length > P + Style_Prefix'Length - 1
!         and then Text (P .. P + Style_Prefix'Length - 1) = Style_Prefix
!       then
!          P := P + Style_Prefix'Length;
!       elsif Text'Length > P + High_Prefix'Length - 1
!         and then Text (P .. P + High_Prefix'Length - 1) = High_Prefix
!       then
!          P := P + High_Prefix'Length;
!       elsif Text'Length > P + Medium_Prefix'Length - 1
!         and then Text (P .. P + Medium_Prefix'Length - 1) = Medium_Prefix
!       then
!          P := P + Medium_Prefix'Length;
!       elsif Text'Length > P + Low_Prefix'Length - 1
!         and then Text (P .. P + Low_Prefix'Length - 1) = Low_Prefix
!       then
!          P := P + Low_Prefix'Length;
        end if;
  
        --  Loop through characters of message
*************** package body Errout is
*** 4109,4122 ****
              when '#' =>
                 Set_Msg_Insertion_Line_Number (Error_Msg_Sloc, Flag);
  
-             when '\' =>
-                Continuation := True;
- 
-                if P <= Text'Last and then Text (P) = '\' then
-                   Continuation_New_Line := True;
-                   P := P + 1;
-                end if;
- 
              when '@' =>
                 Set_Msg_Insertion_Column;
  
--- 4126,4131 ----
*************** package body Errout is
*** 4176,4190 ****
                    Set_Msg_Insertion_Code;
  
                 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");
--- 4185,4191 ----
                    Set_Msg_Insertion_Code;
  
                 else
!                   Is_Runtime_Raise_Msg := True;
  
                    if Error_Msg_Kind = Warning then
                       Set_Msg_Str ("will be raised at run time");
*************** package body Errout is
*** 4372,4377 ****
--- 4373,4420 ----
        end if;
     end SPARK_Msg_NE;
  
+    ------------------
+    -- 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_Full_Span_First --
+    ------------------------
+ 
+    function To_Full_Span_First (N : Node_Id) return Source_Span is
+       Fst, Lst : Node_Id;
+    begin
+       First_And_Last_Nodes (N, Fst, Lst);
+       return To_Span (Ptr   => Sloc (Fst),
+                       First => First_Sloc (Fst),
+                       Last  => Last_Sloc (Lst));
+    end To_Full_Span_First;
+ 
+    -------------
+    -- 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;
+ 
     --------------------------
     -- Unwind_Internal_Type --
     --------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/errout.ads gcc-16.1.0-RC-20260423/gcc/ada/errout.ads
*** gcc-15.2.0/gcc/ada/errout.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/errout.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
--- 30,38 ----
  
  with Err_Vars;
  with Erroutc;
+ with Errid;    use Errid;
  with Namet;    use Namet;
+ with Osint;    use Osint;
  with Table;
  with Types;    use Types;
  with Uintp;    use Uintp;
*************** package Errout is
*** 580,585 ****
--- 582,600 ----
     --  client to set this to No_Error_Msg and then test it to see if a warning
     --  message has been issued.
  
+    subtype Labeled_Span_Type is Erroutc.Labeled_Span_Type;
+    subtype Fix_Type is Erroutc.Fix_Type;
+    subtype Edit_Type is Erroutc.Edit_Type;
+ 
+    type Labeled_Span_Array is
+      array (Positive range <>) of Labeled_Span_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_Fixes     : constant Fix_Array (1 .. 0) := (others => <>);
+    No_Edits     : constant Edit_Array (1 .. 0) := (others => <>);
+ 
     procedure Delete_Warning_And_Continuations (Msg : Error_Msg_Id);
     --  Deletes the given warning message and all its continuations. This is
     --  typically used in conjunction with reading the value of Warning_Msg.
*************** package Errout is
*** 702,710 ****
     --  and must be set True on the last call (a value of True activates some
     --  processing that must only be done after all messages are posted).
  
!    procedure Output_Messages;
     --  Output list of messages, including messages giving number of detected
!    --  errors and warnings.
  
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr);
--- 717,725 ----
     --  and must be set True on the last call (a value of True activates some
     --  processing that must only be done after all messages are posted).
  
!    procedure Output_Messages (Exit_Code : Exit_Code_Type);
     --  Output list of messages, including messages giving number of detected
!    --  errors and warnings and store the exit code used.
  
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr);
*************** package Errout is
*** 713,723 ****
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr; N : Node_Id);
     procedure Error_Msg
!      (Msg : String; Flag_Span : Source_Span; N : Node_Id);
     --  Output a message at specified location. Can be called from the parser
     --  or the semantic analyzer. If N is set, points to the relevant node for
     --  this message. The version with a span is preferred whenever possible,
     --  in other cases the version with a location can still be used.
  
     procedure Error_Msg
       (Msg                    : String;
--- 728,751 ----
     procedure Error_Msg
       (Msg : String; Flag_Location : Source_Ptr; N : Node_Id);
     procedure Error_Msg
!      (Msg        : String;
!       Flag_Span  : Source_Span;
!       N          : Node_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at specified location. Can be called from the parser
     --  or the semantic analyzer. If N is set, points to the relevant node for
     --  this message. The version with a span is preferred whenever possible,
     --  in other cases the version with a location can still be used.
+    --
+    --  @param Error_Code is the unique identifier for that kind of message.
+    --  @param Label specifies an optional short label that will be displayed
+    --  under the Flag_Span.
+    --  @param Spans specifies other spans with labels that will be highlighted
+    --  in the error message.
+    --  @param Fixes contains a list of possible fixes for the error message.
  
     procedure Error_Msg
       (Msg                    : String;
*************** package Errout is
*** 753,759 ****
     --  Output a message at the start of the previous token. This routine can
     --  be called only from the parser, since it references Prev_Token_Ptr.
  
!    procedure Error_Msg_N (Msg : String; N : Node_Or_Entity_Id);
     --  Output a message at the Sloc of the given node. This routine can be
     --  called from the parser or the semantic analyzer, although the call from
     --  the latter is much more common (and is the most usual way of generating
--- 781,793 ----
     --  Output a message at the start of the previous token. This routine can
     --  be called only from the parser, since it references Prev_Token_Ptr.
  
!    procedure Error_Msg_N
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at the Sloc of the given node. This routine can be
     --  called from the parser or the semantic analyzer, although the call from
     --  the latter is much more common (and is the most usual way of generating
*************** package Errout is
*** 762,767 ****
--- 796,804 ----
     --  suppressed if the node N already has a message posted, or if it is a
     --  warning and N is an entity node for which warnings are suppressed.
  
+    procedure Error_Msg_N_Gigi (Msg : String; N : Node_Or_Entity_Id);
+    --  This is a wrapper for the Error_Msg_N method that gets linked to gigi.
+    --
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_F (Msg : String; N : Node_Id);
*************** package Errout is
*** 771,785 ****
     --  want for placing an error message flag in the right place.
  
     procedure Error_Msg_NE
!      (Msg : String;
!       N   : Node_Or_Entity_Id;
!       E   : Node_Or_Entity_Id);
     --  Output a message at the Sloc of the given node N, with an insertion of
     --  the name from the given entity node E. This is used by the semantic
     --  routines, where this is a common error message situation. The Msg text
     --  will contain a & or } as usual to mark the insertion point. This
     --  routine can be called from the parser or the analyzer.
  
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_FE
--- 808,830 ----
     --  want for placing an error message flag in the right place.
  
     procedure Error_Msg_NE
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Output a message at the Sloc of the given node N, with an insertion of
     --  the name from the given entity node E. This is used by the semantic
     --  routines, where this is a common error message situation. The Msg text
     --  will contain a & or } as usual to mark the insertion point. This
     --  routine can be called from the parser or the analyzer.
  
+    procedure Error_Msg_NE_Gigi
+      (Msg : String; N : Node_Or_Entity_Id; E : Node_Or_Entity_Id);
+    --  This is a wrapper for the Error_Msg_NE method that gets linked to gigi.
+    --
     --  WARNING: There is a matching C declaration of this subprogram in fe.h
  
     procedure Error_Msg_FE
*************** package Errout is
*** 795,804 ****
        E             : Node_Or_Entity_Id;
        Flag_Location : Source_Ptr);
     procedure Error_Msg_NEL
!      (Msg       : String;
!       N         : Node_Or_Entity_Id;
!       E         : Node_Or_Entity_Id;
!       Flag_Span : Source_Span);
     --  Exactly the same as Error_Msg_NE, except that the flag is placed at
     --  the specified Flag_Location/Flag_Span instead of at Sloc (N).
  
--- 840,853 ----
        E             : Node_Or_Entity_Id;
        Flag_Location : Source_Ptr);
     procedure Error_Msg_NEL
!      (Msg        : String;
!       N          : Node_Or_Entity_Id;
!       E          : Node_Or_Entity_Id;
!       Flag_Span  : Source_Span;
!       Error_Code : Diagnostic_Id := No_Diagnostic_Id;
!       Label      : String := "";
!       Spans      : Labeled_Span_Array := No_Locations;
!       Fixes      : Fix_Array := No_Fixes);
     --  Exactly the same as Error_Msg_NE, except that the flag is placed at
     --  the specified Flag_Location/Flag_Span instead of at Sloc (N).
  
*************** package Errout is
*** 827,832 ****
--- 876,891 ----
     --  at the original source tree, since that's what we want for placing an
     --  error message flag in the right place.
  
+    function To_Full_Span (N : Node_Id) return Source_Span;
+    --  Creates a Source_Span by calculating the positions of its first and last
+    --  node contained by N in the source code and sets the span to point at the
+    --  location of N.
+ 
+    function To_Full_Span_First (N : Node_Id) return Source_Span;
+    --  Creates a Source_Span by calculating the positions of its first and last
+    --  node contained by N in the source code and sets the span to point to the
+    --  starting position of the span.
+ 
     function First_Node (C : Node_Id) return Node_Id;
     --  Return the first output of First_And_Last_Nodes
  
*************** package Errout is
*** 966,971 ****
--- 1025,1062 ----
     procedure dmsg (Id : Error_Msg_Id) renames Erroutc.dmsg;
     --  Debugging routine to dump an error message
  
+    function Labeled_Span
+      (Span       : Source_Span;
+       Label      : String := "";
+       Is_Primary : Boolean := True;
+       Is_Region  : Boolean := False)
+       return Labeled_Span_Type;
+    --  Constructs a Labeled_Span structure with all of its attributes.
+ 
+    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;
+    --  Shorthand function for creating Primary Labeled_Spans
+ 
+    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;
+    --  Shorthand function for creating Secondary Labeled_Spans
+ 
+    function Edit (Text : String; Span : Source_Span) return Edit_Type;
+    --  Constructs a Edit structure with all of its attributes.
+ 
+    function Insertion (Text : String; Location : Source_Ptr) return Edit_Type;
+    --  Constructs a Edit used to insert Text into the given Location
+ 
+    function Deletion (Span : Source_Span) return Edit_Type;
+    --  Constructs a Edit used to delete a given section of the source file
+ 
+    function Fix (Description : String; Edits : Edit_Array) return Fix_Type;
+    --  Constructs a Fix structure with all of its attributes.
+ 
     ------------------------------------
     -- SPARK Error Output Subprograms --
     ------------------------------------
*************** package Errout is
*** 1028,1031 ****
--- 1119,1126 ----
     --  Function Is_Size_Too_Small_Message tests for it by testing a prefix.
     --  The function and constant should be kept in synch.
  
+    function To_Name (E : Entity_Id) return String;
+    --  Converts an entities name into a String as if the '&' insertion
+    --  character was used.
+ 
  end Errout;
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc-pretty_emitter.adb gcc-16.1.0-RC-20260423/gcc/ada/erroutc-pretty_emitter.adb
*** gcc-15.2.0/gcc/ada/erroutc-pretty_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc-pretty_emitter.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1410 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                 E R R O U T C . P R E T T Y _ E M I T T E R              --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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;
+ with Opt;        use Opt;
+ with Output;     use Output;
+ with Sinput;     use Sinput;
+ with GNAT.Lists; use GNAT.Lists;
+ 
+ package body Erroutc.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
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type);
+    pragma Inline (Destroy);
+ 
+    procedure Destroy (Elem : in out Labeled_Span_Type) is
+    begin
+       --  Diagnostic elements will be freed when all the diagnostics have been
+       --  emitted.
+       null;
+    end 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 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
+ 
+       Ptr : Source_Ptr;
+       --  Pointer to the Primary location in the file section that is printed
+       --  at the start of the file section. If there are none then the first
+       --  location in the section.
+ 
+       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
+      (Locations : Labeled_Span_Id) 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 Get_Region_Span
+      (Spans : Labeled_Span_List) return Labeled_Span_Type;
+ 
+    function Has_Multiple_Labeled_Spans (L : Printable_Line) return Boolean;
+ 
+    procedure Write_Region_Delimiter (SGR_Code : String);
+    --  Write the arms signifying the start and end of a region span
+    --  e.g. +--
+ 
+    procedure Write_Region_Bar (SGR_Code : String);
+    --  Write the bar signifying the continuation of a region span
+    --  e.g. |
+ 
+    procedure Write_Region_Continuation (SGR_Code : String);
+    --  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;
+    --  Removes the leading whitespace from the 'Image of a Natural number.
+ 
+    procedure Write_Span_Labels
+      (Loc                  : Labeled_Span_Type;
+       L                    : Printable_Line;
+       Line_Size            : Integer;
+       Idx                  : String;
+       Within_Region_Span   : Boolean;
+       SGR_Code             : String;
+       Region_Span_SGR_Code : String);
+ 
+    procedure Write_File_Section
+      (Sec              : File_Sections;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean;
+       SGR_Code         : String := SGR_Note);
+    --  Prints the labled spans for a given File_Section.
+    --
+    --  --> <File_Section.File_Name>
+    --  <Labeled_Spans inside the file>
+ 
+    procedure Write_Labeled_Spans
+      (Locations        : Labeled_Span_Id;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean := True;
+       SGR_Code         : String := SGR_Note);
+    --  Pretty-prints all of the code regions indicated by the Locations. The
+    --  labeled spans in the Locations are grouped by file into File_Sections
+    --  and sorted by the file name of the Primary location followed by all
+    --  other locations sorted alphabetically.
+ 
+    procedure Write_Intersecting_Labels
+      (Intersecting_Labels : Labeled_Span_List; SGR_Code : String);
+    --  Prints the indices and their associated labels of intersecting labels.
+    --
+    --  Labeled spans that are insercting on the same line are printed without
+    --  labels. Instead the span pointer is replaced by an index number and in
+    --  the end all of the indices are printed with their associated labels.
+    --
+    --
+    --  42 |  [for I in V1.First_Index .. V1.Last_Index => V1(I), -6];
+    --     |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+    --     |                                                      1-
+    --     |       2-------------------------------------------
+    --     | 1: positional element
+    --     | 2: named element
+ 
+    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);
+    --  Attempts to write the line number within Width number of whitespaces
+    --  followed by a bar ':' symbol.
+    --
+    --  e.g '  12 |'
+    --
+    --  This is usually used on source code lines that are marked by a span.
+ 
+    procedure Write_Empty_Bar_Line (Width : Integer);
+    --  Writes Width number of whitespaces and a bar '|' symbol.
+    --
+    --  e.g '     |'
+    --
+    --  This is usually used on lines where the label is going to printed.
+ 
+    procedure Write_Empty_Skip_Line (Width : Integer);
+    --  Writes Width number of whitespaces and a bar ':' symbol.
+    --
+    --  e.g '     :'
+    --
+    --  This is usually used between non-continous source lines that neec to be
+    --  printed.
+ 
+    procedure Write_Error_Msg_Line (E_Msg : Error_Msg_Object);
+    --  Write the error message line for the given diagnostic:
+    --
+    --  '['<Diag.Id>']' <Diag.Kind>: <Diag.Message> ['['<Diag.Switch>']']
+ 
+    function Should_Write_File_Name
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) 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 : Error_Msg_Object; Diag : Error_Msg_Object) 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_Diagnostic (E : Error_Msg_Id);
+    --  Entry point for printing a primary diagnostic message.
+ 
+    procedure Print_Edit (Edit : Edit_Type; Offset : Integer);
+    --  Prints an edit object as follows:
+    --
+    --  --> <File_Name>
+    --  -<Line_Nr> <Old_Line>
+    --  +<Line_Nr> <New_Line>
+ 
+    procedure Print_Fix (Fix : Fix_Type; Offset : Integer);
+    --  Prints a fix object as follows
+    --
+    --  + Fix: <Fix.Description>
+    --  <Fix.Edits>
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object; Offset : Integer);
+ 
+    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.
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out Printable_Line) is
+    begin
+       Labeled_Span_Lists.Destroy (Elem.Spans);
+    end Destroy;
+ 
+    -------------
+    -- Destroy --
+    -------------
+ 
+    procedure Destroy (Elem : in out File_Sections) is
+    begin
+       Free (Elem.File);
+       Lines_Lists.Destroy (Elem.Lines);
+    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;
+ 
+    ---------------------
+    -- Get_Region_Span --
+    ---------------------
+ 
+    function Get_Region_Span
+      (Spans : Labeled_Span_List) return Labeled_Span_Type
+    is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Spans);
+    begin
+       while Labeled_Span_Lists.Has_Next (Loc_It) loop
+          Labeled_Span_Lists.Next (Loc_It, Loc);
+ 
+          if Loc.Is_Region then
+             return Loc;
+          end if;
+       end loop;
+ 
+       return No_Labeled_Span_Object;
+    end Get_Region_Span;
+ 
+    ------------------
+    -- 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 (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str ("+");
+       Write_Str (String'(1 .. REGION_ARM_SIZE => '-'));
+       Write_Str (SGR_Reset);
+    end Write_Region_Delimiter;
+ 
+    ----------------------
+    -- Write_Region_Bar --
+    ----------------------
+ 
+    procedure Write_Region_Bar (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str ("|");
+       Write_Str (SGR_Reset);
+       Write_Str (String'(1 .. REGION_ARM_SIZE => ' '));
+    end Write_Region_Bar;
+ 
+    -------------------------------
+    -- Write_Region_Continuation --
+    -------------------------------
+ 
+    procedure Write_Region_Continuation (SGR_Code : String) is
+ 
+    begin
+       Write_Str (String'(1 .. REGION_OFFSET => ' '));
+       Write_Str (SGR_Code);
+       Write_Str (":");
+       Write_Str (SGR_Reset);
+       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;
+ 
+       --  Insert after all the lines have been iterated over to avoid the
+       --  mutation lock in GNAT.Lists.
+ 
+       if not Found_Greater_Line then
+          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)),
+           Ptr   => Loc.Span.Ptr,
+           Lines => Lines));
+    end Create_File_Section;
+ 
+    --------------------------
+    -- Create_File_Sections --
+    --------------------------
+ 
+    function Create_File_Sections
+      (Locations : Labeled_Span_Id) return File_Section_List
+    is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Id := Locations;
+ 
+       Sections : File_Section_List := File_Section_Lists.Create;
+ 
+       Sec  : File_Sections;
+       F_It : File_Section_Lists.Iterator;
+ 
+       File_Found : Boolean;
+    begin
+       while Loc_It /= No_Labeled_Span loop
+          Loc := Erroutc.Locations.Table (Loc_It);
+ 
+          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);
+ 
+                if Loc.Is_Primary then
+                   Sec.Ptr := Loc.Span.Ptr;
+                end if;
+             end if;
+          end loop;
+ 
+          if not File_Found then
+             Create_File_Section (Sections, Loc);
+          end if;
+ 
+          Loc_It := Loc.Next;
+       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;
+       SGR_Code             : String;
+       Region_Span_SGR_Code : String)
+    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 (Region_Span_SGR_Code);
+          else
+             Write_Region_Offset;
+          end if;
+ 
+          Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+ 
+          Write_Str (SGR_Code);
+ 
+          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_Str (SGR_Reset);
+ 
+          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 (Region_Span_SGR_Code);
+             else
+                Write_Region_Offset;
+             end if;
+ 
+             Write_Str (String'(1 .. Span_Fst - 1 => ' '));
+             Write_Str (SGR_Code);
+             Write_Str (Loc.Label.all);
+             Write_Str (SGR_Reset);
+             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 (SGR_Code);
+             Write_Str (Loc.Label.all);
+             Write_Str (SGR_Reset);
+             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; SGR_Code : String)
+    is
+       L    : Labeled_Span_Type;
+       L_It : Labeled_Span_Lists.Iterator :=
+         Labeled_Span_Lists.Iterate (Intersecting_Labels);
+       Idx  : Integer                     := 0;
+    begin
+       while Labeled_Span_Lists.Has_Next (L_It) loop
+          Labeled_Span_Lists.Next (L_It, L);
+          Idx := Idx + 1;
+ 
+          Write_Empty_Bar_Line (MAX_BAR_POS);
+          Write_Str (" ");
+          Write_Str ((if L.Is_Primary then SGR_Code else SGR_Note));
+          Write_Int (Int (Idx));
+          Write_Str (": ");
+          Write_Str (L.Label.all);
+          Write_Str (SGR_Reset);
+          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; Include_Spans : Boolean;
+       SGR_Code         : String := SGR_Note)
+    is
+       use Lines_Lists;
+ 
+       function Get_SGR_Code (L : Labeled_Span_Type) return String is
+         (if L.Is_Primary then SGR_Code else SGR_Note);
+ 
+       L    : Printable_Line;
+       L_It : Iterator := Iterate (Sec.Lines);
+ 
+       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 (Sec.Ptr));
+          Write_Eol;
+       end if;
+ 
+       --  Historically SPARK does not include spans in their info messages.
+ 
+       if not Include_Spans then
+          return;
+       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));
+ 
+             Region_Span : constant Labeled_Span_Type :=
+               Get_Region_Span (L.Spans);
+ 
+             Contains_Region_Span_Start : constant Boolean :=
+               Region_Span /= No_Labeled_Span_Object
+               and then Line_Nr =
+                 Pos (Get_Physical_Line_Number (Region_Span.Span.First));
+             Contains_Region_Span_End   : constant Boolean :=
+               Region_Span /= No_Labeled_Span_Object
+               and then Line_Nr =
+                 Pos (Get_Physical_Line_Number (Region_Span.Span.Last));
+ 
+             Region_Span_Color : constant String :=
+               (if Region_Span /= No_Labeled_Span_Object then
+                  Get_SGR_Code (Region_Span)
+                else SGR_Note);
+          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 (Region_Span_Color);
+                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 (Region_Span_Color);
+             elsif Within_Region_Span then
+                Write_Region_Bar (Region_Span_Color);
+             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                 => Loc,
+                      L                    => L,
+                      Line_Size            => Line_Size,
+                      Idx                  => Trimmed_Image (Idx),
+                      Within_Region_Span   => Within_Region_Span,
+                      SGR_Code             => Get_SGR_Code (Loc),
+                      Region_Span_SGR_Code => Region_Span_Color);
+                else
+                   Write_Span_Labels
+                     (Loc                  => Loc,
+                      L                    => L,
+                      Line_Size            => Line_Size,
+                      Idx                  => "",
+                      Within_Region_Span   => Within_Region_Span,
+                      SGR_Code             => Get_SGR_Code (Loc),
+                      Region_Span_SGR_Code => Region_Span_Color);
+                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, SGR_Code);
+    end Write_File_Section;
+ 
+    -------------------------
+    -- Write_Labeled_Spans --
+    -------------------------
+ 
+    procedure Write_Labeled_Spans
+      (Locations        : Labeled_Span_Id;
+       Write_File_Name  : Boolean;
+       File_Name_Offset : Integer;
+       Include_Spans    : Boolean := True;
+       SGR_Code         : String := SGR_Note)
+    is
+       Sections : File_Section_List := Create_File_Sections (Locations);
+ 
+       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              => Sec,
+             Write_File_Name  => Write_File_Name,
+             File_Name_Offset => File_Name_Offset,
+             Include_Spans    => Include_Spans,
+             SGR_Code         => SGR_Code);
+       end loop;
+ 
+       File_Section_Lists.Destroy (Sections);
+    end Write_Labeled_Spans;
+ 
+    --------------------------
+    -- Write_Error_Msg_Line --
+    --------------------------
+ 
+    procedure Write_Error_Msg_Line (E_Msg : Error_Msg_Object) is
+       Switch_Str : constant String := Get_Doc_Switch (E_Msg);
+ 
+       SGR_Code : constant String := Get_SGR_Code (E_Msg);
+    begin
+       Write_Str (SGR_Code);
+ 
+       if not GNATprove_Mode or else E_Msg.Id /= No_Diagnostic_Id then
+          Write_Str ("[" & To_String (E_Msg.Id) & "]");
+       end if;
+ 
+       Write_Str (" " & Kind_To_String (E_Msg) & ": ");
+ 
+       Write_Str (SGR_Reset);
+ 
+       Write_Str (E_Msg.Text.all);
+ 
+       if Switch_Str /= "" then
+          Write_Str (" " & Switch_Str);
+       end if;
+ 
+       if E_Msg.Warn_Err = From_Pragma then
+          Write_Str (" " & Warn_As_Err_Tag);
+       end if;
+ 
+       Write_Eol;
+    end Write_Error_Msg_Line;
+ 
+    ----------------------------
+    -- Should_Write_File_Name --
+    ----------------------------
+ 
+    function Should_Write_File_Name
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean
+    is
+       Sub_Loc : constant Labeled_Span_Type :=
+         Locations.Table (Primary_Location (Sub_Diag));
+ 
+       Diag_Loc : constant Labeled_Span_Type :=
+         Locations.Table (Primary_Location (Diag));
+ 
+       function Has_Multiple_Files (Diag : Error_Msg_Object) return Boolean;
+ 
+       ------------------------
+       -- Has_Multiple_Files --
+       ------------------------
+ 
+       function Has_Multiple_Files (Diag : Error_Msg_Object) return Boolean is
+          First : constant Labeled_Span_Type :=
+            Locations.Table (Diag.Locations);
+ 
+          File : constant String := To_File_Name (First.Span.Ptr);
+ 
+          Loc_Id : Labeled_Span_Id := Diag.Locations;
+          Loc    : Labeled_Span_Type;
+       begin
+          Loc_Id := Diag.Locations;
+          while Loc_Id /= No_Labeled_Span loop
+             Loc := Locations.Table (Loc_Id);
+ 
+             if To_File_Name (Loc.Span.Ptr) /= File then
+                return True;
+             end if;
+ 
+             Loc_Id := Loc.Next;
+          end loop;
+ 
+          return False;
+       end Has_Multiple_Files;
+ 
+    --  Start of processing for Should_Write_File_Name
+ 
+    begin
+       return
+         Has_Multiple_Files (Diag)
+         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 : Error_Msg_Object; Diag : Error_Msg_Object) return Boolean
+    is
+       Sub_Loc  : constant Labeled_Span_Id := Primary_Location (Sub_Diag);
+       Diag_Loc : constant Labeled_Span_Id := Primary_Location (Diag);
+    begin
+       return
+         Sub_Loc /= No_Labeled_Span and then Diag_Loc /= No_Labeled_Span
+         and then Locations.Table (Sub_Loc).Span.Ptr /=
+           Locations.Table (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
+       E : Edit_Id;
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+       Write_Str ("+ Fix: ");
+ 
+       if Fix.Description /= null then
+          Write_Str (Fix.Description.all);
+       end if;
+       Write_Eol;
+ 
+       E := Fix.Edits;
+       while E /= No_Edit loop
+          Print_Edit (Edits.Table (E), MAX_BAR_POS - 1);
+ 
+          E := Edits.Table (E).Next;
+       end loop;
+    end Print_Fix;
+ 
+    --------------------------
+    -- Print_Sub_Diagnostic --
+    --------------------------
+ 
+    procedure Print_Sub_Diagnostic
+      (Sub_Diag : Error_Msg_Object; Diag : Error_Msg_Object; Offset : Integer)
+    is
+    begin
+       Write_Str (String'(1 .. Offset => ' '));
+ 
+       Write_Str ("+ ");
+ 
+       Write_Str (Sub_Diag.Text.all);
+       Write_Eol;
+ 
+       if Should_Write_Spans (Sub_Diag, Diag) then
+          Write_Labeled_Spans
+            (Locations        => Sub_Diag.Locations,
+             Write_File_Name  => Should_Write_File_Name (Sub_Diag, Diag),
+             File_Name_Offset => Offset,
+             Include_Spans => not GNATprove_Mode or else Sub_Diag.Kind /= Info,
+             SGR_Code         => SGR_Note);
+       end if;
+    end Print_Sub_Diagnostic;
+ 
+    ----------------------
+    -- Print_Diagnostic --
+    ----------------------
+ 
+    procedure Print_Diagnostic (E : Error_Msg_Id) is
+       E_Msg : constant Error_Msg_Object := Errors.Table (E);
+ 
+       E_Next_Id : Error_Msg_Id;
+ 
+       F : Fix_Id;
+    begin
+       --  Print the main diagnostic
+ 
+       Write_Error_Msg_Line (E_Msg);
+ 
+       --  Print diagnostic locations along with spans
+ 
+       Write_Labeled_Spans
+         (Locations        => E_Msg.Locations,
+          Write_File_Name  => True,
+          File_Name_Offset => 0,
+          Include_Spans    => not GNATprove_Mode or else E_Msg.Kind /= Info,
+          SGR_Code         => Get_SGR_Code (E_Msg));
+ 
+       --  Print subdiagnostics
+ 
+       E_Next_Id := E_Msg.Next;
+       while E_Next_Id /= No_Error_Msg
+         and then Errors.Table (E_Next_Id).Msg_Cont
+       loop
+          --  Print the subdiagnostic and offset the location of the file
+          --  name
+          Print_Sub_Diagnostic
+            (Errors.Table (E_Next_Id), E_Msg, MAX_BAR_POS - 1);
+ 
+          E_Next_Id := Errors.Table (E_Next_Id).Next;
+       end loop;
+ 
+       --  Print fixes
+ 
+       F := E_Msg.Fixes;
+       while F /= No_Fix loop
+          Print_Fix (Fixes.Table (F), MAX_BAR_POS - 1);
+ 
+          F := Fixes.Table (F).Next;
+       end loop;
+ 
+       --  Separate main diagnostics with a blank line
+ 
+       Write_Eol;
+    end Print_Diagnostic;
+ 
+    --------------------------
+    -- Print_Error_Messages --
+    --------------------------
+ 
+    procedure Print_Error_Messages is
+       E : Error_Msg_Id;
+    begin
+       Set_Standard_Error;
+ 
+       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
+             Print_Diagnostic (E);
+          end if;
+ 
+          E := Errors.Table (E).Next;
+       end loop;
+ 
+       Set_Standard_Output;
+    end Print_Error_Messages;
+ 
+    ------------------
+    -- 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;
+ 
+ end Erroutc.Pretty_Emitter;
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc-pretty_emitter.ads gcc-16.1.0-RC-20260423/gcc/ada/erroutc-pretty_emitter.ads
*** gcc-15.2.0/gcc/ada/erroutc-pretty_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc-pretty_emitter.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,28 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                 E R R O U T C . P R E T T Y _ E M I T T E R              --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 Erroutc.Pretty_Emitter is
+    procedure Print_Error_Messages;
+ end Erroutc.Pretty_Emitter;
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc-sarif_emitter.adb gcc-16.1.0-RC-20260423/gcc/ada/erroutc-sarif_emitter.adb
*** gcc-15.2.0/gcc/ada/erroutc-sarif_emitter.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc-sarif_emitter.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1401 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                 E R R O U T C . S A R I F _ E M I T T E R                --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 Errid.Diagnostic_Repository; use Errid.Diagnostic_Repository;
+ with Errid.Switch_Repository;     use Errid.Switch_Repository;
+ with JSON_Utils;                  use JSON_Utils;
+ with Gnatvsn;                     use Gnatvsn;
+ with Lib;                         use Lib;
+ with Namet;                       use Namet;
+ with Output;                      use Output;
+ with Sinput;                      use Sinput;
+ with System.OS_Lib;
+ 
+ package body Erroutc.SARIF_Emitter is
+ 
+    --  SARIF attribute names
+ 
+    N_ARTIFACT_CHANGES      : constant String := "artifactChanges";
+    N_ARTIFACT_LOCATION     : constant String := "artifactLocation";
+    N_COMMAND_LINE          : constant String := "commandLine";
+    N_DELETED_REGION        : constant String := "deletedRegion";
+    N_DESCRIPTION           : constant String := "description";
+    N_DRIVER                : constant String := "driver";
+    N_END_COLUMN            : constant String := "endColumn";
+    N_END_LINE              : constant String := "endLine";
+    N_EXECUTION_SUCCESSFUL  : constant String := "executionSuccessful";
+    N_FIXES                 : constant String := "fixes";
+    N_ID                    : constant String := "id";
+    N_INSERTED_CONTENT      : constant String := "insertedContent";
+    N_INVOCATIONS           : constant String := "invocations";
+    N_KINDS                 : constant String := "kinds";
+    N_LOCATIONS             : constant String := "locations";
+    N_LEVEL                 : constant String := "level";
+    N_MESSAGE               : constant String := "message";
+    N_NAME                  : constant String := "name";
+    N_ORIGINAL_URI_BASE_IDS : constant String := "originalUriBaseIds";
+    N_PHYSICAL_LOCATION     : constant String := "physicalLocation";
+    N_REGION                : constant String := "region";
+    N_RELATED_LOCATIONS     : constant String := "relatedLocations";
+    N_RELATIONSHIPS         : constant String := "relationships";
+    N_REPLACEMENTS          : constant String := "replacements";
+    N_RESULTS               : constant String := "results";
+    N_RULES                 : constant String := "rules";
+    N_RULE_ID               : constant String := "ruleId";
+    N_RUNS                  : constant String := "runs";
+    N_SCHEMA                : constant String := "$schema";
+    N_START_COLUMN          : constant String := "startColumn";
+    N_START_LINE            : constant String := "startLine";
+    N_TARGET                : constant String := "target";
+    N_TEXT                  : constant String := "text";
+    N_TOOL                  : constant String := "tool";
+    N_URI                   : constant String := "uri";
+    N_URI_BASE_ID           : constant String := "uriBaseId";
+    N_VERSION               : constant String := "version";
+ 
+    --  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");
+ 
+    URI_Base_Id_Name : constant String := "PWD";
+    --  We use the pwd as the originalUriBaseIds when providing absolute paths
+    --  in locations.
+ 
+    Current_Dir : constant String := Get_Current_Dir;
+    --  Cached value of the current directory that is used in the URI_Base_Id
+    --  and it is also the path that all other Uri attributes will be created
+    --  relative to.
+ 
+    procedure Destroy (Elem : in out Edit_Type);
+ 
+    procedure Destroy (Elem : in out Edit_Type) is
+    begin
+       --  Diagnostic elements will be freed when all the diagnostics have been
+       --  emitted.
+       null;
+    end Destroy;
+ 
+    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 Artifact_Change is record
+       File_Index : Source_File_Index;
+       --  Index for the source 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_Index = R.File_Index);
+ 
+    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.
+ 
+    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 (E_Msg : Error_Msg_Object);
+    --  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 (Sfile : Source_File_Index);
+    --  Print an artifactLocation node
+    --
+    --   "artifactLocation": {
+    --     "uri": <File_Name>,
+    --     "uriBaseId": "PWD"
+    --   }
+ 
+    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 (E_Msg : Error_Msg_Object);
+    --  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 := N_MESSAGE);
+    --  Print a SARIF message node.
+    --
+    --  There are many message type nodes in the SARIF report however they can
+    --  have a different node <Name>.
+    --
+    --  <Name>: {
+    --    "text": <text>
+    --  },
+ 
+    procedure Print_Original_Uri_Base_Ids;
+    --  Print the originalUriBaseIds that holds the PWD value
+    --
+    --  "originalUriBaseIds": {
+    --    "PWD": {
+    --      "uri": "<current_working_directory>"
+    --    }
+    --  },
+ 
+    procedure Print_Related_Locations (E_Msg : Error_Msg_Object);
+    --  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 := N_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_Relationship (Target : String; Kind : String);
+    --  {
+    --     "target": {
+    --        "id": <Target>
+    --     },
+    --     "kinds": [
+    --        <kind>
+    --     ]
+    --  }
+ 
+    procedure Print_Result (E_Msg : Error_Msg_Object);
+    --   {
+    --     "ruleId": <Diag.Id>,
+    --     "level": <Diag.Kind>,
+    --     "message": {
+    --       "text": <Diag.Message>
+    --     },
+    --     "locations": [<Primary_Location>],
+    --     "relatedLocations": [<Secondary_Locations>]
+    --  },
+ 
+    procedure Print_Results;
+    --  Print a results node that consists of multiple result nodes for each
+    --  diagnostic instance.
+    --
+    --   "results": [
+    --     <Result (Diag)>
+    --   ]
+ 
+    procedure Print_Rule (E : Diagnostic_Id);
+    --  Print a rule node that consists of the following attributes:
+    --  * ruleId
+    --  * name
+    --
+    --  {
+    --    "id": <Diag.Id>,
+    --    "name": <Human_Id(Diag)>
+    --  },
+ 
+    procedure Print_Rule (S : Switch_Id);
+    --  Print a rule node that consists of the following attributes:
+    --  * ruleId
+    --  * name
+    --
+    --  {
+    --    "id": <Switch.Id>,
+    --    "name": <Human_Id(S)>
+    --  },
+ 
+    procedure Print_Rules (Self : SARIF_Printer);
+    --  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 (Self : SARIF_Printer);
+    --  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 (Self : SARIF_Printer);
+    --  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
+       Edit_Lists.Destroy (Elem.Replacements);
+    end Destroy;
+ 
+    ----------
+    -- Free --
+    ----------
+ 
+    procedure Free (Self : in out SARIF_Printer) is
+    begin
+       if Diagnostic_Id_Lists.Present (Self.Diagnostics) then
+          Diagnostic_Id_Lists.Destroy (Self.Diagnostics);
+       end if;
+ 
+       if Switch_Id_Lists.Present (Self.Switches) then
+          Switch_Id_Lists.Destroy (Self.Switches);
+       end if;
+    end Free;
+ 
+    --------------------------
+    -- 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_Index = Get_Source_File_Index (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_Index    => Get_Source_File_Index (E.Span.Ptr),
+                 Replacements => Replacements));
+          end;
+       end Insert;
+ 
+       Changes : constant Artifact_Change_List := Artifact_Change_Lists.Create;
+ 
+       E : Edit_Type;
+ 
+       It : Edit_Id;
+ 
+       --  Start of processing for Get_Artifact_Changes
+ 
+    begin
+       It := Fix.Edits;
+ 
+       while It /= No_Edit loop
+          E := Edits.Table (It);
+ 
+          Insert (Changes, E);
+ 
+          It := E.Next;
+       end loop;
+ 
+       return Changes;
+    end Get_Artifact_Changes;
+ 
+    ---------------------------
+    -- Print_Artifact_Change --
+    ---------------------------
+ 
+    procedure Print_Artifact_Change (A : Artifact_Change) is
+       use 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_Index);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Str ("""" & N_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 (Sfile : Source_File_Index) is
+       Full_Name : constant String := Get_Name_String (Full_Ref_Name (Sfile));
+    begin
+       Write_Str ("""" & N_ARTIFACT_LOCATION & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       if System.OS_Lib.Is_Absolute_Path (Full_Name) then
+          declare
+             Abs_Name : constant String :=
+               System.OS_Lib.Normalize_Pathname
+                 (Name => Full_Name, Resolve_Links => False);
+          begin
+             --  We cannot create relative paths between different drives on
+             --  Windows. If the path is on a different drive than the PWD print
+             --  the absolute path in the URI and omit the baseUriId attribute.
+ 
+             if Osint.On_Windows
+               and then Abs_Name (Abs_Name'First) =
+                 Current_Dir (Current_Dir'First)
+             then
+                Write_String_Attribute (N_URI, To_File_Uri (Abs_Name));
+             else
+                Write_String_Attribute
+                  (N_URI, To_File_Uri (Relative_Path (Abs_Name, Current_Dir)));
+ 
+                Write_Char (',');
+                NL_And_Indent;
+ 
+                Write_String_Attribute (N_URI_BASE_ID, URI_Base_Id_Name);
+             end if;
+          end;
+       else
+          --  If the path was not absolute it was given relative to the
+          --  uriBaseId.
+ 
+          Write_String_Attribute (N_URI, To_File_Uri (Full_Name));
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Write_String_Attribute (N_URI_BASE_ID, URI_Base_Id_Name);
+       end if;
+ 
+       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       => N_DELETED_REGION);
+ 
+       if Replacement.Text /= null then
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Print_Message (Replacement.Text.all, N_INSERTED_CONTENT);
+       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, N_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 ("""" & N_ARTIFACT_CHANGES & """" & ": " & "[");
+          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 (E_Msg : Error_Msg_Object) is
+       F    : Fix_Type;
+       F_It : Fix_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_FIXES & """" & ": " & "[");
+       Begin_Block;
+ 
+       F_It := E_Msg.Fixes;
+       while F_It /= No_Fix loop
+          F := Fixes.Table (F_It);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Fix (F);
+ 
+          F_It := F.Next;
+       end loop;
+ 
+       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
+          Find_Program_Name;
+          Append (Buffer, Name_Buffer (1 .. Name_Len));
+          Append (Buffer, ' ');
+          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 ("""" & N_INVOCATIONS & """" & ": " & "[");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print commandLine
+ 
+       Write_String_Attribute (N_COMMAND_LINE, Compose_Command_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print executionSuccessful
+ 
+       Write_Boolean_Attribute (N_EXECUTION_SUCCESSFUL, Exit_Code = E_Success);
+ 
+       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 := N_REGION) is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_START_LINE, Start_Line);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_START_COLUMN, Start_Col);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Int_Attribute (N_END_LINE, 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 (N_END_COLUMN, 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 ("""" & N_PHYSICAL_LOCATION & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print artifactLocation
+ 
+       Print_Artifact_Location (Get_Source_File_Index (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 (E_Msg : Error_Msg_Object) is
+       Loc : Labeled_Span_Type;
+       It  : Labeled_Span_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_LOCATIONS & """" & ": " & "[");
+       Begin_Block;
+ 
+       It := E_Msg.Locations;
+       while It /= No_Labeled_Span loop
+          Loc := Locations.Table (It);
+ 
+          --  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;
+ 
+          It := Loc.Next;
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Locations;
+ 
+    -------------------
+    -- Print_Message --
+    -------------------
+ 
+    procedure Print_Message (Text : String; Name : String := N_MESSAGE) is
+ 
+    begin
+       Write_Str ("""" & Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+       Write_String_Attribute (N_TEXT, Text);
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Message;
+ 
+    ---------------------------------
+    -- Print_Original_Uri_Base_Ids --
+    ---------------------------------
+ 
+    procedure Print_Original_Uri_Base_Ids is
+    begin
+       Write_Str ("""" & N_ORIGINAL_URI_BASE_IDS & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & URI_Base_Id_Name & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_URI, To_File_Uri (Current_Dir));
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Original_Uri_Base_Ids;
+ 
+    -----------------------------
+    -- Print_Related_Locations --
+    -----------------------------
+ 
+    procedure Print_Related_Locations (E_Msg : Error_Msg_Object) is
+       Loc    : Labeled_Span_Type;
+       Loc_It : Labeled_Span_Id;
+ 
+       Sub    : Error_Msg_Object;
+       Sub_It : Error_Msg_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RELATED_LOCATIONS & """" & ": " & "[");
+       Begin_Block;
+ 
+       --  Related locations are the non-primary spans of the diagnostic
+ 
+       Loc_It := E_Msg.Locations;
+       while Loc_It /= No_Labeled_Span loop
+          Loc := Locations.Table (Loc_It);
+ 
+          --  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;
+          Loc_It := Loc.Next;
+       end loop;
+ 
+       --  And the sub-diagnostic locations
+ 
+       Sub_It := E_Msg.Next;
+       while Sub_It /= No_Error_Msg and then Errors.Table (Sub_It).Msg_Cont loop
+          Sub := Errors.Table (Sub_It);
+ 
+          declare
+             Found : Boolean := False;
+ 
+             Prim_Loc_Id : Labeled_Span_Id;
+          begin
+             Prim_Loc_Id := Primary_Location (Sub);
+ 
+             if Prim_Loc_Id /= No_Labeled_Span then
+                Found := True;
+             else
+                Prim_Loc_Id := Primary_Location (E_Msg);
+                Found       := True;
+             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 (Locations.Table (Prim_Loc_Id), Sub.Text);
+             end if;
+          end;
+ 
+          Next_Continuation_Msg (Sub_It);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Related_Locations;
+ 
+    ------------------------
+    -- Print_Relationship --
+    ------------------------
+ 
+    procedure Print_Relationship (Target : String; Kind : String) is
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_Str ("""" & N_TARGET & """" & ": " & "{");
+       Begin_Block;
+ 
+       NL_And_Indent;
+       Write_String_Attribute (N_ID, Target);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_Str ("""" & N_KINDS & """" & ": " & "[");
+       Begin_Block;
+ 
+       NL_And_Indent;
+       Write_Char ('"');
+       Write_JSON_Escaped_String (Kind);
+       Write_Char ('"');
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Relationship;
+ 
+    ------------------
+    -- Print_Result --
+    ------------------
+ 
+    procedure Print_Result (E_Msg : Error_Msg_Object) is
+ 
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Print ruleId
+ 
+       Write_String_Attribute (N_RULE_ID, To_String (E_Msg.Id));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print level
+ 
+       Write_String_Attribute (N_LEVEL, Kind_To_String (E_Msg));
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print message
+ 
+       Print_Message (E_Msg.Text.all);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print locations
+ 
+       Print_Locations (E_Msg);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print related locations
+ 
+       Print_Related_Locations (E_Msg);
+ 
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       --  Print fixes
+ 
+       Print_Fixes (E_Msg);
+ 
+       End_Block;
+       NL_And_Indent;
+ 
+       Write_Char ('}');
+    end Print_Result;
+ 
+    -------------------
+    -- Print_Results --
+    -------------------
+ 
+    procedure Print_Results is
+       E : Error_Msg_Id;
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RESULTS & """" & ": " & "[");
+       Begin_Block;
+ 
+       E := First_Error_Msg;
+       while E /= No_Error_Msg loop
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+ 
+          Print_Result (Errors.Table (E));
+ 
+          Next_Error_Msg (E);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Results;
+ 
+    ----------------
+    -- Print_Rule --
+    ----------------
+ 
+    procedure Print_Rule (E : Diagnostic_Id) is
+       Human_Id : constant String_Ptr := Diagnostic_Entries (E).Human_Id;
+       Switch   : constant Switch_Id := Diagnostic_Entries (E).Switch;
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_ID, To_String (E));
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       if Human_Id = null then
+          Write_String_Attribute (N_NAME, "Uncategorized_Diagnostic");
+       else
+          Write_String_Attribute (N_NAME, Human_Id.all);
+       end if;
+ 
+       if Switch /= No_Switch_Id then
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Write_Str ("""" & N_RELATIONSHIPS & """" & ": " & "[");
+          Begin_Block;
+ 
+          NL_And_Indent;
+          Print_Relationship (Switches (Switch).Short_Name.all, "superset");
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char (']');
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Rule;
+ 
+    procedure Print_Rule (S : Switch_Id) is
+       First : Boolean := True;
+    begin
+       pragma Assert (S /= No_Switch_Id);
+ 
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_ID, Switches (S).Short_Name.all);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_NAME, Switches (S).Human_Id.all);
+ 
+       if Switches (S).Diagnostics /= null then
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Write_Str ("""" & N_RELATIONSHIPS & """" & ": " & "[");
+          Begin_Block;
+          NL_And_Indent;
+ 
+          for D of Switches (S).Diagnostics.all loop
+             if First then
+                First := False;
+             else
+                Write_Char (',');
+             end if;
+             Print_Relationship (To_String (D), "subset");
+          end loop;
+ 
+          End_Block;
+          NL_And_Indent;
+          Write_Char (']');
+       end if;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+    end Print_Rule;
+ 
+    -----------------
+    -- Print_Rules --
+    -----------------
+ 
+    procedure Print_Rules (Self : SARIF_Printer) is
+       D       : Diagnostic_Id;
+       S       : Switch_Id;
+       Diag_It : Diagnostic_Id_Lists.Iterator :=
+         Diagnostic_Id_Lists.Iterate (Self.Diagnostics);
+       Sw_It   : Switch_Id_Lists.Iterator :=
+         Switch_Id_Lists.Iterate (Self.Switches);
+ 
+       First : Boolean := True;
+    begin
+       Write_Str ("""" & N_RULES & """" & ": " & "[");
+       Begin_Block;
+ 
+       while Diagnostic_Id_Lists.Has_Next (Diag_It) loop
+          Diagnostic_Id_Lists.Next (Diag_It, D);
+ 
+          if First then
+             First := False;
+          else
+             Write_Char (',');
+          end if;
+ 
+          NL_And_Indent;
+          Print_Rule (D);
+       end loop;
+ 
+       while Switch_Id_Lists.Has_Next (Sw_It) loop
+          Switch_Id_Lists.Next (Sw_It, S);
+ 
+          Write_Char (',');
+ 
+          NL_And_Indent;
+          Print_Rule (S);
+       end loop;
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char (']');
+    end Print_Rules;
+ 
+    ----------------
+    -- Print_Tool --
+    ----------------
+ 
+    procedure Print_Tool (Self : SARIF_Printer) is
+ 
+    begin
+       Write_Str ("""" & N_TOOL & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  --  Attributes of tool
+ 
+       Write_Str ("""" & N_DRIVER & """" & ": " & "{");
+       Begin_Block;
+       NL_And_Indent;
+ 
+       --  Attributes of tool.driver
+ 
+       Write_String_Attribute (N_NAME, "GNAT");
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_VERSION, Gnat_Version_String);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Rules (Self);
+ 
+       --  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 (Self : SARIF_Printer) is
+ 
+    begin
+       Write_Str ("""" & N_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 (Self);
+ 
+       --  Print the Invocation and Results only in the Diagnostic_Report but
+       --  not during the Repository_Report.
+ 
+       if Self.Report_Type = Diagnostic_Report then
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          --  A run consists of an invocation
+          Print_Invocations;
+ 
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          Print_Original_Uri_Base_Ids;
+          Write_Char (',');
+          NL_And_Indent;
+ 
+          --  A run consists of results
+ 
+          Print_Results;
+       end if;
+ 
+       --  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 (Self : SARIF_Printer) is
+    begin
+       Write_Char ('{');
+       Begin_Block;
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_SCHEMA, SARIF_Schema);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Write_String_Attribute (N_VERSION, SARIF_Version);
+       Write_Char (',');
+       NL_And_Indent;
+ 
+       Print_Runs (Self);
+ 
+       End_Block;
+       NL_And_Indent;
+       Write_Char ('}');
+ 
+       Write_Eol;
+    end Print_SARIF_Report;
+ 
+ end Erroutc.SARIF_Emitter;
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc-sarif_emitter.ads gcc-16.1.0-RC-20260423/gcc/ada/erroutc-sarif_emitter.ads
*** gcc-15.2.0/gcc/ada/erroutc-sarif_emitter.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc-sarif_emitter.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,76 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                 E R R O U T C . S A R I F _ E M I T T E R                --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 GNAT.Lists; use GNAT.Lists;
+ package Erroutc.SARIF_Emitter is
+ 
+    procedure Destroy (Elem : in out Switch_Id) is null;
+    pragma Inline (Destroy);
+    package Switch_Id_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Switch_Id,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+    subtype Switch_Id_List is Switch_Id_Lists.Doubly_Linked_List;
+ 
+    procedure Destroy (Elem : in out Diagnostic_Id) is null;
+    pragma Inline (Destroy);
+    package Diagnostic_Id_Lists is new Doubly_Linked_Lists
+      (Element_Type    => Diagnostic_Id,
+       "="             => "=",
+       Destroy_Element => Destroy,
+       Check_Tampering => False);
+ 
+    subtype Diagnostic_Id_List is Diagnostic_Id_Lists.Doubly_Linked_List;
+ 
+    type Report_Kind is (Diagnostic_Report, Repository_Report);
+    --  SARIF emitter is used to produce two different types of reports:
+    --
+    --  Diagnostic_Report - This report includes all of the diagnostics gathered
+    --  by the tool under the results, the commandline used to start the tool
+    --  under the invocations and all of the unique rules in the emitted
+    --  diagnostics under the rules section.
+    --
+    --  Repository_Report - This report inludes all of the defined
+    --  Diagnostic_Id-s and Switch_Id-s as rules but does not contain an
+    --  invocation or a result section.
+ 
+    type SARIF_Printer is record
+       Diagnostics : Diagnostic_Id_List;
+       --  Unique diagnostics printed as rules in the SARIF report
+ 
+       Switches : Switch_Id_List;
+       --  Unique switches printed as rules in the SARIF report
+ 
+       Report_Type : Report_Kind := Diagnostic_Report;
+       --  The type of report to be printed in SARIF
+    end record;
+ 
+    procedure Free (Self : in out SARIF_Printer);
+    --  Free memory for the SARIF_Pritner
+ 
+    procedure Print_SARIF_Report (Self : SARIF_Printer);
+    --  Prints the SARIF report to the currently selected output.
+ 
+ end Erroutc.SARIF_Emitter;
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc.adb gcc-16.1.0-RC-20260423/gcc/ada/erroutc.adb
*** gcc-15.2.0/gcc/ada/erroutc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Casing;   use Casing;
*** 34,39 ****
--- 34,40 ----
  with Csets;    use Csets;
  with Debug;    use Debug;
  with Err_Vars; use Err_Vars;
+ with Errid.Switch_Repository; use Errid.Switch_Repository;
  with Fname;    use Fname;
  with Namet;    use Namet;
  with Opt;      use Opt;
*************** package body Erroutc is
*** 225,273 ****
     ------------------------
  
     function Compilation_Errors return Boolean is
-       Warnings_Count : constant Int := Warnings_Detected;
     begin
!       if Total_Errors_Detected /= 0 then
!          return True;
! 
!       elsif Warnings_Treated_As_Errors /= 0 then
!          return True;
! 
!       --  We should never treat warnings that originate from a
!       --  Compile_Time_Warning pragma as an error. Warnings_Count is the sum
!       --  of both "normal" and Compile_Time_Warning warnings. This means that
!       --  there are only one or more non-Compile_Time_Warning warnings when
!       --  Warnings_Count is greater than Count_Compile_Time_Pragma_Warnings.
! 
!       elsif Warning_Mode = Treat_As_Error
!          and then Warnings_Count > Count_Compile_Time_Pragma_Warnings
!       then
!          return True;
!       end if;
! 
!       return False;
     end Compilation_Errors;
  
-    ----------------------------------------
-    -- Count_Compile_Time_Pragma_Warnings  --
-    ----------------------------------------
- 
-    function Count_Compile_Time_Pragma_Warnings return Int is
-       Result : Int := 0;
-    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
-                Result := Result + 1;
-             end if;
-          end;
-       end loop;
-       return Result;
-    end Count_Compile_Time_Pragma_Warnings;
- 
     ------------------------------
     -- Decrease_Error_Msg_Count --
     ------------------------------
--- 226,236 ----
     ------------------------
  
     function Compilation_Errors return Boolean is
     begin
!       return Total_Errors_Detected /= 0
!         or else Warnings_Treated_As_Errors /= 0;
     end Compilation_Errors;
  
     ------------------------------
     -- Decrease_Error_Msg_Count --
     ------------------------------
*************** package body Erroutc is
*** 282,287 ****
--- 245,254 ----
           when Warning | Style =>
              Warnings_Detected := Warnings_Detected - 1;
  
+             if E.Warn_Err /= None then
+                Warnings_Treated_As_Errors := Warnings_Treated_As_Errors - 1;
+             end if;
+ 
           when High_Check | Medium_Check | Low_Check =>
              Check_Messages := Check_Messages - 1;
  
*************** package body Erroutc is
*** 340,346 ****
        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);
--- 307,313 ----
        w ("  Line               = ", Int (E.Line));
        w ("  Col                = ", Int (E.Col));
        w ("  Kind               = ", E.Kind'Img);
!       w ("  Warn_Err           = ", E.Warn_Err'Img);
        w ("  Warn_Chr           = '" & E.Warn_Chr & ''');
        w ("  Uncond             = ", E.Uncond);
        w ("  Msg_Cont           = ", E.Msg_Cont);
*************** package body Erroutc is
*** 372,382 ****
     ------------------------
  
     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
--- 339,354 ----
     ------------------------
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String is
!    begin
!       return Get_Warning_Option (Errors.Table (Id));
!    end Get_Warning_Option;
! 
!    function Get_Warning_Option (E : Error_Msg_Object) return String is
!       Is_Style : constant Boolean         := E.Kind in Style;
!       Warn_Chr : constant String (1 .. 2) := E.Warn_Chr;
  
     begin
!       if Has_Switch_Tag (E)
          and then Warn_Chr (1) /= '?'
        then
           if Warn_Chr = "$ " then
*************** package body Erroutc is
*** 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
--- 370,385 ----
     ---------------------
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String is
!    begin
!       return Get_Warning_Tag (Errors.Table (Id));
!    end Get_Warning_Tag;
! 
!    function Get_Warning_Tag (E : Error_Msg_Object) return String is
!       Warn_Chr : constant String (1 .. 2) := E.Warn_Chr;
!       Option   : constant String          := Get_Warning_Option (E);
  
     begin
!       if Has_Switch_Tag (E) then
           if Warn_Chr = "? " then
              return "[enabled by default]";
           elsif Warn_Chr = "* " then
*************** package body Erroutc is
*** 429,434 ****
--- 406,429 ----
           when Warning | Style =>
              Warnings_Detected := Warnings_Detected + 1;
  
+             if E.Warn_Err /= None then
+                Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
+ 
+                --  Propagate Warn_Err to all of the preceeding continuation
+                --  messages and the main message.
+ 
+                for J in reverse 1 .. Errors.Last loop
+                   if Errors.Table (J).Warn_Err = None then
+                      Errors.Table (J).Warn_Err := E.Warn_Err;
+ 
+                      Warnings_Treated_As_Errors :=
+                        Warnings_Treated_As_Errors + 1;
+                   end if;
+ 
+                   exit when not Errors.Table (J).Msg_Cont;
+                end loop;
+             end if;
+ 
           when High_Check | Medium_Check | Low_Check =>
              Check_Messages := Check_Messages + 1;
  
*************** package body Erroutc is
*** 467,481 ****
  
          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;
  
     --------------------
--- 462,477 ----
  
          and then not Errors.Table (Cur_Msg).Msg_Cont
  
!         --  Don't delete if prev msg is warning or a non-serious-error 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 | Non_Serious_Error
!                   or else Errors.Table (Cur_Msg).Kind
!                           in Warning | Style | Non_Serious_Error);
     end Is_Redundant_Error_Message;
  
     --------------------
*************** package body Erroutc is
*** 491,496 ****
--- 487,594 ----
          E_Msg.Kind in Warning | Info | Style and then E_Msg.Warn_Chr /= "  ";
     end Has_Switch_Tag;
  
+    --------------------
+    -- Next_Error_Msg --
+    --------------------
+ 
+    procedure Next_Error_Msg (E : in out Error_Msg_Id) is
+    begin
+       loop
+          E := Errors.Table (E).Next;
+          exit when E = No_Error_Msg;
+          exit when not Errors.Table (E).Deleted
+            and then not Errors.Table (E).Msg_Cont;
+       end loop;
+    end Next_Error_Msg;
+ 
+    ---------------------------
+    -- Next_Continuation_Msg --
+    ---------------------------
+ 
+    procedure Next_Continuation_Msg (E : in out Error_Msg_Id) is
+    begin
+       E := Errors.Table (E).Next;
+ 
+       if E = No_Error_Msg or else not Errors.Table (E).Msg_Cont then
+          E := No_Error_Msg;
+       end if;
+    end Next_Continuation_Msg;
+ 
+    ----------------------
+    -- Primary_Location --
+    ----------------------
+ 
+    function Primary_Location (E : Error_Msg_Object) return Labeled_Span_Id is
+       L : Labeled_Span_Id;
+    begin
+       L := E.Locations;
+       while L /= No_Labeled_Span loop
+          if Locations.Table (L).Is_Primary then
+             return L;
+          end if;
+ 
+          L := Locations.Table (L).Next;
+       end loop;
+ 
+       return No_Labeled_Span;
+    end Primary_Location;
+ 
+    --------------------
+    -- Get_Doc_Switch --
+    --------------------
+ 
+    function Get_Doc_Switch (E : Error_Msg_Object) return String is
+    begin
+       if Warning_Doc_Switch
+         and then E.Warn_Chr /= "  "
+         and then E.Kind in Info
+           | Style
+           | Warning
+       then
+          if E.Switch = No_Switch_Id then
+             if E.Warn_Chr = "* " then
+                return "[restriction warning]";
+ 
+                --  Info messages can have a switch tag but they should not have
+                --  a default switch tag.
+ 
+             elsif E.Kind /= Info then
+ 
+                --  For Default_Warning
+ 
+                return "[enabled by default]";
+             end if;
+          else
+             return "[-" & Switches (E.Switch).Short_Name.all & "]";
+          end if;
+       end if;
+ 
+       return "";
+    end Get_Doc_Switch;
+ 
+    -------------------
+    -- Get_Switch_Id --
+    -------------------
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id is
+    begin
+       return Get_Switch_Id (E.Kind, E.Warn_Chr);
+    end Get_Switch_Id;
+ 
+    function Get_Switch_Id
+      (Kind : Error_Msg_Type; Warn_Chr : String) return Switch_Id is
+    begin
+       if Warn_Chr = "$ " then
+          return Get_Switch_Id ("gnatel");
+       elsif Kind in Warning | Info then
+          return Get_Switch_Id ("gnatw" & Warn_Chr);
+       elsif Kind = Style then
+          return Get_Switch_Id ("gnaty" & Warn_Chr);
+       else
+          return No_Switch_Id;
+       end if;
+    end Get_Switch_Id;
+ 
     -------------
     -- Matches --
     -------------
*************** package body Erroutc is
*** 752,758 ****
     -- 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
  
--- 850,856 ----
     -- Output_Text_Within --
     ------------------------
  
!    procedure Output_Text_Within (Txt : String; Line_Length : Nat) is
        Offs : constant Nat := Column - 1;
        --  Offset to start of message, used for continuations
  
*************** package body Erroutc is
*** 869,966 ****
  
     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;
! 
!       --  If -gnatdF is used, continuation messages follow the main message
!       --  with only an indentation of two space characters, without repeating
!       --  any prefix.
! 
!       if Debug_Flag_FF and then E_Msg.Msg_Cont then
!          null;
! 
!       --  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
! 
!       elsif E_Msg.Warn_Err then
! 
!       --  We prefix with "error:" rather than warning: and postfix
!       --  [warning-as-error] at the end.
! 
!          Warnings_Treated_As_Errors := Warnings_Treated_As_Errors + 1;
!          Txt := new String'(SGR_Error & "error: " & SGR_Reset
!                             & Txt.all & " [warning-as-error]");
! 
!       --  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));
!          end if;
! 
!       --  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: ..."
!          --
!          --  Enclose the severity with an SGR control string if requested
  
!          if Use_SGR_Control then
!             declare
!                Msg   : String renames Text.all;
!                Colon : Natural := 0;
!             begin
!                --  Find first colon
  
!                for J in Msg'Range loop
!                   if Msg (J) = ':' then
!                      Colon := J;
!                      exit;
!                   end if;
!                end loop;
  
!                pragma Assert (Colon > 0);
  
!                Txt := new String'(SGR_Error
!                                   & Msg (Msg'First .. Colon)
!                                   & SGR_Reset
!                                   & Msg (Colon + 1 .. Msg'Last));
!             end;
!          end if;
  
!       --  All other cases, add "error: " if unique error tag set
  
!       elsif Opt.Unique_Error_Tag then
!          Txt := new String'(SGR_Error & "error: " & SGR_Reset & Txt.all);
        end if;
  
!       Output_Text_Within (Txt, Line_Length);
     end Output_Msg_Text;
  
     ---------------------
--- 967,1025 ----
  
     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);
!       SGR_Code    : constant String     := Get_SGR_Code (E_Msg);
!       Kind_Prefix : constant String     :=
!         (if E_Msg.Kind = Style then Style_Prefix
!          else Kind_To_String (E_Msg) & ": ");
!       Buf         : Bounded_String (Max_Msg_Length);
!       Line_Length : constant Nat        :=
          (if Error_Msg_Line_Length = 0 then Nat'Last
           else Error_Msg_Line_Length);
  
     begin
!       --  Prefix with "error:" rather than warning.
!       --  Additionally include the style suffix when needed.
  
!       if E_Msg.Warn_Err in From_Pragma | From_Run_Time_As_Err then
!          Append
!            (Buf,
!             SGR_Error & "error: " & SGR_Reset &
!             (if E_Msg.Kind = Style then Style_Prefix else ""));
  
!       --  Print the message kind prefix
!       --  * Info/Style/Warning messages
!       --  * Check messages that are not continuations in the pretty printer
!       --  * Error messages when error tags are allowed
  
!       elsif E_Msg.Kind in Info | Style | Warning
!         or else
!         (E_Msg.Kind in High_Check | Medium_Check | Low_Check
!          and then not (E_Msg.Msg_Cont and then Debug_Flag_FF))
!         or else
!         (E_Msg.Kind in Error | Non_Serious_Error
!          and then Opt.Unique_Error_Tag)
!       then
!          Append (Buf, SGR_Code & Kind_Prefix & SGR_Reset);
!       end if;
  
!       Append (Buf, Text.all);
  
!       --  Postfix warning tag to message if needed
  
!       if Tag /= "" and then Warning_Doc_Switch then
!          Append (Buf, ' ' & Tag);
!       end if;
  
!       --  Postfix [warning-as-error] at the end
  
!       if E_Msg.Warn_Err = From_Pragma then
!          Append (Buf, " " & Warn_As_Err_Tag);
        end if;
  
!       Output_Text_Within (To_String (Buf), Line_Length);
     end Output_Msg_Text;
  
     ---------------------
*************** package body Erroutc is
*** 1051,1091 ****
  
           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;
--- 1110,1160 ----
  
           Error_Msg_Kind       := Error;
           Is_Unconditional_Msg := False;
!          Is_Runtime_Raise_Msg := False;
           Warning_Msg_Char     := "  ";
  
           --  Check style message
  
!          if Msg'Length > Style_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Style_Prefix'Length - 1) =
!              Style_Prefix
           then
              Error_Msg_Kind := Style;
  
              --  Check info message
  
!          elsif Msg'Length > Info_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Info_Prefix'Length - 1) =
!              Info_Prefix
           then
              Error_Msg_Kind := Info;
  
              --  Check high check message
  
!          elsif Msg'Length > High_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + High_Prefix'Length - 1) =
!              High_Prefix
           then
              Error_Msg_Kind := High_Check;
  
              --  Check medium check message
  
!          elsif Msg'Length > Medium_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Medium_Prefix'Length - 1) =
!              Medium_Prefix
           then
              Error_Msg_Kind := Medium_Check;
  
              --  Check low check message
  
!          elsif Msg'Length > Low_Prefix'Length
!            and then
!              Msg (Msg'First .. Msg'First + Low_Prefix'Length - 1) =
!              Low_Prefix
           then
              Error_Msg_Kind := Low_Check;
           end if;
*************** package body Erroutc is
*** 1211,1216 ****
--- 1280,1287 ----
        E := First_Error_Msg;
        while E /= No_Error_Msg loop
           while To_Be_Purged (Errors.Table (E).Next) loop
+             Errors.Table (Errors.Table (E).Next).Deleted := True;
+ 
              Errors.Table (E).Next :=
                Errors.Table (Errors.Table (E).Next).Next;
           end loop;
*************** package body Erroutc is
*** 1484,1489 ****
--- 1555,1600 ----
     ----------------------------
  
     procedure Set_Msg_Insertion_Name is
+       procedure Replace_With_Attribute_Definition;
+       --  This procedure handles direct attribute definition names of the form:
+       --    'D' Prefix_Name "_" Attribute_Name "_Att"
+       --  Specifically, it replace the current Namet.Global_Name_Buffer with an
+       --  all lowercase string of the prefix, and a tick attribute; at this
+       --  stage there is no way to recognize more than an ending attribute ???
+       --
+       --  Note that, at this point, it is not possible to restore the original
+       --  casing thus lowercase is default.a
+ 
+       procedure Replace_With_Attribute_Definition is
+          First   : constant Integer := 2;
+          Last    : constant Integer := Name_Len - 4;
+          Att_Buf : Bounded_String (Max_Length => Name_Len - 7);
+       begin
+          Until_Tick :
+          for J in First .. Last loop
+ 
+             --  J could be at the position separating the prefix from the
+             --  attribute name.
+ 
+             if Name_Buffer (J) = '_' then
+                Att_Buf.Length := 0;
+                Append (Att_Buf, Name_Buffer (J + 1 .. Last));
+                Set_Casing (Att_Buf, All_Lower_Case);
+                if Is_Direct_Attribute_Definition_Name (Name_Find (Att_Buf))
+                then
+                   Name_Buffer (J) := ''';
+                   exit Until_Tick;
+                end if;
+             end if;
+          end loop Until_Tick;
+ 
+          --  Remove prefix 'D' and suffix "_Att"
+ 
+          Name_Buffer (1 .. Last - 1) := Name_Buffer (2 .. Last);
+          Name_Len := Last - 1;
+          Set_Casing (All_Lower_Case);
+       end Replace_With_Attribute_Definition;
+ 
     begin
        if Error_Msg_Name_1 = No_Name then
           null;
*************** package body Erroutc is
*** 1529,1535 ****
           --  Else output with surrounding quotes in proper casing mode
  
           else
!             Set_Casing (Identifier_Casing (Flag_Source));
              Set_Msg_Quote;
              Set_Msg_Name_Buffer;
              Set_Msg_Quote;
--- 1640,1653 ----
           --  Else output with surrounding quotes in proper casing mode
  
           else
!             if Name_Buffer (1) = 'D'
!               and then Name_Buffer (Name_Len - 3 .. Name_Len) = "_Att"
!             then
!                Replace_With_Attribute_Definition;
!             else
!                Set_Casing (Identifier_Casing (Flag_Source));
!             end if;
! 
              Set_Msg_Quote;
              Set_Msg_Name_Buffer;
              Set_Msg_Quote;
*************** package body Erroutc is
*** 2004,2009 ****
--- 2122,2135 ----
        return False;
     end Warning_Treated_As_Error;
  
+    function Warning_Treated_As_Error (E : Error_Msg_Object) return Boolean is
+ 
+    begin
+       return
+         Warning_Treated_As_Error (E.Text.all)
+         or else Warning_Treated_As_Error (Get_Warning_Tag (E));
+    end Warning_Treated_As_Error;
+ 
     -------------------------
     -- Warnings_Suppressed --
     -------------------------
*************** package body Erroutc is
*** 2080,2155 ****
           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 (", ");
--- 2206,2237 ----
           Write_Str (" errors");
        end if;
  
!       if Warnings_Detected > 0 then
!          Write_Str (", ");
!          Write_Int (Warnings_Detected);
!          Write_Str (" warning");
  
!          if Warnings_Detected > 1 then
!             Write_Char ('s');
!          end if;
  
!          if Warnings_Treated_As_Errors > 0 then
!             Write_Str (" (");
  
!             if Warnings_Treated_As_Errors /= Warnings_Detected 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;
  
        if Info_Messages /= 0 then
           Write_Str (", ");
diff -Nrcpad gcc-15.2.0/gcc/ada/erroutc.ads gcc-16.1.0-RC-20260423/gcc/ada/erroutc.ads
*** gcc-15.2.0/gcc/ada/erroutc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/erroutc.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,36 ****
--- 27,41 ----
  --  reporting packages, including Errout and Prj.Err.
  
  with Table;
+ with Errid; use Errid;
+ with Osint; use Osint;
  with Types; use Types;
  
  package Erroutc is
  
+    Exit_Code : Exit_Code_Type := E_Success;
+    --  Exit_Code used at the end of the compilation
+ 
     type Error_Msg_Type is
       (Error,  -- Default value
        Non_Serious_Error,
*************** package Erroutc is
*** 76,90 ****
     --  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);
--- 81,94 ----
     --  Set true to indicate that the current message originates from a
     --  Compile_Time_Warning or Compile_Time_Error pragma.
  
+    Is_Runtime_Raise_Msg : Boolean := False;
+    --  Set to True to indicate that the current message is a constraint error
+    --  that will be raised at runtime (contains [).
+ 
     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.
  
     Error_Msg_Kind : Error_Msg_Type := Error;
  
     Warning_Msg_Char : String (1 .. 2);
*************** package Erroutc is
*** 177,182 ****
--- 181,275 ----
     --  The following record type and table are used to represent error
     --  messages, with one entry in the table being allocated for each message.
  
+    type Labeled_Span_Id is new Int;
+    No_Labeled_Span : constant Labeled_Span_Id := 0;
+ 
+    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.
+ 
+       Next : Labeled_Span_Id := No_Labeled_Span;
+ 
+    end record;
+ 
+    No_Labeled_Span_Object : Labeled_Span_Type := (others => <>);
+ 
+    package Locations is new Table.Table (
+      Table_Component_Type => Labeled_Span_Type,
+      Table_Index_Type     => Labeled_Span_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Location");
+ 
+    type Edit_Id is new Int;
+    No_Edit : constant Edit_Id := 0;
+ 
+    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
+ 
+       Next : Edit_Id := No_Edit;
+    end record;
+ 
+    package Edits is new Table.Table (
+      Table_Component_Type => Edit_Type,
+      Table_Index_Type     => Edit_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Edit");
+ 
+    type Fix_Id is new Int;
+    No_Fix : constant Fix_Id := 0;
+ 
+    type Fix_Type is record
+       Description : String_Ptr := null;
+       --  Message describing the fix that will be displayed to the user.
+ 
+       Edits : Edit_Id := No_Edit;
+       --   File changes for the fix.
+ 
+       Next : Fix_Id := No_Fix;
+    end record;
+ 
+    package Fixes is new Table.Table (
+      Table_Component_Type => Fix_Type,
+      Table_Index_Type     => Fix_Id,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 200,
+      Table_Increment      => 200,
+      Table_Name           => "Fix");
+ 
+    type Warning_As_Error_Kind is
+      (None, From_Pragma, From_Warn_As_Err, From_Run_Time_As_Err);
+    --  The reason for a warning to be converted as an error:
+    --  * None - Regular warning. Default value for non-warning messages.
+    --  * From_Pragma - Warning converted to an error due to a pragma
+    --    Warning_As_Error.
+    --  * From_Warn_As_Err - Warning converted to an error because the
+    --    Warning_Mode was set to Treat_As_Errors by -gnatwe.
+    --  * From_Run_Time_As_Err - Warning converted to an error because the
+    --    Warning_Mode was set to Treat_Run_Time_Warnings_As_Errors by -gnatwE.
+ 
     type Error_Msg_Object is record
        Text : String_Ptr;
        --  Text of error message, fully expanded with all insertions
*************** package Erroutc is
*** 224,232 ****
        --  True if the message originates from a Compile_Time_Warning or
        --  Compile_Time_Error pragma
  
!       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_Chr : String (1 .. 2);
        --  See Warning_Msg_Char
--- 317,327 ----
        --  True if the message originates from a Compile_Time_Warning or
        --  Compile_Time_Error pragma
  
!       Warn_Err : Warning_As_Error_Kind;
!       --  By default this is None. If the warning was converted by some reason
!       --  to an error then it has a different value. Depending on the value
!       --  the warning will be printed in a different way due to historical
!       --  reasons.
  
        Warn_Chr : String (1 .. 2);
        --  See Warning_Msg_Char
*************** package Erroutc is
*** 248,253 ****
--- 343,369 ----
        --  in the circuit for deleting duplicate/redundant error messages.
  
        Kind : Error_Msg_Type;
+       --  The kind of the error message. This determines how the message
+       --  should be handled and what kind of prefix should be added before the
+       --  message text.
+ 
+       Switch : Switch_Id := No_Switch_Id;
+       --  Identifier for a given switch that enabled the diagnostic
+ 
+       Id : Diagnostic_Id := No_Diagnostic_Id;
+       --  Unique error code for the given message
+ 
+       Locations : Labeled_Span_Id := No_Labeled_Span;
+       --  Identifier to the first location identified by the error message.
+       --  These locations are marked with an underlying span line and
+       --  optionally given a short label.
+ 
+       Fixes : Fix_Id := No_Fix;
+       --  Identifier to the first fix object for the error message. The fix
+       --  contains a suggestion to prevent the error from being triggered.
+       --  This includes edits that can be made to the source code. An edit
+       --  contians a region of the code that needs to be changed and the new
+       --  text that should be inserted to that region.
     end record;
  
     package Errors is new Table.Table (
*************** package Erroutc is
*** 268,273 ****
--- 384,432 ----
     --  as the physically last entry in the error message table, since messages
     --  are not always inserted in sequence.
  
+    procedure Next_Error_Msg (E : in out Error_Msg_Id);
+    --  Update E to point to the next error message in the list of error
+    --  messages. Skip deleted and continuation messages.
+ 
+    procedure Next_Continuation_Msg (E : in out Error_Msg_Id);
+    --  Update E to point to the next continuation message
+ 
+    function Kind_To_String (E : Error_Msg_Object) return String is
+      (if E.Warn_Err in From_Pragma | From_Run_Time_As_Err then "error"
+       else
+         (case E.Kind is
+            when Error | Non_Serious_Error => "error",
+            when Warning                   => "warning",
+            when Style                     => "style",
+            when Info                      => "info",
+            when Low_Check                 => "low",
+            when Medium_Check              => "medium",
+            when High_Check                => "high"));
+    --  Returns the name of the error message kind. If it is a warning that has
+    --  been turned to an error then it returns "error".
+ 
+    function Get_Doc_Switch (E : Error_Msg_Object) return String;
+    --  Returns the documentation switch for a given Error_Msg_Object.
+    --
+    --  This either the name of the switch encased in brackets. E.g [-gnatwx].
+    --
+    --  If the Warn_Char is "* " is then it will return [restriction warning].
+    --
+    --  Otherwise for messages without a switch it will return
+    --  [enabled by default] .
+ 
+    function Primary_Location (E : Error_Msg_Object) return Labeled_Span_Id;
+    --  Returns the first Primary Labeled_Span associated with the error
+    --  message. Otherwise it returns No_Labeled_Span.
+ 
+    function Get_Switch_Id (E : Error_Msg_Object) return Switch_Id;
+    --  Returns the Switch information identifier for the given error message
+ 
+    function Get_Switch_Id
+      (Kind : Error_Msg_Type; Warn_Chr : String) return Switch_Id;
+    --  Returns the Switch information identifier based on the error kind and
+    --  the warning character.
+ 
     --------------------------
     -- Warning Mode Control --
     --------------------------
*************** package Erroutc is
*** 422,427 ****
--- 581,594 ----
     function SGR_Locus return String is
       (SGR_Seq (Color_Bold));
  
+    function Get_SGR_Code (E_Msg : Error_Msg_Object) return String is
+      (if E_Msg.Warn_Err /= None then SGR_Error
+       else
+         (case E_Msg.Kind is
+            when Warning | Style => SGR_Warning,
+            when Info => SGR_Note,
+            when others => SGR_Error));
+ 
     -----------------
     -- Subprograms --
     -----------------
*************** package Erroutc is
*** 443,450 ****
     --  buffer, and preceded by a space.
  
     function Compilation_Errors return Boolean;
!    --  Returns true if errors have been detected, or warnings in -gnatwe
!    --  (treat warnings as errors) mode.
  
     procedure dmsg (Id : Error_Msg_Id);
     --  Debugging routine to dump an error message
--- 610,617 ----
     --  buffer, and preceded by a space.
  
     function Compilation_Errors return Boolean;
!    --  Returns true if errors have been detected, or warnings that are treated
!    --  as errors.
  
     procedure dmsg (Id : Error_Msg_Id);
     --  Debugging routine to dump an error message
*************** package Erroutc is
*** 462,477 ****
     --  redundant. If so, the message to be deleted and all its continuations
     --  are marked with the Deleted flag set to True.
  
-    function Count_Compile_Time_Pragma_Warnings return Int;
-    --  Returns the number of warnings in the Errors table that were triggered
-    --  by a Compile_Time_Warning pragma.
- 
     function Get_Warning_Option (Id : Error_Msg_Id) return String;
     --  Returns the warning switch causing this warning message or an empty
     --  string is there is none..
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String;
!    --  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);
--- 629,642 ----
     --  redundant. If so, the message to be deleted and all its continuations
     --  are marked with the Deleted flag set to True.
  
     function Get_Warning_Option (Id : Error_Msg_Id) return String;
+    function Get_Warning_Option (E : Error_Msg_Object) return String;
     --  Returns the warning switch causing this warning message or an empty
     --  string is there is none..
  
     function Get_Warning_Tag (Id : Error_Msg_Id) return String;
!    function Get_Warning_Tag (E : Error_Msg_Object) return String;
!    --  Given an error message, 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);
*************** package Erroutc is
*** 513,519 ****
     --  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.
  
--- 678,684 ----
     --  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; Line_Length : Nat);
     --  Output the text in Txt, splitting it into lines of at most the size of
     --  Line_Length.
  
*************** package Erroutc is
*** 549,554 ****
--- 714,731 ----
     --  Note that the call has no effect for continuation messages (those whose
     --  first character is '\') except for the Has_Insertion_Line setting.
  
+    --  Definitions for valid message kind prefixes within error messages.
+ 
+    Info_Prefix   : constant String := "info: ";
+    Low_Prefix    : constant String := "low: ";
+    Medium_Prefix : constant String := "medium: ";
+    High_Prefix   : constant String := "high: ";
+    Style_Prefix  : constant String := "(style) ";
+ 
+    Warn_As_Err_Tag : constant String := "[warning-as-error]";
+    --  Tag used at the end of warning messages that were converted by
+    --  pragma Warning_As_Error.
+ 
     procedure Purge_Messages (From : Source_Ptr; To : Source_Ptr);
     --  All error messages whose location is in the range From .. To (not
     --  including the end points) will be deleted from the error listing.
*************** package Erroutc is
*** 705,710 ****
--- 882,891 ----
     --  given by Warning_As_Error pragmas, as stored in the Warnings_As_Errors
     --  table.
  
+    function Warning_Treated_As_Error (E : Error_Msg_Object) return Boolean;
+    --  Returns true if a Warning_As_Error pragma matches either the error text
+    --  or the warning tag of the message.
+ 
     procedure Write_Error_Summary;
     --  Write error summary
  
diff -Nrcpad gcc-15.2.0/gcc/ada/errutil.adb gcc-16.1.0-RC-20260423/gcc/ada/errutil.adb
*** gcc-15.2.0/gcc/ada/errutil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/errutil.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,30 ****
--- 25,31 ----
  
  with Atree;    use Atree;
  with Err_Vars; use Err_Vars;
+ with Errid;    use Errid;
  with Erroutc;  use Erroutc;
  with Namet;    use Namet;
  with Opt;      use Opt;
*************** package body Errutil is
*** 206,217 ****
              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;
--- 207,224 ----
              Line                => Get_Physical_Line_Number (Sptr),
              Col                 => Get_Column_Number (Sptr),
              Compile_Time_Pragma => Is_Compile_Time_Msg,
!             Warn_Err            => (if Warning_Mode = Treat_As_Error
!                                     then From_Warn_As_Err
!                                     else None),
              Warn_Chr            => Warning_Msg_Char,
              Uncond              => Is_Unconditional_Msg,
              Msg_Cont            => Continuation,
              Deleted             => False,
!             Kind                => Error_Msg_Kind,
!             Id                  => No_Diagnostic_Id,
!             Switch              => No_Switch_Id,
!             Locations           => No_Labeled_Span,
!             Fixes               => No_Fix));
  
        Cur_Msg := Errors.Last;
        Prev_Msg := No_Error_Msg;
diff -Nrcpad gcc-15.2.0/gcc/ada/errutil.ads gcc-16.1.0-RC-20260423/gcc/ada/errutil.ads
*** gcc-15.2.0/gcc/ada/errutil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/errutil.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/eval_fat.adb gcc-16.1.0-RC-20260423/gcc/ada/eval_fat.adb
*** gcc-15.2.0/gcc/ada/eval_fat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/eval_fat.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,29 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
  with Opt;            use Opt;
--- 23,28 ----
*************** package body Eval_Fat is
*** 146,153 ****
        if UR_Is_Negative (X) then
           Fraction := -Fraction;
        end if;
- 
-       return;
     end Decompose;
  
     -------------------
--- 145,150 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/eval_fat.ads gcc-16.1.0-RC-20260423/gcc/ada/eval_fat.ads
*** gcc-15.2.0/gcc/ada/eval_fat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/eval_fat.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exit.c gcc-16.1.0-RC-20260423/gcc/ada/exit.c
*** gcc-15.2.0/gcc/ada/exit.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exit.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_aggr.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_aggr.adb
*** gcc-15.2.0/gcc/ada/exp_aggr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_aggr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,38 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
- with Expander;       use Expander;
  with Exp_Util;       use Exp_Util;
  with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch6;        use Exp_Ch6;
--- 27,36 ----
*************** with Sem_Res;        use Sem_Res;
*** 65,71 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
                       use Sem_Util.Storage_Model_Support;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 63,68 ----
*************** package body Exp_Aggr is
*** 865,871 ****
  
              --  Checks 8: (no delayed components)
  
!             if Is_Delayed_Aggregate (Expr) then
                 return False;
              end if;
  
--- 862,870 ----
  
              --  Checks 8: (no delayed components)
  
!             if Is_Delayed_Aggregate (Expr)
!               or else Is_Delayed_Conditional_Expression (Expr)
!             then
                 return False;
              end if;
  
*************** package body Exp_Aggr is
*** 1405,1410 ****
--- 1404,1429 ----
                             N_Iterated_Component_Association
                 then
                    null;
+ 
+                --  For mutably tagged class-wide type components that have an
+                --  initializing qualified expression, the expression must be
+                --  analyzed and resolved using the type of the qualified
+                --  expression; otherwise spurious errors would be reported
+                --  because components defined in derivations of the root type
+                --  of the mutably tagged class-wide type would not be visible.
+ 
+                --  Resolve_Aggr_Expr has previously checked that the type of
+                --  the qualified expression is a descendant of the root type
+                --  of the mutably class-wide tagged type.
+ 
+                elsif Is_Mutably_Tagged_Type (Comp_Typ)
+                  and then Nkind (Expr) = N_Qualified_Expression
+                then
+                   --  Avoid class-wide expected type for aggregate
+                   --  (which would be rejected as illegal)
+                   --  if the aggregate is explicitly qualified.
+ 
+                   Analyze_And_Resolve (Expr_Q, Etype (Expr));
                 else
                    Analyze_And_Resolve (Expr_Q, Comp_Typ);
                 end if;
*************** package body Exp_Aggr is
*** 1457,1470 ****
           --  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;
  
--- 1476,1496 ----
           --  object creation that will invoke it otherwise.
  
           else
!             --  For mutably tagged class-wide types, default initialization is
!             --  performed by the init procedure of their specific type.
! 
!             if Is_Mutably_Tagged_Type (Comp_Typ) then
!                Comp_Typ := Find_Specific_Type (Comp_Typ);
!             end if;
! 
!             if Present (Base_Init_Proc (Comp_Typ)) 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               => Comp_Typ,
                        With_Default_Init => True));
                 end if;
  
*************** package body Exp_Aggr is
*** 1473,1489 ****
                 --  be analyzed and resolved before the code for initialization
                 --  of other components.
  
!                if Has_Invariants (Ctype) then
!                   Set_Etype (Indexed_Comp, Ctype);
                    Append_To (Stmts, Make_Invariant_Call (Indexed_Comp));
                 end if;
              end if;
  
!             if Needs_Finalization (Ctype) then
                 Init_Call :=
                   Make_Init_Call
                     (Obj_Ref => New_Copy_Tree (Indexed_Comp),
!                     Typ     => Ctype);
  
                 --  Guard against a missing [Deep_]Initialize when the component
                 --  type was not properly frozen.
--- 1499,1515 ----
                 --  be analyzed and resolved before the code for initialization
                 --  of other components.
  
!                if Has_Invariants (Comp_Typ) then
!                   Set_Etype (Indexed_Comp, Comp_Typ);
                    Append_To (Stmts, Make_Invariant_Call (Indexed_Comp));
                 end if;
              end if;
  
!             if Needs_Finalization (Comp_Typ) then
                 Init_Call :=
                   Make_Init_Call
                     (Obj_Ref => New_Copy_Tree (Indexed_Comp),
!                     Typ     => Comp_Typ);
  
                 --  Guard against a missing [Deep_]Initialize when the component
                 --  type was not properly frozen.
*************** package body Exp_Aggr is
*** 1504,1512 ****
              --  is not empty, but a default init still applies, such as for
              --  Default_Value cases, in which case we won't get here. ???
  
!             if Has_DIC (Ctype) and then Present (DIC_Procedure (Ctype)) then
                 Append_To (Stmts,
!                  Build_DIC_Call (Loc, New_Copy_Tree (Indexed_Comp), Ctype));
              end if;
           end if;
  
--- 1530,1542 ----
              --  is not empty, but a default init still applies, such as for
              --  Default_Value cases, in which case we won't get here. ???
  
!             if Has_DIC (Comp_Typ)
!               and then Present (DIC_Procedure (Comp_Typ))
!             then
                 Append_To (Stmts,
!                  Build_DIC_Call (Loc,
!                    Obj_Name => New_Copy_Tree (Indexed_Comp),
!                    Typ      => Comp_Typ));
              end if;
           end if;
  
*************** package body Exp_Aggr is
*** 1518,1523 ****
--- 1548,1555 ----
        --------------
  
        function Gen_Loop (L, H : Node_Id; Expr : Node_Id) return List_Id is
+          Comp_Typ : Entity_Id;
+ 
           Is_Iterated_Component : constant Boolean :=
             Parent_Kind (Expr) = N_Iterated_Component_Association;
  
*************** package body Exp_Aggr is
*** 1569,1581 ****
                   and then Is_Array_Type (Etype (N))
                   and then No (Next_Index (Index))
                 then
-                   Expander_Mode_Save_And_Set (False);
                    Tcopy := New_Copy_Tree (Expr);
                    Set_Parent (Tcopy, N);
  
!                   --  For iterated_component_association analyze and resolve
!                   --  the expression with name of the index parameter visible.
!                   --  To manipulate scopes, we use entity of the implicit loop.
  
                    if Is_Iterated_Component then
                       declare
--- 1601,1619 ----
                   and then Is_Array_Type (Etype (N))
                   and then No (Next_Index (Index))
                 then
                    Tcopy := New_Copy_Tree (Expr);
                    Set_Parent (Tcopy, N);
  
!                   Comp_Typ := Component_Type (Etype (N));
! 
!                   if Is_Class_Wide_Equivalent_Type (Comp_Typ) then
!                      Comp_Typ := Corresponding_Mutably_Tagged_Type (Comp_Typ);
!                   end if;
! 
!                   --  For iterated_component_association (pre)analyze and
!                   --  resolve the expression with name of the index parameter
!                   --  visible. To manipulate scopes, we use entity of the
!                   --  implicit loop.
  
                    if Is_Iterated_Component then
                       declare
*************** package body Exp_Aggr is
*** 1584,1602 ****
                       begin
                          Push_Scope (Scope (Index_Parameter));
                          Enter_Name (Index_Parameter);
!                         Analyze_And_Resolve
!                           (Tcopy, Component_Type (Etype (N)));
                          End_Scope;
                       end;
  
!                   --  For ordinary component association, just analyze and
                    --  resolve the expression.
  
                    else
!                      Analyze_And_Resolve (Tcopy, Component_Type (Etype (N)));
                    end if;
- 
-                   Expander_Mode_Restore;
                 end if;
              end if;
  
--- 1622,1637 ----
                       begin
                          Push_Scope (Scope (Index_Parameter));
                          Enter_Name (Index_Parameter);
!                         Preanalyze_And_Resolve (Tcopy, Comp_Typ);
                          End_Scope;
                       end;
  
!                   --  For ordinary component association, just (pre)analyze and
                    --  resolve the expression.
  
                    else
!                      Preanalyze_And_Resolve (Tcopy, Comp_Typ);
                    end if;
                 end if;
              end if;
  
*************** package body Exp_Aggr is
*** 1991,1996 ****
--- 2026,2041 ----
           end;
        end if;
  
+       --  Set Referenced_As_LHS if appropriate. We are neither interested
+       --  in compiler-generated aggregates, nor in references outside the
+       --  extended main source unit.
+ 
+       if Comes_From_Source (N)
+         and then In_Extended_Main_Source_Unit (Into)
+       then
+          Set_Referenced_Modified (Into, Out_Param => False);
+       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
*** 2130,2135 ****
--- 2175,2181 ----
                          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
*** 3276,3329 ****
           --  a call to the corresponding IP subprogram if available.
  
           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;
  
!             --  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);
!                Inside_Allocator : Boolean            := False;
!                P                : Node_Id            := Parent (N);
  
              begin
!                if Is_Task_Type (Ctype) or else Has_Task (Ctype) then
!                   while Present (P) loop
!                      if Nkind (P) = N_Allocator then
!                         Inside_Allocator := True;
!                         exit;
                       end if;
  
!                      P := Parent (P);
!                   end loop;
  
!                   if not Inside_Init_Proc and not Inside_Allocator then
!                      Build_Activation_Chain_Entity (N);
                    end if;
                 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
  
           elsif Ekind (Selector) /= E_Discriminant
--- 3322,3406 ----
           --  a call to the corresponding IP subprogram if available.
  
           elsif Box_Present (Comp)
!            and then
!              (Has_Non_Null_Base_Init_Proc (Etype (Selector))
  
!                --  Default initialization of mutably tagged class-wide type
!                --  components is performed by the IP subprogram.
  
+                or else Is_Class_Wide_Equivalent_Type (Etype (Selector)))
+          then
              declare
!                Ctype : Entity_Id := Etype (Selector);
  
              begin
!                if Is_Class_Wide_Equivalent_Type (Ctype) then
!                   Ctype :=
!                     Root_Type (Corresponding_Mutably_Tagged_Type (Ctype));
!                end if;
! 
!                Check_Restriction (No_Default_Initialization, N);
! 
!                if Ekind (Selector) /= E_Discriminant then
!                   Generate_Finalization_Actions;
!                end if;
! 
!                --  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
!                   Inside_Allocator : Boolean := False;
!                   P                : Node_Id := Parent (N);
! 
!                begin
!                   if Is_Task_Type (Ctype) or else Has_Task (Ctype) then
!                      while Present (P) loop
!                         if Nkind (P) = N_Allocator then
!                            Inside_Allocator := True;
!                            exit;
!                         end if;
! 
!                         P := Parent (P);
!                      end loop;
! 
!                      if not Inside_Init_Proc and not Inside_Allocator then
!                         Build_Activation_Chain_Entity (N);
                       end if;
+                   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               => Ctype,
!                       Enclos_Type       => Typ,
!                       With_Default_Init => True));
  
!                   if Is_Class_Wide_Equivalent_Type (Etype (Selector))
!                     and then Is_Abstract_Type (Ctype)
!                   then
!                      Error_Msg_Name_1 := Chars (Selector);
!                      Error_Msg_N
!                        ("default initialization of abstract type "
!                          & "component % not allowed??", Comp);
!                      Error_Msg_N
!                        ("\Program_Error will be raised at run time??", Comp);
! 
!                      Append_To (L,
!                         Make_Raise_Program_Error (Loc,
!                           Reason => PE_Abstract_Type_Component));
                    end if;
                 end if;
              end;
  
           --  Prepare for component assignment
  
           elsif Ekind (Selector) /= E_Discriminant
*************** package body Exp_Aggr is
*** 3480,3491 ****
                    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 ???
--- 3557,3583 ----
                    end if;
                 end if;
  
!                --  For mutably tagged class-wide components with a qualified
!                --  initializing expressions use the qualified expression as
!                --  its Init_Expr; required to avoid reporting spurious errors.
! 
!                if Is_Class_Wide_Equivalent_Type (Comp_Type)
!                  and then Nkind (Expression (Comp)) = N_Qualified_Expression
!                then
!                   Initialize_Component
!                     (N         => N,
!                      Comp      => Comp_Expr,
!                      Comp_Typ  => Etype (Selector),
!                      Init_Expr => Expression (Comp),
!                      Stmts     => L);
!                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 ???
*************** package body Exp_Aggr is
*** 3631,3650 ****
     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;
  
--- 3723,3735 ----
     begin
        if Has_Default_Init_Comps (Aggr) then
           declare
!             Stmts : constant List_Id := Late_Expansion (Aggr, Typ, Occ);
  
           begin
              if Has_Task (Typ) then
!                Insert_Actions (N, Build_Task_Allocate_Block (Aggr, Stmts));
              else
!                Insert_Actions (N, Stmts);
              end if;
           end;
  
*************** package body Exp_Aggr is
*** 3874,3881 ****
  
        function Safe_Component (Expr : Node_Id) return Boolean;
        --  Verify that an expression cannot depend on the target being assigned
!       --  to. Return true for compile-time known values, stand-alone objects,
!       --  parameters passed by copy, calls to functions that return by copy,
        --  selected components thereof only if the aggregate's type is an array,
        --  indexed components and slices thereof only if the aggregate's type is
        --  a record, and simple expressions involving only these as operands.
--- 3959,3966 ----
  
        function Safe_Component (Expr : Node_Id) return Boolean;
        --  Verify that an expression cannot depend on the target being assigned
!       --  (which is Target_Object if it is set), return true for compile-time
!       --  known values, stand-alone objects, formal parameters passed by copy,
        --  selected components thereof only if the aggregate's type is an array,
        --  indexed components and slices thereof only if the aggregate's type is
        --  a record, and simple expressions involving only these as operands.
*************** package body Exp_Aggr is
*** 3886,3892 ****
        --  which is excluded by the above condition. Additionally, if the target
        --  is statically known, return true for arbitrarily nested selections,
        --  indexations or slicings, provided that their ultimate prefix is not
!       --  the target itself.
  
        --------------------
        -- Safe_Aggregate --
--- 3971,3978 ----
        --  which is excluded by the above condition. Additionally, if the target
        --  is statically known, return true for arbitrarily nested selections,
        --  indexations or slicings, provided that their ultimate prefix is not
!       --  the target itself, and calls to functions that take only these as
!       --  actual parameters provided that the target is not aliased.
  
        --------------------
        -- Safe_Aggregate --
*************** package body Exp_Aggr is
*** 3991,4002 ****
                    return Check_Component (Prefix (C), T_OK);
  
                 when N_Function_Call =>
!                   if Nkind (Name (C)) = N_Explicit_Dereference then
!                      return not Returns_By_Ref (Etype (Name (C)));
!                   else
!                      return not Returns_By_Ref (Entity (Name (C)));
                    end if;
  
                 when N_Indexed_Component | N_Slice =>
                    --  In a target record, these operations cannot determine
                    --  alone a component so we can recurse whatever the target.
--- 4077,4102 ----
                    return Check_Component (Prefix (C), T_OK);
  
                 when N_Function_Call =>
!                   if No (Target_Object) or else Is_Aliased (Target_Object) then
!                      return False;
!                   end if;
! 
!                   if Present (Parameter_Associations (C)) then
!                      declare
!                         Actual : Node_Id;
!                      begin
!                         Actual := First_Actual (C);
!                         while Present (Actual) loop
!                            if not Check_Component (Actual, T_OK) then
!                               return False;
!                            end if;
!                            Next_Actual (Actual);
!                         end loop;
!                      end;
                    end if;
  
+                   return True;
+ 
                 when N_Indexed_Component | N_Slice =>
                    --  In a target record, these operations cannot determine
                    --  alone a component so we can recurse whatever the target.
*************** package body Exp_Aggr is
*** 4181,4198 ****
        --  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)
  
--- 4281,4294 ----
        --  Set the Expansion_Delayed flag in the cases where the transformation
        --  will be done top down from above.
  
!       Parent_Node := Unqualified_Unconditional_Parent (N);
  
        if
           --  Internal aggregates (transformed when expanding the parent),
           --  excluding container aggregates as these are transformed into
           --  subprogram calls later.
  
!          Parent_Is_Regular_Aggregate (Parent_Node)
  
           --  Allocator (see Convert_Aggr_In_Allocator)
  
*************** package body Exp_Aggr is
*** 4251,4256 ****
--- 4347,4353 ----
          and then Is_Limited_Type (Typ)
        then
           Target_Expr := New_Copy_Tree (Name (Parent_Node));
+          Ensure_Defined (Typ, Parent_Node);
           Insert_Actions (Parent_Node,
             Build_Record_Aggr_Code (N, Typ, Target_Expr));
           Rewrite (Parent_Node, Make_Null_Statement (Loc));
*************** package body Exp_Aggr is
*** 4276,4281 ****
--- 4373,4379 ----
  
              if Nkind (N) in N_Aggregate | N_Extension_Aggregate then
                 Target_Expr := New_Copy_Tree (Lhs);
+                Ensure_Defined (Typ, Parent_Node);
                 Insert_Actions (Parent_Node,
                   Build_Record_Aggr_Code (N, Typ, Target_Expr));
                 Rewrite (Parent_Node, Make_Null_Statement (Loc));
*************** package body Exp_Aggr is
*** 4336,4341 ****
--- 4434,4440 ----
        Typ                  : constant Entity_Id := Etype (N);
        Dims                 : constant Nat := Number_Dimensions (Typ);
        Max_Others_Replicate : constant Nat := Max_Aggregate_Size (N);
+       Ctyp                 : constant Entity_Id := Component_Type (Typ);
  
        Static_Components : Boolean   := True;
  
*************** package body Exp_Aggr is
*** 4812,4818 ****
        --  components because in this case will need to call the corresponding
        --  IP procedure.
  
!       if Has_Default_Init_Comps (N) then
           return;
        end if;
  
--- 4911,4922 ----
        --  components because in this case will need to call the corresponding
        --  IP procedure.
  
!       if Has_Default_Init_Comps (N)
!         or else Needs_Construction (Ctyp)
!         or else (Is_Access_Type (Ctyp)
!                   and then Needs_Construction
!                              (Directly_Designated_Type (Ctyp)))
!       then
           return;
        end if;
  
*************** package body Exp_Aggr is
*** 5674,5680 ****
                     Left_Opnd  => Duplicate_Subexpr_Move_Checks (Aggr_Lo),
                     Right_Opnd => Duplicate_Subexpr_Move_Checks (Aggr_Hi));
  
!             elsif Is_Signed_Integer_Type (Ind_Typ) then
                 Cond :=
                   Make_Op_Gt (Loc,
                     Left_Opnd  =>
--- 5778,5784 ----
                     Left_Opnd  => Duplicate_Subexpr_Move_Checks (Aggr_Lo),
                     Right_Opnd => Duplicate_Subexpr_Move_Checks (Aggr_Hi));
  
!             elsif Has_Overflow_Operations (Ind_Typ) then
                 Cond :=
                   Make_Op_Gt (Loc,
                     Left_Opnd  =>
*************** package body Exp_Aggr is
*** 6147,6165 ****
        --  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.
--- 6251,6264 ----
        --  Set the Expansion_Delayed flag in the cases where the transformation
        --  will be done top down from above.
  
!       Parent_Node := Unqualified_Unconditional_Parent (N);
  
        if
           --  Internal aggregates (transformed when expanding the parent),
           --  excluding container aggregates as these are transformed into
!          --  subprogram calls later.
  
!          Parent_Is_Regular_Aggregate (Parent_Node)
  
           --  Allocator (see Convert_Aggr_In_Allocator). Sliding cannot be done
           --  in place for the time being.
*************** package body Exp_Aggr is
*** 6299,6319 ****
               Object_Definition   => New_Occurrence_Of (Typ, Loc));
           Set_No_Initialization (Tmp_Decl, True);
  
-          --  If we are within a loop, the temporary will be pushed on the
-          --  stack at each iteration. If the aggregate is the expression
-          --  for an allocator, it will be immediately copied to the heap
-          --  and can be reclaimed at once. We create a transient scope
-          --  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);
--- 6398,6407 ----
               Object_Definition   => New_Occurrence_Of (Typ, Loc));
           Set_No_Initialization (Tmp_Decl, True);
  
           --  If the parent is an assignment for which no controlled actions
           --  should take place, prevent the temporary from being finalized.
  
!          if Nkind (Parent_Node) = N_Assignment_Statement
             and then No_Ctrl_Actions (Parent_Node)
           then
              Mutate_Ekind (Tmp, E_Variable);
*************** package body Exp_Aggr is
*** 6503,6509 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Aggregate;
  
     -------------------------------
--- 6591,6597 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Aggregate;
  
     -------------------------------
*************** package body Exp_Aggr is
*** 6632,6637 ****
--- 6720,6726 ----
        function Build_Size_Expr (Comp : Node_Id) return Node_Id is
           Lo, Hi       : Node_Id;
           It           : Node_Id;
+          It_Subt      : Entity_Id;
           Siz_Exp      : Node_Id := Empty;
           Choice       : Node_Id;
           Temp_Siz_Exp : Node_Id;
*************** package body Exp_Aggr is
*** 6706,6725 ****
           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
--- 6795,6816 ----
           elsif Nkind (Comp) = N_Iterated_Component_Association then
              if Present (Iterator_Specification (Comp)) then
  
!                --  If the size of the iterable object can be determined,
                 --  attempt to return it.
  
                 It := Name (Iterator_Specification (Comp));
                 Preanalyze (It);
  
!                It_Subt := Etype (It);
! 
!                --  Handle the simplest cases for now, where It denotes an array
!                --  object or a container object.
  
                 if Nkind (It) in N_Identifier
!                  and then Ekind (It_Subt) = E_Array_Subtype
                 then
                    declare
!                      Idx_N : Node_Id := First_Index (It_Subt);
                       Siz_Exp : Node_Id := Empty;
                    begin
                       while Present (Idx_N) loop
*************** package body Exp_Aggr is
*** 6753,6758 ****
--- 6844,6939 ----
  
                       return Siz_Exp;
                    end;
+ 
+                --  Case of iterating over a container object. Note that this
+                --  must be a simple object, and not something like a function
+                --  call (which might have side effects, and we wouldn't want
+                --  it to be evaluated more than once). We take advantage of
+                --  RM22 4.3.5(40/5), which allows implementation-defined
+                --  behavior for the parameter passed to the Empty function,
+                --  and here use the container Length function when available.
+                --  Class-wide objects are also excluded, since those would
+                --  lead to dispatching, which could call a user-defined
+                --  overriding of Length that might have arbitrary effects.
+ 
+                elsif Is_Entity_Name (It)
+                  and then Is_Object (Entity (It))
+                  and then Ekind (It_Subt) in Record_Kind
+                  and then not Is_Class_Wide_Type (It_Subt)
+                then
+                   declare
+                      Aggr_Base    : constant Entity_Id := Base_Type (Typ);
+                      It_Base      : constant Entity_Id := Base_Type (It_Subt);
+                      Empty_Formal : constant Entity_Id :=
+                                       First_Formal (Entity (Empty_Subp));
+                      Length_Subp  : Entity_Id;
+                      Param_List   : List_Id;
+ 
+                   begin
+                      --  We only determine a nondefault capacity in the case
+                      --  of containers of predefined container types, which
+                      --  generally have a Length function. User-defined
+                      --  containers don't necessarily have such a function,
+                      --  or it may be named differently, or it may have
+                      --  the wrong semantics. The base subtypes are tested,
+                      --  since their Sloc will refer to the original container
+                      --  generics in the predefined library, even though the
+                      --  types are declared in a package instantiation in some
+                      --  other unit. Also, this is only done when Empty_Subp
+                      --  has a formal parameter (generally named Capacity),
+                      --  and not in the case of a parameterless Empty function.
+                      --  Finally, we test for the container aggregate's type
+                      --  having a first discriminant with the name Capacity,
+                      --  since determining capacity via Length is only sensible
+                      --  for container types with that discriminant (bounded
+                      --  containers).
+ 
+                      if Present (Empty_Formal)
+                        and then In_Predefined_Unit (It_Base)
+                        and then In_Predefined_Unit (Aggr_Base)
+                        and then Has_Discriminants (Aggr_Base)
+                        and then
+                          Get_Name_String
+                            (Chars (First_Discriminant (Aggr_Base)))
+                            = "capacity"
+                      then
+                         --  Look for the container type's Length function in
+                         --  the package where it's defined.
+ 
+                         Push_Scope (Scope (It_Base));
+ 
+                         Length_Subp := Current_Entity_In_Scope (Name_Length);
+ 
+                         Pop_Scope;
+ 
+                         --  If we found a Length function that has a single
+                         --  parameter of the iterator object's container type,
+                         --  then expand a call to that, passing the object,
+                         --  and return that call, which will be used as the
+                         --  "size" of the current element association of the
+                         --  bounded container aggregate.
+ 
+                         if Present (Length_Subp)
+                           and then Ekind (Length_Subp) = E_Function
+                           and then
+                             Present (First_Entity (Length_Subp))
+                           and then
+                             No (Next_Entity (First_Entity (Length_Subp)))
+                           and then
+                             Base_Type
+                               (Etype (First_Entity (Length_Subp))) = It_Base
+                         then
+                            Param_List :=
+                              New_List (New_Occurrence_Of (Entity (It), Loc));
+ 
+                            return
+                              Make_Function_Call (Loc,
+                                Name =>
+                                  New_Occurrence_Of (Length_Subp, Loc),
+                                Parameter_Associations => Param_List);
+                         end if;
+                      end if;
+                   end;
                 end if;
  
                 return Empty;
*************** package body Exp_Aggr is
*** 6789,6795 ****
                 --  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);
--- 6970,6978 ----
                 --  Choice is a single discrete value
  
                 elsif Is_Discrete_Type (Etype (Choice)) then
!                   if Is_Static_Expression (Choice) then
!                      Update_Choices (Choice, Choice);
!                   end if;
  
                    Temp_Siz_Exp := Make_Integer_Literal (Loc, 1);
                    Set_Is_Static_Expression (Temp_Siz_Exp);
*************** package body Exp_Aggr is
*** 6844,6884 ****
        -------------------------------
  
        procedure Expand_Iterated_Component (Comp : Node_Id) is
!          Expr : constant Node_Id := Expression (Comp);
  
!          Key_Expr           : Node_Id := Empty;
!          Loop_Id            : Entity_Id;
!          L_Range            : Node_Id;
!          L_Iteration_Scheme : Node_Id;
!          Loop_Stat          : Node_Id;
!          Params             : List_Id;
!          Stats              : List_Id;
  
!       begin
!          if Nkind (Comp) = N_Iterated_Element_Association then
!             Key_Expr := Key_Expression (Comp);
  
!             --  We create a new entity as loop identifier in all cases,
!             --  as is done for generated loops elsewhere, as the loop
!             --  structure has been previously analyzed.
  
!             if Present (Iterator_Specification (Comp)) then
  
!                --  Either an Iterator_Specification or a Loop_Parameter_
!                --  Specification is present.
  
!                L_Iteration_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Iterator_Specification => Iterator_Specification (Comp));
                 Loop_Id :=
!                   Make_Defining_Identifier (Loc,
!                     Chars => Chars (Defining_Identifier
!                                (Iterator_Specification (Comp))));
!                Set_Defining_Identifier
!                   (Iterator_Specification (L_Iteration_Scheme), Loop_Id);
  
              else
!                L_Iteration_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Loop_Parameter_Specification =>
                       Loop_Parameter_Specification (Comp));
--- 7027,7106 ----
        -------------------------------
  
        procedure Expand_Iterated_Component (Comp : Node_Id) is
!          Key_Expr         : Node_Id;
!          Loop_Id          : Entity_Id;
!          Loop_Iter_Scheme : Node_Id;
!          Loop_Stat        : Node_Id;
!          Stats            : List_Id;
  
!          procedure Replace_Iteration_Variable (N : Node_Id; Var : Entity_Id);
!          --  Replace the iteration variable of N, a N_Iterator_Specification or
!          --  a N_Loop_Parameter_Specification node, with Var.
  
!          --------------------------------
!          -- Replace_Iteration_Variable --
!          --------------------------------
  
!          procedure Replace_Iteration_Variable (N : Node_Id; Var : Entity_Id) is
!             Old_Var : constant Entity_Id := Defining_Identifier (N);
  
!             Map : Elist_Id;
  
!          begin
!             --  We need to replace the variable in preanalyzed expressions
  
!             if Present (Old_Var) then
!                Map := New_Elmt_List (Old_Var, Var);
! 
!                --  Key_Expression has been preanalyzed when it is present, see
!                --  Resolve_Iterated_Association.
! 
!                if Nkind (Comp) = N_Iterated_Element_Association
!                  and then Present (Key_Expression (Comp))
!                then
!                   Set_Key_Expression (Comp,
!                     New_Copy_Tree (Key_Expression (Comp), Map => Map));
!                end if;
! 
!                --  Iterator_Filter has been preanalyzed when it is present, see
!                --  Analyze_{Iterator,Loop_Parameter}_Specification.
! 
!                if Present (Iterator_Filter (N)) then
!                   Set_Iterator_Filter (N,
!                     New_Copy_Tree (Iterator_Filter (N), Map => Map));
!                end if;
! 
!                Set_Expression (Comp,
!                  New_Copy_Tree (Expression (Comp), Map => Map));
!             end if;
! 
!             Set_Defining_Identifier (N, Var);
!          end Replace_Iteration_Variable;
! 
!       --  Start of processing for Expand_Iterated_Component
! 
!       begin
!          --  We create a new entity as loop identifier in all cases, as is done
!          --  for generated loops elsewhere, even though the loop structure has
!          --  been previously analyzed.
! 
!          if Nkind (Comp) = N_Iterated_Element_Association then
!             --  Either an Iterator_Specification or a Loop_Parameter_
!             --  Specification is present.
! 
!             if Present (Iterator_Specification (Comp)) then
!                Loop_Iter_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Iterator_Specification => Iterator_Specification (Comp));
                 Loop_Id :=
!                  Make_Defining_Identifier (Loc,
!                    Chars => Chars (Defining_Identifier
!                               (Iterator_Specification (Comp))));
!                Replace_Iteration_Variable
!                  (Iterator_Specification (Loop_Iter_Scheme), Loop_Id);
  
              else
!                Loop_Iter_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Loop_Parameter_Specification =>
                       Loop_Parameter_Specification (Comp));
*************** package body Exp_Aggr is
*** 6886,6971 ****
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier
                                (Loop_Parameter_Specification (Comp))));
!                Set_Defining_Identifier
!                  (Loop_Parameter_Specification
!                     (L_Iteration_Scheme), Loop_Id);
              end if;
  
!          else
!             --  Iterated_Component_Association.
  
              if Present (Iterator_Specification (Comp)) then
                 Loop_Id :=
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier
                                (Iterator_Specification (Comp))));
!                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.
!                --  where the range is the first (and only) choice.
  
                 Loop_Id :=
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier (Comp)));
!                L_Range := Relocate_Node (First (Discrete_Choices (Comp)));
! 
!                L_Iteration_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     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;
  
           --  Build insertion statement. For a positional aggregate, only the
           --  expression is needed. For a named aggregate, the loop variable,
           --  whose type is that of the key, is an additional parameter for
           --  the insertion operation.
-          --  If a Key_Expression is present, it serves as the additional
-          --  parameter. Otherwise the key is given by the loop parameter
-          --  itself.
- 
-          if Present (Add_Unnamed_Subp)
-            and then No (Add_Named_Subp)
-          then
-             Stats := New_List
-               (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
!               (Make_Procedure_Call_Statement (Loc,
!                  Name => New_Occurrence_Of (Entity (Add_Named_Subp), Loc),
!                  Parameter_Associations => Params));
           end if;
  
           Loop_Stat := Make_Implicit_Loop_Statement
                          (Node             => N,
                           Identifier       => Empty,
!                          Iteration_Scheme => L_Iteration_Scheme,
                           Statements       => Stats);
  
           Append (Loop_Stat, Aggr_Code);
--- 7108,7188 ----
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier
                                (Loop_Parameter_Specification (Comp))));
!                Replace_Iteration_Variable
!                  (Loop_Parameter_Specification (Loop_Iter_Scheme), Loop_Id);
              end if;
  
!             Key_Expr := Key_Expression (Comp);
  
+          else pragma Assert (Nkind (Comp) = N_Iterated_Component_Association);
              if Present (Iterator_Specification (Comp)) then
+                Loop_Iter_Scheme :=
+                  Make_Iteration_Scheme (Loc,
+                    Iterator_Specification => Iterator_Specification (Comp));
                 Loop_Id :=
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier
                                (Iterator_Specification (Comp))));
!                Replace_Iteration_Variable
!                  (Iterator_Specification (Loop_Iter_Scheme), Loop_Id);
  
!             --  Loop_Parameter_Specification is parsed with a choice list
!             --  where the range is the first (and only) choice.
  
+             else
                 Loop_Id :=
                   Make_Defining_Identifier (Loc,
                     Chars => Chars (Defining_Identifier (Comp)));
!                Loop_Iter_Scheme :=
                   Make_Iteration_Scheme (Loc,
                     Loop_Parameter_Specification =>
                       Make_Loop_Parameter_Specification (Loc,
!                        Defining_Identifier => Defining_Identifier (Comp),
                         Reverse_Present => Reverse_Present (Comp),
!                        Discrete_Subtype_Definition =>
!                          Relocate_Node (First (Discrete_Choices (Comp)))));
!                Replace_Iteration_Variable
!                  (Loop_Parameter_Specification (Loop_Iter_Scheme), Loop_Id);
              end if;
+ 
+             Key_Expr := Empty;
           end if;
  
           --  Build insertion statement. For a positional aggregate, only the
           --  expression is needed. For a named aggregate, the loop variable,
           --  whose type is that of the key, is an additional parameter for
           --  the insertion operation.
  
!          if Present (Add_Unnamed_Subp) and then No (Add_Named_Subp) then
!             Stats := New_List (
!               Make_Procedure_Call_Statement (Loc,
!                 Name                   =>
!                   New_Occurrence_Of (Entity (Add_Unnamed_Subp), Loc),
!                 Parameter_Associations => New_List (
!                   New_Copy_Tree (Lhs),
!                   Expression (Comp))));
  
!          --  Named or indexed aggregate. If a Key_Expression is present, it
!          --  serves as the additional parameter. Otherwise the key is given
!          --  by the loop parameter itself.
  
!          else
!             Stats := New_List (
!               Make_Procedure_Call_Statement (Loc,
!                 Name                   =>
!                   New_Occurrence_Of (Entity (Add_Named_Subp), Loc),
!                 Parameter_Associations => New_List (
!                   New_Copy_Tree (Lhs),
!                   (if Present (Key_Expr)
!                    then Key_Expr
!                    else New_Occurrence_Of (Loop_Id, Loc)),
!                   Expression (Comp))));
           end if;
  
           Loop_Stat := Make_Implicit_Loop_Statement
                          (Node             => N,
                           Identifier       => Empty,
!                          Iteration_Scheme => Loop_Iter_Scheme,
                           Statements       => Stats);
  
           Append (Loop_Stat, Aggr_Code);
*************** package body Exp_Aggr is
*** 7013,7025 ****
        -- 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 (Entity (Expr))));
        end To_Int;
  
        --  Local variables
--- 7230,7240 ----
        -- To_Int --
        ------------
  
!       --  The bounds of the discrete range are static discrete values
  
        function To_Int (Expr : N_Subexpr_Id) return Int is
        begin
!          return UI_To_Int (Expr_Value (Expr));
        end To_Int;
  
        --  Local variables
*************** package body Exp_Aggr is
*** 7267,7274 ****
              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;
--- 7482,7489 ----
              begin
                 Comp := First (Component_Associations (N));
                 while Present (Comp) loop
!                   if Nkind (Comp) in N_Iterated_Component_Association
!                                    | N_Iterated_Element_Association
                    then
                       Expand_Iterated_Component (Comp);
                    end if;
*************** package body Exp_Aggr is
*** 7827,7833 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Extension_Aggregate;
  
     -----------------------------
--- 8042,8048 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Extension_Aggregate;
  
     -----------------------------
*************** package body Exp_Aggr is
*** 8705,8710 ****
--- 8920,8927 ----
        --  generated by Make_Tag_Ctrl_Assignment). But, in the case of an array
        --  aggregate, controlled subaggregates are not considered because each
        --  of their individual elements will receive an adjustment of its own.
+       --  Moreover, the result of a function call need not be adjusted if it
+       --  has already been adjusted in the called function.
  
        if Finalization_OK
          and then not Is_Inherently_Limited_Type (Comp_Typ)
*************** package body Exp_Aggr is
*** 8713,8718 ****
--- 8930,8937 ----
              and then Is_Array_Type (Comp_Typ)
              and then Needs_Finalization (Component_Type (Comp_Typ))
              and then Nkind (Unqualify (Init_Expr)) = N_Aggregate)
+         and then not (Back_End_Return_Slot
+                        and then Nkind (Init_Expr) = N_Function_Call)
        then
           Set_No_Finalize_Actions (Init_Stmt);
  
*************** package body Exp_Aggr is
*** 8721,8727 ****
        else
           Set_No_Ctrl_Actions (Init_Stmt);
  
!          if Tagged_Type_Expansion and then Is_Tagged_Type (Comp_Typ) then
              declare
                 Typ : Entity_Id := Underlying_Type (Comp_Typ);
  
--- 8940,8954 ----
        else
           Set_No_Ctrl_Actions (Init_Stmt);
  
!          if Tagged_Type_Expansion
!            and then Is_Tagged_Type (Comp_Typ)
! 
!          --  Cannot adjust the tag when the expected type of the component is
!          --  a mutably tagged (and therefore class-wide) type; each component
!          --  of the aggregate has the tag of its initializing expression.
! 
!            and then not Is_Mutably_Tagged_Type (Comp_Typ)
!          then
              declare
                 Typ : Entity_Id := Underlying_Type (Comp_Typ);
  
*************** package body Exp_Aggr is
*** 9439,9444 ****
--- 9666,9689 ----
        return False;
     end Must_Slide;
  
+    ---------------------------------
+    -- Parent_Is_Regular_Aggregate --
+    ---------------------------------
+ 
+    function Parent_Is_Regular_Aggregate (Par : Node_Id) return Boolean is
+    begin
+       case Nkind (Par) is
+          when N_Component_Association =>
+             return Parent_Is_Regular_Aggregate (Parent (Par));
+ 
+          when N_Extension_Aggregate | N_Aggregate =>
+             return not Is_Container_Aggregate (Par);
+ 
+          when others =>
+             return False;
+       end case;
+    end Parent_Is_Regular_Aggregate;
+ 
     ---------------------
     -- Sort_Case_Table --
     ---------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_aggr.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_aggr.ads
*** gcc-15.2.0/gcc/ada/exp_aggr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_aggr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 59,64 ****
--- 59,68 ----
     --  This is the case if it consists only of iterated component associations
     --  with iterator specifications, see RM 4.3.3(20.2/5).
  
+    function Parent_Is_Regular_Aggregate (Par : Node_Id) return Boolean;
+    --  Return True if Par is an aggregate that is not a container aggregate, or
+    --  a component association of such an aggregate.
+ 
     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
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_atag.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_atag.adb
*** gcc-15.2.0/gcc/ada/exp_atag.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_atag.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Nlists;         use Nlists;
*** 34,40 ****
  with Nmake;          use Nmake;
  with Opt;            use Opt;
  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;
--- 33,38 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_atag.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_atag.ads
*** gcc-15.2.0/gcc/ada/exp_atag.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_atag.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_attr.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_attr.adb
*** gcc-15.2.0/gcc/ada/exp_attr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_attr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,36 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Exp_Atag;       use Exp_Atag;
  with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch6;        use Exp_Ch6;
--- 27,36 ----
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errout;         use Errout;
  with Exp_Atag;       use Exp_Atag;
  with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch6;        use Exp_Ch6;
*************** with Sem_Ch8;        use Sem_Ch8;
*** 62,68 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 62,67 ----
*************** package body Exp_Attr is
*** 82,144 ****
  
     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));
! 
!       --  Caches used to avoid building duplicate subprograms for a single
!       --  type/attribute pair (where the attribute is either Put_Image or
!       --  one of the four streaming attributes). The type used as a key in
!       --  in accessing these maps should not be the entity of a subtype.
! 
!       package Read_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      => "=");
! 
!       package Write_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      => "=");
  
!       package Input_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      => "=");
  
!       package Output_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      => "=");
  
!       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;
  
--- 81,110 ----
  
     package Cached_Attribute_Ops is
  
!       procedure Add_To_Read_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!       function Get_From_Read_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
  
!       procedure Add_To_Write_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!       function Get_From_Write_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
  
!       procedure Add_To_Input_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!       function Get_From_Input_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
  
!       procedure Add_To_Output_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!       function Get_From_Output_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
  
!       procedure Add_To_Put_Image_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!       function Get_From_Put_Image_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
  
     end Cached_Attribute_Ops;
  
*************** package body Exp_Attr is
*** 265,270 ****
--- 231,245 ----
     --  the implementation base type of this type (Typ). If found, return the
     --  pragma node, otherwise return Empty if no pragma is found.
  
+    function Interunit_Ref_OK
+      (Subp_Unit, Attr_Ref_Unit : Node_Id) return Boolean;
+    --  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).
+ 
     function Is_Constrained_Packed_Array (Typ : Entity_Id) return Boolean;
     --  Utility for array attributes, returns true on packed constrained
     --  arrays, and on access to same.
*************** package body Exp_Attr is
*** 279,339 ****
     --  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 (not Is_Body (Unit (Attr_Ref_Unit))
-                        and Is_Body (Unit (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
--- 254,463 ----
     --  Returns True if Typ is a user-defined enumeration type, in the sense
     --  that its literals are declared in the source.
  
     package body Cached_Attribute_Ops is
  
!       --  Caches are used to avoid building duplicate subprograms for a single
!       --  type/attribute pair (where the attribute is either Put_Image or
!       --  one of the four streaming attributes). The type used as a key in
!       --  in accessing these maps should not be the entity of a subtype.
  
!       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));
  
!       function Cached_Candidate_Is_OK
!         (Subp : Entity_Id; Attr_Ref : Node_Id) return Boolean;
!       --  Return True if Subp is callable from the point of Attr_Ref
!       --  (so it is ok to rewrite Attr_Ref as a call to Subp).
! 
!       generic
!       package Existing_Subps_Map is
!          procedure Add_Subp
!            (Key_Typ : Entity_Id; Element_Subp : Entity_Id);
!          --  Having created a subp to implement a particular attribute of
!          --  Key_Typ, make it available for possible reuse by remembering it.
! 
!          function Get_Subp
!            (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id;
!          --  If one of the recorded candidates for Key_Typ is suitable,
!          --  (see Cached_Candidate_Is_OK for meaning of "suitable")
!          --  then return it. If not, then return Empty.
!       end Existing_Subps_Map;
  
+       package body Existing_Subps_Map is
+          package Subp_List_Table is new GNAT.HTable.Simple_HTable
+            (Header_Num => Header_Num,
+             Key        => Entity_Id,
+             Element    => Elist_Id,
+             No_Element => No_Elist,
+             Hash       => Attribute_Op_Hash,
+             Equal      => "=");
+ 
+          function Normalize_Map_Key (Typ : Entity_Id) return Entity_Id;
+          --   We need a single Entity_Id to represent all views and
+          --   all subtypes of a given type, just for use as a key value
+          --   for map lookups. It doesn't much matter which Entity_Id we
+          --   choose as long as we are consistent.
+ 
+          -----------------------
+          -- Normalize_Map_Key --
+          -----------------------
+ 
+          function Normalize_Map_Key (Typ : Entity_Id) return Entity_Id is
+             First_Sub : constant Entity_Id := First_Subtype (Typ);
+             I_Or_P    : constant Entity_Id
+               := Incomplete_Or_Partial_View (First_Sub);
           begin
!             if Present (I_Or_P) then
!                return I_Or_P;
!             else
!                return First_Sub;
              end if;
!          end Normalize_Map_Key;
! 
!          --------------
!          -- Add_Subp --
!          --------------
! 
!          procedure Add_Subp
!            (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!          is
!             Normalized : constant Entity_Id := Normalize_Map_Key (Key_Typ);
!             Current    : constant Elist_Id := Subp_List_Table.Get (Normalized);
!          begin
!             if Present (Current) then
!                declare
!                   Elmt              : Elmt_Id := First_Elmt (Current);
!                   Comp_Unit_Of_Subp : constant Node_Id :=
!                     Enclosing_Comp_Unit_Node (Element_Subp);
!                begin
!                   while Present (Elmt) loop
!                      pragma Assert (Comp_Unit_Of_Subp /=
!                                     Enclosing_Comp_Unit_Node (Node (Elmt)));
!                      Next_Elmt (Elmt);
!                   end loop;
!                end;
! 
!                Append_Elmt (Element_Subp, Current);
!             else
!                Subp_List_Table.Set (Normalized, New_Elmt_List (Element_Subp));
!             end if;
!          end Add_Subp;
! 
!          --------------
!          -- Get_Subp --
!          --------------
! 
!          function Get_Subp
!            (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!          is
!             Normalized : constant Entity_Id := Normalize_Map_Key (Key_Typ);
!             List       : constant Elist_Id :=
!               Subp_List_Table.Get (Normalized);
!             Result     : Entity_Id := Empty;
!             Elmt       : Elmt_Id;
!          begin
!             if Present (List) then
!                Elmt := First_Elmt (List);
! 
!                while Present (Elmt) loop
!                   Result := Node (Elmt);
! 
!                   if Cached_Candidate_Is_OK
!                     (Subp => Result, Attr_Ref => Attr_Ref)
!                   then
!                      return Result;
!                   end if;
! 
!                   Next_Elmt (Elmt);
!                end loop;
!             end if;
! 
!             return Empty;
!          end Get_Subp;
! 
!       end Existing_Subps_Map;
! 
!       --  Declare an instance for each of the 5 attributes and complete each
!       --  attribute's Add and Get subprograms by renaming.
! 
!       package Read_Map is new Existing_Subps_Map;
!       procedure Add_To_Read_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!         renames Read_Map.Add_Subp;
!       function Get_From_Read_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!         renames Read_Map.Get_Subp;
! 
!       package Write_Map is new Existing_Subps_Map;
!       procedure Add_To_Write_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!         renames Write_Map.Add_Subp;
!       function Get_From_Write_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!         renames Write_Map.Get_Subp;
! 
!       package Input_Map is new Existing_Subps_Map;
!       procedure Add_To_Input_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!         renames Input_Map.Add_Subp;
!       function Get_From_Input_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!         renames Input_Map.Get_Subp;
! 
!       package Output_Map is new Existing_Subps_Map;
!       procedure Add_To_Output_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!         renames Output_Map.Add_Subp;
!       function Get_From_Output_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!         renames Output_Map.Get_Subp;
! 
!       package Put_Image_Map is new Existing_Subps_Map;
!       procedure Add_To_Put_Image_Map
!         (Key_Typ : Entity_Id; Element_Subp : Entity_Id)
!         renames Put_Image_Map.Add_Subp;
!       function Get_From_Put_Image_Map
!         (Key_Typ : Entity_Id; Attr_Ref : Node_Id) return Entity_Id
!         renames Put_Image_Map.Get_Subp;
! 
!       ----------------------------
!       -- Cached_Candidate_Is_OK --
!       ----------------------------
! 
!       function Cached_Candidate_Is_OK
!         (Subp : Entity_Id; Attr_Ref : Node_Id) return Boolean
!       is
!          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 Subp_Comp_Unit = Attr_Ref_Comp_Unit then
!             return True;
! 
!          elsif 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 True;
!          end if;
  
           --  We have previously tried being more ambitious here in hopes of
           --  referencing subprograms declared in other units (as opposed
*************** package body Exp_Attr is
*** 345,352 ****
           --  "_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;
  
     -------------------------
--- 469,476 ----
           --  "_305PI"). So, after a fair amount of unsuccessful debugging,
           --   it was decided to abandon the effort.
  
!          return False;
!       end Cached_Candidate_Is_OK;
     end Cached_Attribute_Ops;
  
     -------------------------
*************** package body Exp_Attr is
*** 478,484 ****
  
        --  Local variables
  
!       Func_Id : constant Entity_Id := Make_Temporary (Loc, 'V');
        Indexes : constant List_Id   := New_List;
        Obj_Id  : constant Entity_Id := Make_Temporary (Loc, 'A');
        Stmts   : List_Id;
--- 602,609 ----
  
        --  Local variables
  
!       Func_Id : constant Entity_Id := Make_Temporary (Loc, 'V',
!                                         Related_Node => Attr);
        Indexes : constant List_Id   := New_List;
        Obj_Id  : constant Entity_Id := Make_Temporary (Loc, 'A');
        Stmts   : List_Id;
*************** package body Exp_Attr is
*** 835,841 ****
  
        --  Local variables
  
!       Func_Id  : constant Entity_Id := Make_Temporary (Loc, 'V');
        Obj_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
        Comps    : Node_Id;
        Stmts    : List_Id;
--- 960,967 ----
  
        --  Local variables
  
!       Func_Id  : constant Entity_Id := Make_Temporary (Loc, 'V',
!                                          Related_Node => Attr);
        Obj_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
        Comps    : Node_Id;
        Stmts    : List_Id;
*************** package body Exp_Attr is
*** 1909,1919 ****
--- 2035,2057 ----
        function Get_Integer_Type (Typ : Entity_Id) return Entity_Id;
        --  Return a small integer type appropriate for the enumeration type
  
+       function Get_Array_Stream_Item_Type (Typ : Entity_Id) return Entity_Id;
+       --  For non-scalar types return the first subtype of Typ.
+ 
        procedure Rewrite_Attribute_Proc_Call (Pname : Entity_Id);
        --  Rewrites an attribute for Read, Write, Output, or Put_Image with a
        --  call to the appropriate TSS procedure. Pname is the entity for the
        --  procedure to call.
  
+       procedure Read_Controlling_Tag
+         (P_Type : Entity_Id; Cntrl : out Node_Id);
+       --  Read the external tag from the stream and use it to construct the
+       --  controlling operand for a dispatching call.
+ 
+       procedure Write_Controlling_Tag (P_Type : Entity_Id);
+       --  Write the external tag of the given attribute prefix type to
+       --  the stream. Also perform the accompanying accessibility check.
+ 
        -------------------------------------
        -- Build_And_Insert_Type_Attr_Subp --
        -------------------------------------
*************** package body Exp_Attr is
*** 1937,1943 ****
           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
--- 2075,2082 ----
           Insertion_Scope : Entity_Id := Empty;
           Insertion_Point : Node_Id := Empty;
           Insert_Before   : Boolean := False;
!          First_Typ       : constant Entity_Id := First_Subtype (Typ);
!          Typ_Comp_Unit   : Node_Id := Enclosing_Comp_Unit_Node (First_Typ);
        begin
           --  handle no-enclosing-comp-unit cases
           if No (Typ_Comp_Unit) then
*************** package body Exp_Attr is
*** 1955,1970 ****
              --  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
--- 2094,2109 ----
              --  See comment accompanying earlier call to Interunit_Ref_OK
              --  for discussion of these Enclosing_Comp_Unit_Node calls.
           then
!             --  First_Typ is declared in the current unit, so
!             --  we want to hoist to the same scope as First_Typ.
  
!             Insertion_Scope := Scope (First_Typ);
!             Insertion_Point := Freeze_Node (First_Typ);
           else
              --  Typ is declared in a different unit, so
              --  hoist to library level.
  
!             pragma Assert (Is_Library_Level_Entity (First_Typ));
  
              while Present (Ancestor) loop
                 if Is_List_Member (Ancestor) then
*************** package body Exp_Attr is
*** 2009,2015 ****
  
                    pragma Assert (Present (Insertion_Point));
                 end if;
!                Ancestor := Parent (Ancestor);
              end loop;
  
              if Present (Insertion_Point) then
--- 2148,2159 ----
  
                    pragma Assert (Present (Insertion_Point));
                 end if;
! 
!                if Nkind (Ancestor) = N_Subunit then
!                   Ancestor := Corresponding_Stub (Ancestor);
!                else
!                   Ancestor := Parent (Ancestor);
!                end if;
              end loop;
  
              if Present (Insertion_Point) then
*************** package body Exp_Attr is
*** 2041,2046 ****
--- 2185,2200 ----
           end if;
        end Build_And_Insert_Type_Attr_Subp;
  
+       --  Two instances, used for doing what the instance names suggest.
+ 
+       procedure Build_And_Insert_Record_Or_Elementary_Input_Func is
+         new Build_And_Insert_Type_Attr_Subp
+           (Build_Record_Or_Elementary_Input_Function);
+ 
+       procedure Build_And_Insert_Record_Or_Elementary_Output_Proc is
+         new Build_And_Insert_Type_Attr_Subp
+           (Build_Record_Or_Elementary_Output_Procedure);
+ 
        ----------------------
        -- Get_Integer_Type --
        ----------------------
*************** package body Exp_Attr is
*** 2055,2060 ****
--- 2209,2227 ----
           return Small_Integer_Type_For (Siz, Uns => Is_Unsigned_Type (Typ));
        end Get_Integer_Type;
  
+       --------------------------------
+       -- Get_Array_Stream_Item_Type --
+       --------------------------------
+ 
+       function Get_Array_Stream_Item_Type (Typ : Entity_Id) return Entity_Id is
+          First_Sub_Typ : constant Entity_Id := First_Subtype (Typ);
+       begin
+          if Is_Private_Type (First_Sub_Typ) then
+             return Typ;
+          end if;
+          return First_Sub_Typ;
+       end Get_Array_Stream_Item_Type;
+ 
        ---------------------------------
        -- Rewrite_Attribute_Proc_Call --
        ---------------------------------
*************** package body Exp_Attr is
*** 2161,2167 ****
           --  that it has the necessary extra formals.
  
           if not Is_Frozen (Pname) then
!             Create_Extra_Formals (Pname);
           end if;
  
           --  And now rewrite the call
--- 2328,2334 ----
           --  that it has the necessary extra formals.
  
           if not Is_Frozen (Pname) then
!             Create_Extra_Formals (Pname, Related_Nod => N);
           end if;
  
           --  And now rewrite the call
*************** package body Exp_Attr is
*** 2174,2179 ****
--- 2341,2493 ----
           Analyze (N);
        end Rewrite_Attribute_Proc_Call;
  
+       --------------------------
+       -- Read_Controlling_Tag --
+       --------------------------
+ 
+       procedure Read_Controlling_Tag
+         (P_Type : Entity_Id; Cntrl : out Node_Id)
+       is
+          Strm    : constant Node_Id := First (Exprs);
+          Expr    : Node_Id; -- call to Descendant_Tag
+          Get_Tag : Node_Id; -- expression to read the 'Tag
+ 
+       begin
+          --  Read the internal tag (RM 13.13.2(34)) and use it to
+          --  initialize a dummy tag value. We used to unconditionally
+          --  generate:
+          --
+          --     Descendant_Tag (String'Input (Strm), P_Type);
+          --
+          --  which turns into a call to String_Input_Blk_IO. However,
+          --  if the input is malformed, that could try to read an
+          --  enormous String, causing chaos. So instead we call
+          --  String_Input_Tag, which does the same thing as
+          --  String_Input_Blk_IO, except that if the String is
+          --  absurdly long, it raises an exception.
+          --
+          --  However, if the No_Stream_Optimizations restriction
+          --  is active, we disable this unnecessary attempt at
+          --  robustness; we really need to read the string
+          --  character-by-character.
+          --
+          --  This value is used only to provide a controlling
+          --  argument for the eventual _Input call. Descendant_Tag is
+          --  called rather than Internal_Tag to ensure that we have a
+          --  tag for a type that is descended from the prefix type and
+          --  declared at the same accessibility level (the exception
+          --  Tag_Error will be raised otherwise). The level check is
+          --  required for Ada 2005 because tagged types can be
+          --  extended in nested scopes (AI-344).
+ 
+          --  Note: we used to generate an explicit declaration of a
+          --  constant Ada.Tags.Tag object, and use an occurrence of
+          --  this constant in Cntrl, but this caused a secondary stack
+          --  leak.
+ 
+          if Restriction_Active (No_Stream_Optimizations) then
+             Get_Tag :=
+               Make_Attribute_Reference (Loc,
+                 Prefix         =>
+                   New_Occurrence_Of (Standard_String, Loc),
+                 Attribute_Name => Name_Input,
+                 Expressions    => New_List (
+                   Relocate_Node (Duplicate_Subexpr (Strm))));
+          else
+             Get_Tag :=
+               Make_Function_Call (Loc,
+                 Name                   =>
+                   New_Occurrence_Of
+                     (RTE (RE_String_Input_Tag), Loc),
+                 Parameter_Associations => New_List (
+                   Relocate_Node (Duplicate_Subexpr (Strm))));
+          end if;
+ 
+          Expr :=
+            Make_Function_Call (Loc,
+              Name                   =>
+                New_Occurrence_Of (RTE (RE_Descendant_Tag), Loc),
+              Parameter_Associations => New_List (
+                Get_Tag,
+                Make_Attribute_Reference (Loc,
+                  Prefix         => New_Occurrence_Of (P_Type, Loc),
+                  Attribute_Name => Name_Tag)));
+ 
+          Set_Etype (Expr, RTE (RE_Tag));
+ 
+          --  Construct a controlling operand for a dispatching call.
+ 
+          Cntrl := Unchecked_Convert_To (P_Type, Expr);
+          Set_Etype (Cntrl, P_Type);
+          Set_Parent (Cntrl, N);
+       end Read_Controlling_Tag;
+ 
+       ----------------------------
+       --  Write_Controlling_Tag --
+       ----------------------------
+ 
+       procedure Write_Controlling_Tag (P_Type : Entity_Id) is
+          Strm : constant Node_Id := First (Exprs);
+          Item : constant Node_Id := Next (Strm);
+       begin
+          --  Ada 2005 (AI-344): Check that the accessibility level
+          --  of the type of the output object is not deeper than
+          --  that of the attribute's prefix type.
+ 
+          --  if Get_Access_Level (Item'Tag)
+          --       /= Get_Access_Level (P_Type'Tag)
+          --  then
+          --     raise Tag_Error;
+          --  end if;
+ 
+          --  String'Output (Strm, External_Tag (Item'Tag));
+ 
+          --  We cannot figure out a practical way to implement this
+          --  accessibility check on virtual machines, so we omit it.
+ 
+          if Ada_Version >= Ada_2005
+            and then Tagged_Type_Expansion
+          then
+             Insert_Action (N,
+               Make_Implicit_If_Statement (N,
+                 Condition =>
+                   Make_Op_Ne (Loc,
+                     Left_Opnd  =>
+                       Build_Get_Access_Level (Loc,
+                         Make_Attribute_Reference (Loc,
+                           Prefix         =>
+                             Relocate_Node (
+                               Duplicate_Subexpr (Item,
+                                 Name_Req => True)),
+                           Attribute_Name => Name_Tag)),
+ 
+                     Right_Opnd =>
+                       Make_Integer_Literal (Loc,
+                         Type_Access_Level (P_Type))),
+ 
+                 Then_Statements =>
+                   New_List (Make_Raise_Statement (Loc,
+                               New_Occurrence_Of (
+                                 RTE (RE_Tag_Error), Loc)))));
+          end if;
+ 
+          Insert_Action (N,
+            Make_Attribute_Reference (Loc,
+              Prefix => New_Occurrence_Of (Standard_String, Loc),
+              Attribute_Name => Name_Output,
+              Expressions => New_List (
+                Relocate_Node (Duplicate_Subexpr (Strm)),
+                Make_Function_Call (Loc,
+                  Name =>
+                    New_Occurrence_Of (RTE (RE_External_Tag), Loc),
+                  Parameter_Associations => New_List (
+                   Make_Attribute_Reference (Loc,
+                     Prefix =>
+                       Relocate_Node
+                         (Duplicate_Subexpr (Item, Name_Req => True)),
+                     Attribute_Name => Name_Tag))))));
+       end Write_Controlling_Tag;
+ 
        Typ  : constant Entity_Id    := Etype (N);
        Btyp : constant Entity_Id    := Base_Type (Typ);
        Ptyp : constant Entity_Id    := Etype (Pref);
*************** package body Exp_Attr is
*** 2336,2341 ****
--- 2650,2656 ----
                       Rewrite (Prefix (N),
                         Convert_To (Btyp_DDT,
                           New_Copy_Tree (Prefix (N))));
+                      Flag_Interface_Pointer_Displacement (Prefix (N));
  
                       Analyze_And_Resolve (Prefix (N), Btyp_DDT);
                    end if;
*************** package body Exp_Attr is
*** 2360,2365 ****
--- 2675,2682 ----
                          Rewrite (N,
                            Convert_To (Typ,
                              New_Copy_Tree (Prefix (Ref_Object))));
+                         Flag_Interface_Pointer_Displacement (N);
+ 
                          Analyze_And_Resolve (N, Typ);
                       end if;
                    end;
*************** package body Exp_Attr is
*** 2491,2497 ****
                          Set_Extra_Formal (Extra, Empty);
                       end if;
  
!                      Create_Extra_Formals (Subp_Typ);
                       Set_Directly_Designated_Type (Typ, Subp_Typ);
                    end;
                 end if;
--- 2808,2814 ----
                          Set_Extra_Formal (Extra, Empty);
                       end if;
  
!                      Create_Extra_Formals (Subp_Typ, Related_Nod => N);
                       Set_Directly_Designated_Type (Typ, Subp_Typ);
                    end;
                 end if;
*************** package body Exp_Attr is
*** 2522,2534 ****
                 if not Is_Frozen (Entity (Pref))
                   or else From_Limited_With (Etype (Entity (Pref)))
                 then
!                   Create_Extra_Formals (Entity (Pref));
                 end if;
  
                 if not Is_Frozen (Btyp_DDT)
                   or else From_Limited_With (Etype (Btyp_DDT))
                 then
!                   Create_Extra_Formals (Btyp_DDT);
                 end if;
  
                 pragma Assert
--- 2839,2851 ----
                 if not Is_Frozen (Entity (Pref))
                   or else From_Limited_With (Etype (Entity (Pref)))
                 then
!                   Create_Extra_Formals (Entity (Pref), Related_Nod => N);
                 end if;
  
                 if not Is_Frozen (Btyp_DDT)
                   or else From_Limited_With (Etype (Btyp_DDT))
                 then
!                   Create_Extra_Formals (Btyp_DDT, Related_Nod => N);
                 end if;
  
                 pragma Assert
*************** package body Exp_Attr is
*** 2812,2817 ****
--- 3129,3135 ----
                               Designated_Type (Etype (Parent (N)));
              begin
                 Rewrite (Pref, Convert_To (Iface_Typ, Relocate_Node (Pref)));
+                Flag_Interface_Pointer_Displacement (Pref);
                 Analyze_And_Resolve (Pref, Iface_Typ);
                 return;
              end;
*************** package body Exp_Attr is
*** 3733,3739 ****
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          elsif Is_Class_Wide_Type (Ptyp) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
--- 4051,4057 ----
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          elsif Is_Class_Wide_Type (Ptyp) and then Is_Object_Prefix (Pref) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
*************** package body Exp_Attr is
*** 4099,4104 ****
--- 4417,4547 ----
        when Attribute_Fraction =>
           Expand_Fpt_Attribute_R (N);
  
+       ------------------
+       -- From_Address --
+       ------------------
+ 
+       when Attribute_From_Address =>
+          declare
+             --  Rewrite attribute reference as Expression_With_Actions:
+             --
+             --    declare
+             --      subtype S is Designated_Array_Type (<bounds>);
+             --      Obj : aliased S;
+             --      pragma Import (Convention => Ada, Entity => Obj);
+             --      for Obj'Address use <address>;
+             --    begin
+             --      Access_Type'(Obj'Unchecked_Access);
+             --    end;
+             --
+             --  If Designated_Array_Type is already constrained, then
+             --  the subtype declaration is omitted and D_A_T is referenced
+             --  instead. [An earlier attempt that used aspect_specification
+             --  syntax instead ran into problems.]
+ 
+             Access_Type : constant Entity_Id := Etype (N);
+ 
+             Designated_Array_Subtype : constant Entity_Id :=
+               Designated_Type (Access_Type);
+ 
+             Constraints   : constant List_Id := New_List;
+             Actions       : constant List_Id := New_List;
+             Subtype_Decl  : Node_Id;
+             Object_Decl   : Node_Id;
+             Import_Pragma : Node_Id;
+             Address_ADC   : Node_Id; -- ADC = attribute_definition_clause
+ 
+             function Object_Name return Node_Id is
+               (New_Occurrence_Of (Defining_Identifier (Object_Decl), Loc));
+          begin
+             if Is_Constrained (Designated_Array_Subtype) then
+                --  No need to declare a new subtype; bounds come from the
+                --  already-declared Designated_Array_Subtype.
+                --  Later tests for Present (Subtype_Decl) are testing
+                --  which path through this if-statement was taken.
+                Subtype_Decl := Empty;
+             else
+                declare
+                   --  Skip the first argument, which is the address
+                   Bound_Arg : Node_Id := Next (First (Expressions (N)));
+                   Index     : Node_Id :=
+                     First_Index (Designated_Array_Subtype);
+                   Lo, Hi    : Node_Id;
+                begin
+                   for Dim in 1 .. Number_Dimensions (Designated_Array_Subtype)
+                   loop
+                      if Is_Fixed_Lower_Bound_Index_Subtype (Etype (Index)) then
+                         Lo := New_Copy_Tree (Type_Low_Bound (Etype (Index)));
+                      else
+                         Lo := New_Copy_Tree (Bound_Arg);
+                         Next (Bound_Arg);
+                      end if;
+                      Hi := New_Copy_Tree (Bound_Arg);
+                      Append (Make_Range (Loc, Lo, Hi), Constraints);
+                      Next (Bound_Arg);
+                      Next_Index (Index);
+                   end loop;
+                end;
+ 
+                Subtype_Decl :=
+                  Make_Subtype_Declaration (Loc,
+                    Defining_Identifier =>
+                      Make_Temporary (Loc, 'S', Related_Node => N),
+                    Subtype_Indication  =>
+                      Make_Subtype_Indication (Loc,
+                        Subtype_Mark => New_Occurrence_Of
+                                          (Designated_Array_Subtype, Loc),
+                        Constraint   =>
+                           Make_Index_Or_Discriminant_Constraint
+                             (Loc, Constraints)));
+             end if;
+ 
+             Object_Decl :=
+               Make_Object_Declaration (Loc,
+                 Defining_Identifier =>
+                   Make_Temporary (Loc, 'V', Related_Node => N),
+                   Object_Definition =>
+                     New_Occurrence_Of
+                       ((if Present (Subtype_Decl)
+                         then Defining_Identifier (Subtype_Decl)
+                         else Designated_Array_Subtype), Loc),
+                   Aliased_Present => True);
+ 
+             Import_Pragma :=
+               Make_Pragma (Loc,
+                 Name_Import,
+                 New_List (Make_Pragma_Argument_Association (Loc,
+                             Chars => Name_Convention,
+                             Expression => Make_Identifier (Loc, Name_Ada)),
+                           Make_Pragma_Argument_Association (Loc,
+                             Chars => Name_Entity,
+                             Expression => Object_Name)));
+ 
+             Address_ADC :=
+               Make_Attribute_Definition_Clause (Loc,
+                 Name => Object_Name,
+                 Chars => Name_Address,
+                 Expression => New_Copy_Tree (First (Expressions (N))));
+ 
+             if Present (Subtype_Decl) then
+                Append (Subtype_Decl, Actions);
+             end if;
+             Append (Object_Decl, Actions);
+             Append (Import_Pragma, Actions);
+             Append (Address_ADC, Actions);
+ 
+             Rewrite (N, Make_Expression_With_Actions (Loc,
+               Actions => Actions,
+               Expression =>
+                 Make_Qualified_Expression (Loc,
+                   Subtype_Mark => New_Occurrence_Of (Access_Type, Loc),
+                   Expression => Make_Attribute_Reference (Loc,
+                                   Prefix => Object_Name,
+                                   Attribute_Name => Name_Unchecked_Access))));
+ 
+             Analyze_And_Resolve (N, Access_Type);
+          end;
+ 
        --------------
        -- From_Any --
        --------------
*************** package body Exp_Attr is
*** 4324,4329 ****
--- 4767,4773 ----
           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);
+          I_Type  : Entity_Id := P_Type;
           Strm    : constant Node_Id   := First (Exprs);
           Fname   : Entity_Id;
           Decl    : Node_Id;
*************** package body Exp_Attr is
*** 4455,4463 ****
                 --  since in this case we are required to call this routine.
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Read)) then
!                   Build_Record_Or_Elementary_Input_Function
!                     (P_Type, Decl, Fname);
!                   Insert_Action (N, Decl);
  
                 --  For normal cases, we call the I_xxx routine directly
  
--- 4899,4909 ----
                 --  since in this case we are required to call this routine.
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Read)) then
!                   Build_And_Insert_Record_Or_Elementary_Input_Func
!                     (Typ      => Base_Type (U_Type),
!                      Decl     => Decl,
!                      Subp     => Fname,
!                      Attr_Ref => N);
  
                 --  For normal cases, we call the I_xxx routine directly
  
*************** package body Exp_Attr is
*** 4475,4482 ****
                      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);
--- 4921,4929 ----
                      new Build_And_Insert_Type_Attr_Subp
                            (Build_Array_Input_Function);
                 begin
+                   I_Type := Get_Array_Stream_Item_Type (U_Type);
                    Build_And_Insert_Array_Input_Func
!                     (Typ      => I_Type,
                       Decl     => Decl,
                       Subp     => Fname,
                       Attr_Ref => N);
*************** package body Exp_Attr is
*** 4486,4579 ****
  
              elsif Is_Class_Wide_Type (P_Type) then
  
!                --  No need to do anything else compiling under restriction
!                --  No_Dispatching_Calls. During the semantic analysis we
!                --  already notified such violation.
! 
!                if Restriction_Active (No_Dispatching_Calls) then
!                   return;
!                end if;
  
!                declare
!                   Rtyp : constant Entity_Id := Root_Type (P_Type);
  
!                   Expr    : Node_Id; -- call to Descendant_Tag
!                   Get_Tag : Node_Id; -- expression to read the 'Tag
  
!                begin
!                   --  Read the internal tag (RM 13.13.2(34)) and use it to
!                   --  initialize a dummy tag value. We used to unconditionally
!                   --  generate:
!                   --
!                   --     Descendant_Tag (String'Input (Strm), P_Type);
!                   --
!                   --  which turns into a call to String_Input_Blk_IO. However,
!                   --  if the input is malformed, that could try to read an
!                   --  enormous String, causing chaos. So instead we call
!                   --  String_Input_Tag, which does the same thing as
!                   --  String_Input_Blk_IO, except that if the String is
!                   --  absurdly long, it raises an exception.
!                   --
!                   --  However, if the No_Stream_Optimizations restriction
!                   --  is active, we disable this unnecessary attempt at
!                   --  robustness; we really need to read the string
!                   --  character-by-character.
!                   --
!                   --  This value is used only to provide a controlling
!                   --  argument for the eventual _Input call. Descendant_Tag is
!                   --  called rather than Internal_Tag to ensure that we have a
!                   --  tag for a type that is descended from the prefix type and
!                   --  declared at the same accessibility level (the exception
!                   --  Tag_Error will be raised otherwise). The level check is
!                   --  required for Ada 2005 because tagged types can be
!                   --  extended in nested scopes (AI-344).
  
!                   --  Note: we used to generate an explicit declaration of a
!                   --  constant Ada.Tags.Tag object, and use an occurrence of
!                   --  this constant in Cntrl, but this caused a secondary stack
!                   --  leak.
  
!                   if Restriction_Active (No_Stream_Optimizations) then
!                      Get_Tag :=
                         Make_Attribute_Reference (Loc,
!                          Prefix         =>
!                            New_Occurrence_Of (Standard_String, Loc),
!                          Attribute_Name => Name_Input,
!                          Expressions    => New_List (
!                            Relocate_Node (Duplicate_Subexpr (Strm))));
!                   else
!                      Get_Tag :=
!                        Make_Function_Call (Loc,
!                          Name                   =>
!                            New_Occurrence_Of
!                              (RTE (RE_String_Input_Tag), Loc),
!                          Parameter_Associations => New_List (
!                            Relocate_Node (Duplicate_Subexpr (Strm))));
!                   end if;
! 
!                   Expr :=
!                     Make_Function_Call (Loc,
!                       Name                   =>
!                         New_Occurrence_Of (RTE (RE_Descendant_Tag), Loc),
!                       Parameter_Associations => New_List (
!                         Get_Tag,
!                         Make_Attribute_Reference (Loc,
!                           Prefix         => New_Occurrence_Of (P_Type, Loc),
!                           Attribute_Name => Name_Tag)));
  
!                   Set_Etype (Expr, RTE (RE_Tag));
  
!                   --  Now we need to get the entity for the call, and construct
!                   --  a function call node, where we preset a reference to Dnn
!                   --  as the controlling argument (doing an unchecked convert
!                   --  to the class-wide tagged type to make it look like a real
!                   --  tagged object).
  
!                   Fname := Find_Prim_Op (Rtyp, TSS_Stream_Input);
!                   Cntrl := Unchecked_Convert_To (P_Type, Expr);
!                   Set_Etype (Cntrl, P_Type);
!                   Set_Parent (Cntrl, N);
!                end;
  
              --  For tagged types, use the primitive Input function
  
--- 4933,4989 ----
  
              elsif Is_Class_Wide_Type (P_Type) then
  
!                if Is_Mutably_Tagged_Type (P_Type) then
  
!                   --  In mutably tagged case, rewrite
!                   --    T'Class'Input (Strm)
!                   --  as (roughly)
!                   --    declare
!                   --       Result : T'Class;
!                   --       T'Class'Read (Strm, Result);
!                   --    begin
!                   --      Result;
!                   --    end;
  
!                   declare
!                      Result_Temp : constant Entity_Id :=
!                        Make_Temporary (Loc, 'I');
  
!                      --  Gets default initialization
!                      Result_Temp_Decl : constant Node_Id :=
!                        Make_Object_Declaration (Loc,
!                          Defining_Identifier => Result_Temp,
!                          Object_Definition =>
!                            New_Occurrence_Of (P_Type, Loc));
  
!                      function Result_Temp_Name return Node_Id is
!                        (New_Occurrence_Of (Result_Temp, Loc));
  
!                      Actions : constant List_Id := New_List (
!                        Result_Temp_Decl,
                         Make_Attribute_Reference (Loc,
!                          Prefix => New_Occurrence_Of (P_Type, Loc),
!                          Attribute_Name => Name_Read,
!                          Expressions => New_List (
!                            Relocate_Node (Strm), Result_Temp_Name)));
!                   begin
!                      Rewrite (N, Make_Expression_With_Actions (Loc,
!                                    Actions, Result_Temp_Name));
!                      Analyze_And_Resolve (N, P_Type);
!                      return;
!                   end;
!                end if;
  
!                --  No need to do anything else compiling under restriction
!                --  No_Dispatching_Calls. During the semantic analysis we
!                --  already notified such violation.
  
!                if Restriction_Active (No_Dispatching_Calls) then
!                   return;
!                end if;
  
!                Read_Controlling_Tag (P_Type, Cntrl);
!                Fname := Find_Prim_Op (Root_Type (P_Type), TSS_Stream_Input);
  
              --  For tagged types, use the primitive Input function
  
*************** package body Exp_Attr is
*** 4612,4628 ****
                 --  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)
--- 5022,5032 ----
                 --  first named subtype is unconstrained? Shouldn't we be
                 --  passing in the first named subtype of the type?
  
!                Build_And_Insert_Record_Or_Elementary_Input_Func
!                  (Typ      => Underlying_Type (First_Subtype (P_Type)),
!                   Decl     => Decl,
!                   Subp     => Fname,
!                   Attr_Ref => N);
  
                 if Nkind (Parent (N)) = N_Object_Declaration
                   and then Is_Record_Type (U_Type)
*************** package body Exp_Attr is
*** 4650,4655 ****
--- 5054,5063 ----
                    end;
                 end if;
              end if;
+ 
+             if not Is_Tagged_Type (U_Type) then
+                Cached_Attribute_Ops.Add_To_Input_Map (U_Type, Fname);
+             end if;
           end if;
  
           --  If we fall through, Fname is the function to be called. The result
*************** package body Exp_Attr is
*** 4663,4678 ****
                  Relocate_Node (Strm)));
  
           Set_Controlling_Argument (Call, Cntrl);
!          Rewrite (N, Unchecked_Convert_To (P_Type, Call));
!          Analyze_And_Resolve (N, P_Type);
  
           if Nkind (Parent (N)) = N_Object_Declaration then
              Freeze_Stream_Subprogram (Fname);
           end if;
- 
-          if not Is_Tagged_Type (P_Type) then
-             Cached_Attribute_Ops.Input_Map.Set (U_Type, Fname);
-          end if;
        end Input;
  
        -------------------
--- 5071,5087 ----
                  Relocate_Node (Strm)));
  
           Set_Controlling_Argument (Call, Cntrl);
!          if Is_Private_Type (P_Type) or else Is_Class_Wide_Type (P_Type) then
!             Rewrite (N, Unchecked_Convert_To (P_Type, Call));
!             Analyze_And_Resolve (N, P_Type);
!          else
!             Rewrite (N, Call);
!             Analyze_And_Resolve (N, I_Type);
!          end if;
  
           if Nkind (Parent (N)) = N_Object_Declaration then
              Freeze_Stream_Subprogram (Fname);
           end if;
        end Input;
  
        -------------------
*************** package body Exp_Attr is
*** 4985,4990 ****
--- 5394,5474 ----
  
           Analyze_And_Resolve (N, Typ);
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make =>
+          declare
+             Constructor_Params : List_Id := New_Copy_List (Expressions (N));
+             Constructor_Rhs    : Node_Id;
+             Result_Decl        : Node_Id;
+             Result_Id          : constant Entity_Id :=
+               Make_Temporary (Loc, 'D', N);
+          begin
+             if Is_Empty_List (Constructor_Params) then
+                Constructor_Params := New_List;
+             end if;
+ 
+             Result_Decl := Make_Object_Declaration (Loc,
+                              Defining_Identifier => Result_Id,
+                              Object_Definition   =>
+                                New_Occurrence_Of (Typ, Loc));
+ 
+             --  Suppress default initialization for result object.
+             --  Default init (except for tag, if tagged) will instead be
+             --  performed in the constructor procedure.
+ 
+             Mutate_Ekind (Result_Id, E_Variable);
+             Set_Suppress_Initialization (Result_Id);
+ 
+             --  A call to the copy constructor can be a special case. Even if
+             --  no copy constructor is declared (both explicitly by the user or
+             --  implicitly by the compiler), the call needs to succeed. In this
+             --  case, we rewrite the call simply as its unique actual.
+ 
+             if Is_Copy_Constructor_Call (N)
+               and then not Has_Copy_Constructor (Entity (Pref))
+             then
+                if Nkind (First (Exprs)) = N_Parameter_Association
+                then
+                   Constructor_Rhs :=
+                     Relocate_Node (Explicit_Actual_Parameter (First (Exprs)));
+                else
+                   Constructor_Rhs := Relocate_Node (First (Exprs));
+                end if;
+ 
+             --  Otherwise build a prefixed-notation call
+ 
+             else
+                declare
+                   Constructor_Name : constant Node_Id :=
+                     Make_Selected_Component (Loc,
+                       Prefix        => New_Occurrence_Of (Result_Id, Loc),
+                       Selector_Name => Make_Identifier (Loc,
+                                          Direct_Attribute_Definition_Name
+                                            (Typ, Name_Constructor)));
+                   Constructor_Call : Node_Id;
+                begin
+                   Set_Is_Prefixed_Call (Constructor_Name);
+                   Constructor_Call :=
+                     Make_Procedure_Call_Statement (Loc,
+                       Parameter_Associations => Constructor_Params,
+                       Name                   => Constructor_Name);
+                   Set_Is_Expanded_Constructor_Call (Constructor_Call, True);
+ 
+                   Constructor_Rhs :=
+                     Make_Expression_With_Actions (Loc,
+                       Actions => New_List (Result_Decl, Constructor_Call),
+                       Expression => New_Occurrence_Of (Result_Id, Loc));
+                end;
+             end if;
+ 
+             Rewrite (N, Constructor_Rhs);
+          end;
+ 
+          Analyze_And_Resolve (N, Typ);
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Exp_Attr is
*** 5238,5251 ****
        ---------
  
        when Attribute_Old => Old : declare
!          CW_Temp : Entity_Id;
!          CW_Typ  : Entity_Id;
!          Decl    : Node_Id;
!          Ins_Nod : Node_Id;
!          Temp    : Entity_Id;
  
           use Old_Attr_Util.Conditional_Evaluation;
           use Old_Attr_Util.Indirect_Temps;
        begin
           --  'Old can only appear in the case where local contract-related
           --  wrapper has been generated with the purpose of wrapping the
--- 5722,5739 ----
        ---------
  
        when Attribute_Old => Old : declare
!          CW_Temp   : Entity_Id;
!          CW_Typ    : Entity_Id;
!          Decl      : Node_Id;
!          Ins_Nod   : Node_Id;
!          Temp      : Entity_Id;
  
           use Old_Attr_Util.Conditional_Evaluation;
           use Old_Attr_Util.Indirect_Temps;
+ 
+          Cond_Eval : constant Boolean :=
+             Eligible_For_Conditional_Evaluation (N);
+ 
        begin
           --  'Old can only appear in the case where local contract-related
           --  wrapper has been generated with the purpose of wrapping the
*************** package body Exp_Attr is
*** 5274,5280 ****
  
           Ins_Nod := Last (Declarations (Ins_Nod));
  
!          if Eligible_For_Conditional_Evaluation (N) then
              declare
                 Eval_Stmts : constant List_Id := New_List;
  
--- 5762,5773 ----
  
           Ins_Nod := Last (Declarations (Ins_Nod));
  
!          --  The code that builds declarations for always evaluated 'Old
!          --  constants doesn't handle the anonymous access type case correctly.
!          --  Indirect temporaries do, so we avoid that problem by going through
!          --  the same code as for conditionally evaluated constants.
! 
!          if Cond_Eval or else Is_Anonymous_Access_Type (Etype (N)) then
              declare
                 Eval_Stmts : constant List_Id := New_List;
  
*************** package body Exp_Attr is
*** 5306,5317 ****
                 Declare_Indirect_Temporary
                   (Attr_Prefix => Pref, Indirect_Temp => Temp);
  
!                Insert_After_And_Analyze (
!                  Ins_Nod,
!                  Make_If_Statement
!                    (Sloc            => Loc,
!                     Condition       => Conditional_Evaluation_Condition  (N),
!                     Then_Statements => Eval_Stmts));
  
                 Rewrite (N, Indirect_Temp_Value
                               (Temp => Temp,
--- 5799,5817 ----
                 Declare_Indirect_Temporary
                   (Attr_Prefix => Pref, Indirect_Temp => Temp);
  
!                --  Prefixes with anonymous access type might be unconditionally
!                --  evaluated.
! 
!                if Cond_Eval then
!                   Insert_After_And_Analyze (
!                     Ins_Nod,
!                     Make_If_Statement
!                       (Sloc            => Loc,
!                        Condition       => Conditional_Evaluation_Condition (N),
!                        Then_Statements => Eval_Stmts));
!                else
!                   Insert_List_After_And_Analyze (Ins_Nod, Eval_Stmts);
!                end if;
  
                 Rewrite (N, Indirect_Temp_Value
                               (Temp => Temp,
*************** package body Exp_Attr is
*** 5619,5627 ****
                 --  since in this case we are required to call this routine.
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Write)) then
!                   Build_Record_Or_Elementary_Output_Procedure
!                     (P_Type, Decl, Pname);
!                   Insert_Action (N, Decl);
  
                 --  For normal cases, we call the W_xxx routine directly
  
--- 6119,6129 ----
                 --  since in this case we are required to call this routine.
  
                 if Present (Find_Inherited_TSS (P_Type, TSS_Stream_Write)) then
!                   Build_And_Insert_Record_Or_Elementary_Output_Proc
!                     (Typ      => Base_Type (U_Type),
!                      Decl     => Decl,
!                      Subp     => Pname,
!                      Attr_Ref => N);
  
                 --  For normal cases, we call the W_xxx routine directly
  
*************** package body Exp_Attr is
*** 5640,5651 ****
                            (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)).
  
--- 6142,6161 ----
                            (Build_Array_Output_Procedure);
                 begin
                    Build_And_Insert_Array_Output_Proc
!                     (Typ      => Get_Array_Stream_Item_Type (U_Type),
                       Decl     => Decl,
                       Subp     => Pname,
                       Attr_Ref => N);
                 end;
  
+             --  In the mutably tagged case, T'Class'Output calls T'Class'Write;
+             --  T'Write will take care of writing out the external tag.
+ 
+             elsif Is_Mutably_Tagged_Type (P_Type) then
+                Set_Attribute_Name (N, Name_Write);
+                Analyze (N);
+                return;
+ 
              --  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
*** 5659,5726 ****
                    return;
                 end if;
  
!                Tag_Write : declare
!                   Strm : constant Node_Id := First (Exprs);
!                   Item : constant Node_Id := Next (Strm);
! 
!                begin
!                   --  Ada 2005 (AI-344): Check that the accessibility level
!                   --  of the type of the output object is not deeper than
!                   --  that of the attribute's prefix type.
! 
!                   --  if Get_Access_Level (Item'Tag)
!                   --       /= Get_Access_Level (P_Type'Tag)
!                   --  then
!                   --     raise Tag_Error;
!                   --  end if;
! 
!                   --  String'Output (Strm, External_Tag (Item'Tag));
! 
!                   --  We cannot figure out a practical way to implement this
!                   --  accessibility check on virtual machines, so we omit it.
! 
!                   if Ada_Version >= Ada_2005
!                     and then Tagged_Type_Expansion
!                   then
!                      Insert_Action (N,
!                        Make_Implicit_If_Statement (N,
!                          Condition =>
!                            Make_Op_Ne (Loc,
!                              Left_Opnd  =>
!                                Build_Get_Access_Level (Loc,
!                                  Make_Attribute_Reference (Loc,
!                                    Prefix         =>
!                                      Relocate_Node (
!                                        Duplicate_Subexpr (Item,
!                                          Name_Req => True)),
!                                    Attribute_Name => Name_Tag)),
! 
!                              Right_Opnd =>
!                                Make_Integer_Literal (Loc,
!                                  Type_Access_Level (P_Type))),
! 
!                          Then_Statements =>
!                            New_List (Make_Raise_Statement (Loc,
!                                        New_Occurrence_Of (
!                                          RTE (RE_Tag_Error), Loc)))));
!                   end if;
! 
!                   Insert_Action (N,
!                     Make_Attribute_Reference (Loc,
!                       Prefix => New_Occurrence_Of (Standard_String, Loc),
!                       Attribute_Name => Name_Output,
!                       Expressions => New_List (
!                         Relocate_Node (Duplicate_Subexpr (Strm)),
!                         Make_Function_Call (Loc,
!                           Name =>
!                             New_Occurrence_Of (RTE (RE_External_Tag), Loc),
!                           Parameter_Associations => New_List (
!                            Make_Attribute_Reference (Loc,
!                              Prefix =>
!                                Relocate_Node
!                                  (Duplicate_Subexpr (Item, Name_Req => True)),
!                              Attribute_Name => Name_Tag))))));
!                end Tag_Write;
  
                 Pname := Find_Prim_Op (U_Type, TSS_Stream_Output);
  
--- 6169,6175 ----
                    return;
                 end if;
  
!                Write_Controlling_Tag (P_Type);
  
                 Pname := Find_Prim_Op (U_Type, TSS_Stream_Output);
  
*************** package body Exp_Attr is
*** 5753,5779 ****
                    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;
  
           --  If we fall through, Pname is the name of the procedure to call
  
           Rewrite_Attribute_Proc_Call (Pname);
- 
-          if not Is_Tagged_Type (P_Type) then
-             Cached_Attribute_Ops.Output_Map.Set (U_Type, Pname);
-          end if;
        end Output;
  
        ---------
--- 6202,6222 ----
                    return;
                 end if;
  
!                Build_And_Insert_Record_Or_Elementary_Output_Proc
!                  (Typ      => Underlying_Type (First_Subtype (P_Type)),
!                   Decl     => Decl,
!                   Subp     => Pname,
!                   Attr_Ref => N);
!             end if;
! 
!             if not Is_Tagged_Type (U_Type) then
!                Cached_Attribute_Ops.Add_To_Output_Map (U_Type, Pname);
              end if;
           end if;
  
           --  If we fall through, Pname is the name of the procedure to call
  
           Rewrite_Attribute_Proc_Call (Pname);
        end Output;
  
        ---------
*************** package body Exp_Attr is
*** 5936,5942 ****
  
           --  For modular types, nothing to do (no overflow, since wraps)
  
!          elsif Is_Modular_Integer_Type (Ptyp) then
              null;
  
           --  For other types, if argument is marked as needing a range check or
--- 6379,6385 ----
  
           --  For modular types, nothing to do (no overflow, since wraps)
  
!          elsif Has_Modular_Operations (Ptyp) then
              null;
  
           --  For other types, if argument is marked as needing a range check or
*************** package body Exp_Attr is
*** 6155,6167 ****
                                      /= 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
--- 6598,6609 ----
                                      /= RTU_Entity (Interfaces_C))
              then
                 Rewrite (N, Build_String_Put_Image_Call (N));
!                Analyze (N, Suppress => All_Checks);
                 return;
  
              elsif Is_Array_Type (U_Type) then
!                Pname := Cached_Attribute_Ops.Get_From_Put_Image_Map
!                           (U_Type, Attr_Ref => N);
                 if No (Pname) then
                    declare
                       procedure Build_And_Insert_Array_Put_Image_Proc is
*************** package body Exp_Attr is
*** 6170,6182 ****
  
                    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
--- 6612,6624 ----
  
                    begin
                       Build_And_Insert_Array_Put_Image_Proc
!                        (Typ      => Get_Array_Stream_Item_Type (U_Type),
                          Decl     => Decl,
!                         Subp     => Pname,
!                         Attr_Ref => N);
                    end;
  
!                   Cached_Attribute_Ops.Add_To_Put_Image_Map (U_Type, Pname);
                 end if;
  
              --  Tagged type case, use the primitive Put_Image function. Note
*************** package body Exp_Attr is
*** 6213,6221 ****
                 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
--- 6655,6662 ----
                 declare
                    Base_Typ : constant Entity_Id := Full_Base (U_Type);
                 begin
!                   Pname := Cached_Attribute_Ops.Get_From_Put_Image_Map
!                              (Base_Typ, Attr_Ref => N);
                    if No (Pname) then
                       declare
                          procedure Build_And_Insert_Record_Put_Image_Proc is
*************** package body Exp_Attr is
*** 6230,6236 ****
                             Attr_Ref => N);
                       end;
  
!                      Cached_Attribute_Ops.Put_Image_Map.Set (Base_Typ, Pname);
                    end if;
                 end;
              end if;
--- 6671,6678 ----
                             Attr_Ref => N);
                       end;
  
!                      Cached_Attribute_Ops.Add_To_Put_Image_Map
!                        (Base_Typ, Pname);
                    end if;
                 end;
              end if;
*************** package body Exp_Attr is
*** 6309,6323 ****
              E2  : constant Node_Id   := Next (E1);
              Bnn : constant Entity_Id := Make_Temporary (Loc, 'B', N);
  
!             Accum_Typ : Entity_Id := Empty;
              New_Loop  : Node_Id;
  
              function Build_Stat (Comp : Node_Id) return Node_Id;
              --  The reducer can be a function, a procedure whose first
              --  parameter is in-out, or an attribute that is a function,
              --  which (for now) can only be Min/Max. This subprogram
!             --  builds the corresponding computation for the generated loop
!             --  and retrieves the accumulator type as per RM 4.5.10(19/5).
  
              ----------------
              -- Build_Stat --
--- 6751,6764 ----
              E2  : constant Node_Id   := Next (E1);
              Bnn : constant Entity_Id := Make_Temporary (Loc, 'B', N);
  
!             Accum_Typ : constant Entity_Id := Etype (N);
              New_Loop  : Node_Id;
  
              function Build_Stat (Comp : Node_Id) return Node_Id;
              --  The reducer can be a function, a procedure whose first
              --  parameter is in-out, or an attribute that is a function,
              --  which (for now) can only be Min/Max. This subprogram
!             --  builds the corresponding computation for the generated loop.
  
              ----------------
              -- Build_Stat --
*************** package body Exp_Attr is
*** 6328,6334 ****
  
              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,
--- 6769,6774 ----
*************** package body Exp_Attr is
*** 6339,6345 ****
                                  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 (
--- 6779,6784 ----
*************** package body Exp_Attr is
*** 6347,6353 ****
                                   Comp));
  
                 else
-                   Accum_Typ := Etype (Entity (E1));
                    Stat := Make_Assignment_Statement (Loc,
                              Name => New_Occurrence_Of (Bnn, Loc),
                              Expression => Make_Function_Call (Loc,
--- 6786,6791 ----
*************** package body Exp_Attr is
*** 6357,6384 ****
                                  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;
  
--- 6795,6800 ----
*************** package body Exp_Attr is
*** 6482,6487 ****
--- 6898,6904 ----
           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);
+          Cntrl   : Node_Id := Empty; -- nonempty only if P_Type mutably tagged
           Pname   : Entity_Id;
           Decl    : Node_Id;
           Prag    : Node_Id;
*************** package body Exp_Attr is
*** 6620,6626 ****
                            (Build_Array_Read_Procedure);
                 begin
                    Build_And_Insert_Array_Read_Proc
!                     (Typ      => Full_Base (U_Type),
                       Decl     => Decl,
                       Subp     => Pname,
                       Attr_Ref => N);
--- 7037,7043 ----
                            (Build_Array_Read_Procedure);
                 begin
                    Build_And_Insert_Array_Read_Proc
!                     (Typ      => Get_Array_Stream_Item_Type (U_Type),
                       Decl     => Decl,
                       Subp     => Pname,
                       Attr_Ref => N);
*************** package body Exp_Attr is
*** 6630,6635 ****
--- 7047,7057 ----
              --  this will dispatch in the class-wide case which is what we want
  
              elsif Is_Tagged_Type (U_Type) then
+ 
+                if Is_Mutably_Tagged_Type (U_Type) then
+                   Read_Controlling_Tag (P_Type, Cntrl);
+                end if;
+ 
                 Pname := Find_Prim_Op (U_Type, TSS_Stream_Read);
  
              --  All other record type cases, including protected records. The
*************** package body Exp_Attr is
*** 6686,6697 ****
                       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 (U_Type, Pname);
           end if;
        end Read;
  
--- 7108,7159 ----
                       Attr_Ref => N);
                 end;
              end if;
+ 
+             if not Is_Tagged_Type (U_Type) then
+                Cached_Attribute_Ops.Add_To_Read_Map (U_Type, Pname);
+             end if;
           end if;
  
           Rewrite_Attribute_Proc_Call (Pname);
  
!          if Present (Cntrl) then
!             pragma Assert (Is_Mutably_Tagged_Type (U_Type));
!             pragma Assert (Nkind (N) = N_Procedure_Call_Statement);
! 
!             --  Assign the Tag value that was read from the stream
!             --  to the tag of the out-mode actual parameter so that
!             --  we dispatch correctly. This isn't quite right.
!             --  We should assign a complete object (not just
!             --  the tag), but that would require a dispatching call to
!             --  perform default initialization of the source object and
!             --  dispatching default init calls are currently not supported.
! 
!             declare
!                function Select_Tag (Prefix : Node_Id) return Node_Id is
!                  (Make_Selected_Component (Loc,
!                     Prefix => Prefix,
!                     Selector_Name =>
!                       New_Occurrence_Of (First_Tag_Component
!                                            (Etype (Prefix)), Loc)));
! 
!                Controlling_Actual : constant Node_Id :=
!                  Next (First (Parameter_Associations (N)));
! 
!                pragma Assert (Is_Controlling_Actual (Controlling_Actual));
! 
!                Assign_Tag : Node_Id;
!             begin
!                Remove_Side_Effects (Controlling_Actual, Name_Req => True);
! 
!                Assign_Tag :=
!                  Make_Assignment_Statement (Loc,
!                    Name =>
!                      Select_Tag (New_Copy_Tree (Controlling_Actual)),
!                    Expression => Select_Tag (Cntrl));
! 
!                Insert_Before (Before => N, Node => Assign_Tag);
!                Analyze (Assign_Tag);
!             end;
           end if;
        end Read;
  
*************** package body Exp_Attr is
*** 6881,6894 ****
                 end if;
              end if;
  
!             --  If the prefix is X'Class, transform it into a direct reference
!             --  to the class-wide type, because the back end must not see a
!             --  'Class reference.
  
              if Is_Entity_Name (Pref)
                and then Is_Class_Wide_Type (Entity (Pref))
              then
!                Rewrite (Prefix (N), New_Occurrence_Of (Entity (Pref), Loc));
                 return;
  
              --  For X'Size applied to an object of a class-wide type, transform
--- 7343,7367 ----
                 end if;
              end if;
  
!             --  If the prefix is X'Class, transform it into a
!             --  raise of Constraint_Error.
  
              if Is_Entity_Name (Pref)
                and then Is_Class_Wide_Type (Entity (Pref))
              then
!                pragma Assert (not Is_Mutably_Tagged_Type (Entity (Pref)));
!                --  In the Mutably_Tagged_Case, this attribute reference
!                --  should have been transformed into an integer literal
!                --  (in Eval_Attribute) before we get here.
!                --  If this assertion ever fails, the thing to do here
!                --  is generate a literal equal to the specified
!                --  T'Size'Class [sic] aspect value.
! 
!                Error_Msg_N
!                  ("Constraint_Error will be raised at run time??", N);
!                Rewrite (N, Make_Raise_Constraint_Error
!                              (Loc, Reason => CE_Range_Check_Failed));
!                Set_Etype (N, Etype (Original_Node (N)));
                 return;
  
              --  For X'Size applied to an object of a class-wide type, transform
*************** package body Exp_Attr is
*** 7192,7198 ****
  
           --  For modular types, nothing to do (no overflow, since wraps)
  
!          elsif Is_Modular_Integer_Type (Ptyp) then
              null;
  
           --  For other types, if argument is marked as needing a range check or
--- 7665,7671 ----
  
           --  For modular types, nothing to do (no overflow, since wraps)
  
!          elsif Has_Modular_Operations (Ptyp) then
              null;
  
           --  For other types, if argument is marked as needing a range check or
*************** package body Exp_Attr is
*** 8290,8296 ****
                            (Build_Array_Write_Procedure);
                 begin
                    Build_And_Insert_Array_Write_Proc
!                     (Typ      => Full_Base (U_Type),
                       Decl     => Decl,
                       Subp     => Pname,
                       Attr_Ref => N);
--- 8763,8769 ----
                            (Build_Array_Write_Procedure);
                 begin
                    Build_And_Insert_Array_Write_Proc
!                     (Typ      => Get_Array_Stream_Item_Type (U_Type),
                       Decl     => Decl,
                       Subp     => Pname,
                       Attr_Ref => N);
*************** package body Exp_Attr is
*** 8300,8305 ****
--- 8773,8786 ----
              --  this will dispatch in the class-wide case which is what we want
  
              elsif Is_Tagged_Type (U_Type) then
+ 
+                --  If T'Class is mutably tagged, then the external tag
+                --  is written out by T'Class'Write, not by T'Class'Output.
+ 
+                if Is_Mutably_Tagged_Type (U_Type) then
+                   Write_Controlling_Tag (P_Type);
+                end if;
+ 
                 Pname := Find_Prim_Op (U_Type, TSS_Stream_Write);
  
              --  All other record type cases, including protected records.
*************** package body Exp_Attr is
*** 8363,8377 ****
                       Attr_Ref => N);
                 end;
              end if;
           end if;
  
           --  If we fall through, Pname is the procedure to be called
  
           Rewrite_Attribute_Proc_Call (Pname);
- 
-          if not Is_Tagged_Type (P_Type) then
-             Cached_Attribute_Ops.Write_Map.Set (U_Type, Pname);
-          end if;
        end Write;
  
        --  The following attributes are handled by the back end (except that
--- 8844,8858 ----
                       Attr_Ref => N);
                 end;
              end if;
+ 
+             if not Is_Tagged_Type (U_Type) then
+                Cached_Attribute_Ops.Add_To_Write_Map (U_Type, Pname);
+             end if;
           end if;
  
           --  If we fall through, Pname is the procedure to be called
  
           Rewrite_Attribute_Proc_Call (Pname);
        end Write;
  
        --  The following attributes are handled by the back end (except that
*************** package body Exp_Attr is
*** 8398,8408 ****
--- 8879,8891 ----
           | Attribute_Bit_Order
           | Attribute_Class
           | Attribute_Compiler_Version
+          | Attribute_Constructor
           | Attribute_Default_Bit_Order
           | Attribute_Default_Scalar_Storage_Order
           | Attribute_Definite
           | Attribute_Delta
           | Attribute_Denorm
+          | Attribute_Destructor
           | Attribute_Digits
           | Attribute_Emax
           | Attribute_Enabled
*************** package body Exp_Attr is
*** 8452,8457 ****
--- 8935,8941 ----
           | Attribute_Type_Key
           | Attribute_Unconstrained_Array
           | Attribute_Universal_Literal_String
+          | Attribute_Unsigned_Base_Range
           | Attribute_Wchar_T_Size
           | Attribute_Word_Size
        =>
*************** package body Exp_Attr is
*** 8465,8471 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Attribute_Reference;
  
     --------------------------------
--- 8949,8955 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Attribute_Reference;
  
     --------------------------------
*************** package body Exp_Attr is
*** 8611,8617 ****
           then
              Set_Actual_Designated_Subtype (Pref, Get_Actual_Subtype (Pref));
  
!          --  If Size was applied to a slice of a bit-packed array, we rewrite
           --  it into the product of Length and Component_Size. We need to do so
           --  because bit-packed arrays are represented internally as arrays of
           --  System.Unsigned_Types.Packed_Byte for code generation purposes so
--- 9095,9101 ----
           then
              Set_Actual_Designated_Subtype (Pref, Get_Actual_Subtype (Pref));
  
!          --  If Size is applied to a slice of a bit-packed array, we rewrite
           --  it into the product of Length and Component_Size. We need to do so
           --  because bit-packed arrays are represented internally as arrays of
           --  System.Unsigned_Types.Packed_Byte for code generation purposes so
*************** package body Exp_Attr is
*** 8627,8632 ****
--- 9111,9137 ----
                    Prefix         => Duplicate_Subexpr (Pref, Name_Req => True),
                    Attribute_Name => Name_Component_Size)));
              Analyze_And_Resolve (N, Typ);
+ 
+          --  If Size is applied to a formal parameter that has got a dynamic
+          --  indication of its constrained status, return the "constrained"
+          --  size if the status is True, that is to say the size based on the
+          --  constraints of the actual, and the "unconstrained" size if the
+          --  status is False, that is to say the Object_Size of the type.
+ 
+          elsif Is_Entity_Name (Pref)
+            and then Is_Formal (Entity (Pref))
+            and then Present (Extra_Constrained (Entity (Pref)))
+          then
+             Rewrite (N,
+               Make_If_Expression (Loc,
+                 Expressions => New_List (
+                   New_Occurrence_Of (Extra_Constrained (Entity (Pref)), Loc),
+                   Relocate_Node (N),
+                   Make_Attribute_Reference (Loc,
+                     Prefix         => New_Occurrence_Of (Etype (Pref), Loc),
+                     Attribute_Name => Name_Object_Size))));
+             Set_Analyzed (Next (First (Expressions (N))));
+             Analyze_And_Resolve (N, Typ);
           end if;
  
           --  Apply the required checks last, after rewriting has taken place
*************** package body Exp_Attr is
*** 8979,8997 ****
           --  In particular, we do not want the entity for a subtype.
        begin
           if Nam = TSS_Stream_Read then
!             Ent := Cached_Attribute_Ops.Read_Map.Get (U_Base);
           elsif Nam = TSS_Stream_Write then
!             Ent := Cached_Attribute_Ops.Write_Map.Get (U_Base);
           elsif Nam = TSS_Stream_Input then
!             Ent := Cached_Attribute_Ops.Input_Map.Get (U_Base);
           elsif Nam = TSS_Stream_Output then
!             Ent := Cached_Attribute_Ops.Output_Map.Get (U_Base);
           end if;
        end;
  
-       Cached_Attribute_Ops.Validate_Cached_Candidate
-         (Subp => Ent, Attr_Ref => Attr_Ref);
- 
        if Present (Ent) then
           return Ent;
        end if;
--- 9484,9503 ----
           --  In particular, we do not want the entity for a subtype.
        begin
           if Nam = TSS_Stream_Read then
!             Ent := Cached_Attribute_Ops.Get_From_Read_Map
!                      (U_Base, Attr_Ref => Attr_Ref);
           elsif Nam = TSS_Stream_Write then
!             Ent := Cached_Attribute_Ops.Get_From_Write_Map
!                      (U_Base, Attr_Ref => Attr_Ref);
           elsif Nam = TSS_Stream_Input then
!             Ent := Cached_Attribute_Ops.Get_From_Input_Map
!                      (U_Base, Attr_Ref => Attr_Ref);
           elsif Nam = TSS_Stream_Output then
!             Ent := Cached_Attribute_Ops.Get_From_Output_Map
!                      (U_Base, Attr_Ref => Attr_Ref);
           end if;
        end;
  
        if Present (Ent) then
           return Ent;
        end if;
*************** package body Exp_Attr is
*** 9420,9425 ****
--- 9926,9956 ----
        return Empty;
     end Get_Stream_Convert_Pragma;
  
+    ----------------------
+    -- Interunit_Ref_OK --
+    ----------------------
+ 
+    function Interunit_Ref_OK
+      (Subp_Unit, Attr_Ref_Unit : Node_Id) return Boolean is
+ 
+       function Unit_Is_Body_Or_Subunit (U : Node_Id) return Boolean is
+         (Is_Body (Unit (U)) or else Nkind (Unit (U)) = N_Subunit);
+    begin
+       if not In_Same_Extended_Unit (Subp_Unit, Attr_Ref_Unit) then
+          return False;
+ 
+       --  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.
+ 
+       elsif Unit_Is_Body_Or_Subunit (Subp_Unit)
+         and then not Unit_Is_Body_Or_Subunit (Attr_Ref_Unit)
+       then
+          return False;
+       end if;
+ 
+       return True;
+    end Interunit_Ref_OK;
+ 
     ---------------------------------
     -- Is_Constrained_Packed_Array --
     ---------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_attr.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_attr.ads
*** gcc-15.2.0/gcc/ada/exp_attr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_attr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_cg.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_cg.adb
*** gcc-15.2.0/gcc/ada/exp_cg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_cg.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 38,44 ****
  with Sem_Disp;       use Sem_Disp;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 37,42 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_cg.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_cg.ads
*** gcc-15.2.0/gcc/ada/exp_cg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_cg.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2010-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch10.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch10.ads
*** gcc-15.2.0/gcc/ada/exp_ch10.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch10.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch11.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch11.adb
*** gcc-15.2.0/gcc/ada/exp_ch11.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch11.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Rtsfind;        use Rtsfind;
*** 43,49 ****
  with Sem;            use Sem;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 42,47 ----
*************** package body Exp_Ch11 is
*** 1031,1037 ****
        --  "hoisted" (i.e., Is_Statically_Allocated and not Is_Library_Level)
        --  entity must also be either Library_Level or hoisted. It turns out
        --  that this would be incompatible with the current treatment of an
!       --  object which is local to a subprogram, subject to an Export pragma,
        --  not subject to an address clause, and whose declaration contains
        --  references to other local (non-hoisted) objects (e.g., in the initial
        --  value expression).
--- 1029,1035 ----
        --  "hoisted" (i.e., Is_Statically_Allocated and not Is_Library_Level)
        --  entity must also be either Library_Level or hoisted. It turns out
        --  that this would be incompatible with the current treatment of an
!       --  object that is local to a subprogram, subject to an Export pragma,
        --  not subject to an address clause, and whose declaration contains
        --  references to other local (non-hoisted) objects (e.g., in the initial
        --  value expression).
*************** package body Exp_Ch11 is
*** 1194,1201 ****
                     Prefix         => New_Occurrence_Of (Id, Loc),
                     Attribute_Name => Name_Unrestricted_Access)))));
  
-          Set_Register_Exception_Call (Id, First (L));
- 
           if not Is_Library_Level_Entity (Id) then
              Flag_Id :=
                Make_Defining_Identifier (Loc,
--- 1192,1197 ----
*************** package body Exp_Ch11 is
*** 1281,1307 ****
  
        --  Add cleanup actions if required. No cleanup actions are needed in
        --  thunks associated with interfaces, because they only displace the
!       --  pointer to the object. For extended return statements, we need
!       --  cleanup actions if the Handled_Statement_Sequence contains generated
!       --  objects of controlled types, for example. We do not want to clean up
!       --  the return object.
  
!       if Nkind (Parent (N)) not in N_Accept_Statement
!                                  | N_Extended_Return_Statement
!                                  | N_Package_Body
          and then not Delay_Cleanups (Current_Scope)
          and then not Is_Thunk (Current_Scope)
        then
           Expand_Cleanup_Actions (Parent (N));
- 
-       elsif Nkind (Parent (N)) = N_Extended_Return_Statement
-         and then Handled_Statement_Sequence (Parent (N)) = N
-         and then not Delay_Cleanups (Current_Scope)
-       then
-          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
--- 1277,1293 ----
  
        --  Add cleanup actions if required. No cleanup actions are needed in
        --  thunks associated with interfaces, because they only displace the
!       --  pointer to the object.
  
!       if Nkind (Parent (N)) not in N_Accept_Statement | N_Package_Body
          and then not Delay_Cleanups (Current_Scope)
          and then not Is_Thunk (Current_Scope)
        then
           Expand_Cleanup_Actions (Parent (N));
        end if;
  
+       --  Protect the Finally_Statements with abort defer/undefer
+ 
        if Present (Finally_Statements (N)) and then Abort_Allowed then
           if Exceptions_OK then
              Set_Finally_Statements
*************** package body Exp_Ch11 is
*** 1560,1566 ****
              Build_Location_String (Buf, Loc);
  
              --  If the exception is a renaming, use the exception that it
!             --  renames (which might be a predefined exception, e.g.).
  
              if Present (Renamed_Entity (Id)) then
                 Id := Renamed_Entity (Id);
--- 1546,1552 ----
              Build_Location_String (Buf, Loc);
  
              --  If the exception is a renaming, use the exception that it
!             --  renames (which might be a predefined exception).
  
              if Present (Renamed_Entity (Id)) then
                 Id := Renamed_Entity (Id);
*************** package body Exp_Ch11 is
*** 1972,1977 ****
--- 1958,1965 ----
           when CE_Tag_Check_Failed =>
              Add_Str_To_Name_Buffer ("CE_Tag_Check");
  
+          when PE_Abstract_Type_Component =>
+             Add_Str_To_Name_Buffer ("PE_Abstract_Type_Component");
           when PE_Access_Before_Elaboration =>
              Add_Str_To_Name_Buffer ("PE_Access_Before_Elaboration");
           when PE_Accessibility_Check_Failed =>
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch11.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch11.ads
*** gcc-15.2.0/gcc/ada/exp_ch11.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch11.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch12.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch12.adb
*** gcc-15.2.0/gcc/ada/exp_ch12.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch12.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Exp_Util;       use Exp_Util;
  with Nmake;          use Nmake;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 25,33 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch12.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch12.ads
*** gcc-15.2.0/gcc/ada/exp_ch12.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch12.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch13.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch13.adb
*** gcc-15.2.0/gcc/ada/exp_ch13.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch13.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Ch3;        use Exp_Ch3;
--- 25,30 ----
*************** with Sem_Ch7;        use Sem_Ch7;
*** 47,53 ****
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 46,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch13.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch13.ads
*** gcc-15.2.0/gcc/ada/exp_ch13.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch13.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch2.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch2.adb
*** gcc-15.2.0/gcc/ada/exp_ch2.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch2.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Eval;       use Sem_Eval;
*** 45,51 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 44,49 ----
*************** package body Exp_Ch2 is
*** 117,124 ****
     procedure Expand_Renaming (N : Node_Id);
     --  For renamings, just replace the identifier by the corresponding
     --  named expression. Note that this has been evaluated (see routine
!    --  Exp_Ch8.Expand_N_Object_Renaming.Evaluate_Name) so this gives
!    --  the correct renaming semantics.
  
     --------------------------
     -- Expand_Current_Value --
--- 115,121 ----
     procedure Expand_Renaming (N : Node_Id);
     --  For renamings, just replace the identifier by the corresponding
     --  named expression. Note that this has been evaluated (see routine
!    --  Exp_Util.Evaluate_Name) so this gives correct renaming semantics.
  
     --------------------------
     -- Expand_Current_Value --
*************** package body Exp_Ch2 is
*** 706,714 ****
        T : constant Entity_Id := Etype (N);
  
     begin
        Rewrite (N, New_Copy_Tree (Renamed_Object (E)));
  
!       --  We mark the copy as unanalyzed, so that it is sure to be reanalyzed
        --  at the top level. This is needed in the packed case since we
        --  specifically avoided expanding packed array references when the
        --  renaming declaration was analyzed.
--- 703,717 ----
        T : constant Entity_Id := Etype (N);
  
     begin
+       --  Mark the entity as referenced since this reference is going away
+ 
+       Set_Referenced (E);
+ 
+       --  Now rewrite the reference as a copy of the renamed object
+ 
        Rewrite (N, New_Copy_Tree (Renamed_Object (E)));
  
!       --  Mark the copy as unanalyzed to make sure that it is reanalyzed
        --  at the top level. This is needed in the packed case since we
        --  specifically avoided expanding packed array references when the
        --  renaming declaration was analyzed.
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch2.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch2.ads
*** gcc-15.2.0/gcc/ada/exp_ch2.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch2.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch3.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch3.adb
*** gcc-15.2.0/gcc/ada/exp_ch3.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch3.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 28,33 ----
*************** with Sem_Res;        use Sem_Res;
*** 69,82 ****
  with Sem_SCIL;       use Sem_SCIL;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
! with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
  with Snames;         use Snames;
- with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
  with Validsw;        use Validsw;
  
  package body Exp_Ch3 is
  
--- 68,81 ----
  with Sem_SCIL;       use Sem_SCIL;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
! with Sem_Warn;       use Sem_Warn;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
  with Snames;         use Snames;
  with Ttypes;         use Ttypes;
  with Validsw;        use Validsw;
+ with Warnsw;         use Warnsw;
  
  package body Exp_Ch3 is
  
*************** package body Exp_Ch3 is
*** 95,100 ****
--- 94,103 ----
     --  used for attachment of any actions required in its construction.
     --  It also supplies the source location used for the procedure.
  
+    procedure Build_Implicit_Copy_Constructor (N : Node_Id; Typ : Entity_Id);
+    --  Build default copy constructor. N is the type declaration node, and Typ
+    --  is the corresponding entity for the record type.
+ 
     function Build_Discriminant_Formals
       (Rec_Id : Entity_Id;
        Use_Dl : Boolean) return List_Id;
*************** package body Exp_Ch3 is
*** 209,240 ****
        --  component that requires late initialization; this includes
        --  components of ancestor types.
  
-       type Initialization_Mode is
-         (Full_Init, Full_Init_Except_Tag, Early_Init_Only, Late_Init_Only);
-       --  The initialization routine for a tagged type is passed in a
-       --  formal parameter of this type, indicating what initialization
-       --  is to be performed. This parameter defaults to Full_Init in all
-       --  cases except when the init proc of a type extension (let's call
-       --  that type T2) calls the init proc of its parent (let's call that
-       --  type T1). In that case, one of the other 3 values will
-       --  be passed in. In all three of those cases, the Tag component has
-       --  already been initialized before the call and is therefore not to be
-       --  modified. T2's init proc will either call T1's init proc
-       --  once (with Full_Init_Except_Tag as the parameter value) or twice
-       --  (first with Early_Init_Only, then later with Late_Init_Only),
-       --  depending on the result returned by Has_Late_Init_Component (T1).
-       --  In the latter case, the first call does not initialize any
-       --  components that require late initialization and the second call
-       --  then performs that deferred initialization.
-       --  Strictly speaking, the formal parameter subtype is actually Natural
-       --  but calls will only pass in values corresponding to literals
-       --  of this enumeration type.
- 
-       function Make_Mode_Literal
-         (Loc : Source_Ptr; Mode : Initialization_Mode) return Node_Id
-       is (Make_Integer_Literal (Loc, Initialization_Mode'Pos (Mode)));
-       --  Generate an integer literal for a given mode value.
- 
        function Tag_Init_Condition
          (Loc : Source_Ptr;
           Init_Control_Formal : Entity_Id) return Node_Id;
--- 212,217 ----
*************** package body Exp_Ch3 is
*** 340,348 ****
     --     typSO          provides result of 'Output attribute
     --     typPI          provides result of 'Put_Image attribute
     --
!    --  The following entries are additionally present for non-limited tagged
!    --  types, and implement additional dispatching operations for predefined
!    --  operations:
     --
     --     _equality      implements "=" operator
     --     _assign        implements assignment operation
--- 317,325 ----
     --     typSO          provides result of 'Output attribute
     --     typPI          provides result of 'Put_Image attribute
     --
!    --  The following entries implement additional dispatching operations for
!    --  predefined operations. Deep finalization is present on all tagged types;
!    --  the others only on nonlimited tagged types:
     --
     --     _equality      implements "=" operator
     --     _assign        implements assignment operation
*************** package body Exp_Ch3 is
*** 399,405 ****
       (Tag_Typ    : Entity_Id;
        Renamed_Eq : Entity_Id) return List_Id;
     --  Create the bodies of the predefined primitives that are described in
!    --  Predefined_Primitive_Specs. When not empty, Renamed_Eq must denote
     --  the defining unit name of the type's predefined equality as returned
     --  by Make_Predefined_Primitive_Specs.
  
--- 376,382 ----
       (Tag_Typ    : Entity_Id;
        Renamed_Eq : Entity_Id) return List_Id;
     --  Create the bodies of the predefined primitives that are described in
!    --  Make_Predefined_Primitive_Specs. When not empty, Renamed_Eq must denote
     --  the defining unit name of the type's predefined equality as returned
     --  by Make_Predefined_Primitive_Specs.
  
*************** package body Exp_Ch3 is
*** 407,412 ****
--- 384,393 ----
     --  Freeze entities of all predefined primitive operations. This is needed
     --  because the bodies of these operations do not normally do any freezing.
  
+    function Constructor_Freeze (Typ : Entity_Id) return List_Id;
+    --  Freeze all constructors of the type Tag_Typ. Otherwise, constructors
+    --  would not be available at freeze point.
+ 
     --------------------------
     -- Adjust_Discriminants --
     --------------------------
*************** package body Exp_Ch3 is
*** 671,677 ****
        --------------------
  
        function Init_Component return List_Id is
!          Comp : Node_Id;
  
        begin
           Comp :=
--- 652,659 ----
        --------------------
  
        function Init_Component return List_Id is
!          Comp   : Node_Id;
!          Result : List_Id;
  
        begin
           Comp :=
*************** package body Exp_Ch3 is
*** 681,687 ****
  
           if Has_Default_Aspect (A_Type) then
              Set_Assignment_OK (Comp);
!             return New_List (
                Make_Assignment_Statement (Loc,
                  Name       => Comp,
                  Expression =>
--- 663,669 ----
  
           if Has_Default_Aspect (A_Type) then
              Set_Assignment_OK (Comp);
!             Result := New_List (
                Make_Assignment_Statement (Loc,
                  Name       => Comp,
                  Expression =>
*************** package body Exp_Ch3 is
*** 690,696 ****
  
           elsif Comp_Simple_Init then
              Set_Assignment_OK (Comp);
!             return New_List (
                Make_Assignment_Statement (Loc,
                  Name       => Comp,
                  Expression =>
--- 672,678 ----
  
           elsif Comp_Simple_Init then
              Set_Assignment_OK (Comp);
!             Result := New_List (
                Make_Assignment_Statement (Loc,
                  Name       => Comp,
                  Expression =>
*************** package body Exp_Ch3 is
*** 701,707 ****
  
           else
              Clean_Task_Names (Comp_Type, Proc_Id);
!             return
                Build_Initialization_Call
                  (N            => Nod,
                   Id_Ref       => Comp,
--- 683,689 ----
  
           else
              Clean_Task_Names (Comp_Type, Proc_Id);
!             Result :=
                Build_Initialization_Call
                  (N            => Nod,
                   Id_Ref       => Comp,
*************** package body Exp_Ch3 is
*** 709,714 ****
--- 691,709 ----
                   In_Init_Proc => True,
                   Enclos_Type  => A_Type);
           end if;
+ 
+          --  Raise Program_Error in the init procedure of arrays when the type
+          --  of their components is a mutably tagged abstract class-wide type.
+ 
+          if Is_Class_Wide_Equivalent_Type (Component_Type (A_Type))
+            and then Is_Abstract_Type (Comp_Type)
+          then
+             Append_To (Result,
+               Make_Raise_Program_Error (Loc,
+                 Reason => PE_Abstract_Type_Component));
+          end if;
+ 
+          return Result;
        end Init_Component;
  
        ------------------------
*************** package body Exp_Ch3 is
*** 926,935 ****
                 Make_Handled_Sequence_Of_Statements (Loc,
                   Statements => Body_Stmts)));
  
!          Mutate_Ekind       (Proc_Id, E_Procedure);
!          Set_Is_Public      (Proc_Id, Is_Public (A_Type));
!          Set_Is_Internal    (Proc_Id);
!          Set_Has_Completion (Proc_Id);
  
           if not Debug_Generated_Code then
              Set_Debug_Info_Off (Proc_Id);
--- 921,931 ----
                 Make_Handled_Sequence_Of_Statements (Loc,
                   Statements => Body_Stmts)));
  
!          Mutate_Ekind         (Proc_Id, E_Procedure);
!          Set_Is_Public        (Proc_Id, Is_Public (A_Type));
!          Set_Is_Internal      (Proc_Id);
!          Set_Has_Completion   (Proc_Id);
!          Freeze_Extra_Formals (Proc_Id);
  
           if not Debug_Generated_Code then
              Set_Debug_Info_Off (Proc_Id);
*************** package body Exp_Ch3 is
*** 1397,1402 ****
--- 1393,1411 ----
           --  is imported or not.
  
           if not Restriction_Active (No_Default_Initialization) then
+             --  If the type requires construction and the object being
+             --  initialized is an allocator that comes from source, then use
+             --  the parameterless constructor.
+ 
+             if Nkind (N) = N_Allocator
+               and then Comes_From_Source (N)
+               and then Needs_Construction (Typ)
+             then
+                return
+                  Make_Attribute_Reference (Loc,
+                    Prefix         => New_Occurrence_Of (Typ, Loc),
+                    Attribute_Name => Name_Make);
+             end if;
  
              --  If the values of the components are compile-time known, use
              --  their prebuilt aggregate form directly.
*************** package body Exp_Ch3 is
*** 1762,1767 ****
--- 1771,1987 ----
        end if;
     end Build_Or_Copy_Discr_Checking_Funcs;
  
+    -------------------------------------
+    -- Build_Implicit_Copy_Constructor --
+    -------------------------------------
+ 
+    procedure Build_Implicit_Copy_Constructor (N : Node_Id; Typ : Entity_Id) is
+       Loc     : constant Source_Ptr := Sloc (Typ);
+       Copy_Id : Entity_Id;
+ 
+       Comp_List, Comp_Decl : Node_Id;
+       Comp_Id, Comp_Typ    : Entity_Id;
+ 
+       Body_Stmts, Parameters, Aspect_Specs : List_Id;
+       Spec_Node, Stmt                      : Node_Id;
+       Self, From                           : Entity_Id;
+    begin
+       --  Only build copy constructor for user-defined non-limited tagged
+       --  record types that needs construction without having declared a copy
+       --  constructor already, or without having it explicitly removed. This
+       --  implicit copy needs to call first the parent's copy constructor (if
+       --  derived), second to copy field-by-field the components, and third to
+       --  call their respective copy constructors if necessary.
+ 
+       if not Comes_From_Source (N)
+         or else Is_Limited_Type (Typ)
+         or else not Is_Tagged_Type (Typ)
+         or else not Needs_Construction (Typ)
+         or else Has_Copy_Constructor (Typ, Allow_Removed => True)
+       then
+          return;
+       end if;
+ 
+       if Is_Derived_Type (Typ) then
+          Comp_List :=
+            Component_List (Record_Extension_Part (Type_Definition (N)));
+       else
+          Comp_List := Component_List (Type_Definition (N));
+       end if;
+ 
+       --  Here, there is still a possibility that an implicit copy constructor
+       --  is actually not needed.
+ 
+       declare
+          Found : Boolean := False;
+       begin
+          if Present (Comp_List) then
+             Comp_Decl := First_Non_Pragma (Component_Items (Comp_List));
+             while not Found and then Present (Comp_Decl) loop
+                Comp_Id := Defining_Identifier (Comp_Decl);
+                Comp_Typ := Etype (Comp_Id);
+                if Has_Copy_Constructor (Comp_Typ) then
+                   Found := True;
+                end if;
+                Next_Non_Pragma (Comp_Decl);
+             end loop;
+          end if;
+ 
+          --  If Found is false, then there is no component in the current type
+          --  with a copy constructor. If also the type is either not derived or
+          --  its parent has no copy constructor, then there is no need for a
+          --  copy constructor for the current type as its behavior would be
+          --  identical to the byte-wise copy provided by assignment.
+ 
+          if not Found
+            and then (if Is_Derived_Type (Typ)
+                       then not Has_Copy_Constructor (Parent_Subtype (Typ)))
+          then
+             return;
+          end if;
+       end;
+ 
+       Copy_Id :=
+         Make_Defining_Identifier (Loc,
+           Direct_Attribute_Definition_Name (Typ, Name_Constructor));
+       Mutate_Ekind (Copy_Id, E_Procedure);
+ 
+       if not Debug_Generated_Code then
+          Set_Debug_Info_Off (Copy_Id);
+       end if;
+ 
+       --  The copy constructor has the following profile:
+       --    procedure T'Constructor (Self : in out T; From : T);
+ 
+       Self := Make_Defining_Identifier (Loc, Name_Self);
+       From := Make_Defining_Identifier (Loc, Name_From);
+ 
+       Parameters := New_List (
+         Make_Parameter_Specification (Loc,
+           Defining_Identifier => Self,
+           In_Present          => True,
+           Out_Present         => True,
+           Parameter_Type      => New_Occurrence_Of (Typ, Loc)),
+         Make_Parameter_Specification (Loc,
+           Defining_Identifier => From,
+           In_Present          => True,
+           Parameter_Type      => New_Occurrence_Of (Typ, Loc)));
+ 
+       --  The first thing to do in the implicit copy constructor is to copy
+       --  components field-by-field, the parent copy constructor call is
+       --  prepended later via the 'Super aspect.
+ 
+       Body_Stmts := New_List;
+       if Present (Comp_List) then
+          Comp_Decl := First_Non_Pragma (Component_Items (Comp_List));
+          while Present (Comp_Decl) loop
+             Comp_Id := Defining_Identifier (Comp_Decl);
+             Comp_Typ := Etype (Comp_Id);
+ 
+             if Chars (Comp_Id) not in Name_uParent | Name_uTag then
+                Stmt :=
+                  Make_Assignment_Statement (Loc,
+                    Name       =>
+                      Make_Selected_Component (Loc,
+                        Prefix        => New_Occurrence_Of (Self, Loc),
+                        Selector_Name => New_Occurrence_Of (Comp_Id, Loc)),
+                    Expression =>
+                      Make_Selected_Component (Loc,
+                        Prefix        => New_Occurrence_Of (From, Loc),
+                        Selector_Name => New_Occurrence_Of (Comp_Id, Loc)));
+                Set_Assignment_OK (Name (Stmt));
+                Set_No_Ctrl_Actions (Stmt);
+                Append_To (Body_Stmts, Stmt);
+             end if;
+ 
+             Next_Non_Pragma (Comp_Decl);
+          end loop;
+ 
+          --  Then, call the copy constructor for each component that needs
+          --  construction and has a copy constructor.
+ 
+          Comp_Decl := First_Non_Pragma (Component_Items (Comp_List));
+          while Present (Comp_Decl) loop
+             Comp_Id := Defining_Identifier (Comp_Decl);
+             Comp_Typ := Etype (Comp_Id);
+ 
+             --  For each component that has a copy constructor, generate:
+             --    Self.Comp_Id := Comp_Typ'Make (From.Comp_Id);
+ 
+             if Chars (Comp_Id) /= Name_uParent
+               and then Needs_Construction (Comp_Typ)
+               and then Has_Copy_Constructor (Comp_Typ)
+             then
+                Stmt :=
+                  Make_Assignment_Statement (Loc,
+                    Name       =>
+                      Make_Selected_Component (Loc,
+                        Prefix        => New_Occurrence_Of (Self, Loc),
+                        Selector_Name => New_Occurrence_Of (Comp_Id, Loc)),
+                    Expression =>
+                      Make_Attribute_Reference (Loc,
+                        Prefix         => New_Occurrence_Of (Comp_Typ, Loc),
+                        Attribute_Name => Name_Make,
+                        Expressions    => New_List (
+                          Make_Selected_Component (Loc,
+                            Prefix        => New_Occurrence_Of (From, Loc),
+                            Selector_Name =>
+                              New_Occurrence_Of (Comp_Id, Loc)))));
+                Set_Assignment_OK (Name (Stmt));
+                Append_To (Body_Stmts, Stmt);
+             end if;
+ 
+             --  Components that do not need construction or lack a copy
+             --  constructor are simply skipped since the expansion of a
+             --  constructor also takes care of default copies/initializations.
+ 
+             Next_Non_Pragma (Comp_Decl);
+          end loop;
+       end if;
+ 
+       --  Prepend the call to the parent's copy constructor if derived
+ 
+       if Is_Derived_Type (Typ)
+         and then Has_Copy_Constructor (Parent_Subtype (Typ))
+       then
+          Aspect_Specs := New_List
+            (Make_Aspect_Specification (Loc,
+               Identifier => Make_Identifier (Loc, Name_Super),
+               Expression =>
+                 Make_Aggregate (Loc,
+                   Expressions => New_List (
+                     Make_Type_Conversion (Loc,
+                       Subtype_Mark =>
+                         New_Occurrence_Of (Parent_Subtype (Typ), Loc),
+                       Expression   => New_Occurrence_Of (From, Loc))),
+                   Is_Parenthesis_Aggregate => True,
+                   Is_Homogeneous_Aggregate => True)));
+       else
+          Aspect_Specs := No_List;
+       end if;
+ 
+       Spec_Node := New_Node (N_Procedure_Specification, Loc);
+       Set_Defining_Unit_Name (Spec_Node, Copy_Id);
+       Set_Parameter_Specifications (Spec_Node, Parameters);
+       Freeze_Extra_Formals (Copy_Id);
+ 
+       declare
+          Ignore : Node_Id;
+       begin
+          Ignore :=
+            Make_Subprogram_Body (Loc,
+              Specification => Spec_Node,
+              Aspect_Specifications => Aspect_Specs,
+              Handled_Statement_Sequence =>
+                Make_Handled_Sequence_Of_Statements (Loc, Body_Stmts));
+       end;
+ 
+       Set_Is_Public (Copy_Id, Is_Public (Typ));
+       Set_Is_Internal (Copy_Id);
+       Set_Is_Constructor (Copy_Id);
+       Set_Init_Proc (Typ, Copy_Id);
+    end Build_Implicit_Copy_Constructor;
+ 
     --------------------------------
     -- Build_Discriminant_Formals --
     --------------------------------
*************** package body Exp_Ch3 is
*** 2128,2134 ****
           end if;
  
           if Policy_In_Effect (Name_Assert) = Name_Check
!            and then not Predicates_Ignored (Etype (Discr))
           then
              Prepend_To (Res, Make_Predicate_Check (Typ, Val));
           end if;
--- 2348,2354 ----
           end if;
  
           if Policy_In_Effect (Name_Assert) = Name_Check
!            and then not Predicates_Ignored_In_Codegen (Etype (Discr))
           then
              Prepend_To (Res, Make_Predicate_Check (Typ, Val));
           end if;
*************** package body Exp_Ch3 is
*** 2464,2477 ****
          and then Nkind (Id_Ref) = N_Selected_Component
          and then Chars (Selector_Name (Id_Ref)) = Name_uParent
        then
!          declare
!             use Initialization_Control;
!          begin
!             Append_To (Args,
!               (if Present (Init_Control_Actual)
!                then Init_Control_Actual
!                else Make_Mode_Literal (Loc, Full_Init_Except_Tag)));
!          end;
        elsif Present (Constructor_Ref) then
           Append_List_To (Args,
             New_Copy_List (Parameter_Associations (Constructor_Ref)));
--- 2684,2693 ----
          and then Nkind (Id_Ref) = N_Selected_Component
          and then Chars (Selector_Name (Id_Ref)) = Name_uParent
        then
!          Append_To (Args,
!            (if Present (Init_Control_Actual)
!             then Init_Control_Actual
!             else Make_Mode_Literal (Loc, Full_Init_Except_Tag)));
        elsif Present (Constructor_Ref) then
           Append_List_To (Args,
             New_Copy_List (Parameter_Associations (Constructor_Ref)));
*************** package body Exp_Ch3 is
*** 2652,2662 ****
                 --  may have an incomplete type. In that case, it must also be
                 --  replaced by the formal of the Init_Proc.
  
!                if Nkind (Parent (Rec_Type)) = N_Full_Type_Declaration
!                  and then Present (Incomplete_View (Parent (Rec_Type)))
!                then
                    Append_Elmt (
!                     N  => Incomplete_View (Parent (Rec_Type)),
                      To => Map);
                    Append_Elmt (
                      N  => Defining_Identifier
--- 2868,2876 ----
                 --  may have an incomplete type. In that case, it must also be
                 --  replaced by the formal of the Init_Proc.
  
!                if Present (Incomplete_View (Rec_Type)) then
                    Append_Elmt (
!                     N  => Incomplete_View (Rec_Type),
                      To => Map);
                    Append_Elmt (
                      N  => Defining_Identifier
*************** package body Exp_Ch3 is
*** 2677,2685 ****
  
           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.
--- 2891,2900 ----
  
           Exp_Q := Unqualify (Exp);
  
!          --  Adjust the component if controlled, except if the expression is an
!          --  aggregate that will be expanded inline (but note that the case of
!          --  container aggregates does require component adjustment), or else
!          --  a function call whose result is adjusted in the called function.
           --  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.
*************** package body Exp_Ch3 is
*** 2688,2694 ****
             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));
  
--- 2903,2910 ----
             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 not (Back_End_Return_Slot
!                           and then Nkind (Exp) = N_Function_Call)
           then
              Set_No_Finalize_Actions (First (Res));
  
*************** package body Exp_Ch3 is
*** 3188,3193 ****
--- 3404,3410 ----
           end if;
  
           Set_Parameter_Specifications (Proc_Spec_Node, Parameters);
+          Freeze_Extra_Formals (Proc_Id);
           Set_Specification (Body_Node, Proc_Spec_Node);
           Set_Declarations (Body_Node, Decls);
  
*************** package body Exp_Ch3 is
*** 3292,3298 ****
              end if;
           end if;
  
!          --  Add here the assignment to instantiate the Tag
  
           --  The assignment corresponds to the code:
  
--- 3509,3515 ----
              end if;
           end if;
  
!          --  Add here the assignment to initialize the Tag
  
           --  The assignment corresponds to the code:
  
*************** package body Exp_Ch3 is
*** 3325,3330 ****
--- 3542,3558 ----
                   Make_Tag_Assignment_From_Type
                     (Loc, Make_Identifier (Loc, Name_uInit), Rec_Type));
  
+                --  Ensure that Program_Error is raised if a mutably class-wide
+                --  abstract tagged type is initialized by default.
+ 
+                if Is_Abstract_Type (Rec_Type)
+                  and then Is_Mutably_Tagged_Type (Class_Wide_Type (Rec_Type))
+                then
+                   Append_To (Init_Tags_List,
+                     Make_Raise_Program_Error (Loc,
+                       Reason => PE_Abstract_Type_Component));
+                end if;
+ 
                 --  Ada 2005 (AI-251): Initialize the secondary tags components
                 --  located at fixed positions (tags whose position depends on
                 --  variable size components are initialized later ---see below)
*************** package body Exp_Ch3 is
*** 3746,3751 ****
--- 3974,3989 ----
                 --  Explicit initialization
  
                 if Present (Expression (Decl)) then
+ 
+                   --  Ensure that the type of the expression initializing a
+                   --  mutably tagged class-wide type component is frozen.
+ 
+                   if Nkind (Expression (Decl)) = N_Qualified_Expression
+                     and then Is_Class_Wide_Equivalent_Type (Etype (Id))
+                   then
+                      Freeze_Before (N, Etype (Expression (Decl)));
+                   end if;
+ 
                    if Is_CPP_Constructor_Call (Expression (Decl)) then
                       Actions :=
                         Build_Initialization_Call
*************** package body Exp_Ch3 is
*** 3765,3770 ****
--- 4003,4023 ----
                       Actions := Build_Assignment (Id, Expression (Decl));
                    end if;
  
+                --  Expand components with constructors to have the 'Make
+                --  attribute.
+ 
+                elsif Needs_Construction (Typ)
+                  and then Has_Parameterless_Constructor (Typ)
+                then
+                   Set_Expression (Decl,
+                     Make_Attribute_Reference (Loc,
+                       Attribute_Name => Name_Make,
+                       Prefix         =>
+                         Subtype_Indication
+                           (Component_Definition (Decl))));
+                   Analyze (Expression (Decl));
+                   Actions := Build_Assignment (Id, Expression (Decl));
+ 
                 --  CPU, Dispatching_Domain, Priority, and Secondary_Stack_Size
                 --  components are filled in with the corresponding rep-item
                 --  expression of the concurrent type (if any).
*************** package body Exp_Ch3 is
*** 3902,3907 ****
--- 4155,4169 ----
                            Discr_Map           => Discr_Map,
                            Init_Control_Actual => Init_Control_Actual);
  
+                      if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (Id))
+                        and then not Is_Parent
+                        and then Is_Abstract_Type (Typ)
+                      then
+                         Append_To (Init_Call_Stmts,
+                           Make_Raise_Program_Error (Comp_Loc,
+                             Reason => PE_Abstract_Type_Component));
+                      end if;
+ 
                       if Is_Parent then
                          --  This is tricky. At first it looks like
                          --  we are going to end up with nested
*************** package body Exp_Ch3 is
*** 4107,4113 ****
           if Present (Parent_Id) then
              declare
                 Parent_Loc : constant Source_Ptr := Sloc (Parent (Parent_Id));
-                use Initialization_Control;
              begin
                 --  We are building the init proc for a type extension.
                 --  Call the parent type's init proc a second time, this
--- 4369,4374 ----
*************** package body Exp_Ch3 is
*** 4495,4500 ****
--- 4756,4763 ----
           --     since the call is generated, there had better be a routine
           --     at the other end of the call, even if it does nothing).
  
+          --  10. The type needs construction with constructors.
+ 
           --  Note: the reason we exclude the CPP_Class case is because in this
           --  case the initialization is performed by the C++ constructors, and
           --  the IP is built by Set_CPP_Constructors.
*************** package body Exp_Ch3 is
*** 4510,4515 ****
--- 4773,4779 ----
             or else Is_Tagged_Type (Rec_Id)
             or else Is_Concurrent_Record_Type (Rec_Id)
             or else Has_Task (Rec_Id)
+            or else Needs_Construction (Rec_Id)
           then
              return True;
           end if;
*************** package body Exp_Ch3 is
*** 4522,4527 ****
--- 4786,4796 ----
              if Present (Expression (Comp_Decl))
                or else Has_Non_Null_Base_Init_Proc (Typ)
                or else Component_Needs_Simple_Initialization (Typ)
+ 
+                --  Mutably tagged class-wide types require the init-proc since
+                --  it takes care of their default initialization.
+ 
+               or else Is_Mutably_Tagged_CW_Equivalent_Type (Typ)
              then
                 return True;
              end if;
*************** package body Exp_Ch3 is
*** 5093,5098 ****
--- 5362,5393 ----
           if Is_Library_Level_Entity (Typ) then
              Set_Is_Public (Op);
           end if;
+ 
+       --  Otherwise, the result is defined in terms of the primitive equals
+       --  operator (RM 4.5.2 (24/3)). Report a warning if some component of
+       --  the untagged record has defined a user-defined "=", because it can
+       --  be surprising that the predefined "=" takes precedence over it.
+       --  This warning is not reported when Build_Eq is True because the
+       --  expansion of the built body will call Expand_Composite_Equality
+       --  that will report it if necessary.
+ 
+       elsif Warn_On_Ignored_Equality then
+          Comp := First_Component (Typ);
+ 
+          while Present (Comp) loop
+             if Present (User_Defined_Eq (Etype (Comp)))
+               and then not Is_Record_Type (Underlying_Type (Etype (Comp)))
+               and then not Is_Intrinsic_Subprogram
+                              (User_Defined_Eq (Etype (Comp)))
+             then
+                Warn_On_Ignored_Equality_Operator
+                  (Typ      => Typ,
+                   Comp_Typ => Etype (Comp),
+                   Loc      => Sloc (User_Defined_Eq (Etype (Comp))));
+             end if;
+ 
+             Next_Component (Comp);
+          end loop;
        end if;
     end Build_Untagged_Record_Equality;
  
*************** package body Exp_Ch3 is
*** 5416,5421 ****
--- 5711,5718 ----
            (Component_Type (Typ));
  
     begin
+       --  First, the nonpacked case
+ 
        if not Is_Bit_Packed_Array (Typ) then
           if No (Init_Proc (Base)) then
  
*************** package body Exp_Ch3 is
*** 5438,5444 ****
              --  initialize scalars mode, and these types are treated specially
              --  and do not need initialization procedures.
  
!             elsif Is_Standard_String_Type (Base) then
                 null;
  
              --  Otherwise we have to build an init proc for the subtype
--- 5735,5743 ----
              --  initialize scalars mode, and these types are treated specially
              --  and do not need initialization procedures.
  
!             elsif Is_Standard_String_Type (Base)
!               and then not Has_Default_Aspect (Base)
!             then
                 null;
  
              --  Otherwise we have to build an init proc for the subtype
*************** package body Exp_Ch3 is
*** 5458,5475 ****
              end if;
           end if;
  
!       --  For packed case, default initialization, except if the component type
!       --  is itself a packed structure with an initialization procedure, or
!       --  initialize/normalize scalars active, and we have a base type, or the
!       --  type is public, because in that case a client might specify
!       --  Normalize_Scalars and there better be a public Init_Proc for it.
  
!       elsif (Present (Init_Proc (Component_Type (Base)))
!               and then No (Base_Init_Proc (Base)))
!         or else (Init_Or_Norm_Scalars and then Base = Typ)
          or else Is_Public (Typ)
        then
!          Build_Array_Init_Proc (Base, N);
        end if;
     end Expand_Freeze_Array_Type;
  
--- 5757,5776 ----
              end if;
           end if;
  
!       --  For the packed case, no initialization, except if the component type
!       --  has an initialization procedure, or Initialize/Normalize_Scalars is
!       --  active, or there is a Default_Component_Value aspect, or the type is
!       --  public, because a client might specify Initialize_Scalars and there
!       --  better be a public Init_Proc for it.
  
!       elsif Present (Init_Proc (Component_Type (Base)))
!         or else Init_Or_Norm_Scalars
!         or else Has_Default_Aspect (Base)
          or else Is_Public (Typ)
        then
!          if No (Init_Proc (Base)) then
!             Build_Array_Init_Proc (Base, N);
!          end if;
        end if;
     end Expand_Freeze_Array_Type;
  
*************** package body Exp_Ch3 is
*** 5784,5790 ****
        --  the subtype.
  
        if not No_Exception_Handlers_Set
!         and then not Predicates_Ignored (Typ)
        then
           Append_To (Lst,
             Make_Case_Statement_Alternative (Loc,
--- 6085,6091 ----
        --  the subtype.
  
        if not No_Exception_Handlers_Set
!         and then not Predicates_Ignored_In_Codegen (Typ)
        then
           Append_To (Lst,
             Make_Case_Statement_Alternative (Loc,
*************** package body Exp_Ch3 is
*** 5864,5870 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_Freeze_Enumeration_Type;
  
     -------------------------------
--- 6165,6171 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_Freeze_Enumeration_Type;
  
     -------------------------------
*************** package body Exp_Ch3 is
*** 6081,6089 ****
  
                 else
                    pragma Assert
!                     (Extra_Formals_Match_OK
!                       (E     => Subp,
!                        Ref_E => Ovr_Subp));
                 end if;
              end if;
  
--- 6382,6388 ----
  
                 else
                    pragma Assert
!                     (Extra_Formals_Match_OK (E => Subp, Ref_E => Ovr_Subp));
                 end if;
              end if;
  
*************** package body Exp_Ch3 is
*** 6373,6378 ****
--- 6672,6681 ----
           Build_Untagged_Record_Equality (Typ);
        end if;
  
+       --  Freeze constructors as predefined operations
+ 
+       Append_Freeze_Actions (Typ, Constructor_Freeze (Typ));
+ 
        --  Before building the record initialization procedure, if we are
        --  dealing with a concurrent record value type, then we must go through
        --  the discriminants, exchanging discriminals between the concurrent
*************** package body Exp_Ch3 is
*** 6404,6410 ****
           end;
        end if;
  
!       if Has_Controlled_Component (Typ) then
           Build_Controlling_Procs (Typ);
        end if;
  
--- 6707,6713 ----
           end;
        end if;
  
!       if Has_Controlled_Component (Typ) or else Has_Destructor (Typ) then
           Build_Controlling_Procs (Typ);
        end if;
  
*************** package body Exp_Ch3 is
*** 6417,6422 ****
--- 6720,6726 ----
          and then (Tagged_Type_Expansion or else not Is_Interface (Typ))
        then
           Build_Record_Init_Proc (Typ_Decl, Typ);
+          Build_Implicit_Copy_Constructor (Typ_Decl, Typ);
        end if;
  
        --  Create the body of TSS primitive Finalize_Address. This must be done
*************** package body Exp_Ch3 is
*** 6478,6494 ****
        --  procedure, because a self-referential type might call one of these
        --  primitives in the body of the init_proc itself.
        --
!       --  This is not needed:
!       --    1) If expansion is disabled, because extra formals are only added
!       --       when we are generating code.
        --
!       --    2) For types with foreign convention since primitives with foreign
!       --       convention don't have extra formals and AI95-117 requires that
!       --       all primitives of a tagged type inherit the convention.
  
        if Expander_Active
          and then Is_Tagged_Type (Typ)
-         and then not Has_Foreign_Convention (Typ)
        then
           declare
              Elmt : Elmt_Id;
--- 6782,6797 ----
        --  procedure, because a self-referential type might call one of these
        --  primitives in the body of the init_proc itself.
        --
!       --  This is not needed when expansion is disabled, because extra formals
!       --  are only added when we are generating code.
        --
!       --  Notice that for tagged types with foreign convention this is also
!       --  required because (although primitives with foreign convention don't
!       --  have extra formals), a tagged type with foreign convention may have
!       --  primitives with convention Ada.
  
        if Expander_Active
          and then Is_Tagged_Type (Typ)
        then
           declare
              Elmt : Elmt_Id;
*************** package body Exp_Ch3 is
*** 6499,6505 ****
  
              Elmt := First_Elmt (Primitive_Operations (Typ));
              while Present (Elmt) loop
!                Create_Extra_Formals (Node (Elmt));
                 Next_Elmt (Elmt);
              end loop;
  
--- 6802,6808 ----
  
              Elmt := First_Elmt (Primitive_Operations (Typ));
              while Present (Elmt) loop
!                Create_Extra_Formals (Node (Elmt), Related_Nod => N);
                 Next_Elmt (Elmt);
              end loop;
  
*************** package body Exp_Ch3 is
*** 6516,6522 ****
                   and then Find_Dispatching_Type (E) = Typ
                   and then not Contains (Primitive_Operations (Typ), E)
                 then
!                   Create_Extra_Formals (E);
                 end if;
  
                 Next_Entity (E);
--- 6819,6825 ----
                   and then Find_Dispatching_Type (E) = Typ
                   and then not Contains (Primitive_Operations (Typ), E)
                 then
!                   Create_Extra_Formals (E, Related_Nod => N);
                 end if;
  
                 Next_Entity (E);
*************** package body Exp_Ch3 is
*** 6584,6590 ****
           elsif not Is_Param_Block_Component_Type (Ptr_Typ)
             and then Is_Limited_Class_Wide_Type (Desig_Typ)
           then
!             Build_Class_Wide_Master (Ptr_Typ);
           end if;
        end Build_Master;
  
--- 6887,6894 ----
           elsif not Is_Param_Block_Component_Type (Ptr_Typ)
             and then Is_Limited_Class_Wide_Type (Desig_Typ)
           then
!             Build_Master_Entity (Ptr_Typ);
!             Build_Master_Renaming (Ptr_Typ);
           end if;
        end Build_Master;
  
*************** package body Exp_Ch3 is
*** 6754,6765 ****
     procedure Expand_N_Object_Declaration (N : Node_Id) is
        Loc      : constant Source_Ptr := Sloc (N);
        Def_Id   : constant Entity_Id  := Defining_Identifier (N);
-       Expr     : constant Node_Id    := Expression (N);
        Obj_Def  : constant Node_Id    := Object_Definition (N);
        Typ      : constant Entity_Id  := Etype (Def_Id);
        Base_Typ : constant Entity_Id  := Base_Type (Typ);
        Next_N   : constant Node_Id    := Next (N);
  
        Special_Ret_Obj : constant Boolean := Is_Special_Return_Object (Def_Id);
        --  If this is a special return object, it will be allocated differently
        --  and ultimately rewritten as a renaming, so initialization activities
--- 7058,7070 ----
     procedure Expand_N_Object_Declaration (N : Node_Id) is
        Loc      : constant Source_Ptr := Sloc (N);
        Def_Id   : constant Entity_Id  := Defining_Identifier (N);
        Obj_Def  : constant Node_Id    := Object_Definition (N);
        Typ      : constant Entity_Id  := Etype (Def_Id);
        Base_Typ : constant Entity_Id  := Base_Type (Typ);
        Next_N   : constant Node_Id    := Next (N);
  
+       Expr : Node_Id := Expression (N);
+ 
        Special_Ret_Obj : constant Boolean := Is_Special_Return_Object (Def_Id);
        --  If this is a special return object, it will be allocated differently
        --  and ultimately rewritten as a renaming, so initialization activities
*************** package body Exp_Ch3 is
*** 6815,6822 ****
  
        procedure Count_Default_Sized_Task_Stacks
          (Typ         : Entity_Id;
!          Pri_Stacks  : out Int;
!          Sec_Stacks  : out Int);
        --  Count the number of default-sized primary and secondary task stacks
        --  required for task objects contained within type Typ. If the number of
        --  task objects contained within the type is not known at compile time
--- 7120,7127 ----
  
        procedure Count_Default_Sized_Task_Stacks
          (Typ         : Entity_Id;
!          Pri_Stacks  : out Nat;
!          Sec_Stacks  : out Nat);
        --  Count the number of default-sized primary and secondary task stacks
        --  required for task objects contained within type Typ. If the number of
        --  task objects contained within the type is not known at compile time
*************** package body Exp_Ch3 is
*** 7093,7100 ****
  
        procedure Count_Default_Sized_Task_Stacks
          (Typ         : Entity_Id;
!          Pri_Stacks  : out Int;
!          Sec_Stacks  : out Int)
        is
           Component : Entity_Id;
  
--- 7398,7405 ----
  
        procedure Count_Default_Sized_Task_Stacks
          (Typ         : Entity_Id;
!          Pri_Stacks  : out Nat;
!          Sec_Stacks  : out Nat)
        is
           Component : Entity_Id;
  
*************** package body Exp_Ch3 is
*** 7166,7173 ****
  
                 while Present (Component) loop
                    declare
!                      P : Int;
!                      S : Int;
  
                    begin
                       Count_Default_Sized_Task_Stacks (Etype (Component), P, S);
--- 7471,7478 ----
  
                 while Present (Component) loop
                    declare
!                      P : Nat;
!                      S : Nat;
  
                    begin
                       Count_Default_Sized_Task_Stacks (Etype (Component), P, S);
*************** package body Exp_Ch3 is
*** 7407,7412 ****
--- 7712,7723 ----
                 Apply_CW_Accessibility_Check (Expr, Func_Id);
              end if;
  
+             if Has_Anonymous_Access_Discriminant (Etype (Expr)) then
+                --  Check that access discrims do not designate entities
+                --  that the function result could outlive.
+                Apply_Access_Discrims_Accessibility_Check (Expr, Func_Id);
+             end if;
+ 
              Alloc_Expr := New_Copy_Tree (Expr);
  
              if Etype (Alloc_Expr) /= Alloc_Typ then
*************** package body Exp_Ch3 is
*** 7478,7484 ****
        --  Don't do anything for deferred constants. All proper actions will be
        --  expanded during the full declaration.
  
!       if No (Expr) and Constant_Present (N) then
           return;
        end if;
  
--- 7789,7799 ----
        --  Don't do anything for deferred constants. All proper actions will be
        --  expanded during the full declaration.
  
!       if No (Expr)
!         and then Constant_Present (N)
!         and then (not Needs_Construction (Typ)
!                    or else not Has_Parameterless_Constructor (Typ))
!       then
           return;
        end if;
  
*************** package body Exp_Ch3 is
*** 7503,7508 ****
--- 7818,7860 ----
           return;
        end if;
  
+       --  Expand objects to use constructors if needed
+ 
+       if Comes_From_Source (N)
+         and then Needs_Construction (Typ)
+ 
+       --  Don't expand copy constructor for objects initialized with aggregates
+ 
+         and then (if Present (Expr)
+                    then Nkind (Expr) not in N_Aggregate
+                                           | N_Delta_Aggregate
+                                           | N_Extension_Aggregate)
+ 
+       --  Don't expand copy constructor if a constructor was explicitly called
+ 
+         and then (if Present (Expr)
+                    then (Nkind (Original_Node (Expr)) /= N_Attribute_Reference
+                           or else Attribute_Name (Original_Node (Expr))
+                                     /= Name_Make))
+       then
+          if No (Expr) then
+             Expr :=
+               Make_Attribute_Reference
+                 (Loc,
+                  Attribute_Name => Name_Make,
+                  Prefix         => New_Occurrence_Of (Typ, Loc));
+          else
+             Expr :=
+               Make_Attribute_Reference
+                 (Loc,
+                  Attribute_Name => Name_Make,
+                  Prefix         => New_Occurrence_Of (Typ, Loc),
+                  Expressions    => New_List (Expr));
+          end if;
+          Set_Expression (N, Expr);
+          Analyze_And_Resolve (Expr);
+       end if;
+ 
        --  Make shared memory routines for shared passive variable
  
        if Is_Shared_Passive (Def_Id) then
*************** package body Exp_Ch3 is
*** 7525,7531 ****
        --  If tasks are being declared, make sure we have an activation chain
        --  defined for the tasks (has no effect if we already have one), and
        --  also that a Master variable is established (and that the appropriate
!       --  enclosing construct is established as a task master).
  
        if Has_Task (Typ)
          or else Might_Have_Tasks (Typ)
--- 7877,7885 ----
        --  If tasks are being declared, make sure we have an activation chain
        --  defined for the tasks (has no effect if we already have one), and
        --  also that a Master variable is established (and that the appropriate
!       --  enclosing construct is established as a task master). And also deal
!       --  with objects initialized with a call to a BIP function that has task
!       --  formal parameters.
  
        if Has_Task (Typ)
          or else Might_Have_Tasks (Typ)
*************** package body Exp_Ch3 is
*** 7534,7545 ****
        then
           Build_Activation_Chain_Entity (N);
  
!          if Has_Task (Typ) then
!             Build_Master_Entity (Def_Id);
! 
!          --  Handle objects initialized with BIP function calls
! 
!          elsif Has_BIP_Init_Expr then
              Build_Master_Entity (Def_Id);
           end if;
        end if;
--- 7888,7894 ----
        then
           Build_Activation_Chain_Entity (N);
  
!          if Has_Task (Typ) or else Has_BIP_Init_Expr then
              Build_Master_Entity (Def_Id);
           end if;
        end if;
*************** package body Exp_Ch3 is
*** 7566,7572 ****
          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);
--- 7915,7921 ----
          and then not (Is_Array_Type (Typ) and then Has_Init_Expression (N))
        then
           declare
!             PS_Count, SS_Count : Nat;
           begin
              Count_Default_Sized_Task_Stacks (Typ, PS_Count, SS_Count);
              Increment_Primary_Stack_Count (PS_Count);
*************** package body Exp_Ch3 is
*** 7676,7685 ****
        --  Explicit initialization present
  
        else
-          --  Obtain actual expression from qualified expression
- 
-          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
--- 8025,8030 ----
*************** package body Exp_Ch3 is
*** 7732,7741 ****
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
           --  to a build-in-place function, then access to the declared object
!          --  must be passed to the function. Currently we limit such functions
!          --  to those with constrained limited result subtypes, but eventually
!          --  plan to expand the allowed forms of functions that are treated as
!          --  build-in-place.
  
           elsif Is_Build_In_Place_Function_Call (Expr_Q) then
              Make_Build_In_Place_Call_In_Object_Declaration (N, Expr_Q);
--- 8077,8083 ----
  
           --  Ada 2005 (AI-318-02): If the initialization expression is a call
           --  to a build-in-place function, then access to the declared object
!          --  must be passed to the function.
  
           elsif Is_Build_In_Place_Function_Call (Expr_Q) then
              Make_Build_In_Place_Call_In_Object_Declaration (N, Expr_Q);
*************** package body Exp_Ch3 is
*** 8152,8157 ****
--- 8494,8500 ----
              elsif Is_CPP_Constructor_Call (Expr) then
                 declare
                    Id_Ref : constant Node_Id := New_Occurrence_Of (Def_Id, Loc);
+                   Marker : constant Node_Id := Next (N);
  
                 begin
                    --  The call to the initialization procedure does NOT freeze
*************** package body Exp_Ch3 is
*** 8168,8173 ****
--- 8511,8532 ----
                    --  to avoid its management in the backend
  
                    Set_Expression (N, Empty);
+ 
+                   --  Place the call to the constructor into a compound
+                   --  statement attached to the object through attribute
+                   --  Initialization_Statements; the compound statement will
+                   --  be moved to the freezing actions of the object if the
+                   --  object has an address clause (see Analyze_Attribute_
+                   --  Definition_Clause, Attribute_Address).
+ 
+                   if Needs_Initialization_Statements (N)
+                     and then not (Scope_Is_Transient
+                                     and then N = Node_To_Be_Wrapped)
+                   then
+                      Set_No_Initialization (N);
+                      Move_To_Initialization_Statements (N, Marker);
+                   end if;
+ 
                    return;
                 end;
  
*************** package body Exp_Ch3 is
*** 8710,8717 ****
                    --  be illegal in some cases (such as converting access-
                    --  to-unconstrained to access-to-constrained), but the
                    --  the unchecked conversion will presumably fail to work
!                   --  right in just such cases. It's not clear at all how to
!                   --  handle this.
  
                    Alloc_Stmt :=
                      Make_If_Statement (Loc,
--- 9069,9077 ----
                    --  be illegal in some cases (such as converting access-
                    --  to-unconstrained to access-to-constrained), but the
                    --  the unchecked conversion will presumably fail to work
!                   --  right in just such cases. In order to handle this
!                   --  properly, in the Caller_Allocation case, the callee
!                   --  needs to do the constraint check.
  
                    Alloc_Stmt :=
                      Make_If_Statement (Loc,
*************** package body Exp_Ch3 is
*** 8945,8950 ****
--- 9305,9314 ----
                 if Is_Class_Wide_Type (Etype (Func_Id)) then
                    Apply_CW_Accessibility_Check (Expr_Q, Func_Id);
                 end if;
+ 
+                --  ??? Usually calls to Apply_CW_Accessibility_Check and to
+                --  Apply_Access_Discrims_Accessibility_Check come in pairs.
+                --  Do we need a (conditional) call here to A_A_D_A_C ?
              end;
           end if;
  
*************** package body Exp_Ch3 is
*** 9126,9132 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Object_Declaration;
  
     ---------------------------------
--- 9490,9496 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Object_Declaration;
  
     ---------------------------------
*************** package body Exp_Ch3 is
*** 9388,9394 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_Tagged_Root;
  
     ------------------------------
--- 9752,9758 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_Tagged_Root;
  
     ------------------------------
*************** package body Exp_Ch3 is
*** 9477,9484 ****
  
        Def_Id : constant Entity_Id := Entity (N);
  
!       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
  
        Result : Boolean := False;
--- 9841,9847 ----
  
        Def_Id : constant Entity_Id := Entity (N);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Result : Boolean := False;
*************** package body Exp_Ch3 is
*** 9832,9844 ****
           end if;
        end if;
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        return Result;
  
     exception
        when RE_Not_Available =>
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
           return False;
     end Freeze_Type;
--- 10195,10207 ----
           end if;
        end if;
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        return Result;
  
     exception
        when RE_Not_Available =>
!          Restore_Ghost_Region (Saved_Ghost_Config);
  
           return False;
     end Freeze_Type;
*************** package body Exp_Ch3 is
*** 10663,10673 ****
                         or else (Is_Record_Type (Typ)
                                   and then Is_Protected_Record_Type (Typ));
        With_Task  : constant Boolean :=
!                      not Global_No_Tasking
!                        and then
!                      (Has_Task (Typ)
!                         or else (Is_Record_Type (Typ)
!                                    and then Is_Task_Record_Type (Typ)));
        Formals : List_Id;
  
     begin
--- 11026,11034 ----
                         or else (Is_Record_Type (Typ)
                                   and then Is_Protected_Record_Type (Typ));
        With_Task  : constant Boolean :=
!                      Has_Task (Typ)
!                        or else (Is_Record_Type (Typ)
!                                  and then Is_Task_Record_Type (Typ));
        Formals : List_Id;
  
     begin
*************** package body Exp_Ch3 is
*** 12732,12756 ****
              Append_To (Res, Decl);
           end if;
  
!          Fin_Call := Empty;
!          Decl     := Predef_Deep_Spec (Loc, Tag_Typ, TSS_Deep_Finalize, True);
  
!          if Is_Controlled (Tag_Typ) then
!             Fin_Call :=
!               Make_Final_Call
!                 (Obj_Ref => Make_Identifier (Loc, Name_V),
!                  Typ     => Tag_Typ);
!          end if;
  
!          if No (Fin_Call) then
!             Fin_Call := Make_Null_Statement (Loc);
!          end if;
  
!          Set_Handled_Statement_Sequence (Decl,
!            Make_Handled_Sequence_Of_Statements (Loc,
!              Statements => New_List (Fin_Call)));
  
!          Append_To (Res, Decl);
        end if;
  
        return Res;
--- 13093,13119 ----
              Append_To (Res, Decl);
           end if;
  
!          if not Has_Destructor (Tag_Typ) then
!             Fin_Call := Empty;
!             Decl := Predef_Deep_Spec (Loc, Tag_Typ, TSS_Deep_Finalize, True);
  
!             if Is_Controlled (Tag_Typ) then
!                Fin_Call :=
!                  Make_Final_Call
!                    (Obj_Ref => Make_Identifier (Loc, Name_V), Typ => Tag_Typ);
!             end if;
  
!             if No (Fin_Call) then
!                Fin_Call := Make_Null_Statement (Loc);
!             end if;
  
!             Set_Handled_Statement_Sequence
!               (Decl,
!                Make_Handled_Sequence_Of_Statements
!                  (Loc, Statements => New_List (Fin_Call)));
  
!             Append_To (Res, Decl);
!          end if;
        end if;
  
        return Res;
*************** package body Exp_Ch3 is
*** 12784,12789 ****
--- 13147,13182 ----
        return Res;
     end Predefined_Primitive_Freeze;
  
+    ------------------------
+    -- Constructor_Freeze --
+    ------------------------
+ 
+    function Constructor_Freeze (Typ : Entity_Id) return List_Id is
+       Res     : constant List_Id := New_List;
+       Cursor  : Entity_Id;
+       Frnodes : List_Id;
+ 
+    begin
+       if not Needs_Construction (Typ) then
+          return No_List;
+       end if;
+ 
+       Cursor :=
+         Get_Name_Entity_Id
+           (Direct_Attribute_Definition_Name (Typ, Name_Constructor));
+       while Present (Cursor) loop
+          Frnodes := Freeze_Entity (Cursor, Typ);
+ 
+          if Present (Frnodes) then
+             Append_List_To (Res, Frnodes);
+          end if;
+ 
+          Cursor := Homonym (Cursor);
+       end loop;
+ 
+       return Res;
+    end Constructor_Freeze;
+ 
     -------------------------
     -- Stream_Operation_OK --
     -------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch3.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch3.ads
*** gcc-15.2.0/gcc/ada/exp_ch3.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch3.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ----
  
  with Elists;  use Elists;
  with Exp_Tss; use Exp_Tss;
+ with Tbuild;  use Tbuild;
  with Types;   use Types;
  with Uintp;   use Uintp;
  
*************** package Exp_Ch3 is
*** 194,199 ****
--- 195,226 ----
     --  initialized; if Variable_Comps is True then tags components located at
     --  variable positions of Target are initialized.
  
+    type Initialization_Mode is
+      (Full_Init, Full_Init_Except_Tag, Early_Init_Only, Late_Init_Only);
+    --  The initialization routine for a tagged type is passed in a
+    --  formal parameter of this type, indicating what initialization
+    --  is to be performed. This parameter defaults to Full_Init in all
+    --  cases except when the init proc of a type extension (let's call
+    --  that type T2) calls the init proc of its parent (let's call that
+    --  type T1). In that case, one of the other 3 values will
+    --  be passed in. In all three of those cases, the Tag component has
+    --  already been initialized before the call and is therefore not to be
+    --  modified. T2's init proc will either call T1's init proc
+    --  once (with Full_Init_Except_Tag as the parameter value) or twice
+    --  (first with Early_Init_Only, then later with Late_Init_Only),
+    --  depending on the result returned by Has_Late_Init_Component (T1).
+    --  In the latter case, the first call does not initialize any
+    --  components that require late initialization and the second call
+    --  then performs that deferred initialization.
+    --  Strictly speaking, the formal parameter subtype is actually Natural
+    --  but calls will only pass in values corresponding to literals
+    --  of this enumeration type.
+ 
+    function Make_Mode_Literal
+      (Loc : Source_Ptr; Mode : Initialization_Mode) return Node_Id
+    is (Make_Integer_Literal (Loc, Initialization_Mode'Pos (Mode)));
+    --  Generate an integer literal for a given mode value.
+ 
     procedure Make_Controlling_Function_Wrappers
       (Tag_Typ   : Entity_Id;
        Decl_List : out List_Id;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch4.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch4.adb
*** gcc-15.2.0/gcc/ada/exp_ch4.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch4.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 28,33 ----
*************** with Sem_Res;        use Sem_Res;
*** 66,72 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
  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;
--- 65,70 ----
*************** package body Exp_Ch4 is
*** 177,188 ****
     --  integer type. This is a case where top level processing is required to
     --  handle overflow checks in subtrees.
  
-    procedure Fixup_Universal_Fixed_Operation (N : Node_Id);
-    --  N is a N_Op_Divide or N_Op_Multiply node whose result is universal
-    --  fixed. We do not have such a type at runtime, so the purpose of this
-    --  routine is to find the real type by looking up the tree. We also
-    --  determine if the operation must be rounded.
- 
     procedure Get_First_Index_Bounds (T : Entity_Id; Lo, Hi : out Uint);
     --  T is an array whose index bounds are all known at compile time. Return
     --  the value of the low and high bounds of the first index of T.
--- 175,180 ----
*************** package body Exp_Ch4 is
*** 226,232 ****
     --  Convert_To_Actual_Subtype if necessary).
  
     function Minimized_Eliminated_Overflow_Check (N : Node_Id) return Boolean;
!    --  For signed arithmetic operations when the current overflow mode is
     --  MINIMIZED or ELIMINATED, we must call Apply_Arithmetic_Overflow_Checks
     --  as the first thing we do. We then return. We count on the recursive
     --  apparatus for overflow checks to call us back with an equivalent
--- 218,224 ----
     --  Convert_To_Actual_Subtype if necessary).
  
     function Minimized_Eliminated_Overflow_Check (N : Node_Id) return Boolean;
!    --  For overflow arithmetic operations when the current overflow mode is
     --  MINIMIZED or ELIMINATED, we must call Apply_Arithmetic_Overflow_Checks
     --  as the first thing we do. We then return. We count on the recursive
     --  apparatus for overflow checks to call us back with an equivalent
*************** package body Exp_Ch4 is
*** 240,245 ****
--- 232,241 ----
     --  skipped if the operation is done in Bignum mode but that's fine, since
     --  the Bignum call takes care of everything.
  
+    function New_Assign_Copy (N : Node_Id; Expr : Node_Id) return Node_Id;
+    --  N is an assignment statement. Return a copy of N with the same name but
+    --  expression changed to Expr and perform a couple of adjustments.
+ 
     procedure Narrow_Large_Operation (N : Node_Id);
     --  Try to compute the result of a large operation in a narrower type than
     --  its nominal type. This is mainly aimed at getting rid of operations done
*************** package body Exp_Ch4 is
*** 434,440 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Build_Boolean_Array_Proc_Call;
  
     ---------------------------------
--- 430,436 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Build_Boolean_Array_Proc_Call;
  
     ---------------------------------
*************** package body Exp_Ch4 is
*** 550,555 ****
--- 546,552 ----
                 --     the secondary dispatch table.
  
                 Rewrite (N, Convert_To (Dtyp, Relocate_Node (N)));
+                Flag_Interface_Pointer_Displacement (N);
                 Analyze_And_Resolve (N, Dtyp);
  
                 --  3) The 'access to the secondary dispatch table will be used
*************** package body Exp_Ch4 is
*** 659,665 ****
               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
--- 656,664 ----
               Object_Definition   => New_Occurrence_Of (Typ, Loc),
               Expression          =>
                 Make_Allocator (Loc,
!                  Subpool_Handle_Name =>
!                    Relocate_Node (Subpool_Handle_Name (N)),
!                  Expression          => New_Occurrence_Of (Etype (Exp), Loc)));
  
        begin
           --  Prevent default initialization of the allocator
*************** package body Exp_Ch4 is
*** 698,704 ****
               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
--- 697,705 ----
               Object_Definition   => New_Occurrence_Of (Typ, Loc),
               Expression          =>
                 Make_Allocator (Loc,
!                  Subpool_Handle_Name =>
!                    Relocate_Node (Subpool_Handle_Name (N)),
!                  Expression          => New_Occurrence_Of (Etype (Exp), Loc)));
  
        begin
           --  Prevent default initialization of the allocator
*************** package body Exp_Ch4 is
*** 727,733 ****
           --  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);
--- 728,734 ----
           --  adjust after the assignment but, in either case, we do not
           --  finalize before since the target is newly allocated memory.
  
!          if Back_End_Return_Slot and then Nkind (Exp) = N_Function_Call then
              Set_No_Ctrl_Actions (Assign);
           else
              Set_No_Finalize_Actions (Assign);
*************** package body Exp_Ch4 is
*** 869,878 ****
        --  as qualified expression must be rewritten into the form expected by
        --  Expand_Container_Aggregate, resp. Two_Pass_Aggregate_Expansion.
  
!       if Nkind (Exp) = N_Aggregate
!         and then (Has_Aspect (T, Aspect_Aggregate)
!                    or else Is_Two_Pass_Aggregate (Exp))
!       then
           Temp := Make_Temporary (Loc, 'P', N);
           Set_Analyzed (Exp, False);
           Insert_Action (N,
--- 870,876 ----
        --  as qualified expression must be rewritten into the form expected by
        --  Expand_Container_Aggregate, resp. Two_Pass_Aggregate_Expansion.
  
!       if Is_Container_Aggregate (Exp) or else Is_Two_Pass_Aggregate (Exp) then
           Temp := Make_Temporary (Loc, 'P', N);
           Set_Analyzed (Exp, False);
           Insert_Action (N,
*************** package body Exp_Ch4 is
*** 1241,1247 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_Allocator_Expression;
  
     -----------------------------
--- 1239,1245 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_Allocator_Expression;
  
     -----------------------------
*************** package body Exp_Ch4 is
*** 1437,1482 ****
  
        --  For (a <= b) we convert to not (a > b)
  
!       if Chars (N) = Name_Op_Le then
!          Rewrite (N,
!            Make_Op_Not (Loc,
!              Right_Opnd =>
!                 Make_Op_Gt (Loc,
!                  Left_Opnd  => Op1,
!                  Right_Opnd => Op2)));
!          Analyze_And_Resolve (N, Standard_Boolean);
!          return;
  
!       --  For < the Boolean expression is
!       --    greater__nn (op2, op1)
  
!       elsif Chars (N) = Name_Op_Lt then
!          Func_Body := Make_Array_Comparison_Op (Typ1, N);
  
!          --  Switch operands
  
!          Op1 := Right_Opnd (N);
!          Op2 := Left_Opnd  (N);
  
!       --  For (a >= b) we convert to not (a < b)
  
!       elsif Chars (N) = Name_Op_Ge then
!          Rewrite (N,
!            Make_Op_Not (Loc,
!              Right_Opnd =>
!                Make_Op_Lt (Loc,
!                  Left_Opnd  => Op1,
!                  Right_Opnd => Op2)));
!          Analyze_And_Resolve (N, Standard_Boolean);
!          return;
  
!       --  For > the Boolean expression is
!       --    greater__nn (op1, op2)
  
!       else
!          pragma Assert (Chars (N) = Name_Op_Gt);
!          Func_Body := Make_Array_Comparison_Op (Typ1, N);
!       end if;
  
        Func_Name := Defining_Unit_Name (Specification (Func_Body));
        Expr :=
--- 1435,1482 ----
  
        --  For (a <= b) we convert to not (a > b)
  
!       case Nkind (N) is
!          when N_Op_Le =>
!             Rewrite (N,
!               Make_Op_Not (Loc,
!                 Right_Opnd =>
!                    Make_Op_Gt (Loc,
!                     Left_Opnd  => Op1,
!                     Right_Opnd => Op2)));
!             Analyze_And_Resolve (N, Standard_Boolean);
!             return;
  
!          --  For < the Boolean expression is
!          --    greater__nn (op2, op1)
  
!          when N_Op_Lt =>
!             Func_Body := Make_Array_Comparison_Op (Typ1, N);
  
!             --  Switch operands
  
!             Op1 := Right_Opnd (N);
!             Op2 := Left_Opnd  (N);
  
!          --  For (a >= b) we convert to not (a < b)
  
!          when N_Op_Ge =>
!             Rewrite (N,
!               Make_Op_Not (Loc,
!                 Right_Opnd =>
!                   Make_Op_Lt (Loc,
!                     Left_Opnd  => Op1,
!                     Right_Opnd => Op2)));
!             Analyze_And_Resolve (N, Standard_Boolean);
!             return;
  
!          --  For > the Boolean expression is
!          --    greater__nn (op1, op2)
  
!          when N_Op_Gt =>
!             Func_Body := Make_Array_Comparison_Op (Typ1, N);
! 
!          when others => raise Program_Error;
!       end case;
  
        Func_Name := Defining_Unit_Name (Specification (Func_Body));
        Expr :=
*************** package body Exp_Ch4 is
*** 2131,2139 ****
        Llo, Lhi : Uint;
        Rlo, Rhi : Uint;
  
-       LLIB : constant Entity_Id := Base_Type (Standard_Long_Long_Integer);
-       --  Entity for Long_Long_Integer'Base
- 
        procedure Set_True;
        procedure Set_False;
        --  These procedures rewrite N with an occurrence of Standard_True or
--- 2131,2136 ----
*************** package body Exp_Ch4 is
*** 2233,2248 ****
           Ltype : constant Entity_Id := Etype (Left_Opnd (N));
           Rtype : constant Entity_Id := Etype (Right_Opnd (N));
  
        begin
           --  If the two operands have the same signed integer type we are
           --  all set, nothing more to do. This is the case where either
           --  both operands were unchanged, or we rewrote both of them to
!          --  be Long_Long_Integer.
  
           --  Note: Entity for the comparison may be wrong, but it's not worth
           --  the effort to change it, since the back end does not use it.
  
!          if Is_Signed_Integer_Type (Ltype)
             and then Base_Type (Ltype) = Base_Type (Rtype)
           then
              return;
--- 2230,2264 ----
           Ltype : constant Entity_Id := Etype (Left_Opnd (N));
           Rtype : constant Entity_Id := Etype (Right_Opnd (N));
  
+          LL_IB : constant Entity_Id := Base_Type (Standard_Long_Long_Integer);
+          --  Entity for Long_Long_Integer'Base
+ 
+          LL_UB : constant Entity_Id := Base_Type (Standard_Long_Long_Unsigned);
+          --  Entity for Long_Long_Unsigned'Base
+ 
+          LL_Type : Entity_Id;
+          --  Operands and results are of this type when we perform convertion:
+          --  Long_Long_Integer or Long_Long_Unsigned (when the type of the
+          --  result has the Unsigned_Base_Range aspect).
+ 
        begin
+          --  Initialize type of operands and results when we convert
+ 
+          if Ltype = LL_UB or else Rtype = LL_UB then
+             LL_Type := LL_UB;
+          else
+             LL_Type := LL_IB;
+          end if;
+ 
           --  If the two operands have the same signed integer type we are
           --  all set, nothing more to do. This is the case where either
           --  both operands were unchanged, or we rewrote both of them to
!          --  be Long_Long_[Integer|Unsigned].
  
           --  Note: Entity for the comparison may be wrong, but it's not worth
           --  the effort to change it, since the back end does not use it.
  
!          if Has_Overflow_Operations (Ltype)
             and then Base_Type (Ltype) = Base_Type (Rtype)
           then
              return;
*************** package body Exp_Ch4 is
*** 2319,2343 ****
              end;
  
           --  No bignums involved, but types are different, so we must have
!          --  rewritten one of the operands as a Long_Long_Integer but not
!          --  the other one.
  
!          --  If left operand is Long_Long_Integer, convert right operand
!          --  and we are done (with a comparison of two Long_Long_Integers).
  
!          elsif Ltype = LLIB then
!             Convert_To_And_Rewrite (LLIB, Right_Opnd (N));
!             Analyze_And_Resolve (Right_Opnd (N), LLIB, Suppress => All_Checks);
              return;
  
!          --  If right operand is Long_Long_Integer, convert left operand
!          --  and we are done (with a comparison of two Long_Long_Integers).
  
           --  This is the only remaining possibility
  
!          else pragma Assert (Rtype = LLIB);
!             Convert_To_And_Rewrite (LLIB, Left_Opnd (N));
!             Analyze_And_Resolve (Left_Opnd (N), LLIB, Suppress => All_Checks);
              return;
           end if;
        end;
--- 2335,2363 ----
              end;
  
           --  No bignums involved, but types are different, so we must have
!          --  rewritten one of the operands as a Long_Long_[Integer|Unsigned]
!          --  type but not the other one.
  
!          --  If left operand is Long_Long_[Integer|Unsigned], convert right
!          --  operand and we are done (with a comparison of two Long_Long_
!          --  [Integers|Unsigneds]).
  
!          elsif Ltype = LL_Type then
!             Convert_To_And_Rewrite (LL_Type, Right_Opnd (N));
!             Analyze_And_Resolve
!               (Right_Opnd (N), LL_Type, Suppress => All_Checks);
              return;
  
!          --  If right operand is Long_Long_[Integer|Unsigned], convert left
!          --  operand and we are done (with a comparison of two Long_Long_
!          --  [Integers|Unsigneds]).
  
           --  This is the only remaining possibility
  
!          else pragma Assert (Rtype = LL_Type);
!             Convert_To_And_Rewrite (LL_Type, Left_Opnd (N));
!             Analyze_And_Resolve
!               (Left_Opnd (N), LL_Type, Suppress => All_Checks);
              return;
           end if;
        end;
*************** package body Exp_Ch4 is
*** 2359,2364 ****
--- 2379,2385 ----
        Rhs        : Node_Id) return Node_Id
     is
        Loc       : constant Source_Ptr := Sloc (Nod);
+       CW_Comp   : Boolean := False;
        Full_Type : Entity_Id;
        Eq_Op     : Entity_Id;
  
*************** package body Exp_Ch4 is
*** 2388,2397 ****
           Full_Type := Underlying_Type (Full_Type);
        end if;
  
        --  Case of tagged record types
  
        if Is_Tagged_Type (Full_Type) then
!          Eq_Op := Find_Primitive_Eq (Comp_Type);
           pragma Assert (Present (Eq_Op));
  
           return
--- 2409,2425 ----
           Full_Type := Underlying_Type (Full_Type);
        end if;
  
+       if Is_Class_Wide_Equivalent_Type (Full_Type) then
+          CW_Comp := True;
+          Full_Type :=
+            Get_Corresponding_Mutably_Tagged_Type_If_Present (Full_Type);
+          pragma Assert (Is_Tagged_Type (Full_Type));
+       end if;
+ 
        --  Case of tagged record types
  
        if Is_Tagged_Type (Full_Type) then
!          Eq_Op := Find_Primitive_Eq (if CW_Comp then Full_Type else Comp_Type);
           pragma Assert (Present (Eq_Op));
  
           return
*************** package body Exp_Ch4 is
*** 2453,2459 ****
--- 2481,2514 ----
                     Parameter_Associations => New_List (L_Exp, R_Exp));
              end;
  
+          --  Composite equality not available for the type
+ 
           else
+             --  Under Ada83 and Ada95, search for user-defined equality and
+             --  report a warning if found since it will not be called.
+ 
+             if Ada_Version <= Ada_95
+               and then Warn_On_Ignored_Equality
+             then
+                declare
+                   Elmt : Elmt_Id;
+ 
+                begin
+                   Elmt := First_Elmt (Direct_Primitive_Operations (Full_Type));
+                   while Present (Elmt) loop
+                      if Is_User_Defined_Equality (Node (Elmt)) then
+                         Warn_On_Ignored_Equality_Operator
+                           (Typ      => Outer_Type,
+                            Comp_Typ => Full_Type,
+                            Loc      => Sloc (Node (Elmt)));
+                         exit;
+                      end if;
+ 
+                      Next_Elmt (Elmt);
+                   end loop;
+                end;
+             end if;
+ 
              return Expand_Record_Equality (Nod, Full_Type, Lhs, Rhs);
           end if;
  
*************** package body Exp_Ch4 is
*** 2469,2489 ****
  
           declare
              Op : constant Entity_Id := Find_Primitive_Eq (Comp_Type);
           begin
!             if Warn_On_Ignored_Equality
!               and then Present (Op)
                and then not In_Predefined_Unit (Base_Type (Comp_Type))
                and then not Is_Intrinsic_Subprogram (Op)
              then
                 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;
  
--- 2524,2543 ----
  
           declare
              Op : constant Entity_Id := Find_Primitive_Eq (Comp_Type);
+ 
           begin
!             if Present (Op)
                and then not In_Predefined_Unit (Base_Type (Comp_Type))
                and then not Is_Intrinsic_Subprogram (Op)
              then
                 pragma Assert
                   (Is_First_Subtype (Outer_Type)
                     or else Is_Generic_Actual_Type (Outer_Type));
! 
!                Warn_On_Ignored_Equality_Operator
!                  (Typ      => Outer_Type,
!                   Comp_Typ => Comp_Type,
!                   Loc      => Sloc (Op));
              end if;
           end;
  
*************** package body Exp_Ch4 is
*** 3611,3620 ****
        Lo, Hi : Uint;
        --  Bounds in Minimize calls, not used currently
  
!       LLIB : constant Entity_Id := Base_Type (Standard_Long_Long_Integer);
!       --  Entity for Long_Long_Integer'Base
  
     begin
        Minimize_Eliminate_Overflows (Lop, Lo, Hi, Top_Level => False);
  
        --  If right operand is a subtype name, and the subtype name has no
--- 3665,3687 ----
        Lo, Hi : Uint;
        --  Bounds in Minimize calls, not used currently
  
!       LL_Type : Entity_Id;
!       --  Entity for Long_Long_[Integer|Unsigned]'Base
! 
!       From_Bignum_Id : Entity_Id;
!       --  Entity for RE_[LLU_]From_Bignum
  
     begin
+       --  Initialize type of operands and results when we convert
+ 
+       if Has_Unsigned_Base_Range_Aspect (Base_Type (Etype (Lop))) then
+          LL_Type        := Base_Type (Standard_Long_Long_Unsigned);
+          From_Bignum_Id := RTE (RE_LLU_From_Bignum);
+       else
+          LL_Type        := Base_Type (Standard_Long_Long_Integer);
+          From_Bignum_Id := RTE (RE_From_Bignum);
+       end if;
+ 
        Minimize_Eliminate_Overflows (Lop, Lo, Hi, Top_Level => False);
  
        --  If right operand is a subtype name, and the subtype name has no
*************** package body Exp_Ch4 is
*** 3746,3766 ****
                 null;
  
              --  If types are not all the same, it means that we have rewritten
!             --  at least one of them to be of type Long_Long_Integer, and we
!             --  will convert the other operands to Long_Long_Integer.
  
              else
!                Convert_To_And_Rewrite (LLIB, Lop);
                 Set_Analyzed (Lop, False);
!                Analyze_And_Resolve (Lop, LLIB);
  
                 --  For the right operand, avoid unnecessary recursion into
                 --  this routine, we know that overflow is not possible.
  
!                Convert_To_And_Rewrite (LLIB, Low_Bound (Rop));
!                Convert_To_And_Rewrite (LLIB, High_Bound (Rop));
                 Set_Analyzed (Rop, False);
!                Analyze_And_Resolve (Rop, LLIB, Suppress => Overflow_Check);
              end if;
  
              --  Now the three operands are of the same signed integer type,
--- 3813,3834 ----
                 null;
  
              --  If types are not all the same, it means that we have rewritten
!             --  at least one of them to be of type Long_Long_[Integer|Unsigned]
!             --  and we will convert the other operands to Long_Long_[Integer|
!             --  Unsigned].
  
              else
!                Convert_To_And_Rewrite (LL_Type, Lop);
                 Set_Analyzed (Lop, False);
!                Analyze_And_Resolve (Lop, LL_Type);
  
                 --  For the right operand, avoid unnecessary recursion into
                 --  this routine, we know that overflow is not possible.
  
!                Convert_To_And_Rewrite (LL_Type, Low_Bound (Rop));
!                Convert_To_And_Rewrite (LL_Type, High_Bound (Rop));
                 Set_Analyzed (Rop, False);
!                Analyze_And_Resolve (Rop, LL_Type, Suppress => Overflow_Check);
              end if;
  
              --  Now the three operands are of the same signed integer type,
*************** package body Exp_Ch4 is
*** 3795,3801 ****
  
              --       declare
              --          M   : Mark_Id := SS_Mark;
!             --          Lnn : Long_Long_Integer'Base
              --          Nnn : Bignum;
  
              --       begin
--- 3863,3869 ----
  
              --       declare
              --          M   : Mark_Id := SS_Mark;
!             --          Lnn : Long_Long_[Integer|Unsigned]'Base
              --          Nnn : Bignum;
  
              --       begin
*************** package body Exp_Ch4 is
*** 3806,3812 ****
              --         else
              --            Lnn := From_Bignum (Nnn);
              --            Bnn :=
!             --              Lnn in LLIB (T'Base'First) .. LLIB (T'Base'Last)
              --                and then T'Base (Lnn) in T;
              --         end if;
  
--- 3874,3881 ----
              --         else
              --            Lnn := From_Bignum (Nnn);
              --            Bnn :=
!             --              Lnn in LL_Type (T'Base'First)
!             --                       .. LL_Type (T'Base'Last)
              --                and then T'Base (Lnn) in T;
              --         end if;
  
*************** package body Exp_Ch4 is
*** 3842,3848 ****
                   (Last (Declarations (Blk)),
                    Make_Object_Declaration (Loc,
                      Defining_Identifier => Lnn,
!                     Object_Definition   => New_Occurrence_Of (LLIB, Loc)));
  
                 Insert_After
                   (Last (Declarations (Blk)),
--- 3911,3917 ----
                   (Last (Declarations (Blk)),
                    Make_Object_Declaration (Loc,
                      Defining_Identifier => Lnn,
!                     Object_Definition   => New_Occurrence_Of (LL_Type, Loc)));
  
                 Insert_After
                   (Last (Declarations (Blk)),
*************** package body Exp_Ch4 is
*** 3879,3889 ****
                          Make_Assignment_Statement (Loc,
                            Name => New_Occurrence_Of (Lnn, Loc),
                            Expression =>
!                             Make_Function_Call (Loc,
!                               Name                   =>
!                                 New_Occurrence_Of (RTE (RE_From_Bignum), Loc),
!                               Parameter_Associations => New_List (
!                                   New_Occurrence_Of (Nnn, Loc)))),
  
                          Make_Assignment_Statement (Loc,
                            Name       => New_Occurrence_Of (Bnn, Loc),
--- 3948,3959 ----
                          Make_Assignment_Statement (Loc,
                            Name => New_Occurrence_Of (Lnn, Loc),
                            Expression =>
!                             Convert_To (LL_Type,
!                               Make_Function_Call (Loc,
!                                 Name                   =>
!                                   New_Occurrence_Of (From_Bignum_Id, Loc),
!                                 Parameter_Associations => New_List (
!                                     New_Occurrence_Of (Nnn, Loc))))),
  
                          Make_Assignment_Statement (Loc,
                            Name       => New_Occurrence_Of (Bnn, Loc),
*************** package body Exp_Ch4 is
*** 3895,3908 ****
                                    Right_Opnd =>
                                      Make_Range (Loc,
                                        Low_Bound  =>
!                                         Convert_To (LLIB,
                                            Make_Attribute_Reference (Loc,
                                              Attribute_Name => Name_First,
                                              Prefix         =>
                                                New_Occurrence_Of (TB, Loc))),
  
                                        High_Bound =>
!                                         Convert_To (LLIB,
                                            Make_Attribute_Reference (Loc,
                                              Attribute_Name => Name_Last,
                                              Prefix         =>
--- 3965,3978 ----
                                    Right_Opnd =>
                                      Make_Range (Loc,
                                        Low_Bound  =>
!                                         Convert_To (LL_Type,
                                            Make_Attribute_Reference (Loc,
                                              Attribute_Name => Name_First,
                                              Prefix         =>
                                                New_Occurrence_Of (TB, Loc))),
  
                                        High_Bound =>
!                                         Convert_To (LL_Type,
                                            Make_Attribute_Reference (Loc,
                                              Attribute_Name => Name_Last,
                                              Prefix         =>
*************** package body Exp_Ch4 is
*** 3926,3940 ****
              end;
  
           --  Not bignum case, but types don't match (this means we rewrote the
!          --  left operand to be Long_Long_Integer).
  
           else
!             pragma Assert (Base_Type (Etype (Lop)) = LLIB);
  
              --  We rewrite the membership test as (where T is the type with
              --  the predicate, i.e. the type of the right operand)
  
!             --    Lop in LLIB (T'Base'First) .. LLIB (T'Base'Last)
              --      and then T'Base (Lop) in T
  
              declare
--- 3996,4010 ----
              end;
  
           --  Not bignum case, but types don't match (this means we rewrote the
!          --  left operand to be Long_Long_[Integer|Unsigned]).
  
           else
!             pragma Assert (Base_Type (Etype (Lop)) = LL_Type);
  
              --  We rewrite the membership test as (where T is the type with
              --  the predicate, i.e. the type of the right operand)
  
!             --    Lop in LL_Type (T'Base'First) .. LL_Type (T'Base'Last)
              --      and then T'Base (Lop) in T
  
              declare
*************** package body Exp_Ch4 is
*** 3961,3973 ****
                         Right_Opnd =>
                           Make_Range (Loc,
                             Low_Bound  =>
!                              Convert_To (LLIB,
                                 Make_Attribute_Reference (Loc,
                                   Attribute_Name => Name_First,
                                   Prefix         =>
                                     New_Occurrence_Of (TB, Loc))),
                             High_Bound =>
!                              Convert_To (LLIB,
                                 Make_Attribute_Reference (Loc,
                                   Attribute_Name => Name_Last,
                                   Prefix         =>
--- 4031,4043 ----
                         Right_Opnd =>
                           Make_Range (Loc,
                             Low_Bound  =>
!                              Convert_To (LL_Type,
                                 Make_Attribute_Reference (Loc,
                                   Attribute_Name => Name_First,
                                   Prefix         =>
                                     New_Occurrence_Of (TB, Loc))),
                             High_Bound =>
!                              Convert_To (LL_Type,
                                 Make_Attribute_Reference (Loc,
                                   Attribute_Name => Name_Last,
                                   Prefix         =>
*************** package body Exp_Ch4 is
*** 4381,4387 ****
  
           for J in 1 .. Number_Dimensions (E) loop
  
!             if not Is_Modular_Integer_Type (Etype (Idx)) then
                 Len :=
                   Make_Attribute_Reference (Loc,
                     Prefix         => New_Occurrence_Of (E, Loc),
--- 4451,4457 ----
  
           for J in 1 .. Number_Dimensions (E) loop
  
!             if not Has_Modular_Operations (Etype (Idx)) then
                 Len :=
                   Make_Attribute_Reference (Loc,
                     Prefix         => New_Occurrence_Of (E, Loc),
*************** package body Exp_Ch4 is
*** 4491,4496 ****
--- 4561,4575 ----
           Error_Msg_N ("?_a?use of an anonymous access type allocator", N);
        end if;
  
+       --  Here we set no initialization on types with constructors since we
+       --  generate initialization for the separately.
+ 
+       if Needs_Construction (Directly_Designated_Type (PtrT))
+         and then Nkind (Expression (N)) = N_Identifier
+       then
+          Set_No_Initialization (N, False);
+       end if;
+ 
        --  RM E.2.2(17). We enforce that the expected type of an allocator
        --  shall not be a remote access-to-class-wide-limited-private type.
        --  We probably shouldn't be doing this legality check during expansion,
*************** package body Exp_Ch4 is
*** 4559,4566 ****
  
        --  Set the storage pool and find the appropriate version of Allocate to
        --  call. Do not overwrite the storage pool if it is already set, which
!       --  can happen for build-in-place function returns (see
!       --  Exp_Ch4.Expand_N_Extended_Return_Statement).
  
        if No (Storage_Pool (N)) then
           Pool := Associated_Storage_Pool (Root_Type (PtrT));
--- 4638,4644 ----
  
        --  Set the storage pool and find the appropriate version of Allocate to
        --  call. Do not overwrite the storage pool if it is already set, which
!       --  can occur for BIP function returns (see Expand_N_Object_Declaration).
  
        if No (Storage_Pool (N)) then
           Pool := Associated_Storage_Pool (Root_Type (PtrT));
*************** package body Exp_Ch4 is
*** 4919,4925 ****
                      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)));
  
--- 4997,5005 ----
                      and then Ekind (Current_Scope) = E_Function
                      and then
                        Ekind (Etype (Current_Scope)) = E_General_Access_Type
!                     and then Nkind (Parent (N)) = N_Type_Conversion
!                     and then
!                       Nkind (Parent (Parent (N))) = N_Simple_Return_Statement
                    then
                       Set_Master_Id (PtrT, Master_Id (Etype (Current_Scope)));
  
*************** package body Exp_Ch4 is
*** 5009,5023 ****
                 --  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;
--- 5089,5097 ----
                 --  create a specific block to activate the created tasks.
  
                 if Has_Task (Etyp) then
!                   Insert_Actions (N,
!                     Build_Task_Allocate_Block (N, Init_Stmts),
!                     Suppress => All_Checks);
                 else
                    Insert_Actions (N, Init_Stmts, Suppress => All_Checks);
                 end if;
*************** package body Exp_Ch4 is
*** 5064,5070 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Allocator;
  
     -----------------------
--- 5138,5144 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Allocator;
  
     -----------------------
*************** package body Exp_Ch4 is
*** 5182,5194 ****
        --  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;
--- 5256,5273 ----
        --  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.
+       --  Likewise if it is in the context of a regular agggregate and the
+       --  type should not be copied.
  
        if not Expansion_Delayed (N) then
           declare
!             Uncond_Par : constant Node_Id :=
!                            Unqualified_Unconditional_Parent (N);
           begin
              if Nkind (Uncond_Par) = N_Simple_Return_Statement
                or else Is_Optimizable_Declaration (Uncond_Par)
+               or else (Parent_Is_Regular_Aggregate (Uncond_Par)
+                         and then not Is_Copy_Type (Typ))
              then
                 Delay_Conditional_Expressions_Between (N, Uncond_Par);
              end if;
*************** package body Exp_Ch4 is
*** 5349,5355 ****
           --  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));
  
--- 5428,5444 ----
           --  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. We first need to make them
!          --  explicit for build-in-place functions in anonymous contexts,
!          --  because calls to these do not go through Expand_Ctrl_Actions.
! 
!          if Is_Build_In_Place_Function_Call (Expression (Alt))
!            and then not Optimize_Assignment_Stmt
!            and then not Optimize_Return_Stmt
!            and then not Optimize_Object_Decl
!          then
!             Make_Build_In_Place_Call_In_Anonymous_Context (Expression (Alt));
!          end if;
  
           Process_Transients_In_Expression (N, Actions (Alt));
  
*************** package body Exp_Ch4 is
*** 5368,5384 ****
              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;
--- 5457,5463 ----
              if Optimize_Assignment_Stmt then
                 --  We directly copy the parent node to preserve its flags
  
!                Stmts := New_List (New_Assign_Copy (Par, Alt_Expr));
  
              --  Generate:
              --    return AX;
*************** package body Exp_Ch4 is
*** 5796,5810 ****
        --  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;
--- 5875,5893 ----
        --  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.
!       --  Likewise if it is in the context of a regular agggregate and the
!       --  type should not be copied. 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 :=
!                            Unqualified_Unconditional_Parent (N);
           begin
              if Nkind (Uncond_Par) = N_Simple_Return_Statement
                or else Is_Optimizable_Declaration (Uncond_Par)
+               or else (Parent_Is_Regular_Aggregate (Uncond_Par)
+                         and then not Is_Copy_Type (Typ))
              then
                 Delay_Conditional_Expressions_Between (N, Uncond_Par);
              end if;
*************** package body Exp_Ch4 is
*** 5907,5932 ****
  
           --  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,
--- 5990,5997 ----
  
           --  We directly copy the parent node to preserve its flags
  
!          New_Then := New_Assign_Copy (Par, Relocate_Node (Thenx));
!          New_Else := New_Assign_Copy (Par, Relocate_Node (Elsex));
  
           If_Stmt :=
             Make_Implicit_If_Statement (N,
*************** package body Exp_Ch4 is
*** 6350,6356 ****
           --  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));
--- 6415,6431 ----
           --  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. We first need to make them explicit for
!          --  build-in-place functions in anonymous contexts, because calls to
!          --  these do not go through Expand_Ctrl_Actions.
! 
!          if Is_Build_In_Place_Function_Call (Thenx) then
!             Make_Build_In_Place_Call_In_Anonymous_Context (Thenx);
!          end if;
! 
!          if Is_Build_In_Place_Function_Call (Elsex) then
!             Make_Build_In_Place_Call_In_Anonymous_Context (Elsex);
!          end if;
  
           Process_Transients_In_Expression (N, Then_Actions (N));
           Process_Transients_In_Expression (N, Else_Actions (N));
*************** package body Exp_Ch4 is
*** 7776,7782 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Null;
  
     ---------------------
--- 7851,7857 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Null;
  
     ---------------------
*************** package body Exp_Ch4 is
*** 7810,7816 ****
  
        --  Deal with software overflow checking
  
!       if Is_Signed_Integer_Type (Typ)
          and then Do_Overflow_Check (N)
        then
           --  The only case to worry about is when the argument is equal to the
--- 7885,7891 ----
  
        --  Deal with software overflow checking
  
!       if Has_Overflow_Operations (Typ)
          and then Do_Overflow_Check (N)
        then
           --  The only case to worry about is when the argument is equal to the
*************** package body Exp_Ch4 is
*** 7880,7888 ****
           end if;
        end if;
  
!       --  Arithmetic overflow checks for signed integer/fixed point types
  
!       if Is_Signed_Integer_Type (Typ) or else Is_Fixed_Point_Type (Typ) then
           Apply_Arithmetic_Overflow_Check (N);
           return;
        end if;
--- 7955,7966 ----
           end if;
        end if;
  
!       --  Arithmetic overflow checks for signed integer/fixed point types,
!       --  and signed integer types with unsigned base range aspect.
  
!       if Has_Overflow_Operations (Typ)
!         or else Is_Fixed_Point_Type (Typ)
!       then
           Apply_Arithmetic_Overflow_Check (N);
           return;
        end if;
*************** package body Exp_Ch4 is
*** 8189,8194 ****
--- 8267,8279 ----
        --  Determines whether a type has a subcomponent of an unconstrained
        --  Unchecked_Union subtype. Typ is a record type.
  
+       procedure Warn_On_Abstract_Equality_For_Component
+         (Comp_Type : Entity_Id; Comp : Entity_Id);
+       --  If Comp_Type is a record type with a user-defined abstract primitive
+       --  equality, then issue a warning that Program_Error will be raised.
+       --  Comp is Empty in the array case. In the record case, it is the
+       --  component declaration, and is used in the message.
+ 
        -------------------------
        -- Build_Equality_Call --
        -------------------------
*************** package body Exp_Ch4 is
*** 8413,8418 ****
--- 8498,8530 ----
               Unconstrained_UU_In_Component_List (Optional_Component_List);
        end Has_Unconstrained_UU_Component;
  
+       ---------------------------------------------
+       -- Warn_On_Abstract_Equality_For_Component --
+       ---------------------------------------------
+ 
+       procedure Warn_On_Abstract_Equality_For_Component
+         (Comp_Type : Entity_Id; Comp : Entity_Id)
+       is
+          Eq : Entity_Id;
+       begin
+          if Is_Record_Type (Underlying_Type (Comp_Type)) then
+             Eq := Get_User_Defined_Equality (Comp_Type);
+ 
+             if Present (Eq) and then Is_Abstract_Subprogram (Eq) then
+                Error_Msg_Warn := SPARK_Mode /= On;
+                Error_Msg_NE ("call to abstract equality function of "
+                              & "component type &<<", N, Comp_Type);
+                Error_Msg_N ("\Program_Error [<<", N);
+ 
+                if Present (Comp) then
+                   Error_Msg_Sloc := Sloc (Comp);
+                   Error_Msg_NE
+                     ("\abstract ""="" called for component & #<<", N, Comp);
+                end if;
+             end if;
+          end if;
+       end Warn_On_Abstract_Equality_For_Component;
+ 
        --  Local variables
  
        Typl : Entity_Id;
*************** package body Exp_Ch4 is
*** 8481,8486 ****
--- 8593,8609 ----
  
        elsif Is_Array_Type (Typl) then
  
+          --  If the outer type doesn't have a user-defined equality operation,
+          --  check whether its component type has an abstract equality, and
+          --  warn if so. Such a component equality function will raise
+          --  Program_Error of objects of the outer type are compared using
+          --  predefined equality.
+ 
+          if No (Get_User_Defined_Equality (Typl)) then
+             Warn_On_Abstract_Equality_For_Component
+               (Component_Type (Typl), Comp => Empty);
+          end if;
+ 
           --  If we are doing full validity checking, and it is possible for the
           --  array elements to be invalid then expand out array comparisons to
           --  make sure that we check the array elements.
*************** package body Exp_Ch4 is
*** 8550,8555 ****
--- 8673,8709 ----
  
        elsif Is_Record_Type (Typl) then
  
+          --  When outer type doesn't have a user-defined equality operation,
+          --  check whether any of its components' types have an abstract
+          --  equality, and warn if so. Such component equality functions will
+          --  raise Program_Error when objects of the outer type are compared
+          --  using predefined equality.
+ 
+          --  ??? Note that this warning is currently only issued in cases of
+          --  top-level components of the type and not for deeper subcomponents.
+          --  Those could be handled with more work, such as by adding a flag
+          --  on record type entities, but it's not clear that it would be
+          --  worth the effort. Another limitation is that the warning check
+          --  is not done for tagged types in some cases, because equality
+          --  comparisons for those can be changed to calls at an earlier point
+          --  during analysis and resolution, and do not reach this code (but in
+          --  many cases tagged equality comparisons do reach the code below).
+ 
+          if No (Get_User_Defined_Equality (Typl)) then
+             declare
+                Comp : Entity_Id := First_Component (Typl);
+             begin
+                while Present (Comp) loop
+                   if Chars (Comp) /= Name_uParent then
+                      Warn_On_Abstract_Equality_For_Component
+                        (Etype (Comp), Comp);
+                   end if;
+ 
+                   Next_Component (Comp);
+                end loop;
+             end;
+          end if;
+ 
           --  For tagged types, use the primitive "="
  
           if Is_Tagged_Type (Typl) then
*************** package body Exp_Ch4 is
*** 8700,8705 ****
--- 8854,8866 ----
  
        Bastyp : Entity_Id;
  
+       procedure Expand_Exponentiation;
+       --  Expand N into code that computes Left_Opnd(N) ** Right_Opnd(N) using
+       --  the standard logarithmic approach. This routine is used to expand in
+       --  line the exponentiation of unsigned base range operands with overflow
+       --  checks, because there is no suitable implementation of it in the
+       --  runtime library.
+ 
        function Wrap_MA (Exp : Node_Id) return Node_Id;
        --  Given an expression Exp, if the root type is Float or Long_Float,
        --  then wrap the expression in a call of Bastyp'Machine, to stop any
*************** package body Exp_Ch4 is
*** 8707,8712 ****
--- 8868,8997 ----
        --  a static constant and B is a variable with the same value. For any
        --  other type, the node Exp is returned unchanged.
  
+       ---------------------------
+       -- Expand_Exponentiation --
+       ---------------------------
+ 
+       procedure Expand_Exponentiation is
+          Loc       : constant Source_Ptr := Sloc (N);
+          Decls     : constant List_Id    := New_List;
+          Exp       : constant Entity_Id  := Make_Temporary (Loc, 'E');
+          Factor    : constant Entity_Id  := Make_Temporary (Loc, 'F');
+          L         : constant Node_Id    := Left_Opnd (N);
+          L_Typ     : constant Entity_Id  := Etype (L);
+          Result    : constant Entity_Id  := Make_Temporary (Loc, 'R');
+          R         : constant Node_Id    := Right_Opnd (N);
+          R_Typ     : constant Entity_Id  := Etype (R);
+          Stmts     : constant List_Id    := New_List;
+          Then_List : constant List_Id    := New_List;
+ 
+       begin
+          --  Generate:
+           --    do
+           --       declare
+           --          Result : Typ   := 1;
+           --          Factor : L_Typ := Left_Opnd (N);
+           --          Exp    : R_Typ := Right_Opnd (N);
+           --       begin
+           --          loop
+           --             if Exp rem 2 /= 0 then
+           --                Result := Result * Factor;
+           --             end if;
+           --             Exp := Exp / 2;
+           --             if Exp = 0 then
+           --                exit;
+           --             end if;
+           --             Factor := Factor * Factor;
+           --          end loop;
+           --       end;
+           --    in Result end
+ 
+          Append_To (Decls,
+            Make_Object_Declaration (Loc,
+              Defining_Identifier => Result,
+              Object_Definition   => New_Occurrence_Of (Typ, Loc),
+              Expression          => Make_Integer_Literal (Loc, Uint_1)));
+ 
+          Append_To (Decls,
+            Make_Object_Declaration (Loc,
+              Defining_Identifier => Factor,
+              Object_Definition   => New_Occurrence_Of (L_Typ, Loc),
+              Expression          => New_Copy_Tree (L)));
+ 
+          Append_To (Decls,
+            Make_Object_Declaration (Loc,
+              Defining_Identifier => Exp,
+              Object_Definition   => New_Occurrence_Of (R_Typ, Loc),
+              Expression          => New_Copy_Tree (R)));
+ 
+          Append_To (Then_List,
+            Make_Loop_Statement (Loc,
+              Statements       => New_List (
+ 
+                Make_If_Statement (Loc,
+                  Condition       =>
+                    Make_Op_Ne (Loc,
+                      Left_Opnd  =>
+                        Make_Op_Rem (Loc,
+                          Left_Opnd => New_Occurrence_Of (Exp, Loc),
+                          Right_Opnd => Make_Integer_Literal (Loc, Uint_2)),
+                      Right_Opnd => Make_Integer_Literal (Loc, Uint_0)),
+ 
+                  Then_Statements => New_List (
+                    Make_Assignment_Statement (Loc,
+                      Name =>
+                        New_Occurrence_Of (Result, Loc),
+                      Expression =>
+                        Make_Op_Multiply (Loc,
+                          Left_Opnd => New_Occurrence_Of (Result, Loc),
+                          Right_Opnd => New_Occurrence_Of (Factor, Loc))))),
+ 
+                Make_Assignment_Statement (Loc,
+                  Name =>
+                    New_Occurrence_Of (Exp, Loc),
+                  Expression =>
+                    Make_Op_Divide (Loc,
+                      Left_Opnd => New_Occurrence_Of (Exp, Loc),
+                      Right_Opnd => Make_Integer_Literal (Loc, Uint_2))),
+ 
+                Make_If_Statement (Loc,
+                  Condition       =>
+                    Make_Op_Eq (Loc,
+                      Left_Opnd  => New_Occurrence_Of (Exp, Loc),
+                      Right_Opnd => Make_Integer_Literal (Loc, Uint_0)),
+                  Then_Statements =>
+                    New_List (Make_Exit_Statement (Loc))),
+ 
+                Make_Assignment_Statement (Loc,
+                  Name =>
+                    New_Occurrence_Of (Factor, Loc),
+                  Expression =>
+                    Make_Op_Multiply (Loc,
+                      Left_Opnd => New_Occurrence_Of (Factor, Loc),
+                      Right_Opnd => New_Occurrence_Of (Factor, Loc)))
+              ),
+              End_Label        => Empty));
+ 
+          Append_To (Stmts,
+            Make_If_Statement (Loc,
+              Condition       =>
+                Make_Op_Ne (Loc,
+                  Left_Opnd  => New_Occurrence_Of (Exp, Loc),
+                  Right_Opnd => Make_Integer_Literal (Loc, Uint_0)),
+ 
+              Then_Statements => Then_List));
+ 
+          Rewrite (N,
+            Make_Expression_With_Actions (Loc,
+              Actions    => New_List (
+                Make_Block_Statement (Loc,
+                  Declarations => Decls,
+                  Handled_Statement_Sequence =>
+                    Make_Handled_Sequence_Of_Statements (Loc,
+                      Statements => Stmts))),
+              Expression => New_Occurrence_Of (Result, Loc)));
+       end Expand_Exponentiation;
+ 
        -------------
        -- Wrap_MA --
        -------------
*************** package body Exp_Ch4 is
*** 8976,8982 ****
              --  therefore we might need to generate an overflow check here
              --  if the type is signed.
  
!             if Is_Signed_Integer_Type (Typ) and then Ovflo then
                 declare
                    OK : Boolean;
                    Lo : Uint;
--- 9261,9267 ----
              --  therefore we might need to generate an overflow check here
              --  if the type is signed.
  
!             if Has_Overflow_Operations (Typ) and then Ovflo then
                 declare
                    OK : Boolean;
                    Lo : Uint;
*************** package body Exp_Ch4 is
*** 9013,9022 ****
  
        --  Fall through if exponentiation must be done using a runtime routine
  
!       --  First deal with modular case
! 
!       if Is_Modular_Integer_Type (Rtyp) then
  
           --  Nonbinary modular case, we call the special exponentiation
           --  routine for the nonbinary case, converting the argument to
           --  Long_Long_Integer and passing the modulus value. Then the
--- 9298,9308 ----
  
        --  Fall through if exponentiation must be done using a runtime routine
  
!       --  First deal with modular case.
  
+       if Has_Modular_Operations (Rtyp)
+         and then not Has_Unsigned_Base_Range_Aspect (Base_Type (Typ))
+       then
           --  Nonbinary modular case, we call the special exponentiation
           --  routine for the nonbinary case, converting the argument to
           --  Long_Long_Integer and passing the modulus value. Then the
*************** package body Exp_Ch4 is
*** 9076,9107 ****
        --  checks are required, and one when they are not required, since there
        --  is a real gain in omitting checks on many machines.
  
!       elsif Is_Signed_Integer_Type (Rtyp) then
           if Esize (Rtyp) <= Standard_Integer_Size then
!             Etyp := Standard_Integer;
  
!             if Ovflo then
!                Rent := RE_Exp_Integer;
              else
!                Rent := RE_Exn_Integer;
              end if;
  
           elsif Esize (Rtyp) <= Standard_Long_Long_Integer_Size then
!             Etyp := Standard_Long_Long_Integer;
  
!             if Ovflo then
!                Rent := RE_Exp_Long_Long_Integer;
              else
!                Rent := RE_Exn_Long_Long_Integer;
!             end if;
  
           else
!             Etyp := Standard_Long_Long_Long_Integer;
  
!             if Ovflo then
!                Rent := RE_Exp_Long_Long_Long_Integer;
              else
!                Rent := RE_Exn_Long_Long_Long_Integer;
              end if;
           end if;
  
--- 9362,9430 ----
        --  checks are required, and one when they are not required, since there
        --  is a real gain in omitting checks on many machines.
  
!       elsif Has_Overflow_Operations (Rtyp)
!         or else Has_Unsigned_Base_Range_Aspect (Base_Type (Typ))
!       then
           if Esize (Rtyp) <= Standard_Integer_Size then
!             if Has_Unsigned_Base_Range_Aspect (Base_Type (Typ)) then
!                Etyp := RTE (RE_Unsigned);
  
!                if Ovflo then
!                   Expand_Exponentiation;
!                   Analyze_And_Resolve (N, Typ);
!                   return;
!                else
!                   Rent := RE_Exp_Unsigned;
!                end if;
              else
!                Etyp := Standard_Integer;
! 
!                if Ovflo then
!                   Rent := RE_Exp_Integer;
!                else
!                   Rent := RE_Exn_Integer;
!                end if;
              end if;
  
           elsif Esize (Rtyp) <= Standard_Long_Long_Integer_Size then
!             if Has_Unsigned_Base_Range_Aspect (Base_Type (Typ)) then
!                Etyp := RTE (RE_Long_Long_Unsigned);
  
!                if Ovflo then
!                   Expand_Exponentiation;
!                   Analyze_And_Resolve (N, Typ);
!                   return;
!                else
!                   Rent := RE_Exp_Long_Long_Unsigned;
!                end if;
              else
!                Etyp := Standard_Long_Long_Integer;
  
+                if Ovflo then
+                   Rent := RE_Exp_Long_Long_Integer;
+                else
+                   Rent := RE_Exn_Long_Long_Integer;
+                end if;
+             end if;
           else
!             if Has_Unsigned_Base_Range_Aspect (Base_Type (Typ)) then
!                Etyp := RTE (RE_Long_Long_Long_Unsigned);
  
!                if Ovflo then
!                   Expand_Exponentiation;
!                   Analyze_And_Resolve (N, Typ);
!                   return;
!                else
!                   Rent := RE_Exp_Long_Long_Long_Unsigned;
!                end if;
              else
!                Etyp := Standard_Long_Long_Long_Integer;
! 
!                if Ovflo then
!                   Rent := RE_Exp_Long_Long_Long_Integer;
!                else
!                   Rent := RE_Exn_Long_Long_Long_Integer;
!                end if;
              end if;
           end if;
  
*************** package body Exp_Ch4 is
*** 9161,9167 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Op_Expon;
  
     --------------------
--- 9484,9490 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Op_Expon;
  
     --------------------
*************** package body Exp_Ch4 is
*** 9397,9403 ****
        end if;
  
        if not Backend_Overflow_Checks_On_Target
!          and then Is_Signed_Integer_Type (Typ)
           and then Do_Overflow_Check (N)
        then
           --  Software overflow checking expands -expr into (0 - expr)
--- 9720,9726 ----
        end if;
  
        if not Backend_Overflow_Checks_On_Target
!          and then Has_Overflow_Operations (Typ)
           and then Do_Overflow_Check (N)
        then
           --  Software overflow checking expands -expr into (0 - expr)
*************** package body Exp_Ch4 is
*** 9708,9714 ****
              --  If the result is modular, perform the reduction of the result
              --  appropriately.
  
!             if Is_Modular_Integer_Type (Typ)
                and then not Non_Binary_Modulus (Typ)
              then
                 Rewrite (N,
--- 10031,10037 ----
              --  If the result is modular, perform the reduction of the result
              --  appropriately.
  
!             if Has_Modular_Operations (Typ)
                and then not Non_Binary_Modulus (Typ)
              then
                 Rewrite (N,
*************** package body Exp_Ch4 is
*** 9736,9742 ****
        --  Same processing for the operands the other way round
  
        elsif Lp2 then
!          if Is_Modular_Integer_Type (Typ)
             and then not Non_Binary_Modulus (Typ)
           then
              Rewrite (N,
--- 10059,10065 ----
        --  Same processing for the operands the other way round
  
        elsif Lp2 then
!          if Has_Modular_Operations (Typ)
             and then not Non_Binary_Modulus (Typ)
           then
              Rewrite (N,
*************** package body Exp_Ch4 is
*** 9821,9827 ****
  
        --  Non-fixed point cases, check software overflow checking required
  
!       elsif Is_Signed_Integer_Type (Etype (N)) then
           Apply_Arithmetic_Overflow_Check (N);
        end if;
  
--- 10144,10150 ----
  
        --  Non-fixed point cases, check software overflow checking required
  
!       elsif Has_Overflow_Operations (Etype (N)) then
           Apply_Arithmetic_Overflow_Check (N);
        end if;
  
*************** package body Exp_Ch4 is
*** 10385,10393 ****
           return;
        end if;
  
!       --  Arithmetic overflow checks for signed integer/fixed point types
  
!       if Is_Signed_Integer_Type (Typ) or else Is_Fixed_Point_Type (Typ) then
           Apply_Arithmetic_Overflow_Check (N);
        end if;
  
--- 10708,10719 ----
           return;
        end if;
  
!       --  Arithmetic overflow checks for signed integer/fixed point types,
!       --  and signed integer types with unsigned base range aspect.
  
!       if Has_Overflow_Operations (Typ)
!         or else Is_Fixed_Point_Type (Typ)
!       then
           Apply_Arithmetic_Overflow_Check (N);
        end if;
  
*************** package body Exp_Ch4 is
*** 12002,12007 ****
--- 12328,12337 ----
        --  Case of converting to an access type
  
        if Is_Access_Type (Target_Type) then
+          --  Generate a null access check first for the sake of ACATS c3a0025
+ 
+          Apply_Constraint_Check (Operand, Target_Type);
+ 
           --  In terms of accessibility rules, an anonymous access discriminant
           --  is not considered separate from its parent object.
  
*************** package body Exp_Ch4 is
*** 12030,12038 ****
           --  Apply an accessibility check when the conversion operand is an
           --  access parameter (or a renaming thereof), unless conversion was
           --  expanded from an Unchecked_ or Unrestricted_Access attribute,
!          --  or for the actual of a class-wide interface parameter. Note that
!          --  other checks may still need to be applied below (such as tagged
!          --  type checks).
  
           elsif Is_Entity_Name (Operand_Acc)
             and then Has_Extra_Accessibility (Entity (Operand_Acc))
--- 12360,12368 ----
           --  Apply an accessibility check when the conversion operand is an
           --  access parameter (or a renaming thereof), unless conversion was
           --  expanded from an Unchecked_ or Unrestricted_Access attribute,
!          --  or for the actual of a tagged type parameter in a synthesized
!          --  subprogram call. Note that other checks may still need to be
!          --  applied below (such as tagged type checks).
  
           elsif Is_Entity_Name (Operand_Acc)
             and then Has_Extra_Accessibility (Entity (Operand_Acc))
*************** package body Exp_Ch4 is
*** 12045,12052 ****
                and then Nkind (Parent (N)) in N_Function_Call
                                             | N_Parameter_Association
                                             | N_Procedure_Call_Statement
!               and then Is_Interface (Designated_Type (Target_Type))
!               and then Is_Class_Wide_Type (Designated_Type (Target_Type))
              then
                 null;
  
--- 12375,12381 ----
                and then Nkind (Parent (N)) in N_Function_Call
                                             | N_Parameter_Association
                                             | N_Procedure_Call_Statement
!               and then Is_Tagged_Type (Designated_Type (Target_Type))
              then
                 null;
  
*************** package body Exp_Ch4 is
*** 12125,12131 ****
  
        --  Case of conversions of tagged types and access to tagged types
  
!       --  When needed, that is to say when the expression is class-wide, Add
        --  runtime a tag check for (strict) downward conversion by using the
        --  membership test, generating:
  
--- 12454,12460 ----
  
        --  Case of conversions of tagged types and access to tagged types
  
!       --  When needed, that is to say when the expression is class-wide, add
        --  runtime a tag check for (strict) downward conversion by using the
        --  membership test, generating:
  
*************** package body Exp_Ch4 is
*** 12258,12268 ****
              end if;
           end Tagged_Conversion;
  
-       --  Case of other access type conversions
- 
-       elsif Is_Access_Type (Target_Type) then
-          Apply_Constraint_Check (Operand, Target_Type);
- 
        --  Case of conversions from a fixed-point type
  
        --  These conversions require special expansion and processing, found in
--- 12587,12592 ----
*************** package body Exp_Ch4 is
*** 13345,13351 ****
  
           --  The master is the innermost enclosing non-transient construct
  
!          Insert_Action (Find_Hook_Context (Expr), Master_Node_Decl);
  
           --  Propagate the relaxed finalization semantics
  
--- 13669,13675 ----
  
           --  The master is the innermost enclosing non-transient construct
  
!          Insert_Action (Find_Master_Context (Expr), Master_Node_Decl);
  
           --  Propagate the relaxed finalization semantics
  
*************** package body Exp_Ch4 is
*** 13591,13597 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Insert_Dereference_Action;
  
     --------------------------------
--- 13915,13921 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Insert_Dereference_Action;
  
     --------------------------------
*************** package body Exp_Ch4 is
*** 14030,14040 ****
  
     function Minimized_Eliminated_Overflow_Check (N : Node_Id) return Boolean is
     begin
!       --  The MINIMIZED mode operates in Long_Long_Integer so we cannot use it
!       --  if the type of the expression is already larger.
  
        return
!         Is_Signed_Integer_Type (Etype (N))
            and then Overflow_Check_Mode in Minimized_Or_Eliminated
            and then not (Overflow_Check_Mode = Minimized
                           and then
--- 14354,14364 ----
  
     function Minimized_Eliminated_Overflow_Check (N : Node_Id) return Boolean is
     begin
!       --  The MINIMIZED mode operates in Long_Long_[Integer|Unsigned] so we
!       --  cannot use it if the type of the expression is already larger.
  
        return
!         Has_Overflow_Operations (Etype (N))
            and then Overflow_Check_Mode in Minimized_Or_Eliminated
            and then not (Overflow_Check_Mode = Minimized
                           and then
*************** package body Exp_Ch4 is
*** 14220,14225 ****
--- 14544,14582 ----
        end if;
     end Narrow_Large_Operation;
  
+    ---------------------
+    -- New_Assign_Copy --
+    ---------------------
+ 
+    function New_Assign_Copy (N : Node_Id; Expr : Node_Id) return Node_Id is
+       New_N : constant Node_Id := New_Copy (N);
+ 
+    begin
+       Set_Sloc       (New_N, Sloc (Expr));
+       Set_Name       (New_N, New_Copy_Tree (Name (N)));
+       Set_Expression (New_N, Expr);
+ 
+       --  The result of a function call need not be adjusted if it has
+       --  already been adjusted in the called function.
+ 
+       if No_Finalize_Actions (New_N)
+         and then Back_End_Return_Slot
+         and then Nkind (Expr) = N_Function_Call
+       then
+          Set_No_Finalize_Actions (New_N, False);
+          Set_No_Ctrl_Actions (New_N);
+       end if;
+ 
+       --  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;
+ 
+       return New_N;
+    end New_Assign_Copy;
+ 
     --------------------------------
     -- Optimize_Length_Comparison --
     --------------------------------
*************** package body Exp_Ch4 is
*** 14234,14240 ****
        --  First and Last attribute reference nodes, which end up as left and
        --  right operands of the optimized result.
  
!       Is_Zero : Boolean;
        --  True for comparison operand of zero
  
        Maybe_Superflat : Boolean;
--- 14591,14597 ----
        --  First and Last attribute reference nodes, which end up as left and
        --  right operands of the optimized result.
  
!       Is_Zero : Boolean := False; -- prevent junk warning
        --  True for comparison operand of zero
  
        Maybe_Superflat : Boolean;
*************** package body Exp_Ch4 is
*** 14245,14251 ****
        --  is itself the length of an array with the same bounds as the array on
        --  the LHS, we can entirely optimize away the comparison.
  
!       Comp : Node_Id;
        --  Comparison operand, set only if Is_Zero is false
  
        Ent : array (Pos range 1 .. 2) of Entity_Id := (Empty, Empty);
--- 14602,14608 ----
        --  is itself the length of an array with the same bounds as the array on
        --  the LHS, we can entirely optimize away the comparison.
  
!       Comp : Node_Id := Empty; -- prevent junk warning
        --  Comparison operand, set only if Is_Zero is false
  
        Ent : array (Pos range 1 .. 2) of Entity_Id := (Empty, Empty);
*************** package body Exp_Ch4 is
*** 14772,14778 ****
           Loc    : constant Source_Ptr := Sloc (Obj_Decl);
           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.
  
--- 15129,15135 ----
           Loc    : constant Source_Ptr := Sloc (Obj_Decl);
           Obj_Id : constant Entity_Id  := Defining_Identifier (Obj_Decl);
  
!          Master_Context : constant Node_Id := Find_Master_Context (Expr);
           --  The node after which to insert deferred finalization actions. This
           --  is usually the innermost enclosing non-transient construct.
  
*************** package body Exp_Ch4 is
*** 14814,14820 ****
           --  enclosing non-transient construct.
  
           else
!             Fin_Context := Hook_Context;
           end if;
  
           --  Create the declaration of the Master_Node for the object and
--- 15171,15177 ----
           --  enclosing non-transient construct.
  
           else
!             Fin_Context := Master_Context;
           end if;
  
           --  Create the declaration of the Master_Node for the object and
*************** package body Exp_Ch4 is
*** 14824,14830 ****
           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
  
--- 15181,15187 ----
           Master_Node_Id := Make_Temporary (Loc, 'N');
           Master_Node_Decl :=
             Make_Master_Node_Declaration (Loc, Master_Node_Id, Obj_Id);
!          Insert_Action (Master_Context, Master_Node_Decl);
  
           --  Generate the attachment of the object to the Master_Node
  
*************** package body Exp_Ch4 is
*** 14844,14850 ****
  
           --  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.
  
--- 15201,15207 ----
  
           --  Finalize the object after the context has been evaluated
  
!          --  Note that the node returned by Find_Master_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.
  
*************** package body Exp_Ch4 is
*** 14952,14960 ****
        Op1 : Node_Id;
        Op2 : Node_Id) return Boolean
     is
!       Target : Entity_Id;
! 
!       function Is_Safe_Operand (Op : Node_Id) return Boolean;
        --  Operand is safe if it cannot overlap part of the target of the
        --  operation. If the operand and the target are identical, the operand
        --  is safe. The operand can be empty in the case of negation.
--- 15309,15315 ----
        Op1 : Node_Id;
        Op2 : Node_Id) return Boolean
     is
!       function Is_Safe_Operand (Op : Node_Id; Tgt : Entity_Id) return Boolean;
        --  Operand is safe if it cannot overlap part of the target of the
        --  operation. If the operand and the target are identical, the operand
        --  is safe. The operand can be empty in the case of negation.
*************** package body Exp_Ch4 is
*** 14978,14984 ****
        -- Is_Safe_Operand --
        ---------------------
  
!       function Is_Safe_Operand (Op : Node_Id) return Boolean is
        begin
           if No (Op) then
              return True;
--- 15333,15340 ----
        -- Is_Safe_Operand --
        ---------------------
  
!       function Is_Safe_Operand (Op : Node_Id; Tgt : Entity_Id) return Boolean
!       is
        begin
           if No (Op) then
              return True;
*************** package body Exp_Ch4 is
*** 14992,15001 ****
           elsif Nkind (Op) = N_Slice then
              return
                Is_Unaliased (Prefix (Op))
!                 and then Entity (Prefix (Op)) /= Target;
  
           elsif Nkind (Op) = N_Op_Not then
!             return Is_Safe_Operand (Right_Opnd (Op));
  
           else
              return False;
--- 15348,15357 ----
           elsif Nkind (Op) = N_Slice then
              return
                Is_Unaliased (Prefix (Op))
!                 and then Entity (Prefix (Op)) /= Tgt;
  
           elsif Nkind (Op) = N_Op_Not then
!             return Is_Safe_Operand (Right_Opnd (Op), Tgt);
  
           else
              return False;
*************** package body Exp_Ch4 is
*** 15020,15027 ****
           return False;
  
        else
!          Target := Entity (Lhs);
!          return Is_Safe_Operand (Op1) and then Is_Safe_Operand (Op2);
        end if;
     end Safe_In_Place_Array_Op;
  
--- 15376,15383 ----
           return False;
  
        else
!          return Is_Safe_Operand (Op1, Entity (Lhs))
!            and then Is_Safe_Operand (Op2, Entity (Lhs));
        end if;
     end Safe_In_Place_Array_Op;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch4.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch4.ads
*** gcc-15.2.0/gcc/ada/exp_ch4.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch4.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 124,127 ****
--- 124,133 ----
     --  have special circuitry in Expand_N_Type_Conversion to promote both of
     --  the operands to type Integer.
  
+    procedure Fixup_Universal_Fixed_Operation (N : Node_Id);
+    --  N is a N_Op_Divide or N_Op_Multiply node whose result is universal
+    --  fixed. We do not have such a type at runtime, so the purpose of this
+    --  routine is to find the real type by looking up the tree. We also
+    --  determine if the operation must be rounded.
+ 
  end Exp_Ch4;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch5.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch5.adb
*** gcc-15.2.0/gcc/ada/exp_ch5.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch5.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 28,33 ----
*************** with Opt;            use Opt;
*** 49,55 ****
  with Restrict;       use Restrict;
  with Rident;         use Rident;
  with Rtsfind;        use Rtsfind;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sem;            use Sem;
--- 48,53 ----
*************** package body Exp_Ch5 is
*** 168,178 ****
     --  a procedure with an in-out parameter, and expanded as such.
  
     procedure Expand_Formal_Container_Loop (N : Node_Id);
!    --  Use the primitives specified in an Iterable aspect to expand a loop
!    --  over a so-called formal container, primarily for SPARK usage.
  
     procedure Expand_Formal_Container_Element_Loop (N : Node_Id);
!    --  Same, for an iterator of the form " For E of C". In this case the
     --  iterator provides the name of the element, and the cursor is generated
     --  internally.
  
--- 166,177 ----
     --  a procedure with an in-out parameter, and expanded as such.
  
     procedure Expand_Formal_Container_Loop (N : Node_Id);
!    --  Use the primitives specified in an Iterable aspect to expand a loop.
!    --  The Iterable aspect is used by the SPARK formal containers, and can
!    --  also be used by user code.
  
     procedure Expand_Formal_Container_Element_Loop (N : Node_Id);
!    --  Same, for an iterator of the form "for E of C". In this case the
     --  iterator provides the name of the element, and the cursor is generated
     --  internally.
  
*************** package body Exp_Ch5 is
*** 190,195 ****
--- 189,197 ----
     --  specification and Container is either the Container (for OF) or the
     --  iterator (for IN).
  
+    procedure Expand_Loop_Flow_Statement (N : N_Loop_Flow_Statement_Id);
+    --  Common processing for expansion of "loop flow" statements
+ 
     procedure Expand_Predicated_Loop (N : Node_Id);
     --  Expand for loop over predicated subtype
  
*************** package body Exp_Ch5 is
*** 280,293 ****
            Statements => Stats,
            End_Label  => Empty);
  
!       --  If the contruct has a specified loop name, preserve it in the new
!       --  loop, for possible use in exit statements.
  
!       if Present (Identifier (N))
!         and then Comes_From_Source (Identifier (N))
!       then
!          Set_Identifier (New_Loop, Identifier (N));
!       end if;
     end Build_Formal_Container_Iteration;
  
     ------------------------------
--- 282,292 ----
            Statements => Stats,
            End_Label  => Empty);
  
!       --  Preserve the construct's loop name in the new loop, for possible use
!       --  in exit statements.
  
!       pragma Assert (Present (Identifier (N)));
!       Set_Identifier (New_Loop, Identifier (N));
     end Build_Formal_Container_Iteration;
  
     ------------------------------
*************** package body Exp_Ch5 is
*** 1154,1160 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_Assign_Array;
  
     ------------------------------
--- 1153,1159 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_Assign_Array;
  
     ------------------------------
*************** package body Exp_Ch5 is
*** 2254,2260 ****
        function Replace_Target (N : Node_Id) return Traverse_Result;
        --  Replace occurrences of the target name by the proper entity: either
        --  the entity of the LHS in simple cases, or the formal of the
!       --  constructed procedure otherwise.
  
        --------------------
        -- Replace_Target --
--- 2253,2260 ----
        function Replace_Target (N : Node_Id) return Traverse_Result;
        --  Replace occurrences of the target name by the proper entity: either
        --  the entity of the LHS in simple cases, or the formal of the
!       --  constructed procedure otherwise. Mark all nodes as Analyzed=False
!       --  so reanalysis will occur.
  
        --------------------
        -- Replace_Target --
*************** package body Exp_Ch5 is
*** 2264,2283 ****
        begin
           if Nkind (N) = N_Target_Name then
              Rewrite (N, New_Occurrence_Of (Ent, Sloc (N)));
- 
-          --  The expression will be reanalyzed when the enclosing assignment
-          --  is reanalyzed, so reset the entity, which may be a temporary
-          --  created during analysis, e.g. a loop variable for an iterated
-          --  component association. However, if entity is callable then
-          --  resolution has established its proper identity (including in
-          --  rewritten prefixed calls) so we must preserve it.
- 
-          elsif Is_Entity_Name (N) then
-             if Present (Entity (N))
-               and then not Is_Overloadable (Entity (N))
-             then
-                Set_Entity (N, Empty);
-             end if;
           end if;
  
           Set_Analyzed (N, False);
--- 2264,2269 ----
*************** package body Exp_Ch5 is
*** 2539,2544 ****
--- 2525,2544 ----
              end if;
  
              Apply_Predicate_Check (Rhs, Typ);
+ 
+             --  If the generation of the check required capturing a function
+             --  call to remove its side effects, and the assignment initially
+             --  was to be done without controlled actions, then change it to
+             --  be done without finalization only, in other words restore the
+             --  adjustment of the LHS, because the RHS is now a temporary that
+             --  will be finalized after the assignment is complete.
+ 
+             if No_Ctrl_Actions (N)
+               and then Is_Captured_Function_Call (Rhs)
+             then
+                Set_No_Ctrl_Actions (N, False);
+                Set_No_Finalize_Actions (N, True);
+             end if;
           end if;
        end if;
  
*************** package body Exp_Ch5 is
*** 3455,3461 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Assignment_Statement;
  
     ------------------------------
--- 3455,3461 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Assignment_Statement;
  
     ------------------------------
*************** package body Exp_Ch5 is
*** 4118,4124 ****
  
        if Compile_Time_Known_Value (Expr)
          and then Has_Predicates (Etype (Expr))
!         and then not Predicates_Ignored (Etype (Expr))
          and then not Is_OK_Static_Expression (Expr)
        then
           Rewrite (N,
--- 4118,4124 ----
  
        if Compile_Time_Known_Value (Expr)
          and then Has_Predicates (Etype (Expr))
!         and then not Predicates_Ignored_In_Codegen (Etype (Expr))
          and then not Is_OK_Static_Expression (Expr)
        then
           Rewrite (N,
*************** package body Exp_Ch5 is
*** 4203,4209 ****
           --  generated case statements).
  
           if Validity_Check_Default
!            and then not Predicates_Ignored (Etype (Expr))
           then
              --  Recognize the simple case where Expr is an object reference
              --  and the case statement is directly preceded by an
--- 4203,4209 ----
           --  generated case statements).
  
           if Validity_Check_Default
!            and then not Predicates_Ignored_In_Codegen (Etype (Expr))
           then
              --  Recognize the simple case where Expr is an object reference
              --  and the case statement is directly preceded by an
*************** package body Exp_Ch5 is
*** 4378,4384 ****
              --  predicate, and there is no Others choice, Constraint_Error
              --  must be raised (RM 4.5.7 (21/3) and 5.4 (13)).
  
!             if Predicates_Ignored (Etype (Expr)) then
                 declare
                    Except  : constant Node_Id :=
                                Make_Raise_Constraint_Error (Loc,
--- 4378,4384 ----
              --  predicate, and there is no Others choice, Constraint_Error
              --  must be raised (RM 4.5.7 (21/3) and 5.4 (13)).
  
!             if Predicates_Ignored_In_Codegen (Etype (Expr)) then
                 declare
                    Except  : constant Node_Id :=
                                Make_Raise_Constraint_Error (Loc,
*************** package body Exp_Ch5 is
*** 4425,4440 ****
        end;
     end Expand_N_Case_Statement;
  
     -----------------------------
     -- Expand_N_Exit_Statement --
     -----------------------------
  
-    --  The only processing required is to deal with a possible C/Fortran
-    --  boolean value used as the condition for the exit statement.
- 
     procedure Expand_N_Exit_Statement (N : Node_Id) is
     begin
!       Adjust_Condition (Condition (N));
     end Expand_N_Exit_Statement;
  
     ----------------------------------
--- 4425,4522 ----
        end;
     end Expand_N_Case_Statement;
  
+    ---------------------------------
+    -- Expand_N_Continue_Statement --
+    ---------------------------------
+ 
+    procedure Expand_N_Continue_Statement (N : Node_Id) is
+       X : constant Node_Id := Call_Or_Target_Loop (N);
+ 
+       Loc : constant Source_Ptr := Sloc (N);
+ 
+       Label : E_Label_Id;
+    begin
+       if No (X) then
+          return;
+       end if;
+ 
+       if Nkind (X) = N_Procedure_Call_Statement then
+          Replace (N, X);
+          Analyze (N);
+          return;
+       end if;
+ 
+       Expand_Loop_Flow_Statement (N);
+ 
+       declare
+          L : constant E_Loop_Id := Call_Or_Target_Loop (N);
+          M : constant Node_Id := Continue_Mark (L);
+          A : constant Node_Id := Next (M);
+       begin
+          if not (Present (A) and then Nkind (A) = N_Label) then
+             --  This is the first continue statement that is expanded for this
+             --  loop; we set up the label that the goto statement will target.
+             declare
+                P : constant Node_Id := Atree.Node_Parent (L);
+ 
+                Decl_List : constant List_Id :=
+                  (if Nkind (P) = N_Implicit_Label_Declaration
+                   then List_Containing (P)
+                   else Declarations (Parent (Parent (P))));
+ 
+                Label_Entity : constant Entity_Id :=
+                  Make_Defining_Identifier
+                    (Loc, New_External_Name (Chars (L), 'C'));
+                Label_Id     : constant N_Identifier_Id :=
+                  Make_Identifier (Loc, Chars (Label_Entity));
+                Label_Node   : constant N_Label_Id :=
+                  Make_Label (Loc, Label_Id);
+                Label_Decl   : constant N_Implicit_Label_Declaration_Id :=
+                  Make_Implicit_Label_Declaration
+                    (Loc, Label_Entity, Label_Node);
+             begin
+                Mutate_Ekind (Label_Entity, E_Label);
+                Set_Etype (Label_Entity, Standard_Void_Type);
+ 
+                Set_Entity (Label_Id, Label_Entity);
+                Set_Etype (Label_Id, Standard_Void_Type);
+ 
+                Insert_After (Node => Label_Node, After => M);
+ 
+                Append (Node => Label_Decl, To => Decl_List);
+ 
+                Label := Label_Entity;
+             end;
+          else
+             --  Some other continue statement for this loop was expanded
+             --  already, so we can reuse the label that is already set up.
+             Label := Entity (Identifier (A));
+          end if;
+       end;
+ 
+       declare
+          C       : constant Opt_N_Subexpr_Id := Condition (N);
+          Goto_St : constant N_Goto_Statement_Id :=
+            Make_Goto_Statement (Loc, New_Occurrence_Of (Label, Loc));
+ 
+          New_St : constant Node_Id :=
+            (if Present (C)
+             then Make_If_Statement (Sloc (N), C, New_List (Goto_St))
+             else Goto_St);
+       begin
+          Set_Parent (New_St, Parent (N));
+          Replace (N, New_St);
+       end;
+ 
+    end Expand_N_Continue_Statement;
+ 
     -----------------------------
     -- Expand_N_Exit_Statement --
     -----------------------------
  
     procedure Expand_N_Exit_Statement (N : Node_Id) is
     begin
!       Expand_Loop_Flow_Statement (N);
     end Expand_N_Exit_Statement;
  
     ----------------------------------
*************** package body Exp_Ch5 is
*** 4478,4489 ****
            Declarations               => New_List (Init_Decl),
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => New_List (New_Loop))));
  
!       --  The loop parameter is declared by an object declaration, but within
!       --  the loop we must prevent user assignments to it, so we analyze the
!       --  declaration and reset the entity kind, before analyzing the rest of
!       --  the loop.
  
        Analyze (Init_Decl);
        Init_Name := Defining_Identifier (Init_Decl);
--- 4560,4579 ----
            Declarations               => New_List (Init_Decl),
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => Empty_List)));
  
!       --  The loop parameter is declared by an object declaration (Init_Decl),
!       --  but within the loop we must prevent user assignments to it, so we
!       --  analyze Init_Decl and reset the entity kind, before analyzing the
!       --  rest of the loop. First Preanalyze the (empty) block statement,
!       --  to set its Identifier, and then push that as the scope in which
!       --  to analyze Init_Decl. Fill in the Statements after preanalysis;
!       --  otherwise we incorrectly duplicate whatever temps are created
!       --  for the loop.
! 
!       Preanalyze (N);
!       Push_Scope (Entity (Identifier (N)));
!       Set_Statements (Handled_Statement_Sequence (N), New_List (New_Loop));
  
        Analyze (Init_Decl);
        Init_Name := Defining_Identifier (Init_Decl);
*************** package body Exp_Ch5 is
*** 4495,4500 ****
--- 4585,4592 ----
        Reinit_Field_To_Zero (Init_Name, F_SPARK_Pragma_Inherited);
        Mutate_Ekind (Init_Name, E_Loop_Parameter);
  
+       Pop_Scope;
+ 
        --  Wrap the block statements with the condition specified in the
        --  iterator filter when one is present.
  
*************** package body Exp_Ch5 is
*** 4514,4528 ****
  
        Set_Assignment_OK (Name (Advance));
        Analyze (N);
- 
-       --  Because we have to analyze the initial declaration of the loop
-       --  parameter multiple times its scope is incorrectly set at this point
-       --  to the one surrounding the block statement - so set the scope
-       --  manually to be the actual block statement, and indicate that it is
-       --  not visible after the block has been analyzed.
- 
-       Set_Scope (Init_Name, Entity (Identifier (N)));
-       Set_Is_Immediately_Visible (Init_Name, False);
     end Expand_Formal_Container_Loop;
  
     ------------------------------------------
--- 4606,4611 ----
*************** package body Exp_Ch5 is
*** 4978,4984 ****
        Array_Dim  : constant Pos        := Number_Dimensions (Array_Typ);
        Id         : constant Entity_Id  := Defining_Identifier (I_Spec);
        Loc        : constant Source_Ptr := Sloc (Isc);
!       Stats      : List_Id    := Statements (N);
        Core_Loop  : Node_Id;
        Dim1       : Int;
        Ind_Comp   : Node_Id;
--- 5061,5070 ----
        Array_Dim  : constant Pos        := Number_Dimensions (Array_Typ);
        Id         : constant Entity_Id  := Defining_Identifier (I_Spec);
        Loc        : constant Source_Ptr := Sloc (Isc);
! 
!       Stats : List_Id := Statements (N);
!       --  Maybe wrapped in a conditional if a filter is present
! 
        Core_Loop  : Node_Id;
        Dim1       : Int;
        Ind_Comp   : Node_Id;
*************** package body Exp_Ch5 is
*** 5268,5274 ****
        Id_Kind  : constant Entity_Kind := Ekind (Id);
        Loc      : constant Source_Ptr  := Sloc (N);
  
!       Stats    : List_Id     := Statements (N);
        --  Maybe wrapped in a conditional if a filter is present
  
        Cursor         : Entity_Id;
--- 5354,5360 ----
        Id_Kind  : constant Entity_Kind := Ekind (Id);
        Loc      : constant Source_Ptr  := Sloc (N);
  
!       Stats : List_Id := Statements (N);
        --  Maybe wrapped in a conditional if a filter is present
  
        Cursor         : Entity_Id;
*************** package body Exp_Ch5 is
*** 5756,5762 ****
        Loc    : constant Source_Ptr := Sloc (N);
        Scheme : constant Node_Id    := Iteration_Scheme (N);
        Stmt   : Node_Id;
- 
     begin
        --  Delete null loop
  
--- 5842,5847 ----
*************** package body Exp_Ch5 is
*** 5789,5795 ****
              Loop_Id : constant Entity_Id := Defining_Identifier (LPS);
              Ltype   : constant Entity_Id := Etype (Loop_Id);
              Btype   : constant Entity_Id := Base_Type (Ltype);
!             Stats   : constant List_Id   := Statements (N);
              Expr    : Node_Id;
              Decls   : List_Id;
              New_Id  : Entity_Id;
--- 5874,5880 ----
              Loop_Id : constant Entity_Id := Defining_Identifier (LPS);
              Ltype   : constant Entity_Id := Etype (Loop_Id);
              Btype   : constant Entity_Id := Base_Type (Ltype);
! 
              Expr    : Node_Id;
              Decls   : List_Id;
              New_Id  : Entity_Id;
*************** package body Exp_Ch5 is
*** 5810,5816 ****
                 Set_Statements (N,
                    New_List (Make_If_Statement (Loc,
                      Condition => Iterator_Filter (LPS),
!                     Then_Statements => Stats)));
                 Analyze_List (Statements (N));
              end if;
  
--- 5895,5901 ----
                 Set_Statements (N,
                    New_List (Make_If_Statement (Loc,
                      Condition => Iterator_Filter (LPS),
!                     Then_Statements => Statements (N))));
                 Analyze_List (Statements (N));
              end if;
  
*************** package body Exp_Ch5 is
*** 5930,5936 ****
                         Declarations => Decls,
                         Handled_Statement_Sequence =>
                           Make_Handled_Sequence_Of_Statements (Loc,
!                            Statements => Stats))),
  
                     End_Label => End_Label (N)));
  
--- 6015,6021 ----
                         Declarations => Decls,
                         Handled_Statement_Sequence =>
                           Make_Handled_Sequence_Of_Statements (Loc,
!                            Statements => Statements (N)))),
  
                     End_Label => End_Label (N)));
  
*************** package body Exp_Ch5 is
*** 5980,5987 ****
        --       ...
        --    end loop
  
!       elsif Present (Scheme)
!         and then Present (Condition_Actions (Scheme))
          and then Present (Condition (Scheme))
        then
           declare
--- 6065,6071 ----
        --       ...
        --    end loop
  
!       elsif Present (Condition_Actions (Scheme))
          and then Present (Condition (Scheme))
        then
           declare
*************** package body Exp_Ch5 is
*** 6013,6021 ****
  
        --  Here to deal with iterator case
  
!       elsif Present (Scheme)
!         and then Present (Iterator_Specification (Scheme))
!       then
           Expand_Iterator_Loop (N);
  
           --  An iterator loop may generate renaming declarations for elements
--- 6097,6103 ----
  
        --  Here to deal with iterator case
  
!       elsif Present (Iterator_Specification (Scheme)) then
           Expand_Iterator_Loop (N);
  
           --  An iterator loop may generate renaming declarations for elements
*************** package body Exp_Ch5 is
*** 6046,6051 ****
--- 6128,6145 ----
        Process_Statements_For_Controlled_Objects (Stmt);
     end Expand_N_Loop_Statement;
  
+    --------------------------------
+    -- Expand_Loop_Flow_Statement --
+    --------------------------------
+ 
+    --  The only processing required is to deal with a possible C/Fortran
+    --  boolean value used as the condition for the statement.
+ 
+    procedure Expand_Loop_Flow_Statement (N : N_Loop_Flow_Statement_Id) is
+    begin
+       Adjust_Condition (Condition (N));
+    end Expand_Loop_Flow_Statement;
+ 
     ----------------------------
     -- Expand_Predicated_Loop --
     ----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch5.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch5.ads
*** gcc-15.2.0/gcc/ada/exp_ch5.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch5.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Ch5 is
*** 31,36 ****
--- 31,37 ----
     procedure Expand_N_Assignment_Statement      (N : Node_Id);
     procedure Expand_N_Block_Statement           (N : Node_Id);
     procedure Expand_N_Case_Statement            (N : Node_Id);
+    procedure Expand_N_Continue_Statement        (N : Node_Id);
     procedure Expand_N_Exit_Statement            (N : Node_Id);
     procedure Expand_N_Goto_When_Statement       (N : Node_Id);
     procedure Expand_N_If_Statement              (N : Node_Id);
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch6.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch6.adb
*** gcc-15.2.0/gcc/ada/exp_ch6.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch6.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 28,34 ****
  with Aspects;        use Aspects;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 28,33 ----
*************** with Sem_Res;        use Sem_Res;
*** 72,78 ****
  with Sem_SCIL;       use Sem_SCIL;
  with Sem_Util;       use Sem_Util;
                       use Sem_Util.Storage_Model_Support;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 71,76 ----
*************** package body Exp_Ch6 is
*** 158,164 ****
        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,
--- 156,162 ----
        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 actual 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,
*************** package body Exp_Ch6 is
*** 202,214 ****
     --  access discriminants do not require secondary stack use. Note we must
     --  always use the secondary stack for dispatching-on-result calls.
  
-    function Check_BIP_Actuals
-      (Subp_Call : Node_Id;
-       Subp_Id   : Entity_Id) return Boolean;
-    --  Given a subprogram call to the given subprogram return True if the
-    --  names of BIP extra actual and formal parameters match, and the number
-    --  of actuals (including extra actuals) matches the number of formals.
- 
     function Check_Number_Of_Actuals
       (Subp_Call : Node_Id;
        Subp_Id   : Entity_Id) return Boolean;
--- 200,205 ----
*************** package body Exp_Ch6 is
*** 287,296 ****
  
     --  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,
--- 278,288 ----
  
     --  This expansion is necessary in all the cases where the constant object
     --  denoted by the call needs finalization in the current subprogram, which
!    --  excludes simple return statements, and is not identified with another
!    --  object that will be finalized, which excludes (statically) declared
!    --  objects, dynamically allocated objects, components of aggregates, 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,
*************** package body Exp_Ch6 is
*** 442,450 ****
           return;
        end if;
  
!       --  Locate the implicit allocation form parameter in the called function.
!       --  Maybe it would be better for each implicit formal of a build-in-place
!       --  function to have a flag or a Uint attribute to identify it. ???
  
        Alloc_Form_Formal := Build_In_Place_Formal (Function_Id, BIP_Alloc_Form);
  
--- 434,440 ----
           return;
        end if;
  
!       --  Locate the implicit allocation form parameter in the called function
  
        Alloc_Form_Formal := Build_In_Place_Formal (Function_Id, BIP_Alloc_Form);
  
*************** package body Exp_Ch6 is
*** 735,740 ****
--- 725,992 ----
        Add_Extra_Actual_To_Call (Function_Call, Chain_Formal, Chain_Actual);
     end Add_Task_Actuals_To_Build_In_Place_Call;
  
+    ----------------------------------------------
+    -- Apply_Access_Discrims_Accesibility_Check --
+    ----------------------------------------------
+ 
+    procedure Apply_Access_Discrims_Accessibility_Check
+      (Exp : Node_Id; Func : Entity_Id)
+    is
+       Loc : constant Source_Ptr := Sloc (Exp);
+ 
+       --  Some of the code here in this procedure may need to be factored
+       --  out at some point because it seems like some of the same
+       --  functionality would be needed for accessibility checking of a
+       --  return statement when the function result type is an anonymous
+       --  access type (as opposed to a type that has an anonymous access
+       --  discriminant).
+       --
+       --  Another case that is not addressed today is the case where
+       --  we need to check an access discriminant subcomponent of the
+       --  function result other than a discriminant of the function result.
+       --  This can only happen if the function result type has an unconstrained
+       --  subcomponent subtype that has an access discriminant (which implies
+       --  that the function result type must be limited).
+       --
+       --  A further corner case of that corner case arises if the limited
+       --  function result type is class-wide and it is not known statically
+       --  that this access-discriminant-bearing subcomponent exists. The
+       --  easiest way to address this properly would probably involve adding
+       --  a new compiler-generated dispatching procedure; a dispatching call
+       --  could then be used to perform the check in a context where we know
+       --  statically the specific type of the function result. Finding a
+       --  less important unimplemented case would be challenging.
+ 
+       function Constraint_Bearing_Subtype_If_Any
+         (Exp : Node_Id) return Node_Id;
+       --  If we can locate a constrained subtype whose constraint applies
+       --  to Exp, then return that. Otherwise, return Etype (Exp).
+ 
+       function Discr_Expression
+         (Typ : Entity_Id; Discr_Index : Positive) return Node_Id;
+       --  Typ is a constrained discriminated subtype.
+       --  Return the constraint expression for the indexed discriminant.
+ 
+       function Has_Level_Tied_To_Explicitly_Aliased_Param
+         (Constraint_Exp : Node_Id) return Boolean;
+       --  Constraint_Exp is the value given for an access discriminant
+       --  in a discriminant constraint for Exp. Return True iff the
+       --  accessibility of the type of that discriminant of Exp is the level
+       --  of an explicitly aliased parameter of Func. If true, this indicates
+       --  that no check should be performed for this discriminant.
+ 
+       ---------------------------------------
+       -- Constraint_Bearing_Subtype_If_Any --
+       ---------------------------------------
+ 
+       function Constraint_Bearing_Subtype_If_Any
+         (Exp : Node_Id) return Entity_Id
+       is
+          Result : Entity_Id := Etype (Exp);
+       begin
+          if Is_Constrained (Result) then
+             return Result;
+          end if;
+ 
+          --  Look through expansion-generated levels of indirection
+          --  to find a constrained subtype. Yuck. This comes up in
+          --  some cases when the unexpanded source returns an aggregate.
+ 
+          if Nkind (Exp) = N_Explicit_Dereference
+            and then Nkind (Prefix (Exp)) = N_Identifier
+            and then Ekind (Entity (Prefix (Exp))) = E_Constant
+          then
+             declare
+                Acc_Const       : Entity_Id := Entity (Prefix (Exp));
+                Acc_Const_Value : Node_Id := Empty;
+             begin
+                --  look through constants initialized to constants
+                loop
+                   exit when Nkind (Parent (Acc_Const)) /= N_Object_Declaration;
+ 
+                   Acc_Const_Value := Expression (Parent (Acc_Const));
+ 
+                   if Nkind (Acc_Const_Value) = N_Identifier
+                     and then Ekind (Entity (Acc_Const_Value)) = E_Constant
+                   then
+                      Acc_Const := Entity (Acc_Const_Value);
+                   else
+                      exit;
+                   end if;
+                end loop;
+ 
+                if Nkind (Acc_Const_Value) = N_Allocator
+                  and then Nkind (Expression (Acc_Const_Value))
+                              = N_Qualified_Expression
+                then
+                   Result :=
+                     Etype (Expression (Acc_Const_Value));
+                end if;
+             end;
+          end if;
+ 
+          if Is_Constrained (Result) then
+             return Result;
+          end if;
+ 
+          --  no constrained subtype found
+          return Etype (Exp);
+       end Constraint_Bearing_Subtype_If_Any;
+ 
+       ----------------------
+       -- Discr_Expression --
+       ----------------------
+ 
+       function Discr_Expression
+         (Typ : Entity_Id; Discr_Index : Positive) return Node_Id
+       is
+          Constraint_Elmt : Elmt_Id :=
+            First_Elmt (Discriminant_Constraint (Typ));
+       begin
+          for Skip in 1 .. Discr_Index - 1 loop
+             Next_Elmt (Constraint_Elmt);
+          end loop;
+          return Node (Constraint_Elmt);
+       end Discr_Expression;
+ 
+       -------------------------------------------------
+       --  Has_Level_Tied_To_Explicitly_Aliased_Param --
+       -------------------------------------------------
+ 
+       function Has_Level_Tied_To_Explicitly_Aliased_Param
+         (Constraint_Exp : Node_Id) return Boolean
+       is
+          Discr_Exp   : Node_Id := Constraint_Exp;
+          Attr_Prefix : Node_Id;
+       begin
+          --  look through constants
+          while Nkind (Discr_Exp) = N_Identifier
+            and then Ekind (Entity (Discr_Exp)) = E_Constant
+            and then Nkind (Parent (Entity (Discr_Exp))) = N_Object_Declaration
+          loop
+             Discr_Exp := Expression (Parent (Entity (Discr_Exp)));
+          end loop;
+ 
+          if Nkind (Discr_Exp) = N_Attribute_Reference
+            and then Get_Attribute_Id
+                       (Attribute_Name (Discr_Exp)) = Attribute_Access
+          then
+             Attr_Prefix := Ultimate_Prefix (Prefix (Discr_Exp));
+             if Is_Entity_Name (Attr_Prefix)
+               and then Is_Explicitly_Aliased (Entity (Attr_Prefix))
+               and then Scope (Entity (Attr_Prefix)) = Func
+             then
+                return True;
+             end if;
+          end if;
+ 
+          return False;
+       end Has_Level_Tied_To_Explicitly_Aliased_Param;
+ 
+       Discr       : Entity_Id := First_Discriminant (Etype (Exp));
+       Discr_Index : Positive  := 1;
+       Discr_Exp   : Node_Id;
+ 
+       Constrained_Subtype : constant Entity_Id :=
+         Constraint_Bearing_Subtype_If_Any (Exp);
+    begin
+       --  ??? Do not generate a check if version is Ada 95 (or earlier).
+       --  It is unclear whether this is really correct, or is just a stopgap
+       --  measure. Investigation is needed to decide how post-Ada-95 binding
+       --  interpretation changes in RM 3.10.2 should interact with Ada 95's
+       --  return-by-reference model for functions with limited result types
+       --  (which was abandoned in Ada 2005).
+ 
+       if Ada_Version <= Ada_95 then
+          return;
+       end if;
+ 
+       --  If we are returning a function call then that function will
+       --  perform the needed check.
+ 
+       if Nkind (Unqualify (Exp)) = N_Function_Call then
+          return;
+       end if;
+ 
+      --  ??? Cope with the consequences of the Disable_Tagged_Cases flag
+      --  in accessibility.adb (which can cause the extra formal parameter
+      --  needed for the check(s) generated here to be missing in the case
+      --  of a tagged result type); this is a workaround and can
+      --  prevent generation of a required check (or even a required
+      --  legality check - see "statically too deep" check below).
+ 
+       if No (Extra_Accessibility_Of_Result (Func)) then
+          return;
+       end if;
+ 
+       Remove_Side_Effects (Exp);
+ 
+       while Present (Discr) loop
+          if Is_Anonymous_Access_Type (Etype (Discr)) then
+             if Is_Constrained (Constrained_Subtype) then
+                Discr_Exp :=
+                  New_Copy_Tree
+                    (Discr_Expression (Constrained_Subtype, Discr_Index));
+             else
+                Discr_Exp :=
+                  Make_Selected_Component (Loc,
+                    Prefix => New_Copy_Tree (Exp),
+                    Selector_Name => New_Occurrence_Of (Discr, Loc));
+             end if;
+ 
+             if not Has_Level_Tied_To_Explicitly_Aliased_Param (Discr_Exp) then
+                declare
+                   --  We could do this min operation earlier, as is done
+                   --  for other implicit level parameters. Motivation for
+                   --  doing this min operation (earlier or not) is as for
+                   --  Generate_Minimum_Accessibility (see sem_ch6.adb):
+                   --  if a level value is too big, then the caller and the
+                   --  callee disagree about what it means.
+ 
+                   Level_Of_Master_Of_Call : constant Node_Id :=
+                     Make_Attribute_Reference (Loc,
+                       Prefix => New_Occurrence_Of (Standard_Natural, Loc),
+                       Attribute_Name => Name_Min,
+                       Expressions => New_List (
+                         Make_Integer_Literal (Loc, Scope_Depth (Func)),
+                         New_Occurrence_Of
+                           (Extra_Accessibility_Of_Result (Func), Loc)));
+ 
+                   Discrim_Level : Node_Id;
+                begin
+                   Analyze (Level_Of_Master_Of_Call);
+                   Analyze (Discr_Exp);
+ 
+                   Discrim_Level :=
+                     Accessibility_Level (Discr_Exp, Level => Dynamic_Level);
+                   Analyze (Discrim_Level);
+ 
+                   if Nkind (Discrim_Level) = N_Integer_Literal
+                     and then Intval (Discrim_Level) > Scope_Depth (Func)
+                   then
+                      Error_Msg_N
+                         ("level of type of access discriminant value of "
+                          & "return expression is statically too deep",
+                          Enclosing_Declaration_Or_Statement (Exp));
+                   end if;
+ 
+                   Insert_Action (Exp,
+                     Make_Raise_Program_Error (Loc,
+                       Condition =>
+                         Make_Op_Gt (Loc,
+                           Left_Opnd  => Discrim_Level,
+                           Right_Opnd => Level_Of_Master_Of_Call),
+                       Reason    => PE_Accessibility_Check_Failed),
+                     Suppress => Access_Check);
+                end;
+             end if;
+          end if;
+ 
+          Next_Discriminant (Discr);
+          Discr_Index := Discr_Index + 1;
+       end loop;
+    end Apply_Access_Discrims_Accessibility_Check;
+ 
     ----------------------------------
     -- Apply_CW_Accessibility_Check --
     ----------------------------------
*************** package body Exp_Ch6 is
*** 928,936 ****
        Formal_Suffix : constant String := BIP_Formal_Suffix (Kind);
  
     begin
-       --  Maybe it would be better for each implicit formal of a build-in-place
-       --  function to have a flag or a Uint attribute to identify it. ???
- 
        --  The return type in the function declaration may have been a limited
        --  view, and the extra formals for the function were not generated at
        --  that point. At the point of call the full view must be available and
--- 1180,1185 ----
*************** package body Exp_Ch6 is
*** 1159,1172 ****
       (Subp_Call : Node_Id;
        Subp_Id   : Entity_Id) return Boolean
     is
!       Formal : Entity_Id;
        Actual : Node_Id;
  
     begin
-       pragma Assert (Nkind (Subp_Call) in N_Entry_Call_Statement
-                                         | N_Function_Call
-                                         | N_Procedure_Call_Statement);
- 
        --  In CodePeer_Mode, the tree for `'Elab_Spec` procedures will be
        --  malformed because GNAT does not perform the usual expansion that
        --  results in the importation of external elaboration procedure symbols.
--- 1408,1419 ----
       (Subp_Call : Node_Id;
        Subp_Id   : Entity_Id) return Boolean
     is
!       use Deferred_Extra_Formals_Support;
! 
        Actual : Node_Id;
+       Formal : Entity_Id;
  
     begin
        --  In CodePeer_Mode, the tree for `'Elab_Spec` procedures will be
        --  malformed because GNAT does not perform the usual expansion that
        --  results in the importation of external elaboration procedure symbols.
*************** package body Exp_Ch6 is
*** 1184,1189 ****
--- 1431,1443 ----
           return True;
        end if;
  
+       pragma Assert (Nkind (Subp_Call) in N_Entry_Call_Statement
+                                         | N_Function_Call
+                                         | N_Procedure_Call_Statement);
+       pragma Assert (Extra_Formals_Known (Subp_Id)
+         or else not Expander_Active
+         or else Is_Unsupported_Extra_Actuals_Call (Subp_Call, Subp_Id));
+ 
        Formal := First_Formal_With_Extras (Subp_Id);
        Actual := First_Actual (Subp_Call);
  
*************** package body Exp_Ch6 is
*** 2466,2474 ****
  
              --  Ada 2005 (AI-318-02): If the actual parameter is a call to a
              --  build-in-place function, then a temporary return object needs
!             --  to be created and access to it must be passed to the function
!             --  (and ensure that we have an activation chain defined for tasks
!             --  and a Master variable).
  
              --  But do not do it here for intrinsic subprograms since this will
              --  be done properly after the subprogram is expanded.
--- 2720,2726 ----
  
              --  Ada 2005 (AI-318-02): If the actual parameter is a call to a
              --  build-in-place function, then a temporary return object needs
!             --  to be created and access to it must be passed to the function.
  
              --  But do not do it here for intrinsic subprograms since this will
              --  be done properly after the subprogram is expanded.
*************** package body Exp_Ch6 is
*** 2477,2487 ****
                 null;
  
              elsif Is_Build_In_Place_Function_Call (Actual) then
-                if Might_Have_Tasks (Etype (Actual)) then
-                   Build_Activation_Chain_Entity (N);
-                   Build_Master_Entity (Etype (Actual));
-                end if;
- 
                 Make_Build_In_Place_Call_In_Anonymous_Context (Actual);
  
              --  Ada 2005 (AI-318-02): Specialization of the previous case for
--- 2729,2734 ----
*************** package body Exp_Ch6 is
*** 2489,2496 ****
              --  object covers interface types.
  
              elsif Present (Unqual_BIP_Iface_Function_Call (Actual)) then
-                Build_Activation_Chain_Entity (N);
-                Build_Master_Entity (Etype (Actual));
                 Make_Build_In_Place_Iface_Call_In_Anonymous_Context (Actual);
              end if;
  
--- 2736,2741 ----
*************** package body Exp_Ch6 is
*** 2683,2689 ****
  
                   and then Predicate_Tests_On_Arguments (Subp)
                 then
!                   Append_To (Post_Call,
                      Make_Predicate_Check (Atyp, Actual));
                 end if;
              end By_Ref_Predicate_Check;
--- 2928,2938 ----
  
                   and then Predicate_Tests_On_Arguments (Subp)
                 then
!                   --  If Actual is a view conversion to a by-copy subtype
!                   --  that is subject to a predicate, then the predicate
!                   --  check must precede copy-back. So Prepend.
! 
!                   Prepend_To (Post_Call,
                      Make_Predicate_Check (Atyp, Actual));
                 end if;
              end By_Ref_Predicate_Check;
*************** package body Exp_Ch6 is
*** 2870,2884 ****
     -----------------
  
     procedure Expand_Call (N : Node_Id) is
!       function Is_Unchecked_Union_Equality (N : Node_Id) return Boolean;
        --  Return True if N is a call to the predefined equality operator of an
        --  unchecked union type, or a renaming thereof.
  
!       ---------------------------------
!       -- Is_Unchecked_Union_Equality --
!       ---------------------------------
  
!       function Is_Unchecked_Union_Equality (N : Node_Id) return Boolean is
        begin
           if Is_Entity_Name (Name (N))
             and then Ekind (Entity (Name (N))) = E_Function
--- 3119,3135 ----
     -----------------
  
     procedure Expand_Call (N : Node_Id) is
!       function Is_Unchecked_Union_Predefined_Equality_Call
!         (N : Node_Id) return Boolean;
        --  Return True if N is a call to the predefined equality operator of an
        --  unchecked union type, or a renaming thereof.
  
!       -------------------------------------------------
!       -- Is_Unchecked_Union_Predefined_Equality_Call --
!       -------------------------------------------------
  
!       function Is_Unchecked_Union_Predefined_Equality_Call
!         (N : Node_Id) return Boolean is
        begin
           if Is_Entity_Name (Name (N))
             and then Ekind (Entity (Name (N))) = E_Function
*************** package body Exp_Ch6 is
*** 2903,2909 ****
           else
              return False;
           end if;
!       end Is_Unchecked_Union_Equality;
  
        --  If this is an indirect call through an Access_To_Subprogram
        --  with contract specifications, it is rewritten as a call to
--- 3154,3160 ----
           else
              return False;
           end if;
!       end Is_Unchecked_Union_Predefined_Equality_Call;
  
        --  If this is an indirect call through an Access_To_Subprogram
        --  with contract specifications, it is rewritten as a call to
*************** package body Exp_Ch6 is
*** 3000,3006 ****
        --  Case of a call to the predefined equality operator of an unchecked
        --  union type, which requires specific processing.
  
!       elsif Is_Unchecked_Union_Equality (N) then
           declare
              Eq : constant Entity_Id := Entity (Name (N));
  
--- 3251,3257 ----
        --  Case of a call to the predefined equality operator of an unchecked
        --  union type, which requires specific processing.
  
!       elsif Is_Unchecked_Union_Predefined_Equality_Call (N) then
           declare
              Eq : constant Entity_Id := Entity (Name (N));
  
*************** package body Exp_Ch6 is
*** 3024,3052 ****
        end if;
     end Expand_Call;
  
!    ------------------------
!    -- Expand_Call_Helper --
!    ------------------------
! 
!    --  This procedure handles expansion of function calls and procedure call
!    --  statements (i.e. it serves as the body for Expand_N_Function_Call and
!    --  Expand_N_Procedure_Call_Statement). Processing for calls includes:
! 
!    --    Replace call to Raise_Exception by Raise_Exception_Always if possible
!    --    Provide values of actuals for all formals in Extra_Formals list
!    --    Replace "call" to enumeration literal function by literal itself
!    --    Rewrite call to predefined operator as operator
!    --    Replace actuals to in-out parameters that are numeric conversions,
!    --     with explicit assignment to temporaries before and after the call.
! 
!    --   Note that the list of actuals has been filled with default expressions
!    --   during semantic analysis of the call. Only the extra actuals required
!    --   for the 'Constrained attribute and for accessibility checks are added
!    --   at this point.
  
!    procedure Expand_Call_Helper (N : Node_Id; Post_Call : out List_Id) is
!       Loc           : constant Source_Ptr := Sloc (N);
!       Call_Node     : Node_Id := N;
        Extra_Actuals : List_Id := No_List;
        Prev          : Node_Id := Empty;
  
--- 3275,3286 ----
        end if;
     end Expand_Call;
  
!    --------------------------
!    -- Create_Extra_Actuals --
!    --------------------------
  
!    procedure Create_Extra_Actuals (Call_Node : Node_Id) is
!       Loc           : constant Source_Ptr := Sloc (Call_Node);
        Extra_Actuals : List_Id := No_List;
        Prev          : Node_Id := Empty;
  
*************** package body Exp_Ch6 is
*** 3076,3163 ****
        --  expression for the value of the actual, EF is the entity for the
        --  extra formal.
  
-       procedure Add_View_Conversion_Invariants
-         (Formal : Entity_Id;
-          Actual : Node_Id);
-       --  Adds invariant checks for every intermediate type between the range
-       --  of a view converted argument to its ancestor (from parent to child).
- 
-       function Can_Fold_Predicate_Call (P : Entity_Id) return Boolean;
-       --  Try to constant-fold a predicate check, which often enough is a
-       --  simple arithmetic expression that can be computed statically if
-       --  its argument is static. This cleans up the output of CCG, even
-       --  though useless predicate checks will be generally removed by
-       --  back-end optimizations.
- 
-       procedure Check_Subprogram_Variant;
-       --  Emit a call to the internally generated procedure with checks for
-       --  aspect Subprogram_Variant, if present and enabled.
- 
-       function Inherited_From_Formal (S : Entity_Id) return Entity_Id;
-       --  Within an instance, a type derived from an untagged formal derived
-       --  type inherits from the original parent, not from the actual. The
-       --  current derivation mechanism has the derived type inherit from the
-       --  actual, which is only correct outside of the instance. If the
-       --  subprogram is inherited, we test for this particular case through a
-       --  convoluted tree traversal before setting the proper subprogram to be
-       --  called.
- 
-       function In_Unfrozen_Instance (E : Entity_Id) return Boolean;
-       --  Return true if E comes from an instance that is not yet frozen
- 
-       function Is_Class_Wide_Interface_Type (E : Entity_Id) return Boolean;
-       --  Return True when E is a class-wide interface type or an access to
-       --  a class-wide interface type.
- 
-       function Is_Direct_Deep_Call (Subp : Entity_Id) return Boolean;
-       --  Determine if Subp denotes a non-dispatching call to a Deep routine
- 
-       function New_Value (From : Node_Id) return Node_Id;
-       --  From is the original Expression. New_Value is equivalent to a call
-       --  to Duplicate_Subexpr with an explicit dereference when From is an
-       --  access parameter.
- 
-       --------------------------
-       -- Add_Actual_Parameter --
-       --------------------------
- 
-       procedure Add_Actual_Parameter (Insert_Param : Node_Id) is
-          Actual_Expr : constant Node_Id :=
-                          Explicit_Actual_Parameter (Insert_Param);
- 
-       begin
-          --  Case of insertion is first named actual
- 
-          if No (Prev) or else
-             Nkind (Parent (Prev)) /= N_Parameter_Association
-          then
-             Set_Next_Named_Actual
-               (Insert_Param, First_Named_Actual (Call_Node));
-             Set_First_Named_Actual (Call_Node, Actual_Expr);
- 
-             if No (Prev) then
-                if No (Parameter_Associations (Call_Node)) then
-                   Set_Parameter_Associations (Call_Node, New_List);
-                end if;
- 
-                Append (Insert_Param, Parameter_Associations (Call_Node));
- 
-             else
-                Insert_After (Prev, Insert_Param);
-             end if;
- 
-          --  Case of insertion is not first named actual
- 
-          else
-             Set_Next_Named_Actual
-               (Insert_Param, Next_Named_Actual (Parent (Prev)));
-             Set_Next_Named_Actual (Parent (Prev), Actual_Expr);
-             Append (Insert_Param, Parameter_Associations (Call_Node));
-          end if;
- 
-          Prev := Actual_Expr;
-       end Add_Actual_Parameter;
- 
        --------------------------------------
        -- Add_Cond_Expression_Extra_Actual --
        --------------------------------------
--- 3310,3315 ----
*************** package body Exp_Ch6 is
*** 3372,3385 ****
              if Etype (Formal) = Standard_Natural then
                 Actual := Make_Integer_Literal (Loc, Uint_0);
                 Analyze_And_Resolve (Actual, Standard_Natural);
!                Add_Extra_Actual_To_Call (N, Formal, Actual);
  
              --  BIPtaskmaster
  
              elsif Etype (Formal) = Standard_Integer then
                 Actual := Make_Integer_Literal (Loc, Uint_0);
                 Analyze_And_Resolve (Actual, Standard_Integer);
!                Add_Extra_Actual_To_Call (N, Formal, Actual);
  
              --  BIPstoragepool, BIPcollection, BIPactivationchain,
              --  and BIPaccess.
--- 3524,3537 ----
              if Etype (Formal) = Standard_Natural then
                 Actual := Make_Integer_Literal (Loc, Uint_0);
                 Analyze_And_Resolve (Actual, Standard_Natural);
!                Add_Extra_Actual_To_Call (Call_Node, Formal, Actual);
  
              --  BIPtaskmaster
  
              elsif Etype (Formal) = Standard_Integer then
                 Actual := Make_Integer_Literal (Loc, Uint_0);
                 Analyze_And_Resolve (Actual, Standard_Integer);
!                Add_Extra_Actual_To_Call (Call_Node, Formal, Actual);
  
              --  BIPstoragepool, BIPcollection, BIPactivationchain,
              --  and BIPaccess.
*************** package body Exp_Ch6 is
*** 3387,3393 ****
              elsif Is_Access_Type (Etype (Formal)) then
                 Actual := Make_Null (Loc);
                 Analyze_And_Resolve (Actual, Etype (Formal));
!                Add_Extra_Actual_To_Call (N, Formal, Actual);
  
              else
                 pragma Assert (False);
--- 3539,3545 ----
              elsif Is_Access_Type (Etype (Formal)) then
                 Actual := Make_Null (Loc);
                 Analyze_And_Resolve (Actual, Etype (Formal));
!                Add_Extra_Actual_To_Call (Call_Node, Formal, Actual);
  
              else
                 pragma Assert (False);
*************** package body Exp_Ch6 is
*** 3406,3411 ****
--- 3558,3604 ----
           pragma Assert (Check_BIP_Actuals (Call_Node, Function_Id));
        end Add_Dummy_Build_In_Place_Actuals;
  
+       --------------------------
+       -- Add_Actual_Parameter --
+       --------------------------
+ 
+       procedure Add_Actual_Parameter (Insert_Param : Node_Id) is
+          Actual_Expr : constant Node_Id :=
+                          Explicit_Actual_Parameter (Insert_Param);
+ 
+       begin
+          --  Case of insertion is first named actual
+ 
+          if No (Prev)
+            or else Nkind (Parent (Prev)) /= N_Parameter_Association
+          then
+             Set_Next_Named_Actual
+               (Insert_Param, First_Named_Actual (Call_Node));
+             Set_First_Named_Actual (Call_Node, Actual_Expr);
+ 
+             if No (Prev) then
+                if No (Parameter_Associations (Call_Node)) then
+                   Set_Parameter_Associations (Call_Node, New_List);
+                end if;
+ 
+                Append (Insert_Param, Parameter_Associations (Call_Node));
+ 
+             else
+                Insert_After (Prev, Insert_Param);
+             end if;
+ 
+          --  Case of insertion is not first named actual
+ 
+          else
+             Set_Next_Named_Actual
+               (Insert_Param, Next_Named_Actual (Parent (Prev)));
+             Set_Next_Named_Actual (Parent (Prev), Actual_Expr);
+             Append (Insert_Param, Parameter_Associations (Call_Node));
+          end if;
+ 
+          Prev := Actual_Expr;
+       end Add_Actual_Parameter;
+ 
        ----------------------
        -- Add_Extra_Actual --
        ----------------------
*************** package body Exp_Ch6 is
*** 3431,3436 ****
--- 3624,4045 ----
           end if;
        end Add_Extra_Actual;
  
+       --  Local variables
+ 
+       use Deferred_Extra_Formals_Support;
+ 
+       Actual        : Node_Id;
+       Formal        : Entity_Id;
+       Param_Count   : Positive;
+       Subp          : constant Entity_Id := Get_Called_Entity (Call_Node);
+ 
+    --  Start of processing for Create_Extra_Actuals
+ 
+    begin
+       --  Special case: Thunks must not compute the extra actuals; they must
+       --  just propagate their extra actuals to the target primitive.
+ 
+       if Is_Thunk (Current_Scope)
+         and then Thunk_Entity (Current_Scope) = Subp
+       then
+          declare
+             Target_Formal : Entity_Id;
+             Thunk_Formal  : Entity_Id;
+ 
+          begin
+             pragma Assert (Extra_Formals_Known (Subp)
+               and then Extra_Formals_Match_OK (Current_Scope, Subp));
+ 
+             Target_Formal := Extra_Formals (Subp);
+             Thunk_Formal  := Extra_Formals (Current_Scope);
+             while Present (Target_Formal) loop
+                Add_Extra_Actual
+                   (Expr => New_Occurrence_Of (Thunk_Formal, Loc),
+                    EF   => Thunk_Formal);
+ 
+                Target_Formal := Extra_Formal (Target_Formal);
+                Thunk_Formal  := Extra_Formal (Thunk_Formal);
+             end loop;
+ 
+             while Is_Non_Empty_List (Extra_Actuals) loop
+                Add_Actual_Parameter (Remove_Head (Extra_Actuals));
+             end loop;
+ 
+             return;
+          end;
+       end if;
+ 
+       pragma Assert (Extra_Formals_Known (Subp)
+         or else Is_Unsupported_Extra_Formals_Entity (Subp));
+ 
+       --  First step, compute extra actuals, corresponding to any Extra_Formals
+       --  present. Note that we do not access Extra_Formals directly; instead
+       --  we generate and collect the corresponding actuals in Extra_Actuals.
+ 
+       Formal := First_Formal (Subp);
+       Actual := First_Actual (Call_Node);
+       Param_Count := 1;
+       while Present (Formal) loop
+          --  Prepare to examine current entry
+ 
+          Prev := Actual;
+ 
+          --  Create possible extra actual for constrained case. Usually, the
+          --  extra actual is of the form actual'constrained, but since this
+          --  attribute is only available for unconstrained records, TRUE is
+          --  expanded if the type of the formal happens to be constrained (for
+          --  instance when this procedure is inherited from an unconstrained
+          --  record to a constrained one) or if the actual has no discriminant
+          --  (its type is constrained). An exception to this is the case of a
+          --  private type without discriminants. In this case we pass FALSE
+          --  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),
+                   EF   => Extra_Constrained (Formal));
+ 
+             elsif Is_Constrained (Etype (Formal))
+               or else not Has_Discriminants (Etype (Prev))
+             then
+                Add_Extra_Actual
+                  (Expr => New_Occurrence_Of (Standard_True, Loc),
+                   EF   => Extra_Constrained (Formal));
+ 
+             --  Do not produce extra actuals for Unchecked_Union parameters.
+             --  Jump directly to the end of the loop.
+ 
+             elsif Is_Unchecked_Union (Base_Type (Etype (Actual))) then
+                goto Skip_Extra_Actual_Generation;
+ 
+             else
+                --  If the actual is a type conversion, then the constrained
+                --  test applies to the actual, not the target type.
+ 
+                declare
+                   Act_Prev : Node_Id;
+ 
+                begin
+                   --  Test for unchecked conversions as well, which can occur
+                   --  as out parameter actuals on calls to stream procedures.
+ 
+                   Act_Prev := Prev;
+                   while Nkind (Act_Prev) in N_Type_Conversion
+                                           | N_Unchecked_Type_Conversion
+                   loop
+                      Act_Prev := Expression (Act_Prev);
+                   end loop;
+ 
+                   --  If the expression is a conversion of a dereference, this
+                   --  is internally generated code that manipulates addresses,
+                   --  e.g. when building interface tables. No check should
+                   --  occur in this case, and the discriminated object is not
+                   --  directly at hand.
+ 
+                   if not Comes_From_Source (Actual)
+                     and then Nkind (Actual) = N_Unchecked_Type_Conversion
+                     and then Nkind (Act_Prev) = N_Explicit_Dereference
+                   then
+                      Add_Extra_Actual
+                        (Expr => New_Occurrence_Of (Standard_False, Loc),
+                         EF   => Extra_Constrained (Formal));
+ 
+                   else
+                      Add_Extra_Actual
+                        (Expr =>
+                           Make_Attribute_Reference (Sloc (Prev),
+                             Prefix         =>
+                               Duplicate_Subexpr_No_Checks
+                                 (Act_Prev, Name_Req => True),
+                             Attribute_Name => Name_Constrained),
+                         EF   => Extra_Constrained (Formal));
+                   end if;
+                end;
+             end if;
+          end if;
+ 
+          --  Create possible extra actual for accessibility level
+ 
+          if Present (Extra_Accessibility (Formal)) then
+ 
+             --  Ada 2005 (AI-251): Thunks must propagate the extra actuals of
+             --  accessibility levels.
+ 
+             if Is_Thunk (Current_Scope) then
+                declare
+                   Parm_Ent : Entity_Id;
+ 
+                begin
+                   if Is_Controlling_Actual (Actual) then
+ 
+                      --  Find the corresponding actual of the thunk
+ 
+                      Parm_Ent := First_Entity (Current_Scope);
+                      for J in 2 .. Param_Count loop
+                         Next_Entity (Parm_Ent);
+                      end loop;
+ 
+                   --  Handle unchecked conversion of access types generated
+                   --  in thunks (cf. Expand_Interface_Thunk).
+ 
+                   elsif Is_Access_Type (Etype (Actual))
+                     and then Nkind (Actual) = N_Unchecked_Type_Conversion
+                   then
+                      Parm_Ent := Entity (Expression (Actual));
+ 
+                   else pragma Assert (Is_Entity_Name (Actual));
+                      Parm_Ent := Entity (Actual);
+                   end if;
+ 
+                   Add_Extra_Actual
+                     (Expr => Accessibility_Level
+                                (Expr            => Parm_Ent,
+                                 Level           => Dynamic_Level,
+                                 Allow_Alt_Model => False),
+                      EF   => Extra_Accessibility (Formal));
+                end;
+ 
+             --  Conditional expressions
+ 
+             elsif Nkind (Prev) = N_Expression_With_Actions
+               and then Nkind (Original_Node (Prev)) in
+                          N_If_Expression | N_Case_Expression
+             then
+                Add_Cond_Expression_Extra_Actual (Formal);
+ 
+             --  Internal constant generated to remove side effects (normally
+             --  from the expansion of dispatching calls).
+ 
+             --  First verify the actual is internal
+ 
+             elsif not Comes_From_Source (Prev)
+               and then not Is_Rewrite_Substitution (Prev)
+ 
+               --  Next check that the actual is a constant
+ 
+               and then Nkind (Prev) = N_Identifier
+               and then Ekind (Entity (Prev)) = E_Constant
+               and then Nkind (Parent (Entity (Prev))) = N_Object_Declaration
+             then
+                --  Generate the accessibility level based on the expression in
+                --  the constant's declaration.
+ 
+                declare
+                   Ent : Entity_Id := Entity (Prev);
+ 
+                begin
+                   --  Handle deferred constants
+ 
+                   if Present (Full_View (Ent)) then
+                      Ent := Full_View (Ent);
+                   end if;
+ 
+                   Add_Extra_Actual
+                     (Expr => Accessibility_Level
+                                (Expr            => Expression (Parent (Ent)),
+                                 Level           => Dynamic_Level,
+                                 Allow_Alt_Model => False),
+                      EF   => Extra_Accessibility (Formal));
+                end;
+ 
+             --  Normal case
+ 
+             else
+                Add_Extra_Actual
+                  (Expr => Accessibility_Level
+                             (Expr            => Prev,
+                              Level           => Dynamic_Level,
+                              Allow_Alt_Model => False),
+                   EF   => Extra_Accessibility (Formal));
+             end if;
+          end if;
+ 
+          --  This label is required when skipping extra actual generation for
+          --  Unchecked_Union parameters.
+ 
+          <<Skip_Extra_Actual_Generation>>
+ 
+          Param_Count := Param_Count + 1;
+          Next_Actual (Actual);
+          Next_Formal (Formal);
+       end loop;
+ 
+       --  If we are calling an Ada 2012 function which needs to have the
+       --  "accessibility level determined by the point of call" (AI05-0234)
+       --  passed in to it, then pass it in.
+ 
+       if Ekind (Subp) in E_Function | E_Operator | E_Subprogram_Type
+         and then
+           Present (Extra_Accessibility_Of_Result (Ultimate_Alias (Subp)))
+       then
+          declare
+             Extra_Form : Node_Id := Empty;
+             Level      : Node_Id := Empty;
+ 
+          begin
+             --  Detect cases where the function call has been internally
+             --  generated by examining the original node and return library
+             --  level - taking care to avoid ignoring function calls expanded
+             --  in prefix notation.
+ 
+             if Nkind (Original_Node (Call_Node)) not in N_Function_Call
+                                                       | N_Selected_Component
+                                                       | N_Indexed_Component
+             then
+                Level := Make_Integer_Literal
+                           (Loc, Scope_Depth (Standard_Standard));
+ 
+             --  Otherwise get the level normally based on the call node
+ 
+             else
+                Level := Accessibility_Level
+                           (Expr            => Call_Node,
+                            Level           => Dynamic_Level,
+                            Allow_Alt_Model => False);
+             end if;
+ 
+             --  It may be possible that we are re-expanding an already
+             --  expanded call when are are dealing with dispatching ???
+ 
+             if No (Parameter_Associations (Call_Node))
+               or else Nkind (Last (Parameter_Associations (Call_Node)))
+                         /= N_Parameter_Association
+               or else not Is_Accessibility_Actual
+                               (Last (Parameter_Associations (Call_Node)))
+             then
+                Extra_Form := Extra_Accessibility_Of_Result
+                                (Ultimate_Alias (Subp));
+ 
+                Add_Extra_Actual
+                  (Expr => Level,
+                   EF   => Extra_Form);
+             end if;
+          end;
+       end if;
+ 
+       --  Second step: In the previous loop we gathered the extra actuals (the
+       --  ones that correspond to Extra_Formals), so now they can be appended.
+ 
+       if Is_Non_Empty_List (Extra_Actuals) then
+          declare
+             Num_Extra_Actuals : constant Nat := List_Length (Extra_Actuals);
+ 
+          begin
+             while Is_Non_Empty_List (Extra_Actuals) loop
+                Add_Actual_Parameter (Remove_Head (Extra_Actuals));
+             end loop;
+ 
+             --  Add dummy extra BIP actuals if we are calling a function that
+             --  inherited the BIP extra actuals but does not require them.
+ 
+             if Nkind (Call_Node) = N_Function_Call
+               and then Is_Function_Call_With_BIP_Formals (Call_Node)
+               and then not Is_Build_In_Place_Function_Call (Call_Node)
+             then
+                Add_Dummy_Build_In_Place_Actuals (Subp,
+                  Num_Added_Extra_Actuals => Num_Extra_Actuals);
+             end if;
+          end;
+ 
+       --  Add dummy extra BIP actuals if we are calling a function that
+       --  inherited the BIP extra actuals but does not require them.
+ 
+       elsif Nkind (Call_Node) = N_Function_Call
+         and then Is_Function_Call_With_BIP_Formals (Call_Node)
+         and then not Is_Build_In_Place_Function_Call (Call_Node)
+       then
+          Add_Dummy_Build_In_Place_Actuals (Subp);
+       end if;
+ 
+       --  For non build-in-place calls formals and actuals must match;
+       --  for build-in-place function calls, the pending bip actuals are
+       --  added by the following subprograms as part of the bottom-up
+       --  expansion of the call (and this check will be performed there):
+       --    Make_Build_In_Place_Call_In_Allocator
+       --    Make_Build_In_Place_Call_In_Anonymous_Context
+       --    Make_Build_In_Place_Call_In_Assignment
+       --    Make_Build_In_Place_Call_In_Object_Declaration
+       --    Make_Build_In_Place_Iface_Call_In_Allocator
+       --    Make_Build_In_Place_Iface_Call_In_Anonymous_Context
+       --    Make_Build_In_Place_Iface_Call_In_Object_Declaration
+ 
+       pragma Assert (Is_Build_In_Place_Function_Call (Call_Node)
+         or else (Check_Number_Of_Actuals (Call_Node, Subp)
+                    and then Check_BIP_Actuals (Call_Node, Subp)));
+    end Create_Extra_Actuals;
+ 
+    ------------------------
+    -- Expand_Call_Helper --
+    ------------------------
+ 
+    --  This procedure handles expansion of function calls and procedure call
+    --  statements (i.e. it serves as the body for Expand_N_Function_Call and
+    --  Expand_N_Procedure_Call_Statement). Processing for calls includes:
+ 
+    --    Replace call to Raise_Exception by Raise_Exception_Always if possible
+    --    Provide values of actuals for all formals in Extra_Formals list
+    --    Replace "call" to enumeration literal function by literal itself
+    --    Rewrite call to predefined operator as operator
+    --    Replace actuals to in-out parameters that are numeric conversions,
+    --     with explicit assignment to temporaries before and after the call.
+ 
+    --   Note that the list of actuals has been filled with default expressions
+    --   during semantic analysis of the call. Only the extra actuals required
+    --   for the 'Constrained attribute and for accessibility checks are added
+    --   at this point.
+ 
+    procedure Expand_Call_Helper (N : Node_Id; Post_Call : out List_Id) is
+       Loc       : constant Source_Ptr := Sloc (N);
+       Call_Node : Node_Id := N;
+       Prev      : Node_Id := Empty;
+ 
+       procedure Add_View_Conversion_Invariants
+         (Formal : Entity_Id;
+          Actual : Node_Id);
+       --  Adds invariant checks for every intermediate type between the range
+       --  of a view converted argument to its ancestor (from parent to child).
+ 
+       function Can_Fold_Predicate_Call (P : Entity_Id) return Boolean;
+       --  Try to constant-fold a predicate check, which often enough is a
+       --  simple arithmetic expression that can be computed statically if
+       --  its argument is static. This cleans up the output of CCG, even
+       --  though useless predicate checks will be generally removed by
+       --  back-end optimizations.
+ 
+       procedure Check_Subprogram_Variant;
+       --  Emit a call to the internally generated procedure with checks for
+       --  aspect Subprogram_Variant, if present and enabled. Multiple calls are
+       --  added when the subprogram was using Assertion_Levels.
+ 
+       function Inherited_From_Formal (S : Entity_Id) return Entity_Id;
+       --  Within an instance, a type derived from an untagged formal derived
+       --  type inherits from the original parent, not from the actual. The
+       --  current derivation mechanism has the derived type inherit from the
+       --  actual, which is only correct outside of the instance. If the
+       --  subprogram is inherited, we test for this particular case through a
+       --  convoluted tree traversal before setting the proper subprogram to be
+       --  called.
+ 
+       function In_Unfrozen_Instance (E : Entity_Id) return Boolean;
+       --  Return true if E comes from an instance that is not yet frozen
+ 
+       function Is_Class_Wide_Interface_Type (E : Entity_Id) return Boolean;
+       --  Return True when E is a class-wide interface type or an access to
+       --  a class-wide interface type.
+ 
+       function Is_Direct_Deep_Call (Subp : Entity_Id) return Boolean;
+       --  Determine if Subp denotes a non-dispatching call to a Deep routine
+ 
+       function New_Value (From : Node_Id) return Node_Id;
+       --  From is the original Expression. New_Value is equivalent to a call
+       --  to Duplicate_Subexpr with an explicit dereference when From is an
+       --  access parameter.
+ 
        ------------------------------------
        -- Add_View_Conversion_Invariants --
        ------------------------------------
*************** package body Exp_Ch6 is
*** 3690,3696 ****
  
           --  Local variables
  
!          Variant_Prag : constant Node_Id :=
             Get_Pragma (Current_Scope, Pragma_Subprogram_Variant);
  
           New_Call     : Node_Id;
--- 4299,4305 ----
  
           --  Local variables
  
!          Variant_Prag : Node_Id :=
             Get_Pragma (Current_Scope, Pragma_Subprogram_Variant);
  
           New_Call     : Node_Id;
*************** package body Exp_Ch6 is
*** 3698,3705 ****
           Variant_Proc : Entity_Id;
  
        begin
!          if Present (Variant_Prag) and then Is_Checked (Variant_Prag) then
! 
              Pragma_Arg1 :=
                Expression (First (Pragma_Argument_Associations (Variant_Prag)));
  
--- 4307,4316 ----
           Variant_Proc : Entity_Id;
  
        begin
!          while Present (Variant_Prag)
!            and then Is_Checked (Variant_Prag)
!            and then Pragma_Name (Variant_Prag) = Name_Subprogram_Variant
!          loop
              Pragma_Arg1 :=
                Expression (First (Pragma_Argument_Associations (Variant_Prag)));
  
*************** package body Exp_Ch6 is
*** 3708,3719 ****
              --  run-time execution.
  
              if Nkind (Pragma_Arg1) = N_Aggregate then
!                pragma Assert
!                  (Chars
!                     (First
!                       (Choices
!                          (First (Component_Associations (Pragma_Arg1))))) =
!                   Name_Structural);
                 return;
              end if;
  
--- 4319,4331 ----
              --  run-time execution.
  
              if Nkind (Pragma_Arg1) = N_Aggregate then
!                pragma
!                  Assert
!                    (Chars
!                       (First
!                          (Choices
!                             (First (Component_Associations (Pragma_Arg1)))))
!                       = Name_Structural);
                 return;
              end if;
  
*************** package body Exp_Ch6 is
*** 3723,3729 ****
              Variant_Proc := Entity (Pragma_Arg1);
  
              New_Call :=
!               Make_Procedure_Call_Statement (Loc,
                   Name                   =>
                     New_Occurrence_Of (Variant_Proc, Loc),
                   Parameter_Associations =>
--- 4335,4342 ----
              Variant_Proc := Entity (Pragma_Arg1);
  
              New_Call :=
!               Make_Procedure_Call_Statement
!                 (Loc,
                   Name                   =>
                     New_Occurrence_Of (Variant_Proc, Loc),
                   Parameter_Associations =>
*************** package body Exp_Ch6 is
*** 3731,3739 ****
  
              Insert_Action (Call_Node, New_Call);
  
!             pragma Assert (Etype (New_Call) /= Any_Type
!               or else Serious_Errors_Detected > 0);
!          end if;
        end Check_Subprogram_Variant;
  
        ---------------------------
--- 4344,4356 ----
  
              Insert_Action (Call_Node, New_Call);
  
!             pragma
!               Assert
!                 (Etype (New_Call) /= Any_Type
!                    or else Serious_Errors_Detected > 0);
! 
!             Variant_Prag := Next_Pragma (Variant_Prag);
!          end loop;
        end Check_Subprogram_Variant;
  
        ---------------------------
*************** package body Exp_Ch6 is
*** 3947,3952 ****
--- 4564,4572 ----
        Subp          : Entity_Id;
  
        CW_Interface_Formals_Present : Boolean := False;
+       Defer_Extra_Actuals          : Boolean := False;
+ 
+       use Deferred_Extra_Formals_Support;
  
     --  Start of processing for Expand_Call_Helper
  
*************** package body Exp_Ch6 is
*** 4033,4044 ****
           end if;
        end if;
  
-       --  Ensure that the called subprogram has all its formals
- 
-       if not Is_Frozen (Subp) then
-          Create_Extra_Formals (Subp);
-       end if;
- 
        --  Ada 2005 (AI-345): We have a procedure call as a triggering
        --  alternative in an asynchronous select or as an entry call in
        --  a conditional or timed select. Check whether the procedure call
--- 4653,4658 ----
*************** package body Exp_Ch6 is
*** 4084,4089 ****
--- 4698,4747 ----
           end;
        end if;
  
+       --  Ensure that the called subprogram has all its formals; extra formals
+       --  of init procs were added when they were built.
+ 
+       if not Extra_Formals_Known (Subp) then
+          Create_Extra_Formals (Subp, Related_Nod => Call_Node);
+ 
+          --  If the previous call to Create_Extra_Formals could not add the
+          --  extra formals, then we must defer adding the extra actuals of
+          --  this call until we know the underlying type of all the formals
+          --  and return type of the called subprogram or entry. Deferral of
+          --  extra actuals occurs in two cases:
+          --  1) In the body of internally built dynamic call helpers of
+          --     class-wide preconditions.
+          --  2) In the body of expanded expression functions.
+ 
+          if not Extra_Formals_Known (Subp) then
+             declare
+                Scop_Id : Entity_Id := Current_Scope;
+ 
+             begin
+                --  Locate the enclosing subprogram or entry since it is
+                --  required to register this deferred call.
+ 
+                Scop_Id := Current_Scope;
+                while Present (Scop_Id)
+                  and then Scop_Id /= Standard_Standard
+                  and then not Is_Subprogram_Or_Entry (Scop_Id)
+                loop
+                   Scop_Id := Scope (Scop_Id);
+                end loop;
+ 
+                pragma Assert (Is_Subprogram_Or_Entry (Scop_Id));
+                pragma Assert (Is_Deferred_Extra_Formals_Entity (Subp));
+                Register_Deferred_Extra_Formals_Call (Call_Node, Scop_Id);
+ 
+                Defer_Extra_Actuals := True;
+             end;
+          end if;
+       end if;
+ 
+       pragma Assert (Extra_Formals_Known (Subp)
+         or else Is_Deferred_Extra_Formals_Entity (Subp)
+         or else Is_Unsupported_Extra_Formals_Entity (Subp));
+ 
        --  If this is a call to a predicate function, try to constant fold it
  
        if Nkind (Call_Node) = N_Function_Call
*************** package body Exp_Ch6 is
*** 4095,4150 ****
        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
        --  regular formals collecting corresponding actuals in Extra_Actuals.
  
!       --  We also generate any required range checks for actuals for in formals
!       --  as we go through the loop, since this is a convenient place to do it.
!       --  (Though it seems that this would be better done in Expand_Actuals???)
  
        --  Special case: Thunks must not compute the extra actuals; they must
!       --  just propagate to the target primitive their extra actuals.
  
        if Is_Thunk (Current_Scope)
          and then Thunk_Entity (Current_Scope) = Subp
          and then Present (Extra_Formals (Subp))
        then
!          pragma Assert (Extra_Formals_Match_OK (Current_Scope, Subp));
! 
!          declare
!             Target_Formal : Entity_Id;
!             Thunk_Formal  : Entity_Id;
! 
!          begin
!             Target_Formal := Extra_Formals (Subp);
!             Thunk_Formal  := Extra_Formals (Current_Scope);
!             while Present (Target_Formal) loop
!                Add_Extra_Actual
!                  (Expr => New_Occurrence_Of (Thunk_Formal, Loc),
!                   EF   => Thunk_Formal);
! 
!                Target_Formal := Extra_Formal (Target_Formal);
!                Thunk_Formal  := Extra_Formal (Thunk_Formal);
!             end loop;
  
!             while Is_Non_Empty_List (Extra_Actuals) loop
!                Add_Actual_Parameter (Remove_Head (Extra_Actuals));
!             end loop;
  
!             --  Mark the call as processed build-in-place call; required
!             --  to avoid adding the extra formals twice.
  
!             if Nkind (Call_Node) = N_Function_Call then
!                Set_Is_Expanded_Build_In_Place_Call (Call_Node);
!             end if;
  
!             Expand_Actuals (Call_Node, Subp, Post_Call);
!             pragma Assert (Is_Empty_List (Post_Call));
!             pragma Assert (Check_Number_Of_Actuals (Call_Node, Subp));
!             pragma Assert (Check_BIP_Actuals (Call_Node, Subp));
!             return;
!          end;
        end if;
  
        Formal := First_Formal (Subp);
--- 4753,4791 ----
        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
        --  regular formals collecting corresponding actuals in Extra_Actuals.
  
!       --  We also generate any required range checks for actuals for in-mode
!       --  formals as we go through the loop, since this is a convenient place
!       --  to do it. (Though it seems that this would be better done in
!       --  Expand_Actuals???)
  
        --  Special case: Thunks must not compute the extra actuals; they must
!       --  just propagate their extra actuals to the target primitive (this
!       --  propagation is performed by Create_Extra_Actuals).
  
        if Is_Thunk (Current_Scope)
          and then Thunk_Entity (Current_Scope) = Subp
+         and then Extra_Formals_Known (Subp)
          and then Present (Extra_Formals (Subp))
        then
!          Create_Extra_Actuals (Call_Node);
  
!          --  Mark the call as an expanded build-in-place call; required
!          --  to avoid adding the extra formals twice.
  
!          if Nkind (Call_Node) = N_Function_Call then
!             Set_Is_Expanded_Build_In_Place_Call (Call_Node);
!          end if;
  
!          Expand_Actuals (Call_Node, Subp, Post_Call);
  
!          pragma Assert (Is_Empty_List (Post_Call));
!          pragma Assert (Check_Number_Of_Actuals (Call_Node, Subp));
!          pragma Assert (Check_BIP_Actuals (Call_Node, Subp));
!          return;
        end if;
  
        Formal := First_Formal (Subp);
*************** package body Exp_Ch6 is
*** 4162,4341 ****
             CW_Interface_Formals_Present
               or else Is_Class_Wide_Interface_Type (Etype (Formal));
  
-          --  Create possible extra actual for constrained case. Usually, the
-          --  extra actual is of the form actual'constrained, but since this
-          --  attribute is only available for unconstrained records, TRUE is
-          --  expanded if the type of the formal happens to be constrained (for
-          --  instance when this procedure is inherited from an unconstrained
-          --  record to a constrained one) or if the actual has no discriminant
-          --  (its type is constrained). An exception to this is the case of a
-          --  private type without discriminants. In this case we pass FALSE
-          --  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),
-                   EF   => Extra_Constrained (Formal));
- 
-             elsif Is_Constrained (Etype (Formal))
-               or else not Has_Discriminants (Etype (Prev))
-             then
-                Add_Extra_Actual
-                  (Expr => New_Occurrence_Of (Standard_True, Loc),
-                   EF   => Extra_Constrained (Formal));
- 
-             --  Do not produce extra actuals for Unchecked_Union parameters.
-             --  Jump directly to the end of the loop.
- 
-             elsif Is_Unchecked_Union (Base_Type (Etype (Actual))) then
-                goto Skip_Extra_Actual_Generation;
- 
-             else
-                --  If the actual is a type conversion, then the constrained
-                --  test applies to the actual, not the target type.
- 
-                declare
-                   Act_Prev : Node_Id;
- 
-                begin
-                   --  Test for unchecked conversions as well, which can occur
-                   --  as out parameter actuals on calls to stream procedures.
- 
-                   Act_Prev := Prev;
-                   while Nkind (Act_Prev) in N_Type_Conversion
-                                           | N_Unchecked_Type_Conversion
-                   loop
-                      Act_Prev := Expression (Act_Prev);
-                   end loop;
- 
-                   --  If the expression is a conversion of a dereference, this
-                   --  is internally generated code that manipulates addresses,
-                   --  e.g. when building interface tables. No check should
-                   --  occur in this case, and the discriminated object is not
-                   --  directly at hand.
- 
-                   if not Comes_From_Source (Actual)
-                     and then Nkind (Actual) = N_Unchecked_Type_Conversion
-                     and then Nkind (Act_Prev) = N_Explicit_Dereference
-                   then
-                      Add_Extra_Actual
-                        (Expr => New_Occurrence_Of (Standard_False, Loc),
-                         EF   => Extra_Constrained (Formal));
- 
-                   else
-                      Add_Extra_Actual
-                        (Expr =>
-                           Make_Attribute_Reference (Sloc (Prev),
-                             Prefix         =>
-                               Duplicate_Subexpr_No_Checks
-                                 (Act_Prev, Name_Req => True),
-                             Attribute_Name => Name_Constrained),
-                         EF   => Extra_Constrained (Formal));
-                   end if;
-                end;
-             end if;
-          end if;
- 
-          --  Create possible extra actual for accessibility level
- 
-          if Present (Extra_Accessibility (Formal)) then
-             --  Ada 2005 (AI-251): Thunks must propagate the extra actuals of
-             --  accessibility levels.
- 
-             if Is_Thunk (Current_Scope) then
-                declare
-                   Parm_Ent : Entity_Id;
- 
-                begin
-                   if Is_Controlling_Actual (Actual) then
- 
-                      --  Find the corresponding actual of the thunk
- 
-                      Parm_Ent := First_Entity (Current_Scope);
-                      for J in 2 .. Param_Count loop
-                         Next_Entity (Parm_Ent);
-                      end loop;
- 
-                   --  Handle unchecked conversion of access types generated
-                   --  in thunks (cf. Expand_Interface_Thunk).
- 
-                   elsif Is_Access_Type (Etype (Actual))
-                     and then Nkind (Actual) = N_Unchecked_Type_Conversion
-                   then
-                      Parm_Ent := Entity (Expression (Actual));
- 
-                   else pragma Assert (Is_Entity_Name (Actual));
-                      Parm_Ent := Entity (Actual);
-                   end if;
- 
-                   Add_Extra_Actual
-                     (Expr => Accessibility_Level
-                                (Expr            => Parm_Ent,
-                                 Level           => Dynamic_Level,
-                                 Allow_Alt_Model => False),
-                      EF   => Extra_Accessibility (Formal));
-                end;
- 
-             --  Conditional expressions
- 
-             elsif Nkind (Prev) = N_Expression_With_Actions
-               and then Nkind (Original_Node (Prev)) in
-                          N_If_Expression | N_Case_Expression
-             then
-                Add_Cond_Expression_Extra_Actual (Formal);
- 
-             --  Internal constant generated to remove side effects (normally
-             --  from the expansion of dispatching calls).
- 
-             --  First verify the actual is internal
- 
-             elsif not Comes_From_Source (Prev)
-               and then not Is_Rewrite_Substitution (Prev)
- 
-               --  Next check that the actual is a constant
- 
-               and then Nkind (Prev) = N_Identifier
-               and then Ekind (Entity (Prev)) = E_Constant
-               and then Nkind (Parent (Entity (Prev))) = N_Object_Declaration
-             then
-                --  Generate the accessibility level based on the expression in
-                --  the constant's declaration.
- 
-                declare
-                   Ent : Entity_Id := Entity (Prev);
- 
-                begin
-                   --  Handle deferred constants
- 
-                   if Present (Full_View (Ent)) then
-                      Ent := Full_View (Ent);
-                   end if;
- 
-                   Add_Extra_Actual
-                     (Expr => Accessibility_Level
-                                (Expr            => Expression (Parent (Ent)),
-                                 Level           => Dynamic_Level,
-                                 Allow_Alt_Model => False),
-                      EF   => Extra_Accessibility (Formal));
-                end;
- 
-             --  Normal case
- 
-             else
-                Add_Extra_Actual
-                  (Expr => Accessibility_Level
-                             (Expr            => Prev,
-                              Level           => Dynamic_Level,
-                              Allow_Alt_Model => False),
-                   EF   => Extra_Accessibility (Formal));
-             end if;
-          end if;
- 
           --  Perform the check of 4.6(49) that prevents a null value from being
           --  passed as an actual to an access parameter. Note that the check
           --  is elided in the common cases of passing an access attribute or
--- 4803,4808 ----
*************** package body Exp_Ch6 is
*** 4529,4594 ****
           --  This label is required when skipping extra actual generation for
           --  Unchecked_Union parameters.
  
-          <<Skip_Extra_Actual_Generation>>
- 
           Param_Count := Param_Count + 1;
           Next_Actual (Actual);
           Next_Formal (Formal);
        end loop;
  
-       --  If we are calling an Ada 2012 function which needs to have the
-       --  "accessibility level determined by the point of call" (AI05-0234)
-       --  passed in to it, then pass it in.
- 
-       if Ekind (Subp) in E_Function | E_Operator | E_Subprogram_Type
-         and then
-           Present (Extra_Accessibility_Of_Result (Ultimate_Alias (Subp)))
-       then
-          declare
-             Extra_Form : Node_Id := Empty;
-             Level      : Node_Id := Empty;
- 
-          begin
-             --  Detect cases where the function call has been internally
-             --  generated by examining the original node and return library
-             --  level - taking care to avoid ignoring function calls expanded
-             --  in prefix notation.
- 
-             if Nkind (Original_Node (Call_Node)) not in N_Function_Call
-                                                       | N_Selected_Component
-                                                       | N_Indexed_Component
-             then
-                Level := Make_Integer_Literal
-                           (Loc, Scope_Depth (Standard_Standard));
- 
-             --  Otherwise get the level normally based on the call node
- 
-             else
-                Level := Accessibility_Level
-                           (Expr            => Call_Node,
-                            Level           => Dynamic_Level,
-                            Allow_Alt_Model => False);
-             end if;
- 
-             --  It may be possible that we are re-expanding an already
-             --  expanded call when are are dealing with dispatching ???
- 
-             if No (Parameter_Associations (Call_Node))
-               or else Nkind (Last (Parameter_Associations (Call_Node)))
-                         /= N_Parameter_Association
-               or else not Is_Accessibility_Actual
-                               (Last (Parameter_Associations (Call_Node)))
-             then
-                Extra_Form := Extra_Accessibility_Of_Result
-                                (Ultimate_Alias (Subp));
- 
-                Add_Extra_Actual
-                  (Expr => Level,
-                   EF   => Extra_Form);
-             end if;
-          end;
-       end if;
- 
        --  If we are expanding the RHS of an assignment we need to check if tag
        --  propagation is needed. You might expect this processing to be in
        --  Analyze_Assignment but has to be done earlier (bottom-up) because the
--- 4996,5006 ----
*************** package body Exp_Ch6 is
*** 4601,4627 ****
        then
           declare
              Ass : Node_Id := Empty;
  
           begin
!             if Nkind (Parent (Call_Node)) = N_Assignment_Statement then
!                Ass := Parent (Call_Node);
  
!             elsif Nkind (Parent (Call_Node)) = N_Qualified_Expression
!               and then Nkind (Parent (Parent (Call_Node))) =
!                                                   N_Assignment_Statement
!             then
!                Ass := Parent (Parent (Call_Node));
  
!             elsif Nkind (Parent (Call_Node)) = N_Explicit_Dereference
!               and then Nkind (Parent (Parent (Call_Node))) =
!                                                   N_Assignment_Statement
!             then
!                Ass := Parent (Parent (Call_Node));
!             end if;
  
!             if Present (Ass)
!               and then Is_Class_Wide_Type (Etype (Name (Ass)))
              then
                 --  Move the error messages below to sem???
  
                 if Is_Access_Type (Etype (Call_Node)) then
--- 5013,5046 ----
        then
           declare
              Ass : Node_Id := Empty;
+             Par : Node_Id := Parent (Call_Node);
  
           begin
!             --  Search for the LHS of an enclosing assignment statement to a
!             --  classwide type object (if present) and propagate the tag to
!             --  this function call.
  
!             while Nkind (Par) in N_Case_Expression
!                                | N_Case_Expression_Alternative
!                                | N_Explicit_Dereference
!                                | N_If_Expression
!                                | N_Qualified_Expression
!                                | N_Unchecked_Type_Conversion
!             loop
!                if Nkind (Par) = N_Case_Expression_Alternative then
!                   Par := Parent (Par);
!                end if;
  
!                exit when not Is_Tag_Indeterminate (Par);
  
!                Par := Parent (Par);
!             end loop;
! 
!             if Nkind (Par) = N_Assignment_Statement
!               and then Is_Class_Wide_Type (Etype (Name (Par)))
              then
+                Ass := Par;
+ 
                 --  Move the error messages below to sem???
  
                 if Is_Access_Type (Etype (Call_Node)) then
*************** package body Exp_Ch6 is
*** 4634,4639 ****
--- 5053,5064 ----
                           Call_Node, Root_Type (Etype (Name (Ass))));
                    else
                       Propagate_Tag (Name (Ass), Call_Node);
+ 
+                      --  Remember that the tag has been propagated to avoid
+                      --  propagating it again, as part of the (bottom-up)
+                      --  analysis of the enclosing assignment.
+ 
+                      Set_Tag_Propagated (Name (Ass));
                    end if;
  
                 elsif Etype (Call_Node) /= Root_Type (Etype (Name (Ass))) then
*************** package body Exp_Ch6 is
*** 4644,4649 ****
--- 5069,5080 ----
  
                 else
                    Propagate_Tag (Name (Ass), Call_Node);
+ 
+                   --  Remember that the tag has been propagated to avoid
+                   --  propagating it again, as part of the (bottom-up)
+                   --  analysis of the enclosing assignment.
+ 
+                   Set_Tag_Propagated (Name (Ass));
                 end if;
  
                 --  The call will be rewritten as a dispatching call, and
*************** package body Exp_Ch6 is
*** 4782,4819 ****
        then
           null;
  
!       --  During that loop we gathered the extra actuals (the ones that
!       --  correspond to Extra_Formals), so now they can be appended.
! 
!       elsif Is_Non_Empty_List (Extra_Actuals) then
!          declare
!             Num_Extra_Actuals : constant Nat := List_Length (Extra_Actuals);
! 
!          begin
!             while Is_Non_Empty_List (Extra_Actuals) loop
!                Add_Actual_Parameter (Remove_Head (Extra_Actuals));
!             end loop;
! 
!             --  Add dummy extra BIP actuals if we are calling a function that
!             --  inherited the BIP extra actuals but does not require them.
! 
!             if Nkind (Call_Node) = N_Function_Call
!               and then Is_Function_Call_With_BIP_Formals (Call_Node)
!               and then not Is_Build_In_Place_Function_Call (Call_Node)
!             then
!                Add_Dummy_Build_In_Place_Actuals (Subp,
!                  Num_Added_Extra_Actuals => Num_Extra_Actuals);
!             end if;
!          end;
! 
!       --  Add dummy extra BIP actuals if we are calling a function that
!       --  inherited the BIP extra actuals but does not require them.
  
!       elsif Nkind (Call_Node) = N_Function_Call
!         and then Is_Function_Call_With_BIP_Formals (Call_Node)
!         and then not Is_Build_In_Place_Function_Call (Call_Node)
!       then
!          Add_Dummy_Build_In_Place_Actuals (Subp);
        end if;
  
        --  At this point we have all the actuals, so this is the point at which
--- 5213,5224 ----
        then
           null;
  
!       elsif not Defer_Extra_Actuals then
!          Create_Extra_Formals (Subp, Related_Nod => Call_Node);
  
!          if Extra_Formals_Known (Subp) then
!             Create_Extra_Actuals (Call_Node);
!          end if;
        end if;
  
        --  At this point we have all the actuals, so this is the point at which
*************** package body Exp_Ch6 is
*** 4828,4834 ****
        --  the current subprogram is called.
  
        if Is_Subprogram (Subp)
!         and then not Is_Ignored_Ghost_Entity (Subp)
          and then Same_Or_Aliased_Subprograms (Subp, Current_Scope)
        then
           Check_Subprogram_Variant;
--- 5233,5239 ----
        --  the current subprogram is called.
  
        if Is_Subprogram (Subp)
!         and then not Is_Ignored_Ghost_Entity_In_Codegen (Subp)
          and then Same_Or_Aliased_Subprograms (Subp, Current_Scope)
        then
           Check_Subprogram_Variant;
*************** package body Exp_Ch6 is
*** 5231,5236 ****
--- 5636,5645 ----
           --  also Build_Renamed_Body) cannot be expanded here because this may
           --  give rise to order-of-elaboration issues for the types of the
           --  parameters of the subprogram, if any.
+          --
+          --  Expand_Inlined_Call procedure does not support the frontend
+          --  inlining of calls that return unconstrained types used as actuals
+          --  or in return statements.
  
           elsif Present (Unit_Declaration_Node (Subp))
             and then Nkind (Unit_Declaration_Node (Subp)) =
*************** package body Exp_Ch6 is
*** 5239,5244 ****
--- 5648,5655 ----
             and then
               Nkind (Body_To_Inline (Unit_Declaration_Node (Subp))) not in
                                                                         N_Entity
+            and then Nkind (Parent (N)) /= N_Function_Call
+            and then Nkind (Parent (N)) /= N_Simple_Return_Statement
           then
              Expand_Inlined_Call (Call_Node, Subp, Orig_Subp);
  
*************** package body Exp_Ch6 is
*** 5284,5321 ****
  
        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))
!                or else
!                  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
!          --  intermediate result after its use.
! 
!          elsif Is_Build_In_Place_Function_Call (Call_Node)
!            and then Nkind (Parent (Unqual_Conv (Call_Node))) in
!                       N_Attribute_Reference
!                     | N_Function_Call
!                     | N_Indexed_Component
!                     | N_Object_Renaming_Declaration
!                     | N_Procedure_Call_Statement
!                     | N_Selected_Component
!                     | N_Slice
!            and then
!              (Ekind (Current_Scope) /= E_Loop
!                or else Nkind (Parent (Call_Node)) /= N_Function_Call
!                or else not
!                  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
--- 5695,5707 ----
  
        if Nkind (Call_Node) = N_Function_Call
          and then Needs_Finalization (Etype (Call_Node))
+         and then not Is_Build_In_Place_Function_Call (Call_Node)
+         and then (No (First_Formal (Subp))
+                    or else not
+                      Is_Concurrent_Record_Type (Etype (First_Formal (Subp))))
        then
!          Expand_Ctrl_Function_Call
!            (Call_Node, Needs_Secondary_Stack (Etype (Call_Node)));
  
        --  Functions returning noncontrolled objects that may be subject to
        --  user-defined indexing also need special attention. The problem
*************** package body Exp_Ch6 is
*** 5364,5376 ****
     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
        --  to copy/readjust/finalize, we can just pass the value through (see
!       --  Expand_N_Simple_Return_Statement), and thus no attachment is needed.
        --  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;
--- 5750,5765 ----
     is
        Par        : constant Node_Id := Parent (N);
        Uncond_Par : constant Node_Id := Unconditional_Parent (N);
+      --  Beware that a qualified expression around a function call cannot be
+      --  considered as transparent (like around an aggregate) because it may
+      --  cause a temporary to be created.
  
     begin
        --  Optimization: if the returned value is returned again, then no need
        --  to copy/readjust/finalize, we can just pass the value through (see
!       --  Expand_Simple_Function_Return), and thus no attachment is needed.
        --  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;
*************** package body Exp_Ch6 is
*** 5412,5417 ****
--- 5801,5816 ----
           return;
        end if;
  
+       --  Another optimization: if the returned value is used to initialize the
+       --  component of an aggregate, then no need to copy/readjust/finalize, we
+       --  can initialize it in place. Note that assignments for aggregates are
+       --  also distributed into conditional expressions, but we may be invoked
+       --  before this distribution is done.
+ 
+       if Parent_Is_Regular_Aggregate (Uncond_Par) 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,
*************** package body Exp_Ch6 is
*** 5491,5498 ****
        Loc          : constant Source_Ptr := Sloc (N);
        Func_Id      : constant Entity_Id :=
                         Return_Applies_To (Return_Statement_Entity (N));
-       Is_BIP_Func  : constant Boolean   :=
-                        Is_Build_In_Place_Function (Func_Id);
        Ret_Obj_Id   : constant Entity_Id :=
                         First_Entity (Return_Statement_Entity (N));
        Ret_Obj_Decl : constant Node_Id   := Parent (Ret_Obj_Id);
--- 5890,5895 ----
*************** package body Exp_Ch6 is
*** 5514,5519 ****
--- 5911,5922 ----
  
        function Move_Activation_Chain (Func_Id : Entity_Id) return Node_Id is
        begin
+          --  Move_Activation_Chain is not universally available
+ 
+          if not RTE_Available (RE_Move_Activation_Chain) then
+             return Make_Null_Statement (Loc);
+          end if;
+ 
           return
             Make_Procedure_Call_Statement (Loc,
               Name                   =>
*************** package body Exp_Ch6 is
*** 5607,5618 ****
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. As a formality, we test whether the function requires the
!          --  result to be built in place, though that's necessarily true for
!          --  the case of result types with task parts.
! 
!          if Is_BIP_Func and then Has_Task (Ret_Typ) then
  
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
--- 6010,6022 ----
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. Note that we test that the function is both BIP and has
!          --  implicit task formal parameters, because not all functions whose
!          --  result type contains tasks have them (see Needs_BIP_Task_Actuals).
  
+          if Is_Build_In_Place_Function (Func_Id)
+            and then Needs_BIP_Task_Actuals (Func_Id)
+          then
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
*************** package body Exp_Ch6 is
*** 5625,5631 ****
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Has_Task (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
--- 6029,6035 ----
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Might_Have_Tasks (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
*************** package body Exp_Ch6 is
*** 5764,5770 ****
  
     exception
        when RE_Not_Available =>
!          return;
     end Expand_N_Simple_Return_Statement;
  
     ------------------------------
--- 6168,6174 ----
  
     exception
        when RE_Not_Available =>
!          null;
     end Expand_N_Simple_Return_Statement;
  
     ------------------------------
*************** package body Exp_Ch6 is
*** 5805,5810 ****
--- 6209,6222 ----
        --  returns, since they get eliminated anyway later on. Spec_Id denotes
        --  the corresponding spec of the subprogram body.
  
+       procedure Prepend_Constructor_Procedure_Prologue
+         (Spec_Id : Entity_Id; Body_Id : Entity_Id; L : List_Id);
+       --  If N is the body of a constructor procedure (that is, a procedure
+       --  named T'Constructor where T is the type of the procedure's first
+       --  parameter), then prepend and analyze the associated initialization
+       --  code for that parameter.
+       --  This has nothing to do with CPP constructors.
+ 
        ----------------
        -- Add_Return --
        ----------------
*************** package body Exp_Ch6 is
*** 5878,5883 ****
--- 6290,6577 ----
           end if;
        end Add_Return;
  
+       --------------------------------------------
+       -- Prepend_Constructor_Procedure_Prologue --
+       --------------------------------------------
+ 
+       procedure Prepend_Constructor_Procedure_Prologue
+         (Spec_Id : Entity_Id; Body_Id : Entity_Id; L : List_Id)
+       is
+ 
+          function First_Param_Type return Entity_Id is
+            (Implementation_Base_Type (Etype (First_Formal (Spec_Id))));
+ 
+       begin
+          if not (Nkind (Specification (N)) = N_Procedure_Specification
+                   and then Is_Constructor (Spec_Id))
+          then
+             return; -- the usual case
+          end if;
+ 
+          Push_Scope (Spec_Id);
+ 
+          --  Initialize the first parameter.
+          --  First_Param_Type is a record type (tagged or untagged) or
+          --  a type extension. If it is a type extension, then we begin by
+          --  calling the appropriate constructor procedure for the _parent
+          --  part. In the absence of a Super aspect specification, the
+          --  "appropriate" constructor is the one that takes only a single
+          --  parameter (the object being initialized). Additional actual
+          --  parameters for the constructor call may be provided via a
+          --  Super aspect specification, in which case a different
+          --  constructor procedure will be invoked.
+          --
+          --  For each remaining component we first check to see if it
+          --  is mentioned in the Initialize aspect specification (if any) for
+          --  Body_Id. If so, then evaluate the expression given for that
+          --  component in the aspect specification and assign it to the
+          --  given component of the first parameter. If not, and if an
+          --  explicit default initial value is provided for the given component
+          --  in the type declaration, then do the same thing with that
+          --  expression instead. Otherwise perform normal default
+          --  initialization for the component - invoke the init proc for the
+          --  component's type if one exists, and otherwise do nothing.
+ 
+          --  We do not perform tag initialization here. That is dealt with
+          --  elsewhere. The init proc for a tagged type is
+          --  passed an extra parameter indicating whether to perform
+          --  tag initialization.
+ 
+          --  In the case of a type (tagged or untagged) that is not
+          --  an extension, we could just generate a single assignment,
+          --  taking the RHS from the Initialize aspect value (which is an
+          --  N_Aggregate node). But that gets complicated in the case of
+          --  an extension, so we handle all cases one component at a time.
+ 
+          declare
+             Initialize_Aspect : constant Node_Id :=
+               Find_Aspect (Body_Id, Aspect_Initialize);
+ 
+             First_Initialize_Comp_Assoc : constant Node_Id :=
+               (if Present (Initialize_Aspect)
+                then First (Component_Associations
+                              (Expression (Initialize_Aspect)))
+                else Empty);
+ 
+             Component : Entity_Id := First_Entity (First_Param_Type);
+             Init_List : constant List_Id := New_List;
+ 
+             function Init_Expression_If_Any (Component : Entity_Id)
+               return Node_Id;
+             --  If the given component is mentioned in the Initialize
+             --  aspect for the constructor procedure, then return the
+             --  initial value expression specified there.
+             --  Otherwise, if the component declaration includes an
+             --  initial value expression, then return that expression.
+             --  Otherwise, return Empty.
+ 
+             function Make_Init_Proc_Call (Component      : Entity_Id;
+                                           Component_Name : Node_Id)
+               return Node_Id;
+             --  Builds and returns a call to the init proc for the type of
+             --  the component in order to initialize the given component.
+             --  The init proc must exist.
+ 
+             function Make_Parent_Constructor_Call (Parent_Type : Entity_Id)
+               return Node_Id;
+             --  Builds and returns a call to the appropriate constructor
+             --  procedure of the parent type.
+             --  This function is called only in the case of a
+             --  Constructor procedure for a type extension.
+ 
+             ----------------------------
+             -- Init_Expression_If_Any --
+             ----------------------------
+ 
+             function Init_Expression_If_Any (Component : Entity_Id)
+               return Node_Id
+             is
+                Initialize_Comp_Assoc : Node_Id := First_Initialize_Comp_Assoc;
+                Choice : Node_Id;
+ 
+                --  ??? Technically, this is quadratic (linear search called
+                --  a linear number of times). When/if we see performance
+                --  problems with hundreds of components mentioned in one
+                --  Initialize aspect specification, we can revisit this.
+             begin
+                while Present (Initialize_Comp_Assoc) loop
+                   Choice := First (Choices (Initialize_Comp_Assoc));
+ 
+                   while Present (Choice) loop
+                      if Nkind (Choice) = N_Identifier
+                        and then Chars (Choice) = Chars (Component)
+                      then
+                         return Expression (Initialize_Comp_Assoc);
+                      end if;
+                      Next (Choice);
+                   end loop;
+ 
+                   Next (Initialize_Comp_Assoc);
+                end loop;
+ 
+                if Present (Expression (Parent (Component))) then
+                   return Expression (Parent (Component));
+                end if;
+ 
+                return Empty;
+             end Init_Expression_If_Any;
+ 
+             -------------------------
+             -- Make_Init_Proc_Call --
+             -------------------------
+ 
+             function Make_Init_Proc_Call (Component      : Entity_Id;
+                                           Component_Name : Node_Id)
+               return Node_Id
+             is
+                Params    : constant List_Id := New_List (Component_Name);
+                Init_Proc : constant Entity_Id :=
+                  Base_Init_Proc (Etype (Component));
+             begin
+                if Is_Tagged_Type (Etype (Component)) then
+                   Append (Make_Mode_Literal (Loc, Full_Init), Params);
+                end if;
+ 
+                return Init_Proc_Call : constant Node_Id :=
+                  Make_Procedure_Call_Statement (Loc,
+                    Name => New_Occurrence_Of (Init_Proc, Loc),
+                    Parameter_Associations => Params)
+                do
+                   pragma Assert (Check_Number_Of_Actuals
+                                    (Subp_Call => Init_Proc_Call,
+                                     Subp_Id   => Init_Proc));
+                end return;
+             end Make_Init_Proc_Call;
+ 
+             ----------------------------------
+             -- Make_Parent_Constructor_Call --
+             ----------------------------------
+ 
+             function Make_Parent_Constructor_Call (Parent_Type : Entity_Id)
+               return Node_Id
+             is
+                Actual_Parameters : List_Id := No_List;
+                Super_Aspect      : constant Node_Id :=
+                  Find_Aspect (Body_Id, Aspect_Super);
+ 
+                --  Do not confuse the Super aspect with the Super attribute.
+                --  Both are referenced here, but they are not related as
+                --  closely as some aspect/attribute homonym pairs are.
+                --  The attribute takes an object as a prefix. The aspect
+                --  can be specified for the body of a constructor procedure.
+             begin
+                if Present (Super_Aspect) then
+                   declare
+                      Super_Expr : constant Node_Id :=
+                        Expression (Super_Aspect);
+                      Expr       : Node_Id;
+                   begin
+                      if Nkind (Super_Expr) /= N_Aggregate then
+                         Expr := New_Copy_Tree (Super_Expr);
+                         Set_Paren_Count (Expr, 0);
+                         Actual_Parameters := New_List (Expr);
+                      else
+                         --  Interpret this "aggregate" as a list of
+                         --  actual parameter expressions.
+ 
+                         Actual_Parameters := New_List;
+                         Expr := First (Expressions (Super_Expr));
+                         while Present (Expr) loop
+                            Append (New_Copy_Tree (Expr), Actual_Parameters);
+                            Next (Expr);
+                         end loop;
+                      end if;
+                   end;
+                end if;
+ 
+                return Make_Assignment_Statement (Loc,
+                  Name       =>
+                    Make_Attribute_Reference (Loc,
+                      Prefix         =>
+                        New_Occurrence_Of (First_Formal (Spec_Id), Loc),
+                      Attribute_Name => Name_Super),
+                  Expression =>
+                    Make_Attribute_Reference (Loc,
+                      Prefix         =>
+                        New_Occurrence_Of (Parent_Type, Loc),
+                      Attribute_Name => Name_Make,
+                      Expressions    => Actual_Parameters));
+             end Make_Parent_Constructor_Call;
+ 
+          begin
+             while Present (Component) loop
+                pragma Assert (Ekind (Component) = E_Component);
+ 
+                if Chars (Component) = Name_uTag then
+                   null;
+ 
+                elsif Chars (Component) = Name_uParent
+                  and then Needs_Construction (Etype (Component))
+                then
+                   Append_To (Init_List, Make_Parent_Constructor_Call
+                                           (Parent_Type => Etype (Component)));
+ 
+                else
+                   declare
+                      Maybe_Init_Exp : constant Node_Id :=
+                        Init_Expression_If_Any (Component);
+ 
+                      function Make_Component_Name return Node_Id is
+                        (Make_Selected_Component (Loc,
+                           Prefix        =>
+                             New_Occurrence_Of (First_Formal (Spec_Id), Loc),
+                           Selector_Name =>
+                             Make_Identifier (Loc, Chars (Component))));
+                   begin
+                      --  Handle case where initial value for this component
+                      --  is specified either in an Initialize aspect
+                      --  specification or as part of the component declaration.
+ 
+                      if Present (Maybe_Init_Exp) then
+                         --  ??? Should reorganize things so that
+                         --  procedure Build_Assignment in exp_ch3.adb
+                         --  (which is currently declared inside of
+                         --  Build_Record_Init_Proc) can be called from here.
+                         --  That procedure handles some corner cases
+                         --  that are not properly handled here (e.g.,
+                         --  mapping current instance references to the
+                         --  appropriate formal parameter).
+ 
+                         if Is_Tagged_Type (Etype (Component)) then
+                            Append_To (Init_List,
+                              Make_Tag_Assignment_From_Type (Loc,
+                                Target => Make_Component_Name,
+                                Typ => Etype (Component)));
+                         end if;
+ 
+                         Append_To (Init_List,
+                           Make_Assignment_Statement (Loc,
+                             Name       => Make_Component_Name,
+                             Expression => New_Copy_Tree
+                                             (Maybe_Init_Exp,
+                                              New_Scope => Body_Id)));
+ 
+                      --  Handle case where component's type has an init proc
+                      elsif Has_Non_Null_Base_Init_Proc (Etype (Component)) then
+                         Append_To (Init_List,
+                                    Make_Init_Proc_Call (
+                                     Component      => Component,
+                                     Component_Name => Make_Component_Name));
+                      else
+                         pragma Assert (not Is_Tagged_Type (Etype (Component)));
+                      end if;
+                   end;
+                end if;
+ 
+                Next_Entity (Component);
+             end loop;
+ 
+             Insert_List_Before_And_Analyze (First (L), Init_List);
+          end;
+ 
+          Pop_Scope;
+       end Prepend_Constructor_Procedure_Prologue;
+ 
        --  Local variables
  
        Except_H : Node_Id;
*************** package body Exp_Ch6 is
*** 6110,6115 ****
--- 6804,6815 ----
           Detect_Infinite_Recursion (N, Spec_Id);
        end if;
  
+       --  If the subprogram is a constructor procedure then prepend
+       --  and analyze initialization code.
+ 
+       Prepend_Constructor_Procedure_Prologue
+         (Spec_Id => Spec_Id, Body_Id => Body_Id, L => L);
+ 
        --  Set to encode entity names in package body before gigi is called
  
        Qualify_Entity_Names (N);
*************** package body Exp_Ch6 is
*** 6704,6710 ****
        --
        --  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
--- 7404,7410 ----
        --
        --  into
        --
!       --    return _anonymous_ : constant <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
*** 6736,6741 ****
--- 7436,7442 ----
              Obj_Decl : constant Node_Id :=
                           Make_Object_Declaration (Loc,
                             Defining_Identifier => Make_Temporary (Loc, 'R'),
+                            Constant_Present    => True,
                             Object_Definition   => Subtype_Ind,
                             Expression          => Relocate_Node (Exp));
  
*************** package body Exp_Ch6 is
*** 6839,6845 ****
  
        elsif (not Needs_Secondary_Stack (R_Type)
                and then not Is_Secondary_Stack_Thunk (Scope_Id))
!         or else Is_Ignored_Ghost_Entity (Scope_Id)
        then
           --  Mutable records with variable-length components are not returned
           --  on the sec-stack, so we need to make sure that the back end will
--- 7540,7546 ----
  
        elsif (not Needs_Secondary_Stack (R_Type)
                and then not Is_Secondary_Stack_Thunk (Scope_Id))
!         or else Is_Ignored_Ghost_Entity_In_Codegen (Scope_Id)
        then
           --  Mutable records with variable-length components are not returned
           --  on the sec-stack, so we need to make sure that the back end will
*************** package body Exp_Ch6 is
*** 6975,6980 ****
--- 7676,7682 ----
  
              if Is_Interface (R_Type) then
                 Rewrite (Exp, Convert_To (R_Type, Relocate_Node (Exp)));
+                Flag_Interface_Pointer_Displacement (Exp);
              end if;
  
              Analyze_And_Resolve (Exp, R_Type);
*************** package body Exp_Ch6 is
*** 7053,7058 ****
--- 7755,7761 ----
  
                 if Is_Interface (R_Type) then
                    Rewrite (Exp, Convert_To (R_Type, Relocate_Node (Exp)));
+                   Flag_Interface_Pointer_Displacement (Exp);
                 end if;
  
                 Analyze_And_Resolve (Exp, R_Type);
*************** package body Exp_Ch6 is
*** 7153,7158 ****
--- 7856,7871 ----
        then
           Apply_CW_Accessibility_Check (Exp, Scope_Id);
  
+       --  Check that result's access discrims (if any) do not designate
+       --  entities that the function result could outlive. See preceding
+       --  comment about extended return statements and thunks.
+ 
+       elsif Has_Anonymous_Access_Discriminant (Exp_Typ)
+         and then not Comes_From_Extended_Return_Statement (N)
+         and then not Is_Thunk (Scope_Id)
+       then
+          Apply_Access_Discrims_Accessibility_Check (Exp, Scope_Id);
+ 
        --  Ada 2012 (AI05-0073): If the result subtype of the function is
        --  defined by an access_definition designating a specific tagged
        --  type T, a check is made that the result value is null or the tag
*************** package body Exp_Ch6 is
*** 7237,7242 ****
--- 7950,7956 ----
          and then Utyp /= Underlying_Type (Exp_Typ)
        then
           Rewrite (Exp, Convert_To (Utyp, Relocate_Node (Exp)));
+          Flag_Interface_Pointer_Displacement (Exp);
           Analyze_And_Resolve (Exp);
        end if;
  
*************** package body Exp_Ch6 is
*** 7663,7669 ****
                Get_Class_Wide_Pragma (Id, Pragma_Precondition);
  
           begin
!             if No (Prag) or else Is_Ignored (Prag) then
                 return;
              end if;
  
--- 8377,8383 ----
                Get_Class_Wide_Pragma (Id, Pragma_Precondition);
  
           begin
!             if No (Prag) or else Is_Ignored_In_Codegen (Prag) then
                 return;
              end if;
  
*************** package body Exp_Ch6 is
*** 8273,8281 ****
       (Allocator     : Node_Id;
        Function_Call : Node_Id)
     is
!       Acc_Type          : constant Entity_Id := Etype (Allocator);
        Loc               : constant Source_Ptr := Sloc (Function_Call);
!       Func_Call         : Node_Id := Function_Call;
        Ref_Func_Call     : Node_Id;
        Function_Id       : Entity_Id;
        Result_Subt       : Entity_Id;
--- 8987,8995 ----
       (Allocator     : Node_Id;
        Function_Call : Node_Id)
     is
!       Acc_Type          : constant Entity_Id  := Etype (Allocator);
        Loc               : constant Source_Ptr := Sloc (Function_Call);
!       Func_Call         : constant Node_Id    := Unqual_Conv (Function_Call);
        Ref_Func_Call     : Node_Id;
        Function_Id       : Entity_Id;
        Result_Subt       : Entity_Id;
*************** package body Exp_Ch6 is
*** 8288,8303 ****
        Chain             : Entity_Id; -- activation chain, in case of tasks
  
     begin
-       --  Step past qualification or unchecked conversion (the latter can occur
-       --  in cases of calls to 'Input).
- 
-       if Nkind (Func_Call) in N_Qualified_Expression
-                             | N_Type_Conversion
-                             | N_Unchecked_Type_Conversion
-       then
-          Func_Call := Expression (Func_Call);
-       end if;
- 
        --  Mark the call as processed as a build-in-place call
  
        pragma Assert (not Is_Expanded_Build_In_Place_Call (Func_Call));
--- 9002,9007 ----
*************** package body Exp_Ch6 is
*** 8332,8358 ****
        --  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:
-       --
-       --    function Make_Lim_Ctrl return Lim_Ctrl is
-       --    begin
-       --       return Result : Lim_Ctrl := raise Program_Error do
-       --          null;
-       --       end return;
-       --    end Make_Lim_Ctrl;
-       --
-       --    Obj : Lim_Ctrl_Ptr := new Lim_Ctrl'(Make_Lim_Ctrl);
-       --
-       --  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;
  
--- 9036,9041 ----
*************** package body Exp_Ch6 is
*** 8404,8420 ****
  
           New_Allocator :=
             Make_Allocator (Loc,
!              Expression => New_Occurrence_Of (Result_Subt, Loc));
           Set_No_Initialization (New_Allocator);
  
!          --  Copy attributes to new allocator. Note that the new allocator
!          --  logically comes from source if the original one did, so copy the
!          --  relevant flag. This ensures proper treatment of the restriction
!          --  No_Implicit_Heap_Allocations in this case.
  
           Set_Storage_Pool      (New_Allocator, Storage_Pool      (Allocator));
           Set_Procedure_To_Call (New_Allocator, Procedure_To_Call (Allocator));
-          Set_Comes_From_Source (New_Allocator, Comes_From_Source (Allocator));
  
           Rewrite (Allocator, New_Allocator);
  
--- 9087,9110 ----
  
           New_Allocator :=
             Make_Allocator (Loc,
!              Subpool_Handle_Name =>
!                Relocate_Node (Subpool_Handle_Name (Allocator)),
!              Expression          => New_Occurrence_Of (Result_Subt, Loc));
! 
!          --  Prevent default initialization of the allocator
! 
           Set_No_Initialization (New_Allocator);
  
!          --  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 (New_Allocator, Allocator);
! 
!          --  Copy the attributes set by Expand_N_Allocator
  
           Set_Storage_Pool      (New_Allocator, Storage_Pool      (Allocator));
           Set_Procedure_To_Call (New_Allocator, Procedure_To_Call (Allocator));
  
           Rewrite (Allocator, New_Allocator);
  
*************** package body Exp_Ch6 is
*** 8458,8463 ****
--- 9148,9154 ----
           Rewrite
             (Ref_Func_Call,
              OK_Convert_To (Acc_Type, Ref_Func_Call));
+          Flag_Interface_Pointer_Displacement (Ref_Func_Call);
  
        --  If the types are incompatible, we need an unchecked conversion. Note
        --  that the full types will be compatible, but the types not visibly
*************** package body Exp_Ch6 is
*** 8490,8499 ****
  
        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
              Actions := New_List (Assign);
              Chain   := Empty;
--- 9181,9189 ----
  
        begin
           if Might_Have_Tasks (Result_Subt) then
!             Actions :=
!               Build_Task_Allocate_Block (Allocator, New_List (Assign));
!             Chain   := Activation_Chain_Entity (Last (Actions));
           else
              Actions := New_List (Assign);
              Chain   := Empty;
*************** package body Exp_Ch6 is
*** 8517,8527 ****
           end if;
        end;
  
!       --  When the function has a controlling result, an allocation-form
!       --  parameter must be passed indicating that the caller is allocating
!       --  the result object. This is needed because such a function can be
!       --  called as a dispatching operation and must be treated similarly
!       --  to functions with unconstrained result subtypes.
  
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
          (Func_Call,
--- 9207,9213 ----
           end if;
        end;
  
!       --  Add implicit actuals for the BIP formal parameters, if any
  
        Add_Unconstrained_Actuals_To_Build_In_Place_Call
          (Func_Call,
*************** package body Exp_Ch6 is
*** 8546,8556 ****
--- 9232,9252 ----
        Add_Access_Actual_To_Build_In_Place_Call
          (Func_Call, Function_Id, Return_Obj_Actual);
  
+       --  If the allocation is done in the caller, create a custom Allocate
+       --  procedure if need be.
+ 
+       if not Needs_BIP_Alloc_Form (Function_Id) then
+          Build_Allocate_Deallocate_Proc
+            (Declaration_Node (Return_Obj_Access), Mark => Allocator);
+       end if;
+ 
        --  Finally, replace the allocator node with a reference to the temp
  
        Rewrite (Allocator, New_Occurrence_Of (Return_Obj_Access, Loc));
  
        Analyze_And_Resolve (Allocator, Acc_Type);
+ 
+       pragma Assert (Returns_By_Ref (Function_Id));
        pragma Assert (Check_Number_Of_Actuals (Func_Call, Function_Id));
        pragma Assert (Check_BIP_Actuals (Func_Call, Function_Id));
     end Make_Build_In_Place_Call_In_Allocator;
*************** package body Exp_Ch6 is
*** 8565,8570 ****
--- 9261,9269 ----
        Loc         : constant Source_Ptr := Sloc (Function_Call);
        Func_Call   : constant Node_Id    := Unqual_Conv (Function_Call);
        Function_Id : Entity_Id;
+       Has_Tasks   : Boolean;
+       Known_Size  : Boolean;
+       Needs_Fin   : Boolean;
        Result_Subt : Entity_Id;
  
     begin
*************** package body Exp_Ch6 is
*** 8591,8617 ****
        Warn_BIP (Func_Call);
  
        Result_Subt := Etype (Function_Id);
  
        --  If the build-in-place function returns a controlled object, then the
!       --  object needs to be finalized immediately after the context. Since
!       --  this case produces a transient scope, the servicing finalizer needs
!       --  to name the returned object.
  
        --  If the build-in-place function returns a definite subtype, then an
        --  object also needs to be created and an access value designating it
        --  passed as an actual.
  
!       --  Create a temporary which is initialized with the function call:
!       --
!       --    Temp_Id : Func_Type := BIP_Func_Call;
!       --
!       --  The initialization expression of the temporary will be rewritten by
!       --  the expander using the appropriate mechanism in Make_Build_In_Place_
!       --  Call_In_Object_Declaration.
  
-       if Needs_Finalization (Result_Subt)
-         or else Caller_Known_Size (Func_Call, Result_Subt)
-       then
           declare
              Temp_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
              Temp_Decl : constant Node_Id   :=
--- 9290,9317 ----
        Warn_BIP (Func_Call);
  
        Result_Subt := Etype (Function_Id);
+       Has_Tasks := Might_Have_Tasks (Result_Subt);
+       Known_Size := Caller_Known_Size (Func_Call, Result_Subt);
+       Needs_Fin := Needs_Finalization (Result_Subt);
  
        --  If the build-in-place function returns a controlled object, then the
!       --  object needs to be finalized immediately after the context is exited,
!       --  which requires the creation of a transient scope and a named object.
  
        --  If the build-in-place function returns a definite subtype, then an
        --  object also needs to be created and an access value designating it
        --  passed as an actual.
  
!       --  Insert a temporary before the call initialized with function call to
!       --  reuse the BIP machinery which takes care of adding the extra build-in
!       --  place actuals.
! 
!       if Needs_Fin or else Known_Size or else Has_Tasks then
!          if Needs_Fin then
!             Establish_Transient_Scope
!               (Func_Call, Manage_Sec_Stack => not Known_Size);
!          end if;
  
           declare
              Temp_Id   : constant Entity_Id := Make_Temporary (Loc, 'R');
              Temp_Decl : constant Node_Id   :=
*************** package body Exp_Ch6 is
*** 8623,8631 ****
  
           begin
              Set_Assignment_OK (Temp_Decl);
              Insert_Action (Function_Call, Temp_Decl);
              Rewrite (Function_Call, New_Occurrence_Of (Temp_Id, Loc));
-             Analyze (Function_Call);
           end;
  
        --  When the result subtype is unconstrained, the function must allocate
--- 9323,9342 ----
  
           begin
              Set_Assignment_OK (Temp_Decl);
+             Expander_Mode_Save_And_Set (False);
              Insert_Action (Function_Call, Temp_Decl);
+             Expander_Mode_Restore;
+ 
+             if Has_Tasks then
+                Build_Activation_Chain_Entity (Temp_Decl);
+                Build_Master_Entity (Temp_Id);
+             end if;
+ 
+             Make_Build_In_Place_Call_In_Object_Declaration
+               (Obj_Decl      => Temp_Decl,
+                Function_Call => Expression (Temp_Decl));
+ 
              Rewrite (Function_Call, New_Occurrence_Of (Temp_Id, Loc));
           end;
  
        --  When the result subtype is unconstrained, the function must allocate
*************** package body Exp_Ch6 is
*** 8652,8661 ****
--- 9363,9375 ----
           Add_Access_Actual_To_Build_In_Place_Call
             (Func_Call, Function_Id, Empty);
  
+          Establish_Transient_Scope (Func_Call, Manage_Sec_Stack => True);
+ 
           --  Mark the call as processed as a build-in-place call
  
           Set_Is_Expanded_Build_In_Place_Call (Func_Call);
  
+          pragma Assert (Returns_By_Ref (Function_Id));
           pragma Assert (Check_Number_Of_Actuals (Func_Call, Function_Id));
           pragma Assert (Check_BIP_Actuals (Func_Call, Function_Id));
        end if;
*************** package body Exp_Ch6 is
*** 8757,8762 ****
--- 9471,9478 ----
        Insert_After_And_Analyze (Ptr_Typ_Decl, Obj_Decl);
  
        Rewrite (Assign, Make_Null_Statement (Loc));
+ 
+       pragma Assert (Returns_By_Ref (Func_Id));
        pragma Assert (Check_Number_Of_Actuals (Func_Call, Func_Id));
        pragma Assert (Check_BIP_Actuals (Func_Call, Func_Id));
     end Make_Build_In_Place_Call_In_Assignment;
*************** package body Exp_Ch6 is
*** 8826,8831 ****
--- 9542,9566 ----
            and then
          not Has_Foreign_Convention (Return_Applies_To (Scope (Obj_Def_Id)));
  
+       Constraint_Check_Needed : constant Boolean :=
+         (Has_Discriminants (Obj_Typ) or else Is_Array_Type (Obj_Typ))
+          and then Is_Tagged_Type (Obj_Typ)
+          and then Nkind (Original_Node (Obj_Decl)) /=
+                     N_Object_Renaming_Declaration
+          and then Is_Constrained (Obj_Typ);
+       --  We are processing a call in the context of something like
+       --  "X : T := F (...);". This is True if we need to do a constraint
+       --  check, because T has constrained bounds or discriminants,
+       --  and F is returning an unconstrained subtype.
+       --  We are currently doing the check at the call site,
+       --  which is possible only in the callee-allocates case,
+       --  which is why we have Is_Tagged_Type above.
+       --  ???The check is missing in the untagged caller-allocates case.
+       --  ???The check for renaming declarations above is needed because
+       --  Sem_Ch8.Analyze_Object_Renaming sometimes changes a renaming
+       --  into an object declaration. We probably shouldn't do that,
+       --  but for now, we need this check.
+ 
     --  Start of processing for Make_Build_In_Place_Call_In_Object_Declaration
  
     begin
*************** package body Exp_Ch6 is
*** 8868,8882 ****
                Subtype_Indication =>
                  New_Occurrence_Of (Designated_Type, Loc)));
  
!       --  The access type and its accompanying object must be inserted after
!       --  the object declaration in the constrained case, so that the function
!       --  call can be passed access to the object. In the indefinite case, or
        --  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);
--- 9603,9618 ----
                Subtype_Indication =>
                  New_Occurrence_Of (Designated_Type, Loc)));
  
!       --  The access type and its object must be inserted after the object
!       --  declaration in the caller-allocates case, so that the function call
!       --  can be passed access to the object. In the caller-allocates case, or
        --  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 not Is_OK_Return_Object and not Constraint_Check_Needed
!       then
           Insert_Action_After (Obj_Decl, Ptr_Typ_Decl);
        else
           Insert_Action (Obj_Decl, Ptr_Typ_Decl);
*************** package body Exp_Ch6 is
*** 8957,8963 ****
        --  to the (specific) result type of the function is inserted to handle
        --  the case where the object is declared with a class-wide type.
  
!       elsif Definite then
           Caller_Object := Unchecked_Convert_To
             (Result_Subt, New_Occurrence_Of (Obj_Def_Id, Loc));
  
--- 9693,9699 ----
        --  to the (specific) result type of the function is inserted to handle
        --  the case where the object is declared with a class-wide type.
  
!       elsif Definite and not Constraint_Check_Needed then
           Caller_Object := Unchecked_Convert_To
             (Result_Subt, New_Occurrence_Of (Obj_Def_Id, Loc));
  
*************** package body Exp_Ch6 is
*** 8982,8988 ****
           --  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,
--- 9718,9724 ----
           --  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 (Function_Id) then
              Build_Finalization_Collection
                (Typ            => Ptr_Typ,
                 For_Lib_Level  => True,
*************** package body Exp_Ch6 is
*** 9095,9102 ****
        --  itself the return expression of an enclosing BIP function, then mark
        --  the object as having no initialization.
  
!       if Definite and then not Is_OK_Return_Object then
! 
           Set_Expression (Obj_Decl, Empty);
           Set_No_Initialization (Obj_Decl);
  
--- 9831,9838 ----
        --  itself the return expression of an enclosing BIP function, then mark
        --  the object as having no initialization.
  
!       if Definite and not Is_OK_Return_Object and not Constraint_Check_Needed
!       then
           Set_Expression (Obj_Decl, Empty);
           Set_No_Initialization (Obj_Decl);
  
*************** package body Exp_Ch6 is
*** 9155,9162 ****
--- 9891,9903 ----
           Analyze (Obj_Decl);
           Replace_Renaming_Declaration_Id
             (Obj_Decl, Original_Node (Obj_Decl));
+ 
+          if Constraint_Check_Needed then
+             Apply_Constraint_Check (Call_Deref, Obj_Typ);
+          end if;
        end if;
  
+       pragma Assert (Returns_By_Ref (Function_Id));
        pragma Assert (Check_Number_Of_Actuals (Func_Call, Function_Id));
        pragma Assert (Check_BIP_Actuals (Func_Call, Function_Id));
     end Make_Build_In_Place_Call_In_Object_Declaration;
*************** package body Exp_Ch6 is
*** 9196,9202 ****
        Anon_Type := Create_Itype (E_Anonymous_Access_Type, Function_Call);
        Set_Directly_Designated_Type (Anon_Type, Etype (BIP_Func_Call));
        Set_Etype (Anon_Type, Anon_Type);
-       Build_Class_Wide_Master (Anon_Type);
  
        Tmp_Decl :=
          Make_Object_Declaration (Loc,
--- 9937,9942 ----
*************** package body Exp_Ch6 is
*** 9220,9225 ****
--- 9960,9968 ----
        Insert_Action (Allocator, Tmp_Decl);
        Expander_Mode_Restore;
  
+       Build_Master_Entity (Anon_Type);
+       Build_Master_Renaming (Anon_Type);
+ 
        Make_Build_In_Place_Call_In_Allocator
          (Allocator     => Expression (Tmp_Decl),
           Function_Call => Expression (Expression (Tmp_Decl)));
*************** package body Exp_Ch6 is
*** 9230,9235 ****
--- 9973,9979 ----
        Rewrite (Allocator,
          Convert_To (Etype (Allocator),
            New_Occurrence_Of (Tmp_Id, Loc)));
+       Flag_Interface_Pointer_Displacement (Allocator);
     end Make_Build_In_Place_Iface_Call_In_Allocator;
  
     ---------------------------------------------------------
*************** package body Exp_Ch6 is
*** 9273,9281 ****
--- 10017,10030 ----
        Insert_Action (Function_Call, Tmp_Decl);
        Expander_Mode_Restore;
  
+       Build_Activation_Chain_Entity (Tmp_Decl);
+       Build_Master_Entity (Tmp_Id);
+ 
        Make_Build_In_Place_Iface_Call_In_Object_Declaration
          (Obj_Decl      => Tmp_Decl,
           Function_Call => Expression (Tmp_Decl));
+ 
+       Rewrite (Function_Call, New_Occurrence_Of (Tmp_Id, Loc));
     end Make_Build_In_Place_Iface_Call_In_Anonymous_Context;
  
     ----------------------------------------------------------
*************** package body Exp_Ch6 is
*** 9383,9389 ****
        pragma Assert (Nkind (Allocator) = N_Allocator
                        and then Nkind (Function_Call) = N_Function_Call);
        pragma Assert (Convention (Function_Id) = Convention_CPP
!                       and then Is_Constructor (Function_Id));
        pragma Assert (Is_Constrained (Underlying_Type (Result_Subt)));
  
        --  Replace the initialized allocator of form "new T'(Func (...))" with
--- 10132,10138 ----
        pragma Assert (Nkind (Allocator) = N_Allocator
                        and then Nkind (Function_Call) = N_Function_Call);
        pragma Assert (Convention (Function_Id) = Convention_CPP
!                       and then Is_CPP_Constructor (Function_Id));
        pragma Assert (Is_Constrained (Underlying_Type (Result_Subt)));
  
        --  Replace the initialized allocator of form "new T'(Func (...))" with
*************** package body Exp_Ch6 is
*** 9393,9409 ****
  
        New_Allocator :=
          Make_Allocator (Loc,
!           Expression => New_Occurrence_Of (Result_Subt, Loc));
        Set_No_Initialization (New_Allocator);
  
!       --  Copy attributes to new allocator. Note that the new allocator
!       --  logically comes from source if the original one did, so copy the
!       --  relevant flag. This ensures proper treatment of the restriction
!       --  No_Implicit_Heap_Allocations in this case.
  
        Set_Storage_Pool      (New_Allocator, Storage_Pool      (Allocator));
        Set_Procedure_To_Call (New_Allocator, Procedure_To_Call (Allocator));
-       Set_Comes_From_Source (New_Allocator, Comes_From_Source (Allocator));
  
        Rewrite (Allocator, New_Allocator);
  
--- 10142,10165 ----
  
        New_Allocator :=
          Make_Allocator (Loc,
!           Subpool_Handle_Name =>
!             Relocate_Node (Subpool_Handle_Name (Allocator)),
!           Expression          => New_Occurrence_Of (Result_Subt, Loc));
! 
!       --  Prevent default initialization of the allocator
! 
        Set_No_Initialization (New_Allocator);
  
!       --  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 (New_Allocator, Allocator);
! 
!       --  Copy the attributes set by Expand_N_Allocator
  
        Set_Storage_Pool      (New_Allocator, Storage_Pool      (Allocator));
        Set_Procedure_To_Call (New_Allocator, Procedure_To_Call (Allocator));
  
        Rewrite (Allocator, New_Allocator);
  
*************** package body Exp_Ch6 is
*** 9447,9452 ****
--- 10203,10209 ----
  
        if Is_Interface (Designated_Type (Acc_Type)) then
           Rewrite (Allocator, Convert_To (Acc_Type, Relocate_Node (Allocator)));
+          Flag_Interface_Pointer_Displacement (Allocator);
        end if;
  
        Analyze_And_Resolve (Allocator, Acc_Type);
*************** package body Exp_Ch6 is
*** 9540,9545 ****
--- 10297,10308 ----
        Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
  
     begin
+       --  No need for BIP_Collection if allocation is always done in the caller
+ 
+       if not Needs_BIP_Alloc_Form (Func_Id) then
+          return False;
+       end if;
+ 
        --  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
*************** package body Exp_Ch6 is
*** 9564,9575 ****
        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
--- 10327,10332 ----
*************** package body Exp_Ch6 is
*** 9772,9940 ****
        return Unqual_BIP_Function_Call (Expr);
     end Unqual_BIP_Iface_Function_Call;
  
-    -------------------------------
-    -- Validate_Subprogram_Calls --
-    -------------------------------
- 
-    procedure Validate_Subprogram_Calls (N : Node_Id) is
- 
-       function Process_Node (Nod : Node_Id) return Traverse_Result;
-       --  Function to traverse the subtree of N using Traverse_Proc.
- 
-       ------------------
-       -- Process_Node --
-       ------------------
- 
-       function Process_Node (Nod : Node_Id) return Traverse_Result is
-       begin
-          case Nkind (Nod) is
-             when N_Entry_Call_Statement
-                | N_Procedure_Call_Statement
-                | N_Function_Call
-             =>
-                declare
-                   Call_Node : Node_Id renames Nod;
-                   Subp      : Entity_Id;
- 
-                begin
-                   --  Call using access to subprogram with explicit dereference
- 
-                   if Nkind (Name (Call_Node)) = N_Explicit_Dereference then
-                      Subp := Etype (Name (Call_Node));
- 
-                   --  Prefix notation calls
- 
-                   elsif Nkind (Name (Call_Node)) = N_Selected_Component then
-                      Subp := Entity (Selector_Name (Name (Call_Node)));
- 
-                   --  Call to member of entry family, where Name is an indexed
-                   --  component, with the prefix being a selected component
-                   --  giving the task and entry family name, and the index
-                   --  being the entry index.
- 
-                   elsif Nkind (Name (Call_Node)) = N_Indexed_Component then
-                      Subp :=
-                        Entity (Selector_Name (Prefix (Name (Call_Node))));
- 
-                   --  Normal case
- 
-                   else
-                      Subp := Entity (Name (Call_Node));
-                   end if;
- 
-                   pragma Assert (Check_BIP_Actuals (Call_Node, Subp));
-                end;
- 
-             --  Skip generic bodies
- 
-             when N_Package_Body =>
-                if Ekind (Unique_Defining_Entity (Nod)) = E_Generic_Package then
-                   return Skip;
-                end if;
- 
-             when N_Subprogram_Body =>
-                if Ekind (Unique_Defining_Entity (Nod)) in E_Generic_Function
-                                                         | E_Generic_Procedure
-                then
-                   return Skip;
-                end if;
- 
-             --  Nodes we want to ignore
- 
-             --  Skip calls placed in the full declaration of record types since
-             --  the call will be performed by their Init Proc; for example,
-             --  calls initializing default values of discriminants or calls
-             --  providing the initial value of record type components. Other
-             --  full type declarations are processed because they may have
-             --  calls that must be checked. For example:
- 
-             --    type T is array (1 .. Some_Function_Call (...)) of Some_Type;
- 
-             --  ??? More work needed here to handle the following case:
- 
-             --    type Rec is record
-             --       F : String (1 .. <some complicated expression>);
-             --    end record;
- 
-             when N_Full_Type_Declaration =>
-                if Is_Record_Type (Defining_Entity (Nod)) then
-                   return Skip;
-                end if;
- 
-             --  Skip calls placed in unexpanded initialization expressions
- 
-             when N_Object_Declaration =>
-                if No_Initialization (Nod) then
-                   return Skip;
-                end if;
- 
-             --  Skip calls placed in subprogram specifications since function
-             --  calls initializing default parameter values will be processed
-             --  when the call to the subprogram is found (if the default actual
-             --  parameter is required), and calls found in aspects will be
-             --  processed when their corresponding pragma is found, or in the
-             --  specific case of class-wide pre-/postconditions, when their
-             --  helpers are found.
- 
-             when N_Procedure_Specification
-                | N_Function_Specification
-             =>
-                return Skip;
- 
-             when N_Abstract_Subprogram_Declaration
-                | N_Aspect_Specification
-                | N_At_Clause
-                | N_Call_Marker
-                | N_Empty
-                | N_Enumeration_Representation_Clause
-                | N_Enumeration_Type_Definition
-                | N_Function_Instantiation
-                | N_Freeze_Generic_Entity
-                | N_Generic_Function_Renaming_Declaration
-                | N_Generic_Package_Renaming_Declaration
-                | N_Generic_Procedure_Renaming_Declaration
-                | N_Generic_Package_Declaration
-                | N_Generic_Subprogram_Declaration
-                | N_Itype_Reference
-                | N_Number_Declaration
-                | N_Package_Instantiation
-                | N_Package_Renaming_Declaration
-                | N_Pragma
-                | N_Procedure_Instantiation
-                | N_Protected_Type_Declaration
-                | N_Record_Representation_Clause
-                | N_Validate_Unchecked_Conversion
-                | N_Variable_Reference_Marker
-                | N_Use_Package_Clause
-                | N_Use_Type_Clause
-                | N_With_Clause
-             =>
-                return Skip;
- 
-             when others =>
-                null;
-          end case;
- 
-          return OK;
-       end Process_Node;
- 
-       procedure Check_Calls is new Traverse_Proc (Process_Node);
- 
-    --  Start of processing for Validate_Subprogram_Calls
- 
-    begin
-       --  No action required if we are not generating code or compiling sources
-       --  that have errors.
- 
-       if Serious_Errors_Detected > 0
-         or else Operating_Mode /= Generate_Code
-       then
-          return;
-       end if;
- 
-       Check_Calls (N);
-    end Validate_Subprogram_Calls;
- 
     --------------
     -- Warn_BIP --
     --------------
--- 10529,10534 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch6.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch6.ads
*** gcc-15.2.0/gcc/ada/exp_ch6.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch6.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 67,84 ****
        --  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
--- 67,84 ----
        --  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.
  
        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.
  
        BIP_Collection,
!       --  Present if result type is returned on the secondary stack and needs
!       --  finalization, or is tagged. 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
*** 101,107 ****
--- 101,120 ----
     --  Adds Extra_Actual as a named parameter association for the formal
     --  Extra_Formal in Subprogram_Call.
  
+    procedure Create_Extra_Actuals (Call_Node : Node_Id);
+    --  Create the extra actuals of the given call and add them to its
+    --  actual parameters list.
+ 
+    procedure Apply_Access_Discrims_Accessibility_Check
+      (Exp : Node_Id; Func : Entity_Id);
+    --  Exp is an expression being returned from a function Func.
+    --  If the result type of the function has access discriminants, insert
+    --  checks that the accessibility level of each entity designated by an
+    --  access discriminant of the result is not deeper than the level of the
+    --  master of the call.
+ 
     procedure Apply_CW_Accessibility_Check (Exp : Node_Id; Func : Entity_Id);
+    --  Exp is an expression being returned from a function Func.
     --  Ada 2005 (AI95-344): If the result type is class-wide, insert a check
     --  that the level of the return expression's underlying type is not deeper
     --  than the level of the master enclosing the function. Always generate the
*************** package Exp_Ch6 is
*** 288,300 ****
     --  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
!    --  dispatching calls, and descendant types may require finalization.
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Return True if the function returns an object of a type that has tasks.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
--- 301,312 ----
     --  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 function needs an implicit
!    --  BIP_Collection parameter (see type BIP_Formal_Kind).
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Ada 2005 (AI-318-02): Return True if the function needs implicit
!    --  BIP_Task_Master and BIP_Activation_Chain parameters.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
*************** package Exp_Ch6 is
*** 304,313 ****
     --  to reference the secondary dispatch table of an interface; otherwise
     --  return Empty.
  
!    procedure Validate_Subprogram_Calls (N : Node_Id);
!    --  Check that the number of actuals (including extra actuals) of calls in
!    --  the subtree N match their corresponding formals; check also that the
!    --  names of BIP extra actuals and formals match.
  
  private
     pragma Inline (Is_Build_In_Place_Return_Object);
--- 316,327 ----
     --  to reference the secondary dispatch table of an interface; otherwise
     --  return Empty.
  
!    function Check_BIP_Actuals
!      (Subp_Call : Node_Id;
!       Subp_Id   : Entity_Id) return Boolean;
!    --  Given a subprogram call to the given subprogram return True if the
!    --  names of BIP extra actual and formal parameters match, and the number
!    --  of actuals (including extra actuals) matches the number of formals.
  
  private
     pragma Inline (Is_Build_In_Place_Return_Object);
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch7.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch7.adb
*** gcc-15.2.0/gcc/ada/exp_ch7.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch7.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 29,34 ----
*************** with Output;         use Output;
*** 54,64 ****
  with Restrict;       use Restrict;
  with Rident;         use Rident;
  with Rtsfind;        use Rtsfind;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Ch7;        use Sem_Ch7;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Res;        use Sem_Res;
--- 53,63 ----
  with Restrict;       use Restrict;
  with Rident;         use Rident;
  with Rtsfind;        use Rtsfind;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
+ with Sem_Ch6;        use Sem_Ch6;
  with Sem_Ch7;        use Sem_Ch7;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Res;        use Sem_Res;
*************** package body Exp_Ch7 is
*** 427,442 ****
     --  does not contain the above constructs, the routine returns an empty
     --  list.
  
-    procedure Build_Finalizer_Call (N : Node_Id; Fin_Id : Entity_Id);
-    --  N is a construct that contains a handled sequence of statements, Fin_Id
-    --  is the entity of a finalizer. Create an At_End handler that covers the
-    --  statements of N and calls Fin_Id. If the handled statement sequence has
-    --  an exception handler, the statements will be wrapped in a block to avoid
-    --  unwanted interaction with the new At_End handler.
- 
     procedure Build_Record_Deep_Procs (Typ : Entity_Id);
     --  Build the deep Initialize/Adjust/Finalize for a record Typ with
!    --  Has_Component_Component set and store them using the TSS mechanism.
  
     --------------------------------
     -- Transient Scope Management --
--- 426,434 ----
     --  does not contain the above constructs, the routine returns an empty
     --  list.
  
     procedure Build_Record_Deep_Procs (Typ : Entity_Id);
     --  Build the deep Initialize/Adjust/Finalize for a record Typ with
!    --  Has_Controlled_Component set and store them using the TSS mechanism.
  
     --------------------------------
     -- Transient Scope Management --
*************** package body Exp_Ch7 is
*** 2305,2340 ****
  
              Append_To (Decls, Fin_Spec);
  
!             --  When the finalizer acts solely as a cleanup routine, the body
!             --  is inserted right after the spec.
! 
!             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
!                --  a subprogram is frozen when its body is seen and the freeze
!                --  node appears right before the body. However, in this case,
!                --  the spec must be frozen earlier since the At_End handler
!                --  must be able to call it.
!                --
!                --    declare
!                --       procedure Fin_Id;               --  Spec
!                --       [Fin_Id]                        --  Freeze node
!                --    begin
!                --       ...
!                --    at end
!                --       Fin_Id;                         --  At_End handler
!                --    end;
  
!                Ensure_Freeze_Node (Fin_Id);
!                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);
--- 2297,2326 ----
  
              Append_To (Decls, Fin_Spec);
  
!             --  Manually freeze the spec. This is somewhat of a hack because a
!             --  subprogram is frozen when its body is seen and the freeze node
!             --  appears right before the body. However, in this case, the spec
!             --  must be frozen earlier since the At_End handler must be able to
!             --  call it.
!             --
!             --    declare
!             --       procedure Fin_Id;               --  Spec
!             --       [Fin_Id]                        --  Freeze node
!             --    begin
!             --       ...
!             --    at end
!             --       Fin_Id;                         --  At_End handler
!             --    end;
  
!             Ensure_Freeze_Node (Fin_Id);
!             Insert_After (Fin_Spec, Freeze_Node (Fin_Id));
!             Mutate_Ekind (Fin_Id, E_Procedure);
!             Freeze_Extra_Formals (Fin_Id);
!             Set_Is_Frozen (Fin_Id);
  
!             pragma Assert (Present (Stmts));
  
!             Append_To (Stmts, Fin_Body);
           end if;
  
           Analyze (Fin_Spec, Suppress => All_Checks);
*************** package body Exp_Ch7 is
*** 2426,2432 ****
              --  Do not inspect an ignored Ghost package body because all
              --  code found within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Defining_Entity (Decl)) then
                 null;
  
              elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package then
--- 2412,2418 ----
              --  Do not inspect an ignored Ghost package body because all
              --  code found within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Defining_Entity (Decl)) then
                 null;
  
              elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package then
*************** package body Exp_Ch7 is
*** 2504,2510 ****
                 --  Ignored Ghost types do not need any cleanup actions because
                 --  they will not appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity (Typ) then
                    null;
  
                 elsif Is_Tagged_Type (Typ)
--- 2490,2496 ----
                 --  Ignored Ghost types do not need any cleanup actions because
                 --  they will not appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity_In_Codegen (Typ) then
                    null;
  
                 elsif Is_Tagged_Type (Typ)
*************** package body Exp_Ch7 is
*** 2550,2556 ****
                 --  Ignored Ghost objects do not need any cleanup actions
                 --  because they will not appear in the final tree.
  
!                elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                    null;
  
                 --  Conversely, if one of the above cases created a Master_Node,
--- 2536,2542 ----
                 --  Ignored Ghost objects do not need any cleanup actions
                 --  because they will not appear in the final tree.
  
!                elsif Is_Ignored_Ghost_Entity_In_Codegen (Obj_Id) then
                    null;
  
                 --  Conversely, if one of the above cases created a Master_Node,
*************** package body Exp_Ch7 is
*** 2652,2658 ****
                 --  Freeze nodes for ignored Ghost types do not need cleanup
                 --  actions because they will never appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity (Typ) then
                    null;
  
                 elsif (Is_Access_Object_Type (Typ)
--- 2638,2644 ----
                 --  Freeze nodes for ignored Ghost types do not need cleanup
                 --  actions because they will never appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity_In_Codegen (Typ) then
                    null;
  
                 elsif (Is_Access_Object_Type (Typ)
*************** package body Exp_Ch7 is
*** 2677,2683 ****
                 --  Do not inspect an ignored Ghost package because all code
                 --  found within will not appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity (Pack_Id) then
                    null;
  
                 elsif Ekind (Pack_Id) /= E_Generic_Package then
--- 2663,2669 ----
                 --  Do not inspect an ignored Ghost package because all code
                 --  found within will not appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity_In_Codegen (Pack_Id) then
                    null;
  
                 elsif Ekind (Pack_Id) /= E_Generic_Package then
*************** package body Exp_Ch7 is
*** 2724,2731 ****
           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
--- 2710,2715 ----
*************** package body Exp_Ch7 is
*** 2786,2803 ****
  
              Push_Scope (Scope (Obj_Id));
  
-             --  Avoid generating duplicate names for master nodes
- 
-             if Ekind (Obj_Id) = E_Loop_Parameter
-               and then
-                 Present (Current_Entity_In_Scope (Chars (Master_Node_Id)))
-             then
-                Set_Chars (Master_Node_Id,
-                  New_External_Name (Chars (Obj_Id),
-                    Suffix => "MN",
-                    Suffix_Index => -1));
-             end if;
- 
              if not Has_Strict_Ctrl_Objs or else Count = 1 then
                 Prepend_To (Decls, Master_Node_Decl);
              else
--- 2770,2775 ----
*************** package body Exp_Ch7 is
*** 3194,3201 ****
              Spec_Id := Defining_Identifier (Spec_Id);
           end if;
  
!       --  Accept statement, block, entry body, package body, protected body,
!       --  subprogram body or task body.
  
        else
           Decls := Declarations (N);
--- 3166,3172 ----
              Spec_Id := Defining_Identifier (Spec_Id);
           end if;
  
!       --  Block, entry body, package body, subprogram body or task body
  
        else
           Decls := Declarations (N);
*************** package body Exp_Ch7 is
*** 3321,3396 ****
        end if;
     end Build_Finalizer;
  
-    --------------------------
-    -- Build_Finalizer_Call --
-    --------------------------
- 
-    procedure Build_Finalizer_Call (N : Node_Id; Fin_Id : Entity_Id) is
-    begin
-       --  Do not perform this expansion in SPARK mode because we do not create
-       --  finalizers in the first place.
- 
-       if GNATprove_Mode then
-          return;
-       end if;
- 
-       --  If the construct to be cleaned up is a protected subprogram body, the
-       --  finalizer call needs to be associated with the block that wraps the
-       --  unprotected version of the subprogram. The following illustrates this
-       --  scenario:
- 
-       --     procedure Prot_SubpP is
-       --        procedure finalizer is
-       --        begin
-       --           Service_Entries (Prot_Obj);
-       --           Abort_Undefer;
-       --        end finalizer;
- 
-       --     begin
-       --        . . .
-       --        begin
-       --           Prot_SubpN (Prot_Obj);
-       --        at end
-       --           finalizer;
-       --        end;
-       --     end Prot_SubpP;
- 
-       declare
-          Loc : constant Source_Ptr := Sloc (N);
- 
-          Is_Protected_Subp_Body : constant Boolean :=
-            Nkind (N) = N_Subprogram_Body
-            and then Is_Protected_Subprogram_Body (N);
-          --  True if N is the protected version of a subprogram that belongs to
-          --  a protected type.
- 
-          HSS : constant Node_Id :=
-            (if Is_Protected_Subp_Body
-              then Handled_Statement_Sequence
-                (Last (Statements (Handled_Statement_Sequence (N))))
-              else Handled_Statement_Sequence (N));
- 
-          --  We attach the At_End_Proc to the HSS if this is an accept
-          --  statement or extended return statement. Also in the case of
-          --  a protected subprogram, because if Service_Entries raises an
-          --  exception, we do not lock the PO, so we also do not want to
-          --  unlock it.
- 
-          Use_HSS : constant Boolean :=
-            Nkind (N) in N_Accept_Statement | N_Extended_Return_Statement
-            or else Is_Protected_Subp_Body;
- 
-          At_End_Proc_Bearer : constant Node_Id := (if Use_HSS then HSS else N);
-       begin
-          pragma Assert (No (At_End_Proc (At_End_Proc_Bearer)));
-          Set_At_End_Proc (At_End_Proc_Bearer, New_Occurrence_Of (Fin_Id, Loc));
-          --  Attach reference to finalizer to tree, for LLVM use
-          Set_Parent (At_End_Proc (At_End_Proc_Bearer), At_End_Proc_Bearer);
-          Analyze (At_End_Proc (At_End_Proc_Bearer));
-          Expand_At_End_Handler (At_End_Proc_Bearer, Empty);
-       end;
-    end Build_Finalizer_Call;
- 
     ---------------------
     -- Build_Late_Proc --
     ---------------------
--- 3292,3297 ----
*************** package body Exp_Ch7 is
*** 3586,3603 ****
  
     procedure Build_Record_Deep_Procs (Typ : Entity_Id) is
     begin
!       Set_TSS (Typ,
!         Make_Deep_Proc
!           (Prim  => Initialize_Case,
!            Typ   => Typ,
!            Stmts => Make_Deep_Record_Body (Initialize_Case, Typ)));
  
!       if not Is_Inherently_Limited_Type (Typ) then
!          Set_TSS (Typ,
!            Make_Deep_Proc
!              (Prim  => Adjust_Case,
!               Typ   => Typ,
!               Stmts => Make_Deep_Record_Body (Adjust_Case, Typ)));
        end if;
  
        --  Do not generate Deep_Finalize and Finalize_Address if finalization is
--- 3487,3508 ----
  
     procedure Build_Record_Deep_Procs (Typ : Entity_Id) is
     begin
!       if Has_Controlled_Component (Typ) then
!          Set_TSS
!            (Typ,
!             Make_Deep_Proc
!               (Prim  => Initialize_Case,
!                Typ   => Typ,
!                Stmts => Make_Deep_Record_Body (Initialize_Case, Typ)));
  
!          if not Is_Inherently_Limited_Type (Typ) then
!             Set_TSS
!               (Typ,
!                Make_Deep_Proc
!                  (Prim  => Adjust_Case,
!                   Typ   => Typ,
!                   Stmts => Make_Deep_Record_Body (Adjust_Case, Typ)));
!          end if;
        end if;
  
        --  Do not generate Deep_Finalize and Finalize_Address if finalization is
*************** package body Exp_Ch7 is
*** 4283,4290 ****
     -- Establish_Transient_Scope --
     -------------------------------
  
!    --  This procedure is called each time a transient block has to be inserted
!    --  that is to say for each call to a function with unconstrained or tagged
     --  result. It creates a new scope on the scope stack in order to enclose
     --  all transient variables generated.
  
--- 4188,4196 ----
     -- Establish_Transient_Scope --
     -------------------------------
  
!    --  This procedure is called when a transient scope has to be inserted in
!    --  the tree to manage the lifetime of temporaries created for a construct,
!    --  most notably for calls to functions with a controlled or unconstrained
     --  result. It creates a new scope on the scope stack in order to enclose
     --  all transient variables generated.
  
*************** package body Exp_Ch7 is
*** 4751,4768 ****
  
        --  We mark the secondary stack if it is used in this construct, and
        --  we're not returning a function result on the secondary stack, except
!       --  that a build-in-place function that might or might not return on the
!       --  secondary stack always needs a mark. A run-time test is required in
!       --  the case where the build-in-place function has a BIP_Alloc extra
!       --  parameter (see Create_Finalizer).
  
        Needs_Sec_Stack_Mark   : constant Boolean :=
!                                    (Uses_Sec_Stack (Scop)
!                                      and then
!                                        not Sec_Stack_Needed_For_Return (Scop))
!                                  or else
!                                    (Is_Build_In_Place_Function (Scop)
!                                      and then Needs_BIP_Alloc_Form (Scop));
  
        Needs_Custom_Cleanup   : constant Boolean :=
                                   Nkind (N) = N_Block_Statement
--- 4657,4674 ----
  
        --  We mark the secondary stack if it is used in this construct, and
        --  we're not returning a function result on the secondary stack, except
!       --  that a build-in-place function that only conditionally returns on
!       --  the secondary stack will also need a mark. A run-time test for doing
!       --  the release call is needed in the case where the build-in-place
!       --  function has a BIP_Alloc_Form parameter (see Create_Finalizer).
  
        Needs_Sec_Stack_Mark   : constant Boolean :=
!                                  Uses_Sec_Stack (Scop)
!                                    and then
!                                  (not Sec_Stack_Needed_For_Return (Scop)
!                                    or else
!                                      (Is_Build_In_Place_Function (Scop)
!                                        and then Needs_BIP_Alloc_Form (Scop)));
  
        Needs_Custom_Cleanup   : constant Boolean :=
                                   Nkind (N) = N_Block_Statement
*************** package body Exp_Ch7 is
*** 4904,4910 ****
              Fin_Id      => Fin_Id);
  
           if Present (Fin_Id) then
!             Build_Finalizer_Call (N, Fin_Id);
           end if;
        end;
     end Expand_Cleanup_Actions;
--- 4810,4821 ----
              Fin_Id      => Fin_Id);
  
           if Present (Fin_Id) then
!             pragma Assert (No (At_End_Proc (N)));
!             Set_At_End_Proc (N, New_Occurrence_Of (Fin_Id, Sloc (N)));
!             --  Attach reference to finalizer to tree for LLVM
!             Set_Parent (At_End_Proc (N), N);
!             Analyze (At_End_Proc (N));
!             Expand_At_End_Handler (N, Empty);
           end if;
        end;
     end Expand_Cleanup_Actions;
*************** package body Exp_Ch7 is
*** 5073,5081 ****
  
           --  Generate task activation call as last step of elaboration
  
!          if Present (Activation_Chain_Entity (N)) then
!             Build_Task_Activation_Call (N);
!          end if;
  
           --  Verify the run-time semantics of pragma Initial_Condition at the
           --  end of the private declarations when the package lacks a body.
--- 4984,4990 ----
  
           --  Generate task activation call as last step of elaboration
  
!          Build_Task_Activation_Call (N);
  
           --  Verify the run-time semantics of pragma Initial_Condition at the
           --  end of the private declarations when the package lacks a body.
*************** package body Exp_Ch7 is
*** 5274,5280 ****
              --  Ignored Ghost objects do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Obj_Id) then
                 return;
              end if;
  
--- 5183,5189 ----
              --  Ignored Ghost objects do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Obj_Id) then
                 return;
              end if;
  
*************** package body Exp_Ch7 is
*** 6638,6643 ****
--- 6547,6562 ----
        --       Raised : Boolean := False;
        --
        --    begin
+       --       begin
+       --          <Destructor_Proc> (V);  --  If applicable
+       --       exception
+       --          when others =>
+       --             if not Raised then
+       --                Raised := True;
+       --                Save_Occurrence (E, Get_Current_Excep.all.all);
+       --             end if;
+       --       end;
+       --
        --       if F then
        --          begin
        --             Finalize (V);  --  If applicable
*************** package body Exp_Ch7 is
*** 6693,6698 ****
--- 6612,6619 ----
        --
        --       begin
        --          Deep_Finalize (V._parent, False);  --  If applicable
+       --  or
+       --          Deep_Finalize (Parent_Type (V), False); -- Untagged case
        --       exception
        --          when Id : others =>
        --             if not Raised then
*************** package body Exp_Ch7 is
*** 7097,7103 ****
           --  or the type is not controlled.
  
           if Is_Empty_List (Bod_Stmts) then
!             Append_To (Bod_Stmts, Make_Null_Statement (Loc));
  
              return Bod_Stmts;
  
--- 7018,7024 ----
           --  or the type is not controlled.
  
           if Is_Empty_List (Bod_Stmts) then
!             Append_New_To (Bod_Stmts, Make_Null_Statement (Loc));
  
              return Bod_Stmts;
  
*************** package body Exp_Ch7 is
*** 7584,7592 ****
  
           --    Deep_Finalize (Obj._parent, False);
  
!          if Is_Tagged_Type (Typ) and then Is_Derived_Type (Typ) then
              declare
!                Par_Typ  : constant Entity_Id := Parent_Field_Type (Typ);
                 Call     : Node_Id;
                 Fin_Stmt : Node_Id;
  
--- 7505,7517 ----
  
           --    Deep_Finalize (Obj._parent, False);
  
!          if Is_Derived_Type (Typ) then
              declare
!                Tagd     : constant Boolean := Is_Tagged_Type (Typ);
!                Par_Typ  : constant Entity_Id :=
!                  (if Tagd
!                   then Parent_Field_Type (Typ)
!                   else Etype (Base_Type (Typ)));
                 Call     : Node_Id;
                 Fin_Stmt : Node_Id;
  
*************** package body Exp_Ch7 is
*** 7595,7604 ****
                    Call :=
                      Make_Final_Call
                        (Obj_Ref   =>
!                          Make_Selected_Component (Loc,
!                            Prefix        => Make_Identifier (Loc, Name_V),
!                            Selector_Name =>
!                              Make_Identifier (Loc, Name_uParent)),
                         Typ       => Par_Typ,
                         Skip_Self => True);
  
--- 7520,7535 ----
                    Call :=
                      Make_Final_Call
                        (Obj_Ref   =>
!                          (if Tagd
!                           then
!                             Make_Selected_Component
!                               (Loc,
!                                Prefix        => Make_Identifier (Loc, Name_V),
!                                Selector_Name =>
!                                  Make_Identifier (Loc, Name_uParent))
!                           else
!                             Convert_To
!                               (Par_Typ, Make_Identifier (Loc, Name_V))),
                         Typ       => Par_Typ,
                         Skip_Self => True);
  
*************** package body Exp_Ch7 is
*** 7614,7619 ****
--- 7545,7565 ----
                    --               Get_Current_Excep.all.all);
                    --          end if;
                    --    end;
+                   --
+                   --  in the tagged case. In the untagged case, which arises
+                   --  with the Destructor aspect, generate:
+                   --
+                   --    begin
+                   --       Deep_Finalize (Parent_Type (V), False);
+ 
+                   --    exception
+                   --       when Id : others =>
+                   --          if not Raised then
+                   --             Raised := True;
+                   --             Save_Occurrence (E,
+                   --               Get_Current_Excep.all.all);
+                   --          end if;
+                   --    end;
  
                    if Present (Call) then
                       Fin_Stmt := Call;
*************** package body Exp_Ch7 is
*** 7659,7665 ****
                          --  than before, the extension components. That might
                          --  be more intuitive (as discussed in preceding
                          --  comment), but it is not required.
!                         Prepend_To (Bod_Stmts, Fin_Stmt);
                       end if;
                    end if;
                 end if;
--- 7605,7611 ----
                          --  than before, the extension components. That might
                          --  be more intuitive (as discussed in preceding
                          --  comment), but it is not required.
!                         Prepend_New_To (Bod_Stmts, Fin_Stmt);
                       end if;
                    end if;
                 end if;
*************** package body Exp_Ch7 is
*** 7710,7721 ****
                                   (Finalizer_Data))));
                    end if;
  
!                   Prepend_To (Bod_Stmts,
                      Make_If_Statement (Loc,
                        Condition       => Make_Identifier (Loc, Name_F),
                        Then_Statements => New_List (Fin_Stmt)));
                 end if;
              end;
           end if;
  
           --  At this point either all finalization statements have been
--- 7656,7709 ----
                                   (Finalizer_Data))));
                    end if;
  
!                   Prepend_New_To (Bod_Stmts,
                      Make_If_Statement (Loc,
                        Condition       => Make_Identifier (Loc, Name_F),
                        Then_Statements => New_List (Fin_Stmt)));
                 end if;
              end;
+ 
+             declare
+                Proc : constant Entity_Id := Destructor (Typ);
+                Stmt : Node_Id;
+             begin
+                if Present (Proc) then
+                   --  Generate:
+                   --    begin
+                   --       <Destructor_Proc> (V);
+ 
+                   --    exception
+                   --       when others =>
+                   --          if not Raised then
+                   --             Raised := True;
+                   --             Save_Occurrence (E,
+                   --               Get_Current_Excep.all.all);
+                   --          end if;
+                   --    end;
+ 
+                   Stmt :=
+                     Make_Procedure_Call_Statement
+                       (Loc,
+                        Name                   => New_Occurrence_Of (Proc, Loc),
+                        Parameter_Associations =>
+                          New_List (Make_Identifier (Loc, Name_V)));
+                   if Exceptions_OK then
+                      Stmt :=
+                        Make_Block_Statement
+                          (Loc,
+                           Handled_Statement_Sequence =>
+                             Make_Handled_Sequence_Of_Statements
+                               (Loc,
+                                Statements         => New_List (Stmt),
+                                Exception_Handlers =>
+                                  New_List
+                                    (Build_Exception_Handler
+                                       (Finalizer_Data))));
+                   end if;
+ 
+                   Prepend_New_To (Bod_Stmts, Stmt);
+                end if;
+             end;
           end if;
  
           --  At this point either all finalization statements have been
*************** package body Exp_Ch7 is
*** 7969,7975 ****
           return Empty;
  
        elsif Skip_Self then
!          if Has_Controlled_Component (Utyp) then
              if Is_Tagged_Type (Utyp) then
                 Fin_Id := Find_Optional_Prim_Op (Utyp, TSS_Deep_Finalize);
              else
--- 7957,7963 ----
           return Empty;
  
        elsif Skip_Self then
!          if Has_Controlled_Component (Utyp) or else Has_Destructor (Utyp) then
              if Is_Tagged_Type (Utyp) then
                 Fin_Id := Find_Optional_Prim_Op (Utyp, TSS_Deep_Finalize);
              else
*************** package body Exp_Ch7 is
*** 7982,7987 ****
--- 7970,7976 ----
        elsif Is_Class_Wide_Type (Typ)
          or else Is_Interface (Typ)
          or else Has_Controlled_Component (Utyp)
+         or else Has_Destructor (Utyp)
        then
           if Is_Tagged_Type (Utyp) then
              Fin_Id := Find_Optional_Prim_Op (Utyp, TSS_Deep_Finalize);
*************** package body Exp_Ch7 is
*** 8485,8494 ****
        then
           Utyp := Underlying_Type (Root_Type (Base_Type (Typ)));
           Ref  := Unchecked_Convert_To (Utyp, Ref);
- 
-          --  The following is to prevent problems with UC see 1.156 RH ???
- 
-          Set_Assignment_OK (Ref);
        end if;
  
        --  If the underlying_type is a subtype, then we are dealing with the
--- 8474,8479 ----
*************** package body Exp_Ch7 is
*** 9153,9159 ****
  
     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.
        --
--- 9138,9144 ----
  
     procedure Unnest_Loop (Loop_Stmt : Node_Id) is
  
!       procedure Fixup_Inner_Scopes (N : Node_Id);
        --  This procedure fixes the scope for 2 identified cases of incorrect
        --  scope information.
        --
*************** package body Exp_Ch7 is
*** 9180,9185 ****
--- 9165,9173 ----
        --  leaves the Tree in an incoherent state (i.e. the inner procedure must
        --  have its enclosing procedure in its scope ancestries).
  
+       --  The same issue exists for freeze nodes with associated TSS: the node
+       --  is moved but the TSS procedures are not correctly nested.
+ 
        --  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
*************** package body Exp_Ch7 is
*** 9207,9246 ****
        --  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;
--- 9195,9256 ----
        --  an actual entity set). But unfortunately this proved harder to
        --  implement ???
  
!       procedure Fixup_Inner_Scopes (N : Node_Id) is
!          Stmt       : Node_Id := Empty;
!          Ent        : Entity_Id;
!          Ent_To_Fix : Entity_Id;
!          Decl       : Node_Id := Empty;
!          Elmt       : Elmt_Id := No_Elmt;
        begin
!          pragma
!            Assert
!              (Nkind (N)
!               in N_Loop_Statement | N_Block_Statement | N_Freeze_Entity);
  
!          if Nkind (N) = N_Freeze_Entity then
!             Ent := Scope (Entity (N));
!          else
!             Ent := Entity (Identifier (N));
           end if;
  
+          case Nkind (N) is
+             when N_Loop_Statement =>
+                Stmt := First (Statements (N));
+ 
+             when N_Block_Statement =>
+                Stmt := First (Statements (Handled_Statement_Sequence (N)));
+                Decl := First (Declarations (N));
+ 
+             when N_Freeze_Entity =>
+                if Present (TSS_Elist (N)) then
+                   Elmt := First_Elmt (TSS_Elist (N));
+                   while Present (Elmt) loop
+                      Ent_To_Fix := Node (Elmt);
+                      Set_Scope (Ent_To_Fix, Ent);
+                      Next_Elmt (Elmt);
+                   end loop;
+                end if;
+ 
+             when others =>
+                pragma Assert (False);
+          end case;
+ 
           --  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, 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, Ent);
!             elsif Nkind (Stmt)
!                   in N_Block_Statement | N_Loop_Statement | N_Freeze_Entity
              then
                 Fixup_Inner_Scopes (Stmt);
              end if;
*************** package body Exp_Ch7 is
*** 9450,9458 ****
     procedure Wrap_Transient_Expression (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
        Expr : Node_Id             := Relocate_Node (N);
-       Temp : constant Entity_Id  := Make_Temporary (Loc, 'E', N);
        Typ  : constant Entity_Id  := Etype (N);
  
     begin
        --  Generate:
  
--- 9460,9475 ----
     procedure Wrap_Transient_Expression (N : Node_Id) is
        Loc  : constant Source_Ptr := Sloc (N);
        Expr : Node_Id             := Relocate_Node (N);
        Typ  : constant Entity_Id  := Etype (N);
  
+       Temp : constant Entity_Id  := Make_Temporary (Loc, 'E',
+                                       Related_Node => Expr);
+       --  We link the temporary with its relocated expression to facilitate
+       --  locating the expression in the expanded code; this simplifies the
+       --  implementation of the function that searchs in the expanded code
+       --  for a function call that has been wrapped in a transient block
+       --  (see Get_Relocated_Function_Call).
+ 
     begin
        --  Generate:
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch7.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch7.ads
*** gcc-15.2.0/gcc/ada/exp_ch7.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch7.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch8.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch8.adb
*** gcc-15.2.0/gcc/ada/exp_ch8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch8.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Ch3;        use Exp_Ch3;
--- 24,29 ----
*************** with Sem;            use Sem;
*** 41,47 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 40,45 ----
*************** package body Exp_Ch8 is
*** 344,365 ****
     --  Start of processing for Expand_N_Subprogram_Renaming_Declaration
  
     begin
!       --  When the prefix of the name is a function call, we must force the
!       --  call to be made by removing side effects from the call, since we
!       --  must only call the function once.
! 
!       if Nkind (Nam) = N_Selected_Component
!         and then Nkind (Prefix (Nam)) = N_Function_Call
!       then
!          Remove_Side_Effects (Prefix (Nam));
! 
!       --  For an explicit dereference, the prefix must be captured to prevent
!       --  reevaluation on calls through the renaming, which could result in
!       --  calling the wrong subprogram if the access value were to be changed.
  
!       elsif Nkind (Nam) = N_Explicit_Dereference then
!          Force_Evaluation (Prefix (Nam));
!       end if;
  
        --  Handle cases where we build a body for a renamed equality
  
--- 342,350 ----
     --  Start of processing for Expand_N_Subprogram_Renaming_Declaration
  
     begin
!       --  Perform name evaluation in all cases
  
!       Evaluate_Name (Nam);
  
        --  Handle cases where we build a body for a renamed equality
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch8.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch8.ads
*** gcc-15.2.0/gcc/ada/exp_ch8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch8.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch9.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_ch9.adb
*** gcc-15.2.0/gcc/ada/exp_ch9.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch9.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 28,34 ****
  with Aspects;        use Aspects;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 28,33 ----
*************** with Sem_Elab;       use Sem_Elab;
*** 62,68 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 61,66 ----
*************** package body Exp_Ch9 is
*** 243,248 ****
--- 241,256 ----
     --  cleanup handler that unlocks the object in all cases. For details,
     --  see Exp_Ch7.Expand_Cleanup_Actions.
  
+    procedure Build_Protected_Subprogram_Call_Cleanup
+      (Op_Spec   : Node_Id;
+       Conc_Typ  : Node_Id;
+       Loc       : Source_Ptr;
+       Stmts     : List_Id);
+    --  Append to Stmts the cleanups after a call to a protected subprogram
+    --  whose specification is Op_Spec. Conc_Typ is the concurrent type and Loc
+    --  the sloc for appended statements. The cleanup will either unlock the
+    --  protected object or serve pending entries.
+ 
     function Build_Renamed_Formal_Declaration
       (New_F          : Entity_Id;
        Formal         : Entity_Id;
*************** package body Exp_Ch9 is
*** 424,429 ****
--- 432,441 ----
     --  the scope of Context_Id and Context_Decls is the declarative list of
     --  Context.
  
+    function First_Protected_Operation (D : List_Id) return Node_Id;
+    --  Given the declarations list for a protected body, find the
+    --  first protected operation body.
+ 
     function Index_Object (Spec_Id : Entity_Id) return Entity_Id;
     --  Given a subprogram identifier, return the entity which is associated
     --  with the protection entry index in the Protected_Body_Subprogram or
*************** package body Exp_Ch9 is
*** 959,991 ****
     -----------------------------------
  
     procedure Build_Activation_Chain_Entity (N : Node_Id) is
-       function Has_Activation_Chain (Stmt : Node_Id) return Boolean;
-       --  Determine whether an extended return statement has activation chain
- 
-       --------------------------
-       -- Has_Activation_Chain --
-       --------------------------
- 
-       function Has_Activation_Chain (Stmt : Node_Id) return Boolean is
-          Decl : Node_Id;
- 
-       begin
-          Decl := First (Return_Object_Declarations (Stmt));
-          while Present (Decl) loop
-             if Nkind (Decl) = N_Object_Declaration
-               and then Chars (Defining_Identifier (Decl)) = Name_uChain
-             then
-                return True;
-             end if;
- 
-             Next (Decl);
-          end loop;
- 
-          return False;
-       end Has_Activation_Chain;
- 
-       --  Local variables
- 
        Context    : Node_Id;
        Context_Id : Entity_Id;
        Decls      : List_Id;
--- 971,976 ----
*************** package body Exp_Ch9 is
*** 1010,1028 ****
  
        --  If activation chain entity has not been declared already, create one
  
!       if Nkind (Context) = N_Extended_Return_Statement
!         or else No (Activation_Chain_Entity (Context))
!       then
!          --  Since extended return statements do not store the entity of the
!          --  chain, examine the return object declarations to avoid creating
!          --  a duplicate.
! 
!          if Nkind (Context) = N_Extended_Return_Statement
!            and then Has_Activation_Chain (Context)
!          then
!             return;
!          end if;
! 
           declare
              Loc   : constant Source_Ptr := Sloc (Context);
              Chain : Entity_Id;
--- 995,1001 ----
  
        --  If activation chain entity has not been declared already, create one
  
!       if No (Activation_Chain_Entity (Context)) then
           declare
              Loc   : constant Source_Ptr := Sloc (Context);
              Chain : Entity_Id;
*************** package body Exp_Ch9 is
*** 1031,1048 ****
           begin
              Chain := Make_Defining_Identifier (Sloc (N), Name_uChain);
  
!             --  Note: An extended return statement is not really a task
!             --  activator, but it does have an activation chain on which to
!             --  store the tasks temporarily. On successful return, the tasks
!             --  on this chain are moved to the chain passed in by the caller.
!             --  We do not build an Activation_Chain_Entity for an extended
!             --  return statement, because we do not want to build a call to
!             --  Activate_Tasks. Task activation is the responsibility of the
!             --  caller.
! 
!             if Nkind (Context) /= N_Extended_Return_Statement then
!                Set_Activation_Chain_Entity (Context, Chain);
!             end if;
  
              Decl :=
                Make_Object_Declaration (Loc,
--- 1004,1010 ----
           begin
              Chain := Make_Defining_Identifier (Sloc (N), Name_uChain);
  
!             Set_Activation_Chain_Entity (Context, Chain);
  
              Decl :=
                Make_Object_Declaration (Loc,
*************** package body Exp_Ch9 is
*** 1184,1338 ****
            Parameter_Associations => New_List (Concurrent_Ref (N)));
     end Build_Call_With_Task;
  
-    -----------------------------
-    -- Build_Class_Wide_Master --
-    -----------------------------
- 
-    procedure Build_Class_Wide_Master (Typ : Entity_Id) is
-       Loc          : constant Source_Ptr := Sloc (Typ);
-       Master_Decl  : Node_Id;
-       Master_Id    : Entity_Id;
-       Master_Scope : Entity_Id;
-       Name_Id      : Node_Id;
-       Related_Node : Node_Id;
-       Ren_Decl     : Node_Id;
- 
-    begin
-       --  No action needed if the run-time has no tasking support
- 
-       if Global_No_Tasking then
-          return;
-       end if;
- 
-       --  Find the declaration that created the access type, which is either a
-       --  type declaration, or an object declaration with an access definition,
-       --  in which case the type is anonymous.
- 
-       if Is_Itype (Typ) then
-          Related_Node := Associated_Node_For_Itype (Typ);
-       else
-          Related_Node := Parent (Typ);
-       end if;
- 
-       Master_Scope := Find_Master_Scope (Typ);
- 
-       --  Nothing to do if the master scope already contains a _master entity.
-       --  The only exception to this is the following scenario:
- 
-       --    Source_Scope
-       --       Transient_Scope_1
-       --          _master
- 
-       --       Transient_Scope_2
-       --          use of master
- 
-       --  In this case the source scope is marked as having the master entity
-       --  even though the actual declaration appears inside an inner scope. If
-       --  the second transient scope requires a _master, it cannot use the one
-       --  already declared because the entity is not visible.
- 
-       Name_Id     := Make_Identifier (Loc, Name_uMaster);
-       Master_Decl := Empty;
- 
-       if not Has_Master_Entity (Master_Scope)
-         or else No (Current_Entity_In_Scope (Name_Id))
-       then
-          declare
-             Ins_Nod : Node_Id;
-             Par_Nod : Node_Id;
- 
-          begin
-             Master_Decl := Build_Master_Declaration (Loc);
- 
-             --  Ensure that the master declaration is placed before its use
- 
-             Ins_Nod := Find_Hook_Context (Related_Node);
-             while not Is_List_Member (Ins_Nod) loop
-                Ins_Nod := Parent (Ins_Nod);
-             end loop;
- 
-             Par_Nod := Parent (List_Containing (Ins_Nod));
- 
-             --  For internal blocks created by Wrap_Loop_Statement, Wrap_
-             --  Statements_In_Block, and Build_Abort_Undefer_Block, remember
-             --  that they have a task master entity declaration; required by
-             --  Build_Master_Entity to avoid creating another master entity,
-             --  and also ensures that subsequent calls to Find_Master_Scope
-             --  return this scope as the master scope of Typ.
- 
-             if Is_Internal_Block (Par_Nod) then
-                Set_Has_Master_Entity (Entity (Identifier (Par_Nod)));
- 
-             elsif Nkind (Par_Nod) = N_Handled_Sequence_Of_Statements
-               and then Is_Internal_Block (Parent (Par_Nod))
-             then
-                Set_Has_Master_Entity (Entity (Identifier (Parent (Par_Nod))));
- 
-             --  Otherwise remember that this scope has an associated task
-             --  master entity declaration.
- 
-             else
-                Set_Has_Master_Entity (Master_Scope);
-             end if;
- 
-             Insert_Before (First (List_Containing (Ins_Nod)), Master_Decl);
-             Analyze (Master_Decl);
- 
-             --  Mark the containing scope as a task master. Masters associated
-             --  with return statements are already marked at this stage (see
-             --  Analyze_Subprogram_Body).
- 
-             if Ekind (Current_Scope) /= E_Return_Statement then
-                declare
-                   Par : Node_Id := Related_Node;
- 
-                begin
-                   while Nkind (Par) /= N_Compilation_Unit loop
-                      Par := Parent (Par);
- 
-                      --  If we fall off the top, we are at the outer level,
-                      --  and the environment task is our effective master,
-                      --  so nothing to mark.
- 
-                      if Nkind (Par) in
-                           N_Block_Statement | N_Subprogram_Body | N_Task_Body
-                      then
-                         Set_Is_Task_Master (Par);
-                         exit;
-                      end if;
-                   end loop;
-                end;
-             end if;
-          end;
-       end if;
- 
-       Master_Id :=
-         Make_Defining_Identifier (Loc, New_External_Name (Chars (Typ), 'M'));
- 
-       --  Generate:
-       --    typeMnn renames _master;
- 
-       Ren_Decl :=
-         Make_Object_Renaming_Declaration (Loc,
-           Defining_Identifier => Master_Id,
-           Subtype_Mark        => New_Occurrence_Of (Standard_Integer, Loc),
-           Name                => Name_Id);
- 
-       --  If the master is declared locally, add the renaming declaration
-       --  immediately after it, to prevent access-before-elaboration in the
-       --  back-end.
- 
-       if Present (Master_Decl) then
-          Insert_After (Master_Decl, Ren_Decl);
-          Analyze (Ren_Decl);
- 
-       else
-          Insert_Action (Related_Node, Ren_Decl);
-       end if;
- 
-       Set_Master_Id (Typ, Master_Id);
-    end Build_Class_Wide_Master;
- 
     --------------------------------
     -- Build_Corresponding_Record --
     --------------------------------
--- 1146,1151 ----
*************** package body Exp_Ch9 is
*** 3256,3302 ****
           Find_Enclosing_Context (Par, Context, Context_Id, Decls);
        end if;
  
!       --  When the enclosing context is a BIP function whose result type has
!       --  tasks, the function has an extra formal that is the master of the
!       --  tasks to be created by its returned object (that is, when its
!       --  enclosing context is a return statement). However, if the body of
!       --  the function creates tasks before its return statements, such tasks
!       --  need their own master.
! 
!       if Has_Master_Entity (Context_Id)
!         and then Ekind (Context_Id) = E_Function
!         and then Is_Build_In_Place_Function (Context_Id)
!         and then Needs_BIP_Task_Actuals (Context_Id)
!       then
!          --  No need to add it again if previously added
! 
!          declare
!             Master_Present : Boolean;
! 
!          begin
!             --  Handle transient scopes
! 
!             if Context_Id /= Current_Scope then
!                Push_Scope (Context_Id);
!                Master_Present :=
!                  Present (Current_Entity_In_Scope (Name_uMaster));
!                Pop_Scope;
!             else
!                Master_Present :=
!                  Present (Current_Entity_In_Scope (Name_uMaster));
!             end if;
! 
!             if Master_Present then
!                return;
!             end if;
!          end;
  
!       --  Nothing to do if the context already has a master; internally built
!       --  finalizers don't need a master.
  
!       elsif Has_Master_Entity (Context_Id)
!         or else Is_Finalizer (Context_Id)
!       then
           return;
        end if;
  
--- 3069,3079 ----
           Find_Enclosing_Context (Par, Context, Context_Id, Decls);
        end if;
  
!       pragma Assert (not Is_Finalizer (Context_Id));
  
!       --  Nothing to do if the context already has a master
  
!       if Has_Master_Entity (Context_Id) then
           return;
        end if;
  
*************** package body Exp_Ch9 is
*** 3319,3344 ****
           Analyze (Decl);
        end if;
  
-       --  Mark the enclosing scope and its associated construct as being task
-       --  masters.
- 
        Set_Has_Master_Entity (Context_Id);
  
!       while Present (Context)
!         and then Nkind (Context) /= N_Compilation_Unit
!       loop
!          if Nkind (Context) in
!               N_Block_Statement | N_Subprogram_Body | N_Task_Body
!          then
!             Set_Is_Task_Master (Context);
!             exit;
! 
!          elsif Nkind (Parent (Context)) = N_Subunit then
!             Context := Corresponding_Stub (Parent (Context));
!          end if;
  
!          Context := Parent (Context);
!       end loop;
     end Build_Master_Entity;
  
     ---------------------------
--- 3096,3110 ----
           Analyze (Decl);
        end if;
  
        Set_Has_Master_Entity (Context_Id);
  
!       --  Mark its associated construct as being a task master, but masters
!       --  associated with return statements are already marked at this stage
!       --  (see Analyze_Subprogram_Body_Helper).
  
!       if Nkind (Context) /= N_Extended_Return_Statement then
!          Mark_Construct_As_Task_Master (Context);
!       end if;
     end Build_Master_Entity;
  
     ---------------------------
*************** package body Exp_Ch9 is
*** 4273,4278 ****
--- 4039,4045 ----
                     Defining_Identifier => Obj,
                     Object_Definition   => New_Occurrence_Of (Conctyp, Loc),
                     Expression          => ExpR);
+                Mutate_Ekind (Obj, E_Variable);
                 Set_Etype (Obj, Conctyp);
                 Decls := New_List (Decl);
                 Rewrite (Concval, New_Occurrence_Of (Obj, Loc));
*************** package body Exp_Ch9 is
*** 4679,4700 ****
           Owner := Unit_Declaration_Node (Corresponding_Spec (Owner));
        end if;
  
        Chain := Activation_Chain_Entity (Owner);
  
        --  Nothing to do when there are no tasks to activate. This is indicated
        --  by a missing activation chain entity; also skip generating it when
        --  it is a ghost entity.
  
!       if No (Chain) or else Is_Ignored_Ghost_Entity (Chain) then
           return;
  
        --  The availability of the activation chain entity does not ensure
        --  that we have tasks to activate because it may have been declared
!       --  by the frontend to pass a required extra formal to a build-in-place
        --  subprogram call. If we are within the scope of a protected type and
        --  pragma Detect_Blocking is active we can assume that no tasks will be
        --  activated; if tasks are created in a protected object and this pragma
!       --  is active then the frontend emits a warning and Program_Error is
        --  raised at runtime.
  
        elsif Detect_Blocking and then Within_Protected_Type (Current_Scope) then
--- 4446,4474 ----
           Owner := Unit_Declaration_Node (Corresponding_Spec (Owner));
        end if;
  
+       --  An extended return statement is not really a task activator, but it
+       --  does have an activation chain on which to store tasks temporarily.
+       --  On successful return, the tasks on this chain are moved to the chain
+       --  passed in by the caller.
+ 
+       pragma Assert (Nkind (Owner) /= N_Extended_Return_Statement);
+ 
        Chain := Activation_Chain_Entity (Owner);
  
        --  Nothing to do when there are no tasks to activate. This is indicated
        --  by a missing activation chain entity; also skip generating it when
        --  it is a ghost entity.
  
!       if No (Chain) or else Is_Ignored_Ghost_Entity_In_Codegen (Chain) then
           return;
  
        --  The availability of the activation chain entity does not ensure
        --  that we have tasks to activate because it may have been declared
!       --  by the front end to pass a required extra formal to a build-in-place
        --  subprogram call. If we are within the scope of a protected type and
        --  pragma Detect_Blocking is active we can assume that no tasks will be
        --  activated; if tasks are created in a protected object and this pragma
!       --  is active then the front end emits a warning and Program_Error is
        --  raised at runtime.
  
        elsif Detect_Blocking and then Within_Protected_Type (Current_Scope) then
*************** package body Exp_Ch9 is
*** 4781,4790 ****
     -- Build_Task_Allocate_Block --
     -------------------------------
  
!    procedure Build_Task_Allocate_Block
!      (Actions    : List_Id;
!       N          : Node_Id;
!       Init_Stmts : List_Id)
     is
        Loc    : constant Source_Ptr := Sloc (N);
        Chain  : constant Entity_Id  :=
--- 4555,4563 ----
     -- Build_Task_Allocate_Block --
     -------------------------------
  
!    function Build_Task_Allocate_Block
!      (N          : Node_Id;
!       Init_Stmts : List_Id) return List_Id
     is
        Loc    : constant Source_Ptr := Sloc (N);
        Chain  : constant Entity_Id  :=
*************** package body Exp_Ch9 is
*** 4817,4833 ****
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc, Init_Stmts),
  
!           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;
  
     -----------------------------------
--- 4590,4605 ----
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc, Init_Stmts),
  
!           Has_Created_Identifier   => True,
            Is_Task_Allocation_Block => True);
  
!       Set_Activation_Chain_Entity (Block, Chain);
! 
!       return New_List (
          Make_Implicit_Label_Declaration (Loc,
            Defining_Identifier => Blkent,
!           Label_Construct     => Block),
!         Block);
     end Build_Task_Allocate_Block;
  
     -----------------------------------
*************** package body Exp_Ch9 is
*** 5747,5753 ****
        Insert_Before_And_Analyze (N, Decl1);
  
        --  Associate the access to subprogram with its original access to
!       --  protected subprogram type. Needed by the backend to know that this
        --  type corresponds with an access to protected subprogram type.
  
        Set_Original_Access_Type (D_T2, T);
--- 5519,5525 ----
        Insert_Before_And_Analyze (N, Decl1);
  
        --  Associate the access to subprogram with its original access to
!       --  protected subprogram type. Needed by CodePeer to know that this
        --  type corresponds with an access to protected subprogram type.
  
        Set_Original_Access_Type (D_T2, T);
*************** package body Exp_Ch9 is
*** 5824,5830 ****
                 --  during expansion, it is ok. If expansion is not performed,
                 --  then Func is Empty so this test cannot succeed.
  
!                if Scope (E) = Func_Id then
                    null;
  
                 --  A protected call from a barrier to another object is ok
--- 5596,5602 ----
                 --  during expansion, it is ok. If expansion is not performed,
                 --  then Func is Empty so this test cannot succeed.
  
!                if Scope_Within_Or_Same (S, Func_Id) then
                    null;
  
                 --  A protected call from a barrier to another object is ok
*************** package body Exp_Ch9 is
*** 8093,8104 ****
     --  access type. Finally the Entry_Component of each formal is set to
     --  reference the corresponding record component.
  
!    procedure Expand_N_Entry_Declaration (N : Node_Id) is
        Loc        : constant Source_Ptr := Sloc (N);
        Entry_Ent  : constant Entity_Id  := Defining_Identifier (N);
        Components : List_Id;
        Formal     : Node_Id;
        Ftype      : Entity_Id;
        Last_Decl  : Node_Id;
        Component  : Entity_Id;
        Ctype      : Entity_Id;
--- 7865,7882 ----
     --  access type. Finally the Entry_Component of each formal is set to
     --  reference the corresponding record component.
  
!    procedure Expand_N_Entry_Declaration
!      (N            : Node_Id;
!       Was_Deferred : Boolean := False)
!    is
!       use Deferred_Extra_Formals_Support;
! 
        Loc        : constant Source_Ptr := Sloc (N);
        Entry_Ent  : constant Entity_Id  := Defining_Identifier (N);
        Components : List_Id;
        Formal     : Node_Id;
        Ftype      : Entity_Id;
+       First_Decl : Node_Id;
        Last_Decl  : Node_Id;
        Component  : Entity_Id;
        Ctype      : Entity_Id;
*************** package body Exp_Ch9 is
*** 8107,8113 ****
--- 7885,7905 ----
        Acc_Ent    : Entity_Id;
  
     begin
+       --  No action if the addition of the extra formals was deferred,
+       --  since it means that the underlying type of some formal is not
+       --  available, and hence we cannot build the record type that will
+       --  hold all the parameter values.
+ 
+       if Present (First_Formal (Entry_Ent))
+         and then not Extra_Formals_Known (Entry_Ent)
+         and then not Is_Unsupported_Extra_Formals_Entity (Entry_Ent)
+       then
+          pragma Assert (Is_Deferred_Extra_Formals_Entity (Entry_Ent));
+          return;
+       end if;
+ 
        Formal := First_Formal (Entry_Ent);
+       First_Decl := N;
        Last_Decl := N;
  
        --  Most processing is done only if parameters are present
*************** package body Exp_Ch9 is
*** 8183,8188 ****
--- 7975,8010 ----
                   Subtype_Indication => New_Occurrence_Of (Rec_Ent, Loc)));
  
           Insert_After (Last_Decl, Decl);
+          Last_Decl := Decl;
+ 
+          --  Analyze all the inserted declarations. This is required when
+          --  the entry has formals and the addition of its extra formals
+          --  was deferred; otherwise their analysis will be performed as
+          --  as part of the regular flow of the front end at the end of
+          --  analysis of the enclosing task/protected type declaration.
+ 
+          --  Freeze immediately all the newly created entities, because
+          --  otherwise they might be frozen in the wrong scope (in the
+          --  non-deferred case, they are frozen when the enclosing task/
+          --  protected type is frozen, but they didn't exist by that time).
+ 
+          if Was_Deferred then
+             declare
+                From : constant Entity_Id := Last_Entity (Scope (Entry_Ent));
+ 
+             begin
+                Push_Scope (Scope (Entry_Ent));
+ 
+                while First_Decl /= Last_Decl loop
+                   Next (First_Decl);
+                   Analyze (First_Decl);
+                end loop;
+ 
+                Freeze_All (From, Last_Decl);
+ 
+                End_Scope;
+             end;
+          end if;
        end if;
     end Expand_N_Entry_Declaration;
  
*************** package body Exp_Ch9 is
*** 9877,9883 ****
           --      (T        => To_Tag_Ptr (Obj'Address).all,
           --       Position =>
           --         Ada.Tags.Get_Offset_Index
!          --           (Ada.Tags.Tag (Concval),
           --            <interface dispatch table position of Ename>));
  
           --  Note that Obj'Address is recursively expanded into a call to
--- 9699,9705 ----
           --      (T        => To_Tag_Ptr (Obj'Address).all,
           --       Position =>
           --         Ada.Tags.Get_Offset_Index
!          --           (Concval._Tag,
           --            <interface dispatch table position of Ename>));
  
           --  Note that Obj'Address is recursively expanded into a call to
*************** package body Exp_Ch9 is
*** 9898,9904 ****
                    Make_Function_Call (Loc,
                      Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                      Parameter_Associations => New_List (
!                       Unchecked_Convert_To (RTE (RE_Tag), Concval),
                        Make_Integer_Literal (Loc,
                          DT_Position (Entity (Ename))))))));
  
--- 9720,9728 ----
                    Make_Function_Call (Loc,
                      Name => New_Occurrence_Of (RTE (RE_Get_Offset_Index), Loc),
                      Parameter_Associations => New_List (
!                       Make_Attribute_Reference (Loc,
!                         Prefix         => Concval,
!                         Attribute_Name => Name_Tag),
                        Make_Integer_Literal (Loc,
                          DT_Position (Entity (Ename))))))));
  
*************** package body Exp_Ch9 is
*** 10593,10606 ****
                    Build_Accept_Body (Accept_Statement (Alt)));
  
              Reset_Scopes_To (Proc_Body, PB_Ent);
- 
-             --  During the analysis of the body of the accept statement, any
-             --  zero cost exception handler records were collected in the
-             --  Accept_Handler_Records field of the N_Accept_Alternative node.
-             --  This is where we move them to where they belong, namely the
-             --  newly created procedure.
- 
-             Set_Handler_Records (PB_Ent, Accept_Handler_Records (Alt));
              Append (Proc_Body, Body_List);
  
           else
--- 10417,10422 ----
*************** package body Exp_Ch9 is
*** 13253,13294 ****
        pragma Assert (Present (Context_Decls));
     end Find_Enclosing_Context;
  
-    -----------------------
-    -- Find_Master_Scope --
-    -----------------------
- 
-    function Find_Master_Scope (E : Entity_Id) return Entity_Id is
-       S : Entity_Id;
- 
-    begin
-       --  In Ada 2005, the master is the innermost enclosing scope that is not
-       --  transient. If the enclosing block is the rewriting of a call or the
-       --  scope is an extended return statement this is valid master. The
-       --  master in an extended return is only used within the return, and is
-       --  subsequently overwritten in Move_Activation_Chain, but it must exist
-       --  now before that overwriting occurs.
- 
-       S := Scope (E);
- 
-       if Ada_Version >= Ada_2005 then
-          while Is_Internal (S) loop
-             if Nkind (Parent (S)) = N_Block_Statement
-               and then Has_Master_Entity (S)
-             then
-                exit;
- 
-             elsif Ekind (S) = E_Return_Statement then
-                exit;
- 
-             else
-                S := Scope (S);
-             end if;
-          end loop;
-       end if;
- 
-       return S;
-    end Find_Master_Scope;
- 
     -------------------------------
     -- First_Protected_Operation --
     -------------------------------
--- 13069,13074 ----
*************** package body Exp_Ch9 is
*** 14605,14610 ****
--- 14385,14416 ----
                 Attribute_Name => Name_Unchecked_Access)));
     end Make_Unlock_Statement;
  
+    -----------------------------------
+    -- Mark_Construct_As_Task_Master --
+    -----------------------------------
+ 
+    procedure Mark_Construct_As_Task_Master (N : Node_Id) is
+       Nod : Node_Id := N;
+ 
+    begin
+       --  If we fall off the top, we are at the outer level, and the
+       --  environment task is our effective master, so nothing to mark.
+ 
+       while Nkind (Nod) /= N_Compilation_Unit loop
+          if Nkind (Nod) in N_Block_Statement | N_Subprogram_Body | N_Task_Body
+          then
+             Set_Is_Task_Master (Nod);
+             exit;
+ 
+          elsif Nkind (Parent (Nod)) = N_Subunit then
+             Nod := Corresponding_Stub (Parent (Nod));
+ 
+          else
+             Nod := Parent (Nod);
+          end if;
+       end loop;
+    end Mark_Construct_As_Task_Master;
+ 
     ------------------------------
     -- Next_Protected_Operation --
     ------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_ch9.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_ch9.ads
*** gcc-15.2.0/gcc/ada/exp_ch9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_ch9.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 50,60 ****
     --  Task_Id of the associated task as the parameter. The caller is
     --  responsible for analyzing and resolving the resulting tree.
  
-    procedure Build_Class_Wide_Master (Typ : Entity_Id);
-    --  Given an access-to-limited class-wide type or an access-to-limited
-    --  interface, ensure that the designated type has a _master and generate
-    --  a renaming of the said master to service the access type.
- 
     function Build_Master_Declaration (Loc : Source_Ptr) return Node_Id;
     --  For targets supporting tasks, generate:
     --      _Master : constant Integer := Current_Master.all;
--- 50,55 ----
*************** package Exp_Ch9 is
*** 99,114 ****
     --  External is False if the call is to another protected subprogram within
     --  the same object.
  
-    procedure Build_Protected_Subprogram_Call_Cleanup
-      (Op_Spec   : Node_Id;
-       Conc_Typ  : Node_Id;
-       Loc       : Source_Ptr;
-       Stmts     : List_Id);
-    --  Append to Stmts the cleanups after a call to a protected subprogram
-    --  whose specification is Op_Spec. Conc_Typ is the concurrent type and Loc
-    --  the sloc for appended statements. The cleanup will either unlock the
-    --  protected object or serve pending entries.
- 
     procedure Build_Task_Activation_Call (N : Node_Id);
     --  This procedure is called for constructs that can be task activators,
     --  i.e. task bodies, subprogram bodies, package bodies and blocks. If the
--- 94,99 ----
*************** package Exp_Ch9 is
*** 118,130 ****
     --  Activate_Tasks with this entity as the single parameter is inserted at
     --  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:
     --
     --    blockname : label;
     --    blockname : declare
--- 103,113 ----
     --  Activate_Tasks with this entity as the single parameter is inserted at
     --  the start of the statements of the activator.
  
!    function Build_Task_Allocate_Block
!      (N          : Node_Id;
!       Init_Stmts : List_Id) return List_Id;
!    --  This function is used for allocators where the designated type is a task
!    --  or contains tasks. In this case, the initialization call is replaced by:
     --
     --    blockname : label;
     --    blockname : declare
*************** package Exp_Ch9 is
*** 145,151 ****
     --  to get the task or tasks created and initialized. The expunge call
     --  ensures that any tasks that get created but not activated due to an
     --  exception are properly expunged (it has no effect in the normal case).
!    --  The argument N is the allocator, and Args is the list of arguments for
     --  the initialization call, constructed by the caller, which uses the
     --  Master_Id of the access type as the _Master parameter, and _Chain
     --  (defined above) as the _Chain parameter.
--- 128,134 ----
     --  to get the task or tasks created and initialized. The expunge call
     --  ensures that any tasks that get created but not activated due to an
     --  exception are properly expunged (it has no effect in the normal case).
!    --  The argument N is the allocator, and Init_Stmts is a list containing
     --  the initialization call, constructed by the caller, which uses the
     --  Master_Id of the access type as the _Master parameter, and _Chain
     --  (defined above) as the _Chain parameter.
*************** package Exp_Ch9 is
*** 185,192 ****
       (Sloc  : Source_Ptr;
        Ent   : Entity_Id;
        Index : Node_Id;
!       Ttyp  : Entity_Id)
!       return  Node_Id;
     --  Returns an expression to compute a task entry index given the name of
     --  the entry or entry family. For the case of a task entry family, the
     --  Index parameter contains the expression for the subscript. Ttyp is the
--- 168,174 ----
       (Sloc  : Source_Ptr;
        Ent   : Entity_Id;
        Index : Node_Id;
!       Ttyp  : Entity_Id) return  Node_Id;
     --  Returns an expression to compute a task entry index given the name of
     --  the entry or entry family. For the case of a task entry family, the
     --  Index parameter contains the expression for the subscript. Ttyp is the
*************** package Exp_Ch9 is
*** 227,235 ****
     procedure Expand_N_Delay_Until_Statement      (N : Node_Id);
     procedure Expand_N_Entry_Body                 (N : Node_Id);
     procedure Expand_N_Entry_Call_Statement       (N : Node_Id);
-    procedure Expand_N_Entry_Declaration          (N : Node_Id);
     procedure Expand_N_Protected_Body             (N : Node_Id);
  
     procedure Expand_N_Protected_Type_Declaration (N : Node_Id);
     --  Expands protected type declarations. This results, among other things,
     --  in the declaration of a record type for the representation of protected
--- 209,224 ----
     procedure Expand_N_Delay_Until_Statement      (N : Node_Id);
     procedure Expand_N_Entry_Body                 (N : Node_Id);
     procedure Expand_N_Entry_Call_Statement       (N : Node_Id);
     procedure Expand_N_Protected_Body             (N : Node_Id);
  
+    procedure Expand_N_Entry_Declaration
+      (N            : Node_Id;
+       Was_Deferred : Boolean := False);
+    --  Expands an entry declaration, building a record type to hold all the
+    --  parameter values. Was_Deferred is True when this expansion was deferred
+    --  because the underlying type of some formal was not available to build
+    --  the record.
+ 
     procedure Expand_N_Protected_Type_Declaration (N : Node_Id);
     --  Expands protected type declarations. This results, among other things,
     --  in the declaration of a record type for the representation of protected
*************** package Exp_Ch9 is
*** 260,278 ****
     --  Return the external version of a protected operation, which locks
     --  the object before invoking the internal protected subprogram body.
  
-    function Find_Master_Scope (E : Entity_Id) return Entity_Id;
-    --  When a type includes tasks, a master entity is created in the scope, to
-    --  be used by the runtime during activation. In general the master is the
-    --  immediate scope in which the type is declared, but in Ada 2005, in the
-    --  presence of synchronized classwide interfaces, the immediate scope of
-    --  an anonymous access type may be a transient scope, which has no run-time
-    --  presence. In this case, the scope of the master is the innermost scope
-    --  that comes from source.
- 
-    function First_Protected_Operation (D : List_Id) return Node_Id;
-    --  Given the declarations list for a protected body, find the
-    --  first protected operation body.
- 
     procedure Install_Private_Data_Declarations
       (Loc      : Source_Ptr;
        Spec_Id  : Entity_Id;
--- 249,254 ----
*************** package Exp_Ch9 is
*** 338,343 ****
--- 314,323 ----
     --  Given the entity of the record type created for a protected type, build
     --  a list of statements needed for proper initialization of the object.
  
+    procedure Mark_Construct_As_Task_Master (N : Node_Id);
+    --  Mark the innermost N_Block_Statement, N_Subprogram_Body or N_Task_Body
+    --  that is either N or enclosing N as being a task master.
+ 
     function Next_Protected_Operation (N : Node_Id) return Node_Id;
     --  Given a protected operation node (a subprogram or entry body), find the
     --  following node in the declarations list.
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_code.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_code.adb
*** gcc-15.2.0/gcc/ada/exp_code.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_code.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 24,29 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 38,44 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stringt;        use Stringt;
--- 37,42 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_code.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_code.ads
*** gcc-15.2.0/gcc/ada/exp_code.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_code.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_dbug.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_dbug.adb
*** gcc-15.2.0/gcc/ada/exp_dbug.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_dbug.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Alloc;
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Util;       use Exp_Util;
--- 26,31 ----
*************** with Output;         use Output;
*** 37,43 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 36,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_dbug.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_dbug.ads
*** gcc-15.2.0/gcc/ada/exp_dbug.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_dbug.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 193,198 ****
--- 193,217 ----
        --    extra__messages__Oeq__2
  
        ----------------------------------
+       -- Direct Attribute Definitions --
+       ----------------------------------
+ 
+       --  Direct attribute definitions are subprogram declarations where the
+       --  subprogram name is an attribute reference, eg.:
+       --    procedure T'Constructor (Self...
+       --  defines a constructor. The above rules applied to direct attribute
+       --  definitions would result in names with quotation marks, which are
+       --  typically hard to deal with down the chain. To avoid this problem,
+       --  names of such definitions are encoded with as:
+ 
+       --    'D' Prefix_Name '_' Attribute_Name "_Att"
+ 
+       --  For instance, the constructor above is encoded as Dt_constructor_Att.
+ 
+       --  Note that, attribute reference with multiple attributes are not
+       --  supported yet ???
+ 
+       ----------------------------------
        -- Resolving Other Name Clashes --
        ----------------------------------
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_disp.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_disp.adb
*** gcc-15.2.0/gcc/ada/exp_disp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_disp.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,33 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Eval;       use Sem_Eval;
*** 61,67 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 60,65 ----
*************** package body Exp_Disp is
*** 413,419 ****
              if Nkind (D) = N_Package_Declaration then
                 Build_Package_Dispatch_Tables (D);
  
!             elsif Nkind (D) = N_Package_Body then
                 Build_Dispatch_Tables (Declarations (D));
  
              elsif Nkind (D) = N_Package_Body_Stub
--- 411,419 ----
              if Nkind (D) = N_Package_Declaration then
                 Build_Package_Dispatch_Tables (D);
  
!             elsif Nkind (D) = N_Package_Body
!               and then Ekind (Corresponding_Spec (D)) /= E_Generic_Package
!             then
                 Build_Dispatch_Tables (Declarations (D));
  
              elsif Nkind (D) = N_Package_Body_Stub
*************** package body Exp_Disp is
*** 799,805 ****
  
          --  No action needed if the dispatching call has been already expanded
  
!         or else Is_Expanded_Dispatching_Call (Name (Call_Node))
        then
           return;
        end if;
--- 799,805 ----
  
          --  No action needed if the dispatching call has been already expanded
  
!         or else Is_Expanded_Dispatching_Call (Call_Node)
        then
           return;
        end if;
*************** package body Exp_Disp is
*** 924,929 ****
--- 924,931 ----
           New_Formal  : Entity_Id;
           Last_Formal : Entity_Id := Empty;
  
+          use Deferred_Extra_Formals_Support;
+ 
        begin
           if Present (Old_Formal) then
              New_Formal := New_Copy (Old_Formal);
*************** package body Exp_Disp is
*** 960,1010 ****
           end if;
  
           --  Now that the explicit formals have been duplicated, any extra
!          --  formals needed by the subprogram must be duplicated; we know
!          --  that extra formals are available because they were added when
!          --  the tagged type was frozen (see Expand_Freeze_Record_Type).
  
           pragma Assert (Is_Frozen (Typ));
  
!          --  Warning: The addition of the extra formals cannot be performed
!          --  here invoking Create_Extra_Formals since we must ensure that all
!          --  the extra formals of the pointer type and the target subprogram
!          --  match (and for functions that return a tagged type the profile of
!          --  the built subprogram type always returns a class-wide type, which
!          --  may affect the addition of some extra formals).
! 
!          if Present (Last_Formal)
!            and then Present (Extra_Formal (Last_Formal))
!          then
!             Old_Formal := Extra_Formal (Last_Formal);
!             New_Formal := New_Copy (Old_Formal);
!             Set_Scope (New_Formal, Subp_Typ);
! 
!             Set_Extra_Formal (Last_Formal, New_Formal);
!             Set_Extra_Formals (Subp_Typ, New_Formal);
! 
!             if Ekind (Subp) = E_Function
!               and then Present (Extra_Accessibility_Of_Result (Subp))
!               and then Extra_Accessibility_Of_Result (Subp) = Old_Formal
!             then
!                Set_Extra_Accessibility_Of_Result (Subp_Typ, New_Formal);
!             end if;
! 
!             Old_Formal := Extra_Formal (Old_Formal);
!             while Present (Old_Formal) loop
!                Set_Extra_Formal (New_Formal, New_Copy (Old_Formal));
!                New_Formal := Extra_Formal (New_Formal);
!                Set_Scope (New_Formal, Subp_Typ);
  
!                if Ekind (Subp) = E_Function
!                  and then Present (Extra_Accessibility_Of_Result (Subp))
!                  and then Extra_Accessibility_Of_Result (Subp) = Old_Formal
!                then
!                   Set_Extra_Accessibility_Of_Result (Subp_Typ, New_Formal);
!                end if;
  
!                Old_Formal := Extra_Formal (Old_Formal);
!             end loop;
           end if;
        end;
  
--- 962,982 ----
           end if;
  
           --  Now that the explicit formals have been duplicated, any extra
!          --  formals needed by the subprogram must be added; we know that
!          --  extra formals are available because they were added when the
!          --  tagged type was frozen (see Expand_Freeze_Record_Type).
  
           pragma Assert (Is_Frozen (Typ));
  
!          if Extra_Formals_Known (Subp) then
!             Create_Extra_Formals (Subp_Typ, Related_Nod => Call_Node);
  
!          --  Extra formals were previously deferred
  
!          else
!             pragma Assert (Is_Deferred_Extra_Formals_Entity (Subp));
!             Register_Deferred_Extra_Formals_Entity (Subp_Typ);
!             Register_Deferred_Extra_Formals_Call (Call_Node, Current_Scope);
           end if;
        end;
  
*************** package body Exp_Disp is
*** 1235,1240 ****
--- 1207,1214 ----
        --  the generation of spurious warnings under ZFP run-time.
  
        Analyze_And_Resolve (Call_Node, Call_Typ, Suppress => All_Checks);
+ 
+       Set_Is_Expanded_Dispatching_Call (Call_Node);
     end Expand_Dispatching_Call;
  
     ---------------------------------
*************** package body Exp_Disp is
*** 1732,1737 ****
--- 1706,1712 ----
                 end if;
  
                 Conversion := Convert_To (Formal_Typ, Relocate_Node (Actual));
+                Flag_Interface_Pointer_Displacement (Conversion);
                 Rewrite (Actual, Conversion);
                 Analyze_And_Resolve (Actual, Formal_Typ);
              end if;
*************** package body Exp_Disp is
*** 1800,1805 ****
--- 1775,1782 ----
  
                 Conversion := Convert_To (Formal_Typ, Actual_Dup);
                 Rewrite (Actual, Conversion);
+                Flag_Interface_Pointer_Displacement (Actual);
+ 
                 Analyze_And_Resolve (Actual, Formal_Typ);
              end if;
           end if;
*************** package body Exp_Disp is
*** 2356,2362 ****
  
        E := Next_Entity (Typ);
        while Present (E) loop
!          if Ekind (E) = E_Function and then Is_Constructor (E) then
              return True;
           end if;
  
--- 2333,2339 ----
  
        E := Next_Entity (Typ);
        while Present (E) loop
!          if Ekind (E) = E_Function and then Is_CPP_Constructor (E) then
              return True;
           end if;
  
*************** package body Exp_Disp is
*** 2376,2392 ****
          and then not Restriction_Active (No_Dispatching_Calls);
     end Has_DT;
  
-    ----------------------------------
-    -- Is_Expanded_Dispatching_Call --
-    ----------------------------------
- 
-    function Is_Expanded_Dispatching_Call (N : Node_Id) return Boolean is
-    begin
-       return Nkind (N) in N_Subprogram_Call
-         and then Nkind (Name (N)) = N_Explicit_Dereference
-         and then Is_Dispatch_Table_Entity (Etype (Name (N)));
-    end Is_Expanded_Dispatching_Call;
- 
     -------------------------------------
     -- Is_Predefined_Dispatching_Alias --
     -------------------------------------
--- 2353,2358 ----
*************** package body Exp_Disp is
*** 4628,4635 ****
        Name_TSD          : constant Name_Id :=
                              New_External_Name (Tname, 'B', Suffix_Index => -1);
  
!       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
  
        AI                 : Elmt_Id;
--- 4594,4600 ----
        Name_TSD          : constant Name_Id :=
                              New_External_Name (Tname, 'B', Suffix_Index => -1);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        AI                 : Elmt_Id;
*************** package body Exp_Disp is
*** 6092,6098 ****
                      --  Skip ignored Ghost subprograms as those will be removed
                      --  from the executable.
  
!                     and then not Is_Ignored_Ghost_Entity (E)
                    then
                       pragma Assert
                         (UI_To_Int (DT_Position (Prim)) <= Nb_Prim);
--- 6057,6063 ----
                      --  Skip ignored Ghost subprograms as those will be removed
                      --  from the executable.
  
!                     and then not Is_Ignored_Ghost_Entity_In_Codegen (E)
                    then
                       pragma Assert
                         (UI_To_Int (DT_Position (Prim)) <= Nb_Prim);
*************** package body Exp_Disp is
*** 6561,6567 ****
        Register_CG_Node (Typ);
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        return Result;
     end Make_DT;
--- 6526,6532 ----
        Register_CG_Node (Typ);
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        return Result;
     end Make_DT;
*************** package body Exp_Disp is
*** 8321,8327 ****
        E := Next_Entity (Typ);
        while Present (E) loop
           if Ekind (E) = E_Function
!            and then Is_Constructor (E)
           then
              Found := True;
              Loc   := Sloc (E);
--- 8286,8292 ----
        E := Next_Entity (Typ);
        while Present (E) loop
           if Ekind (E) = E_Function
!            and then Is_CPP_Constructor (E)
           then
              Found := True;
              Loc   := Sloc (E);
*************** package body Exp_Disp is
*** 8343,8355 ****
                          Defining_Unit_Name       => IP,
                          Parameter_Specifications => Parms)));
  
!                Set_Init_Proc (Typ, IP);
!                Set_Is_Imported    (IP);
!                Set_Is_Constructor (IP);
!                Set_Interface_Name (IP, Interface_Name (E));
!                Set_Convention     (IP, Convention_CPP);
!                Set_Is_Public      (IP);
!                Set_Has_Completion (IP);
  
              --  Case 2: Constructor of a tagged type
  
--- 8308,8322 ----
                          Defining_Unit_Name       => IP,
                          Parameter_Specifications => Parms)));
  
!                Set_Init_Proc     (Typ, IP);
!                Set_Is_Imported        (IP);
!                Set_Is_CPP_Constructor (IP);
!                Set_Interface_Name     (IP, Interface_Name (E));
!                Set_Convention         (IP, Convention_CPP);
!                Set_Is_Public          (IP);
!                Set_Has_Completion     (IP);
!                Mutate_Ekind           (IP, E_Procedure);
!                Freeze_Extra_Formals   (IP);
  
              --  Case 2: Constructor of a tagged type
  
*************** package body Exp_Disp is
*** 8385,8396 ****
                          Defining_Unit_Name => Constructor_Id,
                          Parameter_Specifications => Parms));
  
!                   Set_Is_Imported    (Constructor_Id);
!                   Set_Is_Constructor (Constructor_Id);
!                   Set_Interface_Name (Constructor_Id, Interface_Name (E));
!                   Set_Convention     (Constructor_Id, Convention_CPP);
!                   Set_Is_Public      (Constructor_Id);
!                   Set_Has_Completion (Constructor_Id);
  
                    --  Build the init procedure as a wrapper of this constructor
  
--- 8352,8363 ----
                          Defining_Unit_Name => Constructor_Id,
                          Parameter_Specifications => Parms));
  
!                   Set_Is_Imported        (Constructor_Id);
!                   Set_Is_CPP_Constructor (Constructor_Id);
!                   Set_Interface_Name     (Constructor_Id, Interface_Name (E));
!                   Set_Convention         (Constructor_Id, Convention_CPP);
!                   Set_Is_Public          (Constructor_Id);
!                   Set_Has_Completion     (Constructor_Id);
  
                    --  Build the init procedure as a wrapper of this constructor
  
*************** package body Exp_Disp is
*** 8482,8487 ****
--- 8449,8456 ----
  
                    Discard_Node (IP_Body);
                    Set_Init_Proc (Typ, IP);
+                   Mutate_Ekind (IP, E_Procedure);
+                   Freeze_Extra_Formals (IP);
                 end;
              end if;
  
*************** package body Exp_Disp is
*** 8547,8552 ****
--- 8516,8523 ----
  
              Discard_Node (IP_Body);
              Set_Init_Proc (Typ, IP);
+             Mutate_Ekind (IP, E_Procedure);
+             Freeze_Extra_Formals (IP);
           end;
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_disp.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_disp.ads
*** gcc-15.2.0/gcc/ada/exp_disp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_disp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Disp is
*** 236,244 ****
     function Has_CPP_Constructors (Typ : Entity_Id) return Boolean;
     --  Returns true if the type has CPP constructors
  
-    function Is_Expanded_Dispatching_Call (N : Node_Id) return Boolean;
-    --  Returns true if N is the expanded code of a dispatching call
- 
     function Make_DT (Typ : Entity_Id) return List_Id;
     --  Expand the declarations for the Dispatch Table of Typ
  
--- 236,241 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_dist.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_dist.adb
*** gcc-15.2.0/gcc/ada/exp_dist.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_dist.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Sem_Ch12;       use Sem_Ch12;
*** 46,52 ****
  with Sem_Dist;       use Sem_Dist;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 45,50 ----
*************** package body Exp_Dist is
*** 10980,10985 ****
--- 10978,10984 ----
              if not Constrained or else Depth > 1 then
                 Inner_Any := Make_Defining_Identifier (Loc,
                                New_External_Name ('A', Depth));
+                Mutate_Ekind (Inner_Any, E_Variable);
                 Set_Etype (Inner_Any, RTE (RE_Any));
              else
                 Inner_Any := Empty;
*************** package body Exp_Dist is
*** 10988,10993 ****
--- 10987,10993 ----
              if Present (Counter) then
                 Inner_Counter := Make_Defining_Identifier (Loc,
                                    New_External_Name ('J', Depth));
+                Mutate_Ekind (Inner_Counter, E_Variable);
              else
                 Inner_Counter := Empty;
              end if;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_dist.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_dist.ads
*** gcc-15.2.0/gcc/ada/exp_dist.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_dist.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_fixd.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_fixd.adb
*** gcc-15.2.0/gcc/ada/exp_fixd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_fixd.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Util;       use Exp_Util;
--- 26,31 ----
*************** with Sem;            use Sem;
*** 39,45 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Stand;          use Stand;
  with Tbuild;         use Tbuild;
--- 38,43 ----
*************** package body Exp_Fixd is
*** 570,581 ****
--- 568,583 ----
        --  Case where we can compute the denominator in Max_Integer_Size bits
  
        if QR_Id = RE_Null then
+          Mutate_Ekind (Qnn, E_Constant);
+          Mutate_Ekind (Rnn, E_Constant);
  
           --  Create temporaries for numerator and denominator and set Etypes,
           --  so that New_Occurrence_Of picks them up for Build_xxx calls.
  
           Nnn := Make_Temporary (Loc, 'N');
+          Mutate_Ekind (Nnn, E_Constant);
           Dnn := Make_Temporary (Loc, 'D');
+          Mutate_Ekind (Dnn, E_Constant);
  
           Set_Etype (Nnn, QR_Typ);
           Set_Etype (Dnn, QR_Typ);
*************** package body Exp_Fixd is
*** 591,597 ****
               Defining_Identifier => Dnn,
               Object_Definition   => New_Occurrence_Of (QR_Typ, Loc),
               Constant_Present    => True,
!              Expression          => Build_Multiply (N, Y, Z)));
  
           Quo :=
             Build_Divide (N,
--- 593,600 ----
               Defining_Identifier => Dnn,
               Object_Definition   => New_Occurrence_Of (QR_Typ, Loc),
               Constant_Present    => True,
!              Expression          =>
!                Build_Conversion (N, QR_Typ, Build_Multiply (N, Y, Z))));
  
           Quo :=
             Build_Divide (N,
*************** package body Exp_Fixd is
*** 621,626 ****
--- 624,631 ----
        --  to call the runtime routine to compute the quotient and remainder.
  
        else
+          Mutate_Ekind (Qnn, E_Variable);
+          Mutate_Ekind (Rnn, E_Variable);
           Rnd := Boolean_Literals (Rounded_Result_Set (N));
  
           Code := New_List (
*************** package body Exp_Fixd is
*** 650,657 ****
  
     function Build_Multiply (N : Node_Id; L, R : Node_Id) return Node_Id is
        Loc         : constant Source_Ptr := Sloc (N);
!       Left_Type   : constant Entity_Id  := Etype (L);
!       Right_Type  : constant Entity_Id  := Etype (R);
        Left_Size   : Int;
        Right_Size  : Int;
        Result_Type : Entity_Id;
--- 655,662 ----
  
     function Build_Multiply (N : Node_Id; L, R : Node_Id) return Node_Id is
        Loc         : constant Source_Ptr := Sloc (N);
!       Left_Type   : constant Entity_Id  := Base_Type (Etype (L));
!       Right_Type  : constant Entity_Id  := Base_Type (Etype (R));
        Left_Size   : Int;
        Right_Size  : Int;
        Result_Type : Entity_Id;
*************** package body Exp_Fixd is
*** 740,747 ****
  
     function Build_Rem (N : Node_Id; L, R : Node_Id) return Node_Id is
        Loc         : constant Source_Ptr := Sloc (N);
!       Left_Type   : constant Entity_Id  := Etype (L);
!       Right_Type  : constant Entity_Id  := Etype (R);
        Result_Type : Entity_Id;
        Rnode       : Node_Id;
  
--- 745,752 ----
  
     function Build_Rem (N : Node_Id; L, R : Node_Id) return Node_Id is
        Loc         : constant Source_Ptr := Sloc (N);
!       Left_Type   : constant Entity_Id  := Base_Type (Etype (L));
!       Right_Type  : constant Entity_Id  := Base_Type (Etype (R));
        Result_Type : Entity_Id;
        Rnode       : Node_Id;
  
*************** package body Exp_Fixd is
*** 935,942 ****
--- 940,952 ----
        --  Case where we can compute the numerator in Max_Integer_Size bits
  
        if QR_Id = RE_Null then
+          Mutate_Ekind (Qnn, E_Constant);
+          Mutate_Ekind (Rnn, E_Constant);
+ 
           Nnn := Make_Temporary (Loc, 'N');
+          Mutate_Ekind (Nnn, E_Constant);
           Dnn := Make_Temporary (Loc, 'D');
+          Mutate_Ekind (Dnn, E_Constant);
  
           --  Set Etypes, so that they can be picked up by New_Occurrence_Of
  
*************** package body Exp_Fixd is
*** 948,954 ****
               Defining_Identifier => Nnn,
               Object_Definition   => New_Occurrence_Of (QR_Typ, Loc),
               Constant_Present    => True,
!              Expression          => Build_Multiply (N, X, Y)),
  
             Make_Object_Declaration (Loc,
               Defining_Identifier => Dnn,
--- 958,965 ----
               Defining_Identifier => Nnn,
               Object_Definition   => New_Occurrence_Of (QR_Typ, Loc),
               Constant_Present    => True,
!              Expression          =>
!                Build_Conversion (N, QR_Typ, Build_Multiply (N, X, Y))),
  
             Make_Object_Declaration (Loc,
               Defining_Identifier => Dnn,
*************** package body Exp_Fixd is
*** 982,987 ****
--- 993,1001 ----
        --  to call the runtime routine to compute the quotient and remainder.
  
        else
+          Mutate_Ekind (Qnn, E_Variable);
+          Mutate_Ekind (Rnn, E_Variable);
+ 
           Rnd := Boolean_Literals (Rounded_Result_Set (N));
  
           Code := New_List (
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_fixd.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_fixd.ads
*** gcc-15.2.0/gcc/ada/exp_fixd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_fixd.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_imgv.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_imgv.adb
*** gcc-15.2.0/gcc/ada/exp_imgv.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_imgv.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Debug;          use Debug;
  with Exp_Put_Image;
  with Exp_Util;       use Exp_Util;
  with Lib;            use Lib;
--- 26,35 ----
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Checks;         use Checks;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Debug;          use Debug;
+ with Exp_Ch7;        use Exp_Ch7;
  with Exp_Put_Image;
  with Exp_Util;       use Exp_Util;
  with Lib;            use Lib;
*************** with Rtsfind;        use Rtsfind;
*** 43,49 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 43,48 ----
*************** package body Exp_Imgv is
*** 112,124 ****
        --  exactly spent on all possible paths from this point.
  
        Threshold : constant Nat :=
!         (if Is_Library_Level_Entity (E)
             or else not Always_Compatible_Rep_On_Target
           then 3
           else Nat'Last);
        --  Threshold above which we want to generate the hash function in the
        --  default case. We avoid doing it if this would cause a trampoline to
        --  be generated because the type is local and descriptors are not used.
  
        Threshold_For_Size : constant Nat := Nat'Max (Threshold, 9);
        --  But the function and its tables take a bit of space so the threshold
--- 111,128 ----
        --  exactly spent on all possible paths from this point.
  
        Threshold : constant Nat :=
!         (if Restriction_Active (No_Dynamic_Sized_Objects)
!          then Nat'Last
!          elsif Is_Library_Level_Entity (E)
             or else not Always_Compatible_Rep_On_Target
           then 3
           else Nat'Last);
        --  Threshold above which we want to generate the hash function in the
        --  default case. We avoid doing it if this would cause a trampoline to
        --  be generated because the type is local and descriptors are not used.
+       --  We also avoid doing it if a No_Dynamic_Sized_Objects restriction is
+       --  in effect because the hash function will violate the restriction
+       --  by declaring an array subtype with dynamic bounds.
  
        Threshold_For_Size : constant Nat := Nat'Max (Threshold, 9);
        --  But the function and its tables take a bit of space so the threshold
*************** package body Exp_Imgv is
*** 1038,1044 ****
     --  Start of processing for Expand_Image_Attribute
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Image, Standard_String);
           return;
        end if;
--- 1042,1048 ----
     --  Start of processing for Expand_Image_Attribute
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Image, Standard_String);
           return;
        end if;
*************** package body Exp_Imgv is
*** 1047,1052 ****
--- 1051,1057 ----
        --  Exp_Put_Image for details.
  
        if Exp_Put_Image.Image_Should_Call_Put_Image (N) then
+          Establish_Transient_Scope (N, Manage_Sec_Stack => True);
           Rewrite (N, Exp_Put_Image.Build_Image_Call (N));
           Analyze_And_Resolve (N, Standard_String, Suppress => All_Checks);
           return;
*************** package body Exp_Imgv is
*** 1631,1637 ****
                 Name => New_Occurrence_Of (RTE (Vid), Loc),
                 Parameter_Associations => Args)));
  
-          Set_Etype (N, Btyp);
           Analyze_And_Resolve (N, Btyp);
           return;
  
--- 1636,1641 ----
*************** package body Exp_Imgv is
*** 1640,1662 ****
              Num : constant Uint := Norm_Num (Small_Value (Rtyp));
              Den : constant Uint := Norm_Den (Small_Value (Rtyp));
              Max : constant Uint := UI_Max (Num, Den);
-             Min : constant Uint := UI_Min (Num, Den);
              Siz : constant Uint := Esize (Rtyp);
  
           begin
              if Siz <= 32
                and then Max <= Uint_2 ** 31
!               and then (Min = Uint_1 or else Max <= Uint_2 ** 27)
              then
                 Vid := RE_Value_Fixed32;
              elsif Siz <= 64
                and then Max <= Uint_2 ** 63
!               and then (Min = Uint_1 or else Max <= Uint_2 ** 59)
              then
                 Vid := RE_Value_Fixed64;
              elsif System_Max_Integer_Size = 128
                and then Max <= Uint_2 ** 127
!               and then (Min = Uint_1 or else Max <= Uint_2 ** 123)
              then
                 Vid := RE_Value_Fixed128;
              else
--- 1644,1665 ----
              Num : constant Uint := Norm_Num (Small_Value (Rtyp));
              Den : constant Uint := Norm_Den (Small_Value (Rtyp));
              Max : constant Uint := UI_Max (Num, Den);
              Siz : constant Uint := Esize (Rtyp);
  
           begin
              if Siz <= 32
                and then Max <= Uint_2 ** 31
!               and then (Num = Uint_1 or else Max <= Uint_2 ** 27)
              then
                 Vid := RE_Value_Fixed32;
              elsif Siz <= 64
                and then Max <= Uint_2 ** 63
!               and then (Num = Uint_1 or else Max <= Uint_2 ** 59)
              then
                 Vid := RE_Value_Fixed64;
              elsif System_Max_Integer_Size = 128
                and then Max <= Uint_2 ** 127
!               and then (Num = Uint_1 or else Max <= Uint_2 ** 123)
              then
                 Vid := RE_Value_Fixed128;
              else
*************** package body Exp_Imgv is
*** 1676,1682 ****
                       Name => New_Occurrence_Of (RTE (Vid), Loc),
                       Parameter_Associations => Args)));
  
-                Set_Etype (N, Btyp);
                 Analyze_And_Resolve (N, Btyp);
                 return;
              end if;
--- 1679,1684 ----
*************** package body Exp_Imgv is
*** 1854,1860 ****
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Wide_Image, Standard_Wide_String);
           return;
        end if;
--- 1856,1862 ----
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Wide_Image, Standard_Wide_String);
           return;
        end if;
*************** package body Exp_Imgv is
*** 1863,1868 ****
--- 1865,1871 ----
        --  Exp_Put_Image for details.
  
        if Exp_Put_Image.Image_Should_Call_Put_Image (N) then
+          Establish_Transient_Scope (N, Manage_Sec_Stack => True);
           Rewrite (N, Exp_Put_Image.Build_Image_Call (N));
           Analyze_And_Resolve (N, Standard_Wide_String, Suppress => All_Checks);
           return;
*************** package body Exp_Imgv is
*** 1962,1968 ****
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image
             (N, Pref, Name_Wide_Wide_Image, Standard_Wide_Wide_String);
           return;
--- 1965,1971 ----
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image
             (N, Pref, Name_Wide_Wide_Image, Standard_Wide_Wide_String);
           return;
*************** package body Exp_Imgv is
*** 1972,1977 ****
--- 1975,1981 ----
        --  Exp_Put_Image for details.
  
        if Exp_Put_Image.Image_Should_Call_Put_Image (N) then
+          Establish_Transient_Scope (N, Manage_Sec_Stack => True);
           Rewrite (N, Exp_Put_Image.Build_Image_Call (N));
           Analyze_And_Resolve
             (N, Standard_Wide_Wide_String, Suppress => All_Checks);
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_imgv.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_imgv.ads
*** gcc-15.2.0/gcc/ada/exp_imgv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_imgv.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_intr.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_intr.adb
*** gcc-15.2.0/gcc/ada/exp_intr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_intr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Sem_Eval;       use Sem_Eval;
*** 50,56 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 49,54 ----
*************** package body Exp_Intr is
*** 415,420 ****
--- 413,422 ----
  
        Rewrite (N, Convert_To (Result_Typ, Cnstr_Call));
  
+       if Is_Interface (Result_Typ) then
+          Flag_Interface_Pointer_Displacement (N);
+       end if;
+ 
        --  Do not generate a run-time check on the built object if tag
        --  checks are suppressed for the result type or tagged type expansion
        --  is disabled or if CodePeer_Mode.
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_intr.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_intr.ads
*** gcc-15.2.0/gcc/ada/exp_intr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_intr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_pakd.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_pakd.adb
*** gcc-15.2.0/gcc/ada/exp_pakd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_pakd.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 25,30 ----
*************** with Sem_Ch13;       use Sem_Ch13;
*** 45,51 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 44,49 ----
*************** package body Exp_Pakd is
*** 904,910 ****
           --  discriminants, so we treat it as a default/per-object expression.
  
           Set_Parent (Len_Expr, Typ);
!          Preanalyze_Spec_Expression (Len_Expr, Standard_Long_Long_Integer);
  
           --  Use a modular type if possible. We can do this if we have
           --  static bounds, and the length is small enough, and the length
--- 902,909 ----
           --  discriminants, so we treat it as a default/per-object expression.
  
           Set_Parent (Len_Expr, Typ);
!          Preanalyze_And_Resolve_Spec_Expression
!            (Len_Expr, Standard_Long_Long_Integer);
  
           --  Use a modular type if possible. We can do this if we have
           --  static bounds, and the length is small enough, and the length
*************** package body Exp_Pakd is
*** 1525,1545 ****
  
        Get_Base_And_Bit_Offset (Prefix (N), Base, Offset);
  
!       Rewrite (N,
!         Unchecked_Convert_To (RTE (RE_Address),
!           Make_Op_Add (Loc,
!             Left_Opnd =>
!               Unchecked_Convert_To (RTE (RE_Integer_Address),
!                 Make_Attribute_Reference (Loc,
!                   Prefix         => Base,
!                   Attribute_Name => Name_Address)),
  
!             Right_Opnd =>
!               Unchecked_Convert_To (RTE (RE_Integer_Address),
!                 Make_Op_Divide (Loc,
!                   Left_Opnd => Offset,
!                   Right_Opnd =>
!                     Make_Integer_Literal (Loc, System_Storage_Unit))))));
  
        Analyze_And_Resolve (N, RTE (RE_Address));
     end Expand_Packed_Address_Reference;
--- 1524,1547 ----
  
        Get_Base_And_Bit_Offset (Prefix (N), Base, Offset);
  
!       Offset := Unchecked_Convert_To (RTE (RE_Storage_Offset), Offset);
  
!       Rewrite (N,
!         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 (
!             Make_Attribute_Reference (Loc,
!               Prefix         => Base,
!               Attribute_Name => Name_Address),
!             Make_Op_Divide (Loc,
!               Left_Opnd  => Offset,
!               Right_Opnd =>
!                 Make_Integer_Literal (Loc, System_Storage_Unit)))));
  
        Analyze_And_Resolve (N, RTE (RE_Address));
     end Expand_Packed_Address_Reference;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_pakd.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_pakd.ads
*** gcc-15.2.0/gcc/ada/exp_pakd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_pakd.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_prag.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_prag.adb
*** gcc-15.2.0/gcc/ada/exp_prag.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_prag.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Casing;         use Casing;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 48,54 ****
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 47,52 ----
*************** package body Exp_Prag is
*** 134,140 ****
        --      Analyze_xxx_In_Decl_Part). The second part of the analysis will
        --      not happen if the pragma is rewritten.
  
!       if Assertion_Expression_Pragma (Prag_Id) and then Is_Ignored (N) then
           return;
  
        --  Rewrite the pragma into a null statement when it is ignored using
--- 132,140 ----
        --      Analyze_xxx_In_Decl_Part). The second part of the analysis will
        --      not happen if the pragma is rewritten.
  
!       if Assertion_Expression_Pragma (Prag_Id)
!         and then Is_Ignored_In_Codegen (N)
!       then
           return;
  
        --  Rewrite the pragma into a null statement when it is ignored using
*************** package body Exp_Prag is
*** 143,149 ****
  
        elsif Should_Ignore_Pragma_Sem (N)
          or else (Prag_Id = Pragma_Default_Scalar_Storage_Order
!                   and then Ignore_Rep_Clauses)
        then
           Rewrite (N, Make_Null_Statement (Sloc (N)));
           return;
--- 143,149 ----
  
        elsif Should_Ignore_Pragma_Sem (N)
          or else (Prag_Id = Pragma_Default_Scalar_Storage_Order
!                  and then Ignore_Rep_Clauses)
        then
           Rewrite (N, Make_Null_Statement (Sloc (N)));
           return;
*************** package body Exp_Prag is
*** 189,196 ****
           when Pragma_Suppress_Initialization =>
              Expand_Pragma_Suppress_Initialization (N);
  
!          --  All other pragmas need no expander action (includes
!          --  Unknown_Pragma).
  
           when others => null;
        end case;
--- 189,195 ----
           when Pragma_Suppress_Initialization =>
              Expand_Pragma_Suppress_Initialization (N);
  
!          --  All other pragmas need no expander action
  
           when others => null;
        end case;
*************** package body Exp_Prag is
*** 480,486 ****
     begin
        --  Nothing to do if pragma is ignored
  
!       if Is_Ignored (N) then
           return;
        end if;
  
--- 479,485 ----
     begin
        --  Nothing to do if pragma is ignored
  
!       if Is_Ignored_In_Codegen (N) then
           return;
        end if;
  
*************** package body Exp_Prag is
*** 1518,1524 ****
        is
           Cond  : Node_Id;
           Error : Node_Id;
! 
        begin
           --  Generate:
           --    Flag and then not Conseq
--- 1517,1523 ----
        is
           Cond  : Node_Id;
           Error : Node_Id;
!          Str   : String_Id;
        begin
           --  Generate:
           --    Flag and then not Conseq
*************** package body Exp_Prag is
*** 1538,1549 ****
           Store_String_Chars ("failed contract case at ");
           Store_String_Chars (Build_Location_String (Sloc (Conseq)));
  
           Error :=
             Make_Procedure_Call_Statement (Loc,
               Name                   =>
                 New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
               Parameter_Associations => New_List (
!                Make_String_Literal (Loc, End_String)));
  
           if No (Checks) then
              Checks :=
--- 1537,1553 ----
           Store_String_Chars ("failed contract case at ");
           Store_String_Chars (Build_Location_String (Sloc (Conseq)));
  
+          --  Store the string value as the call to RTE can cause a new unit to
+          --  be loaded which causes new strings to be created.
+ 
+          Str := End_String;
+ 
           Error :=
             Make_Procedure_Call_Statement (Loc,
               Name                   =>
                 New_Occurrence_Of (RTE (RE_Raise_Assert_Failure), Loc),
               Parameter_Associations => New_List (
!                Make_String_Literal (Loc, Str)));
  
           if No (Checks) then
              Checks :=
*************** package body Exp_Prag is
*** 1837,1843 ****
        --  Do nothing if pragma is not enabled. If pragma is disabled, it has
        --  already been rewritten as a Null statement.
  
!       if Is_Ignored (CCs) then
           return;
  
        --  Guard against malformed contract cases
--- 1841,1847 ----
        --  Do nothing if pragma is not enabled. If pragma is disabled, it has
        --  already been rewritten as a Null statement.
  
!       if Is_Ignored_In_Codegen (CCs) then
           return;
  
        --  Guard against malformed contract cases
*************** package body Exp_Prag is
*** 2514,2519 ****
--- 2518,2524 ----
        Call         : Node_Id;
        Call_List    : List_Id;
        Call_Loc     : Source_Ptr;
+       Check_Prag   : Node_Id;
        Expr         : Node_Id;
        Loc          : Source_Ptr;
        Proc_Body    : Node_Id;
*************** package body Exp_Prag is
*** 2538,2544 ****
        --  Nothing to do when the pragma is ignored because its semantics are
        --  suppressed.
  
!       if Is_Ignored (IC_Prag) then
           return;
  
        --  Nothing to do when the pragma or its argument are illegal because
--- 2543,2549 ----
        --  Nothing to do when the pragma is ignored because its semantics are
        --  suppressed.
  
!       if Is_Ignored_In_Codegen (IC_Prag) then
           return;
  
        --  Nothing to do when the pragma or its argument are illegal because
*************** package body Exp_Prag is
*** 2602,2607 ****
--- 2607,2626 ----
        --       pragma Check (Initial_Condition, <Expr>);
        --    end <Pack_Id>Initial_Condition;
  
+       Check_Prag :=
+         Make_Pragma
+           (Loc,
+            Chars                        => Name_Check,
+            Pragma_Argument_Associations =>
+              New_List
+                (Make_Pragma_Argument_Association
+                   (Loc,
+                    Expression =>
+                      Make_Identifier (Loc, Name_Initial_Condition)),
+                 Make_Pragma_Argument_Association
+                   (Loc, Expression => New_Copy_Tree (Expr))));
+       Copy_Assertion_Policy_Attributes (Check_Prag, IC_Prag);
+ 
        Proc_Body :=
          Make_Subprogram_Body (Loc,
            Specification              =>
*************** package body Exp_Prag is
*** 2609,2623 ****
            Declarations               => Empty_List,
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => New_List (
!                 Make_Pragma (Loc,
!                   Chars                        => Name_Check,
!                   Pragma_Argument_Associations => New_List (
!                     Make_Pragma_Argument_Association (Loc,
!                       Expression =>
!                         Make_Identifier (Loc, Name_Initial_Condition)),
!                     Make_Pragma_Argument_Association (Loc,
!                       Expression => New_Copy_Tree (Expr)))))));
  
        Append_To (Body_List, Proc_Body);
  
--- 2628,2634 ----
            Declarations               => Empty_List,
            Handled_Statement_Sequence =>
              Make_Handled_Sequence_Of_Statements (Loc,
!               Statements => New_List (Check_Prag)));
  
        Append_To (Body_List, Proc_Body);
  
*************** package body Exp_Prag is
*** 2941,2946 ****
--- 2952,2958 ----
                       Typ      => Expr_Typ,
                       Curr_Val => New_Occurrence_Of (Curr_Id, Loc),
                       Old_Val  => New_Occurrence_Of (Old_Id, Loc)))));
+          Copy_Assertion_Policy_Attributes (Prag, N);
  
           --  Generate:
           --    if Curr /= Old then
*************** package body Exp_Prag is
*** 3001,3007 ****
        --  Also do this in CodePeer mode, because the expanded code is too
        --  complicated for CodePeer to analyse.
  
!       if Is_Ignored (N)
          or else Chars (Last_Var) = Name_Structural
          or else CodePeer_Mode
        then
--- 3013,3019 ----
        --  Also do this in CodePeer mode, because the expanded code is too
        --  complicated for CodePeer to analyse.
  
!       if Is_Ignored_In_Codegen (N)
          or else Chars (Last_Var) = Name_Structural
          or else CodePeer_Mode
        then
*************** package body Exp_Prag is
*** 3083,3088 ****
--- 3095,3110 ----
     end Expand_Pragma_Loop_Variant;
  
     --------------------------------
+    -- Expand_Pragma_Program_Exit --
+    --------------------------------
+ 
+    procedure Expand_Pragma_Program_Exit (Prag : Node_Id) is
+       pragma Unreferenced (Prag);
+    begin
+       null;
+    end Expand_Pragma_Program_Exit;
+ 
+    --------------------------------
     -- Expand_Pragma_Psect_Object --
     --------------------------------
  
*************** package body Exp_Prag is
*** 3209,3214 ****
--- 3231,3241 ----
        --  Prev_Decl and is stored in this parameter for a next call to this
        --  routine. Is_Last is True when there are no more variants to process.
  
+       function Variants_Function_Name (Prag : Node_Id) return Name_Id;
+       --  The name of the variants function is either
+       --  * _variants: if no assertion level was associated with the pragma.
+       --  * _variants_<Assertion_Level> otherwise.
+ 
        ----------------------
        -- Formal_Param_Map --
        ----------------------
*************** package body Exp_Prag is
*** 3252,3262 ****
           Expr_Typ : constant Entity_Id  := Etype (Expr);
           Loc      : constant Source_Ptr := Sloc (Expr);
  
!          Old_Id    : Entity_Id;
!          Old_Decl  : Node_Id;
!          Curr_Id   : Entity_Id;
!          Curr_Decl : Node_Id;
!          Prag      : Node_Id;
  
        begin
           --  Create temporaries that store the old values of the associated
--- 3279,3289 ----
           Expr_Typ : constant Entity_Id  := Etype (Expr);
           Loc      : constant Source_Ptr := Sloc (Expr);
  
!          Old_Id     : Entity_Id;
!          Old_Decl   : Node_Id;
!          Curr_Id    : Entity_Id;
!          Curr_Decl  : Node_Id;
!          Check_Prag : Node_Id;
  
        begin
           --  Create temporaries that store the old values of the associated
*************** package body Exp_Prag is
*** 3296,3302 ****
           --  Generate:
           --    pragma Check (Variant, Curr <|> Old);
  
!          Prag :=
             Make_Pragma (Loc,
               Chars                        => Name_Check,
               Pragma_Argument_Associations => New_List (
--- 3323,3329 ----
           --  Generate:
           --    pragma Check (Variant, Curr <|> Old);
  
!          Check_Prag :=
             Make_Pragma (Loc,
               Chars                        => Name_Check,
               Pragma_Argument_Associations => New_List (
*************** package body Exp_Prag is
*** 3311,3316 ****
--- 3338,3344 ----
                       Typ      => Expr_Typ,
                       Curr_Val => New_Occurrence_Of (Curr_Id, Loc),
                       Old_Val  => New_Occurrence_Of (Old_Id, Loc)))));
+          Copy_Assertion_Policy_Attributes (Check_Prag, Prag);
  
           --  Generate:
           --    if Curr /= Old then
*************** package body Exp_Prag is
*** 3323,3329 ****
              --  pragma.
  
              if Is_Last then
!                If_Stmt := Prag;
              else
                 If_Stmt :=
                   Make_If_Statement (Loc,
--- 3351,3357 ----
              --  pragma.
  
              if Is_Last then
!                If_Stmt := Check_Prag;
              else
                 If_Stmt :=
                   Make_If_Statement (Loc,
*************** package body Exp_Prag is
*** 3331,3337 ****
                       Make_Op_Ne (Loc,
                         Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
                         Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
!                    Then_Statements => New_List (Prag));
              end if;
  
              --  Generate:
--- 3359,3365 ----
                       Make_Op_Ne (Loc,
                         Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
                         Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
!                    Then_Statements => New_List (Check_Prag));
              end if;
  
              --  Generate:
*************** package body Exp_Prag is
*** 3340,3346 ****
              --    end if;
  
           elsif Is_Last then
!             Set_Else_Statements (If_Stmt, New_List (Prag));
  
              --  Generate:
              --    elsif Curr /= Old then
--- 3368,3374 ----
              --    end if;
  
           elsif Is_Last then
!             Set_Else_Statements (If_Stmt, New_List (Check_Prag));
  
              --  Generate:
              --    elsif Curr /= Old then
*************** package body Exp_Prag is
*** 3357,3366 ****
                Make_Op_Ne (Loc,
                  Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
                  Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
!               Then_Statements => New_List (Prag)));
           end if;
        end Process_Variant;
  
        --  Local variables
  
        Loc : constant Source_Ptr := Sloc (Prag);
--- 3385,3414 ----
                Make_Op_Ne (Loc,
                  Left_Opnd  => New_Occurrence_Of (Curr_Id, Loc),
                  Right_Opnd => New_Occurrence_Of (Old_Id, Loc)),
!               Then_Statements => New_List (Check_Prag)));
           end if;
        end Process_Variant;
  
+       ----------------------------
+       -- Variants_Function_Name --
+       ----------------------------
+ 
+       function Variants_Function_Name (Prag : Node_Id) return Name_Id is
+       begin
+          if Present (Pragma_Ghost_Assertion_Level (Prag))
+            and then Pragma_Ghost_Assertion_Level (Prag)
+                     /= Standard_Level_Default
+          then
+             Get_Name_String (Name_uVariants);
+             Add_Str_To_Name_Buffer ("_");
+             Get_Name_String_And_Append
+               (Chars (Pragma_Ghost_Assertion_Level (Prag)));
+             return Name_Enter;
+          else
+             return Name_uVariants;
+          end if;
+       end Variants_Function_Name;
+ 
        --  Local variables
  
        Loc : constant Source_Ptr := Sloc (Prag);
*************** package body Exp_Prag is
*** 3374,3379 ****
--- 3422,3428 ----
        Proc_Bod     : Node_Id;
        Proc_Decl    : Node_Id;
        Proc_Id      : Entity_Id;
+       Proc_Nam     : Name_Id;
        Proc_Spec    : Node_Id;
        Variant      : Node_Id;
  
*************** package body Exp_Prag is
*** 3381,3387 ****
        --  Do nothing if pragma is not present or is disabled.
        --  Also ignore structural variants for execution.
  
!       if Is_Ignored (Prag)
          or else Chars (Nlists.Last (Choices (Last_Variant))) = Name_Structural
        then
           return;
--- 3430,3436 ----
        --  Do nothing if pragma is not present or is disabled.
        --  Also ignore structural variants for execution.
  
!       if Is_Ignored_In_Codegen (Prag)
          or else Chars (Nlists.Last (Choices (Last_Variant))) = Name_Structural
        then
           return;
*************** package body Exp_Prag is
*** 3399,3405 ****
        --  variant expressions captured at the start of subprogram with their
        --  values at the recursive call of the subprogram.
  
!       Proc_Id := Make_Defining_Identifier (Loc, Name_uVariants);
  
        Proc_Spec :=
          Make_Procedure_Specification
--- 3448,3456 ----
        --  variant expressions captured at the start of subprogram with their
        --  values at the recursive call of the subprogram.
  
!       Proc_Nam := Variants_Function_Name (Prag);
! 
!       Proc_Id := Make_Defining_Identifier (Loc, Proc_Nam);
  
        Proc_Spec :=
          Make_Procedure_Specification
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_prag.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_prag.ads
*** gcc-15.2.0/gcc/ada/exp_prag.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_prag.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 72,75 ****
--- 72,79 ----
     --  of Prag is replaced with a reference to procedure with checks for the
     --  variant expressions.
  
+    procedure Expand_Pragma_Program_Exit (Prag : Node_Id);
+    --  This routine only exists for consistency with other pragmas, since
+    --  Program_Exit has no meaningful expansion.
+ 
  end Exp_Prag;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_put_image.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_put_image.adb
*** gcc-15.2.0/gcc/ada/exp_put_image.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_put_image.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  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;
--- 27,32 ----
*************** with Output;         use Output;
*** 42,48 ****
  with Rtsfind;        use Rtsfind;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 41,46 ----
*************** package body Exp_Put_Image is
*** 77,84 ****
     --  reference). The Loc parameter is used as the Sloc of the created entity.
  
     function Put_Image_Base_Type (E : Entity_Id) return Entity_Id;
!    --  Returns the base type, except for an array type whose whose first
!    --  subtype is constrained, in which case it returns the first subtype.
  
     -------------------------------------
     -- Build_Array_Put_Image_Procedure --
--- 75,102 ----
     --  reference). The Loc parameter is used as the Sloc of the created entity.
  
     function Put_Image_Base_Type (E : Entity_Id) return Entity_Id;
!    --  For an array type whose whose first subtype is constrained, return
!    --  the first subtype. For the internal representation type corresponding
!    --  to a mutably tagged type, return the mutably tagged type. Otherwise,
!    --  return the base type. Similar to Exp_Strm.Stream_Base_Type.
! 
!    procedure Put_Specific_Type_Name_Qualifier
!               (Loc               : Source_Ptr;
!                Stms              : List_Id;
!                Tagged_Obj        : Node_Id;
!                Buffer_Name       : Node_Id;
!                Is_Interface_Type : Boolean);
!    --  Append to the given statement list calls to add into the
!    --  buffer the name of the given object's tag and then a "'".
! 
!    function Put_String_Exp_To_Buffer
!      (Loc         : Source_Ptr;
!       String_Exp  : Node_Id;
!       Buffer_Name : Node_Id;
!       Wide_Wide   : Boolean := False) return Node_Id;
!    --  Generate a call to evaluate a String (or Wide_Wide_String, depending
!    --  on the Wide_Wide Boolean parameter) expression and output it into
!    --  the buffer.
  
     -------------------------------------
     -- Build_Array_Put_Image_Procedure --
*************** package body Exp_Put_Image is
*** 189,195 ****
        Ndim : constant Pos        := Number_Dimensions (Typ);
        Ctyp : constant Entity_Id  := Component_Type (Typ);
  
!       Stm         : Node_Id;
        Exl         : constant List_Id := New_List;
        PI_Entity   : Entity_Id;
  
--- 207,213 ----
        Ndim : constant Pos        := Number_Dimensions (Typ);
        Ctyp : constant Entity_Id  := Component_Type (Typ);
  
!       Stms        : List_Id := New_List;
        Exl         : constant List_Id := New_List;
        PI_Entity   : Entity_Id;
  
*************** package body Exp_Put_Image is
*** 220,234 ****
           Append_To (Exl, Make_Identifier (Loc, New_External_Name ('L', Dim)));
        end loop;
  
!       Stm :=
!         Make_Attribute_Reference (Loc,
!           Prefix => New_Occurrence_Of (Put_Image_Base_Type (Ctyp), Loc),
!           Attribute_Name => Name_Put_Image,
!           Expressions => New_List (
!             Make_Identifier (Loc, Name_S),
!             Make_Indexed_Component (Loc,
!               Prefix      => Make_Identifier (Loc, Name_V),
!               Expressions => Exl)));
  
        --  The corresponding attribute for the component type of the array might
        --  be user-defined, and frozen after the array type. In that case,
--- 238,273 ----
           Append_To (Exl, Make_Identifier (Loc, New_External_Name ('L', Dim)));
        end loop;
  
!       declare
!          Ctype_For_Call : constant Entity_Id := Put_Image_Base_Type (Ctyp);
!          Indexed_Comp   : constant Node_Id :=
!            Make_Indexed_Component (Loc,
!              Prefix      => Make_Identifier (Loc, Name_V),
!              Expressions => Exl);
!       begin
!          if Is_Mutably_Tagged_Type (Ctype_For_Call) then
!             pragma Assert (not Is_Mutably_Tagged_Type (Component_Type (Typ)));
! 
!             Make_Mutably_Tagged_Conversion (Indexed_Comp,
!                                             Typ => Ctype_For_Call);
! 
!             pragma Assert (Is_Mutably_Tagged_Type (Etype (Indexed_Comp)));
! 
!             Put_Specific_Type_Name_Qualifier (Loc,
!                Stms              => Stms,
!                Tagged_Obj        => Indexed_Comp,
!                Buffer_Name       => Make_Identifier (Loc, Name_S),
!                Is_Interface_Type => False);
!          end if;
! 
!          Append_To (Stms,
!            Make_Attribute_Reference (Loc,
!              Prefix => New_Occurrence_Of (Ctype_For_Call, Loc),
!              Attribute_Name => Name_Put_Image,
!              Expressions => New_List (
!                Make_Identifier (Loc, Name_S),
!                Indexed_Comp)));
!       end;
  
        --  The corresponding attribute for the component type of the array might
        --  be user-defined, and frozen after the array type. In that case,
*************** package body Exp_Put_Image is
*** 245,290 ****
        --  Loop through the dimensions, innermost first, generating a loop for
        --  each dimension.
  
!       declare
!          Stms : List_Id := New_List (Stm);
!       begin
!          for Dim in reverse 1 .. Ndim loop
!             declare
!                New_Stms : constant List_Id := New_List;
!                Between_Proc : RE_Id;
!             begin
!                --  For a one-dimensional array of elementary type, use
!                --  RE_Simple_Array_Between. The same applies to the last
!                --  dimension of a multidimensional array.
  
!                if Is_Elementary_Type (Ctyp) and then Dim = Ndim then
!                   Between_Proc := RE_Simple_Array_Between;
!                else
!                   Between_Proc := RE_Array_Between;
!                end if;
  
!                Append_To (New_Stms,
!                  Make_Procedure_Call_Statement (Loc,
!                    Name => New_Occurrence_Of (RTE (RE_Array_Before), Loc),
!                    Parameter_Associations => New_List
!                      (Make_Identifier (Loc, Name_S))));
  
!                Append_To
!                  (New_Stms,
!                   Wrap_In_Loop (Stms, Dim, Indices (Dim), Between_Proc));
  
!                Append_To (New_Stms,
!                  Make_Procedure_Call_Statement (Loc,
!                    Name => New_Occurrence_Of (RTE (RE_Array_After), Loc),
!                    Parameter_Associations => New_List
!                      (Make_Identifier (Loc, Name_S))));
  
!                Stms := New_Stms;
!             end;
!          end loop;
  
!          Build_Put_Image_Proc (Loc, Typ, Decl, Pnam, Stms);
!       end;
     end Build_Array_Put_Image_Procedure;
  
     -------------------------------------
--- 284,325 ----
        --  Loop through the dimensions, innermost first, generating a loop for
        --  each dimension.
  
!       for Dim in reverse 1 .. Ndim loop
!          declare
!             New_Stms : constant List_Id := New_List;
!             Between_Proc : RE_Id;
!          begin
!             --  For a one-dimensional array of elementary type, use
!             --  RE_Simple_Array_Between. The same applies to the last
!             --  dimension of a multidimensional array.
  
!             if Is_Elementary_Type (Ctyp) and then Dim = Ndim then
!                Between_Proc := RE_Simple_Array_Between;
!             else
!                Between_Proc := RE_Array_Between;
!             end if;
  
!             Append_To (New_Stms,
!               Make_Procedure_Call_Statement (Loc,
!                 Name => New_Occurrence_Of (RTE (RE_Array_Before), Loc),
!                 Parameter_Associations => New_List
!                   (Make_Identifier (Loc, Name_S))));
  
!             Append_To
!               (New_Stms,
!                Wrap_In_Loop (Stms, Dim, Indices (Dim), Between_Proc));
  
!             Append_To (New_Stms,
!               Make_Procedure_Call_Statement (Loc,
!                 Name => New_Occurrence_Of (RTE (RE_Array_After), Loc),
!                 Parameter_Associations => New_List
!                   (Make_Identifier (Loc, Name_S))));
  
!             Stms := New_Stms;
!          end;
!       end loop;
  
!       Build_Put_Image_Proc (Loc, Typ, Decl, Pnam, Stms);
     end Build_Array_Put_Image_Procedure;
  
     -------------------------------------
*************** package body Exp_Put_Image is
*** 326,331 ****
--- 361,369 ----
              Lib_RE := RE_Put_Image_Access_Prot_Subp;
           elsif Is_Access_Subprogram_Type (Base_Type (U_Type)) then
              Lib_RE := RE_Put_Image_Access_Subp;
+          elsif Is_Extended_Access_Type (Base_Type (U_Type)) then
+             pragma Assert (No (P_Size));
+             Lib_RE := RE_Put_Image_Extended_Access_Pointer;
           elsif P_Size = System_Address_Size then
              Lib_RE := RE_Put_Image_Thin_Pointer;
           else
*************** package body Exp_Put_Image is
*** 379,385 ****
           begin
              --  We have built a dispatching call to handle calls to
              --  descendants (since they are not available through rtsfind).
!             --  Further details available in the body of Put_String_Exp.
  
              return Put_Call;
           end;
--- 417,424 ----
           begin
              --  We have built a dispatching call to handle calls to
              --  descendants (since they are not available through rtsfind).
!             --  Further details available in the body of
!             --  Put_String_Exp_To_Buffer.
  
              return Put_Call;
           end;
*************** package body Exp_Put_Image is
*** 691,709 ****
        ---------------------------
  
        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
           Append_To (Clist,
             Make_Attribute_Reference (Loc,
               Prefix         => New_Occurrence_Of (Component_Typ, Loc),
               Attribute_Name => Name_Put_Image,
!              Expressions    => New_List (
!                Make_Identifier (Loc, Name_S),
!                Make_Selected_Component (Loc,
!                  Prefix        => Make_Identifier (Loc, Name_V),
!                  Selector_Name => New_Occurrence_Of (C, Loc)))));
        end Append_Component_Attr;
  
        -------------------------------
--- 730,762 ----
        ---------------------------
  
        procedure Append_Component_Attr (Clist : List_Id; C : Entity_Id) is
!          Component_Typ : constant Entity_Id := Put_Image_Base_Type (Etype (C));
!          Selected_Comp : constant Node_Id :=
!            Make_Selected_Component (Loc,
!              Prefix        => Make_Identifier (Loc, Name_V),
!              Selector_Name => New_Occurrence_Of (C, Loc));
        begin
+          if Is_Mutably_Tagged_Type (Component_Typ) then
+             pragma Assert (not Is_Mutably_Tagged_Type (Etype (C)));
+ 
+             Make_Mutably_Tagged_Conversion (Selected_Comp,
+                                             Typ => Component_Typ);
+ 
+             pragma Assert (Is_Mutably_Tagged_Type (Etype (Selected_Comp)));
+ 
+             Put_Specific_Type_Name_Qualifier (Loc,
+                Stms              => Clist,
+                Tagged_Obj        => Selected_Comp,
+                Buffer_Name       => Make_Identifier (Loc, Name_S),
+                Is_Interface_Type => False);
+          end if;
+ 
           Append_To (Clist,
             Make_Attribute_Reference (Loc,
               Prefix         => New_Occurrence_Of (Component_Typ, Loc),
               Attribute_Name => Name_Put_Image,
!              Expressions    => New_List (Make_Identifier (Loc, Name_S),
!                                          Selected_Comp)));
        end Append_Component_Attr;
  
        -------------------------------
*************** package body Exp_Put_Image is
*** 956,962 ****
                 --  use the first copy instead.
  
                 Partial_View := Incomplete_Or_Partial_View
!                                  (Defining_Identifier (Type_Decl));
  
                 pragma Assert (Ekind (Partial_View) in
                                E_Private_Type
--- 1009,1016 ----
                 --  use the first copy instead.
  
                 Partial_View := Incomplete_Or_Partial_View
!                                  (Defining_Identifier (Type_Decl),
!                                   Partial_Only => True);
  
                 pragma Assert (Ekind (Partial_View) in
                                E_Private_Type
*************** package body Exp_Put_Image is
*** 1235,1261 ****
     ----------------------
  
     function Build_Image_Call (N : Node_Id) return Node_Id is
!       --  For T'[[Wide_]Wide_]Image (X) Generate an Expression_With_Actions
!       --  node:
        --
!       --     do
!       --        S : Buffer;
!       --        U_Type'Put_Image (S, X);
!       --        Result : constant [[Wide_]Wide_]String :=
!       --          [[Wide_[Wide_]]Get (S);
!       --        Destroy (S);
!       --     in Result end
        --
!       --  where U_Type is the underlying type, as needed to bypass privacy.
  
-       Loc : constant Source_Ptr := Sloc (N);
-       U_Type : constant Entity_Id := Underlying_Type (Entity (Prefix (N)));
-       Sink_Entity : constant Entity_Id :=
-         Make_Temporary (Loc, 'S');
        Sink_Decl : constant Node_Id :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Sink_Entity,
!           Object_Definition =>
              New_Occurrence_Of (RTE (RE_Buffer_Type), Loc));
  
        Image_Prefix : constant Node_Id :=
--- 1289,1311 ----
     ----------------------
  
     function Build_Image_Call (N : Node_Id) return Node_Id is
!       --  For Typ'[[Wide_]Wide_]Image (X) generate:
        --
!       --    S : Buffer_Type;
!       --    U_Typ'Put_Image (S, X);
!       --    [[Wide_[Wide_]]Get (S)
        --
!       --  where U_Typ is the underlying type, as needed to bypass privacy.
! 
!       Loc   : constant Source_Ptr := Sloc (N);
!       U_Typ : constant Entity_Id  := Underlying_Type (Entity (Prefix (N)));
! 
!       Sink_Entity : constant Entity_Id := Make_Temporary (Loc, 'S');
  
        Sink_Decl : constant Node_Id :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Sink_Entity,
!           Object_Definition   =>
              New_Occurrence_Of (RTE (RE_Buffer_Type), Loc));
  
        Image_Prefix : constant Node_Id :=
*************** package body Exp_Put_Image is
*** 1263,1422 ****
  
        Put_Im : constant Node_Id :=
          Make_Attribute_Reference (Loc,
!           Prefix         => New_Occurrence_Of (U_Type, Loc),
            Attribute_Name => Name_Put_Image,
            Expressions    => New_List (
              New_Occurrence_Of (Sink_Entity, Loc),
              Image_Prefix));
-       Result_Entity : constant Entity_Id :=
-         Make_Temporary (Loc, 'R');
  
!       subtype Image_Name_Id is Name_Id with Static_Predicate =>
!         Image_Name_Id in Name_Image | Name_Wide_Image | Name_Wide_Wide_Image;
!       --  Attribute names that will be mapped to the corresponding result types
!       --  and functions.
! 
!       Attribute_Name_Id : constant Name_Id :=
!         (if Attribute_Name (N) = Name_Img then Name_Image
!          else Attribute_Name (N));
! 
!       Result_Typ    : constant Entity_Id :=
!         (case Image_Name_Id'(Attribute_Name_Id) is
!             when Name_Image           => Stand.Standard_String,
!             when Name_Wide_Image      => Stand.Standard_Wide_String,
!             when Name_Wide_Wide_Image => Stand.Standard_Wide_Wide_String);
!       Get_Func_Id   : constant RE_Id :=
!         (case Image_Name_Id'(Attribute_Name_Id) is
!             when Name_Image           => RE_Get,
!             when Name_Wide_Image      => RE_Wide_Get,
!             when Name_Wide_Wide_Image => RE_Wide_Wide_Get);
  
-       Result_Decl : constant Node_Id :=
-         Make_Object_Declaration (Loc,
-           Defining_Identifier => Result_Entity,
-           Object_Definition =>
-             New_Occurrence_Of (Result_Typ, Loc),
-           Expression =>
-             Make_Function_Call (Loc,
-               Name => New_Occurrence_Of (RTE (Get_Func_Id), Loc),
-               Parameter_Associations => New_List (
-                 New_Occurrence_Of (Sink_Entity, Loc))));
        Actions : List_Id;
  
-       function Put_String_Exp (String_Exp : Node_Id;
-                                Wide_Wide  : Boolean := False) return Node_Id;
-       --  Generate a call to evaluate a String (or Wide_Wide_String, depending
-       --  on the Wide_Wide Boolean parameter) expression and output it into
-       --  the buffer.
- 
-       --------------------
-       -- Put_String_Exp --
-       --------------------
- 
-       function Put_String_Exp (String_Exp : Node_Id;
-                                Wide_Wide  : Boolean := False) return Node_Id is
-          Put_Id : constant RE_Id :=
-            (if Wide_Wide then RE_Wide_Wide_Put else RE_Put_UTF_8);
- 
-          --  We could build a nondispatching call here, but to make
-          --  that work we'd have to change Rtsfind spec to make available
-          --  corresponding callees out of Ada.Strings.Text_Buffers.Unbounded
-          --  (as opposed to from Ada.Strings.Text_Buffers). Seems simpler to
-          --  introduce a type conversion and leave it to the optimizer to
-          --  eliminate the dispatching. This does not *introduce* any problems
-          --  if a no-dispatching-allowed restriction is in effect, since we
-          --  are already in the middle of generating a call to T'Class'Image.
- 
-          Sink_Exp : constant Node_Id :=
-            Make_Type_Conversion (Loc,
-              Subtype_Mark =>
-                New_Occurrence_Of
-                  (Class_Wide_Type (RTE (RE_Root_Buffer_Type)), Loc),
-              Expression   => New_Occurrence_Of (Sink_Entity, Loc));
-       begin
-          return
-            Make_Procedure_Call_Statement (Loc,
-              Name => New_Occurrence_Of (RTE (Put_Id), Loc),
-              Parameter_Associations => New_List (Sink_Exp, String_Exp));
-       end Put_String_Exp;
- 
-       --  Local variables
- 
-       Tag_Node : Node_Id;
- 
     --  Start of processing for Build_Image_Call
  
     begin
!       if Is_Class_Wide_Type (U_Type) then
! 
!          --  For interface types we must generate code to displace the pointer
!          --  to the object to reference the base of the underlying object.
! 
!          --  Generate:
!          --    To_Tag_Ptr (Image_Prefix'Address).all
! 
!          --  Note that Image_Prefix'Address is recursively expanded into a
!          --  call to Ada.Tags.Base_Address (Image_Prefix'Address).
! 
!          if Is_Interface (U_Type) then
!             Tag_Node :=
!               Make_Explicit_Dereference (Loc,
!                 Unchecked_Convert_To (RTE (RE_Tag_Ptr),
!                   Make_Attribute_Reference (Loc,
!                     Prefix => Duplicate_Subexpr (Image_Prefix),
!                     Attribute_Name => Name_Address)));
! 
!          --  Common case
! 
!          else
!             Tag_Node :=
!               Make_Attribute_Reference (Loc,
!                 Prefix         => Duplicate_Subexpr (Image_Prefix),
!                 Attribute_Name => Name_Tag);
!          end if;
! 
!          --  Generate qualified-expression syntax; qualification name comes
!          --  from calling Ada.Tags.Wide_Wide_Expanded_Name.
! 
!          declare
!             --  The copy of Image_Prefix will be evaluated before the
!             --  original, which is ok if no side effects are involved.
  
!             pragma Assert (Side_Effect_Free (Image_Prefix));
  
!             Specific_Type_Name : constant Node_Id :=
!               Put_String_Exp
!                 (Make_Function_Call (Loc,
!                    Name => New_Occurrence_Of
!                              (RTE (RE_Wide_Wide_Expanded_Name), Loc),
!                    Parameter_Associations => New_List (Tag_Node)),
!                  Wide_Wide => True);
  
-             Qualification : constant Node_Id :=
-               Put_String_Exp (Make_String_Literal (Loc, "'"));
-          begin
-             Actions := New_List
-                          (Sink_Decl,
-                           Specific_Type_Name,
-                           Qualification,
-                           Put_Im,
-                           Result_Decl);
-          end;
        else
!          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));
     end Build_Image_Call;
  
     ------------------------------
--- 1313,1359 ----
  
        Put_Im : constant Node_Id :=
          Make_Attribute_Reference (Loc,
!           Prefix         => New_Occurrence_Of (U_Typ, Loc),
            Attribute_Name => Name_Put_Image,
            Expressions    => New_List (
              New_Occurrence_Of (Sink_Entity, Loc),
              Image_Prefix));
  
!       Get_Func_Id : constant RE_Id :=
!         (case Get_Attribute_Id (Attribute_Name (N)) is
!           when Attribute_Img             => RE_Get,
!           when Attribute_Image           => RE_Get,
!           when Attribute_Wide_Image      => RE_Wide_Get,
!           when Attribute_Wide_Wide_Image => RE_Wide_Wide_Get,
!           when others                    => raise Program_Error);
  
        Actions : List_Id;
  
     --  Start of processing for Build_Image_Call
  
     begin
!       if Is_Class_Wide_Type (U_Typ) then
!          Actions := New_List (Sink_Decl);
  
!          Put_Specific_Type_Name_Qualifier (Loc,
!            Stms              => Actions,
!            Tagged_Obj        => Image_Prefix,
!            Buffer_Name       => New_Occurrence_Of (Sink_Entity, Loc),
!            Is_Interface_Type => Is_Interface (U_Typ));
  
!          Append_To (Actions, Put_Im);
  
        else
!          Actions := New_List (Sink_Decl, Put_Im);
        end if;
  
!       Insert_Actions (N, Actions);
  
!       return
!         Make_Function_Call (Loc,
!           Name => New_Occurrence_Of (RTE (Get_Func_Id), Loc),
!             Parameter_Associations => New_List (
!               New_Occurrence_Of (Sink_Entity, Loc)));
     end Build_Image_Call;
  
     ------------------------------
*************** package body Exp_Put_Image is
*** 1485,1493 ****
--- 1422,1510 ----
           return E;
        elsif Is_Private_Type (Base_Type (E)) and not Is_Private_Type (E) then
           return Implementation_Base_Type (E);
+       elsif Is_Mutably_Tagged_CW_Equivalent_Type (E) then
+          return Get_Corresponding_Mutably_Tagged_Type_If_Present (E);
        else
           return Base_Type (E);
        end if;
     end Put_Image_Base_Type;
  
+    --------------------------------------
+    -- Put_Specific_Type_Name_Qualifier --
+    --------------------------------------
+ 
+    procedure Put_Specific_Type_Name_Qualifier
+      (Loc               : Source_Ptr;
+       Stms              : List_Id;
+       Tagged_Obj        : Node_Id;
+       Buffer_Name       : Node_Id;
+       Is_Interface_Type : Boolean)
+    is
+       Tag_Node : Node_Id;
+    begin
+       if Is_Interface_Type then
+          Tag_Node :=
+            Make_Explicit_Dereference (Loc,
+              Unchecked_Convert_To (RTE (RE_Tag_Ptr),
+                Make_Attribute_Reference (Loc,
+                  Prefix => New_Copy_Tree (Tagged_Obj),
+                  Attribute_Name => Name_Address)));
+       else
+          Tag_Node :=
+            Make_Attribute_Reference (Loc,
+              Prefix         => New_Copy_Tree (Tagged_Obj),
+              Attribute_Name => Name_Tag);
+       end if;
+ 
+       Append_To (Stms,
+                  Put_String_Exp_To_Buffer (Loc,
+                    String_Exp =>
+                      Make_Function_Call (Loc,
+                        Name => New_Occurrence_Of
+                                  (RTE (RE_Wide_Wide_Expanded_Name), Loc),
+                        Parameter_Associations => New_List (Tag_Node)),
+                    Buffer_Name => Buffer_Name,
+                    Wide_Wide => True));
+ 
+       Append_To (Stms,
+                  Put_String_Exp_To_Buffer (Loc,
+                    String_Exp  => Make_String_Literal (Loc, "'"),
+                    Buffer_Name => New_Copy_Tree (Buffer_Name)));
+    end Put_Specific_Type_Name_Qualifier;
+ 
+    ------------------------------
+    -- Put_String_Exp_To_Buffer --
+    ------------------------------
+ 
+    function Put_String_Exp_To_Buffer
+      (Loc         : Source_Ptr;
+       String_Exp  : Node_Id;
+       Buffer_Name : Node_Id;
+       Wide_Wide   : Boolean := False) return Node_Id
+    is
+       Put_Id : constant RE_Id :=
+         (if Wide_Wide then RE_Wide_Wide_Put else RE_Put_UTF_8);
+ 
+       --  We could build a nondispatching call here, but to make
+       --  that work we'd have to change Rtsfind spec to make available
+       --  corresponding callees out of Ada.Strings.Text_Buffers.Unbounded
+       --  (as opposed to from Ada.Strings.Text_Buffers). Seems simpler to
+       --  introduce a type conversion and leave it to the optimizer to
+       --  eliminate the dispatching. This does not *introduce* any problems
+       --  if a no-dispatching-allowed restriction is in effect, since we
+       --  are already in the middle of generating a call to T'Class'Image.
+ 
+       Sink_Exp : constant Node_Id :=
+         Make_Type_Conversion (Loc,
+           Subtype_Mark =>
+             New_Occurrence_Of
+               (Class_Wide_Type (RTE (RE_Root_Buffer_Type)), Loc),
+           Expression   => Buffer_Name);
+    begin
+       return
+         Make_Procedure_Call_Statement (Loc,
+           Name => New_Occurrence_Of (RTE (Put_Id), Loc),
+           Parameter_Associations => New_List (Sink_Exp, String_Exp));
+    end Put_String_Exp_To_Buffer;
+ 
  end Exp_Put_Image;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_put_image.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_put_image.ads
*** gcc-15.2.0/gcc/ada/exp_put_image.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_put_image.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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
*** 89,95 ****
     function Build_Image_Call (N : Node_Id) return Node_Id;
     --  N is a call to T'[[Wide_]Wide_]Image, and this translates it into the
     --  appropriate code to call T'Put_Image into a buffer and then extract the
!    --  [[wide] wide] string from the buffer.
  
     procedure Preload_Root_Buffer_Type (Compilation_Unit : Node_Id);
     --  Call RTE (RE_Root_Buffer_Type) if necessary, to load the packages
--- 89,97 ----
     function Build_Image_Call (N : Node_Id) return Node_Id;
     --  N is a call to T'[[Wide_]Wide_]Image, and this translates it into the
     --  appropriate code to call T'Put_Image into a buffer and then extract the
!    --  [[wide] wide] string from the buffer. N must be wrapped in a transient
!    --  scope before invoking the function because the buffer is controlled and
!    --  the extraction is done on the secondary stack.
  
     procedure Preload_Root_Buffer_Type (Compilation_Unit : Node_Id);
     --  Call RTE (RE_Root_Buffer_Type) if necessary, to load the packages
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_sel.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_sel.adb
*** gcc-15.2.0/gcc/ada/exp_sel.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_sel.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,29 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
--- 23,28 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_sel.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_sel.ads
*** gcc-15.2.0/gcc/ada/exp_sel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_sel.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_smem.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_smem.adb
*** gcc-15.2.0/gcc/ada/exp_smem.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_smem.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Rtsfind;        use Rtsfind;
*** 39,45 ****
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 38,43 ----
*************** package body Exp_Smem is
*** 134,164 ****
     -------------------------------
  
     procedure Add_Shared_Var_Lock_Procs (N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (N);
        Obj : constant Entity_Id  := Entity (Expression (First_Actual (N)));
-       Vnm : String_Id;
-       Vid : Entity_Id;
-       Vde : Node_Id;
-       Aft : constant List_Id := New_List;
  
        In_Transient : constant Boolean := Scope_Is_Transient;
  
!       function Build_Shared_Var_Lock_Call (RE : RE_Id) return Node_Id;
!       --  Return a procedure call statement for lock proc RTE
! 
!       --------------------------------
!       -- Build_Shared_Var_Lock_Call --
!       --------------------------------
  
!       function Build_Shared_Var_Lock_Call (RE : RE_Id) return Node_Id is
!       begin
!          return
!            Make_Procedure_Call_Statement (Loc,
!              Name                   =>
!                New_Occurrence_Of (RTE (RE), Loc),
!              Parameter_Associations =>
!                New_List (New_Occurrence_Of (Vid, Loc)));
!       end Build_Shared_Var_Lock_Call;
  
     --  Start of processing for Add_Shared_Var_Lock_Procs
  
--- 132,149 ----
     -------------------------------
  
     procedure Add_Shared_Var_Lock_Procs (N : Node_Id) is
+       Aft : constant List_Id    := New_List;
        Loc : constant Source_Ptr := Sloc (N);
        Obj : constant Entity_Id  := Entity (Expression (First_Actual (N)));
  
        In_Transient : constant Boolean := Scope_Is_Transient;
+       --  Whether we are already in a transient scope
  
!       function Current_Scope return Int renames Scope_Stack.Last;
!       --  Return the index of the current scope
  
!       Vid : Entity_Id;
!       Vnm : String_Id;
  
     --  Start of processing for Add_Shared_Var_Lock_Procs
  
*************** package body Exp_Smem is
*** 176,228 ****
        --  If the lock/read/write/unlock actions for this object have already
        --  been emitted in the current scope, no need to perform them anew.
  
!       if In_Transient
!         and then Contains (Scope_Stack.Table (Scope_Stack.Last)
!                              .Locked_Shared_Objects,
!                            Obj)
!       then
!          return;
        end if;
  
        Build_Full_Name (Obj, Vnm);
  
!       --  Declare a constant string to hold the name of the shared object.
!       --  Note that this must occur outside of the transient scope, as the
!       --  scope's finalizer needs to have access to this object. Also, it
!       --  appears that GIGI does not support elaborating string literal
!       --  subtypes in transient scopes.
  
        Vid := Make_Temporary (Loc, 'N', Obj);
!       Vde :=
          Make_Object_Declaration (Loc,
            Defining_Identifier => Vid,
            Constant_Present    => True,
            Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
!           Expression          => Make_String_Literal (Loc, Vnm));
! 
!       --  Already in a transient scope. Make sure that we insert Vde outside
!       --  that scope.
! 
!       if In_Transient then
!          Insert_Before_And_Analyze (Node_To_Be_Wrapped, Vde);
! 
!       --  Not in a transient scope yet: insert Vde as an action on N prior to
!       --  establishing one.
! 
!       else
!          Insert_Action (N, Vde);
!          Establish_Transient_Scope (N, Manage_Sec_Stack => False);
!       end if;
  
        --  Mark object as locked in the current (transient) scope
  
        Append_New_Elmt
!         (Obj,
!          To => Scope_Stack.Table (Scope_Stack.Last).Locked_Shared_Objects);
  
        --  First insert the Lock call before
  
!       Insert_Action (N, Build_Shared_Var_Lock_Call (RE_Shared_Var_Lock));
  
        --  Now, right after the Lock, insert a call to read the object
  
--- 161,202 ----
        --  If the lock/read/write/unlock actions for this object have already
        --  been emitted in the current scope, no need to perform them anew.
  
!       if In_Transient then
!          if Contains (Scope_Stack.Table (Current_Scope).Locked_Shared_Objects,
!                       Obj)
!          then
!             return;
!          end if;
! 
!       else
!          Establish_Transient_Scope (N, Manage_Sec_Stack => False);
        end if;
  
        Build_Full_Name (Obj, Vnm);
  
!       --  Declare a constant string to hold the name of the shared object
  
        Vid := Make_Temporary (Loc, 'N', Obj);
!       Insert_Action (N,
          Make_Object_Declaration (Loc,
            Defining_Identifier => Vid,
            Constant_Present    => True,
            Object_Definition   => New_Occurrence_Of (Standard_String, Loc),
!           Expression          => Make_String_Literal (Loc, Vnm)));
  
        --  Mark object as locked in the current (transient) scope
  
        Append_New_Elmt
!         (Obj, Scope_Stack.Table (Current_Scope).Locked_Shared_Objects);
  
        --  First insert the Lock call before
  
!       Insert_Action (N,
!         Make_Procedure_Call_Statement (Loc,
!           Name                   =>
!             New_Occurrence_Of (RTE (RE_Shared_Var_Lock), Loc),
!           Parameter_Associations =>
!             New_List (New_Occurrence_Of (Vid, Loc))));
  
        --  Now, right after the Lock, insert a call to read the object
  
*************** package body Exp_Smem is
*** 237,243 ****
  
        --  Finally insert the Unlock call
  
!       Append_To (Aft, Build_Shared_Var_Lock_Call (RE_Shared_Var_Unlock));
  
        --  Store cleanup actions in transient scope
  
--- 211,222 ----
  
        --  Finally insert the Unlock call
  
!       Append_To (Aft,
!         Make_Procedure_Call_Statement (Loc,
!           Name                   =>
!             New_Occurrence_Of (RTE (RE_Shared_Var_Unlock), Loc),
!           Parameter_Associations =>
!             New_List (New_Occurrence_Of (Vid, Loc))));
  
        --  Store cleanup actions in transient scope
  
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_smem.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_smem.ads
*** gcc-15.2.0/gcc/ada/exp_smem.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_smem.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_spark.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_spark.adb
*** gcc-15.2.0/gcc/ada/exp_spark.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_spark.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Attr;
--- 26,31 ----
*************** with Sem_Ch13;       use Sem_Ch13;
*** 52,58 ****
  with Sem_Prag;       use Sem_Prag;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 51,56 ----
*************** package body Exp_SPARK is
*** 73,78 ****
--- 71,80 ----
     procedure Expand_SPARK_N_Attribute_Reference (N : Node_Id);
     --  Perform attribute-reference-specific expansion
  
+    procedure Expand_SPARK_N_Continue_Statement (N : Node_Id);
+    --  Expand continue statements which are resolved as procedure calls, into
+    --  said procedure calls. Real continue statements are left as-is.
+ 
     procedure Expand_SPARK_N_Delta_Aggregate (N : Node_Id);
     --  Perform delta-aggregate-specific expansion
  
*************** package body Exp_SPARK is
*** 172,177 ****
--- 174,187 ----
           when N_Op_Ne =>
              Expand_SPARK_N_Op_Ne (N);
  
+          --  Resolution of type conversion relies on minimal expansion of
+          --  fixedpoint operations to insert the range check on their result.
+ 
+          when N_Op_Multiply | N_Op_Divide =>
+             if Etype (N) = Universal_Fixed then
+                Exp_Ch4.Fixup_Universal_Fixed_Operation (N);
+             end if;
+ 
           when N_Freeze_Entity =>
              --  Currently we only expand type freeze entities, so ignore other
              --  freeze entites, because it is expensive to create a suitable
*************** package body Exp_SPARK is
*** 183,188 ****
--- 193,201 ----
  
           --  In SPARK mode, no other constructs require expansion
  
+          when N_Continue_Statement =>
+             Expand_SPARK_N_Continue_Statement (N);
+ 
           when others =>
              null;
        end case;
*************** package body Exp_SPARK is
*** 427,432 ****
--- 440,462 ----
        end if;
     end Expand_SPARK_Delta_Or_Update;
  
+    ---------------------------------------
+    -- Expand_SPARK_N_Continue_Statement --
+    ---------------------------------------
+ 
+    procedure Expand_SPARK_N_Continue_Statement (N : Node_Id) is
+       X : constant Node_Id := Call_Or_Target_Loop (N);
+    begin
+       if No (X) then
+          return;
+       end if;
+ 
+       if Nkind (X) = N_Procedure_Call_Statement then
+          Replace (N, X);
+          Analyze (N);
+       end if;
+    end Expand_SPARK_N_Continue_Statement;
+ 
     ------------------------------
     -- Expand_SPARK_N_Aggregate --
     ------------------------------
*************** package body Exp_SPARK is
*** 1096,1103 ****
        Wrapper_Decl_List : List_Id;
        Wrapper_Body_List : List_Id := No_List;
  
!       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
  
     begin
--- 1126,1132 ----
        Wrapper_Decl_List : List_Id;
        Wrapper_Body_List : List_Id := No_List;
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
     begin
*************** package body Exp_SPARK is
*** 1221,1227 ****
           end if;
        end if;
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end SPARK_Freeze_Type;
  
  end Exp_SPARK;
--- 1250,1256 ----
           end if;
        end if;
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end SPARK_Freeze_Type;
  
  end Exp_SPARK;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_spark.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_spark.ads
*** gcc-15.2.0/gcc/ada/exp_spark.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_spark.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_strm.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_strm.adb
*** gcc-15.2.0/gcc/ada/exp_strm.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_strm.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,48 ****
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Exp_Util;       use Exp_Util;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
- with Rtsfind;        use Rtsfind;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
- with Uintp;          use Uintp;
  
  package body Exp_Strm is
  
--- 24,45 ----
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Exp_Util;       use Exp_Util;
+ with Mutably_Tagged; use Mutably_Tagged;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Nmake;          use Nmake;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Tbuild;         use Tbuild;
  with Ttypes;         use Ttypes;
  
  package body Exp_Strm is
  
*************** package body Exp_Strm is
*** 81,93 ****
     --  Decls and Stms are the declarations and statements for the body and
     --  The parameter Fnam is the name of the constructed function.
  
!    function Has_Stream_Standard_Rep (U_Type : Entity_Id) return Boolean;
!    --  This function is used to test the type U_Type, to determine if it has
!    --  a standard representation from a streaming point of view. Standard means
!    --  that it has a standard representation (e.g. no enumeration rep clause),
!    --  and the size of the root type is the same as the streaming size (which
!    --  is defined as value specified by a Stream_Size clause if present, or
!    --  the Esize of U_Type if not).
  
     function Make_Stream_Subprogram_Name
       (Loc : Source_Ptr;
--- 78,90 ----
     --  Decls and Stms are the declarations and statements for the body and
     --  The parameter Fnam is the name of the constructed function.
  
!    function Is_Stream_Standard_Rep
!      (U_Type : Entity_Id; S_Size : Uint) return Boolean;
!    --  This function is used to test the type U_Type, to determine whether it
!    --  would have a standard representation from a streaming point of view if
!    --  its Stream_Size attribute was set to S_Size. Standard means that it has
!    --  a standard representation (e.g. no enumeration rep clause), and the size
!    --  of the root type is the same as the stream size.
  
     function Make_Stream_Subprogram_Name
       (Loc : Source_Ptr;
*************** package body Exp_Strm is
*** 101,113 ****
     --  Loc parameter is used as the Sloc of the created entity.
  
     function Stream_Base_Type (E : Entity_Id) return Entity_Id;
!    --  Stream attributes work on the basis of the base type except for the
!    --  array case. For the array case, we do not go to the base type, but
!    --  to the first subtype if it is constrained. This avoids problems with
!    --  incorrect conversions in the packed array case. Stream_Base_Type is
!    --  exactly this function (returns the base type, unless we have an array
!    --  type whose first subtype is constrained, in which case it returns the
!    --  first subtype).
  
     --------------------------------
     -- Build_Array_Input_Function --
--- 98,107 ----
     --  Loc parameter is used as the Sloc of the created entity.
  
     function Stream_Base_Type (E : Entity_Id) return Entity_Id;
!    --  For an array type whose whose first subtype is constrained, return
!    --  the first subtype. For the internal representation type corresponding
!    --  to a mutably tagged type, return the mutably tagged type. Otherwise,
!    --  return the base type. Similar to Exp_Put_Image.Put_Image_Base_Type.
  
     --------------------------------
     -- Build_Array_Input_Function --
*************** package body Exp_Strm is
*** 438,488 ****
        Build_Array_Read_Write_Procedure (Typ, Decl, Pnam, Name_Write);
     end Build_Array_Write_Procedure;
  
!    ---------------------------------
!    -- Build_Elementary_Input_Call --
!    ---------------------------------
! 
!    function Build_Elementary_Input_Call (N : Node_Id) return Node_Id is
!       Loc     : constant Source_Ptr := Sloc (N);
!       P_Type  : constant Entity_Id  := Entity (Prefix (N));
!       U_Type  : constant Entity_Id  := Underlying_Type (P_Type);
!       Rt_Type : constant Entity_Id  := Root_Type (U_Type);
!       FST     : constant Entity_Id  := First_Subtype (U_Type);
!       Strm    : constant Node_Id    := First (Expressions (N));
!       Targ    : constant Node_Id    := Next (Strm);
!       P_Size  : constant Uint       := Get_Stream_Size (FST);
!       Res     : Node_Id;
!       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
!       --  if they have standard representation, otherwise they are treated like
!       --  any other enumeration type.
  
!       if Rt_Type = Standard_Boolean
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_I_B;
  
!       elsif Rt_Type = Standard_Character
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_I_C;
  
!       elsif Rt_Type = Standard_Wide_Character
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_I_WC;
  
!       elsif Rt_Type = Standard_Wide_Wide_Character
!         and then Has_Stream_Standard_Rep (U_Type)
        then
!          Lib_RE := RE_I_WWC;
! 
!       --  Floating point types
! 
        elsif Is_Floating_Point_Type (U_Type) then
  
           --  Question: should we use P_Size or Rt_Type to distinguish between
--- 432,470 ----
        Build_Array_Read_Write_Procedure (Typ, Decl, Pnam, Name_Write);
     end Build_Array_Write_Procedure;
  
!    function Get_Primitives
!      (P_Type : Entity_Id; P_Size : Uint) return Primitive_Result
!    is
  
!       function Prims (Input, Write : RE_Id) return Primitive_Result;
!       function Prims (Input, Write : RE_Id) return Primitive_Result is
!       begin
!          return (Primitives, 0, Input, Write);
!       end Prims;
  
!       function PSizes (L : Sizes) return Primitive_Result;
!       function PSizes (L : Sizes) return Primitive_Result is
!       begin
!          return (Possible_Sizes, L'Length, L);
!       end PSizes;
  
!       U_Type  : constant Entity_Id := Underlying_Type (P_Type);
!       FST     : constant Entity_Id := First_Subtype (U_Type);
!       Rt_Type : constant Entity_Id := Root_Type (U_Type);
  
!       Rep_Is_Standard : constant Boolean :=
!         Known_RM_Size (U_Type)
!         and then Is_Stream_Standard_Rep (U_Type, P_Size);
!    begin
!       if Rt_Type = Standard_Boolean and then Rep_Is_Standard then
!          return Prims (RE_I_B, RE_W_B);
!       elsif Rt_Type = Standard_Character and then Rep_Is_Standard then
!          return Prims (RE_I_C, RE_W_C);
!       elsif Rt_Type = Standard_Wide_Character and then Rep_Is_Standard then
!          return Prims (RE_I_WC, RE_W_WC);
!       elsif Rt_Type = Standard_Wide_Wide_Character and then Rep_Is_Standard
        then
!          return Prims (RE_I_WWC, RE_W_WWC);
        elsif Is_Floating_Point_Type (U_Type) then
  
           --  Question: should we use P_Size or Rt_Type to distinguish between
*************** package body Exp_Strm is
*** 502,524 ****
           --  To deal with these two requirements we add the special checks
           --  on equal sizes and use the root type to distinguish.
  
!          if P_Size <= Standard_Short_Float_Size
             and then (Standard_Short_Float_Size /= Standard_Float_Size
                       or else Rt_Type = Standard_Short_Float)
           then
!             Lib_RE := RE_I_SF;
  
!          elsif P_Size <= Standard_Float_Size then
!             Lib_RE := RE_I_F;
  
!          elsif P_Size <= Standard_Long_Float_Size
             and then (Standard_Long_Float_Size /= Standard_Long_Long_Float_Size
!                        or else Rt_Type = Standard_Long_Float)
           then
!             Lib_RE := RE_I_LF;
  
           else
!             Lib_RE := RE_I_LLF;
           end if;
  
        --  Signed integer types. Also includes signed fixed-point types and
--- 484,521 ----
           --  To deal with these two requirements we add the special checks
           --  on equal sizes and use the root type to distinguish.
  
!          if P_Size = Standard_Short_Float_Size
             and then (Standard_Short_Float_Size /= Standard_Float_Size
                       or else Rt_Type = Standard_Short_Float)
           then
!             return Prims (RE_I_SF, RE_W_SF);
  
!          elsif P_Size = Standard_Float_Size then
!             return Prims (RE_I_F, RE_W_F);
  
!          elsif P_Size = Standard_Long_Float_Size
             and then (Standard_Long_Float_Size /= Standard_Long_Long_Float_Size
!                      or else Rt_Type = Standard_Long_Float)
           then
!             return Prims (RE_I_LF, RE_W_LF);
  
+          elsif Is_IEEE_Extended_Precision (U_Type) then
+             --  For 80-bit IEEE extended precision values, we use a special
+             --  write routine that sets the unused bytes to zero. The reason
+             --  why we don't set Stream_Size to 80 and stream only the
+             --  meaningful bits is that the user is allowed to select the XDR
+             --  implementation of streaming at bind time, and XDR does not
+             --  allow 80 bits floating point values.
+             return Prims (RE_I_LLF, RE_W_80IEEE);
+          elsif P_Size = Standard_Long_Long_Float_Size then
+             return Prims (RE_I_LLF, RE_W_LLF);
           else
!             return
!               PSizes
!                 ((Standard_Short_Float_Size,
!                   Standard_Float_Size,
!                   Standard_Long_Float_Size,
!                   Standard_Long_Long_Float_Size));
           end if;
  
        --  Signed integer types. Also includes signed fixed-point types and
*************** package body Exp_Strm is
*** 550,584 ****
          --  The following set of tests gets repeated many times, we should
          --  have an abstraction defined ???
  
!         and then
!           (Is_Fixed_Point_Type (U_Type)
!              or else
!            Is_Enumeration_Type (U_Type)
!              or else
!            (Is_Signed_Integer_Type (U_Type)
!               and then not Has_Biased_Representation (FST)))
  
        then
!          if P_Size <= Standard_Short_Short_Integer_Size then
!             Lib_RE := RE_I_SSI;
  
!          elsif P_Size <= Standard_Short_Integer_Size then
!             Lib_RE := RE_I_SI;
  
           elsif P_Size = 24 then
!             Lib_RE := RE_I_I24;
  
!          elsif P_Size <= Standard_Integer_Size then
!             Lib_RE := RE_I_I;
  
!          elsif P_Size <= Standard_Long_Integer_Size then
!             Lib_RE := RE_I_LI;
  
!          elsif P_Size <= Standard_Long_Long_Integer_Size then
!             Lib_RE := RE_I_LLI;
  
           else
!             Lib_RE := RE_I_LLLI;
           end if;
  
        --  Unsigned integer types, also includes unsigned fixed-point types
--- 547,588 ----
          --  The following set of tests gets repeated many times, we should
          --  have an abstraction defined ???
  
!         and then (Is_Fixed_Point_Type (U_Type)
!                   or else Is_Enumeration_Type (U_Type)
!                   or else (Is_Signed_Integer_Type (U_Type)
!                            and then not Has_Biased_Representation (FST)))
  
        then
!          if P_Size = Standard_Short_Short_Integer_Size then
!             return Prims (RE_I_SSI, RE_W_SSI);
  
!          elsif P_Size = Standard_Short_Integer_Size then
!             return Prims (RE_I_SI, RE_W_SI);
  
           elsif P_Size = 24 then
!             return Prims (RE_I_I24, RE_W_I24);
  
!          elsif P_Size = Standard_Integer_Size then
!             return Prims (RE_I_I, RE_W_I);
  
!          elsif P_Size = Standard_Long_Integer_Size then
!             return Prims (RE_I_LI, RE_W_LI);
  
!          elsif P_Size = Standard_Long_Long_Integer_Size then
!             return Prims (RE_I_LLI, RE_W_LLI);
  
+          elsif P_Size = Standard_Long_Long_Long_Integer_Size then
+             return Prims (RE_I_LLLI, RE_W_LLLI);
           else
!             return
!               PSizes
!                 ((Standard_Short_Short_Integer_Size,
!                   Standard_Short_Integer_Size,
!                   24,
!                   Standard_Integer_Size,
!                   Standard_Long_Integer_Size,
!                   Standard_Long_Long_Integer_Size,
!                   Standard_Long_Long_Long_Integer_Size));
           end if;
  
        --  Unsigned integer types, also includes unsigned fixed-point types
*************** package body Exp_Strm is
*** 588,628 ****
        --  Also includes signed integer types that are unsigned in the sense
        --  that they do not include negative numbers. See above for details.
  
!       elsif Is_Modular_Integer_Type    (U_Type)
!         or else Is_Fixed_Point_Type    (U_Type)
!         or else Is_Enumeration_Type    (U_Type)
          or else Is_Signed_Integer_Type (U_Type)
        then
!          if P_Size <= Standard_Short_Short_Integer_Size then
!             Lib_RE := RE_I_SSU;
  
!          elsif P_Size <= Standard_Short_Integer_Size then
!             Lib_RE := RE_I_SU;
  
           elsif P_Size = 24 then
!             Lib_RE := RE_I_U24;
  
!          elsif P_Size <= Standard_Integer_Size then
!             Lib_RE := RE_I_U;
  
!          elsif P_Size <= Standard_Long_Integer_Size then
!             Lib_RE := RE_I_LU;
  
!          elsif P_Size <= Standard_Long_Long_Integer_Size then
!             Lib_RE := RE_I_LLU;
  
           else
!             Lib_RE := RE_I_LLLU;
           end if;
  
        else pragma Assert (Is_Access_Type (U_Type));
           if Present (P_Size) and then P_Size > System_Address_Size then
!             Lib_RE := RE_I_AD;
           else
!             Lib_RE := RE_I_AS;
           end if;
        end if;
  
        --  Call the function, and do an unchecked conversion of the result
        --  to the actual type of the prefix. If the target is a discriminant,
        --  and we are in the body of the default implementation of a 'Read
--- 592,665 ----
        --  Also includes signed integer types that are unsigned in the sense
        --  that they do not include negative numbers. See above for details.
  
!       elsif Is_Modular_Integer_Type (U_Type)
!         or else Is_Fixed_Point_Type (U_Type)
!         or else Is_Enumeration_Type (U_Type)
          or else Is_Signed_Integer_Type (U_Type)
        then
!          if P_Size = Standard_Short_Short_Integer_Size then
!             return Prims (RE_I_SSU, RE_W_SSU);
  
!          elsif P_Size = Standard_Short_Integer_Size then
!             return Prims (RE_I_SU, RE_W_SU);
  
           elsif P_Size = 24 then
!             return Prims (RE_I_U24, RE_W_U24);
  
!          elsif P_Size = Standard_Integer_Size then
!             return Prims (RE_I_U, RE_W_U);
  
!          elsif P_Size = Standard_Long_Integer_Size then
!             return Prims (RE_I_LU, RE_W_LU);
  
!          elsif P_Size = Standard_Long_Long_Integer_Size then
!             return Prims (RE_I_LLU, RE_W_LLU);
! 
!          elsif P_Size = Standard_Long_Long_Long_Integer_Size then
!             return Prims (RE_I_LLLU, RE_W_LLLU);
  
           else
!             return
!               PSizes
!                 ((Standard_Short_Short_Integer_Size,
!                   Standard_Short_Integer_Size,
!                   24,
!                   Standard_Integer_Size,
!                   Standard_Long_Integer_Size,
!                   Standard_Long_Long_Integer_Size,
!                   Standard_Long_Long_Long_Integer_Size));
           end if;
  
        else pragma Assert (Is_Access_Type (U_Type));
           if Present (P_Size) and then P_Size > System_Address_Size then
!             return Prims (RE_I_AD, RE_W_AD);
           else
!             return Prims (RE_I_AS, RE_W_AS);
           end if;
        end if;
+    end Get_Primitives;
+ 
+    ---------------------------------
+    -- Build_Elementary_Input_Call --
+    ---------------------------------
+ 
+    function Build_Elementary_Input_Call (N : Node_Id) return Node_Id is
+       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);
+       Strm    : constant Node_Id    := First (Expressions (N));
+       Targ    : constant Node_Id    := Next (Strm);
+       P_Size  : constant Uint       := Get_Stream_Size (FST);
+       Res     : Node_Id;
+ 
+       Prims : constant Primitive_Result := Get_Primitives (P_Type, P_Size);
  
+       Lib_RE : constant RE_Id :=
+         (case Prims.S is
+            when Primitives => Prims.Input,
+            when others => raise Program_Error);
+    begin
        --  Call the function, and do an unchecked conversion of the result
        --  to the actual type of the prefix. If the target is a discriminant,
        --  and we are in the body of the default implementation of a 'Read
*************** package body Exp_Strm is
*** 681,871 ****
  
     function Build_Elementary_Write_Call (N : Node_Id) return Node_Id is
        Loc     : constant Source_Ptr := Sloc (N);
!       P_Type  : constant Entity_Id  := Entity (Prefix (N));
!       U_Type  : constant Entity_Id  := Underlying_Type (P_Type);
!       Rt_Type : constant Entity_Id  := Root_Type (U_Type);
!       FST     : constant Entity_Id  := First_Subtype (U_Type);
!       Strm    : constant Node_Id    := First (Expressions (N));
!       Item    : constant Node_Id    := Next (Strm);
!       P_Size  : Uint;
!       Lib_RE  : RE_Id;
        Libent  : Entity_Id;
  
!    begin
!       --  Compute the size of the stream element. This is either the size of
!       --  the first subtype or if given the size of the Stream_Size attribute.
! 
!       if Has_Stream_Size_Clause (FST) then
!          P_Size := Static_Integer (Expression (Stream_Size_Clause (FST)));
!       else
!          P_Size := Esize (FST);
!       end if;
! 
!       --  Find the routine to be called
! 
!       --  Check for First 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
!       --  if they have standard representation, otherwise they are treated like
!       --  any other enumeration type.
! 
!       if Rt_Type = Standard_Boolean
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_W_B;
! 
!       elsif Rt_Type = Standard_Character
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_W_C;
! 
!       elsif Rt_Type = Standard_Wide_Character
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_W_WC;
! 
!       elsif Rt_Type = Standard_Wide_Wide_Character
!         and then Has_Stream_Standard_Rep (U_Type)
!       then
!          Lib_RE := RE_W_WWC;
! 
!       --  Floating point types
! 
!       elsif Is_Floating_Point_Type (U_Type) then
! 
!          --  Question: should we use P_Size or Rt_Type to distinguish between
!          --  possible floating point types? If a non-standard size or a stream
!          --  size is specified, then we should certainly use the size. But if
!          --  we have two types the same (notably Short_Float_Size = Float_Size
!          --  which is close to universally true, and Long_Long_Float_Size =
!          --  Long_Float_Size, true on most targets except the x86), then we
!          --  would really rather use the root type, so that if people want to
!          --  fiddle with System.Stream_Attributes to get inter-target portable
!          --  streams, they get the size they expect. Consider in particular the
!          --  case of a stream written on an x86, with 96-bit Long_Long_Float
!          --  being read into a non-x86 target with 64 bit Long_Long_Float. A
!          --  special version of System.Stream_Attributes can deal with this
!          --  provided the proper type is always used.
! 
!          --  To deal with these two requirements we add the special checks
!          --  on equal sizes and use the root type to distinguish.
! 
!          if P_Size <= Standard_Short_Float_Size
!            and then (Standard_Short_Float_Size /= Standard_Float_Size
!                       or else Rt_Type = Standard_Short_Float)
!          then
!             Lib_RE := RE_W_SF;
! 
!          elsif P_Size <= Standard_Float_Size then
!             Lib_RE := RE_W_F;
! 
!          elsif P_Size <= Standard_Long_Float_Size
!            and then (Standard_Long_Float_Size /= Standard_Long_Long_Float_Size
!                       or else Rt_Type = Standard_Long_Float)
!          then
!             Lib_RE := RE_W_LF;
! 
!          else
!             Lib_RE := RE_W_LLF;
!          end if;
! 
!       --  Signed integer types. Also includes signed fixed-point types and
!       --  signed enumeration types share this circuitry.
! 
!       --  Note on signed integer types. We do not consider types as signed for
!       --  this purpose if they have no negative numbers, or if they have biased
!       --  representation. The reason is that the value in either case basically
!       --  represents an unsigned value.
! 
!       --  For example, consider:
! 
!       --     type W is range 0 .. 2**32 - 1;
!       --     for W'Size use 32;
! 
!       --  This is a signed type, but the representation is unsigned, and may
!       --  be outside the range of a 32-bit signed integer, so this must be
!       --  treated as 32-bit unsigned.
! 
!       --  Similarly, the representation is also unsigned if we have:
! 
!       --     type W is range -1 .. +254;
!       --     for W'Size use 8;
! 
!       --  forcing a biased and unsigned representation
! 
!       elsif not Is_Unsigned_Type (FST)
!         and then
!           (Is_Fixed_Point_Type (U_Type)
!              or else
!            Is_Enumeration_Type (U_Type)
!              or else
!            (Is_Signed_Integer_Type (U_Type)
!               and then not Has_Biased_Representation (FST)))
!       then
!          if P_Size <= Standard_Short_Short_Integer_Size then
!             Lib_RE := RE_W_SSI;
! 
!          elsif P_Size <= Standard_Short_Integer_Size then
!             Lib_RE := RE_W_SI;
! 
!          elsif P_Size = 24 then
!             Lib_RE := RE_W_I24;
! 
!          elsif P_Size <= Standard_Integer_Size then
!             Lib_RE := RE_W_I;
! 
!          elsif P_Size <= Standard_Long_Integer_Size then
!             Lib_RE := RE_W_LI;
! 
!          elsif P_Size <= Standard_Long_Long_Integer_Size then
!             Lib_RE := RE_W_LLI;
! 
!          else
!             Lib_RE := RE_W_LLLI;
!          end if;
! 
!       --  Unsigned integer types, also includes unsigned fixed-point types
!       --  and unsigned enumeration types (note we know they are unsigned
!       --  because we already tested for signed above).
! 
!       --  Also includes signed integer types that are unsigned in the sense
!       --  that they do not include negative numbers. See above for details.
! 
!       elsif Is_Modular_Integer_Type    (U_Type)
!         or else Is_Fixed_Point_Type    (U_Type)
!         or else Is_Enumeration_Type    (U_Type)
!         or else Is_Signed_Integer_Type (U_Type)
!       then
!          if P_Size <= Standard_Short_Short_Integer_Size then
!             Lib_RE := RE_W_SSU;
! 
!          elsif P_Size <= Standard_Short_Integer_Size then
!             Lib_RE := RE_W_SU;
! 
!          elsif P_Size = 24 then
!             Lib_RE := RE_W_U24;
! 
!          elsif P_Size <= Standard_Integer_Size then
!             Lib_RE := RE_W_U;
! 
!          elsif P_Size <= Standard_Long_Integer_Size then
!             Lib_RE := RE_W_LU;
! 
!          elsif P_Size <= Standard_Long_Long_Integer_Size then
!             Lib_RE := RE_W_LLU;
! 
!          else
!             Lib_RE := RE_W_LLLU;
!          end if;
! 
!       else pragma Assert (Is_Access_Type (U_Type));
  
!          if Present (P_Size) and then P_Size > System_Address_Size then
!             Lib_RE := RE_W_AD;
!          else
!             Lib_RE := RE_W_AS;
!          end if;
!       end if;
  
        --  Unchecked-convert parameter to the required type (i.e. the type of
        --  the corresponding parameter, and call the appropriate routine.
--- 718,739 ----
  
     function Build_Elementary_Write_Call (N : Node_Id) return Node_Id is
        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);
!       Strm    : constant Node_Id := First (Expressions (N));
!       Item    : constant Node_Id := Next (Strm);
!       P_Size  : constant Uint := Get_Stream_Size (FST);
        Libent  : Entity_Id;
  
!       Prims : constant Primitive_Result := Get_Primitives (P_Type, P_Size);
  
!       Lib_RE : constant RE_Id :=
!         (case Prims.S is
!            when Primitives => Prims.Write,
!            when others => raise Program_Error);
!    begin
!       pragma Assert (Prims.S = Primitives);
  
        --  Unchecked-convert parameter to the required type (i.e. the type of
        --  the corresponding parameter, and call the appropriate routine.
*************** package body Exp_Strm is
*** 873,884 ****
        Libent := RTE (Lib_RE);
  
        return
!         Make_Procedure_Call_Statement (Loc,
!           Name => New_Occurrence_Of (Libent, Loc),
!           Parameter_Associations => New_List (
!             Relocate_Node (Strm),
!             Unchecked_Convert_To (Etype (Next_Formal (First_Formal (Libent))),
!               Relocate_Node (Item))));
     end Build_Elementary_Write_Call;
  
     -----------------------------------------
--- 741,755 ----
        Libent := RTE (Lib_RE);
  
        return
!         Make_Procedure_Call_Statement
!           (Loc,
!            Name                   => New_Occurrence_Of (Libent, Loc),
!            Parameter_Associations =>
!              New_List
!                (Relocate_Node (Strm),
!                 Unchecked_Convert_To
!                   (Etype (Next_Formal (First_Formal (Libent))),
!                    Relocate_Node (Item))));
     end Build_Elementary_Write_Call;
  
     -----------------------------------------
*************** package body Exp_Strm is
*** 1502,1507 ****
--- 1373,1379 ----
  
        function Make_Field_Attribute (C : Entity_Id) return Node_Id is
           Field_Typ : constant Entity_Id := Stream_Base_Type (Etype (C));
+          Selected  : Node_Id;
  
           TSS_Names : constant array (Name_Input .. Name_Write) of
                         TSS_Name_Type :=
*************** package body Exp_Strm is
*** 1524,1538 ****
              return Make_Null_Statement (Loc);
           end if;
  
           return
             Make_Attribute_Reference (Loc,
               Prefix         => New_Occurrence_Of (Field_Typ, Loc),
               Attribute_Name => Nam,
!              Expressions    => New_List (
!                Make_Identifier (Loc, Name_S),
!                Make_Selected_Component (Loc,
!                  Prefix        => Make_Identifier (Loc, Name_V),
!                  Selector_Name => New_Occurrence_Of (C, Loc))));
        end Make_Field_Attribute;
  
        ---------------------------
--- 1396,1418 ----
              return Make_Null_Statement (Loc);
           end if;
  
+          Selected := Make_Selected_Component (Loc,
+                        Prefix        => Make_Identifier (Loc, Name_V),
+                        Selector_Name => New_Occurrence_Of (C, Loc));
+ 
+          if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (C)) then
+             Make_Mutably_Tagged_Conversion
+               (Selected,
+                Typ => Get_Corresponding_Mutably_Tagged_Type_If_Present
+                         (Etype (C)));
+          end if;
+ 
           return
             Make_Attribute_Reference (Loc,
               Prefix         => New_Occurrence_Of (Field_Typ, Loc),
               Attribute_Name => Nam,
!              Expressions    => New_List (Make_Identifier (Loc, Name_S),
!                                          Selected));
        end Make_Field_Attribute;
  
        ---------------------------
*************** package body Exp_Strm is
*** 1759,1780 ****
     -- Has_Stream_Standard_Rep --
     -----------------------------
  
!    function Has_Stream_Standard_Rep (U_Type : Entity_Id) return Boolean is
!       Siz : Uint;
! 
     begin
        if Has_Non_Standard_Rep (U_Type) then
           return False;
        end if;
  
!       if Has_Stream_Size_Clause (U_Type) then
!          Siz := Static_Integer (Expression (Stream_Size_Clause (U_Type)));
!       else
!          Siz := Esize (First_Subtype (U_Type));
!       end if;
! 
!       return Siz = Esize (Root_Type (U_Type));
!    end Has_Stream_Standard_Rep;
  
     ---------------------------------
     -- Make_Stream_Subprogram_Name --
--- 1639,1653 ----
     -- Has_Stream_Standard_Rep --
     -----------------------------
  
!    function Is_Stream_Standard_Rep
!      (U_Type : Entity_Id; S_Size : Uint) return Boolean is
     begin
        if Has_Non_Standard_Rep (U_Type) then
           return False;
        end if;
  
!       return S_Size = Esize (Root_Type (U_Type));
!    end Is_Stream_Standard_Rep;
  
     ---------------------------------
     -- Make_Stream_Subprogram_Name --
*************** package body Exp_Strm is
*** 1808,1813 ****
--- 1681,1690 ----
  
     function Stream_Base_Type (E : Entity_Id) return Entity_Id is
     begin
+       if Is_Class_Wide_Equivalent_Type (E) then
+          return Corresponding_Mutably_Tagged_Type (E);
+       end if;
+ 
        if Is_Array_Type (E)
          and then Is_First_Subtype (E)
        then
*************** package body Exp_Strm is
*** 1816,1820 ****
           return Base_Type (E);
        end if;
     end Stream_Base_Type;
- 
  end Exp_Strm;
--- 1693,1696 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_strm.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_strm.ads
*** gcc-15.2.0/gcc/ada/exp_strm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_strm.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
--- 26,34 ----
  --  Routines to build stream subprograms for composite types
  
  with Exp_Tss; use Exp_Tss;
+ with Rtsfind; use Rtsfind;
  with Types;   use Types;
+ with Uintp;          use Uintp;
  
  package Exp_Strm is
  
*************** package Exp_Strm is
*** 138,141 ****
--- 140,171 ----
     --  always null), and Pnam is the name of the constructed procedure.
     --  Used by Exp_Dist to generate stream-oriented attributes for RACWs.
  
+    type Status is (Primitives, Possible_Sizes);
+ 
+    type Sizes is array (Positive range <>) of Nat;
+ 
+    type Primitive_Result
+      (S   : Status;
+       Len : Natural)
+    is record
+       case S is
+          when Primitives =>
+             Input : RE_Id;
+             Write : RE_Id;
+ 
+          when Possible_Sizes =>
+             List : Sizes (1 .. Len);
+       end case;
+    end record;
+ 
+    --------------------
+    -- Get_Primitives --
+    --------------------
+ 
+    function Get_Primitives
+      (P_Type : Entity_Id; P_Size : Uint) return Primitive_Result;
+    --  If P_Type supports a stream size of P_Size, returns the corresponding
+    --  input and write primitives. Otherwise, returns a list of the stream
+    --  sizes P_Type supports, in nondecreasing order and with possible
+    --  duplicates.
  end Exp_Strm;
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_tss.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_tss.adb
*** gcc-15.2.0/gcc/ada/exp_tss.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_tss.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Rident;         use Rident;
*** 36,42 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Ch6;        use Sem_Ch6;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  
  package body Exp_Tss is
--- 35,40 ----
*************** package body Exp_Tss is
*** 504,516 ****
        Subp : Entity_Id;
  
     begin
!       if No (FN) then
!          return Empty;
! 
!       elsif No (TSS_Elist (FN)) then
!          return Empty;
! 
!       else
           Elmt := First_Elmt (TSS_Elist (FN));
           while Present (Elmt) loop
              if Is_TSS (Node (Elmt), Nam) then
--- 502,510 ----
        Subp : Entity_Id;
  
     begin
!       if Present (FN)
!         and then Present (TSS_Elist (FN))
!       then
           Elmt := First_Elmt (TSS_Elist (FN));
           while Present (Elmt) loop
              if Is_TSS (Node (Elmt), Nam) then
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_tss.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_tss.ads
*** gcc-15.2.0/gcc/ada/exp_tss.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_tss.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_unst.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_unst.adb
*** gcc-15.2.0/gcc/ada/exp_unst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_unst.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Sem_Ch8;        use Sem_Ch8;
*** 42,48 ****
  with Sem_Mech;       use Sem_Mech;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 41,46 ----
*************** package body Exp_Unst is
*** 220,225 ****
--- 218,225 ----
           else
              Lev := Lev + 1;
              S   := Enclosing_Subprogram (S);
+ 
+             pragma Assert (Present (S));
           end if;
        end loop;
     end Get_Level;
*************** package body Exp_Unst is
*** 2305,2312 ****
              end if;
           end Adjust_One_Call;
        end loop Adjust_Calls;
- 
-       return;
     end Unnest_Subprogram;
  
     ------------------------
--- 2305,2310 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_unst.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_unst.ads
*** gcc-15.2.0/gcc/ada/exp_unst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_unst.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_util.adb gcc-16.1.0-RC-20260423/gcc/ada/exp_util.adb
*** gcc-15.2.0/gcc/ada/exp_util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_util.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 28,34 ****
  with Casing;         use Casing;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Elists;         use Elists;
  with Errout;         use Errout;
--- 28,33 ----
*************** package body Exp_Util is
*** 638,643 ****
--- 637,659 ----
                 end if;
  
              else
+                --  For GNAT objects with indefinite nominal subtypes will have
+                --  an itype constrained by their initialization expression
+                --  (except for class-wide type). For GNATprove, those objects
+                --  will keep their nominal subtype unconstrained, while
+                --  actually those objects are constrained; see call from
+                --  Analyze_Object_Declaration to Expand_Subtype_From_Expr.
+ 
+                if Ekind (Ent) in E_Constant | E_Variable
+                   and then not Is_Definite_Subtype (Etype (Ent))
+                   and then not Is_Class_Wide_Type (Etype (Ent))
+                   and then No (Renamed_Object (Ent))
+                then
+                   pragma Assert
+                     (GNATprove_Mode
+                      and then Present (Expression (Parent (Ent))));
+                   return True;
+                end if;
  
                 --  If the prefix is not a variable or is aliased, then
                 --  definitely true; if it's a formal parameter without an
*************** package body Exp_Util is
*** 971,993 ****
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
!          Alloc_Expr   : Node_Id := Empty;
           Fin_Coll_Id  : Entity_Id;
           Proc_To_Call : Entity_Id;
           Ptr_Coll_Id  : Entity_Id;
!          Subpool      : Node_Id := Empty;
  
        begin
!          --  When we are building an allocator procedure, extract the allocator
!          --  node for later processing and calculation of alignment.
! 
!          if Is_Allocate then
!             --  Extract the qualified expression if there is one from the
!             --  allocator.
  
!             if Nkind (Expression (Expr)) = N_Qualified_Expression then
!                Alloc_Expr := Expression (Expr);
!             end if;
           end if;
  
           --  Step 1: Construct all the actuals for the call to library routine
--- 987,1008 ----
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
!          Alloc_Expr   : Node_Id;
           Fin_Coll_Id  : Entity_Id;
           Proc_To_Call : Entity_Id;
           Ptr_Coll_Id  : Entity_Id;
!          Subpool      : Node_Id;
  
        begin
!          --  When we are building an allocator procedure, extract the qualified
!          --  expression from the allocator if there is one.
  
!          if Is_Allocate
!            and then Nkind (Expression (Expr)) = N_Qualified_Expression
!          then
!             Alloc_Expr := Expression (Expr);
!          else
!             Alloc_Expr := Empty;
           end if;
  
           --  Step 1: Construct all the actuals for the call to library routine
*************** package body Exp_Util is
*** 1001,1015 ****
  
              --  b) Subpool
  
!             if Nkind (Expr) = N_Allocator then
!                Subpool := Subpool_Handle_Name (Expr);
!             end if;
  
              --  If a subpool is present it can be an arbitrary name, so make
              --  the actual by copying the tree.
  
              if Present (Subpool) then
!                Append_To (Actuals, New_Copy_Tree (Subpool, New_Sloc => Loc));
              else
                 Append_To (Actuals, Make_Null (Loc));
              end if;
--- 1016,1029 ----
  
              --  b) Subpool
  
!             Subpool := Subpool_Handle_Name (Expr);
  
              --  If a subpool is present it can be an arbitrary name, so make
              --  the actual by copying the tree.
  
              if Present (Subpool) then
!                Append_To
!                  (Actuals, New_Copy_Tree (Subpool, New_Scope => Proc_Id));
              else
                 Append_To (Actuals, Make_Null (Loc));
              end if;
*************** package body Exp_Util is
*** 1531,1562 ****
                    Ctrl_Type : constant Entity_Id
                      := Find_Dispatching_Type (Par_Subp);
  
!                   function Call_To_Parent_Dispatching_Op_Must_Be_Mapped
!                     (Call_Node : Node_Id) return Boolean;
                    --  If Call_Node is a call to a primitive function F of the
                    --  tagged type T associated with Par_Subp that either has
!                   --  any actuals that are controlling formals of Par_Subp,
                    --  or else the call to F is an actual parameter of an
                    --  enclosing call to a primitive of T that has any actuals
!                   --  that are controlling formals of Par_Subp (and recursively
!                   --  up the tree of enclosing function calls), returns True;
!                   --  otherwise returns False. Returning True implies that the
!                   --  call to F must be mapped to a call that instead targets
!                   --  the corresponding function F of the tagged type for which
!                   --  Subp is a primitive function.
  
!                   --------------------------------------------------
!                   -- Call_To_Parent_Dispatching_Op_Must_Be_Mapped --
!                   --------------------------------------------------
  
!                   function Call_To_Parent_Dispatching_Op_Must_Be_Mapped
!                     (Call_Node : Node_Id) return Boolean
                    is
                       pragma Assert (Nkind (Call_Node) = N_Function_Call);
  
                       Actual           : Node_Id := First_Actual (Call_Node);
!                      Actual_Type      : Entity_Id;
!                      Actual_Or_Prefix : Node_Id;
  
                    begin
                       if Is_Entity_Name (Name (Call_Node))
--- 1545,1681 ----
                    Ctrl_Type : constant Entity_Id
                      := Find_Dispatching_Type (Par_Subp);
  
!                   function Must_Map_Call_To_Parent_Primitive
!                     (Call_Node     : Node_Id;
!                      Check_Parents : Boolean := True) return Boolean;
                    --  If Call_Node is a call to a primitive function F of the
                    --  tagged type T associated with Par_Subp that either has
!                   --  any actuals that involve controlling formals of Par_Subp,
                    --  or else the call to F is an actual parameter of an
                    --  enclosing call to a primitive of T that has any actuals
!                   --  that involve controlling formals of Par_Subp (and
!                   --  recursively up the tree of enclosing function calls),
!                   --  returns True; otherwise returns False. Returning True
!                   --  implies that the call to F must be mapped to a call
!                   --  that instead targets the corresponding function F of
!                   --  the tagged type for which Subp is a primitive function.
!                   --  Checks_Parent specifies whether this function should
!                   --  recursively check enclosing calls.
  
!                   ---------------------------------------
!                   -- Must_Map_Call_To_Parent_Primitive --
!                   ---------------------------------------
  
!                   function Must_Map_Call_To_Parent_Primitive
!                     (Call_Node     : Node_Id;
!                      Check_Parents : Boolean := True) return Boolean
                    is
                       pragma Assert (Nkind (Call_Node) = N_Function_Call);
  
                       Actual           : Node_Id := First_Actual (Call_Node);
! 
!                      function Expr_Has_Ctrl_Formal_Ref
!                        (Expr : Node_Id) return Boolean;
!                      --  Determines whether Expr is or contains a reference
!                      --  to a controlling formal and returns True if so. More
!                      --  specifically, if Expr is not directly a reference
!                      --  to a formal, it can be an access attribute or Old
!                      --  attribute whose immediate object prefix is such
!                      --  a reference (possibly through a chain of multiple
!                      --  such attributes); or else it can be a dereference
!                      --  of a controlling formal; or else it can be either
!                      --  a dependent expression of a conditional expression,
!                      --  or the expression of a declare expression that
!                      --  qualifies as such. Returns True if the expression
!                      --  satisifies one of those requirements; otherwise
!                      --  returns False.
! 
!                      ------------------------------
!                      -- Expr_Has_Ctrl_Formal_Ref --
!                      ------------------------------
! 
!                      function Expr_Has_Ctrl_Formal_Ref
!                        (Expr : Node_Id) return Boolean
!                      is
! 
!                         function Is_Controlling_Formal_Ref
!                           (N : Node_Id) return Boolean;
!                         --  Returns True if and only if N denotes a reference
!                         --  to a controlling formal declared for Par_Subp, or
!                         --  Subp as formals may have been rewritten before the
!                         --  test happens.
! 
!                         -------------------------------
!                         -- Is_Controlling_Formal_Ref --
!                         -------------------------------
! 
!                         function Is_Controlling_Formal_Ref
!                           (N : Node_Id) return Boolean
!                         is
!                         begin
!                            return Nkind (N) in N_Identifier | N_Expanded_Name
!                              and then Is_Formal (Entity (N))
!                              and then Is_Controlling_Formal (Entity (N))
!                              and then Scope (Entity (N)) in Par_Subp | Subp;
!                         end Is_Controlling_Formal_Ref;
! 
!                      --  Start of processing for Expr_Has_Ctrl_Formal_Ref
! 
!                      begin
!                         if (Nkind (Expr) = N_Attribute_Reference
!                              and then Attribute_Name (Expr)
!                                         in Name_Old
!                                          | Name_Access
!                                          | Name_Unchecked_Access
!                                          | Name_Unrestricted_Access)
!                           or else Nkind (Expr) = N_Explicit_Dereference
!                         then
!                            return Expr_Has_Ctrl_Formal_Ref (Prefix (Expr));
! 
!                         elsif Nkind (Expr) = N_If_Expression then
!                            declare
!                               Then_Expr : constant Node_Id :=
!                                 Pick (Expressions (Expr), 2);
!                               Else_Expr : constant Node_Id :=
!                                 Pick (Expressions (Expr), 3);
!                            begin
!                               return Expr_Has_Ctrl_Formal_Ref (Then_Expr)
!                                 or else Expr_Has_Ctrl_Formal_Ref (Else_Expr);
!                            end;
! 
!                         elsif Nkind (Expr) = N_Case_Expression then
!                            declare
!                               Case_Expr_Alt : Node_Id :=
!                                 First (Alternatives (Expr));
!                            begin
!                               while Present (Case_Expr_Alt) loop
!                                  if Expr_Has_Ctrl_Formal_Ref
!                                       (Expression (Case_Expr_Alt))
!                                  then
!                                     return True;
!                                  end if;
! 
!                                  Next (Case_Expr_Alt);
!                               end loop;
!                            end;
! 
!                            return False;
! 
!                         --  Case of a declare_expression
! 
!                         elsif Nkind (Expr) = N_Expression_With_Actions
!                           and then Comes_From_Source (Expr)
!                         then
!                            return Expr_Has_Ctrl_Formal_Ref (Expression (Expr));
! 
!                         --  All other cases must be references to a formal
! 
!                         else
!                            return Is_Controlling_Formal_Ref (Expr);
!                         end if;
!                      end Expr_Has_Ctrl_Formal_Ref;
! 
!                   --  Start of processing for Must_Map_Call_To_Parent_Primitive
  
                    begin
                       if Is_Entity_Name (Name (Call_Node))
*************** package body Exp_Util is
*** 1570,1615 ****
                       then
                          while Present (Actual) loop
  
!                            --  Account for 'Old and explicit dereferences,
!                            --  picking up the prefix object in those cases.
! 
!                            if (Nkind (Actual) = N_Attribute_Reference
!                                 and then Attribute_Name (Actual) = Name_Old)
!                              or else Nkind (Actual) = N_Explicit_Dereference
!                            then
!                               Actual_Or_Prefix := Prefix (Actual);
!                            else
!                               Actual_Or_Prefix := Actual;
!                            end if;
  
!                            Actual_Type := Etype (Actual);
  
!                            if Is_Anonymous_Access_Type (Actual_Type) then
!                               Actual_Type := Designated_Type (Actual_Type);
!                            end if;
  
!                            if Nkind (Actual_Or_Prefix)
!                                 in N_Identifier
!                                  | N_Expanded_Name
!                                  | N_Operator_Symbol
  
!                              and then Is_Formal (Entity (Actual_Or_Prefix))
  
!                              and then Covers (Ctrl_Type, Actual_Type)
                             then
-                               --  At least one actual is a formal parameter of
-                               --  Par_Subp with type Ctrl_Type.
- 
                                return True;
                             end if;
  
                             Next_Actual (Actual);
                          end loop;
  
!                         if Nkind (Parent (Call_Node)) = N_Function_Call then
!                            return
!                              Call_To_Parent_Dispatching_Op_Must_Be_Mapped
!                                (Parent (Call_Node));
                          end if;
  
                          return False;
--- 1689,1740 ----
                       then
                          while Present (Actual) loop
  
!                            --  If at least one actual references a controlling
!                            --  formal parameter of a class-wide Pre/Post
!                            --  aspect's associated subprogram (including
!                            --  a direct prefix of an access attribute or
!                            --  dereference), the rule in RM 6.1.1(7) applies,
!                            --  and we want to map the call to target the
!                            --  corresponding function of the derived type.
  
!                            if Expr_Has_Ctrl_Formal_Ref (Actual) then
!                               return True;
  
!                            --  RM 6.1.1(7) also applies to Result attributes
!                            --  of primitive functions with controlling results.
  
!                            elsif Is_Attribute_Result (Actual)
!                              and then Has_Controlling_Result (Subp)
!                            then
!                               return True;
  
!                            --  Recursively check any actuals that are function
!                            --  calls with controlling results.
  
!                            elsif Nkind (Actual) = N_Function_Call
!                              and then
!                                Has_Controlling_Result
!                                  (Entity (Name (Actual)))
!                              and then
!                                Must_Map_Call_To_Parent_Primitive
!                                  (Actual, Check_Parents => False)
                             then
                                return True;
                             end if;
  
                             Next_Actual (Actual);
                          end loop;
  
!                         --  Recursively check parents that are function calls,
!                         --  to handle cases like "F1 (F2, F3 (X))", where
!                         --  Call_Node is the call to F2, and we need to map
!                         --  F1, F2, and F3 due to the reference to formal X.
! 
!                         if Check_Parents
!                           and then Nkind (Parent (Call_Node)) = N_Function_Call
!                         then
!                            return Must_Map_Call_To_Parent_Primitive
!                                     (Parent (Call_Node));
                          end if;
  
                          return False;
*************** package body Exp_Util is
*** 1617,1623 ****
                       else
                          return False;
                       end if;
!                   end Call_To_Parent_Dispatching_Op_Must_Be_Mapped;
  
                 begin
                    --  If N's entity is in the map, then the entity is either
--- 1742,1748 ----
                       else
                          return False;
                       end if;
!                   end Must_Map_Call_To_Parent_Primitive;
  
                 begin
                    --  If N's entity is in the map, then the entity is either
*************** package body Exp_Util is
*** 1632,1639 ****
  
                    if not Is_Subprogram (Entity (N))
                      or else Nkind (Parent (N)) /= N_Function_Call
!                     or else
!                       Call_To_Parent_Dispatching_Op_Must_Be_Mapped (Parent (N))
                    then
                       Rewrite (N, New_Occurrence_Of (New_E, Sloc (N)));
                    end if;
--- 1757,1763 ----
  
                    if not Is_Subprogram (Entity (N))
                      or else Nkind (Parent (N)) /= N_Function_Call
!                     or else Must_Map_Call_To_Parent_Primitive (Parent (N))
                    then
                       Rewrite (N, New_Occurrence_Of (New_E, Sloc (N)));
                    end if;
*************** package body Exp_Util is
*** 1783,1818 ****
        -------------------
  
        procedure Add_DIC_Check
!         (DIC_Prag : Node_Id;
!          DIC_Expr : Node_Id;
!          Stmts    : in out List_Id)
        is
!          Loc : constant Source_Ptr := Sloc (DIC_Prag);
!          Nam : constant Name_Id    := Original_Aspect_Pragma_Name (DIC_Prag);
  
        begin
           --  The DIC pragma is ignored, nothing left to do
  
!          if Is_Ignored (DIC_Prag) then
              null;
  
           --  Otherwise the DIC expression must be checked at run time.
           --  Generate:
! 
           --    pragma Check (<Nam>, <DIC_Expr>);
  
           else
!             Append_New_To (Stmts,
!               Make_Pragma (Loc,
!                 Pragma_Identifier            =>
!                   Make_Identifier (Loc, Name_Check),
  
!                 Pragma_Argument_Associations => New_List (
!                   Make_Pragma_Argument_Association (Loc,
!                     Expression => Make_Identifier (Loc, Nam)),
  
!                   Make_Pragma_Argument_Association (Loc,
!                     Expression => DIC_Expr))));
           end if;
  
           --  Add the pragma to the list of processed pragmas
--- 1907,1945 ----
        -------------------
  
        procedure Add_DIC_Check
!         (DIC_Prag : Node_Id; DIC_Expr : Node_Id; Stmts : in out List_Id)
        is
!          Loc  : constant Source_Ptr := Sloc (DIC_Prag);
!          Nam  : constant Name_Id := Original_Aspect_Pragma_Name (DIC_Prag);
!          Prag : Node_Id;
  
        begin
           --  The DIC pragma is ignored, nothing left to do
  
!          if Is_Ignored_In_Codegen (DIC_Prag) then
              null;
  
           --  Otherwise the DIC expression must be checked at run time.
           --  Generate:
!          --
           --    pragma Check (<Nam>, <DIC_Expr>);
  
           else
!             Prag :=
!               Make_Pragma
!                 (Loc,
!                  Pragma_Identifier            =>
!                    Make_Identifier (Loc, Name_Check),
!                  Pragma_Argument_Associations =>
!                    New_List
!                      (Make_Pragma_Argument_Association
!                         (Loc, Expression => Make_Identifier (Loc, Nam)),
!                       Make_Pragma_Argument_Association
!                         (Loc, Expression => DIC_Expr)));
  
!             Copy_Assertion_Policy_Attributes (Prag, DIC_Prag);
  
!             Append_New_To (Stmts, Prag);
           end if;
  
           --  Add the pragma to the list of processed pragmas
*************** package body Exp_Util is
*** 2076,2082 ****
           --  time capture the visibility of the proper package part.
  
           Set_Parent (Expr, Typ_Decl);
!          Preanalyze_Assert_Expression (Expr, Any_Boolean);
  
           --  Save a copy of the expression with all replacements and analysis
           --  already taken place in case a derived type inherits the pragma.
--- 2203,2209 ----
           --  time capture the visibility of the proper package part.
  
           Set_Parent (Expr, Typ_Decl);
!          Preanalyze_And_Resolve_Assert_Expression (Expr, Any_Boolean);
  
           --  Save a copy of the expression with all replacements and analysis
           --  already taken place in case a derived type inherits the pragma.
*************** package body Exp_Util is
*** 2089,2096 ****
  
           --  If the pragma comes from an aspect specification, replace the
           --  saved expression because all type references must be substituted
!          --  for the call to Preanalyze_Spec_Expression in Check_Aspect_At_xxx
!          --  routines.
  
           if Present (DIC_Asp) then
              Set_Expression_Copy (DIC_Asp, New_Copy_Tree (Expr));
--- 2216,2223 ----
  
           --  If the pragma comes from an aspect specification, replace the
           --  saved expression because all type references must be substituted
!          --  for the call to Preanalyze_And_Resolve_Spec_Expression in
!          --  Check_Aspect_At_xxx routines.
  
           if Present (DIC_Asp) then
              Set_Expression_Copy (DIC_Asp, New_Copy_Tree (Expr));
*************** package body Exp_Util is
*** 2201,2214 ****
  
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       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
  
        DIC_Prag     : Node_Id;
        DIC_Typ      : Entity_Id;
        Dummy_1      : Entity_Id;
        Dummy_2      : Entity_Id;
        Proc_Body    : Node_Id;
        Proc_Body_Id : Entity_Id;
        Proc_Decl    : Node_Id;
--- 2328,2341 ----
  
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        DIC_Prag     : Node_Id;
        DIC_Typ      : Entity_Id;
        Dummy_1      : Entity_Id;
        Dummy_2      : Entity_Id;
+       Prag         : Node_Id;
        Proc_Body    : Node_Id;
        Proc_Body_Id : Entity_Id;
        Proc_Decl    : Node_Id;
*************** package body Exp_Util is
*** 2355,2366 ****
        if Partial_DIC then
           pragma Assert (Present (Priv_Typ));
  
!          if Has_Own_DIC (Work_Typ) then  -- If we're testing this then maybe
!             Add_Own_DIC        -- we shouldn't be calling Find_DIC_Typ above???
!               (DIC_Prag => DIC_Prag,
!                DIC_Typ  => DIC_Typ,  -- Should this just be Work_Typ???
!                Obj_Id   => Obj_Id,
!                Stmts    => Stmts);
           end if;
  
        --  Otherwise, the "full" DIC procedure verifies the DICs inherited from
--- 2482,2504 ----
        if Partial_DIC then
           pragma Assert (Present (Priv_Typ));
  
!          if Has_Own_DIC (Work_Typ) then
!             --  If we're testing this then maybe
! 
!             Prag := DIC_Prag;
!             while Present (Prag)
!               and then Nkind (Prag) = N_Pragma
!               and then Pragma_Name (Prag) = Name_Default_Initial_Condition
!               and then (Prag = DIC_Prag
!                         or else From_Same_Pragma (Prag, DIC_Prag))
!             loop
!                Add_Own_DIC    -- we shouldn't be calling Find_DIC_Typ above???
!                  (DIC_Prag => Prag,
!                   DIC_Typ  => DIC_Typ,  -- Should this just be Work_Typ???
!                   Obj_Id   => Obj_Id,
!                   Stmts    => Stmts);
!                Next_Rep_Item (Prag);
!             end loop;
           end if;
  
        --  Otherwise, the "full" DIC procedure verifies the DICs inherited from
*************** package body Exp_Util is
*** 2448,2454 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Build_DIC_Procedure_Body;
  
     -------------------------------------
--- 2586,2592 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Build_DIC_Procedure_Body;
  
     -------------------------------------
*************** package body Exp_Util is
*** 2465,2472 ****
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       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
  
        DIC_Prag  : Node_Id;
--- 2603,2609 ----
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        DIC_Prag  : Node_Id;
*************** package body Exp_Util is
*** 2673,2679 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Build_DIC_Procedure_Declaration;
  
     ------------------------------------
--- 2810,2816 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Build_DIC_Procedure_Declaration;
  
     ------------------------------------
*************** package body Exp_Util is
*** 3121,3133 ****
           Ploc    : constant Source_Ptr := Sloc (Prag);
           Str_Arg : constant Node_Id    := Next (Next (First (Args)));
  
!          Assoc : List_Id;
!          Str   : String_Id;
  
        begin
           --  The invariant is ignored, nothing left to do
  
!          if Is_Ignored (Prag) then
              null;
  
           --  Otherwise the invariant is checked. Build a pragma Check to verify
--- 3258,3271 ----
           Ploc    : constant Source_Ptr := Sloc (Prag);
           Str_Arg : constant Node_Id    := Next (Next (First (Args)));
  
!          Assoc      : List_Id;
!          Check_Prag : Node_Id;
!          Str        : String_Id;
  
        begin
           --  The invariant is ignored, nothing left to do
  
!          if Is_Ignored_In_Codegen (Prag) then
              null;
  
           --  Otherwise the invariant is checked. Build a pragma Check to verify
*************** package body Exp_Util is
*** 3165,3174 ****
              --  Generate:
              --    pragma Check (<Nam>, <Expr>, <Str>);
  
!             Append_New_To (Checks,
                Make_Pragma (Ploc,
!                 Chars                        => Name_Check,
!                 Pragma_Argument_Associations => Assoc));
           end if;
  
           --  Output an info message when inheriting an invariant and the
--- 3303,3316 ----
              --  Generate:
              --    pragma Check (<Nam>, <Expr>, <Str>);
  
!             Check_Prag :=
                Make_Pragma (Ploc,
!                  Chars                        => Name_Check,
!                  Pragma_Argument_Associations => Assoc);
! 
!             Copy_Assertion_Policy_Attributes (Check_Prag, Prag);
! 
!             Append_New_To (Checks, Check_Prag);
           end if;
  
           --  Output an info message when inheriting an invariant and the
*************** package body Exp_Util is
*** 3337,3343 ****
                 --  part.
  
                 Set_Parent (Expr, Parent (Prag_Expr));
!                Preanalyze_Assert_Expression (Expr, Any_Boolean);
  
                 --  Save a copy of the expression when T is tagged to detect
                 --  errors and capture the visibility of the proper package part
--- 3479,3485 ----
                 --  part.
  
                 Set_Parent (Expr, Parent (Prag_Expr));
!                Preanalyze_And_Resolve_Assert_Expression (Expr, Any_Boolean);
  
                 --  Save a copy of the expression when T is tagged to detect
                 --  errors and capture the visibility of the proper package part
*************** package body Exp_Util is
*** 3349,3356 ****
  
                 --  If the pragma comes from an aspect specification, replace
                 --  the saved expression because all type references must be
!                --  substituted for the call to Preanalyze_Spec_Expression in
!                --  Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
                    Set_Expression_Copy (Prag_Asp, New_Copy_Tree (Expr));
--- 3491,3498 ----
  
                 --  If the pragma comes from an aspect specification, replace
                 --  the saved expression because all type references must be
!                --  substituted for the call to Preanalyze_And_Resolve_Spec_
!                --  Expression in Check_Aspect_At_xxx routines.
  
                 if Present (Prag_Asp) then
                    Set_Expression_Copy (Prag_Asp, New_Copy_Tree (Expr));
*************** package body Exp_Util is
*** 3599,3606 ****
  
        --  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
  
        Dummy        : Entity_Id;
--- 3741,3747 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Dummy        : Entity_Id;
*************** package body Exp_Util is
*** 3948,3954 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Build_Invariant_Procedure_Body;
  
     -------------------------------------------
--- 4089,4095 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Build_Invariant_Procedure_Body;
  
     -------------------------------------------
*************** package body Exp_Util is
*** 3965,3972 ****
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       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
  
        Proc_Decl : Node_Id;
--- 4106,4112 ----
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Proc_Decl : Node_Id;
*************** package body Exp_Util is
*** 4182,4188 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Build_Invariant_Procedure_Declaration;
  
     ------------------------
--- 4322,4328 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Build_Invariant_Procedure_Declaration;
  
     ------------------------
*************** package body Exp_Util is
*** 6080,6086 ****
              Utyp := Corresponding_Record_Type (Root_Type (Btyp));
  
           elsif Is_Implicit_Full_View (Utyp) then
!             Utyp := Underlying_Type (Root_Type (Btyp));
  
              if Is_Protected_Type (Utyp) then
                 Utyp := Corresponding_Record_Type (Utyp);
--- 6220,6230 ----
              Utyp := Corresponding_Record_Type (Root_Type (Btyp));
  
           elsif Is_Implicit_Full_View (Utyp) then
!             if Is_Derived_Type (Btyp) then
!                Utyp := Underlying_Type (Root_Type (Btyp));
!             else
!                Utyp := Underlying_Type (Root_Type (Full_View (Btyp)));
!             end if;
  
              if Is_Protected_Type (Utyp) then
                 Utyp := Corresponding_Record_Type (Utyp);
*************** package body Exp_Util is
*** 6624,6629 ****
--- 6768,6920 ----
        return Last_Init;
     end Find_Last_Init;
  
+    -------------------------
+    -- Find_Master_Context --
+    -------------------------
+ 
+    function Find_Master_Context (N : Node_Id) return Node_Id is
+       Par : Node_Id;
+       Top : Node_Id;
+ 
+       Wrapped_Node : Node_Id;
+       --  Note: if we are in a transient scope, we want to reuse it as the
+       --  context for inserting actions, if possible. But if N is itself
+       --  part of the stored actions of the current transient scope, then
+       --  we need to insert at the appropriate (inner) location in the list.
+ 
+    begin
+       --  When the node is inside a case/if expression, the lifetime of any
+       --  temporary controlled object is extended. Find a suitable insertion
+       --  node by locating the topmost case or if expressions.
+ 
+       if Within_Conditional_Expression (N) then
+          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;
+ 
+             --  Prevent the search from going too far
+ 
+             elsif Is_Body_Or_Package_Declaration (Par) then
+                exit;
+             end if;
+ 
+             Par := Parent (Par);
+          end loop;
+ 
+          --  The topmost case or if expression is now recovered, but it may
+          --  still not be the correct place to add generated code. Climb to
+          --  find a parent that is part of a declarative or statement list,
+          --  and is not a list of actuals in a call.
+ 
+          Par := Top;
+          while Present (Par) loop
+             if Is_List_Member (Par)
+               and then Nkind (Par) not in N_Component_Association
+                                         | N_Discriminant_Association
+                                         | N_Parameter_Association
+                                         | N_Pragma_Argument_Association
+                                         | 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;
+ 
+             --  Prevent the search from going too far
+ 
+             elsif Is_Body_Or_Package_Declaration (Par) then
+                exit;
+             end if;
+ 
+             Par := Parent (Par);
+          end loop;
+ 
+          return Par;
+ 
+       else
+          Par := N;
+          while Present (Par) loop
+ 
+             --  Keep climbing past various operators
+ 
+             if Nkind (Parent (Par)) in N_Op
+               or else Nkind (Parent (Par)) in N_And_Then | N_Or_Else
+             then
+                Par := Parent (Par);
+             else
+                exit;
+             end if;
+          end loop;
+ 
+          Top := Par;
+ 
+          --  The node may be located in a pragma in which case return the
+          --  pragma itself:
+ 
+          --    pragma Precondition (... and then Ctrl_Func_Call ...);
+ 
+          --  Similar case occurs when the node is related to an object
+          --  declaration or assignment:
+ 
+          --    Obj [: Some_Typ] := ... and then Ctrl_Func_Call ...;
+ 
+          --  Another case to consider is when the node is part of a return
+          --  statement:
+ 
+          --    return ... and then Ctrl_Func_Call ...;
+ 
+          --  Another case is when the node acts as a formal in a procedure
+          --  call statement:
+ 
+          --    Proc (... and then Ctrl_Func_Call ...);
+ 
+          if Scope_Is_Transient then
+             Wrapped_Node := Node_To_Be_Wrapped;
+          else
+             Wrapped_Node := Empty;
+          end if;
+ 
+          while Present (Par) loop
+             if Par = Wrapped_Node
+               or else Nkind (Par) in N_Assignment_Statement
+                                    | N_Object_Declaration
+                                    | N_Pragma
+                                    | N_Procedure_Call_Statement
+                                    | N_Simple_Return_Statement
+             then
+                return Par;
+ 
+             --  Prevent the search from going too far
+ 
+             elsif Is_Body_Or_Package_Declaration (Par) then
+                exit;
+             end if;
+ 
+             Par := Parent (Par);
+          end loop;
+ 
+          --  Return the topmost short circuit operator
+ 
+          return Top;
+       end if;
+    end Find_Master_Context;
+ 
     ---------------------------
     -- Find_Optional_Prim_Op --
     ---------------------------
*************** package body Exp_Util is
*** 6830,6984 ****
        end if;
     end Find_Storage_Op;
  
!    -----------------------
!    -- Find_Hook_Context --
!    -----------------------
! 
!    function Find_Hook_Context (N : Node_Id) return Node_Id is
!       Par : Node_Id;
!       Top : Node_Id;
! 
!       Wrapped_Node : Node_Id;
!       --  Note: if we are in a transient scope, we want to reuse it as
!       --  the context for actions insertion, if possible. But if N is itself
!       --  part of the stored actions for the current transient scope,
!       --  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
!       --  temporary controlled object is extended. Find a suitable insertion
!       --  node by locating the topmost case or if expressions.
! 
!       if In_Cond_Expr then
!          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;
! 
!             --  Prevent the search from going too far
! 
!             elsif Is_Body_Or_Package_Declaration (Par) then
!                exit;
!             end if;
! 
!             Par := Parent (Par);
!          end loop;
! 
!          --  The topmost case or if expression is now recovered, but it may
!          --  still not be the correct place to add generated code. Climb to
!          --  find a parent that is part of a declarative or statement list,
!          --  and is not a list of actuals in a call.
! 
!          Par := Top;
!          while Present (Par) loop
!             if Is_List_Member (Par)
!               and then Nkind (Par) not in N_Component_Association
!                                         | N_Discriminant_Association
!                                         | N_Parameter_Association
!                                         | N_Pragma_Argument_Association
!                                         | 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;
! 
!             --  Prevent the search from going too far
! 
!             elsif Is_Body_Or_Package_Declaration (Par) then
!                exit;
!             end if;
! 
!             Par := Parent (Par);
!          end loop;
! 
!          return Par;
! 
!       else
!          Par := N;
!          while Present (Par) loop
! 
!             --  Keep climbing past various operators
! 
!             if Nkind (Parent (Par)) in N_Op
!               or else Nkind (Parent (Par)) in N_And_Then | N_Or_Else
!             then
!                Par := Parent (Par);
!             else
!                exit;
!             end if;
!          end loop;
! 
!          Top := Par;
! 
!          --  The node may be located in a pragma in which case return the
!          --  pragma itself:
! 
!          --    pragma Precondition (... and then Ctrl_Func_Call ...);
! 
!          --  Similar case occurs when the node is related to an object
!          --  declaration or assignment:
! 
!          --    Obj [: Some_Typ] := ... and then Ctrl_Func_Call ...;
! 
!          --  Another case to consider is when the node is part of a return
!          --  statement:
! 
!          --    return ... and then Ctrl_Func_Call ...;
! 
!          --  Another case is when the node acts as a formal in a procedure
!          --  call statement:
! 
!          --    Proc (... and then Ctrl_Func_Call ...);
! 
!          if Scope_Is_Transient then
!             Wrapped_Node := Node_To_Be_Wrapped;
!          else
!             Wrapped_Node := Empty;
!          end if;
! 
!          while Present (Par) loop
!             if Par = Wrapped_Node
!               or else Nkind (Par) in N_Assignment_Statement
!                                    | N_Object_Declaration
!                                    | N_Pragma
!                                    | N_Procedure_Call_Statement
!                                    | N_Simple_Return_Statement
!             then
!                return Par;
! 
!             --  Prevent the search from going too far
! 
!             elsif Is_Body_Or_Package_Declaration (Par) then
!                exit;
!             end if;
! 
!             Par := Parent (Par);
!          end loop;
! 
!          --  Return the topmost short circuit operator
! 
!          return Top;
        end if;
!    end Find_Hook_Context;
  
     ------------------------------
     -- Following_Address_Clause --
--- 7121,7136 ----
        end if;
     end Find_Storage_Op;
  
!    -----------------------------------------
!    -- Flag_Interface_Pointer_Displacement --
!    -----------------------------------------
  
+    procedure Flag_Interface_Pointer_Displacement (N : Node_Id) is
     begin
!       if Nkind (N) = N_Type_Conversion then
!          Set_Is_Interface_Pointer_Displacement (N);
        end if;
!    end Flag_Interface_Pointer_Displacement;
  
     ------------------------------
     -- Following_Address_Clause --
*************** package body Exp_Util is
*** 7170,7175 ****
--- 7322,7467 ----
        Loc : constant Source_Ptr := Sloc (Var);
        Ent : constant Entity_Id  := Entity (Var);
  
+       procedure Find_In_Enclosing_Context
+         (Stmt : Node_Id; Current, Previous : in out Node_Id);
+       --  Locate an object reference inside a composite statement Stmt. On
+       --  entry, Previous and Current should be an object reference and its
+       --  parent, respectively. When search is successful, Current is Stmt and
+       --  Previous is its child node, so the caller can determine in which part
+       --  of the statement the original reference was. When search fails, both
+       --  Current and Previous are Empty.
+ 
+       function Is_Transient_Action (N : Node_Id) return Boolean;
+       --  Returns True for nodes that belong to a transient action and so they
+       --  have no parent, because they have not been inserted to the tree yet.
+ 
+       -------------------------------
+       -- Find_In_Enclosing_Context --
+       -------------------------------
+ 
+       procedure Find_In_Enclosing_Context
+         (Stmt : Node_Id; Current, Previous : in out Node_Id)
+       is
+       begin
+          loop
+             --  If we fall off the top of the tree, then that's odd, but
+             --  perhaps it could occur in some error situation, and the safest
+             --  response is simply to assume that the outcome of the condition
+             --  is unknown. No point in bombing during an attempt to optimize
+             --  things.
+ 
+             if No (Current) then
+ 
+                --  In particular, we expect to miss the enclosing conditional
+                --  statement for:
+                --  * references within a freezing action (because their
+                --    location is unrelated to the conditional statement),
+                --  * validity checks (becuase for references inside the
+                --    condition they are inserted before the conditional
+                --    statement itself),
+                --  * source locations before and after the conditionaal
+                --    statement.
+ 
+                pragma Assert
+                  (Inside_Freezing_Actions > 0
+                   or else
+                     (Ekind (Entity (Var)) = E_Variable
+                      and then Present (Validated_Object (Entity (Var))))
+                   or else
+                     Loc < Sloc (Stmt)
+                   or else
+                     Loc >= Sloc (Stmt) + Text_Ptr (UI_To_Int (End_Span (Stmt)))
+                   or else
+                     Serious_Errors_Detected > 0);
+ 
+                return;
+ 
+             --  We found the enclosing conditional statement
+ 
+             elsif Current = Stmt then
+                return;
+ 
+             --  For itype declarations follow their associated node
+ 
+             elsif Nkind (Current) = N_Subtype_Declaration
+               and then Is_Itype (Defining_Identifier (Current))
+             then
+                Previous := Current;
+                Current :=
+                  Associated_Node_For_Itype (Defining_Identifier (Previous));
+ 
+                --  If associated node has not been set yet, we can use the
+                --  related expression, which is set earlier.
+                --  ??? this should be investigated
+ 
+                if No (Current) then
+                   Current :=
+                     Related_Expression (Defining_Identifier (Previous));
+                end if;
+                pragma Assert (Present (Current));
+ 
+             --  For declarations of internal types we can't trace their origin
+             --  like we do for itypes, so give up. They might be coming from
+             --  condition of the current IF statement and will be prepended
+             --  before that statement itself.
+ 
+             elsif Nkind (Current) = N_Subtype_Declaration
+               and then Is_Internal (Defining_Identifier (Current))
+             then
+                pragma Assert (Is_Rewrite_Insertion (Current));
+                Current := Empty;
+                return;
+ 
+             --  Same for itypes that have no declaration
+ 
+             elsif Nkind (Current) = N_Defining_Identifier
+               and then Is_Itype (Current)
+             then
+                pragma Assert (No (Parent (Current)));
+                Previous := Current;
+                Current := Associated_Node_For_Itype (Previous);
+ 
+             --  For transient actions follow where they will be inserted
+ 
+             elsif Is_Transient_Action (Current) then
+                Previous := Current;
+                Current :=
+                  Scope_Stack.Table (Scope_Stack.Last).Node_To_Be_Wrapped;
+ 
+             --  Otherwise, continue climbing
+ 
+             else
+                Previous := Current;
+                Current := Parent (Current);
+             end if;
+          end loop;
+       end Find_In_Enclosing_Context;
+ 
+       -------------------------
+       -- Is_Transient_Action --
+       -------------------------
+ 
+       function Is_Transient_Action (N : Node_Id) return Boolean is
+       begin
+          if Scope_Stack.Last >= Scope_Stack.First
+            and then Scope_Is_Transient
+            and then Is_List_Member (N)
+          then
+             declare
+                Transient_Actions : Scope_Actions renames
+                  Scope_Stack.Table (Scope_Stack.Last).Actions_To_Be_Wrapped;
+             begin
+                for Action_Kind in Scope_Actions'Range loop
+                   if List_Containing (N) = Transient_Actions (Action_Kind) then
+                      return True;
+                   end if;
+                end loop;
+             end;
+          end if;
+ 
+          return False;
+       end Is_Transient_Action;
+ 
        procedure Process_Current_Value_Condition (N : Node_Id; S : Boolean);
        --  N is an expression which holds either True (S = True) or False (S =
        --  False) in the condition. This procedure digs out the expression and
*************** package body Exp_Util is
*** 7343,7498 ****
        declare
           CV   : constant Node_Id := Current_Value (Ent);
           Sens : Boolean;
-          Stm  : Node_Id;
  
        begin
!          --  If statement. Condition is known true in THEN section, known False
!          --  in any ELSIF or ELSE part, and unknown outside the IF statement.
! 
!          if Nkind (CV) = N_If_Statement then
! 
!             --  Before start of IF statement
! 
!             if Loc < Sloc (CV) then
!                return;
! 
!             --  In condition of IF statement
! 
!             elsif In_Subtree (N => Var, Root => Condition (CV)) then
!                return;
! 
!             --  After end of IF statement
  
!             elsif Loc >= Sloc (CV) + Text_Ptr (UI_To_Int (End_Span (CV))) then
!                return;
!             end if;
  
!             --  At this stage we know that we are within the IF statement, but
!             --  unfortunately, the tree does not record the SLOC of the ELSE so
!             --  we cannot use a simple SLOC comparison to distinguish between
!             --  the then/else statements, so we have to climb the tree.
  
              declare
!                N : Node_Id;
! 
!             begin
!                N := Parent (Var);
!                while Parent (N) /= CV loop
!                   N := Parent (N);
! 
!                   --  If we fall off the top of the tree, then that's odd, but
!                   --  perhaps it could occur in some error situation, and the
!                   --  safest response is simply to assume that the outcome of
!                   --  the condition is unknown. No point in bombing during an
!                   --  attempt to optimize things.
! 
!                   if No (N) then
!                      return;
!                   end if;
!                end loop;
! 
!                --  Now we have N pointing to a node whose parent is the IF
!                --  statement in question, so now we can tell if we are within
!                --  the THEN statements.
  
!                if Is_List_Member (N)
!                  and then List_Containing (N) = Then_Statements (CV)
!                then
!                   Sens := True;
  
!                --  If the variable reference does not come from source, we
!                --  cannot reliably tell whether it appears in the else part.
!                --  In particular, if it appears in generated code for a node
!                --  that requires finalization, it may be attached to a list
!                --  that has not been yet inserted into the code. For now,
!                --  treat it as unknown.
  
!                elsif not Comes_From_Source (N) then
                    return;
- 
-                --  Otherwise we must be in ELSIF or ELSE part
- 
-                else
-                   Sens := False;
                 end if;
-             end;
- 
-             --  ELSIF part. Condition is known true within the referenced
-             --  ELSIF, known False in any subsequent ELSIF or ELSE part,
-             --  and unknown before the ELSE part or after the IF statement.
- 
-          elsif Nkind (CV) = N_Elsif_Part then
- 
-             --  if the Elsif_Part had condition_actions, the elsif has been
-             --  rewritten as a nested if, and the original elsif_part is
-             --  detached from the tree, so there is no way to obtain useful
-             --  information on the current value of the variable.
-             --  Can this be improved ???
- 
-             if No (Parent (CV)) then
-                return;
-             end if;
- 
-             Stm := Parent (CV);
- 
-             --  If the tree has been otherwise rewritten there is nothing
-             --  else to be done either.
- 
-             if Nkind (Stm) /= N_If_Statement then
-                return;
-             end if;
- 
-             --  Before start of ELSIF part
  
!             if Loc < Sloc (CV) then
!                return;
! 
!             --  In condition of ELSIF part
! 
!             elsif In_Subtree (N => Var, Root => Condition (CV)) then
!                return;
  
!             --  After end of IF statement
  
!             elsif Loc >= Sloc (Stm) +
!               Text_Ptr (UI_To_Int (End_Span (Stm)))
!             then
!                return;
!             end if;
  
!             --  Again we lack the SLOC of the ELSE, so we need to climb the
!             --  tree to see if we are within the ELSIF part in question.
  
!             declare
!                N : Node_Id;
  
!             begin
!                N := Parent (Var);
!                while Parent (N) /= Stm loop
!                   N := Parent (N);
  
!                   --  If we fall off the top of the tree, then that's odd, but
!                   --  perhaps it could occur in some error situation, and the
!                   --  safest response is simply to assume that the outcome of
!                   --  the condition is unknown. No point in bombing during an
!                   --  attempt to optimize things.
  
!                   if No (N) then
                       return;
                    end if;
-                end loop;
- 
-                --  Now we have N pointing to a node whose parent is the IF
-                --  statement in question, so see if is the ELSIF part we want.
-                --  the THEN statements.
- 
-                if N = CV then
-                   Sens := True;
- 
-                   --  Otherwise we must be in subsequent ELSIF or ELSE part
- 
                 else
!                   Sens := False;
                 end if;
              end;
  
--- 7635,7703 ----
        declare
           CV   : constant Node_Id := Current_Value (Ent);
           Sens : Boolean;
  
        begin
!          --  For IF statement the condition is known true in THEN section,
!          --  known False in any ELSIF or ELSE part, and unknown outside the
!          --  IF statement.
  
!          if Nkind (CV) in N_If_Statement | N_Elsif_Part then
  
!             --  At this stage we know that we are within the conditional
!             --  statement, but we have to climb the tree to know in which
!             --  part, e.g. in THEN or ELSE statements of an IF statement.
  
              declare
!                If_Stmt : constant Node_Id :=
!                  (if Nkind (CV) = N_If_Statement
!                   then CV
!                   else Parent (CV));
  
!                Previous : Node_Id := Var;
!                Current  : Node_Id := Parent (Var);
  
!             begin
!                --  An ELSIF part whose condition is false could have been
!                --  already rewritten and we are already past the statements
!                --  inside that ELSIF part.
  
!                if Nkind (If_Stmt) /= N_If_Statement then
!                   pragma Assert (Nkind (CV) = N_Elsif_Part);
                    return;
                 end if;
  
!                Find_In_Enclosing_Context (If_Stmt, Current, Previous);
  
!                --  Check whether the reference is in the IF, THEN or ELSE/ELSIF
!                --  part.
  
!                if Current = If_Stmt then
  
!                   --  Ignore references from within the IF condition itself
  
!                   if Previous = Condition (If_Stmt) then
!                      return;
  
!                   --  Guard against if-statements coming from if-statements
!                   --  with broken chain of parents.
  
!                   elsif Is_List_Member (Previous) then
!                      pragma Assert (
!                        List_Containing (Previous)
!                           in Then_Statements (If_Stmt)
!                            | Elsif_Parts (If_Stmt)
!                            | Else_Statements (If_Stmt));
  
!                      Sens :=
!                        (if CV = If_Stmt
!                         then List_Containing (Previous) = Then_Statements (CV)
!                         else Previous = CV);
!                   else
!                      pragma Assert (From_Conditional_Expression (If_Stmt));
                       return;
                    end if;
                 else
!                   return;
                 end if;
              end;
  
*************** package body Exp_Util is
*** 7503,7528 ****
              declare
                 Loop_Stmt : constant Node_Id := Parent (CV);
  
              begin
!                --  Before start of body of loop
  
!                if Loc < Sloc (Loop_Stmt) then
!                   return;
  
!                --  In condition of while loop
  
!                elsif In_Subtree (N => Var, Root => Condition (CV)) then
!                   return;
  
!                --  After end of LOOP statement
  
!                elsif Loc >= Sloc (End_Label (Loop_Stmt)) then
!                   return;
  
!                --  We are within the body of the loop
  
                 else
!                   Sens := True;
                 end if;
              end;
  
--- 7708,7738 ----
              declare
                 Loop_Stmt : constant Node_Id := Parent (CV);
  
+                Previous : Node_Id := Var;
+                Current  : Node_Id := Parent (Var);
+ 
              begin
!                pragma Assert (Nkind (Loop_Stmt) = N_Loop_Statement);
  
!                Find_In_Enclosing_Context (Loop_Stmt, Current, Previous);
  
!                --  Check whether the reference is inside the WHILE loop
  
!                if Current = Loop_Stmt then
  
!                   --  Ignore references from within the WHILE condition itself
  
!                   if Previous = Iteration_Scheme (Loop_Stmt) then
!                      return;
  
!                   else
!                      pragma Assert
!                        (List_Containing (Previous) = Statements (Loop_Stmt));
  
+                      Sens := True;
+                   end if;
                 else
!                   return;
                 end if;
              end;
  
*************** package body Exp_Util is
*** 9907,9913 ****
     begin
        return (not Is_Tagged_Type (T) and then Is_Derived_Type (T))
                 or else
!                  (Is_Private_Type (T) and then Present (Full_View (T))
                     and then not Is_Tagged_Type (Full_View (T))
                     and then Is_Derived_Type (Full_View (T))
                     and then Etype (Full_View (T)) /= T);
--- 10117,10124 ----
     begin
        return (not Is_Tagged_Type (T) and then Is_Derived_Type (T))
                 or else
!                  (Is_Private_Type (T)
!                    and then Present (Full_View (T))
                     and then not Is_Tagged_Type (Full_View (T))
                     and then Is_Derived_Type (Full_View (T))
                     and then Etype (Full_View (T)) /= T);
*************** package body Exp_Util is
*** 10530,10537 ****
     is
        Loc : constant Source_Ptr := Sloc (Expr);
  
!       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
  
        Call         : Node_Id;
--- 10741,10747 ----
     is
        Loc : constant Source_Ptr := Sloc (Expr);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Call         : Node_Id;
*************** package body Exp_Util is
*** 10575,10581 ****
            Name                   => New_Occurrence_Of (Func_Id, Loc),
            Parameter_Associations => Param_Assocs);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        return Call;
     end Make_Predicate_Call;
--- 10785,10791 ----
            Name                   => New_Occurrence_Of (Func_Id, Loc),
            Parameter_Associations => Param_Assocs);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        return Call;
     end Make_Predicate_Call;
*************** package body Exp_Util is
*** 10928,10938 ****
           --  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                   =>
--- 11138,11147 ----
           --  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_SP_Big_Integer));
              return
                Make_Function_Call (Loc,
                  Name                   =>
*************** package body Exp_Util is
*** 12467,12474 ****
        --  Local variables
  
        Loc          : constant Source_Ptr      := Sloc (Exp);
-       Exp_Type     : constant Entity_Id       := Etype (Exp);
        Svg_Suppress : constant Suppress_Record := Scope_Suppress;
        Def_Id       : Entity_Id;
        E            : Node_Id;
        New_Exp      : Node_Id;
--- 12676,12687 ----
        --  Local variables
  
        Loc          : constant Source_Ptr      := Sloc (Exp);
        Svg_Suppress : constant Suppress_Record := Scope_Suppress;
+       Typ          : constant Entity_Id       := Etype (Exp);
+       Und_Typ      : constant Entity_Id       :=
+         (if Present (Typ) then Underlying_Type (Typ) else Typ);
+       --  The underlying type that drives part of the processing
+ 
        Def_Id       : Entity_Id;
        E            : Node_Id;
        New_Exp      : Node_Id;
*************** package body Exp_Util is
*** 12494,12501 ****
        --  (this happens because routines Duplicate_Subexpr_XX implicitly invoke
        --  Remove_Side_Effects).
  
!       elsif No (Exp_Type)
!         or else Ekind (Exp_Type) = E_Access_Attribute_Type
        then
           return;
  
--- 12707,12715 ----
        --  (this happens because routines Duplicate_Subexpr_XX implicitly invoke
        --  Remove_Side_Effects).
  
!       elsif No (Typ)
!         or else No (Und_Typ)
!         or else Ekind (Und_Typ) = E_Access_Attribute_Type
        then
           return;
  
*************** package body Exp_Util is
*** 12544,12555 ****
        --  anyway, see below). Also do it if we have a volatile reference and
        --  Name_Req is not set (see comments for Side_Effect_Free).
  
!       elsif (Is_Elementary_Type (Exp_Type)
!               or else (Is_Record_Type (Exp_Type)
!                         and then Known_Static_RM_Size (Exp_Type)
!                         and then RM_Size (Exp_Type) <= System_Max_Integer_Size
!                         and then not Has_Discriminants (Exp_Type)
!                         and then not Is_By_Reference_Type (Exp_Type)))
          and then (Variable_Ref
                     or else (not Is_Name_Reference (Exp)
                               and then Nkind (Exp) /= N_Type_Conversion)
--- 12758,12769 ----
        --  anyway, see below). Also do it if we have a volatile reference and
        --  Name_Req is not set (see comments for Side_Effect_Free).
  
!       elsif (Is_Elementary_Type (Und_Typ)
!               or else (Is_Record_Type (Und_Typ)
!                         and then Known_Static_RM_Size (Und_Typ)
!                         and then RM_Size (Und_Typ) <= System_Max_Integer_Size
!                         and then not Has_Discriminants (Und_Typ)
!                         and then not Is_By_Reference_Type (Und_Typ)))
          and then (Variable_Ref
                     or else (not Is_Name_Reference (Exp)
                               and then Nkind (Exp) /= N_Type_Conversion)
*************** package body Exp_Util is
*** 12557,12563 ****
                               and then Is_Volatile_Reference (Exp)))
        then
           Def_Id := Build_Temporary (Loc, 'R', Exp);
!          Set_Etype (Def_Id, Exp_Type);
           Res := New_Occurrence_Of (Def_Id, Loc);
  
           --  If the expression is a packed reference, it must be reanalyzed and
--- 12771,12777 ----
                               and then Is_Volatile_Reference (Exp)))
        then
           Def_Id := Build_Temporary (Loc, 'R', Exp);
!          Set_Etype (Def_Id, Typ);
           Res := New_Occurrence_Of (Def_Id, Loc);
  
           --  If the expression is a packed reference, it must be reanalyzed and
*************** package body Exp_Util is
*** 12573,12579 ****
           end if;
  
           --  Generate:
!          --    Rnn : Exp_Type renames Expr;
  
           --  In GNATprove mode, we prefer to use renamings for intermediate
           --  variables to definition of constants, due to the implicit move
--- 12787,12793 ----
           end if;
  
           --  Generate:
!          --    Rnn : Typ renames Expr;
  
           --  In GNATprove mode, we prefer to use renamings for intermediate
           --  variables to definition of constants, due to the implicit move
*************** package body Exp_Util is
*** 12584,12605 ****
           if Renaming_Req
             or else (GNATprove_Mode
                       and then Is_Object_Reference (Exp)
!                      and then not Is_Scalar_Type (Exp_Type))
           then
              E :=
                Make_Object_Renaming_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Subtype_Mark        => New_Occurrence_Of (Exp_Type, Loc),
                  Name                => Relocate_Node (Exp));
  
           --  Generate:
!          --    Rnn : constant Exp_Type := Expr;
  
           else
              E :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Occurrence_Of (Exp_Type, Loc),
                  Constant_Present    => True,
                  Expression          => Relocate_Node (Exp));
  
--- 12798,12819 ----
           if Renaming_Req
             or else (GNATprove_Mode
                       and then Is_Object_Reference (Exp)
!                      and then not Is_Scalar_Type (Und_Typ))
           then
              E :=
                Make_Object_Renaming_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Subtype_Mark        => New_Occurrence_Of (Typ, Loc),
                  Name                => Relocate_Node (Exp));
  
           --  Generate:
!          --    Rnn : constant Typ := Expr;
  
           else
              E :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc),
                  Constant_Present    => True,
                  Expression          => Relocate_Node (Exp));
  
*************** package body Exp_Util is
*** 12655,12661 ****
        elsif Nkind (Exp) = N_Unchecked_Type_Conversion
          and then not Safe_Unchecked_Type_Conversion (Exp)
        then
!          if CW_Or_Needs_Finalization (Exp_Type) then
  
              --  Use a renaming to capture the expression, rather than create
              --  a controlled temporary.
--- 12869,12875 ----
        elsif Nkind (Exp) = N_Unchecked_Type_Conversion
          and then not Safe_Unchecked_Type_Conversion (Exp)
        then
!          if CW_Or_Needs_Finalization (Und_Typ) then
  
              --  Use a renaming to capture the expression, rather than create
              --  a controlled temporary.
*************** package body Exp_Util is
*** 12666,12683 ****
              Insert_Action (Exp,
                Make_Object_Renaming_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Subtype_Mark        => New_Occurrence_Of (Exp_Type, Loc),
                  Name                => Relocate_Node (Exp)));
  
           else
              Def_Id := Build_Temporary (Loc, 'R', Exp);
!             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    => not Is_Variable (Exp),
                  Expression          => Relocate_Node (Exp));
  
--- 12880,12897 ----
              Insert_Action (Exp,
                Make_Object_Renaming_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Subtype_Mark        => New_Occurrence_Of (Typ, Loc),
                  Name                => Relocate_Node (Exp)));
  
           else
              Def_Id := Build_Temporary (Loc, 'R', Exp);
!             Set_Etype (Def_Id, Typ);
              Res    := New_Occurrence_Of (Def_Id, Loc);
  
              E :=
                Make_Object_Declaration (Loc,
                  Defining_Identifier => Def_Id,
!                 Object_Definition   => New_Occurrence_Of (Typ, Loc),
                  Constant_Present    => not Is_Variable (Exp),
                  Expression          => Relocate_Node (Exp));
  
*************** package body Exp_Util is
*** 12707,12713 ****
            --  type and we do not have Name_Req set true (see comments for
            --  Side_Effect_Free).
  
!           and then (Name_Req or else not Treat_As_Volatile (Exp_Type)))
        then
           Def_Id := Build_Temporary (Loc, 'R', Exp);
           Res := New_Occurrence_Of (Def_Id, Loc);
--- 12921,12927 ----
            --  type and we do not have Name_Req set true (see comments for
            --  Side_Effect_Free).
  
!           and then (Name_Req or else not Treat_As_Volatile (Und_Typ)))
        then
           Def_Id := Build_Temporary (Loc, 'R', Exp);
           Res := New_Occurrence_Of (Def_Id, Loc);
*************** package body Exp_Util is
*** 12715,12721 ****
           Insert_Action (Exp,
             Make_Object_Renaming_Declaration (Loc,
               Defining_Identifier => Def_Id,
!              Subtype_Mark        => New_Occurrence_Of (Exp_Type, Loc),
               Name                => Relocate_Node (Exp)));
  
        --  Avoid generating a variable-sized temporary, by generating the
--- 12929,12935 ----
           Insert_Action (Exp,
             Make_Object_Renaming_Declaration (Loc,
               Defining_Identifier => Def_Id,
!              Subtype_Mark        => New_Occurrence_Of (Typ, Loc),
               Name                => Relocate_Node (Exp)));
  
        --  Avoid generating a variable-sized temporary, by generating the
*************** package body Exp_Util is
*** 12725,12731 ****
  
        elsif Nkind (Exp) = N_Selected_Component
          and then Nkind (Prefix (Exp)) = N_Function_Call
!         and then Is_Array_Type (Exp_Type)
        then
           Remove_Side_Effects (Prefix (Exp), Name_Req, Variable_Ref);
           goto Leave;
--- 12939,12945 ----
  
        elsif Nkind (Exp) = N_Selected_Component
          and then Nkind (Prefix (Exp)) = N_Function_Call
!         and then Is_Array_Type (Und_Typ)
        then
           Remove_Side_Effects (Prefix (Exp), Name_Req, Variable_Ref);
           goto Leave;
*************** package body Exp_Util is
*** 12744,12752 ****
           --  to the object in the latter case.
  
           if Nkind (Exp) = N_Function_Call
!            and then (Is_Build_In_Place_Result_Type (Exp_Type)
                        or else
!                      Is_Constr_Array_Subt_Of_Unc_With_Controlled (Exp_Type))
             and then Nkind (Parent (Exp)) /= N_Object_Declaration
             and then not Is_Expression_Of_Func_Return (Exp)
           then
--- 12958,12966 ----
           --  to the object in the latter case.
  
           if Nkind (Exp) = N_Function_Call
!            and then (Is_Build_In_Place_Result_Type (Und_Typ)
                        or else
!                      Is_Constr_Array_Subt_Of_Unc_With_Controlled (Und_Typ))
             and then Nkind (Parent (Exp)) /= N_Object_Declaration
             and then not Is_Expression_Of_Func_Return (Exp)
           then
*************** package body Exp_Util is
*** 12758,12768 ****
                 Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Obj,
!                    Object_Definition   => New_Occurrence_Of (Exp_Type, Loc),
                     Expression          => Relocate_Node (Exp));
  
                 Insert_Action (Exp, Decl);
!                Set_Etype (Obj, Exp_Type);
                 Rewrite (Exp, New_Occurrence_Of (Obj, Loc));
                 goto Leave;
              end;
--- 12972,12982 ----
                 Decl :=
                   Make_Object_Declaration (Loc,
                     Defining_Identifier => Obj,
!                    Object_Definition   => New_Occurrence_Of (Typ, Loc),
                     Expression          => Relocate_Node (Exp));
  
                 Insert_Action (Exp, Decl);
!                Set_Etype (Obj, Typ);
                 Rewrite (Exp, New_Occurrence_Of (Obj, Loc));
                 goto Leave;
              end;
*************** package body Exp_Util is
*** 12778,12784 ****
  
           if GNATprove_Mode then
              Res := New_Occurrence_Of (Def_Id, Loc);
!             Ref_Type := Exp_Type;
  
           --  Regular expansion utilizing an access type and 'reference
  
--- 12992,12998 ----
  
           if GNATprove_Mode then
              Res := New_Occurrence_Of (Def_Id, Loc);
!             Ref_Type := Typ;
  
           --  Regular expansion utilizing an access type and 'reference
  
*************** package body Exp_Util is
*** 12788,12794 ****
                  Prefix => New_Occurrence_Of (Def_Id, Loc));
  
              --  Generate:
!             --    type Ann is access all <Exp_Type>;
  
              Ref_Type := Make_Temporary (Loc, 'A');
  
--- 13002,13008 ----
                  Prefix => New_Occurrence_Of (Def_Id, Loc));
  
              --  Generate:
!             --    type Ann is access all Typ;
  
              Ref_Type := Make_Temporary (Loc, 'A');
  
*************** package body Exp_Util is
*** 12798,12805 ****
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
                      All_Present        => True,
!                     Subtype_Indication =>
!                       New_Occurrence_Of (Exp_Type, Loc)));
  
              Insert_Action (Exp, Ptr_Typ_Decl);
           end if;
--- 13012,13018 ----
                  Type_Definition     =>
                    Make_Access_To_Object_Definition (Loc,
                      All_Present        => True,
!                     Subtype_Indication => New_Occurrence_Of (Typ, Loc)));
  
              Insert_Action (Exp, Ptr_Typ_Decl);
           end if;
*************** package body Exp_Util is
*** 12828,12843 ****
  
                 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
--- 13041,13056 ----
  
                 if not Analyzed (Exp)
                   and then Nkind (Exp) = N_Aggregate
!                  and then (Is_Array_Type (Und_Typ)
!                             or else Has_Discriminants (Und_Typ))
!                  and then Is_Constrained (Und_Typ)
                 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 (Und_Typ) then
                       Scope_Suppress.Suppress (Length_Check) :=
                         Svg_Suppress.Suppress (Length_Check);
                    else
*************** package body Exp_Util is
*** 12845,12853 ****
                         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);
--- 13058,13067 ----
                         Svg_Suppress.Suppress (Discriminant_Check);
                    end if;
  
!                   E :=
!                     Make_Qualified_Expression (Loc,
!                       Subtype_Mark => New_Occurrence_Of (Typ, Loc),
!                       Expression   => E);
                 end if;
  
                 New_Exp := Make_Reference (Loc, E);
*************** package body Exp_Util is
*** 12895,12901 ****
        --  Finally rewrite the original expression and we are done
  
        Rewrite (Exp, Res);
!       Analyze_And_Resolve (Exp, Exp_Type);
  
     <<Leave>>
        Scope_Suppress := Svg_Suppress;
--- 13109,13115 ----
        --  Finally rewrite the original expression and we are done
  
        Rewrite (Exp, Res);
!       Analyze_And_Resolve (Exp, Typ);
  
     <<Leave>>
        Scope_Suppress := Svg_Suppress;
*************** package body Exp_Util is
*** 13374,13380 ****
              --  Ignored Ghost types do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Typ) then
                 null;
  
              elsif Is_Tagged_Type (Typ)
--- 13588,13594 ----
              --  Ignored Ghost types do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Typ) then
                 null;
  
              elsif Is_Tagged_Type (Typ)
*************** package body Exp_Util is
*** 13420,13426 ****
              --  Ignored Ghost objects do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             elsif Is_Ignored_Ghost_Entity (Obj_Id) then
                 null;
  
              --  Conversely, if one of the above cases created a Master_Node,
--- 13634,13640 ----
              --  Ignored Ghost objects do not need any cleanup actions because
              --  they will not appear in the final tree.
  
!             elsif Is_Ignored_Ghost_Entity_In_Codegen (Obj_Id) then
                 null;
  
              --  Conversely, if one of the above cases created a Master_Node,
*************** package body Exp_Util is
*** 13516,13522 ****
              --  Freeze nodes for ignored Ghost types do not need cleanup
              --  actions because they will never appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Typ) then
                 null;
  
              elsif ((Is_Access_Object_Type (Typ)
--- 13730,13736 ----
              --  Freeze nodes for ignored Ghost types do not need cleanup
              --  actions because they will never appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Typ) then
                 null;
  
              elsif ((Is_Access_Object_Type (Typ)
*************** package body Exp_Util is
*** 13539,13545 ****
              --  Do not inspect an ignored Ghost package because all code found
              --  within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Pack_Id) then
                 null;
  
              elsif Ekind (Pack_Id) /= E_Generic_Package
--- 13753,13759 ----
              --  Do not inspect an ignored Ghost package because all code found
              --  within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Pack_Id) then
                 null;
  
              elsif Ekind (Pack_Id) /= E_Generic_Package
*************** package body Exp_Util is
*** 13556,13562 ****
              --  Do not inspect an ignored Ghost package body because all code
              --  found within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Defining_Entity (Decl)) then
                 null;
  
              elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package
--- 13770,13776 ----
              --  Do not inspect an ignored Ghost package body because all code
              --  found within will not appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Defining_Entity (Decl)) then
                 null;
  
              elsif Ekind (Corresponding_Spec (Decl)) /= E_Generic_Package
*************** package body Exp_Util is
*** 14479,14485 ****
        else
           N := First (L);
           while Present (N) loop
!             if not Side_Effect_Free (N, Name_Req, Variable_Ref) then
                 return False;
              else
                 Next (N);
--- 14693,14708 ----
        else
           N := First (L);
           while Present (N) loop
!             if Nkind (N) = N_Parameter_Association then
!                if not
!                  Side_Effect_Free
!                   (Explicit_Actual_Parameter (N), Name_Req, Variable_Ref)
!                then
!                   return False;
!                end if;
! 
!                Next (N);
!             elsif not Side_Effect_Free (N, Name_Req, Variable_Ref) then
                 return False;
              else
                 Next (N);
*************** package body Exp_Util is
*** 14782,14787 ****
--- 15005,15041 ----
              when N_If_Expression =>
                 exit when Node = First (Expressions (Parent_Node));
  
+             when others =>
+                exit;
+          end case;
+ 
+          Node        := Parent_Node;
+          Parent_Node := Parent (Node);
+       end loop;
+ 
+       return Parent_Node;
+    end Unconditional_Parent;
+ 
+    --------------------------------------
+    -- Unqualified_Unconditional_Parent --
+    --------------------------------------
+ 
+    function Unqualified_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;
  
*************** package body Exp_Util is
*** 14794,14800 ****
        end loop;
  
        return Parent_Node;
!    end Unconditional_Parent;
  
     -------------------------------
     -- Update_Primitives_Mapping --
--- 15048,15054 ----
        end loop;
  
        return Parent_Node;
!    end Unqualified_Unconditional_Parent;
  
     -------------------------------
     -- Update_Primitives_Mapping --
diff -Nrcpad gcc-15.2.0/gcc/ada/exp_util.ads gcc-16.1.0-RC-20260423/gcc/ada/exp_util.ads
*** gcc-15.2.0/gcc/ada/exp_util.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/exp_util.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 29,35 ****
  with Exp_Tss;        use Exp_Tss;
  with Namet;          use Namet;
  with Rtsfind;        use Rtsfind;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Snames;         use Snames;
  with Types;          use Types;
--- 29,34 ----
*************** package Exp_Util is
*** 644,649 ****
--- 643,655 ----
     --  Same as Find_Prim_Op but for the three controlled primitive operations,
     --  and returns Empty if not found.
  
+    function Find_Master_Context (N : Node_Id) return Node_Id;
+    --  Determine a suitable node on which to attach actions related to N that
+    --  need to be performed immediately after the execution of N is complete.
+    --  In general this is the topmost expression or statement of which N is a
+    --  subexpression, but note that object declarations may be returned here,
+    --  although they are not master constructs in the language.
+ 
     function Find_Optional_Prim_Op
       (T : Entity_Id; Name : Name_Id) return Entity_Id;
     function Find_Optional_Prim_Op
*************** package Exp_Util is
*** 673,684 ****
     --  indicating that the operation is defaulted in the aspect (can occur in
     --  the case where the storage-model address type is System.Address).
  
!    function Find_Hook_Context (N : Node_Id) return Node_Id;
!    --  Determine a suitable node on which to attach actions related to N that
!    --  need to be elaborated unconditionally. In general this is the topmost
!    --  expression of which N is a subexpression, which in turn may or may not
!    --  be evaluated, for example if N is the right operand of a short circuit
!    --  operator.
  
     function Following_Address_Clause (D : Node_Id) return Node_Id;
     --  D is the node for an object declaration. This function searches the
--- 679,689 ----
     --  indicating that the operation is defaulted in the aspect (can occur in
     --  the case where the storage-model address type is System.Address).
  
!    procedure Flag_Interface_Pointer_Displacement (N : Node_Id);
!    --  If N is an N_Type_Conversion node then flag N to indicate that this
!    --  type conversion was internally added to force the displacement of the
!    --  pointer to the object (pointer named "this" in the C++ terminology)
!    --  from a dispatch table to another dispatch table.
  
     function Following_Address_Clause (D : Node_Id) return Node_Id;
     --  D is the node for an object declaration. This function searches the
*************** package Exp_Util is
*** 1344,1349 ****
--- 1349,1358 ----
  
     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, recursively.
+ 
+    function Unqualified_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.
  
*************** private
*** 1366,1371 ****
--- 1375,1381 ----
     pragma Inline (Duplicate_Subexpr);
     pragma Inline (Find_Controlled_Prim_Op);
     pragma Inline (Find_Prim_Op);
+    pragma Inline (Flag_Interface_Pointer_Displacement);
     pragma Inline (Force_Evaluation);
     pragma Inline (Get_Mapped_Entity);
     pragma Inline (Is_Library_Level_Tagged_Type);
diff -Nrcpad gcc-15.2.0/gcc/ada/expander.adb gcc-16.1.0-RC-20260423/gcc/ada/expander.adb
*** gcc-15.2.0/gcc/ada/expander.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/expander.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Rtsfind;        use Rtsfind;
*** 47,53 ****
  with Sem;            use Sem;
  with Sem_Ch8;        use Sem_Ch8;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Stand;          use Stand;
  with Table;
--- 47,52 ----
*************** package body Expander is
*** 84,91 ****
     --  Ghost mode.
  
     procedure Expand (N : Node_Id) is
!       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
  
     begin
--- 83,89 ----
     --  Ghost mode.
  
     procedure Expand (N : Node_Id) is
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
     begin
*************** package body Expander is
*** 230,235 ****
--- 228,236 ----
                 when N_Conditional_Entry_Call =>
                    Expand_N_Conditional_Entry_Call (N);
  
+                when N_Continue_Statement =>
+                   Expand_N_Continue_Statement (N);
+ 
                 when N_Delay_Relative_Statement =>
                    Expand_N_Delay_Relative_Statement (N);
  
*************** package body Expander is
*** 556,562 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Expand;
  
     ---------------------------
--- 557,563 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Expand;
  
     ---------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/expander.ads gcc-16.1.0-RC-20260423/gcc/ada/expander.ads
*** gcc-15.2.0/gcc/ada/expander.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/expander.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/expect.c gcc-16.1.0-RC-20260423/gcc/ada/expect.c
*** gcc-15.2.0/gcc/ada/expect.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/expect.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2001-2026, AdaCore                     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/fe.h gcc-16.1.0-RC-20260423/gcc/ada/fe.h
*** gcc-15.2.0/gcc/ada/fe.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fe.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 Node_Id Get_Attribute_Definition_
*** 110,117 ****
  
  /* errout: */
  
! #define Error_Msg_N		errout__error_msg_n
! #define Error_Msg_NE		errout__error_msg_ne
  #define Set_Identifier_Casing	errout__set_identifier_casing
  
  extern void Error_Msg_N			(String_Pointer, Node_Id);
--- 110,117 ----
  
  /* errout: */
  
! #define Error_Msg_N		errout__error_msg_n_gigi
! #define Error_Msg_NE		errout__error_msg_ne_gigi
  #define Set_Identifier_Casing	errout__set_identifier_casing
  
  extern void Error_Msg_N			(String_Pointer, Node_Id);
*************** extern Boolean Is_Null_Range 		(Node_Id,
*** 315,320 ****
--- 315,321 ----
  #define First_Actual			sem_util__first_actual
  #define Has_Storage_Model_Type_Aspect	sem_util__storage_model_support__has_storage_model_type_aspect
  #define Has_Designated_Storage_Model_Aspect sem_util__storage_model_support__has_designated_storage_model_aspect
+ #define Is_Extended_Access_Type sem_util__is_extended_access_type
  #define Is_Expression_Function		sem_util__is_expression_function
  #define Is_Variable_Size_Record 	sem_util__is_variable_size_record
  #define Needs_Secondary_Stack		sem_util__needs_secondary_stack
*************** extern Entity_Id Defining_Entity		(Node_
*** 327,332 ****
--- 328,334 ----
  extern Node_Id First_Actual			(Node_Id);
  extern Boolean Has_Storage_Model_Type_Aspect	(Entity_Id);
  extern Boolean Has_Designated_Storage_Model_Aspect (Entity_Id);
+ extern Boolean Is_Extended_Access_Type	(Entity_Id);
  extern Boolean Is_Expression_Function		(Entity_Id);
  extern Boolean Is_Variable_Size_Record 		(Entity_Id);
  extern Boolean Needs_Secondary_Stack		(Entity_Id);
diff -Nrcpad gcc-15.2.0/gcc/ada/final.c gcc-16.1.0-RC-20260423/gcc/ada/final.c
*** gcc-15.2.0/gcc/ada/final.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/final.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/fmap.adb gcc-16.1.0-RC-20260423/gcc/ada/fmap.adb
*** gcc-15.2.0/gcc/ada/fmap.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fmap.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Fmap is
*** 58,64 ****
     package File_Mapping is new Table.Table (
       Table_Component_Type => Mapping,
       Table_Index_Type     => Int,
!      Table_Low_Bound      => 0,
       Table_Initial        => 1_000,
       Table_Increment      => 1_000,
       Table_Name           => "Fmap.File_Mapping");
--- 58,64 ----
     package File_Mapping is new Table.Table (
       Table_Component_Type => Mapping,
       Table_Index_Type     => Int,
!      Table_Low_Bound      => 1,
       Table_Initial        => 1_000,
       Table_Increment      => 1_000,
       Table_Name           => "Fmap.File_Mapping");
*************** package body Fmap is
*** 67,73 ****
     package Path_Mapping is new Table.Table (
       Table_Component_Type => Mapping,
       Table_Index_Type     => Int,
!      Table_Low_Bound      => 0,
       Table_Initial        => 1_000,
       Table_Increment      => 1_000,
       Table_Name           => "Fmap.Path_Mapping");
--- 67,73 ----
     package Path_Mapping is new Table.Table (
       Table_Component_Type => Mapping,
       Table_Index_Type     => Int,
!      Table_Low_Bound      => 1,
       Table_Initial        => 1_000,
       Table_Increment      => 1_000,
       Table_Name           => "Fmap.Path_Mapping");
*************** package body Fmap is
*** 106,128 ****
  
     Last_In_Table : Int := 0;
  
-    package Forbidden_Names is new GNAT.HTable.Simple_HTable (
-      Header_Num => Header_Num,
-      Element    => Boolean,
-      No_Element => False,
-      Key        => File_Name_Type,
-      Hash       => Hash,
-      Equal      => "=");
- 
-    -----------------------------
-    -- Add_Forbidden_File_Name --
-    -----------------------------
- 
-    procedure Add_Forbidden_File_Name (Name : File_Name_Type) is
-    begin
-       Forbidden_Names.Set (Name, True);
-    end Add_Forbidden_File_Name;
- 
     ---------------------
     -- Add_To_File_Map --
     ---------------------
--- 106,111 ----
*************** package body Fmap is
*** 138,156 ****
        if Unit_Entry = No_Entry or else
          File_Mapping.Table (Unit_Entry).Fname /= File_Name
        then
!          File_Mapping.Increment_Last;
           Unit_Hash_Table.Set (Unit_Name, File_Mapping.Last);
-          File_Mapping.Table (File_Mapping.Last) :=
-            (Uname => Unit_Name, Fname => File_Name);
        end if;
  
        if File_Entry = No_Entry or else
          Path_Mapping.Table (File_Entry).Fname /= Path_Name
        then
!          Path_Mapping.Increment_Last;
           File_Hash_Table.Set (File_Name, Path_Mapping.Last);
-          Path_Mapping.Table (Path_Mapping.Last) :=
-            (Uname => Unit_Name, Fname => Path_Name);
        end if;
     end Add_To_File_Map;
  
--- 121,135 ----
        if Unit_Entry = No_Entry or else
          File_Mapping.Table (Unit_Entry).Fname /= File_Name
        then
!          File_Mapping.Append ((Uname => Unit_Name, Fname => File_Name));
           Unit_Hash_Table.Set (Unit_Name, File_Mapping.Last);
        end if;
  
        if File_Entry = No_Entry or else
          Path_Mapping.Table (File_Entry).Fname /= Path_Name
        then
!          Path_Mapping.Append ((Uname => Unit_Name, Fname => Path_Name));
           File_Hash_Table.Set (File_Name, Path_Mapping.Last);
        end if;
     end Add_To_File_Map;
  
*************** package body Fmap is
*** 212,219 ****
        begin
           Unit_Hash_Table.Reset;
           File_Hash_Table.Reset;
!          Path_Mapping.Set_Last (0);
!          File_Mapping.Set_Last (0);
           Last_In_Table := 0;
        end Empty_Tables;
  
--- 191,198 ----
        begin
           Unit_Hash_Table.Reset;
           File_Hash_Table.Reset;
!          Path_Mapping.Clear;
!          File_Mapping.Clear;
           Last_In_Table := 0;
        end Empty_Tables;
  
*************** package body Fmap is
*** 401,410 ****
        Index : Int := No_Entry;
  
     begin
-       if Forbidden_Names.Get (File) then
-          return Error_File_Name;
-       end if;
- 
        Index := File_Hash_Table.Get (File);
  
        if Index = No_Entry then
--- 380,385 ----
*************** package body Fmap is
*** 424,430 ****
        Path_Mapping.Init;
        Unit_Hash_Table.Reset;
        File_Hash_Table.Reset;
-       Forbidden_Names.Reset;
        Last_In_Table := 0;
     end Reset_Tables;
  
--- 399,404 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/fmap.ads gcc-16.1.0-RC-20260423/gcc/ada/fmap.ads
*** gcc-15.2.0/gcc/ada/fmap.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fmap.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Fmap is
*** 70,78 ****
     procedure Reset_Tables;
     --  Initialize all the internal data structures
  
-    procedure Add_Forbidden_File_Name (Name : File_Name_Type);
-    --  Indicate that a source file name is forbidden. This is used when there
-    --  are excluded sources in projects (attributes Excluded_Source_Files or
-    --  Locally_Removed_Files).
- 
  end Fmap;
--- 70,73 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/fname-sf.adb gcc-16.1.0-RC-20260423/gcc/ada/fname-sf.adb
*** gcc-15.2.0/gcc/ada/fname-sf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname-sf.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/fname-sf.ads gcc-16.1.0-RC-20260423/gcc/ada/fname-sf.ads
*** gcc-15.2.0/gcc/ada/fname-sf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname-sf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/fname-uf.adb gcc-16.1.0-RC-20260423/gcc/ada/fname-uf.adb
*** gcc-15.2.0/gcc/ada/fname-uf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname-uf.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 90,97 ****
       Table_Initial        => 10,
       Table_Increment      => 100,
       Table_Name           => "SFN_Patterns");
!    --  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;
--- 90,98 ----
       Table_Initial        => 10,
       Table_Increment      => 100,
       Table_Name           => "SFN_Patterns");
!    --  Table recording calls to Set_File_Name_Pattern. Note that the last two
!    --  entries are set to represent the standard GNAT rules for file naming;
!    --  that invariant is maintained by Set_File_Name_Pattern.
  
     procedure Instantiate_SFN_Pattern
       (Pattern   : SFN_Pattern_Entry;
*************** package body Fname.UF is
*** 178,183 ****
--- 179,186 ----
     ---------------------------
  
     function Get_Default_File_Name (Uname : Unit_Name_Type) return String is
+       L : constant Int := SFN_Patterns.Last;
+ 
        Buf : Bounded_String;
  
        Pattern : SFN_Pattern_Entry;
*************** package body Fname.UF is
*** 185,194 ****
        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);
--- 188,197 ----
        Get_Unit_Name_String (Buf, Uname, False);
  
        if Is_Spec_Name (Uname) then
!          Pattern := SFN_Patterns.Table (L - 1);
        else
           pragma Assert (Is_Body_Name (Uname));
!          Pattern := SFN_Patterns.Table (L);
        end if;
  
        Instantiate_SFN_Pattern (Pattern, Buf);
diff -Nrcpad gcc-15.2.0/gcc/ada/fname-uf.ads gcc-16.1.0-RC-20260423/gcc/ada/fname-uf.ads
*** gcc-15.2.0/gcc/ada/fname-uf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname-uf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/fname.adb gcc-16.1.0-RC-20260423/gcc/ada/fname.adb
*** gcc-15.2.0/gcc/ada/fname.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 134,152 ****
        Renamings_Included : Boolean := True) return Boolean
     is
     begin
-       --  Definitely false if longer than 12 characters (8.3), except for the
-       --  Interfaces packages and also the implementation units of the 128-bit
-       --  types under System.
- 
-       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;
- 
        if not Has_Internal_Extension (Fname) then
           return False;
        end if;
--- 134,139 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/fname.ads gcc-16.1.0-RC-20260423/gcc/ada/fname.ads
*** gcc-15.2.0/gcc/ada/fname.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/fname.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/freeze.adb gcc-16.1.0-RC-20260423/gcc/ada/freeze.adb
*** gcc-15.2.0/gcc/ada/freeze.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/freeze.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 28,34 ****
  with Checks;         use Checks;
  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 Elists;         use Elists;
--- 28,33 ----
*************** with Sem_Mech;       use Sem_Mech;
*** 63,69 ****
  with Sem_Prag;       use Sem_Prag;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 62,67 ----
*************** package body Freeze is
*** 715,724 ****
           then
              declare
                 O_Ent : Entity_Id;
                 Off   : Boolean;
  
              begin
!                Find_Overlaid_Entity (Addr, O_Ent, Off);
  
                 if Ekind (O_Ent) = E_Constant
                   and then Etype (O_Ent) = Typ
--- 713,723 ----
           then
              declare
                 O_Ent : Entity_Id;
+                O_Typ : Entity_Id;
                 Off   : Boolean;
  
              begin
!                Find_Overlaid_Entity (Addr, O_Ent, O_Typ, Off);
  
                 if Ekind (O_Ent) = E_Constant
                   and then Etype (O_Ent) = Typ
*************** package body Freeze is
*** 931,940 ****
           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;
  
--- 930,944 ----
           elsif Is_Record_Type (T) then
  
              --  A subtype of a variant record must not have non-static
!             --  discriminants that influence the size. We don't do all that we
!             --  could to determine whether a non-static discriminant value can
!             --  make the size vary, but we handle the special case of unchecked
!             --  unions where all objects have the same size (see RM B.3.3
!             --  (14/2)).
  
              if T /= Base_Type (T)
                and then not Static_Discriminated_Components (T)
+               and then not Is_Unchecked_Union (T)
              then
                 return False;
  
*************** package body Freeze is
*** 1568,1579 ****
              New_Formal := Defining_Identifier (New_F_Spec);
  
              --  If the controlling argument is inherited, add conversion to
!             --  parent type for the call.
  
              if Is_Controlling_Formal (Formal) then
                 Append_To (Actuals,
!                  Make_Type_Conversion (Loc,
!                    New_Occurrence_Of (Etype (Formal), Loc),
                     New_Occurrence_Of (New_Formal, Loc)));
              else
                 Append_To (Actuals, New_Occurrence_Of (New_Formal, Loc));
--- 1572,1584 ----
              New_Formal := Defining_Identifier (New_F_Spec);
  
              --  If the controlling argument is inherited, add conversion to
!             --  parent type for the call. We make this an unchecked conversion
!             --  since the formal subtypes of the parent and derived subprograms
!             --  must conform, so checks should not be needed.
  
              if Is_Controlling_Formal (Formal) then
                 Append_To (Actuals,
!                  Unchecked_Convert_To (Etype (Formal),
                     New_Occurrence_Of (New_Formal, Loc)));
              else
                 Append_To (Actuals, New_Occurrence_Of (New_Formal, Loc));
*************** package body Freeze is
*** 2876,2883 ****
     is
        Loc : constant Source_Ptr := Sloc (N);
  
!       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
  
        Atype  : Entity_Id;
--- 2881,2887 ----
     is
        Loc : constant Source_Ptr := Sloc (N);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Atype  : Entity_Id;
*************** package body Freeze is
*** 3641,3646 ****
--- 3645,3653 ----
           Clause : Node_Id;
           --  Set to Component_Size clause or Atomic pragma, if any
  
+          Junk : Boolean;
+          pragma Warnings (Off, Junk);
+ 
           Non_Standard_Enum : Boolean := False;
           --  Set true if any of the index types is an enumeration type with a
           --  non-standard representation.
*************** package body Freeze is
*** 3789,3794 ****
--- 3796,3816 ----
                    then
                       Complain_CS ("independent", Min => True);
                    end if;
+ 
+                   --  If the component is of a fixed-point type, we must check
+                   --  the size. This is not done until the freeze point since,
+                   --  for fixed-point types, we do not know the size until the
+                   --  type is frozen. Likewise for a bit-packed array type.
+ 
+                   if Is_Fixed_Point_Type (Ctyp)
+                     or else Is_Bit_Packed_Array (Ctyp)
+                   then
+                      Clause :=
+                        Get_Attribute_Definition_Clause
+                          (FS, Attribute_Component_Size);
+                      Check_Size
+                        (Expression (Clause), Ctyp, Component_Size (Arr), Junk);
+                   end if;
                 end CS_Check;
  
              --  Check for Aliased or Atomic or Full Access or Independent
*************** package body Freeze is
*** 4244,4250 ****
           <<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
--- 4266,4272 ----
           <<Skip_Packed>>
  
           --  A Ghost type cannot have a component of protected or task type
!          --  (SPARK RM 6.9(22)).
  
           if Is_Ghost_Entity (Arr) and then Is_Concurrent_Type (Ctyp) then
              Error_Msg_N
*************** package body Freeze is
*** 4684,4690 ****
  
           --  Declaring too big an array in disabled ghost code is OK
  
!          if Is_Array_Type (Typ) and then not Is_Ignored_Ghost_Entity (E) then
              Check_Large_Modular_Array (Typ);
           end if;
        end Freeze_Object_Declaration;
--- 4706,4714 ----
  
           --  Declaring too big an array in disabled ghost code is OK
  
!          if Is_Array_Type (Typ)
!            and then not Is_Ignored_Ghost_Entity_In_Codegen (E)
!          then
              Check_Large_Modular_Array (Typ);
           end if;
        end Freeze_Object_Declaration;
*************** package body Freeze is
*** 4811,4816 ****
--- 4835,4842 ----
                   and then Convention (F_Type) = Convention_Ada
                   and then not Has_Warnings_Off (F_Type)
                   and then not Has_Size_Clause (F_Type)
+                  and then Present (Esize (F_Type))
+                  and then Esize (F_Type) = 8
                 then
                    Error_Msg_N
                      ("& is an 8-bit Ada Boolean?x?", Formal);
*************** package body Freeze is
*** 4867,4882 ****
                 if Nkind (Original_Node (Parent (E))) = N_Full_Type_Declaration
                 then
                    Warn_Node := Parent (E);
- 
-                   if Formal = First_Formal (E) then
-                      Error_Msg_NE ("??in inherited operation&", Warn_Node, E);
-                   end if;
                 else
                    Warn_Node := Formal;
                 end if;
  
                 Error_Msg_NE ("?x?type of argument& is unconstrained array",
                    Warn_Node, Formal);
                 Error_Msg_N ("\?x?foreign caller must pass bounds explicitly",
                    Warn_Node);
                 Error_Msg_Qual_Level := 0;
--- 4893,4911 ----
                 if Nkind (Original_Node (Parent (E))) = N_Full_Type_Declaration
                 then
                    Warn_Node := Parent (E);
                 else
                    Warn_Node := Formal;
                 end if;
  
                 Error_Msg_NE ("?x?type of argument& is unconstrained array",
                    Warn_Node, Formal);
+ 
+                if Nkind (Original_Node (Parent (E))) = N_Full_Type_Declaration
+                  and then Formal = First_Formal (E)
+                then
+                   Error_Msg_NE ("\?x?in inherited operation&", Warn_Node, E);
+                end if;
+ 
                 Error_Msg_N ("\?x?foreign caller must pass bounds explicitly",
                    Warn_Node);
                 Error_Msg_Qual_Level := 0;
*************** package body Freeze is
*** 5177,5183 ****
                and then Convention (Desig) /= Convention_Protected
              then
                 Set_Is_Frozen (Desig);
!                Create_Extra_Formals (Desig);
              end if;
           end Check_Itype;
  
--- 5206,5212 ----
                and then Convention (Desig) /= Convention_Protected
              then
                 Set_Is_Frozen (Desig);
!                Create_Extra_Formals (Desig, Related_Nod => Rec);
              end if;
           end Check_Itype;
  
*************** package body Freeze is
*** 5522,5530 ****
                       Set_Must_Be_On_Byte_Boundary (Rec);
  
                       --  Check for component clause that is inconsistent with
!                      --  the required byte boundary alignment.
  
!                      if Present (CC)
                         and then Normalized_First_Bit (Comp) mod
                                    System_Storage_Unit /= 0
                       then
--- 5551,5562 ----
                       Set_Must_Be_On_Byte_Boundary (Rec);
  
                       --  Check for component clause that is inconsistent with
!                      --  the required byte boundary alignment. Do not do this
!                      --  in CodePeer_Mode, as we do not have sufficient info
!                      --  on size and representation clauses.
  
!                      if not CodePeer_Mode
!                        and then Present (CC)
                         and then Normalized_First_Bit (Comp) mod
                                    System_Storage_Unit /= 0
                       then
*************** package body Freeze is
*** 5638,5651 ****
  
              --  If the component is an access type with an allocator as default
              --  value, the designated type will be frozen by the corresponding
!             --  expression in init_proc. In order to place the freeze node for
!             --  the designated type before that for the current record type,
!             --  freeze it now.
! 
!             --  Same process if the component is an array of access types,
!             --  initialized with an aggregate. If the designated type is
!             --  private, it cannot contain allocators, and it is premature
!             --  to freeze the type, so we check for this as well.
  
              elsif Is_Access_Type (Etype (Comp))
                and then Present (Parent (Comp))
--- 5670,5678 ----
  
              --  If the component is an access type with an allocator as default
              --  value, the designated type will be frozen by the corresponding
!             --  expression in the initialization procedure. In order to place
!             --  the freeze node for the designated type ahead of that for the
!             --  current record type, freeze the designated type right now.
  
              elsif Is_Access_Type (Etype (Comp))
                and then Present (Parent (Comp))
*************** package body Freeze is
*** 5657,5673 ****
                 declare
                    Alloc : constant Node_Id :=
                              Unqualify (Expression (Parent (Comp)));
! 
                 begin
                    if Nkind (Alloc) = N_Allocator then
- 
                       --  If component is pointer to a class-wide type, freeze
                       --  the specific type in the expression being allocated.
                       --  The expression may be a subtype indication, in which
                       --  case freeze the subtype mark.
  
!                      if Is_Class_Wide_Type (Designated_Type (Etype (Comp)))
!                      then
                          if Is_Entity_Name (Expression (Alloc)) then
                             Freeze_And_Append
                               (Entity (Expression (Alloc)), N, Result);
--- 5684,5699 ----
                 declare
                    Alloc : constant Node_Id :=
                              Unqualify (Expression (Parent (Comp)));
!                   Desig_Typ : constant Entity_Id :=
!                                 Designated_Type (Etype (Comp));
                 begin
                    if Nkind (Alloc) = N_Allocator then
                       --  If component is pointer to a class-wide type, freeze
                       --  the specific type in the expression being allocated.
                       --  The expression may be a subtype indication, in which
                       --  case freeze the subtype mark.
  
!                      if Is_Class_Wide_Type (Desig_Typ) then
                          if Is_Entity_Name (Expression (Alloc)) then
                             Freeze_And_Append
                               (Entity (Expression (Alloc)), N, Result);
*************** package body Freeze is
*** 5678,5698 ****
                              (Entity (Subtype_Mark (Expression (Alloc))),
                               N, Result);
                          end if;
!                      elsif Is_Itype (Designated_Type (Etype (Comp))) then
                          Check_Itype (Etype (Comp));
                       else
!                         Freeze_And_Append
!                           (Designated_Type (Etype (Comp)), N, Result);
                       end if;
                    end if;
                 end;
              elsif Is_Access_Type (Etype (Comp))
                and then Is_Itype (Designated_Type (Etype (Comp)))
              then
                 Check_Itype (Etype (Comp));
  
!             --  Freeze the designated type when initializing a component with
!             --  an aggregate in case the aggregate contains allocators.
  
              --     type T is ...;
              --     type T_Ptr is access all T;
--- 5704,5727 ----
                              (Entity (Subtype_Mark (Expression (Alloc))),
                               N, Result);
                          end if;
!                      elsif Is_Itype (Desig_Typ) then
                          Check_Itype (Etype (Comp));
                       else
!                         Freeze_And_Append (Desig_Typ, N, Result);
                       end if;
                    end if;
                 end;
+ 
              elsif Is_Access_Type (Etype (Comp))
                and then Is_Itype (Designated_Type (Etype (Comp)))
              then
                 Check_Itype (Etype (Comp));
  
!             --  Likewise if the component is an array of access types that is
!             --  initialized with an aggregate, in case the aggregate contains
!             --  allocators. But if the designated type is private, it cannot
!             --  contain allocators, and it is premature to freeze the type,
!             --  so we check for this as well.
  
              --     type T is ...;
              --     type T_Ptr is access all T;
*************** package body Freeze is
*** 5704,5716 ****
  
              elsif Is_Array_Type (Etype (Comp))
                and then Is_Access_Type (Component_Type (Etype (Comp)))
              then
                 declare
-                   Comp_Par  : constant Node_Id   := Parent (Comp);
                    Desig_Typ : constant Entity_Id :=
                                  Designated_Type
                                    (Component_Type (Etype (Comp)));
- 
                 begin
                    --  The only case when this sort of freezing is not done is
                    --  when the designated type is class-wide and the root type
--- 5733,5747 ----
  
              elsif Is_Array_Type (Etype (Comp))
                and then Is_Access_Type (Component_Type (Etype (Comp)))
+               and then Present (Parent (Comp))
+               and then Nkind (Parent (Comp)) = N_Component_Declaration
+               and then Present (Expression (Parent (Comp)))
+               and then Nkind (Expression (Parent (Comp))) = N_Aggregate
              then
                 declare
                    Desig_Typ : constant Entity_Id :=
                                  Designated_Type
                                    (Component_Type (Etype (Comp)));
                 begin
                    --  The only case when this sort of freezing is not done is
                    --  when the designated type is class-wide and the root type
*************** package body Freeze is
*** 5732,5743 ****
                    then
                       null;
  
!                   elsif Is_Fully_Defined (Desig_Typ)
!                     and then Present (Comp_Par)
!                     and then Nkind (Comp_Par) = N_Component_Declaration
!                     and then Present (Expression (Comp_Par))
!                     and then Nkind (Expression (Comp_Par)) = N_Aggregate
!                   then
                       Freeze_And_Append (Desig_Typ, N, Result);
                    end if;
                 end;
--- 5763,5769 ----
                    then
                       null;
  
!                   elsif Is_Fully_Defined (Desig_Typ) then
                       Freeze_And_Append (Desig_Typ, N, Result);
                    end if;
                 end;
*************** package body Freeze is
*** 6782,6787 ****
--- 6808,6834 ----
  
        Set_Is_Frozen (E);
  
+       --  Freeze profile of anonymous access-to-subprogram type
+ 
+       if Do_Freeze_Profile
+         and then Ekind (E) = E_Anonymous_Access_Subprogram_Type
+       then
+          declare
+             Skip_Because_In_Generic : constant Boolean :=
+               In_Generic_Scope (E) or else
+                 (Is_Itype (E)
+                   and then Nkind (Parent (Associated_Node_For_Itype (E)))
+                     = N_Generic_Subprogram_Declaration);
+          begin
+             if not Skip_Because_In_Generic then
+                if not Freeze_Profile (Designated_Type (E)) then
+                   goto Leave;
+                end if;
+                Freeze_Subprogram (Designated_Type (E));
+             end if;
+          end;
+       end if;
+ 
        --  Case of entity being frozen is other than a type
  
        if not Is_Type (E) then
*************** package body Freeze is
*** 7143,7173 ****
                          Next_Index (Indx);
                       end loop;
  
!                      --  What we are looking for here is the situation where
!                      --  the RM_Size given would be exactly right if there was
!                      --  a pragma Pack, resulting in the component size being
!                      --  the RM_Size of the component type.
! 
!                      if RM_Size (E) = Num_Elmts * Rsiz then
! 
!                         --  For implicit packing mode, just set the component
!                         --  size and Freeze_Array_Type will do the rest.
  
!                         if Implicit_Packing then
!                            Set_Component_Size (Btyp, Rsiz);
  
!                         --  Otherwise give an error message, except that if the
!                         --  specified Size is zero, there is no need for pragma
!                         --  Pack. Note that size zero is not considered
!                         --  Addressable.
  
!                         elsif RM_Size (E) /= Uint_0 then
!                            Error_Msg_NE
!                              ("size given for& too small", SZ, E);
!                            Error_Msg_N -- CODEFIX
!                              ("\use explicit pragma Pack or use pragma "
!                               & "Implicit_Packing", SZ);
!                         end if;
                       end if;
                    end if;
                 end;
--- 7190,7219 ----
                          Next_Index (Indx);
                       end loop;
  
!                      --  In Implicit_Packing mode, if the specified RM_Size
!                      --  would be big enough if there were a pragma Pack,
!                      --  then set the component size as if there were Pack,
!                      --  and Freeze_Array_Type will do the rest.
  
!                      if Implicit_Packing
!                        and then RM_Size (E) >= Num_Elmts * Rsiz
!                      then
!                         Set_Component_Size (Btyp, Rsiz);
  
!                      --  Otherwise, if pragma Pack would result in exactly the
!                      --  right size, give an error message suggesting packing,
!                      --  except that if the specified Size is zero, there is no
!                      --  need for pragma Pack. Note that size zero is not
!                      --  considered Addressable.
  
!                      elsif RM_Size (E) = Num_Elmts * Rsiz
!                        and then RM_Size (E) /= Uint_0
!                      then
!                         Error_Msg_NE
!                           ("size given for& too small", SZ, E);
!                         Error_Msg_N -- CODEFIX
!                           ("\use explicit pragma Pack or use pragma "
!                            & "Implicit_Packing", SZ);
                       end if;
                    end if;
                 end;
*************** package body Freeze is
*** 7353,7358 ****
--- 7399,7413 ----
  
           elsif Ekind (E) in E_Record_Type | E_Record_Subtype then
              if not In_Generic_Scope (E) then
+                --  If this is a class-wide equivalent type for a non-interface
+                --  root type, freeze the root type.
+ 
+                if Is_Class_Wide_Equivalent_Type (E)
+                  and then Present (Parent_Subtype (E))
+                then
+                   Freeze_And_Append (Parent_Subtype (E), N, Result);
+                end if;
+ 
                 Freeze_Record_Type (E);
              end if;
  
*************** package body Freeze is
*** 7659,7665 ****
           elsif Is_Integer_Type (E) then
              Adjust_Esize_For_Alignment (E);
  
!             if Is_Modular_Integer_Type (E) then
                 --  Standard_Address has been built with the assumption that its
                 --  modulus was System_Address_Size, but this is not a universal
                 --  property and may need to be corrected.
--- 7714,7720 ----
           elsif Is_Integer_Type (E) then
              Adjust_Esize_For_Alignment (E);
  
!             if Has_Modular_Operations (E) then
                 --  Standard_Address has been built with the assumption that its
                 --  modulus was System_Address_Size, but this is not a universal
                 --  property and may need to be corrected.
*************** package body Freeze is
*** 7714,7720 ****
  
              --  Check restriction for standard storage pool
  
!             if No (Associated_Storage_Pool (E)) then
                 Check_Restriction (No_Standard_Storage_Pools, E);
              end if;
  
--- 7769,7782 ----
  
              --  Check restriction for standard storage pool
  
!             --  Skip this check when Etype (T) is unknown, since attribute
!             --  Associated_Storage_Pool is only available in the root type
!             --  of E, and in such case it cannot not be computed (thus
!             --  causing spurious errors).
! 
!             if Present (Etype (E))
!               and then No (Associated_Storage_Pool (E))
!             then
                 Check_Restriction (No_Standard_Storage_Pools, E);
              end if;
  
*************** package body Freeze is
*** 8125,8130 ****
--- 8187,8193 ----
           if Ekind (E) = E_Anonymous_Access_Subprogram_Type
             and then Ekind (Designated_Type (E)) = E_Subprogram_Type
           then
+             Create_Extra_Formals (Designated_Type (E));
              Layout_Type (Etype (Designated_Type (E)));
           end if;
  
*************** package body Freeze is
*** 8323,8334 ****
        --  and Per-Object Expressions" will suppress the insertion, and the
        --  freeze node will be dropped on the floor.
  
!       if Saved_GM = Ignore
!         and then Ghost_Mode /= Ignore
!         and then Present (Ignored_Ghost_Region)
        then
           Insert_Actions
!            (Assoc_Node   => Ignored_Ghost_Region,
              Ins_Actions  => Result,
              Spec_Expr_OK => True);
  
--- 8386,8398 ----
        --  and Per-Object Expressions" will suppress the insertion, and the
        --  freeze node will be dropped on the floor.
  
!       if not CodePeer_Mode
!         and then Saved_Ghost_Config.Ghost_Mode = Ignore
!         and then Ghost_Config.Ghost_Mode /= Ignore
!         and then Present (Ghost_Config.Ignored_Ghost_Region)
        then
           Insert_Actions
!            (Assoc_Node   => Ghost_Config.Ignored_Ghost_Region,
              Ins_Actions  => Result,
              Spec_Expr_OK => True);
  
*************** package body Freeze is
*** 8336,8342 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        return Result;
     end Freeze_Entity;
--- 8400,8406 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        return Result;
     end Freeze_Entity;
*************** package body Freeze is
*** 8750,8756 ****
                and then Nkind (Parent (N)) = N_Function_Call
                and then not Has_Foreign_Convention (Nam)
              then
!                Create_Extra_Formals (Nam);
              end if;
  
           when others =>
--- 8814,8820 ----
                and then Nkind (Parent (N)) = N_Function_Call
                and then not Has_Foreign_Convention (Nam)
              then
!                Create_Extra_Formals (Nam, Related_Nod => N);
              end if;
  
           when others =>
*************** package body Freeze is
*** 9463,9478 ****
        --  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
!          Preanalyze_Spec_Expression (Dup_Expr, Typ);
        end if;
  
        --  Restore certain attributes of Def_Id since the preanalysis may
--- 9527,9543 ----
        --  pre/postconditions during expansion of the subprogram body, the
        --  subprogram is already installed.
  
!       --  Call Preanalyze_And_Resolve_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_And_Resolve_Spec_Expression (Dup_Expr, Typ);
           End_Scope;
        else
!          Preanalyze_And_Resolve_Spec_Expression (Dup_Expr, Typ);
        end if;
  
        --  Restore certain attributes of Def_Id since the preanalysis may
*************** package body Freeze is
*** 10387,10392 ****
--- 10452,10459 ----
  
        --  Local variables
  
+       use Deferred_Extra_Formals_Support;
+ 
        F      : Entity_Id;
        Retype : Entity_Id;
  
*************** package body Freeze is
*** 10427,10433 ****
        --  For C++ constructors check that their external name has been given
        --  (either in pragma CPP_Constructor or in a pragma import).
  
!       if Is_Constructor (E)
          and then Convention (E) = Convention_CPP
          and then
             (No (Interface_Name (E))
--- 10494,10500 ----
        --  For C++ constructors check that their external name has been given
        --  (either in pragma CPP_Constructor or in a pragma import).
  
!       if Is_CPP_Constructor (E)
          and then Convention (E) = Convention_CPP
          and then
             (No (Interface_Name (E))
*************** package body Freeze is
*** 10487,10494 ****
              Create_Extra_Formals (E);
  
              pragma Assert
!               ((Ekind (E) = E_Subprogram_Type
!                   and then Extra_Formals_OK (E))
                 or else
                   (Is_Subprogram (E)
                     and then Extra_Formals_OK (E)
--- 10554,10564 ----
              Create_Extra_Formals (E);
  
              pragma Assert
!               ((Extra_Formals_Known (E)
!                  or else Is_Deferred_Extra_Formals_Entity (E))
!                or else
!                  (Ekind (E) = E_Subprogram_Type
!                    and then Extra_Formals_OK (E))
                 or else
                   (Is_Subprogram (E)
                     and then Extra_Formals_OK (E)
*************** package body Freeze is
*** 10517,10522 ****
--- 10587,10596 ----
        else
           Set_Mechanisms (E);
  
+          if not Extra_Formals_Known (E) then
+             Freeze_Extra_Formals (E);
+          end if;
+ 
           --  For foreign conventions, warn about return of unconstrained array
  
           if Ekind (E) = E_Function then
*************** package body Freeze is
*** 10572,10577 ****
--- 10646,10656 ----
           end if;
        end if;
  
+       --  Check formals matching in thunks
+ 
+       pragma Assert (not Is_Thunk (E)
+         or else Extra_Formals_Match_OK (Thunk_Entity (E), E));
+ 
        --  Pragma Inline_Always is disallowed for dispatching subprograms
        --  because the address of such subprograms is saved in the dispatch
        --  table to support dispatching calls, and dispatching calls cannot
*************** package body Freeze is
*** 10973,10979 ****
        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;
--- 11052,11061 ----
        E   : Entity_Id;
        N   : Node_Id) return Boolean
     is
!       Decl : constant Node_Id :=
!         (if Ekind (E) = E_Subprogram_Type and then No (Parent (E))
!           then Empty
!           else Original_Node (Unit_Declaration_Node (E)));
  
        function Is_Dispatching_Call_Or_Tagged_Result_Or_Aggregate
          (N : Node_Id) return Traverse_Result;
diff -Nrcpad gcc-15.2.0/gcc/ada/freeze.ads gcc-16.1.0-RC-20260423/gcc/ada/freeze.ads
*** gcc-15.2.0/gcc/ada/freeze.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/freeze.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/frontend.adb gcc-16.1.0-RC-20260423/gcc/ada/frontend.adb
*** gcc-15.2.0/gcc/ada/frontend.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/frontend.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Checks;
*** 30,36 ****
  with CStand;
  with Debug;          use Debug;
  with Elists;
- with Exp_Ch6;
  with Exp_Dbug;
  with Exp_Unst;
  with Fmap;
--- 30,35 ----
*************** with Scn;            use Scn;
*** 56,66 ****
  with Sem;            use Sem;
  with Sem_Aux;
  with Sem_Ch8;
  with Sem_SCIL;
  with Sem_Elab;       use Sem_Elab;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 55,65 ----
  with Sem;            use Sem;
  with Sem_Aux;
  with Sem_Ch8;
+ with Sem_Ch12;
  with Sem_SCIL;
  with Sem_Elab;       use Sem_Elab;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Warn;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
*************** with Sinput.L;       use Sinput.L;
*** 68,74 ****
  with SCIL_LL;
  with Tbuild;         use Tbuild;
  with Types;          use Types;
- with VAST;
  with Warnsw;         use Warnsw;
  
  procedure Frontend is
--- 67,72 ----
*************** begin
*** 368,378 ****
        --  If we have restriction No_Exception_Propagation, and we did not have
        --  an explicit switch turning off Warn_On_Non_Local_Exception, then turn
        --  on this warning by default if we have encountered an exception
!       --  handler.
  
        if Restriction_Check_Required (No_Exception_Propagation)
          and then not No_Warn_On_Non_Local_Exception
          and then Exception_Handler_Encountered
        then
           Warn_On_Non_Local_Exception := True;
        end if;
--- 366,377 ----
        --  If we have restriction No_Exception_Propagation, and we did not have
        --  an explicit switch turning off Warn_On_Non_Local_Exception, then turn
        --  on this warning by default if we have encountered an exception
!       --  handler. We do not override the setting of GNATprove.
  
        if Restriction_Check_Required (No_Exception_Propagation)
          and then not No_Warn_On_Non_Local_Exception
          and then Exception_Handler_Encountered
+         and then not GNATprove_Mode
        then
           Warn_On_Non_Local_Exception := True;
        end if;
*************** begin
*** 431,436 ****
--- 430,447 ----
                    Analyze_Inlined_Bodies;
                 end if;
  
+                --  Mark the structural instances spawned by the main unit as
+                --  Link Once because other units may spawn them too.
+ 
+                Sem_Ch12.Mark_Link_Once
+                  (Declarations (Aux_Decls_Node (Cunit (Main_Unit))));
+ 
+                if Nkind (Unit (Cunit (Main_Unit))) = N_Package_Body then
+                   Sem_Ch12.Mark_Link_Once
+                     (Declarations
+                       (Aux_Decls_Node (Spec_Lib_Unit (Cunit (Main_Unit)))));
+                end if;
+ 
                 --  Remove entities from program that do not have any execution
                 --  time references.
  
*************** begin
*** 476,482 ****
              --  executable. This action must be performed very late because it
              --  heavily alters the tree.
  
!             if Operating_Mode = Generate_Code or else GNATprove_Mode then
                 Remove_Ignored_Ghost_Code;
              end if;
  
--- 487,493 ----
              --  executable. This action must be performed very late because it
              --  heavily alters the tree.
  
!             if Operating_Mode = Generate_Code and not CodePeer_Mode then
                 Remove_Ignored_Ghost_Code;
              end if;
  
*************** begin
*** 504,525 ****
        null;
     end if;
  
-    --  Verify the validity of the tree
- 
-    if Debug_Flag_Underscore_VV then
-       VAST.Check_Tree (Cunit (Main_Unit));
-    end if;
- 
-    --  Validate all the subprogram calls; this work will be done by VAST; in
-    --  the meantime it is done to check extra formals and it can be disabled
-    --  using -gnatd_X (which also disables all the other assertions on extra
-    --  formals). It is invoked using pragma Debug to avoid adding any cost
-    --  when the compiler is built with assertions disabled.
- 
-    if not Debug_Flag_Underscore_XX then
-       pragma Debug (Exp_Ch6.Validate_Subprogram_Calls (Cunit (Main_Unit)));
-    end if;
- 
     --  Dump the source now. Note that we do this as soon as the analysis
     --  of the tree is complete, because it is not just a dump in the case
     --  of -gnatD, where it rewrites all source locations in the tree.
--- 515,520 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/frontend.ads gcc-16.1.0-RC-20260423/gcc/ada/frontend.ads
*** gcc-15.2.0/gcc/ada/frontend.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/frontend.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/Make-lang.in gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/Make-lang.in
*** gcc-15.2.0/gcc/ada/gcc-interface/Make-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/Make-lang.in	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU Ada (GNAT).
! # Copyright (C) 2009-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** WARN_ADAFLAGS= -W -Wall
*** 57,63 ****
  # checks fully active.
  
  STAGE1=False
- GNATBIND_FLAGS=
  GNATLIB=
  
  ifeq ($(CROSS),)
--- 57,62 ----
*************** ifeq ($(CROSS),)
*** 65,71 ****
  
    ifeq ($(if $(wildcard ../stage_current),$(shell cat ../stage_current),stage1),stage1)
      STAGE1=True
-     GNATBIND_FLAGS=-t
    endif
  else
    ADAFLAGS=$(COMMON_ADAFLAGS)
--- 64,69 ----
*************** ada.serial = gnat1$(exeext)
*** 185,196 ****
  # variable conveys what we need for this, set to "g++" if not bootstrapping,
  # ".../xg++" otherwise.
  
  # There are too many Ada sources to check against here.  Let's
  # always force the recursive make.
  ifeq ($(build), $(host))
!   ifeq ($(host), $(target))
!     # This is a regular native. So use the compiler from our current build
!     # tree.
      ADA_TOOLS_FLAGS_TO_PASS=\
          CC="../../xgcc -B../../" \
          CXX="$(CXX)" \
--- 183,209 ----
  # variable conveys what we need for this, set to "g++" if not bootstrapping,
  # ".../xg++" otherwise.
  
+ GNATMAKE_FOR_HOST = $(GNATMAKE)
+ GNATBIND_FOR_HOST = $(GNATBIND)
+ GNATLINK_FOR_HOST = $(subst gnatmake,gnatlink,$(GNATMAKE))
+ GNATLS_FOR_HOST   = $(subst gnatmake,gnatls,$(GNATMAKE))
+ 
  # There are too many Ada sources to check against here.  Let's
  # always force the recursive make.
+ 
+ # A native x86_64 compiler defaulting to -m32 is not suitable to build
+ # 64bit host tools.  Arrange to build the tools with the base compiler
+ # in this case, as we do for cross configurations.
+ 
+ m32_target=$(filter x86_64%abi32, $(target))
+ not_m32_target=$(if $(m32_target),,$(target))
+ 
  ifeq ($(build), $(host))
!   native_target=$(filter $(host), $(target))
! 
!   ifneq ($(and $(native_target), $(not_m32_target)),)
!     # This is a regular native. Use the compiler from our
!     # current build tree.
      ADA_TOOLS_FLAGS_TO_PASS=\
          CC="../../xgcc -B../../" \
          CXX="$(CXX)" \
*************** ifeq ($(build), $(host))
*** 200,207 ****
          GNATLINK="../../gnatlink" \
          GNATBIND="../../gnatbind"
    else
!     # This is a regular cross compiler. Use the native compiler to compile
!     # the tools.
  
      # put the host RTS dir first in the PATH to hide the default runtime
      # files that are among the sources
--- 213,220 ----
          GNATLINK="../../gnatlink" \
          GNATBIND="../../gnatbind"
    else
!     # This is a regular cross compiler or a 64bit native defaulting to -m32.
!     # Use the base native compiler to compile the tools.
  
      # put the host RTS dir first in the PATH to hide the default runtime
      # files that are among the sources
*************** ifeq ($(build), $(host))
*** 214,233 ****
          CXX="$(CXX)" \
          $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
          ADA_INCLUDES="-I../generated -I$(RTS_DIR)/../adainclude -I$(RTS_DIR)" \
!         GNATMAKE="gnatmake" \
!         GNATBIND="gnatbind" \
!         GNATLINK="gnatlink" \
          LIBGNAT=""
    endif
  else
    # Build is different from host so we are either building a canadian cross
    # or a cross-native compiler. We provide defaults for tools targeting the
!   # host platform, but they can be overriden by just setting <tool>_FOR_HOST
    # variables.
-   GNATMAKE_FOR_HOST=$(host_noncanonical)-gnatmake
-   GNATBIND_FOR_HOST=$(host_noncanonical)-gnatbind
-   GNATLINK_FOR_HOST=$(host_noncanonical)-gnatlink
-   GNATLS_FOR_HOST=$(host_noncanonical)-gnatls
  
    ifeq ($(host), $(target))
      # This is a cross native. All the sources are taken from the currently
--- 227,242 ----
          CXX="$(CXX)" \
          $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) \
          ADA_INCLUDES="-I../generated -I$(RTS_DIR)/../adainclude -I$(RTS_DIR)" \
!         GNATMAKE="$(GNATMAKE_FOR_HOST)" \
!         GNATBIND="$(GNATBIND_FOR_HOST)" \
!         GNATLINK="$(GNATLINK_FOR_HOST)" \
          LIBGNAT=""
    endif
  else
    # Build is different from host so we are either building a canadian cross
    # or a cross-native compiler. We provide defaults for tools targeting the
!   # host platform, but they can be overridden by just setting <tool>_FOR_HOST
    # variables.
  
    ifeq ($(host), $(target))
      # This is a cross native. All the sources are taken from the currently
*************** GNAT_ADA_OBJS =	\
*** 315,337 ****
   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	\
   ada/elists.o	\
   ada/err_vars.o	\
   ada/errout.o	\
   ada/erroutc.o	\
   ada/eval_fat.o	\
   ada/exp_aggr.o	\
   ada/exp_spark.o	\
--- 324,341 ----
   ada/cstand.o	\
   ada/debug.o	\
   ada/debug_a.o	\
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o	\
   ada/elists.o	\
   ada/err_vars.o	\
+  ada/errid.o \
+  ada/errid-diagnostic_repository.o \
+  ada/errid-switch_repository.o \
   ada/errout.o	\
   ada/erroutc.o	\
+  ada/erroutc-pretty_emitter.o \
+  ada/erroutc-sarif_emitter.o \
   ada/eval_fat.o	\
   ada/exp_aggr.o	\
   ada/exp_spark.o	\
*************** GNAT_ADA_OBJS =	\
*** 380,385 ****
--- 384,390 ----
   ada/impunit.o	\
   ada/inline.o	\
   ada/itypes.o	\
+  ada/json_utils.o \
   ada/krunch.o	\
   ada/layout.o	\
   ada/lib-load.o	\
*************** GNAT_ADA_OBJS =	\
*** 482,491 ****
--- 487,501 ----
   ada/warnsw.o	\
   ada/widechar.o \
   ada/gnat.o	\
+  ada/g-byorma.o \
   ada/g-dynhta.o	\
   ada/g-graphs.o	\
+  ada/g-htable.o \
   ada/g-lists.o	\
   ada/g-sets.o	\
+  ada/g-spchge.o \
+  ada/g-speche.o \
+  ada/g-u3spch.o \
   ada/s-pehage.o	\
   ada/s-utf_32.o
  
*************** GNAT_ADA_OBJS+= \
*** 518,531 ****
   ada/libgnat/a-nubinu.o	\
   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	\
--- 528,536 ----
*************** GNAT_ADA_OBJS+= \
*** 535,541 ****
   ada/libgnat/s-bitops.o	\
   ada/libgnat/s-carun8.o	\
   ada/libgnat/s-casuti.o \
!  ada/libgnat/s-crtl.o	\
   ada/libgnat/s-conca2.o	\
   ada/libgnat/s-conca3.o	\
   ada/libgnat/s-conca4.o	\
--- 540,546 ----
   ada/libgnat/s-bitops.o	\
   ada/libgnat/s-carun8.o	\
   ada/libgnat/s-casuti.o \
!  ada/libgnat/s-cautns.o \
   ada/libgnat/s-conca2.o	\
   ada/libgnat/s-conca3.o	\
   ada/libgnat/s-conca4.o	\
*************** GNAT_ADA_OBJS+= \
*** 545,550 ****
--- 550,556 ----
   ada/libgnat/s-conca8.o	\
   ada/libgnat/s-conca9.o	\
   ada/libgnat/s-crc32.o	\
+  ada/libgnat/s-crtl.o	\
   ada/libgnat/s-excdeb.o	\
   ada/libgnat/s-except.o	\
   ada/libgnat/s-excmac.o	\
*************** GNAT_ADA_OBJS+= \
*** 562,569 ****
   ada/libgnat/s-secsta.o	\
   ada/libgnat/s-soflin.o	\
   ada/libgnat/s-soliin.o	\
-  ada/libgnat/s-spark.o	\
-  ada/libgnat/s-spcuop.o	\
   ada/libgnat/s-stache.o	\
   ada/libgnat/s-stalib.o	\
   ada/libgnat/s-stoele.o	\
--- 568,573 ----
*************** GNAT_ADA_OBJS+= \
*** 575,585 ****
   ada/libgnat/s-trasym.o \
   ada/libgnat/s-unstyp.o	\
   ada/libgnat/s-valint.o	\
-  ada/libgnat/s-valspe.o	\
   ada/libgnat/s-valuns.o	\
   ada/libgnat/s-valuti.o	\
-  ada/libgnat/s-vs_int.o \
-  ada/libgnat/s-vs_uns.o \
   ada/libgnat/s-wchcnv.o	\
   ada/libgnat/s-wchcon.o	\
   ada/libgnat/s-wchjis.o	\
--- 579,586 ----
*************** GNATBIND_OBJS = \
*** 615,637 ****
   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      \
   ada/elists.o     \
   ada/err_vars.o   \
   ada/errout.o     \
   ada/erroutc.o    \
   ada/exit.o       \
   ada/final.o      \
   ada/fmap.o       \
--- 616,633 ----
   ada/casing.o     \
   ada/csets.o      \
   ada/debug.o      \
   ada/einfo-entities.o \
   ada/einfo-utils.o \
   ada/einfo.o      \
   ada/elists.o     \
   ada/err_vars.o   \
+  ada/errid.o      \
+  ada/errid-diagnostic_repository.o \
+  ada/errid-switch_repository.o \
   ada/errout.o     \
   ada/erroutc.o    \
+  ada/erroutc-sarif_emitter.o \
+  ada/erroutc-pretty_emitter.o \
   ada/exit.o       \
   ada/final.o      \
   ada/fmap.o       \
*************** GNATBIND_OBJS = \
*** 639,644 ****
--- 635,641 ----
   ada/gnatbind.o   \
   ada/gnatvsn.o    \
   ada/hostparm.o   \
+  ada/json_utils.o \
   ada/lib.o        \
   ada/link.o       \
   ada/namet.o      \
*************** GNATBIND_OBJS = \
*** 672,686 ****
   ada/uintp.o      \
   ada/uname.o      \
   ada/urealp.o     \
   ada/warnsw.o     \
   ada/widechar.o   \
   ada/gnat.o       \
   ada/g-dynhta.o   \
-  ada/g-lists.o    \
   ada/g-graphs.o   \
   ada/g-sets.o     \
   ada/s-resfil.o   \
-  ada/version.o    \
   ada/s-utf_32.o
  
  ifeq ($(STAGE1),False)
--- 669,686 ----
   ada/uintp.o      \
   ada/uname.o      \
   ada/urealp.o     \
+  ada/version.o    \
   ada/warnsw.o     \
   ada/widechar.o   \
   ada/gnat.o       \
+  ada/g-byorma.o   \
   ada/g-dynhta.o   \
   ada/g-graphs.o   \
+  ada/g-hesora.o   \
+  ada/g-htable.o   \
+  ada/g-lists.o    \
   ada/g-sets.o     \
   ada/s-resfil.o   \
   ada/s-utf_32.o
  
  ifeq ($(STAGE1),False)
*************** GNATBIND_OBJS +=  \
*** 699,715 ****
   ada/libgnat/a-nubinu.o   \
   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   \
   ada/libgnat/s-carun8.o   \
   ada/libgnat/s-casuti.o   \
   ada/libgnat/s-conca2.o   \
   ada/libgnat/s-conca3.o   \
   ada/libgnat/s-conca4.o   \
--- 699,713 ----
   ada/libgnat/a-nubinu.o   \
   ada/libgnat/a-numeri.o   \
   ada/libgnat/ada.o        \
   ada/libgnat/g-cstyin.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   \
   ada/libgnat/s-carun8.o   \
   ada/libgnat/s-casuti.o   \
+  ada/libgnat/s-cautns.o   \
   ada/libgnat/s-conca2.o   \
   ada/libgnat/s-conca3.o   \
   ada/libgnat/s-conca4.o   \
*************** GNATBIND_OBJS +=  \
*** 719,724 ****
--- 717,723 ----
   ada/libgnat/s-conca8.o   \
   ada/libgnat/s-conca9.o   \
   ada/libgnat/s-crc32.o    \
+  ada/libgnat/s-crtl.o     \
   ada/libgnat/s-excdeb.o   \
   ada/libgnat/s-except.o   \
   ada/libgnat/s-excmac.o   \
*************** gnatbind$(exeext): ada/b_gnatb.o $(CONFI
*** 803,810 ****
  	+$(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:
--- 802,812 ----
  	+$(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
+ 
+ native_gnattools1=$(if $(not_m32_target),gnattools1,gnattools1-re)
+ 
  gnattools: $(CONFIG_H) prefix.o force
! 	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) $(native_gnattools1)
  	$(MAKE) -C ada $(ADA_TOOLS_FLAGS_TO_PASS) gnattools2
  
  regnattools:
*************** check-ada-subtargets: check-acats-subtar
*** 1108,1114 ****
  # No ada-specific selftests
  selftest-ada:
  
! ACATSDIR = $(TESTSUITEDIR)/ada/acats
  ACATSCMD = run_acats.sh
  
  check_acats_numbers0:=1 2 3 4 5 6 7 8 9
--- 1110,1116 ----
  # No ada-specific selftests
  selftest-ada:
  
! ACATSDIR = $(TESTSUITEDIR)/ada/acats-4
  ACATSCMD = run_acats.sh
  
  check_acats_numbers0:=1 2 3 4 5 6 7 8 9
*************** $(check_acats_targets): check-acats%:
*** 1178,1184 ****
  
  ada/b_gnat1.adb : $(GNAT1_ADA_OBJS)
          # Old gnatbind do not allow a path for -o.
! 	$(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnat1.adb -n ada/gnat1drv.ali
  	$(MV) b_gnat1.adb b_gnat1.ads ada/
  
  ada/b_gnat1.o : ada/b_gnat1.adb
--- 1180,1186 ----
  
  ada/b_gnat1.adb : $(GNAT1_ADA_OBJS)
          # Old gnatbind do not allow a path for -o.
! 	$(GNATBIND) $(ADA_INCLUDES) -o b_gnat1.adb -n ada/gnat1drv.ali
  	$(MV) b_gnat1.adb b_gnat1.ads ada/
  
  ada/b_gnat1.o : ada/b_gnat1.adb
*************** ada/b_gnat1.o : ada/b_gnat1.adb
*** 1189,1195 ****
  
  ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
          # Old gnatbind do not allow a path for -o.
! 	$(GNATBIND) $(GNATBIND_FLAGS) $(ADA_INCLUDES) -o b_gnatb.adb ada/gnatbind.ali
  	$(MV) b_gnatb.adb b_gnatb.ads ada/
  
  ada/b_gnatb.o : ada/b_gnatb.adb
--- 1191,1197 ----
  
  ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
          # Old gnatbind do not allow a path for -o.
! 	$(GNATBIND) $(ADA_INCLUDES) -o b_gnatb.adb ada/gnatbind.ali
  	$(MV) b_gnatb.adb b_gnatb.ads ada/
  
  ada/b_gnatb.o : ada/b_gnatb.adb
*************** ADA_GENERATED_FILES = \
*** 1260,1270 ****
    ada/seinfo.ads ada/seinfo_tables.ads ada/seinfo_tables.adb \
    ada/sinfo-nodes.ads ada/sinfo-nodes.adb \
    ada/einfo-entities.ads ada/einfo-entities.adb \
!   ada/gnat.ads ada/g-dynhta.ads ada/g-dynhta.adb \
!   ada/g-dyntab.ads ada/g-dyntab.adb ada/g-graphs.ads ada/g-graphs.adb \
!   ada/g-lists.ads ada/g-lists.adb ada/g-sets.ads ada/g-sets.adb \
!   ada/s-rident.ads ada/s-pehage.ads ada/s-pehage.adb \
!   ada/s-resfil.ads ada/s-resfil.adb ada/s-utf_32.ads ada/s-utf_32.adb
  
  # Only used to manually trigger the creation of the generated files.
  .PHONY:
--- 1262,1283 ----
    ada/seinfo.ads ada/seinfo_tables.ads ada/seinfo_tables.adb \
    ada/sinfo-nodes.ads ada/sinfo-nodes.adb \
    ada/einfo-entities.ads ada/einfo-entities.adb \
!   ada/gnat.ads \
!   ada/g-byorma.ads ada/g-byorma.adb \
!   ada/g-dynhta.ads ada/g-dynhta.adb \
!   ada/g-dyntab.ads ada/g-dyntab.adb \
!   ada/g-graphs.ads ada/g-graphs.adb \
!   ada/g-hesora.ads ada/g-hesora.adb \
!   ada/g-htable.ads ada/g-htable.adb \
!   ada/g-lists.ads ada/g-lists.adb \
!   ada/g-sets.ads ada/g-sets.adb \
!   ada/g-spchge.ads ada/g-spchge.adb \
!   ada/g-speche.ads ada/g-speche.adb \
!   ada/g-u3spch.ads ada/g-u3spch.adb \
!   ada/s-pehage.ads ada/s-pehage.adb \
!   ada/s-resfil.ads ada/s-resfil.adb \
!   ada/s-rident.ads \
!   ada/s-utf_32.ads ada/s-utf_32.adb
  
  # Only used to manually trigger the creation of the generated files.
  .PHONY:
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/Makefile.in gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/Makefile.in
*** gcc-15.2.0/gcc/ada/gcc-interface/Makefile.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/Makefile.in	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Makefile for GNU Ada Compiler (GNAT).
! #   Copyright (C) 1994-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** INSTALL_DATA_DATE = cp -p
*** 104,109 ****
--- 104,111 ----
  MAKEINFO = makeinfo
  TEXI2DVI = texi2dvi
  TEXI2PDF = texi2pdf
+ 
+ GNATMAKE_FOR_BUILD = gnatmake
  GNATBIND_FLAGS = -static -x
  ADA_CFLAGS =
  ADAFLAGS = -W -Wall -gnatpg -gnata -gnatU
*************** LIBICONV_DEP = @LIBICONV_DEP@
*** 180,185 ****
--- 182,190 ----
  # Any system libraries needed just for GNAT.
  SYSLIBS = @GNAT_LIBEXC@
  
+ # Default is no TGT_LIB; one might be passed down or something
+ TGT_LIB =
+ 
  # List extra gnattools
  EXTRA_GNATTOOLS =
  
*************** RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
*** 201,206 ****
--- 206,226 ----
  # to deal with as it may conflict with the libgcc provided by the system).
  GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc
  
+ # We need to link against libbacktrace because diagnostics use it
+ LIBBACKTRACE = ../../../libbacktrace/.libs/libbacktrace.a
+ 
+ ifneq ($(enable_host_pie),)
+ LIBIBERTY = ../../../libiberty/pic/libiberty.a
+ LIBGNAT   = ../$(RTSDIR)/libgnat_pic.a
+ else
+ LIBIBERTY = ../../../libiberty/libiberty.a
+ LIBGNAT   = ../$(RTSDIR)/libgnat.a
+ endif
+ 
+ # How to link with both our libraries and the system's installed libraries
+ LIBS = $(LIBGNAT) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) \
+   $(SYSLIBS) $(TGT_LIB)
+ 
  # End of variables for you to override.
  
  all: all.indirect
*************** ALL_CPPFLAGS = $(CPPFLAGS)
*** 232,257 ****
  
  ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  
- ifneq ($(enable_host_pie),)
- LIBIBERTY = ../../libiberty/pic/libiberty.a
- else
- LIBIBERTY = ../../libiberty/libiberty.a
- endif
- 
- # We need to link against libbacktrace because diagnostic.c in
- # libcommon.a uses it.
- LIBBACKTRACE = ../../libbacktrace/.libs/libbacktrace.a
- 
- # How to link with both our special library facilities
- # and the system's installed libraries.
- LIBS = $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) $(SYSLIBS)
- LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBBACKTRACE) $(LIBIBERTY)
- # Default is no TGT_LIB; one might be passed down or something
- TGT_LIB =
  TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
    ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a \
!   $(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \
!   $(SYSLIBS) $(TGT_LIB)
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
--- 252,260 ----
  
  ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
  
  TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
    ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a \
!   $(LIBS)
  
  # Specify the directories to be searched for header files.
  # Both . and srcdir are used, in that order,
*************** GNATMAKE_OBJS = a-except.o ali.o ali-uti
*** 321,343 ****
   erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o \
   gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o \
   make.o makeusg.o make_util.o namet.o nlists.o opt.o osint.o osint-m.o \
!  output.o restrict.o rident.o s-excmac.o s-exctab.o \
   s-secsta.o s-stalib.o s-stoele.o scans.o scng.o sdefault.o sfn_scan.o \
   s-purexc.o s-htable.o scil_ll.o sem_aux.o sinfo.o sinput.o sinput-c.o \
   snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o \
   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
--- 324,342 ----
   erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o fname-sf.o \
   gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o lib.o \
   make.o makeusg.o make_util.o namet.o nlists.o opt.o osint.o osint-m.o \
!  output.o restrict.o rident.o s-cautns.o s-excmac.o s-exctab.o \
   s-secsta.o s-stalib.o s-stoele.o scans.o scng.o sdefault.o sfn_scan.o \
   s-purexc.o s-htable.o scil_ll.o sem_aux.o sinfo.o sinput.o sinput-c.o \
   snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o \
   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 \
!  errid.o \
!  errid-diagnostic_repository.o \
!  errid-switch_repository.o \
!  erroutc-pretty_emitter.o \
!  erroutc-sarif_emitter.o \
!  json_utils.o
   $(EXTRA_GNATMAKE_OBJS)
  
  # Make arch match the current multilib so that the RTS selection code
*************** ifeq ($(strip $(filter-out x86_64 linux-
*** 361,374 ****
    endif
  endif
  
! # The SuSE PowerPC64/Linux compiler is actually a 32-bit PowerPC compiler
! ifeq ($(strip $(filter-out powerpc64 suse linux%, $(target_cpu) $(target_vendor) $(target_os))),)
!   target_cpu:=powerpc
  endif
  
  # Configuration of host tools
  
! # Under linux, host tools need to be linked with -ldl
  
  ifeq ($(strip $(filter-out linux%,$(host_os))),)
     TOOLS1_LIBS=-ldl
--- 360,375 ----
    endif
  endif
  
! # The x86_64-*abi32 compilers are x86_64 compilers defaulting to -m32
! ifeq ($(strip $(filter-out x86_64 %abi32, $(target_cpu) $(target_os))),)
!   ifneq ($(strip $(MULTISUBDIR)),/64)
!     target_cpu:=i686
!   endif
  endif
  
  # Configuration of host tools
  
! # On old Linux versions, host tools need to be linked with -ldl
  
  ifeq ($(strip $(filter-out linux%,$(host_os))),)
     TOOLS1_LIBS=-ldl
*************** endif
*** 376,387 ****
  
  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)"	\
--- 377,382 ----
*************** OSCONS_EXTRACT=$(GCC_FOR_ADA_RTS) $(GNAT
*** 634,640 ****
  	-$(MKDIR) ./bldtools/oscons
  	$(RM) $(addprefix ./bldtools/oscons/,$(notdir $^))
  	$(CP) $^ ./bldtools/oscons
! 	(cd ./bldtools/oscons ; gnatmake -q xoscons)
  
  $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c gsocket.h ./bldtools/oscons/xoscons
  	$(RM) $(RTSDIR)/s-oscons-tmplt.i $(RTSDIR)/s-oscons-tmplt.s
--- 629,635 ----
  	-$(MKDIR) ./bldtools/oscons
  	$(RM) $(addprefix ./bldtools/oscons/,$(notdir $^))
  	$(CP) $^ ./bldtools/oscons
! 	(cd ./bldtools/oscons ; $(GNATMAKE_FOR_BUILD) xoscons)
  
  $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib1-$(RTSDIR) s-oscons-tmplt.c gsocket.h ./bldtools/oscons/xoscons
  	$(RM) $(RTSDIR)/s-oscons-tmplt.i $(RTSDIR)/s-oscons-tmplt.s
*************** adadecode.o : adadecode.c adadecode.h
*** 908,914 ****
  aux-io.o  : aux-io.c
  argv.o    : argv.c
  cal.o     : cal.c
- deftarg.o : deftarg.c
  errno.o   : errno.c
  exit.o    : adaint.h exit.c
  expect.o  : expect.c
--- 903,908 ----
*************** init.o    : init.c adaint.h raise.h
*** 941,950 ****
  	$(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)
--- 935,940 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/ada-builtin-types.def gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-builtin-types.def
*** gcc-15.2.0/gcc/ada/gcc-interface/ada-builtin-types.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-builtin-types.def	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,7 ----
  /* This file contains the type definitions for the builtins exclusively
     used in the GNU Ada compiler.
  
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/ada-builtins.def gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-builtins.def
*** gcc-15.2.0/gcc/ada/gcc-interface/ada-builtins.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-builtins.def	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,7 ----
  /* This file contains the definitions for the builtins exclusively used
     in the GNU Ada compiler.
  
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/ada-tree.def gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-tree.def
*** gcc-15.2.0/gcc/ada/gcc-interface/ada-tree.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-tree.def	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              Specification                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/ada-tree.h gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-tree.h
*** gcc-15.2.0/gcc/ada/gcc-interface/ada-tree.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada-tree.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** do {							 \
*** 73,78 ****
--- 73,86 ----
  #define TYPE_IS_FAT_POINTER_P(NODE) \
    (TREE_CODE (NODE) == RECORD_TYPE && TYPE_FAT_POINTER_P (NODE))
  
+ /* For RECORD_TYPE, UNION_TYPE, and QUAL_UNION_TYPE, nonzero if this is a
+    record being used as an extended access (only true for RECORD_TYPE).  */
+ #define TYPE_EXTENDED_POINTER_P(NODE) \
+   TYPE_LANG_FLAG_7 (RECORD_OR_UNION_CHECK (NODE))
+ 
+ #define TYPE_IS_EXTENDED_POINTER_P(NODE) \
+   (TREE_CODE (NODE) == RECORD_TYPE && TYPE_EXTENDED_POINTER_P (NODE))
+ 
  /* For integral types and array types, nonzero if this is an implementation
     type for a bit-packed array type.  Such types should not be extended to a
     larger size or validated against a specified size.  */
*************** do {							 \
*** 184,192 ****
  /* True for a dummy type if TYPE appears in a profile.  */
  #define TYPE_DUMMY_IN_PROFILE_P(NODE) TYPE_LANG_FLAG_6 (NODE)
  
- /* True if objects of this type are guaranteed to be properly aligned.  */
- #define TYPE_ALIGN_OK(NODE) TYPE_LANG_FLAG_7 (NODE)
- 
  /* True for types that implement a packed array and for original packed array
     types.  */
  #define TYPE_IMPL_PACKED_ARRAY_P(NODE) \
--- 192,197 ----
*************** do {						   \
*** 387,392 ****
--- 392,416 ----
  #define SET_TYPE_SCALE_FACTOR(NODE, X) \
    SET_TYPE_LANG_SPECIFIC (INTEGER_TYPE_CHECK (NODE), X)
  
+ /* For an UNCONSTRAINED_ARRAY_TYPE, this is the twin UNCONSTRAINED_ARRAY_TYPE
+    built for extended access types.  */
+ #define TYPE_EXTENDED_UNCONSTRAINED_ARRAY(NODE) \
+   GET_TYPE_LANG_SPECIFIC (TREE_CHECK2 ((NODE), UNCONSTRAINED_ARRAY_TYPE, \
+ 				       ENUMERAL_TYPE))
+ #define SET_TYPE_EXTENDED_UNCONSTRAINED_ARRAY(NODE, X) \
+   SET_TYPE_LANG_SPECIFIC (TREE_CHECK2 ((NODE), UNCONSTRAINED_ARRAY_TYPE, \
+ 				       ENUMERAL_TYPE), X)
+ 
+ /* When the compiler only has a dummy type for an unconstrained array type, we
+    don't build a duplicate dummy only to store the record type for the extended
+    access. Instead, we store it in the original dummy type, using the same
+    lang_type field that will hold the tree for the duplicated array type built
+    later.  */
+ #define TYPE_DUMMY_EXT_POINTER_TO(NODE) \
+   GET_TYPE_LANG_SPECIFIC (TREE_CHECK ((NODE), ENUMERAL_TYPE))
+ #define SET_TYPE_DUMMY_EXT_POINTER_TO(NODE, X) \
+   SET_TYPE_LANG_SPECIFIC (TREE_CHECK ((NODE), ENUMERAL_TYPE), X)
+ 
  /* For types with TYPE_CAN_HAVE_DEBUG_TYPE_P, this is the type to use in
     debugging information.  */
  #define TYPE_DEBUG_TYPE(NODE) \
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/ada.h gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada.h
*** gcc-15.2.0/gcc/ada/gcc-interface/ada.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/ada.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/config-lang.in gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/config-lang.in
*** gcc-15.2.0/gcc/ada/gcc-interface/config-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/config-lang.in	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2025 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
--- 1,5 ----
  # Top level configure fragment for GNU Ada (GNAT).
! #   Copyright (C) 1994-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/cuintp.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/cuintp.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/cuintp.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/cuintp.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/decl.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/decl.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/decl.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/decl.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 gnat_to_gnu_component_type (
*** 201,206 ****
--- 201,207 ----
  static tree gnat_to_gnu_subprog_type (Entity_Id, bool, bool, tree *);
  static int adjust_packed (tree, tree, int);
  static tree gnat_to_gnu_field (Entity_Id, tree, int, bool, bool);
+ static tree get_extended_unconstrained_array (Entity_Id, tree);
  static enum inline_status_t inline_status_for_subprog (Entity_Id);
  static Entity_Id Gigi_Cloned_Subtype (Entity_Id);
  static tree gnu_ext_name_for_subprog (Entity_Id, tree);
*************** is_artificial (Entity_Id gnat_entity)
*** 279,284 ****
--- 280,292 ----
     initial value (in GCC tree form).  This is optional for a variable.  For
     a renamed entity, GNU_EXPR gives the object being renamed.
  
+    If GNAT_ENTITY is an array type and GNU_EXPR is NULL_TREE, a GCC tree for a
+    regular fat pointer will be generated.  However, if GNU_EXPR is not
+    NULL_TREE, it's an existing GCC tree for the fat pointer, and a GCC tree for
+    the extended pointer will be created instead.  The caller must clear the
+    association between GNAT_ENTITY and GNU_EXPR before calling
+    gnat_to_gnu_entity with a non-NULL GNU_EXPR and restore it after the call.
+ 
     DEFINITION is true if this call is intended for a definition.  This is used
     for separate compilation where it is necessary to know whether an external
     declaration or a definition must be created if the GCC equivalent was not
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 441,447 ****
       must be specified unless it was specified by the programmer.  Exceptions
       are for access-to-protected-subprogram types and all access subtypes, as
       another GNAT type is used to lay out the GCC type for them, as well as
!      access-to-subprogram types if front-end unnesting is enabled.  */
    gcc_assert (!is_type
  	      || Known_Esize (gnat_entity)
  	      || Has_Size_Clause (gnat_entity)
--- 449,456 ----
       must be specified unless it was specified by the programmer.  Exceptions
       are for access-to-protected-subprogram types and all access subtypes, as
       another GNAT type is used to lay out the GCC type for them, as well as
!      access-to-subprogram types if front-end unnesting is enabled, and also
!      extended access types.  */
    gcc_assert (!is_type
  	      || Known_Esize (gnat_entity)
  	      || Has_Size_Clause (gnat_entity)
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 454,459 ****
--- 463,469 ----
  			   || kind == E_Anonymous_Access_Subprogram_Type)
  			  && Unnest_Subprogram_Mode)
  		      || kind == E_Access_Subtype
+ 		      || Is_Extended_Access_Type (gnat_entity)
  		      || type_annotate_only)));
  
    /* The RM size must be specified for all discrete and fixed-point types.  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 638,644 ****
  	/* Build a CONST_DECL for debugging purposes exclusively.  */
  	gnu_decl
  	  = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
! 			     gnu_expr, true, Is_Public (gnat_entity),
  			     false, false, false, artificial_p,
  			     debug_info_p, NULL, gnat_entity);
        }
--- 648,656 ----
  	/* Build a CONST_DECL for debugging purposes exclusively.  */
  	gnu_decl
  	  = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
! 			     gnu_expr, true,
! 			     Is_Public (gnat_entity),
! 			     Is_Link_Once (gnat_entity),
  			     false, false, false, artificial_p,
  			     debug_info_p, NULL, gnat_entity);
        }
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1186,1191 ****
--- 1198,1204 ----
  		    create_var_decl (gnu_entity_name, NULL_TREE,
  				     TREE_TYPE (gnu_expr), gnu_expr,
  				     const_flag, Is_Public (gnat_entity),
+ 				     Is_Link_Once (gnat_entity),
  				     imported_p, static_flag, volatile_flag,
  				     artificial_p, debug_info_p, attr_list,
  				     gnat_entity, false);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1228,1233 ****
--- 1241,1264 ----
  	    gnu_expr = gnat_build_constructor (gnu_type, v);
  	  }
  
+ 	/* If we are allocating the anonymous object of a small aggregate on
+ 	   the stack, zero-initialize it so that the entire object is assigned
+ 	   and the subsequent assignments need not preserve unknown bits, but
+ 	   do it only when optimization is enabled for the sake of consistency
+ 	   with the gimplifier which does the same for CONSTRUCTORs.  */
+ 	else if (definition
+ 		 && !imported_p
+ 		 && !static_flag
+ 		 && !gnu_expr
+ 		 && TREE_CODE (gnu_type) == RECORD_TYPE
+ 		 && TREE_CODE (gnu_object_size) == INTEGER_CST
+ 		 && compare_tree_int (gnu_object_size, MAX_FIXED_MODE_SIZE) <= 0
+ 		 && Present (Related_Expression (gnat_entity))
+ 		 && Nkind (Original_Node (Related_Expression (gnat_entity)))
+ 		    == N_Aggregate
+ 		 && optimize)
+ 	    gnu_expr = build_constructor (gnu_type, NULL);
+ 
  	/* Convert the expression to the type of the object if need be.  */
  	if (gnu_expr && initial_value_needs_conversion (gnu_type, gnu_expr))
  	  gnu_expr = convert (gnu_type, gnu_expr);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1236,1242 ****
  	   initialize it to NULL, unless the object is declared imported as
  	   per RM B.1(24).  */
  	if (definition
! 	    && (POINTER_TYPE_P (gnu_type) || TYPE_IS_FAT_POINTER_P (gnu_type))
  	    && !gnu_expr
  	    && !Is_Imported (gnat_entity))
  	  gnu_expr = null_pointer_node;
--- 1267,1275 ----
  	   initialize it to NULL, unless the object is declared imported as
  	   per RM B.1(24).  */
  	if (definition
! 	    && (POINTER_TYPE_P (gnu_type)
!                 || TYPE_IS_FAT_POINTER_P (gnu_type)
!                 || TYPE_IS_EXTENDED_POINTER_P (gnu_type))
  	    && !gnu_expr
  	    && !Is_Imported (gnat_entity))
  	  gnu_expr = null_pointer_node;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1370,1385 ****
  	      }
  	  }
  
! 	/* If we are at top level and this object is of variable size,
! 	   make the actual type a hidden pointer to the real type and
! 	   make the initializer be a memory allocation and initialization.
! 	   Likewise for objects we aren't defining (presumed to be
! 	   external references from other packages), but there we do
! 	   not set up an initialization.
! 
! 	   If the object's size overflows, make an allocator too, so that
! 	   Storage_Error gets raised.  Note that we will never free
! 	   such memory, so we presume it never will get allocated.  */
  	if (!allocatable_size_p (TYPE_SIZE_UNIT (gnu_type),
  				 global_bindings_p ()
  				 || !definition
--- 1403,1417 ----
  	      }
  	  }
  
! 	/* If we are at top level and this object is of variable size, make
! 	   the actual type a reference to the real type and the initializer
! 	   be a memory allocation and initialization.  Likewise for an object
! 	   that we aren't defining or is imported (presumed to be an external
! 	   reference from another package), but in this case we do not set up
! 	   an initialization.  Likewise if the object's size is constant but
! 	   too large.  In either case, this will also cause Storage_Error to
! 	   be raised if the size ends up overflowing.  Note that we will never
! 	   free such memory, but it will be allocated only at top level.  */
  	if (!allocatable_size_p (TYPE_SIZE_UNIT (gnu_type),
  				 global_bindings_p ()
  				 || !definition
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1393,1398 ****
--- 1425,1453 ----
  					|| !definition
  					|| static_flag)))
  	  {
+ 	    /* Give a warning if the size is constant.  */
+ 	    if ((TREE_CODE (TYPE_SIZE_UNIT (gnu_type)) == INTEGER_CST
+ 		 || (gnu_size && TREE_CODE (gnu_size) == INTEGER_CST))
+ 		&& definition)
+ 	      {
+ 		if (imported_p)
+ 		  {
+ 		    post_error
+ 		      ("??too large object cannot be imported directly",
+ 		       gnat_entity);
+ 		    post_error ("\\??indirect import will be used instead",
+ 				gnat_entity);
+ 		  }
+ 		else if (global_bindings_p () || static_flag)
+ 		  {
+ 		    post_error
+ 		      ("??too large object cannot be allocated statically",
+ 		       gnat_entity);
+ 		    post_error ("\\??dynamic allocation will be used instead",
+ 				gnat_entity);
+ 		  }
+ 	      }
+ 
  	    if (volatile_flag && !TYPE_VOLATILE (gnu_type))
  	      gnu_type = change_qualified_type (gnu_type, TYPE_QUAL_VOLATILE);
  	    gnu_type = build_reference_type (gnu_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1435,1455 ****
  		  }
  
  		/* 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,
--- 1490,1499 ----
  		  }
  
  		/* Give a warning if the size is constant but too large.  */
! 		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,
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1477,1483 ****
  	    tree gnu_new_var
  	      = create_var_decl (create_concat_name (gnat_entity, "ALIGN"),
  				 NULL_TREE, gnu_new_type, NULL_TREE,
! 				 false, false, false, false, false,
  				 true, debug_info_p && definition, NULL,
  				 gnat_entity);
  
--- 1521,1527 ----
  	    tree gnu_new_var
  	      = create_var_decl (create_concat_name (gnat_entity, "ALIGN"),
  				 NULL_TREE, gnu_new_type, NULL_TREE,
! 				 false, false, false, false, false, false,
  				 true, debug_info_p && definition, NULL,
  				 gnat_entity);
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1539,1546 ****
  		   = create_var_decl (concat_name (gnu_entity_name, "UNC"),
  				      NULL_TREE, gnu_type, gnu_expr,
  				      const_flag, Is_Public (gnat_entity),
! 				      imported_p || !definition, static_flag,
! 				      volatile_flag, true,
  				      debug_info_p && definition,
  				      NULL, gnat_entity);
  		gnu_expr = build_unary_op (ADDR_EXPR, NULL_TREE, gnu_unc_var);
--- 1583,1591 ----
  		   = create_var_decl (concat_name (gnu_entity_name, "UNC"),
  				      NULL_TREE, gnu_type, gnu_expr,
  				      const_flag, Is_Public (gnat_entity),
! 				      Is_Link_Once (gnat_entity),
! 				      imported_p || !definition,
! 				      static_flag, volatile_flag, true,
  				      debug_info_p && definition,
  				      NULL, gnat_entity);
  		gnu_expr = build_unary_op (ADDR_EXPR, NULL_TREE, gnu_unc_var);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1586,1593 ****
  	gnu_decl
  	  = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
  			     gnu_expr, const_flag, Is_Public (gnat_entity),
! 			     imported_p || !definition, static_flag,
! 			     volatile_flag, artificial_p,
  			     debug_info_p && definition, attr_list,
  			     gnat_entity);
  	DECL_BY_REF_P (gnu_decl) = used_by_ref;
--- 1631,1639 ----
  	gnu_decl
  	  = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
  			     gnu_expr, const_flag, Is_Public (gnat_entity),
! 			     Is_Link_Once (gnat_entity),
! 			     imported_p || !definition,
! 			     static_flag, volatile_flag, artificial_p,
  			     debug_info_p && definition, attr_list,
  			     gnat_entity);
  	DECL_BY_REF_P (gnu_decl) = used_by_ref;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1634,1639 ****
--- 1680,1686 ----
  	    tree gnu_corr_var
  	      = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
  				 gnu_expr, true, Is_Public (gnat_entity),
+ 				 Is_Link_Once (gnat_entity),
  				 !definition, static_flag, volatile_flag,
  				 artificial_p, debug_info_p && definition,
  				 attr_list, gnat_entity, false);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1739,1745 ****
  	      tree gnu_literal
  		= create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  				   gnu_type, gnu_value, true, false, false,
! 				   false, false, artificial_p, false,
  				   NULL, gnat_literal);
  	      save_gnu_tree (gnat_literal, gnu_literal, false);
  	      gnu_list
--- 1786,1792 ----
  	      tree gnu_literal
  		= create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  				   gnu_type, gnu_value, true, false, false,
! 				   false, false, false, artificial_p, false,
  				   NULL, gnat_literal);
  	      save_gnu_tree (gnat_literal, gnu_literal, false);
  	      gnu_list
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2136,2156 ****
  	 have are pointers to that type.  In addition to the type node itself,
  	 4 other types associated with it are built in the process:
  
! 	   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:
  		XUP = struct { XUA *, XUB * }
  
! 	   4. the object record type (suffix XUT) containing bounds and data:
! 		XUT = struct { XUB, XUA }
  
  	 The bounds of the array type XUA (de)reference the XUB * field of a
  	 PLACEHOLDER_EXPR for the fat pointer type XUP, so the array type XUA
  	 is to be interpreted in the context of the fat pointer type XUB for
! 	 debug info purposes.  */
  
      case E_Array_Type:
        {
--- 2183,2210 ----
  	 have are pointers to that type.  In addition to the type node itself,
  	 4 other types associated with it are built in the process:
  
! 	   1. the array type (suffix XUA for fat pointer, XUAEA for extended
! 	      access) containing the actual data,
  
! 	   2. the template type (suffix XUB for fat pointer, XUBEA for extended
! 	      access) containing the bounds,
  
  	   3. the fat pointer type (suffix XUP) representing a pointer or a
  	      reference to the unconstrained array type:
  		XUP = struct { XUA *, XUB * }
  
! 	      or the extended access type (suffix XUPEA) representing a pointer
! 	      or a reference to the unconstrained array type:
! 		XUPEA = struct { XUAEA *, XUBEA }
! 
! 	   4. the object record type (suffix XUT for fat pointer, XUTEA for
! 	      extended access) containing bounds and data:
! 		XUT[EA] = struct { XUB[EA], XUA[EA] }
  
  	 The bounds of the array type XUA (de)reference the XUB * field of a
  	 PLACEHOLDER_EXPR for the fat pointer type XUP, so the array type XUA
  	 is to be interpreted in the context of the fat pointer type XUB for
! 	 debug info purposes.  Likewise for the extended access case.  */
  
      case E_Array_Type:
        {
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2158,2171 ****
  	const Entity_Id PAT = Packed_Array_Impl_Type (gnat_entity);
  	const bool convention_fortran_p
  	  = (Convention (gnat_entity) == Convention_Fortran);
  	const int ndim = Number_Dimensions (gnat_entity);
  	tree gnu_fat_type, gnu_template_type, gnu_ptr_template;
! 	tree gnu_template_reference, gnu_template_fields;
  	tree *gnu_index_types = XALLOCAVEC (tree, ndim);
- 	tree *gnu_temp_fields = XALLOCAVEC (tree, ndim);
  	tree gnu_max_size = size_one_node;
  	tree comp_type, fld, tem, obj;
- 	Entity_Id gnat_index;
  	alias_set_type ptr_set = -1;
  	int index;
  
--- 2212,2224 ----
  	const Entity_Id PAT = Packed_Array_Impl_Type (gnat_entity);
  	const bool convention_fortran_p
  	  = (Convention (gnat_entity) == Convention_Fortran);
+ 	const bool extended_access_p = gnu_expr != NULL_TREE;
  	const int ndim = Number_Dimensions (gnat_entity);
  	tree gnu_fat_type, gnu_template_type, gnu_ptr_template;
! 	tree gnu_template_reference;
  	tree *gnu_index_types = XALLOCAVEC (tree, ndim);
  	tree gnu_max_size = size_one_node;
  	tree comp_type, fld, tem, obj;
  	alias_set_type ptr_set = -1;
  	int index;
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2185,2191 ****
  	   better debugging information in DWARF by leveraging the support for
  	   incomplete declarations of "tagged" types in the DWARF back-end.  */
  	gnu_type = get_dummy_type (gnat_entity);
! 	if (gnu_type && TYPE_POINTER_TO (gnu_type))
  	  {
  	    gnu_fat_type = TYPE_MAIN_VARIANT (TYPE_POINTER_TO (gnu_type));
  	    TYPE_NAME (gnu_fat_type) = NULL_TREE;
--- 2238,2244 ----
  	   better debugging information in DWARF by leveraging the support for
  	   incomplete declarations of "tagged" types in the DWARF back-end.  */
  	gnu_type = get_dummy_type (gnat_entity);
! 	if (gnu_type && TYPE_POINTER_TO (gnu_type) && !extended_access_p)
  	  {
  	    gnu_fat_type = TYPE_MAIN_VARIANT (TYPE_POINTER_TO (gnu_type));
  	    TYPE_NAME (gnu_fat_type) = NULL_TREE;
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2200,2209 ****
  	    DECL_CHAIN (TYPE_FIELDS (TYPE_POINTER_TO (gnu_type)))
  	      = copy_node (DECL_CHAIN (TYPE_FIELDS (gnu_fat_type)));
  	  }
  	else
  	  {
  	    gnu_fat_type = make_node (RECORD_TYPE);
! 	    gnu_template_type = make_node (RECORD_TYPE);
  	    gnu_ptr_template = build_pointer_type (gnu_template_type);
  	  }
  
--- 2253,2294 ----
  	    DECL_CHAIN (TYPE_FIELDS (TYPE_POINTER_TO (gnu_type)))
  	      = copy_node (DECL_CHAIN (TYPE_FIELDS (gnu_fat_type)));
  	  }
+ 
+         /* We complete an existing dummy for extended access, but we haven't
+            created a specific tree yet for the array type.  The extended access
+            type is stored directly in the original unconstrained array type,
+            where we will store the new array type later.  */
+         else if (gnu_type
+ 		 && TYPE_DUMMY_EXT_POINTER_TO (gnu_type)
+ 		 && extended_access_p)
+ 	  {
+ 	    gnu_ptr_template = NULL_TREE;
+ 	    tree gnu_ext_acc_type = TYPE_DUMMY_EXT_POINTER_TO (gnu_type);
+ 	    gnu_fat_type = TYPE_MAIN_VARIANT (gnu_ext_acc_type);
+ 	    TYPE_NAME (gnu_fat_type) = NULL_TREE;
+ 
+ 	    /* The dummy types has a XUBEA that was only used to get the size of
+ 	       the extended pointer. We now drop this type and use the XUB type
+ 	       from the regular fat pointer instead.  */
+ 	    gnu_template_type
+ 	      = TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (TREE_TYPE (gnu_expr)))));
+ 
+ 	    DECL_CHAIN (TYPE_FIELDS (gnu_fat_type))
+ 	      = create_field_decl (get_identifier ("BOUNDS"),
+ 				   gnu_template_type, gnu_fat_type,
+ 				   NULL_TREE, NULL_TREE, 0, 1);
+ 	  }
+ 
  	else
  	  {
  	    gnu_fat_type = make_node (RECORD_TYPE);
! 
! 	    if (extended_access_p)
! 	      gnu_template_type
! 		= TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (TREE_TYPE (gnu_expr)))));
! 	    else
! 	      gnu_template_type = make_node (RECORD_TYPE);
! 
  	    gnu_ptr_template = build_pointer_type (gnu_template_type);
  	  }
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2235,2241 ****
  	   Var are also built later with the fields of the final type, the
  	   aliasing machinery may consider that the accesses are distinct
  	   if the FIELD_DECLs are distinct as objects.  */
! 	if (COMPLETE_TYPE_P (gnu_fat_type))
  	  {
  	    fld = TYPE_FIELDS (gnu_fat_type);
  	    if (TYPE_ALIAS_SET_KNOWN_P (TYPE_CANONICAL (TREE_TYPE (fld))))
--- 2320,2326 ----
  	   Var are also built later with the fields of the final type, the
  	   aliasing machinery may consider that the accesses are distinct
  	   if the FIELD_DECLs are distinct as objects.  */
! 	if (COMPLETE_TYPE_P (gnu_fat_type) && !extended_access_p)
  	  {
  	    fld = TYPE_FIELDS (gnu_fat_type);
  	    if (TYPE_ALIAS_SET_KNOWN_P (TYPE_CANONICAL (TREE_TYPE (fld))))
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2246,2251 ****
--- 2331,2369 ----
  	    for (tree t = gnu_fat_type; t; t = TYPE_NEXT_VARIANT (t))
  	      SET_TYPE_UNCONSTRAINED_ARRAY (t, gnu_type);
  	  }
+ 
+ 	else if (COMPLETE_TYPE_P (gnu_fat_type) && extended_access_p)
+ 	  {
+ 	    fld = TYPE_FIELDS (gnu_fat_type);
+ 	    if (TYPE_ALIAS_SET_KNOWN_P (TYPE_CANONICAL (TREE_TYPE (fld))))
+ 	      ptr_set = TYPE_ALIAS_SET (TYPE_CANONICAL (TREE_TYPE (fld)));
+ 	    TREE_TYPE (fld) = ptr_type_node;
+ 	    /* For extended access, we leave the BOUNDS field alone.   */
+ 	    TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (gnu_fat_type)) = 0;
+ 	    for (tree t = gnu_fat_type; t; t = TYPE_NEXT_VARIANT (t))
+ 	      SET_TYPE_UNCONSTRAINED_ARRAY (t, gnu_type);
+ 	  }
+ 
+ 	else if (extended_access_p)
+ 	  {
+ 	    /* We make the fields addressable for the sake of compatibility
+ 	       with languages for which the regular fields are addressable.  */
+ 	    fld
+ 	      = create_field_decl (get_identifier ("P_ARRAY"),
+ 				   ptr_type_node, gnu_fat_type,
+ 				   NULL_TREE, NULL_TREE, 0, 1);
+ 	    /* At this step, gnu_template_type is an empty RECORD to be
+ 	       be populated later.  */
+ 	    DECL_CHAIN (fld)
+ 	      = create_field_decl (get_identifier ("BOUNDS"),
+ 				   gnu_template_type, gnu_fat_type,
+ 				   NULL_TREE, NULL_TREE, 0, 1);
+ 	    /* Too early to finish the record, but set the fields so that
+ 	       they are available through the type.  */
+ 	    TYPE_FIELDS (gnu_fat_type) = fld;
+ 	    SET_TYPE_UNCONSTRAINED_ARRAY (gnu_fat_type, gnu_type);
+ 	  }
+ 
  	else
  	  {
  	    /* We make the fields addressable for the sake of compatibility
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2273,2407 ****
  	    : gnat_entity;
  	tree xup_name
  	  = gnat_encodings == DWARF_GNAT_ENCODINGS_ALL
! 	    ? 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
! 	   fields once we build them.  */
! 	tem = build3 (COMPONENT_REF, gnu_ptr_template,
! 		      build0 (PLACEHOLDER_EXPR, gnu_fat_type),
! 		      DECL_CHAIN (fld), NULL_TREE);
! 	gnu_template_reference
! 	  = build_unary_op (INDIRECT_REF, gnu_template_type, tem);
! 	TREE_READONLY (gnu_template_reference) = 1;
! 	TREE_THIS_NOTRAP (gnu_template_reference) = 1;
! 
! 	/* Now create the GCC type for each index and add the fields for that
! 	   index to the template.  */
! 	for (index = (convention_fortran_p ? ndim - 1 : 0),
! 	     gnat_index = First_Index (gnat_entity);
! 	     IN_RANGE (index, 0, ndim - 1);
! 	     index += (convention_fortran_p ? - 1 : 1),
! 	     gnat_index = Next_Index (gnat_index))
  	  {
! 	    const Entity_Id gnat_index_type = Etype (gnat_index);
! 	    const bool is_flb
! 	      = Is_Fixed_Lower_Bound_Index_Subtype (gnat_index_type);
! 	    tree gnu_index_type = get_unpadded_type (gnat_index_type);
! 	    tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
! 	    tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
! 	    tree gnu_index_base_type = get_base_type (gnu_index_type);
! 	    tree gnu_lb_field, gnu_hb_field;
! 	    tree gnu_min, gnu_max, gnu_high;
! 	    char field_name[16];
! 
! 	    /* Update the maximum size of the array in elements.  */
! 	    if (gnu_max_size)
! 	      gnu_max_size
! 		= update_n_elem (gnu_max_size, gnu_orig_min, gnu_orig_max);
! 
! 	    /* Now build the self-referential bounds of the index type.  */
! 	    gnu_index_type = maybe_character_type (gnu_index_type);
! 	    gnu_index_base_type = maybe_character_type (gnu_index_base_type);
! 
! 	    /* Make the FIELD_DECLs for the low and high bounds of this
! 	       type and then make extractions of these fields from the
! 	       template.  */
! 	    sprintf (field_name, "LB%d", index);
! 	    gnu_lb_field = create_field_decl (get_identifier (field_name),
! 					      gnu_index_type,
! 					      gnu_template_type, NULL_TREE,
! 					      NULL_TREE, 0, 0);
! 	    /* Mark the field specifically for INSTANTIATE_LOAD_IN_EXPR.  */
! 	    DECL_DISCRIMINANT_NUMBER (gnu_lb_field) = integer_minus_one_node;
! 	    Sloc_to_locus (Sloc (gnat_entity),
! 			   &DECL_SOURCE_LOCATION (gnu_lb_field));
! 
! 	    field_name[0] = 'U';
! 	    gnu_hb_field = create_field_decl (get_identifier (field_name),
! 					      gnu_index_type,
! 					      gnu_template_type, NULL_TREE,
! 					      NULL_TREE, 0, 0);
! 	    /* Mark the field specifically for INSTANTIATE_LOAD_IN_EXPR.  */
! 	    DECL_DISCRIMINANT_NUMBER (gnu_hb_field) = integer_minus_one_node;
! 	    Sloc_to_locus (Sloc (gnat_entity),
! 			   &DECL_SOURCE_LOCATION (gnu_hb_field));
! 
! 	    gnu_temp_fields[index] = chainon (gnu_lb_field, gnu_hb_field);
! 
! 	    /* We can't use build_component_ref here since the template type
! 	       isn't complete yet.  */
! 	    if (!is_flb)
! 	      {
! 		gnu_orig_min = build3 (COMPONENT_REF, TREE_TYPE (gnu_lb_field),
! 				       gnu_template_reference, gnu_lb_field,
! 				       NULL_TREE);
! 		TREE_READONLY (gnu_orig_min) = 1;
! 	      }
! 
! 	    gnu_orig_max = build3 (COMPONENT_REF, TREE_TYPE (gnu_hb_field),
! 				   gnu_template_reference, gnu_hb_field,
! 				   NULL_TREE);
! 	    TREE_READONLY (gnu_orig_max) = 1;
! 
! 	    gnu_min = convert (sizetype, gnu_orig_min);
! 	    gnu_max = convert (sizetype, gnu_orig_max);
! 
! 	    /* Compute the size of this dimension.  See the E_Array_Subtype
! 	       case below for the rationale.  */
! 	    if (is_flb
! 		&& Nkind (gnat_index) == N_Subtype_Indication
! 	        && flb_cannot_be_superflat (gnat_index))
! 	      gnu_high = gnu_max;
  
! 	    else
! 	      gnu_high
! 		= build3 (COND_EXPR, sizetype,
! 			  build2 (GE_EXPR, boolean_type_node,
! 				  gnu_orig_max, gnu_orig_min),
! 			  gnu_max,
! 			  TREE_CODE (gnu_min) == INTEGER_CST
! 			  ? int_const_binop (MINUS_EXPR, gnu_min, size_one_node)
! 			  : size_binop (MINUS_EXPR, gnu_min, size_one_node));
  
! 	    /* Make a range type with the new range in the Ada base type.
! 	       Then make an index type with the size range in sizetype.  */
! 	    gnu_index_types[index]
! 	      = create_index_type (gnu_min, gnu_high,
! 				   create_range_type (gnu_index_base_type,
! 						      gnu_orig_min,
! 						      gnu_orig_max),
! 				   gnat_entity);
  
! 	    TYPE_NAME (gnu_index_types[index])
! 	      = create_concat_name (gnat_entity, field_name);
! 	  }
  
! 	/* 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.  */
--- 2391,2446 ----
  	    : gnat_entity;
  	tree xup_name
  	  = gnat_encodings == DWARF_GNAT_ENCODINGS_ALL
! 	    ? create_concat_name (gnat_name,
! 				  extended_access_p ? "XUPEA" : "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 extended/fat pointer.  This will be used to access the
! 	   individual fields once we build them.  */
! 	if (extended_access_p)
  	  {
! 	    /* Extended pointers reference the template directly through the
! 	       BOUNDS field, which is the second field.  */
! 	    gnu_template_reference
! 	      = build3 (COMPONENT_REF, gnu_template_type,
! 			build0 (PLACEHOLDER_EXPR, gnu_fat_type),
! 			DECL_CHAIN (fld), NULL_TREE);
! 	    TREE_READONLY (gnu_template_reference) = 1;
! 	  }
! 	else
! 	  {
! 	    /* Fat pointers reference the template indirectly through the
! 	       P_BOUNDS field, which is the second field.  */
! 	    tem = build3 (COMPONENT_REF, gnu_ptr_template,
! 			  build0 (PLACEHOLDER_EXPR, gnu_fat_type),
! 			  DECL_CHAIN (fld), NULL_TREE);
! 	    gnu_template_reference
! 	      = build_unary_op (INDIRECT_REF, gnu_template_type, tem);
! 	    TREE_READONLY (gnu_template_reference) = 1;
! 	    TREE_THIS_NOTRAP (gnu_template_reference) = 1;
! 	  }
  
! 	if (!extended_access_p)
! 	  {
! 	    /* Build the template type.  */
! 	    TYPE_NAME (gnu_template_type)
! 	      = create_concat_name (gnat_entity, "XUB");
! 	  }
  
! 	build_template_type (gnat_entity, gnu_template_type,
! 			     gnu_template_reference, gnu_index_types,
! 			     gnu_max_size, debug_info_p);
  
!         if (!extended_access_p)
! 	  TYPE_CONTEXT (gnu_template_type) = gnu_fat_type;
  
! 	/* Now that the template type has been created, the record type for
! 	   extended access can be finished.  */
! 	if (extended_access_p)
! 	  finish_extended_pointer_type (gnu_fat_type, fld);
  
  	/* If Component_Size is not already specified, annotate it with the
  	   size of the component.  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 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;
  
--- 2520,2530 ----
  	  TYPE_ARRAY_MAX_SIZE (tem) = gnu_max_size;
  
  	/* See the above description for the rationale.  */
+ 	tree xua_name
+ 	  = create_concat_name (gnat_entity,
+ 				extended_access_p ? "XUAEA" : "XUA");
  	tree gnu_tmp_decl
! 	  = create_type_decl (xua_name, 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
*** 2495,2501 ****
  	   If the GNAT encodings are used, give it a name.  */
  	tree xut_name
  	  = (gnat_encodings == DWARF_GNAT_ENCODINGS_ALL)
! 	    ? 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);
--- 2536,2543 ----
  	   If the GNAT encodings are used, give it a name.  */
  	tree xut_name
  	  = (gnat_encodings == DWARF_GNAT_ENCODINGS_ALL)
! 	    ? create_concat_name (gnat_name,
! 				  extended_access_p ? "XUTEA" : "XUT")
  	    : gnu_entity_name;
  	obj = build_unc_object_type (gnu_template_type, tem, xut_name,
  				     artificial_p, debug_info_p);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 2513,2519 ****
  
  	/* 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.  */
--- 2555,2561 ----
  
  	/* If this is a packed type implemented specially, then process the
  	   implementation type so it is elaborated in the proper scope.  */
! 	if (Present (PAT) && !extended_access_p)
  	  {
  	    /* Save the XUA type as our equivalent temporarily for the call
  	       to gnat_to_gnu_type on the OAT below.  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3713,3719 ****
  		      = create_var_decl (create_concat_name (gnat_entity,
  							     "XVZ"),
  					 NULL_TREE, sizetype, gnu_size_unit,
! 					 true, false, false, false, false,
  					 true, true, NULL, gnat_entity, false);
  		}
  
--- 3755,3761 ----
  		      = create_var_decl (create_concat_name (gnat_entity,
  							     "XVZ"),
  					 NULL_TREE, sizetype, gnu_size_unit,
! 					 true, false, false, false, false, false,
  					 true, true, NULL, gnat_entity, false);
  		}
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3922,3928 ****
  	  }
  
  	/* Access-to-unconstrained-array types need a special treatment.  */
! 	if (Is_Array_Type (gnat_desig_rep) && !Is_Constrained (gnat_desig_rep))
  	  {
  	    /* If the processing above got something that has a pointer, then
  	       we are done.  This could have happened either because the type
--- 3964,3972 ----
  	  }
  
  	/* Access-to-unconstrained-array types need a special treatment.  */
! 	if (Is_Array_Type (gnat_desig_rep)
! 	    && !Is_Constrained (gnat_desig_rep)
! 	    && !Is_Extended_Access_Type (gnat_entity))
  	  {
  	    /* If the processing above got something that has a pointer, then
  	       we are done.  This could have happened either because the type
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 3933,3938 ****
--- 3977,4002 ----
  	    gnu_type = TYPE_POINTER_TO (gnu_desig_type);
  	  }
  
+ 	else if (Is_Array_Type (gnat_desig_rep)
+ 		 && !Is_Constrained (gnat_desig_rep)
+ 		 && Is_Extended_Access_Type (gnat_entity))
+ 	  {
+ 	    if (TYPE_IS_DUMMY_P (gnu_desig_type))
+ 	      gnu_type
+ 		= build_dummy_unc_pointer_types_ext (gnat_desig_rep,
+ 						     gnu_desig_type);
+ 	    else
+ 	      {
+ 		tree gnu_extended_type
+ 		  = get_extended_unconstrained_array (gnat_desig_rep,
+ 						      gnu_desig_type);
+ 
+ 		/* We should not get a dummy type.  */
+ 		gnu_type = TYPE_POINTER_TO (gnu_extended_type);
+ 		gcc_assert (gnu_type);
+ 	      }
+ 	  }
+ 
  	/* If we haven't done it yet, build the pointer type the usual way.  */
  	else if (!gnu_type)
  	  {
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4237,4244 ****
  	    gnu_decl
  	      = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
  				 gnu_address, false, Is_Public (gnat_entity),
! 				 extern_flag, false, false, artificial_p,
! 				 debug_info_p, NULL, gnat_entity);
  	    DECL_BY_REF_P (gnu_decl) = 1;
  	  }
  
--- 4301,4309 ----
  	    gnu_decl
  	      = create_var_decl (gnu_entity_name, gnu_ext_name, gnu_type,
  				 gnu_address, false, Is_Public (gnat_entity),
! 				 Is_Link_Once (gnat_entity), extern_flag,
! 				 false, false, artificial_p, debug_info_p,
! 				 NULL, gnat_entity);
  	    DECL_BY_REF_P (gnu_decl) = 1;
  	  }
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4267,4272 ****
--- 4332,4338 ----
  		= create_subprog_decl (gnu_entity_name, gnu_ext_name,
  				       gnu_type, gnu_param_list, inline_status,
  				       Is_Public (gnat_entity) || imported_p,
+ 				       Is_Link_Once (gnat_entity),
  				       extern_flag, artificial_p, debug_info_p,
  				       definition && imported_p, attr_list,
  				       gnat_entity);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4484,4490 ****
  	  if (Known_Esize (gnat_entity))
  	    gnu_size
  	      = validate_size (Esize (gnat_entity), gnu_type, gnat_entity,
! 			       VAR_DECL, false, false, size_s, type_s);
  
  	  /* ??? The test on Has_Size_Clause must be removed when "unknown" is
  	     no longer represented as Uint_0 (i.e. Use_New_Unknown_Rep).  */
--- 4550,4556 ----
  	  if (Known_Esize (gnat_entity))
  	    gnu_size
  	      = validate_size (Esize (gnat_entity), gnu_type, gnat_entity,
! 			       VAR_DECL, false, false, NULL, NULL);
  
  	  /* ??? The test on Has_Size_Clause must be removed when "unknown" is
  	     no longer represented as Uint_0 (i.e. Use_New_Unknown_Rep).  */
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4531,4537 ****
  	      if (gnu_size)
  		size = gnu_size;
  	      else if (RECORD_OR_UNION_TYPE_P (gnu_type)
! 		       && !TYPE_FAT_POINTER_P (gnu_type))
  		size = rm_size (gnu_type);
  	      else
  	        size = TYPE_SIZE (gnu_type);
--- 4597,4604 ----
  	      if (gnu_size)
  		size = gnu_size;
  	      else if (RECORD_OR_UNION_TYPE_P (gnu_type)
! 		       && !TYPE_FAT_POINTER_P (gnu_type)
! 		       && !TYPE_EXTENDED_POINTER_P (gnu_type))
  		size = rm_size (gnu_type);
  	      else
  	        size = TYPE_SIZE (gnu_type);
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 4803,4816 ****
  	{
  	  bool align_clause;
  
- 	  /* Record the property that objects of tagged types are guaranteed to
- 	     be properly aligned.  This is necessary because conversions to the
- 	     class-wide type are translated into conversions to the root type,
- 	     which can be less aligned than some of its derived types.  */
- 	  if (Is_Tagged_Type (gnat_entity)
- 	      || Is_Class_Wide_Equivalent_Type (gnat_entity))
- 	    TYPE_ALIGN_OK (gnu_type) = 1;
- 
  	  /* Record whether the type is passed by reference.  */
  	  if (is_by_ref && !VOID_TYPE_P (gnu_type))
  	    TYPE_BY_REFERENCE_P (gnu_type) = 1;
--- 4870,4875 ----
*************** get_unpadded_type (Entity_Id gnat_entity
*** 5116,5121 ****
--- 5175,5196 ----
    return type;
  }
  
+ /* Similar, but GNAT_ENTITY is assumed to refer to a GNAT type.  Return
+    the extended version of the GCC type corresponding to that entity.  */
+ 
+ tree
+ get_unpadded_extended_type (Entity_Id gnat_entity)
+ {
+   tree type = gnat_to_gnu_type (gnat_entity);
+ 
+   tree extended_type = get_extended_unconstrained_array (gnat_entity, type);
+ 
+   if (TYPE_IS_PADDING_P (extended_type))
+     extended_type = TREE_TYPE (TYPE_FIELDS (extended_type));
+ 
+   return extended_type;
+ }
+ 
  /* Return whether the E_Subprogram_Type/E_Function/E_Procedure GNAT_ENTITY is
     a C++ imported method or equivalent.
  
*************** is_cplusplus_method (Entity_Id gnat_enti
*** 5131,5137 ****
       it is declared without the 'this' parameter in the sources and, although
       the front-end will create a version with the 'this' parameter for code
       generation purposes, we want to return true for both versions.  */
!   if (Is_Constructor (gnat_entity))
      return true;
  
    /* Check that the subprogram has C++ convention.  */
--- 5206,5212 ----
       it is declared without the 'this' parameter in the sources and, although
       the front-end will create a version with the 'this' parameter for code
       generation purposes, we want to return true for both versions.  */
!   if (Is_CPP_Constructor (gnat_entity))
      return true;
  
    /* Check that the subprogram has C++ convention.  */
*************** is_cplusplus_method (Entity_Id gnat_enti
*** 5223,5228 ****
--- 5298,5344 ----
    return false;
  }
  
+ /* Get the UNCONSTRAINED_ARRAY_TYPE tree used for extended access handling,
+    for the unconstrained array type GNAT_ENTITY.
+ 
+    GNU_TYPE is the UNCONSTRAINED_ARRAY_TYPE tree used for the regular
+    fat/thin pointers.  */
+ 
+ static tree
+ get_extended_unconstrained_array (Entity_Id gnat_entity, tree gnu_type)
+ {
+   gcc_assert (Is_Array_Type (gnat_entity)
+ 	      && TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE);
+ 
+ 
+   if (Ekind (gnat_entity) == E_Array_Subtype)
+     return get_extended_unconstrained_array (Etype (gnat_entity), gnu_type);
+ 
+   tree gnu_extended_type = TYPE_EXTENDED_UNCONSTRAINED_ARRAY (gnu_type);
+ 
+   /* Building the extended type is achieved by translating the array type
+      a second time using a special processing.  */
+   if (!gnu_extended_type)
+     {
+       /* To have gnat_to_gnu_entity trigger the special processing for extended
+ 	 access types, we pass GNU_TYPE as second parameter, we backup the
+ 	 existing association for GNAT_ENTITY and clear it before the call.  */
+       tree gnu_decl = get_gnu_tree (gnat_entity);
+       save_gnu_tree (gnat_entity, NULL_TREE, false);
+ 
+       gnu_extended_type
+ 	= TREE_TYPE (gnat_to_gnu_entity (gnat_entity, gnu_type, false));
+       gcc_assert (gnu_extended_type);
+       SET_TYPE_EXTENDED_UNCONSTRAINED_ARRAY (gnu_type, gnu_extended_type);
+ 
+       /* And finally, we restore the original association for GNAT_ENTITY.  */
+       save_gnu_tree (gnat_entity, NULL_TREE, false);
+       save_gnu_tree (gnat_entity, gnu_decl, false);
+     }
+ 
+   return gnu_extended_type;
+ }
+ 
  /* Return the inlining status of the GNAT subprogram SUBPROG.  */
  
  static enum inline_status_t
*************** inline_status_for_subprog (Entity_Id sub
*** 5251,5257 ****
  	  && Is_Record_Type (Etype (First_Formal (subprog)))
  	  && (gnu_type = gnat_to_gnu_type (Etype (First_Formal (subprog))))
  	  && !TYPE_IS_BY_REFERENCE_P (gnu_type)
! 	  && tree_fits_uhwi_p (TYPE_SIZE (gnu_type))
  	  && compare_tree_int (TYPE_SIZE (gnu_type), MAX_FIXED_MODE_SIZE) <= 0)
  	return is_prescribed;
  
--- 5367,5373 ----
  	  && Is_Record_Type (Etype (First_Formal (subprog)))
  	  && (gnu_type = gnat_to_gnu_type (Etype (First_Formal (subprog))))
  	  && !TYPE_IS_BY_REFERENCE_P (gnu_type)
! 	  && TREE_CODE (TYPE_SIZE (gnu_type)) == INTEGER_CST
  	  && compare_tree_int (TYPE_SIZE (gnu_type), MAX_FIXED_MODE_SIZE) <= 0)
  	return is_prescribed;
  
*************** gnat_to_gnu_component_type (Entity_Id gn
*** 5445,5450 ****
--- 5561,5567 ----
        && !Strict_Alignment (gnat_type)
        && RECORD_OR_UNION_TYPE_P (gnu_type)
        && !TYPE_FAT_POINTER_P (gnu_type)
+       && !TYPE_EXTENDED_POINTER_P (gnu_type)
        && tree_fits_uhwi_p (TYPE_SIZE (gnu_type)))
      {
        tree gnu_packable_type = make_packable_type (gnu_type, false, max_align);
*************** gnat_to_gnu_param (Entity_Id gnat_param,
*** 5719,5725 ****
        = make_type_from_size (gnu_param_type, size_int (POINTER_SIZE), 0);
  
    /* Use a pointer type for the "this" pointer of C++ constructors.  */
!   else if (Chars (gnat_param) == Name_uInit && Is_Constructor (gnat_subprog))
      {
        gcc_assert (mech == By_Reference);
        gnu_param_type = build_pointer_type (gnu_param_type);
--- 5836,5842 ----
        = make_type_from_size (gnu_param_type, size_int (POINTER_SIZE), 0);
  
    /* Use a pointer type for the "this" pointer of C++ constructors.  */
!   else if (Chars (gnat_param) == Name_uInit && Is_CPP_Constructor (gnat_subprog))
      {
        gcc_assert (mech == By_Reference);
        gnu_param_type = build_pointer_type (gnu_param_type);
*************** gnat_to_gnu_profile_type (Entity_Id gnat
*** 6004,6010 ****
    return gnu_type;
  }
  
! /* Return true if TYPE contains only integral data, recursively if need be.  */
  
  static bool
  type_contains_only_integral_data (tree type)
--- 6121,6128 ----
    return gnu_type;
  }
  
! /* Return true if TYPE contains only integral data, recursively if need be.
!    (integral data is to be understood as not floating-point data here).  */
  
  static bool
  type_contains_only_integral_data (tree type)
*************** type_contains_only_integral_data (tree t
*** 6024,6030 ****
        return type_contains_only_integral_data (TREE_TYPE (type));
  
      default:
!       return INTEGRAL_TYPE_P (type);
      }
  
    gcc_unreachable ();
--- 6142,6148 ----
        return type_contains_only_integral_data (TREE_TYPE (type));
  
      default:
!       return INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type);
      }
  
    gcc_unreachable ();
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6402,6407 ****
--- 6520,6552 ----
  	 since structures are incomplete for the back-end.  */
        else if (Convention (gnat_subprog) != Convention_Stubbed)
  	{
+ 	  /* If we have two entries that may be returned in integer registers,
+ 	     the larger has power-of-2 size and the smaller is integer, then
+ 	     extend the smaller to this power-of-2 size to get a return type
+ 	     with power-of-2 size and no holes, again to speed up accesses.  */
+ 	  if (list_length (gnu_cico_field_list) == 2
+ 	      && gnu_cico_only_integral_type)
+ 	    {
+ 	      tree typ1 = TREE_TYPE (gnu_cico_field_list);
+ 	      tree typ2 = TREE_TYPE (DECL_CHAIN (gnu_cico_field_list));
+ 	      if (TREE_CODE (typ1) == INTEGER_TYPE
+ 		  && integer_pow2p (TYPE_SIZE (typ2))
+ 		  && compare_tree_int (TYPE_SIZE (typ2),
+ 				       MAX_FIXED_MODE_SIZE) <= 0
+ 		  && tree_int_cst_lt (TYPE_SIZE (typ1), TYPE_SIZE (typ2)))
+ 		TREE_TYPE (gnu_cico_field_list)
+ 		  = gnat_type_for_size (TREE_INT_CST_LOW (TYPE_SIZE (typ2)),
+ 					TYPE_UNSIGNED (typ1));
+ 	      else if (TREE_CODE (typ2) == INTEGER_TYPE
+ 		       && integer_pow2p (TYPE_SIZE (typ1))
+ 		       && compare_tree_int (TYPE_SIZE (typ1),
+ 					    MAX_FIXED_MODE_SIZE) <= 0
+ 		       && tree_int_cst_lt (TYPE_SIZE (typ2), TYPE_SIZE (typ1)))
+ 		TREE_TYPE (DECL_CHAIN (gnu_cico_field_list))
+ 		  = gnat_type_for_size (TREE_INT_CST_LOW (TYPE_SIZE (typ1)),
+ 					TYPE_UNSIGNED (typ2));
+ 	    }
+ 
  	  finish_record_type (gnu_cico_return_type,
  			      nreverse (gnu_cico_field_list),
  			      0, false);
*************** gnat_to_gnu_subprog_type (Entity_Id gnat
*** 6466,6472 ****
    /* Turn imported C++ constructors into their callable form as done in the
       front-end, i.e. add the "this" pointer and void the return type.  */
    if (method_p
!       && Is_Constructor (gnat_subprog)
        && !VOID_TYPE_P (gnu_return_type))
      {
        tree gnu_param_type
--- 6611,6617 ----
    /* Turn imported C++ constructors into their callable form as done in the
       front-end, i.e. add the "this" pointer and void the return type.  */
    if (method_p
!       && Is_CPP_Constructor (gnat_subprog)
        && !VOID_TYPE_P (gnu_return_type))
      {
        tree gnu_param_type
*************** elaborate_entity (Entity_Id gnat_entity)
*** 7108,7113 ****
--- 7253,7407 ----
      }
  }
  
+ /* Build the template type GNU_TEMPLATE_TYPE for the array type GNAT_ENTITY.
+    GNU_TEMPLATE_REFERENCE is an expression to access the template value from
+    the pointer type.  If GNU_INDEX_TYPES is not null, it's an array where the
+    index types whose bounds are the values of the template are to be stored.
+    If GNU_MAX_SIZE is not NULL_TREE, it's a tree where the maximum size of
+    the array type is computed.  DEBUG_INFO_P is true if debug info needs to
+    be output for this type.  */
+ 
+ void
+ build_template_type (Entity_Id gnat_entity, tree gnu_template_type,
+ 		     tree gnu_template_reference,
+ 		     tree *gnu_index_types, tree &gnu_max_size,
+ 		     bool debug_info_p)
+ {
+   const bool convention_fortran_p
+     = (Convention (gnat_entity) == Convention_Fortran);
+   const int ndim = Number_Dimensions (gnat_entity);
+   tree *gnu_temp_fields = XALLOCAVEC (tree, ndim);
+   Entity_Id gnat_index;
+   int index;
+ 
+   tree template_fields = TYPE_FIELDS (gnu_template_type);
+   const bool template_exists_p = template_fields != NULL_TREE;
+ 
+   /* Now create the GCC type for each index and add the fields for that
+      index to the template.  */
+   for (index = (convention_fortran_p ? ndim - 1 : 0),
+        gnat_index = First_Index (gnat_entity);
+        IN_RANGE (index, 0, ndim - 1);
+        index += (convention_fortran_p ? - 1 : 1),
+        gnat_index = Next_Index (gnat_index))
+     {
+       const Entity_Id gnat_index_type = Etype (gnat_index);
+       const bool is_flb = Is_Fixed_Lower_Bound_Index_Subtype (gnat_index_type);
+       tree gnu_index_type = get_unpadded_type (gnat_index_type);
+       tree gnu_orig_min = TYPE_MIN_VALUE (gnu_index_type);
+       tree gnu_orig_max = TYPE_MAX_VALUE (gnu_index_type);
+       tree gnu_index_base_type = get_base_type (gnu_index_type);
+       tree gnu_lb_field, gnu_hb_field;
+       tree gnu_min, gnu_max, gnu_high;
+       char field_name[16];
+ 
+       /* Update the maximum size of the array in elements.  */
+       if (gnu_max_size)
+ 	gnu_max_size
+ 	  = update_n_elem (gnu_max_size, gnu_orig_min, gnu_orig_max);
+ 
+       /* Now build the self-referential bounds of the index type.  */
+       gnu_index_type = maybe_character_type (gnu_index_type);
+       gnu_index_base_type = maybe_character_type (gnu_index_base_type);
+ 
+       if (template_fields != NULL_TREE)
+ 	{
+ 	  gnu_lb_field = template_fields;
+ 	  template_fields = DECL_CHAIN (template_fields);
+ 	  gnu_hb_field = template_fields;
+ 	  template_fields = DECL_CHAIN (template_fields);
+ 	}
+       else
+ 	{
+ 	  /* Make the FIELD_DECLs for the low and high bounds of this
+ 	     type and then make extractions of these fields from the
+ 	     template.  */
+ 	  sprintf (field_name, "LB%d", index);
+ 	  gnu_lb_field = create_field_decl (get_identifier (field_name),
+ 					    gnu_index_type,
+ 					    gnu_template_type, NULL_TREE,
+ 					    NULL_TREE, 0, 0);
+ 	  /* Mark the field specifically for INSTANTIATE_LOAD_IN_EXPR.  */
+ 	  DECL_DISCRIMINANT_NUMBER (gnu_lb_field) = integer_minus_one_node;
+ 	  Sloc_to_locus (Sloc (gnat_entity), &DECL_SOURCE_LOCATION (gnu_lb_field));
+ 
+ 	  field_name[0] = 'U';
+ 	  gnu_hb_field = create_field_decl (get_identifier (field_name),
+ 					    gnu_index_type,
+ 					    gnu_template_type, NULL_TREE,
+ 					    NULL_TREE, 0, 0);
+ 	  /* Mark the field specifically for INSTANTIATE_LOAD_IN_EXPR.  */
+ 	  DECL_DISCRIMINANT_NUMBER (gnu_hb_field) = integer_minus_one_node;
+ 	  Sloc_to_locus (Sloc (gnat_entity), &DECL_SOURCE_LOCATION (gnu_hb_field));
+ 
+ 	  gnu_temp_fields[index] = chainon (gnu_lb_field, gnu_hb_field);
+ 	}
+ 
+       if (gnu_index_types)
+ 	{
+ 	  /* We can't use build_component_ref here since the template type
+ 	     isn't complete yet.  */
+ 	  if (!is_flb)
+ 	    {
+ 	      gnu_orig_min
+ 		= build3 (COMPONENT_REF, TREE_TYPE (gnu_lb_field),
+ 			  gnu_template_reference, gnu_lb_field,
+ 			  NULL_TREE);
+ 	      TREE_READONLY (gnu_orig_min) = 1;
+ 	    }
+ 
+ 	  gnu_orig_max = build3 (COMPONENT_REF, TREE_TYPE (gnu_hb_field),
+ 				 gnu_template_reference, gnu_hb_field,
+ 				 NULL_TREE);
+ 	  TREE_READONLY (gnu_orig_max) = 1;
+ 
+ 	  gnu_min = convert (sizetype, gnu_orig_min);
+ 	  gnu_max = convert (sizetype, gnu_orig_max);
+ 
+ 	  /* Compute the size of this dimension.  See the E_Array_Subtype
+ 	     case of gnat_to_gnu_entity for the rationale.  */
+ 	  if (is_flb
+ 	      && Nkind (gnat_index) == N_Subtype_Indication
+ 	      && flb_cannot_be_superflat (gnat_index))
+ 	    gnu_high = gnu_max;
+ 
+ 	  else
+ 	    gnu_high
+ 	      = build3 (COND_EXPR, sizetype,
+ 			build2 (GE_EXPR, boolean_type_node,
+ 				gnu_orig_max, gnu_orig_min),
+ 			gnu_max,
+ 			TREE_CODE (gnu_min) == INTEGER_CST
+ 			? int_const_binop (MINUS_EXPR, gnu_min, size_one_node)
+ 			: size_binop (MINUS_EXPR, gnu_min, size_one_node));
+ 
+ 	  /* Make a range type with the new range in the Ada base type.
+ 	     Then make an index type with the size range in sizetype.  */
+ 	  gnu_index_types[index]
+ 	    = create_index_type (gnu_min, gnu_high,
+ 				 create_range_type (gnu_index_base_type,
+ 						    gnu_orig_min,
+ 						    gnu_orig_max),
+ 				 gnat_entity);
+ 
+ 	  TYPE_NAME (gnu_index_types[index])
+ 	    = create_concat_name (gnat_entity, field_name);
+ 	}
+     }
+ 
+   if (!template_exists_p)
+     {
+       TYPE_NAMELESS (gnu_template_type)
+ 	= gnat_encodings != DWARF_GNAT_ENCODINGS_ALL;
+ 
+       tree 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);
+     }
+ }
+ 
  /* Prepend to ATTR_LIST an entry for an attribute with provided TYPE,
     NAME, ARGS and ERROR_POINT.  */
  
*************** static tree
*** 7275,7282 ****
  elaborate_expression_1 (tree gnu_expr, Entity_Id gnat_entity, const char *s,
  			bool definition, bool need_for_debug)
  {
!   const bool expr_public_p = Is_Public (gnat_entity);
!   const bool expr_global_p = expr_public_p || global_bindings_p ();
    bool expr_variable_p, use_variable;
  
    /* If GNU_EXPR contains a placeholder, just return it.  We rely on the fact
--- 7569,7575 ----
  elaborate_expression_1 (tree gnu_expr, Entity_Id gnat_entity, const char *s,
  			bool definition, bool need_for_debug)
  {
!   const bool expr_global_p = Is_Public (gnat_entity) || global_bindings_p ();
    bool expr_variable_p, use_variable;
  
    /* If GNU_EXPR contains a placeholder, just return it.  We rely on the fact
*************** elaborate_expression_1 (tree gnu_expr, E
*** 7326,7332 ****
    if (need_for_debug
        && gnat_encodings != DWARF_GNAT_ENCODINGS_ALL
        && (TREE_CONSTANT (gnu_expr)
! 	  || (!expr_public_p
  	      && DECL_P (gnu_expr)
  	      && !DECL_IGNORED_P (gnu_expr))))
      need_for_debug = false;
--- 7619,7625 ----
    if (need_for_debug
        && gnat_encodings != DWARF_GNAT_ENCODINGS_ALL
        && (TREE_CONSTANT (gnu_expr)
! 	  || (!Is_Public (gnat_entity)
  	      && DECL_P (gnu_expr)
  	      && !DECL_IGNORED_P (gnu_expr))))
      need_for_debug = false;
*************** elaborate_expression_1 (tree gnu_expr, E
*** 7345,7351 ****
        tree gnu_decl
  	= create_var_decl (create_concat_name (gnat_entity, s), NULL_TREE,
  			   TREE_TYPE (gnu_expr), gnu_expr, true,
! 			   expr_public_p, !definition && expr_global_p,
  			   expr_global_p, false, true,
  			   Needs_Debug_Info (gnat_entity),
  			   NULL, gnat_entity, false);
--- 7638,7645 ----
        tree gnu_decl
  	= create_var_decl (create_concat_name (gnat_entity, s), NULL_TREE,
  			   TREE_TYPE (gnu_expr), gnu_expr, true,
! 			   Is_Public (gnat_entity), Is_Link_Once (gnat_entity),
! 			   !definition && expr_global_p,
  			   expr_global_p, false, true,
  			   Needs_Debug_Info (gnat_entity),
  			   NULL, gnat_entity, false);
*************** gnat_to_gnu_field (Entity_Id gnat_field,
*** 7729,7734 ****
--- 8023,8029 ----
    if (!needs_strict_alignment
        && RECORD_OR_UNION_TYPE_P (gnu_field_type)
        && !TYPE_FAT_POINTER_P (gnu_field_type)
+       && !TYPE_EXTENDED_POINTER_P (gnu_field_type)
        && tree_fits_uhwi_p (TYPE_SIZE (gnu_field_type))
        && (packed == 1
  	  || is_bitfield
*************** gnat_to_gnu_field (Entity_Id gnat_field,
*** 7926,7931 ****
--- 8221,8227 ----
        if (!needs_strict_alignment
  	  && RECORD_OR_UNION_TYPE_P (gnu_field_type)
  	  && !TYPE_FAT_POINTER_P (gnu_field_type)
+ 	  && !TYPE_EXTENDED_POINTER_P (gnu_field_type)
  	  && TYPE_MODE (gnu_field_type) == BLKmode
  	  && is_bitfield)
  	gnu_field_type = make_packable_type (gnu_field_type, true, 1);
*************** typedef struct vinfo
*** 8217,8223 ****
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the componennt list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
--- 8513,8519 ----
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the component list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
*************** components_to_record (Node_Id gnat_compo
*** 8334,8340 ****
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_variant_level = true;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
--- 8630,8636 ----
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_of_unchecked_union = false;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
*************** components_to_record (Node_Id gnat_compo
*** 8383,8397 ****
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	     Present (variant);
! 	     variant = Next_Non_Pragma (variant))
! 	  if (Present (Component_List (variant))
! 	      && Present (Variant_Part (Component_List (variant))))
! 	    {
! 	      innermost_variant_level = false;
! 	      break;
! 	    }
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
--- 8679,8697 ----
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	{
! 	  innermost_of_unchecked_union = true;
! 
! 	  for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	       Present (variant);
! 	       variant = Next_Non_Pragma (variant))
! 	    if (Present (Component_List (variant))
! 		&& Present (Variant_Part (Component_List (variant))))
! 	      {
! 		innermost_of_unchecked_union = false;
! 		break;
! 	      }
! 	}
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
*************** components_to_record (Node_Id gnat_compo
*** 8438,8454 ****
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed,
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !(unchecked_union
! 				         && gnu_field_list
! 					 && innermost_variant_level)
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
--- 8738,8754 ----
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate; in that case, we force a packed layout because the
! 	     moved fields may overlap with packed bit-fields.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed ||
! 				    (all_rep && innermost_of_unchecked_union),
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !innermost_of_unchecked_union
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
*************** validate_size (Uint uint_size, tree gnu_
*** 9652,9658 ****
  
    /* 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
--- 9952,9960 ----
  
    /* 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)
!       || TYPE_IS_EXTENDED_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
*************** validate_size (Uint uint_size, tree gnu_
*** 9678,9683 ****
--- 9980,9999 ----
        return NULL_TREE;
      }
  
+   /* The size of stand-alone objects is always a multiple of the alignment,
+      but that's already enforced for elementary types by the front-end.  */
+   if (kind == VAR_DECL
+       && !component_p
+       && RECORD_OR_UNION_TYPE_P (gnu_type)
+       && !TYPE_FAT_POINTER_P (gnu_type)
+       && !integer_zerop (size_binop (TRUNC_MOD_EXPR, size,
+ 				     bitsize_int (TYPE_ALIGN (gnu_type)))))
+     {
+       post_error_ne_num ("size for& must be multiple of alignment ^",
+ 			 gnat_error_node, gnat_object, TYPE_ALIGN (gnu_type));
+       return NULL_TREE;
+     }
+ 
    return size;
  }
  
*************** set_rm_size (Uint uint_size, tree gnu_ty
*** 9754,9760 ****
  
    /* ...or the Ada size for record and union types.  */
    else if (RECORD_OR_UNION_TYPE_P (gnu_type)
! 	   && !TYPE_FAT_POINTER_P (gnu_type))
      SET_TYPE_ADA_SIZE (gnu_type, size);
  }
  
--- 10070,10077 ----
  
    /* ...or the Ada size for record and union types.  */
    else if (RECORD_OR_UNION_TYPE_P (gnu_type)
! 	   && !TYPE_FAT_POINTER_P (gnu_type)
! 	   && !TYPE_EXTENDED_POINTER_P (gnu_type))
      SET_TYPE_ADA_SIZE (gnu_type, size);
  }
  
*************** copy_and_substitute_in_layout (Entity_Id
*** 10558,10563 ****
--- 10875,10881 ----
  	    gnu_size = DECL_SIZE (gnu_old_field);
  	    if (RECORD_OR_UNION_TYPE_P (gnu_field_type)
  		&& !TYPE_FAT_POINTER_P (gnu_field_type)
+ 		&& !TYPE_EXTENDED_POINTER_P (gnu_field_type)
  		&& tree_fits_uhwi_p (TYPE_SIZE (gnu_field_type)))
  	      gnu_field_type = make_packable_type (gnu_field_type, true, 0);
  	  }
*************** rm_size (tree gnu_type)
*** 10930,10935 ****
--- 11248,11254 ----
    /* For record or union types, we store the size explicitly.  */
    if (RECORD_OR_UNION_TYPE_P (gnu_type)
        && !TYPE_FAT_POINTER_P (gnu_type)
+       && !TYPE_EXTENDED_POINTER_P (gnu_type)
        && TYPE_ADA_SIZE (gnu_type))
      return TYPE_ADA_SIZE (gnu_type);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/gadaint.h gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/gadaint.h
*** gcc-15.2.0/gcc/ada/gcc-interface/gadaint.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/gadaint.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 2010-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/gigi.h gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/gigi.h
*** gcc-15.2.0/gcc/ada/gcc-interface/gigi.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/gigi.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 gnat_to_gnu_field_decl (Enti
*** 49,54 ****
--- 49,62 ----
     the GCC type corresponding to that entity.  */
  extern tree gnat_to_gnu_type (Entity_Id gnat_entity);
  
+ /* Similar, but GNAT_ENTITY is assumed to refer to a GNAT type.  Return
+    the unpadded version of the GCC type corresponding to that entity.  */
+ extern tree get_unpadded_type (Entity_Id gnat_entity);
+ 
+ /* Similar, but GNAT_ENTITY is assumed to refer to a GNAT type.  Return
+    the extended version of the GCC type corresponding to that entity.  */
+ extern tree get_unpadded_extended_type (Entity_Id gnat_entity);
+ 
  /* Update the GCC tree previously built for the profiles involving GNU_TYPE,
     a dummy type which appears in profiles.  */
  extern void update_profiles_with (tree gnu_type);
*************** extern Entity_Id Gigi_Equivalent_Type (E
*** 107,114 ****
     be elaborated at the point of its definition, but do nothing else.  */
  extern void elaborate_entity (Entity_Id gnat_entity);
  
! /* Get the unpadded version of a GNAT type.  */
! extern tree get_unpadded_type (Entity_Id gnat_entity);
  
  /* Create a record type that contains a SIZE bytes long field of TYPE with a
      starting bit position so that it is aligned to ALIGN bits, and leaving at
--- 115,131 ----
     be elaborated at the point of its definition, but do nothing else.  */
  extern void elaborate_entity (Entity_Id gnat_entity);
  
! /* Build the template type GNU_TEMPLATE_TYPE for the array type GNAT_ENTITY.
!    GNU_TEMPLATE_REFERENCE is an expression to access the template value from
!    the pointer type.  If GNU_INDEX_TYPES is not null, it's an array where the
!    index types whose bounds are the values of the template are to be stored.
!    If GNU_MAX_SIZE is not NULL_TREE, it's a tree where the maximum size of
!    the array type is computed.  DEBUG_INFO_P is true if debug info needs to
!    be output for this type.  */
! extern void build_template_type (Entity_Id gnat_entity, tree gnu_template_type,
! 				 tree gnu_template_reference,
! 				 tree *gnu_index_types, tree &gnu_max_size,
! 				 bool debug_info_p);
  
  /* Create a record type that contains a SIZE bytes long field of TYPE with a
      starting bit position so that it is aligned to ALIGN bits, and leaving at
*************** enum standard_datatypes
*** 388,402 ****
    /* Function declaration node for run-time reallocation function.  */
    ADT_realloc_decl,
  
!   /* Function decl node for 64-bit multiplication with overflow checking.  */
    ADT_mulv64_decl,
  
!   /* Function decl node for 128-bit multiplication with overflow checking.  */
    ADT_mulv128_decl,
  
    /* Identifier for the name of the _Parent field in tagged record types.  */
    ADT_parent_name_id,
  
    /* Identifier for the name of the Not_Handled_By_Others field.  */
    ADT_not_handled_by_others_name_id,
  
--- 405,424 ----
    /* Function declaration node for run-time reallocation function.  */
    ADT_realloc_decl,
  
!   /* Function decl nodes for 64-bit multiplication with overflow checking.  */
    ADT_mulv64_decl,
+   ADT_uns_mulv64_decl,
  
!   /* Function decl nodes for 128-bit multiplication with overflow checking.  */
    ADT_mulv128_decl,
+   ADT_uns_mulv128_decl,
  
    /* Identifier for the name of the _Parent field in tagged record types.  */
    ADT_parent_name_id,
  
+   /* Identifier for the name of the _Tag field in tagged record types.  */
+   ADT_tag_name_id,
+ 
    /* Identifier for the name of the Not_Handled_By_Others field.  */
    ADT_not_handled_by_others_name_id,
  
*************** extern GTY(()) tree gnat_raise_decls_ext
*** 455,462 ****
--- 477,487 ----
  #define free_decl gnat_std_decls[(int) ADT_free_decl]
  #define realloc_decl gnat_std_decls[(int) ADT_realloc_decl]
  #define mulv64_decl gnat_std_decls[(int) ADT_mulv64_decl]
+ #define uns_mulv64_decl gnat_std_decls[(int) ADT_uns_mulv64_decl]
  #define mulv128_decl gnat_std_decls[(int) ADT_mulv128_decl]
+ #define uns_mulv128_decl gnat_std_decls[(int) ADT_uns_mulv128_decl]
  #define parent_name_id gnat_std_decls[(int) ADT_parent_name_id]
+ #define tag_name_id gnat_std_decls[(int) ADT_tag_name_id]
  #define not_handled_by_others_name_id \
  	  gnat_std_decls[(int) ADT_not_handled_by_others_name_id]
  #define reraise_zcx_decl gnat_std_decls[(int) ADT_reraise_zcx_decl]
*************** extern tree get_dummy_type (Entity_Id gn
*** 570,575 ****
--- 595,605 ----
  extern void build_dummy_unc_pointer_types (Entity_Id gnat_desig_type,
  					   tree gnu_desig_type);
  
+ /* Build dummy extended access types whose designated type is specified by
+    GNAT_DESIG_TYPE/GNU_DESIG_TYPE and attach them to the latter.  */
+ extern tree build_dummy_unc_pointer_types_ext (Entity_Id gnat_desig_type,
+ 					       tree gnu_desig_type);
+ 
  /* Record TYPE as a builtin type for Ada.  NAME is the name of the type.
     ARTIFICIAL_P is true if the type was generated by the compiler.  */
  extern void record_builtin_type (const char *name, tree type,
*************** extern void finish_character_type (tree
*** 583,588 ****
--- 613,622 ----
  extern void finish_fat_pointer_type (tree record_type, tree field_list);
  
  /* Given a record type RECORD_TYPE and a list of FIELD_DECL nodes FIELD_LIST,
+    finish constructing the record type as an extended access type.  */
+ extern void finish_extended_pointer_type (tree record_type, tree field_list);
+ 
+ /* 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.
     If REP_LEVEL is one, this record has a representation clause and has been
*************** extern tree create_type_decl (tree name,
*** 645,650 ****
--- 679,687 ----
     definition to be made visible outside of the current compilation unit, for
     instance variable definitions in a package specification.
  
+    LINKONCE_FLAG is true if the entity can be defined in multiple compilation
+    units without generating a linker error.
+ 
     EXTERN_FLAG is true when processing an external variable declaration (as
     opposed to a definition: no storage is to be allocated for the variable).
  
*************** extern tree create_type_decl (tree name,
*** 662,669 ****
     GNAT_NODE is used for the position of the decl.  */
  extern tree create_var_decl (tree name, tree asm_name, tree type, tree init,
  			     bool const_flag, bool public_flag,
! 			     bool extern_flag, bool static_flag,
! 			     bool volatile_flag,
  			     bool artificial_p, bool debug_info_p,
  			     struct attrib *attr_list, Node_Id gnat_node,
  			     bool const_decl_allowed_p = true);
--- 699,706 ----
     GNAT_NODE is used for the position of the decl.  */
  extern tree create_var_decl (tree name, tree asm_name, tree type, tree init,
  			     bool const_flag, bool public_flag,
! 			     bool linkonce_flag, bool extern_flag,
! 			     bool static_flag, bool volatile_flag,
  			     bool artificial_p, bool debug_info_p,
  			     struct attrib *attr_list, Node_Id gnat_node,
  			     bool const_decl_allowed_p = true);
*************** extern tree create_label_decl (tree name
*** 696,701 ****
--- 733,741 ----
     PUBLIC_FLAG is true if this is for a reference to a public entity or for a
     definition to be made visible outside of the current compilation unit.
  
+    LINKONCE_FLAG is true if the entity can be defined in multiple compilation
+    units without generating a linker error.
+ 
     EXTERN_FLAG is true when processing an external subprogram declaration.
  
     ARTIFICIAL_P is true if the subprogram was generated by the compiler.
*************** extern tree create_label_decl (tree name
*** 710,719 ****
  extern tree create_subprog_decl (tree name, tree asm_name, tree type,
  				 tree param_decl_list,
  				 enum inline_status_t inline_status,
! 				 bool public_flag, bool extern_flag,
! 				 bool artificial_p, bool debug_info_p,
! 				 bool definition, struct attrib *attr_list,
! 				 Node_Id gnat_node);
  
  /* Given a subprogram declaration DECL, its assembler name and its type,
     finish constructing the subprogram declaration from ASM_NAME and TYPE.  */
--- 750,760 ----
  extern tree create_subprog_decl (tree name, tree asm_name, tree type,
  				 tree param_decl_list,
  				 enum inline_status_t inline_status,
! 				 bool public_flag, bool linkonce_flag,
! 				 bool extern_flag, bool artificial_p,
! 				 bool debug_info_p, bool definition,
! 				 struct attrib *attr_list = NULL,
! 				 Node_Id gnat_node = Empty);
  
  /* Given a subprogram declaration DECL, its assembler name and its type,
     finish constructing the subprogram declaration from ASM_NAME and TYPE.  */
*************** extern tree build_unc_object_type (tree
*** 753,763 ****
  				   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_unc_object_type_from_ptr (tree thin_fat_ptr_type,
! 					    tree object_type, tree name,
! 					    bool debug_info_p);
  
  /* Update anything previously pointing to OLD_TYPE to point to NEW_TYPE.  In
     the normal case this is just two adjustments, but we have more to do
--- 794,802 ----
  				   tree name, bool artificial_p,
  				   bool debug_info_p);
  
! /* Same, taking a pointer type instead of a template type.  */
! extern tree build_unc_object_type_from_ptr (tree ptr_type, tree object_type,
! 					    tree name, bool debug_info_p);
  
  /* Update anything previously pointing to OLD_TYPE to point to NEW_TYPE.  In
     the normal case this is just two adjustments, but we have more to do
*************** call_is_atomic_load (tree exp)
*** 1120,1125 ****
--- 1159,1186 ----
    return BUILT_IN_ATOMIC_LOAD_N <= code && code <= BUILT_IN_ATOMIC_LOAD_16;
  }
  
+ /* Return true if TYPE is a tagged type or a CW-equivalent type.  */
+ 
+ static inline bool
+ type_is_tagged_or_cw_equivalent (tree type)
+ {
+   if (!RECORD_OR_UNION_TYPE_P (type))
+     return false;
+ 
+   tree field = TYPE_FIELDS (type);
+   if (!field)
+     return false;
+ 
+   /* The tag can be put into the REP part of a record type.  */
+   if (DECL_INTERNAL_P (field))
+     return type_is_tagged_or_cw_equivalent (TREE_TYPE (field));
+ 
+   tree name = DECL_NAME (field);
+ 
+   /* See Exp_Util.Make_CW_Equivalent_Type for the CW-equivalent case.  */
+   return name == tag_name_id || name == parent_name_id;
+ }
+ 
  /* Return true if TYPE is padding a self-referential type.  */
  
  static inline bool
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/lang-specs.h gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/lang-specs.h
*** gcc-15.2.0/gcc/ada/gcc-interface/lang-specs.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/lang-specs.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *           Copyright (C) 1992-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/lang.opt.urls gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/lang.opt.urls
*** gcc-15.2.0/gcc/ada/gcc-interface/lang.opt.urls	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/lang.opt.urls	Thu Apr 23 11:07:32 2026
***************
*** 1,7 ****
  ; Autogenerated by regenerate-opt-urls.py from gcc/ada/gcc-interface/lang.opt and generated HTML
  
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
  
  ; skipping UrlSuffix for 'Wall' due to multiple URLs:
  ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
--- 1,25 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/ada/gcc-interface/lang.opt and generated HTML
  
+ -all-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-all-warnings)
+ 
+ -include-barrier
+ UrlSuffix(gcc/Directory-Options.html#index-include-barrier)
+ 
+ -include-directory
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -no-standard-includes
+ UrlSuffix(gcc/Directory-Options.html#index-no-standard-includes)
+ 
+ -no-standard-libraries
+ UrlSuffix(gcc/Link-Options.html#index-no-standard-libraries)
+ 
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-I)
  
  ; skipping UrlSuffix for 'Wall' due to multiple URLs:
  ;   duplicate: 'gcc/Standard-Libraries.html#index-Wall-1'
*************** nostdlib
*** 16,32 ****
  UrlSuffix(gcc/Link-Options.html#index-nostdlib)
  
  ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
! ;   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'
  ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
  
  ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-funsigned-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
  
--- 34,50 ----
  UrlSuffix(gcc/Link-Options.html#index-nostdlib)
  
  ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
! ;   duplicate: 'gcc/Code-Gen-Options.html#index-fno-short-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-fno-signed-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
  
  ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-unsigned-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/misc.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/misc.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/misc.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/misc.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                           C Implementation File                          *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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_post_options (const char **pfilenam
*** 271,277 ****
  
    /* No caret by default for Ada.  */
    if (!OPTION_SET_P (flag_diagnostics_show_caret))
!     global_dc->m_source_printing.enabled = false;
  
    /* Copy global settings to local versions.  */
    gnat_encodings = global_options.x_gnat_encodings;
--- 271,277 ----
  
    /* No caret by default for Ada.  */
    if (!OPTION_SET_P (flag_diagnostics_show_caret))
!     global_dc->get_source_printing_options ().enabled = false;
  
    /* Copy global settings to local versions.  */
    gnat_encodings = global_options.x_gnat_encodings;
*************** gnat_post_options (const char **pfilenam
*** 292,298 ****
  /* Here is the function to handle the compiler error processing in GCC.  */
  
  static void
! internal_error_function (diagnostic_context *context, const char *msgid,
  			 va_list *ap)
  {
    char *buffer, *p, *loc;
--- 292,298 ----
  /* Here is the function to handle the compiler error processing in GCC.  */
  
  static void
! internal_error_function (diagnostics::context *context, const char *msgid,
  			 va_list *ap)
  {
    char *buffer, *p, *loc;
*************** gnat_init (void)
*** 377,383 ****
    line_table->default_range_bits = 0;
  
    /* Register our internal error function.  */
!   global_dc->m_internal_error = &internal_error_function;
  
    return true;
  }
--- 377,383 ----
    line_table->default_range_bits = 0;
  
    /* Register our internal error function.  */
!   global_dc->set_internal_error_callback (&internal_error_function);
  
    return true;
  }
*************** gnat_print_type (FILE *file, tree node,
*** 531,537 ****
        break;
  
      case RECORD_TYPE:
!       if (TYPE_FAT_POINTER_P (node) || TYPE_CONTAINS_TEMPLATE_P (node))
  	print_node (file, "unconstrained array",
  		    TYPE_UNCONSTRAINED_ARRAY (node), indent + 4);
        else
--- 531,539 ----
        break;
  
      case RECORD_TYPE:
!       if (TYPE_EXTENDED_POINTER_P (node)
! 	  || TYPE_FAT_POINTER_P (node)
! 	  || TYPE_CONTAINS_TEMPLATE_P (node))
  	print_node (file, "unconstrained array",
  		    TYPE_UNCONSTRAINED_ARRAY (node), indent + 4);
        else
*************** gnat_get_array_descr_info (const_tree co
*** 837,842 ****
--- 839,846 ----
        if (TYPE_IMPL_PACKED_ARRAY_P (array_type)
            && TYPE_ORIGINAL_PACKED_ARRAY (array_type))
          array_type = TYPE_ORIGINAL_PACKED_ARRAY (array_type);
+       if (TREE_CODE (array_type) != ARRAY_TYPE)
+ 	return false;
  
        /* Shift back the address to get the address of the template.  */
        tree shift_amount
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/system.ads gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/system.ads
*** gcc-15.2.0/gcc/ada/gcc-interface/system.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/system.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/gcc-interface/targtyps.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/targtyps.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/targtyps.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/targtyps.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/trans.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/trans.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/trans.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/trans.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** gigi (Node_Id gnat_root,
*** 319,325 ****
  {
    Node_Id gnat_iter;
    Entity_Id gnat_literal;
!   tree t, ftype, int64_type;
    struct elab_info *info;
    int i;
  
--- 319,325 ----
  {
    Node_Id gnat_iter;
    Entity_Id gnat_literal;
!   tree t, ftype;
    struct elab_info *info;
    int i;
  
*************** gigi (Node_Id gnat_root,
*** 427,440 ****
    gcc_assert (t == boolean_false_node);
    t = create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  		       boolean_type_node, t, true, false, false, false, false,
! 		       true, false, NULL, gnat_literal);
    save_gnu_tree (gnat_literal, t, false);
    gnat_literal = Next_Literal (gnat_literal);
    t = UI_To_gnu (Enumeration_Rep (gnat_literal), boolean_type_node);
    gcc_assert (t == boolean_true_node);
    t = create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  		       boolean_type_node, t, true, false, false, false, false,
! 		       true, false, NULL, gnat_literal);
    save_gnu_tree (gnat_literal, t, false);
  
    /* Declare the building blocks of function nodes.  */
--- 427,440 ----
    gcc_assert (t == boolean_false_node);
    t = create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  		       boolean_type_node, t, true, false, false, false, false,
! 		       false, true, false, NULL, gnat_literal);
    save_gnu_tree (gnat_literal, t, false);
    gnat_literal = Next_Literal (gnat_literal);
    t = UI_To_gnu (Enumeration_Rep (gnat_literal), boolean_type_node);
    gcc_assert (t == boolean_true_node);
    t = create_var_decl (get_entity_name (gnat_literal), NULL_TREE,
  		       boolean_type_node, t, true, false, false, false, false,
! 		       false, true, false, NULL, gnat_literal);
    save_gnu_tree (gnat_literal, t, false);
  
    /* Declare the building blocks of function nodes.  */
*************** gigi (Node_Id gnat_root,
*** 446,480 ****
      = create_subprog_decl (get_identifier ("__gnat_malloc"), NULL_TREE,
  			   build_function_type_list (ptr_type_node, sizetype,
  						     NULL_TREE),
! 			   NULL_TREE, is_default, true, true, true, false,
! 			   false, NULL, Empty);
    DECL_IS_MALLOC (malloc_decl) = 1;
  
    free_decl
      = create_subprog_decl (get_identifier ("__gnat_free"), NULL_TREE,
  			   build_function_type_list (void_type_node,
  						     ptr_type_node, NULL_TREE),
! 			   NULL_TREE, is_default, true, true, true, false,
! 			   false, NULL, Empty);
  
    realloc_decl
      = create_subprog_decl (get_identifier ("__gnat_realloc"), NULL_TREE,
  			   build_function_type_list (ptr_type_node,
  						     ptr_type_node, sizetype,
  						     NULL_TREE),
! 			   NULL_TREE, is_default, true, true, true, false,
! 			   false, NULL, Empty);
  
    /* This is used for 64-bit multiplication with overflow checking.  */
!   int64_type = gnat_type_for_size (64, 0);
    mulv64_decl
      = create_subprog_decl (get_identifier ("__gnat_mulv64"), NULL_TREE,
  			   build_function_type_list (int64_type, int64_type,
  						     int64_type, NULL_TREE),
! 			   NULL_TREE, is_default, true, true, true, false,
! 			   false, NULL, Empty);
    strub_make_callable (mulv64_decl);
  
    if (Enable_128bit_Types)
      {
        tree int128_type = gnat_type_for_size (128, 0);
--- 446,489 ----
      = create_subprog_decl (get_identifier ("__gnat_malloc"), NULL_TREE,
  			   build_function_type_list (ptr_type_node, sizetype,
  						     NULL_TREE),
! 			   NULL_TREE, is_default, true, false, true, true,
! 			   false, false);
    DECL_IS_MALLOC (malloc_decl) = 1;
  
    free_decl
      = create_subprog_decl (get_identifier ("__gnat_free"), NULL_TREE,
  			   build_function_type_list (void_type_node,
  						     ptr_type_node, NULL_TREE),
! 			   NULL_TREE, is_default, true, false, true, true,
! 			   false, false);
  
    realloc_decl
      = create_subprog_decl (get_identifier ("__gnat_realloc"), NULL_TREE,
  			   build_function_type_list (ptr_type_node,
  						     ptr_type_node, sizetype,
  						     NULL_TREE),
! 			   NULL_TREE, is_default, true, false, true, true,
! 			   false, false);
  
    /* This is used for 64-bit multiplication with overflow checking.  */
!   tree int64_type = gnat_type_for_size (64, 0);
    mulv64_decl
      = create_subprog_decl (get_identifier ("__gnat_mulv64"), NULL_TREE,
  			   build_function_type_list (int64_type, int64_type,
  						     int64_type, NULL_TREE),
! 			   NULL_TREE, is_default, true, false, true, true,
! 			   false, false);
    strub_make_callable (mulv64_decl);
  
+   tree uint64_type = gnat_type_for_size (64, 1);
+   uns_mulv64_decl
+     = create_subprog_decl (get_identifier ("__gnat_uns_mulv64"), NULL_TREE,
+ 			   build_function_type_list (uint64_type, uint64_type,
+ 						     uint64_type, NULL_TREE),
+ 			   NULL_TREE, is_default, true, false, true, true,
+ 			   false, false);
+   strub_make_callable (uns_mulv64_decl);
+ 
    if (Enable_128bit_Types)
      {
        tree int128_type = gnat_type_for_size (128, 0);
*************** gigi (Node_Id gnat_root,
*** 484,497 ****
  							 int128_type,
  							 int128_type,
  							 NULL_TREE),
! 			       NULL_TREE, is_default, true, true, true, false,
! 			       false, NULL, Empty);
        strub_make_callable (mulv128_decl);
      }
  
    /* Name of the _Parent field in tagged record types.  */
    parent_name_id = get_identifier (Get_Name_String (Name_uParent));
  
    /* Name of the Not_Handled_By_Others field in exception record types.  */
    not_handled_by_others_name_id = get_identifier ("not_handled_by_others");
  
--- 493,520 ----
  							 int128_type,
  							 int128_type,
  							 NULL_TREE),
! 			       NULL_TREE, is_default, true, false, true, true,
! 			       false, false);
        strub_make_callable (mulv128_decl);
+ 
+       tree uint128_type = gnat_type_for_size (128, 1);
+       uns_mulv128_decl
+ 	= create_subprog_decl (get_identifier ("__gnat_uns_mulv128"), NULL_TREE,
+ 			       build_function_type_list (uint128_type,
+ 							 uint128_type,
+ 							 uint128_type,
+ 							 NULL_TREE),
+ 			       NULL_TREE, is_default, true, false, true, true,
+ 			       false, false);
+       strub_make_callable (uns_mulv128_decl);
      }
  
    /* Name of the _Parent field in tagged record types.  */
    parent_name_id = get_identifier (Get_Name_String (Name_uParent));
  
+   /* Name of the _Tag field in tagged record types.  */
+   tag_name_id = get_identifier (Get_Name_String (Name_uTag));
+ 
    /* Name of the Not_Handled_By_Others field in exception record types.  */
    not_handled_by_others_name_id = get_identifier ("not_handled_by_others");
  
*************** gigi (Node_Id gnat_root,
*** 503,509 ****
        (get_identifier ("__gnat_set_exception_parameter"), NULL_TREE,
         build_function_type_list (void_type_node, ptr_type_node, ptr_type_node,
  				 NULL_TREE),
!        NULL_TREE, is_default, true, true, true, false, false, NULL, Empty);
  
    /* Hooks to call when entering/leaving an exception handler.  */
    ftype = build_function_type_list (ptr_type_node,
--- 526,532 ----
        (get_identifier ("__gnat_set_exception_parameter"), NULL_TREE,
         build_function_type_list (void_type_node, ptr_type_node, ptr_type_node,
  				 NULL_TREE),
!        NULL_TREE, is_default, true, false, true, true, false, false);
  
    /* Hooks to call when entering/leaving an exception handler.  */
    ftype = build_function_type_list (ptr_type_node,
*************** gigi (Node_Id gnat_root,
*** 511,518 ****
    begin_handler_decl
      = create_subprog_decl (get_identifier ("__gnat_begin_handler_v1"),
  			   NULL_TREE, ftype, NULL_TREE,
! 			   is_default, true, true, true, false, false, NULL,
! 			   Empty);
    /* __gnat_begin_handler_v1 is not a dummy procedure, but we arrange
       for it not to throw.  */
    TREE_NOTHROW (begin_handler_decl) = 1;
--- 534,540 ----
    begin_handler_decl
      = create_subprog_decl (get_identifier ("__gnat_begin_handler_v1"),
  			   NULL_TREE, ftype, NULL_TREE,
! 			   is_default, true, false, true, true, false, false);
    /* __gnat_begin_handler_v1 is not a dummy procedure, but we arrange
       for it not to throw.  */
    TREE_NOTHROW (begin_handler_decl) = 1;
*************** gigi (Node_Id gnat_root,
*** 523,545 ****
    end_handler_decl
      = create_subprog_decl (get_identifier ("__gnat_end_handler_v1"), NULL_TREE,
  			   ftype, NULL_TREE,
! 			   is_default, true, true, true, false, false, NULL,
! 			   Empty);
  
    ftype = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
    unhandled_except_decl
      = create_subprog_decl (get_identifier ("__gnat_unhandled_except_handler"),
  			   NULL_TREE, ftype, NULL_TREE,
! 			   is_default, true, true, true, false, false, NULL,
! 			   Empty);
  
    /* Indicate that it never returns.  */
    ftype = build_qualified_type (ftype, TYPE_QUAL_VOLATILE);
    reraise_zcx_decl
      = create_subprog_decl (get_identifier ("__gnat_reraise_zcx"), NULL_TREE,
  			   ftype, NULL_TREE,
! 			   is_default, true, true, true, false, false, NULL,
! 			   Empty);
    set_call_expr_flags (reraise_zcx_decl, ECF_NORETURN | ECF_XTHROW);
  
    /* Dummy objects to materialize "others" and "all others" in the exception
--- 545,564 ----
    end_handler_decl
      = create_subprog_decl (get_identifier ("__gnat_end_handler_v1"), NULL_TREE,
  			   ftype, NULL_TREE,
! 			   is_default, true, false, true, true, false, false);
  
    ftype = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
    unhandled_except_decl
      = create_subprog_decl (get_identifier ("__gnat_unhandled_except_handler"),
  			   NULL_TREE, ftype, NULL_TREE,
! 			   is_default, true, false, true, true, false, false);
  
    /* Indicate that it never returns.  */
    ftype = build_qualified_type (ftype, TYPE_QUAL_VOLATILE);
    reraise_zcx_decl
      = create_subprog_decl (get_identifier ("__gnat_reraise_zcx"), NULL_TREE,
  			   ftype, NULL_TREE,
! 			   is_default, true, false, true, true, false, false);
    set_call_expr_flags (reraise_zcx_decl, ECF_NORETURN | ECF_XTHROW);
  
    /* Dummy objects to materialize "others" and "all others" in the exception
*************** gigi (Node_Id gnat_root,
*** 549,569 ****
      = create_var_decl (get_identifier ("OTHERS"),
  		       get_identifier ("__gnat_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, true, false, false, true, false,
  		       NULL, Empty);
  
    all_others_decl
      = create_var_decl (get_identifier ("ALL_OTHERS"),
  		       get_identifier ("__gnat_all_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, true, false, false, true, false,
  		       NULL, Empty);
  
    unhandled_others_decl
      = create_var_decl (get_identifier ("UNHANDLED_OTHERS"),
  		       get_identifier ("__gnat_unhandled_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, true, false, false, true, false,
  		       NULL, Empty);
  
    /* If in no exception handlers mode, all raise statements are redirected to
--- 568,588 ----
      = create_var_decl (get_identifier ("OTHERS"),
  		       get_identifier ("__gnat_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, false, true, false, false, true, false,
  		       NULL, Empty);
  
    all_others_decl
      = create_var_decl (get_identifier ("ALL_OTHERS"),
  		       get_identifier ("__gnat_all_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, false, true, false, false, true, false,
  		       NULL, Empty);
  
    unhandled_others_decl
      = create_var_decl (get_identifier ("UNHANDLED_OTHERS"),
  		       get_identifier ("__gnat_unhandled_others_value"),
  		       char_type_node, NULL_TREE,
! 		       true, false, false, true, false, false, true, false,
  		       NULL, Empty);
  
    /* If in no exception handlers mode, all raise statements are redirected to
*************** gigi (Node_Id gnat_root,
*** 578,585 ****
        tree decl
  	= create_subprog_decl
  	  (get_identifier ("__gnat_last_chance_handler"), NULL_TREE, ftype,
! 	   NULL_TREE, is_default, true, true, true, false, false, NULL,
! 	   Empty);
        for (i = 0; i < (int) ARRAY_SIZE (gnat_raise_decls); i++)
  	gnat_raise_decls[i] = decl;
      }
--- 597,603 ----
        tree decl
  	= create_subprog_decl
  	  (get_identifier ("__gnat_last_chance_handler"), NULL_TREE, ftype,
! 	   NULL_TREE, is_default, true, false, true, true, false, false);
        for (i = 0; i < (int) ARRAY_SIZE (gnat_raise_decls); i++)
  	gnat_raise_decls[i] = decl;
      }
*************** build_raise_check (int check, enum excep
*** 741,748 ****
    ftype = build_qualified_type (ftype, TYPE_QUAL_VOLATILE);
    result
      = create_subprog_decl (get_identifier (Name_Buffer), NULL_TREE, ftype,
! 			   NULL_TREE, is_default, true, true, true, false,
! 			   false, NULL, Empty);
    strub_make_callable (result);
    set_call_expr_flags (result, ECF_NORETURN | ECF_XTHROW);
  
--- 759,766 ----
    ftype = build_qualified_type (ftype, TYPE_QUAL_VOLATILE);
    result
      = create_subprog_decl (get_identifier (Name_Buffer), NULL_TREE, ftype,
! 			   NULL_TREE, is_default, true, false, true, true,
! 			   false, false);
    strub_make_callable (result);
    set_call_expr_flags (result, ECF_NORETURN | ECF_XTHROW);
  
*************** Identifier_to_gnu (Node_Id gnat_node, tr
*** 1227,1232 ****
--- 1245,1254 ----
       no order-of-elaboration issue here.  */
    if (Is_Subprogram (gnat_entity))
      gnu_result_type = NULL_TREE;
+   else if (Nkind (Original_Node (gnat_node)) == N_Explicit_Dereference
+ 	   && Is_Extended_Access_Type
+ 	      (Etype (Prefix (Original_Node (gnat_node)))))
+     gnu_result_type = get_unpadded_extended_type (gnat_result_type);
    else
      gnu_result_type = get_unpadded_type (gnat_result_type);
  
*************** Pragma_to_gnu (Node_Id gnat_node)
*** 1510,1516 ****
  	const location_t location = input_location;
  	struct cl_option_handlers handlers;
  	unsigned int option_index;
! 	diagnostic_t kind;
  	bool imply;
  
  	gnat_temp = First (Pragma_Argument_Associations (gnat_node));
--- 1532,1538 ----
  	const location_t location = input_location;
  	struct cl_option_handlers handlers;
  	unsigned int option_index;
! 	enum diagnostics::kind kind;
  	bool imply;
  
  	gnat_temp = First (Pragma_Argument_Associations (gnat_node));
*************** Pragma_to_gnu (Node_Id gnat_node)
*** 1521,1532 ****
  	    switch (id)
  	      {
  	      case Pragma_Warning_As_Error:
! 		kind = DK_ERROR;
  		imply = false;
  		break;
  
  	      case Pragma_Warnings:
! 		kind = DK_WARNING;
  		imply = true;
  		break;
  
--- 1543,1554 ----
  	    switch (id)
  	      {
  	      case Pragma_Warning_As_Error:
! 		kind = diagnostics::kind::error;
  		imply = false;
  		break;
  
  	      case Pragma_Warnings:
! 		kind = diagnostics::kind::warning;
  		imply = true;
  		break;
  
*************** Pragma_to_gnu (Node_Id gnat_node)
*** 1543,1553 ****
  	    switch (Chars (Expression (gnat_temp)))
  	      {
  		case Name_Off:
! 		  kind = DK_IGNORED;
  		  break;
  
  		case Name_On:
! 		  kind = DK_WARNING;
  		  break;
  
  		default:
--- 1565,1575 ----
  	    switch (Chars (Expression (gnat_temp)))
  	      {
  		case Name_Off:
! 		  kind = diagnostics::kind::ignored;
  		  break;
  
  		case Name_On:
! 		  kind = diagnostics::kind::warning;
  		  break;
  
  		default:
*************** Pragma_to_gnu (Node_Id gnat_node)
*** 1569,1575 ****
  		gnat_expr = Empty;
  
  		/* For pragma Warnings (Off), we save the current state...  */
! 		if (kind == DK_IGNORED)
  		  diagnostic_push_diagnostics (global_dc, location);
  
  		/* ...so that, for pragma Warnings (On), we do not enable all
--- 1591,1597 ----
  		gnat_expr = Empty;
  
  		/* For pragma Warnings (Off), we save the current state...  */
! 		if (kind == diagnostics::kind::ignored)
  		  diagnostic_push_diagnostics (global_dc, location);
  
  		/* ...so that, for pragma Warnings (On), we do not enable all
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1915,1926 ****
  	tree gnu_ptr = gnu_prefix;
  	tree gnu_obj_type;
  
! 	gnu_result_type = get_unpadded_type (Etype (gnat_node));
  
! 	/* If this is fat pointer, the object must have been allocated with the
! 	   template in front of the array.  So compute the template address; do
! 	   it by converting to a thin pointer.  */
! 	if (TYPE_IS_FAT_POINTER_P (TREE_TYPE (gnu_ptr)))
  	  gnu_ptr
  	    = convert (build_pointer_type
  		       (TYPE_OBJECT_RECORD_TYPE
--- 1937,1953 ----
  	tree gnu_ptr = gnu_prefix;
  	tree gnu_obj_type;
  
!         if (Is_Extended_Access_Type (Etype (Prefix (gnat_node)))
!             && !Is_Constrained (Etype (gnat_node)))
!           gnu_result_type = get_unpadded_extended_type (Etype (gnat_node));
!         else
!           gnu_result_type = get_unpadded_type (Etype (gnat_node));
  
! 	/* If this is fat or extended pointer, the object must have been
! 	   allocated with the template in front of the array.  So compute the
! 	   template address; do it by converting to a thin pointer.  */
! 	if (TYPE_IS_FAT_POINTER_P (TREE_TYPE (gnu_ptr))
!             || TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (gnu_ptr)))
  	  gnu_ptr
  	    = convert (build_pointer_type
  		       (TYPE_OBJECT_RECORD_TYPE
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 2010,2016 ****
  	      tree gnu_ptr_type
  		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
  
! 	      if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type))
  		gnu_type
  		  = build_unc_object_type_from_ptr (gnu_ptr_type,
  						    gnu_actual_obj_type,
--- 2037,2044 ----
  	      tree gnu_ptr_type
  		= TREE_TYPE (gnat_to_gnu (Prefix (gnat_prefix)));
  
! 	      if (TYPE_IS_FAT_OR_THIN_POINTER_P (gnu_ptr_type)
! 		  || TYPE_IS_EXTENDED_POINTER_P (gnu_ptr_type))
  		gnu_type
  		  = build_unc_object_type_from_ptr (gnu_ptr_type,
  						    gnu_actual_obj_type,
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 4026,4032 ****
  	  gnu_return_var
  	    = create_var_decl (get_identifier ("RETVAL"), NULL_TREE,
  			       gnu_return_type, NULL_TREE,
! 			       false, false, false, false, false,
  			       true, false, NULL, gnat_subprog);
  	  TREE_VALUE (gnu_return_var_elmt) = gnu_return_var;
  	}
--- 4054,4060 ----
  	  gnu_return_var
  	    = create_var_decl (get_identifier ("RETVAL"), NULL_TREE,
  			       gnu_return_type, NULL_TREE,
! 			       false, false, false, false, false, false,
  			       true, false, NULL, gnat_subprog);
  	  TREE_VALUE (gnu_return_var_elmt) = gnu_return_var;
  	}
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 4049,4055 ****
  	    tree gnu_decl;
  
  	    /* Skip any entries that have been already filled in; they must
! 	       correspond to In Out parameters.  */
  	    while (gnu_cico_entry && TREE_VALUE (gnu_cico_entry))
  	      gnu_cico_entry = TREE_CHAIN (gnu_cico_entry);
  
--- 4077,4083 ----
  	    tree gnu_decl;
  
  	    /* Skip any entries that have been already filled in; they must
! 	       correspond to In Out parameters or previous Out parameters.  */
  	    while (gnu_cico_entry && TREE_VALUE (gnu_cico_entry))
  	      gnu_cico_entry = TREE_CHAIN (gnu_cico_entry);
  
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 4059,4069 ****
  	    if (DECL_BY_REF_P (gnu_decl))
  	      gnu_decl = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_decl);
  
! 	    /* Do any needed references for padded types.  */
! 	    TREE_VALUE (gnu_cico_entry)
! 	      = convert (TREE_TYPE (TREE_PURPOSE (gnu_cico_entry)), gnu_decl);
  	  }
      }
    else
      vec_safe_push (gnu_return_label_stack, NULL_TREE);
  
--- 4087,4108 ----
  	    if (DECL_BY_REF_P (gnu_decl))
  	      gnu_decl = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_decl);
  
! 	    TREE_VALUE (gnu_cico_entry) = gnu_decl;
  	  }
+ 
+       /* Finally, ensure type consistency between TREE_PURPOSE and TREE_VALUE
+ 	 so that the assignment of the latter to the former can be done.  */
+       tree gnu_cico_entry = gnu_cico_list;
+       while (gnu_cico_entry)
+ 	{
+ 	  if (!VOID_TYPE_P (TREE_VALUE (gnu_cico_entry)))
+ 	    TREE_VALUE (gnu_cico_entry)
+ 	      = convert (TREE_TYPE (TREE_PURPOSE (gnu_cico_entry)),
+ 			 TREE_VALUE (gnu_cico_entry));
+ 	  gnu_cico_entry = TREE_CHAIN (gnu_cico_entry);
+ 	}
      }
+ 
    else
      vec_safe_push (gnu_return_label_stack, NULL_TREE);
  
*************** Subprogram_Body_to_gnu (Node_Id gnat_nod
*** 4161,4169 ****
  	    }
  	}
  
!       /* Otherwise, if this is a procedure or a function which does not return
! 	 by invisible reference, we can do a direct block-copy out.  */
!       else
  	{
  	  tree gnu_retval;
  
--- 4200,4212 ----
  	    }
  	}
  
!       /* Otherwise, if this is a procedure or a function that does not return
! 	 by invisible reference, we can do a direct block-copy out, but we do
! 	 not need to do it for a null initialization procedure when the _Init
! 	 parameter is not passed in since we would copy uninitialized bits.  */
!       else if (!(Is_Null_Init_Proc (gnat_subprog)
! 		 && list_length (gnu_cico_list) == 1
! 		 && TREE_CODE (TREE_VALUE (gnu_cico_list)) == VAR_DECL))
  	{
  	  tree gnu_retval;
  
*************** create_temporary (const char *prefix, tr
*** 4547,4553 ****
    tree gnu_temp
      = create_var_decl (create_tmp_var_name (prefix), NULL_TREE,
  		      type, NULL_TREE,
! 		      false, false, false, false, false,
  		      true, false, NULL, Empty);
    return gnu_temp;
  }
--- 4590,4596 ----
    tree gnu_temp
      = create_var_decl (create_tmp_var_name (prefix), NULL_TREE,
  		      type, NULL_TREE,
! 		      false, false, false, false, false, false,
  		      true, false, NULL, Empty);
    return gnu_temp;
  }
*************** Exception_Handler_to_gnu (Node_Id gnat_n
*** 5830,5836 ****
    tree exc_ptr
      = create_var_decl (get_identifier ("EXPTR"), NULL_TREE,
  		       ptr_type_node, gnu_current_exc_ptr,
! 		       true, false, false, false, false, true, true,
  		       NULL, gnat_node);
  
    tree prev_gnu_incoming_exc_ptr = gnu_incoming_exc_ptr;
--- 5873,5879 ----
    tree exc_ptr
      = create_var_decl (get_identifier ("EXPTR"), NULL_TREE,
  		       ptr_type_node, gnu_current_exc_ptr,
! 		       true, false, false, false, false, false, true, true,
  		       NULL, gnat_node);
  
    tree prev_gnu_incoming_exc_ptr = gnu_incoming_exc_ptr;
*************** Exception_Handler_to_gnu (Node_Id gnat_n
*** 5845,5851 ****
  		       ptr_type_node,
  		       build_call_n_expr (begin_handler_decl, 1,
  					  exc_ptr),
! 		       true, false, false, false, false,
  		       true, true, NULL, gnat_node);
  
    /* Declare and initialize the choice parameter, if present.  */
--- 5888,5894 ----
  		       ptr_type_node,
  		       build_call_n_expr (begin_handler_decl, 1,
  					  exc_ptr),
! 		       true, false, false, false, false, false,
  		       true, true, NULL, gnat_node);
  
    /* Declare and initialize the choice parameter, if present.  */
*************** Exception_Handler_to_gnu (Node_Id gnat_n
*** 5895,5901 ****
  			   build_call_expr (builtin_decl_explicit
  					    (BUILT_IN_EH_POINTER),
  					    1, integer_zero_node),
! 			   true, false, false, false, false,
  			   true, true, NULL, gnat_node);
  
        /* CODE: __gnat_end_handler_v1 (EXPTR, EXCLN, EXPRP);  */
--- 5938,5944 ----
  			   build_call_expr (builtin_decl_explicit
  					    (BUILT_IN_EH_POINTER),
  					    1, integer_zero_node),
! 			   true, false, false, false, false, false,
  			   true, true, NULL, gnat_node);
  
        /* CODE: __gnat_end_handler_v1 (EXPTR, EXCLN, EXPRP);  */
*************** Compilation_Unit_to_gnu (Node_Id gnat_no
*** 5941,5947 ****
      = create_subprog_decl
        (create_concat_name (gnat_unit_entity, body_p ? "elabb" : "elabs"),
         NULL_TREE, void_ftype, NULL_TREE,
!        is_default, true, false, false, true, false, NULL, gnat_unit);
    struct elab_info *info;
  
    vec_safe_push (gnu_elab_proc_stack, gnu_elab_proc_decl);
--- 5984,5990 ----
      = create_subprog_decl
        (create_concat_name (gnat_unit_entity, body_p ? "elabb" : "elabs"),
         NULL_TREE, void_ftype, NULL_TREE,
!        is_default, true, false, false, false, true, false, NULL, gnat_unit);
    struct elab_info *info;
  
    vec_safe_push (gnu_elab_proc_stack, gnu_elab_proc_decl);
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6855,6863 ****
  		&& (Is_Array_Type (Etype (gnat_temp))
  		    || Is_Record_Type (Etype (gnat_temp))
  		    || Is_Concurrent_Type (Etype (gnat_temp)))))
! 	gnat_to_gnu_entity (gnat_temp,
! 			    gnat_to_gnu (Renamed_Object (gnat_temp)),
! 			    true);
        break;
  
      case N_Exception_Renaming_Declaration:
--- 6898,6919 ----
  		&& (Is_Array_Type (Etype (gnat_temp))
  		    || Is_Record_Type (Etype (gnat_temp))
  		    || Is_Concurrent_Type (Etype (gnat_temp)))))
! 	{
! 	  gnu_expr = gnat_to_gnu (Renamed_Object (gnat_temp));
! 
! 	  /* The elaboration of object renamings present in the source code
! 	     never needs to be deferred.  But regular objects may be turned
! 	     into renamings during expansion and their elaboration may need
! 	     to be deferred, in which case we expect the renamed references
! 	     to have been stabilized, so we do not do it again here.  */
! 	  if (Present (Freeze_Node (gnat_temp)))
! 	    {
! 	      gcc_assert (!Comes_From_Source (gnat_node));
! 	      save_gnu_tree (gnat_node, gnu_expr, true);
! 	    }
! 	  else
! 	    gnat_to_gnu_entity (gnat_temp, gnu_expr, true);
! 	}
        break;
  
      case N_Exception_Renaming_Declaration:
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6923,6929 ****
  
      case N_Explicit_Dereference:
        /* Make sure the designated type is complete before dereferencing.  */
!       gnu_result_type = get_unpadded_type (Etype (gnat_node));
        gnu_result = gnat_to_gnu (Prefix (gnat_node));
        gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
  
--- 6979,6990 ----
  
      case N_Explicit_Dereference:
        /* Make sure the designated type is complete before dereferencing.  */
!       if (Is_Extended_Access_Type (Etype (Prefix (gnat_node)))
! 	  && !Is_Constrained (Etype (gnat_node)))
!         gnu_result_type = get_unpadded_extended_type (Etype (gnat_node));
!       else
!         gnu_result_type = get_unpadded_type (Etype (gnat_node));
! 
        gnu_result = gnat_to_gnu (Prefix (gnat_node));
        gnu_result = build_unary_op (INDIRECT_REF, NULL_TREE, gnu_result);
  
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7156,7162 ****
  				 (Entity (Prefix (gnat_node)),
  				  attr == Attr_Elab_Body ? "elabb" : "elabs"),
  				 NULL_TREE, void_ftype, NULL_TREE, is_default,
! 				 true, true, true, true, false, NULL,
  				 gnat_node);
  
  	gnu_result = Attribute_to_gnu (gnat_node, &gnu_result_type, attr);
--- 7217,7223 ----
  				 (Entity (Prefix (gnat_node)),
  				  attr == Attr_Elab_Body ? "elabb" : "elabs"),
  				 NULL_TREE, void_ftype, NULL_TREE, is_default,
! 				 true, false, true, true, true, false, NULL,
  				 gnat_node);
  
  	gnu_result = Attribute_to_gnu (gnat_node, &gnu_result_type, attr);
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7269,7275 ****
  	  tree gnu_obj_type = TREE_TYPE (gnu_result_type);
  	  unsigned int oalign = TYPE_ALIGN (gnu_obj_type);
  
! 	  if (align != 0 && align < oalign && !TYPE_ALIGN_OK (gnu_obj_type))
  	    post_error_ne_tree_2
  	      ("??source alignment (^) '< alignment of & (^)",
  	       gnat_node, Designated_Type (Etype (gnat_node)),
--- 7330,7341 ----
  	  tree gnu_obj_type = TREE_TYPE (gnu_result_type);
  	  unsigned int oalign = TYPE_ALIGN (gnu_obj_type);
  
! 	  /* Skip tagged types because conversions to the class-wide type are
! 	     translated into conversions to the root type, which may be less
! 	     aligned than some of its derived types.  */
! 	  if (align != 0
! 	      && align < oalign
! 	      && !type_is_tagged_or_cw_equivalent (gnu_obj_type))
  	    post_error_ne_tree_2
  	      ("??source alignment (^) '< alignment of & (^)",
  	       gnat_node, Designated_Type (Etype (gnat_node)),
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7489,7500 ****
  	      gnu_max_shift = convert (gnu_type, gnu_max_shift);
  	  }
  
! 	/* For signed integer addition, subtraction and multiplication, do an
  	   overflow check if required.  */
! 	if (Do_Overflow_Check (gnat_node)
! 	    && (code == PLUS_EXPR || code == MINUS_EXPR || code == MULT_EXPR)
! 	    && !TYPE_UNSIGNED (gnu_type)
! 	    && !FLOAT_TYPE_P (gnu_type))
  	  gnu_result
  	    = build_binary_op_trapv (code, gnu_type, gnu_lhs, gnu_rhs,
  				     gnat_node);
--- 7555,7565 ----
  	      gnu_max_shift = convert (gnu_type, gnu_max_shift);
  	  }
  
! 	/* For integer addition, subtraction and multiplication, perform an
  	   overflow check if required.  */
! 	if ((code == PLUS_EXPR || code == MINUS_EXPR || code == MULT_EXPR)
! 	    && !FLOAT_TYPE_P (gnu_type)
! 	    && Do_Overflow_Check (gnat_node))
  	  gnu_result
  	    = build_binary_op_trapv (code, gnu_type, gnu_lhs, gnu_rhs,
  				     gnat_node);
*************** gnat_to_gnu (Node_Id gnat_node)
*** 7575,7585 ****
        gnu_expr = gnat_to_gnu (Right_Opnd (gnat_node));
        gnu_result_type = get_unpadded_type (Etype (gnat_node));
  
!       /* For signed integer negation and absolute value, do an overflow check
  	 if required.  */
!       if (Do_Overflow_Check (gnat_node)
! 	  && !TYPE_UNSIGNED (gnu_result_type)
! 	  && !FLOAT_TYPE_P (gnu_result_type))
  	gnu_result
  	  = build_unary_op_trapv (gnu_codes[kind], gnu_result_type, gnu_expr,
  				  gnat_node);
--- 7640,7650 ----
        gnu_expr = gnat_to_gnu (Right_Opnd (gnat_node));
        gnu_result_type = get_unpadded_type (Etype (gnat_node));
  
!       /* For integer negation and absolute value, perform an overflow check
  	 if required.  */
!       if ((gnu_codes[kind] == NEGATE_EXPR || gnu_codes[kind] == ABS_EXPR)
! 	  && !FLOAT_TYPE_P (gnu_result_type)
! 	  && Do_Overflow_Check (gnat_node))
  	gnu_result
  	  = build_unary_op_trapv (gnu_codes[kind], gnu_result_type, gnu_expr,
  				  gnat_node);
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8461,8467 ****
  	      oconstraints[i] = constraint;
  
  	      if (parse_output_constraint (&constraint, i, ninputs, noutputs,
! 					   &allows_mem, &allows_reg, &fake))
  		{
  		  /* If the operand is going to end up in memory,
  		     mark it addressable.  Note that we don't test
--- 8526,8533 ----
  	      oconstraints[i] = constraint;
  
  	      if (parse_output_constraint (&constraint, i, ninputs, noutputs,
! 					   &allows_mem, &allows_reg, &fake,
! 					   nullptr))
  		{
  		  /* If the operand is going to end up in memory,
  		     mark it addressable.  Note that we don't test
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8489,8497 ****
  	      constraint
  		= TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (tail)));
  
! 	      if (parse_input_constraint (&constraint, i, ninputs, noutputs,
! 					  0, oconstraints,
! 					  &allows_mem, &allows_reg))
  		{
  		  /* If the operand is going to end up in memory,
  		     mark it addressable.  */
--- 8555,8563 ----
  	      constraint
  		= TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (tail)));
  
! 	      if (parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 					  oconstraints, &allows_mem,
! 					  &allows_reg, nullptr))
  		{
  		  /* If the operand is going to end up in memory,
  		     mark it addressable.  */
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8737,8743 ****
  
    /* Set the location information on the result if it's not a simple name
       or something that contains a simple name, for example a tag, because
!      we don"t want all the references to get the location of the first use.
       Note that we may have no result if we tried to build a CALL_EXPR node
       to a procedure with no side-effects and optimization is enabled.  */
    else if (kind != N_Identifier
--- 8803,8809 ----
  
    /* Set the location information on the result if it's not a simple name
       or something that contains a simple name, for example a tag, because
!      we don't want all the references to get the location of the first use.
       Note that we may have no result if we tried to build a CALL_EXPR node
       to a procedure with no side-effects and optimization is enabled.  */
    else if (kind != N_Identifier
*************** gnat_to_gnu (Node_Id gnat_node)
*** 8840,8846 ****
        /* Remove padding only if the inner object is of self-referential
  	 size: in that case it must be an object of unconstrained type
  	 with a default discriminant and we want to avoid copying too
! 	 much data.  But do not remove it if it is already too small.  */
        if (type_is_padding_self_referential (TREE_TYPE (gnu_result))
  	  && !(TREE_CODE (gnu_result) == COMPONENT_REF
  	       && DECL_BIT_FIELD (TREE_OPERAND (gnu_result, 1))
--- 8906,8914 ----
        /* Remove padding only if the inner object is of self-referential
  	 size: in that case it must be an object of unconstrained type
  	 with a default discriminant and we want to avoid copying too
! 	 much data, in particular reading too much data from the source,
! 	 which may be constrained and thus may contain no padding at all.
! 	 But do not remove the padding if it is already too small.  */
        if (type_is_padding_self_referential (TREE_TYPE (gnu_result))
  	  && !(TREE_CODE (gnu_result) == COMPONENT_REF
  	       && DECL_BIT_FIELD (TREE_OPERAND (gnu_result, 1))
*************** process_freeze_entity (Node_Id gnat_node
*** 9775,9784 ****
      }
    else
      {
        tree gnu_init
! 	= (Nkind (Declaration_Node (gnat_entity)) == N_Object_Declaration
! 	   && present_gnu_tree (Declaration_Node (gnat_entity)))
! 	  ? get_gnu_tree (Declaration_Node (gnat_entity)) : NULL_TREE;
  
        gnu_new = gnat_to_gnu_entity (gnat_entity, gnu_init, true);
      }
--- 9843,9857 ----
      }
    else
      {
+       /* For an object whose elaboration is deferred, the GCC tree of the
+ 	 declaration, if any, is the initialization expression.  */
+       const Node_Id gnat_decl = Declaration_Node (gnat_entity);
        tree gnu_init
! 	= (Nkind (gnat_decl) == N_Object_Declaration
! 	   || Nkind (gnat_decl) == N_Object_Renaming_Declaration)
! 	  && Present (Freeze_Node (gnat_entity))
! 	  && present_gnu_tree (gnat_decl)
! 	  ? get_gnu_tree (gnat_decl) : NULL_TREE;
  
        gnu_new = gnat_to_gnu_entity (gnat_entity, gnu_init, true);
      }
*************** build_unary_op_trapv (enum tree_code cod
*** 9943,9954 ****
  {
    gcc_assert (code == NEGATE_EXPR || code == ABS_EXPR);
  
    operand = gnat_protect_expr (operand);
  
!   return emit_check (build_binary_op (EQ_EXPR, boolean_type_node,
! 				      operand, TYPE_MIN_VALUE (gnu_type)),
! 		     build_unary_op (code, gnu_type, operand),
! 		     CE_Overflow_Check_Failed, gnat_node);
  }
  
  /* Make a binary operation of kind CODE using build_binary_op, but guard
--- 10016,10040 ----
  {
    gcc_assert (code == NEGATE_EXPR || code == ABS_EXPR);
  
+   tree gnu_expr, check;
+ 
    operand = gnat_protect_expr (operand);
  
!   gnu_expr = build_unary_op (code, gnu_type, operand);
! 
!   if (TYPE_UNSIGNED (gnu_type))
!     {
!       if (code == ABS_EXPR)
! 	return gnu_expr;
!       else
! 	check = build_binary_op (NE_EXPR, boolean_type_node,
! 				 operand, TYPE_MIN_VALUE (gnu_type));
!     }
!   else
!     check = build_binary_op (EQ_EXPR, boolean_type_node,
! 			     operand, TYPE_MIN_VALUE (gnu_type));
! 
!   return emit_check (check, gnu_expr, CE_Overflow_Check_Failed, gnat_node);
  }
  
  /* Make a binary operation of kind CODE using build_binary_op, but guard
*************** build_binary_op_trapv (enum tree_code co
*** 10001,10021 ****
        /* Never inline a 64-bit mult for a 32-bit target, it's way too long.  */
        if (code == MULT_EXPR && precision == 64 && BITS_PER_WORD < 64)
  	{
! 	  tree int64 = gnat_type_for_size (64, 0);
  	  Check_Restriction_No_Dependence_On_System (Name_Arith_64, gnat_node);
! 	  return convert (gnu_type, build_call_n_expr (mulv64_decl, 2,
! 						       convert (int64, lhs),
! 						       convert (int64, rhs)));
  	}
  
        /* Likewise for a 128-bit mult and a 64-bit target.  */
        else if (code == MULT_EXPR && precision == 128 && BITS_PER_WORD < 128)
  	{
! 	  tree int128 = gnat_type_for_size (128, 0);
  	  Check_Restriction_No_Dependence_On_System (Name_Arith_128, gnat_node);
! 	  return convert (gnu_type, build_call_n_expr (mulv128_decl, 2,
! 						       convert (int128, lhs),
! 						       convert (int128, rhs)));
  	}
  
        enum internal_fn icode;
--- 10087,10115 ----
        /* Never inline a 64-bit mult for a 32-bit target, it's way too long.  */
        if (code == MULT_EXPR && precision == 64 && BITS_PER_WORD < 64)
  	{
! 	  tree int64 = gnat_type_for_size (64, TYPE_UNSIGNED (gnu_type));
  	  Check_Restriction_No_Dependence_On_System (Name_Arith_64, gnat_node);
! 	  return
! 	    convert (gnu_type, build_call_n_expr (TYPE_UNSIGNED (gnu_type)
! 						  ? uns_mulv64_decl
! 						  : mulv64_decl,
! 						  2,
! 						  convert (int64, lhs),
! 						  convert (int64, rhs)));
  	}
  
        /* Likewise for a 128-bit mult and a 64-bit target.  */
        else if (code == MULT_EXPR && precision == 128 && BITS_PER_WORD < 128)
  	{
! 	  tree int128 = gnat_type_for_size (128, TYPE_UNSIGNED (gnu_type));
  	  Check_Restriction_No_Dependence_On_System (Name_Arith_128, gnat_node);
! 	  return
! 	    convert (gnu_type, build_call_n_expr (TYPE_UNSIGNED (gnu_type)
! 						  ? uns_mulv128_decl
! 						  : mulv128_decl,
! 						  2,
! 						  convert (int128, lhs),
! 						  convert (int128, rhs)));
  	}
  
        enum internal_fn icode;
*************** build_binary_op_trapv (enum tree_code co
*** 10049,10055 ****
     }
  
    /* If one operand is a constant, we expose the overflow condition to enable
!      a subsequent simplication or even elimination.  */
    switch (code)
      {
      case PLUS_EXPR:
--- 10143,10149 ----
     }
  
    /* If one operand is a constant, we expose the overflow condition to enable
!      a subsequent simplification or even elimination.  */
    switch (code)
      {
      case PLUS_EXPR:
*************** build_binary_op_trapv (enum tree_code co
*** 10069,10089 ****
        break;
  
      case MINUS_EXPR:
!       if (TREE_CODE (lhs) == INTEGER_CST)
  	{
  	  sgn = tree_int_cst_sgn (lhs);
! 	  if (sgn > 0)
! 	    /* When lhs > 0, overflow when rhs < lhs - type_max.  */
  	    check = build_binary_op (LT_EXPR, boolean_type_node, rhs,
  				     build_binary_op (MINUS_EXPR, gnu_type,
  						      lhs, type_max));
! 	  else if (sgn < 0)
  	    /* When lhs < 0, overflow when rhs > lhs - type_min.  */
  	    check = build_binary_op (GT_EXPR, boolean_type_node, rhs,
  				     build_binary_op (MINUS_EXPR, gnu_type,
  						      lhs, type_min));
- 	  else
- 	    return gnu_expr;
  	}
        else
  	{
--- 10163,10186 ----
        break;
  
      case MINUS_EXPR:
!       if (TREE_CODE (lhs) == INTEGER_CST && TYPE_UNSIGNED (gnu_type))
! 	/* In the unsigned case, overflow when rhs > lhs - type_min.  */
! 	check = build_binary_op (GT_EXPR, boolean_type_node, rhs,
! 				 build_binary_op (MINUS_EXPR, gnu_type,
! 						  lhs, type_min));
!       else if (TREE_CODE (lhs) == INTEGER_CST)
  	{
  	  sgn = tree_int_cst_sgn (lhs);
! 	  if (sgn >= 0)
! 	    /* When lhs >= 0, overflow when rhs < lhs - type_max.  */
  	    check = build_binary_op (LT_EXPR, boolean_type_node, rhs,
  				     build_binary_op (MINUS_EXPR, gnu_type,
  						      lhs, type_max));
! 	  else
  	    /* When lhs < 0, overflow when rhs > lhs - type_min.  */
  	    check = build_binary_op (GT_EXPR, boolean_type_node, rhs,
  				     build_binary_op (MINUS_EXPR, gnu_type,
  						      lhs, type_min));
  	}
        else
  	{
*************** addressable_p (tree gnu_expr, tree gnu_t
*** 10553,10560 ****
  		     && (!STRICT_ALIGNMENT
  			 || TYPE_ALIGN (type) <= TYPE_ALIGN (inner_type)
  			 || TYPE_ALIGN (inner_type) >= BIGGEST_ALIGNMENT
! 			 || TYPE_ALIGN_OK (type)
! 			 || TYPE_ALIGN_OK (inner_type))))
  		&& addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE,
  				  compg));
        }
--- 10650,10657 ----
  		     && (!STRICT_ALIGNMENT
  			 || TYPE_ALIGN (type) <= TYPE_ALIGN (inner_type)
  			 || TYPE_ALIGN (inner_type) >= BIGGEST_ALIGNMENT
! 			 || type_is_tagged_or_cw_equivalent (type)
! 			 || type_is_tagged_or_cw_equivalent (inner_type))))
  		&& addressable_p (TREE_OPERAND (gnu_expr, 0), NULL_TREE,
  				  compg));
        }
*************** static bool
*** 11237,11243 ****
  use_alias_for_thunk_p (tree target)
  {
    /* We cannot generate a local call in this case.  */
!   if (DECL_EXTERNAL (target))
      return false;
  
    /* The call is already local in this case.  */
--- 11334,11340 ----
  use_alias_for_thunk_p (tree target)
  {
    /* We cannot generate a local call in this case.  */
!   if (DECL_EXTERNAL (target) || DECL_ONE_ONLY (target))
      return false;
  
    /* The call is already local in this case.  */
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/utils.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/utils.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/utils.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/utils.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 fold_bit_position (const_tre
*** 392,398 ****
  static tree compute_related_constant (tree, tree);
  static tree split_plus (tree, tree *);
  static tree float_type_for_precision (int, machine_mode);
- static tree convert_to_fat_pointer (tree, tree);
  static unsigned int scale_by_factor_of (tree, unsigned int);
  
  /* Linked list used as a queue to defer the initialization of the DECL_CONTEXT
--- 392,397 ----
*************** build_dummy_unc_pointer_types (Entity_Id
*** 616,621 ****
--- 615,673 ----
    TYPE_OBJECT_RECORD_TYPE (gnu_desig_type) = gnu_object_type;
  }
  
+ /* Build dummy extended access types whose designated type is specified by
+    GNAT_DESIG_TYPE/GNU_DESIG_TYPE and attach them to the latter.  */
+ 
+ tree
+ build_dummy_unc_pointer_types_ext (Entity_Id gnat_desig_type, tree gnu_desig_type)
+ {
+   tree gnu_template_type, gnu_array_type, gnu_ptr_array;
+   tree gnu_ext_acc_type = make_node (RECORD_TYPE);
+   tree fields, dummy = NULL_TREE;
+ 
+   gnu_template_type = make_node (RECORD_TYPE);
+   TYPE_NAME (gnu_template_type) = create_concat_name (gnat_desig_type, "XUBEA");
+   TYPE_DUMMY_P (gnu_template_type) = 1;
+ 
+   /* This will also set TYPE_POINTER_TO field for the template type, even if
+      we don't need it here. */
+   build_pointer_type (gnu_template_type);
+ 
+   /* The following call only builds the template record, but other dependent
+      types or other more complex expressions for bounds are NOT created.
+      This allows the size of an extended access to be computed, but it must be
+      completed later. */
+   build_template_type (gnat_desig_type, gnu_template_type, NULL_TREE, NULL,
+ 		       dummy, false);
+ 
+   TYPE_CONTEXT (gnu_template_type) = gnu_ext_acc_type;
+ 
+   gnu_array_type = make_node (ENUMERAL_TYPE);
+   TYPE_NAME (gnu_array_type) = create_concat_name (gnat_desig_type, "XUAEA");
+   TYPE_DUMMY_P (gnu_array_type) = 1;
+   gnu_ptr_array = build_pointer_type (gnu_array_type);
+ 
+   /* Build a stub DECL to trigger the special processing for fat pointer types
+      in gnat_pushdecl.  */
+   TYPE_NAME (gnu_ext_acc_type)
+     = create_type_stub_decl (create_concat_name (gnat_desig_type, "XUPEA"),
+ 			     gnu_ext_acc_type);
+   fields = create_field_decl (get_identifier ("P_ARRAY"), gnu_ptr_array,
+ 			      gnu_ext_acc_type, NULL_TREE, NULL_TREE, 0, 1);
+   DECL_CHAIN (fields)
+     = create_field_decl (get_identifier ("BOUNDS"), gnu_template_type,
+ 			 gnu_ext_acc_type, NULL_TREE, NULL_TREE, 0, 1);
+   finish_extended_pointer_type (gnu_ext_acc_type, fields);
+   SET_TYPE_UNCONSTRAINED_ARRAY (gnu_ext_acc_type, gnu_desig_type);
+ 
+   /* Suppress debug info until after the type is completed.  */
+   TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (gnu_ext_acc_type)) = 1;
+ 
+   SET_TYPE_DUMMY_EXT_POINTER_TO (gnu_desig_type, gnu_ext_acc_type);
+ 
+   return gnu_ext_acc_type;
+ }
+ 
  /* Return true if we are in the global binding level.  */
  
  bool
*************** gnat_pushdecl (tree decl, Node_Id gnat_n
*** 937,947 ****
      }
  
  /* Pointer types aren't named types in the C sense so we need to generate a
!    typedef in DWARF for them.  Also do that for fat pointer types because,
!    even though they are named types in the C sense, they are still the XUP
!    types created for the base array type at this point.  */
! #define TYPE_IS_POINTER_P(NODE) \
!   (TREE_CODE (NODE) == POINTER_TYPE || TYPE_IS_FAT_POINTER_P (NODE))
  
    /* For the declaration of a type, set its name either if it isn't already
       set or if the previous type name was not derived from a source name.
--- 989,1001 ----
      }
  
  /* Pointer types aren't named types in the C sense so we need to generate a
!    typedef in DWARF for them.  Also do that for fat and extended pointer types
!    because, even though they are named types in the C sense, they are still
!    the XUP[EA] types created for the base array type at this point.  */
! #define TYPE_IS_POINTER_P(NODE)                                                \
!   (TREE_CODE (NODE) == POINTER_TYPE                                            \
!    || TYPE_IS_FAT_POINTER_P (NODE)                                             \
!    || TYPE_IS_EXTENDED_POINTER_P (NODE))
  
    /* For the declaration of a type, set its name either if it isn't already
       set or if the previous type name was not derived from a source name.
*************** gnat_pushdecl (tree decl, Node_Id gnat_n
*** 973,980 ****
  	    DECL_ORIGINAL_TYPE (decl) = DECL_ORIGINAL_TYPE (TYPE_NAME (t));
  	  else
  	    DECL_ORIGINAL_TYPE (decl) = t;
! 	  /* Remark the canonical fat pointer type as artificial.  */
! 	  if (TYPE_IS_FAT_POINTER_P (t))
  	    TYPE_ARTIFICIAL (t) = 1;
  	  t = NULL_TREE;
  	}
--- 1027,1034 ----
  	    DECL_ORIGINAL_TYPE (decl) = DECL_ORIGINAL_TYPE (TYPE_NAME (t));
  	  else
  	    DECL_ORIGINAL_TYPE (decl) = t;
! 	  /* Remark the canonical fat or extended pointer type as artificial.  */
! 	  if (TYPE_IS_FAT_POINTER_P (t) || TYPE_IS_EXTENDED_POINTER_P (t))
  	    TYPE_ARTIFICIAL (t) = 1;
  	  t = NULL_TREE;
  	}
*************** maybe_pad_type (tree type, tree size, un
*** 1725,1730 ****
--- 1779,1785 ----
    if (align > 0
        && RECORD_OR_UNION_TYPE_P (type)
        && !TYPE_IS_FAT_POINTER_P (type)
+       && !TYPE_IS_EXTENDED_POINTER_P (type)
        && TYPE_MODE (type) == BLKmode
        && !TYPE_BY_REFERENCE_P (type)
        && TREE_CODE (orig_size) == INTEGER_CST
*************** maybe_pad_type (tree type, tree size, un
*** 1795,1801 ****
  	     is a compilation artifact.  */
  	  size_unit
  	    = create_var_decl (concat_name (name, "XVZ"), NULL_TREE, sizetype,
! 			      size_unit, true, global_bindings_p (),
  			      !definition && global_bindings_p (), false,
  			      false, true, true, NULL, gnat_entity, false);
  	  TYPE_SIZE_UNIT (record) = size_unit;
--- 1850,1856 ----
  	     is a compilation artifact.  */
  	  size_unit
  	    = create_var_decl (concat_name (name, "XVZ"), NULL_TREE, sizetype,
! 			      size_unit, true, global_bindings_p (), false,
  			      !definition && global_bindings_p (), false,
  			      false, true, true, NULL, gnat_entity, false);
  	  TYPE_SIZE_UNIT (record) = size_unit;
*************** finish_fat_pointer_type (tree record_typ
*** 2119,2124 ****
--- 2174,2198 ----
    TYPE_CONTAINS_PLACEHOLDER_INTERNAL (record_type) = 2;
  }
  
+ /* Given a record type RECORD_TYPE and a list of FIELD_DECL nodes FIELD_LIST,
+    finish constructing the record type as an extended access type.  */
+ 
+ void
+ finish_extended_pointer_type (tree record_type, tree field_list)
+ {
+   /* Show what it really is.  */
+   TYPE_EXTENDED_POINTER_P (record_type) = 1;
+ 
+   /* Do not emit debug info for it since the types of its fields may still be
+      incomplete at this point.  */
+   finish_record_type (record_type, field_list, 0, false);
+ 
+   /* Force type_contains_placeholder_p to return true on it.  Although the
+      PLACEHOLDER_EXPRs are referenced only indirectly, this isn't a pointer
+      type but the representation of the unconstrained array.  */
+   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.  */
  
*************** finish_record_type (tree record_type, tr
*** 2219,2224 ****
--- 2293,2299 ----
  
        if (RECORD_OR_UNION_TYPE_P (type)
  	  && !TYPE_FAT_POINTER_P (type)
+ 	  && !TYPE_EXTENDED_POINTER_P (type)
  	  && !TYPE_CONTAINS_TEMPLATE_P (type)
  	  && TYPE_ADA_SIZE (type))
  	this_ada_size = TYPE_ADA_SIZE (type);
*************** finish_record_type (tree record_type, tr
*** 2355,2360 ****
--- 2430,2436 ----
      {
        /* Now set any of the values we've just computed that apply.  */
        if (!TYPE_FAT_POINTER_P (record_type)
+ 	  && !TYPE_EXTENDED_POINTER_P (record_type)
  	  && !TYPE_CONTAINS_TEMPLATE_P (record_type))
  	SET_TYPE_ADA_SIZE (record_type, ada_size);
      }
*************** create_type_decl (tree name, tree type,
*** 2919,2924 ****
--- 2995,3003 ----
     definition to be made visible outside of the current compilation unit, for
     instance variable definitions in a package specification.
  
+    LINKONCE_FLAG is true if the entity can be defined in multiple compilation
+    units without generating a linker error.
+ 
     EXTERN_FLAG is true when processing an external variable declaration (as
     opposed to a definition: no storage is to be allocated for the variable).
  
*************** create_type_decl (tree name, tree type,
*** 2937,2946 ****
  
  tree
  create_var_decl (tree name, tree asm_name, tree type, tree init,
! 		 bool const_flag, bool public_flag, bool extern_flag,
! 		 bool static_flag, bool volatile_flag, bool artificial_p,
! 		 bool debug_info_p, struct attrib *attr_list,
! 		 Node_Id gnat_node, bool const_decl_allowed_p)
  {
    /* Whether the object has static storage duration, either explicitly or by
       virtue of being declared at the global level.  */
--- 3016,3026 ----
  
  tree
  create_var_decl (tree name, tree asm_name, tree type, tree init,
! 		 bool const_flag, bool public_flag, bool linkonce_flag,
! 		 bool extern_flag, bool static_flag, bool volatile_flag,
! 		 bool artificial_p, bool debug_info_p,
! 		 struct attrib *attr_list, Node_Id gnat_node,
! 		 bool const_decl_allowed_p)
  {
    /* Whether the object has static storage duration, either explicitly or by
       virtue of being declared at the global level.  */
*************** create_var_decl (tree name, tree asm_nam
*** 2971,2979 ****
       and may be used for scalars in general but not for aggregates.  */
    tree var_decl
      = build_decl (input_location,
! 		  (constant_p
! 		   && const_decl_allowed_p
! 		   && !AGGREGATE_TYPE_P (type) ? CONST_DECL : VAR_DECL),
  		  name, type);
  
    /* Detect constants created by the front-end to hold 'reference to function
--- 3051,3058 ----
       and may be used for scalars in general but not for aggregates.  */
    tree var_decl
      = build_decl (input_location,
! 		  constant_p && const_decl_allowed_p && !AGGREGATE_TYPE_P (type)
! 		  ? CONST_DECL : VAR_DECL,
  		  name, type);
  
    /* Detect constants created by the front-end to hold 'reference to function
*************** create_var_decl (tree name, tree asm_nam
*** 3055,3060 ****
--- 3134,3146 ----
  	     != null_pointer_node))
      DECL_IGNORED_P (var_decl) = 1;
  
+   /* Note that make_decl_one_only forces TREE_PUBLIC on the DECL.  */
+   if (linkonce_flag && VAR_P (var_decl))
+     {
+       gcc_checking_assert (TREE_PUBLIC (var_decl));
+       make_decl_one_only (var_decl, var_decl);
+     }
+ 
    /* ??? Some attributes cannot be applied to CONST_DECLs.  */
    if (VAR_P (var_decl))
      process_attributes (&var_decl, &attr_list, true, gnat_node);
*************** create_field_decl (tree name, tree type,
*** 3140,3145 ****
--- 3226,3234 ----
  {
    tree field_decl = build_decl (input_location, FIELD_DECL, name, type);
  
+   /* The type must be frozen at this point.  */
+   gcc_assert (COMPLETE_TYPE_P (type));
+ 
    DECL_CONTEXT (field_decl) = record_type;
    TREE_READONLY (field_decl) = TYPE_READONLY (type);
  
*************** tree
*** 3288,3317 ****
  create_param_decl (tree name, tree type)
  {
    tree param_decl = build_decl (input_location, PARM_DECL, name, type);
- 
-   /* Honor TARGET_PROMOTE_PROTOTYPES like the C compiler, as not doing so
-      can lead to various ABI violations.  */
-   if (targetm.calls.promote_prototypes (NULL_TREE)
-       && INTEGRAL_TYPE_P (type)
-       && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
-     {
-       /* We have to be careful about biased types here.  Make a subtype
- 	 of integer_type_node with the proper biasing.  */
-       if (TREE_CODE (type) == INTEGER_TYPE
- 	  && TYPE_BIASED_REPRESENTATION_P (type))
- 	{
- 	  tree subtype
- 	    = make_unsigned_type (TYPE_PRECISION (integer_type_node));
- 	  TREE_TYPE (subtype) = integer_type_node;
- 	  TYPE_BIASED_REPRESENTATION_P (subtype) = 1;
- 	  SET_TYPE_RM_MIN_VALUE (subtype, TYPE_MIN_VALUE (type));
- 	  SET_TYPE_RM_MAX_VALUE (subtype, TYPE_MAX_VALUE (type));
- 	  type = subtype;
- 	}
-       else
- 	type = integer_type_node;
-     }
- 
    DECL_ARG_TYPE (param_decl) = type;
    return param_decl;
  }
--- 3377,3382 ----
*************** create_label_decl (tree name, Node_Id gn
*** 3615,3620 ****
--- 3680,3688 ----
     PUBLIC_FLAG is true if this is for a reference to a public entity or for a
     definition to be made visible outside of the current compilation unit.
  
+    LINKONCE_FLAG is true if the entity can be defined in multiple compilation
+    units without generating a linker error.
+ 
     EXTERN_FLAG is true when processing an external subprogram declaration.
  
     ARTIFICIAL_P is true if the subprogram was generated by the compiler.
*************** create_label_decl (tree name, Node_Id gn
*** 3630,3638 ****
  tree
  create_subprog_decl (tree name, tree asm_name, tree type, tree param_decl_list,
  		     enum inline_status_t inline_status, bool public_flag,
! 		     bool extern_flag, bool artificial_p, bool debug_info_p,
! 		     bool definition, struct attrib *attr_list,
! 		     Node_Id gnat_node)
  {
    tree subprog_decl = build_decl (input_location, FUNCTION_DECL, name, type);
    DECL_ARGUMENTS (subprog_decl) = param_decl_list;
--- 3698,3706 ----
  tree
  create_subprog_decl (tree name, tree asm_name, tree type, tree param_decl_list,
  		     enum inline_status_t inline_status, bool public_flag,
! 		     bool linkonce_flag, bool extern_flag, bool artificial_p,
! 		     bool debug_info_p, bool definition,
! 		     struct attrib *attr_list, Node_Id gnat_node)
  {
    tree subprog_decl = build_decl (input_location, FUNCTION_DECL, name, type);
    DECL_ARGUMENTS (subprog_decl) = param_decl_list;
*************** create_subprog_decl (tree name, tree asm
*** 3685,3690 ****
--- 3753,3765 ----
        gcc_unreachable ();
      }
  
+   /* Note that make_decl_one_only forces TREE_PUBLIC on the DECL.  */
+   if (linkonce_flag)
+     {
+       gcc_checking_assert (TREE_PUBLIC (subprog_decl));
+       make_decl_one_only (subprog_decl, subprog_decl);
+     }
+ 
    process_attributes (&subprog_decl, &attr_list, true, gnat_node);
  
    /* Once everything is processed, finish the subprogram declaration.  */
*************** build_unc_object_type (tree template_typ
*** 4507,4526 ****
    return type;
  }
  
! /* Same, taking a thin or fat pointer type instead of a template type. */
  
  tree
! build_unc_object_type_from_ptr (tree thin_fat_ptr_type, tree object_type,
! 				tree name, bool debug_info_p)
  {
    tree template_type;
  
!   gcc_assert (TYPE_IS_FAT_OR_THIN_POINTER_P (thin_fat_ptr_type));
! 
!   template_type
!     = (TYPE_IS_FAT_POINTER_P (thin_fat_ptr_type)
!        ? TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (thin_fat_ptr_type))))
!        : TREE_TYPE (TYPE_FIELDS (TREE_TYPE (thin_fat_ptr_type))));
  
    return
      build_unc_object_type (template_type, object_type, name, true,
--- 4582,4604 ----
    return type;
  }
  
! /* Same, taking a pointer type instead of a template type.  */
  
  tree
! build_unc_object_type_from_ptr (tree ptr_type, tree object_type, tree name,
! 				bool debug_info_p)
  {
    tree template_type;
  
!   if (TYPE_IS_EXTENDED_POINTER_P (ptr_type))
!     template_type = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (ptr_type)));
!   else if (TYPE_IS_FAT_POINTER_P (ptr_type))
!     template_type
!       = TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (ptr_type))));
!   else if (TYPE_IS_THIN_POINTER_P (ptr_type))
!     template_type = TREE_TYPE (TYPE_FIELDS (TREE_TYPE (ptr_type)));
!   else
!     gcc_unreachable ();
  
    return
      build_unc_object_type (template_type, object_type, name, true,
*************** build_unc_object_type_from_ptr (tree thi
*** 4534,4541 ****
  void
  update_pointer_to (tree old_type, tree new_type)
  {
!   tree ptr = TYPE_POINTER_TO (old_type);
!   tree ref = TYPE_REFERENCE_TO (old_type);
    tree t;
  
    /* If this is the main variant, process all the other variants first.  */
--- 4612,4619 ----
  void
  update_pointer_to (tree old_type, tree new_type)
  {
!   const tree old_ptr = TYPE_POINTER_TO (old_type);
!   const tree old_ref = TYPE_REFERENCE_TO (old_type);
    tree t;
  
    /* If this is the main variant, process all the other variants first.  */
*************** update_pointer_to (tree old_type, tree n
*** 4544,4550 ****
        update_pointer_to (t, new_type);
  
    /* If no pointers and no references, we are done.  */
!   if (!ptr && !ref)
      return;
  
    /* Merge the old type qualifiers in the new type.
--- 4622,4628 ----
        update_pointer_to (t, new_type);
  
    /* If no pointers and no references, we are done.  */
!   if (!old_ptr && !old_ref)
      return;
  
    /* Merge the old type qualifiers in the new type.
*************** update_pointer_to (tree old_type, tree n
*** 4578,4589 ****
    if (TREE_CODE (new_type) != UNCONSTRAINED_ARRAY_TYPE)
      {
        tree new_ptr, new_ref;
  
        /* If pointer or reference already points to new type, nothing to do.
  	 This can happen as update_pointer_to can be invoked multiple times
  	 on the same couple of types because of the type variants.  */
!       if ((ptr && TREE_TYPE (ptr) == new_type)
! 	  || (ref && TREE_TYPE (ref) == new_type))
  	return;
  
        /* Chain PTR and its variants at the end.  */
--- 4656,4668 ----
    if (TREE_CODE (new_type) != UNCONSTRAINED_ARRAY_TYPE)
      {
        tree new_ptr, new_ref;
+       tree ptr, ref;
  
        /* If pointer or reference already points to new type, nothing to do.
  	 This can happen as update_pointer_to can be invoked multiple times
  	 on the same couple of types because of the type variants.  */
!       if ((old_ptr && TREE_TYPE (old_ptr) == new_type)
! 	  || (old_ref && TREE_TYPE (old_ref) == new_type))
  	return;
  
        /* Chain PTR and its variants at the end.  */
*************** update_pointer_to (tree old_type, tree n
*** 4592,4604 ****
  	{
  	  while (TYPE_NEXT_PTR_TO (new_ptr))
  	    new_ptr = TYPE_NEXT_PTR_TO (new_ptr);
! 	  TYPE_NEXT_PTR_TO (new_ptr) = ptr;
  	}
-       else
- 	TYPE_POINTER_TO (new_type) = ptr;
  
        /* Now adjust them.  */
!       for (; ptr; ptr = TYPE_NEXT_PTR_TO (ptr))
  	for (t = TYPE_MAIN_VARIANT (ptr); t; t = TYPE_NEXT_VARIANT (t))
  	  {
  	    TREE_TYPE (t) = new_type;
--- 4671,4706 ----
  	{
  	  while (TYPE_NEXT_PTR_TO (new_ptr))
  	    new_ptr = TYPE_NEXT_PTR_TO (new_ptr);
! 	  TYPE_NEXT_PTR_TO (new_ptr) = old_ptr;
! 	}
!       else if (old_ptr)
! 	{
! 	  TYPE_POINTER_TO (new_type) = old_ptr;
! 
! 	  /* If there is no pointer pointing to NEW_TYPE yet, re-compute the
! 	     TYPE_CANONICAL of the old pointer but pointing to NEW_TYPE, like
! 	     build_pointer_type would have done for such a pointer, because we
! 	     will propagate it in the adjustment loop below.  But make sure to
! 	     preserve an alias set already present on the old pointer.  */
! 	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
! 	    SET_TYPE_STRUCTURAL_EQUALITY (old_ptr);
! 	  else if (TYPE_CANONICAL (new_type) != new_type
! 		   || (TYPE_REF_CAN_ALIAS_ALL (old_ptr)
! 		       && !lookup_attribute ("may_alias",
! 					     TYPE_ATTRIBUTES (new_type))))
! 	    {
! 	      const alias_set_type set
! 		= TYPE_STRUCTURAL_EQUALITY_P (old_ptr)
! 		  ? TYPE_ALIAS_SET (old_ptr)
! 		  : TYPE_ALIAS_SET (TYPE_CANONICAL (old_ptr));
! 	      TYPE_CANONICAL (old_ptr)
! 		= build_pointer_type (TYPE_CANONICAL (new_type));
! 	      TYPE_ALIAS_SET (TYPE_CANONICAL (old_ptr)) = set;
! 	    }
  	}
  
        /* Now adjust them.  */
!       for (ptr = old_ptr; ptr; ptr = TYPE_NEXT_PTR_TO (ptr))
  	for (t = TYPE_MAIN_VARIANT (ptr); t; t = TYPE_NEXT_VARIANT (t))
  	  {
  	    TREE_TYPE (t) = new_type;
*************** update_pointer_to (tree old_type, tree n
*** 4613,4625 ****
  	{
  	  while (TYPE_NEXT_REF_TO (new_ref))
  	    new_ref = TYPE_NEXT_REF_TO (new_ref);
! 	  TYPE_NEXT_REF_TO (new_ref) = ref;
  	}
-       else
- 	TYPE_REFERENCE_TO (new_type) = ref;
  
        /* Now adjust them.  */
!       for (; ref; ref = TYPE_NEXT_REF_TO (ref))
  	for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t))
  	  {
  	    TREE_TYPE (t) = new_type;
--- 4715,4750 ----
  	{
  	  while (TYPE_NEXT_REF_TO (new_ref))
  	    new_ref = TYPE_NEXT_REF_TO (new_ref);
! 	  TYPE_NEXT_REF_TO (new_ref) = old_ref;
! 	}
!       else if (old_ref)
! 	{
! 	  TYPE_REFERENCE_TO (new_type) = old_ref;
! 
! 	  /* If there is no reference pointing to NEW_TYPE yet, re-compute the
! 	     TYPE_CANONICAL of the old reference but pointing to NEW_TYPE, like
! 	     build_reference_type would have done for such a reference, because
! 	     we will propagate it in the adjustment loop below.  But make sure
! 	     to preserve an alias set already present on the old reference.  */
! 	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
! 	    SET_TYPE_STRUCTURAL_EQUALITY (old_ref);
! 	  else if (TYPE_CANONICAL (new_type) != new_type
! 		   || (TYPE_REF_CAN_ALIAS_ALL (old_ref)
! 		       && !lookup_attribute ("may_alias",
! 					     TYPE_ATTRIBUTES (new_type))))
! 	    {
! 	      const alias_set_type set
! 		= TYPE_STRUCTURAL_EQUALITY_P (old_ref)
! 		  ? TYPE_ALIAS_SET (old_ref)
! 		  : TYPE_ALIAS_SET (TYPE_CANONICAL (old_ref));
! 	      TYPE_CANONICAL (old_ref)
! 		= build_reference_type (TYPE_CANONICAL (new_type));
! 	      TYPE_ALIAS_SET (TYPE_CANONICAL (old_ref)) = set;
! 	    }
  	}
  
        /* Now adjust them.  */
!       for (ref = old_ref; ref; ref = TYPE_NEXT_REF_TO (ref))
  	for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t))
  	  {
  	    TREE_TYPE (t) = new_type;
*************** update_pointer_to (tree old_type, tree n
*** 4638,4657 ****
      {
        tree new_ptr = TYPE_POINTER_TO (new_type);
  
!       gcc_assert (TYPE_IS_FAT_POINTER_P (ptr));
  
        /* If PTR already points to NEW_TYPE, nothing to do.  This can happen
  	 since update_pointer_to can be invoked multiple times on the same
  	 couple of types because of the type variants.  */
!       if (TYPE_UNCONSTRAINED_ARRAY (ptr) == new_type)
  	return;
  
        update_pointer_to
! 	(TREE_TYPE (TREE_TYPE (TYPE_FIELDS (ptr))),
  	 TREE_TYPE (TREE_TYPE (TYPE_FIELDS (new_ptr))));
  
        update_pointer_to
! 	(TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (ptr)))),
  	 TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (new_ptr)))));
  
        update_pointer_to (TYPE_OBJECT_RECORD_TYPE (old_type),
--- 4763,4782 ----
      {
        tree new_ptr = TYPE_POINTER_TO (new_type);
  
!       gcc_assert (TYPE_IS_FAT_POINTER_P (old_ptr));
  
        /* If PTR already points to NEW_TYPE, nothing to do.  This can happen
  	 since update_pointer_to can be invoked multiple times on the same
  	 couple of types because of the type variants.  */
!       if (TYPE_UNCONSTRAINED_ARRAY (old_ptr) == new_type)
  	return;
  
        update_pointer_to
! 	(TREE_TYPE (TREE_TYPE (TYPE_FIELDS (old_ptr))),
  	 TREE_TYPE (TREE_TYPE (TYPE_FIELDS (new_ptr))));
  
        update_pointer_to
! 	(TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (old_ptr)))),
  	 TREE_TYPE (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (new_ptr)))));
  
        update_pointer_to (TYPE_OBJECT_RECORD_TYPE (old_type),
*************** convert_to_fat_pointer (tree type, tree
*** 4675,4680 ****
--- 4800,4808 ----
    vec<constructor_elt, va_gc> *v;
    vec_alloc (v, 2);
  
+   /* We don't allow conversion from extended to fat pointers.  */
+   gcc_assert (!TYPE_IS_EXTENDED_POINTER_P (etype));
+ 
    /* If EXPR is null, make a fat pointer that contains a null pointer to the
       array (compare_fat_pointers ensures that this is the full discriminant)
       and a valid pointer to the bounds.  This latter property is necessary
*************** convert_to_fat_pointer (tree type, tree
*** 4766,4771 ****
--- 4894,4994 ----
    return gnat_build_constructor (type, v);
  }
  
+ /* Convert EXPR, a pointer to a constrained array, into a pointer to an
+    unconstrained one using an extended access.  This involves making or
+    finding a template. */
+ 
+ static tree
+ convert_to_extended_pointer (tree type, tree expr)
+ {
+   tree template_type = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (type)));
+   tree p_array_type = TREE_TYPE (TYPE_FIELDS (type));
+   tree etype = TREE_TYPE (expr);
+   tree template_val;
+   vec<constructor_elt, va_gc> *v;
+   vec_alloc (v, 2);
+ 
+   /* If EXPR is null, make a fat pointer that contains a null pointer to the
+      array (compare_fat_pointers ensures that this is the full discriminant)
+      and a valid pointer to the bounds.  This latter property is necessary
+      since the compiler can hoist the load of the bounds done through it.  */
+   if (integer_zerop (expr))
+     {
+       tree template_type = TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (type)));
+       tree null_bounds, t;
+ 
+       null_bounds = build_constructor (template_type, NULL);
+       TREE_CONSTANT (null_bounds) = TREE_STATIC (null_bounds) = 1;
+ 
+       CONSTRUCTOR_APPEND_ELT (v, TYPE_FIELDS (type),
+ 			      fold_convert (p_array_type, null_pointer_node));
+       CONSTRUCTOR_APPEND_ELT (v, DECL_CHAIN (TYPE_FIELDS (type)) , null_bounds);
+       t = build_constructor (type, v);
+       /* Do not set TREE_CONSTANT so as to force T to static memory.  */
+       TREE_CONSTANT (t) = 0;
+       TREE_STATIC (t) = 1;
+ 
+       return t;
+     }
+ 
+   /* If EXPR is a thin pointer, make template and data from the record.  */
+   if (TYPE_IS_THIN_POINTER_P (etype))
+     {
+       tree field = TYPE_FIELDS (TREE_TYPE (etype));
+ 
+       expr = gnat_protect_expr (expr);
+ 
+       /* If we have a TYPE_UNCONSTRAINED_ARRAY attached to the RECORD_TYPE,
+ 	 the thin pointer value has been shifted so we shift it back to get
+ 	 the template address.  */
+       if (TYPE_UNCONSTRAINED_ARRAY (TREE_TYPE (etype)))
+ 	{
+ 	  tree template_addr
+ 	    = fold_convert (TREE_TYPE (DECL_CHAIN (TYPE_FIELDS (type))), expr);
+ 	  template_val = build_unary_op (INDIRECT_REF, NULL_TREE, template_addr);
+ 	}
+ 
+       /* Otherwise we explicitly take the address of the fields.  */
+       else
+ 	{
+ 	  expr = build_unary_op (INDIRECT_REF, NULL_TREE, expr);
+ 
+ 	  template_val = build_component_ref (expr, field, true);
+ 
+ 	  expr = build_unary_op (ADDR_EXPR, NULL_TREE,
+ 				 build_component_ref (expr, DECL_CHAIN (field),
+ 						      false));
+ 	}
+     }
+ 
+   else if (TYPE_IS_FAT_POINTER_P (etype))
+     template_val
+       = build_unary_op (INDIRECT_REF, NULL_TREE,
+ 			build_component_ref (expr,
+ 					     DECL_CHAIN (TYPE_FIELDS (etype)),
+ 					     false));
+ 
+   /* Otherwise, build the constructor for the template.  */
+   else
+     template_val = build_template (template_type, TREE_TYPE (etype), expr);
+ 
+   /* The final result is a constructor for the extended pointer.
+ 
+      If EXPR is an argument of a foreign convention subprogram, the type it
+      points to is directly the component type.  In this case, the expression
+      type may not match the corresponding FIELD_DECL type at this point, so we
+      call "convert" here to fix that up if necessary.  This type consistency is
+      required, for instance because it ensures that possible later folding of
+      COMPONENT_REFs against this constructor always yields something of the
+      same type as the initial reference.
+ 
+      Note that the call to "build_template" above is still fine because it
+      will only refer to the provided TEMPLATE_TYPE in this case.  */
+   CONSTRUCTOR_APPEND_ELT (v, TYPE_FIELDS (type), convert (p_array_type, expr));
+   CONSTRUCTOR_APPEND_ELT (v, DECL_CHAIN (TYPE_FIELDS (type)), template_val);
+   return gnat_build_constructor (type, v);
+ }
+ 
  /* Create an expression whose value is that of EXPR,
     converted to type TYPE.  The TREE_TYPE of the value
     is always TYPE.  This function implements all reasonable
*************** convert (tree type, tree expr)
*** 5145,5150 ****
--- 5368,5375 ----
    /* Check for converting to a pointer to an unconstrained array.  */
    if (TYPE_IS_FAT_POINTER_P (type) && !TYPE_IS_FAT_POINTER_P (etype))
      return convert_to_fat_pointer (type, expr);
+   if (TYPE_IS_EXTENDED_POINTER_P (type) && !TYPE_IS_EXTENDED_POINTER_P (etype))
+     return convert_to_extended_pointer (type, expr);
  
    /* If we are converting between two aggregate or vector types that are mere
       variants, just make a VIEW_CONVERT_EXPR.  Likewise when we are converting
*************** convert (tree type, tree expr)
*** 5162,5175 ****
       But don't do it if we are just annotating types since tagged types
       aren't fully laid out in this mode.  */
    else if (ecode == RECORD_TYPE && code == RECORD_TYPE
! 	   && TYPE_ALIGN_OK (etype) && TYPE_ALIGN_OK (type)
  	   && !type_annotate_only)
      {
        tree child_etype = etype;
        do {
  	tree field = TYPE_FIELDS (child_etype);
! 	if (DECL_NAME (field) == parent_name_id && TREE_TYPE (field) == type)
! 	  return build_component_ref (expr, field, false);
  	child_etype = TREE_TYPE (field);
        } while (TREE_CODE (child_etype) == RECORD_TYPE);
      }
--- 5387,5411 ----
       But don't do it if we are just annotating types since tagged types
       aren't fully laid out in this mode.  */
    else if (ecode == RECORD_TYPE && code == RECORD_TYPE
! 	   && type_is_tagged_or_cw_equivalent (etype)
! 	   && type_is_tagged_or_cw_equivalent (type)
  	   && !type_annotate_only)
      {
        tree child_etype = etype;
+       /* Loop through the nested _Parent fields until we find one with either
+ 	 directly the right type (simple record case), or only the right size
+ 	 (discriminated record case), and extract it to be the new expression.
+ 	 Note that build_component_ref will automatically build the chain of
+ 	 COMPONENT_REFs in the case where it is not the immediate parent.  */
        do {
  	tree field = TYPE_FIELDS (child_etype);
! 	if (DECL_NAME (field) == parent_name_id)
! 	  {
! 	    if (TREE_TYPE (field) == type)
! 	      return build_component_ref (expr, field, false);
! 	    if (operand_equal_p (DECL_SIZE (field), TYPE_SIZE (type), 0))
! 	      return convert (type, build_component_ref (expr, field, false));
!          }
  	child_etype = TREE_TYPE (field);
        } while (TREE_CODE (child_etype) == RECORD_TYPE);
      }
*************** convert (tree type, tree expr)
*** 5235,5240 ****
--- 5471,5481 ----
  	    return fold_convert (type, expr);
  	}
  
+       if (TREE_CODE (expr) == INTEGER_CST)
+ 	return int_const_convert (type, expr,
+ 				  type == sizetype || type == bitsizetype
+ 				  ? -1 : !POINTER_TYPE_P (etype));
+ 
        /* ... fall through ... */
  
      case ENUMERAL_TYPE:
*************** convert (tree type, tree expr)
*** 5286,5292 ****
  
        /* 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))
  	expr = build_component_ref (expr, TYPE_FIELDS (etype), false);
  
        return fold (convert_to_pointer (type, expr));
--- 5527,5533 ----
  
        /* 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) || TYPE_IS_EXTENDED_POINTER_P (etype))
  	expr = build_component_ref (expr, TYPE_FIELDS (etype), false);
  
        return fold (convert_to_pointer (type, expr));
*************** convert (tree type, tree expr)
*** 5350,5369 ****
  	}
  
        /* If EXPR is a constrained array, take its address, convert it to a
! 	 fat pointer, and then dereference it.  Likewise if EXPR is a
! 	 record containing both a template and a constrained array.
! 	 Note that a record representing a justified modular type
! 	 always represents a packed constrained array.  */
        if (ecode == ARRAY_TYPE
  	  || (ecode == INTEGER_TYPE && TYPE_HAS_ACTUAL_BOUNDS_P (etype))
  	  || (ecode == RECORD_TYPE && TYPE_CONTAINS_TEMPLATE_P (etype))
  	  || (ecode == RECORD_TYPE && TYPE_JUSTIFIED_MODULAR_P (etype)))
! 	return
! 	  build_unary_op
! 	    (INDIRECT_REF, NULL_TREE,
! 	     convert_to_fat_pointer (TREE_TYPE (type),
! 				     build_unary_op (ADDR_EXPR,
! 						     NULL_TREE, expr)));
  
        /* Do something very similar for converting one unconstrained
  	 array to another.  */
--- 5591,5620 ----
  	}
  
        /* If EXPR is a constrained array, take its address, convert it to a
! 	 fat or extended pointer, and then dereference it.  Likewise if
! 	 EXPR is a record containing both a template and a constrained
! 	 array.  Note that a record representing a justified modular type
! 	 always represents a packed constrained array. */
        if (ecode == ARRAY_TYPE
  	  || (ecode == INTEGER_TYPE && TYPE_HAS_ACTUAL_BOUNDS_P (etype))
  	  || (ecode == RECORD_TYPE && TYPE_CONTAINS_TEMPLATE_P (etype))
  	  || (ecode == RECORD_TYPE && TYPE_JUSTIFIED_MODULAR_P (etype)))
! 	{
! 	  if (TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (type)))
! 	    return
! 	      build_unary_op
! 	      (INDIRECT_REF, NULL_TREE,
! 	       convert_to_extended_pointer (TREE_TYPE (type),
! 					    build_unary_op (ADDR_EXPR,
! 							    NULL_TREE, expr)));
! 	  else
! 	    return
! 	      build_unary_op
! 	      (INDIRECT_REF, NULL_TREE,
! 	       convert_to_fat_pointer (TREE_TYPE (type),
! 				       build_unary_op (ADDR_EXPR,
! 						       NULL_TREE, expr)));
! 	}
  
        /* Do something very similar for converting one unconstrained
  	 array to another.  */
diff -Nrcpad gcc-15.2.0/gcc/ada/gcc-interface/utils2.cc gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/utils2.cc
*** gcc-15.2.0/gcc/ada/gcc-interface/utils2.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gcc-interface/utils2.cc	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** build_binary_op (enum tree_code op_code,
*** 992,998 ****
    tree right_base_type = get_base_type (right_type);
    tree operation_type = result_type;
    tree best_type = NULL_TREE;
!   tree modulus, result;
    bool has_side_effects = false;
  
    if (operation_type
--- 992,998 ----
    tree right_base_type = get_base_type (right_type);
    tree operation_type = result_type;
    tree best_type = NULL_TREE;
!   tree modulus, result, t1, t2;
    bool has_side_effects = false;
  
    if (operation_type
*************** build_binary_op (enum tree_code op_code,
*** 1041,1049 ****
  	}
  
        /* If a class-wide type may be involved, force use of the RHS type.  */
!       if ((TREE_CODE (right_type) == RECORD_TYPE
! 	   || TREE_CODE (right_type) == UNION_TYPE)
! 	  && TYPE_ALIGN_OK (right_type))
  	operation_type = right_type;
  
        /* If we are copying between padded objects with compatible types, use
--- 1041,1047 ----
  	}
  
        /* If a class-wide type may be involved, force use of the RHS type.  */
!       if (type_is_tagged_or_cw_equivalent (right_type))
  	operation_type = right_type;
  
        /* If we are copying between padded objects with compatible types, use
*************** build_binary_op (enum tree_code op_code,
*** 1077,1082 ****
--- 1075,1100 ----
  	    operation_type = left_type;
  	}
  
+       /* If we are copying between small padded objects of the same type with
+ 	 self-referential size, and the padded size is the same constant size,
+ 	 use the padded view of the objects, this will be more efficient.  */
+       else if (left_type == right_type
+ 	       && CONTAINS_PLACEHOLDER_P (TYPE_SIZE (left_type))
+ 	       && TREE_CODE (left_operand) == COMPONENT_REF
+ 	       && TREE_CODE (right_operand) == COMPONENT_REF
+ 	       && (t1 = operand_type (left_operand))
+ 	       && (t2 = operand_type (right_operand))
+ 	       && TYPE_IS_PADDING_P (t1)
+ 	       && TYPE_IS_PADDING_P (t2)
+ 	       && TYPE_SIZE_UNIT (t1) == TYPE_SIZE_UNIT (t2)
+ 	       && TREE_CODE (TYPE_SIZE_UNIT (t1)) == INTEGER_CST
+ 	       && compare_tree_int (TYPE_SIZE_UNIT (t1), MOVE_MAX_PIECES) <= 0)
+ 	{
+ 	  left_operand = convert (t1, left_operand);
+ 	  right_operand = convert (t2, right_operand);
+ 	  operation_type = t1;
+ 	}
+ 
        /* If we have a call to a function that returns with variable size, use
  	 the RHS type in case we want to use the return slot optimization.  */
        else if (TREE_CODE (right_operand) == CALL_EXPR
*************** build_binary_op (enum tree_code op_code,
*** 1118,1124 ****
  			     == TREE_CODE (operand_type (result))
  			     && TYPE_MODE (restype)
  				== TYPE_MODE (operand_type (result))))
! 			   || TYPE_ALIGN_OK (restype))))
  	    result = TREE_OPERAND (result, 0);
  
  	  else if (TREE_CODE (result) == VIEW_CONVERT_EXPR)
--- 1136,1142 ----
  			     == TREE_CODE (operand_type (result))
  			     && TYPE_MODE (restype)
  				== TYPE_MODE (operand_type (result))))
! 			   || type_is_tagged_or_cw_equivalent (restype))))
  	    result = TREE_OPERAND (result, 0);
  
  	  else if (TREE_CODE (result) == VIEW_CONVERT_EXPR)
*************** build_binary_op (enum tree_code op_code,
*** 1296,1301 ****
--- 1314,1327 ----
  	      best_type = left_base_type;
  	    }
  
+ 	  else if (TYPE_IS_EXTENDED_POINTER_P (left_base_type)
+ 	           && TYPE_IS_EXTENDED_POINTER_P (right_base_type))
+ 	    {
+ 	      gcc_assert (TYPE_MAIN_VARIANT (left_base_type)
+ 	                  == TYPE_MAIN_VARIANT (right_base_type));
+ 	      best_type = left_base_type;
+ 	    }
+ 
  	  else if (POINTER_TYPE_P (left_base_type)
  		   && POINTER_TYPE_P (right_base_type))
  	    {
*************** build_unary_op (enum tree_code op_code,
*** 1737,1743 ****
  
  	/* If we want to refer to an unconstrained array, use the appropriate
  	   expression.  But this will never survive down to the back-end.  */
! 	if (TYPE_IS_FAT_POINTER_P (type))
  	  {
  	    result = build1 (UNCONSTRAINED_ARRAY_REF,
  			     TYPE_UNCONSTRAINED_ARRAY (type), operand);
--- 1763,1769 ----
  
  	/* If we want to refer to an unconstrained array, use the appropriate
  	   expression.  But this will never survive down to the back-end.  */
! 	if (TYPE_IS_FAT_POINTER_P (type) || TYPE_IS_EXTENDED_POINTER_P (type))
  	  {
  	    result = build1 (UNCONSTRAINED_ARRAY_REF,
  			     TYPE_UNCONSTRAINED_ARRAY (type), operand);
*************** build_unary_op (enum tree_code op_code,
*** 1756,1762 ****
  	    TREE_READONLY (result) = TYPE_READONLY (TREE_TYPE (type));
  	  }
  
! 	if (!TYPE_IS_FAT_POINTER_P (type) && TYPE_VOLATILE (TREE_TYPE (type)))
  	  {
  	    TREE_SIDE_EFFECTS (result) = 1;
  	    if (INDIRECT_REF_P (result))
--- 1782,1790 ----
  	    TREE_READONLY (result) = TYPE_READONLY (TREE_TYPE (type));
  	  }
  
! 	if (!TYPE_IS_FAT_POINTER_P (type)
! 	    && !TYPE_IS_EXTENDED_POINTER_P (type)
! 	    && TYPE_VOLATILE (TREE_TYPE (type)))
  	  {
  	    TREE_SIDE_EFFECTS (result) = 1;
  	    if (INDIRECT_REF_P (result))
*************** build_allocator (tree type, tree init, t
*** 2609,2615 ****
    /* If RESULT_TYPE is a fat or thin pointer, set SIZE to be the sum of the
       sizes of the object and its template.  Allocate the whole thing and
       fill in the parts that are known.  */
!   else if (TYPE_IS_FAT_OR_THIN_POINTER_P (result_type))
      {
        tree storage_type
  	= build_unc_object_type_from_ptr (result_type, type,
--- 2637,2644 ----
    /* If RESULT_TYPE is a fat or thin pointer, set SIZE to be the sum of the
       sizes of the object and its template.  Allocate the whole thing and
       fill in the parts that are known.  */
!   else if (TYPE_IS_FAT_OR_THIN_POINTER_P (result_type)
! 	   || TYPE_IS_EXTENDED_POINTER_P (result_type))
      {
        tree storage_type
  	= build_unc_object_type_from_ptr (result_type, type,
*************** gnat_save_expr (tree exp)
*** 3055,3061 ****
       This may be more efficient, but will also allow us to more easily find
       the match for the PLACEHOLDER_EXPR.  */
    if (code == COMPONENT_REF
!       && TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0))))
      return build3 (code, type, gnat_save_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
--- 3084,3091 ----
       This may be more efficient, but will also allow us to more easily find
       the match for the PLACEHOLDER_EXPR.  */
    if (code == COMPONENT_REF
!       && (TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0)))
! 	  || TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0)))))
      return build3 (code, type, gnat_save_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
*************** gnat_protect_expr (tree exp)
*** 3124,3130 ****
       This may be more efficient, but will also allow us to more easily find
       the match for the PLACEHOLDER_EXPR.  */
    if (code == COMPONENT_REF
!       && TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0))))
      return build3 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
--- 3154,3161 ----
       This may be more efficient, but will also allow us to more easily find
       the match for the PLACEHOLDER_EXPR.  */
    if (code == COMPONENT_REF
!       && (TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0)))
! 	  || TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (TREE_OPERAND (exp, 0)))))
      return build3 (code, type, gnat_protect_expr (TREE_OPERAND (exp, 0)),
  		   TREE_OPERAND (exp, 1), NULL_TREE);
  
*************** gnat_protect_expr (tree exp)
*** 3132,3137 ****
--- 3163,3169 ----
       for a CALL_EXPR as large objects are returned via invisible reference
       in most ABIs so the temporary will directly be filled by the callee.  */
    if (TYPE_IS_FAT_POINTER_P (type)
+       || TYPE_IS_EXTENDED_POINTER_P (type)
        || !AGGREGATE_TYPE_P (type)
        || code == CALL_EXPR)
      return save_expr (exp);
*************** gnat_stabilize_reference_1 (tree e, void
*** 3168,3174 ****
  	 fat pointer.  This may be more efficient, but will also allow
  	 us to more easily find the match for the PLACEHOLDER_EXPR.  */
        if (code == COMPONENT_REF
! 	  && TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (e, 0))))
  	result
  	  = build3 (code, type,
  		    gnat_stabilize_reference_1 (TREE_OPERAND (e, 0), data),
--- 3200,3207 ----
  	 fat pointer.  This may be more efficient, but will also allow
  	 us to more easily find the match for the PLACEHOLDER_EXPR.  */
        if (code == COMPONENT_REF
! 	  && (TYPE_IS_FAT_POINTER_P (TREE_TYPE (TREE_OPERAND (e, 0)))
! 	      || TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (TREE_OPERAND (e, 0)))))
  	result
  	  = build3 (code, type,
  		    gnat_stabilize_reference_1 (TREE_OPERAND (e, 0), data),
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-fields.ads gcc-16.1.0-RC-20260423/gcc/ada/gen_il-fields.ads
*** gcc-15.2.0/gcc/ada/gen_il-fields.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-fields.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 56,62 ****
        Abort_Present,
        Abortable_Part,
        Abstract_Present,
-       Accept_Handler_Records,
        Accept_Statement,
        Access_Definition,
        Access_To_Subprogram_Definition,
--- 56,61 ----
*************** package Gen_IL.Fields is
*** 73,78 ****
--- 72,78 ----
        Ancestor_Part,
        Atomic_Sync_Required,
        Array_Aggregate,
+       Aspect_Ghost_Assertion_Level,
        Aspect_On_Partial_View,
        Aspect_Rep_Item,
        Aspect_Specifications,
*************** package Gen_IL.Fields is
*** 131,137 ****
        Corresponding_Stub,
        Dcheck_Function,
        Declarations,
-       Default_Expression,
        Default_Storage_Pool,
        Default_Name,
        Default_Subtype_Mark,
--- 131,136 ----
*************** package Gen_IL.Fields is
*** 153,159 ****
        Do_Length_Check,
        Do_Overflow_Check,
        Do_Range_Check,
-       Do_Storage_Check,
        Elaborate_All_Desirable,
        Elaborate_All_Present,
        Elaborate_Desirable,
--- 152,157 ----
*************** package Gen_IL.Fields is
*** 161,167 ****
        Else_Actions,
        Else_Statements,
        Elsif_Parts,
-       Enclosing_Variant,
        End_Label,
        End_Span,
        Entity_Or_Associated_Node,
--- 159,164 ----
*************** package Gen_IL.Fields is
*** 204,210 ****
        Generic_Parent,
        Generic_Parent_Type,
        Handled_Statement_Sequence,
-       Handler_List_Entry,
        Has_Created_Identifier,
        Has_Dereference_Action,
        Has_Dynamic_Length_Check,
--- 201,206 ----
*************** package Gen_IL.Fields is
*** 230,236 ****
        Import_Interface_Present,
        In_Present,
        Includes_Infinities,
-       Incomplete_View,
        Inherited_Discriminant,
        Instance_Spec,
        Intval,
--- 226,231 ----
*************** package Gen_IL.Fields is
*** 256,261 ****
--- 251,258 ----
        Is_Elsif,
        Is_Entry_Barrier_Function,
        Is_Expanded_Build_In_Place_Call,
+       Is_Expanded_Constructor_Call,
+       Is_Expanded_Dispatching_Call,
        Is_Expanded_Prefixed_Call,
        Is_Folded_In_Parser,
        Is_Generic_Contract_Pragma,
*************** package Gen_IL.Fields is
*** 266,271 ****
--- 263,269 ----
        Is_Implicit_With,
        Is_In_Discriminant_Check,
        Is_Initialization_Block,
+       Is_Interface_Pointer_Displacement,
        Is_Interpolated_String_Literal,
        Is_Known_Guaranteed_ABE,
        Is_Machine_Number,
*************** package Gen_IL.Fields is
*** 281,287 ****
        Is_SPARK_Mode_On_Node,
        Is_Static_Coextension,
        Is_Static_Expression,
!       Is_Subprogram_Descriptor,
        Is_Task_Allocation_Block,
        Is_Task_Body_Procedure,
        Is_Task_Master,
--- 279,285 ----
        Is_SPARK_Mode_On_Node,
        Is_Static_Coextension,
        Is_Static_Expression,
!       Is_Structural,
        Is_Task_Allocation_Block,
        Is_Task_Body_Procedure,
        Is_Task_Master,
*************** package Gen_IL.Fields is
*** 336,343 ****
--- 334,343 ----
        Null_Statement,
        Object_Definition,
        Of_Present,
+       Original_Aspect,
        Original_Discriminant,
        Original_Entity,
+       Original_Pragma,
        Others_Discrete_Choices,
        Out_Present,
        Parameter_Associations,
*************** package Gen_IL.Fields is
*** 347,352 ****
--- 347,353 ----
        Parent_With,
        Position,
        Pragma_Argument_Associations,
+       Pragma_Ghost_Assertion_Level,
        Pragma_Identifier,
        Pragmas_After,
        Pragmas_Before,
*************** package Gen_IL.Fields is
*** 371,377 ****
        Reason,
        Record_Extension_Part,
        Redundant_Use,
-       Renaming_Exception,
        Result_Definition,
        Return_Object_Declarations,
        Return_Statement_Entity,
--- 372,377 ----
*************** package Gen_IL.Fields is
*** 401,407 ****
--- 401,409 ----
        Suppress_Loop_Warnings,
        Synchronized_Present,
        Tagged_Present,
+       Tag_Propagated,
        Target,
+       Call_Or_Target_Loop,
        Target_Type,
        Task_Definition,
        Task_Present,
*************** package Gen_IL.Fields is
*** 461,466 ****
--- 463,469 ----
        Can_Never_Be_Null,
        Can_Use_Internal_Rep,
        Checks_May_Be_Suppressed,
+       Child_Levels,
        Class_Postconditions,
        Class_Preconditions,
        Class_Preconditions_Subprogram,
*************** package Gen_IL.Fields is
*** 472,477 ****
--- 475,481 ----
        Component_Clause,
        Component_Size,
        Component_Type,
+       Continue_Mark,
        Contract,
        Contract_Wrapper,
        Corresponding_Concurrent_Type,
*************** package Gen_IL.Fields is
*** 487,503 ****
        Debug_Renaming_Link,
        Default_Aspect_Component_Value,
        Default_Aspect_Value,
-       Default_Expr_Function,
        Default_Expressions_Processed,
        Default_Value,
        Delay_Cleanups,
        Delta_Value,
-       Dependent_Instances,
        Depends_On_Private,
        Derived_Type_Link,
        Digits_Value,
        Predicated_Parent,
        Predicates_Ignored,
        Direct_Primitive_Operations,
        Directly_Designated_Type,
        Disable_Controlled,
--- 491,506 ----
        Debug_Renaming_Link,
        Default_Aspect_Component_Value,
        Default_Aspect_Value,
        Default_Expressions_Processed,
        Default_Value,
        Delay_Cleanups,
        Delta_Value,
        Depends_On_Private,
        Derived_Type_Link,
        Digits_Value,
        Predicated_Parent,
        Predicates_Ignored,
+       Destructor,
        Direct_Primitive_Operations,
        Directly_Designated_Type,
        Disable_Controlled,
*************** package Gen_IL.Fields is
*** 538,543 ****
--- 541,547 ----
        Extra_Constrained,
        Extra_Formal,
        Extra_Formals,
+       Extra_Formals_Known,
        Finalization_Collection,
        Finalization_Master_Node,
        Finalize_Storage_Only,
*************** package Gen_IL.Fields is
*** 553,559 ****
        Full_View,
        Generic_Homonym,
        Generic_Renamings,
!       Handler_Records,
        Has_Aliased_Components,
        Has_Alignment_Clause,
        Has_All_Calls_Remote,
--- 557,563 ----
        Full_View,
        Generic_Homonym,
        Generic_Renamings,
!       Ghost_Assertion_Level,
        Has_Aliased_Components,
        Has_Alignment_Clause,
        Has_All_Calls_Remote,
*************** package Gen_IL.Fields is
*** 572,577 ****
--- 576,582 ----
        Has_Delayed_Aspects,
        Has_Delayed_Freeze,
        Has_Delayed_Rep_Aspects,
+       Has_Destructor,
        Has_Discriminants,
        Has_Dispatch_Table,
        Has_Dynamic_Predicate_Aspect,
*************** package Gen_IL.Fields is
*** 603,609 ****
        Has_Own_Invariants,
        Has_Partial_Visible_Refinement,
        Has_Per_Object_Constraint,
-       Has_Pragma_Controlled,
        Has_Pragma_Elaborate_Body,
        Has_Pragma_Inline,
        Has_Pragma_Inline_Always,
--- 608,613 ----
*************** package Gen_IL.Fields is
*** 647,652 ****
--- 651,657 ----
        Has_Thunks,
        Has_Unchecked_Union,
        Has_Unknown_Discriminants,
+       Has_Unsigned_Base_Range_Aspect,
        Has_Visible_Refinement,
        Has_Volatile_Components,
        Has_Xref_Entry,
*************** package Gen_IL.Fields is
*** 659,664 ****
--- 664,670 ----
        Ignore_SPARK_Mode_Pragmas,
        Import_Pragma,
        Incomplete_Actuals,
+       Incomplete_View,
        Indirect_Call_Wrapper,
        In_Package_Body,
        In_Private_Part,
*************** package Gen_IL.Fields is
*** 696,701 ****
--- 702,708 ----
        Is_Controlled_Active,
        Is_Controlling_Formal,
        Is_CPP_Class,
+       Is_CPP_Constructor,
        Is_CUDA_Kernel,
        Is_Descendant_Of_Address,
        Is_DIC_Procedure,
*************** package Gen_IL.Fields is
*** 730,735 ****
--- 737,743 ----
        Is_Immediately_Visible,
        Is_Implementation_Defined,
        Is_Implicit_Full_View,
+       Is_Implicit_Ghost,
        Is_Imported,
        Is_Independent,
        Is_Initial_Condition_Procedure,
*************** package Gen_IL.Fields is
*** 745,753 ****
--- 753,763 ----
        Is_Known_Non_Null,
        Is_Known_Null,
        Is_Known_Valid,
+       Is_Large_Unconstrained_Definite,
        Is_Limited_Composite,
        Is_Limited_Interface,
        Is_Limited_Record,
+       Is_Link_Once,
        Is_Local_Anonymous_Access,
        Is_Loop_Parameter,
        Is_Machine_Code_Subprogram,
*************** package Gen_IL.Fields is
*** 791,797 ****
        Is_Unchecked_Union,
        Is_Underlying_Full_View,
        Is_Underlying_Record_View,
-       Is_Unimplemented,
        Is_Unsigned_Type,
        Is_Uplevel_Referenced_Entity,
        Is_Valued_Procedure,
--- 801,806 ----
*************** package Gen_IL.Fields is
*** 801,806 ****
--- 810,816 ----
        Is_Volatile_Object,
        Is_Volatile_Full_Access,
        Is_Wrapper,
+       Is_IEEE_Extended_Precision,
        Itype_Printed,
        Kill_Elaboration_Checks,
        Known_To_Have_Preelab_Init,
*************** package Gen_IL.Fields is
*** 823,829 ****
        Modulus,
        Must_Be_On_Byte_Boundary,
        Must_Have_Preelab_Init,
!       Needs_Activation_Record,
        Needs_Debug_Info,
        Needs_No_Actuals,
        Never_Set_In_Source,
--- 833,839 ----
        Modulus,
        Must_Be_On_Byte_Boundary,
        Must_Have_Preelab_Init,
!       Needs_Construction,
        Needs_Debug_Info,
        Needs_No_Actuals,
        Never_Set_In_Source,
*************** package Gen_IL.Fields is
*** 849,857 ****
--- 859,869 ----
        Original_Protected_Subprogram,
        Original_Record_Component,
        Overlays_Constant,
+       Overridden_Inherited_Operation,
        Overridden_Operation,
        Package_Instantiation,
        Packed_Array_Impl_Type,
+       Parent_Levels,
        Parent_Subtype,
        Part_Of_Constituents,
        Part_Of_References,
*************** package Gen_IL.Fields is
*** 871,877 ****
        Referenced_As_LHS,
        Referenced_As_Out_Parameter,
        Refinement_Constituents,
-       Register_Exception_Call,
        Related_Array_Object,
        Related_Expression,
        Related_Instance,
--- 883,888 ----
*************** package Gen_IL.Fields is
*** 893,899 ****
        Scope_Depth_Value,
        Sec_Stack_Needed_For_Return,
        Shared_Var_Procs_Instance,
-       Size_Check_Code,
        Size_Depends_On_Discriminant,
        Size_Known_At_Compile_Time,
        Small_Value,
--- 904,909 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-gen-gen_entities.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen-gen_entities.adb
*** gcc-15.2.0/gcc/ada/gen_il-gen-gen_entities.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen-gen_entities.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 63,68 ****
--- 63,69 ----
          Sm (First_Rep_Item, Node_Id),
          Sm (Freeze_Node, Node_Id),
          Sm (From_Limited_With, Flag),
+         Sm (Ghost_Assertion_Level, Node_Id),
          Sm (Has_Aliased_Components, Flag, Impl_Base_Type_Only),
          Sm (Has_Alignment_Clause, Flag),
          Sm (Has_All_Calls_Remote, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 77,83 ****
          Sm (Has_Delayed_Aspects, Flag),
          Sm (Has_Delayed_Freeze, Flag),
          Sm (Has_Delayed_Rep_Aspects, Flag),
-         Sm (Has_Exit, Flag),
          Sm (Has_Forward_Instantiation, Flag),
          Sm (Has_Fully_Qualified_Name, Flag),
          Sm (Has_Gigi_Rep_Item, Flag),
--- 78,83 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 114,119 ****
--- 114,120 ----
          Sm (Has_Xref_Entry, Flag),
          Sm (Has_Yield_Aspect, Flag),
          Sm (Homonym, Node_Id),
+         Sm (Incomplete_View, Node_Id),
          Sm (In_Package_Body, Flag),
          Sm (In_Private_Part, Flag),
          Sm (In_Use, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 136,141 ****
--- 137,143 ----
          Sm (Is_Constructor, Flag),
          Sm (Is_Controlled_Active, Flag, Base_Type_Only),
          Sm (Is_CPP_Class, Flag),
+         Sm (Is_CPP_Constructor, Flag),
          Sm (Is_Descendant_Of_Address, Flag),
          Sm (Is_Discrim_SO_Function, Flag),
          Sm (Is_Discriminant_Check_Function, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 158,163 ****
--- 160,166 ----
          Sm (Is_Ignored_Ghost_Entity, Flag),
          Sm (Is_Immediately_Visible, Flag),
          Sm (Is_Implementation_Defined, Flag),
+         Sm (Is_Implicit_Ghost, Flag),
          Sm (Is_Imported, Flag),
          Sm (Is_Independent, Flag),
          Sm (Is_Inlined, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 173,178 ****
--- 176,182 ----
          Sm (Is_Limited_Composite, Flag),
          Sm (Is_Limited_Interface, Flag),
          Sm (Is_Limited_Record, Flag),
+         Sm (Is_Link_Once, Flag),
          Sm (Is_Loop_Parameter, Flag),
          Sm (Is_Obsolescent, Flag),
          Sm (Is_Package_Body_Entity, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 200,206 ****
          Sm (Is_Unchecked_Union, Flag, Impl_Base_Type_Only),
          Sm (Is_Underlying_Full_View, Flag),
          Sm (Is_Underlying_Record_View, Flag, Base_Type_Only),
-         Sm (Is_Unimplemented, Flag),
          Sm (Is_Uplevel_Referenced_Entity, Flag),
          Sm (Is_Visible_Formal, Flag),
          Sm (Is_Visible_Lib_Unit, Flag),
--- 204,209 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 212,221 ****
          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 (Overlays_Constant, Flag),
          Sm (Prev_Entity, Node_Id),
          Sm (Referenced, Flag),
          Sm (Referenced_As_LHS, Flag),
--- 215,222 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 288,294 ****
          Sm (Extra_Formal, Node_Id),
          Sm (Generic_Homonym, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_Static_Discriminants, Flag),
          Sm (Inner_Instances, Elist_Id),
          Sm (Interface_Name, Node_Id),
--- 289,294 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 354,363 ****
          Sm (Last_Aggregate_Assignment, Node_Id),
          Sm (Optimize_Alignment_Space, Flag),
          Sm (Optimize_Alignment_Time, Flag),
          Sm (Prival_Link, Node_Id),
          Sm (Related_Type, Node_Id),
          Sm (Return_Statement, Node_Id),
-         Sm (Size_Check_Code, Node_Id),
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag)));
  
--- 354,363 ----
          Sm (Last_Aggregate_Assignment, Node_Id),
          Sm (Optimize_Alignment_Space, Flag),
          Sm (Optimize_Alignment_Time, Flag),
+         Sm (Overlays_Constant, Flag),
          Sm (Prival_Link, Node_Id),
          Sm (Related_Type, Node_Id),
          Sm (Return_Statement, Node_Id),
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 399,405 ****
         (Sm (Activation_Record_Component, Node_Id),
          Sm (Actual_Subtype, Node_Id),
          Sm (Alignment, Unat),
-         Sm (Default_Expr_Function, Node_Id),
          Sm (Default_Value, Node_Id),
          Sm (Entry_Component, Node_Id),
          Sm (Extra_Accessibility, Node_Id),
--- 399,404 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 429,437 ****
          Sm (Discriminant_Default_Value, Node_Id),
          Sm (Is_Activation_Record, Flag)));
  
!    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
--- 428,435 ----
          Sm (Discriminant_Default_Value, Node_Id),
          Sm (Is_Activation_Record, Flag)));
  
!    Ab (Formal_Object_Kind, Object_Kind);
!    --  Generic formal objects are also objects
  
     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
*** 461,466 ****
--- 459,465 ----
          Sm (Contract, Node_Id),
          Sm (Current_Use_Clause, Node_Id),
          Sm (Derived_Type_Link, Node_Id),
+         Sm (Destructor, Node_Id),
          Sm (Direct_Primitive_Operations, Elist_Id),
          Sm (Predicates_Ignored, Flag),
          Sm (Esize, Uint),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 470,475 ****
--- 469,475 ----
          Sm (Full_View, Node_Id),
          Sm (Has_Completion_In_Body, Flag),
          Sm (Has_Constrained_Partial_View, Flag, Base_Type_Only),
+         Sm (Has_Destructor, Flag, Base_Type_Only),
          Sm (Has_Discriminants, Flag),
          Sm (Has_Dispatch_Table, Flag,
              Pre => "Is_Tagged_Type (N)"),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 498,503 ****
--- 498,505 ----
          Sm (Has_Static_Predicate, Flag),
          Sm (Has_Static_Predicate_Aspect, Flag),
          Sm (Has_Unknown_Discriminants, Flag),
+         Sm (Has_Unsigned_Base_Range_Aspect, Flag,
+             Pre => "Is_Type (N)"),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Abstract_Type, Flag),
          Sm (Is_Actual_Subtype, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 517,522 ****
--- 519,525 ----
          Sm (Linker_Section_Pragma, Node_Id),
          Sm (Must_Be_On_Byte_Boundary, Flag),
          Sm (Must_Have_Preelab_Init, Flag),
+         Sm (Needs_Construction, Flag),
          Sm (No_Tagged_Streams_Pragma, Node_Id,
              Pre => "Is_Tagged_Type (N)"),
          Sm (Non_Binary_Modulus, Flag, Base_Type_Only),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 577,583 ****
         --  created for the base type, and this is the first named subtype).
  
     Ab (Modular_Integer_Kind, Integer_Kind,
!        (Sm (Modulus, Uint, Base_Type_Only),
          Sm (Original_Array_Type, Node_Id)));
  
     Cc (E_Modular_Integer_Type, Modular_Integer_Kind);
--- 580,586 ----
         --  created for the base type, and this is the first named subtype).
  
     Ab (Modular_Integer_Kind, Integer_Kind,
!        (Sm (Modulus, Uint, Impl_Base_Type_Only),
          Sm (Original_Array_Type, Node_Id)));
  
     Cc (E_Modular_Integer_Type, Modular_Integer_Kind);
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 626,632 ****
         --  first named subtype).
  
     Ab (Float_Kind, Real_Kind,
!        (Sm (Digits_Value, Upos)));
  
     Cc (E_Floating_Point_Type, Float_Kind);
         --  Floating point type, used for the anonymous base type of the
--- 629,636 ----
         --  first named subtype).
  
     Ab (Float_Kind, Real_Kind,
!        (Sm (Digits_Value, Upos),
!         Sm (Is_IEEE_Extended_Precision, Flag)));
  
     Cc (E_Floating_Point_Type, Float_Kind);
         --  Floating point type, used for the anonymous base type of the
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 642,648 ****
         (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),
          Sm (Is_Local_Anonymous_Access, Flag),
--- 646,651 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 782,788 ****
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
!         Sm (Underlying_Record_View, Node_Id)));
  
     Cc (E_Record_Subtype, Aggregate_Kind,
         --  A record subtype, created by a record subtype declaration
--- 785,792 ----
          Sm (No_Reordering, Flag, Impl_Base_Type_Only),
          Sm (Parent_Subtype, Node_Id, Base_Type_Only),
          Sm (Reverse_Bit_Order, Flag, Base_Type_Only),
!         Sm (Underlying_Record_View, Node_Id),
!         Sm (Is_Large_Unconstrained_Definite, Flag, Impl_Base_Type_Only)));
  
     Cc (E_Record_Subtype, Aggregate_Kind,
         --  A record subtype, created by a record subtype declaration
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 937,947 ****
--- 941,953 ----
         (Sm (Access_Subprogram_Wrapper, Node_Id),
          Sm (Extra_Accessibility_Of_Result, Node_Id),
          Sm (Extra_Formals, Node_Id),
+         Sm (Extra_Formals_Known, Flag),
          Sm (Needs_No_Actuals, Flag)));
  
     Ab (Overloadable_Kind, Entity_Kind,
         (Sm (Renamed_Or_Alias, Node_Id),
          Sm (Extra_Formals, Node_Id),
+         Sm (Extra_Formals_Known, Flag),
          Sm (Is_Abstract_Subprogram, Flag),
          Sm (Is_Primitive, Flag),
          Sm (Needs_No_Actuals, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 955,960 ****
--- 961,967 ----
          Sm (Enumeration_Rep_Expr, Node_Id),
          Sm (Esize, Uint),
          Sm (Alignment, Unat),
+         Sm (Overridden_Inherited_Operation, Node_Id),
          Sm (Interface_Name, Node_Id)));
  
     Ab (Subprogram_Kind, Overloadable_Kind,
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 983,988 ****
--- 990,996 ----
          Sm (Is_Machine_Code_Subprogram, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Linker_Section_Pragma, Node_Id),
+         Sm (Overridden_Inherited_Operation, Node_Id),
          Sm (Overridden_Operation, Node_Id),
          Sm (Protected_Body_Subprogram, Node_Id),
          Sm (No_Raise, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1005,1011 ****
          Sm (DTC_Entity, Node_Id),
          Sm (Extra_Accessibility_Of_Result, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_Missing_Return, Flag),
          Sm (Inner_Instances, Elist_Id),
          Sm (Is_Called, Flag),
--- 1013,1018 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1049,1055 ****
          Sm (DTC_Entity, Node_Id),
          Sm (Entry_Parameters_Type, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Inner_Instances, Elist_Id),
          Sm (Is_Asynchronous, Flag),
          Sm (Is_Called, Flag),
--- 1056,1061 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1129,1134 ****
--- 1135,1141 ----
          Sm (Entry_Accepted, Flag),
          Sm (Entry_Parameters_Type, Node_Id),
          Sm (Extra_Formals, Node_Id),
+         Sm (Extra_Formals_Known, Flag),
          Sm (First_Entity, Node_Id),
          Sm (Has_Out_Or_In_Out_Parameter, Flag),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1168,1174 ****
         (Sm (Alignment, Unat),
          Sm (Interface_Name, Node_Id),
          Sm (Is_Raised, Flag),
-         Sm (Register_Exception_Call, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id)));
  
     Ab (Generic_Unit_Kind, Entity_Kind,
--- 1175,1180 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1228,1235 ****
     Cc (E_Loop, Entity_Kind,
         --  A loop identifier, created by an explicit or implicit label on a
         --  loop statement.
!        (Sm (First_Entity, Node_Id),
          Sm (First_Exit_Statement, Node_Id),
          Sm (Has_Loop_Entry_Attributes, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id),
--- 1234,1243 ----
     Cc (E_Loop, Entity_Kind,
         --  A loop identifier, created by an explicit or implicit label on a
         --  loop statement.
!        (Sm (Continue_Mark, Node_Id),
!         Sm (First_Entity, Node_Id),
          Sm (First_Exit_Statement, Node_Id),
+         Sm (Has_Exit, Flag),
          Sm (Has_Loop_Entry_Attributes, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Renamed_Or_Alias, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1257,1264 ****
          Sm (Body_Needed_For_SAL, Flag),
          Sm (Contract, Node_Id),
          Sm (Current_Use_Clause, Node_Id),
-         Sm (Dependent_Instances, Elist_Id,
-             Pre => "Is_Generic_Instance (N)"),
          Sm (Elaborate_Body_Desirable, Flag),
          Sm (Elaboration_Entity, Node_Id),
          Sm (Elaboration_Entity_Required, Flag),
--- 1265,1270 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1266,1272 ****
          Sm (First_Entity, Node_Id),
          Sm (First_Private_Entity, Node_Id),
          Sm (Generic_Renamings, Elist_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Has_RACW, Flag),
          Sm (Hidden_In_Formal_Instance, Elist_Id),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
--- 1272,1277 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1298,1304 ****
         (Sm (Contract, Node_Id),
          Sm (Finalizer, Node_Id),
          Sm (First_Entity, Node_Id),
-         Sm (Handler_Records, List_Id),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
          Sm (Last_Entity, Node_Id),
          Sm (Related_Instance, Node_Id),
--- 1303,1308 ----
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1333,1338 ****
--- 1337,1343 ----
         (Sm (Anonymous_Collections, Elist_Id),
          Sm (Contract, Node_Id),
          Sm (Extra_Formals, Node_Id),
+         Sm (Extra_Formals_Known, Flag),
          Sm (First_Entity, Node_Id),
          Sm (Ignore_SPARK_Mode_Pragmas, Flag),
          Sm (Interface_Name, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Entities
*** 1342,1347 ****
--- 1347,1363 ----
          Sm (SPARK_Pragma, Node_Id),
          Sm (SPARK_Pragma_Inherited, Flag)));
  
+    Cc (E_Assertion_Level, Entity_Kind,
+        --  An assertion level. Used to associate a level indicator to an
+        --  assertion like construct. Constructs assigned with a certain level
+        --  can be disabled through pragma Assertion_Policy. Levels can form a
+        --  hierarchy. A declaration of a level can include a list of levels
+        --  this level depends on known as the Parent_Levels. An opposite list
+        --  is also kept to store all the levels that depend on it known as the
+        --  Child_Levels.
+        (Sm (Child_Levels, Elist_Id),
+         Sm (Parent_Levels, Elist_Id)));
+ 
     --  Union types. These don't fit into the normal parent/child hierarchy
     --  above.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-gen-gen_nodes.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen-gen_nodes.adb
*** gcc-15.2.0/gcc/ada/gen_il-gen-gen_nodes.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen-gen_nodes.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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
*** 149,154 ****
--- 149,155 ----
          Sm (Is_Controlling_Actual, Flag),
          Sm (Is_Overloaded, Flag),
          Sm (Is_Static_Expression, Flag),
+         Sm (Is_Expanded_Dispatching_Call, Flag),
          Sm (Must_Not_Freeze, Flag),
          Sm (Raises_Constraint_Error, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 181,187 ****
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Original_Discriminant, Node_Id),
!         Sm (Redundant_Use, Flag)));
  
     Cc (N_Operator_Symbol, N_Direct_Name,
         (Sy (Strval, String_Id)));
--- 182,189 ----
          Sm (Is_Elaboration_Warnings_OK_Node, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (Original_Discriminant, Node_Id),
!         Sm (Redundant_Use, Flag),
!         Sm (Tag_Propagated, Flag)));
  
     Cc (N_Operator_Symbol, N_Direct_Name,
         (Sy (Strval, String_Id)));
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 190,203 ****
         (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);
  
--- 192,215 ----
         (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,
         (Sy (Left_Opnd, Node_Id),
!         Sy (Right_Opnd, Node_Id),
!         Sy (Chars, Name_Id, Default_No_Name)));
!    --  N_Binary_Op and N_Unary_Op do not strictly need Chars, since the value
!    --  is fully determined by the Nkind. However, for example, Errout refers to
!    --  Chars without knowing statically whether the Nkind is in N_Op.
!    --  In any case, we don't inherit Chars from N_Op, because we want it to
!    --  come after the other syntactic fields, so that positional notation can
!    --  be used in calls to Make_Op_Add and friends.
!    --
!    --  Make_Op_Add and friends will now have a Chars parameter. Callers
!    --  should always use the default, because the Chars field is set
!    --  properly as a special case (see Gen_IL.Gen).
  
     Cc (N_Op_Add, N_Binary_Op);
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 257,263 ****
     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);
--- 269,276 ----
     Cc (N_Op_Shift_Right_Arithmetic, N_Op_Shift);
  
     Ab (N_Unary_Op, N_Op,
!        (Sy (Right_Opnd, Node_Id),
!         Sy (Chars, Name_Id, Default_No_Name)));
  
     Cc (N_Op_Abs, N_Unary_Op);
     Cc (N_Op_Minus, N_Unary_Op);
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 288,294 ****
     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);
--- 301,307 ----
     Ab (N_Short_Circuit, N_Subexpr,
         (Sy (Left_Opnd, Node_Id),
          Sy (Right_Opnd, Node_Id),
!         Sy (Actions, List_Id, Default_No_List)));
  
     Cc (N_And_Then, N_Short_Circuit);
     Cc (N_Or_Else, N_Short_Circuit);
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 303,308 ****
--- 316,322 ----
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
          Sm (No_Elaboration_Check, Flag),
+         Sm (Is_Expanded_Constructor_Call, Flag),
          Sm (Is_Expanded_Prefixed_Call, Flag)));
  
     Cc (N_Function_Call, N_Subprogram_Call,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 345,351 ****
         (Sy (Prefix, Node_Id),
          Sm (Actual_Designated_Subtype, Node_Id),
          Sm (Atomic_Sync_Required, Flag),
!         Sm (Has_Dereference_Action, Flag)));
  
     Cc (N_Expression_With_Actions, N_Subexpr,
         (Sy (Actions, List_Id, Default_No_List),
--- 359,366 ----
         (Sy (Prefix, Node_Id),
          Sm (Actual_Designated_Subtype, Node_Id),
          Sm (Atomic_Sync_Required, Flag),
!         Sm (Has_Dereference_Action, Flag),
!         Sm (Tag_Propagated, Flag)));
  
     Cc (N_Expression_With_Actions, N_Subexpr,
         (Sy (Actions, List_Id, Default_No_List),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 399,405 ****
          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),
          Sm (Is_Static_Coextension, Flag),
          Sm (No_Initialization, Flag),
--- 414,419 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 462,479 ****
          Sm (Do_Length_Check, Flag),
          Sm (Do_Overflow_Check, Flag),
          Sm (Float_Truncate, Flag),
          Sm (Rounded_Result, Flag)));
  
     Cc (N_Unchecked_Type_Conversion, N_Subexpr,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sm (Kill_Range_Check, Flag),
!         Sm (No_Truncation, Flag)),
!        Nmake_Assert => "True or else Nkind (Expression) /= N_Unchecked_Type_Conversion");
! --       Nmake_Assert => "Nkind (Expression) /= N_Unchecked_Type_Conversion");
!    --  Assert that we don't have unchecked conversions of unchecked
!    --  conversions; if Expression might be an unchecked conversion,
!    --  then Tbuild.Unchecked_Convert_To should be used.
  
     Cc (N_Subtype_Indication, N_Has_Etype,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
--- 476,490 ----
          Sm (Do_Length_Check, Flag),
          Sm (Do_Overflow_Check, Flag),
          Sm (Float_Truncate, Flag),
+         Sm (Is_Interface_Pointer_Displacement, Flag),
+         Sm (Tag_Propagated, Flag),
          Sm (Rounded_Result, Flag)));
  
     Cc (N_Unchecked_Type_Conversion, N_Subexpr,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sm (Kill_Range_Check, Flag),
!         Sm (No_Truncation, Flag)));
  
     Cc (N_Subtype_Indication, N_Has_Etype,
         (Sy (Subtype_Mark, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 515,521 ****
          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),
          Sm (Prev_Ids, Flag)));
--- 526,532 ----
          Sy (Null_Exclusion_Present, Flag, Default_False),
          Sy (Access_Definition, Node_Id, Default_Empty),
          Sy (Subtype_Mark, Node_Id, Default_Empty),
!         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
*** 533,540 ****
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Discr_Check_Funcs_Built, Flag),
!         Sm (Incomplete_View, Node_Id)));
  
     Cc (N_Incomplete_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
--- 544,550 ----
          Sy (Discriminant_Specifications, List_Id, Default_No_List),
          Sy (Type_Definition, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Discr_Check_Funcs_Built, Flag)));
  
     Cc (N_Incomplete_Type_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 569,576 ****
          Sm (Assignment_OK, Flag),
          Sm (Corresponding_Generic_Association, Node_Id),
          Sm (Exception_Junk, Flag),
-         Sm (Handler_List_Entry, Node_Id),
-         Sm (Is_Subprogram_Descriptor, Flag),
          Sm (More_Ids, Flag),
          Sm (No_Initialization, Flag),
          Sm (Prev_Ids, Flag),
--- 579,584 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 688,700 ****
         (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),
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
!         Sm (Parent_Spec, Node_Id)));
  
     Ab (N_Subprogram_Instantiation, N_Generic_Instantiation,
         (Sy (Must_Override, Flag),
--- 696,709 ----
         (Sy (Defining_Unit_Name, Node_Id),
          Sy (Name, Node_Id, Default_Empty),
          Sy (Generic_Associations, List_Id, Default_No_List),
+         Sm (Parent_Spec, Node_Id),
          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),
          Sm (Is_Known_Guaranteed_ABE, Flag),
          Sm (Is_SPARK_Mode_On_Node, Flag),
!         Sm (Is_Structural, Flag)));
  
     Ab (N_Subprogram_Instantiation, N_Generic_Instantiation,
         (Sy (Must_Override, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 730,736 ****
          Sm (Activation_Chain_Entity, Node_Id),
          Sm (Acts_As_Spec, Flag),
          Sm (Corresponding_Entry_Body, Node_Id),
-         Sm (Do_Storage_Check, Flag),
          Sm (Has_Relative_Deadline_Pragma, Flag),
          Sm (Is_Entry_Barrier_Function, Flag),
          Sm (Is_Protected_Subprogram_Body, Flag),
--- 739,744 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 910,915 ****
--- 918,924 ----
          Sm (Cleanup_Actions, List_Id),
          Sm (Exception_Junk, Flag),
          Sm (Is_Abort_Block, Flag),
+         Sm (Is_Expanded_Dispatching_Call, Flag),
          Sm (Is_Initialization_Block, Flag),
          Sm (Is_Task_Master, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 967,972 ****
--- 976,991 ----
          Sy (Is_Null_Loop, Flag),
          Sy (Suppress_Loop_Warnings, Flag)));
  
+    Ab (N_Loop_Flow_Statement, N_Statement_Other_Than_Procedure_Call,
+        (Sy (Name, Node_Id, Default_Empty),
+         Sy (Condition, Node_Id, Default_Empty)));
+ 
+    Cc (N_Continue_Statement, N_Loop_Flow_Statement,
+        (Sm (Call_Or_Target_Loop, Node_Id)));
+ 
+    Cc (N_Exit_Statement, N_Loop_Flow_Statement,
+        (Sm (Next_Exit_Statement, Node_Id)));
+ 
     Cc (N_Null_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sm (Next_Rep_Item, Node_Id)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 996,1001 ****
--- 1015,1021 ----
     Cc (N_Extended_Return_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Return_Object_Declarations, List_Id),
          Sy (Handled_Statement_Sequence, Node_Id, Default_Empty),
+         Sm (Activation_Chain_Entity, Node_Id),
          Sm (Procedure_To_Call, Node_Id),
          Sm (Return_Statement_Entity, Node_Id),
          Sm (Storage_Pool, Node_Id)));
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1012,1022 ****
         (Sy (Entry_Call_Alternative, Node_Id),
          Sy (Delay_Alternative, Node_Id)));
  
-    Cc (N_Exit_Statement, N_Statement_Other_Than_Procedure_Call,
-        (Sy (Name, Node_Id, Default_Empty),
-         Sy (Condition, Node_Id, Default_Empty),
-         Sm (Next_Exit_Statement, Node_Id)));
- 
     Cc (N_If_Statement, N_Statement_Other_Than_Procedure_Call,
         (Sy (Condition, Node_Id, Default_Empty),
          Sy (Then_Statements, List_Id),
--- 1032,1037 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1030,1037 ****
         (Sy (Accept_Statement, Node_Id),
          Sy (Condition, Node_Id, Default_Empty),
          Sy (Statements, List_Id, Default_Empty_List),
!         Sy (Pragmas_Before, List_Id, Default_No_List),
!         Sm (Accept_Handler_Records, List_Id)));
  
     Cc (N_Delay_Alternative, Node_Kind,
         (Sy (Delay_Statement, Node_Id),
--- 1045,1051 ----
         (Sy (Accept_Statement, Node_Id),
          Sy (Condition, Node_Id, Default_Empty),
          Sy (Statements, List_Id, Default_Empty_List),
!         Sy (Pragmas_Before, List_Id, Default_No_List)));
  
     Cc (N_Delay_Alternative, Node_Kind,
         (Sy (Delay_Statement, Node_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1123,1128 ****
--- 1137,1143 ----
         (Sy (Identifier, Node_Id, Default_Empty),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Class_Present, Flag),
+         Sm (Aspect_Ghost_Assertion_Level, Node_Id),
          Sm (Aspect_On_Partial_View, Flag),
          Sm (Aspect_Rep_Item, Node_Id),
          Sm (Aspect_Subprograms, Elist_Id),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1133,1139 ****
          Sm (Is_Delayed_Aspect, Flag),
          Sm (Is_Disabled, Flag),
          Sm (Is_Ignored, Flag),
!         Sm (Next_Rep_Item, Node_Id)));
  
     Cc (N_Call_Marker, Node_Kind,
         (Sm (Is_Declaration_Level_Node, Flag),
--- 1148,1155 ----
          Sm (Is_Delayed_Aspect, Flag),
          Sm (Is_Disabled, Flag),
          Sm (Is_Ignored, Flag),
!         Sm (Next_Rep_Item, Node_Id),
!         Sm (Original_Aspect, Node_Id)));
  
     Cc (N_Call_Marker, Node_Kind,
         (Sm (Is_Declaration_Level_Node, Flag),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1147,1155 ****
          Sm (Target, Node_Id)));
  
     Cc (N_Case_Expression_Alternative, Node_Kind,
!        (Sm (Actions, List_Id),
!         Sy (Discrete_Choices, List_Id),
          Sy (Expression, Node_Id, Default_Empty),
          Sm (Has_SP_Choice, Flag)));
  
     Cc (N_Case_Statement_Alternative, Node_Kind,
--- 1163,1171 ----
          Sm (Target, Node_Id)));
  
     Cc (N_Case_Expression_Alternative, Node_Kind,
!        (Sy (Discrete_Choices, List_Id),
          Sy (Expression, Node_Id, Default_Empty),
+         Sy (Actions, List_Id, Default_No_List),
          Sm (Has_SP_Choice, Flag)));
  
     Cc (N_Case_Statement_Alternative, Node_Kind,
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1276,1285 ****
     Cc (N_Exception_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sm (Expression, Node_Id),
          Sm (More_Ids, Flag),
!         Sm (Prev_Ids, Flag),
!         Sm (Renaming_Exception, Node_Id)));
  
     Cc (N_Exception_Handler, Node_Kind,
         (Sy (Choice_Parameter, Node_Id, Default_Empty),
--- 1292,1300 ----
     Cc (N_Exception_Declaration, N_Declaration,
         (Sy (Defining_Identifier, Node_Id),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
!         Sy (Expression, Node_Id, Default_Empty),
          Sm (More_Ids, Flag),
!         Sm (Prev_Ids, Flag)));
  
     Cc (N_Exception_Handler, Node_Kind,
         (Sy (Choice_Parameter, Node_Id, Default_Empty),
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1419,1425 ****
          Sy (Parameter_Type, Node_Id),
          Sy (Expression, Node_Id, Default_Empty),
          Sy (Aspect_Specifications, List_Id, Default_No_List),
-         Sm (Default_Expression, Node_Id),
          Sm (More_Ids, Flag),
          Sm (Prev_Ids, Flag)));
  
--- 1434,1439 ----
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1440,1445 ****
--- 1454,1461 ----
          Sm (Is_Ignored_Ghost_Pragma, Flag),
          Sm (Next_Pragma, Node_Id),
          Sm (Next_Rep_Item, Node_Id),
+         Sm (Original_Pragma, Node_Id),
+         Sm (Pragma_Ghost_Assertion_Level, Node_Id),
          Sm (Uneval_Old_Accept, Flag),
          Sm (Uneval_Old_Warn, Flag)));
  
*************** begin -- Gen_IL.Gen.Gen_Nodes
*** 1522,1528 ****
         (Sy (Discrete_Choices, List_Id),
          Sy (Component_List, Node_Id),
          Sm (Dcheck_Function, Node_Id),
-         Sm (Enclosing_Variant, Node_Id),
          Sm (Has_SP_Choice, Flag),
          Sm (Present_Expr, Uint)));
  
--- 1538,1543 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-gen.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen.adb
*** gcc-15.2.0/gcc/ada/gen_il-gen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 167,173 ****
  
        --  Check that syntactic fields precede semantic fields. Note that this
        --  check is happening before we compute inherited fields.
-       --  Exempt Chars and Actions from this rule, for now.
  
        declare
           Semantic_Seen : Boolean := False;
--- 167,172 ----
*************** package body Gen_IL.Gen is
*** 178,188 ****
                    raise Illegal with
                      "syntactic fields must precede semantic ones " & Image (T);
                 end if;
- 
              else
!                if Fields (J).F not in Chars | Actions then
!                   Semantic_Seen := True;
!                end if;
              end if;
           end loop;
        end;
--- 177,184 ----
                    raise Illegal with
                      "syntactic fields must precede semantic ones " & Image (T);
                 end if;
              else
!                Semantic_Seen := True;
              end if;
           end loop;
        end;
*************** package body Gen_IL.Gen is
*** 509,522 ****
        Node_Field_Types_Used, Entity_Field_Types_Used : Type_Set;
  
        Setter_Needs_Parent : Field_Set :=
!         (Actions | Expression | Then_Actions | Else_Actions => True,
           others => False);
        --  Set of fields where the setter should set the Parent. True for
!       --  syntactic fields of type Node_Id and List_Id, but with some
!       --  exceptions. Expression is syntactic AND semantic, and the Parent
!       --  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.
  
--- 505,515 ----
        Node_Field_Types_Used, Entity_Field_Types_Used : Type_Set;
  
        Setter_Needs_Parent : Field_Set :=
!         (Then_Actions | Else_Actions => True,
           others => False);
        --  Set of fields where the setter should set the Parent. True for
!       --  syntactic fields of type Node_Id and List_Id. Then_Actions and
!       --  Else_Actions are not syntactic, but the Parent is needed.
        --
        --  Computed in Check_For_Syntactic_Field_Mismatch.
  
*************** package body Gen_IL.Gen is
*** 896,902 ****
              --  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
--- 889,895 ----
              --  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 in Right_Opnd | Chars)
                 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
*************** package body Gen_IL.Gen is
*** 1301,1326 ****
                       end if;
                    end loop;
  
!                   --  The following fields violate this rule. We might want to
!                   --  simplify by getting rid of these cases, but we allow them
!                   --  for now. At least, we don't want to add any new cases of
!                   --  syntactic/semantic mismatch.
  
!                   if F in Chars | Actions | Expression | Default_Expression
                    then
!                      pragma Assert (Syntactic_Seen and Semantic_Seen);
! 
!                   else
!                      if Syntactic_Seen and Semantic_Seen then
!                         raise Illegal with
!                           "syntactic/semantic mismatch for " & Image (F);
!                      end if;
! 
!                      if Field_Table (F).Field_Type in Traversed_Field_Type
!                        and then Syntactic_Seen
!                      then
!                         Setter_Needs_Parent (F) := True;
!                      end if;
                    end if;
                 end;
              end if;
--- 1294,1308 ----
                       end if;
                    end loop;
  
!                   if Syntactic_Seen and Semantic_Seen then
!                      raise Illegal with
!                        "syntactic/semantic mismatch for " & Image (F);
!                   end if;
  
!                   if Field_Table (F).Field_Type in Traversed_Field_Type
!                     and then Syntactic_Seen
                    then
!                      Setter_Needs_Parent (F) := True;
                    end if;
                 end;
              end if;
*************** package body Gen_IL.Gen is
*** 2675,2681 ****
  
                 if Is_Descendant (N_Op, T) then
                    --  Special cases for N_Op nodes: fill in the Chars and Entity
!                   --  fields even though they were not passed in.
  
                    declare
                       Op : constant String := Image_Sans_N (T);
--- 2657,2663 ----
  
                 if Is_Descendant (N_Op, T) then
                    --  Special cases for N_Op nodes: fill in the Chars and Entity
!                   --  fields. Assert that the Chars passed in is defaulted.
  
                    declare
                       Op : constant String := Image_Sans_N (T);
*************** package body Gen_IL.Gen is
*** 2705,2710 ****
--- 2687,2693 ----
                       --  "Op_", but the Name_Id constant does not.
  
                    begin
+                      Put (S, "pragma Assert (Chars = No_Name);" & LF);
                       Put (S, "Set_Chars (N, Name_" & Op_Name & ");" & LF);
                       Put (S, "Set_Entity (N, Standard_" & Op & ");" & LF);
                    end;
*************** package body Gen_IL.Gen is
*** 2990,2996 ****
                       (if T in Entity_Type and then F in Node_Field then
                         " -- N" else "");
                    --  A comment to put out for fields of entities that are
!                   --  shared with nodes, such as Chars.
  
                 begin
                    while First_Bit < Type_Bit_Size_Aligned (T) loop
--- 2973,2979 ----
                       (if T in Entity_Type and then F in Node_Field then
                         " -- N" else "");
                    --  A comment to put out for fields of entities that are
!                   --  shared with nodes.
  
                 begin
                    while First_Bit < Type_Bit_Size_Aligned (T) loop
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-gen.ads gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen.ads
*** gcc-15.2.0/gcc/ada/gen_il-gen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-gen.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,61 ****
  --  If a field is syntactic, then the constructors in Nmake take a parameter to
  --  initialize that field. In addition, the tree-traversal routines in Atree
  --  (Traverse_Func and Traverse_Proc) traverse syntactic fields that are of
! --  type Node_Id (or subtypes of Node_Id) or List_Id. Finally, (with some
! --  exceptions documented in the body) the setter for a syntactic node or list
! --  field "Set_F (N, Val)" will set the Parent of Val to N, unless Val is Empty
! --  or Error[_List].
  --
! --  Note that the same field can be syntactic in some node types but semantic
! --  in other node types. This is an added complexity that we might want to
! --  eliminate someday. We shouldn't add any new such cases.
  --
  --  A "program" written in the Gen_IL.Gen language consists of calls to the
  --  "Create_..." routines below, followed by a call to Compile, also below. In
--- 48,59 ----
  --  If a field is syntactic, then the constructors in Nmake take a parameter to
  --  initialize that field. In addition, the tree-traversal routines in Atree
  --  (Traverse_Func and Traverse_Proc) traverse syntactic fields that are of
! --  type Node_Id (or subtypes of Node_Id) or List_Id. Finally, the setter for a
! --  syntactic node or list field "Set_F (N, Val)" will set the Parent of Val to
! --  N, unless Val is Empty or Error[_List].
  --
! --  No syntactic/semantic mixing: the same field cannot be syntactic in some
! --  node types but semantic in other node types.
  --
  --  A "program" written in the Gen_IL.Gen language consists of calls to the
  --  "Create_..." routines below, followed by a call to Compile, also below. In
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-internals.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il-internals.adb
*** gcc-15.2.0/gcc/ada/gen_il-internals.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-internals.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 277,282 ****
--- 277,284 ----
              return "DT_Offset_To_Top_Func";
           when DT_Position =>
              return "DT_Position";
+          when Extra_Formals_Known =>
+             return "Extra_Formals_Known";
           when Forwards_OK =>
              return "Forwards_OK";
           when Has_First_Controlling_Parameter_Aspect =>
*************** package body Gen_IL.Internals is
*** 289,298 ****
--- 291,304 ----
              return "Has_RACW";
           when Has_SP_Choice =>
              return "Has_SP_Choice";
+          when Has_Unsigned_Base_Range_Aspect =>
+             return "Has_Unsigned_Base_Range_Aspect";
           when Ignore_SPARK_Mode_Pragmas =>
              return "Ignore_SPARK_Mode_Pragmas";
           when Is_CPP_Class =>
              return "Is_CPP_Class";
+          when Is_CPP_Constructor =>
+             return "Is_CPP_Constructor";
           when Is_CUDA_Kernel =>
              return "Is_CUDA_Kernel";
           when Is_DIC_Procedure =>
*************** package body Gen_IL.Internals is
*** 307,312 ****
--- 313,322 ----
              return "Is_Elaboration_Warnings_OK_Id";
           when Is_Elaboration_Warnings_OK_Node =>
              return "Is_Elaboration_Warnings_OK_Node";
+          when Is_IEEE_Extended_Precision =>
+             return "Is_IEEE_Extended_Precision";
+          when Is_Interface_Pointer_Displacement =>
+             return "Is_Interface_Pointer_Displacement";
           when Is_Known_Guaranteed_ABE =>
              return "Is_Known_Guaranteed_ABE";
           when Is_RACW_Stub_Type =>
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-internals.ads gcc-16.1.0-RC-20260423/gcc/ada/gen_il-internals.ads
*** gcc-15.2.0/gcc/ada/gen_il-internals.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-internals.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-main.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il-main.adb
*** gcc-15.2.0/gcc/ada/gen_il-main.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-main.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il-types.ads gcc-16.1.0-RC-20260423/gcc/ada/gen_il-types.ads
*** gcc-15.2.0/gcc/ada/gen_il-types.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il-types.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 103,108 ****
--- 103,109 ----
        N_Is_Range,
        N_Multiplying_Operator,
        N_Later_Decl_Item,
+       N_Loop_Flow_Statement,
        N_Membership_Test,
        N_Numeric_Or_String_Literal,
        N_Op,
*************** package Gen_IL.Types is
*** 328,333 ****
--- 329,335 ----
        N_Code_Statement,
        N_Compound_Statement,
        N_Conditional_Entry_Call,
+       N_Continue_Statement,
        N_Delay_Relative_Statement,
        N_Delay_Until_Statement,
        N_Entry_Call_Statement,
*************** package Gen_IL.Types is
*** 443,448 ****
--- 445,451 ----
        --  Concrete entity types:
  
        E_Void,
+       E_Assertion_Level,
        E_Component,
        E_Constant,
        E_Discriminant,
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il.adb gcc-16.1.0-RC-20260423/gcc/ada/gen_il.adb
*** gcc-15.2.0/gcc/ada/gen_il.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gen_il.ads gcc-16.1.0-RC-20260423/gcc/ada/gen_il.ads
*** gcc-15.2.0/gcc/ada/gen_il.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gen_il.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2020-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/generate_minimal_reproducer.adb gcc-16.1.0-RC-20260423/gcc/ada/generate_minimal_reproducer.adb
*** gcc-15.2.0/gcc/ada/generate_minimal_reproducer.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/generate_minimal_reproducer.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is 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,38 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  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;
--- 23,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Atree;
  with Fmap;
  with Fname.UF;
  with Lib;
! with Namet;         use Namet;
! with Osint;         use Osint;
! with Output;        use Output;
! with Sinfo.Nodes;   use Sinfo.Nodes;
  with System.CRTL;
  with System.OS_Lib; use System.OS_Lib;
! with Types;         use Types;
! with Uname;
  
  procedure Generate_Minimal_Reproducer is
     Reproducer_Generation_Failed : exception;
*************** procedure Generate_Minimal_Reproducer is
*** 85,90 ****
--- 87,112 ----
     Oracle_Path : constant String :=
       Dirname & Directory_Separator & Executable_Name ("oracle");
  
+    Main_Library_Item : constant Node_Id := Unit (Lib.Cunit (Main_Unit));
+ 
+    --  There is a special case that we need to detect: when the main library
+    --  item is the instantiation of a generic that has a body, and the
+    --  instantiation of generic bodies has started. We start by binding whether
+    --  the main library item is an instantiation to the following constant.
+    Main_Is_Instantiation : constant Boolean :=
+      Nkind (Atree.Original_Node (Main_Library_Item))
+      in N_Generic_Instantiation;
+ 
+    --  If the main library item is an instantiation and its unit name is a body
+    --  name, it means that Make_Instance_Unit has been called. We need to use
+    --  the corresponding spec name to reconstruct the on-disk form of the
+    --  semantic closure.
+    Main_Unit_Name : constant Unit_Name_Type :=
+      (if Main_Is_Instantiation
+         and then Uname.Is_Body_Name (Lib.Unit_Name (Main_Unit))
+       then Uname.Get_Spec_Name (Lib.Unit_Name (Main_Unit))
+       else Lib.Unit_Name (Main_Unit));
+ 
     Result : Integer;
  begin
     Create_Semantic_Closure_Project :
*************** begin
*** 118,142 ****
        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
--- 140,169 ----
        end if;
  
        for J in Main_Unit .. Lib.Last_Unit loop
!          --  We skip library units that fall under one of the following cases:
!          --  - Internal library units.
!          --  - Units that were synthesized for child subprograms without spec
!          --    files.
!          --  - Dummy entries that Add_Preprocessing_Dependency puts in
!          --    Lib.Units.
!          --  Those cases correspond to the conjuncts in the condition below.
!          if not Lib.Is_Internal_Unit (J)
!            and then Comes_From_Source (Lib.Cunit (J))
!            and then Lib.Unit_Name (J) /= No_Unit_Name
!          then
!             declare
!                Path : File_Name_Type :=
!                  Fmap.Mapped_Path_Name (Lib.Unit_File_Name (J));
  
!                Unit_Name : constant Unit_Name_Type :=
!                  (if J = Main_Unit then Main_Unit_Name else Lib.Unit_Name (J));
  
!                Default_File_Name : constant String :=
!                  Fname.UF.Get_Default_File_Name (Unit_Name);
  
!                File_Copy_Path : constant String :=
!                  Src_Dir_Path & Directory_Separator & Default_File_Name;
!             begin
                 --  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
*************** begin
*** 153,160 ****
  
                    pragma Assert (Success);
                 end;
!             end if;
!          end;
        end loop;
     end Create_Semantic_Closure_Project;
  
--- 180,187 ----
  
                    pragma Assert (Success);
                 end;
!             end;
!          end if;
        end loop;
     end Create_Semantic_Closure_Project;
  
*************** begin
*** 197,203 ****
               (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;
--- 224,230 ----
               (Fmap.Mapped_Path_Name (Lib.Unit_File_Name (Main_Unit)));
  
           Default_Main_Name : constant String :=
!            Fname.UF.Get_Default_File_Name (Main_Unit_Name);
  
           New_Main_Path : constant String :=
             Src_Dir_Path & Directory_Separator & Default_Main_Name;
*************** begin
*** 228,234 ****
           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???
--- 255,262 ----
           Write_Eol;
           Write_Line ("   Args : constant GNAT.OS_Lib.Argument_List :=");
  
!          Write_Str
!            ("     (new String'(""-quiet""), new String'(""-gnatd_M"")");
  
           --  The following way of iterating through the command line arguments
           --  was copied from Set_Targ. TODO factorize???
diff -Nrcpad gcc-15.2.0/gcc/ada/get_scos.adb gcc-16.1.0-RC-20260423/gcc/ada/get_scos.adb
*** gcc-15.2.0/gcc/ada/get_scos.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/get_scos.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/get_scos.ads gcc-16.1.0-RC-20260423/gcc/ada/get_scos.ads
*** gcc-15.2.0/gcc/ada/get_scos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/get_scos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/get_targ.adb gcc-16.1.0-RC-20260423/gcc/ada/get_targ.adb
*** gcc-15.2.0/gcc/ada/get_targ.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/get_targ.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/get_targ.ads gcc-16.1.0-RC-20260423/gcc/ada/get_targ.ads
*** gcc-15.2.0/gcc/ada/get_targ.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/get_targ.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Get_Targ is
*** 113,119 ****
     type C_String is array (0 .. 255) of aliased Character;
     pragma Convention (C, C_String);
  
!    type Register_Type_Proc is access procedure
       (C_Name    : C_String;       -- Nul-terminated string with name of type
        Digs      : Natural;        -- Digits for floating point, 0 otherwise
        Complex   : Boolean;        -- True iff type has real and imaginary parts
--- 113,119 ----
     type C_String is array (0 .. 255) of aliased Character;
     pragma Convention (C, C_String);
  
!    type Register_Type_Proc is not null access procedure
       (C_Name    : C_String;       -- Nul-terminated string with name of type
        Digs      : Natural;        -- Digits for floating point, 0 otherwise
        Complex   : Boolean;        -- True iff type has real and imaginary parts
diff -Nrcpad gcc-15.2.0/gcc/ada/ghost.adb gcc-16.1.0-RC-20260423/gcc/ada/ghost.adb
*** gcc-15.2.0/gcc/ada/ghost.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ghost.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Alloc;
  with Aspects;        use Aspects;
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 26,31 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 38,49 ****
  with Sem_Disp;       use Sem_Disp;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Prag;       use Sem_Prag;
- with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Table;
  
  package body Ghost is
--- 37,47 ----
  with Sem_Disp;       use Sem_Disp;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
+ with Stand;          use Stand;
  with Table;
  
  package body Ghost is
*************** package body Ghost is
*** 63,91 ****
       Table_Increment      => Alloc.Ignored_Ghost_Nodes_Increment,
       Table_Name           => "Ignored_Ghost_Nodes");
  
     -----------------------
     -- Local subprograms --
     -----------------------
  
!    function Whole_Object_Ref (Ref : Node_Id) return Node_Id;
!    --  For a name that denotes an object, returns a name that denotes the whole
!    --  object, declared by an object declaration, formal parameter declaration,
!    --  etc. For example, for P.X.Comp (J), if P is a package X is a record
!    --  object, this returns P.X.
  
!    function Ghost_Entity (Ref : Node_Id) return Entity_Id;
!    pragma Inline (Ghost_Entity);
!    --  Obtain the entity of a Ghost entity from reference Ref. Return Empty if
!    --  no such entity exists.
  
!    procedure Install_Ghost_Mode (Mode : Ghost_Mode_Type);
!    pragma Inline (Install_Ghost_Mode);
!    --  Install Ghost mode Mode as the Ghost mode in effect
  
!    procedure Install_Ghost_Region (Mode : Name_Id; N : Node_Id);
     pragma Inline (Install_Ghost_Region);
     --  Install a Ghost region comprised of mode Mode and ignored region start
!    --  node N.
  
     function Is_Subject_To_Ghost (N : Node_Id) return Boolean;
     --  Determine whether declaration or body N is subject to aspect or pragma
--- 61,129 ----
       Table_Increment      => Alloc.Ignored_Ghost_Nodes_Increment,
       Table_Name           => "Ignored_Ghost_Nodes");
  
+    ---------------------
+    -- Local variables --
+    ---------------------
+ 
+    Assertion_Level_Error_Msg : constant String :=
+      "incompatible assertion levels in effect";
+ 
+    Ghost_Policy_Error_Msg : constant String :=
+      "incompatible ghost policies in effect";
+ 
     -----------------------
     -- Local subprograms --
     -----------------------
  
!    function Assertion_Level_To_Name (Level : Entity_Id) return Name_Id;
!    --  Returns No_Name if there is no Level or the name of the Level.
  
!    procedure Check_Valid_Ghost_Declaration (N : Node_Id);
!    --  Check that the declaration for a Ghost node N has a valid
!    --  Assertion_Policy and a valid Assertion_Level.
  
!    function Get_Ghost_Aspect (N : Node_Id) return Node_Id;
!    --  Returns the Ghost aspect for a given node if it has one.
  
!    function Get_Ghost_Pragma (N : Node_Id) return Node_Id;
!    --  Return the Ghost pragma following this node.
! 
!    function Get_Ghost_Assertion_Level (N : Node_Id) return Entity_Id;
!    --  Returns the Assertion_Level entity if the node has a Ghost aspect and
!    --  the Ghost aspect is using an Assertion_Level.
! 
!    function Ghost_Assertion_Level_In_Effect (Id : Entity_Id) return Entity_Id;
!    --  Returns the ghost level applicable for the given entity Id in a similar
!    --  manner as Ghost_Policy_In_Effect.
! 
!    function Ghost_Policy_In_Effect (Id : Entity_Id) return Name_Id;
!    --  Returns the ghost policy applicable for the given entity Id.
!    --
!    --  SPARK RM 6.9 (3):
!    --
!    --  An object declaration which occurs inside an expression in a ghost
!    --  declaration, statement, assertion pragma or specification aspect
!    --  declaration is a ghost declaration.
!    --
!    --  If this declaration does not have the Ghost aspect specified, the
!    --  assertion policy applicable to this declaration comes from the policy
!    --  applicable to the enclosing declaration, statement, assertion pragma
!    --  or specification aspect.
!    --
!    --  If the declaration occurs inside a ghost declaration, ghost statement,
!    --  assertion pragma or specification aspect and the assertion policy
!    --  applicable to this scope is Ignore, then the assertion policy applicable
!    --  to the declaration is also Ignore.
!    --
!    --  Otherwise, the assertion policy applicable to an object declaration
!    --  comes either from its assertion level if any, or from the ghost
!    --  policy at the point of declaration.
! 
!    procedure Install_Ghost_Region
!      (Mode : Name_Id; N : Node_Id; Level : Entity_Id);
     pragma Inline (Install_Ghost_Region);
     --  Install a Ghost region comprised of mode Mode and ignored region start
!    --  node N and Level as the Assertion_Level that was associated with it.
  
     function Is_Subject_To_Ghost (N : Node_Id) return Boolean;
     --  Determine whether declaration or body N is subject to aspect or pragma
*************** package body Ghost is
*** 93,109 ****
     --  been analyzed yet, but the context needs to establish the "ghostness"
     --  of N.
  
     procedure Mark_Ghost_Declaration_Or_Body
!      (N    : Node_Id;
!       Mode : Name_Id);
     --  Mark the defining entity of declaration or body N as Ghost depending on
     --  mode Mode. Mark all formals parameters when N denotes a subprogram or a
!    --  body.
  
     procedure Record_Ignored_Ghost_Node (N : Node_Or_Entity_Id);
     --  Save ignored Ghost node or entity N in table Ignored_Ghost_Nodes for
     --  later elimination.
  
     ----------------------------
     -- Check_Ghost_Completion --
     ----------------------------
--- 131,214 ----
     --  been analyzed yet, but the context needs to establish the "ghostness"
     --  of N.
  
+    procedure Mark_And_Set_Ghost_Region (N : Node_Id; Id : Entity_Id);
+    --  Install a new ghost region for N based on the active policy applied for
+    --  Id. Additionally if the policy is ignored mark and set the node as an
+    --  ignored ghost region.
+ 
     procedure Mark_Ghost_Declaration_Or_Body
!      (N     : Node_Id;
!       Mode  : Name_Id;
!       Level : Entity_Id);
     --  Mark the defining entity of declaration or body N as Ghost depending on
     --  mode Mode. Mark all formals parameters when N denotes a subprogram or a
!    --  body. Additionally set level as the Ghost_Assertion_Level for all of
!    --  them.
  
     procedure Record_Ignored_Ghost_Node (N : Node_Or_Entity_Id);
     --  Save ignored Ghost node or entity N in table Ignored_Ghost_Nodes for
     --  later elimination.
  
+    ------------------------------
+    -- Assertion_Level_From_Arg --
+    ------------------------------
+ 
+    function Assertion_Level_From_Arg (Arg : Node_Id) return Entity_Id is
+       Expr  : constant Node_Id := Get_Pragma_Arg (Arg);
+       Level : Entity_Id;
+ 
+    begin
+       --  Aspect Ghost without an expression uses Standard_Level_Default
+ 
+       if No (Expr) then
+          return Standard_Level_Default;
+       end if;
+ 
+       --  Check if the expression matches a static boolean expression first
+ 
+       Preanalyze_And_Resolve_Without_Errors (Expr);
+       if Is_OK_Static_Expression (Expr) then
+          if Is_True (Expr_Value (Expr)) then
+             return Standard_Level_Default;
+          else
+             --  Ghost => False is considered to be non-ghost
+ 
+             return Empty;
+          end if;
+       end if;
+ 
+       --  Alternatively the argument could be an Assertion_Level
+ 
+       if Nkind (Expr) = N_Identifier then
+          Level := Get_Assertion_Level (Chars (Expr));
+          if Present (Level) then
+             --  The identifier resolved to an assertion level. Override the
+             --  Any_Id from a failed resolution in pre-analysis.
+ 
+             Set_Entity (Expr, Level);
+             return Level;
+          end if;
+       end if;
+ 
+       --  We are dealing with a malformed ghost argument.
+       --  An error will be emitted when the pragma is analyzed.
+ 
+       return Empty;
+    end Assertion_Level_From_Arg;
+ 
+    -----------------------------
+    -- Assertion_Level_To_Name --
+    -----------------------------
+ 
+    function Assertion_Level_To_Name (Level : Entity_Id) return Name_Id is
+    begin
+       if No (Level) then
+          return No_Name;
+       end if;
+ 
+       return Chars (Level);
+    end Assertion_Level_To_Name;
+ 
     ----------------------------
     -- Check_Ghost_Completion --
     ----------------------------
*************** package body Ghost is
*** 112,144 ****
       (Prev_Id  : Entity_Id;
        Compl_Id : Entity_Id)
     is
!       Policy : constant Name_Id := Policy_In_Effect (Name_Ghost);
  
     begin
        --  Nothing to do if one of the views is missing
  
        if No (Prev_Id) or else No (Compl_Id) then
!          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
        then
           Error_Msg_Sloc := Sloc (Compl_Id);
- 
-          Error_Msg_N ("incompatible ghost policies in effect", Prev_Id);
-          Error_Msg_N ("\& declared with ghost policy `Check`", Prev_Id);
           Error_Msg_N ("\& completed # with ghost policy `Ignore`", Prev_Id);
  
        elsif Is_Ignored_Ghost_Entity (Prev_Id)
          and then Policy = Name_Check
        then
           Error_Msg_Sloc := Sloc (Compl_Id);
- 
-          Error_Msg_N ("incompatible ghost policies in effect", Prev_Id);
-          Error_Msg_N ("\& declared with ghost policy `Ignore`", Prev_Id);
           Error_Msg_N ("\& completed # with ghost policy `Check`", Prev_Id);
        end if;
     end Check_Ghost_Completion;
--- 217,252 ----
       (Prev_Id  : Entity_Id;
        Compl_Id : Entity_Id)
     is
!       Policy : Name_Id;
  
     begin
        --  Nothing to do if one of the views is missing
  
        if No (Prev_Id) or else No (Compl_Id) then
!          return;
!       end if;
! 
!       Policy := Ghost_Policy_In_Effect (Prev_Id);
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(19)).
  
!       if Is_Checked_Ghost_Entity (Prev_Id)
          and then Policy = Name_Ignore
        then
+          Error_Msg_N (Ghost_Policy_Error_Msg, Prev_Id);
+          Error_Msg_Sloc := Sloc (Prev_Id);
+          Error_Msg_N ("\& declared # with ghost policy `Check`", Prev_Id);
           Error_Msg_Sloc := Sloc (Compl_Id);
           Error_Msg_N ("\& completed # with ghost policy `Ignore`", Prev_Id);
  
        elsif Is_Ignored_Ghost_Entity (Prev_Id)
          and then Policy = Name_Check
        then
+          Error_Msg_N (Ghost_Policy_Error_Msg, Prev_Id);
+          Error_Msg_Sloc := Sloc (Prev_Id);
+          Error_Msg_N ("\& declared # with ghost policy `Ignore`", Prev_Id);
           Error_Msg_Sloc := Sloc (Compl_Id);
           Error_Msg_N ("\& completed # with ghost policy `Check`", Prev_Id);
        end if;
     end Check_Ghost_Completion;
*************** package body Ghost is
*** 155,161 ****
  
        function Is_OK_Ghost_Context (Context : Node_Id) return Boolean;
        --  Determine whether node Context denotes a Ghost-friendly context where
!       --  a Ghost entity can safely reside (SPARK RM 6.9(10)).
  
        function In_Aspect_Or_Pragma_Predicate (N : Node_Id) return Boolean;
        --  Return True iff N is enclosed in an aspect or pragma Predicate
--- 263,269 ----
  
        function Is_OK_Ghost_Context (Context : Node_Id) return Boolean;
        --  Determine whether node Context denotes a Ghost-friendly context where
!       --  a Ghost entity can safely reside (SPARK RM 6.9(13)).
  
        function In_Aspect_Or_Pragma_Predicate (N : Node_Id) return Boolean;
        --  Return True iff N is enclosed in an aspect or pragma Predicate
*************** package body Ghost is
*** 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
           --
--- 281,289 ----
           --
           --    * Be subject to pragma Ghost
  
!          function Is_OK_Pragma (Prag : Node_Id) return Boolean;
!          --  Determine whether node Prag is a suitable context for a ghost
!          --  reference. To qualify as such, Prag must either
           --
           --    * Be an assertion expression pragma
           --
*************** package body Ghost is
*** 186,192 ****
           --
           --    * Contain a reference to a Ghost entity
  
!          function Is_OK_Statement (Stmt : Node_Id) return Boolean;
           --  Determine whether node Stmt is a suitable context for a reference
           --  to a Ghost entity. To qualify as such, Stmt must either
           --
--- 294,301 ----
           --
           --    * Contain a reference to a Ghost entity
  
!          function Is_OK_Statement
!            (Stmt : Node_Id; Id : Entity_Id; Call_Arg : Node_Id) return Boolean;
           --  Determine whether node Stmt is a suitable context for a reference
           --  to a Ghost entity. To qualify as such, Stmt must either
           --
*************** package body Ghost is
*** 318,436 ****
           -- 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.
  
!             --------------------
!             -- Check_Policies --
!             --------------------
  
!             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);
!                   Error_Msg_NE
!                     ("\ghost entity & has policy `Ignore`",
!                      Ghost_Ref, Ghost_Id);
  
!                   Error_Msg_Name_1 := AP;
!                   Error_Msg_N
!                     ("\assertion expression has policy %", Ghost_Ref);
!                end if;
!             end Check_Policies;
  
!             --  Local variables
  
!             Prag_Id  : Pragma_Id;
!             Prag_Nam : Name_Id;
  
!          --  Start of processing for Is_OK_Pragma
  
!          begin
!             if Nkind (Prag) = N_Pragma then
!                Prag_Id  := Get_Pragma_Id (Prag);
!                Prag_Nam := Original_Aspect_Pragma_Name (Prag);
  
!                --  A pragma that applies to a Ghost construct or specifies an
!                --  aspect of a Ghost entity is a Ghost pragma (SPARK RM 6.9(3))
  
!                if Is_Ghost_Pragma (Prag) then
!                   return True;
  
!                --  A pragma may not be analyzed, so that its Ghost status is
!                --  not determined yet, but it is guaranteed to be Ghost when
!                --  referencing a Ghost entity.
  
!                elsif Prag_Nam in Name_Annotate
!                                | Name_Compile_Time_Error
!                                | Name_Compile_Time_Warning
!                                | Name_Unreferenced
!                then
!                   return True;
  
!                --  An assertion expression pragma is Ghost when it contains a
!                --  reference to a Ghost entity (SPARK RM 6.9(10)), except for
!                --  predicate pragmas (SPARK RM 6.9(11)).
  
!                elsif Assertion_Expression_Pragma (Prag_Id)
!                  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;
  
!                --  Several pragmas that may apply to a non-Ghost entity are
!                --  treated as Ghost when they contain a reference to a Ghost
!                --  entity (SPARK RM 6.9(11)).
  
!                elsif Prag_Nam in Name_Global
!                                | Name_Depends
!                                | Name_Initializes
!                                | Name_Refined_Global
!                                | Name_Refined_Depends
!                                | Name_Refined_State
                 then
!                   return True;
                 end if;
-             end if;
  
!             return False;
!          end Is_OK_Pragma;
  
!          ---------------------
!          -- Is_OK_Statement --
!          ---------------------
  
-          function Is_OK_Statement (Stmt : Node_Id) return Boolean is
           begin
              --  An assignment statement is Ghost when the target is a Ghost
              --  entity.
  
              if Nkind (Stmt) = N_Assignment_Statement then
!                return Is_Ghost_Assignment (Stmt);
  
              --  A procedure call is Ghost when it calls a Ghost procedure
  
              elsif Nkind (Stmt) = N_Procedure_Call_Statement then
!                return Is_Ghost_Procedure_Call (Stmt);
  
              --  Special cases
  
--- 427,650 ----
           -- Is_OK_Pragma --
           ------------------
  
!          function Is_OK_Pragma (Prag : Node_Id) return Boolean
           is
!             Prag_Id  : Pragma_Id;
!             Prag_Nam : Name_Id;
  
!          begin
!             if Nkind (Prag) /= N_Pragma then
!                return False;
!             end if;
  
!             --  if the entitiy associated with the pragma is ignored then we do
!             --  not need to analyze the pragma.
  
!             if Is_Ignored_Ghost_Pragma (Prag) then
!                return True;
!             end if;
  
!             Prag_Id  := Get_Pragma_Id (Prag);
!             Prag_Nam := Original_Aspect_Pragma_Name (Prag);
  
!             --  A pragma may not be analyzed, so that its Ghost status is
!             --  not determined yet, but it is guaranteed to be Ghost when
!             --  referencing a Ghost entity.
  
!             if Suppressed_Ghost_Policy_Check_Pragma (Prag_Id) then
!                return True;
  
!             --  An assertion expression pragma is Ghost when it contains a
!             --  reference to a Ghost entity (SPARK RM 6.9(13)), except for
!             --  predicate pragmas (SPARK RM 6.9(14)).
  
!             elsif Is_Valid_Assertion_Kind (Prag_Nam)
!               and then Assertion_Expression_Pragma (Prag_Id)
!               and then Prag_Id /= Pragma_Predicate
!             then
!                return True;
  
!             --  A pragma that applies to a Ghost construct or specifies an
!             --  aspect of a Ghost entity is a Ghost pragma (SPARK RM 6.9(4))
  
!             elsif Is_Ghost_Pragma (Prag) then
!                return True;
  
!             --  Several pragmas that may apply to a non-Ghost entity are
!             --  treated as Ghost when they contain a reference to a Ghost
!             --  entity (SPARK RM 6.9(18)).
  
!             elsif Prag_Nam
!                   in Name_Global
!                    | Name_Depends
!                    | Name_Initializes
!                    | Name_Refined_Global
!                    | Name_Refined_Depends
!                    | Name_Refined_State
!             then
!                return True;
!             end if;
  
!             return False;
!          end Is_OK_Pragma;
  
!          ---------------------
!          -- Is_OK_Statement --
!          ---------------------
  
!          function Is_OK_Statement
!            (Stmt : Node_Id; Id : Entity_Id; Call_Arg : Node_Id) return Boolean
!          is
!             procedure Check_Assignment_Levels (Assignee : Entity_Id);
!             --  Check that a ghost entity on the RHS of the assignment is
!             --  assertion level dependent on the LHS.
! 
!             procedure Check_Procedure_Call_Policies (Callee : Entity_Id);
!             --  Check that
!             --  * the a checked call argument is not modified by an ignored
!             --    procedure call.
!             --  * the level of the modified call argument depends on the level
!             --    of the call.
! 
!             function Is_Modified_By_Call
!               (Call : Node_Id; Call_Arg : Node_Id; Callee : Entity_Id)
!                return Boolean;
!             --  Check that Call_Arg was used in the call and that the formal
!             --  for that argument was either out or in-out.
! 
!             -----------------------------
!             -- Check_Assignment_Levels --
!             -----------------------------
! 
!             procedure Check_Assignment_Levels (Assignee : Entity_Id) is
!                Assignee_Level : constant Entity_Id :=
!                  Ghost_Assertion_Level (Assignee);
!                Id_Level       : constant Entity_Id :=
!                  Ghost_Assertion_Level (Id);
!             begin
!                --  SPARK RM 6.9 (13) A ghost entity E shall only be referenced
!                --  within an assignment statement whose target is a ghost
!                --  variable that is assertion-level-dependent on E.
! 
!                if not Is_Assertion_Level_Dependent (Assignee_Level, Id_Level)
                 then
!                   Error_Msg_N (Assertion_Level_Error_Msg, Ghost_Ref);
!                   Error_Msg_Name_1 := Chars (Id_Level);
!                   Error_Msg_N ("\& has assertion level %", Ghost_Ref);
!                   Error_Msg_Name_1 := Chars (Assignee_Level);
!                   Error_Msg_Node_2 := Assignee;
!                   Error_Msg_NE ("\& is modifying & with %", Ghost_Ref, Id);
!                   Error_Msg_Name_1 := Chars (Id_Level);
!                   Error_Msg_NE
!                     ("\assertion level of & should depend on %",
!                      Ghost_Ref,
!                      Assignee);
!                end if;
!             end Check_Assignment_Levels;
  
!             -----------------------------------
!             -- Check_Procedure_Call_Policies --
!             -----------------------------------
  
!             procedure Check_Procedure_Call_Policies (Callee : Entity_Id) is
!                Id_Level  : constant Entity_Id := Ghost_Assertion_Level (Id);
!                Id_Policy : constant Name_Id := Ghost_Policy_In_Effect (Id);
  
!                Call_Level  : Entity_Id;
!                Call_Policy : Name_Id;
!             begin
!                if No (Callee) then
!                   return;
!                end if;
! 
!                --  Checks apply only if we are processing a call argument that
!                --  is modified by the call.
! 
!                if No (Call_Arg)
!                  or else not Is_Modified_By_Call (Stmt, Call_Arg, Callee)
                 then
!                   return;
                 end if;
  
!                Call_Policy := Ghost_Policy_In_Effect (Callee);
!                Call_Level := Ghost_Assertion_Level (Callee);
  
!                if Id_Policy = Name_Check
!                  and then Call_Policy = Name_Ignore
!                then
!                   Error_Msg_Sloc := Sloc (Ghost_Ref);
!                   Error_Msg_N (Ghost_Policy_Error_Msg, Ghost_Ref);
!                   Error_Msg_NE ("\& has ghost policy `Check`", Ghost_Ref, Id);
!                   Error_Msg_NE
!                     ("\& is modified # by a procedure with `Ignore`",
!                      Ghost_Ref,
!                      Id);
!                end if;
! 
!                --  An out or in out mode actual parameter and the subprogram
!                --  shall have matching assertion levels SPARK RM 6.9 (15).
! 
!                if Id_Level /= Call_Level then
!                   Error_Msg_N (Assertion_Level_Error_Msg, Ghost_Ref);
!                   Error_Msg_Name_1 := Chars (Id_Level);
!                   Error_Msg_N ("\& has assertion level %", Ghost_Ref);
!                   Error_Msg_Name_1 := Chars (Call_Level);
!                   Error_Msg_Node_2 := Callee;
!                   Error_Msg_N
!                     ("\& is modified by & with %", Ghost_Ref);
!                   Error_Msg_N
!                     ("\the levels of the call and call arguments must match",
!                      Ghost_Ref);
!                end if;
!             end Check_Procedure_Call_Policies;
! 
!             -------------------------
!             -- Is_Modified_By_Call --
!             -------------------------
! 
!             function Is_Modified_By_Call
!               (Call : Node_Id; Call_Arg : Node_Id; Callee : Entity_Id)
!                return Boolean
!             is
!                Form : Node_Id;
!                Act  : Node_Id;
!             begin
!                Act := First_Actual (Call);
!                Form := First_Formal (Callee);
! 
!                while Present (Form) and then Present (Act) loop
!                   if Act = Call_Arg then
!                      return
!                        Ekind (Form) in E_Out_Parameter | E_In_Out_Parameter;
!                   end if;
! 
!                   Next_Formal (Form);
!                   Next_Actual (Act);
!                end loop;
! 
!                return False;
!             end Is_Modified_By_Call;
! 
!          --  Start of processing for Is_OK_Statement
  
           begin
              --  An assignment statement is Ghost when the target is a Ghost
              --  entity.
  
              if Nkind (Stmt) = N_Assignment_Statement then
!                if Is_Ghost_Assignment (Stmt) then
!                   Check_Assignment_Levels
!                     (Get_Enclosing_Ghost_Entity (Name (Stmt)));
!                   return True;
!                end if;
  
              --  A procedure call is Ghost when it calls a Ghost procedure
  
              elsif Nkind (Stmt) = N_Procedure_Call_Statement then
!                if Is_Ghost_Procedure_Call (Stmt) then
!                   Check_Procedure_Call_Policies (Get_Subprogram_Entity (Stmt));
!                   return True;
!                end if;
  
              --  Special cases
  
*************** package body Ghost is
*** 450,472 ****
  
           --  Local variables
  
!          Par : Node_Id;
  
        --  Start of processing for Is_OK_Ghost_Context
  
        begin
-          --  The context is Ghost when it appears within a Ghost package or
-          --  subprogram.
- 
-          if Ghost_Mode > None then
-             return True;
- 
           --  Routine Expand_Record_Extension creates a parent subtype without
           --  inserting it into the tree. There is no good way of recognizing
           --  this special case as there is no parent. Try to approximate the
           --  context.
  
!          elsif No (Parent (Context)) and then Is_Tagged_Type (Ghost_Id) then
              return True;
  
           --  Otherwise climb the parent chain looking for a suitable Ghost
--- 664,681 ----
  
           --  Local variables
  
!          Par  : Node_Id;
!          Prev : Node_Id;
  
        --  Start of processing for Is_OK_Ghost_Context
  
        begin
           --  Routine Expand_Record_Extension creates a parent subtype without
           --  inserting it into the tree. There is no good way of recognizing
           --  this special case as there is no parent. Try to approximate the
           --  context.
  
!          if No (Parent (Context)) and then Is_Tagged_Type (Ghost_Id) then
              return True;
  
           --  Otherwise climb the parent chain looking for a suitable Ghost
*************** package body Ghost is
*** 474,496 ****
  
           else
              Par := Context;
              while Present (Par) loop
-                if Is_Ignored_Ghost_Node (Par) then
-                   return True;
- 
                 --  It is not possible to check correct use of Ghost entities
                 --  in generic instantiations until after the generic has been
                 --  resolved. Postpone that verification to after resolution.
  
!                elsif Nkind (Par) = N_Generic_Association then
                    return True;
  
                 --  A reference to a Ghost entity can appear within an aspect
!                --  specification (SPARK RM 6.9(10)). The precise checking will
                 --  occur when analyzing the corresponding pragma. We make an
                 --  exception for predicate aspects other than Ghost_Predicate
                 --  that only allow referencing a Ghost entity when the
!                --  corresponding type declaration is Ghost (SPARK RM 6.9(11)).
  
                 elsif Nkind (Par) = N_Aspect_Specification
                   and then
--- 683,703 ----
  
           else
              Par := Context;
+             Prev := Empty;
              while Present (Par) loop
                 --  It is not possible to check correct use of Ghost entities
                 --  in generic instantiations until after the generic has been
                 --  resolved. Postpone that verification to after resolution.
  
!                if Nkind (Par) = N_Generic_Association then
                    return True;
  
                 --  A reference to a Ghost entity can appear within an aspect
!                --  specification (SPARK RM 6.9(13)). The precise checking will
                 --  occur when analyzing the corresponding pragma. We make an
                 --  exception for predicate aspects other than Ghost_Predicate
                 --  that only allow referencing a Ghost entity when the
!                --  corresponding type declaration is Ghost (SPARK RM 6.9(14)).
  
                 elsif Nkind (Par) = N_Aspect_Specification
                   and then
*************** package body Ghost is
*** 501,507 ****
                    return True;
  
                 --  A Ghost type may be referenced in a use or use_type clause
!                --  (SPARK RM 6.9(10)).
  
                 elsif Present (Parent (Par))
                   and then Nkind (Parent (Par)) in N_Use_Package_Clause
--- 708,714 ----
                    return True;
  
                 --  A Ghost type may be referenced in a use or use_type clause
!                --  (SPARK RM 6.9(13)).
  
                 elsif Present (Parent (Par))
                   and then Nkind (Parent (Par)) in N_Use_Package_Clause
*************** package body Ghost is
*** 536,548 ****
                 then
                    return True;
  
                 elsif Is_OK_Declaration (Par) then
                    return True;
  
!                elsif Is_OK_Pragma (Par, Ghost_Id) then
                    return True;
  
!                elsif Is_OK_Statement (Par) then
                    return True;
  
                 --  Prevent the search from going too far
--- 743,763 ----
                 then
                    return True;
  
+                --  It is always legal to use a ghost prefix. More complex
+                --  scenarios are analyzed for the selector.
+ 
+                elsif Nkind (Par) = N_Selected_Component
+                  and then Prefix (Par) = Prev
+                then
+                   return True;
+ 
                 elsif Is_OK_Declaration (Par) then
                    return True;
  
!                elsif Is_OK_Pragma (Par) then
                    return True;
  
!                elsif Is_OK_Statement (Par, Ghost_Id, Prev) then
                    return True;
  
                 --  Prevent the search from going too far
*************** package body Ghost is
*** 551,556 ****
--- 766,772 ----
                    exit;
                 end if;
  
+                Prev := Par;
                 Par := Parent (Par);
              end loop;
  
*************** package body Ghost is
*** 576,603 ****
        ------------------------
  
        procedure Check_Ghost_Policy (Id : Entity_Id; Ref : Node_Id) is
!          Policy : constant Name_Id := Policy_In_Effect (Name_Ghost);
  
        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
             and then Known_To_Be_Assigned (Ref)
           then
              Error_Msg_Sloc := Sloc (Ref);
  
!             Error_Msg_N  ("incompatible ghost policies in effect", Ref);
!             Error_Msg_NE ("\& declared with ghost policy `Check`", Ref, Id);
!             Error_Msg_NE ("\& used # with ghost policy `Ignore`",  Ref, Id);
  
!          elsif Is_Ignored_Ghost_Entity (Id) and then Policy = Name_Check then
!             Error_Msg_Sloc := Sloc (Ref);
  
!             Error_Msg_N  ("incompatible ghost policies in effect",  Ref);
!             Error_Msg_NE ("\& declared with ghost policy `Ignore`", Ref, Id);
!             Error_Msg_NE ("\& used # with ghost policy `Check`",    Ref, Id);
           end if;
        end Check_Ghost_Policy;
  
--- 792,882 ----
        ------------------------
  
        procedure Check_Ghost_Policy (Id : Entity_Id; Ref : Node_Id) is
!          function Is_From_Aspect_Iterable (Ref : Node_Id) return Boolean;
!          --  Returns true when the node is contained within an Iterable aspect.
! 
!          function Is_From_Aspect_Iterable (Ref : Node_Id) return Boolean is
!             P : Node_Id := Parent (Ref);
!          begin
!             while Present (P) loop
!                if Nkind (P) = N_Aspect_Specification then
!                   return Get_Aspect_Id (P) = Aspect_Iterable;
!                end if;
!                P := Parent (P);
!             end loop;
!             return False;
!          end Is_From_Aspect_Iterable;
! 
!          --  Local variables
! 
!          Applic_Policy : Ghost_Mode_Type := Ghost_Config.Ghost_Mode;
!          Ghost_Region  : constant Node_Id := Ghost_Config.Current_Region;
! 
!       --  Start of processing for Check_Ghost_Policy
  
        begin
+          --  The policy is allowed to change within renaming and instantiation
+          --  statements.
+ 
+          if No (Ghost_Region)
+            or else Nkind (Ghost_Region)
+                    in N_Object_Renaming_Declaration
+                     | N_Package_Instantiation
+                     | N_Procedure_Instantiation
+                     | N_Subprogram_Renaming_Declaration
+          then
+             return;
+          end if;
+ 
+          --  The applied policy for procedure calls is the policy in effect at
+          --  the moment of the call.
+ 
+          if Ekind (Id) in E_Procedure then
+             Applic_Policy := Name_To_Ghost_Mode (Ghost_Policy_In_Effect (Id));
+          end if;
+ 
           --  The Ghost policy in effect a the point of declaration and at the
!          --  point of use must match (SPARK RM 6.9(18)).
  
           if Is_Checked_Ghost_Entity (Id)
!            and then Applic_Policy = Ignore
             and then Known_To_Be_Assigned (Ref)
           then
+             Error_Msg_N (Ghost_Policy_Error_Msg, Ref);
+             Error_Msg_Sloc := Sloc (Id);
+             Error_Msg_NE ("\& declared # with ghost policy `Check`", Ref, Id);
              Error_Msg_Sloc := Sloc (Ref);
+             Error_Msg_NE ("\& used # with ghost policy `Ignore`", Ref, Id);
+          end if;
  
!          --  A ghost entity E shall not be referenced within an aspect
!          --  specification [(including an aspect-specifying pragma)] which
!          --  specifies an aspect of an entity that is either non-ghost or not
!          --  assertion-level-dependent on E except in the following cases the
!          --  specified aspect is either Global, Depends, Refined_Global,
!          --  Refined_Depends, Initializes, Refined_State, or Iterable (SPARK RM
!          --  6.9(14)).
  
!          if No (Ghost_Region)
!            or else (Nkind (Ghost_Region) = N_Pragma
!                     and then Get_Pragma_Id (Ghost_Region)
!                              in Pragma_Global
!                               | Pragma_Depends
!                               | Pragma_Refined_Global
!                               | Pragma_Refined_Depends
!                               | Pragma_Initializes
!                               | Pragma_Refined_State)
!            or else Is_From_Aspect_Iterable (Ref)
!          then
!             return;
!          end if;
  
!          if Is_Ignored_Ghost_Entity (Id) and then Applic_Policy = Check then
!             Error_Msg_N (Ghost_Policy_Error_Msg, Ref);
!             Error_Msg_Sloc := Sloc (Id);
!             Error_Msg_NE ("\& declared # with ghost policy `Ignore`", Ref, Id);
!             Error_Msg_Sloc := Sloc (Ref);
!             Error_Msg_NE ("\& used # with ghost policy `Check`", Ref, Id);
           end if;
        end Check_Ghost_Policy;
  
*************** package body Ghost is
*** 638,643 ****
--- 917,926 ----
     --  Start of processing for Check_Ghost_Context
  
     begin
+       if Ghost_Context_Checks_Disabled then
+          return;
+       end if;
+ 
        --  Class-wide pre/postconditions of ignored pragmas are preanalyzed
        --  to report errors on wrong conditions; however, ignored pragmas may
        --  also have references to ghost entities and we must disable checking
*************** package body Ghost is
*** 654,672 ****
           return;
        end if;
  
!       --  Once it has been established that the reference to the Ghost entity
!       --  is within a suitable context, ensure that the policy at the point of
!       --  declaration and at the point of use match.
! 
!       if Is_OK_Ghost_Context (Ghost_Ref) then
!          if Present (Ghost_Id) then
!             Check_Ghost_Policy (Ghost_Id, Ghost_Ref);
!          end if;
! 
!       --  Otherwise the Ghost entity appears in a non-Ghost context and affects
!       --  its behavior or value (SPARK RM 6.9(10,11)).
  
!       else
           Error_Msg_N ("ghost entity cannot appear in this context", Ghost_Ref);
  
           --  When the Ghost entity appears in a pragma Predicate, explain the
--- 937,946 ----
           return;
        end if;
  
!       --  If the Ghost entity appears in a non-Ghost context and affects
!       --  its behavior or value (SPARK RM 6.9(13,14)).
  
!       if not Is_OK_Ghost_Context (Ghost_Ref) then
           Error_Msg_N ("ghost entity cannot appear in this context", Ghost_Ref);
  
           --  When the Ghost entity appears in a pragma Predicate, explain the
*************** package body Ghost is
*** 683,688 ****
--- 957,970 ----
                 & "or use a type invariant on a private type", Ghost_Ref);
           end if;
        end if;
+ 
+       --  Once it has been established that the reference to the Ghost entity
+       --  is within a suitable context, ensure that the policy at the point of
+       --  declaration and at the point of use match.
+ 
+       if Present (Ghost_Id) then
+          Check_Ghost_Policy (Ghost_Id, Ghost_Ref);
+       end if;
     end Check_Ghost_Context;
  
     ------------------------------------------------
*************** package body Ghost is
*** 730,736 ****
        --  The context is ghost when it appears within a Ghost package or
        --  subprogram.
  
!       if Ghost_Mode > None then
           return;
  
        --  The context is ghost if Formal is explicitly marked as ghost
--- 1012,1018 ----
        --  The context is ghost when it appears within a Ghost package or
        --  subprogram.
  
!       if Ghost_Config.Ghost_Mode > None then
           return;
  
        --  The context is ghost if Formal is explicitly marked as ghost
*************** package body Ghost is
*** 743,748 ****
--- 1025,1081 ----
        end if;
     end Check_Ghost_Context_In_Generic_Association;
  
+    -----------------------------------
+    -- Check_Valid_Ghost_Declaration --
+    -----------------------------------
+ 
+    procedure Check_Valid_Ghost_Declaration (N : Node_Id) is
+       procedure Check_Valid_Assertion_Level (Id : Entity_Id; Ref : Node_Id);
+       --  Check that the the assertion level of the declared entity is
+       --  compatible with assertion level of the ghost region.
+ 
+       ---------------------------------
+       -- Check_Valid_Assertion_Level --
+       ---------------------------------
+ 
+       procedure Check_Valid_Assertion_Level (Id : Entity_Id; Ref : Node_Id) is
+          Id_Level     : constant Entity_Id := Ghost_Assertion_Level (Id);
+          Region_Level : constant Entity_Id :=
+            Ghost_Config.Ghost_Mode_Assertion_Level;
+       begin
+          --  This check is not applied for generic isntantiations
+ 
+          if Is_Generic_Instance (Id) then
+             return;
+          end if;
+ 
+          if not Is_Assertion_Level_Dependent (Id_Level, Region_Level) then
+             Error_Msg_Sloc := Sloc (Ref);
+ 
+             Error_Msg_N (Assertion_Level_Error_Msg, Ref);
+             Error_Msg_Name_1 := Chars (Id_Level);
+             Error_Msg_NE ("\& has assertion level %", Ref, Id);
+             Error_Msg_Name_1 := Chars (Region_Level);
+             Error_Msg_NE ("\& is declared within a region with %", Ref, Id);
+             Error_Msg_Name_1 := Chars (Region_Level);
+             Error_Msg_NE ("\assertion level of & should depend on %", Ref, Id);
+          end if;
+       end Check_Valid_Assertion_Level;
+ 
+       --  Local variables
+ 
+       Id : constant Entity_Id := Defining_Entity (N);
+ 
+    --  Start of processing for Check_Valid_Ghost_Declaration
+    begin
+       if not Is_Ghost_Entity (Id) or else Ghost_Config.Ghost_Mode = None
+       then
+          return;
+       end if;
+ 
+       Check_Valid_Assertion_Level (Id, N);
+    end Check_Valid_Ghost_Declaration;
+ 
     ---------------------------------------------
     -- Check_Ghost_Formal_Procedure_Or_Package --
     ---------------------------------------------
*************** package body Ghost is
*** 787,793 ****
        Formal     : Entity_Id;
        Is_Default : Boolean := False)
     is
!       Actual_Obj : constant Entity_Id := Get_Enclosing_Deep_Object (Actual);
     begin
        if not Is_Ghost_Entity (Formal) then
           return;
--- 1120,1126 ----
        Formal     : Entity_Id;
        Is_Default : Boolean := False)
     is
!       Actual_Obj : constant Entity_Id := Get_Enclosing_Ghost_Entity (Actual);
     begin
        if not Is_Ghost_Entity (Formal) then
           return;
*************** package body Ghost is
*** 819,947 ****
        Over_Subp : Entity_Id;
  
     begin
!       if Present (Subp) and then Present (Overridden_Subp) then
!          Over_Subp := Ultimate_Alias (Overridden_Subp);
!          Deriv_Typ := Find_Dispatching_Type (Subp);
  
!          --  A Ghost primitive of a non-Ghost type extension cannot override an
!          --  inherited non-Ghost primitive (SPARK RM 6.9(8)).
  
!          if Is_Ghost_Entity (Subp)
!            and then Present (Deriv_Typ)
!            and then not Is_Ghost_Entity (Deriv_Typ)
!            and then not Is_Ghost_Entity (Over_Subp)
!            and then not Is_Abstract_Subprogram (Over_Subp)
!          then
!             Error_Msg_N ("incompatible overriding in effect", Subp);
  
!             Error_Msg_Sloc := Sloc (Over_Subp);
!             Error_Msg_N ("\& declared # as non-ghost subprogram", Subp);
  
!             Error_Msg_Sloc := Sloc (Subp);
!             Error_Msg_N ("\overridden # with ghost subprogram", Subp);
!          end if;
  
!          --  A non-Ghost primitive of a type extension cannot override an
!          --  inherited Ghost primitive (SPARK RM 6.9(8)).
  
!          if Is_Ghost_Entity (Over_Subp)
!            and then not Is_Ghost_Entity (Subp)
!            and then not Is_Abstract_Subprogram (Subp)
!          then
!             Error_Msg_N ("incompatible overriding in effect", Subp);
  
!             Error_Msg_Sloc := Sloc (Over_Subp);
!             Error_Msg_N ("\& declared # as ghost subprogram", Subp);
  
!             Error_Msg_Sloc := Sloc (Subp);
!             Error_Msg_N ("\overridden # with non-ghost subprogram", Subp);
!          end if;
  
!          if Present (Deriv_Typ)
!            and then not Is_Ignored_Ghost_Entity (Deriv_Typ)
!          then
!             --  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
  
!                --  Both the parent subprogram and overriding subprogram are
!                --  ignored Ghost.
  
!                if Is_Ignored_Ghost_Entity (Over_Subp) then
!                   null;
  
!                --  The parent subprogram carries policy Check
  
!                elsif Is_Checked_Ghost_Entity (Over_Subp) then
!                   Error_Msg_N
!                     ("incompatible ghost policies in effect", Subp);
  
!                   Error_Msg_Sloc := Sloc (Over_Subp);
!                   Error_Msg_N
!                     ("\& declared # with ghost policy `Check`", Subp);
  
!                   Error_Msg_Sloc := Sloc (Subp);
!                   Error_Msg_N
!                     ("\overridden # with ghost policy `Ignore`", Subp);
  
!                --  The parent subprogram is non-Ghost
  
!                else
!                   Error_Msg_N
!                     ("incompatible ghost policies in effect", Subp);
  
!                   Error_Msg_Sloc := Sloc (Over_Subp);
!                   Error_Msg_N ("\& declared # as non-ghost subprogram", Subp);
  
!                   Error_Msg_Sloc := Sloc (Subp);
!                   Error_Msg_N
!                     ("\overridden # with ghost policy `Ignore`", Subp);
!                end if;
  
!             --  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
  
!                --  Both the parent subprogram and the overriding subprogram are
!                --  ignored Ghost.
  
!                if Is_Ignored_Ghost_Entity (Subp) then
!                   null;
  
!                --  The overriding subprogram carries policy Check
  
!                elsif Is_Checked_Ghost_Entity (Subp) then
!                   Error_Msg_N
!                     ("incompatible ghost policies in effect", Subp);
  
!                   Error_Msg_Sloc := Sloc (Over_Subp);
!                   Error_Msg_N
!                     ("\& declared # with ghost policy `Ignore`", Subp);
  
!                   Error_Msg_Sloc := Sloc (Subp);
!                   Error_Msg_N
!                     ("\overridden # with Ghost policy `Check`", Subp);
  
!                --  The overriding subprogram is non-Ghost
  
!                else
!                   Error_Msg_N
!                     ("incompatible ghost policies in effect", Subp);
  
!                   Error_Msg_Sloc := Sloc (Over_Subp);
!                   Error_Msg_N
!                     ("\& declared # with ghost policy `Ignore`", Subp);
  
!                   Error_Msg_Sloc := Sloc (Subp);
!                   Error_Msg_N
!                     ("\overridden # with non-ghost subprogram", Subp);
!                end if;
              end if;
           end if;
        end if;
--- 1152,1278 ----
        Over_Subp : Entity_Id;
  
     begin
!       if No (Subp) or else No (Overridden_Subp) then
!          return;
!       end if;
  
!       Over_Subp := Ultimate_Alias (Overridden_Subp);
!       Deriv_Typ := Find_Dispatching_Type (Subp);
  
!       --  A Ghost primitive of a non-Ghost type extension cannot override an
!       --  inherited non-Ghost primitive (SPARK RM 6.9(10)).
  
!       if Is_Ghost_Entity (Subp)
!          and then Present (Deriv_Typ)
!          and then not Is_Ghost_Entity (Deriv_Typ)
!          and then not Is_Ghost_Entity (Over_Subp)
!          and then not Is_Abstract_Subprogram (Over_Subp)
!       then
!          Error_Msg_N ("incompatible overriding in effect", Subp);
  
!          Error_Msg_Sloc := Sloc (Over_Subp);
!          Error_Msg_N ("\& declared # as non-ghost subprogram", Subp);
  
!          Error_Msg_Sloc := Sloc (Subp);
!          Error_Msg_N ("\overridden # with ghost subprogram", Subp);
!       end if;
  
!       --  A non-Ghost primitive of a type extension cannot override an
!       --  inherited Ghost primitive (SPARK RM 6.9(10)).
  
!       if Is_Ghost_Entity (Over_Subp)
!         and then not Is_Ghost_Entity (Subp)
!         and then not Is_Abstract_Subprogram (Subp)
!       then
!          Error_Msg_N ("incompatible overriding in effect", Subp);
  
!          Error_Msg_Sloc := Sloc (Over_Subp);
!          Error_Msg_N ("\& declared # as ghost subprogram", Subp);
  
!          Error_Msg_Sloc := Sloc (Subp);
!          Error_Msg_N ("\overridden # with non-ghost subprogram", Subp);
!       end if;
  
!       if Present (Deriv_Typ)
!          and then not Is_Ignored_Ghost_Entity (Deriv_Typ)
!       then
!          --  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(21)).
  
!          if Is_Ignored_Ghost_Entity (Subp) then
  
!             --  Both the parent subprogram and overriding subprogram are
!             --  ignored Ghost.
  
!             if Is_Ignored_Ghost_Entity (Over_Subp) then
!                null;
  
!             --  The parent subprogram carries policy Check
  
!             elsif Is_Checked_Ghost_Entity (Over_Subp) then
!                Error_Msg_N (Ghost_Policy_Error_Msg, Subp);
  
!                Error_Msg_Sloc := Sloc (Over_Subp);
!                Error_Msg_N
!                   ("\& declared # with ghost policy `Check`", Subp);
  
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_N
!                   ("\overridden # with ghost policy `Ignore`", Subp);
  
!             --  The parent subprogram is non-Ghost
  
!             else
!                Error_Msg_N (Ghost_Policy_Error_Msg, Subp);
  
!                Error_Msg_Sloc := Sloc (Over_Subp);
!                Error_Msg_N ("\& declared # as non-ghost subprogram", Subp);
  
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_N
!                   ("\overridden # with ghost policy `Ignore`", Subp);
!             end if;
  
!          --  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(21)).
  
!          elsif Is_Ignored_Ghost_Entity (Over_Subp) then
  
!             --  Both the parent subprogram and the overriding subprogram are
!             --  ignored Ghost.
  
!             if Is_Ignored_Ghost_Entity (Subp) then
!                null;
  
!             --  The overriding subprogram carries policy Check
  
!             elsif Is_Checked_Ghost_Entity (Subp) then
!                Error_Msg_N (Ghost_Policy_Error_Msg, Subp);
  
!                Error_Msg_Sloc := Sloc (Over_Subp);
!                Error_Msg_N
!                   ("\& declared # with ghost policy `Ignore`", Subp);
  
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_N
!                   ("\overridden # with Ghost policy `Check`", Subp);
  
!             --  The overriding subprogram is non-Ghost
  
!             else
!                Error_Msg_N (Ghost_Policy_Error_Msg, Subp);
  
!                Error_Msg_Sloc := Sloc (Over_Subp);
!                Error_Msg_N
!                   ("\& declared # with ghost policy `Ignore`", Subp);
! 
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_N
!                   ("\overridden # with non-ghost subprogram", Subp);
              end if;
           end if;
        end if;
*************** package body Ghost is
*** 952,992 ****
     ---------------------------
  
     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)
!            and then Is_Ignored_Ghost_Entity (Typ)
!          then
!             Error_Msg_N ("incompatible ghost policies in effect", Prim);
  
!             Error_Msg_Sloc := Sloc (Typ);
!             Error_Msg_NE
!               ("\tagged type & declared # with ghost policy `Ignore`",
!                Prim, Typ);
  
!             Error_Msg_Sloc := Sloc (Prim);
!             Error_Msg_N
!               ("\primitive subprogram & declared # with ghost policy `Check`",
!                Prim);
  
!          elsif Is_Ignored_Ghost_Entity (Prim)
!            and then Is_Checked_Ghost_Entity (Typ)
!          then
!             Error_Msg_N ("incompatible ghost policies in effect", Prim);
  
!             Error_Msg_Sloc := Sloc (Typ);
!             Error_Msg_NE
!               ("\tagged type & declared # with ghost policy `Check`",
!                Prim, Typ);
  
-             Error_Msg_Sloc := Sloc (Prim);
-             Error_Msg_N
-               ("\primitive subprogram & declared # with ghost policy `Ignore`",
-                Prim);
-          end if;
        end if;
     end Check_Ghost_Primitive;
  
--- 1283,1330 ----
     ---------------------------
  
     procedure Check_Ghost_Primitive (Prim : Entity_Id; Typ : Entity_Id) is
+       Prim_Level : Entity_Id;
+       Typ_Level : Entity_Id;
     begin
+       if not Is_Tagged_Type (Typ) then
+          return;
+       end if;
+ 
        --  The Ghost policy in effect at the point of declaration of a primitive
!       --  operation and a tagged type must match (SPARK RM 6.9(21)).
  
!       if Is_Checked_Ghost_Entity (Prim)
!         and then Is_Ignored_Ghost_Entity (Typ)
!       then
!          Error_Msg_N (Ghost_Policy_Error_Msg, Prim);
  
!          Error_Msg_Sloc := Sloc (Typ);
!          Error_Msg_NE
!             ("\tagged type & declared # with ghost policy `Ignore`",
!             Prim, Typ);
  
!          Error_Msg_Sloc := Sloc (Prim);
!          Error_Msg_N
!             ("\primitive subprogram & declared # with ghost policy `Check`",
!             Prim);
!       end if;
  
!       Prim_Level := Ghost_Assertion_Level (Prim);
!       Typ_Level := Ghost_Assertion_Level (Typ);
  
!       if not Is_Assertion_Level_Dependent (Prim_Level, Typ_Level) then
!          Error_Msg_N (Assertion_Level_Error_Msg, Prim);
!          Error_Msg_Name_1 := Chars (Typ_Level);
!          Error_Msg_Sloc := Sloc (Typ);
!          Error_Msg_NE ("\tagged type & declared # with %", Prim, Typ);
!          Error_Msg_Name_1 := Chars (Prim_Level);
!          Error_Msg_Sloc := Sloc (Prim);
!          Error_Msg_NE
!            ("\primitive subprogram & declared # with %", Prim, Prim);
!          Error_Msg_Name_1 := Chars (Typ_Level);
!          Error_Msg_NE
!            ("\assertion level of & should depend on %", Prim, Prim);
  
        end if;
     end Check_Ghost_Primitive;
  
*************** package body Ghost is
*** 1000,1047 ****
        Constit    : Node_Id;
        Constit_Id : Entity_Id)
     is
     begin
!       if Is_Ghost_Entity (State_Id) then
!          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)
!             then
!                Error_Msg_Sloc := Sloc (Constit);
!                SPARK_Msg_N ("incompatible ghost policies in effect", State);
  
!                SPARK_Msg_NE
!                  ("\abstract state & declared with ghost policy `Check`",
!                   State, State_Id);
!                SPARK_Msg_NE
!                  ("\constituent & declared # with ghost policy `Ignore`",
!                   State, Constit_Id);
  
!             elsif Is_Ignored_Ghost_Entity (State_Id)
!               and then Is_Checked_Ghost_Entity (Constit_Id)
!             then
!                Error_Msg_Sloc := Sloc (Constit);
!                SPARK_Msg_N ("incompatible ghost policies in effect", State);
  
!                SPARK_Msg_NE
!                  ("\abstract state & declared with ghost policy `Ignore`",
!                   State, State_Id);
!                SPARK_Msg_NE
!                  ("\constituent & declared # with ghost policy `Check`",
!                   State, Constit_Id);
!             end if;
  
!             --  A constituent of a Ghost abstract state must be a Ghost entity
!             --  (SPARK RM 7.2.2(12)).
  
-          else
-             SPARK_Msg_NE
-               ("constituent of ghost state & must be ghost",
-                Constit, State_Id);
-          end if;
        end if;
     end Check_Ghost_Refinement;
  
--- 1338,1393 ----
        Constit    : Node_Id;
        Constit_Id : Entity_Id)
     is
+       State_Level   : Entity_Id;
+       Constit_Level : Entity_Id;
     begin
!       --  Only check ghost states
  
!       if not Is_Ghost_Entity (State_Id) then
!          return;
!       end if;
  
!       --  A constituent of a Ghost abstract state must be a Ghost entity
!       --  (SPARK RM 7.2.2(12)).
  
!       if not Is_Ghost_Entity (Constit_Id) then
!          SPARK_Msg_NE
!             ("constituent of ghost state & must be ghost",
!             Constit, State_Id);
!       end if;
  
!       --  The Ghost policy in effect at the point of an ignored abstract state
!       --  cannot be check (SPARK RM 6.9(20)).
  
!       if Is_Ignored_Ghost_Entity (State_Id)
!         and then Is_Checked_Ghost_Entity (Constit_Id)
!       then
!          SPARK_Msg_N (Ghost_Policy_Error_Msg, State);
!          Error_Msg_Sloc := Sloc (State_Id);
!          SPARK_Msg_NE
!             ("\abstract state & declared # with ghost policy `Ignore`",
!             State, State_Id);
!          Error_Msg_Sloc := Sloc (Constit_Id);
!          SPARK_Msg_NE
!             ("\constituent & declared # with ghost policy `Check`",
!             State, Constit_Id);
!       end if;
  
!       State_Level := Ghost_Assertion_Level (State_Id);
!       Constit_Level := Ghost_Assertion_Level (Constit_Id);
! 
!       if not Is_Assertion_Level_Dependent (Constit_Level, State_Level) then
!          SPARK_Msg_N (Assertion_Level_Error_Msg, State);
!          Error_Msg_Name_1 := Chars (State_Level);
!          Error_Msg_Sloc := Sloc (State_Id);
!          SPARK_Msg_NE ("\abstract state & declared # with %", State, State_Id);
!          Error_Msg_Name_1 := Chars (Constit_Level);
!          Error_Msg_Sloc := Sloc (Constit_Id);
!          SPARK_Msg_NE ("\constituent & declared # with %", State, Constit_Id);
!          Error_Msg_Name_1 := Chars (State_Level);
!          SPARK_Msg_NE
!            ("\assertion level of & should depend on %", State, Constit_Id);
  
        end if;
     end Check_Ghost_Refinement;
  
*************** package body Ghost is
*** 1070,1083 ****
              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
              Error_Msg_N ("ghost type & cannot be concurrent", Conc_Typ);
           end if;
  
!          --  A Ghost type cannot be effectively volatile (SPARK RM 6.9(7))
  
           if Is_Effectively_Volatile (Full_Typ) then
              Error_Msg_N ("ghost type & cannot be volatile", Full_Typ);
--- 1416,1429 ----
              Conc_Typ := Typ;
           end if;
  
!          --  A Ghost type cannot be concurrent (SPARK RM 6.9(22)). Verify this
           --  legality rule first to give a finer-grained diagnostic.
  
           if Present (Conc_Typ) then
              Error_Msg_N ("ghost type & cannot be concurrent", Conc_Typ);
           end if;
  
!          --  A Ghost type cannot be effectively volatile (SPARK RM 6.9(9))
  
           if Is_Effectively_Volatile (Full_Typ) then
              Error_Msg_N ("ghost type & cannot be volatile", Full_Typ);
*************** package body Ghost is
*** 1085,1110 ****
        end if;
     end Check_Ghost_Type;
  
!    ------------------
!    -- Ghost_Entity --
!    ------------------
  
!    function Ghost_Entity (Ref : Node_Id) return Entity_Id is
!       Obj_Ref : constant Node_Id := Ultimate_Prefix (Ref);
  
     begin
!       --  When the reference denotes a subcomponent, recover the related whole
!       --  object (SPARK RM 6.9(1)).
  
!       if Is_Entity_Name (Obj_Ref) then
!          return Entity (Obj_Ref);
  
!       --  Otherwise the reference cannot possibly denote a Ghost entity
  
        else
!          return Empty;
        end if;
!    end Ghost_Entity;
  
     --------------------------------
     -- Implements_Ghost_Interface --
--- 1431,1572 ----
        end if;
     end Check_Ghost_Type;
  
!    ----------------------
!    -- Get_Ghost_Aspect --
!    ----------------------
  
!    function Get_Ghost_Aspect (N : Node_Id) return Node_Id is
!       Asp : Node_Id;
!    begin
!       if not Permits_Aspect_Specifications (N) then
!          return Empty;
!       end if;
! 
!       Asp := First (Aspect_Specifications (N));
!       while Present (Asp) loop
!          if Chars (Identifier (Asp)) = Name_Ghost then
!             return Asp;
!          end if;
  
+          Next (Asp);
+       end loop;
+ 
+       return Empty;
+    end Get_Ghost_Aspect;
+ 
+    ----------------------
+    -- Get_Ghost_Pragma --
+    ----------------------
+ 
+    function Get_Ghost_Pragma (N : Node_Id) return Node_Id is
+       Decl : Node_Id := Empty;
     begin
!       --  When the context is a [generic] package declaration, pragma Ghost
!       --  resides in the visible declarations.
  
!       if Nkind (N) in N_Generic_Package_Declaration | N_Package_Declaration
!       then
!          Decl := First (Visible_Declarations (Specification (N)));
  
!       --  When the context is a package or a subprogram body, pragma Ghost
!       --  resides in the declarative part.
! 
!       elsif Nkind (N) in N_Package_Body | N_Subprogram_Body then
!          Decl := First (Declarations (N));
! 
!       --  Otherwise pragma Ghost appears in the declarations following N
! 
!       elsif Is_List_Member (N) then
!          Decl := Next (N);
!       end if;
! 
!       while Present (Decl) loop
!          if Nkind (Decl) = N_Pragma
!            and then Pragma_Name (Decl) = Name_Ghost
!          then
!             return Decl;
! 
!          --  A source construct ends the region where pragma Ghost may appear,
!          --  stop the traversal. Check the original node as source constructs
!          --  may be rewritten into something else by expansion.
! 
!          elsif Comes_From_Source (Original_Node (Decl)) then
!             exit;
!          end if;
! 
!          Next (Decl);
!       end loop;
! 
!       return Empty;
!    end Get_Ghost_Pragma;
! 
!    -------------------------------
!    -- Get_Ghost_Assertion_Level --
!    -------------------------------
! 
!    function Get_Ghost_Assertion_Level (N : Node_Id) return Entity_Id is
!       Ghost_Asp  : constant Node_Id := Get_Ghost_Aspect (N);
!       Ghost_Prag : Node_Id;
! 
!    begin
!       if Present (Ghost_Asp) then
!          return Assertion_Level_From_Arg (Expression (Ghost_Asp));
!       end if;
  
+       Ghost_Prag := Get_Ghost_Pragma (N);
+       if Present (Ghost_Prag) then
+          return
+            Assertion_Level_From_Arg
+              (First (Pragma_Argument_Associations (Ghost_Prag)));
+       end if;
+ 
+       return Empty;
+    end Get_Ghost_Assertion_Level;
+ 
+    -------------------------------------
+    -- Ghost_Assertion_Level_In_Effect --
+    -------------------------------------
+ 
+    function Ghost_Assertion_Level_In_Effect (Id : Entity_Id) return Entity_Id
+    is
+    begin
+       if Ghost_Config.Is_Inside_Statement_Or_Pragma
+         and then Is_Implicit_Ghost (Id)
+       then
+          return Ghost_Config.Ghost_Mode_Assertion_Level;
        else
!          return Ghost_Assertion_Level (Id);
        end if;
!    end Ghost_Assertion_Level_In_Effect;
! 
!    ----------------------------
!    -- Ghost_Policy_In_Effect --
!    ----------------------------
! 
!    function Ghost_Policy_In_Effect (Id : Entity_Id) return Name_Id is
!       Level     : constant Entity_Id := Ghost_Assertion_Level (Id);
!       Level_Nam : constant Name_Id :=
!         (if No (Level) then No_Name else Chars (Level));
!    begin
!       if Present (Ghost_Config.Ignored_Ghost_Region) then
!          return Name_Ignore;
!       elsif Ghost_Config.Is_Inside_Statement_Or_Pragma
!         and then Is_Implicit_Ghost (Id)
!       then
!          case Ghost_Config.Ghost_Mode is
!             when Check =>
!                return Name_Check;
! 
!             when Ignore =>
!                return Name_Ignore;
! 
!             when None =>
!                return No_Name;
!          end case;
!       else
!          return Policy_In_Effect (Name_Ghost, Level_Nam);
!       end if;
!    end Ghost_Policy_In_Effect;
  
     --------------------------------
     -- Implements_Ghost_Interface --
*************** package body Ghost is
*** 1144,1191 ****
        Set_Ignored_Ghost_Recording_Proc (Record_Ignored_Ghost_Node'Access);
     end Initialize;
  
-    ------------------------
-    -- Install_Ghost_Mode --
-    ------------------------
- 
-    procedure Install_Ghost_Mode (Mode : Ghost_Mode_Type) is
-    begin
-       Install_Ghost_Region (Mode, Empty);
-    end Install_Ghost_Mode;
- 
     --------------------------
     -- Install_Ghost_Region --
     --------------------------
  
!    procedure Install_Ghost_Region (Mode : Ghost_Mode_Type; N : Node_Id) is
     begin
        --  The context is already within an ignored Ghost region. Maintain the
        --  start of the outermost ignored Ghost region.
  
!       if Present (Ignored_Ghost_Region) then
           null;
  
        --  The current region is the outermost ignored Ghost region. Save its
        --  starting node.
  
        elsif Present (N) and then Mode = Ignore then
!          Ignored_Ghost_Region := N;
  
        --  Otherwise the current region is not ignored, nothing to save
  
        else
!          Ignored_Ghost_Region := Empty;
        end if;
  
!       Ghost_Mode := Mode;
     end Install_Ghost_Region;
  
!    procedure Install_Ghost_Region (Mode : Name_Id; N : Node_Id) is
     begin
!       Install_Ghost_Region (Name_To_Ghost_Mode (Mode), N);
     end Install_Ghost_Region;
  
     -------------------------
     -- Is_Ghost_Assignment --
     -------------------------
  
--- 1606,1673 ----
        Set_Ignored_Ghost_Recording_Proc (Record_Ignored_Ghost_Node'Access);
     end Initialize;
  
     --------------------------
     -- Install_Ghost_Region --
     --------------------------
  
!    procedure Install_Ghost_Region
!      (Mode  : Ghost_Mode_Type;
!       N     : Node_Id;
!       Level : Entity_Id)
!    is
     begin
        --  The context is already within an ignored Ghost region. Maintain the
        --  start of the outermost ignored Ghost region.
  
!       if Present (Ghost_Config.Ignored_Ghost_Region) then
           null;
  
        --  The current region is the outermost ignored Ghost region. Save its
        --  starting node.
  
        elsif Present (N) and then Mode = Ignore then
!          Ghost_Config.Ignored_Ghost_Region := N;
  
        --  Otherwise the current region is not ignored, nothing to save
  
        else
!          Ghost_Config.Ignored_Ghost_Region := Empty;
        end if;
  
!       Ghost_Config.Current_Region := N;
!       Ghost_Config.Ghost_Mode := Mode;
!       Ghost_Config.Ghost_Mode_Assertion_Level := Level;
! 
!       if Nkind (Ghost_Config.Current_Region)
!          in N_Statement_Other_Than_Procedure_Call
!           | N_Procedure_Call_Statement
!           | N_Pragma
!       then
!          Ghost_Config.Is_Inside_Statement_Or_Pragma := True;
!       end if;
     end Install_Ghost_Region;
  
!    procedure Install_Ghost_Region
!      (Mode : Name_Id; N : Node_Id; Level : Entity_Id) is
     begin
!       Install_Ghost_Region (Name_To_Ghost_Mode (Mode), N, Level);
     end Install_Ghost_Region;
  
     -------------------------
+    -- Is_Compatible_Level --
+    -------------------------
+ 
+    function Is_Assertion_Level_Dependent
+      (Self : Entity_Id; Other : Entity_Id) return Boolean is
+    begin
+       return
+         Self = Standard_Level_Default
+         or else Other = Standard_Level_Default
+         or else Is_Same_Or_Depends_On_Level (Self, Other)
+         or else Is_Same_Or_Depends_On_Level (Self, Standard_Level_Static);
+    end Is_Assertion_Level_Dependent;
+ 
+    -------------------------
     -- Is_Ghost_Assignment --
     -------------------------
  
*************** package body Ghost is
*** 1197,1203 ****
        --  entity.
  
        if Nkind (N) = N_Assignment_Statement then
!          Id := Ghost_Entity (Name (N));
  
           return Present (Id) and then Is_Ghost_Entity (Id);
        end if;
--- 1679,1685 ----
        --  entity.
  
        if Nkind (N) = N_Assignment_Statement then
!          Id := Get_Enclosing_Ghost_Entity (Name (N));
  
           return Present (Id) and then Is_Ghost_Entity (Id);
        end if;
*************** package body Ghost is
*** 1255,1261 ****
        --  A procedure call is Ghost when it invokes a Ghost procedure
  
        if Nkind (N) = N_Procedure_Call_Statement then
!          Id := Ghost_Entity (Name (N));
  
           return Present (Id) and then Is_Ghost_Entity (Id);
        end if;
--- 1737,1743 ----
        --  A procedure call is Ghost when it invokes a Ghost procedure
  
        if Nkind (N) = N_Procedure_Call_Statement then
!          Id := Get_Enclosing_Ghost_Entity (Name (N));
  
           return Present (Id) and then Is_Ghost_Entity (Id);
        end if;
*************** package body Ghost is
*** 1294,1300 ****
  
        return
          Nkind (N) = N_Compilation_Unit
!           and then Is_Ignored_Ghost_Entity
                       (Defining_Entity (Ultimate_Original_Node (Unit (N))));
     end Is_Ignored_Ghost_Unit;
  
--- 1776,1782 ----
  
        return
          Nkind (N) = N_Compilation_Unit
!           and then Is_Ignored_Ghost_Entity_In_Codegen
                       (Defining_Entity (Ultimate_Original_Node (Unit (N))));
     end Is_Ignored_Ghost_Unit;
  
*************** package body Ghost is
*** 1311,1347 ****
        -----------------------
  
        function Enables_Ghostness (Arg : Node_Id) return Boolean is
-          Expr : Node_Id;
- 
        begin
!          Expr := Arg;
! 
!          if Nkind (Expr) = N_Pragma_Argument_Association then
!             Expr := Get_Pragma_Arg (Expr);
!          end if;
! 
!          --  Determine whether the expression of the aspect or pragma is static
!          --  and denotes True.
! 
!          if Present (Expr) then
!             Preanalyze_And_Resolve (Expr);
! 
!             return
!               Is_OK_Static_Expression (Expr)
!                 and then Is_True (Expr_Value (Expr));
! 
!          --  Otherwise Ghost defaults to True
  
!          else
!             return True;
!          end if;
        end Enables_Ghostness;
  
        --  Local variables
  
        Id      : constant Entity_Id := Defining_Entity (N);
        Asp     : Node_Id;
!       Decl    : Node_Id;
        Prev_Id : Entity_Id;
  
     --  Start of processing for Is_Subject_To_Ghost
--- 1793,1810 ----
        -----------------------
  
        function Enables_Ghostness (Arg : Node_Id) return Boolean is
        begin
!          --  Ghostness is enabled if the argument implies a default assertion
!          --  level or it is explicitly a reference to an assertion level.
  
!          return Present (Assertion_Level_From_Arg (Arg));
        end Enables_Ghostness;
  
        --  Local variables
  
        Id      : constant Entity_Id := Defining_Entity (N);
        Asp     : Node_Id;
!       Prag    : Node_Id;
        Prev_Id : Entity_Id;
  
     --  Start of processing for Is_Subject_To_Ghost
*************** package body Ghost is
*** 1374,1429 ****
  
        --  Examine the aspect specifications (if any) looking for aspect Ghost
  
!       if Permits_Aspect_Specifications (N) then
!          Asp := First (Aspect_Specifications (N));
!          while Present (Asp) loop
!             if Chars (Identifier (Asp)) = Name_Ghost then
!                return Enables_Ghostness (Expression (Asp));
!             end if;
  
!             Next (Asp);
!          end loop;
        end if;
  
!       Decl := Empty;
! 
!       --  When the context is a [generic] package declaration, pragma Ghost
!       --  resides in the visible declarations.
! 
!       if Nkind (N) in N_Generic_Package_Declaration | N_Package_Declaration
!       then
!          Decl := First (Visible_Declarations (Specification (N)));
! 
!       --  When the context is a package or a subprogram body, pragma Ghost
!       --  resides in the declarative part.
! 
!       elsif Nkind (N) in N_Package_Body | N_Subprogram_Body then
!          Decl := First (Declarations (N));
  
!       --  Otherwise pragma Ghost appears in the declarations following N
  
!       elsif Is_List_Member (N) then
!          Decl := Next (N);
        end if;
  
-       while Present (Decl) loop
-          if Nkind (Decl) = N_Pragma
-            and then Pragma_Name (Decl) = Name_Ghost
-          then
-             return
-               Enables_Ghostness (First (Pragma_Argument_Associations (Decl)));
- 
-          --  A source construct ends the region where pragma Ghost may appear,
-          --  stop the traversal. Check the original node as source constructs
-          --  may be rewritten into something else by expansion.
- 
-          elsif Comes_From_Source (Original_Node (Decl)) then
-             exit;
-          end if;
- 
-          Next (Decl);
-       end loop;
- 
        return False;
     end Is_Subject_To_Ghost;
  
--- 1837,1857 ----
  
        --  Examine the aspect specifications (if any) looking for aspect Ghost
  
!       Asp := Get_Ghost_Aspect (N);
  
!       if Present (Asp) then
!          return Enables_Ghostness (Expression (Asp));
        end if;
  
!       --  Examine the following pragmas for an applicable Ghost pragma
  
!       Prag := Get_Ghost_Pragma (N);
  
!       if Present (Prag) then
!          return
!            Enables_Ghostness (First (Pragma_Argument_Associations (Prag)));
        end if;
  
        return False;
     end Is_Subject_To_Ghost;
  
*************** package body Ghost is
*** 1448,1552 ****
        --  where P is a package, X is a record, and Comp is an array, we need
        --  to check the ghost flags of X.
  
!       Orig_Lhs : constant Node_Id := Name (N);
!    begin
!       --  Ghost assignments are irrelevant when the expander is inactive, and
!       --  processing them in that mode can lead to spurious errors.
  
!       if Expander_Active then
!          --  Cases where full analysis is needed, involving array indexing
!          --  which would otherwise be missing array-bounds checks:
  
!          if not Analyzed (Orig_Lhs)
!            and then
!              ((Nkind (Orig_Lhs) = N_Indexed_Component
!                 and then Nkind (Prefix (Orig_Lhs)) = N_Selected_Component
!                 and then Nkind (Prefix (Prefix (Orig_Lhs))) =
!                            N_Indexed_Component)
!               or else
!              (Nkind (Orig_Lhs) = N_Selected_Component
!               and then Nkind (Prefix (Orig_Lhs)) = N_Indexed_Component
!               and then Nkind (Prefix (Prefix (Orig_Lhs))) =
!                          N_Selected_Component
!               and then Nkind (Parent (N)) /= N_Loop_Statement))
           then
!             Analyze (Orig_Lhs);
           end if;
  
!          --  Make sure Lhs is at least preanalyzed, so we can tell whether
!          --  it denotes a ghost variable. In some cases we need to do a full
!          --  analysis, or else the back end gets confused. Note that in the
!          --  preanalysis case, we are preanalyzing a copy of the left-hand
!          --  side name, temporarily attached to the tree.
  
!          declare
!             Lhs : constant Node_Id :=
!               (if Analyzed (Orig_Lhs) then Orig_Lhs
!                else New_Copy_Tree (Orig_Lhs));
!          begin
!             if not Analyzed (Lhs) then
!                Set_Name   (N, Lhs);
!                Set_Parent (Lhs, N);
!                Preanalyze_Without_Errors (Lhs);
!                Set_Name (N, Orig_Lhs);
!             end if;
  
!             declare
!                Whole : constant Node_Id := Whole_Object_Ref (Lhs);
!                Id    : Entity_Id;
!             begin
!                if Is_Entity_Name (Whole) then
!                   Id := Entity (Whole);
  
!                   if Present (Id) then
!                      --  Left-hand side denotes a Checked ghost entity, so
!                      --  install the region.
  
!                      if Is_Checked_Ghost_Entity (Id) then
!                         Install_Ghost_Region (Check, N);
  
!                      --  Left-hand side denotes an Ignored ghost entity, so
!                      --  install the region, and mark the assignment statement
!                      --  as an ignored ghost assignment, so it will be removed
!                      --  later.
  
!                      elsif Is_Ignored_Ghost_Entity (Id) then
!                         Install_Ghost_Region (Ignore, N);
!                         Set_Is_Ignored_Ghost_Node (N);
!                         Record_Ignored_Ghost_Node (N);
!                      end if;
!                   end if;
!                end if;
!             end;
!          end;
        end if;
     end Mark_And_Set_Ghost_Assignment;
  
     -----------------------------
     -- Mark_And_Set_Ghost_Body --
     -----------------------------
  
!    procedure Mark_And_Set_Ghost_Body
!      (N       : Node_Id;
!       Spec_Id : Entity_Id)
!    is
        Body_Id : constant Entity_Id := Defining_Entity (N);
        Policy  : Name_Id := No_Name;
  
     begin
        --  A body becomes Ghost when it is subject to aspect or pragma Ghost
  
        if Is_Subject_To_Ghost (N) then
!          Policy := Policy_In_Effect (Name_Ghost);
  
        --  A body declared within a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       elsif Ghost_Mode = Check then
           Policy := Name_Check;
  
!       elsif Ghost_Mode = Ignore then
           Policy := Name_Ignore;
  
        --  Inherit the "ghostness" of the previous declaration when the body
        --  acts as a completion.
--- 1876,2011 ----
        --  where P is a package, X is a record, and Comp is an array, we need
        --  to check the ghost flags of X.
  
!       procedure Check_Assignment_Policies (Assignee : Entity_Id);
!       --  Check that:
!       --  * A checked ghost assignment is not used in an ignored ghost
!       --    region.
!       --  * The level of the ghost region depends on the level of the
!       --    ghost assignment.
  
!       -------------------------------
!       -- Check_Assignment_Policies --
!       -------------------------------
  
!       procedure Check_Assignment_Policies (Assignee : Entity_Id) is
!          Assignee_Policy : constant Name_Id :=
!            Ghost_Policy_In_Effect (Assignee);
!          Assignee_Level  : constant Entity_Id :=
!            Ghost_Assertion_Level (Assignee);
!          Region_Policy   : constant Ghost_Mode_Type := Ghost_Config.Ghost_Mode;
!          Region_Level    : constant Entity_Id :=
!            Ghost_Config.Ghost_Mode_Assertion_Level;
!       begin
!          if Assignee_Policy = Name_Check and then Region_Policy = Ignore then
!             Error_Msg_N (Ghost_Policy_Error_Msg, N);
!             Error_Msg_NE ("\& has ghost policy `Check`", N, Assignee);
!             Error_Msg_NE
!               ("\& is modified in a region with `Ignore`", N, Assignee);
!          end if;
! 
!          --  If an assignment to a part of a ghost variable occurs in a ghost
!          --  entity, then the variable should be assertion-level-dependent on
!          --  this entity (SPARK RM 6.9(18)).
! 
!          if Present (Region_Level)
!            and then not Is_Assertion_Level_Dependent
!                           (Assignee_Level, Region_Level)
           then
!             Error_Msg_N (Assertion_Level_Error_Msg, N);
!             Error_Msg_Name_1 := Chars (Assignee_Level);
!             Error_Msg_NE ("\& has assertion level %", N, Assignee);
!             Error_Msg_Name_1 := Chars (Region_Level);
!             Error_Msg_NE
!               ("\& is modified within a region with %", N, Assignee);
!             Error_Msg_Name_1 := Chars (Region_Level);
!             Error_Msg_NE
!               ("\assertion level of & should depend on %", N, Assignee);
           end if;
+       end Check_Assignment_Policies;
  
!       --  Local variables
  
!       Orig_Lhs : constant Node_Id := Name (N);
!       Id       : Entity_Id;
!       Lhs      : Node_Id;
  
!    --  Start of processing for Mark_And_Set_Ghost_Assignment
  
!    begin
!       --  Cases where full analysis is needed, involving array indexing
!       --  which would otherwise be missing array-bounds checks:
  
!       if not Analyzed (Orig_Lhs)
!          and then
!              ((Nkind (Orig_Lhs) = N_Indexed_Component
!                  and then Nkind (Prefix (Orig_Lhs)) = N_Selected_Component
!                  and then Nkind (Prefix (Prefix (Orig_Lhs))) =
!                           N_Indexed_Component)
!             or else
!               (Nkind (Orig_Lhs) = N_Selected_Component
!                  and then Nkind (Prefix (Orig_Lhs)) = N_Indexed_Component
!                  and then Nkind (Prefix (Prefix (Orig_Lhs))) =
!                           N_Selected_Component
!                  and then Nkind (Parent (N)) /= N_Loop_Statement))
!       then
!          Analyze (Orig_Lhs);
!       end if;
  
!       --  Make sure Lhs is at least preanalyzed, so we can tell whether
!       --  it denotes a ghost variable. In some cases we need to do a full
!       --  analysis, or else the back end gets confused. Note that in the
!       --  preanalysis case, we are preanalyzing a copy of the left-hand
!       --  side name, temporarily attached to the tree.
  
!       Lhs :=
!         (if Analyzed (Orig_Lhs) then Orig_Lhs else New_Copy_Tree (Orig_Lhs));
!       if not Analyzed (Lhs) then
!          Set_Name   (N, Lhs);
!          Set_Parent (Lhs, N);
!          Preanalyze_Without_Errors (Lhs);
!          Set_Name (N, Orig_Lhs);
!       end if;
! 
!       Id := Get_Enclosing_Ghost_Entity (Lhs);
! 
!       if Present (Id) and then Is_Ghost_Entity (Id) then
!          Check_Assignment_Policies (Id);
        end if;
+ 
+       Mark_And_Set_Ghost_Region (N, Id);
     end Mark_And_Set_Ghost_Assignment;
  
     -----------------------------
     -- Mark_And_Set_Ghost_Body --
     -----------------------------
  
!    procedure Mark_And_Set_Ghost_Body (N : Node_Id; Spec_Id : Entity_Id) is
        Body_Id : constant Entity_Id := Defining_Entity (N);
+       Level   : Entity_Id := Empty;
        Policy  : Name_Id := No_Name;
  
     begin
        --  A body becomes Ghost when it is subject to aspect or pragma Ghost
  
        if Is_Subject_To_Ghost (N) then
!          if Present (Spec_Id) then
!             Policy := Ghost_Policy_In_Effect (Spec_Id);
!             Level := Ghost_Assertion_Level_In_Effect (Spec_Id);
!          else
!             Policy := Ghost_Policy_In_Effect (Body_Id);
!             Level := Ghost_Assertion_Level_In_Effect (Body_Id);
!          end if;
  
        --  A body declared within a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       elsif Ghost_Config.Ghost_Mode = Check then
           Policy := Name_Check;
+          Level := Ghost_Config.Ghost_Mode_Assertion_Level;
  
!       elsif Ghost_Config.Ghost_Mode = Ignore then
           Policy := Name_Ignore;
+          Level := Ghost_Config.Ghost_Mode_Assertion_Level;
  
        --  Inherit the "ghostness" of the previous declaration when the body
        --  acts as a completion.
*************** package body Ghost is
*** 1558,1579 ****
           elsif Is_Ignored_Ghost_Entity (Spec_Id) then
              Policy := Name_Ignore;
           end if;
        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,
!          Compl_Id => Body_Id);
  
        --  Mark the body as its formals as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N);
     end Mark_And_Set_Ghost_Body;
  
     -----------------------------------
--- 2017,2038 ----
           elsif Is_Ignored_Ghost_Entity (Spec_Id) then
              Policy := Name_Ignore;
           end if;
+ 
+          Level := Ghost_Assertion_Level (Spec_Id);
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(18)).
  
!       Check_Ghost_Completion (Prev_Id => Spec_Id, Compl_Id => Body_Id);
  
        --  Mark the body as its formals as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy, Level);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N, Level);
     end Mark_And_Set_Ghost_Body;
  
     -----------------------------------
*************** package body Ghost is
*** 1585,1614 ****
        Prev_Id : Entity_Id)
     is
        Compl_Id : constant Entity_Id := Defining_Entity (N);
        Policy   : Name_Id := No_Name;
  
     begin
        --  A completion elaborated in a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       if Ghost_Mode = Check then
           Policy := Name_Check;
  
!       elsif Ghost_Mode = Ignore then
           Policy := Name_Ignore;
  
        --  The completion becomes Ghost when its initial declaration is also
        --  Ghost.
  
        elsif Is_Checked_Ghost_Entity (Prev_Id) then
           Policy := Name_Check;
  
        elsif Is_Ignored_Ghost_Entity (Prev_Id) then
           Policy := Name_Ignore;
        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,
--- 2044,2078 ----
        Prev_Id : Entity_Id)
     is
        Compl_Id : constant Entity_Id := Defining_Entity (N);
+       Level    : Entity_Id := Empty;
        Policy   : Name_Id := No_Name;
  
     begin
        --  A completion elaborated in a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       if Ghost_Config.Ghost_Mode = Check then
           Policy := Name_Check;
+          Level  := Ghost_Config.Ghost_Mode_Assertion_Level;
  
!       elsif Ghost_Config.Ghost_Mode = Ignore then
           Policy := Name_Ignore;
+          Level  := Ghost_Config.Ghost_Mode_Assertion_Level;
  
        --  The completion becomes Ghost when its initial declaration is also
        --  Ghost.
  
        elsif Is_Checked_Ghost_Entity (Prev_Id) then
           Policy := Name_Check;
+          Level  := Ghost_Assertion_Level (Prev_Id);
  
        elsif Is_Ignored_Ghost_Entity (Prev_Id) then
           Policy := Name_Ignore;
+          Level  := Ghost_Assertion_Level (Prev_Id);
        end if;
  
        --  The Ghost policy in effect at the point of declaration and at the
!       --  point of completion must match (SPARK RM 6.9(18)).
  
        Check_Ghost_Completion
          (Prev_Id  => Prev_Id,
*************** package body Ghost is
*** 1616,1626 ****
  
        --  Mark the completion as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N);
     end Mark_And_Set_Ghost_Completion;
  
     ------------------------------------
--- 2080,2090 ----
  
        --  Mark the completion as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy, Level);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N, Level);
     end Mark_And_Set_Ghost_Completion;
  
     ------------------------------------
*************** package body Ghost is
*** 1628,1633 ****
--- 2092,2098 ----
     ------------------------------------
  
     procedure Mark_And_Set_Ghost_Declaration (N : Node_Id) is
+       Level  : Entity_Id := Empty;
        Par_Id : Entity_Id;
        Policy : Name_Id := No_Name;
  
*************** package body Ghost is
*** 1635,1664 ****
        --  A declaration becomes Ghost when it is subject to aspect or pragma
        --  Ghost.
  
!       if Is_Subject_To_Ghost (N) then
!          Policy := Policy_In_Effect (Name_Ghost);
  
        --  A declaration elaborated in a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       elsif Ghost_Mode = Check then
           Policy := Name_Check;
  
!       elsif Ghost_Mode = Ignore then
           Policy := Name_Ignore;
  
        --  A child package or subprogram declaration becomes Ghost when its
        --  parent is Ghost (SPARK RM 6.9(2)).
  
!       elsif Nkind (N) in N_Generic_Function_Renaming_Declaration
!                        | N_Generic_Package_Declaration
!                        | N_Generic_Package_Renaming_Declaration
!                        | N_Generic_Procedure_Renaming_Declaration
!                        | N_Generic_Subprogram_Declaration
!                        | N_Package_Declaration
!                        | N_Package_Renaming_Declaration
!                        | N_Subprogram_Declaration
!                        | N_Subprogram_Renaming_Declaration
          and then Present (Parent_Spec (N))
        then
           Par_Id := Defining_Entity (Unit (Parent_Spec (N)));
--- 2100,2148 ----
        --  A declaration becomes Ghost when it is subject to aspect or pragma
        --  Ghost.
  
!       Level := Get_Ghost_Assertion_Level (N);
! 
!       --  A valid assertion level from an explicit pragma or aspect ghost
!       --  indicates the explicit ghostlyness of the declaration. Otherwise the
!       --  ghostliness of the declaration should be handled by other means like
!       --  the region.
! 
!       if Present (Level) then
!          --  Default to the Ignore policy inside ignored ghost regions.
!          --  Similarly to how we do it in Ghost_Policy_In_Effect.
!          --  SPARK RM 6.9 (3)
! 
!          if Present (Ghost_Config.Ignored_Ghost_Region) then
!             Policy := Name_Ignore;
!          else
!             Policy :=
!               Policy_In_Effect (Name_Ghost, Assertion_Level_To_Name (Level));
!          end if;
  
        --  A declaration elaborated in a Ghost region is automatically Ghost
        --  (SPARK RM 6.9(2)).
  
!       elsif Ghost_Config.Ghost_Mode = Check then
           Policy := Name_Check;
+          Level := Ghost_Config.Ghost_Mode_Assertion_Level;
  
!       elsif Ghost_Config.Ghost_Mode = Ignore then
           Policy := Name_Ignore;
+          Level := Ghost_Config.Ghost_Mode_Assertion_Level;
  
        --  A child package or subprogram declaration becomes Ghost when its
        --  parent is Ghost (SPARK RM 6.9(2)).
  
!       elsif Nkind (N)
!             in N_Generic_Function_Renaming_Declaration
!              | N_Generic_Package_Declaration
!              | N_Generic_Package_Renaming_Declaration
!              | N_Generic_Procedure_Renaming_Declaration
!              | N_Generic_Subprogram_Declaration
!              | N_Package_Declaration
!              | N_Package_Renaming_Declaration
!              | N_Subprogram_Declaration
!              | N_Subprogram_Renaming_Declaration
          and then Present (Parent_Spec (N))
        then
           Par_Id := Defining_Entity (Unit (Parent_Spec (N)));
*************** package body Ghost is
*** 1669,1683 ****
           elsif Is_Ignored_Ghost_Entity (Par_Id) then
              Policy := Name_Ignore;
           end if;
        end if;
  
        --  Mark the declaration and its formals as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N);
     end Mark_And_Set_Ghost_Declaration;
  
     --------------------------------------
--- 2153,2171 ----
           elsif Is_Ignored_Ghost_Entity (Par_Id) then
              Policy := Name_Ignore;
           end if;
+ 
+          Level := Ghost_Assertion_Level (Par_Id);
        end if;
  
        --  Mark the declaration and its formals as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy, Level);
! 
!       Check_Valid_Ghost_Declaration (N);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N, Level);
     end Mark_And_Set_Ghost_Declaration;
  
     --------------------------------------
*************** package body Ghost is
*** 1725,1767 ****
  
        --  Local variables
  
        Policy : Name_Id := No_Name;
  
     begin
        --  An instantiation becomes Ghost when it is subject to pragma Ghost
  
        if Is_Subject_To_Ghost (N) then
!          Policy := Policy_In_Effect (Name_Ghost);
  
        --  An instantiation declaration within a Ghost region is automatically
        --  Ghost (SPARK RM 6.9(2)).
  
!       elsif Ghost_Mode = Check then
           Policy := Name_Check;
  
!       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
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N);
  
        --  Check Ghost actuals. Given that this routine is unconditionally
        --  invoked with subprogram and package instantiations, this check
--- 2213,2258 ----
  
        --  Local variables
  
+       Level  : Entity_Id := Empty;
        Policy : Name_Id := No_Name;
  
     begin
        --  An instantiation becomes Ghost when it is subject to pragma Ghost
  
        if Is_Subject_To_Ghost (N) then
!          Policy := Ghost_Policy_In_Effect (Gen_Id);
  
        --  An instantiation declaration within a Ghost region is automatically
        --  Ghost (SPARK RM 6.9(2)).
  
!       elsif Ghost_Config.Ghost_Mode = Check then
           Policy := Name_Check;
+          Level  := Ghost_Config.Ghost_Mode_Assertion_Level;
  
!       elsif Ghost_Config.Ghost_Mode = Ignore then
           Policy := Name_Ignore;
+          Level  := Ghost_Config.Ghost_Mode_Assertion_Level;
  
        --  Inherit the "ghostness" of the generic unit, but the current Ghost
        --  policy is the relevant one for the instantiation.
  
!       elsif Is_Ghost_Entity (Gen_Id) then
!          Policy := Ghost_Policy_In_Effect (Gen_Id);
  
           if Policy = No_Name then
              Policy := Name_Ignore;
           end if;
+ 
+          Level := Ghost_Assertion_Level (Gen_Id);
        end if;
  
        --  Mark the instantiation as Ghost
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy, Level);
  
        --  Install the appropriate Ghost region
  
!       Install_Ghost_Region (Policy, N, Level);
  
        --  Check Ghost actuals. Given that this routine is unconditionally
        --  invoked with subprogram and package instantiations, this check
*************** package body Ghost is
*** 1771,1801 ****
        Check_Ghost_Actuals;
     end Mark_And_Set_Ghost_Instantiation;
  
     ---------------------------------------
     -- Mark_And_Set_Ghost_Procedure_Call --
     ---------------------------------------
  
     procedure Mark_And_Set_Ghost_Procedure_Call (N : Node_Id) is
        Id : Entity_Id;
- 
     begin
        --  A procedure call becomes Ghost when the procedure being invoked is
        --  Ghost. Install the Ghost mode of the procedure.
  
!       Id := Ghost_Entity (Name (N));
  
!       if Present (Id) then
!          if Is_Checked_Ghost_Entity (Id) then
!             Install_Ghost_Region (Check, N);
  
!          elsif Is_Ignored_Ghost_Entity (Id) then
!             Install_Ghost_Region (Ignore, N);
  
!             Set_Is_Ignored_Ghost_Node (N);
!             Record_Ignored_Ghost_Node (N);
!          end if;
        end if;
!    end Mark_And_Set_Ghost_Procedure_Call;
  
     -----------------------
     -- Mark_Ghost_Clause --
--- 2262,2409 ----
        Check_Ghost_Actuals;
     end Mark_And_Set_Ghost_Instantiation;
  
+    ------------------------------------------
+    -- Check_Procedure_Call_Argument_Levels --
+    ------------------------------------------
+ 
+    procedure Check_Procedure_Call_Argument_Levels (N : Node_Id) is
+       procedure Check_Argument_Levels
+         (Actual : Entity_Id; Actual_Ref : Node_Id);
+       --  Check that the ghost assertion level of an actual is an assertion
+       --  level which depends on the ghost region where the procedure call
+       --  is located.
+ 
+       ---------------------------
+       -- Check_Argument_Levels --
+       ---------------------------
+ 
+       procedure Check_Argument_Levels
+         (Actual : Entity_Id; Actual_Ref : Node_Id)
+       is
+          Actual_Level : constant Entity_Id := Ghost_Assertion_Level (Actual);
+          Region_Level : constant Entity_Id :=
+            Ghost_Config.Ghost_Mode_Assertion_Level;
+       begin
+          --  If an assignment to a part of a ghost variable occurs in a ghost
+          --  entity, then the variable should be assertion-level-dependent on
+          --  this entity [This includes both assignment statements and passing
+          --  a ghost variable as an out or in out mode actual parameter.]
+          --  (SPARK RM 6.9(18)).
+ 
+          if Present (Region_Level)
+            and then not Is_Assertion_Level_Dependent
+                           (Actual_Level, Region_Level)
+          then
+             Error_Msg_N (Assertion_Level_Error_Msg, Actual_Ref);
+             Error_Msg_Name_1 := Chars (Actual_Level);
+             Error_Msg_N ("\& has assertion level %", Actual_Ref);
+             Error_Msg_Name_1 := Chars (Region_Level);
+             Error_Msg_N ("\& is modified within a region with %", Actual_Ref);
+             Error_Msg_Name_1 := Chars (Region_Level);
+             Error_Msg_N
+               ("\assertion level of & should depend on %", Actual_Ref);
+          end if;
+       end Check_Argument_Levels;
+ 
+       --  Local variables
+ 
+       Actual      : Node_Id;
+       Actual_Id   : Entity_Id;
+       Formal      : Node_Id;
+       Id          : Entity_Id;
+       Orig_Actual : Node_Id;
+ 
+    --  Start of processing for Check_Procedure_Call_Argument_Levels
+ 
+    begin
+       if Nkind (N) not in N_Procedure_Call_Statement then
+          return;
+       end if;
+ 
+       --  Handle the access-to-subprogram case
+ 
+       if Ekind (Etype (Name (N))) = E_Subprogram_Type then
+          Id := Etype (Name (N));
+       else
+          Id := Get_Enclosing_Ghost_Entity (Name (N));
+       end if;
+ 
+       --  Check for context if we are able to derive the called subprogram and
+       --  we are not dealing with an expanded construct.
+ 
+       if Present (Id)
+         and then Can_Have_Formals (Id)
+         and then Comes_From_Source (N)
+         and then Ghost_Config.Ghost_Mode /= None
+       then
+          Orig_Actual := First_Actual (N);
+          Formal := First_Formal (Id);
+ 
+          while Present (Orig_Actual) and then Present (Formal) loop
+             --  Similarly to Mark_And_Set_Ghost_Procedure_Call we need to
+             --  analyze the call argument first to get its level for this
+             --  analysis.
+ 
+             Actual :=
+               (if Analyzed (Orig_Actual)
+                then Orig_Actual
+                else New_Copy_Tree (Orig_Actual));
+             if not Analyzed (Actual) then
+                Preanalyze_Without_Errors (Actual);
+             end if;
+ 
+             if Ekind (Formal) in E_Out_Parameter | E_In_Out_Parameter then
+                Actual_Id := Get_Enclosing_Ghost_Entity (Actual);
+                if Present (Actual_Id) then
+                   Check_Argument_Levels (Actual_Id, Orig_Actual);
+                end if;
+             end if;
+ 
+             Next_Formal (Formal);
+             Next_Actual (Orig_Actual);
+          end loop;
+       end if;
+    end Check_Procedure_Call_Argument_Levels;
+ 
     ---------------------------------------
     -- Mark_And_Set_Ghost_Procedure_Call --
     ---------------------------------------
  
     procedure Mark_And_Set_Ghost_Procedure_Call (N : Node_Id) is
        Id : Entity_Id;
     begin
        --  A procedure call becomes Ghost when the procedure being invoked is
        --  Ghost. Install the Ghost mode of the procedure.
  
!       Id := Get_Enclosing_Ghost_Entity (Name (N));
  
!       Mark_And_Set_Ghost_Region (N, Id);
!    end Mark_And_Set_Ghost_Procedure_Call;
  
!    -------------------------------
!    -- Mark_And_Set_Ghost_Region --
!    -------------------------------
  
!    procedure Mark_And_Set_Ghost_Region (N : Node_Id; Id : Entity_Id) is
!       Id_Policy : Name_Id;
!    begin
!       --  Nothing to do if we are not dealing with a ghost entity
! 
!       if No (Id) or else not Is_Ghost_Entity (Id) then
!          return;
        end if;
! 
!       Id_Policy := Ghost_Policy_In_Effect (Id);
! 
!       if Id_Policy = Name_Check then
!          Install_Ghost_Region (Check, N, Ghost_Assertion_Level (Id));
! 
!       elsif Id_Policy = Name_Ignore then
!          Install_Ghost_Region (Ignore, N, Ghost_Assertion_Level (Id));
!          Set_Is_Ignored_Ghost_Node (N);
!          Record_Ignored_Ghost_Node (N);
!       end if;
!    end Mark_And_Set_Ghost_Region;
  
     -----------------------
     -- Mark_Ghost_Clause --
*************** package body Ghost is
*** 1818,1824 ****
        if Present (Nam)
          and then Is_Entity_Name (Nam)
          and then Present (Entity (Nam))
!         and then Is_Ignored_Ghost_Entity (Entity (Nam))
        then
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
--- 2426,2432 ----
        if Present (Nam)
          and then Is_Entity_Name (Nam)
          and then Present (Entity (Nam))
!         and then Is_Ignored_Ghost_Entity_In_Codegen (Entity (Nam))
        then
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
*************** package body Ghost is
*** 1830,1837 ****
     ------------------------------------
  
     procedure Mark_Ghost_Declaration_Or_Body
!      (N    : Node_Id;
!       Mode : Name_Id)
     is
        Id : constant Entity_Id := Defining_Entity (N);
  
--- 2438,2446 ----
     ------------------------------------
  
     procedure Mark_Ghost_Declaration_Or_Body
!      (N     : Node_Id;
!       Mode  : Name_Id;
!       Level : Entity_Id)
     is
        Id : constant Entity_Id := Defining_Entity (N);
  
*************** package body Ghost is
*** 1839,1854 ****
        Param        : Node_Id;
        Param_Id     : Entity_Id;
  
     begin
!       --  Mark the related node and its entity
  
        if Mode = Name_Check then
           Mark_Formals := True;
!          Set_Is_Checked_Ghost_Entity (Id);
  
        elsif Mode = Name_Ignore then
           Mark_Formals := True;
!          Set_Is_Ignored_Ghost_Entity (Id);
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
        end if;
--- 2448,2492 ----
        Param        : Node_Id;
        Param_Id     : Entity_Id;
  
+       procedure Mark_And_Set_Is_Checked_Ghost_Entity (E : Entity_Id);
+       --  Sets Is_Checked_Ghost_Entity, unsets Is_Ignored_Ghost_Entity
+ 
+       procedure Mark_And_Set_Is_Ignored_Ghost_Entity (E : Entity_Id);
+       --  Sets Is_Ignored_Ghost_Entity, unsets Is_Checked_Ghost_Entity
+ 
+       ------------------------------------------
+       -- Mark_And_Set_Is_Checked_Ghost_Entity --
+       ------------------------------------------
+ 
+       procedure Mark_And_Set_Is_Checked_Ghost_Entity (E : Entity_Id) is
+       begin
+          Set_Is_Checked_Ghost_Entity (E, True);
+          Set_Is_Ignored_Ghost_Entity (E, False);
+       end Mark_And_Set_Is_Checked_Ghost_Entity;
+ 
+       ------------------------------------------
+       -- Mark_And_Set_Is_Ignored_Ghost_Entity --
+       ------------------------------------------
+ 
+       procedure Mark_And_Set_Is_Ignored_Ghost_Entity (E : Entity_Id) is
+       begin
+          Set_Is_Checked_Ghost_Entity (E, False);
+          Set_Is_Ignored_Ghost_Entity (E, True);
+       end Mark_And_Set_Is_Ignored_Ghost_Entity;
+ 
+    --  Start of processing for Mark_Ghost_Declaration_Or_Body
+ 
     begin
!       Set_Ghost_Assertion_Level (Id, Level);
  
        if Mode = Name_Check then
           Mark_Formals := True;
!          Mark_And_Set_Is_Checked_Ghost_Entity (Id);
  
        elsif Mode = Name_Ignore then
           Mark_Formals := True;
!          Mark_And_Set_Is_Ignored_Ghost_Entity (Id);
! 
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
        end if;
*************** package body Ghost is
*** 1873,1883 ****
           while Present (Param) loop
              Param_Id := Defining_Entity (Param);
  
              if Mode = Name_Check then
!                Set_Is_Checked_Ghost_Entity (Param_Id);
  
              elsif Mode = Name_Ignore then
!                Set_Is_Ignored_Ghost_Entity (Param_Id);
              end if;
  
              Next (Param);
--- 2511,2523 ----
           while Present (Param) loop
              Param_Id := Defining_Entity (Param);
  
+             Set_Ghost_Assertion_Level (Param_Id, Level);
+ 
              if Mode = Name_Check then
!                Mark_And_Set_Is_Checked_Ghost_Entity (Param_Id);
  
              elsif Mode = Name_Ignore then
!                Mark_And_Set_Is_Ignored_Ghost_Entity (Param_Id);
              end if;
  
              Next (Param);
*************** package body Ghost is
*** 1905,1920 ****
        end if;
     end Mark_Ghost_Pragma;
  
!    procedure Mark_Ghost_Pragma
!      (N    : Node_Id;
!       Mode : Ghost_Mode_Type)
!    is
     begin
        if Mode = Check then
!          Set_Is_Checked_Ghost_Pragma (N);
  
        else
!          Set_Is_Ignored_Ghost_Pragma (N);
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
        end if;
--- 2545,2559 ----
        end if;
     end Mark_Ghost_Pragma;
  
!    procedure Mark_Ghost_Pragma (N : Node_Id; Mode : Ghost_Mode_Type) is
     begin
        if Mode = Check then
!          Set_Is_Checked_Ghost_Pragma (N, True);
!          Set_Is_Ignored_Ghost_Pragma (N, False);
  
        else
!          Set_Is_Checked_Ghost_Pragma (N, False);
!          Set_Is_Ignored_Ghost_Pragma (N, True);
           Set_Is_Ignored_Ghost_Node (N);
           Record_Ignored_Ghost_Node (N);
        end if;
*************** package body Ghost is
*** 1924,1935 ****
     -- Mark_Ghost_Renaming --
     -------------------------
  
!    procedure Mark_Ghost_Renaming
!      (N  : Node_Id;
!       Id : Entity_Id)
!    is
        Policy : Name_Id := No_Name;
! 
     begin
        --  A renaming becomes Ghost when it renames a Ghost entity
  
--- 2563,2571 ----
     -- Mark_Ghost_Renaming --
     -------------------------
  
!    procedure Mark_Ghost_Renaming (N : Node_Id; Id : Entity_Id) is
        Policy : Name_Id := No_Name;
!       Level  : constant Entity_Id := Ghost_Assertion_Level (Id);
     begin
        --  A renaming becomes Ghost when it renames a Ghost entity
  
*************** package body Ghost is
*** 1940,1946 ****
           Policy := Name_Ignore;
        end if;
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy);
     end Mark_Ghost_Renaming;
  
     ------------------------
--- 2576,2582 ----
           Policy := Name_Ignore;
        end if;
  
!       Mark_Ghost_Declaration_Or_Body (N, Policy, Level);
     end Mark_Ghost_Renaming;
  
     ------------------------
*************** package body Ghost is
*** 2056,2065 ****
     -- Restore_Ghost_Region --
     --------------------------
  
!    procedure Restore_Ghost_Region (Mode : Ghost_Mode_Type; N : Node_Id) is
     begin
!       Ghost_Mode           := Mode;
!       Ignored_Ghost_Region := N;
     end Restore_Ghost_Region;
  
     --------------------
--- 2692,2700 ----
     -- Restore_Ghost_Region --
     --------------------------
  
!    procedure Restore_Ghost_Region (Config : Ghost_Config_Type) is
     begin
!       Ghost_Config := Config;
     end Restore_Ghost_Region;
  
     --------------------
*************** package body Ghost is
*** 2075,2093 ****
        --------------------------------
  
        procedure Set_Ghost_Mode_From_Entity (Id : Entity_Id) is
        begin
           if Is_Checked_Ghost_Entity (Id) then
!             Install_Ghost_Mode (Check);
           elsif Is_Ignored_Ghost_Entity (Id) then
!             Install_Ghost_Mode (Ignore);
           else
!             Install_Ghost_Mode (None);
           end if;
        end Set_Ghost_Mode_From_Entity;
  
        --  Local variables
  
!       Id : Entity_Id;
  
     --  Start of processing for Set_Ghost_Mode
  
--- 2710,2730 ----
        --------------------------------
  
        procedure Set_Ghost_Mode_From_Entity (Id : Entity_Id) is
+          Level : constant Entity_Id := Ghost_Assertion_Level (Id);
        begin
           if Is_Checked_Ghost_Entity (Id) then
!             Install_Ghost_Region (Check, N, Level);
           elsif Is_Ignored_Ghost_Entity (Id) then
!             Install_Ghost_Region (Ignore, N, Level);
           else
!             Install_Ghost_Region (None, N, Level);
           end if;
        end Set_Ghost_Mode_From_Entity;
  
        --  Local variables
  
!       Id    : Entity_Id;
!       Level : Entity_Id;
  
     --  Start of processing for Set_Ghost_Mode
  
*************** package body Ghost is
*** 2096,2102 ****
        --  of the target.
  
        if Nkind (N) = N_Assignment_Statement then
!          Id := Ghost_Entity (Name (N));
  
           if Present (Id) then
              Set_Ghost_Mode_From_Entity (Id);
--- 2733,2739 ----
        --  of the target.
  
        if Nkind (N) = N_Assignment_Statement then
!          Id := Get_Enclosing_Ghost_Entity (Name (N));
  
           if Present (Id) then
              Set_Ghost_Mode_From_Entity (Id);
*************** package body Ghost is
*** 2123,2141 ****
        --  property is encoded in the pragma itself.
  
        elsif Nkind (N) = N_Pragma then
           if Is_Checked_Ghost_Pragma (N) then
!             Install_Ghost_Mode (Check);
           elsif Is_Ignored_Ghost_Pragma (N) then
!             Install_Ghost_Mode (Ignore);
           else
!             Install_Ghost_Mode (None);
           end if;
  
        --  The Ghost mode of a procedure call depends on the Ghost mode of the
        --  procedure being invoked.
  
        elsif Nkind (N) = N_Procedure_Call_Statement then
!          Id := Ghost_Entity (Name (N));
  
           if Present (Id) then
              Set_Ghost_Mode_From_Entity (Id);
--- 2760,2793 ----
        --  property is encoded in the pragma itself.
  
        elsif Nkind (N) = N_Pragma then
+          Level := Pragma_Ghost_Assertion_Level (N);
+ 
           if Is_Checked_Ghost_Pragma (N) then
! 
!             --  Still install an ignored ghost region if the pragma is attached
!             --  to a checked ghost entity, but the pragma itself is explicitly
!             --  ignored.
! 
!             if Is_Ignored (N) then
!                Install_Ghost_Region (Ignore, N, Level);
!             else
!                Install_Ghost_Region (Check, N, Level);
!             end if;
           elsif Is_Ignored_Ghost_Pragma (N) then
!             Install_Ghost_Region (Ignore, N, Level);
           else
!             if Is_Checked (N) then
!                Install_Ghost_Region (Check, N, Level);
!             else
!                Install_Ghost_Region (None, N, Level);
!             end if;
           end if;
  
        --  The Ghost mode of a procedure call depends on the Ghost mode of the
        --  procedure being invoked.
  
        elsif Nkind (N) = N_Procedure_Call_Statement then
!          Id := Get_Enclosing_Ghost_Entity (Name (N));
  
           if Present (Id) then
              Set_Ghost_Mode_From_Entity (Id);
*************** package body Ghost is
*** 2148,2154 ****
     -------------------------
  
     procedure Set_Is_Ghost_Entity (Id : Entity_Id) is
!       Policy : constant Name_Id := Policy_In_Effect (Name_Ghost);
     begin
        if Policy = Name_Check then
           Set_Is_Checked_Ghost_Entity (Id);
--- 2800,2806 ----
     -------------------------
  
     procedure Set_Is_Ghost_Entity (Id : Entity_Id) is
!       Policy : constant Name_Id := Ghost_Policy_In_Effect (Id);
     begin
        if Policy = Name_Check then
           Set_Is_Checked_Ghost_Entity (Id);
*************** package body Ghost is
*** 2157,2180 ****
        end if;
     end Set_Is_Ghost_Entity;
  
-    ----------------------
-    -- Whole_Object_Ref --
-    ----------------------
- 
-    function Whole_Object_Ref (Ref : Node_Id) return Node_Id is
-    begin
-       if Nkind (Ref) in N_Indexed_Component | N_Slice
-         or else (Nkind (Ref) = N_Selected_Component
-                    and then Is_Object_Reference (Prefix (Ref)))
-       then
-          if Is_Access_Type (Etype (Prefix (Ref))) then
-             return Ref;
-          else
-             return Whole_Object_Ref (Prefix (Ref));
-          end if;
-       else
-          return Ref;
-       end if;
-    end Whole_Object_Ref;
- 
  end Ghost;
--- 2809,2812 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/ghost.ads gcc-16.1.0-RC-20260423/gcc/ada/ghost.ads
*** gcc-15.2.0/gcc/ada/ghost.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ghost.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 32,37 ****
--- 32,47 ----
  
  package Ghost is
  
+    function Assertion_Level_From_Arg (Arg : Node_Id) return Entity_Id;
+    --  Returns the assertion level for the given pragma or aspect based on
+    --  the argument Arg. Which is either
+    --
+    --  * Standard_Level_Default if there was no argument or the argument
+    --    evaluated to True.
+    --  * Assertion_Level if the argument was referencing a user defined
+    --    Assertion_Level.
+    --  * Empty othrwise since we are not dealing with a ghost entity.
+ 
     procedure Check_Ghost_Completion
       (Prev_Id  : Entity_Id;
        Compl_Id : Entity_Id);
*************** package Ghost is
*** 49,55 ****
       (Actual : Node_Id;
        Formal : Entity_Id);
     --  Check that if Actual contains references to ghost entities, generic
!    --  formal parameter Formal is ghost (SPARK RM 6.9(10)).
  
     procedure Check_Ghost_Formal_Procedure_Or_Package
       (N          : Node_Id;
--- 59,65 ----
       (Actual : Node_Id;
        Formal : Entity_Id);
     --  Check that if Actual contains references to ghost entities, generic
!    --  formal parameter Formal is ghost (SPARK RM 6.9(13)).
  
     procedure Check_Ghost_Formal_Procedure_Or_Package
       (N          : Node_Id;
*************** package Ghost is
*** 58,64 ****
        Is_Default : Boolean := False);
     --  Verify that if generic formal procedure (resp. package) Formal is ghost,
     --  then Actual is not Empty and also a ghost procedure (resp. package)
!    --  (SPARK RM 6.9(13-14)). The error if any is located on N. If
     --  Is_Default is False, N and Actual represent the actual parameter in an
     --  instantiation. Otherwise, they represent the default subprogram of a
     --  formal subprogram declaration.
--- 68,74 ----
        Is_Default : Boolean := False);
     --  Verify that if generic formal procedure (resp. package) Formal is ghost,
     --  then Actual is not Empty and also a ghost procedure (resp. package)
!    --  (SPARK RM 6.9(16-17)). The error if any is located on N. If
     --  Is_Default is False, N and Actual represent the actual parameter in an
     --  instantiation. Otherwise, they represent the default subprogram of a
     --  formal subprogram declaration.
*************** package Ghost is
*** 69,75 ****
        Is_Default : Boolean := False);
     --  Verify that if Formal (either an IN OUT generic formal parameter, or an
     --  IN generic formal parameter of access-to-variable type) is ghost, then
!    --  Actual is a ghost object (SPARK RM 6.9(13-14)). Is_Default is True when
     --  Actual is the default expression of the formal object declaration.
  
     procedure Check_Ghost_Overriding
--- 79,85 ----
        Is_Default : Boolean := False);
     --  Verify that if Formal (either an IN OUT generic formal parameter, or an
     --  IN generic formal parameter of access-to-variable type) is ghost, then
!    --  Actual is a ghost object (SPARK RM 6.9(16-17)). Is_Default is True when
     --  Actual is the default expression of the formal object declaration.
  
     procedure Check_Ghost_Overriding
*************** package Ghost is
*** 90,96 ****
        Constit    : Node_Id;
        Constit_Id : Entity_Id);
     --  Verify that the Ghost policy of constituent Constit_Id is compatible
!    --  with the Ghost policy of abstract state State_I.
  
     procedure Check_Ghost_Type (Typ : Entity_Id);
     --  Verify that Ghost type Typ is neither concurrent, nor effectively
--- 100,108 ----
        Constit    : Node_Id;
        Constit_Id : Entity_Id);
     --  Verify that the Ghost policy of constituent Constit_Id is compatible
!    --  with the Ghost policy of abstract state State_Id.
!    --
!    --  Additionally verify that the Ghost_Assertion_Levels are compatible.
  
     procedure Check_Ghost_Type (Typ : Entity_Id);
     --  Verify that Ghost type Typ is neither concurrent, nor effectively
*************** package Ghost is
*** 102,112 ****
     procedure Initialize;
     --  Initialize internal tables
  
!    procedure Install_Ghost_Region (Mode : Ghost_Mode_Type; N : Node_Id);
     pragma Inline (Install_Ghost_Region);
     --  Install a Ghost region described by mode Mode and ignored region start
     --  node N.
  
     function Is_Ghost_Assignment (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes an assignment statement whose
     --  target is a Ghost entity.
--- 114,136 ----
     procedure Initialize;
     --  Initialize internal tables
  
!    procedure Install_Ghost_Region
!      (Mode  : Ghost_Mode_Type;
!       N     : Node_Id;
!       Level : Entity_Id);
     pragma Inline (Install_Ghost_Region);
     --  Install a Ghost region described by mode Mode and ignored region start
     --  node N.
  
+    function Is_Assertion_Level_Dependent
+       (Self : Entity_Id; Other : Entity_Id) return Boolean;
+    --  Check that assertion level Self is assertion-level-dependent with Other.
+    --
+    --  According to SPARK RM 6.9(6) this means that
+    --  * Either Self or Other has the default assertion level.
+    --  * Self either is or depends on Other
+    --  * Self either is or depends on Static
+ 
     function Is_Ghost_Assignment (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes an assignment statement whose
     --  target is a Ghost entity.
*************** package Ghost is
*** 197,202 ****
--- 221,231 ----
     --  Install the Ghost mode of the instantiation. This routine starts a Ghost
     --  region and must be used with routine Restore_Ghost_Region.
  
+    procedure Check_Procedure_Call_Argument_Levels (N : Node_Id);
+    --  Check that the variable being modified by a call argument inside a ghost
+    --  region is assertion-level-dependent on the ghost region (SPARK RM
+    --  6.9(18)).
+ 
     procedure Mark_And_Set_Ghost_Procedure_Call (N : Node_Id);
     --  Mark procedure call N as Ghost when:
     --
*************** package Ghost is
*** 238,249 ****
  
     procedure Remove_Ignored_Ghost_Code;
     --  Remove all code marked as ignored Ghost from the trees of all qualifying
!    --  units (SPARK RM 6.9(4)).
     --
     --  WARNING: this is a separate front end pass, care should be taken to keep
     --  it optimized.
  
!    procedure Restore_Ghost_Region (Mode : Ghost_Mode_Type; N : Node_Id);
     pragma Inline (Restore_Ghost_Region);
     --  Restore a Ghost region to a previous state described by mode Mode and
     --  ignored region start node N. This routine must be used in conjunction
--- 267,278 ----
  
     procedure Remove_Ignored_Ghost_Code;
     --  Remove all code marked as ignored Ghost from the trees of all qualifying
!    --  units (SPARK RM 6.9(5)).
     --
     --  WARNING: this is a separate front end pass, care should be taken to keep
     --  it optimized.
  
!    procedure Restore_Ghost_Region (Config : Ghost_Config_Type);
     pragma Inline (Restore_Ghost_Region);
     --  Restore a Ghost region to a previous state described by mode Mode and
     --  ignored region start node N. This routine must be used in conjunction
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat-style.texi gcc-16.1.0-RC-20260423/gcc/ada/gnat-style.texi
*** gcc-15.2.0/gcc/ada/gnat-style.texi	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat-style.texi	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  @setfilename gnat-style.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @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 , Jan 03, 2025
  
  AdaCore
  
! Copyright @copyright{} 2008-2025, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Coding Style: A Guide for GNAT Developers , Jan 09, 2026
  
  AdaCore
  
! Copyright @copyright{} 2008-2026, Free Software Foundation
  @end quotation
  
  @end copying
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat1drv.adb gcc-16.1.0-RC-20260423/gcc/ada/gnat1drv.adb
*** gcc-15.2.0/gcc/ada/gnat1drv.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat1drv.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 33,39 ****
  with Errout;         use Errout;
  with Exp_CG;
  with Fmap;
- with Fname;          use Fname;
  with Fname.UF;       use Fname.UF;
  with Frontend;
  with Ghost;          use Ghost;
--- 33,38 ----
*************** with Sem_Eval;
*** 65,71 ****
  with Sem_Prag;
  with Sem_Type;
  with Set_Targ;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Sinput.L;       use Sinput.L;
--- 64,69 ----
*************** with Uname;          use Uname;
*** 83,88 ****
--- 81,87 ----
  with Urealp;
  with Usage;
  with Validsw;        use Validsw;
+ with VAST;
  with Warnsw;         use Warnsw;
  
  with System.Assertions;
*************** procedure Gnat1drv is
*** 175,180 ****
--- 174,185 ----
           Disable_ALI_File := True;
        end if;
  
+       --  -gnatd_o disables backend overflow checks on target; used for testing
+ 
+       if Debug_Flag_Underscore_O then
+          Backend_Overflow_Checks_On_Target := False;
+       end if;
+ 
        --  -gnatd.E sets Error_To_Warning mode, causing selected error messages
        --  to be treated as warnings instead of errors.
  
*************** procedure Gnat1drv is
*** 503,513 ****
  
           Operating_Mode := Check_Semantics;
  
-          --  Enable assertions, since they give valuable extra information for
-          --  formal verification.
- 
-          Assertions_Enabled := True;
- 
           --  Disable validity checks, since it generates code raising
           --  exceptions for invalid data, which confuses GNATprove. Invalid
           --  data is directly detected by GNATprove's flow analysis.
--- 508,513 ----
*************** procedure Gnat1drv is
*** 982,988 ****
     --  Local variables
  
     Back_End_Mode : Back_End.Back_End_Mode_Type;
!    Ecode         : Exit_Code_Type;
  
     Main_Unit_Kind : Node_Kind;
     --  Kind of main compilation unit node
--- 982,988 ----
     --  Local variables
  
     Back_End_Mode : Back_End.Back_End_Mode_Type;
!    Ecode         : Exit_Code_Type := E_Success;
  
     Main_Unit_Kind : Node_Kind;
     --  Kind of main compilation unit node
*************** begin
*** 1169,1177 ****
        --  Exit with errors if the main source could not be parsed
  
        if Sinput.Main_Source_File <= No_Source_File then
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
!          Exit_Program (E_Errors);
        end if;
  
        Main_Unit_Node := Cunit (Main_Unit);
--- 1169,1178 ----
        --  Exit with errors if the main source could not be parsed
  
        if Sinput.Main_Source_File <= No_Source_File then
+          Ecode := E_Errors;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (Ecode);
!          Exit_Program (Ecode);
        end if;
  
        Main_Unit_Node := Cunit (Main_Unit);
*************** begin
*** 1198,1206 ****
        Errout.Finalize (Last_Call => False);
  
        if Compilation_Errors then
           Treepr.Tree_Dump;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
           Namet.Finalize;
  
           --  Generate ALI file if specially requested
--- 1199,1208 ----
        Errout.Finalize (Last_Call => False);
  
        if Compilation_Errors then
+          Ecode := E_Errors;
           Treepr.Tree_Dump;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (Ecode);
           Namet.Finalize;
  
           --  Generate ALI file if specially requested
*************** begin
*** 1209,1215 ****
              Write_ALI (Object => False);
           end if;
  
!          Exit_Program (E_Errors);
        end if;
  
        --  Case of no code required to be generated, exit indicating no error
--- 1211,1217 ----
              Write_ALI (Object => False);
           end if;
  
!          Exit_Program (Ecode);
        end if;
  
        --  Case of no code required to be generated, exit indicating no error
*************** begin
*** 1217,1223 ****
        if Original_Operating_Mode = Check_Syntax then
           Treepr.Tree_Dump;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
           Namet.Finalize;
           Check_Rep_Info;
  
--- 1219,1225 ----
        if Original_Operating_Mode = Check_Syntax then
           Treepr.Tree_Dump;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (Ecode);
           Namet.Finalize;
           Check_Rep_Info;
  
*************** begin
*** 1350,1356 ****
              --  Exit the gnat driver with success, otherwise external builders
              --  such as gnatmake and gprbuild will treat the compilation of an
              --  ignored Ghost unit as a failure. Be sure we produce an empty
!             --  object file for the unit.
  
              Ecode := E_Success;
              Back_End.Gen_Or_Update_Object_File;
--- 1352,1366 ----
              --  Exit the gnat driver with success, otherwise external builders
              --  such as gnatmake and gprbuild will treat the compilation of an
              --  ignored Ghost unit as a failure. Be sure we produce an empty
!             --  object file for the unit, while indicating for the ALI file
!             --  generation that neither spec or body has elaboration code
!             --  (which in ordinary compilation is indicated in Gigi).
! 
!             Set_Has_No_Elaboration_Code (Main_Unit_Node);
! 
!             if Present (Library_Unit (Main_Unit_Node)) then
!                Set_Has_No_Elaboration_Code (Library_Unit (Main_Unit_Node));
!             end if;
  
              Ecode := E_Success;
              Back_End.Gen_Or_Update_Object_File;
*************** begin
*** 1407,1413 ****
  
           Post_Compilation_Validation_Checks;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
           Treepr.Tree_Dump;
  
           --  Generate ALI file if specially requested, or for missing subunits,
--- 1417,1423 ----
  
           Post_Compilation_Validation_Checks;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (Ecode);
           Treepr.Tree_Dump;
  
           --  Generate ALI file if specially requested, or for missing subunits,
*************** begin
*** 1440,1445 ****
--- 1450,1459 ----
           end if;
        end if;
  
+       --  Verify the validity of the tree (if enabled)
+ 
+       VAST.VAST_If_Enabled;
+ 
        --  In -gnatc mode we only do annotation if -gnatR is also set, or if
        --  -gnatwz is enabled (default setting) and there is an unchecked
        --  conversion that involves a type whose size is not statically known,
*************** begin
*** 1461,1467 ****
        then
           Post_Compilation_Validation_Checks;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
           Write_ALI (Object => False);
           Tree_Dump;
           Namet.Finalize;
--- 1475,1481 ----
        then
           Post_Compilation_Validation_Checks;
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (Ecode);
           Write_ALI (Object => False);
           Tree_Dump;
           Namet.Finalize;
*************** begin
*** 1541,1547 ****
        --  representation information for List_Rep_Info).
  
        Errout.Finalize (Last_Call => True);
!       Errout.Output_Messages;
  
        --  Back annotation of representation info is not done in CodePeer and
        --  SPARK modes.
--- 1555,1562 ----
        --  representation information for List_Rep_Info).
  
        Errout.Finalize (Last_Call => True);
!       Errout.Output_Messages
!         ((if Compilation_Errors then E_Errors else E_Success));
  
        --  Back annotation of representation info is not done in CodePeer and
        --  SPARK modes.
*************** begin
*** 1557,1564 ****
        --  there will be no attempt to generate an object file.
  
        if Compilation_Errors then
           Treepr.Tree_Dump;
!          Exit_Program (E_Errors);
        end if;
  
        if not GNATprove_Mode then
--- 1572,1580 ----
        --  there will be no attempt to generate an object file.
  
        if Compilation_Errors then
+          Ecode := E_Errors;
           Treepr.Tree_Dump;
!          Exit_Program (Ecode);
        end if;
  
        if not GNATprove_Mode then
*************** begin
*** 1632,1638 ****
  exception
     when Unrecoverable_Error =>
        Errout.Finalize (Last_Call => True);
!       Errout.Output_Messages;
  
        Set_Standard_Error;
        Write_Str ("compilation abandoned");
--- 1648,1654 ----
  exception
     when Unrecoverable_Error =>
        Errout.Finalize (Last_Call => True);
!       Errout.Output_Messages (E_Errors);
  
        Set_Standard_Error;
        Write_Str ("compilation abandoned");
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat1drv.ads gcc-16.1.0-RC-20260423/gcc/ada/gnat1drv.ads
*** gcc-15.2.0/gcc/ada/gnat1drv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat1drv.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat_cuda.adb gcc-16.1.0-RC-20260423/gcc/ada/gnat_cuda.adb
*** gcc-15.2.0/gcc/ada/gnat_cuda.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat_cuda.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Nmake;          use Nmake;
*** 36,42 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Nodes;    use Sinfo.Nodes;
- with Sinfo;          use Sinfo;
  
  with GNAT.HTable;
  
--- 36,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat_cuda.ads gcc-16.1.0-RC-20260423/gcc/ada/gnat_cuda.ads
*** gcc-15.2.0/gcc/ada/gnat_cuda.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat_cuda.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat_rm.texi gcc-16.1.0-RC-20260423/gcc/ada/gnat_rm.texi
*** gcc-15.2.0/gcc/ada/gnat_rm.texi	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat_rm.texi	Thu Apr 23 11:07:32 2026
***************
*** 3,9 ****
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.0.2.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
--- 3,9 ----
  @setfilename gnat_rm.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @end ifinfo
  @settitle GNAT Reference Manual
  @defindex ge
***************
*** 19,29 ****
  
  @copying
  @quotation
! GNAT Reference Manual , Jan 03, 2025
  
  AdaCore
  
! Copyright @copyright{} 2008-2025, Free Software Foundation
  @end quotation
  
  @end copying
--- 19,29 ----
  
  @copying
  @quotation
! GNAT Reference Manual , Jan 09, 2026
  
  AdaCore
  
! Copyright @copyright{} 2008-2026, Free Software Foundation
  @end quotation
  
  @end copying
*************** included in the section entitled @ref{1,
*** 76,82 ****
  * Interfacing to Other Languages:: 
  * Specialized Needs Annexes:: 
  * Implementation of Specific Ada Features:: 
! * Implementation of Ada 2012 Features:: 
  * GNAT language extensions:: 
  * Security Hardening Features:: 
  * Obsolescent Features:: 
--- 76,82 ----
  * Interfacing to Other Languages:: 
  * Specialized Needs Annexes:: 
  * Implementation of Specific Ada Features:: 
! * Implementation of Ada 2022 Features:: 
  * GNAT language extensions:: 
  * Security Hardening Features:: 
  * Obsolescent Features:: 
*************** Implementation Defined Pragmas
*** 110,115 ****
--- 110,116 ----
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
+ * Pragma Assertion_Level:: 
  * Pragma Assertion_Policy:: 
  * Pragma Assume:: 
  * Pragma Assume_No_Invalid_Values:: 
*************** Implementation Defined Pragmas
*** 238,243 ****
--- 239,245 ----
  * Pragma Priority_Specific_Dispatching:: 
  * Pragma Profile:: 
  * Pragma Profile_Warnings:: 
+ * Pragma Program_Exit:: 
  * Pragma Propagate_Exceptions:: 
  * Pragma Provide_Shift_Operators:: 
  * Pragma Psect_Object:: 
*************** Implementation Defined Aspects
*** 322,327 ****
--- 324,330 ----
  * Aspect Effective_Writes:: 
  * Aspect Exceptional_Cases:: 
  * Aspect Exit_Cases:: 
+ * Aspect Extended_Access:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
*************** Implementation Defined Aspects
*** 347,353 ****
--- 350,358 ----
  * Aspect Obsolescent:: 
  * Aspect Part_Of:: 
  * Aspect Persistent_BSS:: 
+ * Aspect Potentially_Invalid:: 
  * Aspect Predicate:: 
+ * Aspect Program_Exit:: 
  * Aspect Pure_Function:: 
  * Aspect Refined_Depends:: 
  * Aspect Refined_Global:: 
*************** Implementation Defined Attributes
*** 405,410 ****
--- 410,416 ----
  * Attribute Fast_Math:: 
  * Attribute Finalization_Size:: 
  * Attribute Fixed_Value:: 
+ * Attribute From_Address:: 
  * Attribute From_Any:: 
  * Attribute Has_Access_Values:: 
  * Attribute Has_Discriminants:: 
*************** The GNAT Library
*** 752,757 ****
--- 758,764 ----
  * GNAT.Bubble_Sort_G (g-busorg.ads): GNAT Bubble_Sort_G g-busorg ads. 
  * GNAT.Byte_Order_Mark (g-byorma.ads): GNAT Byte_Order_Mark g-byorma ads. 
  * GNAT.Byte_Swapping (g-bytswa.ads): GNAT Byte_Swapping g-bytswa ads. 
+ * GNAT.C_Time (g-c_time.ads): GNAT C_Time g-c_time ads. 
  * GNAT.Calendar (g-calend.ads): GNAT Calendar g-calend ads. 
  * GNAT.Calendar.Time_IO (g-catiio.ads): GNAT Calendar Time_IO g-catiio ads. 
  * GNAT.CRC32 (g-crc32.ads): GNAT CRC32 g-crc32 ads. 
*************** Curated Extensions
*** 905,910 ****
--- 912,918 ----
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  * First Controlling Parameter:: 
+ * Generalized Finalization:: 
  
  Deep delta Aggregates
  
*************** Deep delta Aggregates
*** 913,931 ****
  * 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
  
--- 921,948 ----
  * Dynamic Semantics:: 
  * Examples:: 
  
+ Generalized Finalization
+ 
+ * Finalizable tagged types:: 
+ * Composite types:: 
+ * Interoperability with controlled types:: 
+ 
  Experimental Language Extensions
  
  * Conditional when constructs:: 
+ * Implicit With:: 
  * Storage Model:: 
  * Attribute Super:: 
  * Simpler Accessibility Model:: 
  * Case pattern matching:: 
  * Mutably Tagged Types with Size’Class Aspect:: 
  * No_Raise aspect:: 
  * Inference of Dependent Types in Generic Instantiations:: 
  * External_Initialization Aspect:: 
  * Finally construct:: 
+ * Continue statement:: 
+ * Destructors:: 
+ * Structural Generic Instantiation:: 
  
  Storage Model
  
*************** Simpler Accessibility Model
*** 939,956 ****
  * Subprogram parameters:: 
  * Function results:: 
  
- Generalized Finalization
- 
- * Finalizable 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
  
  * Register Scrubbing:: 
--- 956,973 ----
  * Subprogram parameters:: 
  * Function results:: 
  
  Finally construct
  
  * Syntax: Syntax<2>. 
  * Legality Rules: Legality Rules<2>. 
  * Dynamic Semantics: Dynamic Semantics<2>. 
  
+ Structural Generic Instantiation
+ 
+ * Syntax: Syntax<3>. 
+ * Legality Rules: Legality Rules<3>. 
+ * Static Semantics:: 
+ 
  Security Hardening Features
  
  * Register Scrubbing:: 
*************** Security Hardening Features
*** 961,966 ****
--- 978,984 ----
  
  Obsolescent Features
  
+ * PolyORB:: 
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
*************** GNAT compiler.  It includes information
*** 1006,1012 ****
  characteristics of GNAT, including all the information required by
  Annex M of the Ada language standard.
  
! GNAT implements Ada 95, Ada 2005 and Ada 2012, 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
--- 1024,1030 ----
  characteristics of GNAT, including all the information required by
  Annex M of the Ada language standard.
  
! GNAT implements Ada 95, Ada 2005, Ada 2012 and Ada 2022, 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
*************** to GNAT’s implementation of machine co
*** 1111,1118 ****
  other features.
  
  @item 
! @ref{14,,Implementation of Ada 2012 Features}, describes the status of the
! GNAT implementation of the Ada 2012 language standard.
  
  @item 
  @ref{15,,Security Hardening Features} documents GNAT extensions aimed
--- 1129,1136 ----
  other features.
  
  @item 
! @ref{14,,Implementation of Ada 2022 Features}, describes the status of the
! GNAT implementation of the Ada 2022 language standard.
  
  @item 
  @ref{15,,Security Hardening Features} documents GNAT extensions aimed
*************** consideration, the use of these pragmas
*** 1276,1281 ****
--- 1294,1300 ----
  * Pragma Annotate:: 
  * Pragma Assert:: 
  * Pragma Assert_And_Cut:: 
+ * Pragma Assertion_Level:: 
  * Pragma Assertion_Policy:: 
  * Pragma Assume:: 
  * Pragma Assume_No_Invalid_Values:: 
*************** consideration, the use of these pragmas
*** 1404,1409 ****
--- 1423,1429 ----
  * Pragma Priority_Specific_Dispatching:: 
  * Pragma Profile:: 
  * Pragma Profile_Warnings:: 
+ * Pragma Program_Exit:: 
  * Pragma Propagate_Exceptions:: 
  * Pragma Provide_Shift_Operators:: 
  * Pragma Psect_Object:: 
*************** and generics may name types with unknown
*** 1576,1581 ****
--- 1596,1606 ----
  the @code{(<>)} notation.  In addition, some but not all of the additional
  restrictions of Ada 83 are enforced.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  Ada 83 mode is intended for two purposes.  Firstly, it allows existing
  Ada 83 code to be compiled and adapted to GNAT with less effort.
  Secondly, it aids in keeping code backwards compatible with Ada 83.
*************** contexts.  This pragma is useful when wr
*** 1603,1608 ****
--- 1628,1638 ----
  itself uses Ada 95 features, but which is intended to be usable from
  either Ada 83 or Ada 95 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  @node Pragma Ada_05,Pragma Ada_2005,Pragma Ada_95,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-ada-05}@anchor{21}
  @section Pragma Ada_05
*************** This pragma is useful when writing a reu
*** 1621,1626 ****
--- 1651,1661 ----
  itself uses Ada 2005 features, but which is intended to be usable from
  either Ada 83 or Ada 95 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form (which is not a configuration pragma)
  is used for managing the transition from
  Ada 95 to Ada 2005 in the run-time library. If an entity is marked
*************** contexts.  This pragma is useful when wr
*** 1666,1671 ****
--- 1701,1711 ----
  itself uses Ada 2012 features, but which is intended to be usable from
  Ada 83, Ada 95, or Ada 2005 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form, which is not a configuration pragma,
  is used for managing the transition from Ada
  2005 to Ada 2012 in the run-time library. If an entity is marked
*************** contexts.  This pragma is useful when wr
*** 1711,1716 ****
--- 1751,1761 ----
  itself uses Ada 2022 features, but which is intended to be usable from
  Ada 83, Ada 95, Ada 2005 or Ada 2012 programs.
  
+ Like all configuration pragmas, if the pragma is placed before a library
+ level package specification it is not propagated to the corresponding
+ package body (see RM 10.1.5(8)); it must be added explicitly to the
+ package body.
+ 
  The one argument form, which is not a configuration pragma,
  is used for managing the transition from Ada
  2012 to Ada 2022 in the run-time library. If an entity is marked
*************** The analyzed pragma is retained in the t
*** 1833,1841 ****
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools, including ASIS. The use of pragma Annotate does not
! affect the compilation process in any way. This pragma may be used as
! a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2c}
--- 1878,1885 ----
  by any part of the GNAT compiler, except to generate corresponding note
  lines in the generated ALI file. For the format of these note lines, see
  the compiler source file lib-writ.ads. This pragma is intended for use by
! external tools. The use of pragma Annotate does not affect the compilation
! process in any way. This pragma may be used as a configuration pragma.
  
  @node Pragma Assert,Pragma Assert_And_Cut,Pragma Annotate,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert}@anchor{2c}
*************** of Ada from 2005 on. In GNAT, it is impl
*** 1903,1909 ****
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
! @node Pragma Assert_And_Cut,Pragma Assertion_Policy,Pragma Assert,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2d}
  @section Pragma Assert_And_Cut
  
--- 1947,1957 ----
  of Ada, and the DISABLE policy is an implementation-defined
  addition.
  
! This is an assertion kind pragma that can associate a set of its arguments
! with an assertion level. See SPARK 2014 Reference Manual, section
! 11.4.2.
! 
! @node Pragma Assert_And_Cut,Pragma Assertion_Level,Pragma Assert,Implementation Defined Pragmas
  @anchor{gnat_rm/implementation_defined_pragmas pragma-assert-and-cut}@anchor{2d}
  @section Pragma Assert_And_Cut
  
*************** a subprogram into sections for the purpo
*** 1930,1937 ****
  formal verification. The pragma also serves as useful
  documentation.
  
! @node Pragma Assertion_Policy,Pragma Assume,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2e}
  @section Pragma Assertion_Policy
  
  
--- 1978,2008 ----
  formal verification. The pragma also serves as useful
  documentation.
  
! This is an assertion kind pragma that can associate a set of its arguments
! with an assertion level. See SPARK 2014 Reference Manual, section
! 11.4.2.
! 
! @node Pragma Assertion_Level,Pragma Assertion_Policy,Pragma Assert_And_Cut,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-level}@anchor{2e}
! @section Pragma Assertion_Level
! 
! 
! Syntax:
! 
! @example
! pragma Assertion_Level (LEVEL_IDENTIFIER
!                         [, depends => DEPENDENCY_DESCRIPTOR]);
! 
! DEPENDENCY_DESCRIPTOR ::= LEVEL_IDENTIFIER | LEVEL_IDENTIFIER_LIST
! 
! LEVEL_IDENTIFIER_LIST ::= '[' LEVEL_IDENTIFIER @{, LEVEL_IDENTIFIER@} ']'
! @end example
! 
! For the semantics of this pragma, see the SPARK 2014 Reference Manual,
! section 11.4.3.
! 
! @node Pragma Assertion_Policy,Pragma Assume,Pragma Assertion_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assertion-policy}@anchor{2f}
  @section Pragma Assertion_Policy
  
  
*************** pragma Assertion_Policy (
*** 1944,1950 ****
      ASSERTION_KIND => POLICY_IDENTIFIER
   @{, ASSERTION_KIND => POLICY_IDENTIFIER@});
  
! ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND
  
  RM_ASSERTION_KIND ::= Assert                    |
                        Static_Predicate          |
--- 2015,2021 ----
      ASSERTION_KIND => POLICY_IDENTIFIER
   @{, ASSERTION_KIND => POLICY_IDENTIFIER@});
  
! ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND | ASSERTION_LEVEL
  
  RM_ASSERTION_KIND ::= Assert                    |
                        Static_Predicate          |
*************** The assertion kinds @code{RM_ASSERTION_K
*** 1984,1989 ****
--- 2055,2064 ----
  the Ada standard. The assertion kinds @code{ID_ASSERTION_KIND}
  are implementation defined additions recognized by the GNAT compiler.
  
+ Additionally the pragma can apply to an assertion level defined by the
+ @code{Assertion_Level} pragma. For more details see the SPARK 2014 Reference
+ Manual, section 11.4.2.
+ 
  The pragma applies in both cases to pragmas and aspects with matching
  names, e.g. @code{Pre} applies to the Pre aspect, and @code{Precondition}
  applies to both the @code{Precondition} pragma
*************** applies to @code{Assert}, @code{Assert_A
*** 2018,2024 ****
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{2f}
  @section Pragma Assume
  
  
--- 2093,2099 ----
  @code{Assume}, @code{Loop_Invariant}, and @code{Loop_Variant}.
  
  @node Pragma Assume,Pragma Assume_No_Invalid_Values,Pragma Assertion_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume}@anchor{30}
  @section Pragma Assume
  
  
*************** but it acts as a useful run-time check t
*** 2051,2058 ****
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{30}
  @section Pragma Assume_No_Invalid_Values
  
  
--- 2126,2137 ----
  is met, and documents the need to ensure that it is met by
  reference to information outside the program.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Assume_No_Invalid_Values,Pragma Async_Readers,Pragma Assume,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-assume-no-invalid-values}@anchor{31}
  @section Pragma Assume_No_Invalid_Values
  
  
*************** is erroneous so there are no guarantees
*** 2105,2111 ****
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{31}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{32}
  @section Pragma Async_Readers
  
  
--- 2184,2190 ----
  case, and it is recommended that these two options not be used together.
  
  @node Pragma Async_Readers,Pragma Async_Writers,Pragma Assume_No_Invalid_Values,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id5}@anchor{32}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-readers}@anchor{33}
  @section Pragma Async_Readers
  
  
*************** For the semantics of this pragma, see th
*** 2119,2125 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{33}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{34}
  @section Pragma Async_Writers
  
  
--- 2198,2204 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Async_Writers,Pragma Attribute_Definition,Pragma Async_Readers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id6}@anchor{34}@anchor{gnat_rm/implementation_defined_pragmas pragma-async-writers}@anchor{35}
  @section Pragma Async_Writers
  
  
*************** For the semantics of this pragma, see th
*** 2133,2139 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{35}
  @section Pragma Attribute_Definition
  
  
--- 2212,2218 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Attribute_Definition,Pragma C_Pass_By_Copy,Pragma Async_Writers,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-attribute-definition}@anchor{36}
  @section Pragma Attribute_Definition
  
  
*************** code to be written that takes advantage
*** 2159,2165 ****
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{36}
  @section Pragma C_Pass_By_Copy
  
  
--- 2238,2244 ----
  compilable with earlier compilers.
  
  @node Pragma C_Pass_By_Copy,Pragma Check,Pragma Attribute_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-c-pass-by-copy}@anchor{37}
  @section Pragma C_Pass_By_Copy
  
  
*************** You can also pass records by copy by spe
*** 2203,2209 ****
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{37}
  @section Pragma Check
  
  
--- 2282,2288 ----
  passing mechanisms on a parameter by parameter basis.
  
  @node Pragma Check,Pragma Check_Float_Overflow,Pragma C_Pass_By_Copy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check}@anchor{38}
  @section Pragma Check
  
  
*************** of these identifiers in @code{Assertion_
*** 2242,2248 ****
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{38}
  @section Pragma Check_Float_Overflow
  
  
--- 2321,2327 ----
  pragmas, where they are used to refer to sets of assertions.
  
  @node Pragma Check_Float_Overflow,Pragma Check_Name,Pragma Check,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-float-overflow}@anchor{39}
  @section Pragma Check_Float_Overflow
  
  
*************** This mode can also be set by use of the
*** 2298,2304 ****
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{39}
  @section Pragma Check_Name
  
  
--- 2377,2383 ----
  switch `-gnateF'.
  
  @node Pragma Check_Name,Pragma Check_Policy,Pragma Check_Float_Overflow,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-name}@anchor{3a}
  @section Pragma Check_Name
  
  
*************** Check names introduced by this pragma ar
*** 2334,2340 ****
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{3a}
  @section Pragma Check_Policy
  
  
--- 2413,2419 ----
  switches (in particular -gnatp) in the usual manner.
  
  @node Pragma Check_Policy,Pragma Comment,Pragma Check_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-check-policy}@anchor{3b}
  @section Pragma Check_Policy
  
  
*************** policy setting @code{DISABLE} causes the
*** 2414,2420 ****
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{3b}
  @section Pragma Comment
  
  
--- 2493,2499 ----
  @code{Check} pragma to be completely ignored and not analyzed.
  
  @node Pragma Comment,Pragma Common_Object,Pragma Check_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-comment}@anchor{3c}
  @section Pragma Comment
  
  
*************** anywhere in the main source unit), and i
*** 2433,2439 ****
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3c}
  @section Pragma Common_Object
  
  
--- 2512,2518 ----
  is used, all comments are retained.
  
  @node Pragma Common_Object,Pragma Compile_Time_Error,Pragma Comment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-common-object}@anchor{3d}
  @section Pragma Common_Object
  
  
*************** indicating that the necessary attribute
*** 2465,2471 ****
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3d}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3e}
  @section Pragma Compile_Time_Error
  
  
--- 2544,2550 ----
  pragma is not available.
  
  @node Pragma Compile_Time_Error,Pragma Compile_Time_Warning,Pragma Common_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas compile-time-error}@anchor{3e}@anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-error}@anchor{3f}
  @section Pragma Compile_Time_Error
  
  
*************** the value given as the second argument.
*** 2492,2498 ****
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{3f}
  @section Pragma Compile_Time_Warning
  
  
--- 2571,2577 ----
  embedded ASCII.LF characters to break the message into multiple lines.
  
  @node Pragma Compile_Time_Warning,Pragma Complete_Representation,Pragma Compile_Time_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-compile-time-warning}@anchor{40}
  @section Pragma Compile_Time_Warning
  
  
*************** for example that it is not fully impleme
*** 2519,2529 ****
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3d,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{40}
  @section Pragma Complete_Representation
  
  
--- 2598,2608 ----
  
  In previous versions of the compiler, combining `-gnatwe' with
  Compile_Time_Warning resulted in a fatal error. Now the compiler always emits
! a warning. You can use @ref{3e,,Pragma Compile_Time_Error} to force the generation of
  an error.
  
  @node Pragma Complete_Representation,Pragma Complex_Representation,Pragma Compile_Time_Warning,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complete-representation}@anchor{41}
  @section Pragma Complete_Representation
  
  
*************** complete, and that this invariant is mai
*** 2542,2548 ****
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{41}
  @section Pragma Complex_Representation
  
  
--- 2621,2627 ----
  added to the record in the future.
  
  @node Pragma Complex_Representation,Pragma Component_Alignment,Pragma Complete_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-complex-representation}@anchor{42}
  @section Pragma Complex_Representation
  
  
*************** records by pointer, and the use of this
*** 2564,2570 ****
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{42}
  @section Pragma Component_Alignment
  
  
--- 2643,2649 ----
  this type in floating-point registers.
  
  @node Pragma Component_Alignment,Pragma Constant_After_Elaboration,Pragma Complex_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-component-alignment}@anchor{43}
  @section Pragma Component_Alignment
  
  
*************** pragma @code{Pack}, pragma @code{Compone
*** 2655,2661 ****
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{43}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{44}
  @section Pragma Constant_After_Elaboration
  
  
--- 2734,2740 ----
  clause), the GNAT uses the default alignment as described previously.
  
  @node Pragma Constant_After_Elaboration,Pragma Contract_Cases,Pragma Component_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id7}@anchor{44}@anchor{gnat_rm/implementation_defined_pragmas pragma-constant-after-elaboration}@anchor{45}
  @section Pragma Constant_After_Elaboration
  
  
*************** For the semantics of this pragma, see th
*** 2669,2675 ****
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{45}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{46}
  @section Pragma Contract_Cases
  
  
--- 2748,2754 ----
  @code{Constant_After_Elaboration} in the SPARK 2014 Reference Manual, section 3.3.1.
  
  @node Pragma Contract_Cases,Pragma Convention_Identifier,Pragma Constant_After_Elaboration,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id8}@anchor{46}@anchor{gnat_rm/implementation_defined_pragmas pragma-contract-cases}@anchor{47}
  @section Pragma Contract_Cases
  
  
*************** call, as determined by the corresponding
*** 2753,2760 ****
  and that the consequence for this case should hold when the subprogram
  returns.
  
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{47}
  @section Pragma Convention_Identifier
  
  
--- 2832,2843 ----
  and that the consequence for this case should hold when the subprogram
  returns.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Convention_Identifier,Pragma CPP_Class,Pragma Contract_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-convention-identifier}@anchor{48}
  @section Pragma Convention_Identifier
  
  
*************** define a convention identifier @code{Lib
*** 2790,2796 ****
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{48}
  @section Pragma CPP_Class
  
  
--- 2873,2879 ----
  would be used system-wide.
  
  @node Pragma CPP_Class,Pragma CPP_Constructor,Pragma Convention_Identifier,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-class}@anchor{49}
  @section Pragma CPP_Class
  
  
*************** functions (see pragma @code{CPP_Construc
*** 2815,2828 ****
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{4a}
  @section Pragma CPP_Constructor
  
  
--- 2898,2911 ----
  limited if not explicitly declared as limited or derived from a limited
  type, and an error is issued in that case.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  Note: Pragma @code{CPP_Class} is currently obsolete. It is supported
  for backward compatibility but its functionality is available
  using pragma @code{Import} with @code{Convention} = @code{CPP}.
  
  @node Pragma CPP_Constructor,Pragma CPP_Virtual,Pragma CPP_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-constructor}@anchor{4b}
  @section Pragma CPP_Constructor
  
  
*************** on the Ada side and the type is implicit
*** 2873,2879 ****
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{49,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
--- 2956,2962 ----
  Pragma @code{CPP_Constructor} is intended primarily for automatic generation
  using an automatic binding generator tool (such as the @code{-fdump-ada-spec}
  GCC switch).
! See @ref{4a,,Interfacing to C++} for more related information.
  
  Note: The use of functions returning class-wide types for constructors is
  currently obsolete. They are supported for backward compatibility. The
*************** because the imported C++ constructors al
*** 2882,2888 ****
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{4b}
  @section Pragma CPP_Virtual
  
  
--- 2965,2971 ----
  that is, they never return an object whose type is a descendant of type T.
  
  @node Pragma CPP_Virtual,Pragma CPP_Vtable,Pragma CPP_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-virtual}@anchor{4c}
  @section Pragma CPP_Virtual
  
  
*************** purposes. It used to be required to ensu
*** 2895,2904 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4c}
  @section Pragma CPP_Vtable
  
  
--- 2978,2987 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  @node Pragma CPP_Vtable,Pragma CPU,Pragma CPP_Virtual,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpp-vtable}@anchor{4d}
  @section Pragma CPP_Vtable
  
  
*************** It used to be required to ensure compati
*** 2910,2919 ****
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{49,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4d}
  @section Pragma CPU
  
  
--- 2993,3002 ----
  is no longer required for that purpose because GNAT generates
  the same object layout as the G++ compiler by default.
  
! See @ref{4a,,Interfacing to C++} for related information.
  
  @node Pragma CPU,Pragma Deadline_Floor,Pragma CPP_Vtable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-cpu}@anchor{4e}
  @section Pragma CPU
  
  
*************** versions of Ada as an implementation-def
*** 2928,2934 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4e}
  @section Pragma Deadline_Floor
  
  
--- 3011,3017 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Deadline_Floor,Pragma Debug,Pragma CPU,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-deadline-floor}@anchor{4f}
  @section Pragma Deadline_Floor
  
  
*************** deadline inherited by a task when the ta
*** 2943,2949 ****
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{4f}
  @section Pragma Debug
  
  
--- 3026,3032 ----
  It is effective only when the EDF scheduling policy is used.
  
  @node Pragma Debug,Pragma Debug_Policy,Pragma Deadline_Floor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug}@anchor{50}
  @section Pragma Debug
  
  
*************** pragmas can be enabled either by use of
*** 2970,2977 ****
  or by use of the pragma @code{Check_Policy} with a first argument of
  @code{Debug}.
  
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{50}
  @section Pragma Debug_Policy
  
  
--- 3053,3064 ----
  or by use of the pragma @code{Check_Policy} with a first argument of
  @code{Debug}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Debug_Policy,Pragma Default_Initial_Condition,Pragma Debug,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-debug-policy}@anchor{51}
  @section Pragma Debug_Policy
  
  
*************** with a first argument of @code{Debug}. I
*** 2986,2992 ****
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{51}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{52}
  @section Pragma Default_Initial_Condition
  
  
--- 3073,3079 ----
  compatibility reasons.
  
  @node Pragma Default_Initial_Condition,Pragma Default_Scalar_Storage_Order,Pragma Debug_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id9}@anchor{52}@anchor{gnat_rm/implementation_defined_pragmas pragma-default-initial-condition}@anchor{53}
  @section Pragma Default_Initial_Condition
  
  
*************** pragma Default_Initial_Condition [ (null
*** 2999,3006 ****
  For the semantics of this pragma, see the entry for aspect
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{53}
  @section Pragma Default_Scalar_Storage_Order
  
  
--- 3086,3097 ----
  For the semantics of this pragma, see the entry for aspect
  @code{Default_Initial_Condition} in the SPARK 2014 Reference Manual, section 7.3.3.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Default_Scalar_Storage_Order,Pragma Default_Storage_Pool,Pragma Default_Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-scalar-storage-order}@anchor{54}
  @section Pragma Default_Scalar_Storage_Order
  
  
*************** it may significantly degrade the run-tim
*** 3073,3079 ****
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{54}
  @section Pragma Default_Storage_Pool
  
  
--- 3164,3170 ----
  the default scalar storage order ought to be changed only on a local basis.
  
  @node Pragma Default_Storage_Pool,Pragma Depends,Pragma Default_Scalar_Storage_Order,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-default-storage-pool}@anchor{55}
  @section Pragma Default_Storage_Pool
  
  
*************** versions of Ada as an implementation-def
*** 3090,3096 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{55}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{56}
  @section Pragma Depends
  
  
--- 3181,3187 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Depends,Pragma Detect_Blocking,Pragma Default_Storage_Pool,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id10}@anchor{56}@anchor{gnat_rm/implementation_defined_pragmas pragma-depends}@anchor{57}
  @section Pragma Depends
  
  
*************** For the semantics of this pragma, see th
*** 3123,3129 ****
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{57}
  @section Pragma Detect_Blocking
  
  
--- 3214,3220 ----
  SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Detect_Blocking,Pragma Disable_Atomic_Synchronization,Pragma Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-detect-blocking}@anchor{58}
  @section Pragma Detect_Blocking
  
  
*************** blocking operations within a protected o
*** 3141,3147 ****
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{58}
  @section Pragma Disable_Atomic_Synchronization
  
  
--- 3232,3238 ----
  if that happens.
  
  @node Pragma Disable_Atomic_Synchronization,Pragma Dispatching_Domain,Pragma Detect_Blocking,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-disable-atomic-synchronization}@anchor{59}
  @section Pragma Disable_Atomic_Synchronization
  
  
*************** until the end of the scope. If an @code{
*** 3170,3176 ****
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{59}
  @section Pragma Dispatching_Domain
  
  
--- 3261,3267 ----
  the action applies only to that entity.
  
  @node Pragma Dispatching_Domain,Pragma Effective_Reads,Pragma Disable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-dispatching-domain}@anchor{5a}
  @section Pragma Dispatching_Domain
  
  
*************** versions of Ada as an implementation-def
*** 3185,3191 ****
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5a}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{5b}
  @section Pragma Effective_Reads
  
  
--- 3276,3282 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Effective_Reads,Pragma Effective_Writes,Pragma Dispatching_Domain,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id11}@anchor{5b}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-reads}@anchor{5c}
  @section Pragma Effective_Reads
  
  
*************** For the semantics of this pragma, see th
*** 3199,3205 ****
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{5c}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5d}
  @section Pragma Effective_Writes
  
  
--- 3290,3296 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Effective_Writes,Pragma Elaboration_Checks,Pragma Effective_Reads,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id12}@anchor{5d}@anchor{gnat_rm/implementation_defined_pragmas pragma-effective-writes}@anchor{5e}
  @section Pragma Effective_Writes
  
  
*************** For the semantics of this pragma, see th
*** 3213,3219 ****
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5e}
  @section Pragma Elaboration_Checks
  
  
--- 3304,3310 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Elaboration_Checks,Pragma Eliminate,Pragma Effective_Writes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-elaboration-checks}@anchor{5f}
  @section Pragma Elaboration_Checks
  
  
*************** effect. If the pragma argument is @code{
*** 3250,3256 ****
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{5f}
  @section Pragma Eliminate
  
  
--- 3341,3347 ----
  is in effect.
  
  @node Pragma Eliminate,Pragma Enable_Atomic_Synchronization,Pragma Elaboration_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-eliminate}@anchor{60}
  @section Pragma Eliminate
  
  
*************** pragma Eliminate (Q, Proc,
*** 3417,3423 ****
  @end quotation
  
  @node Pragma Enable_Atomic_Synchronization,Pragma Exceptional_Cases,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{60}
  @section Pragma Enable_Atomic_Synchronization
  
  
--- 3508,3514 ----
  @end quotation
  
  @node Pragma Enable_Atomic_Synchronization,Pragma Exceptional_Cases,Pragma Eliminate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-enable-atomic-synchronization}@anchor{61}
  @section Pragma Enable_Atomic_Synchronization
  
  
*************** Reenables atomic synchronization; see @c
*** 3433,3439 ****
  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
  
  
--- 3524,3530 ----
  for details.
  
  @node Pragma Exceptional_Cases,Pragma Exit_Cases,Pragma Enable_Atomic_Synchronization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exceptional-cases}@anchor{62}
  @section Pragma Exceptional_Cases
  
  
*************** For the semantics of this aspect, see th
*** 3453,3459 ****
  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
  
  
--- 3544,3550 ----
  6.1.9.
  
  @node Pragma Exit_Cases,Pragma Export_Function,Pragma Exceptional_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-exit-cases}@anchor{63}
  @section Pragma Exit_Cases
  
  
*************** EXIT_CASE      ::= GUARD => EXIT_KIND
*** 3469,3474 ****
--- 3560,3566 ----
  EXIT_KIND      ::= Normal_Return
                   | Exception_Raised
                   | (Exception_Raised => exception_name)
+                  | Program_Exit
  GUARD          ::= Boolean_expression
  @end example
  
*************** For the semantics of this aspect, see th
*** 3476,3482 ****
  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
  
  
--- 3568,3574 ----
  6.1.10.
  
  @node Pragma Export_Function,Pragma Export_Object,Pragma Exit_Cases,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-function}@anchor{64}
  @section Pragma Export_Function
  
  
*************** string. In this case, no external name i
*** 3548,3554 ****
  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
  
  
--- 3640,3646 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Object,Pragma Export_Procedure,Pragma Export_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-object}@anchor{65}
  @section Pragma Export_Object
  
  
*************** of portability), but it is not required.
*** 3573,3579 ****
  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
  
  
--- 3665,3671 ----
  but otherwise ignored by GNAT.
  
  @node Pragma Export_Procedure,Pragma Export_Valued_Procedure,Pragma Export_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-procedure}@anchor{66}
  @section Pragma Export_Procedure
  
  
*************** string. In this case, no external name i
*** 3626,3632 ****
  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
  
  
--- 3718,3724 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Export_Valued_Procedure,Pragma Extend_System,Pragma Export_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-export-valued-procedure}@anchor{67}
  @section Pragma Export_Valued_Procedure
  
  
*************** string. In this case, no external name i
*** 3684,3690 ****
  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
  
  
--- 3776,3782 ----
  still allows the specification of parameter mechanisms.
  
  @node Pragma Extend_System,Pragma Extensions_Allowed,Pragma Export_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-extend-system}@anchor{68}
  @section Pragma Extend_System
  
  
*************** for compiling System units, as explained
*** 3735,3741 ****
  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
  
  
--- 3827,3833 ----
  GNAT User’s Guide.
  
  @node Pragma Extensions_Allowed,Pragma Extensions_Visible,Pragma Extend_System,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id13}@anchor{69}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-allowed}@anchor{6a}
  @section Pragma Extensions_Allowed
  
  
*************** pragma takes precedence over the @code{-
*** 3756,3769 ****
  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
  
  
--- 3848,3861 ----
  If an argument of @code{"On"} is specified, the latest version of the Ada language
  is implemented (currently Ada 2022) and, in addition, a curated set of GNAT
  specific extensions are recognized. (See the list here
! @ref{6b,,here})
  
  An argument of @code{"All_Extensions"} has the same effect except that some extra
  experimental extensions are enabled (See the list here
! @ref{6c,,here})
  
  @node Pragma Extensions_Visible,Pragma External,Pragma Extensions_Allowed,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id14}@anchor{6d}@anchor{gnat_rm/implementation_defined_pragmas pragma-extensions-visible}@anchor{6e}
  @section Pragma Extensions_Visible
  
  
*************** For the semantics of this pragma, see th
*** 3777,3783 ****
  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
  
  
--- 3869,3875 ----
  in the SPARK 2014 Reference Manual, section 6.1.7.
  
  @node Pragma External,Pragma External_Name_Casing,Pragma Extensions_Visible,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external}@anchor{6f}
  @section Pragma External
  
  
*************** used this pragma for exactly the same pu
*** 3798,3804 ****
  @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
  
  
--- 3890,3896 ----
  @code{Export} before the latter was standardized.
  
  @node Pragma External_Name_Casing,Pragma Fast_Math,Pragma External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-external-name-casing}@anchor{70}
  @section Pragma External_Name_Casing
  
  
*************** pragma External_Name_Casing (Uppercase,
*** 3887,3893 ****
  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
  
  
--- 3979,3985 ----
  to enforce the upper casing of all external symbols.
  
  @node Pragma Fast_Math,Pragma Favor_Top_Level,Pragma External_Name_Casing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-fast-math}@anchor{71}
  @section Pragma Fast_Math
  
  
*************** under control of the pragma, rather than
*** 3916,3922 ****
  @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
  
  
--- 4008,4014 ----
  @end table
  
  @node Pragma Favor_Top_Level,Pragma Finalize_Storage_Only,Pragma Fast_Math,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id15}@anchor{72}@anchor{gnat_rm/implementation_defined_pragmas pragma-favor-top-level}@anchor{73}
  @section Pragma Favor_Top_Level
  
  
*************** When this pragma is used, dynamically ge
*** 3935,3941 ****
  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
  
  
--- 4027,4033 ----
  targets for nested subprograms. See restriction @code{No_Implicit_Dynamic_Code}.
  
  @node Pragma Finalize_Storage_Only,Pragma Float_Representation,Pragma Favor_Top_Level,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-finalize-storage-only}@anchor{74}
  @section Pragma Finalize_Storage_Only
  
  
*************** name. Note that this pragma does not sup
*** 3955,3961 ****
  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
  
  
--- 4047,4053 ----
  heap-allocated objects (see pragma @code{No_Heap_Finalization}).
  
  @node Pragma Float_Representation,Pragma Ghost,Pragma Finalize_Storage_Only,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-float-representation}@anchor{75}
  @section Pragma Float_Representation
  
  
*************** No other value of digits is permitted.
*** 3990,3996 ****
  @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
  
  
--- 4082,4088 ----
  @end itemize
  
  @node Pragma Ghost,Pragma Global,Pragma Float_Representation,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id16}@anchor{76}@anchor{gnat_rm/implementation_defined_pragmas pragma-ghost}@anchor{77}
  @section Pragma Ghost
  
  
*************** For the semantics of this pragma, see th
*** 4004,4010 ****
  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
  
  
--- 4096,4102 ----
  2014 Reference Manual, section 6.9.
  
  @node Pragma Global,Pragma Ident,Pragma Ghost,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id17}@anchor{78}@anchor{gnat_rm/implementation_defined_pragmas pragma-global}@anchor{79}
  @section Pragma Global
  
  
*************** For the semantics of this pragma, see th
*** 4029,4035 ****
  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
  
  
--- 4121,4127 ----
  SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Ident,Pragma Ignore_Pragma,Pragma Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ident}@anchor{7a}
  @section Pragma Ident
  
  
*************** This pragma is identical in effect to pr
*** 4043,4049 ****
  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
  
  
--- 4135,4141 ----
  for compatibility with other Ada compilers providing this pragma.
  
  @node Pragma Ignore_Pragma,Pragma Implementation_Defined,Pragma Ident,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ignore-pragma}@anchor{7b}
  @section Pragma Ignore_Pragma
  
  
*************** pragma allows such pragmas to be ignored
*** 4065,4071 ****
  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
  
  
--- 4157,4163 ----
  mode, or during porting of legacy code.
  
  @node Pragma Implementation_Defined,Pragma Implemented,Pragma Ignore_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implementation-defined}@anchor{7c}
  @section Pragma Implementation_Defined
  
  
*************** for the purpose of implementing the No_I
*** 4092,4098 ****
  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
  
  
--- 4184,4190 ----
  restriction.
  
  @node Pragma Implemented,Pragma Implicit_Packing,Pragma Implementation_Defined,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implemented}@anchor{7d}
  @section Pragma Implemented
  
  
*************** By_Any shares the behavior of By_Entry a
*** 4138,4144 ****
  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
  
  
--- 4230,4236 ----
  the target’s overriding subprogram kind.
  
  @node Pragma Implicit_Packing,Pragma Import_Function,Pragma Implemented,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-implicit-packing}@anchor{7e}
  @section Pragma Implicit_Packing
  
  
*************** sufficient. The use of pragma Implicit_P
*** 4192,4198 ****
  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
  
  
--- 4284,4290 ----
  declaration to compile without an explicit pragma Pack.
  
  @node Pragma Import_Function,Pragma Import_Object,Pragma Implicit_Packing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-function}@anchor{7f}
  @section Pragma Import_Function
  
  
*************** notation.  If the mechanism is not speci
*** 4257,4263 ****
  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
  
  
--- 4349,4355 ----
  is used.
  
  @node Pragma Import_Object,Pragma Import_Procedure,Pragma Import_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-object}@anchor{80}
  @section Pragma Import_Object
  
  
*************** point of view).  @code{size} is syntax c
*** 4283,4289 ****
  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
  
  
--- 4375,4381 ----
  GNAT.
  
  @node Pragma Import_Procedure,Pragma Import_Valued_Procedure,Pragma Import_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-procedure}@anchor{81}
  @section Pragma Import_Procedure
  
  
*************** applies to a procedure rather than a fun
*** 4323,4329 ****
  @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
  
  
--- 4415,4421 ----
  @code{Result_Type} and @code{Result_Mechanism} are not permitted.
  
  @node Pragma Import_Valued_Procedure,Pragma Independent,Pragma Import_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-import-valued-procedure}@anchor{82}
  @section Pragma Import_Valued_Procedure
  
  
*************** pragma Import that specifies the desired
*** 4376,4382 ****
  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
  
  
--- 4468,4474 ----
  default convention is Ada, which is almost certainly not what is required.
  
  @node Pragma Independent,Pragma Independent_Components,Pragma Import_Valued_Procedure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent}@anchor{83}
  @section Pragma Independent
  
  
*************** constraints on the representation of the
*** 4398,4404 ****
  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
  
  
--- 4490,4496 ----
  tight packing).
  
  @node Pragma Independent_Components,Pragma Initial_Condition,Pragma Independent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-independent-components}@anchor{84}
  @section Pragma Independent_Components
  
  
*************** constraints on the representation of the
*** 4419,4425 ****
  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
  
  
--- 4511,4517 ----
  tight packing).
  
  @node Pragma Initial_Condition,Pragma Initialize_Scalars,Pragma Independent_Components,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id18}@anchor{85}@anchor{gnat_rm/implementation_defined_pragmas pragma-initial-condition}@anchor{86}
  @section Pragma Initial_Condition
  
  
*************** pragma Initial_Condition (boolean_EXPRES
*** 4432,4439 ****
  For the semantics of this pragma, see the entry for aspect @code{Initial_Condition}
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{86}
  @section Pragma Initialize_Scalars
  
  
--- 4524,4535 ----
  For the semantics of this pragma, see the entry for aspect @code{Initial_Condition}
  in the SPARK 2014 Reference Manual, section 7.1.6.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Initialize_Scalars,Pragma Initializes,Pragma Initial_Condition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-initialize-scalars}@anchor{87}
  @section Pragma Initialize_Scalars
  
  
*************** good idea to turn on stack checking (see
*** 4542,4548 ****
  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
  
  
--- 4638,4644 ----
  GNAT User’s Guide) when using this pragma.
  
  @node Pragma Initializes,Pragma Inline_Always,Pragma Initialize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id19}@anchor{88}@anchor{gnat_rm/implementation_defined_pragmas pragma-initializes}@anchor{89}
  @section Pragma Initializes
  
  
*************** For the semantics of this pragma, see th
*** 4569,4575 ****
  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
  
  
--- 4665,4671 ----
  SPARK 2014 Reference Manual, section 7.1.5.
  
  @node Pragma Inline_Always,Pragma Inline_Generic,Pragma Initializes,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id20}@anchor{8a}@anchor{gnat_rm/implementation_defined_pragmas pragma-inline-always}@anchor{8b}
  @section Pragma Inline_Always
  
  
*************** apply this pragma to a primitive operati
*** 4588,4594 ****
  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
  
  
--- 4684,4690 ----
  restrictions, the compiler is allowed to remove the out-of-line body of @code{NAME}.
  
  @node Pragma Inline_Generic,Pragma Interface,Pragma Inline_Always,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-inline-generic}@anchor{8c}
  @section Pragma Inline_Generic
  
  
*************** than to check that the given names are a
*** 4606,4612 ****
  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
  
  
--- 4702,4708 ----
  generic instances.
  
  @node Pragma Interface,Pragma Interface_Name,Pragma Inline_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface}@anchor{8d}
  @section Pragma Interface
  
  
*************** maintaining Ada 83/Ada 95 compatibility
*** 4633,4639 ****
  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
  
  
--- 4729,4735 ----
  Ada 83 compilers.
  
  @node Pragma Interface_Name,Pragma Interrupt_Handler,Pragma Interface,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interface-name}@anchor{8e}
  @section Pragma Interface_Name
  
  
*************** for an interfaced subprogram, and is pro
*** 4652,4658 ****
  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
  
  
--- 4748,4754 ----
  least one of @code{External_Name} or @code{Link_Name}.
  
  @node Pragma Interrupt_Handler,Pragma Interrupt_State,Pragma Interface_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-handler}@anchor{8f}
  @section Pragma Interrupt_Handler
  
  
*************** This program unit pragma is supported fo
*** 4666,4672 ****
  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
  
  
--- 4762,4768 ----
  as described in Annex C of the Ada Reference Manual.
  
  @node Pragma Interrupt_State,Pragma Interrupts_System_By_Default,Pragma Interrupt_Handler,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupt-state}@anchor{90}
  @section Pragma Interrupt_State
  
  
*************** pragma Interrupt_State
*** 4681,4688 ****
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for an @code{Ctrl-C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl-C} can be used to
  interrupt execution.  Additionally, signals such as @code{SIGSEGV},
  @code{SIGABRT}, @code{SIGFPE} and @code{SIGILL} are often mapped to specific
  Ada exceptions, or used to implement run-time functions such as the
--- 4777,4784 ----
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for an @code{Ctrl}-@code{C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl}-@code{C} can be used to
  interrupt execution.  Additionally, signals such as @code{SIGSEGV},
  @code{SIGABRT}, @code{SIGFPE} and @code{SIGILL} are often mapped to specific
  Ada exceptions, or used to implement run-time functions such as the
*************** with an application’s runtime behavior
*** 4752,4758 ****
  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
  
  
--- 4848,4854 ----
  and in the case of the signal used to implement the @code{abort} statement.
  
  @node Pragma Interrupts_System_By_Default,Pragma Invariant,Pragma Interrupt_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-interrupts-system-by-default}@anchor{91}
  @section Pragma Interrupts_System_By_Default
  
  
*************** Default all interrupts to the System sta
*** 4766,4772 ****
  @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
  
  
--- 4862,4868 ----
  @code{Interrupt_State}. This is a configuration pragma.
  
  @node Pragma Invariant,Pragma Keep_Names,Pragma Interrupts_System_By_Default,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id21}@anchor{92}@anchor{gnat_rm/implementation_defined_pragmas pragma-invariant}@anchor{93}
  @section Pragma Invariant
  
  
*************** invariant pragma for the same entity.
*** 4804,4811 ****
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{93}
  @section Pragma Keep_Names
  
  
--- 4900,4911 ----
  For further details on the use of this pragma, see the Ada 2012 documentation
  of the Type_Invariant aspect.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Keep_Names,Pragma License,Pragma Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-keep-names}@anchor{94}
  @section Pragma Keep_Names
  
  
*************** use a @code{Discard_Names} pragma in the
*** 4825,4831 ****
  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
  
  
--- 4925,4931 ----
  want to retain the names for specific enumeration types.
  
  @node Pragma License,Pragma Link_With,Pragma Keep_Names,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-license}@anchor{95}
  @section Pragma License
  
  
*************** GPL, but no warning for @code{GNAT.Socke
*** 4920,4926 ****
  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
  
  
--- 5020,5026 ----
  run time, and is therefore licensed under the modified GPL.
  
  @node Pragma Link_With,Pragma Linker_Alias,Pragma License,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-link-with}@anchor{96}
  @section Pragma Link_With
  
  
*************** separate arguments to the linker. In add
*** 4944,4950 ****
  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
  
  
--- 5044,5050 ----
  multiple arguments, with the same effect as successive pragmas.
  
  @node Pragma Linker_Alias,Pragma Linker_Constructor,Pragma Link_With,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-alias}@anchor{97}
  @section Pragma Linker_Alias
  
  
*************** end p;
*** 4985,4991 ****
  @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
  
  
--- 5085,5091 ----
  @end example
  
  @node Pragma Linker_Constructor,Pragma Linker_Destructor,Pragma Linker_Alias,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-constructor}@anchor{98}
  @section Pragma Linker_Constructor
  
  
*************** listed above. Where possible, the use of
*** 5015,5021 ****
  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
  
  
--- 5115,5121 ----
  to the use of this pragma.
  
  @node Pragma Linker_Destructor,Pragma Linker_Section,Pragma Linker_Constructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-linker-destructor}@anchor{99}
  @section Pragma Linker_Destructor
  
  
*************** See @code{pragma Linker_Constructor} for
*** 5038,5044 ****
  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
  
  
--- 5138,5144 ----
  because of these specific contexts.
  
  @node Pragma Linker_Section,Pragma Lock_Free,Pragma Linker_Destructor,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id22}@anchor{9a}@anchor{gnat_rm/implementation_defined_pragmas pragma-linker-section}@anchor{9b}
  @section Pragma Linker_Section
  
  
*************** end IO_Card;
*** 5112,5118 ****
  @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
  
  
--- 5212,5218 ----
  @end example
  
  @node Pragma Lock_Free,Pragma Loop_Invariant,Pragma Linker_Section,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id23}@anchor{9c}@anchor{gnat_rm/implementation_defined_pragmas pragma-lock-free}@anchor{9d}
  @section Pragma Lock_Free
  
  
*************** Ada RM D.3) are not performed when a pro
*** 5175,5181 ****
  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
  
  
--- 5275,5281 ----
  unit is executed.
  
  @node Pragma Loop_Invariant,Pragma Loop_Optimize,Pragma Lock_Free,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-invariant}@anchor{9e}
  @section Pragma Loop_Invariant
  
  
*************** may be used to refer to the value of an
*** 5207,5214 ****
  attribute can only be used within the expression of a @code{Loop_Invariant}
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{9e}
  @section Pragma Loop_Optimize
  
  
--- 5307,5318 ----
  attribute can only be used within the expression of a @code{Loop_Invariant}
  pragma. For full details, see documentation of attribute @code{Loop_Entry}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Loop_Optimize,Pragma Loop_Variant,Pragma Loop_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-optimize}@anchor{9f}
  @section Pragma Loop_Optimize
  
  
*************** compiler in order to enable the relevant
*** 5270,5276 ****
  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
  
  
--- 5374,5380 ----
  vectorization.
  
  @node Pragma Loop_Variant,Pragma Machine_Attribute,Pragma Loop_Optimize,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-loop-variant}@anchor{a0}
  @section Pragma Loop_Variant
  
  
*************** statements.
*** 5316,5323 ****
  The @code{Loop_Entry} attribute may be used within the expressions of the
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{a0}
  @section Pragma Machine_Attribute
  
  
--- 5420,5431 ----
  The @code{Loop_Entry} attribute may be used within the expressions of the
  @code{Loop_Variant} pragma to refer to values on entry to the loop.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Machine_Attribute,Pragma Main,Pragma Loop_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-machine-attribute}@anchor{a1}
  @section Pragma Machine_Attribute
  
  
*************** which may make this pragma unusable for
*** 5343,5349 ****
  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
  
  
--- 5451,5457 ----
  For further information see @cite{GNU Compiler Collection (GCC) Internals}.
  
  @node Pragma Main,Pragma Main_Storage,Pragma Machine_Attribute,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main}@anchor{a2}
  @section Pragma Main
  
  
*************** This pragma is provided for compatibilit
*** 5363,5369 ****
  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
  
  
--- 5471,5477 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Main_Storage,Pragma Max_Queue_Length,Pragma Main,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-main-storage}@anchor{a3}
  @section Pragma Main_Storage
  
  
*************** This pragma is provided for compatibilit
*** 5382,5388 ****
  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
  
  
--- 5490,5496 ----
  no effect in GNAT, other than being syntax checked.
  
  @node Pragma Max_Queue_Length,Pragma No_Body,Pragma Main_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id24}@anchor{a4}@anchor{gnat_rm/implementation_defined_pragmas pragma-max-queue-length}@anchor{a5}
  @section Pragma Max_Queue_Length
  
  
*************** entry.
*** 5400,5406 ****
  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
  
  
--- 5508,5514 ----
  A value of -1 represents no additional restriction on queue length.
  
  @node Pragma No_Body,Pragma No_Caching,Pragma Max_Queue_Length,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-body}@anchor{a6}
  @section Pragma No_Body
  
  
*************** dummy body with a No_Body pragma ensures
*** 5423,5429 ****
  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
  
  
--- 5531,5537 ----
  earlier versions of the package body.
  
  @node Pragma No_Caching,Pragma No_Component_Reordering,Pragma No_Body,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id25}@anchor{a7}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-caching}@anchor{a8}
  @section Pragma No_Caching
  
  
*************** For the semantics of this pragma, see th
*** 5437,5443 ****
  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
  
  
--- 5545,5551 ----
  the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma No_Component_Reordering,Pragma No_Elaboration_Code_All,Pragma No_Caching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-component-reordering}@anchor{a9}
  @section Pragma No_Component_Reordering
  
  
*************** declared in units to which the pragma ap
*** 5456,5462 ****
  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
  
  
--- 5564,5570 ----
  that this pragma be used consistently within a partition.
  
  @node Pragma No_Elaboration_Code_All,Pragma No_Heap_Finalization,Pragma No_Component_Reordering,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id26}@anchor{aa}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-elaboration-code-all}@anchor{ab}
  @section Pragma No_Elaboration_Code_All
  
  
*************** current unit, it must also have the @cit
*** 5475,5481 ****
  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
  
  
--- 5583,5589 ----
  It may be applied to package or subprogram specs or their generic versions.
  
  @node Pragma No_Heap_Finalization,Pragma No_Inline,Pragma No_Elaboration_Code_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-heap-finalization}@anchor{ac}
  @section Pragma No_Heap_Finalization
  
  
*************** lose its @code{No_Heap_Finalization} pra
*** 5507,5513 ****
  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
  
  
--- 5615,5621 ----
  appear at the library level.
  
  @node Pragma No_Inline,Pragma No_Raise,Pragma No_Heap_Finalization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id27}@anchor{ad}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-inline}@anchor{ae}
  @section Pragma No_Inline
  
  
*************** in particular it is not subject to the u
*** 5525,5531 ****
  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
  
  
--- 5633,5639 ----
  pragma @code{Inline_Always} for the same @code{NAME}.
  
  @node Pragma No_Raise,Pragma No_Return,Pragma No_Inline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id28}@anchor{af}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-raise}@anchor{b0}
  @section Pragma No_Raise
  
  
*************** An implementation-defined check named @c
*** 5542,5548 ****
  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
  
  
--- 5650,5656 ----
  pragma, and @cite{Program_Error} is raised upon its failure (see RM 11.5(19/5)).
  
  @node Pragma No_Return,Pragma No_Strict_Aliasing,Pragma No_Raise,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-return}@anchor{b1}
  @section Pragma No_Return
  
  
*************** available in all earlier versions of Ada
*** 5569,5575 ****
  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
  
  
--- 5677,5683 ----
  pragma.
  
  @node Pragma No_Strict_Aliasing,Pragma No_Tagged_Streams,Pragma No_Return,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-no-strict-aliasing}@anchor{b2}
  @section Pragma No_Strict_Aliasing
  
  
*************** in the @cite{GNAT User’s Guide}.
*** 5591,5597 ****
  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
  
  
--- 5699,5705 ----
  This pragma currently has no effects on access to unconstrained array types.
  
  @node Pragma No_Tagged_Streams,Pragma Normalize_Scalars,Pragma No_Strict_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id29}@anchor{b3}@anchor{gnat_rm/implementation_defined_pragmas pragma-no-tagged-streams}@anchor{b4}
  @section Pragma No_Tagged_Streams
  
  
*************** with empty strings. This is useful to av
*** 5630,5636 ****
  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
  
  
--- 5738,5744 ----
  level but has a negative impact on the debuggability of tagged types.
  
  @node Pragma Normalize_Scalars,Pragma Obsolescent,Pragma No_Tagged_Streams,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-normalize-scalars}@anchor{b5}
  @section Pragma Normalize_Scalars
  
  
*************** will always generate an invalid value if
*** 5712,5718 ****
  @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
  
  
--- 5820,5826 ----
  @end table
  
  @node Pragma Obsolescent,Pragma Optimize_Alignment,Pragma Normalize_Scalars,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id30}@anchor{b6}@anchor{gnat_rm/implementation_defined_pragmas pragma-obsolescent}@anchor{b7}
  @section Pragma Obsolescent
  
  
*************** So if you specify @code{Entity =>} for t
*** 5808,5814 ****
  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
  
  
--- 5916,5922 ----
  argument is present, it must be preceded by @code{Message =>}.
  
  @node Pragma Optimize_Alignment,Pragma Ordered,Pragma Obsolescent,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-optimize-alignment}@anchor{b8}
  @section Pragma Optimize_Alignment
  
  
*************** latter are compiled by default in pragma
*** 5894,5900 ****
  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
  
  
--- 6002,6008 ----
  pragma appears at the start of the file.
  
  @node Pragma Ordered,Pragma Overflow_Mode,Pragma Optimize_Alignment,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ordered}@anchor{b9}
  @section Pragma Ordered
  
  
*************** For additional information please refer
*** 5986,5992 ****
  `-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
  
  
--- 6094,6100 ----
  `-gnatw.u' switch in the GNAT User’s Guide.
  
  @node Pragma Overflow_Mode,Pragma Overriding_Renamings,Pragma Ordered,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overflow-mode}@anchor{ba}
  @section Pragma Overflow_Mode
  
  
*************** The pragma @code{Unsuppress (Overflow_Ch
*** 6025,6031 ****
  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
  
  
--- 6133,6139 ----
  overflow checking, but does not affect the overflow mode.
  
  @node Pragma Overriding_Renamings,Pragma Part_Of,Pragma Overflow_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-overriding-renamings}@anchor{bb}
  @section Pragma Overriding_Renamings
  
  
*************** RM 8.3 (15) stipulates that an overridde
*** 6060,6066 ****
  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
  
  
--- 6168,6174 ----
  declaration of the overriding operation.
  
  @node Pragma Part_Of,Pragma Partition_Elaboration_Policy,Pragma Overriding_Renamings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id31}@anchor{bc}@anchor{gnat_rm/implementation_defined_pragmas pragma-part-of}@anchor{bd}
  @section Pragma Part_Of
  
  
*************** For the semantics of this pragma, see th
*** 6076,6082 ****
  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
  
  
--- 6184,6190 ----
  SPARK 2014 Reference Manual, section 7.2.6.
  
  @node Pragma Partition_Elaboration_Policy,Pragma Passive,Pragma Part_Of,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-partition-elaboration-policy}@anchor{be}
  @section Pragma Partition_Elaboration_Policy
  
  
*************** versions of Ada as an implementation-def
*** 6093,6099 ****
  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
  
  
--- 6201,6207 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Passive,Pragma Persistent_BSS,Pragma Partition_Elaboration_Policy,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-passive}@anchor{bf}
  @section Pragma Passive
  
  
*************** For more information on the subject of p
*** 6117,6123 ****
  ‘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
  
  
--- 6225,6231 ----
  ‘Passive Task Optimization’ in the GNAT Users Guide.
  
  @node Pragma Persistent_BSS,Pragma Post,Pragma Passive,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id32}@anchor{c0}@anchor{gnat_rm/implementation_defined_pragmas pragma-persistent-bss}@anchor{c1}
  @section Pragma Persistent_BSS
  
  
*************** If this pragma is used on a target where
*** 6148,6154 ****
  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
  
  
--- 6256,6262 ----
  then the pragma will be ignored. See also @code{pragma Linker_Section}.
  
  @node Pragma Post,Pragma Postcondition,Pragma Persistent_BSS,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post}@anchor{c2}
  @section Pragma Post
  
  
*************** if there is no separate subprogram decla
*** 6172,6179 ****
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{c2}
  @section Pragma Postcondition
  
  
--- 6280,6291 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Postcondition,Pragma Post_Class,Pragma Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-postcondition}@anchor{c3}
  @section Pragma Postcondition
  
  
*************** use of the pragma identifier @code{Check
*** 6337,6344 ****
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{c3}
  @section Pragma Post_Class
  
  
--- 6449,6460 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Post_Class,Pragma Pre,Pragma Postcondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-post-class}@anchor{c4}
  @section Pragma Post_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 6372,6379 ****
  policy that controls this pragma is @code{Post'Class}, not
  @code{Post_Class}.
  
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c4}
  @section Pragma Pre
  
  
--- 6488,6499 ----
  policy that controls this pragma is @code{Post'Class}, not
  @code{Post_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Pre,Pragma Precondition,Pragma Post_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre}@anchor{c5}
  @section Pragma Pre
  
  
*************** if there is no separate subprogram decla
*** 6397,6404 ****
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c5}
  @section Pragma Precondition
  
  
--- 6517,6528 ----
  appear at the start of the declarations in a subprogram body
  (preceded only by other pragmas).
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Precondition,Pragma Predicate,Pragma Pre,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-precondition}@anchor{c6}
  @section Pragma Precondition
  
  
*************** use of the pragma identifier @code{Check
*** 6456,6463 ****
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{c6}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c7}
  @section Pragma Predicate
  
  
--- 6580,6591 ----
  Ada 2012, and has been retained in its original form for
  compatibility purposes.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Predicate,Pragma Predicate_Failure,Pragma Precondition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id33}@anchor{c7}@anchor{gnat_rm/implementation_defined_pragmas pragma-predicate}@anchor{c8}
  @section Pragma Predicate
  
  
*************** fundamentally changed (for example a mem
*** 6510,6517 ****
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{c8}
  @section Pragma Predicate_Failure
  
  
--- 6638,6649 ----
  defined for subtype B). When following this approach, the
  use of predicates should be avoided.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Predicate_Failure,Pragma Preelaborable_Initialization,Pragma Predicate,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-predicate-failure}@anchor{c9}
  @section Pragma Predicate_Failure
  
  
*************** the language-defined
*** 6528,6534 ****
  @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
  
  
--- 6660,6666 ----
  @code{Predicate_Failure} aspect, and shares its restrictions and semantics.
  
  @node Pragma Preelaborable_Initialization,Pragma Prefix_Exception_Messages,Pragma Predicate_Failure,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-preelaborable-initialization}@anchor{ca}
  @section Pragma Preelaborable_Initialization
  
  
*************** versions of Ada as an implementation-def
*** 6543,6549 ****
  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
  
  
--- 6675,6681 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Prefix_Exception_Messages,Pragma Pre_Class,Pragma Preelaborable_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-prefix-exception-messages}@anchor{cb}
  @section Pragma Prefix_Exception_Messages
  
  
*************** prefixing in this case, you can always c
*** 6574,6580 ****
  @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
  
  
--- 6706,6712 ----
  @code{GNAT.Source_Info.Enclosing_Entity} and prepend the string manually.
  
  @node Pragma Pre_Class,Pragma Priority_Specific_Dispatching,Pragma Prefix_Exception_Messages,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-pre-class}@anchor{cc}
  @section Pragma Pre_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 6608,6615 ****
  policy that controls this pragma is @code{Pre'Class}, not
  @code{Pre_Class}.
  
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{cc}
  @section Pragma Priority_Specific_Dispatching
  
  
--- 6740,6751 ----
  policy that controls this pragma is @code{Pre'Class}, not
  @code{Pre_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Priority_Specific_Dispatching,Pragma Profile,Pragma Pre_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-priority-specific-dispatching}@anchor{cd}
  @section Pragma Priority_Specific_Dispatching
  
  
*************** versions of Ada as an implementation-def
*** 6633,6639 ****
  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
  
  
--- 6769,6775 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Profile,Pragma Profile_Warnings,Pragma Priority_Specific_Dispatching,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile}@anchor{ce}
  @section Pragma Profile
  
  
*************** conforming Ada constructs.  The profile
*** 6911,6918 ****
  @end itemize
  @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
  
  
--- 7047,7054 ----
  @end itemize
  @end itemize
  
! @node Pragma Profile_Warnings,Pragma Program_Exit,Pragma Profile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-profile-warnings}@anchor{cf}
  @section Pragma Profile_Warnings
  
  
*************** generating @code{Restrictions} pragmas,
*** 6929,6936 ****
  violations of the profile generate warning messages instead
  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
  
  
--- 7065,7086 ----
  violations of the profile generate warning messages instead
  of error messages.
  
! @node Pragma Program_Exit,Pragma Propagate_Exceptions,Pragma Profile_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id34}@anchor{d0}@anchor{gnat_rm/implementation_defined_pragmas pragma-program-exit}@anchor{d1}
! @section Pragma Program_Exit
! 
! 
! Syntax:
! 
! @example
! pragma Program_Exit [ (boolean_EXPRESSION) ];
! @end example
! 
! For the semantics of this pragma, see the entry for aspect @code{Program_Exit}
! in the SPARK 2014 Reference Manual, section 6.1.10.
! 
! @node Pragma Propagate_Exceptions,Pragma Provide_Shift_Operators,Pragma Program_Exit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-propagate-exceptions}@anchor{d2}
  @section Pragma Propagate_Exceptions
  
  
*************** purposes. It used to be used in connecti
*** 6949,6955 ****
  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
  
  
--- 7099,7105 ----
  a now-obsolete mechanism for implementation of exceptions.
  
  @node Pragma Provide_Shift_Operators,Pragma Psect_Object,Pragma Propagate_Exceptions,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-provide-shift-operators}@anchor{d3}
  @section Pragma Provide_Shift_Operators
  
  
*************** including the function declarations for
*** 6969,6975 ****
  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
  
  
--- 7119,7125 ----
  with the pragma Import (Intrinsic, …) statements.
  
  @node Pragma Psect_Object,Pragma Pure_Function,Pragma Provide_Shift_Operators,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-psect-object}@anchor{d4}
  @section Pragma Psect_Object
  
  
*************** EXTERNAL_SYMBOL ::=
*** 6989,6995 ****
  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
  
  
--- 7139,7145 ----
  This pragma is identical in effect to pragma @code{Common_Object}.
  
  @node Pragma Pure_Function,Pragma Rational,Pragma Psect_Object,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id35}@anchor{d5}@anchor{gnat_rm/implementation_defined_pragmas pragma-pure-function}@anchor{d6}
  @section Pragma Pure_Function
  
  
*************** unit is not a Pure unit in the categoriz
*** 7051,7057 ****
  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
  
  
--- 7201,7207 ----
  thus marked is free to @code{with} non-pure units.
  
  @node Pragma Rational,Pragma Ravenscar,Pragma Pure_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rational}@anchor{d7}
  @section Pragma Rational
  
  
*************** pragma Profile (Rational);
*** 7069,7075 ****
  @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
  
  
--- 7219,7225 ----
  @end example
  
  @node Pragma Ravenscar,Pragma Refined_Depends,Pragma Rational,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-ravenscar}@anchor{d8}
  @section Pragma Ravenscar
  
  
*************** pragma Profile (Ravenscar);
*** 7089,7095 ****
  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
  
  
--- 7239,7245 ----
  which is the preferred method of setting the @code{Ravenscar} profile.
  
  @node Pragma Refined_Depends,Pragma Refined_Global,Pragma Ravenscar,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id36}@anchor{d9}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-depends}@anchor{da}
  @section Pragma Refined_Depends
  
  
*************** For the semantics of this pragma, see th
*** 7122,7128 ****
  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
  
  
--- 7272,7278 ----
  the SPARK 2014 Reference Manual, section 6.1.5.
  
  @node Pragma Refined_Global,Pragma Refined_Post,Pragma Refined_Depends,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id37}@anchor{db}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-global}@anchor{dc}
  @section Pragma Refined_Global
  
  
*************** For the semantics of this pragma, see th
*** 7147,7153 ****
  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
  
  
--- 7297,7303 ----
  the SPARK 2014 Reference Manual, section 6.1.4.
  
  @node Pragma Refined_Post,Pragma Refined_State,Pragma Refined_Global,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dd}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-post}@anchor{de}
  @section Pragma Refined_Post
  
  
*************** pragma Refined_Post (boolean_EXPRESSION)
*** 7160,7167 ****
  For the semantics of this pragma, see the entry for aspect @code{Refined_Post} in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id38}@anchor{dc}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{dd}
  @section Pragma Refined_State
  
  
--- 7310,7321 ----
  For the semantics of this pragma, see the entry for aspect @code{Refined_Post} in
  the SPARK 2014 Reference Manual, section 7.2.7.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Refined_State,Pragma Relative_Deadline,Pragma Refined_Post,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id39}@anchor{df}@anchor{gnat_rm/implementation_defined_pragmas pragma-refined-state}@anchor{e0}
  @section Pragma Refined_State
  
  
*************** For the semantics of this pragma, see th
*** 7187,7193 ****
  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
  
  
--- 7341,7347 ----
  the SPARK 2014 Reference Manual, section 7.2.2.
  
  @node Pragma Relative_Deadline,Pragma Remote_Access_Type,Pragma Refined_State,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-relative-deadline}@anchor{e1}
  @section Pragma Relative_Deadline
  
  
*************** versions of Ada as an implementation-def
*** 7202,7208 ****
  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
  
  
--- 7356,7362 ----
  See Ada 2012 Reference Manual for details.
  
  @node Pragma Remote_Access_Type,Pragma Rename_Pragma,Pragma Relative_Deadline,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id40}@anchor{e2}@anchor{gnat_rm/implementation_defined_pragmas pragma-remote-access-type}@anchor{e3}
  @section Pragma Remote_Access_Type
  
  
*************** pertaining to remote access to class-wid
*** 7228,7234 ****
  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
  
  
--- 7382,7388 ----
  actual type must be a remote access to class-wide type.
  
  @node Pragma Rename_Pragma,Pragma Restricted_Run_Time,Pragma Remote_Access_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-rename-pragma}@anchor{e4}
  @section Pragma Rename_Pragma
  
  
*************** Pragma Inline_Only will not necessarily
*** 7267,7273 ****
  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
  
  
--- 7421,7427 ----
  compiler; it’s up to you to make sure the semantics are close enough.
  
  @node Pragma Restricted_Run_Time,Pragma Restriction_Warnings,Pragma Rename_Pragma,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restricted-run-time}@anchor{e5}
  @section Pragma Restricted_Run_Time
  
  
*************** which is the preferred method of setting
*** 7288,7294 ****
  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
  
  
--- 7442,7448 ----
  profile.
  
  @node Pragma Restriction_Warnings,Pragma Reviewable,Pragma Restricted_Run_Time,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-restriction-warnings}@anchor{e6}
  @section Pragma Restriction_Warnings
  
  
*************** generating a warning, but any other use
*** 7326,7332 ****
  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
  
  
--- 7480,7486 ----
  defined pragmas will cause a warning to be generated.
  
  @node Pragma Reviewable,Pragma Secondary_Stack_Size,Pragma Restriction_Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-reviewable}@anchor{e7}
  @section Pragma Reviewable
  
  
*************** comprehensive messages identifying possi
*** 7430,7436 ****
  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
  
  
--- 7584,7590 ----
  information.
  
  @node Pragma Secondary_Stack_Size,Pragma Share_Generic,Pragma Reviewable,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id41}@anchor{e8}@anchor{gnat_rm/implementation_defined_pragmas pragma-secondary-stack-size}@anchor{e9}
  @section Pragma Secondary_Stack_Size
  
  
*************** Note the pragma cannot appear when the r
*** 7466,7472 ****
  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
  
  
--- 7620,7626 ----
  is in effect.
  
  @node Pragma Share_Generic,Pragma Shared,Pragma Secondary_Stack_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-share-generic}@anchor{ea}
  @section Pragma Share_Generic
  
  
*************** than to check that the given names are a
*** 7484,7490 ****
  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
  
  
--- 7638,7644 ----
  generic instances.
  
  @node Pragma Shared,Pragma Short_Circuit_And_Or,Pragma Share_Generic,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id42}@anchor{eb}@anchor{gnat_rm/implementation_defined_pragmas pragma-shared}@anchor{ec}
  @section Pragma Shared
  
  
*************** This pragma is provided for compatibilit
*** 7492,7498 ****
  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
  
  
--- 7646,7652 ----
  semantics are identical to pragma Atomic.
  
  @node Pragma Short_Circuit_And_Or,Pragma Short_Descriptors,Pragma Shared,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-circuit-and-or}@anchor{ed}
  @section Pragma Short_Circuit_And_Or
  
  
*************** Syntax:
*** 7502,7517 ****
  pragma Short_Circuit_And_Or;
  @end example
  
! This configuration pragma causes any occurrence of the AND operator applied to
! operands of type Standard.Boolean to be short-circuited (i.e. the AND operator
! is treated as if it were AND THEN). Or is similarly treated as OR ELSE. This
! may be useful in the context of certification protocols requiring the use of
! short-circuited logical operators. If this configuration pragma occurs locally
! within the file being compiled, it applies only to the file being compiled.
  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
  
  
--- 7656,7691 ----
  pragma Short_Circuit_And_Or;
  @end example
  
! This configuration pragma causes the predefined AND and OR operators of
! type Standard.Boolean to have short-circuit semantics. That is, they
! behave like AND THEN and OR ELSE; the right-hand side is not evaluated
! if the left-hand side determines the result. This may be useful in the
! context of certification protocols requiring the use of short-circuited
! logical operators.
! 
  There is no requirement that all units in a partition use this option.
+ However, mixing of short-circuit and non-short-circuit semantics can be
+ confusing. Therefore, the recommended use is to put the pragma in a
+ configuration file that applies to the whole program. Alternatively, if
+ you have a legacy library that should not use this pragma, you can put
+ it in a separate library project that does not use the pragma.
+ In any case, fine-grained mixing of the different semantics is not
+ recommended. If pragma @code{Short_Circuit_And_Or} is specified, then it
+ is illegal to rename the predefined Boolean AND and OR, or to pass
+ them to generic formal functions; this corresponds to the fact that
+ AND THEN and OR ELSE cannot be renamed nor passed as generic formal
+ functions.
+ 
+ Note that this pragma has no effect on other logical operators –
+ predefined operators of modular types, array-of-boolean types and types
+ derived from Standard.Boolean, nor user-defined operators.
+ 
+ See also the pragma @code{Unevaluated_Use_Of_Old} and the restriction
+ @code{No_Direct_Boolean_Operators}, which may be useful in conjunction
+ with @code{Short_Circuit_And_Or}.
  
  @node Pragma Short_Descriptors,Pragma Side_Effects,Pragma Short_Circuit_And_Or,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-short-descriptors}@anchor{ee}
  @section Pragma Short_Descriptors
  
  
*************** This pragma is provided for compatibilit
*** 7525,7531 ****
  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
  
  
--- 7699,7705 ----
  is recognized but ignored by all current versions of GNAT.
  
  @node Pragma Side_Effects,Pragma Simple_Storage_Pool_Type,Pragma Short_Descriptors,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id43}@anchor{ef}@anchor{gnat_rm/implementation_defined_pragmas pragma-side-effects}@anchor{f0}
  @section Pragma Side_Effects
  
  
*************** For the semantics of this pragma, see th
*** 7539,7545 ****
  @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
  
  
--- 7713,7719 ----
  @code{Side_Effects} in the SPARK Reference Manual, section 6.1.12.
  
  @node Pragma Simple_Storage_Pool_Type,Pragma Source_File_Name,Pragma Side_Effects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id44}@anchor{f1}@anchor{gnat_rm/implementation_defined_pragmas pragma-simple-storage-pool-type}@anchor{f2}
  @section Pragma Simple_Storage_Pool_Type
  
  
*************** storage-management discipline).
*** 7593,7599 ****
  
  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;
--- 7767,7773 ----
  
  An object of a simple storage pool type can be associated with an access
  type by specifying the attribute
! @ref{f3,,Simple_Storage_Pool}. For example:
  
  @example
  My_Pool : My_Simple_Storage_Pool_Type;
*************** type Acc is access My_Data_Type;
*** 7603,7613 ****
  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
  
  
--- 7777,7787 ----
  for Acc'Simple_Storage_Pool use My_Pool;
  @end example
  
! See attribute @ref{f3,,Simple_Storage_Pool}
  for further details.
  
  @node Pragma Source_File_Name,Pragma Source_File_Name_Project,Pragma Simple_Storage_Pool_Type,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id45}@anchor{f4}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name}@anchor{f5}
  @section Pragma Source_File_Name
  
  
*************** aware of these pragmas, and so other too
*** 7699,7718 ****
  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.
  
--- 7873,7892 ----
  be aware of the intended naming conventions. If you are using project files,
  file naming is controlled by Source_File_Name_Project pragmas, which are
  usually supplied automatically by the project manager. A pragma
! Source_File_Name cannot appear after a @ref{f6,,Pragma Source_File_Name_Project}.
  
  For more details on the use of the @code{Source_File_Name} pragma, see the
  sections on @cite{Using Other File Names} and @cite{Alternative File Naming Schemes}
  in the @cite{GNAT User’s Guide}.
  
  @node Pragma Source_File_Name_Project,Pragma Source_Reference,Pragma Source_File_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id46}@anchor{f7}@anchor{gnat_rm/implementation_defined_pragmas pragma-source-file-name-project}@anchor{f6}
  @section Pragma Source_File_Name_Project
  
  
  This pragma has the same syntax and semantics as pragma Source_File_Name.
  It is only allowed as a stand-alone configuration pragma.
! It cannot appear after a @ref{f5,,Pragma Source_File_Name}, and
  most importantly, once pragma Source_File_Name_Project appears,
  no further Source_File_Name pragmas are allowed.
  
*************** Source_File_Name or Source_File_Name_Pro
*** 7724,7730 ****
  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
  
  
--- 7898,7904 ----
  known to the project manager).
  
  @node Pragma Source_Reference,Pragma SPARK_Mode,Pragma Source_File_Name_Project,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-source-reference}@anchor{f8}
  @section Pragma Source_Reference
  
  
*************** string expression other than a string li
*** 7748,7754 ****
  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
  
  
--- 7922,7928 ----
  is needed for error messages issued by all phases of the compiler.
  
  @node Pragma SPARK_Mode,Pragma Static_Elaboration_Desired,Pragma Source_Reference,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id47}@anchor{f9}@anchor{gnat_rm/implementation_defined_pragmas pragma-spark-mode}@anchor{fa}
  @section Pragma SPARK_Mode
  
  
*************** SPARK_Mode (@code{Off}), then that pragm
*** 7830,7836 ****
  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
  
  
--- 8004,8010 ----
  the package body.
  
  @node Pragma Static_Elaboration_Desired,Pragma Stream_Convert,Pragma SPARK_Mode,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-static-elaboration-desired}@anchor{fb}
  @section Pragma Static_Elaboration_Desired
  
  
*************** construction of larger aggregates with s
*** 7854,7860 ****
  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
  
  
--- 8028,8034 ----
  choice.)
  
  @node Pragma Stream_Convert,Pragma Style_Checks,Pragma Static_Elaboration_Desired,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-stream-convert}@anchor{fc}
  @section Pragma Stream_Convert
  
  
*************** the pragma is silently ignored, and the
*** 7931,7937 ****
  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
  
  
--- 8105,8111 ----
  attributes is used instead.
  
  @node Pragma Style_Checks,Pragma Subprogram_Variant,Pragma Stream_Convert,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-style-checks}@anchor{fd}
  @section Pragma Style_Checks
  
  
*************** Rf2 : Integer := ARG;      -- OK, no err
*** 8077,8083 ****
  @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
  
  
--- 8251,8257 ----
  @end example
  
  @node Pragma Subprogram_Variant,Pragma Subtitle,Pragma Style_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subprogram-variant}@anchor{fe}
  @section Pragma Subprogram_Variant
  
  
*************** The @code{Subprogram_Variant} pragma is
*** 8108,8115 ****
  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
  
  
--- 8282,8293 ----
  the implementation-defined @code{Subprogram_Variant} aspect, and shares its
  restrictions and semantics.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Subtitle,Pragma Suppress,Pragma Subprogram_Variant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-subtitle}@anchor{ff}
  @section Pragma Subtitle
  
  
*************** This pragma is recognized for compatibil
*** 8123,8129 ****
  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
  
  
--- 8301,8307 ----
  but is ignored by GNAT.
  
  @node Pragma Suppress,Pragma Suppress_All,Pragma Subtitle,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress}@anchor{100}
  @section Pragma Suppress
  
  
*************** names that are implementation defined (a
*** 8141,8152 ****
  @itemize *
  
  @item 
! @code{Alignment_Check} can be used to suppress alignment checks
! on addresses used in address clauses. Such checks can also be suppressed
! by suppressing range checks, but the specific use of @code{Alignment_Check}
! allows suppression of alignment checks without suppressing other range checks.
! Note that @code{Alignment_Check} is suppressed by default on machines (such as
! the x86) with non-strict alignment.
  
  @item 
  @code{Atomic_Synchronization} can be used to suppress the special memory
--- 8319,8327 ----
  @itemize *
  
  @item 
! @code{Alignment_Check} can be used to suppress alignment checks on addresses
! used in address clauses. Note that @code{Alignment_Check} is suppressed by
! default on non-strict alignment machines (such as the x86).
  
  @item 
  @code{Atomic_Synchronization} can be used to suppress the special memory
*************** Of course, run-time checks are omitted w
*** 8196,8202 ****
  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
  
  
--- 8371,8377 ----
  that they will not fail, whether or not checks are suppressed.
  
  @node Pragma Suppress_All,Pragma Suppress_Debug_Info,Pragma Suppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-all}@anchor{101}
  @section Pragma Suppress_All
  
  
*************** The use of the standard Ada pragma @code
*** 8215,8221 ****
  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
  
  
--- 8390,8396 ----
  as a normal configuration pragma is the preferred usage in GNAT.
  
  @node Pragma Suppress_Debug_Info,Pragma Suppress_Exception_Locations,Pragma Suppress_All,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id48}@anchor{102}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-debug-info}@anchor{103}
  @section Pragma Suppress_Debug_Info
  
  
*************** for the specified entity. It is intended
*** 8230,8236 ****
  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
  
  
--- 8405,8411 ----
  the debugger, and navigating around debugger problems.
  
  @node Pragma Suppress_Exception_Locations,Pragma Suppress_Initialization,Pragma Suppress_Debug_Info,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-exception-locations}@anchor{104}
  @section Pragma Suppress_Exception_Locations
  
  
*************** a partition, so it is fine to have some
*** 8253,8259 ****
  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
  
  
--- 8428,8434 ----
  with this pragma and others compiled in normal mode without it.
  
  @node Pragma Suppress_Initialization,Pragma Task_Name,Pragma Suppress_Exception_Locations,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id49}@anchor{105}@anchor{gnat_rm/implementation_defined_pragmas pragma-suppress-initialization}@anchor{106}
  @section Pragma Suppress_Initialization
  
  
*************** is suppressed, just as though its subtyp
*** 8298,8304 ****
  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
  
  
--- 8473,8479 ----
  Suppress_Initialization, as described above.
  
  @node Pragma Task_Name,Pragma Task_Storage,Pragma Suppress_Initialization,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-name}@anchor{107}
  @section Pragma Task_Name
  
  
*************** end;
*** 8354,8360 ****
  @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
  
  
--- 8529,8535 ----
  @end example
  
  @node Pragma Task_Storage,Pragma Test_Case,Pragma Task_Name,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-task-storage}@anchor{108}
  @section Pragma Task_Storage
  
  
*************** created, depending on the target.  This
*** 8374,8380 ****
  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
  
  
--- 8549,8555 ----
  type.
  
  @node Pragma Test_Case,Pragma Thread_Local_Storage,Pragma Task_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id50}@anchor{109}@anchor{gnat_rm/implementation_defined_pragmas pragma-test-case}@anchor{10a}
  @section Pragma Test_Case
  
  
*************** postcondition. Mode @code{Robustness} in
*** 8430,8436 ****
  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
  
  
--- 8605,8611 ----
  postcondition of the subprogram should be ignored for this test case.
  
  @node Pragma Thread_Local_Storage,Pragma Time_Slice,Pragma Test_Case,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10b}@anchor{gnat_rm/implementation_defined_pragmas pragma-thread-local-storage}@anchor{10c}
  @section Pragma Thread_Local_Storage
  
  
*************** If this pragma is used on a system where
*** 8468,8474 ****
  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
  
  
--- 8643,8649 ----
  then an error message will be generated and the program will be rejected.
  
  @node Pragma Time_Slice,Pragma Title,Pragma Thread_Local_Storage,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-time-slice}@anchor{10d}
  @section Pragma Time_Slice
  
  
*************** It is ignored if it is used in a system
*** 8484,8490 ****
  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
  
  
--- 8659,8665 ----
  or if it appears in other than the main program unit.
  
  @node Pragma Title,Pragma Type_Invariant,Pragma Time_Slice,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-title}@anchor{10e}
  @section Pragma Title
  
  
*************** notation is used, and named and position
*** 8509,8515 ****
  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
  
  
--- 8684,8690 ----
  following the normal rules for procedure calls in Ada.
  
  @node Pragma Type_Invariant,Pragma Type_Invariant_Class,Pragma Title,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant}@anchor{10f}
  @section Pragma Type_Invariant
  
  
*************** does not permit a string parameter, and
*** 8529,8536 ****
  controlled by the assertion identifier @code{Type_Invariant}
  rather than @code{Invariant}.
  
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id51}@anchor{10d}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{10e}
  @section Pragma Type_Invariant_Class
  
  
--- 8704,8715 ----
  controlled by the assertion identifier @code{Type_Invariant}
  rather than @code{Invariant}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Type_Invariant_Class,Pragma Unchecked_Union,Pragma Type_Invariant,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id52}@anchor{110}@anchor{gnat_rm/implementation_defined_pragmas pragma-type-invariant-class}@anchor{111}
  @section Pragma Type_Invariant_Class
  
  
*************** aspects, but is prepared to ignore the p
*** 8556,8563 ****
  policy that controls this pragma is @code{Type_Invariant'Class},
  not @code{Type_Invariant_Class}.
  
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{10f}
  @section Pragma Unchecked_Union
  
  
--- 8735,8746 ----
  policy that controls this pragma is @code{Type_Invariant'Class},
  not @code{Type_Invariant_Class}.
  
+ This is an assertion kind pragma that can associate a set of its arguments
+ with an assertion level. See SPARK 2014 Reference Manual, section
+ 11.4.2.
+ 
  @node Pragma Unchecked_Union,Pragma Unevaluated_Use_Of_Old,Pragma Type_Invariant_Class,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unchecked-union}@anchor{112}
  @section Pragma Unchecked_Union
  
  
*************** version in all language modes (Ada 83, A
*** 8577,8583 ****
  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
  
  
--- 8760,8766 ----
  details, consult the Ada 2012 Reference Manual, section B.3.3.
  
  @node Pragma Unevaluated_Use_Of_Old,Pragma User_Aspect_Definition,Pragma Unchecked_Union,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unevaluated-use-of-old}@anchor{113}
  @section Pragma Unevaluated_Use_Of_Old
  
  
*************** uses up to the end of the corresponding
*** 8632,8638 ****
  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
  
  
--- 8815,8821 ----
  sequence of package declarations.
  
  @node Pragma User_Aspect_Definition,Pragma Unimplemented_Unit,Pragma Unevaluated_Use_Of_Old,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-user-aspect-definition}@anchor{114}
  @section Pragma User_Aspect_Definition
  
  
*************** pragma. If multiple definitions are visi
*** 8664,8670 ****
  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
  
  
--- 8847,8853 ----
  then the definitions must agree. A predefined aspect cannot be redefined.
  
  @node Pragma Unimplemented_Unit,Pragma Universal_Aliasing,Pragma User_Aspect_Definition,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unimplemented-unit}@anchor{115}
  @section Pragma Unimplemented_Unit
  
  
*************** The abort only happens if code is being
*** 8684,8690 ****
  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
  
  
--- 8867,8873 ----
  specs of unimplemented packages in syntax or semantic checking mode.
  
  @node Pragma Universal_Aliasing,Pragma Unmodified,Pragma Unimplemented_Unit,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id53}@anchor{116}@anchor{gnat_rm/implementation_defined_pragmas pragma-universal-aliasing}@anchor{117}
  @section Pragma Universal_Aliasing
  
  
*************** they need to be suppressed, see the sect
*** 8702,8708 ****
  @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
  
  
--- 8885,8891 ----
  @code{Optimization and Strict Aliasing} in the @cite{GNAT User’s Guide}.
  
  @node Pragma Unmodified,Pragma Unreferenced,Pragma Universal_Aliasing,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id54}@anchor{118}@anchor{gnat_rm/implementation_defined_pragmas pragma-unmodified}@anchor{119}
  @section Pragma Unmodified
  
  
*************** Thus it is never necessary to use @code{
*** 8736,8742 ****
  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
  
  
--- 8919,8925 ----
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced,Pragma Unreferenced_Objects,Pragma Unmodified,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id55}@anchor{11a}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced}@anchor{11b}
  @section Pragma Unreferenced
  
  
*************** Note that if a warning is desired for al
*** 8782,8788 ****
  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
--- 8965,8971 ----
  regardless of whether they occur in the same unit as the subprogram
  declaration, then this pragma should not be used (calls from another
  unit would not be flagged); pragma Obsolescent can be used instead
! for this purpose, see @ref{b7,,Pragma Obsolescent}.
  
  The second form of pragma @code{Unreferenced} is used within a context
  clause. In this case the arguments must be unit names of units previously
*************** units and unreferenced entities within t
*** 8792,8804 ****
  
  For the variable case, warnings are never given for unreferenced variables
  whose name contains one of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSED} in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use @code{pragma Unreferenced} for such
  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
  
  
--- 8975,8987 ----
  
  For the variable case, warnings are never given for unreferenced variables
  whose name contains one of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP} in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use @code{pragma Unreferenced} for such
  variables, though it is harmless to do so.
  
  @node Pragma Unreferenced_Objects,Pragma Unreserve_All_Interrupts,Pragma Unreferenced,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id56}@anchor{11c}@anchor{gnat_rm/implementation_defined_pragmas pragma-unreferenced-objects}@anchor{11d}
  @section Pragma Unreferenced_Objects
  
  
*************** compiler will automatically suppress unw
*** 8823,8829 ****
  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
  
  
--- 9006,9012 ----
  not being referenced.
  
  @node Pragma Unreserve_All_Interrupts,Pragma Unsuppress,Pragma Unreferenced_Objects,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unreserve-all-interrupts}@anchor{11e}
  @section Pragma Unreserve_All_Interrupts
  
  
*************** pragma Unreserve_All_Interrupts;
*** 8836,8850 ****
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for a @code{Ctrl-C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl-C} can be used to
  interrupt execution.
  
  If the pragma @code{Unreserve_All_Interrupts} appears anywhere in any unit in
  a program, then all such interrupts are unreserved.  This allows the
  program to handle these interrupts, but disables their standard
  functions.  For example, if this pragma is used, then pressing
! @code{Ctrl-C} will not automatically interrupt execution.  However,
  a program can then handle the @code{SIGINT} interrupt as it chooses.
  
  For a full list of the interrupts handled in a specific implementation,
--- 9019,9033 ----
  Normally certain interrupts are reserved to the implementation.  Any attempt
  to attach an interrupt causes Program_Error to be raised, as described in
  RM C.3.2(22).  A typical example is the @code{SIGINT} interrupt used in
! many systems for a @code{Ctrl}-@code{C} interrupt.  Normally this interrupt is
! reserved to the implementation, so that @code{Ctrl}-@code{C} can be used to
  interrupt execution.
  
  If the pragma @code{Unreserve_All_Interrupts} appears anywhere in any unit in
  a program, then all such interrupts are unreserved.  This allows the
  program to handle these interrupts, but disables their standard
  functions.  For example, if this pragma is used, then pressing
! @code{Ctrl}-@code{C} will not automatically interrupt execution.  However,
  a program can then handle the @code{SIGINT} interrupt as it chooses.
  
  For a full list of the interrupts handled in a specific implementation,
*************** handled, see pragma @code{Interrupt_Stat
*** 8859,8865 ****
  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
  
  
--- 9042,9048 ----
  of the @code{Unreserve_All_Interrupts} pragma.
  
  @node Pragma Unsuppress,Pragma Unused,Pragma Unreserve_All_Interrupts,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-unsuppress}@anchor{11f}
  @section Pragma Unsuppress
  
  
*************** number of implementation-defined check n
*** 8895,8901 ****
  @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
  
  
--- 9078,9084 ----
  @code{Suppress} for full details.
  
  @node Pragma Unused,Pragma Use_VADS_Size,Pragma Unsuppress,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id57}@anchor{120}@anchor{gnat_rm/implementation_defined_pragmas pragma-unused}@anchor{121}
  @section Pragma Unused
  
  
*************** that it might be.
*** 8923,8935 ****
  
  For the variable case, warnings are never given for unreferenced
  variables whose name contains one of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSED} in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use @code{pragma Unused} for such
  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
  
  
--- 9106,9118 ----
  
  For the variable case, warnings are never given for unreferenced
  variables whose name contains one of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP} in any casing. Such names
  are typically to be used in cases where such warnings are expected.
  Thus it is never necessary to use @code{pragma Unused} for such
  variables, though it is harmless to do so.
  
  @node Pragma Use_VADS_Size,Pragma Validity_Checks,Pragma Unused,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-use-vads-size}@anchor{122}
  @section Pragma Use_VADS_Size
  
  
*************** as implemented in the VADS compiler.  Se
*** 8953,8959 ****
  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
  
  
--- 9136,9142 ----
  attribute for further details.
  
  @node Pragma Validity_Checks,Pragma Volatile,Pragma Use_VADS_Size,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-validity-checks}@anchor{123}
  @section Pragma Validity_Checks
  
  
*************** A := C;                       -- C will
*** 9009,9015 ****
  @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
  
  
--- 9192,9198 ----
  @end example
  
  @node Pragma Volatile,Pragma Volatile_Full_Access,Pragma Validity_Checks,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id58}@anchor{124}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile}@anchor{125}
  @section Pragma Volatile
  
  
*************** implementation of pragma Volatile is upw
*** 9027,9033 ****
  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
  
  
--- 9210,9216 ----
  implementation in DEC Ada 83.
  
  @node Pragma Volatile_Full_Access,Pragma Volatile_Function,Pragma Volatile,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id59}@anchor{126}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-full-access}@anchor{127}
  @section Pragma Volatile_Full_Access
  
  
*************** is not to the whole object; the compiler
*** 9053,9059 ****
  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
  
  
--- 9236,9242 ----
  access only part of the object in this case.
  
  @node Pragma Volatile_Function,Pragma Warning_As_Error,Pragma Volatile_Full_Access,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id60}@anchor{128}@anchor{gnat_rm/implementation_defined_pragmas pragma-volatile-function}@anchor{129}
  @section Pragma Volatile_Function
  
  
*************** For the semantics of this pragma, see th
*** 9067,9073 ****
  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
  
  
--- 9250,9256 ----
  in the SPARK 2014 Reference Manual, section 7.1.2.
  
  @node Pragma Warning_As_Error,Pragma Warnings,Pragma Volatile_Function,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-warning-as-error}@anchor{12a}
  @section Pragma Warning_As_Error
  
  
*************** you can use multiple pragma Warning_As_E
*** 9107,9113 ****
  
  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.
  
--- 9290,9296 ----
  
  The above use of patterns to match the message applies only to warning
  messages generated by the front end. This pragma can also be applied to
! warnings provided by the back end and mentioned in @ref{12b,,Pragma Warnings}.
  By using a single full `-Wxxx' switch in the pragma, such warnings
  can also be treated as errors.
  
*************** the tag is changed from “warning:” t
*** 9157,9163 ****
  “[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
  
  
--- 9340,9346 ----
  “[warning-as-error]” is appended to the end of the message.
  
  @node Pragma Warnings,Pragma Weak_External,Pragma Warning_As_Error,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas id61}@anchor{12c}@anchor{gnat_rm/implementation_defined_pragmas pragma-warnings}@anchor{12b}
  @section Pragma Warnings
  
  
*************** selectively for each tool, and as a cons
*** 9313,9319 ****
  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
  
  
--- 9496,9502 ----
  Warnings with switch @code{-gnatw.w}.
  
  @node Pragma Weak_External,Pragma Wide_Character_Encoding,Pragma Warnings,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-weak-external}@anchor{12d}
  @section Pragma Weak_External
  
  
*************** end External_Module;
*** 9364,9370 ****
  @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
  
  
--- 9547,9553 ----
  @end example
  
  @node Pragma Wide_Character_Encoding,,Pragma Weak_External,Implementation Defined Pragmas
! @anchor{gnat_rm/implementation_defined_pragmas pragma-wide-character-encoding}@anchor{12e}
  @section Pragma Wide_Character_Encoding
  
  
*************** encoding within that file, and does not
*** 9395,9401 ****
  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
  
  
--- 9578,9584 ----
  or subunits.
  
  @node Implementation Defined Aspects,Implementation Defined Attributes,Implementation Defined Pragmas,Top
! @anchor{gnat_rm/implementation_defined_aspects doc}@anchor{12f}@anchor{gnat_rm/implementation_defined_aspects id1}@anchor{130}@anchor{gnat_rm/implementation_defined_aspects implementation-defined-aspects}@anchor{131}
  @chapter Implementation Defined Aspects
  
  
*************** or attribute definition clause.
*** 9466,9471 ****
--- 9649,9655 ----
  * Aspect Effective_Writes:: 
  * Aspect Exceptional_Cases:: 
  * Aspect Exit_Cases:: 
+ * Aspect Extended_Access:: 
  * Aspect Extensions_Visible:: 
  * Aspect Favor_Top_Level:: 
  * Aspect Ghost:: 
*************** or attribute definition clause.
*** 9491,9497 ****
--- 9675,9683 ----
  * Aspect Obsolescent:: 
  * Aspect Part_Of:: 
  * Aspect Persistent_BSS:: 
+ * Aspect Potentially_Invalid:: 
  * Aspect Predicate:: 
+ * Aspect Program_Exit:: 
  * Aspect Pure_Function:: 
  * Aspect Refined_Depends:: 
  * Aspect Refined_Global:: 
*************** or attribute definition clause.
*** 9524,9530 ****
  @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
  
  
--- 9710,9716 ----
  @end menu
  
  @node Aspect Abstract_State,Aspect Always_Terminates,,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-abstract-state}@anchor{132}
  @section Aspect Abstract_State
  
  
*************** or attribute definition clause.
*** 9533,9539 ****
  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
  
  
--- 9719,9725 ----
  This aspect is equivalent to @ref{1e,,pragma Abstract_State}.
  
  @node Aspect Always_Terminates,Aspect Annotate,Aspect Abstract_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-always-terminates}@anchor{133}
  @section Aspect Always_Terminates
  
  
*************** This aspect is equivalent to @ref{1e,,pr
*** 9542,9548 ****
  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
  
  
--- 9728,9734 ----
  This boolean aspect is equivalent to @ref{29,,pragma Always_Terminates}.
  
  @node Aspect Annotate,Aspect Async_Readers,Aspect Always_Terminates,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-annotate}@anchor{134}
  @section Aspect Annotate
  
  
*************** Equivalent to @code{pragma Annotate (ID,
*** 9569,9631 ****
  @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
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{32,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{133}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{34,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{134}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{44,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{135}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{46,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{136}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{56,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{137}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{52,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{138}
  @section Aspect Dimension
  
  
--- 9755,9817 ----
  @end table
  
  @node Aspect Async_Readers,Aspect Async_Writers,Aspect Annotate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-readers}@anchor{135}
  @section Aspect Async_Readers
  
  
  @geindex Async_Readers
  
! This boolean aspect is equivalent to @ref{33,,pragma Async_Readers}.
  
  @node Aspect Async_Writers,Aspect Constant_After_Elaboration,Aspect Async_Readers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-async-writers}@anchor{136}
  @section Aspect Async_Writers
  
  
  @geindex Async_Writers
  
! This boolean aspect is equivalent to @ref{35,,pragma Async_Writers}.
  
  @node Aspect Constant_After_Elaboration,Aspect Contract_Cases,Aspect Async_Writers,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-constant-after-elaboration}@anchor{137}
  @section Aspect Constant_After_Elaboration
  
  
  @geindex Constant_After_Elaboration
  
! This aspect is equivalent to @ref{45,,pragma Constant_After_Elaboration}.
  
  @node Aspect Contract_Cases,Aspect Depends,Aspect Constant_After_Elaboration,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-contract-cases}@anchor{138}
  @section Aspect Contract_Cases
  
  
  @geindex Contract_Cases
  
! This aspect is equivalent to @ref{47,,pragma Contract_Cases}, the sequence
  of clauses being enclosed in parentheses so that syntactically it is an
  aggregate.
  
  @node Aspect Depends,Aspect Default_Initial_Condition,Aspect Contract_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-depends}@anchor{139}
  @section Aspect Depends
  
  
  @geindex Depends
  
! This aspect is equivalent to @ref{57,,pragma Depends}.
  
  @node Aspect Default_Initial_Condition,Aspect Dimension,Aspect Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-default-initial-condition}@anchor{13a}
  @section Aspect Default_Initial_Condition
  
  
  @geindex Default_Initial_Condition
  
! This aspect is equivalent to @ref{53,,pragma Default_Initial_Condition}.
  
  @node Aspect Dimension,Aspect Dimension_System,Aspect Default_Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension}@anchor{13b}
  @section Aspect Dimension
  
  
*************** Note that when the dimensioned type is a
*** 9661,9667 ****
  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
  
  
--- 9847,9853 ----
  dimension value must be an integer literal.
  
  @node Aspect Dimension_System,Aspect Disable_Controlled,Aspect Dimension,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-dimension-system}@anchor{13c}
  @section Aspect Dimension_System
  
  
*************** See section ‘Performing Dimensionality
*** 9721,9727 ****
  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
  
  
--- 9907,9913 ----
  Guide for detailed examples of use of the dimension system.
  
  @node Aspect Disable_Controlled,Aspect Effective_Reads,Aspect Dimension_System,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-disable-controlled}@anchor{13d}
  @section Aspect Disable_Controlled
  
  
*************** where for example you might want a recor
*** 9734,9758 ****
  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
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{5b,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13c}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5d,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{13d}
  @section Aspect Exceptional_Cases
  
  
--- 9920,9944 ----
  whether some run-time check is enabled or suppressed.
  
  @node Aspect Effective_Reads,Aspect Effective_Writes,Aspect Disable_Controlled,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-reads}@anchor{13e}
  @section Aspect Effective_Reads
  
  
  @geindex Effective_Reads
  
! This aspect is equivalent to @ref{5c,,pragma Effective_Reads}.
  
  @node Aspect Effective_Writes,Aspect Exceptional_Cases,Aspect Effective_Reads,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-effective-writes}@anchor{13f}
  @section Aspect Effective_Writes
  
  
  @geindex Effective_Writes
  
! This aspect is equivalent to @ref{5e,,pragma Effective_Writes}.
  
  @node Aspect Exceptional_Cases,Aspect Exit_Cases,Aspect Effective_Writes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exceptional-cases}@anchor{140}
  @section Aspect Exceptional_Cases
  
  
*************** with a specific postcondition.
*** 9766,9773 ****
  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
  
  
--- 9952,9959 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.9.
  
! @node Aspect Exit_Cases,Aspect Extended_Access,Aspect Exceptional_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-exit-cases}@anchor{141}
  @section Aspect Exit_Cases
  
  
*************** or propagate an exception).
*** 9781,9815 ****
  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
  
  
--- 9967,10098 ----
  For the syntax and semantics of this aspect, see the SPARK 2014 Reference
  Manual, section 6.1.10.
  
! @node Aspect Extended_Access,Aspect Extensions_Visible,Aspect Exit_Cases,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extended-access}@anchor{142}
! @section Aspect Extended_Access
! 
! 
! This nonoverridable boolean-valued type-related representation aspect can be
! specified as part of a full_type_declaration for a general access type
! designating an unconstrained array subtype.
! 
! The absence of an Extended_Access aspect specification for such a
! full_type_declaration is equivalent to an explicit
! “Extended_Access => False” specification. This implies
! that the aspect is never unspecified for an eligible access type.
! An access type for which this aspect is True is said to be an extended access
! type; this includes the case of a type derived from an extended access type.
! Similarly, a value of such a type is said to be an extended access value.
! 
! The representation of an extended access value is different than that of
! other access values. This representation makes it possible to designate
! objects that cannot be designated using the usual “thin” or “fat” access
! representations for an access type designating an unconstrained array
! subtype (notably slices and array objects imported from other languages).
! 
! In particular, two rules are modified in determining the legality of an Access
! or Unchecked_Access attribute reference if the expected access type is
! an extended access type:
! 
! 
! @itemize *
! 
! @item 
! A slice of an aliased array object of a non-bitpacked type (more precisely,
! of an array type having independently addressable components) is considered
! to be aliased (and the accessibility level of a slice of an array object is
! defined to be that of the array object); this also applies to renamings
! of such slices, slices of such renamings, etc.
! 
! @item 
! The requirement that the nominal subtype of the prefix shall statically
! match the designated subtype of the access type need not be met.
! @end itemize
! 
! The Size aspect (and other aspects including Stream_Size, Object_Size,
! and Alignment) of an extended access type may depend on the properties of the
! designated type. Further details of this dependence are not documented.
! 
! An extended access value is not convertible to a non-extended access type,
! although conversions in the opposite direction are allowed. We don’t want
! to allow
! 
! @example
! type Big_Ref is access all String with Extended_Access;
! type Small_Ref is access all String;
! Obj : aliased String := "abcde";
! Big_Ptr : Big_Ref := Obj (2 .. 4)'Access; -- OK
! Small_Ptr : Small_Ref := Small_Ref (Big_Ptr); -- ERROR: illegal conversion
! @end example
! 
! because there is no way to represent the result of such a conversion.
! 
! A dereference of an extended access value (or a reference to a renaming
! thereof) shall not occur in any of the following contexts:
! 
! 
! @itemize *
! 
! @item 
! as an operative constituent of the prefix of an Access or
! Unchecked_Access attribute reference whose expected type is not extended; or
! 
! @item 
! as an operative constituent of an actual parameter in a call where
! the corresponding formal parameter is explicitly aliased.
! @end itemize
! 
! For the same reasons that explicit conversions from an extended access type to a
! non-extended access type are forbidden, we also need to disallow getting the
! same effect via a Extended_Ptr.all’Access reference; this includes the case
! of passing Extended_Ptr.all as an actual parameter in a call where the
! corresponding formal parameter is explicitly aliased (because the callee
! could evaluate Formal_Parameter’Access). This goal is accomplished by
! adjusting the definition of the term “aliased”. A dereference of an extended
! value occurring in one of these contexts is defined to denote
! a nonaliased view. This has the desired effect because these contexts require
! an aliased view. Continuing the preceding example, this rule disallows
! 
! @example
! Sneaky_1 : Small_Ptr := Big_Ptr.all'Access; -- ERROR: illegal 'Access prefix
! 
! function Make (Str : aliased in out String) return Small_Ptr
!   is (Str'Access); -- OK
! 
! Sneaky_2 : Small_Ptr := Make (Str => Big_Ptr.all); -- ERROR: bad parameter
! @end example
! 
! for the same reason given above in the case of an explicit type conversion.
! 
! @node Aspect Extensions_Visible,Aspect Favor_Top_Level,Aspect Extended_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-extensions-visible}@anchor{143}
  @section Aspect Extensions_Visible
  
  
  @geindex Extensions_Visible
  
! This aspect is equivalent to @ref{6e,,pragma Extensions_Visible}.
  
  @node Aspect Favor_Top_Level,Aspect Ghost,Aspect Extensions_Visible,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-favor-top-level}@anchor{144}
  @section Aspect Favor_Top_Level
  
  
  @geindex Favor_Top_Level
  
! This boolean aspect is equivalent to @ref{73,,pragma Favor_Top_Level}.
  
  @node Aspect Ghost,Aspect Ghost_Predicate,Aspect Favor_Top_Level,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost}@anchor{145}
  @section Aspect Ghost
  
  
  @geindex Ghost
  
! This aspect is equivalent to @ref{77,,pragma Ghost}.
  
  @node Aspect Ghost_Predicate,Aspect Global,Aspect Ghost,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-ghost-predicate}@anchor{146}
  @section Aspect Ghost_Predicate
  
  
*************** For the detailed semantics of this aspec
*** 9822,9886 ****
  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
  
  
--- 10105,10169 ----
  in the SPARK Reference Manual, section 3.2.4.
  
  @node Aspect Global,Aspect Initial_Condition,Aspect Ghost_Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-global}@anchor{147}
  @section Aspect Global
  
  
  @geindex Global
  
! This aspect is equivalent to @ref{79,,pragma Global}.
  
  @node Aspect Initial_Condition,Aspect Initializes,Aspect Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initial-condition}@anchor{148}
  @section Aspect Initial_Condition
  
  
  @geindex Initial_Condition
  
! This aspect is equivalent to @ref{86,,pragma Initial_Condition}.
  
  @node Aspect Initializes,Aspect Inline_Always,Aspect Initial_Condition,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-initializes}@anchor{149}
  @section Aspect Initializes
  
  
  @geindex Initializes
  
! This aspect is equivalent to @ref{89,,pragma Initializes}.
  
  @node Aspect Inline_Always,Aspect Invariant,Aspect Initializes,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-inline-always}@anchor{14a}
  @section Aspect Inline_Always
  
  
  @geindex Inline_Always
  
! This boolean aspect is equivalent to @ref{8b,,pragma Inline_Always}.
  
  @node Aspect Invariant,Aspect Invariant’Class,Aspect Inline_Always,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant}@anchor{14b}
  @section Aspect Invariant
  
  
  @geindex Invariant
  
! This aspect is equivalent to @ref{93,,pragma Invariant}. It is a
  synonym for the language defined aspect @code{Type_Invariant} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Invariant’Class,Aspect Iterable,Aspect Invariant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-invariant-class}@anchor{14c}
  @section Aspect Invariant’Class
  
  
  @geindex Invariant'Class
  
! This aspect is equivalent to @ref{111,,pragma Type_Invariant_Class}. It is a
  synonym for the language defined aspect @code{Type_Invariant'Class} except
  that it is separately controllable using pragma @code{Assertion_Policy}.
  
  @node Aspect Iterable,Aspect Linker_Section,Aspect Invariant’Class,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-iterable}@anchor{14d}
  @section Aspect Iterable
  
  
*************** function Get_Element (Cont : Container;
*** 9964,9979 ****
  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
  
  
--- 10247,10262 ----
  This aspect is used in the GNAT-defined formal container packages.
  
  @node Aspect Linker_Section,Aspect Local_Restrictions,Aspect Iterable,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-linker-section}@anchor{14e}
  @section Aspect Linker_Section
  
  
  @geindex Linker_Section
  
! This aspect is equivalent to @ref{9b,,pragma Linker_Section}.
  
  @node Aspect Local_Restrictions,Aspect Lock_Free,Aspect Linker_Section,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-local-restrictions}@anchor{14f}
  @section Aspect Local_Restrictions
  
  
*************** case of a declaration that occurs within
*** 10027,10099 ****
  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
  
  
--- 10310,10382 ----
  a Local_Restrictions specification).
  
  @node Aspect Lock_Free,Aspect Max_Queue_Length,Aspect Local_Restrictions,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-lock-free}@anchor{150}
  @section Aspect Lock_Free
  
  
  @geindex Lock_Free
  
! This boolean aspect is equivalent to @ref{9d,,pragma Lock_Free}.
  
  @node Aspect Max_Queue_Length,Aspect No_Caching,Aspect Lock_Free,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-max-queue-length}@anchor{151}
  @section Aspect Max_Queue_Length
  
  
  @geindex Max_Queue_Length
  
! This aspect is equivalent to @ref{a5,,pragma Max_Queue_Length}.
  
  @node Aspect No_Caching,Aspect No_Elaboration_Code_All,Aspect Max_Queue_Length,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-caching}@anchor{152}
  @section Aspect No_Caching
  
  
  @geindex No_Caching
  
! This boolean aspect is equivalent to @ref{a8,,pragma No_Caching}.
  
  @node Aspect No_Elaboration_Code_All,Aspect No_Inline,Aspect No_Caching,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-elaboration-code-all}@anchor{153}
  @section Aspect No_Elaboration_Code_All
  
  
  @geindex No_Elaboration_Code_All
  
! This aspect is equivalent to @ref{ab,,pragma No_Elaboration_Code_All}
  for a program unit.
  
  @node Aspect No_Inline,Aspect No_Raise,Aspect No_Elaboration_Code_All,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-inline}@anchor{154}
  @section Aspect No_Inline
  
  
  @geindex No_Inline
  
! This boolean aspect is equivalent to @ref{ae,,pragma No_Inline}.
  
  @node Aspect No_Raise,Aspect No_Tagged_Streams,Aspect No_Inline,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-raise}@anchor{155}
  @section Aspect No_Raise
  
  
  @geindex No_Raise
  
! This boolean aspect is equivalent to @ref{b0,,pragma No_Raise}.
  
  @node Aspect No_Tagged_Streams,Aspect No_Task_Parts,Aspect No_Raise,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-tagged-streams}@anchor{156}
  @section Aspect No_Tagged_Streams
  
  
  @geindex No_Tagged_Streams
  
! This aspect is equivalent to @ref{b4,,pragma No_Tagged_Streams} with an
  argument specifying a root tagged type (thus this aspect can only be
  applied to such a type).
  
  @node Aspect No_Task_Parts,Aspect Object_Size,Aspect No_Tagged_Streams,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-no-task-parts}@anchor{157}
  @section Aspect No_Task_Parts
  
  
*************** away certain tasking-related code that w
*** 10109,10212 ****
  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 controllable using pragma
  @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
  
  
--- 10392,10514 ----
  for T’Class, because descendants of T might contain tasks.
  
  @node Aspect Object_Size,Aspect Obsolescent,Aspect No_Task_Parts,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-object-size}@anchor{158}
  @section Aspect Object_Size
  
  
  @geindex Object_Size
  
! This aspect is equivalent to @ref{159,,attribute Object_Size}.
  
  @node Aspect Obsolescent,Aspect Part_Of,Aspect Object_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-obsolescent}@anchor{15a}
  @section Aspect Obsolescent
  
  
  @geindex Obsolescent
  
! This aspect is equivalent to @ref{b7,,pragma Obsolescent}. Note that the
  evaluation of this aspect happens at the point of occurrence, it is not
  delayed until the freeze point.
  
  @node Aspect Part_Of,Aspect Persistent_BSS,Aspect Obsolescent,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-part-of}@anchor{15b}
  @section Aspect Part_Of
  
  
  @geindex Part_Of
  
! This aspect is equivalent to @ref{bd,,pragma Part_Of}.
  
! @node Aspect Persistent_BSS,Aspect Potentially_Invalid,Aspect Part_Of,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-persistent-bss}@anchor{15c}
  @section Aspect Persistent_BSS
  
  
  @geindex Persistent_BSS
  
! This boolean aspect is equivalent to @ref{c1,,pragma Persistent_BSS}.
  
! @node Aspect Potentially_Invalid,Aspect Predicate,Aspect Persistent_BSS,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-potentially-invalid}@anchor{15d}
! @section Aspect Potentially_Invalid
! 
! 
! @geindex Potentially_Invalid
! 
! For the syntax and semantics of this aspect, see the SPARK 2014 Reference
! Manual, section 13.9.1.
! 
! @node Aspect Predicate,Aspect Program_Exit,Aspect Potentially_Invalid,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-predicate}@anchor{15e}
  @section Aspect Predicate
  
  
  @geindex Predicate
  
! This aspect is equivalent to @ref{c8,,pragma Predicate}. It is thus
  similar to the language defined aspects @code{Dynamic_Predicate}
  and @code{Static_Predicate} except that whether the resulting
  predicate is static or dynamic is controlled by the form of the
  expression. It is also separately controllable using pragma
  @code{Assertion_Policy}.
  
! @node Aspect Program_Exit,Aspect Pure_Function,Aspect Predicate,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-program-exit}@anchor{15f}
! @section Aspect Program_Exit
! 
! 
! @geindex Program_Exit
! 
! This boolean aspect is equivalent to @ref{d1,,pragma Program_Exit}.
! 
! @node Aspect Pure_Function,Aspect Refined_Depends,Aspect Program_Exit,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-pure-function}@anchor{160}
  @section Aspect Pure_Function
  
  
  @geindex Pure_Function
  
! This boolean aspect is equivalent to @ref{d6,,pragma Pure_Function}.
  
  @node Aspect Refined_Depends,Aspect Refined_Global,Aspect Pure_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-depends}@anchor{161}
  @section Aspect Refined_Depends
  
  
  @geindex Refined_Depends
  
! This aspect is equivalent to @ref{da,,pragma Refined_Depends}.
  
  @node Aspect Refined_Global,Aspect Refined_Post,Aspect Refined_Depends,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-global}@anchor{162}
  @section Aspect Refined_Global
  
  
  @geindex Refined_Global
  
! This aspect is equivalent to @ref{dc,,pragma Refined_Global}.
  
  @node Aspect Refined_Post,Aspect Refined_State,Aspect Refined_Global,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-post}@anchor{163}
  @section Aspect Refined_Post
  
  
  @geindex Refined_Post
  
! This aspect is equivalent to @ref{de,,pragma Refined_Post}.
  
  @node Aspect Refined_State,Aspect Relaxed_Initialization,Aspect Refined_Post,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-refined-state}@anchor{164}
  @section Aspect Refined_State
  
  
  @geindex Refined_State
  
! This aspect is equivalent to @ref{e0,,pragma Refined_State}.
  
  @node Aspect Relaxed_Initialization,Aspect Remote_Access_Type,Aspect Refined_State,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-relaxed-initialization}@anchor{165}
  @section Aspect Relaxed_Initialization
  
  
*************** For the syntax and semantics of this asp
*** 10216,10297 ****
  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
  
  
--- 10518,10599 ----
  Manual, section 6.10.
  
  @node Aspect Remote_Access_Type,Aspect Scalar_Storage_Order,Aspect Relaxed_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-remote-access-type}@anchor{166}
  @section Aspect Remote_Access_Type
  
  
  @geindex Remote_Access_Type
  
! This aspect is equivalent to @ref{e3,,pragma Remote_Access_Type}.
  
  @node Aspect Scalar_Storage_Order,Aspect Secondary_Stack_Size,Aspect Remote_Access_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-scalar-storage-order}@anchor{167}
  @section Aspect Scalar_Storage_Order
  
  
  @geindex Scalar_Storage_Order
  
! This aspect is equivalent to a @ref{168,,attribute Scalar_Storage_Order}.
  
  @node Aspect Secondary_Stack_Size,Aspect Shared,Aspect Scalar_Storage_Order,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-secondary-stack-size}@anchor{169}
  @section Aspect Secondary_Stack_Size
  
  
  @geindex Secondary_Stack_Size
  
! This aspect is equivalent to @ref{e9,,pragma Secondary_Stack_Size}.
  
  @node Aspect Shared,Aspect Side_Effects,Aspect Secondary_Stack_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-shared}@anchor{16a}
  @section Aspect Shared
  
  
  @geindex Shared
  
! This boolean aspect is equivalent to @ref{ec,,pragma Shared}
  and is thus a synonym for aspect @code{Atomic}.
  
  @node Aspect Side_Effects,Aspect Simple_Storage_Pool,Aspect Shared,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-side-effects}@anchor{16b}
  @section Aspect Side_Effects
  
  
  @geindex Side_Effects
  
! This aspect is equivalent to @ref{f0,,pragma Side_Effects}.
  
  @node Aspect Simple_Storage_Pool,Aspect Simple_Storage_Pool_Type,Aspect Side_Effects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool}@anchor{16c}
  @section Aspect Simple_Storage_Pool
  
  
  @geindex Simple_Storage_Pool
  
! This aspect is equivalent to @ref{f3,,attribute Simple_Storage_Pool}.
  
  @node Aspect Simple_Storage_Pool_Type,Aspect SPARK_Mode,Aspect Simple_Storage_Pool,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-simple-storage-pool-type}@anchor{16d}
  @section Aspect Simple_Storage_Pool_Type
  
  
  @geindex Simple_Storage_Pool_Type
  
! This boolean aspect is equivalent to @ref{f2,,pragma Simple_Storage_Pool_Type}.
  
  @node Aspect SPARK_Mode,Aspect Subprogram_Variant,Aspect Simple_Storage_Pool_Type,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-spark-mode}@anchor{16e}
  @section Aspect SPARK_Mode
  
  
  @geindex SPARK_Mode
  
! This aspect is equivalent to @ref{fa,,pragma SPARK_Mode} and
  may be specified for either or both of the specification and body
  of a subprogram or package.
  
  @node Aspect Subprogram_Variant,Aspect Suppress_Debug_Info,Aspect SPARK_Mode,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-subprogram-variant}@anchor{16f}
  @section Aspect Subprogram_Variant
  
  
*************** For the syntax and semantics of this asp
*** 10301,10383 ****
  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
  
  
--- 10603,10685 ----
  Manual, section 6.1.8.
  
  @node Aspect Suppress_Debug_Info,Aspect Suppress_Initialization,Aspect Subprogram_Variant,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-debug-info}@anchor{170}
  @section Aspect Suppress_Debug_Info
  
  
  @geindex Suppress_Debug_Info
  
! This boolean aspect is equivalent to @ref{103,,pragma Suppress_Debug_Info}.
  
  @node Aspect Suppress_Initialization,Aspect Test_Case,Aspect Suppress_Debug_Info,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-suppress-initialization}@anchor{171}
  @section Aspect Suppress_Initialization
  
  
  @geindex Suppress_Initialization
  
! This boolean aspect is equivalent to @ref{106,,pragma Suppress_Initialization}.
  
  @node Aspect Test_Case,Aspect Thread_Local_Storage,Aspect Suppress_Initialization,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-test-case}@anchor{172}
  @section Aspect Test_Case
  
  
  @geindex Test_Case
  
! This aspect is equivalent to @ref{10a,,pragma Test_Case}.
  
  @node Aspect Thread_Local_Storage,Aspect Universal_Aliasing,Aspect Test_Case,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-thread-local-storage}@anchor{173}
  @section Aspect Thread_Local_Storage
  
  
  @geindex Thread_Local_Storage
  
! This boolean aspect is equivalent to @ref{10c,,pragma Thread_Local_Storage}.
  
  @node Aspect Universal_Aliasing,Aspect Unmodified,Aspect Thread_Local_Storage,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-universal-aliasing}@anchor{174}
  @section Aspect Universal_Aliasing
  
  
  @geindex Universal_Aliasing
  
! This boolean aspect is equivalent to @ref{117,,pragma Universal_Aliasing}.
  
  @node Aspect Unmodified,Aspect Unreferenced,Aspect Universal_Aliasing,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unmodified}@anchor{175}
  @section Aspect Unmodified
  
  
  @geindex Unmodified
  
! This boolean aspect is equivalent to @ref{119,,pragma Unmodified}.
  
  @node Aspect Unreferenced,Aspect Unreferenced_Objects,Aspect Unmodified,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced}@anchor{176}
  @section Aspect Unreferenced
  
  
  @geindex Unreferenced
  
! This boolean aspect is equivalent to @ref{11b,,pragma Unreferenced}.
  
  When using the @code{-gnat2022} switch, this aspect is also supported on formal
  parameters, which is in particular the only form possible for expression
  functions.
  
  @node Aspect Unreferenced_Objects,Aspect User_Aspect,Aspect Unreferenced,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-unreferenced-objects}@anchor{177}
  @section Aspect Unreferenced_Objects
  
  
  @geindex Unreferenced_Objects
  
! This boolean aspect is equivalent to @ref{11d,,pragma Unreferenced_Objects}.
  
  @node Aspect User_Aspect,Aspect Value_Size,Aspect Unreferenced_Objects,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-user-aspect}@anchor{178}
  @section Aspect User_Aspect
  
  
*************** replicating the set of aspect specificat
*** 10390,10434 ****
  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
  
  
--- 10692,10736 ----
  pragma-defined aspect.
  
  @node Aspect Value_Size,Aspect Volatile_Full_Access,Aspect User_Aspect,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-value-size}@anchor{179}
  @section Aspect Value_Size
  
  
  @geindex Value_Size
  
! This aspect is equivalent to @ref{17a,,attribute Value_Size}.
  
  @node Aspect Volatile_Full_Access,Aspect Volatile_Function,Aspect Value_Size,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-full-access}@anchor{17b}
  @section Aspect Volatile_Full_Access
  
  
  @geindex Volatile_Full_Access
  
! This boolean aspect is equivalent to @ref{127,,pragma Volatile_Full_Access}.
  
  @node Aspect Volatile_Function,Aspect Warnings,Aspect Volatile_Full_Access,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-volatile-function}@anchor{17c}
  @section Aspect Volatile_Function
  
  
  @geindex Volatile_Function
  
! This boolean aspect is equivalent to @ref{129,,pragma Volatile_Function}.
  
  @node Aspect Warnings,,Aspect Volatile_Function,Implementation Defined Aspects
! @anchor{gnat_rm/implementation_defined_aspects aspect-warnings}@anchor{17d}
  @section Aspect Warnings
  
  
  @geindex Warnings
  
! This aspect is equivalent to the two argument form of @ref{12b,,pragma Warnings},
  where the first argument is @code{ON} or @code{OFF} and the second argument
  is the entity.
  
  @node Implementation Defined Attributes,Standard and Implementation Defined Restrictions,Implementation Defined Aspects,Top
! @anchor{gnat_rm/implementation_defined_attributes doc}@anchor{17e}@anchor{gnat_rm/implementation_defined_attributes id1}@anchor{17f}@anchor{gnat_rm/implementation_defined_attributes implementation-defined-attributes}@anchor{8}
  @chapter Implementation Defined Attributes
  
  
*************** consideration, you should minimize the u
*** 10478,10483 ****
--- 10780,10786 ----
  * Attribute Fast_Math:: 
  * Attribute Finalization_Size:: 
  * Attribute Fixed_Value:: 
+ * Attribute From_Address:: 
  * Attribute From_Any:: 
  * Attribute Has_Access_Values:: 
  * Attribute Has_Discriminants:: 
*************** consideration, you should minimize the u
*** 10534,10540 ****
  @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
  
  
--- 10837,10843 ----
  @end menu
  
  @node Attribute Abort_Signal,Attribute Address_Size,,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-abort-signal}@anchor{180}
  @section Attribute Abort_Signal
  
  
*************** completely outside the normal semantics
*** 10548,10554 ****
  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
  
  
--- 10851,10857 ----
  intercept the abort exception).
  
  @node Attribute Address_Size,Attribute Asm_Input,Attribute Abort_Signal,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-address-size}@anchor{181}
  @section Attribute Address_Size
  
  
*************** reference to System.Address’Size is no
*** 10564,10570 ****
  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
  
  
--- 10867,10873 ----
  is a private type.
  
  @node Attribute Asm_Input,Attribute Asm_Output,Attribute Address_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-input}@anchor{182}
  @section Attribute Asm_Input
  
  
*************** to be a static expression, and is the co
*** 10578,10587 ****
  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
  
  
--- 10881,10890 ----
  value to be used as the input argument.  The possible values for the
  constant are the same as those used in the RTL, and are dependent on
  the configuration file used to built the GCC back end.
! @ref{183,,Machine Code Insertions}
  
  @node Attribute Asm_Output,Attribute Atomic_Always_Lock_Free,Attribute Asm_Input,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-asm-output}@anchor{184}
  @section Attribute Asm_Output
  
  
*************** result.  The possible values for constra
*** 10597,10606 ****
  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
  
  
--- 10900,10909 ----
  the RTL, and are dependent on the configuration file used to build the
  GCC back end.  If there are no output operands, then this argument may
  either be omitted, or explicitly given as @code{No_Output_Operands}.
! @ref{183,,Machine Code Insertions}
  
  @node Attribute Atomic_Always_Lock_Free,Attribute Bit,Attribute Asm_Output,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-atomic-always-lock-free}@anchor{185}
  @section Attribute Atomic_Always_Lock_Free
  
  
*************** result indicates whether atomic operatio
*** 10611,10617 ****
  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
  
  
--- 10914,10920 ----
  for the given type.
  
  @node Attribute Bit,Attribute Bit_Position,Attribute Atomic_Always_Lock_Free,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit}@anchor{186}
  @section Attribute Bit
  
  
*************** This attribute is designed to be compati
*** 10642,10648 ****
  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
  
  
--- 10945,10951 ----
  and implementation of the @code{Bit} attribute.
  
  @node Attribute Bit_Position,Attribute Code_Address,Attribute Bit,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-bit-position}@anchor{187}
  @section Attribute Bit_Position
  
  
*************** type `universal_integer'.  The value dep
*** 10657,10663 ****
  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
  
  
--- 10960,10966 ----
  the containing record @code{R}.
  
  @node Attribute Code_Address,Attribute Compiler_Version,Attribute Bit_Position,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-code-address}@anchor{188}
  @section Attribute Code_Address
  
  
*************** the same value as is returned by the cor
*** 10700,10706 ****
  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
  
  
--- 11003,11009 ----
  attribute.
  
  @node Attribute Compiler_Version,Attribute Constrained,Attribute Code_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-compiler-version}@anchor{189}
  @section Attribute Compiler_Version
  
  
*************** prefix) yields a static string identifyi
*** 10711,10717 ****
  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
  
  
--- 11014,11020 ----
  being used to compile the unit containing the attribute reference.
  
  @node Attribute Constrained,Attribute Default_Bit_Order,Attribute Compiler_Version,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-constrained}@anchor{18a}
  @section Attribute Constrained
  
  
*************** record type without discriminants is alw
*** 10726,10732 ****
  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
  
  
--- 11029,11035 ----
  compatible with older Ada compilers, including notably DEC Ada.
  
  @node Attribute Default_Bit_Order,Attribute Default_Scalar_Storage_Order,Attribute Constrained,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-bit-order}@anchor{18b}
  @section Attribute Default_Bit_Order
  
  
*************** as a @code{Pos} value (0 for @code{High_
*** 10743,10749 ****
  @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
  
  
--- 11046,11052 ----
  @code{Default_Bit_Order} in package @code{System}.
  
  @node Attribute Default_Scalar_Storage_Order,Attribute Deref,Attribute Default_Bit_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-default-scalar-storage-order}@anchor{18c}
  @section Attribute Default_Scalar_Storage_Order
  
  
*************** equal to @code{Default_Bit_Order} if uns
*** 10760,10766 ****
  @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
  
  
--- 11063,11069 ----
  @code{System.Bit_Order} value. This is a static attribute.
  
  @node Attribute Deref,Attribute Descriptor_Size,Attribute Default_Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-deref}@anchor{18d}
  @section Attribute Deref
  
  
*************** a named access-to-@cite{typ} type, excep
*** 10773,10779 ****
  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
  
  
--- 11076,11082 ----
  used on the left side of an assignment.
  
  @node Attribute Descriptor_Size,Attribute Elaborated,Attribute Deref,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-descriptor-size}@anchor{18e}
  @section Attribute Descriptor_Size
  
  
*************** since @code{Positive} has an alignment o
*** 10802,10808 ****
  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
  
  
--- 11105,11111 ----
  which yields a size of 32 bits, i.e. including 16 bits of padding.
  
  @node Attribute Elaborated,Attribute Elab_Body,Attribute Descriptor_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elaborated}@anchor{18f}
  @section Attribute Elaborated
  
  
*************** units has been completed.  An exception
*** 10817,10823 ****
  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
  
  
--- 11120,11126 ----
  elaboration, the value is always False for such units.
  
  @node Attribute Elab_Body,Attribute Elab_Spec,Attribute Elaborated,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-body}@anchor{190}
  @section Attribute Elab_Body
  
  
*************** e.g., if it is necessary to do selective
*** 10833,10839 ****
  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
  
  
--- 11136,11142 ----
  error.
  
  @node Attribute Elab_Spec,Attribute Elab_Subp_Body,Attribute Elab_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-spec}@anchor{191}
  @section Attribute Elab_Spec
  
  
*************** Ada code, e.g., if it is necessary to do
*** 10849,10855 ****
  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
  
  
--- 11152,11158 ----
  some error.
  
  @node Attribute Elab_Subp_Body,Attribute Emax,Attribute Elab_Spec,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-elab-subp-body}@anchor{192}
  @section Attribute Elab_Subp_Body
  
  
*************** elaboration procedure by the binder in C
*** 10863,10869 ****
  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
  
  
--- 11166,11172 ----
  otherwise.
  
  @node Attribute Emax,Attribute Enabled,Attribute Elab_Subp_Body,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-emax}@anchor{193}
  @section Attribute Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 10876,10882 ****
  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
  
  
--- 11179,11185 ----
  this attribute.
  
  @node Attribute Enabled,Attribute Enum_Rep,Attribute Emax,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enabled}@anchor{194}
  @section Attribute Enabled
  
  
*************** a @code{pragma Suppress} or @code{pragma
*** 10900,10906 ****
  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
  
  
--- 11203,11209 ----
  the package or subprogram, controlling whether the check will be present.
  
  @node Attribute Enum_Rep,Attribute Enum_Val,Attribute Enabled,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-rep}@anchor{195}
  @section Attribute Enum_Rep
  
  
*************** integer calculation is done at run time,
*** 10940,10946 ****
  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
  
  
--- 11243,11249 ----
  may raise @code{Constraint_Error}.
  
  @node Attribute Enum_Val,Attribute Epsilon,Attribute Enum_Rep,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-enum-val}@anchor{196}
  @section Attribute Enum_Val
  
  
*************** absence of an enumeration representation
*** 10966,10972 ****
  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
  
  
--- 11269,11275 ----
  attribute (i.e., the result is static if the argument is static).
  
  @node Attribute Epsilon,Attribute Fast_Math,Attribute Enum_Val,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-epsilon}@anchor{197}
  @section Attribute Epsilon
  
  
*************** the Ada 83 reference manual for an exact
*** 10979,10985 ****
  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
  
  
--- 11282,11288 ----
  this attribute.
  
  @node Attribute Fast_Math,Attribute Finalization_Size,Attribute Epsilon,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fast-math}@anchor{198}
  @section Attribute Fast_Math
  
  
*************** prefix) yields a static Boolean value th
*** 10990,10996 ****
  @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
  
  
--- 11293,11299 ----
  @code{Fast_Math} is active, and False otherwise.
  
  @node Attribute Finalization_Size,Attribute Fixed_Value,Attribute Fast_Math,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-finalization-size}@anchor{199}
  @section Attribute Finalization_Size
  
  
*************** class-wide type whose tag denotes a type
*** 11007,11014 ****
  
  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
  
  
--- 11310,11317 ----
  
  Note that only heap-allocated objects contain finalization data.
  
! @node Attribute Fixed_Value,Attribute From_Address,Attribute Finalization_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-fixed-value}@anchor{19a}
  @section Attribute Fixed_Value
  
  
*************** that there are full range checks, to ens
*** 11034,11041 ****
  This attribute is primarily intended for use in implementation of the
  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
  
  
--- 11337,11384 ----
  This attribute is primarily intended for use in implementation of the
  input-output functions for fixed-point values.
  
! @node Attribute From_Address,Attribute From_Any,Attribute Fixed_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-address}@anchor{19b}
! @section Attribute From_Address
! 
! 
! @geindex From_Address
! 
! The prefix of this attribute must be a general access-to-array type (or
! subtype); the attribute takes a System.Address argument and possibly some
! additional arguments (described below) and yields a value of the given
! access type that designates an array object located at the given address.
! In the case of a non-null array this means that the given address is the
! address of the first element of the array object (not the address of any sort
! of bounds descriptor). This allows associating bounds with an address that is,
! for example, passed in from C code.
! 
! If the designated array subtype is unconstrained (which is the usual case),
! then for each dimension (in order) the attribute takes either one or two
! additional arguments of the corresponding index type - one if the index
! subtype is a fixed lower bound subtype, two (low bound first) otherwise.
! In this case, the access type shall be an extended access type (see the
! description of the Extended_Access aspect). These additional arguments
! specify the bounds of the designated array object.
! 
! If the designated array subtype is constrained then no additional arguments
! are provided and the bounds of the designated object are those of the
! designated subtype.
! 
! Roughly speaking, My_Access_Type’From_Address (Addr, Lo, Hi) is equivalent to a
! declare expression:
! 
! @example
! (declare
!    Obj : aliased Designated_Array_Type (Lo .. Hi)
!      with Import, Address => Addr;
! begin
!    My_Access_Type'(Obj'Unchecked_Access)
! end)
! @end example
! 
! @node Attribute From_Any,Attribute Has_Access_Values,Attribute From_Address,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-from-any}@anchor{19c}
  @section Attribute From_Any
  
  
*************** This internal attribute is used for the
*** 11045,11051 ****
  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
  
  
--- 11388,11394 ----
  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{19d}
  @section Attribute Has_Access_Values
  
  
*************** definitions.  If the attribute is applie
*** 11063,11069 ****
  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
  
  
--- 11406,11412 ----
  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{19e}
  @section Attribute Has_Discriminants
  
  
*************** definitions.  If the attribute is applie
*** 11079,11085 ****
  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
  
  
--- 11422,11428 ----
  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{19f}
  @section Attribute Has_Tagged_Values
  
  
*************** definitions. If the attribute is applied
*** 11096,11102 ****
  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
  
  
--- 11439,11445 ----
  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{1a0}
  @section Attribute Img
  
  
*************** that returns the appropriate string when
*** 11126,11132 ****
  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
  
  
--- 11469,11475 ----
  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{1a1}
  @section Attribute Initialized
  
  
*************** For the syntax and semantics of this att
*** 11136,11142 ****
  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
  
  
--- 11479,11485 ----
  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{1a2}
  @section Attribute Integer_Value
  
  
*************** This attribute is primarily intended for
*** 11164,11170 ****
  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
  
  
--- 11507,11513 ----
  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{1a3}
  @section Attribute Invalid_Value
  
  
*************** including the ability to modify the valu
*** 11178,11184 ****
  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
  
  
--- 11521,11527 ----
  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{1a4}
  @section Attribute Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11191,11197 ****
  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
  
  
--- 11534,11540 ----
  this attribute.
  
  @node Attribute Library_Level,Attribute Loop_Entry,Attribute Large,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-library-level}@anchor{1a5}
  @section Attribute Library_Level
  
  
*************** end Gen;
*** 11217,11223 ****
  @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
  
  
--- 11560,11566 ----
  @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{1a6}
  @section Attribute Loop_Entry
  
  
*************** entry. This copy is not performed if the
*** 11250,11256 ****
  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
  
  
--- 11593,11599 ----
  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{1a7}
  @section Attribute Machine_Size
  
  
*************** This attribute is identical to the @code
*** 11260,11266 ****
  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
  
  
--- 11603,11609 ----
  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{1a8}
  @section Attribute Mantissa
  
  
*************** the Ada 83 reference manual for an exact
*** 11273,11279 ****
  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
  
  
--- 11616,11622 ----
  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{1a9}@anchor{gnat_rm/implementation_defined_attributes id2}@anchor{1aa}
  @section Attribute Maximum_Alignment
  
  
*************** this attribute.
*** 11282,11295 ****
  
  @geindex Maximum_Alignment
  
! @code{Standard'Maximum_Alignment} (@code{Standard} is the only
! allowed prefix) provides the maximum useful alignment value for the
! target.  This is a static value that can be used to specify the alignment
! for an object, guaranteeing that it is properly aligned in all
! 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
  
  
--- 11625,11639 ----
  
  @geindex Maximum_Alignment
  
! @code{Standard'Maximum_Alignment} (@code{Standard} is the only allowed prefix)
! provides the maximum default alignment value for the target, that is to
! say the maximum alignment that the compiler may choose by default for a
! type or an object. Larger alignments are supported up to some maximum
! value dependent on the target, but may require specific mechanisms that
! are not needed up to @code{Standard'Maximum_Alignment}.
  
  @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{1ab}
  @section Attribute Max_Integer_Size
  
  
*************** prefix) provides the size of the largest
*** 11300,11306 ****
  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
  
  
--- 11644,11650 ----
  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{1ac}
  @section Attribute Mechanism_Code
  
  
*************** by reference
*** 11331,11337 ****
  @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
  
  
--- 11675,11681 ----
  @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{1ad}
  @section Attribute Null_Parameter
  
  
*************** There is no way of indicating this witho
*** 11356,11362 ****
  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
  
  
--- 11700,11706 ----
  attribute.
  
  @node Attribute Object_Size,Attribute Old,Attribute Null_Parameter,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-object-size}@anchor{159}@anchor{gnat_rm/implementation_defined_attributes id3}@anchor{1ae}
  @section Attribute Object_Size
  
  
*************** Similar additional checks are performed
*** 11426,11432 ****
  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
  
  
--- 11770,11776 ----
  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{1af}
  @section Attribute Old
  
  
*************** definition are allowed under control of
*** 11441,11447 ****
  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
  
  
--- 11785,11791 ----
  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{1b0}
  @section Attribute Passed_By_Reference
  
  
*************** passed by copy in calls.  For scalar typ
*** 11457,11463 ****
  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
  
  
--- 11801,11807 ----
  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{1b1}
  @section Attribute Pool_Address
  
  
*************** For an object created by @code{new}, @co
*** 11479,11485 ****
  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
  
  
--- 11823,11829 ----
  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{1b2}
  @section Attribute Range_Length
  
  
*************** applied to the index subtype of a one di
*** 11492,11498 ****
  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
  
  
--- 11836,11842 ----
  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{1b3}
  @section Attribute Restriction_Set
  
  
*************** Restrictions pragma, they are not analyz
*** 11562,11568 ****
  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
  
  
--- 11906,11912 ----
  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{1b4}
  @section Attribute Result
  
  
*************** For a further discussion of the use of t
*** 11575,11581 ****
  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
  
  
--- 11919,11925 ----
  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{1b5}
  @section Attribute Round
  
  
*************** also permits the use of the @code{'Round
*** 11586,11592 ****
  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
  
  
--- 11930,11936 ----
  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{1b6}
  @section Attribute Safe_Emax
  
  
*************** the Ada 83 reference manual for an exact
*** 11599,11605 ****
  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
  
  
--- 11943,11949 ----
  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{1b7}
  @section Attribute Safe_Large
  
  
*************** the Ada 83 reference manual for an exact
*** 11612,11618 ****
  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
  
  
--- 11956,11962 ----
  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{1b8}
  @section Attribute Safe_Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11625,11631 ****
  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
  
  
--- 11969,11975 ----
  this attribute.
  
  @node Attribute Scalar_Storage_Order,Attribute Simple_Storage_Pool,Attribute Safe_Small,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-scalar-storage-order}@anchor{168}@anchor{gnat_rm/implementation_defined_attributes id4}@anchor{1b9}
  @section Attribute Scalar_Storage_Order
  
  
*************** Note that debuggers may be unable to dis
*** 11788,11794 ****
  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
  
  
--- 12132,12138 ----
  components of a type for which the opposite storage order is specified.
  
  @node Attribute Simple_Storage_Pool,Attribute Small,Attribute Scalar_Storage_Order,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-simple-storage-pool}@anchor{f3}@anchor{gnat_rm/implementation_defined_attributes id5}@anchor{1ba}
  @section Attribute Simple_Storage_Pool
  
  
*************** as defined in section 13.11.2 of the Ada
*** 11851,11857 ****
  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
  
  
--- 12195,12201 ----
  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{1bb}
  @section Attribute Small
  
  
*************** the Ada 83 reference manual for an exact
*** 11867,11873 ****
  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
  
  
--- 12211,12217 ----
  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{1bc}
  @section Attribute Small_Denominator
  
  
*************** denominator in the representation of @co
*** 11880,11886 ****
  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
  
  
--- 12224,12230 ----
  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{1bd}
  @section Attribute Small_Numerator
  
  
*************** numerator in the representation of @code
*** 11893,11899 ****
  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
  
  
--- 12237,12243 ----
  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{1be}
  @section Attribute Storage_Unit
  
  
*************** with coprime factors (i.e. as an irreduc
*** 11903,11909 ****
  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
  
  
--- 12247,12253 ----
  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{1bf}
  @section Attribute Stub_Type
  
  
*************** unit @code{System.Partition_Interface}.
*** 11927,11933 ****
  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
  
  
--- 12271,12277 ----
  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{1c0}
  @section Attribute System_Allocator_Alignment
  
  
*************** with alignment too large or to enable a
*** 11944,11950 ****
  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
  
  
--- 12288,12294 ----
  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{1c1}
  @section Attribute Target_Name
  
  
*************** standard gcc target name without the ter
*** 11957,11963 ****
  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
  
  
--- 12301,12307 ----
  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{1c2}
  @section Attribute To_Address
  
  
*************** modular manner (e.g., -1 means the same
*** 11980,11986 ****
  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
  
  
--- 12324,12330 ----
  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{1c3}
  @section Attribute To_Any
  
  
*************** This internal attribute is used for the
*** 11990,11996 ****
  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
  
  
--- 12334,12340 ----
  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{1c4}
  @section Attribute Type_Class
  
  
*************** applies to all concurrent types.  This a
*** 12020,12026 ****
  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
  
  
--- 12364,12370 ----
  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{1c5}
  @section Attribute Type_Key
  
  
*************** about the type or subtype. This provides
*** 12032,12038 ****
  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
  
  
--- 12376,12382 ----
  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{1c6}
  @section Attribute TypeCode
  
  
*************** This internal attribute is used for the
*** 12042,12048 ****
  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
  
  
--- 12386,12392 ----
  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{1c7}
  @section Attribute Unconstrained_Array
  
  
*************** still static, and yields the result of a
*** 12056,12062 ****
  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
  
  
--- 12400,12406 ----
  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{1c8}
  @section Attribute Universal_Literal_String
  
  
*************** end;
*** 12084,12090 ****
  @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
  
  
--- 12428,12434 ----
  @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{1c9}
  @section Attribute Unrestricted_Access
  
  
*************** In general this is a risky approach. It
*** 12271,12277 ****
  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
  
  
--- 12615,12621 ----
  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{1ca}
  @section Attribute Update
  
  
*************** A := A'Update ((1, 2) => 20, (3, 4) => 3
*** 12352,12358 ****
  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
  
  
--- 12696,12702 ----
  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{1cb}
  @section Attribute Valid_Value
  
  
*************** a function that takes a String, and retu
*** 12364,12370 ****
  returns True if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1c5}
  @section Attribute Valid_Scalars
  
  
--- 12708,12714 ----
  returns True if and only if @code{T'Value (S)} would not raise Constraint_Error.
  
  @node Attribute Valid_Scalars,Attribute VADS_Size,Attribute Valid_Value,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-valid-scalars}@anchor{1cc}
  @section Attribute Valid_Scalars
  
  
*************** write a function with a single use of th
*** 12398,12404 ****
  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
  
  
--- 12742,12748 ----
  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{1cd}
  @section Attribute VADS_Size
  
  
*************** gives the result that would be obtained
*** 12418,12424 ****
  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
  
  
--- 12762,12768 ----
  the corresponding type.
  
  @node Attribute Value_Size,Attribute Wchar_T_Size,Attribute VADS_Size,Implementation Defined Attributes
! @anchor{gnat_rm/implementation_defined_attributes attribute-value-size}@anchor{17a}@anchor{gnat_rm/implementation_defined_attributes id6}@anchor{1ce}
  @section Attribute Value_Size
  
  
*************** a value of the given subtype.  It is the
*** 12432,12438 ****
  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
  
  
--- 12776,12782 ----
  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{1cf}
  @section Attribute Wchar_T_Size
  
  
*************** primarily for constructing the definitio
*** 12444,12450 ****
  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
  
  
--- 12788,12794 ----
  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{1d0}
  @section Attribute Word_Size
  
  
*************** prefix) provides the value @code{System.
*** 12455,12461 ****
  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
  
  
--- 12799,12805 ----
  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{1d1}@anchor{gnat_rm/standard_and_implementation_defined_restrictions id1}@anchor{1d2}@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
*** 12484,12490 ****
  @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
  
  
--- 12828,12834 ----
  @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{1d3}@anchor{gnat_rm/standard_and_implementation_defined_restrictions partition-wide-restrictions}@anchor{1d4}
  @section Partition-Wide Restrictions
  
  
*************** then all compilation units in the partit
*** 12577,12583 ****
  @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
  
  
--- 12921,12927 ----
  @end menu
  
  @node Immediate_Reclamation,Max_Asynchronous_Select_Nesting,,Partition-Wide Restrictions
! @anchor{gnat_rm/standard_and_implementation_defined_restrictions immediate-reclamation}@anchor{1d5}
  @subsection Immediate_Reclamation
  
  
*************** deallocation, any storage reserved at ru
*** 12589,12595 ****
  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
  
  
--- 12933,12939 ----
  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{1d6}
  @subsection Max_Asynchronous_Select_Nesting
  
  
*************** detected at compile time. Violations of
*** 12601,12607 ****
  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
  
  
--- 12945,12951 ----
  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{1d7}
  @subsection Max_Entry_Queue_Length
  
  
*************** compatibility purposes (and a warning wi
*** 12622,12628 ****
  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
  
  
--- 12966,12972 ----
  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{1d8}
  @subsection Max_Protected_Entries
  
  
*************** bounds of every entry family of a protec
*** 12633,12639 ****
  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
  
  
--- 12977,12983 ----
  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{1d9}
  @subsection Max_Select_Alternatives
  
  
*************** defined by a discriminant of a subtype w
*** 12642,12648 ****
  [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
  
  
--- 12986,12992 ----
  [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{1da}
  @subsection Max_Storage_At_Blocking
  
  
*************** Storage_Size that can be retained by a b
*** 12653,12659 ****
  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
  
  
--- 12997,13003 ----
  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{1db}
  @subsection Max_Task_Entries
  
  
*************** defined by a discriminant of a subtype w
*** 12666,12685 ****
  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
  
  
  @geindex Max_Tasks
  
! [RM D.7] Specifies the maximum number of task that may be created, not
  counting the creation of the environment task.  Violations of this
! restriction with a value of zero are detected at compile
! time. Violations of this restriction with values other than zero cause
! 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
  
  
--- 13010,13030 ----
  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{1dc}
  @subsection Max_Tasks
  
  
  @geindex Max_Tasks
  
! [RM D.7] Specifies the maximum number of tasks that may be created, not
  counting the creation of the environment task.  Violations of this
! restriction with a value of zero are detected at compile time in all
! contexts.  Violations of this restriction with a value greater than
! zero are detected for library-level tasks at compile time, but are
! not detected for local tasks at all.
  
  @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{1dd}
  @subsection No_Abort_Statements
  
  
*************** Storage_Error to be raised.
*** 12689,12695 ****
  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
  
  
--- 13034,13040 ----
  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{1de}
  @subsection No_Access_Parameter_Allocators
  
  
*************** occurrences of an allocator as the actua
*** 12700,12706 ****
  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
  
  
--- 13045,13051 ----
  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{1df}
  @subsection No_Access_Subprograms
  
  
*************** parameter.
*** 12710,12716 ****
  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
  
  
--- 13055,13061 ----
  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{1e0}
  @subsection No_Allocators
  
  
*************** declarations of access-to-subprogram typ
*** 12720,12726 ****
  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
  
  
--- 13065,13071 ----
  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{1e1}
  @subsection No_Anonymous_Allocators
  
  
*************** occurrences of an allocator.
*** 12730,12736 ****
  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
  
  
--- 13075,13081 ----
  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{1e2}
  @subsection No_Asynchronous_Control
  
  
*************** occurrences of an allocator of anonymous
*** 12740,12746 ****
  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
  
  
--- 13085,13091 ----
  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{1e3}
  @subsection No_Calendar
  
  
*************** dependences on the predefined package As
*** 12750,12756 ****
  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
  
  
--- 13095,13101 ----
  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{1e4}
  @subsection No_Coextensions
  
  
*************** dependences on package Calendar.
*** 12760,12766 ****
  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
  
  
--- 13105,13111 ----
  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{1e5}
  @subsection No_Default_Initialization
  
  
*************** is to prohibit all cases of variables de
*** 12777,12783 ****
  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
  
  
--- 13122,13128 ----
  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{1e6}
  @subsection No_Delay
  
  
*************** initializer (including the case of OUT s
*** 12787,12793 ****
  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
  
  
--- 13132,13138 ----
  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{1e7}
  @subsection No_Dependence
  
  
*************** to support specific constructs of the la
*** 12830,12836 ****
  @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
  
  
--- 13175,13181 ----
  @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{1e8}
  @subsection No_Direct_Boolean_Operators
  
  
*************** protocol requires the use of short-circu
*** 12843,12849 ****
  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
  
  
--- 13188,13194 ----
  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{1e9}
  @subsection No_Dispatch
  
  
*************** composite boolean operations.
*** 12853,12859 ****
  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
  
  
--- 13198,13204 ----
  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{1ea}
  @subsection No_Dispatching_Calls
  
  
*************** end Example;
*** 12914,12920 ****
  @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
  
  
--- 13259,13265 ----
  @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{1eb}
  @subsection No_Dynamic_Attachment
  
  
*************** compatibility purposes (and a warning wi
*** 12933,12939 ****
  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
  
  
--- 13278,13284 ----
  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{1ec}
  @subsection No_Dynamic_Priorities
  
  
*************** warnings on obsolescent features are act
*** 12942,12948 ****
  [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
  
  
--- 13287,13293 ----
  [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{1ed}
  @subsection No_Entry_Calls_In_Elaboration_Code
  
  
*************** restriction, the compiler can assume tha
*** 12954,12960 ****
  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
  
  
--- 13299,13305 ----
  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{1ee}
  @subsection No_Enumeration_Maps
  
  
*************** enumeration maps are used (that is Image
*** 12965,12971 ****
  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
  
  
--- 13310,13316 ----
  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{1ef}
  @subsection No_Exception_Handlers
  
  
*************** pragma Export (C, Last_Chance_Handler,
*** 12984,12996 ****
                 "__gnat_last_chance_handler");
  @end example
  
! The parameter is a C null-terminated string representing a message to be
! associated with the exception (typically the source location of the raise
! statement generated by the compiler). The Line parameter when nonzero
  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
  
  
--- 13329,13341 ----
                 "__gnat_last_chance_handler");
  @end example
  
! The @code{Source_Location} parameter is a C null-terminated string representing a
! message to be associated with the exception (typically the source location of
! the raise statement generated by the compiler). The Line parameter when nonzero
  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{1f0}
  @subsection No_Exception_Propagation
  
  
*************** the package GNAT.Current_Exception is no
*** 13007,13013 ****
  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
  
  
--- 13352,13358 ----
  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{1f1}
  @subsection No_Exception_Registration
  
  
*************** code is simplified by omitting the other
*** 13021,13027 ****
  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
  
  
--- 13366,13372 ----
  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{1f2}
  @subsection No_Exceptions
  
  
*************** raise statements and no exception handle
*** 13032,13038 ****
  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
  
  
--- 13377,13383 ----
  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{1f3}
  @subsection No_Finalization
  
  
*************** object or a nested component, either dec
*** 13073,13079 ****
  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
  
  
--- 13418,13424 ----
  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{1f4}
  @subsection No_Fixed_Point
  
  
*************** deallocation of a controlled object no l
*** 13083,13089 ****
  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
  
  
--- 13428,13434 ----
  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{1f5}
  @subsection No_Floating_Point
  
  
*************** occurrences of fixed point types and ope
*** 13093,13099 ****
  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
  
  
--- 13438,13444 ----
  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{1f6}
  @subsection No_Implicit_Conditionals
  
  
*************** normal manner. Constructs generating imp
*** 13109,13115 ****
  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
  
  
--- 13454,13460 ----
  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{1f7}
  @subsection No_Implicit_Dynamic_Code
  
  
*************** foreign-language convention; primitive o
*** 13139,13145 ****
  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
  
  
--- 13484,13490 ----
  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{1f8}
  @subsection No_Implicit_Heap_Allocations
  
  
*************** types.
*** 13148,13154 ****
  [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
  
  
--- 13493,13499 ----
  [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{1f9}
  @subsection No_Implicit_Protected_Object_Allocations
  
  
*************** types.
*** 13158,13164 ****
  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
  
  
--- 13503,13509 ----
  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{1fa}
  @subsection No_Implicit_Task_Allocations
  
  
*************** protected object.
*** 13167,13173 ****
  [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
  
  
--- 13512,13518 ----
  [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{1fb}
  @subsection No_Initialize_Scalars
  
  
*************** code, and in particular eliminates dummy
*** 13179,13185 ****
  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
  
  
--- 13524,13530 ----
  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{1fc}
  @subsection No_IO
  
  
*************** dependences on any of the library units
*** 13190,13196 ****
  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
  
  
--- 13535,13541 ----
  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{1fd}
  @subsection No_Local_Allocators
  
  
*************** occurrences of an allocator in subprogra
*** 13201,13207 ****
  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
  
  
--- 13546,13552 ----
  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{1fe}
  @subsection No_Local_Protected_Objects
  
  
*************** and entry bodies.
*** 13211,13217 ****
  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
  
  
--- 13556,13562 ----
  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{1ff}
  @subsection No_Local_Tagged_Types
  
  
*************** only declared at the library level.
*** 13221,13227 ****
  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
  
  
--- 13566,13572 ----
  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{200}
  @subsection No_Local_Timing_Events
  
  
*************** declared at the library level.
*** 13231,13237 ****
  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
  
  
--- 13576,13582 ----
  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{201}
  @subsection No_Long_Long_Integers
  
  
*************** implicit base type is Long_Long_Integer,
*** 13243,13249 ****
  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
  
  
--- 13588,13594 ----
  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{202}
  @subsection No_Multiple_Elaboration
  
  
*************** possible, including non-Ada main program
*** 13259,13265 ****
  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
  
  
--- 13604,13610 ----
  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{203}
  @subsection No_Nested_Finalization
  
  
*************** permitted and will be diagnosed by the b
*** 13268,13274 ****
  [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
  
  
--- 13613,13619 ----
  [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{204}
  @subsection No_Protected_Type_Allocators
  
  
*************** permitted and will be diagnosed by the b
*** 13278,13284 ****
  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
  
  
--- 13623,13629 ----
  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{205}
  @subsection No_Protected_Types
  
  
*************** expressions that attempt to allocate pro
*** 13288,13294 ****
  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
  
  
--- 13633,13639 ----
  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{206}
  @subsection No_Recursion
  
  
*************** declarations of protected types or prote
*** 13298,13304 ****
  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
  
  
--- 13643,13649 ----
  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{207}
  @subsection No_Reentrancy
  
  
*************** part of its execution.
*** 13308,13314 ****
  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
  
  
--- 13653,13659 ----
  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{208}
  @subsection No_Relative_Delay
  
  
*************** relative statements and prevents express
*** 13319,13325 ****
  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
  
  
--- 13664,13670 ----
  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{209}
  @subsection No_Requeue_Statements
  
  
*************** compatibility purposes (and a warning wi
*** 13337,13343 ****
  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
  
  
--- 13682,13688 ----
  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{20a}
  @subsection No_Secondary_Stack
  
  
*************** stack is used to implement functions ret
*** 13350,13356 ****
  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
  
  
--- 13695,13701 ----
  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{20b}
  @subsection No_Select_Statements
  
  
*************** secondary stacks for tasks (excluding th
*** 13360,13366 ****
  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
  
  
--- 13705,13711 ----
  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{20c}
  @subsection No_Specific_Termination_Handlers
  
  
*************** kind are permitted, that is the keyword
*** 13370,13376 ****
  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
  
  
--- 13715,13721 ----
  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{20d}
  @subsection No_Specification_of_Aspect
  
  
*************** specification, attribute definition clau
*** 13381,13387 ****
  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
  
  
--- 13726,13732 ----
  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{20e}
  @subsection No_Standard_Allocators_After_Elaboration
  
  
*************** library items of the partition has compl
*** 13393,13399 ****
  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
  
  
--- 13738,13744 ----
  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{20f}
  @subsection No_Standard_Storage_Pools
  
  
*************** have an explicit Storage_Pool attribute
*** 13405,13411 ****
  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
  
  
--- 13750,13756 ----
  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{210}
  @subsection No_Stream_Optimizations
  
  
*************** due to their superior performance. When
*** 13418,13424 ****
  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
  
  
--- 13763,13769 ----
  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{211}
  @subsection No_Streams
  
  
*************** configuration pragmas to avoid exposing
*** 13445,13451 ****
  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
  
  
--- 13790,13796 ----
  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{212}
  @subsection No_Tagged_Type_Registration
  
  
*************** are declared. This restriction may be ne
*** 13460,13466 ****
  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
  
  
--- 13805,13811 ----
  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{213}
  @subsection No_Task_Allocators
  
  
*************** the No_Elaboration_Code restriction.
*** 13470,13476 ****
  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
  
  
--- 13815,13821 ----
  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{214}
  @subsection No_Task_At_Interrupt_Priority
  
  
*************** a consequence, the tasks are always crea
*** 13482,13488 ****
  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
  
  
--- 13827,13833 ----
  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{215}
  @subsection No_Task_Attributes_Package
  
  
*************** compatibility purposes (and a warning wi
*** 13499,13505 ****
  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
  
  
--- 13844,13850 ----
  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{216}
  @subsection No_Task_Hierarchy
  
  
*************** warnings on obsolescent features are act
*** 13509,13515 ****
  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
  
  
--- 13854,13860 ----
  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{217}
  @subsection No_Task_Termination
  
  
*************** directly on the environment task of the
*** 13518,13524 ****
  [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
  
  
--- 13863,13869 ----
  [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{218}
  @subsection No_Tasking
  
  
*************** and cause an error message to be output
*** 13531,13537 ****
  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
  
  
--- 13876,13882 ----
  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{219}
  @subsection No_Terminate_Alternatives
  
  
*************** binder.
*** 13540,13546 ****
  [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
  
  
--- 13885,13891 ----
  [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{21a}
  @subsection No_Unchecked_Access
  
  
*************** binder.
*** 13550,13556 ****
  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
  
  
--- 13895,13901 ----
  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{21b}
  @subsection No_Unchecked_Conversion
  
  
*************** occurrences of the Unchecked_Access attr
*** 13560,13566 ****
  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
  
  
--- 13905,13911 ----
  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{21c}
  @subsection No_Unchecked_Deallocation
  
  
*************** dependences on the predefined generic fu
*** 13570,13576 ****
  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
  
  
--- 13915,13921 ----
  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{21d}
  @subsection No_Use_Of_Attribute
  
  
*************** dependences on the predefined generic pr
*** 13580,13586 ****
  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
  
  
--- 13925,13931 ----
  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{21e}
  @subsection No_Use_Of_Entity
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13600,13606 ****
  @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
  
  
--- 13945,13951 ----
  @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{21f}
  @subsection No_Use_Of_Pragma
  
  
*************** No_Use_Of_Entity => Ada.Text_IO.Put_Line
*** 13610,13616 ****
  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
  
  
--- 13955,13961 ----
  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{220}
  @subsection Pure_Barriers
  
  
*************** but still ensures absence of side effect
*** 13661,13667 ****
  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
  
  
--- 14006,14012 ----
  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{221}
  @subsection Simple_Barriers
  
  
*************** compatibility purposes (and a warning wi
*** 13680,13686 ****
  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
  
  
--- 14025,14031 ----
  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{222}
  @subsection Static_Priorities
  
  
*************** are static, and that there are no depend
*** 13691,13697 ****
  @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
  
  
--- 14036,14042 ----
  @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{223}
  @subsection Static_Storage_Size
  
  
*************** are static, and that there are no depend
*** 13701,13707 ****
  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
  
  
--- 14046,14052 ----
  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{224}@anchor{gnat_rm/standard_and_implementation_defined_restrictions program-unit-level-restrictions}@anchor{225}
  @section Program Unit Level Restrictions
  
  
*************** other compilation units in the partition
*** 13732,13738 ****
  @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
  
  
--- 14077,14083 ----
  @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{226}
  @subsection No_Elaboration_Code
  
  
*************** associated with the unit. This counter i
*** 13788,13794 ****
  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
  
  
--- 14133,14139 ----
  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{227}
  @subsection No_Dynamic_Accessibility_Checks
  
  
*************** In all other cases, the level of T is as
*** 13837,13843 ****
  @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
  
  
--- 14182,14188 ----
  @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{228}
  @subsection No_Dynamic_Sized_Objects
  
  
*************** access discriminants. It is often a good
*** 13855,13861 ****
  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
  
  
--- 14200,14206 ----
  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{229}
  @subsection No_Entry_Queue
  
  
*************** checked at compile time.  A program exec
*** 13868,13874 ****
  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
  
  
--- 14213,14219 ----
  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{22a}
  @subsection No_Implementation_Aspect_Specifications
  
  
*************** GNAT-defined aspects are present.  With
*** 13879,13885 ****
  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
  
  
--- 14224,14230 ----
  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{22b}
  @subsection No_Implementation_Attributes
  
  
*************** attributes that can be used are those de
*** 13891,13897 ****
  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
  
  
--- 14236,14242 ----
  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{22c}
  @subsection No_Implementation_Identifiers
  
  
*************** implementation-defined identifiers (mark
*** 13902,13908 ****
  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
  
  
--- 14247,14253 ----
  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{22d}
  @subsection No_Implementation_Pragmas
  
  
*************** GNAT-defined pragmas are present.  With
*** 13913,13919 ****
  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
  
  
--- 14258,14264 ----
  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{22e}
  @subsection No_Implementation_Restrictions
  
  
*************** are present.  With this restriction, the
*** 13925,13931 ****
  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
  
  
--- 14270,14276 ----
  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{22f}
  @subsection No_Implementation_Units
  
  
*************** mention in the context clause of any imp
*** 13936,13942 ****
  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
  
  
--- 14281,14287 ----
  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{230}
  @subsection No_Implicit_Aliasing
  
  
*************** to be aliased, and in such cases, it can
*** 13951,13957 ****
  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
  
  
--- 14296,14302 ----
  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{231}
  @subsection No_Implicit_Loops
  
  
*************** arrays larger than about 5000 scalar com
*** 13968,13974 ****
  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
  
  
--- 14313,14319 ----
  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{232}
  @subsection No_Obsolescent_Features
  
  
*************** is set in the spec of a package, it will
*** 13978,13984 ****
  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
  
  
--- 14323,14329 ----
  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{233}
  @subsection No_Wide_Characters
  
  
*************** appear in the program (that is literals
*** 13992,13998 ****
  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
  
  
--- 14337,14343 ----
  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{234}
  @subsection Static_Dispatch_Tables
  
  
*************** type @code{Character}).
*** 14002,14008 ****
  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
  
  
--- 14347,14353 ----
  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{235}
  @subsection SPARK_05
  
  
*************** gnatprove -P project.gpr --mode=check_al
*** 14025,14031 ****
  @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
  
  
--- 14370,14376 ----
  @end example
  
  @node Implementation Advice,Implementation Defined Characteristics,Standard and Implementation Defined Restrictions,Top
! @anchor{gnat_rm/implementation_advice doc}@anchor{236}@anchor{gnat_rm/implementation_advice id1}@anchor{237}@anchor{gnat_rm/implementation_advice implementation-advice}@anchor{a}
  @chapter Implementation Advice
  
  
*************** case the text describes what GNAT does a
*** 14123,14129 ****
  @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
  
  
--- 14468,14474 ----
  @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{238}
  @section RM 1.1.3(20): Error Detection
  
  
*************** or diagnosed at compile time.
*** 14140,14146 ****
  @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
  
  
--- 14485,14491 ----
  @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{239}
  @section RM 1.1.3(31): Child Units
  
  
*************** Followed.
*** 14156,14162 ****
  @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
  
  
--- 14501,14507 ----
  @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{23a}
  @section RM 1.1.5(12): Bounded Errors
  
  
*************** runtime.
*** 14173,14179 ****
  @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
  
  
--- 14518,14524 ----
  @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{23b}@anchor{gnat_rm/implementation_advice rm-2-8-16-pragmas}@anchor{23c}
  @section RM 2.8(16): Pragmas
  
  
*************** that this advice not be followed.  For d
*** 14286,14292 ****
  @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
  
  
--- 14631,14637 ----
  @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{23d}
  @section RM 2.8(17-19): Pragmas
  
  
*************** replacing @code{library_items}.”
*** 14307,14320 ****
  @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
  
  
--- 14652,14665 ----
  @end itemize
  @end quotation
  
! See @ref{23c,,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{23e}
  @section RM 3.5.2(5): Alternative Character Sets
  
  
*************** there is no such restriction.
*** 14342,14348 ****
  @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
  
  
--- 14687,14693 ----
  @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{23f}
  @section RM 3.5.4(28): Integer Types
  
  
*************** are supported for convenient interface t
*** 14361,14367 ****
  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
  
  
--- 14706,14712 ----
  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{240}
  @section RM 3.5.4(29): Integer Types
  
  
*************** Followed.
*** 14377,14383 ****
  @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
  
  
--- 14722,14728 ----
  @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{241}
  @section RM 3.5.5(8): Enumeration Values
  
  
*************** Followed.
*** 14397,14403 ****
  @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
  
  
--- 14742,14748 ----
  @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{242}
  @section RM 3.5.7(17): Float Types
  
  
*************** is a software rather than a hardware for
*** 14427,14433 ****
  @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
  
  
--- 14772,14778 ----
  @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{243}
  @section RM 3.6.2(11): Multidimensional Arrays
  
  
*************** Followed.
*** 14445,14451 ****
  @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
  
  
--- 14790,14796 ----
  @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{244}
  @section RM 9.6(30-31): Duration’Small
  
  
*************** it need not be the same time base as use
*** 14466,14472 ****
  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
  
  
--- 14811,14817 ----
  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{245}
  @section RM 10.2.1(12): Consistent Representation
  
  
*************** advice without severely impacting effici
*** 14488,14494 ****
  @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
  
  
--- 14833,14839 ----
  @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{246}
  @section RM 11.4.1(19): Exception Information
  
  
*************** Pragma @code{Discard_Names}.
*** 14519,14525 ****
  @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
  
  
--- 14864,14870 ----
  @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{247}
  @section RM 11.5(28): Suppression of Checks
  
  
*************** Followed.
*** 14534,14540 ****
  @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
  
  
--- 14879,14885 ----
  @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{248}
  @section RM 13.1 (21-24): Representation Clauses
  
  
*************** Followed.
*** 14586,14592 ****
  @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
  
  
--- 14931,14937 ----
  @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{249}
  @section RM 13.2(6-8): Packed Types
  
  
*************** subcomponent of the packed type.
*** 14617,14623 ****
  @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
  
  
--- 14962,14968 ----
  @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{24a}
  @section RM 13.3(14-19): Address Clauses
  
  
*************** Followed.
*** 14670,14676 ****
  @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
  
  
--- 15015,15021 ----
  @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{24b}
  @section RM 13.3(29-35): Alignment Clauses
  
  
*************** Followed.
*** 14727,14733 ****
  @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
  
  
--- 15072,15078 ----
  @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{24c}
  @section RM 13.3(42-43): Size Clauses
  
  
*************** object’s @code{Alignment} (if the @cod
*** 14745,14751 ****
  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
  
  
--- 15090,15096 ----
  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{24d}
  @section RM 13.3(50-56): Size Clauses
  
  
*************** Followed.
*** 14796,14802 ****
  @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
  
  
--- 15141,15147 ----
  @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{24e}
  @section RM 13.3(71-73): Component Size Clauses
  
  
*************** Followed.
*** 14830,14836 ****
  @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
  
  
--- 15175,15181 ----
  @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{24f}
  @section RM 13.4(9-10): Enumeration Representation Clauses
  
  
*************** Followed.
*** 14852,14858 ****
  @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
  
  
--- 15197,15203 ----
  @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{250}
  @section RM 13.5.1(17-22): Record Representation Clauses
  
  
*************** and all mentioned features are implement
*** 14912,14918 ****
  @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
  
  
--- 15257,15263 ----
  @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{251}
  @section RM 13.5.2(5): Storage Place Attributes
  
  
*************** Followed.  There are no such components
*** 14932,14938 ****
  @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
  
  
--- 15277,15283 ----
  @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{252}
  @section RM 13.5.3(7-8): Bit Ordering
  
  
*************** Followed.
*** 14950,14956 ****
  @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
  
  
--- 15295,15301 ----
  @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{253}
  @section RM 13.7(37): Address as Private
  
  
*************** Followed.
*** 14968,14974 ****
  @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
  
  
--- 15313,15319 ----
  @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{254}
  @section RM 13.7.1(16): Address Operations
  
  
*************** operation raises @code{Program_Error}, s
*** 14986,14992 ****
  @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
  
  
--- 15331,15337 ----
  @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{255}
  @section RM 13.9(14-17): Unchecked Conversion
  
  
*************** Followed.
*** 15030,15036 ****
  @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
  
  
--- 15375,15381 ----
  @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{256}
  @section RM 13.11(23-25): Implicit Heap Usage
  
  
*************** Followed.
*** 15081,15087 ****
  @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
  
  
--- 15426,15432 ----
  @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{257}
  @section RM 13.11.2(17): Unchecked Deallocation
  
  
*************** Followed.
*** 15096,15102 ****
  @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
  
  
--- 15441,15447 ----
  @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{258}
  @section RM 13.13.2(1.6): Stream Oriented Attributes
  
  
*************** scalar types. This XDR alternative can b
*** 15127,15133 ****
  @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
  
  
--- 15472,15478 ----
  @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{259}
  @section RM A.1(52): Names of Predefined Numeric Types
  
  
*************** Followed.
*** 15145,15151 ****
  @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}
  
  
--- 15490,15496 ----
  @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{25a}
  @section RM A.3.2(49): @code{Ada.Characters.Handling}
  
  
*************** Followed.  GNAT provides no such localiz
*** 15162,15168 ****
  @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
  
  
--- 15507,15513 ----
  @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{25b}
  @section RM A.4.4(106): Bounded-Length String Handling
  
  
*************** Followed.  No implicit pointers or dynam
*** 15177,15183 ****
  @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
  
  
--- 15522,15528 ----
  @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{25c}
  @section RM A.5.2(46-47): Random Number Generation
  
  
*************** condition here to hold true.
*** 15206,15212 ****
  @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}
  
  
--- 15551,15557 ----
  @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{25d}
  @section RM A.10.7(23): @code{Get_Immediate}
  
  
*************** this functionality.
*** 15230,15236 ****
  @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}
  
  
--- 15575,15581 ----
  @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{25e}
  @section RM A.18: @code{Containers}
  
  
*************** follow the implementation advice.
*** 15251,15257 ****
  @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}
  
  
--- 15596,15602 ----
  @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{25f}
  @section RM B.1(39-41): Pragma @code{Export}
  
  
*************** Followed.
*** 15299,15305 ****
  @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}
  
  
--- 15644,15650 ----
  @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{260}
  @section RM B.2(12-13): Package @code{Interfaces}
  
  
*************** Followed.  GNAT provides all the package
*** 15329,15335 ****
  @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
  
  
--- 15674,15680 ----
  @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{261}
  @section RM B.3(63-71): Interfacing with C
  
  
*************** Followed.
*** 15417,15423 ****
  @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
  
  
--- 15762,15768 ----
  @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{262}
  @section RM B.4(95-98): Interfacing with COBOL
  
  
*************** Followed.
*** 15458,15464 ****
  @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
  
  
--- 15803,15809 ----
  @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{263}
  @section RM B.5(22-26): Interfacing with Fortran
  
  
*************** Followed.
*** 15509,15515 ****
  @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
  
  
--- 15854,15860 ----
  @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{264}
  @section RM C.1(3-5): Access to Machine Operations
  
  
*************** object that is specified as exported.”
*** 15544,15550 ****
  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
  
  
--- 15889,15895 ----
  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{265}
  @section RM C.1(10-16): Access to Machine Operations
  
  
*************** Followed on any target supporting such o
*** 15605,15611 ****
  @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
  
  
--- 15950,15956 ----
  @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{266}
  @section RM C.3(28): Interrupt Support
  
  
*************** of interrupt blocking.
*** 15623,15629 ****
  @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
  
  
--- 15968,15974 ----
  @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{267}
  @section RM C.3.1(20-21): Protected Procedure Handlers
  
  
*************** Followed.  Compile time warnings are giv
*** 15649,15655 ****
  @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}
  
  
--- 15994,16000 ----
  @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{268}
  @section RM C.3.2(25): Package @code{Interrupts}
  
  
*************** Followed.
*** 15667,15673 ****
  @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
  
  
--- 16012,16018 ----
  @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{269}
  @section RM C.4(14): Pre-elaboration Requirements
  
  
*************** Followed.  Executable code is generated
*** 15683,15689 ****
  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}
  
  
--- 16028,16034 ----
  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{26a}
  @section RM C.5(8): Pragma @code{Discard_Names}
  
  
*************** Followed.
*** 15701,15707 ****
  @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
  
  
--- 16046,16052 ----
  @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{26b}
  @section RM C.7.2(30): The Package Task_Attributes
  
  
*************** Not followed.  This implementation is no
*** 15722,15728 ****
  @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
  
  
--- 16067,16073 ----
  @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{26c}
  @section RM D.3(17): Locking Policies
  
  
*************** whose names (@code{Inheritance_Locking}
*** 15739,15745 ****
  @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
  
  
--- 16084,16090 ----
  @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{26d}
  @section RM D.4(16): Entry Queuing Policies
  
  
*************** Followed.  No such implementation-define
*** 15754,15760 ****
  @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
  
  
--- 16099,16105 ----
  @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{26e}
  @section RM D.6(9-10): Preemptive Abort
  
  
*************** Followed.
*** 15780,15786 ****
  @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
  
  
--- 16125,16131 ----
  @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{26f}
  @section RM D.7(21): Tasking Restrictions
  
  
*************** pragma @code{Profile (Restricted)} for m
*** 15799,15805 ****
  @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
  
  
--- 16144,16150 ----
  @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{270}
  @section RM D.8(47-49): Monotonic Time
  
  
*************** Followed.
*** 15834,15840 ****
  @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
  
  
--- 16179,16185 ----
  @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{271}
  @section RM E.5(28-29): Partition Communication Subsystem
  
  
*************** should allow them to block until the cor
*** 15846,15853 ****
  returns.”
  @end quotation
  
! Followed by GLADE, a separately supplied PCS that can be used with
! GNAT.
  
  @quotation
  
--- 16191,16198 ----
  returns.”
  @end quotation
  
! A separately supplied PCS that can be used with GNAT when combined with the PolyORB product (NB! See the note in @ref{272,,PolyORB} regarding the lifetime
! of this product).
  
  @quotation
  
*************** should raise @code{Storage_Error} if it
*** 15856,15868 ****
  write the @code{Item} into the stream.”
  @end quotation
  
- Followed by GLADE, a separately supplied PCS that can be used with
- GNAT.
- 
  @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
  
  
--- 16201,16210 ----
  write the @code{Item} into the stream.”
  @end quotation
  
  @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{273}
  @section RM F(7): COBOL Support
  
  
*************** Followed.
*** 15882,15888 ****
  @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
  
  
--- 16224,16230 ----
  @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{274}
  @section RM F.1(2): Decimal Radix Support
  
  
*************** representations.
*** 15898,15904 ****
  @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
  
  
--- 16240,16246 ----
  @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{275}
  @section RM G: Numerics
  
  
*************** Followed.
*** 15918,15924 ****
  @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
  
  
--- 16260,16266 ----
  @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{276}
  @section RM G.1.1(56-58): Complex Types
  
  
*************** Followed.
*** 15980,15986 ****
  @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
  
  
--- 16322,16328 ----
  @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{277}
  @section RM G.1.2(49): Complex Elementary Functions
  
  
*************** Followed.
*** 16002,16008 ****
  @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
  
  
--- 16344,16350 ----
  @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{278}
  @section RM G.2.4(19): Accuracy Requirements
  
  
*************** Followed.
*** 16026,16032 ****
  @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
  
  
--- 16368,16374 ----
  @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{279}
  @section RM G.2.6(15): Complex Arithmetic Accuracy
  
  
*************** Followed.
*** 16044,16050 ****
  @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
  
  
--- 16386,16392 ----
  @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{27a}
  @section RM H.6(15/2): Pragma Partition_Elaboration_Policy
  
  
*************** immediately terminated.”
*** 16059,16065 ****
  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
  
  
--- 16401,16407 ----
  Not followed.
  
  @node Implementation Defined Characteristics,Intrinsic Subprograms,Implementation Advice,Top
! @anchor{gnat_rm/implementation_defined_characteristics doc}@anchor{27b}@anchor{gnat_rm/implementation_defined_characteristics id1}@anchor{27c}@anchor{gnat_rm/implementation_defined_characteristics implementation-defined-characteristics}@anchor{b}
  @chapter Implementation Defined Characteristics
  
  
*************** may have been set by a call to @code{Ada
*** 16700,16710 ****
  “The mechanisms for building and running partitions.  See 10.2(24).”
  @end itemize
  
! GNAT itself supports programs with only a single partition. The GNATDIST
! tool provided with the GLADE package (which also includes an implementation
! of the PCS) provides a completely flexible method for building and running
! programs consisting of multiple partitions. See the separate GLADE manual
! for details.
  
  
  @itemize *
--- 17042,17049 ----
  “The mechanisms for building and running partitions.  See 10.2(24).”
  @end itemize
  
! GNAT itself supports programs with only a single partition. The PolyORB product (which also includes an implementation of the PCS) provides a completely flexible method for building and running programs consisting of multiple partitions. `NB!' See the note in @ref{272,,PolyORB} regarding the lifetime
! of this product.
  
  
  @itemize *
*************** implementation.  See 10.2(28).”
*** 16725,16732 ****
  @end itemize
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. See the GLADE reference manual for
! further details.
  
  
  @itemize *
--- 17064,17070 ----
  @end itemize
  
  Passive partitions are supported on targets where shared memory is
! provided by the operating system. `NB!' See the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** Implementation-defined assertion_aspect_
*** 16835,16841 ****
  Assume, Contract_Cases, Debug, Ghost, Initial_Condition, Loop_Invariant,
  Loop_Variant, Postcondition, Precondition, Predicate, Refined_Post,
  Statement_Assertions, and Subprogram_Variant. Implementation-defined
! policy_identifiers include Ignore and Suppressible.
  
  
  @itemize *
--- 17173,17179 ----
  Assume, Contract_Cases, Debug, Ghost, Initial_Condition, Loop_Invariant,
  Loop_Variant, Postcondition, Precondition, Predicate, Refined_Post,
  Statement_Assertions, and Subprogram_Variant. Implementation-defined
! policy_identifiers include Disable and Suppressible.
  
  
  @itemize *
*************** See separate section on data representat
*** 16909,16915 ****
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{12e,,Implementation Defined Aspects}.
  
  
  @itemize *
--- 17247,17253 ----
  such aspects and the legality rules for such aspects.  See 13.1.1(38).”
  @end itemize
  
! See @ref{131,,Implementation Defined Aspects}.
  
  
  @itemize *
*************** When the @code{Pattern} parameter is not
*** 17353,17359 ****
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{275,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
--- 17691,17697 ----
  according to the syntax of regular expressions as defined in the
  @code{GNAT.Regexp} package.
  
! See @ref{27d,,GNAT.Regexp (g-regexp.ads)}.
  
  
  @itemize *
*************** Unknown.
*** 18111,18118 ****
  programs.  See E(5).”
  @end itemize
  
! The GLADE package provides a utility GNATDIST for creating and executing
! distributed programs. See the GLADE reference manual for further details.
  
  
  @itemize *
--- 18449,18456 ----
  programs.  See E(5).”
  @end itemize
  
! The PolyORB product provides means creating and executing
! distributed programs. `NB!' See the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** distributed programs. See the GLADE refe
*** 18122,18128 ****
  inaccessible.  See E.1(7).”
  @end itemize
  
! See the GLADE reference manual for full details on such events.
  
  
  @itemize *
--- 18460,18468 ----
  inaccessible.  See E.1(7).”
  @end itemize
  
! See the PolyORB user guide for full details on such events.
! `NB!' Consider the note in @ref{272,,PolyORB} regarding the lifetime
! of this product.
  
  
  @itemize *
*************** See the GLADE reference manual for full
*** 18132,18139 ****
  shared resources between partitions in certain cases.  See E.1(11).”
  @end itemize
  
! See the GLADE reference manual for full details on these aspects of
! multi-partition execution.
  
  
  @itemize *
--- 18472,18479 ----
  shared resources between partitions in certain cases.  See E.1(11).”
  @end itemize
  
! See the PolyORB user guide for full details on these aspects of
! multi-partition execution. `NB!' Consider the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** multi-partition execution.
*** 18143,18150 ****
  immediately aborted as a result of cancellation.  See E.4(13).”
  @end itemize
  
! See the GLADE reference manual for details on the effect of abort in
! a distributed application.
  
  
  @itemize *
--- 18483,18490 ----
  immediately aborted as a result of cancellation.  See E.4(13).”
  @end itemize
  
! See the PolyORB user guide for details on the effect of abort in
! a distributed application.  `NB!' Consider the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** System.RPC.Partition_ID’Last is Intege
*** 18162,18169 ****
  “Implementation-defined interfaces in the PCS.  See E.5(26).”
  @end itemize
  
! See the GLADE reference manual for a full description of all
! implementation defined interfaces.
  
  
  @itemize *
--- 18502,18509 ----
  “Implementation-defined interfaces in the PCS.  See E.5(26).”
  @end itemize
  
! See the PolyORB user guide for a full description of all
! implementation defined interfaces.  `NB!' See the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  
  @itemize *
*************** Information on those subjects is not yet
*** 18451,18457 ****
  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
  
  
--- 18791,18797 ----
  Execution is erroneous in that case.
  
  @node Intrinsic Subprograms,Representation Clauses and Pragmas,Implementation Defined Characteristics,Top
! @anchor{gnat_rm/intrinsic_subprograms doc}@anchor{27e}@anchor{gnat_rm/intrinsic_subprograms id1}@anchor{27f}@anchor{gnat_rm/intrinsic_subprograms intrinsic-subprograms}@anchor{c}
  @chapter Intrinsic Subprograms
  
  
*************** Ada standard does not require Ada compil
*** 18489,18495 ****
  @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
  
  
--- 18829,18835 ----
  @end menu
  
  @node Intrinsic Operators,Compilation_ISO_Date,,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id2}@anchor{280}@anchor{gnat_rm/intrinsic_subprograms intrinsic-operators}@anchor{281}
  @section Intrinsic Operators
  
  
*************** It is also possible to specify such oper
*** 18520,18526 ****
  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
  
  
--- 18860,18866 ----
  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{282}@anchor{gnat_rm/intrinsic_subprograms id3}@anchor{283}
  @section Compilation_ISO_Date
  
  
*************** application program should simply call t
*** 18534,18540 ****
  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
  
  
--- 18874,18880 ----
  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{284}@anchor{gnat_rm/intrinsic_subprograms id4}@anchor{285}
  @section Compilation_Date
  
  
*************** Same as Compilation_ISO_Date, except the
*** 18544,18550 ****
  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
  
  
--- 18884,18890 ----
  MMM DD YYYY.
  
  @node Compilation_Time,Enclosing_Entity,Compilation_Date,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms compilation-time}@anchor{286}@anchor{gnat_rm/intrinsic_subprograms id5}@anchor{287}
  @section Compilation_Time
  
  
*************** application program should simply call t
*** 18558,18564 ****
  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
  
  
--- 18898,18904 ----
  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{288}@anchor{gnat_rm/intrinsic_subprograms id6}@anchor{289}
  @section Enclosing_Entity
  
  
*************** application program should simply call t
*** 18572,18578 ****
  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
  
  
--- 18912,18918 ----
  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{28a}@anchor{gnat_rm/intrinsic_subprograms id7}@anchor{28b}
  @section Exception_Information
  
  
*************** so an application program should simply
*** 18586,18592 ****
  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
  
  
--- 18926,18932 ----
  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{28c}@anchor{gnat_rm/intrinsic_subprograms id8}@anchor{28d}
  @section Exception_Message
  
  
*************** so an application program should simply
*** 18600,18606 ****
  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
  
  
--- 18940,18946 ----
  the message associated with the current exception.
  
  @node Exception_Name,File,Exception_Message,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms exception-name}@anchor{28e}@anchor{gnat_rm/intrinsic_subprograms id9}@anchor{28f}
  @section Exception_Name
  
  
*************** so an application program should simply
*** 18614,18620 ****
  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
  
  
--- 18954,18960 ----
  the name of the current exception.
  
  @node File,Line,Exception_Name,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms file}@anchor{290}@anchor{gnat_rm/intrinsic_subprograms id10}@anchor{291}
  @section File
  
  
*************** application program should simply call t
*** 18628,18634 ****
  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
  
  
--- 18968,18974 ----
  file.
  
  @node Line,Shifts and Rotates,File,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id11}@anchor{292}@anchor{gnat_rm/intrinsic_subprograms line}@anchor{293}
  @section Line
  
  
*************** application program should simply call t
*** 18642,18648 ****
  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
  
  
--- 18982,18988 ----
  source line.
  
  @node Shifts and Rotates,Source_Location,Line,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id12}@anchor{294}@anchor{gnat_rm/intrinsic_subprograms shifts-and-rotates}@anchor{295}
  @section Shifts and Rotates
  
  
*************** corresponding operator for modular type.
*** 18685,18691 ****
  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
  
  
--- 19025,19031 ----
  number may change its sign bit to positive.
  
  @node Source_Location,,Shifts and Rotates,Intrinsic Subprograms
! @anchor{gnat_rm/intrinsic_subprograms id13}@anchor{296}@anchor{gnat_rm/intrinsic_subprograms source-location}@anchor{297}
  @section Source_Location
  
  
*************** application program should simply call t
*** 18699,18705 ****
  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
  
  
--- 19039,19045 ----
  source file location.
  
  @node Representation Clauses and Pragmas,Standard Library Routines,Intrinsic Subprograms,Top
! @anchor{gnat_rm/representation_clauses_and_pragmas doc}@anchor{298}@anchor{gnat_rm/representation_clauses_and_pragmas id1}@anchor{299}@anchor{gnat_rm/representation_clauses_and_pragmas representation-clauses-and-pragmas}@anchor{d}
  @chapter Representation Clauses and Pragmas
  
  
*************** and this section describes the additiona
*** 18745,18751 ****
  @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
  
  
--- 19085,19091 ----
  @end menu
  
  @node Alignment Clauses,Size Clauses,,Representation Clauses and Pragmas
! @anchor{gnat_rm/representation_clauses_and_pragmas alignment-clauses}@anchor{29a}@anchor{gnat_rm/representation_clauses_and_pragmas id2}@anchor{29b}
  @section Alignment Clauses
  
  
*************** The default alignment values are as foll
*** 18765,18773 ****
  
  For elementary types, the alignment is the minimum of the actual size of
  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
  
--- 19105,19113 ----
  
  For elementary types, the alignment is the minimum of the actual size of
  objects of the type divided by @code{Storage_Unit},
! and the maximum default alignment supported by the target.
! (This maximum default alignment is given by the GNAT-specific attribute
! @code{Standard'Maximum_Alignment}; see @ref{1a9,,Attribute Maximum_Alignment}.)
  
  @geindex Maximum_Alignment attribute
  
*************** strict alignment.
*** 18830,18837 ****
  @end itemize
  
  An alignment clause may specify a larger alignment than the default value
! up to some maximum value dependent on the target (obtainable by using the
! attribute reference @code{Standard'Maximum_Alignment}). It may also specify
  a smaller alignment than the default value for enumeration, integer and
  fixed point types, as well as for record types, for example
  
--- 19170,19176 ----
  @end itemize
  
  An alignment clause may specify a larger alignment than the default value
! up to some maximum value dependent on the target. It may also specify
  a smaller alignment than the default value for enumeration, integer and
  fixed point types, as well as for record types, for example
  
*************** assumption is non-portable, and other co
*** 18876,18882 ****
  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
  
  
--- 19215,19221 ----
  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{29c}@anchor{gnat_rm/representation_clauses_and_pragmas size-clauses}@anchor{29d}
  @section Size Clauses
  
  
*************** if it is known that a Size value can be
*** 18953,18959 ****
  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
  
  
--- 19292,19298 ----
  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{29e}@anchor{gnat_rm/representation_clauses_and_pragmas storage-size-clauses}@anchor{29f}
  @section Storage_Size Clauses
  
  
*************** Of course in practice, there will not be
*** 19026,19032 ****
  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
  
  
--- 19365,19371 ----
  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{2a0}@anchor{gnat_rm/representation_clauses_and_pragmas size-of-variant-record-objects}@anchor{2a1}
  @section Size of Variant Record Objects
  
  
*************** the maximum size, regardless of the curr
*** 19136,19142 ****
  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
  
  
--- 19475,19481 ----
  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{2a2}@anchor{gnat_rm/representation_clauses_and_pragmas id6}@anchor{2a3}
  @section Biased Representation
  
  
*************** biased representation can be used for al
*** 19174,19180 ****
  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
  
  
--- 19513,19519 ----
  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{2a4}@anchor{gnat_rm/representation_clauses_and_pragmas value-size-and-object-size-clauses}@anchor{2a5}
  @section Value_Size and Object_Size Clauses
  
  
*************** To get a feel for the difference, consid
*** 19310,19316 ****
  that in each case the base is @code{Short_Short_Integer} with a size of 8):
  
  
! @multitable {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxx} 
  @headitem
  
  Type or subtype declaration
--- 19649,19655 ----
  that in each case the base is @code{Short_Short_Integer} with a size of 8):
  
  
! @multitable {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxx} 
  @headitem
  
  Type or subtype declaration
*************** Value_Size
*** 19325,19331 ****
  
  @item
  
! @code{type x1 is range 0 .. 5;}
  
  @tab
  
--- 19664,19670 ----
  
  @item
  
! @code{type X1 is range 0 .. 5;}
  
  @tab
  
*************** Value_Size
*** 19337,19344 ****
  
  @item
  
! @code{type x2 is range 0 .. 5;}
! @code{for x2'size use 12;}
  
  @tab
  
--- 19676,19683 ----
  
  @item
  
! @code{type X2 is range 0 .. 5;
! for X2'Size use 12;}
  
  @tab
  
*************** Value_Size
*** 19350,19356 ****
  
  @item
  
! @code{subtype x3 is x2 range 0 .. 3;}
  
  @tab
  
--- 19689,19695 ----
  
  @item
  
! @code{subtype X3 is X2 range 0 .. 3;}
  
  @tab
  
*************** Value_Size
*** 19362,19368 ****
  
  @item
  
! @code{subtype x4 is x2'base range 0 .. 10;}
  
  @tab
  
--- 19701,19707 ----
  
  @item
  
! @code{subtype X4 is X2'Base range 0 .. 10;}
  
  @tab
  
*************** Value_Size
*** 19374,19380 ****
  
  @item
  
! @code{dynamic : x2'Base range -64 .. +63;}
  
  @tab
  
--- 19713,19719 ----
  
  @item
  
! @code{Dynamic : X2'Base range -64 .. +63;}
  
  @tab
  
*************** Value_Size
*** 19382,19388 ****
  
  @item
  
! @code{subtype x5 is x2 range 0 .. dynamic;}
  
  @tab
  
--- 19721,19727 ----
  
  @item
  
! @code{subtype X5 is X2 range 0 .. Dynamic;}
  
  @tab
  
*************** Value_Size
*** 19394,19400 ****
  
  @item
  
! @code{subtype x6 is x2'base range 0 .. dynamic;}
  
  @tab
  
--- 19733,19739 ----
  
  @item
  
! @code{subtype X6 is X2'Base range 0 .. Dynamic;}
  
  @tab
  
*************** definition clause forces biased represen
*** 19490,19496 ****
  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
  
  
--- 19829,19835 ----
  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{2a6}@anchor{gnat_rm/representation_clauses_and_pragmas id8}@anchor{2a7}
  @section Component_Size Clauses
  
  
*************** and a pragma Pack for the same array typ
*** 19538,19544 ****
  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
  
  
--- 19877,19883 ----
  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{2a8}@anchor{gnat_rm/representation_clauses_and_pragmas id9}@anchor{2a9}
  @section Bit_Order Clauses
  
  
*************** if desired.  The following section conta
*** 19644,19650 ****
  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
  
  
--- 19983,19989 ----
  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{2aa}@anchor{gnat_rm/representation_clauses_and_pragmas id10}@anchor{2ab}
  @section Effect of Bit_Order on Byte Ordering
  
  
*************** to set the boolean constant @code{Master
*** 19901,19907 ****
  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
  
  
--- 20240,20246 ----
  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{2ac}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-arrays}@anchor{2ad}
  @section Pragma Pack for Arrays
  
  
*************** Here 31-bit packing is achieved as requi
*** 20021,20027 ****
  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
  
  
--- 20360,20366 ----
  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{2ae}@anchor{gnat_rm/representation_clauses_and_pragmas pragma-pack-for-records}@anchor{2af}
  @section Pragma Pack for Records
  
  
*************** array that is longer than 64 bits, so it
*** 20105,20111 ****
  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
  
  
--- 20444,20450 ----
  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{2b0}@anchor{gnat_rm/representation_clauses_and_pragmas record-representation-clauses}@anchor{2b1}
  @section Record Representation Clauses
  
  
*************** end record;
*** 20184,20190 ****
  @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
  
  
--- 20523,20529 ----
  @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{2b2}@anchor{gnat_rm/representation_clauses_and_pragmas id14}@anchor{2b3}
  @section Handling of Records with Holes
  
  
*************** for Hrec'Size use 64;
*** 20260,20266 ****
  @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
  
  
--- 20599,20605 ----
  @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{2b4}@anchor{gnat_rm/representation_clauses_and_pragmas id15}@anchor{2b5}
  @section Enumeration Clauses
  
  
*************** the overhead of converting representatio
*** 20303,20309 ****
  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
  
  
--- 20642,20648 ----
  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{2b6}@anchor{gnat_rm/representation_clauses_and_pragmas id16}@anchor{2b7}
  @section Address Clauses
  
  
*************** machines with strict alignment requireme
*** 20425,20432 ****
  checks (at compile time if possible, generating a warning, or at execution
  time with a run-time check) that the alignment is appropriate.  If the
  run-time check fails, then @code{Program_Error} is raised.  This run-time
! check is suppressed if range checks are suppressed, or if the special GNAT
! check Alignment_Check is suppressed, or if
  @code{pragma Restrictions (No_Elaboration_Code)} is in effect. It is also
  suppressed by default on non-strict alignment machines (such as the x86).
  
--- 20764,20770 ----
  checks (at compile time if possible, generating a warning, or at execution
  time with a run-time check) that the alignment is appropriate.  If the
  run-time check fails, then @code{Program_Error} is raised.  This run-time
! check is suppressed if the GNAT check Alignment_Check is suppressed, or if
  @code{pragma Restrictions (No_Elaboration_Code)} is in effect. It is also
  suppressed by default on non-strict alignment machines (such as the x86).
  
*************** then the program compiles without the wa
*** 20643,20649 ****
  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
  
  
--- 20981,20987 ----
  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{2b8}@anchor{gnat_rm/representation_clauses_and_pragmas use-of-address-clauses-for-memory-mapped-i-o}@anchor{2b9}
  @section Use of Address Clauses for Memory-Mapped I/O
  
  
*************** provides the pragma @code{Volatile_Full_
*** 20701,20707 ****
  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
  
  
--- 21039,21045 ----
  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{2ba}@anchor{gnat_rm/representation_clauses_and_pragmas id18}@anchor{2bb}
  @section Effect of Convention on Representation
  
  
*************** conventions, and for example records are
*** 20715,20721 ****
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are four exceptions to this general rule:
  
  
  @itemize *
--- 21053,21059 ----
  consistent with C.  This means that specifying convention C (for example)
  has no effect.
  
! There are three exceptions to this general rule:
  
  
  @itemize *
*************** when one of these values is read, any no
*** 20779,20785 ****
  @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
  
  
--- 21117,21123 ----
  @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{2bc}@anchor{gnat_rm/representation_clauses_and_pragmas id19}@anchor{2bd}
  @section Conventions and Anonymous Access Types
  
  
*************** package ConvComp is
*** 20855,20861 ****
  @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
  
  
--- 21193,21199 ----
  @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{2be}@anchor{gnat_rm/representation_clauses_and_pragmas id20}@anchor{2bf}
  @section Determining the Representations chosen by GNAT
  
  
*************** generated by the compiler into the origi
*** 21007,21013 ****
  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
  
  
--- 21345,21351 ----
  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{2c0}@anchor{gnat_rm/standard_library_routines id1}@anchor{2c1}@anchor{gnat_rm/standard_library_routines standard-library-routines}@anchor{e}
  @chapter Standard Library Routines
  
  
*************** For packages in Interfaces and System, a
*** 21834,21840 ****
  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
  
  
--- 22172,22178 ----
  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{2c2}@anchor{gnat_rm/the_implementation_of_standard_i_o id1}@anchor{2c3}@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
*** 21886,21892 ****
  @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
  
  
--- 22224,22230 ----
  @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{2c4}@anchor{gnat_rm/the_implementation_of_standard_i_o standard-i-o-packages}@anchor{2c5}
  @section Standard I/O Packages
  
  
*************** flush the common I/O streams and in part
*** 21957,21963 ****
  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
  
  
--- 22295,22301 ----
  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{2c6}@anchor{gnat_rm/the_implementation_of_standard_i_o id3}@anchor{2c7}
  @section FORM Strings
  
  
*************** unrecognized keyword appears in a form s
*** 21983,21989 ****
  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
  
  
--- 22321,22327 ----
  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{2c8}@anchor{gnat_rm/the_implementation_of_standard_i_o id4}@anchor{2c9}
  @section Direct_IO
  
  
*************** There is no limit on the size of Direct_
*** 22002,22008 ****
  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
  
  
--- 22340,22346 ----
  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{2ca}@anchor{gnat_rm/the_implementation_of_standard_i_o sequential-io}@anchor{2cb}
  @section Sequential_IO
  
  
*************** using Stream_IO, and this is the preferr
*** 22049,22055 ****
  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
  
  
--- 22387,22393 ----
  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{2cc}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io}@anchor{2cd}
  @section Text_IO
  
  
*************** the file.
*** 22132,22138 ****
  @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
  
  
--- 22470,22476 ----
  @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{2ce}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning}@anchor{2cf}
  @subsection Stream Pointer Positioning
  
  
*************** between two Ada files, then the differen
*** 22168,22174 ****
  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
  
  
--- 22506,22512 ----
  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{2d0}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files}@anchor{2d1}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** to read data past that end of
*** 22219,22225 ****
  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
  
  
--- 22557,22563 ----
  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{2d2}@anchor{gnat_rm/the_implementation_of_standard_i_o id9}@anchor{2d3}
  @subsection Get_Immediate
  
  
*************** possible), it is undefined whether the F
*** 22237,22243 ****
  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
  
  
--- 22575,22581 ----
  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{2d4}@anchor{gnat_rm/the_implementation_of_standard_i_o treating-text-io-files-as-streams}@anchor{2d5}
  @subsection Treating Text_IO Files as Streams
  
  
*************** skipped and the effect is similar to tha
*** 22253,22259 ****
  @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
  
  
--- 22591,22597 ----
  @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{2d6}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-extensions}@anchor{2d7}
  @subsection Text_IO Extensions
  
  
*************** the string is to be read.
*** 22281,22287 ****
  @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
  
  
--- 22619,22625 ----
  @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{2d8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-io-facilities-for-unbounded-strings}@anchor{2d9}
  @subsection Text_IO Facilities for Unbounded Strings
  
  
*************** files @code{a-szuzti.ads} and @code{a-sz
*** 22329,22335 ****
  @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
  
  
--- 22667,22673 ----
  @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{2da}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-text-io}@anchor{2db}
  @section Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22576,22587 ****
  @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
--- 22914,22925 ----
  @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{2dc}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-1}@anchor{2dd}
  @subsection Stream Pointer Positioning
  
  
  @code{Ada.Wide_Text_IO} is similar to @code{Ada.Text_IO} in its handling
! of stream pointer positioning (@ref{2cd,,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
*** 22600,22606 ****
  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
  
  
--- 22938,22944 ----
  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{2de}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-1}@anchor{2df}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22611,22617 ****
  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
  
  
--- 22949,22955 ----
  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{2e0}@anchor{gnat_rm/the_implementation_of_standard_i_o wide-wide-text-io}@anchor{2e1}
  @section Wide_Wide_Text_IO
  
  
*************** input also causes Constraint_Error to be
*** 22780,22791 ****
  @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
--- 23118,23129 ----
  @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{2e2}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-pointer-positioning-2}@anchor{2e3}
  @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{2cd,,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
*** 22804,22810 ****
  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
  
  
--- 23142,23148 ----
  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{2e4}@anchor{gnat_rm/the_implementation_of_standard_i_o reading-and-writing-non-regular-files-2}@anchor{2e5}
  @subsection Reading and Writing Non-Regular Files
  
  
*************** treated as data characters), and @code{E
*** 22815,22821 ****
  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
  
  
--- 23153,23159 ----
  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{2e6}@anchor{gnat_rm/the_implementation_of_standard_i_o stream-io}@anchor{2e7}
  @section Stream_IO
  
  
*************** manner described for stream attributes.
*** 22837,22843 ****
  @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
  
  
--- 23175,23181 ----
  @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{2e8}@anchor{gnat_rm/the_implementation_of_standard_i_o text-translation}@anchor{2e9}
  @section Text Translation
  
  
*************** mode. (corresponds to_O_U16TEXT).
*** 22871,22877 ****
  @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
  
  
--- 23209,23215 ----
  @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{2ea}@anchor{gnat_rm/the_implementation_of_standard_i_o shared-files}@anchor{2eb}
  @section Shared Files
  
  
*************** heterogeneous input-output.  Although th
*** 22934,22940 ****
  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
  
  
--- 23272,23278 ----
  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{2ec}@anchor{gnat_rm/the_implementation_of_standard_i_o id22}@anchor{2ed}
  @section Filenames encoding
  
  
*************** platform. On the other Operating Systems
*** 22974,22980 ****
  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
  
  
--- 23312,23318 ----
  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{2ee}@anchor{gnat_rm/the_implementation_of_standard_i_o id23}@anchor{2ef}
  @section File content encoding
  
  
*************** Unicode 8-bit encoding
*** 23007,23013 ****
  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
  
  
--- 23345,23351 ----
  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{2f0}@anchor{gnat_rm/the_implementation_of_standard_i_o open-modes}@anchor{2f1}
  @section Open Modes
  
  
*************** subsequently requires switching from rea
*** 23110,23116 ****
  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
  
  
--- 23448,23454 ----
  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{2f2}@anchor{gnat_rm/the_implementation_of_standard_i_o operations-on-c-streams}@anchor{2f3}
  @section Operations on C Streams
  
  
*************** end Interfaces.C_Streams;
*** 23270,23276 ****
  @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
  
  
--- 23608,23614 ----
  @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{2f4}@anchor{gnat_rm/the_implementation_of_standard_i_o interfacing-to-c-streams}@anchor{2f5}
  @section Interfacing to C Streams
  
  
*************** imported from a C program, allowing an A
*** 23363,23369 ****
  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
  
  
--- 23701,23707 ----
  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{2f6}@anchor{gnat_rm/the_gnat_library id1}@anchor{2f7}@anchor{gnat_rm/the_gnat_library the-gnat-library}@anchor{10}
  @chapter The GNAT Library
  
  
*************** of GNAT, and will generate a warning mes
*** 23441,23446 ****
--- 23779,23785 ----
  * GNAT.Bubble_Sort_G (g-busorg.ads): GNAT Bubble_Sort_G g-busorg ads. 
  * GNAT.Byte_Order_Mark (g-byorma.ads): GNAT Byte_Order_Mark g-byorma ads. 
  * GNAT.Byte_Swapping (g-bytswa.ads): GNAT Byte_Swapping g-bytswa ads. 
+ * GNAT.C_Time (g-c_time.ads): GNAT C_Time g-c_time ads. 
  * GNAT.Calendar (g-calend.ads): GNAT Calendar g-calend ads. 
  * GNAT.Calendar.Time_IO (g-catiio.ads): GNAT Calendar Time_IO g-catiio ads. 
  * GNAT.CRC32 (g-crc32.ads): GNAT CRC32 g-crc32 ads. 
*************** of GNAT, and will generate a warning mes
*** 23548,23554 ****
  @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})
  
  
--- 23887,23893 ----
  @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{2f8}@anchor{gnat_rm/the_gnat_library id2}@anchor{2f9}
  @section @code{Ada.Characters.Latin_9} (@code{a-chlat9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23565,23571 ****
  (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})
  
  
--- 23904,23910 ----
  (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{2fa}@anchor{gnat_rm/the_gnat_library id3}@anchor{2fb}
  @section @code{Ada.Characters.Wide_Latin_1} (@code{a-cwila1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23582,23588 ****
  (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})
  
  
--- 23921,23927 ----
  (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{2fc}@anchor{gnat_rm/the_gnat_library id4}@anchor{2fd}
  @section @code{Ada.Characters.Wide_Latin_9} (@code{a-cwila9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23599,23605 ****
  (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})
  
  
--- 23938,23944 ----
  (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{2fe}@anchor{gnat_rm/the_gnat_library id5}@anchor{2ff}
  @section @code{Ada.Characters.Wide_Wide_Latin_1} (@code{a-chzla1.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23616,23622 ****
  (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})
  
  
--- 23955,23961 ----
  (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{300}@anchor{gnat_rm/the_gnat_library id6}@anchor{301}
  @section @code{Ada.Characters.Wide_Wide_Latin_9} (@code{a-chzla9.ads})
  
  
*************** is specifically authorized by the Ada Re
*** 23633,23639 ****
  (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})
  
  
--- 23972,23978 ----
  (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{302}@anchor{gnat_rm/the_gnat_library id7}@anchor{303}
  @section @code{Ada.Containers.Bounded_Holders} (@code{a-coboho.ads})
  
  
*************** This child of @code{Ada.Containers} defi
*** 23645,23651 ****
  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})
  
  
--- 23984,23990 ----
  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{304}@anchor{gnat_rm/the_gnat_library id8}@anchor{305}
  @section @code{Ada.Command_Line.Environment} (@code{a-colien.ads})
  
  
*************** provides a mechanism for obtaining envir
*** 23658,23664 ****
  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})
  
  
--- 23997,24003 ----
  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{306}@anchor{gnat_rm/the_gnat_library id9}@anchor{307}
  @section @code{Ada.Command_Line.Remove} (@code{a-colire.ads})
  
  
*************** to further calls to the subprograms in @
*** 23676,23682 ****
  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})
  
  
--- 24015,24021 ----
  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{308}@anchor{gnat_rm/the_gnat_library id10}@anchor{309}
  @section @code{Ada.Command_Line.Response_File} (@code{a-clrefi.ads})
  
  
*************** Using a response file allow passing a se
*** 23696,23702 ****
  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})
  
  
--- 24035,24041 ----
  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{30a}@anchor{gnat_rm/the_gnat_library id11}@anchor{30b}
  @section @code{Ada.Direct_IO.C_Streams} (@code{a-diocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23711,23717 ****
  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})
  
  
--- 24050,24056 ----
  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{30c}@anchor{gnat_rm/the_gnat_library id12}@anchor{30d}
  @section @code{Ada.Exceptions.Is_Null_Occurrence} (@code{a-einuoc.ads})
  
  
*************** exception occurrence (@code{Null_Occurre
*** 23725,23731 ****
  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})
  
  
--- 24064,24070 ----
  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{30e}@anchor{gnat_rm/the_gnat_library id13}@anchor{30f}
  @section @code{Ada.Exceptions.Last_Chance_Handler} (@code{a-elchha.ads})
  
  
*************** exceptions (hence the name last chance),
*** 23739,23745 ****
  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})
  
  
--- 24078,24084 ----
  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{310}@anchor{gnat_rm/the_gnat_library id14}@anchor{311}
  @section @code{Ada.Exceptions.Traceback} (@code{a-exctra.ads})
  
  
*************** give a traceback array of addresses base
*** 23752,23758 ****
  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})
  
  
--- 24091,24097 ----
  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{312}@anchor{gnat_rm/the_gnat_library id15}@anchor{313}
  @section @code{Ada.Sequential_IO.C_Streams} (@code{a-siocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23767,23773 ****
  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})
  
  
--- 24106,24112 ----
  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{314}@anchor{gnat_rm/the_gnat_library id16}@anchor{315}
  @section @code{Ada.Streams.Stream_IO.C_Streams} (@code{a-ssicst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23782,23788 ****
  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})
  
  
--- 24121,24127 ----
  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{316}@anchor{gnat_rm/the_gnat_library id17}@anchor{317}
  @section @code{Ada.Strings.Unbounded.Text_IO} (@code{a-suteio.ads})
  
  
*************** strings, avoiding the necessity for an i
*** 23799,23805 ****
  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})
  
  
--- 24138,24144 ----
  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{318}@anchor{gnat_rm/the_gnat_library id18}@anchor{319}
  @section @code{Ada.Strings.Wide_Unbounded.Wide_Text_IO} (@code{a-swuwti.ads})
  
  
*************** wide strings, avoiding the necessity for
*** 23816,23822 ****
  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})
  
  
--- 24155,24161 ----
  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{31a}@anchor{gnat_rm/the_gnat_library id19}@anchor{31b}
  @section @code{Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Text_IO} (@code{a-szuzti.ads})
  
  
*************** wide wide strings, avoiding the necessit
*** 23833,23839 ****
  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})
  
  
--- 24172,24178 ----
  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{31c}@anchor{gnat_rm/the_gnat_library id20}@anchor{31d}
  @section @code{Ada.Task_Initialization} (@code{a-tasini.ads})
  
  
*************** parameterless procedures. Note that such
*** 23845,23851 ****
  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})
  
  
--- 24184,24190 ----
  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{31e}@anchor{gnat_rm/the_gnat_library id21}@anchor{31f}
  @section @code{Ada.Text_IO.C_Streams} (@code{a-tiocst.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23860,23866 ****
  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})
  
  
--- 24199,24205 ----
  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{320}@anchor{gnat_rm/the_gnat_library id22}@anchor{321}
  @section @code{Ada.Text_IO.Reset_Standard_Files} (@code{a-tirsfi.ads})
  
  
*************** execution (for example a standard input
*** 23875,23881 ****
  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})
  
  
--- 24214,24220 ----
  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{322}@anchor{gnat_rm/the_gnat_library id23}@anchor{323}
  @section @code{Ada.Wide_Characters.Unicode} (@code{a-wichun.ads})
  
  
*************** This package provides subprograms that a
*** 23888,23894 ****
  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})
  
  
--- 24227,24233 ----
  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{324}@anchor{gnat_rm/the_gnat_library id24}@anchor{325}
  @section @code{Ada.Wide_Text_IO.C_Streams} (@code{a-wtcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23903,23909 ****
  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})
  
  
--- 24242,24248 ----
  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{326}@anchor{gnat_rm/the_gnat_library id25}@anchor{327}
  @section @code{Ada.Wide_Text_IO.Reset_Standard_Files} (@code{a-wrstfi.ads})
  
  
*************** execution (for example a standard input
*** 23918,23924 ****
  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})
  
  
--- 24257,24263 ----
  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{328}@anchor{gnat_rm/the_gnat_library id26}@anchor{329}
  @section @code{Ada.Wide_Wide_Characters.Unicode} (@code{a-zchuni.ads})
  
  
*************** This package provides subprograms that a
*** 23931,23937 ****
  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})
  
  
--- 24270,24276 ----
  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{32a}@anchor{gnat_rm/the_gnat_library id27}@anchor{32b}
  @section @code{Ada.Wide_Wide_Text_IO.C_Streams} (@code{a-ztcstr.ads})
  
  
*************** extracted from a file opened on the Ada
*** 23946,23952 ****
  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})
  
  
--- 24285,24291 ----
  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{32c}@anchor{gnat_rm/the_gnat_library id28}@anchor{32d}
  @section @code{Ada.Wide_Wide_Text_IO.Reset_Standard_Files} (@code{a-zrstfi.ads})
  
  
*************** change during execution (for example a s
*** 23961,23967 ****
  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})
  
  
--- 24300,24306 ----
  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{32e}@anchor{gnat_rm/the_gnat_library id29}@anchor{32f}
  @section @code{GNAT.Altivec} (@code{g-altive.ads})
  
  
*************** definitions of constants and types commo
*** 23974,23980 ****
  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})
  
  
--- 24313,24319 ----
  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{330}@anchor{gnat_rm/the_gnat_library id30}@anchor{331}
  @section @code{GNAT.Altivec.Conversions} (@code{g-altcon.ads})
  
  
*************** binding.
*** 23985,23991 ****
  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})
  
  
--- 24324,24330 ----
  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{332}@anchor{gnat_rm/the_gnat_library id31}@anchor{333}
  @section @code{GNAT.Altivec.Vector_Operations} (@code{g-alveop.ads})
  
  
*************** library. The hard binding is provided as
*** 23999,24005 ****
  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})
  
  
--- 24338,24344 ----
  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{334}@anchor{gnat_rm/the_gnat_library id32}@anchor{335}
  @section @code{GNAT.Altivec.Vector_Types} (@code{g-alvety.ads})
  
  
*************** This package exposes the various vector
*** 24011,24017 ****
  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})
  
  
--- 24350,24356 ----
  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{336}@anchor{gnat_rm/the_gnat_library id33}@anchor{337}
  @section @code{GNAT.Altivec.Vector_Views} (@code{g-alvevi.ads})
  
  
*************** vector elements and provides a simple wa
*** 24026,24032 ****
  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})
  
  
--- 24365,24371 ----
  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{338}@anchor{gnat_rm/the_gnat_library id34}@anchor{339}
  @section @code{GNAT.Array_Split} (@code{g-arrspl.ads})
  
  
*************** an array wherever the separators appear,
*** 24039,24045 ****
  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})
  
  
--- 24378,24384 ----
  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{33a}@anchor{gnat_rm/the_gnat_library id35}@anchor{33b}
  @section @code{GNAT.AWK} (@code{g-awk.ads})
  
  
*************** or more files containing formatted data.
*** 24054,24060 ****
  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})
  
  
--- 24393,24399 ----
  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{33c}@anchor{gnat_rm/the_gnat_library id36}@anchor{33d}
  @section @code{GNAT.Binary_Search} (@code{g-binsea.ads})
  
  
*************** Allow binary search of a sorted array (o
*** 24066,24072 ****
  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})
  
  
--- 24405,24411 ----
  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{33e}@anchor{gnat_rm/the_gnat_library id37}@anchor{33f}
  @section @code{GNAT.Bind_Environment} (@code{g-binenv.ads})
  
  
*************** These associations can be specified usin
*** 24079,24085 ****
  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})
  
  
--- 24418,24424 ----
  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{340}@anchor{gnat_rm/the_gnat_library id38}@anchor{341}
  @section @code{GNAT.Branch_Prediction} (@code{g-brapre.ads})
  
  
*************** line switch.
*** 24090,24096 ****
  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})
  
  
--- 24429,24435 ----
  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{342}@anchor{gnat_rm/the_gnat_library id39}@anchor{343}
  @section @code{GNAT.Bounded_Buffers} (@code{g-boubuf.ads})
  
  
*************** useful directly or as parts of the imple
*** 24105,24111 ****
  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})
  
  
--- 24444,24450 ----
  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{344}@anchor{gnat_rm/the_gnat_library id40}@anchor{345}
  @section @code{GNAT.Bounded_Mailboxes} (@code{g-boumai.ads})
  
  
*************** such as mailboxes.
*** 24118,24124 ****
  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})
  
  
--- 24457,24463 ----
  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{346}@anchor{gnat_rm/the_gnat_library id41}@anchor{347}
  @section @code{GNAT.Bubble_Sort} (@code{g-bubsor.ads})
  
  
*************** data items.  Exchange and comparison pro
*** 24133,24139 ****
  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})
  
  
--- 24472,24478 ----
  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{348}@anchor{gnat_rm/the_gnat_library id42}@anchor{349}
  @section @code{GNAT.Bubble_Sort_A} (@code{g-busora.ads})
  
  
*************** access-to-procedure values. This is an o
*** 24149,24155 ****
  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})
  
  
--- 24488,24494 ----
  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{34a}@anchor{gnat_rm/the_gnat_library id43}@anchor{34b}
  @section @code{GNAT.Bubble_Sort_G} (@code{g-busorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24165,24171 ****
  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})
  
  
--- 24504,24510 ----
  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{34c}@anchor{gnat_rm/the_gnat_library id44}@anchor{34d}
  @section @code{GNAT.Byte_Order_Mark} (@code{g-byorma.ads})
  
  
*************** see whether it is one of the standard by
*** 24180,24187 ****
  the encoding of the string. The routine includes detection of special XML
  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})
  
  
--- 24519,24526 ----
  the encoding of the string. The routine includes detection of special XML
  sequences for various UCS input formats.
  
! @node GNAT Byte_Swapping g-bytswa ads,GNAT C_Time g-c_time ads,GNAT Byte_Order_Mark g-byorma ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-byte-swapping-g-bytswa-ads}@anchor{34e}@anchor{gnat_rm/the_gnat_library id45}@anchor{34f}
  @section @code{GNAT.Byte_Swapping} (@code{g-bytswa.ads})
  
  
*************** sequences for various UCS input formats.
*** 24194,24201 ****
  General routines for swapping the bytes in 2-, 4-, and 8-byte quantities.
  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})
  
  
--- 24533,24552 ----
  General routines for swapping the bytes in 2-, 4-, and 8-byte quantities.
  Machine-specific implementations are available in some cases.
  
! @node GNAT C_Time g-c_time ads,GNAT Calendar g-calend ads,GNAT Byte_Swapping g-bytswa ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-c-time-g-c-time-ads}@anchor{350}@anchor{gnat_rm/the_gnat_library id46}@anchor{351}
! @section @code{GNAT.C_Time} (@code{g-c_time.ads})
! 
! 
! @geindex GNAT.C_Time (g-c_time.ads)
! 
! @geindex Time
! 
! Provides the time_t, timeval and timespec types corresponding to the C
! types defined by the OS, as well as various conversion functions.
! 
! @node GNAT Calendar g-calend ads,GNAT Calendar Time_IO g-catiio ads,GNAT C_Time g-c_time ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-g-calend-ads}@anchor{352}@anchor{gnat_rm/the_gnat_library id47}@anchor{353}
  @section @code{GNAT.Calendar} (@code{g-calend.ads})
  
  
*************** Machine-specific implementations are ava
*** 24205,24215 ****
  
  Extends the facilities provided by @code{Ada.Calendar} to include handling
  of days of the week, an extended @code{Split} and @code{Time_Of} capability.
- Also provides conversion of @code{Ada.Calendar.Time} values to and from the
- 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})
  
  
--- 24556,24564 ----
  
  Extends the facilities provided by @code{Ada.Calendar} to include handling
  of days of the week, an extended @code{Split} and @code{Time_Of} capability.
  
  @node GNAT Calendar Time_IO g-catiio ads,GNAT CRC32 g-crc32 ads,GNAT Calendar g-calend ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library gnat-calendar-time-io-g-catiio-ads}@anchor{354}@anchor{gnat_rm/the_gnat_library id48}@anchor{355}
  @section @code{GNAT.Calendar.Time_IO} (@code{g-catiio.ads})
  
  
*************** C @code{timeval} format.
*** 24220,24226 ****
  @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})
  
  
--- 24569,24575 ----
  @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{356}@anchor{gnat_rm/the_gnat_library id49}@anchor{357}
  @section @code{GNAT.CRC32} (@code{g-crc32.ads})
  
  
*************** of this algorithm see
*** 24237,24243 ****
  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})
  
  
--- 24586,24592 ----
  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{358}@anchor{gnat_rm/the_gnat_library id50}@anchor{359}
  @section @code{GNAT.Case_Util} (@code{g-casuti.ads})
  
  
*************** without the overhead of the full casing
*** 24252,24258 ****
  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})
  
  
--- 24601,24607 ----
  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{35a}@anchor{gnat_rm/the_gnat_library id51}@anchor{35b}
  @section @code{GNAT.CGI} (@code{g-cgi.ads})
  
  
*************** builds a table whose index is the key an
*** 24267,24273 ****
  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})
  
  
--- 24616,24622 ----
  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{35c}@anchor{gnat_rm/the_gnat_library id52}@anchor{35d}
  @section @code{GNAT.CGI.Cookie} (@code{g-cgicoo.ads})
  
  
*************** Common Gateway Interface (CGI).  It expo
*** 24282,24288 ****
  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})
  
  
--- 24631,24637 ----
  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{35e}@anchor{gnat_rm/the_gnat_library id53}@anchor{35f}
  @section @code{GNAT.CGI.Debug} (@code{g-cgideb.ads})
  
  
*************** This is a package to help debugging CGI
*** 24294,24300 ****
  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})
  
  
--- 24643,24649 ----
  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{360}@anchor{gnat_rm/the_gnat_library id54}@anchor{361}
  @section @code{GNAT.Command_Line} (@code{g-comlin.ads})
  
  
*************** including the ability to scan for named
*** 24307,24313 ****
  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})
  
  
--- 24656,24662 ----
  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{362}@anchor{gnat_rm/the_gnat_library id55}@anchor{363}
  @section @code{GNAT.Compiler_Version} (@code{g-comver.ads})
  
  
*************** of the compiler if a consistent tool set
*** 24325,24331 ****
  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})
  
  
--- 24674,24680 ----
  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{364}@anchor{gnat_rm/the_gnat_library id56}@anchor{365}
  @section @code{GNAT.Ctrl_C} (@code{g-ctrl_c.ads})
  
  
*************** of a partition).
*** 24336,24342 ****
  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})
  
  
--- 24685,24691 ----
  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{366}@anchor{gnat_rm/the_gnat_library id57}@anchor{367}
  @section @code{GNAT.Current_Exception} (@code{g-curexc.ads})
  
  
*************** This is particularly useful in simulatin
*** 24353,24359 ****
  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})
  
  
--- 24702,24708 ----
  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{368}@anchor{gnat_rm/the_gnat_library id58}@anchor{369}
  @section @code{GNAT.Debug_Pools} (@code{g-debpoo.ads})
  
  
*************** problems.
*** 24370,24376 ****
  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})
  
  
--- 24719,24725 ----
  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{36a}@anchor{gnat_rm/the_gnat_library id59}@anchor{36b}
  @section @code{GNAT.Debug_Utilities} (@code{g-debuti.ads})
  
  
*************** to and from string images of address val
*** 24383,24389 ****
  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})
  
  
--- 24732,24738 ----
  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{36c}@anchor{gnat_rm/the_gnat_library id60}@anchor{36d}
  @section @code{GNAT.Decode_String} (@code{g-decstr.ads})
  
  
*************** Useful in conjunction with Unicode chara
*** 24407,24413 ****
  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})
  
  
--- 24756,24762 ----
  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{36e}@anchor{gnat_rm/the_gnat_library id61}@anchor{36f}
  @section @code{GNAT.Decode_UTF8_String} (@code{g-deutst.ads})
  
  
*************** preinstantiation for UTF-8. See next ent
*** 24428,24434 ****
  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})
  
  
--- 24777,24783 ----
  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{370}@anchor{gnat_rm/the_gnat_library id62}@anchor{371}
  @section @code{GNAT.Directory_Operations} (@code{g-dirope.ads})
  
  
*************** the current directory, making new direct
*** 24441,24447 ****
  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})
  
  
--- 24790,24796 ----
  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{372}@anchor{gnat_rm/the_gnat_library id63}@anchor{373}
  @section @code{GNAT.Directory_Operations.Iteration} (@code{g-diopit.ads})
  
  
*************** A child unit of GNAT.Directory_Operation
*** 24453,24459 ****
  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})
  
  
--- 24802,24808 ----
  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{374}@anchor{gnat_rm/the_gnat_library id64}@anchor{375}
  @section @code{GNAT.Dynamic_HTables} (@code{g-dynhta.ads})
  
  
*************** dynamic instances of the hash table, whi
*** 24471,24477 ****
  @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})
  
  
--- 24820,24826 ----
  @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{376}@anchor{gnat_rm/the_gnat_library id65}@anchor{377}
  @section @code{GNAT.Dynamic_Tables} (@code{g-dyntab.ads})
  
  
*************** dynamic instances of the table, while an
*** 24491,24497 ****
  @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})
  
  
--- 24840,24846 ----
  @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{378}@anchor{gnat_rm/the_gnat_library id66}@anchor{379}
  @section @code{GNAT.Encode_String} (@code{g-encstr.ads})
  
  
*************** encoding method. Useful in conjunction w
*** 24513,24519 ****
  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})
  
  
--- 24862,24868 ----
  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{37a}@anchor{gnat_rm/the_gnat_library id67}@anchor{37b}
  @section @code{GNAT.Encode_UTF8_String} (@code{g-enutst.ads})
  
  
*************** Note there is a preinstantiation for UTF
*** 24534,24540 ****
  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})
  
  
--- 24883,24889 ----
  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{37c}@anchor{gnat_rm/the_gnat_library id68}@anchor{37d}
  @section @code{GNAT.Exception_Actions} (@code{g-excact.ads})
  
  
*************** for specific exceptions, or when any exc
*** 24547,24553 ****
  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})
  
  
--- 24896,24902 ----
  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{37e}@anchor{gnat_rm/the_gnat_library id69}@anchor{37f}
  @section @code{GNAT.Exception_Traces} (@code{g-exctra.ads})
  
  
*************** Provides an interface allowing to contro
*** 24561,24567 ****
  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})
  
  
--- 24910,24916 ----
  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{380}@anchor{gnat_rm/the_gnat_library id70}@anchor{381}
  @section @code{GNAT.Exceptions} (@code{g-except.ads})
  
  
*************** predefined exceptions, and for example a
*** 24582,24588 ****
  @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})
  
  
--- 24931,24937 ----
  @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{382}@anchor{gnat_rm/the_gnat_library id71}@anchor{383}
  @section @code{GNAT.Expect} (@code{g-expect.ads})
  
  
*************** It is not implemented for cross ports, a
*** 24598,24604 ****
  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})
  
  
--- 24947,24953 ----
  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{384}@anchor{gnat_rm/the_gnat_library id72}@anchor{385}
  @section @code{GNAT.Expect.TTY} (@code{g-exptty.ads})
  
  
*************** ports. It is not implemented for cross p
*** 24610,24616 ****
  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})
  
  
--- 24959,24965 ----
  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{386}@anchor{gnat_rm/the_gnat_library id73}@anchor{387}
  @section @code{GNAT.Float_Control} (@code{g-flocon.ads})
  
  
*************** library calls may cause this mode to be
*** 24624,24630 ****
  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})
  
  
--- 24973,24979 ----
  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{388}@anchor{gnat_rm/the_gnat_library id74}@anchor{389}
  @section @code{GNAT.Formatted_String} (@code{g-forstr.ads})
  
  
*************** derived from Integer, Float or enumerati
*** 24639,24645 ****
  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})
  
  
--- 24988,24994 ----
  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{38a}@anchor{gnat_rm/the_gnat_library id75}@anchor{38b}
  @section @code{GNAT.Generic_Fast_Math_Functions} (@code{g-gfmafu.ads})
  
  
*************** have a vector implementation that can be
*** 24657,24663 ****
  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})
  
  
--- 25006,25012 ----
  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{38c}@anchor{gnat_rm/the_gnat_library id76}@anchor{38d}
  @section @code{GNAT.Heap_Sort} (@code{g-heasor.ads})
  
  
*************** access-to-procedure values.  The algorit
*** 24671,24677 ****
  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})
  
  
--- 25020,25026 ----
  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{38e}@anchor{gnat_rm/the_gnat_library id77}@anchor{38f}
  @section @code{GNAT.Heap_Sort_A} (@code{g-hesora.ads})
  
  
*************** This differs from @code{GNAT.Heap_Sort}
*** 24687,24693 ****
  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})
  
  
--- 25036,25042 ----
  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{390}@anchor{gnat_rm/the_gnat_library id78}@anchor{391}
  @section @code{GNAT.Heap_Sort_G} (@code{g-hesorg.ads})
  
  
*************** if the procedures can be inlined, at the
*** 24701,24707 ****
  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})
  
  
--- 25050,25056 ----
  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{392}@anchor{gnat_rm/the_gnat_library id79}@anchor{393}
  @section @code{GNAT.HTable} (@code{g-htable.ads})
  
  
*************** data.  Provides two approaches, one a si
*** 24714,24720 ****
  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})
  
  
--- 25063,25069 ----
  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{394}@anchor{gnat_rm/the_gnat_library id80}@anchor{395}
  @section @code{GNAT.IO} (@code{g-io.ads})
  
  
*************** Standard_Input, and writing characters,
*** 24730,24736 ****
  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})
  
  
--- 25079,25085 ----
  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{396}@anchor{gnat_rm/the_gnat_library id81}@anchor{397}
  @section @code{GNAT.IO_Aux} (@code{g-io_aux.ads})
  
  
*************** Provides some auxiliary functions for us
*** 24744,24750 ****
  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})
  
  
--- 25093,25099 ----
  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{398}@anchor{gnat_rm/the_gnat_library id82}@anchor{399}
  @section @code{GNAT.Lock_Files} (@code{g-locfil.ads})
  
  
*************** Provides a general interface for using f
*** 24758,24764 ****
  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})
  
  
--- 25107,25113 ----
  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{39a}@anchor{gnat_rm/the_gnat_library id83}@anchor{39b}
  @section @code{GNAT.MBBS_Discrete_Random} (@code{g-mbdira.ads})
  
  
*************** The original implementation of @code{Ada
*** 24770,24776 ****
  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})
  
  
--- 25119,25125 ----
  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{39c}@anchor{gnat_rm/the_gnat_library id84}@anchor{39d}
  @section @code{GNAT.MBBS_Float_Random} (@code{g-mbflra.ads})
  
  
*************** The original implementation of @code{Ada
*** 24782,24788 ****
  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})
  
  
--- 25131,25137 ----
  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{39e}@anchor{gnat_rm/the_gnat_library id85}@anchor{39f}
  @section @code{GNAT.MD5} (@code{g-md5.ads})
  
  
*************** the HMAC-MD5 message authentication func
*** 24795,24801 ****
  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})
  
  
--- 25144,25150 ----
  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{3a0}@anchor{gnat_rm/the_gnat_library id86}@anchor{3a1}
  @section @code{GNAT.Memory_Dump} (@code{g-memdum.ads})
  
  
*************** standard output or standard error files.
*** 24808,24814 ****
  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})
  
  
--- 25157,25163 ----
  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{3a2}@anchor{gnat_rm/the_gnat_library id87}@anchor{3a3}
  @section @code{GNAT.Most_Recent_Exception} (@code{g-moreex.ads})
  
  
*************** various logging purposes, including dupl
*** 24822,24828 ****
  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})
  
  
--- 25171,25177 ----
  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{3a4}@anchor{gnat_rm/the_gnat_library id88}@anchor{3a5}
  @section @code{GNAT.OS_Lib} (@code{g-os_lib.ads})
  
  
*************** including a portable spawn procedure, an
*** 24838,24844 ****
  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})
  
  
--- 25187,25193 ----
  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{3a6}@anchor{gnat_rm/the_gnat_library id89}@anchor{3a7}
  @section @code{GNAT.Perfect_Hash_Generators} (@code{g-pehage.ads})
  
  
*************** hashcode are in the same order. These ha
*** 24856,24862 ****
  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})
  
  
--- 25205,25211 ----
  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{3a8}@anchor{gnat_rm/the_gnat_library id90}@anchor{3a9}
  @section @code{GNAT.Random_Numbers} (@code{g-rannum.ads})
  
  
*************** however NOT suitable for situations requ
*** 24870,24876 ****
  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})
  
  
--- 25219,25225 ----
  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{27d}@anchor{gnat_rm/the_gnat_library id91}@anchor{3aa}
  @section @code{GNAT.Regexp} (@code{g-regexp.ads})
  
  
*************** simplest of the three pattern matching p
*** 24886,24892 ****
  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})
  
  
--- 25235,25241 ----
  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{3ab}@anchor{gnat_rm/the_gnat_library id92}@anchor{3ac}
  @section @code{GNAT.Registry} (@code{g-regist.ads})
  
  
*************** registry API, but at a lower level of ab
*** 24900,24906 ****
  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})
  
  
--- 25249,25255 ----
  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{3ad}@anchor{gnat_rm/the_gnat_library id93}@anchor{3ae}
  @section @code{GNAT.Regpat} (@code{g-regpat.ads})
  
  
*************** from the original V7 style regular expre
*** 24915,24921 ****
  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})
  
  
--- 25264,25270 ----
  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{3af}@anchor{gnat_rm/the_gnat_library id94}@anchor{3b0}
  @section @code{GNAT.Rewrite_Data} (@code{g-rewdat.ads})
  
  
*************** full content to be processed is not load
*** 24929,24935 ****
  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})
  
  
--- 25278,25284 ----
  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{3b1}@anchor{gnat_rm/the_gnat_library id95}@anchor{3b2}
  @section @code{GNAT.Secondary_Stack_Info} (@code{g-sestin.ads})
  
  
*************** Provides the capability to query the hig
*** 24941,24947 ****
  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})
  
  
--- 25290,25296 ----
  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{3b3}@anchor{gnat_rm/the_gnat_library id96}@anchor{3b4}
  @section @code{GNAT.Semaphores} (@code{g-semaph.ads})
  
  
*************** secondary stack.
*** 24952,24958 ****
  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})
  
  
--- 25301,25307 ----
  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{3b5}@anchor{gnat_rm/the_gnat_library id97}@anchor{3b6}
  @section @code{GNAT.Serial_Communications} (@code{g-sercom.ads})
  
  
*************** Provides a simple interface to send and
*** 24964,24970 ****
  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})
  
  
--- 25313,25319 ----
  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{3b7}@anchor{gnat_rm/the_gnat_library id98}@anchor{3b8}
  @section @code{GNAT.SHA1} (@code{g-sha1.ads})
  
  
*************** and RFC 3174, and the HMAC-SHA1 message
*** 24977,24983 ****
  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})
  
  
--- 25326,25332 ----
  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{3b9}@anchor{gnat_rm/the_gnat_library id99}@anchor{3ba}
  @section @code{GNAT.SHA224} (@code{g-sha224.ads})
  
  
*************** and the HMAC-SHA224 message authenticati
*** 24990,24996 ****
  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})
  
  
--- 25339,25345 ----
  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{3bb}@anchor{gnat_rm/the_gnat_library id100}@anchor{3bc}
  @section @code{GNAT.SHA256} (@code{g-sha256.ads})
  
  
*************** and the HMAC-SHA256 message authenticati
*** 25003,25009 ****
  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})
  
  
--- 25352,25358 ----
  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{3bd}@anchor{gnat_rm/the_gnat_library id101}@anchor{3be}
  @section @code{GNAT.SHA384} (@code{g-sha384.ads})
  
  
*************** and the HMAC-SHA384 message authenticati
*** 25016,25022 ****
  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})
  
  
--- 25365,25371 ----
  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{3bf}@anchor{gnat_rm/the_gnat_library id102}@anchor{3c0}
  @section @code{GNAT.SHA512} (@code{g-sha512.ads})
  
  
*************** and the HMAC-SHA512 message authenticati
*** 25029,25035 ****
  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})
  
  
--- 25378,25384 ----
  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{3c1}@anchor{gnat_rm/the_gnat_library id103}@anchor{3c2}
  @section @code{GNAT.Signals} (@code{g-signal.ads})
  
  
*************** Provides the ability to manipulate the b
*** 25041,25047 ****
  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})
  
  
--- 25390,25396 ----
  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{3c3}@anchor{gnat_rm/the_gnat_library id104}@anchor{3c4}
  @section @code{GNAT.Sockets} (@code{g-socket.ads})
  
  
*************** on all native GNAT ports and on VxWorks
*** 25056,25062 ****
  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})
  
  
--- 25405,25411 ----
  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{3c5}@anchor{gnat_rm/the_gnat_library id105}@anchor{3c6}
  @section @code{GNAT.Source_Info} (@code{g-souinf.ads})
  
  
*************** subprograms yielding the date and time o
*** 25070,25076 ****
  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})
  
  
--- 25419,25425 ----
  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{3c7}@anchor{gnat_rm/the_gnat_library id106}@anchor{3c8}
  @section @code{GNAT.Spelling_Checker} (@code{g-speche.ads})
  
  
*************** Provides a function for determining whet
*** 25082,25088 ****
  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})
  
  
--- 25431,25437 ----
  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{3c9}@anchor{gnat_rm/the_gnat_library id107}@anchor{3ca}
  @section @code{GNAT.Spelling_Checker_Generic} (@code{g-spchge.ads})
  
  
*************** determining whether one string is a plau
*** 25095,25101 ****
  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})
  
  
--- 25444,25450 ----
  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{3cb}@anchor{gnat_rm/the_gnat_library id108}@anchor{3cc}
  @section @code{GNAT.Spitbol.Patterns} (@code{g-spipat.ads})
  
  
*************** the SNOBOL4 dynamic pattern construction
*** 25111,25117 ****
  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})
  
  
--- 25460,25466 ----
  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{3cd}@anchor{gnat_rm/the_gnat_library id109}@anchor{3ce}
  @section @code{GNAT.Spitbol} (@code{g-spitbo.ads})
  
  
*************** useful for constructing arbitrary mappin
*** 25126,25132 ****
  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})
  
  
--- 25475,25481 ----
  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{3cf}@anchor{gnat_rm/the_gnat_library id110}@anchor{3d0}
  @section @code{GNAT.Spitbol.Table_Boolean} (@code{g-sptabo.ads})
  
  
*************** for type @code{Standard.Boolean}, giving
*** 25141,25147 ****
  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})
  
  
--- 25490,25496 ----
  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{3d1}@anchor{gnat_rm/the_gnat_library id111}@anchor{3d2}
  @section @code{GNAT.Spitbol.Table_Integer} (@code{g-sptain.ads})
  
  
*************** for type @code{Standard.Integer}, giving
*** 25158,25164 ****
  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})
  
  
--- 25507,25513 ----
  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{3d3}@anchor{gnat_rm/the_gnat_library id112}@anchor{3d4}
  @section @code{GNAT.Spitbol.Table_VString} (@code{g-sptavs.ads})
  
  
*************** a variable length string type, giving an
*** 25175,25181 ****
  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})
  
  
--- 25524,25530 ----
  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{3d5}@anchor{gnat_rm/the_gnat_library id113}@anchor{3d6}
  @section @code{GNAT.SSE} (@code{g-sse.ads})
  
  
*************** targets.  It exposes vector component ty
*** 25187,25193 ****
  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})
  
  
--- 25536,25542 ----
  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{3d7}@anchor{gnat_rm/the_gnat_library id114}@anchor{3d8}
  @section @code{GNAT.SSE.Vector_Types} (@code{g-ssvety.ads})
  
  
*************** introduction to the binding contents and
*** 25196,25202 ****
  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})
  
  
--- 25545,25551 ----
  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{3d9}@anchor{gnat_rm/the_gnat_library id115}@anchor{3da}
  @section @code{GNAT.String_Hash} (@code{g-strhas.ads})
  
  
*************** Provides a generic hash function working
*** 25208,25214 ****
  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})
  
  
--- 25557,25563 ----
  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{3db}@anchor{gnat_rm/the_gnat_library id116}@anchor{3dc}
  @section @code{GNAT.Strings} (@code{g-string.ads})
  
  
*************** Common String access types and related s
*** 25218,25224 ****
  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})
  
  
--- 25567,25573 ----
  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{3dd}@anchor{gnat_rm/the_gnat_library id117}@anchor{3de}
  @section @code{GNAT.String_Split} (@code{g-strspl.ads})
  
  
*************** to the resulting slices. This package is
*** 25232,25238 ****
  @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})
  
  
--- 25581,25587 ----
  @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{3df}@anchor{gnat_rm/the_gnat_library id118}@anchor{3e0}
  @section @code{GNAT.Table} (@code{g-table.ads})
  
  
*************** while an instantiation of @code{GNAT.Dyn
*** 25252,25258 ****
  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})
  
  
--- 25601,25607 ----
  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{3e1}@anchor{gnat_rm/the_gnat_library id119}@anchor{3e2}
  @section @code{GNAT.Task_Lock} (@code{g-tasloc.ads})
  
  
*************** single global task lock.  Appropriate fo
*** 25269,25275 ****
  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})
  
  
--- 25618,25624 ----
  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{3e3}@anchor{gnat_rm/the_gnat_library id120}@anchor{3e4}
  @section @code{GNAT.Time_Stamp} (@code{g-timsta.ads})
  
  
*************** represents the current date and time in
*** 25284,25290 ****
  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})
  
  
--- 25633,25639 ----
  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{3e5}@anchor{gnat_rm/the_gnat_library id121}@anchor{3e6}
  @section @code{GNAT.Threads} (@code{g-thread.ads})
  
  
*************** further details if your program has thre
*** 25301,25307 ****
  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})
  
  
--- 25650,25656 ----
  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{3e7}@anchor{gnat_rm/the_gnat_library id122}@anchor{3e8}
  @section @code{GNAT.Traceback} (@code{g-traceb.ads})
  
  
*************** Provides a facility for obtaining non-sy
*** 25313,25319 ****
  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})
  
  
--- 25662,25668 ----
  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{3e9}@anchor{gnat_rm/the_gnat_library id123}@anchor{3ea}
  @section @code{GNAT.Traceback.Symbolic} (@code{g-trasym.ads})
  
  
*************** in various debugging situations.
*** 25322,25328 ****
  @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})
  
  
--- 25671,25677 ----
  @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{3eb}@anchor{gnat_rm/the_gnat_library id124}@anchor{3ec}
  @section @code{GNAT.UTF_32} (@code{g-utf_32.ads})
  
  
*************** lower case to upper case fold routine co
*** 25341,25347 ****
  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})
  
  
--- 25690,25696 ----
  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{3ed}@anchor{gnat_rm/the_gnat_library id125}@anchor{3ee}
  @section @code{GNAT.UTF_32_Spelling_Checker} (@code{g-u3spch.ads})
  
  
*************** near misspelling of another wide wide st
*** 25354,25360 ****
  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})
  
  
--- 25703,25709 ----
  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{3ef}@anchor{gnat_rm/the_gnat_library id126}@anchor{3f0}
  @section @code{GNAT.Wide_Spelling_Checker} (@code{g-wispch.ads})
  
  
*************** Provides a function for determining whet
*** 25366,25372 ****
  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})
  
  
--- 25715,25721 ----
  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{3f1}@anchor{gnat_rm/the_gnat_library id127}@anchor{3f2}
  @section @code{GNAT.Wide_String_Split} (@code{g-wistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25380,25386 ****
  @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})
  
  
--- 25729,25735 ----
  @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{3f3}@anchor{gnat_rm/the_gnat_library id128}@anchor{3f4}
  @section @code{GNAT.Wide_Wide_Spelling_Checker} (@code{g-zspche.ads})
  
  
*************** Provides a function for determining whet
*** 25392,25398 ****
  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})
  
  
--- 25741,25747 ----
  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{3f5}@anchor{gnat_rm/the_gnat_library id129}@anchor{3f6}
  @section @code{GNAT.Wide_Wide_String_Split} (@code{g-zistsp.ads})
  
  
*************** to the resulting slices. This package is
*** 25406,25412 ****
  @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})
  
  
--- 25755,25761 ----
  @code{GNAT.Array_Split}.
  
  @node Interfaces C Extensions i-cexten ads,Interfaces C Streams i-cstrea ads,GNAT Wide_Wide_String_Split g-zistsp ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id130}@anchor{3f7}@anchor{gnat_rm/the_gnat_library interfaces-c-extensions-i-cexten-ads}@anchor{3f8}
  @section @code{Interfaces.C.Extensions} (@code{i-cexten.ads})
  
  
*************** for use with either manually or automati
*** 25417,25423 ****
  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})
  
  
--- 25766,25772 ----
  to C libraries.
  
  @node Interfaces C Streams i-cstrea ads,Interfaces Packed_Decimal i-pacdec ads,Interfaces C Extensions i-cexten ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id131}@anchor{3f9}@anchor{gnat_rm/the_gnat_library interfaces-c-streams-i-cstrea-ads}@anchor{3fa}
  @section @code{Interfaces.C.Streams} (@code{i-cstrea.ads})
  
  
*************** This package is a binding for the most c
*** 25430,25436 ****
  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})
  
  
--- 25779,25785 ----
  on C streams.
  
  @node Interfaces Packed_Decimal i-pacdec ads,Interfaces VxWorks i-vxwork ads,Interfaces C Streams i-cstrea ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id132}@anchor{3fb}@anchor{gnat_rm/the_gnat_library interfaces-packed-decimal-i-pacdec-ads}@anchor{3fc}
  @section @code{Interfaces.Packed_Decimal} (@code{i-pacdec.ads})
  
  
*************** from a packed decimal format compatible
*** 25445,25451 ****
  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})
  
  
--- 25794,25800 ----
  mainframes.
  
  @node Interfaces VxWorks i-vxwork ads,Interfaces VxWorks IO i-vxwoio ads,Interfaces Packed_Decimal i-pacdec ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id133}@anchor{3fd}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-i-vxwork-ads}@anchor{3fe}
  @section @code{Interfaces.VxWorks} (@code{i-vxwork.ads})
  
  
*************** mainframes.
*** 25459,25465 ****
  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})
  
  
--- 25808,25814 ----
  This package provides a limited binding to the VxWorks API.
  
  @node Interfaces VxWorks IO i-vxwoio ads,System Address_Image s-addima ads,Interfaces VxWorks i-vxwork ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id134}@anchor{3ff}@anchor{gnat_rm/the_gnat_library interfaces-vxworks-io-i-vxwoio-ads}@anchor{400}
  @section @code{Interfaces.VxWorks.IO} (@code{i-vxwoio.ads})
  
  
*************** function codes. A particular use of this
*** 25482,25488 ****
  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})
  
  
--- 25831,25837 ----
  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{401}@anchor{gnat_rm/the_gnat_library system-address-image-s-addima-ads}@anchor{402}
  @section @code{System.Address_Image} (@code{s-addima.ads})
  
  
*************** function that gives an (implementation d
*** 25498,25504 ****
  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})
  
  
--- 25847,25853 ----
  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{403}@anchor{gnat_rm/the_gnat_library system-assertions-s-assert-ads}@anchor{404}
  @section @code{System.Assertions} (@code{s-assert.ads})
  
  
*************** by an run-time assertion failure, as wel
*** 25514,25520 ****
  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})
  
  
--- 25863,25869 ----
  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{405}@anchor{gnat_rm/the_gnat_library system-atomic-counters-s-atocou-ads}@anchor{406}
  @section @code{System.Atomic_Counters} (@code{s-atocou.ads})
  
  
*************** on most targets, including all Alpha, AA
*** 25528,25534 ****
  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})
  
  
--- 25877,25883 ----
  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{407}@anchor{gnat_rm/the_gnat_library system-memory-s-memory-ads}@anchor{408}
  @section @code{System.Memory} (@code{s-memory.ads})
  
  
*************** calls to this unit may be made for low l
*** 25546,25552 ****
  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})
  
  
--- 25895,25901 ----
  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{409}@anchor{gnat_rm/the_gnat_library system-multiprocessors-s-multip-ads}@anchor{40a}
  @section @code{System.Multiprocessors} (@code{s-multip.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25559,25565 ****
  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})
  
  
--- 25908,25914 ----
  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{40b}@anchor{gnat_rm/the_gnat_library system-multiprocessors-dispatching-domains-s-mudido-ads}@anchor{40c}
  @section @code{System.Multiprocessors.Dispatching_Domains} (@code{s-mudido.ads})
  
  
*************** in GNAT we also make it available in Ada
*** 25572,25578 ****
  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})
  
  
--- 25921,25927 ----
  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{40d}@anchor{gnat_rm/the_gnat_library system-partition-interface-s-parint-ads}@anchor{40e}
  @section @code{System.Partition_Interface} (@code{s-parint.ads})
  
  
*************** technically an implementation-defined ad
*** 25582,25591 ****
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! 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})
  
  
--- 25931,25941 ----
  
  This package provides facilities for partition interfacing.  It
  is used primarily in a distribution context when using Annex E
! with @code{PolyORB}.  `NB!' See the note in @ref{272,,PolyORB} regarding
! the lifetime of this product.
  
  @node System Pool_Global s-pooglo ads,System Pool_Local s-pooloc ads,System Partition_Interface s-parint ads,The GNAT Library
! @anchor{gnat_rm/the_gnat_library id142}@anchor{40f}@anchor{gnat_rm/the_gnat_library system-pool-global-s-pooglo-ads}@anchor{410}
  @section @code{System.Pool_Global} (@code{s-pooglo.ads})
  
  
*************** declared. It uses malloc/free to allocat
*** 25602,25608 ****
  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})
  
  
--- 25952,25958 ----
  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{411}@anchor{gnat_rm/the_gnat_library system-pool-local-s-pooloc-ads}@anchor{412}
  @section @code{System.Pool_Local} (@code{s-pooloc.ads})
  
  
*************** a list of allocated blocks, so that all
*** 25619,25625 ****
  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})
  
  
--- 25969,25975 ----
  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{413}@anchor{gnat_rm/the_gnat_library system-restrictions-s-restri-ads}@anchor{414}
  @section @code{System.Restrictions} (@code{s-restri.ads})
  
  
*************** compiler determined information on which
*** 25635,25641 ****
  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})
  
  
--- 25985,25991 ----
  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{415}@anchor{gnat_rm/the_gnat_library system-rident-s-rident-ads}@anchor{416}
  @section @code{System.Rident} (@code{s-rident.ads})
  
  
*************** since the necessary instantiation is inc
*** 25651,25657 ****
  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})
  
  
--- 26001,26007 ----
  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{417}@anchor{gnat_rm/the_gnat_library system-strings-stream-ops-s-ststop-ads}@anchor{418}
  @section @code{System.Strings.Stream_Ops} (@code{s-ststop.ads})
  
  
*************** stream attributes are applied to string
*** 25667,25673 ****
  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})
  
  
--- 26017,26023 ----
  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{419}@anchor{gnat_rm/the_gnat_library system-unsigned-types-s-unstyp-ads}@anchor{41a}
  @section @code{System.Unsigned_Types} (@code{s-unstyp.ads})
  
  
*************** also contains some related definitions f
*** 25680,25686 ****
  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})
  
  
--- 26030,26036 ----
  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{41b}@anchor{gnat_rm/the_gnat_library system-wch-cnv-s-wchcnv-ads}@anchor{41c}
  @section @code{System.Wch_Cnv} (@code{s-wchcnv.ads})
  
  
*************** encoding method.  It uses definitions in
*** 25701,25707 ****
  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})
  
  
--- 26051,26057 ----
  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{41d}@anchor{gnat_rm/the_gnat_library system-wch-con-s-wchcon-ads}@anchor{41e}
  @section @code{System.Wch_Con} (@code{s-wchcon.ads})
  
  
*************** in ordinary strings.  These definitions
*** 25713,25719 ****
  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
  
  
--- 26063,26069 ----
  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{41f}@anchor{gnat_rm/interfacing_to_other_languages id1}@anchor{420}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-other-languages}@anchor{11}
  @chapter Interfacing to Other Languages
  
  
*************** provided.
*** 25731,25737 ****
  @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
  
  
--- 26081,26087 ----
  @end menu
  
  @node Interfacing to C,Interfacing to C++,,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id2}@anchor{421}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-c}@anchor{422}
  @section Interfacing to C
  
  
*************** of the length corresponding to the @code
*** 25871,25877 ****
  @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++
  
  
--- 26221,26227 ----
  @end itemize
  
  @node Interfacing to C++,Interfacing to COBOL,Interfacing to C,Interfacing to Other Languages
! @anchor{gnat_rm/interfacing_to_other_languages id3}@anchor{4a}@anchor{gnat_rm/interfacing_to_other_languages id4}@anchor{423}
  @section Interfacing to C++
  
  
*************** builds an opaque @code{Type_Info_Ptr} to
*** 26088,26094 ****
  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
  
  
--- 26438,26444 ----
  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{424}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-cobol}@anchor{425}
  @section Interfacing to COBOL
  
  
*************** Interfacing to COBOL is achieved as desc
*** 26096,26102 ****
  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
  
  
--- 26446,26452 ----
  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{426}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-fortran}@anchor{427}
  @section Interfacing to Fortran
  
  
*************** multi-dimensional array causes the array
*** 26106,26112 ****
  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
  
  
--- 26456,26462 ----
  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{428}@anchor{gnat_rm/interfacing_to_other_languages interfacing-to-non-gnat-ada-code}@anchor{429}
  @section Interfacing to non-GNAT Ada code
  
  
*************** values or simple record types without va
*** 26130,26142 ****
  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
  
  
! Ada 95, Ada 2005, and Ada 2012 define a number of Specialized Needs Annexes, which are not
! required in all implementations.  However, as described in this chapter,
! GNAT implements all of these annexes:
  
  
  @table @asis
--- 26480,26490 ----
  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{42a}@anchor{gnat_rm/specialized_needs_annexes id1}@anchor{42b}@anchor{gnat_rm/specialized_needs_annexes specialized-needs-annexes}@anchor{12}
  @chapter Specialized Needs Annexes
  
  
! Ada 95, Ada 2005, Ada 2012, and Ada 2022 define a number of Specialized Needs Annexes, which are not required in all implementations.  However, as described in this chapter, GNAT implements all of these annexes:
  
  
  @table @asis
*************** The Real-Time Systems Annex is fully imp
*** 26152,26160 ****
  @item `Distributed Systems (Annex E)'
  
  Stub generation is fully implemented in the GNAT compiler.  In addition,
! a complete compatible PCS is available as part of the GLADE system,
! a separate product.  When the two
! products are used in conjunction, this annex is fully implemented.
  
  @item `Information Systems (Annex F)'
  
--- 26500,26507 ----
  @item `Distributed Systems (Annex E)'
  
  Stub generation is fully implemented in the GNAT compiler.  In addition,
! a complete compatible PCS is available as part of @code{PolyORB},
! a separate product. `NB!' See the note in @ref{272,,PolyORB} regarding the lifetime of this product.
  
  @item `Information Systems (Annex F)'
  
*************** The Safety and Security Annex (termed th
*** 26170,26177 ****
  in Ada 2005) is fully implemented.
  @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
  
  
--- 26517,26524 ----
  in Ada 2005) is fully implemented.
  @end table
  
! @node Implementation of Specific Ada Features,Implementation of Ada 2022 Features,Specialized Needs Annexes,Top
! @anchor{gnat_rm/implementation_of_specific_ada_features doc}@anchor{42c}@anchor{gnat_rm/implementation_of_specific_ada_features id1}@anchor{42d}@anchor{gnat_rm/implementation_of_specific_ada_features implementation-of-specific-ada-features}@anchor{13}
  @chapter Implementation of Specific Ada Features
  
  
*************** facilities.
*** 26190,26196 ****
  @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
  
  
--- 26537,26543 ----
  @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{42e}@anchor{gnat_rm/implementation_of_specific_ada_features machine-code-insertions}@anchor{183}
  @section Machine Code Insertions
  
  
*************** according to normal visibility rules. In
*** 26358,26364 ****
  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
  
  
--- 26705,26711 ----
  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{42f}@anchor{gnat_rm/implementation_of_specific_ada_features id3}@anchor{430}
  @section GNAT Implementation of Tasking
  
  
*************** to compliance with the Real-Time Systems
*** 26374,26380 ****
  @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
  
  
--- 26721,26727 ----
  @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{431}@anchor{gnat_rm/implementation_of_specific_ada_features mapping-ada-tasks-onto-the-underlying-kernel-threads}@anchor{432}
  @subsection Mapping Ada Tasks onto the Underlying Kernel Threads
  
  
*************** support this functionality when the pare
*** 26443,26449 ****
  @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
  
  
--- 26790,26796 ----
  @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{433}@anchor{gnat_rm/implementation_of_specific_ada_features id5}@anchor{434}
  @subsection Ensuring Compliance with the Real-Time Annex
  
  
*************** placed at the end.
*** 26494,26500 ****
  @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
  
  
--- 26841,26847 ----
  @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{435}
  @subsection Support for Locking Policies
  
  
*************** then ceiling locking is used.
*** 26528,26534 ****
  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
  
  
--- 26875,26881 ----
  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{436}@anchor{gnat_rm/implementation_of_specific_ada_features id6}@anchor{437}
  @section GNAT Implementation of Shared Passive Packages
  
  
*************** This is used to provide the required loc
*** 26626,26632 ****
  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
  
  
--- 26973,26979 ----
  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{438}@anchor{gnat_rm/implementation_of_specific_ada_features id7}@anchor{439}
  @section Code Generation for Array Aggregates
  
  
*************** component values and static subtypes als
*** 26657,26663 ****
  @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
  
  
--- 27004,27010 ----
  @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{43a}@anchor{gnat_rm/implementation_of_specific_ada_features static-constant-aggregates-with-static-bounds}@anchor{43b}
  @subsection Static constant aggregates with static bounds
  
  
*************** Zero2: constant two_dim := (others => (o
*** 26704,26710 ****
  @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
  
  
--- 27051,27057 ----
  @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{43c}@anchor{gnat_rm/implementation_of_specific_ada_features id9}@anchor{43d}
  @subsection Constant aggregates with unconstrained nominal types
  
  
*************** Cr_Unc : constant One_Unc := (12,24,36);
*** 26719,26725 ****
  @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
  
  
--- 27066,27072 ----
  @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{43e}@anchor{gnat_rm/implementation_of_specific_ada_features id10}@anchor{43f}
  @subsection Aggregates with static bounds
  
  
*************** end loop;
*** 26747,26753 ****
  @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
  
  
--- 27094,27100 ----
  @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{440}@anchor{gnat_rm/implementation_of_specific_ada_features id11}@anchor{441}
  @subsection Aggregates with nonstatic bounds
  
  
*************** have to be applied to sub-arrays individ
*** 26758,26764 ****
  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
  
  
--- 27105,27111 ----
  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{442}@anchor{gnat_rm/implementation_of_specific_ada_features id12}@anchor{443}
  @subsection Aggregates in assignment statements
  
  
*************** a temporary (created either by the front
*** 26800,26806 ****
  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
  
  
--- 27147,27153 ----
  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{444}@anchor{gnat_rm/implementation_of_specific_ada_features the-size-of-discriminated-records-with-default-discriminants}@anchor{445}
  @section The Size of Discriminated Records with Default Discriminants
  
  
*************** say) must be consistent, so it is impera
*** 26880,26886 ****
  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
  
  
--- 27227,27233 ----
  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{446}@anchor{gnat_rm/implementation_of_specific_ada_features image-values-for-nonscalar-types}@anchor{447}
  @section Image Values For Nonscalar Types
  
  
*************** control of image text is required for so
*** 26900,26906 ****
  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
  
  
--- 27247,27253 ----
  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{448}@anchor{gnat_rm/implementation_of_specific_ada_features strict-conformance-to-the-ada-reference-manual}@anchor{449}
  @section Strict Conformance to the Ada Reference Manual
  
  
*************** machines that are not fully compliant wi
*** 26926,26956 ****
  behavior (although at the cost of a significant performance penalty), so
  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
  
  
! @geindex Ada 2012 implementation status
  
! @geindex -gnat12 option (gcc)
  
! @geindex pragma Ada_2012
  
! @geindex configuration pragma Ada_2012
  
! @geindex Ada_2012 configuration pragma
  
! This chapter contains a complete list of Ada 2012 features that have been
! implemented.
! Generally, these features are only
! available if the `-gnat12' (Ada 2012 features enabled) option is set,
! which is the default behavior,
! or if the configuration pragma @code{Ada_2012} is used.
  
! However, new pragmas, attributes, and restrictions are
! unconditionally available, since the Ada 95 standard allows the addition of
! new pragmas, attributes, and restrictions (there are exceptions, which are
  documented in the individual descriptions), and also certain packages
  were made available in earlier versions of Ada.
  
--- 27273,27297 ----
  behavior (although at the cost of a significant performance penalty), so
  infinite and NaN values are properly generated.
  
! @node Implementation of Ada 2022 Features,GNAT language extensions,Implementation of Specific Ada Features,Top
! @anchor{gnat_rm/implementation_of_ada_2022_features doc}@anchor{44a}@anchor{gnat_rm/implementation_of_ada_2022_features id1}@anchor{44b}@anchor{gnat_rm/implementation_of_ada_2022_features implementation-of-ada-2022-features}@anchor{14}
! @chapter Implementation of Ada 2022 Features
  
  
! @geindex Ada 2022 implementation status
  
! @geindex -gnat22 option (gcc)
  
! @geindex pragma Ada_2022
  
! @geindex configuration pragma Ada_2022
  
! @geindex Ada_2022 configuration pragma
  
! This chapter contains a complete list of Ada 2022 features that have been
! implemented. Generally, these features are only available if the `-gnat22' (Ada 2022 features enabled) option is set, or if the configuration pragma @code{Ada_2022} is used.
  
! However, new pragmas, attributes, and restrictions are unconditionally available, since the Ada standard allows the addition of new pragmas, attributes, and restrictions (there are exceptions, which are
  documented in the individual descriptions), and also certain packages
  were made available in earlier versions of Ada.
  
*************** implemented the feature, or implemented
*** 26962,29099 ****
  binding interpretation.
  
  Each feature corresponds to an Ada Issue (‘AI’) approved by the Ada
! standardization group (ISO/IEC JTC1/SC22/WG9) for inclusion in Ada 2012.
! The features are ordered based on the relevant sections of the Ada
! Reference Manual (“RM”).  When a given AI relates to multiple points
! in the RM, the earliest is used.
  
! 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)
  
  
  @itemize *
  
  @item 
! `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
! @code{R} uses the equality operation of @code{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)
  @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)
  
  
  @itemize *
  
  @item 
! `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)
  @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
  
  
--- 27303,30727 ----
  binding interpretation.
  
  Each feature corresponds to an Ada Issue (‘AI’) approved by the Ada
! standardization group (ISO/IEC JTC1/SC22/WG9) for inclusion in Ada 2022.
  
! The section “RM references” lists all modified paragraphs in the Ada 2012 reference manual. The details of each modification as well as a complete description of the AIs may be found in
! @indicateurl{http://www.ada-auth.org/AI12-SUMMARY.HTML}.
  
! @geindex AI12-0001 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0001 Independence and Representation clauses for atomic objects (2019-11-27)'
  
! The compiler accepts packing clauses in all cases, even if they have effectively no influence on the layout. Types, where packing is essentially infeasible are, for instance atomic, aliased and by-reference types.
  
! RM references: 13.02 (6.1/2) 13.02 (7) 13.02 (8) 13.02 (9/3) C.06 (8.1/3)
! C.06 (10) C.06 (11) C.06 (21) C.06 (24)
  @end itemize
  
! @geindex AI12-0003 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0003 Specifying the standard storage pool (2020-06-25)'
  
! Allows the standard storage pool being specified with a @code{Default_Storage_Pool} pragma or aspect.
  
! RM references: 8.02 (11) 13.11.03 (1/3) 13.11.03 (3.1/3) 13.11.03 (4/3)
! 13.11.03 (4.1/3) 13.11.03 (5/3) 13.11.03 (6.2/3) 13.11.03
! (6.3/3)
  @end itemize
  
! @geindex AI12-0004 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0004 Normalization and allowed characters for identifiers (2020-06-11)'
  
! This AI clarifies that Ada identifiers containing characters which are not
! allowed in Normalization Form KC are illegal.
  
! RM references: 2.01 (4.1/3) 2.03 (4/3) A.03.02 (4/3) A.03.02 (32.5/3)
! A.03.05 (18/3) A.03.05 (51/3)
  @end itemize
  
! @geindex AI12-0020 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0020 ‘Image for all types (2020-03-30)'
  
! Put_Image prints out a human-readable representation of an object. The
! functionality in Ada2022 RM is fully implemented except the support for
! types in the @code{Remote_Types} packages.
  
! RM references: 4.10 (0) 3.05 (27.1/2) 3.05 (27.2/2) 3.05 (27.3/2) 3.05
! (27.4/2) 3.05 (27.5/2) 3.05 (27.6/2) 3.05 (27.7/2) 3.05 (28) 3.05
! (29) 3.05 (30/3) 3.05 (31) 3.05 (32) 3.05 (33/3) 3.05 (37.1/2)
! 3.05 (38) 3.05 (39) 3.05 (43/3) 3.05 (55/3) 3.05 (55.1/5) 3.05
! (55.2/4) 3.05 (55.3/4) 3.05 (55.4/4) 3.05 (59) H.04 (23) H.04 (23.8/2)
  @end itemize
  
! @geindex AI12-0022 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0022 Raise_Expressions (2013-01-27)'
  
! This feature allows you to write “raise NAME [with STRING]” in an
! expression to rise given exception. It is particularly useful in the case of
! assertions such as preconditions allowing to specify which exception a
! precondition raises if it fails.
  
! RM references: 4.04 (3/3) 11.02 (6) 11.03 (2/2) 11.03 (3) 11.03 (3.1/2)
! 11.03 (4/2) 11.04.01 (10.1/3)
  @end itemize
  
! @geindex AI12-0027 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0027 Access values should never designate unaliased components (2020-06-15)'
  
! AI12-0027 adds a requirement for a value conversion that converts from an array of unaliased components to an array of aliased components to make a copy. It defines such conversions to have a local accessibility, effectively preventing the possibility of unsafe accesses to unaliased components.
  
! RM references: 4.06 (24.17/3) 4.06 (24.21/2) 4.06 (58) 6.02 (10/3) 3.10.02 (10/3)
  @end itemize
  
! @geindex AI12-0028 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0028 Import of variadic C functions (2020-03-03)'
  
! Ada programs can now properly call variadic C functions by means of the
! conventions C_Variadic_<n>, for small integer values <n>.
  
! RM references: B.03 (1/3) B.03 (60.15/3) B.03 (75)
  @end itemize
  
! @geindex AI12-0030 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0030 Formal derived types and stream attribute availability (2020-08-21)'
  
! Corner cases involving streaming operations for formal derived limited types
! that are now defined to raise Program_Error. Before, behavior in these cases
! was undefined. Stream attribute availability is more precisely computed in cases where a derived type declaration occurs ahead of a streaming attribute specification for the parent type.
  
! RM references: 12.05.01 (21/3) 13.13.02 (49/2)
  @end itemize
  
! @geindex AI12-0031 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0031 All_Calls_Remote and indirect calls (0000-00-00)'
  
! Remote indirect calls (i.e., calls through a remote access-to-subprogram type)
! behave the same as remote direct calls.
  
! RM references: E.02.03 (19/3)
  @end itemize
  
! @geindex AI12-0032 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0032 Questions on ‘Old (2020-04-24)'
  
! AI12-0032 resolves several issues related to the ‘Old attribute. The GNAT
! compiler already implemented what the AI requires in most of those cases, but two having to do with static and dynamic checking of the accessibility level of the constant object implicitly declared for an ‘Old attribute reference were not yet implemented. Accessibility checking for these constants is now implemented as defined in the AI.
  
! RM references: 4.01.03 (9/3) 6.01.01 (22/3) 6.01.01 (26/3) 6.01.01 (35/3)
  @end itemize
  
! @geindex AI12-0033 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0033 Sets of CPUs when defining dispatching domains (0000-00-00)'
  
! The set of CPUs associated with a dispatching domain is no longer required
! to be a contiguous range of CPU values.
  
! RM references: D.16.01 (7/3) D.16.01 (9/3) D.16.01 (20/3) D.16.01 (23/3)
! D.16.01 (24/3) D.16.01 (26/3)
  @end itemize
  
! @geindex AI12-0035 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0035 Accessibility checks for indefinite elements of containers (0000-00-00)'
  
! If the element type for an instance of one of the indefinite container generics has an access discriminant, then accessibility checks (at run-time) prevent inserting a value into a container object if the value’s discriminant designates an object that is too short-lived (that is, if the designated object has an accessibility level that is deeper than that of the instance). Without this check, dangling references would be possible. GNAT handled this correctly already before this AI was issued.
  
! RM references: A.18 (5/3) A.18.11 (8/2) A.18.12 (7/2) A.18.13 (8/2)
! A.18.14 (8/2) A.18.15 (4/2) A.18.16 (4/2) A.18.17 (7/3) A.18.18
! (39/3) A.18.18 (47/3)
  @end itemize
  
! @geindex AI12-0036 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0036 The actual for an untagged formal derived type cannot be tagged (2019-10-21)'
  
! AI12-0036 is a binding interpretation that adds the following legality rule:
! The actual type for a formal derived type shall be tagged if and only if the
! formal derived type is a private extension. The check is implemented for all Ada dialects, not just Ada 2022.
  
! RM references: 12.05.01 (5.1/3)
  @end itemize
  
! @geindex AI12-0037 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0037 New types in Ada.Locales can’t be converted to/from strings (2016-09-10)'
  
! The type definitions for Language_Code and Country_Code are now using dynamic
! predicates.
  
! RM references: A.19 (4/3)
  @end itemize
  
! @geindex AI12-0039 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0039 Ambiguity in syntax for membership expression removed (0000-00-00)'
  
! An ambiguity in the syntax for membership expressions was resolved. For example, “A in B and C” can be parsed in only one way because of this AI.
  
! RM references: 4.04 (3/3) 4.04 (3.2/3) 4.05.02 (3.1/3) 4.05.02 (4) 4.05.02
! (4.1/3) 4.05.02 (27/3) 4.05.02 (27.1/3) 4.05.02 (28.1/3) 4.05.02
! (28.2/3) 4.05.02 (29/3) 4.05.02 (30/3) 4.05.02 (30.1/3) 4.05.02
! (30.2/3) 4.05.02 (30.3/3) 4.09 (11/3) 4.09 (32.6/3) 8.06 (27.1/3)
! 3.02.04 (17/3)
  @end itemize
  
! @geindex AI12-0040 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0040 Resolving the selecting_expression of a case_expression (0000-00-00)'
  
! The definition of “complete context” is corrected so that selectors of case expressions
! and of case statements are treated uniformly.
  
! RM references: 8.06 (9)
  @end itemize
  
! @geindex AI12-0041 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0041 Type_Invariant’Class for interface types (2016-12-12)'
  
! Subprogram calls within class-wide type invariant expressions get resolved
! as primitive operations instead of being dynamically dispatched.
  
! RM references: 7.03.02 (1/3) 7.03.02 (3/3)
  @end itemize
  
! @geindex AI12-0042 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0042 Type invariant checking rules (2020-06-05)'
  
! AI12-0042 adds rules for type invariants.
! Specifically, when inheriting a private dispatching operation when the ancestor operation is visible at the point of the type extension, the operation must be abstract or else overridden. In addition, for a class-wide view conversion from an object of a specific type T to which a type invariant applies, an invariant check is performed when the conversion is within the immediate scope of T.
  
! RM references: 7.03.02 (6/3) 7.03.02 (17/3) 7.03.02 (18/3) 7.03.02 (19/3)
! 7.03.02 (20/3)
  @end itemize
  
! @geindex AI12-0043 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0043 Details of the storage pool used when Storage_Size is specified (0000-00-00)'
  
! Clarify that a Storage_Size specification for an access type specifies both an upper bound and a lower bound (not just a lower bound) of the amount of storage allowed for allocated objects.
  
! RM references: 13.11 (18)
  @end itemize
  
! @geindex AI12-0044 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0044 Calling visible functions from type invariant expressions (2020-05-11)'
  
! AI05-0289-1 extends invariant checking to @cite{in} parameters. However, this makes
! it impossible to call a public function of the type from an invariant
! expression, as that public function will attempt to check the invariant,
! resulting in an infinite recursion.
  
! This AI specifies, that type-invariant checking is performed on parameters
! of mode @cite{in} upon return from procedure calls, but not of @cite{in}-mode
! parameters in functions.
! 
! RM references: 7.03.02 (19/3)
  @end itemize
  
! @geindex AI12-0045 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0045 Pre- and Postconditions are allowed on generic subprograms (2015-03-17)'
  
! The SPARK toolset now supports contracts on generic subprograms, packages and
! their respective bodies.
  
! RM references: 6.01.01 (1/3)
  @end itemize
  
! @geindex AI12-0046 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0046 Enforcing legality for anonymous access components in record aggregates (0000-00-00)'
  
! For a record aggregate of the form (X | Y => ….), any relevant legality rules are checked for both for X and Y.
  
! For example,
! 
! @example
! X : aliased constant String := ... ;
! type R is record
!   F1 : access constant String;
!   F2 : access String;
! end record;
! Obj : R := (F1 | F2 => X'Access); -- ok for F1, but illegal for F2
! @end example
! 
! RM references: 4.03.01 (16/3)
  @end itemize
  
! @geindex AI12-0047 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0047 Generalized iterators and discriminant-dependent components (0000-00-00)'
  
! Iterating over the elements of an array is subject to the same legality checks as renaming the array. For example, if an assignment to an enclosing discriminated object could cause an array object to cease to exist then we don’t allow renaming the array. So it is similarly not allowed to iterate over the elements of such an array.
  
! RM references: 5.05.02 (6/3)
  @end itemize
  
! @geindex AI12-0048 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0048 Default behavior of tasks on a multiprocessor with a specified dispatching policy (0000-00-00)'
  
! Clarify that if the user does not impose requirements about what CPUs a given task might execute on, then the implementation does not get to impose such requirements. This avoids potential problems with priority inversion.
  
! RM references: D.16.01 (30/3)
  @end itemize
  
! @geindex AI12-0049 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0049 Invariants need to be checked on the initialization of deferred constants (0000-00-00)'
  
! Invariant checking for deferred constants (and subcomponents thereof) is performed. Corrects a clear oversight in the previous RM wording.
  
! RM references: 7.03.02 (10/3)
  @end itemize
  
! @geindex AI12-0050 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0050 Conformance of quantified expressions (2016-07-22)'
  
! Compiler rejects a subprogram body when an expression for a boolean formal
! parameter includes a quantified expression, and the subprogram declaration
! contains a textual copy of the same.
  
! RM references: 6.03.01 (20) 6.03.01 (21)
  @end itemize
  
! @geindex AI12-0051 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0051 The Priority aspect can be specified when Attach_Handler is specified (0000-00-00)'
  
! Previous RM wording had two contradictory rules for determining (in some cases) the priority of a protected subprogram that is attached to an interrupt. The AI clarifies which one of the rules takes precedence.
  
! RM references: D.03 (10/3)
  @end itemize
  
! @geindex AI12-0052 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0052 Implicit objects are considered overlapping (0000-00-00)'
  
! Clarify that the rules about unsynchronized concurrent access apply as one would expect in the case of predefined routines that access Text_IO’s default input and default output files. There was no compiler changes needed to implement this.
  
! RM references: A (3/2) A.10.03 (21)
  @end itemize
  
! @geindex AI12-0054-2 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0054-2 Aspect Predicate_Failure (0000-00-00)'
  
! New aspect Predicate_Failure is defined.  A solution for the problem that a predicate like
  
! @example
! subtype Open_File is File with Dynamic_Predicate =\> Is_Open (Open_File) or else (raise File_Not_Open);
! @end example
! 
! does the wrong thing in the case of a membership test.
! 
! RM references: 3.02.04 (14/3) 3.02.04 (31/3) 3.02.04 (35/3)
  @end itemize
  
! @geindex AI12-0055 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0055 All properties of a usage profile are defined by pragmas (2020-06-09)'
  
! AI12-0055 allows the use of the No_Dynamic_CPU_Assignment restriction in pragmas Restrictions and Restrictions_Warnings.
  
! RM references: D.07 (10/3) D.13 (6/3) D.13 (8/3) D.13 (10/3)
  @end itemize
  
! @geindex AI12-0059 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0059 Object_Size attribute (2019-12-02)'
  
! AI12-0059 brings GNAT-defined attribute Object_Size to Ada standard
! and clarifies its semantics. Given that the attribute already existed in
! GNAT compiler, the feature is supported for all language versions.
  
! RM references: 4.09.01 (2/3) 13.01 (14) 13.01 (23) 13.03 (9/3) 13.03
! (50/2) 13.03 (51) 13.03 (52) 13.03 (58)
  @end itemize
  
! @geindex AI12-0061 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0061 Iterated component associations in array aggregates (2016-09-01)'
  
! Ada issue AI12-061 introduces a new construct in array aggregates allowing
! component associations to be parameterized by a loop variable, for example:
  
! @example
! Array (1 .. 10) of Integer :=
!   (for I in 1 .. 10 => I ** 2);
! type Matrix is
! array
!   (Positive range <>, Positive range <>) of Float;
! G : constant Matrix
! :=
!   (for I in 1 .. 4 =>
!       (for J in 1 .. 4 =>
!           (if I=J then
! 1.0 else 0.0))); -- Identity matrix
! @end example
! 
! The expression in such an association can also be a function that returns a
! limited type, and the range can be specified by the ‘others’ choice.
! 
! RM references: 4.03.03 (5/2) 4.03.03 (6) 4.03.03 (17/3) 4.03.03 (20)
! 4.03.03 (23.1/4) 4.03.03 (32/3) 4.03.03 (43) 3.01 (6/3) 3.03 (6)
! 3.03 (18.1/3) 3.03.01 (23/3) 5.05 (6) 8.01 (2.1/4)
  @end itemize
  
! @geindex AI12-0062 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0062 Raise exception with failing string function (0000-00-00)'
  
! Clarify that if raising exception E1 is accompanied with a String-valued
! expression whose evaluation raises exception E2, then E2 is what gets propagated.
  
! RM references: 11.03 (4/2)
  @end itemize
  
! @geindex AI12-0065 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0065 Descendants of incomplete views (0000-00-00)'
  
! This AI is a clarification of potentially confusing wording.  GNAT correctly handles the example given in AARM 7.3.1(5.b-5.d), which illustrates the topic of this AI.
  
! RM references: 7.03.01 (5.2/3)
  @end itemize
  
! @geindex AI12-0067 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0067 Accessibility level of explicitly aliased parameters of procedures and entries (0000-00-00)'
  
! The AI fixes a case where the intent was fairly obvious but the RM wording failed to mention a case (with the result that the accessibility level of an explicitly aliased parameter of a procedure or entry was undefined even though the intent was clear).
  
! RM references: 3.10.02 (7/3)
  @end itemize
  
! @geindex AI12-0068 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0068 Predicates and the current instance of a subtype (2020-05-06)'
  
! AI12-0068 is a binding interpretation that defines the current instance name in a type or subtype aspect to be a value rather than an object. This affects
! attributes whose prefix is a current instance in predicates, type invariants, and @code{Default_Initial_Condition} aspects. In particular, in the case of the @code{Constrained} attribute the value will always be True, and formerly legal attributes that require an object as their prefix (such as @code{Size}, @code{Access}, @code{Address}, etc.) are illegal when applied to a current instance in type and subtype aspects.
  
! RM references: 8.06 (17/3)
  @end itemize
  
! @geindex AI12-0069 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0069 Inconsistency in Tree container definition (0000-00-00)'
  
! The description of how iteration over a Tree container’s elements was contradictory in some cases regarding whether a cursor designating the Root node is included in the iteration. This contradiction was resolved. In the “!ACATS Test” section of the AI, it says that if an implementation were to get this wrong then almost any attempt to iterate over any tree would fail at runtime.
  
! RM references: A.18.10 (153/3) A.18.10 (155/3) A.18.10 (157/3) A.18.10 (159/3)
  @end itemize
  
! @geindex AI12-0070 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0070 9.3(2) does not work for anonymous access types (0000-00-00)'
  
! The RM contained some old wording about the master of an allocated object that only made sense for named access types. The AI clarifies the wording to clearly state the scope of validity and ensures that the paragraph does not contradict 3.10.2’s rules for anonymous access  types.
  
! RM references: 3.10.02 (13.1/3) 9.03 (2)
  @end itemize
  
! @geindex AI12-0071 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0071 Order of evaluation when multiple predicates apply (2015-08-10)'
  
! AI12-0071 specifies the semantics of multiple/inherited predicates on a
! single subtype.
  
! RM references: 3.02.04 (4/3) 3.02.04 (6/3) 3.02.04 (30/3) 3.02.04 (31/3)
! 3.02.04 (32/3) 3.02.04 (33/3) 3.02.04 (35/3) 3.05.05 (7.1/3)
! 3.05.05 (7.2/3) 3.05.05 (7.3/3) 3.08.01 (10.1/3) 3.08.01 (15/3)
! 4.05.02 (29/3) 4.05.02 (30/3) 4.06 (51/3) 4.09.01 (10/3) 5.04
! (7/3) 5.05 (9/3) 13.09.02 (3/3) 13.09.02 (12)
  @end itemize
  
! @geindex AI12-0072 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0072 Missing rules for Discard_Names aspect (0000-00-00)'
  
! Clarify that Discard_Names is an aspect, not just a pragma.
  
! RM references: C.05 (1) C.05 (5) C.05 (7/2) C.05 (8)
  @end itemize
  
! @geindex AI12-0073 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0073 Synchronous Barriers are not allowed with Ravenscar (2020-02-24)'
  
! Ada 2022 adds (as a binding interpretation) a @code{No_Dependence =>
! Ada.Synchronous_Barriers} restriction to the Ravenscar profile.
  
! RM references: D.13 (6/3)
  @end itemize
  
! @geindex AI12-0074 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0074 View conversions and out parameters passed by copy (2020-03-26)'
  
! This Ada 2022 AI makes illegal some cases of out parameters whose type has a
! @code{Default_Value} aspect.
  
! RM references: 4.06 (56) 6.04.01 (6.25/3) 6.04.01 (13.1/3)
  @end itemize
  
! @geindex AI12-0075 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0075 Static expression functions (2020-04-13)'
  
! Ada 2022 defines a new aspect @code{Static} that can be specified on expression
! functions. Such an expression function can be called in contexts requiring static expressions when the actual parameters are all static, allowing for greater abstraction in complex static expressions.
  
! RM references: 4.09 (21) 6.08 (3/4) 6.08 (5/4) 6.08 (6/4) 7.03.02 (8.2/5)
! 7.03.02 (15/4) 7.03.02 (16/4) 7.03.02 (17/4) 7.03.02 (19/4)
! 7.03.02 (20/5)
  @end itemize
  
! @geindex AI12-0076 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0076 Variable state in pure packages (0000-00-00)'
  
! Defines an obscure constant-modifying construct to be erroneous. The issue is that the current instance of a type is a variable object, so the following is legal:
  
! @example
!   type T;
!   type T_Ref (Access_To_Variable : access T) is null record;
!   type T is limited record
!      Self : T_Ref (T'Access);
!      Int : Integer;
!   end record;
! 
!   Obj : constant T := (Self => <>, Int => 123);
! begin
!   Obj.Self.Access_To_Variable.Int := 456; -- modifying a component of a constant
! @end example
! 
! In cases where constancy is really needed (e.g., for an object declared in a Pure context), such a case needs to be erroneous.
! 
! RM references: 10.02.01 (17/3) E.02.02 (17/2)
  @end itemize
  
! @geindex AI12-0077 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0077 Has_Same_Storage on objects of size zero (2020-03-30)'
  
! This binding interpretation requires the Has_Same_Storage attribute
! to return always @cite{false} for objects that have a size of zero.
  
! RM references: 13.03 (73.4/3)
  @end itemize
  
! @geindex AI12-0078 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0078 Definition of node for tree container is confusing (0000-00-00)'
  
! Clarifies the expected behavior in processing tree containers.
  
! RM references: A.18.10 (2/3) A.18.10 (3/3)
  @end itemize
  
! @geindex AI12-0081 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0081 Real-time aspects need to specify when they are evaluated (0000-00-00)'
  
! Clarify the point at which Priority and Interrupt_Priority aspect expressions are evaluated.
  
! RM references: D.01 (17/3) D.16 (9/3)
  @end itemize
  
! @geindex AI12-0084 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0084 Box expressions in array aggregates (2014-12-15)'
  
! This AI addresses an issue where compiler used to fail to initialize
! components of a multidimensional aggregates with box initialization when
! scalar components have a specified default value. The AI clarifies that
! in an array aggregate with box (i.e., @code{<>}) component values, the
! @code{Default_Component_Value} of the array type (if any) should not be ignored.
  
! RM references: 4.03.03 (23.1/2)
  @end itemize
  
! @geindex AI12-0085 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0085 Missing aspect cases for Remote_Types (0000-00-00)'
  
! A distributed systems annex (Annex E) clarification. Aspect specifications
! that are forbidden using attribute definition clause syntax are also forbidden
! using aspect_specification syntax.
  
! RM references: E.02.02 (17/2)
  @end itemize
  
! @geindex AI12-0086 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0086 Aggregates and variant parts (2019-08-14)'
  
! In Ada 2012, a discriminant value that governs an active variant part in an
! aggregate had to be static. AI12-0086 relaxes this restriction: If the subtype of the discriminant value is a static subtype all of whose values select the same variant, then the expression for the discriminant is allowed to be nonstatic.
  
! RM references: 4.03.01 (17/3) 4.03.01 (19/3)
  @end itemize
  
! @geindex AI12-0088 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0088 UTF_Encoding.Conversions and overlong characters on input (0000-00-00)'
  
! Clarify that overlong characters are acceptable on input even if we never generate them as output.
  
! RM references: A.04.11 (54/3) A.04.11 (55/3)
  @end itemize
  
! @geindex AI12-0089 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0089 Accessibility rules need to take into account that a generic function is not a (0000-00-00)'
  
! Fix cases in RM wording where the accessibility rules for a function failed to take into account the fact that a generic function is not a function. For example, a generic function with an explicitly aliased parameter should be able to return references to that parameter in the same ways that a (non-generic) function can. The previous wording did not allow that.
  
! RM references: 3.10.02 (7/3) 3.10.02 (19.2/3) 3.10.02 (19.3/3) 6.05 (4/3)
  @end itemize
  
! @geindex AI12-0093 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0093 Iterator with indefinite cursor (0000-00-00)'
  
! A clarification that confirms what GNAT is already doing.
  
! RM references: 5.05.02 (8/3) 5.05.02 (10/3)
  @end itemize
  
! @geindex AI12-0094 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0094 An access_definition should be a declarative region (0000-00-00)'
  
! Fixes wording omission in the RM, confirming that the behaviour of GNAT is
! correct.
  
! RM references: 8.03 (2) 8.03 (26/3)
  @end itemize
  
! @geindex AI12-0095 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0095 Generic formal types and constrained partial views (0000-00-00)'
  
! Deciding whether an actual parameter corresponding to an explicitly aliased formal parameter is legal depends on (among other things) whether the parameter type has a constrained partial view. The AI clarifies how this compile-time checking works in the case of a generic formal type (assume the best in the spec and recheck each instance, assume the worst in a generic body).
  
! RM references: 3.10.02 (27.2/3) 4.06 (24.16/2) 6.04.01 (6.2/3) 12.05.01 (15)
  @end itemize
  
! @geindex AI12-0096 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0096 The exception raised when a subtype conversion fails a predicate check (0000-00-00)'
  
! Clarify that the Predicate_Failure aspect works the same in a subtype conversion as in any other context.
  
! RM references: 4.06 (57/3)
  @end itemize
  
! @geindex AI12-0097 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0097 Tag of the return object of a simple return expression (0000-00-00)'
  
! Clarify wording about the tag of a function result in the case of a simple (i.e. not extended) return statement in a function with a class-wide result type.
  
! RM references: 6.05 (8/3)
  @end itemize
  
! @geindex AI12-0098 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0098 Problematic examples for ATC (0000-00-00)'
  
! The AI clarifies reference manual examples, there is no compiler impact.
  
! RM references: 9.07.04 (13)
  @end itemize
  
! @geindex AI12-0099 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0099 Wording problems with predicates (2020-05-04)'
  
! When extending a task or protected type from an ancestor interface subtype with  a predicate, a link error can occur due to the compiler failing to generate the predicate-checking function. This AI clarifies the requirement for such predicate inheritance for concurrent types.
  
! RM references: 3.02.04 (4/4) 3.02.04 (12/3) 3.02.04 (20/3)
  @end itemize
  
! @geindex AI12-0100 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0100 A qualified expression makes a predicate check (2020-02-17)'
  
! The compiler now enforces predicate checks on qualified expressions when the
! qualifying subtype imposes a predicate.
  
! RM references: 4.07 (4)
  @end itemize
  
! @geindex AI12-0101 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0101 Incompatibility of hidden untagged record equality (2019-10-31)'
  
! AI12-0101 is a binding interpretation that removes a legality rule that
! prohibited the declaration of a primitive equality function for a private type in the private part of its enclosing package (either before or after the completion of the type) when the type is completed as an untagged record type. Such declarations are now accepted in Ada 2012 and later Ada versions.
  
! As a consequence of this work, some cases where the implementation of AI05-0123 was incomplete were corrected.
! More specifically, if a user-defined equality operator is present for an untagged record type in an Ada 2012 program, that user-defined equality operator will be (correctly) executed in some difficult-to-characterize cases where the predefined component-by-component comparison was previously being (incorrectly) executed. This can arise, for example, in the case of the predefined equality operation for an enclosing composite type that has a component of the user-defined primitive equality op’s operand type.
! This correction means that the impact of this change is not limited solely to code that was previously rejected at compile time.
! 
! RM references: 4.05.02 (9.8/3)
  @end itemize
  
! @geindex AI12-0102 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0102 Stream_IO.File_Type has Preelaborable_Initialization (0000-00-00)'
  
! Modifies the declaration of one type in a predefined package. GNAT’s version of @code{Ada.Streams.Stream_IO} already had this modification (the @code{Preelaborable__Initialization} pragma).
  
! RM references: A.12.01 (5)
! @end itemize
  
! @geindex AI12-0103 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0103 Expression functions that are completions in package specifications (0000-00-00)'
! 
! Clarifies that expression functions that are completions do not cause “general”  freeze-everybody-in-sight freezing like a subprogram body.
! 
! RM references: 13.14 (3/3) 13.14 (5/3)
  @end itemize
  
! @geindex AI12-0104 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0104 Overriding an aspect is undefined (0000-00-00)'
  
! A clarification of the wording in RM, no compiler impact.
  
! RM references: 4.01.06 (4/3) 4.01.06 (17/3)
  @end itemize
  
! @geindex AI12-0105 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0105 Pre and Post are not allowed on any subprogram completion (0000-00-00)'
  
! Language-defined aspects (e.g., @code{Post}) cannot be specified as part of the completion of  a subprogram declaration. Fix a hole in the RM wording to clarify that this general rule applies even in the special cases where the completion is either an expression function or a null procedure.
  
! RM references: 13.01.01 (18/3)
  @end itemize
  
! @geindex AI12-0106 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0106 Write’Class aspect (0000-00-00)'
  
! Clarify that the syntax used in an ACATS test BDD2005 for specifying a class-wide streaming aspect is correct.
  
! RM references: 13.01.01 (28/3) 13.13.02 (38/3)
  @end itemize
  
! @geindex AI12-0107 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0107 A prefixed view of a By_Protected_Procedure interface has convention protected (2020-06-05)'
  
! A prefixed view of a subprogram with aspect Synchronization set to
! By_Protected_Procedure has convention protected.
  
! RM references: 6.03.01 (10.1/2) 6.03.01 (12) 6.03.01 (13)
  @end itemize
  
! @geindex AI12-0109 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0109 Representation of untagged derived types (2019-11-12)'
  
! Ada disallows a nonconforming specification of a type-related representation
! aspect of an untagged by-reference type. The motivation for this rule is to ensure that a parent type and a later type derived from the parent agree with respect to such aspects. AI12-0109 disallows a construct that otherwise could be used to get around this rule: an aspect specification for the parent type that occurs after the declaration of the derived type.
  
! RM references: 13.01 (10/3)
  @end itemize
  
! @geindex AI12-0110 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0110 Tampering checks are performed first (2020-04-14)'
  
! AI12-0110 requires tampering checks in the containers library to be
! performed first, before any other checks.
  
! RM references: A.18.02 (97.1/3) A.18.03 (69.1/3) A.18.04 (15.1/3) A.18.07
! (14.1/3) A.18.10 (90/3) A.18.18 (35/3)
  @end itemize
  
! @geindex AI12-0112 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0112 Contracts for container operations (0000-00-00)'
  
! A representation change replacing english descriptions of contracts for
! operations on predefined container types with pre/post-conditions. No compiler
! impact.
  
! RM references: A.18.02 (99/3) 11.04.02 (23.1/3) 11.05 (23) 11.05 (26) A
! (4) A.18 (10)
  @end itemize
  
! @geindex AI12-0114 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0114 Overlapping objects designated by access parameters are not thread-safe (0000-00-00)'
  
! There are rules saying that concurrent calls to predefined subprograms don’t interfere with each other unless actual parameters overlap. The AI clarifies that such an interference is also possible if overlapping objects are reachable via access dereferencing from actual parameters of the two calls.
  
! RM references: A (3/2)
  @end itemize
  
! @geindex AI12-0116 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0116 Private types and predicates (0000-00-00)'
  
! Clarify that the same aspect cannot be specified twice for the same type. @code{Dynamic_Predicate}, for example, can be specified on either the partial view of a type or on the completion in the private part, but not on both.
  
! RM references: 13.01 (9/3) 13.01 (9.1/3)
  @end itemize
  
! @geindex AI12-0117 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0117 Restriction No_Tasks_Unassigned_To_CPU (2020-06-12)'
  
! This AI adds a restriction No_Tasks_Unassigned_To_CPU to provide safe
! use of Ravenscar.
  
! The CPU aspect is specified for the environment task. No CPU aspect is
! specified to be statically equal to @code{Not_A_Specific_CPU}. If aspect CPU
! is specified (dynamically) to the value @code{Not_A_Specific_CPU}, then
! Program_Error is raised. If Set_CPU or @code{Delay_Until_And_Set_CPU} are called
! with the CPU parameter equal to @code{Not_A_Specific_CPU}, then @code{Program_Error} is raised.
! 
! RM references: D.07 (10.8/3)
  @end itemize
  
! @geindex AI12-0120 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0120 Legality and exceptions of generalized loop iteration (0000-00-00)'
  
! Clarify that the expansion-based definition of generalized loop iteration
! includes legality checking. If the expansion would be illegal (for example,
! because of passing a constant actual parameter in a call when the mode of
! the corresponding formal parameter is in-out), then the loop is illegal too.
  
! RM references: 5.05.02 (6.1/4) 5.05.02 (10/3) 5.05.02 (13/3)
! @end itemize
  
! @geindex AI12-0121 (Ada 2022 feature)
  
! 
! @itemize *
! 
! @item 
! `AI12-0121 Stream-oriented aspects (0000-00-00)'
! 
! Clarify that streaming-oriented aspects (e.g., Read) can be specified using
! aspect_specification syntax, not just via an attribute definition clause.
! 
! RM references: 13.13.02 (38/3)
  @end itemize
  
! @geindex AI12-0124 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0124 Add Object’Image (2017-03-24)'
  
! The corrigendum of Ada 2012 extends attribute @code{'Image following} the syntax for the GNAT @code{'Img} attribute. This AI fixes a gap in the earlier implementation, which did not recognize function calls and attributes that are functions as valid object prefixes.
  
! RM references: 3.05 (55/3)
  @end itemize
  
! @geindex AI12-0125-3 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0125-3 Add @@ as an abbreviation for the LHS of an assignment (2016-11-11)'
  
! This AI introduces the use of the character ‘@@’ as an abbreviation for the left-hand side of an assignment statement, usable anywhere within the expression on the right-hand side. To use this feature the compilation flag -gnat2022 must be specified.
  
! RM references: 5.02.01 (0) 2.02 (9) 3.03 (21.1/3) 4.01 (2/3) 8.06 (9/4)
  @end itemize
  
! @geindex AI12-0127 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0127 Partial aggregate notation (2016-10-12)'
  
! This AI describes a new constructor for aggregates, in terms of an existing record or array object, and a series of component-wise modifications of its value, given by named associations for the modified components. To use this feature the compilation flag @code{-gnat2022} must be specified.
  
! RM references: 4.03 (2) 4.03 (3/2) 4.03 (4) 4.03.01 (9) 4.03.01 (15/3)
! 4.03.01 (16/4) 4.03.01 (17/5) 4.03.01 (17.1/2) 4.03.03 (4) 4.03.03
! (14) 4.03.03 (17/5) 4.03.04 (0) 7.05 (2.6/2)
  @end itemize
  
! @geindex AI12-0128 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0128 Exact size access to parts of composite atomic objects (2019-11-24)'
  
! According to this AI, the compiler generates full access to atomic composite objects even if the access is only partial in the source code. To use this feature the compilation flag @code{-gnat2022} must be specified.
  
! RM references: C.06 (13.2/3) C.06 (19) C.06 (20) C.06 (22/2) C.06 (25/4)
  @end itemize
  
! @geindex AI12-0129 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0129 Make protected objects more protecting (2020-07-01)'
  
! A new aspect Exclusive_Functions has been added to the language to force the
! use of read/write locks on protected functions when needed.
  
! RM references: 9.05.01 (2) 9.05.01 (4) 9.05.01 (5) 9.05.01 (7) 9.05.03
! (15) 9.05.03 (23)
  @end itemize
  
! @geindex AI12-0130 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0130 All I/O packages should have Flush (2016-07-03)'
  
! The Flush routine has been added for the @code{Sequential_IO} and @code{Direct_IO} standard packages in the Ada 2012 COR.1:2016. The Flush routine here is equivalent to the one found in @code{Text_IO}. The @code{Flush} procedure synchronizes the external file with the internal file (by flushing any internal buffers) without closing the file.
  
! RM references: A.08.01 (10) A.08.02 (28/3) A.08.04 (10) A.10.03 (21)
! A.12.01 (28/2) A.12.01 (28.6/1)
  @end itemize
  
! @geindex AI12-0131 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0131 Inherited Pre’Class when unspecified on initial subprogram (0000-00-00)'
  
! If T1 is a tagged type with a primitive P that has no class-wide precondition,
! and if T2 is an extension of T1 which overrides the inherited primitive P, then that overriding P is not allowed to have a class-wide precondition. Allowing it would be ineffective except in corner cases where it would be confusing.
  
! RM references: 6.01.01 (17/3) 6.01.01 (18/3)
  @end itemize
  
! @geindex AI12-0132 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0132 Freezing of renames-as-body (2020-06-13)'
  
! This AI clarifies that a renames-as-body freezes the expression of any
! expression function that it renames.
  
! RM references: 13.14 (5/3)
  @end itemize
  
! @geindex AI12-0133 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0133 Type invariants and default initialized objects (0000-00-00)'
  
! Clarify that invariant checking for a default-initialized object is performed regardless of where the object is declared (in particular, even when the full view of the type is visible).
  
! RM references: 7.03.02 (10.3/3)
  @end itemize
  
! @geindex AI12-0135 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0135 Enumeration types should be eligible for convention C (0000-00-00)'
  
! Ada previously allowed but did not require supporting specifying convention C for an enumeration type. Now it is required that an implementation shall support it.
! 
! RM references: B.01 (14/3) B.01 (41/3) B.03 (65)
! @end itemize
! 
! @geindex AI12-0136 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0136 Language-defined packages and aspect Default_Storage_Pool (0000-00-00)'
! 
! Clarify that the effect of specifying Default_Storage_Pool for an instance of a predefined generic is implementation-defined. No compiler impact.
! 
! RM references: 13.11.03 (5/3)
! @end itemize
! 
! @geindex AI12-0137 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0137 Incomplete views and access to class-wide types (0000-00-00)'
! 
! If the designated type of an access type is incomplete when the access type is declared, then we have rules about whether we get a complete view when a value of the access type is dereferenced. Clarify that analogous rules apply if the designated type is class-wide.
! 
! RM references: 3.10.01 (2.1/2)
! @end itemize
! 
! @geindex AI12-0138 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0138 Iterators of formal derived types (2021-02-11)'
! 
! AI12-0138 specifies the legality rules for confirming specifications of
! nonoverridable aspects. This completes the legality checks for aspect @code{Implicit_Dereference} and simplifies the checks for those aspects that are inherited operations.
! 
! RM references: 13.01.01 (18/4) 13.01.01 (34/3) 4.01.05 (6/3) 4.01.06 (5/3)
! 4.01.06 (6/3) 4.01.06 (7/3) 4.01.06 (8/3) 4.01.06 (9/3) 5.05.01 (11/3)
! @end itemize
! 
! @geindex AI12-0140 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0140 Access to unconstrained partial view when full view is constrained (0000-00-00)'
! 
! Clarify some confusion about about whether what matters when checking whether designated subtypes statically match is the view of the designated type that is currently available v.s. the view that was available when the access type was declared.
! 
! RM references: 3.02 (7/2) 7.03.01 (5/1)
! @end itemize
! 
! @geindex AI12-0143 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0143 Using an entry index of a family in a precondition (2022-04-05)'
! 
! Ada 2022 adds the @code{Index} attribute, which allows the use of the entry family index of an entry call within preconditions and post-conditions.
! 
! RM references: 6.01.01 (30/3) 9.05.04 (5/3)
! @end itemize
! 
! @geindex AI12-0144 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0144 Make Discrete_Random more flexible (2020-01-31)'
! 
! A new function Random with First/Last parameters is provided in the
! @code{Ada.Numerics.Discrete_Random} package.
! 
! RM references: A.05.02 (20) A.05.02 (32) A.05.02 (41) A.05.02 (42)
! @end itemize
! 
! @geindex AI12-0145 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0145 Pool_of_Subpool returns null when called too early (0000-00-00)'
! 
! Clarify that if you ask for the pool of a subpool (by calling @code{Pool_Of_Subpool}) before @code{Set_Pool_of_Subpool} is called, then the result is null.
! 
! RM references: 13.11.04 (20/3)
! @end itemize
! 
! @geindex AI12-0147 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0147 Expression functions and null procedures can be declared in a protected_body (2015-03-05)'
! 
! AI12-0147 specifies that null procedures and expression functions are now
! allowed in protected bodies.
! 
! RM references: 9.04 (8/1)
! @end itemize
! 
! @geindex AI12-0149 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0149 Type invariants are checked for functions returning access-to-type (0000-00-00)'
! 
! Extend the rule saying that @code{Type_Invariant} checks are performed for access-to-T parameters (where T has a specified @code{Type_Invariant}) so that the rule also applies to function results.
! 
! RM references: 7.03.02 (19.3/4)
! @end itemize
! 
! @geindex AI12-0150 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0150 Class-wide type invariants and statically bound calls (0000-00-00)'
! 
! The same approach used in AI12-0113 to ensure that contract-related calls associated with a call to a subprogram “match” with respect to dispatching also applies to @code{Type_Invariant} checking.
! 
! RM references: 7.03.02 (3/3) 7.03.02 (5/3) 7.03.02 (9/3) 7.03.02 (22/3)
! @end itemize
! 
! @geindex AI12-0154 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0154 Aspects of library units (0000-00-00)'
! 
! Clarify that an aspect_specification for a library unit is equivalent to a corresponding aspect-specifying pragma.
! 
! RM references: 13.01.01 (32/3)
! @end itemize
! 
! @geindex AI12-0156 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0156 Use subtype_indication in generalized iterators (0000-00-00)'
! 
! For iterating over an array, we already allow (but do not require) explicitly providing a subtype indication in an iterator_specification. Tee AI generalizes this to handle the case where the element type of the array is of an anonymous access type. This also allows (but does not require) explicitly naming the cursor subtype in a generalized iterator.
! The main motivation for allowing these new cases is improving readability by making it easy to infer the (sub)type of the iteration object just by looking at the loop.
! 
! RM references: 5.05.02 (2/3) 5.05.02 (5/4) 5.05.02 (7/3) 3.10.02 (11.1/2)
! @end itemize
! 
! @geindex AI12-0157 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0157 Missing rules for expression functions (0000-00-00)'
! 
! Clarify that an expression function behaves like a single-return-statement
! function in more cases: it can return an aggregate without extra parens, the expression has an applicable index constraint, and the same accessibility rules apply in both cases.
! 
! For instance, the code below is legal:
  
  @example
! subtype S is String (1 .. 10);
! function f return S is (others => '?');
  @end example
  
! RM references: 3.10.02 (19.2/4) 3.10.02 (19.3/4) 4.03.03 (11/2) 6.08 (2/3)
! 6.08 (3/3) 6.08 (5/3) 6.08 (6/3) 6.08 (7/3) 7.05 (2.9/3) 13.14
! (5.1/4) 13.14 (5.2/4) 13.14 (8/3) 13.14 (10.1/3) 13.14 (10.2/3)
! 13.14 (10.3/3)
! @end itemize
  
! @geindex AI12-0160 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0160 Adding an indexing aspect to an indexable container type (0000-00-00)'
! 
! If the parent type of a derived type has exactly one of the two indexing aspects (that is, constant_indexing and variable_indexing) specified, then the derived type cannot have a specification for the other one.
! 
! RM references: 4.01.06 (6/4) 4.01.06 (9/4) 3.06 (22.2/3)
  @end itemize
  
! @geindex AI12-0162 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0162 Memberships and Unchecked_Unions (0000-00-00)'
  
! Clarify that membership tests for unchecked_union types work consistently when
! testing membership in more than one subtype (X in AA | BB | CC)  as when
! testing for one.
  
! RM references: B.03.03 (25/2)
  @end itemize
  
! @geindex AI12-0164 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0164 Max_Entry_Queue_Length aspect for entries (2019-06-11)'
  
! AI12-0164 defines pragma and aspect @code{Max_Entry_Queue_Length} in addition
! to the GNAT-specific equivalents @code{Max_Queue_Length} and @code{Max_Entry_Queue_Depth}.
  
! RM references: D.04 (16)
  @end itemize
  
! @geindex AI12-0165 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0165 Operations of class-wide types and formal abstract subprograms (2021-10-19)'
  
! Ada 2022 specifies that when the controlling type of a formal abstract
! subprogram declaration is a formal type, and the actual type is a class-wide type T’Class, the actual subprogram can be an implicitly declared subprogram corresponding to a primitive operation of type T.
  
! RM references: 12.06 (8.5/2)
  @end itemize
  
! @geindex AI12-0166 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0166 External calls to protected functions that appear to be internal calls (2016-11-15)'
  
! According to this AI, the compiler rejects a call to a protected operation when the call appears within a precondition for another protected operation.
  
! RM references: 6.01.01 (34/3) 9.05 (3/3) 9.05 (7.1/3)
  @end itemize
  
! @geindex AI12-0167 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0167 Type_Invariants and tagged-type View Conversions (0000-00-00)'
  
! This AI clarifies that no invariant check is performed in a case where an invariant-violating value is assigned to a component. This confirms the current compiler behavior.
! 
! RM references: 7.03.02 (9/4)
  @end itemize
  
+ @geindex AI12-0168 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0168 Freezing of generic instantiations of generics with bodies (0000-00-00)'
  
! Adjust freezing rules to be compatible with AI12-0103-1. The change confirms the current compiler behavior.
  
! RM references: 13.14 (3/4)
! @end itemize
  
! @geindex AI12-0169 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0169 Aspect specifications for entry bodies (0000-00-00)'
  
! Change syntax to allow aspect specifications for implementation-defined aspects on entry bodies. The change doesn’t influence any of the language-defined aspects and is solely required for SPARK.
  
! RM references: 9.05.02 (5)
! @end itemize
  
! @geindex AI12-0170 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0170 Abstract subprogram calls in class-wide precondition expressions (2020-07-06)'
  
! This AI specifies rules for calls to abstract functions within class-wide preconditions and postconditions.
  
! RM references: 3.09.03 (7) 6.01.01 (7/4) 6.01.01 (18/4) 6.01.01 (18.2/4)
! @end itemize
  
! @geindex AI12-0172 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0172 Raise expressions in limited contexts (2019-07-29)'
  
! The compiler has been enhanced to support the use of raise expressions in
! limited contexts.
  
! RM references: 7.05 (2.1/3)
! @end itemize
  
! @geindex AI12-0173 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0173 Expression of an extended return statement (0000-00-00)'
  
! Fix the wording related to expression of an extended return statement that was made ambiguous by changes of syntax in other AI’s. No compiler changes involved.
  
! RM references: 6.05 (3/2) 6.05 (5/3)
! @end itemize
  
! @geindex AI12-0174 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0174 Aggregates of Unchecked_Unions using named notation (0000-00-00)'
  
! In many cases, it is illegal to name a discriminant of an unchecked_union type.  Relax this rule to allow the use of named notation in an aggregate of an unchecked_union type.
  
! RM references: B.03.03 (9/3)
! @end itemize
  
! @geindex AI12-0175 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0175 Preelaborable packages with address clauses (2020-03-20)'
  
! The compiler nows accepts calls to certain functions that are essentially unchecked conversions in preelaborated library units. To use this feature the compilation flag @code{-gnat2022} must be specified.
  
! RM references: 10.02.01 (7)
! @end itemize
  
! @geindex AI12-0179 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0179 Failure of postconditions of language-defined units (0000-00-00)'
  
! A clarification that expressing postconditions for predefined units via RM wording or via @code{Post} aspect specifications are equivalent. In particular, the expression in such a @code{Post} aspect specification should not yield False. No implementation changes needed.
  
! RM references: 1.01.03 (17/3) 11.04.02 (23.1/3)
! @end itemize
  
! @geindex AI12-0180 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0180 Using protected subprograms and entries within an invariant (2020-06-22)'
  
! AI12-0180 makes entries and protected subprograms directly visible within Invariant aspects of a task or protected type.
  
! RM references: 13.01.01 (12/3)
! @end itemize
  
! @geindex AI12-0181 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0181 Self-referencing representation aspects (0000-00-00)'
  
! Clarify that a name or expression which freezes an entity cannot occur in an aspect specification for that entity.
  
! RM references: 13.01 (9/4) 13.01 (9.1/4) 13.14 (19)
! @end itemize
  
! @geindex AI12-0182 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0182 Pre’Class and protected operations (0000-00-00)'
  
! Confirm that Pre’Class and Post’Class cannot be specified for a protected operation. No language change.
  
! RM references: 13.01.01 (16/3)
! @end itemize
  
! @geindex AI12-0184 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0184 Long Long C Data Types (2020-01-30)'
  
! Two new types @code{long_long} and @code{unsigned_long_long} are introduced in the package @code{Interfaces.C}.
  
! RM references: B.03 (71.3/3)
! @end itemize
  
! @geindex AI12-0185 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0185 Resolution of postcondition-specific attributes (0000-00-00)'
  
! Clarify resolution rules for @code{'Old} and @code{'Result} attribute references to match original intent.
  
! RM references: 6.01.01 (7/4) 6.01.01 (8/3) 6.01.01 (26.10/4) 6.01.01 (29/3)
! @end itemize
  
! @geindex AI12-0186 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0186 Profile freezing for the Access attribute (0000-00-00)'
  
! Clarify that the use of Some_Subprogram’Access does not freeze the profile of Some_Subprogram.
  
! RM references: 13.14 (15)
! @end itemize
  
! @geindex AI12-0187 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0187 Stable properties of abstract data types (2020-11-04)'
  
! Ada 2022 defines a new aspect, @code{Stable_Properties}, for use in
! generating additional postcondition checks for subprograms.
  
! RM references: 7.03.04 (0) 13.01.01 (4/3)
! @end itemize
  
! @geindex AI12-0191 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0191 Clarify “part” for type invariants (0000-00-00)'
  
! Clarify that for purposes of determining whether an invariant check is required for a “part” of an object, we do not look at “parts” which do not correspond to “parts” of the nominal type of the object. For example, if we have a parameter Param of a tagged type T1 (or equivalently of type T1’Class), and type T2 is an extension of T1 which declares a component Foo, and T1’Class (Param)’Tag = T2’Tag, then no invariant check is performed for Param’s Foo component (or any subcomponent thereof).
  
! RM references: 3.03 (23/5) 3.09.01 (4.1/2) 6.08 (5.8/5) 7.03.02 (8.3/5)
! 7.03.02 (8.4/5) 7.03.02 (8.5/5) 7.03.02 (8.6/5) 7.03.02 (8.7/5)
! 7.03.02 (8.8/5) 7.03.02 (8.9/5) 7.03.02 (8.10/5) 7.03.02 (8.11/5)
! 7.03.02 (8.12/5) 7.03.02 (10.1/4) 7.03.02 (15/5) 7.03.02 (17/4)
! 7.03.02 (18/4) 7.03.02 (19/4) 13.13.02 (9/3)
! @end itemize
  
! @geindex AI12-0192 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0192 “requires late initialization” and protected types (2020-03-11)'
  
! This AI clarifies that components of a protected type require late initialization when their initialization references (implicitly) the current instance of the type.
  
! RM references: 3.03.01 (8.1/2)
! @end itemize
  
! @geindex AI12-0194 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0194 Language-defined aspects and entry bodies (0000-00-00)'
  
! The AI Includes entry bodies on the list of bodies for which no language-defined aspects can be specified (although specifying an implementation-defined aspect may be allowed).
  
! A wording change, no implementation impact.
  
! RM references: 13.01.01 (17/3)
! @end itemize
  
! @geindex AI12-0195 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0195 Inheriting body but overriding precondition or postcondition (2021-08-11)'
  
! Ada 2022 specifies that if a primitive with a class-wide precondition or
! postcondition is inherited, and some primitive function called in the class-wide precondition or postcondition is overridden, then a dispatching call to the first primitive with a controlling operand that has the tag of the overriding type is required to check both the interpretation using the overriding function and the interpretation using the original overridden function.
  
! RM references: 6.01.01 (38/4)
! @end itemize
  
! @geindex AI12-0196 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0196 Concurrent access to Ada container libraries (0000-00-00)'
  
! Clarify that parallel execution of operations which use cursors to refer to different elements of the same container does not violate the rules about erroneous concurrent access in some cases. That is, if C1 and C2 are cursors that refer to different elements of some container, then it is ok to concurrently execute an operation that is passed C1 and which accesses one element of the container, with another operation (perhaps the same operation, perhaps not) that is passed C2 and which accesses another element of the container.
  
! RM references: A.18 (2/2) A.18.02 (125/2) A.18.02 (133/3) A.18.02 (135/3)
! A.18.03 (81/3) A.18.04 (36/3) A.18.07 (34/2) A.18.10 (116/3)
! @end itemize
  
! @geindex AI12-0198 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0198 Potentially unevaluated components of array aggregates (2020-05-13)'
  
! Ada 2022 enforces the detection of components that belong to a nonstatic or
! null range of index values of an array aggregate.
  
! RM references: 6.01.01 (22.1/4)
! @end itemize
  
! @geindex AI12-0199 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0199 Abstract subprogram calls in class-wide invariant expressions (0000-00-00)'
  
! Class-wide type invariants do not apply to abstract types, to avoid various
! problems. Define the notion of a “corresponding expression” for a class-wide
! type invariant, replacing references to components as appropriate, taking into
! account rules for corresponding and specified discriminants when applying them
! to a nonabstract descendant.
  
! RM references: 7.03.02 (5/4) 7.03.02 (8/3)
! @end itemize
  
! @geindex AI12-0201 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0201 Missing operations of static string types (2020-02-25)'
  
! Relational operators and type conversions of static string types are now static in Ada 2022.
  
! RM references: 4.09 (9) 4.09 (19) 4.09 (20) 4.09 (24)
! @end itemize
  
! @geindex AI12-0203 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0203 Overriding a nonoverridable aspect (0000-00-00)'
  
! A corner case wording clarification that has no impact on compilers.
  
! RM references: 4.01.05 (5.1/4) 4.01.05 (7/3)
! @end itemize
  
! @geindex AI12-0204 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0204 Renaming of a prefixed view (2020-02-24)'
  
! AI12-0204 clarifies that the prefix of a prefixed view that is renamed or
! passed as a formal subprogram must be renameable as an object.
  
! RM references: 8.05.04 (5.2/2) 12.06 (8.3/2) 4.01.03 (13.1/2) 4.01.06 (9/5)
! @end itemize
  
! @geindex AI12-0205 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0205 Defaults for generic formal types (2021-04-01)'
  
! AI12-0205 specifies syntax and semantics that provide defaults for formal types of generic units. The legality rules guarantee that the default subtype_mark that is specified for a formal type would be a legal actual in any instantiation of the generic unit.
  
! RM references: 12.03 (7/3) 12.03 (10) 12.05 (2.1/3) 12.05 (2.2/3) 12.05 (7/2)
! @end itemize
  
! @geindex AI12-0206 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0206 Nonoverridable should allow arbitrary kinds of aspects (0000-00-00)'
  
! A non-overridable aspect can have a value other than a name; for example, @code{Max_Entry_Queue_Length} is non-overridable and it has a scalar value.
! Part of adding support for @code{Max_Entry_Queue_Length} (which is already supported by GNAT).
  
! RM references: 13.01.01 (18.2/4) 13.01.01 (18.3/4) 13.01.01 (18.6/4)
! @end itemize
  
! @geindex AI12-0207 (Ada 2022 feature)
  
  
! @itemize *
  
! @item 
! `AI12-0207 Convention of anonymous access types (2020-02-01)'
  
! The convention of anonymous access elements of arrays now have the same convention as the array instead of convention Ada.
  
! RM references: 6.03.01 (13.1/3) B.01 (19) B.01 (21/3)
! @end itemize
! 
! @geindex AI12-0208 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0208 Predefined Big numbers support (0000-00-00)'
  
! Add predefined package @code{Ada.Numerics.Big_Numbers}.
  
! RM references: A.05.05 (0) A.05.06 (0) A.05.07 (0)
  @end itemize
  
! @geindex AI12-0211 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0211 Interface types and inherited nonoverridable aspects (2020-08-24)'
  
! AI12-0211 introduces two new legality rules for Ada 2022. The first says that
! if a nonoverridable aspect is explicitly specified for a type that also inherits that aspect from another type (an ancestor or a progenitor), then the explicit aspect specification shall be confirming. The second says that if a type inherits a nonoverridable aspect from two different sources (this can only occur if at least one of the two is an interface type), then the two sources shall agree with respect to the given aspect. This AI is a binding interpretation, so these checks are performed even for earlier Ada versions. Because of compatibility concerns, an escape mechanism for suppressing these legality checks is provided: these new checks always pass if the @code{-gnatd.M} switch (relaxed RM semantics) is specified.
! 
! RM references: 13.01.01 (18.3/5) 13.01.01 (18.4/4)
! @end itemize
! 
! @geindex AI12-0212 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0212 Container aggregates; generalized array aggregates (0000-00-00)'
! 
! The AI defines a new feature: generalized array aggregates that already exists in GNAT.
! 
! RM references: 4.03.05 (0) 1.01.04 (12) 1.01.04 (13) 2.01 (15) 2.02 (9/5)
! 3.07.01 (3) 3.08.01 (4) 4.03 (2/5) 4.03 (3/5) 4.03.01 (5) 4.03.03
! (3/2) 4.03.03 (4/5) 4.03.03 (5.1/5) 4.03.03 (9) 4.03.03 (17/5)
! 4.03.03 (21) 4.03.03 (23.2/5) 4.03.03 (26) 4.03.03 (27) 4.03.03
! (31) 4.03.04 (4/5) 4.04 (3.1/3) 11.02 (3) 13.01.01 (5/3)
! 13.01.01 (7/3) A.18.02 (8/3) A.18.02 (14/2) A.18.02 (47/2) A.18.02
! (175/2) A.18.03 (6/3) A.18.05 (3/3) A.18.06 (4/3) A.18.08 (3/3)
! A.18.09 (4/3)
! @end itemize
! 
! @geindex AI12-0216 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0216 6.4.1(6.16-17/3) should never apply to composite objects (0000-00-00)'
! 
! Fix wording so that parameter passing cases where there isn’t really any aliasing problems or evaluation order dependency are classified as acceptable.
! 
! No compiler impact.
! 
! RM references: 6.04.01 (6.17/3)
! @end itemize
! 
! @geindex AI12-0217 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0217 Rules regarding restrictions on the use of the Old attribute are too strict (2020-03-25)'
! 
! AI12-0217 loosens the rules regarding what is allowed as the prefix of a ‘Old
! attribute reference. In particular, a prefix is now only required to “statically name” (as opposed to the previous “statically denote”) an object. This means that components of composite objects that previously would have been illegal are now legal prefixes.
! 
! RM references: 6.01.01 (24/3) 6.01.01 (27/3)
! @end itemize
! 
! @geindex AI12-0220 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0220 Pre/Post for access-to-subprogram types (2020-04-14)'
! 
! Contract aspects can now be specified for access-to-subprogram types, as
! defined for Ada 2022 in this AI.
! 
! RM references: 6.01.01 (1/4) 6.01.01 (2/3) 6.01.01 (4/3) 6.01.01 (19/3)
! 6.01.01 (28/3) 6.01.01 (29/3) 6.01.01 (39/3) 13.01.01 (12/5)
! @end itemize
! 
! @geindex AI12-0222 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0222 Representation aspects and private types (0000-00-00)'
! 
! Clarify that the rule against specifying a representation aspect for a type before the type is completely defined also applies in the case where aspect_specification syntax is used (not just in the case where a pragma or some other kind of representation item is used).
! 
! GNAT already implements this.
! 
! RM references: 13.01 (9/5) 13.01 (9.1/4) 13.01 (9.2/5)
! @end itemize
! 
! @geindex AI12-0225 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0225 Prefix of Obj’Image (0000-00-00)'
! 
! Clarify some Object vs. Value corner cases to allow names that do not denote objects in more contexts, such as a qualified expression as a prefix of an Image attribute.
! 
! RM references: 3.05 (55.1/4)
! @end itemize
! 
! @geindex AI12-0226 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0226 Make objects more consistent (0000-00-00)'
! 
! Allow value conversions as objects. For instance this example becomes legal: @code{Long_Integer (Duration'Last)'Image}.
! 
! RM references: 3.03 (11.1/3) 3.03 (21.1/3) 3.03 (23.8/5) 4.06 (58.1/4)
! 4.06 (58.3/4)
! @end itemize
! 
! @geindex AI12-0227 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0227 Evaluation of nonstatic universal expressions when no operators are involved (0000-00-00)'
! 
! Nonstatic universal integer expressions are always evaluated at runtime as values of type root_integer; similarly, nonstatic universal real expressions are always evaluated at runtime as values of type root_real.
! This AI corrects a wording oversight. Previously, the above was only true if a call to operator was involved. With this change it is true in all cases.
! 
! No compiler impact.
! 
! RM references: 4.04 (10) 8.06 (29)
! @end itemize
! 
! @geindex AI12-0228 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0228 Properties of qualified expressions used as names (2020-02-19)'
! 
! This AI clarifies that properties of a qualified object pass through a
! qualified expression used as a name. Specifically, “aliased” and “known to be
! constrained” are not changed by a qualified expression.
! 
! RM references: 3.03 (23.7/3) 3.10 (9/3)
! @end itemize
! 
! @geindex AI12-0231 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0231 Null_Task_Id and Activation_Is_Complete (0000-00-00)'
! 
! Add @code{Activation_Is_Complete} to the list of functions that raise P_E if passed @code{Null_Task_Id}, correcting an oversight.
! 
! RM references: C.07.01 (15)
! @end itemize
! 
! @geindex AI12-0232 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0232 Rules for pure generic bodies (0000-00-00)'
! 
! Clarify the rules for a generic body nested in a pure library unit.
! 
! RM references: 10.02.01 (9/3) 10.02.01 (15.1/3) 10.02.01 (15.5/3)
! @end itemize
! 
! @geindex AI12-0233 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0233 Pre’Class for hidden operations of private types (0000-00-00)'
! 
! Clarify how @code{Pre'Class} checking interacts with private-part overriding of inherited subprograms. A class-wide precondition can be checked at runtime even if it is specified in a private part that the caller cannot see into.
! 
! RM references: 6.01.01 (38/4)
! @end itemize
! 
! @geindex AI12-0234 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0234 Compare-and-swap for atomic objects (0000-00-00)'
! 
! New predefined units for atomic operations (@code{System.Atomic_Operations} and child units thereof).
! 
! RM references: C.06.01 (0) C.06.02 (0)
! @end itemize
! 
! @geindex AI12-0235 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0235 System.Storage_Pools should be pure (0000-00-00)'
! 
! Change the predefined package System.Storage_Pools from preelaborated to pure.
! 
! RM references: 13.11 (5)
! @end itemize
! 
! @geindex AI12-0236 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0236 declare expressions (2020-04-08)'
! 
! A @code{declare expression} allows constant objects and renamings to be
! declared within an expression.
! 
! RM references: 2.08 (6) 3.09.02 (3) 3.10.02 (9.1/3) 3.10.02 (16.1/3)
! 3.10.02 (32.2/3) 4.03.02 (5.4/3) 4.03.03 (15.1/3) 4.04 (7/3)
! 4.05.09 (0) 6.02 (10/4) 7.05 (2.1/5) 8.01 (2.1/4)
! @end itemize
! 
! @geindex AI12-0237 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0237 Getting the representation of an enumeration value (2020-01-31)'
! 
! The GNAT-specific attributes @code{Enum_Rep} and @code{Enum_Val} have been standardized and are now also supported as Ada 2022 attributes.
! 
! RM references: 13.04 (10) 13.04 (11/3)
! @end itemize
! 
! @geindex AI12-0242 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0242 Shorthand Reduction Expressions for Objects (0000-00-00)'
! 
! Allow reduction expressions to iterate over an an array or an iterable object without having to explicitly create a value sequence.
! 
! This allows, for instance, writing @code{A'Reduce("+", 0)} instead of the equivalent (but more verbose) @code{[for Value of A => Value]'Reduce("+", 0);}.
! 
! RM references: 4.05.10 (0) 4.01.04 (6)
! @end itemize
! 
! @geindex AI12-0247 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0247 Potentially Blocking goes too far for Detect_Blocking (0000-00-00)'
! 
! During a protected action, a call on a subprogram that contains a potentially blocking operation is considered a bounded error (so raising P_E is optional).
! This rule imposed an unreasonable implementation burden.
! The new rule introduced by this AI allows ignoring (i.e., not detecting) the problem until execution of a potentially blocking operation is actually attempted.
! 
! RM references: 9.05 (55/5) 9.05 (56/5) 9.05.01 (18/5) H.05 (5/2)
! @end itemize
! 
! @geindex AI12-0249 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0249 User-defined numeric literals (2020-04-07)'
! 
! Compiler support is added for three new aspects (@code{Integer_Literal}, @code{Real_Literal}, and @code{String_Literal}) as described in AI12-0249 (for @code{Integer_Literal} and @code{Real_Literal}), AI12-0295 (for  @code{String_Literal}), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined
! aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
! 
! RM references: 4.02 (9) 4.02.01 (0) 4.09 (3)
! @end itemize
! 
! @geindex AI12-0250 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0250 Iterator Filters (2020-05-19)'
! 
! This AI defines Ada 2022 feature of iterator filters, which can be
! applied to loop parameter specifications and iterator specifications.
! 
! RM references: 4.03.03 (21) 4.03.03 (26) 4.03.03 (31) 4.03.05 (0) 4.05.10
! (0) 5.05 (4) 5.05 (7) 5.05 (9/4) 5.05 (9.1/4) 5.05 (10)
! 5.05.02 (2/3) 5.05.02 (10/3) 5.05.02 (11/3)
! @end itemize
! 
! @geindex AI12-0252 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0252 Duplicate interrupt handlers under Ravenscar (2018-07-05)'
! 
! Ada Issue AI12-0252 requires that the runtime shall terminate with a
! Program_Error when more than one interrupt handler is attached to the same interrupt and the restriction No_Dynamic_Attachment is in effect.
! 
! RM references: C.03.01 (13)
! @end itemize
! 
! @geindex AI12-0254 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0254 Bounded_Indefinite_Holders (2025-12-15)'
! 
! This AI defines a new package @code{Ada.Containers.Indefinite_Holders} which
! is fully implemented by GNAT.
! 
! RM references: A.18.32 (0)
! @end itemize
! 
! @geindex AI12-0256 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0256 Aspect No_Controlled_Parts (2021-01-26)'
! 
! The compiler now supports the Ada 2022 aspect No_Controlled_Parts (see
! AI12-0256). When specified for a type, this aspect requires that the type and any of its ancestors must not have any controlled parts.
! 
! RM references: H.04.01 (0) 13.01.01 (18.7/5)
! @end itemize
! 
! @geindex AI12-0258 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0258 Containers and controlled element types (0000-00-00)'
! 
! Most predefined containers are allowed to defer finalization of container elements until the finalization of the container. This allows implementation flexibility  but  causes problems in some cases. AI12-0258 tightens up the rules for the indefinite containers to say that finalization happens earlier - if a client needs the tighter finalization guarantees, then it can use the indefinite containers (even if the element subtype in question is definite). Other solutions involving the holder generic are also possible.
! 
! GNAT implements these tighter element finalization requirements for instances of the indefinite container generics.
! 
! RM references: A.18 (10/4)
! @end itemize
! 
! @geindex AI12-0259 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0259 Lower bound of strings returned from Ada.Command_Line (0000-00-00)'
! 
! Specify that the low-bound of a couple of predefined String-valued functions will always be one.
! 
! RM references: A.15 (14) A.15 (16/3)
! @end itemize
! 
! @geindex AI12-0260 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0260 Functions Is_Basic and To_Basic in Wide_Characters.Handling (2020-04-01)'
! 
! AI12-0260 is implemented for Ada 2022, providing the new functions @code{Is_Basic} and @code{To_Basic} in package @code{Ada.Wide_Characters.Handling}.
! 
! RM references: 1.02 (8/3) A.03.05 (8/3) A.03.05 (20/3) A.03.05 (21/3)
! A.03.05 (33/3) A.03.05 (61/3)
! @end itemize
! 
! @geindex AI12-0261 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0261 Conflict in “private with” rules (0000-00-00)'
! 
! If a library unit is only visible at some point because of a “private with”, there are legality rules about a name denoting that entity. The AI cleans up the wording so that it captures the intent in a corner case involving a private-child library-unit subprogram. The previous wording incorrectly caused this case to be illegal.
! 
! RM references: 10.01.02 (12/3) 10.01.02 (13/2) 10.01.02 (14/2) 10.01.02
! (15/2) 10.01.02 (16/2)
! @end itemize
! 
! @geindex AI12-0262 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0262 Map-Reduce attribute (0000-00-00)'
! 
! The AI defines Reduction Expressions to allow the programmer to apply the
! Map-Reduce paradigm to map/transform a set of values to a new set of values,
! and then summarize/reduce the transformed values into a single result value.
! 
! RM references: 4.01.04 (1) 4.01.04 (6) 4.01.04 (11) 4.05.10 (0)
! @end itemize
! 
! @geindex AI12-0263 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0263 Update references to ISO/IEC 10646 (0000-00-00)'
! 
! Change RM references to ISO/IEC 10646:2011 to instead refer to ISO/IEC 10646:2017. No compiler impact.
! 
! RM references: 1.01.04 (14.2/3) 2.01 (1/3) 2.01 (3.1/3) 2.01 (4/3) 2.01
! (4.1/5) 2.01 (5/3) 2.01 (15/3) 2.01 (4.1/5) 2.01 (5/3) 2.03
! (4.1/5) 2.03 (5/3) 3.05.02 (2/3) 3.05.02 (3/3) 3.05.02 (4/3) A.01
! (36.1/3) A.01 (36.2/3) A.03.02 (32.6/5) A.03.05 (51.2/5) A.03.05
! (55/3) A.03.05 (59/3) A.04.10 (3/3) B.05 (21/5)
! @end itemize
! 
! @geindex AI12-0264 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0264 Overshifting and overrotating (0000-00-00)'
! 
! Clarify Shift and Rotate op behavior with large shift/rotate amounts.
! 
! RM references: B.02 (9)
! @end itemize
! 
! @geindex AI12-0265 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0265 Default_Initial_Condition for types (2020-11-13)'
! 
! The aspect @code{Default_Initial_Condition}, originally proposed by SPARK and
! supported in GNAT, is now also included in Ada 2022. One change from the
! original implementation is that when the aspect is specified on ancestor types of a derived type, the ancestors’ check expressions also apply to the derived type.
! @code{Default_Initial_Condition} checks are also now applied in cases of default
! initialization of components, allocators, ancestor parts of extension aggregates, and box associations of aggregates.
! 
! RM references: 7.03.03 (0) 1.01.03 (17.1/5) 11.04.02 (23.2/5) 11.04.02 (23.3/5)
! @end itemize
! 
! @geindex AI12-0269 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0269 Aspect No_Return for functions reprise (2020-03-19)'
! 
! This amendment has been implemented under the @code{-gnat2022} switch, and the
! compiler now accepts the aspect/pragma No_Return for functions and generic
! functions.
! 
! RM references: 6.05.01 (0) 6.05.01 (1/3) 6.05.01 (3.1/3) 6.05.01 (3.4/3)
! 6.05.01 (5/2) 6.05.01 (6/2) 6.05.01 (7/2) J.15.02 (2/3) J.15.02
! (3/3) J.15.02 (4/3)
! @end itemize
! 
! @geindex AI12-0272 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0272 (part 1) Pre/Postconditions for formal subprograms (0000-00-00)'
! 
! Pre and Post aspects can be specified for a generic formal subprogram. @code{Default_Initial_Condition} can be specified for a generic formal private type.
! 
! GNAT implements this with an exception of the part related to @code{Default_Initial_Condition}.
! 
! RM references: 6.01.01 (1/5) 6.01.01 (39/5) 7.03.03 (1/5) 7.03.03 (2/5)
! 7.03.03 (8/5) 7.03.04 (5/5) F.01 (1)
! @end itemize
! 
! @geindex AI12-0275 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0275 Make subtype_mark optional in object renames (2020-01-28)'
! 
! AI12-0275 allows object renamings to be declared without an explicit
! subtype_mark or access_definition. This feature can be used by compiling
! with the switch @code{-gnat2022}.
! 
! RM references: 8.05.01 (2/3) 8.05.01 (3/2)
! @end itemize
! 
! @geindex AI12-0277 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0277 The meaning of “accessibility level of the body of F” (2020-09-09)'
! 
! Clarify that the only time that an explicitly aliased formal parameter has different accessibility properties than an aliased part of a “normal” parameter is for the accessibility checking associated with a return statement.
! 
! RM references: 3.10.02 (19.2/4)
! @end itemize
! 
! @geindex AI12-0278 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0278 Implicit conversions of anonymous return types (0000-00-00)'
! 
! If a call to a function with an anonymous-access-type result is converted to a named access type, it doesn’t matter whether the conversion is implicit or explicit. the AI fixes hole where the previous rules didn’t cover the implicit conversion case.
! 
! RM references: 3.10.02 (10.3/3)
! @end itemize
! 
! @geindex AI12-0279 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0279 Nonpreemptive dispatching needs more dispatching points (2020-04-17)'
! 
! Ada 2022 defines a new aspect @cite{Yield} that can be specified in the declaration of a noninstance subprogram (including a generic formal subprogram), a generic subprogram, or an entry, to ensure that the associated subprogram has at least one task dispatching point during each invocation.
! 
! RM references: D.02.01 (1.5/2) D.02.01 (7/5)
! @end itemize
! 
! @geindex AI12-0280-2 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0280-2 Making ‘Old more flexible (2020-07-24)'
! 
! For Ada 2022, AI12-0280-2 relaxes Ada’s restrictions on ‘Old attribute
! references whose attribute prefix does not statically name an entity. Previously, it was required that such an attribute reference must be unconditionally evaluated when the postcondition is evaluated; with the new rule, conditional evaluation is permitted if the relevant conditions can be evaluated upon entry to the subprogram with the same results as evaluation at the time of the postcondition’s evaluation. In this case, the ‘Old attribute prefix is evaluated conditionally (more specifically, the prefix is evaluated only if the result of that evaluation is going to be referenced later when the
! postcondition is evaluated).
! 
! RM references: 6.01.01 (20/3) 6.01.01 (21/3) 6.01.01 (22/3) 6.01.01
! (22.1/4) 6.01.01 (22.2/5) 6.01.01 (23/3) 6.01.01 (24/3) 6.01.01
! (26/4) 6.01.01 (27/5) 6.01.01 (39/5)
! @end itemize
! 
! @geindex AI12-0282 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0282 Atomic, Volatile, and Independent generic formal types (0000-00-00)'
! 
! The AI specifies that the aspects @code{Atomic}, @code{Volatile}, @code{Independent}, @code{Atomic_Components}, @code{Volatile_Components}, and @code{Independent_Components} are specifiable for generic formal types. The actual type must have a matching specification.
! 
! RM references: C.06 (6.1/3) C.06 (6.3/3) C.06 (6.5/3) C.06 (6.8/3) C.06
! (12/3) C.06 (12.1/3) C.06 (21/4)
! @end itemize
! 
! @geindex AI12-0285 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0285 Syntax for Stable_Properties aspects (0000-00-00)'
! 
! The AI establishes the required named notation for a Stable_Properties aspect specification in order to avoid syntactic ambiguities.
! 
! With the old syntax, an example like
  
  @example
! type Ugh is ...
!    with Stable_Properties =\> Foo, Bar, Nonblocking, Pack;
  @end example
  
! was problematic; @code{Nonblocking} and @code{Pack} are other aspects, while @code{Foo} and @code{Bar} are @code{Stable_Properties} functions. With the clarified syntax, the example above shall be written as:
! 
! @example
! type Ugh is ...
!   with Stable_Properties => (Foo, Bar), Nonblocking, Pack;
! @end example
! 
! RM references: 7.03.04 (2/5) 7.03.04 (3/5) 7.03.04 (4/5) 7.03.04 (6/5)
! 7.03.04 (7/5) 7.03.04 (9/5) 7.03.04 (10/5) 7.03.04 (14/5) 13.01.01 (4/5)
  @end itemize
  
! @geindex AI12-0287 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0287 Legality Rules for null exclusions in renaming are too fierce (2020-02-17)'
  
! The null exclusion legality rules for generic formal object matching and object renaming now only apply to generic formal objects with mode in out.
  
! RM references: 8.05.01 (4.4/2) 8.05.01 (4.5/2) 8.05.01 (4.6/2) 8.05.04
! (4.2/2) 12.04 (8.3/2) 12.04 (8.4/2) 12.04 (8.5/2) 12.04 (8.2/5)
! 12.06 (8.2/5)
  @end itemize
  
! @geindex AI12-0289 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0289 Implicitly null excluding anonymous access types and conformance (2020-06-09)'
  
! AI12-0289 is implemented for Ada 2022, allowing safer use of access parameters
! when the partial view of the designated type is untagged, but the full view is
! tagged.
  
! RM references: 3.10 (26)
  @end itemize
  
! @geindex AI12-0290 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0290 Restriction Pure_Barriers (2020-02-18)'
  
! The GNAT implementation of the Pure_Barriers restriction has
! been updated to match the Ada RM’s definition as specified
! in this AI. Some constructs that were accepted by the previous
! implementation are now rejected, and vice versa. In
! particular, the use of a component of a component of a
! protected record in a barrier expression, as in “when
! Some_Component.Another_Component =>”, formerly was (at least
! in some cases) not considered to be a violation of the
! Pure_Barriers restriction; that is no longer the case.
  
! RM references: D.07 (2) D.07 (10.10/4)
  @end itemize
  
! @geindex AI12-0291 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0291 Jorvik Profile (2020-02-19)'
  
! The Jorvik profile is now implemented, as defined in this AI.
! For Ada 2012 and earlier versions of Ada, Jorvik is an implementation-defined
! profile whose definition matches its Ada 2022 definition.
  
! RM references: D.13 (0) D.13 (1/3) D.13 (4/3) D.13 (6/4) D.13 (9/3) D.13
! (10/3) D.13 (11/4) D.13 (12/4)
  @end itemize
  
! @geindex AI12-0293 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0293 Add predefined FIFO_Streams packages (0000-00-00)'
  
! The AI adds @code{Ada.Streams.Storage} and its two subunits @code{Bounded} and @code{Unbounded}.
  
! RM references: 13.13.01 (1) 13.13.01 (9) 13.13.01 (9.1/1)
  @end itemize
  
! @geindex AI12-0295 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0295 User-defined string  (2020-04-07)'
  
! Compiler support is added for three new aspects (@code{Integer_Literal}, @code{Real_Literal}, and @code{String_Literal}) as described in AI12-0249 (for @code{Integer_Literal} and @code{Real_Literal}), AI12-0295 (for @code{String_Literal}), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
  
! RM references: 4.02 (6) 4.02 (10) 4.02 (11) 3.06.03 (1) 4.02.01 (0) 4.09 (26/3)
  @end itemize
  
! @geindex AI12-0301 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0301 Predicates should be checked like constraints for types with Default_Value (2020-02-25)'
  
! This AI clarifies that predicate checks apply for objects that are initialized
! by default and that are of a type that has any components whose subtypes specify @code{Default_Value} or @code{Default_Component_Value}.
  
! RM references: 3.02.04 (31/4)
  @end itemize
  
! @geindex AI12-0304 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0304 Image attributes of language-defined types (2020-07-07)'
  
! According to this AI, @code{Put_Image} (and therefore @code{'Image}) is provided for
! the containers and for unbounded strings.
  
! RM references: 4.10 (0)
  @end itemize
  
! @geindex AI12-0306 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0306 Split null array aggregates from positional array aggregates (0000-00-00)'
  
! The AI clarifies the wording of the references RM paragraphs without introducing any language changes.
  
! RM references: 4.03.03 (2) 4.03.03 (3/2) 4.03.03 (9/5) 4.03.03 (26/5)
! 4.03.03 (26.1/5) 4.03.03 (33/3) 4.03.03 (38) 4.03.03 (39) 4.03.03 (42)
  @end itemize
  
! @geindex AI12-0307 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0307 Resolution of aggregates (2020-08-13)'
  
! The proposed new syntax for aggregates in Ada 2022 uses square brackets as
! delimiters, and in particular allows @code{[]} as a notation for empty array and container aggregates. This syntax is currently available as an experimental feature under the @code{-gnatX} flag.
  
! RM references: 4.03 (3/5)
  @end itemize
  
! @geindex AI12-0309 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0309 Missing checks for pragma Suppress (0000-00-00)'
  
! The AI includes some previously overlooked run-time checks in the list of checks that are potentially suppressed via a pragma @code{Suppress}. For example, AI12-0251-1 adds a check that the number of chunks in a chunk_specification is not zero or negative. Clarify that suppressing @code{Program_Error_Check} suppresses that check too.
  
! RM references: 11.05 (10) 11.05 (19) 11.05 (20) 11.05 (22) 11.05 (24)
  @end itemize
  
! @geindex AI12-0311 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0311 Suppressing client-side assertions for language-defined units (0000-00-00)'
  
! The AI defines some new assertion policies that can be given as arguments in a Suppress pragma (e.g., Calendar_Assertion_Check). GNAT recognizes and ignores those new policies, the checks are not implemented.
  
! RM references: 11.04.02 (23.5/5) 11.05 (23) 11.05 (26)
  @end itemize
  
! @geindex AI12-0315 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0315 Image Attributes subclause improvements (0000-00-00)'
  
! Clarify that a named number or similar can be the prefix of an Image attribute reference.
  
! RM references: 4.10 (0)
  @end itemize
  
! @geindex AI12-0318 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0318 No_IO should apply to Ada.Directories (2020-01-31)'
  
! The restriction No_IO now applies to and prevents the use of the
! @code{Ada.Directories package}.
  
! RM references: H.04 (20/2) H.04 (24/3)
  @end itemize
  
! @geindex AI12-0321 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0321 Support for Arithmetic Atomic Operations and Test and Set (0000-00-00)'
  
! The AI adds some predefined atomic operations, e.g. package System.`@w{`}Atomic_Operations.Test_And_Set`@w{`}.
  
! RM references: C.06.03 (0) C.06.04 (0)
  @end itemize
  
! @geindex AI12-0325 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0325 Various issues with user-defined literals (2020-04-07)'
  
! Compiler support is added for three new aspects (@code{Integer_Literal}, @code{Real_Literal}, and @code{String_Literal}) as described in AI12-0249 (for @code{Integer_Literal} and @code{Real_Literal}), AI12-0295 (for @code{String_Literal}), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
  
! RM references: 4.02 (6) 4.02 (10) 4.02 (11) 4.02.01 (0)
  @end itemize
  
! @geindex AI12-0329 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0329 Naming of FIFO_Streams packages (0000-00-00)'
  
! The AI changes the name of predefined package @code{Ada.Streams.FIFO_Streams} to @code{Ada.Streams.Storage}.
  
! RM references: 13.13.01 (9/5) 13.13.01 (9.1/5)
  @end itemize
  
! @geindex AI12-0331 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0331 Order of finalization of a subpool (0000-00-00)'
  
! Clarify that when a subpool is being finalized, objects allocated from that subpool are finalized before (not after) they cease to exist (i.e. object’s storage has been reclaimed).
  
! RM references: 13.11.05 (5/3) 13.11.05 (6/3) 13.11.05 (7/3) 13.11.05
! (7.1/4) 13.11.05 (8/3) 13.11.05 (9/3)
  @end itemize
  
! @geindex AI12-0333 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0333 Predicate checks on out parameters (0000-00-00)'
  
! If a view conversion is passed as an actual parameter corresponding to an out-mode formal parameter, and if the subtype of the formal parameter has a predicate, then no predicate check associated with the conversion is performed.
  
! RM references: 3.02.04 (31/5) 4.06 (51/4) 6.04.01 (14)
  @end itemize
  
! @geindex AI12-0335 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0335 Dynamic accessibility check needed for some requeue targets (0000-00-00)'
  
! Define a new runtime accessibility check for a corner case involving requeue statements.
  
! RM references: 9.05.04 (7/4)
  @end itemize
  
! @geindex AI12-0336 (Ada 2022 feature)
  
  
  @itemize *
  
  @item 
! `AI12-0336 Meaning of Time_Offset (0000-00-00)'
  
! The AI introduces changes to the predefined package @code{Ada.Calendar.Time_Zones}.
  
! RM references: 9.06.01 (6/2) 9.06.01 (35/2) 9.06.01 (40/2) 9.06.01 (41/2)
! 9.06.01 (42/3) 9.06.01 (90/2) 9.06.01 (91/2)
  @end itemize
  
! @geindex AI12-0337 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0337 Simple_Name(“/”) in Ada.Directories (0000-00-00)'
! 
! Clarify behavior of subprograms in the predefined package @code{Ada.Directories}. In particular, Simple_Name (“/”) should return “/” on Unix-like systems.
! 
! RM references: A.16 (47/2) A.16 (74/2) A.16 (82/3)
! @end itemize
! 
! @geindex AI12-0338 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0338 Type invariant checking and incomplete types (0000-00-00)'
! 
! Clarify that type invariants for type T are not checked for incomplete types whose completion is not available, even if that completion has components of type T.
! 
! RM references: 7.03.02 (20/5)
! @end itemize
! 
! @geindex AI12-0339 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0339 Empty function for Container aggregates (2020-08-06)'
! 
! To provide uniform support for container aggregates, all standard container
! libraries have been enhanced with a function Empty, to be used when initializing an aggregate prior to inserting the specified elements in the object being constructed. All products have been updated to remove the ambiguities that may have arisen from previous uses of entities named Empty in our sources, and the expansion of container aggregates uses Empty wherever needed.
! 
! RM references: A.18.02 (8/5) A.18.02 (12.3/5) A.18.02 (78.2/5) A.18.02
! (98.6/5) A.18.03 (6/5) A.18.03 (10.2/5) A.18.03 (50.2/5) A.18.05
! (3/5) A.18.05 (7.2/5) A.18.05 (37.3/5) A.18.05 (46/2) A.18.06
! (4/5) A.18.06 (8.2/5) A.18.06 (51.4/5) A.18.08 (3/5) A.18.08
! (8.1/5) A.18.08 (59.2/5) A.18.08 (68/2) A.18.09 (4/5) A.18.09
! (9.1/5) A.18.09 (74.2/5) A.18.10 (15.2/5) A.18.18 (8.1/5) A.18.19
! (6.1/5) A.18.20 (6/3) A.18.21 (6/3) A.18.22 (6/3) A.18.23 (6/3)
! A.18.24 (6/3) A.18.25 (8/3)
! @end itemize
! 
! @geindex AI12-0340 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0340 Put_Image should use a Text_Buffer (0000-00-00)'
! 
! Add a new predefined package Ada.Strings.Text_Buffers (along with child units) and change the definition of Put_Image attribute to refer to it.
! 
! RM references: A.04.12 (0) 4.10 (3.1/5) 4.10 (3.2/5) 4.10 (6/5) 4.10
! (25.2/5) 4.10 (28/5) 4.10 (31/5) 4.10 (41/5) H.04 (23.2/5) H.04 (23.11/5)
! @end itemize
! 
! @geindex AI12-0342 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0342 Various issues with user-defined literals (part 2) (2020-04-07)'
! 
! Compiler support is added for three new aspects (@code{Integer_Literal}, @code{Real_Literal},  and @code{String_Literal}) as described in AI12-0249 (for @code{Integer_Literal} and @code{Real_Literal}), AI12-0295 (for @code{String_Literal}), and in two follow-up AIs (AI12-0325 and AI12-0342). For pre-Ada 2022 versions of Ada, these are treated as implementation-defined aspects. Some implementation work remains, particularly in the interactions between these aspects and tagged types.
! 
! RM references: 4.02.01 (0) 3.09.02 (1/2) 6.03.01 (22)
! @end itemize
! 
! @geindex AI12-0343 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0343 Return Statement Checks (2020-04-02)'
! 
! This binding interpretation has been implemented and the accessibility,
! predicate, and tag checks prescribed by RM 6.5 are now performed at the appropriate points, as required by this AI.
! 
! RM references: 6.05 (5.12/5) 6.05 (8/4) 6.05 (8.1/3) 6.05 (21/3)
! @end itemize
! 
! @geindex AI12-0345 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0345 Dynamic accessibility of explicitly aliased parameters (2020-09-09)'
! 
! Further clarify (after AI12-0277) accessibility rules for explicitly aliased parameters.
! 
! RM references: 3.10.02 (5) 3.10.02 (7/4) 3.10.02 (10.5/3) 3.10.02 (13.4/4)
! 3.10.02 (19.2/5) 3.10.02 (21)
! @end itemize
! 
! @geindex AI12-0350 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0350 Swap for Indefinite_Holders (2025-12-15)'
! 
! Package @code{Ada.Containers.Indefinite_Holders} is implemented in GNAT, comprising the support for @code{Swap} as specified by this AI.
! 
! RM references: A.18.18 (22/5) A.18.18 (67/5) A.18.18 (73/3) A.18.32 (13/5)
! @end itemize
! 
! @geindex AI12-0351 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0351 Matching for actuals for formal derived types (2020-04-03)'
! 
! This binding interpretation requires the compiler to checks
! that an actual subtype in a generic parameter association of an instantiation is statically compatible (even when the actual is unconstrained) with the ancestor of an associated nondiscriminated generic formal derived type.
! 
! RM references: 12.05.01 (7) 12.05.01 (8)
! @end itemize
! 
! @geindex AI12-0352 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0352 Early derivation and equality of untagged types (2020-07-09)'
! 
! AI12-0352 clarifies that declaring a user-defined primitive equality operation for a record type T is illegal if it occurs after a type has been derived from T.
! 
! RM references: 4.05.02 (9.8/4)
! @end itemize
! 
! @geindex AI12-0356 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0356 Root_Storage_Pool_With_Subpools should have Preelaborable_Initialization (0000-00-00)'
! 
! Add Preelaborable_Initialization pragmas for predefined types @code{Root_Storage_Pool_With_Subpools} and @code{Root_Subpool}.
! 
! RM references: 13.11.04 (4/3) 13.11.04 (5/3)
! @end itemize
! 
! @geindex AI12-0363 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0363 Fixes for Atomic and Volatile (2020-09-08)'
! 
! This amendment has been implemented under the @code{-gnat2022} switch and the compiler now supports the @code{Full_Access_Only} aspect, which is mostly equivalent to GNAT’s @code{Volatile_Full_Access}.
! 
! RM references: 3.10.02 (26/3) 9.10 (1/5) C.06 (6.4/3) C.06 (6.10/3) C.06
! (8.1/4) C.06 (12/5) C.06 (12.1/5) C.06 (13.3/5) C.06 (19.1/5)
! @end itemize
! 
! @geindex AI12-0364 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0364 Add a modular atomic arithmetic package (0000-00-00)'
! 
! Generalize support for atomic integer operations to extend to modular types. Add new predefined generic package,
! @code{System.Atomic_Operations.Modular_Arithmetic}.
! 
! RM references: C.06.05 (0) C.06.04 (1/5) C.06.04 (2/5) C.06.04 (3/5)
! C.06.04 (9/5)
! @end itemize
! 
! @geindex AI12-0366 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0366 Changes to Big_Integer and Big_Real (0000-00-00)'
! 
! Simplify @code{Big_Integer `@w{`}and `@w{`}Big_Real} specs by eliminating explicit support for creating “invalid” values. No more
! @code{Optional_Big_[Integer,Real]} types.
! 
! RM references: A.05.06 (0) A.05.07 (0)
! @end itemize
! 
! @geindex AI12-0367 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0367 Glitches in aspect specifications (0000-00-00)'
! 
! The AI clarifies a few wording omissions. For example, a specified Small value for a fixed point type has to be positive.
! 
! RM references: 3.05.09 (8/2) 3.05.10 (2/1) 13.01 (9.1/5) 13.14 (10)
! @end itemize
! 
! @geindex AI12-0368 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0368 Declare expressions can be static (2020-05-30)'
! 
! AI12-0368 allows declare expressions to be static in Ada 2022.
! 
! RM references: 4.09 (8) 4.09 (12.1/3) 4.09 (17) 6.01.01 (24.2/5) 6.01.01
! (24.3/5) 6.01.01 (24.4/5) 6.01.01 (24.5/5) C.04 (9)
! @end itemize
! 
! @geindex AI12-0369 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0369 Relaxing barrier restrictions (2020-03-25)'
! 
! The definitions of the @code{Simple_Barriers} and @code{Pure_Barriers} restrictions were modified by this AI, replacing uses of “statically denotes” with “statically names”. This means that in many cases (but not all) a barrier expression that references a subcomponent of a component of the protected type while subject to either of the two restrictions is now allowed; with the previous restriction definitions, such a barrier expression would not have been legal.
! 
! RM references: D.07 (1.3/5) D.07 (10.12/5)
! @end itemize
! 
! @geindex AI12-0372 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0372 Static accessibility of “master of the call” (2020-09-09)'
! 
! Add an extra compile-time accessibility check for explicitly aliased parameters needed to prevent dangling references.
! 
! RM references: 3.10.02 (10.5/5) 3.10.02 (19.3/4) 6.04.01 (6.4/3)
! @end itemize
! 
! @geindex AI12-0373 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0373 Bunch of fixes (0000-00-00)'
! 
! Small clarifications to various RM entries with minor impact on compiler implementation.
! 
! RM references: 3.01 (1) 4.02 (4) 4.02 (8/2) 4.02.01 (3/5) 4.02.01 (4/5)
! 4.02.01 (5/5) 4.09 (17.3/5) 6.01.01 (41/5) 8.05.04 (4/3) 13.01.01
! (4/3) 13.01.01 (11/3) 13.14 (3/5)
! @end itemize
! 
! @geindex AI12-0376 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0376 Representation changes finally allowed for untagged derived types (0000-00-00)'
! 
! A change of representation for a derived type is allowed in some previously-illegal cases where a change of representation is required to implement a call to a derived subprogram.
! 
! RM references: 13.01 (10/4)
! @end itemize
! 
! @geindex AI12-0377 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0377 View conversions and out parameters of types with Default_Value revisited (2020-06-17)'
! 
! This AI clarifies that an actual of an out parameter that is a view conversion
! is illegal if either the target or operand type has Default_Value specified while the other does not.
! 
! RM references: 6.04.01 (5.1/4) 6.04.01 (5.2/4) 6.04.01 (5.3/4) 6.04.01
! (13.1/4) 6.04.01 (13.2/4) 6.04.01 (13.3/4) 6.04.01 (13.4/4) 6.04.01 (15/3)
! @end itemize
! 
! @geindex AI12-0381 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0381 Tag of a delta aggregate (0000-00-00)'
! 
! In the case of a delta aggregate of a specific tagged type, the tag of the aggregate comes from the specific type (as opposed to somehow from the base object).
! 
! RM references: 4.03.04 (14/5)
! @end itemize
! 
! @geindex AI12-0382 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0382 Loosen type-invariant overriding requirement of AI12-0042-1 (0000-00-00)'
! 
! The AI relaxes some corner-case legality rules about type invariants that were added by AI12-0042-1.
! 
! RM references: 7.3.2(6.1/4)
! @end itemize
! 
! @geindex AI12-0383 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0383 Renaming values (2020-06-17)'
! 
! This AI allow names that denote values rather than objects to nevertheless be
! renamed using an object renaming.
! 
! RM references: 8.05.01 (1) 8.05.01 (4) 8.05.01 (4.1/2) 8.05.01 (6/2) 8.05.01 (8)
! @end itemize
! 
! @geindex AI12-0384-2 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0384-2 Fixups for Put_Image and Text_Buffers (2021-04-29)'
! 
! In GNAT’s initial implementation of the Ada 2022 @code{Put_Image} aspect and
! attribute, buffering was performed using a GNAT-defined package,
! @code{Ada.Strings.Text_Output}. Ada 2022 requires a different package, Ada.`@w{`}Strings.Text_Buffers`@w{`}, for this role, and that package is now provided, and the older package is eliminated.
! 
! RM references: 4.10 (0) A.04.12 (0)
! @end itemize
! 
! @geindex AI12-0385 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0385 Predefined shifts and rotates should be static (0000-00-00)'
! 
! This AI allows Shift and Rotate operations in static expressions. GNAT implements this AI partially.
! 
! RM references: 4.09 (20)
! @end itemize
! 
! @geindex AI12-0389 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0389 Ignoring unrecognized aspects (2020-10-08)'
! 
! Two new restrictions, @code{No_Unrecognized_Aspects} and @code{No_Unrecognized_Pragmas}, are available to make the compiler emit error messages on unrecognized pragmas and aspects.
! 
! RM references: 13.01.01 (38/3) 13.12.01 (6.3/3)
! @end itemize
! 
! @geindex AI12-0394 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0394 Named Numbers and User-Defined Numeric Literals (2020-10-05)'
! 
! Ada 2022 allows using integer named numbers with types that have an
! @code{Integer_Literal} aspect. Similarly, real named numbers may now be used with types that have a @code{Real_Literal} aspect with an overloading that takes two strings, to be used in particular  with
! @code{Ada.Numerics.Big_Numbers.Big_Reals}.
! 
! RM references: 3.03.02 (3) 4.02.01 (4/5) 4.02.01 (8/5) 4.02.01 (12/5)
! 4.02.01 (13/5) 4.09 (5)
! @end itemize
! 
! @geindex AI12-0395 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0395 Allow aspect_specifications on formal parameters (0000-00-00)'
! 
! Change syntax rules to allow aspect_specifications on formal parameters, if an implementation if an implementation wants to define one. Currently, GNAT doesn’t define any such aspect_specifications.
! 
! RM references: 6.01 (15/3)
! @end itemize
! 
! @geindex AI12-0397 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0397 Default_Initial_Condition applied to derived type (2020-12-09)'
! 
! The compiler now implements the rules for resolving @code{Default_Initial_Condition}
! expressions that involve references to the current instance of types with the aspect, as specified by this AI. The type of the current instance is defined to be like a formal derived type, so for a derived type that inherits the aspect, a call passing the current instance to a primitive means that the call will resolve to invoke the corresponding primitive of the descendant type. This also now permits calls to abstract primitives to occur within the aspect expression of an abstract type.
! 
! RM references: 7.03.03 (3/5) 7.03.03 (6/5) 7.03.03 (8/5)
! @end itemize
! 
! @geindex AI12-0398 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0398 Most declarations should have aspect specifications (2020-11-19)'
! 
! It is now possible to specify aspects for discriminant specifications, extended return object declarations, and entry index specifications. This is an extension added for Ada 2022 by this AI.
! 
! RM references: 3.07 (5/2) 6.03.01 (25) 6.05 (2.1/3) 9.05.02 (8)
! @end itemize
! 
! @geindex AI12-0399 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0399 Aspect specification for Preelaborable_Initialization (0000-00-00)'
! 
! Semantics-preserving presentation change. Replace @code{Preelaborable_Initialization} pragmas with equivalent aspect specs in the listed predefined packages. GNAT follows the guidance of this AI partially.
! 
! RM references: 9.05 (53/5) 3.09 (6/5) 7.06 (5/2) 7.06 (7/2) 11.04.01 (2/5)
! 11.04.01 (3/2) 13.11 (6/2) 13.11.04 (4/5) 13.11.04 (5/5) 13.13.01
! (3/2) A.04.02 (4/2) A.04.02 (20/2) A.04.05 (4/2) A.04.07 (4/2)
! A.04.07 (20/2) A.04.08 (4/2) A.04.08 (20/2) A.12.01 (5/4) A.18.02
! (8/5) A.18.02 (9/2) A.18.02 (79.2/5) A.18.02 (79.3/5) A.18.03
! (6/5) A.18.03 (7/2) A.18.03 (50.2/5) A.18.03 (50.3/5) A.18.05
! (3/5) A.18.05 (4/2) A.18.05 (37.3/5) A.18.05 (37.4/5) A.18.06
! (4/5) A.18.06 (5/2) A.18.06 (51.4/5) A.18.06 (51.5/5) A.18.08
! (3/5) A.18.08 (4/2) A.18.08 (58.2/5) A.18.08 (58.3/5) A.18.09
! (4/5) A.18.09 (5/2) A.18.09 (74.2/5) A.18.09 (74.3/5) A.18.10
! (8/5) A.18.10 (9/3) A.18.10 (70.2/5) A.18.10 (70.3/5) A.18.18
! (6/5) B.03.01 (5/2) C.07.01 (2/5) G.01.01 (4/2)
! @end itemize
! 
! @geindex AI12-0400 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0400 Ambiguities associated with Vector Append and container aggregates (0000-00-00)'
! 
! Change the names of subprograms in the predefined Vector containers from @code{Append} to @code{Append_Vector} and from @code{Prepend} to @code{Prepend_Vector} in order to resolve some ambiguity problems. GNAT adds the subprograms with new names but also keeps the old ones for backward compatibility.
! 
! RM references: A.18.02 (8/5) A.18.02 (36/5) A.18.02 (37/5) A.18.02 (38/5)
! A.18.02 (44/5) A.18.02 (46/5) A.18.02 (47/5) A.18.02 (58/5)
! A.18.02 (79.2/5) A.18.02 (150/5) A.18.02 (151/5) A.18.02 (152/5)
! A.18.02 (153/5) A.18.02 (154/5) A.18.02 (155/5) A.18.02 (156/5)
! A.18.02 (168/5) A.18.02 (169/5) A.18.02 (172/5) A.18.02 (173/5)
! A.18.02 (174/5) A.18.02 (175.1/5) A.18.03 (23/5) A.18.03 (23.1/5)
! A.18.03 (58.2/5) A.18.03 (96/5) A.18.03 (97.1/5)
! @end itemize
! 
! @geindex AI12-0401 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0401 Renaming of qualified expression of variable (2020-10-31)'
! 
! Ada 2022 AI12-0401 restricts renaming of a qualified expression to cases where
! the operand is a constant, or the target subtype statically matches the nominal subtype of the operand, or is unconstrained with no predicates, to prevent setting variables to values outside their range or constraints.
! 
! RM references: 3.03 (23.2/3) 8.05.01 (4.7/5) 8.05.01 (5/3)
! @end itemize
! 
! @geindex AI12-0402 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item
! `AI12-0402 Master of a function call with elementary result type (2026-01-07)'
! 
! This AI restricts the rule that makes the master of a function call, which
! is used to directly initialize part of an object, that of the object being
! initialized, to the case where the result type of the function is composite.
! 
! RM references: 3.10.2 (10.2/5)
! @end itemize
! 
! @geindex AI12-0409 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0409 Preelaborable_Initialization and bounded containers (2021-06-23)'
! 
! As defined by this AI, the @code{Preelaborable_Initializatio} aspect now has a
! corresponding attribute of the same name. Types declared within a generic package specification are permitted to specify the expression of a @code{Prelaborable_Initialization} aspect by including one or more references to the attribute applied to a formal private or formal derived type conjoined by @code{and} operators. This permits the full type of a private type with such an aspect expression to have components of the named formal types, and such a type will have preelaborable initialization in an instance when the
! actual types for all referenced formal types have preelaborable initialization.
! 
! RM references: 10.02.01 (4.1/2) 10.02.01 (4.2/2) 10.02.01 (11.1/2)
! 10.02.01 (11.2/2) 10.02.01 (11.6/2) 10.02.01 (11.7/2) 10.02.01
! (11.8/2) 13.01 (11/3) A.18.19 (5/5) A.18.20 (5/5) A.18.21 (5/5)
! A.18.22 (5/5) A.18.23 (5/5) A.18.24 (5/5) A.18.25 (5/5) A.18.32
! (6/5) J.15.14 (0)
! @end itemize
! 
! @geindex AI12-0411 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0411 Add “bool” to Interfaces.C (0000-00-00)'
! 
! RM references: B.03 (13) B.03 (43/2) B.03 (65.1/4)
! @end itemize
! 
! @geindex AI12-0412 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0412 Abstract Pre/Post’Class on primitive of abstract type (2021-05-19)'
! 
! In Ada 2022, by AI12-0412, it’s legal to specify Pre’Class and Post’Class
! aspects on nonabstract primitive subprograms of an abstract type, but if the
! expression of such an aspect is nonstatic, then it’s illegal to make a nondispatching call to such a primitive, to apply @code{'Access} to it, or to pass such a primitive as an actual subprogram for a concrete formal subprogram in a generic instantiation.
! 
! RM references: 6.01.01 (18.2/4)
! @end itemize
! 
! @geindex AI12-0413 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0413 Reemergence of “=” when defined to be abstract (0000-00-00)'
! 
! The AI clarifies rules about operator reemergence in instances, and nondispatching calls to abstract subprograms.
! 
! RM references: 3.09.03 (7) 4.05.02 (14.1/3) 4.05.02 (24.1/3) 12.05 (8/3)
! @end itemize
! 
! @geindex AI12-0423 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0423 Aspect inheritance fixups (0000-00-00)'
! 
! Clarify that the No_Return aspect behaves as one would expect for an inherited subprogram and that inheritance works as one would expect for a multi-part aspect whose value is specified via an aggregate (e.g., the Aggregate aspect).
! 
! RM references: 6.05.01 (3.3/3) 13.01 (15.7/5) 13.01 (15.8/5)
! @end itemize
! 
! @geindex AI12-0432 (Ada 2022 feature)
! 
! 
! @itemize *
! 
! @item 
! `AI12-0432 View conversions of assignments and predicate checks (2021-05-05)'
! 
! When a predicate applies to a tagged type, a view conversion to that type
! normally requires a predicate check. However, as specified by AI12-0432, when the view conversion appears as the target of an assignment, a predicate check is not applied to the object in the conversion.
! 
! RM references: 3.02.04 (31/5) 4.06 (51.1/5)
! @end itemize
! 
! @node GNAT language extensions,Security Hardening Features,Implementation of Ada 2022 Features,Top
! @anchor{gnat_rm/gnat_language_extensions doc}@anchor{44c}@anchor{gnat_rm/gnat_language_extensions gnat-language-extensions}@anchor{44d}@anchor{gnat_rm/gnat_language_extensions id1}@anchor{44e}
  @chapter GNAT language extensions
  
  
*************** These features might be removed or heavi
*** 29125,29131 ****
  @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
  
  
--- 30753,30759 ----
  @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{44f}
  @section How to activate the extended GNAT Ada superset
  
  
*************** There are two ways to activate the exten
*** 29135,29141 ****
  @itemize *
  
  @item 
! The @ref{69,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
--- 30763,30769 ----
  @itemize *
  
  @item 
! The @ref{6a,,Pragma Extensions_Allowed}. To activate
  the curated set of extensions, you should use
  @end itemize
  
*************** for use in playground experiments.
*** 29166,29172 ****
  @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
  
  
--- 30794,30800 ----
  @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{450}@anchor{gnat_rm/gnat_language_extensions curated-language-extensions}@anchor{6b}
  @section Curated Extensions
  
  
*************** Features activated via @code{-gnatX} or
*** 29183,29193 ****
  * 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
  
  
--- 30811,30822 ----
  * Constrained attribute for generic objects:: 
  * Static aspect on intrinsic functions:: 
  * First Controlling Parameter:: 
+ * Generalized Finalization:: 
  
  @end menu
  
  @node Local Declarations Without Block,Deep delta Aggregates,,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions local-declarations-without-block}@anchor{451}
  @subsection Local Declarations Without Block
  
  
*************** And as such the second `@w{`}A`@w{`} dec
*** 29280,29286 ****
  @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
  
  
--- 30909,30915 ----
  @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{452}
  @subsection Deep delta Aggregates
  
  
*************** The syntax of delta aggregates in the ex
*** 29302,29308 ****
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{449}
  @subsubsection Syntax
  
  
--- 30931,30937 ----
  @end menu
  
  @node Syntax,Legality Rules,,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions syntax}@anchor{453}
  @subsubsection Syntax
  
  
*************** array_subcomponent_choice ::=
*** 29348,29354 ****
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{44a}
  @subsubsection Legality Rules
  
  
--- 30977,30983 ----
  @end example
  
  @node Legality Rules,Dynamic Semantics,Syntax,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions legality-rules}@anchor{454}
  @subsubsection Legality Rules
  
  
*************** the object denoted by the base_expressio
*** 29385,29391 ****
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{44b}
  @subsubsection Dynamic Semantics
  
  
--- 31014,31020 ----
  @end enumerate
  
  @node Dynamic Semantics,Examples,Legality Rules,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions dynamic-semantics}@anchor{455}
  @subsubsection Dynamic Semantics
  
  
*************** and assigned to the corresponding subcom
*** 29442,29448 ****
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{44c}
  @subsubsection Examples
  
  
--- 31071,31077 ----
  @end itemize
  
  @node Examples,,Dynamic Semantics,Deep delta Aggregates
! @anchor{gnat_rm/gnat_language_extensions examples}@anchor{456}
  @subsubsection Examples
  
  
*************** end;
*** 29470,29476 ****
  @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
  
  
--- 31099,31105 ----
  @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{457}
  @subsection Fixed lower bounds for array types and subtypes
  
  
*************** lower bound of unconstrained array forma
*** 29521,29527 ****
  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
  
  
--- 31150,31156 ----
  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{458}
  @subsection Prefixed-view notation for calls to primitive subprograms of untagged types
  
  
*************** pragma Assert (V.Nth_Element(1) = 42);
*** 29571,29577 ****
  @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
  
  
--- 31200,31206 ----
  @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{459}
  @subsection Expression defaults for generic formal functions
  
  
*************** If the default is used (i.e. there is no
*** 29602,29608 ****
  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
  
  
--- 31231,31237 ----
  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{45a}
  @subsection String interpolation
  
  
*************** a double quote is " and an open brace is
*** 29769,29775 ****
  @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
  
  
--- 31398,31404 ----
  @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{45b}
  @subsection Constrained attribute for generic objects
  
  
*************** The @code{Constrained} attribute is perm
*** 29777,29783 ****
  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
  
  
--- 31406,31412 ----
  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{45c}
  @subsection @code{Static} aspect on intrinsic functions
  
  
*************** The Ada 202x @code{Static} aspect can be
*** 29785,29792 ****
  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
  
  
--- 31414,31421 ----
  and the compiler will evaluate some of these intrinsics statically, in
  particular the @code{Shift_Left} and @code{Shift_Right} intrinsics.
  
! @node First Controlling Parameter,Generalized Finalization,Static aspect on intrinsic functions,Curated Extensions
! @anchor{gnat_rm/gnat_language_extensions first-controlling-parameter}@anchor{45d}
  @subsection First Controlling Parameter
  
  
*************** overriding a primitive or creating new o
*** 29885,29892 ****
  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
  
  
--- 31514,31683 ----
  The result of a function is never a controlling result.
  @end itemize
  
+ @node Generalized Finalization,,First Controlling Parameter,Curated Extensions
+ @anchor{gnat_rm/gnat_language_extensions generalized-finalization}@anchor{45e}
+ @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.
+ Here is the archetypal example:
+ 
+ @example
+ 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);
+ @end example
+ 
+ The three procedures have the same profile, with a single @code{in out} parameter,
+ and also have the same dynamic semantics as for controlled types:
+ 
+ @quotation
+ 
+ 
+ @itemize -
+ 
+ @item 
+ @code{Initialize} is called when an object of type @code{T} is declared without
+ initialization 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 deallocated (for heap-allocated objects).
+ It is also called when the value is replaced by an assignment.
+ @end itemize
+ @end quotation
+ 
+ However, when @code{Relaxed_Finalization} is either @code{True} or not explicitly
+ specified, the following differences are implemented relative to the semantics
+ of controlled types:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ The compiler has permission to perform no automatic finalization of
+ heap-allocated objects: @code{Finalize} is only called when such an object
+ is explicitly deallocated, or when the designated object is assigned a new
+ value. As a consequence, no runtime support is needed for performing
+ implicit deallocation. In particular, no per-object header data is needed
+ for heap-allocated objects.
+ 
+ Heap-allocated objects allocated through a nested access type will therefore
+ `not' be deallocated either. The result is simply that memory will be leaked
+ in this case.
+ 
+ @item 
+ The @code{Adjust} and @code{Finalize} procedures are automatically considered as
+ having the @ref{45f,,No_Raise aspect} specified for them. In particular, the
+ compiler has permission to enforce none of the guarantees specified by the
+ RM 7.6.1 (14/1) and subsequent subclauses.
+ @end itemize
+ 
+ Simple example of 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 Finalizable => (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
+ 
+ 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 Finalizable (Finalize => Close);
+ end P;
+ @end example
+ 
+ @menu
+ * Finalizable tagged types:: 
+ * Composite types:: 
+ * Interoperability with controlled types:: 
+ 
+ @end menu
+ 
+ @node Finalizable tagged types,Composite types,,Generalized Finalization
+ @anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{460}
+ @subsubsection Finalizable tagged types
+ 
+ 
+ The aspect is inherited by derived types and the primitives may be overridden
+ by the derivation. The compiler-generated calls to these operations are then
+ dispatching whenever it makes sense, i.e. when the object in question is of a
+ class-wide type and the class includes at least one finalizable tagged type.
+ 
+ @node Composite types,Interoperability with controlled types,Finalizable tagged types,Generalized Finalization
+ @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{461}
+ @subsubsection Composite types
+ 
+ 
+ When a finalizable type is used as a component of a composite type, the latter
+ becomes finalizable as well. The three primitives are derived automatically
+ in order to call the primitives of their components. The dynamic semantics is
+ the same as for controlled components of composite types.
+ 
+ @node Interoperability with controlled types,,Composite types,Generalized Finalization
+ @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{462}
+ @subsubsection Interoperability with controlled types
+ 
+ 
+ Finalizable types are fully interoperable with controlled types, in particular
+ it is possible for a finalizable type to have a controlled component and vice
+ versa, but the stricter dynamic semantics, in other words that of controlled
+ types, is applied in this case.
+ 
  @node Experimental Language Extensions,,Curated Extensions,GNAT language extensions
! @anchor{gnat_rm/gnat_language_extensions experimental-language-extensions}@anchor{6c}@anchor{gnat_rm/gnat_language_extensions id2}@anchor{463}
  @section Experimental Language Extensions
  
  
*************** Features activated via @code{-gnatX0} or
*** 29895,29915 ****
  
  @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
  
  
--- 31686,31709 ----
  
  @menu
  * Conditional when constructs:: 
+ * Implicit With:: 
  * Storage Model:: 
  * Attribute Super:: 
  * Simpler Accessibility Model:: 
  * Case pattern matching:: 
  * Mutably Tagged Types with Size’Class Aspect:: 
  * No_Raise aspect:: 
  * Inference of Dependent Types in Generic Instantiations:: 
  * External_Initialization Aspect:: 
  * Finally construct:: 
+ * Continue statement:: 
+ * Destructors:: 
+ * Structural Generic Instantiation:: 
  
  @end menu
  
! @node Conditional when constructs,Implicit With,,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions conditional-when-constructs}@anchor{464}
  @subsection Conditional when constructs
  
  
*************** begin
*** 29977,29984 ****
  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
  
  
--- 31771,31795 ----
  end;
  @end example
  
! @node Implicit With,Storage Model,Conditional when constructs,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions implicit-with}@anchor{465}
! @subsection Implicit With
! 
! 
! This feature allows a standalone @code{use} clause in the context clause of a
! compilation unit to imply an implicit @code{with} of the same library unit where
! an equivalent @code{with} clause would be allowed.
! 
! @example
! use Ada.Text_IO;
! procedure Main is
! begin
!    Put_Line ("Hello");
! end;
! @end example
! 
! @node Storage Model,Attribute Super,Implicit With,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions storage-model}@anchor{466}
  @subsection Storage Model
  
  
*************** memory models, in particular to support
*** 29995,30001 ****
  @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
  
  
--- 31806,31812 ----
  @end menu
  
  @node Aspect Storage_Model_Type,Aspect Designated_Storage_Model,,Storage Model
! @anchor{gnat_rm/gnat_language_extensions aspect-storage-model-type}@anchor{467}
  @subsubsection Aspect Storage_Model_Type
  
  
*************** end CUDA_Memory;
*** 30129,30135 ****
  @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
  
  
--- 31940,31946 ----
  @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{468}
  @subsubsection Aspect Designated_Storage_Model
  
  
*************** begin
*** 30207,30213 ****
  @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
  
  
--- 32018,32024 ----
  @end example
  
  @node Legacy Storage Pools,,Aspect Designated_Storage_Model,Storage Model
! @anchor{gnat_rm/gnat_language_extensions legacy-storage-pools}@anchor{469}
  @subsubsection Legacy Storage Pools
  
  
*************** type Acc is access Integer_Array with St
*** 30258,30264 ****
  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
  
  
--- 32069,32075 ----
  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{46a}
  @subsection Attribute Super
  
  
*************** end;
*** 30293,30299 ****
  @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
  
  
--- 32104,32110 ----
  @end example
  
  @node Simpler Accessibility Model,Case pattern matching,Attribute Super,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions simpler-accessibility-model}@anchor{46b}
  @subsection Simpler Accessibility Model
  
  
*************** All of the refined rules are compatible
*** 30324,30330 ****
  @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
  
  
--- 32135,32141 ----
  @end menu
  
  @node Stand-alone objects,Subprogram parameters,,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions stand-alone-objects}@anchor{46c}
  @subsubsection Stand-alone objects
  
  
*************** of the RM 4.6 rule “The accessibility
*** 30372,30378 ****
  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
  
  
--- 32183,32189 ----
  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{46d}
  @subsubsection Subprogram parameters
  
  
*************** end;
*** 30465,30471 ****
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{45e}
  @subsubsection Function results
  
  
--- 32276,32282 ----
  @end example
  
  @node Function results,,Subprogram parameters,Simpler Accessibility Model
! @anchor{gnat_rm/gnat_language_extensions function-results}@anchor{46e}
  @subsubsection Function results
  
  
*************** end;
*** 30593,30599 ****
  @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
  
  
--- 32404,32410 ----
  @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{46f}
  @subsection Case pattern matching
  
  
*************** compile-time capacity limits in some ann
*** 30722,31022 ****
  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.
! Here is the archetypal example:
  
! @example
! 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);
! @end example
  
! The three procedures have the same profile, with a single @code{in out} parameter,
! and also have the same dynamic semantics as for controlled types:
  
! @quotation
  
  
! @itemize -
  
  @item 
! @code{Initialize} is called when an object of type @code{T} is declared without
! initialization 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 deallocated (for heap-allocated objects).
! It is also called when the value is replaced by an assignment.
! @end itemize
! @end quotation
! 
! However, when @code{Relaxed_Finalization} is either @code{True} or not explicitly
! specified, the following differences are implemented relative to the semantics
! of controlled types:
! 
! 
! @itemize *
  
  @item 
! The compiler has permission to perform no automatic finalization of
! heap-allocated objects: @code{Finalize} is only called when such an object
! is explicitly deallocated, or when the designated object is assigned a new
! value. As a consequence, no runtime support is needed for performing
! implicit deallocation. In particular, no per-object header data is needed
! for heap-allocated objects.
  
! Heap-allocated objects allocated through a nested access type will therefore
! `not' be deallocated either. The result is simply that memory will be leaked
! in this case.
  
  @item 
! The @code{Adjust} and @code{Finalize} procedures are automatically considered as
! having the @ref{466,,No_Raise aspect} specified for them. In particular, the
! compiler has permission to enforce none of the guarantees specified by the
! RM 7.6.1 (14/1) and subsequent subclauses.
  @end itemize
  
! Simple example of 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 Finalizable => (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
! 
! 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 Finalizable (Finalize => Close);
! end P;
! @end example
! 
! @menu
! * Finalizable tagged types:: 
! * Composite types:: 
! * Interoperability with controlled types:: 
! 
! @end menu
! 
! @node Finalizable tagged types,Composite types,,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions finalizable-tagged-types}@anchor{463}
! @subsubsection Finalizable tagged types
! 
! 
! The aspect is inherited by derived types and the primitives may be overridden
! by the derivation. The compiler-generated calls to these operations are then
! dispatching whenever it makes sense, i.e. when the object in question is of a
! class-wide type and the class includes at least one finalizable tagged type.
! 
! @node Composite types,Interoperability with controlled types,Finalizable tagged types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions composite-types}@anchor{464}
! @subsubsection Composite types
  
  
! When a finalizable type is used as a component of a composite type, the latter
! becomes finalizable as well. The three primitives are derived automatically
! in order to call the primitives of their components. The dynamic semantics is
! the same as for controlled components of composite types.
  
! @node Interoperability with controlled types,,Composite types,Generalized Finalization
! @anchor{gnat_rm/gnat_language_extensions interoperability-with-controlled-types}@anchor{465}
! @subsubsection Interoperability with controlled types
  
  
! Finalizable types are fully interoperable with controlled types, in particular
! it is possible for a finalizable type to have a controlled component and vice
! versa, but the stricter dynamic semantics, in other words that of controlled
! types, is applied in this case.
  
! @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Generalized Finalization,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{466}
  @subsection No_Raise aspect
  
  
--- 32533,32711 ----
  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,No_Raise aspect,Case pattern matching,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions mutably-tagged-types-with-size-class-aspect}@anchor{470}
  @subsection Mutably Tagged Types with Size’Class Aspect
  
  
! For a specific tagged nonformal type T that satisfies some conditions
! described later in this section, the universal-integer-valued type-related
! representation aspect @code{Size'Class} may be specified; any such specified
! aspect value shall be static.
  
! Specifying this aspect imposes an upper bound on the sizes of all specific
! descendants of T (including T itself). T’Class (but not T) is then said to be
! a “mutably tagged” type - meaning that T’Class is a definite subtype and that
! the tag of a variable of type T’Class may be modified by assignment in some
! cases described later in this section. An inherited @code{Size'Class} aspect
! value may be overridden, but not with a larger value.
  
! If the @code{Size'Class} aspect is specified for a type T, then every specific
! descendant of T (including T itself)
  
  
! @itemize *
  
  @item 
  shall have a Size that does not exceed the specified value; and
  
  @item 
! shall have a (possibly inherited) @code{Size'Class} aspect that does not exceed
! the specifed value; and
  
  @item 
! shall be undiscriminated; and
  
  @item 
! shall have no composite subcomponent whose subtype is subject to a nonstatic
! constraint; and
  
  @item 
  shall not have a tagged partial view other than a private extension; and
  
  @item 
! shall not be a descendant of an interface type; and
  
  @item 
! shall not have a statically deeper accessibility level than that of T.
  @end itemize
  
! If the @code{Size'Class} aspect is not specified for a type T (either explicitly
! or by inheritance), then it shall not be specified for any descendant of T.
  
! Example:
  
! @example
! type Root_Type is tagged null record with Size'Class => 16 * 8;
  
! type Derived_Type is new Root_Type with record
!    Stuff : Some_Type;
! end record;  -- ERROR if Derived_Type exceeds 16 bytes
! @end example
  
! Because any subtype of a mutably tagged type is definite, it can be used as a
! component subtype for enclosing array or record types, as the subtype of a
! default-initialized stand-alone object, or as the subtype of an uninitialized
! allocator, as in this example:
  
+ @example
+ Obj : Root_Type'Class;
+ type Array_of_Roots is array (Positive range <>) of Root_Type'Class;
+ @end example
  
! 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.
  
! There is a general design principle that if a type has a tagged partial view,
! then the type’s @code{Size'Class} aspect (or lack thereof) should be determinable
! by looking only at the partial view. That provides the motivation for the
! rules of the next two paragraphs.
  
! If a type has a tagged partial view, then a @code{Size'Class} aspect specification
! may be provided only at the point of the partial view declaration (in other
! words, no such aspect specification may be provided when the full view of
! the type is declared). All of the above rules (in particular, the rule that
! an overriding @code{Size'Class} aspect value shall not be larger than the
! overridden inherited value) are also enforced when the full view (which may
! have a different ancestor type than that of the partial view) is declared.
! If a partial view for a type inherits a @code{Size'Class} aspect value and does
! not override that value with an explicit aspect specification, then the
! (static) aspect values inherited by the partial view and by the full view
! shall be equal.
  
! An actual parameter of an instantiation whose corresponding formal parameter
! is a formal tagged private type shall not be either mutably tagged or the
! corresponding specific type of a mutably tagged type.
  
! For the legality rules in this section, the RM 12.3(11) rule about legality
! checking in the visible part and formal part of an instance is extended (in
! the same way that it is extended in many other places in the RM) to include
! the private part of an instance.
  
! An object (or a view thereof) 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 view conversion to a type that is not a descendant of the operand’s
! type; or
  
! @item 
! a formal in out or out parameter whose corresponding actual parameter is
! tag-constrained; or
  
  @item 
! a dereference of an access value.
  @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. Note that the tag of an object of a mutably tagged type MT
! will always be the tag of some specific type that is a descendant of MT.
! 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 RM 8.5.1) for a type conversion having an operand
! of a mutably tagged type MT and a target type TT such that TT (or its
! corresponding specific type if TT is class-wide) is not an ancestor of MT
! (this is sometimes called a “downward” conversion), nor for any part of
! such an object, nor for any slice of any part 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).
! [This is analogous to the way that renaming is not allowed for a
! discriminant-dependent component of an unconstrained variable.]
  
! 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. This disallows, for example, renaming such a prefixed view,
! passing the prefixed view name as a generic actual parameter, or using the
! prefixed view name as the prefix of an attribute.
  
+ 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.
+ This is analogous to the RM 3.7.2(4) rule about discriminant-dependent
+ subcomponents.
  
! 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).
! This is analogous to the RM 6.4.1(18) rule about discriminated parameters.
  
! @node No_Raise aspect,Inference of Dependent Types in Generic Instantiations,Mutably Tagged Types with Size’Class Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions id3}@anchor{471}@anchor{gnat_rm/gnat_language_extensions no-raise-aspect}@anchor{45f}
  @subsection No_Raise aspect
  
  
*************** be raised during the execution of the su
*** 31026,31032 ****
  this execution and @code{Program_Error} is propagated to the caller.
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{467}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
--- 32715,32721 ----
  this execution and @code{Program_Error} is propagated to the caller.
  
  @node Inference of Dependent Types in Generic Instantiations,External_Initialization Aspect,No_Raise aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions inference-of-dependent-types-in-generic-instantiations}@anchor{472}
  @subsection Inference of Dependent Types in Generic Instantiations
  
  
*************** package Int_Array_Operations is new Arra
*** 31103,31109 ****
  @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{468}
  @subsection External_Initialization Aspect
  
  
--- 32792,32798 ----
  @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{473}
  @subsection External_Initialization Aspect
  
  
*************** The maximum size of loaded files is limi
*** 31143,31150 ****
  @end quotation
  @end cartouche
  
! @node Finally construct,,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}
  @subsection Finally construct
  
  
--- 32832,32839 ----
  @end quotation
  @end cartouche
  
! @node Finally construct,Continue statement,External_Initialization Aspect,Experimental Language Extensions
! @anchor{gnat_rm/gnat_language_extensions finally-construct}@anchor{474}
  @subsection Finally construct
  
  
*************** This feature is similar to the one with
*** 31161,31167 ****
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{46a}
  @subsubsection Syntax
  
  
--- 32850,32856 ----
  @end menu
  
  @node Syntax<2>,Legality Rules<2>,,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id4}@anchor{475}
  @subsubsection Syntax
  
  
*************** handled_sequence_of_statements ::=
*** 31176,31182 ****
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{46b}
  @subsubsection Legality Rules
  
  
--- 32865,32871 ----
  @end example
  
  @node Legality Rules<2>,Dynamic Semantics<2>,Syntax<2>,Finally construct
! @anchor{gnat_rm/gnat_language_extensions id5}@anchor{476}
  @subsubsection Legality Rules
  
  
*************** to be transferred outside the finally pa
*** 31186,31192 ****
  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{46c}
  @subsubsection Dynamic Semantics
  
  
--- 32875,32881 ----
  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{477}
  @subsubsection Dynamic Semantics
  
  
*************** Abort/ATC (asynchronous transfer of cont
*** 31200,31207 ****
  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{46d}@anchor{gnat_rm/security_hardening_features id1}@anchor{46e}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
--- 32889,33177 ----
  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 Continue statement,Destructors,Finally construct,Experimental Language Extensions
+ @anchor{gnat_rm/gnat_language_extensions continue-statement}@anchor{478}
+ @subsection Continue statement
+ 
+ 
+ The @code{continue} keyword makes it possible to stop execution of a loop iteration
+ and continue with the next one. A continue statement has the same syntax
+ (except “exit” is replaced with “continue”), static semantics, and legality
+ rules as an exit statement. The difference is in the dynamic semantics: where an
+ exit statement would cause a transfer of control that completes the (implicitly
+ or explicitly) specified loop_statement, a continue statement would instead
+ cause a transfer of control that completes only the current iteration of that
+ loop_statement, like a goto statement targeting a label following the last
+ statement in the sequence of statements of the specified loop_statement.
+ 
+ Note that @code{continue} is a keyword but it is not a reserved word. This is a
+ configuration that does not exist in standard Ada.
+ 
+ @node Destructors,Structural Generic Instantiation,Continue statement,Experimental Language Extensions
+ @anchor{gnat_rm/gnat_language_extensions destructors}@anchor{479}
+ @subsection Destructors
+ 
+ 
+ The @code{Destructor} extension adds a new finalization mechanism that
+ significantly differs standard Ada in how it interacts with type derivation.
+ 
+ New syntax is introduced to make it possible to define “destructors” for record
+ types, tagged or untagged. Here’s a simple example:
+ 
+ @example
+ package P is
+    type T is record
+       ...
+    end record;
+ 
+    procedure T'Destructor (X : in out T);
+ end P;
+ @end example
+ 
+ @example
+ package body P is
+    procedure T'Destructor (X : in out T) is
+    begin
+       ...
+    end T'Destructor;
+ end P;
+ @end example
+ 
+ Like @code{Finalize} procedures, destructors are called on objects just before they
+ are destroyed. But destructors are more flexible in how they can used with derived
+ types. With standard Ada finalization, when you derive from a finalizable type,
+ you must either inherit the @code{Finalize} procedure or override it completely.
+ 
+ Destructors work differently. You can define a destructor for a type derived from
+ a parent type that also has a destructor, and then when objects of the derived type
+ are finalized, both destructors will be called. For example:
+ 
+ @example
+ type T1 is record
+    ...
+ end record;
+ 
+ procedure T1'Destructor (X : in out T1);
+ 
+ type T2 is new T1;
+ 
+ procedure T2'Destructor (X : in out T2);
+ @end example
+ 
+ When an object of type @code{T2} is finalized, there will be first a call to
+ @code{T2'Destructor}, and then a call to @code{T1'Destructor} on the object.
+ 
+ @node Structural Generic Instantiation,,Destructors,Experimental Language Extensions
+ @anchor{gnat_rm/gnat_language_extensions structural-generic-instantiation}@anchor{47a}
+ @subsection Structural Generic Instantiation
+ 
+ 
+ The compiler implements a second kind of generic instantiation, called
+ “structural”, alongside the traditional instantiation specified by the
+ language, which is defined as follows: the structural instantiation of
+ a generic unit on given actual parameters is the anonymous instantiation
+ of the generic unit on the actual parameters done in the outermost scope
+ where it would be legal to do an identical traditional instantiation.
+ 
+ There is at most one structural instantiation of a generic unit on given
+ actual parameters done in a partition.
+ 
+ Structural generic instances (the product of structural instantiation)
+ are implicitly created whenever a reference to them is made in a place
+ where a name is accepted by the language.
+ 
+ @menu
+ * Syntax: Syntax<3>. 
+ * Legality Rules: Legality Rules<3>. 
+ * Static Semantics:: 
+ 
+ @end menu
+ 
+ @node Syntax<3>,Legality Rules<3>,,Structural Generic Instantiation
+ @anchor{gnat_rm/gnat_language_extensions id7}@anchor{47b}
+ @subsubsection Syntax
+ 
+ 
+ @example
+ name ::= @{ set of productions specified in the RM @}
+          | structural_generic_instance_name
+ 
+ structural_generic_instance_name ::= name generic_actual_part
+ @end example
+ 
+ @node Legality Rules<3>,Static Semantics,Syntax<3>,Structural Generic Instantiation
+ @anchor{gnat_rm/gnat_language_extensions id8}@anchor{47c}
+ @subsubsection Legality Rules
+ 
+ 
+ The @code{name} in a @code{structural_generic_instance_name} shall denote a generic
+ unit that is preelaborated. Note that, unlike in a traditional instantiation,
+ there are no square brackets around the @code{generic_actual_part} in the second
+ production, which means that it is mandatory and, therefore, that the generic
+ unit shall have at least one generic formal parameter.
+ 
+ The generic unit shall not take a generic formal object of mode @code{in out}.
+ If the generic unit takes a generic formal object of mode @code{in}, then the
+ corresponding generic actual parameter shall be a static expression.
+ 
+ A @code{structural_generic_instance_name} for a generic package shall not be
+ present in a library unit if the structural instance is also a library unit
+ and has a semantic dependence on the former.
+ 
+ For a generic subprogram, if a local entity of the enclosing library-level
+ package is used as an actual and the structural instance would have a semantic
+ dependence on the package, the structural instantiation is automatically
+ demoted to a local instantiation. In this case, several instances of the
+ generic subprogram may be present in a single partition, unless
+ whole-partition optimization is performed (e.g., via LTO).
+ 
+ @node Static Semantics,,Legality Rules<3>,Structural Generic Instantiation
+ @anchor{gnat_rm/gnat_language_extensions static-semantics}@anchor{47d}
+ @subsubsection Static Semantics
+ 
+ 
+ A @code{structural_generic_instance_name} denotes the instance that is the
+ product of the structural instantiation of a generic unit on the specified
+ actual parameters. This instance is unique to a partition, except when a
+ generic subprogram instantiation is automatically demoted to a local
+ instantiation as described under Legality Rules.
+ 
+ 
+ Example:
+ 
+ @example
+ with Ada.Containers.Vectors;
+ 
+ procedure P is
+    V : Ada.Containers.Vectors(Positive,Integer).Vector;
+ 
+ begin
+    V.Append (1);
+    V.Append (0);
+    Ada.Containers.Vectors(Positive,Integer).Generic_Sorting("<").Sort (V);
+ end;
+ @end example
+ 
+ This procedure references two structural instantiations of two different generic
+ units: @code{Ada.Containers.Vectors(Positive,Integer)} is the structural instance
+ of the generic unit @code{Ada.Containers.Vectors} on @code{Positive} and @code{Integer}
+ and @code{Ada.Containers.Vectors(Positive,Integer).Generic_Sorting("<")} is the
+ structural instance of the nested generic unit
+ @code{Ada.Containers.Vectors(Positive,Integer).Generic_Sorting} on @code{"<"}.
+ 
+ Note that the following example is illegal:
+ 
+ @example
+ with Ada.Containers.Vectors;
+ 
+ package Q is
+    type T is record
+       I : Integer;
+    end record;
+ 
+    V : Ada.Containers.Vectors(Positive,T).Vector;
+ end Q;
+ @end example
+ 
+ The reason is that @code{Ada.Containers.Vectors}, @code{Positive} and @code{Q.T}
+ being library-level entities, the structural instance @code{Ada.Containers.Vectors(Positive,T)} is a library unit with a dependence
+ on @code{Q} and, therefore, cannot be referenced from within @code{Q}. This
+ restriction applies to structural instantiations of generic packages. The simple
+ way out is to declare a traditional instantiation in this case:
+ 
+ @example
+ with Ada.Containers.Vectors;
+ 
+ package Q is
+    type T is record
+       I : Integer;
+    end record;
+ 
+    package Vectors_Of_T is new Ada.Containers.Vectors(Positive,T);
+ 
+    V : Vectors_Of_T.Vector;
+ end Q;
+ @end example
+ 
+ But the following example is legal:
+ 
+ @example
+ with Ada.Containers.Vectors;
+ 
+ procedure P is
+    type T is record
+       I : Integer;
+    end record;
+ 
+    V : Ada.Containers.Vectors(Positive,T).Vector;
+ end;
+ @end example
+ 
+ because the structural instance @code{Ada.Containers.Vectors(Positive,T)} is
+ not a library unit.
+ 
+ For generic subprograms, the restriction does not apply: if a local entity of
+ a library-level package is used as an actual, the structural instantiation is
+ automatically demoted to a local instantiation. For example:
+ 
+ @example
+ with Ada.Unchecked_Deallocation;
+ 
+ package Q is
+    type T is record
+       I : Integer;
+    end record;
+ 
+    type T_Access is access T;
+ end Q;
+ 
+ package body Q is
+    procedure Free_T (X : in out T_Access) is
+    begin
+       Ada.Unchecked_Deallocation(T, T_Access)(X);
+    end Free_T;
+ end Q;
+ @end example
+ 
+ is legal: since @code{T} and @code{T_Access} are local entities of @code{Q},
+ the structural instantiation of @code{Ada.Unchecked_Deallocation} is demoted
+ to a local instantiation rather than producing an error. Note that the
+ uniqueness guarantee no longer holds in this case and several instances of
+ the generic subprogram may be present in a single partition.
+ 
+ The first example can be rewritten in a less verbose manner:
+ 
+ @example
+ with Ada.Containers.Vectors; use Ada.Containers.Vectors(Positive,Integer);
+ 
+ procedure P is
+    V : Vector;
+ 
+ begin
+    V.Append (1);
+    V.Append (0);
+    Generic_Sorting("<").Sort (V);
+ end;
+ @end example
+ 
+ Another example, which additionally uses the inference of dependent types:
+ 
+ @example
+ with Ada.Unchecked_Deallocation;
+ 
+ procedure P is
+ 
+    type Integer_Access is access all Integer;
+ 
+    A : Integer_Access := new Integer'(1);
+ 
+ begin
+    Ada.Unchecked_Deallocation(Name => Integer_Access) (A);
+ end;
+ @end example
+ 
  @node Security Hardening Features,Obsolescent Features,GNAT language extensions,Top
! @anchor{gnat_rm/security_hardening_features doc}@anchor{47e}@anchor{gnat_rm/security_hardening_features id1}@anchor{47f}@anchor{gnat_rm/security_hardening_features security-hardening-features}@anchor{15}
  @chapter Security Hardening Features
  
  
*************** are provided by GNAT.
*** 31211,31216 ****
--- 33181,33188 ----
  The features in this chapter are currently experimental and subject to
  change.
  
+ These features are supported only by the GCC back end, not by LLVM.
+ 
  @c Register Scrubbing:
  
  @menu
*************** change.
*** 31223,31229 ****
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{469}
  @section Register Scrubbing
  
  
--- 33195,33201 ----
  @end menu
  
  @node Register Scrubbing,Stack Scrubbing,,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features register-scrubbing}@anchor{480}
  @section Register Scrubbing
  
  
*************** programming languages, see @cite{Using t
*** 31259,31265 ****
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{470}
  @section Stack Scrubbing
  
  
--- 33231,33237 ----
  @c Stack Scrubbing:
  
  @node Stack Scrubbing,Hardened Conditionals,Register Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features stack-scrubbing}@anchor{481}
  @section Stack Scrubbing
  
  
*************** Bar_Callable_Ptr.
*** 31403,31409 ****
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{471}
  @section Hardened Conditionals
  
  
--- 33375,33381 ----
  @c Hardened Conditionals:
  
  @node Hardened Conditionals,Hardened Booleans,Stack Scrubbing,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-conditionals}@anchor{482}
  @section Hardened Conditionals
  
  
*************** be used with other programming languages
*** 31493,31499 ****
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{472}
  @section Hardened Booleans
  
  
--- 33465,33471 ----
  @c Hardened Booleans:
  
  @node Hardened Booleans,Control Flow Redundancy,Hardened Conditionals,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features hardened-booleans}@anchor{483}
  @section Hardened Booleans
  
  
*************** and more details on that attribute, see
*** 31554,31560 ****
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{473}
  @section Control Flow Redundancy
  
  
--- 33526,33532 ----
  @c Control Flow Redundancy:
  
  @node Control Flow Redundancy,,Hardened Booleans,Security Hardening Features
! @anchor{gnat_rm/security_hardening_features control-flow-redundancy}@anchor{484}
  @section Control Flow Redundancy
  
  
*************** see @cite{Using the GNU Compiler Collect
*** 31722,31737 ****
  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{474}@anchor{gnat_rm/obsolescent_features id1}@anchor{475}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are preferred ways of achieving
! the same effect. These features are provided solely for historical
! compatibility purposes.
  
  @menu
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
--- 33694,33710 ----
  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{485}@anchor{gnat_rm/obsolescent_features id1}@anchor{486}@anchor{gnat_rm/obsolescent_features obsolescent-features}@anchor{16}
  @chapter Obsolescent Features
  
  
  This chapter describes features that are provided by GNAT, but are
! considered obsolescent since there are other, more appropriate, ways
! of achieving the same effect. These features are provided solely for
! historical compatibility purposes.
  
  @menu
+ * PolyORB:: 
  * pragma No_Run_Time:: 
  * pragma Ravenscar:: 
  * pragma Restricted_Run_Time:: 
*************** compatibility purposes.
*** 31740,31747 ****
  
  @end menu
  
! @node pragma No_Run_Time,pragma Ravenscar,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{476}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{477}
  @section pragma No_Run_Time
  
  
--- 33713,33729 ----
  
  @end menu
  
! @node PolyORB,pragma No_Run_Time,,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id2}@anchor{487}@anchor{gnat_rm/obsolescent_features polyorb}@anchor{272}
! @section PolyORB
! 
! 
! PolyORB is a deprecated product. It will be baselined with the GNAT Pro
! release 28. After this release, there will be no new versions of this
! product. Contact AdaCore support to get recommendations for replacements.
! 
! @node pragma No_Run_Time,pragma Ravenscar,PolyORB,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id3}@anchor{488}@anchor{gnat_rm/obsolescent_features pragma-no-run-time}@anchor{489}
  @section pragma No_Run_Time
  
  
*************** preferred usage is to use an appropriate
*** 31754,31760 ****
  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{478}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{479}
  @section pragma Ravenscar
  
  
--- 33736,33742 ----
  includes just those features that are to be made accessible.
  
  @node pragma Ravenscar,pragma Restricted_Run_Time,pragma No_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id4}@anchor{48a}@anchor{gnat_rm/obsolescent_features pragma-ravenscar}@anchor{48b}
  @section pragma Ravenscar
  
  
*************** The pragma @code{Ravenscar} has exactly
*** 31763,31769 ****
  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{47a}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{47b}
  @section pragma Restricted_Run_Time
  
  
--- 33745,33751 ----
  is part of the new Ada 2005 standard.
  
  @node pragma Restricted_Run_Time,pragma Task_Info,pragma Ravenscar,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id5}@anchor{48c}@anchor{gnat_rm/obsolescent_features pragma-restricted-run-time}@anchor{48d}
  @section pragma Restricted_Run_Time
  
  
*************** preferred since the Ada 2005 pragma @cod
*** 31773,31779 ****
  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{47c}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{47d}
  @section pragma Task_Info
  
  
--- 33755,33761 ----
  this kind of implementation dependent addition.
  
  @node pragma Task_Info,package System Task_Info s-tasinf ads,pragma Restricted_Run_Time,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features id6}@anchor{48e}@anchor{gnat_rm/obsolescent_features pragma-task-info}@anchor{48f}
  @section pragma Task_Info
  
  
*************** in the spec of package System.Task_Info
*** 31799,31805 ****
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{47e}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{47f}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
--- 33781,33787 ----
  library.
  
  @node package System Task_Info s-tasinf ads,,pragma Task_Info,Obsolescent Features
! @anchor{gnat_rm/obsolescent_features package-system-task-info}@anchor{490}@anchor{gnat_rm/obsolescent_features package-system-task-info-s-tasinf-ads}@anchor{491}
  @section package System.Task_Info (@code{s-tasinf.ads})
  
  
*************** to support the @code{Task_Info} pragma.
*** 31809,31815 ****
  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{480}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{481}
  @chapter Compatibility and Porting Guide
  
  
--- 33791,33797 ----
  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{492}@anchor{gnat_rm/compatibility_and_porting_guide compatibility-and-porting-guide}@anchor{17}@anchor{gnat_rm/compatibility_and_porting_guide id1}@anchor{493}
  @chapter Compatibility and Porting Guide
  
  
*************** applications developed in other Ada envi
*** 31831,31837 ****
  @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{482}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{483}
  @section Writing Portable Fixed-Point Declarations
  
  
--- 33813,33819 ----
  @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{494}@anchor{gnat_rm/compatibility_and_porting_guide writing-portable-fixed-point-declarations}@anchor{495}
  @section Writing Portable Fixed-Point Declarations
  
  
*************** If you follow this scheme you will be gu
*** 31953,31965 ****
  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{484}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{485}
  @section Compatibility with Ada 83
  
  
! @geindex Compatibility (between Ada 83 and Ada 95 / Ada 2005 / Ada 2012)
  
! Ada 95 and the subsequent revisions Ada 2005 and Ada 2012
  are highly upwards compatible with Ada 83.  In
  particular, the design intention was that the difficulties associated
  with moving from Ada 83 to later versions of the standard should be no greater
--- 33935,33947 ----
  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{496}@anchor{gnat_rm/compatibility_and_porting_guide id3}@anchor{497}
  @section Compatibility with Ada 83
  
  
! @geindex Compatibility (between Ada 83 and Ada 95 / Ada 2005 / Ada 2012 / Ada 2022)
  
! Ada 95 and the subsequent revisions Ada 2005, Ada 2012, Ada 2022
  are highly upwards compatible with Ada 83.  In
  particular, the design intention was that the difficulties associated
  with moving from Ada 83 to later versions of the standard should be no greater
*************** following subsections treat the most lik
*** 31981,31987 ****
  @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{486}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{487}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
--- 33963,33969 ----
  @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{498}@anchor{gnat_rm/compatibility_and_porting_guide legal-ada-83-programs-that-are-illegal-in-ada-95}@anchor{499}
  @subsection Legal Ada 83 programs that are illegal in Ada 95
  
  
*************** the fix is usually simply to add the @co
*** 32081,32087 ****
  @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{488}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{489}
  @subsection More deterministic semantics
  
  
--- 34063,34069 ----
  @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{49a}@anchor{gnat_rm/compatibility_and_porting_guide more-deterministic-semantics}@anchor{49b}
  @subsection More deterministic semantics
  
  
*************** which open select branches are executed.
*** 32109,32115 ****
  @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{48a}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{48b}
  @subsection Changed semantics
  
  
--- 34091,34097 ----
  @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{49c}@anchor{gnat_rm/compatibility_and_porting_guide id6}@anchor{49d}
  @subsection Changed semantics
  
  
*************** covers only the restricted range.
*** 32151,32157 ****
  @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
  
  
--- 34133,34139 ----
  @end itemize
  
  @node Other language compatibility issues,,Changed semantics,Compatibility with Ada 83
! @anchor{gnat_rm/compatibility_and_porting_guide id7}@anchor{49e}@anchor{gnat_rm/compatibility_and_porting_guide other-language-compatibility-issues}@anchor{49f}
  @subsection Other language compatibility issues
  
  
*************** include @code{pragma Interface} and the
*** 32184,32190 ****
  @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{gnat_rm/compatibility_and_porting_guide id8}@anchor{48f}
  @section Compatibility between Ada 95 and Ada 2005
  
  
--- 34166,34172 ----
  @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{4a0}@anchor{gnat_rm/compatibility_and_porting_guide id8}@anchor{4a1}
  @section Compatibility between Ada 95 and Ada 2005
  
  
*************** can declare a function returning a value
*** 32256,32262 ****
  @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{490}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{491}
  @section Implementation-dependent characteristics
  
  
--- 34238,34244 ----
  @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{4a2}@anchor{gnat_rm/compatibility_and_porting_guide implementation-dependent-characteristics}@anchor{4a3}
  @section Implementation-dependent characteristics
  
  
*************** transition from certain Ada 83 compilers
*** 32279,32285 ****
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{492}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{493}
  @subsection Implementation-defined pragmas
  
  
--- 34261,34267 ----
  @end menu
  
  @node Implementation-defined pragmas,Implementation-defined attributes,,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id10}@anchor{4a4}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-pragmas}@anchor{4a5}
  @subsection Implementation-defined pragmas
  
  
*************** avoiding compiler rejection of units tha
*** 32301,32307 ****
  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{494}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{495}
  @subsection Implementation-defined attributes
  
  
--- 34283,34289 ----
  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{4a6}@anchor{gnat_rm/compatibility_and_porting_guide implementation-defined-attributes}@anchor{4a7}
  @subsection Implementation-defined attributes
  
  
*************** Ada 83, GNAT supplies the attributes @co
*** 32315,32321 ****
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{496}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{497}
  @subsection Libraries
  
  
--- 34297,34303 ----
  @code{Type_Class}.
  
  @node Libraries,Elaboration order,Implementation-defined attributes,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id12}@anchor{4a8}@anchor{gnat_rm/compatibility_and_porting_guide libraries}@anchor{4a9}
  @subsection Libraries
  
  
*************** be preferable to retrofit the applicatio
*** 32344,32350 ****
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{498}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{499}
  @subsection Elaboration order
  
  
--- 34326,34332 ----
  @end itemize
  
  @node Elaboration order,Target-specific aspects,Libraries,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide elaboration-order}@anchor{4aa}@anchor{gnat_rm/compatibility_and_porting_guide id13}@anchor{4ab}
  @subsection Elaboration order
  
  
*************** pragmas either globally (as an effect of
*** 32380,32386 ****
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{49a}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{49b}
  @subsection Target-specific aspects
  
  
--- 34362,34368 ----
  @end itemize
  
  @node Target-specific aspects,,Elaboration order,Implementation-dependent characteristics
! @anchor{gnat_rm/compatibility_and_porting_guide id14}@anchor{4ac}@anchor{gnat_rm/compatibility_and_porting_guide target-specific-aspects}@anchor{4ad}
  @subsection Target-specific aspects
  
  
*************** such an Ada 83 application is being port
*** 32390,32402 ****
  example where the byte endianness has changed) then you will need to
  carefully examine the program logic; the porting effort will heavily depend
  on the robustness of the original design.  Moreover, Ada 95 (and thus
! 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{49c,,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{49d}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{49e}
  @section Compatibility with Other Ada Systems
  
  
--- 34372,34384 ----
  example where the byte endianness has changed) then you will need to
  carefully examine the program logic; the porting effort will heavily depend
  on the robustness of the original design.  Moreover, Ada 95 (and thus
! Ada 2005, Ada 2012, and Ada 2022) are sometimes
  incompatible with typical Ada 83 compiler practices regarding implicit
  packing, the meaning of the Size attribute, and the size of access values.
! GNAT’s approach to these issues is described in @ref{4ae,,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{4af}@anchor{gnat_rm/compatibility_and_porting_guide id15}@anchor{4b0}
  @section Compatibility with Other Ada Systems
  
  
*************** far beyond this minimal set, as describe
*** 32439,32445 ****
  @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{49f}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{49c}
  @section Representation Clauses
  
  
--- 34421,34427 ----
  @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{4b1}@anchor{gnat_rm/compatibility_and_porting_guide representation-clauses}@anchor{4ae}
  @section Representation Clauses
  
  
*************** with thin pointers.
*** 32532,32538 ****
  @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{4a0}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4a1}
  @section Compatibility with HP Ada 83
  
  
--- 34514,34520 ----
  @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{4b2}@anchor{gnat_rm/compatibility_and_porting_guide id17}@anchor{4b3}
  @section Compatibility with HP Ada 83
  
  
*************** extension of package System.
*** 32562,32568 ****
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4a2}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4a3}
  @chapter GNU Free Documentation License
  
  
--- 34544,34550 ----
  @end itemize
  
  @node GNU Free Documentation License,Index,Compatibility and Porting Guide,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{4b4}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{4b5}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gnat_ugn.texi gcc-16.1.0-RC-20260423/gcc/ada/gnat_ugn.texi
*** gcc-15.2.0/gcc/ada/gnat_ugn.texi	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnat_ugn.texi	Thu Apr 23 11:07:32 2026
***************
*** 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
--- 3,9 ----
  @setfilename gnat_ugn.info
  @documentencoding UTF-8
  @ifinfo
! @*Generated by Sphinx 8.2.3.@*
  @end ifinfo
  @settitle GNAT User's Guide for Native Platforms
  @defindex ge
***************
*** 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
--- 19,29 ----
  
  @copying
  @quotation
! GNAT User's Guide for Native Platforms , Jan 09, 2026
  
  AdaCore
  
! Copyright @copyright{} 2008-2026, Free Software Foundation
  @end quotation
  
  @end copying
*************** GNAT and Program Execution
*** 334,339 ****
--- 334,340 ----
  * Performing Dimensionality Analysis in GNAT:: 
  * Stack Related Facilities:: 
  * Memory Management Issues:: 
+ * Sanitizers for Ada:: 
  
  Running and Debugging Ada Programs
  
*************** Memory Management Issues
*** 415,420 ****
--- 416,427 ----
  * Some Useful Memory Pools:: 
  * The GNAT Debug Pool Facility:: 
  
+ Sanitizers for Ada
+ 
+ * AddressSanitizer:: 
+ * UndefinedBehaviorSanitizer:: 
+ * Sanitizers in mixed-language applications:: 
+ 
  Platform-Specific Information
  
  * Run-Time Libraries:: 
*************** in an Ada program.
*** 641,647 ****
  This guide assumes a basic familiarity with the Ada 95 language, as
  described in the International Standard ANSI/ISO/IEC-8652:1995, January
  1995.
! Reference manuals for Ada 95, Ada 2005, and Ada 2012 are included in
  the GNAT documentation package.
  
  @node Related Information,Conventions,What You Should Know before Reading This Guide,About This Guide
--- 648,654 ----
  This guide assumes a basic familiarity with the Ada 95 language, as
  described in the International Standard ANSI/ISO/IEC-8652:1995, January
  1995.
! Reference manuals for Ada 95, Ada 2005, Ada 2012 and Ada 2022 are included in
  the GNAT documentation package.
  
  @node Related Information,Conventions,What You Should Know before Reading This Guide,About This Guide
*************** following documents:
*** 656,667 ****
  @itemize *
  
  @item 
! @cite{Ada 95 Reference Manual}, @cite{Ada 2005 Reference Manual}, and
! @cite{Ada 2012 Reference Manual}, which contain reference
! material for the several revisions of the Ada language standard.
  
  @item 
! @cite{GNAT Reference_Manual}, which contains all reference material for the GNAT
  implementation of Ada.
  
  @item 
--- 663,675 ----
  @itemize *
  
  @item 
! @cite{Ada 95 Reference Manual}, @cite{Ada 2005 Reference Manual},
! @cite{Ada 2012 Reference Manual},  and @cite{Ada 2022 Reference Manual},
! which contain reference material for the several revisions of the Ada language
! standard.
  
  @item 
! @cite{GNAT Reference Manual}, which contains all reference material for the GNAT
  implementation of Ada.
  
  @item 
*************** main GNAT Studio features through exampl
*** 675,685 ****
  @item 
  @cite{Debugging with GDB},
  for all details on the use of the GNU source-level debugger.
- 
- @item 
- @cite{GNU Emacs Manual},
- for full information on the extensible editor and programming
- environment Emacs.
  @end itemize
  
  @node Conventions,,Related Information,About This Guide
--- 683,688 ----
*************** You can place configuration pragmas eith
*** 2911,2916 ****
--- 2914,2923 ----
  unit or in a configuration pragma file that applies to
  all compilations performed in a given compilation environment.
  
+ Configuration pragmas placed before a library level package specification
+ are not propagated to the corresponding package body (see RM 10.1.5(8));
+ they must be added explicitly to the package body.
+ 
  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.
*************** don’t specify a value, the symbol is d
*** 4617,4622 ****
--- 4624,4646 ----
  use this switch instead of providing a definition file.
  @end table
  
+ @geindex -e (gnatprep)
+ 
+ 
+ @table @asis
+ 
+ @item @code{-e}
+ 
+ Causes both preprocessor lines and the lines deleted by
+ preprocessing to be replaced by empty comment lines marked
+ with @code{"--!"} (and no other text) in the output source file,
+ preserving line numbers in the output file. This option can
+ be useful as an alternative to @code{-b} and @code{-c}
+ when compilation style switches like @code{-gnatyu} or
+ @code{-gnatyM} are used (to avoid warnings about multiple
+ blank lines or lines too long).
+ @end table
+ 
  @geindex -r (gnatprep)
  
  
*************** Finally, switches similar to those of @c
*** 5012,5018 ****
  Causes both preprocessor lines and the lines deleted by
  preprocessing to be replaced by blank lines, preserving the line number.
  This switch is always implied; however, if specified after @code{-c}
! it cancels the effect of @code{-c}.
  
  @item @code{-c}
  
--- 5036,5042 ----
  Causes both preprocessor lines and the lines deleted by
  preprocessing to be replaced by blank lines, preserving the line number.
  This switch is always implied; however, if specified after @code{-c}
! or @code{-e} it cancels the effect of those switches.
  
  @item @code{-c}
  
*************** literal string, an Ada identifier or any
*** 5030,5035 ****
--- 5054,5065 ----
  symbol declared with this switch replaces a symbol with the same
  name defined in a definition file.
  
+ @item @code{-e}
+ 
+ Causes both preprocessor lines and the lines deleted by
+ preprocessing to be replaced by empty comment lines marked
+ with ‘@cite{–!}’ (and no other text) in the output source file,
+ 
  @item @code{-s}
  
  Causes a sorted list of symbol names and values to be
*************** symbol with the same name either in a de
*** 5077,5090 ****
  switch @code{-D} in the preprocessor data file.
  
  This switch is similar to switch @code{-D} of @code{gnatprep}.
  
! @item @code{-gnateG}
  
  When integrated preprocessing is performed on source file @code{filename.extension},
  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
--- 5107,5131 ----
  switch @code{-D} in the preprocessor data file.
  
  This switch is similar to switch @code{-D} of @code{gnatprep}.
+ @end table
  
! @geindex -gnateG (gcc)
! 
! 
! @table @asis
! 
! @item @code{-gnateG[bce]}
  
  When integrated preprocessing is performed on source file @code{filename.extension},
  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}.
+ An optional character (b, c, or e) can be appended to indicate that filtered
+ lines are to be replaced by blank lines, comments, or empty comments (see
+ documentation above about @code{-b}, @code{-c}, and @code{-e}).
+ If one of those switches is given in a preprocessor data file, then it
+ will override any option included with @code{-gnateG}.
  @end table
  
  @node Mixed Language Programming,GNAT and Other Compilation Models,Conditional Compilation,The GNAT Compilation Model
*************** If you attempt to compile any of these f
*** 8274,8295 ****
  following error messages (where @code{fff} is the name of the file you
  compiled):
  
- @quotation
- 
  @example
! cannot generate code for file `@w{`}fff`@w{`} (package spec)
! to check package spec, use -gnatc
  
! cannot generate code for file `@w{`}fff`@w{`} (missing subunits)
! to check parent unit, use -gnatc
  
! cannot generate code for file `@w{`}fff`@w{`} (subprogram spec)
! to check subprogram spec, use -gnatc
  
! cannot generate code for file `@w{`}fff`@w{`} (subunit)
! to check subunit, use -gnatc
  @end example
- @end quotation
  
  As indicated by the above error messages, if you want to submit
  one of these files to the compiler to check for correct semantics
--- 8315,8329 ----
  following error messages (where @code{fff} is the name of the file you
  compiled):
  
  @example
! cannot generate code for file fff (package spec)
  
! cannot generate code for file fff (missing subunits)
  
! cannot generate code for file fff (subprogram spec)
  
! cannot generate code for file fff (subunit)
  @end example
  
  As indicated by the above error messages, if you want to submit
  one of these files to the compiler to check for correct semantics
*************** information.
*** 9144,9152 ****
  
  @table @asis
  
! @item @code{-gnateG}
  
! Save result of preprocessing in a text file.
  @end table
  
  @geindex -gnateH (gcc)
--- 9178,9190 ----
  
  @table @asis
  
! @item @code{-gnateG[bce]}
  
! Save result of preprocessing in a text file. An optional character (b, c,
! or e) can be appended to indicate that filtered lines are to be replaced by
! blank lines, comment lines that include the filtered line, or empty comment
! lines (”–!”), respectively. The default is to replace filtered lines with
! blank lines.
  @end table
  
  @geindex -gnateH (gcc)
*************** see @ref{32,,Character Set Control}.
*** 9550,9562 ****
  Ignore representation clauses. When this switch is used,
  representation clauses are treated as comments. This is useful
  when initially porting code where you want to ignore rep clause
! problems, and also for compiling foreign code (particularly
! for use with ASIS). The representation clauses that are ignored
! are: enumeration_representation_clause, record_representation_clause,
! and attribute_definition_clause for the following attributes:
! Address, Alignment, Bit_Order, Component_Size, Machine_Radix,
! Object_Size, Scalar_Storage_Order, Size, Small, Stream_Size,
! and Value_Size. Pragma Default_Scalar_Storage_Order is also ignored.
  Note that this option should be used only for compiling – the
  code is likely to malfunction at run time.
  @end table
--- 9588,9600 ----
  Ignore representation clauses. When this switch is used,
  representation clauses are treated as comments. This is useful
  when initially porting code where you want to ignore rep clause
! problems, and also for compiling foreign code. The representation
! clauses that are ignored are: enumeration_representation_clause,
! record_representation_clause, and attribute_definition_clause for the
! following attributes: Address, Alignment, Bit_Order, Component_Size,
! Machine_Radix, Object_Size, Scalar_Storage_Order, Size, Small,
! Stream_Size, and Value_Size.
! Pragma Default_Scalar_Storage_Order is also ignored.
  Note that this option should be used only for compiling – the
  code is likely to malfunction at run time.
  @end table
*************** Treat pragma Restrictions as Restriction
*** 9846,9852 ****
  
  @table @asis
  
! @item @code{-gnatR[0|1|2|3|4][e][j][m][s]}
  
  Output representation information for declared types, objects and
  subprograms. Note that this switch is not allowed if a previous
--- 9884,9890 ----
  
  @table @asis
  
! @item @code{-gnatR[0|1|2|3|4][e][h][m][j][s]}
  
  Output representation information for declared types, objects and
  subprograms. Note that this switch is not allowed if a previous
*************** Values known to be out of range at compi
*** 10739,10747 ****
  @item 
  Unreferenced or unmodified variables. Note that a special
  exemption applies to variables which contain any of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSED}, in any casing. Such variables
! are considered likely to be intentionally used in a situation where
! otherwise a warning would be given, so warnings of this kind are
  always suppressed for such variables.
  
  @item 
--- 10777,10785 ----
  @item 
  Unreferenced or unmodified variables. Note that a special
  exemption applies to variables which contain any of the substrings
! @code{DISCARD, DUMMY, IGNORE, JUNK, UNUSE, TMP, TEMP} in any casing. Such
! variables are considered likely to be intentionally used in a situation
! where otherwise a warning would be given, so warnings of this kind are
  always suppressed for such variables.
  
  @item 
*************** the resulting assigned value is never re
*** 11893,11905 ****
  
  `Activate warnings on ineffective pragma Inlines.'
  
! This switch activates warnings for failure of front end inlining
! (activated by @code{-gnatN}) to inline a particular call. There are
! 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
  
  @geindex -gnatwP (gcc)
--- 11931,11943 ----
  
  `Activate warnings on ineffective pragma Inlines.'
  
! This switch activates warnings for failure of cross-unit inlining
! (activated by @code{-gnatn}) to inline calls to a subprogram.
! There are many reasons for not being able to inline these calls,
! including most commonly that the subprogram body is too complex
! to inline. The default is that such warnings are not given.
! Warnings on ineffective inlining (within units) by the back end
! can be activated separately, using the -Winline switch.
  @end table
  
  @geindex -gnatwP (gcc)
*************** is the current list of constructs regard
*** 12132,12138 ****
  Assignment of an item to itself.
  
  @item 
! Type conversion that converts an expression to its own type.
  
  @item 
  Use of the attribute @code{Base} where @code{typ'Base} is the same
--- 12170,12176 ----
  Assignment of an item to itself.
  
  @item 
! Type conversion that converts an expression to its own subtype.
  
  @item 
  Use of the attribute @code{Base} where @code{typ'Base} is the same
*************** This switch cancels the effect of a prev
*** 14311,14377 ****
  This switch controls the mode used for computing intermediate
  arithmetic integer operations, and also enables overflow checking.
  For a full description of overflow mode and checking control, see
! the ‘Overflow Check Handling in GNAT’ appendix in this
  User’s Guide.
- 
- Overflow checks are always enabled by this switch. The argument
- controls the mode, using the codes
- 
- 
- @table @asis
- 
- @item `1 = STRICT'
- 
- In STRICT mode, intermediate operations are always done using the
- base type, and overflow checking ensures that the result is within
- the base type range.
- 
- @item `2 = MINIMIZED'
- 
- In MINIMIZED mode, overflows in intermediate operations are avoided
- where possible by using a larger integer type for the computation
- (typically @code{Long_Long_Integer}). Overflow checking ensures that
- the result fits in this larger integer type.
- 
- @item `3 = ELIMINATED'
- 
- In ELIMINATED mode, overflows in intermediate operations are avoided
- by using multi-precision arithmetic. In this case, overflow checking
- has no effect on intermediate operations (since overflow is impossible).
- @end table
- 
- If two digits are present after @code{-gnato} then the first digit
- sets the mode for expressions outside assertions, and the second digit
- sets the mode for expressions within assertions. Here assertions is used
- in the technical sense (which includes for example precondition and
- postcondition expressions).
- 
- If one digit is present, the corresponding mode is applicable to both
- expressions within and outside assertion expressions.
- 
- If no digits are present, the default is to enable overflow checks
- and set STRICT mode for both kinds of expressions. This is compatible
- with the use of @code{-gnato} in previous versions of GNAT.
- 
- @geindex Machine_Overflows
- 
- Note that the @code{-gnato??} switch does not affect the code generated
- for any floating-point operations; it applies only to integer semantics.
- For floating-point, GNAT has the @code{Machine_Overflows}
- attribute set to @code{False} and the normal mode of operation is to
- generate IEEE NaN and infinite values on overflow or invalid operations
- (such as dividing 0.0 by 0.0).
- 
- The reason that we distinguish overflow checking from other kinds of
- range constraint checking is that a failure of an overflow check, unlike
- for example the failure of a range check, can result in an incorrect
- value, but cannot cause random memory destruction (like an out of range
- subscript), or a wild jump (from an out of range case value). Overflow
- checking is also quite expensive in time and space, since in general it
- requires the use of double length arithmetic.
- 
- Note again that the default is @code{-gnato11} (equivalent to @code{-gnato1}),
- so overflow checking is performed in STRICT mode by default.
  @end table
  
  @geindex -gnatE (gcc)
--- 14349,14356 ----
  This switch controls the mode used for computing intermediate
  arithmetic integer operations, and also enables overflow checking.
  For a full description of overflow mode and checking control, see
! the @ref{fa,,Overflow Check Handling in GNAT} appendix in this
  User’s Guide.
  @end table
  
  @geindex -gnatE (gcc)
*************** checks) or @code{Unsuppress} (to add bac
*** 14418,14424 ****
  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
  
  
--- 14397,14403 ----
  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{fb}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-syntax-checking}@anchor{fc}
  @subsection Using @code{gcc} for Syntax Checking
  
  
*************** together. This is primarily used by the
*** 14475,14481 ****
  @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
  
  
--- 14454,14460 ----
  @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{fd}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gcc-for-semantic-checking}@anchor{fe}
  @subsection Using @code{gcc} for Semantic Checking
  
  
*************** and specifications where a separate body
*** 14522,14528 ****
  @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
  
  
--- 14501,14507 ----
  @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{ff}
  @subsection Compiling Different Versions of Ada
  
  
*************** extensions enabled by this switch, see t
*** 14687,14693 ****
  @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
  
  
--- 14666,14672 ----
  @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{100}
  @subsection Character Set Control
  
  
*************** comments are ended by an appropriate (CR
*** 14914,14920 ****
  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
  
  
--- 14893,14899 ----
  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{101}@anchor{gnat_ugn/building_executable_programs_with_gnat id24}@anchor{102}
  @subsection File Naming Control
  
  
*************** For the source file naming rules, @ref{3
*** 14934,14940 ****
  @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
  
  
--- 14913,14919 ----
  @end table
  
  @node Subprogram Inlining Control,Auxiliary Output Control,File Naming Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat id25}@anchor{103}@anchor{gnat_ugn/building_executable_programs_with_gnat subprogram-inlining-control}@anchor{104}
  @subsection Subprogram Inlining Control
  
  
*************** If you specify this switch the compiler
*** 14967,14973 ****
  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)
--- 14946,14952 ----
  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{105,,Inlining of Subprograms}.
  @end table
  
  @geindex -gnatN (gcc)
*************** inlining, but that is no longer the case
*** 14987,14993 ****
  @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
  
  
--- 14966,14972 ----
  @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{106}@anchor{gnat_ugn/building_executable_programs_with_gnat id26}@anchor{107}
  @subsection Auxiliary Output Control
  
  
*************** An object file has been generated for ev
*** 15057,15063 ****
  @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
  
  
--- 15036,15042 ----
  @end table
  
  @node Debugging Control,Exception Handling Control,Auxiliary Output Control,Compiler Switches
! @anchor{gnat_ugn/building_executable_programs_with_gnat debugging-control}@anchor{108}@anchor{gnat_ugn/building_executable_programs_with_gnat id27}@anchor{109}
  @subsection Debugging Control
  
  
*************** restriction warnings rather than restric
*** 15281,15287 ****
  
  @table @asis
  
! @item @code{-gnatR[0|1|2|3|4][e][j][m][s]}
  
  This switch controls output from the compiler of a listing showing
  representation information for declared types, objects and subprograms.
--- 15260,15266 ----
  
  @table @asis
  
! @item @code{-gnatR[0|1|2|3|4][e][h][m][j][s]}
  
  This switch controls output from the compiler of a listing showing
  representation information for declared types, objects and subprograms.
*************** If the switch is followed by an @code{e}
*** 15310,15326 ****
  extended representation information for record sub-components of records
  is included.
  
  If the switch is followed by an @code{m} (e.g. @code{-gnatRm}), then
  subprogram conventions and parameter passing mechanisms for all the
  subprograms are included.
  
! If the switch is followed by a @code{j} (e.g., @code{-gnatRj}), then
  the output is in the JSON data interchange format specified by the
  ECMA-404 standard. The semantic description of this JSON output is
  available in the specification of the Repinfo unit present in the
  compiler sources.
  
! If the switch is followed by an @code{s} (e.g., @code{-gnatR3s}), then
  the output is to a file with the name @code{file.rep} where @code{file} is
  the name of the corresponding source file, except if @code{j} is also
  specified, in which case the file name is @code{file.json}.
--- 15289,15309 ----
  extended representation information for record sub-components of records
  is included.
  
+ If the switch is followed by a @code{h} (e.g. @code{-gnatR3h}), then
+ the components of records are sorted by increasing offsets and holes
+ between consecutive components are flagged.
+ 
  If the switch is followed by an @code{m} (e.g. @code{-gnatRm}), then
  subprogram conventions and parameter passing mechanisms for all the
  subprograms are included.
  
! If the switch is followed by a @code{j} (e.g. @code{-gnatRj}), then
  the output is in the JSON data interchange format specified by the
  ECMA-404 standard. The semantic description of this JSON output is
  available in the specification of the Repinfo unit present in the
  compiler sources.
  
! If the switch is followed by an @code{s} (e.g. @code{-gnatR3s}), then
  the output is to a file with the name @code{file.rep} where @code{file} is
  the name of the corresponding source file, except if @code{j} is also
  specified, in which case the file name is @code{file.json}.
*************** encodings for the rest.
*** 15406,15412 ****
  @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
  
  
--- 15389,15395 ----
  @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{10a}@anchor{gnat_ugn/building_executable_programs_with_gnat id28}@anchor{10b}
  @subsection Exception Handling Control
  
  
*************** and @code{gnatbind}. Passing this option
*** 15478,15484 ****
  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
  
  
--- 15461,15467 ----
  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{10c}@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
*** 15530,15536 ****
  @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
  
  
--- 15513,15519 ----
  @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{10d}@anchor{gnat_ugn/building_executable_programs_with_gnat id30}@anchor{10e}
  @subsection Code Generation Control
  
  
*************** there is no point in using @code{-m} swi
*** 15559,15565 ****
  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
  
  
--- 15542,15548 ----
  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{10f}@anchor{gnat_ugn/building_executable_programs_with_gnat linker-switches}@anchor{110}
  @section Linker Switches
  
  
*************** platforms.
*** 15579,15585 ****
  @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}
  
  
--- 15562,15568 ----
  @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{111}
  @section Binding with @code{gnatbind}
  
  
*************** to be read by the @code{gnatlink} utilit
*** 15630,15636 ****
  @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}
  
  
--- 15613,15619 ----
  @end menu
  
  @node Running gnatbind,Switches for gnatbind,,Binding with gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id33}@anchor{112}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatbind}@anchor{113}
  @subsection Running @code{gnatbind}
  
  
*************** Ada code provided the @code{-g} switch i
*** 15715,15721 ****
  @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}
  
  
--- 15698,15704 ----
  @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{114}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatbind}@anchor{115}
  @subsection Switches for @code{gnatbind}
  
  
*************** Currently the same as @code{-Ea}.
*** 15910,15916 ****
  
  @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
  
--- 15893,15899 ----
  
  @item @code{-f`elab-order'}
  
! Force elaboration order. For further details see @ref{116,,Elaboration Control}
  and @ref{10,,Elaboration Order Handling in GNAT}.
  @end table
  
*************** Legacy elaboration order model enabled.
*** 15959,15965 ****
  @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)
--- 15942,15948 ----
  @item @code{-H32}
  
  Use 32-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{117,,Dynamic Allocation Control}.
  @end table
  
  @geindex -H64 (gnatbind)
*************** For further details see @ref{116,,Dynami
*** 15972,15978 ****
  @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)
  
--- 15955,15961 ----
  @item @code{-H64}
  
  Use 64-bit allocations for @code{__gnat_malloc} (and thus for access types).
! For further details see @ref{117,,Dynamic Allocation Control}.
  
  @geindex -I (gnatbind)
  
*************** Enable dynamic stack usage, with @code{n
*** 16261,16267 ****
  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)
  
--- 16244,16250 ----
  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{118,,Dynamic Stack Usage Analysis} for details.)
  
  @geindex -v (gnatbind)
  
*************** no arguments.
*** 16341,16347 ****
  @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
  
  
--- 16324,16330 ----
  @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{119}@anchor{gnat_ugn/building_executable_programs_with_gnat id35}@anchor{11a}
  @subsubsection Consistency-Checking Modes
  
  
*************** case the checking against sources has al
*** 16395,16401 ****
  @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
  
  
--- 16378,16384 ----
  @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{11b}@anchor{gnat_ugn/building_executable_programs_with_gnat id36}@anchor{11c}
  @subsubsection Binder Error Message Control
  
  
*************** with extreme care.
*** 16505,16511 ****
  @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
  
  
--- 16488,16494 ----
  @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{116}@anchor{gnat_ugn/building_executable_programs_with_gnat id37}@anchor{11d}
  @subsubsection Elaboration Control
  
  
*************** debugging/experimental use.
*** 16590,16596 ****
  @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
  
  
--- 16573,16579 ----
  @end table
  
  @node Output Control,Dynamic Allocation Control,Elaboration Control,Switches for gnatbind
! @anchor{gnat_ugn/building_executable_programs_with_gnat id38}@anchor{11e}@anchor{gnat_ugn/building_executable_programs_with_gnat output-control}@anchor{11f}
  @subsubsection Output Control
  
  
*************** be used to improve code generation in so
*** 16671,16677 ****
  @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
  
  
--- 16654,16660 ----
  @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{117}@anchor{gnat_ugn/building_executable_programs_with_gnat id39}@anchor{120}
  @subsubsection Dynamic Allocation Control
  
  
*************** unless explicitly overridden by a @code{
*** 16697,16703 ****
  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
  
  
--- 16680,16686 ----
  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{121}
  @subsubsection Binding with Non-Ada Main Programs
  
  
*************** side effect is that this could be the wr
*** 16793,16799 ****
  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
  
  
--- 16776,16782 ----
  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{122}@anchor{gnat_ugn/building_executable_programs_with_gnat id41}@anchor{123}
  @subsubsection Binding Programs with No Main Subprogram
  
  
*************** the binder switch
*** 16824,16830 ****
  @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
  
  
--- 16807,16813 ----
  @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{124}@anchor{gnat_ugn/building_executable_programs_with_gnat id42}@anchor{125}
  @subsection Command-Line Access
  
  
*************** required, your main program must set @co
*** 16854,16860 ****
  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}
  
  
--- 16837,16843 ----
  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{126}@anchor{gnat_ugn/building_executable_programs_with_gnat search-paths-for-gnatbind}@anchor{77}
  @subsection Search Paths for @code{gnatbind}
  
  
*************** in compiling sources from multiple direc
*** 16958,16964 ****
  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
  
  
--- 16941,16947 ----
  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{127}@anchor{gnat_ugn/building_executable_programs_with_gnat id44}@anchor{128}
  @subsection Examples of @code{gnatbind} Usage
  
  
*************** since gnatlink will not be able to find
*** 16987,16993 ****
  @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}
  
  
--- 16970,16976 ----
  @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{129}@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
*** 17008,17014 ****
  @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}
  
  
--- 16991,16997 ----
  @end menu
  
  @node Running gnatlink,Switches for gnatlink,,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id46}@anchor{12a}@anchor{gnat_ugn/building_executable_programs_with_gnat running-gnatlink}@anchor{12b}
  @subsection Running @code{gnatlink}
  
  
*************** $ gnatlink my_prog -Wl,-Map,MAPFILE
*** 17067,17074 ****
  
  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.
--- 17050,17057 ----
  
  Using @code{linker options} it is possible to set the program stack and
  heap size.
! See @ref{12c,,Setting Stack Size from gnatlink} and
! @ref{12d,,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
*** 17077,17083 ****
  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}
  
  
--- 17060,17066 ----
  presented to the linker.
  
  @node Switches for gnatlink,,Running gnatlink,Linking with gnatlink
! @anchor{gnat_ugn/building_executable_programs_with_gnat id47}@anchor{12e}@anchor{gnat_ugn/building_executable_programs_with_gnat switches-for-gnatlink}@anchor{12f}
  @subsection Switches for @code{gnatlink}
  
  
*************** switch.
*** 17272,17278 ****
  @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
  
  
--- 17255,17261 ----
  @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{130}@anchor{gnat_ugn/building_executable_programs_with_gnat using-the-gnu-make-utility}@anchor{71}
  @section Using the GNU @code{make} Utility
  
  
*************** is the same, these examples use some adv
*** 17297,17303 ****
  @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
  
  
--- 17280,17286 ----
  @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{131}@anchor{gnat_ugn/building_executable_programs_with_gnat using-gnatmake-in-a-makefile}@anchor{132}
  @subsection Using gnatmake in a Makefile
  
  
*************** the appropriate directories.
*** 17316,17322 ****
  
  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
--- 17299,17305 ----
  
  Note that you should also read the example on how to automatically
  create the list of directories
! (@ref{133,,Automatically Creating a List of Directories})
  which might help you in case your project has a lot of subdirectories.
  
  @example
*************** clean::
*** 17396,17402 ****
  @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
  
  
--- 17379,17385 ----
  @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{133}@anchor{gnat_ugn/building_executable_programs_with_gnat id50}@anchor{134}
  @subsection Automatically Creating a List of Directories
  
  
*************** DIRS := $@{shell find $@{ROOT_DIRECTORY@
*** 17469,17480 ****
  @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
--- 17452,17463 ----
  @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{135}@anchor{gnat_ugn/building_executable_programs_with_gnat id51}@anchor{136}
  @subsection Generating the Command Line Switches
  
  
  Once you have created the list of directories as explained in the
! previous section (@ref{133,,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:
*** 17495,17501 ****
  @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
  
  
--- 17478,17484 ----
  @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{137}@anchor{gnat_ugn/building_executable_programs_with_gnat overcoming-command-line-length-limits}@anchor{138}
  @subsection Overcoming Command Line Length Limits
  
  
*************** even none on most systems).
*** 17510,17516 ****
  
  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.
  
--- 17493,17499 ----
  
  It assumes that you have created a list of directories in your Makefile,
  using one of the methods presented in
! @ref{133,,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:
*** 17553,17559 ****
  @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
  
  
--- 17536,17542 ----
  @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{139}@anchor{gnat_ugn/building_executable_programs_with_gnat gnatllvm}@anchor{7}
  @section GNAT with the LLVM Back End
  
  
*************** passed between C and Ada as simple as pr
*** 17587,17601 ****
  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
--- 17570,17590 ----
  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 a
! subset of types: scalar types; records whose field offsets are known
! at compile time, including discriminated records fitting this
! description; and arrays. Records that have a field whose size or
! offset is only known at run time do not yet have correct debugging
! data. 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.
! 
! In some situations, a name in the source may not be available.
! Renamings are not currently emitted into the debugging data. When
! debugging a nested function, variables from enclosing scopes will not
! be available. You will have to examine those variables in their
! hosting frame.
  
  In addition, debugging information may be confusing if you have
  @code{out} parameters to subprograms. If you have a procedure with only
*************** version of GNAT.
*** 17638,17654 ****
  @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
  
  
--- 17627,17644 ----
  @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 explicitly
! selecting GNAT LLVM in your existing GPR project file by adding
! @code{for Toolchain_Name ("Ada") use "GNAT_LLVM";}. You can also
! generate an explicit toolchain configuration file with @code{gprconfig} and
! use 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.
*** 17657,17663 ****
  
  
  @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
  
  
--- 17647,17653 ----
  
  
  @node GNAT Utility Programs,GNAT and Program Execution,Building Executable Programs with GNAT,Top
! @anchor{gnat_ugn/gnat_utility_programs doc}@anchor{13a}@anchor{gnat_ugn/gnat_utility_programs gnat-utility-programs}@anchor{c}@anchor{gnat_ugn/gnat_utility_programs id1}@anchor{13b}
  @chapter GNAT Utility Programs
  
  
*************** This chapter describes a number of utili
*** 17668,17677 ****
  @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:
--- 17658,17667 ----
  @itemize *
  
  @item 
! @ref{13c,,The File Cleanup Utility gnatclean}
  
  @item 
! @ref{13d,,The GNAT Library Browser gnatls}
  @end itemize
  
  Other GNAT utilities are described elsewhere in this manual:
*************** Other GNAT utilities are described elsew
*** 17699,17705 ****
  @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}
  
  
--- 17689,17695 ----
  @end menu
  
  @node The File Cleanup Utility gnatclean,The GNAT Library Browser gnatls,,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id2}@anchor{13e}@anchor{gnat_ugn/gnat_utility_programs the-file-cleanup-utility-gnatclean}@anchor{13c}
  @section The File Cleanup Utility @code{gnatclean}
  
  
*************** generated files and executable files.
*** 17719,17725 ****
  @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}
  
  
--- 17709,17715 ----
  @end menu
  
  @node Running gnatclean,Switches for gnatclean,,The File Cleanup Utility gnatclean
! @anchor{gnat_ugn/gnat_utility_programs id3}@anchor{13f}@anchor{gnat_ugn/gnat_utility_programs running-gnatclean}@anchor{140}
  @subsection Running @code{gnatclean}
  
  
*************** linker. In information-only mode, specif
*** 17743,17749 ****
  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}
  
  
--- 17733,17739 ----
  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{141}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatclean}@anchor{142}
  @subsection Switches for @code{gnatclean}
  
  
*************** where @code{gnatclean} was invoked.
*** 17947,17953 ****
  @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}
  
  
--- 17937,17943 ----
  @end table
  
  @node The GNAT Library Browser gnatls,,The File Cleanup Utility gnatclean,GNAT Utility Programs
! @anchor{gnat_ugn/gnat_utility_programs id5}@anchor{143}@anchor{gnat_ugn/gnat_utility_programs the-gnat-library-browser-gnatls}@anchor{13d}
  @section The GNAT Library Browser @code{gnatls}
  
  
*************** as well as various characteristics.
*** 17968,17974 ****
  @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}
  
  
--- 17958,17964 ----
  @end menu
  
  @node Running gnatls,Switches for gnatls,,The GNAT Library Browser gnatls
! @anchor{gnat_ugn/gnat_utility_programs id6}@anchor{144}@anchor{gnat_ugn/gnat_utility_programs running-gnatls}@anchor{145}
  @subsection Running @code{gnatls}
  
  
*************** version of the same source that has been
*** 18048,18054 ****
  @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}
  
  
--- 18038,18044 ----
  @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{146}@anchor{gnat_ugn/gnat_utility_programs switches-for-gnatls}@anchor{147}
  @subsection Switches for @code{gnatls}
  
  
*************** by the user.
*** 18231,18237 ****
  @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
  
  
--- 18221,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{148}@anchor{gnat_ugn/gnat_utility_programs id8}@anchor{149}
  @subsection Example of @code{gnatls} Usage
  
  
*************** instr.ads
*** 18317,18323 ****
  @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
  
  
--- 18307,18313 ----
  @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{14a}@anchor{gnat_ugn/gnat_and_program_execution gnat-and-program-execution}@anchor{d}@anchor{gnat_ugn/gnat_and_program_execution id1}@anchor{14b}
  @chapter GNAT and Program Execution
  
  
*************** This chapter covers several topics:
*** 18327,18351 ****
  @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
--- 18317,18344 ----
  @itemize *
  
  @item 
! @ref{14c,,Running and Debugging Ada Programs}
  
  @item 
! @ref{14d,,Profiling}
  
  @item 
! @ref{14e,,Improving Performance}
  
  @item 
! @ref{14f,,Overflow Check Handling in GNAT}
  
  @item 
! @ref{150,,Performing Dimensionality Analysis in GNAT}
  
  @item 
! @ref{151,,Stack Related Facilities}
  
  @item 
! @ref{152,,Memory Management Issues}
! 
! @item 
! @ref{153,,Sanitizers for Ada}
  @end itemize
  
  @menu
*************** This chapter covers several topics:
*** 18356,18366 ****
  * Performing Dimensionality Analysis in GNAT:: 
  * Stack Related Facilities:: 
  * Memory Management Issues:: 
  
  @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
  
  
--- 18349,18360 ----
  * Performing Dimensionality Analysis in GNAT:: 
  * Stack Related Facilities:: 
  * Memory Management Issues:: 
+ * Sanitizers for Ada:: 
  
  @end menu
  
  @node Running and Debugging Ada Programs,Profiling,,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id2}@anchor{14c}@anchor{gnat_ugn/gnat_and_program_execution running-and-debugging-ada-programs}@anchor{154}
  @section Running and Debugging Ada Programs
  
  
*************** the incorrect user program.
*** 18414,18420 ****
  @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
  
  
--- 18408,18414 ----
  @end menu
  
  @node The GNAT Debugger GDB,Running GDB,,Running and Debugging Ada Programs
! @anchor{gnat_ugn/gnat_and_program_execution id3}@anchor{155}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debugger-gdb}@anchor{156}
  @subsection The GNAT Debugger GDB
  
  
*************** the debugging information and can respon
*** 18472,18478 ****
  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
  
  
--- 18466,18472 ----
  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{157}@anchor{gnat_ugn/gnat_and_program_execution running-gdb}@anchor{158}
  @subsection Running GDB
  
  
*************** exactly as if the debugger were not pres
*** 18499,18505 ****
  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
  
  
--- 18493,18499 ----
  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{159}@anchor{gnat_ugn/gnat_and_program_execution introduction-to-gdb-commands}@anchor{15a}
  @subsection Introduction to GDB Commands
  
  
*************** characters need be typed to disambiguate
*** 18713,18719 ****
  @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
  
  
--- 18707,18713 ----
  @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{15b}@anchor{gnat_ugn/gnat_and_program_execution using-ada-expressions}@anchor{15c}
  @subsection Using Ada Expressions
  
  
*************** their packages, regardless of context. W
*** 18751,18757 ****
  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
  
  
--- 18745,18751 ----
  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{15d}@anchor{gnat_ugn/gnat_and_program_execution id7}@anchor{15e}
  @subsection Calling User-Defined Subprograms
  
  
*************** elements directly from GDB, you can writ
*** 18810,18816 ****
  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
  
  
--- 18804,18810 ----
  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{15f}@anchor{gnat_ugn/gnat_and_program_execution using-the-next-command-in-a-function}@anchor{160}
  @subsection Using the `next' Command in a Function
  
  
*************** The value returned is always that from t
*** 18833,18839 ****
  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
  
  
--- 18827,18833 ----
  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{161}@anchor{gnat_ugn/gnat_and_program_execution stopping-when-ada-exceptions-are-raised}@anchor{162}
  @subsection Stopping When Ada Exceptions Are Raised
  
  
*************** argument, prints out only those exceptio
*** 18890,18896 ****
  @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
  
  
--- 18884,18890 ----
  @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{163}@anchor{gnat_ugn/gnat_and_program_execution id10}@anchor{164}
  @subsection Ada Tasks
  
  
*************** see @cite{Debugging with GDB}.
*** 18977,18983 ****
  @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
  
  
--- 18971,18977 ----
  @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{165}@anchor{gnat_ugn/gnat_and_program_execution id11}@anchor{166}
  @subsection Debugging Generic Units
  
  
*************** variables, as you do for other units.
*** 19037,19043 ****
  @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
  
  
--- 19031,19037 ----
  @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{167}@anchor{gnat_ugn/gnat_and_program_execution remote-debugging-with-gdbserver}@anchor{168}
  @subsection Remote Debugging with gdbserver
  
  
*************** x86_64-linux.
*** 19096,19102 ****
  @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
  
  
--- 19090,19096 ----
  @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{169}@anchor{gnat_ugn/gnat_and_program_execution id13}@anchor{16a}
  @subsection GNAT Abnormal Termination or Failure to Terminate
  
  
*************** Finally, you can start
*** 19151,19157 ****
  @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
--- 19145,19151 ----
  @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{156,,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
*************** the source file.
*** 19160,19166 ****
  @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
  
  
--- 19154,19160 ----
  @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{16b}@anchor{gnat_ugn/gnat_and_program_execution naming-conventions-for-gnat-source-files}@anchor{16c}
  @subsection Naming Conventions for GNAT Source Files
  
  
*************** the other @code{.c} files are modificati
*** 19250,19256 ****
  @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
  
  
--- 19244,19250 ----
  @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{16d}@anchor{gnat_ugn/gnat_and_program_execution id15}@anchor{16e}
  @subsection Getting Internal Debugging Information
  
  
*************** are replaced with run-time calls.
*** 19278,19284 ****
  @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
  
  
--- 19272,19278 ----
  @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{16f}@anchor{gnat_ugn/gnat_and_program_execution stack-traceback}@anchor{170}
  @subsection Stack Traceback
  
  
*************** is enabled and no exception is raised du
*** 19307,19313 ****
  @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
  
  
--- 19301,19307 ----
  @end menu
  
  @node Non-Symbolic Traceback,Symbolic Traceback,,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id17}@anchor{171}@anchor{gnat_ugn/gnat_and_program_execution non-symbolic-traceback}@anchor{172}
  @subsubsection Non-Symbolic Traceback
  
  
*************** $ addr2line -e stb -a -f -p --demangle=g
*** 19441,19447 ****
  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
--- 19435,19441 ----
  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{113,,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
*************** addresses need to be specified in C form
*** 19629,19635 ****
  @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
  
  
--- 19623,19629 ----
  @geindex symbolic
  
  @node Symbolic Traceback,,Non-Symbolic Traceback,Stack Traceback
! @anchor{gnat_ugn/gnat_and_program_execution id18}@anchor{173}@anchor{gnat_ugn/gnat_and_program_execution symbolic-traceback}@anchor{174}
  @subsubsection Symbolic Traceback
  
  
*************** traceback, which will also be printed if
*** 19748,19754 ****
  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
  
  
--- 19742,19748 ----
  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{175}@anchor{gnat_ugn/gnat_and_program_execution pretty-printers-for-the-gnat-runtime}@anchor{176}
  @subsection Pretty-Printers for the GNAT runtime
  
  
*************** for more information.
*** 19857,19863 ****
  @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
  
  
--- 19851,19857 ----
  @geindex Profiling
  
  @node Profiling,Improving Performance,Running and Debugging Ada Programs,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id20}@anchor{177}@anchor{gnat_ugn/gnat_and_program_execution profiling}@anchor{14d}
  @section Profiling
  
  
*************** This section describes how to use the @c
*** 19873,19879 ****
  @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
  
  
--- 19867,19873 ----
  @end menu
  
  @node Profiling an Ada Program with gprof,,,Profiling
! @anchor{gnat_ugn/gnat_and_program_execution id21}@anchor{178}@anchor{gnat_ugn/gnat_and_program_execution profiling-an-ada-program-with-gprof}@anchor{179}
  @subsection Profiling an Ada Program with gprof
  
  
*************** to interpret the results.
*** 19928,19934 ****
  @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
  
  
--- 19922,19928 ----
  @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{17a}@anchor{gnat_ugn/gnat_and_program_execution id22}@anchor{17b}
  @subsubsection Compilation for profiling
  
  
*************** Note that on Windows, @code{gprof} does
*** 19959,19965 ****
  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
  
  
--- 19953,19959 ----
  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{17c}@anchor{gnat_ugn/gnat_and_program_execution program-execution}@anchor{17d}
  @subsubsection Program execution
  
  
*************** generated in the directory where the pro
*** 19974,19980 ****
  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
  
  
--- 19968,19974 ----
  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{17e}@anchor{gnat_ugn/gnat_and_program_execution running-gprof}@anchor{17f}
  @subsubsection Running gprof
  
  
*************** switch.
*** 20086,20092 ****
  @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
  
  
--- 20080,20086 ----
  @end table
  
  @node Interpretation of profiling results,,Running gprof,Profiling an Ada Program with gprof
! @anchor{gnat_ugn/gnat_and_program_execution id25}@anchor{180}@anchor{gnat_ugn/gnat_and_program_execution interpretation-of-profiling-results}@anchor{181}
  @subsubsection Interpretation of profiling results
  
  
*************** and the subprograms that it calls. It al
*** 20103,20109 ****
  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
  
  
--- 20097,20103 ----
  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{14e}@anchor{gnat_ugn/gnat_and_program_execution improving-performance}@anchor{182}
  @section Improving Performance
  
  
*************** which can reduce the size of program exe
*** 20124,20130 ****
  @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
  
  
--- 20118,20124 ----
  @end menu
  
  @node Performance Considerations,Text_IO Suggestions,,Improving Performance
! @anchor{gnat_ugn/gnat_and_program_execution id27}@anchor{183}@anchor{gnat_ugn/gnat_and_program_execution performance-considerations}@anchor{184}
  @subsection Performance Considerations
  
  
*************** some guidelines on debugging optimized c
*** 20185,20191 ****
  @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
  
  
--- 20179,20185 ----
  @end menu
  
  @node Controlling Run-Time Checks,Use of Restrictions,,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution controlling-run-time-checks}@anchor{185}@anchor{gnat_ugn/gnat_and_program_execution id28}@anchor{186}
  @subsubsection Controlling Run-Time Checks
  
  
*************** remove checks) or @code{pragma Unsuppres
*** 20237,20243 ****
  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
  
  
--- 20231,20237 ----
  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{187}@anchor{gnat_ugn/gnat_and_program_execution use-of-restrictions}@anchor{188}
  @subsubsection Use of Restrictions
  
  
*************** this, it also means you can write code w
*** 20273,20279 ****
  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
  
  
--- 20267,20273 ----
  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{189}@anchor{gnat_ugn/gnat_and_program_execution optimization-levels}@anchor{f0}
  @subsubsection Optimization Levels
  
  
*************** levels.
*** 20416,20425 ****
  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
  
  
--- 20410,20419 ----
  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{105,,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{18a}@anchor{gnat_ugn/gnat_and_program_execution id31}@anchor{18b}
  @subsubsection Debugging Optimized Code
  
  
*************** on the resulting executable,
*** 20547,20553 ****
  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
  
  
--- 20541,20547 ----
  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{18c}@anchor{gnat_ugn/gnat_and_program_execution inlining-of-subprograms}@anchor{105}
  @subsubsection Inlining of Subprograms
  
  
*************** indeed you should use @code{-O3} only if
*** 20691,20697 ****
  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
  
  
--- 20685,20691 ----
  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{18d}@anchor{gnat_ugn/gnat_and_program_execution id33}@anchor{18e}
  @subsubsection Floating Point Operations
  
  
*************** Note that the ABI has the same form for
*** 20738,20744 ****
  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
  
  
--- 20732,20738 ----
  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{18f}@anchor{gnat_ugn/gnat_and_program_execution vectorization-of-loops}@anchor{190}
  @subsubsection Vectorization of loops
  
  
*************** omit the non-vectorized version of the l
*** 20894,20900 ****
  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
  
  
--- 20888,20894 ----
  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{191}@anchor{gnat_ugn/gnat_and_program_execution other-optimization-switches}@anchor{192}
  @subsubsection Other Optimization Switches
  
  
*************** full details of these switches, see the
*** 20911,20917 ****
  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
  
  
--- 20905,20911 ----
  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{193}@anchor{gnat_ugn/gnat_and_program_execution optimization-and-strict-aliasing}@anchor{e7}
  @subsubsection Optimization and Strict Aliasing
  
  
*************** review any uses of unchecked conversion,
*** 21205,21211 ****
  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
  
  
--- 21199,21205 ----
  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{194}@anchor{gnat_ugn/gnat_and_program_execution id37}@anchor{195}
  @subsubsection Aliased Variables and Optimization
  
  
*************** avoid code such as this if possible beca
*** 21265,21271 ****
  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
  
  
--- 21259,21265 ----
  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{196}@anchor{gnat_ugn/gnat_and_program_execution id38}@anchor{197}
  @subsubsection Atomic Variables and Optimization
  
  
*************** such synchronization code is not require
*** 21346,21352 ****
  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
  
  
--- 21340,21346 ----
  useful to disable it.
  
  @node Passive Task Optimization,,Atomic Variables and Optimization,Performance Considerations
! @anchor{gnat_ugn/gnat_and_program_execution id39}@anchor{198}@anchor{gnat_ugn/gnat_and_program_execution passive-task-optimization}@anchor{199}
  @subsubsection Passive Task Optimization
  
  
*************** that typically clients of the tasks who
*** 21391,21397 ****
  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
  
  
--- 21385,21391 ----
  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{19a}@anchor{gnat_ugn/gnat_and_program_execution text-io-suggestions}@anchor{19b}
  @subsection @code{Text_IO} Suggestions
  
  
*************** of the standard output file or change th
*** 21414,21420 ****
  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
  
  
--- 21408,21414 ----
  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{19c}@anchor{gnat_ugn/gnat_and_program_execution reducing-size-of-executables-with-unused-subprogram-data-elimination}@anchor{19d}
  @subsection Reducing Size of Executables with Unused Subprogram/Data Elimination
  
  
*************** your executable just by setting options
*** 21431,21437 ****
  @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
  
  
--- 21425,21431 ----
  @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{19e}@anchor{gnat_ugn/gnat_and_program_execution id42}@anchor{19f}
  @subsubsection About unused subprogram/data elimination
  
  
*************** architecture and on all cross platforms
*** 21445,21451 ****
  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
  
  
--- 21439,21445 ----
  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{1a0}@anchor{gnat_ugn/gnat_and_program_execution id43}@anchor{1a1}
  @subsubsection Compilation options
  
  
*************** eliminate the unused code and data of th
*** 21486,21492 ****
  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
  
  
--- 21480,21486 ----
  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{1a2}@anchor{gnat_ugn/gnat_and_program_execution id44}@anchor{1a3}
  @subsubsection Example of unused subprogram/data elimination
  
  
*************** appropriate switches.
*** 21556,21562 ****
  @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
  
  
--- 21550,21556 ----
  @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{14f}@anchor{gnat_ugn/gnat_and_program_execution overflow-check-handling-in-gnat}@anchor{fa}
  @section Overflow Check Handling in GNAT
  
  
*************** This section explains how to control the
*** 21572,21578 ****
  @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
  
  
--- 21566,21572 ----
  @end menu
  
  @node Background,Management of Overflows in GNAT,,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution background}@anchor{1a4}@anchor{gnat_ugn/gnat_and_program_execution id46}@anchor{1a5}
  @subsection Background
  
  
*************** exception raised because of the intermed
*** 21698,21704 ****
  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
  
  
--- 21692,21698 ----
  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{1a6}@anchor{gnat_ugn/gnat_and_program_execution management-of-overflows-in-gnat}@anchor{1a7}
  @subsection Management of Overflows in GNAT
  
  
*************** out in the normal manner (with infinite
*** 21812,21818 ****
  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
  
  
--- 21806,21812 ----
  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{1a8}@anchor{gnat_ugn/gnat_and_program_execution specifying-the-desired-mode}@anchor{ec}
  @subsection Specifying the Desired Mode
  
  
*************** equivalent to @code{-gnato11}, causing a
*** 21936,21942 ****
  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
  
  
--- 21930,21936 ----
  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{1a9}@anchor{gnat_ugn/gnat_and_program_execution id49}@anchor{1aa}
  @subsection Default Settings
  
  
*************** checking but has no effect on the method
*** 21960,21966 ****
  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
  
  
--- 21954,21960 ----
  intermediate results.
  
  @node Implementation Notes,,Default Settings,Overflow Check Handling in GNAT
! @anchor{gnat_ugn/gnat_and_program_execution id50}@anchor{1ab}@anchor{gnat_ugn/gnat_and_program_execution implementation-notes}@anchor{1ac}
  @subsection Implementation Notes
  
  
*************** platforms for which @code{Long_Long_Inte
*** 22008,22014 ****
  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
  
  
--- 22002,22008 ----
  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{150}@anchor{gnat_ugn/gnat_and_program_execution performing-dimensionality-analysis-in-gnat}@anchor{1ad}
  @section Performing Dimensionality Analysis in GNAT
  
  
*************** package Mks_Numerics is new
*** 22411,22417 ****
  @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
  
  
--- 22405,22411 ----
  @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{151}@anchor{gnat_ugn/gnat_and_program_execution stack-related-facilities}@anchor{1ae}
  @section Stack Related Facilities
  
  
*************** particular, it deals with dynamic and st
*** 22427,22433 ****
  @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
  
  
--- 22421,22427 ----
  @end menu
  
  @node Stack Overflow Checking,Static Stack Usage Analysis,,Stack Related Facilities
! @anchor{gnat_ugn/gnat_and_program_execution id53}@anchor{1af}@anchor{gnat_ugn/gnat_and_program_execution stack-overflow-checking}@anchor{e8}
  @subsection Stack Overflow Checking
  
  
*************** If the space is exceeded, a @code{Storag
*** 22464,22470 ****
  
  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.
--- 22458,22464 ----
  
  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{115,,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.
*************** When using the LLVM back end, this switc
*** 22475,22481 ****
  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
  
  
--- 22469,22475 ----
  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{1b0}@anchor{gnat_ugn/gnat_and_program_execution static-stack-usage-analysis}@anchor{e9}
  @subsection Static Stack Usage Analysis
  
  
*************** consistent with that in the file documen
*** 22527,22533 ****
  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
  
  
--- 22521,22527 ----
  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{118}@anchor{gnat_ugn/gnat_and_program_execution id55}@anchor{1b1}
  @subsection Dynamic Stack Usage Analysis
  
  
*************** This is not suppored by the LLVM back en
*** 22611,22618 ****
  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
  
  
--- 22605,22612 ----
  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,Sanitizers for Ada,Stack Related Facilities,GNAT and Program Execution
! @anchor{gnat_ugn/gnat_and_program_execution id56}@anchor{152}@anchor{gnat_ugn/gnat_and_program_execution memory-management-issues}@anchor{1b2}
  @section Memory Management Issues
  
  
*************** incorrect uses of access values (includi
*** 22628,22634 ****
  @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
  
  
--- 22622,22628 ----
  @end menu
  
  @node Some Useful Memory Pools,The GNAT Debug Pool Facility,,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id57}@anchor{1b3}@anchor{gnat_ugn/gnat_and_program_execution some-useful-memory-pools}@anchor{1b4}
  @subsection Some Useful Memory Pools
  
  
*************** for T1'Storage_Size use 10_000;
*** 22710,22716 ****
  @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
  
  
--- 22704,22710 ----
  @end quotation
  
  @node The GNAT Debug Pool Facility,,Some Useful Memory Pools,Memory Management Issues
! @anchor{gnat_ugn/gnat_and_program_execution id58}@anchor{1b5}@anchor{gnat_ugn/gnat_and_program_execution the-gnat-debug-pool-facility}@anchor{1b6}
  @subsection The GNAT Debug Pool Facility
  
  
*************** Debug Pool info:
*** 22869,22879 ****
  @end quotation
  
  
  @c -- Non-breaking space in running text
  @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
  
  
--- 22863,23277 ----
  @end quotation
  
  
+ @node Sanitizers for Ada,,Memory Management Issues,GNAT and Program Execution
+ @anchor{gnat_ugn/gnat_and_program_execution id63}@anchor{153}@anchor{gnat_ugn/gnat_and_program_execution sanitizers-for-ada}@anchor{1b7}
+ @section Sanitizers for Ada
+ 
+ 
+ @geindex Sanitizers
+ 
+ This section explains how to use sanitizers with Ada code. Sanitizers offer code
+ instrumentation and run-time libraries that detect certain memory issues and
+ undefined behaviors during execution. They provide dynamic analysis capabilities
+ useful for debugging and testing.
+ 
+ While many sanitizer capabilities overlap with Ada’s built-in runtime checks,
+ they are particularly valuable for identifying issues that arise from unchecked
+ features or low-level operations.
+ 
+ @menu
+ * AddressSanitizer:: 
+ * UndefinedBehaviorSanitizer:: 
+ * Sanitizers in mixed-language applications:: 
+ 
+ @end menu
+ 
+ @node AddressSanitizer,UndefinedBehaviorSanitizer,,Sanitizers for Ada
+ @anchor{gnat_ugn/gnat_and_program_execution addresssanitizer}@anchor{1b8}@anchor{gnat_ugn/gnat_and_program_execution id64}@anchor{1b9}
+ @subsection AddressSanitizer
+ 
+ 
+ @geindex AddressSanitizer
+ 
+ @geindex ASan
+ 
+ @geindex -fsanitize=address
+ 
+ AddressSanitizer (aka ASan) is a memory error detector activated with the
+ @code{-fsanitize=address} switch. Note that many of the typical memory errors,
+ such as use after free or buffer overflow, are detected by Ada’s @code{Access_Check}
+ and @code{Index_Check}.
+ 
+ It can detect the following types of problems:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ Wrong memory overlay
+ 
+ A memory overlay is a situation in which an object of one type is placed at the
+ same memory location as a distinct object of a different type, thus overlaying
+ one object over the other in memory. When there is an overflow because the
+ objects do not overlap (like in the following example), the sanitizer can signal
+ it.
+ 
+ @quotation
+ 
+ @example
+ procedure Wrong_Size_Overlay is
+    type Block is array (Natural range <>) of Integer;
+ 
+    Block4 : aliased Block := (1 .. 4 => 4);
+    Block5 : Block (1 .. 5) with Address => Block4'Address;
+ begin
+    Block5 (Block5'Last) := 5;  --  Outside the object
+ end Wrong_Size_Overlay;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=address} and @code{-g} options,
+ the following error is shown at execution time:
+ 
+ @quotation
+ 
+ @example
+ ...
+ SUMMARY: AddressSanitizer: stack-buffer-overflow wrong_size_overlay.adb:7 in _ada_wrong_size_overlay
+ ...
+ @end example
+ @end quotation
+ 
+ @item 
+ Buffer overflow
+ 
+ Ada’s @code{Index_Check} detects buffer overflows caused by out-of-bounds array
+ access. If run-time checks are disabled, the sanitizer can still detect such
+ overflows at execution time the same way as it signalled the previous wrong
+ memory overlay. Note that if both the Ada run-time checks and the sanitizer
+ are enabled, the Ada run-time exception takes precedence.
+ 
+ @quotation
+ 
+ @example
+ procedure Buffer_Overrun is
+    Size : constant := 100;
+    Buffer : array (1 .. Size) of Integer := (others => 0);
+    Wrong_Index : Integer := Size + 1 with Export;
+ begin
+    -- Access outside the boundaries
+    Put_Line ("Value: " & Integer'Image (Buffer (Wrong_Index)));
+ end Buffer_Overrun;
+ @end example
+ @end quotation
+ 
+ @item 
+ Use after lifetime
+ 
+ Ada’s @code{Accessibility_Check} helps prevent use-after-return and
+ use-after-scope errors by enforcing lifetime rules. When these checks are
+ bypassed using @code{Unchecked_Access}, sanitizers can still detect such
+ violations during execution.
+ 
+ @quotation
+ 
+ @example
+ with Ada.Text_IO; use Ada.Text_IO;
+ 
+ procedure Use_After_Return is
+    type Integer_Access is access all Integer;
+    Ptr : Integer_Access;
+ 
+    procedure Inner;
+ 
+    procedure Inner is
+       Local : aliased Integer := 42;
+    begin
+       Ptr := Local'Unchecked_Access;
+    end Inner;
+ 
+ begin
+    Inner;
+    --  Accessing Local after it has gone out of scope
+    Put_Line ("Value: " & Integer'Image (Ptr.all));
+ end Use_After_Return;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=address} and @code{-g}
+ options, the following error is shown at execution time:
+ 
+ @quotation
+ 
+ @example
+ ...
+ ==1793927==ERROR: AddressSanitizer: stack-use-after-return on address 0xf6fa1a409060 at pc 0xb20b6cb6cac0 bp 0xffffcc89c8b0 sp 0xffffcc89c8c8
+ READ of size 4 at 0xf6fa1a409060 thread T0
+     #0 0xb20b6cb6cabc in _ada_use_after_return use_after_return.adb:18
+     ...
+ 
+ Address 0xf6fa1a409060 is located in stack of thread T0 at offset 32 in frame
+     #0 0xb20b6cb6c794 in use_after_return__inner use_after_return.adb:9
+ 
+   This frame has 1 object(s):
+     [32, 36) 'local' (line 10) <== Memory access at offset 32 is inside this variable
+ SUMMARY: AddressSanitizer: stack-use-after-return use_after_return.adb:18 in _ada_use_after_return
+ ...
+ @end example
+ @end quotation
+ 
+ @item 
+ Memory leak
+ 
+ A memory leak happens when a program allocates memory from the heap but fails
+ to release it after it is no longer needed and loses all references to it like
+ in the following example.
+ 
+ @quotation
+ 
+ @example
+ procedure Memory_Leak is
+    type Integer_Access is access Integer;
+ 
+    procedure Allocate is
+       Ptr : Integer_Access := new Integer'(42);
+    begin
+       null;
+    end Allocate;
+ begin
+    --  Memory leak occurs in the following procedure
+   Allocate;
+ end Memory_Leak;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=address} and @code{-g}
+ options, the following error is emitted at execution time showing the
+ location of the offending allocation.
+ 
+ @quotation
+ 
+ @example
+ ==1810634==ERROR: LeakSanitizer: detected memory leaks
+ 
+ Direct leak of 4 byte(s) in 1 object(s) allocated from:
+     #0 0xe3cbee4bb4a8 in __interceptor_malloc asan_malloc_linux.cpp:69
+     #1 0xc15bb25d0af8 in __gnat_malloc (memory_leak+0x10af8) (BuildId: f5914a6eac10824f81d512de50b514e7d5f733be)
+     #2 0xc15bb25c9060 in memory_leak__allocate memory_leak.adb:5
+     ...
+ 
+ SUMMARY: AddressSanitizer: 4 byte(s) leaked in 1 allocation(s).
+ @end example
+ @end quotation
+ @end itemize
+ 
+ @node UndefinedBehaviorSanitizer,Sanitizers in mixed-language applications,AddressSanitizer,Sanitizers for Ada
+ @anchor{gnat_ugn/gnat_and_program_execution id65}@anchor{1ba}@anchor{gnat_ugn/gnat_and_program_execution undefinedbehaviorsanitizer}@anchor{1bb}
+ @subsection UndefinedBehaviorSanitizer
+ 
+ 
+ @geindex UndefinedBehaviorSanitizer
+ 
+ @geindex UBSan
+ 
+ @geindex -fsanitize=undefined
+ 
+ UndefinedBehaviorSanitizer (aka UBSan) modifies the program at compile-time to
+ catch various kinds of undefined behavior during program execution.
+ 
+ Different sanitize options (@code{-fsanitize=alignment,float-cast-overflow,signed-integer-overflow})
+ detect the following types of problems:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ Wrong alignment
+ 
+ The @code{-fsanitize=alignment} flag (included also in
+ @code{-fsanitize=undefined}) enables run-time checks for misaligned memory
+ accesses, ensuring that objects are accessed at addresses that conform to the
+ alignment constraints of their declared types. Violations may lead to crashes
+ or performance penalties on certain architectures.
+ 
+ In the following example:
+ 
+ @quotation
+ 
+ @example
+ with Ada.Text_IO; use Ada.Text_IO;
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
+ procedure Misaligned_Address is
+    type Aligned_Integer is new Integer with
+      Alignment => 4;  -- Ensure 4-byte alignment
+ 
+    Reference : Aligned_Integer := 42;  -- Properly aligned object
+ 
+    -- Create a misaligned object by modifying the address manually
+    Misaligned : Aligned_Integer with Address => Reference'Address + 1;
+ 
+ begin
+    -- This causes undefined behavior or an alignment exception on strict architectures
+    Put_Line ("Misaligned Value: " & Aligned_Integer'Image (Misaligned));
+ end Misaligned_Address;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=alignment} and @code{-g}
+ options, the following error is shown at execution time.
+ 
+ @quotation
+ 
+ @example
+ misaligned_address.adb:15:51: runtime error: load of misaligned address 0xffffd836dd45 for type 'volatile misaligned_address__aligned_integer', which requires 4 byte alignment
+ @end example
+ @end quotation
+ 
+ @item 
+ Signed integer overflow
+ 
+ Ada performs range checks at runtime in arithmetic operation on signed integers
+ to ensure the value is within the target type’s bounds. If this check is removed,
+ the @code{-fsanitize=signed-integer-overflow} flag (included also in
+ @code{-fsanitize=undefined}) enables run-time checks for signed integer
+ overflows.
+ 
+ In the following example:
+ 
+ @quotation
+ 
+ @example
+ procedure Signed_Integer_Overflow is
+    type Small_Int is range -128 .. 127;
+    X, Y, Z : Small_Int with Export;
+ begin
+    X := 100;
+    Y := 50;
+    -- This addition will exceed 127, causing an overflow
+    Z := X + Y;
+ end Signed_Integer_Overflow;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=signed-integer-overflow} and
+ @code{-g} options, the following error is shown at execution time.
+ 
+ @quotation
+ 
+ @example
+ signed_integer_overflow.adb:8:11: runtime error: signed integer overflow: 100 + 50 cannot be represented in type 'signed_integer_overflow__small_int'
+ @end example
+ @end quotation
+ 
+ @item 
+ Float to integer overflow
+ 
+ When converting a floating-point value to an integer type, Ada performs a range
+ check at runtime to ensure the value is within the target type’s bounds. If this
+ check is removed, the sanitizer can detect overflows in conversions from
+ floating point to integer types.
+ 
+ In the following code:
+ 
+ @quotation
+ 
+ @example
+ procedure Float_Cast_Overflow is
+    Flt : Float := Float'Last with Export;
+    Int : Integer;
+ begin
+    Int := Integer (Flt); --  Overflow
+ end Float_Cast_Overflow;
+ @end example
+ @end quotation
+ 
+ If the code is built with the @code{-fsanitize=float-cast-overflow} and
+ @code{-g} options, the following error is shown at execution time.
+ 
+ @quotation
+ 
+ @example
+ float_cast_overflow.adb:5:20: runtime error: 3.40282e+38 is outside the range of representable values of type 'integer'
+ @end example
+ @end quotation
+ @end itemize
+ 
+ @node Sanitizers in mixed-language applications,,UndefinedBehaviorSanitizer,Sanitizers for Ada
+ @anchor{gnat_ugn/gnat_and_program_execution sanitizers-in-mixed-language-applications}@anchor{1bc}
+ @subsection Sanitizers in mixed-language applications
+ 
+ 
+ Most of the checks performed by sanitizers operate at a global level, which
+ means they can detect issues even when they span across language boundaries.
+ This applies notably to:
+ 
+ 
+ @itemize *
+ 
+ @item 
+ All checks performed by the AddressSanitizer: wrong memory overlays, buffer
+ overflows, uses after lifetime, memory leaks. These checks apply globally,
+ regardless of where the objects are allocated or defined, or where they are
+ destroyed
+ 
+ @item 
+ Wrong alignment checks performed by the UndefinedBehaviorSanitizer. It will
+ check whether an object created in a given language is accessed in another
+ with an incompatible alignment
+ @end itemize
+ 
+ An interesting case that highlights the benefit of global sanitization is a
+ buffer overflow caused by a mismatch in language bindings. Consider the
+ following C function, which allocates an array of 4 characters:
+ 
+ @quotation
+ 
+ @example
+ char *get_str (void) @{
+    char *str = malloc (4 * sizeof (char));
+ @}
+ @end example
+ @end quotation
+ 
+ This function is then bound to Ada code, which incorrectly assumes the buffer
+ is of size 5:
+ 
+ @quotation
+ 
+ @example
+ type Buffer is array (1 .. 5) of Character;
+ 
+ function Get_Str return access Buffer
+    with Import => True, Convention => C, External_Name => "get_str";
+ 
+ Str : access Buffer := Get_Str;
+ Ch  : Character     := S (S'Last);  -- Detected by AddressSanitizer as erroneous
+ @end example
+ @end quotation
+ 
+ On the Ada side, accessing @code{Str (5)} appears valid because the array type
+ declares five elements. However, the actual memory allocated in C only holds
+ four. This mismatch is not detectable by Ada run-time checks, because Ada has
+ no visibility into how the memory was allocated.
+ 
+ However, the AddressSanitizer will detect the heap buffer overflow at runtime,
+ halting execution and providing a clear diagnostic:
+ 
+ @quotation
+ 
+ @example
+ ...
+ SUMMARY: AddressSanitizer: heap-buffer-overflow buffer_overflow.adb:20 in _ada_buffer_overflow
+ ...
+ @end example
+ @end quotation
+ 
  @c -- Non-breaking space in running text
  @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{1bd}@anchor{gnat_ugn/platform_specific_information id1}@anchor{1be}@anchor{gnat_ugn/platform_specific_information platform-specific-information}@anchor{e}
  @chapter Platform-Specific Information
  
  
*************** related to the GNAT implementation on sp
*** 22891,22897 ****
  @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
  
  
--- 23289,23295 ----
  @end menu
  
  @node Run-Time Libraries,Specifying a Run-Time Library,,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id2}@anchor{1bf}@anchor{gnat_ugn/platform_specific_information run-time-libraries}@anchor{1c0}
  @section Run-Time Libraries
  
  
*************** are supplied on various GNAT platforms.
*** 22952,22958 ****
  @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
  
  
--- 23350,23356 ----
  @end menu
  
  @node Summary of Run-Time Configurations,,,Run-Time Libraries
! @anchor{gnat_ugn/platform_specific_information id3}@anchor{1c1}@anchor{gnat_ugn/platform_specific_information summary-of-run-time-configurations}@anchor{1c2}
  @subsection Summary of Run-Time Configurations
  
  
*************** ZCX
*** 23052,23058 ****
  
  
  @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
  
  
--- 23450,23456 ----
  
  
  @node Specifying a Run-Time Library,GNU/Linux Topics,Run-Time Libraries,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id4}@anchor{1c3}@anchor{gnat_ugn/platform_specific_information specifying-a-run-time-library}@anchor{1c4}
  @section Specifying a Run-Time Library
  
  
*************** by using the @code{--RTS} switch, e.g.,
*** 23145,23151 ****
  @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
  
  
--- 23543,23549 ----
  @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{1c5}@anchor{gnat_ugn/platform_specific_information id5}@anchor{1c6}
  @section GNU/Linux Topics
  
  
*************** This section describes topics that are s
*** 23160,23166 ****
  @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
  
  
--- 23558,23564 ----
  @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{1c7}@anchor{gnat_ugn/platform_specific_information required-packages-on-gnu-linux}@anchor{1c8}
  @subsection Required Packages on GNU/Linux
  
  
*************** Other GNU/Linux distributions might choo
*** 23197,23203 ****
  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
  
  
--- 23595,23601 ----
  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{1c9}@anchor{gnat_ugn/platform_specific_information position-independent-executable-pie-enabled-by-default-on-linux}@anchor{1ca}
  @subsection Position Independent Executable (PIE) Enabled by Default on Linux
  
  
*************** and linked with @code{-pie}).
*** 23245,23253 ****
  @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
  
  
--- 23643,23651 ----
  @geindex SCHED_RR scheduling policy
  
  @geindex SCHED_OTHER scheduling policy
! @anchor{gnat_ugn/platform_specific_information choosing-the-scheduling-policy-with-gnu-linux}@anchor{1cb}
  @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{1cc}
  @subsection Choosing the Scheduling Policy with GNU/Linux
  
  
*************** but not on the host machine running the
*** 23305,23311 ****
  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
  
  
--- 23703,23709 ----
  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{1cd}@anchor{gnat_ugn/platform_specific_information id8}@anchor{1ce}
  @subsection A GNU/Linux Debug Quirk
  
  
*************** the symptoms most commonly observed.
*** 23325,23331 ****
  @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
  
  
--- 23723,23729 ----
  @geindex Windows
  
  @node Microsoft Windows Topics,Mac OS Topics,GNU/Linux Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id9}@anchor{1cf}@anchor{gnat_ugn/platform_specific_information microsoft-windows-topics}@anchor{1d0}
  @section Microsoft Windows Topics
  
  
*************** platforms.
*** 23347,23353 ****
  @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
  
  
--- 23745,23751 ----
  @end menu
  
  @node Using GNAT on Windows,Using a network installation of GNAT,,Microsoft Windows Topics
! @anchor{gnat_ugn/platform_specific_information id10}@anchor{1d1}@anchor{gnat_ugn/platform_specific_information using-gnat-on-windows}@anchor{1d2}
  @subsection Using GNAT on Windows
  
  
*************** different GNAT products.
*** 23426,23432 ****
  @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
  
  
--- 23824,23830 ----
  @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{1d3}@anchor{gnat_ugn/platform_specific_information using-a-network-installation-of-gnat}@anchor{1d4}
  @subsection Using a network installation of GNAT
  
  
*************** transfer of large amounts of data across
*** 23453,23459 ****
  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
  
  
--- 23851,23857 ----
  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{1d5}@anchor{gnat_ugn/platform_specific_information id12}@anchor{1d6}
  @subsection CONSOLE and WINDOWS subsystems
  
  
*************** $ gnatmake winprog -largs -mwindows
*** 23478,23484 ****
  @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
  
  
--- 23876,23882 ----
  @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{1d7}@anchor{gnat_ugn/platform_specific_information temporary-files}@anchor{1d8}
  @subsection Temporary Files
  
  
*************** environments where you may not have writ
*** 23516,23522 ****
  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
  
  
--- 23914,23920 ----
  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{1d9}
  @subsection Disabling Command Line Argument Expansion
  
  
*************** Ada.Command_Line.Argument (1) -> "'*.txt
*** 23587,23593 ****
  @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
  
  
--- 23985,23991 ----
  @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{1da}@anchor{gnat_ugn/platform_specific_information id14}@anchor{1db}
  @subsection Choosing the Scheduling Policy with Windows
  
  
*************** in @code{system.ads}. For more informati
*** 23605,23611 ****
  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
  
  
--- 24003,24009 ----
  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{1dc}
  @subsection Windows Socket Timeouts
  
  
*************** socket timeout shorter than 500 ms. If a
*** 23653,23659 ****
  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
  
  
--- 24051,24057 ----
  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{1dd}@anchor{gnat_ugn/platform_specific_information mixed-language-programming-on-windows}@anchor{1de}
  @subsection Mixed-Language Programming on Windows
  
  
*************** to use the Microsoft tools for your C++
*** 23675,23686 ****
  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
  
--- 24073,24084 ----
  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{1df,,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{1e0,,Building DLLs with GNAT Project files}) and use the Microsoft
  or other environment to build your executable.
  @end itemize
  
*************** native SEH support is used.
*** 23737,23743 ****
  @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
  
  
--- 24135,24141 ----
  @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{1e1}@anchor{gnat_ugn/platform_specific_information windows-calling-conventions}@anchor{1e2}
  @subsubsection Windows Calling Conventions
  
  
*************** are available for Windows:
*** 23782,23788 ****
  @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
  
  
--- 24180,24186 ----
  @end menu
  
  @node C Calling Convention,Stdcall Calling Convention,,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information c-calling-convention}@anchor{1e3}@anchor{gnat_ugn/platform_specific_information id17}@anchor{1e4}
  @subsubsection @code{C} Calling Convention
  
  
*************** the @code{External_Name} with a leading
*** 23824,23833 ****
  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
  
  
--- 24222,24231 ----
  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{1e5,,Stdcall Calling Convention}).
  
  @node Stdcall Calling Convention,Win32 Calling Convention,C Calling Convention,Windows Calling Conventions
! @anchor{gnat_ugn/platform_specific_information id18}@anchor{1e6}@anchor{gnat_ugn/platform_specific_information stdcall-calling-convention}@anchor{1e5}
  @subsubsection @code{Stdcall} Calling Convention
  
  
*************** Note that to ease building cross-platfor
*** 23925,23931 ****
  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
  
  
--- 24323,24329 ----
  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{1e7}@anchor{gnat_ugn/platform_specific_information win32-calling-convention}@anchor{1e8}
  @subsubsection @code{Win32} Calling Convention
  
  
*************** This convention, which is GNAT-specific,
*** 23933,23939 ****
  @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
  
  
--- 24331,24337 ----
  @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{1e9}@anchor{gnat_ugn/platform_specific_information id20}@anchor{1ea}
  @subsubsection @code{DLL} Calling Convention
  
  
*************** This convention, which is GNAT-specific,
*** 23941,23947 ****
  @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)
  
  
--- 24339,24345 ----
  @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{1eb}@anchor{gnat_ugn/platform_specific_information introduction-to-dynamic-link-libraries-dlls}@anchor{1ec}
  @subsubsection Introduction to Dynamic Link Libraries (DLLs)
  
  
*************** As a side note, an interesting differenc
*** 24025,24034 ****
  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
  
  
--- 24423,24432 ----
  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{1ed,,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{1ee}@anchor{gnat_ugn/platform_specific_information using-dlls-with-gnat}@anchor{1df}
  @subsubsection Using DLLs with GNAT
  
  
*************** example a fictitious DLL called @code{AP
*** 24119,24125 ****
  @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
  
  
--- 24517,24523 ----
  @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{1ef}@anchor{gnat_ugn/platform_specific_information id23}@anchor{1f0}
  @subsubsection Creating an Ada Spec for the DLL Services
  
  
*************** end API;
*** 24159,24165 ****
  @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
  
  
--- 24557,24563 ----
  @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{1f1}@anchor{gnat_ugn/platform_specific_information id24}@anchor{1f2}
  @subsubsection Creating an Import Library
  
  
*************** as in this case it is possible to link d
*** 24173,24179 ****
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1e6}
  @subsubheading The Definition File
  
  
--- 24571,24577 ----
  DLL. Otherwise read on.
  
  @geindex Definition file
! @anchor{gnat_ugn/platform_specific_information the-definition-file}@anchor{1ed}
  @subsubheading The Definition File
  
  
*************** EXPORTS
*** 24221,24237 ****
  @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
--- 24619,24635 ----
  @end table
  
  Note that you must specify the correct suffix (@code{@@@var{nn}})
! (see @ref{1e2,,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{1f3}
  @subsubheading Creating a Definition File Automatically
  
  
  You can automatically create the definition file @code{API.def}
! (see @ref{1ed,,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
*** 24241,24247 ****
  @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.
  
--- 24639,24645 ----
  @end example
  
  Note that if some routines in the DLL have the @code{Stdcall} convention
! (@ref{1e2,,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.
  
*************** tells you what symbol is expected. You t
*** 24266,24278 ****
  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
  
--- 24664,24676 ----
  definition file and add the right suffix.
  @end itemize
  @end quotation
! @anchor{gnat_ugn/platform_specific_information gnat-style-import-library}@anchor{1f4}
  @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{1f5,,Using gnatdll}) as follows:
  
  @quotation
  
*************** definition file name is @code{xyz.def},
*** 24288,24302 ****
  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
--- 24686,24700 ----
  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{1f5,,Using gnatdll} for more information about @code{gnatdll}).
  @end quotation
! @anchor{gnat_ugn/platform_specific_information msvs-style-import-library}@anchor{1f6}
  @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{1de,,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
*************** See the Microsoft documentation for furt
*** 24320,24326 ****
  @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
  
  
--- 24718,24724 ----
  @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{1e0}@anchor{gnat_ugn/platform_specific_information id25}@anchor{1f7}
  @subsubsection Building DLLs with GNAT Project files
  
  
*************** when inside the @code{DllMain} routine w
*** 24336,24342 ****
  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
  
  
--- 24734,24740 ----
  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{1f8}@anchor{gnat_ugn/platform_specific_information id26}@anchor{1f9}
  @subsubsection Building DLLs with GNAT
  
  
*************** $ gcc -shared -shared-libgcc -o api.dll
*** 24367,24373 ****
  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
--- 24765,24771 ----
  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{1ed,,The Definition File}).
  For example:
  
  @example
*************** $ gnatmake main -Iapilib -bargs -shared
*** 24405,24411 ****
  @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
  
  
--- 24803,24809 ----
  @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{1fa}@anchor{gnat_ugn/platform_specific_information id27}@anchor{1fb}
  @subsubsection Building DLLs with gnatdll
  
  
*************** $ gnatmake main -Iapilib -bargs -shared
*** 24413,24420 ****
  @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
--- 24811,24818 ----
  @geindex building
  
  Note that it is preferred to use GNAT Project files
! (@ref{1e0,,Building DLLs with GNAT Project files}) or the built-in GNAT
! DLL support (@ref{1f8,,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:
*** 24430,24449 ****
  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.
  
--- 24828,24847 ----
  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{1fc,,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{1fd,,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{1fe,,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
*** 24453,24463 ****
  
  @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}
--- 24851,24861 ----
  
  @item 
  You must provide a definition file listing the exported entities
! (@ref{1ed,,The Definition File}).
  
  @item 
  Finally, you must use @code{gnatdll} to produce the DLL and the import
! library (@ref{1f5,,Using gnatdll}).
  @end itemize
  
  Note that a relocatable DLL stripped using the @code{strip}
*************** chapter of the `GPRbuild User’s Guide'
*** 24477,24483 ****
  @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
  
  
--- 24875,24881 ----
  @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{1ff}
  @subsubsection Limitations When Using Ada DLLs from Ada
  
  
*************** It is completely safe to exchange plain
*** 24498,24504 ****
  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
  
  
--- 24896,24902 ----
  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{1fc}@anchor{gnat_ugn/platform_specific_information id28}@anchor{200}
  @subsubsection Exporting Ada Entities
  
  
*************** end API;
*** 24598,24607 ****
  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
  
  
--- 24996,25005 ----
  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{201,,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{1fd}@anchor{gnat_ugn/platform_specific_information id29}@anchor{202}
  @subsubsection Ada DLLs and Elaboration
  
  
*************** the Ada elaboration routine @code{adaini
*** 24619,24625 ****
  (@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}
--- 25017,25023 ----
  (@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{1f5,,Using gnatdll}).
  
  When a DLL is loaded, Windows systematically invokes a routine called
  @code{DllMain}. It should therefore be possible to call @code{adainit}
*************** time), which means that the GNAT run-tim
*** 24632,24638 ****
  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
  
  
--- 25030,25036 ----
  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{1fe}@anchor{gnat_ugn/platform_specific_information id30}@anchor{203}
  @subsubsection Ada DLLs and Finalization
  
  
*************** routine @code{adafinal} generated by the
*** 24647,24656 ****
  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
  
  
--- 25045,25054 ----
  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{1f5,,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{204}@anchor{gnat_ugn/platform_specific_information id31}@anchor{205}
  @subsubsection Creating a Spec for Ada DLLs
  
  
*************** end API;
*** 24708,24714 ****
  @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
  
  
--- 25106,25112 ----
  @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{201}@anchor{gnat_ugn/platform_specific_information id32}@anchor{206}
  @subsubsection Creating the Definition File
  
  
*************** EXPORTS
*** 24744,24750 ****
  @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}
  
  
--- 25142,25148 ----
  @end quotation
  
  @node Using gnatdll,,Creating the Definition File,Creating a Spec for Ada DLLs
! @anchor{gnat_ugn/platform_specific_information id33}@anchor{207}@anchor{gnat_ugn/platform_specific_information using-gnatdll}@anchor{1f5}
  @subsubsection Using @code{gnatdll}
  
  
*************** asks @code{gnatlink} to generate the rou
*** 24948,24954 ****
  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.
--- 25346,25352 ----
  is loaded into memory.
  
  @item 
! uses @code{dlltool} (see @ref{208,,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.
*************** $ gnatbind -n api
*** 24986,24992 ****
  $ 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}
  
  
--- 25384,25390 ----
  $ gnatlink api api.exp -o api.dll -mdll
  @end example
  @end itemize
! @anchor{gnat_ugn/platform_specific_information using-dlltool}@anchor{208}
  @subsubheading Using @code{dlltool}
  
  
*************** DLL in the static import library generat
*** 25044,25050 ****
  @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
  
--- 25442,25448 ----
  @item @code{-k}
  
  Kill @code{@@@var{nn}} from exported names
! (@ref{1e2,,Windows Calling Conventions}
  for a discussion about @code{Stdcall}-style symbols).
  @end table
  
*************** Use @code{assembler-name} as the assembl
*** 25100,25106 ****
  @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
  
  
--- 25498,25504 ----
  @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{209}@anchor{gnat_ugn/platform_specific_information id34}@anchor{20a}
  @subsubsection GNAT and Windows Resources
  
  
*************** the corresponding Microsoft documentatio
*** 25192,25198 ****
  @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
  
  
--- 25590,25596 ----
  @end menu
  
  @node Building Resources,Compiling Resources,,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information building-resources}@anchor{20b}@anchor{gnat_ugn/platform_specific_information id35}@anchor{20c}
  @subsubsection Building Resources
  
  
*************** complete description of the resource scr
*** 25212,25218 ****
  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
  
  
--- 25610,25616 ----
  the Microsoft documentation.
  
  @node Compiling Resources,Using Resources,Building Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information compiling-resources}@anchor{20d}@anchor{gnat_ugn/platform_specific_information id36}@anchor{20e}
  @subsubsection Compiling Resources
  
  
*************** $ windres -i myres.res -o myres.o
*** 25254,25260 ****
  @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
  
  
--- 25652,25658 ----
  @end quotation
  
  @node Using Resources,,Compiling Resources,GNAT and Windows Resources
! @anchor{gnat_ugn/platform_specific_information id37}@anchor{20f}@anchor{gnat_ugn/platform_specific_information using-resources}@anchor{210}
  @subsubsection Using Resources
  
  
*************** $ gnatmake myprog -largs myres.o
*** 25274,25280 ****
  @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
  
  
--- 25672,25678 ----
  @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{211}@anchor{gnat_ugn/platform_specific_information using-gnat-dlls-from-microsoft-visual-studio-applications}@anchor{212}
  @subsubsection Using GNAT DLLs from Microsoft Visual Studio Applications
  
  
*************** $ gprbuild -p mylib.gpr
*** 25309,25315 ****
  @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
--- 25707,25713 ----
  @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{1f3,,Creating Definition File Automatically}):
  @end enumerate
  
  @quotation
*************** $ dlltool libmylib.dll -z libmylib.def -
*** 25326,25332 ****
  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
--- 25724,25730 ----
  Make sure that MSVS command-line tools are accessible on the path.
  
  @item 
! Create the Microsoft-style import library (see @ref{1f6,,MSVS-Style Import Library}):
  @end enumerate
  
  @quotation
*************** the @code{.exe}.
*** 25369,25375 ****
  @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
  
  
--- 25767,25773 ----
  @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{213}@anchor{gnat_ugn/platform_specific_information id38}@anchor{214}
  @subsubsection Debugging a DLL
  
  
*************** debugger compatible with the tools suite
*** 25406,25412 ****
  @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
  
  
--- 25804,25810 ----
  @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{215}@anchor{gnat_ugn/platform_specific_information program-and-dll-both-built-with-gcc-gnat}@anchor{216}
  @subsubsection Program and DLL Both Built with GCC/GNAT
  
  
*************** the process. Let’s suppose the main pr
*** 25416,25422 ****
  @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:
  
--- 25814,25820 ----
  @code{ada_main} and in the DLL there’s an entry point named
  @code{ada_dll}.
  
! The DLL (@ref{1ec,,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:
  
*************** Set a breakpoint inside the DLL
*** 25453,25462 ****
  
  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
  
  
--- 25851,25860 ----
  
  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{154,,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{217}@anchor{gnat_ugn/platform_specific_information program-built-with-foreign-tools-and-dll-built-with-gcc-gnat}@anchor{218}
  @subsubsection Program Built with Foreign Tools and DLL Built with GCC/GNAT
  
  
*************** case, for example, for some C code built
*** 25473,25479 ****
  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
--- 25871,25877 ----
  there’s a DLL named @code{test.dll} containing an Ada entry point named
  @code{ada_dll}.
  
! The DLL (see @ref{1ec,,Introduction to Dynamic Link Libraries (DLLs)}) must have
  been built with debugging information (see the GNAT @code{-g} switch).
  
  @subsubheading Debugging the DLL Directly
*************** Continue the program.
*** 25540,25546 ****
  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.
--- 25938,25944 ----
  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{154,,Running and Debugging Ada Programs}).
  @end itemize
  
  You can also debug the DLL by attaching @code{GDB} to a running process.
*************** Continue process execution.
*** 25610,25630 ****
  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.
  
--- 26008,26029 ----
  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{154,,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{219}@anchor{gnat_ugn/platform_specific_information setting-stack-size-from-gnatlink}@anchor{12c}
  @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. The specified size will
! become the reserved memory size of the underlying thread.
  
  Since very old versions of Windows (2000, NT4, etc.) don’t allow setting the
! reserve size of individual tasks, for those versions 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.
  
*************** because the comma is a separator for thi
*** 25656,25662 ****
  @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}
  
  
--- 26055,26061 ----
  @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{21a}@anchor{gnat_ugn/platform_specific_information setting-heap-size-from-gnatlink}@anchor{12d}
  @subsubsection Setting Heap Size from @code{gnatlink}
  
  
*************** because the comma is a separator for thi
*** 25689,25695 ****
  @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
  
  
--- 26088,26094 ----
  @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{21b}@anchor{gnat_ugn/platform_specific_information windows-specific-add-ons}@anchor{21c}
  @subsection Windows Specific Add-Ons
  
  
*************** This section describes the Windows speci
*** 25702,25708 ****
  @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
  
  
--- 26101,26107 ----
  @end menu
  
  @node Win32Ada,wPOSIX,,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id43}@anchor{21d}@anchor{gnat_ugn/platform_specific_information win32ada}@anchor{21e}
  @subsubsection Win32Ada
  
  
*************** gprbuild p.gpr
*** 25733,25739 ****
  @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
  
  
--- 26132,26138 ----
  @end quotation
  
  @node wPOSIX,,Win32Ada,Windows Specific Add-Ons
! @anchor{gnat_ugn/platform_specific_information id44}@anchor{21f}@anchor{gnat_ugn/platform_specific_information wposix}@anchor{220}
  @subsubsection wPOSIX
  
  
*************** gprbuild p.gpr
*** 25766,25772 ****
  @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
  
  
--- 26165,26171 ----
  @end quotation
  
  @node Mac OS Topics,,Microsoft Windows Topics,Platform-Specific Information
! @anchor{gnat_ugn/platform_specific_information id45}@anchor{221}@anchor{gnat_ugn/platform_specific_information mac-os-topics}@anchor{222}
  @section Mac OS Topics
  
  
*************** platform.
*** 25781,25787 ****
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{21c}
  @subsection Codesigning the Debugger
  
  
--- 26180,26186 ----
  @end menu
  
  @node Codesigning the Debugger,,,Mac OS Topics
! @anchor{gnat_ugn/platform_specific_information codesigning-the-debugger}@anchor{223}
  @subsection Codesigning the Debugger
  
  
*************** installed GNAT.  Also, be sure that user
*** 25863,25869 ****
  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
  
  
--- 26262,26268 ----
  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{224}@anchor{gnat_ugn/example_of_binder_output example-of-binder-output-file}@anchor{f}@anchor{gnat_ugn/example_of_binder_output id1}@anchor{225}
  @chapter Example of Binder Output File
  
  
*************** elaboration code in your own application
*** 26613,26619 ****
  @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
  
  
--- 27012,27018 ----
  @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{226}@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{227}
  @chapter Elaboration Order Handling in GNAT
  
  
*************** GNAT, either automatically or with expli
*** 26643,26649 ****
  @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
  
  
--- 27042,27048 ----
  @end menu
  
  @node Elaboration Code,Elaboration Order,,Elaboration Order Handling in GNAT
! @anchor{gnat_ugn/elaboration_order_handling_in_gnat elaboration-code}@anchor{228}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id2}@anchor{229}
  @section Elaboration Code
  
  
*************** elaborated.
*** 26792,26798 ****
  @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
  
  
--- 27191,27197 ----
  @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{22a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id3}@anchor{22b}
  @section Elaboration Order
  
  
*************** however a compiler may not always find s
*** 26962,26968 ****
  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
  
  
--- 27361,27367 ----
  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{22c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id4}@anchor{22d}
  @section Checking the Elaboration Order
  
  
*************** order.
*** 27023,27029 ****
  @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
  
  
--- 27422,27428 ----
  @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{22e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id5}@anchor{22f}
  @section Controlling the Elaboration Order in Ada
  
  
*************** is that the program continues to stay in
*** 27352,27358 ****
  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
  
  
--- 27751,27757 ----
  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{230}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id6}@anchor{231}
  @section Controlling the Elaboration Order in GNAT
  
  
*************** that in this mode, GNAT may not diagnose
*** 27483,27489 ****
  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
  
  
--- 27882,27888 ----
  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{232}@anchor{gnat_ugn/elaboration_order_handling_in_gnat mixing-elaboration-models}@anchor{233}
  @section Mixing Elaboration Models
  
  
*************** warning:   "y.ads" which has static elab
*** 27530,27536 ****
  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
  
  
--- 27929,27935 ----
  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{234}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id8}@anchor{235}
  @section ABE Diagnostics
  
  
*************** declaration @code{Safe} because the body
*** 27637,27643 ****
  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
  
  
--- 28036,28042 ----
  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{236}@anchor{gnat_ugn/elaboration_order_handling_in_gnat spark-diagnostics}@anchor{237}
  @section SPARK Diagnostics
  
  
*************** rules.
*** 27663,27669 ****
  @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
  
  
--- 28062,28068 ----
  @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{238}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id10}@anchor{239}
  @section Elaboration Circularities
  
  
*************** This section enumerates various tactics
*** 27763,27769 ****
  @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
  
  
--- 28162,28168 ----
  @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{23a}@anchor{gnat_ugn/elaboration_order_handling_in_gnat resolving-elaboration-circularities}@anchor{23b}
  @section Resolving Elaboration Circularities
  
  
*************** Use the relaxed dynamic-elaboration mode
*** 28034,28040 ****
  @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
  
  
--- 28433,28439 ----
  @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{23c}@anchor{gnat_ugn/elaboration_order_handling_in_gnat id12}@anchor{23d}
  @section Elaboration-related Compiler Switches
  
  
*************** checks. The example above will still fai
*** 28215,28221 ****
  @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
  
  
--- 28614,28620 ----
  @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{23e}@anchor{gnat_ugn/elaboration_order_handling_in_gnat summary-of-procedures-for-elaboration-control}@anchor{23f}
  @section Summary of Procedures for Elaboration Control
  
  
*************** Use the relaxed dynamic elaboration mode
*** 28273,28279 ****
  @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
  
  
--- 28672,28678 ----
  @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{240}@anchor{gnat_ugn/elaboration_order_handling_in_gnat inspecting-the-chosen-elaboration-order}@anchor{241}
  @section Inspecting the Chosen Elaboration Order
  
  
*************** gdbstr (body)
*** 28416,28422 ****
  @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
  
  
--- 28815,28821 ----
  @end quotation
  
  @node Inline Assembler,GNU Free Documentation License,Elaboration Order Handling in GNAT,Top
! @anchor{gnat_ugn/inline_assembler doc}@anchor{242}@anchor{gnat_ugn/inline_assembler id1}@anchor{243}@anchor{gnat_ugn/inline_assembler inline-assembler}@anchor{11}
  @chapter Inline Assembler
  
  
*************** and assembly language programming.
*** 28475,28481 ****
  @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
  
  
--- 28874,28880 ----
  @end menu
  
  @node Basic Assembler Syntax,A Simple Example of Inline Assembler,,Inline Assembler
! @anchor{gnat_ugn/inline_assembler basic-assembler-syntax}@anchor{244}@anchor{gnat_ugn/inline_assembler id2}@anchor{245}
  @section Basic Assembler Syntax
  
  
*************** Intel: Destination first; for example @c
*** 28591,28597 ****
  
  
  @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
  
  
--- 28990,28996 ----
  
  
  @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{246}@anchor{gnat_ugn/inline_assembler id3}@anchor{247}
  @section A Simple Example of Inline Assembler
  
  
*************** If there are no errors, @code{as} genera
*** 28740,28746 ****
  @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
  
  
--- 29139,29145 ----
  @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{248}@anchor{gnat_ugn/inline_assembler output-variables-in-inline-assembler}@anchor{249}
  @section Output Variables in Inline Assembler
  
  
*************** end Get_Flags_3;
*** 29107,29113 ****
  @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
  
  
--- 29506,29512 ----
  @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{24a}@anchor{gnat_ugn/inline_assembler input-variables-in-inline-assembler}@anchor{24b}
  @section Input Variables in Inline Assembler
  
  
*************** _increment__incr.1:
*** 29196,29202 ****
  @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
  
  
--- 29595,29601 ----
  @end quotation
  
  @node Inlining Inline Assembler Code,Other Asm Functionality,Input Variables in Inline Assembler,Inline Assembler
! @anchor{gnat_ugn/inline_assembler id6}@anchor{24c}@anchor{gnat_ugn/inline_assembler inlining-inline-assembler-code}@anchor{24d}
  @section Inlining Inline Assembler Code
  
  
*************** movl %esi,%eax
*** 29267,29273 ****
  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
  
  
--- 29666,29672 ----
  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{24e}@anchor{gnat_ugn/inline_assembler other-asm-functionality}@anchor{24f}
  @section Other @code{Asm} Functionality
  
  
*************** and @code{Volatile}, which inhibits unwa
*** 29282,29288 ****
  @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
  
  
--- 29681,29687 ----
  @end menu
  
  @node The Clobber Parameter,The Volatile Parameter,,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id8}@anchor{250}@anchor{gnat_ugn/inline_assembler the-clobber-parameter}@anchor{251}
  @subsection The @code{Clobber} Parameter
  
  
*************** Use ‘register’ name @code{memory} if
*** 29346,29352 ****
  @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
  
  
--- 29745,29751 ----
  @end itemize
  
  @node The Volatile Parameter,,The Clobber Parameter,Other Asm Functionality
! @anchor{gnat_ugn/inline_assembler id9}@anchor{252}@anchor{gnat_ugn/inline_assembler the-volatile-parameter}@anchor{253}
  @subsection The @code{Volatile} Parameter
  
  
*************** to @code{True} only if the compiler’s
*** 29382,29388 ****
  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
  
  
--- 29781,29787 ----
  problems.
  
  @node GNU Free Documentation License,Index,Inline Assembler,Top
! @anchor{share/gnu_free_documentation_license doc}@anchor{254}@anchor{share/gnu_free_documentation_license gnu-fdl}@anchor{1}@anchor{share/gnu_free_documentation_license gnu-free-documentation-license}@anchor{255}
  @chapter GNU Free Documentation License
  
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatbind.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatbind.adb
*** gcc-15.2.0/gcc/ada/gnatbind.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatbind.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatbind.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatbind.ads
*** gcc-15.2.0/gcc/ada/gnatbind.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatbind.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatchop.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatchop.adb
*** gcc-15.2.0/gcc/ada/gnatchop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatchop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.OS_Lib;                use GNA
*** 36,41 ****
--- 36,42 ----
  with GNAT.Heap_Sort_G;
  with GNAT.Table;
  
+ with Osint;
  with Switch;                     use Switch;
  with Types;
  
*************** procedure Gnatchop is
*** 44,55 ****
     Config_File_Name : constant String_Access := new String'("gnat.adc");
     --  The name of the file holding the GNAT configuration pragmas
  
!    Gcc : String_Access := new String'("gcc");
     --  May be modified by switch --GCC=
  
-    Gcc_Set : Boolean := False;
-    --  True if a switch --GCC= is used
- 
     Gnat_Cmd : String_Access;
     --  Command to execute the GNAT compiler
  
--- 45,53 ----
     Config_File_Name : constant String_Access := new String'("gnat.adc");
     --  The name of the file holding the GNAT configuration pragmas
  
!    Gcc : String_Access := null;
     --  May be modified by switch --GCC=
  
     Gnat_Cmd : String_Access;
     --  Command to execute the GNAT compiler
  
*************** procedure Gnatchop is
*** 140,146 ****
        --  Line number from GNAT output line
  
        Offset : File_Offset;
!       --  Offset name from GNAT output line
  
        SR_Present : Boolean;
        --  Set True if SR parameter present
--- 138,144 ----
        --  Line number from GNAT output line
  
        Offset : File_Offset;
!       --  Offset from GNAT output line
  
        SR_Present : Boolean;
        --  Set True if SR parameter present
*************** procedure Gnatchop is
*** 222,233 ****
                                         Integer'Image
                                           (Maximum_File_Name_Length);
  
-    function Locate_Executable
-      (Program_Name    : String;
-       Look_For_Prefix : Boolean := True) return String_Access;
-    --  Locate executable for given program name. This takes into account
-    --  the target-prefix of the current command, if Look_For_Prefix is True.
- 
     subtype EOL_Length is Natural range 0 .. 2;
     --  Possible lengths of end of line sequence
  
--- 220,225 ----
*************** procedure Gnatchop is
*** 492,567 ****
            Unit.Table (Sorted_Units.Table (U + 1)).File_Name.all;
     end Is_Duplicated;
  
-    -----------------------
-    -- Locate_Executable --
-    -----------------------
- 
-    function Locate_Executable
-      (Program_Name    : String;
-       Look_For_Prefix : Boolean := True) return String_Access
-    is
-       Gnatchop_Str    : constant String := "gnatchop";
-       Current_Command : constant String := Normalize_Pathname (Command_Name);
-       End_Of_Prefix   : Natural;
-       Start_Of_Prefix : Positive;
-       Start_Of_Suffix : Positive;
-       Result          : String_Access;
- 
-    begin
-       Start_Of_Prefix := Current_Command'First;
-       Start_Of_Suffix := Current_Command'Last + 1;
-       End_Of_Prefix   := Start_Of_Prefix - 1;
- 
-       if Look_For_Prefix then
- 
-          --  Find Start_Of_Prefix
- 
-          for J in reverse Current_Command'Range loop
-             if Current_Command (J) = '/'                 or else
-                Current_Command (J) = Directory_Separator or else
-                Current_Command (J) = ':'
-             then
-                Start_Of_Prefix := J + 1;
-                exit;
-             end if;
-          end loop;
- 
-          --  Find End_Of_Prefix
- 
-          for J in Start_Of_Prefix ..
-                   Current_Command'Last - Gnatchop_Str'Length + 1
-          loop
-             if Current_Command (J .. J + Gnatchop_Str'Length - 1) =
-                                                                   Gnatchop_Str
-             then
-                End_Of_Prefix := J - 1;
-                exit;
-             end if;
-          end loop;
-       end if;
- 
-       if End_Of_Prefix > Current_Command'First then
-          Start_Of_Suffix := End_Of_Prefix + Gnatchop_Str'Length + 1;
-       end if;
- 
-       declare
-          Command : constant String :=
-                      Current_Command (Start_Of_Prefix .. End_Of_Prefix)
-                        & Program_Name
-                        & Current_Command (Start_Of_Suffix ..
-                                           Current_Command'Last);
-       begin
-          Result := Locate_Exec_On_Path (Command);
- 
-          if Result = null then
-             Error_Msg
-               (Command & ": installation problem, executable not found");
-          end if;
-       end;
- 
-       return Result;
-    end Locate_Executable;
- 
     ---------------
     -- Parse_EOL --
     ---------------
--- 484,489 ----
*************** procedure Gnatchop is
*** 1088,1095 ****
                 exit;
  
              when '-' =>
!                Gcc     := new String'(Parameter);
!                Gcc_Set := True;
  
              when 'c' =>
                 Compilation_Mode := True;
--- 1010,1017 ----
                 exit;
  
              when '-' =>
!                Free (Gcc);
!                Gcc := new String'(Parameter);
  
              when 'c' =>
                 Compilation_Mode := True;
*************** procedure Gnatchop is
*** 1397,1404 ****
        Success : Boolean;
        TS_Time : OS_Time;
  
!       BOM_Present : Boolean;
!       BOM         : BOM_Kind;
        --  Record presence of UTF8 BOM in input
  
     begin
--- 1319,1325 ----
        Success : Boolean;
        TS_Time : OS_Time;
  
!       BOM : BOM_Kind;
        --  Record presence of UTF8 BOM in input
  
     begin
*************** procedure Gnatchop is
*** 1425,1431 ****
        --  Test for presence of BOM
  
        Read_BOM (Buffer.all, BOM_Length, BOM, XML_Support => False);
-       BOM_Present := BOM /= Unknown;
  
        --  Only chop those units that come from this file
  
--- 1346,1351 ----
*************** procedure Gnatchop is
*** 1435,1441 ****
                (Source    => Buffer,
                 Num       => Unit_Number,
                 TS_Time   => TS_Time,
!                Write_BOM => BOM_Present and then Unit_Number /= 1,
                 Success   => Success);
              exit when not Success;
           end if;
--- 1355,1361 ----
                (Source    => Buffer,
                 Num       => Unit_Number,
                 TS_Time   => TS_Time,
!                Write_BOM => BOM /= Unknown,
                 Success   => Success);
              exit when not Success;
           end if;
*************** procedure Gnatchop is
*** 1686,1691 ****
--- 1606,1618 ----
              String'Write
                (Stream_IO.Stream (File),
                 Source.all (Source'First .. Source'First + BOM_Length - 1));
+ 
+             --  The BOM is part of the first unit so do not write it twice
+ 
+             if Num = 1 then
+                Info.Offset := Info.Offset + BOM_Length;
+                Length := Length - BOM_Length;
+             end if;
           end if;
  
           --  Prepend configuration pragmas if necessary
*************** begin
*** 1767,1775 ****
  
     --  Check presence of required executables
  
!    Gnat_Cmd := Locate_Executable (Gcc.all, not Gcc_Set);
  
     if Gnat_Cmd = null then
        goto No_Files_Written;
     end if;
  
--- 1694,1706 ----
  
     --  Check presence of required executables
  
!    if Gcc = null then
!       Gcc := Osint.Program_Name ("gcc", "gnatchop");
!    end if;
!    Gnat_Cmd := Locate_Exec_On_Path (Gcc.all);
  
     if Gnat_Cmd = null then
+       Error_Msg (Gcc.all & ": installation problem, executable not found");
        goto No_Files_Written;
     end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatclean.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatclean.adb
*** gcc-15.2.0/gcc/ada/gnatclean.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatclean.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatcmd.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatcmd.adb
*** gcc-15.2.0/gcc/ada/gnatcmd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatcmd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
--- 24,36 ----
  ------------------------------------------------------------------------------
  
  with Gnatvsn;
+ with Errid;    use Errid;
  with Namet;    use Namet;
  with Opt;      use Opt;
  with Osint;    use Osint;
  with Output;   use Output;
  with Switch;   use Switch;
+ with System.OS_Lib;
  with Table;
  with Usage;
  
*************** procedure GNATCmd is
*** 47,52 ****
--- 49,58 ----
     Ada_Help_Switch : constant String := "--help-ada";
     --  Flag to display available build switches
  
+    Ada_Diagnostics_Switch : constant String := "--diagnostics";
+ 
+    Diagnostics_File_Name : constant String := "gnat_diagnostics.sarif";
+ 
     Error_Exit : exception;
     --  Raise this exception if error detected
  
*************** procedure GNATCmd is
*** 113,118 ****
--- 119,125 ----
  
     My_Exit_Status : Exit_Status := Success;
     --  The exit status of the spawned tool
+    Dummy : Boolean;
  
     type Command_Entry is record
        Cname : String_Access;
*************** begin
*** 348,353 ****
--- 355,383 ----
              Command_Arg := Command_Arg + 1;
  
           elsif Command_Arg <= Argument_Count
+            and then Argument (Command_Arg) = Ada_Diagnostics_Switch
+          then
+             --  Print the diagnostics repository to a file
+ 
+             System.OS_Lib.Delete_File (Diagnostics_File_Name, Dummy);
+             declare
+                Output_FD : constant System.OS_Lib.File_Descriptor :=
+                  System.OS_Lib.Create_New_File
+                    (Diagnostics_File_Name, Fmode => System.OS_Lib.Text);
+ 
+             begin
+                Set_Output (Output_FD);
+                Print_Diagnostic_Repository;
+                Set_Standard_Output;
+                System.OS_Lib.Close (Output_FD);
+             end;
+ 
+             Write_Line
+               ("gnat diagnostic information exported to "
+                & Diagnostics_File_Name);
+             Exit_Program (E_Success);
+ 
+          elsif Command_Arg <= Argument_Count
             and then Argument (Command_Arg) = Ada_Help_Switch
           then
              Set_Standard_Output;
*************** begin
*** 368,374 ****
           --  --help flag.
           Set_Standard_Output;
           Write_Eol;
!          Write_Line ("Report bugs to report@adacore.com");
           return;
        end if;
  
--- 398,404 ----
           --  --help flag.
           Set_Standard_Output;
           Write_Eol;
!          Write_Line ("Report bugs to support@adacore.com");
           return;
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatcmd.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatcmd.ads
*** gcc-15.2.0/gcc/ada/gnatcmd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatcmd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatdll.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatdll.adb
*** gcc-15.2.0/gcc/ada/gnatdll.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatdll.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatkr.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatkr.adb
*** gcc-15.2.0/gcc/ada/gnatkr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatkr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatkr.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatkr.ads
*** gcc-15.2.0/gcc/ada/gnatkr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatkr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatlink.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatlink.adb
*** gcc-15.2.0/gcc/ada/gnatlink.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatlink.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Gnatlink is
*** 266,271 ****
--- 266,274 ----
     function Index (S, Pattern : String) return Natural;
     --  Return the last occurrence of Pattern in S, or 0 if none
  
+    function Is_Prefix (S, Prefix : String) return Boolean;
+    --  Return whether Prefix is a strict prefix of S
+ 
     procedure Search_Library_Path
       (Next_Line   : String;
        Nfirst      : Integer;
*************** procedure Gnatlink is
*** 395,400 ****
--- 398,413 ----
        return 0;
     end Index;
  
+    ---------------
+    -- Is_Prefix --
+    ---------------
+ 
+    function Is_Prefix (S, Prefix : String) return Boolean is
+    begin
+       return Prefix'Length < S'Length
+         and then S (S'First .. S'First + Prefix'Length - 1) = Prefix;
+    end Is_Prefix;
+ 
     ------------------
     -- Process_Args --
     ------------------
*************** procedure Gnatlink is
*** 1292,1304 ****
                       else
                          for J in reverse 1 .. Linker_Options.Last loop
                             if Linker_Options.Table (J) /= null
!                              and then
!                                Linker_Options.Table (J)'Length
!                                          > Run_Path_Opt'Length
!                              and then
!                                Linker_Options.Table (J)
!                                  (1 .. Run_Path_Opt'Length) =
!                                                   Run_Path_Opt
                             then
                                --  We have found an already specified
                                --  run_path_option: we will add to this switch,
--- 1305,1312 ----
                       else
                          for J in reverse 1 .. Linker_Options.Last loop
                             if Linker_Options.Table (J) /= null
!                              and then Is_Prefix
!                                (Linker_Options.Table (J).all, Run_Path_Opt)
                             then
                                --  We have found an already specified
                                --  run_path_option: we will add to this switch,
*************** begin
*** 1887,1917 ****
           Shared_Libgcc_Seen : Boolean := False;
           Static_Libgcc_Seen : Boolean := False;
  
-          function Is_Prefix
-            (Complete_String : String; Prefix : String) return Boolean;
-          --  Returns whether Prefix is a prefix of Complete_String
- 
-          ---------------
-          -- Is_Prefix --
-          ---------------
- 
-          function Is_Prefix
-            (Complete_String : String; Prefix : String) return Boolean
-          is
-             S : String renames Complete_String;
-             P : String renames Prefix;
-          begin
-             return P'Length <= S'Length
-               and then S (S'First .. S'First + P'Length - 1) = P;
-          end Is_Prefix;
- 
        begin
           J := Linker_Options.First;
           while J <= Linker_Options.Last loop
              if Linker_Options.Table (J).all = "-Xlinker"
                and then J < Linker_Options.Last
!               and then Linker_Options.Table (J + 1)'Length > 8
!               and then Linker_Options.Table (J + 1) (1 .. 8) = "--stack="
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 2) :=
--- 1895,1906 ----
           Shared_Libgcc_Seen : Boolean := False;
           Static_Libgcc_Seen : Boolean := False;
  
        begin
           J := Linker_Options.First;
           while J <= Linker_Options.Last loop
              if Linker_Options.Table (J).all = "-Xlinker"
                and then J < Linker_Options.Last
!               and then Is_Prefix (Linker_Options.Table (J + 1).all, "--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 2) :=
*************** begin
*** 1956,1967 ****
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if Is_Prefix
!                  (Complete_String => Linker_Options.Table (J).all,
!                   Prefix => "-Xlinker --stack=")
!               or else Is_Prefix
!                         (Complete_String => Linker_Options.Table (J).all,
!                          Prefix => "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
--- 1945,1952 ----
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
!             if Is_Prefix (Linker_Options.Table (J).all, "-Xlinker --stack=")
!               or else Is_Prefix (Linker_Options.Table (J).all, "-Wl,--stack=")
              then
                 if Stack_Op then
                    Linker_Options.Table (J .. Linker_Options.Last - 1) :=
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatlink.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatlink.ads
*** gcc-15.2.0/gcc/ada/gnatlink.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatlink.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatls.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatls.adb
*** gcc-15.2.0/gcc/ada/gnatls.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatls.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 117,123 ****
  
     Also_Predef       : Boolean := False;  --  -a
     Dependable        : Boolean := False;  --  -d
-    License           : Boolean := False;  --  -l
     Very_Verbose_Mode : Boolean := False;  --  -V
     --  Command line flags
  
--- 117,122 ----
*************** procedure Gnatls is
*** 188,196 ****
     procedure Usage;
     --  Print usage message
  
-    procedure Output_License_Information;
-    --  Output license statement, and if not found, output reference to COPYING
- 
     function Image (Restriction : Restriction_Id) return String;
     --  Returns the capitalized image of Restriction
  
--- 187,192 ----
*************** procedure Gnatls is
*** 881,900 ****
        return Normalize_Pathname (Path);
     end Normalize;
  
-    --------------------------------
-    -- Output_License_Information --
-    --------------------------------
- 
-    procedure Output_License_Information is
-    begin
-       case Build_Type is
-          when others =>
-             Write_Str ("Please refer to file COPYING in your distribution"
-                      & " for license terms.");
-             Write_Eol;
-       end case;
-    end Output_License_Information;
- 
     -------------------
     -- Output_Object --
     -------------------
--- 877,882 ----
*************** procedure Gnatls is
*** 1605,1611 ****
                 Name_Len := 0;
  
                 if not Is_Absolute_Path (Self (First .. Last)) then
!                   Add_Str_To_Name_Buffer (Get_Current_Dir);  -- ??? System call
                    Add_Char_To_Name_Buffer (Directory_Separator);
                 end if;
  
--- 1587,1595 ----
                 Name_Len := 0;
  
                 if not Is_Absolute_Path (Self (First .. Last)) then
!                   Add_Str_To_Name_Buffer
!                     (GNAT.Directory_Operations.Get_Current_Dir);
! 
                    Add_Char_To_Name_Buffer (Directory_Separator);
                 end if;
  
*************** procedure Gnatls is
*** 1792,1798 ****
                 when 'o' => Reset_Print; Print_Object := True;
                 when 'v' => Verbose_Mode              := True;
                 when 'd' => Dependable                := True;
-                when 'l' => License                   := True;
                 when 'V' => Very_Verbose_Mode         := True;
  
                 when others => OK := False;
--- 1776,1781 ----
*************** procedure Gnatls is
*** 1946,1956 ****
                                 "depend");
        Write_Eol;
  
-       --  Line for -l
- 
-       Write_Str ("  -l         output license information");
-       Write_Eol;
- 
        --  Line for -v
  
        Write_Str ("  -v         verbose output, full path and unit " &
--- 1929,1934 ----
*************** begin
*** 2046,2066 ****
        Next_Arg := Next_Arg + 1;
     end loop Scan_Args;
  
-    --  If -l (output license information) is given, it must be the only switch
- 
-    if License then
-       if Arg_Count = 2 then
-          Output_License_Information;
- 
-       else
-          Set_Standard_Error;
-          Write_Str ("Can't use -l with another switch");
-          Write_Eol;
-          Try_Help;
-          Exit_Program (E_Fatal);
-       end if;
-    end if;
- 
     --  Handle --RTS switch
  
     if RTS_Specified /= null then
--- 2024,2029 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatls.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatls.ads
*** gcc-15.2.0/gcc/ada/gnatls.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatls.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatmake.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatmake.adb
*** gcc-15.2.0/gcc/ada/gnatmake.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatmake.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatmake.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatmake.ads
*** gcc-15.2.0/gcc/ada/gnatmake.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatmake.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatname.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatname.adb
*** gcc-15.2.0/gcc/ada/gnatname.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatname.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatname.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatname.ads
*** gcc-15.2.0/gcc/ada/gnatname.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatname.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatprep.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatprep.adb
*** gcc-15.2.0/gcc/ada/gnatprep.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatprep.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatprep.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatprep.ads
*** gcc-15.2.0/gcc/ada/gnatprep.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatprep.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatvsn.adb gcc-16.1.0-RC-20260423/gcc/ada/gnatvsn.adb
*** gcc-15.2.0/gcc/ada/gnatvsn.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatvsn.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gnatvsn.ads gcc-16.1.0-RC-20260423/gcc/ada/gnatvsn.ads
*** gcc-15.2.0/gcc/ada/gnatvsn.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gnatvsn.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,38 ****
     --  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.
     --
--- 32,38 ----
     --  Static string identifying this version, that can be used as an argument
     --  to e.g. pragma Ident.
  
!    Library_Version : constant String := "16";
     --  Library version. It needs to be updated whenever the major version
     --  number is changed.
     --
diff -Nrcpad gcc-15.2.0/gcc/ada/gprep.adb gcc-16.1.0-RC-20260423/gcc/ada/gprep.adb
*** gcc-15.2.0/gcc/ada/gprep.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gprep.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 735,741 ****
  
        loop
           begin
!             Switch := GNAT.Command_Line.Getopt ("D: a b c C r s T u v");
  
              case Switch is
                 when ASCII.NUL =>
--- 735,741 ----
  
        loop
           begin
!             Switch := GNAT.Command_Line.Getopt ("D: a b c C e r s T u v");
  
              case Switch is
                 when ASCII.NUL =>
*************** package body GPrep is
*** 755,760 ****
--- 755,763 ----
                 when 'c' =>
                    Opt.Comment_Deleted_Lines := True;
  
+                when 'e' =>
+                   Opt.Empty_Comment_Deleted_Lines := True;
+ 
                 when 'C' =>
                    Opt.Replace_In_Comments := True;
  
*************** package body GPrep is
*** 831,836 ****
--- 834,840 ----
        Write_Line ("   -c  Keep preprocessor lines as comments");
        Write_Line ("   -C  Do symbol replacements within comments");
        Write_Line ("   -D  Associate symbol with value");
+       Write_Line ("   -e  Replace preprocessor lines by empty comment lines");
        Write_Line ("   -r  Generate Source_Reference pragma");
        Write_Line ("   -s  Print a sorted list of symbol names and values");
        Write_Line ("   -T  Use LF as line terminators");
diff -Nrcpad gcc-15.2.0/gcc/ada/gprep.ads gcc-16.1.0-RC-20260423/gcc/ada/gprep.ads
*** gcc-15.2.0/gcc/ada/gprep.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gprep.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/gsocket.h gcc-16.1.0-RC-20260423/gcc/ada/gsocket.h
*** gcc-15.2.0/gcc/ada/gsocket.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/gsocket.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *         Copyright (C) 2004-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 64,69 ****
--- 64,75 ----
  #include <ioLib.h>
  #include <hostLib.h>
  
+ #if __has_include ("strings.h")
+ /* On VxWorks6, FD_ZERO uses bzero, but since it's not a standard header, don't
+    require it.  */
+ #include "strings.h"
+ #endif
+ 
  #define SHUT_RD		0
  #define SHUT_WR		1
  #define SHUT_RDWR	2
diff -Nrcpad gcc-15.2.0/gcc/ada/hostparm.ads gcc-16.1.0-RC-20260423/gcc/ada/hostparm.ads
*** gcc-15.2.0/gcc/ada/hostparm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/hostparm.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/impunit.adb gcc-16.1.0-RC-20260423/gcc/ada/impunit.adb
*** gcc-15.2.0/gcc/ada/impunit.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/impunit.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2000-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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 Errout;      use Errout;
- with Sinfo;       use Sinfo;
  with Sinfo.Nodes; use Sinfo.Nodes;
  with Fname.UF;    use Fname.UF;
  with Lib;         use Lib;
--- 24,29 ----
*************** package body Impunit is
*** 250,255 ****
--- 249,255 ----
      ("g-busorg", F),  -- GNAT.Bubble_Sort_G
      ("g-byorma", F),  -- GNAT.Byte_Order_Mark
      ("g-bytswa", F),  -- GNAT.Byte_Swapping
+     ("g-c_time", F),  -- GNAT.C_Time
      ("g-calend", F),  -- GNAT.Calendar
      ("g-catiio", F),  -- GNAT.Calendar.Time_IO
      ("g-casuti", F),  -- GNAT.Case_Util
*************** package body Impunit is
*** 584,589 ****
--- 584,590 ----
      ("a-cborma", T),  -- Ada.Containers.Bounded_Ordered_Maps
      ("a-cbhase", T),  -- Ada.Containers.Bounded_Hashed_Sets
      ("a-cbhama", T),  -- Ada.Containers.Bounded_Hashed_Maps
+     ("a-cbinho", T),  -- Ada.Containers.Bounded_Indefinite_Holders
      ("a-coinho", T),  -- Ada.Containers.Indefinite_Holders
      ("a-comutr", T),  -- Ada.Containers.Multiway_Trees
      ("a-cimutr", T),  -- Ada.Containers.Indefinite_Multiway_Trees
diff -Nrcpad gcc-15.2.0/gcc/ada/impunit.ads gcc-16.1.0-RC-20260423/gcc/ada/impunit.ads
*** gcc-15.2.0/gcc/ada/impunit.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/impunit.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/indepsw-aix.adb gcc-16.1.0-RC-20260423/gcc/ada/indepsw-aix.adb
*** gcc-15.2.0/gcc/ada/indepsw-aix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/indepsw-aix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (AIX version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/indepsw-darwin.adb gcc-16.1.0-RC-20260423/gcc/ada/indepsw-darwin.adb
*** gcc-15.2.0/gcc/ada/indepsw-darwin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/indepsw-darwin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Darwin version)                              --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/indepsw-gnu.adb gcc-16.1.0-RC-20260423/gcc/ada/indepsw-gnu.adb
*** gcc-15.2.0/gcc/ada/indepsw-gnu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/indepsw-gnu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                              (GNU version)                               --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/indepsw.adb gcc-16.1.0-RC-20260423/gcc/ada/indepsw.adb
*** gcc-15.2.0/gcc/ada/indepsw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/indepsw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/indepsw.ads gcc-16.1.0-RC-20260423/gcc/ada/indepsw.ads
*** gcc-15.2.0/gcc/ada/indepsw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/indepsw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/init.c gcc-16.1.0-RC-20260423/gcc/ada/init.c
*** gcc-15.2.0/gcc/ada/init.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/init.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 47,52 ****
--- 47,53 ----
  #ifdef __vxworks
  #include "vxWorks.h"
  #include "version.h" /* for _WRS_VXWORKS_MAJOR */
+ #include <string.h> /* for strncmp */
  #endif
  
  #ifdef __ANDROID__
*************** __gnat_adjust_context_for_raise (int sig
*** 506,522 ****
  
  #if defined (__i386__)
    unsigned long *pc = (unsigned long *)mcontext->gregs[REG_EIP];
!   /* The pattern is "orl $0x0,(%esp)" for a probe in 32-bit mode.  */
!   if (signo == SIGSEGV && pc && *pc == 0x00240c83)
      mcontext->gregs[REG_ESP] += 4096 + 4 * sizeof (unsigned long);
  #elif defined (__x86_64__)
    unsigned long long *pc = (unsigned long long *)mcontext->gregs[REG_RIP];
    if (signo == SIGSEGV && pc
        /* The pattern is "orq $0x0,(%rsp)" for a probe in 64-bit mode.  */
        && ((*pc & 0xffffffffffLL) == 0x00240c8348LL
! 	  /* The pattern may also be "orl $0x0,(%esp)" for a probe in
! 	     x32 mode.  */
! 	  || (*pc & 0xffffffffLL) == 0x00240c83LL))
      mcontext->gregs[REG_RSP] += 4096 + 4 * sizeof (unsigned long);
  #elif defined (__ia64__)
    /* ??? The IA-64 unwinder doesn't compensate for signals.  */
--- 507,524 ----
  
  #if defined (__i386__)
    unsigned long *pc = (unsigned long *)mcontext->gregs[REG_EIP];
!   /* The pattern is "or{l,b} $0x0,(%esp)" for a probe in 32-bit mode.  */
!   if (signo == SIGSEGV && pc && (*pc == 0x00240c83 || *pc == 0x00240c80))
      mcontext->gregs[REG_ESP] += 4096 + 4 * sizeof (unsigned long);
  #elif defined (__x86_64__)
    unsigned long long *pc = (unsigned long long *)mcontext->gregs[REG_RIP];
    if (signo == SIGSEGV && pc
        /* The pattern is "orq $0x0,(%rsp)" for a probe in 64-bit mode.  */
        && ((*pc & 0xffffffffffLL) == 0x00240c8348LL
! 	  /* The pattern is "orl $0x0,(%rsp)" for a probe in x32 mode.  */
! 	  || (*pc & 0xffffffffLL) == 0x00240c83LL
! 	  /* The pattern may also be "orb $0x0,(%rsp)" in both modes.  */
! 	  || (*pc & 0xffffffffLL) == 0x00240c80LL))
      mcontext->gregs[REG_RSP] += 4096 + 4 * sizeof (unsigned long);
  #elif defined (__ia64__)
    /* ??? The IA-64 unwinder doesn't compensate for signals.  */
diff -Nrcpad gcc-15.2.0/gcc/ada/initialize.c gcc-16.1.0-RC-20260423/gcc/ada/initialize.c
*** gcc-15.2.0/gcc/ada/initialize.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/initialize.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/inline.adb gcc-16.1.0-RC-20260423/gcc/ada/inline.adb
*** gcc-15.2.0/gcc/ada/inline.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/inline.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Alloc;
*** 27,42 ****
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Exp_Ch6;        use Exp_Ch6;
  with Exp_Ch7;        use Exp_Ch7;
- with Exp_Tss;        use Exp_Tss;
  with Exp_Util;       use Exp_Util;
- with Fname;          use Fname;
  with Fname.UF;       use Fname.UF;
  with Lib;            use Lib;
  with Namet;          use Namet;
--- 27,39 ----
*************** with Sem_Ch12;       use Sem_Ch12;
*** 50,56 ****
  with Sem_Prag;       use Sem_Prag;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 47,52 ----
*************** package body Inline is
*** 151,157 ****
     function Node_Hash (Id : Node_Id) return Node_Header_Num;
     --  Simple hash function for Node_Ids
  
!    package To_Pending_Instantiations is new GNAT.Htable.Simple_HTable
       (Header_Num => Node_Header_Num,
        Element    => Int,
        No_Element => -1,
--- 147,153 ----
     function Node_Hash (Id : Node_Id) return Node_Header_Num;
     --  Simple hash function for Node_Ids
  
!    package To_Pending_Instantiations is new GNAT.HTable.Simple_HTable
       (Header_Num => Node_Header_Num,
        Element    => Int,
        No_Element => -1,
*************** package body Inline is
*** 287,296 ****
     --  Return the entity node for the unit containing E. Always return the spec
     --  for a package.
  
-    function Has_Initialized_Type (E : Entity_Id) return Boolean;
-    --  If a candidate for inlining contains type declarations for types with
-    --  nontrivial initialization procedures, they are not worth inlining.
- 
     function Has_Single_Return (N : Node_Id) return Boolean;
     --  In general we cannot inline functions that return unconstrained type.
     --  However, we can handle such functions if all return statements return
--- 283,288 ----
*************** package body Inline is
*** 320,325 ****
--- 312,318 ----
     --    Exit_Cases
     --    Postcondition
     --    Precondition
+    --    Program_Exit
     --    Refined_Global
     --    Refined_Depends
     --    Refined_Post
*************** package body Inline is
*** 757,770 ****
        --  an instance whose body will be analyzed anyway or the subprogram was
        --  generated as a body by the compiler (for example an initialization
        --  procedure) or its declaration was provided along with the body (for
!       --  example an expression function) and it does not declare types with
!       --  nontrivial initialization procedures.
  
        if (Is_Inlined (Pack)
             or else Is_Generic_Instance (Pack)
             or else Nkind (Decl) = N_Subprogram_Body
             or else Present (Corresponding_Body (Decl)))
!         and then not Has_Initialized_Type (E)
        then
           Register_Backend_Inlined_Subprogram (E);
  
--- 750,764 ----
        --  an instance whose body will be analyzed anyway or the subprogram was
        --  generated as a body by the compiler (for example an initialization
        --  procedure) or its declaration was provided along with the body (for
!       --  example an expression function). Note that we need to test again the
!       --  Is_Inlined flag because Analyze_Subprogram_Body_Helper may have reset
!       --  it if the body contains excluded declarations or statements.
  
        if (Is_Inlined (Pack)
             or else Is_Generic_Instance (Pack)
             or else Nkind (Decl) = N_Subprogram_Body
             or else Present (Corresponding_Body (Decl)))
!         and then Is_Inlined (E)
        then
           Register_Backend_Inlined_Subprogram (E);
  
*************** package body Inline is
*** 1005,1013 ****
           end loop;
  
           --  The list of inlined subprograms is an overestimate, because it
!          --  includes inlined functions called from functions that are compiled
!          --  as part of an inlined package, but are not themselves called. An
!          --  accurate computation of just those subprograms that are needed
           --  requires that we perform a transitive closure over the call graph,
           --  starting from calls in the main compilation unit.
  
--- 999,1007 ----
           end loop;
  
           --  The list of inlined subprograms is an overestimate, because it
!          --  includes inlined subprograms called from subprograms that are
!          --  declared in an inlined package, but are not themselves called.
!          --  An accurate computation of just those subprograms that are needed
           --  requires that we perform a transitive closure over the call graph,
           --  starting from calls in the main compilation unit.
  
*************** package body Inline is
*** 1060,1066 ****
                 E : constant Subprogram_Kind_Id := Inlined.Table (Index).Name;
  
              begin
!                if Is_Called (E) and then not Is_Ignored_Ghost_Entity (E) then
                    Add_Inlined_Subprogram (E);
                 end if;
              end;
--- 1054,1062 ----
                 E : constant Subprogram_Kind_Id := Inlined.Table (Index).Name;
  
              begin
!                if Is_Called (E)
!                  and then not Is_Ignored_Ghost_Entity_In_Codegen (E)
!                then
                    Add_Inlined_Subprogram (E);
                 end if;
              end;
*************** package body Inline is
*** 1225,1230 ****
--- 1221,1237 ----
           return;
        end if;
  
+       --  Do not inline ghost functions, because inlined functions are
+       --  difficult to detect and we must do it to reject exceptions propagated
+       --  from ghost calls to ordinary code.
+ 
+       if Ekind (Spec_Id) = E_Function
+         and then Is_Ghost_Entity (Spec_Id)
+       then
+          Cannot_Inline ("cannot inline & (ghost function)?", N, Spec_Id);
+          return;
+       end if;
+ 
        if Present (Handled_Statement_Sequence (N)) then
           if Present (Exception_Handlers (Handled_Statement_Sequence (N))) then
              Cannot_Inline
*************** package body Inline is
*** 3377,3391 ****
        --  be performed in a separate pass, using an instantiation of the
        --  previous subprogram over aspect specifications reachable from N.
  
-       function Process_Sloc (Nod : Node_Id) return Traverse_Result;
-       --  If the call being expanded is that of an internal subprogram, set the
-       --  sloc of the generated block to that of the call itself, so that the
-       --  expansion is skipped by the "next" command in gdb. Same processing
-       --  for a subprogram in a predefined file, e.g. Ada.Tags. If
-       --  Debug_Generated_Code is true, suppress this change to simplify our
-       --  own development. Same in GNATprove mode, to ensure that warnings and
-       --  diagnostics point to the proper location.
- 
        procedure Reset_Dispatching_Calls (N : Node_Id);
        --  In subtree N search for occurrences of dispatching calls that use the
        --  Ada 2005 Object.Operation notation and the object is a formal of the
--- 3384,3389 ----
*************** package body Inline is
*** 3396,3405 ****
        --  If the function body is a single expression, replace call with
        --  expression, else insert block appropriately.
  
-       procedure Rewrite_Procedure_Call (N : Node_Id; Blk : Node_Id);
-       --  If procedure body has no local variables, inline body without
-       --  creating block, otherwise rewrite call with block.
- 
        ---------------------
        -- Make_Exit_Label --
        ---------------------
--- 3394,3399 ----
*************** package body Inline is
*** 3648,3669 ****
        procedure Replace_Formals_In_Aspects is
          new Traverse_Proc (Process_Formals_In_Aspects);
  
-       ------------------
-       -- Process_Sloc --
-       ------------------
- 
-       function Process_Sloc (Nod : Node_Id) return Traverse_Result is
-       begin
-          if not Debug_Generated_Code then
-             Set_Sloc (Nod, Sloc (N));
-             Set_Comes_From_Source (Nod, False);
-          end if;
- 
-          return OK;
-       end Process_Sloc;
- 
-       procedure Reset_Slocs is new Traverse_Proc (Process_Sloc);
- 
        ------------------------------
        --  Reset_Dispatching_Calls --
        ------------------------------
--- 3642,3647 ----
*************** package body Inline is
*** 3784,3818 ****
           end if;
        end Rewrite_Function_Call;
  
-       ----------------------------
-       -- Rewrite_Procedure_Call --
-       ----------------------------
- 
-       procedure Rewrite_Procedure_Call (N : Node_Id; Blk : Node_Id) is
-          HSS : constant Node_Id := Handled_Statement_Sequence (Blk);
- 
-       begin
-          --  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
-          --  declarations created for the formals.
- 
-          --  If N needs no transient scope, and if there are no declarations in
-          --  the inlined body, we can do a little optimization and insert the
-          --  statements for the body directly after N, and rewrite N to a
-          --  null statement, instead of rewriting N into a full-blown block
-          --  statement.
- 
-          if not Scope_Is_Transient
-            and then Is_Empty_List (Declarations (Blk))
-          then
-             Insert_List_After (N, Statements (HSS));
-             Rewrite (N, Make_Null_Statement (Loc));
-          else
-             Rewrite (N, Blk);
-          end if;
-       end Rewrite_Procedure_Call;
- 
     --  Start of processing for Expand_Inlined_Call
  
     begin
--- 3762,3767 ----
*************** package body Inline is
*** 3829,3834 ****
--- 3778,3794 ----
                            and then Is_Unc;
        end if;
  
+       --  Inlining function calls returning an object of unconstrained type as
+       --  function actuals or in a return statement is not supported: a
+       --  temporary variable will be declared of unconstrained type without
+       --  initializing expression.
+ 
+       pragma Assert
+         (not Uses_Back_End
+            or else Nkind (Parent (N)) not in
+              N_Function_Call | N_Simple_Return_Statement
+            or else not Is_Unc);
+ 
        --  Check for an illegal attempt to inline a recursive procedure. If the
        --  subprogram has parameters this is detected when trying to supply a
        --  binding for parameters that already have one. For parameterless
*************** package body Inline is
*** 4077,4082 ****
--- 4037,4043 ----
              --  Replace call with temporary and create its declaration
  
              Temp := Make_Temporary (Loc, 'C');
+             Mutate_Ekind (Temp, E_Constant);
              Set_Is_Internal (Temp);
  
              --  For the unconstrained case, the generated temporary has the
*************** package body Inline is
*** 4194,4206 ****
        Replace_Formals_In_Aspects (Blk);
        Set_Parent (Blk, N);
  
-       if GNATprove_Mode then
-          null;
- 
-       elsif not Comes_From_Source (Subp) or else Is_Predef then
-          Reset_Slocs (Blk);
-       end if;
- 
        if Is_Unc_Decl then
  
           --  No action needed since return statement has been already removed
--- 4155,4160 ----
*************** package body Inline is
*** 4271,4277 ****
        end;
  
        if Ekind (Subp) = E_Procedure then
!          Rewrite_Procedure_Call (N, Blk);
  
        else
           Rewrite_Function_Call (N, Blk);
--- 4225,4231 ----
        end;
  
        if Ekind (Subp) = E_Procedure then
!          Rewrite (N, Blk);
  
        else
           Rewrite_Function_Call (N, Blk);
*************** package body Inline is
*** 4578,4612 ****
        return False;
     end Has_Excluded_Statement;
  
-    --------------------------
-    -- Has_Initialized_Type --
-    --------------------------
- 
-    function Has_Initialized_Type (E : Entity_Id) return Boolean is
-       E_Body : constant Node_Id := Subprogram_Body (E);
-       Decl   : Node_Id;
- 
-    begin
-       if No (E_Body) then -- imported subprogram
-          return False;
- 
-       else
-          Decl := First (Declarations (E_Body));
-          while Present (Decl) loop
-             if Nkind (Decl) = N_Full_Type_Declaration
-               and then Comes_From_Source (Decl)
-               and then Present (Init_Proc (Defining_Identifier (Decl)))
-             then
-                return True;
-             end if;
- 
-             Next (Decl);
-          end loop;
-       end if;
- 
-       return False;
-    end Has_Initialized_Type;
- 
     -----------------------
     -- Has_Single_Return --
     -----------------------
--- 4532,4537 ----
*************** package body Inline is
*** 4922,4932 ****
                and then Ekind (Info.Fin_Scop) = E_Package_Body
              then
                 Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), True);
              end if;
  
!             Instantiate_Package_Body (Info);
  
!             if Present (Info.Fin_Scop) then
                 Scop := Info.Fin_Scop;
  
                 --  If the enclosing finalization scope is dynamic, the instance
--- 4847,4863 ----
                and then Ekind (Info.Fin_Scop) = E_Package_Body
              then
                 Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), True);
+                Instantiate_Package_Body (Info);
+                Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), False);
+             else
+                Instantiate_Package_Body (Info);
              end if;
  
!             --  No need to generate cleanups if the main unit is generic
  
!             if Present (Info.Fin_Scop)
!                and then not Is_Generic_Unit (Main_Unit_Entity)
!             then
                 Scop := Info.Fin_Scop;
  
                 --  If the enclosing finalization scope is dynamic, the instance
*************** package body Inline is
*** 4939,4950 ****
                 end if;
  
                 Add_Scope_To_Clean (Scop);
- 
-                --  Reset the In_Package_Body flag if it was set above
- 
-                if Ekind (Info.Fin_Scop) = E_Package_Body then
-                   Set_In_Package_Body (Spec_Entity (Info.Fin_Scop), False);
-                end if;
              end if;
  
           --  For subprogram instances, always instantiate the body
--- 4870,4875 ----
*************** package body Inline is
*** 4965,4974 ****
           Push_Scope (Standard_Standard);
           To_Clean := New_Elmt_List;
  
-          if Is_Generic_Unit (Cunit_Entity (Main_Unit)) then
-             Start_Generic;
-          end if;
- 
           --  A body instantiation may generate additional instantiations, so
           --  the following loop must scan to the end of a possibly expanding
           --  set (that's why we cannot simply use a FOR loop here). We must
--- 4890,4895 ----
*************** package body Inline is
*** 5007,5022 ****
              Pending_Instantiations.Init;
           end if;
  
!          --  We can now complete the cleanup actions of scopes that contain
!          --  pending instantiations (skipped for generic units, since we
!          --  never need any cleanups in generic units).
  
!          if Expander_Active
!            and then not Is_Generic_Unit (Main_Unit_Entity)
!          then
              Cleanup_Scopes;
-          elsif Is_Generic_Unit (Cunit_Entity (Main_Unit)) then
-             End_Generic;
           end if;
  
           Pop_Scope;
--- 4928,4937 ----
              Pending_Instantiations.Init;
           end if;
  
!          --  Expand the cleanup actions of scopes that contain instantiations
  
!          if Expander_Active then
              Cleanup_Scopes;
           end if;
  
           Pop_Scope;
*************** package body Inline is
*** 5271,5276 ****
--- 5186,5192 ----
                                          | Name_Exit_Cases
                                          | Name_Postcondition
                                          | Name_Precondition
+                                         | Name_Program_Exit
                                          | Name_Refined_Global
                                          | Name_Refined_Depends
                                          | Name_Refined_Post
diff -Nrcpad gcc-15.2.0/gcc/ada/inline.ads gcc-16.1.0-RC-20260423/gcc/ada/inline.ads
*** gcc-15.2.0/gcc/ada/inline.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/inline.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/itypes.adb gcc-16.1.0-RC-20260423/gcc/ada/itypes.adb
*** gcc-15.2.0/gcc/ada/itypes.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/itypes.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Einfo.Utils;    use Einfo.Utils;
  with Sem;            use Sem;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Stand;          use Stand;
  with Targparm;       use Targparm;
--- 25,30 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/itypes.ads gcc-16.1.0-RC-20260423/gcc/ada/itypes.ads
*** gcc-15.2.0/gcc/ada/itypes.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/itypes.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 contains declarations for handling of implicit types
  
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Sem_Util;       use Sem_Util;
  with Types;          use Types;
--- 25,30 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/json_utils.adb gcc-16.1.0-RC-20260423/gcc/ada/json_utils.adb
*** gcc-15.2.0/gcc/ada/json_utils.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/json_utils.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,254 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                           J S O N _ U T I L S                            --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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;
+ with Osint;
+ with Output; use Output;
+ with System.OS_Lib;
+ 
+ package body 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;
+ 
+    -----------------
+    -- To_File_Uri --
+    -----------------
+ 
+    function To_File_Uri (Path : String) return String is
+ 
+       function Normalize_Uri (Path : String) return String;
+       --  Construct a normalized URI from the path name by replacing reserved
+       --  URI characters that can appear in paths with their escape character
+       --  combinations.
+       --
+       --  According to the URI standard reserved charcthers within the paths
+       --  should be percent encoded:
+       --
+       --  https://www.rfc-editor.org/info/rfc3986
+       --
+       --  Reserved charcters are defined as:
+       --
+       --  reserved = gen-delims / sub-delims
+       --  gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
+       --  sub-delims = "!" / "$" / "&" / "’" / "(" / ")"
+       --  / "*" / "+" / "," / ";" / "="
+ 
+       -------------------
+       -- Normalize_Uri --
+       -------------------
+ 
+       function Normalize_Uri (Path : String) return String is
+          Buf : Bounded_String;
+       begin
+          for C of Path loop
+             case C is
+                when '\' =>
+ 
+                   --  Use forward slashes instead of backward slashes as
+                   --  separators on Windows and on Linux simply encode the
+                   --  symbol if part of a directory name.
+ 
+                   if Osint.On_Windows then
+                      Append (Buf, '/');
+                   else
+                      Append (Buf, "%5C");
+                   end if;
+ 
+                when ' ' =>
+                   Append (Buf, "%20");
+ 
+                when '!' =>
+                   Append (Buf, "%21");
+ 
+                when '#' =>
+                   Append (Buf, "%23");
+ 
+                when '$' =>
+                   Append (Buf, "%24");
+ 
+                when '&' =>
+                   Append (Buf, "%26");
+ 
+                when ''' =>
+                   Append (Buf, "%27");
+ 
+                when '(' =>
+                   Append (Buf, "%28");
+ 
+                when ')' =>
+                   Append (Buf, "%29");
+ 
+                when '*' =>
+                   Append (Buf, "%2A");
+ 
+                when '+' =>
+                   Append (Buf, "%2A");
+ 
+                when ',' =>
+                   Append (Buf, "%2A");
+ 
+                when '/' =>
+                   --  Forward slash is a valid file separator on both Unix and
+                   --  Windows based machines and should be treated as such
+                   --  within a path.
+                   Append (Buf, '/');
+ 
+                when ':' =>
+                   Append (Buf, "%3A");
+ 
+                when ';' =>
+                   Append (Buf, "%3B");
+ 
+                when '=' =>
+                   Append (Buf, "%3D");
+ 
+                when '?' =>
+                   Append (Buf, "%3F");
+ 
+                when '@' =>
+                   Append (Buf, "%40");
+ 
+                when '[' =>
+                   Append (Buf, "%5B");
+ 
+                when ']' =>
+                   Append (Buf, "%5D");
+ 
+                when others =>
+                   Append (Buf, C);
+             end case;
+          end loop;
+ 
+          return To_String (Buf);
+       end Normalize_Uri;
+ 
+       Norm_Uri : constant String := Normalize_Uri (Path);
+ 
+    --  Start of processing for To_File_Uri
+ 
+    begin
+       if System.OS_Lib.Is_Absolute_Path (Path) then
+          --  URI-s using the file scheme should start with the following
+          --  prefix:
+          --
+          --  "file:///"
+ 
+          if Osint.On_Windows then
+             return "file:///" & Norm_Uri;
+          else
+             --  Full paths on linux based systems already start with '/'
+ 
+             return "file://" & Norm_Uri;
+          end if;
+       else
+          return Norm_Uri;
+       end if;
+    end To_File_Uri;
+ 
+    -----------------------------
+    -- 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 JSON_Utils;
diff -Nrcpad gcc-15.2.0/gcc/ada/json_utils.ads gcc-16.1.0-RC-20260423/gcc/ada/json_utils.ads
*** gcc-15.2.0/gcc/ada/json_utils.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/json_utils.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,82 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT COMPILER COMPONENTS                         --
+ --                                                                          --
+ --                           J S O N _ U T I L S                            --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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;
+ 
+ package 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
+ 
+    function To_File_Uri (Path : String) return String;
+    --  Converts an absolute Path into a file URI string by adding the file
+    --  schema prefix "file:///" and replacing all of the URI reserved
+    --  characters in the absolute path.
+ 
+    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 JSON_Utils;
diff -Nrcpad gcc-15.2.0/gcc/ada/krunch.adb gcc-16.1.0-RC-20260423/gcc/ada/krunch.adb
*** gcc-15.2.0/gcc/ada/krunch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/krunch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 271,276 ****
           Buffer (Len) := Buffer (J);
        end if;
     end loop;
- 
-    return;
  end Krunch;
--- 271,274 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/krunch.ads gcc-16.1.0-RC-20260423/gcc/ada/krunch.ads
*** gcc-15.2.0/gcc/ada/krunch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/krunch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/layout.adb gcc-16.1.0-RC-20260423/gcc/ada/layout.adb
*** gcc-15.2.0/gcc/ada/layout.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/layout.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 25,30 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 34,40 ****
  with Sem_Ch13;       use Sem_Ch13;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 33,38 ----
*************** package body Layout is
*** 227,235 ****
     procedure Layout_Object (E : Entity_Id) is
        pragma Unreferenced (E);
     begin
!       --  Nothing to do for now, assume backend does the layout
! 
!       return;
     end Layout_Object;
  
     -----------------
--- 225,231 ----
     procedure Layout_Object (E : Entity_Id) is
        pragma Unreferenced (E);
     begin
!       null; -- Nothing to do for now, assume backend does the layout
     end Layout_Object;
  
     -----------------
*************** package body Layout is
*** 250,262 ****
        end if;
  
        --  For access types, set size/alignment. This is system address size,
!       --  except for fat pointers (unconstrained array access types), where the
!       --  size is two times the address size, to accommodate the two pointers
!       --  that are required for a fat pointer (data and template). Note that
!       --  E_Access_Protected_Subprogram_Type is not an access type for this
!       --  purpose since it is not a pointer but is equivalent to a record. For
!       --  access subtypes, copy the size from the base type since Gigi
!       --  represents them the same way.
  
        if Is_Access_Type (E) then
           Desig_Type := Underlying_Type (Designated_Type (E));
--- 246,266 ----
        end if;
  
        --  For access types, set size/alignment. This is system address size,
!       --  except for unconstrained array access types:
!       --
!       --   - fat pointers where the size is two times the address size, to
!       --     accommodate the two pointers that are required for a fat pointer
!       --     (data and template).
!       --
!       --   - extended access where the size is the size of an address (data
!       --     pointer) plus the size of the template. The template size can't be
!       --     computed yet (will be done in the code generator), leave it empty
!       --     for now.
!       --
!       --  Note that E_Access_Protected_Subprogram_Type is not an access type
!       --  for this purpose since it is not a pointer but is equivalent to a
!       --  record. For access subtypes, copy the size from the base type since
!       --  the code generator represents them the same way.
  
        if Is_Access_Type (E) then
           Desig_Type := Underlying_Type (Designated_Type (E));
*************** package body Layout is
*** 303,309 ****
  
             and then not Debug_Flag_6
           then
!             Init_Size (E, 2 * System_Address_Size);
  
              --  Check for bad convention set
  
--- 307,315 ----
  
             and then not Debug_Flag_6
           then
!             if not Is_Extended_Access_Type (E) then
!                Init_Size (E, 2 * System_Address_Size);
!             end if;
  
              --  Check for bad convention set
  
*************** package body Layout is
*** 328,334 ****
                                               N_Unconstrained_Array_Definition
             and then not Debug_Flag_6
           then
!             Init_Size (E, 2 * System_Address_Size);
  
           --  If unnesting subprograms, subprogram access types contain the
           --  address of both the subprogram and an activation record. But if we
--- 334,342 ----
                                               N_Unconstrained_Array_Definition
             and then not Debug_Flag_6
           then
!             if not Is_Extended_Access_Type (E) then
!                Init_Size (E, 2 * System_Address_Size);
!             end if;
  
           --  If unnesting subprograms, subprogram access types contain the
           --  address of both the subprogram and an activation record. But if we
*************** package body Layout is
*** 658,665 ****
     -----------------------------
  
     procedure Set_Composite_Alignment (E : Entity_Id) is
-       Siz   : Uint;
        Align : Nat;
  
     begin
        --  If alignment is already set, then nothing to do
--- 666,673 ----
     -----------------------------
  
     procedure Set_Composite_Alignment (E : Entity_Id) is
        Align : Nat;
+       Siz   : Uint;
  
     begin
        --  If alignment is already set, then nothing to do
*************** package body Layout is
*** 672,678 ****
        --  the setting of the Optimize_Alignment mode.
  
        --  If Optimize_Alignment is set to Space, then we try to give packed
!       --  records an aligmment of 1, unless there is some reason we can't.
  
        if Optimize_Alignment_Space (E)
          and then Is_Record_Type (E)
--- 680,686 ----
        --  the setting of the Optimize_Alignment mode.
  
        --  If Optimize_Alignment is set to Space, then we try to give packed
!       --  records an alignment of 1, unless there is some reason we can't.
  
        if Optimize_Alignment_Space (E)
          and then Is_Record_Type (E)
*************** package body Layout is
*** 688,700 ****
                   ("\pragma ignored for atomic record??", E);
              else
                 Error_Msg_N
!                  ("\pragma ignored for bolatile full access record??", E);
              end if;
  
              return;
           end if;
  
!          --  No effect if independent components
  
           if Has_Independent_Components (E) then
              Error_Msg_N ("Optimize_Alignment has no effect for &??", E);
--- 696,708 ----
                   ("\pragma ignored for atomic record??", E);
              else
                 Error_Msg_N
!                  ("\pragma ignored for volatile full access record??", E);
              end if;
  
              return;
           end if;
  
!          --  No effect for record with independent components
  
           if Has_Independent_Components (E) then
              Error_Msg_N ("Optimize_Alignment has no effect for &??", E);
*************** package body Layout is
*** 734,740 ****
              end loop;
           end;
  
!          --  Optimize_Alignment has no effect on variable length record
  
           if not Size_Known_At_Compile_Time (E) then
              Error_Msg_N ("Optimize_Alignment has no effect for &??", E);
--- 742,748 ----
              end loop;
           end;
  
!          --  No effect on variable length record
  
           if not Size_Known_At_Compile_Time (E) then
              Error_Msg_N ("Optimize_Alignment has no effect for &??", E);
*************** package body Layout is
*** 746,753 ****
  
           Align := 1;
  
-       --  Not a record, or not packed
- 
        else
           --  The only other cases we worry about here are where the size is
           --  statically known at compile time.
--- 754,759 ----
*************** package body Layout is
*** 772,780 ****
           elsif Siz = 8 * SSU then
              Align := 8;
  
!             --  If Optimize_Alignment is set to Space, then make sure the
!             --  alignment matches the size, for example, if the size is 17
!             --  bytes then we want an alignment of 1 for the type.
  
           elsif Optimize_Alignment_Space (E) then
              if Siz mod (8 * SSU) = 0 then
--- 778,786 ----
           elsif Siz = 8 * SSU then
              Align := 8;
  
!          --  If Optimize_Alignment is set to Space, then make sure the
!          --  alignment matches the size, for example, if the size is 17
!          --  bytes then we want an alignment of 1 for the type.
  
           elsif Optimize_Alignment_Space (E) then
              if Siz mod (8 * SSU) = 0 then
*************** package body Layout is
*** 787,795 ****
                 Align := 1;
              end if;
  
!             --  If Optimize_Alignment is set to Time, then we reset for odd
!             --  "in between sizes", for example a 17 bit record is given an
!             --  alignment of 4.
  
           elsif Optimize_Alignment_Time (E)
             and then Siz > SSU
--- 793,801 ----
                 Align := 1;
              end if;
  
!          --  If Optimize_Alignment is set to Time, then we reset for odd
!          --  "in between sizes", for example a 17 bit record is given an
!          --  alignment of 4.
  
           elsif Optimize_Alignment_Time (E)
             and then Siz > SSU
*************** package body Layout is
*** 803,816 ****
                 Align := 8;
              end if;
  
!             --  No special alignment fiddling needed
  
           else
              return;
           end if;
        end if;
  
!       --  Here we have Set Align to the proposed improved value. Make sure the
        --  value set does not exceed Maximum_Alignment for the target.
  
        if Align > Maximum_Alignment then
--- 809,822 ----
                 Align := 8;
              end if;
  
!          --  No special alignment fiddling needed
  
           else
              return;
           end if;
        end if;
  
!       --  Here we have set Align to the proposed improved value. Make sure the
        --  value set does not exceed Maximum_Alignment for the target.
  
        if Align > Maximum_Alignment then
*************** package body Layout is
*** 818,825 ****
        end if;
  
        --  Further processing for record types only to reduce the alignment
!       --  set by the above processing in some specific cases. We do not
!       --  do this for full access records, since we need max alignment there,
  
        if Is_Record_Type (E) and then not Is_Full_Access (E) then
  
--- 824,831 ----
        end if;
  
        --  Further processing for record types only to reduce the alignment
!       --  set by the above processing in some specific cases. We do not do
!       --  this for full access records, since we need max alignment there.
  
        if Is_Record_Type (E) and then not Is_Full_Access (E) then
  
diff -Nrcpad gcc-15.2.0/gcc/ada/layout.ads gcc-16.1.0-RC-20260423/gcc/ada/layout.ads
*** gcc-15.2.0/gcc/ada/layout.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/layout.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-list.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-list.adb
*** gcc-15.2.0/gcc/ada/lib-list.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-list.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-load.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-load.adb
*** gcc-15.2.0/gcc/ada/lib-load.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-load.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 226,238 ****
           Fatal_Error            => Error_Detected,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
  
           Is_Predefined_Renaming => Ren_Name,
           Is_Predefined_Unit     => Pre_Name or Ren_Name,
           Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-          Filler2                => False,
  
           Loading                => False,
           Main_Priority          => Default_Main_Priority,
--- 226,236 ----
*************** package body Lib.Load is
*** 374,386 ****
              Fatal_Error            => None,
              Generate_Code          => True,
              Has_RACW               => False,
-             Filler                 => False,
              Ident_String           => Empty,
  
              Is_Predefined_Renaming => Ren_Name,
              Is_Predefined_Unit     => Pre_Name or Ren_Name,
              Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-             Filler2                => False,
  
              Loading                => True,
              Main_Priority          => Default_Main_Priority,
--- 372,382 ----
*************** package body Lib.Load is
*** 760,772 ****
                 Fatal_Error            => None,
                 Generate_Code          => False,
                 Has_RACW               => False,
-                Filler                 => False,
                 Ident_String           => Empty,
  
                 Is_Predefined_Renaming => Ren_Name,
                 Is_Predefined_Unit     => Pre_Name or Ren_Name,
                 Is_Internal_Unit       => Pre_Name or Ren_Name or GNAT_Name,
-                Filler2                => False,
  
                 Loading                => True,
                 Main_Priority          => Default_Main_Priority,
--- 756,766 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-load.ads gcc-16.1.0-RC-20260423/gcc/ada/lib-load.ads
*** gcc-15.2.0/gcc/ada/lib-load.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-load.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-sort.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-sort.adb
*** gcc-15.2.0/gcc/ada/lib-sort.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-sort.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-util.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-util.adb
*** gcc-15.2.0/gcc/ada/lib-util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-util.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-util.ads gcc-16.1.0-RC-20260423/gcc/ada/lib-util.ads
*** gcc-15.2.0/gcc/ada/lib-util.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-util.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-writ.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-writ.adb
*** gcc-15.2.0/gcc/ada/lib-writ.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-writ.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 116,127 ****
           Fatal_Error            => None,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
           Is_Predefined_Renaming => False,
           Is_Internal_Unit       => False,
           Is_Predefined_Unit     => False,
-          Filler2                => False,
           Loading                => False,
           Main_Priority          => -1,
           Main_CPU               => -1,
--- 116,125 ----
*************** package body Lib.Writ is
*** 175,186 ****
           Fatal_Error            => None,
           Generate_Code          => False,
           Has_RACW               => False,
-          Filler                 => False,
           Ident_String           => Empty,
           Is_Predefined_Renaming => False,
           Is_Internal_Unit       => True,
           Is_Predefined_Unit     => True,
-          Filler2                => False,
           Loading                => False,
           Main_Priority          => -1,
           Main_CPU               => -1,
--- 173,182 ----
*************** package body Lib.Writ is
*** 909,915 ****
              --  Do not generate a with line for an ignored Ghost unit because
              --  the unit does not have an ALI file.
  
!             if Is_Ignored_Ghost_Entity (Cunit_Entity (Unum)) then
                 goto Next_With_Line;
              end if;
  
--- 905,911 ----
              --  Do not generate a with line for an ignored Ghost unit because
              --  the unit does not have an ALI file.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Cunit_Entity (Unum)) then
                 goto Next_With_Line;
              end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-writ.ads gcc-16.1.0-RC-20260423/gcc/ada/lib-writ.ads
*** gcc-15.2.0/gcc/ada/lib-writ.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-writ.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-xref-spark_specific.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-xref-spark_specific.adb
*** gcc-15.2.0/gcc/ada/lib-xref-spark_specific.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-xref-spark_specific.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 SPARK_Specific is
*** 258,263 ****
--- 258,270 ----
                 Context := Defining_Entity (Context);
                 exit;
  
+             when N_Subunit =>
+                Context := Corresponding_Stub (Context);
+ 
+             when N_Body_Stub =>
+                Context := Corresponding_Spec_Of_Stub (Context);
+                exit;
+ 
              when others =>
                 Context := Parent (Context);
           end case;
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-xref.adb gcc-16.1.0-RC-20260423/gcc/ada/lib-xref.adb
*** gcc-15.2.0/gcc/ada/lib-xref.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-xref.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,28 ****
--- 23,29 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Ada.Unchecked_Deallocation;
  with Atree;          use Atree;
  with Csets;          use Csets;
  with Einfo;          use Einfo;
*************** package body Lib.Xref is
*** 1729,1735 ****
              --  entity because neither the entity nor its references will
              --  appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity (Ent) then
                 goto Orphan_Continue;
              end if;
  
--- 1730,1736 ----
              --  entity because neither the entity nor its references will
              --  appear in the final tree.
  
!             if Is_Ignored_Ghost_Entity_In_Codegen (Ent) then
                 goto Orphan_Continue;
              end if;
  
*************** package body Lib.Xref is
*** 1827,1833 ****
           Nrefs : constant Nat := Xrefs.Last;
           --  Number of references in table
  
!          Rnums : array (0 .. Nrefs) of Nat;
           --  This array contains numbers of references in the Xrefs table.
           --  This list is sorted in output order. The extra 0'th entry is
           --  convenient for the call to sort. When we sort the table, we
--- 1828,1843 ----
           Nrefs : constant Nat := Xrefs.Last;
           --  Number of references in table
  
!          type Refs_Numbers is array (0 .. Nrefs) of Nat;
!          type Refs_Numbers_Ptr is access Refs_Numbers;
!          --  Since the number of references can be large, we need to allocate
!          --  the sorting array on the heap.
! 
!          procedure Free is
!            new Ada.Unchecked_Deallocation (Refs_Numbers, Refs_Numbers_Ptr);
!          --  Release memory allocated for the sorting array
! 
!          Rnums : Refs_Numbers_Ptr := new Refs_Numbers;
           --  This array contains numbers of references in the Xrefs table.
           --  This list is sorted in output order. The extra 0'th entry is
           --  convenient for the call to sort. When we sort the table, we
*************** package body Lib.Xref is
*** 2190,2196 ****
                 --  entity because neither the entity nor its references will
                 --  appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity (Ent) then
                    goto Continue;
                 end if;
  
--- 2200,2206 ----
                 --  entity because neither the entity nor its references will
                 --  appear in the final tree.
  
!                if Is_Ignored_Ghost_Entity_In_Codegen (Ent) then
                    goto Continue;
                 end if;
  
*************** package body Lib.Xref is
*** 2709,2714 ****
--- 2719,2726 ----
              null;
           end loop;
  
+          Free (Rnums);
+ 
           Write_Info_EOL;
        end Output_Refs;
     end Output_References;
diff -Nrcpad gcc-15.2.0/gcc/ada/lib-xref.ads gcc-16.1.0-RC-20260423/gcc/ada/lib-xref.ads
*** gcc-15.2.0/gcc/ada/lib-xref.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib-xref.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Xref is
*** 445,450 ****
--- 445,451 ----
        E_Anonymous_Access_Type                      => ' ',
        E_Array_Subtype                              => 'A',
        E_Array_Type                                 => 'A',
+       E_Assertion_Level                            => 'z',
        E_Block                                      => 'q',
        E_Class_Wide_Subtype                         => 'C',
        E_Class_Wide_Type                            => 'C',
*************** package Lib.Xref is
*** 547,553 ****
     --    w     protected object                protected type
     --    x     abstract procedure              exception
     --    y     abstract function               entry or entry family
!    --    z     generic formal parameter        (unused)
  
     ---------------------------------------------------
     -- Handling of Imported and Exported Subprograms --
--- 548,554 ----
     --    w     protected object                protected type
     --    x     abstract procedure              exception
     --    y     abstract function               entry or entry family
!    --    z     generic formal parameter        assertion level
  
     ---------------------------------------------------
     -- Handling of Imported and Exported Subprograms --
diff -Nrcpad gcc-15.2.0/gcc/ada/lib.adb gcc-16.1.0-RC-20260423/gcc/ada/lib.adb
*** gcc-15.2.0/gcc/ada/lib.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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);
*** 29,40 ****
  
  with Atree;          use Atree;
  with Csets;          use Csets;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
  with Output;         use Output;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 29,38 ----
*************** package body Lib is
*** 1062,1068 ****
     -----------------------------
  
     function Increment_Serial_Number return Nat is
!       TSN : Int renames Units.Table (Current_Sem_Unit).Serial_Number;
     begin
        TSN := TSN + 1;
        return TSN;
--- 1060,1066 ----
     -----------------------------
  
     function Increment_Serial_Number return Nat is
!       TSN : Nat renames Units.Table (Current_Sem_Unit).Serial_Number;
     begin
        TSN := TSN + 1;
        return TSN;
*************** package body Lib is
*** 1129,1143 ****
        Units.Locked := True;
     end Lock;
  
-    ---------------
-    -- Num_Units --
-    ---------------
- 
-    function Num_Units return Nat is
-    begin
-       return Int (Units.Last) - Int (Main_Unit) + 1;
-    end Num_Units;
- 
     -----------------
     -- Remove_Unit --
     -----------------
--- 1127,1132 ----
*************** package body Lib is
*** 1232,1238 ****
     -------------------------------
  
     procedure Synchronize_Serial_Number (SN : Nat) is
!       TSN : Int renames Units.Table (Current_Sem_Unit).Serial_Number;
     begin
        --  We should not be trying to synchronize downward
  
--- 1221,1227 ----
     -------------------------------
  
     procedure Synchronize_Serial_Number (SN : Nat) is
!       TSN : Nat renames Units.Table (Current_Sem_Unit).Serial_Number;
     begin
        --  We should not be trying to synchronize downward
  
diff -Nrcpad gcc-15.2.0/gcc/ada/lib.ads gcc-16.1.0-RC-20260423/gcc/ada/lib.ads
*** gcc-15.2.0/gcc/ada/lib.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/lib.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 633,642 ****
     --  Same as above, but for Source_Ptr
  
     function ipu (N : Node_Or_Entity_Id) return Boolean;
!    --  Same as In_Predefined_Unit, but renamed so it can assist debugging.
!    --  Otherwise, there is a disambiguous name conflict in the two versions of
!    --  In_Predefined_Unit which makes it inconvient to set as a breakpoint
!    --  condition.
  
     function In_Predefined_Unit (N : Node_Or_Entity_Id) return Boolean;
     --  Returns True if the given node or entity appears within the source text
--- 633,640 ----
     --  Same as above, but for Source_Ptr
  
     function ipu (N : Node_Or_Entity_Id) return Boolean;
!    --  Same as In_Predefined_Unit, but renamed to this unambiguous name for use
!    --  in the debugger.
  
     function In_Predefined_Unit (N : Node_Or_Entity_Id) return Boolean;
     --  Returns True if the given node or entity appears within the source text
*************** package Lib is
*** 720,731 ****
     procedure Lock;
     --  Lock internal tables before calling back end
  
-    function Num_Units return Nat;
-    --  Number of units currently in unit table
- 
     procedure Remove_Unit (U : Unit_Number_Type);
!    --  Remove unit U from unit table. Currently this is effective only if U is
!    --  the last unit currently stored in the unit table.
  
     procedure Replace_Linker_Option_String
       (S            : String_Id;
--- 718,726 ----
     procedure Lock;
     --  Lock internal tables before calling back end
  
     procedure Remove_Unit (U : Unit_Number_Type);
!    --  Remove unit U from unit table. U must be the last unit currently stored
!    --  in the unit table.
  
     procedure Replace_Linker_Option_String
       (S            : String_Id;
*************** private
*** 857,863 ****
        Source_Index           : Source_File_Index;
        Cunit                  : Node_Id;
        Cunit_Entity           : Entity_Id;
!       Dependency_Num         : Int;
        Ident_String           : Node_Id;
        Main_Priority          : Int;
        Main_CPU               : Int;
--- 852,858 ----
        Source_Index           : Source_File_Index;
        Cunit                  : Node_Id;
        Cunit_Entity           : Entity_Id;
!       Dependency_Num         : Nat;
        Ident_String           : Node_Id;
        Main_Priority          : Int;
        Main_CPU               : Int;
*************** private
*** 871,925 ****
        Has_RACW               : Boolean;
        Dynamic_Elab           : Boolean;
        No_Elab_Code_All       : Boolean;
-       Filler                 : Boolean;
        Loading                : Boolean;
        OA_Setting             : Character;
  
        Is_Predefined_Renaming : Boolean;
        Is_Internal_Unit       : Boolean;
        Is_Predefined_Unit     : Boolean;
-       Filler2                : Boolean;
-    end record;
- 
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written by Tree_Gen, we do not write uninitialized values to the file.
- 
-    for Unit_Record use record
-       Unit_File_Name         at  0 range 0 .. 31;
-       Unit_Name              at  4 range 0 .. 31;
-       Munit_Index            at  8 range 0 .. 31;
-       Expected_Unit          at 12 range 0 .. 31;
-       Source_Index           at 16 range 0 .. 31;
-       Cunit                  at 20 range 0 .. 31;
-       Cunit_Entity           at 24 range 0 .. 31;
-       Dependency_Num         at 28 range 0 .. 31;
-       Ident_String           at 32 range 0 .. 31;
-       Main_Priority          at 36 range 0 .. 31;
-       Main_CPU               at 40 range 0 .. 31;
-       Primary_Stack_Count    at 44 range 0 .. 31;
-       Sec_Stack_Count        at 48 range 0 .. 31;
-       Serial_Number          at 52 range 0 .. 31;
-       Version                at 56 range 0 .. 31;
-       Error_Location         at 60 range 0 .. 31;
-       Fatal_Error            at 64 range 0 ..  7;
-       Generate_Code          at 65 range 0 ..  7;
-       Has_RACW               at 66 range 0 ..  7;
-       Dynamic_Elab           at 67 range 0 ..  7;
-       No_Elab_Code_All       at 68 range 0 ..  7;
-       Filler                 at 69 range 0 ..  7;
-       OA_Setting             at 70 range 0 ..  7;
-       Loading                at 71 range 0 ..  7;
- 
-       Is_Predefined_Renaming at 72 range 0 .. 7;
-       Is_Internal_Unit       at 73 range 0 .. 7;
-       Is_Predefined_Unit     at 74 range 0 .. 7;
-       Filler2                at 75 range 0 .. 7;
     end record;
  
-    for Unit_Record'Size use 76 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Units is new Table.Table (
       Table_Component_Type => Unit_Record,
       Table_Index_Type     => Unit_Number_Type,
--- 866,879 ----
*************** private
*** 947,953 ****
     function Unit_Name_Hash (Id : Unit_Name_Type) return Unit_Name_Header_Num;
     --  Simple hash function for Unit_Name_Types
  
!    package Unit_Names is new GNAT.Htable.Simple_HTable
       (Header_Num => Unit_Name_Header_Num,
        Element    => Unit_Number_Type,
        No_Element => No_Unit,
--- 901,907 ----
     function Unit_Name_Hash (Id : Unit_Name_Type) return Unit_Name_Header_Num;
     --  Simple hash function for Unit_Name_Types
  
!    package Unit_Names is new GNAT.HTable.Simple_HTable
       (Header_Num => Unit_Name_Header_Num,
        Element    => Unit_Number_Type,
        No_Element => No_Unit,
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-astaco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-astaco.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-astaco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-astaco.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-dispat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-dispat.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-dispat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-dispat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-dynpri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-dynpri.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-dynpri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-dynpri.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-etgrbu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-etgrbu.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-etgrbu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-etgrbu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__darwin.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-exetim__darwin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__darwin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-exetim__default.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__default.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-exetim__default.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__default.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-exetim__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-exetim__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-exetim__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-exetim__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-exetim__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is 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,41 ****
  with Ada.Task_Identification;  use Ada.Task_Identification;
  with Ada.Unchecked_Conversion;
  
! with System.Tasking;
  with System.OS_Interface; use System.OS_Interface;
  with System.Task_Primitives.Operations; use System.Task_Primitives.Operations;
  
  with Interfaces.C; use Interfaces.C;
--- 34,42 ----
  with Ada.Task_Identification;  use Ada.Task_Identification;
  with Ada.Unchecked_Conversion;
  
! with System.C_Time;
  with System.OS_Interface; use System.OS_Interface;
+ with System.Tasking;
  with System.Task_Primitives.Operations; use System.Task_Primitives.Operations;
  
  with Interfaces.C; use Interfaces.C;
*************** package body Ada.Execution_Time is
*** 98,104 ****
       (T : Ada.Task_Identification.Task_Id :=
          Ada.Task_Identification.Current_Task) return CPU_Time
     is
!       TS       : aliased timespec;
        Clock_Id : aliased Interfaces.C.int;
        Result   : Interfaces.C.int;
  
--- 99,105 ----
       (T : Ada.Task_Identification.Task_Id :=
          Ada.Task_Identification.Current_Task) return CPU_Time
     is
!       TS       : aliased System.C_Time.timespec;
        Clock_Id : aliased Interfaces.C.int;
        Result   : Interfaces.C.int;
  
*************** package body Ada.Execution_Time is
*** 112,118 ****
  
        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
--- 113,119 ----
  
        function clock_gettime
          (clock_id : Interfaces.C.int;
!          tp       : access System.C_Time.timespec)
           return Interfaces.C.int;
        pragma Import (C, clock_gettime, "clock_gettime");
        --  Function from the POSIX.1b Realtime Extensions library
*************** package body Ada.Execution_Time is
*** 139,145 ****
          (clock_id => Clock_Id, tp => TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return To_CPU_Time (To_Duration (TS));
     end Clock;
  
     --------------------------
--- 140,146 ----
          (clock_id => Clock_Id, tp => TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return To_CPU_Time (System.C_Time.To_Duration (TS));
     end Clock;
  
     --------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-interr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-interr.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-interr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-interr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-interr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-interr.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-interr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-interr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-intnam.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__aix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__aix.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__aix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__aix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__bsd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__bsd.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__bsd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__bsd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__darwin.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__darwin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__darwin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                           (No Tasking Version)                           --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__hpux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__hpux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__hpux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__linux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__linux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__linux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__linux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__lynxos.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__lynxos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__lynxos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__qnx.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__qnx.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__qnx.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__rtems.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__rtems.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__rtems.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 1991-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-intnam__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-intnam__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-reatim.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-reatim.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-reatim.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-reatim.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-reatim.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-reatim.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-reatim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-reatim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-retide.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-retide.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-retide.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-retide.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-retide.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-retide.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-retide.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-retide.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-rttiev.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-rttiev.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-rttiev.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-rttiev.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2005-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-rttiev.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-rttiev.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-rttiev.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-rttiev.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2005-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-synbar.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-synbar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-synbar.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-synbar.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-synbar__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-synbar__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-synbar__posix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar__posix.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-synbar__posix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-synbar__posix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-sytaco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-sytaco.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-sytaco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-sytaco.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,42 ****
  
  with Ada.Exceptions;
  
! with System.Tasking;
! with System.Task_Primitives.Operations;
  
  package body Ada.Synchronous_Task_Control with
    SPARK_Mode => Off
  is
  
     ----------------
     -- Initialize --
--- 31,45 ----
  
  with Ada.Exceptions;
  
! with System.Soft_Links;
! with System.Task_Primitives.Operations; use System.Task_Primitives.Operations;
  
  package body Ada.Synchronous_Task_Control with
    SPARK_Mode => Off
  is
+    use type System.Tasking.Task_Id;
+ 
+    package SSL renames System.Soft_Links;
  
     ----------------
     -- Initialize --
*************** is
*** 44,50 ****
  
     procedure Initialize (S : in out Suspension_Object) is
     begin
!       System.Task_Primitives.Operations.Initialize (S.SO);
     end Initialize;
  
     --------------
--- 47,55 ----
  
     procedure Initialize (S : in out Suspension_Object) is
     begin
!       Initialize_Lock (S.L'Access, PO_Level);
! 
!       S.State := False;
     end Initialize;
  
     --------------
*************** is
*** 53,59 ****
  
     procedure Finalize (S : in out Suspension_Object) is
     begin
!       System.Task_Primitives.Operations.Finalize (S.SO);
     end Finalize;
  
     -------------------
--- 58,64 ----
  
     procedure Finalize (S : in out Suspension_Object) is
     begin
!       Finalize_Lock (S.L'Access);
     end Finalize;
  
     -------------------
*************** is
*** 62,68 ****
  
     function Current_State (S : Suspension_Object) return Boolean is
     begin
!       return System.Task_Primitives.Operations.Current_State (S.SO);
     end Current_State;
  
     ---------------
--- 67,73 ----
  
     function Current_State (S : Suspension_Object) return Boolean is
     begin
!       return S.State;
     end Current_State;
  
     ---------------
*************** is
*** 71,77 ****
  
     procedure Set_False (S : in out Suspension_Object) is
     begin
!       System.Task_Primitives.Operations.Set_False (S.SO);
     end Set_False;
  
     --------------
--- 76,88 ----
  
     procedure Set_False (S : in out Suspension_Object) is
     begin
!       SSL.Abort_Defer.all;
!       Write_Lock (S.L'Access);
! 
!       S.State := False;
! 
!       Unlock (S.L'Access);
!       SSL.Abort_Undefer.all;
     end Set_False;
  
     --------------
*************** is
*** 79,86 ****
     --------------
  
     procedure Set_True (S : in out Suspension_Object) is
     begin
!       System.Task_Primitives.Operations.Set_True (S.SO);
     end Set_True;
  
     ------------------------
--- 90,125 ----
     --------------
  
     procedure Set_True (S : in out Suspension_Object) is
+       Suspended_Task : System.Tasking.Task_Id := null;
     begin
!       if Is_Task_Context then
!          SSL.Abort_Defer.all;
!       end if;
! 
!       Write_Lock (S.L'Access);
! 
!       if S.Suspended_Task /= null then
!          --  We copy the suspended task's ID to a local object. We'll wake the
!          --  task up right after we unlock the suspension object.
!          Suspended_Task := S.Suspended_Task;
!          S.Suspended_Task := null;
!       else
!          S.State := True;
!       end if;
! 
!       Unlock (S.L'Access);
! 
!       if Suspended_Task /= null then
!          Write_Lock (Suspended_Task);
! 
!          Wakeup (Suspended_Task, System.Tasking.Runnable);
! 
!          Unlock (Suspended_Task);
!       end if;
! 
!       if Is_Task_Context then
!          SSL.Abort_Undefer.all;
!       end if;
     end Set_True;
  
     ------------------------
*************** is
*** 88,93 ****
--- 127,133 ----
     ------------------------
  
     procedure Suspend_Until_True (S : in out Suspension_Object) is
+       Self_ID : constant System.Tasking.Task_Id := Self;
     begin
        --  This is a potentially blocking (see ARM D.10, par. 10), so that
        --  if pragma Detect_Blocking is active then Program_Error must be
*************** is
*** 100,106 ****
             (Program_Error'Identity, "potentially blocking operation");
        end if;
  
!       System.Task_Primitives.Operations.Suspend_Until_True (S.SO);
     end Suspend_Until_True;
  
  end Ada.Synchronous_Task_Control;
--- 140,211 ----
             (Program_Error'Identity, "potentially blocking operation");
        end if;
  
!       SSL.Abort_Defer.all;
!       Write_Lock (S.L'Access);
! 
!       if S.Suspended_Task /= null then
!          Unlock (S.L'Access);
!          SSL.Abort_Undefer.all;
! 
!          raise Program_Error;
!       else
!          if S.State then
!             S.State := False;
! 
!             Unlock (S.L'Access);
!          else
!             Write_Lock (Self_ID);
! 
!             --  We treat starting to block in Suspend_Until_True as an abort
!             --  completion point, even if the language does not require it.
!             if Self_ID.Pending_ATC_Level < Self_ID.ATC_Nesting_Level then
!                Unlock (Self_ID);
!                Unlock (S.L'Access);
!                SSL.Abort_Undefer.all;
!                return;
!             end if;
! 
!             S.Suspended_Task := Self_ID;
! 
!             Unlock (S.L'Access);
! 
!             Self_ID.Common.State := System.Tasking.Suspension_Object_Sleep;
! 
!             --  We sleep until at least one of the following propositions
!             --  becomes true:
!             --
!             --  1. We have been unsuspended by some other task calling
!             --  Set_True.
!             --  2. We have received an abort.
!             loop
!                Sleep (Self_ID, System.Tasking.Suspension_Object_Sleep);
! 
!                Write_Lock (S.L'Access);
! 
!                --  If S.Suspended_Task /= Self_ID, we've been unsuspended by a
!                --  call to Set_True. S.Suspended_Task is not necessarily null
!                --  because some other task might have started waiting on the
!                --  suspension object.
!                if S.Suspended_Task /= Self_ID then
!                   exit;
! 
!                --  Otherwise if we have received an abort, we must free the
!                --  waiting slot on the suspension object.
!                elsif Self_ID.Pending_ATC_Level < Self_ID.ATC_Nesting_Level then
!                   S.Suspended_Task := null;
!                   exit;
!                end if;
! 
!                Unlock (S.L'Access);
!             end loop;
! 
!             Self_ID.Common.State := System.Tasking.Runnable;
!             Unlock (S.L'Access);
!             Unlock (Self_ID);
!          end if;
!          SSL.Abort_Undefer.all;
!       end if;
! 
     end Suspend_Until_True;
  
  end Ada.Synchronous_Task_Control;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-sytaco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-sytaco.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-sytaco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-sytaco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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,41 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Task_Primitives;
  
- with Ada.Finalization;
  with Ada.Task_Identification;
  
  package Ada.Synchronous_Task_Control with
--- 33,41 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.OS_Locks;
! with System.Tasking;
  
  with Ada.Task_Identification;
  
  package Ada.Synchronous_Task_Control with
*************** private
*** 75,88 ****
     procedure Finalize (S : in out Suspension_Object);
     --  Finalization for Suspension_Object
  
!    type Suspension_Object is
!      new Ada.Finalization.Limited_Controlled with
!    record
!       SO : System.Task_Primitives.Suspension_Object;
!       --  Use low-level suspension objects so that the synchronization
!       --  functionality provided by this object can be achieved using
!       --  efficient operating system primitives.
!    end record;
  
     pragma Inline (Set_True);
     pragma Inline (Set_False);
--- 75,90 ----
     procedure Finalize (S : in out Suspension_Object);
     --  Finalization for Suspension_Object
  
!    type Suspension_Object is limited record
!       L              : aliased System.OS_Locks.RTS_Lock;
!       State          : Boolean with Atomic;
!       Suspended_Task : System.Tasking.Task_Id;
!    end record
!    with
!      Finalizable =>
!        (Initialize           => Initialize,
!         Finalize             => Finalize,
!         Relaxed_Finalization => False);
  
     pragma Inline (Set_True);
     pragma Inline (Set_False);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-tasatt.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasatt.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-tasatt.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasatt.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-tasatt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasatt.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-tasatt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasatt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-taside.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taside.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-taside.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taside.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-taside.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taside.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-taside.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taside.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnarl/a-tasini.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasini.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-tasini.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasini.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-tasini.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasini.ads
*** gcc-15.2.0/gcc/ada/libgnarl/a-tasini.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-tasini.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/a-taster.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taster.adb
*** gcc-15.2.0/gcc/ada/libgnarl/a-taster.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/a-taster.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-boubuf.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boubuf.adb
*** gcc-15.2.0/gcc/ada/libgnarl/g-boubuf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boubuf.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-boubuf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boubuf.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-boubuf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boubuf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-boumai.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boumai.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-boumai.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-boumai.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-semaph.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-semaph.adb
*** gcc-15.2.0/gcc/ada/libgnarl/g-semaph.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-semaph.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-semaph.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-semaph.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-semaph.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-semaph.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-signal.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-signal.adb
*** gcc-15.2.0/gcc/ada/libgnarl/g-signal.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-signal.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-signal.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-signal.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-signal.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-signal.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-tastus.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-tastus.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-tastus.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-tastus.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-thread.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-thread.adb
*** gcc-15.2.0/gcc/ada/libgnarl/g-thread.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-thread.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1998-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/g-thread.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-thread.ads
*** gcc-15.2.0/gcc/ada/libgnarl/g-thread.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/g-thread.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-inmaop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-inmaop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__hwint.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__hwint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__hwint.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-inmaop__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-inmaop__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr__hwint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__hwint.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr__hwint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__hwint.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__sigaction.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr__sigaction.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__sigaction.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-interr__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-interr__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-interr__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__android.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__android.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__android.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__android.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__cheribsd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__cheribsd.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__cheribsd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__cheribsd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__lynxos.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__lynxos.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__lynxos.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__qnx.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__qnx.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__qnx.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__qnx.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__rtems.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__rtems.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__rtems.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__rtems.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__rtems.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__rtems.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__rtems.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__rtems.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__solaris.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__susv3.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__susv3.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__susv3.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__susv3.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-intman__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-intman__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__alpha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__alpha.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__alpha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__alpha.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__android-aarch64.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__android-aarch64.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                  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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
*************** package System.Linux is
*** 118,130 ****
     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#;
--- 101,119 ----
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction
  
!    generic
!       type sigset_t is private;
!    package Android_Sigaction is
!       type struct_sigaction is record
!          sa_flags    : Interfaces.C.int;
!          sa_handler  : System.Address;
!          sa_mask     : sigset_t;
!          sa_restorer : System.Address;
!       end record;
!       pragma Convention (C, struct_sigaction);
!    end Android_Sigaction;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__android-arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__android-arm.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__android-arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__android-arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                  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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
*************** package System.Linux is
*** 118,128 ****
     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#;
--- 101,119 ----
     SIG33      : constant := 33; --  glibc internal signal
     SIG34      : constant := 34; --  glibc internal signal
  
!    --  struct_sigaction
  
!    generic
!       type sigset_t is private;
!    package Android_Sigaction is
!       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);
!    end Android_Sigaction;
  
     SA_SIGINFO  : constant := 16#00000004#;
     SA_ONSTACK  : constant := 16#08000000#;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__hppa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__hppa.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__hppa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__hppa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package.
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__loongarch.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__loongarch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__loongarch.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is 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,41 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 35,40 ----
*************** package System.Linux is
*** 44,68 ****
     -- Time --
     ----------
  
-    subtype int         is Interfaces.C.int;
-    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 --
     -----------
--- 43,50 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__mips.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__mips.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__mips.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__mips.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is 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,41 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 35,40 ----
*************** package System.Linux is
*** 44,68 ****
     -- Time --
     ----------
  
-    subtype int         is Interfaces.C.int;
-    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 --
     -----------
--- 43,50 ----
*************** package System.Linux is
*** 125,132 ****
  
     --  struct_sigaction offsets
  
!    sa_handler_pos : constant := int'Size / 8;
!    sa_mask_pos    : constant := int'Size / 8 +
                                  Standard'Address_Size / 8;
     sa_flags_pos   : constant := 0;
  
--- 107,114 ----
  
     --  struct_sigaction offsets
  
!    sa_handler_pos : constant := Interfaces.C.int'Size / 8;
!    sa_mask_pos    : constant := Interfaces.C.int'Size / 8 +
                                  Standard'Address_Size / 8;
     sa_flags_pos   : constant := 0;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__riscv.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__riscv.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__riscv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__riscv.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is 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,41 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 35,40 ----
*************** package System.Linux is
*** 44,68 ****
     -- Time --
     ----------
  
-    subtype int         is Interfaces.C.int;
-    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 --
     -----------
--- 43,50 ----
*************** package System.Linux is
*** 125,132 ****
     --  struct_sigaction offsets
  
     sa_handler_pos : constant := 0;
!    sa_mask_pos    : constant := long'Size / 8;
!    sa_flags_pos   : constant := long'Size / 8 + 128;
  
     SA_SIGINFO  : constant := 16#04#;
     SA_ONSTACK  : constant := 16#08000000#;
--- 107,114 ----
     --  struct_sigaction offsets
  
     sa_handler_pos : constant := 0;
!    sa_mask_pos    : constant := Interfaces.C.long'Size / 8;
!    sa_flags_pos   : constant := Interfaces.C.long'Size / 8 + 128;
  
     SA_SIGINFO  : constant := 16#04#;
     SA_ONSTACK  : constant := 16#08000000#;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__sparc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__sparc.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__sparc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__sparc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is 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,42 ****
  --  Preelaborate. This package is designed to be a bottom-level (leaf) package
  
  with Interfaces.C;
- with System.Parameters;
  
  package System.Linux is
     pragma Preelaborate;
--- 36,41 ----
*************** package System.Linux is
*** 45,68 ****
     -- 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 --
     -----------
--- 44,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-linux__x32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__x32.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-linux__x32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-linux__x32.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,133 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS               --
- --                                                                          --
- --                          S Y S T E M .  L I N U X                        --
- --                                                                          --
- --                                  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 --
- -- 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 is the x32 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 suseconds_t is Long_Long_Integer;
-    --  Note that suseconds_t is 64 bits.
-    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_Long_Integer;
-       --  Note that tv_nsec is 64 bits.
-    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
-    SIGUSR1    : constant := 10; --  user defined signal 1
-    SIGSEGV    : constant := 11; --  segmentation violation
-    SIGUSR2    : constant := 12; --  user defined signal 2
-    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
-    SIGSTKFLT  : constant := 16; --  coprocessor stack fault (Linux)
-    SIGCLD     : constant := 17; --  alias for SIGCHLD
-    SIGCHLD    : constant := 17; --  child status change
-    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
-    SIGURG     : constant := 23; --  urgent condition on IO channel
-    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
-    SIGPOLL    : constant := 29; --  pollable event occurred
-    SIGIO      : constant := 29; --  I/O now possible (4.2 BSD)
-    SIGLOST    : constant := 29; --  File lock lost
-    SIGPWR     : constant := 30; --  power-fail restart
-    SIGSYS     : constant := 31; --  bad system call
-    SIGUNUSED  : constant := 31; --  unused signal (mapped to SIGSYS)
-    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 := 128 + sa_mask_pos;
- 
-    SA_SIGINFO  : constant := 16#04#;
-    SA_ONSTACK  : constant := 16#08000000#;
- 
- end System.Linux;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-mudido.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-mudido.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-mudido.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-mudido.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-mudido__affinity.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-mudido__affinity.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-mudido__affinity.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__aix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__aix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__aix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__aix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Interface is
*** 35,49 ****
  
     use Interfaces.C;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 35,40 ----
*************** package body System.OS_Interface is
*** 73,101 ****
     end To_Target_Priority;
  
     -----------------
-    -- 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 is negative 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;
- 
-    -----------------
     -- sched_yield --
     -----------------
  
--- 64,69 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__aix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__aix.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__aix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__aix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,50 ****
  with Interfaces.C;
  with Interfaces.C.Extensions;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 43,50 ----
  with Interfaces.C;
  with Interfaces.C.Extensions;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 200,225 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new long_long;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    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;
--- 200,217 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new long_long;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 420,426 ****
     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");
  
     --------------------------
--- 412,418 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 543,557 ****
  
     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);
- 
     type pthread_attr_t is new System.Address;
     pragma Convention (C, pthread_attr_t);
     --  typedef struct __pt_attr        *pthread_attr_t;
--- 535,540 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__android.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__android.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__android.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__android.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,74 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 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) 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- --
- -- 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 an Android version of this package.
- 
- --  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;
- 
- end System.OS_Interface;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__android.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__android.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__android.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__android.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,51 ****
  
  with Interfaces.C;
  
  with System.Linux;
  with System.OS_Constants;
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,51 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.Linux;
  with System.OS_Constants;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 147,153 ****
     --  Not clear why these two signals are reserved. Perhaps they are not
     --  supported by this version of GNU/Linux ???
  
!    type sigset_t is private;
  
     function sigaddset (set : access sigset_t; sig : Signal) return int;
     pragma Import (C, sigaddset, "_sigaddset");
--- 147,166 ----
     --  Not clear why these two signals are reserved. Perhaps they are not
     --  supported by this version of GNU/Linux ???
  
!    --  struct sigaction fields are of different sizes and come in different
!    --  order on ARM vs aarch64.  As this source is shared by the two
!    --  configurations, fetch the type definition through System.Linux, which
!    --  is specialized.
! 
!    type sigset_t is
!      array (0 .. OS_Constants.SIZEOF_sigset - 1) of Interfaces.C.unsigned_char;
!    pragma Convention (C, sigset_t);
!    for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment;
! 
!    package Android_Sigaction is new
!      System.Linux.Android_Sigaction (sigset_t => sigset_t);
! 
!    type struct_sigaction is new Android_Sigaction.struct_sigaction;
  
     function sigaddset (set : access sigset_t; sig : Signal) return int;
     pragma Import (C, sigaddset, "_sigaddset");
*************** package System.OS_Interface is
*** 173,186 ****
     end record;
     pragma Convention (C, siginfo_t);
  
-    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);
- 
     type struct_sigaction_ptr is access all struct_sigaction;
  
     SA_SIGINFO : constant := System.Linux.SA_SIGINFO;
--- 186,191 ----
*************** package System.OS_Interface is
*** 208,232 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
--- 213,229 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
*************** package System.OS_Interface is
*** 258,263 ****
--- 255,268 ----
     function getpid return pid_t;
     pragma Import (C, getpid, "getpid");
  
+    PR_SET_NAME : constant := 15;
+    PR_GET_NAME : constant := 16;
+ 
+    function prctl
+      (option : int;
+       arg    : unsigned_long) return int;
+    pragma Import (C_Variadic_1, prctl, "prctl");
+ 
     -------------
     -- Threads --
     -------------
*************** package System.OS_Interface is
*** 276,284 ****
--- 281,291 ----
       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;
  
*************** package System.OS_Interface is
*** 287,297 ****
     PTHREAD_SCOPE_PROCESS : constant := 1;
     PTHREAD_SCOPE_SYSTEM  : constant := 0;
  
-    --  Read/Write lock not supported on Android.
- 
-    subtype pthread_rwlock_t     is pthread_mutex_t;
-    subtype pthread_rwlockattr_t is pthread_mutexattr_t;
- 
     -----------
     -- Stack --
     -----------
--- 294,299 ----
*************** package System.OS_Interface is
*** 389,394 ****
--- 391,433 ----
     function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int;
     pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock");
  
+    function pthread_rwlockattr_init
+      (attr : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlockattr_init, "pthread_rwlockattr_init");
+ 
+    function pthread_rwlockattr_destroy
+      (attr : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy");
+ 
+    PTHREAD_RWLOCK_PREFER_READER_NP              : constant := 0;
+    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 1;
+ 
+    --  No PTHREAD_RWLOCK_PREFER_WRITER_NP in Android's pthread.h API level 29
+ 
+    function pthread_rwlockattr_setkind_np
+      (attr : access pthread_rwlockattr_t;
+       pref : int) return int;
+    pragma Import
+      (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np");
+ 
+    function pthread_rwlock_init
+      (mutex : access pthread_rwlock_t;
+       attr  : access pthread_rwlockattr_t) return int;
+    pragma Import (C, pthread_rwlock_init, "pthread_rwlock_init");
+ 
+    function pthread_rwlock_destroy
+      (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_destroy, "pthread_rwlock_destroy");
+ 
+    function pthread_rwlock_rdlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_rdlock, "pthread_rwlock_rdlock");
+ 
+    function pthread_rwlock_wrlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_wrlock, "pthread_rwlock_wrlock");
+ 
+    function pthread_rwlock_unlock (mutex : access pthread_rwlock_t) return int;
+    pragma Import (C, pthread_rwlock_unlock, "pthread_rwlock_unlock");
+ 
     function pthread_condattr_init
       (attr : access pthread_condattr_t) return int;
     pragma Import (C, pthread_condattr_init, "pthread_condattr_init");
*************** package System.OS_Interface is
*** 416,422 ****
     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");
  
     --------------------------
--- 455,461 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** package System.OS_Interface is
*** 581,614 ****
  
  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.
-    pragma Warnings (On);
- 
     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);
- 
     type unsigned_long_long_t is mod 2 ** 64;
     --  Local type only used to get the alignment of this type below
  
--- 620,627 ----
*************** private
*** 632,637 ****
--- 645,662 ----
     pragma Convention (C, pthread_mutexattr_t);
     for pthread_mutexattr_t'Alignment use Interfaces.C.int'Alignment;
  
+    type pthread_rwlockattr_t is record
+       Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCKATTR_SIZE);
+    end record;
+    pragma Convention (C, pthread_rwlockattr_t);
+    for pthread_rwlockattr_t'Alignment use Interfaces.C.unsigned_long'Alignment;
+ 
+    type pthread_rwlock_t is record
+       Data : char_array (1 .. OS_Constants.PTHREAD_RWLOCK_SIZE);
+    end record;
+    pragma Convention (C, pthread_rwlock_t);
+    for pthread_rwlock_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;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__cheribsd.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__cheribsd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__cheribsd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,51 ****
  with Interfaces;
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 44,51 ----
  with Interfaces;
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 232,261 ****
     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;
--- 232,253 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
!    function nanosleep (rqtp, rmtp : access C_Time.timespec) return int;
     pragma Import (C, nanosleep, "nanosleep");
  
     type clockid_t is new int;
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 463,469 ****
     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");
  
     --------------------------
--- 455,461 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 664,678 ****
  
     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;
--- 656,661 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__darwin.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__darwin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__darwin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,49 ****
  
  --  This is a Darwin Threads version of this package
  
! with Interfaces.C.Extensions;
  
  package body System.OS_Interface is
-    use Interfaces.C;
- 
-    -----------------
-    -- 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_Target_Priority --
--- 31,39 ----
  
  --  This is a Darwin Threads version of this package
  
! with Interfaces.C; use Interfaces.C;
  
  package body System.OS_Interface is
  
     ------------------------
     -- To_Target_Priority --
*************** package body System.OS_Interface is
*** 56,126 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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;
- 
     -------------------
     -- clock_gettime --
     -------------------
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int
     is
        pragma Unreferenced (clock_id);
  
        --  Darwin Threads don't have clock_gettime, so use gettimeofday
  
!       use Interfaces;
! 
!       type timeval is array (1 .. 3) of C.long;
!       --  The timeval array is sized to contain long_long sec and long usec.
!       --  If long_long'Size = long'Size then it will be overly large but that
!       --  won't effect the implementation since it's not accessed directly.
! 
!       procedure timeval_to_duration
!         (T    : not null access timeval;
!          sec  : not null access C.Extensions.long_long;
!          usec : not null access C.long);
!       pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration");
! 
!       Micro  : constant := 10**6;
!       sec    : aliased C.Extensions.long_long;
!       usec   : aliased C.long;
!       TV     : aliased timeval;
        Result : int;
  
        function gettimeofday
!         (Tv : access timeval;
           Tz : System.Address := System.Null_Address) return int;
        pragma Import (C, gettimeofday, "gettimeofday");
  
     begin
        Result := gettimeofday (TV'Access, System.Null_Address);
        pragma Assert (Result = 0);
!       timeval_to_duration (TV'Access, sec'Access, usec'Access);
!       tp.all := To_Timespec (Duration (sec) + Duration (usec) / Micro);
        return Result;
     end clock_gettime;
  
--- 46,75 ----
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
     -------------------
     -- clock_gettime --
     -------------------
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int
     is
        pragma Unreferenced (clock_id);
  
        --  Darwin Threads don't have clock_gettime, so use gettimeofday
  
!       TV     : aliased C_Time.timeval;
        Result : int;
  
        function gettimeofday
!         (Tv : access C_Time.timeval;
           Tz : System.Address := System.Null_Address) return int;
        pragma Import (C, gettimeofday, "gettimeofday");
  
     begin
        Result := gettimeofday (TV'Access, System.Null_Address);
        pragma Assert (Result = 0);
!       tp.all := C_Time.To_Timespec (TV);
        return Result;
     end clock_gettime;
  
*************** package body System.OS_Interface is
*** 130,142 ****
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int
     is
        pragma Unreferenced (clock_id);
  
        --  Darwin Threads don't have clock_getres.
  
-       Nano   : constant := 10**9;
        nsec   : int := 0;
        Result : int := -1;
  
--- 79,90 ----
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int
     is
        pragma Unreferenced (clock_id);
  
        --  Darwin Threads don't have clock_getres.
  
        nsec   : int := 0;
        Result : int := -1;
  
*************** package body System.OS_Interface is
*** 145,151 ****
  
     begin
        nsec := clock_get_res;
!       res.all := To_Timespec (Duration (0.0) + Duration (nsec) / Nano);
  
        if nsec > 0 then
           Result := 0;
--- 93,99 ----
  
     begin
        nsec := clock_get_res;
!       res.all := C_Time.Nanoseconds_To_Timespec (nsec);
  
        if nsec > 0 then
           Result := 0;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__darwin.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__darwin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__darwin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 40,48 ****
  
  with Interfaces.C;
  
  with System.OS_Constants;
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 40,48 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Constants;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 184,206 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int;
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
! 
!    function To_Duration (TS : timespec) return Duration;
!    pragma Inline (To_Duration);
! 
!    function To_Timespec (D : Duration) return timespec;
!    pragma Inline (To_Timespec);
  
     -------------------------
     -- Priority Scheduling --
--- 184,198 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int;
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
  
     -------------------------
     -- Priority Scheduling --
*************** package System.OS_Interface is
*** 397,403 ****
     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");
  
     --------------------------
--- 389,395 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 517,531 ****
  
     type pid_t is new int32_t;
  
-    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);
- 
     --
     --  Darwin specific signal implementation
     --
--- 509,514 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dragonfly.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dragonfly.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Interface is
*** 69,83 ****
        null;
     end pthread_init;
  
-    -----------------
-    -- To_Duration --
-    -----------------
- 
-    function To_Duration (TS : timespec) return Duration is
-    begin
-       return Duration (TS.ts_sec) + Duration (TS.ts_nsec) / 10#1#E9;
-    end To_Duration;
- 
     ------------------------
     -- To_Target_Priority --
     ------------------------
--- 69,74 ----
*************** package body System.OS_Interface is
*** 89,116 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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'(ts_sec => S,
-                        ts_nsec => long (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
  end System.OS_Interface;
--- 80,83 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dragonfly.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dragonfly.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,50 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 43,50 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 198,227 ****
     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 unsigned_long;
  
     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;
--- 198,219 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
!    function nanosleep (rqtp, rmtp : access C_Time.timespec)  return int;
     pragma Import (C, nanosleep, "nanosleep");
  
     type clockid_t is new unsigned_long;
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 432,438 ****
     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");
  
     Relative_Timed_Wait : constant Boolean := False;
--- 424,430 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     Relative_Timed_Wait : constant Boolean := False;
*************** private
*** 636,650 ****
  
     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
-       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;
--- 628,633 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__freebsd.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__freebsd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__freebsd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Interface is
*** 69,83 ****
        null;
     end pthread_init;
  
-    -----------------
-    -- To_Duration --
-    -----------------
- 
-    function To_Duration (TS : timespec) return Duration is
-    begin
-       return Duration (TS.ts_sec) + Duration (TS.ts_nsec) / 10#1#E9;
-    end To_Duration;
- 
     ------------------------
     -- To_Target_Priority --
     ------------------------
--- 69,74 ----
*************** package body System.OS_Interface is
*** 89,115 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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
- 
-       if F < 0.0 then
-          S := S - 1;
-          F := F + 1.0;
-       end if;
- 
-       return timespec'(ts_sec => S,
-                        ts_nsec => long (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
  end System.OS_Interface;
--- 80,83 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__freebsd.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__freebsd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__freebsd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,50 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 43,50 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 198,227 ****
     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;
--- 198,219 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
!    function nanosleep (rqtp, rmtp : access C_Time.timespec) return int;
     pragma Import (C, nanosleep, "nanosleep");
  
     type clockid_t is new int;
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 431,437 ****
     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");
  
     --------------------------
--- 423,429 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 633,647 ****
     type pid_t is new int;
     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;
--- 625,630 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__gnu.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__gnu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__gnu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2015-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.OS_Interface is
*** 93,107 ****
        return 0;
     end pthread_setschedparam;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 93,98 ----
*************** package body System.OS_Interface is
*** 113,140 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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;
- 
  end System.OS_Interface;
--- 104,107 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__gnu.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__gnu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__gnu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,49 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 210,218 ****
     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;
--- 210,216 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
!    function nanosleep (rqtp, rmtp : access C_Time.timespec) return int;
     pragma Import (C, nanosleep, "nanosleep");
  
     type clockid_t is new int;
*************** package System.OS_Interface is
*** 221,241 ****
     --  From: /usr/include/time.h
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     --  From: /usr/include/unistd.h
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
--- 219,233 ----
     --  From: /usr/include/time.h
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     --  From: /usr/include/unistd.h
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
*************** package System.OS_Interface is
*** 487,493 ****
     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");
  
     Relative_Timed_Wait : constant Boolean := False;
--- 479,485 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     Relative_Timed_Wait : constant Boolean := False;
*************** private
*** 656,670 ****
  
     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);
- 
     --  From: /usr/include/pthread/pthreadtypes.h:
     --  typedef struct __pthread_attr pthread_attr_t;
     --  /usr/include/i386-gnu/bits/thread-attr.h: struct __pthread_attr...
--- 648,653 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__hpux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__hpux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__hpux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-2017, Florida State University          --
! --            Copyright (C) 1995-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,49 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 181,206 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    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;
--- 181,198 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 400,406 ****
     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");
  
     --------------------------
--- 392,398 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 517,531 ****
  
     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);
- 
     type pthread_attr_t is new int;
     type pthread_condattr_t is new int;
     type pthread_mutexattr_t is new int;
--- 509,514 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__kfreebsd-gnu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --               Copyright (C) 1991-1994, Florida State University          --
! --            Copyright (C) 1995-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,49 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 205,213 ****
     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;
--- 205,211 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
!    function nanosleep (rqtp, rmtp : access C_Time.timespec) return int;
     pragma Import (C, nanosleep, "nanosleep");
  
     type clockid_t is new int;
*************** package System.OS_Interface is
*** 215,235 ****
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
--- 213,227 ----
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec)
        return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
*************** package System.OS_Interface is
*** 430,436 ****
     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");
  
     --------------------------
--- 422,428 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 602,616 ****
  
     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);
- 
     type pthread_attr_t is record
        detachstate   : int;
        schedpolicy   : int;
--- 594,599 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__linux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__linux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__linux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.C_Time;
  with System.Linux;
  with System.OS_Constants;
  with System.OS_Locks;
*************** package System.OS_Interface is
*** 54,61 ****
  
     pragma Linker_Options ("-lpthread");
  
-    use type System.Linux.time_t;
- 
     subtype int            is Interfaces.C.int;
     subtype char           is Interfaces.C.char;
     subtype short          is Interfaces.C.short;
--- 55,60 ----
*************** package System.OS_Interface is
*** 229,254 ****
     -- Time --
     ----------
  
-    subtype time_t    is System.Linux.time_t;
-    subtype timespec  is System.Linux.timespec;
-    subtype timeval   is System.Linux.timeval;
     subtype clockid_t is System.Linux.clockid_t;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
--- 228,244 ----
     -- Time --
     ----------
  
     subtype clockid_t is System.Linux.clockid_t;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
*************** package System.OS_Interface is
*** 457,463 ****
     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");
  
     --------------------------
--- 447,453 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__lynxos178.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__lynxos178.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.OS_Interface is
*** 85,99 ****
        return int (sysconf (SC_PAGESIZE));
     end Get_Page_Size;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 85,90 ----
*************** package body System.OS_Interface is
*** 105,133 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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 is negative 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;
- 
     -------------
     -- sigwait --
     -------------
--- 96,101 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__lynxos178e.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__lynxos178e.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-1994, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,50 ****
  
  with Interfaces.C;
  
  with System.Multiprocessors;
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,50 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.Multiprocessors;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 193,218 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    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;
--- 193,210 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new int;
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     type struct_timezone is record
        tz_minuteswest : int;
        tz_dsttime     : int;
*************** package System.OS_Interface is
*** 220,227 ****
     pragma Convention (C, struct_timezone);
     type struct_timezone_ptr is access all struct_timezone;
  
-    type struct_timeval is private;
- 
     -------------------------
     -- Priority Scheduling --
     -------------------------
--- 212,217 ----
*************** package System.OS_Interface is
*** 415,421 ****
     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");
  
     --------------------------
--- 405,411 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 541,563 ****
  
     type pid_t is new long;
  
-    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
-      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
- 
-    type suseconds_t is new int;
- 
-    type timespec is record
-       tv_sec  : time_t;
-       tv_nsec : long;
-    end record;
-    pragma Convention (C, timespec);
- 
-    type struct_timeval is record
-       tv_sec  : time_t;
-       tv_usec : suseconds_t;
-    end record;
-    pragma Convention (C, struct_timeval);
- 
     type st_attr is record
        stksize      : int;
        prio         : int;
--- 531,536 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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 ----
  --  that are needed by children of System.
  
  with Interfaces.C; use Interfaces.C;
+ 
  package body System.OS_Interface is
  
     --------------------
*************** package body System.OS_Interface is
*** 58,72 ****
        null;
     end pthread_init;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 59,64 ----
*************** package body System.OS_Interface is
*** 78,105 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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;
- 
  end System.OS_Interface;
--- 70,73 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__qnx.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__qnx.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__qnx.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   B o d y                                --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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 ----
  --  that are needed by children of System.
  
  with Interfaces.C; use Interfaces.C;
+ 
  package body System.OS_Interface is
  
     -----------------
*************** package body System.OS_Interface is
*** 70,84 ****
        null;
     end pthread_init;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 71,76 ----
*************** package body System.OS_Interface is
*** 90,117 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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;
- 
  end System.OS_Interface;
--- 82,85 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__qnx.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__qnx.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__qnx.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 41,49 ****
  
  with Interfaces.C;
  
  with System.OS_Constants;
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 41,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Constants;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 213,237 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     -------------------------
     -- Priority Scheduling --
     -------------------------
--- 213,229 ----
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported
  
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     -------------------------
     -- Priority Scheduling --
     -------------------------
*************** package System.OS_Interface is
*** 418,424 ****
     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");
  
     --------------------------
--- 410,416 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** private
*** 572,586 ****
  
     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);
- 
     type unsigned_long_long_t is mod 2 ** 64;
     --  Local type only used to get the alignment of this type below
  
--- 564,569 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__rtems.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__rtems.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__rtems.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.OS_Interface is
*** 92,106 ****
       return int
       with Import, External_Name => "rtems_semaphore_release", Convention => C;
  
-    -----------------
-    -- 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_Target_Priority --
     ------------------------
--- 92,97 ----
*************** package body System.OS_Interface is
*** 112,138 ****
        return Interfaces.C.int (Prio);
     end To_Target_Priority;
  
-    -----------------
-    -- 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 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;
- 
     -----------------------------
     -- Binary_Semaphore_Create --
     -----------------------------
--- 103,108 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__rtems.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__rtems.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__rtems.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 52,60 ****
  
  with Interfaces.C;
  
  with System.OS_Constants;
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 52,60 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Constants;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 181,188 ****
     Time_Slice_Supported : constant Boolean := True;
     --  Indicates whether time slicing is supported (i.e SCHED_RR is supported)
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     CLOCK_REALTIME  : constant clockid_t;
--- 181,186 ----
*************** package System.OS_Interface is
*** 190,209 ****
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     -------------------------
     -- Priority Scheduling --
     -------------------------
--- 188,201 ----
  
     function clock_gettime
       (clock_id : clockid_t;
!       tp       : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
       (clock_id : clockid_t;
!       res      : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     -------------------------
     -- Priority Scheduling --
     -------------------------
*************** package System.OS_Interface is
*** 428,434 ****
     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");
  
     --------------------------
--- 420,426 ----
     function pthread_cond_timedwait
       (cond    : access pthread_cond_t;
        mutex   : access pthread_mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait");
  
     --------------------------
*************** package System.OS_Interface is
*** 454,461 ****
     type struct_sched_param is record
        sched_priority      : int;
        ss_low_priority     : int;
!       ss_replenish_period : timespec;
!       ss_initial_budget   : timespec;
        sched_ss_max_repl   : int;
     end record;
     pragma Convention (C, struct_sched_param);
--- 446,453 ----
     type struct_sched_param is record
        sched_priority      : int;
        ss_low_priority     : int;
!       ss_replenish_period : C_Time.timespec;
!       ss_initial_budget   : C_Time.timespec;
        sched_ss_max_repl   : int;
     end record;
     pragma Convention (C, struct_sched_param);
*************** private
*** 591,605 ****
  
     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 := System.OS_Constants.CLOCK_REALTIME;
     CLOCK_MONOTONIC : constant clockid_t := System.OS_Constants.CLOCK_MONOTONIC;
  
--- 583,588 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__solaris.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,76 ****
  --  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
- 
-       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;
- 
     ------------------
     -- pthread_init --
     ------------------
--- 35,42 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  S p e c                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,49 ****
  
  with Interfaces.C;
  
  with System.OS_Locks;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 42,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.OS_Locks;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 241,264 ****
     -- Time --
     ----------
  
-    type timespec is private;
- 
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
!      (clock_id : clockid_t; res : access timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
- 
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
--- 241,256 ----
     -- Time --
     ----------
  
     type clockid_t is new int;
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     function clock_getres
!      (clock_id : clockid_t; res : access C_Time.timespec) return int;
     pragma Import (C, clock_getres, "clock_getres");
  
     function sysconf (name : int) return long;
     pragma Import (C, sysconf);
  
*************** package System.OS_Interface is
*** 347,353 ****
     function cond_timedwait
       (cond    : access cond_t;
        mutex   : access mutex_t;
!       abstime : access timespec) return int;
     pragma Import (C, cond_timedwait, "cond_timedwait");
  
     function cond_signal (cond : access cond_t) return int;
--- 339,345 ----
     function cond_timedwait
       (cond    : access cond_t;
        mutex   : access mutex_t;
!       abstime : access C_Time.timespec) return int;
     pragma Import (C, cond_timedwait, "cond_timedwait");
  
     function cond_signal (cond : access cond_t) return int;
*************** private
*** 526,540 ****
  
     type pid_t is new long;
  
-    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);
- 
     type array_type_9 is array (0 .. 3) of unsigned_char;
     type record_type_3 is record
        flag  : array_type_9;
--- 518,523 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --         Copyright (C) 1997-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.OS_Interface is
*** 41,78 ****
     Low_Priority : constant := 255;
     --  VxWorks native (default) lowest scheduling priority
  
-    -----------------
-    -- To_Duration --
-    -----------------
- 
-    function To_Duration (TS : timespec) return Duration is
-    begin
-       return Duration (TS.ts_sec) + Duration (TS.ts_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 is negative 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'(ts_sec  => S,
-                        ts_nsec => long (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
     -------------------------
     -- To_VxWorks_Priority --
     -------------------------
--- 41,46 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                   S p e c                                --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 40,49 ****
  
  with Interfaces.C;
  
  with System.VxWorks;
  with System.VxWorks.Ext;
  with System.Multiprocessors;
- with System.Parameters;
  
  package System.OS_Interface is
     pragma Preelaborate;
--- 40,49 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.VxWorks;
  with System.VxWorks.Ext;
  with System.Multiprocessors;
  
  package System.OS_Interface is
     pragma Preelaborate;
*************** package System.OS_Interface is
*** 244,280 ****
     -- Time --
     ----------
  
-    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
-      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
-    --  Time_t here used to be unsigned to match the VxWorks header declaration.
-    --  The header declaration has changed in newer releases and is now signed
-    --  for applications.
- 
-    type timespec is record
-       ts_sec  : time_t;
-       ts_nsec : long;
-    end record;
-    pragma Convention (C, timespec);
- 
     type clockid_t is new int;
  
-    function To_Duration (TS : timespec) return Duration;
-    pragma Inline (To_Duration);
- 
-    function To_Timespec (D : Duration) return timespec;
-    pragma Inline (To_Timespec);
-    --  Convert a Duration value to a timespec value. Note that in VxWorks,
-    --  timespec is always non-negative (since time_t is defined above as
-    --  unsigned long). This means that there is a potential problem if a
-    --  negative argument is passed for D. However, in actual usage, the
-    --  value of the input argument D is always non-negative, so no problem
-    --  arises in practice.
- 
     function To_Clock_Ticks (D : Duration) return int;
     --  Convert a duration value (in seconds) into clock ticks
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     ----------------------
--- 244,256 ----
     -- Time --
     ----------
  
     type clockid_t is new int;
  
     function To_Clock_Ticks (D : Duration) return int;
     --  Convert a duration value (in seconds) into clock ticks
  
     function clock_gettime
!      (clock_id : clockid_t; tp : access C_Time.timespec) return int;
     pragma Import (C, clock_gettime, "clock_gettime");
  
     ----------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-osinte__x32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__x32.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-osinte__x32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-osinte__x32.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,106 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 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-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- --
- -- 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 version is for Linux/x32
- 
- --  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
- 
-    --------------------
-    -- Get_Stack_Base --
-    --------------------
- 
-    function Get_Stack_Base (thread : pthread_t) return Address is
-       pragma Warnings (Off, thread);
- 
-    begin
-       return Null_Address;
-    end Get_Stack_Base;
- 
-    ------------------
-    -- pthread_init --
-    ------------------
- 
-    procedure pthread_init is
-    begin
-       null;
-    end pthread_init;
- 
-    -----------------
-    -- 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_Target_Priority --
-    ------------------------
- 
-    function To_Target_Priority
-      (Prio : System.Any_Priority) return Interfaces.C.int
-    is
-    begin
-       return Interfaces.C.int (Prio);
-    end To_Target_Priority;
- 
-    -----------------
-    -- 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_Integer (F * 10#1#E9));
-    end To_Timespec;
- 
- end System.OS_Interface;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-proinf.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-proinf.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-proinf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-proinf.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-proinf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-proinf.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-proinf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-proinf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1996-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-putaim.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-putaim.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-putaim.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-putaim.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-putaim.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-putaim.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-putaim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-putaim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-qnx.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-qnx.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-qnx.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-qnx.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2017-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNARL is 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,44 ****
  
  with Interfaces.C;
  
- with System.Parameters;
- 
  package System.QNX is
     pragma Preelaborate;
  
--- 37,42 ----
*************** package System.QNX is
*** 46,69 ****
     -- 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 --
     -----------
--- 44,51 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-solita.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-solita.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-solita.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-solita.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-solita.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-solita.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-solita.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-solita.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-stusta.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-stusta.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-stusta.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-stusta.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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.Stack_Usage.Tasking
*** 51,64 ****
     --  Compute the stack usage for a given task and saves it in the precise
     --  slot in System.Stack_Usage.Result_Array;
  
!    procedure Report_Impl (All_Tasks : Boolean; Do_Print : Boolean);
     --  Report the stack usage of either all tasks (All_Tasks = True) or of the
     --  current task (All_Task = False). If Print is True, then results are
!    --  printed on stderr
  
     procedure Convert
!      (TS  : System.Stack_Usage.Task_Result;
!       Res : out Stack_Usage_Result);
     --  Convert an object of type System.Stack_Usage in a Stack_Usage_Result
  
     -------------
--- 51,68 ----
     --  Compute the stack usage for a given task and saves it in the precise
     --  slot in System.Stack_Usage.Result_Array;
  
!    procedure Report_Impl
!      (All_Tasks   : Boolean;
!       Do_Print    : Boolean;
!       Result_Data : out Stack_Usage_Result_Array);
     --  Report the stack usage of either all tasks (All_Tasks = True) or of the
     --  current task (All_Task = False). If Print is True, then results are
!    --  printed on stderr. Otherwise, we fill the referred structure with the
!    --  stack information for later processing. We do this copy to avoid reading
!    --  System.Stack_Usage.Result_Array without locking the runtime.
  
     procedure Convert
!      (TS : System.Stack_Usage.Task_Result; Res : out Stack_Usage_Result);
     --  Convert an object of type System.Stack_Usage in a Stack_Usage_Result
  
     -------------
*************** package body System.Stack_Usage.Tasking
*** 66,73 ****
     -------------
  
     procedure Convert
!      (TS  : System.Stack_Usage.Task_Result;
!       Res : out Stack_Usage_Result) is
     begin
        Res := TS;
     end Convert;
--- 70,76 ----
     -------------
  
     procedure Convert
!      (TS : System.Stack_Usage.Task_Result; Res : out Stack_Usage_Result) is
     begin
        Res := TS;
     end Convert;
*************** package body System.Stack_Usage.Tasking
*** 77,85 ****
     ---------------------
  
     procedure Report_For_Task (Id : System.Tasking.Task_Id) is
     begin
!       System.Stack_Usage.Compute_Result (Id.Common.Analyzer);
!       System.Stack_Usage.Report_Result (Id.Common.Analyzer);
     end Report_For_Task;
  
     -----------------------
--- 80,117 ----
     ---------------------
  
     procedure Report_For_Task (Id : System.Tasking.Task_Id) is
+       use type System.Tasking.Task_Id;
     begin
!       --  Special treatment of the environment task that uses a Stack_Analyzer
!       --  object that is not part of its ATCB.
!       if Id = System.Task_Primitives.Operations.Environment_Task then
! 
!          --  Check whether we are tracking stack usage for the environment task
!          if Compute_Environment_Task then
!             Compute_Result (Environment_Task_Analyzer);
!             Report_Result (Environment_Task_Analyzer);
! 
!          else
!             Put_Line
!               ("Stack usage for environment task needs GNAT_STACK_LIMIT");
!          end if;
! 
!       --  Regular task
! 
!       else
!          declare
!             Name_Length : constant Natural :=
!               Natural'Min (Id.Common.Task_Image_Len, Task_Name_Length);
!          begin
!             --  Skip the task if it hasn't initialized the stack pattern yet
!             if Id.Common.Task_Image (1 .. Name_Length) =
!                Id.Common.Analyzer.Task_Name (1 .. Name_Length)
!             then
!                System.Stack_Usage.Compute_Result (Id.Common.Analyzer);
!                System.Stack_Usage.Report_Result (Id.Common.Analyzer);
!             end if;
!          end;
!       end if;
     end Report_For_Task;
  
     -----------------------
*************** package body System.Stack_Usage.Tasking
*** 104,109 ****
--- 136,144 ----
  
              --  Calculate the task usage for a given task
  
+             --  Skip if the task is terminated because the ATCB can be already
+             --  destroyed.
+ 
              if not System.Tasking.Stages.Terminated (Id) then
                 Report_For_Task (Id);
              end if;
*************** package body System.Stack_Usage.Tasking
*** 133,142 ****
     -- Report_Impl --
     -----------------
  
!    procedure Report_Impl (All_Tasks : Boolean; Do_Print : Boolean) is
     begin
  
!       --  Lock the runtime
  
        System.Task_Primitives.Operations.Lock_RTS;
  
--- 168,180 ----
     -- Report_Impl --
     -----------------
  
!    procedure Report_Impl
!      (All_Tasks   : Boolean;
!       Do_Print    : Boolean;
!       Result_Data : out Stack_Usage_Result_Array) is
     begin
  
!       --  Lock the runtime to compute and display stack usage
  
        System.Task_Primitives.Operations.Lock_RTS;
  
*************** package body System.Stack_Usage.Tasking
*** 148,156 ****
           Compute_Current_Task;
        end if;
  
!       --  Output results
        if Do_Print then
           System.Stack_Usage.Output_Results;
        end if;
  
        --  Unlock the runtime
--- 186,207 ----
           Compute_Current_Task;
        end if;
  
!       --  Output results, either printing it or in the out parameter
! 
        if Do_Print then
           System.Stack_Usage.Output_Results;
+ 
+       else
+          --  Extract data from the snapshot in System.Stack_Usage.Result_Array
+ 
+          pragma Assert
+            (System.Stack_Usage.Result_Array = null or else
+             (System.Stack_Usage.Result_Array'First = Result_Data'First and then
+              System.Stack_Usage.Result_Array'Last = Result_Data'Last));
+ 
+          for J in Result_Data'Range loop
+             Convert (System.Stack_Usage.Result_Array (J), Result_Data (J));
+          end loop;
        end if;
  
        --  Unlock the runtime
*************** package body System.Stack_Usage.Tasking
*** 164,171 ****
     ----------------------
  
     procedure Report_All_Tasks is
     begin
!       Report_Impl (True, True);
     end Report_All_Tasks;
  
     -------------------------
--- 215,223 ----
     ----------------------
  
     procedure Report_All_Tasks is
+       Empty_Result_Array : Stack_Usage_Result_Array (1 .. 0);
     begin
!       Report_Impl (True, True, Empty_Result_Array);
     end Report_All_Tasks;
  
     -------------------------
*************** package body System.Stack_Usage.Tasking
*** 185,197 ****
  
     function Get_All_Tasks_Usage return Stack_Usage_Result_Array is
        Res : Stack_Usage_Result_Array
!         (1 .. System.Stack_Usage.Result_Array'Length);
     begin
!       Report_Impl (True, False);
! 
!       for J in Res'Range loop
!          Convert (System.Stack_Usage.Result_Array (J), Res (J));
!       end loop;
  
        return Res;
     end Get_All_Tasks_Usage;
--- 237,247 ----
  
     function Get_All_Tasks_Usage return Stack_Usage_Result_Array is
        Res : Stack_Usage_Result_Array
!         (1 ..
!            (if System.Stack_Usage.Result_Array = null then 0
!             else System.Stack_Usage.Result_Array'Length));
     begin
!       Report_Impl (True, False, Res);
  
        return Res;
     end Get_All_Tasks_Usage;
*************** package body System.Stack_Usage.Tasking
*** 201,231 ****
     ----------------------------
  
     function Get_Current_Task_Usage return Stack_Usage_Result is
!       Res : Stack_Usage_Result;
!       Original : System.Stack_Usage.Task_Result;
!       Found : Boolean := False;
!    begin
  
!       Report_Impl (False, False);
  
!       --  Look for the task info in System.Stack_Usage.Result_Array;
!       --  the search is based on task name
  
!       for T in System.Stack_Usage.Result_Array'Range loop
!          if System.Stack_Usage.Result_Array (T).Task_Name =
!            System.Tasking.Self.Common.Analyzer.Task_Name
           then
!             Original := System.Stack_Usage.Result_Array (T);
              Found := True;
              exit;
           end if;
        end loop;
  
!       --  Be sure a task has been found
  
!       pragma Assert (Found);
  
-       Convert (Original, Res);
        return Res;
     end Get_Current_Task_Usage;
  
--- 251,320 ----
     ----------------------------
  
     function Get_Current_Task_Usage return Stack_Usage_Result is
!       use type System.Tasking.Task_Id;
  
!       Self_ID     : constant System.Tasking.Task_Id := System.Tasking.Self;
!       Is_Env_Task : constant Boolean :=
!         Self_ID = System.Task_Primitives.Operations.Environment_Task;
  
!       Res_Array : Stack_Usage_Result_Array
!         (1 ..
!            (if System.Stack_Usage.Result_Array = null then 0
!             else System.Stack_Usage.Result_Array'Length));
!       Res       : Stack_Usage_Result;
!       Found     : Boolean := False;
  
!    begin
!       Report_Impl (False, False, Res_Array);
! 
!       --  Look for the task info in the copy of System.Stack_Usage.Result_Array
!       --  (the search is based on task name).
! 
!       for Stack_Usage of Res_Array loop
!          if Stack_Usage.Task_Name = Self_ID.Common.Analyzer.Task_Name or else
!            (Is_Env_Task and then
!             Stack_Usage.Task_Name (1 .. 16) = "ENVIRONMENT TASK")
           then
!             Res := Stack_Usage;
              Found := True;
              exit;
           end if;
        end loop;
  
!       if not Found then
!          --  Not found because the task is not part of those for which we store
!          --  the results. Hence we need to compute now.
  
!          --  Environment task
!          if Is_Env_Task then
!             Res.Task_Name :=
!               "ENVIRONMENT TASK" & (1 .. Task_Name_Length - 16 => ASCII.NUL);
! 
!             if Compute_Environment_Task then
!                Res.Stack_Size := Environment_Task_Analyzer.Stack_Size;
!                Res.Value :=
!                  Stack_Size
!                    (To_Stack_Address
!                       (Environment_Task_Analyzer.Topmost_Touched_Mark),
!                     To_Stack_Address (Environment_Task_Analyzer.Stack_Base));
!             else
!                Res.Stack_Size := 0;
!                Res.Value := 0;
!             end if;
! 
!          --  Other tasks
! 
!          else
!             Res.Task_Name := Self_ID.Common.Analyzer.Task_Name;
!             Res.Stack_Size := Self_ID.Common.Analyzer.Stack_Size;
!             Res.Value :=
!               Stack_Size
!                 (To_Stack_Address
!                    (Self_ID.Common.Analyzer.Topmost_Touched_Mark),
!                  To_Stack_Address (Self_ID.Common.Analyzer.Stack_Base));
!          end if;
!       end if;
  
        return Res;
     end Get_Current_Task_Usage;
  
*************** package body System.Stack_Usage.Tasking
*** 248,258 ****
  
        declare
           T_Name : constant String :=
!                     Obj.Task_Name (Obj.Task_Name'First .. Pos);
        begin
           Put_Line
!            ("| " & T_Name & " | " & Natural'Image (Obj.Stack_Size) &
!             Natural'Image (Obj.Value));
        end;
     end Print;
  
--- 337,350 ----
  
        declare
           T_Name : constant String :=
!            Obj.Task_Name (Obj.Task_Name'First .. Pos);
        begin
+          --  Notify when we don't know stack usage
           Put_Line
!            ("| " & T_Name & "|" &
!             (if Obj.Stack_Size = 0 then " NA | NA"
!              else Natural'Image (Obj.Stack_Size) & " |" &
!                   Natural'Image (Obj.Value)));
        end;
     end Print;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-stusta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-stusta.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-stusta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-stusta.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taasde.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taasde.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taasde.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taasde.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taasde.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taasde.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taasde.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taasde.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tadeca.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadeca.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tadeca.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadeca.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tadeca.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadeca.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tadeca.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadeca.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tadert.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadert.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tadert.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadert.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tadert.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadert.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tadert.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tadert.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                S p e c                                   --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taenca.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taenca.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taenca.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taenca.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taenca.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taenca.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taenca.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taenca.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprob.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprob.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprob.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprob.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprob.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprob.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprob.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprob.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Primitives.Operation
*** 473,510 ****
     --  The call to Stack_Guard has no effect if guard pages are not used on
     --  the target, or if guard pages are automatically provided by the system.
  
-    ------------------------
-    -- Suspension objects --
-    ------------------------
- 
-    --  These subprograms provide the functionality required for synchronizing
-    --  on a suspension object. Tasks can suspend execution and relinquish the
-    --  processors until the condition is signaled.
- 
-    function Current_State (S : Suspension_Object) return Boolean;
-    --  Return the state of the suspension object
- 
-    procedure Set_False (S : in out Suspension_Object);
-    --  Set the state of the suspension object to False
- 
-    procedure Set_True (S : in out Suspension_Object);
-    --  Set the state of the suspension object to True. If a task were
-    --  suspended on the protected object then this task is released (and
-    --  the state of the suspension object remains set to False).
- 
-    procedure Suspend_Until_True (S : in out Suspension_Object);
-    --  If the state of the suspension object is True then the calling task
-    --  continues its execution, and the state is set to False. If the state
-    --  of the object is False then the task is suspended on the suspension
-    --  object until a Set_True operation is executed. Program_Error is raised
-    --  if another task is already waiting on that suspension object.
- 
-    procedure Initialize (S : in out Suspension_Object);
-    --  Initialize the suspension object
- 
-    procedure Finalize (S : in out Suspension_Object);
-    --  Finalize the suspension object
- 
     -----------------------------------------
     -- Runtime System Debugging Interfaces --
     -----------------------------------------
--- 473,478 ----
*************** package System.Task_Primitives.Operation
*** 562,565 ****
--- 530,543 ----
     --  Ada Task Control Block. Has no effect if the underlying operating system
     --  does not support this capability.
  
+    function Is_Task_Context return Boolean
+    with Inline;
+    --  This function returns False if all the following points hold:
+    --
+    --  1. Abort_Defer should not be called in an interrupt context on the
+    --     current operating system.
+    --  2. The current execution is in the context of an interrupt context.
+    --
+    --  Otherwise this function returns True.
+ 
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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
*** 110,124 ****
        return False;
     end Continue_Task;
  
-    -------------------
-    -- Current_State --
-    -------------------
- 
-    function Current_State (S : Suspension_Object) return Boolean is
-    begin
-       return False;
-    end Current_State;
- 
     ----------------------
     -- Environment_Task --
     ----------------------
--- 110,115 ----
*************** package body System.Task_Primitives.Oper
*** 161,175 ****
        null;
     end Exit_Task;
  
-    --------------
-    -- Finalize --
-    --------------
- 
-    procedure Finalize (S : in out Suspension_Object) is
-    begin
-       null;
-    end Finalize;
- 
     -------------------
     -- Finalize_Lock --
     -------------------
--- 152,157 ----
*************** package body System.Task_Primitives.Oper
*** 221,231 ****
        raise Program_Error with "tasking not implemented on this configuration";
     end Initialize;
  
-    procedure Initialize (S : in out Suspension_Object) is
-    begin
-       null;
-    end Initialize;
- 
     ---------------------
     -- Initialize_Lock --
     ---------------------
--- 203,208 ----
*************** package body System.Task_Primitives.Oper
*** 345,359 ****
        null;
     end Set_Ceiling;
  
-    ---------------
-    -- Set_False --
-    ---------------
- 
-    procedure Set_False (S : in out Suspension_Object) is
-    begin
-       null;
-    end Set_False;
- 
     ------------------
     -- Set_Priority --
     ------------------
--- 322,327 ----
*************** package body System.Task_Primitives.Oper
*** 376,390 ****
        null;
     end Set_Task_Affinity;
  
-    --------------
-    -- Set_True --
-    --------------
- 
-    procedure Set_True (S : in out Suspension_Object) is
-    begin
-       null;
-    end Set_True;
- 
     -----------
     -- Sleep --
     -----------
--- 344,349 ----
*************** package body System.Task_Primitives.Oper
*** 434,448 ****
        return False;
     end Stop_Task;
  
-    ------------------------
-    -- Suspend_Until_True --
-    ------------------------
- 
-    procedure Suspend_Until_True (S : in out Suspension_Object) is
-    begin
-       null;
-    end Suspend_Until_True;
- 
     -----------------
     -- Timed_Delay --
     -----------------
--- 393,398 ----
*************** package body System.Task_Primitives.Oper
*** 540,543 ****
--- 490,501 ----
        null;
     end Yield;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__linux.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__linux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__linux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.OS_Primitives;
*** 43,58 ****
  with System.Task_Info;
  with System.Tasking.Debug;
  
- 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 Interfaces;
  
--- 43,51 ----
*************** package body System.Task_Primitives.Oper
*** 1105,1292 ****
     end Abort_Task;
  
     ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (S : in out Suspension_Object) is
-       Result : C.int;
- 
-    begin
-       --  Initialize internal state (always to False (RM D.10(6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := pthread_mutex_init (S.L'Access, null);
- 
-       pragma Assert (Result in 0 | ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       --  Initialize internal condition variable
- 
-       Result := pthread_cond_init (S.CV'Access, null);
- 
-       pragma Assert (Result in 0 | 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 : 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 : 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 : 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 : 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
-          --  (RM D.10(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). This should not
-                --  happen with the current Linux implementation of pthread, but
-                --  POSIX does not guarantee it so this may change in future.
- 
-                Result := pthread_cond_wait (S.CV'Access, S.L'Access);
-                pragma Assert (Result in 0 | 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 --
     ----------------
  
--- 1098,1103 ----
*************** package body System.Task_Primitives.Oper
*** 1545,1548 ****
--- 1356,1367 ----
        end if;
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Info;
*** 45,60 ****
  with System.Tasking.Debug;
  with System.Win32.Ext;
  
- 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 SSL renames System.Soft_Links;
- 
     use Interfaces.C;
     use Interfaces.C.Strings;
  
--- 45,51 ----
*************** package body System.Task_Primitives.Oper
*** 749,754 ****
--- 740,773 ----
        Get_Stack_Bounds
          (Self_ID.Common.Compiler_Data.Pri_Stack_Info.Base'Address,
           Self_ID.Common.Compiler_Data.Pri_Stack_Info.Limit'Address);
+ 
+       if Self_ID.Common.Task_Image_Len > 0 then
+          declare
+             function Set_Thread_Description
+               (H : Thread_Id; Descr : Address; Length : Integer)
+                return Integer;
+             pragma
+               Import
+                 (C, Set_Thread_Description, "__gnat_set_thread_description");
+ 
+             Nul_Terminated_Image : constant String :=
+               Self_ID.Common.Task_Image
+                 (Self_ID.Common.Task_Image'First
+                  ..
+                    Self_ID.Common.Task_Image'First
+                    + Self_ID.Common.Task_Image_Len
+                    - 1)
+               & ASCII.NUL;
+ 
+             Result : constant Integer :=
+               Set_Thread_Description
+                 (Self_ID.Common.LL.Thread,
+                  Nul_Terminated_Image'Address,
+                  Self_ID.Common.Task_Image_Len);
+          begin
+             pragma Assert (Result = 1);
+          end;
+       end if;
     end Enter_Task;
  
     -------------------
*************** package body System.Task_Primitives.Oper
*** 1042,1204 ****
     end RT_Resolution;
  
     ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (S : in out Suspension_Object) is
-    begin
-       --  Initialize internal state. It is always initialized to False (ARM
-       --  D.10 par. 6).
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       InitializeCriticalSection (S.L'Access);
- 
-       --  Initialize internal condition variable
- 
-       S.CV := CreateEvent (null, Win32.TRUE, Win32.FALSE, Null_Ptr);
-       pragma Assert (S.CV /= 0);
-    end Initialize;
- 
-    --------------
-    -- Finalize --
-    --------------
- 
-    procedure Finalize (S : in out Suspension_Object) is
-       Result : BOOL;
- 
-    begin
-       --  Destroy internal mutex
- 
-       DeleteCriticalSection (S.L'Access);
- 
-       --  Destroy internal condition variable
- 
-       Result := CloseHandle (S.CV);
-       pragma Assert (Result = Win32.TRUE);
-    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
-    begin
-       SSL.Abort_Defer.all;
- 
-       EnterCriticalSection (S.L'Access);
- 
-       S.State := False;
- 
-       LeaveCriticalSection (S.L'Access);
- 
-       SSL.Abort_Undefer.all;
-    end Set_False;
- 
-    --------------
-    -- Set_True --
-    --------------
- 
-    procedure Set_True (S : in out Suspension_Object) is
-       Result : BOOL;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       EnterCriticalSection (S.L'Access);
- 
-       --  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 := SetEvent (S.CV);
-          pragma Assert (Result = Win32.TRUE);
- 
-       else
-          S.State := True;
-       end if;
- 
-       LeaveCriticalSection (S.L'Access);
- 
-       SSL.Abort_Undefer.all;
-    end Set_True;
- 
-    ------------------------
-    -- Suspend_Until_True --
-    ------------------------
- 
-    procedure Suspend_Until_True (S : in out Suspension_Object) is
-       Result      : DWORD;
-       Result_Bool : BOOL;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       EnterCriticalSection (S.L'Access);
- 
-       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).
- 
-          LeaveCriticalSection (S.L'Access);
- 
-          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;
- 
-             LeaveCriticalSection (S.L'Access);
- 
-             SSL.Abort_Undefer.all;
- 
-          else
-             S.Waiting := True;
- 
-             --  Must reset CV BEFORE L is unlocked
- 
-             Result_Bool := ResetEvent (S.CV);
-             pragma Assert (Result_Bool = Win32.TRUE);
- 
-             LeaveCriticalSection (S.L'Access);
- 
-             SSL.Abort_Undefer.all;
- 
-             Result := WaitForSingleObject (S.CV, Wait_Infinite);
-             pragma Assert (Result = 0);
-          end if;
-       end if;
-    end Suspend_Until_True;
- 
-    ----------------
     -- Check_Exit --
     ----------------
  
--- 1061,1066 ----
*************** package body System.Task_Primitives.Oper
*** 1358,1361 ****
--- 1220,1231 ----
        end if;
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Primitives;
*** 50,65 ****
  with System.Task_Info;
  with System.Tasking.Debug;
  
- 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 Interfaces.C;
  
--- 50,58 ----
*************** package body System.Task_Primitives.Oper
*** 913,1135 ****
     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 (RM D.10 (6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := pthread_mutexattr_init (Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutex_init (S.L'Access, Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-       pragma Assert (Result = 0);
- 
-       --  Initialize internal condition variable
- 
-       Result := pthread_condattr_init (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);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
- 
-       else
-          Result := GNAT_pthread_condattr_setup (Cond_Attr'Access);
-          pragma Assert (Result = 0);
-       end if;
- 
-       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);
- 
-          Result := pthread_condattr_destroy (Cond_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_condattr_destroy (Cond_Attr'Access);
-       pragma Assert (Result = 0);
-    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 (RM D.10(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
-          --  (RM D.10(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 --
     ----------------
  
--- 906,911 ----
*************** package body System.Task_Primitives.Oper
*** 1327,1330 ****
--- 1103,1114 ----
        null;
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__qnx.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__qnx.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__qnx.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Primitives;
*** 51,66 ****
  with System.Task_Info;
  with System.Tasking.Debug;
  
- 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 Interfaces.C;
  
--- 51,59 ----
*************** package body System.Task_Primitives.Oper
*** 96,101 ****
--- 89,110 ----
     Unblocked_Signal_Mask : aliased sigset_t;
     --  The set of signals that should unblocked in all tasks
  
+    Default_Signal_Mask : aliased sigset_t;
+    --  Default signal mask, used to restore signal mask after thread creation
+ 
+    Default_Signal_Mask_Initialized : Boolean := False;
+    --  Allow to not enable default signals if the default signal mask failed to
+    --  initialize.
+ 
+    procedure Disable_Signals;
+    --  Disable signals before calling pthread_create to avoid a potential
+    --  memory leak on QNX.
+ 
+    procedure Enable_Signals;
+    --  Enable signals after pthread_create and in the created task. Since the
+    --  created task inherits the disabled signals from the parent they have to
+    --  be enabled for each task separately.
+ 
     --  The followings are internal configuration constants needed
  
     Next_Serial_Number : Task_Serial_Number := 100;
*************** package body System.Task_Primitives.Oper
*** 654,659 ****
--- 663,669 ----
  
     procedure Enter_Task (Self_ID : Task_Id) is
     begin
+       Enable_Signals;
        Self_ID.Common.LL.LWP := lwp_self;
  
        Specific.Set (Self_ID);
*************** package body System.Task_Primitives.Oper
*** 765,771 ****
  
        function Thread_Body_Access is new
          Ada.Unchecked_Conversion (System.Address, Thread_Body);
- 
     begin
        Adjusted_Stack_Size :=
           Interfaces.C.size_t (Stack_Size + Alternate_Stack_Size);
--- 775,780 ----
*************** package body System.Task_Primitives.Oper
*** 840,849 ****
  
        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.
  
        --  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
--- 849,859 ----
  
        pragma Assert (Result = 0);
  
!       --  (QMS3263) lists PR 2894086. This defect causes a memory leak when
!       --  pthread_create is interrupted by a signal and later resumed. To avoid
!       --  avoid such a leak the document suggests to disable signals while
!       --  calling pthread_create. The signal mask of the calling thread is
!       --  restored after the call to pthread_create.
  
        --  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
*************** package body System.Task_Primitives.Oper
*** 851,862 ****
--- 861,874 ----
        --  Restricted.Stages is used). One can verify that by inspecting the
        --  Task_Wrapper procedures.
  
+       Disable_Signals;
        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);
+       Enable_Signals;
  
        Succeeded := Result = 0;
  
*************** package body System.Task_Primitives.Oper
*** 914,1136 ****
     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 (RM D.10 (6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := pthread_mutexattr_init (Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutex_init (S.L'Access, Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-       pragma Assert (Result = 0);
- 
-       --  Initialize internal condition variable
- 
-       Result := pthread_condattr_init (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);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
- 
-       else
-          Result := GNAT_pthread_condattr_setup (Cond_Attr'Access);
-          pragma Assert (Result = 0);
-       end if;
- 
-       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);
- 
-          Result := pthread_condattr_destroy (Cond_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_condattr_destroy (Cond_Attr'Access);
-       pragma Assert (Result = 0);
-    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 (RM D.10(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
-          --  (RM D.10(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 --
     ----------------
  
--- 926,931 ----
*************** package body System.Task_Primitives.Oper
*** 1276,1281 ****
--- 1071,1080 ----
           end if;
        end loop;
  
+       Result := pthread_sigmask
+          (SIG_SETMASK, null, Default_Signal_Mask'Access);
+       Default_Signal_Mask_Initialized := Result = 0;
+ 
        --  Initialize the lock used to synchronize chain of all ATCBs
  
        Initialize_Lock (Single_RTS_Lock'Access, RTS_Lock_Level);
*************** package body System.Task_Primitives.Oper
*** 1362,1365 ****
--- 1161,1220 ----
        pragma Assert (Result = 0);
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Disable_Signals --
+    ---------------------
+ 
+    procedure Disable_Signals
+    is
+       Set    : aliased sigset_t;
+       Result : Interfaces.C.int;
+    begin
+       --  If the default signal mask is not initialized there is no point in
+       --  disabling signals since we can't enable them again. Not enabling them
+       --  might impact the runtimes functionality so we rather accept the
+       --  possible memory leak.
+       if not Default_Signal_Mask_Initialized then
+          return;
+       end if;
+ 
+       --  If any of the operations of setting up the signal mask fails we abort
+       --  disabling the signals. The function to enable the signals doesn't
+       --  need to care about this. It will simply restore the default signal
+       --  mask if it was successfully initialized. If the signals are not
+       --  disabled this is a no-op.
+       Result := sigemptyset (Set'Access);
+       if Result /= 0 then
+          return;
+       end if;
+       for S in SIGHUP .. SIGXFSZ loop
+          Result := sigaddset (Set'Access, Signal (S));
+          if Result /= 0 then
+             return;
+          end if;
+       end loop;
+       Result := pthread_sigmask (SIG_BLOCK, Set'Access, null);
+       pragma Assert (Result = 0);
+    end Disable_Signals;
+ 
+    --------------------
+    -- Enable_Signals --
+    --------------------
+ 
+    procedure Enable_Signals
+    is
+       Result : Interfaces.C.int;
+    begin
+       if not Default_Signal_Mask_Initialized then
+          return;
+       end if;
+       Result := pthread_sigmask
+          (SIG_SETMASK, Default_Signal_Mask'Access, null);
+       pragma Assert (Result = 0);
+    end Enable_Signals;
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__rtems.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__rtems.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__rtems.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.OS_Primitives;
*** 44,59 ****
  with System.Task_Info;
  with System.Tasking.Debug;
  
- 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 Interfaces.C;
  
--- 44,52 ----
*************** package body System.Task_Primitives.Oper
*** 923,1145 ****
     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 (RM D.10 (6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := pthread_mutexattr_init (Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutex_init (S.L'Access, Mutex_Attr'Access);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_mutexattr_destroy (Mutex_Attr'Access);
-       pragma Assert (Result = 0);
- 
-       --  Initialize internal condition variable
- 
-       Result := pthread_condattr_init (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);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
- 
-       else
-          Result := GNAT_pthread_condattr_setup (Cond_Attr'Access);
-          pragma Assert (Result = 0);
-       end if;
- 
-       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);
- 
-          Result := pthread_condattr_destroy (Cond_Attr'Access);
-          pragma Assert (Result = 0);
- 
-          --  Storage_Error is propagated as intended if the allocation of the
-          --  underlying OS entities fails.
- 
-          raise Storage_Error;
-       end if;
- 
-       Result := pthread_condattr_destroy (Cond_Attr'Access);
-       pragma Assert (Result = 0);
-    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 (RM D.10(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
-          --  (RM D.10(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 --
     ----------------
  
--- 916,921 ----
*************** package body System.Task_Primitives.Oper
*** 1325,1328 ****
--- 1101,1112 ----
        null;
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__solaris.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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 Interfaces.C;
  
+ with System.C_Time;
  with System.Interrupt_Management;
  with System.Multiprocessors;
  with System.OS_Constants;
*************** pragma Warnings (Off);
*** 47,62 ****
  with System.OS_Lib;
  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 Interfaces.C;
  
--- 48,56 ----
*************** package body System.Task_Primitives.Oper
*** 762,773 ****
     ---------------------
  
     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;
  
     -------------------
--- 756,767 ----
     ---------------------
  
     function Monotonic_Clock return Duration is
!       TS     : aliased C_Time.timespec;
        Result : Interfaces.C.int;
     begin
        Result := clock_gettime (OSC.CLOCK_RT_Ada, TS'Unchecked_Access);
        pragma Assert (Result = 0);
!       return C_Time.To_Duration (TS);
     end Monotonic_Clock;
  
     -------------------
*************** package body System.Task_Primitives.Oper
*** 775,787 ****
     -------------------
  
     function RT_Resolution return Duration is
!       TS     : aliased timespec;
        Result : Interfaces.C.int;
     begin
        Result := clock_getres (OSC.CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return To_Duration (TS);
     end RT_Resolution;
  
     -----------
--- 769,781 ----
     -------------------
  
     function RT_Resolution return Duration is
!       TS     : aliased C_Time.timespec;
        Result : Interfaces.C.int;
     begin
        Result := clock_getres (OSC.CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return C_Time.To_Duration (TS);
     end RT_Resolution;
  
     -----------
*************** package body System.Task_Primitives.Oper
*** 1175,1181 ****
        Base_Time  : constant Duration := Monotonic_Clock;
        Check_Time : Duration := Base_Time;
        Abs_Time   : Duration;
!       Request    : aliased timespec;
        Result     : Interfaces.C.int;
  
     begin
--- 1169,1175 ----
        Base_Time  : constant Duration := Monotonic_Clock;
        Check_Time : Duration := Base_Time;
        Abs_Time   : Duration;
!       Request    : aliased C_Time.timespec;
        Result     : Interfaces.C.int;
  
     begin
*************** package body System.Task_Primitives.Oper
*** 1189,1195 ****
           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;
  
--- 1183,1189 ----
           else Duration'Min (Check_Time + Max_Sensible_Delay, Time));
  
        if Abs_Time > Check_Time then
!          Request := C_Time.To_Timespec (Abs_Time);
           loop
              exit when Self_ID.Pending_ATC_Level < Self_ID.ATC_Nesting_Level;
  
*************** package body System.Task_Primitives.Oper
*** 1230,1236 ****
        Base_Time  : constant Duration := Monotonic_Clock;
        Check_Time : Duration := Base_Time;
        Abs_Time   : Duration;
!       Request    : aliased timespec;
        Result     : Interfaces.C.int;
        Yielded    : Boolean := False;
  
--- 1224,1230 ----
        Base_Time  : constant Duration := Monotonic_Clock;
        Check_Time : Duration := Base_Time;
        Abs_Time   : Duration;
!       Request    : aliased C_Time.timespec;
        Result     : Interfaces.C.int;
        Yielded    : Boolean := False;
  
*************** package body System.Task_Primitives.Oper
*** 1243,1249 ****
           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;
  
           pragma Assert (Check_Sleep (Delay_Sleep));
--- 1237,1243 ----
           else Duration'Min (Check_Time + Max_Sensible_Delay, Time));
  
        if Abs_Time > Check_Time then
!          Request := C_Time.To_Timespec (Abs_Time);
           Self_ID.Common.State := Delay_Sleep;
  
           pragma Assert (Check_Sleep (Delay_Sleep));
*************** package body System.Task_Primitives.Oper
*** 1579,1762 ****
     end Check_Finalize_Lock;
  
     ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (S : in out Suspension_Object) is
-       Result : Interfaces.C.int;
- 
-    begin
-       --  Initialize internal state (always to zero (RM D.10(6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       Result := mutex_init (S.L'Access, USYNC_THREAD, System.Null_Address);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result = ENOMEM then
-          raise Storage_Error with "Failed to allocate a lock";
-       end if;
- 
-       --  Initialize internal condition variable
- 
-       Result := cond_init (S.CV'Access, USYNC_THREAD, 0);
-       pragma Assert (Result = 0 or else Result = ENOMEM);
- 
-       if Result /= 0 then
-          Result := 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 := mutex_destroy (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       --  Destroy internal condition variable
- 
-       Result := 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 := mutex_lock (S.L'Access);
-       pragma Assert (Result = 0);
- 
-       S.State := False;
- 
-       Result := 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 := 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 := cond_signal (S.CV'Access);
-          pragma Assert (Result = 0);
- 
-       else
-          S.State := True;
-       end if;
- 
-       Result := 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 := 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
-          --  (RM D.10(10)).
- 
-          Result := 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 := 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 := mutex_unlock (S.L'Access);
-          pragma Assert (Result = 0);
- 
-          SSL.Abort_Undefer.all;
-       end if;
-    end Suspend_Until_True;
- 
-    ----------------
     -- Check_Exit --
     ----------------
  
--- 1573,1578 ----
*************** package body System.Task_Primitives.Oper
*** 1996,1999 ****
--- 1812,1823 ----
        end if;
     end Set_Task_Affinity;
  
+    ---------------------
+    -- Is_Task_Context --
+    ---------------------
+ 
+    function Is_Task_Context return Boolean is
+    begin
+       return True;
+    end Is_Task_Context;
  end System.Task_Primitives.Operations;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taprop__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taprop__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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,62 ****
  
  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
- --  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.
- 
  with System.Task_Info;
  with System.VxWorks.Ext;
  
  package body System.Task_Primitives.Operations is
  
     package OSC renames System.OS_Constants;
-    package SSL renames System.Soft_Links;
  
     use System.OS_Interface;
     use System.OS_Locks;
--- 38,56 ----
  
  with Interfaces.C;
  
+ with System.C_Time;
  with System.Float_Control;
  with System.Interrupt_Management;
  with System.Multiprocessors;
  with System.OS_Constants;
  with System.Tasking.Debug;
  
  with System.Task_Info;
  with System.VxWorks.Ext;
  
  package body System.Task_Primitives.Operations is
  
     package OSC renames System.OS_Constants;
  
     use System.OS_Interface;
     use System.OS_Locks;
*************** package body System.Task_Primitives.Oper
*** 173,182 ****
     procedure Install_Signal_Handlers;
     --  Install the default signal handlers for the current task
  
-    function Is_Task_Context return Boolean;
-    --  This function returns True if the current execution is in the context of
-    --  a task, and False if it is an interrupt context.
- 
     type Set_Stack_Limit_Proc_Acc is access procedure;
     pragma Convention (C, Set_Stack_Limit_Proc_Acc);
  
--- 167,172 ----
*************** package body System.Task_Primitives.Oper
*** 681,692 ****
     ---------------------
  
     function Monotonic_Clock return Duration is
!       TS     : aliased timespec;
        Result : int;
     begin
        Result := clock_gettime (OSC.CLOCK_RT_Ada, TS'Unchecked_Access);
        pragma Assert (Result = 0);
!       return To_Duration (TS);
     end Monotonic_Clock;
  
     -------------------
--- 671,682 ----
     ---------------------
  
     function Monotonic_Clock return Duration is
!       TS     : aliased C_Time.timespec;
        Result : int;
     begin
        Result := clock_gettime (OSC.CLOCK_RT_Ada, TS'Unchecked_Access);
        pragma Assert (Result = 0);
!       return C_Time.To_Duration (TS);
     end Monotonic_Clock;
  
     -------------------
*************** package body System.Task_Primitives.Oper
*** 987,1170 ****
     end Abort_Task;
  
     ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize (S : in out Suspension_Object) is
-    begin
-       --  Initialize internal state (always to False (RM D.10(6)))
- 
-       S.State := False;
-       S.Waiting := False;
- 
-       --  Initialize internal mutex
- 
-       --  Use simpler binary semaphore instead of VxWorks mutual exclusion
-       --  semaphore, because we don't need the fancier semantics and their
-       --  overhead.
- 
-       S.L := semBCreate (SEM_Q_FIFO, SEM_FULL);
- 
-       --  Initialize internal condition variable
- 
-       S.CV := semBCreate (SEM_Q_FIFO, SEM_EMPTY);
-    end Initialize;
- 
-    --------------
-    -- Finalize --
-    --------------
- 
-    procedure Finalize (S : in out Suspension_Object) is
-       pragma Unmodified (S);
-       --  S may be modified on other targets, but not on VxWorks
- 
-       Result : STATUS;
- 
-    begin
-       --  Destroy internal mutex
- 
-       Result := semDelete (S.L);
-       pragma Assert (Result = OK);
- 
-       --  Destroy internal condition variable
- 
-       Result := semDelete (S.CV);
-       pragma Assert (Result = OK);
-    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 : STATUS;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       Result := semTake (S.L, WAIT_FOREVER);
-       pragma Assert (Result = OK);
- 
-       S.State := False;
- 
-       Result := semGive (S.L);
-       pragma Assert (Result = OK);
- 
-       SSL.Abort_Undefer.all;
-    end Set_False;
- 
-    --------------
-    -- Set_True --
-    --------------
- 
-    procedure Set_True (S : in out Suspension_Object) is
-       Result : STATUS;
- 
-    begin
-       --  Set_True can be called from an interrupt context, in which case
-       --  Abort_Defer is undefined.
- 
-       if Is_Task_Context then
-          SSL.Abort_Defer.all;
-       end if;
- 
-       Result := semTake (S.L, WAIT_FOREVER);
-       pragma Assert (Result = OK);
- 
-       --  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 (RM D.10 (9)). Otherwise, it just leaves the state to
-       --  True.
- 
-       if S.Waiting then
-          S.Waiting := False;
-          S.State := False;
- 
-          Result := semGive (S.CV);
-          pragma Assert (Result = OK);
-       else
-          S.State := True;
-       end if;
- 
-       Result := semGive (S.L);
-       pragma Assert (Result = OK);
- 
-       --  Set_True can be called from an interrupt context, in which case
-       --  Abort_Undefer is undefined.
- 
-       if Is_Task_Context then
-          SSL.Abort_Undefer.all;
-       end if;
- 
-    end Set_True;
- 
-    ------------------------
-    -- Suspend_Until_True --
-    ------------------------
- 
-    procedure Suspend_Until_True (S : in out Suspension_Object) is
-       Result : STATUS;
- 
-    begin
-       SSL.Abort_Defer.all;
- 
-       Result := semTake (S.L, WAIT_FOREVER);
- 
-       if S.Waiting then
- 
-          --  Program_Error must be raised upon calling Suspend_Until_True
-          --  if another task is already waiting on that suspension object
-          --  (RM D.10(10)).
- 
-          Result := semGive (S.L);
-          pragma Assert (Result = OK);
- 
-          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 (RM D.10 (9)).
- 
-          if S.State then
-             S.State := False;
- 
-             Result := semGive (S.L);
-             pragma Assert (Result = OK);
- 
-             SSL.Abort_Undefer.all;
- 
-          else
-             S.Waiting := True;
- 
-             --  Release the mutex before sleeping
- 
-             Result := semGive (S.L);
-             pragma Assert (Result = OK);
- 
-             SSL.Abort_Undefer.all;
- 
-             Result := semTake (S.CV, WAIT_FOREVER);
-             pragma Assert (Result = 0);
-          end if;
-       end if;
-    end Suspend_Until_True;
- 
-    ----------------
     -- Check_Exit --
     ----------------
  
--- 977,982 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tarest.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tarest.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tarest.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tarest.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1999-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tarest.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tarest.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tarest.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tarest.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasdeb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasdeb.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasdeb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasdeb.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasdeb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasdeb.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasdeb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasdeb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                           (Compiler Interface)                           --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__linux.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__linux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__linux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__linux.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__linux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__linux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2007-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__solaris.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasinf__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasini.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasini.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasini.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasini.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.Initializati
*** 529,534 ****
--- 529,535 ----
                 | Interrupt_Server_Blocked_Interrupt_Sleep
                 | Interrupt_Server_Idle_Sleep
                 | Timer_Server_Sleep
+                | Suspension_Object_Sleep
              =>
                 Wakeup (T, T.Common.State);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasini.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasini.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasini.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasini.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taskin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taskin.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-taskin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taskin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taskin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taskin.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taskin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taskin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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
*** 205,212 ****
        Activating,
        --  Task has been created and is being made Runnable
  
!       Acceptor_Delay_Sleep
        --  Task is waiting on an selective wait statement
       );
  
     type Call_Modes is
--- 205,215 ----
        Activating,
        --  Task has been created and is being made Runnable
  
!       Acceptor_Delay_Sleep,
        --  Task is waiting on an selective wait statement
+ 
+       Suspension_Object_Sleep
+       --  Task is blocked in a call to Suspend_Until_True
       );
  
     type Call_Modes is
*************** package System.Tasking is
*** 390,396 ****
     System_Domain : Dispatching_Domain_Access;
     --  All processors belong to default system dispatching domain at start up.
     --  We use a pointer which creates the actual variable for the reasons
!    --  explained bellow in Dispatching_Domain_Tasks.
  
     Dispatching_Domains_Frozen : Boolean := False;
     --  True when the main procedure has been called. Hence, no new dispatching
--- 393,399 ----
     System_Domain : Dispatching_Domain_Access;
     --  All processors belong to default system dispatching domain at start up.
     --  We use a pointer which creates the actual variable for the reasons
!    --  explained below in Dispatching_Domain_Tasks.
  
     Dispatching_Domains_Frozen : Boolean := False;
     --  True when the main procedure has been called. Hence, no new dispatching
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Primitives is
*** 38,45 ****
  
     type Lock is new Integer;
  
-    type Suspension_Object is new Integer;
- 
     type Task_Body_Access is access procedure;
  
     type Private_Data is limited record
--- 38,43 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__lynxos.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__lynxos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__lynxos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Task_Primitives is
*** 41,49 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    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).
--- 41,46 ----
*************** private
*** 67,89 ****
        WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
-    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_Locks.RTS_Lock;
-       --  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 limited record
        Thread : aliased System.OS_Interface.pthread_t;
        --  This component is written to once before concurrent access to it is
--- 64,69 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1991-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Primitives is
*** 41,49 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    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).
--- 41,46 ----
*************** private
*** 70,92 ****
  
     type Condition_Variable is new System.Win32.HANDLE;
  
-    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_Locks.RTS_Lock;
-       --  Protection for ensuring mutual exclusion on the Suspension_Object
- 
-       CV : aliased Win32.HANDLE;
-       --  Condition variable used to queue threads until condition is signaled
-    end record;
- 
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.Thread_Id;
        pragma Atomic (Thread);
--- 67,72 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__posix-noaltstack.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Task_Primitives is
*** 44,52 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    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).
--- 44,49 ----
*************** private
*** 70,92 ****
        WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
-    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_Locks.RTS_Lock;
-       --  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 limited record
        Thread : aliased System.OS_Interface.pthread_t;
        --  This component is written to once before concurrent access to it is
--- 67,72 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__posix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__posix.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__posix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__posix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --            Copyright (C) 1991-2017, Florida State University             --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Task_Primitives is
*** 47,55 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    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).
--- 47,52 ----
*************** private
*** 73,95 ****
        WO : aliased System.OS_Locks.RTS_Lock;
     end record;
  
-    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_Locks.RTS_Lock;
-       --  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 limited record
        Thread : aliased System.OS_Interface.pthread_t;
        --  This component is written to once before concurrent access to it is
--- 70,75 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Primitives is
*** 50,58 ****
     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
- 
     type Task_Body_Access is access procedure;
     --  Pointer to the task body's entry point (or possibly a wrapper
     --  declared local to the GNARL).
--- 50,55 ----
*************** private
*** 73,95 ****
  
     type Lock is new OS_Locks.RTS_Lock;
  
-    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.mutex_t;
-       --  Protection for ensuring mutual exclusion on the Suspension_Object
- 
-       CV : aliased System.OS_Interface.cond_t;
-       --  Condition variable used to queue threads until condition is signaled
-    end record;
- 
     --  Note that task support on gdb relies on the fact that the first two
     --  fields of Private_Data are Thread and LWP.
  
--- 70,75 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-taspri__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-taspri__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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.Task_Primitives is
*** 40,48 ****
     type Lock is limited private;
     --  Should be used for implementation of protected objects
  
-    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).
--- 40,45 ----
*************** private
*** 63,85 ****
  
     type Lock is new System.OS_Locks.RTS_Lock;
  
-    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.SEM_ID;
-       --  Protection for ensuring mutual exclusion on the Suspension_Object
- 
-       CV : aliased System.OS_Interface.SEM_ID;
-       --  Condition variable used to queue threads until condition is signaled
-    end record;
- 
     type Private_Data is limited record
        Thread : aliased System.OS_Interface.t_id := 0;
        pragma Atomic (Thread);
--- 60,65 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasque.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasque.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasque.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasque.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasque.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasque.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasque.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasque.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasren.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasren.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasren.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasren.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasren.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasren.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasren.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasren.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasres.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasres.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasres.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasres.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1998-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tassta.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tassta.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tassta.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tassta.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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
*** 133,138 ****
--- 133,143 ----
     --  Different code is used at master completion, in Terminate_Dependents,
     --  due to a need for tighter synchronization with the master.
  
+    function Get_Stack_Base (Self_ID : Task_Id) return System.Address;
+    --  Get the stack base of Self.
+    --
+    --  If the stack base cannot be determined, then Null_Address is returned.
+ 
     ----------------------
     -- Abort_Dependents --
     ----------------------
*************** package body System.Tasking.Stages is
*** 1113,1119 ****
              --  Address of the base of the stack
  
           begin
!             Stack_Base := Self_ID.Common.Compiler_Data.Pri_Stack_Info.Base;
  
              if Stack_Base = Null_Address then
  
--- 1118,1124 ----
              --  Address of the base of the stack
  
           begin
!             Stack_Base := Get_Stack_Base (Self_ID);
  
              if Stack_Base = Null_Address then
  
*************** package body System.Tasking.Stages is
*** 1139,1145 ****
                (Self_ID.Common.Analyzer,
                 Self_ID.Common.Task_Image (1 .. Self_ID.Common.Task_Image_Len),
                 Natural (Self_ID.Common.Compiler_Data.Pri_Stack_Info.Size),
!                SSE.To_Integer (Stack_Base),
                 Pattern_Size);
              STPO.Unlock_RTS;
              Fill_Stack (Self_ID.Common.Analyzer);
--- 1144,1150 ----
                (Self_ID.Common.Analyzer,
                 Self_ID.Common.Task_Image (1 .. Self_ID.Common.Task_Image_Len),
                 Natural (Self_ID.Common.Compiler_Data.Pri_Stack_Info.Size),
!                Stack_Base,
                 Pattern_Size);
              STPO.Unlock_RTS;
              Fill_Stack (Self_ID.Common.Analyzer);
*************** package body System.Tasking.Stages is
*** 1966,1971 ****
--- 1971,1985 ----
        System.Task_Primitives.Operations.Finalize_TCB (T);
     end Vulnerable_Free_Task;
  
+    --------------------
+    -- Get_Stack_Base --
+    --------------------
+ 
+    --  Get_Stack_Base is architecture-specific
+ 
+    function Get_Stack_Base (Self_ID : Task_Id) return System.Address
+    is separate;
+ 
  --  Package elaboration code
  
  begin
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tassta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tassta.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tassta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tassta.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasuti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasuti.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasuti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasuti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.Utilities is
*** 43,49 ****
     package STPO renames System.Task_Primitives.Operations;
  
     use Tasking.Debug;
-    use Task_Primitives;
     use Task_Primitives.Operations;
  
     --------------------
--- 43,48 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tasuti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasuti.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tasuti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tasuti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tataat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tataat.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tataat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tataat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tataat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tataat.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tataat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tataat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpinop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpinop.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpinop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpinop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpinop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpinop.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpinop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpinop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpoaal.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoaal.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpoaal.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoaal.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --        Copyright (C) 2011-2026, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpoben.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoben.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpoben.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoben.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                               B o d y                                    --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpoben.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoben.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpoben.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpoben.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpobmu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobmu.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpobmu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobmu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                               B o d y                                    --
  --                                                                          --
! --                       Copyright (C) 2010-2026, 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-15.2.0/gcc/ada/libgnarl/s-tpobmu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobmu.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpobmu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobmu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                     M U L T I P R O C E S S O R S                        --
  --                                S p e c                                   --
  --                                                                          --
! --                     Copyright (C) 2010-2026, 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-15.2.0/gcc/ada/libgnarl/s-tpobop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobop.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpobop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 1998-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpobop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobop.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpobop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpobop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopmo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopmo.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopmo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopmo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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,38 ----
  
  --  This is the Monotonic version of this package for Posix and Linux targets.
  
+ with System.C_Time;
+ 
  separate (System.Task_Primitives.Operations)
  package body Monotonic is
  
*************** package body Monotonic is
*** 54,67 ****
     ---------------------
  
     function Monotonic_Clock return Duration is
!       TS     : aliased timespec;
        Result : Interfaces.C.int;
     begin
        Result := clock_gettime
          (clock_id => OSC.CLOCK_RT_Ada, tp => TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return To_Duration (TS);
     end Monotonic_Clock;
  
     -------------------
--- 56,69 ----
     ---------------------
  
     function Monotonic_Clock return Duration is
!       TS     : aliased C_Time.timespec;
        Result : Interfaces.C.int;
     begin
        Result := clock_gettime
          (clock_id => OSC.CLOCK_RT_Ada, tp => TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return C_Time.To_Duration (TS);
     end Monotonic_Clock;
  
     -------------------
*************** package body Monotonic is
*** 69,82 ****
     -------------------
  
     function RT_Resolution return Duration is
!       TS     : aliased timespec;
        Result : Interfaces.C.int;
  
     begin
        Result := clock_getres (OSC.CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return To_Duration (TS);
     end RT_Resolution;
  
     ----------------------
--- 71,84 ----
     -------------------
  
     function RT_Resolution return Duration is
!       TS     : aliased C_Time.timespec;
        Result : Interfaces.C.int;
  
     begin
        Result := clock_getres (OSC.CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
  
!       return C_Time.To_Duration (TS);
     end RT_Resolution;
  
     ----------------------
*************** package body Monotonic is
*** 150,156 ****
        Abs_Time   : Duration;
        P_Abs_Time : Duration;
  
!       Request    : aliased timespec;
        Result     : Interfaces.C.int;
        Exit_Outer : Boolean := False;
  
--- 152,158 ----
        Abs_Time   : Duration;
        P_Abs_Time : Duration;
  
!       Request    : aliased C_Time.timespec;
        Result     : Interfaces.C.int;
        Exit_Outer : Boolean := False;
  
*************** package body Monotonic is
*** 184,190 ****
              end if;
              pragma Warnings (On);
  
!             Request := To_Timespec (P_Abs_Time);
  
              Inner : loop
                 exit Outer
--- 186,192 ----
              end if;
              pragma Warnings (On);
  
!             Request := C_Time.To_Timespec (P_Abs_Time);
  
              Inner : loop
                 exit Outer
*************** package body Monotonic is
*** 236,242 ****
        Check_Time : Duration;
        Abs_Time   : Duration;
        P_Abs_Time : Duration;
!       Request    : aliased timespec;
  
        Result     : Interfaces.C.int;
        Exit_Outer : Boolean := False;
--- 238,244 ----
        Check_Time : Duration;
        Abs_Time   : Duration;
        P_Abs_Time : Duration;
!       Request    : aliased C_Time.timespec;
  
        Result     : Interfaces.C.int;
        Exit_Outer : Boolean := False;
*************** package body Monotonic is
*** 271,277 ****
              end if;
              pragma Warnings (On);
  
!             Request := To_Timespec (P_Abs_Time);
  
              Inner : loop
                 exit Outer
--- 273,279 ----
              end if;
              pragma Warnings (On);
  
!             Request := C_Time.To_Timespec (P_Abs_Time);
  
              Inner : loop
                 exit Outer
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__posix-foreign.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__posix.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__solaris.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__tls.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__tls.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__tls.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks-rtp.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks-tls.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tpopsp__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tporft.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tporft.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tporft.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tporft.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tposen.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tposen.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tposen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tposen.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --         Copyright (C) 1998-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tposen.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tposen.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-tposen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tposen.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tsgsba.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tsgsba.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tsgsba.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tsgsba.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,40 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ -- S Y S T E M . T A S K I N G . S T A G E S . G E T _ S T A C K _ B A S E  --
+ --                                                                          --
+ --                                  B o d y                                 --
+ --                                                                          --
+ --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNARL is 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 default version for most platforms which tries to get the
+ --  stack base from the compiler info. It returns Null_Address if the stack
+ --  base is not available.
+ 
+ separate (System.Tasking.Stages)
+ function Get_Stack_Base (Self_ID : Task_Id) return System.Address is
+ begin
+    return Self_ID.Common.Compiler_Data.Pri_Stack_Info.Base;
+ end Get_Stack_Base;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-tsgsba__cheri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tsgsba__cheri.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-tsgsba__cheri.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-tsgsba__cheri.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,49 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
+ --                                                                          --
+ -- S Y S T E M . T A S K I N G . S T A G E S . G E T _ S T A C K _ B A S E  --
+ --                                                                          --
+ --                                  B o d y                                 --
+ --                                                                          --
+ --         Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNARL is 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.     --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ with Interfaces.CHERI;
+ 
+ --  This is the version for CHERI targets where we can derive the stack base
+ --  from the upper bound of the capability stack pointer (CSP).
+ 
+ separate (System.Tasking.Stages)
+ function Get_Stack_Base (Self_ID : Task_Id) return System.Address is
+    pragma Unreferenced (Self_ID);
+ 
+    use type SSE.Integer_Address;
+ 
+    CSP : constant System.Address := Interfaces.CHERI.Get_CSP;
+ begin
+    return Interfaces.CHERI.Capability_With_Address
+             (Cap  => CSP,
+              Addr => Interfaces.CHERI.Get_Base (CSP) +
+                        SSE.Integer_Address
+                          (Interfaces.CHERI.Get_Length (CSP)));
+ end Get_Stack_Base;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel-smp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp-smp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp.adb
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   B o d y                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwext__rtp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwext__rtp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__aarch64.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__aarch64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__arm.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__ppc.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__ppc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__ppc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__x86.ads
*** gcc-15.2.0/gcc/ada/libgnarl/s-vxwork__x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/s-vxwork__x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software;  you can  redistribute it and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnarl/thread.c gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/thread.c
*** gcc-15.2.0/gcc/ada/libgnarl/thread.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnarl/thread.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2011-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-assert.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-assert.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-assert.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-assert.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2007-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-assert.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-assert.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-assert.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-assert.ads	Thu Apr 23 11:07:32 2026
***************
*** 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                                  --
  --                                                                          --
--- 4,10 ----
  --                                                                          --
  --                       A D A . A S S E R T I O N S                        --
  --                                                                          --
! --            Copyright (C) 2015-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-btgbso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-btgbso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-btgbso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-btgbso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-btgbso.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-btgbso.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-btgbso.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-btgbso.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calari.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calari.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-calari.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calari.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calari.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calari.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-calari.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calari.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2026, 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-15.2.0/gcc/ada/libgnat/a-calcon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calcon.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-calcon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calcon.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --        Copyright (C) 2008-2026, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calcon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calcon.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-calcon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calcon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-caldel.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-caldel.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-caldel.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-caldel.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                                                                          --
  --             Copyright (C) 1991-2017, Florida State University            --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-caldel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-caldel.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-caldel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-caldel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calend.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calend.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-calend.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calend.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1068,1086 ****
           tv_nsec : out Long_Integer)
        is
           pragma Unsuppress (Overflow_Check);
-          Secs      : Duration;
-          Nano_Secs : Duration;
  
        begin
!          --  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;
  
        ------------------
--- 1068,1095 ----
           tv_nsec : out Long_Integer)
        is
           pragma Unsuppress (Overflow_Check);
  
        begin
!          if D = 0.0 then
!             tv_sec  := 0;
!             tv_nsec := 0;
  
!          elsif D < 0.0 then
!             tv_sec := Long_Long_Integer (D + 0.5);
!             if D = Duration (tv_sec) then
!                tv_nsec := 0;
!             else
!                tv_nsec := Long_Integer ((D - Duration (tv_sec)) * Nano + 0.5);
!             end if;
  
!          else
!             tv_sec := Long_Long_Integer (D - 0.5);
!             if D = Duration (tv_sec) then
!                tv_nsec := 0;
!             else
!                tv_nsec := Long_Integer ((D - Duration (tv_sec)) * Nano - 0.5);
!             end if;
!          end if;
        end To_Struct_Timespec_64;
  
        ------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calend.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calend.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-calend.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calend.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-calfor.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calfor.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-calfor.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calfor.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-calfor.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calfor.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-calfor.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-calfor.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2026, 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-15.2.0/gcc/ada/libgnat/a-catizo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-catizo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-catizo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-catizo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbdlli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbdlli.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbdlli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbdlli.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbdlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbdlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbdlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbdlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 99,110 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 99,110 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbhama.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhama.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbhama.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhama.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 368,374 ****
     -- Empty --
     -----------
  
!    function Empty (Capacity : Count_Type) return Map is
     begin
        return Result : Map (Capacity, 0) do
           null;
--- 368,374 ----
     -- Empty --
     -----------
  
!    function Empty (Capacity : Count_Type := 10) return Map is
     begin
        return Result : Map (Capacity, 0) do
           null;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbhama.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhama.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbhama.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhama.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 71,77 ****
     --  Map objects declared without an initialization expression are
     --  initialized to the value Empty_Map.
  
!    function Empty (Capacity : Count_Type) return Map;
  
     No_Element : constant Cursor;
     --  Cursor objects declared without an initialization expression are
--- 71,77 ----
     --  Map objects declared without an initialization expression are
     --  initialized to the value Empty_Map.
  
!    function Empty (Capacity : Count_Type := 10) return Map;
  
     No_Element : constant Cursor;
     --  Cursor objects declared without an initialization expression are
*************** is
*** 146,157 ****
     --  a variable view) of the node designed by the cursor.
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is
!    private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 146,157 ----
     --  a variable view) of the node designed by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbhase.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhase.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbhase.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhase.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbhase.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhase.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbhase.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbhase.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 154,161 ****
     --  designated by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
--- 154,162 ----
     --  designated by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
*************** is
*** 459,466 ****
        --  completes. Otherwise, the node is removed from the map and
        --  Program_Error is raised.
  
!       type Reference_Type (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
--- 460,469 ----
        --  completes. Otherwise, the node is removed from the map and
        --  Program_Error is raised.
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
!       with
!          Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbinho.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbinho.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbinho.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbinho.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,437 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT LIBRARY COMPONENTS                          --
+ --                                                                          --
+ --                ADA.CONTAINERS.BOUNDED_INDEFINITE_HOLDERS                 --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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/>.                                          --
+ ------------------------------------------------------------------------------
+ 
+ with Ada.Unchecked_Deallocate_Subpool;
+ with Ada.Unchecked_Deallocation;
+ with System.Put_Images;
+ 
+ package body Ada.Containers.Bounded_Indefinite_Holders is
+ 
+    use type System.Address;
+ 
+    procedure Free is new Ada.Unchecked_Deallocation
+      (Element_Type, Element_Access);
+ 
+    function "=" (Left, Right : Holder) return Boolean is
+      (if Left.Element = null or Right.Element = null
+        then Left.Element = Right.Element
+        else Left.Element.all = Right.Element.all);
+ 
+    ------------
+    -- Adjust --
+    ------------
+ 
+    overriding procedure Adjust (Container : in out Holder) is
+    begin
+       Container.Handle := Create_Subpool (The_Storage_Pool, Container);
+       Container.Element :=
+         new (Container.Handle) Element_Type'(Container.Element.all);
+    end Adjust;
+ 
+    ------------
+    -- Assign --
+    ------------
+ 
+    procedure Assign (Target : in out Holder; Source : Holder) is
+    begin
+       if Target'Address /= Source'Address then
+          if Is_Empty (Source) then
+             Clear (Target);
+          else
+             Replace_Element (Target, Source.Element.all);
+          end if;
+       end if;
+    end Assign;
+ 
+    -----------
+    -- Clear --
+    -----------
+ 
+    procedure Clear (Container : in out Holder) is
+    begin
+       if Is_Empty (Container) then
+          return; -- nothing to do
+       end if;
+       if Container.Busy /= 0 then
+          raise Program_Error with "attempt to tamper with elements";
+       end if;
+       Free (Container.Element); -- finalize element
+       Ada.Unchecked_Deallocate_Subpool (Container.Handle);
+    end Clear;
+ 
+    ------------------------
+    -- Constant_Reference --
+    ------------------------
+ 
+    function Constant_Reference
+      (Container : aliased Holder) return Constant_Reference_Type
+    is
+       Ref : constant Constant_Reference_Type :=
+         (Element => Container.Element,
+          Control => (Controlled with Container'Unrestricted_Access));
+       B : Natural renames Ref.Control.Container.Busy;
+    begin
+       B := B + 1;
+       return Ref;
+    end Constant_Reference;
+ 
+    ----------
+    -- Copy --
+    ----------
+ 
+    function Copy (Source : Holder) return Holder is
+       (if Is_Empty (Source)
+        then Empty_Holder
+        else To_Holder (Source.Element.all));
+ 
+    -------------
+    -- Element --
+    -------------
+ 
+    function Element (Container : Holder) return Element_Type is
+      (Container.Element.all);
+ 
+    --------------
+    -- Finalize --
+    --------------
+ 
+    overriding procedure Finalize (Container : in out Holder) is
+    begin
+       Clear (Container);
+    end Finalize;
+ 
+    --  NOTE: No procedure Initialize because requires preelaborable init.
+    overriding procedure Finalize (Control : in out Reference_Control_Type) is
+    begin
+       if Control.Container /= null then
+          declare
+             B : Natural renames Control.Container.Busy;
+          begin
+             B := B - 1;
+          end;
+       end if;
+ 
+       Control.Container := null;
+    end Finalize;
+ 
+    --------------
+    -- Is_Empty --
+    --------------
+ 
+    function Is_Empty (Container : Holder) return Boolean
+      is (Container.Element = null);
+ 
+    ----------
+    -- Move --
+    ----------
+ 
+    procedure Move (Target : in out Holder; Source : in out Holder) is
+    begin
+       if Target'Address /= Source'Address then
+          Assign (Target => Target, Source => Source);
+          Clear (Source);
+       end if;
+    end Move;
+ 
+    ---------------
+    -- Put_Image --
+    ---------------
+ 
+    procedure Put_Image
+      (S : in out Ada.Strings.Text_Buffers.Root_Buffer_Type'Class; V : Holder)
+    is
+       use System.Put_Images;
+    begin
+       Array_Before (S);
+       if not Is_Empty (V) then
+          Element_Type'Put_Image (S, Element (V));
+       end if;
+       Array_After (S);
+    end Put_Image;
+ 
+    -------------------
+    -- Query_Element --
+    -------------------
+ 
+    procedure Query_Element
+      (Container : Holder;
+       Process   : not null access procedure (Element : Element_Type)) is
+    begin
+       Process.all (Container.Element.all);
+    end Query_Element;
+ 
+    ----------
+    -- Read --
+    ----------
+ 
+    procedure Read
+      (Stream    : not null access Root_Stream_Type'Class;
+       Container : out Holder)
+    is
+    begin
+       if Boolean'Input (Stream) then
+          Clear (Container);
+       else
+          Replace_Element (Container, Element_Type'Input (Stream));
+       end if;
+    end Read;
+ 
+    procedure Read
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : out Constant_Reference_Type)
+    is
+    begin
+       raise Program_Error with "attempt to stream reference";
+    end Read;
+ 
+    procedure Read
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : out Reference_Type)
+    is
+    begin
+       raise Program_Error with "attempt to stream reference";
+    end Read;
+ 
+    ---------------
+    -- Reference --
+    ---------------
+ 
+    function Reference
+      (Container : aliased in out Holder) return Reference_Type
+    is
+       Ref : constant Reference_Type :=
+               (Element => Container.Element,
+                Control => (Controlled with Container'Unrestricted_Access));
+    begin
+       Container.Busy := Container.Busy + 1;
+       return Ref;
+    end Reference;
+ 
+    ---------------------
+    -- Replace_Element --
+    ---------------------
+ 
+    procedure Replace_Element
+      (Container : in out Holder; New_Item : Element_Type)
+    is
+    begin
+       if (New_Item'Size / System.Storage_Unit) +
+         Boolean'Pos (New_Item'Size mod System.Storage_Unit /= 0) >
+         Max_Element_Size_In_Storage_Elements
+       then
+          --  New_Item is too big; detect this early, before calling Clear
+          --  (as opposed to catching it later in Allocate_From_Subpool).
+          raise Program_Error;
+       end if;
+       Clear (Container);
+       if Container.Handle = null then
+          Container.Handle := Create_Subpool (The_Storage_Pool, Container);
+       end if;
+       Container.Element := new (Container.Handle) Element_Type'(New_Item);
+    end Replace_Element;
+ 
+    ---------------------
+    -- Subpool_Support --
+    ---------------------
+ 
+    package body Subpool_Support is
+       function Create_Subpool (Pool : in out Holder_Pool_Type)
+         return not null Subpool_Handle is
+       begin
+          return (raise Program_Error);
+       end Create_Subpool;
+ 
+       function Aligned_Address
+         (Addr : System.Address; Alignment : Storage_Count)
+         return System.Address;
+       --  Return Addr, rounded up to multiple of Alignment
+ 
+       function Aligned_Address
+         (Addr : System.Address; Alignment : Storage_Count)
+         return System.Address
+       is
+          Initial_Align : constant Storage_Count := Addr mod Alignment;
+       begin
+          if Initial_Align = 0 then
+             --  Already aligned
+             return Addr;
+          else
+             --  Adjust to get into alignment
+             return Addr + (Alignment - Initial_Align);
+          end if;
+       end Aligned_Address;
+ 
+       function Create_Subpool
+         (Pool : in out Holder_Pool_Type'Class; Container : Holder)
+         return not null Subpool_Handle
+       is
+          --  Compute start addresses for subpool and element within Storage
+          Subpool_Start : constant System.Address :=
+            Aligned_Address
+              (Container.Wrapper.Storage'Address, Holder_Subpool'Alignment);
+ 
+          Element_Start : constant System.Address :=
+            Subpool_Start + Holder_Subpool'Max_Size_In_Storage_Elements;
+             --  Will deal with alignment on allocation
+ 
+          Subpool : aliased Holder_Subpool
+            with Address => Subpool_Start, Import;
+          --  Import is specified to avoid unwanted early finalization.
+          --  But that also prevents initialization (via either default
+          --  initialization or an explicit initial value expression) ...
+       begin
+          --  ... so instead initialize Subpool via overlays. But that
+          --  assumes a representation where copying bytes works, and that
+          --  assumption doesn't hold for self-referential pointers.
+          --  So we also call Subpools._Adjust_Clone (sic). Ugly.
+ 
+          declare
+             use System;
+ 
+             Subpool_Init_Source : aliased Holder_Subpool :=
+               (Root_Subpool with Start => Element_Start);
+ 
+             pragma Assert (Holder_Subpool'Size mod Storage_Unit = 0);
+ 
+             subtype Holder_Subpool_Storage is
+               Storage_Array (1 .. Holder_Subpool'Size / Storage_Unit);
+             Source : Holder_Subpool_Storage with Import,
+               Address => Subpool_Init_Source'Address;
+             Target : Holder_Subpool_Storage with Import,
+               Address => Subpool'Address;
+          begin
+             Target := Source;
+             --  leading underscore is deliberate
+             _Adjust_Clone (Root_Subpool (Subpool));
+          end;
+ 
+          Set_Pool_Of_Subpool (Subpool'Unchecked_Access, Pool);
+          --  Return the handle
+          return Subpool'Unchecked_Access;
+       end Create_Subpool;
+ 
+       procedure Allocate_From_Subpool
+         (Pool : in out Holder_Pool_Type;
+          Storage_Address : out System.Address;
+          Size_In_Storage_Elements : Storage_Count;
+          Alignment : Storage_Count;
+          Subpool : not null Subpool_Handle) is
+       begin
+          if Size_In_Storage_Elements + Alignment >
+             Max_Element_Size_In_Storage_Elements + Element_Type'Alignment
+          then
+             --  If we pass the size check in Replace_Element (which we had to
+             --  in order to get here) and then fail this check, then that is
+             --  a bug (although arguably a corner case).
+             --  If we get here, that probably means that the result returned
+             --  by Max_Allocation_Overhead_In_Storage_Elements was too small
+             --  (with the result that Bound_Range'Last is too small).
+             raise Program_Error;
+          end if;
+          Storage_Address :=
+            Aligned_Address (Holder_Subpool (Subpool.all).Start, Alignment);
+       end Allocate_From_Subpool;
+ 
+       procedure Deallocate_Subpool
+         (Pool : in out Holder_Pool_Type;
+          Subpool : in out Subpool_Handle) is
+       begin
+          --  Nothing to do
+          null;
+       end Deallocate_Subpool;
+ 
+    end Subpool_Support;
+ 
+    ----------
+    -- Swap --
+    ----------
+ 
+    procedure Swap (Left, Right : in out Holder) is
+       Temp : Holder;
+    begin
+       Assign (Target => Temp, Source => Left);
+       Move (Target => Left, Source => Right);
+       Move (Target => Right, Source => Temp);
+    end Swap;
+ 
+    ---------------
+    -- To_Holder --
+    ---------------
+ 
+    function To_Holder (New_Item : Element_Type) return Holder is
+    begin
+       return Result : Holder do
+          Replace_Element (Result, New_Item);
+       end return;
+    end To_Holder;
+ 
+    --------------------
+    -- Update_Element --
+    --------------------
+ 
+    procedure Update_Element
+      (Container : in out Holder;
+       Process   : not null access procedure (Element : in out Element_Type)) is
+    begin
+       Process.all (Container.Element.all);
+    end Update_Element;
+ 
+    -----------
+    -- Write --
+    -----------
+ 
+    procedure Write
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : Constant_Reference_Type)
+    is
+    begin
+       raise Program_Error with "attempt to stream reference";
+    end Write;
+ 
+    procedure Write
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : Reference_Type)
+    is
+    begin
+       raise Program_Error with "attempt to stream reference";
+    end Write;
+ 
+    procedure Write
+      (Stream    : not null access Root_Stream_Type'Class;
+       Container : Holder)
+    is
+    begin
+       --  Polarity of this Boolean determined by streaming-related
+       --  implementation requirements of RM A.18.32.
+ 
+       Boolean'Write (Stream, Container.Element = null);
+       if Container.Element /= null then
+          Element_Type'Write (Stream, Container.Element.all);
+       end if;
+    end Write;
+ 
+ end Ada.Containers.Bounded_Indefinite_Holders;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbinho.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbinho.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbinho.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbinho.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,291 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT LIBRARY COMPONENTS                          --
+ --                                                                          --
+ --                ADA.CONTAINERS.BOUNDED_INDEFINITE_HOLDERS                 --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2011-2026, Free Software Foundation, 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/>.                                          --
+ ------------------------------------------------------------------------------
+ 
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
+ private with Ada.Finalization;
+ private with Ada.Streams;
+ private with Ada.Strings.Text_Buffers;
+ private with System.Storage_Pools.Subpools;
+ 
+ generic
+    type Element_Type (<>) is private;
+    Max_Element_Size_In_Storage_Elements : Storage_Count;
+    with function "=" (Left, Right : Element_Type) return Boolean is <>;
+ 
+ package Ada.Containers.Bounded_Indefinite_Holders is
+    pragma Annotate (CodePeer, Skip_Analysis);
+    pragma Preelaborate (Bounded_Indefinite_Holders);
+    pragma Remote_Types (Bounded_Indefinite_Holders);
+ 
+    type Holder is tagged private
+    with
+      Preelaborable_Initialization => Element_Type'Preelaborable_Initialization;
+ 
+    Empty_Holder : constant Holder;
+ 
+    function "=" (Left, Right : Holder) return Boolean;
+ 
+    function To_Holder (New_Item : Element_Type) return Holder;
+ 
+    function Is_Empty (Container : Holder) return Boolean;
+ 
+    procedure Clear (Container : in out Holder);
+ 
+    function Element (Container : Holder) return Element_Type;
+ 
+    procedure Replace_Element
+      (Container : in out Holder;
+       New_Item  : Element_Type);
+ 
+    procedure Query_Element
+      (Container : Holder;
+       Process   : not null access procedure (Element : Element_Type));
+ 
+    procedure Update_Element
+      (Container : in out Holder;
+       Process   : not null access procedure (Element : in out Element_Type));
+ 
+    type Constant_Reference_Type
+       (Element : not null access constant Element_Type) is limited private
+    with
+       Implicit_Dereference => Element;
+ 
+    type Reference_Type
+      (Element : not null access Element_Type) is limited private
+    with
+       Implicit_Dereference => Element;
+ 
+    function Constant_Reference
+      (Container : aliased Holder) return Constant_Reference_Type;
+    pragma Inline (Constant_Reference);
+ 
+    function Reference
+      (Container : aliased in out Holder) return Reference_Type;
+    pragma Inline (Reference);
+ 
+    procedure Assign (Target : in out Holder; Source : Holder);
+ 
+    function Copy (Source : Holder) return Holder;
+ 
+    procedure Move (Target : in out Holder; Source : in out Holder);
+ 
+    procedure Swap (Left, Right : in out Holder);
+ 
+ private
+ 
+    use Ada.Finalization;
+    use Ada.Streams;
+    use System.Storage_Pools.Subpools;
+ 
+    procedure Read
+      (Stream    : not null access Root_Stream_Type'Class;
+       Container : out Holder);
+ 
+    procedure Write
+      (Stream    : not null access Root_Stream_Type'Class;
+       Container : Holder);
+ 
+    procedure Put_Image
+      (S : in out Ada.Strings.Text_Buffers.Root_Buffer_Type'Class; V : Holder);
+ 
+    package Subpool_Support is
+ 
+       type Holder_Pool_Type is
+         limited new Root_Storage_Pool_With_Subpools with null record;
+ 
+       type Holder_Subpool is
+         limited new Root_Subpool with record
+          Start : System.Address := System.Null_Address;
+       end record;
+ 
+       overriding
+       function Create_Subpool (Pool : in out Holder_Pool_Type)
+         return not null Subpool_Handle
+         ; --  tbd with No_Return;
+       --  We never use this one.  It will raise Program_Error
+ 
+       overriding
+       procedure Allocate_From_Subpool
+         (Pool : in out Holder_Pool_Type;
+          Storage_Address : out System.Address;
+          Size_In_Storage_Elements : Storage_Count;
+          Alignment : Storage_Count;
+          Subpool : not null Subpool_Handle);
+ 
+       overriding
+       procedure Deallocate_Subpool
+         (Pool : in out Holder_Pool_Type;
+          Subpool : in out Subpool_Handle);
+ 
+       function Create_Subpool
+         (Pool : in out Holder_Pool_Type'Class; Container : Holder)
+         return not null Subpool_Handle;
+ 
+       The_Storage_Pool : Holder_Pool_Type;
+       --  The one and only object of this type ever created.
+    end Subpool_Support;
+ 
+    use Subpool_Support;
+ 
+    type Element_Access is access Element_Type
+      with Storage_Pool => Subpool_Support.The_Storage_Pool,
+           Size => Standard'Address_Size;
+    --  Size specification needed to ensure contiguous bounds if Element_Type
+    --  turns out to be an unconstrained array subtype. We do not want a
+    --  fat-pointer representation in that case.
+ 
+    pragma No_Strict_Aliasing (Element_Access);
+    --  Needed because we are unchecked-converting from Address to
+    --  Element_Access (see package body), which is a violation of the
+    --  normal aliasing rules enforced by gcc.
+ 
+    Worst_Case_Alignment : constant Storage_Count :=
+      Storage_Count'Max (Holder_Subpool'Alignment,
+        Storage_Count'Max (System.Address'Alignment,
+          Element_Type'Alignment));
+ 
+    --  An upper bound on additional storage required for an allocator for data
+    --  other than the allocated object itself. This includes things like
+    --  array bounds (if Element_Type is an unconstrained array subtype),
+    --  finalization-related linkage (if Element_Type requires
+    --  finalization), alignment-related gaps between such prefix info and the
+    --  allocated object, etc. This does not include alignment-related
+    --  overhead except for aforementioned possibility of an alignment-related
+    --  gap between some prefix data and the object itself.
+ 
+    --  Compute extra amount needed for space requested for an allocator
+    --  (specifically, in a call to Allocate_From_Subpool) in addition to
+    --  the space required for the allocated object itself.
+    Extra_Storage : constant Storage_Count :=
+      Holder_Subpool'Max_Size_In_Storage_Elements +
+      Worst_Case_Alignment * 2 +
+      (Element_Type'Descriptor_Size / System.Storage_Unit) +
+      (Element_Type'Finalization_Size / System.Storage_Unit);
+ 
+    subtype Bound_Range is Storage_Count range
+      0 ..  Max_Element_Size_In_Storage_Elements + Extra_Storage;
+ 
+    type Storage_Wrapper (Bound : Bound_Range := 0) is record
+       Storage : aliased Storage_Array (1 .. Bound);
+          --  Should allocate space for case when Bound = Bound_Range'Last
+          --  but we actually leave Bound at zero so assignment
+          --  is faster (this wouldn't work if the compiler didn't
+          --  allocate the "max" for types with defaulted discriminants).
+    end record;
+ 
+    type Holder is new Ada.Finalization.Controlled with record
+       Busy : Natural := 0;
+       Handle : Subpool_Handle;
+       Element : Element_Access;
+       Wrapper : Storage_Wrapper;
+    end record
+      with Put_Image => Put_Image, Read => Read, Write => Write;
+ 
+    overriding procedure Adjust (Container : in out Holder);
+    overriding procedure Finalize (Container : in out Holder);
+ 
+    type Holder_Access is access all Holder;
+    for Holder_Access'Storage_Size use 0;
+ 
+    --  Instead of declaring Reference_Control_Type as a controlled type,
+    --  we could use the GNAT-defined Finalizable aspect instead.
+    --  But we would not want to make this change only in this unit - many
+    --  of the container generics declare a Reference_Control_Type type.
+    --  In particular, we want to minimize differences between this unit
+    --  and the corresponding unbounded unit (Ada.Indefinite_Holders).
+ 
+    type Reference_Control_Type is new Controlled with record
+       Container : Holder_Access;
+    end record;
+ 
+    overriding procedure Finalize (Control : in out Reference_Control_Type);
+    pragma Inline (Finalize);
+ 
+    type Constant_Reference_Type
+      (Element : not null access constant Element_Type) is
+    record
+       Control : Reference_Control_Type :=
+         (raise Program_Error with "default initialized reference");
+       --  The RM says, "The default initialization of an object of
+       --  type Constant_Reference_Type or Reference_Type propagates
+       --  Program_Error."
+    end record;
+ 
+    type Reference_Type
+      (Element : not null access Element_Type) is
+    record
+       Control : Reference_Control_Type :=
+         (raise Program_Error with "default initialized reference");
+       --  The RM says, "The default initialization of an object of
+       --  type Constant_Reference_Type or Reference_Type propagates
+       --  Program_Error."
+    end record;
+ 
+    --  The following four streaming-related subprograms could be
+    --  deleted (the two reference types are limited as a result of
+    --  AI22-0082, so streaming operations are not available for them).
+    --  But we do not want to perform this cleanup only in this unit - the
+    --  same change should be made for all the container generics.
+    --  In particular, we want to minimize differences between this unit
+    --  and the corresponding unbounded unit (Ada.Indefinite_Holders).
+ 
+    procedure Read
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : out Constant_Reference_Type);
+ 
+    for Constant_Reference_Type'Read use Read;
+ 
+    procedure Read
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : out Reference_Type);
+ 
+    for Reference_Type'Read use Read;
+ 
+    procedure Write
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : Constant_Reference_Type);
+ 
+    for Constant_Reference_Type'Write use Write;
+ 
+    procedure Write
+      (Stream : not null access Root_Stream_Type'Class;
+       Item   : Reference_Type);
+ 
+    for Reference_Type'Write use Write;
+ 
+    Empty_Holder : constant Holder := (Controlled with
+      Busy => 0,
+      Handle => null,
+      Element => null,
+      Wrapper => (Bound => 0, others => <>));
+ 
+ end Ada.Containers.Bounded_Indefinite_Holders;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbmutr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbmutr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbmutr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbmutr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2011-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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
*** 2357,2367 ****
        end Rec;
  
     begin
!       if First_Child (Root (V)) = No_Element then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (First_Child (Root (V)));
        end if;
     end Put_Image;
  
--- 2357,2367 ----
        end Rec;
  
     begin
!       if Is_Empty (V) then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (Root (V));
        end if;
     end Put_Image;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbmutr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbmutr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbmutr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbmutr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2026, Free Software Foundation, 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
*** 106,117 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
--- 106,119 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cborma.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborma.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cborma.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborma.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cborma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborma.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cborma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 108,118 ****
                      procedure (Key : Key_Type; Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 108,119 ----
                      procedure (Key : Key_Type; Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cborse.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborse.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cborse.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborse.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cborse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cborse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cborse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 100,107 ****
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is
!    private
     with
        Implicit_Dereference => Element;
  
--- 100,106 ----
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
*************** is
*** 290,296 ****
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type (Element : not null access Element_Type) is private
        with
           Implicit_Dereference => Element;
  
--- 289,296 ----
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
        with
           Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbprqu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbprqu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbprqu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbprqu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbprqu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbprqu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbprqu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbprqu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cbsyqu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbsyqu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cbsyqu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbsyqu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cbsyqu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbsyqu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cbsyqu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cbsyqu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cdlili.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cdlili.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cdlili.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cdlili.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cdlili.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cdlili.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cdlili.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cdlili.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 58,69 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Append);
! 
!    pragma Preelaborable_Initialization (List);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_List : constant List;
  
--- 58,69 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Append),
!       Preelaborable_Initialization;
  
!    type Cursor is private
!    with
!       Preelaborable_Initialization;
  
     Empty_List : constant List;
  
*************** is
*** 102,113 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 102,113 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cfdlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfdlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfdlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfdlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cfhama.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfhama.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfhama.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfhama.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cfhase.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfhase.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfhase.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfhase.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cfidll.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfidll.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfidll.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfidll.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cfinse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfinse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfinse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfinse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2022-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cfinve.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfinve.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cfinve.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cfinve.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cforma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cforma.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cforma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cforma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cforse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cforse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cforse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cforse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cgaaso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgaaso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cgaaso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgaaso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cgaaso.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgaaso.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cgaaso.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgaaso.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cgarso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgarso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cgarso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgarso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cgcaso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgcaso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cgcaso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cgcaso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chacon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chacon.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chacon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chacon.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chacon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chacon.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chacon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chacon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-chahan.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chahan.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chahan.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chahan.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chahan.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chahan.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chahan.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chahan.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-chlat9.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chlat9.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chlat9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chlat9.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-chtgbk.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbk.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgbk.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbk.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgbk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbk.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgbk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgbo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgbo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgbo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgbo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgbo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgke.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgke.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgke.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgke.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgke.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgke.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgke.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgke.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgop.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chtgop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgop.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chtgop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chtgop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chzla1.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chzla1.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chzla1.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chzla1.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-chzla9.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chzla9.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-chzla9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-chzla9.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cidlli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cidlli.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cidlli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cidlli.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cidlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cidlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cidlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cidlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 57,68 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Append);
! 
!    pragma Preelaborable_Initialization (List);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_List : constant List;
  
--- 57,67 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Append),
!       Preelaborable_Initialization;
  
!    type Cursor is private with
!       Preelaborable_Initialization;
  
     Empty_List : constant List;
  
*************** is
*** 101,112 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 100,111 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cihama.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihama.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cihama.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihama.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cihama.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihama.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cihama.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihama.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 59,70 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert);
! 
!    pragma Preelaborable_Initialization (Map);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Map : constant Map;
     --  Map objects declared without an initialization expression are
--- 59,69 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert),
!       Preelaborable_Initialization;
  
!    type Cursor is private with
!       Preelaborable_Initialization;
  
     Empty_Map : constant Map;
     --  Map objects declared without an initialization expression are
*************** is
*** 144,154 ****
     --  a variable view) of the node designed by the cursor.
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 143,154 ----
     --  a variable view) of the node designed by the cursor.
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cihase.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihase.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cihase.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihase.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cihase.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihase.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cihase.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cihase.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 61,72 ****
            Default_Iterator  => Iterate,
            Iterator_Element  => Element_Type,
            Aggregate         => (Empty       => Empty,
!                                 Add_Unnamed => Include);
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Set : constant Set;
     --  Set objects declared without an initialization expression are
--- 61,71 ----
            Default_Iterator  => Iterate,
            Iterator_Element  => Element_Type,
            Aggregate         => (Empty       => Empty,
!                                 Add_Unnamed => Include),
!           Preelaborable_Initialization;
  
!    type Cursor is private
!      with Preelaborable_Initialization;
  
     Empty_Set : constant Set;
     --  Set objects declared without an initialization expression are
*************** is
*** 155,162 ****
     --  designated by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
--- 154,162 ----
     --  designated by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
*************** is
*** 445,452 ****
        --  completes. Otherwise, the node is removed from the map and
        --  Program_Error is raised.
  
!       type Reference_Type (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
--- 445,454 ----
        --  completes. Otherwise, the node is removed from the map and
        --  Program_Error is raised.
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
!       with
!          Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cimutr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cimutr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cimutr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cimutr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1910,1920 ****
        end Rec;
  
     begin
!       if First_Child (Root (V)) = No_Element then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (First_Child (Root (V)));
        end if;
     end Put_Image;
  
--- 1910,1920 ----
        end Rec;
  
     begin
!       if Is_Empty (V) then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (Root (V));
        end if;
     end Put_Image;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cimutr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cimutr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cimutr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cimutr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 54,65 ****
       with Constant_Indexing => Constant_Reference,
            Variable_Indexing => Reference,
            Default_Iterator  => Iterate,
!           Iterator_Element  => Element_Type;
! 
!    pragma Preelaborable_Initialization (Tree);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Tree : constant Tree;
  
--- 54,64 ----
       with Constant_Indexing => Constant_Reference,
            Variable_Indexing => Reference,
            Default_Iterator  => Iterate,
!           Iterator_Element  => Element_Type,
!           Preelaborable_Initialization;
  
!    type Cursor is private
!      with Preelaborable_Initialization;
  
     Empty_Tree : constant Tree;
  
*************** is
*** 108,119 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
--- 107,120 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciorma.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorma.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ciorma.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorma.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciorma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorma.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ciorma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 60,71 ****
          Default_Iterator  => Iterate,
          Iterator_Element  => Element_Type,
          Aggregate         => (Empty     => Empty,
!                               Add_Named => Insert);
! 
!    pragma Preelaborable_Initialization (Map);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Map : constant Map;
  
--- 60,70 ----
          Default_Iterator  => Iterate,
          Iterator_Element  => Element_Type,
          Aggregate         => (Empty     => Empty,
!                               Add_Named => Insert),
!         Preelaborable_Initialization;
  
!    type Cursor is private
!    with Preelaborable_Initialization;
  
     Empty_Map : constant Map;
  
*************** is
*** 107,117 ****
                                               Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 106,117 ----
                                               Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciormu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciormu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ciormu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciormu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciormu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciormu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ciormu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciormu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,69 ****
     type Set is tagged private
     with Constant_Indexing => Constant_Reference,
          Default_Iterator  => Iterate,
!         Iterator_Element  => Element_Type;
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Set : constant Set;
     --  The default value for set objects declared without an explicit
--- 58,68 ----
     type Set is tagged private
     with Constant_Indexing => Constant_Reference,
          Default_Iterator  => Iterate,
!         Iterator_Element  => Element_Type,
!         Preelaborable_Initialization;
  
!    type Cursor is private
!    with Preelaborable_Initialization;
  
     Empty_Set : constant Set;
     --  The default value for set objects declared without an explicit
*************** is
*** 134,141 ****
     --  with elements") will raise Program_Error.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
--- 133,141 ----
     --  with elements") will raise Program_Error.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciorse.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorse.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ciorse.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorse.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ciorse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ciorse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ciorse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 59,70 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Include);
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Set : constant Set;
     function Empty  return Set;
--- 59,69 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Include),
!       Preelaborable_Initialization;
  
!    type Cursor is private with
!       Preelaborable_Initialization;
  
     Empty_Set : constant Set;
     function Empty  return Set;
*************** is
*** 100,107 ****
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is
!    private with
        Implicit_Dereference => Element;
  
     function Constant_Reference
--- 99,106 ----
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
        Implicit_Dereference => Element;
  
     function Constant_Reference
*************** is
*** 306,312 ****
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type (Element : not null access Element_Type) is private
        with
           Implicit_Dereference => Element;
  
--- 305,312 ----
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
        with
           Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-clrefi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-clrefi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-clrefi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-clrefi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-clrefi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-clrefi.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-clrefi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-clrefi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coboho.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coboho.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coboho.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coboho.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2015-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coboho.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coboho.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coboho.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coboho.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2015-2026, Free Software Foundation, 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.Containers.Bounded_Holders i
*** 69,74 ****
--- 69,78 ----
     --  The 'Size of each Element_Type object must be a multiple of
     --  System.Storage_Unit; e.g. creating Holders from 5-bit objects won't
     --  work.
+    --
+    --  Do not confuse this GNAT-defined unit with the similar (similar
+    --  in both name and functionality) predefined unit
+    --  Ada.Containers.Bounded_Indefinite_Holders described in Ada RM A.18.32.
  
     type Holder is private
       with Preelaborable_Initialization
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cobove.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cobove.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cobove.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cobove.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Containers.Bounded_Vect
*** 363,369 ****
                       New_Item  :        Element_Type)
     is
     begin
!       Insert (Container, Last_Index (Container) + 1, New_Item, 1);
     end Append;
  
     --------------
--- 363,377 ----
                       New_Item  :        Element_Type)
     is
     begin
!       if T_Check then
!          --  handle the general case
!          Insert (Container, Last_Index (Container) + 1, New_Item, 1);
!       else
!          --  The fast path.
!          --  The first (but not the second) statement may fail a check.
!          Container.Elements (To_Array_Index (Container.Last) + 1) := New_Item;
!          Container.Last := Container.Last + 1;
!       end if;
     end Append;
  
     --------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cobove.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cobove.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cobove.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cobove.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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.Containers.Bounded_Vectors i
*** 160,171 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is
!    private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 160,171 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!       (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cofove.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofove.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cofove.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofove.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cofuma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuma.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cofuma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cofuse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cofuse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cofuve.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuve.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cofuve.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cofuve.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2016-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cogeso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cogeso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cogeso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cogeso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cogeso.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cogeso.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cogeso.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cogeso.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cohama.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohama.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cohama.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohama.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cohama.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohama.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cohama.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohama.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 103,114 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert);
! 
!    pragma Preelaborable_Initialization (Map);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     function "=" (Left, Right : Cursor) return Boolean;
     --  The representation of cursors includes a component used to optimize
--- 103,114 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert),
!       Preelaborable_Initialization;
  
!    type Cursor is private
!    with
!       Preelaborable_Initialization;
  
     function "=" (Left, Right : Cursor) return Boolean;
     --  The representation of cursors includes a component used to optimize
*************** is
*** 226,236 ****
     --  Process.all is propagated.
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 226,237 ----
     --  Process.all is propagated.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cohase.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohase.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cohase.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohase.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cohase.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohase.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cohase.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohase.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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,73 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Include);
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     function "=" (Left, Right : Cursor) return Boolean;
     --  The representation of cursors includes a component used to optimize
--- 62,73 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty       => Empty,
!                             Add_Unnamed => Include),
!       Preelaborable_Initialization;
  
!    type Cursor is private
!    with
!       Preelaborable_Initialization;
  
     function "=" (Left, Right : Cursor) return Boolean;
     --  The representation of cursors includes a component used to optimize
*************** is
*** 165,172 ****
     --  designed by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
--- 165,173 ----
     --  designed by the cursor.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
*************** is
*** 457,464 ****
        --  completes. Otherwise, the node is removed from the set and
        --  Program_Error is raised.
  
!       type Reference_Type (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
--- 458,467 ----
        --  completes. Otherwise, the node is removed from the set and
        --  Program_Error is raised.
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
!       with
!          Implicit_Dereference => Element;
  
        function Reference_Preserving_Key
          (Container : aliased in out Set;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cohata.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohata.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cohata.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cohata.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinho.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coinho.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinho.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coinho.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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.Containers.Indefinite_Holder
*** 42,49 ****
     pragma Preelaborate (Indefinite_Holders);
     pragma Remote_Types (Indefinite_Holders);
  
!    type Holder is tagged private;
!    pragma Preelaborable_Initialization (Holder);
  
     Empty_Holder : constant Holder;
  
--- 42,50 ----
     pragma Preelaborate (Indefinite_Holders);
     pragma Remote_Types (Indefinite_Holders);
  
!    type Holder is tagged private
!    with
!       Preelaborable_Initialization;
  
     Empty_Holder : constant Holder;
  
*************** package Ada.Containers.Indefinite_Holder
*** 70,81 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 71,82 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinho__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coinho__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinho__shared.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho__shared.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coinho__shared.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinho__shared.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, 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.Containers.Indefinite_Holder
*** 47,54 ****
     pragma Preelaborate (Indefinite_Holders);
     pragma Remote_Types (Indefinite_Holders);
  
!    type Holder is tagged private;
!    pragma Preelaborable_Initialization (Holder);
  
     Empty_Holder : constant Holder;
  
--- 47,55 ----
     pragma Preelaborate (Indefinite_Holders);
     pragma Remote_Types (Indefinite_Holders);
  
!    type Holder is tagged private
!    with
!       Preelaborable_Initialization;
  
     Empty_Holder : constant Holder;
  
*************** package Ada.Containers.Indefinite_Holder
*** 75,86 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 76,87 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinve.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinve.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coinve.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinve.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coinve.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinve.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coinve.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coinve.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 66,77 ****
       Aggregate         => (Empty          => Empty,
                             Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
!                            Assign_Indexed => Replace_Element);
! 
!    pragma Preelaborable_Initialization (Vector);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Vector : constant Vector;
  
--- 66,77 ----
       Aggregate         => (Empty          => Empty,
                             Add_Unnamed    => Append,
                             New_Indexed    => New_Vector,
!                            Assign_Indexed => Replace_Element),
!      Preelaborable_Initialization;
  
!    type Cursor is private
!    with
!      Preelaborable_Initialization;
  
     Empty_Vector : constant Vector;
  
*************** is
*** 120,130 ****
     procedure Clear (Container : in out Vector);
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 120,131 ----
     procedure Clear (Container : in out Vector);
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-colien.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colien.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-colien.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colien.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-colien.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colien.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-colien.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colien.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-colire.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colire.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-colire.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colire.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-colire.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colire.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-colire.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-colire.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-comlin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comlin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-comlin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comlin.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-comlin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comlin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-comlin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comlin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-comutr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comutr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-comutr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comutr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1844,1854 ****
        end Rec;
  
     begin
!       if First_Child (Root (V)) = No_Element then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (First_Child (Root (V)));
        end if;
     end Put_Image;
  
--- 1844,1854 ----
        end Rec;
  
     begin
!       if Is_Empty (V) then
           Array_Before (S);
           Array_After (S);
        else
!          Rec (Root (V));
        end if;
     end Put_Image;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-comutr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comutr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-comutr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-comutr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 54,64 ****
       with Constant_Indexing => Constant_Reference,
            Variable_Indexing => Reference,
            Default_Iterator  => Iterate,
!           Iterator_Element  => Element_Type;
!    pragma Preelaborable_Initialization (Tree);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Tree : constant Tree;
  
--- 54,64 ----
       with Constant_Indexing => Constant_Reference,
            Variable_Indexing => Reference,
            Default_Iterator  => Iterate,
!           Iterator_Element  => Element_Type,
!           Preelaborable_Initialization;
  
!    type Cursor is private
!      with Preelaborable_Initialization;
  
     Empty_Tree : constant Tree;
  
*************** is
*** 107,118 ****
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
--- 107,120 ----
        Process   : not null access procedure (Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     type Reference_Type
!      (Element : not null access Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Tree;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-conhel.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-conhel.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-conhel.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-conhel.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2015-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-conhel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-conhel.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-conhel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-conhel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-convec.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-convec.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-convec.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-convec.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-convec.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-convec.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-convec.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-convec.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 97,111 ****
        Aggregate         => (Empty          => Empty,
                              Add_Unnamed    => Append,
                              New_Indexed    => New_Vector,
!                             Assign_Indexed => Replace_Element);
! 
!    pragma Preelaborable_Initialization (Vector);
     --  Vector type, to be instantiated by users of this package. If an object
     --  of type Vector is not otherwise initialized, it is initialized to
     --  Empty_Vector.
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
     --  Cursor pointing into an instance of vector. If an object of type Cursor
     --  is not otherwise initialized, it is initialized to No_Element
  
--- 97,111 ----
        Aggregate         => (Empty          => Empty,
                              Add_Unnamed    => Append,
                              New_Indexed    => New_Vector,
!                             Assign_Indexed => Replace_Element),
!       Preelaborable_Initialization;
     --  Vector type, to be instantiated by users of this package. If an object
     --  of type Vector is not otherwise initialized, it is initialized to
     --  Empty_Vector.
  
!    type Cursor is private
!    with
!       Preelaborable_Initialization;
     --  Cursor pointing into an instance of vector. If an object of type Cursor
     --  is not otherwise initialized, it is initialized to No_Element
  
*************** is
*** 291,302 ****
     --  successful completion of this operation.
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is
!    private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 291,302 ----
     --  successful completion of this operation.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coorma.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorma.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coorma.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorma.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coorma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorma.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coorma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 60,70 ****
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert);
!    pragma Preelaborable_Initialization (Map);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Map : constant Map;
  
--- 60,71 ----
        Default_Iterator  => Iterate,
        Iterator_Element  => Element_Type,
        Aggregate         => (Empty     => Empty,
!                             Add_Named => Insert),
!       Preelaborable_Initialization;
  
!    type Cursor is private
!    with
!       Preelaborable_Initialization;
  
     Empty_Map : constant Map;
  
*************** is
*** 107,117 ****
                     procedure (Key : Key_Type; Element : in out Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type (Element : not null access Element_Type) is private
     with
        Implicit_Dereference => Element;
  
--- 108,119 ----
                     procedure (Key : Key_Type; Element : in out Element_Type));
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
!    type Reference_Type
!      (Element : not null access Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coormu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coormu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coormu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coormu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coormu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coormu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coormu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coormu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 57,68 ****
     type Set is tagged private
     with Constant_Indexing => Constant_Reference,
          Default_Iterator  => Iterate,
!         Iterator_Element  => Element_Type;
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_Set : constant Set;
     --  The default value for set objects declared without an explicit
--- 57,67 ----
     type Set is tagged private
     with Constant_Indexing => Constant_Reference,
          Default_Iterator  => Iterate,
!         Iterator_Element  => Element_Type,
!         Preelaborable_Initialization;
  
!    type Cursor is private
!    with Preelaborable_Initialization;
  
     Empty_Set : constant Set;
     --  The default value for set objects declared without an explicit
*************** is
*** 133,140 ****
     --  with elements") will raise Program_Error.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is private
!         with Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
--- 132,140 ----
     --  with elements") will raise Program_Error.
  
     type Constant_Reference_Type
!      (Element : not null access constant Element_Type) is limited private
!    with
!       Implicit_Dereference => Element;
  
     function Constant_Reference
       (Container : aliased Set;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coorse.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorse.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coorse.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorse.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coorse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorse.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coorse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coorse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, 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
*** 59,70 ****
          Default_Iterator  => Iterate,
          Iterator_Element  => Element_Type,
          Aggregate         => (Empty       => Empty,
!                               Add_Unnamed => Include);
! 
!    pragma Preelaborable_Initialization (Set);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     function Has_Element (Position : Cursor) return Boolean;
  
--- 59,69 ----
          Default_Iterator  => Iterate,
          Iterator_Element  => Element_Type,
          Aggregate         => (Empty       => Empty,
!                               Add_Unnamed => Include),
!         Preelaborable_Initialization;
  
!    type Cursor is private
!    with Preelaborable_Initialization;
  
     function Has_Element (Position : Cursor) return Boolean;
  
*************** is
*** 100,107 ****
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is
!    private
     with
        Implicit_Dereference => Element;
  
--- 99,105 ----
        Process  : not null access procedure (Element : Element_Type));
  
     type Constant_Reference_Type
!       (Element : not null access constant Element_Type) is limited private
     with
        Implicit_Dereference => Element;
  
*************** is
*** 291,297 ****
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type (Element : not null access Element_Type) is private
        with
           Implicit_Dereference => Element;
  
--- 289,296 ----
           Process   : not null access
                         procedure (Element : in out Element_Type));
  
!       type Reference_Type
!         (Element : not null access Element_Type) is limited private
        with
           Implicit_Dereference => Element;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coprnu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coprnu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-coprnu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coprnu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-coprnu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coprnu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-coprnu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-coprnu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-costso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-costso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-costso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-costso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-costso.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-costso.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-costso.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-costso.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crbltr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbltr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-crbltr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbltr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crbtgk.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgk.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-crbtgk.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgk.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crbtgk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgk.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-crbtgk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crbtgo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-crbtgo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crbtgo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-crbtgo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crbtgo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crdlli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crdlli.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-crdlli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crdlli.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-crdlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crdlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-crdlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-crdlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** generic
*** 46,56 ****
  package Ada.Containers.Restricted_Doubly_Linked_Lists is
     pragma Pure;
  
!    type List (Capacity : Count_Type) is tagged limited private;
!    pragma Preelaborable_Initialization (List);
  
!    type Cursor is private;
!    pragma Preelaborable_Initialization (Cursor);
  
     Empty_List : constant List;
     --  The default value for list objects declared without an explicit
--- 46,56 ----
  package Ada.Containers.Restricted_Doubly_Linked_Lists is
     pragma Pure;
  
!    type List (Capacity : Count_Type) is tagged limited private
!    with Preelaborable_Initialization;
  
!    type Cursor is private
!    with Preelaborable_Initialization;
  
     Empty_List : constant List;
     --  The default value for list objects declared without an explicit
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-csquin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-csquin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-csquin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-csquin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cuprqu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cuprqu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cuprqu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cuprqu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cuprqu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cuprqu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cuprqu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cuprqu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cusyqu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cusyqu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-cusyqu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cusyqu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cusyqu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cusyqu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cusyqu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cusyqu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-cwila1.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cwila1.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cwila1.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cwila1.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-cwila9.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cwila9.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-cwila9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-cwila9.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-decima.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-decima.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-decima.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-decima.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-decima__128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima__128.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-decima__128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-decima__128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-dhfina.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dhfina.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-dhfina.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dhfina.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-dhfina.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dhfina.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-dhfina.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dhfina.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-diocst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-diocst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-diocst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-diocst.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-diocst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-diocst.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-diocst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-diocst.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-direct.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direct.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-direct.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direct.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-direct.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direct.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-direct.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direct.ads	Thu Apr 23 11:07:32 2026
***************
*** 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. --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, 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-15.2.0/gcc/ada/libgnat/a-direio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-direio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-direio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-direio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-direio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-dirval.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-dirval.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (POSIX Version)                              --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-dirval.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-dirval.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-dirval__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-dirval__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-dirval__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-einuoc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-einuoc.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-einuoc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-einuoc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-einuoc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-einuoc.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-einuoc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-einuoc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-elchha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-elchha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-elchha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-elchha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-elchha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-elchha.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-elchha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-elchha.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-envvar.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-envvar.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-envvar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-envvar.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-excach.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-excach.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-excach.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-excach.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-except.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-except.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-except.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-except.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 450,455 ****
--- 450,457 ----
       (File : System.Address; Line : Integer);
     procedure Rcheck_CE_Tag_Check
       (File : System.Address; Line : Integer);
+    procedure Rcheck_PE_Abstract_Type_Component
+      (File : System.Address; Line : Integer);
     procedure Rcheck_PE_Access_Before_Elaboration
       (File : System.Address; Line : Integer);
     procedure Rcheck_PE_Accessibility_Check
*************** package body Ada.Exceptions is
*** 542,547 ****
--- 544,551 ----
                    "__gnat_rcheck_CE_Range_Check");
     pragma Export (C, Rcheck_CE_Tag_Check,
                    "__gnat_rcheck_CE_Tag_Check");
+    pragma Export (C, Rcheck_PE_Abstract_Type_Component,
+                   "__gnat_rcheck_PE_Abstract_Type_Component");
     pragma Export (C, Rcheck_PE_Access_Before_Elaboration,
                    "__gnat_rcheck_PE_Access_Before_Elaboration");
     pragma Export (C, Rcheck_PE_Accessibility_Check,
*************** package body Ada.Exceptions is
*** 620,625 ****
--- 624,630 ----
     pragma No_Return (Rcheck_CE_Partition_Check);
     pragma No_Return (Rcheck_CE_Range_Check);
     pragma No_Return (Rcheck_CE_Tag_Check);
+    pragma No_Return (Rcheck_PE_Abstract_Type_Component);
     pragma No_Return (Rcheck_PE_Access_Before_Elaboration);
     pragma No_Return (Rcheck_PE_Accessibility_Check);
     pragma No_Return (Rcheck_PE_Address_Of_Intrinsic);
*************** package body Ada.Exceptions is
*** 683,688 ****
--- 688,695 ----
                               "expected_throw");
     pragma Machine_Attribute (Rcheck_CE_Tag_Check,
                               "expected_throw");
+    pragma Machine_Attribute (Rcheck_PE_Abstract_Type_Component,
+                              "expected_throw");
     pragma Machine_Attribute (Rcheck_PE_Access_Before_Elaboration,
                               "expected_throw");
     pragma Machine_Attribute (Rcheck_PE_Accessibility_Check,
*************** package body Ada.Exceptions is
*** 775,780 ****
--- 782,789 ----
                               "strub", "callable");
     pragma Machine_Attribute (Rcheck_CE_Tag_Check,
                               "strub", "callable");
+    pragma Machine_Attribute (Rcheck_PE_Abstract_Type_Component,
+                              "strub", "callable");
     pragma Machine_Attribute (Rcheck_PE_Access_Before_Elaboration,
                               "strub", "callable");
     pragma Machine_Attribute (Rcheck_PE_Accessibility_Check,
*************** package body Ada.Exceptions is
*** 885,890 ****
--- 894,901 ----
     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;
+    Rmsg_39 : constant String := "initialization of abstract type"  &
+                                 " component not allowed"           & NUL;
  
     ---------
     -- AAA --
*************** package body Ada.Exceptions is
*** 1471,1476 ****
--- 1482,1494 ----
        Raise_Constraint_Error_Msg (File, Line, 0, Rmsg_13'Address);
     end Rcheck_CE_Tag_Check;
  
+    procedure Rcheck_PE_Abstract_Type_Component
+      (File : System.Address; Line : Integer)
+    is
+    begin
+       Raise_Program_Error_Msg (File, Line, Rmsg_39'Address);
+    end Rcheck_PE_Abstract_Type_Component;
+ 
     procedure Rcheck_PE_Access_Before_Elaboration
       (File : System.Address; Line : Integer)
     is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-except.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-except.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-except.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-except.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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.Exceptions is
*** 45,57 ****
     pragma Preelaborate;
     --  In accordance with Ada 2005 AI-362.
  
!    type Exception_Id is private;
!    pragma Preelaborable_Initialization (Exception_Id);
  
     Null_Id : constant Exception_Id;
  
!    type Exception_Occurrence is limited private;
!    pragma Preelaborable_Initialization (Exception_Occurrence);
  
     type Exception_Occurrence_Access is access all Exception_Occurrence;
  
--- 45,57 ----
     pragma Preelaborate;
     --  In accordance with Ada 2005 AI-362.
  
!    type Exception_Id is private
!    with Preelaborable_Initialization;
  
     Null_Id : constant Exception_Id;
  
!    type Exception_Occurrence is limited private
!    with Preelaborable_Initialization;
  
     type Exception_Occurrence_Access is access all Exception_Occurrence;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-exctra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exctra.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-exctra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exctra.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-exctra.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exctra.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-exctra.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exctra.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-exexda.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exexda.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-exexda.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exexda.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-exexpr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exexpr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-exexpr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exexpr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-exextr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exextr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-exextr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exextr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-exstat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exstat.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-exstat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-exstat.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-finali.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-finali.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-finali.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-finali.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-finali.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-finali.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-finali.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-finali.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** pragma Warnings (On);
*** 40,54 ****
  package Ada.Finalization is
     pragma Pure;
  
!    type Controlled is abstract tagged private;
!    pragma Preelaborable_Initialization (Controlled);
  
     procedure Initialize (Object : in out Controlled) is null;
     procedure Adjust     (Object : in out Controlled) is null;
     procedure Finalize   (Object : in out Controlled) is null;
  
!    type Limited_Controlled is abstract tagged limited private;
!    pragma Preelaborable_Initialization (Limited_Controlled);
  
     procedure Initialize (Object : in out Limited_Controlled) is null;
     procedure Finalize   (Object : in out Limited_Controlled) is null;
--- 40,54 ----
  package Ada.Finalization is
     pragma Pure;
  
!    type Controlled is abstract tagged private
!    with Preelaborable_Initialization;
  
     procedure Initialize (Object : in out Controlled) is null;
     procedure Adjust     (Object : in out Controlled) is null;
     procedure Finalize   (Object : in out Controlled) is null;
  
!    type Limited_Controlled is abstract tagged limited private
!    with Preelaborable_Initialization;
  
     procedure Initialize (Object : in out Limited_Controlled) is null;
     procedure Finalize   (Object : in out Limited_Controlled) is null;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-locale.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-locale.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-locale.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-locale.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-locale.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-locale.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-locale.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-locale.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, 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-15.2.0/gcc/ada/libgnat/a-nagefl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nagefl.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nagefl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nagefl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Generic Wrapper)                             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-naliop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-naliop.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-naliop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-naliop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-naliop__nolibm.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-naliop__nolibm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-naliop__nolibm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nallfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nallfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nallfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nallfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (Instrinsic Version, Long Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nallfl__wraplf.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nallfl__wraplf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nallfl__wraplf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --              (Long Long Float Wrapper in terms of Long Float)            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nalofl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nalofl.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nalofl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nalofl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Intrinsic Version, Long Float)                    --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nalofl__simd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nalofl__simd.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nalofl__simd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nalofl__simd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (Intrinsic/SIMD Version, Long Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nashfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nashfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nashfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nashfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                  (Short Float Wrapper in terms of Float)                 --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nashfl__wraplf.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nashfl__wraplf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nashfl__wraplf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                (Short Float Wrapper in terms of Long Float)              --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nbnbig.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbig.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nbnbig.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbig.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,81 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT RUN-TIME COMPONENTS                         --
- --                                                                          --
- --               ADA.NUMERICS.BIG_NUMBERS.BIG_INTEGERS_GHOST                --
- --                                                                          --
- --                                 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- --
- -- 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 body is provided as a work-around for a GNAT compiler bug, as GNAT
- --  currently does not compile instantiations of the spec with imported ghost
- --  generics for packages Signed_Conversions and Unsigned_Conversions.
- 
- --  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.
- 
- pragma Assertion_Policy (Ghost => Ignore);
- 
- package body Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
-    SPARK_Mode => Off
- is
- 
-    package body Signed_Conversions with
-      SPARK_Mode => Off
-    is
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
-       begin
-          raise Program_Error;
-          return (null record);
-       end To_Big_Integer;
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
-       begin
-          raise Program_Error;
-          return 0;
-       end From_Big_Integer;
- 
-    end Signed_Conversions;
- 
-    package body Unsigned_Conversions with
-      SPARK_Mode => Off
-    is
- 
-       function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
-       begin
-          raise Program_Error;
-          return (null record);
-       end To_Big_Integer;
- 
-       function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
-       begin
-          raise Program_Error;
-          return 0;
-       end From_Big_Integer;
- 
-    end Unsigned_Conversions;
- 
- end Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nbnbig.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbig.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nbnbig.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbig.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,241 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT RUN-TIME COMPONENTS                         --
- --                                                                          --
- --               ADA.NUMERICS.BIG_NUMBERS.BIG_INTEGERS_GHOST                --
- --                                                                          --
- --                                 S p e c                                  --
- --                                                                          --
- -- This specification is derived from the Ada Reference Manual for use with --
- -- GNAT.  In accordance with the copyright of that document, you can freely --
- -- copy and modify this specification,  provided that if you redistribute a --
- -- modified version,  any changes that you have made are clearly indicated. --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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.
- 
- pragma Assertion_Policy (Ghost => Ignore);
- 
- package Ada.Numerics.Big_Numbers.Big_Integers_Ghost with
-    SPARK_Mode,
-    Ghost,
-    Pure,
-    Always_Terminates
- is
- 
-    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;
- 
-    function "<" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function "<=" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function ">" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function ">=" (L, R : Valid_Big_Integer) return Boolean with
-       Import,
-       Global => null;
- 
-    function To_Big_Integer (Arg : Integer) return Valid_Big_Integer
-      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 (Low <= Arg and Arg <= High)
-    with
-      Import,
-      Global => null;
-    --  Check whether Arg is in the range Low .. High
- 
-    function To_Integer (Arg : Valid_Big_Integer) return Integer
-    with
-      Import,
-      Pre    => In_Range (Arg,
-                          Low  => To_Big_Integer (Integer'First),
-                          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
-         Pre    => In_Range (Arg,
-                             Low  => To_Big_Integer (Int'First),
-                             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
-         Pre    => In_Range (Arg,
-                             Low  => To_Big_Integer (Int'First),
-                             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;
- 
-    function From_String (Arg : String) return Valid_Big_Integer
-    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,
-      Global => null;
- 
-    function "-" (L : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function "**" (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer
-    with
-      Import,
-      Global => null;
- 
-    function Greatest_Common_Divisor
-      (L, R : Valid_Big_Integer) return Big_Positive
-    with
-      Import,
-      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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nbnbin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nbnbin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbin__gmp.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nbnbin__gmp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbin__gmp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nbnbre.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbre.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nbnbre.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nbnbre.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2019-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngcefu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcefu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ngcefu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcefu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngcoar.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoar.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ngcoar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoar.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2006-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngcoty.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoty.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ngcoty.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoty.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngcoty.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoty.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ngcoty.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngcoty.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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.Numerics.Generic_Complex_Typ
*** 45,52 ****
  
     pragma Complex_Representation (Complex);
  
!    type Imaginary is private;
!    pragma Preelaborable_Initialization (Imaginary);
  
     i : constant Imaginary;
     j : constant Imaginary;
--- 45,52 ----
  
     pragma Complex_Representation (Complex);
  
!    type Imaginary is private
!    with Preelaborable_Initialization;
  
     i : constant Imaginary;
     j : constant Imaginary;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngelfu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngelfu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ngelfu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngelfu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 965,971 ****
  
        P, Q, R : Float_Type'Base;
        Y : constant Float_Type'Base := abs X;
-       G : constant Float_Type'Base := Y * Y;
  
        Float_Type_Digits_15_Or_More : constant Boolean :=
          Float_Type'Digits > 14;
--- 965,970 ----
*************** is
*** 983,992 ****
        elsif Y < Half_Ln3
          and then Float_Type_Digits_15_Or_More
        then
!          P := (P2 * G + P1) * G + P0;
!          Q := ((Q3 * G + Q2) * G + Q1) * G + Q0;
!          R := G * (P / Q);
!          return X + X * R;
  
        else
           return Aux.Tanh (X);
--- 982,995 ----
        elsif Y < Half_Ln3
          and then Float_Type_Digits_15_Or_More
        then
!          declare
!             G : constant Float_Type'Base := Y * Y;
!          begin
!             P := (P2 * G + P1) * G + P0;
!             Q := ((Q3 * G + Q2) * G + Q1) * G + Q0;
!             R := G * (P / Q);
!             return X + X * R;
!          end;
  
        else
           return Aux.Tanh (X);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngelfu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngelfu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ngelfu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngelfu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-ngrear.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngrear.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ngrear.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngrear.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ngrear.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngrear.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ngrear.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ngrear.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-nuauco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuauco.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuauco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuauco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuauco__x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuauco__x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuauco__x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuauco__x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuaufl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuaufl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (Intrinsic Version, Float)                        --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl__simd.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuaufl__simd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl__simd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (Intrinsic/SIMD Version, Float)                     --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl__wraplf.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuaufl__wraplf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (Double-based Version, Float)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nudira.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nudira.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nudira.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nudira.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nudira.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nudira.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nudira.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nudira.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** generic
*** 44,81 ****
     type Result_Subtype is (<>);
  
  package Ada.Numerics.Discrete_Random with
!   SPARK_Mode => Off
  is
  
     --  Basic facilities
  
!    type Generator is limited private;
  
!    function Random (Gen : Generator) return Result_Subtype;
  
     function Random
       (Gen   : Generator;
        First : Result_Subtype;
        Last  : Result_Subtype) return Result_Subtype
!      with Post => Random'Result in First .. Last;
  
!    procedure Reset (Gen : Generator; Initiator : Integer);
!    procedure Reset (Gen : Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State);
!    procedure Reset (Gen : Generator; From_State : State);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String;
!    function Value (Coded_State : String) return State;
  
  private
  
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
--- 44,103 ----
     type Result_Subtype is (<>);
  
  package Ada.Numerics.Discrete_Random with
!   SPARK_Mode => On,
!   Always_Terminates
  is
  
     --  Basic facilities
  
!    type Generator is limited private with Default_Initial_Condition;
  
!    function Random (Gen : Generator) return Result_Subtype with
!      Global => null,
!      Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     function Random
       (Gen   : Generator;
        First : Result_Subtype;
        Last  : Result_Subtype) return Result_Subtype
!      with
!        Post => Random'Result in First .. Last,
!        Global => null,
!        Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
!    procedure Reset (Gen : Generator; Initiator : Integer) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
! 
!    procedure Reset (Gen : Generator) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
! 
!    procedure Reset (Gen : Generator; From_State : State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String with
!      Global => null;
!    function Value (Coded_State : String) return State with
!      Global => null;
  
  private
  
+    pragma SPARK_Mode (Off);
+ 
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuflra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuflra.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-nuflra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuflra.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-nuflra.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuflra.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-nuflra.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-nuflra.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 39,72 ****
  with System.Random_Numbers;
  
  package Ada.Numerics.Float_Random with
!   SPARK_Mode => Off
  is
  
     --  Basic facilities
  
!    type Generator is limited private;
  
     subtype Uniformly_Distributed is Float range 0.0 .. 1.0;
  
!    function Random (Gen : Generator) return Uniformly_Distributed;
  
!    procedure Reset (Gen : Generator);
!    procedure Reset (Gen : Generator; Initiator : Integer);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State);
!    procedure Reset (Gen : Generator; From_State : State);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String;
!    function Value (Coded_State : String) return State;
  
  private
  
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
--- 39,88 ----
  with System.Random_Numbers;
  
  package Ada.Numerics.Float_Random with
!   SPARK_Mode => On,
!   Always_Terminates
  is
  
     --  Basic facilities
  
!    type Generator is limited private with Default_Initial_Condition;
  
     subtype Uniformly_Distributed is Float range 0.0 .. 1.0;
  
!    function Random (Gen : Generator) return Uniformly_Distributed with
!      Global => null,
!      Side_Effects;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
!    procedure Reset (Gen : Generator) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
!    procedure Reset (Gen : Generator; Initiator : Integer) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     --  Advanced facilities
  
     type State is private;
  
!    procedure Save  (Gen : Generator; To_State   : out State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
!    procedure Reset (Gen : Generator; From_State : State) with
!      Global => null;
!    pragma Annotate (GNATprove, Mutable_In_Parameters, Generator);
  
     Max_Image_Width : constant := System.Random_Numbers.Max_Image_Width;
  
!    function Image (Of_State    : State)  return String with
!      Global => null;
!    function Value (Coded_State : String) return State with
!      Global => null;
  
  private
  
+    pragma SPARK_Mode (Off);
+ 
     type Generator is new System.Random_Numbers.Generator;
  
     type State is new System.Random_Numbers.State;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-numaux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-numaux.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-numaux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-numaux.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgbk.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbk.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgbk.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbk.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgbk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbk.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgbk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgbo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgbo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgbo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgbo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgbo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgso.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-rbtgso.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgso.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-rbtgso.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-rbtgso.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sbecin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbecin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sbecin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbecin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sbecin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbecin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sbecin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbecin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sbhcin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbhcin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sbhcin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbhcin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sbhcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbhcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sbhcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sbhcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sblcin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sblcin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sblcin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sblcin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sblcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sblcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sblcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sblcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-secain.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-secain.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-secain.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-secain.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-secain.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-secain.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-secain.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-secain.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sequio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sequio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sequio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sequio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sequio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sequio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sequio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sequio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sfecin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sfecin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sfecin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sfecin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sfhcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sfhcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sfhcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sfhcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sflcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sflcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sflcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sflcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-shcain.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-shcain.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-shcain.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-shcain.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-shcain.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-shcain.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-shcain.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-shcain.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-siocst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-siocst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-siocst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-siocst.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-siocst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-siocst.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-siocst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-siocst.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-slcain.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-slcain.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-slcain.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-slcain.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-slcain.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-slcain.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-slcain.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-slcain.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ssicst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ssicst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ssicst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ssicst.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ssicst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ssicst.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ssicst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ssicst.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stboha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stboha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stboha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stboha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbubo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbubo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stbubo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbubo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbubo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbubo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stbubo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbubo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, 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-15.2.0/gcc/ada/libgnat/a-stbufi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stbufi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbufi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufi.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stbufi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbufo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stbufo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbufo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stbufo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbufo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbuun.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuun.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stbuun.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuun.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbuut.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuut.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stbuut.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuut.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stbuut.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuut.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stbuut.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stbuut.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stmaco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stmaco.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stmaco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stmaco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-storio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-storio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-storio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-storio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strbou.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strbou.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strbou.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strbou.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strbou.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strbou.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strbou.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strbou.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 75,82 ****
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_String is private;
!       pragma Preelaborable_Initialization (Bounded_String);
  
        Null_Bounded_String : constant Bounded_String;
        --  Null_Bounded_String represents the null string. If an object of type
--- 75,83 ----
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_String is private
!       with
!         Preelaborable_Initialization;
  
        Null_Bounded_String : constant Bounded_String;
        --  Null_Bounded_String represents the null string. If an object of type
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stream.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stream.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stream.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stream.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2013-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-stream.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stream.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stream.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stream.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
***************
*** 36,43 ****
  package Ada.Streams is
     pragma Pure;
  
!    type Root_Stream_Type is abstract tagged limited private;
!    pragma Preelaborable_Initialization (Root_Stream_Type);
  
     type Stream_Element is mod 2 ** Standard'Storage_Unit;
  
--- 36,43 ----
  package Ada.Streams is
     pragma Pure;
  
!    type Root_Stream_Type is abstract tagged limited private
!    with Preelaborable_Initialization;
  
     type Stream_Element is mod 2 ** Standard'Storage_Unit;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strfix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strfix.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strfix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strfix.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,51 ****
  --  bounds of function return results were also fixed, and use of & removed for
  --  efficiency reasons.
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  
  package body Ada.Strings.Fixed with SPARK_Mode is
--- 38,43 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 153,164 ****
        Right : Character) return String
     is
     begin
!       return Result : String (1 .. Left) with Relaxed_Initialization do
           for J in Result'Range loop
              Result (J) := Right;
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                  Result (K)'Initialized and then Result (K) = Right);
           end loop;
        end return;
     end "*";
--- 145,153 ----
        Right : Character) return String
     is
     begin
!       return Result : String (1 .. Left) do
           for J in Result'Range loop
              Result (J) := Right;
           end loop;
        end return;
     end "*";
*************** package body Ada.Strings.Fixed with SPAR
*** 168,249 ****
        Right : String) return String
     is
        Ptr : Integer := 0;
- 
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Integer) with
-         Ghost,
-         Pre =>
-           Right'Length /= 0
-           and then Ptr mod Right'Length = 0
-           and then Ptr in 0 .. Natural'Last - Right'Length
-           and then K in Ptr .. Ptr + Right'Length - 1,
-         Post => K mod Right'Length = K - Ptr;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Right'Length.
- 
-       procedure Lemma_Split (Result : String) with
-         Ghost,
-         Relaxed_Initialization => Result,
-         Pre                    =>
-           Right'Length /= 0
-             and then Result'First = 1
-             and then Result'Last >= 0
-             and then Ptr mod Right'Length = 0
-             and then Ptr in 0 .. Result'Last - Right'Length
-             and then Result (Result'First .. Ptr + Right'Length)'Initialized
-             and then Result (Ptr + 1 .. Ptr + Right'Length) = Right,
-         Post                   =>
-           (for all K in Ptr + 1 .. Ptr + Right'Length =>
-             Result (K) = Right (Right'First + (K - 1) mod Right'Length));
-       --  Lemma_Split is used after Result (Ptr + 1 .. Ptr + Right'Length) is
-       --  updated to Right and concludes that the characters match for each
-       --  index when taken modulo Right'Length, as the considered slice starts
-       --  at index 1 modulo Right'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Integer) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split (Result : String)
-       is
-       begin
-          for K in Ptr + 1 .. Ptr + Right'Length loop
-             Lemma_Mod (K - 1);
-             pragma Loop_Invariant
-               (for all J in Ptr + 1 .. K =>
-                  Result (J) = Right (Right'First + (J - 1) mod Right'Length));
-          end loop;
-       end Lemma_Split;
- 
-    --  Start of processing for "*"
- 
     begin
        if Right'Length = 0 then
           return "";
        end if;
  
!       return Result : String (1 .. Left * Right'Length)
!         with Relaxed_Initialization
!       do
           for J in 1 .. Left loop
              Result (Ptr + 1 .. Ptr + Right'Length) := Right;
-             Lemma_Split (Result);
              Ptr := Ptr + Right'Length;
-             pragma Loop_Invariant (Ptr = J * Right'Length);
-             pragma Loop_Invariant (Result (1 .. Ptr)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. Ptr =>
-                  Result (K) = Right (Right'First + (K - 1) mod Right'Length));
           end loop;
        end return;
     end "*";
--- 157,171 ----
        Right : String) return String
     is
        Ptr : Integer := 0;
     begin
        if Right'Length = 0 then
           return "";
        end if;
  
!       return Result : String (1 .. Left * Right'Length) do
           for J in 1 .. Left loop
              Result (Ptr + 1 .. Ptr + Right'Length) := Right;
              Ptr := Ptr + Right'Length;
           end loop;
        end return;
     end "*";
*************** package body Ada.Strings.Fixed with SPAR
*** 255,262 ****
     function Delete
       (Source  : String;
        From    : Positive;
!       Through : Natural) return String
!    is
     begin
        if From > Through then
           declare
--- 177,183 ----
     function Delete
       (Source  : String;
        From    : Positive;
!       Through : Natural) return String is
     begin
        if From > Through then
           declare
*************** package body Ada.Strings.Fixed with SPAR
*** 279,287 ****
              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);
  
--- 200,206 ----
              Result_Length : constant Integer := Front_Len + Back_Len;
              --  Length of result
           begin
!             return Result : String (1 .. Result_Length) do
                 Result (1 .. Front_Len) :=
                   Source (Source'First .. From - 1);
  
*************** package body Ada.Strings.Fixed with SPAR
*** 325,338 ****
             Result_Type (Source (Source'First .. Source'First + (Count - 1)));
  
        else
!          return Result : Result_Type with Relaxed_Initialization do
              Result (1 .. Source'Length) := Source;
  
              for J in Source'Length + 1 .. Count loop
                 Result (J) := Pad;
-                pragma Loop_Invariant
-                  (for all K in Source'Length + 1 .. J =>
-                     Result (K)'Initialized and then Result (K) = Pad);
              end loop;
           end return;
        end if;
--- 244,254 ----
             Result_Type (Source (Source'First .. Source'First + (Count - 1)));
  
        else
!          return Result : Result_Type do
              Result (1 .. Source'Length) := Source;
  
              for J in Source'Length + 1 .. Count loop
                 Result (J) := Pad;
              end loop;
           end return;
        end if;
*************** package body Ada.Strings.Fixed with SPAR
*** 342,349 ****
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Head (Source, Count, Pad),
              Target  => Source,
--- 258,264 ----
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Head (Source, Count, Pad),
              Target  => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 362,398 ****
        New_Item : String) return String
     is
        Front : constant Integer := Before - Source'First;
- 
     begin
        if Before - 1 not in Source'First - 1 .. Source'Last then
           raise Index_Error;
        end if;
  
!       return Result : String (1 .. Source'Length + New_Item'Length)
!         with Relaxed_Initialization
!       do
           Result (1 .. Front) :=
             Source (Source'First .. Before - 1);
           Result (Front + 1 .. Front + New_Item'Length) :=
             New_Item;
  
-          pragma Assert
-            (Result (1 .. Before - Source'First)
-             = Source (Source'First .. Before - 1));
-          pragma Assert
-            (Result
-               (Before - Source'First + 1
-                .. Before - Source'First + New_Item'Length)
-             = New_Item);
- 
           if Before <= Source'Last then
              Result (Front + New_Item'Length + 1 .. Result'Last) :=
                Source (Before .. Source'Last);
           end if;
- 
-          pragma Assert
-            (Result (1 .. Before - Source'First)
-             = Source (Source'First .. Before - 1));
        end return;
     end Insert;
  
--- 277,297 ----
        New_Item : String) return String
     is
        Front : constant Integer := Before - Source'First;
     begin
        if Before - 1 not in Source'First - 1 .. Source'Last then
           raise Index_Error;
        end if;
  
!       return Result : String (1 .. Source'Length + New_Item'Length) do
           Result (1 .. Front) :=
             Source (Source'First .. Before - 1);
           Result (Front + 1 .. Front + New_Item'Length) :=
             New_Item;
  
           if Before <= Source'Last then
              Result (Front + New_Item'Length + 1 .. Result'Last) :=
                Source (Before .. Source'Last);
           end if;
        end return;
     end Insert;
  
*************** package body Ada.Strings.Fixed with SPAR
*** 400,407 ****
       (Source   : in out String;
        Before   : Positive;
        New_Item : String;
!       Drop     : Truncation := Error)
!    is
     begin
        Move (Source => Insert (Source, Before, New_Item),
              Target => Source,
--- 299,305 ----
       (Source   : in out String;
        Before   : Positive;
        New_Item : String;
!       Drop     : Truncation := Error) is
     begin
        Move (Source => Insert (Source, Before, New_Item),
              Target => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 536,573 ****
           Front         : constant Integer := Position - Source'First;
  
        begin
!          return Result : String (1 .. Result_Length)
!            with Relaxed_Initialization
!          do
              Result (1 .. Front) := Source (Source'First .. Position - 1);
-             pragma Assert
-               (Result (1 .. Position - Source'First)
-                = Source (Source'First .. Position - 1));
              Result (Front + 1 .. Front + New_Item'Length) := New_Item;
-             pragma Assert
-               (Result
-                  (Position - Source'First + 1
-                   .. Position - Source'First + New_Item'Length)
-                = New_Item);
  
              if Position <= Source'Last - New_Item'Length then
                 Result (Front + New_Item'Length + 1 .. Result'Last) :=
                   Source (Position + New_Item'Length .. Source'Last);
- 
-                pragma Assert
-                  (Result
-                     (Position - Source'First + New_Item'Length + 1
-                      .. Result'Last)
-                   = Source (Position + New_Item'Length .. Source'Last));
              end if;
- 
-             pragma Assert
-               (if Position <= Source'Last - New_Item'Length
-                then
-                   Result
-                     (Position - Source'First + New_Item'Length + 1
-                      .. Result'Last)
-                   = Source (Position + New_Item'Length .. Source'Last));
           end return;
        end;
     end Overwrite;
--- 434,447 ----
           Front         : constant Integer := Position - Source'First;
  
        begin
!          return Result : String (1 .. Result_Length) do
              Result (1 .. Front) := Source (Source'First .. Position - 1);
              Result (Front + 1 .. Front + New_Item'Length) := New_Item;
  
              if Position <= Source'Last - New_Item'Length then
                 Result (Front + New_Item'Length + 1 .. Result'Last) :=
                   Source (Position + New_Item'Length .. Source'Last);
              end if;
           end return;
        end;
     end Overwrite;
*************** package body Ada.Strings.Fixed with SPAR
*** 576,583 ****
       (Source   : in out String;
        Position : Positive;
        New_Item : String;
!       Drop     : Truncation := Right)
!    is
     begin
        Move (Source => Overwrite (Source, Position, New_Item),
              Target => Source,
--- 450,456 ----
       (Source   : in out String;
        Position : Positive;
        New_Item : String;
!       Drop     : Truncation := Right) is
     begin
        Move (Source => Overwrite (Source, Position, New_Item),
              Target => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 612,650 ****
              --  Length of result
  
           begin
!             return Result : String (1 .. Result_Length)
!               with Relaxed_Initialization do
                 Result (1 .. Front_Len) := Source (Source'First .. Low - 1);
-                pragma Assert
-                  (Result (1 .. Integer'Max (0, Low - Source'First))
-                   = Source (Source'First .. Low - 1));
                 Result (Front_Len + 1 .. Front_Len + By'Length) := By;
-                pragma Assert
-                  (Result
-                     (Integer'Max (0, Low - Source'First) + 1
-                      .. Integer'Max (0, Low - Source'First) + By'Length)
-                   = By);
  
                 if High < Source'Last then
                    Result (Front_Len + By'Length + 1 .. Result'Last) :=
                      Source (High + 1 .. Source'Last);
                 end if;
- 
-                pragma Assert
-                  (Result (1 .. Integer'Max (0, Low - Source'First))
-                   = Source (Source'First .. Low - 1));
-                pragma Assert
-                  (Result
-                     (Integer'Max (0, Low - Source'First) + 1
-                      .. Integer'Max (0, Low - Source'First) + By'Length)
-                   = By);
-                pragma Assert
-                  (if High < Source'Last
-                   then
-                      Result
-                     (Integer'Max (0, Low - Source'First) + By'Length + 1
-                      .. Result'Last)
-                   = Source (High + 1 .. Source'Last));
              end return;
           end;
        else
--- 485,498 ----
              --  Length of result
  
           begin
!             return Result : String (1 .. Result_Length) do
                 Result (1 .. Front_Len) := Source (Source'First .. Low - 1);
                 Result (Front_Len + 1 .. Front_Len + By'Length) := By;
  
                 if High < Source'Last then
                    Result (Front_Len + By'Length + 1 .. Result'Last) :=
                      Source (High + 1 .. Source'Last);
                 end if;
              end return;
           end;
        else
*************** package body Ada.Strings.Fixed with SPAR
*** 659,666 ****
        By       : String;
        Drop     : Truncation := Error;
        Justify  : Alignment  := Left;
!       Pad      : Character  := Space)
!    is
     begin
        Move (Replace_Slice (Source, Low, High, By), Source, Drop, Justify, Pad);
     end Replace_Slice;
--- 507,513 ----
        By       : String;
        Drop     : Truncation := Error;
        Justify  : Alignment  := Left;
!       Pad      : Character  := Space) is
     begin
        Move (Replace_Slice (Source, Low, High, By), Source, Drop, Justify, Pad);
     end Replace_Slice;
*************** package body Ada.Strings.Fixed with SPAR
*** 675,681 ****
        Pad    : Character := Space) return String
     is
        subtype Result_Type is String (1 .. Count);
- 
     begin
        if Count = 0 then
           return "";
--- 522,527 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 686,697 ****
        --  Pad on left
  
        else
!          return Result : Result_Type with Relaxed_Initialization do
              for J in 1 .. Count - Source'Length loop
                 Result (J) := Pad;
-                pragma Loop_Invariant
-                  (for all K in 1 .. J =>
-                     Result (K)'Initialized and then Result (K) = Pad);
              end loop;
  
              if Source'Length /= 0 then
--- 532,540 ----
        --  Pad on left
  
        else
!          return Result : Result_Type do
              for J in 1 .. Count - Source'Length loop
                 Result (J) := Pad;
              end loop;
  
              if Source'Length /= 0 then
*************** package body Ada.Strings.Fixed with SPAR
*** 705,712 ****
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Tail (Source, Count, Pad),
              Target  => Source,
--- 548,554 ----
       (Source  : in out String;
        Count   : Natural;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Tail (Source, Count, Pad),
              Target  => Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 721,755 ****
  
     function Translate
       (Source  : String;
!       Mapping : Maps.Character_Mapping) return String
!    is
     begin
!       return Result : String (1 .. Source'Length)
!         with Relaxed_Initialization
!       do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Value (Mapping, Source (J));
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1))'Initialized);
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1)) =
-                    Value (Mapping, Source (K)));
           end loop;
        end return;
     end Translate;
  
     procedure Translate
       (Source  : in out String;
!       Mapping : Maps.Character_Mapping)
!    is
     begin
        for J in Source'Range loop
           Source (J) := Value (Mapping, Source (J));
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               Source (K) = Value (Mapping, Source'Loop_Entry (K)));
        end loop;
     end Translate;
  
--- 563,583 ----
  
     function Translate
       (Source  : String;
!       Mapping : Maps.Character_Mapping) return String is
     begin
!       return Result : String (1 .. Source'Length) do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Value (Mapping, Source (J));
           end loop;
        end return;
     end Translate;
  
     procedure Translate
       (Source  : in out String;
!       Mapping : Maps.Character_Mapping) is
     begin
        for J in Source'Range loop
           Source (J) := Value (Mapping, Source (J));
        end loop;
     end Translate;
  
*************** package body Ada.Strings.Fixed with SPAR
*** 759,781 ****
     is
        pragma Unsuppress (Access_Check);
     begin
!       return Result : String (1 .. Source'Length)
!         with Relaxed_Initialization
!       do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Mapping.all (Source (J));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1))'Initialized);
-             pragma Loop_Invariant
-               (for all K in Source'First .. J =>
-                  Result (K - (Source'First - 1)) = Mapping (Source (K)));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
           end loop;
        end return;
     end Translate;
--- 587,595 ----
     is
        pragma Unsuppress (Access_Check);
     begin
!       return Result : String (1 .. Source'Length) do
           for J in Source'Range loop
              Result (J - (Source'First - 1)) := Mapping.all (Source (J));
           end loop;
        end return;
     end Translate;
*************** package body Ada.Strings.Fixed with SPAR
*** 788,802 ****
     begin
        for J in Source'Range loop
           Source (J) := Mapping.all (Source (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               Source (K) = Mapping (Source'Loop_Entry (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
     end Translate;
  
--- 602,607 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 872,879 ****
       (Source  : in out String;
        Side    : Trim_End;
        Justify : Alignment := Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Trim (Source, Side),
              Source,
--- 677,683 ----
       (Source  : in out String;
        Side    : Trim_End;
        Justify : Alignment := Left;
!       Pad     : Character := Space) is
     begin
        Move (Trim (Source, Side),
              Source,
*************** package body Ada.Strings.Fixed with SPAR
*** 887,893 ****
        Right  : Maps.Character_Set) return String
     is
        High, Low : Integer;
- 
     begin
        Low := Index (Source, Set => Left, Test => Outside, Going => Forward);
  
--- 691,696 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 908,914 ****
        declare
           Result_Length : constant Integer := High - Low + 1;
           subtype Result_Type is String (1 .. Result_Length);
- 
        begin
           return Result_Type (Source (Low .. High));
        end;
--- 711,716 ----
*************** package body Ada.Strings.Fixed with SPAR
*** 919,926 ****
        Left    : Maps.Character_Set;
        Right   : Maps.Character_Set;
        Justify : Alignment := Strings.Left;
!       Pad     : Character := Space)
!    is
     begin
        Move (Source  => Trim (Source, Left, Right),
              Target  => Source,
--- 721,727 ----
        Left    : Maps.Character_Set;
        Right   : Maps.Character_Set;
        Justify : Alignment := Strings.Left;
!       Pad     : Character := Space) is
     begin
        Move (Source  => Trim (Source, Left, Right),
              Target  => Source,
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strhas.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strhas.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strhas.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strhas.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strmap.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strmap.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strmap.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strmap.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,48 ****
  --  is bit-by-bit or character-by-character and therefore rather slow.
  --  Generally for character sets we favor the full 32-byte representation.
  
- --  Assertions, ghost code and loop invariants 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,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore);
- 
  package body Ada.Strings.Maps
    with SPARK_Mode
  is
--- 35,40 ----
*************** is
*** 131,166 ****
     ---------------
  
     function To_Domain (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length) with Relaxed_Initialization;
        J      : Natural;
- 
-       type Character_Index is array (Character) of Natural with Ghost;
-       Indexes : Character_Index := [others => 0] with Ghost;
- 
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := C;
-             Indexes (C) := J;
           end if;
- 
-          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)));
-          pragma Loop_Invariant
-            (for all D in Map'First .. C =>
-               (if Map (D) = D then
-                  Indexes (D) = 0
-                else
-                  Indexes (D) in 1 .. J
-                    and then Result (Indexes (D)) = D));
-          pragma Loop_Invariant
-            (for all Char of Result (1 .. J) => Map (Char) /= Char);
        end loop;
  
        return Result (1 .. J);
--- 123,137 ----
     ---------------
  
     function To_Domain (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length);
        J      : Natural;
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := C;
           end if;
        end loop;
  
        return Result (1 .. J);
*************** is
*** 173,179 ****
     function To_Mapping
       (From, To : Character_Sequence) return Character_Mapping
     is
!       Result   : Character_Mapping with Relaxed_Initialization;
        Inserted : Character_Set := Null_Set;
        From_Len : constant Natural := From'Length;
        To_Len   : constant Natural := To'Length;
--- 144,150 ----
     function To_Mapping
       (From, To : Character_Sequence) return Character_Mapping
     is
!       Result   : Character_Mapping;
        Inserted : Character_Set := Null_Set;
        From_Len : constant Natural := From'Length;
        To_Len   : constant Natural := To'Length;
*************** is
*** 185,193 ****
  
        for Char in Character loop
           Result (Char) := Char;
-          pragma Loop_Invariant (Result (Result'First .. Char)'Initialized);
-          pragma Loop_Invariant
-            (for all C in Result'First .. Char => Result (C) = C);
        end loop;
  
        for J in From'Range loop
--- 156,161 ----
*************** is
*** 197,219 ****
  
           Result   (From (J)) := To (J - From'First + To'First);
           Inserted (From (J)) := True;
- 
-          pragma Loop_Invariant (Result'Initialized);
-          pragma Loop_Invariant
-            (for all K in From'First .. J =>
-               Result (From (K)) = To (K - From'First + To'First)
-                 and then Inserted (From (K)));
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               (Inserted (Char) =
-                  (for some K in From'First .. J => Char = From (K))));
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               (if not Inserted (Char) then Result (Char) = Char));
-          pragma Loop_Invariant
-            (if (for all K in From'First .. J =>
-                   From (K) = To (J - From'First + To'First))
-             then Result = Identity);
        end loop;
  
        return Result;
--- 165,170 ----
*************** is
*** 224,418 ****
     --------------
  
     function To_Range (Map : Character_Mapping) return Character_Sequence is
! 
!       --  Extract from the postcondition of To_Domain the essential properties
!       --  that define Seq as the domain of Map.
!       function Is_Domain
!         (Map : Character_Mapping;
!          Seq : Character_Sequence)
!          return Boolean
!       is
!         (Seq'First = 1
!            and then
!          SPARK_Proof_Sorted_Character_Sequence (Seq)
!            and then
!          (for all Char in Character =>
!             (if (for all X of Seq => X /= Char)
!              then Map (Char) = Char))
!            and then
!          (for all Char of Seq => Map (Char) /= Char))
!       with
!         Ghost;
! 
!       --  Given Map, there is a unique sequence Seq for which
!       --  Is_Domain(Map,Seq) holds.
!       procedure Lemma_Domain_Unicity
!         (Map        : Character_Mapping;
!          Seq1, Seq2 : Character_Sequence)
!       with
!         Ghost,
!         Pre  => Is_Domain (Map, Seq1)
!           and then Is_Domain (Map, Seq2),
!         Post => Seq1 = Seq2;
! 
!       --  Isolate the proof that To_Domain(Map) returns a sequence for which
!       --  Is_Domain holds.
!       procedure Lemma_Is_Domain (Map : Character_Mapping)
!       with
!         Ghost,
!         Post => Is_Domain (Map, To_Domain (Map));
! 
!       --  Deduce the alternative expression of sortedness from the one in
!       --  SPARK_Proof_Sorted_Character_Sequence which compares consecutive
!       --  elements.
!       procedure Lemma_Is_Sorted (Seq : Character_Sequence)
!       with
!         Ghost,
!         Pre  => SPARK_Proof_Sorted_Character_Sequence (Seq),
!         Post => (for all J in Seq'Range =>
!                    (for all K in Seq'Range =>
!                       (if J < K then Seq (J) < Seq (K))));
! 
!       --------------------------
!       -- Lemma_Domain_Unicity --
!       --------------------------
! 
!       procedure Lemma_Domain_Unicity
!         (Map        : Character_Mapping;
!          Seq1, Seq2 : Character_Sequence)
!       is
!          J : Positive := 1;
! 
!       begin
!          while J <= Seq1'Last
!            and then J <= Seq2'Last
!            and then Seq1 (J) = Seq2 (J)
!          loop
!             pragma Loop_Invariant
!               (Seq1 (Seq1'First .. J) = Seq2 (Seq2'First .. J));
!             pragma Loop_Variant (Increases => J);
! 
!             if J = Positive'Last then
!                return;
!             end if;
! 
!             J := J + 1;
!          end loop;
! 
!          Lemma_Is_Sorted (Seq1);
!          Lemma_Is_Sorted (Seq2);
! 
!          if J <= Seq1'Last
!            and then J <= Seq2'Last
!          then
!             if Seq1 (J) < Seq2 (J) then
!                pragma Assert (for all X of Seq2 => X /= Seq1 (J));
!                pragma Assert (Map (Seq1 (J)) = Seq1 (J));
!                pragma Assert (False);
!             else
!                pragma Assert (for all X of Seq1 => X /= Seq2 (J));
!                pragma Assert (Map (Seq2 (J)) = Seq2 (J));
!                pragma Assert (False);
!             end if;
! 
!          elsif J <= Seq1'Last then
!             pragma Assert (for all X of Seq2 => X /= Seq1 (J));
!             pragma Assert (Map (Seq1 (J)) = Seq1 (J));
!             pragma Assert (False);
! 
!          elsif J <= Seq2'Last then
!             pragma Assert (for all X of Seq1 => X /= Seq2 (J));
!             pragma Assert (Map (Seq2 (J)) = Seq2 (J));
!             pragma Assert (False);
!          end if;
!       end Lemma_Domain_Unicity;
! 
!       ---------------------
!       -- Lemma_Is_Domain --
!       ---------------------
! 
!       procedure Lemma_Is_Domain (Map : Character_Mapping) is
!          Ignore : constant Character_Sequence := To_Domain (Map);
!       begin
!          null;
!       end Lemma_Is_Domain;
! 
!       ---------------------
!       -- Lemma_Is_Sorted --
!       ---------------------
! 
!       procedure Lemma_Is_Sorted (Seq : Character_Sequence) is
!       begin
!          for A in Seq'Range loop
!             exit when A = Positive'Last;
! 
!             for B in A + 1 .. Seq'Last loop
!                pragma Loop_Invariant
!                  (for all K in A + 1 .. B => Seq (A) < Seq (K));
!             end loop;
! 
!             pragma Loop_Invariant
!               (for all J in Seq'First .. A =>
!                  (for all K in Seq'Range =>
!                     (if J < K then Seq (J) < Seq (K))));
!          end loop;
!       end Lemma_Is_Sorted;
! 
!       --  Local variables
! 
!       Result : String (1 .. Map'Length) with Relaxed_Initialization;
        J      : Natural;
- 
-       --  Repeat the computation from To_Domain in ghost code, in order to
-       --  prove the relationship between Result and To_Domain(Map).
- 
-       Domain : String (1 .. Map'Length) with Ghost, Relaxed_Initialization;
-       type Character_Index is array (Character) of Natural with Ghost;
-       Indexes : Character_Index := [others => 0] with Ghost;
- 
-    --  Start of processing for To_Range
- 
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := Map (C);
-             Domain (J) := C;
-             Indexes (C) := J;
           end if;
- 
-          --  Repeat the loop invariants from To_Domain regarding Domain and
-          --  Indexes. Add similar loop invariants for Result and Indexes.
- 
-          pragma Loop_Invariant (J <= Character'Pos (C) + 1);
-          pragma Loop_Invariant (Result (1 .. J)'Initialized);
-          pragma Loop_Invariant (Domain (1 .. J)'Initialized);
-          pragma Loop_Invariant (for all K in 1 .. J => Domain (K) <= C);
-          pragma Loop_Invariant
-            (SPARK_Proof_Sorted_Character_Sequence (Domain (1 .. J)));
-          pragma Loop_Invariant
-            (for all D in Map'First .. C =>
-               (if Map (D) = D then
-                  Indexes (D) = 0
-                else
-                  Indexes (D) in 1 .. J
-                    and then Domain (Indexes (D)) = D
-                    and then Result (Indexes (D)) = Map (D)));
-          pragma Loop_Invariant
-            (for all Char of Domain (1 .. J) => Map (Char) /= Char);
-          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)
- 
-       Lemma_Is_Domain (Map);
-       Lemma_Domain_Unicity (Map, Domain (1 .. J), To_Domain (Map));
-       pragma Assert
-         (for all K in 1 .. J => Domain (K) = To_Domain (Map) (K));
-       pragma Assert (To_Domain (Map)'Length = J);
  
        return Result (1 .. J);
     end To_Range;
--- 175,190 ----
     --------------
  
     function To_Range (Map : Character_Mapping) return Character_Sequence is
!       Result : String (1 .. Map'Length);
        J      : Natural;
     begin
        J := 0;
        for C in Map'Range loop
           if Map (C) /= C then
              J := J + 1;
              Result (J) := Map (C);
           end if;
        end loop;
  
        return Result (1 .. J);
     end To_Range;
*************** is
*** 422,448 ****
     ---------------
  
     function To_Ranges (Set : Character_Set) return Character_Ranges is
!       Max_Ranges : Character_Ranges (1 .. Set'Length / 2 + 1)
!         with Relaxed_Initialization;
        Range_Num  : Natural;
        C          : Character;
-       C_Iter     : Character with Ghost;
  
     begin
        C := Character'First;
        Range_Num := 0;
  
        loop
-          C_Iter := C;
- 
           --  Skip gap between subsets
  
           while not Set (C) loop
-             pragma Loop_Invariant
-               (Character'Pos (C) >= Character'Pos (C'Loop_Entry));
-             pragma Loop_Invariant
-               (for all Char in C'Loop_Entry .. C => not Set (Char));
-             pragma Loop_Variant (Increases => C);
              exit when C = Character'Last;
              C := Character'Succ (C);
           end loop;
--- 194,211 ----
     ---------------
  
     function To_Ranges (Set : Character_Set) return Character_Ranges is
!       Max_Ranges : Character_Ranges (1 .. Set'Length / 2 + 1);
        Range_Num  : Natural;
        C          : Character;
  
     begin
        C := Character'First;
        Range_Num := 0;
  
        loop
           --  Skip gap between subsets
  
           while not Set (C) loop
              exit when C = Character'Last;
              C := Character'Succ (C);
           end loop;
*************** is
*** 455,466 ****
           --  Span a subset
  
           loop
-             pragma Loop_Invariant
-               (Character'Pos (C) >= Character'Pos (C'Loop_Entry));
-             pragma Loop_Invariant
-               (for all Char in C'Loop_Entry .. C =>
-                  (if Char /= C then Set (Char)));
-             pragma Loop_Variant (Increases => C);
              exit when not Set (C) or else C = Character'Last;
              C := Character'Succ (C);
           end loop;
--- 218,223 ----
*************** is
*** 471,501 ****
           else
              Max_Ranges (Range_Num).High := Character'Pred (C);
           end if;
- 
-          pragma Assert
-            (for all Char in C_Iter .. C =>
-               (Set (Char) =
-                  (Char in Max_Ranges (Range_Num).Low ..
-                           Max_Ranges (Range_Num).High)));
-          pragma Assert
-            (for all Char in Character'First .. C_Iter =>
-               (if Char /= C_Iter then
-                  (Set (Char) =
-                     (for some Span of Max_Ranges (1 .. Range_Num - 1) =>
-                        Char in Span.Low .. Span.High))));
- 
-          pragma Loop_Invariant (2 * Range_Num <= Character'Pos (C) + 1);
-          pragma Loop_Invariant (Max_Ranges (1 .. Range_Num)'Initialized);
-          pragma Loop_Invariant (not Set (C));
-          pragma Loop_Invariant
-            (for all Char in Character'First .. C =>
-               (Set (Char) =
-                  (for some Span of Max_Ranges (1 .. Range_Num) =>
-                     Char in Span.Low .. Span.High)));
-          pragma Loop_Invariant
-            (for all Span of Max_Ranges (1 .. Range_Num) =>
-               (for all Char in Span.Low .. Span.High => Set (Char)));
-          pragma Loop_Variant (Increases => Range_Num);
        end loop;
  
        return Max_Ranges (1 .. Range_Num);
--- 228,233 ----
*************** is
*** 506,513 ****
     -----------------
  
     function To_Sequence (Set : Character_Set) return Character_Sequence is
!       Result : String (1 .. Character'Pos (Character'Last) + 1)
!         with Relaxed_Initialization;
        Count  : Natural := 0;
     begin
        for Char in Set'Range loop
--- 238,244 ----
     -----------------
  
     function To_Sequence (Set : Character_Set) return Character_Sequence is
!       Result : String (1 .. Character'Pos (Character'Last) + 1);
        Count  : Natural := 0;
     begin
        for Char in Set'Range loop
*************** is
*** 515,531 ****
              Count := Count + 1;
              Result (Count) := Char;
           end if;
- 
-          pragma Loop_Invariant (Count <= Character'Pos (Char) + 1);
-          pragma Loop_Invariant (Result (1 .. Count)'Initialized);
-          pragma Loop_Invariant (for all K in 1 .. Count => Result (K) <= Char);
-          pragma Loop_Invariant
-            (SPARK_Proof_Sorted_Character_Sequence (Result (1 .. Count)));
-          pragma Loop_Invariant
-            (for all C in Set'First .. Char =>
-               (Set (C) = (for some X of Result (1 .. Count) => C = X)));
-          pragma Loop_Invariant
-            (for all Char of Result (1 .. Count) => Is_In (Char, Set));
        end loop;
  
        return Result (1 .. Count);
--- 246,251 ----
*************** is
*** 541,559 ****
        for R in Ranges'Range loop
           for C in Ranges (R).Low .. Ranges (R).High loop
              Result (C) := True;
-             pragma Loop_Invariant
-               (for all Char in Character =>
-                  Result (Char) =
-                    ((for some Prev in Ranges'First .. R - 1 =>
-                        Char in Ranges (Prev).Low .. Ranges (Prev).High)
-                     or else Char in Ranges (R).Low .. C));
           end loop;
- 
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) =
-                 (for some Prev in Ranges'First .. R =>
-                    Char in Ranges (Prev).Low .. Ranges (Prev).High));
        end loop;
  
        return Result;
--- 261,267 ----
*************** is
*** 564,572 ****
     begin
        for C in Span.Low .. Span.High loop
           Result (C) := True;
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) = (Char in Span.Low .. C));
        end loop;
  
        return Result;
--- 272,277 ----
*************** is
*** 577,586 ****
     begin
        for J in Sequence'Range loop
           Result (Sequence (J)) := True;
-          pragma Loop_Invariant
-            (for all Char in Character =>
-               Result (Char) =
-                 (for some K in Sequence'First .. J => Char = Sequence (K)));
        end loop;
  
        return Result;
--- 282,287 ----
*************** is
*** 599,606 ****
  
     function Value
       (Map     : Character_Mapping;
!       Element : Character) return Character
!    is
!       (Map (Element));
  
  end Ada.Strings.Maps;
--- 300,305 ----
  
     function Value
       (Map     : Character_Mapping;
!       Element : Character) return Character is (Map (Element));
  
  end Ada.Strings.Maps;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strmap.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strmap.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strmap.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strmap.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 59,66 ****
     -- Character Set Declarations --
     --------------------------------
  
!    type Character_Set is private;
!    pragma Preelaborable_Initialization (Character_Set);
     --  An object of type Character_Set represents a set of characters.
  
     Null_Set : constant Character_Set;
--- 59,66 ----
     -- Character Set Declarations --
     --------------------------------
  
!    type Character_Set is private
!    with Preelaborable_Initialization;
     --  An object of type Character_Set represents a set of characters.
  
     Null_Set : constant Character_Set;
*************** is
*** 256,263 ****
     -- Character Mapping Declarations --
     ------------------------------------
  
!    type Character_Mapping is private;
!    pragma Preelaborable_Initialization (Character_Mapping);
     --  An object of type Character_Mapping represents a Character-to-Character
     --  mapping.
  
--- 256,263 ----
     -- Character Mapping Declarations --
     ------------------------------------
  
!    type Character_Mapping is private
!    with Preelaborable_Initialization;
     --  An object of type Character_Mapping represents a Character-to-Character
     --  mapping.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strsea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsea.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strsea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,48 ****
  --  case of identity mappings for Count and Index, and also Index_Non_Blank
  --  is specialized (rather than using the general Index routine).
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  with System;           use System;
  
--- 35,40 ----
*************** package body Ada.Strings.Search with SPA
*** 110,119 ****
                 Num := Num + 1;
                 Ind := Ind + PL1;
              end if;
- 
-             pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-             pragma Loop_Invariant (Ind >= Source'First);
-             pragma Loop_Variant (Increases => Ind);
           end loop;
  
        --  Mapped case
--- 102,107 ----
*************** package body Ada.Strings.Search with SPA
*** 125,149 ****
                 if Pattern (K) /= Value (Mapping,
                   Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Assert (not Match (Source, Pattern, Mapping, Ind));
                    goto Cont;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Pattern'First .. K =>
-                     Pattern (J) = Value (Mapping,
-                       Source (Ind + (J - Pattern'First))));
              end loop;
  
-             pragma Assert (Match (Source, Pattern, Mapping, Ind));
              Num := Num + 1;
              Ind := Ind + PL1;
  
              <<Cont>>
              null;
-             pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-             pragma Loop_Invariant (Ind >= Source'First);
-             pragma Loop_Variant (Increases => Ind);
           end loop;
        end if;
  
--- 113,127 ----
*************** package body Ada.Strings.Search with SPA
*** 185,214 ****
           Ind := Ind + 1;
           for K in Pattern'Range loop
              if Pattern (K) /= Mapping (Source (Ind + (K - Pattern'First))) then
-                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;
- 
-             pragma Loop_Invariant
-               (for all J in Pattern'First .. K =>
-                  Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-             pragma Annotate (GNATprove, False_Positive,
-                              "call via access-to-subprogram",
-                              "function Mapping must always terminate");
           end loop;
  
-          pragma Assert (Match (Source, Pattern, Mapping, Ind));
           Num := Num + 1;
           Ind := Ind + PL1;
  
        <<Cont>>
           null;
-          pragma Loop_Invariant (Num <= Ind - (Source'First - 1));
-          pragma Loop_Invariant (Ind >= Source'First);
-          pragma Loop_Variant (Increases => Ind);
        end loop;
  
        return Num;
--- 163,177 ----
*************** package body Ada.Strings.Search with SPA
*** 219,228 ****
        Set    : Maps.Character_Set) return Natural
     is
        N : Natural := 0;
- 
     begin
        for J in Source'Range loop
-          pragma Loop_Invariant (N <= J - Source'First);
           if Is_In (Source (J), Set) then
              N := N + 1;
           end if;
--- 182,189 ----
*************** package body Ada.Strings.Search with SPA
*** 241,248 ****
        From   : Positive;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural)
!    is
     begin
        --  AI05-031: Raise Index error if Source non-empty and From not in range
  
--- 202,208 ----
        From   : Positive;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural) is
     begin
        --  AI05-031: Raise Index error if Source non-empty and From not in range
  
*************** package body Ada.Strings.Search with SPA
*** 264,273 ****
                       Last := K - 1;
                       return;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all L in J .. K =>
-                        Belongs (Source (L), Set, Test));
                 end loop;
              end if;
  
--- 224,229 ----
*************** package body Ada.Strings.Search with SPA
*** 277,286 ****
              Last := Source'Last;
              return;
           end if;
- 
-          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
--- 233,238 ----
*************** package body Ada.Strings.Search with SPA
*** 294,301 ****
        Set    : Maps.Character_Set;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural)
!    is
     begin
        for J in Source'Range loop
           if Belongs (Source (J), Set, Test) then
--- 246,252 ----
        Set    : Maps.Character_Set;
        Test   : Membership;
        First  : out Positive;
!       Last   : out Natural) is
     begin
        for J in Source'Range loop
           if Belongs (Source (J), Set, Test) then
*************** package body Ada.Strings.Search with SPA
*** 307,316 ****
                       Last := K - 1;
                       return;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all L in J .. K =>
-                        Belongs (Source (L), Set, Test));
                 end loop;
              end if;
  
--- 258,263 ----
*************** package body Ada.Strings.Search with SPA
*** 320,329 ****
              Last := Source'Last;
              return;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Source'First .. J =>
-               not Belongs (Source (K), Set, Test));
        end loop;
  
        --  Here if no token found
--- 267,272 ----
*************** package body Ada.Strings.Search with SPA
*** 335,341 ****
  
        if Source'First not in Positive then
           raise Constraint_Error;
- 
        else
           First := Source'First;
           Last  := 0;
--- 278,283 ----
*************** package body Ada.Strings.Search with SPA
*** 353,359 ****
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     is
        PL1 : constant Integer := Pattern'Length - 1;
- 
     begin
        if Pattern = "" then
           raise Pattern_Error;
--- 295,300 ----
*************** package body Ada.Strings.Search with SPA
*** 374,386 ****
           if Is_Identity (Mapping) then
              for Ind in Source'First .. Source'Last - PL1 loop
                 if Pattern = Source (Ind .. Ind + PL1) then
-                   pragma Assert (Match (Source, Pattern, Mapping, Ind));
                    return Ind;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Source'First .. Ind =>
-                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped forward case
--- 315,322 ----
*************** package body Ada.Strings.Search with SPA
*** 393,412 ****
                    then
                       goto Cont1;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all J in Pattern'First .. K =>
-                        Pattern (J) = Value (Mapping,
-                          Source (Ind + (J - Pattern'First))));
                 end loop;
  
-                pragma Assert (Match (Source, Pattern, Mapping, Ind));
                 return Ind;
  
                 <<Cont1>>
-                pragma Loop_Invariant
-                  (for all J in Source'First .. Ind =>
-                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
--- 329,339 ----
*************** package body Ada.Strings.Search with SPA
*** 419,431 ****
           if Is_Identity (Mapping) then
              for Ind in reverse Source'First .. Source'Last - PL1 loop
                 if Pattern = Source (Ind .. Ind + PL1) then
-                   pragma Assert (Match (Source, Pattern, Mapping, Ind));
                    return Ind;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Ind .. Source'Last - PL1 =>
-                     not Match (Source, Pattern, Mapping, J));
              end loop;
  
           --  Mapped backward case
--- 346,353 ----
*************** package body Ada.Strings.Search with SPA
*** 438,457 ****
                    then
                       goto Cont2;
                    end if;
- 
-                   pragma Loop_Invariant
-                     (for all J in Pattern'First .. K =>
-                        Pattern (J) = Value (Mapping,
-                          Source (Ind + (J - Pattern'First))));
                 end loop;
  
-                pragma Assert (Match (Source, Pattern, Mapping, Ind));
                 return Ind;
  
                 <<Cont2>>
-                pragma Loop_Invariant
-                  (for all J in Ind .. Source'Last - PL1 =>
-                     not Match (Source, Pattern, Mapping, J));
                 null;
              end loop;
           end if;
--- 360,370 ----
*************** package body Ada.Strings.Search with SPA
*** 495,521 ****
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Annotate (GNATprove, False_Positive,
-                                    "call via access-to-subprogram",
-                                    "function Mapping must always terminate");
                    goto Cont1;
                 end if;
  
                 pragma Loop_Invariant
                   (for all J in Pattern'First .. K =>
                     Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-                pragma Annotate (GNATprove, False_Positive,
-                                 "call via access-to-subprogram",
-                                 "function Mapping must always terminate");
              end loop;
  
-             pragma Assert (Match (Source, Pattern, Mapping, Ind));
              return Ind;
  
              <<Cont1>>
-             pragma Loop_Invariant
-               (for all J in Source'First .. Ind =>
-                  not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
  
--- 408,424 ----
*************** package body Ada.Strings.Search with SPA
*** 527,552 ****
                 if Pattern (K) /= Mapping.all
                   (Source (Ind + (K - Pattern'First)))
                 then
-                   pragma Annotate (GNATprove, False_Positive,
-                                    "call via access-to-subprogram",
-                                    "function Mapping must always terminate");
                    goto Cont2;
                 end if;
- 
-                pragma Loop_Invariant
-                  (for all J in Pattern'First .. K =>
-                    Pattern (J) = Mapping (Source (Ind + (J - Pattern'First))));
-                pragma Annotate (GNATprove, False_Positive,
-                                 "call via access-to-subprogram",
-                                 "function Mapping must always terminate");
              end loop;
  
              return Ind;
  
              <<Cont2>>
-             pragma Loop_Invariant
-               (for all J in Ind .. Source'Last - PL1 =>
-                 not Match (Source, Pattern, Mapping, J));
              null;
           end loop;
        end if;
--- 430,442 ----
*************** package body Ada.Strings.Search with SPA
*** 561,568 ****
       (Source : String;
        Set    : Maps.Character_Set;
        Test   : Membership := Inside;
!       Going  : Direction  := Forward) return Natural
!    is
     begin
        --  Forwards case
  
--- 451,457 ----
       (Source : String;
        Set    : Maps.Character_Set;
        Test   : Membership := Inside;
!       Going  : Direction  := Forward) return Natural is
     begin
        --  Forwards case
  
*************** package body Ada.Strings.Search with SPA
*** 571,580 ****
              if Belongs (Source (J), Set, Test) then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (Source'First .. J) =>
-                    not Belongs (C, Set, Test));
           end loop;
  
        --  Backwards case
--- 460,465 ----
*************** package body Ada.Strings.Search with SPA
*** 584,593 ****
              if Belongs (Source (J), Set, Test) then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (J .. Source'Last) =>
-                    not Belongs (C, Set, Test));
           end loop;
        end if;
  
--- 469,474 ----
*************** package body Ada.Strings.Search with SPA
*** 604,610 ****
        Mapping : Maps.Character_Mapping := Maps.Identity) return Natural
     is
        Result : Natural;
-       PL1    : constant Integer := Pattern'Length - 1;
     begin
  
        --  AI05-056: If source is empty result is always zero
--- 485,490 ----
*************** package body Ada.Strings.Search with SPA
*** 619,630 ****
  
           Result :=
             Index (Source (From .. Source'Last), Pattern, Forward, Mapping);
-          pragma Assert
-            (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
           if From > Source'Last then
--- 499,504 ----
*************** package body Ada.Strings.Search with SPA
*** 633,644 ****
  
           Result :=
             Index (Source (Source'First .. From), Pattern, Backward, Mapping);
-          pragma Assert
-            (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;
  
        return Result;
--- 507,512 ----
*************** package body Ada.Strings.Search with SPA
*** 722,730 ****
              if Source (J) /= ' ' then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (Source'First .. J) => C = ' ');
           end loop;
  
        else -- Going = Backward
--- 590,595 ----
*************** package body Ada.Strings.Search with SPA
*** 732,740 ****
              if Source (J) /= ' ' then
                 return J;
              end if;
- 
-             pragma Loop_Invariant
-               (for all C of Source (J .. Source'Last) => C = ' ');
           end loop;
        end if;
  
--- 597,602 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strsea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsea.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strsea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strsto.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsto.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strsto.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsto.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-strsup.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsup.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strsup.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsup.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,43 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Ghost code, loop (in)variants 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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Loop_Variant   => Ignore,
-                          Assert         => Ignore);
- 
  with Ada.Strings.Maps; use Ada.Strings.Maps;
  
  package body Ada.Strings.Superbounded with SPARK_Mode is
--- 29,34 ----
*************** package body Ada.Strings.Superbounded wi
*** 764,770 ****
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From - 1 > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 755,761 ----
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
*************** package body Ada.Strings.Superbounded wi
*** 793,799 ****
        if Num_Delete <= 0 then
           return;
  
!       elsif From - 1 > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 784,790 ----
        if Num_Delete <= 0 then
           return;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
*************** package body Ada.Strings.Superbounded wi
*** 1438,1528 ****
        Indx   : Natural;
        Ilen   : constant Natural := Item'Length;
  
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Natural; Q : Natural) with
-         Ghost,
-         Pre  => Ilen /= 0
-           and then Q mod Ilen = 0
-           and then K - Q in 0 .. Ilen - 1,
-         Post => K mod Ilen = K - Q;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Item'Length.
- 
-       procedure Lemma_Mod_Zero (X : Natural) with
-         Ghost,
-         Pre  => Ilen /= 0
-           and then X mod Ilen = 0
-           and then X <= Natural'Last - Ilen,
-         Post => (X + Ilen) mod Ilen = 0;
-       --  Lemma_Mod_Zero is applied to prove that the length of the range
-       --  of indexes considered in the loop, when dropping on the Left, is
-       --  a multiple of Item'Length.
- 
-       procedure Lemma_Split (Going : Direction) with
-         Ghost,
-         Pre  =>
-           Ilen /= 0
-             and then Indx in 0 .. Max_Length - Ilen
-             and then
-               (if Going = Forward
-                then Indx mod Ilen = 0
-                else (Max_Length - Indx - Ilen) mod Ilen = 0)
-             and then Result.Data (Indx + 1 .. Indx + Ilen)'Initialized
-             and then String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item,
-         Post =>
-           (if Going = Forward then
-              (for all J in Indx + 1 .. Indx + Ilen =>
-                 Result.Data (J) = Item (Item'First + (J - 1) mod Ilen))
-            else
-              (for all J in Indx + 1 .. Indx + Ilen =>
-                 Result.Data (J) =
-                   Item (Item'Last - (Max_Length - J) mod Ilen)));
-       --  Lemma_Split is used after Result.Data (Indx + 1 .. Indx + Ilen) is
-       --  updated to Item and concludes that the characters match for each
-       --  index when taken modulo Item'Length, as the considered slice starts
-       --  at index 1 (or ends at index Max_Length, if Going = Backward) modulo
-       --  Item'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Natural; Q : Natural) is null;
- 
-       --------------------
-       -- Lemma_Mod_Zero --
-       --------------------
- 
-       procedure Lemma_Mod_Zero (X : Natural) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split (Going : Direction) is
-       begin
-          if Going = Forward then
-             for K in Indx + 1 .. Indx + Ilen loop
-                Lemma_Mod (K - 1, Indx);
-                pragma Loop_Invariant
-                  (for all J in Indx + 1 .. K =>
-                     Result.Data (J) = Item (Item'First + (J - 1) mod Ilen));
-             end loop;
-          else
-             for K in Indx + 1 .. Indx + Ilen loop
-                Lemma_Mod (Max_Length - K, Max_Length - Indx - Ilen);
-                pragma Loop_Invariant
-                  (for all J in Indx + 1 .. K =>
-                     Result.Data (J) =
-                       Item (Item'Last - (Max_Length - J) mod Ilen));
-             end loop;
-          end if;
-       end Lemma_Split;
- 
     begin
        if Count = 0 or else Ilen <= Max_Length / Count then
           if Count * Ilen > 0 then
--- 1429,1434 ----
*************** package body Ada.Strings.Superbounded wi
*** 1531,1549 ****
              for J in 1 .. Count loop
                 Result.Data (Indx + 1 .. Indx + Ilen) :=
                   Super_String_Data (Item);
-                pragma Assert
-                  (for all K in 1 .. Ilen =>
-                     Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                pragma Assert
-                  (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                Lemma_Split (Forward);
                 Indx := Indx + Ilen;
-                pragma Loop_Invariant (Indx = J * Ilen);
-                pragma Loop_Invariant (Result.Data (1 .. Indx)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Indx =>
-                     Result.Data (K) =
-                       Item (Item'First + (K - 1) mod Ilen));
              end loop;
           end if;
  
--- 1437,1443 ----
*************** package body Ada.Strings.Superbounded wi
*** 1557,1592 ****
                 while Indx < Max_Length - Ilen loop
                    Result.Data (Indx + 1 .. Indx + Ilen) :=
                      Super_String_Data (Item);
-                   pragma Assert
-                     (for all K in 1 .. Ilen =>
-                        Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                   pragma Assert
-                     (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                   Lemma_Split (Forward);
                    Indx := Indx + Ilen;
-                   pragma Loop_Invariant (Indx mod Ilen = 0);
-                   pragma Loop_Invariant (Indx in 0 .. Max_Length - 1);
-                   pragma Loop_Invariant (Result.Data (1 .. Indx)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in 1 .. Indx =>
-                        Result.Data (K) =
-                          Item (Item'First + (K - 1) mod Ilen));
-                   pragma Loop_Variant (Increases => Indx);
                 end loop;
  
                 Result.Data (Indx + 1 .. Max_Length) := Super_String_Data
                   (Item (Item'First .. Item'First + (Max_Length - Indx - 1)));
-                pragma Assert
-                  (for all J in Indx + 1 .. Max_Length =>
-                     Result.Data (J) = Item (Item'First - 1 - Indx + J));
- 
-                for J in Indx + 1 .. Max_Length loop
-                   Lemma_Mod (J - 1, Indx);
-                   pragma Loop_Invariant
-                     (for all K in 1 .. J =>
-                        Result.Data (K) =
-                          Item (Item'First + (K - 1) mod Ilen));
-                end loop;
  
              when Strings.Left =>
                 Indx := Max_Length;
--- 1451,1461 ----
*************** package body Ada.Strings.Superbounded wi
*** 1595,1634 ****
                    Indx := Indx - Ilen;
                    Result.Data (Indx + 1 .. Indx + Ilen) :=
                      Super_String_Data (Item);
-                   pragma Assert
-                     (for all K in 1 .. Ilen =>
-                        Result.Data (Indx + K) = Item (Item'First - 1 + K));
-                   pragma Assert
-                     (String (Result.Data (Indx + 1 .. Indx + Ilen)) = Item);
-                   Lemma_Split (Backward);
-                   Lemma_Mod_Zero (Max_Length - Indx - Ilen);
-                   pragma Loop_Invariant
-                     ((Max_Length - Indx) mod Ilen = 0);
-                   pragma Loop_Invariant (Indx in 1 .. Max_Length);
-                   pragma Loop_Invariant
-                     (Result.Data (Indx + 1 .. Max_Length)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Indx + 1 .. Max_Length =>
-                        Result.Data (K) =
-                          Item (Item'Last - (Max_Length - K) mod Ilen));
-                   pragma Loop_Variant (Decreases => Indx);
                 end loop;
  
                 Result.Data (1 .. Indx) :=
                   Super_String_Data (Item (Item'Last - Indx + 1 .. Item'Last));
-                pragma Assert
-                  (for all J in 1 .. Indx =>
-                     Result.Data (J) = Item (Item'Last - Indx + J));
- 
-                for J in reverse 1 .. Indx loop
-                   Lemma_Mod (Max_Length - J, Max_Length - Indx);
-                   pragma Loop_Invariant
-                     (for all K in J .. Max_Length =>
-                        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;
--- 1464,1473 ----
*************** package body Ada.Strings.Superbounded wi
*** 1643,1650 ****
     function Super_Replicate
       (Count : Natural;
        Item  : Super_String;
!       Drop  : Strings.Truncation := Strings.Error) return Super_String
!    is
     begin
        return
          Super_Replicate (Count, Super_To_String (Item), Drop, Item.Max_Length);
--- 1482,1488 ----
     function Super_Replicate
       (Count : Natural;
        Item  : Super_String;
!       Drop  : Strings.Truncation := Strings.Error) return Super_String is
     begin
        return
          Super_Replicate (Count, Super_To_String (Item), Drop, Item.Max_Length);
*************** package body Ada.Strings.Superbounded wi
*** 1820,1833 ****
        Mapping : Maps.Character_Mapping) return Super_String
     is
        Result : Super_String (Source.Max_Length);
- 
     begin
        for J in 1 .. Source.Current_Length loop
           Result.Data (J) := Value (Mapping, Source.Data (J));
-          pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Result.Data (K) = Value (Mapping, Source.Data (K)));
        end loop;
  
        Result.Current_Length := Source.Current_Length;
--- 1658,1666 ----
*************** package body Ada.Strings.Superbounded wi
*** 1836,1849 ****
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping)
!    is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Value (Mapping, Source.Data (J));
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Source.Data (K) = Value (Mapping, Source'Loop_Entry.Data (K)));
        end loop;
     end Super_Translate;
  
--- 1669,1678 ----
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping) is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Value (Mapping, Source.Data (J));
        end loop;
     end Super_Translate;
  
*************** package body Ada.Strings.Superbounded wi
*** 1852,1871 ****
        Mapping : Maps.Character_Mapping_Function) return Super_String
     is
        Result : Super_String (Source.Max_Length);
- 
     begin
        for J in 1 .. Source.Current_Length loop
           Result.Data (J) := Mapping.all (Source.Data (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Result.Data (K) = Mapping (Source.Data (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
  
        Result.Current_Length := Source.Current_Length;
--- 1681,1689 ----
*************** package body Ada.Strings.Superbounded wi
*** 1874,1893 ****
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping_Function)
!    is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Mapping.all (Source.Data (J));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
-          pragma Loop_Invariant
-            (for all K in 1 .. J =>
-               Source.Data (K) = Mapping (Source'Loop_Entry.Data (K)));
-          pragma Annotate (GNATprove, False_Positive,
-                           "call via access-to-subprogram",
-                           "function Mapping must always terminate");
        end loop;
     end Super_Translate;
  
--- 1692,1701 ----
  
     procedure Super_Translate
       (Source  : in out Super_String;
!       Mapping : Maps.Character_Mapping_Function) is
     begin
        for J in 1 .. Source.Current_Length loop
           Source.Data (J) := Mapping.all (Source.Data (J));
        end loop;
     end Super_Translate;
  
*************** package body Ada.Strings.Superbounded wi
*** 1901,1907 ****
     is
        Result : Super_String (Source.Max_Length);
        Last   : constant Natural := Source.Current_Length;
- 
     begin
        case Side is
           when Strings.Left =>
--- 1709,1714 ----
*************** package body Ada.Strings.Superbounded wi
*** 2101,2113 ****
     begin
        if Left > Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           for J in 1 .. Left loop
              Result.Data (J) := Right;
-             pragma Loop_Invariant (Result.Data (1 .. J)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J => Result.Data (K) = Right);
           end loop;
  
           Result.Current_Length := Left;
--- 1908,1916 ----
*************** package body Ada.Strings.Superbounded wi
*** 2126,2205 ****
        Rlen   : constant Natural := Right'Length;
        Nlen   : constant Natural := Left * Rlen;
  
-       --  Parts of the proof involving manipulations with the modulo operator
-       --  are complicated for the prover and can't be done automatically in
-       --  the global subprogram. That's why we isolate them in these two ghost
-       --  lemmas.
- 
-       procedure Lemma_Mod (K : Integer) with
-         Ghost,
-         Pre =>
-           Rlen /= 0
-           and then Pos mod Rlen = 0
-           and then Pos in 0 .. Max_Length - Rlen
-           and then K in Pos .. Pos + Rlen - 1,
-         Post => K mod Rlen = K - Pos;
-       --  Lemma_Mod is applied to an index considered in Lemma_Split to prove
-       --  that it has the right value modulo Right'Length.
- 
-       procedure Lemma_Split with
-         Ghost,
-         Pre  =>
-           Rlen /= 0
-             and then Pos mod Rlen = 0
-             and then Pos in 0 .. Max_Length - Rlen
-             and then Result.Data (1 .. Pos + Rlen)'Initialized
-             and then String (Result.Data (Pos + 1 .. Pos + Rlen)) = Right,
-         Post =>
-           (for all K in Pos + 1 .. Pos + Rlen =>
-             Result.Data (K) = Right (Right'First + (K - 1) mod Rlen));
-       --  Lemma_Split is used after Result.Data (Pos + 1 .. Pos + Rlen) is
-       --  updated to Right and concludes that the characters match for each
-       --  index when taken modulo Right'Length, as the considered slice starts
-       --  at index 1 modulo Right'Length.
- 
-       ---------------
-       -- Lemma_Mod --
-       ---------------
- 
-       procedure Lemma_Mod (K : Integer) is null;
- 
-       -----------------
-       -- Lemma_Split --
-       -----------------
- 
-       procedure Lemma_Split is
-       begin
-          for K in Pos + 1 .. Pos + Rlen loop
-             Lemma_Mod (K - 1);
-             pragma Loop_Invariant
-               (for all J in Pos + 1 .. K =>
-                  Result.Data (J) = Right (Right'First + (J - 1) mod Rlen));
-          end loop;
-       end Lemma_Split;
- 
     begin
        if Nlen > Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           if Nlen > 0 then
              for J in 1 .. Left loop
                 Result.Data (Pos + 1 .. Pos + Rlen) :=
                   Super_String_Data (Right);
-                pragma Assert
-                  (for all K in 1 .. Rlen => Result.Data (Pos + K) =
-                     Right (Right'First - 1 + K));
-                pragma Assert
-                  (String (Result.Data (Pos + 1 .. Pos + Rlen)) = Right);
-                Lemma_Split;
                 Pos := Pos + Rlen;
-                pragma Loop_Invariant (Pos = J * Rlen);
-                pragma Loop_Invariant (Result.Data (1 .. Pos)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Pos =>
-                     Result.Data (K) =
-                       Right (Right'First + (K - 1) mod Rlen));
              end loop;
           end if;
  
--- 1929,1943 ----
*************** package body Ada.Strings.Superbounded wi
*** 2221,2239 ****
     begin
        if Nlen > Right.Max_Length then
           raise Ada.Strings.Length_Error;
- 
        else
           if Nlen > 0 then
              for J in 1 .. Left loop
                 Result.Data (Pos + 1 .. Pos + Rlen) :=
                   Right.Data (1 .. Rlen);
                 Pos := Pos + Rlen;
-                pragma Loop_Invariant (Pos = J * Rlen);
-                pragma Loop_Invariant (Result.Data (1 .. Pos)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in 1 .. Pos =>
-                     Result.Data (K) =
-                       Right.Data (1 + (K - 1) mod Rlen));
              end loop;
           end if;
  
--- 1959,1970 ----
*************** package body Ada.Strings.Superbounded wi
*** 2259,2265 ****
        if Slen <= Max_Length then
           Result.Data (1 .. Slen) := Super_String_Data (Source);
           Result.Current_Length := Slen;
- 
        else
           case Drop is
              when Strings.Right =>
--- 1990,1995 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strsup.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsup.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strsup.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strsup.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 42,51 ****
  --  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.Strings.Search;
--- 42,52 ----
  --  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,
!                          Ghost_Predicate => Ignore);
  
  with Ada.Strings.Maps; use type Ada.Strings.Maps.Character_Mapping_Function;
  with Ada.Strings.Search;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strunb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strunb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strunb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strunb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 73,80 ****
     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);
  
     Null_Unbounded_String : constant Unbounded_String;
     --  Represents the null String. If an object of type Unbounded_String is not
--- 73,80 ----
     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,
!      Preelaborable_Initialization;
  
     Null_Unbounded_String : constant Unbounded_String;
     --  Represents the null String. If an object of type Unbounded_String is not
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strunb__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-strunb__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-strunb__shared.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb__shared.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-strunb__shared.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-strunb__shared.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 103,110 ****
     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);
  
     Null_Unbounded_String : constant Unbounded_String;
  
--- 103,110 ----
     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,
!      Preelaborable_Initialization;
  
     Null_Unbounded_String : constant Unbounded_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ststbo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststbo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ststbo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststbo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ststbo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststbo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ststbo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststbo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-ststio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ststio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ststio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ststio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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.Streams.Stream_IO is
*** 41,48 ****
  
     type Stream_Access is access all Root_Stream_Type'Class;
  
!    type File_Type is limited private with Default_Initial_Condition;
!    pragma Preelaborable_Initialization (File_Type);
  
     type File_Mode is (In_File, Out_File, Append_File);
  
--- 41,49 ----
  
     type Stream_Access is access all Root_Stream_Type'Class;
  
!    type File_Type is limited private
!    with Default_Initial_Condition,
!         Preelaborable_Initialization;
  
     type File_Mode is (In_File, Out_File, Append_File);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ststun.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststun.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ststun.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststun.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ststun.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststun.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ststun.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ststun.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sttebu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sttebu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sttebu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sttebu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stunau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stunau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stunau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stunau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stunau__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stunau__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunau__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stunha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stunha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stunha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stuten.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stuten.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stuten.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stuten.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2010-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwibo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwibo.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwibo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwibo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwibo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwibo.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwibo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwibo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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_Bounded is
*** 47,54 ****
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_Wide_String is private;
!       pragma Preelaborable_Initialization (Bounded_Wide_String);
  
        Null_Bounded_Wide_String : constant Bounded_Wide_String;
  
--- 47,54 ----
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_Wide_String is private
!       with Preelaborable_Initialization;
  
        Null_Bounded_Wide_String : constant Bounded_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwifi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwifi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwifi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwifi.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwiha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwiha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwima.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwima.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwima.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwima.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwima.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwima.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwima.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwima.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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_Maps is
*** 42,49 ****
     -- Wide Character Set Declarations --
     -------------------------------------
  
!    type Wide_Character_Set is private;
!    pragma Preelaborable_Initialization (Wide_Character_Set);
     --  Representation for a set of Wide_Character values:
  
     Null_Set : constant Wide_Character_Set;
--- 42,49 ----
     -- Wide Character Set Declarations --
     -------------------------------------
  
!    type Wide_Character_Set is private
!    with Preelaborable_Initialization;
     --  Representation for a set of Wide_Character values:
  
     Null_Set : constant Wide_Character_Set;
*************** package Ada.Strings.Wide_Maps is
*** 120,127 ****
     -- Wide Character Mapping Declarations --
     -----------------------------------------
  
!    type Wide_Character_Mapping is private;
!    pragma Preelaborable_Initialization (Wide_Character_Mapping);
     --  Representation for a wide character to wide character mapping:
  
     function Value
--- 120,127 ----
     -- Wide Character Mapping Declarations --
     -----------------------------------------
  
!    type Wide_Character_Mapping is private
!    with Preelaborable_Initialization;
     --  Representation for a wide character to wide character mapping:
  
     function Value
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwise.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwise.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwise.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwise.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwise.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwise.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwise.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwise.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwisu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwisu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwisu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwisu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Superbound
*** 753,759 ****
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From > Slen + 1 then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 753,759 ----
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
*************** package body Ada.Strings.Wide_Superbound
*** 782,788 ****
        if Num_Delete <= 0 then
           return;
  
!       elsif From > Slen + 1 then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 782,788 ----
        if Num_Delete <= 0 then
           return;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwisu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwisu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwisu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwisu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwiun.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwiun.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwiun.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwiun.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** with Ada.Finalization;
*** 39,46 ****
  package Ada.Strings.Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_String is private;
!    pragma Preelaborable_Initialization (Unbounded_Wide_String);
  
     Null_Unbounded_Wide_String : constant Unbounded_Wide_String;
  
--- 39,46 ----
  package Ada.Strings.Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_String is private
!    with Preelaborable_Initialization;
  
     Null_Unbounded_Wide_String : constant Unbounded_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwiun__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stwiun__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stwiun__shared.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun__shared.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stwiun__shared.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stwiun__shared.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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 with System.Atomic_Counters;
*** 48,55 ****
  package Ada.Strings.Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_String is private;
!    pragma Preelaborable_Initialization (Unbounded_Wide_String);
  
     Null_Unbounded_Wide_String : constant Unbounded_Wide_String;
  
--- 48,55 ----
  package Ada.Strings.Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_String is private
!    with Preelaborable_Initialization;
  
     Null_Unbounded_Wide_String : constant Unbounded_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzbou.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzbou.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzbou.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzbou.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzbou.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzbou.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzbou.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzbou.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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_Bounded is
*** 47,54 ****
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_Wide_Wide_String is private;
!       pragma Preelaborable_Initialization (Bounded_Wide_Wide_String);
  
        Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
  
--- 47,54 ----
  
        Max_Length : constant Positive := Max;
  
!       type Bounded_Wide_Wide_String is private
!       with Preelaborable_Initialization;
  
        Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzfix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzfix.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzfix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzfix.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzhas.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzhas.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzhas.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzhas.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzmap.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzmap.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzmap.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzmap.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzmap.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzmap.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzmap.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzmap.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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_Maps is
*** 42,49 ****
     -- Wide_Wide_Character Set Declarations --
     ------------------------------------------
  
!    type Wide_Wide_Character_Set is private;
!    pragma Preelaborable_Initialization (Wide_Wide_Character_Set);
     --  Representation for a set of Wide_Wide_Character values:
  
     Null_Set : constant Wide_Wide_Character_Set;
--- 42,49 ----
     -- Wide_Wide_Character Set Declarations --
     ------------------------------------------
  
!    type Wide_Wide_Character_Set is private
!    with Preelaborable_Initialization;
     --  Representation for a set of Wide_Wide_Character values:
  
     Null_Set : constant Wide_Wide_Character_Set;
*************** package Ada.Strings.Wide_Wide_Maps is
*** 120,127 ****
     -- Wide_Wide_Character Mapping Declarations --
     ----------------------------------------------
  
!    type Wide_Wide_Character_Mapping is private;
!    pragma Preelaborable_Initialization (Wide_Wide_Character_Mapping);
     --  Representation for a wide character to wide character mapping:
  
     function Value
--- 120,127 ----
     -- Wide_Wide_Character Mapping Declarations --
     ----------------------------------------------
  
!    type Wide_Wide_Character_Mapping is private
!    with Preelaborable_Initialization;
     --  Representation for a wide character to wide character mapping:
  
     function Value
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzsea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsea.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzsea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzsea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsea.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzsea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzsup.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsup.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzsup.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsup.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Super
*** 754,760 ****
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From > Slen + 1 then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 754,760 ----
        if Num_Delete <= 0 then
           return Source;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
*************** package body Ada.Strings.Wide_Wide_Super
*** 783,789 ****
        if Num_Delete <= 0 then
           return;
  
!       elsif From > Slen + 1 then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
--- 783,789 ----
        if Num_Delete <= 0 then
           return;
  
!       elsif From > Slen then
           raise Ada.Strings.Index_Error;
  
        elsif Through >= Slen then
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzsup.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsup.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzsup.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzsup.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzunb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzunb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzunb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzunb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- This specification is derived from the Ada Reference Manual for use with --
  -- GNAT. The copyright notice above, and the license provisions that follow --
*************** with Ada.Finalization;
*** 39,46 ****
  package Ada.Strings.Wide_Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_Wide_String is private;
!    pragma Preelaborable_Initialization (Unbounded_Wide_Wide_String);
  
     Null_Unbounded_Wide_Wide_String : constant Unbounded_Wide_Wide_String;
  
--- 39,46 ----
  package Ada.Strings.Wide_Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_Wide_String is private
!    with Preelaborable_Initialization;
  
     Null_Unbounded_Wide_Wide_String : constant Unbounded_Wide_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzunb__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-stzunb__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-stzunb__shared.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb__shared.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-stzunb__shared.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-stzunb__shared.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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 with System.Atomic_Counters;
*** 48,55 ****
  package Ada.Strings.Wide_Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_Wide_String is private;
!    pragma Preelaborable_Initialization (Unbounded_Wide_Wide_String);
  
     Null_Unbounded_Wide_Wide_String : constant Unbounded_Wide_Wide_String;
  
--- 48,55 ----
  package Ada.Strings.Wide_Wide_Unbounded is
     pragma Preelaborate;
  
!    type Unbounded_Wide_Wide_String is private
!    with Preelaborable_Initialization;
  
     Null_Unbounded_Wide_Wide_String : constant Unbounded_Wide_Wide_String;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suecin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suecin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suecin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suecin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suecin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suecin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-suecin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suecin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-suenco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suenco.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suenco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suenco.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suenst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suenst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suenst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suenst.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suewst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suewst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suewst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suewst.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suezst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suezst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suezst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suezst.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suhcin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suhcin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suhcin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suhcin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suhcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suhcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-suhcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suhcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-sulcin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sulcin.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-sulcin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sulcin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-sulcin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sulcin.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-sulcin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-sulcin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-suteio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suteio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suteio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-suteio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-suteio__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-suteio__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-suteio__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swbwha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swbwha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swbwha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swbwha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swmwco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swmwco.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-swmwco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swmwco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-swunau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swunau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.
*** 62,65 ****
--- 62,78 ----
        UP.Last := UP.Reference'Length;
     end Set_Wide_String;
  
+    procedure Set_Wide_String
+      (U      : out Unbounded_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_String))
+    is
+       Old : Wide_String_Access := U.Reference;
+    begin
+       U.Last := Length;
+       U.Reference := new Wide_String (1 .. Length);
+       Set (U.Reference.all);
+       Free (Old);
+    end Set_Wide_String;
+ 
  end Ada.Strings.Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swunau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-swunau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Strings.Wide_Unbounded.Aux i
*** 73,76 ****
--- 73,84 ----
     --  than string. The lower bound of the string value is required to be one,
     --  and this requirement is not checked.
  
+    procedure Set_Wide_String
+      (U      : out Unbounded_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_String));
+    pragma Inline (Set_Wide_String);
+    --  Create an unbounded string U with the given Length, using Set to fill
+    --  the contents of U.
+ 
  end Ada.Strings.Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swunau__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swunau__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swunau__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.
*** 62,65 ****
--- 62,91 ----
        Free (X);
     end Set_Wide_String;
  
+    procedure Set_Wide_String
+      (U      : out Unbounded_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_String))
+    is
+       TR : constant Shared_Wide_String_Access := U.Reference;
+       DR : Shared_Wide_String_Access;
+    begin
+       --  Try to reuse existing shared string
+ 
+       if Can_Be_Reused (TR, Length) then
+          Reference (TR);
+          DR := TR;
+ 
+       --  Otherwise allocate new shared string
+ 
+       else
+          DR := Allocate (Length);
+          U.Reference := DR;
+       end if;
+ 
+       Set (DR.Data (1 .. Length));
+       DR.Last := Length;
+       Unreference (TR);
+    end Set_Wide_String;
+ 
  end Ada.Strings.Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swuwha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swuwha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swuwti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swuwti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swuwti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-swuwti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-swuwti__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-swuwti__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-swuwti__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szbzha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szbzha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szbzha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szbzha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szmzco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szmzco.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-szmzco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szmzco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-szunau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szunau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 62,65 ****
--- 62,78 ----
        UP.Last := UP.Reference'Length;
     end Set_Wide_Wide_String;
  
+    procedure Set_Wide_Wide_String
+      (U      : out Unbounded_Wide_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_Wide_String))
+    is
+       Old : Wide_Wide_String_Access := U.Reference;
+    begin
+       U.Last := Length;
+       U.Reference := new Wide_Wide_String (1 .. Length);
+       Set (U.Reference.all);
+       Free (Old);
+    end Set_Wide_Wide_String;
+ 
  end Ada.Strings.Wide_Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szunau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-szunau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Strings.Wide_Wide_Unbounded.
*** 75,78 ****
--- 75,86 ----
     --  than string. The lower bound of the string value is required to be one,
     --  and this requirement is not checked.
  
+    procedure Set_Wide_Wide_String
+      (U      : out Unbounded_Wide_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_Wide_String));
+    pragma Inline (Set_Wide_Wide_String);
+    --  Create an unbounded string U with the given Length, using Set to fill
+    --  the contents of U.
+ 
  end Ada.Strings.Wide_Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szunau__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szunau__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szunau__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 62,65 ****
--- 62,91 ----
        Free (X);
     end Set_Wide_Wide_String;
  
+    procedure Set_Wide_Wide_String
+      (U      : out Unbounded_Wide_Wide_String;
+       Length : Positive;
+       Set    : not null access procedure (S : out Wide_Wide_String))
+    is
+       TR : constant Shared_Wide_Wide_String_Access := U.Reference;
+       DR : Shared_Wide_Wide_String_Access;
+    begin
+       --  Try to reuse existing shared string
+ 
+       if Can_Be_Reused (TR, Length) then
+          Reference (TR);
+          DR := TR;
+ 
+       --  Otherwise allocate new shared string
+ 
+       else
+          DR := Allocate (Length);
+          U.Reference := DR;
+       end if;
+ 
+       Set (DR.Data (1 .. Length));
+       DR.Last := Length;
+       Unreference (TR);
+    end Set_Wide_Wide_String;
+ 
  end Ada.Strings.Wide_Wide_Unbounded.Aux;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szuzha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szuzha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szuzti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szuzti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szuzti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-szuzti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-szuzti__shared.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti__shared.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-szuzti__shared.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-szuzti__shared.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tags.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tags.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tags.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tags.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tags.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tags.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tags.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tags.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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.Tags is
*** 71,78 ****
     pragma Preelaborate;
     --  In accordance with Ada 2005 AI-362
  
!    type Tag is private;
!    pragma Preelaborable_Initialization (Tag);
  
     No_Tag : constant Tag;
  
--- 71,78 ----
     pragma Preelaborate;
     --  In accordance with Ada 2005 AI-362
  
!    type Tag is private
!    with Preelaborable_Initialization;
  
     No_Tag : constant Tag;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-teioed.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-teioed.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-teioed.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-teioed.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-teioed.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-teioed.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-teioed.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-teioed.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-textio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-textio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-textio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-textio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-textio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-textio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-textio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-textio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-tiboio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiboio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiboio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiboio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ticoau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ticoau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ticoau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ticoau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ticoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ticoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ticoio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ticoio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ticoio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-tideau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tideau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tideau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tideau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tideio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tideio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tideio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tideio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-tideio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tideio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tideio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tienau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tienau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tienau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tienau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tienio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tienio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tienio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tifiau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tifiau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiau.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tifiau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tifiau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiau.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tifiio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tifiio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Text_IO.Fixed_IO with S
*** 194,202 ****
           ((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
--- 194,199 ----
*************** package body Ada.Text_IO.Fixed_IO with S
*** 223,231 ****
           ((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
--- 220,225 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tifiio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tifiio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tifiio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Text_IO.Fixed_IO with S
*** 201,209 ****
           ((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
--- 201,206 ----
*************** package body Ada.Text_IO.Fixed_IO with S
*** 230,238 ****
           ((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
--- 227,232 ----
*************** package body Ada.Text_IO.Fixed_IO with S
*** 259,267 ****
           ((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
--- 253,258 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiflau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiflau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiflau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tiflau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiflio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiflio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiflio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tiflio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiflio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-tigeau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tigeau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tigeau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tigeau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tigeli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeli.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tigeli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tigeli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiinau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiinau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiinau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tiinau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiinio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiinio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiinio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tiinio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-tiinio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiinio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiinio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-timoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-timoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-timoio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-timoio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-timoio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-timoio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-timoio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiocst.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiocst.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tiocst.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiocst.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tiocst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiocst.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tiocst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tiocst.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tirsfi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tirsfi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-tirsfi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tirsfi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-tirsfi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tirsfi.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-tirsfi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-tirsfi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-titest.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-titest.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-titest.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-titest.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-undesu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-undesu.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-undesu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-undesu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2011-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-undesu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-undesu.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-undesu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-undesu.ads	Thu Apr 23 11:07:32 2026
***************
*** 16,19 ****
  with System.Storage_Pools.Subpools;
  
  procedure Ada.Unchecked_Deallocate_Subpool
!   (Subpool : in out System.Storage_Pools.Subpools.Subpool_Handle);
--- 16,20 ----
  with System.Storage_Pools.Subpools;
  
  procedure Ada.Unchecked_Deallocate_Subpool
!   (Subpool : in out System.Storage_Pools.Subpools.Subpool_Handle)
!   with Preelaborate;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wichha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichha.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wichha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichha.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wichun.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichun.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wichun.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichun.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wichun.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichun.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wichun.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wichun.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-witeio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-witeio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-witeio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-witeio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-witeio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-witeio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-witeio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-witeio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-wrstfi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wrstfi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wrstfi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wrstfi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wrstfi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wrstfi.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wrstfi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wrstfi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtcoau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtcoau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtcoau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtcoau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtcoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtcoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtcstr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcstr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtcstr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcstr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtcstr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcstr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtcstr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtcstr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtdeau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtdeau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtdeau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtdeau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtdeio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtdeio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtdeio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtdeio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtdeio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtedit.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtedit.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtedit.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtedit.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtedit.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtedit.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtedit.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtedit.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-wtenau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtenau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtenau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtenau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtenio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtenio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtenio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtfiau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtfiau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiau.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtfiau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtfiau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiau.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtfiio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtfiio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 73,81 ****
           ((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
--- 73,78 ----
*************** package body Ada.Wide_Text_IO.Fixed_IO i
*** 102,110 ****
           ((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
--- 99,104 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtfiio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtfiio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtfiio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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
*** 80,88 ****
           ((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
--- 80,85 ----
*************** package body Ada.Wide_Text_IO.Fixed_IO i
*** 109,117 ****
           ((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
--- 106,111 ----
*************** package body Ada.Wide_Text_IO.Fixed_IO i
*** 138,146 ****
           ((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
--- 132,137 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtflau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtflau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtflau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtflau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtflio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtflio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtflio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtgeau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtgeau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtgeau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtgeau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtgeau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtgeau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtgeau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtgeau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtinau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtinau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtinau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtinau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtinio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtinio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtinio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtinio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtinio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtmoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtmoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wtmoio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-wtmoio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, 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-15.2.0/gcc/ada/libgnat/a-wtmoio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wtmoio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wtmoio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wttest.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wttest.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wttest.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wttest.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-wwboio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wwboio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-wwboio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-wwboio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zchhan.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchhan.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-zchhan.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchhan.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zchuni.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchuni.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-zchuni.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchuni.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zchuni.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchuni.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-zchuni.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zchuni.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zrstfi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zrstfi.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-zrstfi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zrstfi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zrstfi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zrstfi.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-zrstfi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zrstfi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztcoau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcoau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztcoau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcoau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztcoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztcoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztcstr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcstr.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztcstr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcstr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztcstr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcstr.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztcstr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztcstr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztdeau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztdeau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztdeau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztdeau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztdeio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztdeio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztdeio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztdeio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztdeio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztedit.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztedit.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztedit.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztedit.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztedit.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztedit.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztedit.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztedit.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-ztenau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztenau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztenau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztenau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztenio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztenio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztenio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztexio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztexio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztexio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztexio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztexio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztexio.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztexio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztexio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/a-ztfiau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztfiau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiau.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztfiau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztfiau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiau.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztfiio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztfiio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 73,81 ****
           ((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
--- 73,78 ----
*************** package body Ada.Wide_Wide_Text_IO.Fixed
*** 102,110 ****
           ((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
--- 99,104 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztfiio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztfiio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztfiio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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
*** 81,89 ****
           ((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
--- 81,86 ----
*************** package body Ada.Wide_Wide_Text_IO.Fixed
*** 110,118 ****
           ((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
--- 107,112 ----
*************** package body Ada.Wide_Wide_Text_IO.Fixed
*** 139,147 ****
           ((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
--- 133,138 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztflau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztflau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztflau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztflau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztflio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztflio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztflio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztgeau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztgeau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztgeau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztgeau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztgeau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztgeau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztgeau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztgeau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztinau.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinau.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztinau.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinau.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztinau.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinau.ads
*** gcc-15.2.0/gcc/ada/libgnat/a-ztinau.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinau.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztinio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztinio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztinio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztinio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztinio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztmoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztmoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztmoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztmoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-ztmoio__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztmoio__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-ztmoio__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-ztmoio__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zttest.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zttest.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-zttest.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zttest.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/a-zzboio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zzboio.adb
*** gcc-15.2.0/gcc/ada/libgnat/a-zzboio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/a-zzboio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-allein.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-allein.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-allein.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-allein.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alleve.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-alleve.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alleve.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-alleve.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (Soft Binding Version)                           --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alleve__hard.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve__hard.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-alleve__hard.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve__hard.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alleve__hard.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve__hard.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-alleve__hard.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alleve__hard.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Hard Binding Version)                          --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-altcon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altcon.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-altcon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altcon.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-altcon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altcon.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-altcon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altcon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2009-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-altive.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altive.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-altive.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-altive.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alveop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alveop.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-alveop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alveop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2004-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alveop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alveop.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-alveop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alveop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alvety.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alvety.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-alvety.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alvety.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-alvevi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alvevi.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-alvevi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-alvevi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2005-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-arrspl.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-arrspl.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-arrspl.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-arrspl.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-arrspl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-arrspl.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-arrspl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-arrspl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-awk.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-awk.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-awk.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-awk.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-awk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-awk.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-awk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-awk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-binenv.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binenv.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-binenv.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binenv.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2015-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-binenv.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binenv.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-binenv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binenv.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-binsea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binsea.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-binsea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binsea.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-binsea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binsea.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-binsea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-binsea.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2022-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-brapre.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-brapre.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-brapre.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-brapre.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2019-2026, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-bubsor.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bubsor.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-bubsor.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bubsor.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-bubsor.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bubsor.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-bubsor.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bubsor.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-busora.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busora.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-busora.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busora.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-busora.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busora.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-busora.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busora.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-busorg.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busorg.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-busorg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busorg.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-busorg.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busorg.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-busorg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-busorg.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-byorma.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-byorma.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-byorma.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-byorma.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-byorma.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-byorma.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-byorma.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-byorma.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 61,66 ****
--- 61,69 ----
  --     cases depend on the first character of the XML file being < so that the
  --     encoding of this character can be recognized.
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  package GNAT.Byte_Order_Mark is
  
     type BOM_Kind is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-bytswa.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bytswa.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-bytswa.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bytswa.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-bytswa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bytswa.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-bytswa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-bytswa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-c_time.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-c_time.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-c_time.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-c_time.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,38 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                           G N A T . C _ T I M E                          --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --                    Copyright (C) 2025-2026, AdaCore                      --
+ --                                                                          --
+ -- GNAT is 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 the time_t, timeval and timespec types corresponding
+ --  to the C types defined by the OS, as well as various conversion functions.
+ 
+ --  See file s-c_time.ads for full documentation of the interface
+ 
+ with System.C_Time;
+ package GNAT.C_Time renames System.C_Time;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-calend.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-calend.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-calend.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-calend.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Interfaces.C.Extensions;
- 
  package body GNAT.Calendar is
     use Ada.Calendar;
-    use Interfaces;
  
     -----------------
     -- Day_In_Year --
--- 29,36 ----
*************** package body GNAT.Calendar is
*** 333,355 ****
     -----------------
  
     function To_Duration (T : not null access timeval) return Duration is
- 
-       procedure timeval_to_duration
-         (T    : not null access timeval;
-          sec  : not null access C.Extensions.long_long;
-          usec : not null access C.long);
-       pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration");
- 
-       Micro : constant := 10**6;
-       sec   : aliased C.Extensions.long_long;
-       usec  : aliased C.long;
- 
     begin
!       timeval_to_duration (T, sec'Access, usec'Access);
!       pragma Annotate (CodePeer, Modified, sec);
!       pragma Annotate (CodePeer, Modified, usec);
! 
!       return Duration (sec) + Duration (usec) / Micro;
     end To_Duration;
  
     ----------------
--- 330,337 ----
     -----------------
  
     function To_Duration (T : not null access timeval) return Duration is
     begin
!       return System.C_Time.To_Duration (T.all);
     end To_Duration;
  
     ----------------
*************** package body GNAT.Calendar is
*** 357,386 ****
     ----------------
  
     function To_Timeval (D : Duration) return timeval is
- 
-       procedure duration_to_timeval
-         (Sec  : C.Extensions.long_long;
-          Usec : C.long;
-          T : not null access timeval);
-       pragma Import (C, duration_to_timeval, "__gnat_duration_to_timeval");
- 
-       Micro  : constant := 10**6;
-       Result : aliased timeval;
-       sec    : C.Extensions.long_long;
-       usec   : C.long;
- 
     begin
!       if D = 0.0 then
!          sec  := 0;
!          usec := 0;
!       else
!          sec  := C.Extensions.long_long (D - 0.5);
!          usec := C.long ((D - Duration (sec)) * Micro - 0.5);
!       end if;
! 
!       duration_to_timeval (sec, usec, Result'Access);
! 
!       return Result;
     end To_Timeval;
  
     ------------------
--- 339,346 ----
     ----------------
  
     function To_Timeval (D : Duration) return timeval is
     begin
!       return System.C_Time.To_Timeval (D);
     end To_Timeval;
  
     ------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-calend.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-calend.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-calend.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-calend.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 40,46 ****
  --  Day_Of_Week, Day_In_Year and Week_In_Year.
  
  with Ada.Calendar.Formatting;
! with Interfaces.C;
  
  package GNAT.Calendar is
  
--- 40,47 ----
  --  Day_Of_Week, Day_In_Year and Week_In_Year.
  
  with Ada.Calendar.Formatting;
! 
! with System.C_Time;
  
  package GNAT.Calendar is
  
*************** package GNAT.Calendar is
*** 126,132 ****
     --  locale (equivalent to Clock). Due to this simplified behavior, the
     --  implementation does not require expensive system calls on targets such
     --  as Windows.
!    --  WARNING: Split_At_Locale is no longer aware of historic events and may
     --  produce inaccurate results over DST changes which occurred in the past.
  
     function Week_In_Year (Date : Ada.Calendar.Time) return Week_In_Year_Number;
--- 127,133 ----
     --  locale (equivalent to Clock). Due to this simplified behavior, the
     --  implementation does not require expensive system calls on targets such
     --  as Windows.
!    --  WARNING: Time_At_Locale is no longer aware of historic events and may
     --  produce inaccurate results over DST changes which occurred in the past.
  
     function Week_In_Year (Date : Ada.Calendar.Time) return Week_In_Year_Number;
*************** package GNAT.Calendar is
*** 145,168 ****
     --  Return the week number as defined in ISO 8601 along with the year in
     --  which the week occurs.
  
!    --  C timeval conversion
! 
!    --  C timeval represent a duration (used in Select for example). This
!    --  structure is composed of a number of seconds and a number of micro
!    --  seconds. The timeval structure is not exposed here because its
!    --  definition is target dependent. Interface to C programs is done via a
!    --  pointer to timeval structure.
! 
!    type timeval is private;
  
     function To_Duration (T : not null access timeval) return Duration;
     function To_Timeval  (D : Duration) return timeval;
  
  private
-    --  This is a dummy declaration that should be the largest possible timeval
-    --  structure of all supported targets.
- 
-    type timeval is array (1 .. 3) of Interfaces.C.long;
  
     function Julian_Day
       (Year  : Ada.Calendar.Year_Number;
--- 146,163 ----
     --  Return the week number as defined in ISO 8601 along with the year in
     --  which the week occurs.
  
!    subtype timeval is System.C_Time.timeval;
!    pragma Obsolescent (timeval, "use type from GNAT.C_Time instead");
  
     function To_Duration (T : not null access timeval) return Duration;
+    pragma Inline (To_Duration);
+    pragma Obsolescent (To_Duration, "use function from GNAT.C_Time instead");
+ 
     function To_Timeval  (D : Duration) return timeval;
+    pragma Inline (To_Timeval);
+    pragma Obsolescent (To_Timeval, "use function from GNAT.C_Time instead");
  
  private
  
     function Julian_Day
       (Year  : Ada.Calendar.Year_Number;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-casuti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-casuti.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-casuti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-casuti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-casuti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-casuti.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-casuti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-casuti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-catiio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-catiio.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-catiio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-catiio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Calendar.Time_IO is
*** 515,521 ****
                    Result := Result &
                      Image (Month_Name'Image (Month_Name'Val (Month - 1)));
  
!                --  Locale's date and time (Sat Nov 04 12:02:33 EST 1989)
  
                 when 'c' =>
                    case Padding is
--- 515,521 ----
                    Result := Result &
                      Image (Month_Name'Image (Month_Name'Val (Month - 1)));
  
!                --  Locale's date and time (Sat Nov 04 12:02:33 1989)
  
                 when 'c' =>
                    case Padding is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-catiio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-catiio.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-catiio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-catiio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgi.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cgi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2001-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgi.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cgi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgicoo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgicoo.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cgicoo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgicoo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgicoo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgicoo.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cgicoo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgicoo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgideb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgideb.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cgideb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgideb.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cgideb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgideb.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cgideb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cgideb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-comlin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comlin.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-comlin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comlin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-comlin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comlin.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-comlin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comlin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-comver.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comver.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-comver.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comver.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-comver.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comver.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-comver.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-comver.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cpp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cpp.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cpp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cpp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cppexc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppexc.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cppexc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppexc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cppexc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppexc.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cppexc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppexc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2013-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cppstd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppstd.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cppstd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppstd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cppstd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppstd.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cppstd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cppstd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-crc32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-crc32.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-crc32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-crc32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-crc32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-crc32.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-crc32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-crc32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2004-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Streams;
*** 58,64 ****
  with Interfaces;
  with System.CRC32;
  
! package GNAT.CRC32 is
  
     subtype CRC32 is System.CRC32.CRC32;
     --  Used to represent CRC32 values, which are 32 bit bit-strings
--- 58,64 ----
  with Interfaces;
  with System.CRC32;
  
! package GNAT.CRC32 with Pure, Always_Terminates is
  
     subtype CRC32 is System.CRC32.CRC32;
     --  Used to represent CRC32 values, which are 32 bit bit-strings
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-csclex.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-csclex.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-csclex.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-csclex.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cstyin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cstyin.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-cstyin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cstyin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-cstyin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cstyin.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-cstyin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-cstyin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2022-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-ctrl_c.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ctrl_c.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-ctrl_c.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ctrl_c.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-ctrl_c.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ctrl_c.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-ctrl_c.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ctrl_c.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2002-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-curexc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-curexc.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-curexc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-curexc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 1996-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-debpoo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debpoo.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-debpoo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debpoo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-debpoo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debpoo.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-debpoo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debpoo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-debuti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debuti.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-debuti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debuti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-debuti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debuti.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-debuti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-debuti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-decstr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-decstr.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-decstr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-decstr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-decstr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-decstr.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-decstr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-decstr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-deutst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-deutst.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-deutst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-deutst.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-diopit.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-diopit.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-diopit.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-diopit.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-diopit.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-diopit.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-diopit.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-diopit.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dirope.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dirope.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-dirope.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dirope.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dirope.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dirope.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-dirope.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dirope.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dynhta.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dynhta.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-dynhta.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dynhta.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dynhta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dynhta.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-dynhta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dynhta.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dyntab.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dyntab.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-dyntab.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dyntab.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-dyntab.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dyntab.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-dyntab.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-dyntab.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Dynamic_Tables is
*** 168,175 ****
        --
        --     Tab : Table_Type renames X.Table (First .. X.Last);
        --
!       --  Note: The Table component must come first. See declarations of
!       --  SCO_Unit_Table and SCO_Table in scos.h.
  
        Locked : Boolean := False;
        --  Table reallocation is permitted only if this is False. A client may
--- 168,176 ----
        --
        --     Tab : Table_Type renames X.Table (First .. X.Last);
        --
!       --  Note: The Table component must come first to simplify interfacing
!       --  with C, similar to how we do it for the Table unit; see declarations
!       --  of Names_Ptr and Names_Char_Ptr in namet.h.
  
        Locked : Boolean := False;
        --  Table reallocation is permitted only if this is False. A client may
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-eacodu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-eacodu.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-eacodu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-eacodu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-encstr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-encstr.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-encstr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-encstr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2007-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-encstr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-encstr.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-encstr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-encstr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-enutst.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-enutst.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-enutst.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-enutst.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2007-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-excact.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-excact.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-excact.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-excact.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-excact.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-excact.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-excact.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-excact.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-except.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-except.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-except.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-except.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-exctra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exctra.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-exctra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exctra.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-exctra.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exctra.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-exctra.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exctra.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-expect.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-expect.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-expect.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-expect.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-expect.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-expect.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-expect.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-expect.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-exptty.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exptty.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-exptty.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exptty.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-exptty.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exptty.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-exptty.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-exptty.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2000-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-flocon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-flocon.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-flocon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-flocon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-forstr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-forstr.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-forstr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-forstr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-forstr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-forstr.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-forstr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-forstr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-gfmafu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-gfmafu.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-gfmafu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-gfmafu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-graphs.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-graphs.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-graphs.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-graphs.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-graphs.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-graphs.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-graphs.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-graphs.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-heasor.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-heasor.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-heasor.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-heasor.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Heap_Sort is
*** 45,54 ****
     --  from 2NlogN to NlogN.
  
     procedure Sort (N : Natural; Xchg : Xchg_Procedure; Lt : Lt_Function) is
        Max : Natural := N;
!       --  Current Max index in tree being sifted. Note that we make Max
!       --  Natural rather than Positive so that the case of sorting zero
!       --  elements is correctly handled (i.e. does nothing at all).
  
        procedure Sift (S : Positive);
        --  This procedure sifts up node S, i.e. converts the subtree rooted
--- 45,53 ----
     --  from 2NlogN to NlogN.
  
     procedure Sort (N : Natural; Xchg : Xchg_Procedure; Lt : Lt_Function) is
+ 
        Max : Natural := N;
!       --  Current Max index in tree being sifted
  
        procedure Sift (S : Positive);
        --  This procedure sifts up node S, i.e. converts the subtree rooted
*************** package body GNAT.Heap_Sort is
*** 78,84 ****
           --  Loop to pull up larger sons
  
           loop
!             Son := C + C;
  
              if Son < Max then
                 if Lt (Son, Son + 1) then
--- 77,85 ----
           --  Loop to pull up larger sons
  
           loop
!             exit when C > Positive'Last / 2;
! 
!             Son := 2 * C;
  
              if Son < Max then
                 if Lt (Son, Son + 1) then
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-heasor.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-heasor.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-heasor.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-heasor.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-hesora.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesora.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-hesora.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesora.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Heap_Sort_A is
*** 57,62 ****
--- 57,66 ----
        --  entry are irrelevant. This is just a minor optimization to avoid
        --  what would otherwise be two junk moves in phase two of the sort.
  
+       ----------
+       -- Sift --
+       ----------
+ 
        procedure Sift (S : Positive) is
           C      : Positive := S;
           Son    : Positive;
*************** package body GNAT.Heap_Sort_A is
*** 76,86 ****
           --  Loop to pull up larger sons
  
           loop
              Son := 2 * C;
-             exit when Son > Max;
  
!             if Son < Max and then Lt (Son, Son + 1) then
!                Son := Son + 1;
              end if;
  
              Move (Son, C);
--- 80,95 ----
           --  Loop to pull up larger sons
  
           loop
+             exit when C > Positive'Last / 2;
+ 
              Son := 2 * C;
  
!             if Son < Max then
!                if Lt (Son, Son + 1) then
!                   Son := Son + 1;
!                end if;
!             elsif Son > Max then
!                exit;
              end if;
  
              Move (Son, C);
*************** package body GNAT.Heap_Sort_A is
*** 126,132 ****
           Max := Max - 1;
           Sift (1);
        end loop;
- 
     end Sort;
  
  end GNAT.Heap_Sort_A;
--- 135,140 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-hesora.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesora.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-hesora.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesora.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 40,45 ****
--- 40,48 ----
  --  worst case and is in place with no additional storage required. See
  --  the body for exact details of the algorithm used.
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  package GNAT.Heap_Sort_A is
     pragma Preelaborate;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-hesorg.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesorg.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-hesorg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesorg.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Heap_Sort_G is
*** 67,75 ****
           C      : Positive := S;
           Son    : Positive;
           Father : Positive;
-          --  Note: by making the above all Positive, we ensure that a test
-          --  against zero for the temporary location can be resolved on the
-          --  basis of types when the routines are inlined.
  
        begin
           --  This is where the optimization is done, normally we would do a
--- 67,72 ----
*************** package body GNAT.Heap_Sort_G is
*** 85,90 ****
--- 82,89 ----
           --  Loop to pull up larger sons
  
           loop
+             exit when C > Positive'Last / 2;
+ 
              Son := 2 * C;
  
              if Son < Max then
*************** package body GNAT.Heap_Sort_G is
*** 138,144 ****
           Max := Max - 1;
           Sift (1);
        end loop;
- 
     end Sort;
  
  end GNAT.Heap_Sort_G;
--- 137,142 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-hesorg.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesorg.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-hesorg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-hesorg.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-htable.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-htable.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-htable.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-htable.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-htable.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-htable.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-htable.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-htable.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,47 ----
  
  --  See file s-htable.ads for full documentation of the interface
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  with System.HTable;
  
  package GNAT.HTable is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-io.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-io.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-io.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-io.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-io_aux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io_aux.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-io_aux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io_aux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-io_aux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io_aux.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-io_aux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-io_aux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-lists.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-lists.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-lists.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-lists.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-lists.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-lists.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-lists.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-lists.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-locfil.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-locfil.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-locfil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-locfil.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-locfil.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-locfil.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-locfil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-locfil.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-mbdira.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbdira.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-mbdira.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbdira.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-mbdira.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbdira.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-mbdira.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbdira.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/g-mbflra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbflra.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-mbflra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbflra.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-mbflra.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbflra.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-mbflra.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-mbflra.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/g-md5.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-md5.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-md5.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-md5.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-md5.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-md5.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-md5.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-md5.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-memdum.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-memdum.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-memdum.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-memdum.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-memdum.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-memdum.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-memdum.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-memdum.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2003-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-moreex.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-moreex.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-moreex.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-moreex.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-moreex.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-moreex.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-moreex.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-moreex.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-os_lib.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-os_lib.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-os_lib.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-os_lib.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-os_lib.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-os_lib.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-os_lib.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-os_lib.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-pehage.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-pehage.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-pehage.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-pehage.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-pehage.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-pehage.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-pehage.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-pehage.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-rannum.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rannum.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-rannum.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rannum.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-rannum.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rannum.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-rannum.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rannum.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regexp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regexp.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-regexp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regexp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regexp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regexp.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-regexp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regexp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regist.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regist.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-regist.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regist.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2001-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regist.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regist.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-regist.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regist.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regpat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regpat.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-regpat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regpat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-regpat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regpat.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-regpat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-regpat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-rewdat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rewdat.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-rewdat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rewdat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 5,11 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-rewdat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rewdat.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-rewdat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-rewdat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 5,11 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2014-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sechas.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sechas.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sechas.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sechas.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sechas.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sechas.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sechas.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sechas.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sehamd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehamd.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sehamd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehamd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sehamd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehamd.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sehamd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehamd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sehash.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehash.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sehash.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehash.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2002-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sehash.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehash.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sehash.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sehash.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2002-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sercom.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sercom.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sercom.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sercom.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sercom__linux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom__linux.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sercom__linux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom__linux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sercom__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sercom__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sercom__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 2007-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sestin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sestin.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sestin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sestin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                      Copyright (C) 2004-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sets.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sets.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sets.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sets.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sets.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sets.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sets.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sets.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                        Copyright (C) 2018-2026, AdaCore                  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha1.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha1.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sha1.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha1.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha1.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha1.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sha1.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha1.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha224.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha224.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sha224.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha224.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha256.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha256.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sha256.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha256.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2026, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha384.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha384.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sha384.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha384.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2026, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sha512.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha512.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sha512.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sha512.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --        Copyright (C) 2009-2026, Free Software Foundation, Inc.           --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shsh32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh32.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-shsh32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shsh32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh32.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-shsh32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shsh64.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh64.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-shsh64.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh64.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shsh64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh64.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-shsh64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shsh64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shshco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shshco.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-shshco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shshco.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-shshco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shshco.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-shshco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-shshco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soccon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soccon.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soccon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soccon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socket.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socket.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Sockets.Poll;
*** 47,52 ****
--- 47,53 ----
  with System;               use System;
  with System.Communication; use System.Communication;
  with System.CRTL;          use System.CRTL;
+ with System.C_Time;
  with System.Task_Lock;
  
  package body GNAT.Sockets is
*************** package body GNAT.Sockets is
*** 179,191 ****
     function Value (S : System.Address) return String;
     --  Same as Interfaces.C.Strings.Value but taking a System.Address
  
-    function To_Timeval (Val : Timeval_Duration) return Timeval;
-    --  Separate Val in seconds and microseconds
- 
-    function To_Duration (Val : Timeval) return Timeval_Duration;
-    --  Reconstruct a Duration value from a Timeval record (seconds and
-    --  microseconds).
- 
     function Dedot (Value : String) return String
     is (if Value /= "" and then Value (Value'Last) = '.'
         then Value (Value'First .. Value'Last - 1)
--- 180,185 ----
*************** package body GNAT.Sockets is
*** 528,534 ****
        Res  : C.int;
        Last : C.int;
        RSig : Socket_Type := No_Socket;
!       TVal : aliased Timeval;
        TPtr : Timeval_Access;
  
     begin
--- 522,528 ----
        Res  : C.int;
        Last : C.int;
        RSig : Socket_Type := No_Socket;
!       TVal : aliased System.C_Time.timeval;
        TPtr : Timeval_Access;
  
     begin
*************** package body GNAT.Sockets is
*** 543,549 ****
        if Timeout = Forever then
           TPtr := null;
        else
!          TVal := To_Timeval (Timeout);
           TPtr := TVal'Unchecked_Access;
        end if;
  
--- 537,543 ----
        if Timeout = Forever then
           TPtr := null;
        else
!          TVal := System.C_Time.To_Timeval (Timeout);
           TPtr := TVal'Unchecked_Access;
        end if;
  
*************** package body GNAT.Sockets is
*** 1423,1429 ****
        U4  : aliased C.unsigned;
        V1  : aliased C.unsigned_char;
        VS  : aliased C.char_array (1 .. NS); -- for devices name
!       VT  : aliased Timeval;
        Len : aliased C.int;
        Add : System.Address;
        Res : C.int;
--- 1417,1423 ----
        U4  : aliased C.unsigned;
        V1  : aliased C.unsigned_char;
        VS  : aliased C.char_array (1 .. NS); -- for devices name
!       VT  : aliased System.C_Time.timeval;
        Len : aliased C.int;
        Add : System.Address;
        Res : C.int;
*************** package body GNAT.Sockets is
*** 1596,1603 ****
                    Opt.Timeout := Duration (U4) / 1000;
                 end if;
  
              else
!                Opt.Timeout := To_Duration (VT);
              end if;
  
           when Bind_To_Device =>
--- 1590,1599 ----
                    Opt.Timeout := Duration (U4) / 1000;
                 end if;
  
+             elsif System.C_Time.In_Timeval_Duration (VT) then
+                Opt.Timeout := System.C_Time.To_Duration (VT);
              else
!                Opt.Timeout := Forever;
              end if;
  
           when Bind_To_Device =>
*************** package body GNAT.Sockets is
*** 1958,1964 ****
  
     procedure Listen_Socket
       (Socket : Socket_Type;
!       Length : Natural := 15)
     is
        Res : constant C.int := C_Listen (C.int (Socket), C.int (Length));
     begin
--- 1954,1960 ----
  
     procedure Listen_Socket
       (Socket : Socket_Type;
!       Length : Natural := SOSC.BACKLOG_MAX)
     is
        Res : constant C.int := C_Listen (C.int (Socket), C.int (Length));
     begin
*************** package body GNAT.Sockets is
*** 2633,2639 ****
                (1 .. (if Option.Name = Bind_To_Device
                       then C.size_t (ASU.Length (Option.Device) + 1)
                       else 0));
!       VT  : aliased Timeval;
        Len : C.int;
        Add : System.Address := Null_Address;
        Res : C.int;
--- 2629,2635 ----
                (1 .. (if Option.Name = Bind_To_Device
                       then C.size_t (ASU.Length (Option.Device) + 1)
                       else 0));
!       VT  : aliased System.C_Time.timeval;
        Len : C.int;
        Add : System.Address := Null_Address;
        Res : C.int;
*************** package body GNAT.Sockets is
*** 2767,2773 ****
                 end if;
  
              else
!                VT  := To_Timeval (Option.Timeout);
                 Len := VT'Size / 8;
                 Add := VT'Address;
              end if;
--- 2763,2769 ----
                 end if;
  
              else
!                VT  := System.C_Time.To_Timeval (Option.Timeout);
                 Len := VT'Size / 8;
                 Add := VT'Address;
              end if;
*************** package body GNAT.Sockets is
*** 2865,2897 ****
        return Integer (Socket);
     end To_C;
  
-    -----------------
-    -- To_Duration --
-    -----------------
- 
-    function To_Duration (Val : Timeval) return Timeval_Duration is
-       Max_D : constant Long_Long_Integer := Long_Long_Integer (Forever - 0.5);
-       Tv_sec_64 : constant Boolean := SOSC.SIZEOF_tv_sec = 8;
-       --  Need to separate this condition into the constant declaration to
-       --  avoid GNAT warning about "always true" or "always false".
-    begin
-       if Tv_sec_64 then
-          --  Check for possible Duration overflow when Tv_Sec field is 64 bit
-          --  integer.
- 
-          if Val.Tv_Sec > time_t (Max_D)
-              or else
-            (Val.Tv_Sec = time_t (Max_D)
-               and then
-             Val.Tv_Usec > suseconds_t ((Forever - Duration (Max_D)) * 1E6))
-          then
-             return Forever;
-          end if;
-       end if;
- 
-       return Duration (Val.Tv_Sec) + Duration (Val.Tv_Usec) * 1.0E-6;
-    end To_Duration;
- 
     -------------------
     -- To_Host_Entry --
     -------------------
--- 2861,2866 ----
*************** package body GNAT.Sockets is
*** 3041,3076 ****
        return HN.Name (1 .. HN.Length);
     end To_String;
  
-    ----------------
-    -- To_Timeval --
-    ----------------
- 
-    function To_Timeval (Val : Timeval_Duration) return Timeval is
-       S  : time_t;
-       uS : suseconds_t;
- 
-    begin
-       --  If zero, set result as zero (otherwise it gets rounded down to -1)
- 
-       if Val = 0.0 then
-          S  := 0;
-          uS := 0;
- 
-       --  Normal case where we do round down
- 
-       else
-          S  := time_t (Val - 0.5);
-          uS := suseconds_t (1_000_000 * (Val - Selector_Duration (S)) - 0.5);
- 
-          if uS = -1 then
-             --  It happen on integer duration
-             uS := 0;
-          end if;
-       end if;
- 
-       return (S, uS);
-    end To_Timeval;
- 
     -----------
     -- Value --
     -----------
--- 3010,3015 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socket.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socket.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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 is
*** 1219,1225 ****
  
     procedure Listen_Socket
       (Socket : Socket_Type;
!       Length : Natural := 15);
     --  To accept connections, a socket is first created with Create_Socket,
     --  a willingness to accept incoming connections and a queue Length for
     --  incoming connections are specified. Raise Socket_Error on error.
--- 1219,1225 ----
  
     procedure Listen_Socket
       (Socket : Socket_Type;
!       Length : Natural := SOSC.BACKLOG_MAX);
     --  To accept connections, a socket is first created with Create_Socket,
     --  a willingness to accept incoming connections and a queue Length for
     --  incoming connections are specified. Raise Socket_Error on error.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socket__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socket__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socket__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socket__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socket__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socpol.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socpol.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socpol.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socpol.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socpol__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socpol__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2026, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socpol__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socpol__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socpol__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                         Copyright (C) 2020-2026, AdaCore                 --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Task_Lock;
*** 40,45 ****
--- 40,47 ----
  
  with Interfaces.C; use Interfaces.C;
  
+ with System.C_Time;
+ 
  package body GNAT.Sockets.Thin is
  
     Non_Blocking_Sockets : aliased Fd_Set;
*************** package body GNAT.Sockets.Thin is
*** 215,221 ****
        declare -- unreachable if Thread_Blocking_IO is statically True
           pragma Warnings (On, "unreachable code");
           WSet : aliased Fd_Set;
!          Now  : aliased Timeval;
  
        begin
           Reset_Socket_Set (WSet'Access);
--- 217,223 ----
        declare -- unreachable if Thread_Blocking_IO is statically True
           pragma Warnings (On, "unreachable code");
           WSet : aliased Fd_Set;
!          Now  : aliased System.C_Time.timeval;
  
        begin
           Reset_Socket_Set (WSet'Access);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Task_Lock;
*** 40,45 ****
--- 40,47 ----
  
  with Interfaces.C; use Interfaces.C;
  
+ with System.C_Time;
+ 
  package body GNAT.Sockets.Thin is
  
     Non_Blocking_Sockets : aliased Fd_Set;
*************** package body GNAT.Sockets.Thin is
*** 194,200 ****
        declare -- unreachable if Thread_Blocking_IO is statically True
           pragma Warnings (On, "unreachable code");
           WSet : aliased Fd_Set;
!          Now  : aliased Timeval;
        begin
           Reset_Socket_Set (WSet'Access);
           loop
--- 196,202 ----
        declare -- unreachable if Thread_Blocking_IO is statically True
           pragma Warnings (On, "unreachable code");
           WSet : aliased Fd_Set;
!          Now  : aliased System.C_Time.timeval;
        begin
           Reset_Socket_Set (WSet'Access);
           loop
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-socthi__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-socthi__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soliop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soliop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__lynxos.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soliop__lynxos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__lynxos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soliop__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soliop__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soliop__qnx.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__qnx.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soliop__qnx.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__qnx.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-soliop__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-soliop__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-soliop__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sopowa.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sopowa.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sopowa__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sopowa__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa__posix.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sopowa__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sopowa__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sothco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sothco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sothco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sothco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2008-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,40 ****
  --  This package should not be directly with'ed by an applications program.
  
  with Ada.Unchecked_Conversion;
  with Interfaces.C.Strings;
! with System.Parameters;
  
  package GNAT.Sockets.Thin_Common is
  
--- 33,42 ----
  --  This package should not be directly with'ed by an applications program.
  
  with Ada.Unchecked_Conversion;
+ 
  with Interfaces.C.Strings;
! 
! with System.C_Time;
  
  package GNAT.Sockets.Thin_Common is
  
*************** package GNAT.Sockets.Thin_Common is
*** 44,74 ****
     Success : constant C.int :=  0;
     Failure : constant C.int := -1;
  
!    type time_t is
!      range -2 ** (System.Parameters.time_t_bits - 1)
!         .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
!    for time_t'Size use System.Parameters.time_t_bits;
!    pragma Convention (C, time_t);
  
!    type suseconds_t is
!      range -2 ** (8 * SOSC.SIZEOF_tv_usec - 1)
!          .. 2 ** (8 * SOSC.SIZEOF_tv_usec - 1) - 1;
!    for suseconds_t'Size use 8 * SOSC.SIZEOF_tv_usec;
!    pragma Convention (C, suseconds_t);
  
!    type Timeval is record
!       Tv_Sec  : time_t;
!       Tv_Usec : suseconds_t;
!    end record;
!    pragma Convention (C, Timeval);
  
!    type Timeval_Access is access all Timeval;
     pragma Convention (C, Timeval_Access);
  
     type socklen_t is mod 2 ** (8 * SOSC.SIZEOF_socklen_t);
     for socklen_t'Size use (8 * SOSC.SIZEOF_socklen_t);
  
!    Immediat : constant Timeval := (0, 0);
  
     -------------------------------------------
     -- Mapping tables to low level constants --
--- 46,68 ----
     Success : constant C.int :=  0;
     Failure : constant C.int := -1;
  
!    subtype time_t is System.C_Time.time_t;
!    pragma Obsolescent (time_t, "use type from GNAT.C_Time instead");
  
!    subtype suseconds_t is System.C_Time.usec_t;
!    pragma Obsolescent (suseconds_t, "use type from GNAT.C_Time instead");
  
!    subtype timeval is System.C_Time.timeval;
!    pragma Obsolescent (timeval, "use type from GNAT.C_Time instead");
  
!    type Timeval_Access is access all System.C_Time.timeval;
     pragma Convention (C, Timeval_Access);
  
     type socklen_t is mod 2 ** (8 * SOSC.SIZEOF_socklen_t);
     for socklen_t'Size use (8 * SOSC.SIZEOF_socklen_t);
  
!    Immediat : constant System.C_Time.timeval
!      := System.C_Time.Milliseconds_To_Timeval (0);
  
     -------------------------------------------
     -- Mapping tables to low level constants --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sothco__dummy.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco__dummy.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sothco__dummy.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco__dummy.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2008-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sothco__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sothco__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sothco__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2008-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-souinf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-souinf.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-souinf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-souinf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spchge.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spchge.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-spchge.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spchge.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spchge.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spchge.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-spchge.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spchge.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,42 ****
--- 37,45 ----
  --  codes for ASCII characters in the range 16#20#..16#7F# have their normal
  --  expected encoding values (e.g. the Pos value 16#31# must be digit 1).
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  package GNAT.Spelling_Checker_Generic is
     pragma Pure;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-speche.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-speche.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-speche.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-speche.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-speche.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-speche.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-speche.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-speche.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,42 ----
  --  This package provides a utility routine for checking for bad spellings
  --  for the case of String arguments.
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  package GNAT.Spelling_Checker is
     pragma Pure;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spipat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spipat.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-spipat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spipat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spipat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spipat.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-spipat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spipat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spitbo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spitbo.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-spitbo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spitbo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spitbo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spitbo.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-spitbo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spitbo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spogwa.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spogwa.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-spogwa.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spogwa.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is 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 GNAT.Sockets.Thin_Common;
  
  procedure GNAT.Sockets.Poll.G_Wait
    (Fds : in out Set; Timeout : Interfaces.C.int; Result : out Integer)
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.C_Time;
  
  procedure GNAT.Sockets.Poll.G_Wait
    (Fds : in out Set; Timeout : Interfaces.C.int; Result : out Integer)
*************** is
*** 41,51 ****
        readfds   : access FD_Set_Type;
        writefds  : access FD_Set_Type;
        exceptfds : access FD_Set_Type;
!       timeout   : access Thin_Common.Timeval) return Integer
       with Import => True, Convention => Stdcall, External_Name => "select";
  
!    Timeout_V : aliased Thin_Common.Timeval;
!    Timeout_A : access Thin_Common.Timeval;
  
     Rfds      : aliased FD_Set_Type;
     Rcount    : Natural := 0;
--- 41,51 ----
        readfds   : access FD_Set_Type;
        writefds  : access FD_Set_Type;
        exceptfds : access FD_Set_Type;
!       timeout   : access System.C_Time.timeval) return Integer
       with Import => True, Convention => Stdcall, External_Name => "select";
  
!    Timeout_V : aliased System.C_Time.timeval;
!    Timeout_A : access System.C_Time.timeval;
  
     Rfds      : aliased FD_Set_Type;
     Rcount    : Natural := 0;
*************** begin
*** 63,70 ****
  
     if Timeout >= 0 then
        Timeout_A := Timeout_V'Access;
!       Timeout_V.Tv_Sec  := Thin_Common.time_t  (Timeout / 1000);
!       Timeout_V.Tv_Usec := Thin_Common.suseconds_t (Timeout rem 1000 * 1000);
     end if;
  
     Reset_Socket_Set (Rfds);
--- 63,69 ----
  
     if Timeout >= 0 then
        Timeout_A := Timeout_V'Access;
!       Timeout_V := System.C_Time.Milliseconds_To_Timeval (Timeout);
     end if;
  
     Reset_Socket_Set (Rfds);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-spogwa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spogwa.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-spogwa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-spogwa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2020-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sptabo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptabo.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sptabo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptabo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sptain.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptain.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sptain.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptain.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sptavs.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptavs.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sptavs.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sptavs.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sse.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sse.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-sse.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sse.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-ssvety.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ssvety.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-ssvety.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-ssvety.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2009-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-sthcso.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sthcso.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-sthcso.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-sthcso.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-stheme.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stheme.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-stheme.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stheme.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-strhas.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-strhas.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-strhas.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-strhas.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2015-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-string.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-string.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-string.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-string.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-string.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-string.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-string.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-string.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-strspl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-strspl.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-strspl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-strspl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-stseme.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stseme.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-stseme.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stseme.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stsifd__sockets.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-stsifd__sockets.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-stsifd__sockets.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-table.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-table.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-table.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-table.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-table.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-table.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-table.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-table.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-tasloc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tasloc.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-tasloc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tasloc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-tasloc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tasloc.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-tasloc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tasloc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-timsta.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-timsta.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-timsta.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-timsta.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-timsta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-timsta.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-timsta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-timsta.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2008-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-traceb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-traceb.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-traceb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-traceb.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                      Copyright (C) 1999-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-traceb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-traceb.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-traceb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-traceb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-trasym.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-trasym.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-trasym.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-trasym.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-trasym.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-trasym.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-trasym.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-trasym.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-tty.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tty.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-tty.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tty.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-tty.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tty.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-tty.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-tty.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-u3spch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-u3spch.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-u3spch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-u3spch.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-u3spch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-u3spch.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-u3spch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-u3spch.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,42 ----
  --  This package provides a utility routine for checking for bad spellings
  --  for the case of System.WCh_Cnv.UTF_32_String arguments.
  
+ --  Note: this unit is used during bootstrap, see ADA_GENERATED_FILES in
+ --  gcc-interface/Make-lang.in for details on the constraints.
+ 
  with System.WCh_Cnv;
  
  package GNAT.UTF_32_Spelling_Checker is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-utf_32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-utf_32.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-utf_32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-utf_32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-utf_32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-utf_32.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-utf_32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-utf_32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-wispch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wispch.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-wispch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wispch.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-wispch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wispch.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-wispch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wispch.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-wistsp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wistsp.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-wistsp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-wistsp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-zspche.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zspche.adb
*** gcc-15.2.0/gcc/ada/libgnat/g-zspche.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zspche.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-zspche.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zspche.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-zspche.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zspche.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/g-zstspl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zstspl.ads
*** gcc-15.2.0/gcc/ada/libgnat/g-zstspl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/g-zstspl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/gnat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/gnat.ads
*** gcc-15.2.0/gcc/ada/libgnat/gnat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/gnat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1992-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-c.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-c.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-c.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-c.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,106 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body Interfaces.C
    with SPARK_Mode
  is
  
-    --------------------
-    -- C_Length_Ghost --
-    --------------------
- 
-    function C_Length_Ghost (Item : char_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : wchar_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = wide_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= wide_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : char16_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = char16_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char16_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
-    function C_Length_Ghost (Item : char32_array) return size_t is
-    begin
-       for J in Item'Range loop
-          if Item (J) = char32_nul then
-             return J - Item'First;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char32_nul);
-       end loop;
- 
-       raise Program_Error;
-    end C_Length_Ghost;
- 
     -----------------------
     -- Is_Nul_Terminated --
     -----------------------
--- 29,38 ----
*************** is
*** 113,121 ****
           if Item (J) = nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= nul);
        end loop;
  
        return False;
--- 45,50 ----
*************** is
*** 129,137 ****
           if Item (J) = wide_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= wide_nul);
        end loop;
  
        return False;
--- 58,63 ----
*************** is
*** 145,153 ****
           if Item (J) = char16_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char16_nul);
        end loop;
  
        return False;
--- 71,76 ----
*************** is
*** 161,169 ****
           if Item (J) = char32_nul then
              return True;
           end if;
- 
-          pragma Loop_Invariant
-            (for all K in Item'First .. J => Item (K) /= char32_nul);
        end loop;
  
        return False;
--- 84,89 ----
*************** is
*** 194,207 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = nul then
--- 114,119 ----
*************** is
*** 211,218 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 123,128 ----
*************** is
*** 220,236 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 130,139 ----
        end if;
  
        declare
!          R : String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 252,265 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = nul then
--- 155,160 ----
*************** is
*** 285,303 ****
           for J in 1 .. Count loop
              Target (To) := Character (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 180,185 ----
*************** is
*** 329,342 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = wide_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= wide_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = wide_nul then
--- 211,216 ----
*************** is
*** 346,353 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 220,225 ----
*************** is
*** 355,371 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 227,236 ----
        end if;
  
        declare
!          R : Wide_String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 387,400 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = wide_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= wide_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = wide_nul then
--- 252,257 ----
*************** is
*** 420,438 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 277,282 ----
*************** is
*** 464,477 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char16_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= char16_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char16_nul then
--- 308,313 ----
*************** is
*** 481,488 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 317,322 ----
*************** is
*** 490,506 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
! 
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 324,333 ----
        end if;
  
        declare
!          R : Wide_String (1 .. Count);
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 522,535 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char16_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= char16_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char16_nul then
--- 349,354 ----
*************** is
*** 555,573 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 374,379 ----
*************** is
*** 599,613 ****
           From := Item'First;
  
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char32_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                  Item (J) /= char32_nul);
-             pragma Loop_Invariant (From <= Item'First + C_Length_Ghost (Item));
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char32_nul then
--- 405,410 ----
*************** is
*** 617,624 ****
              end if;
           end loop;
  
-          pragma Assert (From = Item'First + C_Length_Ghost (Item));
- 
           Count := Natural (From - Item'First);
  
        else
--- 414,419 ----
*************** is
*** 626,642 ****
        end if;
  
        declare
!          Count_Cst : constant Natural := Count;
!          R : Wide_Wide_String (1 .. Count_Cst) with Relaxed_Initialization;
  
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
- 
-             pragma Loop_Invariant (for all K in 1 .. J => R (K)'Initialized);
-             pragma Loop_Invariant
-               (for all K in 1 .. J =>
-                 R (K) = To_Ada (Item (size_t (K) - 1 + Item'First)));
           end loop;
  
           return R;
--- 421,431 ----
        end if;
  
        declare
!          R : Wide_Wide_String (1 .. Count);
  
        begin
           for J in R'Range loop
              R (J) := To_Ada (Item (size_t (J) - 1 + Item'First));
           end loop;
  
           return R;
*************** is
*** 658,671 ****
        if Trim_Nul then
           From := Item'First;
           loop
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant
-               (for some J in From .. Item'Last => Item (J) = char32_nul);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From when J /= From =>
-                 Item (J) /= char32_nul);
-             pragma Loop_Variant (Increases => From);
- 
              if From > Item'Last then
                 raise Terminator_Error;
              elsif Item (From) = char32_nul then
--- 447,452 ----
*************** is
*** 691,709 ****
           for J in 1 .. Count loop
              Target (To) := To_Ada (Item (From));
  
-             pragma Loop_Invariant (From in Item'Range);
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant (To = Target'First + (J - 1));
-             pragma Loop_Invariant (From = Item'First + size_t (J - 1));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all K in Target'First .. To =>
-                 Target (K) =
-                   To_Ada (Item (size_t (K - Target'First) + Item'First)));
- 
              --  Avoid possible overflow when incrementing To in the last
              --  iteration of the loop.
              exit when J = Count;
--- 472,477 ----
*************** is
*** 734,759 ****
     begin
        if Append_Nul then
           declare
!             R : char_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 502,515 ----
     begin
        if Append_Nul then
           declare
!             R : char_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := nul;
  
              return R;
           end;
  
*************** is
*** 774,792 ****
  
           else
              declare
!                R : char_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 530,539 ----
  
           else
              declare
!                R : char_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 814,831 ****
           for From in Item'Range loop
              Target (To) := char (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                  Target (Target'First + size_t (J - Item'First)) =
-                    To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
--- 561,566 ----
*************** is
*** 836,842 ****
                 Target (To) := nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 571,576 ----
*************** is
*** 859,884 ****
     begin
        if Append_Nul then
           declare
!             R : wchar_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := wide_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 593,606 ----
     begin
        if Append_Nul then
           declare
!             R : wchar_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := wide_nul;
  
              return R;
           end;
  
*************** is
*** 895,913 ****
  
           else
              declare
!                R : wchar_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 617,626 ----
  
           else
              declare
!                R : wchar_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 925,964 ****
        Append_Nul : Boolean := True)
     is
        To : size_t;
- 
     begin
        if Target'Length < Item'Length then
           raise Constraint_Error;
- 
        else
           To := Target'First;
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              if To > Target'Last then
                 raise Constraint_Error;
--- 638,654 ----
*************** is
*** 966,972 ****
                 Target (To) := wide_nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 656,661 ----
*************** is
*** 989,1014 ****
     begin
        if Append_Nul then
           declare
!             R : char16_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := char16_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 678,691 ----
     begin
        if Append_Nul then
           declare
!             R : char16_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := char16_nul;
  
              return R;
           end;
  
*************** is
*** 1022,1043 ****
  
           if Item'Length = 0 then
              raise Constraint_Error;
- 
           else
              declare
!                R : char16_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 699,710 ----
  
           if Item'Length = 0 then
              raise Constraint_Error;
           else
              declare
!                R : char16_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 1055,1061 ****
        Append_Nul : Boolean := True)
     is
        To : size_t;
- 
     begin
        if Target'Length < Item'Length then
           raise Constraint_Error;
--- 722,727 ----
*************** is
*** 1065,1094 ****
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              if To > Target'Last then
                 raise Constraint_Error;
--- 731,739 ----
*************** is
*** 1096,1102 ****
                 Target (To) := char16_nul;
                 Count := Item'Length + 1;
              end if;
- 
           else
              Count := Item'Length;
           end if;
--- 741,746 ----
*************** is
*** 1119,1144 ****
     begin
        if Append_Nul then
           declare
!             R : char32_array (0 .. Item'Length) with Relaxed_Initialization;
! 
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                pragma Loop_Invariant
-                  (for all K in 0 .. size_t (J - Item'First) =>
-                     R (K)'Initialized);
-                pragma Loop_Invariant
-                  (for all K in Item'First .. J =>
-                     R (size_t (K - Item'First)) = To_C (Item (K)));
              end loop;
  
              R (R'Last) := char32_nul;
  
-             pragma Assert
-               (for all J in Item'Range =>
-                  R (size_t (J - Item'First)) = To_C (Item (J)));
- 
              return R;
           end;
  
--- 763,776 ----
     begin
        if Append_Nul then
           declare
!             R : char32_array (0 .. Item'Length);
           begin
              for J in Item'Range loop
                 R (size_t (J - Item'First)) := To_C (Item (J));
              end loop;
  
              R (R'Last) := char32_nul;
  
              return R;
           end;
  
*************** is
*** 1154,1172 ****
  
           else
              declare
!                R : char32_array (0 .. Item'Length - 1)
!                  with Relaxed_Initialization;
! 
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
- 
-                   pragma Loop_Invariant
-                     (for all K in 0 .. size_t (J - Item'First) =>
-                        R (K)'Initialized);
-                   pragma Loop_Invariant
-                     (for all K in Item'First .. J =>
-                        R (size_t (K - Item'First)) = To_C (Item (K)));
                 end loop;
  
                 return R;
--- 786,795 ----
  
           else
              declare
!                R : char32_array (0 .. Item'Length - 1);
              begin
                 for J in Item'Range loop
                    R (size_t (J - Item'First)) := To_C (Item (J));
                 end loop;
  
                 return R;
*************** is
*** 1188,1223 ****
     begin
        if Target'Length < Item'Length + (if Append_Nul then 1 else 0) then
           raise Constraint_Error;
- 
        else
           To := Target'First;
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
-             pragma Loop_Invariant (To in Target'Range);
-             pragma Loop_Invariant
-               (To - Target'First = size_t (From - Item'First));
-             pragma Loop_Invariant
-               (for all J in Target'First .. To => Target (J)'Initialized);
-             pragma Loop_Invariant
-               (Target (Target'First .. To)'Initialized);
-             pragma Loop_Invariant
-               (for all J in Item'First .. From =>
-                 Target (Target'First + size_t (J - Item'First)) =
-                   To_C (Item (J)));
- 
              To := To + 1;
           end loop;
  
-          pragma Assert
-            (for all J in Item'Range =>
-              Target (Target'First + size_t (J - Item'First)) =
-                To_C (Item (J)));
-          pragma Assert
-            (if Item'Length /= 0 then
-              Target (Target'First ..
-                      Target'First + (Item'Length - 1))'Initialized);
- 
           if Append_Nul then
              Target (To) := char32_nul;
              Count := Item'Length + 1;
--- 811,825 ----
     begin
        if Target'Length < Item'Length + (if Append_Nul then 1 else 0) then
           raise Constraint_Error;
        else
           To := Target'First;
+ 
           for From in Item'Range loop
              Target (To) := To_C (Item (From));
  
              To := To + 1;
           end loop;
  
           if Append_Nul then
              Target (To) := char32_nul;
              Count := Item'Length + 1;
*************** is
*** 1226,1232 ****
           end if;
        end if;
     end To_C;
-    pragma Annotate (CodePeer, False_Positive, "validity check",
-      "Count is only uninitialized on abnormal return.");
  
  end Interfaces.C;
--- 828,832 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-c.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-c.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-c.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-c.ads	Thu Apr 23 11:07:32 2026
*************** is
*** 133,138 ****
--- 133,139 ----
     function C_Length_Ghost (Item : char_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = nul
*************** is
*** 274,279 ****
--- 275,281 ----
     function C_Length_Ghost (Item : wchar_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = wide_nul
*************** is
*** 395,400 ****
--- 397,403 ----
     function C_Length_Ghost (Item : char16_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = char16_nul
*************** is
*** 510,515 ****
--- 513,519 ----
     function C_Length_Ghost (Item : char32_array) return size_t
     with
       Ghost,
+      Import,
       Pre  => Is_Nul_Terminated (Item),
       Post => C_Length_Ghost'Result <= Item'Last - Item'First
         and then Item (Item'First + C_Length_Ghost'Result) = char32_nul
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cexten.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cexten.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cexten.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cexten.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cexten__128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cexten__128.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cexten__128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cexten__128.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cheri-exceptions.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri-exceptions.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cheri-exceptions.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri-exceptions.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                  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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2024-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cheri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-cheri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,60 ----
  
  package body Interfaces.CHERI is
  
+    ----------------
+    -- Set_Bounds --
+    ----------------
+ 
+    procedure Set_Bounds
+      (Cap    : in out Capability;
+       Length :        Bounds_Length)
+    is
+    begin
+       Cap := Capability_With_Bounds (Cap, Length);
+    end Set_Bounds;
+ 
+    ----------------------
+    -- Set_Exact_Bounds --
+    ----------------------
+ 
+    procedure Set_Exact_Bounds
+      (Cap    : in out Capability;
+       Length :        Bounds_Length)
+    is
+    begin
+       Cap := Capability_With_Exact_Bounds (Cap, Length);
+    end Set_Exact_Bounds;
+ 
     ----------------------------
     -- Set_Address_And_Bounds --
     ----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cheri.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cheri.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cheri.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --                     Copyright (C) 2023-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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
*** 273,280 ****
       (Cap    : in out Capability;
        Length :        Bounds_Length)
     with
!      Import, Convention => Intrinsic,
!      External_Name => "__builtin_cheri_bounds_set";
     --  Narrow the bounds of a capability so that the lower bound is the
     --  current address and the upper bound is suitable for the Length.
     --
--- 273,279 ----
       (Cap    : in out Capability;
        Length :        Bounds_Length)
     with
!      Inline;
     --  Narrow the bounds of a capability so that the lower bound is the
     --  current address and the upper bound is suitable for the Length.
     --
*************** is
*** 287,294 ****
       (Cap    : in out Capability;
        Length :        Bounds_Length)
     with
!      Import, Convention => Intrinsic,
!      External_Name => "__builtin_cheri_bounds_set_exact";
     --  Narrow the bounds of a capability so that the lower bound is the
     --  current address and the upper bound is suitable for the Length.
     --
--- 286,292 ----
       (Cap    : in out Capability;
        Length :        Bounds_Length)
     with
!      Inline;
     --  Narrow the bounds of a capability so that the lower bound is the
     --  current address and the upper bound is suitable for the Length.
     --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cobol.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cobol.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-cobol.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cobol.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cobol.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cobol.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cobol.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cobol.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (ASCII Version)                              --
  --                                                                          --
! --          Copyright (C) 1993-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/i-cpoint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cpoint.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-cpoint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cpoint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Interfaces.C.Pointers is
*** 148,154 ****
        S : Pointer := Source;
  
     begin
!       if Source = null or Target = null then
           raise Dereference_Error;
        end if;
  
--- 148,154 ----
        S : Pointer := Source;
  
     begin
!       if Source = null or else Target = null then
           raise Dereference_Error;
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cpoint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cpoint.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cpoint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cpoint.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/i-cstrea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrea.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-cstrea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrea.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cstrea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrea.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cstrea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrea.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cstrin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrin.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-cstrin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrin.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 66,73 ****
     pragma Inline ("+");
     --  Address arithmetic on chars_ptr value
  
!    function Position_Of_Nul (Into : char_array) return size_t;
!    --  Returns position of the first Nul in Into or Into'Last + 1 if none
  
     --  We can't use directly System.Memory because the categorization is not
     --  compatible, so we directly import here the malloc and free routines.
--- 66,76 ----
     pragma Inline ("+");
     --  Address arithmetic on chars_ptr value
  
!    procedure Position_Of_Nul
!      (Into : char_array; Found : out Boolean; Index : out size_t);
!    --  If into contains a Nul character, Found is set to True and Index
!    --  contains the position of the first Nul character in Into. Otherwise
!    --  Found is set to False and the value of Index is not meaningful.
  
     --  We can't use directly System.Memory because the categorization is not
     --  compatible, so we directly import here the malloc and free routines.
*************** is
*** 107,112 ****
--- 110,116 ----
     --------------------
  
     function New_Char_Array (Chars : char_array) return chars_ptr is
+       Found   : Boolean;
        Index   : size_t;
        Pointer : chars_ptr;
  
*************** is
*** 114,137 ****
        --  Get index of position of null. If Index > Chars'Last,
        --  nul is absent and must be added explicitly.
  
!       Index := Position_Of_Nul (Into => Chars);
!       Pointer := Memory_Alloc ((Index - Chars'First + 1));
  
        --  If nul is present, transfer string up to and including nul
  
!       if Index <= Chars'Last then
!          Update (Item   => Pointer,
!                  Offset => 0,
!                  Chars  => Chars (Chars'First .. Index),
!                  Check  => False);
        else
           --  If original string has no nul, transfer whole string and add
           --  terminator explicitly.
  
!          Update (Item   => Pointer,
!                  Offset => 0,
!                  Chars  => Chars,
!                  Check  => False);
           Poke (nul, Into => Pointer + size_t'(Chars'Length));
        end if;
  
--- 118,142 ----
        --  Get index of position of null. If Index > Chars'Last,
        --  nul is absent and must be added explicitly.
  
!       Position_Of_Nul (Into => Chars, Found => Found, Index => Index);
  
        --  If nul is present, transfer string up to and including nul
  
!       if Found then
!          Pointer := Memory_Alloc (Index - Chars'First + 1);
! 
!          Update
!            (Item   => Pointer,
!             Offset => 0,
!             Chars  => Chars (Chars'First .. Index),
!             Check  => False);
        else
           --  If original string has no nul, transfer whole string and add
           --  terminator explicitly.
  
!          Pointer := Memory_Alloc (Chars'Length + 1);
! 
!          Update (Item => Pointer, Offset => 0, Chars => Chars, Check => False);
           Poke (nul, Into => Pointer + size_t'(Chars'Length));
        end if;
  
*************** is
*** 148,167 ****
        --  the result, and doesn't copy the string on the stack, otherwise its
        --  use is limited when used from tasks on large strings.
  
!       Result : constant chars_ptr := Memory_Alloc (Str'Length + 1);
  
!       Result_Array : char_array  (1 .. Str'Length + 1);
!       for Result_Array'Address use To_Address (Result);
!       pragma Import (Ada, Result_Array);
  
!       Count : size_t;
  
-    begin
-       To_C
-         (Item       => Str,
-          Target     => Result_Array,
-          Count      => Count,
-          Append_Nul => True);
        return Result;
     end New_String;
  
--- 153,185 ----
        --  the result, and doesn't copy the string on the stack, otherwise its
        --  use is limited when used from tasks on large strings.
  
!       Len : Natural := 0;
!       --  Length of the longest prefix of Str that doesn't contain NUL
  
!       Result : chars_ptr;
!    begin
!       for C of Str loop
!          if C = ASCII.NUL then
!             exit;
!          end if;
!          Len := Len + 1;
!       end loop;
  
!       Result := Memory_Alloc (size_t (Len) + 1);
! 
!       declare
!          Result_Array : char_array (1 .. size_t (Len) + 1)
!          with Address => To_Address (Result), Import, Convention => Ada;
! 
!          Count : size_t;
!       begin
!          To_C
!            (Item       => Str (Str'First .. Str'First + Len - 1),
!             Target     => Result_Array,
!             Count      => Count,
!             Append_Nul => True);
!       end;
  
        return Result;
     end New_String;
  
*************** is
*** 187,205 ****
     -- Position_Of_Nul --
     ---------------------
  
!    function Position_Of_Nul (Into : char_array) return size_t is
     begin
!       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
!                        "early returns for performance");
        for J in Into'Range loop
           if Into (J) = nul then
!             return J;
           end if;
        end loop;
- 
-       return Into'Last + 1;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Position_Of_Nul;
  
     ------------
--- 205,223 ----
     -- Position_Of_Nul --
     ---------------------
  
!    procedure Position_Of_Nul
!      (Into : char_array; Found : out Boolean; Index : out size_t) is
     begin
!       Found := False;
!       Index := 0;
! 
        for J in Into'Range loop
           if Into (J) = nul then
!             Found := True;
!             Index := J;
!             return;
           end if;
        end loop;
     end Position_Of_Nul;
  
     ------------
*************** is
*** 231,249 ****
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     is
     begin
        pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                         "early returns for performance");
        if Item = null then
           return Null_Ptr;
!       elsif Nul_Check
!         and then Position_Of_Nul (Into => Item.all) > Item'Last
!       then
!          raise Terminator_Error;
!       else
!          return To_chars_ptr (Item (Item'First)'Address);
        end if;
  
        pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end To_Chars_Ptr;
  
--- 249,270 ----
       (Item      : char_array_access;
        Nul_Check : Boolean := False) return chars_ptr
     is
+       Found : Boolean;
+       Index : size_t;
     begin
        pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                         "early returns for performance");
        if Item = null then
           return Null_Ptr;
!       elsif Nul_Check then
!          Position_Of_Nul (Item.all, Found, Index);
!          if not Found then
!             raise Terminator_Error;
!          end if;
        end if;
  
+       return To_chars_ptr (Item (Item'First)'Address);
+ 
        pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end To_Chars_Ptr;
  
*************** is
*** 260,265 ****
--- 281,291 ----
        Index : chars_ptr := Item + Offset;
  
     begin
+       --  Check for null pointer as mandated by the RM.
+       if Item = Null_Ptr then
+          raise Dereference_Error;
+       end if;
+ 
        if Check and then Offset + Chars'Length  > Strlen (Item) then
           raise Update_Error;
        end if;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-cstrin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrin.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-cstrin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-cstrin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1993-2026, Free Software Foundation, 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,69 ****
     --  coming from who knows where, it seems a good idea to turn off any
     --  strict aliasing assumptions for this type.
  
!    type chars_ptr is private;
!    pragma Preelaborable_Initialization (chars_ptr);
  
     type chars_ptr_array is array (size_t range <>) of aliased chars_ptr;
  
--- 62,70 ----
     --  coming from who knows where, it seems a good idea to turn off any
     --  strict aliasing assumptions for this type.
  
!    type chars_ptr is private
!    with
!      Preelaborable_Initialization;
  
     type chars_ptr_array is array (size_t range <>) of aliased chars_ptr;
  
*************** is
*** 100,105 ****
--- 101,117 ----
  
     --  The Value functions copy the contents of a chars_ptr object
     --  into a char_array/String.
+    --  There is a guard for a storage error on an object declaration for
+    --  an array type with a modular index type with the size of
+    --  Long_Long_Integer. The special processing is needed in this case
+    --  to compute reliably the size of the object, and eventually, to
+    --  raise Storage_Error, when wrap-around arithmetic might compute
+    --  a meangingless size for the object.
+    --
+    --  The guard raises Storage_Error when
+    --
+    --    (Arr'Last / 2 - Arr'First / 2) > (2 ** 30)
+    --
     function Value (Item : chars_ptr) return char_array with
       Pre    => Item /= Null_Ptr,
       Global => (Input => C_Memory);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-fortra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-fortra.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-fortra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-fortra.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-pacdec.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-pacdec.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-pacdec.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-pacdec.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-pacdec.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-pacdec.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-pacdec.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-pacdec.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --            (Version for IBM Mainframe Packed Decimal Format)             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-vxwoio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwoio.adb
*** gcc-15.2.0/gcc/ada/libgnat/i-vxwoio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwoio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 2002-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-vxwoio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwoio.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-vxwoio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwoio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2002-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-vxwork.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwork.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-vxwork.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwork.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/i-vxwork__x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwork__x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/i-vxwork__x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/i-vxwork__x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                   S p e c                                --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/interfac.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/interfac.ads
*** gcc-15.2.0/gcc/ada/libgnat/interfac.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/interfac.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/interfac__2020.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/interfac__2020.ads
*** gcc-15.2.0/gcc/ada/libgnat/interfac__2020.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/interfac__2020.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/memtrack.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/memtrack.adb
*** gcc-15.2.0/gcc/ada/libgnat/memtrack.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/memtrack.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-addima.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addima.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-addima.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addima.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-addima.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addima.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-addima.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addima.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-addope.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addope.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-addope.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addope.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-addope.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addope.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-addope.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-addope.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-aoinar.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aoinar.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-aoinar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aoinar.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-aoinar.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aoinar.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-aoinar.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aoinar.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-aomoar.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aomoar.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-aomoar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aomoar.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-aomoar.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aomoar.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-aomoar.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aomoar.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-aotase.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aotase.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-aotase.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aotase.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-aotase.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aotase.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-aotase.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aotase.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-aridou.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aridou.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-aridou.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aridou.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,102 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- pragma Annotate (Gnatcheck, Exempt_On, "Metrics_LSLOC",
-                  "limit exceeded due to proof code");
- 
  with Ada.Unchecked_Conversion;
- with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
  
  package body System.Arith_Double
    with SPARK_Mode
  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 (Pre            => Ignore,
-                             Post           => Ignore,
-                             Contract_Cases => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore,
-                             Assert_And_Cut => Ignore);
- 
     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);
  
     Double_Size : constant Natural := Double_Int'Size;
     Single_Size : constant Natural := Double_Int'Size / 2;
  
-    --  Log of Single_Size in base 2, so that Single_Size = 2 ** Log_Single_Size
-    Log_Single_Size : constant Natural :=
-      (case Single_Size is
-         when 32  => 5,
-         when 64  => 6,
-         when 128 => 7,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    --  Power-of-two constants
- 
-    pragma Warnings
-      (Off, "non-preelaborable call not allowed in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    pragma Warnings
-      (Off, "non-static constant in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    Big_0 : constant Big_Integer :=
-      Big (Double_Uns'(0))
-    with Ghost;
-    Big_2xxSingle : constant Big_Integer :=
-      Big (Double_Int'(2 ** Single_Size))
-    with Ghost;
-    Big_2xxDouble_Minus_1 : constant Big_Integer :=
-      Big (Double_Uns'(2 ** (Double_Size - 1)))
-    with Ghost;
-    Big_2xxDouble : constant Big_Integer :=
-      Big (Double_Uns'(2 ** Double_Size - 1)) + 1
-    with Ghost;
-    pragma Warnings
-      (On, "non-preelaborable call not allowed in preelaborated unit");
-    pragma Warnings (On, "non-static constant in preelaborated unit");
- 
     pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
                      "early returns for performance");
  
--- 29,48 ----
*************** is
*** 115,123 ****
     --  Length doubling multiplication
  
     function "/" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A / Double_Uns (B))
!    with
!      Pre => B /= 0;
     --  Length doubling division
  
     function "&" (Hi, Lo : Single_Uns) return Double_Uns is
--- 61,67 ----
     --  Length doubling multiplication
  
     function "/" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A / Double_Uns (B));
     --  Length doubling division
  
     function "&" (Hi, Lo : Single_Uns) return Double_Uns is
*************** is
*** 127,163 ****
     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.
  
     function "rem" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A rem Double_Uns (B))
!    with
!      Pre => B /= 0;
     --  Length doubling remainder
  
!    function Big_2xx (N : Natural) return Big_Positive is
!      (Big (Double_Uns'(2 ** N)))
!    with
!      Ghost,
!      Pre  => N < Double_Size,
!      Post => Big_2xx'Result > 0;
!    --  2**N as a big integer
! 
!    function Big3 (X1, X2, X3 : Single_Uns) return Big_Natural is
!      (Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (X1))
!                     + 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
!    with
!      Post => Le3'Result = (Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3));
     --  Determines if (3 * Single_Size)-bit value X1&X2&X3 <= Y1&Y2&Y3
  
     function Lo (A : Double_Uns) return Single_Uns is
--- 71,85 ----
     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.
  
     function "rem" (A : Double_Uns; B : Single_Uns) return Double_Uns is
!      (A rem Double_Uns (B));
     --  Length doubling remainder
  
!    function Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) return Boolean;
     --  Determines if (3 * Single_Size)-bit value X1&X2&X3 <= Y1&Y2&Y3
  
     function Lo (A : Double_Uns) return Single_Uns is
*************** is
*** 168,830 ****
       (Single_Uns (Shift_Right (A, Single_Size)));
     --  High order half of double value
  
!    procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns)
!    with
!      Pre  => Big3 (X1, X2, X3) >= Big3 (Y1, Y2, Y3),
!      Post => Big3 (X1, X2, X3) = Big3 (X1, X2, X3)'Old - Big3 (Y1, Y2, Y3);
     --  Computes X1&X2&X3 := X1&X2&X3 - Y1&Y1&Y3 mod 2 ** (3 * Single_Size)
  
!    function To_Neg_Int (A : Double_Uns) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
     --  constraint error is raised.
  
!    function To_Pos_Int (A : Double_Uns) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  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
  
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Inline_Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-    with
-      Ghost,
-      Pre  => Le3 (X1, X2, X3, Y1, Y2, Y3),
-      Post => Big3 (X1, X2, X3) <= Big3 (Y1, Y2, Y3);
- 
-    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
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X / Y) = abs X / abs Y;
- 
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Post => abs (X * Y) = abs X * abs Y;
- 
-    procedure Lemma_Abs_Range (X : Big_Integer)
-    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
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X rem Y) = (abs X) rem (abs Y);
- 
-    procedure Lemma_Add_Commutation (X : Double_Uns; Y : Single_Uns)
-    with
-      Ghost,
-      Pre  => X <= 2 ** Double_Size - 2 ** Single_Size,
-      Post => Big (X) + Big (Double_Uns (Y)) = Big (X + Double_Uns (Y));
- 
-    procedure Lemma_Add_One (X : Double_Uns)
-    with
-      Ghost,
-      Pre  => X /= Double_Uns'Last,
-      Post => Big (X + Double_Uns'(1)) = Big (X) + 1;
- 
-    procedure Lemma_Big_Of_Double_Uns (X : Double_Uns)
-    with
-      Ghost,
-      Post => Big (X) < Big_2xxDouble;
- 
-    procedure Lemma_Big_Of_Double_Uns_Of_Single_Uns (X : Single_Uns)
-    with
-      Ghost,
-      Post => Big (Double_Uns (X)) >= 0
-        and then Big (Double_Uns (X)) < Big_2xxSingle;
- 
-    procedure Lemma_Bounded_Powers_Of_2_Increasing (M, N : Natural)
-    with
-      Ghost,
-      Pre  => M < N and then N < Double_Size,
-      Post => Double_Uns'(2)**M < Double_Uns'(2)**N;
- 
-    procedure Lemma_Concat_Definition (X, Y : Single_Uns)
-    with
-      Ghost,
-      Post => Big (X & Y) = Big_2xxSingle * Big (Double_Uns (X))
-                                          + Big (Double_Uns (Y));
- 
-    procedure Lemma_Deep_Mult_Commutation
-      (Factor : Big_Integer;
-       X, Y   : Single_Uns)
-    with
-      Ghost,
-      Post =>
-        Factor * Big (Double_Uns (X)) * Big (Double_Uns (Y)) =
-          Factor * Big (Double_Uns (X) * Double_Uns (Y));
- 
-    procedure Lemma_Div_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Definition
-      (A : Double_Uns;
-       B : Single_Uns;
-       Q : Double_Uns;
-       R : Double_Uns)
-    with
-      Ghost,
-      Pre  => B /= 0 and then Q = A / B and then R = A rem B,
-      Post => Big (A) = Big (Double_Uns (B)) * Big (Q) + Big (R);
- 
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X >= Y * Z,
-      Post => X / Z >= Y;
- 
-    procedure Lemma_Div_Lt (X, Y, Z : Big_Natural)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X < Y * Z,
-      Post => X / Z < Y;
- 
-    procedure Lemma_Div_Eq (A, B, S, R : Big_Integer)
-    with
-      Ghost,
-      Pre  => A * S = B * S + R and then S /= 0,
-      Post => A = B + R / S;
- 
-    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y * Y > X - Y;
- 
-    procedure Lemma_Double_Big_2xxSingle
-    with
-      Ghost,
-      Post => Big_2xxSingle * Big_2xxSingle = Big_2xxDouble;
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Left (Shift_Left (X, Natural (S)), Natural (S1)) =
-              Shift_Left (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift (X : Single_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Single_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Left (Shift_Left (X, Natural (S)), Natural (S1)) =
-              Shift_Left (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Left (Shift_Left (X, S), S1) = Shift_Left (X, S + S1);
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Double_Uns)
-    with
-      Ghost,
-      Pre  => S <= Double_Uns (Double_Size)
-        and then S1 <= Double_Uns (Double_Size),
-      Post => Shift_Right (Shift_Right (X, Natural (S)), Natural (S1)) =
-              Shift_Right (X, Natural (S + S1));
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Natural)
-    with
-      Ghost,
-      Pre  => S <= Double_Size - S1,
-      Post => Shift_Right (Shift_Right (X, S), S1) = Shift_Right (X, S + S1);
- 
-    procedure Lemma_Ge_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A >= B,
-      Post => Big (A) >= Big (B);
- 
-    procedure Lemma_Ge_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A >= B and then B * C >= D and then C > 0,
-      Post => A * C >= D;
- 
-    procedure Lemma_Gt_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A > B,
-      Post => Big (A) > Big (B);
- 
-    procedure Lemma_Gt_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A >= B and then B * C > D and then C > 0,
-      Post => A * C > D;
- 
-    procedure Lemma_Hi_Lo (Xu : Double_Uns; Xhi, Xlo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and Xlo = Lo (Xu),
-      Post => Big (Xu) =
-        Big_2xxSingle * Big (Double_Uns (Xhi)) + Big (Double_Uns (Xlo));
- 
-    procedure Lemma_Hi_Lo_3 (Xu : Double_Uns; Xhi, Xlo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and then Xlo = Lo (Xu),
-      Post => Big (Xu) = Big3 (0, Xhi, Xlo);
- 
-    procedure Lemma_Lo_Is_Ident (X : Double_Uns)
-    with
-      Ghost,
-      Pre  => Big (X) < Big_2xxSingle,
-      Post => Double_Uns (Lo (X)) = X;
- 
-    procedure Lemma_Lt_Commutation (A, B : Double_Uns)
-    with
-      Ghost,
-      Pre  => A < B,
-      Post => Big (A) < Big (B);
- 
-    procedure Lemma_Lt_Mult (A, B, C, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => A < B and then B * C <= D and then C > 0,
-      Post => A * C < D;
- 
-    procedure Lemma_Mult_Commutation (X, Y : Single_Uns)
-    with
-      Ghost,
-      Post =>
-        Big (Double_Uns (X)) * Big (Double_Uns (Y)) =
-          Big (Double_Uns (X) * Double_Uns (Y));
- 
-    procedure Lemma_Mult_Commutation (X, Y : Double_Int)
-    with
-      Ghost,
-      Pre  => In_Double_Int_Range (Big (X) * Big (Y)),
-      Post => Big (X) * Big (Y) = Big (X * Y);
- 
-    procedure Lemma_Mult_Commutation (X, Y, Z : Double_Uns)
-    with
-      Ghost,
-      Pre  => Big (X) * Big (Y) < Big_2xxDouble and then Z = X * Y,
-      Post => Big (X) * Big (Y) = Big (Z);
- 
-    procedure Lemma_Mult_Decomposition
-      (Mult               : Big_Integer;
-       Xu, Yu             : Double_Uns;
-       Xhi, Xlo, Yhi, Ylo : Single_Uns)
-    with
-      Ghost,
-      Pre  => Mult = Big (Xu) * Big (Yu)
-        and then Xhi = Hi (Xu)
-        and then Xlo = Lo (Xu)
-        and then Yhi = Hi (Yu)
-        and then Ylo = Lo (Yu),
-      Post => Mult =
-        Big_2xxSingle * Big_2xxSingle * (Big (Double_Uns'(Xhi * Yhi)))
-                      + Big_2xxSingle * (Big (Double_Uns'(Xhi * Ylo)))
-                      + Big_2xxSingle * (Big (Double_Uns'(Xlo * Yhi)))
-                                      + (Big (Double_Uns'(Xlo * Ylo)));
- 
-    procedure Lemma_Mult_Distribution (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Post => X * (Y + Z) = X * Y + X * Z;
- 
-    procedure Lemma_Mult_Div (A, B : Big_Integer)
-    with
-      Ghost,
-      Pre  => B /= 0,
-      Post => A * B / B = A;
- 
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X >= 0 and then Y >= 0)
-        or else (X <= 0 and then Y <= 0),
-      Post => X * Y >= 0;
- 
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X <= Big_0 and then Y >= Big_0)
-        or else (X >= Big_0 and then Y <= Big_0),
-      Post => X * Y <= Big_0;
- 
-    procedure Lemma_Mult_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X > Big_0 and then Y > Big_0)
-        or else (X < Big_0 and then Y < Big_0),
-      Post => X * Y > Big_0;
- 
-    procedure Lemma_Neg_Div (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X / Y = (-X) / (-Y);
- 
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (-Y);
- 
-    procedure Lemma_Not_In_Range_Big2xx64
-    with
-      Post => not In_Double_Int_Range (Big_2xxDouble)
-        and then not In_Double_Int_Range (-Big_2xxDouble);
- 
-    procedure Lemma_Powers (A : Big_Natural; B, C : Natural)
-    with
-      Ghost,
-      Pre  => B <= Natural'Last - C,
-      Post => A**B * A**C = A**(B + C);
- 
-    procedure Lemma_Powers_Of_2 (M, N : Natural)
-    with
-      Ghost,
-      Pre  => M < Double_Size
-        and then N < Double_Size
-        and then M + N <= Double_Size,
-      Post =>
-        Big_2xx (M) * Big_2xx (N) =
-          (if M + N = Double_Size then Big_2xxDouble else Big_2xx (M + N));
- 
-    procedure Lemma_Powers_Of_2_Commutation (M : Natural)
-    with
-      Ghost,
-      Subprogram_Variant => (Decreases => M),
-      Pre  => M <= Double_Size,
-      Post => Big (Double_Uns'(2))**M =
-               (if M < Double_Size then Big_2xx (M) else Big_2xxDouble);
- 
-    procedure Lemma_Powers_Of_2_Increasing (M, N : Natural)
-    with
-      Ghost,
-      Subprogram_Variant => (Increases => M),
-      Pre  => M < N,
-      Post => Big (Double_Uns'(2))**M < Big (Double_Uns'(2))**N;
- 
-    procedure Lemma_Rem_Abs (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (abs Y);
-    pragma Unreferenced (Lemma_Rem_Abs);
- 
-    procedure Lemma_Rem_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) rem Big (Y) = Big (X rem Y);
- 
-    procedure Lemma_Rem_Is_Ident (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => abs X < abs Y,
-      Post => X rem Y = X;
-    pragma Unreferenced (Lemma_Rem_Is_Ident);
- 
-    procedure Lemma_Rem_Sign (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Same_Sign (X rem Y, X);
-    pragma Unreferenced (Lemma_Rem_Sign);
- 
-    procedure Lemma_Rev_Div_Definition (A, B, Q, R : Big_Natural)
-    with
-      Ghost,
-      Pre  => A = B * Q + R and then R < B,
-      Post => Q = A / B and then R = A rem B;
- 
-    procedure Lemma_Shift_Left (X : Double_Uns; Shift : Natural)
-    with
-      Ghost,
-      Pre  => Shift < Double_Size
-        and then Big (X) * Big_2xx (Shift) < Big_2xxDouble,
-      Post => Big (Shift_Left (X, Shift)) = Big (X) * Big_2xx (Shift);
- 
-    procedure Lemma_Shift_Right (X : Double_Uns; Shift : Natural)
-    with
-      Ghost,
-      Pre  => Shift < Double_Size,
-      Post => Big (Shift_Right (X, Shift)) = Big (X) / Big_2xx (Shift);
- 
-    procedure Lemma_Shift_Without_Drop
-      (X, Y  : Double_Uns;
-       Mask  : Single_Uns;
-       Shift : Natural)
-    with
-      Ghost,
-      Pre  => (Hi (X) and Mask) = 0  --  X has the first Shift bits off
-        and then Shift <= Single_Size
-        and then Mask = Shift_Left (Single_Uns'Last, Single_Size - Shift)
-        and then Y = Shift_Left (X, Shift),
-      Post => Big (Y) = Big_2xx (Shift) * Big (X);
- 
-    procedure Lemma_Simplify (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X * Y / Y = X;
- 
-    procedure Lemma_Substitution (A, B, C, C1, D : Big_Integer)
-    with
-      Ghost,
-      Pre  => C = C1 and then A = B * C + D,
-      Post => A = B * C1 + D;
- 
-    procedure Lemma_Subtract_Commutation (X, Y : Double_Uns)
-    with
-      Ghost,
-      Pre  => X >= Y,
-      Post => Big (X) - Big (Y) = Big (X - Y);
- 
-    procedure Lemma_Subtract_Double_Uns (X, Y : Double_Int)
-    with
-      Ghost,
-      Pre  => X >= 0 and then X <= Y,
-      Post => Double_Uns (Y - X) = Double_Uns (Y) - Double_Uns (X);
- 
-    procedure Lemma_Word_Commutation (X : Single_Uns)
-    with
-      Ghost,
-      Post => Big_2xxSingle * Big (Double_Uns (X))
-        = Big (2**Single_Size * Double_Uns (X));
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Inline_Le3 (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is null;
-    procedure Lemma_Abs_Commutation (X : Double_Int) is null;
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Abs_Range (X : Big_Integer) is null;
-    procedure Lemma_Add_Commutation (X : Double_Uns; Y : Single_Uns) is null;
-    procedure Lemma_Add_One (X : Double_Uns) is null;
-    procedure Lemma_Big_Of_Double_Uns (X : Double_Uns) is null;
-    procedure Lemma_Big_Of_Double_Uns_Of_Single_Uns (X : Single_Uns) is null;
-    procedure Lemma_Bounded_Powers_Of_2_Increasing (M, N : Natural) is null;
-    procedure Lemma_Deep_Mult_Commutation
-      (Factor : Big_Integer;
-       X, Y   : Single_Uns)
-    is null;
-    procedure Lemma_Div_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Div_Definition
-      (A : Double_Uns;
-       B : Single_Uns;
-       Q : Double_Uns;
-       R : Double_Uns)
-    is null;
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Div_Lt (X, Y, Z : Big_Natural) is null;
-    procedure Lemma_Div_Mult (X : Big_Natural; Y : Big_Positive) is null;
-    procedure Lemma_Double_Big_2xxSingle is null;
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Double_Uns) is null;
-    procedure Lemma_Double_Shift (X : Single_Uns; S, S1 : Natural) is null;
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Double_Uns)
-    is null;
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Double_Uns)
-    is null;
-    procedure Lemma_Ge_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Ge_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Gt_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Gt_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Lo_Is_Ident (X : Double_Uns) is null;
-    procedure Lemma_Lt_Commutation (A, B : Double_Uns) is null;
-    procedure Lemma_Lt_Mult (A, B, C, D : Big_Integer) is null;
-    procedure Lemma_Mult_Commutation (X, Y : Single_Uns) is null;
-    procedure Lemma_Mult_Commutation (X, Y : Double_Int) is null;
-    procedure Lemma_Mult_Commutation (X, Y, Z : Double_Uns) is null;
-    procedure Lemma_Mult_Distribution (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer) is null;
-    procedure Lemma_Not_In_Range_Big2xx64 is null;
-    procedure Lemma_Powers (A : Big_Natural; B, C : Natural) is null;
-    procedure Lemma_Rem_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Rem_Is_Ident (X, Y : Big_Integer) is null;
-    procedure Lemma_Rem_Sign (X, Y : Big_Integer) is null;
-    procedure Lemma_Rev_Div_Definition (A, B, Q, R : Big_Natural) is null;
-    procedure Lemma_Simplify (X, Y : Big_Integer) is null;
-    procedure Lemma_Substitution (A, B, C, C1, D : Big_Integer) is null;
-    procedure Lemma_Subtract_Commutation (X, Y : Double_Uns) is null;
-    procedure Lemma_Subtract_Double_Uns (X, Y : Double_Int) is null;
-    procedure Lemma_Word_Commutation (X : Single_Uns) is null;
- 
     --------------------------
     -- Add_With_Ovflo_Check --
     --------------------------
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) + To_Uns (Y));
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_X
-       with
-         Ghost,
-         Pre  => X < 0 and then (Y > 0 or else R < 0),
-         Post => R = X + Y;
- 
-       procedure Prove_Non_Negative_X
-       with
-         Ghost,
-         Pre  => X >= 0 and then (Y < 0 or else R >= 0),
-         Post => R = X + Y;
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  =>
-           (if X >= 0 then Y >= 0 and then R < 0
-                      else Y <= 0 and then R >= 0),
-         Post => not In_Double_Int_Range (Big (X) + Big (Y));
- 
-       ----------------------
-       -- Prove_Negative_X --
-       ----------------------
- 
-       procedure Prove_Negative_X is
-       begin
-          if X = Double_Int'First then
-             if Y > 0 then
-                null;
-             else
-                pragma Assert
-                  (To_Uns (X) + To_Uns (Y) =
-                     2 ** (Double_Size - 1) - Double_Uns (-Y));
-                pragma Assert  --  as R < 0
-                  (To_Uns (X) + To_Uns (Y) >= 2 ** (Double_Size - 1));
-                pragma Assert (Y = 0);
-             end if;
- 
-          elsif Y = Double_Int'First then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) =
-                  2 ** (Double_Size - 1) - Double_Uns (-X));
-             pragma Assert (False);
- 
-          elsif Y <= 0 then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = -Double_Uns (-X) - Double_Uns (-Y));
- 
-          else  --  Y > 0, 0 > X > Double_Int'First
-             declare
-                Ru : constant Double_Uns := To_Uns (X) + To_Uns (Y);
-             begin
-                pragma Assert (Ru = -Double_Uns (-X) + Double_Uns (Y));
-                if Ru < 2 ** (Double_Size - 1) then  --  R >= 0
-                   Lemma_Subtract_Double_Uns (-X, Y);
-                   pragma Assert (Ru = Double_Uns (X + Y));
- 
-                elsif Ru = 2 ** (Double_Size - 1) then
-                   pragma Assert (Double_Uns (Y) < 2 ** (Double_Size - 1));
-                   pragma Assert (Double_Uns (-X) < 2 ** (Double_Size - 1));
-                   pragma Assert (False);
- 
-                else
-                   pragma Assert
-                     (R = -Double_Int (-(-Double_Uns (-X) + Double_Uns (Y))));
-                   pragma Assert
-                     (R = -Double_Int (-Double_Uns (Y) + Double_Uns (-X)));
-                end if;
-             end;
-          end if;
-       end Prove_Negative_X;
- 
-       --------------------------
-       -- Prove_Non_Negative_X --
-       --------------------------
- 
-       procedure Prove_Non_Negative_X is
-       begin
-          if Y >= 0 or else Y = Double_Int'First then
-             null;
-          else
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = Double_Uns (X) - Double_Uns (-Y));
-          end if;
-       end Prove_Non_Negative_X;
- 
-       -------------------------
-       -- Prove_Overflow_Case --
-       -------------------------
- 
-       procedure Prove_Overflow_Case is
-       begin
-          if X < 0 and then X /= Double_Int'First and then Y /= Double_Int'First
-          then
-             pragma Assert
-               (To_Uns (X) + To_Uns (Y) = -Double_Uns (-X) - Double_Uns (-Y));
-          end if;
-       end Prove_Overflow_Case;
- 
-    --  Start of processing for Add_With_Ovflo_Check
- 
     begin
        if X >= 0 then
           if Y < 0 or else R >= 0 then
-             Prove_Non_Negative_X;
              return R;
           end if;
  
        else -- X < 0
           if Y > 0 or else R < 0 then
-             Prove_Negative_X;
              return R;
           end if;
        end if;
  
-       Prove_Overflow_Case;
        Raise_Error;
     end Add_With_Ovflo_Check;
  
     -------------------
     -- Double_Divide --
     -------------------
  
-    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
-                     "limit exceeded due to proof code");
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
--- 90,151 ----
       (Single_Uns (Shift_Right (A, Single_Size)));
     --  High order half of double value
  
!    procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns);
     --  Computes X1&X2&X3 := X1&X2&X3 - Y1&Y1&Y3 mod 2 ** (3 * Single_Size)
  
!    function To_Neg_Int (A : Double_Uns) return Double_Int;
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1), then the corresponding nonpositive signed
     --  integer (obtained by negating the given value) is returned, otherwise
     --  constraint error is raised.
  
!    function To_Pos_Int (A : Double_Uns) return Double_Int;
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2 ** (Double_Size - 1) - 1, then the corresponding non-negative
     --  signed integer is returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with No_Return;
     --  Raise constraint error with appropriate message
  
     --------------------------
     -- Add_With_Ovflo_Check --
     --------------------------
  
     function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) + To_Uns (Y));
     begin
        if X >= 0 then
           if Y < 0 or else R >= 0 then
              return R;
           end if;
  
        else -- X < 0
           if Y > 0 or else R < 0 then
              return R;
           end if;
        end if;
  
        Raise_Error;
     end Add_With_Ovflo_Check;
  
+    --------------------------
+    -- Add_With_Ovflo_Check --
+    --------------------------
+ 
+    function Add_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns is
+       R : constant Double_Uns := X + Y;
+    begin
+       if R < X then
+          Raise_Error;
+       end if;
+ 
+       return R;
+    end Add_With_Ovflo_Check;
+ 
     -------------------
     -- Double_Divide --
     -------------------
  
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
*************** is
*** 844,1026 ****
        Du, Qu, Ru : Double_Uns;
        Den_Pos    : constant Boolean := (Y < 0) = (Z < 0);
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Integer := abs (Big (Y) * Big (Z)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  => X = Double_Int'First and then Big (Y) * Big (Z) = -1,
-         Post => not In_Double_Int_Range (Big (X) / (Big (Y) * Big (Z)))
-           and then not In_Double_Int_Range
-             (Round_Quotient (Big (X), Big (Y) * Big (Z),
-                              Big (X) / (Big (Y) * Big (Z)),
-                              Big (X) rem (Big (Y) * Big (Z))));
-       --  Proves the special case where -2**(Double_Size - 1) is divided by -1,
-       --  generating an overflow.
- 
-       procedure Prove_Quotient_Zero
-       with
-         Ghost,
-         Pre  => Mult >= Big_2xxDouble
-           and then
-             not (Mult = Big_2xxDouble
-                    and then X = Double_Int'First
-                    and then Round)
-           and then Q = 0
-           and then R = X,
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then
-             (if Round then
-                Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                          Big (X) / (Big (Y) * Big (Z)),
-                                          Big (R))
-              else Big (Q) = Big (X) / (Big (Y) * Big (Z)));
-       --  Proves the general case where divisor doesn't fit in Double_Uns and
-       --  quotient is 0.
- 
-       procedure Prove_Round_To_One
-       with
-         Ghost,
-         Pre  => Mult = Big_2xxDouble
-           and then X = Double_Int'First
-           and then Q = (if Den_Pos then -1 else 1)
-           and then R = X
-           and then Round,
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                              Big (X) / (Big (Y) * Big (Z)),
-                                              Big (R));
-       --  Proves the special case where the divisor doesn't fit in Double_Uns
-       --  but quotient is still 1 or -1 due to rounding
-       --  (abs (Y*Z) = 2**Double_Size and X = -2**(Double_Size - 1) and Round).
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Du) = Mult
-           and then Big (Qu) =
-             (if Ru > (Du - Double_Uns'(1)) / Double_Uns'(2)
-              then abs Quot + 1
-              else abs Quot),
-         Post => abs Big_Q = Big (Qu);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Sign_Quotient
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-              else Quot),
-         Post =>
-           (if X >= 0 then
-              (if Den_Pos then Big_Q >= 0 else Big_Q <= 0)
-            else
-              (if Den_Pos then Big_Q <= 0 else Big_Q >= 0));
-       --  Proves the correct sign of the signed quotient Big_Q
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Mult /= 0
-           and then Quot = Big (X) / (Big (Y) * Big (Z))
-           and then Big_R = Big (X) rem (Big (Y) * Big (Z))
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then R = (if X >= 0 then To_Int (Ru) else To_Int (-Ru))
-           and then
-             Q = (if (X >= 0) = Den_Pos then To_Int (Qu) else To_Int (-Qu))
-           and then not (X = Double_Int'First and then Big (Y) * Big (Z) = -1),
-         Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
-           and then
-             (if Round then
-                Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
-                                          Big (X) / (Big (Y) * Big (Z)),
-                                          Big (R))
-              else Big (Q) = Big (X) / (Big (Y) * Big (Z)));
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Overflow_Case is null;
-       procedure Prove_Quotient_Zero is null;
-       procedure Prove_Round_To_One is null;
-       procedure Prove_Sign_Quotient is null;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       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;
- 
-       -----------------
-       -- Prove_Signs --
-       -----------------
- 
-       procedure Prove_Signs is
-       begin
-          if (X >= 0) = Den_Pos then
-             pragma Assert (Quot >= 0);
-             pragma Assert (Big_Q >= 0);
-             pragma Assert (Q >= 0);
-             pragma Assert (Big (Q) = Big_Q);
-          else
-             pragma Assert ((X >= 0) /= (Big (Y) * Big (Z) >= 0));
-             pragma Assert (Quot <= 0);
-             pragma Assert (Big_Q <= 0);
-             pragma Assert (if X >= 0 then R >= 0);
-             pragma Assert (if X < 0 then R <= 0);
-             pragma Assert (Big (R) = Big_R);
-          end if;
-       end Prove_Signs;
- 
-    --  Start of processing for Double_Divide
- 
     begin
        if Yu = 0 or else Zu = 0 then
           Raise_Error;
        end if;
  
-       pragma Assert (Mult /= 0);
-       pragma Assert (Den_Pos = (Big (Y) * Big (Z) > 0));
-       Quot := Big (X) / (Big (Y) * Big (Z));
-       Big_R := Big (X) rem (Big (Y) * Big (Z));
-       if Round then
-          Big_Q := Round_Quotient (Big (X), Big (Y) * Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
-       Lemma_Abs_Mult_Commutation (Big (Y), Big (Z));
-       Lemma_Mult_Decomposition (Mult, Yu, Zu, Yhi, Ylo, Zhi, Zlo);
- 
        --  Compute Y * Z. Note that if the result overflows Double_Uns, then
        --  the rounded result is zero, except for the very special case where
        --  X = -2 ** (Double_Size - 1) and abs (Y * Z) = 2 ** Double_Size, when
--- 165,175 ----
*************** is
*** 1040,1105 ****
                and then Round
              then
                 Q := (if Den_Pos then -1 else 1);
- 
-                Prove_Round_To_One;
- 
              else
                 Q := 0;
- 
-                pragma Assert (Double_Uns'(Yhi * Zhi) >= Double_Uns (Yhi));
-                pragma Assert (Double_Uns'(Yhi * Zhi) >= Double_Uns (Zhi));
-                pragma Assert (Big (Double_Uns'(Yhi * Zhi)) >= 1);
-                if Yhi > 1 or else Zhi > 1 then
-                   pragma Assert (Big (Double_Uns'(Yhi * Zhi)) > 1);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                elsif Zlo > 0 then
-                   pragma Assert (Big (Double_Uns'(Yhi * Zlo)) > 0);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                elsif Ylo > 0 then
-                   pragma Assert (Double_Uns'(Ylo * Zhi) > 0);
-                   pragma Assert (Big (Double_Uns'(Ylo * Zhi)) > 0);
-                   pragma Assert (if X = Double_Int'First and then Round then
-                                     Mult > Big_2xxDouble);
-                else
-                   pragma Assert (not (X = Double_Int'First and then Round));
-                end if;
-                Prove_Quotient_Zero;
              end if;
  
              return;
           else
              T2 := Yhi * Zlo;
-             pragma Assert (Big (T2) = Big (Double_Uns'(Yhi * Zlo)));
-             pragma Assert (Big_0 = Big (Double_Uns'(Ylo * Zhi)));
           end if;
- 
        else
           T2 := Ylo * Zhi;
-          pragma Assert (Big (T2) = Big (Double_Uns'(Ylo * Zhi)));
-          pragma Assert (Big_0 = Big (Double_Uns'(Yhi * Zlo)));
        end if;
  
        T1 := Ylo * Zlo;
- 
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (Double_Uns'(Yhi * Zlo)),
-                                Big (Double_Uns'(Ylo * Zhi)));
-       Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (T2),
-                                Big (Double_Uns (Hi (T1))));
-       Lemma_Add_Commutation (T2, Hi (T1));
- 
        T2 := T2 + Hi (T1);
  
-       Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-       Lemma_Mult_Distribution (Big_2xxSingle,
-                                Big (Double_Uns (Hi (T2))),
-                                Big (Double_Uns (Lo (T2))));
-       Lemma_Double_Big_2xxSingle;
- 
        if Hi (T2) /= 0 then
           R := X;
  
--- 189,209 ----
*************** is
*** 1112,1152 ****
             and then Round
           then
              Q := (if Den_Pos then -1 else 1);
- 
-             Prove_Round_To_One;
- 
           else
              Q := 0;
- 
-             pragma Assert (Big (Double_Uns (Hi (T2))) >= 1);
-             pragma Assert (Big (Double_Uns (Lo (T2))) >= 0);
-             pragma Assert (Big (Double_Uns (Lo (T1))) >= 0);
-             pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                          + Big (Double_Uns (Lo (T1))) >= 0);
-             pragma Assert (Mult >= Big_2xxDouble * Big (Double_Uns (Hi (T2))));
-             pragma Assert (Mult >= Big_2xxDouble);
-             if Hi (T2) > 1 then
-                pragma Assert (Big (Double_Uns (Hi (T2))) > 1);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             elsif Lo (T2) > 0 then
-                pragma Assert (Big (Double_Uns (Lo (T2))) > 0);
-                pragma Assert (Big_2xxSingle > 0);
-                pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2))) > 0);
-                pragma Assert (Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                             + Big (Double_Uns (Lo (T1))) > 0);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             elsif Lo (T1) > 0 then
-                pragma Assert (Double_Uns (Lo (T1)) > 0);
-                Lemma_Gt_Commutation (Double_Uns (Lo (T1)), 0);
-                pragma Assert (Big (Double_Uns (Lo (T1))) > 0);
-                pragma Assert (if X = Double_Int'First and then Round then
-                                  Mult > Big_2xxDouble);
-             else
-                pragma Assert (not (X = Double_Int'First and then Round));
-             end if;
-             Prove_Quotient_Zero;
           end if;
  
           return;
--- 216,223 ----
*************** is
*** 1154,1175 ****
  
        Du := Lo (T2) & Lo (T1);
  
-       Lemma_Hi_Lo (Du, Lo (T2), Lo (T1));
-       pragma Assert (Mult = Big (Du));
-       pragma Assert (Du /= 0);
-       --  Multiplication of 2-limb arguments Yu and Zu leads to 4-limb result
-       --  (where each limb is a single value). Cases where 4 limbs are needed
-       --  require Yhi /= 0 and Zhi /= 0 and lead to early exit. Remaining cases
-       --  where 3 limbs are needed correspond to Hi(T2) /= 0 and lead to early
-       --  exit. Thus, at this point, the result fits in 2 limbs which are
-       --  exactly Lo (T2) and Lo (T1), which corresponds to the value of Du.
-       --  As the case where one of Yu or Zu is null also led to early exit,
-       --  we have Du /= 0 here.
- 
        --  Check overflow case of largest negative number divided by -1
  
        if X = Double_Int'First and then Du = 1 and then not Den_Pos then
-          Prove_Overflow_Case;
           Raise_Error;
        end if;
  
--- 225,233 ----
*************** is
*** 1188,1216 ****
        Qu := Xu / Du;
        Ru := Xu rem Du;
  
-       Lemma_Div_Commutation (Xu, Du);
-       Lemma_Abs_Div_Commutation (Big (X), Big (Y) * Big (Z));
-       Lemma_Abs_Commutation (X);
-       pragma Assert (abs Quot = Big (Qu));
-       Lemma_Rem_Commutation (Xu, Du);
-       Lemma_Abs_Rem_Commutation (Big (X), Big (Y) * Big (Z));
-       pragma Assert (abs Big_R = Big (Ru));
- 
        --  Deal with rounding case
  
        if Round then
           if Ru > (Du - Double_Uns'(1)) / Double_Uns'(2) then
-             Lemma_Add_Commutation (Qu, 1);
- 
              Qu := Qu + Double_Uns'(1);
           end if;
- 
-          Prove_Rounding_Case;
        end if;
  
-       pragma Assert (abs Big_Q = Big (Qu));
-       Prove_Sign_Quotient;
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X) sign positive
--- 246,259 ----
*************** is
*** 1229,1238 ****
           R := To_Int (-Ru);
           Q := (if Den_Pos then To_Int (-Qu) else To_Int (Qu));
        end if;
- 
-       Prove_Signs;
     end Double_Divide;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ---------
     -- Le3 --
--- 272,278 ----
*************** is
*** 1254,1671 ****
     end Le3;
  
     -------------------------------
-    -- Lemma_Abs_Div_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          if X < 0 then
-             pragma Assert (abs (X / Y) = abs (X / (-Y)));
-          else
-             Lemma_Neg_Div (X, Y);
-             pragma Assert (abs (X / Y) = abs ((-X) / (-Y)));
-          end if;
-       end if;
-    end Lemma_Abs_Div_Commutation;
- 
-    -------------------------------
-    -- Lemma_Abs_Rem_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          Lemma_Neg_Rem (X, Y);
-          if X < 0 then
-             pragma Assert (X rem Y = -((-X) rem (-Y)));
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          else
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          end if;
-       end if;
-    end Lemma_Abs_Rem_Commutation;
- 
-    -----------------------------
-    -- Lemma_Concat_Definition --
-    -----------------------------
- 
-    procedure Lemma_Concat_Definition (X, Y : Single_Uns) is
-       Hi : constant Double_Uns := Shift_Left (Double_Uns (X), Single_Size);
-       Lo : constant Double_Uns := Double_Uns (Y);
-    begin
-       pragma Assert (Hi = Double_Uns'(2 ** Single_Size) * Double_Uns (X));
-       pragma Assert ((Hi or Lo) = Hi + Lo);
-    end Lemma_Concat_Definition;
- 
-    ------------------
-    -- Lemma_Div_Eq --
-    ------------------
- 
-    procedure Lemma_Div_Eq (A, B, S, R : Big_Integer) is
-    begin
-       pragma Assert ((A - B) * S = R);
-       pragma Assert ((A - B) * S / S = R / S);
-       Lemma_Mult_Div (A - B, S);
-       pragma Assert (A - B = R / S);
-    end Lemma_Div_Eq;
- 
-    ------------------------
-    -- Lemma_Double_Shift --
-    ------------------------
- 
-    procedure Lemma_Double_Shift (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Left (Shift_Left (X, S), S1)
-         = Shift_Left (Shift_Left (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Left (X, S + S1)
-         = Shift_Left (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift;
- 
-    -----------------------------
-    -- Lemma_Double_Shift_Left --
-    -----------------------------
- 
-    procedure Lemma_Double_Shift_Left (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift_Left (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Left (Shift_Left (X, S), S1)
-         = Shift_Left (Shift_Left (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Left (X, S + S1)
-         = Shift_Left (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift_Left;
- 
-    ------------------------------
-    -- Lemma_Double_Shift_Right --
-    ------------------------------
- 
-    procedure Lemma_Double_Shift_Right (X : Double_Uns; S, S1 : Natural) is
-    begin
-       Lemma_Double_Shift_Right (X, Double_Uns (S), Double_Uns (S1));
-       pragma Assert (Shift_Right (Shift_Right (X, S), S1)
-         = Shift_Right (Shift_Right (X, S), Natural (Double_Uns (S1))));
-       pragma Assert (Shift_Right (X, S + S1)
-         = Shift_Right (X, Natural (Double_Uns (S + S1))));
-    end Lemma_Double_Shift_Right;
- 
-    -----------------
-    -- Lemma_Hi_Lo --
-    -----------------
- 
-    procedure Lemma_Hi_Lo (Xu : Double_Uns; Xhi, Xlo : Single_Uns) is
-    begin
-       pragma Assert (Double_Uns (Xhi) = Xu / Double_Uns'(2 ** Single_Size));
-       pragma Assert (Double_Uns (Xlo) = Xu mod 2 ** Single_Size);
-    end Lemma_Hi_Lo;
- 
-    -------------------
-    -- Lemma_Hi_Lo_3 --
-    -------------------
- 
-    procedure Lemma_Hi_Lo_3 (Xu : Double_Uns; Xhi, Xlo : Single_Uns) is
-    begin
-       Lemma_Hi_Lo (Xu, Xhi, Xlo);
-    end Lemma_Hi_Lo_3;
- 
-    ------------------------------
-    -- Lemma_Mult_Decomposition --
-    ------------------------------
- 
-    procedure Lemma_Mult_Decomposition
-      (Mult               : Big_Integer;
-       Xu, Yu             : Double_Uns;
-       Xhi, Xlo, Yhi, Ylo : Single_Uns)
-    is
-    begin
-       Lemma_Hi_Lo (Xu, Xhi, Xlo);
-       Lemma_Hi_Lo (Yu, Yhi, Ylo);
- 
-       pragma Assert
-         (Mult =
-            (Big_2xxSingle * Big (Double_Uns (Xhi)) + Big (Double_Uns (Xlo))) *
-            (Big_2xxSingle * Big (Double_Uns (Yhi)) + Big (Double_Uns (Ylo))));
-       pragma Assert (Mult =
-         Big_2xxSingle
-           * Big_2xxSingle * Big (Double_Uns (Xhi)) * Big (Double_Uns (Yhi))
-           + Big_2xxSingle * Big (Double_Uns (Xhi)) * Big (Double_Uns (Ylo))
-           + Big_2xxSingle * Big (Double_Uns (Xlo)) * Big (Double_Uns (Yhi))
-                           + Big (Double_Uns (Xlo)) * Big (Double_Uns (Ylo)));
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle * Big_2xxSingle, Xhi, Yhi);
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle, Xhi, Ylo);
-       Lemma_Deep_Mult_Commutation (Big_2xxSingle, Xlo, Yhi);
-       Lemma_Mult_Commutation (Xlo, Ylo);
-       pragma Assert (Mult =
-         Big_2xxSingle * Big_2xxSingle * Big (Double_Uns'(Xhi * Yhi))
-                       + Big_2xxSingle * Big (Double_Uns'(Xhi * Ylo))
-                       + Big_2xxSingle * Big (Double_Uns'(Xlo * Yhi))
-                                       + Big (Double_Uns'(Xlo * Ylo)));
-    end Lemma_Mult_Decomposition;
- 
-    --------------------
-    -- Lemma_Mult_Div --
-    --------------------
- 
-    procedure Lemma_Mult_Div (A, B : Big_Integer) is
-    begin
-       if B > 0 then
-          pragma Assert (A * B / B = A);
-       else
-          pragma Assert (A * (-B) / (-B) = A);
-       end if;
-    end Lemma_Mult_Div;
- 
-    -------------------
-    -- Lemma_Neg_Div --
-    -------------------
- 
-    procedure Lemma_Neg_Div (X, Y : Big_Integer) is
-    begin
-       pragma Assert ((-X) / (-Y) = -(X / (-Y)));
-       pragma Assert (X / (-Y) = -(X / Y));
-    end Lemma_Neg_Div;
- 
-    -----------------------
-    -- Lemma_Powers_Of_2 --
-    -----------------------
- 
-    procedure Lemma_Powers_Of_2 (M, N : Natural) is
-    begin
-       if M + N < Double_Size then
-          pragma Assert (Double_Uns'(2**M) * Double_Uns'(2**N)
-                         = Double_Uns'(2**(M + N)));
-       end if;
- 
-       Lemma_Powers_Of_2_Commutation (M);
-       Lemma_Powers_Of_2_Commutation (N);
-       Lemma_Powers_Of_2_Commutation (M + N);
-       Lemma_Powers (Big (Double_Uns'(2)), M, N);
- 
-       if M + N < Double_Size then
-          pragma Assert (Big (Double_Uns'(2))**M * Big (Double_Uns'(2))**N
-                         = Big (Double_Uns'(2))**(M + N));
-          Lemma_Powers_Of_2_Increasing (M + N, Double_Size);
-          Lemma_Mult_Commutation (2 ** M, 2 ** N, 2 ** (M + N));
-       else
-          pragma Assert (Big (Double_Uns'(2))**M * Big (Double_Uns'(2))**N
-                         = Big (Double_Uns'(2))**(M + N));
-       end if;
-    end Lemma_Powers_Of_2;
- 
-    -----------------------------------
-    -- Lemma_Powers_Of_2_Commutation --
-    -----------------------------------
- 
-    procedure Lemma_Powers_Of_2_Commutation (M : Natural) is
-    begin
-       if M > 0 then
-          Lemma_Powers_Of_2_Commutation (M - 1);
-          pragma Assert (Big (Double_Uns'(2))**(M - 1) = Big_2xx (M - 1));
-          pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M - 1) * 2);
-          if M < Double_Size then
-             Lemma_Powers_Of_2_Increasing (M - 1, Double_Size - 1);
-             Lemma_Bounded_Powers_Of_2_Increasing (M - 1, Double_Size - 1);
-             pragma Assert (Double_Uns'(2 ** (M - 1)) * 2 = Double_Uns'(2**M));
-             Lemma_Mult_Commutation
-               (Double_Uns'(2 ** (M - 1)), 2, Double_Uns'(2**M));
-             pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
-          end if;
-       else
-          pragma Assert (Big (Double_Uns'(2))**M = Big_2xx (M));
-       end if;
-    end Lemma_Powers_Of_2_Commutation;
- 
-    ----------------------------------
-    -- Lemma_Powers_Of_2_Increasing --
-    ----------------------------------
- 
-    procedure Lemma_Powers_Of_2_Increasing (M, N : Natural) is
-    begin
-       if M + 1 < N then
-          Lemma_Powers_Of_2_Increasing (M + 1, N);
-       end if;
-    end Lemma_Powers_Of_2_Increasing;
- 
-    -------------------
-    -- Lemma_Rem_Abs --
-    -------------------
- 
-    procedure Lemma_Rem_Abs (X, Y : Big_Integer) is
-    begin
-       Lemma_Neg_Rem (X, Y);
-    end Lemma_Rem_Abs;
- 
-    ----------------------
-    -- Lemma_Shift_Left --
-    ----------------------
- 
-    procedure Lemma_Shift_Left (X : Double_Uns; Shift : Natural) is
- 
-       procedure Lemma_Mult_Pow2 (X : Double_Uns; I : Natural)
-       with
-         Ghost,
-         Pre  => I < Double_Size - 1,
-         Post => X * Double_Uns'(2) ** I * Double_Uns'(2)
-           = X * Double_Uns'(2) ** (I + 1);
- 
-       procedure Lemma_Mult_Pow2 (X : Double_Uns; I : Natural) is
-          Mul1 : constant Double_Uns := Double_Uns'(2) ** I;
-          Mul2 : constant Double_Uns := Double_Uns'(2);
-          Left : constant Double_Uns := X * Mul1 * Mul2;
-       begin
-          pragma Assert (Left = X * (Mul1 * Mul2));
-          pragma Assert (Mul1 * Mul2 = Double_Uns'(2) ** (I + 1));
-       end Lemma_Mult_Pow2;
- 
-       XX : Double_Uns := X;
- 
-    begin
-       for J in 1 .. Shift loop
-          declare
-             Cur_XX : constant Double_Uns := XX;
-          begin
-             XX := Shift_Left (XX, 1);
-             pragma Assert (XX = Cur_XX * Double_Uns'(2));
-             Lemma_Mult_Pow2 (X, J - 1);
-          end;
-          Lemma_Double_Shift_Left (X, J - 1, 1);
-          pragma Loop_Invariant (XX = Shift_Left (X, J));
-          pragma Loop_Invariant (XX = X * Double_Uns'(2) ** J);
-       end loop;
-    end Lemma_Shift_Left;
- 
-    -----------------------
-    -- Lemma_Shift_Right --
-    -----------------------
- 
-    procedure Lemma_Shift_Right (X : Double_Uns; Shift : Natural) is
- 
-       procedure Lemma_Div_Pow2 (X : Double_Uns; I : Natural)
-       with
-         Ghost,
-         Pre  => I < Double_Size - 1,
-         Post => X / Double_Uns'(2) ** I / Double_Uns'(2)
-           = X / Double_Uns'(2) ** (I + 1);
- 
-       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns)
-       with
-         Ghost,
-         Pre  => Div /= 0
-           and then X = Q * Div + R
-           and then Q <= Double_Uns'Last / Div
-           and then R <= Double_Uns'Last - Q * Div
-           and then R < Div,
-         Post => Q = X / Div;
-       pragma Annotate (GNATprove, False_Positive, "postcondition might fail",
-                        "Q is the quotient of X by Div");
- 
-       procedure Lemma_Div_Pow2 (X : Double_Uns; I : Natural) is
- 
-          --  Local lemmas
- 
-          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns)
-          with
-            Ghost,
-            Pre  => X <= 1,
-            Post => X * Z <= Z;
- 
-          procedure Lemma_Mult_Le (X, Y, Z : Double_Uns) is null;
- 
-          --  Local variables
- 
-          Div1 : constant Double_Uns := Double_Uns'(2) ** I;
-          Div2 : constant Double_Uns := Double_Uns'(2);
-          Left : constant Double_Uns := X / Div1 / Div2;
-          R2   : constant Double_Uns := X / Div1 - Left * Div2;
-          pragma Assert (R2 <= Div2 - 1);
-          R1   : constant Double_Uns := X - X / Div1 * Div1;
-          pragma Assert (R1 < Div1);
- 
-       --  Start of processing for Lemma_Div_Pow2
- 
-       begin
-          pragma Assert (X = Left * (Div1 * Div2) + R2 * Div1 + R1);
-          Lemma_Mult_Le (R2, Div2 - 1, Div1);
-          pragma Assert (R2 * Div1 + R1 < Div1 * Div2);
-          Lemma_Quot_Rem (X, Div1 * Div2, Left, R2 * Div1 + R1);
-          pragma Assert (Left = X / (Div1 * Div2));
-          pragma Assert (Div1 * Div2 = Double_Uns'(2) ** (I + 1));
-       end Lemma_Div_Pow2;
- 
-       procedure Lemma_Quot_Rem (X, Div, Q, R : Double_Uns) is null;
- 
-       XX : Double_Uns := X;
- 
-    begin
-       for J in 1 .. Shift loop
-          declare
-             Cur_XX : constant Double_Uns := XX;
-          begin
-             XX := Shift_Right (XX, 1);
-             pragma Assert (XX = Cur_XX / Double_Uns'(2));
-             Lemma_Div_Pow2 (X, J - 1);
-          end;
-          Lemma_Double_Shift_Right (X, J - 1, 1);
-          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;
- 
-    ------------------------------
-    -- Lemma_Shift_Without_Drop --
-    ------------------------------
- 
-    procedure Lemma_Shift_Without_Drop
-      (X, Y  : Double_Uns;
-       Mask  : Single_Uns;
-       Shift : Natural)
-    is
-       pragma Unreferenced (Mask);
- 
-       procedure Lemma_Bound
-       with
-         Pre  => Shift <= Single_Size
-           and then X <= 2**Single_Size
-             * Double_Uns'(2**(Single_Size - Shift) - 1)
-             + Single_Uns'(2**Single_Size - 1),
-         Post => X <= 2**(Double_Size - Shift) - 1;
- 
-       procedure Lemma_Exp_Pos (N : Integer)
-       with
-         Pre  => N in 0 .. Double_Size - 1,
-         Post => Double_Uns'(2**N) > 0;
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Lemma_Bound is null;
-       procedure Lemma_Exp_Pos (N : Integer) is null;
- 
-    --  Start of processing for Lemma_Shift_Without_Drop
- 
-    begin
-       if Shift = 0 then
-          pragma Assert (Big (Y) = Big_2xx (Shift) * Big (X));
-          return;
-       end if;
- 
-       Lemma_Bound;
-       Lemma_Exp_Pos (Double_Size - Shift);
-       pragma Assert (X < 2**(Double_Size - Shift));
-       pragma Assert (Big (X) < Big_2xx (Double_Size - Shift));
-       pragma Assert (Y = 2**Shift * X);
-       Lemma_Lt_Mult (Big (X), Big_2xx (Double_Size - Shift), Big_2xx (Shift),
-                      Big_2xx (Shift) * Big_2xx (Double_Size - Shift));
-       pragma Assert (Big_2xx (Shift) * Big (X)
-                      < Big_2xx (Shift) * Big_2xx (Double_Size - Shift));
-       Lemma_Powers_Of_2 (Shift, Double_Size - Shift);
-       Lemma_Mult_Commutation (2**Shift, X, Y);
-       pragma Assert (Big (Y) = Big_2xx (Shift) * Big (X));
-    end Lemma_Shift_Without_Drop;
- 
-    -------------------------------
     -- Multiply_With_Ovflo_Check --
     -------------------------------
  
--- 294,299 ----
*************** is
*** 1680,1839 ****
  
        T1, T2 : Double_Uns;
  
-       --  Local ghost variables
- 
-       Mult : constant Big_Integer := abs (Big (X) * Big (Y)) with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Both_Too_Large
-       with
-         Ghost,
-         Pre  => Xhi /= 0
-           and then Yhi /= 0
-           and then Mult =
-             Big_2xxSingle * Big_2xxSingle * (Big (Double_Uns'(Xhi * Yhi)))
-                       + Big_2xxSingle * (Big (Double_Uns'(Xhi * Ylo)))
-                       + Big_2xxSingle * (Big (Double_Uns'(Xlo * Yhi)))
-                                   + (Big (Double_Uns'(Xlo * Ylo))),
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       procedure Prove_Final_Decomposition
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1)))
-           and then Hi (T2) = 0,
-         Post => Mult = Big (Lo (T2) & Lo (T1));
- 
-       procedure Prove_Neg_Int
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big (T2)
-           and then ((X >= 0 and then Y < 0) or else (X < 0 and then Y >= 0)),
-         Post => To_Neg_Int (T2) = X * Y;
- 
-       procedure Prove_Pos_Int
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big (X) * Big (Y))
-           and then Mult = Big (T2)
-           and then ((X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0)),
-         Post => In_Double_Int_Range (Big (T2))
-           and then To_Pos_Int (T2) = X * Y;
- 
-       procedure Prove_Result_Too_Large
-       with
-         Ghost,
-         Pre  => Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1)))
-           and then Hi (T2) /= 0,
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       procedure Prove_Too_Large
-       with
-         Ghost,
-         Pre  => abs (Big (X) * Big (Y)) >= Big_2xxDouble,
-         Post => not In_Double_Int_Range (Big (X) * Big (Y));
- 
-       --------------------------
-       -- Prove_Both_Too_Large --
-       --------------------------
- 
-       procedure Prove_Both_Too_Large is
-       begin
-          pragma Assert (Mult >=
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns'(Xhi * Yhi)));
-          pragma Assert (Double_Uns (Xhi) * Double_Uns (Yhi) >= 1);
-          pragma Assert (Mult >= Big_2xxSingle * Big_2xxSingle);
-          Prove_Too_Large;
-       end Prove_Both_Too_Large;
- 
-       -------------------------------
-       -- Prove_Final_Decomposition --
-       -------------------------------
- 
-       procedure Prove_Final_Decomposition is
-       begin
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          pragma Assert (Mult = Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                                              + 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)))
-                           + Big (Double_Uns (Lo (T1))));
-          Lemma_Add_Commutation (Double_Uns'(2 ** Single_Size)
-                                   * Double_Uns (Lo (T2)),
-                                 Lo (T1));
-          pragma Assert (Mult = Big (Double_Uns'(2 ** Single_Size)
-                           * Double_Uns (Lo (T2)) + Lo (T1)));
-          pragma Assert (Lo (T2) & Lo (T1) = Double_Uns'(2 ** Single_Size)
-                           * Double_Uns (Lo (T2)) + Lo (T1));
-       end Prove_Final_Decomposition;
- 
-       -------------------
-       -- Prove_Neg_Int --
-       -------------------
- 
-       procedure Prove_Neg_Int is
-       begin
-          pragma Assert (X * Y <= 0);
-          pragma Assert (Mult = -Big (X * Y));
-       end Prove_Neg_Int;
- 
-       -------------------
-       -- Prove_Pos_Int --
-       -------------------
- 
-       procedure Prove_Pos_Int is
-       begin
-          pragma Assert (X * Y >= 0);
-          pragma Assert (Mult = Big (X * Y));
-       end Prove_Pos_Int;
- 
-       ----------------------------
-       -- Prove_Result_Too_Large --
-       ----------------------------
- 
-       procedure Prove_Result_Too_Large is
-       begin
-          pragma Assert (Mult >= Big_2xxSingle * Big (T2));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          pragma Assert (Mult >=
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2))));
-          pragma Assert (Double_Uns (Hi (T2)) >= 1);
-          pragma Assert (Mult >= Big_2xxSingle * Big_2xxSingle);
-          Prove_Too_Large;
-       end Prove_Result_Too_Large;
- 
-       ---------------------
-       -- Prove_Too_Large --
-       ---------------------
- 
-       procedure Prove_Too_Large is null;
- 
-    --  Start of processing for Multiply_With_Ovflo_Check
- 
     begin
-       Lemma_Mult_Decomposition (Mult, Xu, Yu, Xhi, Xlo, Yhi, Ylo);
- 
        if Xhi /= 0 then
           if Yhi /= 0 then
-             Prove_Both_Too_Large;
              Raise_Error;
           else
              T2 := Xhi * Ylo;
-             pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                                     + Big (Double_Uns'(Xlo * Yhi)));
           end if;
  
        elsif Yhi /= 0 then
           T2 := Xlo * Yhi;
-          pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                                  + Big (Double_Uns'(Xlo * Yhi)));
  
        else -- Yhi = Xhi = 0
           T2 := 0;
--- 308,323 ----
*************** is
*** 1843,1899 ****
        --  result from the upper halves of the input values.
  
        T1 := Xlo * Ylo;
- 
-       pragma Assert (Big (T2) = Big (Double_Uns'(Xhi * Ylo))
-                               + Big (Double_Uns'(Xlo * Yhi)));
-       Lemma_Mult_Distribution (Big_2xxSingle, Big (Double_Uns'(Xhi * Ylo)),
-                                               Big (Double_Uns'(Xlo * Yhi)));
-       pragma Assert (Mult = Big_2xxSingle * Big (T2) + Big (T1));
-       Lemma_Add_Commutation (T2, Hi (T1));
-       pragma Assert
-         (Big (T2 + Hi (T1)) = Big (T2) + Big (Double_Uns (Hi (T1))));
- 
        T2 := T2 + Hi (T1);
  
-       Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-       pragma Assert
-         (Mult = Big_2xxSingle * Big (T2) + Big (Double_Uns (Lo (T1))));
- 
        if Hi (T2) /= 0 then
-          Prove_Result_Too_Large;
           Raise_Error;
        end if;
  
-       Prove_Final_Decomposition;
- 
        T2 := Lo (T2) & Lo (T1);
  
-       pragma Assert (Mult = Big (T2));
- 
        if X >= 0 then
           if Y >= 0 then
-             Prove_Pos_Int;
              return To_Pos_Int (T2);
-             pragma Annotate (CodePeer, Intentional, "precondition",
-                              "Intentional Unsigned->Signed conversion");
           else
-             Prove_Neg_Int;
-             Lemma_Abs_Range (Big (X) * Big (Y));
              return To_Neg_Int (T2);
           end if;
        else -- X < 0
           if Y < 0 then
-             Prove_Pos_Int;
              return To_Pos_Int (T2);
-             pragma Annotate (CodePeer, Intentional, "precondition",
-                              "Intentional Unsigned->Signed conversion");
           else
-             Prove_Neg_Int;
-             Lemma_Abs_Range (Big (X) * Big (Y));
              return To_Neg_Int (T2);
           end if;
        end if;
  
     end Multiply_With_Ovflo_Check;
  
     -----------------
--- 327,396 ----
        --  result from the upper halves of the input values.
  
        T1 := Xlo * Ylo;
        T2 := T2 + Hi (T1);
  
        if Hi (T2) /= 0 then
           Raise_Error;
        end if;
  
        T2 := Lo (T2) & Lo (T1);
  
        if X >= 0 then
           if Y >= 0 then
              return To_Pos_Int (T2);
           else
              return To_Neg_Int (T2);
           end if;
        else -- X < 0
           if Y < 0 then
              return To_Pos_Int (T2);
           else
              return To_Neg_Int (T2);
           end if;
        end if;
+    end Multiply_With_Ovflo_Check;
+ 
+    -------------------------------
+    -- Multiply_With_Ovflo_Check --
+    -------------------------------
+ 
+    function Multiply_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns is
+       Xhi : constant Single_Uns := Hi (X);
+       Xlo : constant Single_Uns := Lo (X);
+ 
+       Yhi : constant Single_Uns := Hi (Y);
+       Ylo : constant Single_Uns := Lo (Y);
+ 
+       T1, T2 : Double_Uns;
+ 
+    begin
+       if Xhi /= 0 then
+          if Yhi /= 0 then
+             Raise_Error;
+          else
+             T2 := Xhi * Ylo;
+          end if;
+ 
+       elsif Yhi /= 0 then
+          T2 := Xlo * Yhi;
+ 
+       else -- Yhi = Xhi = 0
+          T2 := 0;
+       end if;
+ 
+       --  Here we have T2 set to the contribution to the upper half of the
+       --  result from the upper halves of the input values.
+ 
+       T1 := Xlo * Ylo;
+       T2 := T2 + Hi (T1);
  
+       if Hi (T2) /= 0 then
+          Raise_Error;
+       end if;
+ 
+       T2 := Lo (T2) & Lo (T1);
+ 
+       return T2;
     end Multiply_With_Ovflo_Check;
  
     -----------------
*************** is
*** 1909,1916 ****
     -- Scaled_Divide --
     -------------------
  
-    pragma Annotate (Gnatcheck, Exempt_On, "Metrics_Cyclomatic_Complexity",
-                     "limit exceeded due to proof code");
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
--- 406,411 ----
*************** is
*** 1928,1937 ****
        Zhi : Single_Uns := Hi (Zu);
        Zlo : Single_Uns := Lo (Zu);
  
!       D : array (1 .. 4) of Single_Uns with Relaxed_Initialization;
        --  The dividend, four digits (D(1) is high order)
  
!       Qd : array (1 .. 2) of Single_Uns with Relaxed_Initialization;
        --  The quotient digits, two digits (Qd(1) is high order)
  
        S1, S2, S3 : Single_Uns;
--- 423,432 ----
        Zhi : Single_Uns := Hi (Zu);
        Zlo : Single_Uns := Lo (Zu);
  
!       D : array (1 .. 4) of Single_Uns;
        --  The dividend, four digits (D(1) is high order)
  
!       Qd : array (1 .. 2) of Single_Uns;
        --  The quotient digits, two digits (Qd(1) is high order)
  
        S1, S2, S3 : Single_Uns;
*************** is
*** 1956,2560 ****
        T1, T2, T3 : Double_Uns;
        --  Temporary values
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Natural := abs (Big (X) * Big (Y)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
-       Inter : Natural with Ghost;
- 
-       --  Local ghost functions
- 
-       function Is_Mult_Decomposition
-         (D1, D2, D3, D4 : Big_Integer)
-          return Boolean
-       is
-         (Mult = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle * D1
-                               + Big_2xxSingle * Big_2xxSingle * D2
-                                               + Big_2xxSingle * D3
-                                                               + D4)
-       with
-         Ghost,
-         Annotate => (GNATprove, Inline_For_Proof);
- 
-       function Is_Scaled_Mult_Decomposition
-         (D1, D2, D3, D4 : Big_Integer)
-          return Boolean
-       is
-         (Mult * Big_2xx (Scale)
-            = Big_2xxSingle * Big_2xxSingle * Big_2xxSingle * D1
-                            + Big_2xxSingle * Big_2xxSingle * D2
-                                            + Big_2xxSingle * D3
-                                                            + D4)
-       with
-         Ghost,
-         Annotate => (GNATprove, Inline_For_Proof),
-         Pre => Scale < Double_Size;
- 
-       --  Local lemmas
- 
-       procedure Prove_Dividend_Scaling
-       with
-         Ghost,
-         Pre  => D'Initialized
-           and then Scale <= Single_Size
-           and then Is_Mult_Decomposition (Big (Double_Uns (D (1))),
-                                           Big (Double_Uns (D (2))),
-                                           Big (Double_Uns (D (3))),
-                                           Big (Double_Uns (D (4))))
-           and then Big (D (1) & D (2)) * Big_2xx (Scale) < Big_2xxDouble
-           and then T1 = Shift_Left (D (1) & D (2), Scale)
-           and then T2 = Shift_Left (Double_Uns (D (3)), Scale)
-           and then T3 = Shift_Left (Double_Uns (D (4)), Scale),
-         Post => Is_Scaled_Mult_Decomposition
-           (Big (Double_Uns (Hi (T1))),
-            Big (Double_Uns (Lo (T1) or Hi (T2))),
-            Big (Double_Uns (Lo (T2) or Hi (T3))),
-            Big (Double_Uns (Lo (T3))));
-       --  Proves the scaling of the 4-digit dividend actually multiplies it by
-       --  2**Scale.
- 
-       procedure Prove_Multiplication (Q : Single_Uns)
-       with
-         Ghost,
-         Pre  => T1 = Q * Lo (Zu)
-           and then T2 = Q * Hi (Zu)
-           and then S3 = Lo (T1)
-           and then T3 = Hi (T1) + Lo (T2)
-           and then S2 = Lo (T3)
-           and then S1 = Hi (T3) + Hi (T2),
-         Post => Big3 (S1, S2, S3) = Big (Double_Uns (Q)) * Big (Zu);
-       --  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
-         Ghost,
-         Pre  => Is_Mult_Decomposition (D1, D2, D3, D4)
-           and then D3 = Big_2xxSingle * D3_Hi + D3_Lo,
-         Post => Is_Mult_Decomposition (D1, D2 + D3_Hi, D3_Lo, D4);
-       --  Proves decomposition of Mult after splitting third component
- 
-       procedure Prove_Negative_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then Big (Ru) = abs Big_R
-           and then ((X >= 0 and Y < 0) or (X < 0 and Y >= 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z))
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-          Post =>
-            (if Z > 0 then Big_Q <= Big_0
-               and then In_Double_Int_Range (-Big (Qu))
-             else Big_Q >= Big_0
-               and then In_Double_Int_Range (Big (Qu)))
-            and then In_Double_Int_Range (-Big (Ru));
-       --  Proves the sign of rounded quotient when dividend is non-positive
- 
-       procedure Prove_Overflow
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Mult >= Big_2xxDouble * Big (Double_Uns'(abs Z)),
-         Post => not In_Double_Int_Range (Big (X) * Big (Y) / Big (Z))
-           and then not In_Double_Int_Range
-             (Round_Quotient (Big (X) * Big (Y), Big (Z),
-                              Big (X) * Big (Y) / Big (Z),
-                              Big (X) * Big (Y) rem Big (Z)));
-       --  Proves overflow case when the quotient has at least 3 digits
- 
-       procedure Prove_Positive_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then Big (Ru) = abs Big_R
-           and then ((X >= 0 and Y >= 0) or (X < 0 and Y < 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z))
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post =>
-            (if Z > 0 then Big_Q >= Big_0
-               and then In_Double_Int_Range (Big (Qu))
-             else Big_Q <= Big_0
-               and then In_Double_Int_Range (-Big (Qu)))
-            and then In_Double_Int_Range (Big (Ru));
-       --  Proves the sign of rounded quotient when dividend is non-negative
- 
-       procedure Prove_Qd_Calculation_Part_1 (J : Integer)
-       with
-         Ghost,
-         Pre  => J in 1 .. 2
-           and then D'Initialized
-           and then D (J) < Zhi
-           and then Hi (Zu) = Zhi
-           and then Qd (J)'Initialized
-           and then Qd (J) = Lo ((D (J) & D (J + 1)) / Zhi),
-         Post => Big (Double_Uns (Qd (J))) >=
-           Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu);
-       --  When dividing 3 digits by 2 digits, proves the initial calculation
-       --  of the quotient given by dividing the first 2 digits of the dividend
-       --  by the first digit of the divisor is not an underestimate (so
-       --  readjusting down works).
- 
-       procedure Prove_Q_Too_Big
-       with
-         Ghost,
-         Pre  => In_Double_Int_Range (Big_Q)
-           and then abs Big_Q = Big_2xxDouble,
-         Post => False;
-       --  Proves the inconsistency when Q is equal to Big_2xx64
- 
-       procedure Prove_Rescaling
-       with
-         Ghost,
-         Pre  => Scale <= Single_Size
-           and then Z /= 0
-           and then Mult * Big_2xx (Scale) = Big (Zu) * Big (Qu) + Big (Ru)
-           and then Big (Ru) < Big (Zu)
-           and then Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale)
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => abs Quot = Big (Qu)
-           and then abs Big_R = Big (Shift_Right (Ru, Scale));
-       --  Proves scaling back only the remainder is the right thing to do after
-       --  computing the scaled division.
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Zu) = Big (Double_Uns'(abs Z)),
-         Post => abs Big_Q =
-           (if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2)
-            then abs Quot + 1
-            else abs Quot);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup24
-         (D1, D2, D3, D4 : Big_Integer)
-       with
-         Ghost,
-         Pre  => Scale < Double_Size
-           and then Is_Scaled_Mult_Decomposition (D1, D2, D3, D4),
-         Post => Is_Scaled_Mult_Decomposition
-           (0, Big_2xxSingle * D1 + D2, 0, Big_2xxSingle * D3 + D4);
-       --  Proves scaled decomposition of Mult after regrouping on second and
-       --  fourth component.
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup3
-         (D1, D2, D3, D4 : Single_Uns)
-       with
-         Ghost,
-         Pre  => Scale < Double_Size
-           and then Is_Scaled_Mult_Decomposition
-             (Big (Double_Uns (D1)), Big (Double_Uns (D2)),
-              Big (Double_Uns (D3)), Big (Double_Uns (D4))),
-         Post => Is_Scaled_Mult_Decomposition (0, 0, Big3 (D1, D2, D3),
-                                               Big (Double_Uns (D4)));
-       --  Proves scaled decomposition of Mult after regrouping on third
-       --  component.
- 
-       procedure Prove_Sign_R
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => In_Double_Int_Range (Big_R);
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then In_Double_Int_Range (Big_Q)
-           and then In_Double_Int_Range (Big_R)
-           and then R =
-             (if (X >= 0) = (Y >= 0) then To_Pos_Int (Ru) else To_Neg_Int (Ru))
-           and then Q =
-             (if ((X >= 0) = (Y >= 0)) = (Z >= 0) then To_Pos_Int (Qu)
-              else To_Neg_Int (Qu)),  --  need to ensure To_Pos_Int precondition
-         Post => Big (R) = Big_R and then Big (Q) = Big_Q;
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       procedure Prove_Z_Low
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then D'Initialized
-           and then Hi (abs Z) = 0
-           and then Lo (abs Z) = Zlo
-           and then Mult =
-             Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (2)))
-                           + Big_2xxSingle * Big (Double_Uns (D (3)))
-                                           + Big (Double_Uns (D (4)))
-           and then D (2) < Zlo
-           and then Quot = (Big (X) * Big (Y)) / Big (Z)
-           and then Big_R = (Big (X) * Big (Y)) rem Big (Z)
-           and then T1 = D (2) & D (3)
-           and then T2 = Lo (T1 rem Zlo) & D (4)
-           and then Qu = Lo (T1 / Zlo) & Lo (T2 / Zlo)
-           and then Ru = T2 rem Zlo,
-         Post => Big (Qu) = abs Quot
-           and then Big (Ru) = abs Big_R;
-       --  Proves the case where the divisor is only one digit
- 
-       ----------------------------
-       -- Prove_Dividend_Scaling --
-       ----------------------------
- 
-       procedure Prove_Dividend_Scaling is
-          Big_D12 : constant Big_Integer :=
-            Big_2xx (Scale) * Big (D (1) & D (2));
-          Big_T1  : constant Big_Integer := Big (T1);
-          Big_D3  : constant Big_Integer :=
-            Big_2xx (Scale) * Big (Double_Uns (D (3)));
-          Big_T2  : constant Big_Integer := Big (T2);
-          Big_D4  : constant Big_Integer :=
-            Big_2xx (Scale) * Big (Double_Uns (D (4)));
-          Big_T3  : constant Big_Integer := Big (T3);
- 
-       begin
-          Lemma_Shift_Left (D (1) & D (2), Scale);
-          Lemma_Ge_Mult (Big_2xxSingle, Big_2xx (Scale), Big_2xxSingle,
-                         Big_2xxSingle * Big_2xx (Scale));
-          Lemma_Lt_Mult (Big (Double_Uns (D (3))), Big_2xxSingle,
-                         Big_2xx (Scale), Big_2xxDouble);
-          Lemma_Shift_Left (Double_Uns (D (3)), Scale);
-          Lemma_Lt_Mult (Big (Double_Uns (D (4))), Big_2xxSingle,
-                         Big_2xx (Scale), Big_2xxDouble);
-          Lemma_Shift_Left (Double_Uns (D (4)), Scale);
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          pragma Assert (Mult * Big_2xx (Scale) =
-            Big_2xxSingle * Big_2xxSingle * Big_D12
-                          + Big_2xxSingle * Big_D3
-                                          + Big_D4);
-          pragma Assert (Big_2xx (Scale) > 0);
-          declare
-             Two_xx_Scale : constant Double_Uns := Double_Uns'(2 ** Scale);
-             D12          : constant Double_Uns := D (1) & D (2);
-          begin
-             pragma Assert (Big_2xx (Scale) * Big (D12) < Big_2xxDouble);
-             pragma Assert (Big (Two_xx_Scale) * Big (D12) < Big_2xxDouble);
-             Lemma_Mult_Commutation (Two_xx_Scale, D12, T1);
-          end;
-          pragma Assert (Big_D12 = Big_T1);
-          pragma Assert (Big_2xxSingle * Big_2xxSingle * Big_D12
-                         = Big_2xxSingle * Big_2xxSingle * Big_T1);
-          Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (3)), T2);
-          pragma Assert (Big_D3 = Big_T2);
-          pragma Assert (Big_2xxSingle * Big_D3 = Big_2xxSingle * Big_T2);
-          Lemma_Mult_Commutation (2 ** Scale, Double_Uns (D (4)), T3);
-          pragma Assert
-            (Is_Scaled_Mult_Decomposition (0, Big_T1, Big_T2, Big_T3));
-          Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          Lemma_Hi_Lo (T3, Hi (T3), Lo (T3));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big_2xxSingle * Big (Double_Uns (Hi (T1))),
-                                   Big (Double_Uns (Lo (T1))));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big_2xxSingle * Big (Double_Uns (Hi (T2))),
-                                   Big (Double_Uns (Lo (T2))));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T1))),
-                                   Big (Double_Uns (Hi (T2))));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T2))),
-                                   Big (Double_Uns (Hi (T3))));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Lo (T1))),
-                                   Big (Double_Uns (Hi (T2))));
-          pragma Assert (Double_Uns (Lo (T1) or Hi (T2)) =
-                           Double_Uns (Lo (T1)) + Double_Uns (Hi (T2)));
-          pragma Assert (Double_Uns (Lo (T2) or Hi (T3)) =
-                           Double_Uns (Lo (T2)) + Double_Uns (Hi (T3)));
-          Lemma_Add_Commutation (Double_Uns (Lo (T1)), Hi (T2));
-          Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T3));
-       end Prove_Dividend_Scaling;
- 
-       --------------------------
-       -- Prove_Multiplication --
-       --------------------------
- 
-       procedure Prove_Multiplication (Q : Single_Uns) is
-       begin
-          Lemma_Hi_Lo (Zu, Hi (Zu), Lo (Zu));
-          Lemma_Hi_Lo (T1, Hi (T1), S3);
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-          Lemma_Hi_Lo (T3, Hi (T3), S2);
-          Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Lo (Zu)), T1);
-          Lemma_Mult_Commutation (Double_Uns (Q), Double_Uns (Hi (Zu)), T2);
-          Lemma_Mult_Distribution (Big (Double_Uns (Q)),
-                                   Big_2xxSingle * Big (Double_Uns (Hi (Zu))),
-                                   Big (Double_Uns (Lo (Zu))));
-          Lemma_Substitution
-            (Big (Double_Uns (Q)) * Big (Zu),
-             Big (Double_Uns (Q)),
-             Big (Zu),
-             Big_2xxSingle * Big (Double_Uns (Hi (Zu)))
-               + Big (Double_Uns (Lo (Zu))),
-             Big_0);
-          pragma Assert (Big (Double_Uns (Q)) * Big (Zu) =
-            Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (Hi (T2)))
-                          + Big_2xxSingle * Big (Double_Uns (Lo (T2)))
-                          + Big_2xxSingle * Big (Double_Uns (Hi (T1)))
-                                          + Big (Double_Uns (S3)));
-          Lemma_Add_Commutation (Double_Uns (Lo (T2)), Hi (T1));
-          pragma Assert
-            (By (Big (Double_Uns (Q)) * Big (Zu) =
-               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
-            (Big (Double_Uns (Hi (T3))) + Big (Double_Uns (Hi (T2))) =
-               Big (Double_Uns (S1)));
-          Lemma_Mult_Distribution (Big_2xxSingle * Big_2xxSingle,
-                                   Big (Double_Uns (Hi (T3))),
-                                   Big (Double_Uns (Hi (T2))));
-       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 --
-       -------------------------------------
- 
-       procedure Prove_Mult_Decomposition_Split3
-         (D1, D2, D3, D3_Hi, D3_Lo, D4 : Big_Integer)
-       is null;
- 
-       -----------------------------
-       -- Prove_Negative_Dividend --
-       -----------------------------
- 
-       procedure Prove_Negative_Dividend is
-       begin
-          Lemma_Mult_Non_Positive (Big (X), Big (Y));
-       end Prove_Negative_Dividend;
- 
-       --------------------
-       -- Prove_Overflow --
-       --------------------
- 
-       procedure Prove_Overflow is
-       begin
-          Lemma_Div_Ge (Mult, Big_2xxDouble, Big (Double_Uns'(abs Z)));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Overflow;
- 
-       -----------------------------
-       -- Prove_Positive_Dividend --
-       -----------------------------
- 
-       procedure Prove_Positive_Dividend is
-       begin
-          Lemma_Mult_Non_Negative (Big (X), Big (Y));
-       end Prove_Positive_Dividend;
- 
-       ---------------------------------
-       -- Prove_Qd_Calculation_Part_1 --
-       ---------------------------------
- 
-       procedure Prove_Qd_Calculation_Part_1 (J : Integer) is
-       begin
-          Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
-          Lemma_Lt_Commutation (Double_Uns (D (J)), Double_Uns (Zhi));
-          Lemma_Gt_Mult (Big (Double_Uns (Zhi)),
-                         Big (Double_Uns (D (J))) + 1,
-                         Big_2xxSingle, Big (D (J) & D (J + 1)));
-          Lemma_Div_Lt
-            (Big (D (J) & D (J + 1)), Big_2xxSingle, Big (Double_Uns (Zhi)));
-          Lemma_Div_Commutation (D (J) & D (J + 1), Double_Uns (Zhi));
-          Lemma_Lo_Is_Ident ((D (J) & D (J + 1)) / Zhi);
-          Lemma_Div_Definition (D (J) & D (J + 1), Zhi, Double_Uns (Qd (J)),
-                                (D (J) & D (J + 1)) rem Zhi);
-          Lemma_Lt_Commutation
-            ((D (J) & D (J + 1)) rem Zhi, Double_Uns (Zhi));
-          Lemma_Gt_Mult
-            ((Big (Double_Uns (Qd (J))) + 1) * Big (Double_Uns (Zhi)),
-             Big (D (J) & D (J + 1)) + 1, Big_2xxSingle,
-             Big3 (D (J), D (J + 1), D (J + 2)));
-          Lemma_Hi_Lo (Zu, Zhi, Lo (Zu));
-          Lemma_Gt_Mult (Big (Zu), Big_2xxSingle * Big (Double_Uns (Zhi)),
-                         Big (Double_Uns (Qd (J))) + 1,
-                         Big3 (D (J), D (J + 1), D (J + 2)));
-          Lemma_Div_Lt (Big3 (D (J), D (J + 1), D (J + 2)),
-                        Big (Double_Uns (Qd (J))) + 1, Big (Zu));
-       end Prove_Qd_Calculation_Part_1;
- 
-       ---------------------
-       -- Prove_Q_Too_Big --
-       ---------------------
- 
-       procedure Prove_Q_Too_Big is
-       begin
-          pragma Assert (Big_Q = Big_2xxDouble or Big_Q = -Big_2xxDouble);
-          Lemma_Not_In_Range_Big2xx64;
-       end Prove_Q_Too_Big;
- 
-       ---------------------
-       -- Prove_Rescaling --
-       ---------------------
- 
-       procedure Prove_Rescaling is
-       begin
-          Lemma_Div_Lt (Big (Ru), Big (Double_Uns'(abs Z)), Big_2xx (Scale));
-          Lemma_Div_Eq (Mult, Big (Double_Uns'(abs Z)) * Big (Qu),
-                        Big_2xx (Scale), Big (Ru));
-          Lemma_Rev_Div_Definition (Mult, Big (Double_Uns'(abs Z)),
-                                    Big (Qu), Big (Ru) / Big_2xx (Scale));
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Shift_Right (Ru, Scale);
-       end Prove_Rescaling;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       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;
- 
-       -----------------------------------------------
-       -- Prove_Scaled_Mult_Decomposition_Regroup24 --
-       -----------------------------------------------
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup24
-         (D1, D2, D3, D4 : Big_Integer)
-       is null;
- 
-       ----------------------------------------------
-       -- Prove_Scaled_Mult_Decomposition_Regroup3 --
-       ----------------------------------------------
- 
-       procedure Prove_Scaled_Mult_Decomposition_Regroup3
-         (D1, D2, D3, D4 : Single_Uns)
-       is null;
- 
-       ------------------
-       -- Prove_Sign_R --
-       ------------------
- 
-       procedure Prove_Sign_R is
-       begin
-          pragma Assert (In_Double_Int_Range (Big (Z)));
-       end Prove_Sign_R;
- 
-       -----------------
-       -- Prove_Signs --
-       -----------------
- 
-       procedure Prove_Signs is null;
- 
-       -----------------
-       -- Prove_Z_Low --
-       -----------------
- 
-       procedure Prove_Z_Low is
-       begin
-          Lemma_Hi_Lo (T1, D (2), D (3));
-          Lemma_Add_Commutation (Double_Uns (D (2)), 1);
-          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));
-          Lemma_Ge_Commutation (Double_Uns (Zlo), T1 rem Zlo + Double_Uns'(1));
-          Lemma_Add_Commutation (T1 rem Zlo, 1);
-          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));
-          pragma Assert (Double_Uns (Zlo) = abs Z);
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-          Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Z_Low;
- 
     --  Start of processing for Scaled_Divide
  
     begin
--- 451,456 ----
*************** is
*** 2562,2798 ****
           Raise_Error;
        end if;
  
-       Quot := Big (X) * Big (Y) / Big (Z);
-       Big_R := Big (X) * Big (Y) rem Big (Z);
-       if Round then
-          Big_Q := Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
- 
        --  First do the multiplication, giving the four digit dividend
  
-       Lemma_Abs_Mult_Commutation (Big (X), Big (Y));
-       Lemma_Abs_Commutation (X);
-       Lemma_Abs_Commutation (Y);
-       Lemma_Mult_Decomposition (Mult, Xu, Yu, Xhi, Xlo, Yhi, Ylo);
- 
        T1 := Xlo * Ylo;
        D (4) := Lo (T1);
        D (3) := Hi (T1);
  
-       Lemma_Hi_Lo (T1, D (3), D (4));
- 
        if Yhi /= 0 then
           T1 := Xlo * Yhi;
- 
-          Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
- 
           T2 := D (3) + Lo (T1);
  
-          Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
-          Lemma_Mult_Distribution (Big_2xxSingle,
-                                   Big (Double_Uns (D (3))),
-                                   Big (Double_Uns (Lo (T1))));
-          Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
- 
           D (3) := Lo (T2);
           D (2) := Hi (T1) + Hi (T2);
  
-          pragma Assert (Double_Uns (Hi (T1)) + Hi (T2) = Double_Uns (D (2)));
-          Lemma_Add_Commutation (Double_Uns (Hi (T1)), Hi (T2));
-          pragma Assert
-            (Big (Double_Uns (Hi (T1))) + Big (Double_Uns (Hi (T2))) =
-               Big (Double_Uns (D (2))));
- 
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
- 
-             Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
- 
              T2 := D (3) + Lo (T1);
  
-             Lemma_Add_Commutation (Double_Uns (D (3)), Lo (T1));
-             Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
-             Prove_Mult_Decomposition_Split3
-               (D1    => 0,
-                D2    => Big (Double_Uns'(Xhi * Yhi)) + Big (Double_Uns (D (2)))
-                  + Big (Double_Uns (Hi (T1))),
-                D3    => Big (T2),
-                D3_Hi => Big (Double_Uns (Hi (T2))),
-                D3_Lo => Big (Double_Uns (Lo (T2))),
-                D4    => Big (Double_Uns (D (4))));
- 
              D (3) := Lo (T2);
              T3 := D (2) + Hi (T1);
  
-             Lemma_Add_Commutation (Double_Uns (D (2)), Hi (T1));
-             Lemma_Add_Commutation (T3, Hi (T2));
- 
              T3 := T3 + Hi (T2);
              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
           if Xhi /= 0 then
              T1 := Xhi * Ylo;
- 
-             Lemma_Hi_Lo (T1, Hi (T1), Lo (T1));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (Hi (T1))),
-                   D3 => Big (Double_Uns (Lo (T1))) + Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
- 
              T2 := D (3) + Lo (T1);
  
-             Lemma_Add_Commutation (Double_Uns (Lo (T1)), D (3));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (Hi (T1))),
-                   D3 => Big (T2),
-                   D4 => Big (Double_Uns (D (4)))));
-             Lemma_Hi_Lo (T2, Hi (T2), Lo (T2));
- 
              D (3) := Lo (T2);
              D (2) := Hi (T1) + Hi (T2);
  
-             pragma Assert
-               (Double_Uns (Hi (T1)) + Hi (T2) = Double_Uns (D (2)));
-             Lemma_Add_Commutation (Double_Uns (Hi (T1)), Hi (T2));
-             pragma Assert
-               (Big (Double_Uns (Hi (T1))) + Big (Double_Uns (Hi (T2))) =
-                  Big (Double_Uns (D (2))));
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (D (2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
           else
              D (2) := 0;
- 
-             pragma Assert
-               (Is_Mult_Decomposition
-                  (D1 => 0,
-                   D2 => Big (Double_Uns (D (2))),
-                   D3 => Big (Double_Uns (D (3))),
-                   D4 => Big (Double_Uns (D (4)))));
           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
-         --  Restate the precondition
-         (Z /= 0
-          and then In_Double_Int_Range
-            (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                           Big (X) * Big (Y) / Big (Z),
-                                           Big (X) * Big (Y) rem Big (Z))
-             else Big (X) * Big (Y) / Big (Z))
-          --  Restate the value of local variables
-          and then Zu = abs Z
-          and then Zhi = Hi (Zu)
-          and then Zlo = Lo (Zu)
-          and then Mult = abs (Big (X) * Big (Y))
-          and then Quot = Big (X) * Big (Y) / Big (Z)
-          and then Big_R = Big (X) * Big (Y) rem Big (Z)
-          and then
-            (if Round then
-               Big_Q = Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-             else
-               Big_Q = Quot)
-          --  Summarize first part of the procedure
-          and then D'Initialized
-          and then 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)))));
- 
        --  Now it is time for the dreaded multiple precision division. First an
        --  easy case, check for the simple case of a one digit divisor.
  
        if Zhi = 0 then
           if D (1) /= 0 or else D (2) >= Zlo then
-             if D (1) > 0 then
-                Lemma_Double_Big_2xxSingle;
-                Lemma_Mult_Positive (Big_2xxDouble, Big_2xxSingle);
-                Lemma_Ge_Mult (Big (Double_Uns (D (1))),
-                               1,
-                               Big_2xxDouble * Big_2xxSingle,
-                               Big_2xxDouble * Big_2xxSingle);
-                Lemma_Mult_Positive (Big_2xxSingle, Big (Double_Uns (D (1))));
-                Lemma_Ge_Mult (Big_2xxSingle * Big_2xxSingle, Big_2xxDouble,
-                               Big_2xxSingle * Big (Double_Uns (D (1))),
-                               Big_2xxDouble * Big_2xxSingle);
-                pragma Assert (Mult >= Big_2xxDouble * Big_2xxSingle);
-                Lemma_Ge_Commutation (2 ** Single_Size, Zu);
-                Lemma_Ge_Mult (Big_2xxSingle, Big (Zu), Big_2xxDouble,
-                               Big_2xxDouble * Big (Zu));
-                pragma Assert (Mult >= Big_2xxDouble * Big (Zu));
-             else
-                Lemma_Ge_Commutation (Double_Uns (D (2)), Zu);
-                pragma Assert (Mult >= Big_2xxDouble * Big (Zu));
-             end if;
- 
-             Prove_Overflow;
              Raise_Error;
  
           --  Here we are dividing at most three digits by one digit
--- 458,513 ----
*************** is
*** 2803,2820 ****
  
              Qu := Lo (T1 / Zlo) & Lo (T2 / Zlo);
              Ru := T2 rem Zlo;
- 
-             Prove_Z_Low;
           end if;
  
        --  If divisor is double digit and dividend is too large, raise error
  
        elsif (D (1) & D (2)) >= Zu then
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          Lemma_Ge_Commutation (D (1) & D (2), Zu);
-          pragma Assert
-            (Mult >= Big_2xxSingle * Big_2xxSingle * Big (D (1) & D (2)));
-          Prove_Overflow;
           Raise_Error;
  
        --  This is the complex case where we definitely have a double digit
--- 518,528 ----
*************** is
*** 2827,3315 ****
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
-          Lemma_Hi_Lo (D (1) & D (2), D (1), D (2));
-          Lemma_Lt_Commutation (D (1) & D (2), Zu);
-          pragma Assert
-            (Mult < Big_2xxDouble * Big (Zu));
- 
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
           Scale := 0;
  
-          Inter := 0;
-          pragma Assert (Big_2xx (Scale) = 1);
- 
           while Shift > 1 loop
!             pragma Loop_Invariant (Scale <= Single_Size - Shift);
!             pragma Loop_Invariant ((Hi (Zu) and Mask) /= 0);
!             pragma Loop_Invariant
!               (Mask = Shift_Left (Single_Uns'Last, Single_Size - Shift));
!             pragma Loop_Invariant (Zu = Shift_Left (abs Z, Scale));
!             pragma Loop_Invariant (Big (Zu) =
!               Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!             pragma Loop_Invariant (Inter in 0 .. Log_Single_Size - 1);
!             pragma Loop_Invariant (Shift = 2 ** (Log_Single_Size - Inter));
!             pragma Loop_Invariant (Shift mod 2 = 0);
! 
!             declare
!                --  Local ghost variables
! 
!                Shift_Prev : constant Natural := Shift with Ghost;
!                Mask_Prev  : constant Single_Uns := Mask with Ghost;
!                Zu_Prev    : constant Double_Uns := Zu with Ghost;
! 
!                --  Local lemmas
! 
!                procedure Prove_Power
!                with
!                  Ghost,
!                  Pre  => Inter in 0 .. Log_Single_Size - 1
!                    and then Shift = 2 ** (Log_Single_Size - Inter),
!                  Post => Shift / 2 = 2 ** (Log_Single_Size - (Inter + 1))
!                    and then (Shift = 2 or (Shift / 2) mod 2 = 0);
! 
!                procedure Prove_Prev_And_Mask (Prev, Mask : Single_Uns)
!                with
!                  Ghost,
!                  Pre  => Prev /= 0
!                    and then (Prev and Mask) = 0,
!                  Post => (Prev and not Mask) /= 0;
! 
!                procedure Prove_Shift_Progress
!                with
!                  Ghost,
!                  Pre  => Shift <= Single_Size / 2
!                    and then Shift_Prev = 2 * Shift
!                    and then Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift_Prev)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last,
!                                  Single_Size - Shift_Prev + Shift),
!                  Post => Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - 2 * Shift)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift);
! 
!                procedure Prove_Shifting
!                with
!                  Ghost,
!                  Pre  => Shift <= Single_Size / 2
!                    and then Zu = Shift_Left (Zu_Prev, Shift)
!                    and then Mask_Prev =
!                      Shift_Left (Single_Uns'Last, Single_Size - 2 * Shift)
!                    and then Mask =
!                      Shift_Left (Single_Uns'Last, Single_Size - Shift)
!                    and then (Hi (Zu_Prev) and Mask_Prev and not Mask) /= 0,
!                  Post => (Hi (Zu) and Mask) /= 0;
! 
!                -----------------------------
!                -- Local lemma null bodies --
!                -----------------------------
! 
!                procedure Prove_Prev_And_Mask (Prev, Mask : Single_Uns) is null;
!                procedure Prove_Power is null;
!                procedure Prove_Shifting is null;
!                procedure Prove_Shift_Progress is null;
! 
!             begin
!                pragma Assert (Mask = Shift_Left (Single_Uns'Last,
!                               Single_Size - Shift_Prev));
!                Prove_Power;
! 
!                Shift := Shift / 2;
! 
!                Inter := Inter + 1;
!                pragma Assert (Shift_Prev = 2 * Shift);
! 
!                Mask := Shift_Left (Mask, Shift);
! 
!                Lemma_Double_Shift
!                  (Single_Uns'Last, Single_Size - Shift_Prev, Shift);
!                Prove_Shift_Progress;
! 
!                if (Hi (Zu) and Mask) = 0 then
!                   Zu := Shift_Left (Zu, Shift);
! 
!                   pragma Assert ((Hi (Zu_Prev) and Mask_Prev) /= 0);
!                   pragma Assert
!                     (By ((Hi (Zu_Prev) and Mask_Prev and Mask) = 0,
!                      (Hi (Zu_Prev) and Mask) = 0
!                      and then
!                      (Hi (Zu_Prev) and Mask_Prev and Mask)
!                      = (Hi (Zu_Prev) and Mask and Mask_Prev)
!                     ));
!                   Prove_Prev_And_Mask (Hi (Zu_Prev) and Mask_Prev, Mask);
!                   Prove_Shifting;
!                   pragma Assert (Big (Zu_Prev) =
!                     Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!                   Lemma_Shift_Without_Drop (Zu_Prev, Zu, Mask, Shift);
!                   Lemma_Substitution
!                     (Big (Zu), Big_2xx (Shift),
!                      Big (Zu_Prev), Big (Double_Uns'(abs Z)) * Big_2xx (Scale),
!                      0);
!                   Lemma_Powers_Of_2 (Shift, Scale);
!                   Lemma_Substitution
!                     (Big (Zu), Big (Double_Uns'(abs Z)),
!                      Big_2xx (Shift) * Big_2xx (Scale),
!                      Big_2xx (Shift + Scale), 0);
!                   Lemma_Double_Shift (abs Z, Scale, Shift);
! 
!                   Scale := Scale + Shift;
! 
!                   pragma Assert (Zu = Shift_Left (abs Z, Scale));
!                   pragma Assert
!                     (Big (Zu) = Big (Double_Uns'(abs Z)) * Big_2xx (Scale));
!                end if;
  
!                pragma Assert
!                  (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));
-          --  We have Hi (Zu) /= 0 before normalization. The sequence of
-          --  Shift_Left operations results in the leading bit of Zu being 1 by
-          --  moving the leftmost 1-bit in Zu to leading position, thus
-          --  Zhi = Hi (Zu) >= 2 ** (Single_Size - 1) here.
- 
           --  Note that when we scale up the dividend, it still fits in four
           --  digits, since we already tested for overflow, and scaling does
           --  not change the invariant that (D (1) & D (2)) < Zu.
  
-          Lemma_Lt_Commutation (D (1) & D (2), abs Z);
-          Lemma_Big_Of_Double_Uns (Zu);
-          Lemma_Lt_Mult (Big (D (1) & D (2)),
-                         Big (Double_Uns'(abs Z)), Big_2xx (Scale),
-                         Big_2xxDouble);
- 
           T1 := Shift_Left (D (1) & D (2), Scale);
           T2 := Shift_Left (Double_Uns (D (3)), Scale);
           T3 := Shift_Left (Double_Uns (D (4)), Scale);
  
-          Prove_Dividend_Scaling;
- 
           D (1) := Hi (T1);
           D (2) := Lo (T1) or Hi (T2);
           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);
-          pragma Assert (Big_2xx (Scale) >= Big_0);
-          Lemma_Mult_Non_Negative (Mult, Big_2xx (Scale));
-          Lemma_Div_Lt (Mult * Big_2xx (Scale), Big (Zu), Big_2xxDouble);
-          Lemma_Concat_Definition (D (1), D (2));
-          Lemma_Double_Big_2xxSingle;
-          Prove_Scaled_Mult_Decomposition_Regroup24
-            (Big (Double_Uns (D (1))),
-             Big (Double_Uns (D (2))),
-             Big (Double_Uns (D (3))),
-             Big (Double_Uns (D (4))));
-          Lemma_Substitution
-            (Mult * Big_2xx (Scale), Big_2xxSingle * Big_2xxSingle,
-               Big_2xxSingle * Big (Double_Uns (D (1)))
-                             + Big (Double_Uns (D (2))),
-               Big (D (1) & D (2)),
-               Big_2xxSingle * Big (Double_Uns (D (3)))
-                             + Big (Double_Uns (D (4))));
-          pragma Assert
-            (By (Big (D (1) & D (2)) < Big (Zu),
-             Big_2xxDouble * (Big (Zu) - Big (D (1) & D (2))) >
-               Big_2xxSingle * Big (Double_Uns (D (3)))
-             + Big (Double_Uns (D (4)))));
- 
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
!          declare
!             --  Local lemmas
! 
!             procedure Prove_First_Iteration (X1, X2, X3, X4 : Single_Uns)
!             with
!               Ghost,
!               Pre  => X1 = 0,
!               Post =>
!                 Big_2xxSingle * Big3 (X1, X2, X3) + Big (Double_Uns (X4))
!                   = Big3 (X2, X3, X4);
! 
!             ---------------------------
!             -- Prove_First_Iteration --
!             ---------------------------
! 
!             procedure Prove_First_Iteration (X1, X2, X3, X4 : Single_Uns) is
!             null;
! 
!             --  Local ghost variables
! 
!             Qd1  : Single_Uns := 0 with Ghost;
!             D234 : Big_Integer with Ghost, Relaxed_Initialization;
!             D123 : constant Big_Integer := Big3 (D (1), D (2), D (3))
!               with Ghost;
!             D4   : constant Big_Integer := Big (Double_Uns (D (4)))
!               with Ghost;
! 
!          begin
!             Prove_Scaled_Mult_Decomposition_Regroup3
!               (D (1), D (2), D (3), D (4));
!             pragma Assert
!               (By (Mult * Big_2xx (Scale) = Big_2xxSingle * D123 + D4,
!                Is_Scaled_Mult_Decomposition (0, 0, D123, D4)));
! 
!             for J in 1 .. 2 loop
!                Lemma_Hi_Lo (D (J) & D (J + 1), D (J), D (J + 1));
!                pragma Assert (Big (D (J) & D (J + 1)) < Big (Zu));
! 
!                --  Compute next quotient digit. We have to divide three digits
!                --  by two digits. We estimate the quotient by dividing the
!                --  leading two digits by the leading digit. Given the scaling
!                --  we did above which ensured the first bit of the divisor is
!                --  set, this gives an estimate of the quotient that is at most
!                --  two too high.
! 
!                if D (J) > Zhi then
!                   Lemma_Lt_Commutation (Zu, D (J) & D (J + 1));
!                   pragma Assert (False);
! 
!                elsif D (J) = Zhi then
!                   Qd (J) := Single_Uns'Last;
! 
!                   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)))
!                                               + Big (Double_Uns (D (J + 1)))));
!                   pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle =
!                     Big_2xxSingle * Big_2xxSingle * Big (Double_Uns (D (J)))
!                                + Big_2xxSingle * Big (Double_Uns (D (J + 1))));
!                   pragma Assert (Big (D (J) & D (J + 1)) * Big_2xxSingle
!                                  = Big3 (D (J), D (J + 1), 0));
!                   pragma Assert ((Big (D (J) & D (J + 1)) + 1) * Big_2xxSingle
!                                  = Big3 (D (J), D (J + 1), 0) + Big_2xxSingle);
!                   Lemma_Gt_Mult (Big (Zu), Big (D (J) & D (J + 1)) + 1,
!                                  Big_2xxSingle,
!                                  Big3 (D (J), D (J + 1), D (J + 2)));
!                   Lemma_Div_Lt
!                     (Big3 (D (J), D (J + 1), D (J + 2)),
!                      Big_2xxSingle, Big (Zu));
!                   pragma Assert
!                     (By (Big (Double_Uns (Qd (J))) >=
!                        Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
!                      Big (Double_Uns (Qd (J))) = Big_2xxSingle - 1));
! 
!                else
!                   Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
! 
!                   Prove_Qd_Calculation_Part_1 (J);
!                end if;
! 
!                pragma Assert (for all K in 1 .. J => Qd (K)'Initialized);
!                Lemma_Div_Mult (Big3 (D (J), D (J + 1), D (J + 2)), Big (Zu));
!                Lemma_Gt_Mult
!                  (Big (Double_Uns (Qd (J))),
!                   Big3 (D (J), D (J + 1), D (J + 2)) / Big (Zu),
!                   Big (Zu), Big3 (D (J), D (J + 1), D (J + 2)) - Big (Zu));
! 
!                --  Compute amount to subtract
! 
!                T1 := Qd (J) * Zlo;
!                T2 := Qd (J) * Zhi;
!                S3 := Lo (T1);
!                T3 := Hi (T1) + Lo (T2);
!                S2 := Lo (T3);
!                S1 := Hi (T3) + Hi (T2);
! 
!                Prove_Multiplication (Qd (J));
! 
!                --  Adjust quotient digit if it was too high
! 
!                --  We use the version of the algorithm in the 2nd Edition
!                --  of "The Art of Computer Programming". This had a bug not
!                --  discovered till 1995, see Vol 2 errata:
!                --     http://www-cs-faculty.stanford.edu/~uno/err2-2e.ps.gz.
!                --  Under rare circumstances the expression in the test could
!                --  overflow. This version was further corrected in 2005, see
!                --  Vol 2 errata:
!                --     http://www-cs-faculty.stanford.edu/~uno/all2-pre.ps.gz.
!                --  This implementation is not impacted by these bugs, due
!                --  to the use of a word-size comparison done in function Le3
!                --  instead of a comparison on two-word integer quantities in
!                --  the original algorithm.
! 
!                Lemma_Hi_Lo_3 (Zu, Zhi, Zlo);
! 
!                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));
!                   pragma Loop_Invariant
!                     (Big3 (S1, S2, S3) > Big3 (D (J), D (J + 1), D (J + 2)));
!                   pragma Assert (Big3 (S1, S2, S3) > 0);
!                   if Qd (J) = 0 then
!                      pragma Assert (Big3 (S1, S2, S3) = 0);
!                      pragma Assert (False);
!                   end if;
!                   Lemma_Ge_Commutation (Double_Uns (Qd (J)), 1);
!                   Lemma_Ge_Mult
!                     (Big (Double_Uns (Qd (J))), 1, Big (Zu), Big (Zu));
! 
!                   Sub3 (S1, S2, S3, 0, Zhi, Zlo);
! 
!                   pragma Assert
!                     (Big3 (S1, S2, S3) >
!                        Big3 (D (J), D (J + 1), D (J + 2)) - Big (Zu));
!                   Lemma_Subtract_Commutation (Double_Uns (Qd (J)), 1);
!                   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)) =
!                     Big_2xxSingle
!                       * Big_2xxSingle * Big (Double_Uns (D (J)))
!                       + Big_2xxSingle * Big (Double_Uns (D (J + 1)))
!                                       + Big (Double_Uns (D (J + 2))));
!                   pragma Assert (Big_2xxSingle >= 0);
!                   Lemma_Big_Of_Double_Uns_Of_Single_Uns (D (J + 1));
!                   pragma Assert (Big (Double_Uns (D (J + 1))) >= 0);
!                   Lemma_Mult_Non_Negative
!                     (Big_2xxSingle, Big (Double_Uns (D (J + 1))));
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) >=
!                        Big_2xxSingle * Big_2xxSingle
!                        * Big (Double_Uns (D (J))));
!                   Lemma_Ge_Commutation (Double_Uns (D (J)), Double_Uns'(1));
!                   Lemma_Ge_Mult (Big (Double_Uns (D (J))),
!                                  Big (Double_Uns'(1)),
!                                  Big_2xxDouble,
!                                  Big (Double_Uns'(1)) * Big_2xxDouble);
!                   pragma Assert
!                     (Big_2xxDouble * Big (Double_Uns'(1)) = Big_2xxDouble);
!                   pragma Assert
!                     (Big3 (D (J), D (J + 1), D (J + 2)) >= Big_2xxDouble);
!                   pragma Assert (False);
!                end if;
  
!                if J = 1 then
!                   Qd1 := Qd (1);
!                   D234 := Big3 (D (2), D (3), D (4));
!                   pragma Assert (D4 = Big (Double_Uns (D (4))));
!                   Lemma_Substitution
!                     (Mult * Big_2xx (Scale), Big_2xxSingle, D123,
!                      Big3 (D (1), D (2), D (3)) + Big3 (S1, S2, S3),
!                      Big (Double_Uns (D (4))));
!                   Prove_First_Iteration (D (1), D (2), D (3), D (4));
!                   Lemma_Substitution (Mult * Big_2xx (Scale), Big_2xxSingle,
!                                       Big3 (S1, S2, S3),
!                                       Big (Double_Uns (Qd1)) * Big (Zu),
!                                       D234);
!                else
!                   pragma Assert (Qd1 = Qd (1));
!                   pragma Assert
!                     (By (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))),
!                      By (Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + Big3 (D (2), D (3), D (4)) + Big3 (S1, S2, S3),
!                      Mult * Big_2xx (Scale) =
!                        Big_2xxSingle * Big (Double_Uns (Qd (1))) * Big (Zu)
!                        + D234)));
  
!                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
           --  scaled division is in D3&D4. To get the remainder for the
--- 535,621 ----
           --  First normalize the divisor so that it has the leading bit on.
           --  We do this by finding the appropriate left shift amount.
  
           Shift := Single_Size;
           Mask  := Single_Uns'Last;
           Scale := 0;
  
           while Shift > 1 loop
!             Shift := Shift / 2;
!             Mask  := Shift_Left (Mask, Shift);
  
!             if (Hi (Zu) and Mask) = 0 then
!                Zu    := Shift_Left (Zu, Shift);
!                Scale := Scale + Shift;
!             end if;
           end loop;
  
           Zhi := Hi (Zu);
           Zlo := Lo (Zu);
  
           --  Note that when we scale up the dividend, it still fits in four
           --  digits, since we already tested for overflow, and scaling does
           --  not change the invariant that (D (1) & D (2)) < Zu.
  
           T1 := Shift_Left (D (1) & D (2), Scale);
           T2 := Shift_Left (Double_Uns (D (3)), Scale);
           T3 := Shift_Left (Double_Uns (D (4)), Scale);
  
           D (1) := Hi (T1);
           D (2) := Lo (T1) or Hi (T2);
           D (3) := Lo (T2) or Hi (T3);
           D (4) := Lo (T3);
  
           --  Loop to compute quotient digits, runs twice for Qd (1) and Qd (2)
  
!          for J in 1 .. 2 loop
!             --  Compute next quotient digit. We have to divide three digits
!             --  by two digits. We estimate the quotient by dividing the
!             --  leading two digits by the leading digit. Given the scaling
!             --  we did above which ensured the first bit of the divisor is
!             --  set, this gives an estimate of the quotient that is at most
!             --  two too high.
  
!             pragma Assert (D (J) <= Zhi);
  
!             if D (J) = Zhi then
!                Qd (J) := Single_Uns'Last;
!             else
!                Qd (J) := Lo ((D (J) & D (J + 1)) / Zhi);
!             end if;
  
!             --  Compute amount to subtract
  
!             T1 := Qd (J) * Zlo;
!             T2 := Qd (J) * Zhi;
!             S3 := Lo (T1);
!             T3 := Hi (T1) + Lo (T2);
!             S2 := Lo (T3);
!             S1 := Hi (T3) + Hi (T2);
  
!             --  Adjust quotient digit if it was too high
  
!             --  We use the version of the algorithm in the 2nd Edition
!             --  of "The Art of Computer Programming". This had a bug not
!             --  discovered till 1995, see Vol 2 errata:
!             --     http://www-cs-faculty.stanford.edu/~uno/err2-2e.ps.gz.
!             --  Under rare circumstances the expression in the test could
!             --  overflow. This version was further corrected in 2005, see
!             --  Vol 2 errata:
!             --     http://www-cs-faculty.stanford.edu/~uno/all2-pre.ps.gz.
!             --  This implementation is not impacted by these bugs, due
!             --  to the use of a word-size comparison done in function Le3
!             --  instead of a comparison on two-word integer quantities in
!             --  the original algorithm.
  
!             while not Le3 (S1, S2, S3, D (J), D (J + 1), D (J + 2)) loop
!                Sub3 (S1, S2, S3, 0, Zhi, Zlo);
!                Qd (J) := Qd (J) - 1;
              end loop;
  
!             --  Now subtract S1&S2&S3 from D1&D2&D3 ready for next step
! 
!             Sub3 (D (J), D (J + 1), D (J + 2), S1, S2, S3);
!          end loop;
  
           --  The two quotient digits are now set, and the remainder of the
           --  scaled division is in D3&D4. To get the remainder for the
*************** is
*** 3321,3591 ****
           Qu := Qd (1) & Qd (2);
           Ru := D (3) & D (4);
  
-          Lemma_Hi_Lo (Qu, Qd (1), Qd (2));
-          Lemma_Hi_Lo (Ru, D (3), D (4));
-          Lemma_Substitution
-            (Mult * Big_2xx (Scale), Big (Zu),
-             Big_2xxSingle * Big (Double_Uns (Qd (1)))
-               + Big (Double_Uns (Qd (2))),
-             Big (Qu), Big (Ru));
-          Prove_Rescaling;
- 
           Ru := Shift_Right (Ru, Scale);
  
!          declare
!             --  Local lemma required to help automatic provers
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             with
!               Ghost,
!               Pre  => X = Y,
!               Post => X / Z = Y / Z;
! 
!             procedure Lemma_Div_Congruent
!               (X, Y : Big_Natural;
!                Z    : Big_Positive)
!             is null;
! 
!          begin
!             Lemma_Shift_Right (Zu, Scale);
!             Lemma_Div_Congruent (Big (Zu),
!                                  Big (Double_Uns'(abs Z)) * Big_2xx (Scale),
!                                  Big_2xx (Scale));
! 
!             Zu := Shift_Right (Zu, Scale);
! 
!             Lemma_Simplify (Big (Double_Uns'(abs Z)), Big_2xx (Scale));
!             pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)));
!          end;
        end if;
  
-       pragma Assert (Big (Ru) = abs Big_R);
-       pragma Assert (Big (Qu) = abs Quot);
-       pragma Assert (Big (Zu) = Big (Double_Uns'(abs Z)));
- 
        --  Deal with rounding case
  
        if Round then
-          Prove_Rounding_Case;
- 
           if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2) then
-             pragma Assert (abs Big_Q = Big (Qu) + 1);
- 
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Double_Uns'Last then
-                Prove_Q_Too_Big;
                 Raise_Error;
              end if;
  
-             Lemma_Add_One (Qu);
- 
              Qu := Qu + Double_Uns'(1);
           end if;
        end if;
  
-       pragma Assert (Big (Qu) = abs Big_Q);
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
-          Prove_Positive_Dividend;
- 
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
-          Prove_Negative_Dividend;
- 
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
- 
-       Prove_Sign_R;
-       Prove_Signs;
     end Scaled_Divide;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_Cyclomatic_Complexity");
  
     ----------
     -- Sub3 --
     ----------
  
     procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns) is
- 
-       --  Local ghost variables
- 
-       XX1 : constant Single_Uns := X1 with Ghost;
-       XX2 : constant Single_Uns := X2 with Ghost;
-       XX3 : constant Single_Uns := X3 with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Lemma_Add3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X1 <= Single_Uns'Last - Y1
-           and then X2 <= Single_Uns'Last - Y2
-           and then X3 <= Single_Uns'Last - Y3,
-         Post => Big3 (X1 + Y1, X2 + Y2, X3 + Y3)
-               = Big3 (X1, X2, X3) + Big3 (Y1, Y2, Y3);
- 
-       procedure Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => Big3 (X1, X2, X3) >= Big3 (Y1, Y2, Y3),
-         Post => X1 > Y1
-           or else (X1 = Y1 and then X2 > Y2)
-           or else (X1 = Y1 and then X2 = Y2 and then X3 >= Y3);
- 
-       procedure Lemma_Sub3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X1 >= Y1 and then X2 >= Y2 and then X3 >= Y3,
-         Post => Big3 (X1 - Y1, X2 - Y2, X3 - Y3)
-               = Big3 (X1, X2, X3) - Big3 (Y1, Y2, Y3);
- 
-       procedure Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X2 < Y2,
-         Post => Big3 (X1, X2 - Y2, X3)
-           = Big3 (X1, X2, X3) + Big3 (Single_Uns'(1), 0, 0) - Big3 (0, Y2, 0);
- 
-       procedure Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3 : Single_Uns)
-       with
-         Ghost,
-         Pre  => X3 < Y3,
-         Post => Big3 (X1, X2, X3 - Y3)
-           = Big3 (X1, X2, X3) + Big3 (Single_Uns'(0), 1, 0) - Big3 (0, 0, Y3);
- 
-       -------------------------
-       -- Lemma_Add3_No_Carry --
-       -------------------------
- 
-       procedure Lemma_Add3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is
-       begin
-          Lemma_Add_Commutation (Double_Uns (X1), Y1);
-          Lemma_Add_Commutation (Double_Uns (X2), Y2);
-          Lemma_Add_Commutation (Double_Uns (X3), Y3);
-       end Lemma_Add3_No_Carry;
- 
-       ---------------------
-       -- Lemma_Ge_Expand --
-       ---------------------
- 
-       procedure Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is null;
- 
-       -------------------------
-       -- Lemma_Sub3_No_Carry --
-       -------------------------
- 
-       procedure Lemma_Sub3_No_Carry (X1, X2, X3, Y1, Y2, Y3 : Single_Uns) is
-       begin
-          Lemma_Subtract_Commutation (Double_Uns (X1), Double_Uns (Y1));
-          Lemma_Subtract_Commutation (Double_Uns (X2), Double_Uns (Y2));
-          Lemma_Subtract_Commutation (Double_Uns (X3), Double_Uns (Y3));
-       end Lemma_Sub3_No_Carry;
- 
-       ----------------------------
-       -- Lemma_Sub3_With_Carry2 --
-       ----------------------------
- 
-       procedure Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2 : Single_Uns) is
-          pragma Unreferenced (X1, X3);
-       begin
-          Lemma_Add_Commutation
-            (Double_Uns'(2 ** Single_Size) - Double_Uns (Y2), X2);
-          Lemma_Subtract_Commutation
-            (Double_Uns'(2 ** Single_Size), Double_Uns (Y2));
-       end Lemma_Sub3_With_Carry2;
- 
-       ----------------------------
-       -- Lemma_Sub3_With_Carry3 --
-       ----------------------------
- 
-       procedure Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3 : Single_Uns) is
-          pragma Unreferenced (X1, X2);
-       begin
-          Lemma_Add_Commutation
-            (Double_Uns'(2 ** Single_Size) - Double_Uns (Y3), X3);
-          Lemma_Subtract_Commutation
-            (Double_Uns'(2 ** Single_Size), Double_Uns (Y3));
-       end Lemma_Sub3_With_Carry3;
- 
-    --  Start of processing for Sub3
- 
     begin
-       Lemma_Ge_Expand (X1, X2, X3, Y1, Y2, Y3);
- 
        if Y3 > X3 then
           if X2 = 0 then
              pragma Assert (X1 >= 1);
-             Lemma_Sub3_No_Carry (X1, X2, X3, 1, 0, 0);
  
              X1 := X1 - 1;
- 
-             pragma Assert
-               (Big3 (X1, X2, X3) =
-                  Big3 (XX1, XX2, XX3) - Big3 (Single_Uns'(1), 0, 0));
-             pragma Assert
-               (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-                - Big3 (Single_Uns'(0), Single_Uns'Last, 0)
-                - Big3 (Single_Uns'(0), 1, 0));
-             Lemma_Add3_No_Carry (X1, X2, X3, 0, Single_Uns'Last, 0);
-          else
-             Lemma_Sub3_No_Carry (X1, X2, X3, 0, 1, 0);
           end if;
  
           X2 := X2 - 1;
- 
-          pragma Assert
-            (Big3 (X1, X2, X3) =
-               Big3 (XX1, XX2, XX3) - Big3 (Single_Uns'(0), 1, 0));
-          Lemma_Sub3_With_Carry3 (X1, X2, X3, Y3);
-       else
-          Lemma_Sub3_No_Carry (X1, X2, X3, 0, 0, Y3);
        end if;
  
        X3 := X3 - Y3;
  
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (0, 0, Y3));
- 
        if Y2 > X2 then
           pragma Assert (X1 >= 1);
-          Lemma_Sub3_No_Carry (X1, X2, X3, 1, 0, 0);
  
           X1 := X1 - 1;
- 
-          pragma Assert
-            (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-             - Big3 (0, 0, Y3) - Big3 (Single_Uns'(1), 0, 0));
-          Lemma_Sub3_With_Carry2 (X1, X2, X3, Y2);
-       else
-          Lemma_Sub3_No_Carry (X1, X2, X3, 0, Y2, 0);
        end if;
  
        X2 := X2 - Y2;
- 
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (0, Y2, Y3));
-       pragma Assert (X1 >= Y1);
-       Lemma_Sub3_No_Carry (X1, Y2, X3, Y1, 0, 0);
- 
        X1 := X1 - Y1;
- 
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3)
-          - Big3 (0, Y2, Y3) - Big3 (Y1, 0, 0));
-       Lemma_Add3_No_Carry (0, Y2, Y3, Y1, 0, 0);
-       pragma Assert
-         (Big3 (X1, X2, X3) = Big3 (XX1, XX2, XX3) - Big3 (Y1, Y2, Y3));
     end Sub3;
  
     -------------------------------
--- 627,694 ----
           Qu := Qd (1) & Qd (2);
           Ru := D (3) & D (4);
  
           Ru := Shift_Right (Ru, Scale);
  
!          Zu := Shift_Right (Zu, Scale);
        end if;
  
        --  Deal with rounding case
  
        if Round then
           if Ru > (Zu - Double_Uns'(1)) / Double_Uns'(2) then
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Double_Uns'Last then
                 Raise_Error;
              end if;
  
              Qu := Qu + Double_Uns'(1);
           end if;
        end if;
  
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
     end Scaled_Divide;
  
     ----------
     -- Sub3 --
     ----------
  
     procedure Sub3 (X1, X2, X3 : in out Single_Uns; Y1, Y2, Y3 : Single_Uns) is
     begin
        if Y3 > X3 then
           if X2 = 0 then
              pragma Assert (X1 >= 1);
  
              X1 := X1 - 1;
           end if;
  
           X2 := X2 - 1;
        end if;
  
        X3 := X3 - Y3;
  
        if Y2 > X2 then
           pragma Assert (X1 >= 1);
  
           X1 := X1 - 1;
        end if;
  
        X2 := X2 - Y2;
        X1 := X1 - Y1;
     end Sub3;
  
     -------------------------------
*************** is
*** 3594,3724 ****
  
     function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) - To_Uns (Y));
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_X
-       with
-         Ghost,
-         Pre  => X < 0 and then (Y <= 0 or else R < 0),
-         Post => R = X - Y;
- 
-       procedure Prove_Non_Negative_X
-       with
-         Ghost,
-         Pre  => X >= 0 and then (Y > 0 or else R >= 0),
-         Post => R = X - Y;
- 
-       procedure Prove_Overflow_Case
-       with
-         Ghost,
-         Pre  =>
-           (if X >= 0 then Y <= 0 and then R < 0
-                      else Y > 0 and then R >= 0),
-         Post => not In_Double_Int_Range (Big (X) - Big (Y));
- 
-       ----------------------
-       -- Prove_Negative_X --
-       ----------------------
- 
-       procedure Prove_Negative_X is
-       begin
-          if X = Double_Int'First then
-             if Y = Double_Int'First or else Y > 0 then
-                null;
-             else
-                pragma Assert
-                  (To_Uns (X) - To_Uns (Y) =
-                     2 ** (Double_Size - 1) + Double_Uns (-Y));
-             end if;
- 
-          elsif Y >= 0 or else Y = Double_Int'First then
-             null;
- 
-          else
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = -Double_Uns (-X) + Double_Uns (-Y));
-          end if;
-       end Prove_Negative_X;
- 
-       --------------------------
-       -- Prove_Non_Negative_X --
-       --------------------------
- 
-       procedure Prove_Non_Negative_X is
-       begin
-          if Y > 0 then
-             declare
-                Ru : constant Double_Uns := To_Uns (X) - To_Uns (Y);
-             begin
-                pragma Assert (Ru = Double_Uns (X) - Double_Uns (Y));
-                if Ru < 2 ** (Double_Size - 1) then  --  R >= 0
-                   pragma Assert (To_Uns (Y) <= To_Uns (X));
-                   Lemma_Subtract_Double_Uns (X => Y, Y => X);
-                   pragma Assert (Ru = Double_Uns (X - Y));
- 
-                elsif Ru = 2 ** (Double_Size - 1) then
-                   pragma Assert (Double_Uns (Y) < 2 ** (Double_Size - 1));
-                   pragma Assert (False);
- 
-                else
-                   pragma Assert
-                     (R = -Double_Int (-(Double_Uns (X) - Double_Uns (Y))));
-                   pragma Assert
-                     (R = -Double_Int (-Double_Uns (X) + Double_Uns (Y)));
-                   pragma Assert
-                     (R = -Double_Int (Double_Uns (Y) - Double_Uns (X)));
-                end if;
-             end;
- 
-          elsif Y = Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) =
-                  Double_Uns (X) - 2 ** (Double_Size - 1));
-             pragma Assert (False);
- 
-          else
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = Double_Uns (X) + Double_Uns (-Y));
-          end if;
-       end Prove_Non_Negative_X;
- 
-       -------------------------
-       -- Prove_Overflow_Case --
-       -------------------------
- 
-       procedure Prove_Overflow_Case is
-       begin
-          if X >= 0 and then Y /= Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = Double_Uns (X) + Double_Uns (-Y));
- 
-          elsif X < 0 and then X /= Double_Int'First then
-             pragma Assert
-               (To_Uns (X) - To_Uns (Y) = -Double_Uns (-X) - Double_Uns (Y));
-          end if;
-       end Prove_Overflow_Case;
- 
-    --  Start of processing for Subtract_With_Ovflo_Check
- 
     begin
        if X >= 0 then
           if Y > 0 or else R >= 0 then
-             Prove_Non_Negative_X;
              return R;
           end if;
  
        else -- X < 0
           if Y <= 0 or else R < 0 then
-             Prove_Negative_X;
              return R;
           end if;
        end if;
  
-       Prove_Overflow_Case;
        Raise_Error;
     end Subtract_With_Ovflo_Check;
  
     ----------------
     -- To_Neg_Int --
     ----------------
--- 697,731 ----
  
     function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int is
        R : constant Double_Int := To_Int (To_Uns (X) - To_Uns (Y));
     begin
        if X >= 0 then
           if Y > 0 or else R >= 0 then
              return R;
           end if;
  
        else -- X < 0
           if Y <= 0 or else R < 0 then
              return R;
           end if;
        end if;
  
        Raise_Error;
     end Subtract_With_Ovflo_Check;
  
+    -------------------------------
+    -- Subtract_With_Ovflo_Check --
+    -------------------------------
+ 
+    function Subtract_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns is
+       R : constant Double_Uns := X - Y;
+    begin
+       if R > X then
+          Raise_Error;
+       end if;
+ 
+       return R;
+    end Subtract_With_Ovflo_Check;
+ 
     ----------------
     -- To_Neg_Int --
     ----------------
*************** is
*** 3752,3756 ****
  
     pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
  end System.Arith_Double;
- 
- pragma Annotate (Gnatcheck, Exempt_Off, "Metrics_LSLOC");
--- 759,761 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-aridou.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aridou.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-aridou.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-aridou.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,40 ****
  --  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;
- 
  generic
  
     type Double_Int is range <>;
--- 33,38 ----
*************** generic
*** 55,105 ****
  package System.Arith_Double
    with Pure, SPARK_Mode
  is
!    --  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);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    subtype Big_Natural is BI_Ghost.Big_Natural with Ghost;
!    subtype Big_Positive is BI_Ghost.Big_Positive with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is
!      new BI_Ghost.Signed_Conversions (Int => Double_Int);
! 
!    function Big (Arg : Double_Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
! 
!    package Unsigned_Conversion is
!      new BI_Ghost.Unsigned_Conversions (Int => Double_Uns);
! 
!    function Big (Arg : Double_Uns) return Big_Integer is
!      (Unsigned_Conversion.To_Big_Integer (Arg))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
! 
!    function In_Double_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Double_Int'First), Big (Double_Int'Last)))
!    with
!      Ghost,
!      Annotate => (GNATprove, Inline_For_Proof);
  
!    function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with
!      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.
     --
--- 53,63 ----
  package System.Arith_Double
    with Pure, SPARK_Mode
  is
!    ----------------
!    -- Double_Int --
!    ----------------
  
!    function Add_With_Ovflo_Check (X, Y : Double_Int) return Double_Int;
     --  Raises Constraint_Error if sum of operands overflows Double_Int,
     --  otherwise returns this sum of operands as Double_Int.
     --
*************** is
*** 114,123 ****
     --  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.
     --
--- 72,78 ----
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check (X, Y : Double_Int) return Double_Int;
     --  Raises Constraint_Error if difference of operands overflows Double_Int,
     --  otherwise returns this difference of operands as Double_Int.
     --
*************** is
*** 127,136 ****
     --  overflow.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with
!      Pre  => In_Double_Int_Range (Big (X) * Big (Y)),
!      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.
--- 82,88 ----
     --  overflow.
  
     function Multiply_With_Ovflo_Check (X, Y : Double_Int) return Double_Int
!    with Convention => C;
     --  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.
*************** is
*** 140,179 ****
     --  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))
-         or else Y = Big (Double_Int'(0))
-         or else (X < Big (Double_Int'(0))) = (Y < Big (Double_Int'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Double_Int'(1))) / Big (Double_Int'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Double_Int'(1))
-         else Q - Big (Double_Int'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Double_Int_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       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``.
     --
--- 92,101 ----
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
     procedure Scaled_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
*************** is
*** 204,225 ****
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Double_Int_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       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``.
--- 126,132 ----
     procedure Double_Divide
       (X, Y, Z : Double_Int;
        Q, R    : out Double_Int;
!       Round   : Boolean);
     --  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``.
*************** is
*** 242,245 ****
--- 149,184 ----
     --  Double_Uns division is then performed, the result is rounded, its sign
     --  is corrected, and then returned.
  
+    ----------------
+    -- Double_Uns --
+    ----------------
+ 
+    function Add_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns;
+    --  Raises Constraint_Error if sum of operands overflows Double_Uns,
+    --  otherwise returns this sum of operands as Double_Uns.
+    --
+    --  The sum of ``X`` and ``Y`` is first computed. If the result is
+    --  lower than the first operand, then an overflow occurred and the
+    --  exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Subtract_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns;
+    --  Raises Constraint_Error if difference of operands overflows Double_Uns,
+    --  otherwise returns this difference of operands as Double_Int.
+    --
+    --  The subtraction of ``X`` and ``Y`` is first computed. If the result
+    --  is greater than the first operand, then an overflow occurred and the
+    --  exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Multiply_With_Ovflo_Check (X, Y : Double_Uns) return Double_Uns
+    with Convention => C;
+    --  Raises Constraint_Error if product of operands overflows Double_Uns,
+    --  otherwise returns this product of operands as Double_Uns. The code
+    --  generator may also generate direct calls to this routine.
+    --
+    --  The multiplication is done using pencil and paper algorithm applied to
+    --  Single_Uns, then the correct Double_Uns value is returned. Overflow
+    --  check is performed by looking at higher digits.
+ 
  end System.Arith_Double;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit128.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-arit128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Arith_Double;
*** 34,41 ****
  package body System.Arith_128
    with SPARK_Mode
  is
- 
-    subtype Uns128 is Interfaces.Unsigned_128;
     subtype Uns64  is Interfaces.Unsigned_64;
  
     use Interfaces;
--- 34,39 ----
*************** is
*** 63,66 ****
--- 61,73 ----
        Round   : Boolean)
       renames Impl.Double_Divide;
  
+    function Uns_Add_With_Ovflo_Check128 (X, Y : Uns128) return Uns128
+      renames Impl.Add_With_Ovflo_Check;
+ 
+    function Uns_Subtract_With_Ovflo_Check128 (X, Y : Uns128) return Uns128
+      renames Impl.Subtract_With_Ovflo_Check;
+ 
+    function Uns_Multiply_With_Ovflo_Check128 (X, Y : Uns128) return Uns128
+      renames Impl.Multiply_With_Ovflo_Check;
+ 
  end System.Arith_128;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-arit128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,137 ****
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
- --  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.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Interfaces;
  
  package System.Arith_128
    with Pure, SPARK_Mode
  is
!    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
!    use type Interfaces.Integer_128;
  
     subtype Int128 is Interfaces.Integer_128;
  
!    subtype Big_Integer is
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
!    with Ghost;
! 
!    package Signed_Conversion is new
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
!      (Int => Int128);
! 
!    function Big (Arg : Int128) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int128_Range (Arg : Big_Integer) return Boolean is
!      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
!        (Arg, Big (Int128'First), Big (Int128'Last)))
!    with Ghost;
! 
!    function Add_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) + Big (Y)),
!      Post => Add_With_Ovflo_Check128'Result = X + Y;
     --  Raises Constraint_Error if sum of operands overflows 128 bits,
     --  otherwise returns the 128-bit signed integer sum.
  
!    function Subtract_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) - Big (Y)),
!      Post => Subtract_With_Ovflo_Check128'Result = X - Y;
     --  Raises Constraint_Error if difference of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer difference.
  
!    function Multiply_With_Ovflo_Check128 (X, Y : Int128) return Int128
!    with
!      Pre  => In_Int128_Range (Big (X) * Big (Y)),
!      Post => Multiply_With_Ovflo_Check128'Result = X * Y;
     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))
-         or else Y = Big (Int128'(0))
-         or else (X < Big (Int128'(0))) = (Y < Big (Int128'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Int128'(1))) / Big (Int128'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Int128'(1))
-         else Q - Big (Int128'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int128_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       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 128 bits. Round indicates if
--- 36,70 ----
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
  with Interfaces;
  
  package System.Arith_128
    with Pure, SPARK_Mode
  is
!    ------------
!    -- Int128 --
!    ------------
  
     subtype Int128 is Interfaces.Integer_128;
  
!    function Add_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     --  Raises Constraint_Error if sum of operands overflows 128 bits,
     --  otherwise returns the 128-bit signed integer sum.
  
!    function Subtract_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     --  Raises Constraint_Error if difference of operands overflows 128
     --  bits, otherwise returns the 128-bit signed integer difference.
  
!    function Multiply_With_Ovflo_Check128 (X, Y : Int128) return Int128;
     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.
  
     procedure Scaled_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean);
     --  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 128 bits. Round indicates if
*************** is
*** 143,164 ****
     procedure Double_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Int128_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       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 128 bits. Round indicates if the
--- 76,82 ----
     procedure Double_Divide128
       (X, Y, Z : Int128;
        Q, R    : out Int128;
!       Round   : Boolean);
     --  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 128 bits. Round indicates if the
*************** is
*** 167,170 ****
--- 85,123 ----
     --  then Q is the rounded quotient. The remainder R is not affected by the
     --  setting of the Round flag.
  
+    ------------
+    -- Uns128 --
+    ------------
+ 
+    subtype Uns128 is Interfaces.Unsigned_128;
+ 
+    function Uns_Add_With_Ovflo_Check128 (X, Y : Uns128) return Uns128;
+    --  Raises Constraint_Error if sum of operands overflows 128 bits,
+    --  otherwise returns the 128-bit unsigned integer sum.
+    --
+    --  The sum of ``X`` and ``Y`` is first computed. If the result is
+    --  lower than the first operand, then an overflow occurred and the
+    --  exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Uns_Subtract_With_Ovflo_Check128 (X, Y : Uns128) return Uns128;
+    --  Raises Constraint_Error if difference of operands overflows 128 bits,
+    --  otherwise returns the 128-bit unsigned integer difference.
+    --
+    --  The subtraction of ``X`` and ``Y`` is first computed. If the result
+    --  is greater than the first operand, then an overflow occurred and the
+    --  exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Uns_Multiply_With_Ovflo_Check128 (X, Y : Uns128) return Uns128;
+    pragma Export (C, Uns_Multiply_With_Ovflo_Check128, "__gnat_uns_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.
+    --
+    --  The multiplication is done using pencil and paper algorithm using base
+    --  2**32. The multiplication is done on unsigned values, then the correct
+    --  unsigned value is returned. Overflow check is performed by looking at
+    --  higher digits.
+ 
  end System.Arith_128;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-arit32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,53 ****
  --  would be too costly otherwise. This is enforced by setting the assertion
  --  policy to Ignore.
  
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Ada.Unchecked_Conversion;
  
  package body System.Arith_32
    with SPARK_Mode
  is
- 
     pragma Suppress (Overflow_Check);
     pragma Suppress (Range_Check);
  
--- 34,44 ----
*************** is
*** 58,90 ****
  
     function To_Int is new Ada.Unchecked_Conversion (Uns32, Int32);
  
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns32);
- 
-    function Big (Arg : Uns32) return Big_Integer is
-      (Unsigned_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    package Unsigned_Conversion_64 is new Unsigned_Conversions (Int => Uns64);
- 
-    function Big (Arg : Uns64) return Big_Integer is
-      (Unsigned_Conversion_64.To_Big_Integer (Arg))
-    with Ghost;
- 
-    pragma Warnings
-      (Off, "non-preelaborable call not allowed in preelaborated unit",
-       Reason => "Ghost code is not compiled");
-    Big_0 : constant Big_Integer :=
-      Big (Uns32'(0))
-    with Ghost;
-    Big_2xx32 : constant Big_Integer :=
-      Big (Uns32'(2 ** 32 - 1)) + 1
-    with Ghost;
-    Big_2xx64 : constant Big_Integer :=
-      Big (Uns64'(2 ** 64 - 1)) + 1
-    with Ghost;
-    pragma Warnings
-      (On, "non-preelaborable call not allowed in preelaborated unit");
- 
     -----------------------
     -- Local Subprograms --
     -----------------------
--- 49,54 ----
*************** is
*** 96,261 ****
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Int32'First.
  
-    function Lo (A : Uns64) return Uns32 is (Uns32 (A and (2 ** 32 - 1)));
-    --  Low order half of 64-bit value
- 
     function Hi (A : Uns64) return Uns32 is (Uns32 (Shift_Right (A, 32)));
     --  High order half of 64-bit value
  
!    function To_Neg_Int (A : Uns32) return Int32
!    with
!      Pre  => In_Int32_Range (-Big (A)),
!      Post => Big (To_Neg_Int'Result) = -Big (A);
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
     --  raised.
  
!    function To_Pos_Int (A : Uns32) return Int32
!    with
!      Pre  => In_Int32_Range (Big (A)),
!      Post => Big (To_Pos_Int'Result) = Big (A);
     --  Convert to positive integer equivalent. If the input is in the range
     --  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
  
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    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
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X / Y) = abs X / abs Y;
- 
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Post => abs (X * Y) = abs X * abs Y;
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => abs (X rem Y) = (abs X) rem (abs Y);
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns64)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Z > 0 and then X >= Y * Z,
-      Post => X / Z >= Y;
- 
-    procedure Lemma_Ge_Commutation (A, B : Uns32)
-    with
-      Ghost,
-      Pre  => A >= B,
-      Post => Big (A) >= Big (B);
- 
-    procedure Lemma_Hi_Lo (Xu : Uns64; Xhi, Xlo : Uns32)
-    with
-      Ghost,
-      Pre  => Xhi = Hi (Xu) and Xlo = Lo (Xu),
-      Post => Big (Xu) = Big_2xx32 * Big (Xhi) + Big (Xlo);
- 
-    procedure Lemma_Mult_Commutation (X, Y, Z : Uns64)
-    with
-      Ghost,
-      Pre  => Big (X) * Big (Y) < Big_2xx64 and then Z = X * Y,
-      Post => Big (X) * Big (Y) = Big (Z);
- 
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X >= Big_0 and then Y >= Big_0)
-        or else (X <= Big_0 and then Y <= Big_0),
-      Post => X * Y >= Big_0;
- 
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => (X <= Big_0 and then Y >= Big_0)
-        or else (X >= Big_0 and then Y <= Big_0),
-      Post => X * Y <= Big_0;
- 
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => X rem Y = X rem (-Y);
- 
-    procedure Lemma_Not_In_Range_Big2xx32
-    with
-      Post => not In_Int32_Range (Big_2xx32)
-        and then not In_Int32_Range (-Big_2xx32);
- 
-    procedure Lemma_Rem_Commutation (X, Y : Uns64)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) rem Big (Y) = Big (X rem Y);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Abs_Commutation (X : Int32) is null;
-    procedure Lemma_Abs_Div_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Abs_Mult_Commutation (X, Y : Big_Integer) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns64) is null;
-    procedure Lemma_Div_Ge (X, Y, Z : Big_Integer) is null;
-    procedure Lemma_Ge_Commutation (A, B : Uns32) is null;
-    procedure Lemma_Mult_Commutation (X, Y, Z : Uns64) is null;
-    procedure Lemma_Mult_Non_Negative (X, Y : Big_Integer) is null;
-    procedure Lemma_Mult_Non_Positive (X, Y : Big_Integer) is null;
-    procedure Lemma_Neg_Rem (X, Y : Big_Integer) is null;
-    procedure Lemma_Not_In_Range_Big2xx32 is null;
-    procedure Lemma_Rem_Commutation (X, Y : Uns64) is null;
- 
-    -------------------------------
-    -- Lemma_Abs_Rem_Commutation --
-    -------------------------------
- 
-    procedure Lemma_Abs_Rem_Commutation (X, Y : Big_Integer) is
-    begin
-       if Y < 0 then
-          Lemma_Neg_Rem (X, Y);
-          if X < 0 then
-             pragma Assert (X rem Y = -((-X) rem (-Y)));
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          else
-             pragma Assert (abs (X rem Y) = (abs X) rem (abs Y));
-          end if;
-       end if;
-    end Lemma_Abs_Rem_Commutation;
- 
-    -----------------
-    -- Lemma_Hi_Lo --
-    -----------------
- 
-    procedure Lemma_Hi_Lo (Xu : Uns64; Xhi, Xlo : Uns32) is
-    begin
-       pragma Assert (Uns64 (Xhi) = Xu / Uns64'(2 ** 32));
-       pragma Assert (Uns64 (Xlo) = Xu mod 2 ** 32);
-    end Lemma_Hi_Lo;
- 
     -----------------
     -- Raise_Error --
     -----------------
--- 60,82 ----
     --  Convert absolute value of X to unsigned. Note that we can't just use
     --  the expression of the Else since it overflows for X = Int32'First.
  
     function Hi (A : Uns64) return Uns32 is (Uns32 (Shift_Right (A, 32)));
     --  High order half of 64-bit value
  
!    function To_Neg_Int (A : Uns32) return Int32;
     --  Convert to negative integer equivalent. If the input is in the range
     --  0 .. 2**31, then the corresponding nonpositive signed integer (obtained
     --  by negating the given value) is returned, otherwise constraint error is
     --  raised.
  
!    function To_Pos_Int (A : Uns32) return Int32;
     --  Convert to positive integer equivalent. If the input is in the range
     --  0 .. 2**31 - 1, then the corresponding nonnegative signed integer is
     --  returned, otherwise constraint error is raised.
  
!    procedure Raise_Error with No_Return;
     --  Raise constraint error with appropriate message
  
     -----------------
     -- Raise_Error --
     -----------------
*************** is
*** 263,271 ****
     procedure Raise_Error is
     begin
        raise Constraint_Error with "32-bit arithmetic overflow";
-       pragma Annotate
-         (GNATprove, Intentional, "exception might be raised",
-          "Procedure Raise_Error is called to signal input errors");
     end Raise_Error;
  
     -------------------
--- 84,89 ----
*************** is
*** 288,484 ****
        Ru : Uns32;
        --  Unsigned quotient and remainder
  
-       --  Local ghost variables
- 
-       Mult  : constant Big_Integer := abs (Big (X) * Big (Y)) with Ghost;
-       Quot  : Big_Integer with Ghost;
-       Big_R : Big_Integer with Ghost;
-       Big_Q : Big_Integer with Ghost;
- 
-       --  Local lemmas
- 
-       procedure Prove_Negative_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then ((X >= 0 and Y < 0) or (X < 0 and Y >= 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z)),
-          Post =>
-            (if Z > 0 then Big_Q <= Big_0 else Big_Q >= Big_0);
-       --  Proves the sign of rounded quotient when dividend is non-positive
- 
-       procedure Prove_Overflow
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Mult >= Big_2xx32 * Big (Uns32'(abs Z)),
-         Post => not In_Int32_Range (Big (X) * Big (Y) / Big (Z))
-           and then not In_Int32_Range
-             (Round_Quotient (Big (X) * Big (Y), Big (Z),
-                              Big (X) * Big (Y) / Big (Z),
-                              Big (X) * Big (Y) rem Big (Z)));
-       --  Proves overflow case
- 
-       procedure Prove_Positive_Dividend
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then ((X >= 0 and Y >= 0) or (X < 0 and Y < 0))
-           and then Big_Q =
-             (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
-                                            Big (X) * Big (Y) / Big (Z),
-                                            Big (X) * Big (Y) rem Big (Z))
-              else Big (X) * Big (Y) / Big (Z)),
-          Post =>
-            (if Z > 0 then Big_Q >= Big_0 else Big_Q <= Big_0);
-       --  Proves the sign of rounded quotient when dividend is non-negative
- 
-       procedure Prove_Rounding_Case
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-           and then Big (Ru) = abs Big_R
-           and then Big (Zu) = Big (Uns32'(abs Z)),
-         Post => abs Big_Q =
-           (if Ru > (Zu - Uns32'(1)) / Uns32'(2)
-            then abs Quot + 1
-            else abs Quot);
-       --  Proves correctness of the rounding of the unsigned quotient
- 
-       procedure Prove_Sign_R
-       with
-         Ghost,
-         Pre  => Z /= 0 and then Big_R = Big (X) * Big (Y) rem Big (Z),
-         Post => In_Int32_Range (Big_R);
- 
-       procedure Prove_Signs
-       with
-         Ghost,
-         Pre  => Z /= 0
-           and then Quot = Big (X) * Big (Y) / Big (Z)
-           and then Big_R = Big (X) * Big (Y) rem Big (Z)
-           and then Big_Q =
-             (if Round then
-                Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R)
-              else Quot)
-           and then Big (Ru) = abs Big_R
-           and then Big (Qu) = abs Big_Q
-           and then In_Int32_Range (Big_Q)
-           and then In_Int32_Range (Big_R)
-           and then R =
-             (if (X >= 0) = (Y >= 0) then To_Pos_Int (Ru) else To_Neg_Int (Ru))
-           and then Q =
-             (if ((X >= 0) = (Y >= 0)) = (Z >= 0) then To_Pos_Int (Qu)
-              else To_Neg_Int (Qu)),  --  need to ensure To_Pos_Int precondition
-         Post => Big (R) = Big_R and then Big (Q) = Big_Q;
-       --  Proves final signs match the intended result after the unsigned
-       --  division is done.
- 
-       -----------------------------
-       -- Prove_Negative_Dividend --
-       -----------------------------
- 
-       procedure Prove_Negative_Dividend is
-       begin
-          Lemma_Mult_Non_Positive (Big (X), Big (Y));
-       end Prove_Negative_Dividend;
- 
-       --------------------
-       -- Prove_Overflow --
-       --------------------
- 
-       procedure Prove_Overflow is
-       begin
-          Lemma_Div_Ge (Mult, Big_2xx32, Big (Uns32'(abs Z)));
-          Lemma_Abs_Commutation (Z);
-          Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       end Prove_Overflow;
- 
-       -----------------------------
-       -- Prove_Positive_Dividend --
-       -----------------------------
- 
-       procedure Prove_Positive_Dividend is
-       begin
-          Lemma_Mult_Non_Negative (Big (X), Big (Y));
-       end Prove_Positive_Dividend;
- 
-       -------------------------
-       -- Prove_Rounding_Case --
-       -------------------------
- 
-       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;
- 
-       ------------------
-       -- Prove_Sign_R --
-       ------------------
- 
-       procedure Prove_Sign_R is
-       begin
-          pragma Assert (In_Int32_Range (Big (Z)));
-       end Prove_Sign_R;
- 
-       -----------------
-       -- 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
- 
     begin
        --  First do the 64-bit multiplication
  
        D := Uns64 (Xu) * Uns64 (Yu);
  
-       Lemma_Abs_Mult_Commutation (Big (X), Big (Y));
-       pragma Assert (Mult = Big (D));
-       Lemma_Hi_Lo (D, Hi (D), Lo (D));
-       pragma Assert (Mult = Big_2xx32 * Big (Hi (D)) + Big (Lo (D)));
- 
        --  If divisor is zero, raise error
  
        if Z = 0 then
           Raise_Error;
        end if;
  
-       Quot := Big (X) * Big (Y) / Big (Z);
-       Big_R := Big (X) * Big (Y) rem Big (Z);
-       if Round then
-          Big_Q := Round_Quotient (Big (X) * Big (Y), Big (Z), Quot, Big_R);
-       else
-          Big_Q := Quot;
-       end if;
- 
        --  If dividend is too large, raise error
  
        if Hi (D) >= Zu then
-          Lemma_Ge_Commutation (Hi (D), Zu);
-          pragma Assert (Mult >= Big_2xx32 * Big (Zu));
-          Prove_Overflow;
           Raise_Error;
        end if;
  
--- 106,125 ----
*************** is
*** 487,521 ****
        Qu := Uns32 (D / Uns64 (Zu));
        Ru := Uns32 (D rem Uns64 (Zu));
  
-       Lemma_Abs_Div_Commutation (Big (X) * Big (Y), Big (Z));
-       Lemma_Abs_Rem_Commutation (Big (X) * Big (Y), Big (Z));
-       Lemma_Abs_Commutation (X);
-       Lemma_Abs_Commutation (Y);
-       Lemma_Abs_Commutation (Z);
-       Lemma_Mult_Commutation (Uns64 (Xu), Uns64 (Yu), D);
-       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)));
- 
        --  Deal with rounding case
  
        if Round then
-          Prove_Rounding_Case;
- 
           if Ru > (Zu - Uns32'(1)) / Uns32'(2) then
-             pragma Assert (abs Big_Q = Big (Qu) + 1);
- 
              --  Protect against wrapping around when rounding, by signaling
              --  an overflow when the quotient is too large.
  
              if Qu = Uns32'Last then
-                pragma Assert (abs Big_Q = Big_2xx32);
-                Lemma_Not_In_Range_Big2xx32;
                 Raise_Error;
              end if;
  
--- 128,141 ----
*************** is
*** 523,553 ****
           end if;
        end if;
  
-       pragma Assert (In_Int32_Range (Big_Q));
-       pragma Assert (Big (Qu) = abs Big_Q);
-       pragma Assert (Big (Ru) = abs Big_R);
-       Prove_Sign_R;
- 
        --  Set final signs (RM 4.5.5(27-30))
  
        --  Case of dividend (X * Y) sign positive
  
        if (X >= 0 and then Y >= 0) or else (X < 0 and then Y < 0) then
-          Prove_Positive_Dividend;
- 
           R := To_Pos_Int (Ru);
           Q := (if Z > 0 then To_Pos_Int (Qu) else To_Neg_Int (Qu));
  
        --  Case of dividend (X * Y) sign negative
  
        else
-          Prove_Negative_Dividend;
- 
           R := To_Neg_Int (Ru);
           Q := (if Z > 0 then To_Neg_Int (Qu) else To_Pos_Int (Qu));
        end if;
- 
-       Prove_Signs;
     end Scaled_Divide32;
  
     ----------------
--- 143,162 ----
*************** is
*** 559,564 ****
--- 168,174 ----
          (if A = 2**31 then Int32'First else -To_Int (A));
        --  Note that we can't just use the expression of the Else, because it
        --  overflows for A = 2**31.
+ 
     begin
        if R <= 0 then
           return R;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-arit32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,111 ****
  --  signed integer values in cases where either overflow checking is
  --  required, or intermediate results are longer than 32 bits.
  
- --  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 Interfaces;
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
  
  package System.Arith_32
    with Pure, SPARK_Mode
  is
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
     use type Interfaces.Integer_32;
  
     subtype Int32 is Interfaces.Integer_32;
  
-    subtype Big_Integer is
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
-    with Ghost;
- 
-    package Signed_Conversion is new
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
-      (Int => Int32);
- 
-    function Big (Arg : Int32) return Big_Integer is
-      (Signed_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    function In_Int32_Range (Arg : Big_Integer) return Boolean is
-      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
-        (Arg, Big (Int32'First), Big (Int32'Last)))
-    with Ghost;
- 
-    function Same_Sign (X, Y : Big_Integer) return Boolean is
-      (X = Big (Int32'(0))
-         or else Y = Big (Int32'(0))
-         or else (X < Big (Int32'(0))) = (Y < Big (Int32'(0))))
-    with Ghost;
- 
-    function Round_Quotient (X, Y, Q, R : Big_Integer) return Big_Integer is
-      (if abs R > (abs Y - Big (Int32'(1))) / Big (Int32'(2)) then
-        (if Same_Sign (X, Y) then Q + Big (Int32'(1))
-         else Q - Big (Int32'(1)))
-       else
-         Q)
-    with
-      Ghost,
-      Pre => Y /= 0 and then Q = X / Y and then R = X rem Y;
- 
     procedure Scaled_Divide32
       (X, Y, Z : Int32;
        Q, R    : out Int32;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int32_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       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``.
     --
--- 33,51 ----
  --  signed integer values in cases where either overflow checking is
  --  required, or intermediate results are longer than 32 bits.
  
  with Interfaces;
  
  package System.Arith_32
    with Pure, SPARK_Mode
  is
     use type Interfaces.Integer_32;
  
     subtype Int32 is Interfaces.Integer_32;
  
     procedure Scaled_Divide32
       (X, Y, Z : Int32;
        Q, R    : out Int32;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit64.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit64.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-arit64.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit64.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,42 ****
  -- Extensive contributions were provided by Ada Core Technologies Inc.      --
  --                                                                          --
  ------------------------------------------------------------------------------
- pragma Assertion_Policy (Ghost => Ignore);
  
  with System.Arith_Double;
  
  package body System.Arith_64
    with SPARK_Mode
  is
- 
-    subtype Uns64 is Interfaces.Unsigned_64;
     subtype Uns32 is Interfaces.Unsigned_32;
  
     use Interfaces;
--- 28,39 ----
*************** is
*** 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;
--- 49,54 ----
*************** is
*** 67,70 ****
--- 61,73 ----
        Round   : Boolean)
       renames Impl.Double_Divide;
  
+    function Uns_Add_With_Ovflo_Check64 (X, Y : Uns64) return Uns64
+      renames Impl.Add_With_Ovflo_Check;
+ 
+    function Uns_Subtract_With_Ovflo_Check64 (X, Y : Uns64) return Uns64
+      renames Impl.Subtract_With_Ovflo_Check;
+ 
+    function Uns_Multiply_With_Ovflo_Check64 (X, Y : Uns64) return Uns64
+      renames Impl.Multiply_With_Ovflo_Check;
+ 
  end System.Arith_64;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-arit64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-arit64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-arit64.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,84 ****
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
- --  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.Numerics.Big_Numbers.Big_Integers_Ghost;
  with Interfaces;
  
  package System.Arith_64
    with Pure, SPARK_Mode
  is
!    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
!    use type Interfaces.Integer_64;
  
     subtype Int64 is Interfaces.Integer_64;
  
!    subtype Big_Integer is
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
!    with Ghost;
! 
!    package Signed_Conversion is new
!      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Signed_Conversions
!      (Int => Int64);
! 
!    function Big (Arg : Int64) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int64_Range (Arg : Big_Integer) return Boolean is
!      (Ada.Numerics.Big_Numbers.Big_Integers_Ghost.In_Range
!        (Arg, Big (Int64'First), Big (Int64'Last)))
!    with Ghost;
! 
!    function Add_With_Ovflo_Check64 (X, Y : Int64) return Int64
!    with
!      Pre  => In_Int64_Range (Big (X) + Big (Y)),
!      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.
     --
--- 36,53 ----
  pragma Restrictions (No_Elaboration_Code);
  --  Allow direct call from gigi generated code
  
  with Interfaces;
  
  package System.Arith_64
    with Pure, SPARK_Mode
  is
!    -----------
!    -- Int64 --
!    -----------
  
     subtype Int64 is Interfaces.Integer_64;
  
!    function Add_With_Ovflo_Check64 (X, Y : Int64) return Int64;
     --  Raises Constraint_Error if sum of operands overflows 64 bits,
     --  otherwise returns the 64-bit signed integer sum.
     --
*************** is
*** 93,102 ****
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check64 (X, Y : Int64) return Int64
!    with
!      Pre  => In_Int64_Range (Big (X) - Big (Y)),
!      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.
     --
--- 62,68 ----
     --  the exception *Constraint_Error* is raised; otherwise the result is
     --  correct.
  
!    function Subtract_With_Ovflo_Check64 (X, Y : Int64) return Int64;
     --  Raises Constraint_Error if difference of operands overflows 64
     --  bits, otherwise returns the 64-bit signed integer difference.
     --
*************** is
*** 105,114 ****
     --  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
!      Pre  => In_Int64_Range (Big (X) * Big (Y)),
!      Post => Multiply_With_Ovflo_Check64'Result = X * Y;
     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.
--- 71,77 ----
     --  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;
     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.
*************** is
*** 119,158 ****
     --  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))
-         or else Y = Big (Int64'(0))
-         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;
        Q, R    : out Int64;
!       Round   : Boolean)
!    with
!      Pre  => Z /= 0
!        and then In_Int64_Range
!          (if Round then Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                         Big (X) * Big (Y) / Big (Z),
!                                         Big (X) * Big (Y) rem Big (Z))
!           else Big (X) * Big (Y) / Big (Z)),
!      Post => Big (R) = Big (X) * Big (Y) rem Big (Z)
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X) * Big (Y), Big (Z),
!                                       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``.
     --
--- 82,91 ----
     --  signed value is returned. Overflow check is performed by looking at
     --  higher digits.
  
     procedure Scaled_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean);
     --  Performs the division of (``X`` * ``Y``) / ``Z``, storing the quotient
     --  in ``Q`` and the remainder in ``R``.
     --
*************** is
*** 189,210 ****
     procedure Double_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean)
!    with
!      Pre  => Y /= 0
!        and then Z /= 0
!        and then In_Int64_Range
!          (if Round then Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                         Big (X) / (Big (Y) * Big (Z)),
!                                         Big (X) rem (Big (Y) * Big (Z)))
!           else Big (X) / (Big (Y) * Big (Z))),
!      Post => Big (R) = Big (X) rem (Big (Y) * Big (Z))
!        and then
!          (if Round then
!             Big (Q) = Round_Quotient (Big (X), Big (Y) * Big (Z),
!                                       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.
--- 122,128 ----
     procedure Double_Divide64
       (X, Y, Z : Int64;
        Q, R    : out Int64;
!       Round   : Boolean);
     --  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.
*************** is
*** 233,236 ****
--- 151,191 ----
        Round   : Boolean) renames Double_Divide64;
     --  Renamed procedure to preserve compatibility with earlier versions
  
+    -----------
+    -- Uns64 --
+    -----------
+ 
+    subtype Uns64 is Interfaces.Unsigned_64;
+ 
+    function Uns_Add_With_Ovflo_Check64 (X, Y : Uns64) return Uns64;
+    --  Raises Constraint_Error if sum of operands overflows 64 bits,
+    --  otherwise returns the 64 bits unsigned integer sum.
+    --
+    --  The sum of ``X`` and ``Y`` is first computed. If the result is
+    --  lower than the first operand, then an overflow occurred and the
+    --  exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Uns_Subtract_With_Ovflo_Check64 (X, Y : Uns64) return Uns64;
+    --  Raises Constraint_Error if difference of operands overflows 64 bits,
+    --  otherwise returns the 64-bit unsigned integer difference.
+    --
+    --  The subtraction of ``X`` and ``Y`` is first computed using wrap-around
+    --  semantics.
+    --
+    --  If the sign of the result is negative, then an overflow occurred and
+    --  the exception *Constraint_Error* is raised; otherwise the result is
+    --  correct.
+ 
+    function Uns_Multiply_With_Ovflo_Check64 (X, Y : Uns64) return Uns64;
+    pragma Export (C, Uns_Multiply_With_Ovflo_Check64, "__gnat_uns_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
+    --  unsigned value is returned. Overflow check is performed by looking at
+    --  higher digits.
+ 
  end System.Arith_64;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-assert.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-assert.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-assert.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-assert.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-assert.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-assert.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-assert.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-assert.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atacco.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atacco.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-atacco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atacco.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atacco.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atacco.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atacco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atacco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-atocou.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-atocou.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atocou.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atocou.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atocou__builtin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou__builtin.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-atocou__builtin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atocou__builtin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atoope.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atoope.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atoope.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atoope.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-atopex.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopex.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-atopex.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopex.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, Inc.  --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atopex.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopex.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atopex.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopex.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                 Copyright (C) 2019-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-atopri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-atopri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --              Copyright (C) 2012-2026, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atopri.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atopri.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2026, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-atopri__32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri__32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-atopri__32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-atopri__32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --              Copyright (C) 2012-2026, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-auxdec.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-auxdec.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-auxdec.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-auxdec.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/Or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-auxdec.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-auxdec.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-auxdec.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-auxdec.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bignum.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bignum.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-bignum.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bignum.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Bignums is
*** 145,148 ****
--- 145,154 ----
     function From_Bignum (X : Bignum) return Long_Long_Integer
       renames Sec_Stack_Bignums.From_Bignum;
  
+    function LLU_To_Bignum (X : Long_Long_Unsigned) return Bignum
+      renames Sec_Stack_Bignums.To_Bignum;
+ 
+    function LLU_From_Bignum (X : Bignum) return Long_Long_Unsigned
+      renames Sec_Stack_Bignums.From_Bignum;
+ 
  end System.Bignums;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bignum.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bignum.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-bignum.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bignum.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,47 ****
--- 37,52 ----
  --  because the rtsfind mechanism is not ready to handle instantiations.
  
  with System.Shared_Bignums;
+ with System.Unsigned_Types;
  
  package System.Bignums is
     pragma Preelaborate;
  
+    package SU renames System.Unsigned_Types;
+ 
     subtype Bignum is System.Shared_Bignums.Bignum;
+    subtype Long_Long_Unsigned is SU.Long_Long_Unsigned;
+    subtype Long_Long_Long_Unsigned is SU.Long_Long_Long_Unsigned;
  
     function Big_Add (X, Y : Bignum) return Bignum;  --  "+"
     function Big_Sub (X, Y : Bignum) return Bignum;  --  "-"
*************** package System.Bignums is
*** 77,82 ****
--- 82,95 ----
     --  Convert Bignum to Long_Long_Integer. Constraint_Error raised with
     --  appropriate message if value is out of range of Long_Long_Integer.
  
+    function LLU_To_Bignum (X : Long_Long_Unsigned) return Bignum;
+    --  Convert Long_Long_Unsigned to Bignum. No exception can be raised for any
+    --  input argument.
+ 
+    function LLU_From_Bignum (X : Bignum) return Long_Long_Unsigned;
+    --  Convert Bignum to Long_Long_Unsigned. Constraint_Error raised with
+    --  appropriate message if value is out of range of Long_Long_Unsigned.
+ 
  private
  
     pragma Inline (Big_Add);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bitfie.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitfie.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-bitfie.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitfie.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2026, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bitops.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitops.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-bitops.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitops.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bitops.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitops.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-bitops.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bitops.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bituti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bituti.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-bituti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bituti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --               Copyright (C) 2019-2026, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bituti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bituti.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-bituti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bituti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --               Copyright (C) 2019-2026, Free Software Foundation, Inc.    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-boarop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boarop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-boarop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boarop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-boustr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boustr.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-boustr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boustr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-boustr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boustr.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-boustr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-boustr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                       Copyright (C) 2016-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-bytswa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bytswa.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-bytswa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-bytswa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2006-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-c_time.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-c_time.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-c_time.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-c_time.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,203 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . C _ T I M E                        --
+ --                                                                          --
+ --                                  B o d y                                 --
+ --                                                                          --
+ --          Copyright (C) 2025-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 body System.C_Time is
+ 
+    --  Two Duration representations are described in targparm.ads:
+    --   Size      Small       Last = (2**(Size - 1) - 1) * Small
+    --    32    0.02                   42_949_672.94
+    --    64    0.000_000_001       9_223_372_036.854_775_807
+ 
+    Recip : constant := (if Duration'Size = 32 then 50 else 1_000_000_000);
+    --  The reciprocal of the Small used to write "* Small" as "/ Recip"
+ 
+    Milli : constant := 1_000;
+    Micro : constant := 1_000_000;
+    Nano  : constant := 1_000_000_000;
+    --  The standard divisors
+ 
+    pragma Unsuppress (Overflow_Check);
+    --  Overflow may occur during the various conversions
+ 
+    -------------------------
+    -- In_Timeval_Duration --
+    -------------------------
+ 
+    --  Immediate : constant Duration := 0.0;
+ 
+    --  Forever   : constant Duration :=
+    --    Duration'Min (Duration'Last, 1.0 * OS_Constants.MAX_tv_sec);
+ 
+    --  subtype Timeval_Duration is Duration range Immediate .. Forever;
+ 
+    function In_Timeval_Duration (T : timeval) return Boolean is
+       Max_Dur  : constant := 2**(Duration'Size - 1) - 1;
+       Max_Sec  : constant := Max_Dur / Recip;
+       Max_Usec : constant := (Max_Dur mod Recip) * Micro / Recip;
+ 
+       --  When Duration'Size = 64 and time_t'Size = 32, the compiler
+       --  complains that Max_Sec does not fit in time_t, hence cannot
+       --  be compared with T.tv_sec.
+       Safe_Max_Sec : constant :=
+         (if Max_Sec > time_t'Last then time_t'Last else Max_Sec);
+       Safe_Max_Usec : constant :=
+         (if Max_Sec > time_t'Last then usec_t'Last else Max_Usec);
+ 
+    begin
+       pragma Warnings (Off, "condition is always");
+       return T.tv_sec >= 0
+         and then (T.tv_sec > 0 or else T.tv_usec >= 0)
+         and then T.tv_sec <= Safe_Max_Sec
+         and then (T.tv_sec < Safe_Max_Sec or else T.tv_usec <= Safe_Max_Usec)
+         and then T.tv_sec <= OS_Constants.MAX_tv_sec
+         and then (T.tv_sec < OS_Constants.MAX_tv_sec or else T.tv_usec = 0);
+       pragma Warnings (On, "condition is always");
+    end In_Timeval_Duration;
+ 
+    -----------------------------
+    -- Milliseconds_To_Timeval --
+    -----------------------------
+ 
+    function Milliseconds_To_Timeval (M : Interfaces.C.int) return timeval is
+       use Interfaces.C;
+       Q : constant int := M  /  Milli;
+       R : constant int := M rem Milli;
+ 
+    begin
+       return (tv_sec => time_t (Q), tv_usec => usec_t (R) * (Micro / Milli));
+    end Milliseconds_To_Timeval;
+ 
+    -----------------------------
+    -- Nanoseconds_To_Timespec --
+    -----------------------------
+ 
+    function Nanoseconds_To_Timespec (N : Interfaces.C.int) return timespec is
+       use Interfaces.C;
+       Q : constant int := N  /  Nano;
+       R : constant int := N rem Nano;
+ 
+    begin
+       return (tv_sec => time_t (Q), tv_nsec => nsec_t (R));
+    end Nanoseconds_To_Timespec;
+ 
+    -----------------
+    -- To_Duration --
+    -----------------
+ 
+    --  Duration (tv_usec) is OK even when Duration'Size = 32, see above
+ 
+    function To_Duration (T : timeval) return Duration is
+    begin
+       return Duration (T.tv_sec) + Duration (T.tv_usec) / Micro;
+    end To_Duration;
+ 
+    --  Duration (tv_nsec) overflows when Duration'Size = 32, see above.
+    --  Scale down nanoseconds by the value of the Small in nanoseconds.
+ 
+    function To_Duration (T : timespec) return Duration is
+       S : constant := Nano / Recip;
+ 
+    begin
+       return Duration (T.tv_sec) + Duration (T.tv_nsec / S) / (Nano / S);
+    end To_Duration;
+ 
+    -----------------
+    -- To_Timespec --
+    -----------------
+ 
+    function To_Timespec (T : timeval) return timespec is
+    begin
+       return (tv_sec => T.tv_sec, tv_nsec => nsec_t (T.tv_usec) * Milli);
+    end To_Timespec;
+ 
+    function To_Timespec (D : Duration) return timespec is
+       tv_sec  : time_t;
+       tv_nsec : nsec_t;
+ 
+    begin
+       if D = 0.0 then
+          tv_sec  := 0;
+          tv_nsec := 0;
+ 
+       elsif D < 0.0 then
+          tv_sec := time_t (D + 0.5);
+          if D = Duration (tv_sec) then
+             tv_nsec := 0;
+          else
+             tv_nsec := nsec_t ((D - Duration (tv_sec)) * Nano + 0.5);
+          end if;
+ 
+       else
+          tv_sec := time_t (D - 0.5);
+          if D = Duration (tv_sec) then
+             tv_nsec := 0;
+          else
+             tv_nsec := nsec_t ((D - Duration (tv_sec)) * Nano - 0.5);
+          end if;
+       end if;
+ 
+       return (tv_sec, tv_nsec);
+    end To_Timespec;
+ 
+    -----------------
+    -- To_Timeval --
+    -----------------
+ 
+    function To_Timeval (D : Duration) return timeval is
+       tv_sec  : time_t;
+       tv_usec : usec_t;
+ 
+    begin
+       if D = 0.0 then
+          tv_sec  := 0;
+          tv_usec := 0;
+ 
+       elsif D < 0.0 then
+          tv_sec := time_t (D + 0.5);
+          if D = Duration (tv_sec) then
+             tv_usec := 0;
+          else
+             tv_usec := usec_t ((D - Duration (tv_sec)) * Micro + 0.5);
+          end if;
+ 
+       else
+          tv_sec := time_t (D - 0.5);
+          if D = Duration (tv_sec) then
+             tv_usec := 0;
+          else
+             tv_usec := usec_t ((D - Duration (tv_sec)) * Micro - 0.5);
+          end if;
+       end if;
+ 
+       return (tv_sec, tv_usec);
+    end To_Timeval;
+ 
+ end System.C_Time;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-c_time.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-c_time.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-c_time.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-c_time.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,93 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                         S Y S T E M . C _ T I M E                        --
+ --                                                                          --
+ --                                  S p e c                                 --
+ --                                                                          --
+ --          Copyright (C) 2025-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 the time_t, timeval and timespec types corresponding
+ --  to the C types defined by the OS, as well as various conversion functions.
+ 
+ with Interfaces.C;
+ 
+ with System.OS_Constants;
+ 
+ package System.C_Time
+   with Pure
+ is
+    --  These two C structs represent durations with different accuracies and
+    --  maximal values.
+ 
+    type time_t is range -2 ** (OS_Constants.SIZEOF_tv_sec * 8 - 1) ..
+                          2 ** (OS_Constants.SIZEOF_tv_sec * 8 - 1) - 1
+      with Convention => C, Size => OS_Constants.SIZEOF_tv_sec * 8;
+ 
+    type usec_t is range -2 ** (OS_Constants.SIZEOF_tv_usec * 8 - 1) ..
+                          2 ** (OS_Constants.SIZEOF_tv_usec * 8 - 1) - 1
+      with Convention => C, Size => OS_Constants.SIZEOF_tv_usec * 8;
+    --  Larger than the suseconds_t C type on ARM 32 bits with GNU libc
+    --  when __TIME_BITS=64.
+ 
+    type timeval is record
+       tv_sec  : time_t;  --  seconds
+       tv_usec : usec_t;  --  microseconds
+    end record
+      with Convention => C;
+ 
+    type nsec_t is range -2 ** (OS_Constants.SIZEOF_tv_nsec * 8 - 1) ..
+                          2 ** (OS_Constants.SIZEOF_tv_nsec * 8 - 1) - 1
+      with Convention => C, Size => OS_Constants.SIZEOF_tv_nsec * 8;
+    --  Larger than the signed long int C type on x32.
+ 
+    type timespec is record
+       tv_sec  : time_t;  --  seconds
+       tv_nsec : nsec_t;  --  nanoseconds
+    end record
+      with Convention => C;
+ 
+    --  All conversion functions truncate the result if it is inexact
+ 
+    function To_Duration (T : timespec) return Duration with Inline;
+    function To_Duration (T : timeval)  return Duration with Inline;
+ 
+    function To_Timespec (D : Duration) return timespec with Inline;
+    function To_Timeval  (D : Duration) return timeval  with Inline;
+ 
+    function In_Timeval_Duration (T : timeval) return Boolean with Inline;
+    --  g-socket.adb if not Windows target
+ 
+    function Milliseconds_To_Timeval (M : Interfaces.C.int) return timeval
+      with Inline;
+    --  g-sothco.ads
+    --  g-spogwa.adb
+ 
+    function Nanoseconds_To_Timespec (N : Interfaces.C.int) return timespec
+      with Inline;
+    function To_Timespec (T : timeval) return timespec with Inline;
+    --  s-osinte__darwin.adb
+ 
+ end System.C_Time;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-carsi8.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carsi8.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-carsi8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carsi8.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-carsi8.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carsi8.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-carsi8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carsi8.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-carun8.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carun8.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-carun8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carun8.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-carun8.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carun8.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-carun8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-carun8.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi128.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-casi128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-casi128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi16.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi16.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-casi16.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi16.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi16.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi16.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-casi16.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi16.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-casi32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-casi32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi64.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi64.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-casi64.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi64.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casi64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-casi64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casi64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casuti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casuti.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-casuti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casuti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Case_Util
    with SPARK_Mode
  is
--- 29,34 ----
*************** is
*** 44,73 ****
     -- To_Lower --
     --------------
  
-    function To_Lower (A : Character) return Character is
-       A_Val : constant Natural := Character'Pos (A);
- 
-    begin
-       if A in 'A' .. 'Z'
-         or else A_Val in 16#C0# .. 16#D6#
-         or else A_Val in 16#D8# .. 16#DE#
-       then
-          return Character'Val (A_Val + 16#20#);
-       else
-          return A;
-       end if;
-    end To_Lower;
- 
-    procedure To_Lower (A : in out String) is
-    begin
-       for J in A'Range loop
-          A (J) := To_Lower (A (J));
- 
-          pragma Loop_Invariant
-            (for all K in A'First .. J => A (K) = To_Lower (A'Loop_Entry (K)));
-       end loop;
-    end To_Lower;
- 
     function To_Lower (A : String) return String is
        Result : String := A;
     begin
--- 36,41 ----
*************** is
*** 79,108 ****
     -- To_Mixed --
     --------------
  
-    procedure To_Mixed (A : in out String) is
-       Ucase : Boolean := True;
- 
-    begin
-       for J in A'Range loop
-          if Ucase then
-             A (J) := To_Upper (A (J));
-          else
-             A (J) := To_Lower (A (J));
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in A'First .. J =>
-               (if K = A'First
-                  or else A'Loop_Entry (K - 1) = '_'
-                then
-                  A (K) = To_Upper (A'Loop_Entry (K))
-                else
-                  A (K) = To_Lower (A'Loop_Entry (K))));
- 
-          Ucase := A (J) = '_';
-       end loop;
-    end To_Mixed;
- 
     function To_Mixed (A : String) return String is
        Result : String := A;
     begin
--- 47,52 ----
*************** is
*** 114,143 ****
     -- To_Upper --
     --------------
  
-    function To_Upper (A : Character) return Character is
-       A_Val : constant Natural := Character'Pos (A);
- 
-    begin
-       if A in 'a' .. 'z'
-         or else A_Val in 16#E0# .. 16#F6#
-         or else A_Val in 16#F8# .. 16#FE#
-       then
-          return Character'Val (A_Val - 16#20#);
-       else
-          return A;
-       end if;
-    end To_Upper;
- 
-    procedure To_Upper (A : in out String) is
-    begin
-       for J in A'Range loop
-          A (J) := To_Upper (A (J));
- 
-          pragma Loop_Invariant
-            (for all K in A'First .. J => A (K) = To_Upper (A'Loop_Entry (K)));
-       end loop;
-    end To_Upper;
- 
     function To_Upper (A : String) return String is
        Result : String := A;
     begin
--- 58,63 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-casuti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casuti.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-casuti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-casuti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 40,73 ****
  --  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);
  
  package System.Case_Util
    with Pure, SPARK_Mode
  is
     --  Note: all the following functions handle the full Latin-1 set
  
     function To_Upper (A : Character) return Character
!    with
!      Post => (declare
!                 A_Val : constant Natural := Character'Pos (A);
!               begin
!                 (if A in 'a' .. 'z'
!                    or else A_Val in 16#E0# .. 16#F6#
!                    or else A_Val in 16#F8# .. 16#FE#
!                  then
!                    To_Upper'Result = Character'Val (A_Val - 16#20#)
!                  else
!                    To_Upper'Result = A));
     --  Converts A to upper case if it is a lower case letter, otherwise
     --  returns the input argument unchanged.
  
!    procedure To_Upper (A : in out String)
!    with
!      Post => (for all J in A'Range => A (J) = To_Upper (A'Old (J)));
  
     function To_Upper (A : String) return String
     with
--- 40,69 ----
  --  contract cases should not be executed at runtime as well, in order not to
  --  slow down the execution of these functions.
  
+ --  The portion of this package that does not require use of the secondary
+ --  stack (so all the subprograms except functions that return String)
+ --  has been moved into a sibling package, Case_Util_NSS. See comments there.
+ --  Clients who don't care about avoiding secondary stack usage can
+ --  continue to use this package and are unaffected by this reorganization.
+ 
  pragma Assertion_Policy (Pre            => Ignore,
                           Post           => Ignore,
                           Contract_Cases => Ignore,
                           Ghost          => Ignore);
  
+ with System.Case_Util_NSS;
+ 
  package System.Case_Util
    with Pure, SPARK_Mode
  is
     --  Note: all the following functions handle the full Latin-1 set
  
     function To_Upper (A : Character) return Character
!      renames Case_Util_NSS.To_Upper;
     --  Converts A to upper case if it is a lower case letter, otherwise
     --  returns the input argument unchanged.
  
!    procedure To_Upper (A : in out String) renames Case_Util_NSS.To_Upper;
  
     function To_Upper (A : String) return String
     with
*************** is
*** 78,100 ****
     --  Folds all characters of string A to upper case
  
     function To_Lower (A : Character) return Character
!    with
!      Post => (declare
!                 A_Val : constant Natural := Character'Pos (A);
!               begin
!                 (if A in 'A' .. 'Z'
!                    or else A_Val in 16#C0# .. 16#D6#
!                    or else A_Val in 16#D8# .. 16#DE#
!                  then
!                    To_Lower'Result = Character'Val (A_Val + 16#20#)
!                  else
!                    To_Lower'Result = A));
     --  Converts A to lower case if it is an upper case letter, otherwise
     --  returns the input argument unchanged.
  
     procedure To_Lower (A : in out String)
!    with
!      Post => (for all J in A'Range => A (J) = To_Lower (A'Old (J)));
  
     function To_Lower (A : String) return String
     with
--- 74,85 ----
     --  Folds all characters of string A to upper case
  
     function To_Lower (A : Character) return Character
!      renames Case_Util_NSS.To_Lower;
     --  Converts A to lower case if it is an upper case letter, otherwise
     --  returns the input argument unchanged.
  
     procedure To_Lower (A : in out String)
!      renames Case_Util_NSS.To_Lower;
  
     function To_Lower (A : String) return String
     with
*************** is
*** 105,119 ****
     --  Folds all characters of string A to lower case
  
     procedure To_Mixed (A : in out String)
!    with
!      Post =>
!        (for all J in A'Range =>
!           (if J = A'First
!              or else A'Old (J - 1) = '_'
!            then
!              A (J) = To_Upper (A'Old (J))
!            else
!              A (J) = To_Lower (A'Old (J))));
  
     function To_Mixed (A : String) return String
     with
--- 90,96 ----
     --  Folds all characters of string A to lower case
  
     procedure To_Mixed (A : in out String)
!      renames Case_Util_NSS.To_Mixed;
  
     function To_Mixed (A : String) return String
     with
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun128.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-caun128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-caun128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun16.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun16.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-caun16.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun16.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun16.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun16.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-caun16.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun16.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-caun32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-caun32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun64.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun64.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-caun64.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun64.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-caun64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-caun64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-caun64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-cautns.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-cautns.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-cautns.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-cautns.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,127 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                 S Y S T E M . C A S E _ U T I L _ N S S                  --
+ --                                                                          --
+ --                                 B o d y                                  --
+ --                                                                          --
+ --                     Copyright (C) 1995-2026, AdaCore                     --
+ --                                                                          --
+ -- GNAT is 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.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  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 (Ghost          => Ignore,
+                          Loop_Invariant => Ignore,
+                          Assert         => Ignore);
+ 
+ package body System.Case_Util_NSS
+   with SPARK_Mode
+ is
+    --------------
+    -- To_Lower --
+    --------------
+ 
+    function To_Lower (A : Character) return Character is
+       A_Val : constant Natural := Character'Pos (A);
+ 
+    begin
+       if A in 'A' .. 'Z'
+         or else A_Val in 16#C0# .. 16#D6#
+         or else A_Val in 16#D8# .. 16#DE#
+       then
+          return Character'Val (A_Val + 16#20#);
+       else
+          return A;
+       end if;
+    end To_Lower;
+ 
+    procedure To_Lower (A : in out String) is
+    begin
+       for J in A'Range loop
+          A (J) := To_Lower (A (J));
+ 
+          pragma Loop_Invariant
+            (for all K in A'First .. J => A (K) = To_Lower (A'Loop_Entry (K)));
+       end loop;
+    end To_Lower;
+ 
+    --------------
+    -- To_Mixed --
+    --------------
+ 
+    procedure To_Mixed (A : in out String) is
+       Ucase : Boolean := True;
+ 
+    begin
+       for J in A'Range loop
+          if Ucase then
+             A (J) := To_Upper (A (J));
+          else
+             A (J) := To_Lower (A (J));
+          end if;
+ 
+          pragma Loop_Invariant
+            (for all K in A'First .. J =>
+               (if K = A'First
+                  or else A'Loop_Entry (K - 1) = '_'
+                then
+                  A (K) = To_Upper (A'Loop_Entry (K))
+                else
+                  A (K) = To_Lower (A'Loop_Entry (K))));
+ 
+          Ucase := A (J) = '_';
+       end loop;
+    end To_Mixed;
+ 
+    --------------
+    -- To_Upper --
+    --------------
+ 
+    function To_Upper (A : Character) return Character is
+       A_Val : constant Natural := Character'Pos (A);
+ 
+    begin
+       if A in 'a' .. 'z'
+         or else A_Val in 16#E0# .. 16#F6#
+         or else A_Val in 16#F8# .. 16#FE#
+       then
+          return Character'Val (A_Val - 16#20#);
+       else
+          return A;
+       end if;
+    end To_Upper;
+ 
+    procedure To_Upper (A : in out String) is
+    begin
+       for J in A'Range loop
+          A (J) := To_Upper (A (J));
+ 
+          pragma Loop_Invariant
+            (for all K in A'First .. J => A (K) = To_Upper (A'Loop_Entry (K)));
+       end loop;
+    end To_Upper;
+ 
+ end System.Case_Util_NSS;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-cautns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-cautns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-cautns.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-cautns.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,106 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                         GNAT RUN-TIME COMPONENTS                         --
+ --                                                                          --
+ --                 S Y S T E M . C A S E _ U T I L _ N S S                  --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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.      --
+ --                                                                          --
+ ------------------------------------------------------------------------------
+ 
+ --  The No_Secondary_Stack portion of System.Case_Util. Some of the functions
+ --  provided in System.Case_Util make use of the secondary stack, and some
+ --  do not. Lumping them all together makes even the non-secondary-stack
+ --  portion of the package unusable in cases where references to
+ --  secondary-stack-related code must be avoided (for example, if linking with
+ --  a reduced version of the runtimes where that code is missing). That's a
+ --  problem in some cases, so Case_Util is split into two parts. The first
+ --  part (named Case_Util_NSS) is a subset of the original version which
+ --  does not use the secondary stack; the second part presents the same
+ --  complete interface to users as before, but avoids code duplication by
+ --  renaming entities out of the first part.
+ --
+ --  See comments in s-casuti.ads for further explanations (e.g., of
+ --  the Assertion_Policy specified here).
+ 
+ pragma Assertion_Policy (Pre            => Ignore,
+                          Post           => Ignore,
+                          Contract_Cases => Ignore,
+                          Ghost          => Ignore);
+ 
+ package System.Case_Util_NSS
+   with Pure, SPARK_Mode
+ is
+    --  Note: all the following functions handle the full Latin-1 set
+ 
+    function To_Upper (A : Character) return Character
+    with
+      Post => (declare
+                 A_Val : constant Natural := Character'Pos (A);
+               begin
+                 (if A in 'a' .. 'z'
+                    or else A_Val in 16#E0# .. 16#F6#
+                    or else A_Val in 16#F8# .. 16#FE#
+                  then
+                    To_Upper'Result = Character'Val (A_Val - 16#20#)
+                  else
+                    To_Upper'Result = A));
+    --  Converts A to upper case if it is a lower case letter, otherwise
+    --  returns the input argument unchanged.
+ 
+    procedure To_Upper (A : in out String)
+    with
+      Post => (for all J in A'Range => A (J) = To_Upper (A'Old (J)));
+ 
+    function To_Lower (A : Character) return Character
+    with
+      Post => (declare
+                 A_Val : constant Natural := Character'Pos (A);
+               begin
+                 (if A in 'A' .. 'Z'
+                    or else A_Val in 16#C0# .. 16#D6#
+                    or else A_Val in 16#D8# .. 16#DE#
+                  then
+                    To_Lower'Result = Character'Val (A_Val + 16#20#)
+                  else
+                    To_Lower'Result = A));
+    --  Converts A to lower case if it is an upper case letter, otherwise
+    --  returns the input argument unchanged.
+ 
+    procedure To_Lower (A : in out String)
+    with
+      Post => (for all J in A'Range => A (J) = To_Lower (A'Old (J)));
+ 
+    procedure To_Mixed (A : in out String)
+    with
+      Post =>
+        (for all J in A'Range =>
+           (if J = A'First
+              or else A'Old (J - 1) = '_'
+            then
+              A (J) = To_Upper (A'Old (J))
+            else
+              A (J) = To_Lower (A'Old (J))));
+ 
+ end System.Case_Util_NSS;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-chepoo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-chepoo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-chepoo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-chepoo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-commun.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-commun.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-commun.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-commun.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-commun.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-commun.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-commun.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-commun.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2001-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca2.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca2.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca2.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca2.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca2.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca2.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca2.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca2.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca3.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca3.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca3.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca3.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca3.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca3.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca3.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca3.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca4.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca4.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca4.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca4.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca4.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca4.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca4.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca4.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca5.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca5.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca5.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca5.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca5.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca5.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca5.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca5.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca6.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca6.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca6.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca6.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca6.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca6.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca6.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca6.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca7.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca7.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca7.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca7.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca7.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca7.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca7.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca7.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca8.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca8.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca8.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca8.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca8.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca8.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca9.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca9.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-conca9.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca9.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-conca9.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca9.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-conca9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-conca9.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-crc32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crc32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-crc32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crc32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-crc32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crc32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-crc32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crc32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 56,62 ****
  
  with Interfaces;
  
! package System.CRC32 is
  
     type CRC32 is new Interfaces.Unsigned_32;
     --  Used to represent CRC32 values, which are 32 bit bit-strings
--- 56,62 ----
  
  with Interfaces;
  
! package System.CRC32 with Pure, Always_Terminates is
  
     type CRC32 is new Interfaces.Unsigned_32;
     --  Used to represent CRC32 values, which are 32 bit bit-strings
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-crtl.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-crtl.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,60 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                        GNAT RUN-TIME COMPONENTS                          --
+ --                                                                          --
+ --                          S Y S T E M . C R T L                           --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 body System.CRTL is
+ 
+    ----------
+    -- read --
+    ----------
+ 
+    function read (fd : int; buffer : chars; count : size_t) return ssize_t
+    is
+       function read_raw
+         (fd : int; buffer : chars; count : size_t) return ssize_t;
+       pragma Import (C, read_raw, "read");
+    begin
+       return read_raw (fd, buffer, count);
+    end read;
+ 
+    -----------
+    -- write --
+    -----------
+ 
+    function write (fd : int; buffer : chars; count : size_t) return ssize_t
+    is
+       function write_raw
+         (fd : int; buffer : chars; count : size_t) return ssize_t;
+       pragma Import (C, write_raw, "write");
+    begin
+       return write_raw (fd, buffer, count);
+    end write;
+ 
+ end System.CRTL;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-crtl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-crtl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.CRTL is
*** 50,55 ****
--- 50,58 ----
  
     subtype int is Integer;
  
+    type unsigned is mod 2 ** 32;
+    for unsigned'Size use 32;
+ 
     type long is range -(2 ** (System.Parameters.long_bits - 1))
                     .. +(2 ** (System.Parameters.long_bits - 1)) - 1;
  
*************** package System.CRTL is
*** 231,239 ****
     pragma Import (C, close, "close");
  
     function read (fd : int; buffer : chars; count : size_t) return ssize_t;
!    pragma Import (C, read, "read");
  
     function write (fd : int; buffer : chars; count : size_t) return ssize_t;
!    pragma Import (C, write, "write");
  
  end System.CRTL;
--- 234,244 ----
     pragma Import (C, close, "close");
  
     function read (fd : int; buffer : chars; count : size_t) return ssize_t;
!    pragma Inline (read);
!    --  Different return types on Windows and Posix, requires body
  
     function write (fd : int; buffer : chars; count : size_t) return ssize_t;
!    pragma Inline (write);
!    --  Different return types on Windows and Posix, requires body
  
  end System.CRTL;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-crtl__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-crtl__mingw.adb	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-crtl__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,62 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                        GNAT RUN-TIME COMPONENTS                          --
+ --                                                                          --
+ --                          S Y S T E M . C R T L                           --
+ --                                                                          --
+ --                                 S p e c                                  --
+ --                                                                          --
+ --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
+ --                                                                          --
+ -- GNAT is 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 Windows specific version of the System.CRTL
+ 
+ package body System.CRTL is
+ 
+    ----------
+    -- read --
+    ----------
+ 
+    function read (fd : int; buffer : chars; count : size_t) return ssize_t
+    is
+       function read_raw
+         (fd : int; buffer : chars; count : unsigned) return int;
+       pragma Import (C, read_raw, "read");
+    begin
+       return ssize_t (read_raw (fd, buffer, unsigned (count)));
+    end read;
+ 
+    -----------
+    -- write --
+    -----------
+ 
+    function write (fd : int; buffer : chars; count : size_t) return ssize_t
+    is
+       function write_raw
+         (fd : int; buffer : chars; count : unsigned) return int;
+       pragma Import (C, write_raw, "write");
+    begin
+       return ssize_t (write_raw (fd, buffer, unsigned (count)));
+    end write;
+ 
+ end System.CRTL;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dfmkio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dfmkio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dfmkio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dfmkio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dfmopr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dfmopr.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dfmopr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dfmopr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2026, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dgmgop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dgmgop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dgmgop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dgmgop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-diflio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflio.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-diflio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-diflio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-diflio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-diflmk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflmk.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-diflmk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diflmk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-digemk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-digemk.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-digemk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-digemk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-diinio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diinio.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-diinio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diinio.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-diinio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diinio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-diinio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-diinio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dilomk.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dilomk.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dilomk.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dilomk.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dim.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dim.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2012-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dimkio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dimkio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dimkio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dimkio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dimmks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dimmks.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dimmks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dimmks.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-direio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-direio.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-direio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-direio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-direio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-direio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-direio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-direio.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dlmkio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dlmkio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dlmkio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dlmkio.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --             Copyright (C) 2018-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dlmopr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dlmopr.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dlmopr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dlmopr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --              Copyright (C) 2018-2026, Free Software Foundation, Inc.     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dmotpr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dmotpr.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dmotpr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dmotpr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 2011-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dorepr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-dorepr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 Product is
*** 134,140 ****
        Ahi, Alo, Bhi, Blo, E : Num;
  
     begin
!       if Is_Infinity (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
--- 134,140 ----
        Ahi, Alo, Bhi, Blo, E : Num;
  
     begin
!       if Is_Infinity_Or_NaN (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
*************** package body Product is
*** 157,163 ****
        Hi, Lo, E : Num;
  
     begin
!       if Is_Infinity (Q) or else Is_Zero (Q) then
           return (Q, 0.0);
  
        else
--- 157,163 ----
        Hi, Lo, E : Num;
  
     begin
!       if Is_Infinity_Or_NaN (Q) or else Is_Zero (Q) then
           return (Q, 0.0);
  
        else
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dorepr__fma.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr__fma.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-dorepr__fma.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr__fma.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 Product is
*** 78,84 ****
        E : Num;
  
     begin
!       if Is_Infinity (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
--- 78,84 ----
        E : Num;
  
     begin
!       if Is_Infinity_Or_NaN (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dorepr__freebsd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr__freebsd.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-dorepr__freebsd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dorepr__freebsd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dourea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dourea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-dourea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dourea.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Double_Real is
*** 34,45 ****
     function Is_NaN (N : Num) return Boolean is (N /= N);
     --  Return True if N is a NaN
  
!    function Is_Infinity (N : Num) return Boolean is (Is_NaN (N - N));
!    --  Return True if N is an infinity. Used to avoid propagating meaningless
!    --  errors when the result of a product is an infinity.
  
     function Is_Zero (N : Num) return Boolean is (N = -N);
!    --  Return True if N is a Zero. Used to preserve the sign when the result of
     --  a product is a zero.
  
     package Product is
--- 34,45 ----
     function Is_NaN (N : Num) return Boolean is (N /= N);
     --  Return True if N is a NaN
  
!    function Is_Infinity_Or_NaN (N : Num) return Boolean is (Is_NaN (N - N));
!    --  Return True if N is either an infinity or NaN. Used to avoid propagating
!    --  meaningless errors when the result of a product is an infinity or NaN.
  
     function Is_Zero (N : Num) return Boolean is (N = -N);
!    --  Return True if N is a zero. Used to preserve the sign when the result of
     --  a product is a zero.
  
     package Product is
*************** package body System.Double_Real is
*** 151,157 ****
        P : constant Double_T := Two_Prod (A.Hi, B);
  
     begin
!       if Is_Infinity (P.Hi) or else Is_Zero (P.Hi) then
           return (P.Hi, 0.0);
        else
           return Quick_Two_Sum (P.Hi, P.Lo + A.Lo * B);
--- 151,157 ----
        P : constant Double_T := Two_Prod (A.Hi, B);
  
     begin
!       if Is_Infinity_Or_NaN (P.Hi) or else Is_Zero (P.Hi) then
           return (P.Hi, 0.0);
        else
           return Quick_Two_Sum (P.Hi, P.Lo + A.Lo * B);
*************** package body System.Double_Real is
*** 162,168 ****
        P : constant Double_T := Two_Prod (A.Hi, B.Hi);
  
     begin
!       if Is_Infinity (P.Hi) or else Is_Zero (P.Hi) then
           return (P.Hi, 0.0);
        else
           return Quick_Two_Sum (P.Hi, P.Lo + A.Hi * B.Lo + A.Lo * B.Hi);
--- 162,168 ----
        P : constant Double_T := Two_Prod (A.Hi, B.Hi);
  
     begin
!       if Is_Infinity_Or_NaN (P.Hi) or else Is_Zero (P.Hi) then
           return (P.Hi, 0.0);
        else
           return Quick_Two_Sum (P.Hi, P.Lo + A.Hi * B.Lo + A.Lo * B.Hi);
*************** package body System.Double_Real is
*** 178,184 ****
        P, R   : Double_T;
  
     begin
!       if Is_Infinity (B) or else Is_Zero (B) then
           return (A.Hi / B, 0.0);
        end if;
        pragma Annotate (CodePeer, Intentional, "test always false",
--- 178,184 ----
        P, R   : Double_T;
  
     begin
!       if Is_Infinity_Or_NaN (B) or else Is_Zero (B) then
           return (A.Hi / B, 0.0);
        end if;
        pragma Annotate (CodePeer, Intentional, "test always false",
*************** package body System.Double_Real is
*** 202,208 ****
        R, S       : Double_T;
  
     begin
!       if Is_Infinity (B.Hi) or else Is_Zero (B.Hi) then
           return (A.Hi / B.Hi, 0.0);
        end if;
        pragma Annotate (CodePeer, Intentional, "test always false",
--- 202,208 ----
        R, S       : Double_T;
  
     begin
!       if Is_Infinity_Or_NaN (B.Hi) or else Is_Zero (B.Hi) then
           return (A.Hi / B.Hi, 0.0);
        end if;
        pragma Annotate (CodePeer, Intentional, "test always false",
*************** package body System.Double_Real is
*** 228,234 ****
        Q : constant Double_T := Two_Sqr (A.Hi);
  
     begin
!       if Is_Infinity (Q.Hi) or else Is_Zero (Q.Hi) then
           return (Q.Hi, 0.0);
        else
           return Quick_Two_Sum (Q.Hi, Q.Lo + 2.0 * A.Hi * A.Lo + A.Lo * A.Lo);
--- 228,234 ----
        Q : constant Double_T := Two_Sqr (A.Hi);
  
     begin
!       if Is_Infinity_Or_NaN (Q.Hi) or else Is_Zero (Q.Hi) then
           return (Q.Hi, 0.0);
        else
           return Quick_Two_Sum (Q.Hi, Q.Lo + 2.0 * A.Hi * A.Lo + A.Lo * A.Lo);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dourea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dourea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dourea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dourea.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dsaser.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dsaser.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dsaser.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dsaser.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dwalin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dwalin.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-dwalin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dwalin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1912,1922 ****
     ------------------------
  
     procedure Symbolic_Traceback
!      (Cin          :        Dwarf_Context;
!       Traceback    :        STE.Tracebacks_Array;
!       Suppress_Hex :        Boolean;
!       Symbol_Found :    out Boolean;
!       Res          : in out System.Bounded_Strings.Bounded_String)
     is
        use Ada.Characters.Handling;
        C : Dwarf_Context := Cin;
--- 1912,1923 ----
     ------------------------
  
     procedure Symbolic_Traceback
!      (Cin              : Dwarf_Context;
!       Traceback        : STE.Tracebacks_Array;
!       Suppress_Hex     : Boolean;
!       Display_Mode     : Display_Mode_Type;
!       Symbol_Found     : out Boolean;
!       Res              : in out System.Bounded_Strings.Bounded_String)
     is
        use Ada.Characters.Handling;
        C : Dwarf_Context := Cin;
*************** package body System.Dwarf_Lines is
*** 1953,1959 ****
  
           --  If we're not requested to suppress hex addresses, emit it now.
  
!          if not Suppress_Hex then
              Append_Address (Res, Addr_In_Traceback);
              Append (Res, ' ');
           end if;
--- 1954,1960 ----
  
           --  If we're not requested to suppress hex addresses, emit it now.
  
!          if not Suppress_Hex and then Display_Mode = Full then
              Append_Address (Res, Addr_In_Traceback);
              Append (Res, ' ');
           end if;
*************** package body System.Dwarf_Lines is
*** 2006,2015 ****
                    Append (Res, "???");
                 end if;
  
!                Append (Res, " at ");
!                Append (Res, String (File_Name (1 .. Last)));
!                Append (Res, ':');
!                Append (Res, Line_Image (2 .. Line_Image'Last));
              end;
           else
              if Subprg_Name.Len > 0 then
--- 2007,2018 ----
                    Append (Res, "???");
                 end if;
  
!                if Display_Mode = Full then
!                   Append (Res, " at ");
!                   Append (Res, String (File_Name (1 .. Last)));
!                   Append (Res, ':');
!                   Append (Res, Line_Image (2 .. Line_Image'Last));
!                end if;
              end;
           else
              if Subprg_Name.Len > 0 then
*************** package body System.Dwarf_Lines is
*** 2020,2026 ****
                 Append (Res, "???");
              end if;
  
!             Append (Res, " at ???");
           end if;
  
           Append (Res, ASCII.LF);
--- 2023,2031 ----
                 Append (Res, "???");
              end if;
  
!             if Display_Mode = Full then
!                Append (Res, " at ???");
!             end if;
           end if;
  
           Append (Res, ASCII.LF);
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-dwalin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dwalin.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-dwalin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-dwalin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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.Dwarf_Lines is
*** 79,89 ****
     procedure Enable_Cache (C : in out Dwarf_Context);
     --  Read symbol information to speed up Symbolic_Traceback.
  
     procedure Symbolic_Traceback
!      (Cin          :        Dwarf_Context;
!       Traceback    :        STE.Tracebacks_Array;
!       Suppress_Hex :        Boolean;
!       Symbol_Found :    out Boolean;
        Res          : in out System.Bounded_Strings.Bounded_String);
     --  Generate a string for a traceback suitable for displaying to the user.
     --  If one or more symbols are found, Symbol_Found is set to True. This
--- 79,96 ----
     procedure Enable_Cache (C : in out Dwarf_Context);
     --  Read symbol information to speed up Symbolic_Traceback.
  
+    type Display_Mode_Type is (Full, Subprg_Name_Only);
+    --  This type is used to configure how frames are displayed.
+    --  In Subprg_Name_Only mode, only the name of the subprogram is displayed
+    --  for a frame. In Full mode, additional information is displayed on top of
+    --  that.
+ 
     procedure Symbolic_Traceback
!      (Cin          : Dwarf_Context;
!       Traceback    : STE.Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
!       Symbol_Found : out Boolean;
        Res          : in out System.Bounded_Strings.Bounded_String);
     --  Generate a string for a traceback suitable for displaying to the user.
     --  If one or more symbols are found, Symbol_Found is set to True. This
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-elaall.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-elaall.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-elaall.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-elaall.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-elaall.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-elaall.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-elaall.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-elaall.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2014-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excdeb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excdeb.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-excdeb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excdeb.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is 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.Exceptions_Debug is
*** 69,75 ****
     procedure Local_Raise (Excep : System.Address) is
        pragma Warnings (Off, Excep);
     begin
!       return;
     end Local_Raise;
  
  end System.Exceptions_Debug;
--- 69,75 ----
     procedure Local_Raise (Excep : System.Address) is
        pragma Warnings (Off, Excep);
     begin
!       null;
     end Local_Raise;
  
  end System.Exceptions_Debug;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excdeb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excdeb.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-excdeb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excdeb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-except.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-except.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-except.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-except.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-except.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-except.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-except.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-except.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excmac__arm.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__arm.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-excmac__arm.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__arm.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2013-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excmac__arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__arm.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-excmac__arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excmac__gcc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__gcc.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-excmac__gcc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__gcc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-excmac__gcc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__gcc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-excmac__gcc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-excmac__gcc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exctab.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctab.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exctab.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctab.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exctab.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctab.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exctab.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctab.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exctra.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctra.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exctra.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctra.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exctra.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctra.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exctra.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exctra.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnflt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnflt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnflt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnflt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnint.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exnint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  
  --  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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_Int
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnlfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnlfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnllf.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllf.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exnllf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllf.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnllf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllf.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnllf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnlli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlli.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exnlli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  
  --  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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_LLI
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exnllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exnllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exnllli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,53 ****
  
  --  Long_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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Exponn;
  
  package System.Exn_LLLI
    with SPARK_Mode
  is
- 
     package Exponn_Integer is new Exponn (Long_Long_Long_Integer);
  
     function Exn_Long_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expint.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-expint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,53 ****
  
  --  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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_Int
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Integer);
  
     function Exp_Integer (Left : Integer; Right : Natural) return Integer
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-explli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explli.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-explli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-explli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-explli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,53 ****
  
  --  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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_LLI
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Long_Long_Integer);
  
     function Exp_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,53 ****
  
  --  Long_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
- --  would be too costly otherwise. This is enforced by setting the assertion
- --  policy to Ignore.
- 
- pragma Assertion_Policy (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Expont;
  
  package System.Exp_LLLI
    with SPARK_Mode
  is
- 
     package Expont_Integer is new Expont (Long_Long_Long_Integer);
  
     function Exp_Long_Long_Long_Integer
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-explllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-explllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-explllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,61 ****
  --  The result is always full width, the caller must do a masking operation if
  --  the modulus is less than 2 ** Long_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,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_LLLU
    with SPARK_Mode
  is
- 
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     function Exp_Long_Long_Long_Unsigned is
       new Exponu (Long_Long_Long_Unsigned);
     pragma Pure_Function (Exp_Long_Long_Long_Unsigned);
  
  end System.Exp_LLLU;
--- 34,55 ----
  --  The result is always full width, the caller must do a masking operation if
  --  the modulus is less than 2 ** Long_Long_Long_Unsigned'Size.
  
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_LLLU
    with SPARK_Mode
  is
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
     function Exp_Long_Long_Long_Unsigned is
       new Exponu (Long_Long_Long_Unsigned);
     pragma Pure_Function (Exp_Long_Long_Long_Unsigned);
+    --  Return the power of ``Left`` by ``Right`` where ``Left`` is a
+    --  Long_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.
  
  end System.Exp_LLLU;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expllu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-expllu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,57 ****
  --  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,
-                          Contract_Cases => Ignore,
-                          Ghost          => Ignore);
- 
  with System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_LLU
    with SPARK_Mode
  is
- 
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
     function Exp_Long_Long_Unsigned is new Exponu (Long_Long_Unsigned);
--- 34,45 ----
*************** is
*** 62,68 ****
     --  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;
--- 50,54 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expmod.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expmod.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-expmod.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expmod.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,231 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  Preconditions, postconditions, 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 (Pre            => Ignore,
-                          Post           => Ignore,
-                          Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  package body System.Exp_Mod
    with SPARK_Mode
  is
     use System.Unsigned_Types;
  
-    --  Local lemmas
- 
-    procedure Lemma_Add_Mod (X, Y : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      Post => (X + Y) mod B = ((X mod B) + (Y mod B)) mod B;
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_Mod (A : Big_Natural; Exp : Natural; B : Big_Positive)
-    with
-      Ghost,
-      Subprogram_Variant => (Decreases => Exp),
-      Post => ((A mod B) ** Exp) mod B = (A ** Exp) mod B;
- 
-    procedure Lemma_Mod_Ident (A : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      Pre => A < B,
-      Post => A mod B = A;
- 
-    procedure Lemma_Mod_Mod (A : Big_Integer; B : Big_Positive)
-    with
-      Ghost,
-      Post => A mod B mod B = A mod B;
- 
-    procedure Lemma_Mult_Div (X : Big_Natural; Y : Big_Positive)
-    with
-      Ghost,
-      Post => X * Y / Y = X;
- 
-    procedure Lemma_Mult_Mod (X, Y : Big_Natural; B : Big_Positive)
-    with
-      Ghost,
-      --  The following subprogram variant can be added as soon as supported
-      --  Subprogram_Variant => (Decreases => Y),
-      Post => (X * Y) mod B = ((X mod B) * (Y mod B)) mod B;
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Mod_Ident (A : Big_Natural; B : Big_Positive) is null;
-    procedure Lemma_Mod_Mod (A : Big_Integer; B : Big_Positive) is null;
-    procedure Lemma_Mult_Div (X : Big_Natural; Y : Big_Positive) is null;
- 
-    -------------------
-    -- Lemma_Add_Mod --
-    -------------------
- 
-    procedure Lemma_Add_Mod (X, Y : Big_Natural; B : Big_Positive) is
- 
-       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) with
-         Pre  => F /= 0,
-         Post => (Q * F + R) mod F = R mod F,
-         Subprogram_Variant => (Decreases => Q);
- 
-       -------------------------
-       -- Lemma_Euclidean_Mod --
-       -------------------------
- 
-       procedure Lemma_Euclidean_Mod (Q, F, R : Big_Natural) is
-       begin
-          if Q > 0 then
-             Lemma_Euclidean_Mod (Q - 1, F, R);
-          end if;
-       end Lemma_Euclidean_Mod;
- 
-       --  Local variables
- 
-       Left  : constant Big_Natural := (X + Y) mod B;
-       Right : constant Big_Natural := ((X mod B) + (Y mod B)) mod B;
-       XQuot : constant Big_Natural := X / B;
-       YQuot : constant Big_Natural := Y / B;
-       AQuot : constant Big_Natural := (X mod B + Y mod B) / B;
-    begin
-       if Y /= 0 and B > 1 then
-          pragma Assert (X = XQuot * B + X mod B);
-          pragma Assert (Y = YQuot * B + Y mod B);
-          pragma Assert
-            (Left = ((XQuot + YQuot) * B + X mod B + Y mod B) mod B);
-          pragma Assert (X mod B + Y mod B = AQuot * B + Right);
-          pragma Assert (Left = ((XQuot + YQuot + AQuot) * B + Right) mod B);
-          Lemma_Euclidean_Mod (XQuot + YQuot + AQuot, B, Right);
-          pragma Assert (Left = (Right mod B));
-          pragma Assert (Left = Right);
-       end if;
-    end Lemma_Add_Mod;
- 
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    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;
- 
-    -------------------
-    -- Lemma_Exp_Mod --
-    -------------------
- 
-    procedure Lemma_Exp_Mod (A : Big_Natural; Exp : Natural; B : Big_Positive)
-    is
-    begin
-       if Exp /= 0 then
-          declare
-             Left  : constant Big_Integer := ((A mod B) ** Exp) mod B;
-             Right : constant Big_Integer := (A ** Exp) mod B;
-          begin
-             Lemma_Mult_Mod (A mod B, (A mod B) ** (Exp - 1), B);
-             Lemma_Mod_Mod (A, B);
-             Lemma_Exp_Mod (A, Exp - 1, B);
-             Lemma_Mult_Mod (A, A ** (Exp - 1), B);
-             pragma Assert
-               ((A mod B) * (A mod B) ** (Exp - 1) = (A mod B) ** Exp);
-             pragma Assert (A * A ** (Exp - 1) = A ** Exp);
-             pragma Assert (Left = Right);
-          end;
-       end if;
-    end Lemma_Exp_Mod;
- 
-    --------------------
-    -- Lemma_Mult_Mod --
-    --------------------
- 
-    procedure Lemma_Mult_Mod (X, Y : Big_Natural; B : Big_Positive) is
-       Left : constant Big_Natural := (X * Y) mod B;
-       Right : constant Big_Natural := ((X mod B) * (Y mod B)) mod B;
-    begin
-       if Y /= 0 and B > 1 then
-          Lemma_Add_Mod (X * (Y - 1), X, B);
-          Lemma_Mult_Mod (X, Y - 1, B);
-          Lemma_Mod_Mod (X, B);
-          Lemma_Add_Mod ((X mod B) * ((Y - 1) mod B), X mod B, B);
-          Lemma_Add_Mod (Y - 1, 1, B);
-          pragma Assert (((Y - 1) mod B + 1) mod B = Y mod B);
-          if (Y - 1) mod B + 1 < B then
-             Lemma_Mod_Ident ((Y - 1) mod B + 1, B);
-             Lemma_Mod_Mod ((X mod B) * (Y mod B), B);
-             pragma Assert (Left = Right);
-          else
-             pragma Assert (Y mod B = 0);
-             pragma Assert (Y / B * B = Y);
-             pragma Assert ((X * Y) mod B = (X * Y) - (X * Y) / B * B);
-             pragma Assert
-               ((X * Y) mod B = (X * Y) - (X * (Y / B) * B) / B * B);
-             Lemma_Mult_Div (X * (Y / B), B);
-             pragma Assert (Left = 0);
-             pragma Assert (Left = Right);
-          end if;
-       end if;
-    end Lemma_Mult_Mod;
- 
     -----------------
     -- Exp_Modular --
     -----------------
--- 29,39 ----
*************** is
*** 241,275 ****
  
        function Mult (X, Y : Unsigned) return Unsigned is
          (Unsigned (Long_Long_Unsigned (X) * Long_Long_Unsigned (Y)
!                     mod Long_Long_Unsigned (Modulus)))
!       with
!         Pre => Modulus /= 0;
!       --  Modular multiplication. Note that we can't take advantage of the
!       --  compiler's circuit, because the modulus is not known statically.
! 
!       --  Local ghost variables, functions and lemmas
! 
!       M : constant Big_Positive := Big (Modulus) with Ghost;
! 
!       function Equal_Modulo (X, Y : Big_Integer) return Boolean is
!          (X mod M = Y mod M)
!       with
!         Ghost,
!         Pre => Modulus /= 0;
! 
!       procedure Lemma_Mult (X, Y : Unsigned)
!       with
!         Ghost,
!         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
  
     begin
        pragma Assert (Modulus /= 1);
--- 49,55 ----
  
        function Mult (X, Y : Unsigned) return Unsigned is
          (Unsigned (Long_Long_Unsigned (X) * Long_Long_Unsigned (Y)
!                     mod Long_Long_Unsigned (Modulus)));
  
     begin
        pragma Assert (Modulus /= 1);
*************** is
*** 284,355 ****
  
        if Exp /= 0 then
           loop
-             pragma Loop_Invariant (Exp > 0);
-             pragma Loop_Invariant (Result < Modulus);
-             pragma Loop_Invariant (Equal_Modulo
-               (Big (Result) * Big (Factor) ** Exp, Big (Left) ** Right));
-             pragma Loop_Variant (Decreases => Exp);
- 
              if Exp rem 2 /= 0 then
-                pragma Assert
-                  (Big (Factor) ** Exp
-                   = Big (Factor) * Big (Factor) ** (Exp - 1));
-                pragma Assert (Equal_Modulo
-                  ((Big (Result) * Big (Factor)) * Big (Factor) ** (Exp - 1),
-                   Big (Left) ** Right));
-                pragma Assert (Big (Factor) >= 0);
-                Lemma_Mult_Mod (Big (Result) * Big (Factor),
-                                   Big (Factor) ** (Exp - 1),
-                                   Big (Modulus));
-                Lemma_Mult (Result, Factor);
- 
                 Result := Mult (Result, Factor);
- 
-                Lemma_Mod_Ident (Big (Result), Big (Modulus));
-                Lemma_Mod_Mod (Big (Factor) ** (Exp - 1), Big (Modulus));
-                Lemma_Mult_Mod (Big (Result),
-                                   Big (Factor) ** (Exp - 1),
-                                   Big (Modulus));
-                pragma Assert (Equal_Modulo
-                  (Big (Result) * Big (Factor) ** (Exp - 1),
-                   Big (Left) ** Right));
-                Lemma_Exp_Expand (Big (Factor), Exp - 1);
-                pragma Assert (Exp / 2 = (Exp - 1) / 2);
              end if;
  
-             Lemma_Exp_Expand (Big (Factor), Exp);
- 
              Exp := Exp / 2;
              exit when Exp = 0;
  
-             Rest := Big (Factor) ** Exp;
-             pragma Assert (Equal_Modulo
-               (Big (Result) * (Rest * Rest), Big (Left) ** Right));
-             Lemma_Exp_Mod (Big (Factor) * Big (Factor), Exp, Big (Modulus));
-             pragma Assert
-               ((Big (Factor) * Big (Factor)) ** Exp = Rest * Rest);
-             pragma Assert (Equal_Modulo
-               ((Big (Factor) * Big (Factor)) ** Exp,
-                Rest * Rest));
-             Lemma_Mult (Factor, Factor);
- 
              Factor := Mult (Factor, Factor);
- 
-             Lemma_Mod_Mod (Rest * Rest, Big (Modulus));
-             Lemma_Mod_Ident (Big (Result), Big (Modulus));
-             Lemma_Mult_Mod (Big (Result), Rest * Rest, Big (Modulus));
-             pragma Assert (Big (Factor) >= 0);
-             Lemma_Mult_Mod (Big (Result), Big (Factor) ** Exp,
-                                Big (Modulus));
-             pragma Assert (Equal_Modulo
-               (Big (Result) * Big (Factor) ** Exp, Big (Left) ** Right));
           end loop;
- 
-          pragma Assert (Big (Result) = Big (Left) ** Right mod Big (Modulus));
        end if;
  
        return Result;
- 
     end Exp_Modular;
  
  end System.Exp_Mod;
--- 64,81 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expmod.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expmod.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expmod.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expmod.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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,54 ****
  --  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.
  
- --  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.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  with System.Unsigned_Types;
  
  package System.Exp_Mod
--- 36,41 ----
*************** is
*** 57,86 ****
     use type System.Unsigned_Types.Unsigned;
     subtype Unsigned is System.Unsigned_Types.Unsigned;
  
-    use type Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer;
-    subtype Big_Integer is
-      Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Big_Integer
-    with Ghost;
- 
-    package Unsigned_Conversion is
-      new Ada.Numerics.Big_Numbers.Big_Integers_Ghost.Unsigned_Conversions
-        (Int => Unsigned);
- 
-    function Big (Arg : Unsigned) return Big_Integer is
-      (Unsigned_Conversion.To_Big_Integer (Arg))
-    with Ghost;
- 
-    subtype Power_Of_2 is Unsigned with
-      Dynamic_Predicate =>
-         Power_Of_2 /= 0 and then (Power_Of_2 and (Power_Of_2 - 1)) = 0;
- 
     function Exp_Modular
       (Left    : Unsigned;
        Modulus : Unsigned;
!       Right   : Natural) return Unsigned
!    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:
--- 44,53 ----
     use type System.Unsigned_Types.Unsigned;
     subtype Unsigned is System.Unsigned_Types.Unsigned;
  
     function Exp_Modular
       (Left    : Unsigned;
        Modulus : Unsigned;
!       Right   : Natural) return Unsigned;
     --  Return the power of ``Left`` by ``Right` modulo ``Modulus``.
     --
     --  This function is implemented using the standard logarithmic approach:
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponn.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponn.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exponn.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponn.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,96 ****
  package body System.Exponn
    with SPARK_Mode
  is
- 
-    --  Preconditions, postconditions, 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 (Pre            => Ignore,
-                             Post           => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    --  Local lemmas
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive)
-    with
-      Ghost,
-      Pre  => In_Int_Range (A ** Exp * A ** Exp),
-      Post => In_Int_Range (A * A);
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post => A ** Exp /= 0;
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0
-        and then Exp rem 2 = 0,
-      Post => A ** Exp > 0;
- 
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0
-        and then not (X = -Big (Int'First) and Y = -1)
-        and then X * Y = Z
-        and then In_Int_Range (Z),
-      Post => In_Int_Range (X);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural) is null;
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer) is null;
- 
     -----------
     -- Expon --
     -----------
--- 32,37 ----
*************** is
*** 104,116 ****
        Factor : Int     := Left;
        Exp    : Natural := Right;
  
-       Rest : Big_Integer with Ghost;
-       --  Ghost variable to hold Factor**Exp between Exp and Factor updates
- 
     begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "early returns for performance");
- 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
--- 45,51 ----
*************** is
*** 122,238 ****
        --  simpler, so we do it.
  
        if Right = 0 then
!          return 1;
        elsif Left = 0 then
!          return 0;
!       end if;
  
!       loop
!          pragma Loop_Invariant (Exp > 0);
!          pragma Loop_Invariant (Factor /= 0);
!          pragma Loop_Invariant
!            (Big (Result) * Big (Factor) ** Exp = Big (Left) ** Right);
!          pragma Loop_Variant (Decreases => Exp);
  
-          if Exp rem 2 /= 0 then
              declare
                 pragma Suppress (Overflow_Check);
              begin
!                pragma Assert
!                  (Big (Factor) ** Exp
!                   = Big (Factor) * Big (Factor) ** (Exp - 1));
!                Lemma_Exp_Positive (Big (Factor), Exp - 1);
!                Lemma_Mult_In_Range (Big (Result) * Big (Factor),
!                                     Big (Factor) ** (Exp - 1),
!                                     Big (Left) ** Right);
! 
!                Result := Result * Factor;
              end;
!          end if;
! 
!          Lemma_Exp_Expand (Big (Factor), Exp);
! 
!          Exp := Exp / 2;
!          exit when Exp = 0;
! 
!          Rest := Big (Factor) ** Exp;
!          pragma Assert
!            (Big (Result) * (Rest * Rest) = Big (Left) ** Right);
! 
!          declare
!             pragma Suppress (Overflow_Check);
!          begin
!             Lemma_Mult_In_Range (Rest * Rest,
!                                  Big (Result),
!                                  Big (Left) ** Right);
!             Lemma_Exp_In_Range (Big (Factor), Exp);
! 
!             Factor := Factor * Factor;
!          end;
! 
!          pragma Assert (Big (Factor) ** Exp = Rest * Rest);
!       end loop;
! 
!       pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    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;
- 
-    ------------------------
-    -- Lemma_Exp_In_Range --
-    ------------------------
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive) is
-    begin
-       if A /= 0 and Exp /= 1 then
-          pragma Assert (A ** Exp = A * A ** (Exp - 1));
-          Lemma_Mult_In_Range
-            (A * A, A ** (Exp - 1) * A ** (Exp - 1), A ** Exp * A ** Exp);
-       end if;
-    end Lemma_Exp_In_Range;
- 
-    ------------------------
-    -- Lemma_Exp_Positive --
-    ------------------------
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural) is
-    begin
-       if Exp = 0 then
-          pragma Assert (A ** Exp = 1);
-       else
-          pragma Assert (Exp = 2 * (Exp / 2));
-          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2));
-          pragma Assert (A ** Exp = (A ** (Exp / 2)) ** 2);
-          Lemma_Exp_Not_Zero (A, Exp / 2);
-       end if;
-    end Lemma_Exp_Positive;
- 
  end System.Exponn;
--- 57,87 ----
        --  simpler, so we do it.
  
        if Right = 0 then
!          Result := 1;
        elsif Left = 0 then
!          Result := 0;
!       else
!          loop
!             if Exp rem 2 /= 0 then
!                declare
!                   pragma Suppress (Overflow_Check);
!                begin
!                   Result := Result * Factor;
!                end;
!             end if;
  
!             Exp := Exp / 2;
!             exit when Exp = 0;
  
              declare
                 pragma Suppress (Overflow_Check);
              begin
!                Factor := Factor * Factor;
              end;
!          end loop;
!       end if;
  
        return Result;
     end Expon;
  
  end System.Exponn;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponn.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponn.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exponn.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponn.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,75 ****
  --  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;
- 
  generic
- 
     type Int is range <>;
  
  package System.Exponn
    with Pure, SPARK_Mode
  is
!    --  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);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is new BI_Ghost.Signed_Conversions (Int => Int);
! 
!    function Big (Arg : Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Int'First), Big (Int'Last)))
!    with Ghost;
! 
!    function Expon (Left : Int; Right : Natural) return Int
!    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:
--- 32,44 ----
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks disabled.
  
  generic
     type Int is range <>;
  
  package System.Exponn
    with Pure, SPARK_Mode
  is
!    function Expon (Left : Int; Right : Natural) return Int;
     --  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:
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponr.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponr.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exponr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponr.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponr.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponr.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exponr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponr.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expont.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expont.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-expont.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expont.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,96 ****
  package body System.Expont
    with SPARK_Mode
  is
- 
-    --  Preconditions, postconditions, 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 (Pre            => Ignore,
-                             Post           => Ignore,
-                             Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    --  Local lemmas
- 
-    procedure Lemma_Exp_Expand (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post =>
-        (if Exp rem 2 = 0 then
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2)
-         else
-           A ** Exp = A ** (Exp / 2) * A ** (Exp / 2) * A);
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive)
-    with
-      Ghost,
-      Pre  => In_Int_Range (A ** Exp * A ** Exp),
-      Post => In_Int_Range (A * A);
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0,
-      Post => A ** Exp /= 0;
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural)
-    with
-      Ghost,
-      Pre  => A /= 0
-        and then Exp rem 2 = 0,
-      Post => A ** Exp > 0;
- 
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer)
-    with
-      Ghost,
-      Pre  => Y /= 0
-        and then not (X = -Big (Int'First) and Y = -1)
-        and then X * Y = Z
-        and then In_Int_Range (Z),
-      Post => In_Int_Range (X);
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Exp_Not_Zero (A : Big_Integer; Exp : Natural) is null;
-    procedure Lemma_Mult_In_Range (X, Y, Z : Big_Integer) is null;
- 
     -----------
     -- Expon --
     -----------
--- 32,37 ----
*************** is
*** 104,116 ****
        Factor : Int     := Left;
        Exp    : Natural := Right;
  
-       Rest : Big_Integer with Ghost;
-       --  Ghost variable to hold Factor**Exp between Exp and Factor updates
- 
     begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "early returns for performance");
- 
        --  We use the standard logarithmic approach, Exp gets shifted right
        --  testing successive low order bits and Factor is the value of the
        --  base raised to the next power of 2.
--- 45,51 ----
*************** is
*** 122,238 ****
        --  simpler, so we do it.
  
        if Right = 0 then
!          return 1;
        elsif Left = 0 then
!          return 0;
!       end if;
  
!       loop
!          pragma Loop_Invariant (Exp > 0);
!          pragma Loop_Invariant (Factor /= 0);
!          pragma Loop_Invariant
!            (Big (Result) * Big (Factor) ** Exp = Big (Left) ** Right);
!          pragma Loop_Variant (Decreases => Exp);
  
-          if Exp rem 2 /= 0 then
              declare
                 pragma Unsuppress (Overflow_Check);
              begin
!                pragma Assert
!                  (Big (Factor) ** Exp
!                   = Big (Factor) * Big (Factor) ** (Exp - 1));
!                Lemma_Exp_Positive (Big (Factor), Exp - 1);
!                Lemma_Mult_In_Range (Big (Result) * Big (Factor),
!                                     Big (Factor) ** (Exp - 1),
!                                     Big (Left) ** Right);
! 
!                Result := Result * Factor;
              end;
!          end if;
! 
!          Lemma_Exp_Expand (Big (Factor), Exp);
! 
!          Exp := Exp / 2;
!          exit when Exp = 0;
! 
!          Rest := Big (Factor) ** Exp;
!          pragma Assert
!            (Big (Result) * (Rest * Rest) = Big (Left) ** Right);
! 
!          declare
!             pragma Unsuppress (Overflow_Check);
!          begin
!             Lemma_Mult_In_Range (Rest * Rest,
!                                  Big (Result),
!                                  Big (Left) ** Right);
!             Lemma_Exp_In_Range (Big (Factor), Exp);
! 
!             Factor := Factor * Factor;
!          end;
! 
!          pragma Assert (Big (Factor) ** Exp = Rest * Rest);
!       end loop;
! 
!       pragma Assert (Big (Result) = Big (Left) ** Right);
  
        return Result;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
     end Expon;
  
-    ----------------------
-    -- Lemma_Exp_Expand --
-    ----------------------
- 
-    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;
- 
-    ------------------------
-    -- Lemma_Exp_In_Range --
-    ------------------------
- 
-    procedure Lemma_Exp_In_Range (A : Big_Integer; Exp : Positive) is
-    begin
-       if A /= 0 and Exp /= 1 then
-          pragma Assert (A ** Exp = A * A ** (Exp - 1));
-          Lemma_Mult_In_Range
-            (A * A, A ** (Exp - 1) * A ** (Exp - 1), A ** Exp * A ** Exp);
-       end if;
-    end Lemma_Exp_In_Range;
- 
-    ------------------------
-    -- Lemma_Exp_Positive --
-    ------------------------
- 
-    procedure Lemma_Exp_Positive (A : Big_Integer; Exp : Natural) is
-    begin
-       if Exp = 0 then
-          pragma Assert (A ** Exp = 1);
-       else
-          pragma Assert (Exp = 2 * (Exp / 2));
-          pragma Assert (A ** Exp = A ** (Exp / 2) * A ** (Exp / 2));
-          pragma Assert (A ** Exp = (A ** (Exp / 2)) ** 2);
-          Lemma_Exp_Not_Zero (A, Exp / 2);
-       end if;
-    end Lemma_Exp_Positive;
- 
  end System.Expont;
--- 57,87 ----
        --  simpler, so we do it.
  
        if Right = 0 then
!          Result := 1;
        elsif Left = 0 then
!          Result := 0;
!       else
!          loop
!             if Exp rem 2 /= 0 then
!                declare
!                   pragma Unsuppress (Overflow_Check);
!                begin
!                   Result := Result * Factor;
!                end;
!             end if;
  
!             Exp := Exp / 2;
!             exit when Exp = 0;
  
              declare
                 pragma Unsuppress (Overflow_Check);
              begin
!                Factor := Factor * Factor;
              end;
!          end loop;
!       end if;
  
        return Result;
     end Expon;
  
  end System.Expont;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expont.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expont.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expont.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expont.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,75 ****
  --  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;
- 
  generic
- 
     type Int is range <>;
  
  package System.Expont
    with Pure, SPARK_Mode
  is
!    --  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);
! 
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Signed_Conversion is new BI_Ghost.Signed_Conversions (Int => Int);
! 
!    function Big (Arg : Int) return Big_Integer is
!      (Signed_Conversion.To_Big_Integer (Arg))
!    with Ghost;
! 
!    function In_Int_Range (Arg : Big_Integer) return Boolean is
!      (BI_Ghost.In_Range (Arg, Big (Int'First), Big (Int'Last)))
!    with Ghost;
! 
!    function Expon (Left : Int; Right : Natural) return Int
!    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:
--- 32,44 ----
  --  This package provides functions for signed integer exponentiation. This
  --  is the version of the package with checks enabled.
  
  generic
     type Int is range <>;
  
  package System.Expont
    with Pure, SPARK_Mode
  is
!    function Expon (Left : Int; Right : Natural) return Int;
     --  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:
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-exponu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,48 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! function System.Exponu (Left : Int; Right : Natural) return Int
!   with SPARK_Mode
! is
!    --  Preconditions, postconditions, 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 (Pre            => Ignore,
!                             Post           => Ignore,
!                             Ghost          => Ignore,
!                             Loop_Invariant => Ignore,
!                             Assert         => Ignore);
! 
     --  Note that negative exponents get a constraint error because the
     --  subtype of the Right argument (the exponent) is Natural.
  
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! function System.Exponu (Left : Int; Right : Natural) return Int is
     --  Note that negative exponents get a constraint error because the
     --  subtype of the Right argument (the exponent) is Natural.
  
*************** begin
*** 61,76 ****
  
     if Exp /= 0 then
        loop
-          pragma Loop_Invariant (Exp > 0);
-          pragma Loop_Invariant (Result * Factor ** Exp = Left ** Right);
-          pragma Loop_Variant (Decreases => Exp);
- 
           if Exp rem 2 /= 0 then
-             pragma Assert
-               (Result * (Factor * Factor ** (Exp - 1)) = Left ** Right);
-             pragma Assert
-               ((Result * Factor) * Factor ** (Exp - 1) = Left ** Right);
- 
              Result := Result * Factor;
           end if;
  
--- 48,54 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-exponu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-exponu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-exponu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,55 ****
  
  --  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
- --  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);
- 
  generic
- 
     type Int is mod <>;
  
! function System.Exponu (Left : Int; Right : Natural) return Int
! 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:
--- 31,40 ----
  
  --  This function implements unsigned integer exponentiation
  
  generic
     type Int is mod <>;
  
! function System.Exponu (Left : Int; Right : Natural) return Int;
  --  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:
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expuns.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expuns.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-expuns.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expuns.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-expuns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expuns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-expuns.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-expuns.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,58 ****
  --  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
- --  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 System.Exponu;
  with System.Unsigned_Types;
  
  package System.Exp_Uns
    with SPARK_Mode
  is
- 
     subtype Unsigned is Unsigned_Types.Unsigned;
  
     function Exp_Unsigned is new Exponu (Unsigned);
--- 35,46 ----
*************** is
*** 63,69 ****
     --  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;
--- 51,55 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fatflt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatflt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fatflt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatflt.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fatgen.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatgen.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-fatgen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatgen.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fatgen.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatgen.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fatgen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatgen.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fatlfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatlfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fatlfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatlfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fatllf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatllf.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fatllf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fatllf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-ficobl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ficobl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-ficobl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ficobl.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2025, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 1992-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-filatt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-filatt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-filatt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-filatt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2013-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fileio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fileio.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-fileio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fileio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fileio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fileio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fileio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fileio.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-finpri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finpri.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-finpri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finpri.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2023-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-finpri.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finpri.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-finpri.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finpri.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2023-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-finroo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finroo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-finroo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finroo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-finroo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finroo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-finroo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-finroo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-flocon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-flocon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-flocon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-flocon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2000-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-flocon__none.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon__none.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-flocon__none.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-flocon__none.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                       Copyright (C) 2011-2026, AdaCore                   --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fode128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fode128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fode32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fode32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fode64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fode64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fode64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fofi128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fofi128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fofi32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fofi32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fofi64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fofi64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fofi64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fore_d.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_d.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-fore_d.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_d.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fore_d.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_d.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fore_d.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_d.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fore_f.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_f.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-fore_f.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_f.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-fore_f.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_f.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-fore_f.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-fore_f.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-forrea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-forrea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-forrea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-forrea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-forrea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-forrea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-forrea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-forrea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-gearop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gearop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-gearop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gearop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2006-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-gearop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gearop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-gearop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gearop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2006-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-genbig.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-genbig.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-genbig.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-genbig.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2012-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1132,1137 ****
--- 1132,1147 ----
        return Unsigned_64 (Unsigned_128'(From_Bignum (X)));
     end From_Bignum;
  
+    function From_Bignum (X : Bignum) return Long_Long_Unsigned is
+    begin
+       return Long_Long_Unsigned (Unsigned_128'(From_Bignum (X)));
+    end From_Bignum;
+ 
+    function From_Bignum (X : Bignum) return Long_Long_Long_Unsigned is
+    begin
+       return Long_Long_Long_Unsigned (Unsigned_128'(From_Bignum (X)));
+    end From_Bignum;
+ 
     -------------------------
     -- Bignum_In_LLI_Range --
     -------------------------
*************** package body System.Generic_Bignums is
*** 1297,1302 ****
--- 1307,1322 ----
     begin
        return To_Bignum (Unsigned_128 (X));
     end To_Bignum;
+ 
+    function To_Bignum (X : Long_Long_Unsigned) return Big_Integer is
+    begin
+       return To_Bignum (Unsigned_128 (X));
+    end To_Bignum;
+ 
+    function To_Bignum (X : Long_Long_Long_Unsigned) return Big_Integer is
+    begin
+       return To_Bignum (Unsigned_128 (X));
+    end To_Bignum;
  
     ---------------
     -- To_String --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-genbig.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-genbig.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-genbig.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-genbig.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 ----
  
  with Interfaces;
  with System.Shared_Bignums;
+ with System.Unsigned_Types;
  
  generic
     type Big_Integer is private;
*************** generic
*** 53,59 ****
--- 54,64 ----
  package System.Generic_Bignums is
     pragma Preelaborate;
  
+    package SU renames System.Unsigned_Types;
+ 
     subtype Bignum is Shared_Bignums.Bignum;
+    subtype Long_Long_Unsigned is SU.Long_Long_Unsigned;
+    subtype Long_Long_Long_Unsigned is SU.Long_Long_Long_Unsigned;
  
     --  Note that this package never shares an allocated Big_Integer value, so
     --  so for example for X + 0, a copy of X is returned, not X itself.
*************** package System.Generic_Bignums is
*** 101,110 ****
--- 106,123 ----
     --  Convert Long_Long_Integer to a big integer. No exception can be raised
     --  for any input argument.
  
+    function To_Bignum (X : Long_Long_Unsigned) return Big_Integer;
+    --  Convert Long_Long_Unsigned to a big integer. No exception can be raised
+    --  for any input argument.
+ 
     function To_Bignum (X : Long_Long_Long_Integer) return Big_Integer;
     --  Convert Long_Long_Long_Integer to a big integer. No exception can be
     --  raised.
  
+    function To_Bignum (X : Long_Long_Long_Unsigned) return Big_Integer;
+    --  Convert Long_Long_Long_Unsigned to a big integer. No exception can be
+    --  raised.
+ 
     function To_Bignum (X : Interfaces.Unsigned_64) return Big_Integer;
     --  Convert Unsigned_64 to a big integer. No exception can be raised for any
     --  input argument.
*************** package System.Generic_Bignums is
*** 117,126 ****
--- 130,147 ----
     --  Convert Bignum to Long_Long_Integer. Constraint_Error raised with
     --  appropriate message if value is out of range of Long_Long_Integer.
  
+    function From_Bignum (X : Bignum) return Long_Long_Unsigned;
+    --  Convert Bignum to Long_Long_Unsigned. Constraint_Error raised with
+    --  appropriate message if value is out of range of Long_Long_Unsigned.
+ 
     function From_Bignum (X : Bignum) return Long_Long_Long_Integer;
     --  Convert Bignum to Long_Long_Long_Integer. Constraint_Error raised with
     --  appropriate message if value is out of range of Long_Long_Long_Integer.
  
+    function From_Bignum (X : Bignum) return Long_Long_Long_Unsigned;
+    --  Convert Bignum to Long_Long_Long_Unsigned. Constraint_Error raised with
+    --  appropriate message if value is out of range of Long_Long_Long_Unsigned.
+ 
     function From_Bignum (X : Bignum) return Interfaces.Unsigned_64;
     --  Convert Bignum to Unsigned_64. Constraint_Error raised with
     --  appropriate message if value is out of range of Unsigned_64.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-geveop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-geveop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-geveop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-geveop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-geveop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-geveop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-geveop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-geveop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-gloloc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-gloloc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-gloloc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-gloloc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-gloloc__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-gloloc__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-htable.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-htable.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-htable.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-htable.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                    Copyright (C) 1995-2026, AdaCore                      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-htable.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-htable.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-htable.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-htable.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imad32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imad32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imad32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imad32.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2024-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imad64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imad64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imad64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imad64.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2024-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imagea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2024-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imagea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2024-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imageb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageb.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imageb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageb.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imageb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageb.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imageb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageb.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imaged.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imaged.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imaged.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imaged.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,63 ****
  
  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;
--- 31,40 ----
  
  with System.Image_I;
  with System.Img_Util; use System.Img_Util;
  
  package body System.Image_D is
  
!    package Image_I is new System.Image_I (Int);
  
     procedure Set_Image_Integer
       (V : Int;
*************** package body System.Image_D is
*** 76,82 ****
        Scale : Integer)
     is
        pragma Assert (S'First = 1);
- 
     begin
        --  Add space at start for non-negative numbers
  
--- 53,58 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imaged.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imaged.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imaged.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imaged.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 ****
  --  types.
  
  generic
- 
     type Int is range <>;
-    type Uns is mod <>;
- 
  package System.Image_D is
  
     procedure Image_Decimal
--- 34,40 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagef.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagef.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imagef.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagef.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,55 ****
  
  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_F 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);
- 
     Maxdigs : constant Natural := Int'Width - 2;
     --  Maximum number of decimal digits that can be represented in an Int.
     --  The "-2" accounts for the sign and one extra digit, since we need the
--- 31,39 ----
*************** package body System.Image_F is
*** 70,83 ****
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
!    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;
--- 54,60 ----
     --  if the small is larger than 1, and smaller than 2**(Int'Size - 1) / 10
     --  if the small is smaller than 1.
  
!    package Image_I is new System.Image_I (Int);
  
     procedure Set_Image_Integer
       (V : Int;
*************** package body System.Image_F is
*** 233,239 ****
        Aft0 : Natural)
     is
        pragma Assert (S'First = 1);
- 
     begin
        --  Add space at start for non-negative numbers
  
--- 210,215 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagef.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagef.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imagef.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagef.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,42 ****
  --  point types whose Small is the ratio of two Int values.
  
  generic
- 
     type Int is range <>;
-    type Uns is mod <>;
  
     with procedure Scaled_Divide
            (X, Y, Z : Int;
--- 34,40 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagei.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagei.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imagei.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagei.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,134 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
- with System.Val_Spec;
- 
  package body System.Image_I is
  
-    --  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 (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Pre                => Ignore,
-                             Post               => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     subtype Non_Positive is Int range Int'First .. 0;
  
-    function Uns_Of_Non_Positive (T : Non_Positive) return Uns is
-      (if T = Int'First then Uns (Int'Last) + 1 else Uns (-T));
- 
     procedure Set_Digits
       (T : Non_Positive;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then P <= S'Last - Unsigned_Width_Ghost + 1,
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then P in P'Old + 1 .. S'Last
!        and then UP.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then UP.Scan_Based_Number_Ghost (S, From => P'Old + 1, To => P)
!          = UP.Wrap_Option (Uns_Of_Non_Positive (T));
     --  Set digits of absolute value of T, which is zero or negative. We work
     --  with the negative of the value so that the largest negative number is
     --  not a special case.
  
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns);
- 
-    function Big (Arg : Uns) return Big_Integer renames
-      Unsigned_Conversion.To_Big_Integer;
- 
-    function From_Big (Arg : Big_Integer) return Uns renames
-      Unsigned_Conversion.From_Big_Integer;
- 
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Non_Zero (X : Uns)
-    with
-      Ghost,
-      Pre  => X /= 0,
-      Post => Big (X) /= 0;
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Non_Zero (X : Uns) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
     -------------------
     -- Image_Integer --
     -------------------
--- 29,46 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package body System.Image_I is
  
     subtype Non_Positive is Int range Int'First .. 0;
  
     procedure Set_Digits
       (T : Non_Positive;
        S : in out String;
!       P : in out Natural);
     --  Set digits of absolute value of T, which is zero or negative. We work
     --  with the negative of the value so that the largest negative number is
     --  not a special case.
  
     -------------------
     -- Image_Integer --
     -------------------
*************** package body System.Image_I is
*** 139,182 ****
        P : out Natural)
     is
        pragma Assert (S'First = 1);
- 
-       procedure Prove_Value_Integer
-       with
-         Ghost,
-         Pre => S'First = 1
-           and then S'Last < Integer'Last
-           and then P in 2 .. S'Last
-           and then S (1) in ' ' | '-'
-           and then (S (1) = '-') = (V < 0)
-           and then UP.Only_Decimal_Ghost (S, From => 2, To => P)
-           and then UP.Scan_Based_Number_Ghost (S, From => 2, To => P)
-             = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)),
-         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
-           and then IP.Is_Integer_Ghost (S (1 .. P))
-           and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
-       --  Ghost lemma to prove the value of Value_Integer from the value of
-       --  Scan_Based_Number_Ghost and the sign on a decimal string.
- 
-       -------------------------
-       -- Prove_Value_Integer --
-       -------------------------
- 
-       procedure Prove_Value_Integer is
-          Str : constant String := S (1 .. P);
-       begin
-          pragma Assert (Str'First = 1);
-          pragma Assert (Str (2) /= ' ');
-          pragma Assert
-            (UP.Only_Decimal_Ghost (Str, From => 2, To => P));
-          UP.Prove_Scan_Based_Number_Ghost_Eq (S, Str, From => 2, To => P);
-          pragma Assert
-            (UP.Scan_Based_Number_Ghost (Str, From => 2, To => P)
-             = UP.Wrap_Option (IP.Abs_Uns_Of_Int (V)));
-          IP.Prove_Scan_Only_Decimal_Ghost (Str, V);
-       end Prove_Value_Integer;
- 
-    --  Start of processing for Image_Integer
- 
     begin
        if V >= 0 then
           pragma Annotate (CodePeer, False_Positive, "test always false",
--- 51,56 ----
*************** package body System.Image_I is
*** 190,207 ****
           pragma Assert (P < S'Last - 1);
        end if;
  
!       declare
!          P_Prev : constant Integer := P with Ghost;
!          Offset : constant Positive := (if V >= 0 then 1 else 2) with Ghost;
!       begin
!          Set_Image_Integer (V, S, P);
! 
!          pragma Assert (P_Prev + Offset = 2);
!       end;
!       pragma Assert (if V >= 0 then S (1) = ' ');
!       pragma Assert (S (1) in ' ' | '-');
! 
!       Prove_Value_Integer;
     end Image_Integer;
  
     ----------------
--- 64,70 ----
           pragma Assert (P < S'Last - 1);
        end if;
  
!       Set_Image_Integer (V, S, P);
     end Image_Integer;
  
     ----------------
*************** package body System.Image_I is
*** 215,350 ****
     is
        Nb_Digits : Natural := 0;
        Value     : Non_Positive := T;
- 
-       --  Local ghost variables
- 
-       Pow        : Big_Positive := 1 with Ghost;
-       S_Init     : constant String := S with Ghost;
-       Uns_T      : constant Uns := Uns_Of_Non_Positive (T) with Ghost;
-       Uns_Value  : Uns := Uns_Of_Non_Positive (Value) with Ghost;
-       Prev_Value : Uns with Ghost;
-       Prev_S     : String := S with Ghost;
- 
-       --  Local ghost lemmas
- 
-       procedure Prove_Character_Val (RU : Uns; RI : Non_Positive)
-       with
-         Ghost,
-         Post => RU rem 10 in 0 .. 9
-           and then -(RI rem 10) in 0 .. 9
-           and then Character'Val (48 + RU rem 10) in '0' .. '9'
-           and then Character'Val (48 - RI rem 10) in '0' .. '9';
-       --  Ghost lemma to prove the value of a character corresponding to the
-       --  next figure.
- 
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns)
-       with
-         Ghost,
-         Pre  => Quot = Val / 10
-           and then Rest = Val rem 10,
-         Post => Uns'Last - Rest >= 10 * Quot and then Val = 10 * Quot + Rest;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by 10 and the initial value.
- 
-       procedure Prove_Hexa_To_Unsigned_Ghost (RU : Uns; RI : Int)
-       with
-         Ghost,
-         Pre  => RU in 0 .. 9
-           and then RI in 0 .. 9,
-         Post => UP.Hexa_To_Unsigned_Ghost
-             (Character'Val (48 + RU)) = RU
-           and then UP.Hexa_To_Unsigned_Ghost
-             (Character'Val (48 + RI)) = Uns (RI);
-       --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
-       --  figure when applied to the corresponding character.
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-         with
-           Ghost,
-           Pre =>
-             S'First = Prev_S'First and then S'Last = Prev_S'Last
-             and then S'Last < Natural'Last and then
-             Max in S'Range and then P in S'First .. Max and then
-             (for all I in P + 1 .. Max => Prev_S (I) in '0' .. '9')
-             and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
-             and then S (P) in '0' .. '9'
-             and then V <= Uns'Last / 10
-             and then Uns'Last - UP.Hexa_To_Unsigned_Ghost (S (P))
-               >= 10 * V
-             and then Prev_V =
-               V * 10 + UP.Hexa_To_Unsigned_Ghost (S (P))
-             and then
-               (if P = Max then Prev_V = Res
-                else UP.Scan_Based_Number_Ghost
-                  (Str  => Prev_S,
-                   From => P + 1,
-                   To   => Max,
-                   Base => 10,
-                   Acc  => Prev_V) = UP.Wrap_Option (Res)),
-           Post =>
-             (for all I in P .. Max => S (I) in '0' .. '9')
-             and then UP.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P,
-                To   => Max,
-                Base => 10,
-                Acc  => V) = UP.Wrap_Option (Res);
-       --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
-       --  through an iteration of the loop.
- 
-       procedure Prove_Uns_Of_Non_Positive_Value
-       with
-         Ghost,
-         Pre  => Uns_Value = Uns_Of_Non_Positive (Value),
-         Post => Uns_Value / 10 = Uns_Of_Non_Positive (Value / 10)
-           and then Uns_Value rem 10 = Uns_Of_Non_Positive (Value rem 10);
-       --  Ghost lemma to prove that the relation between Value and its unsigned
-       --  version is preserved.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Character_Val (RU : Uns; RI : Non_Positive) is null;
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns) is null;
-       procedure Prove_Hexa_To_Unsigned_Ghost (RU : Uns; RI : Int) is null;
-       procedure Prove_Uns_Of_Non_Positive_Value is null;
- 
-       ---------------------
-       -- Prove_Scan_Iter --
-       ---------------------
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-       is
-          pragma Unreferenced (Res);
-       begin
-          UP.Lemma_Scan_Based_Number_Ghost_Step
-            (Str  => S,
-             From => P,
-             To   => Max,
-             Base => 10,
-             Acc  => V);
-          if P < Max then
-             UP.Prove_Scan_Based_Number_Ghost_Eq
-               (Prev_S, S, P + 1, Max, 10, Prev_V);
-          else
-             UP.Lemma_Scan_Based_Number_Ghost_Base
-               (Str  => S,
-                From => P + 1,
-                To   => Max,
-                Base => 10,
-                Acc  => Prev_V);
-          end if;
-       end Prove_Scan_Iter;
- 
-    --  Start of processing for Set_Digits
- 
     begin
        pragma Assert (P >= S'First - 1 and P < S'Last);
        --  No check is done since, as documented in the Set_Image_Integer
--- 78,83 ----
*************** package body System.Image_I is
*** 354,443 ****
        --  First we compute the number of characters needed for representing
        --  the number.
        loop
-          Lemma_Div_Commutation (Uns_Of_Non_Positive (Value), 10);
-          Lemma_Div_Twice (Big (Uns_Of_Non_Positive (T)),
-                           Big_10 ** Nb_Digits, Big_10);
-          Prove_Uns_Of_Non_Positive_Value;
- 
           Value := Value / 10;
           Nb_Digits := Nb_Digits + 1;
  
-          Uns_Value := Uns_Value / 10;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (Uns_Value = Uns_Of_Non_Positive (Value));
-          pragma Loop_Invariant (Nb_Digits in 1 .. Unsigned_Width_Ghost - 1);
-          pragma Loop_Invariant (Pow = Big_10 ** Nb_Digits);
-          pragma Loop_Invariant (Big (Uns_Value) = Big (Uns_T) / Pow);
-          pragma Loop_Variant (Increases => Value);
- 
           exit when Value = 0;
- 
-          Lemma_Non_Zero (Uns_Value);
-          pragma Assert (Pow <= Big (Uns'Last));
        end loop;
  
        Value := T;
-       Uns_Value := Uns_Of_Non_Positive (T);
-       Pow := 1;
- 
-       pragma Assert (Uns_Value = From_Big (Big (Uns_T) / Big_10 ** 0));
  
        --  We now populate digits from the end of the string to the beginning
        for J in reverse  1 .. Nb_Digits loop
-          Lemma_Div_Commutation (Uns_Value, 10);
-          Lemma_Div_Twice (Big (Uns_T), Big_10 ** (Nb_Digits - J), Big_10);
-          Prove_Character_Val (Uns_Value, Value);
-          Prove_Hexa_To_Unsigned_Ghost (Uns_Value rem 10, -(Value rem 10));
-          Prove_Uns_Of_Non_Positive_Value;
- 
-          Prev_Value := Uns_Value;
-          Prev_S := S;
-          Pow := Pow * 10;
-          Uns_Value := Uns_Value / 10;
- 
           S (P + J) := Character'Val (48 - (Value rem 10));
           Value := Value / 10;
- 
-          Prove_Euclidian
-            (Val  => Prev_Value,
-             Quot => Uns_Value,
-             Rest => UP.Hexa_To_Unsigned_Ghost (S (P + J)));
- 
-          Prove_Scan_Iter
-            (S, Prev_S, Uns_Value, Prev_Value, Uns_T, P + J, P + Nb_Digits);
- 
-          pragma Loop_Invariant (Uns_Value = Uns_Of_Non_Positive (Value));
-          pragma Loop_Invariant (Uns_Value <= Uns'Last / 10);
-          pragma Loop_Invariant
-            (for all K in S'First .. P => S (K) = S_Init (K));
-          pragma Loop_Invariant
-            (UP.Only_Decimal_Ghost (S, P + J, P + Nb_Digits));
-          pragma Loop_Invariant
-            (for all K in P + J .. P + Nb_Digits => S (K) in '0' .. '9');
-          pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
-          pragma Loop_Invariant (Big (Uns_Value) = Big (Uns_T) / Pow);
-          pragma Loop_Invariant
-            (UP.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P + J,
-                To   => P + Nb_Digits,
-                Base => 10,
-                Acc  => Uns_Value)
-               = UP.Wrap_Option (Uns_T));
        end loop;
  
-       pragma Assert (Big (Uns_Value) = Big (Uns_T) / Big_10 ** (Nb_Digits));
-       pragma Assert (Uns_Value = 0);
-       pragma Assert
-         (UP.Scan_Based_Number_Ghost
-            (Str  => S,
-             From => P + 1,
-             To   => P + Nb_Digits,
-             Base => 10,
-             Acc  => Uns_Value)
-          = UP.Wrap_Option (Uns_T));
- 
        P := P + Nb_Digits;
     end Set_Digits;
  
--- 87,106 ----
*************** package body System.Image_I is
*** 448,459 ****
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural)
!    is
     begin
        if V >= 0 then
           Set_Digits (-V, S, P);
- 
        else
           pragma Assert (P >= S'First - 1 and P < S'Last);
           --  No check is done since, as documented in the specification,
--- 111,120 ----
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural) is
     begin
        if V >= 0 then
           Set_Digits (-V, S, P);
        else
           pragma Assert (P >= S'First - 1 and P < S'Last);
           --  No check is done since, as documented in the specification,
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagei.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagei.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imagei.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagei.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,80 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_I_Spec;
- with System.Value_U_Spec;
- 
  generic
     type Int is range <>;
-    type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
-    with package I_Spec is new System.Value_I_Spec
-      (Int => Int, Uns => Uns, U_Spec => U_Spec) with Ghost;
- 
  package System.Image_I is
-    package IP renames I_Spec;
-    package UP renames U_Spec;
-    use type UP.Uns_Option;
- 
-    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
  
     procedure Image_Integer
       (V : Int;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        and then S'Last < Integer'Last
!        and then S'Last >= Unsigned_Width_Ghost,
!      Post => P in S'Range
!        and then IP.Is_Value_Integer_Ghost (S (1 .. P), V);
     --  Computes Int'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.
--- 33,46 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types.
  
  generic
     type Int is range <>;
  package System.Image_I is
  
     procedure Image_Integer
       (V : Int;
        S : in out String;
!       P : out Natural);
     --  Computes Int'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.
*************** package System.Image_I is
*** 82,112 ****
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then
!          (if V >= 0 then
!             P <= S'Last - Unsigned_Width_Ghost + 1
!           else
!             P <= S'Last - Unsigned_Width_Ghost),
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then
!          (declare
!             Minus  : constant Boolean := S (P'Old + 1) = '-';
!             Offset : constant Positive := (if V >= 0 then 1 else 2);
!             Abs_V  : constant Uns := IP.Abs_Uns_Of_Int (V);
!           begin
!             Minus = (V < 0)
!               and then P in P'Old + Offset .. S'Last
!               and then UP.Only_Decimal_Ghost
!                 (S, From => P'Old + Offset, To => P)
!               and then UP.Scan_Based_Number_Ghost
!                 (S, From => P'Old + Offset, To => P)
!                 = UP.Wrap_Option (Abs_V));
     --  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 Int'Image (V) except that no leading space is stored when V is
--- 48,54 ----
     procedure Set_Image_Integer
       (V : Int;
        S : in out String;
!       P : in out Natural);
     --  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 Int'Image (V) except that no leading space is stored when V is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagen.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagen.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imagen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagen.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagen.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagen.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imagen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagen.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imager.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imager.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imager.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imager.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imager.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imager.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imager.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imager.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imageu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imageu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,107 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- with System.Val_Spec;
- 
  package body System.Image_U is
  
-    --  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 (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
-    package Unsigned_Conversion is new Unsigned_Conversions (Int => Uns);
- 
-    function Big (Arg : Uns) return Big_Integer renames
-      Unsigned_Conversion.To_Big_Integer;
- 
-    function From_Big (Arg : Big_Integer) return Uns renames
-      Unsigned_Conversion.From_Big_Integer;
- 
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Non_Zero (X : Uns)
-    with
-      Ghost,
-      Pre  => X /= 0,
-      Post => Big (X) /= 0;
- 
-    procedure Lemma_Div_Commutation (X, Y : Uns)
-    with
-      Ghost,
-      Pre  => Y /= 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Non_Zero (X : Uns) is null;
-    procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
     --------------------
     -- Image_Unsigned --
     --------------------
--- 29,36 ----
*************** package body System.Image_U is
*** 112,161 ****
        P : out Natural)
     is
        pragma Assert (S'First = 1);
- 
-       procedure Prove_Value_Unsigned
-       with
-         Ghost,
-         Pre => S'First = 1
-           and then S'Last < Integer'Last
-           and then P in 2 .. S'Last
-           and then S (1) = ' '
-           and then U_Spec.Only_Decimal_Ghost (S, From => 2, To => P)
-           and then U_Spec.Scan_Based_Number_Ghost (S, From => 2, To => P)
-             = U_Spec.Wrap_Option (V),
-         Post => not System.Val_Spec.Only_Space_Ghost (S, 1, P)
-           and then U_Spec.Is_Unsigned_Ghost (S (1 .. P))
-           and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
-       --  Ghost lemma to prove the value of Value_Unsigned from the value of
-       --  Scan_Based_Number_Ghost on a decimal string.
- 
-       --------------------------
-       -- Prove_Value_Unsigned --
-       --------------------------
- 
-       procedure Prove_Value_Unsigned is
-          Str : constant String := S (1 .. P);
-       begin
-          pragma Assert (Str'First = 1);
-          pragma Assert (S (2) /= ' ');
-          pragma Assert
-            (U_Spec.Only_Decimal_Ghost (Str, From => 2, To => P));
-          U_Spec.Prove_Scan_Based_Number_Ghost_Eq
-            (S, Str, From => 2, To => P);
-          pragma Assert
-            (U_Spec.Scan_Based_Number_Ghost (Str, From => 2, To => P)
-             = U_Spec.Wrap_Option (V));
-          U_Spec.Prove_Scan_Only_Decimal_Ghost (Str, V);
-       end Prove_Value_Unsigned;
- 
-    --  Start of processing for Image_Unsigned
- 
     begin
        S (1) := ' ';
        P := 1;
        Set_Image_Unsigned (V, S, P);
- 
-       Prove_Value_Unsigned;
     end Image_Unsigned;
  
     ------------------------
--- 41,50 ----
*************** package body System.Image_U is
*** 169,286 ****
     is
        Nb_Digits : Natural := 0;
        Value     : Uns := V;
- 
-       --  Local ghost variables
- 
-       Pow        : Big_Positive := 1 with Ghost;
-       S_Init     : constant String := S with Ghost;
-       Prev_Value : Uns with Ghost;
-       Prev_S     : String := S with Ghost;
- 
-       --  Local ghost lemmas
- 
-       procedure Prove_Character_Val (R : Uns)
-       with
-         Ghost,
-         Post => R rem 10 in 0 .. 9
-           and then Character'Val (48 + R rem 10) in '0' .. '9';
-       --  Ghost lemma to prove the value of a character corresponding to the
-       --  next figure.
- 
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns)
-       with
-         Ghost,
-         Pre  => Quot = Val / 10
-           and then Rest = Val rem 10,
-         Post => Uns'Last - Rest >= 10 * Quot and then Val = 10 * Quot + Rest;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by 10 and the initial value.
- 
-       procedure Prove_Hexa_To_Unsigned_Ghost (R : Uns)
-       with
-         Ghost,
-         Pre  => R in 0 .. 9,
-         Post => U_Spec.Hexa_To_Unsigned_Ghost (Character'Val (48 + R)) = R;
-       --  Ghost lemma to prove that Hexa_To_Unsigned_Ghost returns the source
-       --  figure when applied to the corresponding character.
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-         with
-           Ghost,
-           Pre =>
-             S'First = Prev_S'First and then S'Last = Prev_S'Last
-             and then S'Last < Natural'Last and then
-             Max in S'Range and then P in S'First .. Max and then
-             (for all I in P + 1 .. Max => Prev_S (I) in '0' .. '9')
-             and then (for all I in P + 1 .. Max => Prev_S (I) = S (I))
-             and then S (P) in '0' .. '9'
-             and then V <= Uns'Last / 10
-             and then Uns'Last - U_Spec.Hexa_To_Unsigned_Ghost (S (P))
-               >= 10 * V
-             and then Prev_V =
-               V * 10 + U_Spec.Hexa_To_Unsigned_Ghost (S (P))
-             and then
-               (if P = Max then Prev_V = Res
-                else U_Spec.Scan_Based_Number_Ghost
-                  (Str  => Prev_S,
-                   From => P + 1,
-                   To   => Max,
-                   Base => 10,
-                   Acc  => Prev_V) = U_Spec.Wrap_Option (Res)),
-           Post =>
-             (for all I in P .. Max => S (I) in '0' .. '9')
-             and then U_Spec.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P,
-                To   => Max,
-                Base => 10,
-                Acc  => V) = U_Spec.Wrap_Option (Res);
-       --  Ghost lemma to prove that Scan_Based_Number_Ghost is preserved
-       --  through an iteration of the loop.
- 
-       -----------------------------
-       -- Local lemma null bodies --
-       -----------------------------
- 
-       procedure Prove_Character_Val (R : Uns) is null;
-       procedure Prove_Euclidian (Val, Quot, Rest : Uns) is null;
-       procedure Prove_Hexa_To_Unsigned_Ghost (R : Uns) is null;
- 
-       ---------------------
-       -- Prove_Scan_Iter --
-       ---------------------
- 
-       procedure Prove_Scan_Iter
-         (S, Prev_S      : String;
-          V, Prev_V, Res : Uns;
-          P, Max         : Natural)
-       is
-          pragma Unreferenced (Res);
-       begin
-          U_Spec.Lemma_Scan_Based_Number_Ghost_Step
-            (Str  => S,
-             From => P,
-             To   => Max,
-             Base => 10,
-             Acc  => V);
-          if P < Max then
-             U_Spec.Prove_Scan_Based_Number_Ghost_Eq
-               (Prev_S, S, P + 1, Max, 10, Prev_V);
-          else
-             U_Spec.Lemma_Scan_Based_Number_Ghost_Base
-               (Str  => S,
-                From => P + 1,
-                To   => Max,
-                Base => 10,
-                Acc  => Prev_V);
-          end if;
-       end Prove_Scan_Iter;
- 
-    --  Start of processing for Set_Image_Unsigned
- 
     begin
        pragma Assert (P >= S'First - 1 and then P < S'Last and then
                       P < Natural'Last);
--- 58,63 ----
*************** package body System.Image_U is
*** 290,359 ****
        --  First we compute the number of characters needed for representing
        --  the number.
        loop
-          Lemma_Div_Commutation (Value, 10);
-          Lemma_Div_Twice (Big (V), Big_10 ** Nb_Digits, Big_10);
- 
           Value := Value / 10;
           Nb_Digits := Nb_Digits + 1;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (Nb_Digits in 1 .. Unsigned_Width_Ghost - 1);
-          pragma Loop_Invariant (Pow = Big_10 ** Nb_Digits);
-          pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
-          pragma Loop_Variant (Decreases => Value);
  
           exit when Value = 0;
- 
-          Lemma_Non_Zero (Value);
-          pragma Assert (Pow <= Big (Uns'Last));
        end loop;
-       pragma Assert (Big (V) / (Big_10 ** Nb_Digits) = 0);
  
        Value := V;
-       Pow := 1;
- 
-       pragma Assert (Value = From_Big (Big (V) / Big_10 ** 0));
  
        --  We now populate digits from the end of the string to the beginning
        for J in reverse 1 .. Nb_Digits loop
-          Lemma_Div_Commutation (Value, 10);
-          Lemma_Div_Twice (Big (V), Big_10 ** (Nb_Digits - J), Big_10);
-          Prove_Character_Val (Value);
-          Prove_Hexa_To_Unsigned_Ghost (Value rem 10);
- 
-          Prev_Value := Value;
-          Prev_S := S;
-          Pow := Pow * 10;
           S (P + J) := Character'Val (48 + (Value rem 10));
           Value := Value / 10;
- 
-          Prove_Euclidian
-            (Val  => Prev_Value,
-             Quot => Value,
-             Rest => U_Spec.Hexa_To_Unsigned_Ghost (S (P + J)));
- 
-          Prove_Scan_Iter
-            (S, Prev_S, Value, Prev_Value, V, P + J, P + Nb_Digits);
- 
-          pragma Loop_Invariant (Value <= Uns'Last / 10);
-          pragma Loop_Invariant
-            (for all K in S'First .. P => S (K) = S_Init (K));
-          pragma Loop_Invariant
-            (U_Spec.Only_Decimal_Ghost
-               (S, From => P + J, To => P + Nb_Digits));
-          pragma Loop_Invariant (Pow = Big_10 ** (Nb_Digits - J + 1));
-          pragma Loop_Invariant (Big (Value) = Big (V) / Pow);
-          pragma Loop_Invariant
-            (U_Spec.Scan_Based_Number_Ghost
-               (Str  => S,
-                From => P + J,
-                To   => P + Nb_Digits,
-                Base => 10,
-                Acc  => Value)
-               = U_Spec.Wrap_Option (V));
        end loop;
-       pragma Assert (Big (Value) = Big (V) / (Big_10 ** Nb_Digits));
-       pragma Assert (Value = 0);
  
        P := P + Nb_Digits;
     end Set_Image_Unsigned;
--- 67,85 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imageu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imageu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imageu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,76 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- 
  generic
- 
     type Uns is mod <>;
  
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
  package System.Image_U is
-    use all type U_Spec.Uns_Option;
- 
-    Unsigned_Width_Ghost : constant Natural := U_Spec.Max_Log10 + 2 with Ghost;
  
     procedure Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        and then S'Last < Integer'Last
!        and then S'Last >= Unsigned_Width_Ghost,
!      Post => P in S'Range
!        and then U_Spec.Is_Value_Unsigned_Ghost (S (1 .. P), V);
!    pragma Inline (Image_Unsigned);
     --  Computes Uns'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.
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types.
  
  generic
     type Uns is mod <>;
  
  package System.Image_U is
  
     procedure Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : out Natural) with Inline;
     --  Computes Uns'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.
*************** package System.Image_U is
*** 78,96 ****
     procedure Set_Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : in out Natural)
!    with
!      Pre  => P < Integer'Last
!        and then S'Last < Integer'Last
!        and then S'First <= P + 1
!        and then S'First <= S'Last
!        and then P <= S'Last - Unsigned_Width_Ghost + 1,
!      Post => S (S'First .. P'Old) = S'Old (S'First .. P'Old)
!        and then P in P'Old + 1 .. S'Last
!        and then U_Spec.Only_Decimal_Ghost (S, From => P'Old + 1, To => P)
!        and then U_Spec.Scan_Based_Number_Ghost
!          (S, From => P'Old + 1, To => P)
!          = U_Spec.Wrap_Option (V);
     --  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 Uns'Image (V) except that no leading space is stored. The caller
--- 49,55 ----
     procedure Set_Image_Unsigned
       (V : Uns;
        S : in out String;
!       P : in out Natural);
     --  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 Uns'Image (V) except that no leading space is stored. The caller
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagew.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagew.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imagew.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagew.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imagew.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagew.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imagew.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imagew.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imde128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imde128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_D;
*** 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;
--- 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;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imde32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imde32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_D;
*** 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;
--- 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;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imde64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imde64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imde64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_D;
*** 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;
--- 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;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imen16.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imen16.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imen16.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imen16.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imen32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imen32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imen32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imen32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imenu8.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imenu8.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imenu8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imenu8.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imfi128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imfi128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_F;
*** 39,47 ****
  package System.Img_Fixed_128 is
  
     subtype Int128 is Interfaces.Integer_128;
-    subtype Uns128 is Interfaces.Unsigned_128;
  
!    package Impl is new Image_F (Int128, Uns128, Arith_128.Scaled_Divide128);
  
     procedure Image_Fixed128
       (V    : Int128;
--- 39,46 ----
  package System.Img_Fixed_128 is
  
     subtype Int128 is Interfaces.Integer_128;
  
!    package Impl is new Image_F (Int128, Arith_128.Scaled_Divide128);
  
     procedure Image_Fixed128
       (V    : Int128;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imfi32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imfi32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_F;
*** 39,47 ****
  package System.Img_Fixed_32 is
  
     subtype Int32 is Interfaces.Integer_32;
-    subtype Uns32 is Interfaces.Unsigned_32;
  
!    package Impl is new Image_F (Int32, Uns32, Arith_32.Scaled_Divide32);
  
     procedure Image_Fixed32
       (V    : Int32;
--- 39,46 ----
  package System.Img_Fixed_32 is
  
     subtype Int32 is Interfaces.Integer_32;
  
!    package Impl is new Image_F (Int32, Arith_32.Scaled_Divide32);
  
     procedure Image_Fixed32
       (V    : Int32;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imfi64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imfi64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imfi64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Image_F;
*** 39,47 ****
  package System.Img_Fixed_64 is
  
     subtype Int64 is Interfaces.Integer_64;
-    subtype Uns64 is Interfaces.Unsigned_64;
  
!    package Impl is new Image_F (Int64, Uns64, Arith_64.Scaled_Divide64);
  
     procedure Image_Fixed64
       (V    : Int64;
--- 39,46 ----
  package System.Img_Fixed_64 is
  
     subtype Int64 is Interfaces.Integer_64;
  
!    package Impl is new Image_F (Int64, Arith_64.Scaled_Divide64);
  
     procedure Image_Fixed64
       (V    : Int64;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgbiu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgbiu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgbiu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgbiu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgbiu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgbiu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgbiu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgbiu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgboo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgboo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgboo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgboo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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,60 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Img_Bool
    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 --
     -------------------
--- 29,37 ----
*************** is
*** 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;
  
--- 46,54 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgboo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgboo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgboo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgboo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,65 ****
  --  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
- --  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 System.Val_Spec;
- 
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
  is
- 
     procedure Image_Boolean
       (V : Boolean;
        S : in out String;
!       P : out Natural)
!    with
!      Pre  => S'First = 1
!        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
--- 34,46 ----
  --  This package provides support for ``Image`` attribute on ``Boolean``. The
  --  compiler performs direct calls to this unit to implement the attribute.
  
  package System.Img_Bool
    with SPARK_Mode, Preelaborate
  is
     procedure Image_Boolean
       (V : Boolean;
        S : in out String;
!       P : out Natural);
     --  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
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgcha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgcha.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgcha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgcha.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgcha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgcha.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgcha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgcha.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgflt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgflt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgflt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgflt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgint.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,65 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_Int;
- with System.Vs_Uns;
  
  package System.Img_Int
    with SPARK_Mode
  is
!    subtype Unsigned is Unsigned_Types.Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Integer,
!       Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec,
!       I_Spec => System.Vs_Int.Spec);
  
     procedure Image_Integer
       (V : Integer;
--- 33,44 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types up to Size ``Integer'Size``.
  
  with System.Image_I;
  
  package System.Img_Int
    with SPARK_Mode
  is
!    package Impl is new Image_I (Integer);
  
     procedure Image_Integer
       (V : Integer;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imglfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllb.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllb.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllb.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllb.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllf.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglli.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imglli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imglli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,65 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_LLI;
- with System.Vs_LLU;
  
  package System.Img_LLI
    with SPARK_Mode
  is
!    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Long_Long_Integer,
!       Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec,
!       I_Spec => System.Vs_LLI.Spec);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
--- 33,44 ----
  --  and ``Ada.Text_IO.Integer_IO`` conversions routines for signed integer
  --  types larger than Size ``Integer'Size``.
  
  with System.Image_I;
  
  package System.Img_LLI
    with SPARK_Mode
  is
!    package Impl is new Image_I (Long_Long_Integer);
  
     procedure Image_Long_Long_Integer
       (V : Long_Long_Integer;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglllb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllb.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imglllb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllb.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,65 ****
  --  signed integer types larger than Long_Long_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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_I;
- with System.Unsigned_Types;
- with System.Vs_LLLI;
- with System.Vs_LLLU;
  
  package System.Img_LLLI
    with SPARK_Mode
  is
!    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
! 
!    package Impl is new Image_I
!      (Int    => Long_Long_Long_Integer,
!       Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec,
!       I_Spec => System.Vs_LLLI.Spec);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
--- 33,44 ----
  --  signed integer types larger than Long_Long_Integer, and also for conversion
  --  operations required in Text_IO.Integer_IO for such types.
  
  with System.Image_I;
  
  package System.Img_LLLI
    with SPARK_Mode
  is
!    package Impl is new Image_I (Long_Long_Long_Integer);
  
     procedure Image_Long_Long_Long_Integer
       (V : Long_Long_Long_Integer;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imglllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,62 ****
  --  modular integer types larger than Long_Long_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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_LLLU;
  
  package System.Img_LLLU
    with SPARK_Mode
  is
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Long_Long_Long_Unsigned,
!       U_Spec => System.Vs_LLLU.Spec);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
--- 33,47 ----
  --  modular integer types larger than Long_Long_Unsigned, and also for
  --  conversion operations required in Text_IO.Modular_IO for such types.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_LLLU
    with SPARK_Mode
  is
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Image_U (Uns => Long_Long_Long_Unsigned);
  
     procedure Image_Long_Long_Long_Unsigned
       (V : Long_Long_Long_Unsigned;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imglllw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllw.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imglllw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imglllw.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,62 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_LLU;
  
  package System.Img_LLU
    with SPARK_Mode
  is
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Long_Long_Unsigned,
!       U_Spec => System.Vs_LLU.Spec);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for unsigned (modular)
  --  integer types larger than Size ``Unsigned'Size``.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_LLU
    with SPARK_Mode
  is
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Image_U (Uns => Long_Long_Unsigned);
  
     procedure Image_Long_Long_Unsigned
       (V : Long_Long_Unsigned;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllw.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgllw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllw.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgllw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgllw.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgrea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgrea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgrea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgrea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgrea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgrea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgrea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgrea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imguns.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguns.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imguns.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguns.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imguns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imguns.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguns.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,62 ****
  --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Image_U;
  with System.Unsigned_Types;
- with System.Vs_Uns;
  
  package System.Img_Uns
    with SPARK_Mode
  is
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Image_U
!      (Uns    => Unsigned,
!       U_Spec => System.Vs_Uns.Spec);
  
     procedure Image_Unsigned
       (V : Unsigned;
--- 33,47 ----
  --  and ``Ada.Text_IO.Modular_IO`` conversions routines for modular integer
  --  types up to size ``Unsigned'Size``.
  
  with System.Image_U;
  with System.Unsigned_Types;
  
  package System.Img_Uns
    with SPARK_Mode
  is
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Image_U (Uns => Unsigned);
  
     procedure Image_Unsigned
       (V : Unsigned;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imguti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguti.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imguti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguti.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imguti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguti.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imguti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imguti.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgwch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwch.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgwch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgwch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwch.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgwch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgwiu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwiu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-imgwiu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwiu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-imgwiu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwiu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-imgwiu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-imgwiu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-io.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-io.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-io.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-io.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-io.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-io.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-io.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-io.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-llflex.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-llflex.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-llflex.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-llflex.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-maccod.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-maccod.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-maccod.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-maccod.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-mantis.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mantis.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-mantis.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mantis.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-mantis.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mantis.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mantis.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mantis.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-mastop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mastop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-mastop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mastop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                             (Dummy version)                              --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-mastop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mastop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mastop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mastop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-memcop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memcop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-memcop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memcop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-memory.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memory.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-memory.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memory.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-memory.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memory.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-memory.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-memory.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-mmap.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmap.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-mmap.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmap.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmap.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmap.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mmap.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmap.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmauni__long.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmauni__long.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mmauni__long.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmauni__long.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-mmosin__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mmosin__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmosin__unix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__unix.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-mmosin__unix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__unix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-mmosin__unix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__unix.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-mmosin__unix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-mmosin__unix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2007-2026, 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-15.2.0/gcc/ada/libgnat/s-multip.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-multip.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-multip.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-multip.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --         Copyright (C) 2010-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-objrea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-objrea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-objrea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-objrea.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2009-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-objrea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-objrea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-objrea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-objrea.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-optide.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-optide.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-optide.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-optide.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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 Timed_Delay
*** 36,43 ****
    (Time : Duration;
     Mode : Integer)
  is
!    Request    : aliased timespec;
!    Remaind    : aliased timespec;
     Rel_Time   : Duration;
     Abs_Time   : Duration;
     Base_Time  : constant Duration := Clock;
--- 36,48 ----
    (Time : Duration;
     Mode : Integer)
  is
! 
!    function nanosleep (rqtp, rmtp : not null access C_Time.timespec)
!                        return Integer;
!    pragma Import (C, nanosleep, "nanosleep");
! 
!    Request    : aliased C_Time.timespec;
!    Remaind    : aliased C_Time.timespec;
     Rel_Time   : Duration;
     Abs_Time   : Duration;
     Base_Time  : constant Duration := Clock;
*************** begin
*** 71,77 ****
           end if;
           pragma Warnings (On);
  
!          Request := To_Timespec (Time_Chunk);
           Result := nanosleep (Request'Access, Remaind'Access);
  
           Check_Time := Clock;
--- 76,82 ----
           end if;
           pragma Warnings (On);
  
!          Request := C_Time.To_Timespec (Time_Chunk);
           Result := nanosleep (Request'Access, Remaind'Access);
  
           Check_Time := Clock;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-os_lib.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-os_lib.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-os_lib.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-os_lib.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1995-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.OS_Lib is
*** 2985,2991 ****
     -- To_Ada --
     ------------
  
!    function To_Ada (Time : time_t) return OS_Time is
     begin
        return OS_Time (Time);
     end To_Ada;
--- 2985,2991 ----
     -- To_Ada --
     ------------
  
!    function To_Ada (Time : Long_Long_Integer) return OS_Time is
     begin
        return OS_Time (Time);
     end To_Ada;
*************** package body System.OS_Lib is
*** 3023,3031 ****
     -- To_C --
     ----------
  
!    function To_C (Time : OS_Time) return time_t is
     begin
!       return time_t (Time);
     end To_C;
  
     ------------------
--- 3023,3031 ----
     -- To_C --
     ----------
  
!    function To_C (Time : OS_Time) return Long_Long_Integer is
     begin
!       return Long_Long_Integer (Time);
     end To_C;
  
     ------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-os_lib.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-os_lib.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-os_lib.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-os_lib.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 115,120 ****
--- 115,126 ----
     --  these have Intrinsic convention, so for example it is not permissible
     --  to create accesses to any of these functions.
  
+    function To_Ada (Time : Long_Long_Integer) return OS_Time;
+    --  Convert Long_Long_Integer to OS_Time
+ 
+    function To_C (Time : OS_Time) return Long_Long_Integer;
+    --  Convert OS_Time to Long_Long_Integer
+ 
     subtype Year_Type   is Integer range 1900 .. 2099;
     subtype Month_Type  is Integer range    1 ..   12;
     subtype Day_Type    is Integer range    1 ..   31;
*************** package System.OS_Lib is
*** 161,187 ****
     --  component parts to be interpreted in the local time zone, and returns
     --  an OS_Time. Returns Invalid_Time if the creation fails.
  
-    ------------------
-    -- Time_t Stuff --
-    ------------------
- 
-    --  Note: Do not use time_t in the compiler and host-based tools; instead
-    --  use OS_Time.
- 
-    subtype time_t is Long_Long_Integer;
-    --  C time_t can be either long or long long, so we choose the Ada
-    --  equivalent of the latter because eventually that will be the
-    --  type used out of necessity. This may affect some user code on 32-bit
-    --  targets that have not yet migrated to the Posix 2008 standard,
-    --  particularly pre version 5 32-bit Linux. Do not change this
-    --  declaration without coordinating it with conversions in Ada.Calendar.
- 
-    function To_C (Time : OS_Time) return time_t;
-    --  Convert OS_Time to C time_t type
- 
-    function To_Ada (Time : time_t) return OS_Time;
-    --  Convert C time_t type to OS_Time
- 
     ----------------
     -- File Stuff --
     ----------------
--- 167,172 ----
*************** private
*** 1126,1133 ****
     pragma Import (Intrinsic, ">");
     pragma Import (Intrinsic, "<=");
     pragma Import (Intrinsic, ">=");
-    pragma Inline (To_C);
     pragma Inline (To_Ada);
  
     type Process_Id is new Integer;
     Invalid_Pid : constant Process_Id := -1;
--- 1111,1118 ----
     pragma Import (Intrinsic, ">");
     pragma Import (Intrinsic, "<=");
     pragma Import (Intrinsic, ">=");
     pragma Inline (To_Ada);
+    pragma Inline (To_C);
  
     type Process_Id is new Integer;
     Invalid_Pid : constant Process_Id := -1;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__darwin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__darwin.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__darwin.ads	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__darwin.ads	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,57 ----
+ ------------------------------------------------------------------------------
+ --                                                                          --
+ --                 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) 2025, Free Software Foundation, Inc.          --
+ --                                                                          --
+ -- GNAT is 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 Darwin 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
+       Sig  : Interfaces.C.long;
+       Data : char_array (1 .. OS_Constants.PTHREAD_MUTEX_SIZE);
+    end record;
+    pragma Convention (C, pthread_mutex_t);
+ 
+ end System.OS_Locks;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__dummy.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__dummy.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__dummy.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__dummy.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__mingw.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__posix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__posix.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__posix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__posix.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__solaris.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__solaris.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__solaris.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__solaris.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-oslock__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-oslock__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-oslock__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2024-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__darwin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__darwin.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__darwin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__darwin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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 version is for darwin
  
- with System.Parameters;
  package body System.OS_Primitives is
  
     --  ??? These definitions are duplicated from System.OS_Interface
--- 29,38 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This version is for Darwin
! 
! with System.C_Time;
  
  package body System.OS_Primitives is
  
     --  ??? These definitions are duplicated from System.OS_Interface
*************** package body System.OS_Primitives is
*** 46,72 ****
     pragma Convention (C, struct_timezone);
     type struct_timezone_ptr is access all struct_timezone;
  
-    type time_t is range -2 ** (System.Parameters.time_t_bits - 1)
-      .. 2 ** (System.Parameters.time_t_bits - 1) - 1;
- 
-    type struct_timeval is record
-       tv_sec       : time_t;
-       tv_usec      : Integer;
-    end record;
-    pragma Convention (C, struct_timeval);
- 
     function gettimeofday
!      (tv : not null access struct_timeval;
        tz : struct_timezone_ptr) return Integer;
     pragma Import (C, gettimeofday, "gettimeofday");
  
!    type timespec is record
!       tv_sec  : time_t;
!       tv_nsec : Long_Integer;
!    end record;
!    pragma Convention (C, timespec);
! 
!    function nanosleep (rqtp, rmtp : not null access timespec) return Integer;
     pragma Import (C, nanosleep, "nanosleep");
  
     -----------
--- 47,59 ----
     pragma Convention (C, struct_timezone);
     type struct_timezone_ptr is access all struct_timezone;
  
     function gettimeofday
!      (tv : not null access C_Time.timeval;
        tz : struct_timezone_ptr) return Integer;
     pragma Import (C, gettimeofday, "gettimeofday");
  
!    function nanosleep (rqtp, rmtp : not null access C_Time.timespec)
!                       return Integer;
     pragma Import (C, nanosleep, "nanosleep");
  
     -----------
*************** package body System.OS_Primitives is
*** 74,80 ****
     -----------
  
     function Clock return Duration is
!       TV     : aliased struct_timeval;
  
        Result : Integer;
        pragma Unreferenced (Result);
--- 61,67 ----
     -----------
  
     function Clock return Duration is
!       TV     : aliased C_Time.timeval;
  
        Result : Integer;
        pragma Unreferenced (Result);
*************** package body System.OS_Primitives is
*** 89,125 ****
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, null);
!       return Duration (TV.tv_sec) + Duration (TV.tv_usec) / 10#1#E6;
     end Clock;
  
     -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return 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_Integer (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
-    -----------------
     -- Timed_Delay --
     -----------------
  
--- 76,85 ----
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, null);
!       return C_Time.To_Duration (TV);
     end Clock;
  
     -----------------
     -- Timed_Delay --
     -----------------
  
*************** package body System.OS_Primitives is
*** 127,134 ****
       (Time : Duration;
        Mode : Integer)
     is
!       Request    : aliased timespec;
!       Remaind    : aliased timespec;
        Rel_Time   : Duration;
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
--- 87,94 ----
       (Time : Duration;
        Mode : Integer)
     is
!       Request    : aliased C_Time.timespec;
!       Remaind    : aliased C_Time.timespec;
        Rel_Time   : Duration;
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
*************** package body System.OS_Primitives is
*** 148,154 ****
  
        if Rel_Time > 0.0 then
           loop
!             Request := To_Timespec (Rel_Time);
              Result := nanosleep (Request'Access, Remaind'Access);
              Check_Time := Clock;
  
--- 108,114 ----
  
        if Rel_Time > 0.0 then
           loop
!             Request := C_Time.To_Timespec (Rel_Time);
              Result := nanosleep (Request'Access, Remaind'Access);
              Check_Time := Clock;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__lynxos.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__lynxos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__lynxos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__posix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__posix.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__posix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__posix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,55 ****
  ------------------------------------------------------------------------------
  
  --  This version is for POSIX-like operating systems
- with System.Parameters;
- 
- package body System.OS_Primitives is
- 
-    --  ??? These definitions are duplicated from System.OS_Interface
-    --  because we don't want to depend on any package. Consider removing
-    --  these declarations in System.OS_Interface and move these ones in
-    --  the spec.
  
!    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_Integer;
!    end record;
!    pragma Convention (C, timespec);
  
!    function nanosleep (rqtp, rmtp : not null access timespec) return Integer;
!    pragma Import (C, nanosleep, "nanosleep");
  
     -----------
     -- Clock --
--- 30,39 ----
  ------------------------------------------------------------------------------
  
  --  This version is for POSIX-like operating systems
  
! with System.C_Time;
  
! package body System.OS_Primitives is
  
     -----------
     -- Clock --
*************** package body System.OS_Primitives is
*** 57,83 ****
  
     function Clock return Duration is
  
!       type timeval is array (1 .. 3) of Long_Integer;
!       --  The timeval array is sized to contain Long_Long_Integer sec and
!       --  Long_Integer usec. If Long_Long_Integer'Size = Long_Integer'Size then
!       --  it will be overly large but that will not effect the implementation
!       --  since it is not accessed directly.
! 
!       procedure timeval_to_duration
!         (T    : not null access timeval;
!          sec  : not null access Long_Long_Integer;
!          usec : not null access Long_Integer);
!       pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration");
! 
!       Micro  : constant := 10**6;
!       sec    : aliased Long_Long_Integer;
!       usec   : aliased Long_Integer;
!       TV     : aliased timeval;
        Result : Integer;
        pragma Unreferenced (Result);
  
        function gettimeofday
!         (Tv : access timeval;
           Tz : System.Address := System.Null_Address) return Integer;
        pragma Import (C, gettimeofday, "gettimeofday");
  
--- 41,52 ----
  
     function Clock return Duration is
  
!       TV     : aliased C_Time.timeval;
        Result : Integer;
        pragma Unreferenced (Result);
  
        function gettimeofday
!         (Tv : access C_Time.timeval;
           Tz : System.Address := System.Null_Address) return Integer;
        pragma Import (C, gettimeofday, "gettimeofday");
  
*************** package body System.OS_Primitives is
*** 91,128 ****
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, System.Null_Address);
!       timeval_to_duration (TV'Access, sec'Access, usec'Access);
!       return Duration (sec) + Duration (usec) / Micro;
     end Clock;
  
     -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return 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_Integer (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
-    -----------------
     -- Timed_Delay --
     -----------------
  
--- 60,69 ----
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, System.Null_Address);
!       return C_Time.To_Duration (TV);
     end Clock;
  
     -----------------
     -- Timed_Delay --
     -----------------
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__posix2008.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__posix2008.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__posix2008.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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,65 ****
  --  This version is for POSIX.1-2008-like operating systems
  
  with System.CRTL;
  with System.OS_Constants;
! with System.Parameters;
  package body System.OS_Primitives is
  
     subtype int is System.CRTL.int;
  
-    --  ??? These definitions are duplicated from System.OS_Interface because
-    --  we don't want to depend on any package. Consider removing these
-    --  declarations in System.OS_Interface and move these ones to the spec.
- 
-    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_Integer;
-    end record;
-    pragma Convention (C, timespec);
- 
-    function nanosleep (rqtp, rmtp : not null access timespec) return Integer;
-    pragma Import (C, nanosleep, "nanosleep");
- 
     -----------
     -- Clock --
     -----------
  
     function Clock return Duration is
!       TS     : aliased timespec;
        Result : int;
  
        type clockid_t is new int;
--- 32,50 ----
  --  This version is for POSIX.1-2008-like operating systems
  
  with System.CRTL;
+ with System.C_Time;
  with System.OS_Constants;
! 
  package body System.OS_Primitives is
  
     subtype int is System.CRTL.int;
  
     -----------
     -- Clock --
     -----------
  
     function Clock return Duration is
!       TS     : aliased C_Time.timespec;
        Result : int;
  
        type clockid_t is new int;
*************** package body System.OS_Primitives is
*** 68,110 ****
  
        function clock_gettime
          (clock_id : clockid_t;
!          tp       : access timespec) return int;
        pragma Import (C, clock_gettime, "clock_gettime");
  
     begin
        Result := clock_gettime (CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
!       return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9;
     end Clock;
  
     -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return 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_Integer (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
-    -----------------
     -- Timed_Delay --
     -----------------
  
--- 53,68 ----
  
        function clock_gettime
          (clock_id : clockid_t;
!          tp       : access C_Time.timespec) return int;
        pragma Import (C, clock_gettime, "clock_gettime");
  
     begin
        Result := clock_gettime (CLOCK_REALTIME, TS'Unchecked_Access);
        pragma Assert (Result = 0);
!       return C_Time.To_Duration (TS);
     end Clock;
  
     -----------------
     -- Timed_Delay --
     -----------------
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__rtems.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__rtems.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__rtems.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__rtems.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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 version is for POSIX-like operating systems
  
! with System.Parameters;
  package body System.OS_Primitives is
  
     --  ??? These definitions are duplicated from System.OS_Interface
--- 31,38 ----
  
  --  This version is for POSIX-like operating systems
  
! with System.C_Time;
! 
  package body System.OS_Primitives is
  
     --  ??? These definitions are duplicated from System.OS_Interface
*************** package body System.OS_Primitives is
*** 39,54 ****
     --  these declarations in System.OS_Interface and move these ones in
     --  the spec.
  
!    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_Integer;
!    end record;
!    pragma Convention (C, timespec);
! 
!    function nanosleep (rqtp, rmtp : not null access timespec) return Integer;
     pragma Import (C, nanosleep, "nanosleep");
  
     -----------
--- 40,47 ----
     --  these declarations in System.OS_Interface and move these ones in
     --  the spec.
  
!    function nanosleep (rqtp, rmtp : not null access C_Time.timespec)
!                       return Integer;
     pragma Import (C, nanosleep, "nanosleep");
  
     -----------
*************** package body System.OS_Primitives is
*** 56,83 ****
     -----------
  
     function Clock return Duration is
! 
!       type timeval is record
!          tv_sec  : time_t;
!          tv_usec : Long_Integer;
!       end record;
!       pragma Convention (C, timeval);
! 
!       procedure timeval_to_duration
!         (T    : not null access timeval;
!          sec  : not null access Long_Long_Integer;
!          usec : not null access Long_Integer);
!       pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration");
! 
!       Micro  : constant := 10**6;
!       sec    : aliased Long_Long_Integer;
!       usec   : aliased Long_Integer;
!       TV     : aliased timeval;
        Result : Integer;
        pragma Unreferenced (Result);
  
        function gettimeofday
!         (Tv : access timeval;
           Tz : System.Address := System.Null_Address) return Integer;
        pragma Import (C, gettimeofday, "gettimeofday");
  
--- 49,60 ----
     -----------
  
     function Clock return Duration is
!       TV     : aliased C_Time.timeval;
        Result : Integer;
        pragma Unreferenced (Result);
  
        function gettimeofday
!         (Tv : access C_Time.timeval;
           Tz : System.Address := System.Null_Address) return Integer;
        pragma Import (C, gettimeofday, "gettimeofday");
  
*************** package body System.OS_Primitives is
*** 91,128 ****
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, System.Null_Address);
!       timeval_to_duration (TV'Access, sec'Access, usec'Access);
!       return Duration (sec) + Duration (usec) / Micro;
     end Clock;
  
     -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return 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_Integer (Long_Long_Integer (F * 10#1#E9)));
-    end To_Timespec;
- 
-    -----------------
     -- Timed_Delay --
     -----------------
  
--- 68,77 ----
        --  value is never checked.
  
        Result := gettimeofday (TV'Access, System.Null_Address);
!       return C_Time.To_Duration (TV);
     end Clock;
  
     -----------------
     -- Timed_Delay --
     -----------------
  
*************** package body System.OS_Primitives is
*** 130,137 ****
       (Time : Duration;
        Mode : Integer)
     is
!       Request    : aliased timespec;
!       Remaind    : aliased timespec;
        Rel_Time   : Duration;
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
--- 79,86 ----
       (Time : Duration;
        Mode : Integer)
     is
!       Request    : aliased C_Time.timespec;
!       Remaind    : aliased C_Time.timespec;
        Rel_Time   : Duration;
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
*************** package body System.OS_Primitives is
*** 151,157 ****
  
        if Rel_Time > 0.0 then
           loop
!             Request := To_Timespec (Rel_Time);
              Result := nanosleep (Request'Access, Remaind'Access);
              Check_Time := Clock;
  
--- 100,106 ----
  
        if Rel_Time > 0.0 then
           loop
!             Request := C_Time.To_Timespec (Rel_Time);
              Result := nanosleep (Request'Access, Remaind'Access);
              Check_Time := Clock;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__solaris.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__solaris.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__solaris.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__solaris.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,126 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                  S Y S T E M . O S _ P R I M I T I V E S                 --
- --                                                                          --
- --                                  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- --
- -- 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 version uses gettimeofday and select
- --  This file is suitable for Solaris (32 and 64 bits).
- 
- package body System.OS_Primitives is
- 
-    --  ??? These definitions are duplicated from System.OS_Interface
-    --  because we don't want to depend on any package. Consider removing
-    --  these declarations in System.OS_Interface and move these ones in
-    --  the spec.
- 
-    type struct_timeval is record
-       tv_sec  : Long_Integer;
-       tv_usec : Long_Integer;
-    end record;
-    pragma Convention (C, struct_timeval);
- 
-    procedure gettimeofday
-      (tv : not null access struct_timeval;
-       tz : Address := Null_Address);
-    pragma Import (C, gettimeofday, "gettimeofday");
- 
-    procedure C_select
-      (n         : Integer := 0;
-       readfds,
-       writefds,
-       exceptfds : Address := Null_Address;
-       timeout   : not null access struct_timeval);
-    pragma Import (C, C_select, "select");
- 
-    -----------
-    -- Clock --
-    -----------
- 
-    function Clock return Duration is
-       TV : aliased struct_timeval;
- 
-    begin
-       gettimeofday (TV'Access);
-       return Duration (TV.tv_sec) + Duration (TV.tv_usec) / 10#1#E6;
-    end Clock;
- 
-    -----------------
-    -- Timed_Delay --
-    -----------------
- 
-    procedure Timed_Delay
-      (Time : Duration;
-       Mode : Integer)
-    is
-       Rel_Time   : Duration;
-       Abs_Time   : Duration;
-       Base_Time  : constant Duration := Clock;
-       Check_Time : Duration := Base_Time;
-       timeval    : aliased struct_timeval;
- 
-    begin
-       if Mode = Relative then
-          Rel_Time := Time;
-          Abs_Time := Time + Check_Time;
-       else
-          Rel_Time := Time - Check_Time;
-          Abs_Time := Time;
-       end if;
- 
-       if Rel_Time > 0.0 then
-          loop
-             timeval.tv_sec := Long_Integer (Rel_Time);
- 
-             if Duration (timeval.tv_sec) > Rel_Time then
-                timeval.tv_sec := timeval.tv_sec - 1;
-             end if;
- 
-             timeval.tv_usec :=
-               Long_Integer ((Rel_Time - Duration (timeval.tv_sec)) * 10#1#E6);
- 
-             C_select (timeout => timeval'Unchecked_Access);
-             Check_Time := Clock;
- 
-             exit when Abs_Time <= Check_Time or else Check_Time < Base_Time;
- 
-             Rel_Time := Abs_Time - Check_Time;
-          end loop;
-       end if;
-    end Timed_Delay;
- 
-    ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize is
-    begin
-       null;
-    end Initialize;
- 
- end System.OS_Primitives;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__unix.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__unix.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__unix.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__unix.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is 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 version uses gettimeofday and select
! --  This file is suitable for OpenNT, Dec Unix and SCO UnixWare.
  
  package body System.OS_Primitives is
  
--- 30,38 ----
  ------------------------------------------------------------------------------
  
  --  This version uses gettimeofday and select
! --  This file is suitable for Dec Unix, SCO UnixWare and Sun Solaris.
! 
! with System.C_Time;
  
  package body System.OS_Primitives is
  
*************** package body System.OS_Primitives is
*** 39,52 ****
     --  these declarations in System.OS_Interface and move these ones in
     --  the spec.
  
-    type struct_timeval is record
-       tv_sec  : Integer;
-       tv_usec : Integer;
-    end record;
-    pragma Convention (C, struct_timeval);
- 
     procedure gettimeofday
!      (tv : not null access struct_timeval;
        tz : Address := Null_Address);
     pragma Import (C, gettimeofday, "gettimeofday");
  
--- 41,48 ----
     --  these declarations in System.OS_Interface and move these ones in
     --  the spec.
  
     procedure gettimeofday
!      (tv : not null access C_Time.timeval;
        tz : Address := Null_Address);
     pragma Import (C, gettimeofday, "gettimeofday");
  
*************** package body System.OS_Primitives is
*** 55,61 ****
        readfds,
        writefds,
        exceptfds : Address := Null_Address;
!       timeout   : not null access struct_timeval);
     pragma Import (C, C_select, "select");
  
     -----------
--- 51,57 ----
        readfds,
        writefds,
        exceptfds : Address := Null_Address;
!       timeout   : not null access C_Time.timeval);
     pragma Import (C, C_select, "select");
  
     -----------
*************** package body System.OS_Primitives is
*** 63,73 ****
     -----------
  
     function Clock return Duration is
!       TV : aliased struct_timeval;
  
     begin
        gettimeofday (TV'Access);
!       return Duration (TV.tv_sec) + Duration (TV.tv_usec) / 10#1#E6;
     end Clock;
  
     -----------------
--- 59,69 ----
     -----------
  
     function Clock return Duration is
!       TV : aliased C_Time.timeval;
  
     begin
        gettimeofday (TV'Access);
!       return C_Time.To_Duration (TV);
     end Clock;
  
     -----------------
*************** package body System.OS_Primitives is
*** 82,88 ****
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
        Check_Time : Duration := Base_Time;
!       timeval    : aliased struct_timeval;
  
     begin
        if Mode = Relative then
--- 78,84 ----
        Abs_Time   : Duration;
        Base_Time  : constant Duration := Clock;
        Check_Time : Duration := Base_Time;
!       timeval    : aliased C_Time.timeval;
  
     begin
        if Mode = Relative then
*************** package body System.OS_Primitives is
*** 95,108 ****
  
        if Rel_Time > 0.0 then
           loop
!             timeval.tv_sec := Integer (Rel_Time);
! 
!             if Duration (timeval.tv_sec) > Rel_Time then
!                timeval.tv_sec := timeval.tv_sec - 1;
!             end if;
! 
!             timeval.tv_usec :=
!               Integer ((Rel_Time - Duration (timeval.tv_sec)) * 10#1#E6);
  
              C_select (timeout => timeval'Unchecked_Access);
              Check_Time := Clock;
--- 91,97 ----
  
        if Rel_Time > 0.0 then
           loop
!             timeval := C_Time.To_Timeval (Rel_Time);
  
              C_select (timeout => timeval'Unchecked_Access);
              Check_Time := Clock;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-osprim__x32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__x32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-osprim__x32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-osprim__x32.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,170 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                 GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS                 --
- --                                                                          --
- --                  S Y S T E M . O S _ P R I M I T I V E S                 --
- --                                                                          --
- --                                  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- --
- -- 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 version is for Linux/x32
- 
- with System.Parameters;
- 
- package body System.OS_Primitives is
- 
-    --  ??? These definitions are duplicated from System.OS_Interface
-    --  because we don't want to depend on any package. Consider removing
-    --  these declarations in System.OS_Interface and move these ones in
-    --  the spec.
- 
-    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_Long_Integer;
-    end record;
-    pragma Convention (C, timespec);
- 
-    function nanosleep (rqtp, rmtp : not null access timespec) return Integer;
-    pragma Import (C, nanosleep, "nanosleep");
- 
-    -----------
-    -- Clock --
-    -----------
- 
-    function Clock return Duration is
-       type timeval is array (1 .. 2) of Long_Long_Integer;
- 
-       procedure timeval_to_duration
-         (T    : not null access timeval;
-          sec  : not null access Long_Integer;
-          usec : not null access Long_Integer);
-       pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration");
- 
-       Micro  : constant := 10**6;
-       sec    : aliased Long_Integer;
-       usec   : aliased Long_Integer;
-       TV     : aliased timeval;
-       Result : Integer;
-       pragma Unreferenced (Result);
- 
-       function gettimeofday
-         (Tv : access timeval;
-          Tz : System.Address := System.Null_Address) return Integer;
-       pragma Import (C, gettimeofday, "gettimeofday");
- 
-    begin
-       --  The return codes for gettimeofday are as follows (from man pages):
-       --    EPERM  settimeofday is called by someone other than the superuser
-       --    EINVAL Timezone (or something else) is invalid
-       --    EFAULT One of tv or tz pointed outside accessible address space
- 
-       --  None of these codes signal a potential clock skew, hence the return
-       --  value is never checked.
- 
-       Result := gettimeofday (TV'Access, System.Null_Address);
-       timeval_to_duration (TV'Access, sec'Access, usec'Access);
-       return Duration (sec) + Duration (usec) / Micro;
-    end Clock;
- 
-    -----------------
-    -- To_Timespec --
-    -----------------
- 
-    function To_Timespec (D : Duration) return 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_Integer (F * 10#1#E9));
-    end To_Timespec;
- 
-    -----------------
-    -- Timed_Delay --
-    -----------------
- 
-    procedure Timed_Delay
-      (Time : Duration;
-       Mode : Integer)
-    is
-       Request    : aliased timespec;
-       Remaind    : aliased timespec;
-       Rel_Time   : Duration;
-       Abs_Time   : Duration;
-       Base_Time  : constant Duration := Clock;
-       Check_Time : Duration := Base_Time;
- 
-       Result : Integer;
-       pragma Unreferenced (Result);
- 
-    begin
-       if Mode = Relative then
-          Rel_Time := Time;
-          Abs_Time := Time + Check_Time;
-       else
-          Rel_Time := Time - Check_Time;
-          Abs_Time := Time;
-       end if;
- 
-       if Rel_Time > 0.0 then
-          loop
-             Request := To_Timespec (Rel_Time);
-             Result := nanosleep (Request'Access, Remaind'Access);
-             Check_Time := Clock;
- 
-             exit when Abs_Time <= Check_Time or else Check_Time < Base_Time;
- 
-             Rel_Time := Abs_Time - Check_Time;
-          end loop;
-       end if;
-    end Timed_Delay;
- 
-    ----------------
-    -- Initialize --
-    ----------------
- 
-    procedure Initialize is
-    begin
-       null;
-    end Initialize;
- 
- end System.OS_Primitives;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack03.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack03.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack03.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack03.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack03.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack03.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack03.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack03.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack05.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack05.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack05.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack05.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack05.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack05.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack05.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack05.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack06.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack06.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack06.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack06.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack06.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack06.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack06.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack06.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack07.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack07.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack07.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack07.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack07.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack07.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack07.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack07.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack09.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack09.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack09.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack09.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack09.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack09.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack09.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack09.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack10.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack10.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack10.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack10.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack10.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack10.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack10.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack10.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack100.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack100.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack100.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack100.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack100.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack100.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack100.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack100.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack101.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack101.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack101.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack101.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack101.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack101.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack101.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack101.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack102.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack102.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack102.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack102.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack102.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack102.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack102.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack102.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack103.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack103.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack103.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack103.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack103.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack103.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack103.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack103.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack104.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack104.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack104.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack104.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack104.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack104.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack104.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack104.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack105.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack105.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack105.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack105.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack105.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack105.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack105.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack105.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack106.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack106.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack106.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack106.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack106.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack106.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack106.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack106.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack107.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack107.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack107.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack107.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack107.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack107.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack107.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack107.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack108.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack108.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack108.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack108.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack108.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack108.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack108.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack108.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack109.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack109.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack109.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack109.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack109.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack109.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack109.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack109.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack11.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack11.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack11.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack11.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack11.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack11.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack11.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack11.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack110.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack110.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack110.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack110.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack110.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack110.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack110.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack110.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack111.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack111.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack111.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack111.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack111.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack111.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack111.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack111.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack112.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack112.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack112.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack112.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack112.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack112.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack112.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack112.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack113.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack113.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack113.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack113.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack113.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack113.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack113.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack113.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack114.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack114.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack114.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack114.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack114.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack114.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack114.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack114.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack115.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack115.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack115.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack115.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack115.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack115.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack115.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack115.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack116.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack116.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack116.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack116.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack116.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack116.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack116.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack116.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack117.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack117.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack117.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack117.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack117.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack117.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack117.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack117.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack118.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack118.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack118.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack118.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack118.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack118.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack118.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack118.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack119.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack119.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack119.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack119.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack119.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack119.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack119.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack119.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack12.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack12.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack12.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack12.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack12.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack12.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack12.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack12.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack120.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack120.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack120.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack120.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack120.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack120.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack120.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack120.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack121.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack121.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack121.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack121.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack121.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack121.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack121.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack121.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack122.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack122.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack122.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack122.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack122.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack122.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack122.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack122.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack123.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack123.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack123.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack123.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack123.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack123.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack123.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack123.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack124.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack124.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack124.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack124.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack124.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack124.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack124.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack124.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack125.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack125.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack125.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack125.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack125.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack125.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack125.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack125.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack126.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack126.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack126.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack126.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack126.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack126.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack126.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack126.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack127.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack127.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack127.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack127.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack127.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack127.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack127.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack127.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack13.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack13.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack13.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack13.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack13.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack13.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack13.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack13.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack14.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack14.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack14.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack14.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack14.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack14.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack14.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack14.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack15.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack15.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack15.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack15.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack15.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack15.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack15.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack15.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack17.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack17.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack17.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack17.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack17.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack17.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack17.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack17.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack18.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack18.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack18.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack18.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack18.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack18.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack18.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack18.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack19.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack19.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack19.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack19.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack19.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack19.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack19.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack19.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack20.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack20.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack20.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack20.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack20.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack20.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack20.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack20.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack21.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack21.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack21.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack21.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack21.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack21.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack21.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack21.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack22.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack22.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack22.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack22.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack22.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack22.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack22.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack22.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack23.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack23.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack23.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack23.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack23.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack23.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack23.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack23.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack24.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack24.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack24.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack24.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack24.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack24.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack24.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack24.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack25.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack25.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack25.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack25.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack25.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack25.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack25.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack25.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack26.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack26.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack26.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack26.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack26.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack26.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack26.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack26.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack27.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack27.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack27.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack27.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack27.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack27.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack27.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack27.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack28.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack28.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack28.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack28.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack28.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack28.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack28.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack28.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack29.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack29.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack29.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack29.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack29.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack29.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack29.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack29.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack30.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack30.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack30.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack30.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack30.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack30.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack30.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack30.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack31.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack31.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack31.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack31.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack31.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack31.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack31.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack31.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack33.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack33.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack33.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack33.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack33.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack33.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack33.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack33.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack34.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack34.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack34.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack34.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack34.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack34.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack34.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack34.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack35.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack35.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack35.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack35.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack35.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack35.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack35.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack35.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack36.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack36.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack36.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack36.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack36.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack36.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack36.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack36.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack37.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack37.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack37.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack37.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack37.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack37.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack37.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack37.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack38.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack38.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack38.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack38.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack38.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack38.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack38.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack38.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack39.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack39.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack39.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack39.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack39.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack39.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack39.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack39.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack40.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack40.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack40.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack40.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack40.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack40.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack40.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack40.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack41.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack41.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack41.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack41.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack41.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack41.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack41.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack41.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack42.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack42.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack42.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack42.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack42.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack42.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack42.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack42.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack43.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack43.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack43.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack43.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack43.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack43.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack43.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack43.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack44.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack44.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack44.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack44.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack44.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack44.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack44.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack44.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack45.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack45.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack45.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack45.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack45.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack45.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack45.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack45.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack46.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack46.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack46.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack46.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack46.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack46.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack46.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack46.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack47.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack47.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack47.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack47.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack47.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack47.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack47.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack47.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack48.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack48.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack48.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack48.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack48.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack48.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack48.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack48.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack49.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack49.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack49.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack49.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack49.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack49.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack49.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack49.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack50.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack50.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack50.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack50.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack50.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack50.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack50.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack50.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack51.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack51.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack51.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack51.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack51.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack51.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack51.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack51.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack52.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack52.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack52.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack52.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack52.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack52.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack52.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack52.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack53.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack53.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack53.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack53.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack53.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack53.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack53.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack53.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack54.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack54.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack54.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack54.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack54.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack54.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack54.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack54.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack55.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack55.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack55.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack55.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack55.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack55.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack55.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack55.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack56.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack56.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack56.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack56.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack56.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack56.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack56.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack56.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack57.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack57.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack57.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack57.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack57.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack57.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack57.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack57.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack58.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack58.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack58.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack58.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack58.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack58.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack58.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack58.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack59.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack59.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack59.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack59.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack59.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack59.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack59.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack59.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack60.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack60.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack60.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack60.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack60.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack60.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack60.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack60.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack61.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack61.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack61.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack61.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack61.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack61.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack61.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack61.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack62.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack62.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack62.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack62.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack62.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack62.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack62.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack62.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack63.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack63.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack63.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack63.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack63.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack63.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack63.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack63.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack65.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack65.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack65.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack65.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack65.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack65.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack65.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack65.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack66.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack66.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack66.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack66.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack66.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack66.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack66.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack66.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack67.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack67.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack67.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack67.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack67.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack67.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack67.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack67.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack68.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack68.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack68.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack68.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack68.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack68.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack68.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack68.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack69.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack69.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack69.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack69.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack69.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack69.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack69.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack69.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack70.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack70.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack70.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack70.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack70.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack70.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack70.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack70.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack71.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack71.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack71.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack71.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack71.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack71.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack71.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack71.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack72.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack72.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack72.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack72.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack72.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack72.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack72.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack72.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack73.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack73.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack73.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack73.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack73.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack73.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack73.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack73.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack74.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack74.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack74.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack74.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack74.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack74.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack74.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack74.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack75.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack75.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack75.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack75.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack75.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack75.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack75.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack75.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack76.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack76.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack76.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack76.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack76.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack76.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack76.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack76.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack77.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack77.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack77.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack77.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack77.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack77.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack77.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack77.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack78.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack78.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack78.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack78.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack78.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack78.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack78.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack78.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack79.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack79.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack79.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack79.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack79.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack79.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack79.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack79.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack80.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack80.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack80.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack80.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack80.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack80.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack80.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack80.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack81.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack81.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack81.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack81.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack81.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack81.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack81.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack81.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack82.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack82.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack82.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack82.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack82.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack82.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack82.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack82.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack83.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack83.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack83.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack83.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack83.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack83.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack83.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack83.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack84.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack84.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack84.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack84.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack84.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack84.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack84.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack84.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack85.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack85.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack85.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack85.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack85.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack85.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack85.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack85.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack86.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack86.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack86.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack86.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack86.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack86.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack87.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack87.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack87.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack87.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack87.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack87.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack87.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack87.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack88.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack88.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack88.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack88.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack88.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack88.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack88.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack88.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack89.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack89.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack89.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack89.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack89.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack89.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack89.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack89.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack90.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack90.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack90.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack90.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack90.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack90.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack90.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack90.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack91.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack91.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack91.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack91.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack91.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack91.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack91.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack91.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack92.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack92.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack92.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack92.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack92.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack92.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack92.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack92.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack93.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack93.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack93.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack93.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack93.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack93.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack93.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack93.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack94.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack94.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack94.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack94.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack94.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack94.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack94.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack94.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack95.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack95.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack95.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack95.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack95.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack95.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack95.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack95.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack96.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack96.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack96.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack96.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack96.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack96.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack96.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack96.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack97.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack97.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack97.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack97.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack97.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack97.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack97.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack97.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack98.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack98.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack98.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack98.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack98.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack98.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack98.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack98.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack99.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack99.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pack99.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack99.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pack99.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack99.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pack99.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pack99.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parame.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-parame.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Parameters is
*** 97,109 ****
     --  Indicates if secondary stacks can grow and shrink at run-time. If False,
     --  the size of a secondary stack is fixed at the point of its creation.
  
-    ------------------------------------
-    -- Characteristics of time_t type --
-    ------------------------------------
- 
-    time_t_bits : constant := Long_Integer'Size;
-    --  Number of bits in type time_t
- 
     ----------------------------------------------
     -- Characteristics of types in Interfaces.C --
     ----------------------------------------------
--- 97,102 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__aarch64-linux.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__aarch64-linux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__aarch64-linux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__hpux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__hpux.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__hpux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__hpux.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Parameters is
*** 96,108 ****
     --  Indicates if secondary stacks can grow and shrink at run-time. If False,
     --  the size of a secondary stack is fixed at the point of its creation.
  
-    ------------------------------------
-    -- Characteristics of time_t type --
-    ------------------------------------
- 
-    time_t_bits : constant := Long_Integer'Size;
-    --  Number of bits in type time_t
- 
     ----------------------------------------------
     -- Characteristics of Types in Interfaces.C --
     ----------------------------------------------
--- 96,101 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__posix2008.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__posix2008.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__posix2008.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__posix2008.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,189 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                    S Y S T E M . P A R A M E T E 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.                                     --
- --                                                                          --
- -- 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 Posix 2008 version for 64 bit time_t.
- 
- --  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
- --  recompile the run-time library.
- 
- --  The parameters which are defined by functions can be changed by modifying
- --  the body of System.Parameters in file s-parame.adb. A change to this body
- --  requires only rebinding and relinking of the application.
- 
- --  Note: do not introduce any pragma Inline statements into this unit, since
- --  otherwise the relinking and rebinding capability would be deactivated.
- 
- package System.Parameters is
-    pragma Pure;
- 
-    ---------------------------------------
-    -- Task And Stack Allocation Control --
-    ---------------------------------------
- 
-    type Size_Type is range -Memory_Size / 2 .. Memory_Size / 2 - 1;
-    --  Type used to provide task stack sizes to the runtime. Sized to permit
-    --  stack sizes of up to half the total addressable memory space. This may
-    --  seem excessively large (even for 32-bit systems), however there are many
-    --  instances of users requiring large stack sizes (for example string
-    --  processing).
- 
-    Unspecified_Size : constant Size_Type := Size_Type'First;
-    --  Value used to indicate that no size type is set
- 
-    function Default_Stack_Size return Size_Type;
-    --  Default task stack size used if none is specified
- 
-    function Minimum_Stack_Size return Size_Type;
-    --  Minimum task stack size permitted
- 
-    function Adjust_Storage_Size (Size : Size_Type) return Size_Type;
-    --  Given the storage size stored in the TCB, return the Storage_Size
-    --  value required by the RM for the Storage_Size attribute. The
-    --  required adjustment is as follows:
-    --
-    --    when Size = Unspecified_Size, return Default_Stack_Size
-    --    when Size < Minimum_Stack_Size, return Minimum_Stack_Size
-    --    otherwise return given Size
- 
-    Default_Env_Stack_Size : constant Size_Type := 8_192_000;
-    --  Assumed size of the environment task, if no other information is
-    --  available. This value is used when stack checking is enabled and
-    --  no GNAT_STACK_LIMIT environment variable is set.
- 
-    Stack_Grows_Down  : constant Boolean := True;
-    --  This constant indicates whether the stack grows up (False) or
-    --  down (True) in memory as functions are called. It is used for
-    --  proper implementation of the stack overflow check.
- 
-    Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024;
-    --  The run-time chosen default size for secondary stacks that may be
-    --  overridden by the user with the use of binder -D switch.
- 
-    Sec_Stack_Dynamic : constant Boolean := True;
-    --  Indicates if secondary stacks can grow and shrink at run-time. If False,
-    --  the size of a secondary stack is fixed at the point of its creation.
- 
-    ------------------------------------
-    -- Characteristics of time_t type --
-    ------------------------------------
- 
-    time_t_bits : constant := Long_Long_Integer'Size;
-    --  Number of bits in type time_t. Use for targets that are Posix 2008
-    --  compliant (fixes the year 2038 time_t overflow).
- 
-    ----------------------------------------------
-    -- Characteristics of types in Interfaces.C --
-    ----------------------------------------------
- 
-    long_bits : constant := Long_Integer'Size;
-    --  Number of bits in type long and unsigned_long. The normal convention
-    --  is that this is the same as type Long_Integer, but this may not be true
-    --  of all targets.
- 
-    ptr_bits  : constant := Standard'Address_Size;
-    subtype C_Address is System.Address;
-    --  Number of bits in Interfaces.C pointers, normally a standard address
- 
-    C_Malloc_Linkname : constant String := "__gnat_malloc";
-    --  Name of runtime function used to allocate such a pointer
- 
-    ----------------------------------------------
-    -- Behavior of Pragma Finalize_Storage_Only --
-    ----------------------------------------------
- 
-    --  Garbage_Collected is a Boolean constant whose value indicates the
-    --  effect of the pragma Finalize_Storage_Entry on a controlled type.
- 
-    --    Garbage_Collected = False
- 
-    --      The system releases all storage on program termination only,
-    --      but not other garbage collection occurs, so finalization calls
-    --      are omitted only for outer level objects can be omitted if
-    --      pragma Finalize_Storage_Only is used.
- 
-    --    Garbage_Collected = True
- 
-    --      The system provides full garbage collection, so it is never
-    --      necessary to release storage for controlled objects for which
-    --      a pragma Finalize_Storage_Only is used.
- 
-    Garbage_Collected : constant Boolean := False;
-    --  The storage mode for this system (release on program exit)
- 
-    ---------------------
-    -- Tasking Profile --
-    ---------------------
- 
-    --  In the following sections, constant parameters are defined to
-    --  allow some optimizations and fine tuning within the tasking run time
-    --  based on restrictions on the tasking features.
- 
-    -------------------
-    -- Task Abortion --
-    -------------------
- 
-    No_Abort : constant Boolean := False;
-    --  This constant indicates whether abort statements and asynchronous
-    --  transfer of control (ATC) are disallowed. If set to True, it is
-    --  assumed that neither construct is used, and the run time does not
-    --  need to defer/undefer abort and check for pending actions at
-    --  completion points. A value of True for No_Abort corresponds to:
-    --  pragma Restrictions (No_Abort_Statements);
-    --  pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
- 
-    ---------------------
-    -- Task Attributes --
-    ---------------------
- 
-    Max_Attribute_Count : constant := 32;
-    --  Number of task attributes stored in the task control block
- 
-    -----------------------
-    -- Task Image Length --
-    -----------------------
- 
-    Max_Task_Image_Length : constant := 256;
-    --  This constant specifies the maximum length of a task's image
- 
-    ------------------------------
-    -- Exception Message Length --
-    ------------------------------
- 
-    Default_Exception_Msg_Max_Length : constant := 200;
-    --  This constant specifies the default number of characters to allow
-    --  in an exception message (200 is minimum required by RM 11.4.1(18)).
- 
- end System.Parameters;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__qnx.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__qnx.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__qnx.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__qnx.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__rtems.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__rtems.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__rtems.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__rtems.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parame__vxworks.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__vxworks.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-parame__vxworks.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parame__vxworks.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Parameters is
*** 98,118 ****
     --  Indicates if secondary stacks can grow and shrink at run-time. If False,
     --  the size of a secondary stack is fixed at the point of its creation.
  
-    ------------------------------------
-    -- Characteristics of time_t type --
-    ------------------------------------
- 
-    --  IMPORTANT NOTE:
-    --  Select the appropriate time_t_bits for the VSB in use, then rebuild
-    --  the runtime using instructions in adainclude/libada.gpr.
- 
-    --  time_t_bits : constant := Long_Integer'Size;
-    --  Number of bits in type time_t for SR0650 and before and SR0660 with
-    --  non-default configuration.
- 
-    time_t_bits : constant := Long_Long_Integer'Size;
-    --  Number of bits in type time_t for SR0660 with default configuration.
- 
     ----------------------------------------------
     -- Characteristics of types in Interfaces.C --
     ----------------------------------------------
--- 98,103 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parint.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-parint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parint.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                  B o d y                                 --
  --                   (Dummy body for non-distributed case)                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-parint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-parint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-parint.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pehage.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pehage.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pehage.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pehage.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Perfect_Hash_Generat
*** 1275,1282 ****
     --------------
  
     function New_Word (S : String) return Word_Type is
     begin
!       return new String'(S);
     end New_Word;
  
     ------------------------------
--- 1275,1283 ----
     --------------
  
     function New_Word (S : String) return Word_Type is
+       subtype Word_String is String (1 .. S'Length);
     begin
!       return new String'(Word_String (S));
     end New_Word;
  
     ------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pehage.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pehage.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pehage.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pehage.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 2002-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pooglo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooglo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pooglo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooglo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pooglo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooglo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pooglo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooglo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pooloc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooloc.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-pooloc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooloc.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-pooloc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooloc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-pooloc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-pooloc.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-poosiz.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-poosiz.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-poosiz.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-poosiz.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-poosiz.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-poosiz.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-poosiz.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-poosiz.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-powflt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powflt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-powflt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powflt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-powlfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powlfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-powlfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powlfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-powllf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powllf.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-powllf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-powllf.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-purexc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-purexc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-purexc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-purexc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-putima.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-putima.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-putima.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-putima.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Put_Images is
*** 159,164 ****
--- 159,174 ----
        Fat_Instance (S, X, "access");
     end Put_Image_Fat_Pointer;
  
+    procedure Ext_Acc_Instance is new
+      Put_Image_Pointer (Byte_String, Ext_Access_Pointer);
+ 
+    procedure Put_Image_Extended_Access_Pointer
+      (S : in out Sink'Class; X : Ext_Access_Pointer)
+    is
+    begin
+       Ext_Acc_Instance (S, X, "extended access");
+    end Put_Image_Extended_Access_Pointer;
+ 
     procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer) is
     begin
        Thin_Instance (S, X, "access subprogram");
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-putima.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-putima.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-putima.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-putima.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Put_Images with Pure is
*** 72,81 ****
     type Byte_String is array (Positive range <>) of Byte with Alignment => 1;
     type Thin_Pointer is access all Byte with Storage_Size => 0;
     type Fat_Pointer is access all Byte_String with Storage_Size => 0;
     procedure Put_Image_Thin_Pointer (S : in out Sink'Class; X : Thin_Pointer);
     procedure Put_Image_Fat_Pointer (S : in out Sink'Class; X : Fat_Pointer);
!    --  Print "null", or the address of the designated object as an unsigned
!    --  hexadecimal integer.
  
     procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer);
     --  For access-to-subprogram types
--- 72,91 ----
     type Byte_String is array (Positive range <>) of Byte with Alignment => 1;
     type Thin_Pointer is access all Byte with Storage_Size => 0;
     type Fat_Pointer is access all Byte_String with Storage_Size => 0;
+    type Ext_Access_Pointer is access all Byte_String with Storage_Size => 0;
+ 
     procedure Put_Image_Thin_Pointer (S : in out Sink'Class; X : Thin_Pointer);
+    --  Print "(access)" followed by "null", or the address of the designated
+    --  object as an unsigned hexadecimal integer.
+ 
     procedure Put_Image_Fat_Pointer (S : in out Sink'Class; X : Fat_Pointer);
!    --  Print "(access)" followed by "null", or the address of the designated
!    --  object as an unsigned hexadecimal integer.
! 
!    procedure Put_Image_Extended_Access_Pointer
!      (S : in out Sink'Class; X : Ext_Access_Pointer);
!    --  Print "(extended access)" followed by "null", or the address of the
!    --  designated object as an unsigned hexadecimal integer.
  
     procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer);
     --  For access-to-subprogram types
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-rannum.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rannum.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-rannum.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rannum.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-rannum.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rannum.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-rannum.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rannum.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-ransee.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ransee.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-ransee.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ransee.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-ransee.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ransee.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-ransee.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ransee.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-regexp.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regexp.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-regexp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regexp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-regexp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regexp.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-regexp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regexp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-regpat.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regpat.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-regpat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regpat.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 B o d y                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                      Copyright (C) 1999-2026, AdaCore                    --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-regpat.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regpat.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-regpat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-regpat.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                 S p e c                                  --
  --                                                                          --
  --               Copyright (C) 1986 by University of Toronto.               --
! --                     Copyright (C) 1996-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-resfil.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-resfil.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-resfil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-resfil.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-resfil.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-resfil.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-resfil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-resfil.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2007-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-restri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-restri.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-restri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-restri.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-restri.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-restri.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-restri.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-restri.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-retsta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-retsta.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-retsta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-retsta.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2022-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-rident.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rident.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-rident.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rident.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-rpc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rpc.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-rpc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rpc.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-rpc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rpc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-rpc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-rpc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-scaval.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-scaval.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-scaval.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-scaval.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-scaval__128.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval__128.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-scaval__128.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval__128.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-scaval__128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval__128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-scaval__128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-scaval__128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-secsta.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-secsta.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Secondary_Stack is
*** 633,638 ****
--- 633,653 ----
  
        if Over_Aligning then
           Padding := Alignment;
+ 
+          --  Typically the padding would be
+          --  Alignment - (Addr mod Alignment)
+          --  however Addr in this case is not known yet. It depends on the
+          --  type of the secondary stack (Dynamic/Static). The allocation
+          --  routine for the respective type of stack requires to know the
+          --  allocation size before the address is known. To ensure a
+          --  sufficient allocation size to fit the padding, the padding is
+          --  calculated conservatively.
+       end if;
+ 
+       --  Raise Storage_Error if the size has overflowed
+ 
+       if Storage_Size < 0 then
+          raise Storage_Error with "object too large";
        end if;
  
        --  Round the requested size (plus the needed padding in case of
*************** package body System.Secondary_Stack is
*** 640,649 ****
        --  alignment to ensure efficient access and that the next available
        --  Byte is always aligned on the default alignement value.
  
-       --  It should not be possible to request an allocation of negative
-       --  size.
- 
-       pragma Assert (Storage_Size >= 0);
        Mem_Size := Round_Up (Storage_Size + Padding);
  
        if Sec_Stack_Dynamic then
--- 655,660 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-secsta.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-secsta.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-secsta__cheri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta__cheri.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-secsta__cheri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-secsta__cheri.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Secondary_Stack is
*** 662,673 ****
  
        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
--- 662,683 ----
  
        if Over_Aligning then
           Over_Align_Padding := Alignment;
+ 
+          --  Typically the padding would be
+          --  Alignment - (Addr mod Alignment)
+          --  however Addr in this case is not known yet. It depends on the
+          --  type of the secondary stack (Dynamic/Static). The allocation
+          --  routine for the respective type of stack requires to know the
+          --  allocation size before the address is known. To ensure a
+          --  sufficient allocation size to fit the padding, the padding is
+          --  calculated conservatively.
        end if;
  
!       --  Raise Storage_Error if the size has overflowed
  
!       if Storage_Size < 0 then
!          raise Storage_Error with "object too large";
!       end if;
  
        --  Round the requested size (plus the needed padding in case of
        --  over-alignment) to ensure that the CHERI bounds length will be
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-sequio.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-sequio.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-sequio.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-sequio.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-sequio.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-sequio.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-sequio.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-sequio.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2025, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 1992-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-shabig.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shabig.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-shabig.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shabig.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2012-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-shasto.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shasto.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-shasto.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shasto.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-shasto.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shasto.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-shasto.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-shasto.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-soflin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soflin.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-soflin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soflin.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-soflin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soflin.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-soflin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soflin.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-soliin.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soliin.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-soliin.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soliin.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2017-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-soliin.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soliin.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-soliin.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-soliin.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2017-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-spark.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spark.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-spark.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spark.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . S P A R K                          --
- --                                                                          --
- --                                 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- --
- -- 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 top level unit of the SPARK package. Its children
- --  contain helper functions to aid proofs.
- 
- package System.SPARK with
-   SPARK_Mode,
-   Pure
- is
- end System.SPARK;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-spcuop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spcuop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-spcuop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spcuop.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,42 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . S P A R K . C U T _ O P E R A T I O N S          --
- --                                                                          --
- --                                 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- --
- -- 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 body System.SPARK.Cut_Operations with
-   SPARK_Mode => Off
- is
- 
-    function By (Consequence, Premise : Boolean) return Boolean is
-      (Premise and then Consequence);
- 
-    function So (Premise, Consequence : Boolean) return Boolean is
-      (Premise and then Consequence);
- 
- end System.SPARK.Cut_Operations;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-spcuop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spcuop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-spcuop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spcuop.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,57 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --           S Y S T E M . S P A R K . C U T _ O P E R A T I O N S          --
- --                                                                          --
- --                                 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- --
- -- 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 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,
-   Pure,
-   Always_Terminates
- is
- 
-    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;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-spsufi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spsufi.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-spsufi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spsufi.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-spsufi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spsufi.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-spsufi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-spsufi.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stache.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stache.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stache.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stache.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --           Copyright (C) 1999-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stache.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stache.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stache.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stache.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --           Copyright (C) 1999-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stalib.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stalib.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stalib.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stalib.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stalib.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stalib.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stalib.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stalib.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-statxd.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-statxd.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-statxd.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-statxd.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 1996-2026, 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- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-statxd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-statxd.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-statxd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-statxd.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stausa.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stausa.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stausa.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stausa.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --         Copyright (C) 2004-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.Stack_Usage is
*** 99,108 ****
     --  Now the implementation of the services offered by this unit, on top of
     --  the Stack_Slots abstraction above.
  
!    Index_Str       : constant String  := "Index";
!    Task_Name_Str   : constant String  := "Task Name";
!    Stack_Size_Str  : constant String  := "Stack Size";
!    Actual_Size_Str : constant String  := "Stack usage";
  
     procedure Output_Result
       (Result_Id          : Natural;
--- 99,108 ----
     --  Now the implementation of the services offered by this unit, on top of
     --  the Stack_Slots abstraction above.
  
!    Index_Str       : constant String := "Index";
!    Task_Name_Str   : constant String := "Task Name";
!    Stack_Size_Str  : constant String := "Stack Size";
!    Actual_Size_Str : constant String := "Stack usage";
  
     procedure Output_Result
       (Result_Id          : Natural;
*************** package body System.Stack_Usage is
*** 128,136 ****
        Result_Array := new Result_Array_Type (1 .. Buffer_Size);
        Result_Array.all :=
          [others =>
!            (Task_Name   => [others => ASCII.NUL],
!             Value       => 0,
!             Stack_Size  => 0)];
  
        --  Set the Is_Enabled flag to true, so that the task wrapper knows that
        --  it has to handle dynamic stack analysis
--- 128,134 ----
        Result_Array := new Result_Array_Type (1 .. Buffer_Size);
        Result_Array.all :=
          [others =>
!            (Task_Name => [others => ASCII.NUL], Value => 0, Stack_Size => 0)];
  
        --  Set the Is_Enabled flag to true, so that the task wrapper knows that
        --  it has to handle dynamic stack analysis
*************** package body System.Stack_Usage is
*** 151,161 ****
           begin
              My_Stack_Size := System.CRTL.atoi (Stack_Size_Chars) * 1024;
  
              Initialize_Analyzer
                (Environment_Task_Analyzer,
                 "ENVIRONMENT TASK",
                 My_Stack_Size,
!                0,
                 My_Stack_Size);
  
              Fill_Stack (Environment_Task_Analyzer);
--- 149,161 ----
           begin
              My_Stack_Size := System.CRTL.atoi (Stack_Size_Chars) * 1024;
  
+             --  Approximate Stack_Base with the topmost stack address that is
+             --  known here.
              Initialize_Analyzer
                (Environment_Task_Analyzer,
                 "ENVIRONMENT TASK",
                 My_Stack_Size,
!                Stack_Size_Chars'Address,
                 My_Stack_Size);
  
              Fill_Stack (Environment_Task_Analyzer);
*************** package body System.Stack_Usage is
*** 188,194 ****
        --  allocated byte on the stack.
     begin
        if Parameters.Stack_Grows_Down then
!          if Analyzer.Stack_Base - Stack_Address (Analyzer.Pattern_Size) >
                To_Stack_Address (Current_Stack_Level'Address) - Guard
           then
              --  No room for a pattern
--- 188,195 ----
        --  allocated byte on the stack.
     begin
        if Parameters.Stack_Grows_Down then
!          if To_Stack_Address (Analyzer.Stack_Base) -
!               Stack_Address (Analyzer.Pattern_Size) >
                To_Stack_Address (Current_Stack_Level'Address) - Guard
           then
              --  No room for a pattern
*************** package body System.Stack_Usage is
*** 198,219 ****
           end if;
  
           Analyzer.Pattern_Limit :=
!            Analyzer.Stack_Base - Stack_Address (Analyzer.Pattern_Size);
  
!          if Analyzer.Stack_Base >
                To_Stack_Address (Current_Stack_Level'Address) - Guard
           then
              --  Reduce pattern size to prevent local frame overwrite
  
              Analyzer.Pattern_Size :=
!               Integer (To_Stack_Address (Current_Stack_Level'Address) - Guard
!                          - Analyzer.Pattern_Limit);
           end if;
  
!          Analyzer.Pattern_Overlay_Address :=
!            To_Address (Analyzer.Pattern_Limit);
        else
!          if Analyzer.Stack_Base + Stack_Address (Analyzer.Pattern_Size) <
                To_Stack_Address (Current_Stack_Level'Address) + Guard
           then
              --  No room for a pattern
--- 199,220 ----
           end if;
  
           Analyzer.Pattern_Limit :=
!            Analyzer.Stack_Base - Storage_Offset (Analyzer.Pattern_Size);
  
!          if To_Stack_Address (Analyzer.Stack_Base) >
                To_Stack_Address (Current_Stack_Level'Address) - Guard
           then
              --  Reduce pattern size to prevent local frame overwrite
  
              Analyzer.Pattern_Size :=
!               Integer (To_Stack_Address (Current_Stack_Level'Address) - Guard -
!                        To_Stack_Address (Analyzer.Pattern_Limit));
           end if;
  
!          Analyzer.Pattern_Overlay_Address := Analyzer.Pattern_Limit;
        else
!          if To_Stack_Address (Analyzer.Stack_Base) +
!               Stack_Address (Analyzer.Pattern_Size) <
                To_Stack_Address (Current_Stack_Level'Address) + Guard
           then
              --  No room for a pattern
*************** package body System.Stack_Usage is
*** 223,244 ****
           end if;
  
           Analyzer.Pattern_Limit :=
!            Analyzer.Stack_Base + Stack_Address (Analyzer.Pattern_Size);
  
!          if Analyzer.Stack_Base <
             To_Stack_Address (Current_Stack_Level'Address) + Guard
           then
              --  Reduce pattern size to prevent local frame overwrite
  
              Analyzer.Pattern_Size :=
                Integer
!                 (Analyzer.Pattern_Limit -
                    (To_Stack_Address (Current_Stack_Level'Address) + Guard));
           end if;
  
           Analyzer.Pattern_Overlay_Address :=
!            To_Address (Analyzer.Pattern_Limit -
!                          Stack_Address (Analyzer.Pattern_Size));
        end if;
  
        --  Declare and fill the pattern buffer
--- 224,244 ----
           end if;
  
           Analyzer.Pattern_Limit :=
!            Analyzer.Stack_Base + Storage_Offset (Analyzer.Pattern_Size);
  
!          if To_Stack_Address (Analyzer.Stack_Base) <
             To_Stack_Address (Current_Stack_Level'Address) + Guard
           then
              --  Reduce pattern size to prevent local frame overwrite
  
              Analyzer.Pattern_Size :=
                Integer
!                 (To_Stack_Address (Analyzer.Pattern_Limit) -
                    (To_Stack_Address (Current_Stack_Level'Address) + Guard));
           end if;
  
           Analyzer.Pattern_Overlay_Address :=
!            Analyzer.Pattern_Limit - Storage_Offset (Analyzer.Pattern_Size);
        end if;
  
        --  Declare and fill the pattern buffer
*************** package body System.Stack_Usage is
*** 267,288 ****
     -------------------------
  
     procedure Initialize_Analyzer
!      (Analyzer         : in out Stack_Analyzer;
!       Task_Name        : String;
!       Stack_Size       : Natural;
!       Stack_Base       : Stack_Address;
!       Pattern_Size     : Natural;
!       Pattern          : Interfaces.Unsigned_32 := 16#DEAD_BEEF#)
!    is
     begin
        --  Initialize the analyzer fields
  
!       Analyzer.Stack_Base    := Stack_Base;
!       Analyzer.Stack_Size    := Stack_Size;
!       Analyzer.Pattern_Size  := Pattern_Size;
!       Analyzer.Pattern       := Pattern;
!       Analyzer.Result_Id     := Next_Id;
!       Analyzer.Task_Name     := [others => ' '];
  
        --  Compute the task name, and truncate if bigger than Task_Name_Length
  
--- 267,287 ----
     -------------------------
  
     procedure Initialize_Analyzer
!      (Analyzer     : in out Stack_Analyzer;
!       Task_Name    : String;
!       Stack_Size   : Natural;
!       Stack_Base   : System.Address;
!       Pattern_Size : Natural;
!       Pattern      : Interfaces.Unsigned_32 := 16#DEAD_BEEF#) is
     begin
        --  Initialize the analyzer fields
  
!       Analyzer.Stack_Base   := Stack_Base;
!       Analyzer.Stack_Size   := Stack_Size;
!       Analyzer.Pattern_Size := Pattern_Size;
!       Analyzer.Pattern      := Pattern;
!       Analyzer.Result_Id    := Next_Id;
!       Analyzer.Task_Name    := [others => ' '];
  
        --  Compute the task name, and truncate if bigger than Task_Name_Length
  
*************** package body System.Stack_Usage is
*** 290,299 ****
           Analyzer.Task_Name (1 .. Task_Name'Length) := Task_Name;
        else
           Analyzer.Task_Name :=
!            Task_Name (Task_Name'First ..
!                       Task_Name'First + Task_Name_Length - 1);
        end if;
  
        Next_Id := Next_Id + 1;
     end Initialize_Analyzer;
  
--- 289,300 ----
           Analyzer.Task_Name (1 .. Task_Name'Length) := Task_Name;
        else
           Analyzer.Task_Name :=
!            Task_Name
!              (Task_Name'First .. Task_Name'First + Task_Name_Length - 1);
        end if;
  
+       --  Next_Id does not need any explicit protection against race conditions
+       --  because Initialize_Analyzer is called holding the runtime lock.
        Next_Id := Next_Id + 1;
     end Initialize_Analyzer;
  
*************** package body System.Stack_Usage is
*** 302,310 ****
     ----------------
  
     function Stack_Size
!      (SP_Low  : Stack_Address;
!       SP_High : Stack_Address) return Natural
!    is
     begin
        if SP_Low > SP_High then
           return Natural (SP_Low - SP_High);
--- 303,309 ----
     ----------------
  
     function Stack_Size
!      (SP_Low : Stack_Address; SP_High : Stack_Address) return Natural is
     begin
        if SP_Low > SP_High then
           return Natural (SP_Low - SP_High);
*************** package body System.Stack_Usage is
*** 332,341 ****
  
        if Parameters.Stack_Grows_Down then
           Analyzer.Topmost_Touched_Mark :=
!            Analyzer.Pattern_Limit + Stack_Address (Analyzer.Pattern_Size);
        else
           Analyzer.Topmost_Touched_Mark :=
!            Analyzer.Pattern_Limit - Stack_Address (Analyzer.Pattern_Size);
        end if;
  
        if Analyzer.Pattern_Size = 0 then
--- 331,340 ----
  
        if Parameters.Stack_Grows_Down then
           Analyzer.Topmost_Touched_Mark :=
!            Analyzer.Pattern_Limit + Storage_Offset (Analyzer.Pattern_Size);
        else
           Analyzer.Topmost_Touched_Mark :=
!            Analyzer.Pattern_Limit - Storage_Offset (Analyzer.Pattern_Size);
        end if;
  
        if Analyzer.Pattern_Size = 0 then
*************** package body System.Stack_Usage is
*** 349,356 ****
        if System.Parameters.Stack_Grows_Down then
           for J in Stack'Range loop
              if Stack (J) /= Analyzer.Pattern then
!                Analyzer.Topmost_Touched_Mark :=
!                  To_Stack_Address (Stack (J)'Address);
                 exit;
              end if;
           end loop;
--- 348,354 ----
        if System.Parameters.Stack_Grows_Down then
           for J in Stack'Range loop
              if Stack (J) /= Analyzer.Pattern then
!                Analyzer.Topmost_Touched_Mark := Stack (J)'Address;
                 exit;
              end if;
           end loop;
*************** package body System.Stack_Usage is
*** 358,365 ****
        else
           for J in reverse Stack'Range loop
              if Stack (J) /= Analyzer.Pattern then
!                Analyzer.Topmost_Touched_Mark :=
!                  To_Stack_Address (Stack (J)'Address);
                 exit;
              end if;
           end loop;
--- 356,362 ----
        else
           for J in reverse Stack'Range loop
              if Stack (J) /= Analyzer.Pattern then
!                Analyzer.Topmost_Touched_Mark := Stack (J)'Address;
                 exit;
              end if;
           end loop;
*************** package body System.Stack_Usage is
*** 381,396 ****
        Stack_Size_Str : constant String := Natural'Image (Result.Stack_Size);
        Actual_Use_Str : constant String := Natural'Image (Result.Value);
  
!       Result_Id_Blanks  : constant
!         String (1 .. Index_Str'Length - Result_Id_Str'Length)    :=
            (others => ' ');
  
!       Stack_Size_Blanks : constant
!         String (1 .. Max_Stack_Size_Len - Stack_Size_Str'Length) :=
            (others => ' ');
  
!       Actual_Use_Blanks : constant
!         String (1 .. Max_Actual_Use_Len - Actual_Use_Str'Length) :=
            (others => ' ');
  
     begin
--- 378,393 ----
        Stack_Size_Str : constant String := Natural'Image (Result.Stack_Size);
        Actual_Use_Str : constant String := Natural'Image (Result.Value);
  
!       Result_Id_Blanks :
!         constant String (1 .. Index_Str'Length - Result_Id_Str'Length) :=
            (others => ' ');
  
!       Stack_Size_Blanks :
!         constant String (1 .. Max_Stack_Size_Len - Stack_Size_Str'Length) :=
            (others => ' ');
  
!       Actual_Use_Blanks :
!         constant String (1 .. Max_Actual_Use_Len - Actual_Use_Str'Length) :=
            (others => ' ');
  
     begin
*************** package body System.Stack_Usage is
*** 414,423 ****
        Max_Stack_Usage                        : Natural := 0;
        Max_Stack_Size_Len, Max_Actual_Use_Len : Natural := 0;
  
!       Task_Name_Blanks : constant
!                            String
!                              (1 .. Task_Name_Length - Task_Name_Str'Length) :=
!                                (others => ' ');
  
     begin
        Set_Output (Standard_Error);
--- 411,419 ----
        Max_Stack_Usage                        : Natural := 0;
        Max_Stack_Size_Len, Max_Actual_Use_Len : Natural := 0;
  
!       Task_Name_Blanks :
!         constant String (1 .. Task_Name_Length - Task_Name_Str'Length) :=
!           (others => ' ');
  
     begin
        Set_Output (Standard_Error);
*************** package body System.Stack_Usage is
*** 433,438 ****
--- 429,435 ----
           --  in order to do correct column alignment.
  
           for J in Result_Array'Range loop
+             --  Slots at Next_Id or higher haven't been allocated to tasks
              exit when J >= Next_Id;
  
              if Result_Array (J).Value > Max_Stack_Usage then
*************** package body System.Stack_Usage is
*** 452,466 ****
           --  labels if needed.
  
           declare
!             Stack_Size_Blanks  : constant
!                                    String (1 .. Max_Stack_Size_Len -
!                                                   Stack_Size_Str'Length) :=
!                                       [others => ' '];
  
!             Stack_Usage_Blanks : constant
!                                    String (1 .. Max_Actual_Use_Len -
!                                                   Actual_Size_Str'Length) :=
!                                       [others => ' '];
  
           begin
              if Stack_Size_Str'Length > Max_Stack_Size_Len then
--- 449,463 ----
           --  labels if needed.
  
           declare
!             Stack_Size_Blanks :
!               constant String
!                          (1 .. Max_Stack_Size_Len - Stack_Size_Str'Length) :=
!                 [others => ' '];
  
!             Stack_Usage_Blanks :
!               constant String
!                          (1 .. Max_Actual_Use_Len - Actual_Size_Str'Length) :=
!                 [others => ' '];
  
           begin
              if Stack_Size_Str'Length > Max_Stack_Size_Len then
*************** package body System.Stack_Usage is
*** 482,487 ****
--- 479,485 ----
           --  Now display the individual results
  
           for J in Result_Array'Range loop
+             --  Slots at Next_Id or higher haven't been allocated to tasks
              exit when J >= Next_Id;
              Output_Result
                (J, Result_Array (J), Max_Stack_Size_Len, Max_Actual_Use_Len);
*************** package body System.Stack_Usage is
*** 491,498 ****
  
        else
           Put
!            (Index_Str & " | " & Task_Name_Str & Task_Name_Blanks & " | "
!             & Stack_Size_Str & " | " & Actual_Size_Str);
           New_Line;
        end if;
     end Output_Results;
--- 489,502 ----
  
        else
           Put
!            (Index_Str
!             & " | "
!             & Task_Name_Str
!             & Task_Name_Blanks
!             & " | "
!             & Stack_Size_Str
!             & " | "
!             & Actual_Size_Str);
           New_Line;
        end if;
     end Output_Results;
*************** package body System.Stack_Usage is
*** 502,510 ****
     -------------------
  
     procedure Report_Result (Analyzer : Stack_Analyzer) is
!       Result : Task_Result := (Task_Name  => Analyzer.Task_Name,
!                                Stack_Size => Analyzer.Stack_Size,
!                                Value      => 0);
     begin
        if Analyzer.Pattern_Size = 0 then
  
--- 506,515 ----
     -------------------
  
     procedure Report_Result (Analyzer : Stack_Analyzer) is
!       Result : Task_Result :=
!         (Task_Name  => Analyzer.Task_Name,
!          Stack_Size => Analyzer.Stack_Size,
!          Value      => 0);
     begin
        if Analyzer.Pattern_Size = 0 then
  
*************** package body System.Stack_Usage is
*** 514,521 ****
           Result.Value := Analyzer.Stack_Size;
  
        else
!          Result.Value := Stack_Size (Analyzer.Topmost_Touched_Mark,
!                                      Analyzer.Stack_Base);
        end if;
  
        if Analyzer.Result_Id in Result_Array'Range then
--- 519,528 ----
           Result.Value := Analyzer.Stack_Size;
  
        else
!          Result.Value :=
!            Stack_Size
!              (To_Stack_Address (Analyzer.Topmost_Touched_Mark),
!               To_Stack_Address (Analyzer.Stack_Base));
        end if;
  
        if Analyzer.Result_Id in Result_Array'Range then
*************** package body System.Stack_Usage is
*** 529,537 ****
  
           declare
              Result_Str_Len : constant Natural :=
!                                Natural'Image (Result.Value)'Length;
              Size_Str_Len   : constant Natural :=
!                                Natural'Image (Analyzer.Stack_Size)'Length;
  
              Max_Stack_Size_Len : Natural;
              Max_Actual_Use_Len : Natural;
--- 536,544 ----
  
           declare
              Result_Str_Len : constant Natural :=
!               Natural'Image (Result.Value)'Length;
              Size_Str_Len   : constant Natural :=
!               Natural'Image (Analyzer.Stack_Size)'Length;
  
              Max_Stack_Size_Len : Natural;
              Max_Actual_Use_Len : Natural;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stausa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stausa.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stausa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stausa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2004-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNARL is 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.Stack_Usage is
*** 41,49 ****
     subtype Stack_Address is SSE.Integer_Address;
     --  Address on the stack
  
!    function To_Stack_Address
!      (Value : System.Address) return Stack_Address
!       renames System.Storage_Elements.To_Integer;
  
     Task_Name_Length : constant := 32;
     --  The maximum length of task name displayed.
--- 41,48 ----
     subtype Stack_Address is SSE.Integer_Address;
     --  Address on the stack
  
!    function To_Stack_Address (Value : System.Address) return Stack_Address
!    renames System.Storage_Elements.To_Integer;
  
     Task_Name_Length : constant := 32;
     --  The maximum length of task name displayed.
*************** package System.Stack_Usage is
*** 85,91 ****
  
     --     Bottom_Of_Stack : aliased Integer;
     --     --  Bottom_Of_Stack'Address will be used as an approximation of
!    --     --  the bottom of stack. A good practise is to avoid allocating
     --     --  other local variables on this stack, as it would degrade
     --     --  the quality of this approximation.
  
--- 84,90 ----
  
     --     Bottom_Of_Stack : aliased Integer;
     --     --  Bottom_Of_Stack'Address will be used as an approximation of
!    --     --  the bottom of stack. A good practice is to avoid allocating
     --     --  other local variables on this stack, as it would degrade
     --     --  the quality of this approximation.
  
*************** package System.Stack_Usage is
*** 227,238 ****
     --
  
     procedure Initialize_Analyzer
!      (Analyzer         : in out Stack_Analyzer;
!       Task_Name        : String;
!       Stack_Size       : Natural;
!       Stack_Base       : Stack_Address;
!       Pattern_Size     : Natural;
!       Pattern          : Interfaces.Unsigned_32 := 16#DEAD_BEEF#);
     --  Should be called before any use of a Stack_Analyzer, to initialize it.
     --  Max_Pattern_Size is the size of the pattern zone, might be smaller than
     --  the full stack size Stack_Size in order to take into account e.g. the
--- 226,237 ----
     --
  
     procedure Initialize_Analyzer
!      (Analyzer     : in out Stack_Analyzer;
!       Task_Name    : String;
!       Stack_Size   : Natural;
!       Stack_Base   : System.Address;
!       Pattern_Size : Natural;
!       Pattern      : Interfaces.Unsigned_32 := 16#DEAD_BEEF#);
     --  Should be called before any use of a Stack_Analyzer, to initialize it.
     --  Max_Pattern_Size is the size of the pattern zone, might be smaller than
     --  the full stack size Stack_Size in order to take into account e.g. the
*************** package System.Stack_Usage is
*** 244,265 ****
     --  When this flag is true, then stack analysis is enabled
  
     procedure Compute_Result (Analyzer : in out Stack_Analyzer);
!    --  Read the pattern zone and deduce the stack usage. It should be called
!    --  from the same frame as Fill_Stack. If Analyzer.Probe is not null, an
!    --  array of Unsigned_32 with Analyzer.Probe elements is allocated on
!    --  Compute_Result's stack frame. Probe can be used to detect  the error:
!    --  "instrumentation threshold at reading". See above. After the call
     --  to this procedure, the memory will look like:
     --
     --                                                             Stack growing
     --  ----------------------------------------------------------------------->
!    --  |<---------------------->|<-------------->|<--------->|<--------->|
!    --  |  Stack frames          | Array of       | used      |  Memory   |
!    --  |  to Compute_Result     | Analyzer.Probe | during    |   filled  |
!    --  |                        | elements       |  the      |    with   |
!    --  |                        |                | execution |  pattern  |
!    --  |                                                     |           |
!    --  |<---------------------------------------------------->           |
     --                  Stack used                                        ^
     --                                                           Pattern_Limit
  
--- 243,258 ----
     --  When this flag is true, then stack analysis is enabled
  
     procedure Compute_Result (Analyzer : in out Stack_Analyzer);
!    --  Read the pattern zone and deduce the stack usage. After the call
     --  to this procedure, the memory will look like:
     --
     --                                                             Stack growing
     --  ----------------------------------------------------------------------->
!    --  |<---------------------->|<-------------------->|<--------------->|
!    --  |  Stack frame           | Used during the      | Memory filled   |
!    --  |  to Compute_Result     | execution            | with pattern    |
!    --  |                        |                      |                 |
!    --  |<--------------------------------------------->|                 |
     --                  Stack used                                        ^
     --                                                           Pattern_Limit
  
*************** package System.Stack_Usage is
*** 277,284 ****
  
  private
  
!    package Unsigned_32_Addr is
!      new System.Address_To_Access_Conversions (Interfaces.Unsigned_32);
  
     subtype Pattern_Type is Interfaces.Unsigned_32;
     Bytes_Per_Pattern : constant := Pattern_Type'Object_Size / Storage_Unit;
--- 270,277 ----
  
  private
  
!    package Unsigned_32_Addr is new
!      System.Address_To_Access_Conversions (Interfaces.Unsigned_32);
  
     subtype Pattern_Type is Interfaces.Unsigned_32;
     Bytes_Per_Pattern : constant := Pattern_Type'Object_Size / Storage_Unit;
*************** private
*** 287,293 ****
        Task_Name : String (1 .. Task_Name_Length);
        --  Name of the task
  
!       Stack_Base : Stack_Address;
        --  Address of the base of the stack, as given by the caller of
        --  Initialize_Analyzer.
  
--- 280,286 ----
        Task_Name : String (1 .. Task_Name_Length);
        --  Name of the task
  
!       Stack_Base : System.Address;
        --  Address of the base of the stack, as given by the caller of
        --  Initialize_Analyzer.
  
*************** private
*** 300,309 ****
        Pattern : Pattern_Type;
        --  Pattern used to recognize untouched memory
  
!       Pattern_Limit : Stack_Address;
        --  Bound of the pattern area farthest to the base
  
!       Topmost_Touched_Mark : Stack_Address;
        --  Topmost address of the pattern area whose value it is pointing
        --  at has been modified during execution. If the systematic error are
        --  compensated, it is the topmost value of the stack pointer during
--- 293,302 ----
        Pattern : Pattern_Type;
        --  Pattern used to recognize untouched memory
  
!       Pattern_Limit : System.Address;
        --  Bound of the pattern area farthest to the base
  
!       Topmost_Touched_Mark : System.Address;
        --  Topmost address of the pattern area whose value it is pointing
        --  at has been modified during execution. If the systematic error are
        --  compensated, it is the topmost value of the stack pointer during
*************** private
*** 320,326 ****
  
     Environment_Task_Analyzer : Stack_Analyzer;
  
!    Compute_Environment_Task  : Boolean;
  
     type Result_Array_Ptr is access all Result_Array_Type;
  
--- 313,319 ----
  
     Environment_Task_Analyzer : Stack_Analyzer;
  
!    Compute_Environment_Task : Boolean;
  
     type Result_Array_Ptr is access all Result_Array_Type;
  
*************** private
*** 332,339 ****
     --  Id of the next stack analyzer
  
     function Stack_Size
!      (SP_Low  : Stack_Address;
!       SP_High : Stack_Address) return Natural;
     pragma Inline (Stack_Size);
     --  Return the size of a portion of stack delimited by SP_High and SP_Low
     --  (), i.e. the difference between SP_High and SP_Low. The storage element
--- 325,331 ----
     --  Id of the next stack analyzer
  
     function Stack_Size
!      (SP_Low : Stack_Address; SP_High : Stack_Address) return Natural;
     pragma Inline (Stack_Size);
     --  Return the size of a portion of stack delimited by SP_High and SP_Low
     --  (), i.e. the difference between SP_High and SP_Low. The storage element
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stchop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stchop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stchop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stchop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stchop__limit.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop__limit.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stchop__limit.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop__limit.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  S p e c                                 --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop__vxworks.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stchop__vxworks.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stchop__vxworks.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                  B o d y                                 --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNARL is free software; you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stoele.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stoele.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stoele.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stoele.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stoele.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stoele.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stoele.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stoele.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-stopoo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stopoo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stopoo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stopoo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stopoo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stopoo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stopoo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stopoo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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.Storage_Pools
*** 40,47 ****
    with Pure
  is
     type Root_Storage_Pool is abstract
!      new Ada.Finalization.Limited_Controlled with private;
!    pragma Preelaborable_Initialization (Root_Storage_Pool);
  
     procedure Allocate
       (Pool                     : in out Root_Storage_Pool;
--- 40,48 ----
    with Pure
  is
     type Root_Storage_Pool is abstract
!      new Ada.Finalization.Limited_Controlled with private
!    with
!      Preelaborable_Initialization;
  
     procedure Allocate
       (Pool                     : in out Root_Storage_Pool;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stposu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stposu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stposu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stposu.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Storage_Pools.Subpoo
*** 398,403 ****
--- 398,404 ----
     procedure Finalize_Pool (Pool : in out Root_Storage_Pool_With_Subpools) is
        Curr_Ptr : SP_Node_Ptr;
        Ex_Occur : Exception_Occurrence;
+       Handle   : Subpool_Handle;
        Raised   : Boolean := False;
  
        function Is_Empty_List (L : not null SP_Node_Ptr) return Boolean;
*************** package body System.Storage_Pools.Subpoo
*** 432,447 ****
        while not Is_Empty_List (Pool.Subpools'Unchecked_Access) loop
           Curr_Ptr := Pool.Subpools.Next;
  
!          --  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.
!          --    4) Call Deallocate_Subpool
  
           begin
!             Finalize_And_Deallocate (Curr_Ptr.Subpool);
  
           exception
              when Fin_Occur : others =>
--- 433,445 ----
        while not Is_Empty_List (Pool.Subpools'Unchecked_Access) loop
           Curr_Ptr := Pool.Subpools.Next;
  
!          --  Finalize and deallocate the subpool. Beware that the node pointed
!          --  to by Curr_Ptr will be deallocated so may not be passed as actual
!          --  in the call, since the formal parameter is In Out.
  
           begin
!             Handle := Curr_Ptr.Subpool;
!             Finalize_And_Deallocate (Handle);
  
           exception
              when Fin_Occur : others =>
*************** package body System.Storage_Pools.Subpoo
*** 697,700 ****
--- 695,707 ----
        Attach (N_Ptr, To.Subpools'Unchecked_Access);
     end Set_Pool_Of_Subpool;
  
+    -------------------
+    -- _Adjust_Clone --
+    -------------------
+ 
+    procedure _Adjust_Clone (Subpool : in out Root_Subpool) is
+    begin
+       Finalization_Primitives.Initialize (Subpool.Collection);
+    end _Adjust_Clone;
+ 
  end System.Storage_Pools.Subpools;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stposu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stposu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stposu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stposu.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, 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.Storage_Pools.Subpools is
*** 41,55 ****
     pragma Preelaborate;
  
     type Root_Storage_Pool_With_Subpools is abstract
!      new Root_Storage_Pool with private;
!    pragma Preelaborable_Initialization (Root_Storage_Pool_With_Subpools);
     --  The base for all implementations of Storage_Pool_With_Subpools. This
     --  type is Limited_Controlled by derivation. To use subpools, an access
     --  type must be associated with an implementation descending from type
     --  Root_Storage_Pool_With_Subpools.
  
!    type Root_Subpool is abstract tagged limited private;
!    pragma Preelaborable_Initialization (Root_Subpool);
     --  The base for all implementations of Subpool. Objects of this type are
     --  managed by the pool_with_subpools.
  
--- 41,57 ----
     pragma Preelaborate;
  
     type Root_Storage_Pool_With_Subpools is abstract
!      new Root_Storage_Pool with private
!    with
!      Preelaborable_Initialization;
     --  The base for all implementations of Storage_Pool_With_Subpools. This
     --  type is Limited_Controlled by derivation. To use subpools, an access
     --  type must be associated with an implementation descending from type
     --  Root_Storage_Pool_With_Subpools.
  
!    type Root_Subpool is abstract tagged limited private
!    with
!      Preelaborable_Initialization;
     --  The base for all implementations of Subpool. Objects of this type are
     --  managed by the pool_with_subpools.
  
*************** package System.Storage_Pools.Subpools is
*** 129,134 ****
--- 131,148 ----
     is
        (System.Storage_Elements.Storage_Count'Last);
  
+    procedure _Adjust_Clone (Subpool : in out Root_Subpool);
+    --  After copying the value of an initialized (but otherwise unused)
+    --  Root_Subpool object into another subpool object using unchecked
+    --  techniques (an assignment statement would be illegal), this
+    --  procedure is called to fixup the copy (in particular, it fixes up
+    --  self-referential access values contained therein).
+    --
+    --  The leading underscore is intentional. We don't want a user-visible
+    --  declaration that is not mentioned in the spec for this package that
+    --  is given in the Ada RM. This subprogram is called only from the body
+    --  of Ada.Containers.Bounded_Indefinite_Holders.
+ 
  private
     --  SP_Nodes are created on the heap, while collection nodes and associated
     --  objects are created on the pool_with_subpools.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stratt.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stratt.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 is
*** 1036,1039 ****
--- 1036,1056 ----
        Ada.Streams.Write (Stream.all, From_WWC (Item));
     end W_WWC;
  
+    procedure W_80IEEE (Stream : not null access RST; Item : Long_Long_Float) is
+    begin
+       if XDR_Support then
+          XDR.W_LLF (Stream, Item);
+          return;
+       end if;
+ 
+       declare
+          X : S_LLF := From_LLF (Item);
+ 
+          N_IEEE_Extended_Precision_Bytes : constant := 10;
+       begin
+          X (N_IEEE_Extended_Precision_Bytes + 1 .. X'Last) := (others => 0);
+          Ada.Streams.Write (Stream.all, X);
+       end;
+    end W_80IEEE;
+ 
  end System.Stream_Attributes;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stratt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-stratt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 171,176 ****
--- 171,178 ----
     procedure W_WC   (Stream : not null access RST; Item : Wide_Character);
     procedure W_WWC  (Stream : not null access RST; Item : Wide_Wide_Character);
  
+    procedure W_80IEEE (Stream : not null access RST; Item : Long_Long_Float);
+ 
     function Block_IO_OK return Boolean;
     --  Indicate whether the current setting supports block IO. See
     --  System.Strings.Stream_Ops (s-ststop) for details on block IO.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-stratt__cheri.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt__cheri.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-stratt__cheri.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-stratt__cheri.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 is
*** 1016,1019 ****
--- 1016,1036 ----
        Ada.Streams.Write (Stream.all, From_WWC (Item));
     end W_WWC;
  
+    procedure W_80IEEE (Stream : not null access RST; Item : Long_Long_Float) is
+    begin
+       if XDR_Support then
+          XDR.W_LLF (Stream, Item);
+          return;
+       end if;
+ 
+       declare
+          X : S_LLF := From_LLF (Item);
+ 
+          N_IEEE_Extended_Precision_Bytes : constant := 10;
+       begin
+          X (N_IEEE_Extended_Precision_Bytes + 1 .. X'Last) := (others => 0);
+          Ada.Streams.Write (Stream.all, X);
+       end;
+    end W_80IEEE;
+ 
  end System.Stream_Attributes;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-strcom.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strcom.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-strcom.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strcom.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-strcom.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strcom.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-strcom.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strcom.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-strhas.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strhas.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-strhas.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strhas.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-strhas.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strhas.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-strhas.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-strhas.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-string.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-string.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-string.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-string.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-string.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-string.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-string.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-string.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1995-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-ststop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ststop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-ststop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ststop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-ststop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ststop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-ststop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-ststop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-tasloc.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tasloc.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-tasloc.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tasloc.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1997-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-tasloc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tasloc.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-tasloc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tasloc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1998-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traceb.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-traceb.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traceb.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-traceb.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traceb__hpux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb__hpux.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-traceb__hpux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb__hpux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2009-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traceb__mastop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb__mastop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-traceb__mastop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traceb__mastop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traent.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traent.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-traent.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traent.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-traent.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traent.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-traent.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-traent.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, 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-15.2.0/gcc/ada/libgnat/s-trasym.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-trasym.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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
*** 123,126 ****
--- 123,130 ----
        null;
     end Enable_Cache;
  
+    function Calling_Entity return String is
+    begin
+       return "???";
+    end Calling_Entity;
  end System.Traceback.Symbolic;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-trasym.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-trasym.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Traceback.Symbolic is
*** 105,108 ****
--- 105,111 ----
     --  with default value), but backward compatibility for direct calls
     --  is supported.
  
+    function Calling_Entity return String;
+    --  Return the name of the caller of the current subprogram if it's
+    --  available. Otherwise return "???".
  end System.Traceback.Symbolic;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym__dwarf.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-trasym__dwarf.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-trasym__dwarf.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 1999-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is 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.Soft_Links;
*** 41,46 ****
--- 41,47 ----
  with System.CRTL;
  with System.Dwarf_Lines;
  with System.Exception_Traces;
+ with System.OS_Lib;
  with System.Standard_Library;
  with System.Traceback_Entries;
  with System.Strings;
*************** package body System.Traceback.Symbolic i
*** 96,107 ****
  
     function Symbolic_Traceback
       (Traceback    : System.Traceback_Entries.Tracebacks_Array;
!       Suppress_Hex : Boolean) return String;
     function Symbolic_Traceback
       (E            : Ada.Exceptions.Exception_Occurrence;
        Suppress_Hex : Boolean) return String;
     --  Suppress_Hex means do not print any hexadecimal addresses, even if the
!    --  symbol is not available.
  
     function Lt (Left, Right : Module_Cache_Acc) return Boolean;
     --  Sort function for Module_Cache
--- 97,110 ----
  
     function Symbolic_Traceback
       (Traceback    : System.Traceback_Entries.Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type) return String;
     function Symbolic_Traceback
       (E            : Ada.Exceptions.Exception_Occurrence;
        Suppress_Hex : Boolean) return String;
     --  Suppress_Hex means do not print any hexadecimal addresses, even if the
!    --  symbol is not available. Display_Mode configures how frames for which
!    --  symbols are available are printed.
  
     function Lt (Left, Right : Module_Cache_Acc) return Boolean;
     --  Sort function for Module_Cache
*************** package body System.Traceback.Symbolic i
*** 165,193 ****
     --  Non-symbolic traceback (simply write addresses in hexa)
  
     procedure Symbolic_Traceback_No_Lock
!      (Traceback    :        Tracebacks_Array;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String);
!    --  Like the public Symbolic_Traceback_No_Lock except there is no provision
!    --  against concurrent accesses.
  
     procedure Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Module       :        Module_Cache;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String);
     --  Returns the Traceback for a given module
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String);
     --  Build string containing symbolic traceback for the given call chain
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Module       :        Module_Cache;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String);
     --  Likewise but using Module
  
--- 168,200 ----
     --  Non-symbolic traceback (simply write addresses in hexa)
  
     procedure Symbolic_Traceback_No_Lock
!      (Traceback    : Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String);
!    --  Like the public Symbolic_Traceback except there is no provision against
!    --  concurrent accesses.
  
     procedure Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Module       : Module_Cache;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String);
     --  Returns the Traceback for a given module
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String);
     --  Build string containing symbolic traceback for the given call chain
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Module       : Module_Cache;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String);
     --  Likewise but using Module
  
*************** package body System.Traceback.Symbolic i
*** 327,332 ****
--- 334,371 ----
        Module_Cache_Array_Sort (Modules_Cache.all);
     end Enable_Cache;
  
+    function Calling_Entity return String is
+       N_Skipped_Frames : constant Natural := 3;
+       --  We ask Call_Chain to skip the following frames:
+       --
+       --  1. The frame of Call_Chain itself.
+       --  2. The frame of Calling_Entity.
+       --  3. The frame of Calling_Entity's caller.
+       --
+       --  The frame above that is the function the caller is looking for.
+ 
+       Traceback : Tracebacks_Array (1 .. 1);
+       Len       : Natural;
+    begin
+       Call_Chain (Traceback, 1, Len, Skip_Frames => N_Skipped_Frames);
+ 
+       if Len = 0 then
+          return "???";
+       end if;
+ 
+       declare
+          With_Trailing_Newline : constant String :=
+            Symbolic_Traceback
+              (Traceback,
+               Suppress_Hex => True,
+               Display_Mode => Subprg_Name_Only);
+       begin
+          return
+            With_Trailing_Newline
+              (With_Trailing_Newline'First .. With_Trailing_Newline'Last - 1);
+       end;
+    end Calling_Entity;
+ 
     ---------------------
     -- Executable_Name --
     ---------------------
*************** package body System.Traceback.Symbolic i
*** 413,418 ****
--- 452,474 ----
           return;
        end if;
  
+       --  On some platforms, we use dladdr and the dli_fname field to get the
+       --  pathname, but that pathname might be relative and not point to the
+       --  right thing in our context. That happens when the executable is
+       --  dynamically linked and was started through execvp; dli_fname only
+       --  contains the executable name passed to execvp in that case.
+       --
+       --  Because of this, we might be about to open a file that's in fact not
+       --  a shared object but something completely unrelated. It's hard to
+       --  detect this in general, but we perform a sanity check that
+       --  Module_Name does not designate a directory; if it does, it's
+       --  definitely not a shared object.
+ 
+       if System.OS_Lib.Is_Directory (Module_Name) then
+          Success := False;
+          return;
+       end if;
+ 
        Open (Module_Name, Module.C, Success);
  
        --  If a module can't be opened just return now, we just cannot give more
*************** package body System.Traceback.Symbolic i
*** 432,459 ****
     -------------------------------
  
     procedure Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Module       :        Module_Cache;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String)
     is
        Success : Boolean;
     begin
!       if Symbolic.Module_Name.Is_Supported then
           Append (Res, '[');
           Append (Res, Module.Name.all);
           Append (Res, ']' & ASCII.LF);
        end if;
  
        Dwarf_Lines.Symbolic_Traceback
!         (Module.C,
!          Traceback,
!          Suppress_Hex,
!          Success,
!          Res);
  
        if not Success then
!          Hexa_Traceback (Traceback, Suppress_Hex, Res);
        end if;
  
        --  We must not allow an unhandled exception here, since this function
--- 488,515 ----
     -------------------------------
  
     procedure Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Module       : Module_Cache;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String)
     is
        Success : Boolean;
     begin
!       if Symbolic.Module_Name.Is_Supported and then Display_Mode = Full then
           Append (Res, '[');
           Append (Res, Module.Name.all);
           Append (Res, ']' & ASCII.LF);
        end if;
  
        Dwarf_Lines.Symbolic_Traceback
!         (Module.C, Traceback, Suppress_Hex, Display_Mode, Success, Res);
  
        if not Success then
!          Hexa_Traceback
!            (Traceback,
!             Suppress_Hex or else Display_Mode = Subprg_Name_Only,
!             Res);
        end if;
  
        --  We must not allow an unhandled exception here, since this function
*************** package body System.Traceback.Symbolic i
*** 461,467 ****
  
     exception
        when others =>
!          return;
     end Module_Symbolic_Traceback;
  
     -------------------------------------
--- 517,523 ----
  
     exception
        when others =>
!          null;
     end Module_Symbolic_Traceback;
  
     -------------------------------------
*************** package body System.Traceback.Symbolic i
*** 469,476 ****
     -------------------------------------
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String)
     is
        F : constant Natural := Traceback'First;
--- 525,533 ----
     -------------------------------------
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String)
     is
        F : constant Natural := Traceback'First;
*************** package body System.Traceback.Symbolic i
*** 497,502 ****
--- 554,560 ----
                      (Traceback,
                       Modules_Cache (Mid).all,
                       Suppress_Hex,
+                      Display_Mode,
                       Res);
                    return;
                 else
*************** package body System.Traceback.Symbolic i
*** 509,514 ****
--- 567,573 ----
              Multi_Module_Symbolic_Traceback
                (Traceback (F + 1 .. Traceback'Last),
                 Suppress_Hex,
+                Display_Mode,
                 Res);
           end;
        else
*************** package body System.Traceback.Symbolic i
*** 516,525 ****
           --  First try the executable
           if Is_Inside (Exec_Module.C, Traceback (F)) then
              Multi_Module_Symbolic_Traceback
!               (Traceback,
!                Exec_Module,
!                Suppress_Hex,
!                Res);
              return;
           end if;
  
--- 575,581 ----
           --  First try the executable
           if Is_Inside (Exec_Module.C, Traceback (F)) then
              Multi_Module_Symbolic_Traceback
!               (Traceback, Exec_Module, Suppress_Hex, Display_Mode, Res);
              return;
           end if;
  
*************** package body System.Traceback.Symbolic i
*** 535,544 ****
              Init_Module (Module, Success, M_Name, Load_Addr);
              if Success then
                 Multi_Module_Symbolic_Traceback
!                  (Traceback,
!                   Module,
!                   Suppress_Hex,
!                   Res);
                 Close_Module (Module);
              else
                 --  Module not found
--- 591,597 ----
              Init_Module (Module, Success, M_Name, Load_Addr);
              if Success then
                 Multi_Module_Symbolic_Traceback
!                  (Traceback, Module, Suppress_Hex, Display_Mode, Res);
                 Close_Module (Module);
              else
                 --  Module not found
*************** package body System.Traceback.Symbolic i
*** 546,551 ****
--- 599,605 ----
                 Multi_Module_Symbolic_Traceback
                   (Traceback (F + 1 .. Traceback'Last),
                    Suppress_Hex,
+                   Display_Mode,
                    Res);
              end if;
           end;
*************** package body System.Traceback.Symbolic i
*** 553,561 ****
     end Multi_Module_Symbolic_Traceback;
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    :        Tracebacks_Array;
!       Module       :        Module_Cache;
!       Suppress_Hex :        Boolean;
        Res          : in out Bounded_String)
     is
        Pos : Positive;
--- 607,616 ----
     end Multi_Module_Symbolic_Traceback;
  
     procedure Multi_Module_Symbolic_Traceback
!      (Traceback    : Tracebacks_Array;
!       Module       : Module_Cache;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
        Res          : in out Bounded_String)
     is
        Pos : Positive;
*************** package body System.Traceback.Symbolic i
*** 581,591 ****
          (Traceback (Traceback'First .. Pos - 1),
           Module,
           Suppress_Hex,
           Res);
        Multi_Module_Symbolic_Traceback
!         (Traceback (Pos .. Traceback'Last),
!          Suppress_Hex,
!          Res);
     end Multi_Module_Symbolic_Traceback;
  
     --------------------
--- 636,645 ----
          (Traceback (Traceback'First .. Pos - 1),
           Module,
           Suppress_Hex,
+          Display_Mode,
           Res);
        Multi_Module_Symbolic_Traceback
!         (Traceback (Pos .. Traceback'Last), Suppress_Hex, Display_Mode, Res);
     end Multi_Module_Symbolic_Traceback;
  
     --------------------
*************** package body System.Traceback.Symbolic i
*** 615,637 ****
     --------------------------------
  
     procedure Symbolic_Traceback_No_Lock
!      (Traceback    :        Tracebacks_Array;
!       Suppress_Hex :        Boolean;
!       Res          : in out Bounded_String)
!    is
     begin
        if Symbolic.Module_Name.Is_Supported then
!          Multi_Module_Symbolic_Traceback (Traceback, Suppress_Hex, Res);
        else
           if Exec_Module_State = Failed then
              Append (Res, "Call stack traceback locations:" & ASCII.LF);
!             Hexa_Traceback (Traceback, Suppress_Hex, Res);
!          else
!             Module_Symbolic_Traceback
                (Traceback,
!                Exec_Module,
!                Suppress_Hex,
                 Res);
           end if;
        end if;
     end Symbolic_Traceback_No_Lock;
--- 669,692 ----
     --------------------------------
  
     procedure Symbolic_Traceback_No_Lock
!      (Traceback    : Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type;
!       Res          : in out Bounded_String) is
     begin
        if Symbolic.Module_Name.Is_Supported then
!          Multi_Module_Symbolic_Traceback
!            (Traceback, Suppress_Hex, Display_Mode, Res);
        else
           if Exec_Module_State = Failed then
              Append (Res, "Call stack traceback locations:" & ASCII.LF);
!             Hexa_Traceback
                (Traceback,
!                Suppress_Hex or else Display_Mode = Subprg_Name_Only,
                 Res);
+          else
+             Module_Symbolic_Traceback
+               (Traceback, Exec_Module, Suppress_Hex, Display_Mode, Res);
           end if;
        end if;
     end Symbolic_Traceback_No_Lock;
*************** package body System.Traceback.Symbolic i
*** 645,651 ****
  
     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);
--- 700,707 ----
  
     function Symbolic_Traceback
       (Traceback    : Tracebacks_Array;
!       Suppress_Hex : Boolean;
!       Display_Mode : Display_Mode_Type) return String
     is
        Load_Address : constant Address := Get_Executable_Load_Address;
        Res          : Bounded_String (Max_Length => Max_String_Length);
*************** package body System.Traceback.Symbolic i
*** 653,664 ****
     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;
  
        return To_String (Res);
--- 709,720 ----
     begin
        System.Soft_Links.Lock_Task.all;
        Init_Exec_Module;
!       if Display_Mode = Full and then 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, Display_Mode, Res);
        System.Soft_Links.Unlock_Task.all;
  
        return To_String (Res);
*************** package body System.Traceback.Symbolic i
*** 672,684 ****
     function Symbolic_Traceback
       (Traceback : System.Traceback_Entries.Tracebacks_Array) return String is
     begin
!       return Symbolic_Traceback (Traceback, Suppress_Hex => False);
     end Symbolic_Traceback;
  
     function Symbolic_Traceback_No_Hex
       (Traceback : System.Traceback_Entries.Tracebacks_Array) return String is
     begin
!       return Symbolic_Traceback (Traceback, Suppress_Hex => True);
     end Symbolic_Traceback_No_Hex;
  
     function Symbolic_Traceback
--- 728,744 ----
     function Symbolic_Traceback
       (Traceback : System.Traceback_Entries.Tracebacks_Array) return String is
     begin
!       return
!         Symbolic_Traceback
!           (Traceback, Suppress_Hex => False, Display_Mode => Full);
     end Symbolic_Traceback;
  
     function Symbolic_Traceback_No_Hex
       (Traceback : System.Traceback_Entries.Tracebacks_Array) return String is
     begin
!       return
!         Symbolic_Traceback
!           (Traceback, Suppress_Hex => True, Display_Mode => Full);
     end Symbolic_Traceback_No_Hex;
  
     function Symbolic_Traceback
*************** package body System.Traceback.Symbolic i
*** 686,694 ****
        Suppress_Hex : Boolean) return String
     is
     begin
!       return Symbolic_Traceback
!           (Ada.Exceptions.Traceback.Tracebacks (E),
!            Suppress_Hex);
     end Symbolic_Traceback;
  
     function Symbolic_Traceback
--- 746,754 ----
        Suppress_Hex : Boolean) return String
     is
     begin
!       return
!         Symbolic_Traceback
!           (Ada.Exceptions.Traceback.Tracebacks (E), Suppress_Hex, Full);
     end Symbolic_Traceback;
  
     function Symbolic_Traceback
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-tsmona.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-tsmona.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-tsmona__linux.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona__linux.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-tsmona__linux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona__linux.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona__mingw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-tsmona__mingw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-tsmona__mingw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --                     Copyright (C) 2012-2026, AdaCore                     --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-unstyp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-unstyp.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-unstyp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-unstyp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-utf_32.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-utf_32.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-utf_32.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-utf_32.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-utf_32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-utf_32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-utf_32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-utf_32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vade128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vade128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vade32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vade32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vade64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vade64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vade64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vaen16.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaen16.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vaen16.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaen16.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vaen32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaen32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vaen32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaen32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vaenu8.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaenu8.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vaenu8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaenu8.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vafi128.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi128.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vafi128.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi128.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 routines for scanning values for ordinary fixed point
! --  types up to 128-bit small and mantissa, for use in Text_IO.Decimal_IO, and
! --  the Value attribute for such decimal types.
  
  with Interfaces;
  with System.Arith_128;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Value attribute for
! --  ordinary fixed point types up to 128-bit small and mantissa, and also for
! --  conversion operations required in Text_IO.Fixed_IO for such types.
  
  with Interfaces;
  with System.Arith_128;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vafi32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vafi32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 routines for scanning values for decimal fixed point
! --  types up to 32-bit small and mantissa, for use in Text_IO.Decimal_IO, and
! --  the Value attribute for such decimal types.
  
  with Interfaces;
  with System.Arith_32;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Value attribute for
! --  ordinary fixed point types up to 32-bit small and mantissa, and also for
! --  conversion operations required in Text_IO.Fixed_IO for such types.
  
  with Interfaces;
  with System.Arith_32;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vafi64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi64.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vafi64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vafi64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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 routines for scanning values for decimal fixed point
! --  types up to 64-bit small and mantissa, for use in Text_IO.Decimal_IO, and
! --  the Value attribute for such decimal types.
  
  with Interfaces;
  with System.Arith_64;
--- 29,37 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  This package contains the routines for supporting the Value attribute for
! --  ordinary fixed point types up to 64-bit small and mantissa, and also for
! --  conversion operations required in Text_IO.Fixed_IO for such types.
  
  with Interfaces;
  with System.Arith_64;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vaispe.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaispe.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-vaispe.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaispe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,87 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ I _ S P E C                  --
- --                                                                          --
- --                                 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- --
- -- 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- package body System.Value_I_Spec is
- 
-    -----------------------------------
-    -- Prove_Scan_Only_Decimal_Ghost --
-    -----------------------------------
- 
-    procedure Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int) is
-       Non_Blank : constant Positive := First_Non_Space_Ghost
-         (Str, Str'First, Str'Last);
-       pragma Assert (Str (Str'First + 1) /= ' ');
-       pragma Assert
-         (if Val < 0 then Non_Blank = Str'First
-          else
-            Str (Str'First) = ' '
-             and then Non_Blank = Str'First + 1);
-       Minus     : constant Boolean := Str (Non_Blank) = '-';
-       Fst_Num   : constant Positive :=
-         (if Minus then Non_Blank + 1 else Non_Blank);
-       pragma Assert (Fst_Num = Str'First + 1);
-       Uval      : constant Uns := Abs_Uns_Of_Int (Val);
- 
-       procedure Prove_Conversion_Is_Identity (Val : Int; Uval : Uns)
-       with
-         Pre  => Minus = (Val < 0)
-           and then Uval = Abs_Uns_Of_Int (Val),
-         Post => Uns_Is_Valid_Int (Minus, Uval)
-           and then Is_Int_Of_Uns (Minus, Uval, Val);
-       --  Local proof of the unicity of the signed representation
- 
-       procedure Prove_Conversion_Is_Identity (Val : Int; Uval : Uns) is null;
- 
-    --  Start of processing for Prove_Scan_Only_Decimal_Ghost
- 
-    begin
-       Prove_Conversion_Is_Identity (Val, Uval);
-       pragma Assert
-         (U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
-       pragma Assert
-         (U_Spec.Scan_Split_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       U_Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, 10);
-       pragma Assert
-         (U_Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       pragma Assert (Only_Space_Ghost
-         (Str, U_Spec.Raw_Unsigned_Last_Ghost
-                         (Str, Fst_Num, Str'Last), Str'Last));
-       pragma Assert (Is_Integer_Ghost (Str));
-       pragma Assert (Is_Value_Integer_Ghost (Str, Val));
-    end Prove_Scan_Only_Decimal_Ghost;
- 
- end System.Value_I_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vaispe.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaispe.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vaispe.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vaispe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,185 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ I _ S P E C                  --
- --                                                                          --
- --                                 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- --
- -- 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 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- with System.Val_Spec; use System.Val_Spec;
- 
- generic
- 
-    type Int is range <>;
- 
-    type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
- package System.Value_I_Spec with
-    Ghost,
-    SPARK_Mode,
-    Always_Terminates
- is
-    pragma Preelaborate;
-    use all type U_Spec.Uns_Option;
- 
-    function Uns_Is_Valid_Int (Minus : Boolean; Uval : Uns) return Boolean is
-      (if Minus then Uval <= Uns (Int'Last) + 1
-       else Uval <= Uns (Int'Last))
-    with Post => True;
-    --  Return True if Uval (or -Uval when Minus is True) is a valid number of
-    --  type Int.
- 
-    function Is_Int_Of_Uns
-      (Minus : Boolean;
-       Uval  : Uns;
-       Val   : Int)
-       return Boolean
-    is
-      (if Minus and then Uval = Uns (Int'Last) + 1 then Val = Int'First
-       elsif Minus then Val = -(Int (Uval))
-       else Val = Int (Uval))
-    with
-      Pre  => Uns_Is_Valid_Int (Minus, Uval),
-      Post => True;
-    --  Return True if Uval (or -Uval when Minus is True) is equal to Val
- 
-    function Abs_Uns_Of_Int (Val : Int) return Uns is
-      (if Val = Int'First then Uns (Int'Last) + 1
-       elsif Val < 0 then Uns (-Val)
-       else Uns (Val));
-    --  Return the unsigned absolute value of Val
- 
-    function Slide_To_1 (Str : String) return String
-    with
-      Post =>
-        Only_Space_Ghost (Str, Str'First, Str'Last) =
-          (for all J in Str'First .. Str'Last =>
-             Slide_To_1'Result (J - Str'First + 1) = ' ');
-    --  Slides Str so that it starts at 1
- 
-    function Slide_If_Necessary (Str : String) return String is
-      (if Str'Last = Positive'Last then Slide_To_1 (Str) else Str);
-    --  If Str'Last = Positive'Last then slides Str so that it starts at 1
- 
-    function Is_Integer_Ghost (Str : String) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
-       begin
-         U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
-           and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
-              (Str, Fst_Num, Str'Last)
-           and then
-             Uns_Is_Valid_Int
-               (Minus => Str (Non_Blank) = '-',
-                Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
-                  (Str, Fst_Num, Str'Last))
-           and then Only_Space_Ghost
-             (Str, U_Spec.Raw_Unsigned_Last_Ghost
-              (Str, Fst_Num, Str'Last), Str'Last))
-    with
-      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last,
-      Post => True;
-    --  Ghost function that determines if Str has the correct format for a
-    --  signed number, consisting in some blank characters, an optional
-    --  sign, a raw unsigned number which does not overflow and then some
-    --  more blank characters.
- 
-    function Is_Value_Integer_Ghost (Str : String; Val : Int) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1 else Non_Blank);
-         Uval      : constant Uns :=
-           U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last);
-       begin
-         Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
-                        Uval  => Uval,
-                        Val   => Val))
-    with
-      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last
-        and then Is_Integer_Ghost (Str),
-      Post => True;
-    --  Ghost function that returns True if Val is the value corresponding to
-    --  the signed number represented by Str.
- 
-    procedure Prove_Scan_Only_Decimal_Ghost (Str : String; Val : Int)
-    with
-      Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then Str'Length >= 2
-        and then Str (Str'First) in ' ' | '-'
-        and then (Str (Str'First) = '-') = (Val < 0)
-        and then U_Spec.Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
-        and then U_Spec.Scan_Based_Number_Ghost
-          (Str, Str'First + 1, Str'Last)
-          = U_Spec.Wrap_Option (Abs_Uns_Of_Int (Val)),
-      Post => Is_Integer_Ghost (Slide_If_Necessary (Str))
-        and then Is_Value_Integer_Ghost (Str, Val);
-    --  Ghost lemma used in the proof of 'Image implementation, to prove that
-    --  the result of Value_Integer on a decimal string is the same as the
-    --  signing the result of Scan_Based_Number_Ghost.
- 
- private
- 
-    ----------------
-    -- Slide_To_1 --
-    ----------------
- 
-    function Slide_To_1 (Str : String) return String is
-      (declare
-         Res : constant String (1 .. Str'Length) := Str;
-       begin
-         Res);
- 
- end System.Value_I_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valboo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valboo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valboo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valboo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  with System.Val_Util; use System.Val_Util;
  
  package body System.Val_Bool
--- 29,34 ----
*************** is
*** 55,63 ****
     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));
- 
        if S (F .. L) = "TRUE" then
           return True;
  
--- 47,52 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valboo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valboo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valboo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valboo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,60 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 System.Val_Spec;
- 
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
!    function Value_Boolean (Str : String) return Boolean
!    with
!      Pre  => System.Val_Spec.Is_Boolean_Image_Ghost (Str, True)
!        or else System.Val_Spec.Is_Boolean_Image_Ghost (Str, False),
!      Post =>
!        Value_Boolean'Result =
!          (Str (System.Val_Spec.First_Non_Space_Ghost
!             (Str, Str'First, Str'Last)) in 't' | 'T');
     --  Computes Boolean'Value (Str)
  
  end System.Val_Bool;
--- 29,40 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  package System.Val_Bool
    with SPARK_Mode
  is
     pragma Preelaborate;
  
!    function Value_Boolean (Str : String) return Boolean;
     --  Computes Boolean'Value (Str)
  
  end System.Val_Bool;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valcha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valcha.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valcha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valcha.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valcha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valcha.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valcha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valcha.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valflt.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valflt.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valflt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valflt.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valint.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valint.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,54 ****
  --  This package contains routines 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_Uns;
  with System.Value_I;
- with System.Vs_Int;
- with System.Vs_Uns;
  
  package System.Val_Int with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_Int with SPARK_Mode i
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Integer,
        Uns               => Unsigned,
!       Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned,
!       U_Spec            => System.Vs_Uns.Spec,
!       Spec              => System.Vs_Int.Spec);
  
     procedure Scan_Integer
       (Str : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Integer,
        Uns               => Unsigned,
!       Scan_Raw_Unsigned => Val_Uns.Scan_Raw_Unsigned);
  
     procedure Scan_Integer
       (Str : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vallfl.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallfl.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vallfl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallfl.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valllf.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllf.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valllf.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllf.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vallli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallli.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-vallli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vallli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vallli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,54 ****
  --  This package contains routines for scanning signed 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_LLU;
  with System.Value_I;
- with System.Vs_LLI;
- with System.Vs_LLU;
  
  package System.Val_LLI with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_LLI with SPARK_Mode i
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLU.Spec,
!       Spec              => System.Vs_LLI.Spec);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Long_Long_Integer,
        Uns               => Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLU.Scan_Raw_Long_Long_Unsigned);
  
     procedure Scan_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,54 ****
  --  This package contains routines for scanning signed 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Val_LLLU;
  with System.Value_I;
- with System.Vs_LLLI;
- with System.Vs_LLLU;
  
  package System.Val_LLLI with SPARK_Mode is
     pragma Preelaborate;
--- 32,40 ----
*************** package System.Val_LLLI with SPARK_Mode
*** 58,66 ****
     package Impl is new Value_I
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned,
!       U_Spec            => System.Vs_LLLU.Spec,
!       Spec              => System.Vs_LLLI.Spec);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
--- 44,50 ----
     package Impl is new Value_I
       (Int               => Long_Long_Long_Integer,
        Uns               => Long_Long_Long_Unsigned,
!       Scan_Raw_Unsigned => Val_LLLU.Scan_Raw_Long_Long_Long_Unsigned);
  
     procedure Scan_Long_Long_Long_Integer
       (Str  : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vallllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vallllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vallllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,59 ****
  --  This package contains routines for scanning modular 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_LLLU;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valllu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valllu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,59 ****
  --  This package contains routines for scanning modular 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_LLU;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned, System.Vs_LLU.Spec);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Long_Long_Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_LLU with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
  
!    package Impl is new Value_U (Long_Long_Unsigned);
  
     procedure Scan_Raw_Long_Long_Unsigned
       (Str : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valrea.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valrea.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valrea.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valrea.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 49,55 ****
     Precision_Limit : constant Uns := 2**Num'Machine_Mantissa - 1;
     --  See below for the rationale
  
!    package Impl is new Value_R (Uns, 2, Precision_Limit, Round => False);
  
     subtype Base_T is Unsigned range 2 .. 16;
  
--- 49,56 ----
     Precision_Limit : constant Uns := 2**Num'Machine_Mantissa - 1;
     --  See below for the rationale
  
!    package Impl is new Value_R (Uns, 2, Precision_Limit);
!    --  We do not use the Extra digits for floating-point types
  
     subtype Base_T is Unsigned range 2 .. 16;
  
*************** package body System.Val_Real is
*** 90,96 ****
          when others => raise Program_Error);
     --  Return the exponent of a power of 2
  
!    function Integer_to_Real
       (Str   : String;
        Val   : Impl.Value_Array;
        Base  : Unsigned;
--- 91,97 ----
          when others => raise Program_Error);
     --  Return the exponent of a power of 2
  
!    function Integer_To_Real
       (Str   : String;
        Val   : Impl.Value_Array;
        Base  : Unsigned;
*************** package body System.Val_Real is
*** 105,114 ****
     --  Return Num'Scaling (5.0**Exp, -S) as a double number where Exp > Maxexp
  
     ---------------------
!    -- Integer_to_Real --
     ---------------------
  
!    function Integer_to_Real
       (Str   : String;
        Val   : Impl.Value_Array;
        Base  : Unsigned;
--- 106,115 ----
     --  Return Num'Scaling (5.0**Exp, -S) as a double number where Exp > Maxexp
  
     ---------------------
!    -- Integer_To_Real --
     ---------------------
  
!    function Integer_To_Real
       (Str   : String;
        Val   : Impl.Value_Array;
        Base  : Unsigned;
*************** package body System.Val_Real is
*** 213,219 ****
  
        --  Compute the final value by applying the scaling, if any
  
!       if (Val (1) = 0 and then Val (2) = 0) or else S = 0 then
           R_Val := Double_Real.To_Single (D_Val);
  
        else
--- 214,220 ----
  
        --  Compute the final value by applying the scaling, if any
  
!       if Val (1) = 0 or else S = 0 then
           R_Val := Double_Real.To_Single (D_Val);
  
        else
*************** package body System.Val_Real is
*** 313,319 ****
  
     exception
        when Constraint_Error => Bad_Value (Str);
!    end Integer_to_Real;
  
     -------------------
     -- Large_Powfive --
--- 314,320 ----
  
     exception
        when Constraint_Error => Bad_Value (Str);
!    end Integer_To_Real;
  
     -------------------
     -- Large_Powfive --
*************** package body System.Val_Real is
*** 456,462 ****
     begin
        Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Base, Scale, Extra, Minus);
  
!       return Integer_to_Real (Str, Val, Base, Scale, Minus);
     end Scan_Real;
  
     ----------------
--- 457,463 ----
     begin
        Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Base, Scale, Extra, Minus);
  
!       return Integer_To_Real (Str, Val, Base, Scale, Minus);
     end Scan_Real;
  
     ----------------
*************** package body System.Val_Real is
*** 473,479 ****
     begin
        Val := Impl.Value_Raw_Real (Str, Base, Scale, Extra, Minus);
  
!       return Integer_to_Real (Str, Val, Base, Scale, Minus);
     end Value_Real;
  
  end System.Val_Real;
--- 474,480 ----
     begin
        Val := Impl.Value_Raw_Real (Str, Base, Scale, Extra, Minus);
  
!       return Integer_To_Real (Str, Val, Base, Scale, Minus);
     end Value_Real;
  
  end System.Val_Real;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valrea.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valrea.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valrea.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valrea.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valspe.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valspe.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valspe.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valspe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,87 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                      S Y S T E M . V A L _ S P E C                       --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
- package body System.Val_Spec
-   with SPARK_Mode
- is
- 
-    ---------------------------
-    -- First_Non_Space_Ghost --
-    ---------------------------
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    is
-    begin
-       for J in From .. To loop
-          if S (J) /= ' ' then
-             return J;
-          end if;
- 
-          pragma Loop_Invariant (for all K in From .. J => S (K) = ' ');
-       end loop;
- 
-       raise Program_Error;
-    end First_Non_Space_Ghost;
- 
-    -----------------------
-    -- Last_Number_Ghost --
-    -----------------------
- 
-    function Last_Number_Ghost (Str : String) return Positive is
-    begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "occurs in ghost code, not executable");
- 
-       for J in Str'Range loop
-          if Str (J) not in '0' .. '9' | '_' then
-             return J - 1;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Str'First .. J => Str (K) in '0' .. '9' | '_');
-       end loop;
- 
-       return Str'Last;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
-    end Last_Number_Ghost;
- 
- end System.Val_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valspe.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valspe.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valspe.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valspe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,246 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                      S Y S T E M . V A L _ S P E C                       --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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);
- 
- package System.Val_Spec with
-   SPARK_Mode,
-   Pure,
-   Ghost
- is
-    function Only_Space_Ghost (S : String; From, To : Integer) return Boolean is
-       (for all J in From .. To => S (J) = ' ')
-    with
-      Pre  => From > To or else (From >= S'First and then To <= S'Last),
-      Post => True;
-    --  Ghost function that returns True if S has only space characters from
-    --  index From to index To.
- 
-    function First_Non_Space_Ghost
-      (S        : String;
-       From, To : Integer) return Positive
-    with
-      Pre  => From in S'Range
-        and then To in S'Range
-        and then not Only_Space_Ghost (S, From, To),
-      Post => First_Non_Space_Ghost'Result in From .. To
-        and then S (First_Non_Space_Ghost'Result) /= ' '
-        and then Only_Space_Ghost
-          (S, From, First_Non_Space_Ghost'Result - 1);
-    --  Ghost function that returns the index of the first non-space character
-    --  in S, which necessarily exists given the precondition on S.
- 
-    function Is_Boolean_Image_Ghost
-      (Str : String;
-       Val : Boolean) return Boolean
-    is
-      (not Only_Space_Ghost (Str, Str'First, Str'Last)
-         and then
-       (declare
-          F : constant Positive := First_Non_Space_Ghost
-            (Str, Str'First, Str'Last);
-        begin
-          (Val
-           and then F <= Str'Last - 3
-           and then Str (F)     in 't' | 'T'
-           and then Str (F + 1) in 'r' | 'R'
-           and then Str (F + 2) in 'u' | 'U'
-           and then Str (F + 3) in 'e' | 'E'
-           and then
-             (if F + 3 < Str'Last then
-                Only_Space_Ghost (Str, F + 4, Str'Last)))
-            or else
-          (not Val
-           and then F <= Str'Last - 4
-           and then Str (F)     in 'f' | 'F'
-           and then Str (F + 1) in 'a' | 'A'
-           and then Str (F + 2) in 'l' | 'L'
-           and then Str (F + 3) in 's' | 'S'
-           and then Str (F + 4) in 'e' | 'E'
-           and then
-             (if F + 4 < Str'Last then
-                Only_Space_Ghost (Str, F + 5, Str'Last)))))
-    with
-      Ghost;
-    --  Ghost function that returns True iff Str is the image of boolean Val,
-    --  that is "true" or "false" in any capitalization, possibly surounded by
-    --  space characters.
- 
-    function Only_Number_Ghost (Str : String; From, To : Integer) return Boolean
-    is
-       (for all J in From .. To => Str (J) in '0' .. '9' | '_')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only number characters from
-    --  index From to index To.
- 
-    function Last_Number_Ghost (Str : String) return Positive
-    with
-      Pre  => Str /= "" and then Str (Str'First) in '0' .. '9',
-      Post => Last_Number_Ghost'Result in Str'Range
-        and then (if Last_Number_Ghost'Result < Str'Last then
-                    Str (Last_Number_Ghost'Result + 1) not in '0' .. '9' | '_')
-        and then Only_Number_Ghost (Str, Str'First, Last_Number_Ghost'Result);
-    --  Ghost function that returns the index of the last character in S that
-    --  is either a figure or underscore, which necessarily exists given the
-    --  precondition on Str.
- 
-    function Is_Natural_Format_Ghost (Str : String) return Boolean is
-      (Str /= ""
-         and then Str (Str'First) in '0' .. '9'
-         and then
-         (declare
-            L : constant Positive := Last_Number_Ghost (Str);
-          begin
-            Str (L) in '0' .. '9'
-              and then (for all J in Str'First .. L =>
-                          (if Str (J) = '_' then Str (J + 1) /= '_'))));
-    --  Ghost function that determines if Str has the correct format for a
-    --  natural number, consisting in a sequence of figures possibly separated
-    --  by single underscores. It may be followed by other characters.
- 
-    function Starts_As_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (Str'Length > 1
-       and then Str (Str'First) in 'E' | 'e'
-       and then
-         (declare
-             Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-             Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-             Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-          begin
-            (if Minus_Sign then Real)
-             and then (if Sign then Str'Length > 2)
-             and then
-               (declare
-                  Start : constant Natural :=
-                   (if Sign then Str'First + 2 else Str'First + 1);
-                begin
-                  Str (Start) in '0' .. '9')));
-    --  Ghost function that determines if Str is recognized as something which
-    --  might be an exponent, ie. it starts with an 'e', capitalized or not,
-    --  followed by an optional sign which can only be '-' if we are working on
-    --  real numbers (Real is True), and then a digit in decimal notation.
- 
-    function Is_Opt_Exponent_Format_Ghost
-      (Str  : String;
-       Real : Boolean := False) return Boolean
-    is
-      (not Starts_As_Exponent_Format_Ghost (Str, Real)
-       or else
-         (declare
-            Start : constant Natural :=
-              (if Str (Str'First + 1) in '+' | '-' then Str'First + 2
-               else Str'First + 1);
-          begin Is_Natural_Format_Ghost (Str (Start .. Str'Last))));
-    --  Ghost function that determines if Str has the correct format for an
-    --  optional exponent, that is, either it does not start as an exponent, or
-    --  it is in a correct format for a natural number.
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    with
-      Subprogram_Variant => (Increases => P),
-      Pre => Str /= "" and then Str (Str'First) in '0' .. '9'
-        and then Str'Last < Natural'Last
-        and then P in Str'First .. Last_Number_Ghost (Str) + 1;
-    --  Ghost function that recursively computes the natural number in Str, up
-    --  to the first number greater or equal to Natural'Last / 10, assuming Acc
-    --  has been scanned already and scanning continues at index P.
- 
-    function Scan_Exponent_Ghost
-      (Str  : String;
-       Real : Boolean := False)
-       return Integer
-    is
-      (declare
-         Plus_Sign  : constant Boolean := Str (Str'First + 1) = '+';
-         Minus_Sign : constant Boolean := Str (Str'First + 1) = '-';
-         Sign       : constant Boolean := Plus_Sign or Minus_Sign;
-         Start      : constant Natural :=
-           (if Sign then Str'First + 2 else Str'First + 1);
-         Value      : constant Natural :=
-           Scan_Natural_Ghost (Str (Start .. Str'Last), Start, 0);
-       begin
-         (if Minus_Sign then -Value else Value))
-    with
-      Pre  => Str'Last < Natural'Last
-        and then Starts_As_Exponent_Format_Ghost (Str, Real),
-      Post => (if not Real then Scan_Exponent_Ghost'Result >= 0);
-    --  Ghost function that scans an exponent
- 
- private
- 
-    ------------------------
-    -- Scan_Natural_Ghost --
-    ------------------------
- 
-    function Scan_Natural_Ghost
-      (Str : String;
-       P   : Natural;
-       Acc : Natural)
-       return Natural
-    is
-      (if P > Str'Last
-         or else Str (P) not in '0' .. '9' | '_'
-         or else Acc >= Integer'Last / 10
-       then
-         Acc
-       elsif Str (P) = '_' then
-         Scan_Natural_Ghost (Str, P + 1, Acc)
-       else
-         (declare
-            Shift_Acc : constant Natural :=
-              Acc * 10 +
-                (Integer'(Character'Pos (Str (P))) -
-                   Integer'(Character'Pos ('0')));
-          begin
-            Scan_Natural_Ghost (Str, P + 1, Shift_Acc)));
- 
- end System.Val_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valued.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valued.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valued.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valued.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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_D is
*** 38,51 ****
     pragma Assert (Int'Size <= Uns'Size);
     --  We need an unsigned type large enough to represent the mantissa
  
!    package Impl is new Value_R (Uns, 1, 2**(Int'Size - 1), Round => False);
!    --  We do not use the Extra digit for decimal fixed-point types
  
     function Integer_to_Decimal
       (Str    : String;
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
        Minus  : Boolean;
        Scale  : Integer) return Int;
     --  Convert the real value from integer to decimal representation
--- 38,53 ----
     pragma Assert (Int'Size <= Uns'Size);
     --  We need an unsigned type large enough to represent the mantissa
  
!    package Impl is new Value_R (Uns, 1, 2**(Int'Size - 1));
!    --  We do not use the Extra digits for decimal fixed-point types, except to
!    --  effectively ensure that overflow is detected near the boundaries.
  
     function Integer_to_Decimal
       (Str    : String;
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
+       Extra2 : Unsigned;
        Minus  : Boolean;
        Scale  : Integer) return Int;
     --  Convert the real value from integer to decimal representation
*************** package body System.Value_D is
*** 59,64 ****
--- 61,67 ----
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
+       Extra2 : Unsigned;
        Minus  : Boolean;
        Scale  : Integer) return Int
     is
*************** package body System.Value_D is
*** 72,78 ****
        --  updated to contain the remaining power in the computation. Note that
        --  Factor is expected to be positive in this context.
  
!       function Unsigned_To_Signed (Val : Uns) return Int;
        --  Convert an integer value from unsigned to signed representation
  
        -----------------
--- 75,81 ----
        --  updated to contain the remaining power in the computation. Note that
        --  Factor is expected to be positive in this context.
  
!       function To_Signed (Val : Uns) return Int;
        --  Convert an integer value from unsigned to signed representation
  
        -----------------
*************** package body System.Value_D is
*** 99,109 ****
           return Result;
        end Safe_Expont;
  
!       ------------------------
!       -- Unsigned_To_Signed --
!       ------------------------
  
!       function Unsigned_To_Signed (Val : Uns) return Int is
        begin
           --  Deal with overflow cases, and also with largest negative number
  
--- 102,112 ----
           return Result;
        end Safe_Expont;
  
!       ---------------
!       -- To_Signed --
!       ---------------
  
!       function To_Signed (Val : Uns) return Int is
        begin
           --  Deal with overflow cases, and also with largest negative number
  
*************** package body System.Value_D is
*** 124,157 ****
           else
              return Int (Val);
           end if;
!       end Unsigned_To_Signed;
  
     begin
        --  If the base of the value is 10 or its scaling factor is zero, then
        --  add the scales (they are defined in the opposite sense) and apply
        --  the result to the value, checking for overflow in the process.
  
!       if Base = 10 or else ScaleB = 0 then
!          declare
!             S : Integer := ScaleB + Scale;
!             V : Uns     := Val;
! 
           begin
              while S < 0 loop
                 V := V / 10;
                 S := S + 1;
              end loop;
  
              while S > 0 loop
!                if V <= Uns'Last / 10 then
!                   V := V * 10;
                    S := S - 1;
                 else
                    Bad_Value (Str);
                 end if;
              end loop;
  
!             return Unsigned_To_Signed (V);
           end;
  
        --  If the base of the value is not 10, use a scaled divide operation
--- 127,177 ----
           else
              return Int (Val);
           end if;
!       end To_Signed;
! 
!       --  Local variables
! 
!       V : Uns      := Val;
!       S : Integer  := ScaleB;
!       E : Unsigned := Extra2 / Base;
  
     begin
+       --  The implementation of Value_R uses fully symmetric arithmetics
+       --  but here we cannot handle 2**(Int'Size - 1) if Minus is not set.
+ 
+       if V = 2**(Int'Size - 1) and then not Minus then
+          E := Unsigned (V rem Uns (Base));
+          V := V / Uns (Base);
+          S := S + 1;
+       end if;
+ 
        --  If the base of the value is 10 or its scaling factor is zero, then
        --  add the scales (they are defined in the opposite sense) and apply
        --  the result to the value, checking for overflow in the process.
  
!       if Base = 10 or else S = 0 then
           begin
+             S := S + Scale;
+ 
              while S < 0 loop
+                if V = 0 then
+                   exit;
+                end if;
                 V := V / 10;
                 S := S + 1;
              end loop;
  
              while S > 0 loop
!                if V <= (Uns'Last - Uns (E)) / 10 then
!                   V := V * 10 + Uns (E);
                    S := S - 1;
+                   E := 0;
                 else
                    Bad_Value (Str);
                 end if;
              end loop;
  
!             return To_Signed (V);
           end;
  
        --  If the base of the value is not 10, use a scaled divide operation
*************** package body System.Value_D is
*** 159,168 ****
  
        else
           declare
!             B : constant Int     := Int (Base);
!             S : constant Integer := ScaleB;
! 
!             V : Uns := Val;
  
              Y, Z, Q, R : Int;
  
--- 179,185 ----
  
        else
           declare
!             B : constant Int := Int (Base);
  
              Y, Z, Q, R : Int;
  
*************** package body System.Value_D is
*** 178,184 ****
                    Z := Safe_Expont (B, LS, 10 ** Integer'Max (0, -Scale));
  
                    for J in 1 .. LS loop
!                      V := V / Uns (B);
                    end loop;
                 end;
  
--- 195,204 ----
                    Z := Safe_Expont (B, LS, 10 ** Integer'Max (0, -Scale));
  
                    for J in 1 .. LS loop
!                      if V = 0 then
!                         exit;
!                      end if;
!                      V := V / Uns (Base);
                    end loop;
                 end;
  
*************** package body System.Value_D is
*** 193,200 ****
                    Z := 10 ** Integer'Max (0, -Scale);
  
                    for J in 1 .. LS loop
!                      if V <= Uns'Last / Uns (B) then
!                         V := V * Uns (B);
                       else
                          Bad_Value (Str);
                       end if;
--- 213,221 ----
                    Z := 10 ** Integer'Max (0, -Scale);
  
                    for J in 1 .. LS loop
!                      if V <= (Uns'Last - Uns (E)) / Uns (Base) then
!                         V := V * Uns (Base) + Uns (E);
!                         E := 0;
                       else
                          Bad_Value (Str);
                       end if;
*************** package body System.Value_D is
*** 207,215 ****
                 raise Program_Error;
              end if;
  
!             --  Perform a scale divide operation with rounding to match 'Image
  
!             Scaled_Divide (Unsigned_To_Signed (V), Y, Z, Q, R, Round => True);
  
              return Q;
           end;
--- 228,236 ----
                 raise Program_Error;
              end if;
  
!             --  Perform a scaled divide operation with truncation
  
!             Scaled_Divide (To_Signed (V), Y, Z, Q, R, Round => False);
  
              return Q;
           end;
*************** package body System.Value_D is
*** 229,244 ****
        Max   : Integer;
        Scale : Integer) return Int
     is
!       Base  : Unsigned;
!       Scl   : Impl.Scale_Array;
!       Extra : Unsigned;
!       Minus : Boolean;
!       Val   : Impl.Value_Array;
  
     begin
!       Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Base, Scl, Extra, Minus);
  
!       return Integer_to_Decimal (Str, Val (1), Base, Scl (1), Minus, Scale);
     end Scan_Decimal;
  
     -------------------
--- 250,266 ----
        Max   : Integer;
        Scale : Integer) return Int
     is
!       Base   : Unsigned;
!       Scl    : Impl.Scale_Array;
!       Extra2 : Unsigned;
!       Minus  : Boolean;
!       Val    : Impl.Value_Array;
  
     begin
!       Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Base, Scl, Extra2, Minus);
  
!       return
!         Integer_to_Decimal (Str, Val (1), Base, Scl (1), Extra2, Minus, Scale);
     end Scan_Decimal;
  
     -------------------
*************** package body System.Value_D is
*** 246,261 ****
     -------------------
  
     function Value_Decimal (Str : String; Scale : Integer) return Int is
!       Base  : Unsigned;
!       Scl   : Impl.Scale_Array;
!       Extra : Unsigned;
!       Minus : Boolean;
!       Val   : Impl.Value_Array;
  
     begin
!       Val := Impl.Value_Raw_Real (Str, Base, Scl, Extra, Minus);
  
!       return Integer_to_Decimal (Str, Val (1), Base, Scl (1), Minus, Scale);
     end Value_Decimal;
  
  end System.Value_D;
--- 268,284 ----
     -------------------
  
     function Value_Decimal (Str : String; Scale : Integer) return Int is
!       Base   : Unsigned;
!       Scl    : Impl.Scale_Array;
!       Extra2 : Unsigned;
!       Minus  : Boolean;
!       Val    : Impl.Value_Array;
  
     begin
!       Val := Impl.Value_Raw_Real (Str, Base, Scl, Extra2, Minus);
  
!       return
!         Integer_to_Decimal (Str, Val (1), Base, Scl (1), Extra2, Minus, Scale);
     end Value_Decimal;
  
  end System.Value_D;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valued.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valued.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valued.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valued.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuef.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuef.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuef.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuef.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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.Value_R;
*** 36,60 ****
  package body System.Value_F is
  
     --  The prerequisite of the implementation is that the computation of the
!    --  operands of the scaled divide does not unduly overflow when the small
!    --  is neither an integer nor the reciprocal of an integer, which means
!    --  that its numerator and denominator must be both not larger than the
!    --  smallest divide 2**(Int'Size - 1) / Base where Base ranges over the
!    --  supported values for the base of the literal. Given that the largest
!    --  supported base is 16, this gives a limit of 2**(Int'Size - 5).
  
     pragma Assert (Int'Size <= Uns'Size);
     --  We need an unsigned type large enough to represent the mantissa
  
!    package Impl is new Value_R (Uns, 1, 2**(Int'Size - 1), Round => True);
!    --  We use the Extra digit for ordinary fixed-point types
  
     function Integer_To_Fixed
       (Str    : String;
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
!       Extra  : Unsigned;
        Minus  : Boolean;
        Num    : Int;
        Den    : Int) return Int;
--- 36,61 ----
  package body System.Value_F is
  
     --  The prerequisite of the implementation is that the computation of the
!    --  operands of the scaled divide does not unduly overflow, which means
!    --  that the numerator and the denominator of the small must be both not
!    --  larger than the smallest divide 2**(Int'Size - 1) / Base where Base
!    --  ranges over the supported values for the base of the literal, except
!    --  when the numerator is 1, in which case up to 2**(Int'Size - 1) is
!    --  permitted for the denominator. Given that the largest supported base
!    --  is 16, this gives a limit of 2**(Int'Size - 5) in the general case.
  
     pragma Assert (Int'Size <= Uns'Size);
     --  We need an unsigned type large enough to represent the mantissa
  
!    package Impl is new Value_R (Uns, 1, 2**(Int'Size - 1));
!    --  We use the Extra digits for ordinary fixed-point types
  
     function Integer_To_Fixed
       (Str    : String;
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
!       Extra2 : Unsigned;
        Minus  : Boolean;
        Num    : Int;
        Den    : Int) return Int;
*************** package body System.Value_F is
*** 79,101 ****
  
     --  Of course N1 = N2 + 1 holds, which means both that Val may not contain
     --  enough significant bits to represent all the values of the type and that
!    --  1 extra decimal digit contains the information for the missing bits.
  
     --  Therefore the actual computation to be performed is
  
!    --    V = (Val * Base + Extra) * (Base ** (ScaleB - 1)) / (Num / Den)
  
!    --  using two steps of scaled divide if Extra is positive and ScaleB too
  
!    --    (1)  Val * (Den * (Base ** ScaleB)) = Q1 * Num + R1
  
!    --    (2)  Extra * (Den * (Base ** ScaleB)) = Q2 * -Base + R2
  
!    --  which yields after dividing (1) by Num and (2) by Num * Base and summing
  
!    --    V = Q1 + (R1 - Q2) / Num + R2 / (Num * Base)
  
!    --  but we get rid of the third term by using a rounding divide for (2).
  
     --  This works only if Den * (Base ** ScaleB) does not overflow for inputs
     --  corresponding to 'Image. Let S = Num / Den, B = Base and N the scale in
--- 80,104 ----
  
     --  Of course N1 = N2 + 1 holds, which means both that Val may not contain
     --  enough significant bits to represent all the values of the type and that
!    --  1 extra decimal digit contains the information for the missing bits. But
!    --  in practice we need 2 extra decimal digits to avoid multiple roundings.
  
     --  Therefore the actual computation to be performed is
  
!    --    V = (Val * Base ** 2 + Extra2) * (Base ** (ScaleB - 2)) / (Num / Den)
  
!    --  using two steps of scaled divide if Extra2 is positive and ScaleB too
  
!    --    (1a)  Val * (Den * (Base ** ScaleB)) = Q1 * Num + R1
  
!    --    (2a)  Extra2 * (Den * (Base ** ScaleB)) = Q2 * Base ** 2 + R2
  
!    --  which yields after dividing (1a) by Num and (2a) by Num * (Base ** 2)
!    --  and summing
  
!    --    V = Q1 + (Q2 + R1) / Num + R2 / (Num * (Base ** 2))
  
!    --  but we get rid of the third term by using a rounding divide for (2a).
  
     --  This works only if Den * (Base ** ScaleB) does not overflow for inputs
     --  corresponding to 'Image. Let S = Num / Den, B = Base and N the scale in
*************** package body System.Value_F is
*** 113,129 ****
  
     --  which means that the product does not overflow if Num <= 2**(M-1) / B.
  
!    --  On the other hand, if Extra is positive and ScaleB negative, the above
     --  two steps are
  
     --   (1b)  Val * Den = Q1 * (Num * (Base ** -ScaleB)) + R1
  
!    --   (2b)  Extra * Den = Q2 * -Base + R2
  
     --  which yields after dividing (1b) by Num * (Base ** -ScaleB) and (2b) by
!    --  Num * (Base ** (1 - ScaleB)) and summing
  
!    --    V = Q1 + (R1 - Q2) / (Num * (Base ** -ScaleB)) + R2 / ...
  
     --  but we get rid of the third term by using a rounding divide for (2b).
  
--- 116,132 ----
  
     --  which means that the product does not overflow if Num <= 2**(M-1) / B.
  
!    --  On the other hand, if Extra2 is positive and ScaleB negative, the above
     --  two steps are
  
     --   (1b)  Val * Den = Q1 * (Num * (Base ** -ScaleB)) + R1
  
!    --   (2b)  Extra2 * Den = Q2 * Base ** 2 + R2
  
     --  which yields after dividing (1b) by Num * (Base ** -ScaleB) and (2b) by
!    --  Num * (Base ** (2 - ScaleB)) and summing
  
!    --    V = Q1 + (Q2 + R1) / (Num * (Base ** -ScaleB)) + R2 / (Num * (...))
  
     --  but we get rid of the third term by using a rounding divide for (2b).
  
*************** package body System.Value_F is
*** 133,138 ****
--- 136,144 ----
     --    Num * (Base ** -ScaleB) <= Num * (B ** N) < Den * B
  
     --  which means that the product does not overflow if Den <= 2**(M-1) / B.
+    --  Moreover, if 2**(M-1) / B < Den <= 2**(M-1), we can add 1 to ScaleB and
+    --  divide Val by B while preserving the rightmost B-digit of Val in Extra2
+    --  without changing the computation when Num = 1.
  
     ----------------------
     -- Integer_To_Fixed --
*************** package body System.Value_F is
*** 143,161 ****
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
!       Extra  : Unsigned;
        Minus  : Boolean;
        Num    : Int;
        Den    : Int) return Int
     is
        pragma Assert (Base in 2 .. 16);
  
!       pragma Assert (Extra < Base);
!       --  Accept only one extra digit after those used for Val
  
        pragma Assert (Num < 0 and then Den < 0);
        --  Accept only negative numbers to allow -2**(Int'Size - 1)
  
        function Safe_Expont
          (Base   : Int;
           Exp    : in out Natural;
--- 149,170 ----
        Val    : Uns;
        Base   : Unsigned;
        ScaleB : Integer;
!       Extra2 : Unsigned;
        Minus  : Boolean;
        Num    : Int;
        Den    : Int) return Int
     is
        pragma Assert (Base in 2 .. 16);
  
!       pragma Assert (Extra2 < Base ** 2);
!       --  Accept only two extra digits after those used for Val
  
        pragma Assert (Num < 0 and then Den < 0);
        --  Accept only negative numbers to allow -2**(Int'Size - 1)
  
+       pragma Unsuppress (Overflow_Check);
+       --  Use overflow check to catch bad values
+ 
        function Safe_Expont
          (Base   : Int;
           Exp    : in out Natural;
*************** package body System.Value_F is
*** 166,172 ****
        --  updated to contain the remaining power in the computation. Note that
        --  Factor is expected to be negative in this context.
  
!       function Unsigned_To_Signed (Val : Uns) return Int;
        --  Convert an integer value from unsigned to signed representation
  
        -----------------
--- 175,181 ----
        --  updated to contain the remaining power in the computation. Note that
        --  Factor is expected to be negative in this context.
  
!       function To_Signed (Val : Uns) return Int;
        --  Convert an integer value from unsigned to signed representation
  
        -----------------
*************** package body System.Value_F is
*** 193,203 ****
           return Result;
        end Safe_Expont;
  
!       ------------------------
!       -- Unsigned_To_Signed --
!       ------------------------
  
!       function Unsigned_To_Signed (Val : Uns) return Int is
        begin
           --  Deal with overflow cases, and also with largest negative number
  
--- 202,212 ----
           return Result;
        end Safe_Expont;
  
!       ---------------
!       -- To_Signed --
!       ---------------
  
!       function To_Signed (Val : Uns) return Int is
        begin
           --  Deal with overflow cases, and also with largest negative number
  
*************** package body System.Value_F is
*** 218,277 ****
           else
              return Int (Val);
           end if;
!       end Unsigned_To_Signed;
  
        --  Local variables
  
        B : constant Int := Int (Base);
  
!       V : Uns := Val;
!       E : Uns := Uns (Extra);
  
        Y, Z, Q1, R1, Q2, R2 : Int;
  
     begin
        --  We will use a scaled divide operation for which we must control the
        --  magnitude of operands so that an overflow exception is not unduly
        --  raised during the computation. The only real concern is the exponent.
  
!       --  If ScaleB is too negative, then drop trailing digits, but preserve
!       --  the last dropped digit.
  
!       if ScaleB < 0 then
           declare
!             LS : Integer := -ScaleB;
  
           begin
              Y := Den;
              Z := Safe_Expont (B, LS, Num);
  
              for J in 1 .. LS loop
!                E := V rem Uns (B);
!                V := V / Uns (B);
              end loop;
           end;
  
!       --  If ScaleB is too positive, then scale V up, which may then overflow
  
!       elsif ScaleB > 0 then
           declare
!             LS : Integer := ScaleB;
  
           begin
              Y := Safe_Expont (B, LS, Den);
              Z := Num;
  
              for J in 1 .. LS loop
!                if V <= (Uns'Last - E) / Uns (B) then
!                   V := V * Uns (B) + E;
!                   E := 0;
                 else
                    Bad_Value (Str);
                 end if;
              end loop;
           end;
  
!       --  If ScaleB is zero, then proceed directly
  
        else
           Y := Den;
--- 227,300 ----
           else
              return Int (Val);
           end if;
!       end To_Signed;
  
        --  Local variables
  
        B : constant Int := Int (Base);
  
!       V : Uns      := Val;
!       S : Integer  := ScaleB;
!       E : Unsigned := Extra2;
  
        Y, Z, Q1, R1, Q2, R2 : Int;
  
     begin
+       --  The implementation of Value_R uses fully symmetric arithmetics
+       --  but here we cannot handle 2**(Int'Size - 1) if Minus is not set.
+ 
+       if V = 2**(Int'Size - 1) and then not Minus then
+          E := Unsigned (V rem Uns (Base)) * Base + E / Base;
+          V := V / Uns (Base);
+          S := S + 1;
+       end if;
+ 
        --  We will use a scaled divide operation for which we must control the
        --  magnitude of operands so that an overflow exception is not unduly
        --  raised during the computation. The only real concern is the exponent.
  
!       --  If S is too negative, then drop trailing digits, but preserve the
!       --  last two dropped digits, until V saturates to 0.
  
!       if S < 0 then
           declare
!             LS : Integer := -S;
  
           begin
              Y := Den;
              Z := Safe_Expont (B, LS, Num);
  
              for J in 1 .. LS loop
!                if V = 0 then
!                   E := 0;
!                   exit;
!                end if;
!                E := Unsigned (V rem Uns (Base)) * Base + E / Base;
!                V := V / Uns (Base);
              end loop;
           end;
  
!       --  If S is too positive, then scale V up, which may then overflow
  
!       elsif S > 0 then
           declare
!             LS : Integer := S;
  
           begin
              Y := Safe_Expont (B, LS, Den);
              Z := Num;
  
              for J in 1 .. LS loop
!                if V <= (Uns'Last - Uns (E / Base)) / Uns (Base) then
!                   V := V * Uns (Base) + Uns (E / Base);
!                   E := (E rem Base) * Base;
                 else
                    Bad_Value (Str);
                 end if;
              end loop;
           end;
  
!       --  If S is zero, then proceed directly
  
        else
           Y := Den;
*************** package body System.Value_F is
*** 284,291 ****
        --  sign of the first operand and the sign of the remainder the opposite.
  
        if E > 0 then
!          Scaled_Divide (Unsigned_To_Signed (V), Y, Z, Q1, R1, Round => False);
!          Scaled_Divide (Unsigned_To_Signed (E), Y, -B, Q2, R2, Round => True);
  
           --  Avoid an overflow during the subtraction. Note that Q2 is smaller
           --  than Y and R1 smaller than Z in magnitude, so it is safe to take
--- 307,314 ----
        --  sign of the first operand and the sign of the remainder the opposite.
  
        if E > 0 then
!          Scaled_Divide (To_Signed (V), Y, Z, Q1, R1, Round => False);
!          Scaled_Divide (To_Signed (Uns (E)), Y, -B**2, Q2, R2, Round => True);
  
           --  Avoid an overflow during the subtraction. Note that Q2 is smaller
           --  than Y and R1 smaller than Z in magnitude, so it is safe to take
*************** package body System.Value_F is
*** 312,318 ****
           return Q1 + Q2;
  
        else
!          Scaled_Divide (Unsigned_To_Signed (V), Y, Z, Q1, R1, Round => True);
  
           return Q1;
        end if;
--- 335,341 ----
           return Q1 + Q2;
  
        else
!          Scaled_Divide (To_Signed (V), Y, Z, Q1, R1, Round => True);
  
           return Q1;
        end if;
*************** package body System.Value_F is
*** 332,348 ****
        Num : Int;
        Den : Int) return Int
     is
!       Base  : Unsigned;
!       Scl   : Impl.Scale_Array;
!       Extra : Unsigned;
!       Minus : Boolean;
!       Val   : Impl.Value_Array;
  
     begin
!       Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Base, Scl, Extra, Minus);
  
        return
!         Integer_To_Fixed (Str, Val (1), Base, Scl (1), Extra, Minus, Num, Den);
     end Scan_Fixed;
  
     -----------------
--- 355,371 ----
        Num : Int;
        Den : Int) return Int
     is
!       Bas    : Unsigned;
!       Scl    : Impl.Scale_Array;
!       Extra2 : Unsigned;
!       Minus  : Boolean;
!       Val    : Impl.Value_Array;
  
     begin
!       Val := Impl.Scan_Raw_Real (Str, Ptr, Max, Bas, Scl, Extra2, Minus);
  
        return
!         Integer_To_Fixed (Str, Val (1), Bas, Scl (1), Extra2, Minus, Num, Den);
     end Scan_Fixed;
  
     -----------------
*************** package body System.Value_F is
*** 354,370 ****
        Num : Int;
        Den : Int) return Int
     is
!       Base  : Unsigned;
!       Scl   : Impl.Scale_Array;
!       Extra : Unsigned;
!       Minus : Boolean;
!       Val   : Impl.Value_Array;
  
     begin
!       Val := Impl.Value_Raw_Real (Str, Base, Scl, Extra, Minus);
  
        return
!         Integer_To_Fixed (Str, Val (1), Base, Scl (1), Extra, Minus, Num, Den);
     end Value_Fixed;
  
  end System.Value_F;
--- 377,393 ----
        Num : Int;
        Den : Int) return Int
     is
!       Bas    : Unsigned;
!       Scl    : Impl.Scale_Array;
!       Extra2 : Unsigned;
!       Minus  : Boolean;
!       Val    : Impl.Value_Array;
  
     begin
!       Val := Impl.Value_Raw_Real (Str, Bas, Scl, Extra2, Minus);
  
        return
!         Integer_To_Fixed (Str, Val (1), Bas, Scl (1), Extra2, Minus, Num, Den);
     end Value_Fixed;
  
  end System.Value_F;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuef.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuef.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuef.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuef.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuei.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuei.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuei.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuei.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Val_Util; use System.Val_Uti
*** 33,48 ****
  
  package body System.Value_I is
  
-    --  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 (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     ------------------
     -- Scan_Integer --
     ------------------
--- 33,38 ----
*************** package body System.Value_I is
*** 53,77 ****
        Max : Integer;
        Res : out Int)
     is
-       procedure Prove_Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       with Ghost,
-         Pre => Spec.Uns_Is_Valid_Int (Minus, Uval)
-           and then
-             (if Minus and then Uval = Uns (Int'Last) + 1 then Val = Int'First
-              elsif Minus then Val = -(Int (Uval))
-              else Val = Int (Uval)),
-         Post => Spec.Is_Int_Of_Uns (Minus, Uval, Val);
-       --  Unfold the definition of Is_Int_Of_Uns
- 
-       procedure Prove_Is_Int_Of_Uns
-         (Minus : Boolean;
-          Uval  : Uns;
-          Val   : Int)
-       is null;
- 
        Uval : Uns;
        --  Unsigned result
  
--- 43,48 ----
*************** package body System.Value_I is
*** 81,95 ****
        Unused_Start : Positive;
        --  Saves location of first non-blank (not used in this case)
  
-       Non_Blank : constant Positive :=
-         First_Non_Space_Ghost (Str, Ptr.all, Max)
-       with Ghost;
- 
-       Fst_Num   : constant Positive :=
-         (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
-          else Non_Blank)
-       with Ghost;
- 
     begin
        Scan_Sign (Str, Ptr, Max, Minus, Unused_Start);
  
--- 52,57 ----
*************** package body System.Value_I is
*** 99,106 ****
        end if;
  
        Scan_Raw_Unsigned (Str, Ptr, Max, Uval);
-       pragma Assert
-         (Uval = U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max));
  
        --  Deal with overflow cases, and also with largest negative number
  
--- 61,66 ----
*************** package body System.Value_I is
*** 121,131 ****
        else
           Res := Int (Uval);
        end if;
- 
-       Prove_Is_Int_Of_Uns
-         (Minus => Str (Non_Blank) = '-',
-          Uval  => Uval,
-          Val   => Res);
     end Scan_Integer;
  
     -------------------
--- 81,86 ----
*************** package body System.Value_I is
*** 141,155 ****
        if Str'Last = Positive'Last then
           declare
              subtype NT is String (1 .. Str'Length);
-             procedure Prove_Is_Integer_Ghost with
-               Ghost,
-               Pre  => Str'Length < Natural'Last
-               and then not Only_Space_Ghost (Str, Str'First, Str'Last)
-               and then Spec.Is_Integer_Ghost (Spec.Slide_To_1 (Str)),
-               Post => Spec.Is_Integer_Ghost (NT (Str));
-             procedure Prove_Is_Integer_Ghost is null;
           begin
-             Prove_Is_Integer_Ghost;
              return Value_Integer (NT (Str));
           end;
  
--- 96,102 ----
*************** package body System.Value_I is
*** 159,189 ****
           declare
              V : Int;
              P : aliased Integer := Str'First;
- 
-             Non_Blank : constant Positive := First_Non_Space_Ghost
-               (Str, Str'First, Str'Last)
-             with Ghost;
- 
-             Fst_Num   : constant Positive :=
-               (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
-                else Non_Blank)
-             with Ghost;
           begin
- 
              declare
                 P_Acc : constant not null access Integer := P'Access;
              begin
                 Scan_Integer (Str, P_Acc, Str'Last, V);
              end;
  
-             pragma Assert
-               (P = U_Spec.Raw_Unsigned_Last_Ghost
-                  (Str, Fst_Num, Str'Last));
- 
              Scan_Trailing_Blanks (Str, P);
- 
-             pragma Assert
-               (Spec.Is_Value_Integer_Ghost (Spec.Slide_If_Necessary (Str), V));
              return V;
           end;
        end if;
--- 106,119 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuei.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuei.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuei.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuei.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  --  This package contains routines for scanning signed integer values for use
  --  in Text_IO.Integer_IO, and the Value attribute.
  
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- with System.Val_Spec; use System.Val_Spec;
- with System.Value_I_Spec;
- with System.Value_U_Spec;
- 
  generic
  
     type Int is range <>;
--- 32,37 ----
*************** generic
*** 54,66 ****
             Max : Integer;
             Res : out Uns);
  
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package U_Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
-    with package Spec is new System.Value_I_Spec
-      (Int => Int, Uns => Uns, U_Spec => U_Spec)
-    with Ghost;
- 
  package System.Value_I is
     pragma Preelaborate;
  
--- 44,49 ----
*************** package System.Value_I is
*** 68,110 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Int)
!    with
!      Pre  => Str'Last /= Positive'Last
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        and then (Ptr.all > Max
!                  or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             Non_Blank : constant Positive := First_Non_Space_Ghost
!               (Str, Ptr.all, Max);
!             Fst_Num   : constant Positive :=
!               (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
!                else Non_Blank);
!           begin
!             U_Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))
!               and then U_Spec.Raw_Unsigned_No_Overflow_Ghost
!                 (Str, Fst_Num, Max)
!               and then Spec.Uns_Is_Valid_Int
!                 (Minus => Str (Non_Blank) = '-',
!                  Uval  => U_Spec.Scan_Raw_Unsigned_Ghost
!                    (Str, Fst_Num, Max))),
!     Post =>
!       (declare
!          Non_Blank : constant Positive := First_Non_Space_Ghost
!            (Str, Ptr.all'Old, Max);
!          Fst_Num   : constant Positive :=
!            (if Str (Non_Blank) in '+' | '-' then Non_Blank + 1
!             else Non_Blank);
!          Uval      : constant Uns :=
!             U_Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max);
!        begin
!            Spec.Is_Int_Of_Uns (Minus => Str (Non_Blank) = '-',
!                                Uval  => Uval,
!                                Val   => Res)
!            and then Ptr.all = U_Spec.Raw_Unsigned_Last_Ghost
!              (Str, Fst_Num, Max));
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max). There are three cases for the
--- 51,57 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Int);
     --  This procedure scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max). There are three cases for the
*************** package System.Value_I is
*** 130,143 ****
     --  special case of an all-blank string, and Ptr is unchanged, and hence
     --  is greater than Max as required in this case.
  
!    function Value_Integer (Str : String) return Int
!    with
!      Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
!        and then Str'Length /= Positive'Last
!        and then Spec.Is_Integer_Ghost (Spec.Slide_If_Necessary (Str)),
!      Post => Spec.Is_Value_Integer_Ghost
!        (Spec.Slide_If_Necessary (Str), Value_Integer'Result),
!      Subprogram_Variant => (Decreases => Str'First);
     --  Used in computing X'Value (Str) where X is a signed integer type whose
     --  base range does not exceed the base range of Integer. Str is the string
     --  argument of the attribute. Constraint_Error is raised if the string is
--- 77,83 ----
     --  special case of an all-blank string, and Ptr is unchanged, and hence
     --  is greater than Max as required in this case.
  
!    function Value_Integer (Str : String) return Int;
     --  Used in computing X'Value (Str) where X is a signed integer type whose
     --  base range does not exceed the base range of Integer. Str is the string
     --  argument of the attribute. Constraint_Error is raised if the string is
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuen.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuen.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuen.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuen.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuen.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuen.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuen.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuen.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2021-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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 is used to compute the Value attribute for enumeration types
! --  other than those in packages Standard and System. See unit Exp_Imgv for
! --  details of the format of constructed image tables.
  
  generic
  
--- 30,37 ----
  ------------------------------------------------------------------------------
  
  --  This package is used to compute the Value attribute for enumeration types
! --  other than those in package Standard. See unit Exp_Imgv for details of the
! --  format of constructed image tables.
  
  generic
  
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuer.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuer.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuer.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuer.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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
*** 42,55 ****
     function As_Digit (C : Character) return Char_As_Digit;
     --  Given a character return the digit it represents
  
-    procedure Round_Extra
-      (Digit : Char_As_Digit;
-       Base  : Unsigned;
-       Value : in out Uns;
-       Scale : in out Integer;
-       Extra : in out Char_As_Digit);
-    --  Round the triplet (Value, Scale, Extra) according to Digit in Base
- 
     procedure Scan_Decimal_Digits
        (Str            : String;
         Index          : in out Integer;
--- 42,47 ----
*************** package body System.Value_R is
*** 59,65 ****
         Value          : in out Value_Array;
         Scale          : in out Scale_Array;
         N              : in out Positive;
!        Extra          : in out Char_As_Digit;
         Base_Violation : in out Boolean);
     --  Scan the decimal part of a real (i.e. after decimal separator)
     --
--- 51,57 ----
         Value          : in out Value_Array;
         Scale          : in out Scale_Array;
         N              : in out Positive;
!        Extra2         : in out Unsigned;
         Base_Violation : in out Boolean);
     --  Scan the decimal part of a real (i.e. after decimal separator)
     --
*************** package body System.Value_R is
*** 68,74 ****
     --
     --  For each digit parsed, Value = Value * Base + Digit and Scale is
     --  decremented by 1. If precision limit is reached, remaining digits are
!    --  still parsed but ignored, except for the first which is stored in Extra.
     --
     --  Base_Violation is set to True if a digit found is not part of the Base
     --
--- 60,67 ----
     --
     --  For each digit parsed, Value = Value * Base + Digit and Scale is
     --  decremented by 1. If precision limit is reached, remaining digits are
!    --  still parsed but ignored, except for the first two of them which are
!    --  stored in Extra2.
     --
     --  Base_Violation is set to True if a digit found is not part of the Base
     --
*************** package body System.Value_R is
*** 83,89 ****
         Value          : out Value_Array;
         Scale          : out Scale_Array;
         N              : out Positive;
!        Extra          : out Char_As_Digit;
         Base_Violation : in out Boolean);
     --  Scan the integral part of a real (i.e. before decimal separator)
     --
--- 76,83 ----
         Value          : out Value_Array;
         Scale          : out Scale_Array;
         N              : out Positive;
!        Extra2         : out Unsigned;
!        Extra2_Filled  : out Boolean;
         Base_Violation : in out Boolean);
     --  Scan the integral part of a real (i.e. before decimal separator)
     --
*************** package body System.Value_R is
*** 93,99 ****
     --  For each digit parsed, either Value := Value * Base + Digit or Scale
     --  is incremented by 1 if precision limit is reached, in which case the
     --  remaining digits are still parsed but ignored, except for the first
!    --  which is stored in Extra.
     --
     --  Base_Violation is set to True if a digit found is not part of the Base
     --
--- 87,93 ----
     --  For each digit parsed, either Value := Value * Base + Digit or Scale
     --  is incremented by 1 if precision limit is reached, in which case the
     --  remaining digits are still parsed but ignored, except for the first
!    --  two of them which are stored in Extra2 if Extra2_Filled is True.
     --
     --  Base_Violation is set to True if a digit found is not part of the Base
     --
*************** package body System.Value_R is
*** 119,165 ****
        end case;
     end As_Digit;
  
-    -----------------
-    -- Round_Extra --
-    -----------------
- 
-    procedure Round_Extra
-      (Digit : Char_As_Digit;
-       Base  : Unsigned;
-       Value : in out Uns;
-       Scale : in out Integer;
-       Extra : in out Char_As_Digit)
-    is
-       pragma Assert (Base in 2 .. 16);
- 
-       B : constant Uns := Uns (Base);
- 
-    begin
-       if Digit >= Base / 2 then
- 
-          --  If Extra is maximum, round Value
- 
-          if Extra = Base - 1 then
- 
-             --  If Value is maximum, scale it up
- 
-             if Value = Precision_Limit then
-                Extra := Char_As_Digit (Value mod B);
-                Value := Value / B;
-                Scale := Scale + 1;
-                Round_Extra (Digit, Base, Value, Scale, Extra);
- 
-             else
-                Extra := 0;
-                Value := Value + 1;
-             end if;
- 
-          else
-             Extra := Extra + 1;
-          end if;
-       end if;
-    end Round_Extra;
- 
     -------------------------
     -- Scan_Decimal_Digits --
     -------------------------
--- 113,118 ----
*************** package body System.Value_R is
*** 173,179 ****
         Value          : in out Value_Array;
         Scale          : in out Scale_Array;
         N              : in out Positive;
!        Extra          : in out Char_As_Digit;
         Base_Violation : in out Boolean)
  
     is
--- 126,132 ----
         Value          : in out Value_Array;
         Scale          : in out Scale_Array;
         N              : in out Positive;
!        Extra2         : in out Unsigned;
         Base_Violation : in out Boolean)
  
     is
*************** package body System.Value_R is
*** 192,199 ****
        --  to Precision_Limit.
  
        Precision_Limit_Just_Reached : Boolean;
!       --  Set to True if Precision_Limit_Reached was just set to True, but only
!       --  used when Round is True.
  
        Digit : Char_As_Digit;
        --  The current digit
--- 145,151 ----
        --  to Precision_Limit.
  
        Precision_Limit_Just_Reached : Boolean;
!       --  Set to True if Precision_Limit_Reached was just set to True
  
        Digit : Char_As_Digit;
        --  The current digit
*************** package body System.Value_R is
*** 205,221 ****
        --  Number of trailing zeros at a given point
  
     begin
!       --  If initial Scale is not 0 then it means that Precision_Limit was
        --  reached during scanning of the integral part.
  
        if Scale (Data_Index'Last) > 0 then
           Precision_Limit_Reached := True;
        else
!          Extra := 0;
           Precision_Limit_Reached := False;
-       end if;
- 
-       if Round then
           Precision_Limit_Just_Reached := False;
        end if;
  
--- 157,172 ----
        --  Number of trailing zeros at a given point
  
     begin
!       --  If initial Scale is not 0, then this means that Precision_Limit was
        --  reached during scanning of the integral part.
  
        if Scale (Data_Index'Last) > 0 then
           Precision_Limit_Reached := True;
+          Precision_Limit_Just_Reached := True;
+ 
        else
!          Extra2 := 0;
           Precision_Limit_Reached := False;
           Precision_Limit_Just_Reached := False;
        end if;
  
*************** package body System.Value_R is
*** 229,256 ****
        Digit := As_Digit (Str (Index));
  
        loop
!          --  Check if base is correct. If the base is not specified, the digit
!          --  E or e cannot be considered as a base violation as it can be used
!          --  for exponentiation.
  
           if Digit >= Base then
!             if Base_Specified then
!                Base_Violation := True;
!             elsif Digit = E_Digit then
!                return;
!             else
!                Base_Violation := True;
!             end if;
           end if;
  
           --  If precision limit has been reached, just ignore any remaining
           --  digits for the computation of Value and Scale, but store the
!          --  first in Extra and use the second to round Extra. The scanning
!          --  should continue only to assess the validity of the string.
  
           if Precision_Limit_Reached then
!             if Round and then Precision_Limit_Just_Reached then
!                Round_Extra (Digit, Base, Value (N), Scale (N), Extra);
                 Precision_Limit_Just_Reached := False;
              end if;
  
--- 180,206 ----
        Digit := As_Digit (Str (Index));
  
        loop
!          --  If the base is not explicitly specified, 'e' or 'E' marks the
!          --  beginning of the exponent part.
! 
!          if not Base_Specified and then Digit = E_Digit then
!             return;
!          end if;
! 
!          --  Check that Digit is a valid digit with respect to Base
  
           if Digit >= Base then
!             Base_Violation := True;
           end if;
  
           --  If precision limit has been reached, just ignore any remaining
           --  digits for the computation of Value and Scale, but store the
!          --  first two digits in Extra2. The scanning should continue only
!          --  to assess the validity of the string.
  
           if Precision_Limit_Reached then
!             if Precision_Limit_Just_Reached then
!                Extra2 := Extra2 + Digit;
                 Precision_Limit_Just_Reached := False;
              end if;
  
*************** package body System.Value_R is
*** 273,283 ****
                       Scale (N) := Scale (N - 1) - 1;
  
                    else
!                      Extra := 0;
                       Precision_Limit_Reached := True;
-                      if Round and then J = Trailing_Zeros then
-                         Round_Extra (Digit, Base, Value (N), Scale (N), Extra);
-                      end if;
  
                       exit;
                    end if;
--- 223,230 ----
                       Scale (N) := Scale (N - 1) - 1;
  
                    else
!                      Extra2 := (if J = Trailing_Zeros then Digit else 0);
                       Precision_Limit_Reached := True;
  
                       exit;
                    end if;
*************** package body System.Value_R is
*** 316,326 ****
                    Scale (N) := Scale (N - 1) - 1;
  
                 else
!                   Extra := Digit;
                    Precision_Limit_Reached := True;
!                   if Round then
!                      Precision_Limit_Just_Reached := True;
!                   end if;
                 end if;
              end if;
           end if;
--- 263,271 ----
                    Scale (N) := Scale (N - 1) - 1;
  
                 else
!                   Extra2 := Digit * Base;
                    Precision_Limit_Reached := True;
!                   Precision_Limit_Just_Reached := True;
                 end if;
              end if;
           end if;
*************** package body System.Value_R is
*** 339,348 ****
  
              --  Underscore is only allowed if followed by a digit
  
!             if Digit = Underscore and Index + 1 <= Max then
  
                 Digit := As_Digit (Str (Index + 1));
!                if Digit in Valid_Digit then
                    Index := Index + 1;
                 else
                    return;
--- 284,295 ----
  
              --  Underscore is only allowed if followed by a digit
  
!             if Digit = Underscore and then Index + 1 <= Max then
  
                 Digit := As_Digit (Str (Index + 1));
!                if Digit in Valid_Digit and then
!                   (Digit /= E_Digit or else Base > E_Digit)
!                then
                    Index := Index + 1;
                 else
                    return;
*************** package body System.Value_R is
*** 370,376 ****
         Value          : out Value_Array;
         Scale          : out Scale_Array;
         N              : out Positive;
!        Extra          : out Char_As_Digit;
         Base_Violation : in out Boolean)
     is
        pragma Assert (Base in 2 .. 16);
--- 317,324 ----
         Value          : out Value_Array;
         Scale          : out Scale_Array;
         N              : out Positive;
!        Extra2         : out Unsigned;
!        Extra2_Filled  : out Boolean;
         Base_Violation : in out Boolean)
     is
        pragma Assert (Base in 2 .. 16);
*************** package body System.Value_R is
*** 386,393 ****
        --  to Precision_Limit.
  
        Precision_Limit_Just_Reached : Boolean;
!       --  Set to True if Precision_Limit_Reached was just set to True, but only
!       --  used when Round is True.
  
        Digit : Char_As_Digit;
        --  The current digit
--- 334,340 ----
        --  to Precision_Limit.
  
        Precision_Limit_Just_Reached : Boolean;
!       --  Set to True if Precision_Limit_Reached was just set to True
  
        Digit : Char_As_Digit;
        --  The current digit
*************** package body System.Value_R is
*** 396,413 ****
        --  Temporary
  
     begin
!       --  Initialize N, Value, Scale and Extra
  
        N := 1;
        Value := (others => 0);
        Scale := (others => 0);
!       Extra := 0;
  
        Precision_Limit_Reached := False;
! 
!       if Round then
!          Precision_Limit_Just_Reached := False;
!       end if;
  
        pragma Assert (Max <= Str'Last);
  
--- 343,358 ----
        --  Temporary
  
     begin
!       --  Initialize N, Value, Scale, Extra2 and Extra2_Filled
  
        N := 1;
        Value := (others => 0);
        Scale := (others => 0);
!       Extra2 := 0;
!       Extra2_Filled := False;
  
        Precision_Limit_Reached := False;
!       Precision_Limit_Just_Reached := False;
  
        pragma Assert (Max <= Str'Last);
  
*************** package body System.Value_R is
*** 417,446 ****
        Digit := As_Digit (Str (Index));
  
        loop
!          --  Check if base is correct. If the base is not specified, the digit
!          --  E or e cannot be considered as a base violation as it can be used
!          --  for exponentiation.
  
           if Digit >= Base then
!             if Base_Specified then
!                Base_Violation := True;
!             elsif Digit = E_Digit then
!                return;
!             else
!                Base_Violation := True;
!             end if;
           end if;
  
           --  If precision limit has been reached, just ignore any remaining
           --  digits for the computation of Value and Scale, but store the
!          --  first in Extra and use the second to round Extra. The scanning
!          --  should continue only to assess the validity of the string.
  
           if Precision_Limit_Reached then
              Scale (N) := Scale (N) + 1;
  
!             if Round and then Precision_Limit_Just_Reached then
!                Round_Extra (Digit, Base, Value (N), Scale (N), Extra);
                 Precision_Limit_Just_Reached := False;
              end if;
  
--- 362,391 ----
        Digit := As_Digit (Str (Index));
  
        loop
!          --  If the base is not explicitly specified, 'e' or 'E' marks the
!          --  beginning of the exponent part.
! 
!          if not Base_Specified and then Digit = E_Digit then
!             return;
!          end if;
! 
!          --  Check that Digit is a valid digit with respect to Base
  
           if Digit >= Base then
!             Base_Violation := True;
           end if;
  
           --  If precision limit has been reached, just ignore any remaining
           --  digits for the computation of Value and Scale, but store the
!          --  first two digits in Extra2. The scanning should continue only
!          --  to assess the validity of the string.
  
           if Precision_Limit_Reached then
              Scale (N) := Scale (N) + 1;
  
!             if Precision_Limit_Just_Reached then
!                Extra2 := Extra2 + Digit;
!                Extra2_Filled := True;
                 Precision_Limit_Just_Reached := False;
              end if;
  
*************** package body System.Value_R is
*** 465,475 ****
                 Value (N) := Uns (Digit);
  
              else
!                Extra := Digit;
                 Precision_Limit_Reached := True;
!                if Round then
!                   Precision_Limit_Just_Reached := True;
!                end if;
                 Scale (N) := Scale (N) + 1;
              end if;
           end if;
--- 410,418 ----
                 Value (N) := Uns (Digit);
  
              else
!                Extra2 := Digit * Base;
                 Precision_Limit_Reached := True;
!                Precision_Limit_Just_Reached := True;
                 Scale (N) := Scale (N) + 1;
              end if;
           end if;
*************** package body System.Value_R is
*** 494,502 ****
              --  Next character is not a digit. In that case stop scanning
              --  unless the next chracter is an underscore followed by a digit.
  
!             if Digit = Underscore and Index + 1 <= Max then
                 Digit := As_Digit (Str (Index + 1));
!                if Digit in Valid_Digit then
                    Index := Index + 1;
                 else
                    return;
--- 437,447 ----
              --  Next character is not a digit. In that case stop scanning
              --  unless the next chracter is an underscore followed by a digit.
  
!             if Digit = Underscore and then Index + 1 <= Max then
                 Digit := As_Digit (Str (Index + 1));
!                if Digit in Valid_Digit and then
!                   (Digit /= E_Digit or else Base > E_Digit)
!                then
                    Index := Index + 1;
                 else
                    return;
*************** package body System.Value_R is
*** 513,525 ****
     -------------------
  
     function Scan_Raw_Real
!      (Str   : String;
!       Ptr   : not null access Integer;
!       Max   : Integer;
!       Base  : out Unsigned;
!       Scale : out Scale_Array;
!       Extra : out Unsigned;
!       Minus : out Boolean) return Value_Array
     is
        pragma Assert (Max <= Str'Last);
  
--- 458,470 ----
     -------------------
  
     function Scan_Raw_Real
!      (Str    : String;
!       Ptr    : not null access Integer;
!       Max    : Integer;
!       Base   : out Unsigned;
!       Scale  : out Scale_Array;
!       Extra2 : out Unsigned;
!       Minus  : out Boolean) return Value_Array
     is
        pragma Assert (Max <= Str'Last);
  
*************** package body System.Value_R is
*** 534,539 ****
--- 479,487 ----
        --  If True some digits where not in the base. The real is still scanned
        --  till the end even if an error will be raised.
  
+       Extra2_Filled : Boolean;
+       --  True if Extra2 has been filled
+ 
        N : Positive;
        --  Index number of the current part
  
*************** package body System.Value_R is
*** 578,589 ****
        if Str (Index) in '0' .. '9' then
           After_Point := False;
  
!          --  If this is a digit it can indicates either the float decimal
!          --  part or the base to use.
  
           Scan_Integral_Digits
             (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))
  
--- 526,537 ----
        if Str (Index) in '0' .. '9' then
           After_Point := False;
  
!          --  If this is a digit it can indicate either the integral part or the
!          --  base to use.
  
           Scan_Integral_Digits
             (Str, Index, Max, Base, False, Value, Scale, N,
!             Extra2, Extra2_Filled, Base_Violation);
  
        --  A dot is allowed only if followed by a digit (RM 3.5(39.8))
  
*************** package body System.Value_R is
*** 596,608 ****
           N := 1;
           Value := (others => 0);
           Scale := (others => 0);
!          Extra := 0;
  
        else
           Bad_Value (Str);
        end if;
  
!       --  Check if the first number encountered is a base
  
        pragma Assert (Index >= Str'First);
  
--- 544,558 ----
           N := 1;
           Value := (others => 0);
           Scale := (others => 0);
!          Extra2 := 0;
!          Extra2_Filled := False;
  
        else
           Bad_Value (Str);
        end if;
  
!       --  Check if the first number encountered is a base. ':' is allowed in
!       --  place of '#' in virtue of RM J.2 (3).
  
        pragma Assert (Index >= Str'First);
  
*************** package body System.Value_R is
*** 611,617 ****
        then
           Base_Char := Str (Index);
  
!          if N = 1 and then Value (1) in 2 .. 16 then
              Base := Unsigned (Value (1));
           else
              Base_Violation := True;
--- 561,573 ----
        then
           Base_Char := Str (Index);
  
!          --  Functionally, "(Parts = 1 or else N = 1)" in the condition of the
!          --  following if statement could replaced by the simpler "N = 1". The
!          --  reason we use a more complicated expression is to accommodate
!          --  machine-code-based coverage tools: the simple version makes it
!          --  impossible to fully cover generic instances of System.Value_R with
!          --  Parts = 1.
!          if (Parts = 1 or else N = 1) and then Value (1) in 2 .. 16 then
              Base := Unsigned (Value (1));
           else
              Base_Violation := True;
*************** package body System.Value_R is
*** 630,645 ****
           end if;
        end if;
  
!       --  Scan the integral part if still necessary
  
        if Base_Char /= ASCII.NUL and then not After_Point then
!          if Index > Max or else As_Digit (Str (Index)) not in Valid_Digit then
              Bad_Value (Str);
           end if;
  
           Scan_Integral_Digits
             (Str, Index, Max, Base, Base_Char /= ASCII.NUL, Value, Scale,
!             N, Char_As_Digit (Extra), Base_Violation);
        end if;
  
        --  Do we have a dot?
--- 586,601 ----
           end if;
        end if;
  
!       --  Scan the integral part if there was a base and no point right after
  
        if Base_Char /= ASCII.NUL and then not After_Point then
!          if As_Digit (Str (Index)) not in Valid_Digit then
              Bad_Value (Str);
           end if;
  
           Scan_Integral_Digits
             (Str, Index, Max, Base, Base_Char /= ASCII.NUL, Value, Scale,
!             N, Extra2, Extra2_Filled, Base_Violation);
        end if;
  
        --  Do we have a dot?
*************** package body System.Value_R is
*** 664,672 ****
        if After_Point then
           pragma Assert (Index <= Max);
  
!          Scan_Decimal_Digits
!            (Str, Index, Max, Base, Base_Char /= ASCII.NUL, Value, Scale,
!             N, Char_As_Digit (Extra), Base_Violation);
        end if;
  
        --  If an explicit base was specified ensure that the delimiter is found
--- 620,641 ----
        if After_Point then
           pragma Assert (Index <= Max);
  
!          --  If Extra2 has been filled, we are done with it
! 
!          if Extra2_Filled then
!             declare
!                Dummy : Unsigned := 0;
!             begin
!                Scan_Decimal_Digits
!                  (Str, Index, Max, Base, Base_Char /= ASCII.NUL, Value, Scale,
!                   N, Dummy, Base_Violation);
!             end;
! 
!          else
!             Scan_Decimal_Digits
!               (Str, Index, Max, Base, Base_Char /= ASCII.NUL, Value, Scale,
!                N, Extra2, Base_Violation);
!          end if;
        end if;
  
        --  If an explicit base was specified ensure that the delimiter is found
*************** package body System.Value_R is
*** 714,724 ****
     --------------------
  
     function Value_Raw_Real
!      (Str   : String;
!       Base  : out Unsigned;
!       Scale : out Scale_Array;
!       Extra : out Unsigned;
!       Minus : out Boolean) return Value_Array
     is
        P : aliased Integer;
        V : Value_Array;
--- 683,693 ----
     --------------------
  
     function Value_Raw_Real
!      (Str    : String;
!       Base   : out Unsigned;
!       Scale  : out Scale_Array;
!       Extra2 : out Unsigned;
!       Minus  : out Boolean) return Value_Array
     is
        P : aliased Integer;
        V : Value_Array;
*************** package body System.Value_R is
*** 732,745 ****
           declare
              subtype NT is String (1 .. Str'Length);
           begin
!             return Value_Raw_Real (NT (Str), Base, Scale, Extra, Minus);
           end;
        end if;
  
        --  Normal case
  
        P := Str'First;
!       V := Scan_Raw_Real (Str, P'Access, Str'Last, Base, Scale, Extra, Minus);
        Scan_Trailing_Blanks (Str, P);
  
        return V;
--- 701,714 ----
           declare
              subtype NT is String (1 .. Str'Length);
           begin
!             return Value_Raw_Real (NT (Str), Base, Scale, Extra2, Minus);
           end;
        end if;
  
        --  Normal case
  
        P := Str'First;
!       V := Scan_Raw_Real (Str, P'Access, Str'Last, Base, Scale, Extra2, Minus);
        Scan_Trailing_Blanks (Str, P);
  
        return V;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuer.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuer.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuer.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuer.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2020-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** generic
*** 45,53 ****
     Precision_Limit : Uns;
     --  Precision limit for each part of the value
  
-    Round : Boolean;
-    --  If Parts = 1, True if the extra digit must be rounded
- 
  package System.Value_R is
     pragma Preelaborate;
  
--- 45,50 ----
*************** package System.Value_R is
*** 61,73 ****
     --  The value split into parts
  
     function Scan_Raw_Real
!      (Str   : String;
!       Ptr   : not null access Integer;
!       Max   : Integer;
!       Base  : out Unsigned;
!       Scale : out Scale_Array;
!       Extra : out Unsigned;
!       Minus : out Boolean) return Value_Array;
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  real literal according to the syntax described in (RM 3.5(43)). The
     --  substring scanned extends no further than Str (Max). There are three
--- 58,70 ----
     --  The value split into parts
  
     function Scan_Raw_Real
!      (Str    : String;
!       Ptr    : not null access Integer;
!       Max    : Integer;
!       Base   : out Unsigned;
!       Scale  : out Scale_Array;
!       Extra2 : out Unsigned;
!       Minus  : out Boolean) return Value_Array;
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  real literal according to the syntax described in (RM 3.5(43)). The
     --  substring scanned extends no further than Str (Max). There are three
*************** package System.Value_R is
*** 75,91 ****
     --
     --  If a valid real is found after scanning past any initial spaces, then
     --  Ptr.all is updated past the last character of the real (but trailing
!    --  spaces are not scanned out) and the Base, Scale, Extra and Minus out
     --  parameters are set; if Val is the result of the call, then the real
     --  represented by the literal is equal to
     --
!    --    (Val (1) * Base + Extra) * (Base ** (Scale (1) - 1))
     --
     --  when Parts = 1 and
     --
     --    Sum [Val (N) * (Base ** Scale (N)), N in 1 .. Parts]
     --
!    --  when Parts > 1, with the negative sign if Minus is true.
     --
     --  If no valid real is found, then Ptr.all points either to an initial
     --  non-blank character, or to Max + 1 if the field is all spaces and the
--- 72,89 ----
     --
     --  If a valid real is found after scanning past any initial spaces, then
     --  Ptr.all is updated past the last character of the real (but trailing
!    --  spaces are not scanned out) and the Base, Scale, Extra2 and Minus out
     --  parameters are set; if Val is the result of the call, then the real
     --  represented by the literal is equal to
     --
!    --    (Val (1) * Base ** 2 + Extra2) * (Base ** (Scale (1) - 2))
     --
     --  when Parts = 1 and
     --
     --    Sum [Val (N) * (Base ** Scale (N)), N in 1 .. Parts]
     --
!    --  when Parts > 1, with the negative sign if Minus is true. Note that
!    --  Val (1) cannot be zero unless Val is entirely filled with zero.
     --
     --  If no valid real is found, then Ptr.all points either to an initial
     --  non-blank character, or to Max + 1 if the field is all spaces and the
*************** package System.Value_R is
*** 108,118 ****
     --  case is not supported. Most such cases are eliminated by the caller.
  
     function Value_Raw_Real
!      (Str   : String;
!       Base  : out Unsigned;
!       Scale : out Scale_Array;
!       Extra : out Unsigned;
!       Minus : out Boolean) return Value_Array;
     --  Used in computing X'Value (Str) where X is a real type. Str is the
     --  string argument of the attribute. Constraint_Error is raised if the
     --  string is malformed.
--- 106,116 ----
     --  case is not supported. Most such cases are eliminated by the caller.
  
     function Value_Raw_Real
!      (Str    : String;
!       Base   : out Unsigned;
!       Scale  : out Scale_Array;
!       Extra2 : out Unsigned;
!       Minus  : out Boolean) return Value_Array;
     --  Used in computing X'Value (Str) where X is a real type. Str is the
     --  string argument of the attribute. Constraint_Error is raised if the
     --  string is malformed.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valueu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valueu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valueu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valueu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,106 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with System.SPARK.Cut_Operations; use System.SPARK.Cut_Operations;
  with System.Val_Util;             use System.Val_Util;
  
  package body System.Value_U is
  
-    --  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 (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
-    use type Spec.Uns_Option;
-    use type Spec.Split_Value_Ghost;
- 
-    --  Local lemmas
- 
-    procedure Lemma_Digit_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    with Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-        and then P in From .. To
-        and then P <= Spec.Last_Hexa_Ghost (Str (From .. To)) + 1
-        and then Spec.Is_Based_Format_Ghost (Str (From .. To)),
-      Post =>
-        (if Str (P) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-         then P <= Spec.Last_Hexa_Ghost (Str (From .. To)));
- 
-    procedure Lemma_Underscore_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    with Ghost,
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-        and then P in From .. To
-        and then Str (P) = '_'
-        and then P <= Spec.Last_Hexa_Ghost (Str (From .. To)) + 1
-        and then Spec.Is_Based_Format_Ghost (Str (From .. To)),
-      Post => P + 1 <= Spec.Last_Hexa_Ghost (Str (From .. To))
-        and then Str (P + 1) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
- 
-    -----------------------------
-    -- Local lemma null bodies --
-    -----------------------------
- 
-    procedure Lemma_Digit_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    is null;
- 
-    procedure Lemma_Underscore_Not_Last
-      (Str  : String;
-       P    : Integer;
-       From : Integer;
-       To   : Integer)
-    is null;
- 
     -----------------------
     -- Scan_Raw_Unsigned --
     -----------------------
--- 29,38 ----
*************** package body System.Value_U is
*** 132,167 ****
        Digit : Uns;
        --  Digit value
  
-       Ptr_Old       : constant Integer := Ptr.all
-       with Ghost;
-       Last_Num_Init : constant Integer :=
-         Last_Number_Ghost (Str (Ptr.all .. Max))
-       with Ghost;
-       Init_Val      : constant Spec.Uns_Option :=
-         Spec.Scan_Based_Number_Ghost (Str, Ptr.all, Last_Num_Init)
-       with Ghost;
-       Starts_As_Based : constant Boolean :=
-         Spec.Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Max)
-       with Ghost;
-       Last_Num_Based  : constant Integer :=
-         (if Starts_As_Based
-          then Spec.Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Max))
-          else Last_Num_Init)
-       with Ghost;
-       Is_Based        : constant Boolean :=
-         Spec.Raw_Unsigned_Is_Based_Ghost
-           (Str, Last_Num_Init, Last_Num_Based, Max)
-       with Ghost;
-       Based_Val       : constant Spec.Uns_Option :=
-         (if Starts_As_Based and then not Init_Val.Overflow
-          then Spec.Scan_Based_Number_Ghost
-            (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-          else Init_Val)
-       with Ghost;
-       First_Exp       : constant Integer :=
-         (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1)
-       with Ghost;
- 
     begin
        --  We do not tolerate strings with Str'Last = Positive'Last
  
--- 64,69 ----
*************** package body System.Value_U is
*** 171,177 ****
        end if;
  
        P := Ptr.all;
!       Spec.Lemma_Scan_Based_Number_Ghost_Step (Str, P, Last_Num_Init);
        Uval := Character'Pos (Str (P)) - Character'Pos ('0');
        pragma Assert (Str (P) in '0' .. '9');
        P := P + 1;
--- 73,87 ----
        end if;
  
        P := Ptr.all;
! 
!       --  Exit when the initial string to parse is empty
! 
!       if Max < P then
!          raise Program_Error with
!             "Scan end Max=" & Max'Img &
!             " is smaller than scan end Ptr=" & P'Img;
!       end if;
! 
        Uval := Character'Pos (Str (P)) - Character'Pos ('0');
        pragma Assert (Str (P) in '0' .. '9');
        P := P + 1;
*************** package body System.Value_U is
*** 189,202 ****
        begin
           --  Loop through decimal digits
           loop
-             pragma Loop_Invariant (P in P'Loop_Entry .. Last_Num_Init + 1);
-             pragma Loop_Invariant
-               (if Overflow then Init_Val.Overflow);
-             pragma Loop_Invariant
-               (if not Overflow
-                then Init_Val = Spec.Scan_Based_Number_Ghost
-                  (Str, P, Last_Num_Init, Acc => Uval));
- 
              exit when P > Max;
  
              Digit := Character'Pos (Str (P)) - Character'Pos ('0');
--- 99,104 ----
*************** package body System.Value_U is
*** 205,212 ****
  
              if Digit > 9 then
                 if Str (P) = '_' then
-                   Spec.Lemma_Scan_Based_Number_Ghost_Underscore
-                     (Str, P, Last_Num_Init, Acc => Uval);
                    Scan_Underscore (Str, P, Ptr, Max, False);
                 else
                    exit;
--- 107,112 ----
*************** package body System.Value_U is
*** 215,269 ****
              --  Accumulate result, checking for overflow
  
              else
-                pragma Assert
-                  (By
-                     (Str (P) in '0' .. '9',
-                      By
-                        (Character'Pos (Str (P)) >= Character'Pos ('0'),
-                         Uns '(Character'Pos (Str (P))) >=
-                             Character'Pos ('0'))));
-                Spec.Lemma_Scan_Based_Number_Ghost_Step
-                  (Str, P, Last_Num_Init, Acc => Uval);
-                Spec.Lemma_Scan_Based_Number_Ghost_Overflow
-                  (Str, P, Last_Num_Init, Acc => Uval);
- 
                 if Uval <= Umax then
                    Uval := 10 * Uval + Digit;
-                   pragma Assert
-                     (if not Overflow
-                      then Init_Val = Spec.Scan_Based_Number_Ghost
-                             (Str, P + 1, Last_Num_Init, Acc => Uval));
- 
                 elsif Uval > Umax10 then
                    Overflow := True;
- 
                 else
                    Uval := 10 * Uval + Digit;
  
                    if Uval < Umax10 then
                       Overflow := True;
                    end if;
-                   pragma Assert
-                     (if not Overflow
-                      then Init_Val = Spec.Scan_Based_Number_Ghost
-                             (Str, P + 1, Last_Num_Init, Acc => Uval));
- 
                 end if;
  
                 P := P + 1;
              end if;
           end loop;
-          Spec.Lemma_Scan_Based_Number_Ghost_Base
-             (Str, P, Last_Num_Init, Acc => Uval);
        end;
  
-       pragma Assert_And_Cut
-         (By
-            (P = Last_Num_Init + 1,
-             P > Max or else Str (P) not in '_' | '0' .. '9')
-          and then Overflow = Init_Val.Overflow
-          and then (if not Overflow then Init_Val.Value = Uval));
- 
        Ptr.all := P;
  
        --  Deal with based case. We recognize either the standard '#' or the
--- 115,137 ----
*************** package body System.Value_U is
*** 295,304 ****
              --  Numbers bigger than UmaxB overflow if multiplied by base
  
           begin
-             pragma Assert
-               (if Str (P) in '0' .. '9' | 'A' .. 'F' | 'a' .. 'f'
-                then Spec.Is_Based_Format_Ghost (Str (P .. Max)));
- 
              --  Loop to scan out based integer value
  
              loop
--- 163,168 ----
*************** package body System.Value_U is
*** 321,369 ****
                 --  already stored in Ptr.all.
  
                 else
-                   pragma Assert
-                     (By
-                        (Spec.Only_Hexa_Ghost (Str, P, Last_Num_Based),
-                         P > Last_Num_Init + 1
-                         and Spec.Only_Hexa_Ghost
-                           (Str, Last_Num_Init + 2, Last_Num_Based)));
-                   Spec.Lemma_Scan_Based_Number_Ghost_Base
-                     (Str, P, Last_Num_Based, Base, Uval);
                    Uval := Base;
                    Base := 10;
-                   pragma Assert (Ptr.all = Last_Num_Init + 1);
-                   pragma Assert
-                     (if Starts_As_Based
-                      then By
-                        (P = Last_Num_Based + 1,
-                         P <= Last_Num_Based + 1
-                         and Str (P) not in
-                         '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_'));
-                   pragma Assert (not Is_Based);
-                   pragma Assert (if not Overflow then Uval = Init_Val.Value);
                    exit;
                 end if;
  
-                pragma Loop_Invariant (P in P'Loop_Entry .. Last_Num_Based);
-                pragma Loop_Invariant
-                  (Str (P) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-                   and then Digit = Spec.Hexa_To_Unsigned_Ghost (Str (P)));
-                pragma Loop_Invariant
-                  (if Overflow'Loop_Entry then Overflow);
-                pragma Loop_Invariant
-                  (if Overflow then
-                     (Overflow'Loop_Entry or else Based_Val.Overflow));
-                pragma Loop_Invariant
-                  (if not Overflow
-                   then Based_Val = Spec.Scan_Based_Number_Ghost
-                     (Str, P, Last_Num_Based, Base, Uval));
-                pragma Loop_Invariant (Ptr.all = Last_Num_Init + 1);
- 
-                Spec.Lemma_Scan_Based_Number_Ghost_Step
-                  (Str, P, Last_Num_Based, Base, Uval);
-                Spec.Lemma_Scan_Based_Number_Ghost_Overflow
-                  (Str, P, Last_Num_Based, Base, Uval);
- 
                 --  If digit is too large, just signal overflow and continue.
                 --  The idea here is to keep scanning as long as the input is
                 --  syntactically valid, even if we have detected overflow
--- 185,195 ----
*************** package body System.Value_U is
*** 375,398 ****
  
                 elsif Uval <= Umax then
                    Uval := Base * Uval + Digit;
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P + 1, Last_Num_Based, Base, Uval));
- 
                 elsif Uval > UmaxB then
                    Overflow := True;
- 
                 else
                    Uval := Base * Uval + Digit;
  
                    if Uval < UmaxB then
                       Overflow := True;
                    end if;
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P + 1, Last_Num_Based, Base, Uval));
                 end if;
  
                 --  If at end of string with no base char, not a based number
--- 201,214 ----
*************** package body System.Value_U is
*** 411,496 ****
  
                 if Str (P) = Base_Char then
                    Ptr.all := P + 1;
-                   pragma Assert (P = Last_Num_Based + 1);
-                   pragma Assert (Ptr.all = Last_Num_Based + 2);
-                   pragma Assert
-                     (By
-                        (Is_Based,
-                         So
-                           (Starts_As_Based,
-                            So
-                              (Last_Num_Based < Max,
-                               Str (Last_Num_Based + 1) = Base_Char
-                               and Base_Char = Str (Last_Num_Init + 1)))));
-                   Spec.Lemma_Scan_Based_Number_Ghost_Base
-                     (Str, P, Last_Num_Based, Base, Uval);
                    exit;
  
                 --  Deal with underscore
  
                 elsif Str (P) = '_' then
-                   Lemma_Underscore_Not_Last (Str, P, Last_Num_Init + 2, Max);
-                   Spec.Lemma_Scan_Based_Number_Ghost_Underscore
-                     (Str, P, Last_Num_Based, Base, Uval);
                    Scan_Underscore (Str, P, Ptr, Max, True);
-                   pragma Assert
-                     (if not Overflow
-                      then Based_Val = Spec.Scan_Based_Number_Ghost
-                        (Str, P, Last_Num_Based, Base, Uval));
-                   pragma Assert (Str (P) not in '_' | Base_Char);
                 end if;
- 
-                Lemma_Digit_Not_Last (Str, P, Last_Num_Init + 2, Max);
-                pragma Assert (Str (P) not in '_' | Base_Char);
              end loop;
           end;
-          pragma Assert
-            (if Starts_As_Based then P = Last_Num_Based + 1
-             else P = Last_Num_Init + 2);
-          pragma Assert
-            (By
-               (Overflow /= Spec.Scan_Split_No_Overflow_Ghost
-                    (Str, Ptr_Old, Max),
-                So
-                  (Last_Num_Init < Max - 1
-                   and then Str (Last_Num_Init + 1) in '#' | ':',
-                   Overflow =
-                     (Init_Val.Overflow
-                      or else Init_Val.Value not in 2 .. 16
-                      or else (Starts_As_Based and Based_Val.Overflow)))));
        end if;
  
-       pragma Assert_And_Cut
-         (Overflow /= Spec.Scan_Split_No_Overflow_Ghost (Str, Ptr_Old, Max)
-          and then Ptr.all = First_Exp
-          and then Base in 2 .. 16
-          and then
-            (if not Overflow then
-                 (if Is_Based then Base = Init_Val.Value else Base = 10))
-          and then
-            (if not Overflow then
-                 (if Is_Based then Uval = Based_Val.Value
-                  else Uval = Init_Val.Value)));
- 
        --  Come here with scanned unsigned value in Uval. The only remaining
        --  required step is to deal with exponent if one is present.
  
        Scan_Exponent (Str, Ptr, Max, Expon);
  
-       pragma Assert
-         (By
-            (Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr_Old, Max),
-             Ptr.all =
-               (if not Starts_As_Exponent_Format_Ghost (Str (First_Exp .. Max))
-                then First_Exp
-                elsif Str (First_Exp + 1) in '-' | '+' then
-                  Last_Number_Ghost (Str (First_Exp + 2 .. Max)) + 1
-                else Last_Number_Ghost (Str (First_Exp + 1 .. Max)) + 1)));
-       pragma Assert
-         (if not Overflow
-          then Spec.Scan_Split_Value_Ghost (Str, Ptr_Old, Max) =
-            (Uval, Base, Expon));
- 
        if Expon /= 0 and then Uval /= 0 then
  
           --  For non-zero value, scale by exponent value. No need to do this
--- 227,248 ----
*************** package body System.Value_U is
*** 500,565 ****
           declare
              UmaxB : constant Uns := Uns'Last / Base;
              --  Numbers bigger than UmaxB overflow if multiplied by base
- 
-             Res_Val : constant Spec.Uns_Option :=
-               Spec.Exponent_Unsigned_Ghost (Uval, Expon, Base)
-             with Ghost;
           begin
              for J in 1 .. Expon loop
-                pragma Loop_Invariant
-                  (if Overflow'Loop_Entry then Overflow);
-                pragma Loop_Invariant
-                  (if Overflow
-                   then Overflow'Loop_Entry or else Res_Val.Overflow);
-                pragma Loop_Invariant (Uval /= 0);
-                pragma Loop_Invariant
-                  (if not Overflow
-                   then Res_Val = Spec.Exponent_Unsigned_Ghost
-                     (Uval, Expon - J + 1, Base));
- 
-                pragma Assert
-                  ((Uval > UmaxB) = Spec.Scan_Overflows_Ghost (0, Base, Uval));
- 
                 if Uval > UmaxB then
-                   Spec.Lemma_Exponent_Unsigned_Ghost_Overflow
-                      (Uval, Expon - J + 1, Base);
                    Overflow := True;
                    exit;
                 end if;
  
-                Spec.Lemma_Exponent_Unsigned_Ghost_Step
-                   (Uval, Expon - J + 1, Base);
- 
                 Uval := Uval * Base;
              end loop;
-             Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, 0, Base);
- 
-             pragma Assert
-               (Overflow /=
-                  Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr_Old, Max));
-             pragma Assert (if not Overflow then Res_Val = (False, Uval));
           end;
        end if;
-       Spec.Lemma_Exponent_Unsigned_Ghost_Base (Uval, Expon, Base);
-       pragma Assert
-         (if Expon = 0 or else Uval = 0 then
-             Spec.Exponent_Unsigned_Ghost (Uval, Expon, Base) = (False, Uval));
-       pragma Assert
-         (Overflow /=
-            Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr_Old, Max));
-       pragma Assert
-         (if not Overflow then
-             Uval = Spec.Scan_Raw_Unsigned_Ghost (Str, Ptr_Old, Max));
  
        --  Return result, dealing with overflow
  
        if Overflow then
           Bad_Value (Str);
-          pragma Annotate
-            (GNATprove, Intentional,
-             "call to nonreturning subprogram might be executed",
-             "it is expected that Constraint_Error is raised in case of"
-             & " overflow");
        else
           Res := Uval;
        end if;
--- 252,273 ----
*************** package body System.Value_U is
*** 608,622 ****
        if Str'Last = Positive'Last then
           declare
              subtype NT is String (1 .. Str'Length);
-             procedure Prove_Is_Unsigned_Ghost with
-               Ghost,
-               Pre  => Str'Length < Natural'Last
-               and then not Only_Space_Ghost (Str, Str'First, Str'Last)
-               and then Spec.Is_Unsigned_Ghost (Spec.Slide_To_1 (Str)),
-               Post => Spec.Is_Unsigned_Ghost (NT (Str));
-             procedure Prove_Is_Unsigned_Ghost is null;
           begin
-             Prove_Is_Unsigned_Ghost;
              return Value_Unsigned (NT (Str));
           end;
  
--- 316,322 ----
*************** package body System.Value_U is
*** 626,637 ****
           declare
              V : Uns;
              P : aliased Integer := Str'First;
-             Non_Blank : constant Positive := First_Non_Space_Ghost
-               (Str, Str'First, Str'Last)
-             with Ghost;
-             Fst_Num   : constant Positive :=
-               (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank)
-             with Ghost;
           begin
              declare
                 P_Acc : constant not null access Integer := P'Access;
--- 326,331 ----
*************** package body System.Value_U is
*** 639,654 ****
                 Scan_Unsigned (Str, P_Acc, Str'Last, V);
              end;
  
-             pragma Assert
-               (P = Spec.Raw_Unsigned_Last_Ghost (Str, Fst_Num, Str'Last));
-             pragma Assert
-               (V = Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last));
- 
              Scan_Trailing_Blanks (Str, P);
- 
-             pragma Assert
-               (Spec.Is_Value_Unsigned_Ghost
-                  (Spec.Slide_If_Necessary (Str), V));
              return V;
           end;
        end if;
--- 333,339 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valueu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valueu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valueu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valueu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,60 ****
  --  This package contains routines 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Value_U_Spec;
- with System.Val_Spec; use System.Val_Spec;
- 
  generic
- 
     type Uns is mod <>;
- 
-    --  Additional parameters for ghost subprograms used inside contracts
- 
-    with package Spec is new System.Value_U_Spec (Uns => Uns) with Ghost;
- 
  package System.Value_U is
     pragma Preelaborate;
  
--- 32,39 ----
*************** package System.Value_U is
*** 62,76 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns)
!    with Pre => Str'Last /= Positive'Last
!      and then Ptr.all in Str'Range
!      and then Max in Ptr.all .. Str'Last
!      and then Spec.Is_Raw_Unsigned_Format_Ghost (Str (Ptr.all .. Max)),
!      Post => Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Ptr.all'Old, Max)
!      and Res = Spec.Scan_Raw_Unsigned_Ghost (Str, Ptr.all'Old, Max)
!      and Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Ptr.all'Old, Max);
! 
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max).  Note: this does not scan
--- 41,47 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns);
     --  This function scans the string starting at Str (Ptr.all) for a valid
     --  integer according to the syntax described in (RM 3.5(43)). The substring
     --  scanned extends no further than Str (Max).  Note: this does not scan
*************** package System.Value_U is
*** 131,141 ****
     --  This string results in a Constraint_Error with the pointer pointing
     --  past the second 2.
     --
!    --  Note: if Str is empty, 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
!    --  is greater than Max as required in this case.
!    --  ??? This is not the case. We will read Str (Ptr.all) without checking
!    --  and increase Ptr.all by one.
     --
     --  Note: this routine should not be called with Str'Last = Positive'Last.
     --  If this occurs Program_Error is raised with a message noting that this
--- 102,110 ----
     --  This string results in a Constraint_Error with the pointer pointing
     --  past the second 2.
     --
!    --  Note: If Max is less than Ptr, then Ptr is left unchanged and
!    --  Program_Error is raised to indicate that a valid integer cannot
!    --  be parsed.
     --
     --  Note: this routine should not be called with Str'Last = Positive'Last.
     --  If this occurs Program_Error is raised with a message noting that this
*************** package System.Value_U is
*** 145,189 ****
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns)
!    with Pre => Str'Last /= Positive'Last
!      and then Ptr.all in Str'Range
!      and then Max in Ptr.all .. Str'Last
!      and then not Only_Space_Ghost (Str, Ptr.all, Max)
!      and then
!        (declare
!           Non_Blank : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all, Max);
!           Fst_Num   : constant Positive :=
!             (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
!         begin
!           Spec.Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Max))),
!      Post =>
!        (declare
!           Non_Blank : constant Positive :=
!             First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!           Fst_Num   : constant Positive :=
!             (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
!         begin
!           Spec.Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Max)
!           and then Res = Spec.Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Max)
!           and then Ptr.all = Spec.Raw_Unsigned_Last_Ghost (Str, Fst_Num, Max));
! 
     --  Same as Scan_Raw_Unsigned, except scans optional leading
     --  blanks, and an optional leading plus sign.
     --
     --  Note: if a minus sign is present, Constraint_Error will be raised.
     --  Note: trailing blanks are not scanned.
  
!    function Value_Unsigned
!      (Str : String) return Uns
!    with Pre => Str'Length /= Positive'Last
!      and then not Only_Space_Ghost (Str, Str'First, Str'Last)
!      and then Spec.Is_Unsigned_Ghost (Spec.Slide_If_Necessary (Str)),
!      Post =>
!          Spec.Is_Value_Unsigned_Ghost
!            (Spec.Slide_If_Necessary (Str), Value_Unsigned'Result),
!      Subprogram_Variant => (Decreases => Str'First);
     --  Used in computing X'Value (Str) where X is a modular integer type whose
     --  modulus does not exceed the range of System.Unsigned_Types.Unsigned. Str
     --  is the string argument of the attribute. Constraint_Error is raised if
--- 114,127 ----
       (Str : String;
        Ptr : not null access Integer;
        Max : Integer;
!       Res : out Uns);
     --  Same as Scan_Raw_Unsigned, except scans optional leading
     --  blanks, and an optional leading plus sign.
     --
     --  Note: if a minus sign is present, Constraint_Error will be raised.
     --  Note: trailing blanks are not scanned.
  
!    function Value_Unsigned (Str : String) return Uns;
     --  Used in computing X'Value (Str) where X is a modular integer type whose
     --  modulus does not exceed the range of System.Unsigned_Types.Unsigned. Str
     --  is the string argument of the attribute. Constraint_Error is raised if
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuns.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuns.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuns.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuns.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuns.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuns.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,59 ****
  --  This package contains routines 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  with System.Unsigned_Types;
  with System.Value_U;
- with System.Vs_Uns;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned, System.Vs_Uns.Spec);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
--- 32,46 ----
  --  This package contains routines for scanning modular Unsigned
  --  values for use in Text_IO.Modular_IO, and the Value attribute.
  
  with System.Unsigned_Types;
  with System.Value_U;
  
  package System.Val_Uns with SPARK_Mode is
     pragma Preelaborate;
  
     subtype Unsigned is Unsigned_Types.Unsigned;
  
!    package Impl is new Value_U (Unsigned);
  
     procedure Scan_Raw_Unsigned
       (Str : String;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuti.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuti.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valuti.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuti.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,43 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  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 (Ghost          => Ignore,
!                          Loop_Invariant => Ignore,
!                          Assert         => Ignore);
! 
! with System.Case_Util; use System.Case_Util;
  
  package body System.Val_Util
    with SPARK_Mode
--- 29,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! with System.Case_Util_NSS; use System.Case_Util_NSS;
  
  package body System.Val_Util
    with SPARK_Mode
*************** is
*** 48,59 ****
     ---------------
  
     procedure Bad_Value (S : String) is
-       pragma Annotate (GNATprove, Intentional, "exception might be raised",
-                        "Intentional exception from Bad_Value");
     begin
        --  Bad_Value might be called with very long strings allocated on the
        --  heap. Limit the size of the message so that we avoid creating a
        --  Storage_Error during error handling.
        if S'Length > 127 then
           raise Constraint_Error with "bad input for 'Value: """
           & S (S'First .. S'First + 127) & "...""";
--- 40,50 ----
     ---------------
  
     procedure Bad_Value (S : String) is
     begin
        --  Bad_Value might be called with very long strings allocated on the
        --  heap. Limit the size of the message so that we avoid creating a
        --  Storage_Error during error handling.
+ 
        if S'Length > 127 then
           raise Constraint_Error with "bad input for 'Value: """
           & S (S'First .. S'First + 127) & "...""";
*************** is
*** 69,76 ****
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean)
!    is
     begin
        F := S'First;
        L := S'Last;
--- 60,66 ----
     procedure Normalize_String
       (S             : in out String;
        F, L          : out Integer;
!       To_Upper_Case : Boolean) is
     begin
        F := S'First;
        L := S'Last;
*************** is
*** 84,92 ****
        --  Scan for leading spaces
  
        while F < L and then S (F) = ' ' loop
-          pragma Loop_Invariant (F in S'First .. L - 1);
-          pragma Loop_Invariant (for all J in S'First .. F => S (J) = ' ');
-          pragma Loop_Variant (Increases => F);
           F := F + 1;
        end loop;
  
--- 74,79 ----
*************** is
*** 101,109 ****
        --  Scan for trailing spaces
  
        while S (L) = ' ' loop
-          pragma Loop_Invariant (L in F + 1 .. S'Last);
-          pragma Loop_Invariant (for all J in L .. S'Last => S (J) = ' ');
-          pragma Loop_Variant (Decreases => L);
           L := L - 1;
        end loop;
  
--- 88,93 ----
*************** is
*** 112,119 ****
        if To_Upper_Case and then S (F) /= ''' then
           for J in F .. L loop
              S (J) := To_Upper (S (J));
-             pragma Loop_Invariant
-               (for all K in F .. J => S (K) = To_Upper (S'Loop_Entry (K)));
           end loop;
        end if;
     end Normalize_String;
--- 96,101 ----
*************** is
*** 185,224 ****
  
        X := 0;
  
!       declare
!          Rest : constant String := Str (P .. Max) with Ghost;
!          Last : constant Natural := Sp.Last_Number_Ghost (Rest) with Ghost;
! 
!       begin
!          pragma Assert (Sp.Is_Natural_Format_Ghost (Rest));
! 
!          loop
!             pragma Assert (Str (P) in '0' .. '9');
! 
!             if X < (Integer'Last / 10) then
!                X := X * 10 + (Character'Pos (Str (P)) - Character'Pos ('0'));
!             end if;
! 
!             pragma Loop_Invariant (X >= 0);
!             pragma Loop_Invariant (P in Rest'First .. Last);
!             pragma Loop_Invariant (Str (P) in '0' .. '9');
!             pragma Loop_Invariant
!               (Sp.Scan_Natural_Ghost (Rest, Rest'First, 0)
!                = Sp.Scan_Natural_Ghost (Rest, P + 1, X));
  
!             P := P + 1;
  
!             exit when P > Max;
  
!             if Str (P) = '_' then
!                Scan_Underscore (Str, P, Ptr, Max, False);
!             else
!                exit when Str (P) not in '0' .. '9';
!             end if;
!          end loop;
  
!          pragma Assert (P = Last + 1);
!       end;
  
        if M then
           X := -X;
--- 167,189 ----
  
        X := 0;
  
!       loop
!          pragma Assert (Str (P) in '0' .. '9');
  
!          if X < (Integer'Last / 10) then
!             X := X * 10 + (Character'Pos (Str (P)) - Character'Pos ('0'));
!          end if;
  
!          P := P + 1;
  
!          exit when P > Max;
  
!          if Str (P) = '_' then
!             Scan_Underscore (Str, P, Ptr, Max, False);
!          else
!             exit when Str (P) not in '0' .. '9';
!          end if;
!       end loop;
  
        if M then
           X := -X;
*************** is
*** 250,261 ****
        while Str (P) = ' ' loop
           P := P + 1;
  
-          pragma Loop_Invariant (Ptr.all = Ptr.all'Loop_Entry);
-          pragma Loop_Invariant (P in Ptr.all .. Max);
-          pragma Loop_Invariant (for some J in P .. Max => Str (J) /= ' ');
-          pragma Loop_Invariant
-            (for all J in Ptr.all .. P - 1 => Str (J) = ' ');
- 
           if P > Max then
              Ptr.all := P;
              Bad_Value (Str);
--- 215,220 ----
*************** is
*** 264,271 ****
  
        Start := P;
  
-       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
- 
        --  Skip past an initial plus sign
  
        if Str (P) = '+' then
--- 223,228 ----
*************** is
*** 292,298 ****
        Start : out Positive)
     is
        P : Integer := Ptr.all;
- 
     begin
        --  Deal with case of null string (all blanks). As per spec, we raise
        --  constraint error, with Ptr unchanged, and thus > Max.
--- 249,254 ----
*************** is
*** 306,317 ****
        while Str (P) = ' ' loop
           P := P + 1;
  
-          pragma Loop_Invariant (Ptr.all = Ptr.all'Loop_Entry);
-          pragma Loop_Invariant (P in Ptr.all .. Max);
-          pragma Loop_Invariant (for some J in P .. Max => Str (J) /= ' ');
-          pragma Loop_Invariant
-            (for all J in Ptr.all .. P - 1 => Str (J) = ' ');
- 
           if P > Max then
              Ptr.all := P;
              Bad_Value (Str);
--- 262,267 ----
*************** is
*** 320,327 ****
  
        Start := P;
  
-       pragma Assert (Start = Sp.First_Non_Space_Ghost (Str, Ptr.all, Max));
- 
        --  Remember an initial minus sign
  
        if Str (P) = '-' then
--- 270,275 ----
*************** is
*** 361,368 ****
           if Str (J) /= ' ' then
              Bad_Value (Str);
           end if;
- 
-          pragma Loop_Invariant (for all K in P .. J => Str (K) = ' ');
        end loop;
     end Scan_Trailing_Blanks;
  
--- 309,314 ----
*************** is
*** 378,384 ****
        Ext : Boolean)
     is
        C : Character;
- 
     begin
        P := P + 1;
  
--- 324,329 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valuti.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuti.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valuti.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valuti.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,89 ****
  
  --  This package provides some common utilities 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
- --  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 System.Case_Util;
- with System.Val_Spec;
- 
  package System.Val_Util
    with SPARK_Mode, Pure
  is
!    pragma Unevaluated_Use_Of_Old (Allow);
! 
!    package Sp renames System.Val_Spec;
! 
!    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
!               else
!                 F >= S'First
!                   and then L <= S'Last
!                   and then F <= L
!                   and then Sp.Only_Space_Ghost (S'Old, S'First, F - 1)
!                   and then S'Old (F) /= ' '
!                   and then S'Old (L) /= ' '
!                   and then
!                     (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))
!                          else
!                            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
--- 31,46 ----
  
  --  This package provides some common utilities used by the s-valxxx files
  
  package System.Val_Util
    with SPARK_Mode, Pure
  is
!    procedure Bad_Value (S : String) with No_Return;
     --  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);
     --  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
*************** is
*** 96,122 ****
        Ptr   : not null access Integer;
        Max   : Integer;
        Minus : out Boolean;
!       Start : out Positive)
!    with
!      Pre  =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
!           begin
!             (if Str (F) in '+' | '-' then
!                F <= Max - 1 and then Str (F + 1) /= ' ')),
!      Post =>
!        (declare
!           F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!         begin
!           Minus = (Str (F) = '-')
!             and then Ptr.all = (if Str (F) in '+' | '-' then F + 1 else F)
!             and then Start = F);
     --  The Str, Ptr, Max parameters are as for the scan routines (Str is the
     --  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
--- 53,59 ----
        Ptr   : not null access Integer;
        Max   : Integer;
        Minus : out Boolean;
!       Start : out Positive);
     --  The Str, Ptr, Max parameters are as for the scan routines (Str is the
     --  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
*************** is
*** 140,165 ****
       (Str   : String;
        Ptr   : not null access Integer;
        Max   : Integer;
!       Start : out Positive)
!    with
!      Pre  =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!        and then not Sp.Only_Space_Ghost (Str, Ptr.all, Max)
!        and then
!          (declare
!             F : constant Positive :=
!               Sp.First_Non_Space_Ghost (Str, Ptr.all, Max);
!           begin
!             (if Str (F) = '+' then
!                F <= Max - 1 and then Str (F + 1) /= ' ')),
!      Post =>
!        (declare
!           F : constant Positive :=
!             Sp.First_Non_Space_Ghost (Str, Ptr.all'Old, Max);
!         begin
!           Ptr.all = (if Str (F) = '+' then F + 1 else F)
!             and then Start = F);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
--- 77,83 ----
       (Str   : String;
        Ptr   : not null access Integer;
        Max   : Integer;
!       Start : out Positive);
     --  Same as Scan_Sign, but allows only plus, not minus. This is used for
     --  modular types.
  
*************** is
*** 168,189 ****
        Ptr  : not null access Integer;
        Max  : Integer;
        Exp  : out Integer;
!       Real : Boolean := False)
!    with
!      Pre =>
!        --  Ptr.all .. Max is either an empty range, or a valid range in Str
!        (Ptr.all > Max or else (Ptr.all >= Str'First and then Max <= Str'Last))
!          and then Max < Natural'Last
!          and then Sp.Is_Opt_Exponent_Format_Ghost (Str (Ptr.all .. Max), Real),
!      Post =>
!        (if Sp.Starts_As_Exponent_Format_Ghost (Str (Ptr.all'Old .. Max), Real)
!         then Exp = Sp.Scan_Exponent_Ghost (Str (Ptr.all'Old .. Max), Real)
!           and then
!           (if Str (Ptr.all'Old + 1) in '-' | '+' then
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 2 .. Max)) + 1
!            else
!              Ptr.all = Sp.Last_Number_Ghost (Str (Ptr.all'Old + 1 .. Max)) + 1)
!         else Exp = 0 and Ptr.all = Ptr.all'Old);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
     --  exponent is scanned out, with the exponent value returned in Exp, and
--- 86,92 ----
        Ptr  : not null access Integer;
        Max  : Integer;
        Exp  : out Integer;
!       Real : Boolean := False);
     --  Called to scan a possible exponent. Str, Ptr, Max are as described above
     --  for Scan_Sign. If Ptr.all < Max and Str (Ptr.all) = 'E' or 'e', then an
     --  exponent is scanned out, with the exponent value returned in Exp, and
*************** is
*** 198,232 ****
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
  
!    procedure Scan_Trailing_Blanks (Str : String; P : Positive)
!    with
!      Pre => P >= Str'First
!        and then Sp.Only_Space_Ghost (Str, P, Str'Last);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
-    pragma Warnings
-      (GNATprove, Off, """Ptr"" is not modified",
-       Reason => "Ptr is actually modified when raising an exception");
     procedure Scan_Underscore
       (Str : String;
        P   : in out Natural;
        Ptr : not null access Integer;
        Max : Integer;
!       Ext : Boolean)
!    with
!      Pre  => P in Str'Range
!        and then Str (P) = '_'
!        and then Max in Str'Range
!        and then P < Max
!        and then
!          (if Ext then
!             Str (P + 1) in '0' .. '9' | 'A' .. 'F' | 'a' .. 'f'
!           else
!             Str (P + 1) in '0' .. '9'),
!      Post =>
!        P = P'Old + 1
!          and then Ptr.all'Old = Ptr.all;
     --  Called if an underscore is encountered while scanning digits. Str (P)
     --  contains the underscore. Ptr is the pointer to be returned to the
     --  ultimate caller of the scan routine, Max is the maximum subscript in
--- 101,116 ----
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
  
!    procedure Scan_Trailing_Blanks (Str : String; P : Positive);
     --  Checks that the remainder of the field Str (P .. Str'Last) is all
     --  blanks. Raises Constraint_Error if a non-blank character is found.
  
     procedure Scan_Underscore
       (Str : String;
        P   : in out Natural;
        Ptr : not null access Integer;
        Max : Integer;
!       Ext : Boolean);
     --  Called if an underscore is encountered while scanning digits. Str (P)
     --  contains the underscore. Ptr is the pointer to be returned to the
     --  ultimate caller of the scan routine, Max is the maximum subscript in
*************** is
*** 237,242 ****
     --
     --  This routine must not be called with Str'Last = Positive'Last. There is
     --  no check for this case, the caller must ensure this condition is met.
-    pragma Warnings (GNATprove, On, """Ptr"" is not modified");
  
  end System.Val_Util;
--- 121,125 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valwch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valwch.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-valwch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valwch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-valwch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valwch.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-valwch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-valwch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vauspe.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vauspe.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-vauspe.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vauspe.adb	Thu Jan  1 00:00:00 1970
***************
*** 1,203 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ U _ S P E C                  --
- --                                                                          --
- --                                 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- --
- -- 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- pragma Assertion_Policy (Pre                => Ignore,
-                          Post               => Ignore,
-                          Contract_Cases     => Ignore,
-                          Ghost              => Ignore,
-                          Subprogram_Variant => Ignore);
- 
- package body System.Value_U_Spec with SPARK_Mode is
- 
-    -----------------------------
-    -- Exponent_Unsigned_Ghost --
-    -----------------------------
- 
-    function Exponent_Unsigned_Ghost
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10) return Uns_Option
-    is
-       (if Exp = 0 or Value = 0 then (Overflow => False, Value => Value)
-        elsif Scan_Overflows_Ghost (0, Base, Value) then (Overflow => True)
-        else Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
- 
-    ---------------------
-    -- Last_Hexa_Ghost --
-    ---------------------
- 
-    function Last_Hexa_Ghost (Str : String) return Positive is
-    begin
-       pragma Annotate (Gnatcheck, Exempt_On, "Improper_Returns",
-                        "occurs in ghost code, not executable");
- 
-       for J in Str'Range loop
-          if Str (J) not in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' then
-             return J - 1;
-          end if;
- 
-          pragma Loop_Invariant
-            (for all K in Str'First .. J =>
-               Str (K) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_');
-       end loop;
- 
-       return Str'Last;
- 
-       pragma Annotate (Gnatcheck, Exempt_Off, "Improper_Returns");
-    end Last_Hexa_Ghost;
- 
-    -----------------------------
-    -- Lemmas with null bodies --
-    -----------------------------
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Base
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Underscore
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Overflow
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Step
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Base
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Overflow
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Step
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    is null;
- 
-    --------------------------------------
-    -- Prove_Scan_Based_Number_Ghost_Eq --
-    --------------------------------------
- 
-    procedure Prove_Scan_Based_Number_Ghost_Eq
-      (Str1, Str2 : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    is
-    begin
-       if From > To then
-          null;
-       elsif Str1 (From) = '_' then
-          Prove_Scan_Based_Number_Ghost_Eq
-            (Str1, Str2, From + 1, To, Base, Acc);
-       elsif Scan_Overflows_Ghost
-         (Hexa_To_Unsigned_Ghost (Str1 (From)), Base, Acc)
-       then
-          null;
-       else
-          Prove_Scan_Based_Number_Ghost_Eq
-            (Str1, Str2, From + 1, To, Base,
-             Base * Acc + Hexa_To_Unsigned_Ghost (Str1 (From)));
-       end if;
-    end Prove_Scan_Based_Number_Ghost_Eq;
- 
-    -----------------------------------
-    -- Prove_Scan_Only_Decimal_Ghost --
-    -----------------------------------
- 
-    procedure Prove_Scan_Only_Decimal_Ghost
-      (Str : String;
-       Val : Uns)
-    is
-       pragma Assert (Str (Str'First + 1) /= ' ');
-       Non_Blank : constant Positive := First_Non_Space_Ghost
-         (Str, Str'First, Str'Last);
-       pragma Assert (Non_Blank = Str'First + 1);
-       Fst_Num   : constant Positive :=
-         (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       pragma Assert (Fst_Num = Str'First + 1);
-    begin
-       pragma Assert
-         (Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last)));
-       pragma Assert
-         (Scan_Split_No_Overflow_Ghost (Str, Str'First + 1, Str'Last));
-       pragma Assert
-         ((Val, 10, 0) = Scan_Split_Value_Ghost (Str, Str'First + 1, Str'Last));
-       pragma Assert
-         (Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last));
-       pragma Assert (Val = Exponent_Unsigned_Ghost (Val, 0, 10).Value);
-       pragma Assert (Is_Unsigned_Ghost (Str));
-       pragma Assert (Is_Value_Unsigned_Ghost (Str, Val));
-    end Prove_Scan_Only_Decimal_Ghost;
- 
-    -----------------------------
-    -- Scan_Based_Number_Ghost --
-    -----------------------------
- 
-    function Scan_Based_Number_Ghost
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0) return Uns_Option
-    is
-       (if From > To then (Overflow => False, Value => Acc)
-        elsif Str (From) = '_'
-        then Scan_Based_Number_Ghost (Str, From + 1, To, Base, Acc)
-        elsif Scan_Overflows_Ghost
-          (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then (Overflow => True)
-        else Scan_Based_Number_Ghost
-          (Str, From + 1, To, Base,
-           Base * Acc + Hexa_To_Unsigned_Ghost (Str (From))));
- 
- end System.Value_U_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vauspe.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vauspe.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vauspe.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vauspe.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,629 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                   S Y S T E M . V A L U E _ U _ S P E C                  --
- --                                                                          --
- --                                 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- --
- -- 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 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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Val_Spec; use System.Val_Spec;
- 
- generic
- 
-    type Uns is mod <>;
- 
- package System.Value_U_Spec with
-    Ghost,
-    SPARK_Mode,
-    Always_Terminates
- is
-    pragma Preelaborate;
- 
-    --  Maximum value of exponent for 10 that fits in Uns'Base
-    function Max_Log10 return Natural is
-      (case Uns'Base'Size is
-         when 8   => 2,
-         when 16  => 4,
-         when 32  => 9,
-         when 64  => 19,
-         when 128 => 38,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    pragma Annotate (Gnatcheck, Exempt_On, "Discriminated_Records",
-                     "variant record only used in proof code");
-    type Uns_Option (Overflow : Boolean := False) is record
-       case Overflow is
-          when True =>
-             null;
-          when False =>
-             Value : Uns := 0;
-       end case;
-    end record;
-    pragma Annotate (Gnatcheck, Exempt_Off, "Discriminated_Records");
- 
-    function Wrap_Option (Value : Uns) return Uns_Option is
-      (Overflow => False, Value => Value);
- 
-    function Only_Decimal_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-       (for all J in From .. To => Str (J) in '0' .. '9')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only decimal characters
-    --  from index From to index To.
- 
-    function Only_Hexa_Ghost (Str : String; From, To : Integer) return Boolean
-    is
-       (for all J in From .. To =>
-           Str (J) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_')
-    with
-      Pre => From > To or else (From >= Str'First and then To <= Str'Last);
-    --  Ghost function that returns True if S has only hexadecimal characters
-    --  from index From to index To.
- 
-    function Last_Hexa_Ghost (Str : String) return Positive
-    with
-      Pre  => Str /= ""
-        and then Str (Str'First) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F',
-      Post => Last_Hexa_Ghost'Result in Str'Range
-        and then (if Last_Hexa_Ghost'Result < Str'Last then
-                    Str (Last_Hexa_Ghost'Result + 1) not in
-                      '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_')
-        and then Only_Hexa_Ghost (Str, Str'First, Last_Hexa_Ghost'Result);
-    --  Ghost function that returns the index of the last character in S that
-    --  is either an hexadecimal digit or an underscore, which necessarily
-    --  exists given the precondition on Str.
- 
-    function Is_Based_Format_Ghost (Str : String) return Boolean
-    is
-      (Str /= ""
-         and then Str (Str'First) in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F'
-         and then
-         (declare
-            L : constant Positive := Last_Hexa_Ghost (Str);
-          begin
-            Str (L) /= '_'
-              and then (for all J in Str'First .. L =>
-                          (if Str (J) = '_' then Str (J + 1) /= '_'))));
-    --  Ghost function that determines if Str has the correct format for a
-    --  based number, consisting in a sequence of hexadecimal digits possibly
-    --  separated by single underscores. It may be followed by other characters.
- 
-    function Hexa_To_Unsigned_Ghost (X : Character) return Uns is
-      (case X is
-          when '0' .. '9' => Character'Pos (X) - Character'Pos ('0'),
-          when 'a' .. 'f' => Character'Pos (X) - Character'Pos ('a') + 10,
-          when 'A' .. 'F' => Character'Pos (X) - Character'Pos ('A') + 10,
-          when others     => raise Program_Error)
-    with
-      Pre => X in '0' .. '9' | 'a' .. 'f' | 'A' .. 'F';
-    --  Ghost function that computes the value corresponding to an hexadecimal
-    --  digit.
- 
-    function Scan_Overflows_Ghost
-      (Digit : Uns;
-       Base  : Uns;
-       Acc   : Uns) return Boolean
-    is
-      (Digit >= Base
-       or else Acc > Uns'Last / Base
-       or else Uns'Last - Digit < Base * Acc);
-    --  Ghost function which returns True if Digit + Base * Acc overflows or
-    --  Digit is greater than Base, as this is used by the algorithm for the
-    --  test of overflow.
- 
-    function Scan_Based_Number_Ghost
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0) return Uns_Option
-    with
-      Subprogram_Variant => (Increases => From),
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To);
-    --  Ghost function that recursively computes the based number in Str,
-    --  assuming Acc has been scanned already and scanning continues at index
-    --  From.
- 
-    --  Lemmas unfolding the recursive definition of Scan_Based_Number_Ghost
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Base
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From > To
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-          (Overflow => False, Value => Acc));
-    --  Base case: Scan_Based_Number_Ghost returns Acc if From is bigger than To
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Underscore
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To and then Str (From) = '_'
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-            Scan_Based_Number_Ghost (Str, From + 1, To, Base, Acc));
-    --  Underscore case: underscores are ignored while scanning
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Overflow
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To
-          and then Str (From) /= '_'
-          and then Scan_Overflows_Ghost
-            (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-            (Overflow => True));
-    --  Overflow case: scanning a digit which causes an overflow
- 
-    procedure Lemma_Scan_Based_Number_Ghost_Step
-      (Str      : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Global => null,
-      Pre  => Str'Last /= Positive'Last
-          and then
-            (From > To or else (From >= Str'First and then To <= Str'Last))
-          and then Only_Hexa_Ghost (Str, From, To),
-      Post =>
-       (if From <= To
-          and then Str (From) /= '_'
-          and then not Scan_Overflows_Ghost
-            (Hexa_To_Unsigned_Ghost (Str (From)), Base, Acc)
-        then Scan_Based_Number_Ghost (Str, From, To, Base, Acc) =
-          Scan_Based_Number_Ghost
-            (Str, From + 1, To, Base,
-             Base * Acc + Hexa_To_Unsigned_Ghost (Str (From))));
-    --  Normal case: scanning a digit without overflows
- 
-    function Exponent_Unsigned_Ghost
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10) return Uns_Option
-    with
-      Subprogram_Variant => (Decreases => Exp);
-    --  Ghost function that recursively computes Value * Base ** Exp
- 
-    --  Lemmas unfolding the recursive definition of Exponent_Unsigned_Ghost
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Base
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp = 0 or Value = 0
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) =
-           (Overflow => False, Value => Value));
-    --  Base case: Exponent_Unsigned_Ghost returns 0 if Value or Exp is 0
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Overflow
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp /= 0
-           and then Value /= 0
-           and then Scan_Overflows_Ghost (0, Base, Value)
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) = (Overflow => True));
-    --  Overflow case: the next multiplication overflows
- 
-    procedure Lemma_Exponent_Unsigned_Ghost_Step
-      (Value : Uns;
-       Exp   : Natural;
-       Base  : Uns := 10)
-    with
-      Post =>
-        (if Exp /= 0
-           and then Value /= 0
-           and then not Scan_Overflows_Ghost (0, Base, Value)
-         then Exponent_Unsigned_Ghost (Value, Exp, Base) =
-             Exponent_Unsigned_Ghost (Value * Base, Exp - 1, Base));
-    --  Normal case: exponentiation without overflows
- 
-    function Raw_Unsigned_Starts_As_Based_Ghost
-      (Str               : String;
-       Last_Num_Init, To : Integer)
-       return Boolean
-    is
-      (Last_Num_Init < To - 1
-       and then Str (Last_Num_Init + 1) in '#' | ':'
-       and then Str (Last_Num_Init + 2) in
-       '0' .. '9' | 'a' .. 'f' | 'A' .. 'F')
-    with Ghost,
-      Pre => Last_Num_Init in Str'Range
-      and then To in Str'Range;
-    --  Return True if Str starts as a based number
- 
-    function Raw_Unsigned_Is_Based_Ghost
-      (Str            : String;
-       Last_Num_Init  : Integer;
-       Last_Num_Based : Integer;
-       To             : Integer)
-       return Boolean
-    is
-      (Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To)
-       and then Last_Num_Based < To
-       and then Str (Last_Num_Based + 1) = Str (Last_Num_Init + 1))
-    with Ghost,
-      Pre => Last_Num_Init in Str'Range
-      and then Last_Num_Based in Last_Num_Init .. Str'Last
-      and then To in Str'Range;
-    --  Return True if Str is a based number
- 
-    function Is_Raw_Unsigned_Format_Ghost (Str : String) return Boolean is
-      (Is_Natural_Format_Ghost (Str)
-       and then
-         (declare
-            Last_Num_Init   : constant Integer := Last_Number_Ghost (Str);
-            Starts_As_Based : constant Boolean :=
-              Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, Str'Last);
-            Last_Num_Based  : constant Integer :=
-              (if Starts_As_Based
-               then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
-               else Last_Num_Init);
-            Is_Based        : constant Boolean :=
-              Raw_Unsigned_Is_Based_Ghost
-                (Str, Last_Num_Init, Last_Num_Based, Str'Last);
-            First_Exp       : constant Integer :=
-              (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-          begin
-            (if Starts_As_Based then
-               Is_Based_Format_Ghost (Str (Last_Num_Init + 2 .. Str'Last))
-               and then Last_Num_Based < Str'Last)
-             and then Is_Opt_Exponent_Format_Ghost
-               (Str (First_Exp .. Str'Last))))
-    with
-      Pre  => Str'Last /= Positive'Last;
-    --  Ghost function that determines if Str has the correct format for an
-    --  unsigned number without a sign character.
-    --  It is a natural number in base 10, optionally followed by a based
-    --  number surrounded by delimiters # or :, optionally followed by an
-    --  exponent part.
- 
-    type Split_Value_Ghost is record
-       Value : Uns;
-       Base  : Uns;
-       Expon : Natural;
-    end record;
- 
-    function Scan_Split_No_Overflow_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Init_Val        : constant Uns_Option :=
-           Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Based_Val       : constant Uns_Option :=
-           (if Starts_As_Based and then not Init_Val.Overflow
-            then Scan_Based_Number_Ghost
-              (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-            else Init_Val);
-       begin
-         not Init_Val.Overflow
-         and then
-           (Last_Num_Init >= To - 1
-            or else Str (Last_Num_Init + 1) not in '#' | ':'
-            or else Init_Val.Value in 2 .. 16)
-         and then
-           (not Starts_As_Based
-            or else not Based_Val.Overflow))
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9';
-    --  Ghost function that determines if an overflow might occur while scanning
-    --  the representation of an unsigned number. The computation overflows if
-    --  either:
-    --    * The computation of the decimal part overflows,
-    --    * The decimal part is followed by a valid delimiter for a based
-    --      part, and the number corresponding to the base is not a valid base,
-    --      or
-    --    * The computation of the based part overflows.
- 
-    pragma Warnings (Off, "constant * is not referenced");
-    function Scan_Split_Value_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Split_Value_Ghost
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Init_Val        : constant Uns_Option :=
-           Scan_Based_Number_Ghost (Str, From, Last_Num_Init);
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Is_Based        : constant Boolean :=
-           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
-         Based_Val       : constant Uns_Option :=
-           (if Starts_As_Based and then not Init_Val.Overflow
-            then Scan_Based_Number_Ghost
-              (Str, Last_Num_Init + 2, Last_Num_Based, Init_Val.Value)
-            else Init_Val);
-         First_Exp       : constant Integer :=
-           (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-         Expon           : constant Natural :=
-           (if Starts_As_Exponent_Format_Ghost (Str (First_Exp .. To))
-            then Scan_Exponent_Ghost (Str (First_Exp .. To))
-            else 0);
-         Base            : constant Uns :=
-           (if Is_Based then Init_Val.Value else 10);
-         Value           : constant Uns :=
-           (if Is_Based then Based_Val.Value else Init_Val.Value);
-       begin
-         (Value => Value, Base => Base, Expon => Expon))
-    with
-      Pre => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9'
-        and then Scan_Split_No_Overflow_Ghost (Str, From, To);
-    --  Ghost function that scans an unsigned number without a sign character
-    --  and return a record containing the values scanned for its value, its
-    --  base, and its exponent.
-    pragma Warnings (On, "constant * is not referenced");
- 
-    function Raw_Unsigned_No_Overflow_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Boolean
-    is
-      (Scan_Split_No_Overflow_Ghost (Str, From, To)
-       and then
-         (declare
-            Val : constant Split_Value_Ghost := Scan_Split_Value_Ghost
-              (Str, From, To);
-          begin
-            not Exponent_Unsigned_Ghost
-              (Val.Value, Val.Expon, Val.Base).Overflow))
-    with
-      Pre => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9';
-    --  Ghost function that determines if the computation of the unsigned number
-    --  represented by Str will overflow. The computation overflows if either:
-    --    * The scan of the string overflows, or
-    --    * The computation of the exponentiation overflows.
- 
-    function Scan_Raw_Unsigned_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Uns
-    is
-      (declare
-         Val : constant Split_Value_Ghost := Scan_Split_Value_Ghost
-           (Str, From, To);
-       begin
-         Exponent_Unsigned_Ghost (Val.Value, Val.Expon, Val.Base).Value)
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9'
-        and then Raw_Unsigned_No_Overflow_Ghost (Str, From, To);
-    --  Ghost function that scans an unsigned number without a sign character
- 
-    function Raw_Unsigned_Last_Ghost
-      (Str      : String;
-       From, To : Integer)
-       return Positive
-    is
-      (declare
-         Last_Num_Init   : constant Integer :=
-           Last_Number_Ghost (Str (From .. To));
-         Starts_As_Based : constant Boolean :=
-           Raw_Unsigned_Starts_As_Based_Ghost (Str, Last_Num_Init, To);
-         Last_Num_Based  : constant Integer :=
-           (if Starts_As_Based
-            then Last_Hexa_Ghost (Str (Last_Num_Init + 2 .. To))
-            else Last_Num_Init);
-         Is_Based        : constant Boolean :=
-           Raw_Unsigned_Is_Based_Ghost (Str, Last_Num_Init, Last_Num_Based, To);
-         First_Exp       : constant Integer :=
-           (if Is_Based then Last_Num_Based + 2 else Last_Num_Init + 1);
-       begin
-         (if not Starts_As_Exponent_Format_Ghost (Str (First_Exp .. To))
-          then First_Exp
-          elsif Str (First_Exp + 1) in '-' | '+' then
-            Last_Number_Ghost (Str (First_Exp + 2 .. To)) + 1
-          else Last_Number_Ghost (Str (First_Exp + 1 .. To)) + 1))
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then From in Str'Range
-        and then To in From .. Str'Last
-        and then Str (From) in '0' .. '9',
-      Post => Raw_Unsigned_Last_Ghost'Result >= From;
-    --  Ghost function that returns the position of the cursor once an unsigned
-    --  number has been seen.
- 
-    function Slide_To_1 (Str : String) return String
-    with
-      Post =>
-        Only_Space_Ghost (Str, Str'First, Str'Last) =
-        (for all J in Str'First .. Str'Last =>
-           Slide_To_1'Result (J - Str'First + 1) = ' ');
-    --  Slides Str so that it starts at 1
- 
-    function Slide_If_Necessary (Str : String) return String is
-      (if Str'Last = Positive'Last then Slide_To_1 (Str) else Str);
-    --  If Str'Last = Positive'Last then slides Str so that it starts at 1
- 
-    function Is_Unsigned_Ghost (Str : String) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       begin
-         Is_Raw_Unsigned_Format_Ghost (Str (Fst_Num .. Str'Last))
-           and then Raw_Unsigned_No_Overflow_Ghost (Str, Fst_Num, Str'Last)
-           and then Only_Space_Ghost
-              (Str, Raw_Unsigned_Last_Ghost (Str, Fst_Num, Str'Last), Str'Last))
-    with
-        Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last;
-    --  Ghost function that determines if Str has the correct format for an
-    --  unsigned number, consisting in some blank characters, an optional
-    --  + sign, a raw unsigned number which does not overflow and then some
-    --  more blank characters.
- 
-    function Is_Value_Unsigned_Ghost (Str : String; Val : Uns) return Boolean is
-      (declare
-         Non_Blank : constant Positive := First_Non_Space_Ghost
-           (Str, Str'First, Str'Last);
-         Fst_Num   : constant Positive :=
-           (if Str (Non_Blank) = '+' then Non_Blank + 1 else Non_Blank);
-       begin
-         Val = Scan_Raw_Unsigned_Ghost (Str, Fst_Num, Str'Last))
-    with
-        Pre => not Only_Space_Ghost (Str, Str'First, Str'Last)
-        and then Str'Last /= Positive'Last
-        and then Is_Unsigned_Ghost (Str);
-    --  Ghost function that returns True if Val is the value corresponding to
-    --  the unsigned number represented by Str.
- 
-    procedure Prove_Scan_Based_Number_Ghost_Eq
-      (Str1, Str2 : String;
-       From, To : Integer;
-       Base     : Uns := 10;
-       Acc      : Uns := 0)
-    with
-      Subprogram_Variant => (Increases => From),
-      Pre  => Str1'Last /= Positive'Last
-        and then Str2'Last /= Positive'Last
-        and then
-          (From > To or else (From >= Str1'First and then To <= Str1'Last))
-        and then
-          (From > To or else (From >= Str2'First and then To <= Str2'Last))
-        and then Only_Hexa_Ghost (Str1, From, To)
-        and then (for all J in From .. To => Str1 (J) = Str2 (J)),
-      Post =>
-        Scan_Based_Number_Ghost (Str1, From, To, Base, Acc)
-          = Scan_Based_Number_Ghost (Str2, From, To, Base, Acc);
-    --  Scan_Based_Number_Ghost returns the same value on two slices which are
-    --  equal.
- 
-    procedure Prove_Scan_Only_Decimal_Ghost
-      (Str : String;
-       Val : Uns)
-    with
-      Pre  => Str'Last /= Positive'Last
-        and then Str'Length >= 2
-        and then Str (Str'First) = ' '
-        and then Only_Decimal_Ghost (Str, Str'First + 1, Str'Last)
-        and then Scan_Based_Number_Ghost (Str, Str'First + 1, Str'Last)
-          = Wrap_Option (Val),
-      Post => Is_Unsigned_Ghost (Slide_If_Necessary (Str))
-        and then
-          Is_Value_Unsigned_Ghost (Slide_If_Necessary (Str), Val);
-    --  Ghost lemma used in the proof of 'Image implementation, to prove that
-    --  the result of Value_Unsigned on a decimal string is the same as the
-    --  result of Scan_Based_Number_Ghost.
- 
-    --  Bundle Uns type with other types, constants and subprograms used in
-    --  ghost code, so that this package can be instantiated once and used
-    --  multiple times as generic formal for a given Int type.
- 
- private
- 
-    ----------------
-    -- Slide_To_1 --
-    ----------------
- 
-    function Slide_To_1 (Str : String) return String is
-       (declare
-          Res : constant String (1 .. Str'Length) := Str;
-        begin
-          Res);
- 
- end System.Value_U_Spec;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-veboop.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-veboop.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-veboop.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-veboop.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,42 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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 (Ghost          => Ignore,
-                          Loop_Invariant => Ignore,
-                          Assert         => Ignore);
- 
  package body System.Vectors.Boolean_Operations
    with SPARK_Mode
  is
--- 29,34 ----
*************** is
*** 86,111 ****
     -----------
  
     function "not" (Item : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Not (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Item)
-           and then Result = (Item xor True_Val),
-         Post => Valid (Result)
-           and then (for all J in 1 .. Vector_Boolean_Size =>
-                       Model (Result) (J) = not Model (Item) (J));
- 
-       procedure Prove_Not (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) = 1 - Element (Item, J));
-          end loop;
-       end Prove_Not;
- 
     begin
-       Prove_Not (Item xor True_Val);
        return Item xor True_Val;
     end "not";
  
--- 78,84 ----
*************** is
*** 119,150 ****
     end Nand;
  
     function Nand (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_And (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left and Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) and Model (Right) (J)));
- 
-       procedure Prove_And (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     and Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_And;
- 
     begin
-       Prove_And (Left and Right);
        return not (Left and Right);
     end Nand;
  
--- 92,98 ----
*************** is
*** 158,189 ****
     end Nor;
  
     function Nor (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Or (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left or Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) or Model (Right) (J)));
- 
-       procedure Prove_Or (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     or Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_Or;
- 
     begin
-       Prove_Or (Left or Right);
        return not (Left or Right);
     end Nor;
  
--- 106,112 ----
*************** is
*** 197,228 ****
     end Nxor;
  
     function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector is
- 
-       procedure Prove_Xor (Result : Vectors.Vector)
-       with
-         Ghost,
-         Pre  => Valid (Left)
-           and then Valid (Right)
-           and then Result = (Left xor Right),
-           Post => Valid (Result)
-             and then (for all J in 1 .. Vector_Boolean_Size =>
-                         Model (Result) (J) =
-                           (Model (Left) (J) xor Model (Right) (J)));
- 
-       procedure Prove_Xor (Result : Vectors.Vector) is
-       begin
-          for J in 1 .. Vector_Boolean_Size loop
-             pragma Assert
-               (Element (Result, J) =
-                  (if Element (Left, J) = 1
-                     xor Element (Right, J) = 1
-                   then 1
-                   else 0));
-          end loop;
-       end Prove_Xor;
- 
     begin
-       Prove_Xor (Left xor Right);
        return not (Left xor Right);
     end Nxor;
  
--- 120,126 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-veboop.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-veboop.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-veboop.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-veboop.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,146 ****
  
  --  This package contains functions for runtime operations on boolean vectors
  
- --  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);
- 
  package System.Vectors.Boolean_Operations
    with Pure, SPARK_Mode
  is
-    pragma Warnings (Off, "aspect ""Pre"" not enforced on inlined subprogram",
-                     Reason => "Pre only used in proof");
-    pragma Warnings (Off, "aspect ""Post"" not enforced on inlined subprogram",
-                     Reason => "Post only used in proof");
- 
     --  Type Vectors.Vector represents an array of Boolean, each of which
!    --  takes 8 bits of the representation, with the 7 msb set to zero. Express
!    --  in contracts the constraint on valid vectors and the model that they
!    --  represent, and the relationship between input models and output model.
! 
!    Vector_Boolean_Size : constant Positive :=
!      System.Word_Size / System.Storage_Unit
!    with Ghost;
! 
!    type Vector_Element is mod 2 ** System.Storage_Unit with Ghost;
! 
!    type Vector_Boolean_Array is array (1 .. Vector_Boolean_Size) of Boolean
!    with Ghost;
! 
!    function Shift_Right (V : Vectors.Vector; N : Natural) return Vectors.Vector
!    with Ghost, Import, Convention => Intrinsic;
! 
!    function Element (V : Vectors.Vector; N : Positive) return Vector_Element is
!      (Vector_Element (Shift_Right (V, (N - 1) * System.Storage_Unit)
!                         and (2 ** System.Storage_Unit - 1)))
!    with
!      Ghost,
!      Pre => N <= Vector_Boolean_Size;
!    --  Return the Nth element represented by the vector
! 
!    function Valid (V : Vectors.Vector) return Boolean is
!      (for all J in 1 .. Vector_Boolean_Size =>
!         Element (V, J) in 0 .. 1)
!    with Ghost;
!    --  A valid vector is one for which all elements are 0 (representing False)
!    --  or 1 (representing True).
! 
!    function Model (V : Vectors.Vector) return Vector_Boolean_Array
!    with
!      Ghost,
!      Pre => Valid (V);
! 
!    function Model (V : Vectors.Vector) return Vector_Boolean_Array is
!      (for J in 1 .. Vector_Boolean_Size => Element (V, J) = 1);
!    --  The model of a valid vector is the corresponding array of Boolean values
! 
!    --  Although in general the boolean operations on arrays of booleans are
!    --  identical to operations on arrays of unsigned words of the same size,
!    --  for the "not" operator this is not the case as False is typically
!    --  represented by 0 and true by 1.
! 
!    function "not" (Item : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Item),
!      Post => Valid ("not"'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model ("not"'Result) (J) = not Model (Item) (J));
! 
!    function Nand (Left, Right : Boolean) return Boolean
!    with
!      Post => Nand'Result = not (Left and Right);
! 
!    function Nor  (Left, Right : Boolean) return Boolean
!    with
!      Post => Nor'Result = not (Left or Right);
! 
!    function Nxor (Left, Right : Boolean) return Boolean
!    with
!      Post => Nxor'Result = not (Left xor Right);
  
!    function Nand (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nand'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model (Nand'Result) (J) =
!                      Nand (Model (Left) (J), Model (Right) (J)));
  
!    function Nor (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nor'Result)
!        and then (for all J in 1 .. Vector_Boolean_Size =>
!                    Model (Nor'Result) (J) =
!                      Nor (Model (Left) (J), Model (Right) (J)));
  
!    function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector
!    with
!      Pre  => Valid (Left)
!        and then Valid (Right),
!      Post => Valid (Nxor'Result)
!        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.
--- 31,51 ----
  
  --  This package contains functions for runtime operations on boolean vectors
  
  package System.Vectors.Boolean_Operations
    with Pure, SPARK_Mode
  is
     --  Type Vectors.Vector represents an array of Boolean, each of which
!    --  takes 8 bits of the representation, with the 7 msb set to zero.
  
!    function "not" (Item : Vectors.Vector) return Vectors.Vector;
  
!    function Nand (Left, Right : Boolean) return Boolean;
!    function Nor  (Left, Right : Boolean) return Boolean;
!    function Nxor (Left, Right : Boolean) return Boolean;
  
!    function Nand (Left, Right : Vectors.Vector) return Vectors.Vector;
!    function Nor (Left, Right : Vectors.Vector) return Vectors.Vector;
!    function Nxor (Left, Right : Vectors.Vector) return Vectors.Vector;
     --  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.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vector.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vector.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vector.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vector.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vercon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vercon.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-vercon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vercon.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vercon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vercon.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vercon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vercon.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vs_int.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_int.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vs_int.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_int.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,59 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ I N T                        --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_Uns;
- 
- package System.Vs_Int with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Unsigned is Unsigned_Types.Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Integer, Unsigned, System.Vs_Uns.Spec);
- 
- end System.Vs_Int;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vs_lli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_lli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vs_lli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_lli.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,60 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ L L I                        --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_LLU;
- 
- package System.Vs_LLI with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Long_Long_Integer, Long_Long_Unsigned, System.Vs_LLU.Spec);
- 
- end System.Vs_LLI;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vs_llu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_llu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vs_llu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_llu.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,58 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ L L U                        --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_LLU with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Unsigned is Unsigned_Types.Long_Long_Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Long_Long_Unsigned);
- 
- end System.Vs_LLU;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vs_uns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_uns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vs_uns.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vs_uns.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,57 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                         S Y S T E M . V S _ U N 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_Uns with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Unsigned is Unsigned_Types.Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Unsigned);
- 
- end System.Vs_Uns;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vsllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vsllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vsllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vsllli.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,60 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                        S Y S T E M . V S _ L L L I                       --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_I_Spec;
- with System.Vs_LLLU;
- 
- package System.Vs_LLLI with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
- 
-    package Spec is new System.Value_I_Spec
-      (Long_Long_Long_Integer, Long_Long_Long_Unsigned, System.Vs_LLLU.Spec);
- 
- end System.Vs_LLLI;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-vslllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vslllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-vslllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-vslllu.ads	Thu Jan  1 00:00:00 1970
***************
*** 1,58 ****
- ------------------------------------------------------------------------------
- --                                                                          --
- --                         GNAT COMPILER COMPONENTS                         --
- --                                                                          --
- --                        S Y S T E M . V S _ L L L U                       --
- --                                                                          --
- --                                 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.      --
- --                                                                          --
- ------------------------------------------------------------------------------
- 
- --  This package contains specification functions for scanning
- --  Long_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
- --  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,
-                          Subprogram_Variant => Ignore);
- 
- with System.Unsigned_Types;
- with System.Value_U_Spec;
- 
- package System.Vs_LLLU with SPARK_Mode, Ghost is
-    pragma Preelaborate;
- 
-    subtype Long_Long_Long_Unsigned is Unsigned_Types.Long_Long_Long_Unsigned;
- 
-    package Spec is new System.Value_U_Spec (Long_Long_Long_Unsigned);
- 
- end System.Vs_LLLU;
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchcnv.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcnv.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wchcnv.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcnv.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchcnv.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcnv.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wchcnv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcnv.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchcon.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcon.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wchcon.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcon.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2005-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchcon.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcon.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wchcon.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchcon.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchjis.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchjis.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wchjis.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchjis.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchjis.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchjis.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wchjis.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchjis.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchstw.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchstw.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wchstw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchstw.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchstw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchstw.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wchstw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchstw.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchwts.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchwts.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wchwts.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchwts.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wchwts.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchwts.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wchwts.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wchwts.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widboo.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widboo.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widboo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widboo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widboo.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widboo.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widboo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widboo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widcha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widcha.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widcha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widcha.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widcha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widcha.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widcha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widcha.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widenu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widenu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widenu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widenu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widenu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widenu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widenu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widenu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widint.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widint.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,54 ****
  
  --  Width attribute for signed integers up to Integer
  
- --  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 System.Width_I;
  
  package System.Wid_Int
    with SPARK_Mode
  is
- 
     function Width_Integer is new Width_I (Integer);
     pragma Pure_Function (Width_Integer);
- 
  end System.Wid_Int;
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widlli.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlli.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widlli.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlli.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widlli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widlli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,54 ****
  
  --  Width attribute for signed integers larger than Integer
  
- --  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 System.Width_I;
  
  package System.Wid_LLI
    with SPARK_Mode
  is
- 
     function Width_Long_Long_Integer is new Width_I (Long_Long_Integer);
     pragma Pure_Function (Width_Long_Long_Integer);
- 
  end System.Wid_LLI;
--- 31,41 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widllli.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllli.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widllli.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllli.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,55 ****
  
  --  Width attribute for signed integers larger than Long_Long_Integer
  
- --  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 System.Width_I;
  
  package System.Wid_LLLI
    with SPARK_Mode
  is
- 
     function Width_Long_Long_Long_Integer is
       new Width_I (Long_Long_Long_Integer);
     pragma Pure_Function (Width_Long_Long_Long_Integer);
- 
  end System.Wid_LLLI;
--- 31,42 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widlllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widlllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widlllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  
  --  Width attribute for modular integers larger than Long_Long_Integer
  
- --  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 System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widllu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widllu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widllu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widllu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widllu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  
  --  Width attribute for modular integers larger than Integer
  
- --  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 System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widthi.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthi.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widthi.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthi.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,137 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- use Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  function System.Width_I (Lo, Hi : Int) return Natural is
- 
-    --  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 (Ghost          => Ignore,
-                             Loop_Invariant => Ignore,
-                             Assert         => Ignore);
- 
-    -----------------------
-    -- Local Subprograms --
-    -----------------------
- 
-    package Signed_Conversion is new Signed_Conversions (Int => Int);
- 
-    function Big (Arg : Int) return Big_Integer renames
-      Signed_Conversion.To_Big_Integer;
- 
-    --  Maximum value of exponent for 10 that fits in Uns'Base
-    function Max_Log10 return Natural is
-      (case Int'Base'Size is
-         when 8   => 2,
-         when 16  => 4,
-         when 32  => 9,
-         when 64  => 19,
-         when 128 => 38,
-         when others => raise Program_Error)
-    with Ghost;
- 
-    ------------------
-    -- Local Lemmas --
-    ------------------
- 
-    procedure Lemma_Lower_Mult (A, B, C : Big_Natural)
-    with
-      Ghost,
-      Pre  => A <= B,
-      Post => A * C <= B * C;
- 
-    procedure Lemma_Div_Commutation (X, Y : Int)
-    with
-      Ghost,
-      Pre  => X >= 0 and Y > 0,
-      Post => Big (X) / Big (Y) = Big (X / Y);
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-    with
-      Ghost,
-      Post => X / Y / Z = X / (Y * Z);
- 
-    ----------------------
-    -- Lemma_Lower_Mult --
-    ----------------------
- 
-    procedure Lemma_Lower_Mult (A, B, C : Big_Natural) is null;
- 
-    ---------------------------
-    -- Lemma_Div_Commutation --
-    ---------------------------
- 
-    procedure Lemma_Div_Commutation (X, Y : Int) is null;
- 
-    ---------------------
-    -- Lemma_Div_Twice --
-    ---------------------
- 
-    procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-       XY  : constant Big_Natural := X / Y;
-       YZ  : constant Big_Natural := Y * Z;
-       XYZ : constant Big_Natural := X / Y / Z;
-       R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-    begin
-       pragma Assert (X = XY * Y + (X rem Y));
-       pragma Assert (XY = XY / Z * Z + (XY rem Z));
-       pragma Assert (X = XYZ * YZ + R);
-       pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-       pragma Assert (R <= YZ - 1);
-       pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-       pragma Assert (X / YZ = XYZ + R / YZ);
-    end Lemma_Div_Twice;
- 
-    --  Local variables
- 
     W : Natural;
     T : Int;
- 
-    --  Local ghost variables
- 
-    Max_W  : constant Natural := Max_Log10 with Ghost;
-    Big_10 : constant Big_Integer := Big (10) with Ghost;
- 
-    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
     if Lo > Hi then
        return 0;
--- 29,37 ----
*************** begin
*** 151,191 ****
        --  Increase value if more digits required
  
        while T >= 10 loop
-          Lemma_Div_Commutation (T, 10);
-          Lemma_Div_Twice (Big (T_Init), Big_10 ** (W - 2), Big_10);
- 
           T := T / 10;
           W := W + 1;
-          Pow := Pow * 10;
- 
-          pragma Loop_Invariant (T >= 0);
-          pragma Loop_Invariant (W in 3 .. Max_W + 3);
-          pragma Loop_Invariant (Pow = Big_10 ** (W - 2));
-          pragma Loop_Invariant (Big (T) = Big (T_Init) / Pow);
-          pragma Loop_Variant (Decreases => T);
        end loop;
  
-       declare
-          F : constant Big_Positive := Big_10 ** (W - 2) with Ghost;
-          Q : constant Big_Natural := Big (T_Init) / F with Ghost;
-          R : constant Big_Natural := Big (T_Init) rem F with Ghost;
-       begin
-          pragma Assert (Q < Big_10);
-          pragma Assert (Big (T_Init) = Q * F + R);
-          Lemma_Lower_Mult (Q, Big (9), F);
-          pragma Assert (Big (T_Init) <= Big (9) * F + F - 1);
-          pragma Assert (Big (T_Init) < Big_10 * F);
-          pragma Assert (Big_10 * F = Big_10 ** (W - 1));
-       end;
- 
-       --  This is an expression of the functional postcondition for Width_I,
-       --  which cannot be expressed readily as a postcondition as this would
-       --  require making the instantiation Signed_Conversion and function Big
-       --  available from the spec.
- 
-       pragma Assert (Big (Int'Max (Lo, Int'First + 1)) < Big_10 ** (W - 1));
-       pragma Assert (Big (Int'Max (Hi, Int'First + 1)) < Big_10 ** (W - 1));
- 
        return W;
     end if;
  
--- 51,60 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widthi.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthi.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widthi.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthi.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widthu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widthu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,140 ****
  
  package body System.Width_U is
  
-    --  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 (Ghost              => Ignore,
-                             Loop_Invariant     => Ignore,
-                             Assert             => Ignore,
-                             Assert_And_Cut     => Ignore,
-                             Subprogram_Variant => Ignore);
- 
     function Width (Lo, Hi : Uns) return Natural is
- 
-       --  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 (Ghost          => Ignore,
-                                Loop_Invariant => Ignore,
-                                Assert         => Ignore);
- 
-       ------------------
-       -- Local Lemmas --
-       ------------------
- 
-       procedure Lemma_Lower_Mult (A, B, C : Big_Natural)
-       with
-         Ghost,
-         Pre  => A <= B,
-         Post => A * C <= B * C;
- 
-       procedure Lemma_Div_Commutation (X, Y : Uns)
-       with
-         Ghost,
-         Pre  => Y /= 0,
-         Post => Big (X) / Big (Y) = Big (X / Y);
- 
-       procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive)
-       with
-         Ghost,
-         Post => X / Y / Z = X / (Y * Z);
- 
-       procedure Lemma_Euclidian (V, Q, F, R : Big_Integer)
-       with
-         Ghost,
-         Pre  => F > 0 and then Q = V / F and then R = V rem F,
-         Post => V = Q * F + R;
-       --  Ghost lemma to prove the relation between the quotient/remainder of
-       --  division by F and the value V.
- 
-       ----------------------
-       -- Lemma_Lower_Mult --
-       ----------------------
- 
-       procedure Lemma_Lower_Mult (A, B, C : Big_Natural) is null;
- 
-       ---------------------------
-       -- Lemma_Div_Commutation --
-       ---------------------------
- 
-       procedure Lemma_Div_Commutation (X, Y : Uns) is null;
- 
-       ---------------------
-       -- Lemma_Div_Twice --
-       ---------------------
- 
-       procedure Lemma_Div_Twice (X : Big_Natural; Y, Z : Big_Positive) is
-          XY  : constant Big_Natural := X / Y;
-          YZ  : constant Big_Natural := Y * Z;
-          XYZ : constant Big_Natural := X / Y / Z;
-          R   : constant Big_Natural := (XY rem Z) * Y + (X rem Y);
-       begin
-          pragma Assert (X = XY * Y + (X rem Y));
-          pragma Assert (XY = XY / Z * Z + (XY rem Z));
-          pragma Assert (X = XYZ * YZ + R);
-          pragma Assert ((XY rem Z) * Y <= (Z - 1) * Y);
-          pragma Assert (R <= YZ - 1);
-          pragma Assert (X / YZ = (XYZ * YZ + R) / YZ);
-          pragma Assert (X / YZ = XYZ + R / YZ);
-       end Lemma_Div_Twice;
- 
-       ---------------------
-       -- Lemma_Euclidian --
-       ---------------------
- 
-       procedure Lemma_Euclidian (V, Q, F, R : Big_Integer) is null;
- 
-       --  Local variables
- 
        W : Natural;
        T : Uns;
- 
-       --  Local ghost variables
- 
-       Max_W  : constant Natural := Max_Log10 with Ghost;
-       Pow    : Big_Integer := 1 with Ghost;
-       T_Init : constant Uns := Uns'Max (Lo, Hi) with Ghost;
- 
-    --  Start of processing for System.Width_U
- 
     begin
        if Lo > Hi then
           return 0;
- 
        else
           --  Minimum value is 2, one for space, one for digit
  
--- 31,42 ----
*************** package body System.Width_U is
*** 147,178 ****
           --  Increase value if more digits required
  
           while T >= 10 loop
-             Lemma_Div_Commutation (T, 10);
-             Lemma_Div_Twice (Big (T_Init), Big_10 ** (W - 2), Big_10);
- 
              T := T / 10;
              W := W + 1;
-             Pow := Pow * 10;
- 
-             pragma Loop_Invariant (W in 3 .. Max_W + 2);
-             pragma Loop_Invariant (Pow = Big_10 ** (W - 2));
-             pragma Loop_Invariant (Big (T) = Big (T_Init) / Pow);
-             pragma Loop_Variant (Decreases => T);
           end loop;
  
-          declare
-             F : constant Big_Integer := Big_10 ** (W - 2) with Ghost;
-             Q : constant Big_Integer := Big (T_Init) / F with Ghost;
-             R : constant Big_Integer := Big (T_Init) rem F with Ghost;
-          begin
-             pragma Assert (Q < Big_10);
-             Lemma_Euclidian (Big (T_Init), Q, F, R);
-             Lemma_Lower_Mult (Q, Big (9), F);
-             pragma Assert (Big (T_Init) <= Big (9) * F + F - 1);
-             pragma Assert (Big (T_Init) < Big_10 * F);
-             pragma Assert (Big_10 * F = Big_10 ** (W - 1));
-          end;
- 
           return W;
        end if;
     end Width;
--- 49,58 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widthu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widthu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widthu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,93 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- --  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,
-                          Subprogram_Variant => Ignore);
- 
  --  Compute Width attribute for non-static type derived from a modular integer
  --  type. The arguments Lo, Hi are the bounds of the type.
  
- with Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
- 
  generic
- 
     type Uns is mod <>;
  
  package System.Width_U
    with Pure
  is
!    package BI_Ghost renames Ada.Numerics.Big_Numbers.Big_Integers_Ghost;
!    subtype Big_Integer is BI_Ghost.Big_Integer with Ghost;
!    subtype Big_Natural is BI_Ghost.Big_Natural with Ghost;
!    subtype Big_Positive is BI_Ghost.Big_Positive with Ghost;
!    use type BI_Ghost.Big_Integer;
! 
!    package Unsigned_Conversion is
!      new BI_Ghost.Unsigned_Conversions (Int => Uns);
! 
!    function Big (Arg : Uns) return Big_Integer renames
!      Unsigned_Conversion.To_Big_Integer;
! 
!    Big_10 : constant Big_Integer := Big (Uns'(10)) with Ghost;
! 
!    --  Maximum value of exponent for 10 that fits in Uns'Base
!    function Max_Log10 return Natural is
!      (case Uns'Base'Size is
!         when 8   => 2,
!         when 16  => 4,
!         when 32  => 9,
!         when 64  => 19,
!         when 128 => 38,
!         when others => raise Program_Error)
!    with Ghost;
! 
!    function Width (Lo, Hi : Uns) return Natural
!    with
!      Post =>
!        (declare
!           W : constant Natural := System.Width_U.Width'Result;
!         begin
!           (if Lo > Hi then W = 0
!            else W > 0
!              and then W <= Max_Log10 + 2
!              and then Big (Lo) < Big_10 ** (W - 1)
!              and then Big (Hi) < Big_10 ** (W - 1)));
! 
  end System.Width_U;
--- 29,42 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  --  Compute Width attribute for non-static type derived from a modular integer
  --  type. The arguments Lo, Hi are the bounds of the type.
  
  generic
     type Uns is mod <>;
  
  package System.Width_U
    with Pure
  is
!    function Width (Lo, Hi : Uns) return Natural;
  end System.Width_U;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widuns.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widuns.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widuns.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widuns.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,47 ****
  
  --  Width attribute for modular integers up to Integer
  
- --  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 System.Width_U;
  with System.Unsigned_Types;
  
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widwch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widwch.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-widwch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widwch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-widwch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widwch.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-widwch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-widwch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-win32.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-win32.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-win32.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-win32.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-winext.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-winext.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-winext.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-winext.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --         Copyright (C) 2009-2026, Free Software Foundation, Inc.          --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdcha.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdcha.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdcha.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdcha.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdcha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdcha.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdcha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdcha.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                           --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdenu.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdenu.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdenu.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdenu.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdenu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdenu.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdenu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdenu.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdwch.adb gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdwch.adb
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdwch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdwch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/s-wwdwch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdwch.ads
*** gcc-15.2.0/gcc/ada/libgnat/s-wwdwch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/s-wwdwch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-aix.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-aix.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-aix.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-aix.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (AIX/PPC Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-darwin-arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-arm.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-darwin-arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/ARM Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-darwin-ppc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-ppc.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-darwin-ppc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-ppc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/PPC Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-darwin-x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-darwin-x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-darwin-x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (Darwin/x86 Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-djgpp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-djgpp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-djgpp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-djgpp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (DJGPP Version)                               --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-dragonfly-x86_64.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-dragonfly-x86_64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (DragonFly BSD/x86_64 Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-freebsd.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-freebsd.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-freebsd.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-freebsd.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (FreeBSD Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-gnu.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-gnu.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-gnu.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-gnu.ads	Thu Apr 23 11:07:32 2026
***************
*** 7,13 ****
  --                                 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (GNU/hurd Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-hpux-ia64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-hpux-ia64.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-hpux-ia64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-hpux-ia64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (HP-UX/ia64 Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-hpux.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-hpux.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-hpux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-hpux.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                             (HP-UX Version)                              --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-alpha.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-alpha.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-alpha.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-alpha.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/alpha Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-arm.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ARM Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-hppa.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-hppa.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-hppa.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-hppa.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU/Linux-HPPA Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-ia64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-ia64.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-ia64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-ia64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (GNU-Linux/ia64 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-loongarch.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-loongarch.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-loongarch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-loongarch.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (GNU-Linux/LoongArch Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-m68k.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-m68k.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-m68k.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-m68k.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU/Linux/m68k Version)                         --
  --                                                                          --
! --          Copyright (C) 2014-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-mips.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-mips.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-mips.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-mips.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/MIPS Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-ppc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-ppc.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-ppc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-ppc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/PPC Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-riscv.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-riscv.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-riscv.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-riscv.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/RISC-V Version)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-s390.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-s390.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-s390.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-s390.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU-Linux/s390 Version)                        --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-sh4.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-sh4.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-sh4.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-sh4.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/sh4 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-sparc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-sparc.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-sparc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-sparc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (GNU/Linux-SPARC Version)                       --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-linux-x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-linux-x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-linux-x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (GNU-Linux/x86 Version)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-lynxos178-ppc.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-lynxos178-ppc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-lynxos178-ppc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 PPC Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-lynxos178-x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-lynxos178-x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-lynxos178-x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (LynxOS-178 X86 Version)                         --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-mingw.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-mingw.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-mingw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-mingw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Windows Version)                             --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** private
*** 191,206 ****
     --  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.
--- 191,205 ----
     --  pragma Task_Dispatching_Policy (FIFO_Within_Priorities).
  
     Underlying_Priorities : constant Priorities_Mapping :=
!      (Priority'First ..
!       Default_Priority - 3    => -15,  --  Thread_Priority_Idle
!       Default_Priority - 2    => -2,   --  Thread_Priority_Lowest
!       Default_Priority - 1    => -1,   --  Thread_Priority_Below_Normal
!       Default_Priority        => 0,    --  Thread_Priority_Normal
!       Default_Priority + 1    => 1,    --  Thread_Priority_Above_Normal
!       Default_Priority + 2 ..
!       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.
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-qnx-arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-qnx-arm.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-qnx-arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-qnx-arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (QNX-ARM/AARCH64 Version)                         --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-rtems.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-rtems.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-rtems.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-rtems.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                            (Compiler Version)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 68,75 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := Standard'Storage_Unit;
--- 68,75 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := Standard'Storage_Unit;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-solaris-sparc.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-solaris-sparc.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-solaris-sparc.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-solaris-sparc.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (SUN Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-solaris-x86.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-solaris-x86.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-solaris-x86.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-solaris-x86.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (x86 Solaris Version)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 6 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 6.x SMP PPC RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 6.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                        (VxWorks 7.x AARCH64 RTP)                         --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** package System is
*** 120,128 ****
  
  private
  
-    pragma Linker_Options ("--specs=vxworks7-rtp-base-link.spec");
-    --  Define the symbol wrs_rtp_base
- 
     type Address is mod Memory_Size;
     for Address'Size use Standard'Address_Size;
  
--- 120,125 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-aarch64.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-aarch64.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7.x AARCH64 Kernel)                        --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                           (VxWorks 7 ARM RTP)                            --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-arm.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-arm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-arm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks Version ARM)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version PPC)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                          (VxWorks 7.x PPC RTP)                           --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** package System is
*** 120,128 ****
  
  private
  
-    pragma Linker_Options ("--specs=vxworks7-rtp-base-link.spec");
-    --  Define the symbol wrs_rtp_base
- 
     type Address is mod Memory_Size;
     for Address'Size use Standard'Address_Size;
  
--- 120,125 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                       (VxWorks 7.x PPC64 Kernel)                         --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                         (VxWorks 7.x PPC64 RTP)                          --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 66,73 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 66,73 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** package System is
*** 120,128 ****
  
  private
  
-    pragma Linker_Options ("--specs=vxworks7-ppc64-rtp-base-link.spec");
-    --  Define the symbol wrs_rtp_base
- 
     type Address is mod Memory_Size;
     for Address'Size use Standard'Address_Size;
  
--- 120,125 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                      (VxWorks 7 Kernel Version x86)                      --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                     (VxWorks 7 Version x86 for RTPs)                     --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** package System is
*** 118,126 ****
  
  private
  
-    pragma Linker_Options ("--specs=vxworks7-x86-rtp-base-link.spec");
-    --  Define the symbol wrs_rtp_base
- 
     type Address is mod Memory_Size;
     for Address'Size use Standard'Address_Size;
  
--- 118,123 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Kernel Version x86_64)                     --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
diff -Nrcpad gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
*** gcc-15.2.0/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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 --
--- 7,13 ----
  --                                 S p e c                                  --
  --                    (VxWorks 7 Version x86_64 for RTPs)                   --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, 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
*** 64,71 ****
  
     --  Storage-related Declarations
  
!    type Address is private;
!    pragma Preelaborable_Initialization (Address);
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
--- 64,71 ----
  
     --  Storage-related Declarations
  
!    type Address is private
!    with Preelaborable_Initialization;
     Null_Address : constant Address;
  
     Storage_Unit : constant := 8;
*************** package System is
*** 118,126 ****
  
  private
  
-    pragma Linker_Options ("--specs=vxworks7-x86_64-rtp-base-link.spec");
-    --  Define the symbol wrs_rtp_base
- 
     type Address is mod Memory_Size;
     for Address'Size use Standard'Address_Size;
  
--- 118,123 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/link.c gcc-16.1.0-RC-20260423/gcc/ada/link.c
*** gcc-15.2.0/gcc/ada/link.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/link.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/live.adb gcc-16.1.0-RC-20260423/gcc/ada/live.adb
*** gcc-15.2.0/gcc/ada/live.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/live.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ****
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Lib;            use Lib;
  with Nlists;         use Nlists;
  with Sem_Aux;        use Sem_Aux;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Types;          use Types;
--- 24,35 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/live.ads gcc-16.1.0-RC-20260423/gcc/ada/live.ads
*** gcc-15.2.0/gcc/ada/live.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/live.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/local_restrict.adb gcc-16.1.0-RC-20260423/gcc/ada/local_restrict.adb
*** gcc-15.2.0/gcc/ada/local_restrict.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/local_restrict.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Aspects;        use Aspects;
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 25,30 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/local_restrict.ads gcc-16.1.0-RC-20260423/gcc/ada/local_restrict.ads
*** gcc-15.2.0/gcc/ada/local_restrict.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/local_restrict.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/locales.c gcc-16.1.0-RC-20260423/gcc/ada/locales.c
*** gcc-15.2.0/gcc/ada/locales.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/locales.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2010-2026, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** str_get_last_byte (char *lc_all) {
*** 646,652 ****
    return last_byte;
  }
  
! /* Utility function to search in the iso_639_1 table for an iso-639-1 code;
     returns the corresponding iso-639-3 code or NULL if not found. */
  
  static char*
--- 646,652 ----
    return last_byte;
  }
  
! /* Utility function to search in the iso_639 table for an iso-639-1 code;
     returns the corresponding iso-639-3 code or NULL if not found. */
  
  static char*
*************** iso_639_1_to_639_3(char* iso_639_1_code)
*** 670,676 ****
    return NULL;
  }
  
! /* Utility function to search in the iso_639_1 table for a language name;
     returns the corresponding iso-639-3 code or NULL if not found. */
  
  static char*
--- 670,699 ----
    return NULL;
  }
  
! /* Utility function to search in the iso_639 table for an iso-639-3 code;
!    returns 1 if found or 0 if not found. */
! 
! static int
! is_iso_639_3(char* iso_639_3_code) {
!   int len = ARRAY_SIZE (iso_639);
!   char **p = iso_639;
!   int j;
! 
!   p = p + 1;
!   for (j=0; j < len/3; j++) {
!     char* s1 = iso_639_3_code;
!     char* s2 = *p;
! 
!     if (s1[0]==s2[0] && s1[1]==s2[1] && s1[2]==s2[2])
!       return 1;
! 
!     p = p + 3;
!   }
! 
!   return 0;
! }
! 
! /* Utility function to search in the iso_639 table for a language name;
     returns the corresponding iso-639-3 code or NULL if not found. */
  
  static char*
*************** c_get_language_code (char4 p) {
*** 772,778 ****
      /* Copy the ISO-639-3 code (adding a null terminator) */
  
      } else if (lang_length == 3) {
!       str_copy(iso_639_3_code, lc_all, lang_length);
  
      /* Handle conversion of language name to ISO-639-3 */
  
--- 795,802 ----
      /* Copy the ISO-639-3 code (adding a null terminator) */
  
      } else if (lang_length == 3) {
!       if (is_iso_639_3(lc_all))
!         str_copy(iso_639_3_code, lc_all, lang_length);
  
      /* Handle conversion of language name to ISO-639-3 */
  
diff -Nrcpad gcc-15.2.0/gcc/ada/make.adb gcc-16.1.0-RC-20260423/gcc/ada/make.adb
*** gcc-15.2.0/gcc/ada/make.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/make.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/make.ads gcc-16.1.0-RC-20260423/gcc/ada/make.ads
*** gcc-15.2.0/gcc/ada/make.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/make.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/make_util.adb gcc-16.1.0-RC-20260423/gcc/ada/make_util.adb
*** gcc-15.2.0/gcc/ada/make_util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/make_util.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/make_util.ads gcc-16.1.0-RC-20260423/gcc/ada/make_util.ads
*** gcc-15.2.0/gcc/ada/make_util.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/make_util.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2004-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/makeusg.adb gcc-16.1.0-RC-20260423/gcc/ada/makeusg.adb
*** gcc-15.2.0/gcc/ada/makeusg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/makeusg.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/makeusg.ads gcc-16.1.0-RC-20260423/gcc/ada/makeusg.ads
*** gcc-15.2.0/gcc/ada/makeusg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/makeusg.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll-fil.adb gcc-16.1.0-RC-20260423/gcc/ada/mdll-fil.adb
*** gcc-15.2.0/gcc/ada/mdll-fil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll-fil.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll-fil.ads gcc-16.1.0-RC-20260423/gcc/ada/mdll-fil.ads
*** gcc-15.2.0/gcc/ada/mdll-fil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll-fil.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll-utl.adb gcc-16.1.0-RC-20260423/gcc/ada/mdll-utl.adb
*** gcc-15.2.0/gcc/ada/mdll-utl.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll-utl.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll-utl.ads gcc-16.1.0-RC-20260423/gcc/ada/mdll-utl.ads
*** gcc-15.2.0/gcc/ada/mdll-utl.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll-utl.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll.adb gcc-16.1.0-RC-20260423/gcc/ada/mdll.adb
*** gcc-15.2.0/gcc/ada/mdll.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mdll.ads gcc-16.1.0-RC-20260423/gcc/ada/mdll.ads
*** gcc-15.2.0/gcc/ada/mdll.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mdll.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/mingw32.h gcc-16.1.0-RC-20260423/gcc/ada/mingw32.h
*** gcc-15.2.0/gcc/ada/mingw32.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mingw32.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2002-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 UINT __gnat_current_ccs_encoding;
*** 95,98 ****
--- 95,105 ----
  #define WS2S(str,wstr,len) strncpy(str,wstr,len)
  #endif
  
+ typedef HRESULT (WINAPI *SetThreadDescription_t)(
+     _In_ HANDLE hThread,
+     _In_ PCWSTR lpThreadDescription
+ );
+ 
+ extern SetThreadDescription_t pSetThreadDescription;
+ 
  #endif /* _MINGW32_H */
diff -Nrcpad gcc-15.2.0/gcc/ada/mkdir.c gcc-16.1.0-RC-20260423/gcc/ada/mkdir.c
*** gcc-15.2.0/gcc/ada/mkdir.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mkdir.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 2002-2026, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/mutably_tagged.adb gcc-16.1.0-RC-20260423/gcc/ada/mutably_tagged.adb
*** gcc-15.2.0/gcc/ada/mutably_tagged.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mutably_tagged.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2024-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  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;
--- 25,30 ----
*************** with Nmake;          use Nmake;
*** 35,41 ****
  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;
--- 34,39 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/mutably_tagged.ads gcc-16.1.0-RC-20260423/gcc/ada/mutably_tagged.ads
*** gcc-15.2.0/gcc/ada/mutably_tagged.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/mutably_tagged.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2024-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/namet-sp.adb gcc-16.1.0-RC-20260423/gcc/ada/namet-sp.adb
*** gcc-15.2.0/gcc/ada/namet-sp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/namet-sp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2008-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/namet-sp.ads gcc-16.1.0-RC-20260423/gcc/ada/namet-sp.ads
*** gcc-15.2.0/gcc/ada/namet-sp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/namet-sp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/namet.adb gcc-16.1.0-RC-20260423/gcc/ada/namet.adb
*** gcc-15.2.0/gcc/ada/namet.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/namet.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1297,1325 ****
     -- Present --
     -------------
  
-    function Present (Nam : File_Name_Type) return Boolean is
-    begin
-       return Nam /= No_File;
-    end Present;
- 
-    -------------
-    -- Present --
-    -------------
- 
     function Present (Nam : Name_Id) return Boolean is
     begin
        return Nam /= No_Name;
     end Present;
  
-    -------------
-    -- Present --
-    -------------
- 
-    function Present (Nam : Unit_Name_Type) return Boolean is
-    begin
-       return Nam /= No_Unit_Name;
-    end Present;
- 
     ------------------
     -- Reinitialize --
     ------------------
--- 1297,1307 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/namet.ads gcc-16.1.0-RC-20260423/gcc/ada/namet.ads
*** gcc-15.2.0/gcc/ada/namet.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/namet.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 504,513 ****
     --  Constant used to indicate no file is present (this is used for example
     --  when a search for a file indicates that no file of the name exists).
  
-    function Present (Nam : File_Name_Type) return Boolean;
-    pragma Inline (Present);
-    --  Determine whether file name Nam exists
- 
     Error_File_Name : constant File_Name_Type := File_Name_Type (Error_Name);
     --  The special File_Name_Type value Error_File_Name is used to indicate
     --  a unit name where some previous processing has found an error.
--- 504,509 ----
*************** package Namet is
*** 532,541 ****
     No_Unit_Name : constant Unit_Name_Type := Unit_Name_Type (No_Name);
     --  Constant used to indicate no file name present
  
-    function Present (Nam : Unit_Name_Type) return Boolean;
-    pragma Inline (Present);
-    --  Determine whether unit name Nam exists
- 
     Error_Unit_Name : constant Unit_Name_Type := Unit_Name_Type (Error_Name);
     --  The special Unit_Name_Type value Error_Unit_Name is used to indicate
     --  a unit name where some previous processing has found an error.
--- 528,533 ----
*************** private
*** 609,614 ****
--- 601,607 ----
        --  Int Value associated with this name
  
     end record;
+    --  The aliased non-boolean components are required to match the C structure
  
     for Name_Entry use record
        Name_Chars_Index      at  0 range 0 .. 31;
*************** private
*** 622,630 ****
        Hash_Link             at  8 range 0 .. 31;
        Int_Info              at 12 range 0 .. 31;
     end record;
  
     for Name_Entry'Size use 16 * 8;
!    --  This ensures that we did not leave out any fields
  
     --  This is the table that is referenced by Valid_Name_Id entries.
     --  It contains one entry for each unique name in the table.
--- 615,624 ----
        Hash_Link             at  8 range 0 .. 31;
        Int_Info              at 12 range 0 .. 31;
     end record;
+    --  This ensures a matching layout between Ada and C
  
     for Name_Entry'Size use 16 * 8;
!    --  This ensures that record is reasonably small
  
     --  This is the table that is referenced by Valid_Name_Id entries.
     --  It contains one entry for each unique name in the table.
diff -Nrcpad gcc-15.2.0/gcc/ada/namet.h gcc-16.1.0-RC-20260423/gcc/ada/namet.h
*** gcc-15.2.0/gcc/ada/namet.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/namet.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/nlists.adb gcc-16.1.0-RC-20260423/gcc/ada/nlists.adb
*** gcc-15.2.0/gcc/ada/nlists.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/nlists.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Alloc;
*** 30,36 ****
  with Atree;       use Atree;
  with Debug;       use Debug;
  with Output;      use Output;
- with Sinfo;       use Sinfo;
  with Sinfo.Nodes; use Sinfo.Nodes;
  with Table;
  
--- 30,35 ----
*************** package body Nlists is
*** 125,143 ****
     --------------------------
  
     procedure Allocate_List_Tables (N : Node_Or_Entity_Id) is
-       Old_Last : constant Node_Or_Entity_Id'Base := Next_Node.Last;
- 
     begin
!       pragma Assert (N >= Old_Last);
        Next_Node.Set_Last (N);
        Prev_Node.Set_Last (N);
- 
-       --  Make sure we have no uninitialized junk in any new entries added.
- 
-       for J in Old_Last + 1 .. N loop
-          Next_Node.Table (J) := Empty;
-          Prev_Node.Table (J) := Empty;
-       end loop;
     end Allocate_List_Tables;
  
     ------------
--- 124,133 ----
     --------------------------
  
     procedure Allocate_List_Tables (N : Node_Or_Entity_Id) is
     begin
!       pragma Assert (N >= Next_Node.Last);
        Next_Node.Set_Last (N);
        Prev_Node.Set_Last (N);
     end Allocate_List_Tables;
  
     ------------
diff -Nrcpad gcc-15.2.0/gcc/ada/nlists.ads gcc-16.1.0-RC-20260423/gcc/ada/nlists.ads
*** gcc-15.2.0/gcc/ada/nlists.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/nlists.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/nlists.h gcc-16.1.0-RC-20260423/gcc/ada/nlists.h
*** gcc-15.2.0/gcc/ada/nlists.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/nlists.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/opt.adb gcc-16.1.0-RC-20260423/gcc/ada/opt.adb
*** gcc-15.2.0/gcc/ada/opt.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/opt.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Opt is
*** 204,217 ****
              SPARK_Mode_Pragma        := SPARK_Mode_Pragma_Config;
  
           else
!             --  In GNATprove mode assertions should be always enabled, even
!             --  when analysing internal units.
! 
!             if GNATprove_Mode then
!                pragma Assert (Assertions_Enabled);
!                null;
! 
!             elsif GNAT_Mode_Config then
                 Assertions_Enabled    := Assertions_Enabled_Config;
              else
                 Assertions_Enabled    := False;
--- 204,210 ----
              SPARK_Mode_Pragma        := SPARK_Mode_Pragma_Config;
  
           else
!             if GNAT_Mode_Config then
                 Assertions_Enabled    := Assertions_Enabled_Config;
              else
                 Assertions_Enabled    := False;
diff -Nrcpad gcc-15.2.0/gcc/ada/opt.ads gcc-16.1.0-RC-20260423/gcc/ada/opt.ads
*** gcc-15.2.0/gcc/ada/opt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/opt.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 308,313 ****
--- 308,317 ----
     --  GNATMAKE
     --  Set to True to check readonly files during the make process
  
+    Check_Semantics_Only_Mode : Boolean := False;
+    --  GNATMAKE
+    --  Set to True when -gnatc is present to only perform semantic checking.
+ 
     Check_Source_Files : Boolean := True;
     --  GNATBIND, GNATMAKE
     --  Set to True to enable consistency checking for any source files that
*************** package Opt is
*** 334,340 ****
     --  True if echoed commands to be written to stdout instead of stderr
  
     Comment_Deleted_Lines : Boolean := False;
!    --  GNATPREP
     --  True if source lines removed by the preprocessor should be commented
     --  in the output file.
  
--- 338,344 ----
     --  True if echoed commands to be written to stdout instead of stderr
  
     Comment_Deleted_Lines : Boolean := False;
!    --  GNAT, GNATPREP
     --  True if source lines removed by the preprocessor should be commented
     --  in the output file.
  
*************** package Opt is
*** 505,510 ****
--- 509,519 ----
     --  GNATBIND
     --  Set to True to output chosen elaboration order
  
+    Empty_Comment_Deleted_Lines : Boolean := False;
+    --  GNAT, GNATPREP
+    --  True if source lines removed by the preprocessor are to be replaced
+    --  by empty comment lines ("--!" and no other text) in the output file.
+ 
     Enable_128bit_Types : Boolean := False;
     --  GNAT
     --  Set to True to enable the support for 128-bit types in the compiler.
*************** package Opt is
*** 742,750 ****
     --  Possible legal modes that can be set by aspect/pragma Ghost as well as
     --  value None, which indicates that no such aspect/pragma applies.
  
!    Ghost_Mode : Ghost_Mode_Type := None;
     --  GNAT
!    --  The current Ghost mode in effect
  
     Global_Discard_Names : Boolean := False;
     --  GNAT, GNATBIND
--- 751,788 ----
     --  Possible legal modes that can be set by aspect/pragma Ghost as well as
     --  value None, which indicates that no such aspect/pragma applies.
  
!    type Ghost_Config_Type is record
!       Ghost_Mode : Ghost_Mode_Type := None;
!       --  The current Ghost mode in effect
! 
!       Ignored_Ghost_Region : Node_Id := Empty;
!       --  The start of the current ignored Ghost region. This value must always
!       --  reflect the starting node of the outermost ignored Ghost region. If a
!       --  nested ignored Ghost region is entered, the value must remain
!       --  unchanged.
! 
!       Ghost_Mode_Assertion_Level : Entity_Id := Empty;
!       --  The Assertion_Level that is applied to the current ghost region.
!       --  It is either:
!       --  * Empty - when there is no ghost region
!       --  * Assertion_Level - if the ghost aspect/pragama had an
!       --    Assertion_Levle associated with it.
!       --  * Standard_Default_Level - if the ghost aspect/pragama did not have
!       --    an Assertion_Level associated to it.
! 
!       Current_Region : Node_Id := Empty;
!       --  Latest ghost region
! 
!       Is_Inside_Statement_Or_Pragma : Boolean := False;
!       --  A flag to tag whether we are currently in a region that originated
!       --  from a Statement or a pragma. Inside those regions the ghost policy
!       --  in effect for implicitly defined entities is not the policy for Ghost
!       --  but instead the policy for the region (SPARK RM 6.9 (3)).
!    end record;
! 
!    Ghost_Config : Ghost_Config_Type;
     --  GNAT
!    --  All relevant Ghost mode settings
  
     Global_Discard_Names : Boolean := False;
     --  GNAT, GNATBIND
*************** package Opt is
*** 806,822 ****
     --  use of -gnateu, causing subsequent unrecognized switches to result in
     --  a warning rather than an error.
  
-    Ignored_Ghost_Region : Node_Id := Empty;
-    --  GNAT
-    --  The start of the current ignored Ghost region. This value must always
-    --  reflect the starting node of the outermost ignored Ghost region. If a
-    --  nested ignored Ghost region is entered, the value must remain unchanged.
- 
     Implicit_Packing : Boolean := False;
     --  GNAT
!    --  If set True, then a Size attribute clause on an array is allowed to
!    --  cause implicit packing instead of generating an error message. Set by
!    --  use of pragma Implicit_Packing.
  
     Init_Or_Norm_Scalars : Boolean := False;
     --  GNAT, GNATBIND
--- 844,854 ----
     --  use of -gnateu, causing subsequent unrecognized switches to result in
     --  a warning rather than an error.
  
     Implicit_Packing : Boolean := False;
     --  GNAT
!    --  If set True, then a Size attribute clause on an array or record is
!    --  allowed to cause implicit packing instead of generating an error
!    --  message. Set by use of pragma Implicit_Packing.
  
     Init_Or_Norm_Scalars : Boolean := False;
     --  GNAT, GNATBIND
*************** package Opt is
*** 939,944 ****
--- 971,991 ----
  
     --  WARNING: There is a matching C declaration of this variable in fe.h
  
+    List_Representation_Info_Extended : Boolean := False;
+    --  GNAT
+    --  Set true by -gnatRe switch. Causes extended information for record types
+    --  to be included in the representation output information.
+ 
+    List_Representation_Info_Holes : Boolean := False;
+    --  GNAT
+    --  Set true by -gnatRh switch. Causes information for holes between record
+    --  components to be included in the representation output information.
+ 
+    List_Representation_Info_Mechanisms : Boolean := False;
+    --  GNAT
+    --  Set true by -gnatRm switch. Causes information on mechanisms to be
+    --  included in the representation output information.
+ 
     List_Representation_Info_To_File : Boolean := False;
     --  GNAT
     --  Set true by -gnatRs switch. Causes information from -gnatR[1-4]m to be
*************** package Opt is
*** 951,966 ****
     --  Set true by -gnatRj switch. Causes information from -gnatR[1-4]m to be
     --  output in the JSON data interchange format.
  
-    List_Representation_Info_Mechanisms : Boolean := False;
-    --  GNAT
-    --  Set true by -gnatRm switch. Causes information on mechanisms to be
-    --  included in the representation output information.
- 
-    List_Representation_Info_Extended : Boolean := False;
-    --  GNAT
-    --  Set true by -gnatRe switch. Causes extended information for record types
-    --  to be included in the representation output information.
- 
     List_Preprocessing_Symbols : Boolean := False;
     --  GNAT, GNATPREP
     --  Set to True if symbols for preprocessing a source are to be listed
--- 998,1003 ----
*************** package Opt is
*** 1518,1527 ****
     --  used for inconsistency error messages. A value of System_Location is
     --  used if the policy is set in package System.
  
-    Tasking_Used : Boolean := False;
-    --  Set True if any tasking construct is encountered. Used to activate the
-    --  output of the Q, L and T lines in ALI files.
- 
     Time_Slice_Set : Boolean := False;
     --  GNATBIND
     --  Set True if a pragma Time_Slice is processed in the main unit, or
--- 1555,1560 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-b.adb gcc-16.1.0-RC-20260423/gcc/ada/osint-b.adb
*** gcc-15.2.0/gcc/ada/osint-b.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-b.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-b.ads gcc-16.1.0-RC-20260423/gcc/ada/osint-b.ads
*** gcc-15.2.0/gcc/ada/osint-b.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-b.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-c.adb gcc-16.1.0-RC-20260423/gcc/ada/osint-c.adb
*** gcc-15.2.0/gcc/ada/osint-c.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-c.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-c.ads gcc-16.1.0-RC-20260423/gcc/ada/osint-c.ads
*** gcc-15.2.0/gcc/ada/osint-c.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-c.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-l.adb gcc-16.1.0-RC-20260423/gcc/ada/osint-l.adb
*** gcc-15.2.0/gcc/ada/osint-l.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-l.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-l.ads gcc-16.1.0-RC-20260423/gcc/ada/osint-l.ads
*** gcc-15.2.0/gcc/ada/osint-l.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-l.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-m.adb gcc-16.1.0-RC-20260423/gcc/ada/osint-m.adb
*** gcc-15.2.0/gcc/ada/osint-m.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-m.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint-m.ads gcc-16.1.0-RC-20260423/gcc/ada/osint-m.ads
*** gcc-15.2.0/gcc/ada/osint-m.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint-m.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/osint.adb gcc-16.1.0-RC-20260423/gcc/ada/osint.adb
*** gcc-15.2.0/gcc/ada/osint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 64,69 ****
--- 64,77 ----
     --  Used in Locate_File as a fake directory when Name is already an
     --  absolute path.
  
+    procedure Get_Current_Dir
+      (Dir : System.Address; Length : System.Address);
+    pragma Import (C, Get_Current_Dir, "__gnat_get_current_dir");
+ 
+    Max_Path : Integer;
+    pragma Import (C, Max_Path, "__gnat_max_path_len");
+    --  Maximum length of a path name
+ 
     -------------------------------------
     -- Use of Name_Find and Name_Enter --
     -------------------------------------
*************** package body Osint is
*** 1426,1431 ****
--- 1434,1457 ----
        Smart_Find_File (N, Source, Full_File, Attr.all);
     end Full_Source_Name;
  
+    ---------------------
+    -- Get_Current_Dir --
+    ---------------------
+ 
+    function Get_Current_Dir return String is
+       Path_Len : Natural := Max_Path;
+       Buffer   : String (1 .. 1 + Max_Path + 1);
+ 
+    begin
+       Get_Current_Dir (Buffer'Address, Path_Len'Address);
+ 
+       if Path_Len = 0 then
+          raise Program_Error;
+       end if;
+ 
+       return Buffer (1 .. Path_Len);
+    end Get_Current_Dir;
+ 
     -------------------
     -- Get_Directory --
     -------------------
*************** package body Osint is
*** 1517,1531 ****
       (Search_Dir : String;
        File_Type  : Search_File_Type) return String_Ptr
     is
-       procedure Get_Current_Dir
-         (Dir    : System.Address;
-          Length : System.Address);
-       pragma Import (C, Get_Current_Dir, "__gnat_get_current_dir");
- 
-       Max_Path : Integer;
-       pragma Import (C, Max_Path, "__gnat_max_path_len");
-       --  Maximum length of a path name
- 
        Current_Dir        : String_Ptr;
        Default_Search_Dir : String_Access;
        Default_Suffix_Dir : String_Access;
--- 1543,1548 ----
*************** package body Osint is
*** 2732,2737 ****
--- 2749,2832 ----
     end Read_Source_File;
  
     -------------------
+    -- Relative_Path --
+    -------------------
+ 
+    function Relative_Path (Path : String; Ref : String) return String is
+       Norm_Path : constant String :=
+         Normalize_Pathname (Name => Path, Resolve_Links => False);
+       Norm_Ref  : constant String :=
+         Normalize_Pathname (Name => Ref, Resolve_Links => False);
+       Rel_Path : Bounded_String;
+       Last     : Natural := Norm_Ref'Last;
+       Old      : Natural;
+       Depth    : Natural := 0;
+ 
+    begin
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Norm_Path));
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Norm_Ref));
+       pragma Assert (System.OS_Lib.Is_Directory (Norm_Ref));
+ 
+       --  If the root drives are different on Windows then we cannot create a
+       --  relative path.
+ 
+       if Root (Norm_Path) /= Root (Norm_Ref) then
+          return Norm_Path;
+       end if;
+ 
+       if Norm_Path = Norm_Ref then
+          return ".";
+       end if;
+ 
+       loop
+          exit when Last - Norm_Ref'First + 1 <= Norm_Path'Length
+            and then
+              Norm_Path
+                (Norm_Path'First ..
+                     Norm_Path'First + Last - Norm_Ref'First) =
+              Norm_Ref (Norm_Ref'First .. Last);
+ 
+          Old := Last;
+          for J in reverse Norm_Ref'First .. Last - 1 loop
+             if Is_Directory_Separator (Norm_Ref (J)) then
+                Depth := Depth + 1;
+                Last  := J;
+                exit;
+             end if;
+          end loop;
+ 
+          if Old = Last then
+             --  No Dir_Separator in Ref... Let's return Path
+             return Norm_Path;
+          end if;
+       end loop;
+ 
+       --  Move up the directory chain to the common point
+ 
+       for I in 1 .. Depth loop
+          Append (Rel_Path, ".." & System.OS_Lib.Directory_Separator);
+       end loop;
+ 
+       --  Avoid starting the relative path with a directory separator
+ 
+       if Last < Norm_Path'Length
+         and then Is_Directory_Separator (Norm_Path (Norm_Path'First + Last))
+       then
+          Last := Last + 1;
+       end if;
+ 
+       --  Add the rest of the path from the common point
+ 
+       Append
+         (Rel_Path,
+          Norm_Path
+            (Norm_Path'First + Last - Norm_Ref'First + 1 ..
+                 Norm_Path'Last));
+ 
+       return To_String (Rel_Path);
+    end Relative_Path;
+ 
+    -------------------
     -- Relocate_Path --
     -------------------
  
*************** package body Osint is
*** 2788,2793 ****
--- 2883,2907 ----
        return new String'(Path);
     end Relocate_Path;
  
+    ----------
+    -- Root --
+    ----------
+ 
+    function Root (Path : String) return String is
+       Last : Natural := Path'First;
+    begin
+       pragma Assert (System.OS_Lib.Is_Absolute_Path (Path));
+ 
+       for I in Path'Range loop
+          if Is_Directory_Separator (Path (I)) then
+             Last := I;
+             exit;
+          end if;
+       end loop;
+ 
+       return Path (Path'First .. Last);
+    end Root;
+ 
     -----------------
     -- Set_Program --
     -----------------
diff -Nrcpad gcc-15.2.0/gcc/ada/osint.ads gcc-16.1.0-RC-20260423/gcc/ada/osint.ads
*** gcc-15.2.0/gcc/ada/osint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/osint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 is
*** 166,171 ****
--- 166,174 ----
     function Is_Directory_Separator (C : Character) return Boolean;
     --  Returns True if C is a directory separator
  
+    function Get_Current_Dir return String;
+    --  Returns the current working directory for the execution environment
+ 
     function Get_Directory (Name : File_Name_Type) return File_Name_Type;
     --  Get the prefix directory name (if any) from Name. The last separator
     --  is preserved. Return the normalized current directory if there is no
*************** package Osint is
*** 230,235 ****
--- 233,247 ----
       (Canonical_File : String) return String_Access;
     --  Convert a canonical syntax file specification to host syntax
  
+    function Relative_Path (Path : String; Ref : String) return String;
+    --  Given an absolute path Path calculate its relative path from a reference
+    --  directory Ref.
+    --
+    --  If the paths are the same it will return ".".
+    --
+    --  If the paths are on different drives on Windows based systems then it
+    --  will return the normalized version of Path.
+ 
     function Relocate_Path
       (Prefix : String;
        Path   : String) return String_Ptr;
*************** package Osint is
*** 243,248 ****
--- 255,263 ----
     --  If the above computation fails, return Path. This function assumes
     --  Prefix'First = Path'First.
  
+    function Root (Path : String) return String;
+    --  Return the root of an absolute Path.
+ 
     function Shared_Lib (Name : String) return String;
     --  Returns the runtime shared library in the form -l<name>-<version> where
     --  version is the GNAT runtime library option for the platform. For example
diff -Nrcpad gcc-15.2.0/gcc/ada/output.adb gcc-16.1.0-RC-20260423/gcc/ada/output.adb
*** gcc-15.2.0/gcc/ada/output.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/output.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/output.ads gcc-16.1.0-RC-20260423/gcc/ada/output.ads
*** gcc-15.2.0/gcc/ada/output.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/output.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch10.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch10.adb
*** gcc-15.2.0/gcc/ada/par-ch10.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch10.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 925,931 ****
                    --  then the compilation of the child unit itself is the
                    --  place where such an "error" should be caught.
  
!                   Set_Name (With_Node, P_Qualified_Simple_Name);
                    if Name (With_Node) = Error then
                       Remove (With_Node);
                    end if;
--- 925,931 ----
                    --  then the compilation of the child unit itself is the
                    --  place where such an "error" should be caught.
  
!                   Set_Name (With_Node, P_Library_Unit_Name);
                    if Name (With_Node) = Error then
                       Remove (With_Node);
                    end if;
*************** package body Ch10 is
*** 1038,1044 ****
        Scan; -- past SEPARATE;
  
        U_Left_Paren;
!       Set_Name (Subunit_Node, P_Qualified_Simple_Name);
        U_Right_Paren;
  
        Ignore (Tok_Semicolon);
--- 1038,1044 ----
        Scan; -- past SEPARATE;
  
        U_Left_Paren;
!       Set_Name (Subunit_Node, P_Parent_Unit_Name);
        U_Right_Paren;
  
        Ignore (Tok_Semicolon);
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch11.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch11.adb
*** gcc-15.2.0/gcc/ada/par-ch11.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch11.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch12.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch12.adb
*** gcc-15.2.0/gcc/ada/par-ch12.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch12.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 124,129 ****
--- 124,131 ----
              Check_Misspelling_Of (Tok_Renames);
  
              if Token = Tok_Renames then
+                Scan; -- past RENAMES
+ 
                 if Ren_Token = Tok_Package then
                    Decl_Node := New_Node
                      (N_Generic_Package_Renaming_Declaration, Gen_Sloc);
*************** package body Ch12 is
*** 137,146 ****
                      (N_Generic_Function_Renaming_Declaration, Gen_Sloc);
                 end if;
  
-                Scan; -- past RENAMES
                 Set_Defining_Unit_Name (Decl_Node, Def_Unit);
!                Set_Name (Decl_Node, P_Name);
! 
                 P_Aspect_Specifications (Decl_Node, Semicolon => False);
                 TF_Semicolon;
                 return Decl_Node;
--- 139,146 ----
                      (N_Generic_Function_Renaming_Declaration, Gen_Sloc);
                 end if;
  
                 Set_Defining_Unit_Name (Decl_Node, Def_Unit);
!                Set_Name (Decl_Node, P_Generic_Unit_Name);
                 P_Aspect_Specifications (Decl_Node, Semicolon => False);
                 TF_Semicolon;
                 return Decl_Node;
*************** package body Ch12 is
*** 420,451 ****
  
     procedure P_Formal_Object_Declarations (Decls : List_Id) is
        Decl_Node        : Node_Id;
-       Ident            : Pos;
        Not_Null_Present : Boolean := False;
-       Num_Idents       : Pos;
        Scan_State       : Saved_Scan_State;
  
!       Idents : array (Pos range 1 .. 4096) of Entity_Id;
!       --  This array holds the list of defining identifiers. The upper bound
!       --  of 4096 is intended to be essentially infinite, and we do not even
!       --  bother to check for it being exceeded.
  
     begin
!       Idents (1) := P_Defining_Identifier (C_Comma_Colon);
!       Num_Idents := 1;
!       while Comma_Present loop
!          Num_Idents := Num_Idents + 1;
!          Idents (Num_Idents) := P_Defining_Identifier (C_Comma_Colon);
!       end loop;
! 
        T_Colon;
  
!       --  If there are multiple identifiers, we repeatedly scan the
!       --  type and initialization expression information by resetting
!       --  the scan pointer (so that we get completely separate trees
!       --  for each occurrence).
! 
!       if Num_Idents > 1 then
           Save_Scan_State (Scan_State);
        end if;
  
--- 420,436 ----
  
     procedure P_Formal_Object_Declarations (Decls : List_Id) is
        Decl_Node        : Node_Id;
        Not_Null_Present : Boolean := False;
        Scan_State       : Saved_Scan_State;
  
!       Def_Ids : Defining_Identifiers;
!       Ident   : Pos;
  
     begin
!       P_Def_Ids (Def_Ids);
        T_Colon;
  
!       if Def_Ids.Num_Idents > 1 then
           Save_Scan_State (Scan_State);
        end if;
  
*************** package body Ch12 is
*** 454,460 ****
        Ident := 1;
        Ident_Loop : loop
           Decl_Node := New_Node (N_Formal_Object_Declaration, Token_Ptr);
!          Set_Defining_Identifier (Decl_Node, Idents (Ident));
           P_Mode (Decl_Node);
  
           Not_Null_Present := P_Null_Exclusion;  --  Ada 2005 (AI-423)
--- 439,445 ----
        Ident := 1;
        Ident_Loop : loop
           Decl_Node := New_Node (N_Formal_Object_Declaration, Token_Ptr);
!          Set_Defining_Identifier (Decl_Node, Def_Ids.Idents (Ident));
           P_Mode (Decl_Node);
  
           Not_Null_Present := P_Null_Exclusion;  --  Ada 2005 (AI-423)
*************** package body Ch12 is
*** 481,500 ****
           end if;
  
           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);
           end if;
  
!          if Ident < Num_Idents then
              Set_More_Ids (Decl_Node, True);
           end if;
  
           Append (Decl_Node, Decls);
  
!          exit Ident_Loop when Ident = Num_Idents;
           Ident := Ident + 1;
           Restore_Scan_State (Scan_State);
        end loop Ident_Loop;
--- 466,485 ----
           end if;
  
           No_Constraint;
!          Set_Expression (Decl_Node, Init_Expr_Opt);
           P_Aspect_Specifications (Decl_Node, Semicolon => True);
  
           if Ident > 1 then
              Set_Prev_Ids (Decl_Node, True);
           end if;
  
!          if Ident < Def_Ids.Num_Idents then
              Set_More_Ids (Decl_Node, True);
           end if;
  
           Append (Decl_Node, Decls);
  
!          exit Ident_Loop when Ident = Def_Ids.Num_Idents;
           Ident := Ident + 1;
           Restore_Scan_State (Scan_State);
        end loop Ident_Loop;
*************** package body Ch12 is
*** 959,965 ****
           Set_Interface_List (Def_Node, New_List);
  
           loop
!             Append (P_Qualified_Simple_Name, Interface_List (Def_Node));
              exit when Token /= Tok_And;
              Scan; -- past AND
           end loop;
--- 944,950 ----
           Set_Interface_List (Def_Node, New_List);
  
           loop
!             Append (P_Subtype_Name, Interface_List (Def_Node));
              exit when Token /= Tok_And;
              Scan; -- past AND
           end loop;
*************** package body Ch12 is
*** 1300,1306 ****
        Set_Defining_Identifier (Def_Node, P_Defining_Identifier (C_Is));
        T_Is;
        T_New;
!       Set_Name (Def_Node, P_Qualified_Simple_Name);
  
        if Token = Tok_Left_Paren then
           Save_Scan_State (Scan_State); -- at the left paren
--- 1285,1291 ----
        Set_Defining_Identifier (Def_Node, P_Defining_Identifier (C_Is));
        T_Is;
        T_New;
!       Set_Name (Def_Node, P_Generic_Unit_Name);
  
        if Token = Tok_Left_Paren then
           Save_Scan_State (Scan_State); -- at the left paren
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch13.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch13.adb
*** gcc-15.2.0/gcc/ada/par-ch13.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch13.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 197,203 ****
     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;
--- 197,203 ----
     function Get_Aspect_Specifications (Semicolon : Boolean) return List_Id is
        A_Id    : Aspect_Id;
        Aspect  : Node_Id;
!       Aspects : constant List_Id := Empty_List;
        OK      : Boolean;
  
        Opt : Boolean;
*************** package body Ch13 is
*** 215,221 ****
        end if;
  
        Scan; -- past WITH (or possible WHEN after error)
-       Aspects := Empty_List;
  
        --  Loop to scan aspects
  
--- 215,220 ----
*************** package body Ch13 is
*** 497,517 ****
                    end if;
                 end if;
  
!                --  Note if inside Depends or Refined_Depends aspect
! 
!                if A_Id = Aspect_Depends
!                  or else A_Id = Aspect_Refined_Depends
!                then
!                   Inside_Depends := True;
!                end if;
  
!                --  Note that we have seen an Import aspect specification.
!                --  This matters only while parsing a subprogram.
  
!                if A_Id = Aspect_Import then
!                   SIS_Aspect_Import_Seen := True;
!                   --  Should do it only for subprograms
!                end if;
  
                 --  Parse the aspect definition depending on the expected
                 --  argument kind.
--- 496,514 ----
                    end if;
                 end if;
  
!                --  Set some aspect-dependent flags
  
!                case A_Id is
!                   when Aspect_Depends | Aspect_Refined_Depends =>
!                      Inside_Depends := True;
!                   when Aspect_Abstract_State =>
!                      Inside_Abstract_State := True;
!                   when Aspect_Import =>
!                      SIS_Aspect_Import_Seen := True;
!                      --  This matters only while parsing a subprogram.
  
!                   when others => null;
!                end case;
  
                 --  Parse the aspect definition depending on the expected
                 --  argument kind.
*************** package body Ch13 is
*** 529,537 ****
                    Set_Expression (Aspect, P_Expression);
                 end if;
  
!                --  Unconditionally reset flag for Inside_Depends
  
!                Inside_Depends := False;
              end if;
  
              --  Add the aspect to the resulting list only when it was properly
--- 526,535 ----
                    Set_Expression (Aspect, P_Expression);
                 end if;
  
!                --  Unconditionally reset flag for being inside aspects
  
!                Inside_Depends        := False;
!                Inside_Abstract_State := False;
              end if;
  
              --  Add the aspect to the resulting list only when it was properly
*************** package body Ch13 is
*** 629,634 ****
--- 627,703 ----
        return Aspects;
     end Get_Aspect_Specifications;
  
+    -----------------------------
+    -- P_Attribute_Designators --
+    -----------------------------
+ 
+    function P_Attribute_Designators (Initial_Prefix : Node_Id) return Node_Id
+    is
+       Accumulator  : Node_Id := Initial_Prefix;
+       Designator   : Name_Id;
+    begin
+       while Token = Tok_Apostrophe loop
+ 
+          Scan; -- past apostrophe
+ 
+          Designator := No_Name;
+ 
+          if Token = Tok_Identifier then
+             Designator := Token_Name;
+ 
+             --  Note that the parser must complain in case of an internal
+             --  attribute name that comes from source since internal names are
+             --  meant to be used only by the compiler.
+ 
+             if not Is_Attribute_Name (Designator)
+               and then (not Is_Internal_Attribute_Name (Designator)
+                         or else Comes_From_Source (Token_Node))
+             then
+                Signal_Bad_Attribute;
+             end if;
+ 
+             if Style_Check then
+                Style.Check_Attribute_Name (False);
+             end if;
+ 
+          --  Here for case of attribute designator is not an identifier
+ 
+          else
+             if Token = Tok_Delta then
+                Designator := Name_Delta;
+ 
+             elsif Token = Tok_Digits then
+                Designator := Name_Digits;
+ 
+             elsif Token = Tok_Access then
+                Designator := Name_Access;
+ 
+             else
+                Error_Msg_AP ("attribute designator expected");
+                raise Error_Resync;
+             end if;
+ 
+             if Style_Check then
+                Style.Check_Attribute_Name (True);
+             end if;
+          end if;
+ 
+          --  Here we have an OK attribute scanned, and the corresponding
+          --  Attribute identifier node is stored in Designator.
+ 
+          declare
+             Temp : constant Node_Id := Accumulator;
+          begin
+             Accumulator := New_Node (N_Attribute_Reference, Prev_Token_Ptr);
+             Set_Prefix (Accumulator, Temp);
+          end;
+          Set_Attribute_Name (Accumulator, Designator);
+          Scan;
+       end loop;
+ 
+       return Accumulator;
+    end P_Attribute_Designators;
+ 
     --------------------------------------------
     -- 13.1  Representation Clause (also I.7) --
     --------------------------------------------
*************** package body Ch13 is
*** 671,678 ****
     function P_Representation_Clause return Node_Id is
        For_Loc         : Source_Ptr;
        Name_Node       : Node_Id;
-       Prefix_Node     : Node_Id;
-       Attr_Name       : Name_Id;
        Identifier_Node : Node_Id;
        Rep_Clause_Node : Node_Id;
        Expr_Node       : Node_Id;
--- 740,745 ----
*************** package body Ch13 is
*** 690,697 ****
        --  Check case of qualified name to give good error message
  
        if Token = Tok_Dot then
!          Error_Msg_SC
!             ("representation clause requires simple name!");
  
           loop
              exit when Token /= Tok_Dot;
--- 757,763 ----
        --  Check case of qualified name to give good error message
  
        if Token = Tok_Dot then
!          Error_Msg_SC ("representation clause requires simple name!");
  
           loop
              exit when Token /= Tok_Dot;
*************** package body Ch13 is
*** 703,782 ****
        --  Attribute Definition Clause
  
        if Token = Tok_Apostrophe then
  
!          --  Allow local names of the form a'b'.... This enables
!          --  us to parse class-wide streams attributes correctly.
! 
!          Name_Node := Identifier_Node;
!          while Token = Tok_Apostrophe loop
! 
!             Scan; -- past apostrophe
! 
!             Identifier_Node := Token_Node;
!             Attr_Name := No_Name;
! 
!             if Token = Tok_Identifier then
!                Attr_Name := Token_Name;
! 
!                --  Note that the parser must complain in case of an internal
!                --  attribute name that comes from source since internal names
!                --  are meant to be used only by the compiler.
! 
!                if not Is_Attribute_Name (Attr_Name)
!                  and then (not Is_Internal_Attribute_Name (Attr_Name)
!                             or else Comes_From_Source (Token_Node))
!                then
!                   Signal_Bad_Attribute;
!                end if;
! 
!                if Style_Check then
!                   Style.Check_Attribute_Name (False);
!                end if;
! 
!             --  Here for case of attribute designator is not an identifier
! 
!             else
!                if Token = Tok_Delta then
!                   Attr_Name := Name_Delta;
! 
!                elsif Token = Tok_Digits then
!                   Attr_Name := Name_Digits;
! 
!                elsif Token = Tok_Access then
!                   Attr_Name := Name_Access;
! 
!                else
!                   Error_Msg_AP ("attribute designator expected");
!                   raise Error_Resync;
!                end if;
! 
!                if Style_Check then
!                   Style.Check_Attribute_Name (True);
!                end if;
!             end if;
! 
!             --  Here we have an OK attribute scanned, and the corresponding
!             --  Attribute identifier node is stored in Ident_Node.
! 
!             Prefix_Node := Name_Node;
!             Name_Node := New_Node (N_Attribute_Reference, Prev_Token_Ptr);
!             Set_Prefix (Name_Node, Prefix_Node);
!             Set_Attribute_Name (Name_Node, Attr_Name);
!             Scan;
  
!             --  Check for Address clause which needs to be marked for use in
!             --  optimizing performance of Exp_Util.Following_Address_Clause.
  
!             if Attr_Name = Name_Address
!               and then Nkind (Prefix_Node) = N_Identifier
              then
!                Set_Name_Table_Boolean1 (Chars (Prefix_Node), True);
              end if;
!          end loop;
  
           Rep_Clause_Node := New_Node (N_Attribute_Definition_Clause, For_Loc);
!          Set_Name (Rep_Clause_Node, Prefix_Node);
!          Set_Chars (Rep_Clause_Node, Attr_Name);
           T_Use;
  
           Expr_Node := P_Expression_No_Right_Paren;
--- 769,796 ----
        --  Attribute Definition Clause
  
        if Token = Tok_Apostrophe then
+          Name_Node := P_Attribute_Designators (Identifier_Node);
  
!          --  Check for Address clause which needs to be marked for use in
!          --  optimizing performance of Exp_Util.Following_Address_Clause.
  
!          declare
!             Cursor : Node_Id := Name_Node;
!          begin
!             while Nkind (Prefix (Cursor)) = N_Attribute_Reference loop
!                Cursor := Prefix (Cursor);
!             end loop;
  
!             if Attribute_Name (Cursor) = Name_Address
!               and then Nkind (Prefix (Cursor)) = N_Identifier
              then
!                Set_Name_Table_Boolean1 (Chars (Prefix (Cursor)), True);
              end if;
!          end;
  
           Rep_Clause_Node := New_Node (N_Attribute_Definition_Clause, For_Loc);
!          Set_Name (Rep_Clause_Node, Prefix (Name_Node));
!          Set_Chars (Rep_Clause_Node, Attribute_Name (Name_Node));
           T_Use;
  
           Expr_Node := P_Expression_No_Right_Paren;
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch2.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch2.adb
*** gcc-15.2.0/gcc/ada/par-ch2.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch2.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 385,390 ****
--- 385,392 ----
          or else Chars (Ident_Node) = Name_Refined_Depends
        then
           Inside_Depends := True;
+       elsif Chars (Ident_Node) = Name_Abstract_State then
+          Inside_Abstract_State := True;
        end if;
  
        --  Scan arguments. We assume that arguments are present if there is
*************** package body Ch2 is
*** 441,451 ****
  
        Semicolon_Loc := Token_Ptr;
  
!       --  Cancel indication of being within a pragma or in particular a Depends
!       --  pragma.
  
!       Inside_Depends := False;
!       Inside_Pragma  := False;
  
        --  Now we have two tasks left, we need to scan out the semicolon
        --  following the pragma, and we have to call Par.Prag to process
--- 443,453 ----
  
        Semicolon_Loc := Token_Ptr;
  
!       --  Cancel indication of being within a pragma
  
!       Inside_Depends        := False;
!       Inside_Abstract_State := False;
!       Inside_Pragma         := False;
  
        --  Now we have two tasks left, we need to scan out the semicolon
        --  following the pragma, and we have to call Par.Prag to process
*************** package body Ch2 is
*** 472,479 ****
     exception
        when Error_Resync =>
           Resync_Past_Semicolon;
!          Inside_Depends := False;
!          Inside_Pragma  := False;
           return Error;
     end P_Pragma;
  
--- 474,482 ----
     exception
        when Error_Resync =>
           Resync_Past_Semicolon;
!          Inside_Depends        := False;
!          Inside_Abstract_State := False;
!          Inside_Pragma         := False;
           return Error;
     end P_Pragma;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch3.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch3.adb
*** gcc-15.2.0/gcc/ada/par-ch3.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch3.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 757,764 ****
                       Typedef_Node := P_Derived_Type_Def_Or_Private_Ext_Decl;
  
                       if Saved_Token = Tok_Synchronized then
!                         if Nkind (Typedef_Node) =
!                           N_Derived_Type_Definition
                          then
                             Error_Msg_N
                               ("SYNCHRONIZED not allowed for record extension",
--- 757,763 ----
                       Typedef_Node := P_Derived_Type_Def_Or_Private_Ext_Decl;
  
                       if Saved_Token = Tok_Synchronized then
!                         if Nkind (Typedef_Node) = N_Derived_Type_Definition
                          then
                             Error_Msg_N
                               ("SYNCHRONIZED not allowed for record extension",
*************** package body Ch3 is
*** 864,870 ****
              Set_Abstract_Present (Typedef_Node, Abstract_Present);
  
           elsif Abstract_Present then
!             Error_Msg ("ABSTRACT not allowed here, ignored", Abstract_Loc);
           end if;
  
           Decl_Node := New_Node (N_Full_Type_Declaration, Type_Loc);
--- 863,875 ----
              Set_Abstract_Present (Typedef_Node, Abstract_Present);
  
           elsif Abstract_Present then
!             if Nkind (Typedef_Node) = N_Derived_Type_Definition then
!                Error_Msg
!                  ("ABSTRACT allowed only for record extension, ignored",
!                   Abstract_Loc);
!             else
!                Error_Msg ("ABSTRACT not allowed here, ignored", Abstract_Loc);
!             end if;
           end if;
  
           Decl_Node := New_Node (N_Full_Type_Declaration, Type_Loc);
*************** package body Ch3 is
*** 1092,1098 ****
           return Error;
  
        else
!          Type_Node := P_Qualified_Simple_Name_Resync;
  
           --  Check for a subtype mark attribute. The only valid possibilities
           --  are 'CLASS and 'BASE. Anything else is a definite error. We may
--- 1097,1103 ----
           return Error;
  
        else
!          Type_Node := P_Subtype_Name_Resync;
  
           --  Check for a subtype mark attribute. The only valid possibilities
           --  are 'CLASS and 'BASE. Anything else is a definite error. We may
*************** package body Ch3 is
*** 1302,1320 ****
        Ident_Sloc       : Source_Ptr;
        Scan_State       : Saved_Scan_State;
        List_OK          : Boolean := True;
-       Ident            : Nat;
        Init_Expr        : Node_Id;
        Init_Loc         : Source_Ptr;
        Con_Loc          : Source_Ptr;
        Not_Null_Present : Boolean := False;
  
!       Idents : array (Int range 1 .. 4096) of Entity_Id;
!       --  Used to save identifiers in the identifier list. The upper bound
!       --  of 4096 is expected to be infinite in practice, and we do not even
!       --  bother to check if this upper bound is exceeded.
! 
!       Num_Idents : Nat := 1;
!       --  Number of identifiers stored in Idents
  
        function Identifier_Starts_Statement return Boolean;
        --  Called with Token being an identifier that might start a declaration
--- 1307,1319 ----
        Ident_Sloc       : Source_Ptr;
        Scan_State       : Saved_Scan_State;
        List_OK          : Boolean := True;
        Init_Expr        : Node_Id;
        Init_Loc         : Source_Ptr;
        Con_Loc          : Source_Ptr;
        Not_Null_Present : Boolean := False;
  
!       Def_Ids : Defining_Identifiers;
!       Ident   : Pos;
  
        function Identifier_Starts_Statement return Boolean;
        --  Called with Token being an identifier that might start a declaration
*************** package body Ch3 is
*** 1389,1398 ****
  
        procedure No_List is
        begin
!          if Num_Idents > 1 then
              Error_Msg_N
!               ("identifier list not allowed for RENAMES",
!                Idents (2));
           end if;
  
           List_OK := False;
--- 1388,1396 ----
  
        procedure No_List is
        begin
!          if Def_Ids.Num_Idents > 1 then
              Error_Msg_N
!               ("identifier list not allowed for RENAMES", Def_Ids.Idents (2));
           end if;
  
           List_OK := False;
*************** package body Ch3 is
*** 1443,1449 ****
  
        Ident_Sloc := Token_Ptr;
        Save_Scan_State (Scan_State); -- at first identifier
!       Idents (1) := P_Defining_Identifier (C_Comma_Colon);
  
        --  If we have a colon after the identifier, then we can assume that
        --  this is in fact a valid identifier declaration and can steam ahead.
--- 1441,1447 ----
  
        Ident_Sloc := Token_Ptr;
        Save_Scan_State (Scan_State); -- at first identifier
!       Append (Def_Ids, P_Defining_Identifier (C_Comma_Colon));
  
        --  If we have a colon after the identifier, then we can assume that
        --  this is in fact a valid identifier declaration and can steam ahead.
*************** package body Ch3 is
*** 1455,1462 ****
  
        elsif Token = Tok_Comma then
           while Comma_Present loop
!             Num_Idents := Num_Idents + 1;
!             Idents (Num_Idents) := P_Defining_Identifier (C_Comma_Colon);
           end loop;
  
           Save_Scan_State (Scan_State); -- at colon
--- 1453,1459 ----
  
        elsif Token = Tok_Comma then
           while Comma_Present loop
!             Append (Def_Ids, P_Defining_Identifier (C_Comma_Colon));
           end loop;
  
           Save_Scan_State (Scan_State); -- at colon
*************** package body Ch3 is
*** 1510,1516 ****
           Decl_Node :=
             New_Node (N_Object_Renaming_Declaration, Ident_Sloc);
           Set_Name (Decl_Node, P_Name);
!          Set_Defining_Identifier (Decl_Node, Idents (1));
  
           P_Aspect_Specifications (Decl_Node, Semicolon => False);
  
--- 1507,1513 ----
           Decl_Node :=
             New_Node (N_Object_Renaming_Declaration, Ident_Sloc);
           Set_Name (Decl_Node, P_Name);
!          Set_Defining_Identifier (Decl_Node, Def_Ids.Idents (1));
  
           P_Aspect_Specifications (Decl_Node, Semicolon => False);
  
*************** package body Ch3 is
*** 1712,1718 ****
                 No_List;
                 Decl_Node :=
                   New_Node (N_Exception_Renaming_Declaration, Ident_Sloc);
!                Set_Name (Decl_Node, P_Qualified_Simple_Name_Resync);
                 No_Constraint;
              else
                 Decl_Node := New_Node (N_Exception_Declaration, Prev_Token_Ptr);
--- 1709,1715 ----
                 No_List;
                 Decl_Node :=
                   New_Node (N_Exception_Renaming_Declaration, Ident_Sloc);
!                Set_Name (Decl_Node, P_Exception_Name);
                 No_Constraint;
              else
                 Decl_Node := New_Node (N_Exception_Declaration, Prev_Token_Ptr);
*************** package body Ch3 is
*** 1917,1923 ****
              end if;
           end if;
  
!          Set_Defining_Identifier (Decl_Node, Idents (Ident));
           P_Aspect_Specifications (Decl_Node, Semicolon => False);
  
           --  Allow initialization expression to follow aspects (note that in
--- 1914,1920 ----
              end if;
           end if;
  
!          Set_Defining_Identifier (Decl_Node, Def_Ids.Idents (Ident));
           P_Aspect_Specifications (Decl_Node, Semicolon => False);
  
           --  Allow initialization expression to follow aspects (note that in
*************** package body Ch3 is
*** 1945,1961 ****
           T_Semicolon;
  
           if List_OK then
-             if Ident < Num_Idents then
-                Set_More_Ids (Decl_Node, True);
-             end if;
- 
              if Ident > 1 then
                 Set_Prev_Ids (Decl_Node, True);
              end if;
           end if;
  
           Append (Decl_Node, Decls);
!          exit Ident_Loop when Ident = Num_Idents;
           Restore_Scan_State (Scan_State);
           T_Colon;
           Ident := Ident + 1;
--- 1942,1958 ----
           T_Semicolon;
  
           if List_OK then
              if Ident > 1 then
                 Set_Prev_Ids (Decl_Node, True);
              end if;
+ 
+             if Ident < Def_Ids.Num_Idents then
+                Set_More_Ids (Decl_Node, True);
+             end if;
           end if;
  
           Append (Decl_Node, Decls);
!          exit Ident_Loop when Ident = Def_Ids.Num_Idents;
           Restore_Scan_State (Scan_State);
           T_Colon;
           Ident := Ident + 1;
*************** package body Ch3 is
*** 2062,2068 ****
           Set_Interface_List (Typedef_Node, New_List);
  
           loop
!             Append (P_Qualified_Simple_Name, Interface_List (Typedef_Node));
              exit when Token /= Tok_And;
              Scan; -- past AND
           end loop;
--- 2059,2065 ----
           Set_Interface_List (Typedef_Node, New_List);
  
           loop
!             Append (P_Subtype_Name, Interface_List (Typedef_Node));
              exit when Token /= Tok_And;
              Scan; -- past AND
           end loop;
*************** package body Ch3 is
*** 3191,3204 ****
        Specification_List : List_Id;
        Ident_Sloc         : Source_Ptr;
        Scan_State         : Saved_Scan_State;
-       Num_Idents         : Nat;
        Not_Null_Present   : Boolean;
-       Ident              : Nat;
- 
-       Idents : array (Int range 1 .. 4096) of Entity_Id;
-       --  This array holds the list of defining identifiers. The upper bound
-       --  of 4096 is intended to be essentially infinite, and we do not even
-       --  bother to check for it being exceeded.
  
     begin
        if Token = Tok_Left_Paren then
--- 3188,3194 ----
*************** package body Ch3 is
*** 3207,3303 ****
           P_Pragmas_Misplaced;
  
           Specification_Loop : loop
  
!             Ident_Sloc := Token_Ptr;
!             Idents (1) := P_Defining_Identifier (C_Comma_Colon);
!             Num_Idents := 1;
! 
!             while Comma_Present loop
!                Num_Idents := Num_Idents + 1;
!                Idents (Num_Idents) := P_Defining_Identifier (C_Comma_Colon);
!             end loop;
! 
!             --  If there are multiple identifiers, we repeatedly scan the
!             --  type and initialization expression information by resetting
!             --  the scan pointer (so that we get completely separate trees
!             --  for each occurrence).
  
!             if Num_Idents > 1 then
!                Save_Scan_State (Scan_State);
!             end if;
  
!             T_Colon;
  
!             --  Loop through defining identifiers in list
  
!             Ident := 1;
!             Ident_Loop : loop
!                Specification_Node :=
!                  New_Node (N_Discriminant_Specification, Ident_Sloc);
!                Set_Defining_Identifier (Specification_Node, Idents (Ident));
!                Not_Null_Present :=  --  Ada 2005 (AI-231, AI-447)
!                  P_Null_Exclusion (Allow_Anonymous_In_95 => True);
  
!                if Token = Tok_Access then
!                   if Ada_Version = Ada_83 then
!                      Error_Msg_SC
!                        ("(Ada 83) access discriminant not allowed!");
!                   end if;
  
!                   Set_Discriminant_Type
!                     (Specification_Node,
!                      P_Access_Definition (Not_Null_Present));
  
!                --  Catch ouf-of-order keywords
  
!                elsif Token = Tok_Constant then
!                   Scan;
  
!                   if Token = Tok_Access then
!                      Error_Msg_SC -- CODEFIX
!                        ("ACCESS must come before CONSTANT");
!                      Set_Discriminant_Type
!                        (Specification_Node,
!                         P_Access_Definition (Not_Null_Present));
  
                    else
!                      Error_Msg_SC ("misplaced CONSTANT");
                    end if;
  
!                else
!                   Set_Discriminant_Type
!                     (Specification_Node, P_Subtype_Mark);
!                   No_Constraint;
!                   Set_Null_Exclusion_Present  -- Ada 2005 (AI-231)
!                     (Specification_Node, Not_Null_Present);
!                end if;
! 
!                Set_Expression
!                  (Specification_Node, Init_Expr_Opt (True));
  
!                if Token = Tok_With then
!                   P_Aspect_Specifications
!                     (Specification_Node, Semicolon => False);
!                end if;
  
!                if Ident > 1 then
!                   Set_Prev_Ids (Specification_Node, True);
!                end if;
  
!                if Ident < Num_Idents then
!                   Set_More_Ids (Specification_Node, True);
!                end if;
  
!                Append (Specification_Node, Specification_List);
!                exit Ident_Loop when Ident = Num_Idents;
!                Ident := Ident + 1;
!                Restore_Scan_State (Scan_State);
!                T_Colon;
!             end loop Ident_Loop;
  
!             exit Specification_Loop when Token /= Tok_Semicolon;
!             Scan; -- past ;
!             P_Pragmas_Misplaced;
           end loop Specification_Loop;
  
           T_Right_Paren;
--- 3197,3287 ----
           P_Pragmas_Misplaced;
  
           Specification_Loop : loop
+             declare
+                Def_Ids : Defining_Identifiers;
+                Ident   : Pos;
+             begin
+                Ident_Sloc := Token_Ptr;
+                P_Def_Ids (Def_Ids);
  
!                if Def_Ids.Num_Idents > 1 then
!                   Save_Scan_State (Scan_State);
!                end if;
  
!                T_Colon;
  
!                --  Loop through defining identifiers in list
  
!                Ident := 1;
!                Ident_Loop : loop
!                   Specification_Node :=
!                     New_Node (N_Discriminant_Specification, Ident_Sloc);
!                   Set_Defining_Identifier
!                     (Specification_Node, Def_Ids.Idents (Ident));
!                   Not_Null_Present :=  --  Ada 2005 (AI-231, AI-447)
!                     P_Null_Exclusion (Allow_Anonymous_In_95 => True);
  
!                   if Token = Tok_Access then
!                      if Ada_Version = Ada_83 then
!                         Error_Msg_SC
!                           ("(Ada 83) access discriminant not allowed!");
!                      end if;
  
!                      Set_Discriminant_Type
!                        (Specification_Node,
!                         P_Access_Definition (Not_Null_Present));
  
!                   --  Catch ouf-of-order keywords
  
!                   elsif Token = Tok_Constant then
!                      Scan;
  
!                      if Token = Tok_Access then
!                         Error_Msg_SC -- CODEFIX
!                           ("ACCESS must come before CONSTANT");
!                         Set_Discriminant_Type
!                           (Specification_Node,
!                            P_Access_Definition (Not_Null_Present));
  
!                      else
!                         Error_Msg_SC ("misplaced CONSTANT");
!                      end if;
  
                    else
!                      Set_Discriminant_Type
!                        (Specification_Node, P_Subtype_Mark);
!                      No_Constraint;
!                      Set_Null_Exclusion_Present  -- Ada 2005 (AI-231)
!                        (Specification_Node, Not_Null_Present);
                    end if;
  
!                   Set_Expression
!                     (Specification_Node, Init_Expr_Opt (True));
  
!                   if Token = Tok_With then
!                      P_Aspect_Specifications
!                        (Specification_Node, Semicolon => False);
!                   end if;
  
!                   if Ident > 1 then
!                      Set_Prev_Ids (Specification_Node, True);
!                   end if;
  
!                   if Ident < Def_Ids.Num_Idents then
!                      Set_More_Ids (Specification_Node, True);
!                   end if;
  
!                   Append (Specification_Node, Specification_List);
!                   exit Ident_Loop when Ident = Def_Ids.Num_Idents;
!                   Ident := Ident + 1;
!                   Restore_Scan_State (Scan_State);
!                   T_Colon;
!                end loop Ident_Loop;
  
!                exit Specification_Loop when Token /= Tok_Semicolon;
!                Scan; -- past ;
!                P_Pragmas_Misplaced;
!             end;
           end loop Specification_Loop;
  
           T_Right_Paren;
*************** package body Ch3 is
*** 3770,3783 ****
        Decl_Node        : Node_Id := Empty;  -- initialize to prevent warning
        Scan_State       : Saved_Scan_State;
        Not_Null_Present : Boolean := False;
-       Num_Idents       : Nat;
-       Ident            : Nat;
        Ident_Sloc       : Source_Ptr;
  
!       Idents : array (Int range 1 .. 4096) of Entity_Id;
!       --  This array holds the list of defining identifiers. The upper bound
!       --  of 4096 is intended to be essentially infinite, and we do not even
!       --  bother to check for it being exceeded.
  
     begin
        if Token /= Tok_Identifier then
--- 3754,3763 ----
        Decl_Node        : Node_Id := Empty;  -- initialize to prevent warning
        Scan_State       : Saved_Scan_State;
        Not_Null_Present : Boolean := False;
        Ident_Sloc       : Source_Ptr;
  
!       Def_Ids : Defining_Identifiers;
!       Ident   : Pos;
  
     begin
        if Token /= Tok_Identifier then
*************** package body Ch3 is
*** 3788,3807 ****
  
        Ident_Sloc := Token_Ptr;
        Check_Bad_Layout;
!       Idents (1) := P_Defining_Identifier (C_Comma_Colon);
!       Num_Idents := 1;
! 
!       while Comma_Present loop
!          Num_Idents := Num_Idents + 1;
!          Idents (Num_Idents) := P_Defining_Identifier (C_Comma_Colon);
!       end loop;
! 
!       --  If there are multiple identifiers, we repeatedly scan the
!       --  type and initialization expression information by resetting
!       --  the scan pointer (so that we get completely separate trees
!       --  for each occurrence).
  
!       if Num_Idents > 1 then
           Save_Scan_State (Scan_State);
        end if;
  
--- 3768,3776 ----
  
        Ident_Sloc := Token_Ptr;
        Check_Bad_Layout;
!       P_Def_Ids (Def_Ids);
  
!       if Def_Ids.Num_Idents > 1 then
           Save_Scan_State (Scan_State);
        end if;
  
*************** package body Ch3 is
*** 3817,3823 ****
  
           begin
              Decl_Node := New_Node (N_Component_Declaration, Ident_Sloc);
!             Set_Defining_Identifier (Decl_Node, Idents (Ident));
  
              if Token = Tok_Constant then
                 Error_Msg_SC ("constant component not permitted");
--- 3786,3792 ----
  
           begin
              Decl_Node := New_Node (N_Component_Declaration, Ident_Sloc);
!             Set_Defining_Identifier (Decl_Node, Def_Ids.Idents (Ident));
  
              if Token = Tok_Constant then
                 Error_Msg_SC ("constant component not permitted");
*************** package body Ch3 is
*** 3876,3882 ****
                 Set_Prev_Ids (Decl_Node, True);
              end if;
  
!             if Ident < Num_Idents then
                 Set_More_Ids (Decl_Node, True);
              end if;
  
--- 3845,3851 ----
                 Set_Prev_Ids (Decl_Node, True);
              end if;
  
!             if Ident < Def_Ids.Num_Idents then
                 Set_More_Ids (Decl_Node, True);
              end if;
  
*************** package body Ch3 is
*** 3890,3896 ****
                 end if;
           end;
  
!          exit Ident_Loop when Ident = Num_Idents;
           Ident := Ident + 1;
           Restore_Scan_State (Scan_State);
           T_Colon;
--- 3859,3865 ----
                 end if;
           end;
  
!          exit Ident_Loop when Ident = Def_Ids.Num_Idents;
           Ident := Ident + 1;
           Restore_Scan_State (Scan_State);
           T_Colon;
*************** package body Ch3 is
*** 4213,4219 ****
  
           Set_Abstract_Present   (Typedef_Node);
           Set_Interface_Present  (Typedef_Node);
!          Set_Subtype_Indication (Typedef_Node, P_Qualified_Simple_Name);
  
           Set_Record_Extension_Part (Typedef_Node,
             New_Node (N_Record_Definition, Token_Ptr));
--- 4182,4188 ----
  
           Set_Abstract_Present   (Typedef_Node);
           Set_Interface_Present  (Typedef_Node);
!          Set_Subtype_Indication (Typedef_Node, P_Subtype_Name);
  
           Set_Record_Extension_Part (Typedef_Node,
             New_Node (N_Record_Definition, Token_Ptr));
*************** package body Ch3 is
*** 4224,4231 ****
              Scan; -- past AND
  
              loop
!                Append (P_Qualified_Simple_Name,
!                        Interface_List (Typedef_Node));
                 exit when Token /= Tok_And;
                 Scan; -- past AND
              end loop;
--- 4193,4199 ----
              Scan; -- past AND
  
              loop
!                Append (P_Subtype_Name, Interface_List (Typedef_Node));
                 exit when Token /= Tok_And;
                 Scan; -- past AND
              end loop;
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch4.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch4.adb
*** gcc-15.2.0/gcc/ada/par-ch4.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch4.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 82,89 ****
     function P_Relation                              return Node_Id;
     function P_Term                                  return Node_Id;
     function P_Declare_Expression                    return Node_Id;
-    function P_Reduction_Attribute_Reference (S : Node_Id)
-       return Node_Id;
  
     function P_Binary_Adding_Operator                return Node_Kind;
     function P_Logical_Operator                      return Node_Kind;
--- 82,87 ----
*************** package body Ch4 is
*** 91,96 ****
--- 89,97 ----
     function P_Relational_Operator                   return Node_Kind;
     function P_Unary_Adding_Operator                 return Node_Kind;
  
+    function P_Simple_Name        (Instance_OK : Boolean) return Node_Id;
+    function P_Simple_Name_Resync (Instance_OK : Boolean) return Node_Id;
+ 
     procedure Bad_Range_Attribute (Loc : Source_Ptr);
     --  Called to place complaint about bad range attribute at the given
     --  source location. Terminates by raising Error_Resync.
*************** package body Ch4 is
*** 108,113 ****
--- 109,118 ----
     --  prefix. The current token is known to be an apostrophe and the
     --  following token is known to be RANGE.
  
+    function P_Reduction_Attribute_Reference (Pref : Node_Id) return Node_Id;
+    --  Scan a reduction attribute reference. The caller has scanned out the
+    --  prefix. The current token is known to be an identifier.
+ 
     function P_Case_Expression return Node_Id;
     --  Scans out a case expression. Called with Token pointing to the CASE
     --  keyword, and returns pointing to the terminating right parent,
*************** package body Ch4 is
*** 152,160 ****
     --  NAME ::=
     --    DIRECT_NAME        | EXPLICIT_DEREFERENCE
     --  | INDEXED_COMPONENT  | SLICE
!    --  | SELECTED_COMPONENT | ATTRIBUTE
     --  | TYPE_CONVERSION    | FUNCTION_CALL
     --  | CHARACTER_LITERAL  | TARGET_NAME
  
     --  DIRECT_NAME ::= IDENTIFIER | OPERATOR_SYMBOL
  
--- 157,166 ----
     --  NAME ::=
     --    DIRECT_NAME        | EXPLICIT_DEREFERENCE
     --  | INDEXED_COMPONENT  | SLICE
!    --  | SELECTED_COMPONENT | ATTRIBUTE_REFERENCE
     --  | TYPE_CONVERSION    | FUNCTION_CALL
     --  | CHARACTER_LITERAL  | TARGET_NAME
+    --  | STRUCTURAL_GENERIC_INSTANCE_NAME
  
     --  DIRECT_NAME ::= IDENTIFIER | OPERATOR_SYMBOL
  
*************** package body Ch4 is
*** 192,197 ****
--- 198,205 ----
  
     --  TARGET_NAME ::= @   (AI12-0125-3: abbreviation for LHS)
  
+    --  STRUCTURAL_GENERIC_INSTANCE_NAME ::= NAME GENERIC_ACTUAL_PART
+ 
     --  Note: syntactically a procedure call looks just like a function call,
     --  so this routine is in practice used to scan out procedure calls as well.
  
*************** package body Ch4 is
*** 474,480 ****
           elsif Token = Tok_Identifier then
              Attr_Name := Token_Name;
  
!             if not Is_Attribute_Name (Attr_Name) then
                 if Apostrophe_Should_Be_Semicolon then
                    Expr_Form := EF_Name;
                    return Name_Node;
--- 482,493 ----
           elsif Token = Tok_Identifier then
              Attr_Name := Token_Name;
  
!             --  Attribute Unsigned_Base_Range temporarily disabled
! 
!             if not Is_Attribute_Name (Attr_Name)
!               or else (Attr_Name = Name_Unsigned_Base_Range
!                          and then not Debug_Flag_Dot_U)
!             then
                 if Apostrophe_Should_Be_Semicolon then
                    Expr_Form := EF_Name;
                    return Name_Node;
*************** package body Ch4 is
*** 592,597 ****
--- 605,624 ----
                                 Explicit_Actual_Parameter => Rnam));
                             exit;
  
+                         --  'Make is a special attribute that takes a variable
+                         --  amount of parameters.
+ 
+                         elsif All_Extensions_Allowed
+                           and then Attr_Name = Name_Make
+                         then
+                            Scan;
+                            Rnam := P_Expression;
+                            Append_To (Expressions (Name_Node),
+                              Make_Parameter_Association (Sloc (Rnam),
+                                Selector_Name             => Expr,
+                                Explicit_Actual_Parameter => Rnam));
+                            exit;
+ 
                          --  For all other cases named notation is illegal
  
                          else
*************** package body Ch4 is
*** 654,666 ****
  
        --   (discrete_range)
  
!       --      This is a slice. This case is handled in LP_State_Init
  
        --   (expression, expression, ..)
  
        --      This is interpreted as an indexed component, i.e. as a
        --      case of a name which can be extended in the normal manner.
!       --      This case is handled by LP_State_Name or LP_State_Expr.
  
        --      Note: if and case expressions (without an extra level of
        --      parentheses) are permitted in this context).
--- 681,693 ----
  
        --   (discrete_range)
  
!       --      This is a slice
  
        --   (expression, expression, ..)
  
        --      This is interpreted as an indexed component, i.e. as a
        --      case of a name which can be extended in the normal manner.
!       --      This case is handled by LP_State_Expr.
  
        --      Note: if and case expressions (without an extra level of
        --      parentheses) are permitted in this context).
*************** package body Ch4 is
*** 669,674 ****
--- 696,702 ----
  
        --      If there is at least one occurrence of identifier => (but
        --      none of the other cases apply), then we have a call.
+       --      This case is handled by LP_State_Call.
  
        --  Test for Id => case
  
*************** package body Ch4 is
*** 888,895 ****
        --  have seen at least one named parameter already.
  
        Error_Msg_SC
!          ("positional parameter association " &
!            "not allowed after named one");
  
        Error_Loc := Token_Ptr;
  
--- 916,922 ----
        --  have seen at least one named parameter already.
  
        Error_Msg_SC
!         ("positional parameter association not allowed after named one");
  
        Error_Loc := Token_Ptr;
  
*************** package body Ch4 is
*** 915,1117 ****
  
     end P_Name;
  
!    --  This function parses a restricted form of Names which are either
!    --  designators, or designators preceded by a sequence of prefixes
!    --  that are direct names.
  
!    --  Error recovery: cannot raise Error_Resync
  
!    function P_Function_Name return Node_Id is
!       Designator_Node : Node_Id;
!       Prefix_Node     : Node_Id;
!       Selector_Node   : Node_Id;
!       Dot_Sloc        : Source_Ptr := No_Location;
  
     begin
!       --  Prefix_Node is set to the gathered prefix so far, Empty means that
!       --  no prefix has been scanned. This allows us to build up the result
!       --  in the required right recursive manner.
  
!       Prefix_Node := Empty;
  
!       --  Loop through prefixes
  
!       loop
!          Designator_Node := Token_Node;
  
!          if Token not in Token_Class_Desig then
!             return P_Identifier; -- let P_Identifier issue the error message
  
!          else -- Token in Token_Class_Desig
!             Scan; -- past designator
!             exit when Token /= Tok_Dot;
!          end if;
  
!          --  Here at a dot, with token just before it in Designator_Node
  
!          if No (Prefix_Node) then
!             Prefix_Node := Designator_Node;
!          else
!             Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!             Set_Prefix (Selector_Node, Prefix_Node);
!             Set_Selector_Name (Selector_Node, Designator_Node);
!             Prefix_Node := Selector_Node;
!          end if;
  
!          Dot_Sloc := Token_Ptr;
!          Scan; -- past dot
!       end loop;
  
!       --  Fall out of the loop having just scanned a designator
  
!       if No (Prefix_Node) then
!          return Designator_Node;
!       else
!          Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!          Set_Prefix (Selector_Node, Prefix_Node);
!          Set_Selector_Name (Selector_Node, Designator_Node);
!          return Selector_Node;
!       end if;
  
     exception
        when Error_Resync =>
           return Error;
!    end P_Function_Name;
  
!    --  This function parses a restricted form of Names which are either
!    --  identifiers, or identifiers preceded by a sequence of prefixes
!    --  that are direct names.
  
!    --  Error recovery: cannot raise Error_Resync
  
!    function P_Qualified_Simple_Name return Node_Id is
!       Designator_Node : Node_Id;
!       Prefix_Node     : Node_Id;
!       Selector_Node   : Node_Id;
!       Dot_Sloc        : Source_Ptr := No_Location;
  
     begin
!       --  Prefix node is set to the gathered prefix so far, Empty means that
!       --  no prefix has been scanned. This allows us to build up the result
!       --  in the required right recursive manner.
  
!       Prefix_Node := Empty;
  
!       --  Loop through prefixes
  
!       loop
!          Designator_Node := Token_Node;
  
!          if Token = Tok_Identifier then
!             Scan; -- past identifier
!             exit when Token /= Tok_Dot;
  
!          elsif Token not in Token_Class_Desig then
!             return P_Identifier; -- let P_Identifier issue the error message
  
!          else
!             Scan; -- past designator
  
!             if Token /= Tok_Dot then
!                Error_Msg_SP ("identifier expected");
!                return Error;
!             end if;
!          end if;
  
!          --  Here at a dot, with token just before it in Designator_Node
  
!          if No (Prefix_Node) then
!             Prefix_Node := Designator_Node;
!          else
!             Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!             Set_Prefix (Selector_Node, Prefix_Node);
!             Set_Selector_Name (Selector_Node, Designator_Node);
!             Prefix_Node := Selector_Node;
!          end if;
  
!          Dot_Sloc := Token_Ptr;
!          Scan; -- past dot
!       end loop;
  
!       --  Fall out of the loop having just scanned an identifier
  
-       if No (Prefix_Node) then
-          return Designator_Node;
        else
!          Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!          Set_Prefix (Selector_Node, Prefix_Node);
!          Set_Selector_Name (Selector_Node, Designator_Node);
!          return Selector_Node;
        end if;
  
!    exception
!       when Error_Resync =>
!          return Error;
!    end P_Qualified_Simple_Name;
  
!    --  This procedure differs from P_Qualified_Simple_Name only in that it
!    --  raises Error_Resync if any error is encountered. It only returns after
!    --  scanning a valid qualified simple name.
  
!    --  Error recovery: can raise Error_Resync
  
!    function P_Qualified_Simple_Name_Resync return Node_Id is
!       Designator_Node : Node_Id;
!       Prefix_Node     : Node_Id;
!       Selector_Node   : Node_Id;
!       Dot_Sloc        : Source_Ptr := No_Location;
  
!    begin
!       Prefix_Node := Empty;
  
!       --  Loop through prefixes
  
!       loop
!          Designator_Node := Token_Node;
  
!          if Token = Tok_Identifier then
!             Scan; -- past identifier
!             exit when Token /= Tok_Dot;
  
!          elsif Token not in Token_Class_Desig then
!             Discard_Junk_Node (P_Identifier); -- to issue the error message
!             raise Error_Resync;
  
           else
!             Scan; -- past designator
  
!             if Token /= Tok_Dot then
!                Error_Msg_SP ("identifier expected");
!                raise Error_Resync;
!             end if;
           end if;
  
!          --  Here at a dot, with token just before it in Designator_Node
  
!          if No (Prefix_Node) then
!             Prefix_Node := Designator_Node;
           else
!             Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!             Set_Prefix (Selector_Node, Prefix_Node);
!             Set_Selector_Name (Selector_Node, Designator_Node);
!             Prefix_Node := Selector_Node;
           end if;
  
!          Dot_Sloc := Token_Ptr;
!          Scan; -- past period
!       end loop;
  
!       --  Fall out of the loop having just scanned an identifier
  
!       if No (Prefix_Node) then
!          return Designator_Node;
!       else
!          Selector_Node := New_Node (N_Selected_Component, Dot_Sloc);
!          Set_Prefix (Selector_Node, Prefix_Node);
!          Set_Selector_Name (Selector_Node, Designator_Node);
!          return Selector_Node;
        end if;
!    end P_Qualified_Simple_Name_Resync;
  
     ----------------------
     -- 4.1  Direct_Name --
--- 942,1237 ----
  
     end P_Name;
  
!    --  These functions parse a restricted form of Names which are either
!    --  designators or structural generic instance names, and are preceded,
!    --  or not, by a sequence of prefixes that are either direct names or
!    --  structural generic instance names.
  
!    --  Error recovery: can raise Error_Resync
  
!    function P_Exception_Name return Node_Id is
!    begin
!       return P_Simple_Name_Resync (Instance_OK => False);
!    end P_Exception_Name;
  
+    function P_Label_Name return Node_Id is
     begin
!       return P_Simple_Name_Resync (Instance_OK => False);
!    end P_Label_Name;
  
!    function P_Loop_Name return Node_Id is
!    begin
!       return P_Simple_Name_Resync (Instance_OK => False);
!    end P_Loop_Name;
  
!    function P_Subtype_Name_Resync return Node_Id is
!    begin
!       return P_Simple_Name_Resync (Instance_OK => False);
!    end P_Subtype_Name_Resync;
  
!    --  Error recovery: cannot raise Error_Resync
  
!    function P_Generic_Unit_Name return Node_Id is
!    begin
!       return P_Simple_Name (Instance_OK => False);
!    end P_Generic_Unit_Name;
  
!    function P_Library_Unit_Name return Node_Id is
!    begin
!       return P_Simple_Name (Instance_OK => False);
!    end P_Library_Unit_Name;
  
!    function P_Package_Name return Node_Id is
!    begin
!       return P_Simple_Name (Instance_OK => True);
!    end P_Package_Name;
  
!    function P_Parent_Unit_Name return Node_Id is
!    begin
!       return P_Simple_Name (Instance_OK => False);
!    end P_Parent_Unit_Name;
  
!    function P_Subtype_Name return Node_Id is
!    begin
!       return P_Simple_Name (Instance_OK => False);
!    end P_Subtype_Name;
  
!    --  This function parses a restricted form of Names which are either
!    --  designators or structural generic instance names, and are preceded,
!    --  or not, by a sequence of prefixes that are either direct names or
!    --  structural generic instance names.
  
!    --  If Instance_OK is False, the simple name cannot be a structural
!    --  generic instance name, preceded or not by prefixes (Instance_OK
!    --  has no effects on the accepted prefixes, if any).
! 
!    --  Error recovery: cannot raise Error_Resync
  
+    function P_Simple_Name (Instance_OK : Boolean) return Node_Id is
+    begin
+       return P_Simple_Name_Resync (Instance_OK);
     exception
        when Error_Resync =>
           return Error;
!    end P_Simple_Name;
  
!    --  This procedure differs from P_Simple_Name only in that it raises
!    --  Error_Resync if any error is encountered. It only returns after
!    --  scanning a valid simple name.
  
!    --  Error recovery: can raise Error_Resync
  
!    function P_Simple_Name_Resync (Instance_OK : Boolean) return Node_Id is
!       Arg_Node      : Node_Id;
!       Ident_Node    : Node_Id;
!       Name_Node     : Node_Id;
!       Prefix_Node   : Node_Id;
!       Scan_State_Id : Saved_Scan_State;
!       Scan_State_LP : Saved_Scan_State;
! 
!       Arg_List  : List_Id := No_List; -- kill junk warning
  
     begin
!       --  Case of not a designator
  
!       if Token not in Token_Class_Desig then
!          Discard_Junk_Node (P_Identifier); -- to issue the error message
!          raise Error_Resync;
!       end if;
  
!       Name_Node := Token_Node;
  
!       Scan; -- past designator
  
!       --  Loop scanning past name extensions. A label is used for control
!       --  transfer for this loop for ease of interfacing with the finite state
!       --  machine in the parenthesis scanning circuit, and also to allow for
!       --  passing in control to the appropriate point from the above code.
  
!       <<Scan_Name_Extension>>
  
!       case Token is
!          when Tok_Left_Paren =>
!             Save_Scan_State (Scan_State_LP); -- at left paren
!             Scan; -- past left paren
!             Arg_List := New_List;
!             goto Scan_Name_Extension_Left_Paren;
  
!          when Tok_Dot =>
!             Scan; -- past dot
!             goto Scan_Name_Extension_Dot;
  
!          when others =>
!             return Name_Node;
!       end case;
  
!       --  Case of name extended by dot (selection), dot is already skipped
!       --  and the scan state at the point of the dot is saved in Scan_State.
  
!       <<Scan_Name_Extension_Dot>>
  
!       if Token in Token_Class_Desig then
!          Prefix_Node := Name_Node;
!          Name_Node := New_Node (N_Selected_Component, Prev_Token_Ptr);
!          Set_Prefix (Name_Node, Prefix_Node);
!          Set_Selector_Name (Name_Node, Token_Node);
!          Scan; -- past selector
!          goto Scan_Name_Extension;
! 
!       --  Here if nothing legal after the dot
  
        else
!          Discard_Junk_Node (P_Identifier); -- to issue the error message
!          raise Error_Resync;
        end if;
  
!       --  Here for left parenthesis extending name (left paren skipped)
  
!       <<Scan_Name_Extension_Left_Paren>>
  
!       --  We now have to scan through a list of items, terminated by a
!       --  right parenthesis. The scan is handled by a finite state
!       --  machine. The possibilities are:
  
!       --   (expression, expression, ..)
  
!       --      This is interpreted as an indexed component, i.e. as a
!       --      case of a name which can be extended in the normal manner.
!       --      This case is handled by LP_State_Expr.
  
!       --      Note: if and case expressions (without an extra level of
!       --      parentheses) are permitted in this context).
  
!       --   (..., identifier => expression , ...)
  
!       --      If there is at least one occurrence of identifier => (but
!       --      none of the other cases apply), then we have a call.
!       --      This case is handled by LP_State_Call.
  
!       --  Test for Id => case
! 
!       if Token in Tok_Identifier | Tok_Operator_Symbol | Tok_Others then
!          Save_Scan_State (Scan_State_Id); -- at Id
!          Scan; -- past Id
! 
!          --  Test for => (allow := as an error substitute)
! 
!          if Token in Tok_Arrow | Tok_Colon_Equal then
!             Restore_Scan_State (Scan_State_Id); -- to Id
!             goto LP_State_Call;
  
           else
!             Restore_Scan_State (Scan_State_Id); -- to Id
!          end if;
!       end if;
  
!       --  Here we have an expression after all
! 
!       <<LP_State_Expr>>
! 
!       if Token in Tok_Box | Tok_Right_Paren then
!          goto LP_State_Rewind;
!       end if;
! 
!       Append (P_Expression_Or_Range_Attribute_If_OK, Arg_List);
! 
!       if Token = Tok_Comma then
!          Scan; -- past comma
!          goto Scan_Name_Extension_Left_Paren;
! 
!       elsif Token = Tok_Right_Paren then
!          Scan; -- past right paren
! 
!          if not Instance_OK and then Token /= Tok_Dot then
!             goto LP_State_Rewind;
           end if;
  
!          Prefix_Node := Name_Node;
!          Name_Node := New_Node (N_Indexed_Component, Sloc (Prefix_Node));
!          Set_Prefix (Name_Node, Prefix_Node);
!          Set_Expressions (Name_Node, Arg_List);
!          goto Scan_Name_Extension;
  
!       else
!          goto LP_State_Rewind;
!       end if;
! 
!       --  LP_State_Call corresponds to the situation in which at least one
!       --  instance of Id => Expression has been encountered, so we know that
!       --  we do not have a name, but rather a call. We enter it with the
!       --  scan pointer pointing to the next argument to scan, and Arg_List
!       --  containing the list of arguments scanned so far.
! 
!       <<LP_State_Call>>
! 
!       --  Test for case of Id => Expression (named parameter)
! 
!       if Token in Tok_Identifier | Tok_Operator_Symbol | Tok_Others then
!          Save_Scan_State (Scan_State_Id); -- at Id
! 
!          if Token = Tok_Others then
!             Ident_Node := Empty; -- used below only in case of syntax error
           else
!             Ident_Node := Token_Node;
           end if;
  
!          Scan; -- past Id
  
!          --  Deal with => (allow := as incorrect substitute)
  
!          if Token in Tok_Arrow | Tok_Colon_Equal then
!             Arg_Node := New_Node (N_Parameter_Association, Prev_Token_Ptr);
!             T_Arrow;
!             if Token in Tok_Box then
!                goto LP_State_Rewind;
!             end if;
!             Set_Selector_Name (Arg_Node, Ident_Node);
!             Set_Explicit_Actual_Parameter (Arg_Node, P_Expression);
!             Append (Arg_Node, Arg_List);
! 
!             --  If a comma follows, go back and scan next entry
! 
!             if Comma_Present then
!                goto LP_State_Call;
! 
!             --  Otherwise we have the end of a call
! 
!             else
!                T_Right_Paren; -- past right paren
! 
!                if not Instance_OK and then Token /= Tok_Dot then
!                   goto LP_State_Rewind;
!                end if;
! 
!                Prefix_Node := Name_Node;
!                Name_Node := New_Node (N_Function_Call, Sloc (Prefix_Node));
!                Set_Name (Name_Node, Prefix_Node);
!                Set_Parameter_Associations (Name_Node, Arg_List);
!                goto Scan_Name_Extension;
!             end if;
! 
!          --  Filter out tokens that may appear in constraints
! 
!          elsif Token in Tok_Vertical_Bar then
!             goto LP_State_Rewind;
! 
!          --  Not named parameter: Id started an expression after all
! 
!          else
!             Restore_Scan_State (Scan_State_Id); -- to Id
!          end if;
        end if;
! 
!       --  Here if entry did not start with Id => which means that it
!       --  is a positional parameter, which is not allowed, since we
!       --  have seen at least one named parameter already.
! 
!       goto LP_State_Expr;
! 
!       <<LP_State_Rewind>>
!       Restore_Scan_State (Scan_State_LP);
!       return Name_Node;
!    end P_Simple_Name_Resync;
  
     ----------------------
     -- 4.1  Direct_Name --
*************** package body Ch4 is
*** 1227,1233 ****
     -- P_Reduction_Attribute_Reference --
     -------------------------------------
  
!    function P_Reduction_Attribute_Reference (S : Node_Id)
        return Node_Id
     is
        Attr_Node  : Node_Id;
--- 1347,1353 ----
     -- P_Reduction_Attribute_Reference --
     -------------------------------------
  
!    function P_Reduction_Attribute_Reference (Pref : Node_Id)
        return Node_Id
     is
        Attr_Node  : Node_Id;
*************** package body Ch4 is
*** 1242,1248 ****
           Error_Msg ("Reduce attribute expected", Prev_Token_Ptr);
        end if;
  
!       Set_Prefix (Attr_Node, S);
        Set_Expressions (Attr_Node, New_List);
        T_Left_Paren;
        Append (P_Name, Expressions (Attr_Node));
--- 1362,1368 ----
           Error_Msg ("Reduce attribute expected", Prev_Token_Ptr);
        end if;
  
!       Set_Prefix (Attr_Node, Pref);
        Set_Expressions (Attr_Node, New_List);
        T_Left_Paren;
        Append (P_Name, Expressions (Attr_Node));
*************** package body Ch4 is
*** 1593,1600 ****
           --  Improper use of WITH
  
           elsif Token = Tok_With then
!             Error_Msg_SC ("WITH must be preceded by single expression in " &
!                           "extension aggregate");
              raise Error_Resync;
  
           --  Range attribute can only appear as part of a discrete choice list
--- 1713,1725 ----
           --  Improper use of WITH
  
           elsif Token = Tok_With then
!             if Inside_Abstract_State then
!                Error_Msg_SC ("state name with options must be enclosed in " &
!                              "parentheses");
!             else
!                Error_Msg_SC ("WITH must be preceded by single expression in " &
!                              "extension aggregate");
!             end if;
              raise Error_Resync;
  
           --  Range attribute can only appear as part of a discrete choice list
*************** package body Ch4 is
*** 2664,2678 ****
        --  not the first token on a line (as determined by checking the
        --  previous token position with the start of the current line),
        --  then we insist that we have an appropriate terminating token.
!       --  Consider the following two examples:
  
        --   1)  if A nad B then ...
  
!       --   2)  A := B
        --       C := D
  
        --  In the first example, we would like to issue a binary operator
        --  expected message and resynchronize to the then. In the second
        --  example, we do not want to issue a binary operator message, so
        --  that instead we will get the missing semicolon message. This
        --  distinction is of course a heuristic which does not always work,
--- 2789,2811 ----
        --  not the first token on a line (as determined by checking the
        --  previous token position with the start of the current line),
        --  then we insist that we have an appropriate terminating token.
!       --  Consider the following examples:
  
        --   1)  if A nad B then ...
  
!       --   2)  if A [B] then ...
!       --            ^
!       --   2)  A := [B[;
!       --              ^
! 
!       --   3)  A := B
        --       C := D
  
        --  In the first example, we would like to issue a binary operator
        --  expected message and resynchronize to the then. In the second
+       --  example, a left bracket was found instead of a left parenthesis (eg.
+       --  array indexing), or instead of a closing right bracket; in both cases
+       --  we issue an incorrect or mismatching bracket message. In the third
        --  example, we do not want to issue a binary operator message, so
        --  that instead we will get the missing semicolon message. This
        --  distinction is of course a heuristic which does not always work,
*************** package body Ch4 is
*** 2708,2713 ****
--- 2841,2851 ----
                 Error_Msg_SC ("\qualify expression to turn it into a name");
              end if;
  
+          --  Mistake of using brackets instead of parentheses
+ 
+          elsif Token = Tok_Left_Bracket then
+             Error_Msg_SC ("incorrect or mismatching bracket");
+ 
           --  Normal case for binary operator expected message
  
           else
*************** package body Ch4 is
*** 3473,3480 ****
  
     function P_Allocator return Node_Id is
        Alloc_Node             : Node_Id;
-       Type_Node              : Node_Id;
        Null_Exclusion_Present : Boolean;
  
     begin
        Alloc_Node := New_Node (N_Allocator, Token_Ptr);
--- 3611,3619 ----
  
     function P_Allocator return Node_Id is
        Alloc_Node             : Node_Id;
        Null_Exclusion_Present : Boolean;
+       Scan_State             : Saved_Scan_State;
+       Type_Node              : Node_Id;
  
     begin
        Alloc_Node := New_Node (N_Allocator, Token_Ptr);
*************** package body Ch4 is
*** 3496,3501 ****
--- 3635,3665 ----
  
        Null_Exclusion_Present := P_Null_Exclusion;
        Set_Null_Exclusion_Present (Alloc_Node, Null_Exclusion_Present);
+ 
+       --  Check for 'Make
+ 
+       if All_Extensions_Allowed
+         and then Token = Tok_Identifier
+       then
+          Save_Scan_State (Scan_State);
+          Type_Node := P_Subtype_Name_Resync;
+          if Token = Tok_Apostrophe then
+             Scan;
+             if Token_Name = Name_Make then
+                Restore_Scan_State (Scan_State);
+                Set_Expression
+                  (Alloc_Node,
+                   Make_Qualified_Expression (Token_Ptr,
+                     Subtype_Mark => Check_Subtype_Mark (Type_Node),
+                     Expression   => P_Expression_Or_Range_Attribute));
+                return Alloc_Node;
+             end if;
+          end if;
+          Restore_Scan_State (Scan_State);
+       end if;
+ 
+       --  Otherwise continue parsing the subtype
+ 
        Type_Node := P_Subtype_Mark_Resync;
  
        if Token = Tok_Apostrophe then
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch5.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch5.adb
*** gcc-15.2.0/gcc/ada/par-ch5.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch5.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Ch5 is
*** 32,37 ****
--- 32,38 ----
  
     function P_Case_Statement                     return Node_Id;
     function P_Case_Statement_Alternative         return Node_Id;
+    function P_Continue_Statement                 return Node_Id;
     function P_Exit_Statement                     return Node_Id;
     function P_Goto_Statement                     return Node_Id;
     function P_If_Statement                       return Node_Id;
*************** package body Ch5 is
*** 76,81 ****
--- 77,85 ----
     procedure Then_Scan;
     --  Scan past THEN token, testing for illegal junk after it
  
+    procedure Parse_Loop_Flow_Statement (N : N_Loop_Flow_Statement_Id);
+    --  Common processing for Parse_Continue_Statement and Parse_Exit_Statement.
+ 
     ---------------------------------
     -- 5.1  Sequence of Statements --
     ---------------------------------
*************** package body Ch5 is
*** 511,516 ****
--- 515,527 ----
                         P_Assignment_Statement (Id_Node));
                       Statement_Required := False;
  
+                   elsif Block_Label = Name_Continue
+                     and then Token in Tok_Semicolon | Tok_When | Tok_Identifier
+                   then
+                      Restore_Scan_State (Scan_State_Label); -- to Id
+                      Append_To (Statement_List, P_Continue_Statement);
+                      Statement_Required := False;
+ 
                    --  Check common case of procedure call, another case that
                    --  we want to speed up as much as possible.
  
*************** package body Ch5 is
*** 1899,1909 ****
       (Block_Name : Node_Id := Empty)
        return       Node_Id
     is
!       Block_Node   : Node_Id;
        Created_Name : Node_Id;
  
     begin
!       Block_Node := New_Node (N_Block_Statement, Token_Ptr);
  
        Push_Scope_Stack;
        Scopes (Scope.Last).Etyp := E_Name;
--- 1910,1920 ----
       (Block_Name : Node_Id := Empty)
        return       Node_Id
     is
!       Block        : Node_Id;
        Created_Name : Node_Id;
  
     begin
!       Block := New_Node (N_Block_Statement, Token_Ptr);
  
        Push_Scope_Stack;
        Scopes (Scope.Last).Etyp := E_Name;
*************** package body Ch5 is
*** 1916,1933 ****
  
        if No (Block_Name) then
           Created_Name :=
!            Make_Identifier (Sloc (Block_Node), Set_Loop_Block_Name ('B'));
           Set_Comes_From_Source (Created_Name, False);
!          Set_Has_Created_Identifier (Block_Node, True);
!          Set_Identifier (Block_Node, Created_Name);
           Scopes (Scope.Last).Labl := Created_Name;
        else
!          Set_Identifier (Block_Node, Block_Name);
        end if;
  
!       Append_Elmt (Block_Node, Label_List);
!       Parse_Decls_Begin_End (Block_Node);
!       return Block_Node;
     end P_Declare_Statement;
  
     --  P_Begin_Statement
--- 1927,1944 ----
  
        if No (Block_Name) then
           Created_Name :=
!            Make_Identifier (Sloc (Block), Set_Loop_Block_Name ('B'));
           Set_Comes_From_Source (Created_Name, False);
!          Set_Has_Created_Identifier (Block, True);
!          Set_Identifier (Block, Created_Name);
           Scopes (Scope.Last).Labl := Created_Name;
        else
!          Set_Identifier (Block, Block_Name);
        end if;
  
!       Append_Elmt (Block, Label_List);
!       Parse_Decls_Begin_End (Block);
!       return Block;
     end P_Declare_Statement;
  
     --  P_Begin_Statement
*************** package body Ch5 is
*** 1942,1952 ****
       (Block_Name : Node_Id := Empty)
        return       Node_Id
     is
!       Block_Node   : Node_Id;
        Created_Name : Node_Id;
  
     begin
!       Block_Node := New_Node (N_Block_Statement, Token_Ptr);
  
        Push_Scope_Stack;
        Scopes (Scope.Last).Etyp := E_Name;
--- 1953,1963 ----
       (Block_Name : Node_Id := Empty)
        return       Node_Id
     is
!       Block        : Node_Id;
        Created_Name : Node_Id;
  
     begin
!       Block := New_Node (N_Block_Statement, Token_Ptr);
  
        Push_Scope_Stack;
        Scopes (Scope.Last).Etyp := E_Name;
*************** package body Ch5 is
*** 1957,1980 ****
  
        if No (Block_Name) then
           Created_Name :=
!            Make_Identifier (Sloc (Block_Node), Set_Loop_Block_Name ('B'));
           Set_Comes_From_Source (Created_Name, False);
!          Set_Has_Created_Identifier (Block_Node, True);
!          Set_Identifier (Block_Node, Created_Name);
           Scopes (Scope.Last).Labl := Created_Name;
        else
!          Set_Identifier (Block_Node, Block_Name);
        end if;
  
!       Append_Elmt (Block_Node, Label_List);
  
        Scopes (Scope.Last).Ecol := Start_Column;
        Scopes (Scope.Last).Sloc := Token_Ptr;
        Scan; -- past BEGIN
        Set_Handled_Statement_Sequence
!         (Block_Node, P_Handled_Sequence_Of_Statements);
!       End_Statements (Handled_Statement_Sequence (Block_Node));
!       return Block_Node;
     end P_Begin_Statement;
  
     -------------------------
--- 1968,1991 ----
  
        if No (Block_Name) then
           Created_Name :=
!            Make_Identifier (Sloc (Block), Set_Loop_Block_Name ('B'));
           Set_Comes_From_Source (Created_Name, False);
!          Set_Has_Created_Identifier (Block, True);
!          Set_Identifier (Block, Created_Name);
           Scopes (Scope.Last).Labl := Created_Name;
        else
!          Set_Identifier (Block, Block_Name);
        end if;
  
!       Append_Elmt (Block, Label_List);
  
        Scopes (Scope.Last).Ecol := Start_Column;
        Scopes (Scope.Last).Sloc := Token_Ptr;
        Scan; -- past BEGIN
        Set_Handled_Statement_Sequence
!         (Block, P_Handled_Sequence_Of_Statements);
!       End_Statements (Handled_Statement_Sequence (Block));
!       return Block;
     end P_Begin_Statement;
  
     -------------------------
*************** package body Ch5 is
*** 1995,2040 ****
  
     begin
        Exit_Node := New_Node (N_Exit_Statement, Token_Ptr);
-       Scan; -- past EXIT
- 
-       if Token = Tok_Identifier then
-          Set_Name (Exit_Node, P_Qualified_Simple_Name);
  
!       elsif Style_Check then
!          --  This EXIT has no name, so check that
!          --  the innermost loop is unnamed too.
! 
!          Check_No_Exit_Name :
!          for J in reverse 1 .. Scope.Last loop
!             if Scopes (J).Etyp = E_Loop then
!                if Present (Scopes (J).Labl)
!                  and then Comes_From_Source (Scopes (J).Labl)
!                then
!                   --  Innermost loop in fact had a name, style check fails
! 
!                   Style.No_Exit_Name (Scopes (J).Labl);
!                end if;
! 
!                exit Check_No_Exit_Name;
!             end if;
!          end loop Check_No_Exit_Name;
!       end if;
  
!       if Token = Tok_When and then not Missing_Semicolon_On_When then
!          Scan; -- past WHEN
!          Set_Condition (Exit_Node, P_Condition);
  
!       --  Allow IF instead of WHEN, giving error message
  
!       elsif Token = Tok_If then
!          T_When;
!          Scan; -- past IF used in place of WHEN
!          Set_Condition (Exit_Node, P_Expression_No_Right_Paren);
!       end if;
  
!       TF_Semicolon;
!       return Exit_Node;
!    end P_Exit_Statement;
  
     -------------------------
     -- 5.8  Goto Statement --
--- 2006,2029 ----
  
     begin
        Exit_Node := New_Node (N_Exit_Statement, Token_Ptr);
  
!       Parse_Loop_Flow_Statement (Exit_Node);
  
!       return Exit_Node;
!    end P_Exit_Statement;
  
!    --------------------------------------
!    -- GNAT-specific Continue Statement --
!    --------------------------------------
  
!    function P_Continue_Statement return Node_Id is
!       Continue_Node : constant Node_Id :=
!         New_Node (N_Continue_Statement, Token_Ptr);
!    begin
!       Parse_Loop_Flow_Statement (Continue_Node);
  
!       return Continue_Node;
!    end P_Continue_Statement;
  
     -------------------------
     -- 5.8  Goto Statement --
*************** package body Ch5 is
*** 2053,2059 ****
     begin
        Goto_Node := New_Node (N_Goto_Statement, Token_Ptr);
        Scan; -- past GOTO (or TO)
!       Set_Name (Goto_Node, P_Qualified_Simple_Name_Resync);
        Append_Elmt (Goto_Node, Goto_List);
  
        if Token = Tok_When then
--- 2042,2048 ----
     begin
        Goto_Node := New_Node (N_Goto_Statement, Token_Ptr);
        Scan; -- past GOTO (or TO)
!       Set_Name (Goto_Node, P_Label_Name);
        Append_Elmt (Goto_Node, Goto_List);
  
        if Token = Tok_When then
*************** package body Ch5 is
*** 2395,2398 ****
--- 2384,2431 ----
        end if;
     end Then_Scan;
  
+    -------------------------------
+    -- Parse_Loop_Flow_Statement --
+    -------------------------------
+ 
+    procedure Parse_Loop_Flow_Statement (N : N_Loop_Flow_Statement_Id) is
+    begin
+       Scan; -- past EXIT or CONTINUE
+ 
+       if Token = Tok_Identifier then
+          Set_Name (N, P_Loop_Name);
+       elsif Style_Check and then Nkind (N) = N_Exit_Statement then
+          --  This statement has no name, so check that
+          --  the innermost loop is unnamed too.
+ 
+          Check_No_Exit_Name :
+          for J in reverse 1 .. Scope.Last loop
+             if Scopes (J).Etyp = E_Loop then
+                if Present (Scopes (J).Labl)
+                  and then Comes_From_Source (Scopes (J).Labl)
+                then
+                   --  Innermost loop in fact had a name, style check fails
+ 
+                   Style.No_Exit_Name (Scopes (J).Labl);
+                end if;
+ 
+                exit Check_No_Exit_Name;
+             end if;
+          end loop Check_No_Exit_Name;
+       end if;
+ 
+       if Token = Tok_When and then not Missing_Semicolon_On_When then
+          Scan; -- past WHEN
+          Set_Condition (N, P_Condition);
+ 
+       --  Allow IF instead of WHEN, giving error message
+ 
+       elsif Token = Tok_If then
+          T_When;
+          Scan; -- past IF used in place of WHEN
+          Set_Condition (N, P_Expression_No_Right_Paren);
+       end if;
+ 
+       TF_Semicolon;
+    end Parse_Loop_Flow_Statement;
  end Ch5;
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch6.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch6.adb
*** gcc-15.2.0/gcc/ada/par-ch6.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch6.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 128,134 ****
  
     --  This routine scans out a subprogram declaration, subprogram body,
     --  subprogram renaming declaration or subprogram generic instantiation.
!    --  It also handles the new Ada 2012 expression function form
  
     --  SUBPROGRAM_DECLARATION ::=
     --    SUBPROGRAM_SPECIFICATION
--- 128,135 ----
  
     --  This routine scans out a subprogram declaration, subprogram body,
     --  subprogram renaming declaration or subprogram generic instantiation.
!    --  It also handles the new Ada 2012 expression function form, and the GNAT
!    --  extension for direct attribute definition.
  
     --  SUBPROGRAM_DECLARATION ::=
     --    SUBPROGRAM_SPECIFICATION
*************** package body Ch6 is
*** 141,146 ****
--- 142,150 ----
     --  SUBPROGRAM_SPECIFICATION ::=
     --      procedure DEFINING_PROGRAM_UNIT_NAME PARAMETER_PROFILE
     --    | function DEFINING_DESIGNATOR PARAMETER_AND_RESULT_PROFILE
+    --    | procedure LOCAL_NAME'ATTRIBUTE_DESIGNATOR PARAMETER_PROFILE
+    --    | function LOCAL_NAME'ATTRIBUTE_DESIGNATOR
+    --        PARAMETER_AND_RESULT_PROFILE
  
     --  PARAMETER_PROFILE ::= [FORMAL_PART]
  
*************** package body Ch6 is
*** 190,195 ****
--- 194,206 ----
        function Contains_Import_Aspect (Aspects : List_Id) return Boolean;
        --  Return True if Aspects contains an Import aspect.
  
+       procedure Rewrite_Entity_If_Direct_Attribute_Def
+         (Name : Node_Id; Spec : Node_Id);
+       --  In case of direct attribute definitions this procedure rewrites the
+       --  defining unit name of the specification node with a new entity. It is
+       --  essential to maintain the information that the original node comes
+       --  from a direct attribute definition.
+ 
        ----------------------------
        -- Contains_Import_Aspect --
        ----------------------------
*************** package body Ch6 is
*** 208,213 ****
--- 219,256 ----
           return False;
        end Contains_Import_Aspect;
  
+       --------------------------------------------
+       -- Rewrite_Entity_If_Direct_Attribute_Def --
+       --------------------------------------------
+ 
+       procedure Rewrite_Entity_If_Direct_Attribute_Def
+         (Name : Node_Id; Spec : Node_Id)
+       is
+          New_Entity, Copy_Spec : Node_Id;
+       begin
+          if Nkind (Name) = N_Attribute_Reference
+            and then Is_Direct_Attribute_Definition_Name (Attribute_Name (Name))
+          then
+             --  Note that, this workaround is needed to retain the info that
+             --  the current subprogram comes from a direct attribute
+             --  definition. Otherwise, we would need to add an entity flag like
+             --  Is_Direct_Attribute_Definition ???
+ 
+             Copy_Spec := New_Copy (Spec);
+ 
+             New_Entity := Make_Defining_Identifier (Sloc (Name),
+               Direct_Attribute_Definition_Name
+                 (Prefix (Name), Attribute_Name (Name)));
+             Set_Comes_From_Source (New_Entity);
+             Set_Parent (New_Entity, Copy_Spec);
+ 
+             Set_Defining_Unit_Name (Copy_Spec, New_Entity);
+             Rewrite (Spec, Copy_Spec);
+          end if;
+       end Rewrite_Entity_If_Direct_Attribute_Def;
+ 
+       --  Local variables
+ 
        Specification_Node : Node_Id;
        Name_Node          : Node_Id;
        Aspects            : List_Id;
*************** package body Ch6 is
*** 232,237 ****
--- 275,282 ----
        Is_Overriding  : Boolean := False;
        Not_Overriding : Boolean := False;
  
+    --  Start of processing for P_Subprogram
+ 
     begin
        --  Set up scope stack entry. Note that the Labl field will be set later
  
*************** package body Ch6 is
*** 343,353 ****
           Name_Node := P_Defining_Program_Unit_Name;
        end if;
  
        Scopes (Scope.Last).Labl := Name_Node;
        Ignore (Tok_Colon);
  
        --  Deal with generic instantiation, the one case in which we do not
!       --  have a subprogram specification as part of whatever we are parsing
  
        if Token = Tok_Is then
           Save_Scan_State (Scan_State); -- at the IS
--- 388,406 ----
           Name_Node := P_Defining_Program_Unit_Name;
        end if;
  
+       --  Deal with direct attribute definition in subprogram specification
+ 
+       if Token = Tok_Apostrophe then
+          Error_Msg_GNAT_Extension ("direct attribute definition", Token_Ptr);
+ 
+          Name_Node := P_Attribute_Designators (Name_Node);
+       end if;
+ 
        Scopes (Scope.Last).Labl := Name_Node;
        Ignore (Tok_Colon);
  
        --  Deal with generic instantiation, the one case in which we do not
!       --  have a subprogram specification as part of whatever we are parsing.
  
        if Token = Tok_Is then
           Save_Scan_State (Scan_State); -- at the IS
*************** package body Ch6 is
*** 362,374 ****
  
              if Func then
                 Inst_Node := New_Node (N_Function_Instantiation, Fproc_Sloc);
-                Set_Name (Inst_Node, P_Function_Name);
              else
                 Inst_Node := New_Node (N_Procedure_Instantiation, Fproc_Sloc);
-                Set_Name (Inst_Node, P_Qualified_Simple_Name);
              end if;
  
              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
--- 415,426 ----
  
              if Func then
                 Inst_Node := New_Node (N_Function_Instantiation, Fproc_Sloc);
              else
                 Inst_Node := New_Node (N_Procedure_Instantiation, Fproc_Sloc);
              end if;
  
              Set_Defining_Unit_Name (Inst_Node, Name_Node);
+             Set_Name (Inst_Node, P_Generic_Unit_Name);
              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
*************** package body Ch6 is
*** 941,946 ****
--- 993,1001 ----
                    Parse_Decls_Begin_End (Body_Node);
                 end if;
  
+                Rewrite_Entity_If_Direct_Attribute_Def
+                  (Name_Node, Specification_Node);
+ 
                 return Body_Node;
              end Scan_Body_Or_Expression_Function;
           end if;
*************** package body Ch6 is
*** 953,958 ****
--- 1008,1016 ----
           Set_Specification (Decl_Node, Specification_Node);
           Aspects := Get_Aspect_Specifications (Semicolon => False);
  
+          Rewrite_Entity_If_Direct_Attribute_Def
+            (Name_Node, Specification_Node);
+ 
           --  Aspects may be present on a subprogram body. The source parsed
           --  so far is that of its specification. Go parse the body and attach
           --  the collected aspects, if any, to the body.
*************** package body Ch6 is
*** 1385,1404 ****
        Specification_List : List_Id;
        Specification_Node : Node_Id;
        Scan_State         : Saved_Scan_State;
-       Num_Idents         : Nat;
-       Ident              : Nat;
        Ident_Sloc         : Source_Ptr;
        Not_Null_Present   : Boolean := False;
        Not_Null_Sloc      : Source_Ptr;
  
-       Idents : array (Int range 1 .. 4096) of Entity_Id;
-       --  This array holds the list of defining identifiers. The upper bound
-       --  of 4096 is intended to be essentially infinite, and we do not even
-       --  bother to check for it being exceeded.
- 
     begin
        Specification_List := New_List;
        Specification_Loop : loop
           begin
              if Token = Tok_Pragma then
                 Error_Msg_SC ("pragma not allowed in formal part");
--- 1443,1458 ----
        Specification_List : List_Id;
        Specification_Node : Node_Id;
        Scan_State         : Saved_Scan_State;
        Ident_Sloc         : Source_Ptr;
        Not_Null_Present   : Boolean := False;
        Not_Null_Sloc      : Source_Ptr;
  
     begin
        Specification_List := New_List;
        Specification_Loop : loop
+          declare
+             Def_Ids : Defining_Identifiers;
+             Ident   : Pos;
           begin
              if Token = Tok_Pragma then
                 Error_Msg_SC ("pragma not allowed in formal part");
*************** package body Ch6 is
*** 1407,1414 ****
  
              Ignore (Tok_Left_Paren);
              Ident_Sloc := Token_Ptr;
!             Idents (1) := P_Defining_Identifier (C_Comma_Colon);
!             Num_Idents := 1;
  
              Ident_Loop : loop
                 exit Ident_Loop when Token = Tok_Colon;
--- 1461,1467 ----
  
              Ignore (Tok_Left_Paren);
              Ident_Sloc := Token_Ptr;
!             Append (Def_Ids, P_Defining_Identifier (C_Comma_Colon));
  
              Ident_Loop : loop
                 exit Ident_Loop when Token = Tok_Colon;
*************** package body Ch6 is
*** 1458,1478 ****
                 --  Here if a comma is present, or to be assumed
  
                 T_Comma;
!                Num_Idents := Num_Idents + 1;
!                Idents (Num_Idents) := P_Defining_Identifier (C_Comma_Colon);
              end loop Ident_Loop;
  
!             --  Fall through the loop on encountering a colon, or deciding
!             --  that there is a missing colon.
  
              T_Colon;
  
!             --  If there are multiple identifiers, we repeatedly scan the
!             --  type and initialization expression information by resetting
!             --  the scan pointer (so that we get completely separate trees
!             --  for each occurrence).
! 
!             if Num_Idents > 1 then
                 Save_Scan_State (Scan_State);
              end if;
  
--- 1511,1525 ----
                 --  Here if a comma is present, or to be assumed
  
                 T_Comma;
!                Append (Def_Ids, P_Defining_Identifier (C_Comma_Colon));
              end loop Ident_Loop;
  
!             --  We exited from the above loop upon encountering a colon or
!             --  deciding that there is a missing colon.
  
              T_Colon;
  
!             if Def_Ids.Num_Idents > 1 then
                 Save_Scan_State (Scan_State);
              end if;
  
*************** package body Ch6 is
*** 1483,1489 ****
              Ident_List_Loop : loop
                 Specification_Node :=
                   New_Node (N_Parameter_Specification, Ident_Sloc);
!                Set_Defining_Identifier (Specification_Node, Idents (Ident));
  
                 --  Scan possible ALIASED for Ada 2012 (AI-142)
  
--- 1530,1537 ----
              Ident_List_Loop : loop
                 Specification_Node :=
                   New_Node (N_Parameter_Specification, Ident_Sloc);
!                Set_Defining_Identifier
!                  (Specification_Node, Def_Ids.Idents (Ident));
  
                 --  Scan possible ALIASED for Ada 2012 (AI-142)
  
*************** package body Ch6 is
*** 1575,1586 ****
                    Set_Prev_Ids (Specification_Node, True);
                 end if;
  
!                if Ident < Num_Idents then
                    Set_More_Ids (Specification_Node, True);
                 end if;
  
                 Append (Specification_Node, Specification_List);
!                exit Ident_List_Loop when Ident = Num_Idents;
                 Ident := Ident + 1;
                 Restore_Scan_State (Scan_State);
              end loop Ident_List_Loop;
--- 1623,1634 ----
                    Set_Prev_Ids (Specification_Node, True);
                 end if;
  
!                if Ident < Def_Ids.Num_Idents then
                    Set_More_Ids (Specification_Node, True);
                 end if;
  
                 Append (Specification_Node, Specification_List);
!                exit Ident_List_Loop when Ident = Def_Ids.Num_Idents;
                 Ident := Ident + 1;
                 Restore_Scan_State (Scan_State);
              end loop Ident_List_Loop;
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch7.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch7.adb
*** gcc-15.2.0/gcc/ada/par-ch7.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch7.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 187,193 ****
              Package_Node :=
                New_Node (N_Package_Renaming_Declaration, Package_Sloc);
              Set_Defining_Unit_Name (Package_Node, Name_Node);
!             Set_Name (Package_Node, P_Qualified_Simple_Name);
  
              No_Constraint;
              P_Aspect_Specifications (Package_Node, Semicolon => False);
--- 187,193 ----
              Package_Node :=
                New_Node (N_Package_Renaming_Declaration, Package_Sloc);
              Set_Defining_Unit_Name (Package_Node, Name_Node);
!             Set_Name (Package_Node, P_Package_Name);
  
              No_Constraint;
              P_Aspect_Specifications (Package_Node, Semicolon => False);
*************** package body Ch7 is
*** 224,230 ****
                 Package_Node :=
                   New_Node (N_Package_Instantiation, Package_Sloc);
                 Set_Defining_Unit_Name (Package_Node, Name_Node);
!                Set_Name (Package_Node, P_Qualified_Simple_Name);
                 Set_Generic_Associations
                   (Package_Node, P_Generic_Actual_Part_Opt);
  
--- 224,230 ----
                 Package_Node :=
                   New_Node (N_Package_Instantiation, Package_Sloc);
                 Set_Defining_Unit_Name (Package_Node, Name_Node);
!                Set_Name (Package_Node, P_Generic_Unit_Name);
                 Set_Generic_Associations
                   (Package_Node, P_Generic_Actual_Part_Opt);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch8.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch8.adb
*** gcc-15.2.0/gcc/ada/par-ch8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch8.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Ch8 is
*** 128,134 ****
  
        loop
           Use_Node := New_Node (N_Use_Package_Clause, Use_Sloc);
!          Set_Name (Use_Node, P_Qualified_Simple_Name);
  
           --  Locally chain each name's use-package node
  
--- 128,134 ----
  
        loop
           Use_Node := New_Node (N_Use_Package_Clause, Use_Sloc);
!          Set_Name (Use_Node, P_Package_Name);
  
           --  Locally chain each name's use-package node
  
diff -Nrcpad gcc-15.2.0/gcc/ada/par-ch9.adb gcc-16.1.0-RC-20260423/gcc/ada/par-ch9.adb
*** gcc-15.2.0/gcc/ada/par-ch9.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-ch9.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 221,227 ****
                 Set_Interface_List (Task_Node, New_List);
  
                 loop
!                   Append (P_Qualified_Simple_Name, Interface_List (Task_Node));
                    exit when Token /= Tok_And;
                    Scan; --  past AND
                 end loop;
--- 221,227 ----
                 Set_Interface_List (Task_Node, New_List);
  
                 loop
!                   Append (P_Subtype_Name, Interface_List (Task_Node));
                    exit when Token /= Tok_And;
                    Scan; --  past AND
                 end loop;
*************** package body Ch9 is
*** 557,564 ****
              Set_Interface_List (Protected_Node, New_List);
  
              loop
!                Append (P_Qualified_Simple_Name,
!                  Interface_List (Protected_Node));
  
                 exit when Token /= Tok_And;
                 Scan; --  past AND
--- 557,563 ----
              Set_Interface_List (Protected_Node, New_List);
  
              loop
!                Append (P_Subtype_Name, Interface_List (Protected_Node));
  
                 exit when Token /= Tok_And;
                 Scan; --  past AND
diff -Nrcpad gcc-15.2.0/gcc/ada/par-endh.adb gcc-16.1.0-RC-20260423/gcc/ada/par-endh.adb
*** gcc-15.2.0/gcc/ada/par-endh.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-endh.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with Namet.Sp; use Namet.Sp;
  with Stringt;  use Stringt;
  with Uintp;    use Uintp;
  
  with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
- with Diagnostics.Constructors; use Diagnostics.Constructors;
  
  separate (Par)
  package body Endh is
--- 23,34 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
+ with Errid;    use Errid;
  with Namet.Sp; use Namet.Sp;
  with Stringt;  use Stringt;
  with Uintp;    use Uintp;
  
  with GNAT.Spelling_Checker; use GNAT.Spelling_Checker;
  
  separate (Par)
  package body Endh is
*************** package body Endh is
*** 156,167 ****
     function Same_Label (Label1, Label2 : Node_Id) return Boolean;
     --  This function compares the two names associated with the given nodes.
     --  If they are both simple (i.e. have Chars fields), then they have to
!    --  be the same name. Otherwise they must both be N_Selected_Component
!    --  nodes, referring to the same set of names, or Label1 is an N_Designator
!    --  referring to the same set of names as the N_Defining_Program_Unit_Name
!    --  in Label2. Any other combination returns False. This routine is used
!    --  to compare the End_Labl scanned from the End line with the saved label
!    --  value in the scope stack.
  
     ---------------
     -- Check_End --
--- 156,167 ----
     function Same_Label (Label1, Label2 : Node_Id) return Boolean;
     --  This function compares the two names associated with the given nodes.
     --  If they are both simple (i.e. have Chars fields), then they have to
!    --  be the same name. If they are both N_Selected_Component or
!    --  N_Attribute_Reference nodes, they must refer to the same set of names.
!    --  Otherwise, Label1 must be a N_Designator referring to the same set of
!    --  names as the N_Defining_Program_Unit_Name in Label2. Any other
!    --  combination returns False. This routine is used to compare the End_Labl
!    --  scanned from the End line with the saved label value in the scope stack.
  
     ---------------
     -- Check_End --
*************** package body Endh is
*** 270,275 ****
--- 270,285 ----
                 end if;
  
                 End_Labl := P_Designator;
+ 
+                --  Case of direct attribute definition
+ 
+                if Token = Tok_Apostrophe then
+                   Error_Msg_GNAT_Extension
+                     ("direct attribute definition", Token_Ptr);
+ 
+                   End_Labl := P_Attribute_Designators (End_Labl);
+                end if;
+ 
                 End_Labl_Present := True;
  
                 --  We have now scanned out a name. Here is where we do a check
*************** package body Endh is
*** 300,306 ****
              else
                 End_Labl := Scopes (Scope.Last).Labl;
  
!                if End_Labl > Empty_Or_Error then
  
                    --  The task here is to construct a designator from the
                    --  opening label, with the components all marked as not
--- 310,316 ----
              else
                 End_Labl := Scopes (Scope.Last).Labl;
  
!                if End_Labl not in Empty | Error then
  
                    --  The task here is to construct a designator from the
                    --  opening label, with the components all marked as not
*************** package body Endh is
*** 658,665 ****
              Scan; -- past junk token on same line
           end loop;
        end if;
- 
-       return;
     end End_Skip;
  
     --------------------
--- 668,673 ----
*************** package body Endh is
*** 899,904 ****
--- 907,914 ----
  
        Wrong_End_Start : Source_Ptr;
        Wrong_End_Finish : Source_Ptr;
+ 
+       Wrong_End_Span : Source_Span;
     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
*** 919,925 ****
  
        --  Suppress message if error was posted on opening label
  
!       if Error_Msg_Node_1 > Empty_Or_Error
          and then Error_Posted (Error_Msg_Node_1)
        then
           return;
--- 929,935 ----
  
        --  Suppress message if error was posted on opening label
  
!       if Error_Msg_Node_1 not in Empty | Error
          and then Error_Posted (Error_Msg_Node_1)
        then
           return;
*************** package body Endh is
*** 936,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@!");
--- 946,983 ----
        elsif End_Type = E_Loop then
           if Error_Msg_Node_1 = Empty then
  
!             Wrong_End_Start := Token_Ptr;
  
!             while Token /= Tok_Semicolon loop
!                Scan; -- past semicolon
!             end loop;
  
!             Wrong_End_Finish := Token_Ptr;
  
!             Wrong_End_Span :=
!               To_Span
!                 (First => Wrong_End_Start,
!                  Ptr   => Wrong_End_Start,
!                  Last  => Wrong_End_Finish);
  
!             Restore_Scan_State (Scan_State);
  
!             Error_Msg -- CODEFIX
!               (Msg        => "`END LOOP;` expected@ for LOOP#!",
!                Flag_Span  => Wrong_End_Span,
!                N          => Empty,
!                Error_Code => GNAT0004,
!                Spans      =>
!                  (1 => Secondary_Labeled_Span (To_Span (Error_Msg_Sloc))),
!                Fixes      =>
!                  (1 =>
!                     Fix
!                       (Description => "Replace with 'end loop;'",
!                        Edits       =>
!                          (1 =>
!                             Edit
!                               (Text => "end loop;",
!                                Span => Wrong_End_Span)))));
           else
              Error_Msg_SC -- CODEFIX
                ("`END LOOP &;` expected@!");
*************** package body Endh is
*** 1352,1357 ****
--- 1369,1380 ----
           return Same_Label (Prefix (Label1), Prefix (Label2)) and then
             Same_Label (Selector_Name (Label1), Selector_Name (Label2));
  
+       elsif Nkind (Label1) = N_Attribute_Reference
+         and then Nkind (Label2) = N_Attribute_Reference
+       then
+          return Same_Label (Prefix (Label1), Prefix (Label2)) and then
+            Attribute_Name (Label1) = Attribute_Name (Label2);
+ 
        elsif Nkind (Label1) = N_Designator
          and then Nkind (Label2) = N_Defining_Program_Unit_Name
        then
diff -Nrcpad gcc-15.2.0/gcc/ada/par-labl.adb gcc-16.1.0-RC-20260423/gcc/ada/par-labl.adb
*** gcc-15.2.0/gcc/ada/par-labl.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-labl.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/par-load.adb gcc-16.1.0-RC-20260423/gcc/ada/par-load.adb
*** gcc-15.2.0/gcc/ada/par-load.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-load.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Load is
*** 83,89 ****
     --  withed units and the second round handles Ada 2005 limited-withed units.
     --  This is required to allow the low-level circuitry that detects circular
     --  dependencies of units the correct notification of errors (see comment
!    --  bellow). This variable is used to indicate that the second round is
     --  required.
  
     function Same_File_Name_Except_For_Case
--- 83,89 ----
     --  withed units and the second round handles Ada 2005 limited-withed units.
     --  This is required to allow the low-level circuitry that detects circular
     --  dependencies of units the correct notification of errors (see comment
!    --  below). This variable is used to indicate that the second round is
     --  required.
  
     function Same_File_Name_Except_For_Case
*************** procedure Load is
*** 117,122 ****
--- 117,145 ----
  
     end Same_File_Name_Except_For_Case;
  
+    function Actual_Name_Collides_With_Predefined_Unit_Name
+      (Actual_File_Name : File_Name_Type) return Boolean;
+    --  Given an actual file name, determine if it is a child unit whose parent
+    --  unit is a single letter that is a, g, i, or s. Such a name could create
+    --  confusion with predefined units and thus is required to use a tilde
+    --  instead of the minus as the second character.
+ 
+    ----------------------------------------------------
+    -- Actual_Name_Collides_With_Predefined_Unit_Name --
+    ----------------------------------------------------
+ 
+    function Actual_Name_Collides_With_Predefined_Unit_Name
+      (Actual_File_Name : File_Name_Type) return Boolean
+    is
+       N1 : Character;
+    begin
+       Get_Name_String (Actual_File_Name);
+       N1 := Name_Buffer (1);
+       return Name_Len > 1
+         and then Name_Buffer (2) = '-'
+         and then (N1 = 'a' or else N1 = 'g' or else N1 = 'i' or else N1 = 's');
+    end Actual_Name_Collides_With_Predefined_Unit_Name;
+ 
  --  Start of processing for Load
  
  begin
*************** begin
*** 163,170 ****
                           (File_Name, Unit_File_Name (Cur_Unum)))
     then
        Error_Msg_File_1 := File_Name;
!       Error_Msg
!         ("??file name does not match unit name, should be{", Sloc (Curunit));
     end if;
  
     --  For units other than the main unit, the expected unit name is set and
--- 186,203 ----
                           (File_Name, Unit_File_Name (Cur_Unum)))
     then
        Error_Msg_File_1 := File_Name;
!       if Actual_Name_Collides_With_Predefined_Unit_Name
!            (Unit_File_Name (Cur_Unum))
!       then
!          Error_Msg
!            ("??file name may conflict with predefined units, "
!             & "the expected file name for this unit is{",
!             Sloc (Curunit));
!       else
!          Error_Msg
!            ("??file name does not match unit name, should be{",
!             Sloc (Curunit));
!       end if;
     end if;
  
     --  For units other than the main unit, the expected unit name is set and
diff -Nrcpad gcc-15.2.0/gcc/ada/par-prag.adb gcc-16.1.0-RC-20260423/gcc/ada/par-prag.adb
*** gcc-15.2.0/gcc/ada/par-prag.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-prag.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 305,311 ****
     --  it is a semantic error, not a syntactic one (we have already checked
     --  the syntax for the unrecognized pragma as required by (RM 2.8(11)).
  
!    if Prag_Id = Unknown_Pragma then
        return Pragma_Node;
     end if;
  
--- 305,311 ----
     --  it is a semantic error, not a syntactic one (we have already checked
     --  the syntax for the unrecognized pragma as required by (RM 2.8(11)).
  
!    if Prag_Id = Pragma_Unknown then
        return Pragma_Node;
     end if;
  
*************** begin
*** 1394,1399 ****
--- 1394,1400 ----
           | Pragma_Annotate
           | Pragma_Assert
           | Pragma_Assert_And_Cut
+          | Pragma_Assertion_Level
           | Pragma_Assertion_Policy
           | Pragma_Assume
           | Pragma_Assume_No_Invalid_Values
*************** begin
*** 1548,1553 ****
--- 1549,1555 ----
           | Pragma_Priority_Specific_Dispatching
           | Pragma_Profile
           | Pragma_Profile_Warnings
+          | Pragma_Program_Exit
           | Pragma_Propagate_Exceptions
           | Pragma_Provide_Shift_Operators
           | Pragma_Psect_Object
*************** begin
*** 1606,1611 ****
--- 1608,1614 ----
           | Pragma_Unreferenced
           | Pragma_Unreferenced_Objects
           | Pragma_Unreserve_All_Interrupts
+          | Pragma_Unsigned_Base_Range
           | Pragma_Unsuppress
           | Pragma_Unused
           | Pragma_Use_VADS_Size
*************** begin
*** 1619,1630 ****
           null;
  
        --------------------
!       -- Unknown_Pragma --
        --------------------
  
        --  Should be impossible, since we excluded this case earlier on
  
!       when Unknown_Pragma =>
           raise Program_Error;
  
     end case;
--- 1622,1633 ----
           null;
  
        --------------------
!       -- Pragma_Unknown --
        --------------------
  
        --  Should be impossible, since we excluded this case earlier on
  
!       when Pragma_Unknown =>
           raise Program_Error;
  
     end case;
diff -Nrcpad gcc-15.2.0/gcc/ada/par-sync.adb gcc-16.1.0-RC-20260423/gcc/ada/par-sync.adb
*** gcc-15.2.0/gcc/ada/par-sync.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-sync.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/par-tchk.adb gcc-16.1.0-RC-20260423/gcc/ada/par-tchk.adb
*** gcc-15.2.0/gcc/ada/par-tchk.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-tchk.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Tchk is
*** 513,519 ****
  
        Error_Msg_AP -- CODEFIX
          ("|missing "";""");
-       return;
     end T_Semicolon;
  
     ------------
--- 513,518 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/par-util.adb gcc-16.1.0-RC-20260423/gcc/ada/par-util.adb
*** gcc-15.2.0/gcc/ada/par-util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par-util.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Spelling_Checker; use GNAT.Spe
*** 34,134 ****
  separate (Par)
  package body Util is
  
     ---------------------
     -- Bad_Spelling_Of --
     ---------------------
  
     function Bad_Spelling_Of (T : Token_Type) return Boolean is
-       Tname : constant String := Token_Type'Image (T);
-       --  Characters of token name
  
!       S : String (1 .. Tname'Last - 4);
!       --  Characters of token name folded to lower case, omitting TOK_ at start
  
!       M1 : String (1 .. 42) := "incorrect spelling of keyword ************";
!       M2 : String (1 .. 44) := "illegal abbreviation of keyword ************";
!       --  Buffers used to construct error message
  
!       P1 : constant := 30;
!       P2 : constant := 32;
!       --  Starting subscripts in M1, M2 for keyword name
  
!       SL : constant Natural := S'Length;
!       --  Length of expected token name excluding TOK_ at start
  
!    begin
!       if Token /= Tok_Identifier then
!          return False;
!       end if;
  
!       for J in S'Range loop
!          S (J) := Fold_Lower (Tname (J + 4));
!       end loop;
  
!       Get_Name_String (Token_Name);
  
!       --  A special check for case of PROGRAM used for PROCEDURE
  
!       if T = Tok_Procedure
!         and then Name_Len = 7
!         and then Name_Buffer (1 .. 7) = "program"
!       then
!          Error_Msg_SC -- CODEFIX
!            ("PROCEDURE expected");
!          Token := T;
!          return True;
  
!       --  A special check for an illegal abbreviation
  
!       elsif Name_Len < S'Length
!         and then Name_Len >= 4
!         and then Name_Buffer (1 .. Name_Len) = S (1 .. Name_Len)
!       then
!          for J in 1 .. S'Last loop
!             M2 (P2 + J - 1) := Fold_Upper (S (J));
!          end loop;
  
!          Error_Msg_SC (M2 (1 .. P2 - 1 + S'Last));
!          Token := T;
!          return True;
!       end if;
  
!       --  Now we go into the full circuit to check for a misspelling
  
!       --  Never consider something a misspelling if either the actual or
!       --  expected string is less than 3 characters (before this check we
!       --  used to consider i to be a misspelled if in some cases).
  
!       if SL < 3 or else Name_Len < 3 then
!          return False;
  
!       --  Special case: prefix matches, i.e. the leading characters of the
!       --  token that we have exactly match the required keyword. If there
!       --  are at least two characters left over, assume that we have a case
!       --  of two keywords joined together which should not be joined.
  
!       elsif Name_Len > SL + 1
!         and then S = Name_Buffer (1 .. SL)
!       then
!          Scan_Ptr := Token_Ptr + S'Length;
!          Error_Msg_S ("|missing space");
!          Token := T;
!          return True;
!       end if;
  
!       if Is_Bad_Spelling_Of (Name_Buffer (1 .. Name_Len), S) then
!          for J in 1 .. S'Last loop
!             M1 (P1 + J - 1) := Fold_Upper (S (J));
!          end loop;
  
!          Error_Msg_SC -- CODFIX
!            (M1 (1 .. P1 - 1 + S'Last));
!          Token := T;
!          return True;
  
!       else
!          return False;
!       end if;
     end Bad_Spelling_Of;
  
     ----------------------
--- 34,162 ----
  separate (Par)
  package body Util is
  
+    ------------
+    -- Append --
+    ------------
+ 
+    procedure Append
+      (Def_Ids : in out Defining_Identifiers; Def_Id : Entity_Id)
+    is
+    begin
+       if Def_Ids.Num_Idents >= Defining_Identifiers_Array'Last then
+          raise Program_Error;
+       end if;
+ 
+       Def_Ids.Num_Idents := Def_Ids.Num_Idents + 1;
+       Def_Ids.Idents (Def_Ids.Num_Idents) := Def_Id;
+    end Append;
+ 
     ---------------------
     -- Bad_Spelling_Of --
     ---------------------
  
     function Bad_Spelling_Of (T : Token_Type) return Boolean is
  
!       function Bad_Spelling_Helper return Boolean;
!       --  This does all the work, except setting of Token and Token_Node
  
!       function Bad_Spelling_Helper return Boolean is
!          Tname : constant String := Token_Type'Image (T);
!          --  Characters of token name
  
!          S : String (1 .. Tname'Last - 4);
!          --  Characters of token name folded to lower case, omitting TOK_ at
!          --  start.
  
!          M1 : String (1 .. 42) := "incorrect spelling of keyword ************";
!          M2 : String (1 .. 44) :=
!            "illegal abbreviation of keyword ************";
!          --  Buffers used to construct error message
  
!          P1 : constant := 30;
!          P2 : constant := 32;
!          --  Starting subscripts in M1, M2 for keyword name
  
!          SL : constant Natural := S'Length;
!          --  Length of expected token name excluding TOK_ at start
  
!       begin
!          if Token /= Tok_Identifier then
!             return False;
!          end if;
  
!          for J in S'Range loop
!             S (J) := Fold_Lower (Tname (J + 4));
!          end loop;
  
!          Get_Name_String (Token_Name);
  
!          --  A special check for case of PROGRAM used for PROCEDURE
  
!          if T = Tok_Procedure
!            and then Name_Len = 7
!            and then Name_Buffer (1 .. 7) = "program"
!          then
!             Error_Msg_SC -- CODEFIX
!               ("PROCEDURE expected");
!             return True;
  
!          --  A special check for an illegal abbreviation
  
!          elsif Name_Len < S'Length
!            and then Name_Len >= 4
!            and then Name_Buffer (1 .. Name_Len) = S (1 .. Name_Len)
!          then
!             for J in 1 .. S'Last loop
!                M2 (P2 + J - 1) := Fold_Upper (S (J));
!             end loop;
  
!             Error_Msg_SC (M2 (1 .. P2 - 1 + S'Last));
!             return True;
!          end if;
  
!          --  Now we go into the full circuit to check for a misspelling
  
!          --  Never consider something a misspelling if either the actual or
!          --  expected string is less than 3 characters (before this check we
!          --  used to consider i to be a misspelled if in some cases).
  
!          if SL < 3 or else Name_Len < 3 then
!             return False;
  
!          --  Special case: prefix matches, i.e. the leading characters of the
!          --  token that we have exactly match the required keyword. If there
!          --  are at least two characters left over, assume that we have a case
!          --  of two keywords joined together which should not be joined.
  
!          elsif Name_Len > SL + 1
!            and then S = Name_Buffer (1 .. SL)
!          then
!             Scan_Ptr := Token_Ptr + S'Length;
!             Error_Msg_S ("|missing space");
!             return True;
!          end if;
  
!          if Is_Bad_Spelling_Of (Name_Buffer (1 .. Name_Len), S) then
!             for J in 1 .. S'Last loop
!                M1 (P1 + J - 1) := Fold_Upper (S (J));
!             end loop;
! 
!             Error_Msg_SC -- CODFIX
!               (M1 (1 .. P1 - 1 + S'Last));
!             return True;
! 
!          else
!             return False;
!          end if;
!       end Bad_Spelling_Helper;
! 
!    begin
!       return Result : constant Boolean := Bad_Spelling_Helper do
!          if Result then
!             Token := T;
!             Token_Node := Empty;
!          end if;
!       end return;
     end Bad_Spelling_Of;
  
     ----------------------
*************** package body Util is
*** 176,189 ****
     procedure Check_Future_Keyword is
     begin
        --  Ada 2005 (AI-284): Compiling in Ada 95 mode we warn that INTERFACE,
!       --  OVERRIDING, and SYNCHRONIZED are new reserved words.
  
        if Ada_Version = Ada_95
          and then Warn_On_Ada_2005_Compatibility
        then
!          if Token_Name in Name_Overriding | Name_Synchronized
!            or else (Token_Name = Name_Interface
!                      and then Prev_Token /= Tok_Pragma)
           then
              Error_Msg_N ("& is a reserved word in Ada 2005?y?", Token_Node);
           end if;
--- 204,220 ----
     procedure Check_Future_Keyword is
     begin
        --  Ada 2005 (AI-284): Compiling in Ada 95 mode we warn that INTERFACE,
!       --  OVERRIDING, and SYNCHRONIZED are new reserved words. We make an
!       --  exception if INTERFACE is used in the context of the GNAT-specific
!       --  pragma Interface, since we accept that pragma regardless of the Ada
!       --  version.
  
        if Ada_Version = Ada_95
          and then Warn_On_Ada_2005_Compatibility
        then
!          if Token_Name in Ada_2005_Reserved_Words
!            and then not (Token_Name = Name_Interface
!                          and then Prev_Token = Tok_Pragma)
           then
              Error_Msg_N ("& is a reserved word in Ada 2005?y?", Token_Node);
           end if;
*************** package body Util is
*** 194,206 ****
        if Ada_Version in Ada_95 .. Ada_2005
          and then Warn_On_Ada_2012_Compatibility
        then
!          if Token_Name = Name_Some then
              Error_Msg_N ("& is a reserved word in Ada 2012?y?", Token_Node);
           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);
--- 225,237 ----
        if Ada_Version in Ada_95 .. Ada_2005
          and then Warn_On_Ada_2012_Compatibility
        then
!          if Token_Name in Ada_2012_Reserved_Words then
              Error_Msg_N ("& is a reserved word in Ada 2012?y?", Token_Node);
           end if;
        end if;
  
        if Ada_Version < Ada_With_All_Extensions then
!          if Token_Name in GNAT_Extensions_Reserved_Words then
              Error_Msg_N
                ("& is a reserved word with all extensions enabled?",
                 Token_Node);
*************** package body Util is
*** 688,693 ****
--- 719,737 ----
        end if;
     end No_Constraint;
  
+    ---------------
+    -- P_Def_Ids --
+    ---------------
+ 
+    procedure P_Def_Ids (Def_Ids : out Defining_Identifiers) is
+       pragma Assert (Def_Ids.Num_Idents = 0);
+    begin
+       loop
+          Append (Def_Ids, P_Defining_Identifier (C_Comma_Colon));
+          exit when not Comma_Present;
+       end loop;
+    end P_Def_Ids;
+ 
     ---------------------
     -- Pop_Scope_Stack --
     ---------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/par.adb gcc-16.1.0-RC-20260423/gcc/ada/par.adb
*** gcc-15.2.0/gcc/ada/par.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Casing;         use Casing;
*** 29,35 ****
  with Debug;          use Debug;
  with Elists;         use Elists;
  with Errout;         use Errout;
- with Fname;          use Fname;
  with Lib;            use Lib;
  with Namet;          use Namet;
  with Namet.Sp;       use Namet.Sp;
--- 29,34 ----
*************** with Scn;            use Scn;
*** 44,50 ****
  with Sem_Util;       use Sem_Util;
  with Sinput;         use Sinput;
  with Sinput.L;       use Sinput.L;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 43,48 ----
*************** function Par (Configuration_Pragmas : Bo
*** 80,85 ****
--- 78,88 ----
     --  True within a delta aggregate (but only after the "delta" token has
     --  been scanned). Used to distinguish syntax errors from syntactically
     --  correct "deep" delta aggregates (enabled via -gnatX0).
+ 
+    Inside_Abstract_State : Boolean := False;
+    --  True within an Abstract_State contract. Used to distinguish syntax error
+    --  about extended aggregates and about a malformed contract.
+ 
     Save_Style_Checks : Style_Check_Options;
     Save_Style_Check  : Boolean;
     --  Variables for storing the original state of whether style checks should
*************** function Par (Configuration_Pragmas : Bo
*** 172,178 ****
     --  do not set SIS_Entry_Active, because the Import means there is no body.
     --  Set False at the start of P_Subprogram, set True when an Import aspect
     --  specification is seen, and used when P_Subprogram finds a subprogram
!    --  declaration.  This is necessary because the aspects are parsed before
     --  we know we have a subprogram declaration.
  
     SIS_Labl : Node_Id;
--- 175,181 ----
     --  do not set SIS_Entry_Active, because the Import means there is no body.
     --  Set False at the start of P_Subprogram, set True when an Import aspect
     --  specification is seen, and used when P_Subprogram finds a subprogram
!    --  declaration. This is necessary because the aspects are parsed before
     --  we know we have a subprogram declaration.
  
     SIS_Labl : Node_Id;
*************** function Par (Configuration_Pragmas : Bo
*** 222,227 ****
--- 225,293 ----
     --   that there is a missing body, but it seems more reasonable to let the
     --   later semantic checking discover this.
  
+    --------------------------------------------
+    -- Handling IS Used in Place of Semicolon --
+    --------------------------------------------
+ 
+    --  This is a somewhat trickier situation, and we can't catch it in all
+    --  cases, but we do our best to detect common situations resulting from
+    --  a "cut and paste" operation which forgets to change the IS to semicolon.
+    --  Consider the following example:
+ 
+    --    package body X is
+    --      procedure A;
+    --      procedure B is -- Error: IS should be semicolon
+    --      procedure C;
+    --      ...
+    --      procedure D is
+    --      begin
+    --         ...
+    --      end;
+    --    begin
+    --      ...
+    --    end; -- end of B?
+ 
+    --  The trouble is that the section of text from PROCEDURE B through the
+    --  END; marked "-- end of B?" constitutes a valid procedure body, and the
+    --  danger is that we find out far too late that something is wrong.
+ 
+    --  We have two approaches to helping to control this situation. First we
+    --  make every attempt to avoid swallowing the last END; if we can be sure
+    --  that some error will result from doing so. In particular, we won't
+    --  accept the END; unless it is exactly correct (in particular it must not
+    --  have incorrect name tokens), and we won't accept it if it is immediately
+    --  followed by end of file, WITH or SEPARATE (tokens that unmistakeably
+    --  signal the start of a compilation unit, and which therefore allow us to
+    --  reserve the END; for the outer level.) For more details on this aspect
+    --  of the handling, see package Par.Endh.
+ 
+    --  If we can avoid eating up the END; then the result in the absence of
+    --  any additional steps would be to post a missing END referring back to
+    --  the subprogram with the bogus IS. Similarly, if the enclosing package
+    --  has no BEGIN, then the result is a missing BEGIN message, which again
+    --  refers back to the subprogram header.
+ 
+    --  Such an error message is not too bad, but it's not ideal, because
+    --  the declarations following the IS have been absorbed into the wrong
+    --  scope. In the above case, this could result for example in a bogus
+    --  complaint that the body of D was missing from the package.
+ 
+    --  To catch at least some of these cases, we take the following additional
+    --  steps. First, a subprogram body is marked as having a suspicious IS if
+    --  the declaration line is followed by a line that starts with a symbol
+    --  that can start a declaration in the same column, or to the left of the
+    --  column in which the FUNCTION or PROCEDURE starts (normal style is to
+    --  indent any declarations that really belong a subprogram). If such a
+    --  subprogram encounters a missing BEGIN or missing END, then we decide
+    --  that the IS should have been a semicolon, and the subprogram body node
+    --  is marked (by setting the Bad_Is_Detected flag true. Note that we do
+    --  not do this for library level procedures, only for nested procedures,
+    --  since for library level procedures, we must have a body.
+ 
+    --  The processing for a declarative part checks to see if the last
+    --  declaration scanned is marked in this way, and if it is, the tree
+    --  is modified to reflect the IS being interpreted as a semicolon.
+ 
     ----------------------------------------------------
     -- Handling of Reserved Words Used as Identifiers --
     ----------------------------------------------------
*************** function Par (Configuration_Pragmas : Bo
*** 289,359 ****
        C_Vertical_Bar_Arrow);
        --  Consider as identifier if followed by | or =>
  
-    --------------------------------------------
-    -- Handling IS Used in Place of Semicolon --
-    --------------------------------------------
- 
-    --  This is a somewhat trickier situation, and we can't catch it in all
-    --  cases, but we do our best to detect common situations resulting from
-    --  a "cut and paste" operation which forgets to change the IS to semicolon.
-    --  Consider the following example:
- 
-    --    package body X is
-    --      procedure A;
-    --      procedure B is
-    --      procedure C;
-    --      ...
-    --      procedure D is
-    --      begin
-    --         ...
-    --      end;
-    --    begin
-    --      ...
-    --    end;
- 
-    --  The trouble is that the section of text from PROCEDURE B through END;
-    --  constitutes a valid procedure body, and the danger is that we find out
-    --  far too late that something is wrong (indeed most compilers will behave
-    --  uncomfortably on the above example).
- 
-    --  We have two approaches to helping to control this situation. First we
-    --  make every attempt to avoid swallowing the last END; if we can be sure
-    --  that some error will result from doing so. In particular, we won't
-    --  accept the END; unless it is exactly correct (in particular it must not
-    --  have incorrect name tokens), and we won't accept it if it is immediately
-    --  followed by end of file, WITH or SEPARATE (all tokens that unmistakeably
-    --  signal the start of a compilation unit, and which therefore allow us to
-    --  reserve the END; for the outer level.) For more details on this aspect
-    --  of the handling, see package Par.Endh.
- 
-    --  If we can avoid eating up the END; then the result in the absence of
-    --  any additional steps would be to post a missing END referring back to
-    --  the subprogram with the bogus IS. Similarly, if the enclosing package
-    --  has no BEGIN, then the result is a missing BEGIN message, which again
-    --  refers back to the subprogram header.
- 
-    --  Such an error message is not too bad (it's already a big improvement
-    --  over what many parsers do), but it's not ideal, because the declarations
-    --  following the IS have been absorbed into the wrong scope. In the above
-    --  case, this could result for example in a bogus complaint that the body
-    --  of D was missing from the package.
- 
-    --  To catch at least some of these cases, we take the following additional
-    --  steps. First, a subprogram body is marked as having a suspicious IS if
-    --  the declaration line is followed by a line which starts with a symbol
-    --  that can start a declaration in the same column, or to the left of the
-    --  column in which the FUNCTION or PROCEDURE starts (normal style is to
-    --  indent any declarations which really belong a subprogram). If such a
-    --  subprogram encounters a missing BEGIN or missing END, then we decide
-    --  that the IS should have been a semicolon, and the subprogram body node
-    --  is marked (by setting the Bad_Is_Detected flag true. Note that we do
-    --  not do this for library level procedures, only for nested procedures,
-    --  since for library level procedures, we must have a body.
- 
-    --  The processing for a declarative part checks to see if the last
-    --  declaration scanned is marked in this way, and if it is, the tree
-    --  is modified to reflect the IS being interpreted as a semicolon.
- 
     ---------------------------------------------------
     -- Parser Type Definitions and Control Variables --
     ---------------------------------------------------
--- 355,360 ----
*************** function Par (Configuration_Pragmas : Bo
*** 791,801 ****
  
        function Init_Expr_Opt (P : Boolean := False) return Node_Id;
        --  If an initialization expression is present (:= expression), then
!       --  it is scanned out and returned, otherwise Empty is returned if no
!       --  initialization expression is present. This procedure also handles
!       --  certain common error cases cleanly. The parameter P indicates if
!       --  a right paren can follow the expression (default = no right paren
!       --  allowed).
  
        procedure Skip_Declaration (S : List_Id);
        --  Used when scanning statements to skip past a misplaced declaration
--- 792,800 ----
  
        function Init_Expr_Opt (P : Boolean := False) return Node_Id;
        --  If an initialization expression is present (:= expression), then
!       --  it is scanned out and returned; otherwise Empty is returned. This
!       --  procedure also handles certain common error cases. P=True indicates
!       --  that a right paren can follow the expression.
  
        procedure Skip_Declaration (S : List_Id);
        --  Used when scanning statements to skip past a misplaced declaration
*************** function Par (Configuration_Pragmas : Bo
*** 825,834 ****
        function P_Aggregate                            return Node_Id;
        function P_Expression                           return Node_Id;
        function P_Expression_Or_Range_Attribute        return Node_Id;
-       function P_Function_Name                        return Node_Id;
        function P_Name                                 return Node_Id;
!       function P_Qualified_Simple_Name                return Node_Id;
!       function P_Qualified_Simple_Name_Resync         return Node_Id;
        function P_Simple_Expression                    return Node_Id;
        function P_Simple_Expression_Or_Range_Attribute return Node_Id;
  
--- 824,839 ----
        function P_Aggregate                            return Node_Id;
        function P_Expression                           return Node_Id;
        function P_Expression_Or_Range_Attribute        return Node_Id;
        function P_Name                                 return Node_Id;
!       function P_Exception_Name                       return Node_Id;
!       function P_Label_Name                           return Node_Id;
!       function P_Loop_Name                            return Node_Id;
!       function P_Generic_Unit_Name                    return Node_Id;
!       function P_Library_Unit_Name                    return Node_Id;
!       function P_Package_Name                         return Node_Id;
!       function P_Parent_Unit_Name                     return Node_Id;
!       function P_Subtype_Name                         return Node_Id;
!       function P_Subtype_Name_Resync                  return Node_Id;
        function P_Simple_Expression                    return Node_Id;
        function P_Simple_Expression_Or_Range_Attribute return Node_Id;
  
*************** function Par (Configuration_Pragmas : Bo
*** 1010,1015 ****
--- 1015,1030 ----
     package Ch13 is
        function P_Representation_Clause                return Node_Id;
  
+       function P_Attribute_Designators
+         (Initial_Prefix : Node_Id) return Node_Id;
+       --  This procedure parses trailing apostrophes and attribute designators,
+       --  i.e., the "'b'c..." suffix in "a'b'c...". "a" must have already been
+       --  parsed into Initial_Prefix and the scan pointer must be pointing
+       --  right past "a". If no apostrophe is found we just return
+       --  Initial_Prefix, otherwise the return value is a chain of
+       --  N_Attribute_Reference nodes, nested via the Prefix field and ending
+       --  with Initial_Prefix.
+ 
        function Aspect_Specifications_Present
          (Strict : Boolean := Ada_Version < Ada_2012) return Boolean;
        --  This function tests whether the next keyword is WITH followed by
*************** function Par (Configuration_Pragmas : Bo
*** 1298,1308 ****
  
     package Util is
        function Bad_Spelling_Of (T : Token_Type) return Boolean;
!       --  This function is called in an error situation. It checks if the
!       --  current token is an identifier whose name is a plausible bad
!       --  spelling of the given keyword token, and if so, issues an error
!       --  message, sets Token from T, and returns True. Otherwise Token is
!       --  unchanged, and False is returned.
  
        procedure Check_Bad_Layout;
        --  Check for bad indentation in RM checking mode. Used for statements
--- 1313,1322 ----
  
     package Util is
        function Bad_Spelling_Of (T : Token_Type) return Boolean;
!       --  This function is called in an error situation. Returns True if the
!       --  current token is an identifier whose name is a plausible misspelling
!       --  of the given keyword token. In the True case, sets Token to T, and
!       --  Token_Node becomes invalid.
  
        procedure Check_Bad_Layout;
        --  Check for bad indentation in RM checking mode. Used for statements
*************** function Par (Configuration_Pragmas : Bo
*** 1446,1451 ****
--- 1460,1506 ----
        --  the Node N (which is a Defining_Identifier node with the Chars field
        --  set) is a renaming of an entity in package Standard.
  
+       -----------------------------------
+       -- Multiple defining identifiers --
+       -----------------------------------
+ 
+       --  RM-3.3.1(7) says:
+       --
+       --    Any declaration that includes a defining_identifier_list with
+       --    more than one defining_identifier is equivalent to a series of
+       --    declarations each containing one defining_identifier from the list,
+       --    with the rest of the text of the declaration copied for each
+       --    declaration in the series, in the same order as the list.
+       --
+       --  We parse such declarations by first calling P_Def_Ids (see below).
+       --  Then, if there are multiple identifiers, we repeatedly scan the
+       --  type and initialization expression information by resetting the
+       --  scan pointer (so that we get completely separate trees for each
+       --  occurrence).
+ 
+       --  Defining_Identifiers is a sequence of identifiers parsed by
+       --  P_Def_Ids. Idents holds the identifiers, and Num_Idents
+       --  points to the last-used array elements. The upper bound
+       --  is intended to be essentially infinite, so we don't bother
+       --  giving a good error message when it is exceeded -- we
+       --  simply raise an exception.
+ 
+       type Defining_Identifiers_Array is
+         array (Pos range 1 .. 4096) of Entity_Id;
+ 
+       type Defining_Identifiers is record
+          Num_Idents : Nat := 0;
+          Idents     : Defining_Identifiers_Array;
+       end record;
+ 
+       procedure Append
+         (Def_Ids : in out Defining_Identifiers; Def_Id : Entity_Id);
+       --  Append one defining identifier onto Def_Ids.
+ 
+       procedure P_Def_Ids (Def_Ids : out Defining_Identifiers);
+       --  Parse a defining_identifier_list, appending the identifiers
+       --  onto Def_Ids, which should be initially empty.
+ 
     end Util;
  
     --------------
diff -Nrcpad gcc-15.2.0/gcc/ada/par.ads gcc-16.1.0-RC-20260423/gcc/ada/par.ads
*** gcc-15.2.0/gcc/ada/par.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/par_sco.adb gcc-16.1.0-RC-20260423/gcc/ada/par_sco.adb
*** gcc-15.2.0/gcc/ada/par_sco.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par_sco.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Put_SCOs;
*** 37,43 ****
  with SCOs;           use SCOs;
  with Sem;            use Sem;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 37,42 ----
*************** package body Par_SCO is
*** 2888,2895 ****
              end;
           end loop;
  
!          --  Clear the pending decisions list
!          Pending_Decisions.Set_Last (0);
        end Process_Pending_Decisions;
  
        -----------------------------
--- 2887,2893 ----
              end;
           end loop;
  
!          Pending_Decisions.Clear;
        end Process_Pending_Decisions;
  
        -----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/par_sco.ads gcc-16.1.0-RC-20260423/gcc/ada/par_sco.ads
*** gcc-15.2.0/gcc/ada/par_sco.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/par_sco.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/pprint.adb gcc-16.1.0-RC-20260423/gcc/ada/pprint.adb
*** gcc-15.2.0/gcc/ada/pprint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/pprint.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ****
  ------------------------------------------------------------------------------
  
  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 Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 24,35 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/pprint.ads gcc-16.1.0-RC-20260423/gcc/ada/pprint.ads
*** gcc-15.2.0/gcc/ada/pprint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/pprint.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/prep.adb gcc-16.1.0-RC-20260423/gcc/ada/prep.adb
*** gcc-15.2.0/gcc/ada/prep.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/prep.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 1211,1216 ****
--- 1211,1223 ----
                 end if;
  
                 New_EOL.all;
+ 
+             elsif Empty_Comment_Deleted_Lines then
+                Put_Char ('-');
+                Put_Char ('-');
+                Put_Char ('!');
+ 
+                New_EOL.all;
              end if;
  
           else
diff -Nrcpad gcc-15.2.0/gcc/ada/prep.ads gcc-16.1.0-RC-20260423/gcc/ada/prep.ads
*** gcc-15.2.0/gcc/ada/prep.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/prep.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/prepcomp.adb gcc-16.1.0-RC-20260423/gcc/ada/prepcomp.adb
*** gcc-15.2.0/gcc/ada/prepcomp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/prepcomp.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Prepcomp is
*** 54,82 ****
     pragma Warnings (On);
  
     type Preproc_Data is record
!       Mapping      : Symbol_Table.Instance;
!       File_Name    : File_Name_Type := No_File;
!       Deffile      : String_Id      := No_String;
!       Undef_False  : Boolean        := False;
!       Always_Blank : Boolean        := False;
!       Comments     : Boolean        := False;
!       No_Deletion  : Boolean        := False;
!       List_Symbols : Boolean        := False;
!       Processed    : Boolean        := False;
     end record;
     --  Structure to keep the preprocessing data for a file name or for the
     --  default (when Name_Id = No_Name).
  
     No_Preproc_Data : constant Preproc_Data :=
!      (Mapping      => No_Mapping,
!       File_Name    => No_File,
!       Deffile      => No_String,
!       Undef_False  => False,
!       Always_Blank => False,
!       Comments     => False,
!       No_Deletion  => False,
!       List_Symbols => False,
!       Processed    => False);
  
     Default_Data : Preproc_Data := No_Preproc_Data;
     --  The preprocessing data to be used when no specific preprocessing data
--- 54,84 ----
     pragma Warnings (On);
  
     type Preproc_Data is record
!       Mapping        : Symbol_Table.Instance;
!       File_Name      : File_Name_Type := No_File;
!       Deffile        : String_Id      := No_String;
!       Undef_False    : Boolean        := False;
!       Always_Blank   : Boolean        := False;
!       Comments       : Boolean        := False;
!       Empty_Comments : Boolean        := False;
!       No_Deletion    : Boolean        := False;
!       List_Symbols   : Boolean        := False;
!       Processed      : Boolean        := False;
     end record;
     --  Structure to keep the preprocessing data for a file name or for the
     --  default (when Name_Id = No_Name).
  
     No_Preproc_Data : constant Preproc_Data :=
!      (Mapping        => No_Mapping,
!       File_Name      => No_File,
!       Deffile        => No_String,
!       Undef_False    => False,
!       Always_Blank   => False,
!       Comments       => False,
!       Empty_Comments => False,
!       No_Deletion    => False,
!       List_Symbols   => False,
!       Processed      => False);
  
     Default_Data : Preproc_Data := No_Preproc_Data;
     --  The preprocessing data to be used when no specific preprocessing data
*************** package body Prepcomp is
*** 170,175 ****
--- 172,188 ----
           No_Preprocessing := False;
           Current_Data.Processed := True;
  
+          if Opt.Blank_Deleted_Lines then
+             Current_Data.Always_Blank := True;
+ 
+          elsif Opt.Comment_Deleted_Lines then
+             Current_Data.Comments := True;
+ 
+          elsif Opt.Empty_Comment_Deleted_Lines then
+             Current_Data.Empty_Comments := True;
+ 
+          end if;
+ 
           --  Start with an empty, initialized mapping table; use Prep.Mapping,
           --  because Prep.Index_Of uses Prep.Mapping.
  
*************** package body Prepcomp is
*** 379,384 ****
--- 392,406 ----
                          OK := True;
                       end if;
  
+                   when 'e' =>
+ 
+                      --  Replace removed lines with empty comment lines ("--!")
+ 
+                      if Name_Len = 1 then
+                         Current_Data.Empty_Comments := True;
+                         OK := True;
+                      end if;
+ 
                    when 's' =>
  
                       --  List symbols
*************** package body Prepcomp is
*** 545,551 ****
  
        if Total_Errors_Detected > T then
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages;
           Fail ("errors found in preprocessing data file """
                 & Get_Name_String (N) & """");
        end if;
--- 567,573 ----
  
        if Total_Errors_Detected > T then
           Errout.Finalize (Last_Call => True);
!          Errout.Output_Messages (E_Fatal);
           Fail ("errors found in preprocessing data file """
                 & Get_Name_String (N) & """");
        end if;
*************** package body Prepcomp is
*** 601,612 ****
  
        --  Set the preprocessing flags according to the preprocessing data
  
!       if Current_Data.Comments and not Current_Data.Always_Blank then
!          Comment_Deleted_Lines := True;
!          Blank_Deleted_Lines   := False;
        else
!          Comment_Deleted_Lines := False;
!          Blank_Deleted_Lines   := True;
        end if;
  
        No_Deletion                 := Current_Data.No_Deletion;
--- 623,644 ----
  
        --  Set the preprocessing flags according to the preprocessing data
  
!       if Current_Data.Comments then
!          Comment_Deleted_Lines       := True;
!          Empty_Comment_Deleted_Lines := False;
!          Blank_Deleted_Lines         := False;
! 
!       elsif Current_Data.Always_Blank then
!          Comment_Deleted_Lines       := False;
!          Empty_Comment_Deleted_Lines := False;
!          Blank_Deleted_Lines         := True;
! 
!       --  By default, emit empty comment lines in place of deleted lines
! 
        else
!          Comment_Deleted_Lines       := False;
!          Empty_Comment_Deleted_Lines := True;
!          Blank_Deleted_Lines         := False;
        end if;
  
        No_Deletion                 := Current_Data.No_Deletion;
*************** package body Prepcomp is
*** 668,674 ****
  
              if T /= Total_Errors_Detected then
                 Errout.Finalize (Last_Call => True);
!                Errout.Output_Messages;
                 Fail ("errors found in definition file """
                       & Get_Name_String (N)
                       & """");
--- 700,706 ----
  
              if T /= Total_Errors_Detected then
                 Errout.Finalize (Last_Call => True);
!                Errout.Output_Messages (E_Fatal);
                 Fail ("errors found in definition file """
                       & Get_Name_String (N)
                       & """");
diff -Nrcpad gcc-15.2.0/gcc/ada/prepcomp.ads gcc-16.1.0-RC-20260423/gcc/ada/prepcomp.ads
*** gcc-15.2.0/gcc/ada/prepcomp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/prepcomp.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/put_scos.adb gcc-16.1.0-RC-20260423/gcc/ada/put_scos.adb
*** gcc-15.2.0/gcc/ada/put_scos.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/put_scos.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/put_scos.ads gcc-16.1.0-RC-20260423/gcc/ada/put_scos.ads
*** gcc-15.2.0/gcc/ada/put_scos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/put_scos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/raise-gcc.c gcc-16.1.0-RC-20260423/gcc/ada/raise-gcc.c
*** gcc-15.2.0/gcc/ada/raise-gcc.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/raise-gcc.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2026, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** db_indent (int requests)
*** 274,279 ****
--- 274,285 ----
      fprintf (stderr, "%*s", current_indentation_level * DB_INDENT_UNIT, " ");
  }
  
+ /* If ATTRIBUTE_PRINTF_2 is not available, assume a printf format
+    attribute a-la gcc such as:  */
+ #ifndef ATTRIBUTE_PRINTF_2
+ #define ATTRIBUTE_PRINTF_2 __attribute((format(printf, 2, 3)))
+ #endif
+ 
  static void ATTRIBUTE_PRINTF_2
  db (int db_code, const char * msg_format, ...)
  {
diff -Nrcpad gcc-15.2.0/gcc/ada/raise.c gcc-16.1.0-RC-20260423/gcc/ada/raise.c
*** gcc-15.2.0/gcc/ada/raise.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/raise.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *             Copyright (C) 1992-2026, Free Software Foundation, Inc.      *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/raise.h gcc-16.1.0-RC-20260423/gcc/ada/raise.h
*** gcc-15.2.0/gcc/ada/raise.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/raise.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/repinfo-input.adb gcc-16.1.0-RC-20260423/gcc/ada/repinfo-input.adb
*** gcc-15.2.0/gcc/ada/repinfo-input.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/repinfo-input.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2018-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/repinfo-input.ads gcc-16.1.0-RC-20260423/gcc/ada/repinfo-input.ads
*** gcc-15.2.0/gcc/ada/repinfo-input.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/repinfo-input.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2018-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/repinfo.adb gcc-16.1.0-RC-20260423/gcc/ada/repinfo.adb
*** gcc-15.2.0/gcc/ada/repinfo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/repinfo.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Alloc;
*** 27,35 ****
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Lib;            use Lib;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
--- 27,35 ----
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with GNAT.Heap_Sort_G;
  with Lib;            use Lib;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
*************** with Osint.C;        use Osint.C;
*** 39,45 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 39,44 ----
*************** package body Repinfo is
*** 77,96 ****
        Op3  : Node_Ref_Or_Val;
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written, we do not write uninitialized values to the file.
- 
-    for Exp_Node use record
-       Expr at  0 range 0 .. 31;
-       Op1  at  4 range 0 .. 31;
-       Op2  at  8 range 0 .. 31;
-       Op3  at 12 range 0 .. 31;
-    end record;
- 
-    for Exp_Node'Size use 16 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Rep_Table is new Table.Table (
        Table_Component_Type => Exp_Node,
        Table_Index_Type     => Nat,
--- 76,81 ----
*************** package body Repinfo is
*** 132,138 ****
     function Entity_Hash (Id : Entity_Id) return Entity_Header_Num;
     --  Simple hash function for Entity_Ids
  
!    package Relevant_Entities is new GNAT.Htable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
--- 117,123 ----
     function Entity_Hash (Id : Entity_Id) return Entity_Header_Num;
     --  Simple hash function for Entity_Ids
  
!    package Relevant_Entities is new GNAT.HTable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
*************** package body Repinfo is
*** 296,301 ****
--- 281,344 ----
        return U >= Uint_0;
     end Is_Static_SO_Ref;
  
+    -----------
+    -- Visit --
+    -----------
+ 
+    procedure Visit (Expr : Node_Ref_Or_Val) is
+    begin
+       pragma Assert (Present (Expr));
+       if Expr >= 0 then
+          Visit_Constant (Expr);
+          return;
+       end if;
+ 
+       declare
+          Node : Exp_Node renames Rep_Table.Table (-UI_To_Int (Expr));
+       begin
+          case Node.Expr is
+             when Cond_Expr =>
+                Visit_Cond_Expr (Node.Op1, Node.Op2, Node.Op3);
+ 
+             when Plus_Expr
+                  | Minus_Expr
+                  | Mult_Expr
+                  | Trunc_Div_Expr
+                  | Ceil_Div_Expr
+                  | Floor_Div_Expr
+                  | Trunc_Mod_Expr
+                  | Ceil_Mod_Expr
+                  | Floor_Mod_Expr
+                  | Exact_Div_Expr
+                  | Min_Expr
+                  | Max_Expr
+                  | Truth_And_Expr
+                  | Truth_Or_Expr
+                  | Truth_Xor_Expr
+                  | Lt_Expr
+                  | Le_Expr
+                  | Gt_Expr
+                  | Ge_Expr
+                  | Eq_Expr
+                  | Ne_Expr
+                  | Bit_And_Expr
+               =>
+                Visit_Binop (Node.Expr, Node.Op1, Node.Op2);
+ 
+             when Negate_Expr
+                  | Abs_Expr
+                  | Truth_Not_Expr =>
+                Visit_Unop (Node.Expr, Node.Op1);
+ 
+             when Discrim_Val =>
+                Visit_Discriminant (Node.Op1);
+ 
+             when Dynamic_Val =>
+                Visit_Variable (Node.Op1);
+          end case;
+       end;
+    end Visit;
+ 
     ---------
     -- lgx --
     ---------
*************** package body Repinfo is
*** 375,383 ****
  
              if Esize (Ent) = RM_Size (Ent) then
                 if List_Representation_Info_To_JSON then
                    Write_Str ("  ""Size"": ");
                    Write_Val (Esize (Ent));
-                   Write_Line (",");
                 else
                    Write_Str ("for ");
                    List_Name (Ent);
--- 418,426 ----
  
              if Esize (Ent) = RM_Size (Ent) then
                 if List_Representation_Info_To_JSON then
+                   Write_Line (",");
                    Write_Str ("  ""Size"": ");
                    Write_Val (Esize (Ent));
                 else
                    Write_Str ("for ");
                    List_Name (Ent);
*************** package body Repinfo is
*** 390,402 ****
  
              else
                 if List_Representation_Info_To_JSON then
                    Write_Str ("  ""Object_Size"": ");
                    Write_Val (Esize (Ent));
-                   Write_Line (",");
  
                    Write_Str ("  ""Value_Size"": ");
                    Write_Val (RM_Size (Ent));
-                   Write_Line (",");
  
                 else
                    Write_Str ("for ");
--- 433,445 ----
  
              else
                 if List_Representation_Info_To_JSON then
+                   Write_Line (",");
                    Write_Str ("  ""Object_Size"": ");
                    Write_Val (Esize (Ent));
  
+                   Write_Line (",");
                    Write_Str ("  ""Value_Size"": ");
                    Write_Val (RM_Size (Ent));
  
                 else
                    Write_Str ("for ");
*************** package body Repinfo is
*** 417,422 ****
--- 460,466 ----
  
        if Known_Alignment (Ent) then
           if List_Representation_Info_To_JSON then
+             Write_Line (",");
              Write_Str ("  ""Alignment"": ");
              Write_Val (Alignment (Ent));
           else
*************** package body Repinfo is
*** 427,450 ****
              Write_Line (";");
           end if;
  
!       --  Alignment is not always set for task, protected, and class-wide
!       --  types, or when doing semantic analysis only. Representation aspects
!       --  are not computed for types in a generic unit.
  
        else
!          --  Add unknown alignment entry in JSON format to ensure the format is
!          --  valid, as a comma is added by the caller before another field.
! 
!          if List_Representation_Info_To_JSON then
!             Write_Str ("  ""Alignment"": ");
!             Write_Unknown_Val;
!          end if;
! 
!          pragma Assert
!            (not Expander_Active or else
!               Is_Concurrent_Type (Ent) or else
!               Is_Class_Wide_Type (Ent) or else
!               Sem_Util.In_Generic_Scope (Ent));
        end if;
     end List_Common_Type_Info;
  
--- 471,488 ----
              Write_Line (";");
           end if;
  
!       --  Alignment is not always set for concurrent types, class-wide types,
!       --  cloned subtypes, or when doing semantic analysis only. Representation
!       --  aspects are not computed for types declared in a generic unit.
  
        else
!          pragma Assert (not Expander_Active
!            or else Is_Concurrent_Type (Ent)
!            or else Is_Class_Wide_Type (Ent)
!            or else (Ekind (Ent) = E_Record_Subtype
!                      and then Present (Cloned_Subtype (Ent))
!                      and then Has_Delayed_Freeze (Cloned_Subtype (Ent)))
!            or else Sem_Util.In_Generic_Scope (Ent));
        end if;
     end List_Common_Type_Info;
  
*************** package body Repinfo is
*** 466,472 ****
  
        if Present (Ent)
          and then Nkind (Declaration_Node (Ent)) not in N_Renaming_Declaration
!         and then not Is_Ignored_Ghost_Entity (Ent)
        then
           --  If entity is a subprogram and we are listing mechanisms,
           --  then we need to list mechanisms for this entity. We skip this
--- 504,510 ----
  
        if Present (Ent)
          and then Nkind (Declaration_Node (Ent)) not in N_Renaming_Declaration
!         and then not Sem_Util.Is_Ignored_Ghost_Entity_In_Codegen (Ent)
        then
           --  If entity is a subprogram and we are listing mechanisms,
           --  then we need to list mechanisms for this entity. We skip this
*************** package body Repinfo is
*** 482,493 ****
  
           E := First_Entity (Ent);
           while Present (E) loop
!             --  We list entities that come from source (excluding private or
!             --  incomplete types or deferred constants, for which we will list
!             --  the information for the full view). If requested, we also list
!             --  relevant entities that have been generated when processing the
!             --  original entities coming from source. But if debug flag A is
!             --  set, then all entities are listed.
  
              if ((Comes_From_Source (E)
                     or else (Ekind (E) = E_Block
--- 520,532 ----
  
           E := First_Entity (Ent);
           while Present (E) loop
!             --  We list entities that come from source (except for incomplete,
!             --  private and generic types, as well as deferred constants, for
!             --  which we list the information for the full view). If requested
!             --  by the -gnatR4 switch, we also list relevant entities that have
!             --  been created when processing the original entities coming from
!             --  source. If debug switch -gnatdA is specified, then all entities
!             --  are listed.
  
              if ((Comes_From_Source (E)
                     or else (Ekind (E) = E_Block
*************** package body Repinfo is
*** 495,503 ****
                              Nkind (Parent (E)) = N_Implicit_Label_Declaration
                                and then
                              Comes_From_Source (Label_Construct (Parent (E)))))
!               and then not Is_Incomplete_Or_Private_Type (E)
!               and then not (Ekind (E) = E_Constant
!                               and then Present (Full_View (E))))
                or else (List_Representation_Info = 4
                           and then Relevant_Entities.Get (E))
                or else Debug_Flag_AA
--- 534,543 ----
                              Nkind (Parent (E)) = N_Implicit_Label_Declaration
                                and then
                              Comes_From_Source (Label_Construct (Parent (E)))))
!                  and then not Is_Incomplete_Or_Private_Type (E)
!                  and then not Is_Generic_Type (E)
!                  and then not (Ekind (E) = E_Constant
!                                 and then Present (Full_View (E))))
                or else (List_Representation_Info = 4
                           and then Relevant_Entities.Get (E))
                or else Debug_Flag_AA
*************** package body Repinfo is
*** 544,554 ****
                       List_Type_Info (E);
                    end if;
  
!                --  Note that formals are not annotated so we skip them here
  
                 elsif Ekind (E) in E_Constant
                                  | E_Loop_Parameter
                                  | E_Variable
                 then
                    if List_Representation_Info >= 2 then
                       List_Object_Info (E);
--- 584,596 ----
                       List_Type_Info (E);
                    end if;
  
!                --  Formals and renamings are not annotated, so we skip them
!                --  here.
  
                 elsif Ekind (E) in E_Constant
                                  | E_Loop_Parameter
                                  | E_Variable
+                  and then Nkind (Parent (E)) /= N_Object_Renaming_Declaration
                 then
                    if List_Representation_Info >= 2 then
                       List_Object_Info (E);
*************** package body Repinfo is
*** 595,783 ****
  
     procedure List_GCC_Expression (U : Node_Ref_Or_Val) is
  
!       procedure Print_Expr (Val : Node_Ref_Or_Val);
!       --  Internal recursive procedure to print expression
  
!       ----------------
!       -- Print_Expr --
!       ----------------
  
!       procedure Print_Expr (Val : Node_Ref_Or_Val) is
        begin
!          if Val >= 0 then
!             UI_Write (Val, Decimal);
! 
!          else
!             declare
!                Node : Exp_Node renames Rep_Table.Table (-UI_To_Int (Val));
! 
!                procedure Unop (S : String);
!                --  Output text for unary operator with S being operator name
! 
!                procedure Binop (S : String);
!                --  Output text for binary operator with S being operator name
! 
!                ----------
!                -- Unop --
!                ----------
! 
!                procedure Unop (S : String) is
!                begin
!                   if List_Representation_Info_To_JSON then
!                      Write_Str ("{ ""code"": """);
!                      if S (S'Last) = ' ' then
!                         Write_Str (S (S'First .. S'Last - 1));
!                      else
!                         Write_Str (S);
!                      end if;
!                      Write_Str (""", ""operands"": [ ");
!                      Print_Expr (Node.Op1);
!                      Write_Str (" ] }");
!                   else
!                      Write_Str (S);
!                      Print_Expr (Node.Op1);
!                   end if;
!                end Unop;
! 
!                -----------
!                -- Binop --
!                -----------
! 
!                procedure Binop (S : String) is
!                begin
!                   if List_Representation_Info_To_JSON then
!                      Write_Str ("{ ""code"": """);
!                      Write_Str (S (S'First + 1 .. S'Last - 1));
!                      Write_Str (""", ""operands"": [ ");
!                      Print_Expr (Node.Op1);
!                      Write_Str (", ");
!                      Print_Expr (Node.Op2);
!                      Write_Str (" ] }");
!                   else
!                      Write_Char ('(');
!                      Print_Expr (Node.Op1);
!                      Write_Str (S);
!                      Print_Expr (Node.Op2);
!                      Write_Char (')');
!                   end if;
!                end Binop;
! 
!             --  Start of processing for Print_Expr
! 
!             begin
!                case Node.Expr is
!                   when Cond_Expr =>
!                      if List_Representation_Info_To_JSON then
!                         Write_Str ("{ ""code"": ""?<>""");
!                         Write_Str (", ""operands"": [ ");
!                         Print_Expr (Node.Op1);
!                         Write_Str (", ");
!                         Print_Expr (Node.Op2);
!                         Write_Str (", ");
!                         Print_Expr (Node.Op3);
!                         Write_Str (" ] }");
!                      else
!                         Write_Str ("(if ");
!                         Print_Expr (Node.Op1);
!                         Write_Str (" then ");
!                         Print_Expr (Node.Op2);
!                         Write_Str (" else ");
!                         Print_Expr (Node.Op3);
!                         Write_Str (")");
!                      end if;
! 
!                   when Plus_Expr =>
!                      Binop (" + ");
! 
!                   when Minus_Expr =>
!                      Binop (" - ");
! 
!                   when Mult_Expr =>
!                      Binop (" * ");
! 
!                   when Trunc_Div_Expr =>
!                      Binop (" /t ");
! 
!                   when Ceil_Div_Expr =>
!                      Binop (" /c ");
! 
!                   when Floor_Div_Expr =>
!                      Binop (" /f ");
! 
!                   when Trunc_Mod_Expr =>
!                      Binop (" modt ");
! 
!                   when Ceil_Mod_Expr =>
!                      Binop (" modc ");
! 
!                   when Floor_Mod_Expr =>
!                      Binop (" modf ");
! 
!                   when Exact_Div_Expr =>
!                      Binop (" /e ");
! 
!                   when Negate_Expr =>
!                      Unop ("-");
! 
!                   when Min_Expr =>
!                      Binop (" min ");
! 
!                   when Max_Expr =>
!                      Binop (" max ");
! 
!                   when Abs_Expr =>
!                      Unop ("abs ");
! 
!                   when Truth_And_Expr =>
!                      Binop (" and ");
! 
!                   when Truth_Or_Expr =>
!                      Binop (" or ");
! 
!                   when Truth_Xor_Expr =>
!                      Binop (" xor ");
! 
!                   when Truth_Not_Expr =>
!                      Unop ("not ");
! 
!                   when Lt_Expr =>
!                      Binop (" < ");
! 
!                   when Le_Expr =>
!                      Binop (" <= ");
! 
!                   when Gt_Expr =>
!                      Binop (" > ");
! 
!                   when Ge_Expr =>
!                      Binop (" >= ");
  
!                   when Eq_Expr =>
!                      Binop (" == ");
  
!                   when Ne_Expr =>
!                      Binop (" != ");
  
!                   when Bit_And_Expr =>
!                      Binop (" & ");
  
!                   when Discrim_Val =>
!                      Unop ("#");
  
!                   when Dynamic_Val =>
!                      Unop ("var");
!                end case;
!             end;
!          end if;
!       end Print_Expr;
  
!    --  Start of processing for List_GCC_Expression
  
     begin
        if No (U) then
           Write_Unknown_Val;
        else
!          Print_Expr (U);
        end if;
     end List_GCC_Expression;
  
--- 637,813 ----
  
     procedure List_GCC_Expression (U : Node_Ref_Or_Val) is
  
!       procedure Unop (Code : TCode; Op : Node_Ref_Or_Val);
!       procedure Binop (Code : TCode; Lhs : Node_Ref_Or_Val;
!                       Rhs : Node_Ref_Or_Val);
!       procedure Cond_Expr (Test : Node_Ref_Or_Val;
!                           Lhs : Node_Ref_Or_Val;
!                           Rhs : Node_Ref_Or_Val);
!       procedure Const (Val : Node_Ref_Or_Val);
!       procedure Discriminant (Val : Node_Ref_Or_Val);
!       procedure Variable (Val : Node_Ref_Or_Val);
  
!       procedure Print_It is new Visit (Visit_Unop => Unop,
!                                        Visit_Binop => Binop,
!                                        Visit_Cond_Expr => Cond_Expr,
!                                        Visit_Constant => Const,
!                                        Visit_Discriminant => Discriminant,
!                                        Visit_Variable => Variable);
  
!       procedure Unop (Code : TCode; Op : Node_Ref_Or_Val) is
!          procedure Emit (S : String);
!          procedure Emit (S : String) is
!          begin
!             if List_Representation_Info_To_JSON then
!                Write_Str ("{ ""code"": """);
!                if S (S'Last) = ' ' then
!                   Write_Str (S (S'First .. S'Last - 1));
!                else
!                   Write_Str (S);
!                end if;
!                Write_Str (""", ""operands"": [ ");
!                Print_It (Op);
!                Write_Str (" ] }");
!             else
!                Write_Str (S);
!                Print_It (Op);
!             end if;
!          end Emit;
        begin
!          case Code is
!             when Negate_Expr =>
!                Emit ("-");
!             when Abs_Expr =>
!                Emit ("abs ");
!             when Truth_Not_Expr =>
!                Emit ("not ");
!             when Discrim_Val =>
!                Emit ("#");
!             when Dynamic_Val =>
!                Emit ("var");
!             when others =>
!                Emit ("ERROR");
!          end case;
!       end Unop;
  
!       procedure Binop (Code : TCode; Lhs : Node_Ref_Or_Val;
!                       Rhs : Node_Ref_Or_Val)
!       is
!          procedure Emit (S : String);
!          procedure Emit (S : String) is
!          begin
!             if List_Representation_Info_To_JSON then
!                Write_Str ("{ ""code"": """);
!                Write_Str (S (S'First + 1 .. S'Last - 1));
!                Write_Str (""", ""operands"": [ ");
!                Print_It (Lhs);
!                Write_Str (", ");
!                Print_It (Rhs);
!                Write_Str (" ] }");
!             else
!                Write_Char ('(');
!                Print_It (Lhs);
!                Write_Str (S);
!                Print_It (Rhs);
!                Write_Char (')');
!             end if;
!          end Emit;
  
!       begin
!          case Code is
!             when Plus_Expr =>
!                Emit (" + ");
!             when Minus_Expr =>
!                Emit (" - ");
!             when Mult_Expr =>
!                Emit (" * ");
!             when Trunc_Div_Expr =>
!                Emit (" /t ");
!             when Ceil_Div_Expr =>
!                Emit (" /c ");
!             when Floor_Div_Expr =>
!                Emit (" /f ");
!             when Trunc_Mod_Expr =>
!                Emit (" modt ");
!             when Ceil_Mod_Expr =>
!                Emit (" modc ");
!             when Floor_Mod_Expr =>
!                Emit (" modf ");
!             when Exact_Div_Expr =>
!                Emit (" /e ");
!             when Min_Expr =>
!                Emit (" min ");
!             when Max_Expr =>
!                Emit (" max ");
!             when Truth_And_Expr =>
!                Emit (" and ");
!             when Truth_Or_Expr =>
!                Emit (" or ");
!             when Truth_Xor_Expr =>
!                Emit (" xor ");
!             when Lt_Expr =>
!                Emit (" < ");
!             when Le_Expr =>
!                Emit (" <= ");
!             when Gt_Expr =>
!                Emit (" > ");
!             when Ge_Expr =>
!                Emit (" >= ");
!             when Eq_Expr =>
!                Emit (" == ");
!             when Ne_Expr =>
!                Emit (" != ");
!             when Bit_And_Expr =>
!                Emit (" & ");
!             when others =>
!                Emit ("ERROR");
!          end case;
!       end Binop;
  
!       procedure Cond_Expr (Test : Node_Ref_Or_Val;
!                            Lhs : Node_Ref_Or_Val;
!                            Rhs : Node_Ref_Or_Val) is
!       begin
!          if List_Representation_Info_To_JSON then
!             Write_Str ("{ ""code"": ""?<>""");
!             Write_Str (", ""operands"": [ ");
!             Print_It (Test);
!             Write_Str (", ");
!             Print_It (Lhs);
!             Write_Str (", ");
!             Print_It (Rhs);
!             Write_Str (" ] }");
!          else
!             Write_Str ("(if ");
!             Print_It (Test);
!             Write_Str (" then ");
!             Print_It (Lhs);
!             Write_Str (" else ");
!             Print_It (Rhs);
!             Write_Str (")");
!          end if;
!       end Cond_Expr;
  
!       procedure Const (Val : Node_Ref_Or_Val) is
!       begin
!          UI_Write (Val, Decimal);
!       end Const;
  
!       procedure Discriminant (Val : Node_Ref_Or_Val) is
!       begin
!          Unop (Discrim_Val, Val);
!       end Discriminant;
  
!       procedure Variable (Val : Node_Ref_Or_Val) is
!       begin
!          Unop (Dynamic_Val, Val);
!       end Variable;
  
     begin
        if No (U) then
           Write_Unknown_Val;
        else
!          Print_It (U);
        end if;
     end List_GCC_Expression;
  
*************** package body Repinfo is
*** 822,828 ****
        pragma Assert (List_Representation_Info_To_JSON);
        Write_Str ("  ""location"": """);
        Write_Location (Sloc (Ent));
!       Write_Line (""",");
     end List_Location;
  
     ---------------
--- 852,858 ----
        pragma Assert (List_Representation_Info_To_JSON);
        Write_Str ("  ""location"": """);
        Write_Location (Sloc (Ent));
!       Write_Str ("""");
     end List_Location;
  
     ---------------
*************** package body Repinfo is
*** 870,877 ****
        --  generic unit, or if the back end is not being run), don't try to
        --  print them.
  
!       pragma Assert (Known_Esize (Ent) = Known_Alignment (Ent));
!       if not Known_Alignment (Ent) then
           return;
        end if;
  
--- 900,906 ----
        --  generic unit, or if the back end is not being run), don't try to
        --  print them.
  
!       if not Known_Esize (Ent) or else not Known_Alignment (Ent) then
           return;
        end if;
  
*************** package body Repinfo is
*** 884,889 ****
--- 913,919 ----
           List_Name (Ent);
           Write_Line (""",");
           List_Location (Ent);
+          Write_Line (",");
  
           Write_Str ("  ""Size"": ");
           Write_Val (Esize (Ent));
*************** package body Repinfo is
*** 896,901 ****
--- 926,932 ----
  
           Write_Eol;
           Write_Line ("}");
+ 
        else
           Write_Str ("for ");
           List_Name (Ent);
*************** package body Repinfo is
*** 1237,1247 ****
           Starting_First_Bit : Uint := Uint_0;
           Prefix             : String := "")
        is
!          Comp  : Entity_Id;
!          First : Boolean := True;
  
        begin
!          Comp := First_Component_Or_Discriminant (Ent);
           while Present (Comp) loop
  
              --  Skip a completely hidden discriminant or a discriminant in an
--- 1268,1412 ----
           Starting_First_Bit : Uint := Uint_0;
           Prefix             : String := "")
        is
!          function First_Comp_Or_Discr (Ent : Entity_Id) return Entity_Id;
!          --  Like First_Component_Or_Discriminant, but reorder the components
!          --  according to their bit offset if need be.
! 
!          -------------------------
!          -- First_Comp_Or_Discr --
!          -------------------------
! 
!          function First_Comp_Or_Discr (Ent : Entity_Id) return Entity_Id is
! 
!             function Is_Placed_Before (C1, C2 : Entity_Id) return Boolean;
!             --  Return True if components C1 and C2 are in the same component
!             --  list and component C1 is placed before component C2 in there.
! 
!             ----------------------
!             -- Is_Placed_Before --
!             ----------------------
! 
!             function Is_Placed_Before (C1, C2 : Entity_Id) return Boolean is
!                L1 : constant Node_Id := Parent (Parent (C1));
!                L2 : constant Node_Id := Parent (Parent (C2));
! 
!             begin
!                --  Discriminants and top-level components are considered to be
!                --  in the same list, although this is not syntactically true.
! 
!                return (L1 = L2
!                         or else (Nkind (Parent (L1)) /= N_Variant
!                                   and then Nkind (Parent (L2)) /= N_Variant))
!                  and then Known_Static_Component_Bit_Offset (C1)
!                  and then Known_Static_Component_Bit_Offset (C2)
!                  and then
!                    Component_Bit_Offset (C1) < Component_Bit_Offset (C2);
!             end Is_Placed_Before;
! 
!             --  Local variables
! 
!             Comp    : Entity_Id;
!             N_Comp  : Natural := 0;
!             Prev    : Entity_Id;
!             Reorder : Boolean := False;
! 
!          --  Start of processing for First_Comp_Or_Discr
! 
!          begin
!             --  Reordering is needed only for -gnatRh
! 
!             if not List_Representation_Info_Holes then
!                return First_Component_Or_Discriminant (Ent);
!             end if;
! 
!             --  Count the number of components and whether reordering is needed
! 
!             Comp := First_Component_Or_Discriminant (Ent);
!             Prev := Comp;
! 
!             while Present (Comp) loop
!                N_Comp := N_Comp + 1;
! 
!                if not Reorder then
!                   Reorder := Is_Placed_Before (Comp, Prev);
!                end if;
! 
!                Prev := Comp;
!                Next_Component_Or_Discriminant (Comp);
!             end loop;
! 
!             --  Reorder the components, if need be, by directly reshuffling the
!             --  list of entities between First_Entity and Last_Entity, which is
!             --  safe because we are invoked after compilation is finished.
! 
!             if Reorder then
!                declare
!                   Comps : array (Natural range 0 .. N_Comp) of Entity_Id;
!                   --  Support array for the heapsort
! 
!                   function Lt (Op1, Op2 : Natural) return Boolean is
!                     (Is_Placed_Before (Comps (Op1), Comps (Op2)));
!                   --  Compare function for the heapsort
! 
!                   procedure Move (From : Natural; To : Natural);
!                   pragma Inline (Move);
!                   --  Move procedure for the heapsort
! 
!                   ----------
!                   -- Move --
!                   ----------
! 
!                   procedure Move (From : Natural; To : Natural) is
!                   begin
!                      Comps (To) := Comps (From);
!                   end Move;
! 
!                   package HS is new GNAT.Heap_Sort_G (Lt => Lt, Move => Move);
!                   --  The heapsort for record components
! 
!                begin
!                   --  Pack the components into the array
! 
!                   N_Comp := 0;
!                   Comp := First_Component_Or_Discriminant (Ent);
! 
!                   while Present (Comp) loop
!                      N_Comp := N_Comp + 1;
!                      Comps (N_Comp) := Comp;
! 
!                      Next_Component_Or_Discriminant (Comp);
!                   end loop;
! 
!                   --  Sort the array
! 
!                   HS.Sort (N_Comp);
! 
!                   --  Unpack the component into the list of entities
! 
!                   Set_First_Entity (Ent, Comps (1));
!                   Set_Prev_Entity (Comps (1), Empty);
!                   for J in 1 .. N_Comp - 1 loop
!                      Set_Next_Entity (Comps (J), Comps (J + 1));
!                      Set_Prev_Entity (Comps (J + 1), Comps (J));
!                   end loop;
!                   Set_Next_Entity (Comps (N_Comp), Empty);
!                   Set_Last_Entity (Ent, Comps (N_Comp));
!                end;
!             end if;
! 
!             return First_Component_Or_Discriminant (Ent);
!          end First_Comp_Or_Discr;
! 
!          --  Local variables
! 
!          Bit_Offset : Uint := Uint_0;
!          Comp       : Entity_Id;
!          First      : Boolean := True;
! 
!       --  Start of processing for List_Record_Layout
  
        begin
!          Comp := First_Comp_Or_Discr (Ent);
           while Present (Comp) loop
  
              --  Skip a completely hidden discriminant or a discriminant in an
*************** package body Repinfo is
*** 1251,1319 ****
                and then (Is_Completely_Hidden (Comp)
                           or else Is_Unchecked_Union (Ent))
              then
!                goto Continue;
!             end if;
  
              --  Skip _Parent component in extension (to avoid overlap)
  
!             if Chars (Comp) = Name_uParent then
!                goto Continue;
!             end if;
  
              --  All other cases
  
!             declare
!                Ctyp : constant Entity_Id := Underlying_Type (Etype (Comp));
!                Npos : constant Uint      := Normalized_Position (Comp);
!                Fbit : constant Uint      := Normalized_First_Bit (Comp);
!                Spos : Uint;
!                Sbit : Uint;
  
!             begin
!                Get_Decoded_Name_String (Chars (Comp));
!                Set_Casing (Unit_Casing);
  
!                --  If extended information is requested, recurse fully into
!                --  record components, i.e. skip the outer level.
  
!                if List_Representation_Info_Extended
!                  and then Is_Record_Type (Ctyp)
!                  and then Known_Static_Normalized_Position (Comp)
!                  and then Known_Static_Normalized_First_Bit (Comp)
!                then
!                   Spos := Starting_Position  + Npos;
!                   Sbit := Starting_First_Bit + Fbit;
  
!                   if Sbit >= SSU then
!                      Spos := Spos + 1;
!                      Sbit := Sbit - SSU;
!                   end if;
  
!                   List_Record_Layout (Ctyp,
!                     Spos, Sbit, Prefix & Name_Buffer (1 .. Name_Len) & ".");
  
!                   goto Continue;
!                end if;
  
-                if List_Representation_Info_To_JSON then
-                   if First then
-                      Write_Eol;
-                      First := False;
                    else
!                      Write_Line (",");
!                   end if;
!                end if;
  
!                --  The Parent_Subtype in an extension is not back-annotated
  
!                List_Component_Layout (
!                  (if Known_Normalized_Position (Comp)
!                   then Comp
!                   else Original_Record_Component (Comp)),
!                  Starting_Position, Starting_First_Bit, Prefix);
!             end;
  
-          <<Continue>>
              Next_Component_Or_Discriminant (Comp);
           end loop;
        end List_Record_Layout;
--- 1416,1513 ----
                and then (Is_Completely_Hidden (Comp)
                           or else Is_Unchecked_Union (Ent))
              then
!                null;
  
              --  Skip _Parent component in extension (to avoid overlap)
  
!             elsif Chars (Comp) = Name_uParent then
!                null;
  
              --  All other cases
  
!             else
!                declare
!                   C : constant Entity_Id :=
!                         (if Known_Normalized_Position (Comp)
!                          then Comp
!                          else Original_Record_Component (Comp));
!                   --  The Parent_Subtype in an extension is not back-annotated
!                   --  but its layout is the same as that of the parent type.
  
!                   Ctyp : constant Entity_Id := Underlying_Type (Etype (C));
  
!                begin
!                   Get_Decoded_Name_String (Chars (C));
!                   Set_Casing (Unit_Casing);
  
!                   --  If extended information is requested, recurse fully into
!                   --  record components, i.e. skip the outer level.
  
!                   if List_Representation_Info_Extended
!                     and then Is_Record_Type (Ctyp)
!                     and then Known_Static_Normalized_Position (C)
!                     and then Known_Static_Normalized_First_Bit (C)
!                   then
!                      declare
!                         Npos : constant Uint := Normalized_Position (C);
!                         Fbit : constant Uint := Normalized_First_Bit (C);
!                         Pref : constant String :=
!                                  Prefix & Name_Buffer (1 .. Name_Len) & ".";
  
!                         Spos : Uint;
!                         Sbit : Uint;
  
!                      begin
!                         Spos := Starting_Position  + Npos;
!                         Sbit := Starting_First_Bit + Fbit;
! 
!                         if Sbit >= SSU then
!                            Spos := Spos + 1;
!                            Sbit := Sbit - SSU;
!                         end if;
! 
!                         List_Record_Layout (Ctyp, Spos, Sbit, Pref);
!                      end;
  
                    else
!                      if List_Representation_Info_To_JSON then
!                         if First then
!                            Write_Eol;
!                            First := False;
!                         else
!                            Write_Line (",");
!                         end if;
!                      end if;
  
!                      --  If information about holes is requested, update the
!                      --  current bit offset and report any (static) gap.
  
!                      if List_Representation_Info_Holes
!                        and then Known_Static_Component_Bit_Offset (C)
!                      then
!                         declare
!                            Gap : constant Uint :=
!                                    Component_Bit_Offset (C) - Bit_Offset;
!                         begin
!                            if Gap > Uint_0 then
!                               Write_Str ("   -- ");
!                               UI_Write (Gap, Decimal);
!                               Write_Line (" bits unused --");
!                            end if;
! 
!                            if Known_Static_Esize (C) then
!                               Bit_Offset :=
!                                 Component_Bit_Offset (C) + Esize (C);
!                            end if;
!                         end;
!                      end if;
! 
!                      List_Component_Layout
!                        (C, Starting_Position, Starting_First_Bit, Prefix);
!                   end if;
!                end;
!             end if;
  
              Next_Component_Or_Discriminant (Comp);
           end loop;
        end List_Record_Layout;
*************** package body Repinfo is
*** 1624,1629 ****
--- 1818,1834 ----
           end loop;
        end List_Structural_Record_Layout;
  
+       --  Use the original record type giving the layout of components
+       --  to avoid repeated reordering when -gnatRh is specified.
+ 
+       Rec : constant Entity_Id :=
+         (if Ekind (Ent) = E_Record_Subtype
+            and then Present (Cloned_Subtype (Ent))
+          then (if Is_Private_Type (Cloned_Subtype (Ent))
+                then Full_View (Cloned_Subtype (Ent))
+                else Cloned_Subtype (Ent))
+          else Ent);
+ 
     --  Start of processing for List_Record_Info
  
     begin
*************** package body Repinfo is
*** 1638,1644 ****
        --  First find out max line length and max starting position
        --  length, for the purpose of lining things up nicely.
  
!       Compute_Max_Length (Ent);
  
        --  Then do actual output based on those values
  
--- 1843,1849 ----
        --  First find out max line length and max starting position
        --  length, for the purpose of lining things up nicely.
  
!       Compute_Max_Length (Rec);
  
        --  Then do actual output based on those values
  
*************** package body Repinfo is
*** 1650,1670 ****
           --  declared in the extended main source unit for the time being,
           --  because otherwise declarations might not be processed at all.
  
!          if Is_Base_Type (Ent) then
              begin
!                List_Structural_Record_Layout (Ent, Ent);
  
              exception
                 when Incomplete_Layout
                    | Not_In_Extended_Main
                 =>
!                   List_Record_Layout (Ent);
  
                 when others =>
                    raise Program_Error;
              end;
           else
!             List_Record_Layout (Ent);
           end if;
  
           Write_Eol;
--- 1855,1875 ----
           --  declared in the extended main source unit for the time being,
           --  because otherwise declarations might not be processed at all.
  
!          if Is_Base_Type (Rec) then
              begin
!                List_Structural_Record_Layout (Rec, Rec);
  
              exception
                 when Incomplete_Layout
                    | Not_In_Extended_Main
                 =>
!                   List_Record_Layout (Rec);
  
                 when others =>
                    raise Program_Error;
              end;
           else
!             List_Record_Layout (Rec);
           end if;
  
           Write_Eol;
*************** package body Repinfo is
*** 1674,1680 ****
           List_Name (Ent);
           Write_Line (" use record");
  
!          List_Record_Layout (Ent);
  
           Write_Line ("end record;");
        end if;
--- 1879,1885 ----
           List_Name (Ent);
           Write_Line (" use record");
  
!          List_Record_Layout (Rec);
  
           Write_Line ("end record;");
        end if;
*************** package body Repinfo is
*** 1874,1879 ****
--- 2079,2085 ----
           List_Name (Ent);
           Write_Line (""",");
           List_Location (Ent);
+          Write_Line (",");
  
           Write_Str ("  ""Convention"": """);
        else
diff -Nrcpad gcc-15.2.0/gcc/ada/repinfo.ads gcc-16.1.0-RC-20260423/gcc/ada/repinfo.ads
*** gcc-15.2.0/gcc/ada/repinfo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/repinfo.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Repinfo is
*** 345,350 ****
--- 345,382 ----
     --  and entity id values and the back end makes Get_Dynamic_SO_Ref
     --  calls to retrieve them.
  
+    generic
+       with procedure Visit_Unop (Code : TCode; Op : Node_Ref_Or_Val);
+       --  Visit a unary operation. The opcode and argument are passed
+       --  in.
+ 
+       with procedure Visit_Binop (Code : TCode; Lhs : Node_Ref_Or_Val;
+                                   Rhs : Node_Ref_Or_Val);
+       --  Visit a binary operation. The opcode and the arguments are
+       --  passed in.
+ 
+       with procedure Visit_Cond_Expr (Test : Node_Ref_Or_Val;
+                                       Lhs : Node_Ref_Or_Val;
+                                       Rhs : Node_Ref_Or_Val);
+       --  Visit a conditional operation. The arguments are passed in
+       --  (the opcode is always Cond_Expr).
+ 
+       with procedure Visit_Constant (Val : Node_Ref_Or_Val);
+       --  Visit a constant operand. The constant is passed in.
+ 
+       with procedure Visit_Discriminant (Val : Node_Ref_Or_Val);
+       --  Visit a discriminant. The discriminant number is passed in.
+ 
+       with procedure Visit_Variable (Val : Node_Ref_Or_Val);
+       --  Visit a variable reference. The variable's index (see
+       --  Dynamic_Val) is passed in.
+ 
+    procedure Visit (Expr : Node_Ref_Or_Val);
+    --  A way to walk over a back annotation expression. The user
+    --  provides callbacks which are called with the operands and (when
+    --  needed) the code. Users can recurse on the operands by calling
+    --  Visit again.
+ 
     ------------------------------
     -- External tools Interface --
     ------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/repinfo.h gcc-16.1.0-RC-20260423/gcc/ada/repinfo.h
*** gcc-15.2.0/gcc/ada/repinfo.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/repinfo.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1999-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/restrict.adb gcc-16.1.0-RC-20260423/gcc/ada/restrict.adb
*** gcc-15.2.0/gcc/ada/restrict.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/restrict.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  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 Errout;         use Errout;
--- 25,30 ----
*************** with Fname;          use Fname;
*** 34,40 ****
  with Fname.UF;       use Fname.UF;
  with Lib;            use Lib;
  with Opt;            use Opt;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 33,38 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/restrict.ads gcc-16.1.0-RC-20260423/gcc/ada/restrict.ads
*** gcc-15.2.0/gcc/ada/restrict.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/restrict.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/rident.ads gcc-16.1.0-RC-20260423/gcc/ada/rident.ads
*** gcc-15.2.0/gcc/ada/rident.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/rident.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/rtfinal.c gcc-16.1.0-RC-20260423/gcc/ada/rtfinal.c
*** gcc-15.2.0/gcc/ada/rtfinal.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/rtfinal.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is 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_rt_init_count;
*** 46,54 ****
  /*  see initialize.c  */
  
  #if defined (__MINGW32__)
- #define WIN32_LEAN_AND_MEAN
  #include "mingw32.h"
- #include <windows.h>
  
  extern CRITICAL_SECTION ProcListCS;
  extern HANDLE ProcListEvt;
--- 46,52 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/rtinit.c gcc-16.1.0-RC-20260423/gcc/ada/rtinit.c
*** gcc-15.2.0/gcc/ada/rtinit.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/rtinit.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2014-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** int __gnat_rt_init_count = 0;
*** 70,78 ****
     and finalize properly the run-time. */
  
  #if defined (__MINGW32__)
! #define WIN32_LEAN_AND_MEAN
  #include "mingw32.h"
- #include <windows.h>
  
  extern void __gnat_init_float (void);
  
--- 70,77 ----
     and finalize properly the run-time. */
  
  #if defined (__MINGW32__)
! #include <stdlib.h>
  #include "mingw32.h"
  
  extern void __gnat_init_float (void);
  
*************** __gnat_runtime_initialize (int install_h
*** 419,424 ****
--- 418,424 ----
       int last;
       int argc_expanded = 0;
       TCHAR result [MAX_PATH];
+      int arglen;
       int quoted;
  
       __gnat_get_argw (GetCommandLineW (), &wargv, &wargc);
*************** __gnat_runtime_initialize (int install_h
*** 436,442 ****
  
  	 for (k=1; k<wargc; k++)
  	   {
! 	     quoted = (wargv[k][0] == _T('\''));
  
  	     /* Check for wildcard expansion if the argument is not quoted. */
  	     if (!quoted && __gnat_do_argv_expansion
--- 436,445 ----
  
  	 for (k=1; k<wargc; k++)
  	   {
! 	     arglen = _tcslen (wargv[k]);
! 	     quoted = wargv[k][0] == _T('\'')
! 		      && arglen > 1
! 		      && wargv[k][arglen - 1] == _T('\'');
  
  	     /* Check for wildcard expansion if the argument is not quoted. */
  	     if (!quoted && __gnat_do_argv_expansion
*************** __gnat_runtime_initialize (int install_h
*** 502,513 ****
--- 505,531 ----
  	   (gnat_argv, argc_expanded * sizeof (char *));
         }
     }
+ 
+   /* We check whether the SetThreadDescription function is available. If so, we
+      set up a pointer to it. We follow the method that's documented on this page:
+ 
+      https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getprocaddress
+    */
+   HMODULE hKernel32 = GetModuleHandleW(L"kernel32.dll");
+ 
+   if (hKernel32) {
+     pSetThreadDescription =
+       (SetThreadDescription_t)GetProcAddress(hKernel32, "SetThreadDescription");
+   }
+ 
  #endif
  
    if (install_handler)
      __gnat_install_handler();
  }
  
+ SetThreadDescription_t pSetThreadDescription;
+ 
  /**************************************************/
  /* __gnat_runtime_initialize (init_float version) */
  /**************************************************/
diff -Nrcpad gcc-15.2.0/gcc/ada/rtsfind.adb gcc-16.1.0-RC-20260423/gcc/ada/rtsfind.adb
*** gcc-15.2.0/gcc/ada/rtsfind.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/rtsfind.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,39 ****
  with Casing;         use Casing;
  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 Elists;         use Elists;
  with Errout;         use Errout;
  with Exp_Dist;
- with Fname;          use Fname;
  with Fname.UF;       use Fname.UF;
  with Ghost;          use Ghost;
  with Lib;            use Lib;
--- 27,37 ----
*************** with Restrict;       use Restrict;
*** 47,56 ****
  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;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 45,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.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
*************** package body Rtsfind is
*** 566,576 ****
  
     subtype Ada_Numerics_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers ..
!            Ada_Numerics_Big_Numbers_Big_Integers_Ghost;
  
     subtype Ada_Numerics_Big_Numbers_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers_Big_Integers ..
!            Ada_Numerics_Big_Numbers_Big_Integers_Ghost;
  
     subtype Ada_Real_Time_Descendant is Ada_Descendant
       range Ada_Real_Time_Delays .. Ada_Real_Time_Timing_Events;
--- 563,573 ----
  
     subtype Ada_Numerics_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers ..
!            Ada_Numerics_Big_Numbers_Big_Integers;
  
     subtype Ada_Numerics_Big_Numbers_Descendant is Ada_Descendant
       range Ada_Numerics_Big_Numbers_Big_Integers ..
!            Ada_Numerics_Big_Numbers_Big_Integers;
  
     subtype Ada_Real_Time_Descendant is Ada_Descendant
       range Ada_Real_Time_Delays .. Ada_Real_Time_Timing_Events;
*************** package body Rtsfind is
*** 1030,1037 ****
        U        : RT_Unit_Table_Record renames RT_Unit_Table (U_Id);
        Priv_Par : constant Elist_Id := New_Elmt_List;
        Lib_Unit : Node_Id;
!       Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean        :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
--- 1027,1033 ----
        U        : RT_Unit_Table_Record renames RT_Unit_Table (U_Id);
        Priv_Par : constant Elist_Id := New_Elmt_List;
        Lib_Unit : Node_Id;
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean        :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM  : constant SPARK_Mode_Type := SPARK_Mode;
*************** package body Rtsfind is
*** 1099,1105 ****
        procedure Restore_SPARK_Context is
        begin
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
        end Restore_SPARK_Context;
  
--- 1095,1101 ----
        procedure Restore_SPARK_Context is
        begin
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_Ghost_Config);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
        end Restore_SPARK_Context;
  
*************** package body Rtsfind is
*** 1115,1121 ****
        --  Provide a clean environment for the unit
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := False;
!       Install_Ghost_Region (None, Empty);
        Install_SPARK_Mode   (None, Empty);
  
        --  Otherwise we need to load the unit, First build unit name from the
--- 1111,1117 ----
        --  Provide a clean environment for the unit
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := False;
!       Install_Ghost_Region (None, Empty, Empty);
        Install_SPARK_Mode   (None, Empty);
  
        --  Otherwise we need to load the unit, First build unit name from the
*************** package body Rtsfind is
*** 1289,1295 ****
  
        declare
           LibUnit  : constant Node_Id         := Unit (Cunit (U.Unum));
!          Saved_GM : constant Ghost_Mode_Type := Ghost_Mode;
           Clause   : Node_Id;
           Withn    : Node_Id;
  
--- 1285,1291 ----
  
        declare
           LibUnit  : constant Node_Id         := Unit (Cunit (U.Unum));
!          Saved_GM : constant Ghost_Mode_Type := Ghost_Config.Ghost_Mode;
           Clause   : Node_Id;
           Withn    : Node_Id;
  
*************** package body Rtsfind is
*** 1308,1320 ****
           --  later, after ignored ghost code is converted to a null
           --  statement.
  
!          Ghost_Mode := None;
           Withn :=
             Make_With_Clause (Standard_Location,
               Name =>
                 Make_Unit_Name
                   (U, Defining_Unit_Name (Specification (LibUnit))));
!          Ghost_Mode := Saved_GM;
  
           Set_Corresponding_Spec  (Withn, U.Entity);
           Set_First_Name          (Withn);
--- 1304,1316 ----
           --  later, after ignored ghost code is converted to a null
           --  statement.
  
!          Ghost_Config.Ghost_Mode := None;
           Withn :=
             Make_With_Clause (Standard_Location,
               Name =>
                 Make_Unit_Name
                   (U, Defining_Unit_Name (Specification (LibUnit))));
!          Ghost_Config.Ghost_Mode := Saved_GM;
  
           Set_Corresponding_Spec  (Withn, U.Entity);
           Set_First_Name          (Withn);
*************** package body Rtsfind is
*** 1627,1633 ****
        --  is pulled within an ignored Ghost context because all this code will
        --  disappear.
  
!       if U_Id = System_Secondary_Stack and then Ghost_Mode /= Ignore then
           Sec_Stack_Used := True;
        end if;
  
--- 1623,1631 ----
        --  is pulled within an ignored Ghost context because all this code will
        --  disappear.
  
!       if U_Id = System_Secondary_Stack
!         and then Ghost_Config.Ghost_Mode /= Ignore
!       then
           Sec_Stack_Used := True;
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/rtsfind.ads gcc-16.1.0-RC-20260423/gcc/ada/rtsfind.ads
*** gcc-15.2.0/gcc/ada/rtsfind.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/rtsfind.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 121,127 ****
        --  Children of Ada.Numerics.Big_Numbers
  
        Ada_Numerics_Big_Numbers_Big_Integers,
-       Ada_Numerics_Big_Numbers_Big_Integers_Ghost,
  
        --  Children of Ada.Real_Time
  
--- 121,126 ----
*************** package Rtsfind is
*** 582,588 ****
       RE_Reference,                       -- Ada.Interrupts
  
       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
--- 581,586 ----
*************** package Rtsfind is
*** 775,786 ****
--- 773,792 ----
       RE_Scaled_Divide64,                 -- System.Arith_64
       RE_Subtract_With_Ovflo_Check64,     -- System.Arith_64
  
+      RE_Uns_Add_With_Ovflo_Check64,      -- System.Arith_64
+      RE_Uns_Multiply_With_Ovflo_Check64, -- System.Arith_64
+      RE_Uns_Subtract_With_Ovflo_Check64, -- System.Arith_64
+ 
       RE_Add_With_Ovflo_Check128,         -- System.Arith_128
       RE_Double_Divide128,                -- System.Arith_128
       RE_Multiply_With_Ovflo_Check128,    -- System.Arith_128
       RE_Subtract_With_Ovflo_Check128,    -- System.Arith_128
       RE_Scaled_Divide128,                -- System.Arith_128
  
+      RE_Uns_Add_With_Ovflo_Check128,      -- System.Arith_128
+      RE_Uns_Multiply_With_Ovflo_Check128, -- System.Arith_128
+      RE_Uns_Subtract_With_Ovflo_Check128, -- System.Arith_128
+ 
       RE_Assert_Failure,                  -- System.Assertions
       RE_Raise_Assert_Failure,            -- System.Assertions
  
*************** package Rtsfind is
*** 833,838 ****
--- 839,846 ----
       RE_Bignum_In_LLI_Range,             -- System.Bignums
       RE_To_Bignum,                       -- System.Bignums
       RE_From_Bignum,                     -- System.Bignums
+      RE_LLU_To_Bignum,                   -- System.Bignums
+      RE_LLU_From_Bignum,                 -- System.Bignums
  
       RE_Val_2,                           -- System.Bitfields
       RE_Copy_Bitfield,                   -- System.Bitfields
*************** package Rtsfind is
*** 1654,1659 ****
--- 1662,1668 ----
       RE_Put_Image_Long_Long_Long_Unsigned, -- System.Put_Images
       RE_Put_Image_Thin_Pointer,          -- System.Put_Images
       RE_Put_Image_Fat_Pointer,           -- System.Put_Images
+      RE_Put_Image_Extended_Access_Pointer, -- System.Put_Images
       RE_Put_Image_Access_Subp,           -- System.Put_Images
       RE_Put_Image_Access_Prot_Subp,      -- System.Put_Images
       RE_Put_Image_String,                -- System.Put_Images
*************** package Rtsfind is
*** 1893,1898 ****
--- 1902,1908 ----
       RE_W_U24,                           -- System.Stream_Attributes
       RE_W_WC,                            -- System.Stream_Attributes
       RE_W_WWC,                           -- System.Stream_Attributes
+      RE_W_80IEEE,                        -- System.Stream_Attributes
  
       RE_Storage_Array_Input,             -- System.Strings.Stream_Ops
       RE_Storage_Array_Input_Blk_IO,      -- System.Strings.Stream_Ops
*************** package Rtsfind is
*** 2231,2237 ****
       RE_Reference                        => Ada_Interrupts,
  
       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,
--- 2241,2246 ----
*************** package Rtsfind is
*** 2424,2435 ****
--- 2433,2452 ----
       RE_Scaled_Divide64                  => System_Arith_64,
       RE_Subtract_With_Ovflo_Check64      => System_Arith_64,
  
+      RE_Uns_Add_With_Ovflo_Check64       => System_Arith_64,
+      RE_Uns_Multiply_With_Ovflo_Check64  => System_Arith_64,
+      RE_Uns_Subtract_With_Ovflo_Check64  => System_Arith_64,
+ 
       RE_Add_With_Ovflo_Check128          => System_Arith_128,
       RE_Double_Divide128                 => System_Arith_128,
       RE_Multiply_With_Ovflo_Check128     => System_Arith_128,
       RE_Subtract_With_Ovflo_Check128     => System_Arith_128,
       RE_Scaled_Divide128                 => System_Arith_128,
  
+      RE_Uns_Add_With_Ovflo_Check128      => System_Arith_128,
+      RE_Uns_Multiply_With_Ovflo_Check128 => System_Arith_128,
+      RE_Uns_Subtract_With_Ovflo_Check128 => System_Arith_128,
+ 
       RE_Assert_Failure                   => System_Assertions,
       RE_Raise_Assert_Failure             => System_Assertions,
  
*************** package Rtsfind is
*** 2482,2487 ****
--- 2499,2506 ----
       RE_Bignum_In_LLI_Range              => System_Bignums,
       RE_To_Bignum                        => System_Bignums,
       RE_From_Bignum                      => System_Bignums,
+      RE_LLU_To_Bignum                    => System_Bignums,
+      RE_LLU_From_Bignum                  => System_Bignums,
  
       RE_Val_2                            => System_Bitfields,
       RE_Copy_Bitfield                    => System_Bitfields,
*************** package Rtsfind is
*** 3428,3433 ****
--- 3447,3453 ----
       RE_Put_Image_Long_Long_Long_Unsigned => System_Put_Images,
       RE_Put_Image_Thin_Pointer           => System_Put_Images,
       RE_Put_Image_Fat_Pointer            => System_Put_Images,
+      RE_Put_Image_Extended_Access_Pointer => System_Put_Images,
       RE_Put_Image_Access_Subp            => System_Put_Images,
       RE_Put_Image_Access_Prot_Subp       => System_Put_Images,
       RE_Put_Image_String                 => System_Put_Images,
*************** package Rtsfind is
*** 3550,3555 ****
--- 3570,3576 ----
       RE_W_U24                            => System_Stream_Attributes,
       RE_W_WC                             => System_Stream_Attributes,
       RE_W_WWC                            => System_Stream_Attributes,
+      RE_W_80IEEE                         => System_Stream_Attributes,
  
       RE_Storage_Array_Input              => System_Strings_Stream_Ops,
       RE_Storage_Array_Input_Blk_IO       => System_Strings_Stream_Ops,
diff -Nrcpad gcc-15.2.0/gcc/ada/runtime.h gcc-16.1.0-RC-20260423/gcc/ada/runtime.h
*** gcc-15.2.0/gcc/ada/runtime.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/runtime.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2019-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/s-oscons-tmplt.c gcc-16.1.0-RC-20260423/gcc/ada/s-oscons-tmplt.c
*** gcc-15.2.0/gcc/ada/s-oscons-tmplt.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/s-oscons-tmplt.c	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 7,13 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** CND(SIZEOF_tv_usec, "tv_usec")
*** 1764,1769 ****
--- 1764,1780 ----
  #endif
  CNS(MAX_tv_sec, "")
  }
+ 
+ {
+   struct timespec ts;
+ /*
+    --  Sizes (in bytes) of the components of struct timespec.
+    --  The tv_sec field is the same as in struct timeval.
+ */
+ #define SIZEOF_tv_nsec (sizeof (ts.tv_nsec))
+ CND(SIZEOF_tv_nsec, "tv_nsec");
+ }
+ 
  /*
  
     --  Sizes of various data types
*************** struct sockaddr_un {
*** 1791,1796 ****
--- 1802,1810 ----
  #define SIZEOF_sockaddr_un (sizeof (struct sockaddr_un))
  CND(SIZEOF_sockaddr_un, "struct sockaddr_un")
  
+ #define BACKLOG_MAX 15
+ CND(BACKLOG_MAX, "number of outstanding connections in the socket's listen queue")
+ 
  #define SIZEOF_fd_set (sizeof (fd_set))
  CND(SIZEOF_fd_set, "fd_set")
  CND(FD_SETSIZE, "Max fd value")
*************** CND(IF_NAMESIZE, "Max size of interface
*** 1868,1873 ****
--- 1882,1888 ----
  #endif
  
  #elif defined(_WIN32)
+ #undef  POLLPRI
  #define POLLPRI 0
  /*  If the POLLPRI flag is set on a socket for the Microsoft Winsock provider,
   *  the WSAPoll function will fail. */
*************** CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
*** 1976,1982 ****
  #if defined(__linux__) || defined(__FreeBSD__) \
   || (defined(_AIX) && defined(_AIXVERSION_530)) \
   || defined(__DragonFly__) || defined(__QNX__) \
!  || defined (__vxworks)
  /** On these platforms use system provided monotonic clock instead of
   ** the default CLOCK_REALTIME. We then need to set up cond var attributes
   ** appropriately (see thread.c).
--- 1991,1997 ----
  #if defined(__linux__) || defined(__FreeBSD__) \
   || (defined(_AIX) && defined(_AIXVERSION_530)) \
   || defined(__DragonFly__) || defined(__QNX__) \
!  || (defined (__vxworks) && /* VxWorks7 */ defined (_VSB_CONFIG_FILE))
  /** On these platforms use system provided monotonic clock instead of
   ** the default CLOCK_REALTIME. We then need to set up cond var attributes
   ** appropriately (see thread.c).
*************** CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU
*** 1985,1990 ****
--- 2000,2009 ----
   ** pthread_cond_timedwait (and does not have pthread_condattr_setclock),
   ** hence the conditionalization on AIX version above). _AIXVERSION_530
   ** is defined in AIX 5.3 and more recent versions.
+  **
+  ** VxWorks6 lacks pthread_condattr_setclock, so define CLOCK_RT_Ada to
+  ** CLOCK_REALTIME to get the dummy definition of __gnat_pthread_condattr_setup
+  ** in libgnarl/thread.c.
   **/
  # define CLOCK_RT_Ada "CLOCK_MONOTONIC"
  
diff -Nrcpad gcc-15.2.0/gcc/ada/s-pack.adb.tmpl gcc-16.1.0-RC-20260423/gcc/ada/s-pack.adb.tmpl
*** gcc-15.2.0/gcc/ada/s-pack.adb.tmpl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/s-pack.adb.tmpl	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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.Pack_@@ is
*** 37,43 ****
  
     --  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.
  
--- 37,43 ----
  
     --  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 other words @@ bits, and to access the indexed
     --  component of the array through the appropriate selected component
     --  of the record.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/s-pack.ads.tmpl gcc-16.1.0-RC-20260423/gcc/ada/s-pack.ads.tmpl
*** gcc-15.2.0/gcc/ada/s-pack.ads.tmpl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/s-pack.ads.tmpl	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/scans.adb gcc-16.1.0-RC-20260423/gcc/ada/scans.adb
*** gcc-15.2.0/gcc/ada/scans.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scans.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 163,204 ****
        return Name_Find (Name);
     end Keyword_Name;
  
     ------------------------
     -- Restore_Scan_State --
     ------------------------
  
     procedure Restore_Scan_State (Saved_State : Saved_Scan_State) is
     begin
!       Scan_Ptr                 := Saved_State.Save_Scan_Ptr;
!       Token                    := Saved_State.Save_Token;
!       Token_Ptr                := Saved_State.Save_Token_Ptr;
!       Current_Line_Start       := Saved_State.Save_Current_Line_Start;
!       Start_Column             := Saved_State.Save_Start_Column;
!       Checksum                 := Saved_State.Save_Checksum;
        First_Non_Blank_Location := Saved_State.Save_First_Non_Blank_Location;
-       Token_Node               := Saved_State.Save_Token_Node;
-       Token_Name               := Saved_State.Save_Token_Name;
-       Prev_Token               := Saved_State.Save_Prev_Token;
-       Prev_Token_Ptr           := Saved_State.Save_Prev_Token_Ptr;
-    end Restore_Scan_State;
  
!    ---------------------
!    -- Save_Scan_State --
!    ---------------------
  
!    procedure Save_Scan_State (Saved_State : out Saved_Scan_State) is
!    begin
!       Saved_State.Save_Scan_Ptr                 := Scan_Ptr;
!       Saved_State.Save_Token                    := Token;
!       Saved_State.Save_Token_Ptr                := Token_Ptr;
!       Saved_State.Save_Current_Line_Start       := Current_Line_Start;
!       Saved_State.Save_Start_Column             := Start_Column;
!       Saved_State.Save_Checksum                 := Checksum;
!       Saved_State.Save_First_Non_Blank_Location := First_Non_Blank_Location;
!       Saved_State.Save_Token_Node               := Token_Node;
!       Saved_State.Save_Token_Name               := Token_Name;
!       Saved_State.Save_Prev_Token               := Prev_Token;
!       Saved_State.Save_Prev_Token_Ptr           := Prev_Token_Ptr;
!    end Save_Scan_State;
  
  end Scans;
--- 163,216 ----
        return Name_Find (Name);
     end Keyword_Name;
  
+    ---------------------
+    -- Save_Scan_State --
+    ---------------------
+ 
+    procedure Save_Scan_State (Saved_State : out Saved_Scan_State) is
+    begin
+       Saved_State.Save_Scan_Ptr := Scan_Ptr;
+       Saved_State.Save_Token := Token;
+       Saved_State.Save_Token_Ptr := Token_Ptr;
+       Saved_State.Save_Current_Line_Start := Current_Line_Start;
+       Saved_State.Save_Start_Column := Start_Column;
+       Saved_State.Save_Checksum := Checksum;
+       Saved_State.Save_First_Non_Blank_Location := First_Non_Blank_Location;
+ 
+       --  Check that we're not saving a bogus Token_Node
+ 
+       pragma Assert
+         ((Token_Node /= Empty) = (Token in Token_Class_Lit_Or_Name));
+       Saved_State.Save_Token_Node := Token_Node;
+ 
+       Saved_State.Save_Token_Name := Token_Name;
+       Saved_State.Save_Prev_Token := Prev_Token;
+       Saved_State.Save_Prev_Token_Ptr := Prev_Token_Ptr;
+    end Save_Scan_State;
+ 
     ------------------------
     -- Restore_Scan_State --
     ------------------------
  
+    --  use Output, VAST, Atree;
+ 
     procedure Restore_Scan_State (Saved_State : Saved_Scan_State) is
     begin
!       Scan_Ptr := Saved_State.Save_Scan_Ptr;
!       Token := Saved_State.Save_Token;
!       Token_Ptr := Saved_State.Save_Token_Ptr;
!       Current_Line_Start := Saved_State.Save_Current_Line_Start;
!       Start_Column := Saved_State.Save_Start_Column;
!       Checksum := Saved_State.Save_Checksum;
        First_Non_Blank_Location := Saved_State.Save_First_Non_Blank_Location;
  
!       Token_Node := Saved_State.Save_Token_Node;
!       pragma Assert
!         ((Token_Node /= Empty) = (Token in Token_Class_Lit_Or_Name));
  
!       Token_Name := Saved_State.Save_Token_Name;
!       Prev_Token := Saved_State.Save_Prev_Token;
!       Prev_Token_Ptr := Saved_State.Save_Prev_Token_Ptr;
!    end Restore_Scan_State;
  
  end Scans;
diff -Nrcpad gcc-15.2.0/gcc/ada/scans.ads gcc-16.1.0-RC-20260423/gcc/ada/scans.ads
*** gcc-15.2.0/gcc/ada/scans.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scans.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 411,419 ****
     --  is stored in Start_Column).
  
     Token_Node : Node_Id := Empty;
!    --  Node table Id for the current token. This is set only if the current
!    --  token is one for which the scanner constructs a node (i.e. it is an
!    --  identifier, operator symbol, or literal). For other token types,
     --  Token_Node is undefined.
  
     Token_Name : Name_Id := No_Name;
--- 411,419 ----
     --  is stored in Start_Column).
  
     Token_Node : Node_Id := Empty;
!    --  Node_Id for the current token. This is set only if the current token is
!    --  one for which the scanner constructs a node (i.e. it is an identifier,
!    --  operator symbol, literal, or target name). For other token types,
     --  Token_Node is undefined.
  
     Token_Name : Name_Id := No_Name;
diff -Nrcpad gcc-15.2.0/gcc/ada/scil_ll.adb gcc-16.1.0-RC-20260423/gcc/ada/scil_ll.adb
*** gcc-15.2.0/gcc/ada/scil_ll.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scil_ll.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Opt;            use Opt;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with System.HTable;  use System.HTable;
  
--- 25,30 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/scil_ll.ads gcc-16.1.0-RC-20260423/gcc/ada/scil_ll.ads
*** gcc-15.2.0/gcc/ada/scil_ll.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scil_ll.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2010-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/scn.adb gcc-16.1.0-RC-20260423/gcc/ada/scn.adb
*** gcc-15.2.0/gcc/ada/scn.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scn.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 29,35 ****
  with Restrict;       use Restrict;
  with Rident;         use Rident;
  with Scans;          use Scans;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Uintp;          use Uintp;
--- 29,34 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/scn.ads gcc-16.1.0-RC-20260423/gcc/ada/scn.ads
*** gcc-15.2.0/gcc/ada/scn.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scn.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Scn is
*** 48,63 ****
     --  keyword or an identifier. See also package Casing.
  
     procedure Post_Scan;
!    --  Create nodes for tokens: Char_Literal, Identifier, Real_Literal,
!    --  Integer_Literal, String_Literal and Operator_Symbol.
  
     procedure Scan_Reserved_Identifier (Force_Msg : Boolean);
!    --  This procedure is called to convert the current token, which the caller
!    --  has checked is for a reserved word, to an equivalent identifier. This is
!    --  of course only used in error situations where the parser can detect that
!    --  a reserved word is being used as an identifier. An appropriate error
!    --  message, pointing to the token, is also issued if either this is the
!    --  first occurrence of misuse of this identifier, or if Force_Msg is True.
  
     -------------
     -- Scanner --
--- 48,62 ----
     --  keyword or an identifier. See also package Casing.
  
     procedure Post_Scan;
!    --  Sets Token_Node as specified in Scans.
!    --  Also checks for obsolescent features.
  
     procedure Scan_Reserved_Identifier (Force_Msg : Boolean);
!    --  Converts the current token, which is a reserved word, to an equivalent
!    --  identifier. This is used only in error situations where the parser can
!    --  detect that a reserved word is being used as an identifier. An error
!    --  message pointing to the token is also issued if either this is the first
!    --  occurrence of misuse of this identifier, or if Force_Msg is True.
  
     -------------
     -- Scanner --
diff -Nrcpad gcc-15.2.0/gcc/ada/scng.adb gcc-16.1.0-RC-20260423/gcc/ada/scng.adb
*** gcc-15.2.0/gcc/ada/scng.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scng.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Scng is
*** 295,309 ****
        --  This is the procedure for scanning out numeric literals. On entry,
        --  Scan_Ptr points to the digit that starts the numeric literal (the
        --  checksum for this character has not been accumulated yet). On return
!       --  Scan_Ptr points past the last character of the numeric literal, Token
!       --  and Token_Node are set appropriately, and the checksum is updated.
  
        procedure Slit;
        --  This is the procedure for scanning out string literals. On entry,
        --  Scan_Ptr points to the opening string quote (the checksum for this
        --  character has not been accumulated yet). On return Scan_Ptr points
!       --  past the closing quote of the string literal, Token and Token_Node
!       --  are set appropriately, and the checksum is updated.
  
        procedure Skip_Other_Format_Characters;
        --  Skips past any "other format" category characters at the current
--- 295,309 ----
        --  This is the procedure for scanning out numeric literals. On entry,
        --  Scan_Ptr points to the digit that starts the numeric literal (the
        --  checksum for this character has not been accumulated yet). On return
!       --  Scan_Ptr points past the last character of the numeric literal, and
!       --  the checksum is updated.
  
        procedure Slit;
        --  This is the procedure for scanning out string literals. On entry,
        --  Scan_Ptr points to the opening string quote (the checksum for this
        --  character has not been accumulated yet). On return Scan_Ptr points
!       --  past the closing quote of the string literal, and the checksum is
!       --  updated.
  
        procedure Skip_Other_Format_Characters;
        --  Skips past any "other format" category characters at the current
*************** package body Scng is
*** 825,834 ****
           --  Procedure used to distinguish between string and operator symbol.
           --  On entry the string has been scanned out, and its characters start
           --  at Token_Ptr and end one character before Scan_Ptr. On exit Token
!          --  is set to Tok_String_Literal/Tok_Operator_Symbol as appropriate,
!          --  and Token_Node is appropriately initialized. In addition, in the
!          --  operator symbol case, Token_Name is appropriately set, and the
!          --  flags [Wide_]Wide_Character_Found are set appropriately.
  
           ---------------------------
           -- Error_Bad_String_Char --
--- 825,831 ----
           --  Procedure used to distinguish between string and operator symbol.
           --  On entry the string has been scanned out, and its characters start
           --  at Token_Ptr and end one character before Scan_Ptr. On exit Token
!          --  is set to Tok_String_Literal/Tok_Operator_Symbol as appropriate.
  
           ---------------------------
           -- Error_Bad_String_Char --
*************** package body Scng is
*** 1297,1302 ****
--- 1294,1300 ----
     begin
        Prev_Token := Token;
        Prev_Token_Ptr := Token_Ptr;
+       Token_Node := Empty;
        Token_Name := Error_Name;
  
        if Inside_Interpolated_String_Literal
diff -Nrcpad gcc-15.2.0/gcc/ada/scng.ads gcc-16.1.0-RC-20260423/gcc/ada/scng.ads
*** gcc-15.2.0/gcc/ada/scng.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scng.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
*************** generic
*** 35,42 ****
     with procedure Post_Scan;
     --  Procedure called by Scan for the following tokens: Tok_Char_Literal,
     --  Tok_Identifier, Tok_Real_Literal, Tok_Real_Literal, Tok_Integer_Literal,
!    --  Tok_String_Literal, Tok_Operator_Symbol, and Tok_Vertical_Bar. Used to
!    --  build Token_Node and also check for obsolescent features.
  
     with procedure Error_Msg (Msg : String; Flag_Location : Source_Ptr);
     --  Output a message at specified location
--- 35,41 ----
     with procedure Post_Scan;
     --  Procedure called by Scan for the following tokens: Tok_Char_Literal,
     --  Tok_Identifier, Tok_Real_Literal, Tok_Real_Literal, Tok_Integer_Literal,
!    --  Tok_String_Literal, Tok_Operator_Symbol, and Tok_Vertical_Bar.
  
     with procedure Error_Msg (Msg : String; Flag_Location : Source_Ptr);
     --  Output a message at specified location
diff -Nrcpad gcc-15.2.0/gcc/ada/scos.adb gcc-16.1.0-RC-20260423/gcc/ada/scos.adb
*** gcc-15.2.0/gcc/ada/scos.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scos.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/scos.ads gcc-16.1.0-RC-20260423/gcc/ada/scos.ads
*** gcc-15.2.0/gcc/ada/scos.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scos.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,36 ****
  --  the ALI file, and by Get_SCO/Put_SCO to read and write the text form that
  --  is used in the ALI file.
  
- --  WARNING: There is a C version of this package. Any changes to this
- --  source file must be properly reflected in the C header file scos.h
- 
  with Namet; use Namet;
  with Table;
  with Types; use Types;
--- 28,33 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/scos.h gcc-16.1.0-RC-20260423/gcc/ada/scos.h
*** gcc-15.2.0/gcc/ada/scos.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/scos.h	Thu Jan  1 00:00:00 1970
***************
*** 1,89 ****
- /****************************************************************************
-  *                                                                          *
-  *                         GNAT COMPILER COMPONENTS                         *
-  *                                                                          *
-  *                                 S C O S                                  *
-  *                                                                          *
-  *                              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- *
-  * 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.      *
-  *                                                                          *
-  ****************************************************************************/
- 
- /* This is the C header that corresponds to the Ada package specification for
-    Scos.  It was created manually from scos.ads and must be kept synchronized
-    with changes in this file.  */
- 
- #ifdef __cplusplus
- extern "C" {
- #endif
- 
- 
- /* Unit table:  */
- 
- typedef Int SCO_Unit_Index;
- 
- struct SCO_Unit_Table_Entry
-   {
-     String_Pointer File_Name;
-     Int File_Index;
-     Nat Dep_Num;
-     Nat From, To;
-   };
- 
- typedef struct SCO_Unit_Table_Entry *SCO_Unit_Table_Type;
- 
- extern SCO_Unit_Table_Type scos__sco_unit_table__table;
- #define SCO_Unit_Table scos__sco_unit_table__table
- 
- extern Int scos__sco_unit_table__min;
- #define SCO_Unit_Table_Min scos__sco_unit_table__min
- 
- extern Int scos__sco_unit_table__last_val;
- #define SCO_Unit_Table_Last_Val scos__sco_unit_table__last_val
- 
- 
- /* SCOs table:  */
- 
- struct Source_Location
-   {
-     Line_Number_Type Line;
-     Column_Number_Type Col;
-   };
- 
- struct SCO_Table_Entry
-   {
-     struct Source_Location From, To;
-     char C1, C2;
-     bool Last;
-     Source_Ptr Pragma_Sloc;
-     Name_Id Pragma_Aspect_Name;
-   };
- 
- typedef struct SCO_Table_Entry *SCO_Table_Type;
- 
- extern SCO_Table_Type scos__sco_table__table;
- #define SCO_Table scos__sco_table__table
- 
- extern Int scos__sco_table__min;
- #define SCO_Table_Min scos__sco_table__min
- 
- extern Int scos__sco_table__last_val;
- #define SCO_Table_Last_Val scos__sco_table__last_val
- 
- #ifdef __cplusplus
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sdefault.ads gcc-16.1.0-RC-20260423/gcc/ada/sdefault.ads
*** gcc-15.2.0/gcc/ada/sdefault.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sdefault.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/seh_init.c gcc-16.1.0-RC-20260423/gcc/ada/seh_init.c
*** gcc-15.2.0/gcc/ada/seh_init.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/seh_init.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *           Copyright (C) 2005-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sem.adb gcc-16.1.0-RC-20260423/gcc/ada/sem.adb
*** gcc-15.2.0/gcc/ada/sem.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Debug_A;        use Debug_A;
- with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Exp_SPARK;      use Exp_SPARK;
--- 26,31 ----
*************** with Sem_Ch12;       use Sem_Ch12;
*** 52,58 ****
  with Sem_Ch13;       use Sem_Ch13;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 51,56 ----
*************** package body Sem is
*** 104,111 ****
     --  Ghost mode.
  
     procedure Analyze (N : Node_Id) is
!       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
  
     begin
--- 102,108 ----
     --  Ghost mode.
  
     procedure Analyze (N : Node_Id) is
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
     begin
*************** package body Sem is
*** 192,197 ****
--- 189,197 ----
           when N_Conditional_Entry_Call =>
              Analyze_Conditional_Entry_Call (N);
  
+          when N_Continue_Statement =>
+             Analyze_Continue_Statement (N);
+ 
           when N_Delay_Alternative =>
              Analyze_Delay_Alternative (N);
  
*************** package body Sem is
*** 765,776 ****
           E : constant Entity_Id := Defining_Entity_Or_Empty (N);
        begin
           if Present (E) then
!             if Ekind (E) = E_Void
!               and then Nkind (N) = N_Component_Declaration
                and then Present (Scope (E))
                and then Ekind (Scope (E)) = E_Record_Type
              then
!                null; -- Set it later, in Analyze_Component_Declaration
              elsif not Is_Not_Self_Hidden (E) then
                 Set_Is_Not_Self_Hidden (E);
              end if;
--- 765,775 ----
           E : constant Entity_Id := Defining_Entity_Or_Empty (N);
        begin
           if Present (E) then
!             if Nkind (N) = N_Component_Declaration
                and then Present (Scope (E))
                and then Ekind (Scope (E)) = E_Record_Type
              then
!                null; -- Set it later, in Record_Type_Definition
              elsif not Is_Not_Self_Hidden (E) then
                 Set_Is_Not_Self_Hidden (E);
              end if;
*************** package body Sem is
*** 840,846 ****
           Expand_SPARK_Potential_Renaming (N);
        end if;
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze;
  
     --  Version with check(s) suppressed
--- 839,845 ----
           Expand_SPARK_Potential_Renaming (N);
        end if;
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze;
  
     --  Version with check(s) suppressed
*************** package body Sem is
*** 1399,1405 ****
             Prev     => Global_Suppress_Stack_Top,
             Next     => Suppress_Stack_Entries);
        Suppress_Stack_Entries := Global_Suppress_Stack_Top;
-       return;
     end Push_Global_Suppress_Stack_Entry;
  
     -------------------------------------
--- 1398,1403 ----
*************** package body Sem is
*** 1420,1427 ****
             Prev     => Local_Suppress_Stack_Top,
             Next     => Suppress_Stack_Entries);
        Suppress_Stack_Entries := Local_Suppress_Stack_Top;
- 
-       return;
     end Push_Local_Suppress_Stack_Entry;
  
     ---------------
--- 1418,1423 ----
*************** package body Sem is
*** 1441,1448 ****
        --  the Ghost mode.
  
        procedure Do_Analyze is
!          Saved_GM  : constant Ghost_Mode_Type := Ghost_Mode;
!          Saved_IGR : constant Node_Id         := Ignored_Ghost_Region;
           Saved_ISMP : constant Boolean        :=
                          Ignore_SPARK_Mode_Pragmas_In_Instance;
           --  Save Ghost and SPARK mode-related data to restore on exit
--- 1437,1443 ----
        --  the Ghost mode.
  
        procedure Do_Analyze is
!          Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
           Saved_ISMP : constant Boolean        :=
                          Ignore_SPARK_Mode_Pragmas_In_Instance;
           --  Save Ghost and SPARK mode-related data to restore on exit
*************** package body Sem is
*** 1463,1469 ****
  
           --  Set up a clean environment before analyzing
  
!          Install_Ghost_Region (None, Empty);
           Ignore_SPARK_Mode_Pragmas_In_Instance := False;
  
           Outer_Generic_Scope := Empty;
--- 1458,1464 ----
  
           --  Set up a clean environment before analyzing
  
!          Install_Ghost_Region (None, Empty, Empty);
           Ignore_SPARK_Mode_Pragmas_In_Instance := False;
  
           Outer_Generic_Scope := Empty;
*************** package body Sem is
*** 1490,1496 ****
           Style_Max_Line_Length := Saved_ML;
           Style_Check_Max_Line_Length := Saved_CML;
  
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
        end Do_Analyze;
  
--- 1485,1491 ----
           Style_Max_Line_Length := Saved_ML;
           Style_Check_Max_Line_Length := Saved_CML;
  
!          Restore_Ghost_Region (Saved_Ghost_Config);
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
        end Do_Analyze;
  
*************** package body Sem is
*** 1565,1571 ****
  
        --  Compile predefined units with GNAT_Mode set to True, to properly
        --  process the categorization stuff. However, do not set GNAT_Mode
!       --  to True for the renamings units (Text_IO, IO_Exceptions, Direct_IO,
        --  Sequential_IO) as this would prevent pragma Extend_System from being
        --  taken into account, for example when Text_IO is renaming DEC.Text_IO.
  
--- 1560,1566 ----
  
        --  Compile predefined units with GNAT_Mode set to True, to properly
        --  process the categorization stuff. However, do not set GNAT_Mode
!       --  to True for the renaming units (Text_IO, IO_Exceptions, Direct_IO,
        --  Sequential_IO) as this would prevent pragma Extend_System from being
        --  taken into account, for example when Text_IO is renaming DEC.Text_IO.
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem.ads gcc-16.1.0-RC-20260423/gcc/ada/sem.ads
*** gcc-15.2.0/gcc/ada/sem.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
***************
*** 109,115 ****
  --  pragmas that appear with subprogram specifications rather than in the body.
  
  --  Collectively we call these Spec_Expressions. The routine that performs the
! --  special analysis is called Preanalyze_Spec_Expression.
  
  --  Expansion has to be deferred since you can't generate code for expressions
  --  that reference types that have not been frozen yet. As an example, consider
--- 109,115 ----
  --  pragmas that appear with subprogram specifications rather than in the body.
  
  --  Collectively we call these Spec_Expressions. The routine that performs the
! --  special analysis is called Preanalyze_And_Resolve_Spec_Expression.
  
  --  Expansion has to be deferred since you can't generate code for expressions
  --  that reference types that have not been frozen yet. As an example, consider
***************
*** 198,208 ****
  --  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;
--- 198,208 ----
  --  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_And_Resolve_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_And_Resolve_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
*** 307,312 ****
--- 307,324 ----
     --  case. We could perhaps do a more accurate job and retain some of the
     --  warnings, but it is quite a tricky job.
  
+    Ghost_Context_Checks_Disabled : Boolean := False;
+    --  This flag controls whether ghost context related checks are enabled or
+    --  disabled. Typically they are enabled however they need to be disabled in
+    --  instances where the ghost region context has not been set.
+    --
+    --  Typically this is done for pragmas where the ghostliness of the pragma
+    --  is determined by an entity specified as one of the arguments. In these
+    --  cases we need to analyze that argument before the pragma itself to
+    --  determine the ghostliness of the pragma. However at that point we have
+    --  not set the ghost region for the pragma in order to determine the ghost
+    --  context of the argument.
+ 
     -----------------------------------
     -- Handling of Check Suppression --
     -----------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_aggr.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_aggr.adb
*** gcc-15.2.0/gcc/ada/sem_aggr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_aggr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,36 ****
  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 Errout;         use Errout;
  with Expander;       use Expander;
  with Exp_Tss;        use Exp_Tss;
--- 26,34 ----
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Expander;       use Expander;
  with Exp_Tss;        use Exp_Tss;
*************** with Sem_Res;        use Sem_Res;
*** 60,66 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Type;       use Sem_Type;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
  with Stringt;        use Stringt;
--- 58,63 ----
*************** package body Sem_Aggr is
*** 1137,1146 ****
     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;
--- 1134,1151 ----
     begin
        Error_Msg_Warn := SPARK_Mode /= On;
  
!       if Has_Modular_Operations (Index_Typ) then
           Error_Msg_N
             ("null array aggregate indexed by a modular type<<", N);
! 
!       elsif Is_Modular_Integer_Type (Index_Typ)
!         and then Has_Unsigned_Base_Range_Aspect (Base_Type (Index_Typ))
!       then
!          Error_Msg_N
!            ("null array aggregate indexed by an unsigned base range type<<",
!             N);
! 
!       elsif Is_Enumeration_Type (Index_Typ) then
           Error_Msg_N
             ("null array aggregate indexed by an enumeration type<<", N);
        end if;
*************** package body Sem_Aggr is
*** 3332,3337 ****
--- 3337,3360 ----
                       --  Not needed if others, since missing impossible.
  
                       if No (Others_N) then
+                         --  We are dealing with a gap in the indicies. However
+                         --  we should also check for an out of bounds error. If
+                         --  there exists an out of bounds error then we should
+                         --  not be suggesting that the user should add the
+                         --  missing indices but rather remove the ones that are
+                         --  out of bounds.
+ 
+                         Aggr_Low := Table (1).Lo;
+                         Aggr_High := Table (Nb_Discrete_Choices).Hi;
+ 
+                         Check_Bounds
+                           (Index_Typ_Low, Index_Typ_High, Aggr_Low, Aggr_High);
+                         Check_Bounds
+                           (Index_Base_Low,
+                            Index_Base_High,
+                            Aggr_Low,
+                            Aggr_High);
+ 
                          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
*** 3359,3369 ****
                                   if Hi_Val + 1 = Lo_Val - 1 then
                                      Error_Msg_N
                                        ("missing index value "
!                                        & "in array aggregate!", Error_Node);
                                   else
                                      Error_Msg_N
                                        ("missing index values "
!                                        & "in array aggregate!", Error_Node);
                                   end if;
  
                                   Output_Bad_Choices
--- 3382,3394 ----
                                   if Hi_Val + 1 = Lo_Val - 1 then
                                      Error_Msg_N
                                        ("missing index value "
!                                        & "in array aggregate!",
!                                        Error_Node);
                                   else
                                      Error_Msg_N
                                        ("missing index values "
!                                        & "in array aggregate!",
!                                        Error_Node);
                                   end if;
  
                                   Output_Bad_Choices
*************** package body Sem_Aggr is
*** 3790,3796 ****
        --  a subtype indication or an iterator specification that determines
        --  an element type.
  
!       Asp   : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
--- 3815,3821 ----
        --  a subtype indication or an iterator specification that determines
        --  an element type.
  
!       Asp : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
*************** package body Sem_Aggr is
*** 3807,3871 ****
           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
! 
!             --  Create a temporary scope to avoid some modifications from
!             --  escaping the Analyze call below. The original Tree will be
!             --  reanalyzed later.
! 
!             Ent := New_Internal_Entity
!                      (E_Loop, Current_Scope, Sloc (Comp), 'L');
!             Set_Etype  (Ent, Standard_Void_Type);
!             Set_Parent (Ent, Parent (Comp));
!             Push_Scope (Ent);
  
!             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
!             --  a copy of the original expression, because it will be
!             --  reanalyzed and copied as needed during expansion of the
!             --  corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
              if Present (Key_Expr) then
--- 3832,3881 ----
           Key_Type  : Entity_Id;
           Elmt_Type : Entity_Id)
        is
!          Loc : constant Source_Ptr := Sloc (N);
! 
           Choice        : Node_Id;
           Copy          : Node_Id;
           Key_Expr      : Node_Id := Empty;
           Id            : Entity_Id;
!          Scop          : Entity_Id;
!          Typ           : Entity_Id;
  
        begin
!          Error_Msg_Ada_2022_Feature ("iterated element", Loc);
  
!          --  Create a scope in which to introduce an index, to make it visible
!          --  for the analysis of element expression.
  
!          Scop := New_Internal_Entity (E_Loop, Current_Scope, Sloc (Comp), 'L');
!          Set_Etype  (Scop, Standard_Void_Type);
!          Set_Parent (Scop, Parent (Comp));
!          Push_Scope (Scop);
  
!          --  If this is an Iterated_Element_Association, then either an
!          --  Iterator_Specification or a Loop_Parameter specification
!          --  is present.
  
!          if Nkind (Comp) = N_Iterated_Element_Association then
!             if Present (Iterator_Specification (Comp)) then
!                Preanalyze (Iterator_Specification (Comp));
              else
!                Preanalyze (Loop_Parameter_Specification (Comp));
!             end if;
  
!             --  Note that analyzing Loop_Parameter_Specification (Comp) above
!             --  may have turned it into Iterator_Specification (Comp), so the
!             --  following statement cannot be merged with the above one.
  
!             if Present (Iterator_Specification (Comp)) then
!                Id := Defining_Identifier (Iterator_Specification (Comp));
!             else
!                Id := Defining_Identifier (Loop_Parameter_Specification (Comp));
              end if;
  
              --  Key expression must have the type of the key. We preanalyze
!             --  the expression, because it will be copied and reanalyzed as
!             --  needed during expansion of the corresponding loop.
  
              Key_Expr := Key_Expression (Comp);
              if Present (Key_Expr) then
*************** package body Sem_Aggr is
*** 3876,3911 ****
                         & "(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
!             --  escaping the Analyze call below. The original Tree will be
!             --  reanalyzed later.
! 
!             Ent := New_Internal_Entity
!                      (E_Loop, Current_Scope, Sloc (Comp), 'L');
!             Set_Etype  (Ent, Standard_Void_Type);
!             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);
! 
!             End_Scope;
  
!             Typ := Etype (Defining_Identifier (Copy));
  
           else
              Choice := First (Discrete_Choices (Comp));
--- 3886,3903 ----
                         & "(RM22 4.3.5(24))",
                       Comp);
                 else
!                   Preanalyze_And_Resolve (Key_Expr, Key_Type);
                 end if;
              end if;
  
!          --  This is an N_Iterated_Component_Association. If there is iterator
!          --  specification, then its preanalysis will make the index visible.
  
           elsif Present (Iterator_Specification (Comp)) then
!             Preanalyze (Iterator_Specification (Comp));
!             Id := Defining_Identifier (Iterator_Specification (Comp));
  
!          --  Otherwise, analyze discrete choices and make the index visible
  
           else
              Choice := First (Discrete_Choices (Comp));
*************** package body Sem_Aggr is
*** 3936,3962 ****
                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);
--- 3928,3951 ----
                and then Present (Key_Type)
                and then Base_Type (Entity (Choice)) = Base_Type (Key_Type)
              then
!                Typ := Entity (Choice);
  
              elsif Is_Object_Reference (Choice) then
!                End_Scope;
  
!                --  Recurse to expand association as Iterator_Specification
  
!                Set_Iterator_Specification (Comp,
!                  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));
!                Set_Defining_Identifier (Comp, Empty);
!                Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
!                return;
  
              elsif Present (Key_Type) then
                 Analyze_And_Resolve (Choice, Key_Type);
*************** package body Sem_Aggr is
*** 3966,4003 ****
                 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
!          --  visible in the expression for the component, and needed for its
!          --  analysis.
! 
!          Id := Make_Defining_Identifier (Sloc (Comp), Id_Name);
!          Ent := New_Internal_Entity (E_Loop,
!                   Current_Scope, Sloc (Comp), 'L');
!          Set_Etype  (Ent, Standard_Void_Type);
!          Set_Parent (Ent, Parent (Comp));
!          Push_Scope (Ent);
! 
!          --  Insert and decorate the loop variable in the current scope.
!          --  The expression has to be analyzed once the loop variable is
!          --  directly visible. Mark the variable as referenced to prevent
!          --  spurious warnings, given that subsequent uses of its name in the
!          --  expression will reference the internal (synonym) loop variable.
  
!          Enter_Name (Id);
  
!          pragma Assert (Present (Typ));
!          Set_Etype (Id, Typ);
  
!          Mutate_Ekind (Id, E_Variable);
!          Set_Is_Not_Self_Hidden (Id);
!          Set_Scope (Id, Ent);
!          Set_Referenced (Id);
  
           --  Check for violation of 4.3.5(27/5)
  
--- 3955,3971 ----
                 Typ := Etype (Choice);  --  assume unique for now
              end if;
  
!             Id := Defining_Identifier (Comp);
  
!             Enter_Name (Id);
  
!             --  Decorate the index variable
  
!             Set_Etype (Id, Typ);
!             Mutate_Ekind (Id, E_Variable);
!             Set_Is_Not_Self_Hidden (Id);
!             Set_Scope (Id, Scop);
!          end if;
  
           --  Check for violation of 4.3.5(27/5)
  
*************** package body Sem_Aggr is
*** 4006,4027 ****
             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;
  
--- 3974,3993 ----
             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 (Etype (Id))
           then
              Error_Msg_Node_2 := Key_Type;
              Error_Msg_NE
                ("loop parameter type & must be same as key type & " &
!                "(RM22 4.3.5(27))", Id, Etype (Id));
           end if;
  
!          --  Preanalyze the expression, to verify legality. We preanalyze it
!          --  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.
  
!          Preanalyze_And_Resolve (Expression (Comp), Elmt_Type);
           End_Scope;
        end Resolve_Iterated_Association;
  
*************** package body Sem_Aggr is
*** 4038,4052 ****
        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;
  
--- 4004,4021 ----
        if Present (First (Expressions (N)))
          and then Present (First (Component_Associations (N)))
        then
!          Error_Msg_N
!            (Msg        =>
!               "container aggregate cannot be both positional and named",
!             N          => N,
!             Error_Code => GNAT0006,
!             Spans      =>
!               (1 =>
!                  Secondary_Labeled_Span
!                    (First (Expressions (N)), "positional element "),
!                2 =>
!                  Secondary_Labeled_Span
!                    (First (Component_Associations (N)), "named element")));
           return;
        end if;
  
*************** package body Sem_Aggr is
*** 4080,4091 ****
                    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);
--- 4049,4058 ----
                    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);
*************** package body Sem_Aggr is
*** 4141,4152 ****
  
                    Analyze_And_Resolve (Expression (Comp), Elmt_Type);
  
!                elsif Nkind (Comp) in
!                  N_Iterated_Component_Association |
!                  N_Iterated_Element_Association
                 then
!                   Resolve_Iterated_Association
!                     (Comp, Key_Type, Elmt_Type);
                 end if;
  
                 Next (Comp);
--- 4108,4117 ----
  
                    Analyze_And_Resolve (Expression (Comp), Elmt_Type);
  
!                elsif Nkind (Comp) in N_Iterated_Component_Association
!                                    | N_Iterated_Element_Association
                 then
!                   Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
                 end if;
  
                 Next (Comp);
*************** package body Sem_Aggr is
*** 4201,4209 ****
                          Analyze_And_Resolve (Expression (Comp), Comp_Type);
                       end if;
  
!                   elsif Nkind (Comp) in
!                     N_Iterated_Component_Association |
!                     N_Iterated_Element_Association
                    then
                       Resolve_Iterated_Association
                         (Comp, Index_Type, Comp_Type);
--- 4166,4173 ----
                          Analyze_And_Resolve (Expression (Comp), Comp_Type);
                       end if;
  
!                   elsif Nkind (Comp) in N_Iterated_Component_Association
!                                       | N_Iterated_Element_Association
                    then
                       Resolve_Iterated_Association
                         (Comp, Index_Type, Comp_Type);
*************** package body Sem_Aggr is
*** 5441,5448 ****
  
              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
--- 5405,5417 ----
  
              Hi := New_Copy_Tree (Lo);
  
!             --  On multidimiensional arrays, avoid reporting the same error
!             --  several times.
! 
!             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
*************** package body Sem_Aggr is
*** 5456,5461 ****
--- 5425,5439 ----
           Append (Make_Range (Loc, New_Copy_Tree (Lo), Hi), Constr);
           Analyze_And_Resolve (Last (Constr), Etype (Index));
  
+          if Known_Bounds
+            and then
+              (Nkind (High_Bound (Last (Constr))) = N_Raise_Constraint_Error
+                 or else
+               Nkind (Low_Bound (Last (Constr))) = N_Raise_Constraint_Error)
+          then
+             Set_Raises_Constraint_Error (N);
+          end if;
+ 
           Next_Index (Index);
        end loop;
  
*************** package body Sem_Aggr is
*** 6353,6359 ****
                 & "has unknown discriminants", N, Typ);
           end if;
  
!          if Has_Unknown_Discriminants (Typ)
             and then Present (Underlying_Record_View (Typ))
           then
              Discrim := First_Discriminant (Underlying_Record_View (Typ));
--- 6331,6342 ----
                 & "has unknown discriminants", N, Typ);
           end if;
  
!          --  Mutably tagged class-wide types do not have discriminants;
!          --  however, all class-wide types are considered to have unknown
!          --  discriminants.
! 
!          if not Is_Mutably_Tagged_Type (Typ)
!            and then Has_Unknown_Discriminants (Typ)
             and then Present (Underlying_Record_View (Typ))
           then
              Discrim := First_Discriminant (Underlying_Record_View (Typ));
*************** package body Sem_Aggr is
*** 6425,6431 ****
        --  STEP 4: Set the Etype of the record aggregate
  
        if Has_Discriminants (Typ)
!         or else (Has_Unknown_Discriminants (Typ)
                    and then Present (Underlying_Record_View (Typ)))
        then
           Build_Constrained_Itype (N, Typ, New_Assoc_List);
--- 6408,6420 ----
        --  STEP 4: Set the Etype of the record aggregate
  
        if Has_Discriminants (Typ)
! 
!          --  Handle types with unknown discriminants, excluding mutably tagged
!          --  class-wide types because, although they do not have discriminants,
!          --  all class-wide types are considered to have unknown discriminants.
! 
!         or else (not Is_Mutably_Tagged_Type (Typ)
!                   and then Has_Unknown_Discriminants (Typ)
                    and then Present (Underlying_Record_View (Typ)))
        then
           Build_Constrained_Itype (N, Typ, New_Assoc_List);
*************** package body Sem_Aggr is
*** 6590,6602 ****
  
           --  Typ is not a derived tagged type
  
!          else
              Record_Def := Type_Definition (Parent (Base_Type (Typ)));
  
              if Null_Present (Record_Def) then
                 null;
  
!             elsif not Has_Unknown_Discriminants (Typ) then
                 Gather_Components
                   (Base_Type (Typ),
                    Component_List (Record_Def),
--- 6579,6597 ----
  
           --  Typ is not a derived tagged type
  
!          elsif Nkind (Parent (Base_Type (Typ))) = N_Full_Type_Declaration then
              Record_Def := Type_Definition (Parent (Base_Type (Typ)));
  
              if Null_Present (Record_Def) then
                 null;
  
!             --  Explicitly add here mutably class-wide types because they do
!             --  not have discriminants; however, all class-wide types are
!             --  considered to have unknown discriminants.
! 
!             elsif not Has_Unknown_Discriminants (Typ)
!               or else Is_Mutably_Tagged_Type (Typ)
!             then
                 Gather_Components
                   (Base_Type (Typ),
                    Component_List (Record_Def),
*************** package body Sem_Aggr is
*** 6782,6787 ****
--- 6777,6787 ----
                    Set_Has_Self_Reference (N);
  
                 elsif Needs_Simple_Initialization (Ctyp)
+ 
+                   --  Mutably tagged class-wide type components are initialized
+                   --  by the expander calling their IP subprogram.
+ 
+                  or else Is_Mutably_Tagged_CW_Equivalent_Type (Ctyp)
                   or else Has_Non_Null_Base_Init_Proc (Ctyp)
                   or else not Expander_Active
                 then
*************** package body Sem_Aggr is
*** 6986,6991 ****
--- 6986,7015 ----
        --  Check the dimensions of the components in the record aggregate
  
        Analyze_Dimension_Extension_Or_Record_Aggregate (N);
+ 
+       --  Do a pass for constructors which rely on things being fully expanded
+ 
+       declare
+          function Resolve_Make_Expr (N : Node_Id) return Traverse_Result;
+          --  Recurse in the aggregate and resolve references to 'Make
+ 
+          function Resolve_Make_Expr (N : Node_Id) return Traverse_Result is
+          begin
+             if Nkind (N) = N_Attribute_Reference
+               and then Attribute_Name (N) = Name_Make
+             then
+                Set_Analyzed (N, False);
+                Resolve (N);
+             end if;
+ 
+             return OK;
+          end Resolve_Make_Expr;
+ 
+          procedure Search_And_Resolve_Make_Expr is new
+            Traverse_Proc (Resolve_Make_Expr);
+       begin
+          Search_And_Resolve_Make_Expr (N);
+       end;
     end Resolve_Record_Aggregate;
  
     -----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_aggr.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_aggr.ads
*** gcc-15.2.0/gcc/ada/sem_aggr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_aggr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_attr.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_attr.adb
*** gcc-15.2.0/gcc/ada/sem_attr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_attr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 31,37 ****
  with Casing;         use Casing;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 31,36 ----
*************** with Sem_Type;       use Sem_Type;
*** 72,78 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 71,76 ----
*************** package body Sem_Attr is
*** 1448,1456 ****
                 null;
  
              --  Attribute 'Result is allowed to appear in aspect
!             --  Relaxed_Initialization (SPARK RM 6.10).
  
!             elsif Prag_Nam = Name_Relaxed_Initialization
                and then Aname = Name_Result
              then
                 null;
--- 1446,1455 ----
                 null;
  
              --  Attribute 'Result is allowed to appear in aspect
!             --  Relaxed_Initialization (SPARK RM 6.10) and Potentially_Invalid.
  
!             elsif (Prag_Nam = Name_Relaxed_Initialization
!                      or else Prag_Nam = Name_Potentially_Invalid)
                and then Aname = Name_Result
              then
                 null;
*************** package body Sem_Attr is
*** 1462,1467 ****
--- 1461,1473 ----
              then
                 null;
  
+             --  Attribute 'Old is allowed to appear in Program_Exit
+ 
+             elsif Prag_Nam = Name_Program_Exit
+                  and then Aname = Name_Old
+             then
+                null;
+ 
              elsif Prag_Nam = Name_Test_Case then
                 Check_Placement_In_Test_Case (Prag);
  
*************** package body Sem_Attr is
*** 1569,1575 ****
           --  scalar types, so that the prefix can be an object, a named value,
           --  or a type. If the prefix is an object, there is no argument.
  
!          if Is_Object_Image (P) then
              Check_E0;
              Set_Etype (N, Str_Typ);
              Check_Image_Type (Etype (P));
--- 1575,1581 ----
           --  scalar types, so that the prefix can be an object, a named value,
           --  or a type. If the prefix is an object, there is no argument.
  
!          if Is_Object_Prefix (P) then
              Check_E0;
              Set_Etype (N, Str_Typ);
              Check_Image_Type (Etype (P));
*************** package body Sem_Attr is
*** 2379,2385 ****
        begin
           Check_Type;
  
!          if not Is_Modular_Integer_Type (P_Type) then
              Error_Attr_P
                ("prefix of % attribute must be modular integer type");
           end if;
--- 2385,2391 ----
        begin
           Check_Type;
  
!          if not Has_Modular_Operations (P_Type) then
              Error_Attr_P
                ("prefix of % attribute must be modular integer type");
           end if;
*************** package body Sem_Attr is
*** 3317,3323 ****
           E1 := Empty;
           E2 := Empty;
  
!       else
           E1 := First (Exprs);
  
           --  Skip analysis for case of Restriction_Set, we do not expect
--- 3323,3336 ----
           E1 := Empty;
           E2 := Empty;
  
!       elsif Aname = Name_From_Address then
!          --  Number and types of expected arguments depends on prefix type,
!          --  so analyze arguments later.
! 
!          E1 := Empty;
!          E2 := Empty;
! 
!       elsif Aname /= Name_Make then
           E1 := First (Exprs);
  
           --  Skip analysis for case of Restriction_Set, we do not expect
*************** package body Sem_Attr is
*** 3949,3954 ****
--- 3962,3974 ----
           Error_Attr_P
             ("prefix of % attribute must be object of discriminated type");
  
+       -----------------
+       -- Constructor --
+       -----------------
+ 
+       when Attribute_Constructor =>
+          Error_Attr_P ("attribute% can only be used to define constructors");
+ 
        ---------------
        -- Copy_Sign --
        ---------------
*************** package body Sem_Attr is
*** 4179,4184 ****
--- 4199,4211 ----
  
           Set_Etype (N, Universal_Integer);
  
+       ----------------
+       -- Destructor --
+       ----------------
+ 
+       when Attribute_Destructor =>
+          Error_Attr_P ("attribute% can only be used to define destructors");
+ 
        ------------
        -- Digits --
        ------------
*************** package body Sem_Attr is
*** 4391,4405 ****
              Check_Type;
              Check_Not_Incomplete_Type;
  
-             --  Attribute 'Finalization_Size is not defined for class-wide
-             --  types because it is not possible to know statically whether
-             --  a definite type will have controlled components or not.
- 
-             if Is_Class_Wide_Type (Etype (P)) then
-                Error_Attr_P
-                  ("prefix of % attribute cannot denote a class-wide type");
-             end if;
- 
           --  The prefix denotes an illegal construct
  
           else
--- 4418,4423 ----
*************** package body Sem_Attr is
*** 4470,4475 ****
--- 4488,4571 ----
  
        --  Shares processing with Ceiling attribute
  
+       ------------------
+       -- From_Address --
+       ------------------
+ 
+       when Attribute_From_Address =>
+          Set_Etype (N, P_Base_Type);
+ 
+          if not Is_Type (Entity (P))
+            or else Ekind (P_Base_Type) /= E_General_Access_Type
+            or else not Is_Array_Type (Designated_Type (P_Base_Type))
+          then
+             Error_Attr
+               ("attribute % must apply to general access-to-array type", P);
+          end if;
+ 
+          declare
+             Array_Subtype : constant Entity_Id :=
+               Designated_Type (P_Base_Type);
+ 
+             Arg : Node_Id := First (Exprs);
+ 
+             procedure Analyze_Next_Arg
+               (Arg : in out Node_Id; Typ : Entity_Id);
+             --  Analyze an actual parameter
+ 
+             ----------------------
+             -- Analyze_Next_Arg --
+             ----------------------
+ 
+             procedure Analyze_Next_Arg
+               (Arg : in out Node_Id; Typ : Entity_Id)
+             is
+ 
+             begin
+                if No (Arg) then
+                   Error_Attr ("missing argument for % attribute", N);
+                else
+                   --  Base_Type call needed to deal with null ranges
+                   Analyze_And_Resolve (Arg, Base_Type (Typ));
+                   Next (Arg);
+                end if;
+             end Analyze_Next_Arg;
+          begin
+             --  First parameter is of type Address. If designated subtype is
+             --  unconstrained, then subsequent parameters are of the
+             --  index subtypes (usually 2 per dimension, for low and high,
+             --  but low is omitted in the fixed-lower-bound case).
+             --  No subsequent parameters if designated subtype is constrained.
+ 
+             Analyze_Next_Arg (Arg, RTE (RE_Address));
+             if not Is_Constrained (Array_Subtype) then
+                if not Is_Extended_Access_Type (P_Base_Type) then
+                   --  For the unconstrained case (where bounds need to be
+                   --  stored as part of the access value), the access type
+                   --  is required to be an extended access type.
+                   Error_Attr
+                     ("attribute % must apply to an extended access type"
+                      & " because designated subtype is unconstrained", P);
+                end if;
+ 
+                declare
+                   Index : Node_Id := First_Index (Array_Subtype);
+                begin
+                   for Dim in 1 .. Number_Dimensions (Array_Subtype) loop
+                      if not Is_Fixed_Lower_Bound_Index_Subtype (Etype (Index))
+                      then
+                         Analyze_Next_Arg (Arg, Etype (Index)); --  low bound
+                      end if;
+                      Analyze_Next_Arg (Arg, Etype (Index)); --  high bound
+                      Next_Index (Index);
+                   end loop;
+                end;
+             end if;
+             if Present (Arg) then
+                Error_Attr ("too many arguments for % attribute", N);
+             end if;
+          end;
+ 
        --------------
        -- From_Any --
        --------------
*************** package body Sem_Attr is
*** 5084,5090 ****
           --  early transformation also avoids the generation of a useless loop
           --  entry constant.
  
!          if Present (Encl_Prag) and then Is_Ignored (Encl_Prag) then
              Rewrite (N, Relocate_Node (P));
              Preanalyze_And_Resolve (N);
  
--- 5180,5186 ----
           --  early transformation also avoids the generation of a useless loop
           --  entry constant.
  
!          if Present (Encl_Prag) and then Is_Ignored_In_Codegen (Encl_Prag) then
              Rewrite (N, Relocate_Node (P));
              Preanalyze_And_Resolve (N);
  
*************** package body Sem_Attr is
*** 5164,5169 ****
--- 5260,5323 ----
           Check_Not_Incomplete_Type;
           Set_Etype (N, Universal_Integer);
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make => declare
+          Expr : Entity_Id;
+       begin
+          if not All_Extensions_Allowed then
+             Error_Msg_GNAT_Extension ("attribute %", Loc);
+             return;
+          end if;
+ 
+          Check_Type;
+          Set_Etype (N, Etype (P));
+ 
+          if Present (Exprs) then
+             Expr := First (Exprs);
+             while Present (Expr) loop
+                if Nkind (Expr) = N_Parameter_Association then
+                   Analyze (Explicit_Actual_Parameter (Expr));
+                else
+                   Analyze (Expr);
+                end if;
+ 
+                Next (Expr);
+             end loop;
+ 
+             if not Needs_Construction (Entity (P)) then
+                Error_Msg_NE ("no available constructor for&", N, Entity (P));
+             end if;
+ 
+          elsif not Needs_Construction (Entity (P))
+            or else not Has_Parameterless_Constructor (Entity (P))
+          then
+             Error_Msg_NE ("no parameterless constructor for&", N, Entity (P));
+ 
+             --  In case the parameterless constructor was explicitly removed, a
+             --  more specific error message is provided.
+ 
+             if Has_Parameterless_Constructor (Entity (P),
+                                               Allow_Removed => True)
+             then
+                declare
+                   function Find_Parameterless_Constructor
+                   is new Find_Matching_Constructor
+                            (Is_Parameterless_Constructor);
+ 
+                   Removed_Parameterless : constant Entity_Id :=
+                     Find_Parameterless_Constructor (Entity (P),
+                                                     Allow_Removed => True);
+                begin
+                   Error_Msg_NE ("//explicitly removed at#",
+                                 N, Removed_Parameterless);
+                end;
+             end if;
+          end if;
+       end;
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Sem_Attr is
*** 5656,5674 ****
        when Attribute_Partition_ID =>
           Check_E0;
  
!          if P_Type /= Any_Type then
!             if not Is_Library_Level_Entity (Entity (P)) then
!                Error_Attr_P
!                  ("prefix of % attribute must be library-level entity");
  
!             --  The defining entity of prefix should not be declared inside a
!             --  Pure unit. RM E.1(8). Is_Pure was set during declaration.
  
!             elsif Is_Entity_Name (P)
!               and then Is_Pure (Entity (P))
!             then
!                Error_Attr_P ("prefix of% attribute must not be declared pure");
!             end if;
           end if;
  
           Set_Etype (N, Universal_Integer);
--- 5810,5824 ----
        when Attribute_Partition_ID =>
           Check_E0;
  
!          if not Is_Library_Level_Entity (Entity (P)) then
!             Error_Attr_P
!               ("prefix of % attribute must be library-level entity");
  
!          --  The defining entity of prefix should not be declared inside a
!          --  Pure unit. RM E.1(8). Is_Pure was set during declaration.
  
!          elsif Is_Entity_Name (P) and then Is_Pure (Entity (P)) then
!             Error_Attr_P ("prefix of% attribute must not be declared pure");
           end if;
  
           Set_Etype (N, Universal_Integer);
*************** package body Sem_Attr is
*** 5731,5737 ****
           --  If not modular type, test for overflow check required
  
           else
!             if not Is_Modular_Integer_Type (P_Type)
                and then not Range_Checks_Suppressed (P_Base_Type)
              then
                 Enable_Range_Check (E1);
--- 5881,5887 ----
           --  If not modular type, test for overflow check required
  
           else
!             if not Has_Modular_Operations (P_Type)
                and then not Range_Checks_Suppressed (P_Base_Type)
              then
                 Enable_Range_Check (E1);
*************** package body Sem_Attr is
*** 6071,6121 ****
        -- Reduce --
        ------------
  
!       when Attribute_Reduce =>
!          Check_E2;
!          Error_Msg_Ada_2022_Feature ("Reduce attribute", Sloc (N));
  
-          declare
-             Stream : constant Node_Id := Prefix (N);
-             Typ    : Entity_Id;
           begin
!             if Nkind (Stream) /= N_Aggregate then
!                --  Prefix is a name, as for other attributes.
  
!                --  If the object is a function we asume that it is not
!                --  overloaded. AI12-242 does not suggest a name resolution
!                --  rule for that case, but we can suppose that the expected
!                --  type of the reduction is the expected type of the component
!                --  of the prefix.
  
!                Analyze_And_Resolve (Stream);
!                Typ := Etype (Stream);
  
!                --  Verify that prefix can be iterated upon.
  
!                if Is_Array_Type (Typ)
!                  or else Has_Aspect (Typ, Aspect_Default_Iterator)
!                  or else Has_Aspect (Typ, Aspect_Iterable)
!                then
!                   null;
                 else
!                   Error_Msg_NE
!                     ("cannot apply Reduce to object of type&", N, Typ);
                 end if;
  
!             elsif Present (Expressions (Stream))
!               or else No (Component_Associations (Stream))
!               or else Nkind (First (Component_Associations (Stream))) /=
!                 N_Iterated_Component_Association
              then
!                Error_Msg_N
!                  ("prefix of Reduce must be an iterated component", N);
              end if;
  
!             Analyze (E1);
!             Analyze (E2);
!             Set_Etype (N, Etype (E2));
!          end;
  
        ----------
        -- Read --
--- 6221,6372 ----
        -- Reduce --
        ------------
  
!       when Attribute_Reduce => Reduce : declare
!          function Is_Reducer_Subprogram (E : Entity_Id) return Boolean;
!          --  Return whether E is a reducer subprogram (RM 4.5.10(11-13))
! 
!          ---------------------------
!          -- Is_Reducer_Subprogram --
!          ---------------------------
! 
!          function Is_Reducer_Subprogram (E : Entity_Id) return Boolean is
!             F1, F2 : Entity_Id;
  
           begin
!             if not Can_Have_Formals (E) then
!                return False;
!             end if;
  
!             F1 := First_Formal (E);
!             if No (F1) then
!                return False;
!             end if;
  
!             F2 := Next_Formal (F1);
!             if No (F2) or else Present (Next_Formal (F2)) then
!                return False;
!             end if;
  
!             if Ekind (E) = E_Procedure then
!                return Ekind (F1) = E_In_Out_Parameter
!                  and then Ekind (F2) = E_In_Parameter;
!             else
!                return Etype (E) = Etype (F1);
!             end if;
!          end Is_Reducer_Subprogram;
  
!          --  Local variables
! 
!          I1,  I2  : Interp_Index;
!          It1, It2 : Interp;
! 
!       --  Start of processing for Reduce
! 
!       begin
!          Error_Msg_Ada_2022_Feature ("Reduce attribute", Sloc (N));
!          Check_E2;
! 
!          if Nkind (P) /= N_Aggregate then
!             --  Prefix is a name, as for other attributes
! 
!             --  If the object is a function, we assume that it is not
!             --  overloaded. AI12-242 does not suggest a name resolution
!             --  rule for that case, but we can suppose that the expected
!             --  type of the reduction is the expected type of the component
!             --  of the prefix.
! 
!             Analyze_And_Resolve (P);
!             P_Type := Etype (P);
! 
!             --  Verify that prefix can be iterated upon
! 
!             if Is_Array_Type (P_Type)
!               or else Has_Aspect (P_Type, Aspect_Default_Iterator)
!               or else Has_Aspect (P_Type, Aspect_Iterable)
!             then
!                null;
!             else
!                Error_Msg_NE
!                  ("cannot apply Reduce to object of type&", N, P_Type);
!             end if;
! 
!          elsif Present (Expressions (P))
!            or else No (Component_Associations (P))
!            or else Nkind (First (Component_Associations (P))) /=
!              N_Iterated_Component_Association
!          then
!             Error_Msg_N
!               ("prefix of Reduce must be an iterated component", N);
!          end if;
! 
!          Analyze (E1);
!          Analyze (E2);
! 
!          --  If either actual of the attribute is not overloaded, then it
!          --  determines the Accum_Subtype and, therefore, the Etype of N.
! 
!          if not Is_Overloaded (E2) then
!             Set_Etype (N, Etype (E2));
! 
!          elsif not Is_Overloaded (E1) then
!             if Nkind (E1) = N_Attribute_Reference then
!                if Attribute_Name (E1) in Name_Max | Name_Min then
!                   Set_Etype (N, Etype (E1));
                 else
!                   Error_Msg_N ("only Min and Max attributes are allowed " &
!                                "as reducers", E1);
                 end if;
  
!             elsif not Is_Entity_Name (E1)
!               or else not Is_Reducer_Subprogram (Entity (E1))
              then
!                Error_Msg_N ("reducer must be a subprogram, an operator, " &
!                             "or an attribute", E1);
! 
!                --  If the reducer has no entity, but the initial expression
!                --  does, then they have most likely been swapped.
! 
!                if Nkind (E2) = N_Attribute_Reference
!                  or else Is_Entity_Name (E2)
!                then
!                   Error_Msg_N ("\\possible swap of reducer and initial " &
!                                "value!", E1);
!                end if;
! 
!             else
!                Set_Etype (N, Etype (First_Formal (Entity (E1))));
              end if;
  
!          --  Otherwise compute the set of possible interpretations. Note that
!          --  we do not take into account the expression of the iterated element
!          --  association, if any, in the computation, which may result in too
!          --  large a set and, therefore, in a spurious ambiguity if the outer
!          --  context is not sufficient to disambiguate, but the probability of
!          --  this occuring in real code is very low.
! 
!          else
!             Set_Etype (N, Any_Type);
! 
!             Get_First_Interp (E2, I2, It2);
! 
!             while Present (It2.Nam) loop
!                Get_First_Interp (E1, I1, It1);
! 
!                while Present (It1.Nam) loop
!                   if Is_Reducer_Subprogram (It1.Nam)
!                     and then Base_Type (It2.Typ) =
!                       Base_Type (Etype (First_Formal (It1.Nam)))
!                   then
!                      Add_One_Interp (N, It2.Typ, It2.Typ);
!                   end if;
! 
!                   Get_Next_Interp (I1, It1);
!                end loop;
! 
!                Get_Next_Interp (I2, It2);
!             end loop;
!          end if;
!       end Reduce;
  
        ----------
        -- Read --
*************** package body Sem_Attr is
*** 7156,7161 ****
--- 7407,7433 ----
  
           Analyze_Access_Attribute;
  
+       -------------------------
+       -- Unsigned_Base_Range --
+       -------------------------
+ 
+       --  GNAT core extension. The prefix of 'Unsigned_Base_Range must be a
+       --  signed integer type. The static result is a boolean that indicates
+       --  whether the base range is unsigned.
+ 
+       when Attribute_Unsigned_Base_Range =>
+          Check_E0;
+          Check_Integer_Type;
+          Check_Not_Incomplete_Type;
+          Set_Etype (N, Standard_Boolean);
+          Set_Is_Static_Expression (N, True);
+ 
+          if not Core_Extensions_Allowed then
+             Error_Msg_GNAT_Extension
+               ("'Unsigned_'Base_'Range", Sloc (N),
+                Is_Core_Extension => True);
+          end if;
+ 
        ------------
        -- Update --
        ------------
*************** package body Sem_Attr is
*** 7733,7739 ****
        when Bad_Attribute =>
           Set_Analyzed (N);
           Set_Etype (N, Any_Type);
-          return;
     end Analyze_Attribute;
  
     --------------------
--- 8005,8010 ----
*************** package body Sem_Attr is
*** 8113,8119 ****
           --  subtype indication. This is syntactically a pain, but should
           --  not propagate to the entity for the corresponding index subtype.
           --  After checking that the subtype indication is legal, the range
!          --  of the subtype indication should be transfered to the entity.
           --  The attributes for the bounds should remain the simple retrievals
           --  that they are now.
  
--- 8384,8390 ----
           --  subtype indication. This is syntactically a pain, but should
           --  not propagate to the entity for the corresponding index subtype.
           --  After checking that the subtype indication is legal, the range
!          --  of the subtype indication should be transferred to the entity.
           --  The attributes for the bounds should remain the simple retrievals
           --  that they are now.
  
*************** package body Sem_Attr is
*** 8141,8153 ****
  
        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);
--- 8412,8417 ----
*************** package body Sem_Attr is
*** 8713,8718 ****
--- 8977,8989 ----
           Set_Etype (N, C_Type);
           return;
  
+       --  Handle 'Make constructor calls
+ 
+       elsif All_Extensions_Allowed
+         and then Id = Attribute_Make
+       then
+          P_Type := P_Entity;
+ 
        --  No other cases are foldable (they certainly aren't static, and at
        --  the moment we don't try to fold any cases other than the ones above).
  
*************** package body Sem_Attr is
*** 8724,8732 ****
        --  If either attribute or the prefix is Any_Type, then propagate
        --  Any_Type to the result and don't do anything else at all.
  
!       if P_Type = Any_Type
          or else (Present (E1) and then Etype (E1) = Any_Type)
!         or else (Present (E2) and then Etype (E2) = Any_Type)
        then
           Set_Etype (N, Any_Type);
           return;
--- 8995,9004 ----
        --  If either attribute or the prefix is Any_Type, then propagate
        --  Any_Type to the result and don't do anything else at all.
  
!       if Id /= Attribute_Make
!         and then (P_Type = Any_Type
          or else (Present (E1) and then Etype (E1) = Any_Type)
!         or else (Present (E2) and then Etype (E2) = Any_Type))
        then
           Set_Etype (N, Any_Type);
           return;
*************** package body Sem_Attr is
*** 8839,8845 ****
           Static := False;
           Set_Is_Static_Expression (N, False);
  
!       elsif Id /= Attribute_Max_Alignment_For_Allocation then
           if not Is_Constrained (P_Type)
             or else (Id /= Attribute_First and then
                      Id /= Attribute_Last  and then
--- 9111,9119 ----
           Static := False;
           Set_Is_Static_Expression (N, False);
  
!       elsif Id not in Attribute_Max_Alignment_For_Allocation
!                     | Attribute_Make
!       then
           if not Is_Constrained (P_Type)
             or else (Id /= Attribute_First and then
                      Id /= Attribute_Last  and then
*************** package body Sem_Attr is
*** 8915,8967 ****
        --  of the expressions to be scalar in order for the attribute to be
        --  considered to be static.
  
!       declare
!          E : Node_Id;
  
!       begin
!          E := E1;
  
!          while Present (E) loop
  
!             --  If expression is not static, then the attribute reference
!             --  result certainly cannot be static.
  
!             if not Is_Static_Expression (E) then
!                Static := False;
!                Set_Is_Static_Expression (N, False);
!             end if;
  
!             if Raises_Constraint_Error (E) then
!                Set_Raises_Constraint_Error (N);
!             end if;
  
!             --  If the result is not known at compile time, or is not of
!             --  a scalar type, then the result is definitely not static,
!             --  so we can quit now.
  
!             if not Compile_Time_Known_Value (E)
!               or else not Is_Scalar_Type (Etype (E))
!             then
!                Check_Expressions;
!                return;
  
!             --  If the expression raises a constraint error, then so does
!             --  the attribute reference. We keep going in this case because
!             --  we are still interested in whether the attribute reference
!             --  is static even if it is not static.
  
!             elsif Raises_Constraint_Error (E) then
!                Set_Raises_Constraint_Error (N);
!             end if;
  
!             Next (E);
!          end loop;
  
!          if Raises_Constraint_Error (Prefix (N)) then
!             Set_Is_Static_Expression (N, False);
!             return;
!          end if;
!       end;
  
        --  Deal with the case of a static attribute reference that raises
        --  constraint error. The Raises_Constraint_Error flag will already
--- 9189,9243 ----
        --  of the expressions to be scalar in order for the attribute to be
        --  considered to be static.
  
!       if Id /= Attribute_Make then
!          declare
!             E : Node_Id;
  
!          begin
!             E := E1;
  
!             while Present (E) loop
  
!                --  If expression is not static, then the attribute reference
!                --  result certainly cannot be static.
  
!                if not Is_Static_Expression (E) then
!                   Static := False;
!                   Set_Is_Static_Expression (N, False);
!                end if;
  
!                if Raises_Constraint_Error (E) then
!                   Set_Raises_Constraint_Error (N);
!                end if;
  
!                --  If the result is not known at compile time, or is not of
!                --  a scalar type, then the result is definitely not static,
!                --  so we can quit now.
  
!                if not Compile_Time_Known_Value (E)
!                  or else not Is_Scalar_Type (Etype (E))
!                then
!                   Check_Expressions;
!                   return;
  
!                --  If the expression raises a constraint error, then so does
!                --  the attribute reference. We keep going in this case because
!                --  we are still interested in whether the attribute reference
!                --  is static even if it is not static.
  
!                elsif Raises_Constraint_Error (E) then
!                   Set_Raises_Constraint_Error (N);
!                end if;
  
!                Next (E);
!             end loop;
  
!             if Raises_Constraint_Error (Prefix (N)) then
!                Set_Is_Static_Expression (N, False);
!                return;
!             end if;
!          end;
!       end if;
  
        --  Deal with the case of a static attribute reference that raises
        --  constraint error. The Raises_Constraint_Error flag will already
*************** package body Sem_Attr is
*** 9314,9319 ****
--- 9590,9609 ----
        when Attribute_First =>
           Set_Bounds;
  
+          --  In GNATprove mode we only fold array attributes when prefix is
+          --  static (because that's required by the Ada rules) or at least can
+          --  be evaluated without checks (because GNATprove would miss them).
+ 
+          if GNATprove_Mode
+             and then
+               not (Static
+                    or else (Is_Entity_Name (P) and then Is_Type (Entity (P)))
+                    or else Statically_Names_Object (P)
+                    or else Ekind (P_Type) = E_String_Literal_Subtype)
+          then
+             return;
+          end if;
+ 
           if Compile_Time_Known_Value (Lo_Bound) then
              if Is_Real_Type (P_Type) then
                 Fold_Ureal (N, Expr_Value_R (Lo_Bound), Static);
*************** package body Sem_Attr is
*** 9527,9532 ****
--- 9817,9836 ----
        when Attribute_Last =>
           Set_Bounds;
  
+          --  In GNATprove mode we only fold array attributes when prefix is
+          --  static (because that's required by the Ada rules) or at least can
+          --  be evaluated without checks (because GNATprove would miss them).
+ 
+          if GNATprove_Mode
+             and then
+               not (Static
+                    or else (Is_Entity_Name (P) and then Is_Type (Entity (P)))
+                    or else Statically_Names_Object (P)
+                    or else Ekind (P_Type) = E_String_Literal_Subtype)
+          then
+             return;
+          end if;
+ 
           if Compile_Time_Known_Value (Hi_Bound) then
              if Is_Real_Type (P_Type) then
                 Fold_Ureal (N, Expr_Value_R (Hi_Bound), Static);
*************** package body Sem_Attr is
*** 9610,9615 ****
--- 9914,9933 ----
  
           Set_Bounds;
  
+          --  In GNATprove mode we only fold array attributes when prefix is
+          --  static (because that's required by the Ada rules) or at least can
+          --  be evaluated without checks (because GNATprove would miss them).
+ 
+          if GNATprove_Mode
+             and then
+               not (Static
+                    or else (Is_Entity_Name (P) and then Is_Type (Entity (P)))
+                    or else Statically_Names_Object (P)
+                    or else Ekind (P_Type) = E_String_Literal_Subtype)
+          then
+             return;
+          end if;
+ 
           --  For two compile time values, we can compute length
  
           if Compile_Time_Known_Value (Lo_Bound)
*************** package body Sem_Attr is
*** 9779,9784 ****
--- 10097,10109 ----
           end if;
        end Machine_Size;
  
+       ----------
+       -- Make --
+       ----------
+ 
+       when Attribute_Make =>
+          Set_Etype (N, Etype (Prefix (N)));
+ 
        --------------
        -- Mantissa --
        --------------
*************** package body Sem_Attr is
*** 10081,10087 ****
  
           --  Modular integer case (wraps)
  
!          elsif Is_Modular_Integer_Type (P_Type) then
              Fold_Uint (N, (Expr_Value (E1) - 1) mod Modulus (P_Type), Static);
  
           --  Other scalar cases
--- 10406,10412 ----
  
           --  Modular integer case (wraps)
  
!          elsif Has_Modular_Operations (P_Type) then
              Fold_Uint (N, (Expr_Value (E1) - 1) mod Modulus (P_Type), Static);
  
           --  Other scalar cases
*************** package body Sem_Attr is
*** 10387,10396 ****
                          Fold_Uint (N, Expr_Value (Expression (S)), Static);
  
                       --  If no size is specified, then we simply use the object
!                      --  size in the VADS_Size case (e.g. Natural'Size is equal
!                      --  to Integer'Size, not one less).
  
!                      else
                          Fold_Uint (N, Esize (P_TypeA), Static);
                       end if;
                    end;
--- 10712,10721 ----
                          Fold_Uint (N, Expr_Value (Expression (S)), Static);
  
                       --  If no size is specified, then we simply use the object
!                      --  size (when known) in the VADS_Size case (for example,
!                      --  Natural'Size is equal to Integer'Size, not one less).
  
!                      elsif Known_Esize (P_TypeA) then
                          Fold_Uint (N, Esize (P_TypeA), Static);
                       end if;
                    end;
*************** package body Sem_Attr is
*** 10471,10477 ****
  
           --  Modular integer case (wraps)
  
!          elsif Is_Modular_Integer_Type (P_Type) then
              Fold_Uint (N, (Expr_Value (E1) + 1) mod Modulus (P_Type), Static);
  
           --  Other scalar cases
--- 10796,10802 ----
  
           --  Modular integer case (wraps)
  
!          elsif Has_Modular_Operations (P_Type) then
              Fold_Uint (N, (Expr_Value (E1) + 1) mod Modulus (P_Type), Static);
  
           --  Other scalar cases
*************** package body Sem_Attr is
*** 10591,10596 ****
--- 10916,10941 ----
           Set_Is_Static_Expression (N, True);
        end Unconstrained_Array;
  
+       -------------------------
+       -- Unsigned_Base_Range --
+       -------------------------
+ 
+       when Attribute_Unsigned_Base_Range => Unsigned_Base_Range : declare
+       begin
+          Rewrite (N, New_Occurrence_Of (
+            Boolean_Literals (
+              Is_Integer_Type (P_Type)
+                and then
+                  Has_Unsigned_Base_Range_Aspect (P_Base_Type)), Loc));
+ 
+          --  Analyze and resolve as boolean, note that this attribute is
+          --  a static attribute in GNAT.
+ 
+          Analyze_And_Resolve (N, Standard_Boolean);
+          Static := True;
+          Set_Is_Static_Expression (N, True);
+       end Unsigned_Base_Range;
+ 
        --  Attribute Update is never static
  
        when Attribute_Update =>
*************** package body Sem_Attr is
*** 10992,10998 ****
  
        --  The following attributes denote functions that cannot be folded
  
!       when Attribute_From_Any
           | Attribute_To_Any
           | Attribute_TypeCode
        =>
--- 11337,11344 ----
  
        --  The following attributes denote functions that cannot be folded
  
!       when Attribute_From_Address
!          | Attribute_From_Any
           | Attribute_To_Any
           | Attribute_TypeCode
        =>
*************** package body Sem_Attr is
*** 11018,11027 ****
--- 11364,11375 ----
           | Attribute_Class
           | Attribute_Code_Address
           | Attribute_Compiler_Version
+          | Attribute_Constructor
           | Attribute_Count
           | Attribute_Default_Bit_Order
           | Attribute_Default_Scalar_Storage_Order
           | Attribute_Deref
+          | Attribute_Destructor
           | Attribute_Elaborated
           | Attribute_Elab_Body
           | Attribute_Elab_Spec
*************** package body Sem_Attr is
*** 11096,11102 ****
        --  If this is still an attribute reference, then it has not been folded
        --  and that means that its expressions are in a non-static context.
  
!       elsif Nkind (N) = N_Attribute_Reference then
           Check_Expressions;
  
        --  Note: the else case not covered here are odd cases where the
--- 11444,11452 ----
        --  If this is still an attribute reference, then it has not been folded
        --  and that means that its expressions are in a non-static context.
  
!       elsif Nkind (N) = N_Attribute_Reference
!         and then Attribute_Name (N) /= Name_Make
!       then
           Check_Expressions;
  
        --  Note: the else case not covered here are odd cases where the
*************** package body Sem_Attr is
*** 11620,11625 ****
--- 11970,11976 ----
                 end if;
  
                 Resolve (Prefix (P));
+                Resolve_Implicit_Dereference (Prefix (P));
  
                 if not Is_Overloaded (P) then
                    Generate_Reference (Entity (Selector_Name (P)), P);
*************** package body Sem_Attr is
*** 11770,11811 ****
  
                              or else Nkind (Associated_Node_For_Itype (Btyp)) =
                                                          N_Object_Declaration)
- 
-                  --  Verify that static checking is OK (namely that we aren't
-                  --  in a specific context requiring dynamic checks on
-                  --  expicitly aliased parameters), and then check the level.
- 
-                  --  Otherwise a check will be generated later when the return
-                  --  statement gets expanded.
- 
-                  and then not Is_Special_Aliased_Formal_Access (N)
                   and then
                     Static_Accessibility_Level (N, Zero_On_Dynamic_Level) >
                       Deepest_Type_Access_Level (Btyp)
                 then
!                   --  In an instance, this is a runtime check, but one we know
!                   --  will fail, so generate an appropriate warning. As usual,
!                   --  this kind of warning is an error in SPARK mode.
! 
!                   if In_Instance_Body then
!                      Error_Msg_Warn :=
!                        SPARK_Mode /= On
!                          and then
!                            not No_Dynamic_Accessibility_Checks_Enabled (P);
! 
!                      Error_Msg_F
!                        ("non-local pointer cannot point to local object<<", P);
!                      Error_Msg_F ("\Program_Error [<<", P);
! 
!                      Rewrite (N,
!                        Make_Raise_Program_Error (Loc,
!                          Reason => PE_Accessibility_Check_Failed));
!                      Set_Etype (N, Typ);
! 
!                   else
!                      Error_Msg_F
!                        ("non-local pointer cannot point to local object", P);
!                   end if;
                 end if;
  
                 if Attr_Id /= Attribute_Unrestricted_Access
--- 12121,12131 ----
  
                              or else Nkind (Associated_Node_For_Itype (Btyp)) =
                                                          N_Object_Declaration)
                   and then
                     Static_Accessibility_Level (N, Zero_On_Dynamic_Level) >
                       Deepest_Type_Access_Level (Btyp)
                 then
!                   Accessibility_Message (N, Typ);
                 end if;
  
                 if Attr_Id /= Attribute_Unrestricted_Access
*************** package body Sem_Attr is
*** 11973,11994 ****
                                     and then Ekind (Btyp)
                                                = E_Anonymous_Access_Type)
  
-                     --  Call Accessibility_Level directly to avoid returning
-                     --  zero on cases where the prefix is an explicitly aliased
-                     --  parameter in a return statement, instead of using the
-                     --  normal Static_Accessibility_Level function.
- 
-                     --  Shouldn't this be handled somehow in
-                     --  Static_Accessibility_Level ???
- 
-                     and then Nkind (Accessibility_Level (P, Dynamic_Level))
-                                = N_Integer_Literal
                      and then
!                       Intval (Accessibility_Level (P, Dynamic_Level))
!                         > Deepest_Type_Access_Level (Btyp)
                    then
                       Accessibility_Message (N, Typ);
-                      return;
                    end if;
                 end;
              end if;
--- 12293,12303 ----
                                     and then Ekind (Btyp)
                                                = E_Anonymous_Access_Type)
  
                      and then
!                       Static_Accessibility_Level (N, Zero_On_Dynamic_Level) >
!                         Deepest_Type_Access_Level (Btyp)
                    then
                       Accessibility_Message (N, Typ);
                    end if;
                 end;
              end if;
*************** package body Sem_Attr is
*** 12014,12020 ****
                   and then Attr_Id /= Attribute_Unrestricted_Access
                 then
                    Accessibility_Message (N, Typ);
-                   return;
  
                 --  AI05-0225: If the context is not an access to protected
                 --  function, the prefix must be a variable, given that it may
--- 12323,12328 ----
*************** package body Sem_Attr is
*** 12164,12172 ****
              --  array type since a value conversion is like an aggregate with
              --  respect to determining accessibility level (RM 3.10.2).
  
!             if not Prefix_With_Safe_Accessibility_Level (N, Typ) then
                 Accessibility_Message (N, Typ);
-                return;
              end if;
  
              --  Mark that address of entity is taken in case of
--- 12472,12481 ----
              --  array type since a value conversion is like an aggregate with
              --  respect to determining accessibility level (RM 3.10.2).
  
!             if Nkind (N) /= N_Raise_Program_Error
!               and then not Prefix_With_Safe_Accessibility_Level (N, Typ)
!             then
                 Accessibility_Message (N, Typ);
              end if;
  
              --  Mark that address of entity is taken in case of
*************** package body Sem_Attr is
*** 12349,12418 ****
                 Set_Address_Taken (Entity (P));
              end if;
  
-             if Nkind (P) = N_Slice then
- 
-                --  Arr (X .. Y)'address is identical to Arr (X)'address,
-                --  even if the array is packed and the slice itself is not
-                --  addressable. Transform the prefix into an indexed component.
- 
-                --  Note that the transformation is safe only if we know that
-                --  the slice is non-null. That is because a null slice can have
-                --  an out of bounds index value.
- 
-                --  Right now, gigi blows up if given 'Address on a slice as a
-                --  result of some incorrect freeze nodes generated by the front
-                --  end, and this covers up that bug in one case, but the bug is
-                --  likely still there in the cases not handled by this code ???
- 
-                --  It's not clear what 'Address *should* return for a null
-                --  slice with out of bounds indexes, this might be worth an ARG
-                --  discussion ???
- 
-                --  One approach would be to do a length check unconditionally,
-                --  and then do the transformation below unconditionally, but
-                --  analyze with checks off, avoiding the problem of the out of
-                --  bounds index. This approach would interpret the address of
-                --  an out of bounds null slice as being the address where the
-                --  array element would be if there was one, which is probably
-                --  as reasonable an interpretation as any ???
- 
-                declare
-                   Loc : constant Source_Ptr := Sloc (P);
-                   D   : constant Node_Id := Discrete_Range (P);
-                   Lo  : Node_Id;
- 
-                begin
-                   if Is_Entity_Name (D)
-                     and then
-                       Not_Null_Range
-                         (Type_Low_Bound (Entity (D)),
-                          Type_High_Bound (Entity (D)))
-                   then
-                      Lo :=
-                        Make_Attribute_Reference (Loc,
-                           Prefix => (New_Occurrence_Of (Entity (D), Loc)),
-                           Attribute_Name => Name_First);
- 
-                   elsif Nkind (D) = N_Range
-                     and then Not_Null_Range (Low_Bound (D), High_Bound (D))
-                   then
-                      Lo := Low_Bound (D);
- 
-                   else
-                      Lo := Empty;
-                   end if;
- 
-                   if Present (Lo) then
-                      Rewrite (P,
-                         Make_Indexed_Component (Loc,
-                            Prefix => Relocate_Node (Prefix (P)),
-                            Expressions => New_List (Lo)));
- 
-                      Analyze_And_Resolve (P);
-                   end if;
-                end;
-             end if;
- 
           ------------------
           -- Body_Version --
           ------------------
--- 12658,12663 ----
*************** package body Sem_Attr is
*** 12551,12566 ****
           begin
              if not Is_Entity_Name (P) or else not Is_Type (Entity (P)) then
                 Resolve (P);
- 
-                --  If the prefix is a function call returning on the secondary
-                --  stack, we must make sure to mark/release the stack.
- 
-                if Nkind (P) = N_Function_Call
-                  and then Nkind (Parent (N)) = N_Loop_Parameter_Specification
-                  and then Requires_Transient_Scope (Etype (P))
-                then
-                   Set_Uses_Sec_Stack (Scope (Current_Scope));
-                end if;
              end if;
  
              Dims := Expressions (N);
--- 12796,12801 ----
*************** package body Sem_Attr is
*** 12631,12758 ****
  
           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
                       return False;
                    else
                       F2 := Next_Formal (F1);
!                      if No (F2)
!                        or else Present (Next_Formal (F2))
!                      then
                          return False;
  
!                      elsif Ekind (Op) = E_Procedure then
                          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;
  
--- 12866,13475 ----
  
           when Attribute_Reduce =>
              declare
!                Reducer_N       : constant Node_Id := First (Expressions (N));
!                Init_Value_Expr : constant Node_Id := Next (Reducer_N);
  
!                Accum_Typ : Entity_Id := Typ;
  
!                function Get_Value_Subtype return Entity_Id;
!                --  If non-ambiguous, this function sets the reducer's entity
!                --  and returns the value subtype of the expression inside the
!                --  array aggregate.
  
!                function Is_Reducer_Subprogram (E : Entity_Id) return Boolean;
!                --  Return whether E is a reducer subprogram (RM 4.5.10(11-13))
  
!                function Make_Array_Type
!                  (Index, Value : Entity_Id) return Entity_Id;
!                --  This function returns a simple array type to resolve the
!                --  array aggregate.
! 
!                -----------------------
!                -- Get_Value_Subtype --
!                -----------------------
! 
!                function Get_Value_Subtype return Entity_Id is
!                   procedure Error_Mixed_Function_Procedure_Reducers;
!                   --  This procedure emits an error message with all possible
!                   --  interpretations of the reducer subprogram when there is
!                   --  a mix of functions and procedures. Note that, this is
!                   --  only a potential ambiguity but we cannot resolve it in a
!                   --  definitive way as there is no construct that accepts both
!                   --  functions and procedures together.
! 
!                   function Reducer_Call_Statement_Kind return Entity_Kind;
!                   --  This function returns the kind of a call statement able
!                   --  to contain a reducer call. If all the candidate
!                   --  interpretation subprograms that can be reducers agree on
!                   --  the same subprogram type, meaning that they are all
!                   --  procedures or all function/operators, then this function
!                   --  returns either E_Procedure or E_Function respectively.
! 
!                   ---------------------------------------------
!                   -- Error_Mixed_Function_Procedure_Reducers --
!                   ---------------------------------------------
! 
!                   procedure Error_Mixed_Function_Procedure_Reducers is
!                      First_Time : Boolean := True;
!                      I          : Interp_Index;
!                      It         : Interp;
! 
!                   begin
!                      Get_First_Interp (Reducer_N, I, It);
!                      while Present (It.Nam) loop
!                         if Is_Reducer_Subprogram (It.Nam) then
!                            --  It may be the case that no interpretation
!                            --  matches the proper reducer profile, in this case
!                            --  we avoid emitting the error here.
! 
!                            if First_Time then
!                               Error_Msg_N
!                                 ("potential ambiguous reducer subprogram " &
!                                  "(cannot resolve&)",
!                                  Reducer_N);
!                               First_Time := False;
!                            end if;
! 
!                            if Ekind (It.Nam) = E_Function then
!                               Error_Msg_Sloc := Sloc (It.Nam);
!                               Error_Msg_N
!                                 ("\\possible function interpretation#!",
!                                  Reducer_N);
!                            else
!                               Error_Msg_Sloc := Sloc (It.Nam);
!                               Error_Msg_N
!                                 ("\\possible procedure interpretation#!",
!                                  Reducer_N);
!                            end if;
!                         end if;
!                         Get_Next_Interp (I, It);
!                      end loop;
! 
!                      if First_Time then
!                         Error_Msg_N ("no suitable reducer subprogram found",
!                                      Reducer_N);
!                      end if;
!                   end Error_Mixed_Function_Procedure_Reducers;
! 
!                   ---------------------------------
!                   -- Reducer_Call_Statement_Kind --
!                   ---------------------------------
! 
!                   function Reducer_Call_Statement_Kind return Entity_Kind is
!                      Kind : Entity_Kind := E_Void;
!                      I    : Interp_Index;
!                      It   : Interp;
!                   begin
!                      if not Is_Overloaded (Reducer_N) then
!                         return Ekind (Entity (Reducer_N));
!                      end if;
! 
!                      Get_First_Interp (Reducer_N, I, It);
!                      while Present (It.Nam) loop
!                         if Is_Reducer_Subprogram (It.Nam) then
!                            case Kind is
!                               --  First matching interpretation sets the kind
!                               when E_Void =>
!                                  if Ekind (It.Nam)
!                                    not in E_Procedure | E_Function | E_Operator
!                                  then
!                                     return E_Void;
!                                  end if;
!                                  Kind := Ekind (It.Nam);
! 
!                               --  Subsequent matching interpretations must
!                               --  agree on the same kind.
!                               when E_Procedure =>
!                                  if Ekind (It.Nam) /= E_Procedure then
!                                     return E_Void;
!                                  end if;
! 
!                               --  Functions and Operators match the same call
!                               --  statement.
!                               when E_Function | E_Operator =>
!                                  if Ekind (It.Nam)
!                                    not in E_Function | E_Operator
!                                  then
!                                     return E_Void;
!                                  end if;
! 
!                               when others =>
!                                  return E_Void;
!                            end case;
!                         end if;
!                         Get_Next_Interp (I, It);
!                      end loop;
!                      return Kind;
!                   end Reducer_Call_Statement_Kind;
! 
!                   --  Local variables
! 
!                   Copy_Reducer_N : constant Node_Id :=
!                                      Copy_Separate_Tree (Reducer_N);
! 
!                   Copy_Aggr_Expr : Node_Id;
!                   Loop_Var       : Entity_Id;
!                   Reducer_Call   : Node_Id;
! 
!                --  Start of processing for Get_Value_Subtype
! 
!                begin
!                   --  In case the reducer is not overloaded, check directly
!                   --  its second formal for the value subtype.
! 
!                   if not Is_Overloaded (Reducer_N) then
!                      if Is_Reducer_Subprogram (Entity (Reducer_N)) then
!                         return Etype (Next_Formal
!                                        (First_Formal (Entity (Reducer_N))));
! 
!                      --  Return any type to signal the caller that no proper
!                      --  reducer subprogram was found.
! 
!                      else
!                         return Any_Type;
!                      end if;
!                   end if;
! 
!                   --  RM 4.5.10(11/5): the reducer subprogram is required to be
!                   --  subtype conformant with one of the following profiles:
! 
!                   --  function Reducer
!                   --    (Accum : Accum_Subtype;
!                   --     Value : Value_Subtype) return Accum_Subtype;
! 
!                   --  Or
! 
!                   --  procedure Reducer
!                   --    (Accum : in out Accum_Subtype;
!                   --     Value : in Value_Subtype);
! 
!                   --  The Value_Subtype is the type of the expression of the
!                   --  array aggregate, or its equivalent expansion in case of P
!                   --  being an iterable container. Thus, given the expression N
!                   --  as:
! 
!                   --  [for I in|of It => Expr (I)]'Reduce (Reducer, Init);
! 
!                   --  To find whether there are no suitable interpretations, or
!                   --  too many, for the combination of reducer and expression
!                   --  we resolve the following call:
! 
!                   --    Reducer (Init_Var, Expr (I))
! 
!                   --  Where the context is augmented with the iteration
!                   --  variable I of the right type, and Init_Var of type
!                   --  Accum_Typ. If the Reducer has both procedure and
!                   --  function interpretations with the proper reducer profile
!                   --  an ambiguity error is emitted. Note that, this could be a
!                   --  false positive as the two may coexist without ambiguity
!                   --  but a more complex resolution is needed for that.
! 
!                   --  If the call above resolves correctly, we have a single,
!                   --  non-ambiguous, reduction expression. Note that, we still
!                   --  need to check whether Reducer has a subtype conformant
!                   --  profile, eg. the resolved reducer may have a different
!                   --  number of formals with default expressions.
! 
!                   declare
!                      Init_Var : constant Entity_Id :=
!                                   Make_Temporary (Loc, 'B');
! 
!                      Aggr_Expr  : Node_Id;
!                      Dummy_Loop : Node_Id;
!                      Init_Nam   : Node_Id;
!                      Iter_Spec  : Node_Id;
! 
!                   begin
!                      Set_Etype (Init_Var, Accum_Typ);
!                      Mutate_Ekind (Init_Var, E_Variable);
! 
!                      Init_Nam := Make_Identifier (Loc, Chars (Init_Var));
!                      Set_Entity (Init_Nam, Init_Var);
! 
!                      --  We start by preanalyzing the following loop to obtain
!                      --  the type of the iteration variable Loop_Var:
! 
!                      --    for I in|of It loop
!                      --      null;
!                      --    end loop;
! 
!                      if Nkind (P) = N_Aggregate then
!                         declare
!                            Stream, Stream_It : Node_Id;
!                         begin
!                            Stream := First (Component_Associations (P));
!                            Stream_It := Iterator_Specification (Stream);
!                            Aggr_Expr := Expression (Stream);
! 
!                            --  Case [for I of It => Aggr_Expr]
! 
!                            if Nkind (Stream) = N_Iterated_Component_Association
!                              and then Present (Stream_It)
!                              and then Of_Present (Stream_It)
!                            then
!                               Iter_Spec :=
!                                 Make_Iteration_Scheme (Loc,
!                                   Iterator_Specification =>
!                                     Relocate_Node (Stream_It));
!                               Loop_Var :=
!                                 Defining_Identifier
!                                   (Iterator_Specification (Iter_Spec));
! 
!                            --  Case [for I in Range => Aggr_Expr]
! 
!                            else
!                               Iter_Spec :=
!                                 Make_Iteration_Scheme (Loc,
!                                   Loop_Parameter_Specification =>
!                                     Make_Loop_Parameter_Specification  (Loc,
!                                       Defining_Identifier =>
!                                         Defining_Identifier
!                                           (Copy_Separate_Tree (Stream)),
!                                       Discrete_Subtype_Definition =>
!                                         Relocate_Node (First (Discrete_Choices
!                                                                (Stream)))));
!                               Loop_Var :=
!                                 Defining_Identifier
!                                   (Loop_Parameter_Specification (Iter_Spec));
!                            end if;
!                         end;
! 
!                      --  Case of prefix name
! 
!                      else
!                         Loop_Var := Make_Temporary (Loc, 'I');
!                         Aggr_Expr := Make_Identifier (Loc, Chars (Loop_Var));
!                         Iter_Spec := Make_Iteration_Scheme (Loc,
!                           Iterator_Specification =>
!                             Make_Iterator_Specification (Loc,
!                               Defining_Identifier => Loop_Var,
!                               Of_Present          => True,
!                               Name                => P));
!                      end if;
! 
!                      Dummy_Loop := Make_Loop_Statement (Loc,
!                                      Iteration_Scheme => Iter_Spec);
!                      Preanalyze (Dummy_Loop);
! 
!                      --  The preanalysis of the loop sets the type of the
!                      --  iteration variable. It may happen that another loop
!                      --  variable is created in the preanalysis, in case the
!                      --  right one is found at its next entity.
! 
!                      if Etype (Loop_Var) = Any_Type then
!                         Loop_Var := Next_Entity (Loop_Var);
!                      end if;
!                      pragma Assert (Present (Etype (Loop_Var)));
!                      pragma Assert (Etype (Loop_Var) /= Any_Type);
! 
!                      Copy_Aggr_Expr := Copy_Separate_Tree (Aggr_Expr);
! 
!                      case Reducer_Call_Statement_Kind is
!                         when E_Procedure =>
!                            Reducer_Call :=
!                              Make_Procedure_Call_Statement (Sloc (Reducer_N),
!                                Name => Copy_Reducer_N,
!                                Parameter_Associations =>
!                                  New_List (Init_Nam, Copy_Aggr_Expr));
! 
!                         when E_Function | E_Operator =>
!                            Reducer_Call :=
!                              Make_Function_Call (Sloc (Reducer_N),
!                                Name => Copy_Reducer_N,
!                                Parameter_Associations =>
!                                  New_List (Init_Nam, Copy_Aggr_Expr));
!                            Set_Etype (Reducer_Call, Accum_Typ);
! 
!                         when others =>
!                            Error_Mixed_Function_Procedure_Reducers;
!                            return Empty;
!                      end case;
!                   end;
! 
!                   --  To properly resolve Reducer_Call, we need to restore the
!                   --  visibility of the iteration variable because the analysis
!                   --  of the dummy loop above hides it on exit.
! 
!                   declare
!                      Prev : constant Entity_Id := Current_Entity (Loop_Var);
! 
!                   begin
!                      Set_Current_Entity (Loop_Var);
!                      Set_Is_Immediately_Visible (Loop_Var);
!                      Set_Is_Not_Self_Hidden (Loop_Var);
! 
!                      Push_Scope (Scope (Loop_Var));
!                      Preanalyze_And_Resolve (Reducer_Call);
!                      Pop_Scope;
! 
!                      Set_Is_Immediately_Visible (Loop_Var, False);
!                      Set_Name_Entity_Id (Chars (Loop_Var), Prev);
!                   end;
! 
!                   --  In case resolution failed, the error message is too
!                   --  generic and can be improved with additional context.
! 
!                   if Error_Posted (Reducer_Call) then
!                      Error_Msg_N ("\\no suitable reducer subprogram found",
!                                   Reducer_Call);
! 
!                   --  Resolution succeeded so far
! 
!                   elsif not Is_Overloaded (Reducer_Call) then
!                      pragma Assert (Present (Entity (Copy_Reducer_N)));
!                      pragma Assert (Present (Etype (Copy_Aggr_Expr)));
! 
!                      --  Set the correct reducer entity and then return the
!                      --  value subtype.
! 
!                      Set_Entity (Reducer_N, Entity (Copy_Reducer_N));
!                      return Etype (Copy_Aggr_Expr);
!                   end if;
! 
!                   return Empty;
!                end Get_Value_Subtype;
! 
!                ---------------------------
!                -- Is_Reducer_Subprogram --
!                ---------------------------
! 
!                function Is_Reducer_Subprogram (E : Entity_Id) return Boolean is
                    F1, F2 : Entity_Id;
+ 
                 begin
!                   if not Can_Have_Formals (E) then
                       return False;
+                   end if;
+ 
+                   F1 := First_Formal (E);
+                   if No (F1)
+                     or else not Covers (Accum_Typ, Etype (F1))
+                   then
+                      return False;
+ 
                    else
                       F2 := Next_Formal (F1);
!                      if No (F2) or else Present (Next_Formal (F2)) then
                          return False;
  
!                      elsif Ekind (E) = E_Procedure then
                          return Ekind (F1) = E_In_Out_Parameter
!                           and then Ekind (F2) = E_In_Parameter;
  
!                      elsif Covers (Accum_Typ, Etype (E)) then
                          return True;
  
!                      elsif Ekind (E) = E_Operator
!                        and then Scope (E) = Standard_Standard
                       then
!                         --  Nonassociative ops like division are unlikely to
!                         --  come up in practice, but they are legal.
  
!                         case Any_Operator_Name'(Chars (E)) is
!                            when Name_Op_Add
!                               | Name_Op_Subtract
!                               | Name_Op_Multiply
!                               | Name_Op_Divide
!                               | Name_Op_Expon
!                            =>
!                               return Is_Numeric_Type (Accum_Typ);
  
!                            when Name_Op_Mod | Name_Op_Rem =>
!                               return Is_Numeric_Type (Accum_Typ)
!                                 and then Is_Discrete_Type (Accum_Typ);
  
!                            when Name_Op_And | Name_Op_Or | Name_Op_Xor =>
!                               --  No Boolean array operators in Standard
!                               return Is_Boolean_Type (Accum_Typ)
!                                 or else Has_Modular_Operations (Accum_Typ);
  
!                            when Name_Op_Concat =>
!                               return Is_Array_Type (Accum_Typ)
!                                 and then Number_Dimensions (Accum_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 (Accum_Typ);
! 
!                            when Name_Op_Abs | Name_Op_Not =>
!                               --  unary ops were already handled
! 
!                               raise Program_Error;
!                         end case;
  
                       else
                          return False;
                       end if;
                    end if;
!                end Is_Reducer_Subprogram;
! 
!                ---------------------
!                -- Make_Array_Type --
!                ---------------------
! 
!                function Make_Array_Type
!                  (Index, Value : Entity_Id) return Entity_Id
!                is
!                   Array_Type : constant Entity_Id := Make_Temporary (Loc, 'A');
!                   Range_N    : constant Node_Id :=
!                     Make_Range (Loc,
!                       Low_Bound  => Type_Low_Bound (Index),
!                       High_Bound => Type_High_Bound (Index));
!                begin
!                   Set_In_List (Range_N);
!                   Set_Etype (Range_N, Index);
! 
!                   Set_Etype (Array_Type, Array_Type);
!                   Set_Scope (Array_Type, Find_Enclosing_Scope (N));
!                   Mutate_Ekind (Array_Type, E_Array_Type);
!                   Set_Component_Type (Array_Type, Value);
!                   Set_First_Index (Array_Type, Range_N);
! 
!                   return Array_Type;
!                end Make_Array_Type;
! 
!                --  Local variables
! 
!                Reducer_E : Entity_Id;
!                Value_Typ : Entity_Id;
! 
!             --  Start of processing for Reduce
  
              begin
!                if Error_Posted (N) then
!                   return;
!                end if;
  
!                --  If no error has been posted and the accumulator type is
!                --  constrained, then the resolution of the reducer can start.
  
!                if Nkind (Reducer_N) = N_Attribute_Reference then
!                   if Attribute_Name (Reducer_N) in Name_Max | Name_Min then
!                      Value_Typ := Etype (Reducer_N);
!                      Reducer_E := Reducer_N;
!                   else
!                      Error_Msg_N ("only Min and Max attributes are allowed " &
!                                   "as reducers", Reducer_N);
!                      return;
!                   end if;
  
!                elsif not Is_Entity_Name (Reducer_N) then
!                   Error_Msg_N ("reducer must be a subprogram, an operator, " &
!                                "or an attribute", Reducer_N);
! 
!                   --  If the reducer has no entity, but the initial expression
!                   --  does, then they have most likely been swapped.
! 
!                   if Nkind (Init_Value_Expr) = N_Attribute_Reference
!                     or else Is_Entity_Name (Init_Value_Expr)
!                   then
!                      Error_Msg_N ("\\possible swap of reducer and initial " &
!                                   "value!", Reducer_N);
!                   end if;
!                   return;
! 
!                else
!                   Value_Typ := Get_Value_Subtype;
!                   Reducer_E := Entity (Reducer_N);
! 
!                   --  Stop in case of no suitable interpretation or ambiguous
!                   --  expression, an error has already been posted.
! 
!                   if No (Value_Typ) then
!                      return;
! 
!                   elsif not Is_Reducer_Subprogram (Reducer_E) then
!                      Error_Msg_N ("no suitable reducer subprogram found",
!                                   Reducer_N);
!                      return;
!                   end if;
                 end if;
  
!                --  After resolving the reducer, determine Accum_Typ: if the
!                --  reducer is an attribute (Min or Max), then its prefix is
!                --  the accumulator type.
! 
!                if Nkind (Reducer_E) = N_Attribute_Reference then
!                   Accum_Typ := Entity (Prefix (Reducer_E));
! 
!                --  If the reducer is an operator from Standard, then the type
!                --  of its first operand would be Any_Type.
! 
!                elsif Scope (Reducer_E) = Standard_Standard then
!                   --  If Accum_Typ is a universal numeric type and the prefix
!                   --  is not an aggregate, use its component type in order to
!                   --  avoid resolution problems later on.
! 
!                   if Is_Universal_Numeric_Type (Accum_Typ) then
!                      if Nkind (P) /= N_Aggregate then
!                         Accum_Typ := Component_Type (Etype (P));
!                      end if;
! 
!                   --  If Accum_Typ is a specific numeric type, use its base
!                   --  type to avoid subtype mismatches for the initial value.
! 
!                   elsif Is_Numeric_Type (Accum_Typ) then
!                      Accum_Typ := Base_Type (Accum_Typ);
!                   end if;
! 
!                --  Otherwise, Accum_Typ is the subtype of the first formal
!                --  of the reducer subprogram (RM 4.5.10(19/5)).
! 
!                else
!                   Accum_Typ := Etype (First_Formal (Reducer_E));
!                end if;
! 
!                Set_Etype (N, Accum_Typ);
! 
!                --  The accumulator type must be nonlimited (RM 4.5.10(8/5))
! 
!                if Is_Limited_Type (Accum_Typ) then
!                   Error_Msg_N
!                     ("type of reduction expression must be nonlimited", N);
! 
!                --  If Accum_Typ is an unconstrained array and the reducer
!                --  subprogram is a function then a Constraint_Error will be
!                --  raised at run time, as most computations will change its
!                --  length during the reduction execution (RM 4.5.10(25/5)).
!                --  For instance, this is the case with:
!                --    [...]'Reduce ("&", ...)
!                --  When the expression yields non-empty strings, the reduction
!                --  repeatedly executes the following assignment:
!                --    Acc := Expr (I) & Acc;
!                --  which will raise a Constraint_Error since the number of
!                --  elements is increasing.
! 
!                elsif Nkind (Reducer_E) /= N_Attribute_Reference
!                  and then Ekind (Reducer_E) = E_Function
!                  and then not Is_Numeric_Type (Accum_Typ)
!                  and then not Is_Constrained (Accum_Typ)
!                then
!                   declare
!                      Discard : Node_Id;
!                   begin
!                      Discard := Compile_Time_Constraint_Error
!                                   (Reducer_N,
!                                    "potential length mismatch!!??",
!                                    Accum_Typ);
!                   end;
!                end if;
! 
!                --  Complete the resolution of the reduction expression by
!                --  resolving the initial expression and array aggregate.
! 
!                Resolve (Init_Value_Expr, Accum_Typ);
! 
!                if Nkind (P) = N_Aggregate then
!                   Resolve_Aggregate (P,
!                     Make_Array_Type (Index => Standard_Positive,
!                                      Value => Value_Typ));
!                else
!                   Resolve (P);
                 end if;
              end;
  
*************** package body Sem_Attr is
*** 12960,12966 ****
              --  their Entity attribute to reference their discriminal.
  
              if Expander_Active
!               and then Present (Expressions (N))
              then
                 declare
                    Expr : Node_Id := First (Expressions (N));
--- 13677,13683 ----
              --  their Entity attribute to reference their discriminal.
  
              if Expander_Active
!               and then Attr_Id /= Attribute_Make
              then
                 declare
                    Expr : Node_Id := First (Expressions (N));
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_attr.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_attr.ads
*** gcc-15.2.0/gcc/ada/sem_attr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_attr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 217,226 ****
        -----------------------
  
        Attribute_Finalization_Size => True,
!       --  For every object or non-class-wide-type, Finalization_Size returns
!       --  the size of the hidden header used for finalization purposes as if
        --  the object or type was allocated on the heap. The size of the header
        --  does take into account any extra padding due to alignment issues.
  
        -----------------
        -- Fixed_Value --
--- 217,227 ----
        -----------------------
  
        Attribute_Finalization_Size => True,
!       --  For every object or type, Finalization_Size returns the (possibly
!       --  zero) size of the hidden header used for finalization purposes as if
        --  the object or type was allocated on the heap. The size of the header
        --  does take into account any extra padding due to alignment issues.
+       --  See Sem_Util.Needs_Finalization for treatment of class-wide types.
  
        -----------------
        -- Fixed_Value --
*************** package Sem_Attr is
*** 319,324 ****
--- 320,331 ----
        --  This attribute is identical to the Object_Size attribute. It is
        --  provided for compatibility with the DEC attribute of this name.
  
+       ----------
+       -- Make --
+       ----------
+ 
+       Attribute_Make => True,
+ 
        ----------------------
        -- Max_Integer_Size --
        ----------------------
*************** package Sem_Attr is
*** 533,538 ****
--- 540,554 ----
        --  yields a value that can be called as long as the subprogram is in
        --  scope (normal Ada 95 accessibility rules restrict this usage).
  
+       -------------------------
+       -- Unsigned_Base_Range --
+       -------------------------
+ 
+       Attribute_Unsigned_Base_Range => True,
+       --  GNAT core extension. The prefix of 'Unsigned_Base_Range must be a
+       --  signed integer type. The static result is a boolean that indicates
+       --  whether the base range is unsigned.
+ 
        ---------------
        -- VADS_Size --
        ---------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_aux.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_aux.adb
*** gcc-15.2.0/gcc/ada/sem_aux.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_aux.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  ------------------------------------------------------------------------------
  
  with Atree;          use Atree;
- with Einfo;          use Einfo;
- with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Nlists;         use Nlists;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 24,31 ----
*************** package body Sem_Aux is
*** 185,193 ****
  
        --  Normal case, search enclosing scopes
  
-       --  Note: the test for Present (S) should not be required, it defends
-       --  against an ill-formed tree.
- 
        S := Scope (Ent);
        loop
           --  If we somehow got an empty value for Scope, the tree must be
--- 182,187 ----
*************** package body Sem_Aux is
*** 454,469 ****
--- 448,475 ----
        Id  : Entity_Id;
  
     begin
+       --  Call using access to subprogram with explicit dereference
+ 
        if Nkind (Nam) = N_Explicit_Dereference then
           Id := Etype (Nam);
           pragma Assert (Ekind (Id) = E_Subprogram_Type);
  
+       --  Case of call to simple entry, where the Name is a selected component
+       --  whose prefix is the task or protected record, and whose selector name
+       --  is the entry name.
+ 
        elsif Nkind (Nam) = N_Selected_Component then
           Id := Entity (Selector_Name (Nam));
  
+       --  Case of call to member of entry family, where Name is an indexed
+       --  component, with the prefix being a selected component giving the
+       --  task and entry family name, and the index being the entry index.
+ 
        elsif Nkind (Nam) = N_Indexed_Component then
           Id := Entity (Selector_Name (Prefix (Nam)));
  
+       --  Normal case
+ 
        else
           Id := Entity (Nam);
        end if;
*************** package body Sem_Aux is
*** 948,953 ****
--- 954,960 ----
  
     begin
        if Is_Type (Ent)
+         and then Present (Etype (Ent))
          and then Base_Type (Ent) /= Root_Type (Ent)
          and then not Is_Class_Wide_Type (Ent)
  
*************** package body Sem_Aux is
*** 1546,1551 ****
--- 1553,1633 ----
        return E;
     end Ultimate_Alias;
  
+    ---------------------------
+    -- Unique_Component_Name --
+    ---------------------------
+ 
+    function Unique_Component_Name
+      (Component : Record_Field_Kind_Id) return Name_Id
+    is
+       Homographic_Component_Count : Pos := 1;
+       Hcc                         : Pos renames Homographic_Component_Count;
+       Enclosing_Type              : Entity_Id :=
+         Underlying_Type (Base_Type (Scope (Component)));
+    begin
+       if Ekind (Enclosing_Type) = E_Record_Type
+         and then Is_Tagged_Type (Enclosing_Type)
+         and then Has_Private_Ancestor (Enclosing_Type)
+       then
+          --  traverse ancestors to determine Hcc value
+          loop
+             declare
+                Type_Decl : constant Node_Id :=
+                  Parent (Underlying_Type (Base_Type (Enclosing_Type)));
+                Type_Def : constant Node_Id := Type_Definition (Type_Decl);
+             begin
+                exit when Nkind (Type_Def) /= N_Derived_Type_Definition;
+                Enclosing_Type :=
+                  Underlying_Type (Base_Type (Etype (Enclosing_Type)));
+ 
+                declare
+                   Ancestor_Comp : Opt_Record_Field_Kind_Id :=
+                     First_Component_Or_Discriminant (Enclosing_Type);
+                begin
+                   while Present (Ancestor_Comp) loop
+                      if Chars (Ancestor_Comp) = Chars (Component) then
+                         Hcc := Hcc + 1;
+                         exit; -- exit not required, but might as well
+                      end if;
+                      Next_Component_Or_Discriminant (Ancestor_Comp);
+                   end loop;
+                end;
+             end;
+          end loop;
+       end if;
+ 
+       if Hcc = 1 then
+          --  the usual case
+          return Chars (Component);
+       else
+          declare
+             Buff : Bounded_String;
+          begin
+             Append (Buff, Chars (Component));
+ 
+             Append (Buff, "__");
+             --  A double underscore in an identifier is legal in C, not in Ada.
+             --  Returning a result that is not a legal Ada identifier
+             --  ensures that we won't have problems with collisions.
+             --  If we have a component named Foo and we just append a
+             --  number (without any underscores), that new name might match
+             --  the name of another component (which would be bad).
+             --  The result of this function is intended for use as an
+             --  identifier in generated C code, so it needs to be a
+             --  legal C identifer.
+ 
+             Append (Buff, Hcc);
+             --  Should we instead append Hcc - 1 here? This is a human
+             --  readability question. If parent type and extension each
+             --  have a Foo component, do we want the name returned for the
+             --  second Foo to be "foo__2" or "foo__1" ? Does it matter?
+             --  Either way, the name returned for the first Foo will be "foo".
+ 
+             return Name_Find (Buff);
+          end;
+       end if;
+    end Unique_Component_Name;
+ 
     --------------------------
     -- Unit_Declaration_Node --
     --------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_aux.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_aux.ads
*** gcc-15.2.0/gcc/ada/sem_aux.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_aux.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ----
  --  require more than minimal semantic knowledge.
  
  with Alloc;
+ with Einfo.Entities; use Einfo.Entities;
  with Namet; use Namet;
  with Table;
  with Types; use Types;
*************** package Sem_Aux is
*** 105,111 ****
     --  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
--- 106,112 ----
     --  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
*** 270,278 ****
  
     function Initialization_Suppressed (Typ : Entity_Id) return Boolean;
     pragma Inline (Initialization_Suppressed);
!    --  Returns True if initialization should be suppressed for the given type
!    --  or subtype. This is true if Suppress_Initialization is set either for
!    --  the subtype itself, or for the corresponding base type.
  
     function Is_Body (N : Node_Id) return Boolean with Inline;
     --  Determine whether an arbitrary node denotes a body
--- 271,278 ----
  
     function Initialization_Suppressed (Typ : Entity_Id) return Boolean;
     pragma Inline (Initialization_Suppressed);
!    --  True if Suppress_Initialization is set either for Typ or for its base
!    --  type. This is unrelated to pragma Import.
  
     function Is_Body (N : Node_Id) return Boolean with Inline;
     --  Determine whether an arbitrary node denotes a body
*************** package Sem_Aux is
*** 405,410 ****
--- 405,423 ----
     --  Return the last entity in the chain of aliased entities of Prim. If Prim
     --  has no alias return Prim.
  
+    function Unique_Component_Name
+      (Component : Record_Field_Kind_Id) return Name_Id;
+    --  Usually, a record type cannot have two components with the same name.
+    --  But in the case of a component declared in an extension of a tagged
+    --  private (or private extension) parent type, it is possible that some
+    --  ancestor type also has a (non-visible) component with the same name.
+    --  In the common case, this function simply returns the Chars attribute
+    --  of its argument.
+    --  But in the multiple-components-with-the-same-name case, it appends
+    --  a uniquifying suffix. The result in this case will not be a
+    --  syntactically valid Ada identifier, but it will be a syntactically
+    --  valid C identifier.
+ 
     function Unit_Declaration_Node (Unit_Id : Entity_Id) return Node_Id;
     --  Unit_Id is the simple name of a program unit, this function returns the
     --  corresponding xxx_Declaration node for the entity. Also applies to the
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_case.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_case.adb
*** gcc-15.2.0/gcc/ada/sem_case.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_case.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 24,29 ----
*************** with Sem_Util;       use Sem_Util;
*** 41,47 ****
  with Sem_Type;       use Sem_Type;
  with Snames;         use Snames;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stringt;        use Stringt;
--- 40,45 ----
*************** package body Sem_Case is
*** 3890,3895 ****
--- 3888,3894 ----
                 return True;
  
              when N_Empty
+                | N_Allocator
                 | N_Statement_Other_Than_Procedure_Call
                 | N_Procedure_Call_Statement
                 | N_Declaration
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_case.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_case.ads
*** gcc-15.2.0/gcc/ada/sem_case.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_case.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_cat.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_cat.adb
*** gcc-15.2.0/gcc/ada/sem_cat.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_cat.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 25,30 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 40,46 ****
  with Sem_Dist;       use Sem_Dist;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 39,44 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_cat.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_cat.ads
*** gcc-15.2.0/gcc/ada/sem_cat.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_cat.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch10.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch10.adb
*** gcc-15.2.0/gcc/ada/sem_ch10.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch10.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  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 Errout;         use Errout;
--- 27,32 ----
*************** with Exp_Disp;       use Exp_Disp;
*** 35,41 ****
  with Exp_Put_Image;
  with Exp_Util;       use Exp_Util;
  with Elists;         use Elists;
- with Fname;          use Fname;
  with Fname.UF;       use Fname.UF;
  with Freeze;         use Freeze;
  with Impunit;        use Impunit;
--- 34,39 ----
*************** with Sem_Prag;       use Sem_Prag;
*** 64,70 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 62,67 ----
*************** package body Sem_Ch10 is
*** 123,137 ****
     --  Verify that a stub is declared immediately within a compilation unit,
     --  and not in an inner frame.
  
-    procedure Expand_With_Clause (Item : Node_Id; Nam : Node_Id; N : Node_Id);
-    --  When a child unit appears in a context clause, the implicit withs on
-    --  parents are made explicit, and with clauses are inserted in the context
-    --  clause before the one for the child. If a parent in the with_clause
-    --  is a renaming, the implicit with_clause is on the renaming whose name
-    --  is mentioned in the with_clause, and not on the package it renames.
-    --  N is the compilation unit whose list of context items receives the
-    --  implicit with_clauses.
- 
     procedure Generate_Parent_References (N : Node_Id; P_Id : Entity_Id);
     --  Generate cross-reference information for the parents of child units
     --  and of subunits. N is a defining_program_unit_name, and P_Id is the
--- 120,125 ----
*************** package body Sem_Ch10 is
*** 185,191 ****
     --  use-package clauses to avoid circularities when installing context.
  
     procedure Install_Siblings (U_Name : Entity_Id; N : Node_Id);
!    --  In the compilation of a child unit, a child of any of the  ancestor
     --  units is directly visible if it is visible, because the parent is in
     --  an enclosing scope. Iterate over context to find child units of U_Name
     --  or of some ancestor of it.
--- 173,179 ----
     --  use-package clauses to avoid circularities when installing context.
  
     procedure Install_Siblings (U_Name : Entity_Id; N : Node_Id);
!    --  In the compilation of a child unit, a child of any of the ancestor
     --  units is directly visible if it is visible, because the parent is in
     --  an enclosing scope. Iterate over context to find child units of U_Name
     --  or of some ancestor of it.
*************** package body Sem_Ch10 is
*** 1146,1151 ****
--- 1134,1153 ----
  
        --  Now analyze the unit (package, subprogram spec, body) itself
  
+       if Debug_Flag_I then
+          if Nkind (Unit_Node) in N_Package_Declaration
+                                | N_Package_Renaming_Declaration
+                                | N_Subprogram_Declaration
+                                | N_Generic_Declaration
+            or else (Nkind (Unit_Node) = N_Subprogram_Body
+                      and then Acts_As_Spec (Unit_Node))
+          then
+             Write_Str ("install unit ");
+             Write_Name (Chars (Defining_Entity (Unit_Node)));
+             Write_Eol;
+          end if;
+       end if;
+ 
        Analyze (Unit_Node);
  
        if Warn_On_Redundant_Constructs then
*************** package body Sem_Ch10 is
*** 1234,1242 ****
  
        if Expander_Active and then Tagged_Type_Expansion then
           case Nkind (Unit_Node) is
!             when N_Package_Declaration | N_Package_Body =>
                 Build_Static_Dispatch_Tables (Unit_Node);
  
              when N_Package_Instantiation =>
                 Build_Static_Dispatch_Tables (Instance_Spec (Unit_Node));
  
--- 1236,1250 ----
  
        if Expander_Active and then Tagged_Type_Expansion then
           case Nkind (Unit_Node) is
!             when N_Package_Declaration =>
                 Build_Static_Dispatch_Tables (Unit_Node);
  
+             when N_Package_Body =>
+                if Ekind (Corresponding_Spec (Unit_Node)) /= E_Generic_Package
+                then
+                   Build_Static_Dispatch_Tables (Unit_Node);
+                end if;
+ 
              when N_Package_Instantiation =>
                 Build_Static_Dispatch_Tables (Instance_Spec (Unit_Node));
  
*************** package body Sem_Ch10 is
*** 1494,1499 ****
--- 1502,1511 ----
                  --  No checks required if no separate spec
  
                  or else Acts_As_Spec (N)
+ 
+                 --  No checked needed for ignored ghost units
+ 
+                 or else Is_Ignored_Ghost_Entity_In_Codegen (Spec_Id)
                )
              then
                 --  This is a case where we only need the entity for checking to
*************** package body Sem_Ch10 is
*** 2955,2960 ****
--- 2967,2973 ----
  
        if Ada_Version >= Ada_95
          and then In_Predefined_Renaming (U)
+         and then Comes_From_Source (N)
        then
           if Restriction_Check_Required (No_Obsolescent_Features) then
              Check_Restriction (No_Obsolescent_Features, N);
*************** package body Sem_Ch10 is
*** 3167,3179 ****
  
        elsif Unit_Kind = N_Package_Instantiation
          and then Nkind (U) = N_Package_Instantiation
-         and then Present (Instance_Spec (U))
        then
           --  If the instance has not been rewritten as a package declaration,
           --  then it appeared already in a previous with clause. Retrieve
           --  the entity from the previous instance.
  
!          E_Name := Defining_Entity (Specification (Instance_Spec (U)));
  
        elsif Unit_Kind in N_Subprogram_Instantiation then
  
--- 3180,3191 ----
  
        elsif Unit_Kind = N_Package_Instantiation
          and then Nkind (U) = N_Package_Instantiation
        then
           --  If the instance has not been rewritten as a package declaration,
           --  then it appeared already in a previous with clause. Retrieve
           --  the entity from the previous instance.
  
!          E_Name := Defining_Entity_Of_Instance (U);
  
        elsif Unit_Kind in N_Subprogram_Instantiation then
  
*************** package body Sem_Ch10 is
*** 3184,3192 ****
           --  been rewritten as the declaration of the wrapper itself.
  
           if Nkind (U) in N_Subprogram_Instantiation then
!             E_Name :=
!               Related_Instance
!                 (Defining_Entity (Specification (Instance_Spec (U))));
           else
              E_Name := Related_Instance (Defining_Entity (U));
           end if;
--- 3196,3202 ----
           --  been rewritten as the declaration of the wrapper itself.
  
           if Nkind (U) in N_Subprogram_Instantiation then
!             E_Name := Defining_Entity_Of_Instance (U);
           else
              E_Name := Related_Instance (Defining_Entity (U));
           end if;
*************** package body Sem_Ch10 is
*** 3297,3303 ****
              --  the renamed unit, and the renaming declaration itself has not
              --  been analyzed.
  
!             Analyze (Parent (Parent (Entity (Pref))));
              pragma Assert (Renamed_Entity (Entity (Pref)) = Par_Name);
              Par_Name := Entity (Pref);
           end if;
--- 3307,3313 ----
              --  the renamed unit, and the renaming declaration itself has not
              --  been analyzed.
  
!             Semantics (Parent (Parent (Entity (Pref))));
              pragma Assert (Renamed_Entity (Entity (Pref)) = Par_Name);
              Par_Name := Entity (Pref);
           end if;
*************** package body Sem_Ch10 is
*** 4338,4380 ****
        ---------------------------------------
  
        procedure Check_Private_Limited_Withed_Unit (Item : Node_Id) is
-          Curr_Parent  : Node_Id;
           Child_Parent : Node_Id;
           Curr_Private : Boolean;
  
        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
!                Child_Parent := Parent_Spec (Unit (Child_Parent));
!             end loop;
! 
!             if No (Child_Parent) then
                 return;
              end if;
!          end if;
  
!          Child_Parent := Parent_Spec (Unit (Child_Parent));
  
           --  Traverse all the ancestors of the current compilation unit to
!          --  check if it is a descendant of named library unit.
  
!          Curr_Parent := Parent (Item);
           Curr_Private := Private_Present (Curr_Parent);
  
!          while Present (Parent_Spec (Unit (Curr_Parent)))
!            and then Curr_Parent /= Child_Parent
!          loop
              Curr_Parent := Parent_Spec (Unit (Curr_Parent));
              Curr_Private := Curr_Private or else Private_Present (Curr_Parent);
           end loop;
  
--- 4348,4385 ----
        ---------------------------------------
  
        procedure Check_Private_Limited_Withed_Unit (Item : Node_Id) is
           Child_Parent : Node_Id;
+          Curr_Parent  : Node_Id;
           Curr_Private : Boolean;
+          Priv_Child   : Node_Id;
  
        begin
!          --  Start with the compilation unit of the withed library unit
  
!          Priv_Child := Withed_Lib_Unit (Item);
  
           --  If the child unit is a public child, then locate its nearest
!          --  private ancestor, if any. Child_Parent will then be set to
           --  the parent of that ancestor.
  
!          while not Private_Present (Priv_Child) loop
!             Priv_Child := Parent_Spec (Unit (Priv_Child));
!             if No (Priv_Child) then
                 return;
              end if;
!          end loop;
  
!          Child_Parent := Parent_Spec (Unit (Priv_Child));
  
           --  Traverse all the ancestors of the current compilation unit to
!          --  check if it is a descendant of Child_Parent.
  
!          Curr_Parent := N;
           Curr_Private := Private_Present (Curr_Parent);
  
!          while Curr_Parent /= Child_Parent loop
              Curr_Parent := Parent_Spec (Unit (Curr_Parent));
+             exit when No (Curr_Parent);
              Curr_Private := Curr_Private or else Private_Present (Curr_Parent);
           end loop;
  
*************** package body Sem_Ch10 is
*** 4385,4395 ****
                ("\current unit must also have parent&!",
                 Item, Defining_Unit_Name (Specification (Unit (Child_Parent))));
  
!          elsif Private_Present (Parent (Item))
!             or else Curr_Private
              or else Private_Present (Item)
!             or else Nkind (Unit (Parent (Item))) in
!                       N_Package_Body | N_Subprogram_Body | N_Subunit
           then
              --  Current unit is private, of descendant of a private unit
  
--- 4390,4400 ----
                ("\current unit must also have parent&!",
                 Item, Defining_Unit_Name (Specification (Unit (Child_Parent))));
  
!          elsif Curr_Private
              or else Private_Present (Item)
!             or else Nkind (Unit (N)) in N_Package_Body | N_Subunit
!             or else (Nkind (Unit (N)) = N_Subprogram_Body
!                       and then not Acts_As_Spec (Parent (Unit (N))))
           then
              --  Current unit is private, of descendant of a private unit
  
*************** package body Sem_Ch10 is
*** 4684,4689 ****
--- 4689,4706 ----
           end if;
        end if;
  
+       if Debug_Flag_I then
+          Write_Str ("install parent unit ");
+          Write_Name (Chars (P_Name));
+          Write_Eol;
+       end if;
+ 
+       --  Skip this for predefined units because of the rtsfind mechanism
+ 
+       if not In_Predefined_Unit (P_Name) then
+          Set_Is_Visible_Lib_Unit (P_Name);
+       end if;
+ 
        --  This is the recursive call that ensures all parents are loaded
  
        if Is_Child_Spec (P) then
*************** package body Sem_Ch10 is
*** 4756,4767 ****
        Item   : Node_Id;
  
     begin
-       if Debug_Flag_I then
-          Write_Str ("install private with clauses of ");
-          Write_Name (Chars (P));
-          Write_Eol;
-       end if;
- 
        if Nkind (Parent (Decl)) = N_Compilation_Unit then
           Item := First (Context_Items (Parent (Decl)));
           while Present (Item) loop
--- 4773,4778 ----
*************** package body Sem_Ch10 is
*** 4804,4812 ****
     ----------------------
  
     procedure Install_Siblings (U_Name : Entity_Id; N : Node_Id) is
!       Item : Node_Id;
!       Id   : Entity_Id;
!       Prev : Entity_Id;
  
     begin
        --  Iterate over explicit with clauses, and check whether the scope of
--- 4815,4822 ----
     ----------------------
  
     procedure Install_Siblings (U_Name : Entity_Id; N : Node_Id) is
!       Item   : Node_Id;
!       Item_E : Entity_Id;
  
     begin
        --  Iterate over explicit with clauses, and check whether the scope of
*************** package body Sem_Ch10 is
*** 4837,4878 ****
             or else Private_Present (N)
             or else Nkind (Unit (N)) = N_Package_Body
           then
!             Id := Entity (Name (Item));
  
!             if Is_Child_Unit (Id)
!               and then Is_Ancestor_Package (Scope (Id), U_Name)
              then
!                Set_Is_Immediately_Visible (Id);
  
                 --  Check for the presence of another unit in the context that
                 --  may be inadvertently hidden by the child.
  
!                Prev := Current_Entity (Id);
  
!                if Present (Prev)
!                  and then Is_Immediately_Visible (Prev)
!                  and then not Is_Child_Unit (Prev)
!                then
!                   declare
!                      Clause : Node_Id;
  
!                   begin
!                      Clause := First (Context_Items (N));
!                      while Present (Clause) loop
!                         if Nkind (Clause) = N_With_Clause
!                           and then Entity (Name (Clause)) = Prev
                          then
                             Error_Msg_NE
!                               ("child unit& hides compilation unit " &
!                                "with the same name??",
!                                  Name (Item), Id);
                             exit;
                          end if;
  
!                         Next (Clause);
!                      end loop;
!                   end;
!                end if;
  
              --  The With_Clause may be on a grandchild or one of its further
              --  descendants, which makes a child immediately visible. Examine
--- 4847,4892 ----
             or else Private_Present (N)
             or else Nkind (Unit (N)) = N_Package_Body
           then
!             Item_E := Entity (Name (Item));
  
!             if Is_Child_Unit (Item_E)
!               and then Is_Ancestor_Package (Scope (Item_E), U_Name)
              then
!                Set_Is_Immediately_Visible (Item_E);
  
                 --  Check for the presence of another unit in the context that
                 --  may be inadvertently hidden by the child.
  
!                declare
!                   Clause : Node_Id;
!                   Clause_E : Entity_Id;
  
!                begin
!                   Clause := First (Context_Items (N));
!                   while Present (Clause) loop
!                      if Clause /= Item
!                        and then Nkind (Clause) = N_With_Clause
!                        and then not Limited_Present (Clause)
!                      then
!                         Clause_E := Entity (Name (Clause));
  
!                         if not Is_Ancestor_Package (Clause_E, U_Name)
!                           and then Chars (Clause_E) = Chars (Item_E)
!                           and then not Has_Prefix (Name (Clause))
!                           and then not In_Use (Clause_E)
                          then
                             Error_Msg_NE
!                              ("child unit& hides compilation unit "
!                               & "with the same name??",
!                               Name (Item),
!                               Item_E);
                             exit;
                          end if;
+                      end if;
  
!                      Next (Clause);
!                   end loop;
!                end;
  
              --  The With_Clause may be on a grandchild or one of its further
              --  descendants, which makes a child immediately visible. Examine
*************** package body Sem_Ch10 is
*** 4880,4891 ****
              --  if current unit is A.C, and with_clause is on A.X.Y.Z, then X
              --  is immediately visible.
  
!             elsif Is_Child_Unit (Id) then
                 declare
                    Par : Entity_Id;
  
                 begin
!                   Par := Scope (Id);
                    while Is_Child_Unit (Par) loop
                       if Is_Ancestor_Package (Scope (Par), U_Name) then
                          Set_Is_Immediately_Visible (Par);
--- 4894,4905 ----
              --  if current unit is A.C, and with_clause is on A.X.Y.Z, then X
              --  is immediately visible.
  
!             elsif Is_Child_Unit (Item_E) then
                 declare
                    Par : Entity_Id;
  
                 begin
!                   Par := Scope (Item_E);
                    while Is_Child_Unit (Par) loop
                       if Is_Ancestor_Package (Scope (Par), U_Name) then
                          Set_Is_Immediately_Visible (Par);
*************** package body Sem_Ch10 is
*** 4903,4911 ****
           --  is already a regular with_clause for it in the current unit.
  
           elsif Private_Present (Item) then
!             Id := Entity (Name (Item));
  
!             if Is_Child_Unit (Id) then
                 declare
                    Clause : Node_Id;
  
--- 4917,4925 ----
           --  is already a regular with_clause for it in the current unit.
  
           elsif Private_Present (Item) then
!             Item_E := Entity (Name (Item));
  
!             if Is_Child_Unit (Item_E) then
                 declare
                    Clause : Node_Id;
  
*************** package body Sem_Ch10 is
*** 4929,4940 ****
                            and then Is_Entity_Name (Name (Clause))
                            and then not Private_Present (Clause)
                          then
!                            if Entity (Name (Clause)) = Id
                               or else
                                 (Nkind (Name (Clause)) = N_Expanded_Name
                                   and then
                                     Is_Entity_Name (Prefix (Name (Clause)))
!                                  and then Entity (Prefix (Name (Clause))) = Id)
                             then
                                return True;
                             end if;
--- 4943,4955 ----
                            and then Is_Entity_Name (Name (Clause))
                            and then not Private_Present (Clause)
                          then
!                            if Entity (Name (Clause)) = Item_E
                               or else
                                 (Nkind (Name (Clause)) = N_Expanded_Name
                                   and then
                                     Is_Entity_Name (Prefix (Name (Clause)))
!                                  and then Entity (Prefix (Name (Clause)))
!                                           = Item_E)
                             then
                                return True;
                             end if;
*************** package body Sem_Ch10 is
*** 4947,4953 ****
                    end In_Context;
  
                 begin
!                   Set_Is_Visible_Lib_Unit (Id, In_Context);
                 end;
              end if;
           end if;
--- 4962,4968 ----
                    end In_Context;
  
                 begin
!                   Set_Is_Visible_Lib_Unit (Item_E, In_Context);
                 end;
              end if;
           end if;
*************** package body Sem_Ch10 is
*** 7324,7329 ****
--- 7339,7356 ----
           --  in the reverse order of their installation.
  
           Remove_Parents (P);
+ 
+          if Debug_Flag_I then
+             Write_Str ("remove parent unit ");
+             Write_Name (Chars (P_Name));
+             Write_Eol;
+          end if;
+ 
+          --  Skip this for predefined units because of the rtsfind mechanism
+ 
+          if not In_Predefined_Unit (P_Name) then
+             Set_Is_Visible_Lib_Unit (P_Name, False);
+          end if;
        end if;
     end Remove_Parents;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch10.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch10.ads
*** gcc-15.2.0/gcc/ada/sem_ch10.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch10.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Ch10 is
*** 45,50 ****
--- 45,59 ----
     --  set when Ent is a tagged type and its class-wide type needs to appear
     --  in the tree.
  
+    procedure Expand_With_Clause (Item : Node_Id; Nam : Node_Id; N : Node_Id);
+    --  When a child unit appears in a context clause, the implicit withs on
+    --  parents are made explicit, and with clauses are inserted in the context
+    --  clause before the one for the child. If a parent in the with_clause
+    --  is a renaming, the implicit with_clause is on the renaming whose name
+    --  is mentioned in the with_clause, and not on the package it renames.
+    --  N is the compilation unit whose list of context items receives the
+    --  implicit with_clauses.
+ 
     procedure Install_Context (N : Node_Id; Chain : Boolean := True);
     --  Installs the entities from the context clause of the given compilation
     --  unit into the visibility chains. This is done before analyzing a unit.
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch11.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch11.adb
*** gcc-15.2.0/gcc/ada/sem_ch11.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch11.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  
  with Atree;          use Atree;
  with Checks;         use Checks;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
- with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
--- 25,33 ----
*************** with Sem_Ch13;       use Sem_Ch13;
*** 46,52 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 44,49 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch11.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch11.ads
*** gcc-15.2.0/gcc/ada/sem_ch11.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch11.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch12.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch12.adb
*** gcc-15.2.0/gcc/ada/sem_ch12.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch12.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,39 ****
  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 Elists;         use Elists;
  with Errout;         use Errout;
  with Expander;       use Expander;
! with Fname;          use Fname;
  with Fname.UF;       use Fname.UF;
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
--- 27,38 ----
  with Atree;          use Atree;
  with Contracts;      use Contracts;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
  with Expander;       use Expander;
! with Exp_Dbug;       use Exp_Dbug;
  with Fname.UF;       use Fname.UF;
  with Freeze;         use Freeze;
  with Ghost;          use Ghost;
*************** with Sem_Type;       use Sem_Type;
*** 69,75 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 68,73 ----
*************** package body Sem_Ch12 is
*** 276,281 ****
--- 274,280 ----
     --                                Pre
     --                                Pre_Class
     --                                Precondition
+    --                                Program_Exit
     --                                Refined_Depends
     --                                Refined_Global
     --                                Refined_Post
*************** package body Sem_Ch12 is
*** 478,495 ****
     --  Create a new access type with the given designated type
  
     function Analyze_Associations
!      (I_Node  : Node_Id;
!       Formals : List_Id;
!       F_Copy  : List_Id) return List_Id;
     --  At instantiation time, build the list of associations between formals
     --  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;
        K : Entity_Kind);
  
     procedure Build_Instance_Compilation_Unit_Nodes
       (N        : Node_Id;
--- 477,497 ----
     --  Create a new access type with the given designated type
  
     function Analyze_Associations
!      (N                : Node_Id;
!       Formals          : List_Id;
!       F_Copy           : List_Id;
!       Parent_Installed : Boolean) return List_Id;
     --  At instantiation time, build the list of associations between formals
     --  and actuals. Each association becomes a renaming declaration for the
!    --  formal entity. N is the instantiation node. Formals is the list of
!    --  unanalyzed formals. F_Copy is the list of analyzed formals in the
!    --  generic copy. Parent_Installed is True if the parent has been installed
!    --  during the instantiation.
  
     procedure Analyze_Subprogram_Instantiation
       (N : Node_Id;
        K : Entity_Kind);
+    --  Analyze subprogram instantiation N, either a function or a procedure
  
     procedure Build_Instance_Compilation_Unit_Nodes
       (N        : Node_Id;
*************** package body Sem_Ch12 is
*** 594,601 ****
     --  whose views can change between the point of instantiation and the point
     --  of instantiation of the body. In addition, mark the generic renamings
     --  as generic actuals, so that they are not compatible with other actuals.
!    --  Recurse on an actual that is a formal package whose declaration has
!    --  a box.
  
     function Component_Type_For_Private_View (T : Entity_Id) return Entity_Id;
     --  Return the component type of array type T, with the following addition:
--- 596,603 ----
     --  whose views can change between the point of instantiation and the point
     --  of instantiation of the body. In addition, mark the generic renamings
     --  as generic actuals, so that they are not compatible with other actuals.
!    --  For an instantiation of a formal package that is declared with a box or
!    --  contains defaulted parameters, make the corresponding actuals visible.
  
     function Component_Type_For_Private_View (T : Entity_Id) return Entity_Id;
     --  Return the component type of array type T, with the following addition:
*************** package body Sem_Ch12 is
*** 608,619 ****
       (Inner : Entity_Id;
        Outer : Entity_Id;
        N     : Node_Id) return Boolean;
!    --  Inner is instantiated within the generic Outer. Check whether Inner
!    --  directly or indirectly contains an instance of Outer or of one of its
!    --  parents, in the case of a subunit. Each generic unit holds a list of
!    --  the entities instantiated within (at any depth). This procedure
!    --  determines whether the set of such lists contains a cycle, i.e. an
!    --  illegal circular instantiation.
  
     function Denotes_Formal_Package
       (Pack     : Entity_Id;
--- 610,621 ----
       (Inner : Entity_Id;
        Outer : Entity_Id;
        N     : Node_Id) return Boolean;
!    --  Inner is being instantiated within Outer. If Outer is also a generic
!    --  unit, check whether Inner directly or indirectly contains an instance
!    --  of Outer or of one of its parents (case of subunit). Each generic unit
!    --  holds a list of the entities instantiated within (at any depth). This
!    --  procedure determines whether the set of such lists contains a cycle,
!    --  i.e. an illegal circular instantiation.
  
     function Denotes_Formal_Package
       (Pack     : Entity_Id;
*************** package body Sem_Ch12 is
*** 637,654 ****
     --  of freeze nodes for instance bodies that may depend on other instances.
  
     function Find_Actual_Type
!      (Typ       : Entity_Id;
!       Gen_Type  : Entity_Id) return Entity_Id;
     --  When validating the actual types of a child instance, check whether
     --  the formal is a formal type of the parent unit, and retrieve the current
     --  actual for it. Typ is the entity in the analyzed formal type declaration
     --  (component or index type of an array type, or designated type of an
!    --  access formal) and Gen_Type is the enclosing analyzed formal array
     --  or access type. The desired actual may be a formal of a parent, or may
     --  be declared in a formal package of a parent. In both cases it is a
     --  generic actual type because it appears within a visible instance.
     --  Finally, it may be declared in a parent unit without being a formal
!    --  of that unit, in which case it must be retrieved by visibility.
     --  Ambiguities may still arise if two homonyms are declared in two formal
     --  packages, and the prefix of the formal type may be needed to resolve
     --  the ambiguity in the instance ???
--- 639,658 ----
     --  of freeze nodes for instance bodies that may depend on other instances.
  
     function Find_Actual_Type
!      (Typ     : Entity_Id;
!       Gen_Typ : Entity_Id;
!       Typ_Ref : Node_Id) return Entity_Id;
     --  When validating the actual types of a child instance, check whether
     --  the formal is a formal type of the parent unit, and retrieve the current
     --  actual for it. Typ is the entity in the analyzed formal type declaration
     --  (component or index type of an array type, or designated type of an
!    --  access formal) and Gen_Typ is the enclosing analyzed formal array
     --  or access type. The desired actual may be a formal of a parent, or may
     --  be declared in a formal package of a parent. In both cases it is a
     --  generic actual type because it appears within a visible instance.
     --  Finally, it may be declared in a parent unit without being a formal
!    --  of that unit, in which case it must be retrieved by visibility and
!    --  Typ_Ref is the unanalyzed subtype mark in the instance to be used.
     --  Ambiguities may still arise if two homonyms are declared in two formal
     --  packages, and the prefix of the formal type may be needed to resolve
     --  the ambiguity in the instance ???
*************** package body Sem_Ch12 is
*** 805,815 ****
     --  the suffix is removed is added to Prims_List to restore them later.
  
     procedure Install_Parent (P : Entity_Id; In_Body : Boolean := False);
!    --  When compiling an instance of a child unit the parent (which is
!    --  itself an instance) is an enclosing scope that must be made
!    --  immediately visible. This procedure is also used to install the non-
!    --  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
--- 809,819 ----
     --  the suffix is removed is added to Prims_List to restore them later.
  
     procedure Install_Parent (P : Entity_Id; In_Body : Boolean := False);
!    --  When compiling an instance of a child unit, the parent P is an enclosing
!    --  scope that must be made immediately visible. In_Body is True if this is
!    --  done for an instance body and False for an instance spec. Note that the
!    --  procedure does not insert P on the scope stack above the current scope,
!    --  but instead pushes P and then pushes an extra copy of the current scope.
  
     --  The functions Instantiate_... perform various legality checks and build
     --  the declarations for instantiated generic parameters. In all of these
*************** package body Sem_Ch12 is
*** 835,843 ****
     --  the same list it is passing to Actual_Decls.
  
     function Instantiate_Formal_Subprogram
!      (Formal          : Node_Id;
!       Actual          : Node_Id;
!       Analyzed_Formal : Node_Id) return Node_Id;
  
     function Instantiate_Formal_Package
       (Formal          : Node_Id;
--- 839,850 ----
     --  the same list it is passing to Actual_Decls.
  
     function Instantiate_Formal_Subprogram
!      (Formal           : Node_Id;
!       Actual           : Node_Id;
!       Analyzed_Formal  : Node_Id;
!       Parent_Installed : Boolean) return Node_Id;
!    --  Parent_Installed is True if the parent has been installed during the
!    --  instantiation.
  
     function Instantiate_Formal_Package
       (Formal          : Node_Id;
*************** package body Sem_Ch12 is
*** 922,928 ****
     --  subprogram declaration N.
  
     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
--- 929,935 ----
     --  subprogram declaration N.
  
     procedure Remove_Parent (In_Body : Boolean := False);
!    --  Reverse Install_Parent's 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
*************** package body Sem_Ch12 is
*** 936,941 ****
--- 943,955 ----
     --  Restore suffix 'P' to primitives of Prims_List and leave Prims_List
     --  set to No_Elist.
  
+    procedure Restore_Private_Views (Pack_Id : Entity_Id; Is_Package : Boolean);
+    --  Restore the private views of external types, and unmark the generic
+    --  renamings of actuals, so that they become compatible subtypes again.
+    --  Reset the visibility of the actuals (some of them may have been made
+    --  visible by Check_Generic_Actuals). For subprograms, Pack_Id is the
+    --  wrapper package built to hold the renamings and Is_Package is False.
+ 
     procedure Set_Instance_Env
       (Gen_Unit : Entity_Id;
        Act_Unit : Entity_Id);
*************** package body Sem_Ch12 is
*** 950,955 ****
--- 964,973 ----
     --  Associate analyzed generic parameter with corresponding instance. Used
     --  for semantic checks at instantiation time.
  
+    procedure Switch_View (T : Entity_Id);
+    --  Switch the partial and full views of a type, as well as those of its
+    --  private dependents (i.e. its subtypes and derived types).
+ 
     function True_Parent (N : Node_Id) return Node_Id;
     --  For a subunit, return parent of corresponding stub, else return
     --  parent of node.
*************** package body Sem_Ch12 is
*** 1008,1015 ****
  
     procedure Set_Next_Assoc (E : Assoc_Ptr; Next : Assoc_Ptr);
     function  Next_Assoc     (E : Assoc_Ptr) return Assoc_Ptr;
!    function Get_Gen_Id      (E : Assoc_Ptr) return Entity_Id;
!    function Hash            (F : Entity_Id) return HTable_Range;
  
     package Generic_Renamings_HTable is new GNAT.HTable.Static_HTable (
        Header_Num => HTable_Range,
--- 1026,1033 ----
  
     procedure Set_Next_Assoc (E : Assoc_Ptr; Next : Assoc_Ptr);
     function  Next_Assoc     (E : Assoc_Ptr) return Assoc_Ptr;
!    function  Get_Gen_Id     (E : Assoc_Ptr) return Entity_Id;
!    function  Hash           (F : Entity_Id) return HTable_Range;
  
     package Generic_Renamings_HTable is new GNAT.HTable.Static_HTable (
        Header_Num => HTable_Range,
*************** package body Sem_Ch12 is
*** 1072,1089 ****
       Table_Increment      => 100,
       Table_Name           => "Instance_Envs");
  
-    procedure Restore_Private_Views
-      (Pack_Id    : Entity_Id;
-       Is_Package : Boolean := True);
-    --  Restore the private views of external types, and unmark the generic
-    --  renamings of actuals, so that they become compatible subtypes again.
-    --  For subprograms, Pack_Id is the package constructed to hold the
-    --  renamings.
- 
-    procedure Switch_View (T : Entity_Id);
-    --  Switch the partial and full views of a type and its private
-    --  dependents (i.e. its subtypes and derived types).
- 
     ------------------------------------
     -- Structures for Error Reporting --
     ------------------------------------
--- 1090,1095 ----
*************** package body Sem_Ch12 is
*** 1157,1175 ****
        --  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.
--- 1163,1191 ----
        --  kinds for N_Box_Subp_Default, N_Box_Actual, N_Null_Default, and
        --  N_Exp_Func_Default.
  
!       type Actual_Rec (Kind : Actual_Kind := None) is record
           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;
+       --  Representation of one generic actual parameter
  
        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.
*************** package body Sem_Ch12 is
*** 1178,1193 ****
        --  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;
--- 1194,1209 ----
        --  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;
*************** package body Sem_Ch12 is
*** 1209,1215 ****
           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.
  
--- 1225,1231 ----
           Explicit_Assoc : Opt_N_Generic_Association_Id;
           --  Explicit association, if any, from the source or generated.
  
!          Actual : Actual_Rec;
           --  Generic actual parameter corresponding to Un_Formal/An_Formal,
           --  possibly from defaults or others/boxes.
  
*************** package body Sem_Ch12 is
*** 1223,1229 ****
           --  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.
  
--- 1239,1245 ----
           --  inferred.
  
           Inferred_From : Assoc_Index;
!          --  Index of a later Assoc_Rec in the same Match_Rec from which
           --  this one was inferred, or could be inferred.
           --  Valid only if Info_Inferred_Actual is present.
  
*************** package body Sem_Ch12 is
*** 1236,1245 ****
        --  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;
--- 1252,1261 ----
        --  One element for each formal and (if legal) for each corresponding
        --  actual.
  
!       type Match_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;
*************** package body Sem_Ch12 is
*** 1250,1289 ****
        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.
--- 1266,1313 ----
        end record;
  
        function Match_Assocs
!         (N       : Node_Id;
!          Formals : List_Id;
!          F_Copy  : List_Id) return Match_Rec;
!       --  N 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 Match_Rec with formals, explicit actuals, and default
        --  actuals filled in. Check legality rules related to formal/actual
        --  matching.
  
        procedure Note_Potential_Inference
!         (N     : Node_Id;
!          Match : Match_Rec);
        --  If -gnatd_I, print "info:" messages about type inference that could
        --  have been done.
  
     end Associations;
  
     procedure Analyze_One_Association
!      (N                 : Node_Id;
!       Assoc             : Associations.Assoc_Rec;
!       Parent_Installed  : Boolean;
        Result_Renamings  : List_Id;
        Default_Actuals   : List_Id;
        Actuals_To_Freeze : Elist_Id);
!    --  Called by Analyze_Associations for each association. Parent_Installed
!    --  is True if the parent has been installed during the instantiation. The
!    --  renamings are appended onto Result_Renamings. The defaulted actuals are
!    --  appended onto Default_Actuals, and actuals that require freezing are
     --  appended onto Actuals_To_Freeze.
  
+    procedure Analyze_Structural_Associations
+      (N     : Node_Id;
+       Match : Associations.Match_Rec);
+    --  Analyze associations for structural instantiation N
+ 
     procedure Check_Fixed_Point_Warning
!      (Match     : Associations.Match_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
!    --  deserves 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.
*************** package body Sem_Ch12 is
*** 1314,1340 ****
        --  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,
--- 1338,1366 ----
        --  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 (N, Actual : Node_Id);
        --  Check for errors in "others => <>" and "Name => <>"
  
!       function Default (Un_Formal : Node_Id) return 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,
*************** package body Sem_Ch12 is
*** 1342,1389 ****
        --  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.
  
--- 1368,1417 ----
        --  the matched formal, and set Found to True.
  
        procedure Inference_Msg
!         (Gen_Unit      : Entity_Id;
!          Inferred_To   : Assoc_Rec;
!          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
!         (Match : Match_Rec;
!          F     : Entity_Id) return Assoc_Index;
!       --  Return the index of F in Match.Assocs, which must be present
  
        procedure Maybe_Infer_One
!         (Match         : in out Match_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
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id);
        --  Try to infer the designated type
  
        procedure Infer_From_Array
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id);
        --  Try to infer the index and component types
  
        procedure Infer_From_Discriminated
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id);
        --  Try to infer the types of discriminants
  
!       procedure Infer_Actuals (Match : in out Match_Rec);
        --  Called by Match_Assocs after processing explicit and defaulted
        --  parameters to infer any that are still missing.
  
*************** package body Sem_Ch12 is
*** 1541,1553 ****
        -- 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
--- 1569,1581 ----
        -- Check_Box --
        ---------------
  
!       procedure Check_Box (N, Actual : Node_Id) is
        begin
           --  "... => <>" is allowed only in formal packages, not old-fashioned
           --  instantiations.
  
!          if Nkind (N) /= N_Formal_Package_Declaration
!            and then Comes_From_Source (N)
           then
              if Actual in N_Others_Choice_Id then
                 Error_Msg_N
*************** package body Sem_Ch12 is
*** 1572,1584 ****
        -- 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
--- 1600,1612 ----
        -- Default --
        -------------
  
!       function Default (Un_Formal : Node_Id) return Actual_Rec is
        begin
!          return Result : Actual_Rec do
              case Nkind (Un_Formal) is
                 when N_Formal_Object_Declaration =>
!                   if Present (Expression (Un_Formal)) then
!                      Result := (Name_Exp, Expression (Un_Formal));
                    end if;
                 when N_Formal_Type_Declaration =>
                    if Present (Default_Subtype_Mark (Un_Formal)) then
*************** package body Sem_Ch12 is
*** 1633,1650 ****
  
              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);
--- 1661,1674 ----
  
              if Box_Present (Src_Assoc) then
                 Assoc.Actual := (Kind => Box_Actual);
!                Error_Msg_N ("box requires named notation", Src_Assoc);
              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);
*************** package body Sem_Ch12 is
*** 1726,1747 ****
        ------------------
  
        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);
--- 1750,1773 ----
        ------------------
  
        function Match_Assocs
!         (N       : Node_Id;
!          Formals : List_Id;
!          F_Copy  : List_Id) return Match_Rec
        is
!          Src_Assocs : constant List_Id   := Generic_Associations (N);
!          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 : Match_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);
*************** package body Sem_Ch12 is
*** 1778,1784 ****
                 Iter (Formals);
              end;
  
!             --  Loop through the analyzed copy of the formals:
  
              declare
                 procedure Set_An_Formal (F : Node_Id; Index : Assoc_Index);
--- 1804,1810 ----
                 Iter (Formals);
              end;
  
!             --  Loop through the analyzed copy of the formals
  
              declare
                 procedure Set_An_Formal (F : Node_Id; Index : Assoc_Index);
*************** package body Sem_Ch12 is
*** 1835,1841 ****
                 Iter (F_Copy);
              end;
  
!             --  Loop through actual source associations:
  
              declare
                 Src_Assoc : Node_Id := First (Src_Assocs);
--- 1861,1867 ----
                 Iter (F_Copy);
              end;
  
!             --  Loop through actual source associations
  
              declare
                 Src_Assoc : Node_Id := First (Src_Assocs);
*************** package body Sem_Ch12 is
*** 1863,1869 ****
                    --  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;
--- 1889,1895 ----
                    --  Loop through named actuals and "others => <>":
  
                    while Present (Src_Assoc) loop
!                      Check_Box (N, Src_Assoc);
                       if Src_Assoc in N_Others_Choice_Id then
                          Result.Others_Present := True;
                          exit;
*************** package body Sem_Ch12 is
*** 1941,1948 ****
                 end;
              end loop;
  
!             if Nkind (I_Node) /= N_Formal_Package_Declaration then
!                Infer_Actuals (Gen_Assocs => Result);
              end if;
  
              --  Check for missing actuals
--- 1967,1974 ----
                 end;
              end loop;
  
!             if Nkind (N) /= N_Formal_Package_Declaration then
!                Infer_Actuals (Result);
              end if;
  
              --  Check for missing actuals
*************** package body Sem_Ch12 is
*** 1968,1976 ****
        -------------------
  
        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
  
--- 1994,2003 ----
        -------------------
  
        procedure Inference_Msg
!         (Gen_Unit      : Entity_Id;
!          Inferred_To   : Assoc_Rec;
!          Inferred_From : Assoc_Rec;
!          Was_Inferred  : Boolean)
        is
           pragma Assert (Debug_Flag_Underscore_II); -- This is only for -gnatd_I
  
*************** package body Sem_Ch12 is
*** 2008,2014 ****
        ------------------------------
  
        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
--- 2035,2042 ----
        ------------------------------
  
        procedure Note_Potential_Inference
!         (N     : Node_Id;
!          Match : Match_Rec)
        is
        begin
           if not Debug_Flag_Underscore_II or else Serious_Errors_Detected > 0
*************** package body Sem_Ch12 is
*** 2016,2035 ****
              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;
--- 2044,2064 ----
              return;
           end if;
  
!          for Index in Match.Assocs'Range loop
              declare
!                Assoc : Assoc_Rec renames Match.Assocs (Index);
! 
              begin
                 if Assoc.Actual_Origin = From_Explicit_Actual
                   and then Present (Assoc.Info_Inferred_Actual)
!                  and then In_Extended_Main_Source_Unit (N)
!                  and then not In_Internal_Unit (N)
                 then
                    Inference_Msg
!                     (Match.Gen_Unit,
!                      Inferred_To   => Assoc,
!                      Inferred_From => Match.Assocs (Assoc.Inferred_From),
!                      Was_Inferred  => False);
                 end if;
              end;
           end loop;
*************** package body Sem_Ch12 is
*** 2040,2052 ****
        --------------
  
        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
--- 2069,2088 ----
        --------------
  
        function Find_Assoc
!         (Match : Match_Rec;
!          F     : Entity_Id) return Assoc_Index
        is
        begin
!          for Index in Match.Assocs'Range loop
!             declare
!                An_F : constant Node_Id := Match.Assocs (Index).An_Formal;
!             begin
!                if Nkind (An_F) not in N_Use_Package_Clause | N_Use_Type_Clause
!                  and then Defining_Entity (An_F) = F
!                then
!                   return Index;
!                end if;
!             end;
           end loop;
  
           raise Program_Error; -- it must be present
*************** package body Sem_Ch12 is
*** 2057,2069 ****
        ---------------------
  
        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;
--- 2093,2106 ----
        ---------------------
  
        procedure Maybe_Infer_One
!         (Match         : in out Match_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) = Match.Gen_Unit)
           then
              return; -- no inference if not a formal type of this generic
           end if;
*************** package body Sem_Ch12 is
*** 2073,2084 ****
           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;
--- 2110,2121 ----
           end if;
  
           declare
!             Index : constant Assoc_Index := Find_Assoc (Match, FF);
!             Assoc : Assoc_Rec renames Match.Assocs (Index);
              pragma Assert (Defining_Entity (Assoc.An_Formal) = FF);
  
              From_Actual : constant Node_Id :=
!               Match.Assocs (Inferred_From).Actual.Name_Exp;
  
           begin
              Assoc.Info_Inferred_Actual := AA;
*************** package body Sem_Ch12 is
*** 2096,2118 ****
  
                 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
--- 2133,2155 ----
  
                 if Debug_Flag_Underscore_II then
                    Inference_Msg
!                     (Match.Gen_Unit,
!                      Inferred_To   => Assoc,
!                      Inferred_From => Match.Assocs (Assoc.Inferred_From),
!                      Was_Inferred  => True);
                 end if;
              end if;
           end;
        end Maybe_Infer_One;
  
!       -----------------------
!       -- Infer_From_Access --
!       -----------------------
  
        procedure Infer_From_Access
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id)
        is
        begin
*************** package body Sem_Ch12 is
*** 2123,2129 ****
                 AA : constant Entity_Id := Designated_Type (A_Full);
              begin
                 Maybe_Infer_One
!                  (Gen_Assocs,
                   FF,
                   AA,
                   Inferred_From => Index,
--- 2160,2166 ----
                 AA : constant Entity_Id := Designated_Type (A_Full);
              begin
                 Maybe_Infer_One
!                  (Match,
                   FF,
                   AA,
                   Inferred_From => Index,
*************** package body Sem_Ch12 is
*** 2132,2141 ****
           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
--- 2169,2182 ----
           end if;
        end Infer_From_Access;
  
+       ----------------------
+       -- Infer_From_Array --
+       ----------------------
+ 
        procedure Infer_From_Array
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id)
        is
        begin
*************** package body Sem_Ch12 is
*** 2149,2155 ****
                 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,
--- 2190,2196 ----
                 while Present (F_Index_Type) and then Present (A_Index_Type)
                 loop
                    Maybe_Infer_One
!                     (Match,
                       Etype (F_Index_Type),
                       Etype (A_Index_Type),
                       Inferred_From => Index,
*************** package body Sem_Ch12 is
*** 2167,2173 ****
                   Component_Type (A_Full);
              begin
                 Maybe_Infer_One
!                  (Gen_Assocs,
                    F_Comp_Type,
                    A_Comp_Type,
                    Inferred_From => Index,
--- 2208,2214 ----
                   Component_Type (A_Full);
              begin
                 Maybe_Infer_One
!                  (Match,
                    F_Comp_Type,
                    A_Comp_Type,
                    Inferred_From => Index,
*************** package body Sem_Ch12 is
*** 2176,2185 ****
           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
--- 2217,2230 ----
           end if;
        end Infer_From_Array;
  
+       ------------------------------
+       -- Infer_From_Discriminated --
+       ------------------------------
+ 
        procedure Infer_From_Discriminated
!         (Match  : in out Match_Rec;
!          Index  : Assoc_Index;
!          F      : Node_Id;
           A_Full : Entity_Id)
        is
        begin
*************** package body Sem_Ch12 is
*** 2195,2201 ****
              begin
                 while Present (F_Discrim) loop
                    Maybe_Infer_One
!                     (Gen_Assocs,
                       Etype (F_Discrim),
                       Etype (A_Discrim),
                       Inferred_From => Index,
--- 2240,2246 ----
              begin
                 while Present (F_Discrim) loop
                    Maybe_Infer_One
!                     (Match,
                       Etype (F_Discrim),
                       Etype (A_Discrim),
                       Inferred_From => Index,
*************** package body Sem_Ch12 is
*** 2209,2231 ****
           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.
--- 2254,2280 ----
           end if;
        end Infer_From_Discriminated;
  
!       -------------------
!       -- Infer_Actuals --
!       -------------------
  
!       --  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.
  
+       procedure Infer_Actuals (Match : in out Match_Rec) is
        begin
           --  For each parameter, check whether we can infer FROM that one TO
           --  other ones.
*************** package body Sem_Ch12 is
*** 2239,2250 ****
           --  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
--- 2288,2299 ----
           --  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 Match.Assocs'Range loop -- NB: "reverse"
!             if Match.Assocs (Index).Actual.Kind = Name_Exp then
                 declare
!                   F : constant Node_Id := Match.Assocs (Index).An_Formal;
                    A_E : constant Node_Id :=
!                     Match.Assocs (Index).Actual.Name_Exp;
                    A_Full : Entity_Id := Empty;
                 begin
                    if Nkind (A_E) in N_Has_Entity then
*************** package body Sem_Ch12 is
*** 2263,2269 ****
                    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
--- 2312,2318 ----
                    then
                       case Ekind (Defining_Entity (F)) is
                          when E_Access_Type | E_General_Access_Type =>
!                            Infer_From_Access (Match, Index, F, A_Full);
  
                          when E_Access_Subtype
                             | E_Access_Attribute_Type
*************** package body Sem_Ch12 is
*** 2273,2279 ****
                             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;
--- 2322,2328 ----
                             raise Program_Error;
  
                          when E_Array_Type | E_Array_Subtype =>
!                            Infer_From_Array (Match, Index, F, A_Full);
  
                          when E_String_Literal_Subtype =>
                             raise Program_Error;
*************** package body Sem_Ch12 is
*** 2282,2294 ****
                             null;
                       end case;
  
!                      Infer_From_Discriminated (Gen_Assocs, Index, F, A_Full);
                    end if;
                 end;
              end if;
           end loop;
        end Infer_Actuals;
- 
     end Associations;
  
     ---------------------------
--- 2331,2342 ----
                             null;
                       end case;
  
!                      Infer_From_Discriminated (Match, Index, F, A_Full);
                    end if;
                 end;
              end if;
           end loop;
        end Infer_Actuals;
     end Associations;
  
     ---------------------------
*************** package body Sem_Ch12 is
*** 2315,2360 ****
     --------------------------
  
     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;
--- 2363,2423 ----
     --------------------------
  
     function Analyze_Associations
!      (N                : Node_Id;
!       Formals          : List_Id;
!       F_Copy           : List_Id;
!       Parent_Installed : Boolean) return List_Id
     is
        use Associations;
  
!       Actuals_To_Freeze : constant Elist_Id := New_Elmt_List;
!       Default_Actuals   : constant List_Id  := New_List;
!       Result_Renamings  : constant List_Id  := New_List;
        --  To be returned. Includes "renamings" broadly interpreted
        --  (e.g. subtypes are used for types).
  
!       Match : constant Match_Rec := Match_Assocs (N, Formals, F_Copy);
  
     begin
!       if Nkind (N) in N_Generic_Instantiation and then Is_Structural (N) then
!          Analyze_Structural_Associations (N, Match);
! 
!          --  Bail out if the instantiation has been turned into something else
! 
!          if Nkind (N) not in N_Generic_Instantiation then
!             return Result_Renamings;
!          end if;
!       end if;
! 
!       for Index in Match.Assocs'Range loop
           declare
!             Assoc : Assoc_Rec renames Match.Assocs (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
!                  (N,
!                   Assoc,
!                   Parent_Installed,
!                   Result_Renamings,
!                   Default_Actuals,
!                   Actuals_To_Freeze);
              end if;
           end;
        end loop;
*************** package body Sem_Ch12 is
*** 2365,2373 ****
  
        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;
--- 2428,2437 ----
  
        declare
           Elmt : Elmt_Id := First_Elmt (Actuals_To_Freeze);
+ 
        begin
           while Present (Elmt) loop
!             Freeze_Before (N, Node (Elmt));
              Next_Elmt (Elmt);
           end loop;
        end;
*************** package body Sem_Ch12 is
*** 2387,2403 ****
                 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;
--- 2451,2467 ----
                 Next (Default);
              end loop;
  
!             if No (Generic_Associations (N)) then
!                Set_Generic_Associations (N, Default_Actuals);
              else
!                Append_List_To (Generic_Associations (N), Default_Actuals);
              end if;
           end;
        end if;
  
!       Note_Potential_Inference (N, Match);
  
!       Check_Fixed_Point_Warning (Match, Result_Renamings);
  
        return Result_Renamings;
     end Analyze_Associations;
*************** package body Sem_Ch12 is
*** 2407,2415 ****
     -----------------------------
  
     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)
--- 2471,2479 ----
     -----------------------------
  
     procedure Analyze_One_Association
!      (N                 : Node_Id;
!       Assoc             : Associations.Assoc_Rec;
!       Parent_Installed  : Boolean;
        Result_Renamings  : List_Id;
        Default_Actuals   : List_Id;
        Actuals_To_Freeze : Elist_Id)
*************** package body Sem_Ch12 is
*** 2481,2493 ****
  
                 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;
  
--- 2545,2557 ----
  
                 if No (Match) and then not Inside_A_Generic then
                    Append_To (Default_Actuals,
!                     Make_Generic_Association (Sloc (N),
                        Selector_Name =>
                          New_Occurrence_Of
                            (Defining_Identifier
!                             (Assoc.Un_Formal), Sloc (N)),
                        Explicit_Generic_Actual_Parameter =>
!                         New_Copy_Tree (Expression (Assoc.Un_Formal))));
                 end if;
              end if;
  
*************** package body Sem_Ch12 is
*** 2606,2612 ****
                 --  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
--- 2670,2676 ----
                 --  unless this is a rewritten formal package, or the
                 --  formal is an Ada 2012 formal incomplete type.
  
!                if Nkind (N) = N_Formal_Package_Declaration
                   or else
                     (Ada_Version >= Ada_2012
                       and then
*************** package body Sem_Ch12 is
*** 2676,2682 ****
              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
--- 2740,2749 ----
              else
                 Append_To (Result_Renamings,
                   Instantiate_Formal_Subprogram
!                    (Assoc.Un_Formal,
!                     Match,
!                     Assoc.An_Formal,
!                     Parent_Installed));
  
                 --  If formal subprogram has contracts, create wrappers
                 --  for it. This is an expansion activity that cannot
*************** package body Sem_Ch12 is
*** 2692,2698 ****
                 --  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))
  
--- 2759,2765 ----
                 --  An instantiation is a freeze point for the actuals,
                 --  unless this is a rewritten formal package.
  
!                if Nkind (N) /= N_Formal_Package_Declaration
                   and then Nkind (Match) = N_Identifier
                   and then Is_Subprogram (Entity (Match))
  
*************** package body Sem_Ch12 is
*** 2710,2716 ****
                   --  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
--- 2777,2783 ----
                   --  subprograms defined in Standard which are used
                   --  as generic actuals.
  
!                  and then In_Same_Code_Unit (Entity (Match), N)
                   and then Has_Fully_Defined_Profile (Entity (Match))
                 then
                    --  Mark the subprogram as having a delayed freeze
*************** package body Sem_Ch12 is
*** 2733,2743 ****
  
                 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;
  
--- 2800,2810 ----
  
                 begin
                    Append_To (Default_Actuals,
!                     Make_Generic_Association (Sloc (N),
                        Selector_Name                     =>
!                         New_Occurrence_Of (Subp, Sloc (N)),
                        Explicit_Generic_Actual_Parameter =>
!                         New_Occurrence_Of (Subp, Sloc (N))));
                 end;
              end if;
  
*************** package body Sem_Ch12 is
*** 2850,2862 ****
  
                    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;
  
--- 2917,2929 ----
  
                    if not Expander_Active
                      or else not Has_Completion (Actual)
!                     or else not In_Same_Source_Unit (N, Actual)
                      or else Is_Frozen (Actual)
                      or else
                        (Present (Renamed_Entity (Actual))
                          and then
                            not In_Same_Source_Unit
!                                 (N, (Renamed_Entity (Actual))))
                    then
                       null;
  
*************** package body Sem_Ch12 is
*** 2868,2874 ****
  
                       Needs_Freezing := True;
  
!                      P := Parent (I_Node);
                       while Nkind (P) /= N_Compilation_Unit loop
                          if Nkind (P) = N_Handled_Sequence_Of_Statements
                          then
--- 2935,2941 ----
  
                       Needs_Freezing := True;
  
!                      P := Parent (N);
                       while Nkind (P) /= N_Compilation_Unit loop
                          if Nkind (P) = N_Handled_Sequence_Of_Statements
                          then
*************** package body Sem_Ch12 is
*** 2908,2914 ****
        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,
--- 2975,2981 ----
        end case;
  
        --  Check for correct use of Ghost entities in generic
!       --  instantiations (SPARK RM 6.9(13)).
  
        Check_Ghost_Context_In_Generic_Association
          (Actual => Match,
*************** package body Sem_Ch12 is
*** 3133,3139 ****
           end if;
        end if;
  
!       if Subtype_Mark (Def) <= Empty_Or_Error then
           pragma Assert (Serious_Errors_Detected > 0);
           --  avoid passing bad argument to Entity
           return;
--- 3200,3206 ----
           end if;
        end if;
  
!       if Subtype_Mark (Def) in Empty | Error then
           pragma Assert (Serious_Errors_Detected > 0);
           --  avoid passing bad argument to Entity
           return;
*************** package body Sem_Ch12 is
*** 3288,3294 ****
     ---------------------------------------
  
     procedure Analyze_Formal_Object_Declaration (N : Node_Id) is
!       E  : constant Node_Id := Default_Expression (N);
        Id : constant Node_Id := Defining_Identifier (N);
  
        K                : Entity_Kind;
--- 3355,3361 ----
     ---------------------------------------
  
     procedure Analyze_Formal_Object_Declaration (N : Node_Id) is
!       E  : constant Node_Id := Expression (N);
        Id : constant Node_Id := Defining_Identifier (N);
  
        K                : Entity_Kind;
*************** package body Sem_Ch12 is
*** 3371,3377 ****
           end if;
  
           if Present (E) then
!             Preanalyze_Spec_Expression (E, T);
  
              --  The default for a ghost generic formal IN parameter of
              --  access-to-variable type should be a ghost object (SPARK
--- 3438,3444 ----
           end if;
  
           if Present (E) then
!             Preanalyze_And_Resolve_Spec_Expression (E, T);
  
              --  The default for a ghost generic formal IN parameter of
              --  access-to-variable type should be a ghost object (SPARK
*************** package body Sem_Ch12 is
*** 3497,3503 ****
        --  List of primitives made temporarily visible in the instantiation
        --  to match the visibility of the formal type.
  
!       function Build_Local_Package return Node_Id;
        --  The formal package is rewritten so that its parameters are replaced
        --  with corresponding declarations. For parameters with bona fide
        --  associations these declarations are created by Analyze_Associations
--- 3564,3570 ----
        --  List of primitives made temporarily visible in the instantiation
        --  to match the visibility of the formal type.
  
!       function Build_Local_Package (Parent_Installed : Boolean) return Node_Id;
        --  The formal package is rewritten so that its parameters are replaced
        --  with corresponding declarations. For parameters with bona fide
        --  associations these declarations are created by Analyze_Associations
*************** package body Sem_Ch12 is
*** 3509,3515 ****
        -- Build_Local_Package --
        -------------------------
  
!       function Build_Local_Package return Node_Id is
           Decls     : List_Id;
           Pack_Decl : Node_Id;
  
--- 3576,3583 ----
        -- Build_Local_Package --
        -------------------------
  
!       function Build_Local_Package (Parent_Installed : Boolean) return Node_Id
!       is
           Decls     : List_Id;
           Pack_Decl : Node_Id;
  
*************** package body Sem_Ch12 is
*** 3579,3593 ****
                                 Instantiating => True);
  
              begin
!                Generic_Renamings.Set_Last (0);
                 Generic_Renamings_HTable.Reset;
                 Instantiation_Node := N;
  
                 Decls :=
                   Analyze_Associations
!                    (I_Node  => Original_Node (N),
!                     Formals => Generic_Formal_Declarations (Act_Tree),
!                     F_Copy  => Generic_Formal_Declarations (Gen_Decl));
  
                 Vis_Prims_List := Check_Hidden_Primitives (Decls);
              end;
--- 3647,3662 ----
                                 Instantiating => True);
  
              begin
!                Generic_Renamings.Clear;
                 Generic_Renamings_HTable.Reset;
                 Instantiation_Node := N;
  
                 Decls :=
                   Analyze_Associations
!                    (N                => Original_Node (N),
!                     Formals          => Generic_Formal_Declarations (Act_Tree),
!                     F_Copy           => Generic_Formal_Declarations (Gen_Decl),
!                     Parent_Installed => Parent_Installed);
  
                 Vis_Prims_List := Check_Hidden_Primitives (Decls);
              end;
*************** package body Sem_Ch12 is
*** 3601,3609 ****
           if No (Visible_Declarations (Specification (Pack_Decl))) then
              Set_Visible_Declarations (Specification (Pack_Decl), Decls);
           else
!             Insert_List_Before
!               (First (Visible_Declarations (Specification (Pack_Decl))),
!                  Decls);
           end if;
  
           return Pack_Decl;
--- 3670,3677 ----
           if No (Visible_Declarations (Specification (Pack_Decl))) then
              Set_Visible_Declarations (Specification (Pack_Decl), Decls);
           else
!             Prepend_List_To
!               (Visible_Declarations (Specification (Pack_Decl)), Decls);
           end if;
  
           return Pack_Decl;
*************** package body Sem_Ch12 is
*** 3723,3729 ****
        --  internal declarations.
  
        begin
!          New_N := Build_Local_Package;
  
        --  If there are errors in the parameter list, Analyze_Associations
        --  raises Instantiation_Error. Patch the declaration to prevent further
--- 3791,3797 ----
        --  internal declarations.
  
        begin
!          New_N := Build_Local_Package (Parent_Installed);
  
        --  If there are errors in the parameter list, Analyze_Associations
        --  raises Instantiation_Error. Patch the declaration to prevent further
*************** package body Sem_Ch12 is
*** 3809,3814 ****
--- 3877,3883 ----
           Renaming_In_Par :=
             Make_Defining_Identifier (Loc, Chars (Gen_Unit));
           Mutate_Ekind (Renaming_In_Par, E_Package);
+          Set_Is_Internal (Renaming_In_Par);
           Set_Is_Not_Self_Hidden (Renaming_In_Par);
           Set_Etype (Renaming_In_Par, Standard_Void_Type);
           Set_Scope (Renaming_In_Par, Parent_Instance);
*************** package body Sem_Ch12 is
*** 4062,4068 ****
           end if;
  
           --  The default for a ghost generic formal procedure should be a ghost
!          --  procedure (SPARK RM 6.9(13)).
  
           if Ekind (Nam) = E_Procedure then
              declare
--- 4131,4137 ----
           end if;
  
           --  The default for a ghost generic formal procedure should be a ghost
!          --  procedure (SPARK RM 6.9(16)).
  
           if Ekind (Nam) = E_Procedure then
              declare
*************** package body Sem_Ch12 is
*** 4195,4201 ****
        elsif Present (Expr) then
           Push_Scope (Nam);
           Install_Formals (Nam);
!          Preanalyze_Spec_Expression (Expr, Etype (Nam));
           End_Scope;
        end if;
  
--- 4264,4270 ----
        elsif Present (Expr) then
           Push_Scope (Nam);
           Install_Formals (Nam);
!          Preanalyze_And_Resolve_Spec_Expression (Expr, Etype (Nam));
           End_Scope;
        end if;
  
*************** package body Sem_Ch12 is
*** 4810,4827 ****
        -------------------------------
  
        function Needs_Body_Instantiated (Gen_Unit : Entity_Id) return Boolean is
        begin
           --  No need to instantiate bodies in generic units
  
!          if Is_Generic_Unit (Cunit_Entity (Main_Unit)) then
              return False;
-          end if;
  
           --  If the instantiation is in the main unit, then the body is needed
  
!          if Is_In_Main_Unit (N) then
              return True;
-          end if;
  
           --  In GNATprove mode, never instantiate bodies outside of the main
           --  unit, as it does not use frontend/backend inlining in the way that
--- 4879,4916 ----
        -------------------------------
  
        function Needs_Body_Instantiated (Gen_Unit : Entity_Id) return Boolean is
+          S : constant Entity_Id := Scope (Gen_Unit);
+ 
        begin
+          --  If the generic package being instantiated is declared within
+          --  a formal package, and we are in the context of the enclosing
+          --  generic unit of the formal package, then there is no body to
+          --  instantiate until the enclosing generic unit is instantiated
+          --  with an actual for the formal package.
+ 
+          if Is_Generic_Instance (S)
+            and then
+              Nkind (Original_Node (Unit_Declaration_Node (S))) =
+                N_Formal_Package_Declaration
+            and then In_Open_Scopes (Scope (S))
+          then
+             return False;
+ 
+          --  If the instantiation is in the auxiliary declarations of the main
+          --  unit, then the body is needed, even if the main unit is generic.
+ 
+          elsif Parent (N) = Aux_Decls_Node (Cunit (Main_Unit)) then
+             return True;
+ 
           --  No need to instantiate bodies in generic units
  
!          elsif Is_Generic_Unit (Cunit_Entity (Main_Unit)) then
              return False;
  
           --  If the instantiation is in the main unit, then the body is needed
  
!          elsif Is_In_Main_Unit (N) then
              return True;
  
           --  In GNATprove mode, never instantiate bodies outside of the main
           --  unit, as it does not use frontend/backend inlining in the way that
*************** package body Sem_Ch12 is
*** 4829,4843 ****
           --  contrary, such instantiations may bring artificial constraints,
           --  as for example such bodies may require preprocessing.
  
!          if GNATprove_Mode then
              return False;
-          end if;
  
           --  If not, then again no need to instantiate bodies in generic units
  
!          if Is_Generic_Unit (Cunit_Entity (Get_Code_Unit (N))) then
              return False;
-          end if;
  
           --  Here we have a special handling for back-end inlining: if inline
           --  processing is required, then we unconditionally want to have the
--- 4918,4930 ----
           --  contrary, such instantiations may bring artificial constraints,
           --  as for example such bodies may require preprocessing.
  
!          elsif GNATprove_Mode then
              return False;
  
           --  If not, then again no need to instantiate bodies in generic units
  
!          elsif Is_Generic_Unit (Cunit_Entity (Get_Code_Unit (N))) then
              return False;
  
           --  Here we have a special handling for back-end inlining: if inline
           --  processing is required, then we unconditionally want to have the
*************** package body Sem_Ch12 is
*** 4847,4871 ****
           --  these instantiations are only performed on demand when back-end
           --  inlining is enabled, so this causes very little extra work.
  
!          if Inline_Processing_Required and then Back_End_Inlining then
              return True;
-          end if;
  
           --  We want to have the bodies instantiated in non-main units if
           --  they might contribute inlined subprograms.
  
!          return Might_Inline_Subp (Gen_Unit);
        end Needs_Body_Instantiated;
  
        --  Local declarations
  
!       Gen_Id         : constant Node_Id    := Name (N);
!       Inst_Id        : constant Entity_Id  := Defining_Entity (N);
!       Is_Actual_Pack : constant Boolean    := Is_Internal (Inst_Id);
!       Loc            : constant Source_Ptr := Sloc (N);
! 
!       Saved_GM   : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR  : constant Node_Id         := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM   : constant SPARK_Mode_Type := SPARK_Mode;
--- 4934,4957 ----
           --  these instantiations are only performed on demand when back-end
           --  inlining is enabled, so this causes very little extra work.
  
!          elsif Inline_Processing_Required and then Back_End_Inlining then
              return True;
  
           --  We want to have the bodies instantiated in non-main units if
           --  they might contribute inlined subprograms.
  
!          else
!             return Might_Inline_Subp (Gen_Unit);
!          end if;
        end Needs_Body_Instantiated;
  
        --  Local declarations
  
!       Gen_Id     : constant Node_Id    := Name (N);
!       Loc        : constant Source_Ptr := Sloc (N);
!       Is_Abbrev  : constant Boolean    :=
!                      Is_Abbreviated_Instance (Defining_Entity (N));
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM   : constant SPARK_Mode_Type := SPARK_Mode;
*************** package body Sem_Ch12 is
*** 4876,4882 ****
        --  Save style check mode for restore on exit
  
        Act_Decl         : Node_Id;
-       Act_Decl_Name    : Node_Id;
        Act_Decl_Id      : Entity_Id;
        Act_Spec         : Node_Id;
        Act_Tree         : Node_Id;
--- 4962,4967 ----
*************** package body Sem_Ch12 is
*** 4917,4945 ****
  
        Instantiation_Node := N;
  
!       --  Case of instantiation of a generic package
! 
!       if Nkind (N) = N_Package_Instantiation then
!          Act_Decl_Id := New_Copy (Defining_Entity (N));
! 
!          if Nkind (Defining_Unit_Name (N)) = N_Defining_Program_Unit_Name then
!             Act_Decl_Name :=
!               Make_Defining_Program_Unit_Name (Loc,
!                 Name                =>
!                   New_Copy_Tree (Name (Defining_Unit_Name (N))),
!                 Defining_Identifier => Act_Decl_Id);
!          else
!             Act_Decl_Name := Act_Decl_Id;
!          end if;
! 
!       --  Case of instantiation of a formal package
! 
!       else
!          Act_Decl_Id   := Defining_Identifier (N);
!          Act_Decl_Name := Act_Decl_Id;
!       end if;
! 
!       Generate_Definition (Act_Decl_Id);
        Mutate_Ekind (Act_Decl_Id, E_Package);
        Set_Is_Not_Self_Hidden (Act_Decl_Id);
  
--- 5002,5008 ----
  
        Instantiation_Node := N;
  
!       Act_Decl_Id := New_Copy (Defining_Entity (N));
        Mutate_Ekind (Act_Decl_Id, E_Package);
        Set_Is_Not_Self_Hidden (Act_Decl_Id);
  
*************** package body Sem_Ch12 is
*** 4949,4962 ****
  
        Preanalyze_Actuals (N, Act_Decl_Id);
  
-       --  Turn off style checking in instances. If the check is enabled on the
-       --  generic unit, a warning in an instance would just be noise. If not
-       --  enabled on the generic, then a warning in an instance is just wrong.
-       --  This must be done after analyzing the actuals, which do come from
-       --  source and are subject to style checking.
- 
-       Style_Check := False;
- 
        Init_Env;
        Env_Installed := True;
  
--- 5012,5017 ----
*************** package body Sem_Ch12 is
*** 4965,4980 ****
        --  inherited from formal packages of parent units, and these are
        --  constructed when the parents are installed.
  
!       Generic_Renamings.Set_Last (0);
        Generic_Renamings_HTable.Reset;
  
        --  Except for an abbreviated instance created to check a formal package,
        --  install the parent if this is a generic child unit.
  
!       if not Is_Abbreviated_Instance (Inst_Id) then
           Check_Generic_Child_Unit (Gen_Id, Parent_Installed);
        end if;
  
        Gen_Unit := Entity (Gen_Id);
  
        --  A package instantiation is Ghost when it is subject to pragma Ghost
--- 5020,5043 ----
        --  inherited from formal packages of parent units, and these are
        --  constructed when the parents are installed.
  
!       Generic_Renamings.Clear;
        Generic_Renamings_HTable.Reset;
  
        --  Except for an abbreviated instance created to check a formal package,
        --  install the parent if this is a generic child unit.
  
!       if not Is_Abbrev then
           Check_Generic_Child_Unit (Gen_Id, Parent_Installed);
        end if;
  
+       --  Turn off style checking in instances. If the check is enabled on the
+       --  generic unit, a warning in an instance would just be noise. If not
+       --  enabled on the generic, then a warning in an instance is just wrong.
+       --  This must be done after analyzing the actuals and possibly installing
+       --  the parent, which come from source and are subject to style checking.
+ 
+       Style_Check := False;
+ 
        Gen_Unit := Entity (Gen_Id);
  
        --  A package instantiation is Ghost when it is subject to pragma Ghost
*************** package body Sem_Ch12 is
*** 5074,5082 ****
           goto Leave;
  
        else
-          Mutate_Ekind (Inst_Id, E_Package);
-          Set_Scope (Inst_Id, Current_Scope);
- 
           --  If the context of the instance is subject to SPARK_Mode "off" or
           --  the annotation is altogether missing, set the global flag which
           --  signals Analyze_Pragma to ignore all SPARK_Mode pragmas within
--- 5137,5142 ----
*************** package body Sem_Ch12 is
*** 5114,5135 ****
           --  If this is the instance created to validate an actual package,
           --  only the formals matter, do not examine the package spec itself.
  
!          if Is_Actual_Pack then
              Set_Visible_Declarations (Act_Spec, New_List);
              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);
           Set_Is_Generic_Instance (Act_Decl_Id);
           Set_Generic_Parent (Act_Spec, Gen_Unit);
  
           --  References to the generic in its own declaration or its body are
--- 5174,5235 ----
           --  If this is the instance created to validate an actual package,
           --  only the formals matter, do not examine the package spec itself.
  
!          if Is_Abbrev then
              Set_Visible_Declarations (Act_Spec, New_List);
              Set_Private_Declarations (Act_Spec, New_List);
           end if;
  
           Renamings :=
             Analyze_Associations
!              (N                => N,
!               Formals          => Generic_Formal_Declarations (Act_Tree),
!               F_Copy           => Generic_Formal_Declarations (Gen_Decl),
!               Parent_Installed => Parent_Installed);
! 
!          --  Bail out if the instantiation has been turned into something else
! 
!          if Nkind (N) /= N_Package_Instantiation then
!             if Parent_Installed then
!                Remove_Parent;
!             end if;
! 
!             Restore_Env;
!             goto Leave;
!          end if;
  
           Vis_Prims_List := Check_Hidden_Primitives (Renamings);
  
+          --  Set minimal decoration on the original entity
+ 
+          Mutate_Ekind (Defining_Entity (N), E_Package);
+          Set_Scope (Defining_Entity (N), Current_Scope);
+ 
+          --  From now on only Act_Decl_Id matters. If was copied from the
+          --  original entity earlier but, if the instance is structural,
+          --  the latter has been changed, so adjust it accordingly.
+ 
+          if Chars (Defining_Entity (N)) /= Chars (Act_Decl_Id) then
+             pragma Assert (Is_Structural (N));
+             Set_Incomplete_Actuals
+               (Defining_Entity (N), Incomplete_Actuals (Act_Decl_Id));
+             Act_Decl_Id := New_Copy (Defining_Entity (N));
+             Set_Is_Not_Self_Hidden (Act_Decl_Id);
+          end if;
+ 
           Set_Instance_Env (Gen_Unit, Act_Decl_Id);
           Set_Is_Generic_Instance (Act_Decl_Id);
+          Generate_Definition (Act_Decl_Id);
+ 
+          if Nkind (Defining_Unit_Name (N)) = N_Defining_Program_Unit_Name then
+             Set_Defining_Unit_Name (Act_Spec,
+               Make_Defining_Program_Unit_Name (Loc,
+                 Name                =>
+                   New_Copy_Tree (Name (Defining_Unit_Name (N))),
+                 Defining_Identifier => Act_Decl_Id));
+          else
+             Set_Defining_Unit_Name (Act_Spec, Act_Decl_Id);
+          end if;
+ 
           Set_Generic_Parent (Act_Spec, Gen_Unit);
  
           --  References to the generic in its own declaration or its body are
*************** package body Sem_Ch12 is
*** 5273,5279 ****
                and then (not Is_Child_Unit (Gen_Unit)
                           or else not Is_Generic_Unit (Scope (Gen_Unit)))
                and then Might_Inline_Subp (Gen_Unit)
!               and then not Is_Actual_Pack
              then
                 if not Back_End_Inlining
                   and then (Front_End_Inlining or else Has_Inline_Always)
--- 5373,5379 ----
                and then (not Is_Child_Unit (Gen_Unit)
                           or else not Is_Generic_Unit (Scope (Gen_Unit)))
                and then Might_Inline_Subp (Gen_Unit)
!               and then not Is_Abbrev
              then
                 if not Back_End_Inlining
                   and then (Front_End_Inlining or else Has_Inline_Always)
*************** package body Sem_Ch12 is
*** 5318,5365 ****
                  or else Enclosing_Body_Present
                  or else Present (Corresponding_Body (Gen_Decl)))
                 and then Needs_Body_Instantiated (Gen_Unit)
!                and then not Is_Actual_Pack
                 and then not Inline_Now
                 and then (Operating_Mode = Generate_Code
                            or else (Operating_Mode = Check_Semantics
                                      and then GNATprove_Mode));
- 
-             --  If front-end inlining is enabled or there are any subprograms
-             --  marked with Inline_Always, do not instantiate body when within
-             --  a generic context.
- 
-             if not Back_End_Inlining
-               and then (Front_End_Inlining or else Has_Inline_Always)
-               and then not Expander_Active
-             then
-                Needs_Body := False;
-             end if;
- 
-             --  If the current context is generic, and the package being
-             --  instantiated is declared within a formal package, there is no
-             --  body to instantiate until the enclosing generic is instantiated
-             --  and there is an actual for the formal package. If the formal
-             --  package has parameters, we build a regular package instance for
-             --  it, that precedes the original formal package declaration.
- 
-             if In_Open_Scopes (Scope (Scope (Gen_Unit))) then
-                declare
-                   Decl : constant Node_Id :=
-                            Original_Node
-                              (Unit_Declaration_Node (Scope (Gen_Unit)));
-                begin
-                   if Nkind (Decl) = N_Formal_Package_Declaration
-                     or else (Nkind (Decl) = N_Package_Declaration
-                               and then Is_List_Member (Decl)
-                               and then Present (Next (Decl))
-                               and then
-                                 Nkind (Next (Decl)) =
-                                                 N_Formal_Package_Declaration)
-                   then
-                      Needs_Body := False;
-                   end if;
-                end;
-             end if;
           end;
  
           --  For RCI unit calling stubs, we omit the instance body if the
--- 5418,5428 ----
                  or else Enclosing_Body_Present
                  or else Present (Corresponding_Body (Gen_Decl)))
                 and then Needs_Body_Instantiated (Gen_Unit)
!                and then not Is_Abbrev
                 and then not Inline_Now
                 and then (Operating_Mode = Generate_Code
                            or else (Operating_Mode = Check_Semantics
                                      and then GNATprove_Mode));
           end;
  
           --  For RCI unit calling stubs, we omit the instance body if the
*************** package body Sem_Ch12 is
*** 5602,5608 ****
           Check_Formal_Packages (Act_Decl_Id);
  
           Restore_Hidden_Primitives (Vis_Prims_List);
!          Restore_Private_Views (Act_Decl_Id);
  
           Inherit_Context (Gen_Decl, N);
  
--- 5665,5671 ----
           Check_Formal_Packages (Act_Decl_Id);
  
           Restore_Hidden_Primitives (Vis_Prims_List);
!          Restore_Private_Views (Act_Decl_Id, Is_Package => True);
  
           Inherit_Context (Gen_Decl, N);
  
*************** package body Sem_Ch12 is
*** 5654,5660 ****
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
        Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
        Style_Check := Saved_Style_Check;
  
--- 5717,5723 ----
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_Ghost_Config);
        Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
        Style_Check := Saved_Style_Check;
  
*************** package body Sem_Ch12 is
*** 5669,5675 ****
           end if;
  
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
           Style_Check := Saved_Style_Check;
     end Analyze_Package_Instantiation;
--- 5732,5738 ----
           end if;
  
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_Ghost_Config);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
           Style_Check := Saved_Style_Check;
     end Analyze_Package_Instantiation;
*************** package body Sem_Ch12 is
*** 5986,5991 ****
--- 6049,6527 ----
        Analyze_Subprogram_Instantiation (N, E_Procedure);
     end Analyze_Procedure_Instantiation;
  
+    -------------------------------------
+    -- Analyze_Structural_Associations --
+    -------------------------------------
+ 
+    procedure Analyze_Structural_Associations
+      (N     : Node_Id;
+       Match : Associations.Match_Rec)
+    is
+       use Associations;
+ 
+       Loc : constant Source_Ptr := Sloc (N);
+       --  The source location of the instantiation
+ 
+       type Accessibility_Depth is record
+          Global : Uint;
+          Local  : Uint;
+       end record;
+       --  The accessibility depth of an entity is the depth of the outermost
+       --  scope from which the entity can be accessed at run time. It's zero
+       --  for library-level entities since they can be accessed from Standard.
+ 
+       --  However it can be accessed at run time only after being elaborated;
+       --  for a library-level entity, this means that it can be accessed from
+       --  Standard only after its enclosing library unit is elaborated, which
+       --  means that it can be accessed from all the other library units (that
+       --  have a dependence on this enclosing library unit) as if it was itself
+       --  declared in Standard, but not from this enclosing library unit.
+ 
+       --  Global contains the accessibility depth as computed from outside the
+       --  library or program unit where the entity is declared.
+ 
+       --  Local contains the accessibility depth as computed from the current
+       --  scope, which may be different from Global if the scope is within the
+       --  library or program unit where the entity is declared.
+ 
+       procedure Append_Entity_Name (B : in out Bounded_String; E : Entity_Id);
+       --  Append E's name to B
+ 
+       procedure Append_Expression (B : in out Bounded_String; N : Node_Id);
+       --  Append an encoding of N, a compile-time known expression, to B
+ 
+       function Get_Actual_Subtype (N : Node_Id) return Entity_Id;
+       --  Return the actual subtype of the formal object declared by N, which
+       --  is an N_Formal_Object_Declaration. It's the declared subtype of the
+       --  formal object if it is not a generic type, otherwise it's the actual
+       --  corresponding to this generic type in the instantiation.
+ 
+       function Get_Entity_Depth (E : Entity_Id) return Accessibility_Depth;
+       --  Return the accessibility depth of E
+ 
+       procedure Structural_Instantiation_Error (N : Node_Id);
+       --  Output an error for the specified structural instantiation
+ 
+       function Max (L, R : Accessibility_Depth) return Accessibility_Depth is
+         (Global => UI_Max (L.Global, R.Global),
+          Local  => UI_Max (L.Local,  R.Local));
+       --  Return a pair made up of the maximum value of each component
+ 
+       function OK_For_Structural_Instantiation (E : Entity_Id) return Boolean;
+       --  Return True if the generic unit E is OK for structural instantiation
+       --  and False if it is not, giving an error in the latter case.
+ 
+       procedure Rewrite_As_Renaming (N : Node_Id; E : Entity_Id);
+       --  Rewrite N as a renaming of E
+ 
+       ------------------------
+       -- Append_Entity_Name --
+       ------------------------
+ 
+       procedure Append_Entity_Name (B : in out Bounded_String; E : Entity_Id)
+       is
+       begin
+          if Operating_Mode = Generate_Code then
+             Get_External_Name (E);
+             Append (B, Global_Name_Buffer);
+          else
+             Append (B, 'E');
+             Append (B, Nat (E));
+          end if;
+       end Append_Entity_Name;
+ 
+       -----------------------
+       -- Append_Expression --
+       -----------------------
+ 
+       procedure Append_Expression (B : in out Bounded_String; N : Node_Id) is
+          Typ : constant Entity_Id := Etype (N);
+ 
+       begin
+          if Is_Integer_Type (Typ) then
+             Append (B, 'I');
+             Append (B, UI_Image (Expr_Value (N)));
+ 
+          elsif Is_Real_Type (Typ) then
+             declare
+                Val : constant Ureal := Expr_Value_R (N);
+             begin
+                Append (B, 'R');
+                Append (B, UI_Image (Norm_Num (Val)));
+                Append (B, '_');
+                Append (B, UI_Image (Norm_Den (Val)));
+             end;
+ 
+          elsif Is_Enumeration_Type (Typ) then
+             Append (B, 'E');
+             Append_Entity_Name (B, Expr_Value_E (N));
+ 
+          elsif Is_String_Type (Typ) then
+             Append (B, 'S');
+             Append (B, Strval (Expr_Value_S (N)));
+ 
+          else
+             raise Program_Error;
+          end if;
+       end Append_Expression;
+ 
+       ------------------------
+       -- Get_Actual_Subtype --
+       ------------------------
+ 
+       function Get_Actual_Subtype (N : Node_Id) return Entity_Id is
+          Subt : constant Entity_Id := Entity (Subtype_Mark (N));
+ 
+       begin
+          if not Is_Generic_Type (Subt) then
+             return Subt;
+          end if;
+ 
+          for Index in Match.Assocs'Range loop
+             declare
+                Assoc : Assoc_Rec renames Match.Assocs (Index);
+ 
+             begin
+                if Assoc.Actual.Kind = Name_Exp
+                  and then Nkind (Assoc.An_Formal) = N_Formal_Type_Declaration
+                  and then Defining_Identifier (Assoc.An_Formal) = Subt
+                then
+                   return Entity (Assoc.Actual.Name_Exp);
+                end if;
+             end;
+          end loop;
+ 
+          return Empty;
+       end Get_Actual_Subtype;
+ 
+       ----------------------
+       -- Get_Entity_Depth --
+       ----------------------
+ 
+       function Get_Entity_Depth (E : Entity_Id) return Accessibility_Depth is
+          Global : constant Uint := Scope_Depth (Enclosing_Dynamic_Scope (E));
+          CS     : constant Entity_Id := Current_Scope;
+ 
+          S : Entity_Id := Scope (E);
+ 
+       begin
+          --  Generic formal types are treated as local entities
+ 
+          if Is_Generic_Type (E) then
+             return (Global => Scope_Depth (S), Local => Scope_Depth (S));
+          end if;
+ 
+          --  Compute the accessibility depth from the current scope
+ 
+          while Scope_Depth (S) > Global
+            and then (not Scope_Within_Or_Same (CS, S)
+                       or else
+                         (Ekind (S) = E_Package
+                           and then Is_Generic_Instance (S)
+                           and then Alias (Related_Instance (S)) = CS))
+          loop
+             S := Scope (S);
+          end loop;
+ 
+          return (Global => Global, Local => Scope_Depth (S));
+       end Get_Entity_Depth;
+ 
+       ------------------------------------
+       -- Structural_Instantiation_Error --
+       ------------------------------------
+ 
+       procedure Structural_Instantiation_Error (N : Node_Id) is
+       begin
+          Error_Msg_N ("generic unit cannot be instantiated structurally", N);
+       end Structural_Instantiation_Error;
+ 
+       -------------------------------------
+       -- OK_For_Structural_Instantiation --
+       -------------------------------------
+ 
+       function OK_For_Structural_Instantiation (E : Entity_Id) return Boolean
+       is
+          Formals : constant List_Id :=
+                      Generic_Formal_Declarations (Unit_Declaration_Node (E));
+          Unit_Entity : constant Entity_Id :=
+                          Cunit_Entity (Get_Source_Unit (E));
+ 
+          Formal : Node_Id;
+ 
+       begin
+          --  Check that the generic unit is preelaborated
+ 
+          if Ekind (Unit_Entity) in E_Package | E_Generic_Package
+            and then not Is_Preelaborated (Unit_Entity)
+            and then not Is_Pure (Unit_Entity)
+          then
+             Structural_Instantiation_Error (N);
+             Error_Msg_NE
+               ("\generic unit& is not preelaborated", N, Unit_Entity);
+             return False;
+          end if;
+ 
+          --  Check that there is no generic formal object of mode In Out
+ 
+          Formal := First (Formals);
+          while Present (Formal) loop
+             if Nkind (Formal) = N_Formal_Object_Declaration
+               and then Out_Present (Formal)
+             then
+                Structural_Instantiation_Error (N);
+                Error_Msg_NE
+                  ("\in out formal parameter& not allowed", N,
+                   Defining_Identifier (Formal));
+                return False;
+             end if;
+ 
+             Next (Formal);
+          end loop;
+ 
+          return True;
+       end OK_For_Structural_Instantiation;
+ 
+       -------------------------
+       -- Rewrite_As_Renaming --
+       -------------------------
+ 
+       procedure Rewrite_As_Renaming (N : Node_Id; E : Entity_Id) is
+       begin
+          case Nkind (N) is
+             when N_Function_Instantiation =>
+                Rewrite (N,
+                  Make_Subprogram_Renaming_Declaration (Loc,
+                    Specification =>
+                      Make_Function_Specification (Loc,
+                        Defining_Unit_Name       => Defining_Unit_Name (N),
+                        Parameter_Specifications =>
+                          New_Copy_List
+                            (Parameter_Specifications
+                              (Subprogram_Specification (E))),
+                        Result_Definition        =>
+                          New_Occurrence_Of (Etype (E), Loc)),
+                    Name          => New_Occurrence_Of (E, Loc)));
+ 
+             when N_Procedure_Instantiation =>
+                Rewrite (N,
+                  Make_Subprogram_Renaming_Declaration (Loc,
+                    Specification =>
+                      Make_Procedure_Specification (Loc,
+                        Defining_Unit_Name       => Defining_Unit_Name (N),
+                        Parameter_Specifications =>
+                          New_Copy_List
+                            (Parameter_Specifications
+                              (Subprogram_Specification (E)))),
+                    Name          => New_Occurrence_Of (E, Loc)));
+ 
+             when N_Package_Instantiation =>
+                Rewrite (N,
+                  Make_Package_Renaming_Declaration (Loc,
+                    Defining_Unit_Name => Defining_Unit_Name (N),
+                    Name               => New_Occurrence_Of (E, Loc)));
+ 
+             when others =>
+                raise Program_Error;
+          end case;
+       end Rewrite_As_Renaming;
+ 
+       --  Local variables
+ 
+       Buf   : Bounded_String;
+       Depth : Accessibility_Depth;
+       Ent   : Entity_Id;
+       Nam   : Name_Id;
+       R     : Node_Id;
+       Scop  : Entity_Id;
+ 
+    --  Start of processing for Analyze_Structural_Associations
+ 
+    begin
+       if not OK_For_Structural_Instantiation (Match.Gen_Unit) then
+          return;
+       end if;
+ 
+       --  Compute the name and the scope depth of the structural instance
+ 
+       Append_Entity_Name (Buf, Match.Gen_Unit);
+       Append (Buf, "SI");
+       Depth := Get_Entity_Depth (Match.Gen_Unit);
+ 
+       for Index in Match.Assocs'Range loop
+          declare
+             Assoc : Assoc_Rec renames Match.Assocs (Index);
+ 
+          begin
+             Append (Buf, '_');
+ 
+             case Assoc.Actual.Kind is
+                when Name_Exp
+                   | Exp_Func_Default
+                =>
+                   if Nkind (Assoc.An_Formal) = N_Formal_Object_Declaration then
+                      --  Resolve the expression to compute whether it is static
+ 
+                      Resolve
+                        (Assoc.Actual.Name_Exp,
+                         Get_Actual_Subtype (Assoc.An_Formal));
+ 
+                      if Is_OK_Static_Expression (Assoc.Actual.Name_Exp) then
+                         --  We need the value of the expression to encode it
+ 
+                         pragma Assert
+                           (Compile_Time_Known_Value (Assoc.Actual.Name_Exp));
+ 
+                         Append_Expression (Buf, Assoc.Actual.Name_Exp);
+ 
+                      else
+                         Structural_Instantiation_Error (N);
+                         Error_Msg_N
+                           ("\expression is not static", Assoc.Actual.Name_Exp);
+                      end if;
+ 
+                   elsif Nkind (Assoc.Actual.Name_Exp) = N_Operator_Symbol then
+                      Append (Buf, Chars (Assoc.Actual.Name_Exp));
+ 
+                   else pragma Assert (Is_Entity_Name (Assoc.Actual.Name_Exp));
+                      Ent := Entity (Assoc.Actual.Name_Exp);
+ 
+                      --  If this is a type that is a renaming of another one,
+                      --  as is the case for actuals in instances, retain the
+                      --  latter. Beware of Natural and Positive, see Cstand.
+ 
+                      if Is_Type (Ent)
+                        and then Nkind (Parent (Ent)) = N_Subtype_Declaration
+                        and then
+                          Is_Entity_Name (Subtype_Indication (Parent (Ent)))
+                        and then not Comes_From_Source (Parent (Ent))
+                        and then Scope (Ent) /= Standard_Standard
+                      then
+                         Ent := Entity (Subtype_Indication (Parent (Ent)));
+                      end if;
+ 
+                      --  ??? Need to implement handling of explicit renaming
+ 
+                      Append_Entity_Name (Buf, Ent);
+                      Depth := Max (Depth, Get_Entity_Depth (Ent));
+                   end if;
+ 
+                when Box_Subp_Default =>
+                   Append (Buf, 'F');
+ 
+                when Null_Default =>
+                   Append (Buf, 'N');
+ 
+                when others =>
+                   Structural_Instantiation_Error (N);
+             end case;
+          end;
+       end loop;
+ 
+       Nam := Name_Find (Buf);
+       Ent := Get_Name_Entity_Id (Nam);
+ 
+       --  If the structural instance has already been created, then rewrite
+       --  this occurrence as a renaming of it.
+ 
+       if Present (Ent) then
+          Rewrite_As_Renaming (N, Ent);
+          Analyze (N);
+          return;
+ 
+       --  Otherwise, create it in the outermost possible scope
+ 
+       else
+          Scop := Current_Scope;
+ 
+          --  Depth.Global is the accessibility depth of the structural instance
+          --  which is defined to be the depth of the outermost scope where the
+          --  instantiation is possible. If the depth cannot be reached from the
+          --  current scope, then the structural instance cannot be accessed out
+          --  of it and we need to create a local instance instead; currently we
+          --  do it only for subprogram instantiations.
+ 
+          if Depth.Local > Depth.Global then
+             if Nkind (N) = N_Package_Instantiation then
+                Structural_Instantiation_Error (N);
+                Error_Msg_N ("\local entity used in the instantiation", N);
+                return;
+             end if;
+ 
+             Append_Entity_Name (Buf, Scop);
+             Nam := Name_Find (Buf);
+             Ent := Get_Name_Entity_Id (Nam);
+ 
+             if Present (Ent) then
+                Rewrite_As_Renaming (N, Ent);
+                Analyze (N);
+                return;
+             end if;
+          end if;
+ 
+          --  If the current scope is too nested, analyze the instantiation
+          --  relocated in the outermost possible scope, which will invoke
+          --  us recursively with a matching scope depth this time.
+ 
+          if Scope_Depth (Scop) > Depth.Local then
+             while Scope_Depth (Scop) > Depth.Local loop
+                Scop := Scope (Scop);
+             end loop;
+ 
+             R := Relocate_Node (N);
+ 
+             --  If the scope is Standard, the instantiation is done outside the
+             --  current compilation unit and, therefore, needs a clean context.
+ 
+             if Scop = Standard_Standard then
+                declare
+                   S_Expander_Active  : constant Boolean := Expander_Active;
+                   S_Full_Analysis    : constant Boolean := Full_Analysis;
+                   S_In_Spec_Expr     : constant Boolean := In_Spec_Expression;
+                   S_Inside_A_Generic : constant Boolean := Inside_A_Generic;
+ 
+                begin
+                   Expander_Active := (Operating_Mode = Opt.Generate_Code);
+                   Full_Analysis := True;
+                   In_Spec_Expression := False;
+                   Inside_A_Generic := False;
+ 
+                   Add_Local_Declaration (R, N, Scop => Scop);
+ 
+                   Expander_Active := S_Expander_Active;
+                   Full_Analysis := S_Full_Analysis;
+                   In_Spec_Expression := S_In_Spec_Expr;
+                   Inside_A_Generic := S_Inside_A_Generic;
+                end;
+ 
+             else
+                Add_Local_Declaration (R, N, Scop => Scop);
+             end if;
+ 
+             Ent := Defining_Entity_Of_Instance (R);
+             Rewrite_As_Renaming (N, Ent);
+             Analyze (N);
+ 
+          --  Otherwise we are in the right scope and only need to set the
+          --  name of the instance.
+ 
+          else
+             Ent := Make_Defining_Identifier (Loc, Chars => Nam);
+             case Nkind (N) is
+                when N_Function_Instantiation =>
+                   Mutate_Ekind (Ent, E_Function);
+                when N_Procedure_Instantiation =>
+                   Mutate_Ekind (Ent, E_Procedure);
+                when N_Package_Instantiation =>
+                   Mutate_Ekind (Ent, E_Package);
+                when others =>
+                   raise Program_Error;
+             end case;
+             Set_Scope (Ent, Scop);
+             Set_Defining_Unit_Name (N, Ent);
+          end if;
+       end if;
+    end Analyze_Structural_Associations;
+ 
     -----------------------------------
     -- Need_Subprogram_Instance_Body --
     -----------------------------------
*************** package body Sem_Ch12 is
*** 6031,6036 ****
--- 6567,6579 ----
  
        if (Is_In_Main_Unit (N) or else Is_Inlined_Or_Child_Of_Inlined (Subp))
  
+         --  No need to instantiate bodies in generic units, except when the
+         --  instantiation is in the auxiliary declarations of the main unit;
+         --  in this case the body is needed, even if the main unit is generic.
+ 
+         and then (not Is_Generic_Unit (Cunit_Entity (Main_Unit))
+                    or else Parent (N) = Aux_Decls_Node (Cunit (Main_Unit)))
+ 
          --  Must be generating code or analyzing code in GNATprove mode
  
          and then (Operating_Mode = Generate_Code
*************** package body Sem_Ch12 is
*** 6186,6192 ****
              --  Remove package itself from visibility, so it does not
              --  conflict with subprogram.
  
!             Set_Name_Entity_Id (Chars (Pack_Id), Homonym (Pack_Id));
  
              --  Set name and scope of internal subprogram so that the proper
              --  external name will be generated. The proper scope is the scope
--- 6729,6735 ----
              --  Remove package itself from visibility, so it does not
              --  conflict with subprogram.
  
!             Remove_Homonym (Pack_Id);
  
              --  Set name and scope of internal subprogram so that the proper
              --  external name will be generated. The proper scope is the scope
*************** package body Sem_Ch12 is
*** 6310,6317 ****
  
        --  Local variables
  
!       Saved_GM   : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR  : constant Node_Id         := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM   : constant SPARK_Mode_Type := SPARK_Mode;
--- 6853,6859 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_SM   : constant SPARK_Mode_Type := SPARK_Mode;
*************** package body Sem_Ch12 is
*** 6431,6437 ****
  
           --  Initialize renamings map, for error checking
  
!          Generic_Renamings.Set_Last (0);
           Generic_Renamings_HTable.Reset;
  
           Create_Instantiation_Source (N, Gen_Unit, S_Adjustment);
--- 6973,6979 ----
  
           --  Initialize renamings map, for error checking
  
!          Generic_Renamings.Clear;
           Generic_Renamings_HTable.Reset;
  
           Create_Instantiation_Source (N, Gen_Unit, S_Adjustment);
*************** package body Sem_Ch12 is
*** 6450,6458 ****
  
           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);
  
--- 6992,7012 ----
  
           Renamings :=
             Analyze_Associations
!              (N                => N,
!               Formals          => Generic_Formal_Declarations (Act_Tree),
!               F_Copy           => Generic_Formal_Declarations (Gen_Decl),
!               Parent_Installed => Parent_Installed);
! 
!          --  Bail out if the instantiation has been turned into something else
! 
!          if Nkind (N) not in N_Subprogram_Instantiation then
!             if Parent_Installed then
!                Remove_Parent;
!             end if;
! 
!             Restore_Env;
!             goto Leave;
!          end if;
  
           Vis_Prims_List := Check_Hidden_Primitives (Renamings);
  
*************** package body Sem_Ch12 is
*** 6558,6564 ****
--- 7112,7121 ----
             and then Convention (Gen_Unit) /= Convention_Intrinsic
           then
              Set_Convention (Act_Decl_Id, Convention (Gen_Unit));
+             Set_Convention (Anon_Id,     Convention (Gen_Unit));
+ 
              Set_Is_Exported (Act_Decl_Id, Is_Exported (Gen_Unit));
+             Set_Is_Exported (Anon_Id,     Is_Exported (Gen_Unit));
           end if;
  
           Generate_Definition (Act_Decl_Id);
*************** package body Sem_Ch12 is
*** 6658,6664 ****
           if not Is_Intrinsic_Subprogram (Act_Decl_Id) then
              Inherit_Context (Gen_Decl, N);
  
!             Restore_Private_Views (Pack_Id, False);
  
              --  If the context requires a full instantiation, mark node for
              --  subsequent construction of the body.
--- 7215,7221 ----
           if not Is_Intrinsic_Subprogram (Act_Decl_Id) then
              Inherit_Context (Gen_Decl, N);
  
!             Restore_Private_Views (Pack_Id, Is_Package => False);
  
              --  If the context requires a full instantiation, mark node for
              --  subsequent construction of the body.
*************** package body Sem_Ch12 is
*** 6674,6679 ****
--- 7231,7237 ----
  
              elsif Nkind (Parent (N)) = N_Compilation_Unit then
                 Rewrite (N, Unit (Parent (N)));
+                Move_Aspects (From => Original_Node (N), To => N);
                 Set_Unit (Parent (N), N);
              end if;
  
*************** package body Sem_Ch12 is
*** 6682,6687 ****
--- 7240,7246 ----
  
           elsif Nkind (Parent (N)) = N_Compilation_Unit then
              Rewrite (N, Unit (Parent (N)));
+             Move_Aspects (From => Original_Node (N), To => N);
              Set_Unit (Parent (N), N);
           end if;
  
*************** package body Sem_Ch12 is
*** 6692,6698 ****
           Restore_Hidden_Primitives (Vis_Prims_List);
           Restore_Env;
           Env_Installed := False;
!          Generic_Renamings.Set_Last (0);
           Generic_Renamings_HTable.Reset;
        end if;
  
--- 7251,7257 ----
           Restore_Hidden_Primitives (Vis_Prims_List);
           Restore_Env;
           Env_Installed := False;
!          Generic_Renamings.Clear;
           Generic_Renamings_HTable.Reset;
        end if;
  
*************** package body Sem_Ch12 is
*** 6704,6710 ****
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
        Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
  
     exception
--- 7263,7269 ----
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_Ghost_Config);
        Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
  
     exception
*************** package body Sem_Ch12 is
*** 6718,6724 ****
           end if;
  
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
     end Analyze_Subprogram_Instantiation;
  
--- 7277,7283 ----
           end if;
  
           Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!          Restore_Ghost_Region (Saved_Ghost_Config);
           Restore_SPARK_Mode   (Saved_SM, Saved_SMP);
     end Analyze_Subprogram_Instantiation;
  
*************** package body Sem_Ch12 is
*** 6798,6803 ****
--- 7357,7425 ----
        end if;
     end Get_Associated_Node;
  
+    ------------------------------------
+    -- Build_Structural_Instantiation --
+    ------------------------------------
+ 
+    function Build_Structural_Instantiation
+      (N        : Node_Id;
+       Gen_Unit : Entity_Id;
+       Actuals  : List_Id) return Entity_Id
+    is
+       Loc     : constant Source_Ptr := Sloc (N);
+       Inst_Id : constant Entity_Id  := Make_Temporary (Loc, 'P');
+ 
+       Inst : Node_Id;
+ 
+    begin
+       case Ekind (Gen_Unit) is
+          when E_Generic_Function =>
+             Inst :=
+               Make_Function_Instantiation (Loc,
+                 Defining_Unit_Name   => Inst_Id,
+                 Name                 => New_Occurrence_Of (Gen_Unit, Loc),
+                 Generic_Associations => Actuals);
+ 
+          when E_Generic_Package =>
+             Inst :=
+               Make_Package_Instantiation (Loc,
+                 Defining_Unit_Name   => Inst_Id,
+                 Name                 => New_Occurrence_Of (Gen_Unit, Loc),
+                 Generic_Associations => Actuals);
+ 
+          when E_Generic_Procedure =>
+             Inst :=
+               Make_Procedure_Instantiation (Loc,
+                 Defining_Unit_Name   => Inst_Id,
+                 Name                 => New_Occurrence_Of (Gen_Unit, Loc),
+                 Generic_Associations => Actuals);
+ 
+          when others =>
+             raise Program_Error;
+       end case;
+ 
+       Set_Is_Internal (Inst_Id);
+       Set_Is_Structural (Inst);
+ 
+       --  The instantiation must be added to a declarative part for technical
+       --  reasons pertaining to freezing (see the Freeze_Package_Instance and
+       --  Freeze_Subprogram_Instance procedures).
+ 
+       Add_Local_Declaration (Inst, N, Scop => Empty);
+       if Error_Posted (Inst) then
+          return Empty;
+       end if;
+ 
+       --  If the structural instance had already been created, this occurrence
+       --  has been turned into a renaming of it.
+ 
+       if Nkind (Inst) in N_Renaming_Declaration then
+          return Defining_Entity (Inst);
+       else
+          return Defining_Entity_Of_Instance (Inst);
+       end if;
+    end Build_Structural_Instantiation;
+ 
     -----------------------------------
     -- Build_Subprogram_Decl_Wrapper --
     -----------------------------------
*************** package body Sem_Ch12 is
*** 7564,7577 ****
     -------------------------------
  
     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))
--- 8186,8200 ----
     -------------------------------
  
     procedure Check_Fixed_Point_Warning
!      (Match     : Associations.Match_Rec;
        Renamings : List_Id)
     is
        use Associations;
+ 
     begin
!       for Type_Index in Match.Assocs'Range loop
           declare
!             Assoc : Assoc_Rec renames Match.Assocs (Type_Index);
           begin
              if Nkind (Assoc.An_Formal) = N_Formal_Type_Declaration
                and then Is_Fixed_Point_Type (Defining_Entity (Assoc.An_Formal))
*************** package body Sem_Ch12 is
*** 7600,7608 ****
                          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
--- 8223,8231 ----
                          Op := Alias (Node (Elem));
  
                          for Op_Index in Type_Index + 1 ..
!                           Match.Assocs'Last
                          loop
!                            Formal := Match.Assocs (Op_Index).Un_Formal;
  
                             if Nkind (Formal) =
                                 N_Formal_Concrete_Subprogram_Declaration
*************** package body Sem_Ch12 is
*** 7945,7953 ****
                 Set_Is_Generic_Actual_Type (Full_View (E));
              end if;
  
-             Set_Is_Hidden (E, False);
-             Set_Is_Potentially_Use_Visible (E, In_Use (Instance));
- 
              --  We constructed the generic actual type as a subtype of the
              --  supplied type. This means that it normally would not inherit
              --  subtype specific attributes of the actual, which is wrong for
--- 8568,8573 ----
*************** package body Sem_Ch12 is
*** 8001,8021 ****
                   (Renamed_Entity (E),
                    Is_Formal_Box =>
                      Box_Present (Parent (Associated_Formal_Package (E))));
- 
-                Set_Is_Hidden (E, False);
              end if;
! 
!          --  If this is a subprogram instance (in a wrapper package) the
!          --  actual is fully visible.
! 
!          elsif Is_Wrapper_Package (Instance) then
!             Set_Is_Hidden (E, False);
  
           --  If the formal package is declared with a box, or if the formal
!          --  parameter is defaulted, it is visible in the body.
  
!          elsif Is_Formal_Box or else Is_Visible_Formal (E) then
              Set_Is_Hidden (E, False);
           end if;
  
           --  Check directly the type of the actual objects, including the
--- 8621,8635 ----
                   (Renamed_Entity (E),
                    Is_Formal_Box =>
                      Box_Present (Parent (Associated_Formal_Package (E))));
              end if;
!          end if;
  
           --  If the formal package is declared with a box, or if the formal
!          --  parameter is defaulted, the actual is visible in the instance.
  
!          if Is_Formal_Box or else Is_Visible_Formal (E) then
              Set_Is_Hidden (E, False);
+             Set_Is_Potentially_Use_Visible (E, In_Use (Instance));
           end if;
  
           --  Check directly the type of the actual objects, including the
*************** package body Sem_Ch12 is
*** 8646,8660 ****
             and then (not In_Open_Scopes (Scope (Typ))
                        or else Nkind (Parent (N)) = N_Subtype_Declaration)
           then
              declare
!                Assoc : constant Node_Id := Get_Associated_Node (N);
  
              begin
!                --  In the generic, only the private declaration was visible
! 
!                Prepend_Elmt (Typ, Exchanged_Views);
!                Exchange_Declarations
!                  (if Comparison then Compare_Type (Assoc) else Etype (Assoc));
              end;
  
           --  Check that the available views of Typ match their respective flag.
--- 9260,9278 ----
             and then (not In_Open_Scopes (Scope (Typ))
                        or else Nkind (Parent (N)) = N_Subtype_Declaration)
           then
+             --  In the generic unit, only the private declaration was visible,
+             --  so restore the partial view of Typ when there was an explicit
+             --  declaration of its full view.
+ 
              declare
!                Priv_Typ : constant Entity_Id :=
!                  Incomplete_Or_Partial_View (Typ, Partial_Only => True);
  
              begin
!                if Present (Priv_Typ) then
!                   Prepend_Elmt (Typ, Exchanged_Views);
!                   Exchange_Declarations (Priv_Typ);
!                end if;
              end;
  
           --  Check that the available views of Typ match their respective flag.
*************** package body Sem_Ch12 is
*** 9852,9862 ****
     ----------------------
  
     function Find_Actual_Type
!      (Typ      : Entity_Id;
!       Gen_Type : Entity_Id) return Entity_Id
     is
!       Gen_Scope : constant Entity_Id := Scope (Gen_Type);
!       T         : Entity_Id;
  
     begin
        --  Special processing only applies to child units
--- 10470,10480 ----
     ----------------------
  
     function Find_Actual_Type
!      (Typ     : Entity_Id;
!       Gen_Typ : Entity_Id;
!       Typ_Ref : Node_Id) return Entity_Id
     is
!       Gen_Scope : constant Entity_Id := Scope (Gen_Typ);
  
     begin
        --  Special processing only applies to child units
*************** package body Sem_Ch12 is
*** 9870,9875 ****
--- 10488,10499 ----
        elsif Scope (Typ) = Gen_Scope then
           return Get_Instance_Of (Typ);
  
+       --  If designated or component type is declared in a formal of the child
+       --  unit, its instance is available.
+ 
+       elsif Scope (Scope (Typ)) = Gen_Scope then
+          return Get_Instance_Of (Typ);
+ 
        --  If the array or access type is not declared in the parent unit,
        --  no special processing needed.
  
*************** package body Sem_Ch12 is
*** 9881,9898 ****
        --  Otherwise, retrieve designated or component type by visibility
  
        else
!          T := Current_Entity (Typ);
!          while Present (T) loop
!             if In_Open_Scopes (Scope (T)) then
!                return T;
!             elsif Is_Generic_Actual_Type (T) then
!                return T;
!             end if;
! 
!             T := Homonym (T);
!          end loop;
! 
!          return Typ;
        end if;
     end Find_Actual_Type;
  
--- 10505,10512 ----
        --  Otherwise, retrieve designated or component type by visibility
  
        else
!          Analyze (Typ_Ref);
!          return Entity (Typ_Ref);
        end if;
     end Find_Actual_Type;
  
*************** package body Sem_Ch12 is
*** 10059,10071 ****
                 --  the freeze node for Inst must be inserted after that of
                 --  Parent_Inst. This relation is established by comparing
                 --  the Slocs of Parent_Inst freeze node and Inst.
!                --  We examine the parents of the enclosing lists to handle
                 --  the case where the parent instance is in the visible part
                 --  of a package declaration, and the inner instance is in
                 --  the corresponding private part.
  
!                if Parent (List_Containing (Freeze_Node (Par_Id)))
!                     = Parent (List_Containing (N))
                   and then Sloc (Freeze_Node (Par_Id)) <= Sloc (N)
                 then
                    Insert_Freeze_Node_For_Instance (N, F_Node);
--- 10673,10684 ----
                 --  the freeze node for Inst must be inserted after that of
                 --  Parent_Inst. This relation is established by comparing
                 --  the Slocs of Parent_Inst freeze node and Inst.
!                --  We examine the parents (of the enclosing lists) to handle
                 --  the case where the parent instance is in the visible part
                 --  of a package declaration, and the inner instance is in
                 --  the corresponding private part.
  
!                if Parent (Freeze_Node (Par_Id)) = Parent (N)
                   and then Sloc (Freeze_Node (Par_Id)) <= Sloc (N)
                 then
                    Insert_Freeze_Node_For_Instance (N, F_Node);
*************** package body Sem_Ch12 is
*** 10384,10390 ****
        --  investigated, and would allow this function to be significantly
        --  simplified. ???
  
!       Inst := Package_Instantiation (A);
  
        if Present (Inst) then
           if Nkind (Inst) = N_Package_Instantiation then
--- 10997,11004 ----
        --  investigated, and would allow this function to be significantly
        --  simplified. ???
  
!       Inst :=
!         (if Ekind (A) = E_Package then Package_Instantiation (A) else Empty);
  
        if Present (Inst) then
           if Nkind (Inst) = N_Package_Instantiation then
*************** package body Sem_Ch12 is
*** 10431,10440 ****
  
        else
           Inst := Next (Decl);
!          while Nkind (Inst) not in N_Formal_Package_Declaration
!                                  | N_Function_Instantiation
!                                  | N_Package_Instantiation
!                                  | N_Procedure_Instantiation
           loop
              Next (Inst);
           end loop;
--- 11045,11055 ----
  
        else
           Inst := Next (Decl);
!          while Present (Inst)
!            and then Nkind (Inst) not in N_Formal_Package_Declaration
!                                       | N_Function_Instantiation
!                                       | N_Package_Instantiation
!                                       | N_Procedure_Instantiation
           loop
              Next (Inst);
           end loop;
*************** package body Sem_Ch12 is
*** 10555,10564 ****
     ------------------------
  
     procedure Hide_Current_Scope is
!       C : constant Entity_Id := Current_Scope;
        E : Entity_Id;
  
     begin
        Set_Is_Hidden_Open_Scope (C);
  
        E := First_Entity (C);
--- 11170,11189 ----
     ------------------------
  
     procedure Hide_Current_Scope is
!       C : Entity_Id;
        E : Entity_Id;
  
     begin
+       C := Current_Scope;
+ 
+       --  The analysis of the actual parameters may have created a transient
+       --  scope after the extra copy of the current scope was pushed onto the
+       --  stack, so we need to skip it.
+ 
+       if Scope_Is_Transient then
+          C := Scope (C);
+       end if;
+ 
        Set_Is_Hidden_Open_Scope (C);
  
        E := First_Entity (C);
*************** package body Sem_Ch12 is
*** 10581,10587 ****
           Set_Is_Immediately_Visible (C, False);
           Append_Elmt (C, Hidden_Entities);
        end if;
- 
     end Hide_Current_Scope;
  
     --------------
--- 11206,11211 ----
*************** package body Sem_Ch12 is
*** 11033,11040 ****
                 null;
  
              elsif Present (Associated_Formal_Package (E)) then
!                Check_Generic_Actuals (Renamed_Entity (E), True);
!                Set_Is_Hidden (E, False);
  
                 --  Find formal package in generic unit that corresponds to
                 --  (instance of) formal package in instance.
--- 11657,11666 ----
                 null;
  
              elsif Present (Associated_Formal_Package (E)) then
!                Check_Generic_Actuals
!                  (Renamed_Entity (E),
!                   Is_Formal_Box =>
!                     Box_Present (Parent (Associated_Formal_Package (E))));
  
                 --  Find formal package in generic unit that corresponds to
                 --  (instance of) formal package in instance.
*************** package body Sem_Ch12 is
*** 11103,11115 ****
        begin
           --  If this parent of the child instance is a top-level unit,
           --  then record the unit and its visibility for later resetting in
!          --  Remove_Parent. We exclude units that are generic instances, as we
!          --  only want to record this information for the ultimate top-level
!          --  noninstance parent (is that always correct???).
  
!          if Scope (Par) = Standard_Standard
!            and then not Is_Generic_Instance (Par)
!          then
              Parent_Unit_Visible := Is_Immediately_Visible (Par);
              Instance_Parent_Unit := Par;
           end if;
--- 11729,11737 ----
        begin
           --  If this parent of the child instance is a top-level unit,
           --  then record the unit and its visibility for later resetting in
!          --  Remove_Parent.
  
!          if Scope (Par) = Standard_Standard then
              Parent_Unit_Visible := Is_Immediately_Visible (Par);
              Instance_Parent_Unit := Par;
           end if;
*************** package body Sem_Ch12 is
*** 11676,11682 ****
           Formal_Pack := Defining_Unit_Name (Specification (Analyzed_Formal));
  
           --  The actual for a ghost generic formal package should be a ghost
!          --  package (SPARK RM 6.9(14)).
  
           Check_Ghost_Formal_Procedure_Or_Package
             (N      => Actual,
--- 12298,12304 ----
           Formal_Pack := Defining_Unit_Name (Specification (Analyzed_Formal));
  
           --  The actual for a ghost generic formal package should be a ghost
!          --  package (SPARK RM 6.9(16)).
  
           Check_Ghost_Formal_Procedure_Or_Package
             (N      => Actual,
*************** package body Sem_Ch12 is
*** 11827,11833 ****
                         (Nkind (Actual_Of_Formal) = N_Package_Instantiation);
                    end if;
  
!                   Next (Actual_Of_Formal);
  
                    --  A formal subprogram may be overloaded, so advance in
                    --  the list of actuals to make sure we do not match two
--- 12449,12455 ----
                         (Nkind (Actual_Of_Formal) = N_Package_Instantiation);
                    end if;
  
!                   Next_Non_Pragma (Actual_Of_Formal);
  
                    --  A formal subprogram may be overloaded, so advance in
                    --  the list of actuals to make sure we do not match two
*************** package body Sem_Ch12 is
*** 11933,11941 ****
     -----------------------------------
  
     function Instantiate_Formal_Subprogram
!      (Formal          : Node_Id;
!       Actual          : Node_Id;
!       Analyzed_Formal : Node_Id) return Node_Id
     is
        Analyzed_S : constant Entity_Id :=
                       Defining_Unit_Name (Specification (Analyzed_Formal));
--- 12555,12564 ----
     -----------------------------------
  
     function Instantiate_Formal_Subprogram
!      (Formal           : Node_Id;
!       Actual           : Node_Id;
!       Analyzed_Formal  : Node_Id;
!       Parent_Installed : Boolean) return Node_Id
     is
        Analyzed_S : constant Entity_Id :=
                       Defining_Unit_Name (Specification (Analyzed_Formal));
*************** package body Sem_Ch12 is
*** 11943,11955 ****
                       Defining_Unit_Name (Specification (Formal));
  
        function From_Parent_Scope (Subp : Entity_Id) return Boolean;
!       --  If the generic is a child unit, the parent has been installed on the
!       --  scope stack, but a default subprogram cannot resolve to something
!       --  on the parent because that parent is not really part of the visible
!       --  context (it is there to resolve explicit local entities). If the
!       --  default has resolved in this way, we remove the entity from immediate
!       --  visibility and analyze the node again to emit an error message or
!       --  find another visible candidate.
  
        procedure Valid_Actual_Subprogram (Act : Node_Id);
        --  Perform legality check and raise exception on failure
--- 12566,12572 ----
                       Defining_Unit_Name (Specification (Formal));
  
        function From_Parent_Scope (Subp : Entity_Id) return Boolean;
!       --  Return true if Subp is declared in a parent scope of Analyzed_S
  
        procedure Valid_Actual_Subprogram (Act : Node_Id);
        --  Perform legality check and raise exception on failure
*************** package body Sem_Ch12 is
*** 11995,12001 ****
           end if;
  
           --  The actual for a ghost generic formal procedure should be a ghost
!          --  procedure (SPARK RM 6.9(14)).
  
           if Present (Act_E)
             and then Ekind (Act_E) = E_Procedure
--- 12612,12618 ----
           end if;
  
           --  The actual for a ghost generic formal procedure should be a ghost
!          --  procedure (SPARK RM 6.9(16)).
  
           if Present (Act_E)
             and then Ekind (Act_E) = E_Procedure
*************** package body Sem_Ch12 is
*** 12207,12227 ****
        end if;
  
        --  Gather possible interpretations for the actual before analyzing the
!       --  instance. If overloaded, it will be resolved when analyzing the
!       --  renaming declaration.
  
        if Box_Present (Formal) and then No (Actual) then
           Analyze (Nam);
  
!          if Is_Child_Unit (Scope (Analyzed_S))
!            and then Present (Entity (Nam))
           then
              if not Is_Overloaded (Nam) then
                 if From_Parent_Scope (Entity (Nam)) then
                    Set_Is_Immediately_Visible (Entity (Nam), False);
                    Set_Entity (Nam, Empty);
                    Set_Etype (Nam, Empty);
- 
                    Analyze (Nam);
                    Set_Is_Immediately_Visible (Entity (Nam));
                 end if;
--- 12824,12854 ----
        end if;
  
        --  Gather possible interpretations for the actual before analyzing the
!       --  instance. If the actual is overloaded, then it will be resolved when
!       --  the renaming declaration is analyzed.
  
        if Box_Present (Formal) and then No (Actual) then
           Analyze (Nam);
  
!          --  If the generic is a child unit and the parent has been installed
!          --  during this instantiation (as opposed to having been installed in
!          --  the context of the instantiation at some earlier point), a default
!          --  subprogram cannot resolve to something in the parent because the
!          --  parent is not really part of the visible context (it is there to
!          --  resolve explicit local entities). If the default subprogram has
!          --  been resolved in this way, we remove the entity from immediate
!          --  visibility and analyze the node again to emit an error message
!          --  or find another visible candidate.
! 
!          if Present (Entity (Nam))
!            and then Is_Child_Unit (Scope (Analyzed_S))
!            and then Parent_Installed
           then
              if not Is_Overloaded (Nam) then
                 if From_Parent_Scope (Entity (Nam)) then
                    Set_Is_Immediately_Visible (Entity (Nam), False);
                    Set_Entity (Nam, Empty);
                    Set_Etype (Nam, Empty);
                    Analyze (Nam);
                    Set_Is_Immediately_Visible (Entity (Nam));
                 end if;
*************** package body Sem_Ch12 is
*** 12502,12508 ****
           end if;
  
           --  The actual for a ghost generic formal IN OUT parameter should be a
!          --  ghost object (SPARK RM 6.9(14)).
  
           Check_Ghost_Formal_Variable
             (Actual => Actual,
--- 13129,13135 ----
           end if;
  
           --  The actual for a ghost generic formal IN OUT parameter should be a
!          --  ghost object (SPARK RM 6.9(16)).
  
           Check_Ghost_Formal_Variable
             (Actual => Actual,
*************** package body Sem_Ch12 is
*** 12595,12601 ****
                 --  to capture local names that may be hidden if the generic is
                 --  a child unit.
  
!                if Nkind (Actual) = N_Aggregate then
                    Preanalyze_And_Resolve (Actual, Typ);
                 end if;
  
--- 13222,13228 ----
                 --  to capture local names that may be hidden if the generic is
                 --  a child unit.
  
!                if Nkind (Unqualify (Actual)) = N_Aggregate then
                    Preanalyze_And_Resolve (Actual, Typ);
                 end if;
  
*************** package body Sem_Ch12 is
*** 12608,12614 ****
                 end if;
              end;
  
!          elsif Present (Default_Expression (Formal)) then
  
              --  Use default to construct declaration
  
--- 13235,13241 ----
                 end if;
              end;
  
!          elsif Present (Expression (Formal)) then
  
              --  Use default to construct declaration
  
*************** package body Sem_Ch12 is
*** 12626,12632 ****
                  Null_Exclusion_Present => Null_Exclusion_Present (Formal),
                  Object_Definition      => Def,
                  Expression             => New_Copy_Tree
!                                             (Default_Expression (Formal)));
  
              Copy_Ghost_Aspect (Formal, To => Decl_Node);
              Set_Corresponding_Generic_Association
--- 13253,13259 ----
                  Null_Exclusion_Present => Null_Exclusion_Present (Formal),
                  Object_Definition      => Def,
                  Expression             => New_Copy_Tree
!                                             (Expression (Formal)));
  
              Copy_Ghost_Aspect (Formal, To => Decl_Node);
              Set_Corresponding_Generic_Association
*************** package body Sem_Ch12 is
*** 12844,12851 ****
        --  the package body.
  
        Saved_CS   : constant Config_Switches_Type     := Save_Config_Switches;
!       Saved_GM   : constant Ghost_Mode_Type          := Ghost_Mode;
!       Saved_IGR  : constant Node_Id                  := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean                  :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_LSST : constant Suppress_Stack_Entry_Ptr :=
--- 13471,13477 ----
        --  the package body.
  
        Saved_CS   : constant Config_Switches_Type     := Save_Config_Switches;
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean                  :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_LSST : constant Suppress_Stack_Entry_Ptr :=
*************** package body Sem_Ch12 is
*** 13037,13046 ****
             Make_Defining_Identifier (Sloc (Act_Decl_Id), Chars (Act_Decl_Id));
           Preserve_Comes_From_Source (Act_Body_Id, Act_Decl_Id);
  
-          --  Some attributes of spec entity are not inherited by body entity
- 
-          Set_Handler_Records (Act_Body_Id, No_List);
- 
           if Nkind (Defining_Unit_Name (Act_Spec)) =
                                             N_Defining_Program_Unit_Name
           then
--- 13663,13668 ----
*************** package body Sem_Ch12 is
*** 13056,13062 ****
           Set_Defining_Unit_Name (Act_Body, Act_Body_Name);
  
           Set_Corresponding_Spec (Act_Body, Act_Decl_Id);
!          Check_Generic_Actuals (Act_Decl_Id, False);
           Check_Initialized_Types;
  
           --  Install primitives hidden at the point of the instantiation but
--- 13678,13684 ----
           Set_Defining_Unit_Name (Act_Body, Act_Body_Name);
  
           Set_Corresponding_Spec (Act_Body, Act_Decl_Id);
!          Check_Generic_Actuals (Act_Decl_Id, Is_Formal_Box => False);
           Check_Initialized_Types;
  
           --  Install primitives hidden at the point of the instantiation but
*************** package body Sem_Ch12 is
*** 13304,13310 ****
           --  the two mechanisms swap exactly the same entities, in particular
           --  the private entities dependent on the primary private entities.
  
!          Restore_Private_Views (Act_Decl_Id);
  
           --  Remove the current unit from visibility if this is an instance
           --  that is not elaborated on the fly for inlining purposes.
--- 13926,13932 ----
           --  the two mechanisms swap exactly the same entities, in particular
           --  the private entities dependent on the primary private entities.
  
!          Restore_Private_Views (Act_Decl_Id, Is_Package => True);
  
           --  Remove the current unit from visibility if this is an instance
           --  that is not elaborated on the fly for inlining purposes.
*************** package body Sem_Ch12 is
*** 13379,13385 ****
  
        Expander_Mode_Restore;
        Restore_Config_Switches (Saved_CS);
!       Restore_Ghost_Region    (Saved_GM, Saved_IGR);
        Restore_SPARK_Mode      (Saved_SM, Saved_SMP);
        Restore_Warnings        (Saved_Warn);
     end Instantiate_Package_Body;
--- 14001,14007 ----
  
        Expander_Mode_Restore;
        Restore_Config_Switches (Saved_CS);
!       Restore_Ghost_Region    (Saved_Ghost_Config);
        Restore_SPARK_Mode      (Saved_SM, Saved_SMP);
        Restore_Warnings        (Saved_Warn);
     end Instantiate_Package_Body;
*************** package body Sem_Ch12 is
*** 13410,13417 ****
        --  the subprogram body.
  
        Saved_CS   : constant Config_Switches_Type     := Save_Config_Switches;
!       Saved_GM   : constant Ghost_Mode_Type          := Ghost_Mode;
!       Saved_IGR  : constant Node_Id                  := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean                  :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_LSST : constant Suppress_Stack_Entry_Ptr :=
--- 14032,14038 ----
        --  the subprogram body.
  
        Saved_CS   : constant Config_Switches_Type     := Save_Config_Switches;
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean                  :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        Saved_LSST : constant Suppress_Stack_Entry_Ptr :=
*************** package body Sem_Ch12 is
*** 13552,13558 ****
  
           Set_Corresponding_Spec (Act_Body, Act_Decl_Id);
           Set_Has_Completion (Act_Decl_Id);
!          Check_Generic_Actuals (Pack_Id, False);
  
           --  Generate a reference to link the visible subprogram instance to
           --  the generic body, which for navigation purposes is the only
--- 14173,14179 ----
  
           Set_Corresponding_Spec (Act_Body, Act_Decl_Id);
           Set_Has_Completion (Act_Decl_Id);
!          Check_Generic_Actuals (Pack_Id, Is_Formal_Box => False);
  
           --  Generate a reference to link the visible subprogram instance to
           --  the generic body, which for navigation purposes is the only
*************** package body Sem_Ch12 is
*** 13623,13629 ****
  
           Inherit_Context (Gen_Body, Inst_Node);
  
!          Restore_Private_Views (Pack_Id, False);
  
           if Par_Installed then
              Remove_Parent (In_Body => True);
--- 14244,14250 ----
  
           Inherit_Context (Gen_Body, Inst_Node);
  
!          Restore_Private_Views (Pack_Id, Is_Package => False);
  
           if Par_Installed then
              Remove_Parent (In_Body => True);
*************** package body Sem_Ch12 is
*** 13714,13720 ****
  
        Expander_Mode_Restore;
        Restore_Config_Switches (Saved_CS);
!       Restore_Ghost_Region    (Saved_GM, Saved_IGR);
        Restore_SPARK_Mode      (Saved_SM, Saved_SMP);
        Restore_Warnings        (Saved_Warn);
     end Instantiate_Subprogram_Body;
--- 14335,14341 ----
  
        Expander_Mode_Restore;
        Restore_Config_Switches (Saved_CS);
!       Restore_Ghost_Region    (Saved_Ghost_Config);
        Restore_SPARK_Mode      (Saved_SM, Saved_SMP);
        Restore_Warnings        (Saved_Warn);
     end Instantiate_Subprogram_Body;
*************** package body Sem_Ch12 is
*** 13977,13983 ****
  
        procedure Validate_Access_Type_Instance is
           Desig_Type : constant Entity_Id :=
!                         Find_Actual_Type (Designated_Type (A_Gen_T), A_Gen_T);
           Desig_Act  : Entity_Id;
  
        begin
--- 14598,14605 ----
  
        procedure Validate_Access_Type_Instance is
           Desig_Type : constant Entity_Id :=
!            Find_Actual_Type
!              (Designated_Type (A_Gen_T), A_Gen_T, Subtype_Indication (Def));
           Desig_Act  : Entity_Id;
  
        begin
*************** package body Sem_Ch12 is
*** 14066,14096 ****
        ----------------------------------
  
        procedure Validate_Array_Type_Instance is
!          I1 : Node_Id;
!          I2 : Node_Id;
!          T2 : Entity_Id;
! 
!          function Formal_Dimensions return Nat;
!          --  Count number of dimensions in array type formal
! 
!          -----------------------
!          -- Formal_Dimensions --
!          -----------------------
! 
!          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
  
        begin
           if not Is_Array_Type (Act_T) then
--- 14688,14702 ----
        ----------------------------------
  
        procedure Validate_Array_Type_Instance is
!          Dims : constant List_Id
!            := (if Nkind (Def) = N_Constrained_Array_Definition
!                then Discrete_Subtype_Definitions (Def)
!                else Subtype_Marks (Def));
  
!          Dim : Node_Id;
!          I1  : Node_Id;
!          I2  : Node_Id;
!          T2  : Entity_Id;
  
        begin
           if not Is_Array_Type (Act_T) then
*************** package body Sem_Ch12 is
*** 14115,14129 ****
              end if;
           end if;
  
!          if Formal_Dimensions /= Number_Dimensions (Act_T) then
              Error_Msg_NE
                ("dimensions of actual do not match formal &", Actual, Gen_T);
              Abandon_Instantiation (Actual);
           end if;
  
!          I1 := First_Index (A_Gen_T);
!          I2 := First_Index (Act_T);
!          for J in 1 .. Formal_Dimensions loop
  
              --  If the indexes of the actual were given by a subtype_mark,
              --  the index was transformed into a range attribute. Retrieve
--- 14721,14736 ----
              end if;
           end if;
  
!          if List_Length (Dims) /= Number_Dimensions (Act_T) then
              Error_Msg_NE
                ("dimensions of actual do not match formal &", Actual, Gen_T);
              Abandon_Instantiation (Actual);
           end if;
  
!          Dim := First (Dims);
!          I1  := First_Index (A_Gen_T);
!          I2  := First_Index (Act_T);
!          for J in 1 .. List_Length (Dims) loop
  
              --  If the indexes of the actual were given by a subtype_mark,
              --  the index was transformed into a range attribute. Retrieve
*************** package body Sem_Ch12 is
*** 14146,14152 ****
              end if;
  
              if not Subtypes_Match
!                      (Find_Actual_Type (Etype (I1), A_Gen_T), T2)
              then
                 Error_Msg_NE
                   ("index types of actual do not match those of formal &",
--- 14753,14765 ----
              end if;
  
              if not Subtypes_Match
!                      (Find_Actual_Type
!                        (Etype (I1),
!                         A_Gen_T,
!                         (if Nkind (Dim) = N_Subtype_Indication
!                          then Subtype_Mark (Dim)
!                          else Dim)),
!                       T2)
              then
                 Error_Msg_NE
                   ("index types of actual do not match those of formal &",
*************** package body Sem_Ch12 is
*** 14154,14187 ****
                 Abandon_Instantiation (Actual);
              end if;
  
              Next_Index (I1);
              Next_Index (I2);
           end loop;
  
!          --  Check matching subtypes. Note that there are complex visibility
!          --  issues when the generic is a child unit and some aspect of the
!          --  generic type is declared in a parent unit of the generic. We do
!          --  the test to handle this special case only after a direct check
!          --  for static matching has failed. The case where both the component
!          --  type and the array type are separate formals, and the component
!          --  type is a private view may also require special checking in
!          --  Subtypes_Match. Finally, we assume that a child instance where
!          --  the component type comes from a formal of a parent instance is
!          --  correct because the generic was correct. A more precise check
!          --  seems too complex to install???
  
!          if Subtypes_Match
!            (Component_Type (A_Gen_T), Component_Type (Act_T))
!              or else
!                Subtypes_Match
!                  (Find_Actual_Type (Component_Type (A_Gen_T), A_Gen_T),
!                   Component_Type (Act_T))
!             or else
!               (not Inside_A_Generic
!                  and then Is_Child_Unit (Scope (Component_Type (A_Gen_T))))
           then
-             null;
-          else
              Error_Msg_NE
                ("component subtype of actual does not match that of formal &",
                 Actual, Gen_T);
--- 14767,14786 ----
                 Abandon_Instantiation (Actual);
              end if;
  
+             Next (Dim);
              Next_Index (I1);
              Next_Index (I2);
           end loop;
  
!          --  Check matching component subtypes
  
!          if not Subtypes_Match
!                   (Find_Actual_Type
!                     (Component_Type (A_Gen_T),
!                      A_Gen_T,
!                      Subtype_Indication (Component_Definition (Def))),
!                    Component_Type (Act_T))
           then
              Error_Msg_NE
                ("component subtype of actual does not match that of formal &",
                 Actual, Gen_T);
*************** package body Sem_Ch12 is
*** 14351,14358 ****
           elsif
             Scope (Scope (Base_Type (Etype (A_Gen_T)))) = Scope (A_Gen_T)
           then
!             Ancestor :=
!               Get_Instance_Of (Base_Type (Etype (A_Gen_T)));
  
           --  The type may be a local derivation, or a type extension of a
           --  previous formal, or of a formal of a parent package.
--- 14950,14970 ----
           elsif
             Scope (Scope (Base_Type (Etype (A_Gen_T)))) = Scope (A_Gen_T)
           then
!             declare
!                Formal_Ancestor : constant Entity_Id :=
!                  Base_Type (Etype (A_Gen_T));
!             begin
!                Ancestor := Get_Instance_Of (Formal_Ancestor);
! 
!                --  Handle (rare) case where Get_Instance_Of found nothing in
!                --  the map.
! 
!                if Ancestor = Formal_Ancestor then
!                   Ancestor :=
!                     Get_Instance_Of
!                       (Base_Type (Etype (Get_Instance_Of (A_Gen_T))));
!                end if;
!             end;
  
           --  The type may be a local derivation, or a type extension of a
           --  previous formal, or of a formal of a parent package.
*************** package body Sem_Ch12 is
*** 15211,15217 ****
                 Diagnose_Predicated_Actual;
  
              when N_Formal_Signed_Integer_Type_Definition =>
!                if not Is_Signed_Integer_Type (Act_T) then
                    Error_Msg_NE
                      ("expect signed integer type in instantiation of&",
                       Actual, Gen_T);
--- 15823,15829 ----
                 Diagnose_Predicated_Actual;
  
              when N_Formal_Signed_Integer_Type_Definition =>
!                if not Has_Overflow_Operations (Act_T) then
                    Error_Msg_NE
                      ("expect signed integer type in instantiation of&",
                       Actual, Gen_T);
*************** package body Sem_Ch12 is
*** 15221,15227 ****
                 Diagnose_Predicated_Actual;
  
              when N_Formal_Modular_Type_Definition =>
!                if not Is_Modular_Integer_Type (Act_T) then
                    Error_Msg_NE
                      ("expect modular type in instantiation of &",
                         Actual, Gen_T);
--- 15833,15839 ----
                 Diagnose_Predicated_Actual;
  
              when N_Formal_Modular_Type_Definition =>
!                if not Has_Modular_Operations (Act_T) then
                    Error_Msg_NE
                      ("expect modular type in instantiation of &",
                         Actual, Gen_T);
*************** package body Sem_Ch12 is
*** 15863,15872 ****
                    Set_Instance_Of (Class_Wide_Type (E1), Class_Wide_Type (E2));
                 end if;
  
-                if Is_Constrained (E1) then
-                   Set_Instance_Of (Base_Type (E1), Base_Type (E2));
-                end if;
- 
                 if Ekind (E1) = E_Package and then No (Renamed_Entity (E1)) then
                    Map_Formal_Package_Entities (E1, E2);
                 end if;
--- 16475,16480 ----
*************** package body Sem_Ch12 is
*** 15877,15882 ****
--- 16485,16548 ----
        end loop;
     end Map_Formal_Package_Entities;
  
+    --------------------
+    -- Mark_Link_Once --
+    --------------------
+ 
+    procedure Mark_Link_Once (Decls : List_Id) is
+       procedure Mark_Link_Once (Ent : Entity_Id);
+ 
+       --------------------
+       -- Mark_Link_Once --
+       --------------------
+ 
+       procedure Mark_Link_Once (Ent : Entity_Id) is
+       begin
+          if Is_Public (Ent) then
+             Set_Is_Link_Once (Ent);
+          end if;
+ 
+          if Ekind (Ent) in E_Package | E_Package_Body
+            and then No (Renamed_Entity (Ent))
+          then
+             declare
+                Pack_Ent : Entity_Id;
+ 
+             begin
+                Pack_Ent := First_Entity (Ent);
+                while Present (Pack_Ent) loop
+                   Mark_Link_Once (Pack_Ent);
+ 
+                   Next_Entity (Pack_Ent);
+                end loop;
+             end;
+          end if;
+       end Mark_Link_Once;
+ 
+       Decl : Node_Id;
+       Spec : Node_Id;
+ 
+    begin
+       Decl := First (Decls);
+       while Present (Decl) loop
+          if Nkind (Decl) in N_Generic_Instantiation
+            and then Is_Structural (Decl)
+          then
+             Spec := Instance_Spec (Decl);
+ 
+             Mark_Link_Once (Defining_Entity (Specification (Spec)));
+ 
+             if Nkind (Decl) = N_Package_Instantiation
+               and then Present (Corresponding_Body (Spec))
+             then
+                Mark_Link_Once (Corresponding_Body (Spec));
+             end if;
+          end if;
+ 
+          Next (Decl);
+       end loop;
+    end Mark_Link_Once;
+ 
     -----------------------
     -- Move_Freeze_Nodes --
     -----------------------
*************** package body Sem_Ch12 is
*** 16267,16286 ****
  
     procedure Remove_Parent (In_Body : Boolean := False) is
        S : Entity_Id := Current_Scope;
!       --  S is the scope containing the instantiation just completed. The scope
!       --  stack contains the parent instances of the instantiation, followed by
!       --  the original S.
  
        Cur_P  : Entity_Id;
        E      : Entity_Id;
-       P      : Entity_Id;
        Hidden : Elmt_Id;
  
     begin
-       --  After child instantiation is complete, remove from scope stack the
-       --  extra copy of the current scope, and then remove parent instances.
- 
        if not In_Body then
           Pop_Scope;
  
           while Current_Scope /= S loop
--- 16933,16965 ----
  
     procedure Remove_Parent (In_Body : Boolean := False) is
        S : Entity_Id := Current_Scope;
!       --  S is the extra copy of the current scope that has been pushed by
!       --  Install_Parent. The scope stack next contains the parents of the
!       --  instance followed by the original S.
  
        Cur_P  : Entity_Id;
        E      : Entity_Id;
        Hidden : Elmt_Id;
+       P      : Entity_Id;
+       SE     : Scope_Stack_Entry;
  
     begin
        if not In_Body then
+          --  If the analysis of the actual parameters has created a transient
+          --  scope after the extra copy of the current scope was pushed onto
+          --  the stack, we first need to save this transient scope and pop it.
+ 
+          if Scope_Is_Transient then
+             SE := Scope_Stack.Table (Scope_Stack.Last);
+             Scope_Stack.Decrement_Last;
+             S := Current_Scope;
+          else
+             SE.Is_Transient := False;
+          end if;
+ 
+          --  After child instantiation is complete, remove from scope stack the
+          --  extra copy of the current scope, and then remove the parents.
+ 
           Pop_Scope;
  
           while Current_Scope /= S loop
*************** package body Sem_Ch12 is
*** 16314,16352 ****
                    Install_Private_Declarations (P);
                 end if;
  
!             --  If the ultimate parent is a top-level unit recorded in
!             --  Instance_Parent_Unit, then reset its visibility to what it was
!             --  before instantiation. (It's not clear what the purpose is of
!             --  testing whether Scope (P) is In_Open_Scopes, but that test was
!             --  present before the ultimate parent test was added.???)
  
!             elsif not In_Open_Scopes (Scope (P))
!               or else (P = Instance_Parent_Unit
!                         and then not Parent_Unit_Visible)
!             then
!                Set_Is_Immediately_Visible (P, False);
  
!             --  If the current scope is itself an instantiation of a generic
!             --  nested within P, and we are in the private part of body of this
!             --  instantiation, restore the full views of P, that were removed
!             --  in End_Package_Scope above. This obscure case can occur when a
!             --  subunit of a generic contains an instance of a child unit of
!             --  its generic parent unit.
  
!             elsif S = Current_Scope and then Is_Generic_Instance (S)
!               and then (In_Package_Body (S) or else In_Private_Part (S))
!             then
!                declare
!                   Par : constant Entity_Id :=
!                           Generic_Parent (Package_Specification (S));
!                begin
!                   if Present (Par)
!                     and then P = Scope (Par)
!                   then
!                      Set_In_Private_Part (P);
!                      Install_Private_Declarations (P);
!                   end if;
!                end;
              end if;
           end loop;
  
--- 16993,17035 ----
                    Install_Private_Declarations (P);
                 end if;
  
!             else
!                --  If the ultimate parent is a top-level unit recorded in
!                --  Instance_Parent_Unit, then reset its visibility to what
!                --  it was before instantiation. (It's not clear what the
!                --  purpose is of testing whether Scope (P) is In_Open_Scopes,
!                --  but that test was present before the ultimate parent test
!                --  was added.???)
  
!                if not In_Open_Scopes (Scope (P))
!                  or else (P = Instance_Parent_Unit
!                            and then not Parent_Unit_Visible)
!                then
!                   Set_Is_Immediately_Visible (P, False);
!                end if;
  
!                --  If the current scope is itself an instantiation of a generic
!                --  nested within P, and we are in the private part of body of
!                --  the instantiation, restore the full views of P, which were
!                --  removed in End_Package_Scope above. This obscure case can
!                --  occur when a subunit of a generic contains an instance of
!                --  a child unit of its generic parent unit.
  
!                if S = Current_Scope and then Is_Generic_Instance (S)
!                  and then (In_Package_Body (S) or else In_Private_Part (S))
!                then
!                   declare
!                      Par : constant Entity_Id :=
!                              Generic_Parent (Package_Specification (S));
!                   begin
!                      if Present (Par)
!                        and then P = Scope (Par)
!                      then
!                         Set_In_Private_Part (P);
!                         Install_Private_Declarations (P);
!                      end if;
!                   end;
!                end if;
              end if;
           end loop;
  
*************** package body Sem_Ch12 is
*** 16360,16365 ****
--- 17043,17054 ----
              Next_Elmt (Hidden);
           end loop;
  
+          --  Restore the transient scope that was popped on entry, if any
+ 
+          if SE.Is_Transient then
+             Scope_Stack.Append (SE);
+          end if;
+ 
        else
           --  Each body is analyzed separately, and there is no context that
           --  needs preserving from one body instance to the next, so remove all
*************** package body Sem_Ch12 is
*** 16396,16405 ****
        Saved : Instance_Env renames Instance_Envs.Table (Instance_Envs.Last);
  
     begin
!       if No (Current_Instantiated_Parent.Act_Id) then
!          --  Restore environment after subprogram inlining
  
!          Restore_Private_Views (Empty);
        end if;
  
        Current_Instantiated_Parent := Saved.Instantiated_Parent;
--- 17085,17102 ----
        Saved : Instance_Env renames Instance_Envs.Table (Instance_Envs.Last);
  
     begin
!       --  Restore environment after subprogram inlining
  
!       if No (Current_Instantiated_Parent.Act_Id) then
!          declare
!             M : Elmt_Id;
!          begin
!             M := First_Elmt (Exchanged_Views);
!             while Present (M) loop
!                Exchange_Declarations (Node (M));
!                Next_Elmt (M);
!             end loop;
!          end;
        end if;
  
        Current_Instantiated_Parent := Saved.Instantiated_Parent;
*************** package body Sem_Ch12 is
*** 16418,16426 ****
     -- Restore_Private_Views --
     ---------------------------
  
!    procedure Restore_Private_Views
!      (Pack_Id    : Entity_Id;
!       Is_Package : Boolean := True)
     is
        M        : Elmt_Id;
        E        : Entity_Id;
--- 17115,17121 ----
     -- Restore_Private_Views --
     ---------------------------
  
!    procedure Restore_Private_Views (Pack_Id : Entity_Id; Is_Package : Boolean)
     is
        M        : Elmt_Id;
        E        : Entity_Id;
*************** package body Sem_Ch12 is
*** 16439,16444 ****
--- 17134,17140 ----
        procedure Restore_Nested_Formal (Formal : Entity_Id) is
           pragma Assert (Ekind (Formal) = E_Package);
           Ent : Entity_Id;
+ 
        begin
           if Present (Renamed_Entity (Formal))
             and then Denotes_Formal_Package (Renamed_Entity (Formal), True)
*************** package body Sem_Ch12 is
*** 16501,16516 ****
           Next_Elmt (M);
        end loop;
  
-       if No (Pack_Id) then
-          return;
-       end if;
- 
        --  Make the generic formal parameters private, and make the formal types
        --  into subtypes of the actuals again.
  
        E := First_Entity (Pack_Id);
        while Present (E) loop
!          Set_Is_Hidden (E, True);
  
           if Is_Type (E)
             and then Nkind (Parent (E)) = N_Subtype_Declaration
--- 17197,17209 ----
           Next_Elmt (M);
        end loop;
  
        --  Make the generic formal parameters private, and make the formal types
        --  into subtypes of the actuals again.
  
        E := First_Entity (Pack_Id);
        while Present (E) loop
!          Set_Is_Hidden (E);
!          Set_Is_Potentially_Use_Visible (E, False);
  
           if Is_Type (E)
             and then Nkind (Parent (E)) = N_Subtype_Declaration
*************** package body Sem_Ch12 is
*** 16534,16539 ****
--- 17227,17233 ----
                           (Entity (Subtype_Indication (Parent (E))))
              then
                 null;
+ 
              else
                 Set_Is_Generic_Actual_Type (E, False);
  
*************** package body Sem_Ch12 is
*** 16578,16584 ****
              --  If the actual is itself a formal package for the enclosing
              --  generic, or the actual for such a formal package, it remains
              --  visible on exit from the instance, and therefore nothing needs
!             --  to be done either, except to keep it accessible.
  
              if Is_Package and then Renamed_Entity (E) = Pack_Id then
                 exit;
--- 17272,17278 ----
              --  If the actual is itself a formal package for the enclosing
              --  generic, or the actual for such a formal package, it remains
              --  visible on exit from the instance, and therefore nothing needs
!             --  to be done either.
  
              if Is_Package and then Renamed_Entity (E) = Pack_Id then
                 exit;
*************** package body Sem_Ch12 is
*** 16589,16595 ****
              elsif
                Denotes_Formal_Package (Renamed_Entity (E), True, Pack_Id)
              then
!                Set_Is_Hidden (E, False);
  
              else
                 declare
--- 17283,17289 ----
              elsif
                Denotes_Formal_Package (Renamed_Entity (E), True, Pack_Id)
              then
!                null;
  
              else
                 declare
*************** package body Sem_Ch12 is
*** 16604,16611 ****
                       exit when Ekind (Id) = E_Package
                                   and then Renamed_Entity (Id) = Act_P;
  
!                      Set_Is_Hidden (Id, True);
!                      Set_Is_Potentially_Use_Visible (Id, In_Use (Act_P));
  
                       if Ekind (Id) = E_Package then
                          Restore_Nested_Formal (Id);
--- 17298,17305 ----
                       exit when Ekind (Id) = E_Package
                                   and then Renamed_Entity (Id) = Act_P;
  
!                      Set_Is_Hidden (Id);
!                      Set_Is_Potentially_Use_Visible (Id, False);
  
                       if Ekind (Id) = E_Package then
                          Restore_Nested_Formal (Id);
*************** package body Sem_Ch12 is
*** 16965,16970 ****
--- 17659,17666 ----
                 Set_Etype  (N2, E);
              end if;
  
+             --  If the entity is global, save its type in the generic node
+ 
              if Is_Global (E) then
                 Set_Global_Type (N, N2);
  
*************** package body Sem_Ch12 is
*** 16985,16996 ****
--- 17681,17704 ----
                 Set_Etype (N, Empty);
              end if;
  
+             --  If default actuals have been added to a generic instantiation
+             --  and they are global, save them in the generic node.
+ 
              if Nkind (Parent (N)) in N_Generic_Instantiation
                and then N = Name (Parent (N))
              then
                 Save_Global_Defaults (Parent (N), Parent (N2));
              end if;
  
+             if Nkind (Parent (N)) = N_Selected_Component
+               and then N = Selector_Name (Parent (N))
+               and then Nkind (Parent (Parent (N))) in N_Generic_Instantiation
+               and then Parent (N) = Name (Parent (Parent (N)))
+             then
+                Save_Global_Defaults
+                  (Parent (Parent (N)), Parent (Parent (N2)));
+             end if;
+ 
           elsif Nkind (Parent (N)) = N_Selected_Component
             and then Nkind (Parent (N2)) = N_Expanded_Name
           then
*************** package body Sem_Ch12 is
*** 17378,17384 ****
           ----------------------------------
  
           procedure Save_References_In_Aggregate (N : Node_Id) is
-             Nam   : Node_Id;
              Qual  : Node_Id   := Empty;
              Typ   : Entity_Id := Empty;
  
--- 18086,18091 ----
*************** package body Sem_Ch12 is
*** 17434,17449 ****
                    end;
                 end if;
  
!                --  If the aggregate is an actual in a call, it has been
!                --  resolved in the current context, to some local type. The
                 --  enclosing call may have been disambiguated by the aggregate,
                 --  and this disambiguation might fail at instantiation time
                 --  because the type to which the aggregate did resolve is not
                 --  preserved. In order to preserve some of this information,
                 --  wrap the aggregate in a qualified expression, using the id
                 --  of its type. For further disambiguation we qualify the type
!                --  name with its scope (if visible and not hidden by a local
!                --  homograph) because both id's will have corresponding
                 --  entities in an instance. This resolves most of the problems
                 --  with missing type information on aggregates in instances.
  
--- 18141,18156 ----
                    end;
                 end if;
  
!                --  If the aggregate is an actual in a subprogram call, it has
!                --  been resolved in the current context to some local type. The
                 --  enclosing call may have been disambiguated by the aggregate,
                 --  and this disambiguation might fail at instantiation time
                 --  because the type to which the aggregate did resolve is not
                 --  preserved. In order to preserve some of this information,
                 --  wrap the aggregate in a qualified expression, using the id
                 --  of its type. For further disambiguation we qualify the type
!                --  name with its scope recursively (if visible and not hidden
!                --  by a local homograph) because both will have corresponding
                 --  entities in an instance. This resolves most of the problems
                 --  with missing type information on aggregates in instances.
  
*************** package body Sem_Ch12 is
*** 17453,17476 ****
                   and then Present (Typ)
                   and then Comes_From_Source (Typ)
                 then
!                   Nam := Make_Identifier (Loc, Chars (Typ));
  
!                   if Is_Immediately_Visible (Scope (Typ))
!                     and then
!                       (not In_Open_Scopes (Scope (Typ))
!                          or else Current_Entity (Scope (Typ)) = Scope (Typ))
!                   then
!                      Nam :=
!                        Make_Selected_Component (Loc,
!                          Prefix        =>
!                            Make_Identifier (Loc, Chars (Scope (Typ))),
!                          Selector_Name => Nam);
!                   end if;
  
!                   Qual :=
!                     Make_Qualified_Expression (Loc,
!                       Subtype_Mark => Nam,
!                       Expression   => Relocate_Node (N));
                 end if;
  
              --  For a full aggregate, if the type is global and a derived
--- 18160,18199 ----
                   and then Present (Typ)
                   and then Comes_From_Source (Typ)
                 then
!                   declare
!                      function Qualify_Name (S, E : Entity_Id) return Node_Id is
!                        (if E = S
!                         then Make_Identifier (Loc, Chars (E))
!                         else Make_Selected_Component (Loc,
!                                Prefix        => Qualify_Name (S, Scope (E)),
!                                Selector_Name =>
!                                  Make_Identifier (Loc, Chars (E))));
!                      --  Return the qualified name of E up to scope S
  
!                      Nam : Node_Id;
!                      S   : Entity_Id;
  
!                   begin
!                      S := Scope (Typ);
!                      while not Is_Immediately_Visible (S) loop
!                         S := Scope (S);
!                         exit when Is_Generic_Unit (S);
!                      end loop;
! 
!                      if not Is_Generic_Unit (S)
!                        and then (not In_Open_Scopes (S)
!                                   or else Current_Entity (S) = S)
!                      then
!                         Nam := Qualify_Name (S, Typ);
!                      else
!                         Nam := Make_Identifier (Loc, Chars (Typ));
!                      end if;
! 
!                      Qual :=
!                        Make_Qualified_Expression (Loc,
!                          Subtype_Mark => Nam,
!                          Expression   => Relocate_Node (N));
!                   end;
                 end if;
  
              --  For a full aggregate, if the type is global and a derived
*************** package body Sem_Ch12 is
*** 17814,17825 ****
           elsif Nkind (N) = N_Pragma then
              Save_References_In_Pragma (N);
  
           elsif Nkind (N) =  N_Aspect_Specification then
              declare
                 P : constant Node_Id := Parent (N);
-                Expr : Node_Id;
-             begin
  
                 if Permits_Aspect_Specifications (P) then
  
                    --  The capture of global references within aspects
--- 18537,18549 ----
           elsif Nkind (N) = N_Pragma then
              Save_References_In_Pragma (N);
  
+          --  Aspects
+ 
           elsif Nkind (N) =  N_Aspect_Specification then
              declare
                 P : constant Node_Id := Parent (N);
  
+             begin
                 if Permits_Aspect_Specifications (P) then
  
                    --  The capture of global references within aspects
*************** package body Sem_Ch12 is
*** 17831,17845 ****
                    if Requires_Delayed_Save (Original_Node (P)) then
                       null;
  
!                      --  Otherwise save all global references within the
!                      --  aspects
! 
!                   else
!                      Expr := Expression (N);
  
!                      if Present (Expr) then
!                         Save_Global_References (Expr);
!                      end if;
                    end if;
                 end if;
              end;
--- 18555,18565 ----
                    if Requires_Delayed_Save (Original_Node (P)) then
                       null;
  
!                   --  Otherwise save all global references within the
!                   --  expression of the aspect.
  
!                   elsif Present (Expression (N)) then
!                      Save_Global_References (Expression (N));
                    end if;
                 end if;
              end;
*************** package body Sem_Ch12 is
*** 17849,17858 ****
           elsif Nkind (N) = N_Implicit_Label_Declaration then
              null;
  
           else
              Save_References_In_Descendants (N);
           end if;
- 
        end Save_References;
  
        ---------------------
--- 18569,18579 ----
           elsif Nkind (N) = N_Implicit_Label_Declaration then
              null;
  
+          --  Other nodes
+ 
           else
              Save_References_In_Descendants (N);
           end if;
        end Save_References;
  
        ---------------------
*************** package body Sem_Ch12 is
*** 17915,17936 ****
           elsif No (Full_View (Typ)) and then Typ /= Etype (Typ) then
              null;
  
!          --  Otherwise mark the type for flipping and set the full view on N2
!          --  when available, which is necessary for Check_Private_View to swap
!          --  back the views in case the full declaration of Typ is visible in
!          --  the instantiation context. Note that this will be problematic if
!          --  N2 is re-analyzed later, e.g. if it's a default value in a call.
  
           else
              Set_Has_Private_View (N);
- 
-             if Present (Full_View (Typ)) then
-                if Comparison then
-                   Set_Compare_Type (N2, Full_View (Typ));
-                else
-                   Set_Etype (N2, Full_View (Typ));
-                end if;
-             end if;
           end if;
  
           if Is_Floating_Point_Type (Typ)
--- 18636,18645 ----
           elsif No (Full_View (Typ)) and then Typ /= Etype (Typ) then
              null;
  
!          --  Otherwise mark the node as seeing the private view
  
           else
              Set_Has_Private_View (N);
           end if;
  
           if Is_Floating_Point_Type (Typ)
*************** package body Sem_Ch12 is
*** 17958,17984 ****
        Save_References (Templ);
     end Save_Global_References;
  
-    ---------------------------------------
-    -- Save_Global_References_In_Aspects --
-    ---------------------------------------
- 
-    procedure Save_Global_References_In_Aspects (N : Node_Id) is
-       Asp  : Node_Id;
-       Expr : Node_Id;
- 
-    begin
-       Asp := First (Aspect_Specifications (N));
-       while Present (Asp) loop
-          Expr := Expression (Asp);
- 
-          if Present (Expr) then
-             Save_Global_References (Expr);
-          end if;
- 
-          Next (Asp);
-       end loop;
-    end Save_Global_References_In_Aspects;
- 
     ------------------------------------------
     -- Set_Copied_Sloc_For_Inherited_Pragma --
     ------------------------------------------
--- 18667,18672 ----
*************** package body Sem_Ch12 is
*** 18012,18020 ****
  
     procedure Set_Instance_Of (A : Entity_Id; B : Entity_Id) is
     begin
!       Generic_Renamings.Table (Generic_Renamings.Last) := (A, B, Assoc_Null);
        Generic_Renamings_HTable.Set (Generic_Renamings.Last);
-       Generic_Renamings.Increment_Last;
     end Set_Instance_Of;
  
     --------------------
--- 18700,18707 ----
  
     procedure Set_Instance_Of (A : Entity_Id; B : Entity_Id) is
     begin
!       Generic_Renamings.Append ((A, B, Assoc_Null));
        Generic_Renamings_HTable.Set (Generic_Renamings.Last);
     end Set_Instance_Of;
  
     --------------------
*************** package body Sem_Ch12 is
*** 18550,18562 ****
              end if;
  
           when N_Formal_Signed_Integer_Type_Definition =>
!             if not Is_Integer_Type (Def_Sub) then
                 Error_Msg_NE ("default for& must be a discrete type",
                   Default, Formal);
              end if;
  
           when N_Formal_Modular_Type_Definition =>
!             if not Is_Modular_Integer_Type (Def_Sub) then
                 Error_Msg_NE ("default for& must be a modular_integer Type",
                   Default, Formal);
              end if;
--- 19237,19249 ----
              end if;
  
           when N_Formal_Signed_Integer_Type_Definition =>
!             if not Has_Overflow_Operations (Def_Sub) then
                 Error_Msg_NE ("default for& must be a discrete type",
                   Default, Formal);
              end if;
  
           when N_Formal_Modular_Type_Definition =>
!             if not Has_Modular_Operations (Def_Sub) then
                 Error_Msg_NE ("default for& must be a modular_integer Type",
                   Default, Formal);
              end if;
*************** package body Sem_Ch12 is
*** 18647,18685 ****
        --------------------
  
        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;
--- 19334,19355 ----
        --------------------
  
        function Save_And_Reset return Context is
+          First : constant Integer := Integer (Generic_Renamings.First);
+          Last  : constant Integer := Integer (Generic_Renamings.Last);
        begin
!          return Result : Context (First .. 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
!                   Result_Pair.Formal_Id := Indexed_Assoc.Gen_Id;
!                   Result_Pair.Actual_Id := Indexed_Assoc.Act_Id;
                 end;
              end loop;
  
              Generic_Renamings.Init;
              Generic_Renamings_HTable.Reset;
           end return;
        end Save_And_Reset;
*************** package body Sem_Ch12 is
*** 18691,18703 ****
        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;
--- 19361,19370 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch12.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch12.ads
*** gcc-15.2.0/gcc/ada/sem_ch12.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch12.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 44,49 ****
--- 44,57 ----
     --  Must be invoked just at the end of the end of the processing of a
     --  generic spec or body.
  
+    function Build_Structural_Instantiation
+      (N        : Node_Id;
+       Gen_Unit : Entity_Id;
+       Actuals  : List_Id) return Entity_Id;
+    --  Build a structural instantiation of Gen_Unit on Actuals at N and return
+    --  its defining entity, after either having inserted it at the appropriate
+    --  place in the tree or turned it into a renaming of a previous instance.
+ 
     procedure Check_Generic_Child_Unit
       (Gen_Id           : Node_Id;
        Parent_Installed : in out Boolean);
*************** package Sem_Ch12 is
*** 56,61 ****
--- 64,85 ----
     --  this call, then Parent_Installed is set True, otherwise Parent_Installed
     --  is unchanged by the call.
  
+    procedure Check_Private_View (N : Node_Id);
+    --  Check whether the type of a generic entity has a different view between
+    --  the point of generic analysis and the point of instantiation. If the
+    --  view has changed, then at the point of instantiation we restore the
+    --  correct view to perform semantic analysis of the instance, and reset
+    --  the current view after instantiation. The processing is driven by the
+    --  current private status of the type of the node, and Has_Private_View,
+    --  a flag that is set at the point of generic compilation. If view and
+    --  flag are inconsistent then the type is updated appropriately. A second
+    --  flag Has_Secondary_Private_View is used to update a second type related
+    --  to this type if need be.
+    --
+    --  This subprogram is used in Check_Generic_Actuals and Copy_Generic_Node,
+    --  and is exported here for the purpose of front-end inlining (see Exp_Ch6.
+    --  Expand_Inlined_Call.Process_Formals).
+ 
     function Copy_Generic_Node
       (N             : Node_Id;
        Parent_Id     : Node_Id;
*************** package Sem_Ch12 is
*** 114,119 ****
--- 138,146 ----
     --  Return true if E is a package created for an abbreviated instantiation
     --  to check conformance between formal package and corresponding actual.
  
+    procedure Mark_Link_Once (Decls : List_Id);
+    --  Mark all the structural instances present in Decls as Link Once
+ 
     function Need_Subprogram_Instance_Body
       (N    : Node_Id;
        Subp : Entity_Id) return Boolean;
*************** package Sem_Ch12 is
*** 139,148 ****
     --  restored in stack-like fashion. Front-end inlining also uses these
     --  structures for the management of private/full views.
  
-    procedure Save_Global_References_In_Aspects (N : Node_Id);
-    --  Save all global references found within the expressions of all aspects
-    --  that appear on node N.
- 
     procedure Set_Copied_Sloc_For_Inlined_Body (N : Node_Id; E : Entity_Id);
     --  This procedure is used when a subprogram body is inlined. This process
     --  shares the same circuitry as the creation of an instantiated copy of
--- 166,171 ----
*************** package Sem_Ch12 is
*** 221,240 ****
     procedure Initialize;
     --  Initializes internal data structures
  
-    procedure Check_Private_View (N : Node_Id);
-    --  Check whether the type of a generic entity has a different view between
-    --  the point of generic analysis and the point of instantiation. If the
-    --  view has changed, then at the point of instantiation we restore the
-    --  correct view to perform semantic analysis of the instance, and reset
-    --  the current view after instantiation. The processing is driven by the
-    --  current private status of the type of the node, and Has_Private_View,
-    --  a flag that is set at the point of generic compilation. If view and
-    --  flag are inconsistent then the type is updated appropriately. A second
-    --  flag Has_Secondary_Private_View is used to update a second type related
-    --  to this type if need be.
-    --
-    --  This subprogram is used in Check_Generic_Actuals and Copy_Generic_Node,
-    --  and is exported here for the purpose of front-end inlining (see Exp_Ch6.
-    --  Expand_Inlined_Call.Process_Formals).
- 
  end Sem_Ch12;
--- 244,247 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch13.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch13.adb
*** gcc-15.2.0/gcc/ada/sem_ch13.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch13.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,42 ****
  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 Elists;           use Elists;
  with Errout;           use Errout;
  with Exp_Ch3;          use Exp_Ch3;
  with Exp_Disp;         use Exp_Disp;
  with Exp_Tss;          use Exp_Tss;
  with Exp_Util;         use Exp_Util;
  with Expander;         use Expander;
--- 29,42 ----
  with Checks;           use Checks;
  with Contracts;        use Contracts;
  with Debug;            use Debug;
  with Einfo.Entities;   use Einfo.Entities;
  with Einfo.Utils;      use Einfo.Utils;
  with Elists;           use Elists;
+ with Errid;            use Errid;
  with Errout;           use Errout;
  with Exp_Ch3;          use Exp_Ch3;
  with Exp_Disp;         use Exp_Disp;
+ with Exp_Strm;         use Exp_Strm;
  with Exp_Tss;          use Exp_Tss;
  with Exp_Util;         use Exp_Util;
  with Expander;         use Expander;
*************** with Restrict;         use Restrict;
*** 54,59 ****
--- 54,60 ----
  with Rident;           use Rident;
  with Rtsfind;          use Rtsfind;
  with Sem;              use Sem;
+ with Sem_Aggr;         use Sem_Aggr;
  with Sem_Aux;          use Sem_Aux;
  with Sem_Case;         use Sem_Case;
  with Sem_Cat;          use Sem_Cat;
*************** with Sem_Res;          use Sem_Res;
*** 68,74 ****
  with Sem_Type;         use Sem_Type;
  with Sem_Util;         use Sem_Util;
  with Sem_Warn;         use Sem_Warn;
- with Sinfo;            use Sinfo;
  with Sinfo.Nodes;      use Sinfo.Nodes;
  with Sinfo.Utils;      use Sinfo.Utils;
  with Sinput;           use Sinput;
--- 69,74 ----
*************** package body Sem_Ch13 is
*** 336,341 ****
--- 336,348 ----
     --  Resolve each one of the arguments specified in the specification of
     --  aspect Finalizable.
  
+    function Resolve_Finalization_Procedure
+      (N   : Node_Id;
+       Typ : Entity_Id) return Boolean;
+    --  Resolve a procedure argument specified in the specification of one of
+    --  the finalization aspects, i.e. Finalizable and Destructor. Returns True
+    --  if successful, False otherwise.
+ 
     procedure Resolve_Iterable_Operation
       (N      : Node_Id;
        Cursor : Entity_Id;
*************** package body Sem_Ch13 is
*** 433,443 ****
  
        Off : Boolean;
        --  Whether the address is offset within Y in the second case
- 
-       Alignment_Checks_Suppressed : Boolean;
-       --  Whether alignment checks are suppressed by an active scope suppress
-       --  setting. We need to save the value in order to be able to reuse it
-       --  after the back end has been run.
     end record;
  
     package Address_Clause_Checks is new Table.Table (
--- 440,445 ----
*************** package body Sem_Ch13 is
*** 448,473 ****
       Table_Increment      => 200,
       Table_Name           => "Address_Clause_Checks");
  
-    function Alignment_Checks_Suppressed
-      (ACCR : Address_Clause_Check_Record) return Boolean;
-    --  Return whether the alignment check generated for the address clause
-    --  is suppressed.
- 
-    ---------------------------------
-    -- Alignment_Checks_Suppressed --
-    ---------------------------------
- 
-    function Alignment_Checks_Suppressed
-      (ACCR : Address_Clause_Check_Record) return Boolean
-    is
-    begin
-       if Checks_May_Be_Suppressed (ACCR.X) then
-          return Is_Check_Suppressed (ACCR.X, Alignment_Check);
-       else
-          return ACCR.Alignment_Checks_Suppressed;
-       end if;
-    end Alignment_Checks_Suppressed;
- 
     -----------------------------------------
     -- Adjust_Record_For_Reverse_Bit_Order --
     -----------------------------------------
--- 450,455 ----
*************** package body Sem_Ch13 is
*** 994,999 ****
--- 976,992 ----
        --  aspect has the proper profile. If the name is overloaded, check that
        --  some interpretation is legal.
  
+       procedure Check_Nonoverridable_Aspect_Subprograms
+         (ASN      : Node_Id;
+          E        : Entity_Id;
+          Original : Entity_Id := Empty);
+       --  RM 13.1.1(18.4/6) requires checking that if any of the subprograms
+       --  denoted by a nonoverridable aspect ASN has a parameter or result of
+       --  either type E or access E, then all denoted subprograms are
+       --  primitive. If missing, Original is initialized with ASN and will not
+       --  change during the recursive exploration of aggregate aspects, it is
+       --  used to improve the error message.
+ 
        procedure Make_Pragma_From_Boolean_Aspect (ASN : Node_Id);
        --  Given an aspect specification node ASN whose expression is an
        --  optional Boolean, this routines creates the corresponding pragma
*************** package body Sem_Ch13 is
*** 1197,1202 ****
--- 1190,1389 ----
           end if;
        end Check_Indexing_Functions;
  
+       ---------------------------------------------
+       -- Check_Nonoverridable_Aspect_Subprograms --
+       ---------------------------------------------
+ 
+       procedure Check_Nonoverridable_Aspect_Subprograms
+         (ASN      : Node_Id;
+          E        : Entity_Id;
+          Original : Node_Id := Empty)
+       is
+          Expr : constant Node_Id   := Expression (ASN);
+          Kind : constant Node_Kind := Nkind (Expr);
+ 
+          function Required_To_Be_Primitive (Subp : Entity_Id) return Boolean;
+          --  This function returns True if Subp, belonging to a nonoverridable
+          --  aspect of the entity E, is required to be a primitive operation.
+          --  Specifically, whenever either its return type or any of its
+          --  formals are of either type E or access E.
+ 
+          function Required_To_Be_Primitive (Subp : Entity_Id) return Boolean is
+             Return_Typ  : constant Entity_Id := Etype (Subp);
+             Last_Formal : constant Entity_Id := Last_Entity (Subp);
+             Cursor      : Entity_Id          := First_Entity (Subp);
+          begin
+             if Return_Typ = E
+               or else (Ekind (Return_Typ) in Access_Kind
+                         and then Directly_Designated_Type (Return_Typ) = E)
+             then
+                return True;
+ 
+             elsif Present (Cursor) then
+                loop
+                   if Etype (Cursor) = E
+                     or else (Ekind (Cursor) in Access_Kind
+                               and then Directly_Designated_Type (Cursor) = E)
+                   then
+                      return True;
+                   end if;
+ 
+                   exit when Cursor = Last_Formal;
+ 
+                   Cursor := Next_Entity (Cursor);
+                end loop;
+             end if;
+ 
+             return False;
+          end Required_To_Be_Primitive;
+ 
+          --  Local Variables
+ 
+          Valid   : Boolean   := True;
+          Problem : Entity_Id := Empty;
+ 
+       --  Start of processing for Check_Nonoverridable_Aspect_Subprograms
+ 
+       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 the expression is neither an aggregate nor a node denoting an
+          --  entity, then also no point in validating.
+ 
+          if Kind not in N_Aggregate | N_Has_Entity then
+             return;
+          end if;
+ 
+          --  Original should point to ASN if this is the first recursive call
+ 
+          if No (Original) then
+             Check_Nonoverridable_Aspect_Subprograms
+               (ASN => ASN,
+                E => E,
+                Original => ASN);
+             return;
+          end if;
+ 
+          if Kind = N_Aggregate then
+             declare
+                Aggregate_List : constant List_Id :=
+                  Component_Associations (Expr);
+                Current : Node_Id := First (Aggregate_List);
+             begin
+                --  Each component association must be checked separately
+ 
+                while Present (Current) loop
+ 
+                   Check_Nonoverridable_Aspect_Subprograms
+                     (ASN      => Current,
+                      E        => E,
+                      Original => Original);
+ 
+                   Next (Current);
+                end loop;
+             end;
+ 
+          else
+             --  Some expressions may be unanalyzed, as some nonoverridable
+             --  aspects allow forward references. For instance, when the type E
+             --  is defined inside a package body.
+ 
+             if No (Entity (Expr)) then
+                Analyze (Expr);
+             end if;
+ 
+             declare
+                Subp : constant Entity_Id := Entity (Expr);
+             begin
+ 
+                --  No point in validating a node that does not represent a
+                --  subprogram here.
+ 
+                if not Is_Subprogram (Subp) then
+                   return;
+                end if;
+ 
+                if not Is_Overloaded (Expr) then
+                   Valid := (if Required_To_Be_Primitive (Subp)
+                              then Is_Primitive (Subp));
+ 
+                   Problem := Subp;
+ 
+                else
+                   declare
+                      Found : Boolean := False;
+                      I     : Interp_Index;
+                      It    : Interp;
+                   begin
+                      --  Check whether there is at least one interpretation
+                      --  that is required to be primitive. We iterate over all
+                      --  possible interpretations, as some may be removed.
+ 
+                      Get_First_Interp (Expr, I, It);
+                      while Present (It.Nam) loop
+ 
+                         --  If the current interpretation is not declared
+                         --  within the scope of E, then it should not be
+                         --  considered, see RM 13.1.1(8/6).
+ 
+                         if not Within_Scope (It.Nam, Scope (E)) then
+                            Remove_Interp (I);
+ 
+                         else
+                            Found := Found
+                              or else Required_To_Be_Primitive (It.Nam);
+                         end if;
+ 
+                         Get_Next_Interp (I, It);
+                      end loop;
+ 
+                      if Found then
+ 
+                         --  To satisfy the legality rule in RM 13.1.1(18.2/5),
+                         --  if there's at least one interpretation that's
+                         --  primitive, then all of them must be primitive;
+                         --  otherwise we emit an error.
+ 
+                         Get_First_Interp (Expr, I, It);
+                         pragma Warnings (Off, Valid); -- Valid not always True
+                         while Valid and then Present (It.Nam) loop
+ 
+                            Valid := Valid and then Is_Primitive (It.Nam);
+                            Problem := It.Nam;
+ 
+                            Get_Next_Interp (I, It);
+                         end loop;
+                      end if;
+                   end;
+                end if;
+             end;
+          end if;
+ 
+          if not Valid then
+             declare
+                Operation_Kind : constant String :=
+                  (if Comes_From_Source (Problem)
+                    then "declared"
+                    else "inherited");
+             begin
+                Error_Msg_Name_1 := Chars (Identifier (Original));
+                Error_Msg_Name_2 := Chars (E);
+                Error_Msg_Name_3 := Chars (Problem);
+                Error_Msg_Sloc := Sloc (Problem);
+                Error_Msg_N ("nonoverridable aspect % of type % requires % "
+                             & Operation_Kind
+                             & "# to be a primitive operation",
+                             Expr);
+             end;
+          end if;
+       end Check_Nonoverridable_Aspect_Subprograms;
+ 
        -------------------------------------
        -- Make_Pragma_From_Boolean_Aspect --
        -------------------------------------
*************** package body Sem_Ch13 is
*** 1340,1348 ****
        --  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);
--- 1527,1533 ----
        --  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 In_Open_Scopes (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
*** 1540,1545 ****
--- 1725,1738 ----
                 if Present (Ritem) then
                    Analyze (Ritem);
                 end if;
+ 
+                --  All nonoverriding aspects need further legality checks
+ 
+                if A_Id in Nonoverridable_Aspect_Id
+                  and then Ada_Version >= Ada_2022
+                then
+                   Check_Nonoverridable_Aspect_Subprograms (ASN, E);
+                end if;
              end if;
           end if;
  
*************** package body Sem_Ch13 is
*** 1620,1625 ****
--- 1813,1819 ----
        --    Part_Of
        --    Post
        --    Pre
+       --    Program_Exit
        --    Refined_Depends
        --    Refined_Global
        --    Refined_Post
*************** package body Sem_Ch13 is
*** 1872,1882 ****
        --  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
!       --  pragma after the node N.
  
        if No (L) then
           return;
--- 2066,2076 ----
        --  analyzed right now.
  
        --  Note that there is a special handling for Pre, Post, Test_Case,
!       --  Contract_Cases, Always_Terminates, Exit_Cases, Exceptional_Cases,
!       --  Program_Exit 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 pragma after the node N.
  
        if No (L) then
           return;
*************** package body Sem_Ch13 is
*** 1928,1933 ****
--- 2122,2130 ----
              procedure Analyze_Aspect_Implicit_Dereference;
              --  Perform analysis of the Implicit_Dereference aspects
  
+             procedure Analyze_Aspect_Potentially_Invalid;
+             --  Perform analysis of aspect Potentially_Invalid
+ 
              procedure Analyze_Aspect_Relaxed_Initialization;
              --  Perform analysis of aspect Relaxed_Initialization
  
*************** package body Sem_Ch13 is
*** 1937,1942 ****
--- 2134,2147 ----
              procedure Analyze_Aspect_Static;
              --  Ada 2022 (AI12-0075): Perform analysis of aspect Static
  
+             procedure Check_Constructor_Initialization_Expression
+               (Expr : Node_Id; Aspect_Name : String);
+             --  Check legality rules for an expression occurring as
+             --  an expression of a Super or Initialize aspect specification.
+             --  These expressions are evaluated before the constructed
+             --  object has been initialized and therefore shall not
+             --  reference that object.
+ 
              procedure Check_Expr_Is_OK_Static_Expression
                (Expr : Node_Id;
                 Typ  : Entity_Id := Empty);
*************** package body Sem_Ch13 is
*** 1948,1953 ****
--- 2153,2166 ----
              --  expression is allowed. Includes checking that the expression
              --  does not raise Constraint_Error.
  
+             procedure Convert_Aspect_With_Assertion_Levels (Aspect : Node_Id);
+             --  If an Aspect is using an association with an Assertion_Level
+             --  analyze the aspect with the level and convert it into an aspect
+             --  without the Assertion_Level. In the case the aspect has
+             --  associations with Assertion_Levels then multiple aspects are
+             --  created and each one will point to the original aspect that
+             --  they were created from in the Original_Aspect field.
+ 
              function Directly_Specified
                (Id : Entity_Id; A : Aspect_Id) return Boolean;
              --  Returns True if the given aspect is directly (as opposed to
*************** package body Sem_Ch13 is
*** 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 --
--- 2171,2180 ----
                 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
!             --  Class_Present and Is_Ignored are set from the aspect node.
!             --  This routine also sets From_Aspect_Specification to True,
!             --  and sets Corresponding_Aspect to point to the aspect.
  
              -------------------------------
              -- Analyze_Aspect_Convention --
*************** package body Sem_Ch13 is
*** 2138,2144 ****
                 then
                    if A_Id = Aspect_Import then
                       Set_Has_Completion (E);
!                      Set_Is_Imported (E);
  
                       --  An imported object cannot be explicitly initialized
  
--- 2349,2361 ----
                 then
                    if A_Id = Aspect_Import then
                       Set_Has_Completion (E);
! 
!                      --  Do not set Is_Imported on Exceptions, similarly
!                      --  to Sem_Prag.Process_Import_Or_Interface.
! 
!                      if Ekind (E) /= E_Exception then
!                         Set_Is_Imported (E);
!                      end if;
  
                       --  An imported object cannot be explicitly initialized
  
*************** package body Sem_Ch13 is
*** 2295,2300 ****
--- 2512,2778 ----
  
              end Analyze_Aspect_Implicit_Dereference;
  
+             ----------------------------------------
+             -- Analyze_Aspect_Potentially_Invalid --
+             ----------------------------------------
+ 
+             procedure Analyze_Aspect_Potentially_Invalid is
+                procedure Analyze_Aspect_Parameter
+                  (Subp_Id : Entity_Id;
+                   Param   : Node_Id;
+                   Seen    : in out Elist_Id);
+                --  Analyze parameter that appears in the expression of the
+                --  aspect Potentially_Invalid.
+ 
+                ------------------------------
+                -- Analyze_Aspect_Parameter --
+                ------------------------------
+ 
+                procedure Analyze_Aspect_Parameter
+                  (Subp_Id : Entity_Id;
+                   Param   : Node_Id;
+                   Seen    : in out Elist_Id)
+                is
+                begin
+                   --  Set name of the aspect for error messages
+                   Error_Msg_Name_1 := Nam;
+ 
+                   --  The potentially invalid parameter is a formal parameter
+ 
+                   if Nkind (Param) in N_Identifier | N_Expanded_Name then
+                      Analyze (Param);
+ 
+                      declare
+                         Item : constant Entity_Id := Entity (Param);
+                      begin
+                         --  It must be a formal of the analyzed subprogram
+ 
+                         if Scope (Item) = Subp_Id then
+ 
+                            pragma Assert (Is_Formal (Item));
+ 
+                            --  It must not have scalar type
+ 
+                            if Is_Scalar_Type (Underlying_Type (Etype (Item)))
+                            then
+                               Error_Msg_N ("illegal aspect % item", Param);
+                               Error_Msg_N
+                                 ("\item must not have scalar type", Param);
+                            end if;
+ 
+                            --  Detect duplicated items
+ 
+                            if Contains (Seen, Item) then
+                               Error_Msg_N ("duplicate aspect % item", Param);
+                            else
+                               Append_New_Elmt (Item, Seen);
+                            end if;
+                         else
+                            Error_Msg_N ("illegal aspect % item", Param);
+                         end if;
+                      end;
+ 
+                   --  The potentially invalid parameter is the function's
+                   --  Result attribute.
+ 
+                   elsif Is_Attribute_Result (Param) then
+                      Analyze (Param);
+ 
+                      declare
+                         Pref : constant Node_Id := Prefix (Param);
+                      begin
+                         if Present (Pref)
+                           and then
+                             Nkind (Pref) in N_Identifier | N_Expanded_Name
+                           and then
+                             Entity (Pref) = Subp_Id
+                         then
+                            --  Detect duplicated items
+ 
+                            if Contains (Seen, Subp_Id) then
+                               Error_Msg_N ("duplicate aspect % item", Param);
+                            else
+                               Append_New_Elmt (Entity (Pref), Seen);
+                            end if;
+ 
+                         else
+                            Error_Msg_N ("illegal aspect % item", Param);
+                         end if;
+                      end;
+                   else
+                      Error_Msg_N ("illegal aspect % item", Param);
+                   end if;
+                end Analyze_Aspect_Parameter;
+ 
+                --  Local variables
+ 
+                Seen : Elist_Id := No_Elist;
+                --  Items that appear in the potentially invalid aspect
+                --  expression of a subprogram; for detecting duplicates.
+ 
+                Restore_Scope : Boolean;
+                --  Will be set to True if we need to restore the scope table
+                --  after analyzing the aspect expression.
+ 
+             --  Start of processing for Analyze_Aspect_Potentially_Invalid
+ 
+             begin
+                --  Set name of the aspect for error messages
+                Error_Msg_Name_1 := Nam;
+ 
+                --  Annotation of a variable; no aspect expression is allowed
+ 
+                if Ekind (E) = E_Variable then
+                   if Present (Expr) then
+                      Error_Msg_N ("illegal aspect % expression", Expr);
+                   end if;
+ 
+                --  Annotation of a constant; no aspect expression is allowed.
+                --  For a deferred constant, the aspect must be attached to the
+                --  partial view.
+ 
+                elsif Ekind (E) = E_Constant then
+                   if Present (Incomplete_Or_Partial_View (E)) then
+                      Error_Msg_N
+                        ("aspect % must apply to deferred constant", N);
+ 
+                   elsif Present (Expr) then
+                      Error_Msg_N ("illegal aspect % expression", Expr);
+                   end if;
+ 
+                --  Annotation of a subprogram; aspect expression is required
+ 
+                elsif Is_Subprogram_Or_Entry (E)
+                  or else Is_Generic_Subprogram (E)
+                then
+ 
+                   --  Not allowed for renaming declarations. Examine the
+                   --  original node because a subprogram renaming may have been
+                   --  rewritten as a body.
+ 
+                   if Nkind (Original_Node (N)) in N_Renaming_Declaration then
+                      Error_Msg_N
+                        ("aspect % not allowed for renaming declaration",
+                         Aspect);
+                   end if;
+ 
+                   if Present (Expr) then
+ 
+                      --  If we analyze subprogram body that acts as its own
+                      --  spec, then the subprogram itself and its formals are
+                      --  already installed; otherwise, we need to install them,
+                      --  as they must be visible when analyzing the aspect
+                      --  expression.
+ 
+                      if In_Open_Scopes (E) then
+                         Restore_Scope := False;
+                      else
+                         Restore_Scope := True;
+                         Push_Scope (E);
+ 
+                         --  Only formals of the subprogram itself can appear
+                         --  in Potentially_Invalid aspect expression, not
+                         --  formals of the enclosing generic unit. (This is
+                         --  different than in Precondition or Depends aspects,
+                         --  where both kinds of formals are allowed.)
+ 
+                         Install_Formals (E);
+                      end if;
+ 
+                      --  Aspect expression is either an aggregate with list of
+                      --  parameters (and possibly the Result attribute for a
+                      --  function).
+ 
+                      if Nkind (Expr) = N_Aggregate then
+ 
+                         --  Component associations in the aggregate must be a
+                         --  parameter name followed by a static boolean
+                         --  expression.
+ 
+                         if Present (Component_Associations (Expr)) then
+                            declare
+                               Assoc : Node_Id :=
+                                 First (Component_Associations (Expr));
+                            begin
+                               while Present (Assoc) loop
+                                  if List_Length (Choices (Assoc)) = 1 then
+                                     Analyze_Aspect_Parameter
+                                       (E, First (Choices (Assoc)), Seen);
+ 
+                                     if Inside_A_Generic then
+                                        Preanalyze_And_Resolve
+                                          (Expression (Assoc), Any_Boolean);
+                                     else
+                                        Analyze_And_Resolve
+                                          (Expression (Assoc), Any_Boolean);
+                                     end if;
+ 
+                                     if not Is_OK_Static_Expression
+                                       (Expression (Assoc))
+                                     then
+                                        Error_Msg_Name_1 := Nam;
+                                        Flag_Non_Static_Expr
+                                          ("expression of aspect % " &
+                                           "must be static!", Aspect);
+                                     end if;
+ 
+                                  else
+                                     Error_Msg_Name_1 := Nam;
+                                     Error_Msg_N
+                                       ("illegal aspect % expression", Expr);
+                                  end if;
+                                  Next (Assoc);
+                               end loop;
+                            end;
+                         end if;
+ 
+                         --  Expressions of the aggregate are parameter names
+ 
+                         if Present (Expressions (Expr)) then
+                            declare
+                               Param : Node_Id := First (Expressions (Expr));
+ 
+                            begin
+                               while Present (Param) loop
+                                  Analyze_Aspect_Parameter (E, Param, Seen);
+                                  Next (Param);
+                               end loop;
+                            end;
+                         end if;
+ 
+                         --  Mark the aggregate expression itself as analyzed;
+                         --  its subexpressions were marked when they themselves
+                         --  were analyzed.
+ 
+                         Set_Analyzed (Expr);
+ 
+                      --  Otherwise, it is a single name of a subprogram
+                      --  parameter (or possibly the Result attribute for
+                      --  a function).
+ 
+                      else
+                         Analyze_Aspect_Parameter (E, Expr, Seen);
+                      end if;
+ 
+                      if Restore_Scope then
+                         End_Scope;
+                      end if;
+ 
+                   --  For instances of Ada.Unchecked_Conversion, allow a
+                   --  parameterless aspect, as the 'Result attribute is not
+                   --  defined there.
+ 
+                   elsif Is_Unchecked_Conversion_Instance (E) then
+                      null;
+                   else
+                      Error_Msg_N ("missing expression for aspect %", N);
+                   end if;
+ 
+                else
+                   Error_Msg_N ("inappropriate entity for aspect %", E);
+                end if;
+             end Analyze_Aspect_Potentially_Invalid;
+ 
              -------------------------------------------
              -- Analyze_Aspect_Relaxed_Initialization --
              -------------------------------------------
*************** package body Sem_Ch13 is
*** 2818,2823 ****
--- 3296,3348 ----
                 end if;
              end Analyze_Aspect_Yield;
  
+             -------------------------------------------------
+             -- Check_Constructor_Initialization_Expression --
+             -------------------------------------------------
+ 
+             procedure Check_Constructor_Initialization_Expression
+               (Expr : Node_Id; Aspect_Name : String)
+             is
+                First_Parameter : Entity_Id;
+ 
+                --  Flag error if N refers to the forbidden entity
+                function Check_Node_For_Bad_Reference
+                  (N : Node_Id) return Traverse_Result;
+ 
+                ----------------------------------
+                -- Check_Node_For_Bad_Reference --
+                ----------------------------------
+ 
+                function Check_Node_For_Bad_Reference
+                  (N : Node_Id) return Traverse_Result is
+                begin
+                   if Nkind (N) = N_Identifier
+                     and then Entity (N) = First_Parameter
+                   then
+                      Error_Msg_N
+                        ("constructed object referenced in " &
+                         Aspect_Name & " aspect_specification", N);
+                   end if;
+ 
+                   return OK;
+                end Check_Node_For_Bad_Reference;
+ 
+                procedure Check_Tree_For_Bad_Reference is
+                  new Traverse_Proc (Check_Node_For_Bad_Reference);
+             begin
+                --  If coming from an implicit constructor, the Self parameter
+                --  is retrieved via the specification's defining unit name.
+ 
+                if Acts_As_Spec (N) then
+                   First_Parameter :=
+                     First_Entity (Defining_Unit_Name (Specification (N)));
+                else
+                   First_Parameter := First_Entity (Corresponding_Spec (N));
+                end if;
+ 
+                Check_Tree_For_Bad_Reference (Expr);
+             end Check_Constructor_Initialization_Expression;
+ 
              ----------------------------------------
              -- Check_Expr_Is_OK_Static_Expression --
              ----------------------------------------
*************** package body Sem_Ch13 is
*** 2841,2846 ****
--- 3366,3438 ----
                 end case;
              end Check_Expr_Is_OK_Static_Expression;
  
+             ------------------------------------------
+             -- Convert_Aspect_With_Assertion_Levels --
+             ------------------------------------------
+ 
+             procedure Convert_Aspect_With_Assertion_Levels (Aspect : Node_Id)
+             is
+                Assoc      : Node_Id;
+                Assocs     : List_Id;
+                Choice     : Node_Id;
+                Level      : Entity_Id;
+                Sub_Expr   : Node_Id;
+                New_Aspect : Node_Id;
+             begin
+                Assocs := Component_Associations (Expression (Aspect));
+                Assoc := First (Assocs);
+ 
+                if Present (Expressions (Expression (Aspect))) then
+                   Error_Msg_N
+                     ("wrong syntax for argument of %", Expression (Aspect));
+                   Error_Msg_N
+                     ("\aspect with Assertion_Level can only contain "
+                      & "contain Assertion_Level associations",
+                      Expression (Aspect));
+                end if;
+ 
+                while Present (Assoc) loop
+                   if List_Length (Choices (Assoc)) > 1 then
+                      Error_Msg_Name_1 := Nam;
+                      Error_Msg_N ("wrong syntax for argument of %", Assoc);
+                      Error_Msg_N
+                        ("\only one Assertion_Level can be associated "
+                         & "with an expression",
+                         Assoc);
+                   end if;
+ 
+                   Choice := First (Choices (Assoc));
+ 
+                   if Nkind (Choice) /= N_Identifier then
+                      Error_Msg_N ("wrong syntax for argument of %", Assoc);
+                      Error_Msg_N
+                        ("\association must denote an Assertion_Level", Assoc);
+                   end if;
+ 
+                   Level := Get_Assertion_Level (Chars (Choice));
+ 
+                   Sub_Expr := Expression (Assoc);
+                   New_Aspect :=
+                     Make_Aspect_Specification
+                       (Sloc       => Sloc (Assoc),
+                        Identifier => New_Copy_Tree (Id),
+                        Expression => Sub_Expr);
+ 
+                   Check_Applicable_Policy (New_Aspect, Level);
+ 
+                   Set_Aspect_Ghost_Assertion_Level (New_Aspect, Level);
+ 
+                   Insert_After (Aspect, New_Aspect);
+ 
+                   --  Store the Original_Aspect for the detection of
+                   --  duplicates.
+ 
+                   Set_Original_Aspect (New_Aspect, Aspect);
+ 
+                   Next (Assoc);
+                end loop;
+             end Convert_Aspect_With_Assertion_Levels;
+ 
              ------------------------
              -- Directly_Specified --
              ------------------------
*************** package body Sem_Ch13 is
*** 2887,2897 ****
  
                 --  Set additional semantic fields
  
!                if Is_Ignored (Aspect) then
!                   Set_Is_Ignored (Aitem);
!                elsif Is_Checked (Aspect) then
!                   Set_Is_Checked (Aitem);
!                end if;
  
                 Set_Corresponding_Aspect (Aitem, Aspect);
                 Set_From_Aspect_Specification (Aitem);
--- 3479,3488 ----
  
                 --  Set additional semantic fields
  
!                Set_Is_Checked (Aitem, Is_Checked (Aspect));
!                Set_Is_Ignored (Aitem, Is_Ignored (Aspect));
!                Set_Pragma_Ghost_Assertion_Level
!                   (Aitem, Aspect_Ghost_Assertion_Level (Aspect));
  
                 Set_Corresponding_Aspect (Aitem, Aspect);
                 Set_From_Aspect_Specification (Aitem);
*************** package body Sem_Ch13 is
*** 2912,2918 ****
              --  as such for later reference in the tree. This also sets the
              --  Is_Ignored and Is_Checked flags appropriately.
  
!             Check_Applicable_Policy (Aspect);
  
              if Is_Disabled (Aspect) then
                 goto Continue;
--- 3503,3526 ----
              --  as such for later reference in the tree. This also sets the
              --  Is_Ignored and Is_Checked flags appropriately.
  
!             if Is_Valid_Assertion_Kind (Nam) then
!                if Is_Checked (Aspect) or else Is_Ignored (Aspect) then
!                   null;
! 
!                --  If the Aspect has at least one Assertion_Level argument
!                --  then split the original Aspect into multiple aspects each
!                --  with an associated Assertion_Level.
! 
!                elsif Has_Assertion_Level_Argument (Aspect) then
!                   Convert_Aspect_With_Assertion_Levels (Aspect);
!                   goto Continue;
!                else
!                   Check_Applicable_Policy (Aspect);
!                   Set_Aspect_Ghost_Assertion_Level
!                     (Aspect, Standard_Level_Default);
!                end if;
! 
!             end if;
  
              if Is_Disabled (Aspect) then
                 goto Continue;
*************** package body Sem_Ch13 is
*** 2976,2983 ****
              if No_Duplicates_Allowed (A_Id) then
                 Anod := First (L);
                 while Anod /= Aspect loop
!                   if Comes_From_Source (Aspect)
!                     and then Same_Aspect (A_Id, Get_Aspect_Id (Anod))
                    then
                       Error_Msg_Name_1 := Nam;
                       Error_Msg_Sloc := Sloc (Anod);
--- 3584,3594 ----
              if No_Duplicates_Allowed (A_Id) then
                 Anod := First (L);
                 while Anod /= Aspect loop
! 
!                   if (Comes_From_Source (Aspect)
!                      or else (Original_Aspect (Aspect) /= Anod
!                               and then not From_Same_Aspect (Aspect, Anod)))
!                      and then Same_Aspect (A_Id, Get_Aspect_Id (Anod))
                    then
                       Error_Msg_Name_1 := Nam;
                       Error_Msg_Sloc := Sloc (Anod);
*************** package body Sem_Ch13 is
*** 2987,2998 ****
                       if Class_Present (Anod) = Class_Present (Aspect) then
                          if not Class_Present (Anod) then
                             Error_Msg_NE
!                              ("aspect% for & previously given#",
!                               Id, E);
                          else
                             Error_Msg_NE
                               ("aspect `%''Class` for & previously given#",
!                               Id, E);
                          end if;
                       end if;
                    end if;
--- 3598,3609 ----
                       if Class_Present (Anod) = Class_Present (Aspect) then
                          if not Class_Present (Anod) then
                             Error_Msg_NE
!                              ("aspect% for & previously given#", Id, E);
                          else
                             Error_Msg_NE
                               ("aspect `%''Class` for & previously given#",
!                               Id,
!                               E);
                          end if;
                       end if;
                    end if;
*************** package body Sem_Ch13 is
*** 3009,3014 ****
--- 3620,3626 ----
                              | Aspect_Effective_Reads
                              | Aspect_Effective_Writes
                              | Aspect_Preelaborable_Initialization
+                             | Aspect_Unsigned_Base_Range
              then
                 Error_Msg_Name_1 := Nam;
  
*************** package body Sem_Ch13 is
*** 3122,3127 ****
--- 3734,3746 ----
                    then
                       Delay_Required := False;
  
+                   --  For Unsigned_Base_Range aspect, do not delay becase we
+                   --  need to process it before any type or subtype derivation
+                   --  is analyzed.
+ 
+                   elsif A_Id in Aspect_Unsigned_Base_Range then
+                      Delay_Required := False;
+ 
                    --  All other cases are delayed
  
                    else
*************** package body Sem_Ch13 is
*** 3873,3878 ****
--- 4492,4582 ----
                    goto Continue;
                 end Initial_Condition;
  
+                --  Initialize
+ 
+                when Aspect_Initialize => Initialize : declare
+                   Aspect_Comp : Node_Id;
+                   Type_Comp   : Node_Id;
+                   Typ  : Entity_Id;
+                   Dummy_Aggr : Node_Id;
+                begin
+                   --  Error checking
+ 
+                   if not All_Extensions_Allowed then
+                      Error_Msg_Name_1 := Nam;
+                      Error_Msg_GNAT_Extension ("aspect %", Loc);
+                      goto Continue;
+                   end if;
+ 
+                   if Ekind (E) /= E_Subprogram_Body
+                     or else Nkind (Parent (E)) /= N_Procedure_Specification
+                   then
+                      Error_Msg_N
+                        ("Initialize must apply to a constructor body", N);
+                   end if;
+ 
+                   if Present (Expressions (Expression (Aspect))) then
+                      Error_Msg_N ("only component associations allowed", N);
+                   end if;
+ 
+                   --  Install the others for the aggregate if necessary
+ 
+                   Typ := Etype (First_Entity (E));
+ 
+                   if No (First_Entity (Typ)) then
+                      Error_Msg_N
+                        ("Initialize can only apply to contructors"
+                          & " whose type has one or more components", N);
+                   end if;
+ 
+                   Aspect_Comp :=
+                     First (Component_Associations (Expression (Aspect)));
+                   Type_Comp := First_Entity (Typ);
+                   while Present (Type_Comp) loop
+                      if No (Aspect_Comp) then
+                         Append_To
+                           (Component_Associations (Expression (Aspect)),
+                              Make_Component_Association (Loc,
+                                Choices     =>
+                                  New_List (Make_Others_Choice (Loc)),
+                                Box_Present => True));
+                         exit;
+                      elsif Nkind (First (Choices (Aspect_Comp)))
+                              = N_Others_Choice
+                      then
+                         exit;
+                      end if;
+ 
+                      Next (Aspect_Comp);
+                      Next_Entity (Type_Comp);
+                   end loop;
+ 
+                   --  Analyze the components
+ 
+                   Aspect_Comp :=
+                     First (Component_Associations (Expression (Aspect)));
+                   while Present (Aspect_Comp) loop
+                      declare
+                         Expr : constant Node_Id := Expression (Aspect_Comp);
+                      begin
+                         if Present (Expr) then
+                            Analyze (Expr);
+                            Check_Constructor_Initialization_Expression
+                              (Expr, Aspect_Name => "Initialize");
+                         end if;
+                      end;
+ 
+                      Next (Aspect_Comp);
+                   end loop;
+ 
+                   --  Do a psuedo pass over the aggregate to ensure it is valid
+ 
+                   Expander_Active := False;
+                   Dummy_Aggr := New_Copy_Tree (Expression (Aspect));
+                   Resolve_Aggregate (Dummy_Aggr, Typ);
+                   Expander_Active := True;
+                end Initialize;
+ 
                 --  Initializes
  
                 --  Aspect Initializes is never delayed because it is equivalent
*************** package body Sem_Ch13 is
*** 3990,3995 ****
--- 4694,4705 ----
  
                    goto Continue;
  
+                --  Potentially_Invalid
+ 
+                when Aspect_Potentially_Invalid =>
+                   Analyze_Aspect_Potentially_Invalid;
+                   goto Continue;
+ 
                 --  SPARK_Mode
  
                 when Aspect_SPARK_Mode =>
*************** package body Sem_Ch13 is
*** 4159,4170 ****
  
                 when Aspect_Annotate | Aspect_GNAT_Annotate =>
                    declare
!                      Args  : List_Id;
!                      Pargs : List_Id;
!                      Arg   : Node_Id;
! 
                    begin
!                      --  The argument can be a single identifier
  
                       if Nkind (Expr) = N_Identifier then
  
--- 4869,4878 ----
  
                 when Aspect_Annotate | Aspect_GNAT_Annotate =>
                    declare
!                      Pargs : constant List_Id := New_List; -- pragma args
                    begin
!                      --  The argument can be a single identifier; add it to
!                      --  Pargs.
  
                       if Nkind (Expr) = N_Identifier then
  
*************** package body Sem_Ch13 is
*** 4176,4186 ****
  
                          Set_Paren_Count (Expr, 0);
  
!                         --  Add the single item to the list
! 
!                         Args := New_List (Expr);
  
!                      --  Otherwise we must have an aggregate
  
                       elsif Nkind (Expr) = N_Aggregate then
  
--- 4884,4895 ----
  
                          Set_Paren_Count (Expr, 0);
  
!                         Append_To (Pargs,
!                           Make_Pragma_Argument_Association (Sloc (Expr),
!                             Expression => Relocate_Node (Expr)));
  
!                      --  Otherwise we must have an aggregate; add all
!                      --  expressions to Pargs.
  
                       elsif Nkind (Expr) = N_Aggregate then
  
*************** package body Sem_Ch13 is
*** 4199,4207 ****
                               ("redundant parentheses", Expr);
                          end if;
  
!                         --  List of arguments is list of aggregate expressions
! 
!                         Args := Expressions (Expr);
  
                       --  Anything else is illegal
  
--- 4908,4923 ----
                               ("redundant parentheses", Expr);
                          end if;
  
!                         declare
!                            Arg : Node_Id := First (Expressions (Expr));
!                         begin
!                            while Present (Arg) loop
!                               Append_To (Pargs,
!                                 Make_Pragma_Argument_Association (Sloc (Arg),
!                                   Expression => Relocate_Node (Arg)));
!                               Next (Arg);
!                            end loop;
!                         end;
  
                       --  Anything else is illegal
  
*************** package body Sem_Ch13 is
*** 4210,4226 ****
                          goto Continue;
                       end if;
  
-                      --  Prepare pragma arguments
- 
-                      Pargs := New_List;
-                      Arg := First (Args);
-                      while Present (Arg) loop
-                         Append_To (Pargs,
-                           Make_Pragma_Argument_Association (Sloc (Arg),
-                             Expression => Relocate_Node (Arg)));
-                         Next (Arg);
-                      end loop;
- 
                       Append_To (Pargs,
                         Make_Pragma_Argument_Association (Sloc (Ent),
                           Chars      => Name_Entity,
--- 4926,4931 ----
*************** package body Sem_Ch13 is
*** 4367,4374 ****
                 --  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
  
--- 5072,5080 ----
                 --  Case 4: Aspects requiring special handling
  
                 --  Pre/Post/Test_Case/Contract_Cases/Always_Terminates/
!                --  Exceptional_Cases/Exit_Cases/Program_Exit and
!                --  Subprogram_Variant whose corresponding pragmas take care of
!                --  the delay.
  
                 --  Pre/Post
  
*************** package body Sem_Ch13 is
*** 4415,4424 ****
                    if Class_Present (Aspect)
                      and then A_Id in Aspect_Pre | Aspect_Post
                      and then Is_Subprogram (E)
!                     and then not Is_Ignored_Ghost_Entity (E)
                    then
                       if A_Id = Aspect_Pre then
!                         if Is_Ignored (Aspect) then
                             Set_Ignored_Class_Preconditions (E,
                               New_Copy_Tree (Expr));
                          else
--- 5121,5130 ----
                    if Class_Present (Aspect)
                      and then A_Id in Aspect_Pre | Aspect_Post
                      and then Is_Subprogram (E)
!                     and then not Is_Ignored_Ghost_Entity_In_Codegen (E)
                    then
                       if A_Id = Aspect_Pre then
!                         if Is_Ignored_In_Codegen (Aspect) then
                             Set_Ignored_Class_Preconditions (E,
                               New_Copy_Tree (Expr));
                          else
*************** package body Sem_Ch13 is
*** 4432,4438 ****
                       elsif No (Class_Postconditions (E))
                         and then No (Ignored_Class_Postconditions (E))
                       then
!                         if Is_Ignored (Aspect) then
                             Set_Ignored_Class_Postconditions (E,
                               New_Copy_Tree (Expr));
                          else
--- 5138,5144 ----
                       elsif No (Class_Postconditions (E))
                         and then No (Ignored_Class_Postconditions (E))
                       then
!                         if Is_Ignored_In_Codegen (Aspect) then
                             Set_Ignored_Class_Postconditions (E,
                               New_Copy_Tree (Expr));
                          else
*************** package body Sem_Ch13 is
*** 4574,4579 ****
--- 5280,5298 ----
                    Insert_Pragma (Aitem);
                    goto Continue;
  
+                --  Program_Exit
+ 
+                when Aspect_Program_Exit =>
+                   Aitem := Make_Aitem_Pragma
+                     (Pragma_Argument_Associations => New_List (
+                        Make_Pragma_Argument_Association (Loc,
+                          Expression => Relocate_Node (Expr))),
+                      Pragma_Name                  => Name_Program_Exit);
+ 
+                   Decorate (Aspect, Aitem);
+                   Insert_Pragma (Aitem);
+                   goto Continue;
+ 
                 --  Subprogram_Variant
  
                 when Aspect_Subprogram_Variant =>
*************** package body Sem_Ch13 is
*** 4594,4599 ****
--- 5313,5396 ----
                 --  generated yet because the evaluation of the boolean needs
                 --  to be delayed till the freeze point.
  
+                --  Super
+ 
+                when Aspect_Super => Super :
+                declare
+                   Analyze_Parameter_Expressions : constant Boolean := True;
+                   --  ???
+                   --  We can analyze actual parameter expressions here (with
+                   --  no context, like the operand of a type conversion),
+                   --  or leave them unanalyzed for now and catch problems
+                   --  when we analyze the generated constructor call
+                   --  (where overload resolution may provide context that
+                   --  resolves some ambiguities).
+                   --  For now, we analyze them here to avoid depending
+                   --  on legality checking performed during expansion.
+                   --  To reverse this decision, set this flag to False.
+ 
+                   procedure Check_Super_Arg
+                     (Expr : Node_Id; Aspect_Name : String := "Super")
+                     renames Check_Constructor_Initialization_Expression;
+ 
+                begin
+                   --  Error checking
+ 
+                   if not All_Extensions_Allowed then
+                      Error_Msg_Name_1 := Nam;
+                      Error_Msg_GNAT_Extension ("aspect %", Loc);
+                      goto Continue;
+                   end if;
+ 
+                   if Nkind (N) /= N_Subprogram_Body then
+                      Error_Msg_N ("Super must apply to a constructor body", N);
+                   end if;
+ 
+                   --  handle missing parameter list (an error case)
+ 
+                   if No (Expr) then
+                      Error_Msg_N ("constructor parameters required", N);
+ 
+                   --  Handle parameter list of length more than one
+                   --  (such a list is parsed as an aggregate).
+ 
+                   elsif Nkind (Expr) = N_Aggregate then
+                      if Present (Component_Associations (Expr))
+                        or else No (Expressions (Expr))
+                      then
+                         Error_Msg_N
+                           ("malformed constructor parameter list", N);
+ 
+                      elsif Analyze_Parameter_Expressions then
+                         declare
+                            Param_Expr : Node_Id := First (Expressions (Expr));
+                         begin
+                            while Present (Param_Expr) loop
+                               Analyze (Param_Expr);
+                               Check_Super_Arg (Param_Expr);
+                               Next (Param_Expr);
+                            end loop;
+ 
+                            Set_Analyzed (Expr);
+                            --  Someday Vast may complain that this so-called
+                            --  aggregate has no Etype. For now, we mark it
+                            --  as analyzed and hope that nobody trips over it.
+                         end;
+                      end if;
+ 
+                   --  handle parameter list of length one
+ 
+                   elsif Paren_Count (Expr) = 0 then
+                      Error_Msg_N
+                        ("parentheses missing for constructor parameter list ",
+                         N);
+ 
+                   elsif Analyze_Parameter_Expressions then
+                      Analyze (Expr);
+                      Check_Super_Arg (Expr);
+                   end if;
+                end Super;
+ 
                 when Boolean_Aspects
                    | Library_Unit_Aspects
                 =>
*************** package body Sem_Ch13 is
*** 4691,4696 ****
--- 5488,5501 ----
                          Check_Expr_Is_OK_Static_Expression (Expr, Any_Boolean);
                       end if;
  
+                      --  Record the No_Task_Parts aspects as a rep item so it
+                      --  can be consistently looked up on the full view of the
+                      --  type.
+ 
+                      if Is_Private_Type (E) then
+                         Record_Rep_Item (E, Aspect);
+                      end if;
+ 
                       goto Continue;
  
                    --  Ada 2022 (AI12-0075): static expression functions
*************** package body Sem_Ch13 is
*** 4699,4704 ****
--- 5504,5515 ----
                       Analyze_Aspect_Static;
                       goto Continue;
  
+                   --  GNAT Core Extension: Checks for this aspect are performed
+                   --  when the corresponding pragma is analyzed.
+ 
+                   elsif A_Id = Aspect_Unsigned_Base_Range then
+                      null;
+ 
                    --  Ada 2022 (AI12-0279)
  
                    elsif A_Id = Aspect_Yield then
*************** package body Sem_Ch13 is
*** 4878,4891 ****
                          goto Continue;
                       end;
  
!                   --  All other cases, generate attribute definition
  
!                   else
                       Aitem :=
                         Make_Attribute_Definition_Clause (Loc,
                           Name       => Ent,
                           Chars      => Name_Storage_Size,
                           Expression => Relocate_Node (Expr));
                    end if;
  
                 when Aspect_External_Initialization =>
--- 5689,5716 ----
                          goto Continue;
                       end;
  
!                   --  Generate an attribute definition for access types
  
!                   elsif Is_Access_Type (E) then
                       Aitem :=
                         Make_Attribute_Definition_Clause (Loc,
                           Name       => Ent,
                           Chars      => Name_Storage_Size,
                           Expression => Relocate_Node (Expr));
+ 
+                   --  This is likely a misplaced aspect. Create a pragma to
+                   --  emit the actual error.
+ 
+                   else
+                      Aitem :=
+                        Make_Aitem_Pragma
+                          (Pragma_Argument_Associations =>
+                             New_List
+                               (Make_Pragma_Argument_Association
+                                  (Loc, Expression => Relocate_Node (Expr))),
+                           Pragma_Name                  => Name_Storage_Size);
+                      Insert_Pragma (Aitem);
+                      goto Continue;
                    end if;
  
                 when Aspect_External_Initialization =>
*************** package body Sem_Ch13 is
*** 4961,4967 ****
                          Set_Declarations (N, New_List);
                       end if;
  
!                      Prepend (Aitem, Declarations (N));
  
                    elsif Nkind (N) = N_Generic_Package_Declaration then
                       if No (Visible_Declarations (Specification (N))) then
--- 5786,5794 ----
                          Set_Declarations (N, New_List);
                       end if;
  
!                      if Present (Aitem) then
!                         Prepend (Aitem, Declarations (N));
!                      end if;
  
                    elsif Nkind (N) = N_Generic_Package_Declaration then
                       if No (Visible_Declarations (Specification (N))) then
*************** package body Sem_Ch13 is
*** 5032,5038 ****
  
                 --  The pragma is added before source declarations
  
!                Prepend_To (Declarations (N), Aitem);
  
              --  When delay is not required and the context is not a compilation
              --  unit, we simply insert the pragma/attribute definition clause
--- 5859,5867 ----
  
                 --  The pragma is added before source declarations
  
!                if Present (Aitem) then
!                   Prepend_To (Declarations (N), Aitem);
!                end if;
  
              --  When delay is not required and the context is not a compilation
              --  unit, we simply insert the pragma/attribute definition clause
*************** package body Sem_Ch13 is
*** 6106,6111 ****
--- 6935,6941 ----
                 declare
                    Expr  : constant Node_Id := Expression (N);
                    O_Ent : Entity_Id;
+                   O_Typ : Entity_Id;
                    Off   : Boolean;
  
                 begin
*************** package body Sem_Ch13 is
*** 6118,6124 ****
                       return;
                    end if;
  
!                   Find_Overlaid_Entity (N, O_Ent, Off);
  
                    if Present (O_Ent) then
  
--- 6948,6954 ----
                       return;
                    end if;
  
!                   Find_Overlaid_Entity (N, O_Ent, O_Typ, Off);
  
                    if Present (O_Ent) then
  
*************** package body Sem_Ch13 is
*** 6171,6180 ****
  
                       if (Is_Record_Type (Etype (U_Ent))
                            or else Is_Array_Type (Etype (U_Ent)))
!                        and then (Is_Record_Type (Etype (O_Ent))
!                                   or else Is_Array_Type (Etype (O_Ent)))
                         and then Reverse_Storage_Order (Etype (U_Ent)) /=
!                                 Reverse_Storage_Order (Etype (O_Ent))
                       then
                          Error_Msg_N
                            ("??overlay changes scalar storage order", Expr);
--- 7001,7010 ----
  
                       if (Is_Record_Type (Etype (U_Ent))
                            or else Is_Array_Type (Etype (U_Ent)))
!                        and then (Is_Record_Type (O_Typ)
!                                   or else Is_Array_Type (O_Typ))
                         and then Reverse_Storage_Order (Etype (U_Ent)) /=
!                                 Reverse_Storage_Order (O_Typ)
                       then
                          Error_Msg_N
                            ("??overlay changes scalar storage order", Expr);
*************** package body Sem_Ch13 is
*** 6271,6289 ****
                       end if;
                    end;
  
!                   --  Entity has delayed freeze, so we will generate an
                    --  alignment check at the freeze point unless suppressed.
  
!                   if not Range_Checks_Suppressed (U_Ent)
!                     and then not Alignment_Checks_Suppressed (U_Ent)
                    then
                       Set_Check_Address_Alignment (N);
                    end if;
- 
-                   --  Kill the size check code, since we are not allocating
-                   --  the variable, it is somewhere else.
- 
-                   Kill_Size_Check_Code (U_Ent);
                 end;
  
              --  Not a valid entity for an address clause
--- 7101,7118 ----
                       end if;
                    end;
  
!                   --  The entity has delayed freeze, so we will generate an
                    --  alignment check at the freeze point unless suppressed.
+                   --  We will unconditionally generate it when the alignment
+                   --  is specified in addition to the address, to compensate
+                   --  for the check being suppressed by default on machines
+                   --  that do not need strict alignment of memory accesses.
  
!                   if not Alignment_Checks_Suppressed (U_Ent)
!                     or else Present (Alignment_Clause (U_Ent))
                    then
                       Set_Check_Address_Alignment (N);
                    end if;
                 end;
  
              --  Not a valid entity for an address clause
*************** package body Sem_Ch13 is
*** 6319,6325 ****
                 Set_Has_Alignment_Clause (U_Ent);
  
                 --  Tagged type case, check for attempt to set alignment to a
!                --  value greater than Max_Align, and reset if so.
  
                 if Is_Tagged_Type (U_Ent) and then Align > Max_Align then
                    Error_Msg_N
--- 7148,7154 ----
                 Set_Has_Alignment_Clause (U_Ent);
  
                 --  Tagged type case, check for attempt to set alignment to a
!                --  value greater than Maximum_Alignment, and reset if so.
  
                 if Is_Tagged_Type (U_Ent) and then Align > Max_Align then
                    Error_Msg_N
*************** package body Sem_Ch13 is
*** 6355,6360 ****
--- 7184,7197 ----
                 if Is_Array_Type (U_Ent) then
                    Set_Alignment (Base_Type (U_Ent), Align);
                 end if;
+ 
+                --  See the Attribute_Address case above for the rationale
+ 
+                if not Is_Type (U_Ent)
+                  and then Present (Address_Clause (U_Ent))
+                then
+                   Set_Check_Address_Alignment (Address_Clause (U_Ent));
+                end if;
              end if;
           end Alignment;
  
*************** package body Sem_Ch13 is
*** 6503,6509 ****
                 --  and restored before and after analysis.
  
                 Push_Type (U_Ent);
!                Preanalyze_Spec_Expression (Expr, RTE (RE_CPU_Range));
                 Pop_Type (U_Ent);
  
                 --  AI12-0117-1, "Restriction No_Tasks_Unassigned_To_CPU":
--- 7340,7347 ----
                 --  and restored before and after analysis.
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Expr, RTE (RE_CPU_Range));
                 Pop_Type (U_Ent);
  
                 --  AI12-0117-1, "Restriction No_Tasks_Unassigned_To_CPU":
*************** package body Sem_Ch13 is
*** 6593,6602 ****
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
! 
!                Preanalyze_Spec_Expression
                   (Expr, RTE (RE_Dispatching_Domain));
- 
                 Pop_Type (U_Ent);
              end if;
  
--- 7431,7438 ----
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
                   (Expr, RTE (RE_Dispatching_Domain));
                 Pop_Type (U_Ent);
              end if;
  
*************** package body Sem_Ch13 is
*** 6675,6684 ****
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
! 
!                Preanalyze_Spec_Expression
                   (Expr, RTE (RE_Interrupt_Priority));
- 
                 Pop_Type (U_Ent);
  
                 --  Check the No_Task_At_Interrupt_Priority restriction
--- 7511,7518 ----
                 --  The visibility to the components must be restored
  
                 Push_Type (U_Ent);
!                Preanalyze_And_Resolve_Spec_Expression
                   (Expr, RTE (RE_Interrupt_Priority));
                 Pop_Type (U_Ent);
  
                 --  Check the No_Task_At_Interrupt_Priority restriction
*************** package body Sem_Ch13 is
*** 6844,6850 ****
                    --  The visibility to the components must be restored
  
                    Push_Type (U_Ent);
!                   Preanalyze_Spec_Expression (Expr, Standard_Integer);
                    Pop_Type (U_Ent);
  
                    if not Is_OK_Static_Expression (Expr) then
--- 7678,7685 ----
                    --  The visibility to the components must be restored
  
                    Push_Type (U_Ent);
!                   Preanalyze_And_Resolve_Spec_Expression
!                     (Expr, Standard_Integer);
                    Pop_Type (U_Ent);
  
                    if not Is_OK_Static_Expression (Expr) then
*************** package body Sem_Ch13 is
*** 7026,7032 ****
                          end if;
                       end if;
  
!                   --  For Object'Size, set Esize only
  
                    else
                       if Is_Elementary_Type (Etyp)
--- 7861,7867 ----
                          end if;
                       end if;
  
!                   --  For objects, set Esize only
  
                    else
                       if Is_Elementary_Type (Etyp)
*************** package body Sem_Ch13 is
*** 7040,7065 ****
                          Error_Msg_Uint_2 :=
                            UI_From_Int (System_Max_Integer_Size);
                          Error_Msg_N
!                           ("size for primitive object must be a power of 2 in "
!                            & "the range ^-^", N);
!                      end if;
  
!                      Set_Esize (U_Ent, Size);
!                   end if;
  
!                   --  As of RM 13.1, only confirming size
!                   --  (i.e. (Size = Esize (Etyp))) for aliased object of
!                   --  elementary type must be supported.
!                   --  GNAT rejects nonconfirming size for such object.
  
!                   if Is_Aliased (U_Ent)
!                     and then Is_Elementary_Type (Etyp)
!                     and then Known_Esize (U_Ent)
!                     and then Size /= Esize (Etyp)
!                   then
!                      Error_Msg_N
!                        ("nonconfirming Size for aliased object is not "
!                         & "supported", N);
                    end if;
  
                    --  Handle extension aspect 'Size'Class which allows for
--- 7875,7911 ----
                          Error_Msg_Uint_2 :=
                            UI_From_Int (System_Max_Integer_Size);
                          Error_Msg_N
!                           ("size for elementary object must be a power of 2 "
!                            & "in the range ^-^", N);
  
!                      --  As per RM 13.1(25/5), only a confirming size clause
!                      --  (i.e. Size = Type'Object_Size) for aliased objects
!                      --  of elementary types is required to be supported.
!                      --  We reject nonconfirming clauses for these objects.
  
!                      elsif Is_Aliased (U_Ent)
!                        and then Is_Elementary_Type (Etyp)
!                        and then Size /= Esize (Etyp)
!                      then
!                         Error_Msg_N
!                           ("nonconfirming Size for aliased object is not "
!                            & "supported", N);
  
!                      --  We also reject nonconfirming clauses for (nonaliased)
!                      --  objects of floating-point types because smaller sizes
!                      --  would require integer operations to access the objects
!                      --  and larger sizes would require integer operations to
!                      --  manipulate the padding bits.
! 
!                      elsif Is_Floating_Point_Type (Etyp)
!                        and then Size /= Esize (Etyp)
!                      then
!                         Error_Msg_N
!                           ("nonconfirming Size for floating-point object is "
!                            & "not supported", N);
!                      end if;
! 
!                      Set_Esize (U_Ent, Size);
                    end if;
  
                    --  Handle extension aspect 'Size'Class which allows for
*************** package body Sem_Ch13 is
*** 7109,7125 ****
                             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;
--- 7955,7971 ----
                             Set_Class_Wide_Equivalent_Type (Etyp,
                               Make_CW_Equivalent_Type (Etyp, Empty, Actions));
  
!                            --  Insert its declaration immediately after that of
!                            --  the root type.
  
!                            Insert_Actions_After
!                              (Declaration_Node (Etype (Etyp)), Actions);
  
!                            --  Add a Compile_Time_Error size check for the root
!                            --  type at the freeze point.
  
!                            Append_Freeze_Action (Etype (Etyp),
!                              Make_CW_Size_Compile_Check (Etype (Etyp), U_Ent));
  
                             Set_Is_Mutably_Tagged_Type (Etyp);
                          end;
*************** package body Sem_Ch13 is
*** 7155,7161 ****
              else
                 Small := Expr_Value_R (Expr);
  
!                if Small <= Ureal_0 then
                    Error_Msg_N ("small value must be greater than zero", Expr);
                    return;
                 end if;
--- 8001,8007 ----
              else
                 Small := Expr_Value_R (Expr);
  
!                if not UR_Is_Positive (Small) then
                    Error_Msg_N ("small value must be greater than zero", Expr);
                    return;
                 end if;
*************** package body Sem_Ch13 is
*** 7563,7594 ****
  
              if Duplicate_Clause then
                 null;
! 
              elsif Is_Elementary_Type (U_Ent) then
!                --  Size will be empty if we already detected an error
!                --  (e.g. Expr is of the wrong type); we might as well
!                --  give the useful hint below even in that case.
  
!                if No (Size) or else
!                  (Size /= System_Storage_Unit
!                   and then Size /= System_Storage_Unit * 2
!                   and then Size /= System_Storage_Unit * 3
!                   and then Size /= System_Storage_Unit * 4
!                   and then Size /= System_Storage_Unit * 8)
!                then
!                   Error_Msg_N
!                     ("stream size for elementary type must be 8, 16, 24, " &
!                      "32 or 64", N);
  
!                elsif Known_RM_Size (U_Ent) and then RM_Size (U_Ent) > Size then
!                   Error_Msg_Uint_1 := RM_Size (U_Ent);
!                   Error_Msg_N
!                     ("stream size for elementary type must be 8, 16, 24, " &
!                      "32 or 64 and at least ^", N);
!                end if;
  
!                Set_Has_Stream_Size_Clause (U_Ent);
  
              else
                 Error_Msg_N ("Stream_Size cannot be given for &", Nam);
              end if;
--- 8409,8467 ----
  
              if Duplicate_Clause then
                 null;
!             elsif No (Size) then
!                Error_Msg_N ("invalid argument for Stream_Size aspect", Nam);
              elsif Is_Elementary_Type (U_Ent) then
!                Set_Has_Stream_Size_Clause (U_Ent);
  
!                declare
!                   Minimum_Size : constant Uint :=
!                     (if Known_RM_Size (U_Ent)
!                      then RM_Size (U_Ent)
!                      else Uint_0);
  
!                   Size_Or_Zero : constant Uint :=
!                     (if Size < Minimum_Size then Uint_0 else Size);
!                   --  If the requested size is smaller than the RM size of the
!                   --  type, we pass zero to Get_Primitives. That will always
!                   --  give us the list of supported sizes we need to report an
!                   --  error.
  
!                   P : constant Primitive_Result :=
!                     Get_Primitives (U_Ent, Size_Or_Zero);
! 
!                   Error_Text : Bounded_String;
! 
!                   In_First_Iteration : Boolean := True;
!                   Previous_Value : Nat := 0;
!                begin
!                   case P.S is
!                      when Possible_Sizes =>
!                         Error_Msg_N ("unsupported stream size", N);
! 
!                         Append
!                           (Error_Text,
!                            "\supported stream sizes for this type: ");
!                         for Sz of P.List loop
!                            if Minimum_Size <= Sz and then Sz /= Previous_Value
!                            then
!                               if In_First_Iteration then
!                                  In_First_Iteration := False;
!                               else
!                                  Append (Error_Text, ", ");
!                               end if;
! 
!                               Append (Error_Text, Sz);
! 
!                               Previous_Value := Sz;
!                            end if;
!                         end loop;
!                         Error_Msg_N (To_String (Error_Text), N);
  
+                      when others =>
+                         null;
+                   end case;
+                end;
              else
                 Error_Msg_N ("Stream_Size cannot be given for &", Nam);
              end if;
*************** package body Sem_Ch13 is
*** 7656,7662 ****
        if Etype (Expression (N)) = Any_Type then
           return;
        elsif not Is_RTE (Etype (Expression (N)), RE_Asm_Insn) then
!          Error_Msg_N ("incorrect type for code statement", N);
           return;
        end if;
  
--- 8529,8543 ----
        if Etype (Expression (N)) = Any_Type then
           return;
        elsif not Is_RTE (Etype (Expression (N)), RE_Asm_Insn) then
! 
!          --  Only emit an error message when not running in Relaxed RM
!          --  Semantics. This enables GNATSAS' GNAT Warnings engine to work on
!          --  VADS codebases.
! 
!          if not (Check_Semantics_Only_Mode and then Relaxed_RM_Semantics) then
!             Error_Msg_N ("incorrect type for code statement", N);
!          end if;
! 
           return;
        end if;
  
*************** package body Sem_Ch13 is
*** 8495,8500 ****
--- 9376,9418 ----
              Num_Repped_Components   : Nat := 0;
              Num_Unrepped_Components : Nat := 0;
  
+             function Unchecked_Union_Pragma_Pending return Boolean;
+             --  Return True in the corner case of an Unchecked_Union pragma
+             --  occuring after the record representation clause (which
+             --  means that Is_Unchecked_Union will return False for Rectype,
+             --  even though it would return True if called later after the
+             --  pragma is analyzed).
+ 
+             ------------------------------------
+             -- Unchecked_Union_Pragma_Pending --
+             ------------------------------------
+ 
+             function Unchecked_Union_Pragma_Pending return Boolean is
+                Decl_List_Element : Node_Id := N;
+                Pragma_Arg : Node_Id;
+             begin
+                while Present (Decl_List_Element) loop
+                   if Nkind (Decl_List_Element) = N_Pragma
+                     and then Get_Pragma_Id (Decl_List_Element) =
+                              Pragma_Unchecked_Union
+                     and then not Is_Empty_List (Pragma_Argument_Associations
+                                                   (Decl_List_Element))
+                   then
+                      Pragma_Arg := Get_Pragma_Arg
+                                      (First (Pragma_Argument_Associations
+                                                (Decl_List_Element)));
+                      if Nkind (Pragma_Arg) = N_Identifier
+                        and then Chars (Pragma_Arg) = Chars (Rectype)
+                      then
+                         return True;
+                      end if;
+                   end if;
+ 
+                   Next (Decl_List_Element);
+                end loop;
+                return False;
+             end Unchecked_Union_Pragma_Pending;
+ 
           begin
              --  First count number of repped and unrepped components
  
*************** package body Sem_Ch13 is
*** 8533,8540 ****
                      --  Ignore discriminant in unchecked union, since it is
                      --  not there, and cannot have a component clause.
  
!                     and then (not Is_Unchecked_Union (Rectype)
!                                or else Ekind (Comp) /= E_Discriminant)
                    then
                       Error_Msg_Sloc := Sloc (Comp);
                       Error_Msg_NE
--- 9451,9460 ----
                      --  Ignore discriminant in unchecked union, since it is
                      --  not there, and cannot have a component clause.
  
!                     and then (Ekind (Comp) /= E_Discriminant
!                               or else not (Is_Unchecked_Union (Rectype)
!                                            or else
!                                              Unchecked_Union_Pragma_Pending))
                    then
                       Error_Msg_Sloc := Sloc (Comp);
                       Error_Msg_NE
*************** package body Sem_Ch13 is
*** 9847,9854 ****
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       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
  
        Expr : Node_Id;
--- 10767,10773 ----
     procedure Build_Predicate_Function (Typ : Entity_Id; N : Node_Id) is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Expr : Node_Id;
*************** package body Sem_Ch13 is
*** 9890,9895 ****
--- 10809,10820 ----
        --  Includes a call to the predicate function for type T in Expr if
        --  Predicate_Function (T) is non-empty.
  
+       function Has_Source_Predicate (T : Entity_Id) return Boolean;
+       --  Return True if one of the 3 predicate aspects is specified
+       --  explicitly (either via a pragma or an aspect specification, but
+       --  not implicitly via propagation from some other type/subtype via
+       --  RM 3.2.4(5)) for the type/subtype T.
+ 
        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
*************** package body Sem_Ch13 is
*** 10008,10014 ****
              --  which is needed to generate the corresponding predicate
              --  function.
  
!             if Is_Ignored_Ghost_Pragma (Prag) then
                 Add_Condition (New_Occurrence_Of (Standard_True, Sloc (Prag)));
  
              else
--- 10933,10939 ----
              --  which is needed to generate the corresponding predicate
              --  function.
  
!             if Is_Ignored_Ghost_Pragma_In_Codegen (Prag) then
                 Add_Condition (New_Occurrence_Of (Standard_True, Sloc (Prag)));
  
              else
*************** package body Sem_Ch13 is
*** 10040,10047 ****
  
                    --  If the predicate pragma comes from an aspect, replace the
                    --  saved expression because we need the subtype references
!                   --  replaced for the calls to Preanalyze_Spec_Expression in
!                   --  Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
                       Set_Expression_Copy (Asp, New_Copy_Tree (Arg2_Copy));
--- 10965,10972 ----
  
                    --  If the predicate pragma comes from an aspect, replace the
                    --  saved expression because we need the subtype references
!                   --  replaced for the calls to Preanalyze_And_Resolve_Spec_
!                   --  Expression in Check_Aspect_At_xxx routines.
  
                    if Present (Asp) then
                       Set_Expression_Copy (Asp, New_Copy_Tree (Arg2_Copy));
*************** package body Sem_Ch13 is
*** 10049,10055 ****
  
                    --  "and"-in the Arg2 condition to evolving expression
  
!                   if not Is_Ignored_Ghost_Pragma (Prag) then
                       Add_Condition (Arg2_Copy);
                    end if;
                 end;
--- 10974,10981 ----
  
                    --  "and"-in the Arg2 condition to evolving expression
  
!                   if not Is_Ignored_Ghost_Pragma_In_Codegen (Prag)
!                   then
                       Add_Condition (Arg2_Copy);
                    end if;
                 end;
*************** package body Sem_Ch13 is
*** 10106,10111 ****
--- 11032,11072 ----
           end loop;
        end Add_Predicates;
  
+       --------------------------
+       -- Has_Source_Predicate --
+       --------------------------
+ 
+       function Has_Source_Predicate (T : Entity_Id) return Boolean is
+          Rep_Item : Node_Id := First_Rep_Item (T);
+       begin
+          while Present (Rep_Item) loop
+             case Nkind (Rep_Item) is
+                when N_Pragma =>
+                   if Get_Pragma_Id (Rep_Item) = Pragma_Predicate
+                     and then T = Entity (Expression
+                       (First (Pragma_Argument_Associations (Rep_Item))))
+                   then
+                      return True;
+                   end if;
+ 
+                when N_Aspect_Specification =>
+                   if Get_Aspect_Id (Rep_Item) in
+                        Aspect_Static_Predicate
+                          | Aspect_Dynamic_Predicate | Aspect_Predicate
+                     and then Entity (Rep_Item) = T
+                   then
+                      return True;
+                   end if;
+ 
+                when others =>
+                   null;
+             end case;
+ 
+             Next_Rep_Item (Rep_Item);
+          end loop;
+          return False;
+       end Has_Source_Predicate;
+ 
        -----------------------------------------
        -- Replace_Current_Instance_References --
        -----------------------------------------
*************** package body Sem_Ch13 is
*** 10149,10154 ****
--- 11110,11130 ----
        --  context where expansion and tests are enabled.
  
        SId := Predicate_Function (Typ);
+ 
+       --  When declaring a subtype S whose "predecessor" subtype PS (that is,
+       --  the subtype denoted by the subtype_mark in the declaration of S)
+       --  already has a predicate function, do not confuse that existing
+       --  function for PS with the function we need to build for S if
+       --  Has_Source_Predicate returns True for S.
+ 
+       if Present (SId)
+         and then Nkind (Parent (Typ)) = N_Subtype_Declaration
+         and then Etype (First_Entity (SId)) /= Typ
+         and then Has_Source_Predicate (Typ)
+       then
+          SId := Empty;
+       end if;
+ 
        if not Has_Predicates (Typ)
          or else (Present (SId) and then Has_Completion (SId))
          or else
*************** package body Sem_Ch13 is
*** 10599,10605 ****
           end;
        end if;
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        if Restore_Scope then
           Pop_Scope;
--- 11575,11581 ----
           end;
        end if;
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        if Restore_Scope then
           Pop_Scope;
*************** package body Sem_Ch13 is
*** 10619,10626 ****
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       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
  
        Func_Decl : Node_Id;
--- 11595,11601 ----
     is
        Loc : constant Source_Ptr := Sloc (Typ);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Func_Decl : Node_Id;
*************** package body Sem_Ch13 is
*** 10701,10707 ****
        Insert_After (Parent (Typ), Func_Decl);
        Analyze (Func_Decl);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        return Func_Decl;
     end Build_Predicate_Function_Declaration;
--- 11676,11682 ----
        Insert_After (Parent (Typ), Func_Decl);
        Analyze (Func_Decl);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        return Func_Decl;
     end Build_Predicate_Function_Declaration;
*************** package body Sem_Ch13 is
*** 10779,10784 ****
--- 11754,11766 ----
     --  Start of processing for Check_Aspect_At_End_Of_Declarations
  
     begin
+       --  Indicate that the expression comes from an aspect specification,
+       --  which is used in subsequent analysis even if expansion is off.
+ 
+       if Present (End_Decl_Expr) then
+          Set_Parent (End_Decl_Expr, ASN);
+       end if;
+ 
        --  In an instance we do not perform the consistency check between freeze
        --  point and end of declarations, because it was done already in the
        --  analysis of the generic. Furthermore, the delayed analysis of an
*************** package body Sem_Ch13 is
*** 10805,10811 ****
        --  Case of stream attributes and Put_Image, just have to compare
        --  entities. However, the expression is just a possibly-overloaded
        --  name, so we need to verify that one of these interpretations is
!       --  the one available at at the freeze point.
  
        elsif A_Id in Aspect_Input
                    | Aspect_Output
--- 11787,11793 ----
        --  Case of stream attributes and Put_Image, just have to compare
        --  entities. However, the expression is just a possibly-overloaded
        --  name, so we need to verify that one of these interpretations is
!       --  the one available at the freeze point.
  
        elsif A_Id in Aspect_Input
                    | Aspect_Output
*************** package body Sem_Ch13 is
*** 10854,10865 ****
                       | Aspect_Static_Predicate
              then
                 Push_Type (Ent);
!                Preanalyze_Spec_Expression (Freeze_Expr, Standard_Boolean);
                 Pop_Type (Ent);
  
              elsif A_Id = Aspect_Priority then
                 Push_Type (Ent);
!                Preanalyze_Spec_Expression (Freeze_Expr, Any_Integer);
                 Pop_Type (Ent);
  
              else
--- 11836,11849 ----
                       | Aspect_Static_Predicate
              then
                 Push_Type (Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Freeze_Expr, Standard_Boolean);
                 Pop_Type (Ent);
  
              elsif A_Id = Aspect_Priority then
                 Push_Type (Ent);
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Freeze_Expr, Any_Integer);
                 Pop_Type (Ent);
  
              else
*************** package body Sem_Ch13 is
*** 10867,10879 ****
              end if;
           end if;
  
-          --  Indicate that the expression comes from an aspect specification,
-          --  which is used in subsequent analysis even if expansion is off.
- 
-          if Present (End_Decl_Expr) then
-             Set_Parent (End_Decl_Expr, ASN);
-          end if;
- 
           --  In a generic context the original aspect expressions have not
           --  been preanalyzed, so do it now. There are no conformance checks
           --  to perform in this case. As before, we have to make components
--- 11851,11856 ----
*************** package body Sem_Ch13 is
*** 10909,10915 ****
           elsif A_Id in Aspect_Default_Component_Value | Aspect_Default_Value
              and then Is_Private_Type (T)
           then
!             Preanalyze_Spec_Expression (End_Decl_Expr, Full_View (T));
  
           --  The following aspect expressions may contain references to
           --  components and discriminants of the type.
--- 11886,11893 ----
           elsif A_Id in Aspect_Default_Component_Value | Aspect_Default_Value
              and then Is_Private_Type (T)
           then
!             Preanalyze_And_Resolve_Spec_Expression
!               (End_Decl_Expr, Full_View (T));
  
           --  The following aspect expressions may contain references to
           --  components and discriminants of the type.
*************** package body Sem_Ch13 is
*** 10923,10936 ****
                       | Aspect_Static_Predicate
           then
              Push_Type (Ent);
!             Preanalyze_Spec_Expression (End_Decl_Expr, T);
              Pop_Type (Ent);
  
           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;
  
           Err :=
--- 11901,11915 ----
                       | Aspect_Static_Predicate
           then
              Push_Type (Ent);
!             Preanalyze_And_Resolve_Spec_Expression (End_Decl_Expr, T);
              Pop_Type (Ent);
  
           elsif A_Id = Aspect_Predicate_Failure then
!             Preanalyze_And_Resolve_Spec_Expression
!               (End_Decl_Expr, Standard_String);
  
           elsif Present (End_Decl_Expr) then
!             Preanalyze_And_Resolve_Spec_Expression (End_Decl_Expr, T);
           end if;
  
           Err :=
*************** package body Sem_Ch13 is
*** 10979,11002 ****
     ----------------------------------
  
     procedure Check_Aspect_At_Freeze_Point (ASN : Node_Id) is
-       Ident : constant Node_Id := Identifier (ASN);
-       --  Identifier (use Entity field to save expression)
- 
        Expr : constant Node_Id := Expression (ASN);
-       --  For cases where using Entity (Identifier) doesn't work
  
!       A_Id : constant Aspect_Id := Get_Aspect_Id (Chars (Ident));
  
        T : Entity_Id := Empty;
        --  Type required for preanalyze call
  
     begin
!       --  On entry to this procedure, Entity (Ident) contains a copy of the
!       --  original expression from the aspect, saved for this purpose.
! 
!       --  On exit from this procedure Entity (Ident) is unchanged, still
!       --  containing that copy, but Expression (Ident) is a preanalyzed copy
!       --  of the expression, preanalyzed just after the freeze point.
  
        --  Make a copy of the expression to be preanalyzed
  
--- 11958,11973 ----
     ----------------------------------
  
     procedure Check_Aspect_At_Freeze_Point (ASN : Node_Id) is
        Expr : constant Node_Id := Expression (ASN);
  
!       A_Id : constant Aspect_Id := Get_Aspect_Id (Chars (Identifier (ASN)));
  
        T : Entity_Id := Empty;
        --  Type required for preanalyze call
  
     begin
!       --  On exit from this procedure, Expression (ASN) is a copy of the
!       --  original expression, preanalyzed just after the freeze point.
  
        --  Make a copy of the expression to be preanalyzed
  
*************** package body Sem_Ch13 is
*** 11325,11330 ****
--- 12296,12302 ----
              | Aspect_GNAT_Annotate
              | Aspect_Implicit_Dereference
              | Aspect_Initial_Condition
+             | Aspect_Initialize
              | Aspect_Initializes
              | Aspect_Max_Entry_Queue_Length
              | Aspect_Max_Queue_Length
*************** package body Sem_Ch13 is
*** 11332,11339 ****
--- 12304,12313 ----
              | Aspect_Part_Of
              | Aspect_Post
              | Aspect_Postcondition
+             | Aspect_Potentially_Invalid
              | Aspect_Pre
              | Aspect_Precondition
+             | Aspect_Program_Exit
              | Aspect_Refined_Depends
              | Aspect_Refined_Global
              | Aspect_Refined_Post
*************** package body Sem_Ch13 is
*** 11341,11346 ****
--- 12315,12321 ----
              | Aspect_Relaxed_Initialization
              | Aspect_SPARK_Mode
              | Aspect_Subprogram_Variant
+             | Aspect_Super
              | Aspect_Suppress
              | Aspect_Test_Case
              | Aspect_Unimplemented
*************** package body Sem_Ch13 is
*** 11360,11366 ****
        --  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;
  
--- 12335,12341 ----
        --  the aspect_specification cause freezing (RM 13.14(7.2/5)).
  
        if Present (Expression (ASN)) then
!          Preanalyze_And_Resolve_Spec_Expression (Expression (ASN), T);
        end if;
     end Check_Aspect_At_Freeze_Point;
  
*************** package body Sem_Ch13 is
*** 11960,11967 ****
        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
--- 12935,12942 ----
        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
*************** package body Sem_Ch13 is
*** 11972,11978 ****
        then
           Illegal_Indexing
             ("indexing aspect requires function with first formal "
!              & "applying to type& or its class-wide type");
           return;
  
        elsif Aspect = Aspect_Constant_Indexing
--- 12947,12953 ----
        then
           Illegal_Indexing
             ("indexing aspect requires function with first formal "
!             & "applying to type& or its class-wide type");
           return;
  
        elsif Aspect = Aspect_Constant_Indexing
*************** package body Sem_Ch13 is
*** 11981,11987 ****
        then
           Illegal_Indexing
             ("Constant_Indexing must apply to function with "
!              & "access-to-constant formal");
           return;
        end if;
  
--- 12956,12962 ----
        then
           Illegal_Indexing
             ("Constant_Indexing must apply to function with "
!             & "access-to-constant formal");
           return;
        end if;
  
*************** package body Sem_Ch13 is
*** 11990,11997 ****
        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
--- 12965,12972 ----
        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
*************** package body Sem_Ch13 is
*** 12083,12100 ****
  
           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;
--- 13058,13072 ----
  
           if not Check_Primitive_Function (Subp, Typ) then
              if Present (Ref_Node) then
!                Error_Msg_N
!                  ("improper function for default iterator!",
!                   Ref_Node,
!                   GNAT0001);
!                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;
  
              return False;
*************** package body Sem_Ch13 is
*** 13929,13935 ****
                          Next (First (Pragma_Argument_Associations (Ritem)));
                    begin
                       Push_Type (E);
!                      Preanalyze_Spec_Expression
                         (Expression (Arg), Standard_Boolean);
                       Pop_Type (E);
                    end;
--- 14901,14907 ----
                          Next (First (Pragma_Argument_Associations (Ritem)));
                    begin
                       Push_Type (E);
!                      Preanalyze_And_Resolve_Spec_Expression
                         (Expression (Arg), Standard_Boolean);
                       Pop_Type (E);
                    end;
*************** package body Sem_Ch13 is
*** 15427,15432 ****
--- 16399,16406 ----
           --  We may freeze Subp_Id immediately since Ent has just been frozen.
           --  This will help to shield us from potential late freezing issues.
  
+          Mutate_Ekind (Subp_Id, E_Procedure);
+          Freeze_Extra_Formals (Subp_Id);
           Set_Is_Frozen (Subp_Id);
  
        else
*************** package body Sem_Ch13 is
*** 15668,15676 ****
        Y   : Entity_Id;
        Off : Boolean)
     is
-       ACS : constant Boolean := Scope_Suppress.Suppress (Alignment_Check);
     begin
!       Address_Clause_Checks.Append ((N, X, A, Y, Off, ACS));
     end Register_Address_Clause_Check;
  
     ------------------------
--- 16642,16649 ----
        Y   : Entity_Id;
        Off : Boolean)
     is
     begin
!       Address_Clause_Checks.Append ((N, X, A, Y, Off));
     end Register_Address_Clause_Check;
  
     ------------------------
*************** package body Sem_Ch13 is
*** 15787,15813 ****
           --  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;
--- 16760,16795 ----
           --  anyway, no reason to be too strict about this.
  
           if not Relaxed_RM_Semantics then
!             S := First_Subtype (T);
!             if Present (Freeze_Node (S)) then
!                Error_Msg_N
!                  (Msg        =>
!                     "record representation cannot be specified" &
!                     " after the type is frozen",
!                   N          => N,
!                   Error_Code => GNAT0005,
!                   Label      =>
!                     "record representation clause specified here",
!                   Spans      =>
!                     (1 =>
!                        Secondary_Labeled_Span
!                          (N     => Freeze_Node (S),
!                           Label =>
!                             "Type " & To_Name (S) &
!                             " is frozen here"),
!                      2 =>
!                        Secondary_Labeled_Span
!                          (N     => S,
!                           Label =>
!                             "Type " & To_Name (S) &
!                             " is declared here")));
!                Error_Msg_Sloc := Sloc (Freeze_Node (S));
!                Error_Msg_N
!                  ("\\move the record representation clause" &
!                   " before the freeze point #",
!                   N);
              else
                 Error_Msg_N ("|representation item appears too late!", N);
              end if;
           end if;
        end Too_Late;
*************** package body Sem_Ch13 is
*** 16862,16867 ****
--- 17844,17878 ----
        Typ : Entity_Id;
        Nam : Name_Id)
     is
+    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 Resolve_Finalization_Procedure (N, Typ) then
+          return;
+       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;
+ 
+    function Resolve_Finalization_Procedure
+      (N   : Node_Id;
+       Typ : Entity_Id)
+       return Boolean
+    is
        function Is_Finalizable_Primitive (E : Entity_Id) return Boolean;
        --  Check whether E is a finalizable primitive for Typ
  
*************** package body Sem_Ch13 is
*** 16879,16907 ****
             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
--- 17890,17904 ----
             and then No (Next_Formal (First_Formal (E)));
        end Is_Finalizable_Primitive;
  
!    --  Start of processing for Resolve_Finalization_Procedure
  
     begin
        if not Is_Entity_Name (N) then
           null;
  
        elsif not Is_Overloaded (N) then
           if Is_Finalizable_Primitive (Entity (N)) then
!             return True;
           end if;
  
        else
*************** package body Sem_Ch13 is
*** 16917,16923 ****
              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);
--- 17914,17920 ----
              while Present (It.Typ) loop
                 if Is_Finalizable_Primitive (It.Nam) then
                    Set_Entity (N, It.Nam);
!                   return True;
                 end if;
  
                 Get_Next_Interp (I, It);
*************** package body Sem_Ch13 is
*** 16925,16934 ****
           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 --
--- 17922,17929 ----
           end;
        end if;
  
!       return False;
!    end Resolve_Finalization_Procedure;
  
     --------------------------------
     -- Resolve_Iterable_Operation --
*************** package body Sem_Ch13 is
*** 17156,17162 ****
           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;
--- 18151,18157 ----
           elsif Ekind (E) = E_Function then
              return No (First_Formal (E))
                or else
!                 (Has_Overflow_Operations (Etype (First_Formal (E)))
                    and then No (Next_Formal (First_Formal (E))));
           else
              return False;
*************** package body Sem_Ch13 is
*** 17224,17238 ****
        -----------------------
  
        procedure Resolve_Operation (Subp_Id : Node_Id) is
-          Subp : Entity_Id;
- 
           I  : Interp_Index;
           It : Interp;
  
        begin
           if not Is_Overloaded (Subp_Id) then
!             Subp := Entity (Subp_Id);
!             if not Pred (Subp) then
                 Error_Msg_NE
                   ("improper aggregate operation for&", Subp_Id, Typ);
              end if;
--- 18219,18230 ----
        -----------------------
  
        procedure Resolve_Operation (Subp_Id : Node_Id) is
           I  : Interp_Index;
           It : Interp;
  
        begin
           if not Is_Overloaded (Subp_Id) then
!             if not Pred (Entity (Subp_Id)) then
                 Error_Msg_NE
                   ("improper aggregate operation for&", Subp_Id, Typ);
              end if;
*************** package body Sem_Ch13 is
*** 17242,17250 ****
              Get_First_Interp (Subp_Id, I, It);
              while Present (It.Nam) loop
                 if Pred (It.Nam) then
                    Set_Is_Overloaded (Subp_Id, False);
                    Set_Entity (Subp_Id, It.Nam);
-                   exit;
                 end if;
  
                 Get_Next_Interp (I, It);
--- 18234,18254 ----
              Get_First_Interp (Subp_Id, I, It);
              while Present (It.Nam) loop
                 if Pred (It.Nam) then
+                   if Present (Entity (Subp_Id)) then
+                      --  ??? Cope with the obsolete renaming of Append_Vector
+                      --  in Ada.Containers.Vectors retained for compatibility.
+ 
+                      if No (Alias (Entity (Subp_Id)))
+                        and then No (Alias (It.Nam))
+                      then
+                         Error_Msg_N
+                           ("& must denote exactly one subprogram", Subp_Id);
+                      end if;
+ 
+                      exit;
+                   end if;
                    Set_Is_Overloaded (Subp_Id, False);
                    Set_Entity (Subp_Id, It.Nam);
                 end if;
  
                 Get_Next_Interp (I, It);
*************** package body Sem_Ch13 is
*** 18098,18104 ****
                 --  Check for known value not multiple of alignment
  
                 if No (ACCR.Y) then
!                   if not Alignment_Checks_Suppressed (ACCR)
                      and then X_Alignment /= 0
                      and then ACCR.A mod X_Alignment /= 0
                    then
--- 19102,19108 ----
                 --  Check for known value not multiple of alignment
  
                 if No (ACCR.Y) then
!                   if Check_Address_Alignment (ACCR.N)
                      and then X_Alignment /= 0
                      and then ACCR.A mod X_Alignment /= 0
                    then
*************** package body Sem_Ch13 is
*** 18143,18149 ****
                 --  Note: we do not check the alignment if we gave a size
                 --  warning, since it would likely be redundant.
  
!                elsif not Alignment_Checks_Suppressed (ACCR)
                   and then Y_Alignment /= Uint_0
                   and then
                     (Y_Alignment < X_Alignment
--- 19147,19153 ----
                 --  Note: we do not check the alignment if we gave a size
                 --  warning, since it would likely be redundant.
  
!                elsif Check_Address_Alignment (ACCR.N)
                   and then Y_Alignment /= Uint_0
                   and then
                     (Y_Alignment < X_Alignment
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch13.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch13.ads
*** gcc-15.2.0/gcc/ada/sem_ch13.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch13.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 43,50 ****
  
     procedure Analyze_Aspect_Specifications (N : Node_Id; E : Entity_Id);
     --  This procedure is called to analyze aspect specifications for node N. E
!    --  is the corresponding entity declared by the declaration node N. Callers
!    --  should check that Has_Aspects (N) is True before calling this routine.
  
     procedure Analyze_Aspects_On_Subprogram_Body_Or_Stub (N : Node_Id);
     --  Analyze the aspect specifications of [generic] subprogram body or stub
--- 43,49 ----
  
     procedure Analyze_Aspect_Specifications (N : Node_Id; E : Entity_Id);
     --  This procedure is called to analyze aspect specifications for node N. E
!    --  is the corresponding entity declared by the declaration node N.
  
     procedure Analyze_Aspects_On_Subprogram_Body_Or_Stub (N : Node_Id);
     --  Analyze the aspect specifications of [generic] subprogram body or stub
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch2.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch2.adb
*** gcc-15.2.0/gcc/ada/sem_ch2.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch2.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 24,29 ----
*************** with Sem;            use Sem;
*** 39,45 ****
  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;
  with Stand;          use Stand;
--- 38,43 ----
*************** package body Sem_Ch2 is
*** 124,130 ****
        --  prior analysis (or construction) of the literal, and after type
        --  checking and resolution.
  
!       if No (Etype (N)) or else not Is_Modular_Integer_Type (Etype (N)) then
           Set_Etype (N, Universal_Integer);
        end if;
  
--- 122,128 ----
        --  prior analysis (or construction) of the literal, and after type
        --  checking and resolution.
  
!       if No (Etype (N)) or else not Has_Modular_Operations (Etype (N)) then
           Set_Etype (N, Universal_Integer);
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch2.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch2.ads
*** gcc-15.2.0/gcc/ada/sem_ch2.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch2.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch3.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch3.adb
*** gcc-15.2.0/gcc/ada/sem_ch3.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch3.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Checks;         use Checks;
*** 30,36 ****
  with Contracts;      use Contracts;
  with Debug;          use Debug;
  with Elists;         use Elists;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 30,35 ----
*************** with Exp_Disp;       use Exp_Disp;
*** 41,47 ****
  with Exp_Dist;       use Exp_Dist;
  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;
--- 40,45 ----
*************** with Sem_Type;       use Sem_Type;
*** 81,87 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 79,84 ----
*************** package body Sem_Ch3 is
*** 291,296 ****
--- 288,302 ----
     --  Check that the expression represented by E is suitable for use as a
     --  digits expression, i.e. it is of integer type, positive and static.
  
+    procedure Check_Discriminant_Conformance
+      (N        : Node_Id;
+       Prev     : Entity_Id;
+       Prev_Loc : Node_Id);
+    --  Check that the discriminants of a full type N fully conform to the
+    --  discriminants of the corresponding partial view Prev. Prev_Loc indicates
+    --  the source location of the partial view, which may be different than
+    --  Prev in the case of private types.
+ 
     procedure Check_Initialization (T : Entity_Id; Exp : Node_Id);
     --  Validate the initialization of an object declaration. T is the required
     --  type, and Exp is the initialization expression.
*************** package body Sem_Ch3 is
*** 383,389 ****
     --  created in the procedure and attached to Related_Nod.
  
     procedure Constrain_Array
!      (Def_Id      : in out Entity_Id;
        SI          : Node_Id;
        Related_Nod : Node_Id;
        Related_Id  : Entity_Id;
--- 389,395 ----
     --  created in the procedure and attached to Related_Nod.
  
     procedure Constrain_Array
!      (Def_Id      : Entity_Id;
        SI          : Node_Id;
        Related_Nod : Node_Id;
        Related_Id  : Entity_Id;
*************** package body Sem_Ch3 is
*** 623,631 ****
     --  Create a new ordinary fixed point type, and apply the constraint to
     --  obtain subtype of it.
  
!    procedure Preanalyze_Default_Expression (N : Node_Id; T : Entity_Id);
!    --  Wrapper on Preanalyze_Spec_Expression for default expressions, so that
!    --  In_Default_Expr can be properly adjusted.
  
     procedure Prepare_Private_Subtype_Completion
       (Id          : Entity_Id;
--- 629,639 ----
     --  Create a new ordinary fixed point type, and apply the constraint to
     --  obtain subtype of it.
  
!    procedure Preanalyze_And_Resolve_Default_Expression
!      (N : Node_Id;
!       T : Entity_Id);
!    --  Wrapper on Preanalyze_And_Resolve_Spec_Expression for default
!    --  expressions, so that In_Default_Expr can be properly adjusted.
  
     procedure Prepare_Private_Subtype_Completion
       (Id          : Entity_Id;
*************** package body Sem_Ch3 is
*** 948,954 ****
           if Is_Limited_Record (Desig_Type)
             and then Is_Class_Wide_Type (Desig_Type)
           then
!             Build_Class_Wide_Master (Anon_Type);
  
           --  Similarly, if the type is an anonymous access that designates
           --  tasks, create a master entity for it in the current context.
--- 956,963 ----
           if Is_Limited_Record (Desig_Type)
             and then Is_Class_Wide_Type (Desig_Type)
           then
!             Build_Master_Entity (Defining_Identifier (Related_Nod));
!             Build_Master_Renaming (Anon_Type);
  
           --  Similarly, if the type is an anonymous access that designates
           --  tasks, create a master entity for it in the current context.
*************** package body Sem_Ch3 is
*** 1307,1320 ****
        Reinit_Size_Align            (T_Name);
        Set_Directly_Designated_Type (T_Name, Desig_Type);
  
-       --  If the access_to_subprogram is not declared at the library level,
-       --  it can only point to subprograms that are at the same or deeper
-       --  accessibility level. The corresponding subprogram type might
-       --  require an activation record when compiling for C.
- 
-       Set_Needs_Activation_Record  (Desig_Type,
-                                       not Is_Library_Level_Entity (T_Name));
- 
        Generate_Reference_To_Formals (T_Name);
  
        --  Ada 2005 (AI-231): Propagate the null-excluding attribute
--- 1316,1321 ----
*************** package body Sem_Ch3 is
*** 1421,1427 ****
           end if;
  
        else
!          Setup_Access_Type (Desig_Typ => Process_Subtype (S, P, T, 'P'));
        end if;
  
        if not Error_Posted (T) then
--- 1422,1430 ----
           end if;
  
        else
!          Setup_Access_Type
!            (Desig_Typ =>
!               Process_Subtype (S, P, T, 'P', Incomplete_Type_OK => True));
        end if;
  
        if not Error_Posted (T) then
*************** package body Sem_Ch3 is
*** 1472,1480 ****
        --  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;
  
--- 1475,1489 ----
        --  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. It is also skipped when Etype (T) is
!       --  unknown, since attribute Associated_Storage_Pool is only available
!       --  in the root type of T, and in such case it cannot not be computed
!       --  (thus causing spurious errors). Etype (T) is unknown when errors
!       --  have been previously reported on T.
  
!       if Present (Etype (T))
!         and then No (Associated_Storage_Pool (T))
!       then
           Set_Finalization_Collection (T, Empty);
        end if;
  
*************** package body Sem_Ch3 is
*** 1532,1538 ****
           Analyze_Component_Declaration (Decl);
  
           Set_Analyzed (Decl);
-          Mutate_Ekind            (Tag, E_Component);
           Set_Is_Tag              (Tag);
           Set_Is_Aliased          (Tag);
           Set_Is_Independent      (Tag);
--- 1541,1546 ----
*************** package body Sem_Ch3 is
*** 1573,1579 ****
              Analyze_Component_Declaration (Decl);
  
              Set_Analyzed (Decl);
-             Mutate_Ekind            (Offset, E_Component);
              Set_Is_Aliased          (Offset);
              Set_Is_Independent      (Offset);
              Set_Related_Type        (Offset, Iface);
--- 1581,1586 ----
*************** package body Sem_Ch3 is
*** 1958,1964 ****
     procedure Analyze_Component_Declaration (N : Node_Id) is
        Id  : constant Entity_Id  := Defining_Identifier (N);
        E   : constant Node_Id    := Expression (N);
!       Typ : constant Node_Id    :=
                Subtype_Indication (Component_Definition (N));
        T   : Entity_Id;
        P   : Entity_Id;
--- 1965,1971 ----
     procedure Analyze_Component_Declaration (N : Node_Id) is
        Id  : constant Entity_Id  := Defining_Identifier (N);
        E   : constant Node_Id    := Expression (N);
!       Ind : constant Node_Id    :=
                Subtype_Indication (Component_Definition (N));
        T   : Entity_Id;
        P   : Entity_Id;
*************** package body Sem_Ch3 is
*** 2053,2062 ****
     --  Start of processing for Analyze_Component_Declaration
  
     begin
        Generate_Definition (Id);
        Enter_Name (Id);
  
!       if Present (Typ) then
           T := Find_Type_Of_Object
                  (Subtype_Indication (Component_Definition (N)), N);
  
--- 2060,2070 ----
     --  Start of processing for Analyze_Component_Declaration
  
     begin
+       Mutate_Ekind (Id, E_Component);
        Generate_Definition (Id);
        Enter_Name (Id);
  
!       if Present (Ind) then
           T := Find_Type_Of_Object
                  (Subtype_Indication (Component_Definition (N)), N);
  
*************** package body Sem_Ch3 is
*** 2110,2116 ****
        --  package Sem).
  
        if Present (E) then
!          Preanalyze_Default_Expression (E, T);
           Check_Initialization (T, E);
  
           if Ada_Version >= Ada_2005
--- 2118,2124 ----
        --  package Sem).
  
        if Present (E) then
!          Preanalyze_And_Resolve_Default_Expression (E, T);
           Check_Initialization (T, E);
  
           if Ada_Version >= Ada_2005
*************** package body Sem_Ch3 is
*** 2507,2513 ****
                             (First (Pragma_Argument_Associations (ASN))));
                       Set_Parent (Exp, ASN);
  
!                      Preanalyze_Assert_Expression (Exp, Standard_Boolean);
                    end if;
  
                    ASN := Next_Pragma (ASN);
--- 2515,2522 ----
                             (First (Pragma_Argument_Associations (ASN))));
                       Set_Parent (Exp, ASN);
  
!                      Preanalyze_And_Resolve_Assert_Expression
!                        (Exp, Standard_Boolean);
                    end if;
  
                    ASN := Next_Pragma (ASN);
*************** package body Sem_Ch3 is
*** 2892,2903 ****
           --  private type from a library unit, otherwise premature freezing of
           --  the private type will occur.
  
!          elsif not Analyzed (Next_Decl) and then Is_Body (Next_Decl)
             and then ((Nkind (Next_Decl) /= N_Subprogram_Body
!                        or else not Was_Expression_Function (Next_Decl))
!                       or else (not Is_Ignored_Ghost_Entity (Current_Scope)
!                                 and then not Contains_Lib_Incomplete_Type
!                                                (Current_Scope)))
           then
              --  When a controlled type is frozen, the expander generates stream
              --  and controlled-type support routines. If the freeze is caused
--- 2901,2914 ----
           --  private type from a library unit, otherwise premature freezing of
           --  the private type will occur.
  
!          elsif not Analyzed (Next_Decl)
!            and then Is_Body (Next_Decl)
             and then ((Nkind (Next_Decl) /= N_Subprogram_Body
!                       or else not Was_Expression_Function (Next_Decl))
!                      or else (not Is_Ignored_Ghost_Entity_In_Codegen
!                                     (Current_Scope)
!                               and then not Contains_Lib_Incomplete_Type
!                                              (Current_Scope)))
           then
              --  When a controlled type is frozen, the expander generates stream
              --  and controlled-type support routines. If the freeze is caused
*************** package body Sem_Ch3 is
*** 3014,3019 ****
--- 3025,3032 ----
     -----------------------------------
  
     procedure Analyze_Full_Type_Declaration (N : Node_Id) is
+       use Deferred_Extra_Formals_Support;
+ 
        Def    : constant Node_Id   := Type_Definition (N);
        Def_Id : constant Entity_Id := Defining_Identifier (N);
        T      : Entity_Id;
*************** package body Sem_Ch3 is
*** 3026,3033 ****
                                       or else In_Package_Body (Current_Scope));
  
        procedure Check_Nonoverridable_Aspects;
!       --  Apply the rule in RM 13.1.1(18.4/4) on iterator aspects that cannot
!       --  be overridden, and can only be confirmed on derivation.
  
        procedure Check_Ops_From_Incomplete_Type;
        --  If there is a tagged incomplete partial view of the type, traverse
--- 3039,3048 ----
                                       or else In_Package_Body (Current_Scope));
  
        procedure Check_Nonoverridable_Aspects;
!       --  Apply rules for nonoverridable aspects on types with partial views
!       --  described in RM 13.1.1 (18.6/6). This procedure must only be called
!       --  in the partial view completion case, i.e. when T points to the
!       --  full view and Def_Id points to the partial view.
  
        procedure Check_Ops_From_Incomplete_Type;
        --  If there is a tagged incomplete partial view of the type, traverse
*************** package body Sem_Ch3 is
*** 3073,3096 ****
  
           --  Local variables
  
!          Prev_Aspects   : constant List_Id :=
!                             Aspect_Specifications (Parent (Def_Id));
!          Par_Type       : Entity_Id;
!          Prev_Aspect    : Node_Id;
  
        --  Start of processing for Check_Nonoverridable_Aspects
  
        begin
-          --  Get parent type of derived type. Note that Prev is the entity in
-          --  the partial declaration, but its contents are now those of full
-          --  view, while Def_Id reflects the partial view.
- 
-          if Is_Private_Type (Def_Id) then
-             Par_Type := Etype (Full_View (Def_Id));
-          else
-             Par_Type := Etype (Def_Id);
-          end if;
- 
           --  If there is an inherited Implicit_Dereference, verify that it is
           --  made explicit in the partial view.
  
--- 3088,3101 ----
  
           --  Local variables
  
!          Prev_Aspects : constant List_Id :=
!            Aspect_Specifications (Parent (Def_Id));
!          Prev_Aspect  : Node_Id;
!          Par_Type     : constant Entity_Id := Etype (T);
  
        --  Start of processing for Check_Nonoverridable_Aspects
  
        begin
           --  If there is an inherited Implicit_Dereference, verify that it is
           --  made explicit in the partial view.
  
*************** package body Sem_Ch3 is
*** 3183,3191 ****
--- 3188,3216 ----
           end if;
        end Check_Ops_From_Incomplete_Type;
  
+       --  Local variables
+ 
+       Is_Unsigned_Base_Range_Type_Decl : Boolean := False;
+ 
     --  Start of processing for Analyze_Full_Type_Declaration
  
     begin
+       if Present (Aspect_Specifications (Parent (Def))) then
+          declare
+             Asp : Node_Id;
+          begin
+             Asp := First (Aspect_Specifications (Parent (Def)));
+             while Present (Asp) loop
+                if Chars (Identifier (Asp)) = Name_Unsigned_Base_Range then
+                   Is_Unsigned_Base_Range_Type_Decl := True;
+                   exit;
+                end if;
+ 
+                Next (Asp);
+             end loop;
+          end;
+       end if;
+ 
        Prev := Find_Type_Name (N);
  
        --  The full view, if present, now points to the current type. If there
*************** package body Sem_Ch3 is
*** 3200,3206 ****
          and then Present (Full_View (Prev))
        then
           T := Full_View (Prev);
!          Set_Incomplete_View (N, Prev);
        else
           T := Prev;
        end if;
--- 3225,3231 ----
          and then Present (Full_View (Prev))
        then
           T := Full_View (Prev);
!          Set_Incomplete_View (T, Prev);
        else
           T := Prev;
        end if;
*************** package body Sem_Ch3 is
*** 3321,3327 ****
                 Ordinary_Fixed_Point_Type_Declaration (T, Def);
  
              when N_Signed_Integer_Type_Definition =>
!                Signed_Integer_Type_Declaration (T, Def);
  
              when N_Modular_Type_Definition =>
                 Modular_Type_Declaration (T, Def);
--- 3346,3356 ----
                 Ordinary_Fixed_Point_Type_Declaration (T, Def);
  
              when N_Signed_Integer_Type_Definition =>
!                if Is_Unsigned_Base_Range_Type_Decl then
!                   Unsigned_Base_Range_Type_Declaration (T, Def);
!                else
!                   Signed_Integer_Type_Declaration (T, Def);
!                end if;
  
              when N_Modular_Type_Definition =>
                 Modular_Type_Declaration (T, Def);
*************** package body Sem_Ch3 is
*** 3551,3556 ****
--- 3580,3602 ----
              end;
           end if;
        end if;
+ 
+       --  If we have some subprogram, subprogram type, or entry, with deferred
+       --  addition of its extra formals (because the underlying type of this
+       --  type was not previously available), then try creating now its extra
+       --  formals. Create also the extra actuals of deferred calls to entities
+       --  with deferred extra formals.
+ 
+       if Has_Deferred_Extra_Formals (T) then
+          Add_Deferred_Extra_Params (T);
+       end if;
+ 
+       if Ekind (T) = E_Record_Type
+         and then Is_Large_Unconstrained_Definite (T)
+         and then not Is_Limited_Type (T)
+       then
+          Error_Msg_N ("??creation of & object may raise Storage_Error!", T);
+       end if;
     end Analyze_Full_Type_Declaration;
  
     ----------------------------------
*************** package body Sem_Ch3 is
*** 3565,3575 ****
        Generate_Definition (Defining_Identifier (N));
  
        --  Process an incomplete declaration. The identifier must not have been
!       --  declared already in the scope. However, an incomplete declaration may
!       --  appear in the private part of a package, for a private type that has
!       --  already been declared.
! 
!       --  In this case, the discriminants (if any) must match
  
        T := Find_Type_Name (N);
  
--- 3611,3617 ----
        Generate_Definition (Defining_Identifier (N));
  
        --  Process an incomplete declaration. The identifier must not have been
!       --  declared already in the scope.
  
        T := Find_Type_Name (N);
  
*************** package body Sem_Ch3 is
*** 3700,3707 ****
           Set_Is_Static_Expression (E, True);
           Set_Etype                (E, Universal_Integer);
  
-          Set_Etype     (Id, Universal_Integer);
           Mutate_Ekind  (Id, E_Named_Integer);
           Set_Is_Frozen (Id, True);
  
           Set_Debug_Info_Needed (Id);
--- 3742,3749 ----
           Set_Is_Static_Expression (E, True);
           Set_Etype                (E, Universal_Integer);
  
           Mutate_Ekind  (Id, E_Named_Integer);
+          Set_Etype     (Id, Universal_Integer);
           Set_Is_Frozen (Id, True);
  
           Set_Debug_Info_Needed (Id);
*************** package body Sem_Ch3 is
*** 3761,3768 ****
  
        if Is_Integer_Type (T) then
           Resolve (E, T);
-          Set_Etype (Id, Universal_Integer);
           Mutate_Ekind (Id, E_Named_Integer);
  
        elsif Is_Real_Type (T) then
  
--- 3803,3810 ----
  
        if Is_Integer_Type (T) then
           Resolve (E, T);
           Mutate_Ekind (Id, E_Named_Integer);
+          Set_Etype (Id, Universal_Integer);
  
        elsif Is_Real_Type (T) then
  
*************** package body Sem_Ch3 is
*** 3793,3807 ****
           end if;
  
           Resolve (E, T);
-          Set_Etype (Id, Universal_Real);
           Mutate_Ekind (Id, E_Named_Real);
  
        else
           Wrong_Type (E, Any_Numeric);
           Resolve (E, T);
  
-          Set_Etype               (Id, T);
           Mutate_Ekind            (Id, E_Constant);
           Set_Never_Set_In_Source (Id, True);
           Set_Is_True_Constant    (Id, True);
           return;
--- 3835,3849 ----
           end if;
  
           Resolve (E, T);
           Mutate_Ekind (Id, E_Named_Real);
+          Set_Etype (Id, Universal_Real);
  
        else
           Wrong_Type (E, Any_Numeric);
           Resolve (E, T);
  
           Mutate_Ekind            (Id, E_Constant);
+          Set_Etype               (Id, T);
           Set_Never_Set_In_Source (Id, True);
           Set_Is_True_Constant    (Id, True);
           return;
*************** package body Sem_Ch3 is
*** 3950,3956 ****
                    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);
--- 3992,3998 ----
                    Data_Path_String : constant String :=
                      Absolute_Dir
                      & System.OS_Lib.Directory_Separator
!                     & S;
  
                 begin
                    Data_Path := Name_Find (Data_Path_String);
*************** package body Sem_Ch3 is
*** 4150,4156 ****
  
        procedure Check_Return_Subtype_Indication (Obj_Decl : Node_Id) is
           Obj_Id  : constant Entity_Id := Defining_Identifier (Obj_Decl);
!          Obj_Typ : constant Entity_Id := Etype (Obj_Id);
           Func_Id : constant Entity_Id := Return_Applies_To (Scope (Obj_Id));
           R_Typ   : constant Entity_Id := Etype (Func_Id);
           Indic   : constant Node_Id   :=
--- 4192,4198 ----
  
        procedure Check_Return_Subtype_Indication (Obj_Decl : Node_Id) is
           Obj_Id  : constant Entity_Id := Defining_Identifier (Obj_Decl);
!          Obj_Typ : Entity_Id := Etype (Obj_Id);
           Func_Id : constant Entity_Id := Return_Applies_To (Scope (Obj_Id));
           R_Typ   : constant Entity_Id := Etype (Func_Id);
           Indic   : constant Node_Id   :=
*************** package body Sem_Ch3 is
*** 4186,4191 ****
--- 4228,4242 ----
              return;
           end if;
  
+          --  The return object type could have been rewritten into a
+          --  constrained type, so for the legality checks that follow we need
+          --  to recover the nominal unconstrained type.
+ 
+          if Is_Constr_Subt_For_U_Nominal (Obj_Typ) then
+             Obj_Typ := Entity (Original_Node (Object_Definition (Obj_Decl)));
+             pragma Assert (not Is_Constrained (Obj_Typ));
+          end if;
+ 
           --  "return access T" case; check that the return statement also has
           --  "access T", and that the subtypes statically match:
           --   if this is an access to subprogram the signatures must match.
*************** package body Sem_Ch3 is
*** 4254,4260 ****
  
              --  AI05-103: for elementary types, subtypes must statically match
  
!             if Is_Constrained (R_Typ) or else Is_Access_Type (R_Typ) then
                 if not Subtypes_Statically_Match (Obj_Typ, R_Typ) then
                    Error_No_Match (Indic);
                 end if;
--- 4305,4311 ----
  
              --  AI05-103: for elementary types, subtypes must statically match
  
!             if Is_Elementary_Type (R_Typ) then
                 if not Subtypes_Statically_Match (Obj_Typ, R_Typ) then
                    Error_No_Match (Indic);
                 end if;
*************** package body Sem_Ch3 is
*** 4270,4282 ****
              --  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
--- 4321,4332 ----
              --  code is expanded on the basis of the base type (see subprogram
              --  Stream_Base_Type).
  
!             elsif 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 subtype", Indic);
  
                 if not Predicates_Compatible (Obj_Typ, R_Typ) then
                    Error_Msg_NE
*************** package body Sem_Ch3 is
*** 4353,4360 ****
  
        --  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
  
        Prev_Entity       : Entity_Id := Empty;
--- 4403,4409 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Prev_Entity       : Entity_Id := Empty;
*************** package body Sem_Ch3 is
*** 4363,4368 ****
--- 4412,4430 ----
     --  Start of processing for Analyze_Object_Declaration
  
     begin
+       if Constant_Present (N) then
+          Mutate_Ekind (Id, E_Constant);
+          Set_Is_True_Constant (Id);
+       else
+          Mutate_Ekind (Id, E_Variable);
+       end if;
+ 
+       --  Indicate this is not set in source. Certainly true for constants, and
+       --  true for variables so far (will be reset for a variable if and when
+       --  we encounter a modification in the source).
+ 
+       Set_Never_Set_In_Source (Id);
+ 
        --  There are three kinds of implicit types generated by an
        --  object declaration:
  
*************** package body Sem_Ch3 is
*** 4442,4448 ****
  
              T := Find_Type_Of_Object (Object_Definition (N), N);
              Set_Etype (Id, T);
-             Mutate_Ekind (Id, E_Variable);
              goto Leave;
           end if;
  
--- 4504,4509 ----
*************** package body Sem_Ch3 is
*** 4468,4474 ****
  
           if Error_Posted (Id) then
              Set_Etype (Id, T);
-             Mutate_Ekind (Id, E_Variable);
              goto Leave;
           end if;
        end if;
--- 4529,4534 ----
*************** package body Sem_Ch3 is
*** 4551,4557 ****
              Error_Msg_N
                ("\declaration requires an initialization expression",
                  N);
-             Set_Constant_Present (N, False);
  
           --  In Ada 83, deferred constant must be of private type
  
--- 4611,4616 ----
*************** package body Sem_Ch3 is
*** 4577,4583 ****
              Set_Has_Delayed_Freeze (T);
  
           elsif not Preanalysis_Active then
!             Freeze_Before (N, T);
           end if;
        end if;
  
--- 4636,4645 ----
              Set_Has_Delayed_Freeze (T);
  
           elsif not Preanalysis_Active then
!             --  Do_Freeze_Profile matters in the case of an object
!             --  of an anonymous access-to-subprogram type.
! 
!             Freeze_Before (N, T, Do_Freeze_Profile => False);
           end if;
        end if;
  
*************** package body Sem_Ch3 is
*** 4645,4666 ****
              Set_Etype (E, T);
           end if;
  
-          --  If an initialization expression is present, then we set the
-          --  Is_True_Constant flag. It will be reset if this is a variable
-          --  and it is indeed modified.
- 
-          Set_Is_True_Constant (Id, True);
- 
           --  If we are analyzing a constant declaration, set its completion
           --  flag after analyzing and resolving the expression.
  
           if Constant_Present (N) then
              Set_Has_Completion (Id);
           end if;
  
!          --  Set type and resolve (type may be overridden later on). Note:
!          --  Ekind (Id) must still be E_Void at this point so that incorrect
!          --  early usage within E is properly diagnosed.
  
           Set_Etype (Id, T);
  
--- 4707,4732 ----
              Set_Etype (E, T);
           end if;
  
           --  If we are analyzing a constant declaration, set its completion
           --  flag after analyzing and resolving the expression.
  
           if Constant_Present (N) then
              Set_Has_Completion (Id);
+ 
+          --  Set Has_Initial_Value if initialization expression present. Note
+          --  that if there is no initializing expression, we leave the state
+          --  of this flag unchanged (usually it will be False, but notably in
+          --  the case of exception choice variables, it will already be true).
+ 
+          --  Set Is_True_Constant if initialization expression is present. It
+          --  will be reset if the variable is indeed modified.
+ 
+          else
+             Set_Has_Initial_Value (Id);
+             Set_Is_True_Constant (Id);
           end if;
  
!          --  Set type and resolve (type may be overridden later on)
  
           Set_Etype (Id, T);
  
*************** package body Sem_Ch3 is
*** 4760,4766 ****
             and then In_Subrange_Of (Etype (Entity (E)), T)
           then
              Set_Is_Known_Valid (Id);
-             Mutate_Ekind (Id, E_Constant);
              Set_Actual_Subtype (Id, Etype (Entity (E)));
           end if;
  
--- 4826,4831 ----
*************** package body Sem_Ch3 is
*** 5009,5020 ****
              --  for discriminants and are thus not indefinite.
  
              elsif Is_Unchecked_Union (T) then
-                if Constant_Present (N) or else Nkind (E) = N_Function_Call then
-                   Mutate_Ekind (Id, E_Constant);
-                else
-                   Mutate_Ekind (Id, E_Variable);
-                end if;
- 
                 --  If the expression is an aggregate it contains the required
                 --  discriminant values but it has not been resolved yet, so do
                 --  it now, and treat it as the initial expression of an object
--- 5074,5079 ----
*************** package body Sem_Ch3 is
*** 5073,5089 ****
                    --  that subsequent uses of this entity are not rejected
                    --  via the same mechanism that (correctly) rejects
                    --  "X : Integer := X;".
- 
-                   if Constant_Present (N) then
-                      Mutate_Ekind         (Id, E_Constant);
-                      Set_Is_True_Constant (Id);
-                   else
-                      Mutate_Ekind (Id, E_Variable);
-                      if Present (E) then
-                         Set_Has_Initial_Value (Id);
-                      end if;
-                   end if;
- 
                    goto Leave;
                 end if;
  
--- 5132,5137 ----
*************** package body Sem_Ch3 is
*** 5201,5252 ****
          and then Nkind (E) = N_Aggregate
        then
           Act_T := Etype (E);
        end if;
  
        --  Check No_Wide_Characters restriction
  
        Check_Wide_Character_Restriction (T, Object_Definition (N));
  
-       --  Indicate this is not set in source. Certainly true for constants, and
-       --  true for variables so far (will be reset for a variable if and when
-       --  we encounter a modification in the source).
- 
-       Set_Never_Set_In_Source (Id);
- 
        --  Now establish the proper kind and type of the object
  
        if Ekind (Id) = E_Void then
           Reinit_Field_To_Zero (Id, F_Next_Inlined_Subprogram);
        end if;
  
!       if Constant_Present (N) then
!          Mutate_Ekind         (Id, E_Constant);
!          Set_Is_True_Constant (Id);
! 
!       else
!          Mutate_Ekind (Id, E_Variable);
! 
!          --  A variable is set as shared passive if it appears in a shared
!          --  passive package, and is at the outer level. This is not done for
!          --  entities generated during expansion, because those are always
!          --  manipulated locally.
! 
!          if Is_Shared_Passive (Current_Scope)
!            and then Is_Library_Level_Entity (Id)
!            and then Comes_From_Source (Id)
!          then
!             Set_Is_Shared_Passive (Id);
!             Check_Shared_Var (Id, T, N);
!          end if;
! 
!          --  Set Has_Initial_Value if initializing expression present. Note
!          --  that if there is no initializing expression, we leave the state
!          --  of this flag unchanged (usually it will be False, but notably in
!          --  the case of exception choice variables, it will already be true).
  
!          if Present (E) then
!             Set_Has_Initial_Value (Id);
!          end if;
        end if;
  
        --  Set the SPARK mode from the current context (may be overwritten later
--- 5249,5287 ----
          and then Nkind (E) = N_Aggregate
        then
           Act_T := Etype (E);
+ 
+       elsif Needs_Construction (T)
+         and then not Has_Init_Expression (N)
+         and then not Has_Parameterless_Constructor (T)
+         and then not Suppress_Initialization (Id)
+         and then Comes_From_Source (N)
+       then
+          Error_Msg_NE ("no parameterless constructor for&",
+                        Object_Definition (N), T);
        end if;
  
        --  Check No_Wide_Characters restriction
  
        Check_Wide_Character_Restriction (T, Object_Definition (N));
  
        --  Now establish the proper kind and type of the object
  
        if Ekind (Id) = E_Void then
           Reinit_Field_To_Zero (Id, F_Next_Inlined_Subprogram);
        end if;
  
!       --  A variable is set as shared passive if it appears in a shared
!       --  passive package, and is at the outer level. This is not done for
!       --  entities generated during expansion, because those are always
!       --  manipulated locally.
  
!       if not Constant_Present (N)
!         and then Is_Shared_Passive (Current_Scope)
!         and then Is_Library_Level_Entity (Id)
!         and then Comes_From_Source (Id)
!       then
!          Set_Is_Shared_Passive (Id);
!          Check_Shared_Var (Id, T, N);
        end if;
  
        --  Set the SPARK mode from the current context (may be overwritten later
*************** package body Sem_Ch3 is
*** 5453,5459 ****
           Check_No_Hidden_State (Id);
        end if;
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Object_Declaration;
  
     ---------------------------
--- 5488,5494 ----
           Check_No_Hidden_State (Id);
        end if;
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Object_Declaration;
  
     ---------------------------
*************** package body Sem_Ch3 is
*** 5732,5737 ****
--- 5767,5791 ----
        Id : constant Entity_Id := Defining_Identifier (N);
        T  : Entity_Id;
  
+       procedure Copy_Parent_Attributes;
+       --  Copy fields that don't depend on the type kind from the subtype
+       --  denoted by the subtype mark.
+ 
+       ----------------------------
+       -- Copy_Parent_Attributes --
+       ----------------------------
+ 
+       procedure Copy_Parent_Attributes is
+       begin
+          Set_Etype (Id, Base_Type (T));
+          Set_Is_Volatile (Id, Is_Volatile (T));
+          Set_Treat_As_Volatile (Id, Treat_As_Volatile (T));
+          Set_Is_Generic_Type (Id, Is_Generic_Type (Base_Type (T)));
+          Set_Convention (Id, Convention (T));
+       end Copy_Parent_Attributes;
+ 
+    --  Start of processing for Analyze_Subtype_Declaration
+ 
     begin
        Generate_Definition (Id);
        Set_Is_Pure (Id, Is_Pure (Current_Scope));
*************** package body Sem_Ch3 is
*** 5775,5781 ****
           Enter_Name (Id);
        end if;
  
!       T := Process_Subtype (Subtype_Indication (N), N, Id, 'P');
  
        --  Class-wide equivalent types of records with unknown discriminants
        --  involve the generation of an itype which serves as the private view
--- 5829,5843 ----
           Enter_Name (Id);
        end if;
  
!       T :=
!         Process_Subtype
!           (Subtype_Indication (N),
!            N,
!            Id,
!            'P',
!            Excludes_Null      => Null_Exclusion_Present (N),
!            Incomplete_Type_OK =>
!              Ada_Version >= Ada_2005 or else Is_Itype (Id));
  
        --  Class-wide equivalent types of records with unknown discriminants
        --  involve the generation of an itype which serves as the private view
*************** package body Sem_Ch3 is
*** 5790,5802 ****
           T := Full_View (T);
        end if;
  
-       --  Inherit common attributes
- 
-       Set_Is_Volatile       (Id, Is_Volatile       (T));
-       Set_Treat_As_Volatile (Id, Treat_As_Volatile (T));
-       Set_Is_Generic_Type   (Id, Is_Generic_Type   (Base_Type (T)));
-       Set_Convention        (Id, Convention        (T));
- 
        --  If ancestor has predicates then so does the subtype, and in addition
        --  we must delay the freeze to properly arrange predicate inheritance.
  
--- 5852,5857 ----
*************** package body Sem_Ch3 is
*** 5836,5851 ****
        --  semantic attributes must be established here.
  
        if Nkind (Subtype_Indication (N)) /= N_Subtype_Indication then
-          Set_Etype (Id, Base_Type (T));
- 
           case Ekind (T) is
              when Array_Kind =>
                 Mutate_Ekind                  (Id, E_Array_Subtype);
                 Copy_Array_Subtype_Attributes (Id, T);
                 Set_Packed_Array_Impl_Type    (Id, Packed_Array_Impl_Type (T));
  
              when Decimal_Fixed_Point_Kind =>
                 Mutate_Ekind             (Id, E_Decimal_Fixed_Point_Subtype);
                 Set_Digits_Value         (Id, Digits_Value       (T));
                 Set_Delta_Value          (Id, Delta_Value        (T));
                 Set_Scale_Value          (Id, Scale_Value        (T));
--- 5891,5906 ----
        --  semantic attributes must be established here.
  
        if Nkind (Subtype_Indication (N)) /= N_Subtype_Indication then
           case Ekind (T) is
              when Array_Kind =>
                 Mutate_Ekind                  (Id, E_Array_Subtype);
+                Copy_Parent_Attributes;
                 Copy_Array_Subtype_Attributes (Id, T);
                 Set_Packed_Array_Impl_Type    (Id, Packed_Array_Impl_Type (T));
  
              when Decimal_Fixed_Point_Kind =>
                 Mutate_Ekind             (Id, E_Decimal_Fixed_Point_Subtype);
+                Copy_Parent_Attributes;
                 Set_Digits_Value         (Id, Digits_Value       (T));
                 Set_Delta_Value          (Id, Delta_Value        (T));
                 Set_Scale_Value          (Id, Scale_Value        (T));
*************** package body Sem_Ch3 is
*** 5858,5863 ****
--- 5913,5919 ----
  
              when Enumeration_Kind =>
                 Mutate_Ekind             (Id, E_Enumeration_Subtype);
+                Copy_Parent_Attributes;
                 Set_First_Literal        (Id, First_Literal (Base_Type (T)));
                 Set_Scalar_Range         (Id, Scalar_Range       (T));
                 Set_Is_Character_Type    (Id, Is_Character_Type  (T));
*************** package body Sem_Ch3 is
*** 5867,5872 ****
--- 5923,5929 ----
  
              when Ordinary_Fixed_Point_Kind =>
                 Mutate_Ekind          (Id, E_Ordinary_Fixed_Point_Subtype);
+                Copy_Parent_Attributes;
                 Set_Scalar_Range         (Id, Scalar_Range       (T));
                 Set_Small_Value          (Id, Small_Value        (T));
                 Set_Delta_Value          (Id, Delta_Value        (T));
*************** package body Sem_Ch3 is
*** 5876,5890 ****
--- 5933,5951 ----
  
              when Float_Kind =>
                 Mutate_Ekind             (Id, E_Floating_Point_Subtype);
+                Copy_Parent_Attributes;
                 Set_Scalar_Range         (Id, Scalar_Range       (T));
                 Set_Digits_Value         (Id, Digits_Value       (T));
                 Set_Is_Constrained       (Id, Is_Constrained     (T));
+                Set_Is_IEEE_Extended_Precision
+                  (Id, Is_IEEE_Extended_Precision (T));
  
                 --  If the floating point type has dimensions, these will be
                 --  inherited subsequently when Analyze_Dimensions is called.
  
              when Signed_Integer_Kind =>
                 Mutate_Ekind             (Id, E_Signed_Integer_Subtype);
+                Copy_Parent_Attributes;
                 Set_Scalar_Range         (Id, Scalar_Range       (T));
                 Set_Is_Constrained       (Id, Is_Constrained     (T));
                 Set_Is_Known_Valid       (Id, Is_Known_Valid     (T));
*************** package body Sem_Ch3 is
*** 5892,5897 ****
--- 5953,5959 ----
  
              when Modular_Integer_Kind =>
                 Mutate_Ekind             (Id, E_Modular_Integer_Subtype);
+                Copy_Parent_Attributes;
                 Set_Scalar_Range         (Id, Scalar_Range       (T));
                 Set_Is_Constrained       (Id, Is_Constrained     (T));
                 Set_Is_Known_Valid       (Id, Is_Known_Valid     (T));
*************** package body Sem_Ch3 is
*** 5899,5904 ****
--- 5961,5967 ----
  
              when Class_Wide_Kind =>
                 Mutate_Ekind             (Id, E_Class_Wide_Subtype);
+                Copy_Parent_Attributes;
                 Set_Class_Wide_Type      (Id, Class_Wide_Type    (T));
                 Set_Cloned_Subtype       (Id, T);
                 Set_Is_Tagged_Type       (Id, True);
*************** package body Sem_Ch3 is
*** 5916,5921 ****
--- 5979,5985 ----
                 | E_Record_Type
              =>
                 Mutate_Ekind             (Id, E_Record_Subtype);
+                Copy_Parent_Attributes;
  
                 --  Subtype declarations introduced for formal type parameters
                 --  in generic instantiations should inherit the Size value of
*************** package body Sem_Ch3 is
*** 5967,5972 ****
--- 6031,6037 ----
  
              when Private_Kind =>
                 Mutate_Ekind           (Id, Subtype_Kind (Ekind        (T)));
+                Copy_Parent_Attributes;
                 Set_Has_Discriminants  (Id, Has_Discriminants          (T));
                 Set_Is_Constrained     (Id, Is_Constrained             (T));
                 Set_First_Entity       (Id, First_Entity               (T));
*************** package body Sem_Ch3 is
*** 6030,6035 ****
--- 6095,6101 ----
  
              when Access_Kind =>
                 Mutate_Ekind          (Id, E_Access_Subtype);
+                Copy_Parent_Attributes;
                 Set_Is_Constrained    (Id, Is_Constrained        (T));
                 Set_Is_Access_Constant
                                       (Id, Is_Access_Constant    (T));
*************** package body Sem_Ch3 is
*** 6053,6058 ****
--- 6119,6125 ----
  
              when Concurrent_Kind =>
                 Mutate_Ekind             (Id, Subtype_Kind (Ekind   (T)));
+                Copy_Parent_Attributes;
                 Set_Corresponding_Record_Type (Id,
                                           Corresponding_Record_Type (T));
                 Set_First_Entity         (Id, First_Entity          (T));
*************** package body Sem_Ch3 is
*** 6062,6067 ****
--- 6129,6138 ----
                 Set_Is_Tagged_Type       (Id, Is_Tagged_Type        (T));
                 Set_Last_Entity          (Id, Last_Entity           (T));
  
+                if Is_Protected_Type (T) then
+                   Set_Uses_Lock_Free (Id, Uses_Lock_Free (T));
+                end if;
+ 
                 if Is_Tagged_Type (T) then
                    Set_No_Tagged_Streams_Pragma
                      (Id, No_Tagged_Streams_Pragma (T));
*************** package body Sem_Ch3 is
*** 6081,6086 ****
--- 6152,6158 ----
                    --  subtypes for Ada 2012 extended use of incomplete types.
  
                    Mutate_Ekind           (Id, E_Incomplete_Subtype);
+                   Copy_Parent_Attributes;
                    Set_Is_Tagged_Type     (Id, Is_Tagged_Type (T));
                    Set_Private_Dependents (Id, New_Elmt_List);
  
*************** package body Sem_Ch3 is
*** 6121,6126 ****
--- 6193,6200 ----
           --  declared entity inherits predicates from the parent.
  
           Inherit_Predicate_Flags (Id, T);
+       else
+          Copy_Parent_Attributes;
        end if;
  
        if Etype (Id) = Any_Type then
*************** package body Sem_Ch3 is
*** 6455,6466 ****
--- 6529,6543 ----
        Priv          : Entity_Id;
        Related_Id    : Entity_Id;
        Has_FLB_Index : Boolean := False;
+       K             : Entity_Kind;
  
     begin
        if Nkind (Def) = N_Constrained_Array_Definition then
           Index := First (Discrete_Subtype_Definitions (Def));
+          K := E_Array_Subtype;
        else
           Index := First (Subtype_Marks (Def));
+          K := E_Array_Type;
        end if;
  
        --  Find proper names for the implicit types which may be public. In case
*************** package body Sem_Ch3 is
*** 6592,6598 ****
        --  Process subtype indication if one is present
  
        if Present (Component_Typ) then
!          Element_Type := Process_Subtype (Component_Typ, P, Related_Id, 'C');
           Set_Etype (Component_Typ, Element_Type);
  
        --  Ada 2005 (AI-230): Access Definition case
--- 6669,6681 ----
        --  Process subtype indication if one is present
  
        if Present (Component_Typ) then
!          Element_Type :=
!            Process_Subtype
!              (Component_Typ,
!               P,
!               Related_Id,
!               'C',
!               Excludes_Null => Null_Exclusion_Present (Component_Def));
           Set_Etype (Component_Typ, Element_Type);
  
        --  Ada 2005 (AI-230): Access Definition case
*************** package body Sem_Ch3 is
*** 6633,6639 ****
           --  them unique suffixes, because GNATprove require distinct types to
           --  have different names.
  
!          T := Create_Itype (E_Void, P, Related_Id, 'T', Suffix_Index => -1);
        end if;
  
        --  Constrained array case
--- 6716,6722 ----
           --  them unique suffixes, because GNATprove require distinct types to
           --  have different names.
  
!          T := Create_Itype (K, P, Related_Id, 'T', Suffix_Index => -1);
        end if;
  
        --  Constrained array case
*************** package body Sem_Ch3 is
*** 6767,6773 ****
        --  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
--- 6850,6856 ----
        --  that the element type is constrained.
  
        if Is_Mutably_Tagged_Type (Element_Type) then
!          Set_Component_Type (Base_Type (T),
             Class_Wide_Equivalent_Type (Element_Type));
  
        elsif not Is_Definite_Subtype (Element_Type) then
*************** package body Sem_Ch3 is
*** 7208,7214 ****
        Set_Directly_Designated_Type
          (Derived_Type, Designated_Type (Parent_Type));
  
!       Subt := Process_Subtype (S, N);
  
        if Nkind (S) /= N_Subtype_Indication
          and then Subt /= Base_Type (Subt)
--- 7291,7301 ----
        Set_Directly_Designated_Type
          (Derived_Type, Designated_Type (Parent_Type));
  
!       Subt :=
!         Process_Subtype
!           (S,
!            N,
!            Excludes_Null => Null_Exclusion_Present (Type_Definition (N)));
  
        if Nkind (S) /= N_Subtype_Indication
          and then Subt /= Base_Type (Subt)
*************** package body Sem_Ch3 is
*** 8110,8118 ****
           Set_Non_Binary_Modulus
             (Implicit_Base, Non_Binary_Modulus (Parent_Base));
  
-          Set_Is_Known_Valid
-            (Implicit_Base, Is_Known_Valid (Parent_Base));
- 
        elsif Is_Floating_Point_Type (Parent_Type) then
  
           --  Digits of base type is always copied from the digits value of
--- 8197,8202 ----
*************** package body Sem_Ch3 is
*** 8121,8130 ****
--- 8205,8218 ----
  
           Set_Digits_Value (Implicit_Base, Digits_Value (Parent_Base));
           Set_Float_Rep    (Implicit_Base, Float_Rep    (Parent_Base));
+          Set_Is_IEEE_Extended_Precision
+            (Implicit_Base, Is_IEEE_Extended_Precision (Parent_Base));
  
           if No_Constraint then
              Set_Digits_Value (Derived_Type, Digits_Value (Parent_Type));
           end if;
+          Set_Is_IEEE_Extended_Precision
+            (Derived_Type, Is_IEEE_Extended_Precision (Parent_Base));
  
        elsif Is_Fixed_Point_Type (Parent_Type) then
  
*************** package body Sem_Ch3 is
*** 8171,8176 ****
--- 8259,8266 ----
        if Is_Integer_Type (Parent_Type) then
           Set_Has_Shift_Operator
             (Implicit_Base, Has_Shift_Operator (Parent_Type));
+          Set_Has_Unsigned_Base_Range_Aspect
+            (Implicit_Base, Has_Unsigned_Base_Range_Aspect (Parent_Base));
        end if;
  
        --  The type of the bounds is that of the parent type, and they
*************** package body Sem_Ch3 is
*** 8413,8438 ****
           Full_P := Full_View (Parent_Type);
  
           --  A type extension of a type with unknown discriminants is an
!          --  indefinite type that the back-end cannot handle directly.
           --  We treat it as a private type, and build a completion that is
           --  derived from the full view of the parent, and hopefully has
!          --  known discriminants.
  
           --  If the full view of the parent type has an underlying record view,
!          --  use it to generate the underlying record view of this derived type
           --  (required for chains of derivations with unknown discriminants).
  
!          --  Minor optimization: we avoid the generation of useless underlying
!          --  record view entities if the private type declaration has unknown
!          --  discriminants but its corresponding full view has no
!          --  discriminants.
  
           if Has_Unknown_Discriminants (Parent_Type)
             and then Present (Full_P)
             and then (Has_Discriminants (Full_P)
                        or else Present (Underlying_Record_View (Full_P)))
!            and then not In_Open_Scopes (Par_Scope)
!            and then Expander_Active
           then
              declare
                 Full_Der : constant Entity_Id := Make_Temporary (Loc, 'T');
--- 8503,8530 ----
           Full_P := Full_View (Parent_Type);
  
           --  A type extension of a type with unknown discriminants is an
!          --  indefinite type that the back end cannot handle directly.
           --  We treat it as a private type, and build a completion that is
           --  derived from the full view of the parent, and hopefully has
!          --  known discriminants. Note that the type will nevertheless be
!          --  turned into a public type in Build_Derived_Record_Type as for
!          --  any other extension; the only difference is the completion.
  
           --  If the full view of the parent type has an underlying record view,
!          --  use it to generate the underlying record view of the derived type
           --  (required for chains of derivations with unknown discriminants).
  
!          --  Minor optimization: we avoid creating useless underlying record
!          --  view entities when the private type has unknown discriminants but
!          --  its corresponding full view has no discriminants.
  
           if Has_Unknown_Discriminants (Parent_Type)
             and then Present (Full_P)
             and then (Has_Discriminants (Full_P)
                        or else Present (Underlying_Record_View (Full_P)))
!            and then (not In_Open_Scopes (Par_Scope)
!                       or else not (In_Package_Body (Par_Scope)
!                                     or else In_Private_Part (Par_Scope)))
           then
              declare
                 Full_Der : constant Entity_Id := Make_Temporary (Loc, 'T');
*************** package body Sem_Ch3 is
*** 8447,8453 ****
  
                 --  Build anonymous completion, as a derivation from the full
                 --  view of the parent. This is not a completion in the usual
!                --  sense, because the current type is not private.
  
                 Decl :=
                   Make_Full_Type_Declaration (Loc,
--- 8539,8545 ----
  
                 --  Build anonymous completion, as a derivation from the full
                 --  view of the parent. This is not a completion in the usual
!                --  sense, because the derived type is no longer private.
  
                 Decl :=
                   Make_Full_Type_Declaration (Loc,
*************** package body Sem_Ch3 is
*** 8470,8477 ****
--- 8562,8579 ----
                      Underlying_Record_View (Full_P));
                 end if;
  
+                --  If the extension is done in the public part of the scope of
+                --  the parent, its visible declarations have been installed, so
+                --  we first need to uninstall them before reinstalling both the
+                --  private and the visible declarations in this order.
+ 
+                if In_Open_Scopes (Par_Scope) then
+                   Uninstall_Declarations (Par_Scope);
+                end if;
+ 
                 Install_Private_Declarations (Par_Scope);
                 Install_Visible_Declarations (Par_Scope);
+ 
                 Insert_Before (N, Decl);
  
                 --  Mark entity as an underlying record view before analysis,
*************** package body Sem_Ch3 is
*** 8495,8500 ****
--- 8597,8609 ----
  
                 Uninstall_Declarations (Par_Scope);
  
+                --  If the extension is done in the public part of the scope of
+                --  the parent, reinstall the visible declarations only.
+ 
+                if In_Open_Scopes (Par_Scope) then
+                   Install_Visible_Declarations (Par_Scope);
+                end if;
+ 
                 if Etype (Full_Der) = Any_Type then
                    pragma Assert (Serious_Errors_Detected > 0);
                    return;
*************** package body Sem_Ch3 is
*** 9920,9932 ****
                   or else Unknown_Discriminants_Present (N));
  
           --  The partial view of the parent may have unknown discriminants,
!          --  but if the full view has discriminants and the parent type is
!          --  in scope they must be inherited.
  
           elsif Has_Unknown_Discriminants (Parent_Type)
             and then
              (not Has_Discriminants (Parent_Type)
!               or else not In_Open_Scopes (Scope (Parent_Base)))
           then
              Set_Has_Unknown_Discriminants (Derived_Type);
           end if;
--- 10029,10043 ----
                   or else Unknown_Discriminants_Present (N));
  
           --  The partial view of the parent may have unknown discriminants,
!          --  but when its full view has discriminants and is visible, then
!          --  these discriminants must be inherited.
  
           elsif Has_Unknown_Discriminants (Parent_Type)
             and then
              (not Has_Discriminants (Parent_Type)
!               or else not In_Open_Scopes (Scope (Parent_Base))
!               or else not (In_Package_Body (Scope (Parent_Base))
!                             or else In_Private_Part (Scope (Parent_Base))))
           then
              Set_Has_Unknown_Discriminants (Derived_Type);
           end if;
*************** package body Sem_Ch3 is
*** 10131,10137 ****
                 end if;
  
                 --  A type extension is automatically Ghost when one of its
!                --  progenitors is Ghost (SPARK RM 6.9(9)). This property is
                 --  also inherited when the parent type is Ghost, but this is
                 --  done in Build_Derived_Type as the mechanism also handles
                 --  untagged derivations.
--- 10242,10248 ----
                 end if;
  
                 --  A type extension is automatically Ghost when one of its
!                --  progenitors is Ghost (SPARK RM 6.9(10)). This property is
                 --  also inherited when the parent type is Ghost, but this is
                 --  done in Build_Derived_Type as the mechanism also handles
                 --  untagged derivations.
*************** package body Sem_Ch3 is
*** 10455,10461 ****
        end if;
  
        --  A derived type becomes Ghost when its parent type is also Ghost
!       --  (SPARK RM 6.9(9)). Note that the Ghost-related attributes are not
        --  directly inherited because the Ghost policy in effect may differ.
  
        if Is_Ghost_Entity (Parent_Type) then
--- 10566,10572 ----
        end if;
  
        --  A derived type becomes Ghost when its parent type is also Ghost
!       --  (SPARK RM 6.9(10)). Note that the Ghost-related attributes are not
        --  directly inherited because the Ghost policy in effect may differ.
  
        if Is_Ghost_Entity (Parent_Type) then
*************** package body Sem_Ch3 is
*** 11200,11206 ****
        --  not. It is OK for the new bound we are creating, but not for
        --  the old one??? Still if it never happens, no problem.
  
!       Analyze_And_Resolve (Bound, Base_Type (Par_T));
  
        if Nkind (Bound) in N_Integer_Literal | N_Real_Literal then
           New_Bound := New_Copy (Bound);
--- 11311,11322 ----
        --  not. It is OK for the new bound we are creating, but not for
        --  the old one??? Still if it never happens, no problem.
  
!       --  This must be disabled on types with the unsigned base range aspect
!       --  to avoid reporting spurious errors.
! 
!       if not Has_Unsigned_Base_Range_Aspect (Base_Type (Par_T)) then
!          Analyze_And_Resolve (Bound, Base_Type (Par_T));
!       end if;
  
        if Nkind (Bound) in N_Integer_Literal | N_Real_Literal then
           New_Bound := New_Copy (Bound);
*************** package body Sem_Ch3 is
*** 11991,11997 ****
              Insert_Before (Typ_Decl, Decl);
              Analyze (Decl);
              Set_Full_View (Inc_T, Typ);
!             Set_Incomplete_View (Typ_Decl, Inc_T);
  
              --  If the type is tagged, create a common class-wide type for
              --  both views, and set the Etype of the class-wide type to the
--- 12107,12113 ----
              Insert_Before (Typ_Decl, Decl);
              Analyze (Decl);
              Set_Full_View (Inc_T, Typ);
!             Set_Incomplete_View (Typ, Inc_T);
  
              --  If the type is tagged, create a common class-wide type for
              --  both views, and set the Etype of the class-wide type to the
*************** package body Sem_Ch3 is
*** 12676,12681 ****
--- 12792,13040 ----
  
     end Check_Digits_Expression;
  
+    ------------------------------------
+    -- Check_Discriminant_Conformance --
+    ------------------------------------
+ 
+    procedure Check_Discriminant_Conformance
+      (N        : Node_Id;
+       Prev     : Entity_Id;
+       Prev_Loc : Node_Id)
+    is
+       Old_Discr      : Entity_Id := First_Discriminant (Prev);
+       New_Discr      : Node_Id   := First (Discriminant_Specifications (N));
+       New_Discr_Id   : Entity_Id;
+       New_Discr_Type : Entity_Id;
+ 
+       procedure Conformance_Error (Msg : String; N : Node_Id);
+       --  Post error message for conformance error on given node. Two messages
+       --  are output. The first points to the previous declaration with a
+       --  general "no conformance" message. The second is the detailed reason,
+       --  supplied as Msg. The parameter N provide information for a possible
+       --  & insertion in the message.
+ 
+       -----------------------
+       -- Conformance_Error --
+       -----------------------
+ 
+       procedure Conformance_Error (Msg : String; N : Node_Id) is
+       begin
+          Error_Msg_Sloc := Sloc (Prev_Loc);
+          Error_Msg_N -- CODEFIX
+            ("not fully conformant with declaration#!", N);
+          Error_Msg_NE (Msg, N, N);
+       end Conformance_Error;
+ 
+    --  Start of processing for Check_Discriminant_Conformance
+ 
+    begin
+       while Present (Old_Discr) and then Present (New_Discr) loop
+          New_Discr_Id := Defining_Identifier (New_Discr);
+ 
+          --  The subtype mark of the discriminant on the full type has not
+          --  been analyzed so we do it here. For an access discriminant a new
+          --  type is created.
+ 
+          if Nkind (Discriminant_Type (New_Discr)) = N_Access_Definition then
+             New_Discr_Type :=
+               Access_Definition (N, Discriminant_Type (New_Discr));
+ 
+          else
+             Find_Type (Discriminant_Type (New_Discr));
+             New_Discr_Type := Etype (Discriminant_Type (New_Discr));
+ 
+             --  Ada 2005: if the discriminant definition carries a null
+             --  exclusion, create an itype to check properly for consistency
+             --  with partial declaration.
+ 
+             if Is_Access_Type (New_Discr_Type)
+               and then Null_Exclusion_Present (New_Discr)
+             then
+                New_Discr_Type :=
+                  Create_Null_Excluding_Itype
+                    (T           => New_Discr_Type,
+                     Related_Nod => New_Discr,
+                     Scope_Id    => Current_Scope);
+             end if;
+          end if;
+ 
+          if not Conforming_Types
+                   (Etype (Old_Discr), New_Discr_Type, Fully_Conformant)
+          then
+             Conformance_Error ("type of & does not match!", New_Discr_Id);
+             return;
+          else
+             --  Treat the new discriminant as an occurrence of the old one,
+             --  for navigation purposes, and fill in some semantic
+             --  information, for completeness.
+ 
+             Generate_Reference (Old_Discr, New_Discr_Id, 'r');
+             Set_Etype (New_Discr_Id, Etype (Old_Discr));
+             Set_Scope (New_Discr_Id, Scope (Old_Discr));
+          end if;
+ 
+          --  Names must match
+ 
+          if Chars (Old_Discr) /= Chars (Defining_Identifier (New_Discr)) then
+             Conformance_Error ("name & does not match!", New_Discr_Id);
+             return;
+          end if;
+ 
+          --  Default expressions must match
+ 
+          declare
+             NewD : constant Boolean :=
+                      Present (Expression (New_Discr));
+             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
+ 
+                --  The old default value has been analyzed and expanded,
+                --  because the current full declaration will have frozen
+                --  everything before. The new default values have not been
+                --  expanded, so expand now to check conformance.
+ 
+                if NewD then
+                   Preanalyze_And_Resolve_Spec_Expression
+                     (Expression (New_Discr), New_Discr_Type);
+                end if;
+ 
+                if not (NewD and OldD)
+                  or else not Fully_Conformant_Expressions
+                               (Expression (Parent (Old_Discr)),
+                                Expression (New_Discr))
+ 
+                then
+                   Conformance_Error
+                     ("default expression for & does not match!",
+                      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;
+ 
+          --  In Ada 83 case, grouping must match: (A,B : X) /= (A : X; B : X)
+ 
+          if Ada_Version = Ada_83 then
+             declare
+                Old_Disc : constant Node_Id := Declaration_Node (Old_Discr);
+ 
+             begin
+                --  Grouping (use of comma in param lists) must be the same
+                --  This is where we catch a misconformance like:
+ 
+                --    A, B : Integer
+                --    A : Integer; B : Integer
+ 
+                --  which are represented identically in the tree except
+                --  for the setting of the flags More_Ids and Prev_Ids.
+ 
+                if More_Ids (Old_Disc) /= More_Ids (New_Discr)
+                  or else Prev_Ids (Old_Disc) /= Prev_Ids (New_Discr)
+                then
+                   Conformance_Error
+                     ("grouping of & does not match!", New_Discr_Id);
+                   return;
+                end if;
+             end;
+          end if;
+ 
+          Next_Discriminant (Old_Discr);
+          Next (New_Discr);
+       end loop;
+ 
+       if Present (Old_Discr) then
+          Conformance_Error ("too few discriminants!", Defining_Identifier (N));
+          return;
+ 
+       elsif Present (New_Discr) then
+          Conformance_Error
+            ("too many discriminants!", Defining_Identifier (New_Discr));
+          return;
+       end if;
+    end Check_Discriminant_Conformance;
+ 
     --------------------------
     -- Check_Initialization --
     --------------------------
*************** package body Sem_Ch3 is
*** 13978,13984 ****
     ---------------------
  
     procedure Constrain_Array
!      (Def_Id      : in out Entity_Id;
        SI          : Node_Id;
        Related_Nod : Node_Id;
        Related_Id  : Entity_Id;
--- 14337,14343 ----
     ---------------------
  
     procedure Constrain_Array
!      (Def_Id      : Entity_Id;
        SI          : Node_Id;
        Related_Nod : Node_Id;
        Related_Id  : Entity_Id;
*************** package body Sem_Ch3 is
*** 14078,14091 ****
           end if;
        end if;
  
!       if No (Def_Id) then
!          Def_Id :=
!            Create_Itype (E_Array_Subtype, Related_Nod, Related_Id, Suffix);
!          Set_Parent (Def_Id, Related_Nod);
! 
!       else
!          Mutate_Ekind (Def_Id, E_Array_Subtype);
!       end if;
  
        Set_Size_Info      (Def_Id,                (T));
        Set_First_Rep_Item (Def_Id, First_Rep_Item (T));
--- 14437,14443 ----
           end if;
        end if;
  
!       Mutate_Ekind (Def_Id, E_Array_Subtype);
  
        Set_Size_Info      (Def_Id,                (T));
        Set_First_Rep_Item (Def_Id, First_Rep_Item (T));
*************** package body Sem_Ch3 is
*** 14815,14833 ****
           Fixup_Bad_Constraint;
           return;
  
!       --  Check that the type has visible discriminants. The type may be
!       --  a private type with unknown discriminants whose full view has
!       --  discriminants which are invisible.
  
!       elsif not Has_Discriminants (T)
!         or else
!           (Has_Unknown_Discriminants (T)
!              and then Is_Private_Type (T))
!       then
           Error_Msg_N ("invalid constraint: type has no discriminant", C);
           Fixup_Bad_Constraint;
           return;
  
        elsif Is_Constrained (E)
          or else (Ekind (E) = E_Class_Wide_Subtype
                    and then Present (Discriminant_Constraint (E)))
--- 15167,15186 ----
           Fixup_Bad_Constraint;
           return;
  
!       --  Check that the type has known discriminants
  
!       elsif Has_Unknown_Discriminants (T) then
!          Error_Msg_N ("invalid constraint: type has unknown discriminants", C);
!          Fixup_Bad_Constraint;
!          return;
! 
!       elsif not Has_Discriminants (T) then
           Error_Msg_N ("invalid constraint: type has no discriminant", C);
           Fixup_Bad_Constraint;
           return;
  
+       --  And is not already constrained
+ 
        elsif Is_Constrained (E)
          or else (Ekind (E) = E_Class_Wide_Subtype
                    and then Present (Discriminant_Constraint (E)))
*************** package body Sem_Ch3 is
*** 14972,14988 ****
        R      : Node_Id := Empty;
        T      : constant Entity_Id := Etype (Index);
        Is_FLB_Index : Boolean := False;
  
     begin
!       Def_Id :=
!         Create_Itype (E_Void, Related_Nod, Related_Id, Suffix, Suffix_Index);
!       Set_Etype (Def_Id, Base_Type (T));
  
!       if Nkind (S) = N_Range
!         or else
!           (Nkind (S) = N_Attribute_Reference
!             and then Attribute_Name (S) = Name_Range)
!       then
           --  A Range attribute will be transformed into N_Range by Resolve
  
           --  If a range has an Empty upper bound, then remember that for later
--- 15325,15348 ----
        R      : Node_Id := Empty;
        T      : constant Entity_Id := Etype (Index);
        Is_FLB_Index : Boolean := False;
+       Is_Range     : constant Boolean :=
+         Nkind (S) = N_Range
+         or else (Nkind (S) = N_Attribute_Reference
+                  and then Attribute_Name (S) = Name_Range);
+       Is_Indic     : constant Boolean := Nkind (S) = N_Subtype_Indication;
+       K            : constant Entity_Kind :=
+         (if Is_Modular_Integer_Type (T) then E_Modular_Integer_Subtype
+          elsif Is_Integer_Type (T) then E_Signed_Integer_Subtype
+          else E_Enumeration_Subtype);
  
     begin
!       if Is_Range or else Is_Indic then
!          Def_Id :=
!            Create_Itype (K, Related_Nod, Related_Id, Suffix, Suffix_Index);
!          Set_Etype (Def_Id, Base_Type (T));
!       end if;
  
!       if Is_Range then
           --  A Range attribute will be transformed into N_Range by Resolve
  
           --  If a range has an Empty upper bound, then remember that for later
*************** package body Sem_Ch3 is
*** 15017,15023 ****
              end if;
           end if;
  
!       elsif Nkind (S) = N_Subtype_Indication then
  
           --  The parser has verified that this is a discrete indication
  
--- 15377,15383 ----
              end if;
           end if;
  
!       elsif Is_Indic then
  
           --  The parser has verified that this is a discrete indication
  
*************** package body Sem_Ch3 is
*** 15072,15098 ****
                    S, Entity (S));
              end if;
  
-             return;
- 
           else
              Error_Msg_N ("invalid index constraint", S);
              Rewrite (S, New_Occurrence_Of (T, Sloc (S)));
-             return;
           end if;
        end if;
  
        --  Complete construction of the Itype
  
!       if Is_Modular_Integer_Type (T) then
!          Mutate_Ekind (Def_Id, E_Modular_Integer_Subtype);
! 
!       elsif Is_Integer_Type (T) then
!          Mutate_Ekind (Def_Id, E_Signed_Integer_Subtype);
! 
!       else
!          Mutate_Ekind (Def_Id, E_Enumeration_Subtype);
           Set_Is_Character_Type (Def_Id, Is_Character_Type (T));
!          Set_First_Literal     (Def_Id, First_Literal (T));
        end if;
  
        Set_Size_Info      (Def_Id,                (T));
--- 15432,15450 ----
                    S, Entity (S));
              end if;
  
           else
              Error_Msg_N ("invalid index constraint", S);
              Rewrite (S, New_Occurrence_Of (T, Sloc (S)));
           end if;
+ 
+          return;
        end if;
  
        --  Complete construction of the Itype
  
!       if K = E_Enumeration_Subtype then
           Set_Is_Character_Type (Def_Id, Is_Character_Type (T));
!          Set_First_Literal (Def_Id, First_Literal (T));
        end if;
  
        Set_Size_Info      (Def_Id,                (T));
*************** package body Sem_Ch3 is
*** 15327,15337 ****
        --  Initialize new full declaration entity by copying the pertinent
        --  fields of the corresponding private declaration entity.
  
!       --  We temporarily set Ekind to a value appropriate for a type to
!       --  avoid assert failures in Einfo from checking for setting type
!       --  attributes on something that is not a type. Ekind (Priv) is an
!       --  appropriate choice, since it allowed the attributes to be set
!       --  in the first place. This Ekind value will be modified later.
  
        Mutate_Ekind (Full, Ekind (Priv));
  
--- 15679,15689 ----
        --  Initialize new full declaration entity by copying the pertinent
        --  fields of the corresponding private declaration entity.
  
!       --  We temporarily set Ekind to a value appropriate for a type to avoid
!       --  assert failures in Einfo from checking for setting type fields on
!       --  something that is not a type. Ekind (Priv) is an appropriate choice,
!       --  since it allowed the fields to be set in the first place. This Ekind
!       --  value will be modified later.
  
        Mutate_Ekind (Full, Ekind (Priv));
  
*************** package body Sem_Ch3 is
*** 15341,15347 ****
  
        Set_Etype (Full, Any_Type);
  
!       --  Now start copying attributes
  
        Set_Has_Discriminants          (Full, Has_Discriminants       (Priv));
  
--- 15693,15699 ----
  
        Set_Etype (Full, Any_Type);
  
!       --  Now start copying fields
  
        Set_Has_Discriminants          (Full, Has_Discriminants       (Priv));
  
*************** package body Sem_Ch3 is
*** 15396,15407 ****
              Access_Types_To_Process (Freeze_Node (Priv)));
        end if;
  
!       --  Swap the two entities. Now Private is the full type entity and Full
!       --  is the private one. They will be swapped back at the end of the
!       --  private part. This swapping ensures that the entity that is visible
!       --  in the private part is the full declaration.
  
        Exchange_Entities (Priv, Full);
        Set_Is_Not_Self_Hidden (Priv);
        Append_Entity (Full, Scope (Full));
     end Copy_And_Swap;
--- 15748,15762 ----
              Access_Types_To_Process (Freeze_Node (Priv)));
        end if;
  
!       --  Swap the two entities
  
        Exchange_Entities (Priv, Full);
+ 
+       --  Now the slot Priv points to contains the full type entity and the
+       --  slot Full points to contains the private one. They will be swapped
+       --  back at the end of the private part. This swapping ensures that the
+       --  entity that is visible in the private part is the full declaration.
+ 
        Set_Is_Not_Self_Hidden (Priv);
        Append_Entity (Full, Scope (Full));
     end Copy_And_Swap;
*************** package body Sem_Ch3 is
*** 18021,18032 ****
  
                    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;
--- 18376,18385 ----
  
                    Insert_List_After_And_Analyze (N, Actions);
  
!                   --  Add a Compile_Time_Error size check at the freeze point
  
!                   Append_Freeze_Action (T,
!                     Make_CW_Size_Compile_Check (T, Root_Class_Typ));
                 end if;
              end if;
           end;
*************** package body Sem_Ch3 is
*** 18430,18436 ****
              Enter_Name (Id);
              New_Id := Id;
  
!          --  Check invalid completion of private or incomplete type
  
           elsif Nkind (N) not in N_Full_Type_Declaration
                                | N_Task_Type_Declaration
--- 18783,18793 ----
              Enter_Name (Id);
              New_Id := Id;
  
!          --  Check invalid completion of private or incomplete type. The
!          --  completion of an incomplete view must be a non-incomplete type
!          --  declaration (RM 3.10.1 (3/3)) and the completion of a partial view
!          --  must be a full type declaration (RM 7.3 (4)). Before Ada 2012, a
!          --  full type declaration is needed in the two cases.
  
           elsif Nkind (N) not in N_Full_Type_Declaration
                                | N_Task_Type_Declaration
*************** package body Sem_Ch3 is
*** 18441,18448 ****
                 or else Nkind (N) not in N_Private_Type_Declaration
                                        | N_Private_Extension_Declaration)
           then
-             --  Completion must be a full type declarations (RM 7.3(4))
- 
              Error_Msg_Sloc := Sloc (Prev);
              Error_Msg_NE ("invalid completion of }", Id, Prev);
  
--- 18798,18803 ----
*************** package body Sem_Ch3 is
*** 18844,18853 ****
                     or else Nkind (P) /= N_Object_Declaration
                     or else Is_Library_Level_Entity (Defining_Identifier (P)));
  
!       --  Otherwise, the object definition is just a subtype_mark
  
        else
!          T := Process_Subtype (Obj_Def, Related_Nod);
        end if;
  
        return T;
--- 19199,19213 ----
                     or else Nkind (P) /= N_Object_Declaration
                     or else Is_Library_Level_Entity (Defining_Identifier (P)));
  
!       --  Otherwise, either the object definition is just a subtype_mark or we
!       --  are analyzing a component declaration.
  
        else
!          T :=
!            Process_Subtype
!              (Obj_Def,
!               Related_Nod,
!               Excludes_Null => Null_Exclusion_Present (Parent (Obj_Def)));
        end if;
  
        return T;
*************** package body Sem_Ch3 is
*** 18878,18885 ****
        --  Otherwise we have a subtype mark without a constraint
  
        elsif Error_Posted (S) then
!          --  Don't rewrite if S is Empty or Error
!          if S > Empty_Or_Error then
              Rewrite (S, New_Occurrence_Of (Any_Id, Sloc (S)));
           end if;
           return Any_Type;
--- 19238,19244 ----
        --  Otherwise we have a subtype mark without a constraint
  
        elsif Error_Posted (S) then
!          if S not in Empty | Error then
              Rewrite (S, New_Occurrence_Of (Any_Id, Sloc (S)));
           end if;
           return Any_Type;
*************** package body Sem_Ch3 is
*** 19855,19861 ****
     --  Start of processing for Is_Visible_Component
  
     begin
!       if Ekind (C) in E_Component | E_Discriminant then
           Original_Comp := Original_Record_Component (C);
        end if;
  
--- 20214,20222 ----
     --  Start of processing for Is_Visible_Component
  
     begin
!       if Ekind (C) in E_Component | E_Discriminant
!         and then Is_Not_Self_Hidden (C)
!       then
           Original_Comp := Original_Record_Component (C);
        end if;
  
*************** package body Sem_Ch3 is
*** 20350,20366 ****
  
        if No (Def_Id) then
           Def_Id :=
!            Create_Itype (E_Void, Related_Nod, Related_Id, 'D', Suffix_Index);
           Set_Etype (Def_Id, Base_Type (T));
  
!          if Is_Signed_Integer_Type (T) then
!             Mutate_Ekind (Def_Id, E_Signed_Integer_Subtype);
! 
!          elsif Is_Modular_Integer_Type (T) then
!             Mutate_Ekind (Def_Id, E_Modular_Integer_Subtype);
! 
!          else
!             Mutate_Ekind          (Def_Id, E_Enumeration_Subtype);
              Set_Is_Character_Type (Def_Id, Is_Character_Type (T));
              Set_First_Literal     (Def_Id, First_Literal (T));
           end if;
--- 20711,20727 ----
  
        if No (Def_Id) then
           Def_Id :=
!            Create_Itype
!              ((if Is_Signed_Integer_Type (T) then E_Signed_Integer_Subtype
!                elsif Is_Modular_Integer_Type (T) then E_Modular_Integer_Subtype
!                else E_Enumeration_Subtype),
!               Related_Nod,
!               Related_Id,
!               'D',
!               Suffix_Index);
           Set_Etype (Def_Id, Base_Type (T));
  
!          if Ekind (Def_Id) = E_Enumeration_Subtype then
              Set_Is_Character_Type (Def_Id, Is_Character_Type (T));
              Set_First_Literal     (Def_Id, First_Literal (T));
           end if;
*************** package body Sem_Ch3 is
*** 20811,20817 ****
  
        --  If no range was given, set a dummy range
  
!       if RRS <= Empty_Or_Error then
           Low_Val  := -Small_Val;
           High_Val := Small_Val;
  
--- 21172,21178 ----
  
        --  If no range was given, set a dummy range
  
!       if RRS in Empty | Error then
           Low_Val  := -Small_Val;
           High_Val := Small_Val;
  
*************** package body Sem_Ch3 is
*** 20866,20932 ****
        Set_Is_Constrained     (T);
     end Ordinary_Fixed_Point_Type_Declaration;
  
!    ----------------------------------
!    -- Preanalyze_Assert_Expression --
!    ----------------------------------
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id; T : Entity_Id) is
     begin
        In_Assertion_Expr := In_Assertion_Expr + 1;
!       Preanalyze_Spec_Expression (N, T);
        In_Assertion_Expr := In_Assertion_Expr - 1;
!    end Preanalyze_Assert_Expression;
! 
!    --  ??? The variant below explicitly saves and restores all the flags,
!    --  because it is impossible to compose the existing variety of
!    --  Analyze/Resolve (and their wrappers, e.g. Preanalyze_Spec_Expression)
!    --  to achieve the desired semantics.
  
!    procedure Preanalyze_Assert_Expression (N : Node_Id) is
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
!       Save_Full_Analysis      : constant Boolean := Full_Analysis;
  
     begin
        In_Assertion_Expr  := In_Assertion_Expr + 1;
!       In_Spec_Expression := True;
!       Full_Analysis      := False;
!       Expander_Mode_Save_And_Set (False);
! 
!       if GNATprove_Mode then
!          Analyze_And_Resolve (N);
!       else
!          Analyze_And_Resolve (N, Suppress => All_Checks);
!       end if;
! 
!       Expander_Mode_Restore;
!       Full_Analysis      := Save_Full_Analysis;
!       In_Spec_Expression := Save_In_Spec_Expression;
        In_Assertion_Expr  := In_Assertion_Expr - 1;
!    end Preanalyze_Assert_Expression;
  
!    -----------------------------------
!    -- Preanalyze_Default_Expression --
!    -----------------------------------
  
!    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;
  
!    --------------------------------
!    -- Preanalyze_Spec_Expression --
!    --------------------------------
  
!    procedure Preanalyze_Spec_Expression (N : Node_Id; T : Entity_Id) is
        Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
     begin
        In_Spec_Expression := True;
        Preanalyze_And_Resolve (N, T);
        In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_Spec_Expression;
  
     ----------------------------------------
     -- Prepare_Private_Subtype_Completion --
--- 21227,21297 ----
        Set_Is_Constrained     (T);
     end Ordinary_Fixed_Point_Type_Declaration;
  
!    ----------------------------------------------
!    -- Preanalyze_And_Resolve_Assert_Expression --
!    ----------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Assert_Expression
!      (N : Node_Id;
!       T : Entity_Id) is
     begin
        In_Assertion_Expr := In_Assertion_Expr + 1;
!       Preanalyze_And_Resolve_Spec_Expression (N, T);
        In_Assertion_Expr := In_Assertion_Expr - 1;
!    end Preanalyze_And_Resolve_Assert_Expression;
  
!    ----------------------------------------------
!    -- Preanalyze_And_Resolve_Assert_Expression --
!    ----------------------------------------------
  
+    procedure Preanalyze_And_Resolve_Assert_Expression (N : Node_Id) is
     begin
        In_Assertion_Expr  := In_Assertion_Expr + 1;
!       Preanalyze_And_Resolve_Spec_Expression (N);
        In_Assertion_Expr  := In_Assertion_Expr - 1;
!    end Preanalyze_And_Resolve_Assert_Expression;
  
!    -----------------------------------------------
!    -- Preanalyze_And_Resolve_Default_Expression --
!    -----------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Default_Expression
!       (N : Node_Id;
!        T : Entity_Id)
!    is
        Save_In_Default_Expr : constant Boolean := In_Default_Expr;
     begin
        In_Default_Expr := True;
!       Preanalyze_And_Resolve_Spec_Expression (N, T);
        In_Default_Expr := Save_In_Default_Expr;
!    end Preanalyze_And_Resolve_Default_Expression;
  
!    --------------------------------------------
!    -- Preanalyze_And_Resolve_Spec_Expression --
!    --------------------------------------------
  
!    procedure Preanalyze_And_Resolve_Spec_Expression
!      (N : Node_Id;
!       T : Entity_Id)
!    is
        Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
     begin
        In_Spec_Expression := True;
        Preanalyze_And_Resolve (N, T);
        In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_And_Resolve_Spec_Expression;
! 
!    --------------------------------------------
!    -- Preanalyze_And_Resolve_Spec_Expression --
!    --------------------------------------------
! 
!    procedure Preanalyze_And_Resolve_Spec_Expression (N : Node_Id) is
!       Save_In_Spec_Expression : constant Boolean := In_Spec_Expression;
!    begin
!       In_Spec_Expression := True;
!       Preanalyze_And_Resolve (N);
!       In_Spec_Expression := Save_In_Spec_Expression;
!    end Preanalyze_And_Resolve_Spec_Expression;
  
     ----------------------------------------
     -- Prepare_Private_Subtype_Completion --
*************** package body Sem_Ch3 is
*** 20985,20995 ****
        --  On entry, the current scope is the composite type.
  
        --  The discriminants are initially entered into the scope of the type
!       --  via Enter_Name with the default Ekind of E_Void to prevent premature
!       --  use, as explained at the end of this procedure.
  
        Discr := First (Discriminant_Specifications (N));
        while Present (Discr) loop
           Enter_Name (Defining_Identifier (Discr));
  
           --  For navigation purposes we add a reference to the discriminant
--- 21350,21366 ----
        --  On entry, the current scope is the composite type.
  
        --  The discriminants are initially entered into the scope of the type
!       --  via Enter_Name with Is_Not_Self_Hidden set to False to prevent
!       --  premature use, as explained at the end of this procedure.
  
        Discr := First (Discriminant_Specifications (N));
        while Present (Discr) loop
+          if Ekind (Defining_Identifier (Discr)) = E_In_Parameter then
+             Reinit_Field_To_Zero
+               (Defining_Identifier (Discr), F_Discriminal_Link);
+          end if;
+ 
+          Mutate_Ekind (Defining_Identifier (Discr), E_Discriminant);
           Enter_Name (Defining_Identifier (Discr));
  
           --  For navigation purposes we add a reference to the discriminant
*************** package body Sem_Ch3 is
*** 21085,21091 ****
           --  Per-Object Expressions" in spec of package Sem).
  
           if Present (Expression (Discr)) then
!             Preanalyze_Default_Expression (Expression (Discr), Discr_Type);
  
              --  Legaity checks
  
--- 21456,21463 ----
           --  Per-Object Expressions" in spec of package Sem).
  
           if Present (Expression (Discr)) then
!             Preanalyze_And_Resolve_Default_Expression
!               (Expression (Discr), Discr_Type);
  
              --  Legaity checks
  
*************** package body Sem_Ch3 is
*** 21241,21247 ****
        Set_Stored_Constraint (Current_Scope, No_Elist);
  
        --  Default expressions must be provided either for all or for none
!       --  of the discriminants of a discriminant part. (RM 3.7.1)
  
        if Default_Present and then Default_Not_Present then
           Error_Msg_N
--- 21613,21619 ----
        Set_Stored_Constraint (Current_Scope, No_Elist);
  
        --  Default expressions must be provided either for all or for none
!       --  of the discriminants of a discriminant part (RM 3.7 (9.1/3)).
  
        if Default_Present and then Default_Not_Present then
           Error_Msg_N
*************** package body Sem_Ch3 is
*** 21252,21274 ****
        --  expressions of a discriminant part if the specification of the
        --  discriminant is itself given in the discriminant part. (RM 3.7.1)
  
!       --  To detect this, the discriminant names are entered initially with an
!       --  Ekind of E_Void (which is the default Ekind given by Enter_Name). Any
!       --  attempt to use a void entity (for example in an expression that is
!       --  type-checked) produces the error message: premature usage. Now after
!       --  completing the semantic analysis of the discriminant part, we can set
!       --  the Ekind of all the discriminants appropriately.
  
        Discr := First (Discriminant_Specifications (N));
        Discr_Number := Uint_1;
        while Present (Discr) loop
           Id := Defining_Identifier (Discr);
  
-          if Ekind (Id) = E_In_Parameter then
-             Reinit_Field_To_Zero (Id, F_Discriminal_Link);
-          end if;
- 
-          Mutate_Ekind (Id, E_Discriminant);
           Set_Is_Not_Self_Hidden (Id);
           Reinit_Component_Location (Id);
           Reinit_Esize (Id);
--- 21624,21641 ----
        --  expressions of a discriminant part if the specification of the
        --  discriminant is itself given in the discriminant part. (RM 3.7.1)
  
!       --  To detect this, the discriminant names are entered initially with
!       --  Is_Not_Self_Hidden set to False. Any attempt to use a self-hidden
!       --  entity (for example in an expression that is type-checked) produces
!       --  the error message: premature usage. Now after completing the semantic
!       --  analysis of the discriminant part, we can set Is_Not_Self_Hidden on
!       --  all the discriminants appropriately.
  
        Discr := First (Discriminant_Specifications (N));
        Discr_Number := Uint_1;
        while Present (Discr) loop
           Id := Defining_Identifier (Discr);
  
           Set_Is_Not_Self_Hidden (Id);
           Reinit_Component_Location (Id);
           Reinit_Esize (Id);
*************** package body Sem_Ch3 is
*** 21395,21402 ****
  
        --  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
  
        Full_Indic  : Node_Id;
--- 21762,21768 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Full_Indic  : Node_Id;
*************** package body Sem_Ch3 is
*** 21638,21645 ****
  
        else
           --  For untagged types, verify that a type without discriminants is
!          --  not completed with an unconstrained type. A separate error message
!          --  is produced if the full type has defaulted discriminants.
  
           if Is_Definite_Subtype (Priv_T)
             and then not Is_Definite_Subtype (Full_T)
--- 22004,22010 ----
  
        else
           --  For untagged types, verify that a type without discriminants is
!          --  not completed with an indefinite type.
  
           if Is_Definite_Subtype (Priv_T)
             and then not Is_Definite_Subtype (Full_T)
*************** package body Sem_Ch3 is
*** 21656,21662 ****
           end if;
        end if;
  
!       --  AI-419: verify that the use of "limited" is consistent
  
        declare
           Orig_Decl : constant Node_Id := Original_Node (N);
--- 22021,22027 ----
           end if;
        end if;
  
!       --  RM 7.3 (10.1/3): verify that the use of "limited" is consistent
  
        declare
           Orig_Decl : constant Node_Id := Original_Node (N);
*************** package body Sem_Ch3 is
*** 21672,21678 ****
                and then Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of non-limited extension cannot be limited", N);
  
              --  Conversely, if the partial view carries the limited keyword,
              --  the full view must as well, even if it may be redundant.
--- 22037,22045 ----
                and then Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of implicitly limited extension must be "
!                   & "implicitly limited",
!                   N);
  
              --  Conversely, if the partial view carries the limited keyword,
              --  the full view must as well, even if it may be redundant.
*************** package body Sem_Ch3 is
*** 21681,21687 ****
                and then not Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of limited extension must be explicitly limited",
                    N);
              end if;
           end if;
--- 22048,22055 ----
                and then not Limited_Present (Type_Definition (Orig_Decl))
              then
                 Error_Msg_N
!                  ("full view of explicitly limited extension must be "
!                   & "explicitly limited",
                    N);
              end if;
           end if;
*************** package body Sem_Ch3 is
*** 22089,22095 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Process_Full_View;
  
     -----------------------------------
--- 22457,22463 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Process_Full_View;
  
     -----------------------------------
*************** package body Sem_Ch3 is
*** 22515,22524 ****
     ---------------------
  
     function Process_Subtype
!      (S           : Node_Id;
!       Related_Nod : Node_Id;
!       Related_Id  : Entity_Id := Empty;
!       Suffix      : Character := ' ') return Entity_Id
     is
        procedure Check_Incomplete (T : Node_Id);
        --  Called to verify that an incomplete type is not used prematurely
--- 22883,22894 ----
     ---------------------
  
     function Process_Subtype
!      (S                  : Node_Id;
!       Related_Nod        : Node_Id;
!       Related_Id         : Entity_Id := Empty;
!       Suffix             : Character := ' ';
!       Excludes_Null      : Boolean := False;
!       Incomplete_Type_OK : Boolean := False) return Entity_Id
     is
        procedure Check_Incomplete (T : Node_Id);
        --  Called to verify that an incomplete type is not used prematurely
*************** package body Sem_Ch3 is
*** 22532,22544 ****
           --  Ada 2005 (AI-412): Incomplete subtypes are legal
  
           if Ekind (Root_Type (Entity (T))) = E_Incomplete_Type
!            and then
!              not (Ada_Version >= Ada_2005
!                    and then
!                      (Nkind (Parent (T)) = N_Subtype_Declaration
!                        or else (Nkind (Parent (T)) = N_Subtype_Indication
!                                  and then Nkind (Parent (Parent (T))) =
!                                                    N_Subtype_Declaration)))
           then
              Error_Msg_N ("invalid use of type before its full declaration", T);
           end if;
--- 22902,22908 ----
           --  Ada 2005 (AI-412): Incomplete subtypes are legal
  
           if Ekind (Root_Type (Entity (T))) = E_Incomplete_Type
!            and then not Incomplete_Type_OK
           then
              Error_Msg_N ("invalid use of type before its full declaration", T);
           end if;
*************** package body Sem_Ch3 is
*** 22546,22671 ****
  
        --  Local variables
  
!       P               : Node_Id;
        Def_Id          : Entity_Id;
        Error_Node      : Node_Id;
        Full_View_Id    : Entity_Id;
        Subtype_Mark_Id : Entity_Id;
  
-       May_Have_Null_Exclusion : Boolean;
- 
     --  Start of processing for Process_Subtype
  
     begin
!       --  Case of no constraints present
! 
!       if Nkind (S) /= N_Subtype_Indication then
!          Find_Type (S);
! 
!          --  No way to proceed if the subtype indication is malformed. This
!          --  will happen for example when the subtype indication in an object
!          --  declaration is missing altogether and the expression is analyzed
!          --  as if it were that indication.
! 
!          if not Is_Entity_Name (S) then
!             return Any_Type;
!          end if;
! 
!          Check_Incomplete (S);
!          P := Parent (S);
  
!          --  The following mirroring of assertion in Null_Exclusion_Present is
!          --  ugly, can't we have a range, a static predicate or even a flag???
  
!          May_Have_Null_Exclusion :=
!            Present (P)
!              and then
!            Nkind (P) in N_Access_Definition
!                       | N_Access_Function_Definition
!                       | N_Access_Procedure_Definition
!                       | N_Access_To_Object_Definition
!                       | N_Allocator
!                       | N_Component_Definition
!                       | N_Derived_Type_Definition
!                       | N_Discriminant_Specification
!                       | N_Formal_Object_Declaration
!                       | N_Function_Specification
!                       | N_Object_Declaration
!                       | N_Object_Renaming_Declaration
!                       | N_Parameter_Specification
!                       | N_Subtype_Declaration;
  
!          --  Ada 2005 (AI-231): Static check
  
!          if Ada_Version >= Ada_2005
!            and then May_Have_Null_Exclusion
!            and then Null_Exclusion_Present (P)
!            and then Nkind (P) /= N_Access_To_Object_Definition
!            and then not Is_Access_Type (Entity (S))
!          then
!             Error_Msg_N ("`NOT NULL` only allowed for an access type", S);
!          end if;
  
!          --  Create an Itype that is a duplicate of Entity (S) but with the
!          --  null-exclusion attribute.
  
!          if May_Have_Null_Exclusion
!            and then Is_Access_Type (Entity (S))
!            and then Null_Exclusion_Present (P)
  
!             --  No need to check the case of an access to object definition.
!             --  It is correct to define double not-null pointers.
  
!             --  Example:
!             --     type Not_Null_Int_Ptr is not null access Integer;
!             --     type Acc is not null access Not_Null_Int_Ptr;
  
!            and then Nkind (P) /= N_Access_To_Object_Definition
!          then
!             if Can_Never_Be_Null (Entity (S)) then
!                case Nkind (Related_Nod) is
!                   when N_Full_Type_Declaration =>
!                      if Nkind (Type_Definition (Related_Nod))
!                        in N_Array_Type_Definition
!                      then
                          Error_Node :=
                            Subtype_Indication
!                             (Component_Definition
!                              (Type_Definition (Related_Nod)));
!                      else
!                         Error_Node :=
!                           Subtype_Indication (Type_Definition (Related_Nod));
!                      end if;
! 
!                   when N_Subtype_Declaration =>
!                      Error_Node := Subtype_Indication (Related_Nod);
! 
!                   when N_Object_Declaration =>
!                      Error_Node := Object_Definition (Related_Nod);
  
!                   when N_Component_Declaration =>
!                      Error_Node :=
!                        Subtype_Indication (Component_Definition (Related_Nod));
  
!                   when N_Allocator =>
!                      Error_Node := Expression (Related_Nod);
  
!                   when others =>
!                      pragma Assert (False);
!                      Error_Node := Related_Nod;
!                end case;
  
!                Error_Msg_NE
!                  ("`NOT NULL` not allowed (& already excludes null)",
!                   Error_Node,
!                   Entity (S));
              end if;
- 
-             Set_Etype  (S,
-               Create_Null_Excluding_Itype
-                 (T           => Entity (S),
-                  Related_Nod => P));
-             Set_Entity (S, Etype (S));
           end if;
  
           return Entity (S);
--- 22910,23000 ----
  
        --  Local variables
  
!       P               : constant Node_Id := Parent (S);
!       Mark            : Node_Id;
        Def_Id          : Entity_Id;
        Error_Node      : Node_Id;
        Full_View_Id    : Entity_Id;
        Subtype_Mark_Id : Entity_Id;
  
     --  Start of processing for Process_Subtype
  
     begin
!       if Nkind (S) = N_Subtype_Indication then
!          Mark := Subtype_Mark (S);
!       else
!          Mark := S;
!       end if;
  
!       Find_Type (Mark);
  
!       --  No way to proceed if the subtype indication is malformed. This will
!       --  happen for example when the subtype indication in an object
!       --  declaration is missing altogether and the expression is analyzed as
!       --  if it were that indication.
  
!       if not Is_Entity_Name (Mark) then
!          return Any_Type;
!       end if;
  
!       Check_Incomplete (Mark);
  
!       --  Case of no constraints present
  
!       if Nkind (S) /= N_Subtype_Indication then
!          if Excludes_Null then
!             --  Create an Itype that is a duplicate of Entity (S) but with the
!             --  null-exclusion attribute.
!             if Is_Access_Type (Entity (S)) then
!                if Can_Never_Be_Null (Entity (S)) then
!                   case Nkind (Related_Nod) is
!                      when N_Full_Type_Declaration =>
!                         if Nkind (Type_Definition (Related_Nod))
!                            in N_Array_Type_Definition
!                         then
!                            Error_Node :=
!                              Subtype_Indication
!                                (Component_Definition
!                                   (Type_Definition (Related_Nod)));
!                         else
!                            Error_Node :=
!                              Subtype_Indication
!                                (Type_Definition (Related_Nod));
!                         end if;
  
!                      when N_Subtype_Declaration =>
!                         Error_Node := Subtype_Indication (Related_Nod);
  
!                      when N_Object_Declaration =>
!                         Error_Node := Object_Definition (Related_Nod);
  
!                      when N_Component_Declaration =>
                          Error_Node :=
                            Subtype_Indication
!                             (Component_Definition (Related_Nod));
  
!                      when N_Allocator =>
!                         Error_Node := Expression (Related_Nod);
  
!                      when others =>
!                         pragma Assert (False);
!                         Error_Node := Related_Nod;
!                   end case;
  
!                   Error_Msg_NE
!                     ("`NOT NULL` not allowed (& already excludes null)",
!                      Error_Node,
!                      Entity (S));
!                end if;
  
!                Set_Etype
!                  (S,
!                   Create_Null_Excluding_Itype
!                     (T => Entity (S), Related_Nod => P));
!                Set_Entity (S, Etype (S));
!             elsif Ada_Version >= Ada_2005 then
!                Error_Msg_N ("`NOT NULL` only allowed for an access type", S);
              end if;
           end if;
  
           return Entity (S);
*************** package body Sem_Ch3 is
*** 22674,22691 ****
        --  node (this node is created only if constraints are present).
  
        else
!          Find_Type (Subtype_Mark (S));
! 
!          if Nkind (Parent (S)) /= N_Access_To_Object_Definition
!            and then not
!             (Nkind (Parent (S)) = N_Subtype_Declaration
!               and then Is_Itype (Defining_Identifier (Parent (S))))
!          then
!             Check_Incomplete (Subtype_Mark (S));
!          end if;
! 
!          P := Parent (S);
!          Subtype_Mark_Id := Entity (Subtype_Mark (S));
  
           --  Explicit subtype declaration case
  
--- 23003,23009 ----
        --  node (this node is created only if constraints are present).
  
        else
!          Subtype_Mark_Id := Entity (Mark);
  
           --  Explicit subtype declaration case
  
*************** package body Sem_Ch3 is
*** 22705,22712 ****
           --  has not yet been called to create Def_Id.
  
           else
!             if Is_Array_Type (Subtype_Mark_Id)
!               or else Is_Concurrent_Type (Subtype_Mark_Id)
                or else Is_Access_Type (Subtype_Mark_Id)
              then
                 Def_Id := Empty;
--- 23023,23029 ----
           --  has not yet been called to create Def_Id.
  
           else
!             if Is_Concurrent_Type (Subtype_Mark_Id)
                or else Is_Access_Type (Subtype_Mark_Id)
              then
                 Def_Id := Empty;
*************** package body Sem_Ch3 is
*** 22739,22745 ****
  
              --  Make recursive call, having got rid of the bogus constraint
  
!             return Process_Subtype (S, Related_Nod, Related_Id, Suffix);
           end if;
  
           --  Remaining processing depends on type. Select on Base_Type kind to
--- 23056,23069 ----
  
              --  Make recursive call, having got rid of the bogus constraint
  
!             return
!               Process_Subtype
!                 (S,
!                  Related_Nod,
!                  Related_Id,
!                  Suffix,
!                  Excludes_Null,
!                  Incomplete_Type_OK);
           end if;
  
           --  Remaining processing depends on type. Select on Base_Type kind to
*************** package body Sem_Ch3 is
*** 22759,22764 ****
--- 23083,23090 ----
                       Error_Msg_N
                         ("constraint on class-wide type ignored??",
                          Constraint (S));
+                   else
+                      pragma Assert (False);
                    end if;
  
                    if Nkind (P) = N_Subtype_Declaration then
*************** package body Sem_Ch3 is
*** 22887,22894 ****
           --  Size, Alignment, Representation aspects and Convention are always
           --  inherited from the base type.
  
!          Set_Size_Info  (Def_Id,            (Subtype_Mark_Id));
!          Set_Rep_Info   (Def_Id,            (Subtype_Mark_Id));
           Set_Convention (Def_Id, Convention (Subtype_Mark_Id));
  
           --  The anonymous subtype created for the subtype indication
--- 23213,23220 ----
           --  Size, Alignment, Representation aspects and Convention are always
           --  inherited from the base type.
  
!          Set_Size_Info (Def_Id, Subtype_Mark_Id);
!          Set_Rep_Info (Def_Id, Subtype_Mark_Id);
           Set_Convention (Def_Id, Convention (Subtype_Mark_Id));
  
           --  The anonymous subtype created for the subtype indication
*************** package body Sem_Ch3 is
*** 23140,23155 ****
  
        Component := First_Entity (Current_Scope);
        while Present (Component) loop
!          if Ekind (Component) = E_Void
!            and then not Is_Itype (Component)
           then
-             Mutate_Ekind (Component, E_Component);
              Reinit_Component_Location (Component);
              Set_Is_Not_Self_Hidden (Component);
           end if;
  
           Propagate_Concurrent_Flags (T, Etype (Component));
  
           if Ekind (Component) /= E_Component then
              null;
  
--- 23466,23487 ----
  
        Component := First_Entity (Current_Scope);
        while Present (Component) loop
!          if Ekind (Component) = E_Component and then not Is_Itype (Component)
           then
              Reinit_Component_Location (Component);
              Set_Is_Not_Self_Hidden (Component);
           end if;
  
           Propagate_Concurrent_Flags (T, Etype (Component));
  
+          --  Propagate information about constructor dependence
+ 
+          if Ekind (Etype (Component)) /= E_Void
+            and then Needs_Construction (Etype (Component))
+          then
+             Set_Needs_Construction (T);
+          end if;
+ 
           if Ekind (Component) /= E_Component then
              null;
  
*************** package body Sem_Ch3 is
*** 23414,23419 ****
--- 23746,23754 ----
        --  Check bound to make sure it is integral and static. If not, post
        --  appropriate error message and set Errs flag
  
+       function Has_Pragma_Unsigned_Base_Range return Boolean;
+       --  Determine if type T has pragma Unsigned_Base_Range
+ 
        ---------------------
        -- Can_Derive_From --
        ---------------------
*************** package body Sem_Ch3 is
*** 23458,23463 ****
--- 23793,23831 ----
           end if;
        end Check_Bound;
  
+       ------------------------------------
+       -- Has_Pragma_Unsigned_Base_Range --
+       ------------------------------------
+ 
+       function Has_Pragma_Unsigned_Base_Range return Boolean is
+          Type_Decl  : constant Node_Id := Parent (Def);
+          Nod        : Node_Id := Next (Type_Decl);
+          Pragma_Arg : Node_Id;
+ 
+       begin
+          while Present (Nod) loop
+             if Nkind (Nod) = N_Pragma
+               and then Chars (Pragma_Identifier (Nod))
+                          = Name_Unsigned_Base_Range
+             then
+                Pragma_Arg := First (Pragma_Argument_Associations (Nod));
+ 
+                --  Given that we are processing the full type declaration
+                --  of T, we cannot analyze yet the reference to the type
+                --  given in the pragma because it would be reported as
+                --  premature usage. Hence we rely on the name of the type.
+ 
+                if Chars (Expression (Pragma_Arg)) = Chars (T) then
+                   return True;
+                end if;
+             end if;
+ 
+             Next (Nod);
+          end loop;
+ 
+          return False;
+       end Has_Pragma_Unsigned_Base_Range;
+ 
     --  Start of processing for Signed_Integer_Type_Declaration
  
     begin
*************** package body Sem_Ch3 is
*** 23517,23522 ****
--- 23885,23906 ----
              Check_Restriction (No_Long_Long_Integers, Def);
              Base_Typ := Base_Type (Standard_Long_Long_Long_Integer);
  
+          --  For performance reasons, we defer checking pragma unsigned base
+          --  range until we have this case with bounds out of range (since
+          --  there is no need to perform this check for all signed integer
+          --  type declarations).
+ 
+          --  When the bounds of the integer type declaration are smaller,
+          --  and Unsigned_Base_Range is specified by means of a pragma, the
+          --  frontend handles the declaration as a regular signed integer
+          --  type declaration, and the base type is later adjusted (when the
+          --  pragma is processed); however, when the bounds are out of range
+          --  for the largest integer type we must handle it explicitly now.
+ 
+          elsif Has_Pragma_Unsigned_Base_Range then
+             Unsigned_Base_Range_Type_Declaration (T, Def);
+             return;
+ 
           else
              Base_Typ := Base_Type (Standard_Long_Long_Long_Integer);
              Error_Msg_N ("integer type definition bounds out of range", Def);
*************** package body Sem_Ch3 is
*** 23556,23561 ****
--- 23940,24111 ----
        Set_Is_Constrained     (T);
     end Signed_Integer_Type_Declaration;
  
+    ------------------------------------------
+    -- Unsigned_Base_Range_Type_Declaration --
+    ------------------------------------------
+ 
+    procedure Unsigned_Base_Range_Type_Declaration
+      (T   : Entity_Id;
+       Def : Node_Id)
+    is
+       Implicit_Base : Entity_Id;
+       Base_Typ      : Entity_Id;
+       Lo_Val        : Uint;
+       Hi_Val        : Uint;
+       Errs          : Boolean := False;
+       Lo            : Node_Id;
+       Hi            : Node_Id;
+ 
+       function Can_Derive_From (E : Entity_Id) return Boolean;
+       --  Determine whether given bounds allow derivation from specified type
+ 
+       procedure Check_Bound (Expr : Node_Id);
+       --  Check bound to make sure it is integral and static. If not, post
+       --  appropriate error message and set Errs flag
+ 
+       ---------------------
+       -- Can_Derive_From --
+       ---------------------
+ 
+       --  Note we check both bounds against both end values, to deal with
+       --  strange types like ones with a range of 0 .. -12341234.
+ 
+       function Can_Derive_From (E : Entity_Id) return Boolean is
+          Lo : constant Uint := Expr_Value (Type_Low_Bound (E));
+          Hi : constant Uint := Expr_Value (Type_High_Bound (E));
+       begin
+          return Lo <= Lo_Val and then Lo_Val <= Hi
+                   and then
+                 Lo <= Hi_Val and then Hi_Val <= Hi;
+       end Can_Derive_From;
+ 
+       -----------------
+       -- Check_Bound --
+       -----------------
+ 
+       procedure Check_Bound (Expr : Node_Id) is
+       begin
+          --  If a range constraint is used as an integer type definition, each
+          --  bound of the range must be defined by a static expression of some
+          --  integer type, but the two bounds need not have the same integer
+          --  type (Negative bounds are allowed.) (RM 3.5.4)
+ 
+          if not Is_Integer_Type (Etype (Expr)) then
+             Error_Msg_N
+               ("integer type definition bounds must be of integer type", Expr);
+             Errs := True;
+ 
+          elsif not Is_OK_Static_Expression (Expr) then
+             Flag_Non_Static_Expr
+               ("non-static expression used for integer type bound!", Expr);
+             Errs := True;
+ 
+          --  Otherwise the bounds are folded into literals
+ 
+          elsif Is_Entity_Name (Expr) then
+             Fold_Uint (Expr, Expr_Value (Expr), True);
+          end if;
+       end Check_Bound;
+ 
+    --  Start of processing for Unsigned_Base_Range_Type_Declaration
+ 
+    begin
+       --  Create an anonymous base type
+ 
+       Implicit_Base :=
+         Create_Itype (E_Modular_Integer_Type, Parent (Def), T, 'B');
+ 
+       --  Analyze and check the bounds, they can be of any integer type
+ 
+       Lo := Low_Bound (Def);
+       Hi := High_Bound (Def);
+ 
+       --  Arbitrarily use Integer as the type if either bound had an error
+ 
+       if Hi = Error or else Lo = Error then
+          Base_Typ := Any_Integer;
+          Set_Error_Posted (T, True);
+          Errs := True;
+ 
+       --  Here both bounds are OK expressions
+ 
+       else
+          Analyze_And_Resolve (Lo, Any_Integer);
+          Analyze_And_Resolve (Hi, Any_Integer);
+ 
+          Check_Bound (Lo);
+          Check_Bound (Hi);
+ 
+          if Errs then
+             Hi := Type_High_Bound (Standard_Long_Long_Long_Integer);
+             Lo := Type_Low_Bound  (Standard_Long_Long_Long_Integer);
+          end if;
+ 
+          --  Find type to derive from
+ 
+          Lo_Val := Expr_Value (Lo);
+          Hi_Val := Expr_Value (Hi);
+ 
+          if Can_Derive_From (Standard_Short_Short_Unsigned) then
+             Base_Typ := Base_Type (Standard_Short_Short_Unsigned);
+ 
+          elsif Can_Derive_From (Standard_Short_Unsigned) then
+             Base_Typ := Base_Type (Standard_Short_Unsigned);
+ 
+          elsif Can_Derive_From (Standard_Unsigned) then
+             Base_Typ := Base_Type (Standard_Unsigned);
+ 
+          elsif Can_Derive_From (Standard_Long_Unsigned) then
+             Base_Typ := Base_Type (Standard_Long_Unsigned);
+ 
+          elsif Can_Derive_From (Standard_Long_Long_Unsigned) then
+             Base_Typ := Base_Type (Standard_Long_Long_Unsigned);
+ 
+          elsif Can_Derive_From (Standard_Long_Long_Long_Unsigned) then
+             Base_Typ := Base_Type (Standard_Long_Long_Long_Unsigned);
+ 
+          else
+             Base_Typ := Base_Type (Standard_Long_Long_Long_Unsigned);
+             Error_Msg_N ("unsigned type base range bounds out of range", Def);
+             Hi := Type_High_Bound (Standard_Long_Long_Long_Unsigned);
+             Lo := Type_Low_Bound  (Standard_Long_Long_Long_Unsigned);
+          end if;
+       end if;
+ 
+       --  Set the type of the bounds to the implicit base: we cannot set it to
+       --  the new type, because this would be a forward reference for the code
+       --  generator and, if the original type is user-defined, this could even
+       --  lead to spurious semantic errors. Furthermore we do not set it to be
+       --  universal, because this could make it much larger than needed here.
+ 
+       if not Errs then
+          Set_Etype (Lo, Implicit_Base);
+          Set_Etype (Hi, Implicit_Base);
+       end if;
+ 
+       --  Complete both implicit base and declared first subtype entities. The
+       --  inheritance of the rep item chain ensures that SPARK-related pragmas
+       --  are not clobbered when the signed integer type acts as a full view of
+       --  a private type.
+ 
+       Set_Etype          (Implicit_Base,                 Base_Typ);
+       Set_Size_Info      (Implicit_Base,                 Base_Typ);
+       Set_RM_Size        (Implicit_Base, RM_Size        (Base_Typ));
+       Set_First_Rep_Item (Implicit_Base, First_Rep_Item (Base_Typ));
+       Set_Scalar_Range   (Implicit_Base, Scalar_Range   (Base_Typ));
+       Set_Modulus        (Implicit_Base, Modulus        (Base_Typ));
+ 
+       Set_Has_Unsigned_Base_Range_Aspect (Implicit_Base);
+ 
+       Mutate_Ekind           (T, E_Modular_Integer_Subtype);
+       Set_Etype              (T, Implicit_Base);
+       Set_Size_Info          (T, Implicit_Base);
+       Inherit_Rep_Item_Chain (T, Implicit_Base);
+       Set_Scalar_Range       (T, Def);
+       Set_RM_Size            (T, UI_From_Int (Minimum_Size (T)));
+       Set_Is_Constrained     (T);
+    end Unsigned_Base_Range_Type_Declaration;
+ 
     -------------------------------------
     -- Warn_On_Inherently_Limited_Type --
     -------------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch3.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch3.ads
*** gcc-15.2.0/gcc/ada/sem_ch3.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch3.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 165,176 ****
     --  node or a plain N_Identifier), find the type of the subtype mark.
  
     function Find_Type_Name (N : Node_Id) return Entity_Id;
!    --  Enter the identifier in a type definition, or find the entity already
!    --  declared, in the case of the full declaration of an incomplete or
!    --  private type. If the previous declaration is tagged then the class-wide
!    --  entity is propagated to the identifier to prevent multiple incompatible
!    --  class-wide types that may be created for self-referential anonymous
!    --  access components.
  
     function Get_Discriminant_Value
       (Discriminant       : Entity_Id;
--- 165,189 ----
     --  node or a plain N_Identifier), find the type of the subtype mark.
  
     function Find_Type_Name (N : Node_Id) return Entity_Id;
!    --  N must be a type declaration. The declared view can be incomplete,
!    --  partial, or full. The behavior of this function depends on what
!    --  declaration, if there is one, N completes:
!    --
!    --  - If N is not a completion, the function enters the entity of N in the
!    --    name table and returns that entity.
!    --  - If N completes an incomplete view, the function sets the entity of N
!    --    as the full view of the incomplete view and returns the incomplete
!    --    view.
!    --  - If N completes a partial view, the function "swaps" the partial view
!    --    and the full view (see Copy_And_Swap) and returns the Entity_Id that,
!    --    on exit, points to the full view. The value that
!    --    Defining_Identifier (N) had on entry points to the partial view on
!    --    exit.
!    --
!    --  If the previous declaration is tagged then the class-wide entity is
!    --  propagated to the identifier to prevent multiple incompatible class-wide
!    --  types that may be created for self-referential anonymous access
!    --  components.
  
     function Get_Discriminant_Value
       (Discriminant       : Entity_Id;
*************** package Sem_Ch3 is
*** 236,254 ****
     --  Always False in Ada 95 mode. Equivalent to OK_For_Limited_Init_In_05 in
     --  Ada 2005 mode.
  
!    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
  
!    procedure Preanalyze_Spec_Expression (N : Node_Id; T : Entity_Id);
     --  Default and per object expressions do not freeze their components, and
     --  must be analyzed and resolved accordingly. The analysis is done by
     --  calling the Preanalyze_And_Resolve routine and setting the global
--- 249,271 ----
     --  Always False in Ada 95 mode. Equivalent to OK_For_Limited_Init_In_05 in
     --  Ada 2005 mode.
  
!    procedure Preanalyze_And_Resolve_Assert_Expression
!      (N : Node_Id;
!       T : Entity_Id);
!    --  Wrapper on Preanalyze_And_Resolve_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_And_Resolve_Assert_Expression (N : Node_Id);
     --  Similar to the above, but without forcing N to be of a particular type
  
!    procedure Preanalyze_And_Resolve_Spec_Expression
!      (N : Node_Id;
!       T : Entity_Id);
     --  Default and per object expressions do not freeze their components, and
     --  must be analyzed and resolved accordingly. The analysis is done by
     --  calling the Preanalyze_And_Resolve routine and setting the global
*************** package Sem_Ch3 is
*** 263,268 ****
--- 280,288 ----
     --  which would be misplaced in the tree. Preanalyze_And_Resolve must be
     --  used in such a case to avoid reporting spurious errors.
  
+    procedure Preanalyze_And_Resolve_Spec_Expression (N : Node_Id);
+    --  Similar to the above, but without forcing N to be of a particular type
+ 
     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
     --  encountered and analyzed. The first action is to create the full views
*************** package Sem_Ch3 is
*** 294,303 ****
     --  in this case the bounds are captured if necessary using this name.
  
     function Process_Subtype
!      (S           : Node_Id;
!       Related_Nod : Node_Id;
!       Related_Id  : Entity_Id := Empty;
!       Suffix      : Character := ' ') return Entity_Id;
     --  Process a subtype indication S and return corresponding entity.
     --  Related_Nod is the node where the potential generated implicit types
     --  will be inserted. The Related_Id and Suffix parameters are used to
--- 314,325 ----
     --  in this case the bounds are captured if necessary using this name.
  
     function Process_Subtype
!      (S                  : Node_Id;
!       Related_Nod        : Node_Id;
!       Related_Id         : Entity_Id := Empty;
!       Suffix             : Character := ' ';
!       Excludes_Null      : Boolean := False;
!       Incomplete_Type_OK : Boolean := False) return Entity_Id;
     --  Process a subtype indication S and return corresponding entity.
     --  Related_Nod is the node where the potential generated implicit types
     --  will be inserted. The Related_Id and Suffix parameters are used to
*************** package Sem_Ch3 is
*** 328,331 ****
--- 350,359 ----
     --  as referenced. Warnings on unused entities, if needed, go on the
     --  partial view.
  
+    procedure Unsigned_Base_Range_Type_Declaration
+      (T   : Entity_Id;
+       Def : Node_Id);
+    --  Create a new unsigned integer entity, and apply the constraint to obtain
+    --  the required first named subtype of this type.
+ 
  end Sem_Ch3;
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch4.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch4.adb
*** gcc-15.2.0/gcc/ada/sem_ch4.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch4.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Accessibility;  use Accessibility;
  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 Elists;         use Elists;
  with Errout;         use Errout;
  with Exp_Util;       use Exp_Util;
  with Itypes;         use Itypes;
--- 23,35 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
  with Aspects;        use Aspects;
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Exp_Util;       use Exp_Util;
  with Itypes;         use Itypes;
*************** with Sem_Cat;        use Sem_Cat;
*** 54,59 ****
--- 52,58 ----
  with Sem_Ch3;        use Sem_Ch3;
  with Sem_Ch6;        use Sem_Ch6;
  with Sem_Ch8;        use Sem_Ch8;
+ with Sem_Ch12;       use Sem_Ch12;
  with Sem_Dim;        use Sem_Dim;
  with Sem_Disp;       use Sem_Disp;
  with Sem_Dist;       use Sem_Dist;
*************** with Sem_Type;       use Sem_Type;
*** 63,69 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 62,67 ----
*************** package body Sem_Ch4 is
*** 594,601 ****
           --  part of the allocator. It is fully analyzed and resolved when
           --  the allocator is resolved with the context type.
  
-          Set_Etype  (E, Type_Id);
- 
        --  Case where allocator has a subtype indication
  
        else
--- 592,597 ----
*************** package body Sem_Ch4 is
*** 631,637 ****
  
                 begin
                    while Present (Discr) loop
!                      Append (Discriminant_Default_Value (Discr), Constr);
                       Next_Discriminant (Discr);
                    end loop;
  
--- 627,634 ----
  
                 begin
                    while Present (Discr) loop
!                      Append_To (Constr,
!                        New_Copy_Tree (Discriminant_Default_Value (Discr)));
                       Next_Discriminant (Discr);
                    end loop;
  
*************** package body Sem_Ch4 is
*** 728,734 ****
              end;
           end if;
  
!          Type_Id := Process_Subtype (E, N);
           Acc_Type := Create_Itype (E_Allocator_Type, N);
           Set_Etype (Acc_Type, Acc_Type);
           Set_Directly_Designated_Type (Acc_Type, Type_Id);
--- 725,732 ----
              end;
           end if;
  
!          Type_Id :=
!            Process_Subtype (E, N, Excludes_Null => Null_Exclusion_Present (N));
           Acc_Type := Create_Itype (E_Allocator_Type, N);
           Set_Etype (Acc_Type, Acc_Type);
           Set_Directly_Designated_Type (Acc_Type, Type_Id);
*************** package body Sem_Ch4 is
*** 1264,1269 ****
--- 1262,1316 ----
                       No_Interpretation;
                    end if;
  
+                --  Or this may be a reference to a structural instantiation
+                --  with named associations if GNAT extensions are allowed.
+ 
+                elsif (Is_Generic_Subprogram (Nam_Ent)
+                        or else Ekind (Nam_Ent) = E_Generic_Package)
+                  and then All_Extensions_Allowed
+                  and then not Is_Empty_List (Parameter_Associations (N))
+                then
+                   declare
+                      Act      : Node_Id;
+                      Act_List : List_Id;
+                      Assoc    : Node_Id;
+                      Inst_Id  : Entity_Id;
+ 
+                   begin
+                      Act_List := New_List;
+                      Assoc := First (Parameter_Associations (N));
+                      while Present (Assoc) loop
+                         if Nkind (Assoc) = N_Parameter_Association then
+                            Act :=
+                              Make_Generic_Association (Sloc (Assoc),
+                                Selector_Name                     =>
+                                  Relocate_Node (Selector_Name (Assoc)),
+                                Explicit_Generic_Actual_Parameter =>
+                                  Relocate_Node
+                                    (Explicit_Actual_Parameter (Assoc)));
+                         else
+                            Act :=
+                              Make_Generic_Association (Sloc (Assoc),
+                                Explicit_Generic_Actual_Parameter =>
+                                  Relocate_Node (Assoc));
+                         end if;
+ 
+                         Append_To (Act_List, Act);
+                         Next (Assoc);
+                      end loop;
+ 
+                      Inst_Id :=
+                        Build_Structural_Instantiation (N, Nam_Ent, Act_List);
+                      if Present (Inst_Id) then
+                         Rewrite (N, New_Occurrence_Of (Inst_Id, Loc));
+                      else
+                         Rewrite (N,
+                           Make_Raise_Program_Error (Loc,
+                             Reason => PE_Explicit_Raise));
+                      end if;
+                      Analyze (N);
+                   end;
+ 
                 else
                    No_Interpretation;
                 end if;
*************** package body Sem_Ch4 is
*** 1441,1452 ****
                       Typ := Etype (Arg);
                    end if;
  
!                   if Is_Signed_Integer_Type (Typ) then
                       Error_Msg_N
                         ("possible missing instantiation of "
                          & "'Text_'I'O.'Integer_'I'O!", Nam);
  
!                   elsif Is_Modular_Integer_Type (Typ) then
                       Error_Msg_N
                         ("possible missing instantiation of "
                          & "'Text_'I'O.'Modular_'I'O!", Nam);
--- 1488,1499 ----
                       Typ := Etype (Arg);
                    end if;
  
!                   if Has_Overflow_Operations (Typ) then
                       Error_Msg_N
                         ("possible missing instantiation of "
                          & "'Text_'I'O.'Integer_'I'O!", Nam);
  
!                   elsif Has_Modular_Operations (Typ) then
                       Error_Msg_N
                         ("possible missing instantiation of "
                          & "'Text_'I'O.'Modular_'I'O!", Nam);
*************** package body Sem_Ch4 is
*** 1489,1539 ****
           end if;
        end if;
  
-       --  Check the accessibility level for actuals for explicitly aliased
-       --  formals when a function call appears within a return statement.
-       --  This is only checked if the enclosing subprogram Comes_From_Source,
-       --  to avoid issuing errors on calls occurring in wrapper subprograms
-       --  (for example, where the call is part of an expression of an aspect
-       --  associated with a wrapper, such as Pre'Class).
- 
-       if Nkind (N) = N_Function_Call
-         and then Comes_From_Source (N)
-         and then Present (Nam_Ent)
-         and then In_Return_Value (N)
-         and then Comes_From_Source (Current_Subprogram)
-       then
-          declare
-             Form : Node_Id;
-             Act  : Node_Id;
-          begin
-             Act  := First_Actual (N);
-             Form := First_Formal (Nam_Ent);
- 
-             while Present (Form) and then Present (Act) loop
-                --  Check whether the formal is aliased and if the accessibility
-                --  level of the actual is deeper than the accessibility level
-                --  of the enclosing subprogram to which the current return
-                --  statement applies.
- 
-                --  Should we be checking Is_Entity_Name on Act? Won't this miss
-                --  other cases ???
- 
-                if Is_Explicitly_Aliased (Form)
-                  and then Is_Entity_Name (Act)
-                  and then Static_Accessibility_Level
-                             (Act, Zero_On_Dynamic_Level)
-                               > Subprogram_Access_Level (Current_Subprogram)
-                then
-                   Error_Msg_N ("actual for explicitly aliased formal is too"
-                                 & " short lived", Act);
-                end if;
- 
-                Next_Formal (Form);
-                Next_Actual (Act);
-             end loop;
-          end;
-       end if;
- 
        if Ada_Version >= Ada_2012 then
  
           --  Check if the call contains a function with writable actuals
--- 1536,1541 ----
*************** package body Sem_Ch4 is
*** 1576,1581 ****
--- 1578,1584 ----
                    or else Is_Thunk (Current_Scope))
              then
                 Set_Etype (N, Non_Limited_View (Etype (N)));
+                Generate_Reference (Scope (Etype (N)), N);
  
              --  If there is no completion for the type, this may be because
              --  there is only a limited view of it and there is nothing in
*************** package body Sem_Ch4 is
*** 2332,2343 ****
              while Present (It.Nam) loop
                 T := It.Typ;
  
!                if Is_Access_Type (T)
!                  and then No (First_Formal (Base_Type (Designated_Type (T))))
!                then
!                   Set_Etype (P, T);
!                else
!                   Remove_Interp (I);
                 end if;
  
                 Get_Next_Interp (I, It);
--- 2335,2346 ----
              while Present (It.Nam) loop
                 T := It.Typ;
  
!                if Is_Access_Type (T) then
!                   if No (First_Formal (Base_Type (Designated_Type (T)))) then
!                      Set_Etype (P, T);
!                   else
!                      Remove_Interp (I);
!                   end if;
                 end if;
  
                 Get_Next_Interp (I, It);
*************** package body Sem_Ch4 is
*** 2735,2740 ****
--- 2738,2747 ----
        --  If the prefix of an indexed component is overloaded, the proper
        --  interpretation is selected by the index types and the context.
  
+       procedure Process_Generic_Instantiation;
+       --  The prefix in indexed component form is a generic unit. This
+       --  routine processes it and builds the implicit instantiation.
+ 
        ---------------------------
        -- Process_Function_Call --
        ---------------------------
*************** package body Sem_Ch4 is
*** 3047,3052 ****
--- 3054,3090 ----
           end if;
        end Process_Overloaded_Indexed_Component;
  
+       -----------------------------------
+       -- Process_Generic_Instantiation --
+       -----------------------------------
+ 
+       procedure Process_Generic_Instantiation is
+          Act_List : List_Id;
+          Expr     : Node_Id;
+          Inst_Id  : Entity_Id;
+ 
+       begin
+          Act_List := New_List;
+          Expr := First (Expressions (N));
+          while Present (Expr) loop
+             Append_To (Act_List,
+               Make_Generic_Association (Sloc (Expr),
+                 Explicit_Generic_Actual_Parameter =>
+                   Relocate_Node (Expr)));
+             Next (Expr);
+          end loop;
+ 
+          Inst_Id := Build_Structural_Instantiation (N, U_N, Act_List);
+          if Present (Inst_Id) then
+             Rewrite (N, New_Occurrence_Of (Inst_Id, Sloc (N)));
+          else
+             Rewrite (N,
+               Make_Raise_Program_Error (Sloc (N),
+                 Reason => PE_Explicit_Raise));
+          end if;
+          Analyze (N);
+       end Process_Generic_Instantiation;
+ 
     --  Start of processing for Analyze_Indexed_Component_Form
  
     begin
*************** package body Sem_Ch4 is
*** 3120,3128 ****
  
              --  A common beginner's (or C++ templates fan) error
  
!             Error_Msg_N ("generic subprogram cannot be called", N);
!             Set_Etype (N, Any_Type);
!             return;
  
           else
              Process_Indexed_Component_Or_Slice;
--- 3158,3178 ----
  
              --  A common beginner's (or C++ templates fan) error
  
!             if All_Extensions_Allowed
!               and then not Is_Empty_List (Expressions (N))
!             then
!                Process_Generic_Instantiation;
!             else
!                Error_Msg_N ("generic subprogram cannot be called", N);
!                Set_Etype (N, Any_Type);
!                return;
!             end if;
! 
!          elsif Ekind (U_N) = E_Generic_Package
!            and then All_Extensions_Allowed
!            and then not Is_Empty_List (Expressions (N))
!          then
!             Process_Generic_Instantiation;
  
           else
              Process_Indexed_Component_Or_Slice;
*************** package body Sem_Ch4 is
*** 3793,3803 ****
        procedure Indicate_Name_And_Type is
        begin
           Add_One_Interp (N, Nam, Etype (Nam));
-          Check_Implicit_Dereference (N, Etype (Nam));
-          Success := True;
  
!          --  If the prefix of the call is a name, indicate the entity
!          --  being called. If it is not a name, it is an expression that
           --  denotes an access to subprogram or else an entry or family. In
           --  the latter case, the name is a selected component, and the entity
           --  being called is noted on the selector.
--- 3843,3851 ----
        procedure Indicate_Name_And_Type is
        begin
           Add_One_Interp (N, Nam, Etype (Nam));
  
!          --  If the prefix of the call is an entity name, indicate the entity
!          --  being called. If it is not such a name, it is an expression that
           --  denotes an access to subprogram or else an entry or family. In
           --  the latter case, the name is a selected component, and the entity
           --  being called is noted on the selector.
*************** package body Sem_Ch4 is
*** 3812,3817 ****
--- 3860,3870 ----
              end if;
           end if;
  
+          --  Now add an interpretation for the implicit dereference, if any
+ 
+          Check_Implicit_Dereference (N, Etype (Nam));
+          Success := True;
+ 
           if Debug_Flag_E and not Report then
              Write_Str (" Overloaded call ");
              Write_Int (Int (N));
*************** package body Sem_Ch4 is
*** 4381,4396 ****
              T := It.Typ;
           end if;
  
!          --  Locate the component. For a private prefix the selector can denote
!          --  a discriminant.
  
           if Is_Record_Type (T) or else Is_Private_Type (T) then
  
!             --  If the prefix is a class-wide type, the visible components are
!             --  those of the base type.
  
              if Is_Class_Wide_Type (T) then
!                T := Etype (T);
              end if;
  
              Comp := First_Entity (T);
--- 4434,4449 ----
              T := It.Typ;
           end if;
  
!          --  Find the selected component. For a private prefix, the selector
!          --  can denote a discriminant.
  
           if Is_Record_Type (T) or else Is_Private_Type (T) then
  
!             --  If the prefix has a class-wide type, the visible components are
!             --  those of the root type.
  
              if Is_Class_Wide_Type (T) then
!                T := Root_Type (T);
              end if;
  
              Comp := First_Entity (T);
*************** package body Sem_Ch4 is
*** 5353,5358 ****
--- 5406,5415 ----
  
        else
           Prefix_Type := Etype (Pref);
+          if Prefix_Type = Standard_Void_Type then
+             pragma Assert (Serious_Errors_Detected > 0);
+             return;
+          end if;
        end if;
  
        if Is_Access_Type (Prefix_Type) then
*************** package body Sem_Ch4 is
*** 5604,5609 ****
--- 5661,5670 ----
                    if No (Act_Decl) then
                       Set_Etype (N, Etype (Comp));
  
+                      if Is_Mutably_Tagged_CW_Equivalent_Type (Etype (N)) then
+                         Make_Mutably_Tagged_Conversion (N);
+                      end if;
+ 
                    else
                       --  If discriminants were present in the component
                       --  declaration, they have been replaced by the
*************** package body Sem_Ch4 is
*** 5683,5694 ****
           --  Ada 2005 (AI05-0030): In the case of dispatching requeue, the
           --  selected component should resolve to a name.
  
!          --  Extension feature: Also support calls with prefixed views for
!          --  untagged record types.
  
           if Ada_Version >= Ada_2005
             and then (Is_Tagged_Type (Prefix_Type)
!                        or else Core_Extensions_Allowed)
             and then not Is_Concurrent_Type (Prefix_Type)
           then
              if Nkind (Parent (N)) = N_Generic_Association
--- 5744,5755 ----
           --  Ada 2005 (AI05-0030): In the case of dispatching requeue, the
           --  selected component should resolve to a name.
  
!          --  GNAT extension: Accept calls with prefixed view for untagged
!          --  record types.
  
           if Ada_Version >= Ada_2005
             and then (Is_Tagged_Type (Prefix_Type)
!                       or else Core_Extensions_Allowed)
             and then not Is_Concurrent_Type (Prefix_Type)
           then
              if Nkind (Parent (N)) = N_Generic_Association
*************** package body Sem_Ch4 is
*** 5758,5765 ****
                 --  Before declaring an error, check whether this is tagged
                 --  private type and a call to a primitive operation.
  
                 elsif Ada_Version >= Ada_2005
!                  and then Is_Tagged_Type (Prefix_Type)
                   and then Try_Object_Operation (N)
                 then
                    return;
--- 5819,5830 ----
                 --  Before declaring an error, check whether this is tagged
                 --  private type and a call to a primitive operation.
  
+                --  GNAT extension: Accept calls with prefixed view for
+                --  untagged private types
+ 
                 elsif Ada_Version >= Ada_2005
!                  and then (Is_Tagged_Type (Prefix_Type)
!                             or else Core_Extensions_Allowed)
                   and then Try_Object_Operation (N)
                 then
                    return;
*************** package body Sem_Ch4 is
*** 5777,5784 ****
              Next_Entity (Comp);
           end loop;
  
!          --  Extension feature: Also support calls with prefixed views for
!          --  untagged private types.
  
           if Core_Extensions_Allowed then
              if Try_Object_Operation (N) then
--- 5842,5849 ----
              Next_Entity (Comp);
           end loop;
  
!          --  GNAT extension: Accept calls with prefixed view for untagged
!          --  private types.
  
           if Core_Extensions_Allowed then
              if Try_Object_Operation (N) then
*************** package body Sem_Ch4 is
*** 5960,5968 ****
           --  visible entities are plausible interpretations, check whether
           --  there is some other primitive operation with that name.
  
           if Ada_Version >= Ada_2005 and then Is_Tagged_Type (Prefix_Type) then
!             if (Etype (N) = Any_Type
!                   or else not Has_Candidate)
                and then Try_Object_Operation (N)
              then
                 return;
--- 6025,6037 ----
           --  visible entities are plausible interpretations, check whether
           --  there is some other primitive operation with that name.
  
+          --  Note that, unlike for other types, we do not accept calls with
+          --  prefixed view for untagged concurrent types with -gnatX, since
+          --  this would require associated legality rules to avoid conflict
+          --  with protected operations or entries of the concurrent types.
+ 
           if Ada_Version >= Ada_2005 and then Is_Tagged_Type (Prefix_Type) then
!             if (Etype (N) = Any_Type or else not Has_Candidate)
                and then Try_Object_Operation (N)
              then
                 return;
*************** package body Sem_Ch4 is
*** 6038,6060 ****
  
           Set_Is_Overloaded (N, Is_Overloaded (Sel));
  
!       --  Extension feature: Also support calls with prefixed views for
!       --  untagged types.
  
        elsif Core_Extensions_Allowed
          and then Try_Object_Operation (N)
        then
           return;
  
!       else
!          --  Invalid prefix
  
           Error_Msg_NE ("invalid prefix in selected component&", N, Sel);
        end if;
  
!       --  If N still has no type, the component is not defined in the prefix
  
!       if Etype (N) = Any_Type then
  
           if Is_Single_Concurrent_Object then
              Error_Msg_Node_2 := Entity (Pref);
--- 6107,6142 ----
  
           Set_Is_Overloaded (N, Is_Overloaded (Sel));
  
!       --  GNAT extension: Accept calls with prefixed view for untagged types
  
        elsif Core_Extensions_Allowed
          and then Try_Object_Operation (N)
        then
           return;
  
!       --  Invalid prefix. If it is the dereference of a name, we give the same
!       --  error message as would be given if the dereference was implicit.
  
+       elsif Nkind (Pref) = N_Explicit_Dereference
+         and then Is_Entity_Name (Prefix (Pref))
+       then
+          Error_Msg_N
+            ("invalid prefix& in selected component", Prefix (Pref));
+ 
+          if Is_Incomplete_Type (Etype (Pref)) then
+             Error_Msg_N
+               ("\dereference must not be of an incomplete type "
+                & "(RM 3.10.1)", Prefix (Pref));
+          end if;
+ 
+       else
           Error_Msg_NE ("invalid prefix in selected component&", N, Sel);
        end if;
  
!       --  If the selector is not labelled with an entity at this point, the
!       --  component is not defined in the prefix.
  
!       if No (Entity (Sel)) then
  
           if Is_Single_Concurrent_Object then
              Error_Msg_Node_2 := Entity (Pref);
*************** package body Sem_Ch4 is
*** 6522,6574 ****
  
     procedure Analyze_User_Defined_Binary_Op
       (N     : Node_Id;
!       Op_Id : Entity_Id) is
     begin
!       declare
!          F1 : constant Entity_Id := First_Formal (Op_Id);
!          F2 : constant Entity_Id := Next_Formal (F1);
! 
!       begin
!          --  Verify that Op_Id is a visible binary function. Note that since
!          --  we know Op_Id is overloaded, potentially use visible means use
!          --  visible for sure (RM 9.4(11)). Be prepared for previous errors.
  
!          if Ekind (Op_Id) = E_Function
!            and then Present (F2)
!            and then (Is_Immediately_Visible (Op_Id)
!                       or else Is_Potentially_Use_Visible (Op_Id))
!            and then (Has_Compatible_Type (Left_Opnd (N), Etype (F1))
!                       or else Etype (F1) = Any_Type)
!            and then (Has_Compatible_Type (Right_Opnd (N), Etype (F2))
!                       or else Etype (F2) = Any_Type)
!          then
!             Add_One_Interp (N, Op_Id, Base_Type (Etype (Op_Id)));
  
!             --  If the operands are overloaded, indicate that the current
!             --  type is a viable candidate. This is redundant in most cases,
!             --  but for equality and comparison operators where the context
!             --  does not impose a type on the operands, setting the proper
!             --  type is necessary to avoid subsequent ambiguities during
!             --  resolution, when both user-defined and predefined operators
!             --  may be candidates.
  
!             if Is_Overloaded (Left_Opnd (N)) then
!                Set_Etype (Left_Opnd (N), Etype (F1));
!             end if;
  
!             if Is_Overloaded (Right_Opnd (N)) then
!                Set_Etype (Right_Opnd (N), Etype (F2));
!             end if;
  
!             if Debug_Flag_E then
!                Write_Str ("user defined operator ");
!                Write_Name (Chars (Op_Id));
!                Write_Str (" on node ");
!                Write_Int (Int (N));
!                Write_Eol;
!             end if;
           end if;
!       end;
     end Analyze_User_Defined_Binary_Op;
  
     -----------------------------------
--- 6604,6653 ----
  
     procedure Analyze_User_Defined_Binary_Op
       (N     : Node_Id;
!       Op_Id : Entity_Id)
!    is
!       F1 : constant Entity_Id := First_Formal (Op_Id);
!       F2 : constant Entity_Id := Next_Formal (F1);
     begin
!       --  Verify that Op_Id is a visible binary function. Note that since
!       --  we know Op_Id is overloaded, potentially use visible means use
!       --  visible for sure (RM 9.4(11)). Be prepared for previous errors.
  
!       if Ekind (Op_Id) = E_Function
!         and then Present (F2)
!         and then (Is_Immediately_Visible (Op_Id)
!                    or else Is_Potentially_Use_Visible (Op_Id))
!         and then (Has_Compatible_Type (Left_Opnd (N), Etype (F1))
!                    or else Etype (F1) = Any_Type)
!         and then (Has_Compatible_Type (Right_Opnd (N), Etype (F2))
!                    or else Etype (F2) = Any_Type)
!       then
!          Add_One_Interp (N, Op_Id, Base_Type (Etype (Op_Id)));
  
!          --  If the operands are overloaded, indicate that the current
!          --  type is a viable candidate. This is redundant in most cases,
!          --  but for equality and comparison operators where the context
!          --  does not impose a type on the operands, setting the proper
!          --  type is necessary to avoid subsequent ambiguities during
!          --  resolution, when both user-defined and predefined operators
!          --  may be candidates.
  
!          if Is_Overloaded (Left_Opnd (N)) then
!             Set_Etype (Left_Opnd (N), Etype (F1));
!          end if;
  
!          if Is_Overloaded (Right_Opnd (N)) then
!             Set_Etype (Right_Opnd (N), Etype (F2));
!          end if;
  
!          if Debug_Flag_E then
!             Write_Str ("user defined operator ");
!             Write_Name (Chars (Op_Id));
!             Write_Str (" on node ");
!             Write_Int (Int (N));
!             Write_Eol;
           end if;
!       end if;
     end Analyze_User_Defined_Binary_Op;
  
     -----------------------------------
*************** package body Sem_Ch4 is
*** 7044,7050 ****
                and then N = Prefix (Parent (N))
              then
                 Error_Msg_N -- CODEFIX
!                  ("\period should probably be semicolon", Parent (N));
              end if;
           end if;
  
--- 7123,7129 ----
                and then N = Prefix (Parent (N))
              then
                 Error_Msg_N -- CODEFIX
!                  ("\period is probably a typographical error", Parent (N));
              end if;
           end if;
  
*************** package body Sem_Ch4 is
*** 9447,9453 ****
  
        if Idx_Type = Any_Type then
           Error_Msg_NE
!            ("container cannot be indexed with&", N, Etype (First (Exprs)));
           Rewrite (N, New_Occurrence_Of (Any_Id, Loc));
        end if;
  
--- 9526,9537 ----
  
        if Idx_Type = Any_Type then
           Error_Msg_NE
!            ("container cannot be indexed with&", N,
!             (if Nkind (First (Exprs)) = N_Parameter_Association
!              then
!                 Etype (Explicit_Actual_Parameter (First (Exprs)))
!              else
!                 Etype (First (Exprs))));
           Rewrite (N, New_Occurrence_Of (Any_Id, Loc));
        end if;
  
*************** package body Sem_Ch4 is
*** 9688,9695 ****
           --  source if the original one is. Set entity and type, even though
           --  they may be overwritten during resolution if overloaded.
  
!          Set_Comes_From_Source (Subprog, Comes_From_Source (N));
!          Set_Comes_From_Source (Call_Node, Comes_From_Source (N));
  
           if Nkind (N) = N_Selected_Component
             and then not Inside_A_Generic
--- 9772,9779 ----
           --  source if the original one is. Set entity and type, even though
           --  they may be overwritten during resolution if overloaded.
  
!          Preserve_Comes_From_Source (Subprog, N);
!          Preserve_Comes_From_Source (Call_Node, N);
  
           if Nkind (N) = N_Selected_Component
             and then not Inside_A_Generic
*************** package body Sem_Ch4 is
*** 9717,9723 ****
             and then Is_Access_Type (Etype (Obj))
           then
              Rewrite (First_Actual,
!               Make_Explicit_Dereference (Sloc (Obj), Obj));
              Analyze (First_Actual);
  
              --  If we need to introduce an explicit dereference, verify that
--- 9801,9807 ----
             and then Is_Access_Type (Etype (Obj))
           then
              Rewrite (First_Actual,
!               Make_Explicit_Dereference (Sloc (Obj), Relocate_Node (Obj)));
              Analyze (First_Actual);
  
              --  If we need to introduce an explicit dereference, verify that
*************** package body Sem_Ch4 is
*** 9729,9739 ****
                 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
!          --  'Access reference. Its analysis will check that the object is
!          --  aliased.
  
           elsif Is_Access_Type (Formal_Type)
             and then not Is_Access_Type (Etype (Obj))
--- 9813,9824 ----
                 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
!          --  neither an access type nor a reference type (i.e. a type with the
           --  Implicit_Dereference aspect specified), replace the actual with a
!          --  'Access reference and give more specific error messages in common
!          --  illegal cases than Resolve_Attribute would.
  
           elsif Is_Access_Type (Formal_Type)
             and then not Is_Access_Type (Etype (Obj))
*************** package body Sem_Ch4 is
*** 9743,9748 ****
--- 9828,9844 ----
                   not Is_Access_Type (Designated_Type (Etype
                         (Get_Reference_Discriminant (Etype (Obj))))))
           then
+             Rewrite (First_Actual,
+               Make_Attribute_Reference (Loc,
+                 Attribute_Name => Name_Access,
+                 Prefix => Relocate_Node (Obj)));
+ 
+             --  Treat the new actual as being in the source if the object is.
+             --  This is necessary when interface types are involved, see the
+             --  Expand_N_Attribute_Reference procedure.
+ 
+             Preserve_Comes_From_Source (First_Actual, Obj);
+ 
              --  A special case: A.all'Access is illegal if A is an access to a
              --  constant and the context requires an access to a variable.
  
*************** package body Sem_Ch4 is
*** 9752,9768 ****
                   or else not Is_Variable (Obj)
                 then
                    Error_Msg_NE
!                     ("actual for & must be a variable", Obj, Control);
                 end if;
              end if;
  
!             Rewrite (First_Actual,
!               Make_Attribute_Reference (Loc,
!                 Attribute_Name => Name_Access,
!                 Prefix => Relocate_Node (Obj)));
! 
!             --  If the object is not overloaded verify that taking access of
!             --  it is legal. Otherwise check is made during resolution.
  
              if not Is_Overloaded (Obj)
                and then not Is_Aliased_View (Obj)
--- 9848,9860 ----
                   or else not Is_Variable (Obj)
                 then
                    Error_Msg_NE
!                     ("actual for & must be a variable",
!                      Prefix (First_Actual), Control);
                 end if;
              end if;
  
!             --  If the object is not overloaded, verify that taking access of
!             --  it is legal. Otherwise the check is made during resolution.
  
              if not Is_Overloaded (Obj)
                and then not Is_Aliased_View (Obj)
*************** package body Sem_Ch4 is
*** 10282,10289 ****
           --  type, this is not a prefixed call. Restore the previous type as
           --  the current one is not a legal candidate.
  
!          --  Extension feature: Calls with prefixed views are also supported
!          --  for untagged types, so skip the early return when extensions are
           --  enabled, unless the type doesn't have a primitive operations list
           --  (such as in the case of predefined types).
  
--- 10374,10381 ----
           --  type, this is not a prefixed call. Restore the previous type as
           --  the current one is not a legal candidate.
  
!          --  GNAT extension: Given that calls with prefixed view are accepted
!          --  for untagged types, skip the early return when extensions are
           --  enabled, unless the type doesn't have a primitive operations list
           --  (such as in the case of predefined types).
  
*************** package body Sem_Ch4 is
*** 10309,10315 ****
                     (Call_Node       => New_Call_Node,
                      Node_To_Replace => Node_To_Replace);
  
!                --  Extension feature: In the case where the prefix is of an
                 --  access type, and a primitive wasn't found for the designated
                 --  type, then if the access type has primitives we attempt a
                 --  prefixed call using one of its primitives. (It seems that
--- 10401,10407 ----
                     (Call_Node       => New_Call_Node,
                      Node_To_Replace => Node_To_Replace);
  
!                --  GNAT extension: In the case where the prefix is of an
                 --  access type, and a primitive wasn't found for the designated
                 --  type, then if the access type has primitives we attempt a
                 --  prefixed call using one of its primitives. (It seems that
*************** package body Sem_Ch4 is
*** 10398,10416 ****
           --  We retrieve the candidate operations from the generic declaration.
  
           function Extended_Primitive_Ops (T : Entity_Id) return Elist_Id;
!          --  Prefix notation can also be used on operations that are not
!          --  primitives of the type, but are declared in the same immediate
           --  declarative part, which can only mean the corresponding package
           --  body (see RM 4.1.3 (9.2/3)). If we are in that body we extend the
           --  list of primitives with body operations with the same name that
           --  may be candidates, so that Try_Primitive_Operations can examine
           --  them if no real primitive is found.
  
!          function Is_Private_Overriding (Op : Entity_Id) return Boolean;
           --  An operation that overrides an inherited operation in the private
           --  part of its package may be hidden, but if the inherited operation
!          --  is visible a direct call to it will dispatch to the private one,
!          --  which is therefore a valid candidate.
  
           function Names_Match
             (Obj_Type : Entity_Id;
--- 10490,10511 ----
           --  We retrieve the candidate operations from the generic declaration.
  
           function Extended_Primitive_Ops (T : Entity_Id) return Elist_Id;
!          --  Prefix notation can also be used on either constructors, which are
!          --  never primitives; or operations declared in the same immediate
           --  declarative part, which can only mean the corresponding package
           --  body (see RM 4.1.3 (9.2/3)). If we are in that body we extend the
           --  list of primitives with body operations with the same name that
           --  may be candidates, so that Try_Primitive_Operations can examine
           --  them if no real primitive is found.
  
!          function Is_Callable_Private_Overriding
!            (Op : Entity_Id) return Boolean;
           --  An operation that overrides an inherited operation in the private
           --  part of its package may be hidden, but if the inherited operation
!          --  that it overrides is visible, then a direct call to it will
!          --  dispatch to the private one, which is therefore a valid candidate.
!          --  Returns True if the operation can be called from outside the
!          --  enclosing package.
  
           function Names_Match
             (Obj_Type : Entity_Id;
*************** package body Sem_Ch4 is
*** 10528,10534 ****
--- 10623,10652 ----
           function Extended_Primitive_Ops (T : Entity_Id) return Elist_Id is
              Type_Scope : constant Entity_Id := Scope (T);
              Op_List    : Elist_Id := Primitive_Operations (T);
+             Op_Found   : Boolean := False;
           begin
+             if Needs_Construction (T) then
+                --  to include all constructors iterate over T's entities
+ 
+                declare
+                   Cursor : Entity_Id := Next_Entity (T);
+                begin
+                   while Present (Cursor) loop
+                      if Is_Constructor (Cursor) then
+                         if not Op_Found then
+                            --  Copy list of primitives so it is not affected
+                            --  for other uses.
+ 
+                            Op_List := New_Copy_Elist (Op_List);
+                            Op_Found := True;
+                         end if;
+                         Append_Elmt (Cursor, Op_List);
+                      end if;
+                      Next_Entity (Cursor);
+                   end loop;
+                end;
+             end if;
+ 
              if Is_Package_Or_Generic_Package (Type_Scope)
                and then ((In_Package_Body (Type_Scope)
                and then In_Open_Scopes (Type_Scope)) or else In_Instance_Body)
*************** package body Sem_Ch4 is
*** 10543,10549 ****
                       declare
                          Body_Decls : constant List_Id :=
                            Declarations (Unit_Declaration_Node (The_Body));
-                         Op_Found : Boolean := False;
                          Op : Entity_Id := Current_Entity (Subprog);
                       begin
                          while Present (Op) loop
--- 10661,10666 ----
*************** package body Sem_Ch4 is
*** 10581,10591 ****
              return Op_List;
           end Extended_Primitive_Ops;
  
!          ---------------------------
!          -- Is_Private_Overriding --
!          ---------------------------
  
!          function Is_Private_Overriding (Op : Entity_Id) return Boolean is
              Visible_Op : Entity_Id;
  
           begin
--- 10698,10710 ----
              return Op_List;
           end Extended_Primitive_Ops;
  
!          ------------------------------------
!          -- Is_Callable_Private_Overriding --
!          ------------------------------------
  
!          function Is_Callable_Private_Overriding
!            (Op : Entity_Id) return Boolean
!          is
              Visible_Op : Entity_Id;
  
           begin
*************** package body Sem_Ch4 is
*** 10607,10613 ****
                    --  have found what we're looking for.
  
                    if not Is_Hidden (Visible_Op)
!                     or else not Is_Hidden (Overridden_Operation (Op))
                    then
                       return True;
                    end if;
--- 10726,10735 ----
                    --  have found what we're looking for.
  
                    if not Is_Hidden (Visible_Op)
!                     or else
!                       (Present (Overridden_Inherited_Operation (Op))
!                         and then not Is_Hidden
!                                        (Overridden_Inherited_Operation (Op)))
                    then
                       return True;
                    end if;
*************** package body Sem_Ch4 is
*** 10617,10623 ****
              end loop;
  
              return False;
!          end Is_Private_Overriding;
  
           -----------------
           -- Names_Match --
--- 10739,10745 ----
              end loop;
  
              return False;
!          end Is_Callable_Private_Overriding;
  
           -----------------
           -- Names_Match --
*************** package body Sem_Ch4 is
*** 10760,10772 ****
  
                   --  Do not consider hidden primitives unless the type is in an
                   --  open scope or we are within an instance, where visibility
!                  --  is known to be correct, or else if this is an overriding
!                  --  operation in the private part for an inherited operation.
  
                   or else (Is_Hidden (Prim_Op)
                             and then not Is_Immediately_Visible (Obj_Type)
                             and then not In_Instance
!                            and then not Is_Private_Overriding (Prim_Op))
                 then
                    goto Continue;
                 end if;
--- 10882,10896 ----
  
                   --  Do not consider hidden primitives unless the type is in an
                   --  open scope or we are within an instance, where visibility
!                  --  is known to be correct, or else if this is an operation
!                  --  declared in the private part that overrides a visible
!                  --  inherited operation.
  
                   or else (Is_Hidden (Prim_Op)
                             and then not Is_Immediately_Visible (Obj_Type)
                             and then not In_Instance
!                            and then
!                              not Is_Callable_Private_Overriding (Prim_Op))
                 then
                    goto Continue;
                 end if;
*************** package body Sem_Ch4 is
*** 11107,11192 ****
              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;
--- 11231,11276 ----
              end loop;
  
              if No (Op_Id) then
!                Error_Msg_N
!                  ("invalid operand types for operator&", N,
!                   GNAT0002);
  
!                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;
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch4.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch4.ads
*** gcc-15.2.0/gcc/ada/sem_ch4.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch4.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch5.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch5.adb
*** gcc-15.2.0/gcc/ada/sem_ch5.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch5.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 27,32 ----
*************** with Sem_Util;       use Sem_Util;
*** 60,66 ****
  with Sem_Warn;       use Sem_Warn;
  with Snames;         use Snames;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Targparm;       use Targparm;
--- 59,64 ----
*************** package body Sem_Ch5 is
*** 90,95 ****
--- 88,99 ----
     --  messages. This variable is recursively saved on entry to processing the
     --  construct, and restored on exit.
  
+    function Analyze_Loop_Flow_Statement
+      (N : N_Loop_Flow_Statement_Id) return Opt_E_Loop_Id;
+    --  Perform analysis that is common to continue statements and exit
+    --  statements. On success, the return value is the entity of the loop
+    --  referenced by the statement.
+ 
     function Has_Sec_Stack_Call (N : Node_Id) return Boolean;
     --  N is the node for an arbitrary construct. This function searches the
     --  construct N to see if it contains a function call that returns on the
*************** package body Sem_Ch5 is
*** 379,386 ****
  
        --  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
  
        T1 : Entity_Id;
--- 383,389 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        T1 : Entity_Id;
*************** package body Sem_Ch5 is
*** 415,421 ****
        end if;
  
        Analyze (Lhs);
-       Analyze (Rhs);
  
        --  Ensure that we never do an assignment on a variable marked as
        --  Is_Safe_To_Reevaluate.
--- 418,423 ----
*************** package body Sem_Ch5 is
*** 429,519 ****
  
        T1 := Etype (Lhs);
  
        --  In the most general case, both Lhs and Rhs can be overloaded, and we
        --  must compute the intersection of the possible types on each side.
  
!       if Is_Overloaded (Lhs) then
!          declare
!             I  : Interp_Index;
!             It : Interp;
! 
!          begin
!             T1 := Any_Type;
!             Get_First_Interp (Lhs, I, It);
  
!             while Present (It.Typ) loop
  
!                --  An indexed component with generalized indexing is always
!                --  overloaded with the corresponding dereference. Discard the
!                --  interpretation that yields a reference type, which is not
!                --  assignable.
  
!                if Nkind (Lhs) = N_Indexed_Component
!                  and then Present (Generalized_Indexing (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;
!                   else
!                      --  An explicit dereference is overloaded if the prefix
!                      --  is. Try to remove the ambiguity on the prefix, the
!                      --  error will be posted there if the ambiguity is real.
  
!                      if Nkind (Lhs) = N_Explicit_Dereference then
!                         declare
!                            PI    : Interp_Index;
!                            PI1   : Interp_Index := 0;
!                            PIt   : Interp;
!                            Found : Boolean;
  
!                         begin
!                            Found := False;
!                            Get_First_Interp (Prefix (Lhs), PI, PIt);
  
!                            while Present (PIt.Typ) loop
!                               if Is_Access_Type (PIt.Typ)
!                                 and then Has_Compatible_Type
!                                            (Rhs, Designated_Type (PIt.Typ))
!                               then
!                                  if Found then
!                                     PIt :=
!                                       Disambiguate (Prefix (Lhs),
!                                         PI1, PI, Any_Type);
  
-                                     if PIt = No_Interp then
-                                        Error_Msg_N
-                                          ("ambiguous left-hand side in "
-                                           & "assignment", Lhs);
                                         exit;
                                      else
!                                        Resolve (Prefix (Lhs), PIt.Typ);
                                      end if;
- 
-                                     exit;
-                                  else
-                                     Found := True;
-                                     PI1 := PI;
                                   end if;
-                               end if;
  
!                               Get_Next_Interp (PI, PIt);
!                            end loop;
!                         end;
  
!                      else
!                         Error_Msg_N
!                           ("ambiguous left-hand side in assignment", Lhs);
!                         exit;
                       end if;
                    end if;
-                end if;
  
!                Get_Next_Interp (I, It);
!             end loop;
!          end;
  
           if T1 = Any_Type then
              Error_Msg_N
--- 431,581 ----
  
        T1 := Etype (Lhs);
  
+       if not Is_Overloaded (Lhs) then
+          Analyze (Rhs);
+ 
        --  In the most general case, both Lhs and Rhs can be overloaded, and we
        --  must compute the intersection of the possible types on each side.
+       --  Note that only nonlimited interpretations are considered (see
+       --  AI22-0112, RM 5.2(4/6)).
  
!       else
!          --  When there are target names ("@") present in the expression,
!          --  the assignment's left-hand side must be resolved as a complete
!          --  context (RM 8.6(9.1/5)), and the determined type will then be used
!          --  to resolve the right-hand side expression.
  
!          if Has_Target_Names (N) then
!             declare
!                I  : Interp_Index;
!                It : Interp;
  
!             begin
!                T1 := Any_Type;
!                Get_First_Interp (Lhs, I, It);
  
!                while Present (It.Typ) loop
!                   --  AI22-0112 restores the Ada 95 rule that excludes limited
!                   --  types from consideration during resolution of the target
!                   --  variable in assignment statements.
  
!                   if Is_Limited_Type (It.Typ) then
!                      if not Has_Implicit_Dereference (It.Typ) then
!                         Remove_Interp (I);
!                      end if;
!                   elsif T1 = Any_Type then
                       T1 := It.Typ;
!                   end if;
  
!                   Get_Next_Interp (I, It);
!                end loop;
  
!                if Is_Ambiguous_Operand (Lhs, Report_Errors  => False) then
!                   Error_Msg_N ("ambiguous left-hand side in assignment", Lhs);
  
!                   Kill_Lhs;
!                   goto Leave;
!                end if;
! 
!                if T1 = Any_Type then
!                   Error_Msg_N
!                     ("no valid types for left-hand side for assignment", Lhs);
!                   Kill_Lhs;
!                   goto Leave;
!                end if;
! 
!             end;
! 
!             --  We delay analyzing Rhs until Lhs has been resolved, so that the
!             --  type of Lhs has been determined and can be used for the type of
!             --  target names occurring in Rhs.
! 
!             Analyze (Rhs);
! 
!          --  Case where Lhs is overloaded, but Rhs does not have target names
! 
!          else
!             Analyze (Rhs);
! 
!             declare
!                I  : Interp_Index;
!                It : Interp;
! 
!             begin
!                T1 := Any_Type;
!                Get_First_Interp (Lhs, I, It);
! 
!                while Present (It.Typ) loop
!                   --  AI22-0112 restores the Ada 95 rule that excludes limited
!                   --  types from consideration during resolution of the target
!                   --  variable in assignment statements.
! 
!                   if Is_Limited_Type (It.Typ) then
!                      if not Has_Implicit_Dereference (It.Typ) then
!                         Remove_Interp (I);
!                      end if;
! 
!                   elsif Has_Compatible_Type (Rhs, It.Typ) then
!                      if T1 = Any_Type then
!                         T1 := It.Typ;
!                      else
!                         --  An explicit dereference is overloaded if the prefix
!                         --  is. Try to remove the ambiguity on the prefix, the
!                         --  error will be posted there if ambiguity is real.
! 
!                         if Nkind (Lhs) = N_Explicit_Dereference then
!                            declare
!                               PI    : Interp_Index;
!                               PI1   : Interp_Index := 0;
!                               PIt   : Interp;
!                               Found : Boolean;
! 
!                            begin
!                               Found := False;
!                               Get_First_Interp (Prefix (Lhs), PI, PIt);
! 
!                               while Present (PIt.Typ) loop
!                                  if Is_Access_Type (PIt.Typ)
!                                    and then Has_Compatible_Type
!                                               (Rhs, Designated_Type (PIt.Typ))
!                                  then
!                                     if Found then
!                                        PIt :=
!                                          Disambiguate (Prefix (Lhs),
!                                            PI1, PI, Any_Type);
! 
!                                        if PIt = No_Interp then
!                                           Error_Msg_N
!                                             ("ambiguous left-hand side in "
!                                              & "assignment", Lhs);
!                                           exit;
!                                        else
!                                           Resolve (Prefix (Lhs), PIt.Typ);
!                                        end if;
  
                                         exit;
                                      else
!                                        Found := True;
!                                        PI1 := PI;
                                      end if;
                                   end if;
  
!                                  Get_Next_Interp (PI, PIt);
!                               end loop;
!                            end;
  
!                         else
!                            Error_Msg_N
!                              ("ambiguous left-hand side in assignment", Lhs);
!                            exit;
!                         end if;
                       end if;
                    end if;
  
!                   Get_Next_Interp (I, It);
!                end loop;
!             end;
!          end if;
  
           if T1 = Any_Type then
              Error_Msg_N
*************** package body Sem_Ch5 is
*** 534,540 ****
        if In_Inlined_Body then
           null;
  
!       elsif not Is_Variable (Lhs) then
  
           --  Ada 2005 (AI-327): Check assignment to the attribute Priority of a
           --  protected object.
--- 596,606 ----
        if In_Inlined_Body then
           null;
  
!       elsif not Is_Variable (Lhs)
!         and then not (not Comes_From_Source (Lhs)
!                        and then Nkind (Lhs) in N_Has_Etype
!                        and then Needs_Construction (Etype (Lhs)))
!       then
  
           --  Ada 2005 (AI-327): Check assignment to the attribute Priority of a
           --  protected object.
*************** package body Sem_Ch5 is
*** 608,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
  
--- 674,686 ----
        --  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
!       --  constructor calls or 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)
        then
           --  CPP constructors can only be called in declarations
  
*************** package body Sem_Ch5 is
*** 797,803 ****
  
        if Is_Tag_Indeterminate (Rhs) then
           if Is_Class_Wide_Type (T1) then
!             Propagate_Tag (Lhs, Rhs);
  
           elsif Nkind (Rhs) = N_Function_Call
             and then Is_Entity_Name (Name (Rhs))
--- 864,877 ----
  
        if Is_Tag_Indeterminate (Rhs) then
           if Is_Class_Wide_Type (T1) then
! 
!             --  No need to propagate the tag when the RHS has function calls
!             --  that already propagated it (see Expand_Call_Helper), or if
!             --  some error was reported analyzing RHS.
! 
!             if not (Error_Posted (Rhs) or else Tag_Propagated (Lhs)) then
!                Propagate_Tag (Lhs, Rhs);
!             end if;
  
           elsif Nkind (Rhs) = N_Function_Call
             and then Is_Entity_Name (Name (Rhs))
*************** package body Sem_Ch5 is
*** 1176,1182 ****
        Analyze_Dimension (N);
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
  
        --  If the right-hand side contains target names, expansion has been
        --  disabled to prevent expansion that might move target names out of
--- 1250,1256 ----
        Analyze_Dimension (N);
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
  
        --  If the right-hand side contains target names, expansion has been
        --  disabled to prevent expansion that might move target names out of
*************** package body Sem_Ch5 is
*** 1659,1776 ****
        end if;
     end Analyze_Case_Statement;
  
!    ----------------------------
!    -- Analyze_Exit_Statement --
!    ----------------------------
  
!    --  If the exit includes a name, it must be the name of a currently open
!    --  loop. Otherwise there must be an innermost open loop on the stack, to
!    --  which the statement implicitly refers.
  
!    --  Additionally, in SPARK mode:
  
!    --    The exit can only name the closest enclosing loop;
  
!    --    An exit with a when clause must be directly contained in a loop;
  
!    --    An exit without a when clause must be directly contained in an
!    --    if-statement with no elsif or else, which is itself directly contained
!    --    in a loop. The exit must be the last statement in the if-statement.
  
!    procedure Analyze_Exit_Statement (N : Node_Id) is
!       Target   : constant Node_Id := Name (N);
!       Cond     : constant Node_Id := Condition (N);
!       Scope_Id : Entity_Id := Empty;  -- initialize to prevent warning
!       U_Name   : Entity_Id;
!       Kind     : Entity_Kind;
  
!    begin
!       if No (Cond) then
!          Check_Unreachable_Code (N);
!       end if;
  
!       if Present (Target) then
!          Analyze (Target);
!          U_Name := Entity (Target);
  
!          if not In_Open_Scopes (U_Name) or else Ekind (U_Name) /= E_Loop then
!             Error_Msg_N ("invalid loop name in exit statement", N);
!             return;
  
!          else
!             Set_Has_Exit (U_Name);
!          end if;
  
!       else
!          U_Name := Empty;
!       end if;
  
!       for J in reverse 0 .. Scope_Stack.Last loop
!          Scope_Id := Scope_Stack.Table (J).Entity;
!          Kind := Ekind (Scope_Id);
  
!          if Kind = E_Loop and then (No (Target) or else Scope_Id = U_Name) then
!             Set_Has_Exit (Scope_Id);
!             exit;
  
!          elsif Kind = E_Block
!            or else Kind = E_Loop
!            or else Kind = E_Return_Statement
!          then
!             null;
  
!          else
!             Error_Msg_N
!               ("cannot exit from program unit or accept statement", N);
!             return;
!          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
!          Analyze_And_Resolve (Cond, Any_Boolean);
!          Check_Unset_Reference (Cond);
!       end if;
  
!       --  Chain exit statement to associated loop entity
  
!       Set_Next_Exit_Statement  (N, First_Exit_Statement (Scope_Id));
!       Set_First_Exit_Statement (Scope_Id, N);
  
!       --  Since the exit may take us out of a loop, any previous assignment
!       --  statement is not useless, so clear last assignment indications. It
!       --  is OK to keep other current values, since if the exit statement
!       --  does not exit, then the current values are still valid.
  
!       Kill_Current_Values (Last_Assignment_Only => True);
     end Analyze_Exit_Statement;
  
     ----------------------------
--- 1733,1878 ----
        end if;
     end Analyze_Case_Statement;
  
!    --------------------------------
!    -- Analyze_Continue_Statement --
!    --------------------------------
  
!    procedure Analyze_Continue_Statement (N : Node_Id) is
!       Ignore_Errors_On_Entry : constant Boolean := Get_Ignore_Errors;
  
!       Loc : constant Source_Ptr := Sloc (N);
  
!       Nam : constant Node_Id := Name (N);
!       Cond : constant Node_Id := Condition (N);
  
!       function Make_Call return N_Procedure_Call_Statement_Id;
!       --  Build a node that corresponds to the procedure call interpretation of
!       --  N.
  
!       function Make_Stmt return N_Continue_Statement_Id;
!       --  Build a node that corresponds to the continue statement
!       --  interpretation of N.
  
!       function Make_Call return N_Procedure_Call_Statement_Id is
!          Id : constant Node_Id := Make_Identifier (Loc, Name_Continue);
!          X : constant N_Procedure_Call_Statement_Id :=
!            Make_Procedure_Call_Statement (Loc, Id);
!       begin
!          --  If we settle for the procedure call interpretation, we set
!          --  Comes_From_Source since the user did type out the call explicitly.
!          Set_Comes_From_Source (Id);
!          Set_Comes_From_Source (X);
!          return X;
!       end Make_Call;
  
!       function Make_Stmt return N_Continue_Statement_Id is
!       begin
!          return Make_Continue_Statement (Loc, Nam, Cond);
!       end Make_Stmt;
  
!       Continue_Is_Available : constant Boolean :=
!         Ada_Version = Ada_With_All_Extensions;
  
!       Maybe_Procedure_Call : constant Boolean :=
!         No (Name (N)) and then No (Condition (N));
!    begin
!       if Maybe_Procedure_Call and then Continue_Is_Available then
!          --  This is the tricky case. The idea is to do a kind of overload
!          --  resolution of a procedure call, but with "continue statement" as
!          --  an additional possible interpretation. To achieve this, we
!          --  temporarily replace N with a procedure call statement and analyze
!          --  it in "ignore errors" mode.
!          Replace (N, Make_Call);
!          Set_Ignore_Errors (True);
!          Analyze (N);
!          Set_Ignore_Errors (Ignore_Errors_On_Entry);
  
!          declare
!             C : constant N_Procedure_Call_Statement_Id := New_Copy (N);
!             --  C is the result of our procedure call interpretation analysis
!          begin
!             --  We restore N to a continue statement
!             Replace (N, Make_Stmt);
  
!             if Is_Overloaded (Name (C)) then
!                --  There are multiple valid procedure call interpretations; we
!                --  don't mention the possible interpretation as a continue
!                --  statement for now. It might be possible to add this in the
!                --  future.
  
!                Set_Call_Or_Target_Loop (N, Make_Call);
!             elsif Etype (C) = Any_Type then
!                --  There is no valid procedure call interpretation. We go for
!                --  the continue statement interpretation. It might not be valid
!                --  either, but we make the assumption that the user meant to
!                --  write a continue statement and not a procedure call and emit
!                --  error messages accordingly.
  
!                Set_Call_Or_Target_Loop (N, Analyze_Loop_Flow_Statement (N));
!             else
!                --  There is a unique valid procedure call interpretation. We
!                --  test whether the interpretation as a continue statement is
!                --  valid.
  
!                declare
!                   L : Opt_E_Loop_Id;
!                begin
!                   Set_Ignore_Errors (True);
!                   L := Analyze_Loop_Flow_Statement (N);
!                   Set_Ignore_Errors (Ignore_Errors_On_Entry);
  
!                   if Present (L) then
!                      --  If the continue statement interpretation makes sense,
!                      --  we post an ad hoc ambiguity error.
!                      Error_Msg_N
!                        ("ambiguity between continue statement and call", N);
!                   else
!                      Set_Call_Or_Target_Loop (N, Make_Call);
!                   end if;
!                end;
!             end if;
!          end;
!       elsif Maybe_Procedure_Call then
!          Set_Call_Or_Target_Loop (N, Make_Call);
!       elsif Continue_Is_Available then
!          Set_Call_Or_Target_Loop (N, Analyze_Loop_Flow_Statement (N));
!       else
!          Error_Msg_GNAT_Extension
!            (Extension         => "continue",
!             Loc               => Sloc (N),
!             Is_Core_Extension => False);
!       end if;
!    end Analyze_Continue_Statement;
  
!    ----------------------------
!    -- Analyze_Exit_Statement --
!    ----------------------------
  
!    --  If the exit includes a name, it must be the name of a currently open
!    --  loop. Otherwise there must be an innermost open loop on the stack, to
!    --  which the statement implicitly refers.
  
!    --  Additionally, in SPARK mode:
  
!    --    The exit can only name the closest enclosing loop;
  
!    --    An exit with a when clause must be directly contained in a loop;
  
!    --    An exit without a when clause must be directly contained in an
!    --    if-statement with no elsif or else, which is itself directly contained
!    --    in a loop. The exit must be the last statement in the if-statement.
  
!    procedure Analyze_Exit_Statement (N : Node_Id) is
!       L : constant Opt_E_Loop_Id := Analyze_Loop_Flow_Statement (N);
!    begin
!       if Present (L) then
!          Set_Has_Exit (L);
  
!          --  Chain exit statement to associated loop entity
! 
!          Set_Next_Exit_Statement (N, First_Exit_Statement (L));
!          Set_First_Exit_Statement (L, N);
!       end if;
     end Analyze_Exit_Statement;
  
     ----------------------------
*************** package body Sem_Ch5 is
*** 2068,2074 ****
        --  A label declared within a Ghost region becomes Ghost (SPARK RM
        --  6.9(2)).
  
!       if Ghost_Mode > None then
           Set_Is_Ghost_Entity (Id);
        end if;
     end Analyze_Implicit_Label_Declaration;
--- 2170,2176 ----
        --  A label declared within a Ghost region becomes Ghost (SPARK RM
        --  6.9(2)).
  
!       if Ghost_Config.Ghost_Mode > None then
           Set_Is_Ghost_Entity (Id);
        end if;
     end Analyze_Implicit_Label_Declaration;
*************** package body Sem_Ch5 is
*** 2116,2122 ****
--- 2218,2227 ----
        Loc       : constant Source_Ptr := Sloc (N);
        Subt      : constant Node_Id    := Subtype_Indication (N);
  
+       Assoc : Node_Id;
        Bas : Entity_Id := Empty;  -- initialize to prevent warning
+       Iter_Asp  : Node_Id;
+       Iter_Func : Node_Id;
        Typ : Entity_Id;
  
        procedure Check_Reverse_Iteration (Typ : Entity_Id);
*************** package body Sem_Ch5 is
*** 2826,2837 ****
              --  in the container package. We obtain it by name for a predefined
              --  container, or through the Iterable aspect for a formal one.
  
!             if Has_Aspect (Typ, Aspect_Iterable) then
!                Set_Etype (Def_Id,
!                  Get_Cursor_Type
!                    (Parent (Find_Value_Of_Aspect (Typ, Aspect_Iterable)),
!                     Typ));
! 
              else
                 Set_Etype (Def_Id, Get_Cursor_Type (Typ));
                 Check_Reverse_Iteration (Etype (Iter_Name));
--- 2931,2939 ----
              --  in the container package. We obtain it by name for a predefined
              --  container, or through the Iterable aspect for a formal one.
  
!             Iter_Asp := Find_Aspect (Typ, Aspect_Iterable);
!             if Present (Iter_Asp) then
!                Set_Etype (Def_Id, Get_Cursor_Type (Iter_Asp, Typ));
              else
                 Set_Etype (Def_Id, Get_Cursor_Type (Typ));
                 Check_Reverse_Iteration (Etype (Iter_Name));
*************** package body Sem_Ch5 is
*** 2840,2845 ****
--- 2942,2966 ----
           end if;
        end if;
  
+       --  Validate the ghost context of he iterator function used for the
+       --  iterable aspect.
+ 
+       Iter_Asp := Find_Aspect (Typ, Aspect_Iterable);
+       if Present (Iter_Asp) then
+          Assoc := First (Component_Associations (Expression (Iter_Asp)));
+          while Present (Assoc) loop
+             Iter_Func := Expression (Assoc);
+             if Nkind (Iter_Func) in N_Has_Entity
+                and then Present (Entity (Iter_Func))
+                and then Is_Ghost_Entity (Entity (Iter_Func))
+             then
+                Check_Ghost_Context (Entity (Iter_Func), Parent (N));
+             end if;
+ 
+             Next (Assoc);
+          end loop;
+       end if;
+ 
        --  Preanalyze the filter. Expansion will take place when enclosing
        --  loop is expanded.
  
*************** package body Sem_Ch5 is
*** 3145,3150 ****
--- 3266,3272 ----
     --  Start of processing for Analyze_Loop_Parameter_Specification
  
     begin
+       Mutate_Ekind (Id, E_Loop_Parameter);
        Enter_Name (Id);
  
        --  We always consider the loop variable to be referenced, since the loop
*************** package body Sem_Ch5 is
*** 3250,3256 ****
                 --  subsequent analysis of the condition in a quantified
                 --  expression.
  
-                Mutate_Ekind (Id, E_Loop_Parameter);
                 return;
              end;
  
--- 3372,3377 ----
*************** package body Sem_Ch5 is
*** 3313,3319 ****
           Make_Index (DS, N);
        end if;
  
-       Mutate_Ekind (Id, E_Loop_Parameter);
        Set_Etype (Id, Etype (DS));
  
        Set_Is_Not_Self_Hidden (Id);
--- 3434,3439 ----
*************** package body Sem_Ch5 is
*** 3557,3566 ****
     ----------------------------
  
     procedure Analyze_Loop_Statement (N : Node_Id) is
- 
-       --  The following exception is raised by routine Prepare_Loop_Statement
-       --  to avoid further analysis of a transformed loop.
- 
        procedure Prepare_Loop_Statement
          (Iter            : Node_Id;
           Stop_Processing : out Boolean);
--- 3677,3682 ----
*************** package body Sem_Ch5 is
*** 3998,4003 ****
--- 4114,4131 ----
           Set_Has_Created_Identifier (N);
        end if;
  
+       if No (Continue_Mark (Ent)) then
+          --  If Continue_Mark wasn't set on the loop entity, we know that N
+          --  does not come from the expansion of iterators that append
+          --  statements to advance the loop, so right after the last statement
+          --  in the list is where continue statements must jump to.
+          Set_Continue_Mark (Ent, Last (Statements (N)));
+       else
+          --  Otherwise, N somehow derives from another loop statement, the
+          --  analysis of which set Continue_Mark adequately already.
+          null;
+       end if;
+ 
        --  Determine whether the loop statement must be transformed prior to
        --  analysis, and if so, perform it. This early modification is needed
        --  when:
*************** package body Sem_Ch5 is
*** 4207,4212 ****
--- 4335,4439 ----
        end if;
     end Analyze_Loop_Statement;
  
+    ---------------------------------
+    -- Analyze_Loop_Flow_Statement --
+    ---------------------------------
+ 
+    function Analyze_Loop_Flow_Statement
+      (N : N_Loop_Flow_Statement_Id) return Opt_E_Loop_Id
+    is
+       Target   : constant Node_Id := Name (N);
+       Cond     : constant Node_Id := Condition (N);
+       Scope_Id : Entity_Id := Empty;
+       U_Name   : Entity_Id;
+       Kind     : Entity_Kind;
+ 
+       S : constant String := Loop_Flow_Keyword (N);
+    begin
+       if No (Cond) then
+          Check_Unreachable_Code (N);
+       end if;
+ 
+       if Present (Target) then
+          Analyze (Target);
+          U_Name := Entity (Target);
+ 
+          if not In_Open_Scopes (U_Name) or else Ekind (U_Name) /= E_Loop then
+             Error_Msg_N ("invalid loop name in " & S & " statement", N);
+             return Empty;
+          end if;
+ 
+       else
+          U_Name := Empty;
+       end if;
+ 
+       for J in reverse 0 .. Scope_Stack.Last loop
+          Scope_Id := Scope_Stack.Table (J).Entity;
+          Kind := Ekind (Scope_Id);
+ 
+          if Kind = E_Loop and then (No (Target) or else Scope_Id = U_Name) then
+             exit;
+ 
+          elsif Kind = E_Block
+            or else Kind = E_Loop
+            or else Kind = E_Return_Statement
+          then
+             null;
+ 
+          else
+             Error_Msg_N
+               ("cannot " & S & " from program unit or accept statement", N);
+             return Empty;
+          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 " & S & " 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
+          Analyze_And_Resolve (Cond, Any_Boolean);
+          Check_Unset_Reference (Cond);
+       end if;
+ 
+       --  Since the statement may take us out of the current iteration of the
+       --  loop, any previous assignment statement is not useless, so clear last
+       --  assignment indications. It is OK to keep other current values, since
+       --  if the statement does not stop the current iteration, then the
+       --  current values are still valid.
+ 
+       Kill_Current_Values (Last_Assignment_Only => True);
+ 
+       return Scope_Id;
+    end Analyze_Loop_Flow_Statement;
+ 
     ----------------------------
     -- Analyze_Null_Statement --
     ----------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch5.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch5.ads
*** gcc-15.2.0/gcc/ada/sem_ch5.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch5.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Ch5 is
*** 31,36 ****
--- 31,37 ----
     procedure Analyze_Block_Statement              (N : Node_Id);
     procedure Analyze_Case_Statement               (N : Node_Id);
     procedure Analyze_Compound_Statement           (N : Node_Id);
+    procedure Analyze_Continue_Statement           (N : Node_Id);
     procedure Analyze_Exit_Statement               (N : Node_Id);
     procedure Analyze_Goto_Statement               (N : Node_Id);
     procedure Analyze_Goto_When_Statement          (N : Node_Id);
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch6.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch6.adb
*** gcc-15.2.0/gcc/ada/sem_ch6.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch6.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  with Checks;         use Checks;
  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 Elists;         use Elists;
--- 29,34 ----
*************** with Sem_Type;       use Sem_Type;
*** 81,87 ****
  with Sem_Warn;       use Sem_Warn;
  with Sinput;         use Sinput;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 80,85 ----
*************** package body Sem_Ch6 is
*** 225,231 ****
     --  Create the declaration for an inequality operator that is implicitly
     --  created by a user-defined equality operator that yields a boolean.
  
!    procedure Set_Formal_Mode (Formal_Id : Entity_Id);
     --  Set proper Ekind to reflect formal mode (in, out, in out), and set
     --  miscellaneous other attributes.
  
--- 223,232 ----
     --  Create the declaration for an inequality operator that is implicitly
     --  created by a user-defined equality operator that yields a boolean.
  
!    procedure Set_Formal_Mode
!      (Formal_Id : Entity_Id;
!       Spec      : N_Parameter_Specification_Id;
!       Subp_Id   : Entity_Id);
     --  Set proper Ekind to reflect formal mode (in, out, in out), and set
     --  miscellaneous other attributes.
  
*************** package body Sem_Ch6 is
*** 433,443 ****
--- 434,453 ----
  
              Set_Parent (New_Body, Parent (N));
  
+             --  Disable Ghost checks for this early analysis on the expression.
+             --  We have not analyzed the new body of the expression function
+             --  yet so the ghost region is not set up properly for the ghost
+             --  context checks yet. Avoid the checks for now as the expression
+             --  will be re-analyzed when the expression function is replaced
+             --  with the function body.
+ 
+             Ghost_Context_Checks_Disabled := True;
              Freeze_Expr_Types
                (Def_Id => Def_Id,
                 Typ    => Typ,
                 Expr   => Expr,
                 N      => N);
+             Ghost_Context_Checks_Disabled := False;
           end if;
  
           --  For navigation purposes, indicate that the function is a body
*************** package body Sem_Ch6 is
*** 452,458 ****
  
           --  Propagate any pragmas that apply to expression function to the
           --  proper body when the expression function acts as a completion.
!          --  Aspects are automatically transfered because of node rewriting.
  
           Relocate_Pragmas_To_Body (N);
           Analyze (N);
--- 462,468 ----
  
           --  Propagate any pragmas that apply to expression function to the
           --  proper body when the expression function acts as a completion.
!          --  Aspects are automatically transferred because of node rewriting.
  
           Relocate_Pragmas_To_Body (N);
           Analyze (N);
*************** package body Sem_Ch6 is
*** 578,596 ****
           --  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
--- 588,612 ----
           --  Ghost subprogram.
  
           if Inside_A_Generic then
!             Set_Has_Completion
!               (Def_Id, not Is_Ignored_Ghost_Entity_In_Codegen (Def_Id));
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_And_Resolve_Spec_Expression (Expr, Typ);
              End_Scope;
           else
              Push_Scope (Def_Id);
              Install_Formals (Def_Id);
!             Preanalyze_And_Resolve_Spec_Expression (Expr, Typ);
              Check_Limited_Return (Orig_N, Expr, Typ);
              End_Scope;
           end if;
  
+          if Is_Incomplete_Type (Typ) then
+             Error_Msg_NE
+               ("premature usage of incomplete}", Expr, First_Subtype (Typ));
+          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
*** 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
--- 633,639 ----
                    begin
                       Set_Checking_Potentially_Static_Expression (True);
  
!                      Preanalyze_And_Resolve_Spec_Expression (Exp_Copy, Typ);
  
                       if not Is_Static_Expression (Exp_Copy) then
                          Error_Msg_N
*************** package body Sem_Ch6 is
*** 868,873 ****
--- 884,891 ----
                                        Designated_Type (Etype (Expr)))
              then
                 Rewrite (Expr, Convert_To (R_Type, Relocate_Node (Expr)));
+                Flag_Interface_Pointer_Displacement (Expr);
+ 
                 Analyze (Expr);
              end if;
  
*************** package body Sem_Ch6 is
*** 1364,1371 ****
        Loc  : constant Source_Ptr := Sloc (N);
        Spec : constant Node_Id    := Specification (N);
  
!       Saved_GM   : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR  : constant Node_Id         := Ignored_Ghost_Region;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        --  Save the Ghost and SPARK mode-related data to restore on exit
--- 1382,1388 ----
        Loc  : constant Source_Ptr := Sloc (N);
        Spec : constant Node_Id    := Specification (N);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
        --  Save the Ghost and SPARK mode-related data to restore on exit
*************** package body Sem_Ch6 is
*** 1521,1527 ****
  
     <<Leave>>
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Null_Procedure;
  
     -----------------------------
--- 1538,1544 ----
  
     <<Leave>>
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Null_Procedure;
  
     -----------------------------
*************** package body Sem_Ch6 is
*** 1592,1600 ****
  
     procedure Analyze_Procedure_Call (N : Node_Id) is
        procedure Analyze_Call_And_Resolve;
!       --  Do Analyze and Resolve calls for procedure call. At the end, check
!       --  for illegal order dependence.
!       --  ??? where is the check for illegal order dependencies?
  
        ------------------------------
        -- Analyze_Call_And_Resolve --
--- 1609,1615 ----
  
     procedure Analyze_Procedure_Call (N : Node_Id) is
        procedure Analyze_Call_And_Resolve;
!       --  Do Analyze and Resolve for procedure call
  
        ------------------------------
        -- Analyze_Call_And_Resolve --
*************** package body Sem_Ch6 is
*** 1602,1613 ****
  
        procedure Analyze_Call_And_Resolve is
        begin
!          if Nkind (N) = N_Procedure_Call_Statement then
!             Analyze_Call (N);
!             Resolve (N, Standard_Void_Type);
!          else
!             Analyze (N);
!          end if;
        end Analyze_Call_And_Resolve;
  
        --  Local variables
--- 1617,1624 ----
  
        procedure Analyze_Call_And_Resolve is
        begin
!          Analyze_Call (N);
!          Resolve (N, Standard_Void_Type);
        end Analyze_Call_And_Resolve;
  
        --  Local variables
*************** package body Sem_Ch6 is
*** 1616,1623 ****
        Loc     : constant Source_Ptr := Sloc (N);
        P       : constant Node_Id    := Name (N);
  
!       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
  
        Actual : Node_Id;
--- 1627,1633 ----
        Loc     : constant Source_Ptr := Sloc (N);
        P       : constant Node_Id    := Name (N);
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Actual : Node_Id;
*************** package body Sem_Ch6 is
*** 1882,1888 ****
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Procedure_Call;
  
     ------------------------------
--- 1892,1899 ----
        end if;
  
     <<Leave>>
!       Restore_Ghost_Region (Saved_Ghost_Config);
!       Check_Procedure_Call_Argument_Levels (N);
     end Analyze_Procedure_Call;
  
     ------------------------------
*************** package body Sem_Ch6 is
*** 2270,2275 ****
--- 2281,2303 ----
        end if;
  
        Formal := First_Formal (Spec_Id);
+ 
+       --  The first parameter of a borrowing traversal function might be an IN
+       --  or an IN OUT parameter.
+ 
+       if Present (Formal)
+         and then Ekind (Etype (Spec_Id)) = E_Anonymous_Access_Type
+         and then not Is_Access_Constant (Etype (Spec_Id))
+       then
+          if Ekind (Formal) = E_Out_Parameter then
+             Error_Msg_Code := GEC_Out_Parameter_In_Function;
+             Error_Msg_N
+               ("first parameter of traversal function cannot have mode `OUT` "
+                & "in SPARK '[[]']", Formal);
+          end if;
+          Next_Formal (Formal);
+       end if;
+ 
        while Present (Formal) loop
           if Ekind (Spec_Id) in E_Function | E_Generic_Function
             and then not Is_Function_With_Side_Effects (Spec_Id)
*************** package body Sem_Ch6 is
*** 2398,2408 ****
        procedure Build_Subprogram_Declaration;
        --  Create a matching subprogram declaration for subprogram body N
  
!       procedure Check_Anonymous_Return;
!       --  Ada 2005: if a function returns an access type that denotes a task,
!       --  or a type that contains tasks, we must create a master entity for
!       --  the anonymous type, which typically will be used in an allocator
!       --  in the body of the function.
  
        procedure Check_Inline_Pragma (Spec : in out Node_Id);
        --  Look ahead to recognize a pragma that may appear after the body.
--- 2426,2436 ----
        procedure Build_Subprogram_Declaration;
        --  Create a matching subprogram declaration for subprogram body N
  
!       procedure Check_Anonymous_Access_Return_With_Tasks;
!       --  If a function returns an anonymous access type that designates a task
!       --  or a type that contains tasks, create a master entity in the function
!       --  for the anonymous access type, and also mark the construct enclosing
!       --  the function as a task master.
  
        procedure Check_Inline_Pragma (Spec : in out Node_Id);
        --  Look ahead to recognize a pragma that may appear after the body.
*************** package body Sem_Ch6 is
*** 2759,2771 ****
           Body_Id := Analyze_Subprogram_Specification (Body_Spec);
        end Build_Subprogram_Declaration;
  
!       ----------------------------
!       -- Check_Anonymous_Return --
!       ----------------------------
  
!       procedure Check_Anonymous_Return is
           Decl : Node_Id;
-          Par  : Node_Id;
           Scop : Entity_Id;
  
        begin
--- 2787,2798 ----
           Body_Id := Analyze_Subprogram_Specification (Body_Spec);
        end Build_Subprogram_Declaration;
  
!       ----------------------------------------------
!       -- Check_Anonymous_Access_Return_With_Tasks --
!       ----------------------------------------------
  
!       procedure Check_Anonymous_Access_Return_With_Tasks is
           Decl : Node_Id;
           Scop : Entity_Id;
  
        begin
*************** package body Sem_Ch6 is
*** 2801,2829 ****
                 Set_Declarations (N, New_List (Decl));
              end if;
  
-             Set_Master_Id (Etype (Scop), Defining_Identifier (Decl));
              Set_Has_Master_Entity (Scop);
  
!             --  Now mark the containing scope as a task master
! 
!             Par := N;
!             while Nkind (Par) /= N_Compilation_Unit loop
!                Par := Parent (Par);
!                pragma Assert (Present (Par));
! 
!                --  If we fall off the top, we are at the outer level, and
!                --  the environment task is our effective master, so nothing
!                --  to mark.
  
!                if Nkind (Par)
!                     in N_Task_Body | N_Block_Statement | N_Subprogram_Body
!                then
!                   Set_Is_Task_Master (Par, True);
!                   exit;
!                end if;
!             end loop;
           end if;
!       end Check_Anonymous_Return;
  
        -------------------------
        -- Check_Inline_Pragma --
--- 2828,2841 ----
                 Set_Declarations (N, New_List (Decl));
              end if;
  
              Set_Has_Master_Entity (Scop);
+             Set_Master_Id (Etype (Scop), Defining_Identifier (Decl));
  
!             --  Now mark the enclosing construct as a task master
  
!             Mark_Construct_As_Task_Master (Parent (N));
           end if;
!       end Check_Anonymous_Access_Return_With_Tasks;
  
        -------------------------
        -- Check_Inline_Pragma --
*************** package body Sem_Ch6 is
*** 3583,3590 ****
  
        --  Local variables
  
!       Saved_GM   : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR  : constant Node_Id         := Ignored_Ghost_Region;
        Saved_EA   : constant Boolean         := Expander_Active;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
--- 3595,3601 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_EA   : constant Boolean         := Expander_Active;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
*************** package body Sem_Ch6 is
*** 3811,3817 ****
        --  user entities, as internally generated entitities might still need
        --  to be expanded (e.g. those generated for types).
  
!       if Present (Ignored_Ghost_Region)
          and then Comes_From_Source (Body_Id)
        then
           Expander_Active := False;
--- 3822,3829 ----
        --  user entities, as internally generated entitities might still need
        --  to be expanded (e.g. those generated for types).
  
!       if not CodePeer_Mode
!         and then Present (Ghost_Config.Ignored_Ghost_Region)
          and then Comes_From_Source (Body_Id)
        then
           Expander_Active := False;
*************** package body Sem_Ch6 is
*** 3839,3847 ****
           Spec_Id := Build_Internal_Protected_Declaration (N);
        end if;
  
!       --  If a separate spec is present, then deal with freezing issues
  
!       if Present (Spec_Id) then
           Spec_Decl := Unit_Declaration_Node (Spec_Id);
           Verify_Overriding_Indicator;
  
--- 3851,3864 ----
           Spec_Id := Build_Internal_Protected_Declaration (N);
        end if;
  
!       --  Separate spec is not present
  
!       if No (Spec_Id) then
!          Create_Extra_Formals (Body_Id, Related_Nod => N);
! 
!       --  Separate spec is present; deal with freezing issues
! 
!       else
           Spec_Decl := Unit_Declaration_Node (Spec_Id);
           Verify_Overriding_Indicator;
  
*************** package body Sem_Ch6 is
*** 3856,3862 ****
             and then Is_Build_In_Place_Function (Spec_Id)
             and then not Has_BIP_Formals (Spec_Id)
           then
!             Create_Extra_Formals (Spec_Id);
              Compute_Returns_By_Ref (Spec_Id);
           end if;
  
--- 3873,3881 ----
             and then Is_Build_In_Place_Function (Spec_Id)
             and then not Has_BIP_Formals (Spec_Id)
           then
!             Create_Extra_Formals (Spec_Id, Related_Nod => N);
!             pragma Assert (not Expander_Active
!               or else Extra_Formals_Known (Spec_Id));
              Compute_Returns_By_Ref (Spec_Id);
           end if;
  
*************** package body Sem_Ch6 is
*** 3878,3884 ****
             and then Serious_Errors_Detected = 0
             and then (Expander_Active
                        or else Operating_Mode = Check_Semantics
!                       or else Is_Ignored_Ghost_Entity (Spec_Id))
           then
              --  The body generated for an expression function that is not a
              --  completion is a freeze point neither for the profile nor for
--- 3897,3903 ----
             and then Serious_Errors_Detected = 0
             and then (Expander_Active
                        or else Operating_Mode = Check_Semantics
!                       or else Is_Ignored_Ghost_Entity_In_Codegen (Spec_Id))
           then
              --  The body generated for an expression function that is not a
              --  completion is a freeze point neither for the profile nor for
*************** package body Sem_Ch6 is
*** 3904,3910 ****
             and then Serious_Errors_Detected = 0
           then
              Set_Has_Delayed_Freeze (Spec_Id);
!             Create_Extra_Formals (Spec_Id);
              Freeze_Before (N, Spec_Id);
           end if;
        end if;
--- 3923,3929 ----
             and then Serious_Errors_Detected = 0
           then
              Set_Has_Delayed_Freeze (Spec_Id);
!             Create_Extra_Formals (Spec_Id, Related_Nod => N);
              Freeze_Before (N, Spec_Id);
           end if;
        end if;
*************** package body Sem_Ch6 is
*** 4137,4142 ****
--- 4156,4169 ----
              Style.Body_With_No_Spec (N);
           end if;
  
+          --  Subprograms defined with direct attribute definitions must always
+          --  have separate specs.
+          if Nkind (Defining_Unit_Name (Original_Node (Body_Spec)))
+            = N_Attribute_Reference
+          then
+             Error_Msg_N ("subprogram must have a spec", N);
+          end if;
+ 
           --  First set Acts_As_Spec if appropriate
  
           if Nkind (N) /= N_Subprogram_Body_Stub then
*************** package body Sem_Ch6 is
*** 4433,4439 ****
           Install_Private_With_Clauses (Body_Id);
        end if;
  
!       Check_Anonymous_Return;
  
        --  Set the Protected_Formal field of each extra formal of the protected
        --  subprogram to reference the corresponding extra formal of the
--- 4460,4471 ----
           Install_Private_With_Clauses (Body_Id);
        end if;
  
!       --  If a function returns an anonymous access type that designates a task
!       --  or a type that contains tasks, we must create a master entity for the
!       --  anonymous access type, which typically will be used for an allocator
!       --  in the body of the function.
! 
!       Check_Anonymous_Access_Return_With_Tasks;
  
        --  Set the Protected_Formal field of each extra formal of the protected
        --  subprogram to reference the corresponding extra formal of the
*************** package body Sem_Ch6 is
*** 4581,4587 ****
        Analyze_SPARK_Subprogram_Specification (Specification (N));
  
        --  A function with side effects shall not be an expression function
!       --  (SPARK RM 6.1.11(6)).
  
        if Present (Spec_Id)
          and then (Is_Expression_Function (Spec_Id)
--- 4613,4619 ----
        Analyze_SPARK_Subprogram_Specification (Specification (N));
  
        --  A function with side effects shall not be an expression function
!       --  (SPARK RM 6.1.12(6)).
  
        if Present (Spec_Id)
          and then (Is_Expression_Function (Spec_Id)
*************** package body Sem_Ch6 is
*** 4644,4653 ****
                 --  an incomplete tagged type declaration, get the class-wide
                 --  type of the incomplete tagged type to match Find_Type_Name.
  
!                if Nkind (Parent (Etyp)) = N_Full_Type_Declaration
!                  and then Present (Incomplete_View (Parent (Etyp)))
!                then
!                   Etyp := Class_Wide_Type (Incomplete_View (Parent (Etyp)));
                 end if;
  
                 Set_Directly_Designated_Type (Etype (Spec_Id), Etyp);
--- 4676,4683 ----
                 --  an incomplete tagged type declaration, get the class-wide
                 --  type of the incomplete tagged type to match Find_Type_Name.
  
!                if Present (Incomplete_View (Etype (Etyp))) then
!                   Etyp := Class_Wide_Type (Incomplete_View (Etype (Etyp)));
                 end if;
  
                 Set_Directly_Designated_Type (Etype (Spec_Id), Etyp);
*************** package body Sem_Ch6 is
*** 4992,5003 ****
        end if;
  
     <<Leave>>
!       if Present (Ignored_Ghost_Region) then
           Expander_Active := Saved_EA;
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Subprogram_Body_Helper;
  
     ------------------------------------
--- 5022,5035 ----
        end if;
  
     <<Leave>>
!       if not CodePeer_Mode
!         and then Present (Ghost_Config.Ignored_Ghost_Region)
!       then
           Expander_Active := Saved_EA;
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Subprogram_Body_Helper;
  
     ------------------------------------
*************** package body Sem_Ch6 is
*** 5233,5242 ****
--- 5265,5417 ----
     --  both subprogram bodies and subprogram declarations (specs).
  
     function Analyze_Subprogram_Specification (N : Node_Id) return Entity_Id is
+       procedure Analyze_Direct_Attribute_Definition (Designator : Entity_Id);
+       --  This procedure checks whether the direct attribute definition for N
+       --  is correct for the given attribute name, and analyzes it.
+ 
        function Is_Invariant_Procedure_Or_Body (E : Entity_Id) return Boolean;
        --  Determine whether entity E denotes the spec or body of an invariant
        --  procedure.
  
+       -----------------------------------------
+       -- Analyze_Direct_Attribute_Definition --
+       -----------------------------------------
+ 
+       procedure Analyze_Direct_Attribute_Definition (Designator : Entity_Id) is
+          function Can_Be_Destructor_Of
+            (E : Entity_Id; T : Entity_Id) return Boolean;
+          --  Returns whether E can be declared the destructor of T
+ 
+          --------------------------
+          -- Can_Be_Destructor_Of --
+          --------------------------
+ 
+          function Can_Be_Destructor_Of
+            (E : Entity_Id; T : Entity_Id) return Boolean is
+          begin
+             return
+               Ekind (E) = E_Procedure
+               and then Scope (E) = Scope (T)
+               and then Present (First_Formal (E))
+               and then Ekind (First_Formal (E)) = E_In_Out_Parameter
+               and then Etype (First_Formal (E)) = T
+               and then No (Next_Formal (First_Formal (E)));
+          end Can_Be_Destructor_Of;
+ 
+          --  Local variables
+ 
+          Att_N    : constant Node_Id := Original_Node (N);
+          Prefix_E : constant Entity_Id :=
+            Get_Name_Entity_Id (Chars (Prefix (Defining_Unit_Name (Att_N))));
+          Att_Name : constant Name_Id :=
+            Attribute_Name (Defining_Unit_Name (Att_N));
+ 
+          --  Start of processing for Analyze_Direct_Attribute_Definition
+       begin
+          pragma Assert (N /= Att_N);
+ 
+          if not Is_Direct_Attribute_Definition_Name (Att_Name) then
+             Error_Msg_Name_1 := Att_Name;
+             Error_Msg_N
+               ("direct definition syntax not supported for attribute%",
+                Designator);
+          end if;
+ 
+          --  Handle each kind of attribute separately
+ 
+          case Att_Name is
+ 
+             when Name_Constructor =>
+                Error_Msg_Name_1 := Att_Name;
+ 
+                --  No further action required in a subprogram body
+ 
+                if Parent_Kind (N) not in N_Subprogram_Declaration then
+                   return;
+ 
+                elsif No (Prefix_E) or else not Is_Type (Prefix_E) then
+                   Error_Msg_N
+                     ("prefix& of attribute% must be a type",
+                      Prefix (Defining_Unit_Name (Att_N)));
+ 
+                elsif Ekind (Designator) /= E_Procedure then
+                   Error_Msg_N
+                     ("attribute% can only be specified to a procedure", N);
+ 
+                elsif No (First_Formal (Designator))
+                  or else Etype (First_Formal (Designator)) /= Prefix_E
+                  or else Ekind (First_Formal (Designator))
+                          /= E_In_Out_Parameter
+                then
+                   declare
+                      Problem : constant Source_Ptr :=
+                        (if No (First_Formal (Designator))
+                         then Sloc (N)
+                         else Sloc (First_Formal (Designator)));
+                   begin
+                      Error_Msg_Node_1 := Defining_Unit_Name (Att_N);
+                      Error_Msg_Node_2 := Prefix_E;
+                      Error_Msg
+                        ("& must have a first IN OUT formal of type&", Problem);
+                   end;
+ 
+                elsif Is_Frozen (Prefix_E)
+                  or else Current_Scope /= Scope (Prefix_E)
+                then
+                   Error_Msg_Sloc := Sloc (Freeze_Node (Prefix_E));
+                   Error_Msg_N
+                     ("& must be defined before freezing#", Designator);
+ 
+                elsif Parent_Kind (Enclosing_Package_Or_Subprogram (Designator))
+                  /= N_Package_Specification
+                then
+                   Error_Msg_N
+                     ("& is required to be a primitive operation", Designator);
+ 
+                else
+                   Set_Needs_Construction (Prefix_E);
+                   Set_Is_Constructor (Designator);
+                end if;
+ 
+             when Name_Destructor  =>
+                if Parent_Kind (N) not in N_Subprogram_Declaration then
+                   return;
+                elsif not Is_Record_Type (Prefix_E) then
+                   Error_Msg_N
+                     ("destructors can only be specified for record types",
+                      Designator);
+                   return;
+                elsif not Can_Be_Destructor_Of (Designator, Prefix_E) then
+                   Error_Msg_N
+                     ("destructor must be local procedure whose only formal "
+                      & "parameter has mode `IN OUT` and is of the type the "
+                      & "destructor is for",
+                      Designator);
+                elsif Is_Frozen (Prefix_E)
+                  or else Current_Scope /= Scope (Prefix_E)
+                then
+                   Error_Msg_Sloc := Sloc (Freeze_Node (Prefix_E));
+                   Error_Msg_N
+                     ("& must be defined before freezing#", Designator);
+ 
+                elsif Parent_Kind (Enclosing_Package_Or_Subprogram (Designator))
+                  /= N_Package_Specification
+                then
+                   Error_Msg_N
+                     ("& is required to be a primitive operation", Designator);
+ 
+                else
+                   Set_Has_Destructor (Prefix_E);
+                   Set_Is_Controlled_Active (Prefix_E);
+                   Set_Destructor (Prefix_E, Designator);
+                end if;
+ 
+             when others           =>
+                null;
+ 
+          end case;
+       end Analyze_Direct_Attribute_Definition;
+ 
        ------------------------------------
        -- Is_Invariant_Procedure_Or_Body --
        ------------------------------------
*************** package body Sem_Ch6 is
*** 5391,5396 ****
--- 5566,5577 ----
           End_Scope;
        end if;
  
+       --  Handle subprogram specification directly referencing an attribute
+ 
+       if Is_Direct_Attribute_Subp_Spec (N) then
+          Analyze_Direct_Attribute_Definition (Designator);
+       end if;
+ 
        --  Function case
  
        if Nkind (N) = N_Function_Specification then
*************** package body Sem_Ch6 is
*** 5599,5605 ****
              declare
                 D : constant Entity_Id := Directly_Designated_Type (Etype (F1));
                 Partial_View_Of_Desig : constant Entity_Id :=
!                  Incomplete_Or_Partial_View (D);
              begin
                 return No (Partial_View_Of_Desig)
                   or else Is_Tagged_Type (Partial_View_Of_Desig)
--- 5780,5786 ----
              declare
                 D : constant Entity_Id := Directly_Designated_Type (Etype (F1));
                 Partial_View_Of_Desig : constant Entity_Id :=
!                  Incomplete_Or_Partial_View (D, Partial_Only => True);
              begin
                 return No (Partial_View_Of_Desig)
                   or else Is_Tagged_Type (Partial_View_Of_Desig)
*************** package body Sem_Ch6 is
*** 5615,5620 ****
--- 5796,5805 ----
           end if;
        end Null_Exclusions_Match;
  
+       -----------------------------------------------
+       -- Subprogram_Subtypes_Have_Same_Declaration --
+       -----------------------------------------------
+ 
        function Subprogram_Subtypes_Have_Same_Declaration
          (Subp         : Entity_Id;
           Decl_Subtype : Entity_Id;
*************** package body Sem_Ch6 is
*** 6094,6100 ****
  
                       if NewD then
                          Push_Scope (New_Id);
!                         Preanalyze_Spec_Expression
                            (Default_Value (New_Formal), Etype (New_Formal));
                          End_Scope;
                       end if;
--- 6279,6285 ----
  
                       if NewD then
                          Push_Scope (New_Id);
!                         Preanalyze_And_Resolve_Spec_Expression
                            (Default_Value (New_Formal), Etype (New_Formal));
                          End_Scope;
                       end if;
*************** package body Sem_Ch6 is
*** 6361,6609 ****
        end if;
     end Check_Delayed_Subprogram;
  
-    ------------------------------------
-    -- Check_Discriminant_Conformance --
-    ------------------------------------
- 
-    procedure Check_Discriminant_Conformance
-      (N        : Node_Id;
-       Prev     : Entity_Id;
-       Prev_Loc : Node_Id)
-    is
-       Old_Discr      : Entity_Id := First_Discriminant (Prev);
-       New_Discr      : Node_Id   := First (Discriminant_Specifications (N));
-       New_Discr_Id   : Entity_Id;
-       New_Discr_Type : Entity_Id;
- 
-       procedure Conformance_Error (Msg : String; N : Node_Id);
-       --  Post error message for conformance error on given node. Two messages
-       --  are output. The first points to the previous declaration with a
-       --  general "no conformance" message. The second is the detailed reason,
-       --  supplied as Msg. The parameter N provide information for a possible
-       --  & insertion in the message.
- 
-       -----------------------
-       -- Conformance_Error --
-       -----------------------
- 
-       procedure Conformance_Error (Msg : String; N : Node_Id) is
-       begin
-          Error_Msg_Sloc := Sloc (Prev_Loc);
-          Error_Msg_N -- CODEFIX
-            ("not fully conformant with declaration#!", N);
-          Error_Msg_NE (Msg, N, N);
-       end Conformance_Error;
- 
-    --  Start of processing for Check_Discriminant_Conformance
- 
-    begin
-       while Present (Old_Discr) and then Present (New_Discr) loop
-          New_Discr_Id := Defining_Identifier (New_Discr);
- 
-          --  The subtype mark of the discriminant on the full type has not
-          --  been analyzed so we do it here. For an access discriminant a new
-          --  type is created.
- 
-          if Nkind (Discriminant_Type (New_Discr)) = N_Access_Definition then
-             New_Discr_Type :=
-               Access_Definition (N, Discriminant_Type (New_Discr));
- 
-          else
-             Find_Type (Discriminant_Type (New_Discr));
-             New_Discr_Type := Etype (Discriminant_Type (New_Discr));
- 
-             --  Ada 2005: if the discriminant definition carries a null
-             --  exclusion, create an itype to check properly for consistency
-             --  with partial declaration.
- 
-             if Is_Access_Type (New_Discr_Type)
-               and then Null_Exclusion_Present (New_Discr)
-             then
-                New_Discr_Type :=
-                  Create_Null_Excluding_Itype
-                    (T           => New_Discr_Type,
-                     Related_Nod => New_Discr,
-                     Scope_Id    => Current_Scope);
-             end if;
-          end if;
- 
-          if not Conforming_Types
-                   (Etype (Old_Discr), New_Discr_Type, Fully_Conformant)
-          then
-             Conformance_Error ("type of & does not match!", New_Discr_Id);
-             return;
-          else
-             --  Treat the new discriminant as an occurrence of the old one,
-             --  for navigation purposes, and fill in some semantic
-             --  information, for completeness.
- 
-             Generate_Reference (Old_Discr, New_Discr_Id, 'r');
-             Set_Etype (New_Discr_Id, Etype (Old_Discr));
-             Set_Scope (New_Discr_Id, Scope (Old_Discr));
-          end if;
- 
-          --  Names must match
- 
-          if Chars (Old_Discr) /= Chars (Defining_Identifier (New_Discr)) then
-             Conformance_Error ("name & does not match!", New_Discr_Id);
-             return;
-          end if;
- 
-          --  Default expressions must match
- 
-          declare
-             NewD : constant Boolean :=
-                      Present (Expression (New_Discr));
-             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
- 
-                --  The old default value has been analyzed and expanded,
-                --  because the current full declaration will have frozen
-                --  everything before. The new default values have not been
-                --  expanded, so expand now to check conformance.
- 
-                if NewD then
-                   Preanalyze_Spec_Expression
-                     (Expression (New_Discr), New_Discr_Type);
-                end if;
- 
-                if not (NewD and OldD)
-                  or else not Fully_Conformant_Expressions
-                               (Expression (Parent (Old_Discr)),
-                                Expression (New_Discr))
- 
-                then
-                   Conformance_Error
-                     ("default expression for & does not match!",
-                      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;
- 
-          --  In Ada 83 case, grouping must match: (A,B : X) /= (A : X; B : X)
- 
-          if Ada_Version = Ada_83 then
-             declare
-                Old_Disc : constant Node_Id := Declaration_Node (Old_Discr);
- 
-             begin
-                --  Grouping (use of comma in param lists) must be the same
-                --  This is where we catch a misconformance like:
- 
-                --    A, B : Integer
-                --    A : Integer; B : Integer
- 
-                --  which are represented identically in the tree except
-                --  for the setting of the flags More_Ids and Prev_Ids.
- 
-                if More_Ids (Old_Disc) /= More_Ids (New_Discr)
-                  or else Prev_Ids (Old_Disc) /= Prev_Ids (New_Discr)
-                then
-                   Conformance_Error
-                     ("grouping of & does not match!", New_Discr_Id);
-                   return;
-                end if;
-             end;
-          end if;
- 
-          Next_Discriminant (Old_Discr);
-          Next (New_Discr);
-       end loop;
- 
-       if Present (Old_Discr) then
-          Conformance_Error ("too few discriminants!", Defining_Identifier (N));
-          return;
- 
-       elsif Present (New_Discr) then
-          Conformance_Error
-            ("too many discriminants!", Defining_Identifier (New_Discr));
-          return;
-       end if;
-    end Check_Discriminant_Conformance;
- 
     -----------------------------------------
     -- Check_Formal_Subprogram_Conformance --
     -----------------------------------------
--- 6546,6551 ----
*************** package body Sem_Ch6 is
*** 7885,7890 ****
--- 7827,7833 ----
                or else not Is_Dispatching_Operation (Subp)
                or else No (Find_Dispatching_Type (Subp))
                or else not Is_Interface (Find_Dispatching_Type (Subp))
+               or else Parent (Subp) not in N_Subprogram_Specification_Id
              then
                 null;
  
*************** package body Sem_Ch6 is
*** 7968,7974 ****
           end if;
  
           Overridden_Subp := Candidate;
-          return;
        end;
     end Check_Synchronized_Overriding;
  
--- 7911,7916 ----
*************** package body Sem_Ch6 is
*** 8406,8411 ****
--- 8348,8358 ----
              if Typ = View then
                 return True;
  
+             --  The type is an incomplete view of the non-limited view
+ 
+             elsif Is_Incomplete_Type (Typ) and then Full_View (Typ) = View then
+                return True;
+ 
              --  The type is a subtype of the non-limited view
  
              elsif Is_Subtype_Of (Typ, View) then
*************** package body Sem_Ch6 is
*** 8683,8689 ****
     -- Create_Extra_Formals --
     --------------------------
  
!    procedure Create_Extra_Formals (E : Entity_Id) is
        First_Extra : Entity_Id := Empty;
        Formal      : Entity_Id;
        Last_Extra  : Entity_Id := Empty;
--- 8630,8639 ----
     -- Create_Extra_Formals --
     --------------------------
  
!    procedure Create_Extra_Formals
!      (E           : Entity_Id;
!       Related_Nod : Node_Id := Empty)
!    is
        First_Extra : Entity_Id := Empty;
        Formal      : Entity_Id;
        Last_Extra  : Entity_Id := Empty;
*************** package body Sem_Ch6 is
*** 8702,8715 ****
        --  without coordinating with CodePeer, which makes use of these to
        --  provide better messages.
  
        --  O denotes the Constrained bit.
        --  L denotes the accessibility level.
        --  BIP_xxx denotes an extra formal for a build-in-place function. See
        --  the full list in exp_ch6.BIP_Formal_Kind.
  
-       function Has_Extra_Formals (E : Entity_Id) return Boolean;
-       --  Determines if E has its extra formals
- 
        function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean;
        --  Determines if E is a function or an access to a function returning a
        --  limited tagged type object. On dispatching primitives this predicate
--- 8652,8664 ----
        --  without coordinating with CodePeer, which makes use of these to
        --  provide better messages.
  
+       --  A and B denote extra formals for unchecked unions equality. See
+       --  exp_ch3.Build_Variant_Record_Equality.
        --  O denotes the Constrained bit.
        --  L denotes the accessibility level.
        --  BIP_xxx denotes an extra formal for a build-in-place function. See
        --  the full list in exp_ch6.BIP_Formal_Kind.
  
        function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean;
        --  Determines if E is a function or an access to a function returning a
        --  limited tagged type object. On dispatching primitives this predicate
*************** package body Sem_Ch6 is
*** 8748,8761 ****
           EF : Entity_Id;
  
        begin
-          --  A little optimization. Never generate an extra formal for the
-          --  _init operand of an initialization procedure, since it could
-          --  never be used.
- 
-          if Chars (Formal) = Name_uInit then
-             return Empty;
-          end if;
- 
           EF := Make_Defining_Identifier (Sloc (Assoc_Entity),
                   Chars => New_External_Name (Chars (Assoc_Entity),
                                               Suffix => Suffix));
--- 8697,8702 ----
*************** package body Sem_Ch6 is
*** 8781,8805 ****
           return EF;
        end Add_Extra_Formal;
  
-       -----------------------
-       -- Has_Extra_Formals --
-       -----------------------
- 
-       function Has_Extra_Formals (E : Entity_Id) return Boolean is
-       begin
-          return Present (Extra_Formals (E))
-            or else
-              (Ekind (E) = E_Function
-                 and then Present (Extra_Accessibility_Of_Result (E)));
-       end Has_Extra_Formals;
- 
        ---------------------------------
        -- Might_Need_BIP_Task_Actuals --
        ---------------------------------
  
        function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean is
           Subp_Id  : Entity_Id;
!          Func_Typ : Entity_Id;
  
        begin
           if Global_No_Tasking or else No_Run_Time_Mode then
--- 8722,8743 ----
           return EF;
        end Add_Extra_Formal;
  
        ---------------------------------
        -- Might_Need_BIP_Task_Actuals --
        ---------------------------------
  
        function Might_Need_BIP_Task_Actuals (E : Entity_Id) return Boolean is
           Subp_Id  : Entity_Id;
!          Original : Entity_Id;
!          Root     : Entity_Id;
! 
!          function Has_No_Task_Parts_Enabled (E : Entity_Id) return Boolean
!          is (Has_Enabled_Aspect (E, Aspect_No_Task_Parts));
! 
!          function Collect_Ancestors_With_No_Task_Parts is new
!            Collect_Types_In_Hierarchy (Predicate => Has_No_Task_Parts_Enabled);
! 
!       --  Start of processing for Might_Need_BIP_Task_Actuals
  
        begin
           if Global_No_Tasking or else No_Run_Time_Mode then
*************** package body Sem_Ch6 is
*** 8827,8847 ****
           then
              Subp_Id := Protected_Body_Subprogram (E);
  
!          else
              Subp_Id := E;
-          end if;
  
!          --  We check the root type of the return type since the same
!          --  decision must be taken for all descendants overriding a
!          --  dispatching operation.
  
!          Func_Typ := Root_Type (Underlying_Type (Etype (Subp_Id)));
  
           return Ekind (Subp_Id) in E_Function | E_Subprogram_Type
!            and then not Has_Foreign_Convention (Func_Typ)
!            and then Is_Tagged_Type (Func_Typ)
!            and then Is_Limited_Type (Func_Typ)
!            and then not Has_Aspect (Func_Typ, Aspect_No_Task_Parts);
        end Might_Need_BIP_Task_Actuals;
  
        -------------------------------------
--- 8765,8793 ----
           then
              Subp_Id := Protected_Body_Subprogram (E);
  
!          --  For access-to-subprogram types we look at the return type of the
!          --  subprogram type itself, as it cannot be overridden or inherited.
! 
!          elsif Ekind (E) = E_Subprogram_Type then
              Subp_Id := E;
  
!          --  Otherwise, we need to return the same value we would return for
!          --  the original corresponding operation of the root of the aliased
!          --  chain.
  
!          else
!             Subp_Id := Original_Corresponding_Operation (Ultimate_Alias (E));
!          end if;
! 
!          Original := Underlying_Type (Etype (Subp_Id));
!          Root := Underlying_Type (Root_Type (Original));
  
           return Ekind (Subp_Id) in E_Function | E_Subprogram_Type
!            and then Is_Inherently_Limited_Type (Original)
!            and then not Has_Foreign_Convention (Root)
!            and then Is_Tagged_Type (Root)
!            and then Is_Empty_Elmt_List
!              (Collect_Ancestors_With_No_Task_Parts (Original));
        end Might_Need_BIP_Task_Actuals;
  
        -------------------------------------
*************** package body Sem_Ch6 is
*** 8930,8939 ****
                 --  we have no direct way to climb to the corresponding parent
                 --  subprogram but this internal entity has the extra formals
                 --  (if any) required for the purpose of checking the extra
!                --  formals of Subp_Id.
  
                 else
                    pragma Assert (not Comes_From_Source (Ovr_E));
                 end if;
  
              --  Use as our reference entity the ultimate renaming of the
--- 8876,8887 ----
                 --  we have no direct way to climb to the corresponding parent
                 --  subprogram but this internal entity has the extra formals
                 --  (if any) required for the purpose of checking the extra
!                --  formals of Subp_Id because its extra formals are shared
!                --  with its parent subprogram (see Sem_Ch3.Derive_Subprogram).
  
                 else
                    pragma Assert (not Comes_From_Source (Ovr_E));
+                   Freeze_Extra_Formals (Ovr_E);
                 end if;
  
              --  Use as our reference entity the ultimate renaming of the
*************** package body Sem_Ch6 is
*** 8956,8965 ****
  
        --  Local variables
  
!       Formal_Type      : Entity_Id;
!       May_Have_Alias   : Boolean;
        Alias_Formal     : Entity_Id := Empty;
        Alias_Subp       : Entity_Id := Empty;
        Parent_Formal    : Entity_Id := Empty;
        Parent_Subp      : Entity_Id := Empty;
        Ref_E            : Entity_Id;
--- 8904,8918 ----
  
        --  Local variables
  
!       use Deferred_Extra_Formals_Support;
! 
!       Can_Be_Deferred  : constant Boolean :=
!                            not Is_Unsupported_Extra_Formals_Entity (E,
!                                  Related_Nod);
        Alias_Formal     : Entity_Id := Empty;
        Alias_Subp       : Entity_Id := Empty;
+       Formal_Type      : Entity_Id;
+       May_Have_Alias   : Boolean;
        Parent_Formal    : Entity_Id := Empty;
        Parent_Subp      : Entity_Id := Empty;
        Ref_E            : Entity_Id;
*************** package body Sem_Ch6 is
*** 8970,8979 ****
        pragma Assert (Is_Subprogram_Or_Entry (E)
          or else Ekind (E) in E_Subprogram_Type);
  
        --  We never generate extra formals if expansion is not active because we
        --  don't need them unless we are generating code.
  
!       if not Expander_Active then
           return;
  
        --  Enumeration literals have no extra formal; this case occurs when
--- 8923,8940 ----
        pragma Assert (Is_Subprogram_Or_Entry (E)
          or else Ekind (E) in E_Subprogram_Type);
  
+       --  No action needed if extra formals were already handled. This
+       --  situation may arise because of a previous call to create the
+       --  extra formals, and also for subprogram types created as part
+       --  of dispatching calls (see Expand_Dispatching_Call).
+ 
+       if Extra_Formals_Known (E) then
+          return;
+ 
        --  We never generate extra formals if expansion is not active because we
        --  don't need them unless we are generating code.
  
!       elsif not Expander_Active then
           return;
  
        --  Enumeration literals have no extra formal; this case occurs when
*************** package body Sem_Ch6 is
*** 8982,9006 ****
        elsif Ekind (E) = E_Function
          and then Ekind (Ultimate_Alias (E)) = E_Enumeration_Literal
        then
           return;
  
!       --  Extra formals of Initialization procedures are added by the function
!       --  Exp_Ch3.Init_Formals
  
        elsif Is_Init_Proc (E) then
           return;
  
        --  No need to generate extra formals in thunks whose target has no extra
        --  formals, but we can have two of them chained (interface and stack).
  
!       elsif Is_Thunk (E) and then No (Extra_Formals (Thunk_Target (E))) then
           return;
  
!       --  If Extra_Formals were already created, don't do it again. This
!       --  situation may arise for subprogram types created as part of
!       --  dispatching calls (see Expand_Dispatching_Call).
  
!       elsif Has_Extra_Formals (E) then
           return;
  
        --  Extra formals of renamings of generic actual subprograms and
--- 8943,8980 ----
        elsif Ekind (E) = E_Function
          and then Ekind (Ultimate_Alias (E)) = E_Enumeration_Literal
        then
+          Freeze_Extra_Formals (E);
           return;
  
!       --  Extra formals of init procs are added by Exp_Ch3.Init_Formals and
!       --  Set_CPP_Constructors when they are built, but we must handle here
!       --  aliased init procs.
  
        elsif Is_Init_Proc (E) then
+          pragma Assert (Present (Alias (E)));
+          pragma Assert (Extra_Formals_Known (Ultimate_Alias (E)));
+          Freeze_Extra_Formals (E);
           return;
  
        --  No need to generate extra formals in thunks whose target has no extra
        --  formals, but we can have two of them chained (interface and stack).
  
!       elsif Is_Thunk (E)
!         and then Extra_Formals_Known (Thunk_Target (E))
!         and then No (Extra_Formals (Thunk_Target (E)))
!       then
!          Freeze_Extra_Formals (E);
           return;
  
!       --  Handle alias of unchecked union equality with frozen extra formals
  
!       elsif Is_Overloadable (E)
!         and then Present (Alias (E))
!         and then Extra_Formals_Known (Ultimate_Alias (E))
!         and then Is_Unchecked_Union_Equality (Ultimate_Alias (E))
!       then
!          Set_Extra_Formals (E, Extra_Formals (Ultimate_Alias (E)));
!          Freeze_Extra_Formals (E);
           return;
  
        --  Extra formals of renamings of generic actual subprograms and
*************** package body Sem_Ch6 is
*** 9017,9023 ****
           pragma Assert (Is_Generic_Instance (E)
             = Is_Generic_Instance (Ultimate_Alias (E)));
  
!          Create_Extra_Formals (Ultimate_Alias (E));
  
           --  Share the extra formals
  
--- 8991,8999 ----
           pragma Assert (Is_Generic_Instance (E)
             = Is_Generic_Instance (Ultimate_Alias (E)));
  
!          Create_Extra_Formals (Ultimate_Alias (E), Related_Nod);
!          pragma Assert (not Expander_Active
!            or else Extra_Formals_Known (Ultimate_Alias (E)));
  
           --  Share the extra formals
  
*************** package body Sem_Ch6 is
*** 9029,9045 ****
           end if;
  
           pragma Assert (Extra_Formals_OK (E));
           return;
        end if;
  
!       --  Locate the last formal; required by Add_Extra_Formal.
  
        Formal := First_Formal (E);
        while Present (Formal) loop
!          Last_Extra := Formal;
           Next_Formal (Formal);
        end loop;
  
        --  We rely on three entities to ensure consistency of extra formals of
        --  entity E:
        --
--- 9005,9076 ----
           end if;
  
           pragma Assert (Extra_Formals_OK (E));
+          Freeze_Extra_Formals (E);
           return;
        end if;
  
!       --  Check if the addition of the extra formals must be deferred
  
        Formal := First_Formal (E);
        while Present (Formal) loop
!          if No (Underlying_Type (Etype (Formal)))
!            and then Can_Be_Deferred
!          then
!             Register_Deferred_Extra_Formals_Entity (E);
!             return;
!          end if;
! 
           Next_Formal (Formal);
        end loop;
  
+       if Ekind (E) in E_Function
+                     | E_Subprogram_Type
+         and then No (Underlying_Type (Etype (E)))
+         and then Can_Be_Deferred
+       then
+          Register_Deferred_Extra_Formals_Entity (E);
+          return;
+       end if;
+ 
+       --  Here we start adding the extra formals
+ 
+       --  We we know that either the underlying type of all the formals and
+       --  returned results of E are known, or this is an special case where
+       --  some underlying type is still not available.
+ 
+       --  In the former case, we can already mark functions that return their
+       --  result by reference; in the latter case, we can mark them only if the
+       --  underlying return type is available (and it will be marked later).
+ 
+       if not Is_Unsupported_Extra_Formals_Entity (E)
+         or else (Ekind (E) in E_Function | E_Subprogram_Type
+                    and then Present (Underlying_Type (Etype (E))))
+       then
+          Compute_Returns_By_Ref (E);
+       end if;
+ 
+       --  Locate the last formal (required by Add_Extra_Formal)
+ 
+       if Present (First_Formal (E))
+         and then Is_Unchecked_Union (Etype (First_Formal (E)))
+         and then Present (Extra_Formals (E))
+         and then Has_Suffix (Extra_Formals (E), 'A')
+       then
+          --  An unchecked union equality has two extra formals per discriminant
+ 
+          First_Extra := Extra_Formals (E);
+          Last_Extra  := First_Extra;
+          while Present (Last_Extra) loop
+             pragma Assert (Has_Suffix (Last_Extra, 'A'));
+             Last_Extra := Extra_Formal (Last_Extra);
+ 
+             pragma Assert (Has_Suffix (Last_Extra, 'B'));
+             Last_Extra := Extra_Formal (Last_Extra);
+          end loop;
+       else
+          Last_Extra := Last_Formal (E);
+       end if;
+ 
        --  We rely on three entities to ensure consistency of extra formals of
        --  entity E:
        --
*************** package body Sem_Ch6 is
*** 9099,9104 ****
--- 9130,9147 ----
          or else (Present (Alias_Subp)
                     and then Has_Foreign_Convention (Alias_Subp))
        then
+          Freeze_Extra_Formals (E);
+          return;
+ 
+       elsif Ekind (Ref_E) in E_Subprogram_Type
+         and then Is_Itype (Ref_E)
+         and then Nkind (Associated_Node_For_Itype (Ref_E)) in
+                    N_Function_Specification
+                  | N_Procedure_Specification
+         and then Has_Foreign_Convention
+                    (Defining_Entity (Associated_Node_For_Itype (Ref_E)))
+       then
+          Freeze_Extra_Formals (E);
           return;
        end if;
  
*************** package body Sem_Ch6 is
*** 9132,9138 ****
           --  function Parent_Subprogram).
  
           if Ultimate_Alias (Parent_Subp) /= Ref_E then
!             Create_Extra_Formals (Parent_Subp);
           end if;
  
           Parent_Formal := First_Formal (Parent_Subp);
--- 9175,9181 ----
           --  function Parent_Subprogram).
  
           if Ultimate_Alias (Parent_Subp) /= Ref_E then
!             Create_Extra_Formals (Parent_Subp, Related_Nod);
           end if;
  
           Parent_Formal := First_Formal (Parent_Subp);
*************** package body Sem_Ch6 is
*** 9167,9173 ****
        --  Ensure that the ultimate alias has all its extra formals
  
        elsif Present (Alias_Subp) then
!          Create_Extra_Formals (Alias_Subp);
           Alias_Formal := First_Formal (Alias_Subp);
        end if;
  
--- 9210,9216 ----
        --  Ensure that the ultimate alias has all its extra formals
  
        elsif Present (Alias_Subp) then
!          Create_Extra_Formals (Alias_Subp, Related_Nod);
           Alias_Formal := First_Formal (Alias_Subp);
        end if;
  
*************** package body Sem_Ch6 is
*** 9177,9190 ****
           --  Here we establish our priority for deciding on the extra
           --  formals: 1) Parent primitive 2) Aliased primitive 3) Identity
  
!          if Present (Parent_Formal) then
!             Formal_Type := Etype (Parent_Formal);
  
!          elsif Present (Alias_Formal) then
!             Formal_Type := Etype (Alias_Formal);
  
           else
!             Formal_Type := Etype (Formal);
           end if;
  
           --  Create extra formal for supporting the attribute 'Constrained.
--- 9220,9263 ----
           --  Here we establish our priority for deciding on the extra
           --  formals: 1) Parent primitive 2) Aliased primitive 3) Identity
  
!          --  Common case: the underlying type of all the formals is known
!          --  to be available.
  
!          if Can_Be_Deferred then
!             if Present (Parent_Formal) then
!                Formal_Type := Underlying_Type (Etype (Parent_Formal));
!             elsif Present (Alias_Formal) then
!                Formal_Type := Underlying_Type (Etype (Alias_Formal));
!             else
!                Formal_Type := Underlying_Type (Etype (Formal));
!             end if;
! 
!             pragma Assert (Present (Formal_Type));
! 
!          --  Special case: The underlying type of some formal is not available.
!          --  We use the underlying type when present. More work needed here???
  
           else
!             if Present (Parent_Formal) then
!                Formal_Type := Etype (Parent_Formal);
! 
!                if Present (Underlying_Type (Formal_Type)) then
!                   Formal_Type := Underlying_Type (Formal_Type);
!                end if;
! 
!             elsif Present (Alias_Formal) then
!                Formal_Type := Etype (Alias_Formal);
! 
!                if Present (Underlying_Type (Formal_Type)) then
!                   Formal_Type := Underlying_Type (Formal_Type);
!                end if;
!             else
!                Formal_Type := Etype (Formal);
! 
!                if Present (Underlying_Type (Formal_Type)) then
!                   Formal_Type := Underlying_Type (Formal_Type);
!                end if;
!             end if;
           end if;
  
           --  Create extra formal for supporting the attribute 'Constrained.
*************** package body Sem_Ch6 is
*** 9231,9242 ****
                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
                             (Is_Limited_Type (Formal_Type)
                               and then
!                                Is_Tagged_Type
!                                  (Underlying_Type (Formal_Type))))
              then
                 Set_Extra_Constrained
                   (Formal, Add_Extra_Formal (Formal, Standard_Boolean, E, "O"));
--- 9304,9316 ----
                and then (Is_Definite_Subtype (Formal_Type)
                           or else Is_Mutably_Tagged_Type (Formal_Type))
                and then (Ada_Version < Ada_2012
!                          or else
!                            (not Can_Be_Deferred
!                              and then No (Underlying_Type (Formal_Type)))
                           or else not
                             (Is_Limited_Type (Formal_Type)
                               and then
!                                Is_Tagged_Type (Formal_Type)))
              then
                 Set_Extra_Constrained
                   (Formal, Add_Extra_Formal (Formal, Standard_Boolean, E, "O"));
*************** package body Sem_Ch6 is
*** 9401,9410 ****
                     (E, Standard_Integer,
                      E, BIP_Formal_Suffix (BIP_Task_Master));
  
-                if Needs_BIP_Task_Actuals (Ref_E) then
-                   Set_Has_Master_Entity (E);
-                end if;
- 
                 Discard :=
                   Add_Extra_Formal
                     (E, RTE (RE_Activation_Chain_Access),
--- 9475,9480 ----
*************** package body Sem_Ch6 is
*** 9475,9480 ****
--- 9545,9552 ----
           Set_Extra_Formals (Alias (E), Extra_Formals (E));
        end if;
  
+       Freeze_Extra_Formals (E);
+ 
        pragma Assert (No (Alias_Subp)
          or else Extra_Formals_Match_OK (E, Alias_Subp));
  
*************** package body Sem_Ch6 is
*** 9739,9746 ****
        --       formals (see exp_ch9.Build_Wrapper_Specs) which will be
        --       checked later.
  
!       if Debug_Flag_Underscore_XX
!         or else not Expander_Active
          or else
            (Is_Predefined_Dispatching_Operation (E)
               and then (not Has_Reliable_Extra_Formals (E)
--- 9811,9817 ----
        --       formals (see exp_ch9.Build_Wrapper_Specs) which will be
        --       checked later.
  
!       if not Expander_Active
          or else
            (Is_Predefined_Dispatching_Operation (E)
               and then (not Has_Reliable_Extra_Formals (E)
*************** package body Sem_Ch6 is
*** 9789,9794 ****
--- 9860,9878 ----
                    return False;
                 end if;
  
+             --  Extra formals (A and B) of Unchecked_Unions (see Build_Variant_
+             --  Record_Equality)
+ 
+             elsif Has_Suffix (Formal_1, 'A') then
+                if not Has_Suffix (Formal_2, 'A') then
+                   return False;
+                end if;
+ 
+             elsif Has_Suffix (Formal_1, 'B') then
+                if not Has_Suffix (Formal_2, 'B') then
+                   return False;
+                end if;
+ 
              elsif BIP_Suffix_Kind (Formal_1) /= BIP_Suffix_Kind (Formal_2) then
                 return False;
              end if;
*************** package body Sem_Ch6 is
*** 9811,9826 ****
        Has_Extra_Formals : Boolean := False;
  
     begin
-       --  No check required if explicitly disabled
- 
-       if Debug_Flag_Underscore_XX then
-          return True;
- 
        --  No check required if expansion is disabled because extra
        --  formals are only generated when we are generating code.
        --  See Create_Extra_Formals.
  
!       elsif not Expander_Active then
           return True;
        end if;
  
--- 9895,9905 ----
        Has_Extra_Formals : Boolean := False;
  
     begin
        --  No check required if expansion is disabled because extra
        --  formals are only generated when we are generating code.
        --  See Create_Extra_Formals.
  
!       if not Expander_Active then
           return True;
        end if;
  
*************** package body Sem_Ch6 is
*** 10141,10146 ****
--- 10220,10235 ----
        return Empty;
     end Find_Corresponding_Spec;
  
+    --------------------------
+    -- Freeze_Extra_Formals --
+    --------------------------
+ 
+    procedure Freeze_Extra_Formals (E : Entity_Id) is
+    begin
+       pragma Assert (not Extra_Formals_Known (E));
+       Set_Extra_Formals_Known (E);
+    end Freeze_Extra_Formals;
+ 
     ----------------------
     -- Fully_Conformant --
     ----------------------
*************** package body Sem_Ch6 is
*** 10760,10765 ****
--- 10849,10858 ----
        Formal : Entity_Id := First_Formal_With_Extras (E);
  
     begin
+       --  It makes no sense to perform this check if the extra formals
+       --  have not been added.
+       pragma Assert (Extra_Formals_Known (E));
+ 
        while Present (Formal) loop
           if Is_Build_In_Place_Entity (Formal) then
              return True;
*************** package body Sem_Ch6 is
*** 11764,11780 ****
        begin
           Is_Primitive := False;
  
!          if not Comes_From_Source (S) then
  
!             --  Add an inherited primitive for an untagged derived type to
!             --  Derived_Type's list of primitives. Tagged primitives are
!             --  dealt with in Check_Dispatching_Operation. Do this even when
!             --  Extensions_Allowed is False to issue better error messages.
  
!             if Present (Derived_Type)
!               and then not Is_Tagged_Type (Derived_Type)
!             then
!                Append_Unique_Elmt (S, Primitive_Operations (Derived_Type));
              end if;
  
           --  If subprogram is at library level, it is not primitive operation
--- 11857,11880 ----
        begin
           Is_Primitive := False;
  
!          --  Constructors are never primitive operations
  
!          if Is_Constructor (S) then
!             null;
  
!          elsif not Comes_From_Source (S) then
!             if Present (Derived_Type) then
! 
!                --  Add an inherited primitive for an untagged derived type to
!                --  Derived_Type's list of primitives. Tagged primitives are
!                --  dealt with in Check_Dispatching_Operation. Do this even when
!                --  Extensions_Allowed is False to issue better error messages.
! 
!                if not Is_Tagged_Type (Derived_Type) then
!                   Append_Unique_Elmt (S, Primitive_Operations (Derived_Type));
!                end if;
! 
!                Set_Is_Primitive (S);
              end if;
  
           --  If subprogram is at library level, it is not primitive operation
*************** package body Sem_Ch6 is
*** 11815,11821 ****
                    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;
--- 11915,11921 ----
                    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(21)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
*************** package body Sem_Ch6 is
*** 11856,11862 ****
  
                    --  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;
--- 11956,11962 ----
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a tagged type and a primitive operation must match
!                   --  (SPARK RM 6.9(21)).
  
                    Check_Ghost_Primitive (S, B_Typ);
                 end if;
*************** package body Sem_Ch6 is
*** 11889,11895 ****
  
                 --  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;
--- 11989,11995 ----
  
                 --  The Ghost policy in effect at the point of declaration of a
                 --  tagged type and a primitive operation must match
!                --  (SPARK RM 6.9(21)).
  
                 Check_Ghost_Primitive (S, B_Typ);
              end if;
*************** package body Sem_Ch6 is
*** 12271,12306 ****
          and then Present (Find_Dispatching_Type (Alias (S)))
          and then Is_Interface (Find_Dispatching_Type (Alias (S)))
        then
!          --  For private types, when the full-view is processed we propagate to
!          --  the full view the non-overridden entities whose attribute "alias"
!          --  references an interface primitive. These entities were added by
!          --  Derive_Subprograms to ensure that interface primitives are
!          --  covered.
  
!          --  Inside_Freeze_Actions is non zero when S corresponds with an
!          --  internal entity that links an interface primitive with its
!          --  covering primitive through attribute Interface_Alias (see
!          --  Add_Internal_Interface_Entities).
  
!          if Inside_Freezing_Actions = 0
!            and then Is_Package_Or_Generic_Package (Current_Scope)
!            and then In_Private_Part (Current_Scope)
!            and then Parent_Kind (E) = N_Private_Extension_Declaration
!            and then Nkind (Parent (S)) = N_Full_Type_Declaration
!            and then Full_View (Defining_Identifier (Parent (E)))
!                       = Defining_Identifier (Parent (S))
!            and then Alias (E) = Alias (S)
!          then
!             Check_Operation_From_Private_View (S, E);
!             Set_Is_Dispatching_Operation (S);
  
!          --  Common case
  
!          else
!             Enter_Overloaded_Entity (S);
!             Check_Dispatching_Operation (S, Empty);
!             Check_For_Primitive_Subprogram (Is_Primitive_Subp);
!          end if;
  
           return;
        end if;
--- 12371,12421 ----
          and then Present (Find_Dispatching_Type (Alias (S)))
          and then Is_Interface (Find_Dispatching_Type (Alias (S)))
        then
!          declare
!             Private_Operation_Exported_By_Visible_Part : constant Boolean :=
!               Is_Package_Or_Generic_Package (Current_Scope)
!               and then In_Private_Part (Current_Scope)
!               and then Parent_Kind (E) = N_Private_Extension_Declaration
!               and then Nkind (Parent (S)) = N_Full_Type_Declaration
!               and then Full_View (Defining_Identifier (Parent (E)))
!                          = Defining_Identifier (Parent (S));
  
!          begin
!             --  For private types, when the full view is processed we propagate
!             --  to the full view the nonoverridden entities whose attribute
!             --  "alias" references an interface primitive. These entities were
!             --  added by Derive_Subprograms to ensure that interface primitives
!             --  are covered.
  
!             --  Inside_Freeze_Actions is nonzero when S corresponds to an
!             --  internal entity that links an interface primitive with its
!             --  covering primitive through attribute Interface_Alias (see
!             --  Add_Internal_Interface_Entities).
  
!             if Inside_Freezing_Actions = 0
!               and then Private_Operation_Exported_By_Visible_Part
!               and then Alias (E) = Alias (S)
!             then
!                Check_Operation_From_Private_View (S, E);
!                Set_Is_Dispatching_Operation (S);
  
!             --  Common case
! 
!             else
!                Enter_Overloaded_Entity (S);
!                Check_Dispatching_Operation (S, Empty);
!                Check_For_Primitive_Subprogram (Is_Primitive_Subp);
!             end if;
! 
!             if Private_Operation_Exported_By_Visible_Part
!               and then Type_Conformant (E, S)
!             then
!                --  Record the actual inherited subprogram that's being
!                --  overridden.
! 
!                Set_Overridden_Inherited_Operation (S, E);
!             end if;
!          end;
  
           return;
        end if;
*************** package body Sem_Ch6 is
*** 12345,12351 ****
  
              --  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;
--- 12460,12466 ----
  
              --  The Ghost policy in effect at the point of declaration of a
              --  parent subprogram and an overriding subprogram must match
!             --  (SPARK RM 6.9(21)).
  
              Check_Ghost_Overriding (S, Overridden_Subp);
           end if;
*************** package body Sem_Ch6 is
*** 12508,12514 ****
  
                       --  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;
--- 12623,12629 ----
  
                       --  The Ghost policy in effect at the point of declaration
                       --  of a parent subprogram and an overriding subprogram
!                      --  must match (SPARK RM 6.9(21)).
  
                       Check_Ghost_Overriding (E, S);
                    end if;
*************** package body Sem_Ch6 is
*** 12712,12718 ****
  
                    --  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);
  
--- 12827,12833 ----
  
                    --  The Ghost policy in effect at the point of declaration
                    --  of a parent subprogram and an overriding subprogram
!                   --  must match (SPARK RM 6.9(21)).
  
                    Check_Ghost_Overriding (S, E);
  
*************** package body Sem_Ch6 is
*** 12739,12744 ****
--- 12854,12879 ----
                            and then not Is_Dispatch_Table_Wrapper (S)))
                    then
                       Set_Overridden_Operation    (S, Alias (E));
+ 
+                      --  Record the actual inherited subprogram that's being
+                      --  overridden. In the case where a subprogram declared
+                      --  in a private part overrides an inherited subprogram
+                      --  that itself is also declared in the private part,
+                      --  and that subprogram in turns overrides a subprogram
+                      --  declared in a package visible part (inherited via
+                      --  a private extension), we record the visible subprogram
+                      --  as the overridden one, so that we can determine
+                      --  visibility properly for prefixed calls to the
+                      --  subprogram made from outside the package. (See
+                      --  Try_Primitive_Operation in Sem_Ch4.)
+ 
+                      if Present (Overridden_Inherited_Operation (E)) then
+                         Set_Overridden_Inherited_Operation
+                           (S, Overridden_Inherited_Operation (E));
+                      else
+                         Set_Overridden_Inherited_Operation (S, E);
+                      end if;
+ 
                       Inherit_Subprogram_Contract (S, Alias (E));
  
                       Set_Is_Ada_2022_Only (S, Is_Ada_2022_Only (Alias (E)));
*************** package body Sem_Ch6 is
*** 12858,12864 ****
  
           --  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);
  
--- 12993,12999 ----
  
           --  The Ghost policy in effect at the point of declaration of a parent
           --  subprogram and an overriding subprogram must match
!          --  (SPARK RM 6.9(21)).
  
           Check_Ghost_Overriding (S, Overridden_Subp);
  
*************** package body Sem_Ch6 is
*** 12898,12903 ****
--- 13033,13571 ----
           end if;
     end New_Overloaded_Entity;
  
+    ------------------------------------
+    -- Deferred_Extra_Formals_Support --
+    ------------------------------------
+ 
+    package body Deferred_Extra_Formals_Support is
+       Calls_List       : Elist_Id := No_Elist;
+       Calls_Scope_List : Elist_Id := No_Elist;
+       --  Calls to subprograms or entries with some unknown underlying type
+       --  in their parameters or result type, and the scope where each call
+       --  is performed.
+ 
+       Entities_List    : Elist_Id := No_Elist;
+       --  Subprograms, entries, and subprogram types with some unknown
+       --  underlying type in their formals or result type.
+ 
+       Types_List       : Elist_Id := No_Elist;
+       --  Types with no underlying type
+ 
+       function Underlying_Types_Available (E : Entity_Id) return Boolean;
+       --  Determines if the underlying type of all the formals and result
+       --  type of the given subprogram, subprogram type, or entry are
+       --  available.
+ 
+       -------------------------------
+       -- Add_Deferred_Extra_Params --
+       -------------------------------
+ 
+       procedure Add_Deferred_Extra_Params (Typ : Entity_Id) is
+ 
+          procedure Check_Registered_Calls;
+          --  Check all the registered calls; for each registered call that
+          --  has the underlying type of all the parameters and result types
+          --  of the called entity available, call Create_Extra_Actuals, and
+          --  unregister the call.
+ 
+          procedure Check_Registered_Entities;
+          --  Check all the registered entities (subprograms, entries and
+          --  subprogram types); for each registered entity E that has all
+          --  its underlying types available, call Create_Extra_Formals,
+          --  and unregister E.
+ 
+          ----------------------------
+          -- Check_Registered_Calls --
+          ----------------------------
+ 
+          procedure Check_Registered_Calls is
+ 
+             function Get_Relocated_Function_Call (N : Node_Id) return Node_Id;
+             --  Given a node N that references a function call that has been
+             --  relocated to remove possible side effects of the call (see
+             --  Remove_Side_Effects) or to wrap the call in a transient scope
+             --  (see Wrap_Transient_Expression), search and return the function
+             --  call. Notice that this function does not use the Original_Node
+             --  field of N; it searchs for the actual call associated with N
+             --  in the expanded code (since we need to add to such call its
+             --  missing extra actuals).
+ 
+             ---------------------------------
+             -- Get_Relocated_Function_Call --
+             ---------------------------------
+ 
+             function Get_Relocated_Function_Call (N : Node_Id) return Node_Id
+             is
+                Current_Node : Node_Id;
+                Decl         : Node_Id;
+                Id           : Entity_Id;
+ 
+             begin
+                Current_Node := N;
+ 
+                while Nkind (Current_Node) /= N_Function_Call loop
+                   case Nkind (Current_Node) is
+                      when N_Identifier =>
+                         Id   := Entity (Current_Node);
+                         Decl := Parent (Id);
+ 
+                         if Nkind (Decl) = N_Object_Renaming_Declaration then
+                            Current_Node := Name (Decl);
+ 
+                         else
+                            pragma Assert (Nkind (Decl) = N_Object_Declaration);
+ 
+                            if Present (Expression (Decl)) then
+                               Current_Node := Expression (Decl);
+ 
+                            elsif Present (BIP_Initialization_Call (Id)) then
+                               Decl := BIP_Initialization_Call (Id);
+                               pragma Assert (Present (Expression (Decl)));
+                               Current_Node := Expression (Decl);
+ 
+                            elsif Present (Related_Expression (Id)) then
+                               Current_Node := Related_Expression (Id);
+ 
+                            else
+                               pragma Assert (False);
+                               raise Program_Error;
+                            end if;
+                         end if;
+ 
+                      when N_Explicit_Dereference | N_Reference =>
+                         Current_Node := Prefix (Current_Node);
+ 
+                      when others =>
+                         pragma Assert (False);
+                         raise Program_Error;
+                   end case;
+                end loop;
+ 
+                return Current_Node;
+             end Get_Relocated_Function_Call;
+ 
+             --  Local variables
+ 
+             Call_Node        : Node_Id;
+             Call_Id          : Entity_Id;
+             Elmt_Call        : Elmt_Id;
+             Elmt_Scope       : Elmt_Id;
+             Remove_Call      : Boolean;
+             Scop_Id          : Entity_Id;
+ 
+          --  Start of processing for Check_Registered_Calls
+ 
+          begin
+             --  Perform a single traversal of both lists simultaneously,
+             --  since they have the same number of elements with a 1-to-1
+             --  relationship.
+ 
+             Elmt_Scope := First_Elmt (Calls_Scope_List);
+             Elmt_Call  := First_Elmt (Calls_List);
+ 
+             while Present (Elmt_Scope) loop
+                Scop_Id     := Node (Elmt_Scope);
+                Remove_Call := False;
+ 
+                --  Check the enclosing scope of the call: if the underlying
+                --  type of some formal or return type of the enclosing scope
+                --  of this call is not available then we must skip processing
+                --  this call.
+ 
+                if Underlying_Types_Available (Scop_Id) then
+                   Call_Node := Node (Elmt_Call);
+ 
+                   if Nkind (Call_Node) in N_Entry_Call_Statement
+                                         | N_Function_Call
+                                         | N_Procedure_Call_Statement
+                   then
+                      Call_Id := Get_Called_Entity (Call_Node);
+ 
+                   --  Handle expanded function calls that could have side
+                   --  effects.
+ 
+                   else
+                      pragma Assert
+                        (Nkind (Original_Node (Call_Node)) = N_Function_Call);
+ 
+                      Call_Node := Get_Relocated_Function_Call (Call_Node);
+                      Call_Id := Get_Called_Entity (Call_Node);
+                   end if;
+ 
+                   --  If the underlying types of all the formal and return
+                   --  types of this called entity are available then create
+                   --  its extra actuals and remove it from the list of
+                   --  registered calls.
+ 
+                   if Underlying_Types_Available (Call_Id) then
+ 
+                      --  Given that the call is placed in the body of an
+                      --  internally built subprogram, ensure that the extra
+                      --  formals of the enclosing scope are available before
+                      --  adding the extra actuals of this call.
+ 
+                      Create_Extra_Formals (Scop_Id, Related_Nod => Call_Node);
+                      Create_Extra_Formals (Call_Id, Related_Nod => Call_Node);
+ 
+                      pragma Assert (Extra_Formals_Known (Scop_Id));
+                      pragma Assert (Extra_Formals_Known (Call_Id));
+ 
+                      --  Mark functions that return a result by reference
+ 
+                      Compute_Returns_By_Ref (Scop_Id);
+                      Compute_Returns_By_Ref (Call_Id);
+ 
+                      Push_Scope (Scop_Id);
+                      Create_Extra_Actuals (Call_Node);
+                      Pop_Scope;
+ 
+                      Remove_Call := True;
+                   end if;
+                end if;
+ 
+                --  In order to safely remove these elements from their
+                --  containing lists, remember these elements before moving
+                --  to the next list elements.
+ 
+                if Remove_Call then
+                   declare
+                      Removed_Call  : constant Elmt_Id := Elmt_Call;
+                      Removed_Scope : constant Elmt_Id := Elmt_Scope;
+ 
+                   begin
+                      Next_Elmt (Elmt_Scope);
+                      Next_Elmt (Elmt_Call);
+ 
+                      Remove_Elmt (Calls_List, Removed_Call);
+                      Remove_Elmt (Calls_Scope_List, Removed_Scope);
+                   end;
+                else
+                   Next_Elmt (Elmt_Scope);
+                   Next_Elmt (Elmt_Call);
+                end if;
+ 
+             end loop;
+          end Check_Registered_Calls;
+ 
+          -------------------------------
+          -- Check_Registered_Entities --
+          -------------------------------
+ 
+          procedure Check_Registered_Entities is
+             Elmt       : Elmt_Id;
+             Found_Elmt : Elmt_Id;
+             Id         : Entity_Id;
+ 
+          begin
+             Elmt := First_Elmt (Entities_List);
+ 
+             while Present (Elmt) loop
+                Id := Node (Elmt);
+ 
+                --  If the underlying type of some formal or return type of this
+                --  entity is not available then skip this element.
+ 
+                if not Underlying_Types_Available (Id) then
+                   Next_Elmt (Elmt);
+ 
+                --  Otherwise, create its extra formals and remove it from the
+                --  list of entities that require adding the extra formals.
+ 
+                else
+                   --  In order to safely remove this element from the list,
+                   --  temporarily remember this element, and move to the next
+                   --  element.
+ 
+                   Found_Elmt := Elmt;
+                   Next_Elmt (Elmt);
+ 
+                   --  Create the extra formals, and mark functions that return
+                   --  by reference (not be done before if the underying return
+                   --  type was previously unknown).
+ 
+                   Create_Extra_Formals (Id);
+                   Compute_Returns_By_Ref (Id);
+ 
+                   Remove_Elmt (Entities_List, Found_Elmt);
+ 
+                   --  For deferred entries and entry families, the expansion of
+                   --  their entry declaration was deferred, and must be done
+                   --  now (after adding their extra formals).
+ 
+                   if Ekind (Id) in E_Entry | E_Entry_Family then
+                      Expand_N_Entry_Declaration (Parent (Id),
+                        Was_Deferred => True);
+                   end if;
+                end if;
+             end loop;
+          end Check_Registered_Entities;
+ 
+       --  Start of processing for Add_Deferred_Extra_Params
+ 
+       begin
+          pragma Assert (Present (Underlying_Type (Typ)));
+ 
+          if Present (Entities_List) then
+             Check_Registered_Entities;
+          end if;
+ 
+          if Present (Calls_List) then
+             Check_Registered_Calls;
+          end if;
+ 
+          Remove (Types_List, Typ);
+       end Add_Deferred_Extra_Params;
+ 
+       --------------------------------
+       -- Has_Deferred_Extra_Formals --
+       --------------------------------
+ 
+       function Has_Deferred_Extra_Formals (Typ : Entity_Id) return Boolean is
+       begin
+          return Contains (Types_List, Typ);
+       end Has_Deferred_Extra_Formals;
+ 
+       --------------------------------------
+       -- Is_Deferred_Extra_Formals_Entity --
+       --------------------------------------
+ 
+       function Is_Deferred_Extra_Formals_Entity
+         (Id : Entity_Id) return Boolean is
+       begin
+          return Contains (Entities_List, Id);
+       end Is_Deferred_Extra_Formals_Entity;
+ 
+       ---------------------------------------
+       -- Is_Unsupported_Extra_Actuals_Call --
+       ---------------------------------------
+ 
+       --  Similarly to Is_Unsupported_Extra_Formals_Entity, we cannot
+       --  determine if the extra formals are needed when the underlying
+       --  type of some formal or result type is not available, and we are
+       --  compiling the body of a subprogram or package. However, for calls
+       --  we must also handle internal calls generated by the compiler as
+       --  part of compiling a package spec. For example, internal calls
+       --  performed in thunks of secondary dispatch table entries.
+       --
+       --  Example
+       --  -------
+       --  package P is
+       --     type T is tagged null record;
+       --  end;
+       --
+       --  limited with P;
+       --  package Q is
+       --     type Iface is interface;
+       --     procedure Prim (Self : Iface; Current : P.T) is abstract;
+       --  end;
+       --
+       --  limited with P;
+       --  with Q;
+       --  package R is
+       --     type Root is tagged null record;
+       --     type DT is new Root and Q.Iface with null record;
+       --
+       --     procedure Prim (Self : DT; Current : P.T);
+       --  end;
+       --
+       --  The initialization of the secondary dispatch table of tagged type
+       --  DT has an internally generated thunk that displaces the pointer to
+       --  the object and calls the primitive Prim (and the underlying type
+       --  of type T is not available).
+ 
+       function Is_Unsupported_Extra_Actuals_Call
+         (Call_Node : Node_Id; Id : Entity_Id) return Boolean
+       is
+          Comp_Unit : constant Entity_Id :=
+                        Cunit_Entity (Get_Source_Unit (Call_Node));
+ 
+       begin
+          return Expander_Active
+            and then not Extra_Formals_Known (Id)
+            and then not Underlying_Types_Available (Id)
+            and then Is_Compilation_Unit (Comp_Unit)
+            and then Ekind (Comp_Unit) in E_Package
+                                        | E_Package_Body
+                                        | E_Subprogram_Body;
+       end Is_Unsupported_Extra_Actuals_Call;
+ 
+       -----------------------------------------
+       -- Is_Unsupported_Extra_Formals_Entity --
+       -----------------------------------------
+ 
+       --  We cannot determine if the extra formals are needed when the
+       --  underlying type of some formal or result type is not available,
+       --  and we are compiling the body of a subprogram or package. The
+       --  scenery for this case is a package spec that has a limited_with_
+       --  clause on unit Q, and its body has no regular with-clause on Q
+       --  (AI05-0151-1/08).
+ 
+       function Is_Unsupported_Extra_Formals_Entity
+         (Id          : Entity_Id;
+          Related_Nod : Node_Id := Empty) return Boolean
+       is
+          Ref_Node  : constant Node_Id := (if Present (Related_Nod) then
+                                              Related_Nod
+                                           else Id);
+          Comp_Unit : constant Entity_Id :=
+                        Cunit_Entity (Get_Source_Unit (Ref_Node));
+       begin
+          return Expander_Active
+            and then not Extra_Formals_Known (Id)
+            and then not Underlying_Types_Available (Id)
+            and then Is_Compilation_Unit (Comp_Unit)
+            and then Ekind (Comp_Unit) in E_Package_Body
+                                        | E_Subprogram_Body;
+       end Is_Unsupported_Extra_Formals_Entity;
+ 
+       --------------------------------------------
+       -- Register_Deferred_Extra_Formals_Entity --
+       --------------------------------------------
+ 
+       procedure Register_Deferred_Extra_Formals_Entity (Id : Entity_Id) is
+ 
+          procedure Register_Type (Typ : Entity_Id);
+          --  Register the given type in Types_List; for types visible though
+          --  limited_with_clauses, register their non-limited view.
+ 
+          -------------------
+          -- Register_Type --
+          -------------------
+ 
+          procedure Register_Type (Typ : Entity_Id) is
+          begin
+             --  Handle entities visible through limited_with_clauses
+ 
+             if Has_Non_Limited_View (Typ) then
+                Append_Unique_Elmt (Non_Limited_View (Typ), Types_List);
+             else
+                Append_Unique_Elmt (Typ, Types_List);
+             end if;
+          end Register_Type;
+ 
+          --  Local variables
+ 
+          Formal : Entity_Id;
+ 
+       --  Start of processing for Register_Deferred_Extra_Formals_Entity
+ 
+       begin
+          pragma Assert (Is_Subprogram_Or_Entry (Id)
+            or else Ekind (Id) in E_Subprogram_Type);
+ 
+          if not Is_Deferred_Extra_Formals_Entity (Id) then
+             if No (Types_List) then
+                Types_List := New_Elmt_List;
+             end if;
+ 
+             if No (Entities_List) then
+                Entities_List := New_Elmt_List;
+             end if;
+ 
+             --  Register all the types of the subprogram profile that are not
+             --  fully known.
+ 
+             Formal := First_Formal (Id);
+             while Present (Formal) loop
+ 
+                if No (Underlying_Type (Etype (Formal))) then
+                   Register_Type (Etype (Formal));
+                end if;
+ 
+                Next_Formal (Formal);
+             end loop;
+ 
+             if Ekind (Id) in E_Function | E_Subprogram_Type
+               and then No (Underlying_Type (Etype (Id)))
+             then
+                Register_Type (Etype (Id));
+             end if;
+ 
+             --  Register this subprogram
+ 
+             Append_Elmt (Id, Entities_List);
+          end if;
+       end Register_Deferred_Extra_Formals_Entity;
+ 
+       ------------------------------------------
+       -- Register_Deferred_Extra_Formals_Call --
+       ------------------------------------------
+ 
+       procedure Register_Deferred_Extra_Formals_Call
+         (Call_Node : Node_Id;
+          Scope_Id  : Entity_Id) is
+       begin
+          pragma Assert (Nkind (Call_Node) in N_Subprogram_Call
+                                            | N_Entry_Call_Statement);
+          if No (Calls_List) then
+             Calls_List := New_Elmt_List;
+             Calls_Scope_List := New_Elmt_List;
+          end if;
+ 
+          --  Avoid registering any call twice; this may occur in dispatching
+          --  calls with deferred extra actuals because Expand_Call_Helper
+          --  registers the call and invokes Expand_Dispatching_Call (which
+          --  tries again to register the expanded call).
+ 
+          if not Contains (Calls_List, Call_Node) then
+             Append_Elmt (Call_Node, Calls_List);
+             Append_Elmt (Scope_Id, Calls_Scope_List);
+          end if;
+       end Register_Deferred_Extra_Formals_Call;
+ 
+       --------------------------------
+       -- Underlying_Types_Available --
+       --------------------------------
+ 
+       function Underlying_Types_Available (E : Entity_Id) return Boolean is
+          Formal     : Entity_Id;
+          Formal_Typ : Entity_Id;
+          Func_Typ   : Entity_Id;
+ 
+       begin
+          --  If the extra formals are available, then the nonlimited view
+          --  of all the types referenced in the profile are available.
+ 
+          if Extra_Formals_Known (E) then
+             return True;
+          end if;
+ 
+          --  Check the return type
+ 
+          if Ekind (E) in E_Function | E_Subprogram_Type then
+             Func_Typ := Etype (E);
+ 
+             if Has_Non_Limited_View (Func_Typ) then
+                Func_Typ := Non_Limited_View (Func_Typ);
+             end if;
+ 
+             if No (Underlying_Type (Func_Typ)) then
+                return False;
+             end if;
+          end if;
+ 
+          --  Check the type of the formals
+ 
+          Formal := First_Formal (E);
+          while Present (Formal) loop
+             Formal_Typ := Etype (Formal);
+ 
+             if Has_Non_Limited_View (Formal_Typ) then
+                Formal_Typ := Non_Limited_View (Formal_Typ);
+             end if;
+ 
+             if No (Underlying_Type (Formal_Typ)) then
+                return False;
+             end if;
+ 
+             Next_Formal (Formal);
+          end loop;
+ 
+          return True;
+       end Underlying_Types_Available;
+ 
+    end Deferred_Extra_Formals_Support;
+ 
     ---------------------
     -- Process_Formals --
     ---------------------
*************** package body Sem_Ch6 is
*** 12964,12976 ****
     --  Start of processing for Process_Formals
  
     begin
-       --  In order to prevent premature use of the formals in the same formal
-       --  part, the Ekind is left undefined until all default expressions are
-       --  analyzed. The Ekind is established in a separate loop at the end.
- 
        Param_Spec := First (T);
        while Present (Param_Spec) loop
           Formal := Defining_Identifier (Param_Spec);
           Set_Never_Set_In_Source (Formal, True);
           Enter_Name (Formal);
  
--- 13632,13641 ----
     --  Start of processing for Process_Formals
  
     begin
        Param_Spec := First (T);
        while Present (Param_Spec) loop
           Formal := Defining_Identifier (Param_Spec);
+          Set_Formal_Mode (Formal, Param_Spec, Current_Scope);
           Set_Never_Set_In_Source (Formal, True);
           Enter_Name (Formal);
  
*************** package body Sem_Ch6 is
*** 13208,13214 ****
              --  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.
--- 13873,13879 ----
              --  Do the special preanalysis of the expression (see section on
              --  "Handling of Default Expressions" in the spec of package Sem).
  
!             Preanalyze_And_Resolve_Spec_Expression (Default, Formal_Type);
  
              --  An access to constant cannot be the default for
              --  an access parameter that is an access to variable.
*************** package body Sem_Ch6 is
*** 13288,13299 ****
           Analyze_Return_Type (Related_Nod);
        end if;
  
-       --  Now set the kind (mode) of each formal
- 
        Param_Spec := First (T);
        while Present (Param_Spec) loop
           Formal := Defining_Identifier (Param_Spec);
!          Set_Formal_Mode (Formal);
  
           if Ekind (Formal) = E_In_Parameter then
              Default := Expression (Param_Spec);
--- 13953,14000 ----
           Analyze_Return_Type (Related_Nod);
        end if;
  
        Param_Spec := First (T);
        while Present (Param_Spec) loop
           Formal := Defining_Identifier (Param_Spec);
!          Set_Is_Not_Self_Hidden (Formal);
! 
!          --  Set Is_Known_Non_Null for access parameters since the language
!          --  guarantees that access parameters are always non-null. We also set
!          --  Can_Never_Be_Null, since there is no way to change the value.
! 
!          if Nkind (Parameter_Type (Param_Spec)) = N_Access_Definition then
! 
!             --  Ada 2005 (AI-231): In Ada 95, access parameters are always non-
!             --  null; In Ada 2005, only if then null_exclusion is explicit.
! 
!             if Ada_Version < Ada_2005
!               or else Can_Never_Be_Null (Etype (Formal))
!             then
!                Set_Is_Known_Non_Null (Formal);
!                Set_Can_Never_Be_Null (Formal);
!             end if;
! 
!          --  Ada 2005 (AI-231): Null-exclusion access subtype
! 
!          elsif Is_Access_Type (Etype (Formal))
!            and then Can_Never_Be_Null (Etype (Formal))
!          then
!             Set_Is_Known_Non_Null (Formal);
! 
!             --  We can also set Can_Never_Be_Null (thus preventing some junk
!             --  access checks) for the case of an IN parameter, which cannot
!             --  be changed, or for an IN OUT parameter, which can be changed
!             --  but not to a null value. But for an OUT parameter, the initial
!             --  value passed in can be null, so we can't set this flag in that
!             --  case.
! 
!             if Ekind (Formal) /= E_Out_Parameter then
!                Set_Can_Never_Be_Null (Formal);
!             end if;
!          end if;
! 
!          Set_Mechanism (Formal, Default_Mechanism);
!          Set_Formal_Validity (Formal);
  
           if Ekind (Formal) = E_In_Parameter then
              Default := Expression (Param_Spec);
*************** package body Sem_Ch6 is
*** 13564,13586 ****
     -- Set_Formal_Mode --
     ---------------------
  
!    procedure Set_Formal_Mode (Formal_Id : Entity_Id) is
!       Spec : constant Node_Id   := Parent (Formal_Id);
!       Id   : constant Entity_Id := Scope (Formal_Id);
! 
     begin
        --  Note: we set Is_Known_Valid for IN parameters and IN OUT parameters
        --  since we ensure that corresponding actuals are always valid at the
        --  point of the call.
  
        if Out_Present (Spec) then
!          if Is_Entry (Id)
!            or else Is_Subprogram_Or_Generic_Subprogram (Id)
           then
!             Set_Has_Out_Or_In_Out_Parameter (Id, True);
           end if;
  
!          if Ekind (Id) in E_Function | E_Generic_Function then
  
              --  [IN] OUT parameters allowed for functions in Ada 2012
  
--- 14265,14287 ----
     -- Set_Formal_Mode --
     ---------------------
  
!    procedure Set_Formal_Mode
!      (Formal_Id : Entity_Id;
!       Spec      : N_Parameter_Specification_Id;
!       Subp_Id   : Entity_Id) is
     begin
        --  Note: we set Is_Known_Valid for IN parameters and IN OUT parameters
        --  since we ensure that corresponding actuals are always valid at the
        --  point of the call.
  
        if Out_Present (Spec) then
!          if Is_Entry (Subp_Id)
!            or else Is_Subprogram_Or_Generic_Subprogram (Subp_Id)
           then
!             Set_Has_Out_Or_In_Out_Parameter (Subp_Id, True);
           end if;
  
!          if Ekind (Subp_Id) in E_Function | E_Generic_Function then
  
              --  [IN] OUT parameters allowed for functions in Ada 2012
  
*************** package body Sem_Ch6 is
*** 13617,13661 ****
        else
           Mutate_Ekind (Formal_Id, E_In_Parameter);
        end if;
- 
-       Set_Is_Not_Self_Hidden (Formal_Id);
- 
-       --  Set Is_Known_Non_Null for access parameters since the language
-       --  guarantees that access parameters are always non-null. We also set
-       --  Can_Never_Be_Null, since there is no way to change the value.
- 
-       if Nkind (Parameter_Type (Spec)) = N_Access_Definition then
- 
-          --  Ada 2005 (AI-231): In Ada 95, access parameters are always non-
-          --  null; In Ada 2005, only if then null_exclusion is explicit.
- 
-          if Ada_Version < Ada_2005
-            or else Can_Never_Be_Null (Etype (Formal_Id))
-          then
-             Set_Is_Known_Non_Null (Formal_Id);
-             Set_Can_Never_Be_Null (Formal_Id);
-          end if;
- 
-       --  Ada 2005 (AI-231): Null-exclusion access subtype
- 
-       elsif Is_Access_Type (Etype (Formal_Id))
-         and then Can_Never_Be_Null (Etype (Formal_Id))
-       then
-          Set_Is_Known_Non_Null (Formal_Id);
- 
-          --  We can also set Can_Never_Be_Null (thus preventing some junk
-          --  access checks) for the case of an IN parameter, which cannot
-          --  be changed, or for an IN OUT parameter, which can be changed but
-          --  not to a null value. But for an OUT parameter, the initial value
-          --  passed in can be null, so we can't set this flag in that case.
- 
-          if Ekind (Formal_Id) /= E_Out_Parameter then
-             Set_Can_Never_Be_Null (Formal_Id);
-          end if;
-       end if;
- 
-       Set_Mechanism (Formal_Id, Default_Mechanism);
-       Set_Formal_Validity (Formal_Id);
     end Set_Formal_Mode;
  
     -------------------------
--- 14318,14323 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch6.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch6.ads
*** gcc-15.2.0/gcc/ada/sem_ch6.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch6.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Ch6 is
*** 67,81 ****
     --  Designator can be a E_Subprogram_Type, E_Procedure or E_Function. Set
     --  Has_Delayed_Freeze on Designator if its freezing needs to be delayed.
  
-    procedure Check_Discriminant_Conformance
-      (N        : Node_Id;
-       Prev     : Entity_Id;
-       Prev_Loc : Node_Id);
-    --  Check that the discriminants of a full type N fully conform to the
-    --  discriminants of the corresponding partial view Prev. Prev_Loc indicates
-    --  the source location of the partial view, which may be different than
-    --  Prev in the case of private types.
- 
     procedure Check_Formal_Subprogram_Conformance
       (New_Id  : Entity_Id;
        Old_Id  : Entity_Id;
--- 67,72 ----
*************** package Sem_Ch6 is
*** 169,181 ****
     --  True when this is a check against a formal access-to-subprogram type,
     --  indicating that mapping of types is needed.
  
!    procedure Create_Extra_Formals (E : Entity_Id);
     --  For each parameter of a subprogram or entry that requires an additional
     --  formal (such as for access parameters and indefinite discriminated
     --  parameters), creates the appropriate formal and attach it to its
     --  associated parameter. Each extra formal will also be appended to
     --  the end of Subp's parameter list (with each subsequent extra formal
     --  being attached to the preceding extra formal).
  
     function Extra_Formals_Match_OK
       (E     : Entity_Id;
--- 160,182 ----
     --  True when this is a check against a formal access-to-subprogram type,
     --  indicating that mapping of types is needed.
  
!    procedure Create_Extra_Formals
!      (E           : Entity_Id;
!       Related_Nod : Node_Id := Empty);
     --  For each parameter of a subprogram or entry that requires an additional
     --  formal (such as for access parameters and indefinite discriminated
     --  parameters), creates the appropriate formal and attach it to its
     --  associated parameter. Each extra formal will also be appended to
     --  the end of Subp's parameter list (with each subsequent extra formal
     --  being attached to the preceding extra formal).
+    --
+    --  Related_Nod is the node motivating the frontend call to create the
+    --  extra formals; it is not passed when the node causing the call is E
+    --  (for example, as part of freezing E). Related_Nod provides the context
+    --  where the extra formals are created, and it is used to determine if
+    --  the creation of the extra formals can be deferred when the underlying
+    --  type of some formal (or its return type) is not available, and thus
+    --  improve the support for AI05-0151-1/08.
  
     function Extra_Formals_Match_OK
       (E     : Entity_Id;
*************** package Sem_Ch6 is
*** 199,204 ****
--- 200,213 ----
     --  Use the subprogram specification in the body to retrieve the previous
     --  subprogram declaration, if any.
  
+    procedure Freeze_Extra_Formals (E : Entity_Id);
+    --  Given a subprogram, subprogram type, or entry, flag E to indicate that
+    --  its extra formals (if any) are known (by setting Extra_Formals_Known).
+    --  This subprogram serves three purposes: (1) Document the places where
+    --  the extra formals are known, (2) Ensure that extra formals are added
+    --  only once, and (3) Provide a convenient place for setting a debugger
+    --  breakpoint to locate when extra formals are known.
+ 
     function Fully_Conformant (New_Id, Old_Id : Entity_Id) return Boolean;
     --  Determine whether two callable entities (subprograms, entries,
     --  literals) are fully conformant (RM 6.3.1(17))
*************** package Sem_Ch6 is
*** 308,311 ****
--- 317,475 ----
     procedure Valid_Operator_Definition (Designator : Entity_Id);
     --  Verify that an operator definition has the proper number of formals
  
+    ------------------------------------
+    -- Deferred_Extra_Formals_Support --
+    ------------------------------------
+ 
+    --  This package provides support for deferring the addition of extra
+    --  formals to subprograms, entries, and subprogram types; it also provides
+    --  support for deferring the addition of extra actuals to direct calls to
+    --  subprograms and entries, and indirect calls through subprogram types.
+    --  The addition of the extra formals and actuals is deferred until the
+    --  underlying type of all the parameters and result types of registered
+    --  subprograms, entries, and subprogram types is known.
+ 
+    --  Functional Description
+    --  ----------------------
+    --
+    --  When Create_Extra_Formals identifies that the underlying type of
+    --  some parameter or result type of an entity E is not available, E is
+    --  registered by this package, and the addition of its extra formals is
+    --  deferred. As part of this registration, the types of all the params
+    --  and result types of E with no underlying type are also registered.
+    --
+    --  When Expand_Call_Helper identifies that the underlying type of some
+    --  parameter or result type of a called entity is not available, the call
+    --  is registered by Register_Deferred_Extra_Formals_Call, and the addition
+    --  of its extra actuals is deferred.
+    --
+    --  When the full type declaration of some registered type T is analyzed,
+    --  the subprogram Add_Deferred_Extra_Params is invoked; this subprogram
+    --  does the following actions:
+    --    1) Check all the registered entities (subprograms, entries, and
+    --       subprogram types); for each registered entity that has all its
+    --       underlying types available, call Create_Extra_Formals, and
+    --       unregister the entity.
+    --    2) Check all the registered calls; for each registered call that
+    --       has available the underlying type of all the parameters and result
+    --       types of the called entity, call Create_Extra_Actuals, and
+    --       unregister the call.
+    --    3) Unregister T.
+    --
+    --  Example 1
+    --  ---------
+    --  A package spec has a private type declaration T, and declarations of
+    --  expression functions and/or primitives with class-wide conditions
+    --  invoking primitives of type T before the full view of T is defined.
+    --
+    --  As part of processing the early freezing of the called subprograms
+    --  (and as part of processing the calls) the functions are registered as
+    --  subprograms with deferred extra formals, and the calls are registered
+    --  as calls with deferred extra actuals.
+    --
+    --  When the full type declaration of T is analyzed, extra formals are
+    --  added to all the registered subprograms, and extra actuals are added
+    --  to all the registered calls with deferred extra actuals.
+    --
+    --  Example 2
+    --  ---------
+    --  The specification of package P has a limited_with_clause on package Q,
+    --  and the type of the formals of subprograms defined in P are types
+    --  defined in Q.
+    --
+    --  When compiling the spec of P, similarly to the previous example,
+    --  subprograms with incomplete formals are registered as subprograms
+    --  with deferred extra formals; if the spec of P has calls to these
+    --  subprograms, then these calls are registered as calls with deferred
+    --  extra actuals. That is, when the analysis of package P completes,
+    --  deferred extra formals and actuals have not been added.
+    --
+    --  When another compilation unit is analyzed (including the body of
+    --  package P), and a regular with-clause on Q is processed, when the
+    --  full type declaration of deferred entities is analyzed, deferred
+    --  extra formals and deferred extra actuals are added.
+    --
+    --  This machinery relies on the GNAT Compilation Model; that is, when
+    --  we analyze the spec of P (for which we generally don't generate code),
+    --  it is safe to complete the compilation and still have entities with
+    --  deferred extra formals, and calls with deferred extra actuals.
+    --
+    --  The body package P generally has a regular with-clause on package Q.
+    --  Hence, when we compile the body of package P, the implicit dependence
+    --  on its package spec causes the analysis of the spec of P (thus
+    --  registering deferred entities), followed by the analysis of context
+    --  clauses in the body of P. When the regular with-clause on package Q
+    --  is analyzed, we add the extra formals and extra actuals to deferred
+    --  entities. Thus, the generated code will have all the needed formals.
+    --
+    --  The (still) unsupported case is when the body of package P does not
+    --  have a regular with-clause on package Q (AI05-0151-1/08). This case
+    --  is left documented in the front-end sources by means of calls to
+    --  the following subprograms: Is_Unsupported_Extra_Formals_Entity, and
+    --  Is_Unsupported_Extra_Actuals_Call.
+ 
+    package Deferred_Extra_Formals_Support is
+ 
+       procedure Add_Deferred_Extra_Params (Typ : Entity_Id);
+       --  Check all the registered subprograms, entries, and subprogram types
+       --  with deferred addition of their extra formals; if the underlying
+       --  types of all their formals is available then add their extra formals.
+       --  Check also all the registered calls with deferred addition of their
+       --  extra actuals; add their extra actuals if the underlying types of all
+       --  their parameters and result types are available. Finally unregister
+       --  Typ from the list of types used for the deferral of extra formals/
+       --  actuals.
+ 
+       procedure Register_Deferred_Extra_Formals_Entity (Id : Entity_Id);
+       --  Register the given subprogram, entry, or subprogram type to defer the
+       --  addition of its extra formals.
+ 
+       procedure Register_Deferred_Extra_Formals_Call
+         (Call_Node : Node_Id;
+          Scope_Id  : Entity_Id);
+       --  Register the given call, performed from the given scope, to defer the
+       --  addition of its extra actuals.
+ 
+       function Has_Deferred_Extra_Formals (Typ : Entity_Id) return Boolean;
+       --  Return True if there some registered subprogram, subprogram type, or
+       --  entry with deferred extra formals that has some formal type or
+       --  result type of type Typ (i.e. which depends on the given type to
+       --  add its extra formals).
+ 
+       function Is_Deferred_Extra_Formals_Entity
+         (Id : Entity_Id) return Boolean;
+       --  Return True if Id is a subprogram, subprogram type, or entry that has
+       --  been registered to defer the addition of its extra formals.
+ 
+       function Is_Unsupported_Extra_Formals_Entity
+         (Id          : Entity_Id;
+          Related_Nod : Node_Id := Empty) return Boolean;
+       --  Id is a subprogram, subprogram type, or entry. Return True if Id is
+       --  unsupported for deferring the addition of its extra formals; that is,
+       --  it is defined in a compilation unit that is a package body or a
+       --  subprogram body, and the underlying type of some of its parameters
+       --  or result type is not available. Related_Nod is the node where this
+       --  check is performed (it is generally a subprogram call); if it is not
+       --  available then the location of entity Id is used as its related node.
+       --
+       --  The context for this case is an unsupported case of AI05-0151-1/08
+       --  that allows incomplete tagged types as parameter and result types.
+       --  More concretely, a type T is visible in a package spec through a
+       --  limited_with_clause, and the body of the package has no regular
+       --  with_clause. In such a case, the machinery for deferring the
+       --  addition of extra formals does not work because the underlying
+       --  type of the type is not seen during the compilation of the
+       --  package body.
+       --
+       --  The purpose of this function is to facilitate locating in the sources
+       --  the places where the front end performs the current (incomplete)
+       --  management of such case (to facilitate further work) ???
+ 
+       function Is_Unsupported_Extra_Actuals_Call
+         (Call_Node : Node_Id; Id : Entity_Id) return Boolean;
+       --  Same as previous function but applicable to a call to the given
+       --  entity Id.
+ 
+    end Deferred_Extra_Formals_Support;
+ 
  end Sem_Ch6;
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch7.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch7.adb
*** gcc-15.2.0/gcc/ada/sem_ch7.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch7.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 32,38 ****
  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 Elists;         use Elists;
--- 32,37 ----
*************** with Sem_Util;       use Sem_Util;
*** 66,72 ****
  with Sem_Warn;       use Sem_Warn;
  with Snames;         use Snames;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 65,70 ----
*************** package body Sem_Ch7 is
*** 206,212 ****
     function Node_Hash (Id : Entity_Id) return Entity_Header_Num;
     --  Simple hash function for Entity_Ids
  
!    package Subprogram_Table is new GNAT.Htable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
--- 204,210 ----
     function Node_Hash (Id : Entity_Id) return Entity_Header_Num;
     --  Simple hash function for Entity_Ids
  
!    package Subprogram_Table is new GNAT.HTable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
*************** package body Sem_Ch7 is
*** 216,222 ****
     --  Hash table to record which subprograms are referenced. It is declared
     --  at library level to avoid elaborating it for every call to Analyze.
  
!    package Traversed_Table is new GNAT.Htable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
--- 214,220 ----
     --  Hash table to record which subprograms are referenced. It is declared
     --  at library level to avoid elaborating it for every call to Analyze.
  
!    package Traversed_Table is new GNAT.HTable.Simple_HTable
       (Header_Num => Entity_Header_Num,
        Element    => Boolean,
        No_Element => False,
*************** package body Sem_Ch7 is
*** 714,721 ****
  
        --  Local variables
  
!       Saved_GM   : constant Ghost_Mode_Type := Ghost_Mode;
!       Saved_IGR  : constant Node_Id         := Ignored_Ghost_Region;
        Saved_EA   : constant Boolean         := Expander_Active;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
--- 712,718 ----
  
        --  Local variables
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        Saved_EA   : constant Boolean         := Expander_Active;
        Saved_ISMP : constant Boolean         :=
                       Ignore_SPARK_Mode_Pragmas_In_Instance;
*************** package body Sem_Ch7 is
*** 836,842 ****
        --  user entities, as internally generated entities might still need
        --  to be expanded (e.g. those generated for types).
  
!       if Present (Ignored_Ghost_Region)
          and then Comes_From_Source (Body_Id)
        then
           Expander_Active := False;
--- 833,840 ----
        --  user entities, as internally generated entities might still need
        --  to be expanded (e.g. those generated for types).
  
!       if not CodePeer_Mode
!         and then Present (Ghost_Config.Ignored_Ghost_Region)
          and then Comes_From_Source (Body_Id)
        then
           Expander_Active := False;
*************** package body Sem_Ch7 is
*** 1149,1160 ****
           end if;
        end if;
  
!       if Present (Ignored_Ghost_Region) then
           Expander_Active := Saved_EA;
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Package_Body_Helper;
  
     ---------------------------------
--- 1147,1160 ----
           end if;
        end if;
  
!       if not CodePeer_Mode and then
!         Present (Ghost_Config.Ignored_Ghost_Region)
!       then
           Expander_Active := Saved_EA;
        end if;
  
        Ignore_SPARK_Mode_Pragmas_In_Instance := Saved_ISMP;
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Package_Body_Helper;
  
     ---------------------------------
*************** package body Sem_Ch7 is
*** 2267,2273 ****
                          Next_Elmt (Op_Elmt_2);
                       end loop;
  
!                      --  Case 2: We have not found any explicit overriding and
                       --  hence we need to declare the operation (i.e., make it
                       --  visible).
  
--- 2267,2298 ----
                          Next_Elmt (Op_Elmt_2);
                       end loop;
  
!                      --  Case 2: For a formal type, we need to explicitly check
!                      --  whether a local subprogram hides from all visibility
!                      --  the implicitly declared primitive, because subprograms
!                      --  declared in a generic package specification are never
!                      --  primitive for a formal type, even if they happen to
!                      --  override an operation of the type (RM 3.2.3(7.d/2)).
! 
!                      if Is_Generic_Type (E) then
!                         declare
!                            S : Entity_Id;
! 
!                         begin
!                            S := E;
!                            while Present (S) loop
!                               if Chars (S) = Chars (Parent_Subp)
!                                 and then Type_Conformant (Prim_Op, S)
!                               then
!                                  goto Next_Primitive;
!                               end if;
! 
!                               Next_Entity (S);
!                            end loop;
!                         end;
!                      end if;
! 
!                      --  Case 3: We have not found any explicit overriding and
                       --  hence we need to declare the operation (i.e., make it
                       --  visible).
  
*************** package body Sem_Ch7 is
*** 2522,2532 ****
             and then Scope (Full_View (Id)) = Scope (Id)
             and then Ekind (Full_View (Id)) /= E_Incomplete_Type
           then
              --  If there is a use-type clause on the private type, set the full
              --  view accordingly.
  
!             Set_In_Use (Full_View (Id), In_Use (Id));
!             Full := Full_View (Id);
  
              if Is_Private_Base_Type (Full)
                and then Has_Private_Declaration (Full)
--- 2547,2559 ----
             and then Scope (Full_View (Id)) = Scope (Id)
             and then Ekind (Full_View (Id)) /= E_Incomplete_Type
           then
+             Full := Full_View (Id);
+ 
              --  If there is a use-type clause on the private type, set the full
              --  view accordingly.
  
!             Set_In_Use (Full, In_Use (Id));
!             Set_Current_Use_Clause (Full, Current_Use_Clause (Id));
  
              if Is_Private_Base_Type (Full)
                and then Has_Private_Declaration (Full)
*************** package body Sem_Ch7 is
*** 2759,2767 ****
  
        Set_Is_Tagged_Type (Id, Tagged_Present (Def));
  
-       Set_Discriminant_Constraint (Id, No_Elist);
-       Set_Stored_Constraint (Id, No_Elist);
- 
        if Present (Discriminant_Specifications (N)) then
           Push_Scope (Id);
           Process_Discriminants (N);
--- 2786,2791 ----
*************** package body Sem_Ch7 is
*** 2897,2903 ****
        --  When compiling a child unit this needs to be done recursively.
  
        function Type_In_Use (T : Entity_Id) return Boolean;
!       --  Check whether type or base type appear in an active use_type clause
  
        ------------------------------
        -- Preserve_Full_Attributes --
--- 2921,2932 ----
        --  When compiling a child unit this needs to be done recursively.
  
        function Type_In_Use (T : Entity_Id) return Boolean;
!       --  Check whether type T is declared in P and appears in an active
!       --  use_type clause.
! 
!       function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean;
!       --  Check whether the profile of primitive subprogram Id mentions a type
!       --  declared in P that appears in an active use-all-type clause.
  
        ------------------------------
        -- Preserve_Full_Attributes --
*************** package body Sem_Ch7 is
*** 3062,3072 ****
        -----------------
  
        function Type_In_Use (T : Entity_Id) return Boolean is
        begin
!          return Scope (Base_Type (T)) = P
!            and then (In_Use (T) or else In_Use (Base_Type (T)));
        end Type_In_Use;
  
     --  Start of processing for Uninstall_Declarations
  
     begin
--- 3091,3176 ----
        -----------------
  
        function Type_In_Use (T : Entity_Id) return Boolean is
+          BT : constant Entity_Id := Base_Type (T);
        begin
!          return Scope (BT) = P and then (In_Use (T) or else In_Use (BT));
        end Type_In_Use;
  
+       ----------------------------------
+       -- Type_Of_Primitive_In_Use_All --
+       ----------------------------------
+ 
+       function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean is
+          function Type_In_Use_All (T : Entity_Id) return Boolean;
+          --  Check whether type T is declared in P and appears in an active
+          --  use-all-type clause.
+ 
+          ---------------------
+          -- Type_In_Use_All --
+          ---------------------
+ 
+          function Type_In_Use_All (T : Entity_Id) return Boolean is
+          begin
+             return Type_In_Use (T)
+               and then Nkind (Current_Use_Clause (T)) = N_Use_Type_Clause
+               and then All_Present (Current_Use_Clause (T));
+          end Type_In_Use_All;
+ 
+          --  Local variables
+ 
+          F : Node_Id;
+ 
+       --  Start of processing for Type_Of_Primitive_In_Use_All
+ 
+       begin
+          --  The use-all-type clauses were introduced in Ada 2005
+ 
+          if Ada_Version <= Ada_95 then
+             return False;
+          end if;
+ 
+          --  For enumeration literals, check type
+ 
+          if Ekind (Id) = E_Enumeration_Literal then
+             return Type_In_Use_All (Etype (Id));
+          end if;
+ 
+          --  For functions, check return type
+ 
+          if Ekind (Id) = E_Function then
+             declare
+                Typ : constant Entity_Id :=
+                        (if Ekind (Etype (Id)) = E_Anonymous_Access_Type
+                         then Designated_Type (Etype (Id))
+                         else Etype (Id));
+             begin
+                if Type_In_Use_All (Typ) then
+                   return True;
+                end if;
+             end;
+          end if;
+ 
+          --  For all subprograms, check formals
+ 
+          F := First_Formal (Id);
+          while Present (F) loop
+             declare
+                Typ : constant Entity_Id :=
+                        (if Ekind (Etype (F)) = E_Anonymous_Access_Type
+                         then Designated_Type (Etype (F))
+                         else Etype (F));
+             begin
+                if Type_In_Use_All (Typ) then
+                   return True;
+                end if;
+             end;
+ 
+             Next_Formal (F);
+          end loop;
+ 
+          return False;
+       end Type_Of_Primitive_In_Use_All;
+ 
     --  Start of processing for Uninstall_Declarations
  
     begin
*************** package body Sem_Ch7 is
*** 3090,3097 ****
           --  the instantiation of the formals appears in the visible part,
           --  but the formals are private and remain so.
  
!          if Ekind (Id) = E_Function
!            and then Is_Operator_Symbol_Name (Chars (Id))
             and then not Is_Hidden (Id)
             and then not Error_Posted (Id)
           then
--- 3194,3200 ----
           --  the instantiation of the formals appears in the visible part,
           --  but the formals are private and remain so.
  
!          if Nkind (Id) = N_Defining_Operator_Symbol
             and then not Is_Hidden (Id)
             and then not Error_Posted (Id)
           then
*************** package body Sem_Ch7 is
*** 3124,3136 ****
              elsif No (Etype (Id)) and then Serious_Errors_Detected /= 0 then
                 null;
  
!             --  We need to avoid incorrectly marking enumeration literals as
!             --  non-visible when a visible use-all-type clause is in effect.
  
!             elsif Type_In_Use (Etype (Id))
!               and then Nkind (Current_Use_Clause (Etype (Id))) =
!                          N_Use_Type_Clause
!               and then All_Present (Current_Use_Clause (Etype (Id)))
              then
                 null;
  
--- 3227,3239 ----
              elsif No (Etype (Id)) and then Serious_Errors_Detected /= 0 then
                 null;
  
!             --  RM 8.4(8.1/3): Each primitive subprogram of T, including each
!             --  enumeration literal (if any), is potentially use-visible if T
!             --  is named in an active use-all-type clause.
  
!             elsif (Ekind (Id) = E_Enumeration_Literal
!                     or else (Is_Subprogram (Id) and then Is_Primitive (Id)))
!               and then Type_Of_Primitive_In_Use_All (Id)
              then
                 null;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch7.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch7.ads
*** gcc-15.2.0/gcc/ada/sem_ch7.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch7.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch8.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch8.adb
*** gcc-15.2.0/gcc/ada/sem_ch8.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch8.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
  with Errout;         use Errout;
--- 25,30 ----
*************** with Sem_Res;        use Sem_Res;
*** 68,74 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Type;       use Sem_Type;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 67,72 ----
*************** with Style;
*** 77,82 ****
--- 75,81 ----
  with Table;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
+ with Uname;          use Uname;
  with Warnsw;         use Warnsw;
  
  package body Sem_Ch8 is
*************** package body Sem_Ch8 is
*** 135,141 ****
     --  the order of their corresponding scopes on the scope stack. For
     --  example, if package P and the enclosing scope both contain entities
     --  named E, then when compiling the package body the chain for E will
!    --  hold the global entity first,  and the local one (corresponding to
     --  the current inner scope) next. As a result, name resolution routines
     --  do not assume any relative ordering of the homonym chains, either
     --  for scope nesting or to order of appearance of context clauses.
--- 134,140 ----
     --  the order of their corresponding scopes on the scope stack. For
     --  example, if package P and the enclosing scope both contain entities
     --  named E, then when compiling the package body the chain for E will
!    --  hold the global entity first, and the local one (corresponding to
     --  the current inner scope) next. As a result, name resolution routines
     --  do not assume any relative ordering of the homonym chains, either
     --  for scope nesting or to order of appearance of context clauses.
*************** package body Sem_Ch8 is
*** 206,212 ****
     --  a private or incomplete type declaration, or a protected type speci-
     --  fication) and re-chained when compiling the second view.
  
!    --  In the case of operators,  we do not make operators on derived types
     --  explicit. As a result, the notation P."+" may denote either a user-
     --  defined function with name "+", or else an implicit declaration of the
     --  operator "+" in package P. The resolution of expanded names always
--- 205,211 ----
     --  a private or incomplete type declaration, or a protected type speci-
     --  fication) and re-chained when compiling the second view.
  
!    --  In the case of operators, we do not make operators on derived types
     --  explicit. As a result, the notation P."+" may denote either a user-
     --  defined function with name "+", or else an implicit declaration of the
     --  operator "+" in package P. The resolution of expanded names always
*************** package body Sem_Ch8 is
*** 1872,1884 ****
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Nam       : constant Node_Id := Name (N);
!       Sel       : constant Node_Id := Selector_Name (Nam);
!       Is_Actual : constant Boolean := Present (Corresponding_Formal_Spec (N));
!       Old_S     : Entity_Id;
  
     begin
!       if Entity (Sel) = Any_Id then
  
           --  Selector is undefined on prefix. Error emitted already
  
--- 1871,1883 ----
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Nam : constant Node_Id := Name (N);
!       P   : constant Node_Id := Prefix (Nam);
! 
!       Old_S : Entity_Id;
  
     begin
!       if Entity (Selector_Name (Nam)) = Any_Id then
  
           --  Selector is undefined on prefix. Error emitted already
  
*************** package body Sem_Ch8 is
*** 1891,1897 ****
        Old_S := Find_Renamed_Entity (N, Selector_Name (Nam), New_S);
  
        if Old_S = Any_Id then
!          Error_Msg_N ("no subprogram or entry matches specification",  N);
        else
           if Is_Body then
              Check_Subtype_Conformant (New_S, Old_S, N);
--- 1890,1896 ----
        Old_S := Find_Renamed_Entity (N, Selector_Name (Nam), New_S);
  
        if Old_S = Any_Id then
!          Error_Msg_N ("no subprogram or entry matches specification", N);
        else
           if Is_Body then
              Check_Subtype_Conformant (New_S, Old_S, N);
*************** package body Sem_Ch8 is
*** 1909,1918 ****
           --  The prefix can be an arbitrary expression that yields a task or
           --  protected object, so it must be resolved.
  
!          if Is_Access_Type (Etype (Prefix (Nam))) then
!             Insert_Explicit_Dereference (Prefix (Nam));
           end if;
!          Resolve (Prefix (Nam), Scope (Old_S));
        end if;
  
        Set_Convention (New_S, Convention (Old_S));
--- 1908,1918 ----
           --  The prefix can be an arbitrary expression that yields a task or
           --  protected object, so it must be resolved.
  
!          if Is_Access_Type (Etype (P)) then
!             Insert_Explicit_Dereference (P);
           end if;
! 
!          Resolve (P, Scope (Old_S));
        end if;
  
        Set_Convention (New_S, Convention (Old_S));
*************** package body Sem_Ch8 is
*** 1923,1931 ****
  
        if Is_Protected_Type (Scope (Old_S))
          and then Ekind (New_S) = E_Procedure
!         and then not Is_Variable (Prefix (Nam))
        then
!          if Is_Actual then
              Error_Msg_N
                ("target object of protected operation used as actual for "
                 & "formal procedure must be a variable", Nam);
--- 1923,1931 ----
  
        if Is_Protected_Type (Scope (Old_S))
          and then Ekind (New_S) = E_Procedure
!         and then not Is_Variable (P)
        then
!          if Present (Corresponding_Formal_Spec (N)) then
              Error_Msg_N
                ("target object of protected operation used as actual for "
                 & "formal procedure must be a variable", Nam);
*************** package body Sem_Ch8 is
*** 1950,1957 ****
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Nam   : constant Node_Id := Name (N);
!       P     : constant Node_Id := Prefix (Nam);
        Old_S : Entity_Id;
  
     begin
--- 1950,1958 ----
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Nam : constant Node_Id := Name (N);
!       P   : constant Node_Id := Prefix (Nam);
! 
        Old_S : Entity_Id;
  
     begin
*************** package body Sem_Ch8 is
*** 1994,2006 ****
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Old_S : Entity_Id;
!       Nam   : Entity_Id;
  
        function Conforms
          (Subp : Entity_Id;
           Ctyp : Conformance_Type) return Boolean;
!       --  Verify that the signatures of the renamed entity and the new entity
        --  match. The first formal of the renamed entity is skipped because it
        --  is the target object in any subsequent call.
  
--- 1995,2007 ----
        New_S   : Entity_Id;
        Is_Body : Boolean)
     is
!       Nam : constant Node_Id := Name (N);
!       P   : constant Node_Id := Prefix (Nam);
  
        function Conforms
          (Subp : Entity_Id;
           Ctyp : Conformance_Type) return Boolean;
!       --  Verify that the profiles of the renamed entity and the new entity
        --  match. The first formal of the renamed entity is skipped because it
        --  is the target object in any subsequent call.
  
*************** package body Sem_Ch8 is
*** 2037,2050 ****
              Next_Formal (Old_F);
           end loop;
  
!          return True;
        end Conforms;
  
     --  Start of processing for Analyze_Renamed_Primitive_Operation
  
     begin
!       if not Is_Overloaded (Selector_Name (Name (N))) then
!          Old_S := Entity (Selector_Name (Name (N)));
  
           if not Conforms (Old_S, Type_Conformant) then
              Old_S := Any_Id;
--- 2038,2053 ----
              Next_Formal (Old_F);
           end loop;
  
!          return No (Old_F) and then No (New_F);
        end Conforms;
  
+       Old_S : Entity_Id;
+ 
     --  Start of processing for Analyze_Renamed_Primitive_Operation
  
     begin
!       if not Is_Overloaded (Selector_Name (Nam)) then
!          Old_S := Entity (Selector_Name (Nam));
  
           if not Conforms (Old_S, Type_Conformant) then
              Old_S := Any_Id;
*************** package body Sem_Ch8 is
*** 2059,2065 ****
  
           begin
              Old_S := Any_Id;
!             Get_First_Interp (Selector_Name (Name (N)), Ind, It);
  
              while Present (It.Nam) loop
                 if Conforms (It.Nam, Type_Conformant) then
--- 2062,2068 ----
  
           begin
              Old_S := Any_Id;
!             Get_First_Interp (Selector_Name (Nam), Ind, It);
  
              while Present (It.Nam) loop
                 if Conforms (It.Nam, Type_Conformant) then
*************** package body Sem_Ch8 is
*** 2072,2078 ****
        end if;
  
        if Old_S = Any_Id then
!          Error_Msg_N ("no subprogram or entry matches specification",  N);
  
        else
           if Is_Body then
--- 2075,2081 ----
        end if;
  
        if Old_S = Any_Id then
!          Error_Msg_N ("no subprogram or entry matches specification", N);
  
        else
           if Is_Body then
*************** package body Sem_Ch8 is
*** 2093,2112 ****
              --  AI12-0204: The prefix of a prefixed view that is renamed or
              --  passed as a formal subprogram must be renamable as an object.
  
!             Nam := Prefix (Name (N));
! 
!             if Is_Object_Reference (Nam) then
!                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;
              else
!                Error_Msg_N ("expect object name in renaming", Nam);
              end if;
  
              --  Enforce the rule given in (RM 6.3.1 (10.1/2)): a prefixed
--- 2096,2113 ----
              --  AI12-0204: The prefix of a prefixed view that is renamed or
              --  passed as a formal subprogram must be renamable as an object.
  
!             if Is_Object_Reference (P) then
!                if Is_Dependent_Component_Of_Mutable_Object (P) then
                    Error_Msg_N
                      ("illegal renaming of discriminant-dependent component",
!                      P);
!                elsif Depends_On_Mutably_Tagged_Ext_Comp (P) then
                    Error_Msg_N
                      ("illegal renaming of mutably tagged dependent component",
!                      P);
                 end if;
              else
!                Error_Msg_N ("expect object name in renaming", P);
              end if;
  
              --  Enforce the rule given in (RM 6.3.1 (10.1/2)): a prefixed
*************** package body Sem_Ch8 is
*** 2118,2129 ****
              Set_Convention (New_S, Convention_Intrinsic);
           end if;
  
!          --  Inherit_Renamed_Profile (New_S, Old_S);
  
           --  The prefix can be an arbitrary expression that yields an
           --  object, so it must be resolved.
  
!          Resolve (Prefix (Name (N)));
        end if;
     end Analyze_Renamed_Primitive_Operation;
  
--- 2119,2134 ----
              Set_Convention (New_S, Convention_Intrinsic);
           end if;
  
!          Set_Entity (Selector_Name (Nam), Old_S);
  
           --  The prefix can be an arbitrary expression that yields an
           --  object, so it must be resolved.
  
!          if Is_Access_Type (Etype (P)) then
!             Insert_Explicit_Dereference (P);
!          end if;
! 
!          Resolve (P);
        end if;
     end Analyze_Renamed_Primitive_Operation;
  
*************** package body Sem_Ch8 is
*** 3671,3683 ****
        then
           --  Do not mention the renaming if it comes from an instance
  
!          if not Is_Actual then
!             Error_Msg_N ("expect valid subprogram name in renaming", N);
!          else
              Error_Msg_NE ("no visible subprogram for formal&", N, Nam);
           end if;
  
           return;
        end if;
  
        --  Find the renamed entity that matches the given specification. Disable
--- 3676,3709 ----
        then
           --  Do not mention the renaming if it comes from an instance
  
!          if Is_Actual then
              Error_Msg_NE ("no visible subprogram for formal&", N, Nam);
+          else
+             Error_Msg_N ("expect valid subprogram name in renaming", N);
           end if;
  
           return;
+ 
+       --  RM 8.5.4(6): A name that denotes a formal parameter of the subprogram
+       --  specification is not allowed within Nam. But this was not enforced by
+       --  GNAT historically, so we restrict it to direct names.
+ 
+       elsif Nkind (Nam) = N_Identifier and then not Is_Actual then
+          declare
+             F : Node_Id;
+ 
+          begin
+             F := First_Formal (New_S);
+             while Present (F) loop
+                if Chars (F) = Chars (Nam) then
+                   Error_Msg_NE
+                     ("formal parameter& cannot be used in renaming", N, F);
+                   return;
+                end if;
+ 
+                Next_Formal (F);
+             end loop;
+          end;
        end if;
  
        --  Find the renamed entity that matches the given specification. Disable
*************** package body Sem_Ch8 is
*** 3847,3853 ****
           elsif Ekind (Old_S) /= E_Operator then
  
              --  If this a defaulted subprogram for a class-wide actual there is
!             --  no check for mode conformance,  given that the signatures don't
              --  match (the source mentions T but the actual mentions T'Class).
  
              if CW_Actual then
--- 3873,3879 ----
           elsif Ekind (Old_S) /= E_Operator then
  
              --  If this a defaulted subprogram for a class-wide actual there is
!             --  no check for mode conformance, given that the signatures don't
              --  match (the source mentions T but the actual mentions T'Class).
  
              if CW_Actual then
*************** package body Sem_Ch8 is
*** 4269,4274 ****
--- 4295,4334 ----
           Local_Restrict.Check_Actual_Subprogram_For_Instance
             (Actual_Subp_Name => Nam, Formal_Subp => Formal_Spec);
        end if;
+ 
+       --  If pragma Short_Circuit_And_Or is specified, then we give an error
+       --  for renaming an operator that is made short circuit.
+       --  For example, this is illegal:
+       --
+       --      function My_And (X, Y: Boolean) return Boolean renames "and";
+       --
+       --  if "and" denotes the usual predefined Boolean operator. Otherwise,
+       --  the semantics are confusing (sometimes short circuit, and sometimes
+       --  not, for calls to My_And). If we ever relax this rule, we will need
+       --  to clean up that run-time semantics.
+ 
+       if Short_Circuit_And_Or
+         and then Chars (Old_S) in Name_Op_And | Name_Op_Or
+         and then In_Extended_Main_Source_Unit (N)
+         and then Etype (Old_S) = Standard_Boolean
+         and then Is_Intrinsic_Subprogram (Old_S)
+       then
+          if Comes_From_Source (N) then
+             Error_Msg_N
+               ("pragma Short_Circuit_And_Or disallows renaming of " &
+                "operator", N);
+ 
+          --  Same error in case of an instantiation with My_And => "and"
+ 
+          elsif Present (Corresponding_Formal_Spec (N)) then
+             Error_Msg_N
+               ("pragma Short_Circuit_And_Or disallows passing of " &
+                "operator as a generic actual", N);
+ 
+          else
+             raise Program_Error;
+          end if;
+       end if;
     end Analyze_Subprogram_Renaming;
  
     -------------------------
*************** package body Sem_Ch8 is
*** 4300,4305 ****
--- 4360,4408 ----
  
        begin
           pragma Assert (Nkind (Clause) = N_Use_Package_Clause);
+ 
+          --  Perform "use implies with" expansion (when extensions are enabled)
+          --  by inserting an extra with clause since redundant clauses don't
+          --  really matter.
+ 
+          if All_Extensions_Allowed
+            and then Is_In_Context_Clause (Clause)
+            and then Nkind (Pack) in N_Expanded_Name
+                                   | N_Identifier
+                                   | N_Selected_Component
+          then
+             declare
+                Unum        : Unit_Number_Type;
+                With_Clause : constant Node_Id :=
+                  Make_With_Clause (Sloc (Clause),
+                    Name => New_Copy_Tree (Pack));
+             begin
+                --  Attempt to load the unit mentioned in the use clause
+ 
+                Unum := Load_Unit
+                          (Load_Name  => Get_Unit_Name (With_Clause),
+                           Required   => False,
+                           Subunit    => False,
+                           Error_Node => Clause,
+                           With_Node  => With_Clause);
+ 
+                --  Either we can't file the unit or the use clause is a
+                --  reference to a nested package - in that case just handle
+                --  the use clause normally.
+ 
+                if Unum /= No_Unit then
+ 
+                   Set_Library_Unit (With_Clause, Cunit (Unum));
+                   Set_Is_Implicit_With (With_Clause);
+ 
+                   Analyze (With_Clause);
+                   Expand_With_Clause
+                    (With_Clause, Name (With_Clause),
+                      Enclosing_Comp_Unit_Node (Clause));
+                end if;
+             end;
+          end if;
+ 
           Analyze (Pack);
  
           --  Verify that the package standard is not directly named in a
*************** package body Sem_Ch8 is
*** 4458,4463 ****
--- 4561,4570 ----
  
        Id := Subtype_Mark (N);
        Find_Type (Id);
+       if not Is_Entity_Name (Id) then
+          pragma Assert (Serious_Errors_Detected > 0);
+          return;
+       end if;
        E := Base_Type (Entity (Id));
  
        --  There are many cases where a use_type_clause may be reanalyzed due to
*************** package body Sem_Ch8 is
*** 4958,4967 ****
     -----------------------------------
  
     procedure Check_In_Previous_With_Clause (N, Nam : Node_Id) is
!       Pack : constant Entity_Id := Entity (Original_Node (Nam));
        Item : Node_Id;
        Par  : Node_Id;
  
     begin
        Item := First (Context_Items (Parent (N)));
        while Present (Item) and then Item /= N loop
--- 5065,5101 ----
     -----------------------------------
  
     procedure Check_In_Previous_With_Clause (N, Nam : Node_Id) is
! 
!       function Get_Name (N : Node_Id) return Node_Id;
!       --  Return the name of a package that may be present in a clause
! 
!       --------------
!       -- Get_Name --
!       --------------
! 
!       function Get_Name (N : Node_Id) return Node_Id is
!       begin
!          case Nkind (N) is
!             when N_Indexed_Component =>
!                return Prefix (N);
! 
!             when N_Function_Call =>
!                return Name (N);
! 
!             when others =>
!                return N;
!          end case;
!       end Get_Name;
! 
!       --  Local variables
! 
!       Pack : constant Entity_Id := Entity (Get_Name (Original_Node (Nam)));
! 
        Item : Node_Id;
        Par  : Node_Id;
  
+    --  Start of processing for Check_In_Previous_With_Clause
+ 
     begin
        Item := First (Context_Items (Parent (N)));
        while Present (Item) and then Item /= N loop
*************** package body Sem_Ch8 is
*** 4972,4978 ****
             and then Nkind (Name (Item)) /= N_Selected_Component
             and then Entity (Name (Item)) = Pack
           then
!             Par := Nam;
  
              --  Find root library unit in with_clause
  
--- 5106,5112 ----
             and then Nkind (Name (Item)) /= N_Selected_Component
             and then Entity (Name (Item)) = Pack
           then
!             Par := Get_Name (Original_Node (Nam));
  
              --  Find root library unit in with_clause
  
*************** package body Sem_Ch8 is
*** 4980,4986 ****
                 Par := Prefix (Par);
              end loop;
  
!             if Is_Child_Unit (Entity (Original_Node (Par))) then
                 Error_Msg_NE ("& is not directly visible", Par, Entity (Par));
              else
                 return;
--- 5114,5120 ----
                 Par := Prefix (Par);
              end loop;
  
!             if Is_Child_Unit (Entity (Par)) then
                 Error_Msg_NE ("& is not directly visible", Par, Entity (Par));
              else
                 return;
*************** package body Sem_Ch8 is
*** 5012,5017 ****
--- 5146,5159 ----
        if Nkind (Parent (N)) /= N_Compilation_Unit then
           return;
  
+       --  Structural instances can always be renamed
+ 
+       elsif Is_Generic_Instance (Old_E)
+         and then Present (Get_Unit_Instantiation_Node (Old_E))
+         and then Is_Structural (Get_Unit_Instantiation_Node (Old_E))
+       then
+          return;
+ 
        --  Check for library unit. Note that we used to check for the scope
        --  being Standard here, but that was wrong for Standard itself.
  
*************** package body Sem_Ch8 is
*** 5096,5102 ****
           --  An entity in the current scope is not necessarily the first one
           --  on its homonym chain. Find its predecessor if any,
           --  If it is an internal entity, it will not be in the visibility
!          --  chain altogether,  and there is nothing to unchain.
  
           if Id /= Current_Entity (Id) then
              Prev := Current_Entity (Id);
--- 5238,5244 ----
           --  An entity in the current scope is not necessarily the first one
           --  on its homonym chain. Find its predecessor if any,
           --  If it is an internal entity, it will not be in the visibility
!          --  chain altogether, and there is nothing to unchain.
  
           if Id /= Current_Entity (Id) then
              Prev := Current_Entity (Id);
*************** package body Sem_Ch8 is
*** 5131,5137 ****
              Set_Name_Entity_Id (Chars (Id), Outer);
  
           elsif Scope (Prev) /= Scope (Id) then
!             Set_Homonym (Prev,  Outer);
           end if;
  
           <<Next_Ent>>
--- 5273,5279 ----
              Set_Name_Entity_Id (Chars (Id), Outer);
  
           elsif Scope (Prev) /= Scope (Id) then
!             Set_Homonym (Prev, Outer);
           end if;
  
           <<Next_Ent>>
*************** package body Sem_Ch8 is
*** 5213,5240 ****
     ---------------------
  
     procedure End_Use_Package (N : Node_Id) is
!       Pack      : Entity_Id;
!       Pack_Name : Node_Id;
!       Id        : Entity_Id;
!       Elmt      : Elmt_Id;
! 
!       function Is_Primitive_Operator_In_Use
!         (Op : Entity_Id;
!          F  : Entity_Id) return Boolean;
!       --  Check whether Op is a primitive operator of a use-visible type
  
!       ----------------------------------
!       -- Is_Primitive_Operator_In_Use --
!       ----------------------------------
  
!       function Is_Primitive_Operator_In_Use
!         (Op : Entity_Id;
!          F  : Entity_Id) return Boolean
!       is
!          T : constant Entity_Id := Base_Type (Etype (F));
        begin
!          return In_Use (T) and then Scope (T) = Scope (Op);
!       end Is_Primitive_Operator_In_Use;
  
     --  Start of processing for End_Use_Package
  
--- 5355,5381 ----
     ---------------------
  
     procedure End_Use_Package (N : Node_Id) is
!       function Type_In_Use (T : Entity_Id; P : Entity_Id) return Boolean;
!       --  Check whether type T is declared in P and appears in an active
!       --  use_type clause.
  
!       -----------------
!       -- Type_In_Use --
!       -----------------
  
!       function Type_In_Use (T : Entity_Id; P : Entity_Id) return Boolean is
!          BT : constant Entity_Id := Base_Type (T);
        begin
!          return Scope (BT) = P and then (In_Use (T) or else In_Use (BT));
!       end Type_In_Use;
! 
!       --  Local variables
! 
!       Elmt      : Elmt_Id;
!       Id        : Entity_Id;
!       Pack      : Entity_Id;
!       Pack_Name : Node_Id;
!       Scop      : Entity_Id;
  
     --  Start of processing for End_Use_Package
  
*************** package body Sem_Ch8 is
*** 5260,5275 ****
  
                 --  Preserve use-visibility of operators that are primitive
                 --  operators of a type that is use-visible through an active
!                --  use_type_clause.
  
                 if Nkind (Id) = N_Defining_Operator_Symbol
                   and then
!                    (Is_Primitive_Operator_In_Use (Id, First_Formal (Id))
                       or else
                         (Present (Next_Formal (First_Formal (Id)))
                           and then
!                            Is_Primitive_Operator_In_Use
!                              (Id, Next_Formal (First_Formal (Id)))))
                 then
                    null;
                 else
--- 5401,5420 ----
  
                 --  Preserve use-visibility of operators that are primitive
                 --  operators of a type that is use-visible through an active
!                --  use_type_clause. Note that we compare with the scope of
!                --  the operator and not Pack itself, lest Pack be a renaming.
! 
!                Scop := Scope (Id);
  
                 if Nkind (Id) = N_Defining_Operator_Symbol
                   and then
!                    (Type_In_Use (Etype (Id), Scop)
!                      or else Type_In_Use (Etype (First_Formal (Id)), Scop)
                       or else
                         (Present (Next_Formal (First_Formal (Id)))
                           and then
!                            Type_In_Use
!                              (Etype (Next_Formal (First_Formal (Id))), Scop)))
                 then
                    null;
                 else
*************** package body Sem_Ch8 is
*** 5371,5381 ****
           elsif In_Open_Scopes (Scope (Base_Type (T))) then
              null;
  
           elsif not Redundant_Use (Id) then
!             Set_In_Use (T, False);
!             Set_In_Use (Base_Type (T), False);
!             Set_Current_Use_Clause (T, Empty);
!             Set_Current_Use_Clause (Base_Type (T), Empty);
  
              --  See Use_One_Type for the rationale. This is a bit on the naive
              --  side, but should be good enough in practice.
--- 5516,5529 ----
           elsif In_Open_Scopes (Scope (Base_Type (T))) then
              null;
  
+          --  Reinstate a previous use_type_clause (if any) on the type unless
+          --  the current use_type_clause is redundant.
+ 
           elsif not Redundant_Use (Id) then
!             Set_In_Use (T, Present (Prev_Use_Clause (N)));
!             Set_In_Use (Base_Type (T), Present (Prev_Use_Clause (N)));
!             Set_Current_Use_Clause (T, Prev_Use_Clause (N));
!             Set_Current_Use_Clause (Base_Type (T), Prev_Use_Clause (N));
  
              --  See Use_One_Type for the rationale. This is a bit on the naive
              --  side, but should be good enough in practice.
*************** package body Sem_Ch8 is
*** 5386,5395 ****
           end if;
        end if;
  
!       if Is_Empty_Elmt_List (Used_Operations (N)) then
!          return;
! 
!       else
           Elmt := First_Elmt (Used_Operations (N));
           while Present (Elmt) loop
              Set_Is_Potentially_Use_Visible (Node (Elmt), False);
--- 5534,5540 ----
           end if;
        end if;
  
!       if Present (Used_Operations (N)) then
           Elmt := First_Elmt (Used_Operations (N));
           while Present (Elmt) loop
              Set_Is_Potentially_Use_Visible (Node (Elmt), False);
*************** package body Sem_Ch8 is
*** 7106,7111 ****
--- 7251,7258 ----
  
        begin
           while Present (Id) loop
+             --  The immediate case is when Id is an entity of the prefix
+ 
              if Scope (Id) = P_Name then
                 Candidate        := Id;
                 Is_New_Candidate := True;
*************** package body Sem_Ch8 is
*** 7131,7136 ****
--- 7278,7330 ----
                    end if;
                 end if;
  
+             --  If the name of a generic child unit appears within an instance
+             --  of itself, then it is resolved to the renaming of the name of
+             --  the instance built in Sem_Ch12, so we get to the generic parent
+             --  through the renaming.
+ 
+             elsif Ekind (Id) in E_Function | E_Package | E_Procedure
+               and then Present (Renamed_Entity (Id))
+               and then Is_Generic_Instance (Renamed_Entity (Id))
+               and then In_Open_Scopes (Renamed_Entity (Id))
+             then
+                declare
+                   Gen_Inst : constant Entity_Id := Renamed_Entity (Id);
+                   Gen_Par  : constant Entity_Id :=
+                     Generic_Parent
+                       (Specification (Unit_Declaration_Node (Gen_Inst)));
+ 
+                begin
+                   --  The easy case is when Gen_Par is an entity of the prefix
+ 
+                   if Scope (Gen_Par) = P_Name then
+                      Is_New_Candidate := True;
+ 
+                   --  Now the prefix may also be within an instance of itself,
+                   --  but we do not need to go through the renaming for it, as
+                   --  this was done on entry to the procedure.
+ 
+                   elsif Is_Generic_Instance (P_Name)
+                     and then In_Open_Scopes (P_Name)
+                   then
+                      declare
+                         Gen_Par_P : constant Entity_Id :=
+                           Generic_Parent
+                             (Specification (Unit_Declaration_Node (P_Name)));
+ 
+                      begin
+                         if Scope (Gen_Par) = Gen_Par_P then
+                            Is_New_Candidate := True;
+                         else
+                            Is_New_Candidate := False;
+                         end if;
+                      end;
+ 
+                   else
+                      Is_New_Candidate := False;
+                   end if;
+                end;
+ 
              --  Ada 2005 (AI-217): Handle shadow entities associated with
              --  types declared in limited-withed nested packages. We don't need
              --  to handle E_Incomplete_Subtype entities because the entities
*************** package body Sem_Ch8 is
*** 7165,7186 ****
                 Candidate        := Get_Full_View (Id);
                 Is_New_Candidate := True;
  
-             --  An unusual case arises with a fully qualified name for an
-             --  entity local to a generic child unit package, within an
-             --  instantiation of that package. The name of the unit now
-             --  denotes the renaming created within the instance. This is
-             --  only relevant in an instance body, see below.
- 
-             elsif Is_Generic_Instance (Scope (Id))
-               and then In_Open_Scopes (Scope (Id))
-               and then In_Instance_Body
-               and then Ekind (Scope (Id)) = E_Package
-               and then Ekind (Id) = E_Package
-               and then Renamed_Entity (Id) = Scope (Id)
-               and then Is_Immediately_Visible (P_Name)
-             then
-                Is_New_Candidate := True;
- 
              else
                 Is_New_Candidate := False;
              end if;
--- 7359,7364 ----
*************** package body Sem_Ch8 is
*** 7315,7369 ****
                 end if;
  
              else
-                --  Within the instantiation of a child unit, the prefix may
-                --  denote the parent instance, but the selector has the name
-                --  of the original child. That is to say, when A.B appears
-                --  within an instantiation of generic child unit B, the scope
-                --  stack includes an instance of A (P_Name) and an instance
-                --  of B under some other name. We scan the scope to find this
-                --  child instance, which is the desired entity.
-                --  Note that the parent may itself be a child instance, if
-                --  the reference is of the form A.B.C, in which case A.B has
-                --  already been rewritten with the proper entity.
- 
-                if In_Open_Scopes (P_Name)
-                  and then Is_Generic_Instance (P_Name)
-                then
-                   declare
-                      Gen_Par : constant Entity_Id :=
-                                  Generic_Parent (Specification
-                                    (Unit_Declaration_Node (P_Name)));
-                      S : Entity_Id := Current_Scope;
-                      P : Entity_Id;
- 
-                   begin
-                      for J in reverse 0 .. Scope_Stack.Last loop
-                         S := Scope_Stack.Table (J).Entity;
- 
-                         exit when S = Standard_Standard;
- 
-                         if Ekind (S) in E_Function | E_Package | E_Procedure
-                         then
-                            P :=
-                              Generic_Parent (Specification
-                                (Unit_Declaration_Node (S)));
- 
-                            --  Check that P is a generic child of the generic
-                            --  parent of the prefix.
- 
-                            if Present (P)
-                              and then Chars (P) = Chars (Selector)
-                              and then Scope (P) = Gen_Par
-                            then
-                               Id := S;
-                               goto Found;
-                            end if;
-                         end if;
- 
-                      end loop;
-                   end;
-                end if;
- 
                 --  If this is a selection from Ada, System or Interfaces, then
                 --  we assume a missing with for the corresponding package.
  
--- 7493,7498 ----
*************** package body Sem_Ch8 is
*** 7470,7476 ****
           end if;
        end if;
  
-       <<Found>>
        if Comes_From_Source (N)
          and then Is_Remote_Access_To_Subprogram_Type (Id)
          and then Ekind (Id) = E_Access_Subprogram_Type
--- 7599,7604 ----
*************** package body Sem_Ch8 is
*** 8365,8371 ****
  
              if Is_Overloaded (P) then
  
!                --  The prefix must resolve to a unique enclosing construct
  
                 declare
                    Found : Boolean := False;
--- 8493,8500 ----
  
              if Is_Overloaded (P) then
  
!                --  The prefix must resolve to a unique enclosing construct, per
!                --  the last sentence of RM 4.1.3 (13).
  
                 declare
                    Found : Boolean := False;
*************** package body Sem_Ch8 is
*** 8379,8384 ****
--- 8508,8514 ----
                          if Found then
                             Error_Msg_N (
                                "prefix must be unique enclosing scope", N);
+                            Change_Selected_Component_To_Expanded_Name (N);
                             Set_Entity (N, Any_Id);
                             Set_Etype  (N, Any_Type);
                             return;
*************** package body Sem_Ch8 is
*** 8394,8485 ****
                 end;
              end if;
  
              if In_Open_Scopes (P_Name) then
                 Set_Entity (P, P_Name);
                 Set_Is_Overloaded (P, False);
                 Find_Expanded_Name (N);
  
              else
!                --  If no interpretation as an expanded name is possible, it
!                --  must be a selected component of a record returned by a
!                --  function call. Reformat prefix as a function call, the rest
!                --  is done by type resolution.
  
!                --  Error if the prefix is procedure or entry, as is P.X
  
!                if Ekind (P_Name) /= E_Function
!                  and then
!                    (not Is_Overloaded (P)
!                      or else Nkind (Parent (N)) = N_Procedure_Call_Statement)
!                then
!                   --  Prefix may mention a package that is hidden by a local
!                   --  declaration: let the user know. Scan the full homonym
!                   --  chain, the candidate package may be anywhere on it.
  
!                   if Present (Homonym (Current_Entity (P_Name))) then
!                      P_Name := Current_Entity (P_Name);
  
!                      while Present (P_Name) loop
!                         exit when Ekind (P_Name) = E_Package;
!                         P_Name := Homonym (P_Name);
                       end loop;
  
!                      if Present (P_Name) then
!                         if not Is_Reference_In_Subunit then
!                            Error_Msg_Sloc := Sloc (Entity (Prefix (N)));
!                            Error_Msg_NE
!                              ("package& is hidden by declaration#", N, P_Name);
!                         end if;
  
!                         Set_Entity (Prefix (N), P_Name);
!                         Find_Expanded_Name (N);
!                         return;
  
!                      else
!                         P_Name := Entity (Prefix (N));
!                      end if;
!                   end if;
  
!                   Error_Msg_NE
!                     ("invalid prefix in selected component&", N, P_Name);
!                   Change_Selected_Component_To_Expanded_Name (N);
!                   Set_Entity (N, Any_Id);
!                   Set_Etype (N, Any_Type);
  
!                --  Here we have a function call, so do the reformatting
  
!                else
!                   Nam := New_Copy (P);
!                   Save_Interps (P, Nam);
  
!                   --  We use Replace here because this is one of those cases
!                   --  where the parser has missclassified the node, and we fix
!                   --  things up and then do the semantic analysis on the fixed
!                   --  up node. Normally we do this using one of the Sinfo.CN
!                   --  routines, but this is too tricky for that.
  
!                   --  Note that using Rewrite would be wrong, because we would
!                   --  have a tree where the original node is unanalyzed.
  
!                   Replace (P,
!                     Make_Function_Call (Sloc (P), Name => Nam));
  
!                   --  Now analyze the reformatted node
  
!                   Analyze_Call (P);
  
!                   --  If the prefix is illegal after this transformation, there
!                   --  may be visibility errors on the prefix. The safest is to
!                   --  treat the selected component as an error.
  
!                   if Error_Posted (P) then
!                      Set_Etype (N, Any_Type);
!                      return;
  
!                   else
!                      Analyze_Selected_Component (N);
                    end if;
!                end if;
              end if;
  
           --  Remaining cases generate various error messages
--- 8524,8626 ----
                 end;
              end if;
  
+             --  Case of the enclosing construct
+ 
              if In_Open_Scopes (P_Name) then
                 Set_Entity (P, P_Name);
                 Set_Is_Overloaded (P, False);
                 Find_Expanded_Name (N);
  
+             --  If no interpretation as an expanded name is possible, then it
+             --  must be a selected component of a record returned by a function
+             --  call. Reformat the prefix as a function call and analyze it.
+ 
              else
!                declare
!                   procedure Diagnose_Call;
!                   --  Try and give useful diagnostics on error
  
!                   -------------------
!                   -- Diagnose_Call --
!                   -------------------
  
!                   procedure Diagnose_Call is
!                      Ent : Entity_Id;
  
!                   begin
!                      --  Prefix may mention a package that is hidden by a local
!                      --  declaration: let the user know. Scan the full homonym
!                      --  chain, the candidate package may be anywhere on it.
  
!                      Ent := Current_Entity (P_Name);
! 
!                      while Present (Ent) loop
!                         exit when Ekind (Ent) = E_Package;
!                         Ent := Homonym (Ent);
                       end loop;
  
!                      if Present (Ent) and then not Is_Reference_In_Subunit then
!                         Error_Msg_Sloc := Sloc (P_Name);
!                         Error_Msg_NE
!                           ("\package& is hidden by declaration#", N, Ent);
!                      end if;
  
!                      --  Format node as expanded name, to avoid cascaded errors
  
!                      Change_Selected_Component_To_Expanded_Name (N);
!                      Set_Entity (N, Any_Id);
!                      Set_Etype (N, Any_Type);
!                   end Diagnose_Call;
  
!                begin
!                   --  Error if the prefix is procedure or entry, as in P.X
  
!                   if Ekind (P_Name) /= E_Function
!                     and then not Is_Overloaded (P)
!                   then
!                      Error_Msg_N ("invalid prefix& in selected component", P);
!                      Diagnose_Call;
!                      return;
  
!                   --  Here we may have a function call, so do the reformatting
  
!                   else
!                      Nam := New_Copy (P);
!                      Save_Interps (P, Nam);
  
!                      --  We use Replace here because this is one of those cases
!                      --  where the parser has misclassified the node and we fix
!                      --  things up and then do semantic analysis on the fixed
!                      --  up node. Normally we do this using one of the Sinfo.CN
!                      --  routines, but this is too tricky for that.
  
!                      --  Note that using Rewrite would be wrong, since we would
!                      --  have a tree where the original node is unanalyzed.
  
!                      Replace (P, Make_Function_Call (Sloc (P), Name => Nam));
  
!                      --  Now analyze the reformatted node
  
!                      Analyze_Call (P);
  
!                      --  If the prefix is illegal after this transformation,
!                      --  there may be a visibility error on the prefix. The
!                      --  safest is to treat the selected component as an error.
  
!                      if Error_Posted (P) then
!                         Diagnose_Call;
!                         return;
! 
!                      else
!                         Analyze_Selected_Component (N);
! 
!                         if Error_Posted (N) then
!                            Diagnose_Call;
!                            return;
!                         end if;
!                      end if;
                    end if;
!                end;
              end if;
  
           --  Remaining cases generate various error messages
*************** package body Sem_Ch8 is
*** 8562,8568 ****
                    end if;
                 end;
  
!                Error_Msg_N ("invalid prefix in selected component&", P);
  
                 if Is_Incomplete_Type (P_Type)
                   and then Is_Access_Type (Etype (P))
--- 8703,8709 ----
                    end if;
                 end;
  
!                Error_Msg_N ("invalid prefix& in selected component", P);
  
                 if Is_Incomplete_Type (P_Type)
                   and then Is_Access_Type (Etype (P))
*************** package body Sem_Ch8 is
*** 8573,8579 ****
                 end if;
  
              else
!                Error_Msg_N ("invalid prefix in selected component", P);
              end if;
           end if;
        else
--- 8714,8720 ----
                 end if;
  
              else
!                Error_Msg_N ("invalid prefix& in selected component", P);
              end if;
           end if;
        else
*************** package body Sem_Ch8 is
*** 9431,9456 ****
              return;
           end if;
  
           Curr := Current_Use_Clause (Pak);
           while Present (Curr)
             and then not Is_Effective_Use_Clause (Curr)
           loop
!             --  We need to mark the previous use clauses as effective, but
!             --  each use clause may in turn render other use_package_clauses
!             --  effective. Additionally, it is possible to have a parent
!             --  package renamed as a child of itself so we must check the
!             --  prefix entity is not the same as the package we are marking.
! 
!             if Nkind (Name (Curr)) /= N_Identifier
!               and then Present (Prefix (Name (Curr)))
!               and then Entity (Prefix (Name (Curr))) /= Pak
!             then
!                Mark_Use_Package (Entity (Prefix (Name (Curr))));
! 
!             --  It is also possible to have a child package without a prefix
!             --  that relies on a previous use_package_clause.
  
!             elsif Nkind (Name (Curr)) = N_Identifier
                and then Is_Child_Unit (Entity (Name (Curr)))
              then
                 Mark_Use_Package (Scope (Entity (Name (Curr))));
--- 9572,9588 ----
              return;
           end if;
  
+          --  We need to mark the previous use clauses as effective, but each
+          --  use clause may in turn render other use clauses effective.
+ 
           Curr := Current_Use_Clause (Pak);
           while Present (Curr)
             and then not Is_Effective_Use_Clause (Curr)
           loop
!             --  It is possible to have a child package without a prefix that
!             --  relies on a previous use clause.
  
!             if Nkind (Name (Curr)) = N_Identifier
                and then Is_Child_Unit (Entity (Name (Curr)))
              then
                 Mark_Use_Package (Scope (Entity (Name (Curr))));
*************** package body Sem_Ch8 is
*** 9504,9509 ****
--- 9636,9646 ----
             and then Present (Scope (Entity (E)))
           then
              Mark_Use_Package (Scope (Entity (E)));
+ 
+             --  Additionally mark the types of the formals and the return
+             --  types as used when dealing with an overloaded operator.
+ 
+             Mark_Parameters (Entity (E));
           end if;
  
           Curr := Current_Use_Clause (Base);
*************** package body Sem_Ch8 is
*** 9833,9841 ****
          and then Scope (S) /= Standard_Standard
          and then not Is_Child_Unit (S)
        then
!          if Nkind (E) not in N_Entity then
!             return;
!          end if;
  
           --  Copy categorization flags from Scope (S) to S, this is not done
           --  when Scope (S) is Standard_Standard since propagation is from
--- 9970,9976 ----
          and then Scope (S) /= Standard_Standard
          and then not Is_Child_Unit (S)
        then
!          pragma Assert (Nkind (E) in N_Entity);
  
           --  Copy categorization flags from Scope (S) to S, this is not done
           --  when Scope (S) is Standard_Standard since propagation is from
*************** package body Sem_Ch8 is
*** 9878,9905 ****
  
     procedure Premature_Usage (N : Node_Id) is
        Kind : constant Node_Kind := Nkind (Parent (Entity (N)));
-       E    : Entity_Id := Entity (N);
  
     begin
-       --  Within an instance, the analysis of the actual for a formal object
-       --  does not see the name of the object itself. This is significant only
-       --  if the object is an aggregate, where its analysis does not do any
-       --  name resolution on component associations. (see 4717-008). In such a
-       --  case, look for the visible homonym on the chain.
- 
-       if In_Instance and then Present (Homonym (E)) then
-          E := Homonym (E);
-          while Present (E) and then not In_Open_Scopes (Scope (E)) loop
-             E := Homonym (E);
-          end loop;
- 
-          if Present (E) then
-             Set_Entity (N, E);
-             Set_Etype (N, Etype (E));
-             return;
-          end if;
-       end if;
- 
        case Kind is
           when N_Component_Declaration =>
              Error_Msg_N
--- 10013,10020 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch8.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch8.ads
*** gcc-15.2.0/gcc/ada/sem_ch8.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch8.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Ch8 is
*** 100,110 ****
     --  entries in the current scope, and that will give all homonyms that are
     --  declared before the point of call in the current scope. This is useful
     --  for example in the processing for pragma Inline.
-    --
-    --  Flag Errors_OK should be set when error diagnostics are desired. Flag
-    --  Marker_OK should be set when a N_Variable_Reference_Marker needs to be
-    --  generated for a SPARK object in order to detect elaboration issues. Flag
-    --  Reference_OK should be set when N must generate a cross reference.
  
     procedure Find_Selected_Component (N : Node_Id);
     --  Resolve various cases of selected components, recognize expanded names
--- 100,105 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch9.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_ch9.adb
*** gcc-15.2.0/gcc/ada/sem_ch9.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch9.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,38 ****
  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 Errout;         use Errout;
  with Exp_Ch9;        use Exp_Ch9;
  with Elists;         use Elists;
--- 28,36 ----
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Contracts;      use Contracts;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Exp_Ch9;        use Exp_Ch9;
  with Elists;         use Elists;
*************** with Sem_Util;       use Sem_Util;
*** 63,69 ****
  with Sem_Warn;       use Sem_Warn;
  with Snames;         use Snames;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Style;
--- 61,66 ----
*************** package body Sem_Ch9 is
*** 753,760 ****
        T_Name : Node_Id;
  
     begin
-       Tasking_Used := True;
- 
        T_Name := First (Names (N));
        while Present (T_Name) loop
           Analyze (T_Name);
--- 750,755 ----
*************** package body Sem_Ch9 is
*** 790,797 ****
  
     procedure Analyze_Accept_Alternative (N : Node_Id) is
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 785,790 ----
*************** package body Sem_Ch9 is
*** 823,830 ****
        Task_Nam  : Entity_Id := Empty;  -- initialize to prevent warning
  
     begin
-       Tasking_Used := True;
- 
        --  Entry name is initialized to Any_Id. It should get reset to the
        --  matching entry entity. An error is signalled if it is not reset.
  
--- 816,821 ----
*************** package body Sem_Ch9 is
*** 1064,1070 ****
        Trigger        : Node_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (Max_Asynchronous_Select_Nesting, N);
        Check_Restriction (No_Select_Statements, N);
  
--- 1055,1060 ----
*************** package body Sem_Ch9 is
*** 1109,1115 ****
        Is_Disp_Select : Boolean := False;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Ada 2005 (AI-345): The trigger may be a dispatching call
--- 1099,1104 ----
*************** package body Sem_Ch9 is
*** 1154,1160 ****
        Typ  : Entity_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Delay, N);
  
        if Present (Pragmas_Before (N)) then
--- 1143,1148 ----
*************** package body Sem_Ch9 is
*** 1206,1212 ****
        E : constant Node_Id := Expression (N);
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Relative_Delay, N);
        Check_Restriction (No_Delay, N);
        Check_Potentially_Blocking_Operation (N);
--- 1194,1199 ----
*************** package body Sem_Ch9 is
*** 1231,1237 ****
        Typ : Entity_Id;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Delay, N);
        Check_Potentially_Blocking_Operation (N);
        Analyze_And_Resolve (E);
--- 1218,1223 ----
*************** package body Sem_Ch9 is
*** 1266,1273 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
- 
        --  Entry_Name is initialized to Any_Id. It should get reset to the
        --  matching entry entity. An error is signalled if it is not reset.
  
--- 1252,1257 ----
*************** package body Sem_Ch9 is
*** 1518,1525 ****
        Formals : constant List_Id   := Parameter_Specifications (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Index) then
           Analyze (Index);
  
--- 1502,1507 ----
*************** package body Sem_Ch9 is
*** 1545,1552 ****
        Call : constant Node_Id := Entry_Call_Statement (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 1527,1532 ----
*************** package body Sem_Ch9 is
*** 1589,1596 ****
     begin
        Generate_Definition (Def_Id);
  
-       Tasking_Used := True;
- 
        --  Case of no discrete subtype definition
  
        if No (D_Sdef) then
--- 1569,1574 ----
*************** package body Sem_Ch9 is
*** 1720,1725 ****
--- 1698,1709 ----
           Process_Formals (Formals, N);
           Create_Extra_Formals (Def_Id);
           End_Scope;
+ 
+       --  If the entry has no formals, extra formals are definitely not
+       --  required.
+ 
+       else
+          Freeze_Extra_Formals (Def_Id);
        end if;
  
        if Ekind (Def_Id) = E_Entry then
*************** package body Sem_Ch9 is
*** 1751,1757 ****
        Loop_Id : constant Entity_Id := Make_Temporary (Sloc (N), 'L');
  
     begin
-       Tasking_Used := True;
        Analyze (Def);
  
        --  There is no elaboration of the entry index specification. Therefore,
--- 1735,1740 ----
*************** package body Sem_Ch9 is
*** 1848,1854 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
        Mutate_Ekind (Body_Id, E_Protected_Body);
        Set_Etype (Body_Id, Standard_Void_Type);
        Spec_Id := Find_Concurrent_Spec (Body_Id);
--- 1831,1836 ----
*************** package body Sem_Ch9 is
*** 1991,1997 ****
     --  Start of processing for Analyze_Protected_Definition
  
     begin
-       Tasking_Used := True;
        Analyze_Declarations (Visible_Declarations (N));
  
        if not Is_Empty_List (Private_Declarations (N)) then
--- 1973,1978 ----
*************** package body Sem_Ch9 is
*** 2047,2053 ****
           return;
        end if;
  
-       Tasking_Used := True;
        Check_Restriction (No_Protected_Types, N);
  
        T := Find_Type_Name (N);
--- 2028,2033 ----
*************** package body Sem_Ch9 is
*** 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;
--- 2203,2223 ----
                 --  Pragma case
  
                 else
!                   Error_Msg_Name_1 := Pragma_Name (Prio_Item);
!                   Error_Msg_NE
!                      (Msg        =>
!                         "pragma% for & has no effect when Lock_Free given??",
!                      N          => Prio_Item,
!                      E          => Id,
!                      Error_Code => GNAT0003,
!                      Label      => "No effect",
!                      Spans      =>
!                         (1 =>
!                            Labeled_Span
!                               (Span       => To_Full_Span (Parent (Id)),
!                               Label      => "Lock_Free in effect here",
!                               Is_Primary => False,
!                               Is_Region  => True)));
                 end if;
              end if;
           end;
*************** package body Sem_Ch9 is
*** 2422,2428 ****
           Modes    => True,
           Warnings => True);
  
-       Tasking_Used := True;
        Check_Restriction (No_Requeue_Statements, N);
        Check_Unreachable_Code (N);
  
--- 2405,2410 ----
*************** package body Sem_Ch9 is
*** 2754,2760 ****
        Alt_Count         : Uint    := Uint_0;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Loop to analyze alternatives
--- 2736,2741 ----
*************** package body Sem_Ch9 is
*** 2871,2877 ****
  
     begin
        Generate_Definition (Obj_Id);
-       Tasking_Used := True;
  
        --  A single protected declaration is transformed into a pair of an
        --  anonymous protected type and an object of that type. Generate:
--- 2852,2857 ----
*************** package body Sem_Ch9 is
*** 2959,2965 ****
  
     begin
        Generate_Definition (Obj_Id);
-       Tasking_Used := True;
  
        --  A single task declaration is transformed into a pair of an anonymous
        --  task type and an object of that type. Generate:
--- 2939,2944 ----
*************** package body Sem_Ch9 is
*** 3074,3080 ****
  
        Freeze_Previous_Contracts (N);
  
-       Tasking_Used := True;
        Set_Scope (Body_Id, Current_Scope);
        Mutate_Ekind (Body_Id, E_Task_Body);
        Set_Etype (Body_Id, Standard_Void_Type);
--- 3053,3058 ----
*************** package body Sem_Ch9 is
*** 3219,3226 ****
        L : Entity_Id;
  
     begin
-       Tasking_Used := True;
- 
        if Present (Visible_Declarations (N)) then
           Analyze_Declarations (Visible_Declarations (N));
        end if;
--- 3197,3202 ----
*************** package body Sem_Ch9 is
*** 3265,3272 ****
  
        --  Proceed ahead with analysis of task type declaration
  
-       Tasking_Used := True;
- 
        --  The sequential partition elaboration policy is supported only in the
        --  restricted profile.
  
--- 3241,3246 ----
*************** package body Sem_Ch9 is
*** 3448,3455 ****
  
     procedure Analyze_Terminate_Alternative (N : Node_Id) is
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
--- 3422,3427 ----
*************** package body Sem_Ch9 is
*** 3469,3475 ****
        Is_Disp_Select : Boolean := False;
  
     begin
-       Tasking_Used := True;
        Check_Restriction (No_Select_Statements, N);
  
        --  Ada 2005 (AI-345): The trigger may be a dispatching call
--- 3441,3446 ----
*************** package body Sem_Ch9 is
*** 3501,3524 ****
     ------------------------------------
  
     procedure Analyze_Triggering_Alternative (N : Node_Id) is
!       Trigger : constant Node_Id := Triggering_Statement (N);
  
     begin
-       Tasking_Used := True;
- 
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
  
!       Analyze (Trigger);
  
!       if Comes_From_Source (Trigger)
!         and then Nkind (Trigger) not in N_Delay_Statement
!         and then Nkind (Trigger) /= N_Entry_Call_Statement
        then
           if Ada_Version < Ada_2005 then
              Error_Msg_N
!              ("triggering statement must be delay or entry call", Trigger);
  
           --  Ada 2005 (AI-345): If a procedure_call_statement is used for a
           --  procedure_or_entry_call, the procedure_name or procedure_prefix
--- 3472,3497 ----
     ------------------------------------
  
     procedure Analyze_Triggering_Alternative (N : Node_Id) is
!       Stmt : constant Node_Id := Triggering_Statement (N);
  
     begin
        if Present (Pragmas_Before (N)) then
           Analyze_List (Pragmas_Before (N));
        end if;
  
!       Analyze (Stmt);
  
!       --  N_Delay_Statement may be rewritten as N_Procedure_Call_Statement,
!       --  and N_Entry_Call_Statement is parsed as N_Procedure_Call_Statement.
! 
!       if Nkind (Stmt) not in N_Delay_Statement
!                            | N_Entry_Call_Statement
!         and then Nkind (Original_Node (Stmt)) not in N_Delay_Statement
!                                                    | N_Entry_Call_Statement
        then
           if Ada_Version < Ada_2005 then
              Error_Msg_N
!              ("triggering statement must be delay or entry call", Stmt);
  
           --  Ada 2005 (AI-345): If a procedure_call_statement is used for a
           --  procedure_or_entry_call, the procedure_name or procedure_prefix
*************** package body Sem_Ch9 is
*** 3526,3539 ****
           --  procedure, or (a view of) a primitive subprogram of a limited
           --  interface whose first parameter is a controlling parameter.
  
!          elsif Nkind (Trigger) = N_Procedure_Call_Statement
!            and then not Is_Renamed_Entry (Entity (Name (Trigger)))
!            and then not Is_Controlling_Limited_Procedure
!                           (Entity (Name (Trigger)))
           then
              Error_Msg_N
                ("triggering statement must be procedure or entry call " &
!                "or delay statement", Trigger);
           end if;
        end if;
  
--- 3499,3512 ----
           --  procedure, or (a view of) a primitive subprogram of a limited
           --  interface whose first parameter is a controlling parameter.
  
!          elsif Nkind (Stmt) /= N_Procedure_Call_Statement
!            or else (not Is_Renamed_Entry (Entity (Name (Stmt)))
!                      and then not
!                        Is_Controlling_Limited_Procedure (Entity (Name (Stmt))))
           then
              Error_Msg_N
                ("triggering statement must be procedure or entry call " &
!                "or delay statement", Stmt);
           end if;
        end if;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_ch9.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_ch9.ads
*** gcc-15.2.0/gcc/ada/sem_ch9.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_ch9.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_dim.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_dim.adb
*** gcc-15.2.0/gcc/ada/sem_dim.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_dim.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 24,29 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 40,46 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 39,44 ----
*************** package body Sem_Dim is
*** 1273,1279 ****
  
           --  Get the expression from the component
  
!          if Nkind (Comp) = N_Component_Association then
              Expr := Expression (Comp);
           else
              Expr := Comp;
--- 1271,1279 ----
  
           --  Get the expression from the component
  
!          if Nkind (Comp) in N_Component_Association
!                           | N_Iterated_Component_Association
!          then
              Expr := Expression (Comp);
           else
              Expr := Comp;
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_dim.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_dim.ads
*** gcc-15.2.0/gcc/ada/sem_dim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_dim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_disp.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_disp.adb
*** gcc-15.2.0/gcc/ada/sem_disp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_disp.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Elists;         use Elists;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Exp_Disp;       use Exp_Disp;
--- 26,31 ----
*************** with Sem_Eval;       use Sem_Eval;
*** 52,58 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
  with Snames;         use Snames;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Tbuild;         use Tbuild;
--- 51,56 ----
*************** package body Sem_Disp is
*** 80,86 ****
     --  parameter); otherwise returns empty.
  
     function Find_Hidden_Overridden_Primitive (S : Entity_Id) return Entity_Id;
!    --  [Ada 2012:AI-0125] Find an inherited hidden primitive of the dispatching
     --  type of S that has the same name of S, a type-conformant profile, an
     --  original corresponding operation O that is a primitive of a visible
     --  ancestor of the dispatching type of S and O is visible at the point of
--- 78,84 ----
     --  parameter); otherwise returns empty.
  
     function Find_Hidden_Overridden_Primitive (S : Entity_Id) return Entity_Id;
!    --  [AI05-0125] Find an inherited hidden primitive of the dispatching
     --  type of S that has the same name of S, a type-conformant profile, an
     --  original corresponding operation O that is a primitive of a visible
     --  ancestor of the dispatching type of S and O is visible at the point of
*************** package body Sem_Disp is
*** 91,97 ****
     --  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
--- 89,96 ----
     --  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. FWIW, note that AI05-0125 was
!    --  not approved; it was voted "No Action".
  
     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
*** 585,592 ****
        Actual                 : Node_Id;
        Formal                 : Entity_Id;
        Control                : Node_Id := Empty;
!       Func                   : Entity_Id;
!       Subp_Entity            : Entity_Id;
  
        Indeterm_Ctrl_Type : Entity_Id := Empty;
        --  Type of a controlling formal whose actual is a tag-indeterminate call
--- 584,590 ----
        Actual                 : Node_Id;
        Formal                 : Entity_Id;
        Control                : Node_Id := Empty;
!       Subp_Entity            : constant Entity_Id := Entity (Name (N));
  
        Indeterm_Ctrl_Type : Entity_Id := Empty;
        --  Type of a controlling formal whose actual is a tag-indeterminate call
*************** package body Sem_Disp is
*** 967,973 ****
        --  Find a controlling argument, if any
  
        if Present (Parameter_Associations (N)) then
-          Subp_Entity := Entity (Name (N));
  
           Actual := First_Actual (N);
           Formal := First_Formal (Subp_Entity);
--- 965,970 ----
*************** package body Sem_Disp is
*** 1099,1153 ****
  
              Check_Dispatching_Context (N);
  
-          elsif Nkind (N) /= N_Function_Call then
- 
-             --  The call is not dispatching, so check that there aren't any
-             --  tag-indeterminate abstract calls left among its actuals.
- 
-             Actual := First_Actual (N);
-             while Present (Actual) loop
-                if Is_Tag_Indeterminate (Actual) then
- 
-                   --  Function call case
- 
-                   if Nkind (Original_Node (Actual)) = N_Function_Call then
-                      Func := Entity (Name (Original_Node (Actual)));
- 
-                   --  If the actual is an attribute then it can't be abstract
-                   --  (the only current case of a tag-indeterminate attribute
-                   --  is the stream Input attribute).
- 
-                   elsif Nkind (Original_Node (Actual)) = N_Attribute_Reference
-                   then
-                      Func := Empty;
- 
-                   --  Ditto if it is an explicit dereference
- 
-                   elsif Nkind (Original_Node (Actual)) = N_Explicit_Dereference
-                   then
-                      Func := Empty;
- 
-                   --  Only other possibility is a qualified expression whose
-                   --  constituent expression is itself a call.
- 
-                   else
-                      Func :=
-                        Entity (Name (Original_Node
-                          (Expression (Original_Node (Actual)))));
-                   end if;
- 
-                   if Present (Func) and then Is_Abstract_Subprogram (Func) then
-                      Error_Msg_N
-                        ("call to abstract function must be dispatching",
-                         Actual);
-                   end if;
-                end if;
- 
-                Next_Actual (Actual);
-             end loop;
- 
-             Check_Dispatching_Context (N);
- 
           elsif Nkind (Parent (N)) in N_Subexpr then
              Check_Dispatching_Context (N);
  
--- 1096,1101 ----
*************** package body Sem_Disp is
*** 1710,1718 ****
  
        Ovr_Subp := Old_Subp;
  
!       --  [Ada 2012:AI-0125]: Search for inherited hidden primitive that may be
!       --  overridden by Subp. This only applies to source subprograms, and
!       --  their declaration must carry an explicit overriding indicator.
  
        if No (Ovr_Subp)
          and then Ada_Version >= Ada_2012
--- 1658,1665 ----
  
        Ovr_Subp := Old_Subp;
  
!       --  Search for inherited hidden primitive that may be
!       --  overridden by Subp. This only applies to source subprograms.
  
        if No (Ovr_Subp)
          and then Ada_Version >= Ada_2012
*************** package body Sem_Disp is
*** 1721,1736 ****
            Nkind (Unit_Declaration_Node (Subp)) = N_Subprogram_Declaration
        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;
  
        --  Now it should be a correct primitive operation, put it in the list
--- 1668,1673 ----
*************** package body Sem_Disp is
*** 2427,2432 ****
--- 2364,2371 ----
        Formal    : Entity_Id;
        Ctrl_Type : Entity_Id;
  
+    --  Start of processing for Find_Dispatching_Type
+ 
     begin
        if Ekind (Subp) in E_Function | E_Procedure
          and then Present (DTC_Entity (Subp))
*************** package body Sem_Disp is
*** 3094,3099 ****
--- 3033,3084 ----
        then
           return Is_Tag_Indeterminate (Prefix (Orig_Node));
  
+       --  An if-expression is tag-indeterminate if all of the dependent
+       --  expressions are tag-indeterminate (RM 4.5.7 (17/3)).
+ 
+       elsif Nkind (Orig_Node) = N_If_Expression then
+          declare
+             Cond : constant Node_Id := First (Expressions (Orig_Node));
+             Expr : Node_Id := Next (Cond);
+ 
+          begin
+             if not Is_Tag_Indeterminate (Original_Node (Expr)) then
+                return False;
+             end if;
+ 
+             Next (Expr);
+ 
+             if Present (Expr)
+               and then not Is_Tag_Indeterminate (Original_Node (Expr))
+             then
+                return False;
+             end if;
+ 
+             return True;
+          end;
+ 
+       --  A case-expression is tag-indeterminate if all of the dependent
+       --  expressions are tag-indeterminate (RM 4.5.7 (17/3)).
+ 
+       elsif Nkind (Orig_Node) = N_Case_Expression then
+          declare
+             Alt  : Node_Id := First (Alternatives (Orig_Node));
+             Expr : Node_Id;
+ 
+          begin
+             while Present (Alt) loop
+                Expr := Expression (Alt);
+ 
+                if not Is_Tag_Indeterminate (Original_Node (Expr)) then
+                   return False;
+                end if;
+ 
+                Next (Alt);
+             end loop;
+ 
+             return True;
+          end;
+ 
        else
           return False;
        end if;
*************** package body Sem_Disp is
*** 3254,3259 ****
--- 3239,3245 ----
        elsif Nkind (Actual) = N_Explicit_Dereference
          and then Nkind (Original_Node (Prefix (Actual))) = N_Function_Call
        then
+          pragma Assert (Is_Expanded_Dispatching_Call (Actual));
           return;
  
        --  When expansion is suppressed, an unexpanded call to 'Input can occur,
*************** package body Sem_Disp is
*** 3336,3341 ****
--- 3322,3328 ----
                     Subtype_Mark =>
                       New_Occurrence_Of (Etype (Control), Sloc (Call_Node)),
                     Expression => Relocate_Node (Call_Node)));
+                Flag_Interface_Pointer_Displacement (Call_Node);
                 Set_Etype (Call_Node, Etype (Control));
                 Set_Analyzed (Call_Node);
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_disp.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_disp.ads
*** gcc-15.2.0/gcc/ada/sem_disp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_disp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_dist.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_dist.adb
*** gcc-15.2.0/gcc/ada/sem_dist.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_dist.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ****
  
  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 Errout;         use Errout;
--- 25,30 ----
*************** with Sem_Disp;       use Sem_Disp;
*** 42,48 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Res;        use Sem_Res;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Stand;          use Stand;
--- 41,46 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_dist.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_dist.ads
*** gcc-15.2.0/gcc/ada/sem_dist.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_dist.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_elab.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_elab.adb
*** gcc-15.2.0/gcc/ada/sem_elab.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_elab.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 ALI;            use ALI;
*** 27,33 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Ch8;        use Sem_Ch8;
*** 53,59 ****
  with Sem_Disp;       use Sem_Disp;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 52,57 ----
*************** package body Sem_Elab is
*** 9892,9898 ****
                 --  The corresponding subunit was previously loaded
  
                 if Present (Lib_Unit) then
!                   return Lib_Unit;
  
                 --  Otherwise attempt to load the corresponding subunit
  
--- 9890,9896 ----
                 --  The corresponding subunit was previously loaded
  
                 if Present (Lib_Unit) then
!                   return Proper_Body (Unit (Lib_Unit));
  
                 --  Otherwise attempt to load the corresponding subunit
  
*************** package body Sem_Elab is
*** 11199,11205 ****
          (Id : Entity_Id) return Extended_Ghost_Mode
        is
        begin
!          return To_Ghost_Mode (Is_Ignored_Ghost_Entity (Id));
        end Ghost_Mode_Of_Entity;
  
        ------------------------
--- 11197,11203 ----
          (Id : Entity_Id) return Extended_Ghost_Mode
        is
        begin
!          return To_Ghost_Mode (Is_Ignored_Ghost_Entity_In_Codegen (Id));
        end Ghost_Mode_Of_Entity;
  
        ------------------------
*************** package body Sem_Elab is
*** 15236,15242 ****
              end if;
  
              Body_Decl := Unit_Declaration_Node (Body_Id);
!             Region    := Find_Early_Call_Region (Body_Decl);
  
              --  The freeze node appears prior to the early call region of the
              --  primitive body.
--- 15234,15248 ----
              end if;
  
              Body_Decl := Unit_Declaration_Node (Body_Id);
! 
!             --  For subprogram bodies in subunits we check where the subprogram
!             --  body stub is declared.
! 
!             if Nkind (Parent (Body_Decl)) = N_Subunit then
!                Body_Decl := Corresponding_Stub (Parent (Body_Decl));
!             end if;
! 
!             Region := Find_Early_Call_Region (Body_Decl);
  
              --  The freeze node appears prior to the early call region of the
              --  primitive body.
*************** package body Sem_Elab is
*** 17461,17467 ****
        --  Stuff that happens only at the outer level
  
        if No (Outer_Scope) then
!          Elab_Visited.Set_Last (0);
  
           --  Nothing to do if current scope is Standard (this is a bit odd, but
           --  it happens in the case of generic instantiations).
--- 17467,17473 ----
        --  Stuff that happens only at the outer level
  
        if No (Outer_Scope) then
!          Elab_Visited.Clear;
  
           --  Nothing to do if current scope is Standard (this is a bit odd, but
           --  it happens in the case of generic instantiations).
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_elab.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_elab.ads
*** gcc-15.2.0/gcc/ada/sem_elab.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_elab.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_elim.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_elim.adb
*** gcc-15.2.0/gcc/ada/sem_elim.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_elim.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 24,29 ----
*************** with Sem_Aux;        use Sem_Aux;
*** 37,43 ****
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
  with Sinput;         use Sinput;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Snames;         use Snames;
  with Stand;          use Stand;
--- 36,41 ----
*************** package body Sem_Elim is
*** 713,720 ****
        <<Continue>>
           Elmt := Elmt.Homonym;
        end loop;
- 
-       return;
     end Check_Eliminated;
  
     -------------------------------------
--- 711,716 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_elim.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_elim.ads
*** gcc-15.2.0/gcc/ada/sem_elim.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_elim.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1997-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_eval.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_eval.adb
*** gcc-15.2.0/gcc/ada/sem_eval.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_eval.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Atree;          use Atree;
  with Checks;         use Checks;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Res;        use Sem_Res;
*** 55,61 ****
  with Sem_Util;       use Sem_Util;
  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;
--- 54,59 ----
*************** package body Sem_Eval is
*** 144,150 ****
     Checking_For_Potentially_Static_Expression : Boolean := False;
     --  Global flag that is set True during Analyze_Static_Expression_Function
     --  in order to verify that the result expression of a static expression
!    --  function is a potentially static function (see RM2022 6.8(5.3)).
  
     -----------------------
     -- Local Subprograms --
--- 142,148 ----
     Checking_For_Potentially_Static_Expression : Boolean := False;
     --  Global flag that is set True during Analyze_Static_Expression_Function
     --  in order to verify that the result expression of a static expression
!    --  function is a potentially static function (see RM 2022 6.8(5.3)).
  
     -----------------------
     -- Local Subprograms --
*************** package body Sem_Eval is
*** 574,586 ****
  
           Rewrite (N, New_Copy (N));
  
!          if not Is_Floating_Point_Type (T) then
!             Set_Realval
!               (N, Corresponding_Integer_Value (N) * Small_Value (T));
! 
!          elsif not UR_Is_Zero (Realval (N)) then
              Set_Realval (N, Machine_Number (Base_Type (T), Realval (N), N));
              Set_Is_Machine_Number (N);
           end if;
  
        end if;
--- 572,582 ----
  
           Rewrite (N, New_Copy (N));
  
!          if Is_Floating_Point_Type (T) then
              Set_Realval (N, Machine_Number (Base_Type (T), Realval (N), N));
              Set_Is_Machine_Number (N);
+          else
+             Set_Realval (N, Corresponding_Integer_Value (N) * Small_Value (T));
           end if;
  
        end if;
*************** package body Sem_Eval is
*** 668,674 ****
     is
     begin
        if (not Stat or else In_Inlined_Body)
!         and then Is_Signed_Integer_Type (Etype (N))
        then
           declare
              BT : constant Entity_Id := Base_Type (Etype (N));
--- 664,670 ----
     is
     begin
        if (not Stat or else In_Inlined_Body)
!         and then Has_Overflow_Operations (Etype (N))
        then
           declare
              BT : constant Entity_Id := Base_Type (Etype (N));
*************** package body Sem_Eval is
*** 1496,1503 ****
                 --  the types are not modular (e.g. X < X + 1 is False if X is
                 --  the largest number).
  
!                if not Is_Modular_Integer_Type (Ltyp)
!                  and then not Is_Modular_Integer_Type (Rtyp)
                 then
                    if Loffs < Roffs then
                       Diff.all := Roffs - Loffs;
--- 1492,1499 ----
                 --  the types are not modular (e.g. X < X + 1 is False if X is
                 --  the largest number).
  
!                if not Has_Modular_Operations (Ltyp)
!                  and then not Has_Modular_Operations (Rtyp)
                 then
                    if Loffs < Roffs then
                       Diff.all := Roffs - Loffs;
*************** package body Sem_Eval is
*** 2096,2102 ****
  
              --  Adjust the result by the modulus if the type is a modular type
  
!             if Is_Modular_Integer_Type (Ltype) then
                 Result := Result mod Modulus (Ltype);
              end if;
  
--- 2092,2098 ----
  
              --  Adjust the result by the modulus if the type is a modular type
  
!             if Has_Modular_Operations (Ltype) then
                 Result := Result mod Modulus (Ltype);
              end if;
  
*************** package body Sem_Eval is
*** 2828,2834 ****
  
        --  Modular integer literals must be in their base range
  
!       if Is_Modular_Integer_Type (Typ)
          and then Is_Out_Of_Range (N, Base_Type (Typ), Assume_Valid => True)
        then
           Out_Of_Range (N);
--- 2824,2830 ----
  
        --  Modular integer literals must be in their base range
  
!       if Has_Modular_Operations (Typ)
          and then Is_Out_Of_Range (N, Base_Type (Typ), Assume_Valid => True)
        then
           Out_Of_Range (N);
*************** package body Sem_Eval is
*** 2971,2977 ****
  
        --  Compile time evaluation of logical operation
  
!       if Is_Modular_Integer_Type (Etype (N)) then
           Left_Int  := Expr_Value (Left);
           Right_Int := Expr_Value (Right);
  
--- 2967,2973 ----
  
        --  Compile time evaluation of logical operation
  
!       if Has_Modular_Operations (Etype (N)) then
           Left_Int  := Expr_Value (Left);
           Right_Int := Expr_Value (Right);
  
*************** package body Sem_Eval is
*** 3208,3214 ****
                       Result := Left_Int;
                    end if;
  
!                   if Is_Modular_Integer_Type (Etype (N)) then
                       Result := Result mod Modulus (Etype (N));
                    end if;
  
--- 3204,3210 ----
                       Result := Left_Int;
                    end if;
  
!                   if Has_Modular_Operations (Etype (N)) then
                       Result := Result mod Modulus (Etype (N));
                    end if;
  
*************** package body Sem_Eval is
*** 3279,3285 ****
           --  the original value. For a nonbinary modulus this is an arbitrary
           --  but consistent definition.
  
!          if Is_Modular_Integer_Type (Typ) then
              Fold_Uint (N, Modulus (Typ) - 1 - Rint, Stat);
           else pragma Assert (Is_Boolean_Type (Typ));
              Fold_Uint (N, Test (not Is_True (Rint)), Stat);
--- 3275,3281 ----
           --  the original value. For a nonbinary modulus this is an arbitrary
           --  but consistent definition.
  
!          if Has_Modular_Operations (Typ) then
              Fold_Uint (N, Modulus (Typ) - 1 - Rint, Stat);
           else pragma Assert (Is_Boolean_Type (Typ));
              Fold_Uint (N, Test (not Is_True (Rint)), Stat);
*************** package body Sem_Eval is
*** 3999,4005 ****
        --  Otherwise the result depends on the right operand
  
        Fold_Uint (N, Expr_Value (Right), Rstat);
-       return;
     end Eval_Short_Circuit;
  
     ----------------
--- 3995,4000 ----
*************** package body Sem_Eval is
*** 4391,4397 ****
                 Result := Rint;
  
              elsif Nkind (N) = N_Op_Minus then
!                if Is_Modular_Integer_Type (Etype (N)) then
                    Result := (-Rint) mod Modulus (Etype (N));
                 else
                    Result := (-Rint);
--- 4386,4392 ----
                 Result := Rint;
  
              elsif Nkind (N) = N_Op_Minus then
!                if Has_Modular_Operations (Etype (N)) then
                    Result := (-Rint) mod Modulus (Etype (N));
                 else
                    Result := (-Rint);
*************** package body Sem_Eval is
*** 4989,5018 ****
           end if;
        end Check_Elab_Call;
  
-       Modulus, Val : Uint;
- 
     begin
!       if Compile_Time_Known_Value (Left)
!         and then Compile_Time_Known_Value (Right)
        then
!          pragma Assert (not Non_Binary_Modulus (Typ));
  
           if Op = N_Op_Shift_Left then
              Check_Elab_Call;
  
-             if Is_Modular_Integer_Type (Typ) then
-                Modulus := Einfo.Entities.Modulus (Typ);
-             else
-                Modulus := Uint_2 ** RM_Size (Typ);
-             end if;
- 
              --  Fold Shift_Left (X, Y) by computing
              --  (X * 2**Y) rem modulus [- Modulus]
  
!             Val := (Expr_Value (Left) * (Uint_2 ** Expr_Value (Right)))
                       rem Modulus;
  
!             if Is_Modular_Integer_Type (Typ)
                or else Val < Modulus / Uint_2
              then
                 Fold_Uint (N, Val, Static => Static);
--- 4984,5027 ----
           end if;
        end Check_Elab_Call;
  
     begin
!       if not (Compile_Time_Known_Value (Left)
!               and then Compile_Time_Known_Value (Right))
        then
!          return;
!       end if;
! 
!       pragma Assert (not Non_Binary_Modulus (Typ));
!       pragma Assert (Expr_Value (Right) >= Uint_0); -- Amount is always Natural
! 
!       --  Shift by zero bits is a no-op
  
+       if Expr_Value (Right) = Uint_0 then
+          Fold_Uint (N, Expr_Value (Left), Static => Static);
+          return;
+       end if;
+ 
+       declare
+          Modulus : constant Uint :=
+            (if Has_Modular_Operations (Typ) then Einfo.Entities.Modulus (Typ)
+             else Uint_2 ** RM_Size (Typ));
+          Amount : constant Uint := UI_Min (Expr_Value (Right), RM_Size (Typ));
+          --  Shift by an Amount greater than the size is all-zeros or all-ones.
+          --  Without this "min", we could use huge amounts of time and memory
+          --  below (e.g. 2**Amount, if Amount were a billion).
+ 
+          Val : Uint;
+       begin
           if Op = N_Op_Shift_Left then
              Check_Elab_Call;
  
              --  Fold Shift_Left (X, Y) by computing
              --  (X * 2**Y) rem modulus [- Modulus]
  
!             Val := (Expr_Value (Left) * (Uint_2 ** Amount))
                       rem Modulus;
  
!             if Has_Modular_Operations (Typ)
                or else Val < Modulus / Uint_2
              then
                 Fold_Uint (N, Val, Static => Static);
*************** package body Sem_Eval is
*** 5023,5077 ****
           elsif Op = N_Op_Shift_Right then
              Check_Elab_Call;
  
!             --  X >> 0 is a no-op
  
!             if Expr_Value (Right) = Uint_0 then
!                Fold_Uint (N, Expr_Value (Left), Static => Static);
!             else
!                if Is_Modular_Integer_Type (Typ) then
!                   Modulus := Einfo.Entities.Modulus (Typ);
                 else
!                   Modulus := Uint_2 ** RM_Size (Typ);
                 end if;
  
!                --  Fold X >> Y by computing (X [+ Modulus]) / 2**Y
!                --  Note that after a Shift_Right operation (with Y > 0), the
!                --  result is always positive, even if the original operand was
!                --  negative.
! 
!                declare
!                   M : Unat;
!                begin
!                   if Expr_Value (Left) >= Uint_0 then
!                      M := Uint_0;
!                   else
!                      M := Modulus;
!                   end if;
  
-                   Fold_Uint
-                     (N,
-                      (Expr_Value (Left) + M) / (Uint_2 ** Expr_Value (Right)),
-                      Static => Static);
-                end;
-             end if;
           elsif Op = N_Op_Shift_Right_Arithmetic then
              Check_Elab_Call;
  
              declare
!                Two_Y : constant Uint := Uint_2 ** Expr_Value (Right);
              begin
-                if Is_Modular_Integer_Type (Typ) then
-                   Modulus := Einfo.Entities.Modulus (Typ);
-                else
-                   Modulus := Uint_2 ** RM_Size (Typ);
-                end if;
- 
                 --  X / 2**Y if X if positive or a small enough modular integer
  
!                if (Is_Modular_Integer_Type (Typ)
                      and then Expr_Value (Left) < Modulus / Uint_2)
                   or else
!                    (not Is_Modular_Integer_Type (Typ)
                       and then Expr_Value (Left) >= 0)
                 then
                    Fold_Uint (N, Expr_Value (Left) / Two_Y, Static => Static);
--- 5032,5069 ----
           elsif Op = N_Op_Shift_Right then
              Check_Elab_Call;
  
!             --  Fold X >> Y by computing (X [+ Modulus]) / 2**Y.
!             --  Note that after a Shift_Right operation (with Y > 0), the
!             --  result is always positive, even if the original operand was
!             --  negative.
  
!             declare
!                M : Unat;
!             begin
!                if Expr_Value (Left) >= Uint_0 then
!                   M := Uint_0;
                 else
!                   M := Modulus;
                 end if;
  
!                Fold_Uint
!                  (N,
!                   (Expr_Value (Left) + M) / (Uint_2 ** Amount),
!                   Static => Static);
!             end;
  
           elsif Op = N_Op_Shift_Right_Arithmetic then
              Check_Elab_Call;
  
              declare
!                Two_Y : constant Uint := Uint_2 ** Amount;
              begin
                 --  X / 2**Y if X if positive or a small enough modular integer
  
!                if (Has_Modular_Operations (Typ)
                      and then Expr_Value (Left) < Modulus / Uint_2)
                   or else
!                    (not Has_Modular_Operations (Typ)
                       and then Expr_Value (Left) >= 0)
                 then
                    Fold_Uint (N, Expr_Value (Left) / Two_Y, Static => Static);
*************** package body Sem_Eval is
*** 5082,5088 ****
                 elsif Two_Y > Modulus
                   or else Expr_Value (Left) = Uint_Minus_1
                 then
!                   if Is_Modular_Integer_Type (Typ) then
                       Fold_Uint (N, Modulus - Uint_1, Static => Static);
                    else
                       Fold_Uint (N, Uint_Minus_1, Static => Static);
--- 5074,5080 ----
                 elsif Two_Y > Modulus
                   or else Expr_Value (Left) = Uint_Minus_1
                 then
!                   if Has_Modular_Operations (Typ) then
                       Fold_Uint (N, Modulus - Uint_1, Static => Static);
                    else
                       Fold_Uint (N, Uint_Minus_1, Static => Static);
*************** package body Sem_Eval is
*** 5091,5102 ****
                 --  Large modular integer, compute via multiply/divide the
                 --  following: X >> Y + (1 << Y - 1) << (RM_Size - Y)
  
!                elsif Is_Modular_Integer_Type (Typ) then
                    Fold_Uint
                      (N,
                       (Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Expr_Value (Right)),
                       Static => Static);
  
                 --  Negative signed integer, compute via multiple/divide the
--- 5083,5094 ----
                 --  Large modular integer, compute via multiply/divide the
                 --  following: X >> Y + (1 << Y - 1) << (RM_Size - Y)
  
!                elsif Has_Modular_Operations (Typ) then
                    Fold_Uint
                      (N,
                       (Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Amount),
                       Static => Static);
  
                 --  Negative signed integer, compute via multiple/divide the
*************** package body Sem_Eval is
*** 5108,5120 ****
                      (N,
                       (Modulus + Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Expr_Value (Right))
                          - Modulus,
                       Static => Static);
                 end if;
              end;
           end if;
!       end if;
     end Fold_Shift;
  
     --------------
--- 5100,5114 ----
                      (N,
                       (Modulus + Expr_Value (Left)) / Two_Y
                          + (Two_Y - Uint_1)
!                           * Uint_2 ** (RM_Size (Typ) - Amount)
                          - Modulus,
                       Static => Static);
                 end if;
              end;
+          else
+             raise Program_Error;
           end if;
!       end;
     end Fold_Shift;
  
     --------------
*************** package body Sem_Eval is
*** 5155,5162 ****
  
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean) is
        Loc : constant Source_Ptr := Sloc (N);
!       Typ : Entity_Id  := Etype (N);
!       Ent : Entity_Id;
  
     begin
        if Raises_Constraint_Error (N) then
--- 5149,5158 ----
  
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean) is
        Loc : constant Source_Ptr := Sloc (N);
! 
!       Actual_Typ : Entity_Id;
!       Ent        : Entity_Id;
!       Typ        : Entity_Id;
  
     begin
        if Raises_Constraint_Error (N) then
*************** package body Sem_Eval is
*** 5164,5182 ****
           return;
        end if;
  
        --  If we are folding a named number, retain the entity in the literal
        --  in the original tree.
  
        if Is_Entity_Name (N) and then Ekind (Entity (N)) = E_Named_Integer then
           Ent := Entity (N);
        else
           Ent := Empty;
        end if;
  
-       if Is_Private_Type (Typ) then
-          Typ := Full_View (Typ);
-       end if;
- 
        --  For a result of type integer, substitute an N_Integer_Literal node
        --  for the result of the compile time evaluation of the expression.
        --  Set a link to the original named number when not in a generic context
--- 5160,5182 ----
           return;
        end if;
  
+       Typ := Etype (N);
+ 
+       if Is_Private_Type (Typ) then
+          Typ := Full_View (Typ);
+       end if;
+ 
        --  If we are folding a named number, retain the entity in the literal
        --  in the original tree.
  
        if Is_Entity_Name (N) and then Ekind (Entity (N)) = E_Named_Integer then
+          Actual_Typ := Universal_Integer;
           Ent := Entity (N);
        else
+          Actual_Typ := Typ;
           Ent := Empty;
        end if;
  
        --  For a result of type integer, substitute an N_Integer_Literal node
        --  for the result of the compile time evaluation of the expression.
        --  Set a link to the original named number when not in a generic context
*************** package body Sem_Eval is
*** 5206,5213 ****
  
        Analyze (N);
        Set_Is_Static_Expression (N, Static);
!       Set_Etype (N, Typ);
!       Resolve (N);
        Set_Is_Static_Expression (N, Static);
     end Fold_Uint;
  
--- 5206,5213 ----
  
        Analyze (N);
        Set_Is_Static_Expression (N, Static);
!       Set_Etype (N, Actual_Typ);
!       Resolve (N, Typ);
        Set_Is_Static_Expression (N, Static);
     end Fold_Uint;
  
*************** package body Sem_Eval is
*** 5218,5224 ****
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean) is
        Loc : constant Source_Ptr := Sloc (N);
        Typ : constant Entity_Id  := Etype (N);
!       Ent : Entity_Id;
  
     begin
        if Raises_Constraint_Error (N) then
--- 5218,5226 ----
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean) is
        Loc : constant Source_Ptr := Sloc (N);
        Typ : constant Entity_Id  := Etype (N);
! 
!       Actual_Typ : Entity_Id;
!       Ent        : Entity_Id;
  
     begin
        if Raises_Constraint_Error (N) then
*************** package body Sem_Eval is
*** 5230,5237 ****
--- 5232,5241 ----
        --  in the original tree.
  
        if Is_Entity_Name (N) and then Ekind (Entity (N)) = E_Named_Real then
+          Actual_Typ := Universal_Real;
           Ent := Entity (N);
        else
+          Actual_Typ := Typ;
           Ent := Empty;
        end if;
  
*************** package body Sem_Eval is
*** 5255,5262 ****
  
        Analyze (N);
        Set_Is_Static_Expression (N, Static);
!       Set_Etype (N, Typ);
!       Resolve (N);
        Set_Analyzed (N);
        Set_Is_Static_Expression (N, Static);
     end Fold_Ureal;
--- 5259,5266 ----
  
        Analyze (N);
        Set_Is_Static_Expression (N, Static);
!       Set_Etype (N, Actual_Typ);
!       Resolve (N, Typ);
        Set_Analyzed (N);
        Set_Is_Static_Expression (N, Static);
     end Fold_Ureal;
*************** package body Sem_Eval is
*** 6841,6846 ****
--- 6845,6859 ----
           then
              return True;
  
+          --  Handle class-wide subtypes, which never have discriminants, while
+          --  class-wide types may have them (but they are always unknown).
+ 
+          elsif Ekind (T2) = E_Class_Wide_Subtype and then Etype (T2) = T1 then
+             return True;
+ 
+          elsif Ekind (T1) = E_Class_Wide_Subtype and then Etype (T1) = T2 then
+             return True;
+ 
           --  Because of view exchanges in multiple instantiations, conformance
           --  checking might try to match a partial view of a type with no
           --  discriminants with a full view that has defaulted discriminants.
*************** package body Sem_Eval is
*** 7192,7198 ****
        --   An expression of a formal modular type is not foldable because
        --   the modulus is unknown.
  
!       elsif Is_Modular_Integer_Type (Etype (Op1))
          and then Is_Generic_Type (Etype (Op1))
        then
           Check_Non_Static_Context (Op1);
--- 7205,7211 ----
        --   An expression of a formal modular type is not foldable because
        --   the modulus is unknown.
  
!       elsif Has_Modular_Operations (Etype (Op1))
          and then Is_Generic_Type (Etype (Op1))
        then
           Check_Non_Static_Context (Op1);
*************** package body Sem_Eval is
*** 7268,7274 ****
  
        --  Exclude expressions of a generic modular type, as above
  
!       elsif Is_Modular_Integer_Type (Etype (Op1))
          and then Is_Generic_Type (Etype (Op1))
        then
           Check_Non_Static_Context (Op1);
--- 7281,7287 ----
  
        --  Exclude expressions of a generic modular type, as above
  
!       elsif Has_Modular_Operations (Etype (Op1))
          and then Is_Generic_Type (Etype (Op1))
        then
           Check_Non_Static_Context (Op1);
*************** package body Sem_Eval is
*** 7290,7296 ****
           end if;
  
           if not Fold
!            and then not Is_Modular_Integer_Type (Etype (N))
           then
              case Nkind (N) is
                 when N_Op_And =>
--- 7303,7309 ----
           end if;
  
           if not Fold
!            and then not Has_Modular_Operations (Etype (N))
           then
              case Nkind (N) is
                 when N_Op_And =>
*************** package body Sem_Eval is
*** 7467,7473 ****
        --  size, then the source value must be in range. We exclude biased
        --  types, because they bizarrely can generate out of range values.
  
!       elsif Is_Signed_Integer_Type (Etype (N))
          and then Is_Known_Valid (Typ)
          and then Esize (Etype (N)) <= Esize (Typ)
          and then not Has_Biased_Representation (Etype (N))
--- 7480,7487 ----
        --  size, then the source value must be in range. We exclude biased
        --  types, because they bizarrely can generate out of range values.
  
!       elsif (Is_Signed_Integer_Type (Etype (N))
!                and then Is_Signed_Integer_Type (Typ))
          and then Is_Known_Valid (Typ)
          and then Esize (Etype (N)) <= Esize (Typ)
          and then not Has_Biased_Representation (Etype (N))
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_eval.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_eval.ads
*** gcc-15.2.0/gcc/ada/sem_eval.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_eval.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 301,334 ****
     --  is static or its value is known at compile time. This version is used
     --  for string types and returns the corresponding N_String_Literal node.
  
!    procedure Eval_Actual                 (N : Node_Id);
!    procedure Eval_Allocator              (N : Node_Id);
!    procedure Eval_Arithmetic_Op          (N : Node_Id);
!    procedure Eval_Call                   (N : Node_Id);
!    procedure Eval_Case_Expression        (N : Node_Id);
!    procedure Eval_Character_Literal      (N : Node_Id);
!    procedure Eval_Concatenation          (N : Node_Id);
!    procedure Eval_Entity_Name            (N : Node_Id);
!    procedure Eval_If_Expression          (N : Node_Id);
!    procedure Eval_Indexed_Component      (N : Node_Id);
!    procedure Eval_Integer_Literal        (N : Node_Id);
!    procedure Eval_Logical_Op             (N : Node_Id);
!    procedure Eval_Membership_Op          (N : Node_Id);
!    procedure Eval_Named_Integer          (N : Node_Id);
!    procedure Eval_Named_Real             (N : Node_Id);
!    procedure Eval_Op_Expon               (N : Node_Id);
!    procedure Eval_Op_Not                 (N : Node_Id);
!    procedure Eval_Real_Literal           (N : Node_Id);
!    procedure Eval_Relational_Op          (N : Node_Id);
!    procedure Eval_Selected_Component     (N : Node_Id);
!    procedure Eval_Shift                  (N : Node_Id);
!    procedure Eval_Short_Circuit          (N : Node_Id);
!    procedure Eval_Slice                  (N : Node_Id);
!    procedure Eval_String_Literal         (N : Node_Id);
!    procedure Eval_Qualified_Expression   (N : Node_Id);
!    procedure Eval_Type_Conversion        (N : Node_Id);
!    procedure Eval_Unary_Op               (N : Node_Id);
!    procedure Eval_Unchecked_Conversion   (N : Node_Id);
  
     procedure Flag_Non_Static_Expr (Msg : String; Expr : Node_Id);
     --  This procedure is called after it has been determined that Expr is not
--- 301,334 ----
     --  is static or its value is known at compile time. This version is used
     --  for string types and returns the corresponding N_String_Literal node.
  
!    procedure Eval_Actual               (N : Node_Id);
!    procedure Eval_Allocator            (N : Node_Id);
!    procedure Eval_Arithmetic_Op        (N : Node_Id);
!    procedure Eval_Call                 (N : Node_Id);
!    procedure Eval_Case_Expression      (N : Node_Id);
!    procedure Eval_Character_Literal    (N : Node_Id);
!    procedure Eval_Concatenation        (N : Node_Id);
!    procedure Eval_Entity_Name          (N : Node_Id);
!    procedure Eval_If_Expression        (N : Node_Id);
!    procedure Eval_Indexed_Component    (N : Node_Id);
!    procedure Eval_Integer_Literal      (N : Node_Id);
!    procedure Eval_Logical_Op           (N : Node_Id);
!    procedure Eval_Membership_Op        (N : Node_Id);
!    procedure Eval_Named_Integer        (N : Node_Id);
!    procedure Eval_Named_Real           (N : Node_Id);
!    procedure Eval_Op_Expon             (N : Node_Id);
!    procedure Eval_Op_Not               (N : Node_Id);
!    procedure Eval_Real_Literal         (N : Node_Id);
!    procedure Eval_Relational_Op        (N : Node_Id);
!    procedure Eval_Selected_Component   (N : Node_Id);
!    procedure Eval_Shift                (N : Node_Id);
!    procedure Eval_Short_Circuit        (N : Node_Id);
!    procedure Eval_Slice                (N : Node_Id);
!    procedure Eval_String_Literal       (N : Node_Id);
!    procedure Eval_Qualified_Expression (N : Node_Id);
!    procedure Eval_Type_Conversion      (N : Node_Id);
!    procedure Eval_Unary_Op             (N : Node_Id);
!    procedure Eval_Unchecked_Conversion (N : Node_Id);
  
     procedure Flag_Non_Static_Expr (Msg : String; Expr : Node_Id);
     --  This procedure is called after it has been determined that Expr is not
*************** package Sem_Eval is
*** 342,382 ****
     --  set of messages is all posted.
  
     procedure Fold_Str (N : Node_Id; Val : String_Id; Static : Boolean);
-    --  Rewrite N with a new N_String_Literal node as the result of the compile
-    --  time evaluation of the node N. Val is the resulting string value from
-    --  the folding operation. The Is_Static_Expression flag is set in the
-    --  result node. The result is fully analyzed and resolved. Static indicates
-    --  whether the result should be considered static or not (True = consider
-    --  static). The point here is that normally all string literals are static,
-    --  but if this was the result of some sequence of evaluation where values
-    --  were known at compile time but not static, then the result is not
-    --  static. The call has no effect if Raises_Constraint_Error (N) is True,
-    --  since there is no point in folding if we have an error.
- 
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean);
-    --  Rewrite N with a (N_Integer_Literal, N_Identifier, N_Character_Literal)
-    --  node as the result of the compile time evaluation of the node N. Val is
-    --  the result in the integer case and is the position of the literal in the
-    --  literals list for the enumeration case. Is_Static_Expression is set True
-    --  in the result node. The result is fully analyzed/resolved. Static
-    --  indicates whether the result should be considered static or not (True =
-    --  consider static). The point here is that normally all integer literals
-    --  are static, but if this was the result of some sequence of evaluation
-    --  where values were known at compile time but not static, then the result
-    --  is not static. The call has no effect if Raises_Constraint_Error (N) is
-    --  True, since there is no point in folding if we have an error.
- 
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean);
!    --  Rewrite N with a new N_Real_Literal node as the result of the compile
!    --  time evaluation of the node N. Val is the resulting real value from the
!    --  folding operation. The Is_Static_Expression flag is set in the result
!    --  node. The result is fully analyzed and result. Static indicates whether
!    --  the result should be considered static or not (True = consider static).
!    --  The point here is that normally all string literals are static, but if
!    --  this was the result of some sequence of evaluation where values were
!    --  known at compile time but not static, then the result is not static.
!    --  The call has no effect if Raises_Constraint_Error (N) is True, since
!    --  there is no point in folding if we have an error.
  
     procedure Fold (N : Node_Id);
     --  Rewrite N with the relevant value if Compile_Time_Known_Value (N) is
--- 342,353 ----
     --  set of messages is all posted.
  
     procedure Fold_Str (N : Node_Id; Val : String_Id; Static : Boolean);
     procedure Fold_Uint (N : Node_Id; Val : Uint; Static : Boolean);
     procedure Fold_Ureal (N : Node_Id; Val : Ureal; Static : Boolean);
!    --  Rewrite N with a new literal node with compile-time-known value Val.
!    --  Is_Static_Expression is set to Static. This has no effect if
!    --  Raises_Constraint_Error (N) is True, since there is no point in
!    --  folding if we have an error.
  
     procedure Fold (N : Node_Id);
     --  Rewrite N with the relevant value if Compile_Time_Known_Value (N) is
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_intr.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_intr.adb
*** gcc-15.2.0/gcc/ada/sem_intr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_intr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  --  Processing for intrinsic subprogram declarations
  
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
--- 26,31 ----
*************** with Opt;            use Opt;
*** 36,42 ****
  with Sem_Aux;        use Sem_Aux;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 35,40 ----
*************** package body Sem_Intr is
*** 455,461 ****
        --  For modular type, modulus must be 2**8, 2**16, 2**32, or 2**64.
        --  Don't apply to generic types, since we may not have a modulus value.
  
!       elsif Is_Modular_Integer_Type (Typ1)
          and then not Is_Generic_Type (Typ1)
          and then Modulus (Typ1) /= Uint_2 ** 8
          and then Modulus (Typ1) /= Uint_2 ** 16
--- 453,459 ----
        --  For modular type, modulus must be 2**8, 2**16, 2**32, or 2**64.
        --  Don't apply to generic types, since we may not have a modulus value.
  
!       elsif Has_Modular_Operations (Typ1)
          and then not Is_Generic_Type (Typ1)
          and then Modulus (Typ1) /= Uint_2 ** 8
          and then Modulus (Typ1) /= Uint_2 ** 16
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_intr.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_intr.ads
*** gcc-15.2.0/gcc/ada/sem_intr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_intr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_mech.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_mech.adb
*** gcc-15.2.0/gcc/ada/sem_mech.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_mech.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ****
  ------------------------------------------------------------------------------
  
  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 Namet;          use Namet;
  with Sem;            use Sem;
  with Sem_Aux;        use Sem_Aux;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Snames;         use Snames;
  
--- 24,35 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_mech.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_mech.ads
*** gcc-15.2.0/gcc/ada/sem_mech.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_mech.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1996-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_prag.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_prag.adb
*** gcc-15.2.0/gcc/ada/sem_prag.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_prag.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Checks;         use Checks;
*** 36,42 ****
  with Contracts;      use Contracts;
  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 Elists;         use Elists;
--- 36,41 ----
*************** with Sem_Type;       use Sem_Type;
*** 79,85 ****
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 78,83 ----
*************** with System.Case_Util;
*** 101,106 ****
--- 99,219 ----
  
  package body Sem_Prag is
  
+    ----------------------------------
+    -- Handling of Assertion Levels --
+    ----------------------------------
+ 
+    --  Assertion levels are special entities declared using pragma
+    --  Assertion_Level. Assertion levels can be used in most Assertion_Kind
+    --  pragmas to associate a given level with a given list of existing
+    --  arguments. E.g.
+    --
+    --     pragma Assert (Level1 => (Expr1, "Msg1"),
+    --                    Level2 => (Expr2, "Msg2"));
+    --
+    --  Assertion levels can also be used in pragma Assertion_Policy and
+    --  Check_Policy as a valid policy name. E.g.
+    --
+    --  pragma Assertion_Policy (Level1 => Check);
+ 
+    --------------------------------
+    -- Declaring Assertion Levels --
+    --------------------------------
+ 
+    --  Assertion levels are declared using configuration level pragma
+    --  Assertion_Level. We create a new E_Assertion_Level entity for each
+    --  pragma and add each unique level to the Assertion_Levels table.
+    --
+    --  A pragma can be declared with dependencies. e.g.
+    --
+    --     pragma Assertion_Level (L1);
+    --     pragma Assertion_Level (L2, Depends => L1);
+    --     pragma Assertion_Level (L3, Depends => L2);
+    --
+    --  Levels that a level depends are called parent levels. Levels that depend
+    --  on a given level are called child levels. These dependencies are stored
+    --  in an E_Assertion_Level entity as attributes Parent_Levels and
+    --  Child_Levels.
+    --
+    --  When a pragma with the same level name is declared, we check that the
+    --  assertion level is declared with the same dependencies as the existing
+    --  level. Otherwise an error is raised.
+ 
+    package Assertion_Levels is new Table.Table (
+      Table_Component_Type => Entity_Id,
+      Table_Index_Type     => Nat,
+      Table_Low_Bound      => 1,
+      Table_Initial        => 30,
+      Table_Increment      => 200,
+      Table_Name           => "Assertion_Levels");
+ 
+    -------------------------------------------
+    -- Applying Policies to Assertion Levels --
+    -------------------------------------------
+ 
+    --  When a policy is applied to an assertion level, all assertions
+    --  associated with that level are subjected to the same policy. Depending
+    --  on the policy value, the same policy is applied to its dependencies.
+    --
+    --  Consider the following assertion levels:
+    --
+    --     pragma Assertion_Level (L1);
+    --     pragma Assertion_Level (L2, Depends => L1);
+    --     pragma Assertion_Level (L3, Depends => L2);
+    --
+    --  When policy Check (or On) is applied to an assertion level, it is also
+    --  applied to all of its transitive parent levels. For example
+    --
+    --      pragma Assertion_Policy (L3 => Check);
+    --
+    --  applies policy Check to L2 and L1.
+    --
+    --  When policy Ignore (or Off) is applied to an assertion level, it is also
+    --  applied to all of its transitive child levels. For example
+    --
+    --     pragma Assertion_Policy (L1 => Ignore);
+    --
+    --  applies the policy Ignore for L2 and L3.
+    --
+    --  Note that assertion levels are not allowed to have the same name as any
+    --  other Assertion_Kind defined in the RM in order to avoid unintentional
+    --  name overloading.
+ 
+    --------------------------------------------------
+    -- Handling of Assertions with Assertion Levels --
+    --------------------------------------------------
+ 
+    --  Each Assertion pragma (see Is_Valid_Assertion) supports a new syntax
+    --  where the existing arguments can be associated with an assertion level.
+    --
+    --  Each association is converted into a new pragma with the same name but
+    --  without the level argument, and the old pragma is rewritten as N_Null.
+    --  An applicable policy for those pragmas is calculated by looking at the
+    --  first active Check_Policy that either matches the pragma name or the
+    --  name of the Assertion_Level. The following policy-based attributes are
+    --  set for the given pramga:
+    --
+    --  * Is_Checked - Based on the policy
+    --  * Is_Ignored - Based on the policy
+    --  * Is_Disabled - Based on the policy
+    --  * Pragma_Ghost_Assertion_Level - level associated with the assertion.
+    --  * Original_Pragma - reference to the original pragma that had the
+    --    Assertion_Levels.
+    --
+    --  For example, the following pragma:
+    --
+    --     pragma Assert (L1 => (Expr1, "Msg1"),
+    --                    L2 => (Expr2, "Msg2"));
+    --
+    --  is rewritten as:
+    --
+    --     null; -- The original pragma
+    --     pragma Assert (Expr1, "Msg1");
+    --     pragma Assert (Expr2, "Msg2");
+    --
+    --  Each of the new pragmas is analyzed according to its existing semantic
+    --  rules.
+ 
     ----------------------------------------------
     -- Common Handling of Import-Export Pragmas --
     ----------------------------------------------
*************** package body Sem_Prag is
*** 212,225 ****
     --  Query whether a particular item appears in a mixed list of nodes and
     --  entities. It is assumed that all nodes in the list have entities.
  
     procedure Check_Postcondition_Use_In_Inlined_Subprogram
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Refined_Post, Subprogram_Variant, and Test_Case. Emit a
!    --  warning when pragma Prag is associated with subprogram Spec_Id subject
!    --  to Inline_Always, assertions are enabled and inling is done in the
!    --  frontend.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
--- 325,346 ----
     --  Query whether a particular item appears in a mixed list of nodes and
     --  entities. It is assumed that all nodes in the list have entities.
  
+    procedure Apply_Check_Policy (N : Node_Id; Policy : Name_Id);
+    --  Set the Is_Checked, Is_Ignored, Is_Disabled attributes on node N
+    --  based on the Policy. e.g.
+    --
+    --  * When Name_Ignore (or Name_Off) is used the node is marked as ignored.
+    --  * When Name_Check (or Name_On) is used the node is marked as checked.
+    --  * When Name_Disable is used the node is marked as disabled.
+ 
     procedure Check_Postcondition_Use_In_Inlined_Subprogram
       (Prag    : Node_Id;
        Spec_Id : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Postcondition,
!    --  Precondition, Program_Exit, Refined_Post, Subprogram_Variant, and
!    --  Test_Case. Emit a warning when pragma Prag is associated with subprogram
!    --  Spec_Id subject to Inline_Always, assertions are enabled and inling is
!    --  done in the frontend.
  
     procedure Check_State_And_Constituent_Use
       (States   : Elist_Id;
*************** package body Sem_Prag is
*** 234,242 ****
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Exceptional_Cases,
!    --  Part_Of, Post, Pre and Subprogram_Variant. Emit a freezing-related error
!    --  message where Freeze_Id is the entity of a body which caused contract
!    --  freezing and Contract_Id denotes the entity of the affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
--- 355,364 ----
       (Contract_Id : Entity_Id;
        Freeze_Id   : Entity_Id);
     --  Subsidiary to the analysis of pragmas Contract_Cases, Exceptional_Cases,
!    --  Part_Of, Post, Pre, Program_Exit and Subprogram_Variant. Emit a
!    --  freezing-related error message where Freeze_Id is the entity of a body
!    --  which caused contract freezing and Contract_Id denotes the entity of the
!    --  affected contstruct.
  
     procedure Duplication_Error (Prag : Node_Id; Prev : Node_Id);
     --  Subsidiary to all Find_Related_xxx routines. Emit an error on pragma
*************** package body Sem_Prag is
*** 265,270 ****
--- 387,397 ----
     --  set, the routine reports duplicate pragmas. The routine returns Empty
     --  when reaching the start of the node chain.
  
+    function Get_Applicable_Policy
+      (Nam : Name_Id; Level : Entity_Id) return Name_Id;
+    --  Return the name of the Check_Policy applied to the name or the level
+    --  associated with the node.
+ 
     function Get_Base_Subprogram (Def_Id : Entity_Id) return Entity_Id;
     --  If Def_Id refers to a renamed subprogram, then the base subprogram (the
     --  original one, following the renaming chain) is returned. Otherwise the
*************** package body Sem_Prag is
*** 280,285 ****
--- 407,421 ----
     --  Determine whether dependency clause Clause is surrounded by extra
     --  parentheses. If this is the case, issue an error message.
  
+    procedure Mark_Is_Checked (N : Node_Id);
+    --  Sets Is_Checked and unsets Is_Ignored
+ 
+    procedure Mark_Is_Disabled (N : Node_Id);
+    --  Sets Is_Disabled and Is_Ignored and unsets Is_Checked
+ 
+    procedure Mark_Is_Ignored (N : Node_Id);
+    --  Sets Is_Ignored and unsets Is_Checked
+ 
     procedure Record_Possible_Body_Reference
       (State_Id : Entity_Id;
        Ref      : Node_Id);
*************** package body Sem_Prag is
*** 435,442 ****
        Arg1      : constant Node_Id   :=
          First (Pragma_Argument_Associations (N));
  
!       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
  
        Errors        : Nat;
--- 571,577 ----
        Arg1      : constant Node_Id   :=
          First (Pragma_Argument_Associations (N));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Errors        : Nat;
*************** package body Sem_Prag is
*** 474,480 ****
           end if;
  
           Errors := Serious_Errors_Detected;
!          Preanalyze_Assert_Expression (Expression (Arg1), Standard_Boolean);
  
           --  Emit a clarification message when the expression contains at least
           --  one undefined reference, possibly due to contract freezing.
--- 609,616 ----
           end if;
  
           Errors := Serious_Errors_Detected;
!          Preanalyze_And_Resolve_Assert_Expression
!            (Expression (Arg1), Standard_Boolean);
  
           --  Emit a clarification message when the expression contains at least
           --  one undefined reference, possibly due to contract freezing.
*************** package body Sem_Prag is
*** 490,496 ****
              End_Scope;
           end if;
  
!          Restore_Ghost_Region (Saved_GM, Saved_IGR);
        end if;
  
        Set_Is_Analyzed_Pragma (N);
--- 626,632 ----
              End_Scope;
           end if;
  
!          Restore_Ghost_Region (Saved_Ghost_Config);
        end if;
  
        Set_Is_Analyzed_Pragma (N);
*************** package body Sem_Prag is
*** 564,570 ****
  
              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
--- 700,707 ----
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_And_Resolve_Assert_Expression
!                  (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 579,585 ****
              end if;
  
              Errors := Serious_Errors_Detected;
!             Preanalyze_Assert_Expression (Conseq, Standard_Boolean);
  
              --  Emit a clarification message when the consequence contains
              --  at least one undefined reference, possibly due to contract
--- 716,723 ----
              end if;
  
              Errors := Serious_Errors_Detected;
!             Preanalyze_And_Resolve_Assert_Expression
!               (Conseq, Standard_Boolean);
  
              --  Emit a clarification message when the consequence contains
              --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 603,610 ****
  
        CCases : 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
  
        CCase         : Node_Id;
--- 741,747 ----
  
        CCases : constant Node_Id := Expression (Get_Argument (N, Spec_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        CCase         : Node_Id;
*************** package body Sem_Prag is
*** 691,697 ****
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Contract_Cases_In_Decl_Part;
  
     ----------------------------------
--- 828,834 ----
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Contract_Cases_In_Decl_Part;
  
     ----------------------------------
*************** package body Sem_Prag is
*** 1222,1228 ****
                                Ref      => Item);
                          end if;
  
!                      elsif Ekind (Item_Id) in E_Constant | E_Variable
                         and then Present (Ultimate_Overlaid_Entity (Item_Id))
                       then
                          SPARK_Msg_NE
--- 1359,1365 ----
                                Ref      => Item);
                          end if;
  
!                      elsif Ekind (Item_Id) = E_Variable
                         and then Present (Ultimate_Overlaid_Entity (Item_Id))
                       then
                          SPARK_Msg_NE
*************** package body Sem_Prag is
*** 2391,2399 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression enforcing the expression type
  
!          Preanalyze_Assert_Expression (Consequence, Any_Boolean);
  
           Check_Params (Consequence);
  
--- 2528,2537 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_And_Resolve_Assert_Expression enforcing the expression
!          --  type.
  
!          Preanalyze_And_Resolve_Assert_Expression (Consequence, Any_Boolean);
  
           Check_Params (Consequence);
  
*************** package body Sem_Prag is
*** 2459,2466 ****
        Exceptional_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
  
        Exceptional_Contract : Node_Id;
--- 2597,2603 ----
        Exceptional_Contracts : constant Node_Id :=
          Expression (Get_Argument (N, Spec_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Exceptional_Contract : Node_Id;
*************** package body Sem_Prag is
*** 2551,2557 ****
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Exceptional_Cases_In_Decl_Part;
  
     -------------------------------------
--- 2688,2694 ----
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Exceptional_Cases_In_Decl_Part;
  
     -------------------------------------
*************** package body Sem_Prag is
*** 2621,2627 ****
  
              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
--- 2758,2765 ----
  
              if Nkind (Case_Guard) /= N_Others_Choice then
                 Errors := Serious_Errors_Detected;
!                Preanalyze_And_Resolve_Assert_Expression
!                  (Case_Guard, Standard_Boolean);
  
                 --  Emit a clarification message when the case guard contains
                 --  at least one undefined reference, possibly due to contract
*************** package body Sem_Prag is
*** 2636,2649 ****
              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;
  
--- 2774,2789 ----
              end if;
  
              --  Check the exit kind. It shall be either an exception or the
!             --  identifiers Normal_Return, Exception_Raised, or Program_Exit.
  
              if Nkind (Exit_Kind) = N_Identifier then
                 if Chars (Exit_Kind) not in Name_Normal_Return
                                           | Name_Exception_Raised
+                                          | Name_Program_Exit
                 then
                    Error_Msg_N
!                     ("exit kind should be Normal_Return, Exception_Raised, " &
!                        "or Program_Exit",
                       Exit_Kind);
                 end if;
  
*************** package body Sem_Prag is
*** 2764,2771 ****
        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;
--- 2904,2910 ----
        Exit_Contracts : constant Node_Id :=
          Expression (Get_Argument (N, Spec_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Exit_Contract : Node_Id;
*************** package body Sem_Prag is
*** 2855,2861 ****
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Exit_Cases_In_Decl_Part;
  
     --------------------------------------------
--- 2994,3000 ----
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Exit_Cases_In_Decl_Part;
  
     --------------------------------------------
*************** package body Sem_Prag is
*** 3145,3151 ****
                 elsif Is_Formal_Object (Item_Id) then
                    null;
  
!                elsif Ekind (Item_Id) in E_Constant | E_Variable
                   and then Present (Ultimate_Overlaid_Entity (Item_Id))
                 then
                    SPARK_Msg_NE
--- 3284,3290 ----
                 elsif Is_Formal_Object (Item_Id) then
                    null;
  
!                elsif Ekind (Item_Id) = E_Variable
                   and then Present (Ultimate_Overlaid_Entity (Item_Id))
                 then
                    SPARK_Msg_NE
*************** package body Sem_Prag is
*** 3680,3687 ****
        Pack_Id   : constant Entity_Id := Defining_Entity (Pack_Decl);
        Expr      : constant Node_Id   := Expression (Get_Argument (N, Pack_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
  
     begin
--- 3819,3825 ----
        Pack_Id   : constant Entity_Id := Defining_Entity (Pack_Decl);
        Expr      : constant Node_Id   := Expression (Get_Argument (N, Pack_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
     begin
*************** package body Sem_Prag is
*** 3705,3711 ****
        Preanalyze_And_Resolve (Expr, Standard_Boolean);
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Initial_Condition_In_Decl_Part;
  
     --------------------------------------
--- 3843,3849 ----
        Preanalyze_And_Resolve (Expr, Standard_Boolean);
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Initial_Condition_In_Decl_Part;
  
     --------------------------------------
*************** package body Sem_Prag is
*** 3770,3776 ****
                 if Item_Id = Any_Id then
                    null;
  
!                elsif Ekind (Item_Id) in E_Constant | E_Variable
                   and then Present (Ultimate_Overlaid_Entity (Item_Id))
                 then
                    SPARK_Msg_NE
--- 3908,3914 ----
                 if Item_Id = Any_Id then
                    null;
  
!                elsif Ekind (Item_Id) = E_Variable
                   and then Present (Ultimate_Overlaid_Entity (Item_Id))
                 then
                    SPARK_Msg_NE
*************** package body Sem_Prag is
*** 3922,3928 ****
                          end if;
                       end if;
  
!                      if Ekind (Input_Id) in E_Constant | E_Variable
                         and then Present (Ultimate_Overlaid_Entity (Input_Id))
                       then
                          SPARK_Msg_NE
--- 4060,4066 ----
                          end if;
                       end if;
  
!                      if Ekind (Input_Id) = E_Variable
                         and then Present (Ultimate_Overlaid_Entity (Input_Id))
                       then
                          SPARK_Msg_NE
*************** package body Sem_Prag is
*** 4827,4842 ****
          (Arg                : Node_Id;
           N1, N2             : Name_Id);
        procedure Check_Arg_Is_One_Of
!         (Arg                : Node_Id;
!          N1, N2, N3         : Name_Id);
!       procedure Check_Arg_Is_One_Of
!         (Arg                : Node_Id;
!          N1, N2, N3, N4     : Name_Id);
!       procedure Check_Arg_Is_One_Of
!         (Arg                : Node_Id;
!          N1, N2, N3, N4, N5 : Name_Id);
        --  Check the specified argument Arg to make sure that it is an
!       --  identifier whose name matches either N1 or N2 (or N3, N4, N5 if
        --  present). If not then give error and raise Pragma_Exit.
  
        procedure Check_Arg_Is_Queuing_Policy (Arg : Node_Id);
--- 4965,4974 ----
          (Arg                : Node_Id;
           N1, N2             : Name_Id);
        procedure Check_Arg_Is_One_Of
!         (Arg   : Node_Id;
!          Names : Name_List);
        --  Check the specified argument Arg to make sure that it is an
!       --  identifier whose name matches either N1 or N2 (or a list of names is
        --  present). If not then give error and raise Pragma_Exit.
  
        procedure Check_Arg_Is_Queuing_Policy (Arg : Node_Id);
*************** package body Sem_Prag is
*** 4920,4925 ****
--- 5052,5067 ----
        --  Common checks for pragmas that appear within a main program
        --  (Priority, Main_Storage, Time_Slice, Relative_Deadline, CPU).
  
+       procedure Check_Inconsistent_Argument_Ghostliness
+         (Arg1               : Entity_Id;
+          Arg2               : Entity_Id;
+          Ghost_Error_Posted : in out Boolean);
+       --  Reports an error and sets Ghost_Error_Posted when:
+       --  * One argument is ghost and the other is not ghost
+       --  * One argument is checked ghost and the other is ignored ghost
+       --
+       --  Checks are avoided when Ghost_Error_Posted is already set.
+ 
        procedure Check_Interrupt_Or_Attach_Handler;
        --  Common processing for first argument of pragma Interrupt_Handler or
        --  pragma Attach_Handler.
*************** package body Sem_Prag is
*** 4992,4997 ****
--- 5134,5144 ----
        --  presence of at least one component. UU_Typ is the related Unchecked_
        --  Union type.
  
+       function Create_Pragma_Without_Assertion_Level
+         (Expr : Node_Id) return Node_Id;
+       --  Creates a new pragma from an Assertion_Level association argument
+       --  with the same name as the orignal pragma.
+ 
        procedure Ensure_Aggregate_Form (Arg : Node_Id);
        --  Subsidiary routine to the processing of pragmas Abstract_State,
        --  Contract_Cases, Depends, Exceptional_Cases, Global, Initializes,
*************** package body Sem_Prag is
*** 5112,5121 ****
        --  Determines if the placement of the current pragma is appropriate
        --  for a configuration pragma.
  
-       function Is_In_Context_Clause return Boolean;
-       --  Returns True if pragma appears within the context clause of a unit,
-       --  and False for any other placement (does not generate any messages).
- 
        function Is_Static_String_Expression (Arg : Node_Id) return Boolean;
        --  Analyzes the argument, and determines if it is a static string
        --  expression, returns True if so, False if non-static or not String.
--- 5259,5264 ----
*************** package body Sem_Prag is
*** 5451,5456 ****
--- 5594,5612 ----
           --  a class-wide precondition only if one of its ancestors has an
           --  explicit class-wide precondition.
  
+          function Assertion_Level_Pragma_Comes_From_Source
+            (N : Node_Id) return Boolean
+          is (Present (Original_Pragma (N))
+              and then Present (Original_Node (Original_Pragma (N)))
+              and then Comes_From_Source (Original_Node (Original_Pragma (N))));
+          --  Determine whether a pragma was originally from source and used an
+          --  assertion level.
+          --
+          --  When the pragma was using an Assertion_Level it was replaced by
+          --  a new pragma where the Original_Pragma points to the original
+          --  pragma node which was removed from the tree and replaced by a
+          --  null node.
+ 
           -----------------------------
           -- Inherits_Class_Wide_Pre --
           -----------------------------
*************** package body Sem_Prag is
*** 5544,5550 ****
           --  rewriting the pragma identifier. This allows the retrieval of the
           --  original pragma name by routine Original_Aspect_Pragma_Name.
  
!          if Comes_From_Source (N) then
              if Pname in Name_Pre | Name_Pre_Class then
                 Is_Pre_Post := True;
                 Set_Class_Present (N, Pname = Name_Pre_Class);
--- 5700,5708 ----
           --  rewriting the pragma identifier. This allows the retrieval of the
           --  original pragma name by routine Original_Aspect_Pragma_Name.
  
!          if Comes_From_Source (N)
!            or else Assertion_Level_Pragma_Comes_From_Source (N)
!          then
              if Pname in Name_Pre | Name_Pre_Class then
                 Is_Pre_Post := True;
                 Set_Class_Present (N, Pname = Name_Pre_Class);
*************** package body Sem_Prag is
*** 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;
--- 5743,5749 ----
  
              if Present (Arg2) then
                 Check_Optional_Identifier (Arg2, Name_Message);
!                Preanalyze_And_Resolve_Assert_Expression
                   (Get_Pragma_Arg (Arg2), Standard_String);
              end if;
           end if;
*************** package body Sem_Prag is
*** 5688,5696 ****
           --  For Ada 2022, pre/postconditions can appear on formal subprograms
  
           elsif Nkind (Subp_Decl) = N_Formal_Concrete_Subprogram_Declaration
-             and then Ada_Version >= Ada_2022
           then
!             null;
  
           --  An access-to-subprogram type can have pre/postconditions, which
           --  are both analyzed when attached to the type and copied to the
--- 5846,5857 ----
           --  For Ada 2022, pre/postconditions can appear on formal subprograms
  
           elsif Nkind (Subp_Decl) = N_Formal_Concrete_Subprogram_Declaration
           then
!             if Ada_Version < Ada_2022 then
!                Error_Msg_Ada_2022_Feature
!                  ("pre/postcondition on formal subprogram", Loc);
!                raise Pragma_Exit;
!             end if;
  
           --  An access-to-subprogram type can have pre/postconditions, which
           --  are both analyzed when attached to the type and copied to the
*************** package body Sem_Prag is
*** 5762,5768 ****
  
              begin
                 if Pname = Name_Pre_Class then
!                   if Is_Ignored (N) then
                       Set_Ignored_Class_Preconditions (Subp_Id,
                         New_Copy_Tree (Expr));
                    else
--- 5923,5929 ----
  
              begin
                 if Pname = Name_Pre_Class then
!                   if Is_Ignored_In_Codegen (N) then
                       Set_Ignored_Class_Preconditions (Subp_Id,
                         New_Copy_Tree (Expr));
                    else
*************** package body Sem_Prag is
*** 5770,5776 ****
                    end if;
  
                 else
!                   if Is_Ignored (N) then
                       Set_Ignored_Class_Postconditions (Subp_Id,
                         New_Copy_Tree (Expr));
                    else
--- 5931,5937 ----
                    end if;
  
                 else
!                   if Is_Ignored_In_Codegen (N) then
                       Set_Ignored_Class_Postconditions (Subp_Id,
                         New_Copy_Tree (Expr));
                    else
*************** package body Sem_Prag is
*** 5883,5891 ****
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost variables is emitted.
  
!          Ghost_Id : Entity_Id := Empty;
!          --  The entity of the first Ghost variable encountered while
!          --  processing the arguments of the pragma.
  
        begin
           GNAT_Pragma;
--- 6044,6053 ----
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost variables is emitted.
  
!          First_Arg_Id : Entity_Id := Empty;
!          --  The entity of the first variable encountered while processing the
!          --  arguments of the pragma. This is used as a reference for assessing
!          --  the ghostliness of other arguments.
  
        begin
           GNAT_Pragma;
*************** package body Sem_Prag is
*** 5923,5963 ****
                       Set_Has_Pragma_Unused (Arg_Id);
                    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, Arg_Id);
! 
!                   --  Capture the entity of the first Ghost variable being
                    --  processed for error detection purposes.
  
!                   if Is_Ghost_Entity (Arg_Id) then
!                      if No (Ghost_Id) then
!                         Ghost_Id := Arg_Id;
!                      end if;
! 
!                   --  Otherwise the variable 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 "
!                         & "variables", N);
  
!                      Error_Msg_Sloc := Sloc (Ghost_Id);
!                      Error_Msg_NE ("\& # declared as ghost", N, Ghost_Id);
  
!                      Error_Msg_Sloc := Sloc (Arg_Id);
!                      Error_Msg_NE ("\& # declared as non-ghost", N, Arg_Id);
                    end if;
  
                 --  Warn if already flagged as Unused or Unmodified
  
                 elsif Has_Pragma_Unmodified (Arg_Id) then
--- 6085,6106 ----
                       Set_Has_Pragma_Unused (Arg_Id);
                    end if;
  
!                   --  Capture the entity of the first variable being
                    --  processed for error detection purposes.
  
!                   if No (First_Arg_Id) then
!                      First_Arg_Id := Arg_Id;
  
!                      --  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, Arg_Id);
                    end if;
  
+                   Check_Inconsistent_Argument_Ghostliness
+                     (First_Arg_Id, Arg_Id, Ghost_Error_Posted);
+ 
                 --  Warn if already flagged as Unused or Unmodified
  
                 elsif Has_Pragma_Unmodified (Arg_Id) then
*************** package body Sem_Prag is
*** 5999,6007 ****
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost names is emitted.
  
!          Ghost_Id : Entity_Id := Empty;
!          --  The entity of the first Ghost name encountered while processing
!          --  the arguments of the pragma.
  
        begin
           GNAT_Pragma;
--- 6142,6151 ----
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost names is emitted.
  
!          First_Arg_Id : Entity_Id := Empty;
!          --  The entity of the first variable encountered while processing the
!          --  arguments of the pragma. This is used as a reference for assessing
!          --  the ghostliness of other arguments.
  
        begin
           GNAT_Pragma;
*************** package body Sem_Prag is
*** 6009,6015 ****
  
           --  Check case of appearing within context clause
  
!          if not Is_Unused and then Is_In_Context_Clause then
  
              --  The arguments must all be units mentioned in a with clause in
              --  the same context clause. Note that Par.Prag already checked
--- 6153,6159 ----
  
           --  Check case of appearing within context clause
  
!          if not Is_Unused and then Is_In_Context_Clause (N) then
  
              --  The arguments must all be units mentioned in a with clause in
              --  the same context clause. Note that Par.Prag already checked
*************** package body Sem_Prag is
*** 6064,6069 ****
--- 6208,6226 ----
                 if Is_Entity_Name (Arg_Expr) then
                    Arg_Id := Entity (Arg_Expr);
  
+                   --  Capture the entity of the first variable being
+                   --  processed for error detection purposes.
+ 
+                   if No (First_Arg_Id) then
+                      First_Arg_Id := Arg_Id;
+ 
+                      --  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, Arg_Id);
+                   end if;
+ 
                    --  Warn if already flagged as Unused or Unreferenced and
                    --  skip processing the argument.
  
*************** package body Sem_Prag is
*** 6103,6138 ****
  
                       Mark_Ghost_Pragma (N, Arg_Id);
  
!                      --  Capture the entity of the first Ghost name being
!                      --  processed for error detection purposes.
! 
!                      if Is_Ghost_Entity (Arg_Id) then
!                         if No (Ghost_Id) then
!                            Ghost_Id := Arg_Id;
!                         end if;
! 
!                      --  Otherwise the name 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 "
!                            & "names", N);
! 
!                         Error_Msg_Sloc := Sloc (Ghost_Id);
!                         Error_Msg_NE
!                           ("\& # declared as ghost", N, Ghost_Id);
! 
!                         Error_Msg_Sloc := Sloc (Arg_Id);
!                         Error_Msg_NE
!                           ("\& # declared as non-ghost", N, Arg_Id);
!                      end if;
                    end if;
                 end if;
  
--- 6260,6267 ----
  
                       Mark_Ghost_Pragma (N, Arg_Id);
  
!                      Check_Inconsistent_Argument_Ghostliness
!                        (First_Arg_Id, Arg_Id, Ghost_Error_Posted);
                    end if;
                 end if;
  
*************** package body Sem_Prag is
*** 6289,6295 ****
--- 6418,6431 ----
              end if;
           end if;
  
+          --  We are going to check the entity that determines the ghost
+          --  region of that pragma. We need to disable the checks for ghost
+          --  context since the ghost region can only be set after analyzing
+          --  this entity.
+ 
+          Ghost_Context_Checks_Disabled := True;
           Analyze (Argx);
+          Ghost_Context_Checks_Disabled := False;
  
           if Nkind (Argx) not in N_Direct_Name
             and then (Nkind (Argx) /= N_Attribute_Reference
*************** package body Sem_Prag is
*** 6446,6490 ****
        end Check_Arg_Is_One_Of;
  
        procedure Check_Arg_Is_One_Of
!         (Arg        : Node_Id;
!          N1, N2, N3 : Name_Id)
!       is
!          Argx : constant Node_Id := Get_Pragma_Arg (Arg);
! 
!       begin
!          Check_Arg_Is_Identifier (Argx);
! 
!          if Chars (Argx) not in N1 | N2 | N3 then
!             Error_Pragma_Arg ("invalid argument for pragma%", Argx);
!          end if;
!       end Check_Arg_Is_One_Of;
! 
!       procedure Check_Arg_Is_One_Of
!         (Arg                : Node_Id;
!          N1, N2, N3, N4     : Name_Id)
        is
           Argx : constant Node_Id := Get_Pragma_Arg (Arg);
- 
        begin
           Check_Arg_Is_Identifier (Argx);
  
!          if Chars (Argx) not in N1 | N2 | N3 | N4 then
!             Error_Pragma_Arg ("invalid argument for pragma%", Argx);
           end if;
-       end Check_Arg_Is_One_Of;
  
!       procedure Check_Arg_Is_One_Of
!         (Arg                : Node_Id;
!          N1, N2, N3, N4, N5 : Name_Id)
!       is
!          Argx : constant Node_Id := Get_Pragma_Arg (Arg);
! 
!       begin
!          Check_Arg_Is_Identifier (Argx);
! 
!          if Chars (Argx) not in N1 | N2 | N3 | N4 | N5 then
!             Error_Pragma_Arg ("invalid argument for pragma%", Argx);
!          end if;
        end Check_Arg_Is_One_Of;
  
        ---------------------------------
--- 6582,6599 ----
        end Check_Arg_Is_One_Of;
  
        procedure Check_Arg_Is_One_Of
!         (Arg   : Node_Id;
!          Names : Name_List)
        is
           Argx : constant Node_Id := Get_Pragma_Arg (Arg);
        begin
           Check_Arg_Is_Identifier (Argx);
  
!          if (for some Name of Names => Chars (Argx) = Name) then
!             return;
           end if;
  
!          Error_Pragma_Arg ("invalid argument for pragma%", Argx);
        end Check_Arg_Is_One_Of;
  
        ---------------------------------
*************** package body Sem_Prag is
*** 6882,6887 ****
--- 6991,7081 ----
           end if;
        end Check_In_Main_Program;
  
+       ---------------------------------------------
+       -- Check_Inconsistent_Argument_Ghostliness --
+       ---------------------------------------------
+ 
+       procedure Check_Inconsistent_Argument_Ghostliness
+         (Arg1               : Entity_Id;
+          Arg2               : Entity_Id;
+          Ghost_Error_Posted : in out Boolean)
+       is
+ 
+          procedure Report_Ghost_Argument_Mismatch
+             (Ghost_Arg : Entity_Id; Non_Ghost_Arg : Entity_Id);
+          --  Constructs an error message when both a ghost and a non-ghost
+          --  argument are used in the same pragma.
+ 
+          procedure Report_Ghost_Policy_Mismatch
+             (Checked_Arg : Entity_Id; Ignored_Arg : Entity_Id);
+          --  Constructs an error message when both a checked ghost and an
+          --  ignored ghost argument are used in the same pragma.
+ 
+          ------------------------------------
+          -- Report_Ghost_Argument_Mismatch --
+          ------------------------------------
+ 
+          procedure Report_Ghost_Argument_Mismatch
+             (Ghost_Arg : Entity_Id; Non_Ghost_Arg : Entity_Id) is
+ 
+          begin
+             Error_Msg_Name_1 := Pname;
+             Error_Msg_N
+                ("pragma % cannot mention ghost and non-ghost " & "variables",
+                N);
+ 
+             Error_Msg_Sloc := Sloc (Ghost_Arg);
+             Error_Msg_NE ("\& # declared as ghost", N, Ghost_Arg);
+ 
+             Error_Msg_Sloc := Sloc (Non_Ghost_Arg);
+             Error_Msg_NE ("\& # declared as non-ghost", N, Non_Ghost_Arg);
+          end Report_Ghost_Argument_Mismatch;
+ 
+          ----------------------------------
+          -- Report_Ghost_Policy_Mismatch --
+          ----------------------------------
+ 
+          procedure Report_Ghost_Policy_Mismatch
+             (Checked_Arg : Entity_Id; Ignored_Arg : Entity_Id) is
+ 
+          begin
+             Error_Msg_Name_1 := Pname;
+             Error_Msg_N
+                ("pragma % cannot mention checked ghost and ignored ghost "
+                & "variables",
+                N);
+ 
+             Error_Msg_Sloc := Sloc (Checked_Arg);
+             Error_Msg_NE
+                ("\& # declared with a checked policy", N, Checked_Arg);
+ 
+             Error_Msg_Sloc := Sloc (Ignored_Arg);
+             Error_Msg_NE
+                ("\& # declared with an ignored policy", N, Ignored_Arg);
+          end Report_Ghost_Policy_Mismatch;
+       begin
+          if Ghost_Error_Posted then
+             null;
+          elsif Is_Ghost_Entity (Arg1) and then not Is_Ghost_Entity (Arg2) then
+             Report_Ghost_Argument_Mismatch (Arg1, Arg2);
+             Ghost_Error_Posted := True;
+          elsif not Is_Ghost_Entity (Arg1) and then Is_Ghost_Entity (Arg2)
+          then
+             Report_Ghost_Argument_Mismatch (Arg2, Arg1);
+             Ghost_Error_Posted := True;
+          elsif Is_Checked_Ghost_Entity (Arg1)
+             and then Is_Ignored_Ghost_Entity (Arg2)
+          then
+             Report_Ghost_Policy_Mismatch (Arg1, Arg2);
+             Ghost_Error_Posted := True;
+          elsif Is_Ignored_Ghost_Entity (Arg1)
+             and then Is_Checked_Ghost_Entity (Arg2)
+          then
+             Report_Ghost_Policy_Mismatch (Arg2, Arg1);
+             Ghost_Error_Posted := True;
+          end if;
+       end Check_Inconsistent_Argument_Ghostliness;
+ 
        ---------------------------------------
        -- Check_Interrupt_Or_Attach_Handler --
        ---------------------------------------
*************** package body Sem_Prag is
*** 6900,6911 ****
           Handler_Proc := Find_Unique_Parameterless_Procedure (Arg1_X, Arg1);
           Proc_Scope := Scope (Handler_Proc);
  
!          if Ekind (Proc_Scope) /= E_Protected_Type then
              Error_Pragma_Arg
                ("argument of pragma% must be protected procedure", Arg1);
           end if;
  
!          --  For pragma case (as opposed to access case), check placement.
           --  We don't need to do that for aspects, because we have the
           --  check that they aspect applies an appropriate procedure.
  
--- 7094,7107 ----
           Handler_Proc := Find_Unique_Parameterless_Procedure (Arg1_X, Arg1);
           Proc_Scope := Scope (Handler_Proc);
  
!          if Nkind (Parent (Subprogram_Spec (Handler_Proc))) /=
!            N_Protected_Definition
!          then
              Error_Pragma_Arg
                ("argument of pragma% must be protected procedure", Arg1);
           end if;
  
!          --  For pragma case (as opposed to aspect case), check placement.
           --  We don't need to do that for aspects, because we have the
           --  check that they aspect applies an appropriate procedure.
  
*************** package body Sem_Prag is
*** 7603,7608 ****
--- 7799,7912 ----
           end loop;
        end Check_Variant;
  
+       -------------------------------------------
+       -- Create_Pragma_Without_Assertion_Level --
+       -------------------------------------------
+ 
+       function Create_Pragma_Without_Assertion_Level
+         (Expr : Node_Id) return Node_Id
+       is
+          function Aggregate_To_Associations (N : Node_Id) return List_Id;
+          --  Converts an Aggregate into a list of
+          --  Pragma_Argument_Associations.
+ 
+          procedure Validate_Assertion_Level_Aggregate (N : Node_Id);
+          --  Handle invalid syntax scenarios for an Aggregate containing
+          --  Assertion_Levels.
+ 
+          -------------------------------
+          -- Aggregate_To_Associations --
+          -------------------------------
+ 
+          function Aggregate_To_Associations (N : Node_Id) return List_Id is
+             Args      : constant List_Id := New_List;
+             Comp_Assn : Node_Id;
+             Comp_Expr : Node_Id;
+             Comp_Expr_Repl : Node_Id;
+             Choice    : Node_Id;
+          begin
+             pragma Assert (Nkind (N) = N_Aggregate);
+             Validate_Assertion_Level_Aggregate (N);
+ 
+             Comp_Expr := First (Expressions (N));
+             while Present (Comp_Expr) loop
+                --  Remove the expression from the list so that it can be
+                --  inserted into the new Pragma_Argument_Association.
+ 
+                Comp_Expr_Repl := Comp_Expr;
+                Next (Comp_Expr);
+                Remove (Comp_Expr_Repl);
+                Append_To
+                  (Args,
+                   Make_Pragma_Argument_Association
+                     (Sloc (Comp_Expr_Repl),
+                      Expression => Comp_Expr_Repl));
+             end loop;
+ 
+             Comp_Assn := First (Component_Associations (N));
+             while Present (Comp_Assn) loop
+                Choice := First (Choices (Comp_Assn));
+                Append_To
+                  (Args,
+                   Make_Pragma_Argument_Association
+                     (Sloc (Comp_Assn),
+                      Chars      => Chars (Choice),
+                      Expression => Expression (Comp_Assn)));
+                Next (Comp_Assn);
+             end loop;
+             return Args;
+          end Aggregate_To_Associations;
+ 
+          ----------------------------------------
+          -- Validate_Assertion_Level_Aggregate --
+          ----------------------------------------
+ 
+          procedure Validate_Assertion_Level_Aggregate (N : Node_Id) is
+             Comp_Assn : Node_Id;
+             Choice    : Node_Id;
+          begin
+             Comp_Assn := First (Component_Associations (N));
+             while Present (Comp_Assn) loop
+                if List_Length (Choices (Comp_Assn)) /= 1 then
+                   Error_Pragma_Arg
+                     ("only one Assertion_Level can be associated "
+                      & "with an expression",
+                      Comp_Assn);
+                end if;
+ 
+                Choice := First (Choices (Comp_Assn));
+ 
+                if Nkind (Choice) /= N_Identifier then
+                   Error_Pragma_Arg
+                     ("\association must denote an Assertion_Level", Comp_Assn);
+                end if;
+                Next (Comp_Assn);
+             end loop;
+          end Validate_Assertion_Level_Aggregate;
+ 
+          --  Local variables
+ 
+          Args : List_Id;
+ 
+       --  Start of proessing for Create_Pragma_Without_Assertion_Level
+ 
+       begin
+          if Nkind (Expr) in N_Aggregate then
+             Validate_Assertion_Level_Aggregate (Expr);
+             Args := Aggregate_To_Associations (Expr);
+          else
+             Args :=
+               New_List
+                 (Make_Pragma_Argument_Association (Sloc (Expr),
+                    Expression => Expr));
+          end if;
+ 
+          return
+            Make_Pragma (Sloc (N),
+               Chars                        => Pname,
+               Pragma_Argument_Associations => Args);
+       end Create_Pragma_Without_Assertion_Level;
+ 
        ---------------------------
        -- Ensure_Aggregate_Form --
        ---------------------------
*************** package body Sem_Prag is
*** 8083,8092 ****
--- 8387,8412 ----
        --  the test below also permits use in a configuration pragma file.
  
        function Is_Configuration_Pragma return Boolean is
+          function Is_Pragma_Node (Prg : Node_Id) return Boolean is
+            (Nkind (Prg) = N_Pragma
+             or else
+             (Present (Original_Node (Prg))
+              and then Nkind (Original_Node (Prg)) = N_Pragma));
+          --  Returns true whether the node is a pragma or was originally a
+          --  pragma.
+          --
+          --  Note that some pragmas like Assertion_Policy are rewritten as
+          --  Null_Statment nodes but we still need to make sure here that the
+          --  original node was a pragma node.
+ 
+          --  Local variables
+ 
           Lis : List_Id;
           Par : constant Node_Id := Parent (N);
           Prg : Node_Id;
  
+       --  Start of processing for Is_Configuration_Pragma
+ 
        begin
           --  Don't evaluate List_Containing (N) if Parent (N) could be
           --  an N_Aspect_Specification node.
*************** package body Sem_Prag is
*** 8115,8121 ****
              loop
                 if Prg = N then
                    return True;
!                elsif Nkind (Prg) /= N_Pragma then
                    return False;
                 end if;
  
--- 8435,8441 ----
              loop
                 if Prg = N then
                    return True;
!                elsif not Is_Pragma_Node (Prg) then
                    return False;
                 end if;
  
*************** package body Sem_Prag is
*** 8127,8153 ****
           end if;
        end Is_Configuration_Pragma;
  
-       --------------------------
-       -- Is_In_Context_Clause --
-       --------------------------
- 
-       function Is_In_Context_Clause return Boolean is
-          Plist       : List_Id;
-          Parent_Node : Node_Id;
- 
-       begin
-          if Is_List_Member (N) then
-             Plist := List_Containing (N);
-             Parent_Node := Parent (Plist);
- 
-             return Present (Parent_Node)
-               and then Nkind (Parent_Node) = N_Compilation_Unit
-               and then Context_Items (Parent_Node) = Plist;
-          end if;
- 
-          return False;
-       end Is_In_Context_Clause;
- 
        ---------------------------------
        -- Is_Static_String_Expression --
        ---------------------------------
--- 8447,8452 ----
*************** package body Sem_Prag is
*** 8537,8542 ****
--- 8836,8843 ----
           Check_Arg_Is_OK_Static_Expression (Arg2, Standard_String);
           Analyze_And_Resolve (Arg1x, Standard_Boolean);
  
+          Mark_Ghost_Pragma (N, Current_Scope);
+ 
           if CodePeer_Mode then
              Rewrite (N, Make_Null_Statement (Loc));
              return;
*************** package body Sem_Prag is
*** 8991,8998 ****
--- 9292,9306 ----
           Check_Optional_Identifier (Arg2, Name_Entity);
           Check_Arg_Is_Local_Name (Arg2);
  
+          --  We are going to check the entity that determines the ghost
+          --  region of that pragma. We need to disable the checks for ghost
+          --  context since the ghost region can only be set after analyzing
+          --  this entity.
+ 
+          Ghost_Context_Checks_Disabled := True;
           Id := Get_Pragma_Arg (Arg2);
           Analyze (Id);
+          Ghost_Context_Checks_Disabled := False;
  
           if not Is_Entity_Name (Id) then
              Error_Pragma_Arg ("entity name required", Arg2);
*************** package body Sem_Prag is
*** 10049,10055 ****
              end if;
  
              Def_Id := Entity (Def_Id);
-             Kill_Size_Check_Code (Def_Id);
              if Ekind (Def_Id) /= E_Constant then
                 Note_Possible_Modification
                   (Get_Pragma_Arg (Arg1), Sure => False);
--- 10357,10362 ----
*************** package body Sem_Prag is
*** 10062,10068 ****
              --  purposes of legality checks and removal of ignored Ghost code.
  
              Mark_Ghost_Pragma (N, Def_Id);
-             Kill_Size_Check_Code (Def_Id);
              if Ekind (Def_Id) /= E_Constant then
                 Note_Possible_Modification
                   (Get_Pragma_Arg (Arg2), Sure => False);
--- 10369,10374 ----
*************** package body Sem_Prag is
*** 10391,10396 ****
--- 10697,10705 ----
              --  the External_Name). For exceptions, the External_Name is the
              --  name of the RTTI structure.
  
+             --  Do not call Set_Is_Imported as that would disable the output
+             --  of the needed exception data structures.
+ 
              --  ??? Emit an error if pragma Import/Export_Exception is present
  
           elsif Nkind (Parent (Def_Id)) = N_Incomplete_Type_Declaration then
*************** package body Sem_Prag is
*** 10446,10454 ****
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost subprograms is emitted.
  
!          Ghost_Id : Entity_Id := Empty;
!          --  The entity of the first Ghost subprogram encountered while
!          --  processing the arguments of the pragma.
  
           procedure Check_Inline_Always_Placement (Spec_Id : Entity_Id);
           --  Verify the placement of pragma Inline_Always with respect to the
--- 10755,10764 ----
           --  Flag set when an error concerning the illegal mix of Ghost and
           --  non-Ghost subprograms is emitted.
  
!          First_Arg_Id : Entity_Id := Empty;
!          --  The entity of the first variable encountered while processing the
!          --  arguments of the pragma. This is used as a reference for assessing
!          --  the ghostliness of other arguments.
  
           procedure Check_Inline_Always_Placement (Spec_Id : Entity_Id);
           --  Verify the placement of pragma Inline_Always with respect to the
*************** package body Sem_Prag is
*** 10936,10971 ****
                    end if;
              end case;
  
!             --  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, Subp);
! 
!             --  Capture the entity of the first Ghost subprogram being
              --  processed for error detection purposes.
  
!             if Is_Ghost_Entity (Subp) then
!                if No (Ghost_Id) then
!                   Ghost_Id := Subp;
!                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 subprograms",
!                   N);
  
!                Error_Msg_Sloc := Sloc (Ghost_Id);
!                Error_Msg_NE ("\& # declared as ghost", N, Ghost_Id);
  
!                Error_Msg_Sloc := Sloc (Subp);
!                Error_Msg_NE ("\& # declared as non-ghost", N, Subp);
              end if;
           end Set_Inline_Flags;
  
        --  Start of processing for Process_Inline
--- 11246,11266 ----
                    end if;
              end case;
  
!             --  Capture the entity of the first variable being
              --  processed for error detection purposes.
  
!             if No (First_Arg_Id) then
!                First_Arg_Id := Subp;
  
!                --  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, Subp);
              end if;
+ 
+             Check_Inconsistent_Argument_Ghostliness
+               (First_Arg_Id, Subp, Ghost_Error_Posted);
           end Set_Inline_Flags;
  
        --  Start of processing for Process_Inline
*************** package body Sem_Prag is
*** 11698,11703 ****
--- 11993,12018 ----
              if Is_First_Subtype (E) and then Etype (E) /= E then
                 Suppress_Unsuppress_Echeck (Etype (E), C);
              end if;
+ 
+             --  For the alignment check of an object with an address clause,
+             --  we want the pragma to be taken into account even if it comes
+             --  after the address clause:
+ 
+             --    A : Integer;
+             --    for A'Address use ...
+             --    pragma Suppress (Alignment_Check, A);
+ 
+             --  When there is also an alignment clause, the check is generated
+             --  unconditionally, see Analyze_Attribute_Definition_Clause.
+ 
+             if C = Alignment_Check
+               and then not Is_Type (E)
+               and then Present (Address_Clause (E))
+               and then No (Alignment_Clause (E))
+             then
+                Set_Check_Address_Alignment
+                  (Address_Clause (E), not Suppress_Case);
+             end if;
           end Suppress_Unsuppress_Echeck;
  
        --  Start of processing for Process_Suppress_Unsuppress
*************** package body Sem_Prag is
*** 11794,11800 ****
--- 12109,12123 ----
  
              Check_Optional_Identifier (Arg2, Name_On);
              E_Id := Get_Pragma_Arg (Arg2);
+ 
+             --  We are going to check the entity that determines the ghost
+             --  region of that pragma. We need to disable the checks for ghost
+             --  context since the ghost region can only be set after analyzing
+             --  this entity.
+ 
+             Ghost_Context_Checks_Disabled := True;
              Analyze (E_Id);
+             Ghost_Context_Checks_Disabled := False;
  
              if not Is_Entity_Name (E_Id) then
                 Error_Pragma_Arg
*************** package body Sem_Prag is
*** 12344,12349 ****
--- 12667,12679 ----
  
        end Set_Ravenscar_Profile;
  
+       --  Local variables
+ 
+       Assoc     : Node_Id;
+       Last_Prag : Node_Id;
+       Level     : Entity_Id;
+       Sub_Prag  : Node_Id;
+ 
     --  Start of processing for Analyze_Pragma
  
     begin
*************** package body Sem_Prag is
*** 12378,12384 ****
  
        --  Deal with unrecognized pragma
  
!       if not Is_Pragma_Name (Pname) then
           declare
              Msg_Issued : Boolean := False;
           begin
--- 12708,12719 ----
  
        --  Deal with unrecognized pragma
  
!       --  Pragma Unsigned_Base_Range temporarily disabled
! 
!       if not Is_Pragma_Name (Pname)
!         or else (Pname = Name_Unsigned_Base_Range
!                   and then not Debug_Flag_Dot_U)
!       then
           declare
              Msg_Issued : Boolean := False;
           begin
*************** package body Sem_Prag is
*** 12437,12444 ****
        elsif Is_Rewrite_Substitution (N)
          and then Nkind (Original_Node (N)) = N_Pragma
        then
!          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
--- 12772,12778 ----
        elsif Is_Rewrite_Substitution (N)
          and then Nkind (Original_Node (N)) = N_Pragma
        then
!          Set_Pragma_Ghost_Assertion_Level (N, Original_Node (N));
  
        --  Skip querying the applicable policy at this point for dynamic
        --  predicate checks since they rely on the policy applicable in
*************** package body Sem_Prag is
*** 12454,12475 ****
  
        --  Otherwise query the applicable policy at this point
  
!       else
!          Check_Applicable_Policy (N);
  
!          --  If pragma is disabled, rewrite as NULL and skip analysis
  
-          if Is_Disabled (N) then
              Rewrite (N, Make_Null_Statement (Loc));
              Analyze (N);
              raise Pragma_Exit;
           end if;
        end if;
  
!       --  Mark assertion pragmas as Ghost depending on their enclosing context
  
!       if Assertion_Expression_Pragma (Prag_Id) then
!          Mark_Ghost_Pragma (N, Current_Scope);
        end if;
  
        --  Preset arguments
--- 12788,12854 ----
  
        --  Otherwise query the applicable policy at this point
  
!       elsif Is_Valid_Assertion_Kind (Pname) then
!          --  If the pragma is using Assertion_Level associations, analyze the
!          --  applicable policies for that pragma and then convert it into a
!          --  pragma without assertion levels. Analyze the new pragma with
!          --  policy-related attributes (Is_Checked/Is_Ignored/Is_Disabled)
!          --  already set.
  
!          if Has_Assertion_Level_Argument (N) then
!             Assoc := First (Pragma_Argument_Associations (N));
!             Last_Prag := N;
!             while Present (Assoc) loop
!                Level := Get_Assertion_Level (Chars (Assoc));
!                Sub_Prag :=
!                   Create_Pragma_Without_Assertion_Level (Expression (Assoc));
! 
!                --  Set policy based attributes based on the pragma name and the
!                --  assertion level.
! 
!                Check_Applicable_Policy (Sub_Prag, Level);
! 
!                --  Store the Level on the pragma node for easier access
! 
!                Set_Pragma_Ghost_Assertion_Level (Sub_Prag, Level);
! 
!                --  Store the Original_Pragma for the detection of
!                --  duplicates.
! 
!                Set_Original_Pragma (Sub_Prag, N);
! 
!                --  Insert the created pragmas in the same order after the
!                --  original pragma and analyze them later.
! 
!                Insert_After (Last_Prag, Sub_Prag);
!                Last_Prag := Sub_Prag;
! 
!                Next (Assoc);
!             end loop;
! 
!             --  Remove the original pragma and continue processing all
!             --  of the new sub-pragmas.
  
              Rewrite (N, Make_Null_Statement (Loc));
              Analyze (N);
              raise Pragma_Exit;
+ 
+          --  Otherwise apply the policy based attributes based on the pragma
+          --  name.
+ 
+          else
+             Check_Applicable_Policy (N, Empty);
+             Set_Pragma_Ghost_Assertion_Level
+               (N, Standard_Level_Default);
           end if;
        end if;
  
!       --  If the pragma is disabled, rewrite it as NULL and skip its analysis
  
!       if Is_Disabled (N) then
!          Rewrite (N, Make_Null_Statement (Loc));
!          Analyze (N);
!          raise Pragma_Exit;
        end if;
  
        --  Preset arguments
*************** package body Sem_Prag is
*** 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);
--- 13316,13322 ----
                 procedure Check_Ghost_Synchronous is
                 begin
                    --  A synchronized abstract state cannot be Ghost and vice
!                   --  versa (SPARK RM 6.9(22)).
  
                    if Ghost_Seen and Synchronous_Seen then
                       SPARK_Msg_N ("synchronized state cannot be ghost", State);
*************** package body Sem_Prag is
*** 12990,12996 ****
                    --  An abstract state declared within a Ghost region becomes
                    --  Ghost (SPARK RM 6.9(2)).
  
!                   if Ghost_Mode > None or else Is_Ghost_Entity (Pack_Id) then
                       Set_Is_Ghost_Entity (State_Id);
                    end if;
  
--- 13369,13377 ----
                    --  An abstract state declared within a Ghost region becomes
                    --  Ghost (SPARK RM 6.9(2)).
  
!                   if Ghost_Config.Ghost_Mode > None
!                     or else Is_Ghost_Entity (Pack_Id)
!                   then
                       Set_Is_Ghost_Entity (State_Id);
                    end if;
  
*************** package body Sem_Prag is
*** 13096,13101 ****
--- 13477,13488 ----
  
                             if Present (State_Id) then
                                Set_Is_Ghost_Entity (State_Id);
+ 
+                               --  Amend the Assertion_Level coming from the
+                               --  package.
+ 
+                               Set_Ghost_Assertion_Level
+                                  (State_Id, Standard_Level_Default);
                             end if;
  
                          --  Synchronous
*************** package body Sem_Prag is
*** 13176,13182 ****
--- 13563,13588 ----
  
                          elsif Chars (Opt_Nam) = Name_Part_Of then
                             Analyze_Part_Of_Option (Opt);
+                         elsif Chars (Opt_Nam) = Name_Ghost then
+                            Check_Duplicate_Option (Opt, Ghost_Seen);
+                            Check_Ghost_Synchronous;
  
+                            if Present (State_Id) then
+                               Set_Is_Ghost_Entity (State_Id);
+ 
+                               --  Amend the Assertion_Level coming from the
+                               --  package.
+ 
+                               if Nkind (Expression (Opt)) /= N_Identifier then
+                                  Error_Pragma_Arg
+                                    ("level name must be an identifier", N);
+                               end if;
+ 
+                               Set_Ghost_Assertion_Level
+                                 (State_Id,
+                                  Get_Assertion_Level
+                                    (Chars (Expression (Opt))));
+                            end if;
                          else
                             SPARK_Msg_N ("invalid state option", Opt);
                          end if;
*************** package body Sem_Prag is
*** 13843,13848 ****
--- 14249,14257 ----
              Expr    : Node_Id;
              Nam_Arg : Node_Id;
  
+             Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
+             --  Save the Ghost-related attributes to restore on exit
+ 
              --------------------------
              -- Inferred_String_Type --
              --------------------------
*************** package body Sem_Prag is
*** 13920,13925 ****
--- 14329,14338 ----
                 end if;
              end if;
  
+             --  Set the ghost mode before analyzing all of the arguments
+ 
+             Set_Ghost_Mode (N);
+ 
              --  Continue the processing with last argument removed for now
  
              Check_Arg_Is_Identifier (Arg1);
*************** package body Sem_Prag is
*** 13965,13970 ****
--- 14378,14385 ----
                    Next (Arg);
                 end loop;
              end if;
+ 
+             Restore_Ghost_Region (Saved_Ghost_Config);
           end Annotate;
  
           -------------------------------------------------
*************** package body Sem_Prag is
*** 14028,14035 ****
  
              --  Local variables
  
!             Expr     : Node_Id;
!             New_Args : List_Id;
  
           --  Start of processing for Assert
  
--- 14443,14455 ----
  
              --  Local variables
  
!             Args        : Args_List (1 .. 2);
!             Arg_Check   : Node_Id renames Args (1);
!             Arg_Message : Node_Id renames Args (2);
!             Check_Prag  : Node_Id;
!             New_Args    : List_Id;
!             Names       : constant Name_List (1 .. 2) :=
!                (Name_Check, Name_Message);
  
           --  Start of processing for Assert
  
*************** package body Sem_Prag is
*** 14047,14071 ****
  
              Check_At_Least_N_Arguments (1);
              Check_At_Most_N_Arguments (2);
!             Check_Arg_Order ((Name_Check, Name_Message));
!             Check_Optional_Identifier (Arg1, Name_Check);
!             Expr := Get_Pragma_Arg (Arg1);
  
              --  Special processing for Loop_Invariant, Loop_Variant or for
              --  other cases where a Loop_Entry attribute is present. If the
              --  assertion pragma contains attribute Loop_Entry, ensure that
              --  the related pragma is within a loop.
  
!             if        Prag_Id = Pragma_Loop_Invariant
                or else Prag_Id = Pragma_Loop_Variant
!               or else Contains_Loop_Entry (Expr)
              then
                 Check_Loop_Pragma_Placement;
  
                 --  Perform preanalysis to deal with embedded Loop_Entry
                 --  attributes.
  
!                Preanalyze_Assert_Expression (Expr, Any_Boolean);
              end if;
  
              --  Implement Assert[_And_Cut]/Assume/Loop_Invariant by generating
--- 14467,14498 ----
  
              Check_At_Least_N_Arguments (1);
              Check_At_Most_N_Arguments (2);
!             Gather_Associations (Names, Args);
!             Check_Arg_Order (Names);
!             Mark_Ghost_Pragma (N, Current_Scope);
  
              --  Special processing for Loop_Invariant, Loop_Variant or for
              --  other cases where a Loop_Entry attribute is present. If the
              --  assertion pragma contains attribute Loop_Entry, ensure that
              --  the related pragma is within a loop.
  
!             if Prag_Id = Pragma_Loop_Invariant
                or else Prag_Id = Pragma_Loop_Variant
!               or else Contains_Loop_Entry (Arg_Check)
              then
                 Check_Loop_Pragma_Placement;
  
                 --  Perform preanalysis to deal with embedded Loop_Entry
                 --  attributes.
+                --
+                --  But ignore the ghost context checks for now. The expression
+                --  will be reanalyzed with the correct ghost region once the
+                --  pragma has been converted to pragma check.
  
!                Ghost_Context_Checks_Disabled := True;
!                Preanalyze_And_Resolve_Assert_Expression
!                   (Arg_Check, Any_Boolean);
!                Ghost_Context_Checks_Disabled := False;
              end if;
  
              --  Implement Assert[_And_Cut]/Assume/Loop_Invariant by generating
*************** package body Sem_Prag is
*** 14085,14114 ****
              New_Args := New_List (
                Make_Pragma_Argument_Association (Loc,
                  Expression => Make_Identifier (Loc, Pname)),
!               Make_Pragma_Argument_Association (Sloc (Expr),
!                 Expression => Expr));
  
!             if Arg_Count > 1 then
!                Check_Optional_Identifier (Arg2, Name_Message);
  
                 --  Provide semantic annotations for optional argument, for
                 --  ASIS use, before rewriting.
                 --  Is this still needed???
  
!                Preanalyze_And_Resolve (Expression (Arg2), Standard_String);
                 Append_To (New_Args, New_Copy_Tree (Arg2));
              end if;
  
              --  Rewrite as Check pragma
  
!             Rewrite (N,
!               Make_Pragma (Loc,
!                 Chars                        => Name_Check,
!                 Pragma_Argument_Associations => New_Args));
  
              Analyze (N);
           end Assert;
  
           ----------------------
           -- Assertion_Policy --
           ----------------------
--- 14512,14697 ----
              New_Args := New_List (
                Make_Pragma_Argument_Association (Loc,
                  Expression => Make_Identifier (Loc, Pname)),
!               Make_Pragma_Argument_Association (Sloc (Arg_Check),
!                 Expression => Arg_Check));
  
!             if Present (Arg_Message) then
  
                 --  Provide semantic annotations for optional argument, for
                 --  ASIS use, before rewriting.
                 --  Is this still needed???
  
!                Preanalyze_And_Resolve (Arg_Message, Standard_String);
                 Append_To (New_Args, New_Copy_Tree (Arg2));
              end if;
  
              --  Rewrite as Check pragma
  
!             Check_Prag :=
!                Make_Pragma
!                  (Loc,
!                   Chars                        => Name_Check,
!                   Pragma_Argument_Associations => New_Args);
!             Copy_Assertion_Policy_Attributes (Check_Prag, N);
!             Rewrite (N, Check_Prag);
  
              Analyze (N);
           end Assert;
  
+          ---------------------
+          -- Assertion_Level --
+          ---------------------
+ 
+          --  pragma Assertion_Level (LEVEL_IDENTIFIER
+          --                          [, depends => DEPENDENCY_DESCRIPTOR]);
+          --
+          --  DEPENDENCY_DESCRIPTOR ::= LEVEL_IDENTIFIER | LEVEL_IDENTIFIER_LIST
+          --
+          --  LEVEL_IDENTIFIER_LIST ::= '[' LEVEL_IDENTIFIER
+          --                             {, LEVEL_IDENTIFIER} ']'
+ 
+          when Pragma_Assertion_Level => Assertion_Level : declare
+             procedure Add_Dependencies
+                (Level : Entity_Id; Parent_Level : Entity_Id);
+             --  Adds the following dependencies:
+             --  * Adds Parent_Level to the Parent_Levels of Level
+             --  * Adds Level to the Child_Levels of Parent_Level
+ 
+             procedure Check_Known_Level_Name
+                (Level : Entity_Id; Ref : Node_Id);
+             --  Raise an error if the level has not be declared before
+ 
+             procedure Check_Valid_Level_Name (Nam : Name_Id);
+             --  Raise an error if the name matches a valid assertion kind.
+             --
+             --  This is to avoid the ambigiouty in Assertion_Policy if either
+             --  the level or the assertion kind is affected by the policy.
+ 
+             procedure Check_Valid_Level_Node (N : Node_Id);
+             --  Raise an error if the node is not a simple identifier
+ 
+             ----------------------
+             -- Add_Dependencies --
+             ----------------------
+ 
+             procedure Add_Dependencies
+                (Level : Entity_Id; Parent_Level : Entity_Id)
+             is
+                Parent_Level_List : Elist_Id;
+                Child_Levels_List : Elist_Id;
+             begin
+                if No (Parent_Levels (Level)) then
+                   Set_Parent_Levels (Level, New_Elmt_List);
+                end if;
+                Parent_Level_List := Parent_Levels (Level);
+                Append_Elmt (Parent_Level, Parent_Level_List);
+ 
+                if No (Child_Levels (Parent_Level)) then
+                   Set_Child_Levels (Parent_Level, New_Elmt_List);
+                end if;
+                Child_Levels_List := Child_Levels (Parent_Level);
+                Append_Elmt (Level, Child_Levels_List);
+             end Add_Dependencies;
+ 
+             ----------------------------
+             -- Check_Known_Level_Name --
+             ----------------------------
+ 
+             procedure Check_Known_Level_Name
+                (Level : Entity_Id; Ref : Node_Id) is
+             begin
+                if No (Level) then
+                   Error_Msg_Name_1 := Chars (Ref);
+                   Error_Msg_N ("unknown assertion level &", Ref);
+                   raise Pragma_Exit;
+                end if;
+             end Check_Known_Level_Name;
+ 
+             ----------------------------
+             -- Check_Valid_Level_Name --
+             ----------------------------
+ 
+             procedure Check_Valid_Level_Name (Nam : Name_Id) is
+             begin
+                if Is_Valid_Assertion_Kind (Nam) then
+                   Error_Pragma_Arg
+                      ("level name cannot match an assertion kind", Arg1);
+                end if;
+             end Check_Valid_Level_Name;
+ 
+             ----------------------------
+             -- Check_Valid_Level_Node --
+             ----------------------------
+ 
+             procedure Check_Valid_Level_Node (N : Node_Id) is
+             begin
+                if Nkind (N) /= N_Identifier then
+                   Error_Pragma_Arg ("level name must be an identifier", N);
+                end if;
+             end Check_Valid_Level_Node;
+ 
+             --  Local variables
+ 
+             Dep       : Node_Id;
+             Dep_Id    : Entity_Id;
+             Dep_Arg   : Node_Id;
+             Level_Arg : Node_Id;
+             Level_Id  : Entity_Id;
+             Level_Nam : Name_Id;
+ 
+          --  Start of processing for Pragma_Assertion_Level
+ 
+          begin
+             GNAT_Pragma;
+             Check_Valid_Configuration_Pragma;
+             Check_At_Least_N_Arguments (1);
+             Check_At_Most_N_Arguments (2);
+ 
+             Check_No_Identifier (Arg1);
+ 
+             Level_Arg := Expression (Arg1);
+             Check_Valid_Level_Node (Level_Arg);
+ 
+             Level_Nam := Chars (Level_Arg);
+             Check_Valid_Level_Name (Level_Nam);
+ 
+             Level_Id := Make_Assertion_Level (Loc, Level_Nam);
+ 
+             Set_Parent (Level_Id, Level_Arg);
+             Set_Entity (Level_Arg, Level_Id);
+ 
+             if Arg_Count = 2 then
+                Check_Identifier (Arg2, Name_Depends);
+ 
+                Dep_Arg := Expression (Arg2);
+ 
+                if Nkind (Dep_Arg) = N_Identifier then
+                   Dep_Id := Get_Assertion_Level (Chars (Dep_Arg));
+                   Check_Known_Level_Name (Dep_Id, Dep_Arg);
+                   Add_Dependencies (Level_Id, Dep_Id);
+                elsif Nkind (Dep_Arg) = N_Aggregate then
+                   Dep := First (Expressions (Dep_Arg));
+                   while Present (Dep) loop
+                      Check_Valid_Level_Node (Dep);
+                      Dep_Id := Get_Assertion_Level (Chars (Dep));
+                      Check_Known_Level_Name (Dep_Id, Dep);
+                      Add_Dependencies (Level_Id, Dep_Id);
+ 
+                      Next (Dep);
+                   end loop;
+                else
+                   Error_Pragma_Arg
+                     ("depends argument must be either "
+                      & "an identifier or "
+                      & "an aggregate of identifiers", Dep_Arg);
+                end if;
+             end if;
+ 
+             --  Register the new Assertion_Level
+ 
+             Insert_Assertion_Level (Level_Id);
+          end Assertion_Level;
+ 
           ----------------------
           -- Assertion_Policy --
           ----------------------
*************** package body Sem_Prag is
*** 14121,14127 ****
           --      ASSERTION_KIND => POLICY_IDENTIFIER
           --   {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!          --  ASSERTION_KIND ::= RM_ASSERTION_KIND | ID_ASSERTION_KIND
  
           --  RM_ASSERTION_KIND ::= Assert                     |
           --                        Static_Predicate           |
--- 14704,14712 ----
           --      ASSERTION_KIND => POLICY_IDENTIFIER
           --   {, ASSERTION_KIND => POLICY_IDENTIFIER});
  
!          --  ASSERTION_KIND ::= RM_ASSERTION_KIND |
!          --                     ID_ASSERTION_KIND |
!          --                     LEVEL_IDENTIFIER
  
           --  RM_ASSERTION_KIND ::= Assert                     |
           --                        Static_Predicate           |
*************** package body Sem_Prag is
*** 14200,14207 ****
--- 14785,14797 ----
  
              --  Local variables
  
+             Policy_Names : constant Name_List :=
+               (Name_Check, Name_Disable, Name_Ignore, Name_Suppressible);
+ 
              Arg    : Node_Id;
+             Id     : Node_Id;
              Kind   : Name_Id;
+             Level  : Entity_Id;
              LocP   : Source_Ptr;
              Policy : Node_Id;
  
*************** package body Sem_Prag is
*** 14228,14235 ****
                and then (Nkind (Arg1) /= N_Pragma_Argument_Association
                           or else Chars (Arg1) = No_Name)
              then
!                Check_Arg_Is_One_Of (Arg1,
!                  Name_Check, Name_Disable, Name_Ignore, Name_Suppressible);
  
                 Resolve_Suppressible (Arg1);
  
--- 14818,14824 ----
                and then (Nkind (Arg1) /= N_Pragma_Argument_Association
                           or else Chars (Arg1) = No_Name)
              then
!                Check_Arg_Is_One_Of (Arg1, Policy_Names);
  
                 Resolve_Suppressible (Arg1);
  
*************** package body Sem_Prag is
*** 14278,14299 ****
                    --  Check Kind and Policy have allowed forms
  
                    Kind   := Chars (Arg);
                    Policy := Get_Pragma_Arg (Arg);
  
                    if not Is_Valid_Assertion_Kind (Kind) then
!                      Error_Pragma_Arg
!                        ("invalid assertion kind for pragma%", Arg);
                    end if;
  
!                   Check_Arg_Is_One_Of (Arg,
!                     Name_Check, Name_Disable, Name_Ignore, Name_Suppressible);
  
                    Resolve_Suppressible (Arg);
  
                    if Kind = Name_Ghost then
  
                       --  The Ghost policy must be either Check or Ignore
!                      --  (SPARK RM 6.9(6)).
  
                       if Chars (Policy) not in Name_Check | Name_Ignore then
                          Error_Pragma_Arg
--- 14867,14911 ----
                    --  Check Kind and Policy have allowed forms
  
                    Kind   := Chars (Arg);
+                   Id := Make_Identifier (LocP, Kind);
                    Policy := Get_Pragma_Arg (Arg);
  
                    if not Is_Valid_Assertion_Kind (Kind) then
!                      Set_Entity (Id, Get_Assertion_Level (Kind));
!                      Level := Entity (Id);
!                      if No (Level)
!                        or else Ekind (Level) /= E_Assertion_Level
!                      then
!                         Error_Pragma_Arg
!                            ("invalid assertion kind for pragma%",
!                            Arg);
!                      end if;
! 
!                      --  An Assertion_Policy pragma specifying an
!                      --  Assertion_Level policy shall not occur within a ghost
!                      --  subprogram or package associated to an assertion level
!                      --  which depends on this level (SPARK RM 6.9(19)).
! 
!                      if Ghost_Config.Ghost_Mode > None
!                        and then Is_Same_Or_Depends_On_Level
!                                   (Ghost_Config.Ghost_Mode_Assertion_Level,
!                                    Level)
!                      then
!                         Error_Msg_Name_2 := Chars (Level);
!                         Error_Pragma
!                           ("pragma % cannot appear within ghost subprogram or "
!                            & "package that depends on %");
!                      end if;
                    end if;
  
!                   Check_Arg_Is_One_Of (Arg, Policy_Names);
  
                    Resolve_Suppressible (Arg);
  
                    if Kind = Name_Ghost then
  
                       --  The Ghost policy must be either Check or Ignore
!                      --  (SPARK RM 6.9(8)).
  
                       if Chars (Policy) not in Name_Check | Name_Ignore then
                          Error_Pragma_Arg
*************** package body Sem_Prag is
*** 14303,14311 ****
  
                       --  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
                            ("pragma % cannot appear within ghost subprogram or "
                             & "package");
--- 14915,14923 ----
  
                       --  Pragma Assertion_Policy specifying a Ghost policy
                       --  cannot occur within a Ghost subprogram or package
!                      --  (SPARK RM 6.9(19)).
  
!                      if Ghost_Config.Ghost_Mode > None then
                          Error_Pragma
                            ("pragma % cannot appear within ghost subprogram or "
                             & "package");
*************** package body Sem_Prag is
*** 14327,14333 ****
                        Chars                        => Name_Check_Policy,
                        Pragma_Argument_Associations => New_List (
                           Make_Pragma_Argument_Association (LocP,
!                            Expression => Make_Identifier (LocP, Kind)),
                           Make_Pragma_Argument_Association (LocP,
                             Expression => Policy))));
  
--- 14939,14945 ----
                        Chars                        => Name_Check_Policy,
                        Pragma_Argument_Associations => New_List (
                           Make_Pragma_Argument_Association (LocP,
!                            Expression => Id),
                           Make_Pragma_Argument_Association (LocP,
                             Expression => Policy))));
  
*************** package body Sem_Prag is
*** 14551,14556 ****
--- 15163,15169 ----
              Check_Ada_83_Warning;
              Check_No_Identifiers;
              Check_Arg_Count (1);
+ 
              Check_Arg_Is_Local_Name (Arg1);
  
              if Debug_Flag_U then
*************** package body Sem_Prag is
*** 14558,14565 ****
--- 15171,15186 ----
              end if;
  
              C_Ent := Cunit_Entity (Current_Sem_Unit);
+ 
+             --  We are going to check the entity that determines the ghost
+             --  region of that pragma. We need to disable the checks for ghost
+             --  context since the ghost region can only be set after analyzing
+             --  this entity.
+ 
+             Ghost_Context_Checks_Disabled := True;
              Analyze (Get_Pragma_Arg (Arg1));
              Nm := Entity (Get_Pragma_Arg (Arg1));
+             Ghost_Context_Checks_Disabled := False;
  
              --  A pragma that applies to a Ghost entity becomes Ghost for the
              --  purposes of legality checks and removal of ignored Ghost code.
*************** package body Sem_Prag is
*** 14870,14905 ****
                 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
  
              Cname : Name_Id;
              Eloc  : Source_Ptr;
-             Expr  : Node_Id;
-             Str   : Node_Id;
-             pragma Warnings (Off, Str);
  
           --  Start of processing for Pragma_Check
  
--- 15491,15519 ----
                 pragma Assert (Has_Dynamic_Predicate_Aspect (Typ));
  
                 if not Predicates_Ignored (Typ) then
!                   Mark_Is_Checked (N);
  
                 else
!                   Mark_Is_Ignored (N);
  
                 end if;
              end Handle_Dynamic_Predicate_Check;
  
              --  Local variables
  
!             Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
              --  Save the Ghost-related attributes to restore on exit
  
+             Names : constant Name_List (1 .. 3) :=
+                (Name_Name, Name_Check, Name_Message);
+ 
+             Args        : Args_List (1 .. 3);
+             Arg_Name    : Node_Id renames Args (1);
+             Arg_Check   : Node_Id renames Args (2);
+             Arg_Message : Node_Id renames Args (3);
+ 
              Cname : Name_Id;
              Eloc  : Source_Ptr;
  
           --  Start of processing for Pragma_Check
  
*************** package body Sem_Prag is
*** 14908,14929 ****
              --  the mode now to ensure that any nodes generated during analysis
              --  and expansion are marked as Ghost.
  
              Set_Ghost_Mode (N);
  
              GNAT_Pragma;
              Check_At_Least_N_Arguments (2);
              Check_At_Most_N_Arguments (3);
-             Check_Optional_Identifier (Arg1, Name_Name);
-             Check_Optional_Identifier (Arg2, Name_Check);
  
!             if Arg_Count = 3 then
!                Check_Optional_Identifier (Arg3, Name_Message);
!                Str := Get_Pragma_Arg (Arg3);
!             end if;
  
!             Rewrite_Assertion_Kind (Get_Pragma_Arg (Arg1));
!             Check_Arg_Is_Identifier (Arg1);
!             Cname := Chars (Get_Pragma_Arg (Arg1));
  
              --  Check forbidden name Assertions or Statement_Assertions
  
--- 15522,15540 ----
              --  the mode now to ensure that any nodes generated during analysis
              --  and expansion are marked as Ghost.
  
+             Mark_Ghost_Pragma (N, Current_Scope);
+ 
              Set_Ghost_Mode (N);
  
              GNAT_Pragma;
              Check_At_Least_N_Arguments (2);
              Check_At_Most_N_Arguments (3);
  
!             Gather_Associations (Names, Args);
  
!             Rewrite_Assertion_Kind (Arg_Name);
!             Check_Arg_Is_Identifier (Arg_Name);
!             Cname := Chars (Arg_Name);
  
              --  Check forbidden name Assertions or Statement_Assertions
  
*************** package body Sem_Prag is
*** 14931,14942 ****
                 when Name_Assertions =>
                    Error_Pragma_Arg
                      ("""Assertions"" is not allowed as a check kind for "
!                      & "pragma%", Arg1);
  
                 when Name_Statement_Assertions =>
                    Error_Pragma_Arg
                      ("""Statement_Assertions"" is not allowed as a check kind "
!                      & "for pragma%", Arg1);
  
                 when others =>
                    null;
--- 15542,15553 ----
                 when Name_Assertions =>
                    Error_Pragma_Arg
                      ("""Assertions"" is not allowed as a check kind for "
!                      & "pragma%", Arg_Name);
  
                 when Name_Statement_Assertions =>
                    Error_Pragma_Arg
                      ("""Statement_Assertions"" is not allowed as a check kind "
!                      & "for pragma%", Arg_Name);
  
                 when others =>
                    null;
*************** package body Sem_Prag is
*** 14954,14961 ****
              elsif Is_Rewrite_Substitution (N)
                and then Nkind (Original_Node (N)) = N_Pragma
              then
!                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
--- 15565,15571 ----
              elsif Is_Rewrite_Substitution (N)
                and then Nkind (Original_Node (N)) = N_Pragma
              then
!                Copy_Assertion_Policy_Attributes (N, Original_Node (N));
  
              --  Internally added dynamic predicate checks require checking the
              --  applicable policy at the point of the type declaration of their
*************** package body Sem_Prag is
*** 14970,15003 ****
              --  Otherwise query the applicable policy at this point
  
              else
!                case Check_Kind (Cname) is
!                   when Name_Ignore =>
!                      Set_Is_Ignored (N, True);
!                      Set_Is_Checked (N, False);
! 
!                   when Name_Check =>
!                      Set_Is_Ignored (N, False);
!                      Set_Is_Checked (N, True);
! 
!                   --  For disable, rewrite pragma as null statement and skip
!                   --  rest of the analysis of the pragma.
! 
!                   when Name_Disable =>
!                      Rewrite (N, Make_Null_Statement (Loc));
!                      Analyze (N);
!                      raise Pragma_Exit;
  
!                   --  No other possibilities
  
!                   when others =>
!                      raise Program_Error;
!                end case;
              end if;
  
-             --  If check kind was not Disable, then continue pragma analysis
- 
-             Expr := Get_Pragma_Arg (Arg2);
- 
              --  Mark the pragma (or, if rewritten from an aspect, the original
              --  aspect) as enabled. Nothing to do for an internally generated
              --  check for a dynamic predicate.
--- 15580,15597 ----
              --  Otherwise query the applicable policy at this point
  
              else
!                Apply_Check_Policy (N, Get_Applicable_Policy (Cname, Empty));
  
!                --  For disable, rewrite pragma as null statement and skip
!                --  rest of the analysis of the pragma.
  
!                if Is_Disabled (N) then
!                   Rewrite (N, Make_Null_Statement (Loc));
!                   Analyze (N);
!                   raise Pragma_Exit;
!                end if;
              end if;
  
              --  Mark the pragma (or, if rewritten from an aspect, the original
              --  aspect) as enabled. Nothing to do for an internally generated
              --  check for a dynamic predicate.
*************** package body Sem_Prag is
*** 15021,15028 ****
              --  expression is only evaluated if the check fails and
              --  Assertion_Error is to be raised.
  
!             if Arg_Count = 3 then
!                Preanalyze_And_Resolve (Str, Standard_String);
              end if;
  
              --  Now you might think we could just do the same with the Boolean
--- 15615,15622 ----
              --  expression is only evaluated if the check fails and
              --  Assertion_Error is to be raised.
  
!             if Present (Arg_Message) then
!                Preanalyze_And_Resolve (Arg_Message, Standard_String);
              end if;
  
              --  Now you might think we could just do the same with the Boolean
*************** package body Sem_Prag is
*** 15050,15064 ****
              --  False at compile time, and we do not want to delete this
              --  warning when we delete the if statement.
  
!             if Expander_Active and Is_Ignored (N) then
!                Eloc := Sloc (Expr);
  
                 Rewrite (N,
                   Make_If_Statement (Eloc,
                     Condition =>
                       Make_And_Then (Eloc,
                         Left_Opnd  => Make_Identifier (Eloc, Name_False),
!                        Right_Opnd => Expr),
                     Then_Statements => New_List (
                       Make_Null_Statement (Eloc))));
  
--- 15644,15658 ----
              --  False at compile time, and we do not want to delete this
              --  warning when we delete the if statement.
  
!             if Expander_Active and Is_Ignored_In_Codegen (N) then
!                Eloc := Sloc (Arg_Check);
  
                 Rewrite (N,
                   Make_If_Statement (Eloc,
                     Condition =>
                       Make_And_Then (Eloc,
                         Left_Opnd  => Make_Identifier (Eloc, Name_False),
!                        Right_Opnd => Arg_Check),
                     Then_Statements => New_List (
                       Make_Null_Statement (Eloc))));
  
*************** package body Sem_Prag is
*** 15099,15109 ****
  
              else
                 In_Assertion_Expr := In_Assertion_Expr + 1;
!                Analyze_And_Resolve (Expr, Any_Boolean);
                 In_Assertion_Expr := In_Assertion_Expr - 1;
              end if;
  
!             Restore_Ghost_Region (Saved_GM, Saved_IGR);
           end Check;
  
           --------------------------
--- 15693,15703 ----
  
              else
                 In_Assertion_Expr := In_Assertion_Expr + 1;
!                Analyze_And_Resolve (Arg_Check, Any_Boolean);
                 In_Assertion_Expr := In_Assertion_Expr - 1;
              end if;
  
!             Restore_Ghost_Region (Saved_Ghost_Config);
           end Check;
  
           --------------------------
*************** package body Sem_Prag is
*** 15173,15179 ****
           --  new form syntax.
  
           when Pragma_Check_Policy => Check_Policy : declare
!             Kind : Node_Id;
  
           begin
              GNAT_Pragma;
--- 15767,15856 ----
           --  new form syntax.
  
           when Pragma_Check_Policy => Check_Policy : declare
!             procedure Get_All_Child_Levels
!                (Level : Entity_Id;
!                 Deps  : in out Elist_Id);
!             --  Add all of the transitive children of the given Level to the
!             --  Deps list.
! 
!             procedure Get_All_Parent_Levels
!                (Level : Entity_Id;
!                 Deps  : in out Elist_Id);
!             --  Add all of the transitive parents of the given Level to the
!             --  Deps list.
! 
!             --------------------------
!             -- Get_All_Child_Levels --
!             --------------------------
! 
!             procedure Get_All_Child_Levels
!                (Level : Entity_Id;
!                 Deps : in out Elist_Id)
!             is
!                It : Elmt_Id;
!                Child_Lvl : Entity_Id;
!             begin
!                if No (Child_Levels (Level)) then
!                   return;
!                end if;
! 
!                It := First_Elmt (Child_Levels (Level));
!                while Present (It) loop
!                   Child_Lvl := Node (It);
!                   if not Contains (Deps, Child_Lvl) then
!                      Append_New_Elmt (Child_Lvl, Deps);
!                      Get_All_Child_Levels (Child_Lvl, Deps);
!                   end if;
! 
!                   Next_Elmt (It);
!                end loop;
!             end Get_All_Child_Levels;
! 
!             ---------------------------
!             -- Get_All_Parent_Levels --
!             ---------------------------
! 
!             procedure Get_All_Parent_Levels
!                (Level : Entity_Id;
!                 Deps : in out Elist_Id)
!             is
!                It : Elmt_Id;
!                D : Entity_Id;
!             begin
!                if No (Parent_Levels (Level)) then
!                   return;
!                end if;
! 
!                It := First_Elmt (Parent_Levels (Level));
!                while Present (It) loop
!                   D := Node (It);
! 
!                   if not Contains (Deps, D) then
!                      Append_New_Elmt (D, Deps);
!                      Get_All_Parent_Levels (D, Deps);
!                   end if;
! 
!                   Next_Elmt (It);
!                end loop;
!             end Get_All_Parent_Levels;
! 
!             --  Local variables
! 
!             Policy_Names : constant Name_List :=
!               (Name_On, Name_Off, Name_Check, Name_Disable, Name_Ignore);
! 
!             Affected_Levels   : Elist_Id := New_Elmt_List;
!             Depends_On_Static : Boolean := False;
! 
!             Kind       : Node_Id;
!             Level      : Entity_Id;
!             L          : Entity_Id;
!             L_It       : Elmt_Id;
!             L_Id       : Node_Id;
!             New_P      : Node_Id;
!             Policy_Nam : Name_Id;
! 
!          --  Start of processing for Pragma Check_Policy
  
           begin
              GNAT_Pragma;
*************** package body Sem_Prag is
*** 15215,15229 ****
                 --  Check policy
  
                 Check_Optional_Identifier (Arg2, Name_Policy);
!                Check_Arg_Is_One_Of
!                  (Arg2,
!                   Name_On, Name_Off, Name_Check, Name_Disable, Name_Ignore);
  
                 --  And chain pragma on the Check_Policy_List for search
  
                 Set_Next_Pragma (N, Opt.Check_Policy_List);
                 Opt.Check_Policy_List := N;
  
              --  For the new syntax, what we do is to convert each argument to
              --  an old syntax equivalent. We do that because we want to chain
              --  old style Check_Policy pragmas for the search (we don't want
--- 15892,15983 ----
                 --  Check policy
  
                 Check_Optional_Identifier (Arg2, Name_Policy);
!                Check_Arg_Is_One_Of (Arg2, Policy_Names);
! 
!                Policy_Nam := Chars (Get_Pragma_Arg (Arg2));
  
                 --  And chain pragma on the Check_Policy_List for search
  
                 Set_Next_Pragma (N, Opt.Check_Policy_List);
                 Opt.Check_Policy_List := N;
  
+                --  For Assertion_Levels create new policies for all of the
+                --  level dependencies.
+ 
+                if Present (Entity (Kind))
+                  and then Ekind (Entity (Kind)) = E_Assertion_Level
+                then
+                   Level := Entity (Kind);
+ 
+                   Depends_On_Static :=
+                     Depends_On_Level (Level, Standard_Level_Static);
+ 
+                   if Policy_Nam in Name_On | Name_Check then
+                      if Level = Standard_Level_Static then
+                         Error_Pragma_Arg
+                           ("policy for `Static` cannot be changed to `Check`",
+                            Arg1);
+                      elsif Depends_On_Static then
+                         Error_Pragma_Arg
+                           ("Policy for a level that depends on `Static` "
+                            & "cannot be changed to `Check`",
+                            Arg1);
+                      end if;
+                   end if;
+ 
+                   if Policy_Nam in Name_Off | Name_Ignore
+                      and then Level = Standard_Level_Runtime
+                   then
+                      Error_Pragma_Arg
+                         ("policy for `Runtime` cannot be changed to `Ignore`",
+                         Arg1);
+                   end if;
+ 
+                   --  For Assertion_Levels create new policyies for all of the
+                   --  level dependencies.
+ 
+                   if Policy_Nam in Name_On | Name_Check then
+ 
+                      --  Activating a level activates all levels that it
+                      --  depends on (Parent_Levels).
+ 
+                      Get_All_Parent_Levels (Level, Affected_Levels);
+                   elsif Policy_Nam in Name_Off | Name_Ignore then
+ 
+                      --  Deactivating a level deactivates all levels that
+                      --  depend on it (Child_Levels)
+ 
+                      Get_All_Child_Levels (Level, Affected_Levels);
+                   end if;
+ 
+                   L_It := First_Elmt (Affected_Levels);
+                   while Present (L_It) loop
+                      L := Node (L_It);
+                      L_Id := Make_Identifier (Sloc (Arg1), Chars (L));
+                      Set_Entity (L_Id, L);
+                      New_P :=
+                        Make_Pragma (Sloc (N),
+                          Chars                        => Name_Check_Policy,
+                          Pragma_Argument_Associations => New_List (
+                            Make_Pragma_Argument_Association (Sloc (Arg1),
+                              Expression => L_Id),
+                            Make_Pragma_Argument_Association (Sloc (Arg2),
+                              Expression =>
+                                New_Copy_Tree (Get_Pragma_Arg (Arg2)))));
+ 
+                      --  We have collected the unique list of all transitive
+                      --  Parent_Levels or Child_Levels. Avoid calculating
+                      --  them again.
+ 
+                      Set_Analyzed (New_P);
+ 
+                      Set_Next_Pragma (New_P, Opt.Check_Policy_List);
+                      Opt.Check_Policy_List := New_P;
+ 
+                      Next_Elmt (L_It);
+                   end loop;
+                end if;
+ 
              --  For the new syntax, what we do is to convert each argument to
              --  an old syntax equivalent. We do that because we want to chain
              --  old style Check_Policy pragmas for the search (we don't want
*************** package body Sem_Prag is
*** 15234,15241 ****
                    Arg   : Node_Id;
                    Argx  : Node_Id;
                    LocP  : Source_Ptr;
-                   New_P : Node_Id;
- 
                 begin
                    Arg := Arg1;
                    while Present (Arg) loop
--- 15988,15993 ----
*************** package body Sem_Prag is
*** 15715,15722 ****
                or else not Is_Access_Type (Entity (Arg))
              then
                 Error_Pragma_Arg ("pragma% requires access type", Arg1);
-             else
-                Set_Has_Pragma_Controlled (Base_Type (Entity (Arg)));
              end if;
           end Controlled;
  
--- 16467,16472 ----
*************** package body Sem_Prag is
*** 15835,15841 ****
  
              --  Check if already defined as constructor
  
!             if Is_Constructor (Def_Id) then
                 Error_Msg_N
                   ("??duplicate argument for pragma 'C'P'P_Constructor", Arg1);
                 return;
--- 16585,16591 ----
  
              --  Check if already defined as constructor
  
!             if Is_CPP_Constructor (Def_Id) then
                 Error_Msg_N
                   ("??duplicate argument for pragma 'C'P'P_Constructor", Arg1);
                 return;
*************** package body Sem_Prag is
*** 15860,15866 ****
                 end if;
  
                 Set_Has_Completion (Def_Id);
!                Set_Is_Constructor (Def_Id);
                 Set_Convention (Def_Id, Convention_CPP);
  
                 --  Imported C++ constructors are not dispatching primitives
--- 16610,16616 ----
                 end if;
  
                 Set_Has_Completion (Def_Id);
!                Set_Is_CPP_Constructor (Def_Id);
                 Set_Convention (Def_Id, Convention_CPP);
  
                 --  Imported C++ constructors are not dispatching primitives
*************** package body Sem_Prag is
*** 16165,16171 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_CPU_Range));
  
                 --  See comment in Sem_Ch13 about the following restrictions
  
--- 16915,16922 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_CPU_Range));
  
                 --  See comment in Sem_Ch13 about the following restrictions
  
*************** package body Sem_Prag is
*** 16211,16217 ****
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Only protected types allowed
  
--- 16962,16968 ----
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_And_Resolve_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Only protected types allowed
  
*************** package body Sem_Prag is
*** 16248,16257 ****
              Cond :=
                New_Occurrence_Of
                  (Boolean_Literals
!                   (Expander_Active and then not Is_Ignored (N)),
                   Loc);
  
!             if not Is_Ignored (N) then
                 Set_SCO_Pragma_Enabled (Loc);
              end if;
  
--- 16999,17008 ----
              Cond :=
                New_Occurrence_Of
                  (Boolean_Literals
!                   (Expander_Active and then not Is_Ignored_In_Codegen (N)),
                   Loc);
  
!             if not Is_Ignored_In_Codegen (N) then
                 Set_SCO_Pragma_Enabled (Loc);
              end if;
  
*************** package body Sem_Prag is
*** 16377,16382 ****
--- 17128,17148 ----
              Check_No_Identifiers;
              Check_At_Most_N_Arguments (2);  -- Accounts for implicit type arg
  
+             --  The value "null" cannot be associated with an assertion level
+             --  as it has no runtime semantics.
+ 
+             if Present (Pragma_Ghost_Assertion_Level (N))
+                and then Pragma_Ghost_Assertion_Level (N)
+                         /= Standard_Level_Default
+                and then Present (Arg1)
+                and then Nkind (Get_Pragma_Arg (Arg1)) = N_Null
+             then
+                Error_Pragma_Arg
+                   ("null argument cannot be used together "
+                   & "with assertion levels",
+                   Arg1);
+             end if;
+ 
              Typ  := Empty;
              Stmt := Prev (N);
              while Present (Stmt) loop
*************** package body Sem_Prag is
*** 16384,16390 ****
                 --  Skip prior pragmas, but check for duplicates
  
                 if Nkind (Stmt) = N_Pragma then
!                   if Pragma_Name (Stmt) = Pname then
                       Duplication_Error
                         (Prag => N,
                          Prev => Stmt);
--- 17150,17158 ----
                 --  Skip prior pragmas, but check for duplicates
  
                 if Nkind (Stmt) = N_Pragma then
!                   if Pragma_Name (Stmt) = Pname
!                      and then not From_Same_Pragma (N, Stmt)
!                   then
                       Duplication_Error
                         (Prag => N,
                          Prev => Stmt);
*************** package body Sem_Prag is
*** 16840,16846 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Dispatching_Domain));
  
                 --  Check duplicate pragma before we chain the pragma in the Rep
                 --  Item chain of Ent.
--- 17608,17615 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Dispatching_Domain));
  
                 --  Check duplicate pragma before we chain the pragma in the Rep
                 --  Item chain of Ent.
*************** package body Sem_Prag is
*** 16868,16874 ****
           begin
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause then
                 Pragma_Misplaced;
              end if;
  
--- 17637,17643 ----
           begin
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause (N) then
                 Pragma_Misplaced;
              end if;
  
*************** package body Sem_Prag is
*** 16964,16970 ****
  
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause then
                 Pragma_Misplaced;
              end if;
  
--- 17733,17739 ----
  
              --  Pragma must be in context items list of a compilation unit
  
!             if not Is_In_Context_Clause (N) then
                 Pragma_Misplaced;
              end if;
  
*************** package body Sem_Prag is
*** 17456,17461 ****
--- 18225,18231 ----
           --
           --    EXIT_KIND ::=
           --      Normal_Return
+          --    | Program_Exit
           --    | Exception_Raised
           --    | (Exception_Raised => exception_name)
           --
*************** package body Sem_Prag is
*** 18033,18039 ****
              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;
--- 18803,18810 ----
              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;
*************** package body Sem_Prag is
*** 18238,18244 ****
  
              if Arg_Count = 2 then
                 Check_Arg_Is_One_Of
!                  (Arg2, Name_As_Is, Name_Uppercase, Name_Lowercase);
  
                 case Chars (Get_Pragma_Arg (Arg2)) is
                    when Name_As_Is     =>
--- 19009,19015 ----
  
              if Arg_Count = 2 then
                 Check_Arg_Is_One_Of
!                  (Arg2, (Name_As_Is, Name_Uppercase, Name_Lowercase));
  
                 case Chars (Get_Pragma_Arg (Arg2)) is
                    when Name_As_Is     =>
*************** package body Sem_Prag is
*** 18483,18494 ****
           -- Ghost --
           -----------
  
!          --  pragma Ghost [ (static_boolean_EXPRESSION) ];
  
           when Pragma_Ghost => Ghost : declare
              Context   : Node_Id;
              Expr      : Node_Id;
              Id        : Entity_Id;
              Orig_Stmt : Node_Id;
              Prev_Id   : Entity_Id;
              Stmt      : Node_Id;
--- 19254,19268 ----
           -- Ghost --
           -----------
  
!          --  pragma Ghost [ (static_boolean_EXPRESSION
!          --                  | Assertion_Level) ];
  
           when Pragma_Ghost => Ghost : declare
              Context   : Node_Id;
              Expr      : Node_Id;
              Id        : Entity_Id;
+             Is_Ghost  : Boolean := True;
+             Level     : Entity_Id;
              Orig_Stmt : Node_Id;
              Prev_Id   : Entity_Id;
              Stmt      : Node_Id;
*************** package body Sem_Prag is
*** 18513,18519 ****
                    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
--- 19287,19293 ----
                    end if;
  
                 --  Task unit declared without a definition cannot be subject to
!                --  pragma Ghost (SPARK RM 6.9(22)).
  
                 elsif Nkind (Stmt) in
                         N_Single_Task_Declaration | N_Task_Type_Declaration
*************** package body Sem_Prag is
*** 18609,18615 ****
              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
--- 19383,19389 ----
              end if;
  
              --  Protected and task types cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(22)).
  
              if Nkind (Context) in N_Protected_Body | N_Protected_Definition
              then
*************** package body Sem_Prag is
*** 18667,18673 ****
  
                    --  The full declaration of a deferred constant cannot be
                    --  subject to pragma Ghost unless the deferred declaration
!                   --  is also Ghost (SPARK RM 6.9(9)).
  
                    if Ekind (Prev_Id) = E_Constant then
                       Error_Msg_Name_1 := Pname;
--- 19441,19447 ----
  
                    --  The full declaration of a deferred constant cannot be
                    --  subject to pragma Ghost unless the deferred declaration
!                   --  is also Ghost (SPARK RM 6.9(11)).
  
                    if Ekind (Prev_Id) = E_Constant then
                       Error_Msg_Name_1 := Pname;
*************** package body Sem_Prag is
*** 18685,18691 ****
  
                    --  The full declaration of a type cannot be subject to
                    --  pragma Ghost unless the partial view is also Ghost
!                   --  (SPARK RM 6.9(9)).
  
                    else
                       Error_Msg_NE (Fix_Error
--- 19459,19465 ----
  
                    --  The full declaration of a type cannot be subject to
                    --  pragma Ghost unless the partial view is also Ghost
!                   --  (SPARK RM 6.9(11)).
  
                    else
                       Error_Msg_NE (Fix_Error
*************** package body Sem_Prag is
*** 18696,18702 ****
                 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
--- 19470,19476 ----
                 end if;
  
              --  A synchronized object cannot be subject to pragma Ghost
!             --  (SPARK RM 6.9(22)).
  
              elsif Ekind (Id) = E_Variable then
                 if Is_Protected_Type (Etype (Id)) then
*************** package body Sem_Prag is
*** 18712,18741 ****
              if Present (Arg1) then
                 Expr := Get_Pragma_Arg (Arg1);
  
!                Analyze_And_Resolve (Expr, Standard_Boolean);
! 
!                if Is_OK_Static_Expression (Expr) then
! 
!                   --  "Ghostness" cannot be turned off once enabled within a
!                   --  region (SPARK RM 6.9(6)).
  
!                   if Is_False (Expr_Value (Expr))
!                     and then Ghost_Mode > None
!                   then
!                      Error_Pragma
!                        ("pragma % with value False cannot appear in enabled "
!                         & "ghost region");
                    end if;
  
!                --  Otherwise the expression is not static
  
!                else
!                   Error_Pragma_Arg
!                     ("expression of pragma % must be static", Expr);
                 end if;
              end if;
  
!             Set_Is_Ghost_Entity (Id);
           end Ghost;
  
           ------------
--- 19486,19534 ----
              if Present (Arg1) then
                 Expr := Get_Pragma_Arg (Arg1);
  
!                if Nkind (Expr) /= N_Identifier
!                  or else No (Get_Assertion_Level (Chars (Expr)))
!                then
!                   Analyze_And_Resolve (Expr, Standard_Boolean);
  
!                   if not Is_OK_Static_Expression (Expr) then
!                      Error_Pragma_Arg
!                         ("expression of pragma % must be static", Expr);
                    end if;
  
!                   if Is_False (Expr_Value (Expr)) then
!                      Is_Ghost := False;
  
!                      --  "Ghostness" cannot be turned off once enabled within a
!                      --  region (SPARK RM 6.9(8)).
! 
!                      if Ghost_Config.Ghost_Mode > None  then
!                         Error_Pragma
!                           ("pragma % with value False cannot appear in enabled"
!                           & " ghost region");
!                      end if;
!                   end if;
                 end if;
              end if;
  
!             Level := Assertion_Level_From_Arg (Arg1);
! 
!             --  Associate the assertion level before determing the kind of
!             --  ghost entity we should mark the entity as.
! 
!             Set_Ghost_Assertion_Level (Id, Level);
! 
!             --  Store it on the pragma node as well
! 
!             Set_Pragma_Ghost_Assertion_Level (N, Level);
! 
!             --  Mark it as a Ghost entity unless it was explicitly marked with
!             --  pragma Ghost (False).
! 
!             if Is_Ghost then
!                Set_Is_Implicit_Ghost (Id, False);
!                Set_Is_Ghost_Entity (Id);
!             end if;
           end Ghost;
  
           ------------
*************** package body Sem_Prag is
*** 18956,18972 ****
              Proc_Id : Entity_Id;
              Typ     : Entity_Id;
  
           begin
              Ada_2012_Pragma;
              Check_Arg_Count (2);
              Check_No_Identifiers;
              Check_Arg_Is_Identifier (Arg1);
              Check_Arg_Is_Local_Name (Arg1);
!             Check_Arg_Is_One_Of (Arg2,
!               Name_By_Any,
!               Name_By_Entry,
!               Name_By_Protected_Procedure,
!               Name_Optional);
  
              --  Extract the name of the local procedure
  
--- 19749,19765 ----
              Proc_Id : Entity_Id;
              Typ     : Entity_Id;
  
+             Impl_Names : constant Name_List := (Name_By_Any,
+                Name_By_Entry,
+                Name_By_Protected_Procedure,
+                Name_Optional);
           begin
              Ada_2012_Pragma;
              Check_Arg_Count (2);
              Check_No_Identifiers;
              Check_Arg_Is_Identifier (Arg1);
              Check_Arg_Is_Local_Name (Arg1);
!             Check_Arg_Is_One_Of (Arg2, Impl_Names);
  
              --  Extract the name of the local procedure
  
*************** package body Sem_Prag is
*** 19963,19969 ****
              --  object to be imported.
  
              if Ekind (Def_Id) = E_Variable then
-                Kill_Size_Check_Code (Def_Id);
                 Note_Possible_Modification (Id, Sure => False);
  
                 --  Initialization is not allowed for imported variable
--- 20756,20761 ----
*************** package body Sem_Prag is
*** 20073,20079 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Interrupt_Priority));
              end if;
  
              if Nkind (P) not in N_Task_Definition | N_Protected_Definition then
--- 20865,20872 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Interrupt_Priority));
              end if;
  
              if Nkind (P) not in N_Task_Definition | N_Protected_Definition then
*************** package body Sem_Prag is
*** 20888,20893 ****
--- 21681,21691 ----
           when Pragma_Loop_Optimize => Loop_Optimize : declare
              Hint : Node_Id;
  
+             Hint_Names : constant Name_List := (Name_Ivdep,
+                                                 Name_No_Unroll,
+                                                 Name_Unroll,
+                                                 Name_No_Vector,
+                                                 Name_Vector);
           begin
              GNAT_Pragma;
              Check_At_Least_N_Arguments (1);
*************** package body Sem_Prag is
*** 20895,20905 ****
  
              Hint := First (Pragma_Argument_Associations (N));
              while Present (Hint) loop
!                Check_Arg_Is_One_Of (Hint, Name_Ivdep,
!                                           Name_No_Unroll,
!                                           Name_Unroll,
!                                           Name_No_Vector,
!                                           Name_Vector);
                 Next (Hint);
              end loop;
  
--- 21693,21699 ----
  
              Hint := First (Pragma_Argument_Associations (N));
              while Present (Hint) loop
!                Check_Arg_Is_One_Of (Hint, Hint_Names);
                 Next (Hint);
              end loop;
  
*************** package body Sem_Prag is
*** 20924,20929 ****
--- 21718,21724 ----
              GNAT_Pragma;
              Check_At_Least_N_Arguments (1);
              Check_Loop_Pragma_Placement;
+             Mark_Ghost_Pragma (N, Current_Scope);
  
              --  Process all increasing / decreasing expressions
  
*************** package body Sem_Prag is
*** 20978,20987 ****
                      ("Structural variant shall be the only variant", Variant);
                 end if;
  
!                --  Preanalyze_Assert_Expression, but without enforcing any of
!                --  the two acceptable types.
  
!                Preanalyze_Assert_Expression (Expression (Variant));
  
                 --  Expression of a discrete type is allowed. Nothing to
                 --  check for structural variants.
--- 21773,21782 ----
                      ("Structural variant shall be the only variant", Variant);
                 end if;
  
!                --  Preanalyze_And_Resolve_Assert_Expression, but without
!                --  enforcing any of the two acceptable types.
  
!                Preanalyze_And_Resolve_Assert_Expression (Expression (Variant));
  
                 --  Expression of a discrete type is allowed. Nothing to
                 --  check for structural variants.
*************** package body Sem_Prag is
*** 20991,20997 ****
                 then
                    null;
  
!                --  Expression of a Big_Integer type (or its ghost variant) is
                 --  only allowed in Decreases clause.
  
                 elsif
--- 21786,21792 ----
                 then
                    null;
  
!                --  Expression of a Big_Integer type (or its SPARK variant) is
                 --  only allowed in Decreases clause.
  
                 elsif
*************** package body Sem_Prag is
*** 20999,21007 ****
                           RE_Big_Integer)
                     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
--- 21794,21799 ----
*************** package body Sem_Prag is
*** 21095,21102 ****
  
              if Rep_Item_Too_Late (Def_Id, N) then
                 return;
!             else
!                Set_Has_Gigi_Rep_Item (Def_Id);
              end if;
           end Machine_Attribute;
  
--- 21887,21903 ----
  
              if Rep_Item_Too_Late (Def_Id, N) then
                 return;
!             end if;
! 
!             Set_Has_Gigi_Rep_Item (Def_Id);
! 
!             --  The pragma is processed directly by the back end when Def_Id is
!             --  translated. If the argument is not a string literal, it may be
!             --  declared after Def_Id and before the pragma, which requires the
!             --  processing of Def_Id to be delayed for the back end.
! 
!             if Nkind (Get_Pragma_Arg (Arg2)) /= N_String_Literal then
!                Set_Has_Delayed_Freeze (Def_Id);
              end if;
           end Machine_Attribute;
  
*************** package body Sem_Prag is
*** 21683,21691 ****
              --  Flag set when an error concerning the illegal mix of Ghost and
              --  non-Ghost subprograms is emitted.
  
!             Ghost_Id : Entity_Id := Empty;
!             --  The entity of the first Ghost procedure encountered while
!             --  processing the arguments of the pragma.
  
           begin
              Ada_2005_Pragma;
--- 22484,22493 ----
              --  Flag set when an error concerning the illegal mix of Ghost and
              --  non-Ghost subprograms is emitted.
  
!             First_Arg_Id : Entity_Id := Empty;
!             --  The entity of the first variable encountered while processing
!             --  the arguments of the pragma. This is used as a reference for
!             --  assessing the ghostliness of other arguments.
  
           begin
              Ada_2005_Pragma;
*************** package body Sem_Prag is
*** 21697,21703 ****
--- 22499,22513 ----
              while Present (Arg) loop
                 Check_Arg_Is_Local_Name (Arg);
                 Id := Get_Pragma_Arg (Arg);
+ 
+                --  We are going to check the entity that determines the ghost
+                --  region of that pragma. We need to disable the checks for
+                --  ghost context since the ghost region can only be set after
+                --  analyzing this entity.
+ 
+                Ghost_Context_Checks_Disabled := True;
                 Analyze (Id);
+                Ghost_Context_Checks_Disabled := False;
  
                 if not Is_Entity_Name (Id) then
                    Error_Pragma_Arg ("entity name required", Arg);
*************** package body Sem_Prag is
*** 21774,21815 ****
                             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)
--- 22584,22605 ----
                             Set_No_Return (E);
                          end if;
  
!                         --  Capture the entity of the first variable being
!                         --  processed for error detection purposes.
  
!                         if No (First_Arg_Id) then
!                            First_Arg_Id := E;
  
!                            --  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);
                          end if;
  
+                         Check_Inconsistent_Argument_Ghostliness
+                           (First_Arg_Id, E, Ghost_Error_Posted);
+ 
                          --  Set flag on any alias as well
  
                          if Is_Overloadable (E)
*************** package body Sem_Prag is
*** 22254,22260 ****
           when Pragma_Optimize =>
              Check_No_Identifiers;
              Check_Arg_Count (1);
!             Check_Arg_Is_One_Of (Arg1, Name_Time, Name_Space, Name_Off);
  
           ------------------------
           -- Optimize_Alignment --
--- 23044,23050 ----
           when Pragma_Optimize =>
              Check_No_Identifiers;
              Check_Arg_Count (1);
!             Check_Arg_Is_One_Of (Arg1, (Name_Time, Name_Space, Name_Off));
  
           ------------------------
           -- Optimize_Alignment --
*************** package body Sem_Prag is
*** 23174,23185 ****
              --  removal of ignored Ghost code.
  
              if From_Aspect_Specification (N)
!               and then Get_Aspect_Id
!                          (Chars (Identifier (Corresponding_Aspect (N))))
!                 = Aspect_Ghost_Predicate
              then
!                Mark_Ghost_Pragma
!                  (N, Name_To_Ghost_Mode (Policy_In_Effect (Name_Ghost)));
              else
                 Mark_Ghost_Pragma (N, Typ);
              end if;
--- 23964,23981 ----
              --  removal of ignored Ghost code.
  
              if From_Aspect_Specification (N)
!               and then Get_Aspect_Id (Corresponding_Aspect (N))
!                        = Aspect_Ghost_Predicate
              then
!                --  For Ghost_Predicate we have already analyzed the applicable
!                --  ghost policy already and set the policy using Is_Checked and
!                --  Is_Ignored.
! 
!                if Is_Ignored (N) then
!                   Mark_Ghost_Pragma (N, Opt.Ignore);
!                else
!                   Mark_Ghost_Pragma (N, Opt.Check);
!                end if;
              else
                 Mark_Ghost_Pragma (N, Typ);
              end if;
*************** package body Sem_Prag is
*** 23410,23416 ****
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, RTE (RE_Any_Priority));
  
                 if not Is_OK_Static_Expression (Arg) then
                    Check_Restriction (Static_Priorities, Arg);
--- 24206,24213 ----
                 --  described in "Handling of Default and Per-Object
                 --  Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression
!                  (Arg, RTE (RE_Any_Priority));
  
                 if not Is_OK_Static_Expression (Arg) then
                    Check_Restriction (Static_Priorities, Arg);
*************** package body Sem_Prag is
*** 23615,23620 ****
--- 24412,24543 ----
                 end if;
              end;
  
+          ------------------
+          -- Program_Exit --
+          ------------------
+ 
+          --  pragma Program_Exit (Boolean_EXPRESSION);
+ 
+          --  Characteristics:
+ 
+          --    * Analysis - The annotation undergoes initial checks to verify
+          --    the legal placement and context. Secondary checks preanalyze the
+          --    expression in:
+ 
+          --       Analyze_Program_Exit_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_Program_Exit => Program_Exit : declare
+             Spec_Id   : Entity_Id;
+             Subp_Decl : Node_Id;
+             Subp_Spec : Node_Id;
+ 
+          begin
+             GNAT_Pragma;
+             Check_No_Identifiers;
+             Check_At_Most_N_Arguments (1);
+ 
+             --  Ensure the proper placement of the pragma. Program_Exit 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 Program_Exit is forbidden on null procedures, as this
+                --  may lead to potential ambiguities in behavior when interface
+                --  null procedures are involved. Also, it just wouldn't make
+                --  sense, because null procedure always exits.
+ 
+                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);
+ 
+             --  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);
+ 
+             --  Chain the pragma on the contract for further processing by
+             --  Analyze_Program_Exit.
+ 
+             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 Program_Exit 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_If_Present (Pragma_Global);
+                Analyze_If_Present (Pragma_Depends);
+                Analyze_Program_Exit_In_Decl_Part (N);
+             end if;
+          end Program_Exit;
+ 
           ----------------------
           -- Profile_Warnings --
           ----------------------
*************** package body Sem_Prag is
*** 23982,23988 ****
              Analyze_If_Present (Pragma_Side_Effects);
  
              --  A function with side effects shall not have a Pure_Function
!             --  aspect or pragma (SPARK RM 6.1.11(5)).
  
              if Is_Function_With_Side_Effects (E) then
                 Error_Pragma
--- 24905,24911 ----
              Analyze_If_Present (Pragma_Side_Effects);
  
              --  A function with side effects shall not have a Pure_Function
!             --  aspect or pragma (SPARK RM 6.1.12(5)).
  
              if Is_Function_With_Side_Effects (E) then
                 Error_Pragma
*************** package body Sem_Prag is
*** 24397,24403 ****
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Subprogram case
  
--- 25320,25326 ----
              --  The expression must be analyzed in the special manner described
              --  in "Handling of Default and Per-Object Expressions" in sem.ads.
  
!             Preanalyze_And_Resolve_Spec_Expression (Arg, RTE (RE_Time_Span));
  
              --  Subprogram case
  
*************** package body Sem_Prag is
*** 24657,24663 ****
                 --  The expression must be analyzed in the special manner
                 --  described in "Handling of Default Expressions" in sem.ads.
  
!                Preanalyze_Spec_Expression (Arg, Any_Integer);
  
                 --  The pragma cannot appear if the No_Secondary_Stack
                 --  restriction is in effect.
--- 25580,25586 ----
                 --  The expression must be analyzed in the special manner
                 --  described in "Handling of Default Expressions" in sem.ads.
  
!                Preanalyze_And_Resolve_Spec_Expression (Arg, Any_Integer);
  
                 --  The pragma cannot appear if the No_Secondary_Stack
                 --  restriction is in effect.
*************** package body Sem_Prag is
*** 24857,24863 ****
              Add_Contract_Item (N, Spec_Id);
  
              --  A function with side effects cannot override a function without
!             --  side effects (SPARK RM 7.1.2(16)). Overriding checks are
              --  usually performed in New_Overloaded_Entity, however at
              --  that point the pragma has not been processed yet.
  
--- 25780,25786 ----
              Add_Contract_Item (N, Spec_Id);
  
              --  A function with side effects cannot override a function without
!             --  side effects (SPARK RM 7.1.2(15)). Overriding checks are
              --  usually performed in New_Overloaded_Entity, however at
              --  that point the pragma has not been processed yet.
  
*************** package body Sem_Prag is
*** 25564,25570 ****
              --  Check the legality of the mode (no argument = ON)
  
              if Arg_Count = 1 then
!                Check_Arg_Is_One_Of (Arg1, Name_Auto, Name_On, Name_Off);
                 Mode := Chars (Get_Pragma_Arg (Arg1));
              else
                 Mode := Name_On;
--- 26487,26493 ----
              --  Check the legality of the mode (no argument = ON)
  
              if Arg_Count = 1 then
!                Check_Arg_Is_One_Of (Arg1, (Name_Auto, Name_On, Name_Off));
                 Mode := Chars (Get_Pragma_Arg (Arg1));
              else
                 Mode := Name_On;
*************** package body Sem_Prag is
*** 25815,25821 ****
              --  in "Handling of Default Expressions" in sem.ads.
  
              Arg := Get_Pragma_Arg (Arg1);
!             Preanalyze_Spec_Expression (Arg, Any_Integer);
  
              if not Is_OK_Static_Expression (Arg) then
                 Check_Restriction (Static_Storage_Size, Arg);
--- 26738,26744 ----
              --  in "Handling of Default Expressions" in sem.ads.
  
              Arg := Get_Pragma_Arg (Arg1);
!             Preanalyze_And_Resolve_Spec_Expression (Arg, Any_Integer);
  
              if not Is_OK_Static_Expression (Arg) then
                 Check_Restriction (Static_Storage_Size, Arg);
*************** package body Sem_Prag is
*** 26845,26851 ****
                 Opt.Time_Slice_Set := True;
                 Val := Expr_Value_R (Get_Pragma_Arg (Arg1));
  
!                if Val <= Ureal_0 then
                    Opt.Time_Slice_Value := 0;
  
                 elsif Val > UR_From_Uint (UI_From_Int (1000)) then
--- 27768,27774 ----
                 Opt.Time_Slice_Set := True;
                 Val := Expr_Value_R (Get_Pragma_Arg (Arg1));
  
!                if not UR_Is_Positive (Val) then
                    Opt.Time_Slice_Value := 0;
  
                 elsif Val > UR_From_Uint (UI_From_Int (1000)) then
*************** package body Sem_Prag is
*** 27034,27040 ****
              GNAT_Pragma;
              Check_Arg_Count (1);
              Check_No_Identifiers;
!             Check_Arg_Is_One_Of (Arg1, Name_Error, Name_Warn, Name_Allow);
  
              --  Suppress/Unsuppress can appear as a configuration pragma, or in
              --  a declarative part or a package spec.
--- 27957,27963 ----
              GNAT_Pragma;
              Check_Arg_Count (1);
              Check_No_Identifiers;
!             Check_Arg_Is_One_Of (Arg1, (Name_Error, Name_Warn, Name_Allow));
  
              --  Suppress/Unsuppress can appear as a configuration pragma, or in
              --  a declarative part or a package spec.
*************** package body Sem_Prag is
*** 27150,27158 ****
              --  Flag set when an error concerning the illegal mix of Ghost and
              --  non-Ghost types is emitted.
  
!             Ghost_Id : Entity_Id := Empty;
!             --  The entity of the first Ghost type encountered while processing
!             --  the arguments of the pragma.
  
           begin
              GNAT_Pragma;
--- 28073,28082 ----
              --  Flag set when an error concerning the illegal mix of Ghost and
              --  non-Ghost types is emitted.
  
!             First_Arg_Id : Entity_Id := Empty;
!             --  The entity of the first variable encountered while processing
!             --  the arguments of the pragma. This is used as a reference for
!             --  assessing the ghostliness of other arguments.
  
           begin
              GNAT_Pragma;
*************** package body Sem_Prag is
*** 27167,27209 ****
                 if Is_Entity_Name (Arg_Expr) then
                    Arg_Id := Entity (Arg_Expr);
  
!                   if Is_Type (Arg_Id) then
!                      Set_Has_Pragma_Unreferenced_Objects (Arg_Id);
  
                       --  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, Arg_Id);
  
!                      --  Capture the entity of the first Ghost type being
!                      --  processed for error detection purposes.
! 
!                      if Is_Ghost_Entity (Arg_Id) then
!                         if No (Ghost_Id) then
!                            Ghost_Id := Arg_Id;
!                         end if;
! 
!                      --  Otherwise the type 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 types",
!                            N);
  
!                         Error_Msg_Sloc := Sloc (Ghost_Id);
!                         Error_Msg_NE ("\& # declared as ghost", N, Ghost_Id);
  
-                         Error_Msg_Sloc := Sloc (Arg_Id);
-                         Error_Msg_NE ("\& # declared as non-ghost", N, Arg_Id);
-                      end if;
                    else
                       Error_Pragma_Arg
                         ("argument for pragma% must be type or subtype", Arg);
--- 28091,28115 ----
                 if Is_Entity_Name (Arg_Expr) then
                    Arg_Id := Entity (Arg_Expr);
  
!                   --  Capture the entity of the first Ghost type being
!                   --  processed for error detection purposes.
! 
!                   if No (First_Arg_Id) then
!                      First_Arg_Id := Arg_Id;
  
                       --  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, Arg_Id);
+                   end if;
  
!                   if Is_Type (Arg_Id) then
!                      Set_Has_Pragma_Unreferenced_Objects (Arg_Id);
  
!                      Check_Inconsistent_Argument_Ghostliness
!                        (First_Arg_Id, Arg_Id, Ghost_Error_Posted);
  
                    else
                       Error_Pragma_Arg
                         ("argument for pragma% must be type or subtype", Arg);
*************** package body Sem_Prag is
*** 27231,27236 ****
--- 28137,28223 ----
                 Unreserve_All_Interrupts := True;
              end if;
  
+          --------------------------------
+          -- Pragma_Unsigned_Base_Range --
+          --------------------------------
+ 
+          when Pragma_Unsigned_Base_Range => Unsigned_Base_Range : 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
+                Error_Msg_GNAT_Extension
+                  ("'Unsigned_'Base_'Range", Sloc (N),
+                   Is_Core_Extension => True);
+                return;
+ 
+             elsif not Is_Integer_Type (E)
+               or else
+                 (Is_Modular_Integer_Type (E)
+                    and then not Has_Unsigned_Base_Range_Aspect (Base_Type (E)))
+             then
+                Error_Pragma_Arg
+                  ("cannot apply pragma %",
+                   "\& is not a signed integer type", Arg1);
+ 
+             elsif Is_Derived_Type (E) then
+                Error_Pragma_Arg
+                  ("pragma % cannot apply to derived type", Arg1);
+ 
+             elsif Is_Generic_Type (E) then
+                Error_Pragma_Arg
+                  ("pragma % cannot apply to formal type", Arg1);
+ 
+             elsif Present (Expr)
+               and then Is_False (Expr_Value (Expr))
+               and then Ekind (Base_Type (E)) = E_Modular_Integer_Type
+               and then Has_Unsigned_Base_Range_Aspect (Base_Type (E))
+             then
+                Error_Pragma_Arg
+                  ("pragma % can only confirm previous True value", Arg1);
+             end if;
+ 
+             Check_First_Subtype (Arg1);
+ 
+             --  Create the new unsigned integer base type entity, and apply
+             --  the constraint to create the first subtype of E.
+ 
+             if No (Expr) or else Is_True (Expr_Value (Expr)) then
+                Unsigned_Base_Range_Type_Declaration (E,
+                  Def => Type_Definition (Parent (E)));
+ 
+                Set_Direct_Primitive_Operations (Base_Type (E), New_Elmt_List);
+                Set_Direct_Primitive_Operations (E,
+                  Direct_Primitive_Operations (Base_Type (E)));
+                Ensure_Freeze_Node (Base_Type (E));
+                Set_First_Subtype_Link (Freeze_Node (Base_Type (E)), E);
+                Set_Has_Delayed_Freeze (E);
+ 
+                --  Attribute Has_Unsigned_Base_Range_Aspect must have been
+                --  set by Unsigned_Base_Range_Type_Declaration or inherited
+                --  by Build_Derived_Numeric_Type.
+                pragma Assert (Has_Unsigned_Base_Range_Aspect (Base_Type (E)));
+             end if;
+          end Unsigned_Base_Range;
+ 
           ----------------
           -- Unsuppress --
           ----------------
*************** package body Sem_Prag is
*** 27603,27609 ****
              Analyze_If_Present (Pragma_SPARK_Mode);
  
              --  A volatile function cannot override a non-volatile function
!             --  (SPARK RM 7.1.2(15)). Overriding checks are usually performed
              --  in New_Overloaded_Entity, however at that point the pragma has
              --  not been processed yet.
  
--- 28590,28596 ----
              Analyze_If_Present (Pragma_SPARK_Mode);
  
              --  A volatile function cannot override a non-volatile function
!             --  (SPARK RM 7.1.2(14)). Overriding checks are usually performed
              --  in New_Overloaded_Entity, however at that point the pragma has
              --  not been processed yet.
  
*************** package body Sem_Prag is
*** 27821,27826 ****
--- 28808,28824 ----
                          OK  : Boolean;
                          Chr : Character;
  
+                         function Enclose_Ending_Space
+                            (Raw_Str : String) return String
+                         is (if Raw_Str (Raw_Str'Last) = ' '
+                               then '"' & Raw_Str & '"'
+                               else Raw_Str);
+                         function Enclose_Ending_Space
+                            (Raw_Chr : Character) return String
+                         is (Enclose_Ending_Space ((1 => Raw_Chr)));
+                         --  This function ensures that no error message ends
+                         --  with a space, in case we enclose it within quotes.
+ 
                       begin
                          J := 1;
                          while J <= Len loop
*************** package body Sem_Prag is
*** 27852,27858 ****
                                   if not Set_Warning_Switch ('.', Chr) then
                                      Error_Pragma_Arg
                                        ("invalid warning switch character "
!                                        & '.' & Chr, Arg1);
                                   end if;
  
                                --  Non-Dot case
--- 28850,28857 ----
                                   if not Set_Warning_Switch ('.', Chr) then
                                      Error_Pragma_Arg
                                        ("invalid warning switch character "
!                                        & Enclose_Ending_Space ('.' & Chr),
!                                        Arg1);
                                   end if;
  
                                --  Non-Dot case
*************** package body Sem_Prag is
*** 27863,27869 ****
  
                                if not OK then
                                   Error_Pragma_Arg
!                                    ("invalid warning switch character " & Chr,
                                      Arg1);
                                end if;
  
--- 28862,28869 ----
  
                                if not OK then
                                   Error_Pragma_Arg
!                                    ("invalid warning switch character "
!                                     & Enclose_Ending_Space (Chr),
                                      Arg1);
                                end if;
  
*************** package body Sem_Prag is
*** 28066,28078 ****
              null;
  
           --------------------
!          -- Unknown_Pragma --
           --------------------
  
           --  Should be impossible, since the case of an unknown pragma is
           --  separately processed before the case statement is entered.
  
!          when Unknown_Pragma =>
              raise Program_Error;
        end case;
  
--- 29066,29078 ----
              null;
  
           --------------------
!          -- Pragma_Unknown --
           --------------------
  
           --  Should be impossible, since the case of an unknown pragma is
           --  separately processed before the case statement is entered.
  
!          when Pragma_Unknown =>
              raise Program_Error;
        end case;
  
*************** package body Sem_Prag is
*** 28199,28206 ****
  
        Expr : 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
  
        Errors        : Nat;
--- 29199,29205 ----
  
        Expr : constant Node_Id := Expression (Get_Argument (N, Spec_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Errors        : Nat;
*************** package body Sem_Prag is
*** 28241,28247 ****
        end if;
  
        Errors := Serious_Errors_Detected;
!       Preanalyze_Assert_Expression (Expr, Standard_Boolean);
  
        --  Emit a clarification message when the expression contains at least
        --  one undefined reference, possibly due to contract freezing.
--- 29240,29246 ----
        end if;
  
        Errors := Serious_Errors_Detected;
!       Preanalyze_And_Resolve_Assert_Expression (Expr, Standard_Boolean);
  
        --  Emit a clarification message when the expression contains at least
        --  one undefined reference, possibly due to contract freezing.
*************** package body Sem_Prag is
*** 28293,28301 ****
        Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Pre_Post_Condition_In_Decl_Part;
  
     ------------------------------------------
     -- Analyze_Refined_Depends_In_Decl_Part --
     ------------------------------------------
--- 29292,29446 ----
        Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Pre_Post_Condition_In_Decl_Part;
  
+    ---------------------------------------
+    -- Analyze_Program_Exit_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_Program_Exit_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);
+       Arg1      : constant Node_Id   :=
+         First (Pragma_Argument_Associations (N));
+ 
+       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
+       --  Save the Ghost-related attributes to restore on exit
+ 
+       Errors        : Nat;
+       Restore_Scope : Boolean := False;
+       Unused        : Boolean;
+ 
+       Subp_Inputs, Subp_Outputs : Elist_Id := No_Elist;
+       --  Inputs and outputs of the subprogram
+ 
+       function Check_Reference (N : Node_Id) return Traverse_Result;
+       --  Check references to objects within the Program_Exit expression
+ 
+       ---------------------
+       -- Check_Reference --
+       ---------------------
+ 
+       function Check_Reference (N : Node_Id) return Traverse_Result is
+       begin
+           --  If an output of a subprogram with side effects is mentioned
+           --  in the boolean expression of its aspect Program_Exit, then it
+           --  shall either occur inside the prefix of a reference to the Old
+           --  attribute or be a stand-alone object.
+ 
+          if Is_Attribute_Old (N) then
+             return Skip;
+          end if;
+ 
+          if Is_Entity_Name (N) then
+             declare
+                E : constant Entity_Id := Entity (N);
+             begin
+                if Appears_In (Subp_Outputs, E)
+                  and then Ekind (E) not in E_Constant | E_Variable
+                then
+                   Error_Msg_NE
+                     ("reference to subprogram output & in Program_Exit", N, E);
+                end if;
+             end;
+          end if;
+ 
+          return OK;
+       end Check_Reference;
+ 
+       procedure Check_Exit_References is new Traverse_Proc (Check_Reference);
+ 
+    --  Start of processing for Analyze_Pre_Post_Condition_In_Decl_Part
+ 
+    begin
+       --  Do not analyze the pragma multiple times
+ 
+       if Is_Analyzed_Pragma (N) then
+          return;
+       end if;
+ 
+       if Ekind (Spec_Id) in E_Function | E_Generic_Function
+         and then not Is_Function_With_Side_Effects (Spec_Id)
+       then
+          Error_Msg_N
+            ("aspect Program_Exit is only allowed " &
+             "for subprograms with side effects", N);
+       end if;
+ 
+       if Present (Arg1) then
+ 
+          --  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);
+ 
+          --  Ensure that the subprogram and its formals are visible when
+          --  analyzing the expression of the pragma.
+ 
+          if not In_Open_Scopes (Spec_Id) then
+             Restore_Scope := True;
+ 
+             if Is_Generic_Subprogram (Spec_Id) then
+                Push_Scope (Spec_Id);
+                Install_Generic_Formals (Spec_Id);
+             else
+                Push_Scope (Spec_Id);
+                Install_Formals (Spec_Id);
+             end if;
+          end if;
+ 
+          Errors := Serious_Errors_Detected;
+ 
+          --  Preanalyze_And_Resolve_Assert_Expression enforcing the expression
+          --  type.
+ 
+          Preanalyze_And_Resolve_Assert_Expression
+            (Expression (Arg1), Any_Boolean);
+ 
+          Collect_Subprogram_Inputs_Outputs
+            (Spec_Id,
+             Synthesize   => True,
+             Subp_Inputs  => Subp_Inputs,
+             Subp_Outputs => Subp_Outputs,
+             Global_Seen  => Unused);
+ 
+          Check_Exit_References (Expression (Arg1));
+ 
+          --  Emit a clarification message when the expression 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 (Expression (Arg1))
+          then
+             Contract_Freeze_Error (Spec_Id, Freeze_Id);
+          end if;
+ 
+          if Restore_Scope then
+             End_Scope;
+          end if;
+ 
+          --  Currently it is not possible to inline pre/postconditions on a
+          --  subprogram subject to pragma Inline_Always.
+ 
+          Check_Postcondition_Use_In_Inlined_Subprogram (N, Spec_Id);
+ 
+          Restore_Ghost_Region (Saved_Ghost_Config);
+       end if;
+ 
+       Set_Is_Analyzed_Pragma (N);
+    end Analyze_Program_Exit_In_Decl_Part;
+ 
     ------------------------------------------
     -- Analyze_Refined_Depends_In_Decl_Part --
     ------------------------------------------
*************** package body Sem_Prag is
*** 30619,30624 ****
--- 31764,31772 ----
        --  A list that contains all refined states processed so far. The list is
        --  used to detect duplicate refinements.
  
+       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
+       --  Ghost configuration before starting to process this pragma
+ 
        procedure Analyze_Refinement_Clause (Clause : Node_Id);
        --  Perform full analysis of a single refinement clause
  
*************** package body Sem_Prag is
*** 30956,30989 ****
                    --    end Pack;
  
                    if Constit_Id = Any_Id then
!                      SPARK_Msg_NE ("& is undefined", Constit, Constit_Id);
  
!                      --  Emit a specialized info message when the contract of
!                      --  the related package body was "frozen" by another body.
!                      --  Note that it is not possible to precisely identify why
!                      --  the constituent is undefined because it is not visible
!                      --  when pragma Refined_State is analyzed. This message is
!                      --  a reasonable approximation.
  
!                      if Present (Freeze_Id) and then not Freeze_Posted then
!                         Freeze_Posted := True;
  
!                         Error_Msg_Name_1 := Chars (Body_Id);
!                         Error_Msg_Sloc   := Sloc (Freeze_Id);
!                         SPARK_Msg_NE
!                           ("body & declared # freezes the contract of %",
!                            N, Freeze_Id);
!                         SPARK_Msg_N
!                           ("\all constituents must be declared before body #",
!                            N);
  
!                         --  A misplaced constituent is a critical error because
!                         --  pragma Refined_Depends or Refined_Global depends on
!                         --  the proper link between a state and a constituent.
!                         --  Stop the compilation, as this leads to a multitude
!                         --  of misleading cascaded errors.
  
!                         raise Unrecoverable_Error;
                       end if;
  
                    --  The constituent is a valid state or object
--- 32104,32170 ----
                    --    end Pack;
  
                    if Constit_Id = Any_Id then
!                      --  A "Foo is undefined" message has already been
!                      --  generated for this constituent. Emit an additional
!                      --  message in the special case where the named
!                      --  would-be constituent was declared too late in the
!                      --  declaration list (as opposed to, for example, not
!                      --  being declared at all).
  
!                      --  Look for named constituent after freezing point
!                      if Present (Freeze_Id) then
!                         declare
!                            Decl : Node_Id;
!                         begin
!                            Decl := Enclosing_Declaration (Freeze_Id);
  
!                            while Present (Decl) loop
!                               if Nkind (Decl) = N_Object_Declaration
!                                 and then Same_Name (Defining_Identifier (Decl),
!                                                     Constit)
!                                 and then not Constant_Present (Decl)
!                               then
!                                  Error_Msg_Node_1 := Constit;
!                                  Error_Msg_Sloc :=
!                                    Sloc (Defining_Identifier (Decl));
  
!                                  SPARK_Msg_NE
!                                   ("abstract state constituent & declared"
!                                    & " too late #!", Constit, Constit);
  
!                                  exit;
!                               end if;
!                               Next (Decl);
!                            end loop;
!                         end;
  
!                         --  Emit a specialized info message when the contract
!                         --  of the related package body was "frozen" by
!                         --  another body. If a "declared too late" message
!                         --  is generated, this will clarify what is meant by
!                         --  "too late".
! 
!                         if not Freeze_Posted then
!                            Freeze_Posted := True;
! 
!                            Error_Msg_Name_1 := Chars (Body_Id);
!                            Error_Msg_Sloc   := Sloc (Freeze_Id);
!                            SPARK_Msg_NE
!                              ("body & declared # freezes the contract of %",
!                               N, Freeze_Id);
!                            SPARK_Msg_N
!                              ("\all constituents must be declared" &
!                               " before body #", N);
! 
!                            --  A misplaced constituent is a critical error
!                            --  because pragma Refined_Depends or
!                            --  Refined_Global depends on the proper link
!                            --  between a state and a constituent. Stop the
!                            --  compilation, as this leads to a multitude of
!                            --  misleading cascaded errors.
! 
!                            raise Unrecoverable_Error;
!                         end if;
                       end if;
  
                    --  The constituent is a valid state or object
*************** package body Sem_Prag is
*** 31345,31350 ****
--- 32526,32535 ----
           return;
        end if;
  
+       --  Get the Ghost context from the pragma before analyzing its parts
+ 
+       Set_Ghost_Mode (N);
+ 
        --  Save the scenario for examination by the ABE Processing phase
  
        Record_Elaboration_Scenario (N);
*************** package body Sem_Prag is
*** 31388,31393 ****
--- 32573,32580 ----
        Report_Unrefined_States (Available_States);
  
        Set_Is_Analyzed_Pragma (N);
+ 
+       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Refined_State_In_Decl_Part;
  
     ---------------------------------------------
*************** package body Sem_Prag is
*** 31452,31461 ****
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_Assert_Expression, but without enforcing any of the
!          --  acceptable types.
  
!          Preanalyze_Assert_Expression (Expr);
  
           --  Expression of a discrete type is allowed. Nothing more to check
           --  for structural variants.
--- 32639,32648 ----
  
           Errors := Serious_Errors_Detected;
  
!          --  Preanalyze_And_Resolve_Assert_Expression, but without enforcing
!          --  any of the acceptable types.
  
!          Preanalyze_And_Resolve_Assert_Expression (Expr);
  
           --  Expression of a discrete type is allowed. Nothing more to check
           --  for structural variants.
*************** package body Sem_Prag is
*** 31468,31479 ****
           --  Expression of a Big_Integer type (or its ghost variant) is only
           --  allowed in Decreases clause.
  
!          elsif
!            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
--- 32655,32662 ----
           --  Expression of a Big_Integer type (or its ghost variant) is only
           --  allowed in Decreases clause.
  
!          elsif Is_RTE (Base_Type (Etype (Expr)), RE_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
*** 31503,31510 ****
  
        Variants : 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
  
        Variant       : Node_Id;
--- 32686,32692 ----
  
        Variants : constant Node_Id := Expression (Get_Argument (N, Spec_Id));
  
!       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
        --  Save the Ghost-related attributes to restore on exit
  
        Variant       : Node_Id;
*************** package body Sem_Prag is
*** 31599,31605 ****
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_GM, Saved_IGR);
     end Analyze_Subprogram_Variant_In_Decl_Part;
  
     ------------------------------------
--- 32781,32787 ----
  
        Set_Is_Analyzed_Pragma (N);
  
!       Restore_Ghost_Region (Saved_Ghost_Config);
     end Analyze_Subprogram_Variant_In_Decl_Part;
  
     ------------------------------------
*************** package body Sem_Prag is
*** 31633,31639 ****
                   From_Aspect => True);
  
              if Present (Arg) then
!                Preanalyze_Assert_Expression
                   (Expression (Arg), Standard_Boolean);
              end if;
           end if;
--- 32815,32821 ----
                   From_Aspect => True);
  
              if Present (Arg) then
!                Preanalyze_And_Resolve_Assert_Expression
                   (Expression (Arg), Standard_Boolean);
              end if;
           end if;
*************** package body Sem_Prag is
*** 31641,31647 ****
           Arg := Test_Case_Arg (N, Arg_Nam);
  
           if Present (Arg) then
!             Preanalyze_Assert_Expression (Expression (Arg), Standard_Boolean);
           end if;
        end Preanalyze_Test_Case_Arg;
  
--- 32823,32830 ----
           Arg := Test_Case_Arg (N, Arg_Nam);
  
           if Present (Arg) then
!             Preanalyze_And_Resolve_Assert_Expression
!               (Expression (Arg), Standard_Boolean);
           end if;
        end Preanalyze_Test_Case_Arg;
  
*************** package body Sem_Prag is
*** 31717,31722 ****
--- 32900,32929 ----
        return False;
     end Appears_In;
  
+    ------------------------
+    -- Apply_Check_Policy --
+    ------------------------
+ 
+    procedure Apply_Check_Policy (N : Node_Id; Policy : Name_Id) is
+    begin
+       case Policy is
+          when Name_Ignore | Name_Off =>
+             Mark_Is_Ignored (N);
+ 
+          when Name_Check | Name_On =>
+             Mark_Is_Checked (N);
+ 
+          when Name_Disable =>
+             Mark_Is_Disabled (N);
+ 
+          --  That should be exhaustive, the null here is a defence
+          --  against a malformed tree from previous errors.
+ 
+          when others =>
+             null;
+       end case;
+    end Apply_Check_Policy;
+ 
     -----------------------------------
     -- Build_Pragma_Check_Equivalent --
     -----------------------------------
*************** package body Sem_Prag is
*** 31857,31952 ****
     -- Check_Applicable_Policy --
     -----------------------------
  
!    procedure Check_Applicable_Policy (N : Node_Id) is
!       PP     : Node_Id;
!       Policy : Name_Id;
! 
!       Ename : constant Name_Id := Original_Aspect_Pragma_Name (N);
  
     begin
        --  No effect if not valid assertion kind name
  
!       if not Is_Valid_Assertion_Kind (Ename) then
           return;
        end if;
  
!       --  Loop through entries in check policy list
! 
!       PP := Opt.Check_Policy_List;
!       while Present (PP) loop
!          declare
!             PPA : constant List_Id := Pragma_Argument_Associations (PP);
!             Pnm : constant Name_Id := Chars (Get_Pragma_Arg (First (PPA)));
! 
!          begin
!             if Ename = Pnm
!               or else Pnm = Name_Assertion
!               or else (Pnm = Name_Statement_Assertions
!                         and then Ename in Name_Assert
!                                         | Name_Assert_And_Cut
!                                         | Name_Assume
!                                         | Name_Loop_Invariant
!                                         | Name_Loop_Variant)
!             then
!                Policy := Chars (Get_Pragma_Arg (Last (PPA)));
! 
!                case Policy is
!                   when Name_Ignore
!                      | Name_Off
!                   =>
!                      --  In CodePeer mode and GNATprove mode, we need to
!                      --  consider all assertions, unless they are disabled.
!                      --  Force Is_Checked on ignored assertions, in particular
!                      --  because transformations of the AST may depend on
!                      --  assertions being checked (e.g. the translation of
!                      --  attribute 'Loop_Entry).
! 
!                      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;
! 
!                   when Name_Check
!                      | Name_On
!                   =>
!                      Set_Is_Checked (N, True);
!                      Set_Is_Ignored (N, False);
! 
!                   when Name_Disable =>
!                      Set_Is_Ignored  (N, True);
!                      Set_Is_Checked  (N, False);
!                      Set_Is_Disabled (N, True);
! 
!                   --  That should be exhaustive, the null here is a defence
!                   --  against a malformed tree from previous errors.
! 
!                   when others =>
!                      null;
!                end case;
! 
!                return;
!             end if;
! 
!             PP := Next_Pragma (PP);
!          end;
!       end loop;
! 
!       --  If there are no specific entries that matched, then we let the
!       --  setting of assertions govern. Note that this provides the needed
!       --  compatibility with the RM for the cases of assertion, invariant,
!       --  precondition, predicate, and postcondition. Note also that
!       --  Assertions_Enabled is forced in CodePeer mode and GNATprove mode.
! 
!       if Assertions_Enabled 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 Check_Applicable_Policy;
  
     -------------------------------
--- 33064,33081 ----
     -- Check_Applicable_Policy --
     -----------------------------
  
!    procedure Check_Applicable_Policy (N : Node_Id; Level : Entity_Id := Empty)
!    is
!       Nam : constant Name_Id := Original_Aspect_Pragma_Name (N);
  
     begin
        --  No effect if not valid assertion kind name
  
!       if not Is_Valid_Assertion_Kind (Nam) then
           return;
        end if;
  
!       Apply_Check_Policy (N, Get_Applicable_Policy (Nam, Level));
     end Check_Applicable_Policy;
  
     -------------------------------
*************** package body Sem_Prag is
*** 31994,32062 ****
           Item);
     end Check_External_Properties;
  
-    ----------------
-    -- Check_Kind --
-    ----------------
- 
-    function Check_Kind (Nam : Name_Id) return Name_Id is
-       PP : Node_Id;
- 
-    begin
-       --  Loop through entries in check policy list
- 
-       PP := Opt.Check_Policy_List;
-       while Present (PP) loop
-          declare
-             PPA : constant List_Id := Pragma_Argument_Associations (PP);
-             Pnm : constant Name_Id := Chars (Get_Pragma_Arg (First (PPA)));
- 
-          begin
-             if Nam = Pnm
-               or else (Pnm = Name_Assertion
-                         and then Is_Valid_Assertion_Kind (Nam))
-               or else (Pnm = Name_Statement_Assertions
-                         and then Nam in Name_Assert
-                                       | Name_Assert_And_Cut
-                                       | Name_Assume
-                                       | Name_Loop_Invariant
-                                       | Name_Loop_Variant)
-             then
-                case Chars (Get_Pragma_Arg (Last (PPA))) is
-                   when Name_Check
-                      | Name_On
-                   =>
-                      return Name_Check;
- 
-                   when Name_Ignore
-                      | Name_Off
-                   =>
-                      return Name_Ignore;
- 
-                   when Name_Disable =>
-                      return Name_Disable;
- 
-                   when others =>
-                      raise Program_Error;
-                end case;
- 
-             else
-                PP := Next_Pragma (PP);
-             end if;
-          end;
-       end loop;
- 
-       --  If there are no specific entries that matched, then we let the
-       --  setting of assertions govern. Note that this provides the needed
-       --  compatibility with the RM for the cases of assertion, invariant,
-       --  precondition, predicate, and postcondition.
- 
-       if Assertions_Enabled then
-          return Name_Check;
-       else
-          return Name_Ignore;
-       end if;
-    end Check_Kind;
- 
     ---------------------------
     -- Check_Missing_Part_Of --
     ---------------------------
--- 33123,33128 ----
*************** package body Sem_Prag is
*** 32774,32779 ****
--- 33840,33860 ----
        end if;
     end Duplication_Error;
  
+    --------------------------
+    -- Find_Assertion_Level --
+    --------------------------
+ 
+    function Find_Assertion_Level (Nam : Name_Id) return Entity_Id is
+    begin
+       for J in Assertion_Levels.First .. Assertion_Levels.Last loop
+          if Chars (Assertion_Levels.Table (J)) = Nam then
+             return Assertion_Levels.Table (J);
+          end if;
+       end loop;
+ 
+       return Empty;
+    end Find_Assertion_Level;
+ 
     ------------------------------
     -- Find_Encapsulating_State --
     ------------------------------
*************** package body Sem_Prag is
*** 32922,32931 ****
           if Nkind (Stmt) = N_Pragma then
              if Do_Checks
                and then Original_Aspect_Pragma_Name (Stmt) = Prag_Nam
              then
!                Duplication_Error
!                  (Prag => Prag,
!                   Prev => Stmt);
              end if;
  
           --  Emit an error when a refinement pragma appears on an expression
--- 34003,34011 ----
           if Nkind (Stmt) = N_Pragma then
              if Do_Checks
                and then Original_Aspect_Pragma_Name (Stmt) = Prag_Nam
+               and then not From_Same_Pragma (Prag, Stmt)
              then
!                Duplication_Error (Prag => Prag, Prev => Stmt);
              end if;
  
           --  Emit an error when a refinement pragma appears on an expression
*************** package body Sem_Prag is
*** 33088,33097 ****
           --  Skip prior pragmas, but check for duplicates
  
           if Nkind (Stmt) = N_Pragma then
!             if Do_Checks and then Pragma_Name (Stmt) = Prag_Nam then
!                Duplication_Error
!                  (Prag => Prag,
!                   Prev => Stmt);
              end if;
  
           --  Skip internally generated code
--- 34168,34178 ----
           --  Skip prior pragmas, but check for duplicates
  
           if Nkind (Stmt) = N_Pragma then
!             if Do_Checks
!               and then Pragma_Name (Stmt) = Prag_Nam
!               and then not From_Same_Pragma (Prag, Stmt)
!             then
!                Duplication_Error (Prag => Prag, Prev => Stmt);
              end if;
  
           --  Skip internally generated code
*************** package body Sem_Prag is
*** 33157,33162 ****
--- 34238,34317 ----
        end if;
     end Find_Related_Package_Or_Body;
  
+    ---------------------------
+    -- Get_Applicable_Policy --
+    ---------------------------
+ 
+    function Get_Applicable_Policy
+      (Nam : Name_Id; Level : Entity_Id) return Name_Id
+    is
+       function Is_Statement_Assertion (Nam : Name_Id) return Boolean
+       is (Nam
+           in Name_Assert
+            | Name_Assert_And_Cut
+            | Name_Assume
+            | Name_Loop_Invariant
+            | Name_Loop_Variant);
+ 
+       --  Local variables
+ 
+       Assocs      : List_Id;
+       P_Arg       : Node_Id;
+       P_Nam       : Name_Id;
+       Policy_Prag : Node_Id;
+ 
+    --  Start of processing for Get_Applicable_Policy
+ 
+    begin
+       --  Runtime level should always be checked irregardless of other
+       --  policies that are applied.
+ 
+       if Level = Standard_Level_Runtime then
+          return Name_Check;
+ 
+       --  Static level or levels that depend on Static should never be
+       --  checked irregardless of other policies that are applied.
+ 
+       elsif Level = Standard_Level_Static
+         or else Depends_On_Level (Level, Standard_Level_Static)
+       then
+          return Name_Ignore;
+       end if;
+ 
+       --  Loop through entries in check policy list
+ 
+       Policy_Prag := Opt.Check_Policy_List;
+       while Present (Policy_Prag) loop
+          Assocs := Pragma_Argument_Associations (Policy_Prag);
+          P_Arg := Get_Pragma_Arg (First (Assocs));
+          P_Nam := Chars (P_Arg);
+ 
+          if P_Nam = Nam
+            or else P_Nam = Name_Assertion
+            or else (P_Nam = Name_Statement_Assertions
+                     and then Is_Statement_Assertion (Nam))
+            or else (Present (Level) and then P_Nam = Chars (Level))
+          then
+             return Chars (Get_Pragma_Arg (Last (Assocs)));
+          end if;
+ 
+          Policy_Prag := Next_Pragma (Policy_Prag);
+       end loop;
+ 
+       --  If there are no specific entries that matched, then we let the
+       --  setting of assertions govern. Note that this provides the
+       --  needed compatibility with the RM for the cases of assertion,
+       --  invariant, precondition, predicate, and postcondition. Note
+       --  also that Assertions_Enabled is forced in CodePeer mode and
+       --  GNATprove mode.
+ 
+       if Assertions_Enabled then
+          return Name_Check;
+       else
+          return Name_Ignore;
+       end if;
+    end Get_Applicable_Policy;
+ 
     ------------------
     -- Get_Argument --
     ------------------
*************** package body Sem_Prag is
*** 33190,33195 ****
--- 34345,34363 ----
     end Get_Argument;
  
     -------------------------
+    -- Get_Assertion_Level --
+    -------------------------
+ 
+    function Get_Assertion_Level (Nam : Name_Id) return Entity_Id is
+    begin
+       if Nam = No_Name then
+          return Empty;
+       end if;
+ 
+       return Find_Assertion_Level (Nam);
+    end Get_Assertion_Level;
+ 
+    -------------------------
     -- Get_Base_Subprogram --
     -------------------------
  
*************** package body Sem_Prag is
*** 33329,33334 ****
--- 34497,34503 ----
     begin
        Externals.Init;
        Compile_Time_Warnings_Errors.Init;
+       Assertion_Levels.Init;
     end Initialize;
  
     --------
*************** package body Sem_Prag is
*** 33340,33345 ****
--- 34509,34587 ----
        Dummy := Dummy + 1;
     end ip;
  
+    ----------------------------
+    -- Insert_Assertion_Level --
+    ----------------------------
+ 
+    procedure Insert_Assertion_Level (Level : Entity_Id) is
+       Nam : constant Name_Id := Chars (Level);
+ 
+       Dupl : constant Entity_Id := Find_Assertion_Level (Nam);
+ 
+       function Same_Dependencies (Self, Other : Entity_Id) return Boolean;
+       --  Check that both levels have the same number of dependencies and the
+       --  names of the dependencies match.
+ 
+       -----------------------
+       -- Same_Dependencies --
+       -----------------------
+ 
+       function Same_Dependencies (Self, Other : Entity_Id) return Boolean is
+          Other_El    : Elmt_Id;
+          Other_Level : Entity_Id;
+          Self_El     : Elmt_Id;
+          Self_Level  : Entity_Id;
+ 
+       begin
+          pragma Assert (Ekind (Self) = E_Assertion_Level);
+          pragma Assert (Ekind (Other) = E_Assertion_Level);
+ 
+          if List_Length (Parent_Levels (Self))
+            /= List_Length (Parent_Levels (Other))
+          then
+             return False;
+          end if;
+ 
+          if No (Parent_Levels (Self)) then
+             return True;
+          end if;
+ 
+          --  Check that dependencies match.
+          --  Note that we are checking for positional and element matching.
+          --  The positional part could be relaxed.
+ 
+          Self_El := First_Elmt (Parent_Levels (Self));
+          Other_El := First_Elmt (Parent_Levels (Other));
+          while Present (Self_El) loop
+             Self_Level := Node (Self_El);
+             Other_Level := Node (Other_El);
+ 
+             if Chars (Self_Level) /= Chars (Other_Level) then
+                return False;
+             end if;
+ 
+             Next_Elmt (Self_El);
+             Next_Elmt (Other_El);
+          end loop;
+ 
+          return True;
+       end Same_Dependencies;
+ 
+    --  Start of processing for Insert_Assertion_Level
+ 
+    begin
+       if No (Dupl) then
+          Assertion_Levels.Append (Level);
+       else
+          if not Same_Dependencies (Level, Dupl) then
+             Error_Msg_N
+               ("conflicting Assertion_Level definition for &", Level);
+             Error_Msg_Sloc := Sloc (Dupl);
+             Error_Msg_NE ("\differs from existing definition #", Level, Dupl);
+          end if;
+       end if;
+    end Insert_Assertion_Level;
+ 
     -----------------------------
     -- Is_Config_Static_String --
     -----------------------------
*************** package body Sem_Prag is
*** 33480,33485 ****
--- 34722,34728 ----
        Pragma_Annotate                       => 93,
        Pragma_Assert                         => -1,
        Pragma_Assert_And_Cut                 => -1,
+       Pragma_Assertion_Level                =>  0,
        Pragma_Assertion_Policy               =>  0,
        Pragma_Assume                         => -1,
        Pragma_Assume_No_Invalid_Values       =>  0,
*************** package body Sem_Prag is
*** 33640,33645 ****
--- 34883,34889 ----
        Pragma_Profile                        =>  0,
        Pragma_Profile_Warnings               =>  0,
        Pragma_Propagate_Exceptions           =>  0,
+       Pragma_Program_Exit                   => -1,
        Pragma_Provide_Shift_Operators        =>  0,
        Pragma_Psect_Object                   =>  0,
        Pragma_Pure                           =>  0,
*************** package body Sem_Prag is
*** 33704,33709 ****
--- 34948,34954 ----
        Pragma_Unreferenced                   =>  0,
        Pragma_Unreferenced_Objects           =>  0,
        Pragma_Unreserve_All_Interrupts       =>  0,
+       Pragma_Unsigned_Base_Range            =>  0,
        Pragma_Unsuppress                     =>  0,
        Pragma_Unused                         =>  0,
        Pragma_Use_VADS_Size                  =>  0,
*************** package body Sem_Prag is
*** 33717,33723 ****
        Pragma_Warnings                       =>  0,
        Pragma_Weak_External                  =>  0,
        Pragma_Wide_Character_Encoding        =>  0,
!       Unknown_Pragma                        =>  0);
  
     function Is_Non_Significant_Pragma_Reference (N : Node_Id) return Boolean is
        Id : Pragma_Id;
--- 34962,34968 ----
        Pragma_Warnings                       =>  0,
        Pragma_Weak_External                  =>  0,
        Pragma_Wide_Character_Encoding        =>  0,
!       Pragma_Unknown                        =>  0);
  
     function Is_Non_Significant_Pragma_Reference (N : Node_Id) return Boolean is
        Id : Pragma_Id;
*************** package body Sem_Prag is
*** 33933,33938 ****
--- 35178,35192 ----
        end case;
     end Is_Valid_Assertion_Kind;
  
+    ------------------------------
+    -- Is_Valid_Assertion_Level --
+    ------------------------------
+ 
+    function Is_Valid_Assertion_Level (Nam : Name_Id) return Boolean is
+    begin
+       return Present (Get_Assertion_Level (Nam));
+    end Is_Valid_Assertion_Level;
+ 
     --------------------------------------
     -- Process_Compilation_Unit_Pragmas --
     --------------------------------------
*************** package body Sem_Prag is
*** 33968,34080 ****
       (N     : Node_Id;
        Eloc  : Source_Ptr)
     is
!       Arg1  : constant Node_Id := First (Pragma_Argument_Associations (N));
!       Arg1x : constant Node_Id := Get_Pragma_Arg (Arg1);
!       Arg2  : constant Node_Id := Next (Arg1);
  
!       Pname   : constant Name_Id   := Pragma_Name_Unmapped (N);
!       Prag_Id : constant Pragma_Id := Get_Pragma_Id (Pname);
  
!    begin
!       Analyze_And_Resolve (Arg1x, Standard_Boolean);
  
!       if Compile_Time_Known_Value (Arg1x) then
!          if Is_True (Expr_Value (Arg1x)) then
  
!             --  We have already verified that the second argument is a static
!             --  string expression. Its string value must be retrieved
!             --  explicitly if it is a declared constant, otherwise it has
!             --  been constant-folded previously.
  
!             declare
!                Cent    : constant Entity_Id := Cunit_Entity (Current_Sem_Unit);
!                Str     : constant String_Id :=
!                            Strval (Expr_Value_S (Get_Pragma_Arg (Arg2)));
!                Str_Len : constant Nat       := String_Length (Str);
  
!                Force : constant Boolean :=
!                          Prag_Id = Pragma_Compile_Time_Warning
!                            and then Is_Spec_Name (Unit_Name (Current_Sem_Unit))
!                            and then (Ekind (Cent) /= E_Package
!                                       or else not In_Private_Part (Cent));
!                --  Set True if this is the warning case, and we are in the
!                --  visible part of a package spec, or in a subprogram spec,
!                --  in which case we want to force the client to see the
!                --  warning, even though it is not in the main unit.
  
!                C    : Character;
!                CC   : Char_Code;
!                Cont : Boolean;
!                Ptr  : Nat;
  
!             begin
!                --  Loop through segments of message separated by line feeds.
!                --  We output these segments as separate messages with
!                --  continuation marks for all but the first.
  
!                Cont := False;
!                Ptr  := 1;
!                loop
!                   Error_Msg_Strlen := 0;
  
!                   --  Loop to copy characters from argument to error message
!                   --  string buffer.
  
!                   loop
!                      exit when Ptr > Str_Len;
!                      CC := Get_String_Char (Str, Ptr);
!                      Ptr := Ptr + 1;
  
!                      --  Ignore wide chars ??? else store character
  
!                      if In_Character_Range (CC) then
!                         C := Get_Character (CC);
!                         exit when C = ASCII.LF;
!                         Error_Msg_Strlen := Error_Msg_Strlen + 1;
!                         Error_Msg_String (Error_Msg_Strlen) := C;
!                      end if;
!                   end loop;
  
!                   --  Here with one line ready to go
  
!                   Error_Msg_Warn := Prag_Id = Pragma_Compile_Time_Warning;
  
!                   --  If this is a warning in a spec, then we want clients
!                   --  to see the warning, so mark the message with the
!                   --  special sequence !! to force the warning. In the case
!                   --  of a package spec, we do not force this if we are in
!                   --  the private part of the spec.
  
!                   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
!                   --  need to force visibility for client (error will be
!                   --  output in any case, and this is the situation in which
!                   --  we do not want a client to get a warning, since the
!                   --  warning is in the body or the spec private part).
  
!                   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;
  
!                   exit when Ptr > Str_Len;
!                end loop;
!             end;
           end if;
  
        --  Arg1x is not known at compile time, so possibly issue an error
--- 35222,35344 ----
       (N     : Node_Id;
        Eloc  : Source_Ptr)
     is
!       Arg1    : constant Node_Id := First (Pragma_Argument_Associations (N));
!       Arg1x   : constant Node_Id := Get_Pragma_Arg (Arg1);
!       Prag_Id : constant Pragma_Id := Get_Pragma_Id (N);
  
!       procedure Emit_Compile_Time_Message (Msg_Arg : Node_Id);
!       --  Emit the pragma a as diagnostic message. New_Line characters are
!       --  considered separators for those messages where the following lines
!       --  are considered as continuation messages for the same diagnostic.
  
!       -------------------------------
!       -- Emit_Compile_Time_Message --
!       -------------------------------
  
!       procedure Emit_Compile_Time_Message (Msg_Arg : Node_Id) is
!          --  We have already verified that the Msg_Arg is a static
!          --  string expression. Its string value must be retrieved
!          --  explicitly if it is a declared constant, otherwise it has
!          --  been constant-folded previously.
  
!          Cent    : constant Entity_Id := Cunit_Entity (Current_Sem_Unit);
!          Str     : constant String_Id :=
!            Strval (Expr_Value_S (Get_Pragma_Arg (Msg_Arg)));
!          Str_Len : constant Nat := String_Length (Str);
  
!          Force : constant Boolean :=
!            Prag_Id = Pragma_Compile_Time_Warning
!            and then Is_Spec_Name (Unit_Name (Current_Sem_Unit))
!            and then (Ekind (Cent) /= E_Package
!                      or else not In_Private_Part (Cent));
!          --  Set True if this is the warning case, and we are in the
!          --  visible part of a package spec, or in a subprogram spec,
!          --  in which case we want to force the client to see the
!          --  warning, even though it is not in the main unit.
  
!          Msg_Ctrl : Bounded_String (6);
!          --  Control characters for the message.
!          --  The longest value contains 6 characters: "\<<~!!"
  
!          C    : Character;
!          CC   : Char_Code;
!          Cont : Boolean;
!          Ptr  : Nat;
  
!       begin
!          --  Loop through segments of message separated by line feeds.
!          --  We output these segments as separate messages with
!          --  continuation marks for all but the first.
  
!          Cont := False;
!          Ptr := 1;
!          loop
!             Error_Msg_Strlen := 0;
!             Msg_Ctrl.Length := 0;
  
!             --  Loop to copy characters from argument to error message
!             --  string buffer.
  
!             loop
!                exit when Ptr > Str_Len;
!                CC := Get_String_Char (Str, Ptr);
!                Ptr := Ptr + 1;
  
!                --  Ignore wide chars ??? else store character
  
!                if In_Character_Range (CC) then
!                   C := Get_Character (CC);
!                   exit when C = ASCII.LF;
!                   Error_Msg_Strlen := Error_Msg_Strlen + 1;
!                   Error_Msg_String (Error_Msg_Strlen) := C;
!                end if;
!             end loop;
  
!             --  Here with one line ready to go
  
!             Error_Msg_Warn := Prag_Id = Pragma_Compile_Time_Warning;
  
!             if Cont then
!                Append (Msg_Ctrl, "\");
!             end if;
  
!             Append (Msg_Ctrl, "<<~");
  
!             --  If this is a warning in a spec, then we want clients
!             --  to see the warning, so mark the message with the
!             --  special sequence !! to force the warning. In the case
!             --  of a package spec, we do not force this if we are in
!             --  the private part of the spec.
  
!             if Force then
!                Append (Msg_Ctrl, "!!");
!             end if;
  
!             --  Error, rather than warning, or in a body, so we do not
!             --  need to force visibility for client (error will be
!             --  output in any case, and this is the situation in which
!             --  we do not want a client to get a warning, since the
!             --  warning is in the body or the spec private part).
! 
!             Error_Msg
!               (To_String (Msg_Ctrl), Eloc, N, Is_Compile_Time_Pragma => True);
! 
!             --  The next lines are considered continuation messages
! 
!             Cont := True;
! 
!             exit when Ptr > Str_Len;
!          end loop;
!       end Emit_Compile_Time_Message;
! 
!    --  Start of processing for Validate_Compile_Time_Warning_Or_Error
! 
!    begin
!       Analyze_And_Resolve (Arg1x, Standard_Boolean);
! 
!       if Compile_Time_Known_Value (Arg1x) then
!          if Is_True (Expr_Value (Arg1x)) then
!             Emit_Compile_Time_Message (Next (Arg1));
           end if;
  
        --  Arg1x is not known at compile time, so possibly issue an error
*************** package body Sem_Prag is
*** 34091,34096 ****
--- 35355,35391 ----
        end if;
     end Validate_Compile_Time_Warning_Or_Error;
  
+    ---------------------
+    -- Mark_Is_Checked --
+    ---------------------
+ 
+    procedure Mark_Is_Checked (N : Node_Id) is
+    begin
+       Set_Is_Checked (N, True);
+       Set_Is_Ignored (N, False);
+    end Mark_Is_Checked;
+ 
+    ----------------------
+    -- Mark_Is_Disabled --
+    ----------------------
+ 
+    procedure Mark_Is_Disabled (N : Node_Id) is
+    begin
+       Set_Is_Ignored (N, True);
+       Set_Is_Checked (N, False);
+       Set_Is_Disabled (N, True);
+    end Mark_Is_Disabled;
+ 
+    ---------------------
+    -- Mark_Is_Ignored --
+    ---------------------
+ 
+    procedure Mark_Is_Ignored (N : Node_Id) is
+    begin
+       Set_Is_Checked (N, False);
+       Set_Is_Ignored (N, True);
+    end Mark_Is_Ignored;
+ 
     ------------------------------------
     -- Record_Possible_Body_Reference --
     ------------------------------------
*************** package body Sem_Prag is
*** 34799,34805 ****
           begin
              Set_Scope (T.Scope);
              Reset_Analyzed_Flags (T.Prag);
!             Validate_Compile_Time_Warning_Or_Error (T.Prag, T.Eloc);
              Unset_Scope (T.Scope);
           end;
        end loop;
--- 36094,36110 ----
           begin
              Set_Scope (T.Scope);
              Reset_Analyzed_Flags (T.Prag);
!             if Nkind (T.Prag) = N_Pragma then
!                Validate_Compile_Time_Warning_Or_Error (T.Prag, T.Eloc);
!             else
!                pragma Assert (Nkind (Original_Node (T.Prag)) = N_Pragma);
! 
!                --  The pragma was likely removed in ignored ghost code. Check
!                --  the original node instead.
! 
!                Validate_Compile_Time_Warning_Or_Error
!                  (Original_Node (T.Prag), T.Eloc);
!             end if;
              Unset_Scope (T.Scope);
           end;
        end loop;
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_prag.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_prag.ads
*** gcc-15.2.0/gcc/ada/sem_prag.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_prag.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 97,102 ****
--- 97,103 ----
        Pragma_Preelaborable_Initialization => True,
        Pragma_Preelaborate                 => True,
        Pragma_Priority                     => True,
+       Pragma_Program_Exit                 => True,
        Pragma_Pure                         => True,
        Pragma_Pure_Function                => True,
        Pragma_Refined_Depends              => True,
*************** package Sem_Prag is
*** 156,161 ****
--- 157,163 ----
        Pragma_Pre_Class                 => True,
        Pragma_Precondition              => True,
        Pragma_Predicate                 => True,
+       Pragma_Program_Exit              => True,
        Pragma_Refined_Post              => True,
        Pragma_Subprogram_Variant        => True,
        Pragma_Test_Case                 => True,
*************** package Sem_Prag is
*** 229,234 ****
--- 231,237 ----
        Pragma_Pre                 => True,
        Pragma_Pre_Class           => True,
        Pragma_Precondition        => True,
+       Pragma_Program_Exit        => True,
        Pragma_Pure                => True,
        Pragma_Pure_Function       => True,
        Pragma_Refined_Depends     => True,
*************** package Sem_Prag is
*** 250,255 ****
--- 253,325 ----
       (Pragma_Extensions_Visible => True,
        others                    => False);
  
+    --  List of pragmas where the ghost policy checks have been disabled.
+    --
+    --  There is an analysis circularity issue here. These pragmas are marked as
+    --  Ghost based on the ghostness of the entity in their argument. We need to
+    --  analyze the argument to determine the ghostness of the pragma. However
+    --  if we are analyzing a ghost argument we need to validate its context and
+    --  for that we need to mark the ghostness of the pragma beforehand.
+    --
+    --  We suppress the checks for these pragmas in order to break that loop. We
+    --  do not need to emit an error since if the argument was ghost that means
+    --  that the pragma was ghost as well.
+ 
+    Suppressed_Ghost_Policy_Check_Pragma :
+      constant array (Pragma_Id) of Boolean :=
+        (Pragma_All_Calls_Remote             => True,
+         Pragma_Annotate                     => True,
+         Pragma_Asynchronous                 => True,
+         Pragma_Atomic_Components            => True,
+         Pragma_Compile_Time_Error           => True,
+         Pragma_Compile_Time_Warning         => True,
+         Pragma_Convention                   => True,
+         Pragma_Default_Storage_Pool         => True,
+         Pragma_Discard_Names                => True,
+         Pragma_Elaborate_Body               => True,
+         Pragma_Export                       => True,
+         Pragma_Extended_Access              => True,
+         Pragma_External                     => True,
+         Pragma_Favor_Top_Level              => True,
+         Pragma_Import                       => True,
+         Pragma_Independent_Components       => True,
+         Pragma_Inline                       => True,
+         Pragma_Interface                    => True,
+         Pragma_No_Return                    => True,
+         Pragma_Obsolescent                  => True,
+         Pragma_Pack                         => True,
+         Pragma_Persistent_BSS               => True,
+         Pragma_Preelaborable_Initialization => True,
+         Pragma_Preelaborate                 => True,
+         Pragma_Pure                         => True,
+         Pragma_Pure_Function                => True,
+         Pragma_Remote_Access_Type           => True,
+         Pragma_Remote_Call_Interface        => True,
+         Pragma_Remote_Types                 => True,
+         Pragma_Shared_Passive               => True,
+         Pragma_Simple_Storage_Pool_Type     => True,
+         Pragma_Suppress                     => True,
+         Pragma_Suppress_Debug_Info          => True,
+         Pragma_Suppress_Initialization      => True,
+         Pragma_Thread_Local_Storage         => True,
+         Pragma_Unchecked_Union              => True,
+         Pragma_Universal_Aliasing           => True,
+         Pragma_Unreferenced                 => True,
+         Pragma_Unreferenced_Objects         => True,
+         Pragma_Unsuppress                   => True,
+         Pragma_Unused                       => True,
+         Pragma_Volatile_Components          => True,
+         others                              => False);
+ 
+    function Find_Assertion_Level (Nam : Name_Id) return Entity_Id;
+    --  Find an existing definition with the given name that has been inserted
+    --  into the Assertion_Levels table.
+ 
+    procedure Insert_Assertion_Level (Level : Entity_Id);
+    --  Insert a new level into the Assertion_Levels table. If there is already
+    --  an entry with the same name check that it has the same dependencies as
+    --  the level you are trying to insert. Raises an error otherwise.
+ 
     -----------------
     -- Subprograms --
     -----------------
*************** package Sem_Prag is
*** 326,331 ****
--- 396,408 ----
     --  subprogram body which caused "freezing" of the related contract where
     --  the pragma resides.
  
+    procedure Analyze_Program_Exit_In_Decl_Part
+      (N         : Node_Id;
+       Freeze_Id : Entity_Id := Empty);
+    --  Perform full analysis of delayed pragma Program_Exit. 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_Refined_Depends_In_Decl_Part (N : Node_Id);
     --  Preform full analysis of delayed pragma Refined_Depends. This routine
     --  uses Analyze_Depends_In_Decl_Part as a starting point, then performs
*************** package Sem_Prag is
*** 367,373 ****
     --  in fact of the same kind as the source pragma Prag. This is used
     --  in GNATprove_Mode to generate the inherited pre- and postconditions.
  
!    procedure Check_Applicable_Policy (N : Node_Id);
     --  N is either an N_Aspect or an N_Pragma node. There are two cases. If
     --  the name of the aspect or pragma is not one of those recognized as
     --  an assertion kind by an Assertion_Policy pragma, then the call has
--- 444,450 ----
     --  in fact of the same kind as the source pragma Prag. This is used
     --  in GNATprove_Mode to generate the inherited pre- and postconditions.
  
!    procedure Check_Applicable_Policy (N : Node_Id; Level : Entity_Id := Empty);
     --  N is either an N_Aspect or an N_Pragma node. There are two cases. If
     --  the name of the aspect or pragma is not one of those recognized as
     --  an assertion kind by an Assertion_Policy pragma, then the call has
*************** package Sem_Prag is
*** 400,424 ****
     --  is the related variable or state. Ensure legality of the combination and
     --  issue an error for an illegal combination.
  
-    function Check_Kind (Nam : Name_Id) return Name_Id;
-    --  This function is used in connection with pragmas Assert, Check,
-    --  and assertion aspects and pragmas, to determine if Check pragmas
-    --  (or corresponding assertion aspects or pragmas) are currently active
-    --  as determined by the presence of -gnata on the command line (which
-    --  sets the default), and the appearance of pragmas Check_Policy and
-    --  Assertion_Policy as configuration pragmas either in a configuration
-    --  pragma file, or at the start of the current unit, or locally given
-    --  Check_Policy and Assertion_Policy pragmas that are currently active.
-    --
-    --  The value returned is one of the names Check, Ignore, Disable (On
-    --  returns Check, and Off returns Ignore).
-    --
-    --  Note: for assertion kinds Pre'Class, Post'Class, Invariant'Class,
-    --  and Type_Invariant'Class, the name passed is Name_uPre, Name_uPost,
-    --  Name_uInvariant, or Name_uType_Invariant, which corresponds to _Pre,
-    --  _Post, _Invariant, or _Type_Invariant, which are special names used
-    --  in identifiers to represent these attribute references.
- 
     procedure Check_Missing_Part_Of (Item_Id : Entity_Id);
     --  Determine whether the placement within the state space of an abstract
     --  state, variable or package instantiation denoted by Item_Id requires the
--- 477,482 ----
*************** package Sem_Prag is
*** 494,499 ****
--- 552,558 ----
     --    Pre
     --    Pre_Class
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Sem_Prag is
*** 522,527 ****
--- 581,589 ----
     --  Context denotes the entity of the function, package or procedure where
     --  Prag resides.
  
+    function Get_Assertion_Level (Nam : Name_Id) return Entity_Id;
+    --  Returns the entity of a known Assertion_Level name
+ 
     function Get_SPARK_Mode_From_Annotation
       (N : Node_Id) return SPARK_Mode_Type;
     --  Given an aspect or pragma SPARK_Mode node, return corresponding mode id
*************** package Sem_Prag is
*** 588,593 ****
--- 650,659 ----
     --  Name_uInvariant, and Name_uType_Invariant (_Pre, _Post, _Invariant,
     --  and _Type_Invariant).
  
+    function Is_Valid_Assertion_Level (Nam : Name_Id) return Boolean;
+    --  Return True if Nam is one of the Assertion_Levels declared in the
+    --  current context.
+ 
     procedure Process_Compilation_Unit_Pragmas (N : Node_Id);
     --  Called at the start of processing compilation unit N to deal with any
     --  special issues regarding pragmas. In particular, we have to deal with
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_res.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_res.adb
*** gcc-15.2.0/gcc/ada/sem_res.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_res.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  with Checks;         use Checks;
  with Debug;          use Debug;
  with Debug_A;        use Debug_A;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 29,34 ----
*************** with Sem_Mech;       use Sem_Mech;
*** 80,86 ****
  with Sem_Type;       use Sem_Type;
  with Sem_Util;       use Sem_Util;
  with Sem_Warn;       use Sem_Warn;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinfo.CN;       use Sinfo.CN;
--- 79,84 ----
*************** with Strub;          use Strub;
*** 92,97 ****
--- 90,96 ----
  with Style;          use Style;
  with Targparm;       use Targparm;
  with Tbuild;         use Tbuild;
+ with Ttypes;         use Ttypes;
  with Uintp;          use Uintp;
  with Urealp;         use Urealp;
  with Warnsw;         use Warnsw;
*************** package body Sem_Res is
*** 262,270 ****
  
     function Operator_Kind
       (Op_Name   : Name_Id;
!       Is_Binary : Boolean) return Node_Kind;
!    --  Utility to map the name of an operator into the corresponding Node. Used
!    --  by other node rewriting procedures.
  
     procedure Resolve_Actuals (N : Node_Id; Nam : Entity_Id);
     --  Resolve actuals of call, and add default expressions for missing ones.
--- 261,268 ----
  
     function Operator_Kind
       (Op_Name   : Name_Id;
!       Is_Binary : Boolean) return N_Op;
!    --  Map the name of an operator into the corresponding Node_Kind
  
     procedure Resolve_Actuals (N : Node_Id; Nam : Entity_Id);
     --  Resolve actuals of call, and add default expressions for missing ones.
*************** package body Sem_Res is
*** 278,289 ****
     --  is the context type, which is used when the operation is a protected
     --  function with no arguments, and the return value is indexed.
  
-    procedure Resolve_Implicit_Dereference (P : Node_Id);
-    --  Called when P is the prefix of an indexed component, or of a selected
-    --  component, or of a slice. If P is of an access type, we unconditionally
-    --  rewrite it as an explicit dereference. This ensures that the expander
-    --  and the code generator have a fully explicit tree to work with.
- 
     procedure Resolve_Intrinsic_Operator (N : Node_Id; Typ : Entity_Id);
     --  A call to a user-defined intrinsic operator is rewritten as a call to
     --  the corresponding predefined operator, with suitable conversions. Note
--- 276,281 ----
*************** package body Sem_Res is
*** 659,664 ****
--- 651,674 ----
        P    : Node_Id;
        D    : Node_Id;
  
+       procedure Check_Legality_In_Constraint (Alone : Boolean);
+       --  RM 3.8(12/3): Check that the discriminant mentioned in a constraint
+       --  appears alone as a direct name.
+ 
+       ----------------------------------
+       -- Check_Legality_In_Constraint --
+       ----------------------------------
+ 
+       procedure Check_Legality_In_Constraint (Alone : Boolean) is
+       begin
+          if not Alone then
+             Error_Msg_N ("discriminant in constraint must appear alone", N);
+ 
+          elsif Nkind (N) = N_Expanded_Name and then Comes_From_Source (N) then
+             Error_Msg_N ("discriminant must appear alone as a direct name", N);
+          end if;
+       end Check_Legality_In_Constraint;
+ 
     begin
        --  Any use in a spec-expression is legal
  
*************** package body Sem_Res is
*** 695,713 ****
              --  processing for records). See Sem_Ch3.Build_Derived_Record_Type
              --  for more info.
  
!             if Ekind (Current_Scope) = E_Record_Type
!               and then Scope (Disc) = Current_Scope
!               and then not
!                 (Nkind (Parent (P)) = N_Subtype_Indication
!                   and then
!                     Nkind (Parent (Parent (P))) in N_Component_Definition
!                                                  | N_Subtype_Declaration
!                   and then Paren_Count (N) = 0)
!             then
!                Error_Msg_N
!                  ("discriminant must appear alone in component constraint", N);
!                return;
!             end if;
  
              --   Detect a common error:
  
--- 705,715 ----
              --  processing for records). See Sem_Ch3.Build_Derived_Record_Type
              --  for more info.
  
!             Check_Legality_In_Constraint
!               (Nkind (Parent (P)) = N_Subtype_Indication
!                 and then Nkind (Parent (Parent (P))) in N_Component_Definition
!                                                       | N_Subtype_Declaration
!                 and then Paren_Count (N) = 0);
  
              --   Detect a common error:
  
*************** package body Sem_Res is
*** 757,770 ****
                    goto No_Danger;
                 end if;
  
-                --  If the enclosing type is limited, we allocate only the
-                --  default value, not the maximum, and there is no need for
-                --  a warning.
- 
-                if Is_Limited_Type (Scope (Disc)) then
-                   goto No_Danger;
-                end if;
- 
                 --  Check that it is the high bound
  
                 if N /= High_Bound (PN)
--- 759,764 ----
*************** package body Sem_Res is
*** 811,821 ****
                    goto No_Danger;
                 end if;
  
!                --  Warn about the danger
! 
!                Error_Msg_N
!                  ("??creation of & object may raise Storage_Error!",
!                   Scope (Disc));
  
                 <<No_Danger>>
                    null;
--- 805,813 ----
                    goto No_Danger;
                 end if;
  
!                if Ekind (Scope (Disc)) = E_Record_Type then
!                   Set_Is_Large_Unconstrained_Definite (Scope (Disc));
!                end if;
  
                 <<No_Danger>>
                    null;
*************** package body Sem_Res is
*** 828,845 ****
        elsif Nkind (PN) in N_Index_Or_Discriminant_Constraint
                          | N_Discriminant_Association
        then
!          if Paren_Count (N) > 0 then
!             Error_Msg_N
!               ("discriminant in constraint must appear alone",  N);
! 
!          elsif Nkind (N) = N_Expanded_Name
!            and then Comes_From_Source (N)
!          then
!             Error_Msg_N
!               ("discriminant must appear alone as a direct name", N);
!          end if;
! 
!          return;
  
        --  Otherwise, context is an expression. It should not be within (i.e. a
        --  subexpression of) a constraint for a component.
--- 820,826 ----
        elsif Nkind (PN) in N_Index_Or_Discriminant_Constraint
                          | N_Discriminant_Association
        then
!          Check_Legality_In_Constraint (Paren_Count (N) = 0);
  
        --  Otherwise, context is an expression. It should not be within (i.e. a
        --  subexpression of) a constraint for a component.
*************** package body Sem_Res is
*** 874,881 ****
             or else Nkind (P) = N_Entry_Declaration
             or else Nkind (D) = N_Defining_Identifier
           then
!             Error_Msg_N
!               ("discriminant in constraint must appear alone",  N);
           end if;
        end if;
     end Check_Discriminant_Use;
--- 855,861 ----
             or else Nkind (P) = N_Entry_Declaration
             or else Nkind (D) = N_Defining_Identifier
           then
!             Check_Legality_In_Constraint (False);
           end if;
        end if;
     end Check_Discriminant_Use;
*************** package body Sem_Res is
*** 1996,2002 ****
  
     function Operator_Kind
       (Op_Name   : Name_Id;
!       Is_Binary : Boolean) return Node_Kind
     is
        Kind : Node_Kind;
  
--- 1976,1982 ----
  
     function Operator_Kind
       (Op_Name   : Name_Id;
!       Is_Binary : Boolean) return N_Op
     is
        Kind : Node_Kind;
  
*************** package body Sem_Res is
*** 2106,2113 ****
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
-       --  See also Preanalyze_And_Resolve in sem.adb for similar handling
- 
        --  Normally, we suppress all checks for this preanalysis. There is no
        --  point in processing them now, since they will be applied properly
        --  and in the proper location when the default expressions reanalyzed
--- 2086,2091 ----
*************** package body Sem_Res is
*** 2150,2157 ****
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
!       Analyze (N);
!       Resolve (N, Etype (N), Suppress => All_Checks);
  
        Expander_Mode_Restore;
        Full_Analysis := Save_Full_Analysis;
--- 2128,2140 ----
        Full_Analysis := False;
        Expander_Mode_Save_And_Set (False);
  
!       --  See previous version of Preanalyze_And_Resolve for similar handling
! 
!       if GNATprove_Mode then
!          Analyze_And_Resolve (N);
!       else
!          Analyze_And_Resolve (N, Suppress => All_Checks);
!       end if;
  
        Expander_Mode_Restore;
        Full_Analysis := Save_Full_Analysis;
*************** package body Sem_Res is
*** 2305,2310 ****
--- 2288,2294 ----
        I1        : Interp_Index := 0;  -- prevent junk warning
        It        : Interp;
        It1       : Interp;
+       Prev_It   : Interp := No_Interp;
        Seen      : Entity_Id := Empty; -- prevent junk warning
  
        function Comes_From_Predefined_Lib_Unit (Nod : Node_Id) return Boolean;
*************** package body Sem_Res is
*** 2346,2354 ****
              Set_Is_Static_Expression (N);
  
           elsif Nkind (N) = N_Real_Literal and then Is_Integer_Type (Typ) then
!             Rewrite (N,
!               Make_Integer_Literal (Sloc (N),
!                 Intval => UR_To_Uint (Realval (N))));
              Set_Etype (N, Universal_Integer);
              Set_Is_Static_Expression (N);
  
--- 2330,2345 ----
              Set_Is_Static_Expression (N);
  
           elsif Nkind (N) = N_Real_Literal and then Is_Integer_Type (Typ) then
!             if UR_Abs (Realval (N)) < Ureal_2_63
!               or else (System_Max_Integer_Size = 128
!                         and then UR_Abs (Realval (N)) < Ureal_2_127)
!             then
!                Rewrite (N,
!                  Make_Integer_Literal (Sloc (N),
!                    Intval => UR_To_Uint (Realval (N))));
!             else
!                Rewrite (N, Make_Integer_Literal (Sloc (N), Intval => Uint_0));
!             end if;
              Set_Etype (N, Universal_Integer);
              Set_Is_Static_Expression (N);
  
*************** package body Sem_Res is
*** 2876,2961 ****
                 --  We have a matching interpretation, Expr_Type is the type
                 --  from this interpretation, and Seen is the entity.
  
!                --  For an operator, just set the entity name. The type will be
!                --  set by the specific operator resolution routine.
! 
!                if Nkind (N) in N_Op then
!                   Set_Entity (N, Seen);
!                   Generate_Reference (Seen, N);
  
!                elsif Nkind (N) in N_Case_Expression
!                                 | N_Character_Literal
!                                 | N_Delta_Aggregate
!                                 | N_If_Expression
                 then
!                   Set_Etype (N, Expr_Type);
! 
!                --  AI05-0139-2: Expression is overloaded because type has
!                --  implicit dereference. The context may be the one that
!                --  requires implicit dereferemce.
! 
!                elsif Has_Implicit_Dereference (Expr_Type) then
!                   Set_Etype (N, Expr_Type);
!                   Set_Is_Overloaded (N, False);
  
!                --  If the expression is an entity, generate a reference
!                --  to it, as this is not done for an overloaded construct
!                --  during analysis.
  
!                   if Is_Entity_Name (N)
!                     and then Comes_From_Source (N)
                    then
!                      Generate_Reference (Entity (N), N);
! 
!                      --  Examine access discriminants of entity type,
!                      --  to check whether one of them yields the
!                      --  expected type.
! 
!                      declare
!                         Disc : Entity_Id :=
!                           First_Discriminant (Etype (Entity (N)));
! 
!                      begin
!                         while Present (Disc) loop
!                            exit when Is_Access_Type (Etype (Disc))
!                              and then Has_Implicit_Dereference (Disc)
!                              and then Designated_Type (Etype (Disc)) = Typ;
  
!                            Next_Discriminant (Disc);
!                         end loop;
  
!                         if Present (Disc) then
!                            Build_Explicit_Dereference (N, Disc);
!                         end if;
!                      end;
!                   end if;
  
!                   exit Interp_Loop;
  
!                elsif Is_Overloaded (N)
!                  and then Present (It.Nam)
!                  and then Ekind (It.Nam) = E_Discriminant
!                  and then Has_Implicit_Dereference (It.Nam)
!                then
!                   --  If the node is a general indexing, the dereference is
!                   --  is inserted when resolving the rewritten form, else
!                   --  insert it now.
  
!                   if Nkind (N) /= N_Indexed_Component
!                     or else No (Generalized_Indexing (N))
!                   then
!                      Build_Explicit_Dereference (N, It.Nam);
!                   end if;
  
!                --  For an explicit dereference, attribute reference, range,
!                --  short-circuit form (which is not an operator node), or call
!                --  with a name that is an explicit dereference, there is
!                --  nothing to be done at this point.
  
                 elsif Nkind (N) in N_Attribute_Reference
                                  | N_And_Then
                                  | N_Explicit_Dereference
!                                 | N_Identifier
                                  | N_Indexed_Component
                                  | N_Or_Else
                                  | N_Range
--- 2867,2925 ----
                 --  We have a matching interpretation, Expr_Type is the type
                 --  from this interpretation, and Seen is the entity.
  
!                --  If this is an additional interpretation introduced by
!                --  Check_Implicit_Dereference, the actual interpretation
!                --  for N was the previous one. Resolve N and insert the
!                --  explicit dereference.
  
!                if Present (It.Nam)
!                  and then Ekind (It.Nam) = E_Discriminant
!                  and then Has_Implicit_Dereference (It.Nam)
!                  and then (Nkind (N) /= N_Indexed_Component
!                             or else No (Generalized_Indexing (N)))
                 then
!                   pragma Assert (Prev_It /= No_Interp);
  
!                   if Is_Entity_Name (N) then
!                      Set_Etype  (N, Prev_It.Typ);
!                      Set_Entity (N, Prev_It.Nam);
!                      Generate_Reference (Prev_It.Nam, N);
  
!                   elsif Nkind (N) in N_Subprogram_Call
!                     and then Is_Entity_Name (Name (N))
                    then
!                      Set_Etype  (Name (N), Prev_It.Typ);
!                      Set_Entity (Name (N), Prev_It.Nam);
!                      Generate_Reference (Prev_It.Nam, Name (N));
!                      Set_Is_Overloaded (Name (N), False);
!                   end if;
  
!                   Build_Explicit_Dereference (N, It.Nam);
  
!                --  For an operator, just set the entity. The type will be
!                --  set by the specific operator resolution routine.
  
!                elsif Nkind (N) in N_Op then
!                   Set_Entity (N, Seen);
!                   Generate_Reference (Seen, N);
  
!                --  For an entity name, set both the type and the entity
  
!                elsif Is_Entity_Name (N) then
!                   Set_Etype  (N, Expr_Type);
!                   Set_Entity (N, Seen);
!                   Generate_Reference (Seen, N);
  
!                --  For nodes other than calls, or calls with a name that is an
!                --  explicit dereference, there is nothing to be done.
  
                 elsif Nkind (N) in N_Attribute_Reference
                                  | N_And_Then
+                                 | N_Case_Expression
+                                 | N_Character_Literal
+                                 | N_Delta_Aggregate
                                  | N_Explicit_Dereference
!                                 | N_If_Expression
                                  | N_Indexed_Component
                                  | N_Or_Else
                                  | N_Range
*************** package body Sem_Res is
*** 2965,2993 ****
                 then
                    null;
  
!                --  For procedure or function calls, set the type of the name,
!                --  and also the entity pointer for the prefix.
  
!                elsif Nkind (N) in N_Subprogram_Call
!                  and then Is_Entity_Name (Name (N))
!                then
                    Set_Etype  (Name (N), Expr_Type);
                    Set_Entity (Name (N), Seen);
                    Generate_Reference (Seen, Name (N));
  
!                elsif Nkind (N) = N_Function_Call
!                  and then Nkind (Name (N)) = N_Selected_Component
!                then
                    Set_Etype (Name (N), Expr_Type);
                    Set_Entity (Selector_Name (Name (N)), Seen);
                    Generate_Reference (Seen, Selector_Name (Name (N)));
  
!                --  For all other cases, just set the type of the Name
  
                 else
                    Set_Etype (Name (N), Expr_Type);
                 end if;
- 
              end if;
  
              <<Continue>>
--- 2929,2951 ----
                 then
                    null;
  
!                --  For some calls, set the type and entity of the name
  
!                elsif Is_Entity_Name (Name (N)) then
                    Set_Etype  (Name (N), Expr_Type);
                    Set_Entity (Name (N), Seen);
                    Generate_Reference (Seen, Name (N));
  
!                elsif Nkind (Name (N)) = N_Selected_Component then
                    Set_Etype (Name (N), Expr_Type);
                    Set_Entity (Selector_Name (Name (N)), Seen);
                    Generate_Reference (Seen, Selector_Name (Name (N)));
  
!                --  For other calls, just set the type of the Name
  
                 else
                    Set_Etype (Name (N), Expr_Type);
                 end if;
              end if;
  
              <<Continue>>
*************** package body Sem_Res is
*** 2996,3001 ****
--- 2954,2961 ----
  
              exit Interp_Loop when No (It.Typ);
  
+             Prev_It := It;
+ 
              Get_Next_Interp (I, It);
           end loop Interp_Loop;
        end if;
*************** package body Sem_Res is
*** 3746,3751 ****
--- 3706,3724 ----
        procedure Check_Aliased_Parameter is
           Nominal_Subt : Entity_Id;
  
+          procedure Accessibility_Error (S : String);
+          --  Give an error about the accessibility level of the actual
+ 
+          -------------------------
+          -- Accessibility_Error --
+          -------------------------
+ 
+          procedure Accessibility_Error (S : String) is
+          begin
+             Error_Msg_NE ("actual for aliased formal& has wrong accessibility"
+                           & " in " & S & " (RM 6.4.1(6.4))", A, F);
+          end Accessibility_Error;
+ 
        begin
           if Is_Aliased (F) then
              if Is_Tagged_Type (A_Typ) then
*************** package body Sem_Res is
*** 3781,3804 ****
                               & "aliased object", A, F);
              end if;
  
!             if Ekind (Nam) = E_Procedure then
                 null;
  
!             elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type then
!                if Nkind (Parent (N)) = N_Type_Conversion
!                  and then Type_Access_Level (Etype (Parent (N)))
!                             < Static_Accessibility_Level (A, Object_Decl_Level)
!                then
!                   Error_Msg_N ("aliased actual has wrong accessibility", A);
!                end if;
  
              elsif Nkind (Parent (N)) = N_Qualified_Expression
                and then Nkind (Parent (Parent (N))) = N_Allocator
                and then Type_Access_Level (Etype (Parent (Parent (N))))
                           < Static_Accessibility_Level (A, Object_Decl_Level)
              then
!                Error_Msg_N
!                  ("aliased actual in allocator has wrong accessibility", A);
              end if;
           end if;
        end Check_Aliased_Parameter;
--- 3754,3804 ----
                               & "aliased object", A, F);
              end if;
  
!             --  RM 6.4.1(6.4): In a function call, the accessibility level of
!             --  the actual object for each explicitly aliased parameter shall
!             --  not be statically deeper than the accessibility level of the
!             --  master of the call.
! 
!             --  AI12-0402: The master of the function call for a function
!             --  whose result type is a scalar or named access type is always
!             --  the innermost master invoking the function.
! 
!             if Ekind (Etype (Nam)) = E_Void
!               or else (Ada_Version >= Ada_2022
!                         and then (Is_Scalar_Type (Etype (Nam))
!                                    or else Is_Named_Access_Type (Etype (Nam))))
!             then
                 null;
  
!             elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
!               and then Nkind (Parent (N)) = N_Type_Conversion
!               and then Type_Access_Level (Etype (Parent (N)))
!                          < Static_Accessibility_Level (A, Object_Decl_Level)
!             then
!                Accessibility_Error ("conversion");
! 
!             elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
!               and then Nkind (Parent (N)) = N_Assignment_Statement
!               and then Static_Accessibility_Level
!                          (Name (Parent (N)), Object_Decl_Level)
!                            < Static_Accessibility_Level (A, Object_Decl_Level)
!             then
!                Accessibility_Error ("assignment");
  
              elsif Nkind (Parent (N)) = N_Qualified_Expression
                and then Nkind (Parent (Parent (N))) = N_Allocator
                and then Type_Access_Level (Etype (Parent (Parent (N))))
                           < Static_Accessibility_Level (A, Object_Decl_Level)
              then
!                Accessibility_Error ("allocator");
! 
!             elsif In_Return_Value (N)
!               and then Comes_From_Source (N)
!               and then Subprogram_Access_Level (Current_Subprogram)
!                          < Static_Accessibility_Level
!                              (A, Object_Decl_Level, In_Return_Context => True)
!             then
!                Accessibility_Error ("return");
              end if;
           end if;
        end Check_Aliased_Parameter;
*************** package body Sem_Res is
*** 4046,4068 ****
                   and then Has_Discriminants (Etype (Actval))
                 then
                    Analyze_And_Resolve (Actval, Base_Type (Etype (Actval)));
- 
-                --  Resolve entities with their own type, which may differ from
-                --  the type of a reference in a generic context because of the
-                --  trick used in Save_Global_References.Set_Global_Type to set
-                --  full views forcefully, which did not anticipate the need to
-                --  re-analyze default values in calls.
- 
-                elsif Is_Entity_Name (Actval) then
-                   Analyze_And_Resolve (Actval, Etype (Entity (Actval)));
- 
-                --  Ditto for calls whose name is an entity, for the same reason
- 
-                elsif Nkind (Actval) = N_Function_Call
-                  and then Is_Entity_Name (Name (Actval))
-                then
-                   Analyze_And_Resolve (Actval, Etype (Entity (Name (Actval))));
- 
                 else
                    Analyze_And_Resolve (Actval, Etype (Actval));
                 end if;
--- 4046,4051 ----
*************** package body Sem_Res is
*** 4496,4516 ****
                    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
-             --  finalization list.
- 
-             elsif Expander_Active
-               and then Nkind (A) = N_Function_Call
-               and then Is_Limited_Record (Etype (F))
-               and then not Is_Constrained (Etype (F))
-               and then (Needs_Finalization (Etype (F))
-                          or else Has_Task (Etype (F)))
-             then
-                Establish_Transient_Scope (A, Manage_Sec_Stack => False);
-                Resolve (A, Etype (F));
- 
              --  A small optimization: if one of the actuals is a concatenation
              --  create a block around a procedure call to recover stack space.
              --  This alleviates stack usage when several procedure calls in
--- 4479,4484 ----
*************** package body Sem_Res is
*** 4571,4576 ****
--- 4539,4546 ----
                         and then Is_Interface (DDT)
                       then
                          Rewrite (A, Convert_To (Etype (F), Relocate_Node (A)));
+                         Flag_Interface_Pointer_Displacement (A);
+ 
                          Analyze_And_Resolve (A, Etype (F),
                            Suppress => Access_Check);
                       end if;
*************** package body Sem_Res is
*** 4849,4854 ****
--- 4819,4825 ----
  
                 if not Is_OK_Variable_For_Out_Formal (A)
                   and then not Is_Init_Proc (Nam)
+                  and then not Is_Expanded_Constructor_Call (N)
                 then
                    Error_Msg_NE ("actual for& must be a variable", A, F);
  
*************** package body Sem_Res is
*** 5279,5285 ****
              end if;
  
              --  The actual parameter of a Ghost subprogram whose formal is of
!             --  mode IN OUT or OUT must be a Ghost variable (SPARK RM 6.9(12)).
  
              if Comes_From_Source (Nam)
                and then Is_Ghost_Entity (Nam)
--- 5250,5256 ----
              end if;
  
              --  The actual parameter of a Ghost subprogram whose formal is of
!             --  mode IN OUT or OUT must be a Ghost variable (SPARK RM 6.9(15)).
  
              if Comes_From_Source (Nam)
                and then Is_Ghost_Entity (Nam)
*************** package body Sem_Res is
*** 6960,6966 ****
                    --  checkable, the case of calling an immediately containing
                    --  subprogram is easy to catch.
  
!                   if not Is_Ignored_Ghost_Entity (Nam) then
                       Check_Restriction (No_Recursion, N);
                    end if;
  
--- 6931,6937 ----
                    --  checkable, the case of calling an immediately containing
                    --  subprogram is easy to catch.
  
!                   if not Is_Ignored_Ghost_Entity_In_Codegen (Nam) then
                       Check_Restriction (No_Recursion, N);
                    end if;
  
*************** package body Sem_Res is
*** 7070,7079 ****
  
        --  b) Subprograms that are ignored ghost entities do not return anything
  
!       --  c) Calls to a build-in-place function, since such functions may
!       --  allocate their result directly in a target object, and cases where
!       --  the result does get allocated in the secondary stack are checked for
!       --  within the specialized Exp_Ch6 procedures for expanding those
        --  build-in-place calls.
  
        --  d) Calls to inlinable expression functions do not use the secondary
--- 7041,7051 ----
  
        --  b) Subprograms that are ignored ghost entities do not return anything
  
!       --  c) Calls to a build-in-place function, since such functions allocate
!       --  their result directly in the target object or on the secondary stack,
!       --  and cases where the target object needs to be created and destroyed
!       --  on exit to the context, or the secondary stack is used, are checked
!       --  for within the specialized Exp_Ch6 procedures for expanding those
        --  build-in-place calls.
  
        --  d) Calls to inlinable expression functions do not use the secondary
*************** package body Sem_Res is
*** 7098,7104 ****
          and then Ekind (Nam) in E_Function | E_Subprogram_Type
          and then Requires_Transient_Scope (Etype (Nam))
          and then not Is_Intrinsic_Subprogram (Nam)
!         and then not Is_Ignored_Ghost_Entity (Nam)
          and then not Is_Build_In_Place_Function (Nam)
          and then not Is_Inlinable_Expression_Function (Nam)
          and then not (Is_Inlined (Nam)
--- 7070,7076 ----
          and then Ekind (Nam) in E_Function | E_Subprogram_Type
          and then Requires_Transient_Scope (Etype (Nam))
          and then not Is_Intrinsic_Subprogram (Nam)
!         and then not Is_Ignored_Ghost_Entity_In_Codegen (Nam)
          and then not Is_Build_In_Place_Function (Nam)
          and then not Is_Inlinable_Expression_Function (Nam)
          and then not (Is_Inlined (Nam)
*************** package body Sem_Res is
*** 7276,7282 ****
  
        if Restriction_Check_Required (No_Relative_Delay)
          and then Is_RTE (Nam, RE_Set_Handler)
!         and then Is_RTE (Etype (Next_Actual (First_Actual (N))), RE_Time_Span)
        then
           Check_Restriction (No_Relative_Delay, N);
        end if;
--- 7248,7256 ----
  
        if Restriction_Check_Required (No_Relative_Delay)
          and then Is_RTE (Nam, RE_Set_Handler)
!         and then
!           Is_RTE
!             (Base_Type (Etype (Next_Actual (First_Actual (N)))), RE_Time_Span)
        then
           Check_Restriction (No_Relative_Delay, N);
        end if;
*************** package body Sem_Res is
*** 7772,7777 ****
--- 7746,7756 ----
        Decl  : Node_Id;
        Local : Entity_Id := Empty;
  
+       Save_Hidden_Map : constant Elist_Id := New_Elmt_List;
+       --  Stores the map of identifiers, and corresponding entities, that
+       --  temporarily loose visibility due to homonym declarations in the
+       --  current declare expression.
+ 
        function Replace_Local (N  : Node_Id) return Traverse_Result;
        --  Use a tree traversal to replace each occurrence of the name of
        --  a local object declared in the construct, with the corresponding
*************** package body Sem_Res is
*** 7803,7808 ****
--- 7782,7788 ----
           then
              Set_Entity (N, Local);
              Set_Etype (N, Etype (Local));
+             Generate_Reference (Local, N);
           end if;
  
           return OK;
*************** package body Sem_Res is
*** 7835,7840 ****
--- 7815,7833 ----
                    Next (D);
                 end loop;
              end;
+ 
+             --  Homonyms of the new local declaration are saved to be restored
+             --  after the resolution of the declare block's expression.
+ 
+             Append_Elmt (Local, Save_Hidden_Map);
+             Append_Elmt (Get_Name_Entity_Id (Chars (Local)), Save_Hidden_Map);
+ 
+             --  Update the references to local in the name table and make them
+             --  immediately visible to be available within the expression.
+ 
+             Set_Current_Entity (Local);
+             Set_Is_Immediately_Visible (Local);
+             Set_Is_Not_Self_Hidden (Local);
           end if;
  
           Next (Decl);
*************** package body Sem_Res is
*** 7850,7855 ****
--- 7843,7862 ----
  
        Resolve (Expr, Typ);
        Check_Unset_Reference (Expr);
+ 
+       --  Restore any hidden entity homonyms to a local one
+ 
+       declare
+          Cursor : Elmt_Id := First_Elmt (Save_Hidden_Map);
+          Name : Name_Id;
+       begin
+          while Present (Cursor) loop
+             Name := Chars (Node (Cursor));
+             Next_Elmt (Cursor);
+             Set_Name_Entity_Id (Name, Node (Cursor));
+             Next_Elmt (Cursor);
+          end loop;
+       end;
     end Resolve_Declare_Expression;
  
     -----------------------------------
*************** package body Sem_Res is
*** 8152,8157 ****
--- 8159,8165 ----
             and then not Preanalysis_Active
             and then not Is_Imported (E)
             and then Nkind (Parent (E)) /= N_Object_Renaming_Declaration
+            and then not Needs_Construction (Etype (E))
           then
              if No_Initialization (Parent (E))
                or else (Present (Full_View (E))
*************** package body Sem_Res is
*** 9277,9295 ****
           Get_First_Interp (P, I, It);
  
           while Present (It.Typ) loop
!             if Is_Access_Type (It.Typ)
!               and then Covers (Typ, Designated_Type (It.Typ))
!             then
!                if No (P_Typ) then
!                   P_Typ := It.Typ;
!                end if;
  
!             --  Remove access types that do not match, but preserve access
!             --  to subprogram interpretations, in case a further dereference
!             --  is needed (see below).
  
!             elsif Ekind (It.Typ) /= E_Access_Subprogram_Type then
!                Remove_Interp (I);
              end if;
  
              Get_Next_Interp (I, It);
--- 9285,9303 ----
           Get_First_Interp (P, I, It);
  
           while Present (It.Typ) loop
!             if Is_Access_Type (It.Typ) then
!                if Covers (Typ, Designated_Type (It.Typ)) then
!                   if No (P_Typ) then
!                      P_Typ := It.Typ;
!                   end if;
  
!                --  Remove access types that do not match, but preserve access
!                --  to subprogram interpretations, in case a further dereference
!                --  is needed (see below).
  
!                elsif Ekind (It.Typ) /= E_Access_Subprogram_Type then
!                   Remove_Interp (I);
!                end if;
              end if;
  
              Get_Next_Interp (I, It);
*************** package body Sem_Res is
*** 10103,10109 ****
           Set_Etype (N, Any_Type);
           return;
  
!       elsif Is_Modular_Integer_Type (Typ)
          and then Etype (Left_Opnd (N)) = Universal_Integer
          and then Etype (Right_Opnd (N)) = Universal_Integer
        then
--- 10111,10117 ----
           Set_Etype (N, Any_Type);
           return;
  
!       elsif Has_Modular_Operations (Typ)
          and then Etype (Left_Opnd (N)) = Universal_Integer
          and then Etype (Right_Opnd (N)) = Universal_Integer
        then
*************** package body Sem_Res is
*** 10814,10820 ****
          and then Is_Character_Type (Component_Type (Typ))
        then
           Set_String_Literal_Subtype (Op1, Typ);
!          Set_String_Literal_Subtype (Op2, Typ);
        end if;
     end Resolve_Op_Concat_Rest;
  
--- 10822,10833 ----
          and then Is_Character_Type (Component_Type (Typ))
        then
           Set_String_Literal_Subtype (Op1, Typ);
! 
!          --  See Resolve_String_Literal for the asymmetry
! 
!          if Ekind (Etype (Op2)) /= E_String_Literal_Subtype then
!             Set_String_Literal_Subtype (Op2, Typ);
!          end if;
        end if;
     end Resolve_Op_Concat_Rest;
  
*************** package body Sem_Res is
*** 11310,11321 ****
  
              if Den /= 1 then
  
!                --  For a source program literal for a decimal fixed-point type,
!                --  this is statically illegal (RM 4.9(36)).
  
!                if Is_Decimal_Fixed_Point_Type (Typ)
                   and then Actual_Typ = Universal_Real
!                  and then Comes_From_Source (N)
                 then
                    Error_Msg_N ("value has extraneous low order digits", N);
                 end if;
--- 11323,11335 ----
  
              if Den /= 1 then
  
!                --  This is illegal for the value of a static expression of type
!                --  universal_real if the expected type is a decimal fixed-point
!                --  type (RM 4.9(36/2)).
  
!                if Is_OK_Static_Expression (N)
                   and then Actual_Typ = Universal_Real
!                  and then Is_Decimal_Fixed_Point_Type (Typ)
                 then
                    Error_Msg_N ("value has extraneous low order digits", N);
                 end if;
*************** package body Sem_Res is
*** 11433,11448 ****
                 T := It.Typ;
              end if;
  
!             --  Locate selected component. For a private prefix the selector
              --  can denote a discriminant.
  
              if Is_Record_Type (T) or else Is_Private_Type (T) then
  
!                --  The visible components of a class-wide type are those of
!                --  the root type.
  
                 if Is_Class_Wide_Type (T) then
!                   T := Etype (T);
                 end if;
  
                 Comp := First_Entity (T);
--- 11447,11462 ----
                 T := It.Typ;
              end if;
  
!             --  Find the selected component. For a private prefix, the selector
              --  can denote a discriminant.
  
              if Is_Record_Type (T) or else Is_Private_Type (T) then
  
!                --  If the prefix has a class-wide type, the visible components
!                --  are those of the root type.
  
                 if Is_Class_Wide_Type (T) then
!                   T := Root_Type (T);
                 end if;
  
                 Comp := First_Entity (T);
*************** package body Sem_Res is
*** 12034,12044 ****
     begin
        --  For a string appearing in a concatenation, defer creation of the
        --  string_literal_subtype until the end of the resolution of the
!       --  concatenation, because the literal may be constant-folded away. This
!       --  is a useful optimization for long concatenation expressions.
  
        --  If the string is an aggregate built for a single character (which
!       --  happens in a non-static context) or a is null string to which special
        --  checks may apply, we build the subtype. Wide strings must also get a
        --  string subtype if they come from a one character aggregate. Strings
        --  generated by attributes might be static, but it is often hard to
--- 12048,12061 ----
     begin
        --  For a string appearing in a concatenation, defer creation of the
        --  string_literal_subtype until the end of the resolution of the
!       --  concatenation, because the literal may be constant-folded away.
!       --  This is a useful optimization for long concatenation expressions,
!       --  but it cannot be done if the string is the right operand and the
!       --  left operand may be null, because 4.5.3(5) says that the result is
!       --  the right operand and, in particular, has its original subtype.
  
        --  If the string is an aggregate built for a single character (which
!       --  happens in a non-static context) or is a null string to which special
        --  checks may apply, we build the subtype. Wide strings must also get a
        --  string subtype if they come from a one character aggregate. Strings
        --  generated by attributes might be static, but it is often hard to
*************** package body Sem_Res is
*** 12051,12056 ****
--- 12068,12078 ----
            or else Nkind (Parent (N)) /= N_Op_Concat
            or else (N /= Left_Opnd (Parent (N))
                      and then N /= Right_Opnd (Parent (N)))
+           or else (N = Right_Opnd (Parent (N))
+                     and then
+                       (Nkind (Left_Opnd (Parent (N))) /= N_String_Literal
+                         or else
+                           String_Length (Strval (Left_Opnd (Parent (N)))) = 0))
            or else ((Typ = Standard_Wide_String
                        or else Typ = Standard_Wide_Wide_String)
                      and then Nkind (Original_Node (N)) /= N_String_Literal);
*************** package body Sem_Res is
*** 12252,12263 ****
           end if;
        end if;
  
!       --  If we got here we meed to transform the string literal into the
        --  equivalent qualified positional array aggregate. This is rather
        --  heavy artillery for this situation, but it is hard work to avoid.
  
        declare
           Lits : constant List_Id := New_List;
           P    : Source_Ptr := Loc + 1;
           C    : Char_Code;
  
--- 12274,12286 ----
           end if;
        end if;
  
!       --  If we got here, we need to transform the string literal into the
        --  equivalent qualified positional array aggregate. This is rather
        --  heavy artillery for this situation, but it is hard work to avoid.
  
        declare
           Lits : constant List_Id := New_List;
+          Lit  : Node_Id;
           P    : Source_Ptr := Loc + 1;
           C    : Char_Code;
  
*************** package body Sem_Res is
*** 12270,12279 ****
              C := Get_String_Char (Str, J);
              Set_Character_Literal_Name (C);
  
!             Append_To (Lits,
                Make_Character_Literal (P,
                  Chars              => Name_Find,
!                 Char_Literal_Value => UI_From_CC (C)));
  
              if In_Character_Range (C) then
                 P := P + 1;
--- 12293,12304 ----
              C := Get_String_Char (Str, J);
              Set_Character_Literal_Name (C);
  
!             Lit :=
                Make_Character_Literal (P,
                  Chars              => Name_Find,
!                 Char_Literal_Value => UI_From_CC (C));
!             Preserve_Comes_From_Source (Lit, N);
!             Append_To (Lits, Lit);
  
              if In_Character_Range (C) then
                 P := P + 1;
*************** package body Sem_Res is
*** 12467,12482 ****
           Orig_N := Original_Node (Expression (Orig_N));
           Orig_T := Target_Typ;
  
-          --  If the node is part of a larger expression, the Target_Type
-          --  may not be the original type of the node if the context is a
-          --  condition. Recover original type to see if conversion is needed.
- 
-          if Is_Boolean_Type (Orig_T)
-           and then Nkind (Parent (N)) in N_Op
-          then
-             Orig_T := Etype (Parent (N));
-          end if;
- 
           --  If we have an entity name, then give the warning if the entity
           --  is the right type, or if it is a loop parameter covered by the
           --  original type (that's needed because loop parameters have an
--- 12492,12497 ----
*************** package body Sem_Res is
*** 12552,12557 ****
--- 12567,12582 ----
              then
                 null;
  
+             --  Do not warn if original source-level conversion was
+             --  between two different types.
+ 
+             elsif Nkind (Original_Node (N)) = N_Type_Conversion
+               and then
+                 Base_Type (Etype (Subtype_Mark (Original_Node (N))))
+                   /= Base_Type (Etype (Expression (Original_Node (N))))
+             then
+                null;
+ 
              --  Here we give the redundant conversion warning. If it is an
              --  entity, give the name of the entity in the message. If not,
              --  just mention the expression.
*************** package body Sem_Res is
*** 12738,12744 ****
          and then Nkind (N) = N_Op_Minus
          and then Nkind (R) = N_Integer_Literal
          and then Comes_From_Source (R)
!         and then Is_Modular_Integer_Type (B_Typ)
          and then Nkind (Parent (N)) not in N_Qualified_Expression
                                           | N_Type_Conversion
          and then Expr_Value (R) > Uint_1
--- 12763,12769 ----
          and then Nkind (N) = N_Op_Minus
          and then Nkind (R) = N_Integer_Literal
          and then Comes_From_Source (R)
!         and then Has_Modular_Operations (B_Typ)
          and then Nkind (Parent (N)) not in N_Qualified_Expression
                                           | N_Type_Conversion
          and then Expr_Value (R) > Uint_1
*************** package body Sem_Res is
*** 13231,13237 ****
              if Length = 1 then
                 High_Bound := New_Copy_Tree (Low_Bound);
  
!             elsif Is_Signed_Integer_Type (Index_Type) then
                 High_Bound :=
                   Make_Op_Add (Loc,
                     Left_Opnd  => New_Copy_Tree (Low_Bound),
--- 13256,13262 ----
              if Length = 1 then
                 High_Bound := New_Copy_Tree (Low_Bound);
  
!             elsif Has_Overflow_Operations (Index_Type) then
                 High_Bound :=
                   Make_Op_Add (Loc,
                     Left_Opnd  => New_Copy_Tree (Low_Bound),
*************** package body Sem_Res is
*** 13708,13713 ****
--- 13733,13749 ----
           return True;
        end if;
  
+       --  Skip the direct interpretation for a limited type that has implicit
+       --  dereference, since it cannot be used for operands of an assignment,
+       --  per AI22-0112 which restores the Ada 95 rule for all versions.
+ 
+       if Present (It.Typ)
+         and then Is_Limited_Type (It.Typ)
+         and then Has_Implicit_Dereference (It.Typ)
+       then
+          Get_Next_Interp (I, It);
+       end if;
+ 
        I1  := I;
        It1 := It;
  
*************** package body Sem_Res is
*** 13733,13740 ****
  
              --  Report the first two interpretations
  
!             Report_Interpretation (Operand, It.Nam, It.Typ);
!             Report_Interpretation (Operand, N1, T1);
  
              return True;
           end if;
--- 13769,13778 ----
  
              --  Report the first two interpretations
  
!             if Report_Errors then
!                Report_Interpretation (Operand, It.Nam, It.Typ);
!                Report_Interpretation (Operand, N1, T1);
!             end if;
  
              return True;
           end if;
*************** package body Sem_Res is
*** 14314,14424 ****
        --  reference the corresponding dispatch table.
  
        elsif not Comes_From_Source (N)
           and then Is_Access_Type (Target_Type)
           and then Is_Interface (Designated_Type (Target_Type))
        then
           return True;
  
-       --  Ada 2005 (AI-251): Anonymous access types where target references an
-       --  interface type.
- 
-       elsif Is_Access_Type (Opnd_Type)
-         and then Ekind (Target_Type) in
-                    E_General_Access_Type | E_Anonymous_Access_Type
-         and then Is_Interface (Directly_Designated_Type (Target_Type))
-       then
-          --  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.
- 
-          --  If the operand is a rewriting of an allocator no check is needed
-          --  because there are no accessibility issues.
- 
-          if Nkind (Original_Node (N)) = N_Allocator then
-             null;
- 
-          elsif Ekind (Target_Type) /= E_Anonymous_Access_Type then
-             if Type_Access_Level (Opnd_Type) >
-                Deepest_Type_Access_Level (Target_Type)
-             then
-                --  In an instance, this is a run-time check, but one we know
-                --  will fail, so generate an appropriate warning. The raise
-                --  will be generated by Expand_N_Type_Conversion.
- 
-                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;
- 
-             --  Special accessibility checks are needed in the case of access
-             --  discriminants declared for a limited type.
- 
-             elsif Ekind (Opnd_Type) = E_Anonymous_Access_Type
-               and then not Is_Local_Anonymous_Access (Opnd_Type)
-             then
-                --  When the operand is a selected access discriminant the check
-                --  needs to be made against the level of the object denoted by
-                --  the prefix of the selected name (Accessibility_Level handles
-                --  checking the prefix of the operand for this case).
- 
-                if Nkind (Operand) = N_Selected_Component
-                  and then Static_Accessibility_Level
-                             (Operand, Zero_On_Dynamic_Level)
-                               > Deepest_Type_Access_Level (Target_Type)
-                then
-                   --  In an instance, this is a run-time check, but one we know
-                   --  will fail, so generate an appropriate warning. The raise
-                   --  will be generated by Expand_N_Type_Conversion.
- 
-                   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;
- 
-                --  The case of a reference to an access discriminant from
-                --  within a limited type declaration (which will appear as
-                --  a discriminal) is always illegal because the level of the
-                --  discriminant is considered to be deeper than any (nameable)
-                --  access type.
- 
-                if Is_Entity_Name (Operand)
-                  and then not Is_Local_Anonymous_Access (Opnd_Type)
-                  and then
-                    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;
-          end if;
- 
-          return True;
- 
        --  General and anonymous access types
  
        elsif Ekind (Target_Type) in
--- 14352,14364 ----
        --  reference the corresponding dispatch table.
  
        elsif not Comes_From_Source (N)
+          and then Nkind (N) = N_Type_Conversion
           and then Is_Access_Type (Target_Type)
           and then Is_Interface (Designated_Type (Target_Type))
+          and then Is_Interface_Pointer_Displacement (N)
        then
           return True;
  
        --  General and anonymous access types
  
        elsif Ekind (Target_Type) in
*************** package body Sem_Res is
*** 14473,14482 ****
           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.
  
!          if Ekind (Target_Type) /= E_Anonymous_Access_Type
             or else Is_Local_Anonymous_Access (Target_Type)
             or else Nkind (Associated_Node_For_Itype (Target_Type)) =
                       N_Object_Declaration
--- 14413,14428 ----
           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.
  
!          --  If the operand is a rewriting of an allocator no check is needed
!          --  because there are no accessibility issues.
! 
!          if Nkind (Original_Node (N)) = N_Allocator then
!             null;
! 
!          elsif Ekind (Target_Type) /= E_Anonymous_Access_Type
             or else Is_Local_Anonymous_Access (Target_Type)
             or else Nkind (Associated_Node_For_Itype (Target_Type)) =
                       N_Object_Declaration
*************** package body Sem_Res is
*** 14578,14601 ****
              --  Check if the operand is deeper than the target type, taking
              --  care to avoid the case where we are converting a result of a
              --  function returning an anonymous access type since the "master
!             --  of the call" would be target type of the conversion unless
!             --  the target type is anonymous access as well - see RM 3.10.2
!             --  (10.3/3).
  
              --  Note that when the restriction No_Dynamic_Accessibility_Checks
!             --  is in effect wei also want to proceed with the conversion check
              --  described above.
  
              elsif Type_Access_Level (Opnd_Type, Assoc_Ent => Operand)
                      > Deepest_Type_Access_Level (Target_Type)
                and then (Nkind (Associated_Node_For_Itype (Opnd_Type))
                            /= N_Function_Specification
                          or else Ekind (Target_Type) in Anonymous_Access_Kind
                          or else No_Dynamic_Accessibility_Checks_Enabled (N))
! 
!               --  Check we are not in a return value ???
! 
!               and then (not In_Return_Value (N)
                           or else
                             Nkind (Associated_Node_For_Itype (Target_Type))
                               = N_Component_Declaration)
--- 14524,14549 ----
              --  Check if the operand is deeper than the target type, taking
              --  care to avoid the case where we are converting a result of a
              --  function returning an anonymous access type since the "master
!             --  of the call" would be target type of the conversion, unless
!             --  the target type is anonymous access as well (RM 3.10.2(10.3)).
  
              --  Note that when the restriction No_Dynamic_Accessibility_Checks
!             --  is in effect we also want to proceed with the conversion check
              --  described above.
  
+             --  Moreover, in the latter case, if the function call defines the
+             --  result of the enclosing function, the master of the call is the
+             --  master of the call to the enclosing function (RM 3.10.2(10.3),
+             --  3.10.2(14) and 3.10.2(10.5)).
+ 
              elsif Type_Access_Level (Opnd_Type, Assoc_Ent => Operand)
                      > Deepest_Type_Access_Level (Target_Type)
                and then (Nkind (Associated_Node_For_Itype (Opnd_Type))
                            /= N_Function_Specification
                          or else Ekind (Target_Type) in Anonymous_Access_Kind
                          or else No_Dynamic_Accessibility_Checks_Enabled (N))
!               and then (Nkind (Operand) /= N_Function_Call
!                          or else not In_Return_Value (N)
                           or else
                             Nkind (Associated_Node_For_Itype (Target_Type))
                               = N_Component_Declaration)
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_res.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_res.ads
*** gcc-15.2.0/gcc/ada/sem_res.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_res.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 133,138 ****
--- 133,144 ----
     --  own type. For now we assume that the prefix cannot be overloaded and
     --  the name of the entry plays no role in the resolution.
  
+    procedure Resolve_Implicit_Dereference (P : Node_Id);
+    --  Called when P is the prefix of an indexed component, or of a selected
+    --  component, or of a slice. If P is of an access type, we unconditionally
+    --  rewrite it as an explicit dereference. This ensures that the expander
+    --  and the code generator have a fully explicit tree to work with.
+ 
     procedure Resolve_Membership_Equality (N : Node_Id; Typ : Entity_Id);
     --  Resolve the equality operator in an individual membership test
  
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_scil.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_scil.adb
*** gcc-15.2.0/gcc/ada/sem_scil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_scil.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,35 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Nlists;         use Nlists;
  with Rtsfind;        use Rtsfind;
  with Sem_Aux;        use Sem_Aux;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Stand;          use Stand;
  with SCIL_LL;        use SCIL_LL;
--- 23,33 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_scil.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_scil.ads
*** gcc-15.2.0/gcc/ada/sem_scil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_scil.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2009-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_smem.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_smem.adb
*** gcc-15.2.0/gcc/ada/sem_smem.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_smem.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,36 ****
  ------------------------------------------------------------------------------
  
  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 Namet;          use Namet;
  with Sem_Aux;        use Sem_Aux;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Snames;         use Snames;
  
--- 24,34 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_smem.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_smem.ads
*** gcc-15.2.0/gcc/ada/sem_smem.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_smem.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1998-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_type.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_type.adb
*** gcc-15.2.0/gcc/ada/sem_type.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_type.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Atree;          use Atree;
  with Alloc;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
--- 27,32 ----
*************** with Sem_Disp;       use Sem_Disp;
*** 46,52 ****
  with Sem_Dist;       use Sem_Dist;
  with Sem_Util;       use Sem_Util;
  with Stand;          use Stand;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 45,50 ----
*************** package body Sem_Type is
*** 109,115 ****
        Equal      => "=");
  
     Last_Overloaded : Node_Id := Empty;
!    --  Overloaded node after initializing a new collection of intepretation
  
     -------------------------------------
     -- Handling of Overload Resolution --
--- 107,113 ----
        Equal      => "=");
  
     Last_Overloaded : Node_Id := Empty;
!    --  Overloaded node after initializing a new collection of interpretations
  
     -------------------------------------
     -- Handling of Overload Resolution --
*************** package body Sem_Type is
*** 478,490 ****
           then
              Add_Entry (Entity (Name (N)), Etype (N));
  
           --  If this is an indirect call there will be no name associated
           --  with the previous entry. To make diagnostics clearer, save
           --  Subprogram_Type of first interpretation, so that the error will
           --  point to the anonymous access to subprogram, not to the result
           --  type of the call itself.
  
!          elsif (Nkind (N)) = N_Function_Call
             and then Nkind (Name (N)) = N_Explicit_Dereference
             and then Is_Overloaded (Name (N))
           then
--- 476,494 ----
           then
              Add_Entry (Entity (Name (N)), Etype (N));
  
+          elsif Nkind (N) = N_Function_Call
+            and then Nkind (Name (N)) = N_Selected_Component
+            and then Is_Entity_Name (Selector_Name (Name (N)))
+          then
+             Add_Entry (Entity (Selector_Name (Name (N))), Etype (N));
+ 
           --  If this is an indirect call there will be no name associated
           --  with the previous entry. To make diagnostics clearer, save
           --  Subprogram_Type of first interpretation, so that the error will
           --  point to the anonymous access to subprogram, not to the result
           --  type of the call itself.
  
!          elsif Nkind (N) = N_Function_Call
             and then Nkind (Name (N)) = N_Explicit_Dereference
             and then Is_Overloaded (Name (N))
           then
*************** package body Sem_Type is
*** 499,508 ****
                 Add_Entry (It.Nam, Etype (N));
              end;
  
!          else
!             --  Overloaded prefix in indexed or selected component, or call
!             --  whose name is an expression or another call.
  
              Add_Entry (Etype (N), Etype (N));
           end if;
  
--- 503,519 ----
                 Add_Entry (It.Nam, Etype (N));
              end;
  
!          --  If this is a generalized indexing, treat it as a function call
! 
!          elsif Nkind (N) = N_Indexed_Component
!            and then Present (Generalized_Indexing (N))
!          then
!             Add_Entry (Entity (Name (Generalized_Indexing (N))), Etype (N));
! 
!          --  An overloaded prefix in indexed or selected component, or a call
!          --  whose name is an expression or another call.
  
+          else
              Add_Entry (Etype (N), Etype (N));
           end if;
  
*************** package body Sem_Type is
*** 610,623 ****
        First_Interp := All_Interp.Last;
        Add_One_Interp (N, Ent, Etype (N));
  
!       --  For expanded name, pick up all additional entities from the
!       --  same scope, since these are obviously also visible. Note that
!       --  these are not necessarily contiguous on the homonym chain.
  
        if Nkind (N) = N_Expanded_Name then
           H := Homonym (Ent);
           while Present (H) loop
!             if Scope (H) = Scope (Entity (N)) then
                 Add_One_Interp (N, H, Etype (H));
              end if;
  
--- 621,637 ----
        First_Interp := All_Interp.Last;
        Add_One_Interp (N, Ent, Etype (N));
  
!       --  For an expanded name, pick up additional visible entities from
!       --  the same scope. Note that these are not necessarily contiguous
!       --  on the homonym chain.
  
        if Nkind (N) = N_Expanded_Name then
           H := Homonym (Ent);
           while Present (H) loop
!             if Scope (H) = Scope (Entity (N))
!               and then (not Is_Hidden (H)
!                          or else Is_Immediately_Visible (H))
!             then
                 Add_One_Interp (N, H, Etype (H));
              end if;
  
*************** package body Sem_Type is
*** 1012,1019 ****
        elsif T2 = Any_Composite and then Is_Aggregate_Type (T1) then
           return True;
  
!       --  In Ada_2022, an aggregate is compatible with the type that
!       --  as the corresponding aspect.
  
        elsif Ada_Version >= Ada_2022
          and then T2 = Any_Composite
--- 1026,1033 ----
        elsif T2 = Any_Composite and then Is_Aggregate_Type (T1) then
           return True;
  
!       --  In Ada 2022, an aggregate is compatible with the type that
!       --  has the corresponding aspect.
  
        elsif Ada_Version >= Ada_2022
          and then T2 = Any_Composite
*************** package body Sem_Type is
*** 1141,1147 ****
        --  A boolean operation on integer literals is compatible with modular
        --  context.
  
!       elsif T2 = Any_Modular and then Is_Modular_Integer_Type (T1) then
           return True;
  
        --  The actual type may be the result of a previous error
--- 1155,1161 ----
        --  A boolean operation on integer literals is compatible with modular
        --  context.
  
!       elsif T2 = Any_Modular and then Has_Modular_Operations (T1) then
           return True;
  
        --  The actual type may be the result of a previous error
*************** package body Sem_Type is
*** 2682,2688 ****
        end if;
  
        if Is_Concurrent_Record_Type (Target_Typ) then
!          Target_Typ := Corresponding_Concurrent_Type (Target_Typ);
        end if;
  
        Target_Typ := Base_Type (Target_Typ);
--- 2696,2707 ----
        end if;
  
        if Is_Concurrent_Record_Type (Target_Typ) then
!          if Is_Class_Wide_Type (Target_Typ) then
!             Target_Typ :=
!               Corresponding_Concurrent_Type (Root_Type (Target_Typ));
!          else
!             Target_Typ := Corresponding_Concurrent_Type (Target_Typ);
!          end if;
        end if;
  
        Target_Typ := Base_Type (Target_Typ);
*************** package body Sem_Type is
*** 3367,3376 ****
          or else (T1 = Universal_Real    and then Is_Real_Type (T2))
          or else (T1 = Universal_Fixed   and then Is_Fixed_Point_Type (T2))
          or else (T1 = Any_Fixed         and then Is_Fixed_Point_Type (T2))
!         or else (T1 = Any_Modular       and then Is_Modular_Integer_Type (T2))
          or else (T1 = Any_Character     and then Is_Character_Type (T2))
          or else (T1 = Any_String        and then Is_String_Type (T2))
          or else (T1 = Any_Composite     and then Is_Aggregate_Type (T2))
        then
           return B2;
  
--- 3386,3398 ----
          or else (T1 = Universal_Real    and then Is_Real_Type (T2))
          or else (T1 = Universal_Fixed   and then Is_Fixed_Point_Type (T2))
          or else (T1 = Any_Fixed         and then Is_Fixed_Point_Type (T2))
!         or else (T1 = Any_Modular       and then Has_Modular_Operations (T2))
          or else (T1 = Any_Character     and then Is_Character_Type (T2))
          or else (T1 = Any_String        and then Is_String_Type (T2))
          or else (T1 = Any_Composite     and then Is_Aggregate_Type (T2))
+         or else (Ada_Version >= Ada_2022
+                   and then T1 = Any_Composite
+                   and then Has_Aspect (T2, Aspect_Aggregate))
        then
           return B2;
  
*************** package body Sem_Type is
*** 3387,3396 ****
          or else (T2 = Universal_Real    and then Is_Real_Type (T1))
          or else (T2 = Universal_Fixed   and then Is_Fixed_Point_Type (T1))
          or else (T2 = Any_Fixed         and then Is_Fixed_Point_Type (T1))
!         or else (T2 = Any_Modular       and then Is_Modular_Integer_Type (T1))
          or else (T2 = Any_Character     and then Is_Character_Type (T1))
          or else (T2 = Any_String        and then Is_String_Type (T1))
          or else (T2 = Any_Composite     and then Is_Aggregate_Type (T1))
        then
           return B1;
  
--- 3409,3421 ----
          or else (T2 = Universal_Real    and then Is_Real_Type (T1))
          or else (T2 = Universal_Fixed   and then Is_Fixed_Point_Type (T1))
          or else (T2 = Any_Fixed         and then Is_Fixed_Point_Type (T1))
!         or else (T2 = Any_Modular       and then Has_Modular_Operations (T1))
          or else (T2 = Any_Character     and then Is_Character_Type (T1))
          or else (T2 = Any_String        and then Is_String_Type (T1))
          or else (T2 = Any_Composite     and then Is_Aggregate_Type (T1))
+         or else (Ada_Version >= Ada_2022
+                   and then T2 = Any_Composite
+                   and then Has_Aspect (T1, Aspect_Aggregate))
        then
           return B1;
  
*************** package body Sem_Type is
*** 3554,3560 ****
     function Valid_Boolean_Arg (T : Entity_Id) return Boolean is
     begin
        if Is_Boolean_Type (T)
!         or else Is_Modular_Integer_Type (T)
          or else T = Universal_Integer
          or else T = Any_Composite
          or else T = Raise_Type
--- 3579,3585 ----
     function Valid_Boolean_Arg (T : Entity_Id) return Boolean is
     begin
        if Is_Boolean_Type (T)
!         or else Has_Modular_Operations (T)
          or else T = Universal_Integer
          or else T = Any_Composite
          or else T = Raise_Type
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_type.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_type.ads
*** gcc-15.2.0/gcc/ada/sem_type.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_type.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_util.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_util.adb
*** gcc-15.2.0/gcc/ada/sem_util.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_util.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 35,40 ****
--- 35,41 ----
  with Exp_Util;       use Exp_Util;
  with Fname;          use Fname;
  with Freeze;         use Freeze;
+ with Ghost;          use Ghost;
  with Itypes;         use Itypes;
  with Lib;            use Lib;
  with Lib.Xref;       use Lib.Xref;
*************** with Sem_Attr;       use Sem_Attr;
*** 52,57 ****
--- 53,59 ----
  with Sem_Cat;        use Sem_Cat;
  with Sem_Ch6;        use Sem_Ch6;
  with Sem_Ch8;        use Sem_Ch8;
+ with Sem_Ch12;       use Sem_Ch12;
  with Sem_Ch13;       use Sem_Ch13;
  with Sem_Dim;        use Sem_Dim;
  with Sem_Disp;       use Sem_Disp;
*************** with Sem_Prag;       use Sem_Prag;
*** 61,67 ****
  with Sem_Res;        use Sem_Res;
  with Sem_Warn;       use Sem_Warn;
  with Sem_Type;       use Sem_Type;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 63,68 ----
*************** package body Sem_Util is
*** 333,339 ****
     -- Add_Global_Declaration --
     ----------------------------
  
!    procedure Add_Global_Declaration (N : Node_Id) is
        Aux_Node : constant Node_Id := Aux_Decls_Node (Cunit (Current_Sem_Unit));
  
     begin
--- 334,340 ----
     -- Add_Global_Declaration --
     ----------------------------
  
!    procedure Add_Global_Declaration (Decl : Node_Id) is
        Aux_Node : constant Node_Id := Aux_Decls_Node (Cunit (Current_Sem_Unit));
  
     begin
*************** package body Sem_Util is
*** 341,350 ****
           Set_Declarations (Aux_Node, New_List);
        end if;
  
!       Append_To (Declarations (Aux_Node), N);
!       Analyze (N);
     end Add_Global_Declaration;
  
     --------------------------------
     -- Address_Integer_Convert_OK --
     --------------------------------
--- 342,478 ----
           Set_Declarations (Aux_Node, New_List);
        end if;
  
!       Append_To (Declarations (Aux_Node), Decl);
!       Analyze (Decl);
     end Add_Global_Declaration;
  
+    ---------------------------
+    -- Add_Local_Declaration --
+    ---------------------------
+ 
+    procedure Add_Local_Declaration
+      (Decl : Node_Id;
+       N    : Node_Id;
+       Scop : Entity_Id)
+    is
+       function Find_Associated_Scope (N : Node_Id) return Scope_Kind_Id;
+       --  Return the scope associated with the declarative part of N
+ 
+       ---------------------------
+       -- Find_Associated_Scope --
+       ---------------------------
+ 
+       function Find_Associated_Scope (N : Node_Id) return Scope_Kind_Id is
+       begin
+          case Nkind (N) is
+             when N_Block_Statement =>
+                return Entity (Identifier (N));
+ 
+             when N_Compilation_Unit
+                | N_Compilation_Unit_Aux
+             =>
+                return Standard_Standard;
+ 
+             when N_Package_Specification
+                | N_Protected_Definition
+                | N_Task_Definition
+             =>
+                return Defining_Entity (Parent (N));
+ 
+             when N_Entry_Body
+                | N_Package_Body
+                | N_Protected_Body
+                | N_Task_Body
+             =>
+                return Corresponding_Spec (N);
+ 
+             when N_Subprogram_Body =>
+                if Acts_As_Spec (N) then
+                   return Defining_Entity (N);
+                else
+                   return Corresponding_Spec (N);
+                end if;
+ 
+             when others =>
+                raise Program_Error;
+          end case;
+       end Find_Associated_Scope;
+ 
+       --  Local variables
+ 
+       Nod : Node_Id;
+       Par : Node_Id;
+ 
+    --  Start of processing for Add_Local_Declaration
+ 
+    begin
+       Nod := N;
+       Par := Parent (Nod);
+ 
+       --  Look for the innermost enclosing construct with a declarative part
+ 
+       while Nkind (Par) not in N_Block_Statement
+                              | N_Compilation_Unit
+                              | N_Compilation_Unit_Aux
+                              | N_Entry_Body
+                              | N_Package_Body
+                              | N_Package_Specification
+                              | N_Protected_Body
+                              | N_Protected_Definition
+                              | N_Subprogram_Body
+                              | N_Task_Body
+                              | N_Task_Definition
+          or else (Present (Scop) and Find_Associated_Scope (Par) /= Scop)
+       loop
+          Nod := Par;
+          Par := Parent (Nod);
+       end loop;
+ 
+       --  Compilation units do not directly have a declarative part
+ 
+       if Nkind (Par) = N_Compilation_Unit then
+          Par := Aux_Decls_Node (Par);
+       end if;
+ 
+       --  Insert Decl before N or at the end of the declarative part
+ 
+       case Nkind (Par) is
+          when N_Block_Statement
+             | N_Compilation_Unit_Aux
+             | N_Entry_Body
+             | N_Package_Body
+             | N_Protected_Body
+             | N_Subprogram_Body
+             | N_Task_Body
+          =>
+             if Is_List_Member (Nod)
+               and then List_Containing (Nod) = Declarations (Par)
+             then
+                Insert_Before (Nod, Decl);
+ 
+             else
+                if No (Declarations (Par)) then
+                   Set_Declarations (Par, New_List);
+                end if;
+ 
+                Append_To (Declarations (Par), Decl);
+             end if;
+ 
+          when N_Package_Specification
+             | N_Protected_Definition
+             | N_Task_Definition
+          =>
+             Insert_Before (Nod, Decl);
+ 
+          when others =>
+             raise Program_Error;
+       end case;
+ 
+       Push_Scope (Find_Associated_Scope (Par));
+       Analyze (Decl);
+       Pop_Scope;
+    end Add_Local_Declaration;
+ 
     --------------------------------
     -- Address_Integer_Convert_OK --
     --------------------------------
*************** package body Sem_Util is
*** 1922,1927 ****
--- 2050,2059 ----
     -- Build_Elaboration_Entity --
     ------------------------------
  
+    --  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 Build_Elaboration_Entity (N : Node_Id; Spec_Id : Entity_Id) is
        Loc      : constant Source_Ptr := Sloc (N);
        Decl     : Node_Id;
*************** package body Sem_Util is
*** 1955,1960 ****
--- 2087,2097 ----
           end if;
        end Set_Package_Name;
  
+       --  Local variables
+ 
+       Saved_Ghost_Config : constant Ghost_Config_Type := Ghost_Config;
+       --  Save the Ghost-related attributes to restore on exit
+ 
     --  Start of processing for Build_Elaboration_Entity
  
     begin
*************** package body Sem_Util is
*** 2002,2007 ****
--- 2139,2149 ----
           return;
        end if;
  
+       --  Elaboration entity is never a ghost object, regardless of the context
+       --  in which this routine is called.
+ 
+       Install_Ghost_Region (None, N, Empty);
+ 
        --  Here we need the elaboration entity
  
        --  Construct name of elaboration entity as xxx_E, where xxx is the unit
*************** package body Sem_Util is
*** 2042,2047 ****
--- 2184,2191 ----
  
        Set_Has_Qualified_Name       (Elab_Ent);
        Set_Has_Fully_Qualified_Name (Elab_Ent);
+ 
+       Restore_Ghost_Region (Saved_Ghost_Config);
     end Build_Elaboration_Entity;
  
     --------------------------------
*************** package body Sem_Util is
*** 2176,2181 ****
--- 2320,2326 ----
        Def_Id      : Entity_Id;
        Btyp        : Entity_Id := Base_Type (Typ);
  
+       Predicated_Parent_Used : Boolean := False;
     begin
        --  The Related_Node better be here or else we won't be able to
        --  attach new itypes to a node in the tree.
*************** package body Sem_Util is
*** 2190,2195 ****
--- 2335,2359 ----
          and then Present (Underlying_Type (Btyp))
        then
           Btyp := Underlying_Type (Btyp);
+ 
+       --  If a predicate has been specified for an unconstrained
+       --  ancestor subtype, then that ancestor subtype needs to also
+       --  be an ancestor subtype for the subtype we are building so that
+       --  we don't lose the predicate. It is somewhat ugly here to have
+       --  to replicate the precondition for Predicated_Parent.
+ 
+       elsif Typ in E_Array_Subtype_Id
+                    | E_Record_Subtype_Id
+                    | E_Record_Subtype_With_Private_Id
+         and then Present (Predicated_Parent (Typ))
+       then
+          --  Assert that the following assignment is only changing the
+          --  subtype, not the type.
+ 
+          pragma Assert (Base_Type (Predicated_Parent (Typ)) = Btyp);
+ 
+          Btyp := Predicated_Parent (Typ);
+          Predicated_Parent_Used := True;
        end if;
  
        Indic :=
*************** package body Sem_Util is
*** 2211,2217 ****
  
        Analyze (Subtyp_Decl, Suppress => All_Checks);
  
!       if Is_Itype (Def_Id) and then Has_Predicates (Typ) then
           Inherit_Predicate_Flags (Def_Id, Typ);
  
           --  Indicate where the predicate function may be found
--- 2375,2384 ----
  
        Analyze (Subtyp_Decl, Suppress => All_Checks);
  
!       if Is_Itype (Def_Id)
!         and then Has_Predicates (Typ)
!         and then not Predicated_Parent_Used
!       then
           Inherit_Predicate_Flags (Def_Id, Typ);
  
           --  Indicate where the predicate function may be found
*************** package body Sem_Util is
*** 2686,2691 ****
--- 2853,2867 ----
  
                    Append_Unique_Elmt (N, Identifiers_List);
                 end if;
+ 
+             --  Skip attribute references created by the compiler, typically
+             --  'Constrained applied to one of the writable actuals, to avoid
+             --  spurious errors.
+ 
+             elsif Nkind (N) = N_Attribute_Reference
+               and then not Comes_From_Source (N)
+             then
+                return Skip;
              end if;
  
              return OK;
*************** package body Sem_Util is
*** 3655,3660 ****
--- 3831,3837 ----
             Aspect_Aggregate,
             Aspect_Max_Entry_Queue_Length
             --  , Aspect_No_Controlled_Parts
+            --  , Aspect_No_Task_Parts
            );
  
        --  Note that none of these 8 aspects can be specified (for a type)
*************** package body Sem_Util is
*** 5676,5685 ****
           --  to start scanning from the incomplete view, which is earlier on
           --  the entity chain.
  
!          elsif Nkind (Parent (B_Type)) = N_Full_Type_Declaration
!            and then Present (Incomplete_View (Parent (B_Type)))
!          then
!             Id := Incomplete_View (Parent (B_Type));
  
              --  If T is a derived from a type with an incomplete view declared
              --  elsewhere, that incomplete view is irrelevant, we want the
--- 5853,5860 ----
           --  to start scanning from the incomplete view, which is earlier on
           --  the entity chain.
  
!          elsif Present (Incomplete_View (B_Type)) then
!             Id := Incomplete_View (B_Type);
  
              --  If T is a derived from a type with an incomplete view declared
              --  elsewhere, that incomplete view is irrelevant, we want the
*************** package body Sem_Util is
*** 5705,5724 ****
  
              --  Test whether the result type or any of the parameter types of
              --  each subprogram following the type match that type when the
!             --  type is declared in a package spec, is a derived type, or the
!             --  subprogram is marked as primitive. (The Is_Primitive test is
!             --  needed to find primitives of nonderived types in declarative
!             --  parts that happen to override the predefined "=" operator.)
! 
!             --  Note that generic formal subprograms are not considered to be
!             --  primitive operations and thus are never inherited.
  
              if Is_Overloadable (Id)
                and then (Is_Type_In_Pkg
!                          or else Is_Derived_Type (B_Type)
!                          or else Is_Primitive (Id))
                and then Parent_Kind (Parent (Id))
                                      not in N_Formal_Subprogram_Declaration
              then
                 Is_Prim := False;
  
--- 5880,5902 ----
  
              --  Test whether the result type or any of the parameter types of
              --  each subprogram following the type match that type when the
!             --  type is declared in a package spec, the subprogram is marked as
!             --  primitive, or the subprogram is inherited. Note that the
!             --  Is_Primitive test is needed to find primitives of nonderived
!             --  types in declarative parts that happen to override the
!             --  predefined "=" operator.
  
              if Is_Overloadable (Id)
                and then (Is_Type_In_Pkg
!                          or else Is_Primitive (Id)
!                          or else not Comes_From_Source (Id))
! 
!             --  Generic formal subprograms are not considered to be primitive
!             --  operations and thus are never inherited.
! 
                and then Parent_Kind (Parent (Id))
                                      not in N_Formal_Subprogram_Declaration
+               and then not Is_Child_Unit (Id)
              then
                 Is_Prim := False;
  
*************** package body Sem_Util is
*** 6152,6157 ****
--- 6330,6367 ----
        end if;
     end Conditional_Delay;
  
+    --------------------------------------
+    -- Direct_Attribute_Definition_Name --
+    --------------------------------------
+ 
+    function Direct_Attribute_Definition_Name
+      (Prefix : Entity_Id; Att_Name : Name_Id) return Name_Id is
+    begin
+       if Nkind (Prefix) = N_Attribute_Reference then
+          Error_Msg_N ("attribute streams not supported in "
+                       & "direct attribute definitions",
+                       Prefix);
+       end if;
+ 
+       pragma Assert (Is_Attribute_Name (Att_Name));
+       return New_External_Name
+                (Related_Id => Chars (Prefix),
+                 Suffix => "_" & Get_Name_String (Att_Name) & "_Att",
+                 Prefix => 'D');
+    end Direct_Attribute_Definition_Name;
+ 
+    --------------------------------------
+    -- Copy_Assertion_Policy_Attributes --
+    --------------------------------------
+ 
+    procedure Copy_Assertion_Policy_Attributes (New_Prag, Old_Prag : Node_Id) is
+    begin
+       Set_Is_Checked (New_Prag, Is_Checked (Old_Prag));
+       Set_Is_Ignored (New_Prag, Is_Ignored (Old_Prag));
+       Set_Pragma_Ghost_Assertion_Level
+         (New_Prag, Pragma_Ghost_Assertion_Level (Old_Prag));
+    end Copy_Assertion_Policy_Attributes;
+ 
     -------------------------
     -- Copy_Component_List --
     -------------------------
*************** package body Sem_Util is
*** 6266,6271 ****
--- 6476,6482 ----
        Def_Id      : Node_Id;
        Formal_Spec : Node_Id;
        Result      : Node_Id;
+       Level       : Entity_Id;
  
     begin
        --  The structure of the original tree must be replicated without any
*************** package body Sem_Util is
*** 6284,6289 ****
--- 6495,6501 ----
        --  Create a new entity for the defining unit name
  
        Def_Id := Defining_Unit_Name (Result);
+       Level := Ghost_Assertion_Level (Def_Id);
  
        case Nkind (Def_Id) is
           when N_Defining_Identifier =>
*************** package body Sem_Util is
*** 6294,6299 ****
--- 6506,6515 ----
           when others => raise Program_Error;
        end case;
  
+       --  Copy the relevant Ghost Assertion_Level
+ 
+       Set_Ghost_Assertion_Level (Def_Id, Level);
+ 
        Set_Defining_Unit_Name (Result, Def_Id);
  
        --  Create new entities for the formal parameters
*************** package body Sem_Util is
*** 6651,6656 ****
--- 6867,6894 ----
        end if;
     end Defining_Entity;
  
+    ---------------------------------
+    -- Defining_Entity_Of_Instance --
+    ---------------------------------
+ 
+    function Defining_Entity_Of_Instance (N : Node_Id) return Entity_Id is
+       pragma Assert (Nkind (N) in N_Generic_Instantiation);
+       Spec : constant Node_Id := Instance_Spec (N);
+ 
+    begin
+       --  Fall back to Defining_Entity in case of previous errors
+ 
+       if No (Spec) then
+          return Defining_Entity (N);
+       end if;
+ 
+       if Nkind (N) = N_Package_Instantiation then
+          return Defining_Entity (Specification (Spec));
+       else
+          return Related_Instance (Defining_Entity (Specification (Spec)));
+       end if;
+    end Defining_Entity_Of_Instance;
+ 
     ------------------------------
     -- Defining_Entity_Or_Empty --
     ------------------------------
*************** package body Sem_Util is
*** 7125,7130 ****
--- 7363,7404 ----
        return Is_Variable (N) and then Paren_Count (N) = 0;
     end Denotes_Variable;
  
+    ----------------------
+    -- Depends_On_Level --
+    ----------------------
+ 
+    function Depends_On_Level
+      (Self : Entity_Id; Other : Entity_Id) return Boolean
+    is
+       Elm : Elmt_Id;
+       Dep : Entity_Id;
+    begin
+       if No (Self) then
+          return False;
+       elsif No (Other) then
+          return False;
+       end if;
+ 
+       pragma Assert (Ekind (Self) = E_Assertion_Level);
+       pragma Assert (Ekind (Other) = E_Assertion_Level);
+ 
+       if No (Parent_Levels (Self)) then
+          return False;
+       end if;
+ 
+       Elm := First_Elmt (Parent_Levels (Self));
+       while Present (Elm) loop
+          Dep := Node (Elm);
+          if Dep = Other or else Depends_On_Level (Dep, Other) then
+             return True;
+          end if;
+ 
+          Next_Elmt (Elm);
+       end loop;
+ 
+       return False;
+    end Depends_On_Level;
+ 
     -----------------------------
     -- Depends_On_Discriminant --
     -----------------------------
*************** package body Sem_Util is
*** 8003,8008 ****
--- 8277,8283 ----
              --  but the error should be posted on it, not on the component.
  
              elsif Ekind (E) = E_Discriminant
+               and then Is_Not_Self_Hidden (E)
                and then Present (Scope (Def_Id))
                and then Scope (Def_Id) /= Current_Scope
              then
*************** package body Sem_Util is
*** 8028,8034 ****
                 --  Avoid cascaded messages with duplicate components in
                 --  derived types.
  
!                if Ekind (E) in E_Component | E_Discriminant then
                    return;
                 end if;
              end if;
--- 8303,8312 ----
                 --  Avoid cascaded messages with duplicate components in
                 --  derived types.
  
!                if Ekind (E) = E_Component
!                  or else (Ekind (E) = E_Discriminant
!                           and then Is_Not_Self_Hidden (E))
!                then
                    return;
                 end if;
              end if;
*************** package body Sem_Util is
*** 8041,8078 ****
                 Error_Msg_N ("\generic units cannot be overloaded", Def_Id);
              end if;
  
!             --  If entity is in standard, then we are in trouble, because it
!             --  means that we have a library package with a duplicated name.
!             --  That's hard to recover from, so abort.
  
              if S = Standard_Standard then
                 raise Unrecoverable_Error;
- 
-             --  Otherwise we continue with the declaration. Having two
-             --  identical declarations should not cause us too much trouble.
- 
-             else
-                null;
              end if;
           end if;
        end if;
  
        --  If we fall through, declaration is OK, at least OK enough to continue
  
!       --  If Def_Id is a discriminant or a record component we are in the midst
!       --  of inheriting components in a derived record definition. Preserve
!       --  their Ekind and Etype.
! 
!       if Ekind (Def_Id) in E_Discriminant | E_Component then
!          null;
! 
!       --  If a type is already set, leave it alone (happens when a type
!       --  declaration is reanalyzed following a call to the optimizer).
! 
!       elsif Present (Etype (Def_Id)) then
!          null;
! 
!       else
           Set_Etype (Def_Id, Any_Type); -- avoid cascaded errors
        end if;
  
--- 8319,8336 ----
                 Error_Msg_N ("\generic units cannot be overloaded", Def_Id);
              end if;
  
!             --  Abort for duplicated root library unit, which is hard to
!             --  recover from.
  
              if S = Standard_Standard then
                 raise Unrecoverable_Error;
              end if;
           end if;
        end if;
  
        --  If we fall through, declaration is OK, at least OK enough to continue
  
!       if No (Etype (Def_Id)) then
           Set_Etype (Def_Id, Any_Type); -- avoid cascaded errors
        end if;
  
*************** package body Sem_Util is
*** 8895,8908 ****
        raise Program_Error;
     end Find_Loop_In_Conditional_Block;
  
     --------------------------
     -- Find_Overlaid_Entity --
     --------------------------
  
     procedure Find_Overlaid_Entity
!      (N   : Node_Id;
!       Ent : out Entity_Id;
!       Off : out Boolean)
     is
        pragma Assert
          (Nkind (N) = N_Attribute_Definition_Clause
--- 9153,9201 ----
        raise Program_Error;
     end Find_Loop_In_Conditional_Block;
  
+    -------------------------------
+    -- Find_Matching_Constructor --
+    -------------------------------
+ 
+    function Find_Matching_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean) return Entity_Id
+    is
+       Cursor : Entity_Id;
+    begin
+       pragma Assert (Is_Type (Typ));
+       if not Needs_Construction (Typ) then
+          return Empty;
+       end if;
+ 
+       --  Iterate through all constructors to find at least one constructor
+       --  that matches the given condition.
+ 
+       Cursor :=
+         Get_Name_Entity_Id
+           (Direct_Attribute_Definition_Name (Typ, Name_Constructor));
+       while Present (Cursor) loop
+          if (if not Allow_Removed then not Is_Abstract_Subprogram (Cursor))
+            and then Is_Constructor (Cursor)
+            and then Condition (Cursor)
+          then
+             return Cursor;
+          end if;
+ 
+          Cursor := Homonym (Cursor);
+       end loop;
+ 
+       return Empty;
+    end Find_Matching_Constructor;
+ 
     --------------------------
     -- Find_Overlaid_Entity --
     --------------------------
  
     procedure Find_Overlaid_Entity
!      (N        : Node_Id;
!       Ent      : out Entity_Id;
!       Ovrl_Typ : out Entity_Id;
!       Off      : out Boolean)
     is
        pragma Assert
          (Nkind (N) = N_Attribute_Definition_Clause
*************** package body Sem_Util is
*** 8924,8931 ****
        --  In the second case, the expr is either Y'Address, or recursively a
        --  constant that eventually references Y'Address.
  
!       Ent := Empty;
!       Off := False;
  
        Expr := Expression (N);
  
--- 9217,9225 ----
        --  In the second case, the expr is either Y'Address, or recursively a
        --  constant that eventually references Y'Address.
  
!       Ent      := Empty;
!       Ovrl_Typ := Empty;
!       Off      := False;
  
        Expr := Expression (N);
  
*************** package body Sem_Util is
*** 8955,8960 ****
--- 9249,9256 ----
           end if;
        end loop;
  
+       Ovrl_Typ := Etype (Expr);
+ 
        --  This loop checks the form of the prefix for an entity, using
        --  recursion to deal with intermediate components.
  
*************** package body Sem_Util is
*** 8973,8985 ****
                 pragma Assert
                   (not Expander_Active
                    and then Is_Concurrent_Type (Scope (Ent)));
!                Ent := Empty;
              end if;
              return;
  
           --  Check for components
  
!          elsif Nkind (Expr) in N_Selected_Component | N_Indexed_Component then
              Expr := Prefix (Expr);
              Off  := True;
  
--- 9269,9286 ----
                 pragma Assert
                   (not Expander_Active
                    and then Is_Concurrent_Type (Scope (Ent)));
!                Ent      := Empty;
!                Ovrl_Typ := Empty;
              end if;
+ 
              return;
  
           --  Check for components
  
!          elsif Nkind (Expr) in N_Indexed_Component
!                              | N_Selected_Component
!                              | N_Slice
!          then
              Expr := Prefix (Expr);
              Off  := True;
  
*************** package body Sem_Util is
*** 9567,9576 ****
        return
          Ekind (Pack) = E_Package
            and then not Is_Frozen (Pack)
!           and then not Scope_Within_Or_Same (Current_Scope, Pack)
            and then In_Open_Scopes (Scope (Pack));
     end From_Nested_Package;
  
     -----------------------
     -- Gather_Components --
     -----------------------
--- 9868,9906 ----
        return
          Ekind (Pack) = E_Package
            and then not Is_Frozen (Pack)
!           and then not In_Open_Scopes (Pack)
            and then In_Open_Scopes (Scope (Pack));
     end From_Nested_Package;
  
+    ----------------------
+    -- From_Same_Aspect --
+    ----------------------
+ 
+    function From_Same_Aspect (Self, Other : Node_Id) return Boolean is
+    begin
+       return
+         Present (Original_Aspect (Self))
+         and then Present (Original_Aspect (Other))
+         and then Original_Aspect (Self) = Original_Aspect (Other);
+    end From_Same_Aspect;
+ 
+    ----------------------
+    -- From_Same_Pragma --
+    ----------------------
+ 
+    function From_Same_Pragma (Self, Other : Node_Id) return Boolean is
+    begin
+       return
+         (Present (Original_Pragma (Self))
+          and then Present (Original_Pragma (Other))
+          and then Original_Pragma (Self) = Original_Pragma (Other))
+         or else (From_Aspect_Specification (Self)
+                  and then From_Aspect_Specification (Other)
+                  and then From_Same_Aspect
+                             (Corresponding_Aspect (Self),
+                              Corresponding_Aspect (Other)));
+    end From_Same_Pragma;
+ 
     -----------------------
     -- Gather_Components --
     -----------------------
*************** package body Sem_Util is
*** 10098,10103 ****
--- 10428,10434 ----
        Func     : Entity_Id;
        First_Op : Entity_Id;
        Cursor   : Entity_Id;
+       Specific_Type : Entity_Id := Typ;
  
     begin
        --  If error already detected, return
*************** package body Sem_Util is
*** 10106,10111 ****
--- 10437,10446 ----
           return Any_Type;
        end if;
  
+       if Is_Class_Wide_Type (Specific_Type) then
+          Specific_Type := Etype (Typ);
+       end if;
+ 
        --  The cursor type for an Iterable aspect is the return type of a
        --  non-overloaded First primitive operation. Locate association for
        --  First.
*************** package body Sem_Util is
*** 10136,10147 ****
        --  is created for it, check that the base type of the first formal
        --  of First matches the base type of the domain.
  
!       Func := First_Entity (Scope (Typ));
        while Present (Func) loop
           if Chars (Func) = Chars (First_Op)
             and then Ekind (Func) = E_Function
             and then Present (First_Formal (Func))
!            and then Base_Type (Etype (First_Formal (Func))) = Base_Type (Typ)
             and then No (Next_Formal (First_Formal (Func)))
           then
              if Cursor /= Any_Type then
--- 10471,10483 ----
        --  is created for it, check that the base type of the first formal
        --  of First matches the base type of the domain.
  
!       Func := First_Entity (Scope (Specific_Type));
        while Present (Func) loop
           if Chars (Func) = Chars (First_Op)
             and then Ekind (Func) = E_Function
             and then Present (First_Formal (Func))
!            and then Base_Type (Etype (First_Formal (Func)))
!                     = Base_Type (Specific_Type)
             and then No (Next_Formal (First_Formal (Func)))
           then
              if Cursor /= Any_Type then
*************** package body Sem_Util is
*** 10191,10253 ****
            Strval => String_From_Name_Buffer);
     end Get_Default_External_Name;
  
!    --------------------------
!    -- Get_Enclosing_Object --
!    --------------------------
  
!    function Get_Enclosing_Object (N : Node_Id) return Entity_Id is
     begin
        if Is_Entity_Name (N) then
           return Entity (N);
        else
           case Nkind (N) is
!             when N_Indexed_Component
                 | N_Selected_Component
                 | N_Slice
              =>
!                --  If not generating code, a dereference may be left implicit.
!                --  In thoses cases, return Empty.
  
!                if Is_Access_Type (Etype (Prefix (N))) then
!                   return Empty;
!                else
!                   return Get_Enclosing_Object (Prefix (N));
!                end if;
  
!             when N_Type_Conversion =>
!                return Get_Enclosing_Object (Expression (N));
  
              when others =>
                 return Empty;
           end case;
        end if;
!    end Get_Enclosing_Object;
  
!    -------------------------------
!    -- Get_Enclosing_Deep_Object --
!    -------------------------------
  
!    function Get_Enclosing_Deep_Object (N : Node_Id) return Entity_Id is
     begin
        if Is_Entity_Name (N) then
           return Entity (N);
        else
           case Nkind (N) is
!             when N_Explicit_Dereference
!                | N_Indexed_Component
                 | N_Selected_Component
                 | N_Slice
              =>
!                return Get_Enclosing_Deep_Object (Prefix (N));
  
!             when N_Type_Conversion =>
!                return Get_Enclosing_Deep_Object (Expression (N));
  
              when others =>
                 return Empty;
           end case;
        end if;
!    end Get_Enclosing_Deep_Object;
  
     ---------------------------
     -- Get_Enum_Lit_From_Pos --
--- 10527,10595 ----
            Strval => String_From_Name_Buffer);
     end Get_Default_External_Name;
  
!    --------------------------------
!    -- Get_Enclosing_Ghost_Entity --
!    --------------------------------
  
!    function Get_Enclosing_Ghost_Entity (N : Node_Id) return Entity_Id is
     begin
        if Is_Entity_Name (N) then
           return Entity (N);
        else
           case Nkind (N) is
!             when N_Attribute_Reference
!                | N_Explicit_Dereference
!                | N_Indexed_Component
                 | N_Selected_Component
                 | N_Slice
              =>
!                return Get_Enclosing_Ghost_Entity (Prefix (N));
  
!             when N_Function_Call =>
!                return Get_Called_Entity (N);
  
!             --  We are interested in the target type, because if it is ghost,
!             --  then the object is ghost as well and if it is non-ghost, then
!             --  its expression can't be ghost.
! 
!             when N_Qualified_Expression
!                | N_Type_Conversion
!                | N_Unchecked_Type_Conversion
!             =>
!                return Entity (Subtype_Mark (N));
  
              when others =>
                 return Empty;
           end case;
        end if;
!    end Get_Enclosing_Ghost_Entity;
  
!    --------------------------
!    -- Get_Enclosing_Object --
!    --------------------------
  
!    function Get_Enclosing_Object (N : Node_Id) return Entity_Id is
     begin
        if Is_Entity_Name (N) then
           return Entity (N);
        else
           case Nkind (N) is
!             when N_Indexed_Component
                 | N_Selected_Component
                 | N_Slice
              =>
!                return Get_Enclosing_Object (Prefix (N));
  
!             when N_Type_Conversion
!                | N_Unchecked_Type_Conversion
!             =>
!                return Get_Enclosing_Object (Expression (N));
  
              when others =>
                 return Empty;
           end case;
        end if;
!    end Get_Enclosing_Object;
  
     ---------------------------
     -- Get_Enum_Lit_From_Pos --
*************** package body Sem_Util is
*** 11011,11016 ****
--- 11353,11362 ----
        if Is_Entity_Name (Subp) then
           Subp_Id := Entity (Subp);
  
+          if No (Subp_Id) then
+             return Empty;
+          end if;
+ 
           if Ekind (Subp_Id) = E_Access_Subprogram_Type then
              Subp_Id := Directly_Designated_Type (Subp_Id);
           end if;
*************** package body Sem_Util is
*** 11139,11144 ****
--- 11485,11530 ----
        end if;
     end Get_Views;
  
+    ----------------------------------
+    -- Has_Assertion_Level_Argument --
+    ----------------------------------
+ 
+    function Has_Assertion_Level_Argument (N : Node_Id) return Boolean is
+       Assocs : List_Id;
+       Assoc  : Node_Id;
+       Choice : Node_Id;
+    begin
+       if Nkind (N) = N_Aspect_Specification then
+          if Nkind (Expression (N)) /= N_Aggregate then
+             return False;
+          end if;
+ 
+          Assocs := Component_Associations (Expression (N));
+ 
+          if No (Assocs) then
+             return False;
+          end if;
+ 
+          Assoc := First (Assocs);
+          Choice := First (Choices (Assoc));
+ 
+          if Nkind (Choice) = N_Identifier then
+             return Present (Get_Assertion_Level (Chars (Choice)));
+          end if;
+ 
+          return False;
+       else
+          pragma Assert (Nkind (N) = N_Pragma);
+          Assocs := Pragma_Argument_Associations (N);
+          Assoc := First (Assocs);
+          if Present (Assoc) and then Chars (Assoc) /= No_Name then
+             return Present (Get_Assertion_Level (Chars (Assoc)));
+          end if;
+ 
+          return False;
+       end if;
+    end Has_Assertion_Level_Argument;
+ 
     ------------------------------
     -- Has_Compatible_Alignment --
     ------------------------------
*************** package body Sem_Util is
*** 11467,11472 ****
--- 11853,11871 ----
          Has_Compatible_Alignment_Internal (Obj, Expr, Layout_Done, Unknown);
     end Has_Compatible_Alignment;
  
+    --------------------------
+    -- Has_Copy_Constructor --
+    --------------------------
+ 
+    function Has_Copy_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean
+    is
+       function Find_Copy_Constructor
+       is new Find_Matching_Constructor (Is_Copy_Constructor);
+    begin
+       return Present (Find_Copy_Constructor (Typ, Allow_Removed));
+    end Has_Copy_Constructor;
+ 
     ----------------------
     -- Has_Declarations --
     ----------------------
*************** package body Sem_Util is
*** 11948,11953 ****
--- 12347,12365 ----
        end if;
     end Has_Enabled_Property;
  
+    ------------------------------
+    -- Has_Explicit_Constructor --
+    ------------------------------
+ 
+    function Has_Explicit_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean
+    is
+       function Find_Explicit_Constructor
+       is new Find_Matching_Constructor (Comes_From_Source);
+    begin
+       return Present (Find_Explicit_Constructor (Typ, Allow_Removed));
+    end Has_Explicit_Constructor;
+ 
     -------------------------------------
     -- Has_Full_Default_Initialization --
     -------------------------------------
*************** package body Sem_Util is
*** 12347,12355 ****
     function Is_Explicitly_Aliased (N : Node_Id) return Boolean is
     begin
        return Is_Formal (N)
!                and then Present (Parent (N))
!                and then Nkind (Parent (N)) = N_Parameter_Specification
!                and then Aliased_Present (Parent (N));
     end Is_Explicitly_Aliased;
  
     ----------------------------
--- 12759,12767 ----
     function Is_Explicitly_Aliased (N : Node_Id) return Boolean is
     begin
        return Is_Formal (N)
!         and then Present (Parent (N))
!         and then Nkind (Parent (N)) = N_Parameter_Specification
!         and then Aliased_Present (Parent (N));
     end Is_Explicitly_Aliased;
  
     ----------------------------
*************** package body Sem_Util is
*** 12374,12379 ****
--- 12786,12859 ----
          and then not Is_Record_Aggregate;
     end Is_Container_Aggregate;
  
+    -------------------------
+    -- Is_Copy_Constructor --
+    -------------------------
+ 
+    function Is_Copy_Constructor (Spec_Id : Entity_Id) return Boolean is
+    begin
+       if Is_Constructor (Spec_Id)
+         and then Present (Next_Formal (First_Formal (Spec_Id)))
+         and then Etype (Next_Formal (First_Formal (Spec_Id)))
+                    = Etype (First_Formal (Spec_Id))
+         and then Ekind (Next_Formal (First_Formal (Spec_Id)))
+                    = E_In_Parameter
+       then
+          --  More formals with default values are allowed afterwards
+ 
+          declare
+             Formal : Entity_Id :=
+               Next_Formal (Next_Formal (First_Formal (Spec_Id)));
+          begin
+             while Present (Formal) loop
+                if No (Default_Value (Formal)) then
+                   return False;
+                end if;
+                Next_Formal (Formal);
+             end loop;
+          end;
+          return True;
+       end if;
+       return False;
+    end Is_Copy_Constructor;
+ 
+    ------------------------------
+    -- Is_Copy_Constructor_Call --
+    ------------------------------
+ 
+    function Is_Copy_Constructor_Call (N : Node_Id) return Boolean is
+    begin
+       if Nkind (N) = N_Attribute_Reference
+         and then Is_Type (Entity (Prefix (N)))
+         and then Get_Attribute_Id (Attribute_Name (N)) = Attribute_Make
+         and then Present (Expressions (N))
+         and then Present (First (Expressions (N)))
+         and then No (Next (First (Expressions  (N))))
+       then
+          --  If the actual is a parameter association, the selector name must
+          --  be "From" and its type must be an ancestor of the underlying one.
+ 
+          if Nkind (First (Expressions (N))) = N_Parameter_Association then
+             return Chars (Selector_Name (First (Expressions (N)))) = Name_From
+               and then Is_Ancestor
+                          (Etype (Entity (Prefix (N))),
+                           Etype (Explicit_Actual_Parameter
+                                    (First (Expressions (N)))));
+ 
+          --  The actual must be an ancestor of the underlying type to be used
+          --  in a copy constructor call.
+ 
+          else
+             return Is_Ancestor
+                      (Etype (Entity (Prefix (N))),
+                       Etype (First (Expressions (N))));
+ 
+          end if;
+       else
+          return False;
+       end if;
+    end Is_Copy_Constructor_Call;
+ 
     -----------------------------
     -- Is_Extended_Access_Type --
     -----------------------------
*************** package body Sem_Util is
*** 12395,12400 ****
--- 12875,12928 ----
        end if;
     end Is_Extended_Access_Type;
  
+    ----------------------------------------
+    -- Is_Ignored_Ghost_Entity_In_Codegen --
+    ----------------------------------------
+ 
+    function Is_Ignored_Ghost_Entity_In_Codegen (N : Entity_Id) return Boolean
+    is
+    begin
+       return
+         Is_Ignored_Ghost_Entity (N)
+         and then not GNATprove_Mode
+         and then not CodePeer_Mode;
+    end Is_Ignored_Ghost_Entity_In_Codegen;
+ 
+    ----------------------------------------
+    -- Is_Ignored_Ghost_Pragma_In_Codegen --
+    ----------------------------------------
+ 
+    function Is_Ignored_Ghost_Pragma_In_Codegen (N : Node_Id) return Boolean is
+    begin
+       return
+         Is_Ignored_Ghost_Pragma (N)
+         and then not GNATprove_Mode
+         and then not CodePeer_Mode;
+    end Is_Ignored_Ghost_Pragma_In_Codegen;
+ 
+    ---------------------------
+    -- Is_Ignored_In_Codegen --
+    ---------------------------
+ 
+    function Is_Ignored_In_Codegen (N : Node_Id) return Boolean is
+    begin
+       return
+         Is_Ignored (N) and then not GNATprove_Mode and then not CodePeer_Mode;
+    end Is_Ignored_In_Codegen;
+ 
+    -----------------------------------
+    -- Has_Parameterless_Constructor --
+    -----------------------------------
+ 
+    function Has_Parameterless_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean
+    is
+       function Find_Default_Constructor
+       is new Find_Matching_Constructor (Is_Parameterless_Constructor);
+    begin
+       return Present (Find_Default_Constructor (Typ, Allow_Removed));
+    end Has_Parameterless_Constructor;
+ 
     ---------------------------------
     -- Side_Effect_Free_Statements --
     ---------------------------------
*************** package body Sem_Util is
*** 12674,12679 ****
--- 13202,13232 ----
            and then Nkind (Node (First_Elmt (Constits))) = N_Null;
     end Has_Null_Refinement;
  
+    ----------------------------------
+    -- Is_Parameterless_Constructor --
+    ----------------------------------
+ 
+    function Is_Parameterless_Constructor
+      (Spec_Id : Entity_Id) return Boolean is
+    begin
+       if Is_Constructor (Spec_Id) then
+          --  More formals with default values are allowed afterwards
+ 
+          declare
+             Formal : Entity_Id := Next_Formal (First_Formal (Spec_Id));
+          begin
+             while Present (Formal) loop
+                if No (Default_Value (Formal)) then
+                   return False;
+                end if;
+                Next_Formal (Formal);
+             end loop;
+          end;
+          return True;
+       end if;
+       return False;
+    end Is_Parameterless_Constructor;
+ 
     ------------------------------------------
     -- Has_Nonstatic_Class_Wide_Pre_Or_Post --
     ------------------------------------------
*************** package body Sem_Util is
*** 12761,12766 ****
--- 13314,13463 ----
        return False;
     end Has_Overriding_Initialize;
  
+    -----------------------------
+    -- Has_Potentially_Invalid --
+    -----------------------------
+ 
+    function Has_Potentially_Invalid (E : Entity_Id) return Boolean is
+ 
+       function Denotes_Invalid_Parameter
+         (Expr  : Node_Id;
+          Param : Entity_Id)
+          return Boolean;
+       --  Returns True iff expression Expr denotes a formal parameter or
+       --  function Param (through its attribute Result).
+ 
+       -------------------------------
+       -- Denotes_Invalid_Parameter --
+       -------------------------------
+ 
+       function Denotes_Invalid_Parameter
+         (Expr  : Node_Id;
+          Param : Entity_Id) return Boolean is
+       begin
+          if Nkind (Expr) in N_Identifier | N_Expanded_Name then
+             return Entity (Expr) = Param;
+          else
+             pragma Assert (Is_Attribute_Result (Expr));
+             return Entity (Prefix (Expr)) = Param;
+          end if;
+       end Denotes_Invalid_Parameter;
+ 
+    --  Start of processing for Has_Potentially_Invalid
+ 
+    begin
+       --  When analyzing, we checked all syntax legality rules for the aspect
+       --  Potentially_Invalid, but didn't store the property anywhere (e.g. as
+       --  an Einfo flag). To query the property we look directly at the AST,
+       --  but now without any syntactic checks.
+ 
+       case Ekind (E) is
+          --  Constants have this aspect attached directly; for deferred
+          --  constants, the aspect is attached to the partial view.
+ 
+          when E_Constant =>
+             return Has_Aspect (E, Aspect_Potentially_Invalid);
+ 
+          --  Variables have this aspect attached directly
+ 
+          when E_Variable =>
+             return Has_Aspect (E, Aspect_Potentially_Invalid);
+ 
+          when Formal_Kind
+             | E_Function
+          =>
+             --  Instances of Ada.Unchecked_Conversion is a special case. Look
+             --  for the aspect on the generic instance. The aspect necessarily
+             --  applies to the function result.
+ 
+             if Is_Unchecked_Conversion_Instance (E) then
+                declare
+                   Wrapper_Pkg : constant Node_Id :=
+                     Defining_Unit_Name (Parent (Subprogram_Spec (E)));
+                   pragma Assert (Is_Wrapper_Package (Wrapper_Pkg));
+                   Instance    : constant Entity_Id := Defining_Unit_Name
+                     (Get_Unit_Instantiation_Node (Wrapper_Pkg));
+                begin
+                   return Has_Aspect (Instance, Aspect_Potentially_Invalid);
+                end;
+             end if;
+ 
+             --  Formal parameters and functions have the Potentially_Invalid
+             --  aspect attached to the subprogram entity and must be listed in
+             --  the aspect expression.
+ 
+             declare
+                Subp_Id     : Entity_Id;
+                Aspect_Expr : Node_Id;
+                Param_Expr  : Node_Id;
+                Assoc       : Node_Id;
+ 
+             begin
+                if Is_Formal (E) then
+                   Subp_Id := Scope (E);
+                else
+                   Subp_Id := E;
+                end if;
+ 
+                if Has_Aspect (Subp_Id, Aspect_Potentially_Invalid) then
+                   Aspect_Expr :=
+                     Find_Value_Of_Aspect
+                       (Subp_Id, Aspect_Potentially_Invalid);
+ 
+                   --  Aspect expression is either an aggregate with an optional
+                   --  Boolean expression (which defaults to True), e.g.:
+                   --
+                   --    function F (X : Integer) return Integer
+                   --      with Potentially_Invalid => (X => True, F'Result);
+ 
+                   if Nkind (Aspect_Expr) = N_Aggregate then
+ 
+                      if Present (Component_Associations (Aspect_Expr)) then
+                         Assoc := First (Component_Associations (Aspect_Expr));
+ 
+                         while Present (Assoc) loop
+                            if Denotes_Invalid_Parameter
+                              (First (Choices (Assoc)), E)
+                            then
+                               return
+                                 Is_True
+                                   (Static_Boolean (Expression (Assoc)));
+                            end if;
+ 
+                            Next (Assoc);
+                         end loop;
+                      end if;
+ 
+                      Param_Expr := First (Expressions (Aspect_Expr));
+ 
+                      while Present (Param_Expr) loop
+                         if Denotes_Invalid_Parameter (Param_Expr, E) then
+                            return True;
+                         end if;
+ 
+                         Next (Param_Expr);
+                      end loop;
+ 
+                      return False;
+ 
+                   --  or it is a single identifier, e.g.:
+                   --
+                   --    function F (X : Integer) return Integer
+                   --      with Potentially_Invalid => X;
+ 
+                   else
+                      return Denotes_Invalid_Parameter (Aspect_Expr, E);
+                   end if;
+                else
+                   return False;
+                end if;
+             end;
+ 
+          when others =>
+             raise Program_Error;
+       end case;
+    end Has_Potentially_Invalid;
+ 
     --------------------------------------
     -- Has_Preelaborable_Initialization --
     --------------------------------------
*************** package body Sem_Util is
*** 14044,14049 ****
--- 14741,14920 ----
        end loop;
     end In_Quantified_Expression;
  
+    ---------------------
+    -- In_Return_Value --
+    ---------------------
+ 
+    function In_Return_Value (Exp : Node_Id) return Boolean is
+       Prev : Node_Id := Exp;
+       P    : Node_Id := Parent (Exp);
+       --  P and Prev will be used for traversing the AST, while maintaining an
+       --  invariant that P = Parent (Prev).
+ 
+       In_Component   : Boolean := False;
+       --  Whether Exp occurs within a component reference
+ 
+       In_Dereference : Boolean := False;
+       --  Whether Exp occurs within a dereference
+ 
+       function Exp_Defines_Or_Is_Tied_To_Return_Value return Boolean is
+         (not In_Component
+           and then not In_Dereference
+ 
+           --  RM 3.10.2(14.5/3): Within a return statement, the accessibility
+           --  level of the anonymous access type of an access result is that
+           --  of the master of the call.
+ 
+           and then
+             (Nkind (Prev) /= N_Attribute_Reference
+               or else
+                 Ekind (Etype (Current_Subprogram)) = E_Anonymous_Access_Type));
+       --  Whether Exp defines or is tied to the return value
+ 
+    --  Start of processing for In_Return_Value
+ 
+    begin
+       --  Move through parent nodes to determine if Exp contributes to the
+       --  return value of the current subprogram.
+ 
+       Parent_Loop : while Present (P) loop
+ 
+          case Nkind (P) is
+             --  A return expression is obviously a return value
+ 
+             when N_Simple_Return_Statement =>
+                return Exp_Defines_Or_Is_Tied_To_Return_Value;
+ 
+             --  A return object obviously contains a return value
+ 
+             when N_Object_Declaration =>
+                return Is_Return_Object (Defining_Identifier (P))
+                  and then Exp_Defines_Or_Is_Tied_To_Return_Value;
+ 
+             --  Something assigned to a return object is a return value
+ 
+             when N_Assignment_Statement =>
+                return Is_Entity_Name (Name (P))
+                  and then Is_Return_Object (Entity (Name (P)))
+                  and then Exp_Defines_Or_Is_Tied_To_Return_Value;
+ 
+             --  An allocator is not a return value unless specially built
+ 
+             when N_Allocator =>
+                return For_Special_Return_Object (P)
+                  and then Exp_Defines_Or_Is_Tied_To_Return_Value;
+ 
+             --  Check if we are the actual of an explicitly aliased parameter
+             --  of a function call. This specific case seems to be missing in
+             --  the RM 10.3.2(10.5/5) rule, but is necessary to propagate the
+             --  master of the call down the chain of nested function calls.
+ 
+             when N_Function_Call => declare
+                Subp : constant Node_Id := Name (P);
+ 
+                A   : Node_Id;
+                F   : Node_Id;
+                Nam : Entity_Id;
+ 
+             begin
+                exit Parent_Loop when Prev = Subp;
+ 
+                if Ekind (Etype (Subp)) = E_Subprogram_Type then
+                   Nam := Etype (Subp);
+                elsif Is_Entity_Name (Subp) then
+                   Nam := Entity (Subp);
+                else
+                   exit Parent_Loop;
+                end if;
+ 
+                F := First_Formal (Nam);
+                A := First_Actual (P);
+ 
+                while Present (F) loop
+                   exit Parent_Loop when No (A);
+ 
+                   if A = Prev
+                     or else (Nkind (Prev) = N_Parameter_Association
+                               and then A = Explicit_Actual_Parameter (Prev))
+                   then
+                      if Is_Aliased (F) then
+                         exit;
+                      else
+                         exit Parent_Loop;
+                      end if;
+                   end if;
+ 
+                   Next_Formal (F);
+                   Next_Actual (A);
+                end loop;
+ 
+                --  The actual should have been seen
+ 
+                pragma Assert (Present (F));
+             end;
+ 
+             --  Operators do not have explicitly aliased operands
+ 
+             when N_Op =>
+                exit Parent_Loop;
+ 
+             --  Ignore ranges as they don't contribute to the return value
+ 
+             when N_Range =>
+                exit Parent_Loop;
+ 
+             --  Accept operative constituents
+ 
+             when N_Case_Expression =>
+                exit Parent_Loop when Prev = Expression (P);
+ 
+             when N_If_Expression =>
+                exit Parent_Loop when Prev = First (Expressions (P));
+ 
+             when N_Case_Expression_Alternative
+                | N_Qualified_Expression
+                | N_Type_Conversion
+                | N_Unchecked_Type_Conversion
+             =>
+                null;
+ 
+             --  Record whether we are in a component
+ 
+             when N_Indexed_Component
+                | N_Selected_Component
+                | N_Slice
+             =>
+                In_Component := True;
+ 
+             --  Record whether we are in a dereference
+ 
+             when N_Explicit_Dereference =>
+                In_Dereference := True;
+ 
+             when N_Attribute_Reference =>
+                exit Parent_Loop when Attribute_Name (P) /= Name_Access;
+ 
+                --  'Access kills a previous component or dereference
+ 
+                In_Component := False;
+                In_Dereference := False;
+ 
+             when others =>
+                --  Prevent the search from going too far
+ 
+                exit Parent_Loop when Is_Statement (P)
+                  or else Is_Body_Or_Package_Declaration (P);
+          end case;
+ 
+          --  Iterate up to the next parent, keeping track of the previous one
+ 
+          Prev := P;
+          P := Parent (P);
+       end loop Parent_Loop;
+ 
+       return False;
+    end In_Return_Value;
+ 
     -------------------------------------
     -- In_Reverse_Storage_Order_Object --
     -------------------------------------
*************** package body Sem_Util is
*** 14197,14303 ****
        return False;
     end In_Subtree;
  
-    ---------------------
-    -- In_Return_Value --
-    ---------------------
- 
-    function In_Return_Value (Expr : Node_Id) return Boolean is
-       Par              : Node_Id;
-       Prev_Par         : Node_Id;
-       Pre              : Node_Id;
-       In_Function_Call : Boolean := False;
- 
-    begin
-       --  Move through parent nodes to determine if Expr contributes to the
-       --  return value of the current subprogram.
- 
-       Par      := Expr;
-       Prev_Par := Empty;
-       while Present (Par) loop
- 
-          case Nkind (Par) is
-             --  Ignore ranges and they don't contribute to the result
- 
-             when N_Range =>
-                return False;
- 
-             --  An object declaration whose parent is an extended return
-             --  statement is a return object.
- 
-             when N_Object_Declaration =>
-                if Present (Parent (Par))
-                  and then Nkind (Parent (Par)) = N_Extended_Return_Statement
-                then
-                   return True;
-                end if;
- 
-             --  We hit a simple return statement, so we know we are in one
- 
-             when N_Simple_Return_Statement =>
-                return True;
- 
-             --  Only include one nexting level of function calls
- 
-             when N_Function_Call =>
-                if not In_Function_Call then
-                   In_Function_Call := True;
- 
-                   --  When the function return type has implicit dereference
-                   --  specified we know it cannot directly contribute to the
-                   --  return value.
- 
-                   if Present (Etype (Par))
-                     and then Has_Implicit_Dereference
-                                (Get_Full_View (Etype (Par)))
-                   then
-                      return False;
-                   end if;
-                else
-                   return False;
-                end if;
- 
-             --  Check if we are on the right-hand side of an assignment
-             --  statement to a return object.
- 
-             --  This is not specified in the RM ???
- 
-             when N_Assignment_Statement =>
-                if Prev_Par = Name (Par) then
-                   return False;
-                end if;
- 
-                Pre := Name (Par);
-                while Present (Pre) loop
-                   if Is_Entity_Name (Pre)
-                     and then Is_Return_Object (Entity (Pre))
-                   then
-                      return True;
-                   end if;
- 
-                   exit when Nkind (Pre) not in N_Selected_Component
-                                              | N_Indexed_Component
-                                              | N_Slice;
- 
-                   Pre := Prefix (Pre);
-                end loop;
- 
-             --  Otherwise, we hit a master which was not relevant
- 
-             when others =>
-                if Is_Master (Par) then
-                   return False;
-                end if;
-          end case;
- 
-          --  Iterate up to the next parent, keeping track of the previous one
- 
-          Prev_Par := Par;
-          Par      := Parent (Par);
-       end loop;
- 
-       return False;
-    end In_Return_Value;
- 
     -----------------------------------------
     -- In_Statement_Condition_With_Actions --
     -----------------------------------------
--- 15068,15073 ----
*************** package body Sem_Util is
*** 14355,14361 ****
     -- Incomplete_Or_Partial_View --
     --------------------------------
  
!    function Incomplete_Or_Partial_View (Id : Entity_Id) return Entity_Id is
        S : constant Entity_Id := Scope (Id);
  
        function Inspect_Decls
--- 15125,15133 ----
     -- Incomplete_Or_Partial_View --
     --------------------------------
  
!    function Incomplete_Or_Partial_View
!      (Id : Entity_Id; Partial_Only : Boolean := False) return Entity_Id
!    is
        S : constant Entity_Id := Scope (Id);
  
        function Inspect_Decls
*************** package body Sem_Util is
*** 14438,14443 ****
--- 15210,15216 ----
          and then (Is_Incomplete_Type (Prev) or else Ekind (Prev) = E_Constant)
          and then Present (Full_View (Prev))
          and then Full_View (Prev) = Id
+         and then not Partial_Only
        then
           return Prev;
        end if;
*************** package body Sem_Util is
*** 14449,14455 ****
              Pkg_Decl : constant Node_Id := Package_Specification (S);
  
           begin
!             --  It is knows that Typ has a private view, look for it in the
              --  visible declarations of the enclosing scope. A special case
              --  of this is when the two views have been exchanged - the full
              --  appears earlier than the private.
--- 15222,15228 ----
              Pkg_Decl : constant Node_Id := Package_Specification (S);
  
           begin
!             --  It is known that Typ has a private view, look for it in the
              --  visible declarations of the enclosing scope. A special case
              --  of this is when the two views have been exchanged - the full
              --  appears earlier than the private.
*************** package body Sem_Util is
*** 14469,14475 ****
              --  Taft amendment type. The incomplete view should be located in
              --  the private declarations of the enclosing scope.
  
!             elsif In_Package_Body (S) then
                 return Inspect_Decls (Private_Declarations (Pkg_Decl), True);
              end if;
           end;
--- 15242,15248 ----
              --  Taft amendment type. The incomplete view should be located in
              --  the private declarations of the enclosing scope.
  
!             elsif In_Package_Body (S) and then not Partial_Only then
                 return Inspect_Decls (Private_Declarations (Pkg_Decl), True);
              end if;
           end;
*************** package body Sem_Util is
*** 14796,14801 ****
--- 15569,15575 ----
                 | Aspect_Iterator_Element
                 | Aspect_Max_Entry_Queue_Length
                 | Aspect_No_Controlled_Parts
+                | Aspect_No_Task_Parts
              =>
                 return;
           end case;
*************** package body Sem_Util is
*** 15585,15590 ****
--- 16359,16370 ----
               (Nkind (Parent (Obj)) = N_Object_Renaming_Declaration
                 and then Is_Return_Object (Defining_Entity (Parent (Obj))));
  
+       --  RM 4.1.5(6/3): A generalized reference denotes a view equivalent to
+       --  that of a dereference of the reference discriminant of the object.
+ 
+       elsif Nkind (Obj) = N_Function_Call then
+          return Has_Implicit_Dereference (Etype (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
*************** package body Sem_Util is
*** 15607,15620 ****
       (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;
           end if;
  
!          Par := Scope (Par);
        end loop;
  
        return False;
--- 16387,16400 ----
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean
     is
!       Cursor : Entity_Id := E2;
     begin
!       while Present (Cursor) and then Cursor /= Standard_Standard loop
!          if Cursor = E1 then
              return True;
           end if;
  
!          Cursor := Scope (Cursor);
        end loop;
  
        return False;
*************** package body Sem_Util is
*** 15714,15719 ****
--- 16494,16510 ----
          and then Attribute_Name (N) = Name_Result;
     end Is_Attribute_Result;
  
+    -----------------------------------
+    -- Is_Direct_Attribute_Subp_Spec --
+    -----------------------------------
+ 
+    function Is_Direct_Attribute_Subp_Spec (N : Node_Id) return Boolean is
+    begin
+       return Nkind (N) in N_Subprogram_Specification
+         and then Nkind (Defining_Unit_Name (Original_Node (N)))
+                    = N_Attribute_Reference;
+    end Is_Direct_Attribute_Subp_Spec;
+ 
     -------------------------
     -- Is_Attribute_Update --
     -------------------------
*************** package body Sem_Util is
*** 16055,16062 ****
                   Names_Match (Assign_Indexed_1, Assign_Indexed_2);
              end;
  
!          --  Checking for this aspect is performed elsewhere during freezing
!          when Aspect_No_Controlled_Parts =>
              return True;
  
           --  scalar-valued aspects; compare (static) values.
--- 16846,16854 ----
                   Names_Match (Assign_Indexed_1, Assign_Indexed_2);
              end;
  
!          --  Checking for these aspects is performed elsewhere during freezing
!          when Aspect_No_Controlled_Parts
!             | Aspect_No_Task_Parts =>
              return True;
  
           --  scalar-valued aspects; compare (static) values.
*************** package body Sem_Util is
*** 16415,16421 ****
  
        return Present (Ret_Typ)
          and then Is_CPP_Class (Ret_Typ)
!         and then Is_Constructor (Entity (Name (N)))
          and then Is_Imported (Entity (Name (N)));
     end Is_CPP_Constructor_Call;
  
--- 17207,17213 ----
  
        return Present (Ret_Typ)
          and then Is_CPP_Class (Ret_Typ)
!         and then Is_CPP_Constructor (Entity (Name (N)))
          and then Is_Imported (Entity (Name (N)));
     end Is_CPP_Constructor_Call;
  
*************** package body Sem_Util is
*** 17859,17864 ****
--- 18651,18677 ----
        return Nkind (Spec_Decl) in N_Generic_Declaration;
     end Is_Generic_Declaration_Or_Body;
  
+    --------------------------
+    -- Is_In_Context_Clause --
+    --------------------------
+ 
+    function Is_In_Context_Clause (N : Node_Id) return Boolean is
+       Plist       : List_Id;
+       Parent_Node : Node_Id;
+ 
+    begin
+       if Is_List_Member (N) then
+          Plist := List_Containing (N);
+          Parent_Node := Parent (Plist);
+ 
+          return Present (Parent_Node)
+            and then Nkind (Parent_Node) = N_Compilation_Unit
+            and then Context_Items (Parent_Node) = Plist;
+       end if;
+ 
+       return False;
+    end Is_In_Context_Clause;
+ 
     ---------------------------
     -- Is_Independent_Object --
     ---------------------------
*************** package body Sem_Util is
*** 18252,18313 ****
        end if;
     end Is_Local_Variable_Reference;
  
-    ---------------
-    -- Is_Master --
-    ---------------
- 
-    function Is_Master (N : Node_Id) return Boolean is
-       Disable_Subexpression_Masters : constant Boolean := True;
- 
-    begin
-       if Nkind (N) in N_Subprogram_Body | N_Task_Body | N_Entry_Body
-         or else Is_Statement (N)
-       then
-          return True;
-       end if;
- 
-       --  We avoid returning True when the master is a subexpression described
-       --  in RM 7.6.1(3/2) for the proposes of accessibility level calculation
-       --  in Accessibility_Level_Helper.Innermost_Master_Scope_Depth ???
- 
-       if not Disable_Subexpression_Masters
-         and then Nkind (N) in N_Subexpr
-       then
-          declare
-             Par : Node_Id := N;
- 
-             subtype N_Simple_Statement_Other_Than_Simple_Return
-               is Node_Kind with Static_Predicate =>
-                 N_Simple_Statement_Other_Than_Simple_Return
-                   in N_Abort_Statement
-                    | N_Assignment_Statement
-                    | N_Code_Statement
-                    | N_Delay_Statement
-                    | N_Entry_Call_Statement
-                    | N_Free_Statement
-                    | N_Goto_Statement
-                    | N_Null_Statement
-                    | N_Raise_Statement
-                    | N_Requeue_Statement
-                    | N_Exit_Statement
-                    | N_Procedure_Call_Statement;
-          begin
-             while Present (Par) loop
-                Par := Parent (Par);
-                if Nkind (Par) in N_Subexpr |
-                  N_Simple_Statement_Other_Than_Simple_Return
-                then
-                   return False;
-                end if;
-             end loop;
- 
-             return True;
-          end;
-       end if;
- 
-       return False;
-    end Is_Master;
- 
     -----------------------
     -- Is_Name_Reference --
     -----------------------
--- 19065,19070 ----
*************** package body Sem_Util is
*** 18320,18325 ****
--- 19077,19083 ----
  
        case Nkind (N) is
           when N_Indexed_Component
+             | N_Selected_Component
              | N_Slice
           =>
              return
*************** package body Sem_Util is
*** 18331,18343 ****
           when N_Attribute_Reference =>
              return Attribute_Name (N) in Name_Input | Name_Old | Name_Result;
  
-          when N_Selected_Component =>
-             return
-               Is_Name_Reference (Selector_Name (N))
-                 and then
-                   (Is_Name_Reference (Prefix (N))
-                     or else Is_Access_Type (Etype (Prefix (N))));
- 
           when N_Explicit_Dereference =>
              return True;
  
--- 19089,19094 ----
*************** package body Sem_Util is
*** 19098,19108 ****
        end case;
     end Is_Null_Record_Type;
  
!    ---------------------
!    -- Is_Object_Image --
!    ---------------------
  
!    function Is_Object_Image (Prefix : Node_Id) return Boolean is
     begin
        --  Here we test for the case that the prefix is not a type and assume
        --  if it is not then it must be a named value or an object reference.
--- 19849,19859 ----
        end case;
     end Is_Null_Record_Type;
  
!    ----------------------
!    -- Is_Object_Prefix --
!    ----------------------
  
!    function Is_Object_Prefix (Prefix : Node_Id) return Boolean is
     begin
        --  Here we test for the case that the prefix is not a type and assume
        --  if it is not then it must be a named value or an object reference.
*************** package body Sem_Util is
*** 19112,19118 ****
        return not (Is_Entity_Name (Prefix)
                    and then Is_Type (Entity (Prefix))
                    and then not Is_Current_Instance (Prefix));
!    end Is_Object_Image;
  
     -------------------------
     -- Is_Object_Reference --
--- 19863,19869 ----
        return not (Is_Entity_Name (Prefix)
                    and then Is_Type (Entity (Prefix))
                    and then not Is_Current_Instance (Prefix));
!    end Is_Object_Prefix;
  
     -------------------------
     -- Is_Object_Reference --
*************** package body Sem_Util is
*** 19691,19697 ****
           elsif Is_Tagged_Type (Typ) then
              return True;
  
!          --  Case of nondiscriminated record
  
           else
              declare
--- 20442,20453 ----
           elsif Is_Tagged_Type (Typ) then
              return True;
  
!          --  Case of record type with no components
! 
!          elsif No (First_Component (Typ)) then
!             return False;
! 
!          --  Case of record type with components
  
           else
              declare
*************** package body Sem_Util is
*** 20907,20912 ****
--- 21663,21669 ----
          or else Nam = Name_Pre
          or else Nam = Name_Pre_Class
          or else Nam = Name_Precondition
+         or else Nam = Name_Program_Exit
          or else Nam = Name_Refined_Depends
          or else Nam = Name_Refined_Global
          or else Nam = Name_Refined_Post
*************** package body Sem_Util is
*** 20954,20969 ****
  
     function Is_Suitable_Primitive (Subp_Id : Entity_Id) return Boolean is
     begin
!       --  The Default_Initial_Condition and invariant procedures must not be
!       --  treated as primitive operations even when they apply to a tagged
!       --  type. These routines must not act as targets of dispatching calls
!       --  because they already utilize class-wide-precondition semantics to
!       --  handle inheritance and overriding.
  
        if Ekind (Subp_Id) = E_Procedure
          and then (Is_DIC_Procedure (Subp_Id)
                      or else
!                   Is_Invariant_Procedure (Subp_Id))
        then
           return False;
        end if;
--- 21711,21728 ----
  
     function Is_Suitable_Primitive (Subp_Id : Entity_Id) return Boolean is
     begin
!       --  The Default_Initial_Condition, invariant, and constructor procedures
!       --  must not be treated as primitive operations even when they apply to a
!       --  tagged type. These routines must not act as targets of dispatching
!       --  calls because they already utilize class-wide-precondition semantics
!       --  to handle inheritance and overriding.
  
        if Ekind (Subp_Id) = E_Procedure
          and then (Is_DIC_Procedure (Subp_Id)
                      or else
!                   Is_Invariant_Procedure (Subp_Id)
!                     or else
!                   Is_Constructor (Subp_Id))
        then
           return False;
        end if;
*************** package body Sem_Util is
*** 21136,21141 ****
--- 21895,21912 ----
        return False;
     end Is_Unchecked_Conversion_Instance;
  
+    ---------------------------------
+    -- Is_Unchecked_Union_Equality --
+    ---------------------------------
+ 
+    function Is_Unchecked_Union_Equality (Id : Entity_Id) return Boolean is
+    begin
+       return Ekind (Id) = E_Function
+         and then Present (First_Formal (Id))
+         and then Is_Unchecked_Union (Etype (First_Formal (Id)))
+         and then Id = TSS (Etype (First_Formal (Id)), TSS_Composite_Equality);
+    end Is_Unchecked_Union_Equality;
+ 
     -------------------------------
     -- Is_Universal_Numeric_Type --
     -------------------------------
*************** package body Sem_Util is
*** 21844,21850 ****
           Set_Last_Assignment (Ent, Empty);
        end if;
  
!       if Is_Object (Ent) then
           if not Last_Assignment_Only then
              Kill_Checks (Ent);
              Set_Current_Value (Ent, Empty);
--- 22615,22621 ----
           Set_Last_Assignment (Ent, Empty);
        end if;
  
!       if Is_Object (Ent) and then Ekind (Ent) not in Record_Field_Kind then
           if not Last_Assignment_Only then
              Kill_Checks (Ent);
              Set_Current_Value (Ent, Empty);
*************** package body Sem_Util is
*** 21920,21939 ****
        end loop Scope_Loop;
     end Kill_Current_Values;
  
-    --------------------------
-    -- Kill_Size_Check_Code --
-    --------------------------
- 
-    procedure Kill_Size_Check_Code (E : Entity_Id) is
-    begin
-       if (Ekind (E) = E_Constant or else Ekind (E) = E_Variable)
-         and then Present (Size_Check_Code (E))
-       then
-          Remove (Size_Check_Code (E));
-          Set_Size_Check_Code (E, Empty);
-       end if;
-    end Kill_Size_Check_Code;
- 
     --------------------
     -- Known_Non_Null --
     --------------------
--- 22691,22696 ----
*************** package body Sem_Util is
*** 22336,22342 ****
           --  Mark the Ghost and SPARK mode in effect
  
           if Modes then
!             if Ghost_Mode = Ignore then
                 Set_Is_Ignored_Ghost_Node (N);
              end if;
  
--- 23093,23099 ----
           --  Mark the Ghost and SPARK mode in effect
  
           if Modes then
!             if Ghost_Config.Ghost_Mode = Ignore then
                 Set_Is_Ignored_Ghost_Node (N);
              end if;
  
*************** package body Sem_Util is
*** 22755,22761 ****
     begin
        --  Ada 2005 or later, and formals present. The first formal must be
        --  of a type that supports prefix notation: a controlling argument,
!       --  a class-wide type, or an access to such.
  
        if Ada_Version >= Ada_2005
          and then Present (First_Formal (E))
--- 23512,23519 ----
     begin
        --  Ada 2005 or later, and formals present. The first formal must be
        --  of a type that supports prefix notation: a controlling argument,
!       --  a class-wide type, an access to such, or an untagged record type
!       --  (when compiling with Core_Extensions allowed).
  
        if Ada_Version >= Ada_2005
          and then Present (First_Formal (E))
*************** package body Sem_Util is
*** 22763,22769 ****
          and then
            (Is_Controlling_Formal (First_Formal (E))
              or else Is_Class_Wide_Type (Etype (First_Formal (E)))
!             or else Is_Anonymous_Access_Type (Etype (First_Formal (E))))
        then
           Formal := Next_Formal (First_Formal (E));
           while Present (Formal) loop
--- 23521,23529 ----
          and then
            (Is_Controlling_Formal (First_Formal (E))
              or else Is_Class_Wide_Type (Etype (First_Formal (E)))
!             or else Is_Anonymous_Access_Type (Etype (First_Formal (E)))
!             or else (Core_Extensions_Allowed
!                        and then Is_Record_Type (Etype (First_Formal (E)))))
        then
           Formal := Next_Formal (First_Formal (E));
           while Present (Formal) loop
*************** package body Sem_Util is
*** 23122,23132 ****
        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
--- 23882,23887 ----
*************** package body Sem_Util is
*** 23894,23900 ****
  
           Result := N;
  
!          if N > Empty_Or_Error then
              pragma Assert (Nkind (N) not in N_Entity);
  
              Result := New_Copy (N);
--- 24649,24655 ----
  
           Result := N;
  
!          if N not in Empty | Error then
              pragma Assert (Nkind (N) not in N_Entity);
  
              Result := New_Copy (N);
*************** package body Sem_Util is
*** 23975,23981 ****
  
           Result := Id;
  
!          if Id > Empty_Or_Error then
              pragma Assert (Nkind (Id) in N_Entity);
  
              --  Determine whether the entity has a corresponding new entity
--- 24730,24736 ----
  
           Result := Id;
  
!          if Id not in Empty | Error then
              pragma Assert (Nkind (Id) in N_Entity);
  
              --  Determine whether the entity has a corresponding new entity
*************** package body Sem_Util is
*** 24089,24095 ****
              Next (Old_Act);
           end loop;
  
!          pragma Assert (Replaced);
        end Update_Controlling_Argument;
  
        -------------------------------
--- 24844,24852 ----
              Next (Old_Act);
           end loop;
  
!          if Nkind (Old_Call) /= N_Function_Call then
!             pragma Assert (Replaced);
!          end if;
        end Update_Controlling_Argument;
  
        -------------------------------
*************** package body Sem_Util is
*** 24262,24271 ****
--- 25019,25038 ----
           --  Scalar_Range
  
           if Is_Discrete_Type (Id) then
+ 
+             --  The scalar range of the source entity had a parent, so the
+             --  scalar range of the newly created entity should also have a
+             --  parent, so that the AST structure is the same.
+ 
+             pragma Assert (Present (Parent (Scalar_Range (Id))));
+ 
              Set_Scalar_Range (Id, Node_Id (
                Copy_Field_With_Replacement
                  (Field    => Union_Id (Scalar_Range (Id)),
                   Semantic => True)));
+ 
+             pragma Assert (No (Parent (Scalar_Range (Id))));
+             Set_Parent (Scalar_Range (Id), Id);
           end if;
  
           --  Scope
*************** package body Sem_Util is
*** 24946,24952 ****
              --  In case of a call rewritten in GNATprove mode while "inlining
              --  for proof" go to the original call.
  
!             elsif Nkind (Par) = N_Null_Statement then
                 pragma Assert
                   (GNATprove_Mode
                      and then
--- 25713,25719 ----
              --  In case of a call rewritten in GNATprove mode while "inlining
              --  for proof" go to the original call.
  
!             elsif Nkind (Par) in N_Null_Statement | N_Block_Statement then
                 pragma Assert
                   (GNATprove_Mode
                      and then
*************** package body Sem_Util is
*** 25380,25385 ****
--- 26147,26154 ----
                 end if;
  
                 if Nkind (P) = N_Selected_Component
+                --  and then Ekind (Entity (Selector_Name (P)))
+                --             in Record_Field_Kind
                   and then Present (Entry_Formal (Entity (Selector_Name (P))))
                 then
                    --  Case of a reference to an entry formal
*************** package body Sem_Util is
*** 25542,25557 ****
  
              if Sure
                and then Modification_Comes_From_Source
                and then Overlays_Constant (Ent)
                and then Address_Clause_Overlay_Warnings
              then
                 declare
                    Addr  : constant Node_Id := Address_Clause (Ent);
                    O_Ent : Entity_Id;
                    Off   : Boolean;
  
                 begin
!                   Find_Overlaid_Entity (Addr, O_Ent, Off);
  
                    Error_Msg_Sloc := Sloc (Addr);
                    Error_Msg_NE
--- 26311,26328 ----
  
              if Sure
                and then Modification_Comes_From_Source
+               and then Ekind (Ent) in E_Constant | E_Variable
                and then Overlays_Constant (Ent)
                and then Address_Clause_Overlay_Warnings
              then
                 declare
                    Addr  : constant Node_Id := Address_Clause (Ent);
                    O_Ent : Entity_Id;
+                   O_Typ : Entity_Id;
                    Off   : Boolean;
  
                 begin
!                   Find_Overlaid_Entity (Addr, O_Ent, O_Typ,  Off);
  
                    Error_Msg_Sloc := Sloc (Addr);
                    Error_Msg_NE
*************** package body Sem_Util is
*** 26016,26021 ****
--- 26787,26857 ----
        Write_Eol;
     end Output_Name;
  
+    ---------------------
+    -- Overlaid_Entity --
+    ---------------------
+ 
+    function Overlaid_Entity (E : Entity_Id) return Entity_Id is
+       Address : Node_Id;
+ 
+    begin
+       if Ekind (E) in E_Constant | E_Variable then
+          Address := Address_Clause (E);
+       else
+          return Empty;
+       end if;
+ 
+       if Present (Address) then
+          declare
+             Expr : Node_Id := Expression (Address);
+ 
+          begin
+             --  Only support precisely address clauses of the form P'Address
+ 
+             if Nkind (Expr) = N_Attribute_Reference
+               and then Attribute_Name (Expr) = Name_Address
+             then
+                Expr := Prefix (Expr);
+ 
+             else
+                return Empty;
+             end if;
+ 
+             loop
+ 
+                --  Precisely supported addresses refer to part of objects
+ 
+                if Is_Entity_Name (Expr) then
+                   if Is_Object (Entity (Expr)) then
+                      return Entity (Expr);
+                   else
+                      return Empty;
+                   end if;
+ 
+                elsif Nkind (Expr) in N_Selected_Component
+                                    | N_Indexed_Component
+                                    | N_Explicit_Dereference
+                then
+                   Expr := Prefix (Expr);
+ 
+                --  Taking the address of a slice is only well-defined if the
+                --  components are aliased.
+ 
+                elsif Nkind (Expr) = N_Slice
+                  and then Has_Aliased_Components (Etype (Etype (Expr)))
+                then
+                   Expr := Prefix (Expr);
+ 
+                else
+                   return Empty;
+                end if;
+             end loop;
+          end;
+       else
+          return Empty;
+       end if;
+    end Overlaid_Entity;
+ 
     ------------------
     -- Param_Entity --
     ------------------
*************** package body Sem_Util is
*** 26114,26120 ****
     -- Policy_In_Effect --
     ----------------------
  
!    function Policy_In_Effect (Policy : Name_Id) return Name_Id is
        function Policy_In_List (List : Node_Id) return Name_Id;
        --  Determine the mode of a policy in a N_Pragma list
  
--- 26950,26959 ----
     -- Policy_In_Effect --
     ----------------------
  
!    function Policy_In_Effect
!      (Policy : Name_Id;
!       Level  : Name_Id := No_Name) return Name_Id
!    is
        function Policy_In_List (List : Node_Id) return Name_Id;
        --  Determine the mode of a policy in a N_Pragma list
  
*************** package body Sem_Util is
*** 26139,26145 ****
              --  The current Check_Policy pragma matches the requested policy or
              --  appears in the single argument form (Assertion, policy_id).
  
!             if Chars (Arg1) in Name_Assertion | Policy then
                 return Chars (Arg2);
              end if;
  
--- 26978,26984 ----
              --  The current Check_Policy pragma matches the requested policy or
              --  appears in the single argument form (Assertion, policy_id).
  
!             if Chars (Arg1) in Name_Assertion | Policy | Level then
                 return Chars (Arg2);
              end if;
  
*************** package body Sem_Util is
*** 26153,26158 ****
--- 26992,26999 ----
  
        Kind : Name_Id;
  
+       Level_Id : Entity_Id;
+ 
     --  Start of processing for Policy_In_Effect
  
     begin
*************** package body Sem_Util is
*** 26160,26165 ****
--- 27001,27021 ----
           raise Program_Error;
        end if;
  
+       if Present (Level) then
+          Level_Id := Get_Assertion_Level (Level);
+          if No (Level_Id) then
+             raise Program_Error;
+          end if;
+ 
+          if Level_Id = Standard_Level_Runtime then
+             return Name_Check;
+          elsif Level_Id = Standard_Level_Static
+            or else Depends_On_Level (Level_Id, Standard_Level_Static)
+          then
+             return Name_Ignore;
+          end if;
+       end if;
+ 
        --  Inspect all policy pragmas that appear within scopes (if any)
  
        Kind := Policy_In_List (Check_Policy_List);
*************** package body Sem_Util is
*** 26182,26197 ****
           end if;
        end if;
  
-       --  In CodePeer mode and GNATprove mode, we need to consider all
-       --  assertions, unless they are disabled. Force Name_Check on
-       --  ignored assertions.
- 
-       if Kind in Name_Ignore | Name_Off
-         and then (CodePeer_Mode or GNATprove_Mode)
-       then
-          Kind := Name_Check;
-       end if;
- 
        return Kind;
     end Policy_In_Effect;
  
--- 27038,27043 ----
*************** package body Sem_Util is
*** 26225,26232 ****
  
     function Predicate_Enabled (Typ : Entity_Id) return Boolean is
     begin
!       return Present (Predicate_Function (Typ))
!         and then not Predicates_Ignored (Typ)
          and then not Predicate_Checks_Suppressed (Empty);
     end Predicate_Enabled;
  
--- 27071,27079 ----
  
     function Predicate_Enabled (Typ : Entity_Id) return Boolean is
     begin
!       return
!         Present (Predicate_Function (Typ))
!         and then not Predicates_Ignored_In_Codegen (Typ)
          and then not Predicate_Checks_Suppressed (Empty);
     end Predicate_Enabled;
  
*************** package body Sem_Util is
*** 26293,26298 ****
--- 27140,27157 ----
        return Empty;
     end Predicate_Failure_Expression;
  
+    -----------------------------------
+    -- Predicates_Ignored_In_Codegen --
+    -----------------------------------
+ 
+    function Predicates_Ignored_In_Codegen (N : Node_Id) return Boolean is
+    begin
+       return
+         Predicates_Ignored (N)
+         and then not CodePeer_Mode
+         and then not GNATprove_Mode;
+    end Predicates_Ignored_In_Codegen;
+ 
     ----------------------------------
     -- Predicate_Tests_On_Arguments --
     ----------------------------------
*************** package body Sem_Util is
*** 26497,26502 ****
--- 27356,27366 ----
        --  the case where Ent is a child unit. This procedure generates an
        --  appropriate cross-reference entry. E is the corresponding entity.
  
+       procedure Get_Attribute_Reference_Name_String (N : Node_Id);
+       --  This procedure append to the Global_Name_Buffer the decoded string
+       --  name of the attribute reference N, including apostrophes and multiple
+       --  prefixes.
+ 
        -------------------------
        -- Generate_Parent_Ref --
        -------------------------
*************** package body Sem_Util is
*** 26518,26523 ****
--- 27382,27402 ----
           end if;
        end Generate_Parent_Ref;
  
+       -----------------------------------------
+       -- Get_Attribute_Reference_Name_String --
+       -----------------------------------------
+ 
+       procedure Get_Attribute_Reference_Name_String (N : Node_Id) is
+       begin
+          if Nkind (N) /= N_Attribute_Reference then
+             Get_Decoded_Name_String (Chars (N));
+          else
+             Get_Attribute_Reference_Name_String (Prefix (N));
+             Append (Global_Name_Buffer, ''');
+             Get_Decoded_Name_String (Attribute_Name (N));
+          end if;
+       end Get_Attribute_Reference_Name_String;
+ 
     --  Start of processing for Process_End_Label
  
     begin
*************** package body Sem_Util is
*** 26598,26606 ****
        --  If the end label is not for the given entity, then either we have
        --  some previous error, or this is a generic instantiation for which
        --  we do not need to make a cross-reference in this case anyway. In
!       --  either case we simply ignore the call.
  
!       if Chars (Ent) /= Chars (Endl) then
           return;
        end if;
  
--- 27477,27488 ----
        --  If the end label is not for the given entity, then either we have
        --  some previous error, or this is a generic instantiation for which
        --  we do not need to make a cross-reference in this case anyway. In
!       --  either case we simply ignore the call. Matching label for direct
!       --  attribute definitions are checked elsewhere.
  
!       if Nkind (Endl) /= N_Attribute_Reference
!         and then Chars (Ent) /= Chars (Endl)
!       then
           return;
        end if;
  
*************** package body Sem_Util is
*** 26627,26633 ****
           --  mean the semicolon immediately following the label). This is
           --  done for the sake of the 'e' or 't' entry generated below.
  
!          Get_Decoded_Name_String (Chars (Endl));
           Set_Sloc (Endl, Sloc (Endl) + Source_Ptr (Name_Len));
        end if;
  
--- 27509,27515 ----
           --  mean the semicolon immediately following the label). This is
           --  done for the sake of the 'e' or 't' entry generated below.
  
!          Get_Attribute_Reference_Name_String (Endl);
           Set_Sloc (Endl, Sloc (Endl) + Source_Ptr (Name_Len));
        end if;
  
*************** package body Sem_Util is
*** 26713,26718 ****
--- 27595,27604 ----
        if Has_Relaxed_Finalization (From_Typ) then
           Set_Has_Relaxed_Finalization (Typ);
        end if;
+ 
+       if Deriv and then Has_Destructor (From_Typ) then
+          Set_Has_Destructor (Typ);
+       end if;
     end Propagate_Controlled_Flags;
  
     ------------------------------
*************** package body Sem_Util is
*** 27726,27732 ****
        --  Nothing to do for an ignored Ghost entity because the entity will be
        --  eliminated from the tree.
  
!       elsif Is_Ignored_Ghost_Entity (T) then
           return;
  
        --  Nothing to do if entity comes from a predefined file. Library files
--- 28612,28618 ----
        --  Nothing to do for an ignored Ghost entity because the entity will be
        --  eliminated from the tree.
  
!       elsif Is_Ignored_Ghost_Entity_In_Codegen (T) then
           return;
  
        --  Nothing to do if entity comes from a predefined file. Library files
*************** package body Sem_Util is
*** 28453,28464 ****
                 return False;
              end if;
  
-             if Ekind (Entity (Selector_Name (N))) not in
-                  E_Component | E_Discriminant
-             then
-                return False;
-             end if;
- 
              declare
                 Comp : constant Entity_Id :=
                   Original_Record_Component (Entity (Selector_Name (N)));
--- 29339,29344 ----
*************** package body Sem_Util is
*** 28981,29011 ****
     ------------------------------
  
     function Ultimate_Overlaid_Entity (E : Entity_Id) return Entity_Id is
!       Address : Node_Id;
!       Alias   : Entity_Id := E;
!       Offset  : Boolean;
  
     begin
!       --  Currently this routine is only called for stand-alone objects that
!       --  have been analysed, since the analysis of the Address aspect is often
!       --  delayed.
! 
!       pragma Assert (Ekind (E) in E_Constant | E_Variable);
  
        loop
!          Address := Address_Clause (Alias);
!          if Present (Address) then
!             Find_Overlaid_Entity (Address, Alias, Offset);
!             if Present (Alias) then
!                null;
!             else
                 return Empty;
              end if;
!          elsif Alias = E then
!             return Empty;
!          else
!             return Alias;
!          end if;
        end loop;
     end Ultimate_Overlaid_Entity;
  
--- 29861,29884 ----
     ------------------------------
  
     function Ultimate_Overlaid_Entity (E : Entity_Id) return Entity_Id is
!       Alias : Entity_Id := E;
  
     begin
!       --  Currently this routine is only called for objects that have been
!       --  analysed, since the analysis of the Address aspect is often delayed.
  
        loop
!          declare
!             Address_Root : constant Entity_Id := Overlaid_Entity (Alias);
!          begin
!             if Present (Address_Root) then
!                Alias := Address_Root;
!             elsif Alias = E then
                 return Empty;
+             else
+                return Alias;
              end if;
!          end;
        end loop;
     end Ultimate_Overlaid_Entity;
  
*************** package body Sem_Util is
*** 29018,29028 ****
  
     begin
        Pref := N;
!       while Nkind (Pref) in N_Explicit_Dereference
!                           | N_Indexed_Component
!                           | N_Selected_Component
!                           | N_Slice
!       loop
           Pref := Prefix (Pref);
        end loop;
  
--- 29891,29897 ----
  
     begin
        Pref := N;
!       while Has_Prefix (Pref) loop
           Pref := Prefix (Pref);
        end loop;
  
*************** package body Sem_Util is
*** 30077,30083 ****
           --  of the same modular type, and (M1 and M2) = 0 was intended.
  
           if Expec_Type = Standard_Boolean
!            and then Is_Modular_Integer_Type (Found_Type)
             and then Nkind (Parent (Expr)) in N_Op_And | N_Op_Or | N_Op_Xor
             and then Nkind (Right_Opnd (Parent (Expr))) in N_Op_Compare
           then
--- 30946,30952 ----
           --  of the same modular type, and (M1 and M2) = 0 was intended.
  
           if Expec_Type = Standard_Boolean
!            and then Has_Modular_Operations (Found_Type)
             and then Nkind (Parent (Expr)) in N_Op_And | N_Op_Or | N_Op_Xor
             and then Nkind (Right_Opnd (Parent (Expr))) in N_Op_Compare
           then
*************** package body Sem_Util is
*** 30555,30561 ****
           ----------------------
  
           package Interval_Sorting is
!            new Gnat.Heap_Sort_G (Move_Interval, Lt_Interval);
  
           -------------
           -- Is_Null --
--- 31424,31430 ----
           ----------------------
  
           package Interval_Sorting is
!            new GNAT.Heap_Sort_G (Move_Interval, Lt_Interval);
  
           -------------
           -- Is_Null --
*************** package body Sem_Util is
*** 30799,30806 ****
              Result      : Node_Id :=
                New_Occurrence_Of (Standard_True, Loc);
           begin
!             pragma Assert (Determiners'Length > 0 or else
!                            Is_Anonymous_Access_Type (Etype (Expr)));
  
              for I in Determiners'Range loop
                 Result := Make_And_Then
--- 31668,31674 ----
              Result      : Node_Id :=
                New_Occurrence_Of (Standard_True, Loc);
           begin
!             pragma Assert (Determiners'Length > 0);
  
              for I in Determiners'Range loop
                 Result := Make_And_Then
*************** package body Sem_Util is
*** 31014,31027 ****
             (Expr : Node_Id) return Boolean
           is
           begin
!             if Is_Anonymous_Access_Type (Etype (Expr)) then
!                --  The code in exp_attr.adb that also builds declarations
!                --  for 'Old constants doesn't handle the anonymous access
!                --  type case correctly, so we avoid that problem by
!                --  returning True here.
!                return True;
! 
!             elsif Ada_Version < Ada_2022 then
                 return False;
  
              elsif Inside_Class_Condition_Preanalysis then
--- 31882,31888 ----
             (Expr : Node_Id) return Boolean
           is
           begin
!             if Ada_Version < Ada_2022 then
                 return False;
  
              elsif Inside_Class_Condition_Preanalysis then
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_util.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_util.ads
*** gcc-15.2.0/gcc/ada/sem_util.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_util.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,33 ****
  
  with Aspects;        use Aspects;
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Exp_Tss;        use Exp_Tss;
  with Namet;          use Namet;
--- 27,32 ----
*************** package Sem_Util is
*** 54,67 ****
     --  Add A to the list of access types to process when expanding the
     --  freeze node of E.
  
!    procedure Add_Global_Declaration (N : Node_Id);
!    --  These procedures adds a declaration N at the library level, to be
     --  elaborated before any other code in the unit. It is used for example
     --  for the entity that marks whether a unit has been elaborated. The
     --  declaration is added to the Declarations list of the Aux_Decls_Node
!    --  for the current unit. The declarations are added in the current scope,
     --  so the caller should push a new scope as required before the call.
  
     function Add_Suffix (E : Entity_Id; Suffix : Character) return Name_Id;
     --  Returns the name of E adding Suffix
  
--- 53,75 ----
     --  Add A to the list of access types to process when expanding the
     --  freeze node of E.
  
!    procedure Add_Global_Declaration (Decl : Node_Id);
!    --  This procedure adds a declaration Decl at the library level, to be
     --  elaborated before any other code in the unit. It is used for example
     --  for the entity that marks whether a unit has been elaborated. The
     --  declaration is added to the Declarations list of the Aux_Decls_Node
!    --  for the current unit. The declared entity is added to current scope,
     --  so the caller should push a new scope as required before the call.
  
+    procedure Add_Local_Declaration
+      (Decl : Node_Id;
+       N    : Node_Id;
+       Scop : Entity_Id);
+    --  This procedure adds a declaration Decl to the innermost declarative
+    --  part that covers N, whose associated scope is Scop if Scop is present,
+    --  and before N if N is in this declarative part. The declared entity is
+    --  added to the scope associated with the declarative part.
+ 
     function Add_Suffix (E : Entity_Id; Suffix : Character) return Name_Id;
     --  Returns the name of E adding Suffix
  
*************** package Sem_Util is
*** 560,565 ****
--- 568,581 ----
     --  of Old_Ent is set and Old_Ent has not yet been Frozen (i.e. Is_Frozen is
     --  False).
  
+    function Direct_Attribute_Definition_Name
+      (Prefix : Entity_Id; Att_Name : Name_Id) return Name_Id;
+    --  Returns the name used for entities of direct attribute definitions.
+ 
+    procedure Copy_Assertion_Policy_Attributes (New_Prag, Old_Prag : Node_Id);
+    --  Copy Is_Checked, Is_Ignored and Ghost_Assertion_Level attributes from
+    --  Old_Node.
+ 
     function Copy_Component_List
       (R_Typ : Entity_Id;
        Loc   : Source_Ptr) return List_Id;
*************** package Sem_Util is
*** 619,625 ****
     --  Find whether there is a previous definition for name or identifier N in
     --  the current scope. Because declarations for a scope are not necessarily
     --  contiguous (e.g. for packages) the first entry on the visibility chain
!    --  for N is not necessarily in the current scope.
  
     function Current_Scope return Entity_Id;
     --  Get entity representing current scope
--- 635,655 ----
     --  Find whether there is a previous definition for name or identifier N in
     --  the current scope. Because declarations for a scope are not necessarily
     --  contiguous (e.g. for packages) the first entry on the visibility chain
!    --  for N is not necessarily in the current scope. Take, for example:
!    --
!    --  package P is
!    --     X : constant := 13;
!    --
!    --     package Q is
!    --        X : constant := 67;
!    --     end Q;
!    --
!    --     Y : constant := X;
!    --  end P;
!    --
!    --  When the declaration of Y is analyzed, the first entry on the visibility
!    --  chain is the X equal to 67, but Current_Entity_In_Scope returns the X
!    --  equal to 13.
  
     function Current_Scope return Entity_Id;
     --  Get entity representing current scope
*************** package Sem_Util is
*** 665,670 ****
--- 695,705 ----
     --  This is equivalent to Defining_Entity but it returns Empty for nodes
     --  without an entity instead of raising Program_Error.
  
+    function Defining_Entity_Of_Instance (N : Node_Id) return Entity_Id;
+    --  Given an N_Generic_Instantiation node, returns the defining entity of
+    --  the instance, that is to say the entity that is declared at N (which
+    --  is not the same as Defining_Entity (N), see Sem_Ch12).
+ 
     function Denotes_Discriminant
       (N                : Node_Id;
        Check_Concurrent : Boolean := False) return Boolean;
*************** package Sem_Util is
*** 689,694 ****
--- 724,734 ----
     function Denotes_Variable (N : Node_Id) return Boolean;
     --  Returns True if node N denotes a single variable without parentheses
  
+    function Depends_On_Level
+      (Self : Entity_Id; Other : Entity_Id) return Boolean;
+    --  Check if Assertion_Level Self depends on the Assertion_Level Other
+    --  either directly or transitively.
+ 
     function Depends_On_Discriminant (N : Node_Id) return Boolean;
     --  Returns True if N denotes a discriminant or if N is a range, a subtype
     --  indication or a scalar subtype where one of the bounds is a
*************** package Sem_Util is
*** 879,893 ****
     --  attribute 'Loop_Entry are transformed into blocks. Parts of the original
     --  loop are nested within the block.
  
     procedure Find_Overlaid_Entity
!      (N   : Node_Id;
!       Ent : out Entity_Id;
!       Off : out Boolean);
     --  The node N should be an address representation clause. Determines if the
     --  target expression is the address of an entity with an optional offset.
     --  If so, set Ent to the entity and, if there is an offset, set Off to
     --  True, otherwise to False. If it is not possible to determine that the
     --  address is of this form, then set Ent to Empty.
  
     function Find_Parameter_Type (Param : Node_Id) return Entity_Id;
     --  Return the type of formal parameter Param as determined by its
--- 919,946 ----
     --  attribute 'Loop_Entry are transformed into blocks. Parts of the original
     --  loop are nested within the block.
  
+    generic
+       with function Condition (E : Entity_Id) return Boolean;
+    function Find_Matching_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean) return Entity_Id;
+    --  Find a constructor whose profile matches the condition specified by the
+    --  generic Condition function. If Allow_Removed is True, constructors that
+    --  have been removed by marking them abstract are considered as well in the
+    --  search.
+ 
     procedure Find_Overlaid_Entity
!      (N        : Node_Id;
!       Ent      : out Entity_Id;
!       Ovrl_Typ : out Entity_Id;
!       Off      : out Boolean);
     --  The node N should be an address representation clause. Determines if the
     --  target expression is the address of an entity with an optional offset.
     --  If so, set Ent to the entity and, if there is an offset, set Off to
     --  True, otherwise to False. If it is not possible to determine that the
     --  address is of this form, then set Ent to Empty.
+    --  Ovrl_Typ is set to the type being overlaid and can be different than the
+    --  type of Ent, for example when the address clause is applied to a record
+    --  component or to an element of an array.
  
     function Find_Parameter_Type (Param : Node_Id) return Entity_Id;
     --  Return the type of formal parameter Param as determined by its
*************** package Sem_Util is
*** 1033,1038 ****
--- 1086,1098 ----
     --  to entities local to the nested package. In that case the package must
     --  be installed on the scope stack to prevent spurious visibility errors.
  
+    function From_Same_Aspect (Self, Other : Node_Id) return Boolean;
+    --  True if aspects Self and Other have the same Orginal_Aspect.
+ 
+    function From_Same_Pragma (Self, Other : Node_Id) return Boolean;
+    --  True if pragmas Self and Other have the same Original Pragma or
+    --  they are from the same aspect.
+ 
     procedure Gather_Components
       (Typ                   : Entity_Id;
        Comp_List             : Node_Id;
*************** package Sem_Util is
*** 1117,1131 ****
     --  identifier provided as the external name. Letters in the name are
     --  according to the setting of Opt.External_Name_Default_Casing.
  
     function Get_Enclosing_Object (N : Node_Id) return Entity_Id;
     --  If expression N references a part of an object, return this object.
     --  Otherwise return Empty. Expression N should have been resolved already.
  
!    function Get_Enclosing_Deep_Object (N : Node_Id) return Entity_Id;
!    --  If expression N references a reachable part of an object (as defined in
!    --  SPARK RM 6.9), return this object. Otherwise return Empty. It is similar
!    --  to Get_Enclosing_Object, but treats pointer dereference like component
!    --  selection. Expression N should have been resolved already.
  
     function Get_Generic_Entity (N : Node_Id) return Entity_Id;
     --  Returns the true generic entity in an instantiation. If the name in the
--- 1177,1203 ----
     --  identifier provided as the external name. Letters in the name are
     --  according to the setting of Opt.External_Name_Default_Casing.
  
+    function Get_Enclosing_Ghost_Entity (N : Node_Id) return Entity_Id;
+    --  If expression N references a name of either an object or of a
+    --  subprogram, then return its outermost entity that determines
+    --  whether this name denotes a ghost object.
+ 
     function Get_Enclosing_Object (N : Node_Id) return Entity_Id;
     --  If expression N references a part of an object, return this object.
     --  Otherwise return Empty. Expression N should have been resolved already.
  
!    function Get_Enum_Lit_From_Pos
!      (T   : Entity_Id;
!       Pos : Uint;
!       Loc : Source_Ptr) return Node_Id;
!    --  This function returns an identifier denoting the E_Enumeration_Literal
!    --  entity for the specified value from the enumeration type or subtype T.
!    --  The second argument is the Pos value. Constraint_Error is raised if
!    --  argument Pos is not in range. The third argument supplies a source
!    --  location for constructed nodes returned by this function. If No_Location
!    --  is supplied as source location, the location of the returned node is
!    --  copied from the original source location for the enumeration literal,
!    --  when available.
  
     function Get_Generic_Entity (N : Node_Id) return Entity_Id;
     --  Returns the true generic entity in an instantiation. If the name in the
*************** package Sem_Util is
*** 1192,1210 ****
     --  When flag Do_Checks is set, this routine will flag duplicate uses of
     --  aspects.
  
-    function Get_Enum_Lit_From_Pos
-      (T   : Entity_Id;
-       Pos : Uint;
-       Loc : Source_Ptr) return Node_Id;
-    --  This function returns an identifier denoting the E_Enumeration_Literal
-    --  entity for the specified value from the enumeration type or subtype T.
-    --  The second argument is the Pos value. Constraint_Error is raised if
-    --  argument Pos is not in range. The third argument supplies a source
-    --  location for constructed nodes returned by this function. If No_Location
-    --  is supplied as source location, the location of the returned node is
-    --  copied from the original source location for the enumeration literal,
-    --  when available.
- 
     function Get_Iterable_Type_Primitive
       (Typ : Entity_Id;
        Nam : Name_Id) return Entity_Id;
--- 1264,1269 ----
*************** package Sem_Util is
*** 1322,1327 ****
--- 1381,1390 ----
     --  Result of Has_Compatible_Alignment test, description found below. Note
     --  that the values are arranged in increasing order of problematicness.
  
+    function Has_Assertion_Level_Argument (N : Node_Id) return Boolean;
+    --  Returns true if the first argument of a pragma or an aspect is using
+    --  an Assertion_Level association.
+ 
     function Has_Compatible_Alignment
       (Obj         : Entity_Id;
        Expr        : Node_Id;
*************** package Sem_Util is
*** 1346,1351 ****
--- 1409,1421 ----
     --  appropriate reaction of a caller to Known_Incompatible is to treat it as
     --  Unknown, but issue a warning that there may be an alignment error.
  
+    function Has_Copy_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean;
+    --  Return True if a copy constructor has been explicitly declared by the
+    --  user, or the implicit copy constructor has been generated by the
+    --  compiler. If Allow_Removed is true, then also abstract constructors are
+    --  considered valid during the search.
+ 
     function Has_Declarations (N : Node_Id) return Boolean;
     --  Determines if the node can have declarations
  
*************** package Sem_Util is
*** 1367,1372 ****
--- 1437,1448 ----
     --  parameter for reading or returns an effectively volatile value for
     --  reading.
  
+    function Has_Explicit_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean;
+    --  Return True if a constructor has been explicitly declared by the user
+    --  for type Typ. If Allow_Removed is true, then also abstract constructors
+    --  are considered valid during the search.
+ 
     function Has_Full_Default_Initialization (Typ : Entity_Id) return Boolean;
     --  Determine whether type Typ defines "full default initialization" as
     --  specified by SPARK RM 3.1. To qualify as such, the type must be
*************** package Sem_Util is
*** 1450,1455 ****
--- 1526,1537 ----
     function Has_Non_Null_Statements (L : List_Id) return Boolean;
     --  Return True if L has non-null statements
  
+    function Has_Parameterless_Constructor
+      (Typ : Entity_Id; Allow_Removed : Boolean := False) return Boolean;
+    --  Determine whether Typ has a constructor with only one formal parameter.
+    --  If Allow_Removed is true, then also abstract constructors are considered
+    --  valid during the search.
+ 
     function Side_Effect_Free_Statements (L : List_Id) return Boolean;
     --  Return True if L has no statements with side effects
  
*************** package Sem_Util is
*** 1460,1470 ****
--- 1542,1565 ----
     function Is_Container_Aggregate (Exp : Node_Id) return Boolean;
     --  Is the given expression a container aggregate?
  
+    function Is_Copy_Constructor (Spec_Id : Entity_Id) return Boolean;
+    --  Return True if the specification Spec_Id denotes a copy constructor: a
+    --  constructor procedure with two formal parameters of the underlying type,
+    --  where the first formal is 'in out', and the second is 'in'. Many
+    --  additional defaulted parameters are permitted.
+ 
+    function Is_Copy_Constructor_Call (N : Node_Id) return Boolean;
+    --  Return True if N is a 'Make attribute reference with a single actual
+    --  parameter of the same type. Optionally, the only actual could be a
+    --  parameter association named "From".
+ 
     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.
  
+    --  WARNING: There is a matching C declaration of this subprogram in fe.h
+ 
     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
*** 1488,1493 ****
--- 1583,1594 ----
     --  Context_Requires_NC = False; in that case, "Might_Be_Newly_Constructed"
     --  might be a more accurate name.
  
+    function Is_Parameterless_Constructor (Spec_Id : Entity_Id) return Boolean;
+    --  Return True if the specification Spec_Id denotes a parameterless
+    --  constructor: a constructor procedure with a single 'in out' formal
+    --  parameter of the underlying type. Many additional defaulted parameters
+    --  are permitted.
+ 
     function Is_Prim_Of_Abst_Type_With_Nonstatic_CW_Pre_Post
       (Subp : Entity_Id) return Boolean;
     --  Return True if Subp is a primitive of an abstract type, where the
*************** package Sem_Util is
*** 1500,1505 ****
--- 1601,1612 ----
     --  non-null), which causes the type to not have preelaborable
     --  initialization.
  
+    function Has_Potentially_Invalid (E : Entity_Id) return Boolean;
+    --  Returns True iff entity E is subject to the Potentially_Invalid aspect.
+    --  Entity E can be either 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_Preelaborable_Initialization
       (E                 : Entity_Id;
        Preelab_Init_Expr : Node_Id := Empty) return Boolean;
*************** package Sem_Util is
*** 1551,1557 ****
     --  underlying type).
  
     function Has_Suffix (E : Entity_Id; Suffix : Character) return Boolean;
!    --  Returns true if the last character of E is Suffix. Used in Assertions.
  
     function Has_Tagged_Component (Typ : Entity_Id) return Boolean;
     --  Returns True if Typ is a composite type (array or record) that is either
--- 1658,1664 ----
     --  underlying type).
  
     function Has_Suffix (E : Entity_Id; Suffix : Character) return Boolean;
!    --  Returns true if the last character of E is Suffix.
  
     function Has_Tagged_Component (Typ : Entity_Id) return Boolean;
     --  Returns True if Typ is a composite type (array or record) that is either
*************** package Sem_Util is
*** 1640,1649 ****
     function In_Quantified_Expression (N : Node_Id) return Boolean;
     --  Returns true if the expression N occurs within a quantified expression
  
!    function In_Return_Value (Expr : Node_Id) return Boolean;
!    --  Returns true if the expression Expr occurs within a simple return
!    --  statement or is part of an assignment to the return object in an
!    --  extended return statement.
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean;
     --  Returns True if N denotes a component or subcomponent in a record or
--- 1747,1763 ----
     function In_Quantified_Expression (N : Node_Id) return Boolean;
     --  Returns true if the expression N occurs within a quantified expression
  
!    function In_Return_Value (Exp : Node_Id) return Boolean;
!    --  Returns true if expression Exp occurs within a simple return statement
!    --  or within the declaration of the return object in an extended return
!    --  statement.
! 
!    --  This predicate is intended to be used for accessibility purposes and
!    --  thus implements the criterion defined by RM 10.3.2(10.5/5): Exp must
!    --  either define the result of the enclosing function, in other words be
!    --  an operative constituent of the return value, or else must be part of
!    --  the return value and have its accessibility level tied to that of the
!    --  result of the enclosing function.
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean;
     --  Returns True if N denotes a component or subcomponent in a record or
*************** package Sem_Util is
*** 1685,1693 ****
     --  package specification. The package must be on the scope stack, and the
     --  corresponding private part must not.
  
!    function Incomplete_Or_Partial_View (Id : Entity_Id) return Entity_Id;
     --  Given the entity of a constant or a type, retrieve the incomplete or
!    --  partial view of the same entity. Note that Id may not have a partial
     --  view in which case the function returns Empty.
  
     function Incomplete_View_From_Limited_With
--- 1799,1809 ----
     --  package specification. The package must be on the scope stack, and the
     --  corresponding private part must not.
  
!    function Incomplete_Or_Partial_View
!      (Id : Entity_Id; Partial_Only : Boolean := False) return Entity_Id;
     --  Given the entity of a constant or a type, retrieve the incomplete or
!    --  partial view of the same entity. If Partial_Only is True, retrieve
!    --  only the partial view of a type. Note that Id may not have a partial
     --  view in which case the function returns Empty.
  
     function Incomplete_View_From_Limited_With
*************** package Sem_Util is
*** 1802,1808 ****
     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
--- 1918,1924 ----
     function Is_Ancestor_Package
       (E1 : Entity_Id;
        E2 : Entity_Id) return Boolean;
!    --  True if 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
*************** package Sem_Util is
*** 1817,1822 ****
--- 1933,1942 ----
     function Is_Attribute_Result (N : Node_Id) return Boolean;
     --  Determine whether node N denotes attribute 'Result
  
+    function Is_Direct_Attribute_Subp_Spec (N : Node_Id) return Boolean;
+    --  Determine whether N denotes a direct attribute definition subprogram
+    --  specification node.
+ 
     function Is_Attribute_Update (N : Node_Id) return Boolean;
     --  Determine whether node N denotes attribute 'Update
  
*************** package Sem_Util is
*** 2052,2057 ****
--- 2172,2217 ----
     --  . machine_emax = 2**14
     --  . machine_emin = 3 - machine_emax
  
+    function Is_Ignored_Ghost_Entity_In_Codegen (N : Node_Id) return Boolean;
+    --  True if N Is_Ignored_Ghost_Entity and GNATProve_mode and Codepeer_Mode
+    --  are not active.
+    --
+    --  See Is_Ignored_In_Codegen for instructions on when this function should
+    --  be used.
+ 
+    function Is_Ignored_Ghost_Pragma_In_Codegen (N : Node_Id) return Boolean;
+    --  True if N Is_Ignored_Ghost_Pragma and GNATProve_mode and Codepeer_Mode
+    --  are not active.
+    --
+    --  See Is_Ignored_In_Codegen for instructions on when this function should
+    --  be used.
+ 
+    function Is_Ignored_In_Codegen (N : Node_Id) return Boolean;
+    --  True if N Is_Ignored and GNATProve_mode and Codepeer_Mode are not
+    --  active.
+    --
+    --  Tools like GNATProve and Codepeer that use the frontend to get the
+    --  representation of the source code along with all of the code generated
+    --  for assertions. This includes even the ones that are ignored. The
+    --  frontend normally avoids the generation of such assertions and ghost
+    --  code if marked as ignored. However we should still enable the generation
+    --  when working in one of those tool modes. In most cases this means that
+    --  we should ignore the fact the given node is marked as ignored and behave
+    --  as if it was not. This involves checking attributes such as Is_Ignored
+    --  along with these tool modes.
+    --
+    --  This function (and similar _In_Codegen functions) behaves as a wrapper
+    --  for such conditions. We should use this functions in scenarios where we
+    --  would normally stop the code generation for such ignored nodes. For
+    --  example in the expander where we normally transform non-ignored nodes.
+    --  Not doing so may lead to a partially expanded tree for those tools.
+    --
+    --  On the other hand we should use these attributes directly when
+    --  propagating the Is_Ignored or other similar property related values
+    --  between nodes. Additionally we should be using the original attributes
+    --  when checking for the compatibility of the checked/ignored properties
+    --  between nodes.
+ 
     function Is_EVF_Expression (N : Node_Id) return Boolean;
     --  Determine whether node N denotes a reference to a formal parameter of
     --  a specific tagged type whose related subprogram is subject to pragma
*************** package Sem_Util is
*** 2095,2106 ****
     --  Determine whether arbitrary declaration Decl denotes a generic package,
     --  a generic subprogram or a generic body.
  
     function Is_Independent_Object (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a reference to an independent
     --  object as per RM C.6(8).
  
     function Is_Inherited_Operation (E : Entity_Id) return Boolean;
!    --  E is a subprogram. Return True is E is an implicit operation inherited
     --  by a derived type declaration.
  
     function Is_Inlinable_Expression_Function (Subp : Entity_Id) return Boolean;
--- 2255,2270 ----
     --  Determine whether arbitrary declaration Decl denotes a generic package,
     --  a generic subprogram or a generic body.
  
+    function Is_In_Context_Clause (N : Node_Id) return Boolean;
+    --  Returns True if N appears within the context clause of a unit, and False
+    --  for any other placement.
+ 
     function Is_Independent_Object (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N denotes a reference to an independent
     --  object as per RM C.6(8).
  
     function Is_Inherited_Operation (E : Entity_Id) return Boolean;
!    --  E is a subprogram. Return True if E is an implicit operation inherited
     --  by a derived type declaration.
  
     function Is_Inlinable_Expression_Function (Subp : Entity_Id) return Boolean;
*************** package Sem_Util is
*** 2145,2153 ****
     --  Determines whether Expr is a reference to a variable or formal parameter
     --  of mode OUT or IN OUT of the current enclosing subprogram.
  
-    function Is_Master (N : Node_Id) return Boolean;
-    --  Determine if the given node N constitutes a finalization master
- 
     function Is_Name_Reference (N : Node_Id) return Boolean;
     --  Determine whether arbitrary node N is a reference to a name. This is
     --  similar to Is_Object_Reference but returns True only if N can be renamed
--- 2309,2314 ----
*************** package Sem_Util is
*** 2165,2171 ****
     --  the encapsulated expression is nontrivial.
  
     function Is_Null_Extension
!     (T : Entity_Id; Ignore_Privacy : Boolean := False) return Boolean;
     --  Given a tagged type, returns True if argument is a type extension
     --  that introduces no new components (discriminant or nondiscriminant).
     --  Ignore_Privacy should be True for use in implementing dynamic semantics.
--- 2326,2332 ----
     --  the encapsulated expression is nontrivial.
  
     function Is_Null_Extension
!      (T : Entity_Id; Ignore_Privacy : Boolean := False) return Boolean;
     --  Given a tagged type, returns True if argument is a type extension
     --  that introduces no new components (discriminant or nondiscriminant).
     --  Ignore_Privacy should be True for use in implementing dynamic semantics.
*************** package Sem_Util is
*** 2189,2197 ****
     --  (with a null extension if tagged). Returns True for interface types,
     --  False for discriminated types.
  
!    function Is_Object_Image (Prefix : Node_Id) return Boolean;
!    --  Returns True if an 'Img, 'Image, 'Wide_Image, or 'Wide_Wide_Image
!    --  attribute is applied to an object.
  
     function Is_Object_Reference (N : Node_Id) return Boolean;
     --  Determines if the tree referenced by N represents an object. Both
--- 2350,2360 ----
     --  (with a null extension if tagged). Returns True for interface types,
     --  False for discriminated types.
  
!    function Is_Object_Prefix (Prefix : Node_Id) return Boolean;
!    --  Returns True if the given prefix of an attribute reference denotes
!    --  an object. Useful for attributes such as 'Img, 'Image, 'Wide_Image,
!    --  or 'Wide_Wide_Image, where the prefix may denote either an object or
!    --  a type/subtype.
  
     function Is_Object_Reference (N : Node_Id) return Boolean;
     --  Determines if the tree referenced by N represents an object. Both
*************** package Sem_Util is
*** 2216,2221 ****
--- 2379,2389 ----
     --  legal. They will need to be checked again after subprogram call has
     --  been resolved.
  
+    function Is_Same_Or_Depends_On_Level
+      (Self : Entity_Id; Other : Entity_Id) return Boolean
+    is (Self = Other or else Depends_On_Level (Self, Other));
+    --  Check if Assertion_Level Self is or depends on the Assertion_Level Other
+ 
     function Is_Package_Contract_Annotation (Item : Node_Id) return Boolean;
     --  Determine whether aspect specification or pragma Item is one of the
     --  following package contract annotations:
*************** package Sem_Util is
*** 2377,2382 ****
--- 2545,2551 ----
     --    Pre
     --    Pre_Class
     --    Precondition
+    --    Program_Exit
     --    Refined_Depends
     --    Refined_Global
     --    Refined_Post
*************** package Sem_Util is
*** 2417,2431 ****
     --  Determine whether an arbitrary entity denotes an instance of function
     --  Ada.Unchecked_Conversion.
  
!    function Is_Universal_Numeric_Type (T : Entity_Id) return Boolean;
!    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
  
--- 2586,2604 ----
     --  Determine whether an arbitrary entity denotes an instance of function
     --  Ada.Unchecked_Conversion.
  
!    function Is_Unchecked_Union_Equality (Id : Entity_Id) return Boolean;
!    --  Determine whether an arbitrary entity denotes the predefined equality
!    --  function of an Unchecked_Union type (see Build_Variant_Record_Equality).
  
     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_Universal_Numeric_Type (T : Entity_Id) return Boolean;
+    pragma Inline (Is_Universal_Numeric_Type);
+    --  True if T is Universal_Integer or Universal_Real
+ 
     function Is_User_Defined_Equality (Id : Entity_Id) return Boolean;
     --  Determine whether an entity denotes a user-defined equality
  
*************** package Sem_Util is
*** 2536,2547 ****
     --  if the entity Ent is not for an object. Last_Assignment_Only has the
     --  same meaning as for the call with no Ent.
  
-    procedure Kill_Size_Check_Code (E : Entity_Id);
-    --  Called when an address clause or pragma Import is applied to an entity.
-    --  If the entity is a variable or a constant, and size check code is
-    --  present, this size check code is killed, since the object will not be
-    --  allocated by the program.
- 
     function Known_Non_Null (N : Node_Id) return Boolean;
     --  Given a node N for a subexpression of an access type, determines if
     --  this subexpression yields a value that is known at compile time to
--- 2709,2714 ----
*************** package Sem_Util is
*** 2868,2874 ****
     --  of the corresponding formal entity, otherwise returns Empty. Also
     --  handles the case of references to renamings of formals.
  
!    function Policy_In_Effect (Policy : Name_Id) return Name_Id;
     --  Given a policy, return the policy identifier associated with it. If no
     --  such policy is in effect, the value returned is No_Name.
  
--- 3035,3044 ----
     --  of the corresponding formal entity, otherwise returns Empty. Also
     --  handles the case of references to renamings of formals.
  
!    function Policy_In_Effect
!      (Policy : Name_Id;
!       Level  : Name_Id := No_Name)
!       return Name_Id;
     --  Given a policy, return the policy identifier associated with it. If no
     --  such policy is in effect, the value returned is No_Name.
  
*************** package Sem_Util is
*** 2886,2891 ****
--- 3056,3068 ----
     --  returns the result of recursing on the ancestor subtype.
     --  Otherwise, returns Empty.
  
+    function Predicates_Ignored_In_Codegen (N : Node_Id) return Boolean;
+    --  True if N Predicates_Ignored is set and GNATProve_mode and Codepeer_Mode
+    --  are not active.
+    --
+    --  See Is_Ignored_In_Codegen for instructions on when this function should
+    --  be used.
+ 
     function Predicate_Function_Needs_Membership_Parameter (Typ : Entity_Id)
       return Boolean is
       (Present (Predicate_Failure_Expression (Typ, Inherited_OK => True)));
*************** package Sem_Util is
*** 2944,2954 ****
        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;
--- 3121,3131 ----
        Comp     : Boolean := False;
        Deriv    : Boolean := False);
     --  Set Disable_Controlled, Finalize_Storage_Only, Has_Controlled_Component,
!    --  Has_Destructor, 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;
*************** package Sem_Util is
*** 3301,3312 ****
     --  prevents the construction of a composite stream operation. If Op is
     --  specified we check only for the given stream operation.
  
     function Ultimate_Overlaid_Entity (E : Entity_Id) return Entity_Id;
!    --  If entity E is overlaying some other entity via an Address clause (which
!    --  possibly overlays yet another entity via its own Address clause), then
!    --  return the ultimate overlaid entity. If entity E is not overlaying any
!    --  other entity (or the overlaid entity cannot be determined statically),
!    --  then return Empty.
     --
     --  Subsidiary to the analysis of object overlays in SPARK.
  
--- 3478,3497 ----
     --  prevents the construction of a composite stream operation. If Op is
     --  specified we check only for the given stream operation.
  
+    function Overlaid_Entity (E : Entity_Id) return Entity_Id;
+    --  This function implements the definition of precisely supported address
+    --  clause in SPARK. If E has an address clause of the form P'Address, where
+    --  P is a part of an object, return the root object of P. Otherwise, return
+    --  Empty.
+    --
+    --  Subsidiary to the analysis of object overlays in SPARK.
+ 
     function Ultimate_Overlaid_Entity (E : Entity_Id) return Entity_Id;
!    --  If entity E is overlaying some other entity via a precisely supported
!    --  Address clause (which possibly overlays yet another entity via its own
!    --  Address clause), then return the ultimate overlaid entity. If entity E
!    --  is not overlaying any other entity (or the overlaid entity cannot be
!    --  determined statically), then return Empty.
     --
     --  Subsidiary to the analysis of object overlays in SPARK.
  
*************** package Sem_Util is
*** 3497,3506 ****
           --     - its determining expressions are all known on entry; and
           --     - Ada_Version >= Ada_2022.
           --  See RM 6.1.1 for definitions of these terms.
-          --
-          --  Also returns True if Expr is of an anonymous access type;
-          --  this is just because we want the code that knows how to build
-          --  'Old temps in that case to reside in only one place.
  
           function Conditional_Evaluation_Condition
             (Expr : Node_Id) return Node_Id;
--- 3682,3687 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_warn.adb gcc-16.1.0-RC-20260423/gcc/ada/sem_warn.adb
*** gcc-15.2.0/gcc/ada/sem_warn.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_warn.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,34 ****
  with Accessibility;  use Accessibility;
  with Atree;          use Atree;
  with Debug;          use Debug;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
  with Exp_Code;       use Exp_Code;
  with Lib;            use Lib;
--- 26,34 ----
  with Accessibility;  use Accessibility;
  with Atree;          use Atree;
  with Debug;          use Debug;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
+ with Errid;          use Errid;
  with Errout;         use Errout;
  with Exp_Code;       use Exp_Code;
  with Lib;            use Lib;
*************** with Sem_Aux;        use Sem_Aux;
*** 43,55 ****
  with Sem_Eval;       use Sem_Eval;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  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 Warnsw;         use Warnsw;
--- 43,55 ----
  with Sem_Eval;       use Sem_Eval;
  with Sem_Prag;       use Sem_Prag;
  with Sem_Util;       use Sem_Util;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
  with Snames;         use Snames;
  with Stand;          use Stand;
  with Stringt;        use Stringt;
+ with System.Case_Util;
  with Tbuild;         use Tbuild;
  with Uintp;          use Uintp;
  with Warnsw;         use Warnsw;
*************** package body Sem_Warn is
*** 825,830 ****
--- 825,837 ----
        --  For an entry formal entity from an entry declaration, find the
        --  corresponding body formal from the given accept statement.
  
+       function Create_Add_Constant_Fix (E : Entity_Id) return Fix_Array;
+       --  Creates a fix for adding the constant modifier in the declaration for
+       --  E.
+       --
+       --  No fix is generated when the declaration was using multiple
+       --  identifiers.
+ 
        function Generic_Body_Formal (E : Entity_Id) return Entity_Id;
        --  Warnings on unused formals of subprograms are placed on the entity
        --  in the subprogram body, which seems preferable because it suggests
*************** package body Sem_Warn is
*** 1202,1215 ****
             or else Warnings_Off_Check_Spec (E1);
        end Warnings_Off_E1;
  
     --  Start of processing for Check_References
  
     begin
        --  No messages if warnings are suppressed, or if we have detected any
        --  real errors so far (this last check avoids junk messages resulting
!       --  from errors, e.g. a subunit that is not loaded).
  
!       if Warning_Mode = Suppress or else Serious_Errors_Detected /= 0 then
           return;
        end if;
  
--- 1209,1255 ----
             or else Warnings_Off_Check_Spec (E1);
        end Warnings_Off_E1;
  
+       -----------------------------
+       -- Create_Add_Constant_Fix --
+       -----------------------------
+ 
+       function Create_Add_Constant_Fix (E : Entity_Id) return Fix_Array is
+          Decl : constant Node_Id := Parent (E);
+       begin
+          if Nkind (Decl) not in N_Object_Declaration  then
+             return No_Fixes;
+          end if;
+ 
+          --  Only generate a fix in the simplest scenario where a declaration
+          --  is used to define one entity.
+ 
+          if Prev_Ids (Decl) or else More_Ids (Decl) then
+             return No_Fixes;
+          end if;
+ 
+          return
+            (1 =>
+               (Fix
+                  (Description => "Add constant",
+                   Edits       =>
+                     (1 =>
+                        Insertion
+                          ("constant ", Sloc (Object_Definition (Decl)))))));
+       end Create_Add_Constant_Fix;
+ 
     --  Start of processing for Check_References
  
     begin
        --  No messages if warnings are suppressed, or if we have detected any
        --  real errors so far (this last check avoids junk messages resulting
!       --  from errors, e.g. a subunit that is not loaded). No messages if
!       --  we are in preanalysis (warnings will be detected properly later,
!       --  during analysis).
  
!       if Warning_Mode = Suppress
!         or else Serious_Errors_Detected /= 0
!         or else not Full_Analysis
!       then
           return;
        end if;
  
*************** package body Sem_Warn is
*** 1307,1313 ****
                    then
                       Error_Msg_N
                         ("?k?& is not modified, consider pragma Export for "
!                         & "volatile variable!", E1);
  
                    --  Another special case, Exception_Occurrence, this catches
                    --  the case of exception choice (and a bit more too, but not
--- 1347,1355 ----
                    then
                       Error_Msg_N
                         ("?k?& is not modified, consider pragma Export for "
!                         & "volatile variable!",
!                         E1,
!                         GNAT0007);
  
                    --  Another special case, Exception_Occurrence, this catches
                    --  the case of exception choice (and a bit more too, but not
*************** package body Sem_Warn is
*** 1327,1333 ****
                    then
                       Error_Msg_N -- CODEFIX
                         ("?k?& is not modified, could be declared constant!",
!                         E1);
                    end if;
  
                 --  Other cases of a variable or parameter never set in source
--- 1369,1378 ----
                    then
                       Error_Msg_N -- CODEFIX
                         ("?k?& is not modified, could be declared constant!",
!                         E1,
!                         GNAT0008,
!                         Fixes => Create_Add_Constant_Fix (E1));
! 
                    end if;
  
                 --  Other cases of a variable or parameter never set in source
*************** package body Sem_Warn is
*** 1712,1728 ****
  
                and then Ekind (E1) /= E_Class_Wide_Type
  
!               --  Objects other than parameters of task types are allowed to
!               --  be non-referenced, since they start up tasks.
! 
!               and then ((Ekind (E1) /= E_Variable
!                           and then Ekind (E1) /= E_Constant
!                           and then Ekind (E1) /= E_Component)
! 
!                          --  Check that E1T is not a task or a composite type
!                          --  with a task component.
  
!                          or else not Has_Task (E1T))
  
                --  For subunits, only place warnings on the main unit itself,
                --  since parent units are not completely compiled.
--- 1757,1767 ----
  
                and then Ekind (E1) /= E_Class_Wide_Type
  
!               --  Objects that are not parameters and whose types have tasks
!               --  are allowed to be non-referenced since they start up tasks.
  
!               and then not (Ekind (E1) in E_Variable | E_Constant | E_Component
!                             and then Has_Task (E1T))
  
                --  For subunits, only place warnings on the main unit itself,
                --  since parent units are not completely compiled.
*************** package body Sem_Warn is
*** 3049,3054 ****
--- 3088,3227 ----
        --  context may force use of IN OUT, even if the parameter is not
        --  modified for this particular case).
  
+       function Change_In_Out_To_In_Fix (Body_E : Entity_Id) return Fix_Array;
+       --  Scan the location of the IN OUT token in the parameter
+       --  specification of Body_E and create:
+       --  *  A fix for removing the IN OUT modifier
+       --  *  A fix for replacing the IN OUT modifier with the IN modifier
+       --
+       --  If multiple identifiers were used in the specification then no fix is
+       --  generated.
+ 
+       -----------------------------
+       -- Change_In_Out_To_In_Fix --
+       -----------------------------
+ 
+       function Change_In_Out_To_In_Fix (Body_E : Entity_Id) return Fix_Array is
+          Spec_E         : constant Entity_Id := Spec_Entity (Body_E);
+          Body_E_Param   : constant Node_Id := Parent (Body_E);
+          Spec_E_Param   : Node_Id;
+          Body_In_Out_Span : Source_Span;
+          Spec_In_Out_Span : Source_Span;
+          Found       : Boolean;
+ 
+          procedure Location_Of_In_Out
+            (Param_Spec  : Node_Id;
+             In_Out_Span : out Source_Span;
+             Found       : out Boolean);
+          --  Scan the location of the IN OUT token in the parameter
+          --  specfication.
+ 
+          ------------------------
+          -- Location_Of_In_Out --
+          ------------------------
+ 
+          procedure Location_Of_In_Out
+            (Param_Spec  : Node_Id;
+             In_Out_Span : out Source_Span;
+             Found       : out Boolean)
+          is
+             SI  : constant Source_File_Index :=
+               Get_Source_File_Index (Sloc (Param_Spec));
+             Src : constant Source_Buffer_Ptr := Source_Text (SI);
+ 
+             F : constant Source_Ptr :=
+               Last_Sloc (Defining_Identifier (Param_Spec));
+             L : constant Source_Ptr :=
+               First_Sloc (Parameter_Type (Param_Spec));
+ 
+             Tok : constant String := "in out ";
+ 
+             S : Source_Ptr;
+          begin
+             S := F;
+             while S + Tok'Length <= L loop
+                declare
+                   SS : String := String (Src (S .. S + Tok'Length - 1));
+ 
+                begin
+                   --  Note that the instance of System.Case_Util.To_Lower that
+                   --  has signature
+                   --
+                   --     function To_Lower (A : String) return String
+                   --
+                   --  cannot be used here because it is not present in the
+                   --  run-time library used by the bootstrap compiler at the
+                   --  time of writing.
+ 
+                   System.Case_Util.To_Lower (SS);
+ 
+                   if SS = Tok then
+                      Found := True;
+                      In_Out_Span := To_Span (S, S, S + Tok'Length - 1);
+                      return;
+                   end if;
+                end;
+ 
+                S := S + 1;
+             end loop;
+ 
+             Found := False;
+             In_Out_Span := To_Span (No_Location);
+          end Location_Of_In_Out;
+       begin
+          if Nkind (Body_E_Param) not in N_Parameter_Specification then
+             return No_Fixes;
+          end if;
+ 
+          if Prev_Ids (Body_E_Param) or else More_Ids (Body_E_Param) then
+             return No_Fixes;
+          end if;
+ 
+          Location_Of_In_Out (Body_E_Param, Body_In_Out_Span, Found);
+ 
+          --  This probably indicates a problem in the scanner, but we should
+          --  not crash when producing an error message.
+ 
+          if not Found then
+             return No_Fixes;
+          end if;
+ 
+          --  Just update the body if no spec available
+ 
+          if No (Spec_E) then
+             return
+               (1 =>
+                  (Fix
+                     (Description => "Remove IN OUT",
+                      Edits       => (1 => Deletion (Body_In_Out_Span)))),
+                2 =>
+                  Fix
+                    (Description => "Replace IN OUT with IN",
+                     Edits       => (1 => Edit ("in ", Body_In_Out_Span))));
+          end if;
+ 
+          Spec_E_Param := Parent (Spec_E);
+          Location_Of_In_Out (Spec_E_Param, Spec_In_Out_Span, Found);
+ 
+          if not Found then
+             return No_Fixes;
+          end if;
+ 
+          return
+            (1 =>
+               (Fix
+                  (Description => "Remove IN OUT",
+                   Edits       =>
+                     (1 => Deletion (Spec_In_Out_Span),
+                      2 => Deletion (Body_In_Out_Span)))),
+             2 =>
+               Fix
+                 (Description => "Replace IN OUT with IN",
+                  Edits       =>
+                    (1 => Edit ("in ", Spec_In_Out_Span),
+                     2 => Edit ("in ", Body_In_Out_Span))));
+       end Change_In_Out_To_In_Fix;
+ 
        --------------------
        -- Warn_On_In_Out --
        --------------------
*************** package body Sem_Warn is
*** 3105,3111 ****
                 if not Is_Trivial_Subprogram (Scope (E1)) then
                    if Warn_On_Constant then
                       Error_Msg_N
!                        ("?k?formal parameter & is not modified!", E1);
                       Error_Msg_N
                         ("\?k?mode could be IN instead of `IN OUT`!", E1);
  
--- 3278,3287 ----
                 if not Is_Trivial_Subprogram (Scope (E1)) then
                    if Warn_On_Constant then
                       Error_Msg_N
!                        ("?k?formal parameter & is not modified!",
!                         E1,
!                         GNAT0009,
!                         Fixes => Change_In_Out_To_In_Fix (E1));
                       Error_Msg_N
                         ("\?k?mode could be IN instead of `IN OUT`!", E1);
  
*************** package body Sem_Warn is
*** 3470,3475 ****
--- 3646,3669 ----
        end if;
     end Warn_On_Constant_Valid_Condition;
  
+    ---------------------------------------
+    -- Warn_On_Ignored_Equality_Operator --
+    ---------------------------------------
+ 
+    procedure Warn_On_Ignored_Equality_Operator
+      (Typ      : Entity_Id;
+       Comp_Typ : Entity_Id;
+       Loc      : Source_Ptr) is
+    begin
+       if Warn_On_Ignored_Equality then
+          Error_Msg_Node_2 := Comp_Typ;
+          Error_Msg_N ("?_q?""="" for type & uses predefined ""="" for }", Typ);
+ 
+          Error_Msg_Sloc := Loc;
+          Error_Msg_N ("\?_q?""="" # is ignored here", Typ);
+       end if;
+    end Warn_On_Ignored_Equality_Operator;
+ 
     -----------------------------
     -- Warn_On_Known_Condition --
     -----------------------------
*************** package body Sem_Warn is
*** 4670,4678 ****
                       if Nkind (Parent (LA)) in N_Procedure_Call_Statement
                                               | N_Parameter_Association
                       then
!                         Error_Msg_NE
!                           ("?m?& modified by call, but value overwritten #!",
!                            LA, Ent);
                       else
                          Error_Msg_NE -- CODEFIX
                            ("?m?useless assignment to&, value overwritten #!",
--- 4864,4874 ----
                       if Nkind (Parent (LA)) in N_Procedure_Call_Statement
                                               | N_Parameter_Association
                       then
!                         if Warn_On_All_Unread_Out_Parameters then
!                            Error_Msg_NE
!                             ("?m?& modified by call, but value overwritten #!",
!                              LA, Ent);
!                         end if;
                       else
                          Error_Msg_NE -- CODEFIX
                            ("?m?useless assignment to&, value overwritten #!",
*************** package body Sem_Warn is
*** 4747,4753 ****
        Ent : Entity_Id;
  
     begin
!       if Warn_On_Modified_Unread
          and then In_Extended_Main_Source_Unit (E)
        then
           Ent := First_Entity (E);
--- 4943,4949 ----
        Ent : Entity_Id;
  
     begin
!       if (Warn_On_Modified_Unread or Warn_On_All_Unread_Out_Parameters)
          and then In_Extended_Main_Source_Unit (E)
        then
           Ent := First_Entity (E);
diff -Nrcpad gcc-15.2.0/gcc/ada/sem_warn.ads gcc-16.1.0-RC-20260423/gcc/ada/sem_warn.ads
*** gcc-15.2.0/gcc/ada/sem_warn.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sem_warn.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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_Warn is
*** 173,178 ****
--- 173,187 ----
     --  Op assuming that its scalar operands are valid. Emit a warning when the
     --  result of the evaluation is True or False.
  
+    procedure Warn_On_Ignored_Equality_Operator
+      (Typ      : Entity_Id;
+       Comp_Typ : Entity_Id;
+       Loc      : Source_Ptr);
+    --  Typ is a composite type and Comp_Typ is the type of one of its
+    --  components. Output a warning notifying that the predefined "="
+    --  for Comp_Typ takes precedence over the user-defined equality
+    --  defined at the given location.
+ 
     procedure Warn_On_Known_Condition (C : Node_Id);
     --  C is a node for a boolean expression resulting from a relational
     --  or membership operation. If the expression has a compile time known
diff -Nrcpad gcc-15.2.0/gcc/ada/set_targ.adb gcc-16.1.0-RC-20260423/gcc/ada/set_targ.adb
*** gcc-15.2.0/gcc/ada/set_targ.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/set_targ.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/set_targ.ads gcc-16.1.0-RC-20260423/gcc/ada/set_targ.ads
*** gcc-15.2.0/gcc/ada/set_targ.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/set_targ.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2013-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Set_Targ is
*** 93,99 ****
  
     type FPT_Mode_Entry is record
        NAME      : String_Ptr;     -- Name of mode (no null character at end)
!       DIGS      : Natural;        -- Digits for floating-point type
        FLOAT_REP : Float_Rep_Kind; -- Float representation
        PRECISION : Natural;        -- Precision in bits
        SIZE      : Natural;        -- Size in bits
--- 93,99 ----
  
     type FPT_Mode_Entry is record
        NAME      : String_Ptr;     -- Name of mode (no null character at end)
!       DIGS      : Positive;       -- Digits for floating-point type
        FLOAT_REP : Float_Rep_Kind; -- Float representation
        PRECISION : Natural;        -- Precision in bits
        SIZE      : Natural;        -- Size in bits
diff -Nrcpad gcc-15.2.0/gcc/ada/sfn_scan.adb gcc-16.1.0-RC-20260423/gcc/ada/sfn_scan.adb
*** gcc-15.2.0/gcc/ada/sfn_scan.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sfn_scan.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 SFN_Scan is
*** 261,268 ****
        if At_EOF then
           Error ("unexpected end of file");
        end if;
- 
-       return;
     end Check_Not_At_EOF;
  
     -----------------
--- 261,266 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sfn_scan.ads gcc-16.1.0-RC-20260423/gcc/ada/sfn_scan.ads
*** gcc-15.2.0/gcc/ada/sfn_scan.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sfn_scan.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2000-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-android-asm.h gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-android-asm.h
*** gcc-15.2.0/gcc/ada/sigtramp-android-asm.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-android-asm.h	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
   *                                                                          *
   *                     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- *
--- 6,12 ----
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *        Copyright (C) 2024-2026, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-android.c gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-android.c
*** gcc-15.2.0/gcc/ada/sigtramp-android.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-android.c	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
   *                                                                          *
   *                         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- *
--- 6,12 ----
   *                                                                          *
   *                         C/Asm Implementation File                        *
   *                                                                          *
!  *           Copyright (C) 2015-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-arm-qnx.c gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-arm-qnx.c
*** gcc-15.2.0/gcc/ada/sigtramp-arm-qnx.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-arm-qnx.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-ios.c gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-ios.c
*** gcc-15.2.0/gcc/ada/sigtramp-ios.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-ios.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2015-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-qnx.c gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-qnx.c
*** gcc-15.2.0/gcc/ada/sigtramp-qnx.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-qnx.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *           Copyright (C) 2017-2026, Free Software Foundation, Inc.        *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-vxworks-target.h gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-vxworks-target.h
*** gcc-15.2.0/gcc/ada/sigtramp-vxworks-target.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-vxworks-target.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                     Asm Implementation Include File                      *
   *                                                                          *
!  *         Copyright (C) 2011-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 79,85 ****
  #undef TCR
  #define TCR(S) TAB(CR(S))
  
! /* REGNO constants, dwarf column numbers for registers of interest.  */
  
  #if defined (__PPC__)
  
--- 79,98 ----
  #undef TCR
  #define TCR(S) TAB(CR(S))
  
! /* REGNO constants, dwarf column numbers for registers of interest.
! 
!    In the REGNO definitions that follow, when there is a register
!    number argument N, the use of parens around N in the result
!    is to be avoided.  These eventually expand as a register column
!    number in a .cfi_offset directive within an "asm" statement,
!    through stringification.  Parens in the macro expansion would
!    end up in the result and yield code such as
! 
!      asm(".cfi_offset (0), <offset-expr>")
! 
!    The parens impair readability here, and could even cause
!    processing errors from llvm compilers that interpret the
!    directives.  */
  
  #if defined (__PPC__)
  
***************
*** 87,93 ****
  #define REGNO_CTR 66
  #define REGNO_CR  70
  #define REGNO_XER 76
! #define REGNO_GR(N) (N)
  
  #define REGNO_PC  67  /* ARG_POINTER_REGNUM  */
  
--- 100,106 ----
  #define REGNO_CTR 66
  #define REGNO_CR  70
  #define REGNO_XER 76
! #define REGNO_GR(N) N
  
  #define REGNO_PC  67  /* ARG_POINTER_REGNUM  */
  
***************
*** 95,106 ****
  
  #elif defined (ARMEL)
  
! #define REGNO_G_REG_OFFSET(N) (N)
  
  #define FUNCTION "%function"
  
  #ifdef __aarch64__
! #define REGNO_PC_OFFSET  96  /* DWARF_ALT_FRAME_RETURN_COLUMN */
  #else
  #define REGNO_PC_OFFSET  15  /* PC_REGNUM */
  #endif
--- 108,127 ----
  
  #elif defined (ARMEL)
  
! #define REGNO_G_REG_OFFSET(N) N
  
  #define FUNCTION "%function"
  
  #ifdef __aarch64__
! 
! /* For the return column, GCC has DWARF_ALT_FRAME_RETURN_COLUMN (96)
!    while libunwind, used with llvm toolchains, implements the PC (!= LR)
!    ABI column 32.  */
! #ifdef __llvm__
! #define REGNO_PC_OFFSET 32
! #else
! #define REGNO_PC_OFFSET 96 /* DWARF_ALT_FRAME_RETURN_COLUMN */
! #endif
  #else
  #define REGNO_PC_OFFSET  15  /* PC_REGNUM */
  #endif
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp-vxworks.c gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-vxworks.c
*** gcc-15.2.0/gcc/ada/sigtramp-vxworks.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp-vxworks.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                         Asm Implementation File                          *
   *                                                                          *
!  *         Copyright (C) 2011-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
*************** void __gnat_set_is_vxsim(int val) {
*** 114,122 ****
  }
  #endif
  
  void __gnat_sigtramp (int signo, void *si, void *sc,
! 		      __sigtramphandler_t * handler)
!      __attribute__((optimize(2)));
  
  void __gnat_sigtramp (int signo, void *si, void *sc,
  		      __sigtramphandler_t * handler)
--- 114,130 ----
  }
  #endif
  
+ /* When one is known for the compiler processing this runtime file,
+    a function attribute requesting optimization for the said function.
+    Assume __has_attribute is available for such queries, valid for at
+    least gcc and clang.  */
+ #if __has_attribute(optimize)
+ #define OPTIMIZE_O2  __attribute__((optimize(2)));
+ #else
+ #define OPTIMIZE_O2
+ #endif
  void __gnat_sigtramp (int signo, void *si, void *sc,
! 		      __sigtramphandler_t * handler) OPTIMIZE_O2;
  
  void __gnat_sigtramp (int signo, void *si, void *sc,
  		      __sigtramphandler_t * handler)
diff -Nrcpad gcc-15.2.0/gcc/ada/sigtramp.h gcc-16.1.0-RC-20260423/gcc/ada/sigtramp.h
*** gcc-15.2.0/gcc/ada/sigtramp.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sigtramp.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 2011-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo-cn.adb gcc-16.1.0-RC-20260423/gcc/ada/sinfo-cn.adb
*** gcc-15.2.0/gcc/ada/sinfo-cn.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo-cn.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo-cn.ads gcc-16.1.0-RC-20260423/gcc/ada/sinfo-cn.ads
*** gcc-15.2.0/gcc/ada/sinfo-cn.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo-cn.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo-utils.adb gcc-16.1.0-RC-20260423/gcc/ada/sinfo-utils.adb
*** gcc-15.2.0/gcc/ada/sinfo-utils.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo-utils.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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 Sinfo.Utils is
*** 183,188 ****
--- 183,191 ----
     --     break nnd if n = 12345
     --  and run gnat1 again from the beginning.
  
+    --  NOTE WELL: Make sure gdb is in Ada mode, because "n = 12345" is always
+    --  true in C mode.
+ 
     --  The other way is to set a breakpoint near the beginning (e.g. on
     --  gnat1drv), and run. Then set Watch_Node (nickname "ww") to 12345 in gdb:
     --     ww := 12345
*************** package body Sinfo.Utils is
*** 347,352 ****
--- 350,368 ----
        end if;
     end Get_Pragma_Arg;
  
+    -----------------------
+    -- Loop_Flow_Keyword --
+    -----------------------
+ 
+    function Loop_Flow_Keyword (N : N_Loop_Flow_Statement_Id) return String is
+    begin
+       case Nkind (N) is
+          when N_Continue_Statement => return "continue";
+          when N_Exit_Statement => return "exit";
+          when others => pragma Assert (False);
+       end case;
+    end Loop_Flow_Keyword;
+ 
     procedure Destroy_Element (Elem : in out Union_Id);
     --  Does not do anything but is used to instantiate
     --  GNAT.Lists.Doubly_Linked_Lists.
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo-utils.ads gcc-16.1.0-RC-20260423/gcc/ada/sinfo-utils.ads
*** gcc-15.2.0/gcc/ada/sinfo-utils.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo-utils.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --           Copyright (C) 2020-2026, Free Software Foundation, Inc.        --
  --                                                                          --
  -- GNAT is 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.Utils is
*** 137,142 ****
--- 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 Loop_Flow_Keyword (N : N_Loop_Flow_Statement_Id) return String;
+    --  Returns the keyword corresponding to N as a string, for use in
+    --  diagnostics.
+ 
     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.
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo.adb gcc-16.1.0-RC-20260423/gcc/ada/sinfo.adb
*** gcc-15.2.0/gcc/ada/sinfo.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinfo.ads gcc-16.1.0-RC-20260423/gcc/ada/sinfo.ads
*** gcc-15.2.0/gcc/ada/sinfo.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinfo.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 402,417 ****
     --       Has_Secondary_Private_View  set in generic units
  
     --    "plus fields for expression"
!    --       Paren_Count               number of parentheses levels
!    --       Etype                     type of the expression
!    --       Is_Overloaded             >1 type interpretation exists
!    --       Is_Static_Expression      set for static expression
!    --       Raises_Constraint_Error   evaluation raises CE
!    --       Must_Not_Freeze           set if must not freeze
!    --       Do_Range_Check            set if a range check needed
!    --       Has_Dynamic_Length_Check  set if length check inserted
!    --       Assignment_OK             set if modification is OK
!    --       Is_Controlling_Actual     set for controlling argument
  
     --  Note: see under (EXPRESSION) for further details on the use of
     --  the Paren_Count field to record the number of parentheses levels.
--- 402,418 ----
     --       Has_Secondary_Private_View  set in generic units
  
     --    "plus fields for expression"
!    --       Paren_Count                  number of parentheses levels
!    --       Etype                        type of the expression
!    --       Is_Overloaded                >1 type interpretation exists
!    --       Is_Static_Expression         set for static expression
!    --       Raises_Constraint_Error      evaluation raises CE
!    --       Must_Not_Freeze              set if must not freeze
!    --       Do_Range_Check               set if a range check needed
!    --       Has_Dynamic_Length_Check     set if length check inserted
!    --       Assignment_OK                set if modification is OK
!    --       Is_Controlling_Actual        set for controlling argument
!    --       Is_Expanded_Dispatching_Call set for expanded dispatching calls
  
     --  Note: see under (EXPRESSION) for further details on the use of
     --  the Paren_Count field to record the number of parentheses levels.
*************** package Sinfo is
*** 689,695 ****
  
     --    Do_Discriminant_Check
     --    Do_Length_Check
-    --    Do_Storage_Check
  
     --  These flags are used in some specific cases by the front end, either
     --  during semantic analysis or during expansion, and cannot be expected
--- 690,695 ----
*************** package Sinfo is
*** 737,750 ****
     --  section describes the usage of the semantic fields, which are used to
     --  contain additional information determined during semantic analysis.
  
-    --  Accept_Handler_Records
-    --    This field is present only in an N_Accept_Alternative node. It is used
-    --    to temporarily hold the exception handler records from an accept
-    --    statement in a selective accept. These exception handlers will
-    --    eventually be placed in the Handler_Records list of the procedure
-    --    built for this accept (see Expand_N_Selective_Accept procedure in
-    --    Exp_Ch9 for further details).
- 
     --  Access_Types_To_Process
     --    Present in N_Freeze_Entity nodes for Incomplete or private types.
     --    Contains the list of access types which may require specific treatment
--- 737,742 ----
*************** package Sinfo is
*** 765,772 ****
     --    When tasks are declared in the corresponding declarative region this
     --    entity is located by name (its name is always _Chain) and the declared
     --    tasks are added to the chain. Note that N_Extended_Return_Statement
!    --    does not have this attribute, although it does have an activation
!    --    chain. This chain is used to store the tasks temporarily, and is not
     --    used for activating them. On successful completion of the return
     --    statement, the tasks are moved to the caller's chain, and the caller
     --    activates them.
--- 757,764 ----
     --    When tasks are declared in the corresponding declarative region this
     --    entity is located by name (its name is always _Chain) and the declared
     --    tasks are added to the chain. Note that N_Extended_Return_Statement
!    --    also has this attribute, although it is not really a task activator:
!    --    this chain is only used to store the tasks temporarily, and is not
     --    used for activating them. On successful completion of the return
     --    statement, the tasks are moved to the caller's chain, and the caller
     --    activates them.
*************** package Sinfo is
*** 805,810 ****
--- 797,808 ----
     --    ancestor of the type of the aggregate in a generic context, if any,
     --    when the type is a derived tagged type. Otherwise Empty.
  
+    --  Aspect_Ghost_Assertion_Level
+    --     Assertion_Level that was originally used in the assertion level
+    --     associations of its arguments. These aspects are transformed to new
+    --     aspects with the associated arguments and the original assertion
+    --     level is stored in this attribute.
+ 
     --  Aspect_On_Partial_View
     --    Present on an N_Aspect_Specification node. For an aspect that applies
     --    to a type entity, indicates whether the specification appears on the
*************** package Sinfo is
*** 1004,1012 ****
     --    to the defining entity for the corresponding body (NOT the node for
     --    the body itself).
  
!    --    Corresponding_Entry_Body
     --    Defined in N_Subprogram_Body. Set for subprogram bodies that implement
     --    a protected type entry; points to the body for the entry.
  
     --  Corresponding_Formal_Spec
     --    This field is set in subprogram renaming declarations, where it points
--- 1002,1011 ----
     --    to the defining entity for the corresponding body (NOT the node for
     --    the body itself).
  
!    --  Corresponding_Entry_Body
     --    Defined in N_Subprogram_Body. Set for subprogram bodies that implement
     --    a protected type entry; points to the body for the entry.
+    --    Used by codepeer.
  
     --  Corresponding_Formal_Spec
     --    This field is set in subprogram renaming declarations, where it points
*************** package Sinfo is
*** 1058,1070 ****
     --    This field is present in an N_Variant node, It references the entity
     --    for the discriminant checking function for the variant.
  
-    --  Default_Expression
-    --    This field is Empty if there is no default expression. If there is a
-    --    simple default expression (one with no side effects), then this field
-    --    simply contains a copy of the Expression field (both point to the tree
-    --    for the default expression). Default_Expression is used for
-    --    conformance checking.
- 
     --  Default_Storage_Pool
     --    This field is present in N_Compilation_Unit_Aux nodes. It is set to a
     --    copy of Opt.Default_Pool at the end of the compilation unit. See
--- 1057,1062 ----
*************** package Sinfo is
*** 1152,1165 ****
     --    listed above (e.g. in a return statement), an additional type
     --    conversion node is introduced to represent the required check.
  
-    --  Do_Storage_Check
-    --    This flag is set in an N_Allocator node to indicate that a storage
-    --    check is required for the allocation, or in an N_Subprogram_Body node
-    --    to indicate that a stack check is required in the subprogram prologue.
-    --    The N_Allocator case is handled by the routine that expands the call
-    --    to the runtime routine. The N_Subprogram_Body case is handled by the
-    --    backend, and all the semantics does is set the flag.
- 
     --  Elaborate_Present
     --    This flag is set in the N_With_Clause node to indicate that pragma
     --    Elaborate pragma appears for the with'ed units.
--- 1144,1149 ----
*************** package Sinfo is
*** 1189,1200 ****
     --    need for this field, so in the tree passed to Gigi, this field is
     --    always set to No_List.
  
-    --  Enclosing_Variant
-    --    This field is present in the N_Variant node and identifies the Node_Id
-    --    corresponding to the immediately enclosing variant when the variant is
-    --    nested, and N_Empty otherwise. Set during semantic processing of the
-    --    variant part of a record type.
- 
     --  Entity
     --    Appears in all direct names (identifiers, character literals, and
     --    operator symbols), as well as expanded names, and attributes that
--- 1173,1178 ----
*************** package Sinfo is
*** 1296,1303 ****
     --    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
--- 1274,1282 ----
     --    that references the file the external initializer points to.
  
     --  Finally_Statements
!    --    Present in N_Handled_Sequence_Of_Statements nodes. Points to a list
!    --    of statements to be executed on all possible execution paths on exit
!    --    to the sequence of statements.
  
     --  First_Inlined_Subprogram
     --    Present in the N_Compilation_Unit node for the main program. Points
*************** package Sinfo is
*** 1395,1408 ****
     --    Generic_Parent_Type is also used in an instance to determine whether a
     --    private operation overrides an inherited one.
  
-    --  Handler_List_Entry
-    --    This field is present in N_Object_Declaration nodes. It is set only
-    --    for the Handler_Record entry generated for an exception in zero cost
-    --    exception handling mode. It references the corresponding item in the
-    --    handler list, and is used to delete this entry if the corresponding
-    --    handler is deleted during optimization. For further details on why
-    --    this is required, see Exp_Ch11.Remove_Handler_Entries.
- 
     --  Has_Dereference_Action
     --    This flag is present in N_Explicit_Dereference nodes. It is set to
     --    indicate that the expansion has aready produced a call to primitive
--- 1374,1379 ----
*************** package Sinfo is
*** 1477,1483 ****
  
     --  Has_Target_Names
     --    Present in assignment statements. Indicates that the RHS contains
!    --    target names (see AI12-0125-3) and must be expanded accordingly.
  
     --  Has_Wide_Character
     --    Present in string literals, set if any wide character (i.e. character
--- 1448,1454 ----
  
     --  Has_Target_Names
     --    Present in assignment statements. Indicates that the RHS contains
!    --    target names ("@" -- see AI12-0125-3).
  
     --  Has_Wide_Character
     --    Present in string literals, set if any wide character (i.e. character
*************** package Sinfo is
*** 1515,1525 ****
     --    range is given by the programmer, even if that range is identical to
     --    the range for Float.
  
-    --  Incomplete_View
-    --    Present in full type declarations that are completions of incomplete
-    --    type declarations. Denotes the corresponding incomplete view declared
-    --    by the incomplete declaration.
- 
     --  Inherited_Discriminant
     --    This flag is present in N_Component_Association nodes. It indicates
     --    that a given component association in an extension aggregate is the
--- 1486,1491 ----
*************** package Sinfo is
*** 1677,1682 ****
--- 1643,1652 ----
     --    actuals to support a build-in-place style of call have been added to
     --    the call.
  
+    --  Is_Expanded_Dispatching_Call
+    --    This flag is set in N_Block_Statement, and expression nodes to
+    --    indicate that it is an expanded dispatching 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.
*************** package Sinfo is
*** 1701,1706 ****
--- 1671,1677 ----
     --      Pre
     --      Pre_Class
     --      Precondition
+    --      Program_Exit
     --      Refined_Depends
     --      Refined_Global
     --      Refined_Post
*************** package Sinfo is
*** 1769,1774 ****
--- 1740,1751 ----
     --    composed of interpolated string elements from string literals found
     --    in interpolated expressions.
  
+    --  Is_Interface_Pointer_Displacement
+    --    This flag is set in N_Type_Conversion nodes, and is used to indicate
+    --    that the type conversion was generated to displace the pointer to one
+    --    tagged object (pointer named "this" in the C++ terminology) from a
+    --    dispatch table to another dispatch table.
+ 
     --  Is_Known_Guaranteed_ABE
     --    Note: this flag is shared between the legacy ABE mechanism and the
     --    default ABE mechanism.
*************** package Sinfo is
*** 1879,1888 ****
     --    Indicates that an expression is a static expression according to the
     --    rules in RM-4.9. See Sem_Eval for details.
  
!    --  Is_Subprogram_Descriptor
!    --    Present in N_Object_Declaration, and set only for the object
!    --    declaration generated for a subprogram descriptor in fast exception
!    --    mode. See Exp_Ch11 for details of use.
  
     --  Is_Task_Allocation_Block
     --    A flag set in a Block_Statement node to indicate that it is the
--- 1856,1866 ----
     --    Indicates that an expression is a static expression according to the
     --    rules in RM-4.9. See Sem_Eval for details.
  
!    --  Is_Structural
!    --    Present in N_Generic_Instantiation nodes. Set if the instantiation is
!    --    structural, that is to say, is the unique anonymous instantiation of
!    --    the generic unit on the actual parameters done in the outermost scope
!    --    where it would be legal to declare an identical named instantiation.
  
     --  Is_Task_Allocation_Block
     --    A flag set in a Block_Statement node to indicate that it is the
*************** package Sinfo is
*** 2129,2134 ****
--- 2107,2118 ----
     --    indication carries a null-exclusion indicator, which is distinct from
     --    the null-exclusion indicator that may precede the access keyword.
  
+    --  Original_Pragma
+    --    When aspects with assertion level associations are transformed in to
+    --    individual aspects without the assertion level we store the original
+    --    aspect in this attribute. This is used to avoid duplicate detection on
+    --    these aspects.
+ 
     --  Original_Discriminant
     --    Present in identifiers. Used in references to discriminants that
     --    appear in generic units. Because the names of the discriminants may be
*************** package Sinfo is
*** 2145,2150 ****
--- 2129,2140 ----
     --    interferes with the Entity field, making it impossible to preserve the
     --    original entity at the point of instantiation.
  
+    --  Original_Pragma
+    --    When pragmas with assertion level associations are transformed in to
+    --    individual pragmas without the assertion level we store the original
+    --    prama in this attribute. This is used to avoid duplicate detection on
+    --    these pragmas.
+ 
     --  Others_Discrete_Choices
     --    When a case statement or variant is analyzed, the semantic checks
     --    determine the actual list of choices that correspond to an others
*************** package Sinfo is
*** 2173,2178 ****
--- 2163,2174 ----
     --    type, a subsequently generated error message indicates the position
     --    of its full declaration.
  
+    --  Pragma_Ghost_Assertion_Level
+    --     Assertion_Level that was originally used in the assertion level
+    --     associations of its arguments. These pragmas are transformed to new
+    --     pragmas with the associated arguments and the original assertion
+    --     level is stored in this attribute.
+ 
     --  Present_Expr
     --    Present in an N_Variant node. This has a meaningful value only after
     --    Gigi has back annotated the tree with representation information. At
*************** package Sinfo is
*** 2214,2227 ****
     --    to indicate that a use is redundant (and therefore need not be undone
     --    on scope exit).
  
-    --  Renaming_Exception
-    --    Present in N_Exception_Declaration node. Used to point back to the
-    --    exception renaming for an exception declared within a subprogram.
-    --    What happens is that an exception declared in a subprogram is moved
-    --    to the library level with a unique name, and the original exception
-    --    becomes a renaming. This link from the library level exception to the
-    --    renaming declaration allows registering of the proper exception name.
- 
     --  Return_Statement_Entity
     --    Present in N_Simple_Return_Statement and N_Extended_Return_Statement.
     --    Points to an E_Return_Statement representing the return statement.
--- 2210,2215 ----
*************** package Sinfo is
*** 2324,2329 ****
--- 2312,2333 ----
     --    entity of the original entity, operator, or subprogram being invoked,
     --    or the original variable being read or written.
  
+    --  Call_Or_Target_Loop
+    --    Present in continue statements. Set by Analyze_Continue_Statement and
+    --    used by Expand_Continue_Statement. If Analyze_Continue_Statement
+    --    concluded that its input node was in fact a call to a procedure named
+    --    "Continue", it contains the corresponding N_Procedure_Call_Statement
+    --    node. Otherwise it contains the E_Loop_Id of the loop the continue
+    --    statement applies to. Finally, if Analyze_Continue_Statement detects
+    --    an error, this field is set to Empty.
+ 
+    --  Tag_Propagated
+    --    This flag is set in N_Identifier, N_Explicit_Dereference, and N_Type_
+    --    Conversion nodes that are the LHS of an assignment statement. Used to
+    --    remember that the RHS of the assignment has tag indeterminate function
+    --    calls and the tag has been propagated to the calls (as part of the
+    --    bottom-up analysis of the RHS of the assignment statement).
+ 
     --  Target_Type
     --    Used in an N_Validate_Unchecked_Conversion node to point to the target
     --    type entity for the unchecked conversion instantiation which gigi must
*************** package Sinfo is
*** 2510,2515 ****
--- 2514,2520 ----
        --  Has_Private_View (set in generic units)
        --  Has_Secondary_Private_View (set in generic units)
        --  Redundant_Use
+       --  Tag_Propagated
        --  Atomic_Sync_Required
        --  plus fields for expression
  
*************** package Sinfo is
*** 2695,2700 ****
--- 2700,2707 ----
        --  Is_Delayed_Aspect
        --  Is_Disabled
        --  Import_Interface_Present
+       --  Original_Pragma
+       --  Pragma_Ghost_Assertion_Level
        --  Uneval_Old_Warn
  
        --  Note: we should have a section on what pragmas are passed on to
*************** package Sinfo is
*** 2978,2991 ****
        --  Null_Exclusion_Present
        --  Object_Definition subtype indic./array type def./access def.
        --  Expression (set to Empty if not present)
-       --  Handler_List_Entry
        --  Corresponding_Generic_Association
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
        --  No_Initialization
        --  Assignment_OK
        --  Exception_Junk
-       --  Is_Subprogram_Descriptor
        --  Has_Init_Expression
        --  Suppress_Assignment_Checks
  
--- 2985,2996 ----
*************** package Sinfo is
*** 3590,3596 ****
        --  Sloc points to WHEN
        --  Discrete_Choices
        --  Component_List
-       --  Enclosing_Variant
        --  Present_Expr
        --  Dcheck_Function
        --  Has_SP_Choice
--- 3595,3600 ----
*************** package Sinfo is
*** 3823,3828 ****
--- 3827,3833 ----
        --  Prefix
        --  Actual_Designated_Subtype
        --  Has_Dereference_Action
+       --  Tag_Propagated
        --  Atomic_Sync_Required
        --  plus fields for expression
  
*************** package Sinfo is
*** 4758,4763 ****
--- 4763,4770 ----
        --  Conversion_OK
        --  Do_Overflow_Check
        --  Rounded_Result
+       --  Tag_Propagated
+       --  Is_Interface_Pointer_Displacement
        --  plus fields for expression
  
        --  Note: if a range check is required, then the Do_Range_Check flag
*************** package Sinfo is
*** 4809,4815 ****
        --  Null_Exclusion_Present
        --  No_Initialization
        --  Is_Static_Coextension
-       --  Do_Storage_Check
        --  Is_Dynamic_Coextension
        --  plus fields for expression
  
--- 4816,4821 ----
*************** package Sinfo is
*** 5199,5204 ****
--- 5205,5211 ----
        --  Has_Created_Identifier
        --  Is_Abort_Block
        --  Is_Asynchronous_Call_Block
+       --  Is_Expanded_Dispatching_Call
        --  Is_Initialization_Block
        --  Is_Task_Allocation_Block
        --  Is_Task_Master
*************** package Sinfo is
*** 5219,5224 ****
--- 5226,5248 ----
        --  Condition (set to Empty if no WHEN part present)
        --  Next_Exit_Statement : Next exit on chain
  
+       ------------------------
+       -- Continue Statement --
+       ------------------------
+ 
+       --  This is a GNAT extension
+ 
+       --  CONTINUE_STATEMENT ::= continue [loop_NAME] [when CONDITION];
+ 
+       --  Gigi restriction: The expander ensures that the type of the Condition
+       --  field is always Standard.Boolean, even if the type in the source is
+       --  some non-standard boolean type.
+ 
+       --  N_Continue_Statement
+       --  Sloc points to CONTINUE
+       --  Name (set to Empty if no loop name present)
+       --  Condition (set to Empty if no WHEN part present)
+ 
        -------------------------
        -- 5.9  Goto Statement --
        -------------------------
*************** package Sinfo is
*** 5443,5452 ****
        --  Out_Present
        --  Null_Exclusion_Present
        --  Parameter_Type subtype mark or access definition
!       --  Expression (set to Empty if no default expression present)
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
-       --  Default_Expression
  
        ---------------
        -- 6.1  Mode --
--- 5467,5475 ----
        --  Out_Present
        --  Null_Exclusion_Present
        --  Parameter_Type subtype mark or access definition
!       --  Expression (set to Empty if no default expression)
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
  
        ---------------
        -- 6.1  Mode --
*************** package Sinfo is
*** 5479,5485 ****
        --  At_End_Proc (set to Empty if no clean up procedure)
        --  Acts_As_Spec
        --  Bad_Is_Detected used only by parser
-       --  Do_Storage_Check
        --  Has_Relative_Deadline_Pragma
        --  Is_Entry_Barrier_Function
        --  Is_Protected_Subprogram_Body
--- 5502,5507 ----
*************** package Sinfo is
*** 6381,6387 ****
        --  Condition from the guard (set to Empty if no guard present)
        --  Statements (set to Empty_List if no statements)
        --  Pragmas_Before pragmas before alt (set to No_List if none)
-       --  Accept_Handler_Records
  
        ------------------------------
        -- 9.7.1  Delay Alternative --
--- 6403,6408 ----
*************** package Sinfo is
*** 6826,6836 ****
        --  N_Exception_Declaration
        --  Sloc points to EXCEPTION
        --  Defining_Identifier
!       --  Expression
!       --  Renaming_Exception
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
  
        ------------------------------------------
        -- 11.2  Handled Sequence Of Statements --
        ------------------------------------------
--- 6847,6862 ----
        --  N_Exception_Declaration
        --  Sloc points to EXCEPTION
        --  Defining_Identifier
!       --  Expression (see below)
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
  
+       --  Expression is not present in the syntax; it is set during expansion.
+       --  An exception_declaration is treated by the back end like an object of
+       --  type Standard.Exception_Type, and Expression is the initial value.
+       --  Expression is a syntactic field to match the Expression fields of
+       --  other node kinds.
+ 
        ------------------------------------------
        -- 11.2  Handled Sequence Of Statements --
        ------------------------------------------
*************** package Sinfo is
*** 6895,6904 ****
        --  Statements
        --  End_Label (set to Empty if expander generated)
        --  Exception_Handlers (set to No_List if none present)
        --  At_End_Proc (set to Empty if no clean up procedure)
  
!       --  Note: A Handled_Sequence_Of_Statements can contain both
!       --  Exception_Handlers and an At_End_Proc.
  
        --  Note: the parent always contains a Declarations field which contains
        --  declarations associated with the handled sequence of statements. This
--- 6921,6931 ----
        --  Statements
        --  End_Label (set to Empty if expander generated)
        --  Exception_Handlers (set to No_List if none present)
+       --  Finally_Statements (set to No_List if no finally statements)
        --  At_End_Proc (set to Empty if no clean up procedure)
  
!       --  Note: An N_Handled_Sequence_Of_Statements node can simultaneously
!       --  contain Exception_Handlers, Finally_Statements and an At_End_Proc.
  
        --  Note: the parent always contains a Declarations field which contains
        --  declarations associated with the handled sequence of statements. This
*************** package Sinfo is
*** 7064,7069 ****
--- 7091,7097 ----
        --  Is_Elaboration_Warnings_OK_Node
        --  Is_Declaration_Level_Node
        --  Is_Known_Guaranteed_ABE
+       --  Is_Structural
  
        --  N_Procedure_Instantiation
        --  Sloc points to PROCEDURE
*************** package Sinfo is
*** 7080,7085 ****
--- 7108,7114 ----
        --  Must_Override set if overriding indicator present
        --  Must_Not_Override set if not_overriding indicator present
        --  Is_Known_Guaranteed_ABE
+       --  Is_Structural
  
        --  N_Function_Instantiation
        --  Sloc points to FUNCTION
*************** package Sinfo is
*** 7096,7101 ****
--- 7125,7131 ----
        --  Must_Override set if overriding indicator present
        --  Must_Not_Override set if not_overriding indicator present
        --  Is_Known_Guaranteed_ABE
+       --  Is_Structural
  
        --  Note: overriding indicator is an Ada 2005 feature
  
*************** package Sinfo is
*** 7172,7178 ****
        --  Null_Exclusion_Present (set to False if not present)
        --  Subtype_Mark (set to Empty if not present)
        --  Access_Definition (set to Empty if not present)
!       --  Default_Expression (set to Empty if no default expression)
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
  
--- 7202,7208 ----
        --  Null_Exclusion_Present (set to False if not present)
        --  Subtype_Mark (set to Empty if not present)
        --  Access_Definition (set to Empty if not present)
!       --  Expression (set to Empty if no default expression)
        --  More_Ids (set to False if no more identifiers in list)
        --  Prev_Ids (set to False if no previous identifiers in list)
  
*************** package Sinfo is
*** 7598,7604 ****
--- 7628,7636 ----
        --  Is_Delayed_Aspect
        --  Is_Disabled
        --  Is_Boolean_Aspect
+       --  Aspect_Ghost_Assertion_Level
        --  Aspect_On_Partial_View
+       --  Original_Aspect
  
        --  Note: Aspect_Specification is an Ada 2012 feature
  
*************** package Sinfo is
*** 7921,7926 ****
--- 7953,7961 ----
        --  N_Compound_Statement
        --  Actions
  
+       --  Note that N_Compound_Statement is unrelated to the Ada syntax rule
+       --  for compound_statement.
+ 
        --------------
        -- Contract --
        --------------
*************** package Sinfo is
*** 7966,7973 ****
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Exceptional_Cases, Test_Case and
!       --  Subprogram_Variant. The ordering in the list is in LIFO fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
--- 8001,8009 ----
        --  operation) are also in this list.
  
        --  Contract_Test_Cases contains a collection of pragmas that correspond
!       --  to aspects/pragmas Contract_Cases, Exceptional_Cases, Program_Exit,
!       --  Test_Case and Subprogram_Variant. The ordering in the list is in LIFO
!       --  fashion.
  
        --  Classifications contains pragmas that either declare, categorize, or
        --  establish dependencies between subprogram or package inputs and
*************** package Sinfo is
*** 8184,8190 ****
        --  An implicit label declaration is created for every occurrence of a
        --  label on a statement or a label on a block or loop. It is chained
        --  in the declarations of the innermost enclosing block as specified
!       --  in RM section 5.1 (3).
  
        --  The Defining_Identifier is the actual identifier for the statement
        --  identifier. Note that the occurrence of the label is a reference, NOT
--- 8220,8226 ----
        --  An implicit label declaration is created for every occurrence of a
        --  label on a statement or a label on a block or loop. It is chained
        --  in the declarations of the innermost enclosing block as specified
!       --  in RM section 5.1 (12).
  
        --  The Defining_Identifier is the actual identifier for the statement
        --  identifier. Note that the occurrence of the label is a reference, NOT
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-c.adb gcc-16.1.0-RC-20260423/gcc/ada/sinput-c.adb
*** gcc-15.2.0/gcc/ada/sinput-c.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-c.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-c.ads gcc-16.1.0-RC-20260423/gcc/ada/sinput-c.ads
*** gcc-15.2.0/gcc/ada/sinput-c.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-c.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-d.adb gcc-16.1.0-RC-20260423/gcc/ada/sinput-d.adb
*** gcc-15.2.0/gcc/ada/sinput-d.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-d.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2002-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-d.ads gcc-16.1.0-RC-20260423/gcc/ada/sinput-d.ads
*** gcc-15.2.0/gcc/ada/sinput-d.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-d.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-l.adb gcc-16.1.0-RC-20260423/gcc/ada/sinput-l.adb
*** gcc-15.2.0/gcc/ada/sinput-l.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-l.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput-l.ads gcc-16.1.0-RC-20260423/gcc/ada/sinput-l.ads
*** gcc-15.2.0/gcc/ada/sinput-l.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput-l.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput.adb gcc-16.1.0-RC-20260423/gcc/ada/sinput.adb
*** gcc-15.2.0/gcc/ada/sinput.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 31,37 ****
  with Opt;            use Opt;
  with Output;         use Output;
  with Scans;          use Scans;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Widechar;       use Widechar;
  
--- 31,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/sinput.ads gcc-16.1.0-RC-20260423/gcc/ada/sinput.ads
*** gcc-15.2.0/gcc/ada/sinput.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sinput.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 793,800 ****
        Full_Ref_Name     : File_Name_Type;
        Instance          : Instance_Id;
        Num_SRef_Pragmas  : Nat;
-       First_Mapped_Line : Logical_Line_Number;
        Source_Text       : Source_Buffer_Ptr;
        Source_First      : Source_Ptr;
        Source_Last       : Source_Ptr;
        Source_Checksum   : Word;
--- 793,801 ----
        Full_Ref_Name     : File_Name_Type;
        Instance          : Instance_Id;
        Num_SRef_Pragmas  : Nat;
        Source_Text       : Source_Buffer_Ptr;
+       Inlined_Call      : Source_Ptr;
+       First_Mapped_Line : Logical_Line_Number;
        Source_First      : Source_Ptr;
        Source_Last       : Source_Ptr;
        Source_Checksum   : Word;
*************** private
*** 803,809 ****
        Unit              : Unit_Number_Type;
        Time_Stamp        : Time_Stamp_Type;
        File_Type         : Type_Of_File;
-       Inlined_Call      : Source_Ptr;
        Inlined_Body      : Boolean;
        Inherited_Pragma  : Boolean;
        License           : License_Type;
--- 804,809 ----
*************** private
*** 839,890 ****
        Index : Source_File_Index := 123456789; -- for debugging
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written by Tree_Gen, we do not write uninitialized values to the file.
- 
-    AS : constant Pos := Standard'Address_Size;
- 
-    for Source_File_Record use record
-       File_Name           at  0 range 0 .. 31;
-       Reference_Name      at  4 range 0 .. 31;
-       Debug_Source_Name   at  8 range 0 .. 31;
-       Full_Debug_Name     at 12 range 0 .. 31;
-       Full_File_Name      at 16 range 0 .. 31;
-       Full_Ref_Name       at 20 range 0 .. 31;
-       Instance            at 48 range 0 .. 31;
-       Num_SRef_Pragmas    at 24 range 0 .. 31;
-       First_Mapped_Line   at 28 range 0 .. 31;
-       Source_First        at 32 range 0 .. 31;
-       Source_Last         at 36 range 0 .. 31;
-       Source_Checksum     at 40 range 0 .. 31;
-       Last_Source_Line    at 44 range 0 .. 31;
-       Template            at 52 range 0 .. 31;
-       Unit                at 56 range 0 .. 31;
-       Time_Stamp          at 60 range 0 .. 8 * Time_Stamp_Length - 1;
-       File_Type           at 74 range 0 .. 7;
-       Inlined_Call        at 88 range 0 .. 31;
-       Inlined_Body        at 75 range 0 .. 0;
-       Inherited_Pragma    at 75 range 1 .. 1;
-       License             at 76 range 0 .. 7;
-       Keyword_Casing      at 77 range 0 .. 7;
-       Identifier_Casing   at 78 range 0 .. 15;
-       Sloc_Adjust         at 80 range 0 .. 31;
-       Lines_Table_Max     at 84 range 0 .. 31;
-       Index               at 92 range 0 .. 31;
- 
-       --  The following fields are pointers, so we have to specialize their
-       --  lengths using pointer size, obtained above as Standard'Address_Size.
-       --  Note that Source_Text is a fat pointer, so it has size = AS*2.
- 
-       Source_Text         at 96 range 0      .. AS * 2 - 1;
-       Lines_Table         at 96 range AS * 2 .. AS * 3 - 1;
-       Logical_Lines_Table at 96 range AS * 3 .. AS * 4 - 1;
-    end record; -- Source_File_Record
- 
-    for Source_File_Record'Size use 96 * 8 + AS * 4;
-    --  This ensures that we did not leave out any fields
- 
     package Source_File is new Table.Table
       (Table_Component_Type => Source_File_Record,
        Table_Index_Type     => Source_File_Index,
--- 839,844 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/snames.adb-tmpl gcc-16.1.0-RC-20260423/gcc/ada/snames.adb-tmpl
*** gcc-15.2.0/gcc/ada/snames.adb-tmpl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/snames.adb-tmpl	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 281,290 ****
              return Pragma_Storage_Size;
           when Name_Storage_Unit                     =>
              return Pragma_Storage_Unit;
           when First_Pragma_Name .. Last_Pragma_Name =>
              return Pragma_Id'Val (N - First_Pragma_Name);
           when others                                =>
!             return Unknown_Pragma;
        end case;
     end Get_Pragma_Id;
  
--- 281,292 ----
              return Pragma_Storage_Size;
           when Name_Storage_Unit                     =>
              return Pragma_Storage_Unit;
+          when Name_Unsigned_Base_Range              =>
+             return Pragma_Unsigned_Base_Range;
           when First_Pragma_Name .. Last_Pragma_Name =>
              return Pragma_Id'Val (N - First_Pragma_Name);
           when others                                =>
!             return Pragma_Unknown;
        end case;
     end Get_Pragma_Id;
  
*************** package body Snames is
*** 410,415 ****
--- 412,427 ----
        end if;
     end Is_Convention_Name;
  
+    -----------------------------------------
+    -- Is_Direct_Attribute_Definition_Name --
+    -----------------------------------------
+ 
+    function Is_Direct_Attribute_Definition_Name (N : Name_Id) return Boolean is
+    begin
+       return
+         Is_Attribute_Name (N) and then N in Name_Constructor | Name_Destructor;
+    end Is_Direct_Attribute_Definition_Name;
+ 
     ------------------------------
     -- Is_Entity_Attribute_Name --
     ------------------------------
*************** package body Snames is
*** 508,514 ****
          or else N = Name_Priority
          or else N = Name_Secondary_Stack_Size
          or else N = Name_Storage_Size
!         or else N = Name_Storage_Unit;
     end Is_Pragma_Name;
  
     ---------------------------------
--- 520,527 ----
          or else N = Name_Priority
          or else N = Name_Secondary_Stack_Size
          or else N = Name_Storage_Size
!         or else N = Name_Storage_Unit
!         or else N = Name_Unsigned_Base_Range;
     end Is_Pragma_Name;
  
     ---------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/snames.ads-tmpl gcc-16.1.0-RC-20260423/gcc/ada/snames.ads-tmpl
*** gcc-15.2.0/gcc/ada/snames.ads-tmpl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/snames.ads-tmpl	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 163,168 ****
--- 163,169 ----
     Name_Local_Restrictions             : constant Name_Id := N + $;
     Name_No_Controlled_Parts            : constant Name_Id := N + $;
     Name_No_Task_Parts                  : constant Name_Id := N + $;
+    Name_Potentially_Invalid            : constant Name_Id := N + $;
     Name_Real_Literal                   : constant Name_Id := N + $;
     Name_Relaxed_Initialization         : constant Name_Id := N + $;
     Name_Stable_Properties              : constant Name_Id := N + $;
*************** package Snames is
*** 421,426 ****
--- 422,428 ----
     Name_Aggregate_Individually_Assign  : constant Name_Id := N + $; -- GNAT
     Name_Allow_Integer_Address          : constant Name_Id := N + $; -- GNAT
     Name_Annotate                       : constant Name_Id := N + $; -- GNAT
+    Name_Assertion_Level                : constant Name_Id := N + $; -- GNAT
     Name_Assertion_Policy               : constant Name_Id := N + $; -- Ada 05
     Name_Assume_No_Invalid_Values       : constant Name_Id := N + $; -- GNAT
     Name_C_Pass_By_Copy                 : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 570,576 ****
     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
--- 572,578 ----
     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 + $; -- GNAT
     Name_Ghost                          : constant Name_Id := N + $; -- GNAT
     Name_Global                         : constant Name_Id := N + $; -- GNAT
     Name_Ident                          : constant Name_Id := N + $; -- GNAT
*************** package Snames is
*** 659,664 ****
--- 661,667 ----
     --  correctly recognize and process Priority. Priority is a standard Ada 95
     --  pragma.
  
+    Name_Program_Exit                   : constant Name_Id := N + $; -- GNAT
     Name_Provide_Shift_Operators        : constant Name_Id := N + $; -- GNAT
     Name_Psect_Object                   : constant Name_Id := N + $; -- GNAT
     Name_Pure                           : constant Name_Id := N + $;
*************** package Snames is
*** 717,722 ****
--- 720,732 ----
     Name_Unreferenced                   : constant Name_Id := N + $; -- GNAT
     Name_Unreferenced_Objects           : constant Name_Id := N + $; -- GNAT
     Name_Unreserve_All_Interrupts       : constant Name_Id := N + $; -- GNAT
+ 
+    --  Note: Unsigned_Base_Range is not in this list because its name matches
+    --  the name of the corresponding attribute. However, it is included in the
+    --  definition of the type Pragma_Id and the functions Get_Pragma_Id and
+    --  Is_Pragma_Name correctly recognize and process Unsigned_Base_Range.
+    --  Unsigned_Base_Range is a Core Extension pragma.
+ 
     Name_Unused                         : constant Name_Id := N + $; -- GNAT
     Name_Volatile                       : constant Name_Id := N + $;
     Name_Volatile_Components            : constant Name_Id := N + $;
*************** package Snames is
*** 820,825 ****
--- 830,836 ----
     Name_Exception_Raised               : constant Name_Id := N + $;
     Name_External_Name                  : constant Name_Id := N + $;
     Name_Form                           : constant Name_Id := N + $;
+    Name_From                           : constant Name_Id := N + $;
     Name_Gcc                            : constant Name_Id := N + $;
     Name_General                        : constant Name_Id := N + $;
     Name_Gnat                           : constant Name_Id := N + $;
*************** package Snames is
*** 887,892 ****
--- 898,904 ----
     Name_Runtime                        : constant Name_Id := N + $;
     Name_SB                             : constant Name_Id := N + $;
     Name_Section                        : constant Name_Id := N + $;
+    Name_Self                           : constant Name_Id := N + $;
     Name_Semaphore                      : constant Name_Id := N + $;
     Name_Simple_Barriers                : constant Name_Id := N + $;
     Name_SPARK                          : constant Name_Id := N + $;
*************** package Snames is
*** 944,949 ****
--- 956,962 ----
     Name_Component_Size                 : constant Name_Id := N + $;
     Name_Compose                        : constant Name_Id := N + $;
     Name_Constrained                    : constant Name_Id := N + $;
+    Name_Constructor                    : 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
*************** package Snames is
*** 952,957 ****
--- 965,971 ----
     Name_Denorm                         : constant Name_Id := N + $;
     Name_Deref                          : constant Name_Id := N + $; -- GNAT
     Name_Descriptor_Size                : constant Name_Id := N + $;
+    Name_Destructor                     : constant Name_Id := N + $;
     Name_Digits                         : constant Name_Id := N + $;
     Name_Elaborated                     : constant Name_Id := N + $; -- GNAT
     Name_Emax                           : constant Name_Id := N + $; -- Ada 83
*************** package Snames is
*** 1052,1057 ****
--- 1066,1072 ----
     Name_Unconstrained_Array            : constant Name_Id := N + $; -- GNAT
     Name_Universal_Literal_String       : constant Name_Id := N + $; -- GNAT
     Name_Unrestricted_Access            : constant Name_Id := N + $; -- GNAT
+    Name_Unsigned_Base_Range            : constant Name_Id := N + $; -- GNAT
     Name_Update                         : constant Name_Id := N + $; -- GNAT
     Name_VADS_Size                      : constant Name_Id := N + $; -- GNAT
     Name_Val                            : constant Name_Id := N + $;
*************** package Snames is
*** 1075,1085 ****
--- 1090,1102 ----
     Name_Copy_Sign                      : constant Name_Id := N + $;
     Name_Floor                          : constant Name_Id := N + $;
     Name_Fraction                       : constant Name_Id := N + $;
+    Name_From_Address                   : constant Name_Id := N + $; -- GNAT
     Name_From_Any                       : constant Name_Id := N + $; -- GNAT
     Name_Image                          : constant Name_Id := N + $;
     Name_Img                            : constant Name_Id := N + $; -- GNAT
     Name_Input                          : constant Name_Id := N + $;
     Name_Machine                        : constant Name_Id := N + $;
+    Name_Make                           : constant Name_Id := N + $; -- GNAT
     Name_Max                            : constant Name_Id := N + $;
     Name_Min                            : constant Name_Id := N + $;
     Name_Model                          : constant Name_Id := N + $;
*************** package Snames is
*** 1388,1393 ****
--- 1405,1411 ----
     --  e.g. Name_UP_RESULT maps to "RESULT".
  
     Name_Synchronous_Task_Control         : constant Name_Id := N + $;
+    Name_Continue                         : constant Name_Id := N + $;
  
     --  Names used to implement iterators over predefined containers
  
*************** package Snames is
*** 1403,1408 ****
--- 1421,1430 ----
     Name_Reference_Control_Type           : constant Name_Id := N + $;
     Name_Get_Element_Access               : constant Name_Id := N + $;
  
+    --  Names used to implement Assertion_Levels
+ 
+    Name_uDefault_Assertion_Level          : constant Name_Id := N + $;
+ 
     --  Names for Ada 202x Aggregate aspect. Name_Aggregate is already
     --  present for gprbuild.
  
*************** package Snames is
*** 1481,1486 ****
--- 1503,1509 ----
        Attribute_Component_Size,
        Attribute_Compose,
        Attribute_Constrained,
+       Attribute_Constructor,
        Attribute_Count,
        Attribute_Default_Bit_Order,
        Attribute_Default_Scalar_Storage_Order,
*************** package Snames is
*** 1489,1494 ****
--- 1512,1518 ----
        Attribute_Denorm,
        Attribute_Deref,
        Attribute_Descriptor_Size,
+       Attribute_Destructor,
        Attribute_Digits,
        Attribute_Elaborated,
        Attribute_Emax,
*************** package Snames is
*** 1589,1594 ****
--- 1613,1619 ----
        Attribute_Unconstrained_Array,
        Attribute_Universal_Literal_String,
        Attribute_Unrestricted_Access,
+       Attribute_Unsigned_Base_Range,
        Attribute_Update,
        Attribute_VADS_Size,
        Attribute_Val,
*************** package Snames is
*** 1609,1619 ****
--- 1634,1646 ----
        Attribute_Copy_Sign,
        Attribute_Floor,
        Attribute_Fraction,
+       Attribute_From_Address,
        Attribute_From_Any,
        Attribute_Image,
        Attribute_Img,
        Attribute_Input,
        Attribute_Machine,
+       Attribute_Make,
        Attribute_Max,
        Attribute_Min,
        Attribute_Model,
*************** package Snames is
*** 1766,1771 ****
--- 1793,1799 ----
        Pragma_Aggregate_Individually_Assign,
        Pragma_Allow_Integer_Address,
        Pragma_Annotate,
+       Pragma_Assertion_Level,
        Pragma_Assertion_Policy,
        Pragma_Assume_No_Invalid_Values,
        Pragma_C_Pass_By_Copy,
*************** package Snames is
*** 1952,1957 ****
--- 1980,1986 ----
        Pragma_Predicate_Failure,
        Pragma_Preelaborate,
        Pragma_Pre_Class,
+       Pragma_Program_Exit,
        Pragma_Provide_Shift_Operators,
        Pragma_Psect_Object,
        Pragma_Pure,
*************** package Snames is
*** 2019,2028 ****
        Pragma_Secondary_Stack_Size,
        Pragma_Storage_Size,
        Pragma_Storage_Unit,
  
        --  The value to represent an unknown or unrecognized pragma
  
!       Unknown_Pragma);
  
     -----------------------------------
     -- Queuing Policy ID definitions --
--- 2048,2058 ----
        Pragma_Secondary_Stack_Size,
        Pragma_Storage_Size,
        Pragma_Storage_Unit,
+       Pragma_Unsigned_Base_Range,
  
        --  The value to represent an unknown or unrecognized pragma
  
!       Pragma_Unknown);
  
     -----------------------------------
     -- Queuing Policy ID definitions --
*************** package Snames is
*** 2053,2058 ****
--- 2083,2092 ----
     --  mode. This is the mechanism for considering this pragma illegal in
     --  normal GNAT programs.
  
+    function Is_Direct_Attribute_Definition_Name (N : Name_Id) return Boolean;
+    --  Test to see if the name N is the name of a recognized attribute and is
+    --  allowed to be directly referenced in subprogram specification.
+ 
     function Is_Entity_Attribute_Name (N : Name_Id) return Boolean;
     --  Test to see if the name N is the name of a recognized entity attribute,
     --  i.e. an attribute reference that returns an entity.
*************** package Snames is
*** 2143,2149 ****
     --  to call this function with a name that is not the name of a check.
  
     function Get_Pragma_Id (N : Name_Id) return Pragma_Id;
!    --  Returns Id of pragma corresponding to given name. Returns Unknown_Pragma
     --  if N is not a name of a known (Ada defined or GNAT-specific) pragma.
     --  Note that the function also works correctly for names of pragmas that
     --  are not included in the main list of pragma Names (e.g. Name_CPU returns
--- 2177,2183 ----
     --  to call this function with a name that is not the name of a check.
  
     function Get_Pragma_Id (N : Name_Id) return Pragma_Id;
!    --  Returns Id of pragma corresponding to given name. Returns Pragma_Unknown
     --  if N is not a name of a known (Ada defined or GNAT-specific) pragma.
     --  Note that the function also works correctly for names of pragmas that
     --  are not included in the main list of pragma Names (e.g. Name_CPU returns
diff -Nrcpad gcc-15.2.0/gcc/ada/snames.h-tmpl gcc-16.1.0-RC-20260423/gcc/ada/snames.h-tmpl
*** gcc-15.2.0/gcc/ada/snames.h-tmpl	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/snames.h-tmpl	Thu Apr 23 11:07:32 2026
*************** enum Name_Id : Int
*** 35,41 ****
  
  /* Define the numeric values for attributes.  */
  
! enum Attribute_Id : unsigned char
  {
    Attr_ !! TEMPLATE INSERTION POINT
  };
--- 35,41 ----
  
  /* Define the numeric values for attributes.  */
  
! enum Attribute_Id : Byte
  {
    Attr_ !! TEMPLATE INSERTION POINT
  };
*************** enum Attribute_Id : unsigned char
*** 46,52 ****
  static inline Attribute_Id
  Get_Attribute_Id (int id)
  {
!   extern unsigned char snames__get_attribute_id (int);
    return (Attribute_Id) snames__get_attribute_id (id);
  }
  
--- 46,52 ----
  static inline Attribute_Id
  Get_Attribute_Id (int id)
  {
!   extern Byte snames__get_attribute_id (int);
    return (Attribute_Id) snames__get_attribute_id (id);
  }
  
*************** extern Boolean Is_Pragma_Name (Name_Id);
*** 64,70 ****
  
  /* Define the numeric values for the pragmas. */
  
! enum Pragma_Id : Byte
  {
    Pragma_ !! TEMPLATE_INSERTION_POINT
  };
--- 64,70 ----
  
  /* Define the numeric values for the pragmas. */
  
! enum Pragma_Id : Word
  {
    Pragma_ !! TEMPLATE_INSERTION_POINT
  };
*************** enum Pragma_Id : Byte
*** 75,81 ****
  static inline Pragma_Id
  Get_Pragma_Id (int id)
  {
!   extern unsigned char snames__get_pragma_id (int);
    return (Pragma_Id) snames__get_pragma_id (id);
  }
  
--- 75,81 ----
  static inline Pragma_Id
  Get_Pragma_Id (int id)
  {
!   extern Word snames__get_pragma_id (int);
    return (Pragma_Id) snames__get_pragma_id (id);
  }
  
diff -Nrcpad gcc-15.2.0/gcc/ada/socket.c gcc-16.1.0-RC-20260423/gcc/ada/socket.c
*** gcc-15.2.0/gcc/ada/socket.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/socket.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *          Copyright (C) 2003-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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_gethostbyname (const char *name,
*** 280,289 ****
      return -1;
    }
    ret->h_name      = name;
!   ret->h_aliases   = &vxw_h_aliases;
    ret->h_addrtype  = AF_INET;
    ret->h_length    = 4;
!   ret->h_addr_list = &vxw_h_addr_list;
    return 0;
  }
  
--- 280,289 ----
      return -1;
    }
    ret->h_name      = name;
!   ret->h_aliases   = vxw_h_aliases;
    ret->h_addrtype  = AF_INET;
    ret->h_length    = 4;
!   ret->h_addr_list = vxw_h_addr_list;
    return 0;
  }
  
*************** __gnat_gethostbyaddr (const char *addr,
*** 302,319 ****
      return -1;
    }
  
!   if (hostGetByAddr (*(int*)addr, &vxw_h_name) != OK) {
      *h_errnop = __gnat_get_h_errno ();
      return -1;
    }
  
    vxw_h_addr       = (long) addr;
  
!   ret->h_name      = &vxw_h_name;
!   ret->h_aliases   = &vxw_h_aliases;
    ret->h_addrtype  = AF_INET;
    ret->h_length    = 4;
!   ret->h_addr_list = &vxw_h_addr_list;
    return 0;
  }
  
--- 302,319 ----
      return -1;
    }
  
!   if (hostGetByAddr (*(int*)addr, vxw_h_name) != OK) {
      *h_errnop = __gnat_get_h_errno ();
      return -1;
    }
  
    vxw_h_addr       = (long) addr;
  
!   ret->h_name      = vxw_h_name;
!   ret->h_aliases   = vxw_h_aliases;
    ret->h_addrtype  = AF_INET;
    ret->h_length    = 4;
!   ret->h_addr_list = vxw_h_addr_list;
    return 0;
  }
  
diff -Nrcpad gcc-15.2.0/gcc/ada/spark_xrefs.adb gcc-16.1.0-RC-20260423/gcc/ada/spark_xrefs.adb
*** gcc-15.2.0/gcc/ada/spark_xrefs.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/spark_xrefs.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/spark_xrefs.ads gcc-16.1.0-RC-20260423/gcc/ada/spark_xrefs.ads
*** gcc-15.2.0/gcc/ada/spark_xrefs.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/spark_xrefs.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2011-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sprint.adb gcc-16.1.0-RC-20260423/gcc/ada/sprint.adb
*** gcc-15.2.0/gcc/ada/sprint.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sprint.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 28,34 ****
  with Casing;         use Casing;
  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 Lib;            use Lib;
--- 28,33 ----
*************** with Output;         use Output;
*** 39,45 ****
  with Rtsfind;        use Rtsfind;
  with Sem_Eval;       use Sem_Eval;
  with Sem_Util;       use Sem_Util;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 38,43 ----
*************** package body Sprint is
*** 73,79 ****
     --  Set True if the -gnatdo (dump original tree) flag is set
  
     Dump_Generated_Only : Boolean;
!    --  Set True if the -gnatdG (dump generated tree) debug flag is set
     --  or for Print_Generated_Code (-gnatG) or Dump_Generated_Code (-gnatD).
  
     Dump_Freeze_Null : Boolean;
--- 71,77 ----
     --  Set True if the -gnatdo (dump original tree) flag is set
  
     Dump_Generated_Only : Boolean;
!    --  Set True if the -gnatdg (dump generated tree) debug flag is set
     --  or for Print_Generated_Code (-gnatG) or Dump_Generated_Code (-gnatD).
  
     Dump_Freeze_Null : Boolean;
*************** package body Sprint is
*** 1772,1779 ****
              Sprint_Node (Name (Node));
              Write_Char (';');
  
!          when N_Exit_Statement =>
!             Write_Indent_Str_Sloc ("exit");
              Sprint_Opt_Node (Name (Node));
  
              if Present (Condition (Node)) then
--- 1770,1777 ----
              Sprint_Node (Name (Node));
              Write_Char (';');
  
!          when N_Loop_Flow_Statement =>
!             Write_Indent_Str_Sloc (Loop_Flow_Keyword (Node));
              Sprint_Opt_Node (Name (Node));
  
              if Present (Condition (Node)) then
*************** package body Sprint is
*** 1963,1971 ****
                    Sprint_Node (Access_Definition (Node));
                 end if;
  
!                if Present (Default_Expression (Node)) then
                    Write_Str (" := ");
!                   Sprint_Node (Default_Expression (Node));
                 end if;
  
                 Write_Char (';');
--- 1961,1969 ----
                    Sprint_Node (Access_Definition (Node));
                 end if;
  
!                if Present (Expression (Node)) then
                    Write_Str (" := ");
!                   Sprint_Node (Expression (Node));
                 end if;
  
                 Write_Char (';');
*************** package body Sprint is
*** 2190,2195 ****
--- 2188,2200 ----
                 Indent_End;
              end if;
  
+             if Present (Finally_Statements (Node)) then
+                Write_Indent_Str ("finally");
+                Indent_Begin;
+                Sprint_Node_List (Finally_Statements (Node));
+                Indent_End;
+             end if;
+ 
              Sprint_At_End_Proc (Node);
  
           when N_Identifier =>
diff -Nrcpad gcc-15.2.0/gcc/ada/sprint.ads gcc-16.1.0-RC-20260423/gcc/ada/sprint.ads
*** gcc-15.2.0/gcc/ada/sprint.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sprint.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/stand.ads gcc-16.1.0-RC-20260423/gcc/ada/stand.ads
*** gcc-15.2.0/gcc/ada/stand.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stand.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Stand is
*** 484,487 ****
--- 484,499 ----
     Standard_Op_Shift_Right_Arithmetic : Entity_Id;
     --  These entities are used for shift operators generated by the expander
  
+    Standard_Level_Static  : Entity_Id;
+    --  Assertion_Level that indicates that the associated entity is never
+    --  checked.
+ 
+    Standard_Level_Runtime : Entity_Id;
+    --  Assertion_Level that indicates that the associated entity is always
+    --  checked.
+ 
+    Standard_Level_Default : Entity_Id;
+    --  A special internally defined Assertion_Level that is applied to entities
+    --  that were not using Assertion_Levels syntactically.
+ 
  end Stand;
diff -Nrcpad gcc-15.2.0/gcc/ada/standard.ads.h gcc-16.1.0-RC-20260423/gcc/ada/standard.ads.h
*** gcc-15.2.0/gcc/ada/standard.ads.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/standard.ads.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *                       Copyright (C) 2015-2026, AdaCore                   *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/stringt.adb gcc-16.1.0-RC-20260423/gcc/ada/stringt.adb
*** gcc-15.2.0/gcc/ada/stringt.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stringt.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/stringt.ads gcc-16.1.0-RC-20260423/gcc/ada/stringt.ads
*** gcc-15.2.0/gcc/ada/stringt.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stringt.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/stringt.h gcc-16.1.0-RC-20260423/gcc/ada/stringt.h
*** gcc-15.2.0/gcc/ada/stringt.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stringt.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/strub.adb gcc-16.1.0-RC-20260423/gcc/ada/strub.adb
*** gcc-15.2.0/gcc/ada/strub.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/strub.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is 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,38 ****
  --  Package containing utility procedures related to Stack Scrubbing
  
  with Atree;          use Atree;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Errout;         use Errout;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Sem_Eval;       use Sem_Eval;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Snames;         use Snames;
--- 26,36 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/strub.ads gcc-16.1.0-RC-20260423/gcc/ada/strub.ads
*** gcc-15.2.0/gcc/ada/strub.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/strub.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --            Copyright (C) 2021-2026, Free Software Foundation, Inc.       --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/style.adb gcc-16.1.0-RC-20260423/gcc/ada/style.adb
*** gcc-15.2.0/gcc/ada/style.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/style.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,39 ****
  with Atree;          use Atree;
  with Casing;         use Casing;
  with Csets;          use Csets;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Errout;         use Errout;
  with Namet;          use Namet;
  with Nlists;         use Nlists;
  with Opt;            use Opt;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Snames;         use Snames;
--- 26,37 ----
*************** package body Style is
*** 152,158 ****
  
                    --  Second OK case, modular types
  
!                   elsif Is_Modular_Integer_Type (Etype (Node)) then
                       return;
  
                    --  Third OK case, array types
--- 150,156 ----
  
                    --  Second OK case, modular types
  
!                   elsif Has_Modular_Operations (Etype (Node)) then
                       return;
  
                    --  Third OK case, array types
*************** package body Style is
*** 345,356 ****
     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
--- 343,356 ----
     begin
        if Style_Check_Xtra_Parens_Precedence
          and then
!           Paren_Count (Original_Node (N)) >
!             (if Nkind (Original_Node (N)) in N_Case_Expression
!                                            | N_Expression_With_Actions
!                                            | N_If_Expression
!                                            | N_Quantified_Expression
!                                            | N_Raise_Expression
!                                            | N_In
!                                            | N_Not_In
               then 1
               else 0)
        then
diff -Nrcpad gcc-15.2.0/gcc/ada/style.ads gcc-16.1.0-RC-20260423/gcc/ada/style.ads
*** gcc-15.2.0/gcc/ada/style.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/style.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/styleg.adb gcc-16.1.0-RC-20260423/gcc/ada/styleg.adb
*** gcc-15.2.0/gcc/ada/styleg.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/styleg.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Err_Vars;       use Err_Vars;
*** 34,40 ****
  with Errout;
  with Opt;            use Opt;
  with Scans;          use Scans;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinput;         use Sinput;
  with Stylesw;        use Stylesw;
--- 34,39 ----
*************** package body Styleg is
*** 330,336 ****
           --  Do we need to worry about UTF_32 line terminators here ???
  
           S := Scan_Ptr + 3;
!          while Source (S) not in Line_Terminator loop
              S := S + 1;
           end loop;
  
--- 329,335 ----
           --  Do we need to worry about UTF_32 line terminators here ???
  
           S := Scan_Ptr + 3;
!          while Source (S) not in EOF | Line_Terminator loop
              S := S + 1;
           end loop;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/styleg.ads gcc-16.1.0-RC-20260423/gcc/ada/styleg.ads
*** gcc-15.2.0/gcc/ada/styleg.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/styleg.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/stylesw.adb gcc-16.1.0-RC-20260423/gcc/ada/stylesw.adb
*** gcc-15.2.0/gcc/ada/stylesw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stylesw.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/stylesw.ads gcc-16.1.0-RC-20260423/gcc/ada/stylesw.ads
*** gcc-15.2.0/gcc/ada/stylesw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/stylesw.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-b.adb gcc-16.1.0-RC-20260423/gcc/ada/switch-b.adb
*** gcc-15.2.0/gcc/ada/switch-b.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-b.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-b.ads gcc-16.1.0-RC-20260423/gcc/ada/switch-b.ads
*** gcc-15.2.0/gcc/ada/switch-b.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-b.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-c.adb gcc-16.1.0-RC-20260423/gcc/ada/switch-c.adb
*** gcc-15.2.0/gcc/ada/switch-c.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-c.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 335,340 ****
--- 335,341 ----
                 end if;
  
                 Ptr := Ptr + 1;
+                Check_Semantics_Only_Mode := True;
                 Operating_Mode := Check_Semantics;
  
              --  -gnatC (Generate CodePeer information)
*************** package body Switch.C is
*** 635,640 ****
--- 636,681 ----
                       Generate_Processed_File := True;
                       Ptr := Ptr + 1;
  
+                      if Ptr <= Max
+                        and then Switch_Chars (Ptr) in 'b' | 'c' | 'e'
+                      then
+                         case Switch_Chars (Ptr) is
+                            when 'b' =>
+                               Opt.Blank_Deleted_Lines         := True;
+                               Opt.Comment_Deleted_Lines       := False;
+                               Opt.Empty_Comment_Deleted_Lines := False;
+ 
+                            when 'c' =>
+                               Opt.Blank_Deleted_Lines         := False;
+                               Opt.Comment_Deleted_Lines       := True;
+                               Opt.Empty_Comment_Deleted_Lines := False;
+ 
+                            when 'e' =>
+                               Opt.Blank_Deleted_Lines         := False;
+                               Opt.Comment_Deleted_Lines       := False;
+                               Opt.Empty_Comment_Deleted_Lines := True;
+ 
+                            when others =>
+                               raise Program_Error;
+                         end case;
+ 
+                         Ptr := Ptr + 1;
+ 
+                      --  Default to emitting blank lines for deleted lines
+                      --  when generating a preprocessor output file. This is
+                      --  despite the fact that when the file isn't being
+                      --  generated, we emit empty comment lines for the
+                      --  internally generated output (to avoid conflicts
+                      --  with style switches -gnatyu and -gnatyM), but is
+                      --  done for compatibility with the behavior of -gnateG
+                      --  prior to adding support for empty comment lines.
+ 
+                      else
+                         Opt.Blank_Deleted_Lines         := True;
+                         Opt.Comment_Deleted_Lines       := False;
+                         Opt.Empty_Comment_Deleted_Lines := False;
+                      end if;
+ 
                    --  -gnateH (set reverse Bit_Order threshold to 64)
  
                    when 'H' =>
*************** package body Switch.C is
*** 1219,1235 ****
                       List_Representation_Info :=
                         Character'Pos (C) - Character'Pos ('0');
  
!                   when 's' =>
!                      List_Representation_Info_To_File := True;
  
!                   when 'j' =>
!                      List_Representation_Info_To_JSON := True;
  
                    when 'm' =>
                       List_Representation_Info_Mechanisms := True;
  
!                   when 'e' =>
!                      List_Representation_Info_Extended := True;
  
                    when others =>
                       Bad_Switch ("-gnatR" & Switch_Chars (Ptr .. Max));
--- 1260,1279 ----
                       List_Representation_Info :=
                         Character'Pos (C) - Character'Pos ('0');
  
!                   when 'e' =>
!                      List_Representation_Info_Extended := True;
  
!                   when 'h' =>
!                      List_Representation_Info_Holes := True;
  
                    when 'm' =>
                       List_Representation_Info_Mechanisms := True;
  
!                   when 'j' =>
!                      List_Representation_Info_To_JSON := True;
! 
!                   when 's' =>
!                      List_Representation_Info_To_File := True;
  
                    when others =>
                       Bad_Switch ("-gnatR" & Switch_Chars (Ptr .. Max));
*************** package body Switch.C is
*** 1244,1249 ****
--- 1288,1299 ----
                    Osint.Fail ("-gnatRe is incompatible with -gnatRj");
                 end if;
  
+                if List_Representation_Info_To_JSON
+                  and then List_Representation_Info_Holes
+                then
+                   Osint.Fail ("-gnatRh is incompatible with -gnatRj");
+                end if;
+ 
              --  -gnats (syntax check only)
  
              when 's' =>
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-c.ads gcc-16.1.0-RC-20260423/gcc/ada/switch-c.ads
*** gcc-15.2.0/gcc/ada/switch-c.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-c.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-m.adb gcc-16.1.0-RC-20260423/gcc/ada/switch-m.adb
*** gcc-15.2.0/gcc/ada/switch-m.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-m.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch-m.ads gcc-16.1.0-RC-20260423/gcc/ada/switch-m.ads
*** gcc-15.2.0/gcc/ada/switch-m.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch-m.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/switch.adb gcc-16.1.0-RC-20260423/gcc/ada/switch.adb
*** gcc-15.2.0/gcc/ada/switch.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 is
*** 93,99 ****
           Set_Standard_Output;
           Usage;
           Write_Eol;
!          Write_Line ("Report bugs to report@adacore.com");
           Exit_Program (E_Success);
        end if;
     end Check_Version_And_Help_G;
--- 93,99 ----
           Set_Standard_Output;
           Usage;
           Write_Eol;
!          Write_Line ("Report bugs to support@adacore.com");
           Exit_Program (E_Success);
        end if;
     end Check_Version_And_Help_G;
diff -Nrcpad gcc-15.2.0/gcc/ada/switch.ads gcc-16.1.0-RC-20260423/gcc/ada/switch.ads
*** gcc-15.2.0/gcc/ada/switch.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/switch.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/sysdep.c gcc-16.1.0-RC-20260423/gcc/ada/sysdep.c
*** gcc-15.2.0/gcc/ada/sysdep.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/sysdep.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *         Copyright (C) 1992-2026, Free Software Foundation, Inc.          *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
***************
*** 40,45 ****
--- 40,51 ----
     - either they are defined as ENOENT (vx7r2);
     - or the corresponding system includes are not provided (Helix Cert).  */
  
+ #if __has_include ("strings.h")
+ /* On VxWorks6, FD_ZERO uses bzero, and index is also declared in strings.h,
+    but since it's not a standard header, don't require it.  */
+ #include "strings.h"
+ #endif
+ 
  #if __has_include ("dosFsLib.h")
  /* On helix-cert, this include is only provided for RTPs.  */
  #include "dosFsLib.h"
*************** __gnat_ttyname (int filedes ATTRIBUTE_UN
*** 331,337 ****
  #endif /* defined (__vxworks) */
  }
  #endif
! 
  #if defined (__linux__) || defined (__sun__) \
    || defined (WINNT) \
    || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
--- 337,343 ----
  #endif /* defined (__vxworks) */
  }
  #endif
! 
  #if defined (__linux__) || defined (__sun__) \
    || defined (WINNT) \
    || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \
*************** __gnat_get_task_options (void)
*** 901,907 ****
  
       Note that the same error occurs in both RTP and Kernel mode, but
       VX_DEALLOC_TCB is not defined in the RTP headers, so we need to
!      explicitely check if VX_PRIVATE_UMASK has value 0x8000
    */
  # if defined (VX_PRIVATE_UMASK) && (0x8000 == VX_PRIVATE_UMASK)
    options &= ~VX_PRIVATE_UMASK;
--- 907,913 ----
  
       Note that the same error occurs in both RTP and Kernel mode, but
       VX_DEALLOC_TCB is not defined in the RTP headers, so we need to
!      explicitly check if VX_PRIVATE_UMASK has value 0x8000
    */
  # if defined (VX_PRIVATE_UMASK) && (0x8000 == VX_PRIVATE_UMASK)
    options &= ~VX_PRIVATE_UMASK;
*************** _getpagesize (void)
*** 1070,1075 ****
--- 1076,1086 ----
  {
    return getpagesize ();
  }
+ 
+ int
+ __gnat_has_cap_sys_nice () {
+   return 0;
+ }
  #endif
  
  int
diff -Nrcpad gcc-15.2.0/gcc/ada/table.adb gcc-16.1.0-RC-20260423/gcc/ada/table.adb
*** gcc-15.2.0/gcc/ada/table.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/table.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 40,45 ****
--- 40,48 ----
        Min : constant Int := Int (Table_Low_Bound);
        --  Subscript of the minimum entry in the currently allocated table
  
+       Max : Int := Min + (Table_Initial * Table_Factor) - 1;
+       --  Subscript of the maximum entry in the currently allocated table
+ 
        Length : Int := 0;
        --  Number of entries in currently allocated table. The value of zero
        --  ensures that we initially allocate the table.
*************** package body Table is
*** 127,133 ****
  
        begin
           Locked   := False;
!          Last_Val := Min - 1;
           Max      := Min + (Table_Initial * Table_Factor) - 1;
           Length   := Max - Min + 1;
  
--- 130,136 ----
  
        begin
           Locked   := False;
!          Clear;
           Max      := Min + (Table_Initial * Table_Factor) - 1;
           Length   := Max - Min + 1;
  
*************** package body Table is
*** 369,374 ****
--- 372,395 ----
           end if;
        end Set_Item;
  
+       -----------
+       -- Clear --
+       -----------
+ 
+       procedure Clear is
+       begin
+          Last_Val := Min - 1;
+       end Clear;
+ 
+       --------------
+       -- Is_Empty --
+       --------------
+ 
+       function Is_Empty return Boolean is
+       begin
+          return Last_Val = Min - 1;
+       end Is_Empty;
+ 
        --------------
        -- Set_Last --
        --------------
diff -Nrcpad gcc-15.2.0/gcc/ada/table.ads gcc-16.1.0-RC-20260423/gcc/ada/table.ads
*** gcc-15.2.0/gcc/ada/table.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/table.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 204,209 ****
--- 204,216 ----
        --  to Index. Item will replace any value already present in the table
        --  at this position.
  
+       procedure Clear;
+       --  Resets Last to its initial value, making the table have no elements.
+       --  No memory deallocation is performed.
+ 
+       function Is_Empty return Boolean;
+       --  Returns whether the table is empty
+ 
        type Saved_Table is private;
        --  Type used for Save/Restore subprograms
  
*************** package Table is
*** 223,231 ****
        --  the official interfaces (since a modification to Last may require a
        --  reallocation of the table).
  
-       Max : Int;
-       --  Subscript of the maximum entry in the currently allocated table
- 
        type Saved_Table is record
           Last_Val : Int;
           Max      : Int;
--- 230,235 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/targext.c gcc-16.1.0-RC-20260423/gcc/ada/targext.c
*** gcc-15.2.0/gcc/ada/targext.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/targext.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *        Copyright (C) 2005-2026, Free Software Foundation, Inc.           *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/targparm.adb gcc-16.1.0-RC-20260423/gcc/ada/targparm.adb
*** gcc-15.2.0/gcc/ada/targparm.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/targparm.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Targparm is
*** 307,313 ****
  
           --  Test for type Address is private
  
!          elsif Looking_At_Skip ("   type Address is private;") then
              Opt.Address_Is_Private := True;
              goto Line_Loop_Continue;
  
--- 307,313 ----
  
           --  Test for type Address is private
  
!          elsif Looking_At_Skip ("   type Address is private") then
              Opt.Address_Is_Private := True;
              goto Line_Loop_Continue;
  
diff -Nrcpad gcc-15.2.0/gcc/ada/targparm.ads gcc-16.1.0-RC-20260423/gcc/ada/targparm.ads
*** gcc-15.2.0/gcc/ada/targparm.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/targparm.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/tbuild.adb gcc-16.1.0-RC-20260423/gcc/ada/tbuild.adb
*** gcc-15.2.0/gcc/ada/tbuild.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/tbuild.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,32 ****
  with Atree;          use Atree;
  with Aspects;        use Aspects;
  with Csets;          use Csets;
- with Einfo;          use Einfo;
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Lib;            use Lib;
--- 26,31 ----
*************** package body Tbuild is
*** 151,156 ****
--- 150,170 ----
        null;
     end Discard_Node;
  
+    --------------------------
+    -- Make_Assertion_Level --
+    --------------------------
+ 
+    function Make_Assertion_Level
+      (Loc : Source_Ptr; Nam : Name_Id) return Entity_Id
+    is
+       Level : constant Entity_Id := Make_Defining_Identifier (Loc, Nam);
+    begin
+       Mutate_Ekind (Level, E_Assertion_Level);
+       Set_Etype (Level, Standard_Void_Type);
+       Set_Scope (Level, Standard_Standard);
+       return Level;
+    end Make_Assertion_Level;
+ 
     -------------------------------------------
     -- Make_Byte_Aligned_Attribute_Reference --
     -------------------------------------------
diff -Nrcpad gcc-15.2.0/gcc/ada/tbuild.ads gcc-16.1.0-RC-20260423/gcc/ada/tbuild.ads
*** gcc-15.2.0/gcc/ada/tbuild.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/tbuild.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,33 ****
  --  specific types of tree nodes.
  
  with Namet;          use Namet;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Types;          use Types;
  with Uintp;          use Uintp;
--- 27,32 ----
*************** package Tbuild is
*** 60,65 ****
--- 59,68 ----
     --  effect (e.g. a call to the parser to parse a list of compilation
     --  units), but the List_Id value is not required.
  
+    function Make_Assertion_Level
+      (Loc : Source_Ptr; Nam : Name_Id) return Entity_Id;
+    --  Create a new Defining_Identifier node for an Assertion_Level
+ 
     function Make_Byte_Aligned_Attribute_Reference
       (Sloc           : Source_Ptr;
        Prefix         : Node_Id;
diff -Nrcpad gcc-15.2.0/gcc/ada/tempdir.adb gcc-16.1.0-RC-20260423/gcc/ada/tempdir.adb
*** gcc-15.2.0/gcc/ada/tempdir.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/tempdir.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/tempdir.ads gcc-16.1.0-RC-20260423/gcc/ada/tempdir.ads
*** gcc-15.2.0/gcc/ada/tempdir.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/tempdir.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2003-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/terminals.c gcc-16.1.0-RC-20260423/gcc/ada/terminals.c
*** gcc-15.2.0/gcc/ada/terminals.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/terminals.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *                     Copyright (C) 2008-2026, AdaCore                     *
   *                                                                          *
   * GNAT is 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_setup_child_communication
*** 724,736 ****
      if (bRet == FALSE) {
        cpid = -1;
      }
! 
!     dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
!     if (dwRet != 0) {
!       cpid = -1;
      }
  
-     cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
      process->pid = cpid;
    }
  
--- 724,739 ----
      if (bRet == FALSE) {
        cpid = -1;
      }
!     else {
!       dwRet = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
!       if (dwRet != 0) {
! 	cpid = -1;
!       }
!       else {
! 	cpid = buf[4] | (buf[5] << 8) | (buf[6] << 16) | (buf[7] << 24);
!       }
      }
  
      process->pid = cpid;
    }
  
diff -Nrcpad gcc-15.2.0/gcc/ada/tracebak.c gcc-16.1.0-RC-20260423/gcc/ada/tracebak.c
*** gcc-15.2.0/gcc/ada/tracebak.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/tracebak.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *            Copyright (C) 2000-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/treepr.adb gcc-16.1.0-RC-20260423/gcc/ada/treepr.adb
*** gcc-15.2.0/gcc/ada/treepr.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/treepr.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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;
*** 27,33 ****
  with Aspects;              use Aspects;
  with Atree;                use Atree;
  with Debug;                use Debug;
- with Einfo;                use Einfo;
  with Einfo.Entities;       use Einfo.Entities;
  with Einfo.Utils;          use Einfo.Utils;
  with Elists;               use Elists;
--- 27,32 ----
*************** with Nlists;               use Nlists;
*** 38,44 ****
  with Output;               use Output;
  with Seinfo;               use Seinfo;
  with Sem_Eval;             use Sem_Eval;
- with Sinfo;                use Sinfo;
  with Sinfo.Nodes;          use Sinfo.Nodes;
  with Sinfo.Utils;          use Sinfo.Utils;
  with Snames;               use Snames;
--- 37,42 ----
*************** package body Treepr is
*** 87,93 ****
     procedure Destroy (Value : in out Nat) is null;
     pragma Annotate (CodePeer, False_Positive, "unassigned parameter",
                      "in out parameter is required to instantiate generic");
!    --  Dummy routine for destroing hashed values
  
     package Serial_Numbers is new Dynamic_Hash_Tables
       (Key_Type              => Int,
--- 85,91 ----
     procedure Destroy (Value : in out Nat) is null;
     pragma Annotate (CodePeer, False_Positive, "unassigned parameter",
                      "in out parameter is required to instantiate generic");
!    --  Dummy routine for destroying hashed values
  
     package Serial_Numbers is new Dynamic_Hash_Tables
       (Key_Type              => Int,
*************** package body Treepr is
*** 140,146 ****
     procedure Print_Init;
     --  Initialize for printing of tree with descendants
  
!    procedure Print_End_Span (N : Node_Id);
     --  Print contents of End_Span field of node N. The format includes the
     --  implicit source location as well as the value of the field.
  
--- 138,147 ----
     procedure Print_Init;
     --  Initialize for printing of tree with descendants
  
!    procedure Print_End_Span
!      (Prefix : String;
!       Field  : Node_Field;
!       N      : Node_Id);
     --  Print contents of End_Span field of node N. The format includes the
     --  implicit source location as well as the value of the field.
  
*************** package body Treepr is
*** 328,333 ****
--- 329,336 ----
              return "Ignore_SPARK_Mode_Pragmas";
           when F_Is_CPP_Class =>
              return "Is_CPP_Class";
+          when F_Is_CPP_Constructor =>
+             return "Is_CPP_Constructor";
           when F_Is_CUDA_Kernel =>
              return "Is_CUDA_Kernel";
           when F_Is_DIC_Procedure =>
*************** package body Treepr is
*** 338,343 ****
--- 341,348 ----
              return "Is_Elaboration_Checks_OK_Id";
           when F_Is_Elaboration_Warnings_OK_Id =>
              return "Is_Elaboration_Warnings_OK_Id";
+          when F_Is_IEEE_Extended_Precision =>
+             return "Is_IEEE_Extended_Precision";
           when F_Is_RACW_Stub_Type =>
              return "Is_RACW_Stub_Type";
           when F_LSP_Subprogram =>
*************** package body Treepr is
*** 412,417 ****
--- 417,450 ----
  
     procedure pe (N : Union_Id) renames pn;
  
+    ---------
+    -- pec --
+    ---------
+ 
+    procedure pec (From : Entity_Id) is
+    begin
+       Push_Output;
+       Set_Standard_Output;
+ 
+       Print_Entity_Chain (From);
+ 
+       Pop_Output;
+    end pec;
+ 
+    ----------
+    -- rpec --
+    ----------
+ 
+    procedure rpec (From : Entity_Id) is
+    begin
+       Push_Output;
+       Set_Standard_Output;
+ 
+       Print_Entity_Chain (From, Rev => True);
+ 
+       Pop_Output;
+    end rpec;
+ 
     --------
     -- pl --
     --------
*************** package body Treepr is
*** 575,584 ****
     -- Print_End_Span --
     --------------------
  
!    procedure Print_End_Span (N : Node_Id) is
        Val : constant Uint := End_Span (N);
  
     begin
        UI_Write (Val);
        Write_Str (" (Uint = ");
        Write_Str (UI_Image (Val));
--- 608,623 ----
     -- Print_End_Span --
     --------------------
  
!    procedure Print_End_Span
!      (Prefix : String;
!       Field  : Node_Field;
!       N      : Node_Id)
!    is
        Val : constant Uint := End_Span (N);
  
     begin
+       Write_Str (Prefix);
+       Write_Str (Image (Field) & " = ");
        UI_Write (Val);
        Write_Str (" (Uint = ");
        Write_Str (UI_Image (Val));
*************** package body Treepr is
*** 587,594 ****
--- 626,665 ----
        if Present (Val) then
           Write_Location (End_Location (N));
        end if;
+ 
+       Write_Eol;
     end Print_End_Span;
  
+    ------------------------
+    -- Print_Entity_Chain --
+    ------------------------
+ 
+    procedure Print_Entity_Chain (From : Entity_Id; Rev : Boolean := False) is
+       Ent : Entity_Id := From;
+    begin
+       Printing_Descendants := False;
+       Phase := Printing;
+ 
+       loop
+          declare
+             Next_Ent : constant Entity_Id :=
+               (if Rev then Prev_Entity (Ent) else Next_Entity (Ent));
+ 
+             Prefix_Char : constant Character :=
+               (if Present (Next_Ent) then '|' else ' ');
+          begin
+             Print_Node (Ent, "", Prefix_Char);
+ 
+             exit when No (Next_Ent);
+ 
+             Ent := Next_Ent;
+ 
+             Print_Char ('|');
+             Print_Eol;
+          end;
+       end loop;
+    end Print_Entity_Chain;
+ 
     -----------------------
     -- Print_Entity_Info --
     -----------------------
*************** package body Treepr is
*** 989,997 ****
        FD     : Field_Descriptor;
        Format : UI_Format := Auto)
     is
!       NN : constant Node_Id := Node_To_Fetch_From (N, Field);
     begin
!       if not Field_Is_Initial_Zero (N, Field) then
           Print_Field (Prefix, Image (Field), NN, FD, Format);
        end if;
     end Print_Entity_Field;
--- 1060,1070 ----
        FD     : Field_Descriptor;
        Format : UI_Format := Auto)
     is
!       NN : constant Node_Id := Node_To_Fetch_From_If_Set (N, Field);
!       --  If NN is Empty, it means that we cannot compute the
!       --  Node_To_Fetch_From, so we simply skip this field.
     begin
!       if Present (NN) and then not Field_Is_Initial_Zero (N, Field) then
           Print_Field (Prefix, Image (Field), NN, FD, Format);
        end if;
     end Print_Entity_Field;
*************** package body Treepr is
*** 1144,1151 ****
        end if;
  
        if not Is_List_Member (N) then
!          Print_Str (Prefix_Str);
!          Print_Str (" Parent = ");
           Print_Node_Ref (Parent (N));
           Print_Eol;
        end if;
--- 1217,1224 ----
        end if;
  
        if not Is_List_Member (N) then
!          Print_Str (Prefix);
!          Print_Str ("Parent = ");
           Print_Node_Ref (Parent (N));
           Print_Eol;
        end if;
*************** package body Treepr is
*** 1377,1383 ****
                       --  End_Location.
  
                       if Fields (Field_Index) = F_End_Span then
!                         Print_End_Span (N);
  
                       else
                          Print_Node_Field
--- 1450,1456 ----
                       --  End_Location.
  
                       if Fields (Field_Index) = F_End_Span then
!                         Print_End_Span (Prefix, F_End_Span, N);
  
                       else
                          Print_Node_Field
*************** package body Treepr is
*** 1542,1560 ****
           --  If this is a discrete expression whose value is known, print that
           --  value.
  
!          if Nkind (N) in N_Subexpr
             and then Compile_Time_Known_Value (N)
             and then Present (Etype (N))
             and then Is_Discrete_Type (Etype (N))
           then
!             if Is_Entity_Name (N) -- e.g. enumeration literal
!               or else Nkind (N) in N_Integer_Literal
!                                  | N_Character_Literal
!                                  | N_Unchecked_Type_Conversion
!             then
!                Print_Str (" val = ");
!                UI_Write (Expr_Value (N));
!             end if;
           end if;
  
           if Nkind (N) in N_Entity then
--- 1615,1631 ----
           --  If this is a discrete expression whose value is known, print that
           --  value.
  
!          if ((Is_Entity_Name (N) -- e.g. enumeration literal
!                and then Present (Entity (N)))
!               or else Nkind (N) in N_Integer_Literal
!                                  | N_Character_Literal
!                                  | N_Unchecked_Type_Conversion)
             and then Compile_Time_Known_Value (N)
             and then Present (Etype (N))
             and then Is_Discrete_Type (Etype (N))
           then
!             Print_Str (" val = ");
!             UI_Write (Expr_Value (N));
           end if;
  
           if Nkind (N) in N_Entity then
*************** package body Treepr is
*** 1957,1973 ****
           --  Case of descendant is a node
  
           if D in Node_Range then
- 
-             --  Don't bother about Empty or Error descendants
- 
-             if D <= Union_Id (Empty_Or_Error) then
-                return;
-             end if;
- 
              declare
                 Nod : constant Node_Or_Entity_Id := Node_Or_Entity_Id (D);
  
              begin
                 --  Descendants in one of the standardly compiled internal
                 --  packages are normally ignored, unless the parent is also
                 --  in such a package (happens when Standard itself is output)
--- 2028,2043 ----
           --  Case of descendant is a node
  
           if D in Node_Range then
              declare
                 Nod : constant Node_Or_Entity_Id := Node_Or_Entity_Id (D);
  
              begin
+                --  Don't bother about Empty or Error descendants
+ 
+                if Nod in Empty | Error then
+                   return;
+                end if;
+ 
                 --  Descendants in one of the standardly compiled internal
                 --  packages are normally ignored, unless the parent is also
                 --  in such a package (happens when Standard itself is output)
diff -Nrcpad gcc-15.2.0/gcc/ada/treepr.ads gcc-16.1.0-RC-20260423/gcc/ada/treepr.ads
*** gcc-15.2.0/gcc/ada/treepr.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/treepr.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Treepr is
*** 60,65 ****
--- 60,71 ----
     --  Prints the subtree consisting of the given element list and all its
     --  referenced descendants.
  
+    procedure Print_Entity_Chain (From : Entity_Id; Rev : Boolean := False);
+    --  Prints the entity chain From is on, starting from From. In other words,
+    --  prints From and then recursively follow the Next_Entity field. If Rev is
+    --  True, prints the chain backwards, i.e. follow the Last_Entity field
+    --  instead of Next_Entity.
+ 
     --  The following debugging procedures are intended to be called from gdb.
     --  Note that in several cases there are synonyms which represent historical
     --  development, and we keep them because some people are used to them!
*************** package Treepr is
*** 103,106 ****
--- 109,120 ----
     --  on the left and add a minus sign. This just saves some typing in the
     --  debugger.
  
+    procedure pec (From : Entity_Id);
+    pragma Export (Ada, pec);
+    --  Print From and the entities that follow it on its entity chain
+ 
+    procedure rpec (From : Entity_Id);
+    pragma Export (Ada, rpec);
+    --  Like pec, but walk the entity chain backwards. The 'r' stands for
+    --  "reverse".
  end Treepr;
diff -Nrcpad gcc-15.2.0/gcc/ada/ttypes.ads gcc-16.1.0-RC-20260423/gcc/ada/ttypes.ads
*** gcc-15.2.0/gcc/ada/ttypes.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/ttypes.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Ttypes is
*** 177,184 ****
     ----------------------------------------
  
     Maximum_Alignment : constant Pos := Set_Targ.Maximum_Alignment;
!    --  The maximum alignment, in storage units, that an object or type may
!    --  require on the target machine.
  
     System_Allocator_Alignment : constant Pos :=
                                    Set_Targ.System_Allocator_Alignment;
--- 177,186 ----
     ----------------------------------------
  
     Maximum_Alignment : constant Pos := Set_Targ.Maximum_Alignment;
!    --  The maximum default alignment, in storage units, that an object or type
!    --  may require on the target machine. The implementation must never choose
!    --  a larger alignment on its own, that is to say when it is not explicitly
!    --  requested by an alignment aspect/clause in the source code.
  
     System_Allocator_Alignment : constant Pos :=
                                    Set_Targ.System_Allocator_Alignment;
diff -Nrcpad gcc-15.2.0/gcc/ada/types.adb gcc-16.1.0-RC-20260423/gcc/ada/types.adb
*** gcc-15.2.0/gcc/ada/types.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/types.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/types.ads gcc-16.1.0-RC-20260423/gcc/ada/types.ads
*** gcc-15.2.0/gcc/ada/types.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/types.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 431,441 ****
     --  Used to indicate an error in the source program. A node is actually
     --  allocated with this Id value, so that Nkind (Error) = N_Error.
  
-    Empty_Or_Error : constant Node_Id := Error;
-    --  Since Empty and Error are the first two Node_Id values, the test for
-    --  N <= Empty_Or_Error tests to see if N is Empty or Error. This definition
-    --  provides convenient self-documentation for such tests.
- 
     First_Node_Id  : constant Node_Id := Node_Low_Bound;
     --  Subscript of first allocated node. Note that Empty and Error are both
     --  allocated nodes, whose Nkind fields can be accessed without error.
--- 431,436 ----
*************** package Types is
*** 947,953 ****
        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 :=
--- 942,949 ----
        SE_Object_Too_Large,               -- 35
        PE_Stream_Operation_Not_Allowed,   -- 36
        PE_Build_In_Place_Mismatch,        -- 37
!       PE_Raise_Check_Failed,             -- 38
!       PE_Abstract_Type_Component);       -- 39
     pragma Convention (C, RT_Exception_Code);
  
     Last_Reason_Code : constant :=
*************** package Types is
*** 973,978 ****
--- 969,975 ----
                CE_Range_Check_Failed             => CE_Reason,
                CE_Tag_Check_Failed               => CE_Reason,
  
+               PE_Abstract_Type_Component        => PE_Reason,
                PE_Access_Before_Elaboration      => PE_Reason,
                PE_Accessibility_Check_Failed     => PE_Reason,
                PE_Address_Of_Intrinsic           => PE_Reason,
diff -Nrcpad gcc-15.2.0/gcc/ada/types.h gcc-16.1.0-RC-20260423/gcc/ada/types.h
*** gcc-15.2.0/gcc/ada/types.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/types.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *          Copyright (C) 1992-2026, Free Software Foundation, Inc.         *
   *                                                                          *
   * GNAT is 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 Int Pos;
*** 57,62 ****
--- 57,65 ----
  /* 8-bit unsigned integer */
  typedef unsigned char Byte;
  
+ /* 16-bit unsigned integer */
+ typedef unsigned short Word;
+ 
  /* 8-Bit Character and String Types:  */
  
  /* 8-bit character type */
*************** enum RT_Exception_Code
*** 431,437 ****
    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
--- 434,441 ----
    SE_Object_Too_Large               = 35,
    PE_Stream_Operation_Not_Allowed   = 36,
    PE_Build_In_Place_Mismatch        = 37,
!   PE_Raise_Check_Failed             = 38,
!   PE_Abstract_Type_Component        = 39
  };
  
! #define LAST_REASON_CODE 39
diff -Nrcpad gcc-15.2.0/gcc/ada/uintp.adb gcc-16.1.0-RC-20260423/gcc/ada/uintp.adb
*** gcc-15.2.0/gcc/ada/uintp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/uintp.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/uintp.ads gcc-16.1.0-RC-20260423/gcc/ada/uintp.ads
*** gcc-15.2.0/gcc/ada/uintp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/uintp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/uintp.h gcc-16.1.0-RC-20260423/gcc/ada/uintp.h
*** gcc-15.2.0/gcc/ada/uintp.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/uintp.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/uname.adb gcc-16.1.0-RC-20260423/gcc/ada/uname.adb
*** gcc-15.2.0/gcc/ada/uname.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/uname.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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,37 ****
  
  with Atree;          use Atree;
  with Casing;         use Casing;
- with Einfo;          use Einfo;
  with Einfo.Utils;    use Einfo.Utils;
  with Hostparm;
  with Lib;            use Lib;
  with Nlists;         use Nlists;
  with Output;         use Output;
- with Sinfo;          use Sinfo;
  with Sinfo.Nodes;    use Sinfo.Nodes;
  with Sinfo.Utils;    use Sinfo.Utils;
  with Sinput;         use Sinput;
--- 25,35 ----
diff -Nrcpad gcc-15.2.0/gcc/ada/uname.ads gcc-16.1.0-RC-20260423/gcc/ada/uname.ads
*** gcc-15.2.0/gcc/ada/uname.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/uname.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/urealp.adb gcc-16.1.0-RC-20260423/gcc/ada/urealp.adb
*** gcc-15.2.0/gcc/ada/urealp.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/urealp.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Urealp is
*** 34,40 ****
     --  add 1 to No_Ureal, since "+" means something different for Ureals).
  
     type Ureal_Entry is record
!       Num  : Uint;
        --  Numerator (always non-negative)
  
        Den : Uint;
--- 34,40 ----
     --  add 1 to No_Ureal, since "+" means something different for Ureals).
  
     type Ureal_Entry is record
!       Num : Uint;
        --  Numerator (always non-negative)
  
        Den : Uint;
*************** package body Urealp is
*** 48,67 ****
        --  Flag set if value is negative
     end record;
  
-    --  The following representation clause ensures that the above record
-    --  has no holes. We do this so that when instances of this record are
-    --  written, we do not write uninitialized values to the file.
- 
-    for Ureal_Entry use record
-       Num      at  0 range 0 .. 31;
-       Den      at  4 range 0 .. 31;
-       Rbase    at  8 range 0 .. 31;
-       Negative at 12 range 0 .. 31;
-    end record;
- 
-    for Ureal_Entry'Size use 16 * 8;
-    --  This ensures that we did not leave out any fields
- 
     package Ureals is new Table.Table (
       Table_Component_Type => Ureal_Entry,
       Table_Index_Type     => Ureal'Base,
--- 48,53 ----
*************** package body Urealp is
*** 187,193 ****
  
           begin
              if Val.Rbase = 10 then
!                E := UI_To_Int (Val.Den);
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
--- 173,185 ----
  
           begin
              if Val.Rbase = 10 then
!                if UI_Is_In_Int_Range (Val.Den) then
!                   E := UI_To_Int (Val.Den);
!                elsif Val.Den < 0 then
!                   return Int'Last; -- Saturation to highest exponent
!                else
!                   E := Int'Last; -- High estimate
!                end if;
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
*************** package body Urealp is
*** 240,246 ****
  
           begin
              if Val.Rbase = 10 then
!                E := UI_To_Int (Val.Den);
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
--- 232,244 ----
  
           begin
              if Val.Rbase = 10 then
!                if UI_Is_In_Int_Range (Val.Den) then
!                   E := UI_To_Int (Val.Den);
!                elsif Val.Den < 0 then
!                   return Int'Last; -- Low estimate
!                else
!                   return Int'First; -- Saturation to lowest exponent
!                end if;
  
              else
                 E := Equivalent_Decimal_Exponent (Val);
*************** package body Urealp is
*** 832,838 ****
           return Store_Ureal
                    ((Num      => Uint_1,
                      Den      => -N,
!                     Rbase    => UI_To_Int (UR_Trunc (Bas)),
                      Negative => Neg));
  
        --  If the exponent is negative then we raise the numerator and the
--- 830,836 ----
           return Store_Ureal
                    ((Num      => Uint_1,
                      Den      => -N,
!                     Rbase    => UI_To_Int (IBas),
                      Negative => Neg));
  
        --  If the exponent is negative then we raise the numerator and the
*************** package body Urealp is
*** 1251,1262 ****
     ---------------
  
     function UR_Negate (Real : Ureal) return Ureal is
     begin
        return Store_Ureal
!                ((Num      => Ureals.Table (Real).Num,
!                  Den      => Ureals.Table (Real).Den,
!                  Rbase    => Ureals.Table (Real).Rbase,
!                  Negative => not Ureals.Table (Real).Negative));
     end UR_Negate;
  
     ------------
--- 1249,1261 ----
     ---------------
  
     function UR_Negate (Real : Ureal) return Ureal is
+       Val : constant Ureal_Entry := Ureals.Table (Real);
     begin
        return Store_Ureal
!                ((Num      => Val.Num,
!                  Den      => Val.Den,
!                  Rbase    => Val.Rbase,
!                  Negative => not Val.Negative));
     end UR_Negate;
  
     ------------
diff -Nrcpad gcc-15.2.0/gcc/ada/urealp.ads gcc-16.1.0-RC-20260423/gcc/ada/urealp.ads
*** gcc-15.2.0/gcc/ada/urealp.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/urealp.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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 Urealp is
*** 233,239 ****
     function UR_Sub (Left : Ureal; Right : Uint)  return Ureal;
     --  Returns real difference of operands
  
!    function UR_Exponentiate (Real  : Ureal; N : Uint) return  Ureal;
     --  Returns result of raising Ureal to Uint power.
     --  Fatal error if Left is 0 and Right is negative.
  
--- 233,239 ----
     function UR_Sub (Left : Ureal; Right : Uint)  return Ureal;
     --  Returns real difference of operands
  
!    function UR_Exponentiate (Real : Ureal; N : Uint) return Ureal;
     --  Returns result of raising Ureal to Uint power.
     --  Fatal error if Left is 0 and Right is negative.
  
*************** package Urealp is
*** 317,323 ****
     function "-" (Left : Uint;  Right : Ureal) return Ureal renames UR_Sub;
     function "-" (Left : Ureal; Right : Uint)  return Ureal renames UR_Sub;
  
!    function "**"  (Real  : Ureal; N : Uint) return Ureal
                                                       renames UR_Exponentiate;
  
     function "abs" (Real : Ureal) return Ureal renames UR_Abs;
--- 317,323 ----
     function "-" (Left : Uint;  Right : Ureal) return Ureal renames UR_Sub;
     function "-" (Left : Ureal; Right : Uint)  return Ureal renames UR_Sub;
  
!    function "**"  (Real : Ureal; N : Uint) return Ureal
                                                       renames UR_Exponentiate;
  
     function "abs" (Real : Ureal) return Ureal renames UR_Abs;
diff -Nrcpad gcc-15.2.0/gcc/ada/urealp.h gcc-16.1.0-RC-20260423/gcc/ada/urealp.h
*** gcc-15.2.0/gcc/ada/urealp.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/urealp.h	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                              C Header File                               *
   *                                                                          *
!  *            Copyright (C) 1992-2026, Free Software Foundation, Inc.       *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/usage.adb gcc-16.1.0-RC-20260423/gcc/ada/usage.adb
*** gcc-15.2.0/gcc/ada/usage.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/usage.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                B o d y                                   --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is 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
*** 196,203 ****
  
     --  Line for -gnateG switch
  
!    Write_Switch_Char ("eG");
!    Write_Line ("Generate preprocessed source");
  
     --  Line for -gnateH switch
  
--- 196,203 ----
  
     --  Line for -gnateG switch
  
!    Write_Switch_Char ("eG[?]");
!    Write_Line ("Generate preprocessed source (?=b/c/e)");
  
     --  Line for -gnateH switch
  
*************** begin
*** 402,408 ****
  
     Write_Switch_Char ("R?");
     Write_Line
!      ("List rep info (?=0/1/2/3/4/e/m for none/types/all/sym/cg/ext/mech)");
     Write_Switch_Char ("R?j");
     Write_Line ("List rep info in the JSON data interchange format");
     Write_Switch_Char ("R?s");
--- 402,408 ----
  
     Write_Switch_Char ("R?");
     Write_Line
!      ("List rep info (?=1/2/3/4/e/h/m for types/all/sym/cg/ext/holes/mech)");
     Write_Switch_Char ("R?j");
     Write_Line ("List rep info in the JSON data interchange format");
     Write_Switch_Char ("R?s");
*************** begin
*** 562,570 ****
     Write_Line ("        .O*  turn off warnings for out parameters assigned " &
                                                    "but not read");
     Write_Line ("        p+   turn on warnings for ineffective pragma " &
!                                                   "Inline in frontend");
     Write_Line ("        P*   turn off warnings for ineffective pragma " &
!                                                   "Inline in frontend");
     Write_Line ("        .p+  turn on warnings for suspicious parameter " &
                                                    "order");
     Write_Line ("        .P*  turn off warnings for suspicious parameter " &
--- 562,570 ----
     Write_Line ("        .O*  turn off warnings for out parameters assigned " &
                                                    "but not read");
     Write_Line ("        p+   turn on warnings for ineffective pragma " &
!                                                   "Inline");
     Write_Line ("        P*   turn off warnings for ineffective pragma " &
!                                                   "Inline");
     Write_Line ("        .p+  turn on warnings for suspicious parameter " &
                                                    "order");
     Write_Line ("        .P*  turn off warnings for suspicious parameter " &
*************** begin
*** 674,680 ****
     Write_Line ("        D    check declared identifiers in mixed case");
     Write_Line ("        e    check end/exit labels present");
     Write_Line ("        f    check no form feeds/vertical tabs in source");
!    Write_Line ("        g    check standard GNAT style rules, same as ydISux");
     Write_Line ("        h    check no horizontal tabs in source");
     Write_Line ("        i    check if-then layout");
     Write_Line ("        I    check mode in");
--- 674,680 ----
     Write_Line ("        D    check declared identifiers in mixed case");
     Write_Line ("        e    check end/exit labels present");
     Write_Line ("        f    check no form feeds/vertical tabs in source");
!    Write_Line ("        g    check GNAT style rules, same as ydISuxz");
     Write_Line ("        h    check no horizontal tabs in source");
     Write_Line ("        i    check if-then layout");
     Write_Line ("        I    check mode in");
diff -Nrcpad gcc-15.2.0/gcc/ada/usage.ads gcc-16.1.0-RC-20260423/gcc/ada/usage.ads
*** gcc-15.2.0/gcc/ada/usage.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/usage.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/validsw.adb gcc-16.1.0-RC-20260423/gcc/ada/validsw.adb
*** gcc-15.2.0/gcc/ada/validsw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/validsw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/validsw.ads gcc-16.1.0-RC-20260423/gcc/ada/validsw.ads
*** gcc-15.2.0/gcc/ada/validsw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/validsw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 2001-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/vast.adb gcc-16.1.0-RC-20260423/gcc/ada/vast.adb
*** gcc-15.2.0/gcc/ada/vast.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/vast.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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,40 ****
  --                                                                          --
  ------------------------------------------------------------------------------
  
! --  Dummy implementation
  
  package body VAST is
  
     ----------------
!    -- Check_Tree --
     ----------------
  
!    procedure Check_Tree (GNAT_Root : Node_Id) is
!       pragma Unreferenced (GNAT_Root);
     begin
        null;
!    end Check_Tree;
  
  end VAST;
--- 23,1309 ----
  --                                                                          --
  ------------------------------------------------------------------------------
  
! pragma Unsuppress (All_Checks);
! pragma Assertion_Policy (Check);
! --  Enable checking. This isn't really necessary, but it might come in handy if
! --  we want to run VAST with a compiler built without checks. Anyway, it's
! --  harmless, because VAST is not run by default.
! 
! with Ada.Unchecked_Deallocation;
! 
! with System.Case_Util;
! 
! with Atree;          use Atree;
! with Debug;
! with Einfo.Entities; use Einfo.Entities;
! with Einfo.Utils; use Einfo.Utils;
! with Errout;
! with Exp_Ch6;
! with Exp_Tss;
! with Lib;            use Lib;
! with Namet;          use Namet;
! with Nlists;         use Nlists;
! with Opt;            use Opt;
! with Output;
! with Sem_Aux;
! with Sem_Util;
! with Sinfo.Nodes;    use Sinfo.Nodes;
! with Sinput;
! with Table;
! with Types;          use Types;
  
  package body VAST is
  
+    --  ???Basic tree properties not yet checked:
+    --   - No dangling trees. Every node that is reachable at all is reachable
+    --     by some syntactic path.
+    --   - Basic properties of Nlists/Elists (next/prev pointers make sense,
+    --     for example).
+ 
+    Force_Enable_VAST : constant Boolean := False;
+    --  Normally, VAST is enabled by the the -gnatd_V switch.
+    --  To force it to be enabled independent of any switches,
+    --  set this to True.
+ 
+    type Check_Enum is
+      (Check_Other,
+       Check_Sloc,
+       Check_Analyzed,
+       Check_Error_Nodes,
+       Check_FE_Only,
+       Check_Sharing,
+       Check_Parent_Present,
+       Check_Parent_Correct,
+       Check_Scope_Present,
+       Check_Scope_Correct);
+ 
+    type Check_Status is
+      --  Action in case of check failure:
+      (Disabled, -- Do nothing
+       Enabled, -- Print messages, and raise an exception
+       Print_And_Continue); -- Print a message
+ 
+    pragma Warnings (Off, "Status*could be declared constant");
+    --  Status is variable so we can modify it in gdb, for example
+    Status : array (Check_Enum) of Check_Status :=
+      (Check_Other => Enabled,
+       Check_Sloc => Disabled,
+       Check_Analyzed => Disabled,
+       Check_Error_Nodes => Enabled,
+       Check_FE_Only => Disabled,
+       Check_Sharing => Disabled,
+       Check_Parent_Present => Enabled,
+       Check_Parent_Correct => Disabled,
+       Check_Scope_Present => Print_And_Continue,
+       Check_Scope_Correct => Print_And_Continue);
+ --      others => Print_And_Continue);
+ --      others => Enabled);
+ --      others => Disabled);
+    --  Passing checks are Check_Other, which should always be Enabled.
+    --  Currently-failing checks are different enumerals in Check_Enum,
+    --  which can be disabled individually until we fix the bugs, or enabled
+    --  when debugging particular bugs. Pass a nondefault Check_Enum to
+    --  Assert in order to deal with bugs we have not yet fixed,
+    --  and play around with the value of Status above for
+    --  testing and debugging.
+    --
+    --  Note: Once a bug is fixed, and the check passes reliably, we may choose
+    --  to remove that check from Check_Enum and use Check_Other instead.
+ 
+    type Node_Stack_Index is new Pos;
+    subtype Node_Stack_Count is
+      Node_Stack_Index'Base range 0 .. Node_Stack_Index'Last;
+ 
+    package Node_Stack is new Table.Table
+      (Table_Component_Type => Node_Id,
+       Table_Index_Type     => Node_Stack_Index'Base,
+       Table_Low_Bound      => 1,
+       Table_Initial        => 1,
+       Table_Increment      => 100,
+       Table_Name           => "Node_Stack");
+ 
+    type Pass_Number is range 1 .. 2;
+    Pass : Pass_Number;
+ 
+    procedure VAST;
+    --  Called by VAST_If_Enabled to do all the checking
+ 
+    procedure Fail
+      (Check : Check_Enum := Check_Other;
+       Detail : String := "");
+    --  Print failure information if Check is not disabled. Called by Assert
+    --  when Condition is False and for other failures.
+ 
+    procedure Fail_Breakpoint (N : Node_Id) with Export;
+    --  Does nothing. Called by Fail; useful to set a breakpoint in gdb on this.
+ 
+    procedure Assert
+      (Condition : Boolean;
+       Check : Check_Enum := Check_Other;
+       Detail : String := "");
+    --  Check that the Condition is True. Status determines action on failure.
+    --  Note: This procedure is used to detect errors in the tree, whereas
+    --  pragma Assert is used to detect errors in VAST itself.
+ 
+    function To_Mixed (A : String) return String;
+    --  Copied from System.Case_Util; old versions of that package do not have
+    --  this function, so this is needed for bootstrapping.
+ 
+    function Image (Kind : Node_Kind) return String is (To_Mixed (Kind'Img));
+    function Image (Kind : Entity_Kind) return String is (To_Mixed (Kind'Img));
+    function Kind_Image (N : Node_Or_Entity_Id) return String is
+      (if Nkind (N) in N_Entity then Image (Ekind (N))
+       else Image (Nkind (N)));
+    function Node_Image (N : Node_Or_Entity_Id) return String is
+      (Kind_Image (N) & N'Img);
+ 
+    procedure Put (S : String);
+    procedure Put_Line (S : String);
+    procedure Put_Node (N : Node_Id);
+    procedure Put_Node_Stack;
+    --  Output routines; print only if -gnatd_W (VAST in verbose mode) is
+    --  enabled.
+ 
+    procedure Put_Indentation;
+    --  Print spaces to indicate nesting depth of Node_Stack
+ 
+    procedure Enter_Node (N : Node_Id);
+    procedure Leave_Node (N : Node_Id);
+    --  Called for each node while walking the tree.
+    --  Push/pop N to/from Node_Stack.
+    --  Print enter/leave debugging messages.
+    --  ???Possible improvements to messages:
+    --    Walk subtrees in a better order.
+    --    Print field names.
+    --    Don't print boring fields (such as N_Empty nodes).
+    --    Print more info (value of literals, "A.B.C" for expanded names, etc.).
+    --    Share some code with Treepr.
+ 
+    procedure Do_Tree (N : Node_Id);
+    --  Do VAST checking on a tree of nodes
+ 
+    function Is_FE_Only (Kind : Node_Kind) return Boolean;
+    --  True if nodes of this Kind can appear only in the front end. They should
+    --  be transformed into something else before calling the back end, or else
+    --  they can only appear in illegal code.
+ 
+    function Has_Subtrees (N : Node_Id) return Boolean;
+    --  True if N has one or more syntactic fields
+ 
+    procedure Do_Subtrees (N : Node_Id);
+    --  Call Do_Tree on all the subtrees (i.e. syntactic fields) of N
+ 
+    procedure Do_List (L : List_Id);
+    --  Call Do_Tree on the list elements
+ 
+    procedure Do_Node_Pass_2 (N : Node_Id);
+    --  Called by Do_Tree in the second pass
+ 
+    procedure Do_Unit (U : Unit_Number_Type);
+    --  Call Do_Tree on the root node of a compilation unit
+ 
+    function Is_On_Stack (Kind : Node_Kind) return Boolean;
+    --  True if there is at least one node on the stack with the specified Kind
+ 
+    function Ancestor_Node (Count : Node_Stack_Count) return Node_Id;
+    --  Nth ancestor on the Node_Stack. Ancestor_Node(0) is the current node,
+    --  Ancestor_Node(1) is its parent, Ancestor_Node(2) is its grandparent,
+    --  and so on.
+ 
+    function Top_Node return Node_Id is (Ancestor_Node (0));
+ 
+    type Node_Info is record
+       Count : Nat := 0;
+       Prev_Parent : Node_Id := Empty;
+       In_Aspect : Boolean := False;
+    end record;
+    type Node_Info_Array is array (Node_Id range <>) of Node_Info;
+    type Node_Info_Array_Ptr is access all Node_Info_Array;
+    procedure Free is new Ada.Unchecked_Deallocation
+      (Node_Info_Array, Node_Info_Array_Ptr);
+ 
+    Nodes_Info : Node_Info_Array_Ptr;
+    --  Nodes_Info (N).Prev_Parent is non-Empty if and only if the tree walk has
+    --  visited N. If non-Empty, it points to the most recent parent of N in the
+    --  tree walk; that is, the node that allowed us to get to N. Normally, each
+    --  reachable node is visited exactly once, and if the Parent pointers
+    --  aren't messed up, then Nodes_Info (N).Prev_Parent will be Parent (N).
+    --  (See below for the special case of the root compilation unit node.)
+    --
+    --  Used to detect incorrect sharing of subtrees or (worse) cycles. We don't
+    --  allocate this on the stack, for fear of Storage_Error.
+    --
+    --  Nodes_Info (N).Count is the number of ways N is reachable in the walk.
+    --  It should be 1 for all nodes except the root.
+ 
+    function Get_Node_Field_Union is new
+      Atree.Atree_Private_Part.Get_32_Bit_Field (Union_Id) with Inline;
+ 
+    function Has_Field (Kind : Node_Kind; F : Node_Field) return Boolean;
+    --  True if nodes of type Kind have field F
+ 
+    function Related_Chars (N : Node_Id) return Name_Id;
+    --  Return a Name_Id related to N that is worth printing when we print
+    --  information about N. Returns No_Name if there is no interesting Name_Id.
+    --  This is typically "Chars (N)" or "Chars (Defining_Identifier (N))" or
+    --  similar.
+ 
+    procedure Check_Scope (N : Node_Id);
+    --  Check that the Scope of N makes sense
+ 
+    procedure Validate_Subprogram_Calls (N : Node_Id);
+    --  Check that the number of actuals (including extra actuals) of all calls
+    --  within N match their corresponding formals; check also that the names
+    --  of BIP extra actuals and formals match.
+ 
+    --------------
+    -- To_Mixed --
+    --------------
+ 
+    function To_Mixed (A : String) return String is
+       Result : String := A;
+    begin
+       System.Case_Util.To_Mixed (Result);
+       return Result;
+    end To_Mixed;
+ 
+    ---------
+    -- Put --
+    ---------
+ 
+    procedure Put (S : String) is
+    begin
+       if Debug.Debug_Flag_Underscore_WW then
+          Output.Write_Str (S);
+       end if;
+    end Put;
+ 
+    --------------
+    -- Put_Line --
+    --------------
+ 
+    procedure Put_Line (S : String) is
+    begin
+       if Debug.Debug_Flag_Underscore_WW then
+          Output.Write_Line (S);
+       end if;
+    end Put_Line;
+ 
+    ---------------
+    -- Has_Field --
+    ---------------
+ 
+    function Has_Field (Kind : Node_Kind; F : Node_Field) return Boolean is
+       Fields : Node_Field_Array renames Node_Field_Table (Kind).all;
+    begin
+       for Index in Fields'Range loop
+          if Fields (Index) = F then
+             return True;
+          end if;
+       end loop;
+ 
+       return False;
+    end Has_Field;
+ 
+    -------------------
+    -- Related_Chars --
+    -------------------
+ 
+    function Related_Chars (N : Node_Id) return Name_Id is
+    begin
+       return Result : Name_Id := No_Name do
+          if Has_Field (Nkind (N), F_Chars) then
+             Result := Chars (N);
+          elsif Has_Field (Nkind (N), F_Defining_Identifier) then
+             Result := Related_Chars (Defining_Identifier (N));
+          elsif Has_Field (Nkind (N), F_Defining_Unit_Name) then
+             Result := Related_Chars (Defining_Unit_Name (N));
+          elsif Has_Field (Nkind (N), F_Specification) then
+             Result := Related_Chars (Specification (N));
+          end if;
+       end return;
+    end Related_Chars;
+ 
+    --------------
+    -- Put_Node --
+    --------------
+ 
+    procedure Put_Node (N : Node_Id) is
+    begin
+       if Debug.Debug_Flag_Underscore_WW then
+          Put (Node_Image (N) & " ");
+          Sinput.Write_Location (Sloc (N));
+ 
+          if Comes_From_Source (N) then
+             Put (" (s)");
+          end if;
+ 
+          declare
+             Chars_To_Print : constant Name_Id := Related_Chars (N);
+          begin
+             if Present (Chars_To_Print) then
+                Put (" ");
+                Write_Name_For_Debug (Chars_To_Print, Quote => """");
+             end if;
+          end;
+       end if;
+    end Put_Node;
+ 
+    ---------------------
+    -- Put_Indentation --
+    ---------------------
+ 
+    procedure Put_Indentation is
+    begin
+       Put (String'(Natural (Node_Stack.First) ..
+                    Natural (Node_Stack.Last) * 2 => ' '));
+    end Put_Indentation;
+ 
     ----------------
!    -- Enter_Node --
     ----------------
  
!    procedure Enter_Node (N : Node_Id) is
!    begin
!       Node_Stack.Append (N); -- push
! 
!       if Has_Subtrees (N) then
!          Put ("-->");
!       else
!          --  If no subtrees, just print one line for enter/leave
!          Put ("   ");
!       end if;
!       Put_Indentation;
!       Put_Node (N);
!       Put_Line ("");
!    end Enter_Node;
! 
!    ----------------
!    -- Leave_Node --
!    ----------------
! 
!    procedure Leave_Node (N : Node_Id) is
!    begin
!       if Has_Subtrees (N) then
!          Put ("<--");
!          Put_Indentation;
!          Put_Node (N);
!          Put_Line ("");
!       end if;
! 
!       Node_Stack.Decrement_Last; -- pop
!    end Leave_Node;
! 
!    --------------------
!    -- Put_Node_Stack --
!    --------------------
! 
!    procedure Put_Node_Stack is
!    begin
!       for J in reverse Node_Stack.First .. Node_Stack.Last loop
!          Put_Node (Node_Stack.Table (J));
!          Put_Line ("");
!       end loop;
!    end Put_Node_Stack;
! 
!    -----------------
!    -- Is_On_Stack --
!    -----------------
! 
!    function Is_On_Stack (Kind : Node_Kind) return Boolean is
!    begin
!       for J in reverse Node_Stack.First .. Node_Stack.Last loop
!          if Nkind (Node_Stack.Table (J)) = Kind then
!             return True;
!          end if;
!       end loop;
! 
!       return False;
!    end Is_On_Stack;
! 
!    -------------------
!    -- Ancestor_Node --
!    -------------------
! 
!    function Ancestor_Node (Count : Node_Stack_Count) return Node_Id is
!    begin
!       return Node_Stack.Table (Node_Stack.Last - Count);
!    end Ancestor_Node;
! 
!    ---------------------
!    -- Fail_Breakpoint --
!    ---------------------
! 
!    procedure Fail_Breakpoint (N : Node_Id) is
     begin
        null;
!    end Fail_Breakpoint;
! 
!    ----------
!    -- Fail --
!    ----------
! 
!    VAST_Failure : exception;
! 
!    procedure Fail
!      (Check : Check_Enum := Check_Other;
!       Detail : String := "")
!    is
!       Part1 : constant String := "VAST fail";
!       Part2 : constant String :=
!         (if Check = Check_Other then ""
!          else ": " & To_Mixed (Check'Img));
!       Part3 : constant String :=
!         (if Detail = "" then "" else " -- " & Detail);
!       Message : constant String := Part1 & Part2 & Part3;
!       Save : constant Boolean := Debug.Debug_Flag_Underscore_WW;
!    begin
!       case Status (Check) is
!          when Disabled => null;
!          when Enabled | Print_And_Continue =>
!             Debug.Debug_Flag_Underscore_WW := True;
!             --  ????We should probably avoid changing the debug flag here
!             Put (Message & ": ");
!             Put_Node (Top_Node);
!             Put_Line ("");
! 
!             Put ("VAST file: ");
!             Sinput.Write_Location (Sloc (Top_Node));
!             Put_Line ("");
!             Put_Node_Stack;
! 
!             if Status (Check) = Enabled then
!                Put_Node_Stack;
!                raise VAST_Failure with Message;
!             end if;
! 
!             Debug.Debug_Flag_Underscore_WW := Save;
! 
!             Fail_Breakpoint (Ancestor_Node (0));
!       end case;
!    end Fail;
! 
!    ------------
!    -- Assert --
!    ------------
! 
!    procedure Assert
!      (Condition : Boolean;
!       Check : Check_Enum := Check_Other;
!       Detail : String := "")
!    is
!    begin
!       if not Condition then
!          Fail (Check, Detail);
!       end if;
!    end Assert;
! 
!    -----------------
!    -- Check_Scope --
!    -----------------
! 
!    procedure Check_Scope (N : Node_Id) is
!       use Exp_Tss, Sem_Util;
!    begin
!       if Present (Scope (N)) then
!          if False then -- ????
!             Assert (Enclosing_Declaration (Scope (N)) =
!                     Enclosing_Declaration (Enclosing_Declaration (N)),
!                     Check_Scope_Correct);
!          end if;
!       else
!          if Ekind (N) = E_Void then
!             --  ????These seem to be SW, PI, &c, and their params.
!             null;
!          elsif Ekind (N) = E_Procedure and then Is_TSS (N, TSS_Put_Image)
!          then
!             null; -- also PI
!          elsif Ekind (N) = E_Protected_Body then
!             null;
!          else
!             Fail (Check_Scope_Present);
!          end if;
!       end if;
!    end Check_Scope;
! 
!    --------------------
!    -- Do_Node_Pass_2 --
!    --------------------
! 
!    procedure Do_Node_Pass_2 (N : Node_Id) is
!    begin
!       --  Check Sloc
! 
!       case Nkind (N) is
!          --  ???Some nodes, including exception handlers, have no Sloc;
!          --  it's unclear why.
! 
!          when N_Exception_Handler =>
!             Assert
!               ((if Comes_From_Source (N) then Present (Sloc (N))), Check_Sloc);
!          when others =>
!             Assert (Present (Sloc (N)), Check_Sloc);
!       end case;
! 
!       --  All reachable nodes should have been analyzed by the time we get
!       --  here.
! 
!       Assert (Analyzed (N), Check_Analyzed);
! 
!       --  Misc checks based on node/entity kind
! 
!       case Nkind (N) is
!          when N_Unused_At_Start | N_Unused_At_End =>
!             --  ????Can't get here, because Is_FE_Only. Also 'case' below.
!             Fail;
! 
!          when N_Error =>
!             --  VAST doesn't do anything when Serious_Errors_Detected > 0 (at
!             --  least for now), so we shouldn't encounter any N_Error nodes.
!             Fail (Check_Error_Nodes);
! 
!          when N_Entity =>
!             Check_Scope (N);
! 
!             case Ekind (N) is
!                when others =>
!                   null; -- more to be done here
!             end case;
! 
!          when others =>
!             null; -- more to be done here
!       end case;
! 
!       --  Check that N has a Parent, except in certain cases
! 
!       case Nkind (N) is
!          when N_Empty =>
!             raise Program_Error; -- can't get here
! 
!          when N_Error =>
!             Fail (Check_Error_Nodes);
!             --  The error node has no parent, but we shouldn't even be seeing
!             --  error nodes in VAST at all. See earlier "when N_Error".
! 
!          when N_Compilation_Unit =>
!             Assert (No (Parent (N)));
!             --  The parent of the root of each unit is empty.
! 
!          when N_Entity =>
!             if not Is_Itype (N) then
!                --  An Itype might or might not have a parent
! 
!                Assert
!                  (Present (Parent (N)), Detail => "missing parent of entity");
!                Assert (Parent (N) = Ancestor_Node (1), Check_Parent_Correct);
!             end if;
! 
!          when others =>
!             Assert (Present (Parent (N)), Check_Parent_Present);
!             --  All other nodes should have a parent
!             if Status (Check_Parent_Present) = Enabled then
!                Assert (Parent (N) = Ancestor_Node (1), Check_Parent_Correct);
!             end if;
!       end case;
!    end Do_Node_Pass_2;
! 
!    -------------
!    -- Do_Tree --
!    -------------
! 
!    procedure Do_Tree (N : Node_Id) is
!       Visited : constant Boolean := Present (Nodes_Info (N).Prev_Parent);
!    begin
!       if False and Nkind (N) = N_Aspect_Specification then
!          --  ????This cuts failures 453490/235214 = 1.9.
!          return;
!       end if;
! 
!       if Pass = 1 then
!          Nodes_Info (N).Count := Nodes_Info (N).Count + 1;
!          --  ????Get rid of asserts:
!          pragma Assert
!            (if Nkind (N) not in N_Empty | N_Compilation_Unit then
!               Visited = (Nodes_Info (N).Count > 1));
! 
!          if Is_On_Stack (N_Aspect_Specification) then
!             Nodes_Info (N).In_Aspect := True;
!          end if;
!       elsif Pass = 2 then
!          pragma Assert (Nodes_Info (N).Count > 0);
!       end if;
! 
!       Enter_Node (N);
! 
!       Assert (not Is_FE_Only (Nkind (N)), Check_FE_Only);
!       --  ????Also check for particular pragmas, etc.
!       --  And Ekind.
! 
!       if Nkind (N) = N_Empty then
!          Assert (N = Empty);
!          Assert (No (Sloc (N)));
!          goto Done; -- -------------->
!          --  Don't do any further checks on Empty
!       end if;
! 
!       --  If we visit the same node more than once, then there are shared
!       --  nodes; the "tree" is not a tree:
!       --  We know that the "extra formals" involve shared subtrees,
!       --  and that's probably unavoidable. See Expand_Call_Helper.
!       --  A lot of shared subtrees come from aspect specifications,
!       --  probably because they get turned into pragmas, and the
!       --  subtrees get placed inside the pragmas without removing
!       --  them from the original aspect specifications.
! 
!       if Pass = 2 and then Nodes_Info (N).Count > 1 and then
!         not Nodes_Info (N).In_Aspect -- ????cuts failures by 1.9
!       then
!          declare
!             Count : constant String :=
!               (if Nodes_Info (N).Count = 2 then ""
!                else Nodes_Info (N).Count'Img & "par");
!             Aspect : constant String :=
!               (if Nodes_Info (N).In_Aspect then "{asp}" else "");
!          begin
!             Fail (Check_Sharing,
!                   "(prev-par=" &
!                   Node_Image (Nodes_Info (N).Prev_Parent) & ")" &
!                   Count & Aspect);
!             if Status (Check_Sharing) /= Disabled then
!                Output.Write_Line
!                  (Kind_Image (Ancestor_Node (1)) & "```" & Kind_Image (N));
!                Output.Write_Line ("");
!             end if;
!          end;
!       end if;
! 
!       if Node_Stack.Last = 1 then
!          Nodes_Info (N).Prev_Parent := Ancestor_Node (0);
!          Assert (Nkind (N) = N_Compilation_Unit);
!          --  This is the root node. Set the parent to itself,
!          --  for no particular reason except to make it not Empty.
!       else
!          Nodes_Info (N).Prev_Parent := Ancestor_Node (1);
!       end if;
! 
!       if not Visited then -- Don't walk it more than once
!          if Pass = 2 then
!             Do_Node_Pass_2 (N);
!          end if;
!          Do_Subtrees (N);
!       end if;
!       <<Done>>
! 
!       Leave_Node (N);
!    end Do_Tree;
! 
!    -----------------
!    -- Has_Subtrees --
!    -----------------
! 
!    function Has_Subtrees (N : Node_Id) return Boolean is
!       Offsets : Traversed_Offset_Array renames
!         Traversed_Fields (Nkind (N));
!    begin
!       --  True if the first Offset is not the sentinel
!       return Offsets (Offsets'First) /= No_Field_Offset;
!    end Has_Subtrees;
! 
!    -----------------
!    -- Do_Subtrees --
!    -----------------
! 
!    procedure Do_Subtrees (N : Node_Id) is
!       --  ???Do we need tail recursion elimination here,
!       --  as in Atree.Traverse_Func?
!       Offsets : Traversed_Offset_Array renames
!         Traversed_Fields (Nkind (N));
!    begin
!       for Cur_Field in Offset_Array_Index loop
!          exit when Offsets (Cur_Field) = No_Field_Offset;
! 
!          declare
!             F : constant Union_Id :=
!               Get_Node_Field_Union (N, Offsets (Cur_Field));
!          begin
!             if F in Node_Range then
!                Do_Tree (Node_Id (F));
!             elsif F in List_Range then
!                Do_List (List_Id (F));
!             else
!                raise Program_Error;
!             end if;
!          end;
!       end loop;
!    end Do_Subtrees;
! 
!    -------------
!    -- Do_List --
!    -------------
! 
!    procedure Do_List (L : List_Id) is
!       Elmt : Node_Id := First (L);
!       Len : constant String := List_Length (L)'Img;
!    begin
!       if Is_Non_Empty_List (L) then
!          Put ("-->");
!          Put_Indentation;
!          Put_Line ("list len=" & Len);
! 
!          while Present (Elmt) loop
!             Do_Tree (Elmt);
!             Next (Elmt);
!          end loop;
! 
!          Put ("<--");
!          Put_Indentation;
!          Put_Line ("list len=" & Len);
!       end if;
!    end Do_List;
! 
!    -------------
!    -- Do_Unit --
!    -------------
! 
!    procedure Do_Unit (U : Unit_Number_Type) is
!       U_Name : constant Unit_Name_Type := Unit_Name (U);
!       U_Name_S : constant String :=
!         (if U_Name = No_Unit_Name then "<No_Unit_Name>"
!          else Get_Name_String (U_Name));
!       Predef : constant String :=
!         (if Is_Predefined_Unit (U) then " (predef)"
!          elsif Is_Internal_Unit (U) then " (gnat)"
!          else "");
!       Is_Main : constant String :=
!         (if U = Main_Unit then " (main unit)" else "");
!       Msg : constant String :=
!         "VAST for unit" & U'Img & " " & U_Name_S & Predef & Is_Main;
! 
!       Is_Preprocessing_Dependency : constant Boolean := U_Name = No_Unit_Name;
!       --  True if this is a bogus unit added by Add_Preprocessing_Dependency.
!       --  These units have no name and no associated tree; we had better not
!       --  try to walk nonexistent trees.
! 
!       Root : constant Node_Id := Cunit (U);
!    begin
!       pragma Assert (Node_Stack.Last = 0);
!       Assert (No (Root) = Is_Preprocessing_Dependency);
!       --  All compilation units except these bogus ones should have a Cunit.
! 
!       Put_Line (Msg);
! 
!       if Is_Preprocessing_Dependency then
!          Put_Line ("Skipping preprocessing dependency");
!          return;
!       end if;
! 
!       Assert (Present (Root));
!       Do_Tree (Root);
!       Put_Line (Msg & "  (done)");
!       pragma Assert (Node_Stack.Last = 0);
!    end Do_Unit;
! 
!    ----------
!    -- VAST --
!    ----------
! 
!    procedure VAST is
!    begin
!       Put_Line ("VAST");
! 
!       --  Operating_Mode = Generate_Code implies there are no legality errors
! 
!       pragma Assert (Serious_Errors_Detected = 0);
!       pragma Assert (not Errout.Compilation_Errors);
! 
!       Put_Line ("VAST checking" & Last_Unit'Img & " units");
! 
!       declare
!          use Atree_Private_Part;
!          Last_Node : constant Node_Id := Node_Offsets.Last;
!       begin
!          pragma Assert (Nodes_Info = null);
!          Nodes_Info := new Node_Info_Array (Node_Id'First .. Last_Node);
! 
!          --  Walk all nodes in all units doing Pass 1, and so on
!          --  for each Pass.
! 
!          for P in Pass_Number loop
!             Pass := P;
! 
!             Put_Line ("VAST Pass" & Pass'Img);
!             if Pass = 2 then -- ????Is this needed?
!                for Index in Nodes_Info'Range loop
!                   Nodes_Info (Index).Prev_Parent := Empty;
!                end loop;
!             end if;
! 
!             for U in Main_Unit .. Last_Unit loop
!                --  Main_Unit is the one passed to the back end, but here we are
!                --  walking all the units.
!                Do_Unit (U);
!             end loop;
!          end loop;
! 
!          --  Validate subprogram calls; check "extra formals". This works only
!          --  for the main unit.
! 
!          Validate_Subprogram_Calls (Cunit (Main_Unit));
! 
!          --  We shouldn't have allocated any new nodes during VAST
! 
!          pragma Assert (Node_Offsets.Last = Last_Node);
!          Free (Nodes_Info);
!       end;
! 
!       Put_Line ("VAST done.");
!    end VAST;
! 
!    ---------------------
!    -- VAST_If_Enabled --
!    ---------------------
! 
!    procedure VAST_If_Enabled is
!       --  This is the public entry point
! 
!       pragma Assert (Expander_Active = (Operating_Mode = Generate_Code));
!       --  ???So why do we need both Operating_Mode and Expander_Active?
!       use Debug;
!    begin
!       --  Do nothing if we're not calling the back end; the main point of VAST
!       --  is to protect against code-generation bugs. VAST is disabled if
!       --  legality errors were detected; the tree is known to be malformed
!       --  in some error cases. The -gnatc switch also disables VAST.
! 
!       if Operating_Mode /= Generate_Code then
!          return;
!       end if;
! 
!       --  If -gnatd_W (VAST in verbose mode) is enabled, then that should imply
!       --  -gnatd_V (enable VAST).
! 
!       if Debug_Flag_Underscore_WW or Force_Enable_VAST then
!          Debug_Flag_Underscore_VV := True;
!       end if;
! 
!       --  Do nothing if VAST is disabled
! 
!       if not Debug_Flag_Underscore_VV then
!          return;
!       end if;
! 
!       VAST;
!    end VAST_If_Enabled;
! 
!    -------------------------------
!    -- Validate_Subprogram_Calls --
!    -------------------------------
! 
!    procedure Validate_Subprogram_Calls (N : Node_Id) is
!       use Sem_Aux, Sem_Util;
! 
!       function Process_Node (Nod : Node_Id) return Traverse_Result;
!       --  Function to traverse the subtree of N using Traverse_Proc.
! 
!       ------------------
!       -- Process_Node --
!       ------------------
! 
!       function Process_Node (Nod : Node_Id) return Traverse_Result is
!       begin
!          case Nkind (Nod) is
!             when N_Entry_Call_Statement
!                | N_Procedure_Call_Statement
!                | N_Function_Call
!             =>
!                declare
!                   Call_Node : Node_Id renames Nod;
!                   Subp      : constant Entity_Id := Get_Called_Entity (Nod);
! 
!                begin
!                   pragma Assert (Exp_Ch6.Check_BIP_Actuals (Call_Node, Subp));
! 
!                   --  Build-in-place function calls return their result by
!                   --  reference.
! 
!                   pragma Assert (not Exp_Ch6.Is_Build_In_Place_Function (Subp)
!                     or else Returns_By_Ref (Subp));
!                end;
! 
!             --  Skip generic bodies
! 
!             when N_Package_Body =>
!                if Ekind (Unique_Defining_Entity (Nod)) = E_Generic_Package then
!                   return Skip;
!                end if;
! 
!             when N_Subprogram_Body =>
!                if Ekind (Unique_Defining_Entity (Nod)) in E_Generic_Function
!                                                         | E_Generic_Procedure
!                then
!                   return Skip;
!                end if;
! 
!             --  Nodes we want to ignore
! 
!             --  Skip calls placed in the full declaration of record types since
!             --  the call will be performed by their Init Proc; for example,
!             --  calls initializing default values of discriminants or calls
!             --  providing the initial value of record type components. Other
!             --  full type declarations are processed because they may have
!             --  calls that must be checked. For example:
! 
!             --    type T is array (1 .. Some_Function_Call (...)) of Some_Type;
! 
!             --  ??? More work needed here to handle the following case:
! 
!             --    type Rec is record
!             --       F : String (1 .. <some complicated expression>);
!             --    end record;
! 
!             when N_Full_Type_Declaration =>
!                if Is_Record_Type (Defining_Entity (Nod)) then
!                   return Skip;
!                end if;
! 
!             --  Skip calls placed in unexpanded initialization expressions
! 
!             when N_Object_Declaration =>
!                if No_Initialization (Nod) then
!                   return Skip;
!                end if;
! 
!             --  Skip calls placed in subprogram specifications since function
!             --  calls initializing default parameter values will be processed
!             --  when the call to the subprogram is found (if the default actual
!             --  parameter is required), and calls found in aspects will be
!             --  processed when their corresponding pragma is found, or in the
!             --  specific case of class-wide pre-/postconditions, when their
!             --  helpers are found.
! 
!             when N_Procedure_Specification
!                | N_Function_Specification
!             =>
!                return Skip;
! 
!             when N_Abstract_Subprogram_Declaration
!                | N_Aspect_Specification
!                | N_At_Clause
!                | N_Call_Marker
!                | N_Empty
!                | N_Enumeration_Representation_Clause
!                | N_Enumeration_Type_Definition
!                | N_Function_Instantiation
!                | N_Freeze_Generic_Entity
!                | N_Generic_Function_Renaming_Declaration
!                | N_Generic_Package_Renaming_Declaration
!                | N_Generic_Procedure_Renaming_Declaration
!                | N_Generic_Package_Declaration
!                | N_Generic_Subprogram_Declaration
!                | N_Itype_Reference
!                | N_Number_Declaration
!                | N_Package_Instantiation
!                | N_Package_Renaming_Declaration
!                | N_Pragma
!                | N_Procedure_Instantiation
!                | N_Protected_Type_Declaration
!                | N_Record_Representation_Clause
!                | N_Validate_Unchecked_Conversion
!                | N_Variable_Reference_Marker
!                | N_Use_Package_Clause
!                | N_Use_Type_Clause
!                | N_With_Clause
!             =>
!                return Skip;
! 
!             when others =>
!                null;
!          end case;
! 
!          return OK;
!       end Process_Node;
! 
!       procedure Check_Calls is new Traverse_Proc (Process_Node);
! 
!    --  Start of processing for Validate_Subprogram_Calls
! 
!    begin
!       --  No action if we are not generating code (including if we have
!       --  errors).
! 
!       if Operating_Mode /= Generate_Code then
!          return;
!       end if;
! 
!       pragma Assert (Serious_Errors_Detected = 0);
! 
!       --  Do not attempt to verify the return type in CodePeer_Mode
!       --  as CodePeer_Mode is missing some expansion code that
!       --  results in trees that would be considered malformed for
!       --  GCC but aren't for GNAT2SCIL.
! 
!       if not CodePeer_Mode then
!          Check_Calls (N);
!       end if;
!    end Validate_Subprogram_Calls;
! 
!    ----------------
!    -- Is_FE_Only --
!    ----------------
! 
!    function Is_FE_Only (Kind : Node_Kind) return Boolean is
!       --  ????This is work in progress; see "?" marks below
!    begin
!       case Kind is
!          when N_Abortable_Part
!             | N_Abort_Statement
!             | N_Asynchronous_Select
!             | N_Compound_Statement
!             | N_Conditional_Entry_Call
!             | N_Continue_Statement
!             | N_Contract
!             | N_Delay_Alternative
!             | N_Delay_Until_Statement
!             | N_Delta_Constraint
!             | N_Entry_Call_Alternative
!             | N_Entry_Index_Specification
!             | N_Error
!             | N_Formal_Derived_Type_Definition
!             | N_Formal_Package_Declaration
!             | N_Goto_When_Statement
!             | N_Interpolated_String_Literal
!             | N_Iterated_Element_Association
!             | N_Mod_Clause
!             | N_Raise_When_Statement
!             | N_Return_When_Statement
!             | N_SCIL_Dispatching_Call
!             | N_SCIL_Dispatch_Table_Tag_Init
!             | N_SCIL_Membership_Test
!             | N_Timed_Entry_Call
!             | N_Triggering_Alternative
!             | N_Unused_At_End
!             | N_Unused_At_Start
!             => return True;
! 
!          when N_Empty
!             | N_Delay_Relative_Statement -- ????not turned into rt call?
!             | N_Expression_Function
!             | N_Iterated_Component_Association -- ????
!             | N_Single_Protected_Declaration
!             | N_Accept_Alternative -- ????not turned into rt call?
!             | N_Accept_Statement -- ????not turned into rt call?
!             | N_Decimal_Fixed_Point_Definition
!             | N_Digits_Constraint
!             | N_Entry_Call_Statement -- ????not turned into rt call?
!             | N_Requeue_Statement -- ????not turned into rt call?
!             | N_Selective_Accept -- ????not turned into rt call?
!             | N_Terminate_Alternative -- ????not turned into rt call?
!             | N_Defining_Character_Literal
!             | N_Access_Function_Definition
!             | N_Formal_Discrete_Type_Definition
!             | N_Formal_Modular_Type_Definition
!             | N_Iterator_Specification
!             | N_Op_Expon
!             | N_Variant
!             | N_Variant_Part
!             | N_Access_Definition
!             | N_Access_Procedure_Definition
!             | N_Access_To_Object_Definition
!             | N_Aspect_Specification
!             | N_Case_Statement_Alternative
!             | N_Compilation_Unit_Aux
!             | N_Component_Clause
!             | N_Component_Declaration
!             | N_Component_Definition
!             | N_Component_List
!             | N_Constrained_Array_Definition
!             | N_Derived_Type_Definition
!             | N_Designator
!             | N_Discriminant_Association
!             | N_Discriminant_Specification
!             | N_Elsif_Part
!             | N_Enumeration_Type_Definition
!             | N_Floating_Point_Definition
!             | N_Formal_Concrete_Subprogram_Declaration
!             | N_Formal_Floating_Point_Definition
!             | N_Formal_Object_Declaration
!             | N_Formal_Private_Type_Definition
!             | N_Formal_Signed_Integer_Type_Definition
!             | N_Formal_Type_Declaration
!             | N_Generic_Association
!             | N_Index_Or_Discriminant_Constraint
!             | N_Iteration_Scheme
!             | N_Loop_Parameter_Specification
!             | N_Modular_Type_Definition
!             | N_Others_Choice
!             | N_Parameter_Association
!             | N_Parameter_Specification
!             | N_Quantified_Expression -- ????
!             | N_Range
!             | N_Range_Constraint
!             | N_Record_Definition
!             | N_Signed_Integer_Type_Definition
!             | N_Subtype_Indication
!             | N_Unconstrained_Array_Definition
!             | N_Pragma_Argument_Association
!             | N_Case_Expression
!             | N_Case_Expression_Alternative
!             | N_Delta_Aggregate -- ????
!             | N_Entry_Body_Formal_Part
!             | N_Entry_Declaration
!             | N_Extended_Return_Statement -- ????
!             | N_Formal_Abstract_Subprogram_Declaration
!             | N_Formal_Decimal_Fixed_Point_Definition
!             | N_Formal_Incomplete_Type_Definition
!             | N_Formal_Ordinary_Fixed_Point_Definition
!             | N_Ordinary_Fixed_Point_Definition
!             | N_Protected_Definition
!             | N_Raise_Expression
!             | N_Real_Range_Specification
!             | N_Target_Name -- ????
!             | N_Task_Definition
!             => return False;
!          --  ????
! 
!          when N_Abstract_Subprogram_Declaration
!             | N_Aggregate
!             | N_Allocator
!             | N_And_Then
!             | N_Assignment_Statement
!             | N_At_Clause
!             | N_Attribute_Definition_Clause
!             | N_Attribute_Reference
!             | N_Block_Statement
!             | N_Call_Marker
!             | N_Case_Statement
!             | N_Character_Literal
!             | N_Code_Statement
!             | N_Compilation_Unit
!             | N_Component_Association
!             | N_Defining_Identifier
!             | N_Defining_Operator_Symbol
!             | N_Defining_Program_Unit_Name
!             | N_Entry_Body
!             | N_Enumeration_Representation_Clause
!             | N_Exception_Declaration
!             | N_Exception_Handler
!             | N_Exception_Renaming_Declaration
!             | N_Exit_Statement
!             | N_Expanded_Name
!             | N_Explicit_Dereference
!             | N_Expression_With_Actions
!             | N_Extension_Aggregate
!             | N_External_Initializer
!             | N_Free_Statement
!             | N_Freeze_Entity
!             | N_Freeze_Generic_Entity
!             | N_Full_Type_Declaration
!             | N_Function_Call
!             | N_Function_Instantiation
!             | N_Function_Specification
!             | N_Generic_Function_Renaming_Declaration
!             | N_Generic_Package_Declaration
!             | N_Generic_Package_Renaming_Declaration
!             | N_Generic_Procedure_Renaming_Declaration
!             | N_Generic_Subprogram_Declaration
!             | N_Goto_Statement
!             | N_Handled_Sequence_Of_Statements
!             | N_Identifier
!             | N_If_Expression
!             | N_If_Statement
!             | N_Implicit_Label_Declaration
!             | N_In
!             | N_Incomplete_Type_Declaration
!             | N_Indexed_Component
!             | N_Integer_Literal
!             | N_Itype_Reference
!             | N_Label
!             | N_Loop_Statement
!             | N_Not_In
!             | N_Null
!             | N_Null_Statement
!             | N_Number_Declaration
!             | N_Object_Declaration
!             | N_Object_Renaming_Declaration
!             | N_Op_Abs
!             | N_Op_Add
!             | N_Op_And
!             | N_Op_Concat
!             | N_Op_Divide
!             | N_Op_Eq
!             | N_Operator_Symbol
!             | N_Op_Ge
!             | N_Op_Gt
!             | N_Op_Le
!             | N_Op_Lt
!             | N_Op_Minus
!             | N_Op_Mod
!             | N_Op_Multiply
!             | N_Op_Ne
!             | N_Op_Not
!             | N_Op_Or
!             | N_Op_Plus
!             | N_Op_Rem
!             | N_Op_Rotate_Left
!             | N_Op_Rotate_Right
!             | N_Op_Shift_Left
!             | N_Op_Shift_Right
!             | N_Op_Shift_Right_Arithmetic
!             | N_Op_Subtract
!             | N_Op_Xor
!             | N_Or_Else
!             | N_Package_Body
!             | N_Package_Body_Stub
!             | N_Package_Declaration
!             | N_Package_Instantiation
!             | N_Package_Renaming_Declaration
!             | N_Package_Specification
!             | N_Pop_Constraint_Error_Label
!             | N_Pop_Program_Error_Label
!             | N_Pop_Storage_Error_Label
!             | N_Pragma
!             | N_Private_Extension_Declaration
!             | N_Private_Type_Declaration
!             | N_Procedure_Call_Statement
!             | N_Procedure_Instantiation
!             | N_Procedure_Specification
!             | N_Protected_Body
!             | N_Protected_Body_Stub
!             | N_Protected_Type_Declaration
!             | N_Push_Constraint_Error_Label
!             | N_Push_Program_Error_Label
!             | N_Push_Storage_Error_Label
!             | N_Qualified_Expression
!             | N_Raise_Constraint_Error
!             | N_Raise_Program_Error
!             | N_Raise_Statement
!             | N_Raise_Storage_Error
!             | N_Real_Literal
!             | N_Record_Representation_Clause
!             | N_Reference
!             | N_Selected_Component
!             | N_Simple_Return_Statement
!             | N_Single_Task_Declaration
!             | N_Slice
!             | N_String_Literal
!             | N_Subprogram_Body
!             | N_Subprogram_Body_Stub
!             | N_Subprogram_Declaration
!             | N_Subprogram_Renaming_Declaration
!             | N_Subtype_Declaration
!             | N_Subunit
!             | N_Task_Body
!             | N_Task_Body_Stub
!             | N_Task_Type_Declaration
!             | N_Type_Conversion
!             | N_Unchecked_Type_Conversion
!             | N_Use_Package_Clause
!             | N_Use_Type_Clause
!             | N_Validate_Unchecked_Conversion
!             | N_Variable_Reference_Marker
!             | N_With_Clause
!             => return False;
!       end case;
!    end Is_FE_Only;
  
  end VAST;
diff -Nrcpad gcc-15.2.0/gcc/ada/vast.ads gcc-16.1.0-RC-20260423/gcc/ada/vast.ads
*** gcc-15.2.0/gcc/ada/vast.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/vast.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --             Copyright (C) 2020-2026, Free Software Foundation, Inc.      --
  --                                                                          --
  -- GNAT is 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,36 ****
  ------------------------------------------------------------------------------
  
  --  This package is the entry point for VAST: Verifier for the Ada Semantic
! --  Tree.
! 
! with Types; use Types;
  
  package VAST is
  
!    procedure Check_Tree (GNAT_Root : Node_Id);
!    --  Check the validity of the given Root tree
  
  end VAST;
--- 24,33 ----
  ------------------------------------------------------------------------------
  
  --  This package is the entry point for VAST: Verifier for the Ada Semantic
! --  Tree. It walks the expanded trees, and verifies their validity.
  
  package VAST is
  
!    procedure VAST_If_Enabled;
  
  end VAST;
diff -Nrcpad gcc-15.2.0/gcc/ada/vx_stack_info.c gcc-16.1.0-RC-20260423/gcc/ada/vx_stack_info.c
*** gcc-15.2.0/gcc/ada/vx_stack_info.c	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/vx_stack_info.c	Thu Apr 23 11:07:32 2026
***************
*** 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- *
--- 6,12 ----
   *                                                                          *
   *                          C Implementation File                           *
   *                                                                          *
!  *              Copyright (C) 2007-2026  Free Software Foundation, Inc.     *
   *                                                                          *
   * GNAT is free software;  you can  redistribute it  and/or modify it under *
   * terms of the  GNU General Public License as published  by the Free Soft- *
diff -Nrcpad gcc-15.2.0/gcc/ada/warnsw.adb gcc-16.1.0-RC-20260423/gcc/ada/warnsw.adb
*** gcc-15.2.0/gcc/ada/warnsw.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/warnsw.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/warnsw.ads gcc-16.1.0-RC-20260423/gcc/ada/warnsw.ads
*** gcc-15.2.0/gcc/ada/warnsw.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/warnsw.ads	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1999-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/widechar.adb gcc-16.1.0-RC-20260423/gcc/ada/widechar.adb
*** gcc-15.2.0/gcc/ada/widechar.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/widechar.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/widechar.ads gcc-16.1.0-RC-20260423/gcc/ada/widechar.ads
*** gcc-15.2.0/gcc/ada/widechar.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/widechar.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/xoscons.adb gcc-16.1.0-RC-20260423/gcc/ada/xoscons.adb
*** gcc-15.2.0/gcc/ada/xoscons.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/xoscons.adb	Thu Apr 23 11:07:32 2026
***************
*** 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- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 2008-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/xsnamest.adb gcc-16.1.0-RC-20260423/gcc/ada/xsnamest.adb
*** gcc-15.2.0/gcc/ada/xsnamest.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/xsnamest.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/xutil.adb gcc-16.1.0-RC-20260423/gcc/ada/xutil.adb
*** gcc-15.2.0/gcc/ada/xutil.adb	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/xutil.adb	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 B o d y                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/ada/xutil.ads gcc-16.1.0-RC-20260423/gcc/ada/xutil.ads
*** gcc-15.2.0/gcc/ada/xutil.ads	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ada/xutil.ads	Thu Apr 23 11:07:32 2026
***************
*** 6,12 ****
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2025, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
--- 6,12 ----
  --                                                                          --
  --                                 S p e c                                  --
  --                                                                          --
! --          Copyright (C) 1992-2026, Free Software Foundation, Inc.         --
  --                                                                          --
  -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  -- terms of the  GNU General Public License as published  by the Free Soft- --
diff -Nrcpad gcc-15.2.0/gcc/addresses.h gcc-16.1.0-RC-20260423/gcc/addresses.h
*** gcc-15.2.0/gcc/addresses.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/addresses.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,5 ----
  /* Inline functions to test validity of reg classes for addressing modes.
!    Copyright (C) 2006-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/adjust-alignment.cc gcc-16.1.0-RC-20260423/gcc/adjust-alignment.cc
*** gcc-15.2.0/gcc/adjust-alignment.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/adjust-alignment.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Adjust alignment for local variable.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by Kito Cheng <kito.cheng@sifive.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/algol68/ChangeLog gcc-16.1.0-RC-20260423/gcc/algol68/ChangeLog
*** gcc-15.2.0/gcc/algol68/ChangeLog	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1014 ----
+ 2026-03-23  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68-coding-guidelines.texi (Comments): Fix typo.
+ 
+ 2026-03-14  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-strings.cc (a68_string_mult): Adjust to RR semantics for
+ 	negative or zero factor argument.
+ 	* ga68.texi (String operators): Adjust documentation accordingly.
+ 
+ 2026-03-08  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124372
+ 	* a68-low-units.cc (a68_lower_denotation): Call to strtoull if
+ 	INT64_T_IS_LONG is not defined, strtol otherwise.
+ 	* a68-parser-scanner.cc (get_next_token): Use strtoul for radix
+ 	instead of strtol.
+ 
+ 2026-03-05  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124322
+ 	* a68-low-holes.cc (a68_wrap_formal_proc_hole): Wrap functions
+ 	returning void properly.
+ 
+ 2026-02-27  James Bohl  <bohlj47@gmail.com>
+ 
+ 	* a68-low-prelude.cc (a68_lower_negate2): Annotate denotation
+ 	as being negated.
+ 	* a68-low-units.cc (a68_lower_denotation): Allow the full range
+ 	of negative values if the denotation is negated.
+ 	* a68-types.h (struct NODE_T): Add negated field.
+ 	(NEGATED): Define.
+ 	* a68-parser.cc (a68_new_node): Initialize NEGATED.
+ 
+ 2026-02-26  James Bohl  <bohlj47@gmail.com>
+ 
+ 	* a68-low-units.cc (a68_lower_denotation): Add error on
+ 	integral denotation overflow.
+ 
+ 2026-02-25  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-imports-archive.cc (Archive_file): Handle Darwin #1/NN
+ 	archive members.
+ 
+ 2026-02-25  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-units.cc (lower_subscript_for_trimmers): Do not revise
+ 	bounds if no trimscript.
+ 
+ 2026-02-23  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68.h: Remove prototypes for *_width functions.
+ 	* a68-parser-prelude.cc (stand_prelude): Do not define *width
+ 	functions.
+ 	* a68-low-ints.cc (a68_int_width): Remove.
+ 	* a68-low-reals.cc (a68_real_width): Likewise.
+ 	(a68_real_exp_width): Likewise.
+ 	* a68-low-prelude.cc (a68_lower_longintwidth): Likewise.
+ 	(a68_lower_intwidth): Likewise.
+ 	(a68_lower_longlongintwidth): Likewise.
+ 	(a68_lower_shortintwidth): Likewise.
+ 	(a68_lower_shortshortintwidth): Likewise.
+ 	(a68_lower_realwidth): Likewise.
+ 	(a68_lower_longrealwidth): Likewise.
+ 	(a68_lower_longlongrealwidth): Likewise.
+ 	(a68_lower_expwidth): Likewise.
+ 	(a68_lower_longexpwidth): Likewise.
+ 	(a68_lower_longlongexpwidth): Likewise.
+ 
+ 2026-02-22  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-units.cc (lower_subscript_for_trimmers): Do not crash
+ 	with trimmers with implicit lower and upper bounds.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-bottom-up.cc (reduce_formal_holes): Fix error format
+ 	tag.
+ 	* a68-parser-taxes.cc (test_firmly_related_ops_local): Likewise.
+ 	(already_declared_hidden): Likewise.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-imports-archive.cc (Archive_file::initialize_big_archive):
+ 	Fix formatting tag in call to a68_error.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-moids-diagnostics.cc (a68_mode_error_text): Properly escape
+ 	%< and %> in snprintf calls.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-pretty-print.h: New file.
+ 	* a68.h: Mark prototypes of diagnostic functions with
+ 	ATTRIBUTE_A68_DIAG.
+ 	* a68-diagnostics.cc (diagnostic): Do not translate upper-case
+ 	tags and pass a copy of the va_list `args' to diagnostic_set_info.
+ 	Mark with ATTRIBUTE_A68_DIAG.
+ 	* a68-imports-archive.cc: Convert to use standard error format
+ 	tags.
+ 	* a68-parser-victal.cc: Likewise.
+ 	* a68-parser-top-down.cc: Likewise.
+ 	* a68-parser-taxes.cc: Likewise.
+ 	* a68-parser-scanner.cc: Likeise.
+ 	* a68-parser-moids-check.cc: Likewise.
+ 	* a68-parser-modes.cc: Likewise.
+ 	* a68-parser-extract.cc: Likewise.
+ 	* a68-parser-pragmat.cc: Likewise.
+ 	* a68-parser-scope.cc: Likewise.
+ 	* a68-parser-brackets.cc: Likewise.
+ 	* a68-parser-bottom-up.cc: LIkewise.
+ 	* a68-moids-diagnostics.cc: Likewise.
+ 	* a68-imports.cc: Likewise.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low.cc (a68_make_formal_hole_decl): Get a boolean indicating
+ 	whether the declaration is for the address of the given symbol.
+ 	* a68.h: Update prototype of a68_make_formal_hole_decl.
+ 	* a68-low-holes.cc (a68_wrap_formal_var_hole): Pass a boolean to
+ 	a68_make_formal_hole_decl indicating whether an address is
+ 	required.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-prelude.cc (stand_prelude): Remove definitions for
+ 	bitpacks.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-moids-misc.cc (a68_is_c_mode): Allow C formal holes for
+ 	routines yielding strings.
+ 	* a68-low-holes.cc (a68_wrap_formal_proc_hole): Support wrappers
+ 	that yield strings.
+ 	* a68.h: Remove a68_posix_* and a68_lower_posix* prototypes.
+ 	* a68-low-posix.cc: Remove.
+ 	* a68-imports.cc (a68_open_packet): Get argument filename.
+ 	* Make-lang.in (ALGOL68_OBJS): Remove algol68/a68-low-posix.o.
+ 	* a68-low-runtime.def: Remove POSIX_*.
+ 	* lang.opt (-fcheck): Add new undocumented option -fbuilding-libga68.
+ 	* a68-parser-prelude.cc (stand_transput): New function.
+ 	(posix_prelude): Remove hardcoded additions to the top-level
+ 	environment and use a68_extract_revelations instead.
+ 	* a68-parser-extract.cc (a68_extract_revelation): Renamed from
+ 	extract_revelation and made accessible externally.
+ 	* a68-low.cc (a68_make_formal_hole_decl): Remove unneeded check.
+ 	(lower_lude_decl): New function.
+ 	(lower_module_text): Add calls to preludes and postludes of
+ 	standard modules if not building libga68.
+ 	(a68_lower_particular_program): Likewise.
+ 	* a68-low-prelude.cc (a68_lower_posixargc): Remove.
+ 	(a68_lower_posixargv): Likewise.
+ 	(a68_lower_posixgetenv): Likewise.
+ 	(a68_lower_posixputchar): Likewise.
+ 	(a68_lower_posixputs): Likewise.
+ 	(a68_lower_posixfconnect): Likewise.
+ 	(a68_lower_posixfopen): Likewise.
+ 	(a68_lower_posixfcreate): Likewise.
+ 	(a68_lower_posixfclose): Likewise.
+ 	(a68_lower_posixfsize): Likewise.
+ 	(a68_lower_posixlseek): Likewise.
+ 	(a68_lower_posixseekcur): Likewise.
+ 	(a68_lower_posixseekend): Likewise.
+ 	(a68_lower_posixseekset): Likewise.
+ 	(a68_lower_posixstdinfiledes): Likewise.
+ 	(a68_lower_posixstdoutfiledes): Likewise.
+ 	(a68_lower_posixstderrfiledes): Likewise.
+ 	(a68_lower_posixfileodefault): Likewise.
+ 	(a68_lower_posixfileordwr): Likewise.
+ 	(a68_lower_posixfileordonly): Likewise.
+ 	(a68_lower_posixfileowronly): Likewise.
+ 	(a68_lower_posixfileotrunc): Likewise.
+ 	(a68_lower_posixerrno): Likewise.
+ 	(a68_lower_posixexit): Likewise.
+ 	(a68_lower_posixperror): Likewise.
+ 	(a68_lower_posixstrerror): Likewise.
+ 	(a68_lower_posixfputc): Likewise.
+ 	(a68_lower_posixfputs): Likewise.
+ 	(a68_lower_posixgetchar): Likewise.
+ 	(a68_lower_posixfgetc): Likewise.
+ 	(a68_lower_posixgets): Likewise.
+ 	(a68_lower_posixfgets): Likewise.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-types.h (NO_LOWERER): Redefine as NULL.
+ 	(LOWERER_UNIMPL): Define.
+ 	* a68-parser-prelude.cc (a68_idf): Use LOWERER_UNIMPL instead of
+ 	NO_LOWERER.
+ 	(a68_prio): Likewise.
+ 	(a68_op): Likewise.
+ 	* a68-low-units.cc (a68_lower_identifier): Do not assume
+ 	declarations in A68_STANDENV all have lowerers.
+ 	(a68_lower_formula): Likewise.
+ 	(a68_lower_monadic_formula): Likewise.
+ 
+ 2026-02-21  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-imports.cc (a68_find_export_data): Make visible externally.
+ 	(a68_find_export_data): Try reading export data from an archive
+ 	file.
+ 	* a68.h: Adjust prototype of a68_find_export_data accordingly.
+ 	* a68-imports-archive.cc: New file.
+ 	* Make-lang.in (ALGOL68_OBJS): Build algol/a68-imports-archive.o.
+ 
+ 2026-02-16  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124115
+ 	* a68-low-holes.cc (get_hole_symbol): Always set *addrp to avoid
+ 	uninitialized memory.
+ 	* a68-low.cc (a68_make_formal_hole_decl): Remove assert.
+ 
+ 2026-02-12  James Bohl  <bohlj47@gmail.com>
+ 
+ 	PR algol68/124049
+ 	* Make-lang.in (ALGOL68_OBJS): Add algol68/a68-moids-sorting.o.
+ 	* a68.h: Add prototype for a68_sort_union_packs.
+ 	* a68-moids-sorting.cc: New file.
+ 	* a68-parser-modes.cc (a68_make_moid_list): Call a68_sort_union_packs.
+ 	* ga68-exports.pk (ga68_mode_64): Add comment on union mode ordering.
+ 
+ 2026-02-11  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68-coding-guidelines.texi (Enquiry clauses): New section.
+ 
+ 2026-02-10  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-units.cc (a68_lower_formal_hole): Call
+ 	a68_wrap_formal_proc_hole after a68_add_decl.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124028
+ 	* a68-low-bits.cc (a68_bits_shift): Avoid uninitialized save_expr.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-holes.cc (a68_wrap_formal_proc_hole): The wrapper is not
+ 	a top-level function.
+ 	* a68-low-units.cc (a68_lower_formal_hole): Reorder code and
+ 	remove spurious comment.
+ 
+ 2026-02-06  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-units.cc (a68_lower_denotation): Fix call to
+ 	a68_u8_mbtouc.
+ 
+ 2026-02-06  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* Make-lang.in (ALGOL68_OBJS): Add algol68/a68-low-holes.o.
+ 	* a68.h: Update prototypes.
+ 	* a68-types.h (struct TAG_T): New field nest_proc.
+ 	(NEST_PROC): Define.
+ 	* a68-parser.cc (a68_new_tag): Initialize NEST_PROC.
+ 	* a68-parser-extract.cc (extract_identities): Use NEST_PROC
+ 	instead of IN_PROC for taxes for defining-identifiers in identity
+ 	declarations of proc modes with formal holes as actual parameters.
+ 	* a68-moids-misc.cc (a68_is_c_mode): Modified to allow strings as
+ 	direct parameters.
+ 	* a68-low.cc (a68_make_proc_formal_hole_decl): Remove.
+ 	* a68-low-units.cc (a68_lower_identifier): Improve commentary.
+ 	(a68_lower_formal_hole): Factorize.
+ 	* a68-low-holes.cc: New file.
+ 	* a68-low-decls.cc (a68_lower_identity_declaration): Optimize
+ 	identity declarations of proc mode with formal holes as actual
+ 	parameters.
+ 	* a68-exports.cc (a68_add_identifier_to_moif): Honor NEST_PROC.
+ 	* ga68.texi (Communicating with C): Strings can now be passed as
+ 	parameters in formal holes.
+ 
+ 2026-02-05  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-clauses.cc (a68_lower_revelation_ludes): Fix function
+ 	type for fdecl.
+ 
+ 2026-02-05  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-bits.cc (a68_bits_set): Make bit number zero-based rathe
+ 	than one-based.
+ 	(a68_bits_clear): Likewise.
+ 	(a68_bits_test): Likewise.
+ 	* ga68.texi (Extended bits operators): Adapt documentation
+ 	accordingly.
+ 
+ 2026-02-05  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/123959
+ 	* a68.h: Expand prototype of a68_bits_shift to get a node argument
+ 	for location purposes.
+ 	* a68-low-bits.cc (a68_bits_shift): Implement RR compatible
+ 	semantics.
+ 	* a68-low-prelude.cc (a68_lower_shl3): Fix call to a68_bit_shift.
+ 	(a68_lower_shr3): Likewise.
+ 	* ga68.texi (Bits operators): Fix documentation of SHR and SHL.
+ 
+ 2026-02-03  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* a68-parser-extract.cc (a68_extract_indicants): Don't call FORWARD if
+ 	skip_module_text returns NO_NODE.
+ 
+ 2026-02-01  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-bits.cc (a68_bits_test): Do not get a parameter with the
+ 	result moid.
+ 	* a68.h: Adapt prototype of a68_bits_test accordingly.
+ 	* a68-low-prelude.cc (a68_lower_test3): Adjust call accordingly.
+ 
+ 2026-02-01  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68.h: Prototype for a68_make_proc_formal_hole_decl.
+ 	* a68-parser-extract.cc (extract_identities): Mark identity
+ 	declarations of proc modes whose actual parameter is a formal hole
+ 	as "inproc".
+ 	* a68-low.cc (a68_make_proc_formal_hole_decl): New function.
+ 	* a68-low-units.cc (a68_lower_formal_hole): Call
+ 	a68_make_proc_formal_hole_decl whenever necessary.
+ 
+ 2026-01-31  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68.h: Prototypes for a68_bits_test and a68_lower_test3.
+ 	* a68-low-bits.cc (a68_bits_test): New function.
+ 	* a68-low-prelude.cc (a68_lower_test3): Likewise.
+ 	* a68-parser-prelude.cc (gnu_prelude): Declare TEST operators and
+ 	their priority.
+ 	* ga68.texi (Extended bits operators): New section.
+ 
+ 2026-01-31  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.texi (POSIX files): Document SET and CLEAR operators.
+ 	* a68.h: Prototypes for a68_bits_set, a68_bits_clear,
+ 	a68_lower_set3 and a68_lower_clear3.
+ 	* a68-low-bits.cc (a68_bits_set): New function.
+ 	(a68_bits_clear): Likewise.
+ 	* a68-low-prelude.cc (a68_lower_set3): Likewise.
+ 	(a68_lower_clear3): Likewise.
+ 	* a68-parser-prelude.cc (gnu_prelude): Declare operators SET and
+ 	CLEAR and their priorities.
+ 
+ 2026-01-30  Marc Poulhiès  <dkm@kataplop.net>
+ 
+ 	* ga68-coding-guidelines.texi: Typo fix.
+ 
+ 2026-01-29  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.vw: Update formal grammar to express the GNU extension.
+ 	* a68-parser.cc (a68_dont_mark_here): Likewise.
+ 	* a68-parser-scanner.cc (SINGLE_QUOTE_CHAR): Define.
+ 	(get_next_token): Recognize ' as QUOTE_SYMBOL.
+ 	(tokenise_source): Acknowledge QUOTE_SYMBOL.
+ 	* a68-parser-keywords.cc (a68_set_up_tables): Likewise.
+ 	* a68-parser-bottom-up.cc (reduce_primary_parts): Adjust parser to
+ 	brief form of selection.
+ 	* a68-parser-attrs.def (QUOTE_SYMBOL): New attribute.
+ 	* ga68.texi (Brief selection): New section.
+ 
+ 2026-01-29  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.vw: Fix grammar for formal holes.
+ 	* ga68.texi (Particular programs): New section.
+ 	(Comments): Likewise.
+ 	* a68.h: Prototypes for a68_is_c_mode, a68_make_fomal_hole_decl,
+ 	a68_lower_formal_hole.
+ 	* a68-parser-attrs.def (FORMAL_HOLE): New attribute.
+ 	(LANGUAGE_INDICANT): Likewise.
+ 	* a68-parser-extract.cc (a68_elaborate_bold_tags): Elaborate
+ 	language indicants.
+ 	* a68-parser-moids-check.cc (mode_check_unit): Check mode in
+ 	formal holes.
+ 	* a68-low-units.cc (a68_lower_formal_hole): New function.
+ 	* a68-low.cc (a68_make_formal_hole_decl): Likewise.
+ 	* a68-moids-misc.cc (a68_is_c_mode): Likewise.
+ 	* a68-parser-bottom-up.cc (reduce_formal_holes): Likewise.
+ 
+ 2026-01-24  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/123733
+ 	* README: Mention minimum version of libgc.
+ 
+ 2026-01-24  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	Revert:
+ 	2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-prelude.cc (stand_prelude): Remove definitions for ^
+ 	operator.
+ 	* ga68.texi (Real operators): Remove entries for ^.
+ 	(Integral operators): Likewise.
+ 
+ 2026-01-24  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/123785
+ 	* a68-lang.cc (a68_init): Call a68_build_a68_type_nodes abefore
+ 	targetm.init_builtins.
+ 
+ 2026-01-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	PR algol68/123734
+ 	* ga68.texi: Fix code examples to make them compilable.
+ 	And s/consists on/consists of/g.
+ 
+ 2026-01-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lang.opt (std=algol68, std=gnu68): Add dot at the end of the
+ 	description.
+ 
+ 2026-01-20  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* a68-low-clauses.cc (a68_lower_collateral_clause): Update
+ 	call to a68_lower_alloca.
+ 	* a68-low-coercions.cc (a68_lower_widening): Likewise.
+ 	* a68-low-generator.cc (allocator_t): Adjust typedef.
+ 	(fill_in_buffer): Adjust call to allocator.
+ 	(gen_mode): Likewise.
+ 	* a68-low-multiples.cc (a68_row_malloc): Change type parameter to MOID_T
+ 	from tree. Adjust call to a68_lower_malloc.
+ 	* a68-low-posix.cc (a68_posix_fgets): Adjust call to a68_row_malloc.
+ 	(a68_posix_gets): Likewise.
+ 	* a68-low-runtime.def (MALLOC_LEAF): Add definition for
+ 	_libga68_malloc_leaf.
+ 	* a68-low-strings.cc (a68_string_concat): Adjust call to
+ 	a68_lower_malloc.
+ 	(a68_string_from_char): Likewise.
+ 	* a68-low-units.cc (a68_lower_slice): Likewise.
+ 	* a68-low.cc (a68_low_dup): Adjust calls to a68_lower_malloc
+ 	and a68_lower_alloca.
+ 	(a68_lower_alloca): Change type parameter to MOID_T from tree.
+ 	(a68_lower_malloc): Likewise. Use _libga68_malloc_leaf if the MOID_T
+ 	doesn't have refs, use _libga68_malloc otherwise.
+ 	* a68-parser-modes.cc (a68_create_mode): Set has_refs on the new mode.
+ 	(is_mode_has_refs): New function.
+ 	(compute_derived_modes): Set has_refs on the chain of modes.
+ 	* a68-parser.cc (a68_new_moid): Set has_refs to false by
+ 	default.
+ 	* a68-types.h (struct MOID_T): Add member `has_refs`.
+ 	(HAS_REFS): New macro.
+ 	* a68.h (a68_row_malloc): Update prototype.
+ 	(a68_lower_alloca): Likewise.
+ 	(a68_lower_malloc): Likewise.
+ 
+ 2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-prelude.cc (stand_prelude): Remove definitions for ^
+ 	operator.
+ 	* ga68.texi (Real operators): Remove entries for ^.
+ 	(Integral operators): Likewise.
+ 
+ 2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68-coding-guidelines.texi: New file.
+ 	* Make-lang.in (A68_CODING_GUIDE_MANUAL_FILES): Define.
+ 	(A68_TEXI_FILES): Add A68_CODING_GUIDE_MANUAL_FILES.
+ 	(doc/ga68-coding-guidelines.info): New rule.
+ 	(doc/ga68-coding-guidelines.dvi): Likewise.
+ 	(doc/ga68-coding-guidelines.pdf): Likewise.
+ 	($(build_htmldir)/ga68-coding-guidelines/index.html): Likewise.
+ 	(algol68.info): Add ga68-coding-guidelines.info.
+ 	(algol68.srcinfo): Likewise.
+ 	(algol68.install-info): Likewise.
+ 	(algol68.install-html): Likewise.
+ 	(algol68.dvi): Add ga68-coding-guielines.dvi.
+ 	(algol68.pdf): Add ga68-coding-guidelines.pdf.
+ 
+ 2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-moids-equivalence.cc (are_packs_equivalent): Add
+ 	explicative comment.
+ 
+ 2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/123653
+ 	* a68-parser-moids-equivalence.cc (are_packs_equivalent): Fix
+ 	logic in name comparison.
+ 
+ 2026-01-17  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-parser-prelude.cc (stand_transput): Do not define
+ 	`Number' and `whole' as built-ins.
+ 
+ 2026-01-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	PR algol68/123007
+ 	* a68-lang.cc (a68_type_for_mode): Handle TImode.
+ 	(a68_type_for_size): Handle unsigned_intTI_type_node.
+ 
+ 2026-01-15  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.texi (POSIX files): Fix documentation of lseek.
+ 
+ 2026-01-15  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.texi (Dialect options): {..} is not a valid variant of
+ 	(...).
+ 
+ 2026-01-10  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* a68-low-posix.cc (a68_posix_setexitstatus): Delete function.
+ 	(a68_posix_exit): New function.
+ 	* a68-low-prelude.cc (a68_lower_setexitstatus): Delete function.
+ 	(a68_lower_posixexit): New function.
+ 	* a68-low-runtime.def (SET_EXIT_STATUS): Delete definition.
+ 	(POSIX_EXIT): Add definition for posixexit.
+ 	* a68-parser-prelude.cc (posix_prelude): Remove setexitstatus
+ 	identifier from and add posixexit identifier to standenv.
+ 	* a68.h (a68_posix_setexitstatus): Delete prototype.
+ 	(a68_lower_setexitstatus): Likewise.
+ 	(a68_posix_exit): New prototype.
+ 	(a68_lower_posixexit): Likewise.
+ 	* ga68.texi:
+ 
+ 2026-01-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.texi (Worthy characters): Escape @.
+ 
+ 2026-01-04  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-lang.cc (a68_post_options): Disable psABI warnings.
+ 
+ 2025-12-31  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-exports.cc (a68_asm_output_mode): Do not rely on DIM to
+ 	count modes in an union mode.
+ 
+ 2025-12-31  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-imports.cc (a68_open_packet): Use right tag format in
+ 	a68_error.
+ 
+ 2025-12-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-lang.cc (a68_init_options): Add an entry to A68_MODULE_FILES
+ 	to map module Transput to the basename ga68.
+ 
+ 2025-12-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-scanner.cc (get_next_token): Bits denotation parsing
+ 	fixes.
+ 	* ga68.texi (SUPPER stropping): Document special rule for bits
+ 	denotations with radix 16.
+ 
+ 2025-12-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-victal.cc (victal_check_mode_dec): Mind publicized
+ 	declarations.
+ 	(victal_check_variable_dec): Likewise.
+ 	(victal_check_identity_dec): Likewise.
+ 
+ 2025-12-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-scope.cc (scope_module_text): New function.
+ 	(scope_module_declaration): Likewise.
+ 	(scope_particular_program): Likewise.
+ 	(scope_prelude_packet): Likewise.
+ 	(a68_scope_checker): Call scope_particular_program and
+ 	scope_prelude_packet.
+ 
+ 2025-12-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-exports.cc (a68_asm_output_mode): Use .LMDnn labels for
+ 	modes instead of .LMnn.
+ 
+ 2025-12-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* ga68.texi (Packets): Update to specify only particular programs
+ 	and prelude packets are currently supported.
+ 	(Writing modules): Few updates.
+ 	(Module activation): Likewise.
+ 	(Modules and exports): New section.
+ 
+ 2025-12-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-imports.cc (a68_open_packet): Use already decoded moifs
+ 	if present.
+ 
+ 2025-12-28  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-imports.cc (a68_decode_modes): Do not deduplicate imported
+ 	modes here.
+ 	(a68_open_packet): Do it here.
+ 	* a68-parser-extract.cc (extract_revelation): Recurse into
+ 	publicized modules after interning modes in the current module,
+ 	not before.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-taxes.cc (tax_module_dec): Do not handle
+ 	DEFINING_MODULE_INDICANT.
+ 	* a68-exports.cc (a68_add_module_to_moif): Do not mangle module
+ 	names in module extracts.
+ 	(add_pub_revelations_to_moif): New function.
+ 	(a68_do_exports): Simplify and call add_pub_revelations_to_moif.
+ 	* a68-imports.cc (a68_decode_moifs): Add all decoded moifs to the
+ 	global list TOP_MOIF.
+ 	* a68-parser-extract.cc (extract_revelation): Recurse to import
+ 	extracts from publicized modules.
+ 	(a68_extract_indicants): Do not add symbol table entries for
+ 	defining modules.
+ 	* a68-types.h (struct TAG_T): Remove field EXPORTED.
+ 	(EXPORTED): Remove macro.
+ 	(TOP_MOIF): Define.
+ 	* a68-parser.cc (a68_parser): Initialize global list of moifs.
+ 	(a68_new_tag): Do not initialize EXPORTED.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-top-down.cc (a68_top_down_parser): Stop parsing after
+ 	longjump.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-bottom-up.cc (a68_bottom_up_error_check): Do not
+ 	check for the absence of public-symbols.
+ 	(a68_bottom_up_coalesce_pub): Removed function.
+ 	* a68-parser.cc (a68_parser): Do not call
+ 	a68_bottom_up_coalesce_pub
+ 	* a68-parser-extract.cc (a68_extract_indicants): Adapt to the
+ 	presence of public-symbols.
+ 	* a68-parser-modes.cc (get_mode_from_proc_variables): Likewise.
+ 	* a68-parser-taxes.cc (tax_variable_dec): Likewise.
+ 	(tax_proc_variable_dec): Likewise.
+ 	(tax_op_dec): Likewise
+ 	(tax_prio_dec): Likewise.
+ 	* a68-low-decls.cc (a68_lower_mode_declaration): Adapt to the
+ 	presence of public-symbols.
+ 	(a68_lower_variable_declaration): Likewise.
+ 	(a68_lower_identity_declaration): Likewise.
+ 	(a68_lower_procedure_declaration): Likewise.
+ 	(a68_lower_procedure_variable_declaration): Likewise.
+ 	(a68_lower_brief_operator_declaration): Likewise.
+ 	(a68_lower_operator_declaration): Likewise.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-moids-misc.cc (a68_pack_soids_in_moid): Return the result of
+ 	a68_register_extra_mode.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-extract.cc (a68_extract_indicants): Do not
+ 	detect_redefined_keyword for accessed modules.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-scope.cc (scope_access_clause): New function.
+ 	(scope_enclosed_clause): Use scope_access_clause.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-bottom-up.cc (reduce_enclosed_clauses): Reduce joined
+ 	list of revelations.
+ 	* a68-low-clauses.cc (a68_lower_revelation_ludes): New function.
+ 	(a68_lower_access_clause): Use a68_lower_revelation_ludes.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-extract.cc (a68_extract_indicants): Fix
+ 	MODE_DECLARATION to MODULE_DECLARATION typo.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-top-down.cc (top_down_access): An access clause may
+ 	be nested in another access clause.
+ 	* a68-parser-extract.cc (a68_extract_indicants): Coalesce 'pub'
+ 	symbols.
+ 	(a68_extract_indicants): Nested access are not allowed in module
+ 	texts.
+ 	* a68-parser-bottom-up.cc (expected_module_text): New function.
+ 	(reduce_prelude_packet): Use expected_module_text.
+ 	(a68_bottom_up_error_check): Add comment.
+ 
+ 2025-12-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-types.h (struct MOIF_T): Add chain_next to GTY info.
+ 	* a68-imports.cc (a68_decode_modes): Mode offsets are relative to
+ 	the start of the moif, not the start of the exports.
+ 	(a68_decode_moifs): Renamed from a68_decode_moif and changed to
+ 	decode multiple moifs from the exports.
+ 	(a68_open_packet): Call a68_decode_moifs and look for the right
+ 	moif.
+ 	* a68-exports.cc (a68_moif_new): Initialize NEXT (moif).
+ 
+ 2025-12-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	* a68.h (a68_file_size): Changed to use file descriptor.
+ 	(a68_file_read): Likewise.
+ 	* a68-parser-scanner.cc (a68_file_size): Likewise.
+ 	(a68_file_read): Likewise.
+ 	(read_source_file): Adapt `a68_file_{size,read}'.
+ 	(include_files): Likewise.
+ 	* a68-lang.cc (a68_handle_option): Likewise.
+ 	* a68-imports.cc (a68_find_export_data): Implement
+ 	reading from module's .m68 file if available.
+ 
+ 2025-12-22  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-imports.cc (PARSE_INDICANT): Fix handling of uderscore
+ 	characters.
+ 
+ 2025-12-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	* a68-parser-scanner.cc (a68_file_size): Fix comment to mention
+ 	it accepts `FILE *' and not file descriptor.
+ 	Fix invocation of `lseek' to correctly revert position of file
+ 	offset to previous one.
+ 
+ 2025-12-20  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-low-moids.cc (a68_lower_moids): Fix for layout of
+ 	incomplete types.
+ 
+ 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* a68-low-decls.cc (a68_lower_variable_declaration): Fix comment typo,
+ 	varaible -> variable.
+ 
+ 2025-12-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/123006
+ 	* a68-imports.cc (complete_encoded_mode): Fix handling of flex
+ 	modes.
+ 
+ 2025-12-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/123132
+ 	* a68-imports.cc (DOFFSET): Fix big-endian path.
+ 
+ 2025-12-16  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-bottom-up.cc (reduce_prelude_packet): Do not support
+ 	multiple module definitions per packet.
+ 
+ 2025-12-16  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* lang.opt.urls: Regenerate.
+ 
+ 2025-12-16  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* lang.opt (-fmodules-map): New option.
+ 	(-fmodules-map-file): Likewise.
+ 	* a68.h: Add prototype for a68_process_module_map.
+ 	* a68-imports.cc (SKIP_WHITESPACES): Define.
+ 	(PARSE_BASENAME): Likewise.
+ 	(PARSE_INDICANT): Likewise.
+ 	(a68_process_module_map): New function.
+ 	* a68-lang.cc: (a68_init): Move initialization of
+ 	A68_MODULE_FILES from there...
+ 	(a68_init_options): to here.
+ 	(a68_handle_option): Handle OPT_fmodules_map and
+ 	OPT_fmodules_map_.
+ 	* a68-parser-pragmat.cc (handle_access_in_pragmat): Normalize
+ 	module indicants to upper case.
+ 	* ga68.texi (Module search options): New section.
+ 
+ 2025-12-16  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68.h: Prototypes for a68_get_file_size and a68_file_read.
+ 	* a68-parser-scanner.cc (a68_file_size): New function.
+ 	(a68_file_read): Renamed from io_read.
+ 	(get_source_size): Deleted function.
+ 	(include_files): Use a68_file_size and a68_file_read.
+ 
+ 2025-12-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	* a68-imports.cc (dump_encoded_mode): Replace "basic" with
+ 	"string".
+ 
+ 2025-12-15  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	* ga68-exports.pk (ga68_text_reloc_64): Renamed and
+ 	adapted from ga68_text_reloc.
+ 	(ga68_data_reloc_64): Renamed and adapted from ga68_data_reloc.
+ 	(ga68_mode_64): Renamed and adapted from ga68_mode.
+ 	(ga68_extract_64): Renamed and adapted from ga68_extract.
+ 	(ga68_module_64): Renamed and adapted from ga68_module.
+ 	(ga68_text_reloc_32): New type.
+ 	(ga68_data_reloc_32): Likewise.
+ 	(ga68_mode_32): Likewise.
+ 	(ga68_extract_32): Likewise.
+ 	(ga68_module_32): Likewise.
+ 
+ 2025-12-15  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+ 
+ 	* ga68-exports.pk: Fix comment and value for magic number.
+ 
+ 2025-12-13  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-bottom-up.cc (a68_bottom_up_coalesce_pub): Do not
+ 	mark defining entities as publicized.
+ 	* a68-parser-extract.cc (a68_extract_indicants): Mark public
+ 	defining entities.
+ 	(a68_extract_priorities): Likewise.
+ 	(a68_extract_operators): Likewise.
+ 	(a68_extract_identities): Likewise.
+ 	(a68_extract_variables): Likewise.
+ 	(a68_extract_proc_identities): Likewise.
+ 	(a68_extract_proc_variables): Likewise.
+ 
+ 2025-12-12  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-parser-scanner.cc (a68_lexical_analyser): New argument
+ 	empty_program.
+ 	* a68.h: Update prototype of a68_lexical_analyser.
+ 	* a68-parser.cc (a68_parser): Emit error for empty input files.
+ 
+ 2025-12-12  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* ga68.texi (@opindex I): Expand.
+ 	(@oindex L): New.
+ 	* lang.opt.urls: Regenerate.
+ 
+ 2025-12-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* lang.opt: Add entry for OPT_L.
+ 
+ 2025-12-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-imports.cc (a68_try_packet_in_directory): do not try
+ 	extensionless packet files.
+ 
+ 2025-12-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-low-ints.cc (a68_int_sign): Avoid gimplifying val twice.
+ 	* a68-low-reals.cc (a68_real_sign): Likewise.
+ 
+ 2025-12-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-low-prelude.cc (a68_lower_char_mult3): Fix asserts.
+ 
+ 2025-12-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/123007
+ 	* a68-lang.cc (a68_type_for_size): Handle intTI_type_node.
+ 
+ 2025-12-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/122954
+ 	* a68-types.h (NO_A68_REF): Delete.
+ 	(NO_ARRAY): Likewise.
+ 	(NO_BOOK): Likewise.
+ 	(NO_BOOL): Likewise.
+ 	(NO_BYTE): Likewise.
+ 	(NO_CONSTANT): Likewise.
+ 	(NO_DEC): Likewise.
+ 	(NO_EDLIN): Likewise.
+ 	(NO_FILE): Likewise.
+ 	(NO_FORMAT): Likewise.
+ 	(NO_GPROC): Likewise.
+ 	(NO_HANDLE): Likewise.
+ 	(NO_INT): Likewise.
+ 	(NO_JMP_BUF): Likewise.
+ 	(NO_SCOPE): Moved to a68-parser-scope.cc.
+ 	(NO_TUPLE): Likewise.
+ 	(TUPLE): Likewise.
+ 	(NO_GINFO): Converted from macro to contexpr.
+ 	(NO_KEYWORD): Likewise.
+ 	(NO_NINFO): Likewise.
+ 	(NO_PACK): Likewise.
+ 	(NO_SOID): Likewise.
+ 	(NO_TOKEN): Likewise.
+ 	(NO_NOTE): Likewise.
+ 	(MODES_T): Turned from typedef to forward declaration.
+ 	(NODE_T): Likewise.
+ 	(MODE_CACHE_T): Likewise.
+ 	(MOID_T): Likewise.
+ 	(GINFO_T): Likewise.
+ 	(KEYWORD_T): Likewise.
+ 	(LINE_T): Likewise.
+ 	(NODE_INFO_T): Likewise.
+ 	(PACK_T): Likewise.
+ 	(SOID_T): Likewise.
+ 	(TABLE_T): Likewise.
+ 	(TAG_T): Likewise.
+ 	(TOKEN_T): Likewise.
+ 	(ORIGIN_T): Likewise.
+ 	(POSTULATE_T): Likewise.
+ 	(OPTIONS_T): Likewise.
+ 	(PARSER_T): Likewise.
+ 	(MODULE_T): Likewise.
+ 	(EXTRACT_T): Likewise.
+ 	(MOIF_T): Likewise.
+ 	(A68_T): Likewise.
+ 	* a68-parser-scope.cc (NO_TUPLE): Moved from a68-types.h
+ 	(NO_SCOPE): Likewise.
+ 	(TUPLE): Likewise.
+ 
+ 2025-12-03  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/122966
+ 	* a68-low-clauses.cc (a68_lower_collateral_clause): Remove
+ 	self-assignment.
+ 
+ 2025-12-02  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/122954
+ 	* a68-low-clauses.cc (serial_clause_dsa): Avoid redundant
+ 	initialization.
+ 	* a68-parser-modes.cc (compute_derived_modes): Likewise.
+ 	* a68-low.cc (a68_lower_tree): Remove redundant break.
+ 
+ 2025-12-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	PR algol68/122944
+ 	* Make-lang.in (algol68.install-common): Link
+ 	A68_TARGET_INSTALL_NAME in bindir.
+ 
+ 2025-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* a68-exports.cc: Include memmodel.h.
+ 	* a68-imports.cc: Likeswise.
+ 
+ 2025-12-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* a68-low-multiples.cc (copy_multiple_dimension_elems): Use
+ 	HOST_SIZE_T_PRINT_DEC in xasprintf format string and cast to
+ 	fmt_size_t.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-diagnostics.cc (diagnostic): Copypasto "a meek"
+ 	should be "a firm".  Support printing line number for programs
+ 	longer than 9 lines.  Use obstack_append_str rather than
+ 	obstack_grow.
+ 	(obstack_append_str): New function.
+ 
+ 2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* lang.opt.urls: Regenerate.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* lang.opt: New file.
+ 	* lang.opt.urls: Generate.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* ga68-internals.texi: New file.
+ 	* ga68.texi: Likewise.
+ 	* Make-lang.in: New file.
+ 	* config-lang.in: Likewise.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 
+ 	* a68-unistr.c: New file.
+ 	* a68-lang.cc: Likewise.
+ 	* a68spec.cc: Likewise.
+ 	* lang-specs.h: Likewise.
+ 	* README: Likewise.
+ 	* a68-tree.def: Likewise.
+ 	* a68-types.h: Likewise.
+ 	* a68.h: Likewise.
+ 	* ga68.vw: Likewise.
+ 	* a68-low-moids.cc: Likewise.
+ 	* a68-low-coercions.cc: Likewise.
+ 	* a68-low-generator.cc: Likewise.
+ 	* a68-low-units.cc: Likewise.
+ 	* a68-low-ranges.cc: Likewise.
+ 	* a68-low-builtins.cc: Likewise.
+ 	* a68-low-runtime.cc: Likewise.
+ 	* a68-low-runtime.def: Likewise.
+ 	* a68-low-clauses.cc: Likewise.
+ 	* a68-low-decls.cc: Likewise.
+ 	* a68-low-posix.cc: Likewise.
+ 	* a68-low-prelude.cc: Likewise.
+ 	* a68-low-multiples.cc: Likewise.
+ 	* a68-low-structs.cc: Likewise.
+ 	* a68-low-unions.cc: Likewise.
+ 	* a68-low-bits.cc: Likewise.
+ 	* a68-low-bools.cc: Likewise.
+ 	* a68-low-chars.cc: Likewise.
+ 	* a68-low-complex.cc: Likewise.
+ 	* a68-low-ints.cc: Likewise.
+ 	* a68-low-procs.cc: Likewise.
+ 	* a68-low-reals.cc: Likewise.
+ 	* a68-low-refs.cc: Likewise.
+ 	* a68-low-strings.cc: Likewise.
+ 	* a68-low.cc: Likewise.
+ 	* a68-low-misc.cc: Likewise.
+ 	* a68-parser-pragmat.cc: Likewise.
+ 	* a68-parser-serial-dsa.cc: Likewise.
+ 	* a68-parser-debug.cc: Likewise.
+ 
+ 2025-11-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
+ 	    Marcel van der Veer  <algol68g@xs4all.nl>
+ 
+ 	* a68-parser-extract.cc: New file.
+ 	* a68-parser-scope.cc: Likewise.
+ 	* a68-parser-taxes.cc: Likewise.
+ 	* a68-moids-diagnostics.cc: Likewise.
+ 	* a68-moids-misc.cc: Likewise.
+ 	* a68-moids-to-string.cc: Likewise.
+ 	* a68-parser-modes.cc: Likewise.
+ 	* a68-parser-moids-check.cc: Likewise.
+ 	* a68-parser-moids-coerce.cc: Likewise.
+ 	* a68-parser-moids-equivalence.cc: Likewise.
+ 	* a68-postulates.cc: Likewise.
+ 	* a68-parser-prelude.cc: Likewise.
+ 	* a68-parser-victal.cc: Likewise.
+ 	* a68-parser-bottom-up.cc: Likewise.
+ 	* a68-parser-brackets.cc: Likewise.
+ 	* a68-parser-top-down.cc: Likewise.
+ 	* a68-parser-keywords.cc: Likewise.
+ 	* a68-parser-scanner.cc: Likewise.
+ 	* a68-parser-attrs.def: Likewise.
+ 	* a68-parser.cc: Likewise.
+ 	* a68-imports.cc: Likewise.
+ 	* a68-exports.cc: Likewise.
+ 	* ga68-exports.pk: Likewise.
+ 	* a68-diagnostics.cc: Likewise.
+ 
+ Copyright (C) 2025-2026 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-15.2.0/gcc/algol68/Make-lang.in gcc-16.1.0-RC-20260423/gcc/algol68/Make-lang.in
*** gcc-15.2.0/gcc/algol68/Make-lang.in	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/Make-lang.in	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,328 ----
+ # Make-lang.in -- Top level -*- makefile -*- fragment for GCC Algol 68
+ # frontend.
+ 
+ # Copyright (C) 2025-2026 Free Software Foundation, Inc.
+ 
+ # This file is NOT 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/>.
+ 
+ # This file provides the language dependent support in the main Makefile.
+ 
+ .PHONY: algol68
+ 
+ # Installation name.
+ 
+ A68_INSTALL_NAME = $(shell echo ga68|sed '$(program_transform_name)')
+ A68_TARGET_INSTALL_NAME = $(target_noncanonical)-$(shell echo ga68|sed '$(program_transform_name)')
+ 
+ # General hooks
+ 
+ algol68: a681$(exeext)
+ algol68.serial = a681$(exeext)
+ 
+ .PHONY: algol68
+ 
+ # Use maximal warnings for this front end.
+ algol68-warn = $(STRICT_WARN)
+ 
+ # First the driver, ga68.
+ 
+ GA68_OBJS = \
+    $(GCC_OBJS) \
+    algol68/a68spec.o \
+    $(END)
+ 
+ a68spec.o: $(srcdir)/algol68/a68spec.cc $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \
+      $(CONFIG_H) opts.h
+ 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \
+                 $(INCLUDES) $(srcdir)/algol68/a68spec.cc
+ 
+ ga68$(exeext): $(GA68_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS)
+ 	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ 	  $(GA68_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a \
+ 	  $(EXTRA_GCC_LIBS) $(LIBS)
+ 
+ # Now the compiler proper, a681.
+ 
+ ALGOL68_OBJS = algol68/a68-lang.o \
+                algol68/a68-unistr.o \
+                algol68/a68-moids-diagnostics.o \
+                algol68/a68-moids-misc.o \
+                algol68/a68-moids-sorting.o \
+                algol68/a68-moids-to-string.o \
+                algol68/a68-postulates.o \
+                algol68/a68-diagnostics.o \
+                algol68/a68-exports.o \
+                algol68/a68-imports.o \
+                algol68/a68-imports-archive.o \
+                algol68/a68-parser.o \
+                algol68/a68-parser-keywords.o \
+                algol68/a68-parser-bottom-up.o \
+                algol68/a68-parser-brackets.o \
+                algol68/a68-parser-debug.o \
+                algol68/a68-parser-extract.o \
+                algol68/a68-parser-modes.o \
+                algol68/a68-parser-moids-check.o \
+                algol68/a68-parser-moids-coerce.o \
+                algol68/a68-parser-moids-equivalence.o \
+                algol68/a68-parser-pragmat.o \
+                algol68/a68-parser-scanner.o \
+                algol68/a68-parser-scope.o \
+                algol68/a68-parser-serial-dsa.o \
+                algol68/a68-parser-taxes.o \
+                algol68/a68-parser-top-down.o \
+                algol68/a68-parser-victal.o \
+                algol68/a68-parser-prelude.o \
+                algol68/a68-low.o \
+                algol68/a68-low-builtins.o \
+                algol68/a68-low-clauses.o \
+                algol68/a68-low-coercions.o \
+                algol68/a68-low-decls.o \
+                algol68/a68-low-generator.o \
+                algol68/a68-low-misc.o \
+                algol68/a68-low-moids.o \
+                algol68/a68-low-multiples.o \
+                algol68/a68-low-refs.o \
+                algol68/a68-low-procs.o \
+                algol68/a68-low-structs.o \
+                algol68/a68-low-chars.o \
+                algol68/a68-low-strings.o \
+                algol68/a68-low-ints.o \
+                algol68/a68-low-bools.o \
+                algol68/a68-low-reals.o \
+                algol68/a68-low-complex.o \
+                algol68/a68-low-bits.o \
+                algol68/a68-low-prelude.o \
+                algol68/a68-low-ranges.o \
+                algol68/a68-low-runtime.o \
+                algol68/a68-low-unions.o \
+                algol68/a68-low-units.o \
+                algol68/a68-low-holes.o \
+                $(END)
+ 
+ ALGOL68_ALL_OBJS = $(ALGOL68_OBJS)
+ 
+ algol68_OBJS = $(ALGOL68_ALL_OBJS) algol68/a68spec.o
+ 
+ a681$(exeext): $(ALGOL68_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(algol68.prev)
+ 	@$(call LINK_PROGRESS,$(INDEX.algol68),start)
+ 	+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ 	      $(ALGOL68_OBJS) attribs.o $(BACKEND) $(LIBS) $(A681_LIBS) $(BACKENDLIBS)
+ 	@$(call LINK_PROGRESS,$(INDEX.algol68),end)
+ 
+ algol68/tfspec.o: $(srcdir)/algol68/tfspec.c \
+                      $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) $(CONFIG_H) $(TREE_H)
+ 
+ # Documentation.
+ 
+ A68_MANUAL_FILES =
+ 
+ A68_MANUAL_FILES = \
+ 		algol68/ga68.texi \
+ 		$(gcc_docdir)/include/fdl.texi \
+ 		$(gcc_docdir)/include/gpl_v3.texi \
+ 		$(gcc_docdir)/include/gcc-common.texi \
+ 		gcc-vers.texi
+ 
+ A68_INT_MANUAL_FILES = \
+ 		algol68/ga68-internals.texi \
+ 		$(gcc_docdir)/include/fdl.texi \
+ 		$(gcc_docdir)/include/gcc-common.texi \
+ 		gcc-vers.texi
+ 
+ A68_CODING_GUIDE_MANUAL_FILES = \
+ 		algol68/ga68-coding-guidelines.texi \
+ 		$(gcc_docdir)/include/fdl.texi \
+ 		$(gcc_docdir)/include/gcc-common.texi \
+ 		gcc-vers.texi
+ 
+ A68_TEXI_FILES = $(A68_MANUAL_FILES) $(A68_INT_MANUAL_FILES) \
+                  $(A68_CODING_GUIDE_MANUAL_FILES)
+ 
+ doc/ga68.info: $(A68_MANUAL_FILES)
+ 	if test "x$(BUILD_INFO)" = xinfo; then \
+ 	  rm -f doc/ga68.info*; \
+ 	  $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ 		-I $(gcc_docdir)/include -o $@ $<; \
+ 	else true; fi
+ 
+ doc/ga68-internals.info: $(A68_INT_MANUAL_FILES)
+ 	if test "x$(BUILD_INFO)" = xinfo; then \
+ 	  rm -f doc/ga68-internals.info*; \
+ 	  $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ 		-I $(gcc_docdir)/include -o $@ $<; \
+ 	else true; fi
+ 
+ doc/ga68-coding-guidelines.info: $(A68_CODING_GUIDE_MANUAL_FILES)
+ 	if test "x$(BUILD_INFO)" = xinfo; then \
+ 	  rm -f doc/ga68-coding-guidelines.info*; \
+ 	  $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ 		-I $(gcc_docdir)/include -o $@ $<; \
+ 	else true; fi
+ 
+ doc/ga68.dvi: $(A68_MANUAL_FILES)
+ 	$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
+ 
+ doc/ga68-internals.dvi: $(A68_INT_MANUAL_FILES)
+ 	$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
+ 
+ doc/ga68-coding-guidelines.dvi: $(A68_CODING_GUIDE_MANUAL_FILES)
+ 	$(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
+ 
+ doc/ga68.pdf: $(A68_MANUAL_FILES)
+ 	$(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
+ 
+ doc/ga68-internals.pdf: $(A68_INT_MANUAL_FILES)
+ 	$(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
+ 
+ doc/ga68-coding-guidelines.pdf: $(A68_CODING_GUIDE_MANUAL_FILES)
+ 	$(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
+ 
+ $(build_htmldir)/ga68/index.html: $(A68_MANUAL_FILES)
+ 	$(mkinstalldirs) $(@D)
+ 	rm -f $(@D)/*
+ 	$(TEXI2HTML) $(MAKEINFO_TOC_INLINE_FLAG) \
+ 		-I $(gcc_docdir)/include -I $(srcdir)/d -o $(@D) $<
+ 
+ $(build_htmldir)/ga68-internals/index.html: $(A68_INT_MANUAL_FILES)
+ 	$(mkinstalldirs) $(@D)
+ 	rm -f $(@D)/*
+ 	$(TEXI2HTML) $(MAKEINFO_TOC_INLINE_FLAG) \
+ 		-I $(gcc_docdir)/include -I $(srcdir)/d -o $(@D) $<
+ 
+ $(build_htmldir)/ga68-coding-guidelines/index.html: $(A68_CODING_GUIDE_MANUAL_FILES)
+ 	$(mkinstalldirs) $(@D)
+ 	rm -f $(@D)/*
+ 	$(TEXI2HTML) $(MAKEINFO_TOC_INLINE_FLAG) \
+ 		-I $(gcc_docdir)/include -I $(srcdir)/d -o $(@D) $<
+ 
+ .INTERMEDIATE: ga68.pod
+ 
+ ga68.pod: algol68/ga68.texi
+ 	-$(TEXI2POD) -D ga68 < $< > $@
+ 
+ # Build hooks.
+ 
+ algol68.srcextra:
+ 
+ algol68.all.cross: ga68$(exeext)
+ algol68.start.encap: ga68$(exeect)
+ algol68.rest.encap:
+ algol68.info: doc/ga68.info doc/ga68-internals.info doc/ga68-coding-guidelines.info
+ algol68.dvi: doc/ga68.dvi doc/ga68-internals.dvi doc/ga68-coding-guidelines.dvi
+ algol68.pdf: doc/ga68.pdf doc/ga68-internals.pdf doc/ga68-coding-guidelines.pdf
+ algol68.install-pdf:
+ algol68.html: $(build_htmldir)/ga68/index.html $(build_htmldir)/ga68-internals/index.html \
+               $(build_htmldir)/ga68-coding-guidelines/index.html
+ algol68.man: doc/ga68.1
+ algol68.srcinfo: doc/ga68.info doc/ga68-internals.info doc/ga68-coding-guidelines.info
+ 	-cp -p $^ $(srcdir)/doc
+ algol68.srcinfo:
+ algol68.srcman:
+ algol68.srcman: doc/ga68.1
+ 	-cp -p $^ $(srcdir)/doc
+ algol68.install-plugin:
+ 
+ algol68.tags: force
+ 	cd $(srcdir)/algol68; etags -o TAGS.sub *.c *.h; \
+ 	etags --include TAGS.sub --include ../TAGS.sub
+ 
+ lang_checks += check-algol68
+ lang_checks_parallelized += check-algol68
+ check_algol68_parallelize = 10
+ 
+ selftest-algol68:
+ 
+ #
+ # Install hooks:
+ 
+ algol68.install-common: installdirs
+ 	-rm -f $(DESTDIR)$(bindir)/$(A68_INSTALL_NAME)$(exeext)
+ 	$(INSTALL_PROGRAM) ga68$(exeext) $(DESTDIR)$(bindir)/$(A68_INSTALL_NAME)$(exeext)
+ 	-if test -f a681$(exeext); then \
+ 	  if test -f ga68-cross$(exeext); then \
+ 	    :; \
+ 	  else \
+ 	    rm -f $(DESTDIR)$(bindir)/$(A68_TARGET_INSTALL_NAME)$(exeext); \
+ 	    ( cd $(DESTDIR)$(bindir) && \
+ 	      $(LN) $(A68_INSTALL_NAME)$(exeext) $(A68_TARGET_INSTALL_NAME)$(exeext) ); \
+ 	  fi; \
+ 	fi
+ 
+ algol68.install-man: $(DESTDIR)$(man1dir)/$(A68_INSTALL_NAME)$(man1ext)
+ 
+ $(DESTDIR)$(man1dir)/$(A68_INSTALL_NAME)$(man1ext): doc/ga68.1 installdirs
+ 	-rm -f $@
+ 	-$(INSTALL_DATA) $< $@
+ 	-chmod a-x $@
+ 
+ $(DESTDIR)$(man7dir)/%.7algol: doc/%.7algol installdirs
+ 	-rm -f $@
+ 	-$(INSTALL_DATA) $< $@
+ 	-chmod a-x $@
+ 
+ algol68.install-info: $(DESTDIR)$(infodir)/ga68.info \
+                       $(DESTDIR)$(infodir)/ga68-internals.info \
+                       $(DESTDIR)$(infodir)/ga68-coding-guidelines.info
+ 
+ algol68.install-html: $(build_htmldir)/ga68 $(build_htmldir)/ga68-internals \
+                       $(build_htmldir)/ga68-coding-guidelines
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
+ 	@for p in $(build_htmldir)/ga68 $(build_htmldir)/ga68-internals $(build_htmldir)/ga68-coding-guidelines; do \
+ 	  if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
+ 	  f=$(html__strip_dir) \
+ 	  if test -d "$$d$$p"; then \
+ 	    echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ 	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  else \
+ 	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  fi; \
+ 	done
+ 
+ algol68.uninstall:
+ #
+ # Clean hooks:
+ # A lot of the ancillary files are deleted by the main makefile.
+ # We just have to delete files specific to us.
+ algol68.mostlyclean:
+ 	-rm -f algol68/*$(objext) algol68/xforward algol68/fflags
+ 	-rm -f algol68/*$(coverageexts)
+ algol68.clean: algol68.mostlyclean
+ algol68.distclean:
+ 	-rm -f algol68/Makefile algol68/Make-host algol68/Make-target
+ 	-rm -f algol68/config.status algol68/config.cache
+ algol68.maintainer-clean:
+ 	-rm -f $(gcc_docdir)/*.7algol
+ 
+ #
+ # Stage hooks:
+ 
+ algol68.stage1: stage1-start
+ 	-mv algol68/*$(objext) stage1/algol68
+ algol68.stage2: stage2-start
+ 	-mv algol68/*$(objext) stage2/algol68
+ algol68.stage3: stage3-start
+ 	-mv algol68/*$(objext) stage3/algol68
+ algol68.stage4: stage4-start
+ 	-mv algol68/*$(objext) stage4/algol68
+ algol68.stageprofile: stageprofile-start
+ 	-mv algol68/*$(objext) stageprofile/algol68
+ algol68.stagefeedback: stagefeedback-start
+ 	-mv algol68/*$(objext) stagefeedback/algol68
diff -Nrcpad gcc-15.2.0/gcc/algol68/README gcc-16.1.0-RC-20260423/gcc/algol68/README
*** gcc-15.2.0/gcc/algol68/README	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/README	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,138 ----
+ This is the GNU Algol 68 compiler.
+ 
+ This compiler implements the Algol 68 programming language
+ (https://www.algol68-lang.org) as defined in the Revised Report, along
+ with several GNU extensions to the language which are oriented to
+ enhance its application in systems programming and to achieve a good
+ integration in POSIX systems.
+ 
+ The parser component used in this front-end has been adapted from
+ Algol 68 Genie, an Algol 68 interpreter written by Marcel van der
+ Veer.  It is worth noting that this parser is not your typical garden
+ variety parser, as it is capable of effectively parsing the two-level
+ grammar of Algol 68, which is no small task.  Parsing Algol 68 is
+ notoriously difficult, and without Marcel's careful work of many years
+ this front-end would most probably not exist.  It is also a beautiful
+ implementation that is a delight to both read and work with.
+ 
+ The syntax tree built by the parser is lowered into a GENERIC tree by
+ a lowering pass, which then invokes the gimplifier and hands the
+ resulting gimple IR over to the rest of the compilation, down the
+ rabbit hole all the way to optimized assembly code.
+ 
+ The compiler driver is called `ga68'.
+ The compiler proper is called `a681'.
+ 
+ Programs built by this compiler make use of the libga68 run-time
+ library.
+ 
+ Dependencies
+ ============
+ 
+ The Algol 68 run-time relies on the Boehm-Demers-Weiser conservative
+ garbage collector libgc, version 7.6.2 or later.  If for whatever
+ reason a recent enough of libgc is not available for some target then
+ you can configure GCC with --disable-algol68-gc.
+ 
+ Building
+ ========
+ 
+ Configure and build GCC with:
+ 
+   $ mkdir build-algol68
+   $ cd build-algol68
+   $ ../configure --enable-languages=algol68
+   $ make
+   $ make install
+ 
+ Alternatively you can configure and build a non-bootstrapped compiler,
+ which is much faster to build.  But note that in this case you better
+ pass some flags so the compiler gets built optimized, or the resulting
+ compiler will be rather slow:
+ 
+   $ mkdir build-algol68
+   $ cd build-algol68
+   $ ../configure --enable-languages=algol68 BOOT_CFLAGS="-O2 -g" \
+       BOOT_CXXFLAGS="-O2 -g" \
+       STAGE1_CFLAGS="-O2 -g" \
+       STAGE1_CXXFLAGS="-O2 -g"
+   $ make
+   $ make install
+ 
+ Debugging
+ =========
+ 
+ A few front-end specific options useful for debugging are:
+ 
+   '-fa68-dump-ast'
+   Emits a textual representation of the parse tree as produced by the parser.
+ 
+   '-fa68-dump-modes'
+   Emits a list of all parsed modes.
+ 
+ See the Developer Options section in the GNU Algol Compiler manual for
+ more hacking related options.
+ 
+ Testing
+ =======
+ 
+ Invoke the full testsuite from the build directory:
+ 
+   $ make check-algol68
+ 
+ You can pass -jN to run tests in parallel:
+ 
+   $ make -jN check-algol68
+ 
+ Invoke a subset of the testsuite.  For example, to only run tests that
+ involve compilation but not running:
+ 
+   $ make check-algol68 RUNTESTFLAGS="compile.exp"
+ 
+ There are the following sets of tests:
+ 
+   compile.exp - compilation tests
+ 
+ Invoke only a specific test:
+ 
+   $ make check-algol68 RUNTESTFLAGS="--all compile.exp=bad-coercion-1.a68"
+ 
+ Test in both 32-bit and 64-bit in multilib arches:
+ 
+   $ make check-algol68 RUNTESTFLAGS="--target_board=unix\{-m64,-m32\}"
+ 
+ Test that integration with the GCC GC is correct:
+ 
+   $ make check-algol68 RUNTESTFLAGS="CFLAGS_FOR_TARGET='--param=ggc-min-expand=0 --param=ggc-min-heapsize=0'"
+ 
+ Logs (with corresponding commands) can be found in
+ BUILD/gcc/testsuite/algol68/algol68.log.
+ 
+ See https://gcc.gnu.org/install/test.html for more details.
+ 
+ Useful Resources
+ ================
+ 
+ - An Emacs mode for editing Algol 68 programs can be found at
+   https://git.sr.ht/~jemarch/a68-mode.  It supports automatic
+   indentation, pretty-printing of bold tags, an auto-stropping minor
+   mode and other features.
+ 
+ - The Algol 68 Jargon File at https://jemarch.net/a68-jargon provides
+   a comprehensive list of definitions of many of the technical and
+   non-technical terms used in the context of Algol 68.
+ 
+ - The very formal Revised Report on the Algorithmic Language ALGOL 68
+   can be found at [1].
+ 
+ - The truly delightful Informal Introduction to ALGOL 68 by C.H
+   Lindsey and van der Meulen can be found at [2].
+ 
+ Community
+ =========
+ 
+ mailing list: algol68@gcc.gnu.org
+ irc: irc.oftc.net - #gnualgol
+ 
+ [1] https://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB-600dpi.pdf
+ [2] https://inria.hal.science/hal-03027689/file/Lindsey_van_der_Meulen-IItA68-Revised.pdf
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-diagnostics.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-diagnostics.cc
*** gcc-15.2.0/gcc/algol68/a68-diagnostics.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-diagnostics.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,183 ----
+ /* Error and warning routines.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted and expanded for GCC by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "diagnostic.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /*
+  * Error handling routines.
+  */
+ 
+ #define TABULATE(n) (8 * (n / 8 + 1) - n)
+ 
+ /* Severities handled by the DIAGNOSTIC function defined below.  */
+ 
+ #define A68_ERROR 0
+ #define A68_WARNING 1
+ #define A68_FATAL 2
+ #define A68_SCAN_ERROR 3
+ #define A68_INFORM 4
+ 
+ /* Give a diagnostic message.  */
+ 
+ ATTRIBUTE_A68_DIAG(6,0)
+ static bool
+ diagnostic (int sev, int opt,
+ 	    NODE_T *p,
+ 	    LINE_T *line,
+ 	    char *pos,
+ 	    const char *format, va_list args)
+ {
+   int res = 0;
+ 
+   /* Construct a diagnostic message.  */
+   if (sev == A68_WARNING)
+     WARNING_COUNT (&A68_JOB)++;
+   else if (sev != A68_INFORM)
+     ERROR_COUNT (&A68_JOB)++;
+ 
+   /* Emit the corresponding GCC diagnostic at the proper location.  */
+   location_t loc = UNKNOWN_LOCATION;
+ 
+   if (p != NO_NODE)
+     loc = a68_get_node_location (p);
+   else if (line != NO_LINE)
+     {
+       if (pos == NO_TEXT)
+ 	pos = STRING (line);
+       loc = a68_get_line_location (line, pos);
+     }
+ 
+   /* Prepare rich location and diagnostics.  */
+   rich_location rich_loc (line_table, loc);
+   diagnostics::diagnostic_info diagnostic;
+   enum diagnostics::kind kind;
+ 
+   switch (sev)
+     {
+     case A68_FATAL:
+       kind = diagnostics::kind::fatal;
+       break;
+     case A68_INFORM:
+       kind = diagnostics::kind::note;
+       break;
+     case A68_WARNING:
+       kind = diagnostics::kind::warning;
+       break;
+     case A68_SCAN_ERROR:
+     case A68_ERROR:
+       kind = diagnostics::kind::error;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   va_list cargs;
+   va_copy (cargs, args);
+   diagnostic_set_info (&diagnostic, format, &cargs,
+ 		       &rich_loc, kind);
+   va_end (cargs);
+ 
+   if (opt != 0)
+     diagnostic.m_option_id = opt;
+   res = diagnostic_report_diagnostic (global_dc, &diagnostic);
+ 
+   if (sev == A68_SCAN_ERROR)
+     exit (FATAL_EXIT_CODE);
+   return res;
+ }
+ 
+ /* Give an intelligible error and exit.  A line is provided rather than a
+    node so this can be used at scanning time.  */
+ 
+ void
+ a68_scan_error (LINE_T * u, char *v, const char *txt, ...)
+ {
+   va_list args;
+ 
+   va_start (args, txt);
+   diagnostic (A68_SCAN_ERROR, 0, NO_NODE, u, v, txt, args);
+   va_end (args);
+ }
+ 
+ /* Report a compilation error.  */
+ 
+ void
+ a68_error (NODE_T *p, const char *loc_str, ...)
+ {
+   va_list args;
+ 
+   va_start (args, loc_str);
+   diagnostic (A68_ERROR, 0, p, NO_LINE, NO_TEXT, loc_str, args);
+   va_end (args);
+ }
+ 
+ /* Report a compilation error in a node's pragmat.  */
+ 
+ void
+ a68_error_in_pragmat (NODE_T *p, size_t off,
+ 		      const char *loc_str, ...)
+ {
+   va_list args;
+ 
+   LINE_T *line = NPRAGMAT_LINE (p);
+   char *pos = NPRAGMAT_CHAR_IN_LINE (p) + off;
+ 
+   va_start (args, loc_str);
+   diagnostic (A68_ERROR, 0, NO_NODE, line, pos, loc_str, args);
+   va_end (args);
+   a68_inform (p, "pragmat applies to this construct");
+ }
+ 
+ /* Report a compilation warning.
+    This function returns a boolean indicating whether a warning was
+    emitted.  */
+ 
+ bool
+ a68_warning (NODE_T *p, int opt,
+ 	     const char *loc_str, ...)
+ {
+   bool res;
+   va_list args;
+ 
+   va_start (args, loc_str);
+   res = diagnostic (A68_WARNING, opt, p, NO_LINE, NO_TEXT, loc_str, args);
+   va_end (args);
+   return res;
+ }
+ 
+ /* Report a compilation note.  */
+ 
+ void
+ a68_inform (NODE_T *p, const char *loc_str, ...)
+ {
+   va_list args;
+ 
+   va_start (args, loc_str);
+   diagnostic (A68_INFORM, 0, p, NO_LINE, NO_TEXT, loc_str, args);
+   va_end (args);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-exports.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-exports.cc
*** gcc-15.2.0/gcc/algol68/a68-exports.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-exports.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,611 ----
+ /* Exporting Algol 68 module interfaces.
+    Copyright (C) 2025 Jose E. Marchesi.
+    Copyright (C) 2010-2026 Free Software Foundation, Inc.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "memmodel.h"
+ #include "tree.h"
+ #include "target.h"
+ #include "tm_p.h"
+ #include "simple-object.h"
+ #include "varasm.h"
+ #include "intl.h"
+ #include "output.h" /* for assemble_string */
+ #include "common/common-target.h"
+ #include "dwarf2asm.h"
+ 
+ #include <algorithm>
+ 
+ #include "a68.h"
+ 
+ #ifndef TARGET_AIX_OS
+ #define TARGET_AIX_OS 0
+ #endif
+ 
+ /* The size of the target's pointer type.  */
+ #ifndef PTR_SIZE
+ #define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
+ #endif
+ 
+ /* Create a new module interface, initially with no modes and no
+    extracts. MODULE_NAME is the name of the module as it is accessed at the
+    source level, which corresponds to a bold word.  */
+ 
+ MOIF_T *
+ a68_moif_new (const char *module_name)
+ {
+   MOIF_T *moif = ggc_cleared_alloc<MOIF_T> ();
+ 
+   VERSION (moif) = GA68_EXPORTS_VERSION;
+   NAME (moif) = (module_name == NULL ? NULL : ggc_strdup (module_name));
+   PRELUDE (moif) = NULL;
+   POSTLUDE (moif) = NULL;
+   NEXT (moif) = NO_MOIF;
+   vec_alloc (MODES (moif), 16);
+   vec_alloc (MODULES (moif), 16);
+   vec_alloc (IDENTIFIERS (moif), 16);
+   vec_alloc (INDICANTS (moif), 16);
+   vec_alloc (PRIOS (moif), 16);
+   vec_alloc (OPERATORS (moif), 16);
+   return moif;
+ }
+ 
+ /* Add a new mode to a module interface.  */
+ 
+ static void
+ a68_add_moid_to_moif (MOIF_T *moif, MOID_T *m)
+ {
+   if (! MODES(moif)->contains (m))
+     vec_safe_push (MODES (moif), m);
+ }
+ 
+ /* Add a new identifier extract to a module interface.  */
+ 
+ void
+ a68_add_identifier_to_moif (MOIF_T *moif, TAG_T *tag)
+ {
+   EXTRACT_T *e = ggc_alloc<EXTRACT_T> ();
+   const char *tag_symbol = IDENTIFIER_POINTER (DECL_NAME (TAX_TREE_DECL (tag)));
+ 
+   EXTRACT_KIND (e) = GA68_EXTRACT_IDEN;
+   EXTRACT_SYMBOL (e) = ggc_strdup (tag_symbol);
+   EXTRACT_MODE (e) = MOID (tag);
+   EXTRACT_PRIO (e) = 0;
+   EXTRACT_VARIABLE (e) = VARIABLE (tag);
+   EXTRACT_IN_PROC (e) = IN_PROC (tag) || NEST_PROC (tag);
+ 
+   if (! IDENTIFIERS (moif)->contains (e))
+     {
+       a68_add_moid_to_moif (moif, MOID (tag));
+       vec_safe_push (IDENTIFIERS (moif), e);
+     }
+ }
+ 
+ /* Add a new mode indicant extract to a module interface.  */
+ 
+ static void
+ a68_add_indicant_to_moif (MOIF_T *moif, TAG_T *tag)
+ {
+   EXTRACT_T *e = ggc_alloc<EXTRACT_T> ();
+   /* Mode tags are not associated with declarations, so we have to do the
+      mangling here.  */
+   tree id = a68_get_mangled_indicant (NSYMBOL (NODE (tag)), NAME (moif));
+   const char *tag_symbol = IDENTIFIER_POINTER (id);
+ 
+   EXTRACT_KIND (e) = GA68_EXTRACT_MODE;
+   EXTRACT_SYMBOL (e) = ggc_strdup (tag_symbol);
+   EXTRACT_MODE (e) = MOID (tag);
+   EXTRACT_PRIO (e) = 0;
+   EXTRACT_VARIABLE (e) = false;
+   EXTRACT_IN_PROC (e) = false;
+ 
+   if (! INDICANTS (moif)->contains (e))
+     {
+       a68_add_moid_to_moif (moif, MOID (tag));
+       vec_safe_push (INDICANTS (moif), e);
+     }
+ }
+ 
+ /* Add a new module extract to a module interface.  */
+ 
+ static void
+ a68_add_module_to_moif (MOIF_T *moif, TAG_T *tag)
+ {
+   EXTRACT_T *e = ggc_alloc<EXTRACT_T> ();
+   const char *tag_symbol = NSYMBOL (NODE (tag));
+ 
+   EXTRACT_KIND (e) = GA68_EXTRACT_MODU;
+   EXTRACT_SYMBOL (e) = ggc_strdup (tag_symbol);
+   EXTRACT_MODE (e) = NO_MOID;
+   EXTRACT_PRIO (e) = 0;
+   EXTRACT_VARIABLE (e) = false;
+   EXTRACT_IN_PROC (e) = false;
+ 
+   if (! MODULES (moif)->contains (e))
+     vec_safe_push (MODULES (moif), e);
+ }
+ 
+ /* Add a new priority extract to a module interface.  */
+ 
+ static void
+ a68_add_prio_to_moif (MOIF_T *moif, TAG_T *tag)
+ {
+   EXTRACT_T *e = ggc_alloc<EXTRACT_T> ();
+   /* Priority tags are not associated with declarations, so we have to do the
+      mangling here.  */
+   tree id = a68_get_mangled_indicant (NSYMBOL (NODE (tag)), NAME (moif));
+   const char *tag_symbol = IDENTIFIER_POINTER (id);
+ 
+   EXTRACT_KIND (e) = GA68_EXTRACT_PRIO;
+   EXTRACT_SYMBOL (e) = ggc_strdup (tag_symbol);
+   EXTRACT_MODE (e) = NO_MOID;
+   EXTRACT_PRIO (e) = PRIO (tag);
+   EXTRACT_VARIABLE (e) = false;
+   EXTRACT_IN_PROC (e) = false;
+ 
+   if (! PRIOS (moif)->contains (e))
+     vec_safe_push (PRIOS (moif), e);
+ }
+ 
+ /* Add a new operator extract to a module interface.  */
+ 
+ static void
+ a68_add_operator_to_moif (MOIF_T *moif, TAG_T *tag)
+ {
+   EXTRACT_T *e = ggc_alloc<EXTRACT_T> ();
+   const char *tag_symbol = IDENTIFIER_POINTER (DECL_NAME (TAX_TREE_DECL (tag)));
+ 
+   EXTRACT_KIND (e) = GA68_EXTRACT_OPER;
+   EXTRACT_SYMBOL (e) = ggc_strdup (tag_symbol);
+   EXTRACT_MODE (e) = MOID (tag);
+   EXTRACT_PRIO (e) = 0;
+   EXTRACT_VARIABLE (e) = EXTRACT_VARIABLE (tag);
+   /* There are no operatorvariable-declarations */
+   gcc_assert (EXTRACT_VARIABLE (e) == false);
+   EXTRACT_IN_PROC (e) = IN_PROC (tag);
+ 
+   if (! OPERATORS (moif)->contains (e))
+     {
+       a68_add_moid_to_moif (moif, MOID (tag));
+       vec_safe_push (OPERATORS (moif), e);
+     }
+ }
+ 
+ /* Make the exports section the asm_out_file's new current section.  */
+ 
+ static void
+ a68_switch_to_export_section (void)
+ {
+   static section *exports_sec;
+ 
+   if (exports_sec == NULL)
+     {
+       gcc_assert (targetm_common.have_named_sections);
+ #ifdef OBJECT_FORMAT_MACHO
+       exports_sec
+ 	= get_section (A68_EXPORT_SEGMENT_NAME "," A68_EXPORT_SECTION_NAME,
+ 		       SECTION_DEBUG, NULL);
+ #else
+       exports_sec = get_section (A68_EXPORT_SECTION_NAME,
+ 				 TARGET_AIX_OS ? SECTION_EXCLUDE : SECTION_DEBUG,
+ 				 NULL);
+ #endif
+     }
+ 
+   switch_to_section (exports_sec);
+ }
+ 
+ /* Output a sized string.  */
+ 
+ static void
+ a68_asm_output_string (const char *s, const char *comment)
+ {
+   dw2_asm_output_data (2, strlen (s) + 1, comment);
+   assemble_string (s, strlen (s) + 1);
+ }
+ 
+ /* Output a mode to the exports section if it hasn't been emitted already.  */
+ 
+ static void
+ a68_asm_output_mode (MOID_T *m, const char *module_label)
+ {
+   /* Do nothing if the mode has been already emitted and therefore there is
+      already a label to access it.  */
+   if (ASM_LABEL (m) != NULL)
+     return;
+ 
+   /* Mode indicants are not emitted in the mode table, but as mode extracts in
+      the extracts table.  Still we have to emit the named mode.  */
+   if (IS (m, INDICANT))
+     m = MOID (NODE (m));
+ 
+   /* Collection of modes.  */
+   if (IS (m, SERIES_MODE) || IS (m, STOWED_MODE))
+     {
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	a68_asm_output_mode (MOID (p), module_label);
+       return;
+     }
+ 
+   /* Ok we got a mode to output.  */
+ 
+   /* First emit referred modes and sub-modes.  Note how we have to create a
+      label for the mode and install it in the NODE_T in order to avoid infinite
+      recursion in case of ref-induced recursive mode definitions.  */
+ 
+   static long int cnt;
+   static char label[100];
+   ASM_GENERATE_INTERNAL_LABEL (label, "LMD", cnt++);
+   ASM_LABEL (m) = ggc_strdup (label);
+ 
+   if (IS_REF(m) || IS_FLEX (m))
+     a68_asm_output_mode (SUB (m), module_label);
+   else if (m != M_STRING && IS_FLEXETY_ROW (m))
+     a68_asm_output_mode (SUB (m), module_label);
+   else if (!IS_COMPLEX (m) && (IS_STRUCT (m) || IS_UNION (m)))
+     {
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	a68_asm_output_mode (MOID (p), module_label);
+     }
+   else if (IS (m, PROC_SYMBOL))
+     {
+       a68_asm_output_mode (SUB (m), module_label);
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	a68_asm_output_mode (MOID (p), module_label);
+     }
+ 
+   /* No recursion below this point pls.  */
+ 
+   /* Emit a label for this mode.  */
+   ASM_OUTPUT_LABEL (asm_out_file, ASM_LABEL (m));
+ 
+   /* Now emit assembly for the mode entry.  */
+   if (m == M_VOID)
+     dw2_asm_output_data (1, GA68_MODE_VOID, "void");
+   else if (m == M_CHAR)
+     dw2_asm_output_data (1, GA68_MODE_CHAR, "char");
+   else if (m == M_BOOL)
+     dw2_asm_output_data (1, GA68_MODE_BOOL, "bool");
+   else if (m == M_STRING)
+     dw2_asm_output_data (1, GA68_MODE_STRING, "string");
+   else if (IS_INTEGRAL (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_INT, "int");
+       dw2_asm_output_data (1, DIM (m), "sizety");
+     }
+   else if (IS_REAL (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_REAL, "real");
+       dw2_asm_output_data (1, DIM (m), "sizety");
+     }
+   else if (IS_BITS (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_BITS, "bits");
+       dw2_asm_output_data (1, DIM (m), "sizety");
+     }
+   else if (IS_BYTES (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_BYTES, "bytes");
+       dw2_asm_output_data (1, DIM (m), "sizety");
+     }
+   else if (IS_COMPLEX (m))
+     {
+       /* Complex is a struct of two reals of the right sizety.  */
+       int dim = DIM (MOID (PACK (m)));
+       dw2_asm_output_data (1, GA68_MODE_CMPL, "compl");
+       dw2_asm_output_data (1, dim, "sizety");
+     }
+   else if (IS_REF (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_NAME, "ref");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (SUB (m)), module_label, "referred mode");
+     }
+   else if (IS_FLEX (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_FLEX, "flex");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (SUB (m)), module_label, "flexible row mode");
+     }
+   else if (IS_ROW (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_ROW, "row");
+       dw2_asm_output_data (1, DIM (m), "dim");
+       /* XXX for now emit zeroes as triplets.  */
+       for (int i = 0; i < DIM (m); ++i)
+ 	{
+ 	  dw2_asm_output_data (PTR_SIZE, 0, "lb");
+ 	  dw2_asm_output_data (PTR_SIZE, 0, "ub");
+ 	}
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (SUB (m)), module_label, "row of");
+     }
+   else if (IS_STRUCT (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_STRUCT, "struct");
+       dw2_asm_output_data (2, DIM (m), "nfields");
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	{
+ 	  dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (MOID (p)), module_label, "field mode");
+ 	  if (TEXT (p) != NO_TEXT)
+ 	    a68_asm_output_string (TEXT (p), "field name");
+ 	  else
+ 	    a68_asm_output_string ("", "field name");
+ 	}
+     }
+   else if (IS_UNION (m))
+     {
+       dw2_asm_output_data (1, GA68_MODE_UNION, "union");
+       dw2_asm_output_data (2, a68_count_pack_members (PACK (m)), "nmodes");
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (MOID (p)), module_label, "united mode");
+     }
+   else if (IS (m, PROC_SYMBOL))
+     {
+       dw2_asm_output_data (1, GA68_MODE_PROC, "proc");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (SUB (m)), module_label, "ret mode");
+       dw2_asm_output_data (1, DIM (m), "nargs");
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	{
+ 	  dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (MOID (p)), module_label, "arg mode");
+ 	  if (TEXT (p) != NO_TEXT)
+ 	    a68_asm_output_string (TEXT (p), "arg name");
+ 	  else
+ 	    a68_asm_output_string ("", "arg name");
+ 	}
+     }
+   else
+     dw2_asm_output_data (1, GA68_MODE_UNKNOWN, "unknown mode %s",
+ 			 a68_moid_to_string (m, 80, NO_NODE, false));
+ }
+ 
+ /* Output an extract for a given tag to the extracts section.  */
+ 
+ static void
+ a68_asm_output_extract (const char *module_label, int kind,
+ 			const char *symbol, MOID_T *mode, int prio,
+ 			bool variable, bool in_proc)
+ {
+   static char begin_label[100];
+   static char end_label[100];
+   static long int cnt;
+ 
+   ASM_GENERATE_INTERNAL_LABEL (begin_label, "LEBL", cnt);
+   ASM_GENERATE_INTERNAL_LABEL (end_label, "LEEL", cnt);
+   cnt++;
+ 
+   dw2_asm_output_delta (PTR_SIZE, end_label, begin_label, "extract size");
+   ASM_OUTPUT_LABEL (asm_out_file, begin_label);
+ 
+   bool encode_mdextra = false;
+   switch (kind)
+     {
+     case GA68_EXTRACT_MODU:
+       dw2_asm_output_data (1, GA68_EXTRACT_MODU, "module extract %s", symbol);
+       a68_asm_output_string (symbol, "module indication");
+       break;
+     case GA68_EXTRACT_MODE:
+       dw2_asm_output_data (1, GA68_EXTRACT_MODE, "mode extract %s", symbol);
+       a68_asm_output_string (symbol, "mode indication");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (mode), module_label, "mode");
+       break;
+     case GA68_EXTRACT_IDEN:
+       dw2_asm_output_data (1, GA68_EXTRACT_IDEN, "identifier extract %s", symbol);
+       a68_asm_output_string (symbol, "name");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (mode), module_label, "mode");
+       encode_mdextra = true;
+       break;
+     case GA68_EXTRACT_PRIO:
+       dw2_asm_output_data (1, GA68_EXTRACT_PRIO, "prio extract %s", symbol);
+       a68_asm_output_string (symbol, "opname");
+       dw2_asm_output_data (1, prio, "priority");
+       break;
+     case GA68_EXTRACT_OPER:
+       dw2_asm_output_data (1, GA68_EXTRACT_OPER, "operator extract %s", symbol);
+       a68_asm_output_string (symbol, "opname");
+       dw2_asm_output_delta (PTR_SIZE, ASM_LABEL (mode), module_label, "mode");
+       encode_mdextra = true;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   if (encode_mdextra)
+     {
+       dw2_asm_output_data (PTR_SIZE, 2, "mdextra size");
+       dw2_asm_output_data (1, variable, "variable");
+       dw2_asm_output_data (1, in_proc, "in_proc");
+     }
+   else
+     dw2_asm_output_data (PTR_SIZE, 0, "mdextra size");
+ 
+   ASM_OUTPUT_LABEL (asm_out_file, end_label);
+ }
+ 
+ /* Output a module interface.  */
+ 
+ static void
+ a68_asm_output_moif (MOIF_T *moif)
+ {
+   a68_switch_to_export_section ();
+ 
+   static char module_label[100];
+   static long int moifcnt;
+   ASM_GENERATE_INTERNAL_LABEL (module_label, "LMOIF", moifcnt++);
+   ASM_OUTPUT_LABEL (asm_out_file, module_label);
+ 
+   if (flag_debug_asm)
+     {
+       fputs (ASM_COMMENT_START " MODIF START ", asm_out_file);
+       fputs (NAME (moif), asm_out_file);
+       fputc ('\n', asm_out_file);
+     }
+ 
+   dw2_asm_output_data (1, A68_EXPORT_MAGIC1, "magic1");
+   dw2_asm_output_data (1, A68_EXPORT_MAGIC2, "magic2");
+   dw2_asm_output_data (2, VERSION (moif), "exports version");
+   a68_asm_output_string (NAME (moif), "module name");
+   a68_asm_output_string (PRELUDE (moif) ? PRELUDE (moif) : "", "prelude symbol");
+   a68_asm_output_string (POSTLUDE (moif) ? POSTLUDE (moif) : "", "postlude symbol");
+ 
+   /* Modes table.  */
+   static char modes_begin_label[100];
+   static char modes_end_label[100];
+   static long int modescnt;
+   ASM_GENERATE_INTERNAL_LABEL (modes_begin_label, "LMTL", modescnt++);
+   ASM_GENERATE_INTERNAL_LABEL (modes_end_label, "LMTL", modescnt++);
+ 
+   if (flag_debug_asm)
+     fputs ("\t" ASM_COMMENT_START " modes table\n", asm_out_file);
+   dw2_asm_output_delta (PTR_SIZE, modes_end_label, modes_begin_label,
+ 			"modes size");
+   ASM_OUTPUT_LABEL (asm_out_file, modes_begin_label);
+   for (MOID_T *m : MODES (moif))
+     a68_asm_output_mode (m, module_label);
+   ASM_OUTPUT_LABEL (asm_out_file, modes_end_label);
+ 
+   /* Extracts table.  */
+   static char extracts_begin_label[100];
+   static char extracts_end_label[100];
+   static long int extractscnt;
+   ASM_GENERATE_INTERNAL_LABEL (extracts_begin_label, "LETL", extractscnt++);
+   ASM_GENERATE_INTERNAL_LABEL (extracts_end_label, "LETL", extractscnt++);
+ 
+   if (flag_debug_asm)
+     fputs ("\t" ASM_COMMENT_START " extracts table\n", asm_out_file);
+   dw2_asm_output_delta (PTR_SIZE, extracts_end_label, extracts_begin_label,
+ 			"extracts size");
+   ASM_OUTPUT_LABEL (asm_out_file, extracts_begin_label);
+   for (EXTRACT_T *e : MODULES (moif))
+     a68_asm_output_extract (module_label, GA68_EXTRACT_MODU,
+ 			    EXTRACT_SYMBOL (e), EXTRACT_MODE (e), EXTRACT_PRIO (e),
+ 			    EXTRACT_VARIABLE (e), EXTRACT_IN_PROC (e));
+   for (EXTRACT_T *e : INDICANTS (moif))
+     a68_asm_output_extract (module_label, GA68_EXTRACT_MODE,
+ 			    EXTRACT_SYMBOL (e), EXTRACT_MODE (e), EXTRACT_PRIO (e),
+ 			    EXTRACT_VARIABLE (e), EXTRACT_IN_PROC (e));
+   for (EXTRACT_T *e : IDENTIFIERS (moif))
+     a68_asm_output_extract (module_label, GA68_EXTRACT_IDEN,
+ 			    EXTRACT_SYMBOL (e), EXTRACT_MODE (e), EXTRACT_PRIO (e),
+ 			    EXTRACT_VARIABLE (e), EXTRACT_IN_PROC (e));
+   for (EXTRACT_T *e : PRIOS (moif))
+     a68_asm_output_extract (module_label, GA68_EXTRACT_PRIO,
+ 			    EXTRACT_SYMBOL (e), EXTRACT_MODE (e), EXTRACT_PRIO (e),
+ 			    EXTRACT_VARIABLE (e), EXTRACT_IN_PROC (e));
+   for (EXTRACT_T *e : OPERATORS (moif))
+     a68_asm_output_extract (module_label, GA68_EXTRACT_OPER,
+ 			    EXTRACT_SYMBOL (e), EXTRACT_MODE (e), EXTRACT_PRIO (e),
+ 			    EXTRACT_VARIABLE (e), EXTRACT_IN_PROC (e));
+   ASM_OUTPUT_LABEL (asm_out_file, extracts_end_label);
+ 
+   if (flag_debug_asm)
+     {
+       fputs (ASM_COMMENT_START " MODIF END ", asm_out_file);
+       fputs (NAME (moif), asm_out_file);
+       fputc ('\n', asm_out_file);
+     }
+ }
+ 
+ /* Add module exports for publicized module revelations.  */
+ 
+ static void
+ add_pub_revelations_to_moif (MOIF_T *moif, NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, PUBLIC_SYMBOL))
+ 	{
+ 	  gcc_assert (IS (NEXT (p), MODULE_INDICANT));
+ 	  TAG_T *tag = a68_new_tag ();
+ 	  NODE (tag) = NEXT (p);
+ 	  a68_add_module_to_moif (moif, tag);
+ 	  FORWARD (p);
+ 	}
+       else
+ 	add_pub_revelations_to_moif (moif, SUB (p));
+     }
+ }
+ 
+ /* Emit export information for the module definition in the parse tree P.  */
+ 
+ void
+ a68_do_exports (NODE_T *p)
+ {
+   for (;p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEFINING_MODULE_INDICANT))
+ 	{
+ 	  tree module_id = a68_get_mangled_indicant (NSYMBOL (p));
+ 	  MOIF_T *moif = a68_moif_new (IDENTIFIER_POINTER (module_id));
+ 	  char *prelude = xasprintf ("%s__prelude", IDENTIFIER_POINTER (module_id));
+ 	  char *postlude = xasprintf ("%s__postlude", IDENTIFIER_POINTER (module_id));
+ 	  PRELUDE (moif) = ggc_strdup (prelude);
+ 	  POSTLUDE (moif) = ggc_strdup (postlude);
+ 	  free (prelude);
+ 	  free (postlude);
+ 
+ 	  NODE_T *module_text = NEXT (NEXT (p));
+ 	  gcc_assert (IS (module_text, MODULE_TEXT));
+ 
+ 	  /* Get modules exports from the revelation part.  */
+ 	  if (IS (SUB (module_text), REVELATION_PART))
+ 	    {
+ 	      NODE_T *revelation_part = SUB (module_text);
+ 	      add_pub_revelations_to_moif (moif, SUB (revelation_part));
+ 	    }
+ 
+ 	  NODE_T *def_part = (IS (SUB (module_text), REVELATION_PART)
+ 			      ? NEXT_SUB (module_text)
+ 			      : SUB (module_text));
+ 	  gcc_assert (IS (def_part, DEF_PART));
+ 	  TABLE_T *table = TABLE (SUB (def_part));
+ 	  gcc_assert (PUBLIC_RANGE (table));
+ 
+ 	  for (TAG_T *t = INDICANTS (table); t != NO_TAG; FORWARD (t))
+ 	    {
+ 	      if (PUBLICIZED (t))
+ 		a68_add_indicant_to_moif (moif, t);
+ 	    }
+ 
+ 	  for (TAG_T *t = IDENTIFIERS (table); t != NO_TAG; FORWARD (t))
+ 	    {
+ 	      if (PUBLICIZED (t))
+ 		a68_add_identifier_to_moif (moif, t);
+ 	    }
+ 
+ 	  for (TAG_T *t = PRIO (table); t != NO_TAG; FORWARD (t))
+ 	    {
+ 	      if (PUBLICIZED (t))
+ 		a68_add_prio_to_moif (moif, t);
+ 	    }
+ 
+ 	  for (TAG_T *t = OPERATORS (table); t != NO_TAG; FORWARD (t))
+ 	    {
+ 	      if (PUBLICIZED (t))
+ 		a68_add_operator_to_moif (moif, t);
+ 	    }
+ 
+ 	  a68_asm_output_moif (moif);
+ 	  if (flag_a68_dump_moif)
+ 	    a68_dump_moif (moif);
+ 	}
+       else
+ 	a68_do_exports (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-imports-archive.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-imports-archive.cc
*** gcc-15.2.0/gcc/algol68/a68-imports-archive.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-imports-archive.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,915 ----
+ /* Handling of module export data in library archives.
+    This code has bee adapted from the Go front-end.
+ 
+    Copyright (C) 2009 The Go Authors.
+    Copyright (C) 2026 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "vec.h"
+ 
+ #include <map>
+ #include <string>
+ 
+ #include "a68.h"
+ 
+ 
+ #ifndef O_BINARY
+ #define O_BINARY 0
+ #endif
+ 
+ // Archive magic numbers.
+ 
+ static const char armag[] =
+ {
+   '!', '<', 'a', 'r', 'c', 'h', '>', '\n'
+ };
+ 
+ static const char armagt[] =
+ {
+   '!', '<', 't', 'h', 'i', 'n', '>', '\n'
+ };
+ 
+ static const char armagb[] =
+ {
+   '<', 'b', 'i', 'g', 'a', 'f', '>', '\n'
+ };
+ 
+ static const char arfmag[2] = { '`', '\n' };
+ 
+ // Archive fixed length header for AIX big format.
+ 
+ struct Archive_fl_header
+ {
+   // Archive magic string.
+   char fl_magic[8];
+   // Offset to member table.
+   char fl_memoff[20];
+   // Offset to global symbol table.
+   char fl_gstoff[20];
+   // Offset to global symbol table for 64-bit objects.
+   char fl_gst64off[20];
+   // Offset to first archive member.
+   char fl_fstmoff[20];
+   // Offset to last archive member.
+   char fl_lstmoff[20];
+   // Offset to first member on free list.
+   char fl_freeoff[20];
+ };
+ 
+ // The header of an entry in an archive.  This is all readable text,
+ // padded with spaces where necesary.
+ 
+ struct Archive_header
+ {
+   // The entry name.
+   char ar_name[16];
+   // The file modification time.
+   char ar_date[12];
+   // The user's UID in decimal.
+   char ar_uid[6];
+   // The user's GID in decimal.
+   char ar_gid[6];
+   // The file mode in octal.
+   char ar_mode[8];
+   // The file size in decimal.
+   char ar_size[10];
+   // The final magic code.
+   char ar_fmag[2];
+ };
+ 
+ // The header of an entry in an AIX big archive.
+ // This is followed by ar_namlen bytes + 2 bytes for arfmag.
+ 
+ struct Archive_big_header
+ {
+   // The file size in decimal.
+   char ar_size[20];
+   // The next member offset in decimal.
+   char ar_nxtmem[20];
+   // The previous member offset in decimal.
+   char ar_prvmem[20];
+   // The file modification time in decimal.
+   char ar_date[12];
+   // The user's UID in decimal.
+   char ar_uid[12];
+   // The user's GID in decimal.
+   char ar_gid[12];
+   // The file mode in octal.
+   char ar_mode[12];
+   // The file name length in decimal.
+   char ar_namlen[4];
+ };
+ 
+ // The functions in this file extract Go export data from an archive.
+ 
+ static const int archive_magic_len = 8;
+ 
+ // return true if bytes, which are from the start of the file, are an
+ // archive magic number.
+ 
+ bool
+ a68_is_archive_magic(const char* bytes)
+ {
+   return (memcmp(bytes, armag, archive_magic_len) == 0
+ 	  || memcmp(bytes, armagt, archive_magic_len) == 0
+ 	  || memcmp(bytes, armagb, archive_magic_len) == 0);
+ }
+ 
+ // An object used to read an archive file.
+ 
+ class Archive_file
+ {
+  public:
+   Archive_file(const std::string& filename, int fd, location_t location)
+     : filename_(filename), fd_(fd), offset_to_member_contents_(0),
+     filesize_(-1), first_member_offset_(0),
+       extended_names_(), is_thin_archive_(false), is_big_archive_(false),
+       location_(location), nested_archives_()
+   { }
+ 
+   // Initialize.
+   bool
+   initialize();
+ 
+   // Return the file name.
+   const std::string&
+   filename() const
+   { return this->filename_; }
+ 
+   // Get the file size.
+   off_t
+   filesize() const
+   { return this->filesize_; }
+ 
+   // Return the offset of the first member.
+   off_t
+   first_member_offset() const
+   { return this->first_member_offset_; }
+ 
+   // Return whether this is a thin archive.
+   bool
+   is_thin_archive() const
+   { return this->is_thin_archive_; }
+ 
+   // Return whether this is a big archive.
+   bool
+   is_big_archive() const
+   { return this->is_big_archive_; }
+ 
+   // Return the location of the import statement.
+   location_t
+   location() const
+   { return this->location_; }
+ 
+   // Read bytes.
+   bool
+   read(off_t offset, off_t size, char*);
+ 
+   // Parse a decimal in readable text.
+   bool
+   parse_decimal(const char* str, off_t size, long* res) const;
+ 
+   // Read the archive header at OFF, setting *PNAME, *SIZE,
+   // *NESTED_OFF and *NEXT_OFF.
+   bool
+   read_header(off_t off, std::string* pname, off_t* size, off_t* nested_off,
+               off_t* next_off);
+ 
+   // Interpret the header of HDR, the header of the archive member at
+   // file offset OFF.  Return whether it succeeded.  Set *SIZE to the
+   // size of the member.  Set *PNAME to the name of the member.  Set
+   // *NESTED_OFF to the offset in a nested archive.
+   bool
+   interpret_header(const Archive_header* hdr, off_t off,
+ 		   std::string* pname, off_t* size,
+ 		   off_t* nested_off, off_t* offset_to_contents) const;
+ 
+   // Get the file and offset for an archive member.
+   bool
+   get_file_and_offset(off_t off, const std::string& hdrname,
+ 		      off_t nested_off, int* memfd, off_t* memoff,
+ 		      std::string* memname);
+ 
+  private:
+   // Initialize a big archive (AIX)
+   bool
+   initialize_big_archive();
+ 
+   // Initialize a normal archive
+   bool
+   initialize_archive();
+ 
+   // Read the big archive header at OFF, setting *PNAME, *SIZE and *NEXT_OFF.
+   bool
+   read_big_archive_header(off_t off, std::string* pname,
+                           off_t* size, off_t* next_off);
+ 
+   // Read the normal archive header at OFF, setting *PNAME, *SIZE,
+   // *NESTED_OFF and *NEXT_OFF.
+   bool
+   read_archive_header(off_t off, std::string* pname, off_t* size,
+                       off_t* nested_off, off_t* next_off);
+ 
+   // For keeping track of open nested archives in a thin archive file.
+   typedef std::map<std::string, Archive_file*> Nested_archive_table;
+ 
+   // The name of the file.
+   std::string filename_;
+   // The file descriptor.
+   int fd_;
+   // Offset to the archive contents, to accommodate some Darwin
+   // extensions.
+   off_t offset_to_member_contents_;
+   // The file size;
+   off_t filesize_;
+   // The first member offset;
+   off_t first_member_offset_;
+   // The extended name table.
+   std::string extended_names_;
+   // Whether this is a thin archive.
+   bool is_thin_archive_;
+   // Whether this is a big archive.
+   bool is_big_archive_;
+   // The location of the import statements.
+   location_t location_;
+   // Table of nested archives.
+   Nested_archive_table nested_archives_;
+ };
+ 
+ bool
+ Archive_file::initialize()
+ {
+   struct stat st;
+   if (fstat(this->fd_, &st) < 0)
+     {
+       a68_error (NO_NODE, "%s: doing stat", this->filename_.c_str());
+       return false;
+     }
+   this->filesize_ = st.st_size;
+ 
+   char buf[sizeof(armagt)];
+   if (::lseek(this->fd_, 0, SEEK_SET) < 0
+       || ::read(this->fd_, buf, sizeof(armagt)) != sizeof(armagt))
+     {
+       a68_error (NO_NODE, "%s: reading from archive", this->filename_.c_str());
+       return false;
+     }
+   if (memcmp(buf, armagt, sizeof(armagt)) == 0)
+     this->is_thin_archive_ = true;
+   else if (memcmp(buf, armagb, sizeof(armagb)) == 0)
+     this->is_big_archive_ = true;
+ 
+   if (this->is_big_archive_)
+     return this->initialize_big_archive();
+   else
+     return this->initialize_archive();
+ }
+ 
+ // Initialize a big archive (AIX).
+ 
+ bool
+ Archive_file::initialize_big_archive()
+ {
+   Archive_fl_header flhdr;
+ 
+   // Read the fixed length header.
+   if (::lseek(this->fd_, 0, SEEK_SET) < 0
+       || ::read(this->fd_, &flhdr, sizeof(flhdr)) != sizeof(flhdr))
+     {
+       a68_error (NO_NODE, "%s: could not read archive header",
+                   this->filename_.c_str());
+       return false;
+     }
+ 
+   // Parse offset of the first member.
+   long off;
+   if (!this->parse_decimal(flhdr.fl_fstmoff, sizeof(flhdr.fl_fstmoff), &off))
+     {
+       char* buf = new char[sizeof(flhdr.fl_fstmoff) + 1];
+       memcpy(buf, flhdr.fl_fstmoff, sizeof(flhdr.fl_fstmoff));
+       a68_error (NO_NODE,
+ 		 ("%s: malformed first member offset in archive header"
+                    " (expected decimal, got %qs)"),
+                   this->filename_.c_str(), buf);
+       delete[] buf;
+       return false;
+     }
+   if (off == 0) // Empty archive.
+     this->first_member_offset_ = this->filesize_;
+   else
+     this->first_member_offset_ = off;
+   return true;
+ }
+ 
+ // Initialize a normal archive.
+ 
+ bool
+ Archive_file::initialize_archive()
+ {
+   this->first_member_offset_ = sizeof(armag);
+   if (this->first_member_offset_ == this->filesize_)
+     {
+       // Empty archive.
+       return true;
+     }
+ 
+   // Look for the extended name table.
+   std::string filename;
+   off_t size;
+   off_t next_off;
+   if (!this->read_header(this->first_member_offset_, &filename,
+                          &size, NULL, &next_off))
+     return false;
+   if (filename.empty())
+     {
+       // We found the symbol table.
+       if (!this->read_header(next_off, &filename, &size, NULL, NULL))
+ 	filename.clear();
+     }
+   if (filename == "/")
+     {
+       char* rdbuf = new char[size];
+       if (::read(this->fd_, rdbuf, size) != size)
+ 	{
+ 	  a68_error (NO_NODE, "%s: could not read extended names",
+ 		     filename.c_str());
+ 	  delete[] rdbuf;
+ 	  return false;
+ 	}
+       this->extended_names_.assign(rdbuf, size);
+       delete[] rdbuf;
+     }
+ 
+   return true;
+ }
+ 
+ // Read bytes from the file.
+ 
+ bool
+ Archive_file::read(off_t offset, off_t size, char* buf)
+ {
+   if (::lseek(this->fd_, offset, SEEK_SET) < 0
+       || ::read(this->fd_, buf, size) != size)
+     {
+       a68_error (NO_NODE, "%s: reading from archive", this->filename_.c_str());
+       return false;
+     }
+   return true;
+ }
+ 
+ // Parse a decimal in readable text.
+ 
+ bool
+ Archive_file::parse_decimal(const char* str, off_t size, long* res) const
+ {
+   char* buf = new char[size + 1];
+   memcpy(buf, str, size);
+   char* ps = buf + size;
+   while (ps > buf && ps[-1] == ' ')
+     --ps;
+   *ps = '\0';
+ 
+   errno = 0;
+   char* end;
+   *res = strtol(buf, &end, 10);
+   if (*end != '\0'
+       || *res < 0
+       || (*res == LONG_MAX && errno == ERANGE))
+     {
+       delete[] buf;
+       return false;
+     }
+   delete[] buf;
+   return true;
+ }
+ 
+ // Read the header at OFF.  Set *PNAME to the name, *SIZE to the size,
+ // *NESTED_OFF to the nested offset, and *NEXT_OFF to the next member offset.
+ 
+ bool
+ Archive_file::read_header(off_t off, std::string* pname, off_t* size,
+ 			  off_t* nested_off, off_t* next_off)
+ {
+   if (::lseek(this->fd_, off, SEEK_SET) < 0)
+     {
+       a68_error (NO_NODE, "%s: seeking in archive", this->filename_.c_str());
+       return false;
+     }
+   if (this->is_big_archive_)
+     return this->read_big_archive_header(off, pname, size, next_off);
+   else
+     return this->read_archive_header(off, pname, size, nested_off, next_off);
+ }
+ 
+ // Read the big archive header at OFF, setting *PNAME, *SIZE and *NEXT_OFF.
+ 
+ bool
+ Archive_file::read_big_archive_header(off_t off, std::string* pname,
+                                       off_t* size, off_t* next_off)
+ {
+   Archive_big_header hdr;
+   ssize_t got;
+ 
+   got = ::read(this->fd_, &hdr, sizeof hdr);
+   if (got != sizeof hdr)
+     {
+       if (got < 0)
+         a68_error (NO_NODE, "%s: reading from archive", this->filename_.c_str());
+       else if (got > 0)
+         a68_error (NO_NODE, "%qs short entry header at %ld",
+                     this->filename_.c_str(), static_cast<long>(off));
+       else
+         a68_error (NO_NODE, "%s: unexpected EOF at %ld",
+ 		   this->filename_.c_str(), static_cast<long>(off));
+     }
+ 
+   long local_size;
+   if (!this->parse_decimal(hdr.ar_size, sizeof(hdr.ar_size), &local_size))
+     {
+       char* buf = new char[sizeof(hdr.ar_size) + 1];
+       memcpy(buf, hdr.ar_size, sizeof(hdr.ar_size));
+       a68_error (NO_NODE,
+                   ("%s: malformed size in entry header at %ld"
+                    " (expected decimal, got %s)"),
+ 		 this->filename_.c_str(), static_cast<long>(off), buf);
+       delete[] buf;
+       return false;
+     }
+   *size = local_size;
+ 
+   long namlen;
+   if (!this->parse_decimal(hdr.ar_namlen, sizeof(hdr.ar_namlen), &namlen))
+     {
+       char* buf = new char[sizeof(hdr.ar_namlen) + 1];
+       memcpy(buf, hdr.ar_namlen, sizeof(hdr.ar_namlen));
+       a68_error (NO_NODE,
+                   ("%s: malformed name length in entry header at %ld"
+                    " (expected decimal, got %s)"),
+                   this->filename_.c_str(), static_cast<long>(off), buf);
+       delete[] buf;
+       return false;
+     }
+   // Read member name following member header.
+   char* rdbuf = new char[namlen];
+   got = ::read(this->fd_, rdbuf, namlen);
+   if (got != namlen)
+     {
+       a68_error (NO_NODE,
+ 		 "%s: malformed member name in entry header at %ld",
+ 		 this->filename_.c_str(), static_cast<long>(off));
+       delete[] rdbuf;
+       return false;
+     }
+   pname->assign(rdbuf, namlen);
+   delete[] rdbuf;
+ 
+   long local_next_off;
+   if (!this->parse_decimal(hdr.ar_nxtmem, sizeof(hdr.ar_nxtmem), &local_next_off))
+     {
+       char* buf = new char[sizeof(hdr.ar_nxtmem) + 1];
+       memcpy(buf, hdr.ar_nxtmem, sizeof(hdr.ar_nxtmem));
+       a68_error (NO_NODE,
+ 		 ("%s: malformed next member offset in entry header at %ld"
+ 		  " (expected decimal, got %s)"),
+ 		 this->filename_.c_str(), static_cast<long>(off), buf);
+       delete[] buf;
+       return false;
+     }
+   if (next_off != NULL)
+     {
+       if (local_next_off == 0) // Last member.
+         *next_off = this->filesize_;
+       else
+         *next_off = local_next_off;
+     }
+   return true;
+ }
+ 
+ // Read the normal archive header at OFF, setting *PNAME, *SIZE,
+ // *NESTED_OFF and *NEXT_OFF.
+ 
+ bool
+ Archive_file::read_archive_header(off_t off, std::string* pname, off_t* size,
+                                   off_t* nested_off, off_t* next_off)
+ {
+   Archive_header hdr;
+   ssize_t got = ::read(this->fd_, &hdr, sizeof hdr);
+   if (got != sizeof hdr)
+     {
+       if (got < 0)
+ 	a68_error (NO_NODE, "%s: reading from archive", this->filename_.c_str());
+       else if (got > 0)
+ 	a68_error (NO_NODE, "%s: short archive header at %ld",
+ 		   this->filename_.c_str(), static_cast<long>(off));
+       else
+ 	a68_error (NO_NODE, "%s: unexpected EOF at %ld",
+ 		   this->filename_.c_str(), static_cast<long>(off));
+     }
+   off_t local_nested_off;
+   off_t offset_to_contents;
+   if (!this->interpret_header(&hdr, off, pname, size, &local_nested_off,
+ 			      &offset_to_contents))
+     return false;
+   this->offset_to_member_contents_ = offset_to_contents;
+   if (nested_off != NULL)
+     *nested_off = local_nested_off;
+ 
+   off_t local_next_off;
+   local_next_off = off + sizeof(Archive_header);
+   if (!this->is_thin_archive_ || pname->empty() || *pname == "/")
+     local_next_off += *size;
+   if ((local_next_off & 1) != 0)
+     ++local_next_off;
+   if (local_next_off > this->filesize_) // Last member.
+     local_next_off = this->filesize_;
+   if (next_off != NULL)
+     *next_off = local_next_off;
+   return true;
+ }
+ 
+ // Interpret the header of HDR, the header of the archive member at
+ // file offset OFF.
+ 
+ bool
+ Archive_file::interpret_header(const Archive_header* hdr, off_t off,
+ 			       std::string* pname,
+ 			       off_t* size,
+ 			       off_t* nested_off,
+ 			       off_t* offset_to_contents) const
+ {
+   if (memcmp(hdr->ar_fmag, arfmag, sizeof arfmag) != 0)
+     {
+       a68_error (NO_NODE, "%s: malformed archive header at %lu",
+ 		 this->filename_.c_str(), static_cast<unsigned long>(off));
+       return false;
+     }
+ 
+   long local_size;
+   if (!this->parse_decimal(hdr->ar_size, sizeof hdr->ar_size, &local_size))
+     {
+       a68_error (NO_NODE, "%s: malformed archive header size at %lu",
+ 		 this->filename_.c_str(), static_cast<unsigned long>(off));
+       return false;
+     }
+   *size = local_size;
+ 
+   *offset_to_contents = 0;
+   *nested_off = 0;
+   if (hdr->ar_name[0] == '#'
+ 	   && hdr->ar_name[1] == '1'
+ 	   && hdr->ar_name[2] == '/')
+     {
+       // This is an entry with a long name in Darwin, which gets actually
+       // stored in the first bytes of the archive member contents. For now,
+       // don't bother to decode the name, but we need to annotate the offset to
+       // the actual contents.
+       *pname = "#1";
+       char *end;
+       long y = strtol (hdr->ar_name + 3, &end, 10);
+       if (*end != ' ' || y < 0 || (y == LONG_MAX && errno == ERANGE))
+ 	{
+ 	  a68_error (NO_NODE, "%s: bad Darwin extended name size at %lu",
+ 		     this->filename_.c_str(), static_cast<unsigned long>(off));
+ 	  return false;
+ 	}
+       *offset_to_contents = y;
+     }
+   else if (hdr->ar_name[0] != '/')
+     {
+       const char* name_end = strchr(hdr->ar_name, '/');
+       if (name_end == NULL
+ 	  || name_end - hdr->ar_name >= static_cast<int>(sizeof hdr->ar_name))
+ 	{
+ 	  a68_error (NO_NODE,
+ 		     "%s: malformed archive header name at %lu",
+ 		     this->filename_.c_str(), static_cast<unsigned long>(off));
+ 	  return false;
+ 	}
+       pname->assign(hdr->ar_name, name_end - hdr->ar_name);
+     }
+   else if (hdr->ar_name[1] == ' ')
+     {
+       // This is the symbol table.
+       pname->clear();
+     }
+   else if (hdr->ar_name[1] == 'S' && hdr->ar_name[2] == 'Y'
+ 	   && hdr->ar_name[3] == 'M' && hdr->ar_name[4] == '6'
+ 	   && hdr->ar_name[5] == '4' && hdr->ar_name[6] == '/'
+ 	   && hdr->ar_name[7] == ' '
+ 	  )
+     {
+       // 64-bit symbol table.
+       pname->clear();
+     }
+   else if (hdr->ar_name[1] == '/')
+     {
+       // This is the extended name table.
+       pname->assign(1, '/');
+     }
+   else
+     {
+       char* end;
+       errno = 0;
+       long x = strtol(hdr->ar_name + 1, &end, 10);
+       long y = 0;
+       if (*end == ':')
+         y = strtol(end + 1, &end, 10);
+       if (*end != ' '
+ 	  || x < 0
+ 	  || (x == LONG_MAX && errno == ERANGE)
+ 	  || static_cast<size_t>(x) >= this->extended_names_.size())
+ 	{
+ 	  a68_error (NO_NODE, "%s: bad extended name index at %lu",
+ 		     this->filename_.c_str(), static_cast<unsigned long>(off));
+ 	  return false;
+ 	}
+ 
+       const char* name = this->extended_names_.data() + x;
+       const char* name_end = strchr(name, '\n');
+       if (static_cast<size_t>(name_end - name) > this->extended_names_.size()
+ 	  || name_end[-1] != '/')
+ 	{
+ 	  a68_error (NO_NODE,
+ 		     "%s: bad extended name entry at header %lu",
+ 		     this->filename_.c_str(), static_cast<unsigned long>(off));
+ 	  return false;
+ 	}
+       pname->assign(name, name_end - 1 - name);
+       *nested_off = y;
+     }
+ 
+   return true;
+ }
+ 
+ // Get the file and offset for an archive member.
+ 
+ bool
+ Archive_file::get_file_and_offset(off_t off, const std::string& hdrname,
+ 				  off_t nested_off, int* memfd, off_t* memoff,
+ 				  std::string* memname)
+ {
+   if (this->is_big_archive_)
+     {
+       *memfd = this->fd_;
+       *memoff = (off + sizeof(Archive_big_header) + hdrname.length()
+                  + sizeof(arfmag));
+       if ((*memoff & 1) != 0)
+         ++*memoff;
+       *memname = this->filename_ + '(' + hdrname + ')';
+       return true;
+     }
+   else if (!this->is_thin_archive_)
+     {
+       *memfd = this->fd_;
+       *memoff = off + sizeof(Archive_header) + this->offset_to_member_contents_;
+       *memname = this->filename_ + '(' + hdrname + ')';
+       return true;
+     }
+ 
+   std::string filename = hdrname;
+   if (!IS_ABSOLUTE_PATH(filename.c_str()))
+     {
+       const char* archive_path = this->filename_.c_str();
+       const char* basename = lbasename(archive_path);
+       if (basename > archive_path)
+ 	filename.replace(0, 0,
+ 			 this->filename_.substr(0, basename - archive_path));
+     }
+ 
+   if (nested_off > 0)
+     {
+       // This is a member of a nested archive.
+       Archive_file* nfile;
+       Nested_archive_table::const_iterator p =
+ 	this->nested_archives_.find(filename);
+       if (p != this->nested_archives_.end())
+ 	nfile = p->second;
+       else
+ 	{
+ 	  int nfd = open(filename.c_str(), O_RDONLY | O_BINARY);
+ 	  if (nfd < 0)
+ 	    {
+ 	      a68_error (NO_NODE, "%s: cannot open nested archive %s",
+ 			 this->filename_.c_str(), filename.c_str());
+ 	      return false;
+ 	    }
+ 	  nfile = new Archive_file(filename, nfd, this->location_);
+ 	  if (!nfile->initialize())
+ 	    {
+ 	      delete nfile;
+ 	      return false;
+ 	    }
+ 	  this->nested_archives_[filename] = nfile;
+ 	}
+ 
+       std::string nname;
+       off_t nsize;
+       off_t nnested_off;
+       if (!nfile->read_header(nested_off, &nname, &nsize, &nnested_off, NULL))
+ 	return false;
+       return nfile->get_file_and_offset(nested_off, nname, nnested_off,
+ 					memfd, memoff, memname);
+     }
+ 
+   // An external member of a thin archive.
+   *memfd = open(filename.c_str(), O_RDONLY | O_BINARY);
+   if (*memfd < 0)
+     {
+       a68_error (NO_NODE, "%s: opening archive", filename.c_str());
+       return false;
+     }
+   *memoff = 0;
+   *memname = filename;
+   return true;
+ }
+ 
+ // An archive member iterator.  This is more-or-less copied from gold.
+ 
+ class Archive_iterator
+ {
+  public:
+   // The header of an archive member.  This is what this iterator
+   // points to.
+   struct Header
+   {
+     // The name of the member.
+     std::string name;
+     // The file offset of the member.
+     off_t off;
+     // The file offset of a nested archive member.
+     off_t nested_off;
+     // The size of the member.
+     off_t size;
+   };
+ 
+   Archive_iterator(Archive_file* afile, off_t off)
+     : afile_(afile), off_(off)
+   { this->read_next_header(); }
+ 
+   const Header&
+   operator*() const
+   { return this->header_; }
+ 
+   const Header*
+   operator->() const
+   { return &this->header_; }
+ 
+   Archive_iterator&
+   operator++()
+   {
+     if (this->off_ == this->afile_->filesize())
+       return *this;
+     this->off_ = this->next_off_;
+     this->read_next_header();
+     return *this;
+   }
+ 
+   Archive_iterator
+   operator++(int)
+   {
+     Archive_iterator ret = *this;
+     ++*this;
+     return ret;
+   }
+ 
+   bool
+   operator==(const Archive_iterator& p) const
+   { return this->off_ == p->off; }
+ 
+   bool
+   operator!=(const Archive_iterator& p) const
+   { return this->off_ != p->off; }
+ 
+  private:
+   void
+   read_next_header();
+ 
+   // The underlying archive file.
+   Archive_file* afile_;
+   // The current offset in the file.
+   off_t off_;
+   // The offset of the next member.
+   off_t next_off_;
+   // The current archive header.
+   Header header_;
+ };
+ 
+ // Read the next archive header.
+ 
+ void
+ Archive_iterator::read_next_header()
+ {
+   off_t filesize = this->afile_->filesize();
+   while (true)
+     {
+       if (this->off_ == filesize)
+ 	{
+ 	  this->header_.off = filesize;
+ 	  return;
+ 	}
+ 
+       if (!this->afile_->read_header(this->off_, &this->header_.name,
+                                      &this->header_.size,
+                                      &this->header_.nested_off,
+                                      &this->next_off_))
+ 	{
+ 	  this->header_.off = filesize;
+ 	  this->off_ = filesize;
+ 	  return;
+ 	}
+       this->header_.off = this->off_;
+ 
+       // Skip special members.
+       if (!this->header_.name.empty() && this->header_.name != "/")
+ 	return;
+ 
+       this->off_ = this->next_off_;
+     }
+ }
+ 
+ // Initial iterator.
+ 
+ Archive_iterator
+ archive_begin(Archive_file* afile)
+ {
+   return Archive_iterator(afile, afile->first_member_offset());
+ }
+ 
+ // Final iterator.
+ 
+ Archive_iterator
+ archive_end(Archive_file* afile)
+ {
+   return Archive_iterator(afile, afile->filesize());
+ }
+ 
+ /* Get a68 imports from an archive.  We walk through the archive and read
+    imports from each member.  */
+ 
+ char *
+ a68_find_archive_export_data (const char *filename, int fd,
+ 			      size_t *size)
+ {
+   char *ret = NULL;
+   size_t ret_size = 0;
+ 
+   Archive_file afile(filename, fd, UNKNOWN_LOCATION);
+   if (!afile.initialize())
+     return NULL;
+ 
+ 
+   Archive_iterator pend = archive_end(&afile);
+   for (Archive_iterator p = archive_begin(&afile); p != pend; p++)
+     {
+       int member_fd;
+       off_t member_off;
+       std::string member_name;
+       if (!afile.get_file_and_offset(p->off, p->name, p->nested_off,
+ 				     &member_fd, &member_off, &member_name))
+ 	{
+ 	  *size = 0;
+ 	  return NULL;
+ 	}
+ 
+       size_t exports_size;
+       char *exports = a68_find_object_export_data (member_name,
+ 						   member_fd,
+ 						   member_off,
+ 						   &exports_size);
+       if (exports != NULL)
+ 	{
+ 	  if (ret == NULL)
+ 	    {
+ 	      ret = exports;
+ 	      ret_size = exports_size;
+ 	    }
+ 	  else
+ 	    {
+ 	      ret = (char *) xrealloc (ret, ret_size + exports_size);
+ 	      memcpy (ret + ret_size, exports, exports_size);
+ 	      ret_size += exports_size;
+ 	      free (exports);
+ 	    }
+ 	}
+     }
+ 
+   *size = ret_size;
+   return ret;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-imports.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-imports.cc
*** gcc-15.2.0/gcc/algol68/a68-imports.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-imports.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1479 ----
+ /* Importing Algol 68 module interfaces.
+    Copyright (C) 2025 Jose E. Marchesi.
+    Copyright (C) 2010-2026 Free Software Foundation, Inc.
+ 
+    Written by Jose E. Marchesi.
+ 
+    The following utility functions have been adapted from the Go front-end:
+ 
+      a68_open_packet
+      a68_try_packet_in_directory
+      a68_try_suffixes
+      a68_find_export_data
+      a68_find_object_export_data
+      a68_read_export_data
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "memmodel.h"
+ #include "tree.h"
+ #include "target.h"
+ #include "tm_p.h"
+ #include "simple-object.h"
+ #include "varasm.h"
+ #include "intl.h"
+ #include "common/common-target.h"
+ #include "dwarf2asm.h"
+ 
+ #include <string>
+ 
+ #include "a68.h"
+ 
+ /* A few macros to aid parsing of module map strings below.  */
+ 
+ #define SKIP_WHITESPACES(P) while (ISSPACE (*(P))) (P)++
+ 
+ #define PARSE_BASENAME(P,W)						\
+   do									\
+     {									\
+       (W) = (char *) alloca (strlen ((P)));				\
+       size_t i = 0;							\
+       while ((*(P)) != '=' && !ISSPACE (*(P)) && ((*(P)) != '\0'))	\
+ 	(W)[i++] = *((P)++);						\
+       (W)[i] = '\0';							\
+     } while (0)
+ 
+ #define PARSE_INDICANT(P,W)						\
+   do									\
+     {									\
+       (W) = (char *) alloca (strlen ((P)));				\
+       size_t i = 0;							\
+       if (ISALPHA (*(P)))						\
+ 	{								\
+ 	  (W)[i++] = *((P)++);						\
+ 	  while (ISALPHA (*(P)) || ISDIGIT(*(P)) || (*(P)) == '_')	\
+ 	    {								\
+ 	      if ((*(P)) == '_')					\
+ 		(P)++;							\
+ 	      else							\
+ 		(W)[i++] = *((P)++);					\
+ 	    }								\
+ 	}								\
+       (W)[i] = '\0';							\
+     } while (0)
+ 
+ /* Parse module map information in MAP and add entries to A68_MODULE_FILES
+    accordingly.  Existing entries in the map are overriden without warning.
+ 
+    If MAP is not a valid module map specification then this function returns
+    `false' and sets *ERRMSG to some explanatory message.  Otherwise it returns
+    `true' and sets *ERRMSG to NULL.  */
+ 
+ bool
+ a68_process_module_map (const char *map, const char **errmsg)
+ {
+   const char *p = map;
+ 
+   while (*p != '\0')
+     {
+       char *filename;
+       SKIP_WHITESPACES (p);
+       PARSE_BASENAME (p, filename);
+ 
+       if (p[0] != '=')
+ 	{
+ 	  *errmsg = "expected = after filename";
+ 	  goto error;
+ 	}
+       p++;
+ 
+       /* Parse one or more joined module indicants.  */
+       while (p[0] != ':' && p[0] != '\0')
+ 	{
+ 	  char *module;
+ 	  SKIP_WHITESPACES (p);
+ 	  PARSE_INDICANT (p, module);
+ 	  if (module[0] == '\0')
+ 	    {
+ 	      *errmsg = "expected module indicant";
+ 	      goto error;
+ 	    }
+ 
+ 	  SKIP_WHITESPACES (p);
+ 	  if (p[0] != ',' && p[0] != ':' && p[0] != '\0')
+ 	    {
+ 	      *errmsg = "expected comma or end of string after module indicant";
+ 	      goto error;
+ 	    }
+ 
+ 	  for (char *q = module; *q; ++q)
+ 	    *q = TOUPPER (*q);
+ 	  A68_MODULE_FILES->put (ggc_strdup (module), ggc_strdup (filename));
+ 
+ 	  if (p[0] == ',')
+ 	    p++;
+ 	}
+ 
+       SKIP_WHITESPACES (p);
+       if (p[0] != ':' && p[0] != '\0')
+ 	{
+ 	  *errmsg = "expected semicolon or end of string";
+ 	  goto error;
+ 	}
+ 
+       if (p[0] == ':')
+ 	p++;
+     }
+ 
+   *errmsg = NULL;
+   return true;
+  error:
+   return false;
+ }
+ 
+ /* Read exports from an object file.
+ 
+    FD is a file descriptor open for reading.
+ 
+    OFFSET is the offset within the file where the object file starts; this will
+    be 0 except when reading an archive.
+ 
+    On success this returns NULL and sets *PBUF to a buffer allocated using
+    malloc, of size *PLEN, holding the export data.
+ 
+    If the data is not found this returns NULL and sets *PBUF to NULL and *PLEN
+    to 0.
+ 
+    If some error occurs, this returns an error message and sets *PERR to an
+    errno value or 0 if there is no relevant errno.  */
+ 
+ static const char *
+ a68_read_export_data (int fd, uint64_t offset, char **pbuf, size_t *plen,
+ 		      int *perr)
+ {
+   simple_object_read *sobj;
+   const char *errmsg;
+   off_t sec_offset;
+   off_t sec_length;
+   int found;
+   char *buf;
+   ssize_t c;
+ 
+   *pbuf = NULL;
+   *plen = 0;
+ 
+   sobj = simple_object_start_read (fd, offset, A68_EXPORT_SEGMENT_NAME,
+ 				   &errmsg, perr);
+   if (sobj == NULL)
+     {
+       /* If we get an error here, just pretend that we didn't find any
+ 	 export data.  This is the right thing to do if the error is
+ 	 that the file was not recognized as an object file.  This
+ 	 will ignore file I/O errors, but it's not too big a deal
+ 	 because we will wind up giving some other error later.  */
+       return NULL;
+     }
+ 
+   found = simple_object_find_section (sobj, A68_EXPORT_SECTION_NAME,
+ 				      &sec_offset, &sec_length,
+ 				      &errmsg, perr);
+   simple_object_release_read (sobj);
+   if (!found)
+     return errmsg;
+ 
+   if (lseek (fd, offset + sec_offset, SEEK_SET) < 0)
+     {
+       *perr = errno;
+       return _("lseek failed while reading export data");
+     }
+ 
+   buf = XNEWVEC (char, sec_length);
+   if (buf == NULL)
+     {
+       *perr = errno;
+       return _("memory allocation failed while reading export data");
+     }
+ 
+   c = read (fd, buf, sec_length);
+   if (c < 0)
+     {
+       *perr = errno;
+       free (buf);
+       return _("read failed while reading export data");
+     }
+ 
+   if (c < sec_length)
+     {
+       free (buf);
+       return _("short read while reading export data");
+     }
+ 
+   *pbuf = buf;
+   *plen = sec_length;
+   return NULL;
+ }
+ 
+ /* Look for export data in an object file.  */
+ 
+ char *
+ a68_find_object_export_data (const std::string& filename,
+ 			     int fd, off_t offset, size_t *psize)
+ {
+   char *buf;
+   size_t len;
+   int err;
+ 
+   const char *errmsg = a68_read_export_data (fd, offset, &buf, &len, &err);
+   if (errmsg != NULL)
+     {
+       if (err == 0)
+ 	a68_error (NO_NODE, "%s: %s", filename.c_str (), errmsg);
+       else
+ 	a68_error (NO_NODE, "%s: %s: %s", filename.c_str(), errmsg,
+ 		   xstrerror(err));
+       return NULL;
+     }
+ 
+   *psize = len;
+   return buf;
+ }
+ 
+ /* Look for export data in the file descriptor FD.  */
+ 
+ static char *
+ a68_find_export_data (const std::string &filename, int fd, size_t *psize)
+ {
+   /* See if we can read this as an object file.  */
+   char *exports = a68_find_object_export_data (filename, fd, 0, psize);
+   if (exports != NULL)
+     return exports;
+ 
+   if (lseek (fd, 0, SEEK_SET) < 0)
+     {
+       a68_error (NO_NODE, "lseek %qs failed", filename.c_str ());
+       return NULL;
+     }
+ 
+   char buf[A68_EXPORT_MAGIC_LEN];
+   ssize_t c = read (fd, buf, A68_EXPORT_MAGIC_LEN);
+   if (c < A68_EXPORT_MAGIC_LEN)
+     return NULL;
+ 
+   if (lseek (fd, 0, SEEK_SET) < 0)
+     {
+       a68_error (NO_NODE, "lseek %qs failed", filename.c_str ());
+       return NULL;
+     }
+ 
+   /* Check for a file containing nothing but Algol 68 export data.  */
+   if (buf[0] == '\x0a' && buf[1] == '\x68')
+     {
+       /* read whole file.  */
+ 
+       char *buf;
+       ssize_t len, nread;
+ 
+       len = a68_file_size (fd);
+       if (len == -1)
+         {
+           a68_error (NO_NODE, "%<a68_file_size%> failed for %qs",
+                      filename.c_str ());
+           return NULL;
+         }
+ 
+       buf = XNEWVEC (char, len);
+       if (buf == NULL)
+         {
+           a68_error (NO_NODE,
+                      "memory allocation failed while reading export data");
+           return NULL;
+         }
+ 
+       nread = a68_file_read (fd, buf, len);
+       if (nread < 0)
+         {
+           free (buf);
+           a68_error (NO_NODE, "read failed while reading export data");
+           return NULL;
+         }
+ 
+       if (nread < len)
+         {
+           free (buf);
+           a68_error (NO_NODE, "short read while reading export data");
+           return NULL;
+         }
+ 
+       *psize = len;
+       return buf;
+     }
+ 
+   /* See if we can read this as an archive.  */
+   {
+     char buf[8];
+ 
+     if (lseek (fd, 0, SEEK_SET) < 0)
+       {
+ 	a68_error (NO_NODE, "lseek %qs failed", filename.c_str ());
+ 	return NULL;
+       }
+ 
+     c = read (fd, buf, 8);
+     if (c < 8)
+       {
+ 	a68_error (NO_NODE, "read %qs failed", filename.c_str ());
+ 	return NULL;
+       }
+ 
+     if (a68_is_archive_magic (buf))
+       return a68_find_archive_export_data(filename.c_str (), fd, psize);
+   }
+ 
+   return NULL;
+ }
+ 
+ /* Given *PFILENAME, where *PFILENAME does not exist, try various suffixes.  If
+    we find one, set *FILENAME to the one we found.  Return the open file
+    descriptor.  */
+ 
+ static int
+ a68_try_suffixes (std::string *pfilename)
+ {
+   std::string filename = *pfilename + ".m68";
+   int fd = open (filename.c_str(), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ 
+   const char* basename = lbasename (pfilename->c_str());
+   size_t basename_pos = basename - pfilename->c_str ();
+   filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".so";
+   fd = open (filename.c_str (), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ 
+   filename = pfilename->substr (0, basename_pos) + "lib" + basename + ".a";
+   fd = open (filename.c_str (), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ 
+   filename = *pfilename + ".o";
+   fd = open (filename.c_str(), O_RDONLY | O_BINARY);
+   if (fd >= 0)
+     {
+       *pfilename = filename;
+       return fd;
+     }
+ 
+   return -1;
+ }
+ 
+ /* Try to find the export data for FILENAME.  */
+ 
+ static char *
+ a68_try_packet_in_directory (const std::string &filename, size_t *psize)
+ {
+   std::string found_filename = filename;
+   int fd = a68_try_suffixes (&found_filename);
+   if (fd < 0)
+     return NULL;
+ 
+   /* The export data may not be in this file.  */
+   char *exports = a68_find_export_data (found_filename, fd, psize);
+   if (exports != NULL)
+     return exports;
+ 
+   close (fd);
+ 
+   a68_error (NO_NODE, "file %qs exists but does not contain any export data",
+ 	     found_filename.c_str ());
+ 
+   return NULL;
+ }
+ 
+ /* Find import data in FILENAME.
+ 
+    This searches the file system for FILENAME, reads exports information from
+    it, and returns a pointer to the beginning of an allocated buffer with the
+    exports data, its size in *psize.  It is up to the caller of this function
+    to release the buffer when it is no longer necessary.  If the file is not
+    found, this function returns NULL.
+ 
+    When FILENAME is not an absolute path and does not start with ./ or ../, we
+    use the search path provided by -I and -L options.
+ 
+    When FILENAME does start with ./ or ../, we use RELATIVE_IMPORT_PATH as a
+    prefix.
+ 
+    When FILENAME does not exist, we try
+    modifying FILENAME to find the file.
+    We use the first of these which exists:
+ 
+    - We append ".m68".
+    - We turn the base of FILENAME info libFILENAME.so.
+    - We turn the base of FILENAME into libFILENAME.a.
+    - We append ".o".
+ 
+    When using a search path, we apply each of these transformations at each
+    entry on the search path before moving on to the next entry.  If the file
+    exists, but does not contain Algol 68 export data, we stop; we do not keep
+    looking for another file with the same name later in the search path.  */
+ 
+ static char *
+ a68_get_packet_exports (const std::string &filename,
+ 			const std::string &relative_import_path,
+ 			size_t *psize)
+ {
+   char *exports;
+ 
+   bool is_local;
+   if (IS_ABSOLUTE_PATH (filename))
+     is_local = true;
+   else if (filename[0] == '.'
+ 	   && (filename[1] == '\0' || IS_DIR_SEPARATOR (filename[1])))
+     is_local = true;
+   else if (filename[0] == '.'
+ 	   && filename[1] == '.'
+ 	   && (filename[2] == '\0' || IS_DIR_SEPARATOR (filename[2])))
+     is_local = true;
+   else
+     is_local = false;
+ 
+   std::string fn = filename;
+   if (is_local && !IS_ABSOLUTE_PATH (filename)
+       && !relative_import_path.empty ())
+     {
+       if (fn == ".")
+ 	/* A special case.  */
+ 	fn = relative_import_path;
+       else if (fn[0] == '.' && fn[1] == '.'
+ 	       && (fn[2] == '\0' || IS_DIR_SEPARATOR (fn[2])))
+ 	{
+ 	  /* We are going to join relative_import_path and fn, and it will look
+ 	     like DIR/../PATH.  BUt DIR does not necessarily exist in this
+ 	     case, and if it doesn't the use of .. will fail although it
+ 	     shouldn't.  */
+ 	  size_t index;
+ 	  for (index = relative_import_path.length () - 1;
+ 	       index > 0 && !IS_DIR_SEPARATOR (relative_import_path[index]);
+ 	       index--)
+ 	    ;
+ 	  if (index > 0)
+ 	    fn = relative_import_path.substr (0, index) + fn.substr (2);
+ 	  else
+ 	    fn = relative_import_path + '/' + fn;
+ 	}
+       else
+ 	fn = relative_import_path + '/' + fn;
+       is_local = false;
+     }
+ 
+   if (!is_local)
+     {
+       for (std::string path : A68_IMPORT_PATHS)
+ 	{
+ 	  if (!path.empty () && path[path.size () - 1] != '/')
+ 	    path += '/';
+ 	  path += fn;
+ 	  exports = a68_try_packet_in_directory (path, psize);
+ 	  if (exports != NULL)
+ 	    return exports;
+ 	}
+     }
+ 
+   return a68_try_packet_in_directory (fn, psize);
+ }
+ 
+ /* The size of the target's pointer type, in bytes.  */
+ #ifndef PTR_SIZE
+ #define PTR_SIZE ((int)(POINTER_SIZE / BITS_PER_UNIT))
+ #endif
+ 
+ /* Collection of decoding helper macros, to be exclusively used in the
+    a68_decode_* functions below.  */
+ 
+ #define DINT8(V)				\
+   do						\
+     {						\
+       if (pos + 1 > size)			\
+ 	goto decode_error;			\
+       (V) = (int8_t)data[pos++];		\
+     }						\
+   while (0)
+ 
+ #define DUINT8(V)				\
+   do						\
+     {						\
+       if (pos + 1 > size)			\
+ 	goto decode_error;			\
+       (V) = (uint8_t)data[pos++];		\
+     }						\
+   while (0)
+ 
+ #define DUINT16(V)							\
+   do									\
+     {									\
+       if (pos + 2 > size)						\
+ 	goto decode_error;						\
+       if (BYTES_BIG_ENDIAN)						\
+ 	(V) = ((uint8_t) data[pos] << 8) | (uint8_t) data[pos + 1];	\
+       else								\
+ 	(V) = ((uint8_t) data[pos + 1] << 8) | (uint8_t) data[pos];	\
+       pos += 2;								\
+     }									\
+   while (0)
+ 
+ #define DOFFSET(V)							\
+   do									\
+     {									\
+       if (pos + PTR_SIZE > size)					\
+ 	goto decode_error;						\
+       (V) = 0;								\
+       if (BYTES_BIG_ENDIAN)						\
+ 	{								\
+ 	  for (int i = 0; i < PTR_SIZE;	i++)				\
+ 	    (V) = ((V) | ((uint8_t) data[pos + i] << ((PTR_SIZE - i - 1) * 8))); \
+ 	}								\
+       else								\
+ 	{								\
+ 	  for (int i = 0; i < PTR_SIZE;	i++)				\
+ 	    (V) = ((V) | ((uint8_t) data[pos + i] << (i * 8)));		\
+ 	}								\
+       pos += PTR_SIZE;							\
+     }									\
+   while (0)
+ 
+ #define DSTR(V)					\
+   do						\
+     {						\
+       uint16_t len;				\
+       char *str = NULL;				\
+       DUINT16 (len);				\
+       if (pos + len > size)			\
+ 	goto decode_error;			\
+       if (len > 0)				\
+ 	{					\
+ 	  str = (char *) xmalloc (len);		\
+ 	  memcpy (str, data + pos, len);	\
+ 	  pos += len;				\
+ 	}					\
+       (V) = str;				\
+     }						\
+   while (0)
+ 
+ /* Types to denote encoded modes.  */
+ 
+ struct encoded_triplet
+ {
+   uint64_t lb;
+   uint64_t ub;
+ };
+ 
+ struct encoded_field
+ {
+   uint64_t mode_offset;
+   char *name;
+ };
+ 
+ struct encoded_arg
+ {
+   uint64_t arg_mode_offset;
+   char *arg_name;
+ };
+ 
+ struct encoded_mode
+ {
+   MOID_T *moid;
+   uint64_t offset;
+   uint8_t kind;
+   int8_t sizety;
+   union
+   {
+     struct
+     {
+       uint64_t sub_offset;
+     } name;
+ 
+     struct
+     {
+       uint8_t sub_offset;
+     } flex;
+ 
+     struct
+     {
+       uint8_t ndims;
+       struct encoded_triplet *triplets;
+       uint64_t sub_offset;
+     } row;
+ 
+     struct
+     {
+       uint16_t nfields;
+       struct encoded_field *fields;
+     } sct;
+ 
+     struct
+     {
+       uint8_t nmodes;
+       uint64_t *modes;
+     } union_;
+ 
+     struct
+     {
+       uint64_t ret_mode_offset;
+       uint8_t nargs;
+       struct encoded_arg *args;
+     } proc;
+ 
+   } data;
+ };
+ 
+ /* Free the memory used by an encoded mode.  */
+ 
+ static void
+ encoded_mode_free (struct encoded_mode *em)
+ {
+   switch (em->kind)
+     {
+     case GA68_MODE_ROW:
+       free (em->data.row.triplets);
+       break;
+     case GA68_MODE_STRUCT:
+       /* Note that the field names are installed in moids in
+ 	 encoded_mode_to_moid, so we shoud not free them.  */
+       free (em->data.sct.fields);
+       break;
+     case GA68_MODE_UNION:
+       free (em->data.union_.modes);
+       break;
+     case GA68_MODE_PROC:
+       for (uint8_t i = 0; i < em->data.proc.nargs; i++)
+ 	free (em->data.proc.args[i].arg_name);
+       free (em->data.proc.args);
+       break;
+     default:
+       break;
+     }
+   free (em);
+ }
+ 
+ /* A collection of encoded modes indexed by offsets.  */
+ 
+ #define NO_OFFSET ((uint64_t) -1)
+ 
+ typedef hash_map<int_hash<uint64_t,NO_OFFSET>,
+ 		 struct encoded_mode *> encoded_modes_map_t;
+ 
+ /* Complete a encoded mode.  */
+ 
+ static MOID_T *
+ complete_encoded_mode (encoded_modes_map_t &encoded_modes, uint64_t offset)
+ {
+   struct encoded_mode *em = *(encoded_modes.get (offset));
+   MOID_T *sub;
+   PACK_T *pack;
+ 
+   if (em->moid != NO_MOID)
+     return em->moid;
+ 
+   switch (em->kind)
+     {
+     case GA68_MODE_VOID:   em->moid = M_VOID; break;
+     case GA68_MODE_CHAR:   em->moid = M_CHAR; break;
+     case GA68_MODE_BOOL:   em->moid = M_BOOL; break;
+     case GA68_MODE_STRING: em->moid = M_FLEX_ROW_CHAR; break;
+     case GA68_MODE_INT:
+       switch (em->sizety)
+ 	{
+ 	case 0: em->moid = M_INT; break;
+ 	case 1: em->moid = M_LONG_INT; break;
+ 	case 2: em->moid = M_LONG_LONG_INT; break;
+ 	case -1: em->moid = M_SHORT_INT; break;
+ 	case -2: em->moid = M_SHORT_SHORT_INT; break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       break;
+     case GA68_MODE_BITS:
+       switch (em->sizety)
+ 	{
+ 	case 0: em->moid = M_BITS; break;
+ 	case 1: em->moid = M_LONG_BITS; break;
+ 	case 2: em->moid = M_LONG_LONG_BITS; break;
+ 	case -1: em->moid = M_SHORT_BITS; break;
+ 	case -2: em->moid = M_SHORT_SHORT_BITS; break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       break;
+     case GA68_MODE_BYTES:
+       switch (em->sizety)
+ 	{
+ 	case 0: em->moid = M_BYTES; break;
+ 	case 1: em->moid = M_LONG_BYTES; break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       break;
+     case GA68_MODE_REAL:
+       switch (em->sizety)
+ 	{
+ 	case 0: em->moid = M_REAL; break;
+ 	case 1: em->moid = M_LONG_REAL; break;
+ 	case 2: em->moid = M_LONG_LONG_REAL; break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       break;
+     case GA68_MODE_CMPL:
+       switch (em->sizety)
+ 	{
+ 	case 0: em->moid = M_COMPLEX; break;
+ 	case 1: em->moid = M_LONG_COMPLEX; break;
+ 	case 2: em->moid = M_LONG_LONG_COMPLEX; break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       break;
+     case GA68_MODE_NAME:
+     case GA68_MODE_FLEX:
+       /* For recursive declarations.  */
+       em->moid = a68_create_mode (em->kind == GA68_MODE_NAME ? REF_SYMBOL : FLEX_SYMBOL,
+ 				  0, NO_NODE, M_ERROR, NO_PACK);
+       sub = complete_encoded_mode (encoded_modes,
+ 				   em->kind == GA68_MODE_NAME
+ 				   ? em->data.name.sub_offset : em->data.flex.sub_offset);
+       if (sub == NO_MOID)
+ 	{
+ 	  /* Free em->moid */
+ 	  return NO_MOID;
+ 	}
+       SUB (em->moid) = sub;
+       break;
+     case GA68_MODE_ROW:
+       /* XXX how to convey actual bounds.  */
+       /* For recursive declarations.  */
+       em->moid = a68_create_mode (ROW_SYMBOL, 0, NO_NODE, M_ERROR, NO_PACK);
+       sub = complete_encoded_mode (encoded_modes, em->data.row.sub_offset);
+       if (sub == NO_MOID)
+ 	{
+ 	  /* Free em->moid */
+ 	  return  NO_MOID;
+ 	}
+       SUB (em->moid) = sub;
+       DIM (em->moid) = em->data.row.ndims;
+       break;
+     case GA68_MODE_STRUCT:
+       /* For recursive declarations.  */
+       em->moid = a68_create_mode (STRUCT_SYMBOL, 0, NO_NODE, NO_MOID, NO_PACK);
+       pack = NO_PACK;
+       for (uint16_t i = 0; i < em->data.sct.nfields; i++)
+ 	{
+ 	  /* Note we have to do this from last field to first field, because
+ 	     a68_add_mode_to_pack prepends to the list.  */
+ 	  uint16_t index = em->data.sct.nfields - 1 - i;
+ 	  char *field_name = em->data.sct.fields[index].name;
+ 	  MOID_T *field_moid = complete_encoded_mode (encoded_modes,
+ 						      em->data.sct.fields[index].mode_offset);
+ 	  if (field_moid == NO_MOID)
+ 	    {
+ 	      /* XXX free em->moid */
+ 	      em->moid = NO_MOID;
+ 	      return  NO_MOID;
+ 	    }
+ 	  (void) a68_add_mode_to_pack (&pack, field_moid, field_name, NO_NODE);
+ 	}
+       DIM (em->moid) = a68_count_pack_members (pack);
+       PACK (em->moid) = pack;
+       break;
+     case GA68_MODE_UNION:
+       /* For recursive declarations.  */
+       em->moid = a68_create_mode (UNION_SYMBOL, 0, NO_NODE, NO_MOID, NO_PACK);
+       pack = NO_PACK;
+       for (uint8_t i = 0; i < em->data.union_.nmodes; i++)
+ 	{
+ 	  /* Union alternatives are internally stored in reverse order in the
+ 	     pack.  */
+ 	  uint16_t index = i;
+ 	  MOID_T *united_moid = complete_encoded_mode (encoded_modes,
+ 						       em->data.union_.modes[index]);
+ 	  if (united_moid == NO_MOID)
+ 	    {
+ 	      /* XXX free em->moid */
+ 	      em->moid = NO_MOID;
+ 	      return NO_MOID;
+ 	    }
+ 	  (void) a68_add_mode_to_pack (&pack, united_moid, NO_TEXT, NO_NODE);
+ 	}
+       DIM (em->moid) = a68_count_pack_members (pack);
+       PACK (em->moid) = pack;
+       break;
+     case GA68_MODE_PROC:
+       /* For recursive declarations.  */
+       em->moid = a68_create_mode (PROC_SYMBOL, 0, NO_NODE, NO_MOID, NO_PACK);
+       pack = NO_PACK;
+       for (uint8_t i = 0; i < em->data.proc.nargs; i++)
+ 	{
+ 	  /* Note we have to do this from last argument mode to first argument
+ 	     mode, because a68_add_mode_to_pack prepends to the list.  */
+ 	  uint16_t index = em->data.proc.nargs - 1 - i;
+ 	  char *arg_name = em->data.proc.args[index].arg_name;
+ 	  MOID_T *arg_moid = complete_encoded_mode (encoded_modes,
+ 						    em->data.proc.args[index].arg_mode_offset);
+ 	  if (arg_moid == NO_MOID)
+ 	    {
+ 	      /* XXX free em->moid */
+ 	      em->moid = NO_MOID;
+ 	      return NO_MOID;
+ 	    }
+ 	  (void) a68_add_mode_to_pack (&pack, arg_moid, arg_name, NO_NODE);
+ 	}
+       SUB (em->moid) = complete_encoded_mode (encoded_modes,
+ 					      em->data.proc.ret_mode_offset);
+       if (SUB (em->moid) == NO_MOID)
+ 	{
+ 	  /* Free em->moid */
+ 	  em->moid = NO_MOID;
+ 	  return NO_MOID;
+ 	}
+       DIM (em->moid) = a68_count_pack_members (pack);
+       PACK (em->moid) = pack;
+       break;
+     default:
+       gcc_unreachable ();
+     }
+ 
+   return em->moid;
+ }
+ 
+ /* Dump the contents of an encoded_mode, for debugging purposes.  */
+ 
+ ATTRIBUTE_UNUSED static void
+ dump_encoded_mode (struct encoded_mode *em)
+ {
+   printf ("[%" PRIu64 "] kind: %" PRIu8, em->offset, em->kind);
+   switch (em->kind)
+     {
+     case GA68_MODE_VOID:
+       printf (" void\n");
+       break;
+     case GA68_MODE_CHAR:
+       printf (" char\n");
+       break;
+     case GA68_MODE_BOOL:
+       printf (" bool\n");
+       break;
+     case GA68_MODE_STRING:
+       printf (" string\n");
+       break;
+     case GA68_MODE_NAME:
+       printf (" name\n");
+       printf ("  sub: %" PRIu64 "\n", em->data.name.sub_offset);
+       break;
+     case GA68_MODE_STRUCT:
+       printf (" struct\n");
+       printf ("  nfields: %" PRIu16 "\n", em->data.sct.nfields);
+       for (uint16_t i = 0; i < em->data.sct.nfields; i++)
+ 	printf ("  %s : [%" PRIu64 "]\n",
+ 		em->data.sct.fields[i].name, em->data.sct.fields[i].mode_offset);
+       break;
+     case GA68_MODE_FLEX:
+       printf (" flex\n");
+       printf ("  sub: %" PRIu64 "\n", em->data.name.sub_offset);
+       break;
+     case GA68_MODE_UNION:
+       printf (" union\n");
+       printf ("  nmodes: %" PRIu8 "\n", em->data.union_.nmodes);
+       printf (" ");
+       for (uint8_t i = 0; i < em->data.union_.nmodes; i++)
+ 	printf (" [%" PRIu64 "]", em->data.union_.modes[i]);
+       printf ("\n");
+       break;
+     case GA68_MODE_PROC:
+       printf (" proc\n");
+       printf ("  retmode: [%" PRIu64 "]\n", em->data.proc.ret_mode_offset);
+       printf ("  nargs: %" PRIu8 "\n", em->data.proc.nargs);
+       for (uint8_t i = 0; i < em->data.proc.nargs; i++)
+ 	printf ("  %s : [%" PRIu64 "]\n",
+ 		em->data.proc.args[i].arg_name,
+ 		em->data.proc.args[i].arg_mode_offset);
+       break;
+     case GA68_MODE_ROW:
+       printf (" row\n");
+       printf ("  ndims: %" PRIu8 "\n", em->data.row.ndims);
+       for (uint8_t i = 0; i < em->data.row.ndims; i++)
+ 	{
+ 	  printf ("    lb: %" PRIu64 "\n", em->data.row.triplets[i].lb);
+ 	  printf ("    ub: %" PRIu64 "\n", em->data.row.triplets[i].ub);
+ 	}
+       printf ("  sub: [%" PRIu64 "]\n", em->data.row.sub_offset);
+       break;
+     default:
+       break;
+     }
+ }
+ 
+ /* Substitute any reference to mode M in T to R.  */
+ 
+ static void
+ a68_replace_submode (MOID_T *t, MOID_T *m, MOID_T *r)
+ {
+   if (SUB (t) == m)
+     SUB (t) = r;
+ 
+   for (PACK_T *p = PACK (t); p != NO_PACK; FORWARD (p))
+     {
+       if (MOID (p) == m)
+ 	MOID (p) = r;
+     }
+ }
+ 
+ /* Substitute mode M with mode R in all modes in MODES_LIST.
+    The entry for M in MODES_LIST is set to NO_MOID.  */
+ 
+ static void
+ a68_replace_equivalent_mode (vec<MOID_T*,va_gc> *mode_list,
+ 			     MOID_T *m, MOID_T *r)
+ {
+   for (size_t i = 0; i < mode_list->length (); ++i)
+     {
+       if ((*mode_list)[i] == m)
+ 	(*mode_list)[i] = NO_MOID;
+       else if ((*mode_list)[i] != NO_MOID)
+ 	a68_replace_submode ((*mode_list)[i], m, r);
+     }
+ }
+ 
+ /* Decode a modes table at DATA + POS.  */
+ 
+ static bool
+ a68_decode_modes (MOIF_T *moif, encoded_modes_map_t &encoded_modes,
+ 		  const char *data, size_t size, size_t pos, size_t moif_pos,
+ 		  size_t *ppos, const char **errstr)
+ {
+   bool siga;
+   uint8_t kind;
+   uint64_t mode_table_size, mode_table_end;
+ 
+   /* Get the size of the modes table.  */
+   DOFFSET (mode_table_size);
+   mode_table_end = pos + mode_table_size;
+ 
+   /* Decode all the mode entries and fill in encoded_modes.  */
+   while (pos < mode_table_end)
+     {
+       int8_t sizety;
+       uint8_t ndims, nmodes, nargs;
+       uint16_t nfields;
+       uint64_t mode_offset = pos - moif_pos;
+       uint64_t sub, ret_mode_offset;
+       struct encoded_mode *encoded_mode;
+ 
+       DUINT8 (kind);
+       encoded_mode = (struct encoded_mode *) xmalloc (sizeof (struct encoded_mode));
+       encoded_mode->moid = NO_MOID;
+       encoded_mode->offset = mode_offset;
+       encoded_mode->kind = kind;
+       encoded_mode->sizety = 0;
+       switch (kind)
+ 	{
+ 	case GA68_MODE_VOID:
+ 	case GA68_MODE_CHAR:
+ 	case GA68_MODE_BOOL:
+ 	case GA68_MODE_STRING:
+ 	  break;
+ 	case GA68_MODE_INT:
+ 	case GA68_MODE_REAL:
+ 	case GA68_MODE_BITS:
+ 	case GA68_MODE_BYTES:
+ 	case GA68_MODE_CMPL:
+ 	  DINT8 (sizety);
+ 	  encoded_mode->sizety = sizety;
+ 	  break;
+ 	case GA68_MODE_NAME:
+ 	  DOFFSET (sub);
+ 	  encoded_mode->data.name.sub_offset = sub;
+ 	  break;
+ 	case GA68_MODE_FLEX:
+ 	  DOFFSET (sub);
+ 	  encoded_mode->data.flex.sub_offset = sub;
+ 	  break;
+ 	case GA68_MODE_ROW:
+ 	  DUINT8 (ndims);
+ 	  encoded_mode->data.row.triplets
+ 	    = (struct encoded_triplet *) xmalloc (sizeof (struct encoded_triplet) * ndims);
+ 	  for (uint8_t i = 0; i < ndims; i++)
+ 	    {
+ 	      uint64_t lb, ub;
+ 	      DOFFSET (lb);
+ 	      DOFFSET (ub);
+ 	      encoded_mode->data.row.triplets[i].lb = lb;
+ 	      encoded_mode->data.row.triplets[i].ub = ub;
+ 	    }
+ 	  DOFFSET (sub);
+ 	  encoded_mode->data.row.ndims = ndims;
+ 	  encoded_mode->data.row.sub_offset = sub;
+ 	  break;
+ 	case GA68_MODE_UNION:
+ 	  DUINT16 (nmodes);
+ 	  encoded_mode->data.union_.nmodes = nmodes;
+ 	  encoded_mode->data.union_.modes
+ 	    = (uint64_t *) xmalloc (sizeof (uint64_t) * nmodes);
+ 	  for (uint8_t i = 0; i < nmodes; i++)
+ 	    {
+ 	      uint64_t mode;
+ 	      DOFFSET (mode);
+ 	      encoded_mode->data.union_.modes[i] = mode;
+ 	    }
+ 	  break;
+ 	case GA68_MODE_PROC:
+ 	  DOFFSET (ret_mode_offset);
+ 	  DUINT8 (nargs);
+ 	  encoded_mode->data.proc.ret_mode_offset = ret_mode_offset;
+ 	  encoded_mode->data.proc.nargs = nargs;
+ 	  encoded_mode->data.proc.args
+ 	    = (struct encoded_arg *) xmalloc (sizeof (struct encoded_arg) * nargs);
+ 	  for (uint8_t i = 0; i < nargs; i++)
+ 	    {
+ 	      uint64_t arg_mode_offset;
+ 	      char *arg_name;
+ 	      DOFFSET (arg_mode_offset);
+ 	      DSTR (arg_name);
+ 	      encoded_mode->data.proc.args[i].arg_mode_offset = arg_mode_offset;
+ 	      encoded_mode->data.proc.args[i].arg_name = arg_name;
+ 	    }
+ 	  break;
+ 	case GA68_MODE_STRUCT:
+ 	  DUINT16 (nfields);
+ 	  encoded_mode->data.sct.nfields = nfields;
+ 	  encoded_mode->data.sct.fields
+ 	    = (struct encoded_field *) xmalloc (sizeof (struct encoded_field) * nfields);
+ 	  for (uint16_t i = 0; i < nfields; i++)
+ 	    {
+ 	      uint64_t mode_offset;
+ 	      char *field_name;
+ 	      DOFFSET (mode_offset);
+ 	      DSTR (field_name);
+ 	      encoded_mode->data.sct.fields[i].mode_offset = mode_offset;
+ 	      encoded_mode->data.sct.fields[i].name = field_name;
+ 	    }
+ 	  break;
+ 	case GA68_MODE_UNKNOWN:
+ 	default:
+ 	  *errstr = "invalid kind in mode";
+ 	  goto decode_error;
+ 	  break;
+ 	}
+ 
+       encoded_modes.put (mode_offset, encoded_mode);
+     }
+ 
+   /* Sanity check.  */
+   if (pos != mode_table_end)
+     {
+       *errstr = "invalid mode table size";
+       goto decode_error;
+     }
+ 
+   /* Complete all encoded modes.
+      This operation must conform a transitive closure.  */
+   siga = true;
+   while (siga)
+     {
+       siga = false;
+       for (auto entry : encoded_modes)
+ 	{
+ 	  uint64_t offset = entry.first;
+ 	  struct encoded_mode *em = entry.second;
+ 
+ 	  if (em->moid == NO_MOID
+ 	      && complete_encoded_mode (encoded_modes, offset) != NO_MOID)
+ 	    siga = true;
+ 	}
+     }
+ 
+   /* At this point all the encoded modes are complete and they are all
+      associated with moids.  Put them in the moif.  */
+   for (auto entry : encoded_modes)
+     {
+       struct encoded_mode *em = entry.second;
+       gcc_assert (em->moid != NO_MOID);
+       vec_safe_push (MODES (moif), em->moid);
+     }
+ 
+   *errstr = NULL;
+   *ppos = pos;
+   return true;
+  decode_error:
+   if (*errstr == NULL)
+     *errstr = "error decoding mode";
+   return false;
+ }
+ 
+ /* Decode an extracts table at DATA + POS.  */
+ 
+ static bool
+ a68_decode_extracts (MOIF_T *moif, encoded_modes_map_t &encoded_modes,
+ 		     const char *data, size_t size, size_t pos,
+ 		     size_t *ppos, const char **errstr)
+ {
+   uint64_t extracts_table_size, extracts_table_end;
+ 
+   /* Get the size of the extracts table.  */
+   DOFFSET (extracts_table_size);
+   extracts_table_end = pos + extracts_table_size;
+ 
+   /* Decode all the extracts entries, adding them to MOIF as we go.  */
+   while (pos < extracts_table_end)
+     {
+       uint8_t marker, prio, variable, in_proc;
+       uint64_t extract_size, extract_end, mode_offset;
+       uint64_t mdextra_size;
+       char *name;
+ 
+       EXTRACT_T *e = (EXTRACT_T *) ggc_cleared_alloc<EXTRACT_T> ();
+ 
+       DOFFSET (extract_size);
+       extract_end = pos + extract_size;
+ 
+       DUINT8 (marker);
+       switch (marker)
+ 	{
+ 	case GA68_EXTRACT_MODU:
+ 	  DSTR (name);
+ 	  DOFFSET (mdextra_size);
+ 	  if (mdextra_size != 0)
+ 	    {
+ 	      *errstr = "non-empty mdextra in module extract";
+ 	      goto decode_error;
+ 	    }
+ 	  EXTRACT_KIND (e) = GA68_EXTRACT_MODU;
+ 	  EXTRACT_SYMBOL (e) = ggc_strdup (name);
+ 	  EXTRACT_MODE (e) = NO_MOID;
+ 	  EXTRACT_PRIO (e) = 0;
+ 	  EXTRACT_VARIABLE (e) = false;
+ 	  EXTRACT_IN_PROC (e) = false;
+ 	  vec_safe_push (MODULES (moif), e);
+ 	  break;
+ 	case GA68_EXTRACT_IDEN:
+ 	  DSTR (name);
+ 	  DOFFSET (mode_offset);
+ 	  DOFFSET (mdextra_size);
+ 	  if (mdextra_size != 2)
+ 	    {
+ 	      *errstr = "mdextra size should be 2 in iden extract";
+ 	      goto decode_error;
+ 	    }
+ 	  DUINT8 (variable);
+ 	  DUINT8 (in_proc);
+ 	  EXTRACT_KIND (e) = GA68_EXTRACT_IDEN;
+ 	  EXTRACT_SYMBOL (e) = ggc_strdup (name);
+ 	  EXTRACT_MODE (e) = (*(encoded_modes.get (mode_offset)))->moid;
+ 	  EXTRACT_PRIO (e) = 0;
+ 	  EXTRACT_VARIABLE (e) = variable;
+ 	  EXTRACT_IN_PROC (e) = in_proc;
+ 	  vec_safe_push (IDENTIFIERS (moif), e);
+ 	  break;
+ 	case GA68_EXTRACT_MODE:
+ 	  DSTR (name);
+ 	  DOFFSET (mode_offset);
+ 	  DOFFSET (mdextra_size);
+ 	  if (mdextra_size != 0)
+ 	    {
+ 	      *errstr = "non-empty mdextra in indicant extract";
+ 	      goto decode_error;
+ 	    }
+ 	  EXTRACT_KIND (e) = GA68_EXTRACT_MODE;
+ 	  EXTRACT_SYMBOL (e) = ggc_strdup (name);
+ 	  EXTRACT_MODE (e) = (*(encoded_modes.get (mode_offset)))->moid;
+ 	  EXTRACT_PRIO (e) = 0;
+ 	  EXTRACT_VARIABLE (e) = false;
+ 	  EXTRACT_IN_PROC (e) = false;
+ 	  vec_safe_push (INDICANTS (moif), e);
+ 	  break;
+ 	case GA68_EXTRACT_PRIO:
+ 	  DSTR (name);
+ 	  DUINT8 (prio);
+ 	  DOFFSET (mdextra_size);
+ 	  if (mdextra_size != 0)
+ 	    {
+ 	      *errstr = "non-empty mdextra in prio extract";
+ 	      goto decode_error;
+ 	    }
+ 	  EXTRACT_KIND (e) = GA68_EXTRACT_PRIO;
+ 	  EXTRACT_SYMBOL (e) = ggc_strdup (name);
+ 	  EXTRACT_MODE (e) = NO_MOID;
+ 	  EXTRACT_PRIO (e) = prio;
+ 	  EXTRACT_VARIABLE (e) = false;
+ 	  EXTRACT_IN_PROC (e) = false;
+ 	  vec_safe_push (PRIOS (moif), e);
+ 	  break;
+ 	case GA68_EXTRACT_OPER:
+ 	  DSTR (name);
+ 	  DOFFSET (mode_offset);
+ 	  DOFFSET (mdextra_size);
+ 	  if (mdextra_size != 2)
+ 	    {
+ 	      *errstr = "mdextra size should be 2 in oper extract";
+ 	      goto decode_error;
+ 	    }
+ 	  DUINT8 (variable);
+ 	  DUINT8 (in_proc);
+ 	  EXTRACT_KIND (e) = GA68_EXTRACT_OPER;
+ 	  EXTRACT_SYMBOL (e) = ggc_strdup (name);
+ 	  EXTRACT_MODE (e) = (*(encoded_modes.get (mode_offset)))->moid;
+ 	  EXTRACT_PRIO (e) = 0;
+ 	  EXTRACT_VARIABLE (e) = variable;
+ 	  EXTRACT_IN_PROC (e) = in_proc;
+ 	  vec_safe_push (OPERATORS (moif), e);
+ 	  break;
+ 	default:
+ 	  *errstr = "invalid marker in extract";
+ 	  goto decode_error;
+ 	  break;
+ 	}
+ 
+       /* Sanity check.  */
+       if (pos != extract_end)
+ 	{
+ 	  *errstr = "invalid extract size";
+ 	  goto decode_error;
+ 	}
+     }
+ 
+   /* Sanity check.  */
+   if (pos != extracts_table_end)
+     {
+       *errstr = "invalid extracts table size";
+       goto decode_error;
+     }
+ 
+   *errstr = NULL;
+   *ppos = pos;
+   return true;
+  decode_error:
+   if (*errstr == NULL)
+     *errstr = "error decoding extract";
+   return false;
+ }
+ 
+ /* Decode the given exports data into moifs, add them to the TOP_MOIF list, and
+    return true.  If there is a decoding error then put an explicative message
+    in *ERRSTR and return false.  */
+ 
+ static bool
+ a68_decode_moifs (const char *data, size_t size, const char **errstr)
+ {
+   MOIF_T *moif_list = NO_MOIF;
+   size_t pos = 0;
+ 
+   uint8_t magic1, magic2;
+   uint16_t version;
+   char *name, *prelude, *postlude;
+ 
+   while (pos < size)
+     {
+       MOIF_T *moif = a68_moif_new (NULL /* name */);
+       NEXT (moif) = moif_list;
+       moif_list = moif;
+ 
+       size_t moif_pos = pos;
+       DUINT8 (magic1);
+       DUINT8 (magic2);
+       if (magic1 != A68_EXPORT_MAGIC1 || magic2 != A68_EXPORT_MAGIC2)
+ 	{
+ 	  *errstr = "invalid magic number";
+ 	  goto decode_error;
+ 	}
+ 
+       DUINT16 (version);
+       if (version != 1)
+ 	{
+ 	  *errstr = "invalid a68 exports version";
+ 	  goto decode_error;
+ 	}
+ 
+       DSTR (name);
+       DSTR (prelude);
+       DSTR (postlude);
+       NAME (moif) = name;
+       PRELUDE (moif) = prelude;
+       POSTLUDE (moif) = postlude;
+ 
+       encoded_modes_map_t encoded_modes (16);
+ 
+       /* Decode the modes table.
+ 	 This installs the resulting moids in MOIF.  */
+       if (!a68_decode_modes (moif, encoded_modes, data, size, pos, moif_pos, &pos, errstr))
+ 	goto decode_error;
+ 
+       /* Decode the extracts table.
+ 	 This installs the resulting tags in MOIF.  */
+       if (!a68_decode_extracts (moif, encoded_modes, data, size, pos, &pos, errstr))
+ 	goto decode_error;
+ 
+       /* We don't need the encoded modes anymore.  */
+       for (auto entry : encoded_modes)
+ 	{
+ 	  struct encoded_mode *em = entry.second;
+ 	  encoded_mode_free (em);
+ 	}
+     }
+ 
+   /* Add the moifs in moif_list to the global list of moifs.  */
+   /* XXX error and fail on duplicates?  */
+   {
+     MOIF_T *end = TOP_MOIF (&A68_JOB);
+     if (end == NO_MOIF)
+       TOP_MOIF (&A68_JOB) = moif_list;
+     else
+       {
+ 	while (NEXT (end) != NO_MOIF)
+ 	  FORWARD (end);
+ 	NEXT (end) = moif_list;
+       }
+   }
+ 
+   return true;
+  decode_error:
+   if (*errstr == NULL)
+     *errstr = "premature end of data";
+   return false;
+ }
+ 
+ /* Get a moif with the exports for module named MODULE.  If no exports can be
+    found then return NULL.
+ 
+    If BASENAME is not NULL then it specifies the basefile of the file to open
+    for the module exports: BASENAME.o, libBASENAME.so, etc.  If BASENAME is
+    NULL then the filename is derived from the module name.  */
+ 
+ MOIF_T *
+ a68_open_packet (const char *module, const char *basename)
+ {
+   /* We may have a suitable moif already decoded for the requested module.  If
+      so, use it.  */
+ 
+   MOIF_T *moif = TOP_MOIF (&A68_JOB);
+   while (moif != NO_MOIF)
+     {
+       if (strcmp (NAME (moif), module) == 0)
+ 	break;
+       FORWARD (moif);
+     }
+ 
+   /* If we didn't find already decoded exports for the requested module, look
+      in the modules location maps to see if there is an entry for MODULE.  If
+      there is one, use the specified filename.  Otherwise canonicalize the
+      module name to a file name.  */
+ 
+   if (moif == NO_MOIF)
+     {
+       char *filename;
+       if (basename != NULL)
+ 	filename = xstrdup (basename);
+       else
+ 	{
+ 	  const char **pfilename = A68_MODULE_FILES->get (module);
+ 	  if (pfilename == NULL)
+ 	    {
+ 	      /* Turn the module indicant in MODULE to lower-case.  */
+ 	      filename = (char *) alloca (strlen (module) + 1);
+ 	      size_t i = 0;
+ 	      for (; i < strlen (module); i++)
+ 		filename[i] = TOLOWER (module[i]);
+ 	      filename[i] = '\0';
+ 	    }
+ 	  else
+ 	    {
+ 	      size_t len = strlen (*pfilename) + 1;
+ 	      filename = (char *) alloca (len);
+ 	      memcpy (filename, *pfilename, len);
+ 	    }
+ 	}
+ 
+       /* Try to read exports data in a buffer.  */
+       char *exports_data;
+       size_t exports_data_size;
+       exports_data = a68_get_packet_exports (std::string (filename),
+ 					     std::string ("."),
+ 					     &exports_data_size);
+       if (exports_data == NULL)
+ 	return NULL;
+ 
+       /* Got some data.  Decode it into a list of moif.  */
+       const char *errstr = NULL;
+       if (!a68_decode_moifs (exports_data, exports_data_size, &errstr))
+ 	{
+ 	  a68_error (NO_NODE, "%s", errstr);
+ 	  return NULL;
+ 	}
+ 
+       /* The androids we are looking for are likely to be now in the global
+ 	 list.  */
+       moif = TOP_MOIF (&A68_JOB);
+       while (moif != NO_MOIF && strcmp (NAME (moif), module) != 0)
+ 	FORWARD (moif);
+     }
+ 
+   /* If we got a moif, we need to make sure that it doesn't introduce new modes
+      that are equivalent to any mode in the compiler's mode list.  If it does,
+      we replace the mode everywhere in the moif.  */
+ 
+   if (moif != NO_MOIF)
+     {
+       for (MOID_T *m : MODES (moif))
+ 	{
+ 	  MOID_T *r = a68_search_equivalent_mode (m);
+ 	  if (r != NO_MOID)
+ 	    {
+ 	      a68_replace_equivalent_mode (MODES (moif), m, r);
+ 
+ 	      /* Update extracts to reflect the replacement.  */
+ 	      for (EXTRACT_T *e : INDICANTS (moif))
+ 		{
+ 		  if (EXTRACT_MODE (e) == m)
+ 		    EXTRACT_MODE (e) = r;
+ 		}
+ 
+ 	      for (EXTRACT_T *e : IDENTIFIERS (moif))
+ 		{
+ 		  if (EXTRACT_MODE (e) == m)
+ 		    EXTRACT_MODE (e) = r;
+ 		}
+ 
+ 	      for (EXTRACT_T *e : OPERATORS (moif))
+ 		{
+ 		  if (EXTRACT_MODE (e) == m)
+ 		    EXTRACT_MODE (e) = r;
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   return moif;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-lang.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-lang.cc
*** gcc-15.2.0/gcc/algol68/a68-lang.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-lang.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,806 ----
+ /* Language-dependent hooks for Algol 68.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "toplev.h"
+ #include "langhooks.h"
+ #include "langhooks-def.h"
+ #include "target.h"
+ #include "stringpool.h"
+ #include "debug.h"
+ #include "diagnostic.h"
+ #include "opts.h"
+ #include "machmode.h"
+ #include "stor-layout.h" /* For layout_type */
+ #include "vec.h"
+ 
+ #include "a68.h"
+ 
+ /* Global state for the Algol 68 front end.  */
+ 
+ A68_T a68_common;
+ 
+ /* Types expected by gcc's garbage collector.
+    These types exist to allow language front-ends to
+    add extra information in gcc's parse tree data structure. */
+ 
+ struct GTY(()) lang_type
+ {
+   MOID_T * moid;
+ };
+ 
+ struct GTY(()) lang_decl
+ {
+   NODE_T * node;
+ };
+ 
+ /* Language-specific identifier information.  This must include a
+    tree_identifier.  */
+ struct GTY(()) lang_identifier
+ {
+   struct tree_identifier common;
+ };
+ 
+ 
+ struct GTY(()) language_function
+ {
+   int dummy;
+ };
+ 
+ /* The Algol68 frontend Type AST for GCC type NODE.  */
+ #define TYPE_LANG_FRONTEND(NODE) \
+   (TYPE_LANG_SPECIFIC (NODE) \
+    ? TYPE_LANG_SPECIFIC (NODE)->type : NULL)
+ 
+ /* The resulting tree type.  */
+ 
+ union GTY((desc ("TREE_CODE (&%h.generic) == IDENTIFIER_NODE"),
+             chain_next ("CODE_CONTAINS_STRUCT (TREE_CODE (&%h.generic), "
+                         "TS_COMMON) ? ((union lang_tree_node *) TREE_CHAIN "
+                         "(&%h.generic)) : NULL"))) lang_tree_node
+ {
+   union tree_node GTY((tag ("0"),
+ 		       desc ("tree_node_structure (&%h)"))) generic;
+   struct lang_identifier GTY ((tag ("1"))) identifier;
+ };
+ 
+ /* Allocate and return a lang specific structure for type tree nodes.  */
+ 
+ struct lang_type *
+ a68_build_lang_type (MOID_T *moid)
+ {
+   tree ctype = CTYPE (moid);
+   struct lang_type *lt = ctype ? TYPE_LANG_SPECIFIC (ctype) : NULL;
+ 
+   if (lt == NULL)
+     lt = (struct lang_type *) ggc_cleared_alloc <struct lang_type> ();
+   if (lt->moid == NULL)
+     lt->moid = moid;
+   return lt;
+ }
+ 
+ /* Allocate and return a lang specific structure for decl tree nodes.  */
+ 
+ struct lang_decl *
+ a68_build_lang_decl (NODE_T *node)
+ {
+   tree cdecl = CDECL (node);
+   struct lang_decl *ld = cdecl ? DECL_LANG_SPECIFIC (cdecl) : NULL;
+ 
+   if (ld == NULL)
+     ld = (struct lang_decl *) ggc_cleared_alloc <struct lang_decl> ();
+   if (ld->node == NULL)
+     ld->node = node;
+   return ld;
+ }
+ 
+ /* Get the front-end mode associated with the given TYPE.  If no mode is
+    associated then this function returns NO_MODE.  */
+ 
+ MOID_T *
+ a68_type_moid (tree type)
+ {
+   gcc_assert (TYPE_LANG_SPECIFIC (type) != NULL
+ 	      && TYPE_LANG_SPECIFIC (type)->moid != NO_MOID);
+   return TYPE_LANG_SPECIFIC (type)->moid;
+ }
+ 
+ /* Build the type trees in a68_global_trees.  */
+ 
+ static void
+ a68_build_a68_type_nodes (void)
+ {
+   /* VOID */
+   a68_void_type = make_node (RECORD_TYPE);
+   TYPE_NAME (a68_void_type) = get_identifier ("void%");
+   TYPE_FIELDS (a68_void_type) = NULL_TREE;
+   TYPE_READONLY (a68_void_type) = 1;
+   TYPE_CXX_ODR_P (a68_void_type) = 1;
+   layout_type (a68_void_type);
+ 
+   /* BOOL */
+   a68_bool_type = boolean_type_node;
+ 
+   /* CHAR */
+   a68_char_type = uint32_type_node;
+ 
+   /* SHORT SHORT INT
+      SHORT INT
+      INT */
+   a68_short_short_int_type = signed_char_type_node;
+   a68_short_int_type = short_integer_type_node;
+   a68_int_type = integer_type_node;
+ 
+   /* LONG INT */
+   if (int_size_in_bytes (long_integer_type_node)
+       > int_size_in_bytes (a68_int_type))
+     a68_long_int_type = long_integer_type_node;
+   else if (int_size_in_bytes (long_long_integer_type_node)
+ 	   > int_size_in_bytes (a68_int_type))
+     a68_long_int_type = long_long_integer_type_node;
+   else
+     a68_long_int_type = a68_int_type;
+ 
+   /* LONG LONG INT */
+   if (int_size_in_bytes (long_integer_type_node)
+       > int_size_in_bytes (a68_long_int_type))
+     a68_long_long_int_type = long_integer_type_node;
+   else if (int_size_in_bytes (long_long_integer_type_node)
+ 	   > int_size_in_bytes (a68_long_int_type))
+     a68_long_long_int_type = long_long_integer_type_node;
+   else
+     a68_long_long_int_type = a68_long_int_type;
+ 
+   /* SHORT SHORT BITS
+      SHORT BITS
+      BITS */
+   a68_short_short_bits_type = unsigned_char_type_node;
+   a68_short_bits_type = short_unsigned_type_node;
+   a68_bits_type = unsigned_type_node;
+ 
+   /* LONG BITS */
+   if (int_size_in_bytes (long_unsigned_type_node)
+       > int_size_in_bytes (a68_bits_type))
+     a68_long_bits_type = long_unsigned_type_node;
+   else if (int_size_in_bytes (long_long_unsigned_type_node)
+ 	   > int_size_in_bytes (a68_bits_type))
+     a68_long_bits_type = long_long_unsigned_type_node;
+   else
+     a68_long_bits_type = a68_bits_type;
+ 
+   /* LONG LONG BITS */
+   if (int_size_in_bytes (long_unsigned_type_node)
+       > int_size_in_bytes (a68_long_bits_type))
+     a68_long_long_bits_type = long_unsigned_type_node;
+   else if (int_size_in_bytes (long_long_unsigned_type_node)
+ 	   > int_size_in_bytes (a68_long_bits_type))
+     a68_long_long_bits_type = long_long_unsigned_type_node;
+   else
+     a68_long_long_bits_type = a68_long_bits_type;
+ 
+   /* BYTES
+      LONG BYTES */
+   a68_bytes_type = unsigned_type_node;
+   a68_long_bytes_type = long_unsigned_type_node;
+ 
+   /* REAL
+      LONG REAL
+      LONG LONG REAL */
+   a68_real_type = float_type_node;
+   a68_long_real_type = double_type_node;
+   a68_long_long_real_type = long_double_type_node;
+ }
+ 
+ /* Language hooks data structures.  This is the main interface between
+    the GCC front-end and the GCC middle-end/back-end.  A list of
+    language hooks can be found in langhooks.h.  */
+ 
+ #undef LANG_HOOKS_NAME
+ #define LANG_HOOKS_NAME "GNU Algol 68"
+ 
+ /* LANG_HOOKS_INIT gets called to initialize the front-end.
+    Invoked after option handling.  */
+ 
+ static bool
+ a68_init (void)
+ {
+   build_common_tree_nodes (false);
+   a68_build_a68_type_nodes ();
+   targetm.init_builtins ();
+   build_common_builtin_nodes ();
+   a68_install_builtins ();
+ 
+   /* Initialize binding contexts.  */
+   a68_init_ranges ();
+ 
+   /* Set the type of size_t.  */
+   if (TYPE_MODE (long_unsigned_type_node) == ptr_mode)
+     size_type_node = long_unsigned_type_node;
+   else if (TYPE_MODE (long_long_unsigned_type_node) == ptr_mode)
+     size_type_node = long_long_unsigned_type_node;
+   else
+     size_type_node = long_unsigned_type_node;
+ 
+   return true;
+ }
+ 
+ #undef LANG_HOOKS_INIT
+ #define LANG_HOOKS_INIT a68_init
+ 
+ /* LANG_HOOKS_OPTION_LANG_MASK  */
+ 
+ static unsigned int
+ a68_option_lang_mask (void)
+ {
+   return CL_Algol68;
+ }
+ 
+ #undef LANG_HOOKS_OPTION_LANG_MASK
+ #define LANG_HOOKS_OPTION_LANG_MASK a68_option_lang_mask
+ 
+ 
+ /* Return a data type that has machine mode MODE.  If the mode is an
+    integer, then UNSIGNEDP selects between signed and unsigned types.  */
+ 
+ static tree
+ a68_type_for_mode (enum machine_mode mode, int unsignedp)
+ {
+   if (mode == TImode)
+     return unsignedp ? unsigned_intTI_type_node : intTI_type_node;
+ 
+   if (mode == QImode)
+     return unsignedp ? a68_short_short_bits_type :a68_short_short_int_type;
+ 
+   if (mode == HImode)
+     return unsignedp ? a68_short_bits_type : a68_short_int_type;
+ 
+   if (mode == SImode)
+     return unsignedp ? a68_bits_type : a68_int_type;
+ 
+   if (mode == DImode)
+     return unsignedp ? a68_long_bits_type : a68_long_int_type;
+ 
+   if (mode == TYPE_MODE (a68_long_long_bits_type))
+     return unsignedp ? a68_long_long_bits_type : a68_long_long_int_type;
+ 
+   if (mode == TYPE_MODE (a68_real_type))
+     return a68_real_type;
+ 
+   if (mode == TYPE_MODE (a68_long_real_type))
+     return a68_long_real_type;
+ 
+   if (mode == TYPE_MODE (a68_long_long_real_type))
+     return a68_long_long_real_type;
+ 
+   if (mode == TYPE_MODE (build_pointer_type (char_type_node)))
+     return build_pointer_type (char_type_node);
+ 
+   if (mode == TYPE_MODE (build_pointer_type (integer_type_node)))
+     return build_pointer_type (integer_type_node);
+ 
+   for (int i = 0; i < NUM_INT_N_ENTS; i ++)
+     {
+       if (int_n_enabled_p[i] && mode == int_n_data[i].m)
+ 	{
+ 	  if (unsignedp)
+ 	    return int_n_trees[i].unsigned_type;
+ 	  else
+ 	    return int_n_trees[i].signed_type;
+ 	}
+     }
+ 
+   return 0;
+ }
+ 
+ #undef LANG_HOOKS_TYPE_FOR_MODE
+ #define LANG_HOOKS_TYPE_FOR_MODE a68_type_for_mode
+ 
+ 
+ /* Return an integer type with BITS bits of precision,
+    that is unsigned if UNSIGNEDP is nonzero, otherwise signed.  */
+ 
+ static tree
+ a68_type_for_size (unsigned int bits, int unsignedp)
+ {
+   if (unsignedp)
+     {
+       /* Handle TImode as a special case because it is used by some backends
+ 	 (e.g. ARM) even though it is not available for normal use.  */
+       if (bits == TYPE_PRECISION (unsigned_intTI_type_node))
+ 	return unsigned_intTI_type_node;
+ 
+       if (bits <= TYPE_PRECISION (a68_short_short_bits_type))
+ 	return a68_short_short_bits_type;
+       if (bits <= TYPE_PRECISION (a68_short_bits_type))
+ 	return a68_short_bits_type;
+       if (bits <= TYPE_PRECISION (a68_bits_type))
+ 	return a68_bits_type;
+       if (bits <= TYPE_PRECISION (a68_long_bits_type))
+ 	return a68_long_bits_type;
+       if (bits <= TYPE_PRECISION (a68_long_long_bits_type))
+ 	return a68_long_long_bits_type;
+     }
+   else
+     {
+       /* Handle TImode as a special case because it is used by some backends
+          (e.g. ARM) even though it is not available for normal use.  */
+       if (bits == TYPE_PRECISION (intTI_type_node))
+ 	return intTI_type_node;
+ 
+       if (bits <= TYPE_PRECISION (a68_short_short_int_type))
+ 	return a68_short_short_int_type;
+       if (bits <= TYPE_PRECISION (a68_short_int_type))
+ 	return a68_short_int_type;
+       if (bits <= TYPE_PRECISION (a68_int_type))
+ 	return a68_int_type;
+       if (bits <= TYPE_PRECISION (a68_long_int_type))
+ 	return a68_long_int_type;
+       if (bits <= TYPE_PRECISION (a68_long_long_int_type))
+ 	return a68_long_long_int_type;
+     }
+ 
+   for (int i = 0; i < NUM_INT_N_ENTS; ++i)
+     {
+       if (int_n_enabled_p[i] && bits == int_n_data[i].bitsize)
+ 	{
+ 	  if (unsignedp)
+ 	    return int_n_trees[i].unsigned_type;
+ 	  else
+ 	    return int_n_trees[i].signed_type;
+ 	}
+     }
+ 
+   return 0;
+ }
+ 
+ #undef LANG_HOOKS_TYPE_FOR_SIZE
+ #define LANG_HOOKS_TYPE_FOR_SIZE a68_type_for_size
+ 
+ 
+ /* Implements the lang_hooks.decls.global_bindings_p routine for Algol 68.
+    Return true if we are in the global binding level.  */
+ 
+ static bool
+ a68_global_bindings_p (void)
+ {
+   return (current_function_decl == NULL_TREE);
+ }
+ 
+ #undef LANG_HOOKS_GLOBAL_BINDINGS_P
+ #define LANG_HOOKS_GLOBAL_BINDINGS_P a68_global_bindings_p
+ 
+ /* Implements the lang_hooks.decls.getdecls routine.
+    Return the list of declarations of the current level.  */
+ 
+ static tree
+ a68_getdecls (void)
+ {
+   return a68_range_names ();
+ }
+ 
+ #undef LANG_HOOKS_GETDECLS
+ #define LANG_HOOKS_GETDECLS a68_getdecls
+ 
+ /* Return A68_GLOBAL_CONTEXT, but create it first if need be.  */
+ 
+ static tree
+ get_global_context (void)
+ {
+   if (!A68_GLOBAL_CONTEXT)
+     {
+       A68_GLOBAL_CONTEXT = build_translation_unit_decl (NULL_TREE);
+       debug_hooks->register_main_translation_unit (A68_GLOBAL_CONTEXT);
+     }
+ 
+   return A68_GLOBAL_CONTEXT;
+ }
+ 
+ /* Implements the lang_hooks.decls.pushdecl routine.
+    Record DECL as belonging to the current lexical scope.  */
+ 
+ static tree
+ pushdecl (tree decl)
+ {
+   /* Set the context of the decl.  If current_function_decl did not help in
+      determining the context, use global scope.  */
+   if (!DECL_CONTEXT (decl))
+     {
+       if (current_function_decl)
+ 	DECL_CONTEXT (decl) = current_function_decl;
+       else
+ 	DECL_CONTEXT (decl) = get_global_context ();
+     }
+ 
+   /* Put decls on list in reverse order.  */
+   if (TREE_STATIC (decl) || a68_global_bindings_p ())
+     vec_safe_push (A68_GLOBAL_DECLARATIONS, decl);
+   else
+     a68_add_decl (decl);
+ 
+   return decl;
+ }
+ 
+ #undef LANG_HOOKS_PUSHDECL
+ #define LANG_HOOKS_PUSHDECL pushdecl
+ 
+ /* Implements the lang_hooks.init_options routine for language Algol 68.  This
+    initializes the global state for the frontend before calling the option
+    handlers.  */
+ 
+ static void
+ a68_init_options (unsigned int argc ATTRIBUTE_UNUSED,
+ 		  cl_decoded_option *decoded_options ATTRIBUTE_UNUSED)
+ {
+   /* Create an empty module files map and fill in some modules that are
+      provided by the run-time libga68 library.  */
+   A68_MODULE_FILES = hash_map<nofree_string_hash,const char*>::create_ggc (16);
+   A68_MODULE_FILES->empty ();
+   A68_MODULE_FILES->put (ggc_strdup ("TRANSPUT"), ggc_strdup ("ga68"));
+ }
+ 
+ #undef LANG_HOOKS_INIT_OPTIONS
+ #define LANG_HOOKS_INIT_OPTIONS	a68_init_options
+ 
+ 
+ /* Handle -fcheck= option.  */
+ 
+ static void
+ a68_handle_runtime_check_option (const char *arg)
+ {
+   int pos = 0;
+ 
+   while (*arg)
+     {
+       /* We accept entries like -fcheck=nil,,bounds and -fcheck=,all.  */
+       while (*arg == ',')
+ 	arg++;
+ 
+       while (arg[pos] && arg[pos] != ',')
+ 	pos++;
+ 
+       /* Process an option flag in the -fcheck= specification.
+ 
+ 	 "all" means enable all run-time checks.
+ 	 "none" means disable all run-time checks.
+ 
+ 	 Options are processed from left to right, with increase
+ 	 precedende.  */
+ 
+       if (strncmp (arg, "all", pos) == 0)
+ 	{
+ 	  OPTION_NIL_CHECKING (&A68_JOB) = true;
+ 	  OPTION_BOUNDS_CHECKING (&A68_JOB) = true;
+ 	}
+       else if (strncmp (arg, "none", pos) == 0)
+ 	{
+ 	  OPTION_NIL_CHECKING (&A68_JOB) = false;
+ 	  OPTION_BOUNDS_CHECKING (&A68_JOB) = false;
+ 	}
+       else if (strncmp (arg, "nil", pos) == 0)
+ 	OPTION_NIL_CHECKING (&A68_JOB) = true;
+       else if (strncmp (arg, "no-nil", pos) == 0)
+ 	OPTION_NIL_CHECKING (&A68_JOB) = false;
+       else if (strncmp (arg, "bounds", pos) == 0)
+ 	OPTION_BOUNDS_CHECKING (&A68_JOB) = true;
+       else if (strncmp (arg, "no-bounds", pos) == 0)
+ 	OPTION_BOUNDS_CHECKING (&A68_JOB) = false;
+       else
+ 	fatal_error (UNKNOWN_LOCATION,
+ 		     "Argument to %<-fcheck%> is not valid: %s", arg);
+ 
+       /* Process next flag.  */
+       arg += pos;
+       pos = 0;
+     }
+ }
+ 
+ /* Handle Algol 68 specific options.  Return false if we didn't do
+    anything.  */
+ 
+ static bool
+ a68_handle_option (size_t scode,
+ 		   const char *arg,
+ 		   HOST_WIDE_INT value ATTRIBUTE_UNUSED,
+ 		   int kind ATTRIBUTE_UNUSED,
+ 		   location_t loc ATTRIBUTE_UNUSED,
+ 		   const cl_option_handlers *handlers ATTRIBUTE_UNUSED)
+ {
+   opt_code code = (opt_code) scode;
+ 
+   switch (code)
+     {
+     case OPT_fmodules_map:
+     case OPT_fmodules_map_:
+       {
+ 	const char *errmsg;
+ 	if (!a68_process_module_map (arg, &errmsg))
+ 	  error ("invalid argument for %<-fmodules-map%>: %s", errmsg);
+ 	break;
+       }
+     case OPT_fmodules_map_file:
+     case OPT_fmodules_map_file_:
+       {
+ 	FILE *file = fopen (arg, "r");
+ 	if (file == NULL)
+ 	  fatal_error (UNKNOWN_LOCATION,
+ 		       "cannot open modules map file %<%s%>", arg);
+ 	
+ 	ssize_t ssize = a68_file_size (fileno (file));
+ 	if (ssize < 0)
+ 	  fatal_error (UNKNOWN_LOCATION,
+ 		       "cannot determine size of modules map file %<%s%>", arg);
+ 	size_t fsize = ssize;
+ 
+ 	char *buffer = (char *) xmalloc (fsize + 1);
+ 	size_t bytes_read = a68_file_read (fileno (file), buffer, fsize);
+ 	if (bytes_read != fsize)
+ 	  fatal_error (UNKNOWN_LOCATION,
+ 		       "cannot read contents of modules map file %<%s%>", arg);
+ 	buffer[fsize] = '\0';
+ 
+ 	const char *errmsg;
+ 	if (!a68_process_module_map (buffer, &errmsg))
+ 	  fatal_error (UNKNOWN_LOCATION, "%s: %s", arg, errmsg);
+ 	free (buffer);
+ 	break;
+       }
+     case OPT_std_algol68:
+       OPTION_STRICT (&A68_JOB) = 1;
+       break;
+     case OPT_fbrackets:
+       OPTION_BRACKETS (&A68_JOB) = flag_brackets;
+       break;
+     case OPT_fassert:
+       OPTION_ASSERT (&A68_JOB) = flag_assert;
+       break;
+     case OPT_fcheck_:
+       a68_handle_runtime_check_option (arg);
+       break;
+     case OPT_fstropping_:
+       if (value == 0)
+ 	OPTION_STROPPING (&A68_JOB) = UPPER_STROPPING;
+       else
+ 	OPTION_STROPPING (&A68_JOB) = SUPPER_STROPPING;
+       break;
+     case OPT_I:
+       vec_safe_push (A68_INCLUDE_PATHS, arg);
+       vec_safe_push (A68_IMPORT_PATHS, arg);
+       break;
+     case OPT_L:
+       vec_safe_push (A68_IMPORT_PATHS, arg);
+       break;
+     default:
+       break;
+     }
+ 
+   return true;
+ }
+ 
+ #undef LANG_HOOKS_HANDLE_OPTION
+ #define LANG_HOOKS_HANDLE_OPTION a68_handle_option
+ 
+ /* LANG_HOOKS_INIT_OPTIONS_STRUCT is called so the front-end can
+    change some default values in the compiler's option structure.  */
+ 
+ static void
+ a68_init_options_struct (struct gcc_options *opts)
+ {
+   /* Operations are always wrapping in algol68, even on signed
+      integer.  */
+   opts->x_flag_wrapv = 1;
+   /* Do not warn for voiding by default.  */
+   opts->x_warn_algol68_voiding = 0;
+   /* Do not warn for usage of Algol 68 extensions by default.  */
+   opts->x_warn_algol68_extensions = 0;
+   /* Do not warn for potential scope violations by default.  */
+   opts->x_warn_algol68_scope = 0;
+   /* Do not warn for hidden declarations by default.  */
+   opts->x_warn_algol68_hidden_declarations = 0;
+   /* Enable assertions by default.  */
+   OPTION_ASSERT (&A68_JOB) = 1;
+   /* Disable run-time nil checking by default.  */
+   OPTION_NIL_CHECKING (&A68_JOB) = 0;
+   /* Enable run-time bounds checking by default.  */
+   OPTION_BOUNDS_CHECKING (&A68_JOB) = 1;
+   opts->x_flag_assert = 1;
+   /* Allow GNU extensions by default.  */
+   OPTION_STRICT (&A68_JOB) = 0;
+   /* The default stropping regime is SUPPER.  */
+   OPTION_STROPPING (&A68_JOB) = SUPPER_STROPPING;
+ }
+ 
+ #undef LANG_HOOKS_INIT_OPTIONS_STRUCT
+ #define LANG_HOOKS_INIT_OPTIONS_STRUCT a68_init_options_struct
+ 
+ /* Deal with any options that imply the turning on/off of features.  FILENAME
+    is the main input file passed on the command line.  */
+ 
+ static bool
+ a68_post_options (const char **filename ATTRIBUTE_UNUSED)
+ {
+   /* -fbounds-check is equivalent to -fcheck=bounds  */
+   if (flag_bounds_check)
+     OPTION_BOUNDS_CHECKING (&A68_JOB) = true;
+ 
+   /* No psABI change warnings for Algol 68.  */
+   warn_psabi = 0;
+ 
+   return false;
+ }
+ 
+ #undef LANG_HOOKS_POST_OPTIONS
+ #define LANG_HOOKS_POST_OPTIONS	a68_post_options
+ 
+ /* LANG_HOOKS_PARSE_FILE is called to parse the input files.
+ 
+    The input file names are available in the global variables
+    in_fnames and num_in_fnames, and this function is required to
+    create a complete parse tree from them in a global var, then
+    return.  */
+ 
+ MOIF_T *moif;
+ 
+ static void
+ a68_parse_file (void)
+ {
+   if (num_in_fnames != 1)
+     fatal_error (UNKNOWN_LOCATION,
+ 		 "exactly one source file must be specified on the command line");
+ 
+   /* Run the Mailloux parser.  */
+   a68_parser (in_fnames[0]);
+ 
+   if (ERROR_COUNT (&A68_JOB) > 0)
+     goto had_errors;
+ 
+   /* Generate dumps if so requested.  */
+   if (flag_a68_dump_modes)
+     a68_dump_modes (TOP_MOID (&A68_JOB));
+   if (flag_a68_dump_ast)
+     a68_dump_parse_tree (TOP_NODE (&A68_JOB));
+ 
+   /* Lower modes to GENERIC.  */
+   a68_lower_moids (TOP_MOID (&A68_JOB));
+   /* Lower the particular program.  */
+   a68_lower_top_tree (TOP_NODE (&A68_JOB));
+ 
+   if (ERROR_COUNT (&A68_JOB) > 0)
+     goto had_errors;
+ 
+   /* Emit exports information for any compiled module in this packet.  Note
+      this must be done after the low pass.  */
+   a68_do_exports (TOP_NODE (&A68_JOB));
+ 
+   /* Process all file scopes in this compilation, and the external_scope,
+      through wrapup_global_declarations.  */
+   for (unsigned int i = 0; i < vec_safe_length (A68_GLOBAL_DECLARATIONS); i++)
+     {
+       tree decl = vec_safe_address (A68_GLOBAL_DECLARATIONS)[i];
+       wrapup_global_declarations (&decl, 1);
+     }
+ 
+  had_errors:
+   errorcount += ERROR_COUNT (&A68_JOB);
+ }
+ 
+ #undef LANG_HOOKS_PARSE_FILE
+ #define LANG_HOOKS_PARSE_FILE a68_parse_file
+ 
+ /* This hook is called for every GENERIC tree that gets gimplified.
+    Its purpose is to gimplify language specific trees.
+ 
+    At the moment we are not supporting any Algol 68 specific tree, so
+    we just return FALSE.  */
+ 
+ static int
+ a68_gimplify_expr (tree *expr_p ATTRIBUTE_UNUSED,
+                    gimple_seq *pre_p ATTRIBUTE_UNUSED,
+                    gimple_seq *post_p ATTRIBUTE_UNUSED)
+ {
+   return false;
+ }
+ 
+ #undef LANG_HOOKS_GIMPLIFY_EXPR
+ #define LANG_HOOKS_GIMPLIFY_EXPR a68_gimplify_expr
+ 
+ /* This function shall return the printable name of the language.  */
+ 
+ static const char *
+ a68_printable_name (tree decl, int kind ATTRIBUTE_UNUSED)
+ {
+   tree decl_name = DECL_NAME (decl);
+ 
+   if (decl_name == NULL_TREE)
+     return "<unnamed>";
+   else
+     return IDENTIFIER_POINTER (decl_name);
+ }
+ 
+ #undef LANG_HOOKS_DECL_PRINTABLE_NAME
+ #define LANG_HOOKS_DECL_PRINTABLE_NAME a68_printable_name
+ 
+ 
+ /* Return true if a warning should be given about option OPTION, which is for
+    the wrong language, false if it should be quietly ignored.  */
+ 
+ static bool
+ a68_complain_wrong_lang_p (const struct cl_option *option ATTRIBUTE_UNUSED)
+ {
+   return false;
+ }
+ 
+ #undef LANG_HOOKS_COMPLAIN_WRONG_LANG_P
+ #define LANG_HOOKS_COMPLAIN_WRONG_LANG_P a68_complain_wrong_lang_p
+ 
+ /* Create an expression whose value is that of EXPR,
+    converted to type TYPE.  The TREE_TYPE of the value
+    is always TYPE.  This function implements all reasonable
+    conversions; callers should filter out those that are
+    not permitted by the language being compiled.
+ 
+    Note that this function is not used outside the front-end.  This front-end
+    doesn't currently use it at all.  */
+ 
+ tree convert (tree type ATTRIBUTE_UNUSED,
+ 	      tree expr ATTRIBUTE_UNUSED)
+ {
+   gcc_unreachable ();
+ }
+ 
+ /* Implements the lang_hooks.types_compatible_p routine for Algol 68.
+    Compares two types for equivalence in Algol 68.
+    This routine should only return 1 if it is sure, even though the frontend
+    should have already ensured that all types are compatible before handing
+    over the parsed ASTs to the code generator.  */
+ 
+ static int
+ a68_types_compatible_p (tree x, tree y)
+ {
+   MOID_T *mode_x = a68_type_moid (x);
+   MOID_T *mode_y = a68_type_moid (y);
+ 
+   if (mode_x != NO_MOID && mode_y != NO_MOID)
+     return a68_is_equal_modes (mode_x, mode_y, SAFE_DEFLEXING);
+ 
+   return false;
+ }
+ 
+ #undef LANG_HOOKS_TYPES_COMPATIBLE_P
+ #define LANG_HOOKS_TYPES_COMPATIBLE_P a68_types_compatible_p
+ 
+ /* Get a value for the SARIF v2.1.0 "artifact.sourceLanguage" property.  Algol
+    68 is not yet listed in SARIF v2.1.0 Appendix J, but if/when it does, it
+    will likely use this string.  */
+ 
+ const char *
+ a68_get_sarif_source_language (const char *)
+ {
+   return "algol68";
+ }
+ 
+ #undef LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE
+ #define LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE a68_get_sarif_source_language
+ 
+ /* Expands all LANG_HOOKS_x o GCC.  */
+ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
+ 
+ #include "gt-algol68-a68-lang.h"
+ #include "gtype-algol68.h"
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-bits.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-bits.cc
*** gcc-15.2.0/gcc/algol68/a68-low-bits.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-bits.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,415 ----
+ /* Lowering routines for all things related to BITS values.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielind of SKIP for the given BITS mode.  */
+ 
+ tree
+ a68_get_bits_skip_tree (MOID_T *m)
+ {
+   tree type;
+ 
+   if (m == M_BITS)
+     type = a68_bits_type;
+   else if (m == M_LONG_BITS)
+     type = a68_long_bits_type;
+   else if (m == M_LONG_LONG_BITS)
+     type = a68_long_long_bits_type;
+   else if (m == M_SHORT_BITS)
+     type = a68_short_bits_type;
+   else if (m == M_SHORT_SHORT_BITS)
+     type = a68_short_short_bits_type;
+   else
+     gcc_unreachable ();
+ 
+   return build_int_cst (type, 0);
+ }
+ 
+ /* Given a BITS type, compute the number of bits that fit in a value of that
+    type.  The result is an INT.  */
+ 
+ tree
+ a68_bits_width (tree type)
+ {
+   return fold_convert (a68_int_type, TYPE_SIZE (type));
+ }
+ 
+ /* Given a BITS type, compute the maximum value that can be expressed with that
+    type.  */
+ 
+ tree
+ a68_bits_maxbits (tree type)
+ {
+   return fold_convert (type, TYPE_MAX_VALUE (type));
+ }
+ 
+ /* Given a SIZETY INT value VAL, compute and return a SIZETY BITS reflecting
+    its constituent bits.
+ 
+    In strict Algol 68 the BIN of a negative value is BITS (SKIP).
+ 
+    In GNU 68 the BIN of a negative value is the constituent bits of the two's
+    complement of the value.  */
+ 
+ tree
+ a68_bits_bin (MOID_T *m, tree val)
+ {
+   tree type = CTYPE (m);
+ 
+   if (OPTION_STRICT (&A68_JOB))
+     return a68_get_bits_skip_tree (m);
+   else
+     return fold_convert (type, val);
+ }
+ 
+ /* Given a SIZETY BITS value BITS, compute and return the corresponding SIZETY
+    INT.
+ 
+    In strict Algol 68 the ABS of a BITS value reflecting a bit pattern that
+    would correspond a negative integral value is INT (SKIP).
+ 
+    In GNU 68 the ABS of a BITS value reflecting a bit pattern that would
+    correspond a negative integral value is that negative integral value.  */
+ 
+ tree
+ a68_bits_abs (MOID_T *m, tree bits)
+ {
+   tree type = CTYPE (m);
+ 
+   if (OPTION_STRICT (&A68_JOB))
+     {
+       tree integral_val = save_expr (fold_convert (type, bits));
+       return fold_build3 (COND_EXPR,
+ 			  type,
+ 			  fold_build2 (LT_EXPR, type, integral_val,
+ 				       build_int_cst (type, 0)),
+ 			  a68_get_int_skip_tree (m),
+ 			  integral_val);
+     }
+   else
+     return fold_convert (type, bits);
+ }
+ 
+ /* Given a SIZETY BITS value BITS, shorten it into a SIZETY BITS whose tree
+    type is TYPE.  */
+ 
+ tree
+ a68_bits_shorten (tree type, tree bits)
+ {
+   /* This will truncate at the left, which is what is intended.  */
+   return fold_convert (type, bits);
+ }
+ 
+ /* Given a SIZETY BITS value BITS, length it into a SIZETY BITS whose tree type
+    is TYPE.  */
+ 
+ tree
+ a68_bits_leng (tree type, tree bits)
+ {
+   /* This will add zeroes to the left, which is what is intended.  */
+   return fold_convert (type, bits);
+ }
+ 
+ /* Given a SIZETY BITS value BITS, compute and return a new SIZETY BITS whose
+    bits are the logical negation of the bits of BITS.  */
+ 
+ tree
+ a68_bits_not (tree bits)
+ {
+   return fold_build1 (BIT_NOT_EXPR, TREE_TYPE (bits), bits);
+ }
+ 
+ /* Given two SIZETY BITS values BITS1 and BITS2, compute and return a new
+    SIZETY BITS whose bits are the `and' of the bits of BITS1 and
+    BITS2.  */
+ 
+ tree
+ a68_bits_and (tree bits1, tree bits2)
+ {
+   return fold_build2 (BIT_AND_EXPR, TREE_TYPE (bits1), bits1, bits2);
+ }
+ 
+ /* Given two SIZETY BITS values BITS1 and BITS2, compute and return a new
+    SIZETY BITS whose bits are the inclusive-or of the bits of BITS1 and
+    BITS2.  */
+ 
+ tree
+ a68_bits_ior (tree bits1, tree bits2)
+ {
+   return fold_build2 (BIT_IOR_EXPR, TREE_TYPE (bits1), bits1, bits2);
+ }
+ 
+ /* Given two SIZETY BITS values BITS1 and BITS2, compute and return a new
+    SIZETY BITS whose bits are the exclusive-or of the bits of BITS1 and
+    BITS2.  */
+ 
+ tree
+ a68_bits_xor (tree bits1, tree bits2)
+ {
+   return fold_build2 (BIT_XOR_EXPR, TREE_TYPE (bits1), bits1, bits2);
+ }
+ 
+ /* Given a position POS of mode INT and a BITS of mode SIZETY BITS, return a
+    BOOL reflecting the state of the bit occupying the position POS in BITS.
+ 
+    If POS is out of range a run-time error is emitted.  */
+ 
+ tree
+ a68_bits_elem (NODE_T *p, tree pos, tree bits)
+ {
+   pos = save_expr (pos);
+   tree one = build_int_cst (TREE_TYPE (bits), 1);
+ 
+   tree shift = fold_build2 (MINUS_EXPR, bitsizetype,
+ 			    TYPE_SIZE (TREE_TYPE (bits)),
+ 			    fold_convert (bitsizetype, pos));
+   tree elem = fold_build2 (EQ_EXPR,
+ 			   a68_bool_type,
+ 			   fold_build2 (BIT_AND_EXPR,
+ 					TREE_TYPE (bits),
+ 					fold_build2 (RSHIFT_EXPR,
+ 						     TREE_TYPE (bits),
+ 						     bits, shift),
+ 					one),
+ 			   one);
+ 
+   /* Do bounds checking if requested.  */
+   if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+     {
+       unsigned int lineno = NUMBER (LINE (INFO (p)));
+       const char *filename_str = FILENAME (LINE (INFO (p)));
+       tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					    filename_str);
+       tree call = a68_build_libcall (A68_LIBCALL_BITSBOUNDSERROR,
+ 				     void_type_node, 3,
+ 				     filename,
+ 				     build_int_cst (unsigned_type_node, lineno),
+ 				     fold_convert (ssizetype, pos));
+       tree check = fold_build2 (TRUTH_AND_EXPR, integer_type_node,
+ 				fold_build2 (GT_EXPR, integer_type_node,
+ 					     pos, fold_convert (TREE_TYPE (pos), integer_zero_node)),
+ 				fold_build2 (LE_EXPR, integer_type_node,
+ 					     fold_convert (bitsizetype, pos),
+ 					     TYPE_SIZE (TREE_TYPE (bits))));
+ 
+       check = fold_build2_loc (a68_get_node_location (p),
+ 			       TRUTH_ORIF_EXPR,
+ 			       ssizetype,
+ 			       check,
+ 			       fold_build2 (COMPOUND_EXPR, a68_bool_type,
+ 					    call, boolean_false_node));
+       elem = fold_build2 (COMPOUND_EXPR, a68_bool_type,
+ 			  check, elem);
+     }
+ 
+   return elem;
+ }
+ 
+ /* Given two SIZETY BITS values BITS1 and BITS2, return a BOOL value indicating
+    whether all the bits set in BITS1 are also set in BITS2.  */
+ 
+ tree
+ a68_bits_subset (tree bits1, tree bits2)
+ {
+   /* We compute this operation with `A | B == B' as specified by the Report */
+   bits2 = save_expr (bits2);
+   return fold_build2 (EQ_EXPR, a68_bool_type,
+ 		      fold_build2 (BIT_IOR_EXPR, TREE_TYPE (bits1), bits1, bits2),
+ 		      bits2);
+ }
+ 
+ /* Rotate the bits in BITS according to the value of SHIFT:
+ 
+    - If ABS(SHIFT) >= bits_width, the result is all bits clear.
+    - If SHIFT is positive, BITS gets shifted SHIFT bits to the right.
+    - If SHIFT is negative, BITS gets shifted ABS(SHIFT) bits to the left.
+ */
+ 
+ tree
+ a68_bits_shift (NODE_T *p, tree shift, tree bits)
+ {
+   shift = save_expr (shift);
+   bits = save_expr (bits);
+ 
+   tree shift_type = TREE_TYPE (shift);
+   tree bits_type = TREE_TYPE (bits);
+   tree abs_shift = save_expr (fold_build1 (ABS_EXPR, TREE_TYPE (shift), shift));
+ 
+   tree shifted_right = fold_build2 (RSHIFT_EXPR, bits_type, bits, abs_shift);
+   tree shifted_left = fold_build2 (LSHIFT_EXPR, bits_type, bits, abs_shift);
+ 
+   tree shifted_bits = fold_build3 (COND_EXPR, TREE_TYPE (bits),
+ 				   fold_build2 (GE_EXPR, shift_type,
+ 						shift, build_zero_cst (shift_type)),
+ 				   shifted_right, shifted_left);
+ 
+   return fold_build2 (COMPOUND_EXPR, TREE_TYPE (bits),
+ 		      bits,
+ 		      fold_build3_loc (a68_get_node_location (p),
+ 				       COND_EXPR,
+ 				       TREE_TYPE (bits),
+ 				       fold_build2 (LT_EXPR, TREE_TYPE (abs_shift),
+ 						    abs_shift, a68_bits_width (bits_type)),
+ 				       shifted_bits, build_zero_cst (bits_type)));
+ }
+ 
+ /* Given two bits values, build an expression that calculates whether A = B.  */
+ 
+ tree
+ a68_bits_eq (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two bits values, build an expression that calculates whether A /=
+    B.  */
+ 
+ tree
+ a68_bits_ne (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Set the bit NUMBIT in BITS.
+ 
+    NUMBIT is zero based and counts bits from least significative to most
+    significative, i.e. from "right" to "left".  If NUMBIT is not in range then
+    this is a nop. */
+ 
+ tree
+ a68_bits_set (MOID_T *m, tree bits, tree numbit, location_t loc)
+ {
+   tree bits_type = CTYPE (m);
+   tree int_type = TREE_TYPE (numbit);
+ 
+   bits = save_expr (bits);
+   numbit = save_expr (numbit);
+ 
+   tree mask = fold_build2 (BIT_IOR_EXPR, bits_type,
+ 			   bits,
+ 			   fold_build2 (LSHIFT_EXPR,
+ 					bits_type,
+ 					build_int_cst (bits_type, 1),
+ 					numbit));
+   tree res = fold_build2 (BIT_IOR_EXPR, bits_type, bits, mask);
+   tree in_range = fold_build2 (TRUTH_AND_EXPR,
+ 			       int_type,
+ 			       fold_build2 (GE_EXPR, int_type,
+ 					    numbit, build_zero_cst (int_type)),
+ 			       fold_build2 (LT_EXPR, int_type,
+ 					    numbit, a68_bits_width (bits_type)));
+ 
+   return fold_build3_loc (loc, COND_EXPR,
+ 			  bits_type,
+ 			  in_range, res, bits);
+ }
+ 
+ /* Clear the bit NUMBIT in BITS.
+ 
+    NUMBIT is zero based and counts bits from least significative to most
+    significative, i.e. from "right" to "left".  If NUMBIT is not in range then
+    this is a nop. */
+ 
+ tree
+ a68_bits_clear (MOID_T *m, tree bits, tree numbit, location_t loc)
+ {
+   tree bits_type = CTYPE (m);
+   tree int_type = TREE_TYPE (numbit);
+ 
+   bits = save_expr (bits);
+   numbit = save_expr (numbit);
+ 
+   tree mask = fold_build1 (BIT_NOT_EXPR,
+ 			   bits_type,
+ 			   fold_build2 (LSHIFT_EXPR,
+ 					bits_type,
+ 					build_int_cst (bits_type, 1),
+ 					numbit));
+   tree res = fold_build2 (BIT_AND_EXPR, bits_type, bits, mask);
+   tree in_range = fold_build2 (TRUTH_AND_EXPR,
+ 			       int_type,
+ 			       fold_build2 (GE_EXPR, int_type,
+ 					    numbit, build_zero_cst (int_type)),
+ 			       fold_build2 (LT_EXPR, int_type,
+ 					    numbit, a68_bits_width (bits_type)));
+   return fold_build3_loc (loc, COND_EXPR,
+ 			  bits_type,
+ 			  in_range, res, bits);
+ }
+ 
+ /* Test the bit NUMBIT in BITS.
+ 
+    NUMBIT is zero based and counts bits from least significative to most
+    significative, i.e. from "right" to "left".  If NUMBIT is not in range then
+    the operator yields false.  */
+ 
+ tree
+ a68_bits_test (tree bits, tree numbit, location_t loc)
+ {
+   tree bits_type = TREE_TYPE (bits);
+   tree int_type = TREE_TYPE (numbit);
+ 
+   bits = save_expr (bits);
+   numbit = save_expr (numbit);
+ 
+   tree mask = fold_build2 (BIT_AND_EXPR, bits_type,
+ 			   bits,
+ 			   fold_build2 (LSHIFT_EXPR,
+ 					bits_type,
+ 					build_one_cst (bits_type),
+ 					numbit));
+   tree res = fold_build2 (NE_EXPR,
+ 			  a68_bool_type,
+ 			  fold_build2 (BIT_AND_EXPR, bits_type, bits, mask),
+ 			  build_int_cst (bits_type, 0));
+   tree in_range = fold_build2 (TRUTH_AND_EXPR,
+ 			       int_type,
+ 			       fold_build2 (GE_EXPR, int_type,
+ 					    numbit, build_zero_cst (int_type)),
+ 			       fold_build2 (LT_EXPR, int_type,
+ 					    numbit, a68_bits_width (bits_type)));
+ 
+   return fold_build3_loc (loc, COND_EXPR,
+ 			  a68_bool_type,
+ 			  in_range, res, build_zero_cst (a68_bool_type));
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-bools.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-bools.cc
*** gcc-15.2.0/gcc/algol68/a68-low-bools.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-bools.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,77 ----
+ /* Lowering routines for all things related to BOOL values.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielind of SKIP of a BOOL mode.  */
+ 
+ tree
+ a68_get_bool_skip_tree (void)
+ {
+   return build_int_cst (a68_bool_type, 0);
+ }
+ 
+ /* The absolute value of a BOOL is a non-zero INT for TRUE and zero for
+    FALSE.  */
+ 
+ tree
+ a68_bool_abs (tree val)
+ {
+   return fold_convert (a68_int_type, val);
+ }
+ 
+ /* Given two boolean values, build an expression that calculates whether A = B.  */
+ 
+ tree
+ a68_bool_eq (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two boolean values, build an expression that calculates whether A /=
+    B.  */
+ 
+ tree
+ a68_bool_ne (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-builtins.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-builtins.cc
*** gcc-15.2.0/gcc/algol68/a68-low-builtins.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-builtins.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,533 ----
+ /* GCC built-ins support for Algol 68.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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 "tree.h"
+ #include "fold-const.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Define a built-in function.  */
+ 
+ static void
+ local_define_builtin (const char *name, tree type, enum built_in_function code,
+                       const char *library_name, int ecf_flags)
+ {
+   tree decl;
+ 
+   decl = add_builtin_function (name, type, code, BUILT_IN_NORMAL,
+ 			       library_name, NULL_TREE);
+   set_call_expr_flags (decl, ecf_flags);
+   set_builtin_decl (code, decl, true);
+ }
+ 
+ /* Install the GCC built-ins so the front-end can use them.  */
+ 
+ void
+ a68_install_builtins (void)
+ {
+   if (!builtin_decl_explicit_p (BUILT_IN_IROUNDF))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_iroundf", ftype, BUILT_IN_IROUNDF,
+ 			    "iroundf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LROUNDF))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lroundf", ftype, BUILT_IN_LROUNDF,
+ 			    "lroundf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLROUNDF))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llroundf", ftype, BUILT_IN_LLROUNDF,
+ 			    "llroundf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_IROUND))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_iround", ftype, BUILT_IN_IROUND,
+ 			    "iround", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LROUND))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lround", ftype, BUILT_IN_LROUND,
+ 			    "lround", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLROUND))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llround", ftype, BUILT_IN_LLROUND,
+ 			    "llround", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_IROUNDL))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_iroundl", ftype, BUILT_IN_IROUNDL,
+ 			    "iroundl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LROUNDL))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lroundl", ftype, BUILT_IN_LROUNDL,
+ 			    "lroundl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLROUNDL))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llroundl", ftype, BUILT_IN_LLROUNDL,
+ 			    "llroundl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_IFLOORF))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_ifloorf", ftype, BUILT_IN_IFLOORF,
+ 			    "ifloorf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LFLOORF))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lfloorf", ftype, BUILT_IN_LFLOORF,
+ 			    "lfloorf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLFLOORF))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llfloorf", ftype, BUILT_IN_LLFLOORF,
+ 			    "llfloorf", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_IFLOOR))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_ifloor", ftype, BUILT_IN_IFLOOR,
+ 			    "ifloor", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LFLOOR))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lfloor", ftype, BUILT_IN_LFLOOR,
+ 			    "lfloor", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLFLOOR))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llfloor", ftype, BUILT_IN_LLFLOOR,
+ 			    "llfloor", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_IFLOORL))
+     {
+       tree ftype = build_function_type_list (integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_ifloorl", ftype, BUILT_IN_IFLOORL,
+ 			    "ifloorl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LFLOORL))
+     {
+       tree ftype = build_function_type_list (long_integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_lfloorl", ftype, BUILT_IN_LFLOORL,
+ 			    "lfloorl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LLFLOORL))
+     {
+       tree ftype = build_function_type_list (long_long_integer_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_llfloorl", ftype, BUILT_IN_LLFLOORL,
+ 			    "llfloorl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POWF))
+     {
+       tree ftype = build_function_type_list (float_type_node,
+ 					     float_type_node, float_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_powf", ftype, BUILT_IN_POWF,
+ 			    "powf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POWIF))
+     {
+       tree ftype = build_function_type_list (float_type_node,
+ 					     float_type_node, integer_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_powif", ftype, BUILT_IN_POWIF,
+ 			    "powif", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POW))
+     {
+       tree ftype = build_function_type_list (double_type_node,
+ 					     double_type_node, double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_pow", ftype, BUILT_IN_POW,
+ 			    "pow", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POWI))
+     {
+       tree ftype = build_function_type_list (double_type_node,
+ 					     double_type_node, integer_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_powi", ftype, BUILT_IN_POWI,
+ 			    "powi", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POWL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node, long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_powl", ftype, BUILT_IN_POWL,
+ 			    "powl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_POWIL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node, integer_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_powil", ftype, BUILT_IN_POWIL,
+ 			    "powil", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_CALLOC))
+     {
+       tree ftype = build_function_type_list (ptr_type_node,
+ 					     size_type_node, size_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_calloc", ftype, BUILT_IN_CALLOC,
+ 			    "calloc", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_MEMCPY))
+     {
+       tree ftype = build_function_type_list (ptr_type_node,
+ 					     ptr_type_node, const_ptr_type_node, size_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_memcpy", ftype, BUILT_IN_MEMSET,
+ 			    "memcpy", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_MEMSET))
+     {
+       tree ftype = build_function_type_list (ptr_type_node,
+ 					     ptr_type_node, integer_type_node, size_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_memset", ftype, BUILT_IN_MEMSET,
+ 			    "memset", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SQRTF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_sqrtf", ftype, BUILT_IN_SQRTF,
+ 			    "sqrtf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SQRT))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_sqrt", ftype, BUILT_IN_SQRT,
+ 			    "sqrt", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SQRTL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_sqrtl", ftype, BUILT_IN_SQRTL,
+ 			    "sqrtl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_TANF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_tanf", ftype, BUILT_IN_TANF,
+ 			    "tanf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_TAN))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_tan", ftype, BUILT_IN_TAN,
+ 			    "tan", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_TANL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_tanl", ftype, BUILT_IN_TANL,
+ 			    "tanl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SINF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_sinf", ftype, BUILT_IN_SINF,
+ 			    "sinf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SIN))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_sin", ftype, BUILT_IN_SIN,
+ 			    "sin", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_SINL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_sinl", ftype, BUILT_IN_SINL,
+ 			    "sinl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_COSF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_cosf", ftype, BUILT_IN_COSF,
+ 			    "cosf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_COS))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_cos", ftype, BUILT_IN_COS,
+ 			    "cos", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_COSL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_cosl", ftype, BUILT_IN_COSL,
+ 			    "cosl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ACOSF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_acosf", ftype, BUILT_IN_ACOSF,
+ 			    "acosf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ACOS))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_acos", ftype, BUILT_IN_ACOS,
+ 			    "acos", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ACOSL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_acosl", ftype, BUILT_IN_ACOSL,
+ 			    "acosl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ASINF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_asinf", ftype, BUILT_IN_ASINF,
+ 			    "asinf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ASIN))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_asin", ftype, BUILT_IN_ASIN,
+ 			    "asin", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ASINL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_asinl", ftype, BUILT_IN_ASINL,
+ 			    "asinl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ATANF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_atanf", ftype, BUILT_IN_ATANF,
+ 			    "atanf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ATAN))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_atan", ftype, BUILT_IN_ATAN,
+ 			    "atan", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_ATANL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_atanl", ftype, BUILT_IN_ATANL,
+ 			    "atanl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOGF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_logf", ftype, BUILT_IN_LOGF,
+ 			    "logf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOG))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_log", ftype, BUILT_IN_LOG,
+ 			    "log", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOGL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_logl", ftype, BUILT_IN_LOGL,
+ 			    "logl", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOG10F))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_log10f", ftype, BUILT_IN_LOG10F,
+ 			    "log10f", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOG10))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_log10", ftype, BUILT_IN_LOG10,
+ 			    "log10", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_LOG10L))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_log10l", ftype, BUILT_IN_LOG10L,
+ 			    "log10l", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_EXPF))
+     {
+       tree ftype = build_function_type_list (float_type_node, float_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_expf", ftype, BUILT_IN_EXPF,
+ 			    "expf", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_EXP))
+     {
+       tree ftype = build_function_type_list (double_type_node, double_type_node, NULL_TREE);
+       local_define_builtin ("__builtin_exp", ftype, BUILT_IN_EXP,
+ 			    "exp", ECF_NOTHROW | ECF_LEAF);
+     }
+ 
+   if (!builtin_decl_explicit_p (BUILT_IN_EXPL))
+     {
+       tree ftype = build_function_type_list (long_double_type_node,
+ 					     long_double_type_node,
+ 					     NULL_TREE);
+       local_define_builtin ("__builtin_expl", ftype, BUILT_IN_EXPL,
+ 			    "expl", ECF_NOTHROW | ECF_LEAF);
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-chars.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-chars.cc
*** gcc-15.2.0/gcc/algol68/a68-low-chars.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-chars.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,170 ----
+ /* Lowering routines for all things related to STRINGs.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielind of SKIP of a CHAR mode.  */
+ 
+ tree
+ a68_get_char_skip_tree (void)
+ {
+   return build_int_cst (a68_char_type, ' ');
+ }
+ 
+ /* Return the maximum valid character code that can be stored in a CHAR.  */
+ tree
+ a68_char_max (void)
+ {
+   /* 0x10FFFF is the maximum valid code point in Unicode.  */
+   return build_int_cst (a68_char_type, 0x10FFFF);
+ }
+ 
+ /* Given an integral value, if it denotes a char code build the corresponding
+    CHAR.  Otherwise raise a run-time error.  */
+ 
+ tree
+ a68_char_repr (NODE_T *p, tree val)
+ {
+   /* UCS-4 (UTF-32) encodes the Unicode code points using the identity
+      function.  Valid code points are in the ranges [U+0000,U+D7FF] and
+      [U+E000,U+10FFFF].  */
+ 
+   tree c = save_expr (val);
+   tree val_type = TREE_TYPE (val);
+ 
+   /* (c >= 0 && c < 0xd800) */
+   tree range1 = fold_build2 (TRUTH_AND_EXPR, integer_type_node,
+ 			     fold_build2 (GE_EXPR, integer_type_node,
+ 					  c, fold_convert (val_type, integer_zero_node)),
+ 			     fold_build2 (LT_EXPR, integer_type_node,
+ 					  c, build_int_cst (val_type, 0xd800)));
+   /* (c >= 0xe000 && c < 0x110000) */
+   tree range2 = fold_build2 (TRUTH_AND_EXPR, integer_type_node,
+ 			     fold_build2 (GE_EXPR, integer_type_node,
+ 					  c, build_int_cst (val_type, 0xe000)),
+ 			     fold_build2 (LT_EXPR, integer_type_node,
+ 					  c, build_int_cst (val_type, 0x110000)));
+   tree notvalid = fold_build1 (TRUTH_NOT_EXPR,
+ 			       integer_type_node,
+ 			       fold_build2 (TRUTH_OR_EXPR, integer_type_node,
+ 					    range1, range2));
+ 
+   /* Call to the runtime run-time error handler.  */
+   unsigned int lineno = NUMBER (LINE (INFO (p)));
+   const char *filename_str = FILENAME (LINE (INFO (p)));
+   tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					    filename_str);
+   tree call = a68_build_libcall (A68_LIBCALL_INVALIDCHARERROR,
+ 				 void_type_node, 3,
+ 				 filename,
+ 				 build_int_cst (unsigned_type_node, lineno),
+ 				 fold_convert (a68_int_type, c));
+ 
+   /* Return the REPR of the given integer value, or raise run-time error.  */
+   return fold_build2 (COMPOUND_EXPR, a68_char_type,
+ 		      fold_build3 (COND_EXPR, integer_type_node,
+ 				   notvalid,
+ 				   call, integer_zero_node),
+ 		      fold_convert (a68_char_type, c));
+ }
+ 
+ /* the ABS of a CHAR is an INT containing an unique value for each permissable
+    char value.  */
+ 
+ tree
+ a68_char_abs (tree val)
+ {
+   return fold_convert (a68_int_type, val);
+ }
+ 
+ /* Given two characters, build an expression that calculates whether A = B.  */
+ 
+ tree
+ a68_char_eq (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two characters, build an expression that calculates whether A /=
+    B.  */
+ 
+ tree
+ a68_char_ne (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two characters, build an expression that calculates
+    whether A < B.  */
+ 
+ tree
+ a68_char_lt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two characters, build an expression that calculates
+    whether A <= B.  */
+ 
+ tree
+ a68_char_le (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two characters, build an expression that calculates
+    whether A > B.  */
+ 
+ tree
+ a68_char_gt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two characters, build an expression that calculates
+    whether A >= B.  */
+ 
+ tree
+ a68_char_ge (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-clauses.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-clauses.cc
*** gcc-15.2.0/gcc/algol68/a68-low-clauses.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-clauses.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1468 ----
+ /* Lower clauses to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Given a serial_clause node P, return whether it performs dynamic stack
+    allocations.
+ 
+    This function allocates for the fact that the bottom-up parser generates
+    successively nested serial clauses like
+ 
+      SERIAL_CLAUSE
+        SERIAL_CLAUSE
+         ...
+ 
+    the outer of which corresponds to a single serial clause in the source code,
+    but it is the inner ones annotated by the dsa pass.  */
+ 
+ static bool
+ serial_clause_dsa (NODE_T *p)
+ {
+   for (NODE_T *s = p; SUB (s) &&  IS (s, SERIAL_CLAUSE); s = SUB (s))
+     {
+       if (DYNAMIC_STACK_ALLOCS (s))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Lower one or more labels.
+ 
+      label : defining identifier, colon symbol;
+              label, defining identifier, colon symbol;
+ 
+    A label lowers into a LABEL_EXPR and the declaration of a LABEL_DECL in the
+    current block and bind.  Lists of labels get returned in nested compound
+    expressions.  */
+ 
+ tree
+ a68_lower_label (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree expr = NULL_TREE;
+ 
+   if (IS (SUB (p), LABEL))
+     expr = a68_lower_tree (SUB (p), ctx);
+ 
+   NODE_T *defining_identifier;
+ 
+   if (IS (SUB (p), DEFINING_IDENTIFIER))
+     defining_identifier = SUB (p);
+   else
+     {
+       gcc_assert (IS (NEXT (SUB (p)), DEFINING_IDENTIFIER));
+       defining_identifier = NEXT (SUB (p));
+     }
+ 
+   /* Create LABEL_DECL if necessary.  */
+   tree label_decl = TAX_TREE_DECL (TAX (defining_identifier));
+   if (label_decl == NULL_TREE)
+     {
+       label_decl = build_decl (a68_get_node_location (defining_identifier),
+ 			       LABEL_DECL,
+ 			       a68_get_mangled_identifier (NSYMBOL (defining_identifier)),
+ 			       void_type_node);
+       TAX_TREE_DECL (TAX (defining_identifier)) = label_decl;
+     }
+ 
+   a68_add_decl (label_decl);
+ 
+   /* Return the accummulated LABEL_EXPRs.  */
+   tree label_expr = build1 (LABEL_EXPR, void_type_node, label_decl);
+   if (expr)
+     return fold_build2_loc (a68_get_node_location (p),
+ 			    COMPOUND_EXPR,
+ 			    void_type_node,
+ 			    expr, label_expr);
+   else
+     return label_expr;
+ }
+ 
+ /* Lower a labeled unit.
+ 
+      labeled unit : label, unit.
+ 
+    Lower the label, then the unit.  Return them in a compound expression.  */
+ 
+ tree
+ a68_lower_labeled_unit (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree label_expr = a68_lower_tree (SUB (p), ctx);
+   tree unit_expr = a68_lower_tree (NEXT (SUB (p)), ctx);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (unit_expr),
+ 			  label_expr, unit_expr);
+ }
+ 
+ /* Lower a completer.
+ 
+      exit_symbol
+ 
+    This handler replaces the last expression in stmt_list with a statement
+    assigning it to the clause result of the current serial clause, then jump to
+    the exit label of the current serial clause. Note that a completer is a
+    separator so stmt_list contains at least one expression at this point.  Note
+    that a completer can only appear inside a serial clause.
+ 
+    This function always returns NULL_TREE, so the traversing code shall always
+    be careful to travese on these nodes explicitly and ignore the returned
+    value.  */
+ 
+ tree
+ a68_lower_completer (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   a68_add_completer ();
+   return NULL_TREE;
+ }
+ 
+ /* Lower an initialiser series.
+ 
+    Parse tree:
+ 
+    initialiser series : serial clause, semi symbol, declaration list;
+                         initialiser series, declaration list;
+ 			initialiser series, semi symbol, unit;
+ 			initialiser series, semi symbol, labeled unit;
+ 			initialiser series, semi symbol, declaration list.
+ 
+    GENERIC:
+ 
+    Traverse subtree adding units and labels to STMT_LIST, and declarations to
+    BLOCK.
+ 
+    This function always returns NULL_TREE, so the traversing code shall always
+    be careful to travese on these nodes explicitly and ignore the returned
+    value.  */
+ 
+ tree
+ a68_lower_initialiser_series (NODE_T *p, LOW_CTX_T ctx)
+ {
+   for (NODE_T *s = SUB (p); s != NO_NODE; FORWARD (s))
+     {
+       if (!IS (s, SEMI_SYMBOL))
+ 	a68_add_stmt (a68_lower_tree (s, ctx));
+     }
+   return NULL_TREE;
+ }
+ 
+ /* Lower a serial clause.
+ 
+      serial clause : labeled unit;
+                      unit;
+ 		     serial clause, semi symbol, unit;
+ 		     serial clause, exit symbol, labeled unit;
+ 		     serial clause, semi_symbol, declaration list;
+ 		     initialiser series, semi symbol, unit;
+ 		     initialiser series, semi symbol, labeled unit.
+ 
+    Ranges:
+ 
+      serial-clause
+      ------------- R1
+ 
+    See the function body to see the lowering actions.
+ 
+    This function always returns NULL_TREE, so the traversing code shall always
+    be careful to travese on these nodes explicitly and ignore the returned
+    value.  */
+ 
+ tree
+ a68_lower_serial_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (IS (SUB (p), SERIAL_CLAUSE))
+     {
+       /* Traverse down for side-effects.  */
+       (void) a68_lower_tree (SUB (p), ctx);
+ 
+       if (IS (NEXT (SUB (p)), EXIT_SYMBOL))
+ 	{
+ 	  /* Traverse the completer for side-effects.  This turns the last
+ 	     expression in the current statements list into an assignment.  */
+ 	  (void) a68_lower_tree (NEXT (SUB (p)), ctx);
+ 	  /* Now append the result of the labeled unit to the current
+ 	     statements list.  */
+ 	  a68_add_stmt (a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ 	}
+       else
+ 	{
+ 	  /* Append the result of either the unit or the declarations list in
+ 	     the current statements list.  */
+ 	  a68_add_stmt (a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ 	}
+     }
+   else if (IS (SUB (p), INITIALISER_SERIES))
+     {
+       /* Traverse down for side-effects.  */
+       (void) a68_lower_tree (SUB (p), ctx);
+ 
+       /* Append the result of either the unit or the declarations list in the
+ 	 current statements list.  */
+       a68_add_stmt (a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+     }
+   else
+     {
+       /* Append the result of either the unit or labeled unit in the current
+ 	 statements list.  */
+       a68_add_stmt (a68_lower_tree (SUB (p), ctx));
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower a loop clause.
+ 
+      loop clause : for part, from part, by part, to part, while part, alt do part;
+                    for part, from part, by part, while part, alt do part;
+ 		   for part, from part, while part, alt do part;
+ 		   for part, by part, to part, while part, alt do part;
+ 		   for part, by part, to part, while part, alt do part;
+ 		   for part, by part, while part, alt do part;
+ 		   for part, while part, alt do part;
+ 		   for part, from part, by part, to part, alt do part;
+ 		   for part, from part, by part, alt do part;
+ 		   for part, from part, alt do part;
+ 		   for part, by part, to part, alt do part;
+ 		   for part, by part, alt do part;
+ 		   for part, to part, alt do part,
+ 		   for part, alt do part;
+ 		   from part, by part, to part, while part, alt do part;
+ 		   from part, by part, while aprt, alt do part;
+ 		   from part, to part, while aprt, alt do part;
+ 		   from part, while part, alt do part;
+ 		   from part, by part, to part, alt do part;
+ 		   from part, by part, alt do part;
+ 		   from part, to part, alt do part;
+ 		   from part, alt do part;
+ 		   by part, to part, while part, alt do part;
+ 		   by part, while part, alt do part;
+ 		   by part, to part, alt do part;
+ 		   by part, alt do part;
+ 		   to part, while part, alt do part;
+ 		   to part, alt do part;
+ 		   while part, alt do part;
+ 		   do part.
+ */
+ 
+ tree
+ a68_lower_loop_clause (NODE_T *p ATTRIBUTE_UNUSED,
+ 		       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   NODE_T *s = SUB (p);
+   bool while_part = false;
+   bool has_iterator = false;
+   tree iterator = NULL_TREE;
+   tree while_condition = NULL_TREE;
+   tree do_part = NULL_TREE;
+   tree from_part = NULL_TREE;
+   tree by_part = NULL_TREE;
+   tree to_part = NULL_TREE;
+   tree overflow = NULL_TREE;
+   NODE_T *iterator_defining_identifier = NO_NODE;
+ 
+   if (IS (s, FOR_PART))
+     {
+       /* Get the defining identifier.  */
+       iterator_defining_identifier = NEXT (SUB (s));
+       has_iterator = true;
+       FORWARD (s);
+     }
+ 
+   if (IS (s, FROM_PART))
+     {
+       /* Lower the unit.  */
+       from_part = a68_lower_tree (NEXT (SUB (s)), ctx);
+       has_iterator = true;
+       FORWARD (s);
+     }
+ 
+   if (IS (s, BY_PART))
+     {
+       /* Lower the unit.  */
+       by_part = a68_lower_tree (NEXT (SUB (s)), ctx);
+       has_iterator = true;
+       FORWARD (s);
+     }
+ 
+   if (IS (s, TO_PART))
+     {
+       /* Lower the unit.  */
+       to_part = a68_lower_tree (NEXT (SUB (s)), ctx);
+       has_iterator = true;
+       FORWARD (s);
+     }
+ 
+   if (has_iterator)
+     {
+       /* Introduce a range that spans until the end of the loop clause.   */
+       a68_push_range (M_VOID);
+ 
+       /* Compute some defaults for not specified loop parts.  Note that to_part
+ 	 defaults to max_int or min_int depending on the signedness of
+ 	 by_part.  */
+       if (from_part == NULL_TREE)
+ 	from_part = integer_one_node;
+       if (by_part == NULL_TREE)
+ 	by_part = integer_one_node;
+       if (to_part == NULL_TREE)
+ 	{
+ 	  to_part = fold_build3 (COND_EXPR,
+ 				 a68_bool_type,
+ 				 fold_build2 (LT_EXPR, a68_int_type, by_part,
+ 					      build_int_cst (a68_int_type, 0)),
+ 				 a68_int_minval (a68_int_type),
+ 				 a68_int_maxval (a68_int_type));
+ 	}
+ 
+       /* If the user has specified an explicit iterator in the form of a
+ 	 defining-identifier in a for-part, use it as the name in the iterator
+ 	 declaration and install the resulting declaration in the taxes table
+ 	 in order for applied identifiers in the rest of the loop to find it.
+ 	 Otherwise, the iterator is not directly accessible by the
+ 	 programmer.  */
+       const char *iterator_name = (iterator_defining_identifier == NO_NODE
+ 				   ? "iterator%"
+ 				   : NSYMBOL (iterator_defining_identifier));
+       iterator = a68_lower_tmpvar (iterator_name, a68_int_type, from_part);
+       if (iterator_defining_identifier != NO_NODE)
+ 	TAX_TREE_DECL (TAX (iterator_defining_identifier)) = iterator;
+ 
+       /* The from_part and to_part expressions shall be evaluated once and once
+ 	 only.  The expression for from_part is evaluated only once in the
+ 	 initialization expression for iterator% above, but we need to put
+ 	 to_part in a temporary since it is used in the loop body.  */
+       to_part = a68_lower_tmpvar ("to_part%", TREE_TYPE (to_part), to_part);
+ 
+       /* We need to detect overflow/underflow of the iterator.  */
+       overflow = a68_lower_tmpvar ("overflow%", boolean_type_node,
+ 				   boolean_false_node);
+     }
+ 
+   if (IS (s, WHILE_PART))
+     {
+       while_part = true;
+       /* Introduce a range that spans until the end of the loop clause.  */
+       a68_push_range (M_VOID);
+       /* Process the enquiry clause, which yields a BOOL.  */
+       a68_push_stmt_list (M_BOOL);
+       (void) a68_lower_tree (NEXT (SUB (s)), ctx);
+       while_condition = a68_pop_stmt_list ();
+       FORWARD (s);
+     }
+ 
+   /* DO part.  */
+   gcc_assert (IS (s, ALT_DO_PART) || IS (s, DO_PART));
+ 
+   /* Build the loop's body.  */
+   a68_push_range (NULL);
+   {
+     /* First lower the loop exit condition.  */
+     if (has_iterator || while_part)
+       {
+ 	tree exit_condition = NULL_TREE;
+ 	/* IF overflow OREL (by_part < 0 THEN iterator < to_part ELSE iterator > to_part) FI */
+ 	if (has_iterator)
+ 	  exit_condition = fold_build2 (TRUTH_ORIF_EXPR, boolean_type_node,
+ 					overflow,
+ 					fold_build3 (COND_EXPR,
+ 						     a68_bool_type,
+ 						     fold_build2 (LT_EXPR, a68_int_type, by_part,
+ 								  build_int_cst (a68_int_type, 0)),
+ 						     fold_build2 (LT_EXPR, a68_int_type,
+ 								  iterator, to_part),
+ 						     fold_build2 (GT_EXPR, a68_int_type,
+ 								  iterator, to_part)));
+ 	/* NOT while_condition */
+ 	if (while_part)
+ 	  {
+ 	    tree while_exit_condition = fold_build1 (TRUTH_NOT_EXPR,
+ 						     a68_bool_type,
+ 						     while_condition);
+ 	    if (has_iterator)
+ 	      exit_condition = fold_build2 (TRUTH_ORIF_EXPR, a68_bool_type,
+ 					    exit_condition, while_exit_condition);
+ 	    else
+ 	      exit_condition = while_exit_condition;
+ 	  }
+ 
+ 	if (exit_condition != NULL_TREE)
+ 	  a68_add_stmt (fold_build1 (EXIT_EXPR, void_type_node, exit_condition));
+       }
+ 
+     /* Serial clauses in DO .. OD do not yield any value.  */
+     bool dsa = serial_clause_dsa (NEXT (SUB (s)));
+     bool local = NON_LOCAL (NEXT (SUB (s))) == NO_TABLE;
+     a68_push_serial_clause_range (M_VOID, dsa && local);
+     (void) a68_lower_tree (NEXT (SUB (s)), ctx);
+     do_part = a68_pop_serial_clause_range ();
+     a68_add_stmt (do_part);
+ 
+     if (has_iterator)
+       {
+ 	/* Increment the iterator by BY_PART.  Detect overflow.
+ 	   Given a + b = sum, overflows = ((~((a) ^ (b)) & ((a) ^ (sum))) < 0)
+ 	   See OVERFLOW_SUM_SIGN in double-int.cc for an explanation
+ 	   of this formula.
+ 	*/
+ 	tree type = TREE_TYPE (iterator);
+ 	tree a = iterator;
+ 	tree b = save_expr (by_part);
+ 	tree sum = fold_build2 (PLUS_EXPR, type, a, b);
+ 	a68_add_stmt (fold_build2 (MODIFY_EXPR, boolean_type_node,
+ 				   overflow,
+ 				   fold_build2 (LT_EXPR, boolean_type_node,
+ 						fold_build2 (BIT_AND_EXPR, type,
+ 							     fold_build1 (BIT_NOT_EXPR, type,
+ 									  fold_build2 (BIT_XOR_EXPR, type,
+ 										       a, b)),
+ 							     fold_build2 (BIT_XOR_EXPR, type,
+ 									  a, sum)),
+ 						build_int_cst (a68_int_type, 0))));
+ 	a68_add_stmt (fold_build2 (MODIFY_EXPR, type, iterator, sum));
+       }
+   }
+   tree loop_body = a68_pop_range ();
+ 
+   /* Finally build the LOOP_EXPR and exit the introduced ranges.  */
+   tree loop_clause = fold_build1_loc (a68_get_node_location (p),
+ 				      LOOP_EXPR, a68_void_type, loop_body);
+   if (while_part)
+     {
+       a68_add_stmt (loop_clause);
+       loop_clause = a68_pop_range ();
+     }
+   if (has_iterator)
+     {
+       a68_add_stmt (loop_clause);
+       loop_clause = a68_pop_range ();
+     }
+ 
+   return loop_clause;
+ }
+ 
+ /* Lower a conformity clause.
+ 
+      conformity clause : case part, conformity in part, out part, esac symbol;
+                          case part, conformity in part, esac symbol;
+ 			 case part, conformity in part, conformity ouse part;
+                          open part, conformity choice, choice, close symbol;
+                          open part, conformity choice, close symbol;
+ 			 open part, conformity choice, brief conformity ouse part.
+ 
+      conformity choice : then bar symbol, specified unit list;
+                          then bar symbol, specified unit.
+ 
+      specified unit list : specified unit list, comma symbol, specified unit;
+                            specified unit list, specified unit.
+ 
+      specified unit : specifier, colon symbol, unit.
+ 
+      specifier : open symbol, declarer, identifier, close symbol;
+                  open symbol, declarer, close symbol;
+ 		 open symbol, void symbol, close symbol.
+ */
+ 
+ static void
+ lower_unite_case_unit (NODE_T *p,
+ 		       tree enquiry, MOID_T *enquiry_mode,
+ 		       tree result, tree exit_label, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, SPECIFIER))
+ 	{
+ 	  MOID_T *spec_moid = MOID (NEXT (SUB (p)));
+ 	  NODE_T *spec_identifier = NEXT (NEXT (SUB (p)));
+ 	  NODE_T *spec_unit = NEXT (NEXT (p));
+ 	  const char *specifier_identifier_name = NULL;
+ 	  if (IS (spec_identifier, IDENTIFIER))
+ 	    specifier_identifier_name = NSYMBOL (spec_identifier);
+ 
+ 	  tree overhead = a68_union_overhead (enquiry);
+ 	  tree spec_value = NULL_TREE;
+ 	  tree entry_selected = NULL_TREE;
+ 	  if (IS_UNION (spec_moid))
+ 	    {
+ 	      /* The spec_moid is an united mode, which must be unitable to the
+ 		 enquiry_mode.  */
+ 	      gcc_assert (a68_is_unitable (spec_moid, enquiry_mode,
+ 					   SAFE_DEFLEXING));
+ 
+ 	      /* Build the entry_selected expression.
+ 
+ 		 For each mode in spec_moid, determine the corresponding index
+ 		 in enquiry_mode and add a check for it to the expression.  */
+ 	      for (PACK_T *pack = PACK (spec_moid); pack != NO_PACK; FORWARD (pack))
+ 		{
+ 		  int index = a68_united_mode_index (enquiry_mode, MOID (pack));
+ 		  tree expr = fold_build2 (EQ_EXPR,
+ 					   boolean_type_node,
+ 					   overhead,
+ 					   build_int_cst (TREE_TYPE (overhead), index));
+ 		  if (entry_selected == NULL_TREE)
+ 		    entry_selected = expr;
+ 		  else
+ 		    entry_selected = fold_build2 (TRUTH_OR_EXPR,
+ 						  boolean_type_node,
+ 						  entry_selected,
+ 						  expr);
+ 		}
+ 
+ 	      /* The spec_value is an union of mode spec_moid, with the
+ 		 overhead translated from enquiry_mode.  */
+ 	      tree spec_overhead
+ 		= a68_union_translate_overhead (enquiry_mode, overhead, spec_moid);
+ 	      a68_push_range (spec_moid);
+ 	      spec_value = a68_lower_tmpvar ("spec_value%",
+ 					     CTYPE (spec_moid),
+ 					     a68_get_skip_tree (spec_moid));
+ 	      a68_add_stmt (a68_union_set_overhead (spec_value, spec_overhead));
+ 	      tree from_cunion = a68_union_cunion (enquiry);
+ 	      tree to_cunion = a68_union_cunion (spec_value);
+ 	      a68_add_stmt (a68_lower_memcpy (fold_build1 (ADDR_EXPR,
+ 							   build_pointer_type (TREE_TYPE (to_cunion)),
+ 							   to_cunion),
+ 					      fold_build1 (ADDR_EXPR,
+ 							   build_pointer_type (TREE_TYPE (from_cunion)),
+ 							   from_cunion),
+ 					      size_in_bytes (TREE_TYPE (to_cunion))));
+ 	      a68_add_stmt (spec_value);
+ 	      spec_value = a68_pop_range ();
+ 	    }
+ 	  else
+ 	    {
+ 	      int index = a68_united_mode_index (enquiry_mode, spec_moid);
+ 	      spec_value = a68_union_alternative (enquiry, index);
+ 	      entry_selected = fold_build2 (EQ_EXPR,
+ 					    TREE_TYPE (overhead),
+ 					    overhead,
+ 					    build_int_cst (TREE_TYPE (overhead), index));
+ 	    }
+ 
+ 	  a68_push_range (M_VOID);
+ 	  {
+ 	    /* If the enquiry value is ascribed to an identifier in the case
+ 	       entry then create a suitable declaration and turn the identifier
+ 	       into a defining identifier.  */
+ 	    if (specifier_identifier_name)
+ 	      {
+ 		tree united_value = a68_lower_tmpvar (specifier_identifier_name,
+ 						      CTYPE (spec_moid), spec_value);
+ 		TAX_TREE_DECL (TAX (spec_identifier)) = united_value;
+ 	      }
+ 
+ 	    /* Set result% to the lowering of the unit and jump to the end of
+ 	       the enquiry clause.  */
+ 	    a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (result),
+ 				       result, a68_lower_tree (spec_unit, ctx)));
+ 	    a68_add_stmt (fold_build1 (GOTO_EXPR,
+ 				       void_type_node,
+ 				       exit_label));
+ 	    a68_add_stmt (a68_get_skip_tree (M_VOID));
+ 	  }
+ 	  tree process_entry = a68_pop_range ();
+ 
+ 	  /* IF index = overhead THEN process entry FI */
+ 	  a68_add_stmt (fold_build3 (COND_EXPR,
+ 				     a68_void_type,
+ 				     entry_selected,
+ 				     process_entry,
+ 				     a68_get_skip_tree (M_VOID)));
+ 
+ 	  FORWARD (p); /* Skip specifier.  */
+ 	  FORWARD (p); /* Skip unit.  */
+ 	  /* The unit is skipped in the for loop post-action.  */
+ 	}
+       else
+ 	lower_unite_case_unit (SUB (p),
+ 			       enquiry, enquiry_mode,
+ 			       result, exit_label, ctx);
+     }
+ }
+ 
+ tree
+ a68_lower_conformity_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *conformity_clause_mode = MOID (p);
+ 
+   /* CASE or OUSE.  */
+   NODE_T *s = SUB (p);
+   NODE_T *enquiry_node = NEXT (SUB (s));
+   MOID_T *enquiry_mode = MOID (SUB (s));
+ 
+   /* Push a binding environment for the enquiry clause.  */
+   a68_push_range (conformity_clause_mode);
+ 
+   /* Process the enquiry clause and put the resulting value in enquiry%.  */
+   a68_push_stmt_list (enquiry_mode);
+   (void) a68_lower_tree (enquiry_node, ctx);
+   tree enquiry = a68_lower_tmpvar ("enquiry%",
+ 				   CTYPE (enquiry_mode),
+ 				   a68_pop_stmt_list ());
+ 
+   /* Create a decl for result%.  */
+   tree result = a68_lower_tmpvar ("result%",
+ 				  CTYPE (conformity_clause_mode),
+ 				  a68_get_skip_tree (conformity_clause_mode));
+ 
+   /* Create an exit label.  */
+   tree exit_label = build_decl (UNKNOWN_LOCATION,
+ 				LABEL_DECL,
+ 				get_identifier ("exit_label%"),
+ 				void_type_node);
+   DECL_CONTEXT (exit_label) = a68_range_context ();
+   a68_add_decl (exit_label);
+   a68_add_decl_expr (fold_build1 (DECL_EXPR, TREE_TYPE (exit_label), exit_label));
+ 
+   /* IN.  */
+   FORWARD (s);
+   lower_unite_case_unit (NEXT (SUB (s)),
+ 			 enquiry, enquiry_mode,
+ 			 result, exit_label, ctx);
+ 
+   /* OUT.  */
+   FORWARD (s);
+   switch (ATTRIBUTE (s))
+     {
+     case CHOICE:
+     case OUT_PART:
+       {
+ 	bool dsa = serial_clause_dsa (NEXT (SUB (s)));
+ 	bool local = NON_LOCAL (NEXT (SUB (s))) == NO_TABLE;
+ 	a68_push_serial_clause_range (conformity_clause_mode, dsa && local);
+ 
+ 	(void) a68_lower_tree (NEXT (SUB (s)), ctx);
+ 	a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (result),
+ 				   result, a68_pop_serial_clause_range ()));
+ 	a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+ 	break;
+       }
+     case CLOSE_SYMBOL:
+     case ESAC_SYMBOL:
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 TREE_TYPE (result),
+ 				 result,
+ 				 a68_get_skip_tree (conformity_clause_mode)));
+       a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+       break;
+     default:
+       /* Recurse.
+ 
+ 	 Note that the parser guarantees that the embedded CASE clause is a
+ 	 conformity clause, and that its mode is the same than the containing
+ 	 clause, but it doesn't annotate the mode in the tree node so we have
+ 	 to do it here.  */
+       MOID (s) = conformity_clause_mode;
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 TREE_TYPE (result),
+ 				 result,
+ 				 a68_lower_conformity_clause (s, ctx)));
+       a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+       break;
+     }
+ 
+   /* ESAC */
+   a68_add_stmt (build1 (LABEL_EXPR, void_type_node, exit_label));
+   a68_add_stmt (result);
+   return a68_pop_range ();
+ }
+ 
+ /* Lower a case clause.
+ 
+      case clause : open part, case choice clause, choice, close symbol;
+                    open part, case choice clause, close symbol;
+ 		   open part, case shoice clause, brief ouse part;
+ 		   case part, case in part, out part, esac symbol;
+ 		   case part, case in part, esac symbol;
+ 		   case part, case in part, case ouse part;
+ */
+ 
+ static void
+ lower_int_case_unit (NODE_T *p,
+ 		     tree enquiry, MOID_T *enquiry_mode,
+ 		     tree result, tree exit_label, int *count,
+ 		     LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  a68_push_range (M_VOID);
+ 	  {
+ 	    /* Set result% to the lowering of the unit and jump to the end of
+ 	       the enquiry clause.  */
+ 	    a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (result),
+ 				       result, a68_lower_tree (p, ctx)));
+ 	    a68_add_stmt (fold_build1 (GOTO_EXPR,
+ 				       void_type_node,
+ 				       exit_label));
+ 	    a68_add_stmt (a68_get_skip_tree (M_VOID));
+ 	  }
+ 	  tree process_entry = a68_pop_range ();
+ 
+ 	  /* IF count = enquiry THEN process entry FI */
+ 	  a68_add_stmt (fold_build3 (COND_EXPR,
+ 				     a68_void_type,
+ 				     fold_build2 (EQ_EXPR,
+ 						  TREE_TYPE (enquiry),
+ 						  enquiry,
+ 						  build_int_cst (TREE_TYPE (enquiry), *count)),
+ 				     process_entry,
+ 				     a68_get_skip_tree (M_VOID)));
+ 	  *count += 1;
+ 	}
+       else
+ 	lower_int_case_unit (SUB (p),
+ 			     enquiry, enquiry_mode,
+ 			     result, exit_label, count, ctx);
+     }
+ }
+ 
+ tree
+ a68_lower_case_clause (NODE_T *p ATTRIBUTE_UNUSED,
+ 		       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   MOID_T *case_clause_mode = MOID (p);
+ 
+   /* CASE or OUSE  */
+   NODE_T *s = SUB (p);
+   NODE_T *enquiry_node = NEXT (SUB (s));
+   MOID_T *enquiry_mode = M_INT;
+ 
+   /* Push a bingding environment fo the case clause.  */
+   a68_push_range (case_clause_mode);
+ 
+   /* Process the enquiry clause and put the result value in enquiry%.  */
+   a68_push_stmt_list (enquiry_mode);
+   (void) a68_lower_tree (enquiry_node, ctx);
+   tree enquiry = a68_lower_tmpvar ("enquiry%",
+ 				   CTYPE (enquiry_mode),
+ 				   a68_pop_stmt_list ());
+   /* Create a decl for result%.  */
+   tree result = a68_lower_tmpvar ("result%",
+ 				  CTYPE (case_clause_mode),
+ 				  a68_get_skip_tree (case_clause_mode));
+ 
+   /* Create an exit label.  */
+   tree exit_label = build_decl (UNKNOWN_LOCATION,
+ 				LABEL_DECL,
+ 				get_identifier ("exit_label%"),
+ 				void_type_node);
+   DECL_CONTEXT (exit_label) = a68_range_context ();
+   a68_add_decl (exit_label);
+   a68_add_decl_expr (fold_build1 (DECL_EXPR, TREE_TYPE (exit_label), exit_label));
+ 
+   /* IN.  */
+   FORWARD (s);
+   int count = 1;
+   lower_int_case_unit (NEXT (SUB (s)),
+ 		       enquiry, enquiry_mode,
+ 		       result, exit_label, &count, ctx);
+ 
+   /* OUT.  */
+   FORWARD (s);
+   switch (ATTRIBUTE (s))
+     {
+     case CHOICE:
+     case OUT_PART:
+       {
+ 	bool dsa = serial_clause_dsa (NEXT (SUB (s)));
+ 	bool local = NON_LOCAL (NEXT (SUB (s))) == NO_TABLE;
+ 	a68_push_serial_clause_range (case_clause_mode, dsa && local);
+ 
+ 	(void) a68_lower_tree (NEXT (SUB (s)), ctx);
+ 	a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (result),
+ 				   result, a68_pop_serial_clause_range ()));
+ 	a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+ 	break;
+       }
+     case CLOSE_SYMBOL:
+     case ESAC_SYMBOL:
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 TREE_TYPE (result),
+ 				 result,
+ 				 a68_get_skip_tree (case_clause_mode)));
+       a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+       break;
+     default:
+       /* Recurse.
+ 
+ 	 Note that the parser guarantees that the embedded CASE clause has the
+ 	 same mode than the containing clause, but it doesn't annotate the OUSE
+ 	 node with its mode so we have to do it here.  */
+       MOID (s) = case_clause_mode;
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 TREE_TYPE (result),
+ 				 result,
+ 				 a68_lower_case_clause (s, ctx)));
+       a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, exit_label));
+       break;
+     }
+ 
+   /* ESAC */
+   a68_add_stmt (build1 (LABEL_EXPR, void_type_node, exit_label));
+   a68_add_stmt (result);
+   return a68_pop_range ();
+ }
+ 
+ /* Lower an enquiry clause.
+ 
+      enquiry clause : unit;
+                       enquiry clause, semi symbol, unit;
+                       enquiry clause, comma symbol, unit;
+ 		      initialiser series, semi symbol, unit.
+ 
+    The units and declarations in the enquiry clause get lowered into
+    expressions and declaration nodes which are added to the current serial
+    clause.
+ 
+    This function always returns NULL_TREE, so the traversing code shall always
+    be careful to travese on these nodes explicitly and ignore the returned
+    value.  */
+ 
+ tree
+ a68_lower_enquiry_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (IS (SUB (p), UNIT))
+     {
+       a68_add_stmt (a68_lower_tree (SUB (p), ctx));
+     }
+   else if (IS (SUB (p), ENQUIRY_CLAUSE))
+     {
+       (void) a68_lower_tree (SUB (p), ctx);
+       gcc_assert (IS (NEXT (NEXT (SUB (p))), UNIT));
+       a68_add_stmt (a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+     }
+   else
+     {
+       gcc_assert (IS (SUB (p), INITIALISER_SERIES));
+       gcc_assert (IS (NEXT (NEXT (SUB (p))), UNIT));
+       (void) a68_lower_tree (SUB (p), ctx);
+       a68_add_stmt (a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower a conditional clause.
+ 
+      conditional clause : open part, choice, choice, close symbol;
+                           open part, choice, close symbol;
+ 			  open part, choice, brief elif part;
+ 			  if part, then part, else part, fi symbol;
+ 			  if part, then part, elif part;
+ 			  if part, then part, fi symbol.
+ 
+      if part : if symbol, enquiry clause;
+                if symbol, initialiser series.
+ 
+      then part : then symbol, serial clause;
+                  then symbol, initialiser series.
+ 
+      elif part : elif if part, then part, else part, fi symbol;
+                  elif if part, then part, fi symbol;
+ 		 elif if part, then part, elif part.
+ 
+      else part : else symbol, serial clause;
+                  else symbol, initialiser series.
+ 
+      elif if part : elif symbol, enquiry clause.
+ 
+      open part : open symbol, enquiry clause.
+ 
+      choice : then bar symbol, serial clause;
+               then bar symbol initialiser series.
+ 
+      brief elif part : else open part, choice, choice, close symbol;
+                        else open part, choice, close symbol;
+ 		       else open part, choice, bief elif part.
+ 
+      else open part : else bar symbol, enquiry clause;
+                       else bar symbol, initialiser series.
+ 
+    Ranges:
+ 
+      IF enquiry-clause THEN expr ELSE expr FI
+                             --- R2    ---- R3
+      ---------------------------------------- R1
+ 
+    The conditional clause lowers into:
+ 
+      BIND_EXPR
+        BIND_EXPR_VARS -> delcls in enquiry clause.
+        BIND_EXPR_BODY
+          STMT_LIST
+            enquiry% = ...;
+            COND_EXPR (enquiry%, then_expr, else_expr)  */
+ 
+ tree
+ a68_lower_conditional_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree then_expr = NULL_TREE;
+   tree else_expr = NULL_TREE;
+ 
+   MOID_T *conditional_clause_mode = MOID (p);
+   MOID_T *effective_rows_mode = NO_MOID;
+   bool is_rows = false;
+ 
+   /* Push a binding environment for the conditional.  */
+   a68_push_range (is_rows ? effective_rows_mode : conditional_clause_mode);
+ 
+   /* Create a decl for %enquiry and add it to the bind's declaration chain.  */
+   tree enquiry_decl = build_decl (UNKNOWN_LOCATION,
+ 				  VAR_DECL,
+ 				  NULL, /* Set below.  */
+ 				  a68_bool_type);
+   char *enquiry_name = xasprintf ("enquiry%d%%", DECL_UID(enquiry_decl));
+   DECL_NAME (enquiry_decl) = get_identifier (enquiry_name);
+   free (enquiry_name);
+   DECL_INITIAL (enquiry_decl) = a68_get_skip_tree (M_BOOL);
+   a68_add_decl (enquiry_decl);
+ 
+   /* Add a DECL_EXPR for enquiry_decl%  */
+   a68_add_stmt (fold_build1 (DECL_EXPR, a68_bool_type, enquiry_decl));
+ 
+   /* IF or ELIF part.  */
+   NODE_T *s = SUB (p);
+ 
+   /* Process the enquiry clause.  */
+   (void) a68_lower_tree (NEXT (SUB (s)), ctx);
+ 
+   /* Assignation enquiry% = .. expr ..
+      Note that since no completers are allowed in enquiry clauses,
+      the last statement in the statement list has to be the unit
+      yielding the boolean value.  */
+   tree_stmt_iterator si = tsi_last (a68_range_stmt_list ());
+   gcc_assert (TREE_TYPE (tsi_stmt (si)) != void_type_node);
+   a68_add_stmt (fold_build2 (MODIFY_EXPR, a68_bool_type, enquiry_decl, tsi_stmt (si)));
+   tsi_delink (&si);
+ 
+   /* THEN part.  */
+   FORWARD (s);
+   bool dsa = serial_clause_dsa (NEXT (SUB (s)));
+   bool local = NON_LOCAL (NEXT (SUB (s))) == NO_TABLE;
+   a68_push_serial_clause_range (is_rows ? effective_rows_mode : conditional_clause_mode,
+ 				dsa && local);
+   (void) a68_lower_tree (NEXT (SUB (s)), ctx);
+   then_expr = a68_pop_serial_clause_range ();
+ 
+   /* ELSE part  */
+   FORWARD (s);
+   switch (ATTRIBUTE (s))
+     {
+     case CHOICE:
+     case ELSE_PART:
+       {
+ 	bool dsa = serial_clause_dsa (NEXT (SUB (s)));
+ 	bool local = NON_LOCAL (NEXT (SUB (s))) == NO_TABLE;
+ 	a68_push_serial_clause_range (is_rows ? effective_rows_mode : conditional_clause_mode,
+ 				      dsa && local);
+ 	(void) a68_lower_tree (NEXT (SUB (s)), ctx);
+ 	else_expr = a68_pop_serial_clause_range ();
+ 	break;
+       }
+     case CLOSE_SYMBOL:
+     case FI_SYMBOL:
+       {
+ 	else_expr = a68_get_skip_tree (is_rows ? effective_rows_mode : conditional_clause_mode);
+ 	break;
+       }
+     default:
+       {
+ 	/* ELIF part.  Recurse.  */
+ 	MOID (s) = conditional_clause_mode;
+ 	else_expr = a68_lower_conditional_clause (s, ctx);
+       }
+     }
+ 
+   /* Build the conditional clause's COND_EXPR.  */
+   a68_add_stmt (fold_build3_loc (a68_get_node_location (p),
+ 				 COND_EXPR,
+ 				 CTYPE (is_rows ? effective_rows_mode : conditional_clause_mode),
+ 				 enquiry_decl,
+ 				 then_expr, else_expr));
+ 
+   return a68_pop_range ();
+ }
+ 
+ /* Lower a comma separated list of zero, two, or more units
+ 
+      unit list : unit list, comma symbol, unit;
+                  unit list, unit.
+ 
+    The list of units lowers into appending the units into the current
+    statements list.
+ 
+    This function always returns NULL_TREE, so the traversing code shall always
+    be careful to traverse on these nodes explicitly and ignore the returned
+    value.  */
+ 
+ tree
+ a68_lower_unit_list (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (IS (SUB (p), UNIT_LIST))
+     (void) a68_lower_tree (SUB (p), ctx);
+ 
+   for (NODE_T *s = SUB (p); s != NO_NODE; FORWARD (s))
+     {
+       if (IS (s, UNIT))
+ 	a68_add_stmt (a68_lower_tree (s, ctx));
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower a collateral clause.
+ 
+      collateral clause : open symbol, unit list, close symbol;
+                          open symbol, close symbol;
+                          begin symbol, unit list, end symbol;
+ 			 begin symbol, end symbol.
+ 
+    An empty collateral clause lowers into EMPTY.  */
+ 
+ tree
+ a68_lower_collateral_clause (NODE_T *p ATTRIBUTE_UNUSED,
+ 			     LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   bool clause_is_empty = (ATTRIBUTE (NEXT (SUB (p))) != UNIT_LIST);
+   MOID_T *mode = MOID (p);
+ 
+   /* Lower the constituent units into a statements list.  */
+   a68_push_stmt_list (mode);
+   if (!clause_is_empty)
+     (void) a68_lower_tree (NEXT (SUB (p)), ctx);
+   tree units = a68_pop_stmt_list ();
+ 
+   /* The collateral clause lowers to different constructions depending on its
+      nature.  */
+   if (mode == M_VOID)
+     {
+       /* A VOID-collateral-clause lowers into a STMT_LIST containing all
+ 	 the units.  Since there cannot be declarations in a collateral
+ 	 clause, there is no need to introduce a new binding scope.  Note
+ 	 that for now we are not really elaborating collaterally, but
+ 	 sequentially.  */
+       return units;
+     }
+   else if (IS_FLEXETY_ROW (mode) || mode == M_STRING)
+     {
+       if (mode == M_STRING)
+ 	mode = M_FLEX_ROW_CHAR;
+ 
+       /* This is a row display.  It lowers to a multiple.  */
+       tree row_type = CTYPE (mode);
+       size_t dim = DIM (DEFLEX (mode));
+ 
+       if (clause_is_empty)
+ 	{
+ 	  /* The clause is empty.  This lowers into a multiple with DIM
+ 	     dimension, each dimension having bounds of 1:0, and no
+ 	     elements.  */
+ 	  tree element_pointer_type = a68_row_elements_pointer_type (row_type);
+ 	  tree multiple_elements = build_int_cst (element_pointer_type, 0);
+ 	  tree multiple_elements_size = size_zero_node;
+ 
+ 	  tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+ 	  tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+ 	  tree ssize_one_node = fold_convert (ssizetype, size_one_node);
+ 	  tree ssize_zero_node = fold_convert (ssizetype, size_zero_node);
+ 	  for (size_t d = 0; d < dim; ++d)
+ 	    {
+ 	      lower_bounds[d] = ssize_one_node;
+ 	      upper_bounds[d] = ssize_zero_node;
+ 	    }
+ 
+ 	  tree row = a68_row_value (row_type, dim,
+ 				    multiple_elements,
+ 				    multiple_elements_size,
+ 				    lower_bounds, upper_bounds);
+ 	  TREE_CONSTANT (row) = 1;
+ 	  free (lower_bounds);
+ 	  free (upper_bounds);
+ 	  return row;
+ 	}
+ 
+       if (dim == 1)
+ 	{
+ 	  /* Create a constructor with the multiple's elements.  */
+ 	  vec <constructor_elt, va_gc> *ve = NULL;
+ 	  int num_units = 0;
+ 	  for (tree_stmt_iterator si = tsi_start (units); !tsi_end_p (si); tsi_next (&si))
+ 	    {
+ 	      tree unit = tsi_stmt (si);
+ 	      if (A68_TYPE_HAS_ROWS_P (TREE_TYPE (unit)))
+ 		unit = a68_low_dup (unit);
+ 	      CONSTRUCTOR_APPEND_ELT (ve, size_int (num_units), unit);
+ 	      num_units += 1;
+ 	    }
+ 
+ 	  tree element_pointer_type = a68_row_elements_pointer_type (row_type);
+ 	  tree array_constructor_type = build_array_type (TREE_TYPE (element_pointer_type),
+ 							  build_index_type (size_int (num_units - 1)));
+ 	  tree array_constructor = build_constructor (array_constructor_type, ve);
+ 	  tree multiple_elements = fold_build1 (ADDR_EXPR,
+ 						element_pointer_type,
+ 						array_constructor);
+ 	  tree elements_type = TREE_TYPE (element_pointer_type);
+ 	  tree multiple_elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 						     size_int (num_units),
+ 						     size_in_bytes (elements_type));
+ 	  tree lower_bound = fold_convert (ssizetype, size_one_node);
+ 	  tree upper_bound = ssize_int (num_units);
+ 	  tree row = a68_row_value (row_type, dim,
+ 				    multiple_elements,
+ 				    multiple_elements_size,
+ 				    &lower_bound, &upper_bound);
+ 	  return row;
+ 	}
+       else
+ 	{
+ 	  gcc_assert (dim > 1);
+ 
+ 	  /* The units in the collateral clause are multiples, whose elements
+ 	     are to be copied consecutively in a new multiple.  The descriptor
+ 	     of this multiple is constructed as follows:
+ 
+ 	     The first dimension is:
+ 
+ 	     - The lower bound is 1.
+ 	     - The upper bound is the number of sub-multiples processed
+ 	       here.
+              - The stride is the number of elements in each sub-multiple
+ 	       multiplied by the element size.
+ 
+ 	     Subsequent dimensions are taken from the first inner multiple.
+ 	     All descriptors of the inner multiples shall be equal.  This is
+ 	     checked at run-time, and in case of discrepancy a run-time error
+ 	     is emitted.
+ 
+              Let's see an example.  Suppose in the stmt-list we have:
+ 
+                (1, 2, 3)
+                  {triplets: {lb: 1 ub: 3 stride: 1S} elements: {1, 2, 3}}
+                (4, 5, 6)
+                  {triplets: {lb: 1 ub: 3 stride: 1S} elements: {4, 5, 6}}
+ 
+              The resulting multiple would be:
+ 
+                ((1, 2, 3), (4, 5, 6))
+                  {triplets: {{lb: 1 ub: 2 stride: 3S}, {lb: 1 ub: 3 stride: 1S}}
+                   elements: {1, 2, 3, 4, 5, 6}}  */
+ 
+ 	  tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+ 	  tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+ 	  size_t num_units = 0;
+ 
+ 	  for (tree_stmt_iterator si = tsi_start (units); !tsi_end_p (si); tsi_next (&si))
+ 	    num_units++;
+ 
+ 	  a68_push_range (mode);
+ 
+ 	  /* Process each sub-multiple.  The first sub-multiple establishes the
+ 	     bounds that all subsequent sub-multiples shall match.  */
+ 	  tree multiple_elements = NULL_TREE;
+ 	  tree multiple_elements_size = NULL_TREE;
+ 	  tree sub_multiple = NULL_TREE;
+ 	  //	  tree sub_multiple_lb = NULL_TREE;
+ 	  //	  tree sub_multiple_ub = NULL_TREE;
+ 	  //	  tree sub_multiple_stride = NULL_TREE;
+ 	  tree index = a68_lower_tmpvar ("index%", sizetype, size_zero_node);
+ 	  for (tree_stmt_iterator si = tsi_start (units); !tsi_end_p (si); tsi_next (&si))
+ 	    {
+ 	      if (sub_multiple == NULL)
+ 		sub_multiple = a68_lower_tmpvar ("sub_multiple%",
+ 						 TREE_TYPE (tsi_stmt (si)),
+ 						 tsi_stmt (si));
+ 	      else
+ 		a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 					   TREE_TYPE (tsi_stmt (si)),
+ 					   sub_multiple,
+ 					   tsi_stmt (si)));
+ 
+ 	      if (si == tsi_start (units))
+ 		{
+ #if 0
+ 		  tree ssize_zero_node = fold_convert (ssizetype, size_zero_node);
+ 		  /* The first sub-multiple establishes the bounds that all
+ 		     subsequent sub-multiples shall match.  */
+ 		  sub_multiple_lb = a68_lower_tmpvar ("sub_multiple_lb%",
+ 						      ssizetype,
+ 						      a68_multiple_lower_bound (sub_multiple,
+ 										ssize_zero_node));
+ 		  sub_multiple_ub = a68_lower_tmpvar ("sub_multiple_ub%",
+ 						      ssizetype,
+ 						      a68_multiple_upper_bound (sub_multiple,
+ 										ssize_zero_node));
+ 		  sub_multiple_stride = a68_lower_tmpvar ("sub_multiple_stride%",
+ 							  sizetype,
+ 							  a68_multiple_stride (sub_multiple,
+ 									       size_zero_node));
+ #endif
+ 		  /* Now we have enough information to calculate the size of
+ 		     the elements of the new multiple and allocate
+ 		     multiple_elements.  */
+ 		  tree sub_multiple_elements = a68_multiple_elements (sub_multiple);
+ 		  tree elements_pointer_type = TREE_TYPE (sub_multiple_elements);
+ 		  tree elements_type = TREE_TYPE (elements_pointer_type);
+ 		  MOID_T *elements_moid = a68_type_moid (elements_type);
+ 		  multiple_elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 							     size_int (num_units),
+ 							     size_in_bytes (elements_type));
+ 		  multiple_elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 							multiple_elements_size,
+ 							a68_multiple_num_elems (sub_multiple));
+ 		  multiple_elements = a68_lower_tmpvar ("multiple_elements%",
+ 							elements_pointer_type,
+ 							a68_lower_alloca (elements_moid,
+ 									  multiple_elements_size));
+ 
+ 		  /* We can also now calculate the bounds of the new multiple.
+ 		     The top-level triplet has lower bound 1, upper bound is
+ 		     num_units, and stride is the number of elements in each
+ 		     sub-multiple multiplied by the element size.  Bounds for
+ 		     the subsequent DIM-1 dimensions are copied from the
+ 		     sub-multiple's descriptor.  */
+ 		  lower_bounds[0] = fold_convert (ssizetype, size_one_node);
+ 		  upper_bounds[0] = ssize_int (num_units);
+ 		  for (size_t d = 1; d < dim; ++d)
+ 		    {
+ 		      lower_bounds[d] = a68_multiple_lower_bound (sub_multiple,
+ 								  ssize_int (d - 1));
+ 		      upper_bounds[d] = a68_multiple_upper_bound (sub_multiple,
+ 								  ssize_int (d - 1));
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  /* Check bounds of this sub-multiple.  Note that this is
+ 		     always done at run-time, since the interpretation of a row
+ 		     display depens on the target type, whether it is a row row
+ 		     or a row of rows, for example.  */
+ 		  // XXX use sub_multiple_lb, sub_multiple_ub and sub_multiple_stride
+ 		}
+ 
+ 	      /* Copy the elements of a copy of the sub-multiple in the
+ 		 elements of the multiple.  */
+ 	      tree sub_multiple_elements = a68_multiple_elements (sub_multiple);
+ 	      // XXX should we make a copy of the sub_multiple_elements here?
+ 	      // We DO need to iterate slicing, because of strides: if
+ 	      // the sub_multiple is a trimmer.
+ 	      tree sub_multiple_elements_type = TREE_TYPE (sub_multiple_elements);
+ 	      tree sub_multiple_num_elems = a68_multiple_num_elems (sub_multiple);
+ 	      tree sub_multiple_element_type = TREE_TYPE (sub_multiple_elements_type);
+ 	      tree sub_multiple_elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 							     sub_multiple_num_elems,
+ 							     size_in_bytes (sub_multiple_element_type));
+ 
+ 	      /* memcpy (multiple_elements[index], sub_multiple_elements)  */
+ 	      a68_add_stmt (a68_lower_memcpy (fold_build2 (POINTER_PLUS_EXPR,
+ 							   sub_multiple_elements_type,
+ 							   multiple_elements,
+ 							   index),
+ 					      sub_multiple_elements,
+ 					      sub_multiple_elements_size));
+ 	      /* index += sub_multiple_elements_size */
+ 	      a68_add_stmt (fold_build2 (MODIFY_EXPR, sizetype,
+ 					 index,
+ 					 fold_build2 (PLUS_EXPR, sizetype,
+ 						      index, sub_multiple_elements_size)));
+ 	    }
+ 
+ 	  tree multiple = a68_lower_tmpvar ("multiple%",
+ 					    row_type,
+ 					    a68_row_value (row_type, dim,
+ 							   multiple_elements,
+ 							   multiple_elements_size,
+ 							   lower_bounds, upper_bounds));
+ 	  free (lower_bounds);
+ 	  free (upper_bounds);
+ 
+ 	  /* Yield the multiple.  */
+ 	  a68_add_stmt (multiple);
+ 	  return a68_pop_range ();
+ 	}
+     }
+   else if (IS_STRUCT (mode))
+     {
+       /* This is a struct display.  There are as many units in the clause as
+ 	 fields in the struct type.  Build a constructor with the values for
+ 	 the fields.  */
+       vec <constructor_elt, va_gc> *ve = NULL;
+       tree_stmt_iterator si = tsi_start (units);
+       for (tree f = TYPE_FIELDS (CTYPE (mode)); f; f = DECL_CHAIN (f))
+ 	{
+ 	  tree v = tsi_stmt (si);
+ 	  gcc_assert (v != NULL_TREE);
+ 	  v = a68_consolidate_ref (a68_type_moid (TREE_TYPE (f)) ,v);
+ 	  CONSTRUCTOR_APPEND_ELT (ve, f, v);
+ 	  tsi_next (&si);
+ 	}
+       tree ctor = build_constructor (CTYPE (mode), ve);
+       return ctor;
+     }
+   else
+     gcc_unreachable ();
+ }
+ 
+ /* Lower a parallel clause.
+ 
+      parallel clause : par symbol, collateral clause.
+ */
+ 
+ tree
+ a68_lower_parallel_clause (NODE_T *p ATTRIBUTE_UNUSED,
+ 			   LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   /* XXX For now treat like a VOID collateral clause.  */
+   return a68_lower_tree (NEXT (SUB (p)), ctx);
+ }
+ 
+ /* Lower a closed clause.
+ 
+      closed clause : open symbol, serial clause, close symbol;
+                      open symbol, initialiser series, close symbol;
+ 		     begin symbol, serial clause, end symbol;
+ 		     begin symbol, initialiser series, end symbol;
+ 
+   This function returns a BIND_EXPR.  */
+ 
+ tree
+ a68_lower_closed_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   /* Determine the mode of the closed clause.  */
+   MOID_T *clause_mode = MOID (p);
+   gcc_assert (clause_mode != NO_MOID);
+   gcc_assert (CTYPE (clause_mode) != NULL_TREE);
+ 
+   /* Lower the enclosed serial clause.
+ 
+      Note that a serial clause can be nested right inside another, and in that
+      case the range we are pushing corresponds to all of them, so we have to
+      keep this into account when determining whether using a DSA serial
+      range.  */
+ 
+   bool dsa = serial_clause_dsa (NEXT (SUB (p)));
+   bool local = NON_LOCAL (NEXT (SUB (p))) == NO_TABLE;
+   a68_push_serial_clause_range (clause_mode, dsa && local);
+   (void) a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_pop_serial_clause_range ();
+ }
+ 
+ /* Lower calls to preludes or postludes for all revelations in subtree.  */
+ 
+ static void
+ a68_lower_revelation_ludes (NODE_T *p, bool prelude)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, MODULE_INDICANT))
+ 	{
+ 	  TAG_T *tag = a68_find_tag_global (TABLE (p), MODULE_SYMBOL, NSYMBOL (p));
+ 	  gcc_assert (tag != NO_TAG);
+ 	  MOIF_T *moif = MOIF (tag);
+ 	  gcc_assert (moif != NO_MOIF);
+ 	  const char *fname = (prelude ? PRELUDE (moif) : POSTLUDE (moif));
+ 
+ 	  tree fdecl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
+ 				   get_identifier (fname),
+ 				   build_function_type (void_type_node,
+ 							void_list_node));
+ 
+ 	  DECL_EXTERNAL (fdecl) = 1;
+ 	  TREE_PUBLIC (fdecl) = 1;
+ 	  a68_add_decl (fdecl);
+ 	  a68_add_stmt (build_call_expr_loc (a68_get_node_location (p),
+ 					     fdecl, 0));
+ 
+ 	}
+       else
+ 	a68_lower_revelation_ludes (SUB (p), prelude);
+     }
+ }
+ 
+ /* Lower an access clause.
+ 
+      access clause : access symbol, access revelation, enclosed clause.
+      access revelation : access symbol, module indicant ;
+                          access revelation, comma symbol, module indicant.
+ */
+ 
+ tree
+ a68_lower_access_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *controlled_clause = NEXT_SUB (p);
+ 
+   a68_push_range (MOID (p));
+ 
+   /* Call preludes of all ACCESSed modules.  */
+   a68_lower_revelation_ludes (SUB (p), true /* prelude */);
+ 
+   /* Now the controlled clause.  */
+   tree controlled_clause_tree = a68_lower_tree (controlled_clause, ctx);
+   tree tmp = a68_lower_tmpvar ("accessed_clause_result%",
+ 			       TREE_TYPE (controlled_clause_tree),
+ 			       controlled_clause_tree);
+ 
+   /* Call postludes of all ACCESSed modules.  */
+   a68_lower_revelation_ludes (SUB (p), false /* prelude */);
+   a68_add_stmt (tmp);
+   return a68_pop_range ();
+ }
+ 
+ tree a68_lower_access_clauses (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* Lower an enclosed clause.
+ 
+      enclosed clause : parallel clause; closed clause;
+                        collateral clause; conditional clause;
+ 		       case clause; conformity clause;
+ 		       loop clause ; access clause.
+ */
+ 
+ tree
+ a68_lower_enclosed_clause (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-coercions.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-coercions.cc
*** gcc-15.2.0/gcc/algol68/a68-low-coercions.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-coercions.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,471 ----
+ /* Lower Algol 68 coercions to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Lower a dereferencing coercion.  */
+ tree
+ a68_lower_dereferencing (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_low_deref (a68_lower_tree (SUB (p), ctx), SUB (p));
+ }
+ 
+ /* Lower an uniting coercion.  */
+ 
+ tree
+ a68_lower_uniting (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree coercend_tree = a68_lower_tree (SUB (p), ctx);
+ 
+   if (MOID (p) == M_ROWS)
+     {
+       /* ROWS is a mode to which any ROW mode can be strongly coerced.  It is
+ 	 used as the mode of the second operand of the ELEMS, LWB and UPB
+ 	 operators.  The coercion is expressed in the parse tree via uniting.
+ 	 This results in replacing the multiple with a "rows" value that
+ 	 contains dimension and bounds information.  */
+       if (A68_ROW_TYPE_P (TREE_TYPE (coercend_tree)))
+ 	return a68_rows_value (coercend_tree);
+       else if (A68_UNION_TYPE_P (TREE_TYPE (coercend_tree)))
+ 	{
+ 	  /* coercend_tree is expanded more than once below.  */
+ 	  coercend_tree = save_expr (coercend_tree);
+ 
+ 	  /* Union of row modes.  We should create a rows value for the currently
+ 	     selected value.  */
+ 	  a68_push_range (M_ROWS);
+ 	  tree done_label = build_decl (UNKNOWN_LOCATION,
+ 					LABEL_DECL,
+ 					get_identifier ("done_label%"),
+ 					void_type_node);
+ 	  DECL_CONTEXT (done_label) = a68_range_context ();
+ 	  a68_add_decl (done_label);
+ 	  a68_add_decl_expr (fold_build1 (DECL_EXPR, TREE_TYPE (done_label), done_label));
+ 	  tree rows = a68_lower_tmpvar ("rows%", CTYPE (M_ROWS),
+ 					a68_get_skip_tree (M_ROWS));
+ 	  tree coercend_overhead = a68_union_overhead (coercend_tree);
+ 	  tree overhead = a68_lower_tmpvar ("overhead%", TREE_TYPE (coercend_overhead),
+ 					    coercend_overhead);
+ 	  int field_index = 0;
+ 	  for (tree field = TYPE_FIELDS (TREE_TYPE (a68_union_cunion (coercend_tree)));
+ 	       field;
+ 	       field = DECL_CHAIN (field))
+ 	    {
+ 	      a68_push_range (M_VOID);
+ 	      {
+ 		/* Set rows% to the rows value computed from coercend_tree.FIELD,
+ 		   which is of some multiple type.  */
+ 		a68_add_stmt (fold_build2 (MODIFY_EXPR, CTYPE (M_ROWS),
+ 					   rows,
+ 					   a68_rows_value (a68_union_alternative (coercend_tree,
+ 										  field_index))));
+ 		a68_add_stmt (fold_build1 (GOTO_EXPR, void_type_node, done_label));
+ 		a68_add_stmt (a68_get_skip_tree (M_VOID));
+ 	      }
+ 	      tree process_entry = a68_pop_range ();
+ 
+ 	      /* IF overhead = field_index THEN rows% = rows_from_multiple FI */
+ 	      a68_add_stmt (fold_build3 (COND_EXPR,
+ 					 a68_void_type,
+ 					 fold_build2 (EQ_EXPR,
+ 						      TREE_TYPE (overhead),
+ 						      overhead,
+ 						      build_int_cst (TREE_TYPE (overhead), field_index)),
+ 					 process_entry,
+ 					 a68_get_skip_tree (M_VOID)));
+ 	      field_index += 1;
+ 	    }
+ 
+ 	  /* This should not be reached.  Emit run-time error.  */
+ 	  {
+ 	    unsigned int lineno = NUMBER (LINE (INFO (p)));
+ 	    const char *filename_str = FILENAME (LINE (INFO (p)));
+ 	    tree filename = build_string_literal (strlen (filename_str) + 1,
+ 						  filename_str);
+ 	    tree call = a68_build_libcall (A68_LIBCALL_UNREACHABLE,
+ 					   void_type_node, 2,
+ 					   filename,
+ 					   build_int_cst (unsigned_type_node, lineno));
+ 	    a68_add_stmt (call);
+ 	  }
+ 
+ 	  a68_add_stmt (build1 (LABEL_EXPR, void_type_node, done_label));
+ 	  a68_add_stmt (rows);
+ 	  return a68_pop_range ();
+ 	}
+       else
+ 	{
+ 	  debug_tree (TREE_TYPE (coercend_tree));
+ 	  gcc_assert (A68_ROWS_TYPE_P (TREE_TYPE (coercend_tree)));
+ 	  return coercend_tree;
+ 	}
+     }
+   else if (IS_UNION (MOID (SUB (p))))
+     {
+       /* We have to extract the value of the coercend union.  */
+       a68_push_range (MOID (p));
+       {
+ 	MOID_T *coercend_mode = MOID (SUB (p));
+ 	MOID_T *coercee_mode = MOID (p);
+ 
+ 	/* Temporaries for the coercend's components.  */
+ 	tree coercend = a68_lower_tmpvar ("coercend%", TREE_TYPE (coercend_tree), coercend_tree);
+ 	tree cval = a68_union_cunion (coercend);
+ 	tree coverhead = a68_union_overhead (coercend);
+ 	tree coercend_value = a68_lower_tmpvar ("coercend_value%", TREE_TYPE (cval), cval);
+ 	tree coercend_overhead = a68_lower_tmpvar ("coercend_overhead%", sizetype, coverhead);
+ 
+ 	/* Create the coercee.  */
+ 	tree coercee = a68_lower_tmpvar ("coercee%",
+ 					 CTYPE (MOID (p)),
+ 					 a68_get_skip_tree (MOID (p)));
+ 	tree coercee_value = a68_union_cunion (coercee);
+ 
+ 	/* First translate overhead.  This is crude, but it works.  */
+ 	int idx = 0;
+ 	tree coercee_overhead = size_zero_node;
+ 	while (EQUIVALENT (coercend_mode) != NO_MOID)
+ 	  coercend_mode = EQUIVALENT (coercend_mode);
+ 	for (PACK_T *pack = PACK (coercend_mode); pack != NO_PACK; FORWARD (pack))
+ 	  {
+ 	    coercee_overhead = fold_build3 (COND_EXPR,
+ 					    sizetype,
+ 					    fold_build2 (EQ_EXPR,
+ 							 sizetype,
+ 							 coercend_overhead,
+ 							 size_int (idx)),
+ 					    size_int (a68_united_mode_index (coercee_mode, MOID (pack))),
+ 					    coercee_overhead);
+ 	    idx++;
+ 	  }
+ 	a68_add_stmt (a68_union_set_overhead (coercee, coercee_overhead));
+ 
+ 	/* Now copy over the value.  This of course relies on the fact the
+ 	   value of the coercend is smaller or of the same size than the value
+ 	   of the built union.  */
+ 	a68_add_stmt (a68_lower_memcpy (fold_build1 (ADDR_EXPR,
+ 						     build_pointer_type (TREE_TYPE (coercee_value)),
+ 						     coercee_value),
+ 					fold_build1 (ADDR_EXPR,
+ 						     build_pointer_type (TREE_TYPE (coercend_value)),
+ 						     coercend_value),
+ 					size_in_bytes (TREE_TYPE (coercend_value))));
+ 	a68_add_stmt (coercee);
+       }
+       return a68_pop_range ();
+     }
+   else
+     {
+       /* Produce a united mode one of whose component modes is the mode of the
+ 	 coercend.  */
+       return a68_union_value (MOID (p), coercend_tree, MOID (SUB (p)));
+     }
+ }
+ 
+ /* Lower a rowing coercion.  */
+ 
+ tree
+ a68_lower_rowing (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *mode = MOID (p);
+   bool did_deref = false;
+ 
+   /* If the primary is a REF, we need to dereference it to get the referred
+      value.  */
+   tree primary = NULL_TREE;
+   tree orig_primary = NULL_TREE;
+   MOID_T *target_mode = NO_MOID;
+   if (IS_REF (mode))
+     {
+       gcc_assert (IS_REF (MOID (SUB (p))));
+       did_deref = true;
+       target_mode = SUB (mode);
+ 
+       a68_push_range (mode);
+       /* Note that we have to consolidate because we need a pointer to compare
+ 	 to NIL below.  */
+       orig_primary = a68_lower_tmpvar ("orig_primary%",
+ 				       CTYPE (MOID (SUB (p))),
+ 				       a68_consolidate_ref (MOID (SUB (p)),
+ 							    a68_lower_tree (SUB (p), ctx)));
+       primary = a68_low_deref (orig_primary, SUB (p));
+     }
+   else
+     {
+       target_mode = mode;
+       primary = a68_lower_tree (SUB (p), ctx);
+       /* The primary gets expanded more than once below.  */
+       primary = save_expr (primary);
+     }
+ 
+   /* Perform the rowing in the primary. */
+   tree ssize_one_node = fold_convert (ssizetype, size_one_node);
+   tree rowed_primary = NULL_TREE;
+   if (DIM (DEFLEX (target_mode)) >= 2)
+     {
+       /* []A -> [,]A  */
+ 
+       /* First determine the number of dimensions of the resulting
+ 	 multiple.  */
+       tree primary_dimensions = a68_multiple_dimensions (primary);
+       gcc_assert (TREE_CODE (primary_dimensions) == INTEGER_CST);
+       int dim = tree_to_shwi (primary_dimensions) + 1;
+ 
+       /* Compute bounds.  */
+       tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+       tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+ 
+       lower_bounds[0] = ssize_one_node;
+       upper_bounds[0] = ssize_one_node;
+       for (int d = 1; d < dim; ++d)
+ 	{
+ 	  lower_bounds[d] = a68_multiple_lower_bound (primary, ssize_int (d - 1));
+ 	  upper_bounds[d] = a68_multiple_upper_bound (primary, ssize_int (d - 1));
+ 	}
+ 
+       rowed_primary = a68_row_value (CTYPE (target_mode), dim,
+ 				     a68_multiple_elements (primary),
+ 				     a68_multiple_elements_size (primary),
+ 				     lower_bounds, upper_bounds);
+       free (lower_bounds);
+       free (upper_bounds);
+     }
+   else
+     {
+       /* A -> []A  */
+       tree row_type = CTYPE (target_mode);
+       tree lower_bound = ssize_one_node;
+       tree upper_bound = ssize_one_node;
+       tree elements = (did_deref
+ 		       ? orig_primary
+ 		       : fold_build1 (ADDR_EXPR,
+ 				      build_pointer_type (TREE_TYPE (primary)),
+ 				      build_constructor_va (build_array_type (TREE_TYPE (primary),
+ 									      build_index_type (size_zero_node)),
+ 							    1, size_zero_node,  primary)));
+       tree elements_type = a68_row_elements_type (row_type);
+       tree elements_size = size_in_bytes (elements_type);
+       rowed_primary = a68_row_value (row_type, 1,
+ 				     elements, elements_size,
+ 				     &lower_bound, &upper_bound);
+     }
+ 
+   /* Build a ref if we rowed a ref.  */
+   if (did_deref)
+     {
+       tree pointer_type = build_pointer_type (TREE_TYPE (rowed_primary));
+       rowed_primary = fold_build1 (ADDR_EXPR, pointer_type, rowed_primary);
+       /* Rowing NIL yields NIL.  */
+       rowed_primary = fold_build3_loc (a68_get_node_location (p),
+ 				       COND_EXPR,
+ 				       pointer_type,
+ 				       fold_build2 (EQ_EXPR,
+ 						    pointer_type,
+ 						    fold_convert (pointer_type, orig_primary),
+ 						    build_int_cst (pointer_type, 0)),
+ 				       build_int_cst (pointer_type, 0),
+ 				       rowed_primary);
+       a68_add_stmt (rowed_primary);
+       rowed_primary = a68_pop_range ();
+     }
+ 
+   return rowed_primary;
+ }
+ 
+ /* Lower a widening coercion.
+ 
+    Widening allows the following conversions of mode:
+ 
+    LONGSETY INT to LONGSETY REAL
+    LONGSETY REAL to LONGSETY COMPL
+    LONGSETY BITS to []BOOL
+    LONGSETY BYTES to []CHAR  */
+ 
+ tree
+ a68_lower_widening (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (MOID (p) == M_REAL
+       || MOID (p) == M_LONG_REAL
+       || MOID (p) == M_LONG_LONG_REAL)
+     {
+       return convert_to_real (CTYPE (MOID (p)), a68_lower_tree (SUB (p), ctx));
+     }
+   if (MOID (p) == M_COMPLEX
+       || MOID (p) == M_LONG_COMPLEX
+       || MOID (p) == M_LONG_LONG_COMPLEX)
+     {
+       return a68_complex_widen_from_real (MOID (p),
+ 					  a68_lower_tree (SUB (p), ctx));
+     }
+   else if (MOID (p) == M_ROW_BOOL)
+     {
+       /* Widen a LONGSETY BITS to a row of BOOLs.  */
+       tree coercend = a68_lower_tree (SUB (p), ctx);
+       tree coercend_type = TREE_TYPE (coercend);
+       HOST_WIDE_INT bits_size = int_size_in_bytes (coercend_type);
+       gcc_assert (bits_size != -1);
+       bits_size = bits_size * 8;
+ 
+       tree pointer_to_bool_type = build_pointer_type (a68_bool_type);
+       a68_push_range (M_ROW_BOOL);
+       /* First allocate space for the elements.  */
+       tree elements = a68_lower_tmpvar ("elements%",
+ 					pointer_to_bool_type,
+ 					a68_lower_alloca (M_BOOL,
+ 							  fold_build2 (MULT_EXPR,
+ 								       sizetype,
+ 								       size_int (bits_size),
+ 								       size_in_bytes (a68_bool_type))));
+ 
+       /* Set the elements, each element is a BOOL which is TRUE if the
+ 	 corresponding bit in the coercend is set, FALSE otherwise.  */
+       tree coercend_one_node = build_int_cst (coercend_type, 1);
+       coercend = save_expr (coercend);
+       for (HOST_WIDE_INT bit = 0; bit < bits_size; ++bit)
+ 	{
+ 	  tree offset = fold_build2 (MULT_EXPR, sizetype,
+ 				     size_int (bit), size_in_bytes (a68_bool_type));
+ 	  tree bit_set = fold_convert (a68_bool_type,
+ 				       fold_build2 (BIT_AND_EXPR, coercend_type,
+ 						    fold_build2 (RSHIFT_EXPR, coercend_type,
+ 								 coercend,
+ 								 build_int_cst (coercend_type,
+ 										bits_size - 1 - bit)),
+ 						    coercend_one_node));
+ 
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				     a68_bool_type,
+ 				     fold_build2 (MEM_REF,
+ 						  a68_bool_type,
+ 						  fold_build2 (POINTER_PLUS_EXPR,
+ 							       pointer_to_bool_type,
+ 							       elements,
+ 							       offset),
+ 						  fold_convert (pointer_to_bool_type,
+ 								integer_zero_node)),
+ 				     bit_set));
+ 	}
+ 
+       /* Create multiple.  */
+       tree lower_bound = ssize_int (1);
+       tree upper_bound = ssize_int (bits_size);
+       tree elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 					size_int (bits_size),
+ 					size_in_bytes (a68_bool_type));
+       tree multiple = a68_row_value (CTYPE (M_ROW_BOOL), 1 /* dim */,
+ 				     elements, elements_size,
+ 				     &lower_bound, &upper_bound);
+       a68_add_stmt (multiple);
+       return a68_pop_range ();
+     }
+   else
+     {
+       fatal_error (a68_get_node_location (p),
+ 		   "cannot do widening from %s to %s",
+ 		   a68_moid_to_string (MOID (SUB (p)), MOID_ERROR_WIDTH, SUB (p)),
+ 		   a68_moid_to_string (MOID (p), MOID_ERROR_WIDTH, p));
+       gcc_unreachable ();
+     }
+ }
+ 
+ /* Lower a voiding coercion.
+ 
+    The voiding lowers into a compound expression with the voided expression
+    (for side-effects) and returns EMPTY.  */
+ 
+ tree
+ a68_lower_voiding (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  a68_void_type,
+ 			  a68_lower_tree (SUB (p), ctx),
+ 			  a68_get_empty ());
+ }
+ 
+ /* Lower a proceduring coercion.
+ 
+      proceduring : jump.
+ 
+    In the Revised language only jump statements can be procedured.  The
+    coercion results in a new function whose body is the jump instruction.  */
+ 
+ tree
+ a68_lower_proceduring (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree jump = a68_lower_tree (SUB (p), ctx);
+ 
+   tree procedured_goto = a68_make_anonymous_routine_decl (MOID (p));
+   a68_add_decl (procedured_goto);
+   a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 				      DECL_EXPR,
+ 				      TREE_TYPE (procedured_goto),
+ 				      procedured_goto));
+   announce_function (procedured_goto);
+ 
+   a68_push_function_range (procedured_goto, CTYPE (SUB (MOID (p))));
+   a68_pop_function_range (jump);
+   return fold_build1 (ADDR_EXPR,
+ 		      build_pointer_type (TREE_TYPE (procedured_goto)),
+ 		      procedured_goto);
+ }
+ 
+ /* Lower a deproceduring coercion.
+    The deproceduring lowers into a call expression.  */
+ 
+ tree
+ a68_lower_deproceduring (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree func = a68_lower_tree (SUB (p), ctx);
+ 
+   if (POINTER_TYPE_P (TREE_TYPE (func)))
+     {
+       if (TREE_CODE (func) == ADDR_EXPR)
+ 	func = TREE_OPERAND (func, 0);
+       else
+ 	func = fold_build1 (INDIRECT_REF,
+ 			    TREE_TYPE (TREE_TYPE (func)),
+ 			    func);
+     }
+ 
+   return build_call_expr_loc (a68_get_node_location (p), func, 0);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-complex.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-complex.cc
*** gcc-15.2.0/gcc/algol68/a68-low-complex.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-complex.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,141 ----
+ /* Lowering routines for all things related to COMPL values.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Build a new COMPL value with real part RE and imaginary part IM, of mode
+    MODE.  */
+ 
+ tree
+ a68_complex_i (MOID_T *mode, tree re, tree im)
+ {
+   tree compl_type = CTYPE (mode);
+ 
+   tree re_field = TYPE_FIELDS (compl_type);
+   tree im_field = TREE_CHAIN (re_field);
+   return build_constructor_va (CTYPE (mode), 2,
+ 			       re_field, re,
+ 			       im_field, im);
+ }
+ 
+ /* Given a COMPL value Z, get its real part.  */
+ 
+ tree
+ a68_complex_re (tree z)
+ {
+   tree re_field = TYPE_FIELDS (TREE_TYPE (z));
+   return fold_build3 (COMPONENT_REF, TREE_TYPE (re_field),
+ 		      z, re_field, NULL_TREE);
+ }
+ 
+ tree
+ a68_complex_im (tree z)
+ {
+   tree im_field = TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (z)));
+   return fold_build3 (COMPONENT_REF, TREE_TYPE (im_field),
+ 		      z, im_field, NULL_TREE);
+ }
+ 
+ /* Return the conjugate of the given complex Z of mode MODE.  */
+ 
+ tree
+ a68_complex_conj (MOID_T *mode, tree z)
+ {
+   tree re_field = TYPE_FIELDS (TREE_TYPE (z));
+   tree complex_type = build_complex_type (TREE_TYPE (re_field), false /* named */);
+ 
+   z = save_expr (z);
+   tree complex = fold_build2 (COMPLEX_EXPR, complex_type,
+ 			      a68_complex_re (z), a68_complex_im (z));
+   tree conj = fold_build1 (CONJ_EXPR, TREE_TYPE (complex), complex);
+ 
+   return a68_complex_i (mode,
+ 			fold_build1 (REALPART_EXPR, TREE_TYPE (TREE_TYPE (z)), conj),
+ 			fold_build1 (IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (z)), conj));
+ }
+ 
+ /* Widen a real R to a complex of mode MODE.  */
+ 
+ tree
+ a68_complex_widen_from_real (MOID_T *mode, tree r)
+ {
+   tree compl_type = CTYPE (mode);
+   gcc_assert (compl_type != NULL_TREE);
+ 
+   /* Sanity check.  */
+   if (mode == M_COMPLEX)
+     gcc_assert (TREE_TYPE (r) == a68_real_type);
+   else if (mode == M_LONG_COMPLEX)
+     gcc_assert (TREE_TYPE (r) == a68_long_real_type);
+   else if (mode == M_LONG_LONG_COMPLEX)
+     gcc_assert (TREE_TYPE (r) == a68_long_long_real_type);
+   else
+     gcc_unreachable ();
+ 
+   a68_push_range (mode);
+   tree res = a68_lower_tmpvar ("compl%", compl_type,
+ 			       a68_get_skip_tree (mode));
+ 
+   /* Look for the "re" field.  */
+   tree field_id = a68_get_mangled_identifier ("re");
+   tree field = NULL_TREE;
+   for (tree f = TYPE_FIELDS (compl_type); f; f = DECL_CHAIN (f))
+     {
+       if (field_id == DECL_NAME (f))
+ 	{
+ 	  field = f;
+ 	  break;
+ 	}
+     }
+   gcc_assert (field != NULL_TREE);
+ 
+   /* Set it to the given real value.  */
+   a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 			     TREE_TYPE (r),
+ 			     fold_build3 (COMPONENT_REF,
+ 					  TREE_TYPE (field),
+ 					  res, field,
+ 					  NULL_TREE),
+ 			     r));
+   a68_add_stmt (res);
+   return a68_pop_range ();
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-decls.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-decls.cc
*** gcc-15.2.0/gcc/algol68/a68-low-decls.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-decls.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,776 ----
+ /* Lower mode, identity and variable declarations to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Lower one or more mode declarations.
+ 
+      mode declaration : mode symbol, defining indicant,
+                         equals symbol, declarer;
+                         mode symbol, defining indicant,
+ 			equals symbol, void symbol;
+ 			public symbol, mode symbol, defining indicant,
+                         equals symbol, declarer;
+                         public symbol, mode symbol, defining indicant,
+ 			equals symbol, void symbol;
+                         mode declaration, comma symbol,
+ 			defining indicant, equals symbol, declarer;
+                         mode declaration, comma symbol,
+ 			defining indicant, equals symbol, void symbol.
+ 
+    Each mode declaration lowers into a TYPE_DECL, which are chained in the
+    current block.  This function returns void_node.
+ 
+    Note that the defining indicant is already annotated with the declared mode
+    so there is no need to go hunting for the declarer in the subtree.  */
+ 
+ tree
+ a68_lower_mode_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *defining_indicant = NO_NODE;
+ 
+   if (IS (SUB (p), MODE_DECLARATION))
+     {
+       a68_lower_tree (SUB (p), ctx);
+       defining_indicant = NEXT (NEXT (SUB (p)));
+     }
+   else
+     {
+       if (IS (SUB (p), PUBLIC_SYMBOL))
+ 	{
+ 	  gcc_assert (IS (NEXT (SUB (p)), MODE_SYMBOL));
+ 	  defining_indicant = NEXT (NEXT (SUB (p)));
+ 	}
+       else
+ 	{
+ 	  gcc_assert (IS (SUB (p), MODE_SYMBOL));
+ 	  defining_indicant = NEXT (SUB (p));
+ 	}
+     }
+ 
+   /* Create a TYPE_DECL declaration for the defined mode and chain it in the
+      current block.  */
+   tree ctype = CTYPE (MOID (defining_indicant));
+   tree decl_name = a68_get_mangled_indicant (NSYMBOL (defining_indicant),
+ 					     ctx.module_definition_name);
+   tree decl = build_decl (a68_get_node_location (p),
+ 			  TYPE_DECL, decl_name, ctype);
+   SET_DECL_ASSEMBLER_NAME (decl, decl_name);
+   TREE_PUBLIC (decl) = 1;
+   TYPE_CONTEXT (ctype) = DECL_CONTEXT (decl);
+   TYPE_NAME (ctype) = decl;
+   TYPE_STUB_DECL (ctype) = decl;
+   a68_add_decl (decl);
+ 
+   return void_node;
+ }
+ 
+ /* Lower one or more variable declarations.
+ 
+      variable declaration : qualifier, declarer, defining identifier,
+                             assign symbol, unit;
+      			    qualifier, declarer, defining identiifer;
+ 			    qualifier, declarer, defining identifier;
+ 			    declarer, defining identifier, assign symbol, unit;
+ 			    declarer, defining identifier;
+ 			    public symbol, qualifier, declarer, defining identifier,
+                             assign symbol, unit;
+      			    public symbol, qualifier, declarer, defining identiifer;
+ 			    qualifier, declarer, defining identifier;
+ 			    public symbol, declarer, defining identifier, assign symbol, unit;
+ 			    declarer, defining identifier;
+ 			    variable declaration, comma symbol,
+ 			    defining identifier, assign symbol, unit;
+ 			    variable declaration, comma symbol,
+ 			    defining identifier;
+ 
+   Each variable declaration lowers into a VAR_DECL, which are chained in the
+   current block.  This function also returns an expression with code to
+   initialize the variable in case there is an initializer.
+ 
+   If the variable declaration implies a LOC generator then the VAR_DECL for REF
+   AMODE declares a value of type CTYPE (AMODE).  This is an optimization in
+   order to avoid indirect addressing.  If the variable declaration implies a
+   HEAP generator, however, then the VAR_DECL declares a value of type pointer
+   to CTYPE (AMODE0.  In this later case no optimization is possible and it has
+   exactly the same effect than an identity declaration `REF AMODE
+   defining_identifier = HEAP AMODE'.
+ 
+   Note that the defining identifier is annotated with its mode, so there is no
+   need to go hunting for the declarer in the subtree.  */
+ 
+ tree
+ a68_lower_variable_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *defining_identifier, *unit;
+   NODE_T *declarer = NO_NODE;
+ 
+   tree sub_expr = NULL_TREE;
+ 
+   if (IS (SUB (p), VARIABLE_DECLARATION))
+     {
+       LOW_CTX_T new_ctx = ctx;
+       new_ctx.declarer = &declarer;
+       sub_expr = a68_lower_tree (SUB (p), new_ctx);
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else
+     {
+       NODE_T *q = SUB (p);
+ 
+       if (IS (q, PUBLIC_SYMBOL))
+ 	FORWARD (q);
+  
+       if (IS (q, QUALIFIER))
+ 	{
+ 	  /* The qualifier determines what kind of generator is used in the
+ 	     variable declaration.  This is already annotated in the tax entry
+ 	     for the definining identifier.  */
+ 	  declarer = NEXT (q);
+ 	  defining_identifier = NEXT (NEXT (q));
+ 	}
+       else if (IS (q, DECLARER))
+ 	{
+ 	  declarer = q;
+ 	  defining_identifier = NEXT (q);
+ 	}
+       else
+ 	gcc_unreachable ();
+     }
+ 
+   /* Communicate declarer upward.  */
+   if (ctx.declarer != NULL)
+     *ctx.declarer = declarer;
+ 
+   /* See if this variable declaration features an initializing unit.  */
+   if (NEXT (defining_identifier) != NO_NODE)
+     {
+       gcc_assert (NEXT (defining_identifier)
+ 		  && IS (NEXT (defining_identifier), ASSIGN_SYMBOL)
+ 		  && NEXT (NEXT (defining_identifier)));
+       unit = NEXT (NEXT (defining_identifier));
+     }
+   else
+     unit = NO_NODE;
+ 
+   /* If not done already by an applied identifier in lower_identifier, create a
+      declaration for the defined entity and chain it in the current block.  The
+      declaration has an initial value of SKIP.  */
+   tree var_decl = TAX_TREE_DECL (TAX (defining_identifier));
+   if (var_decl == NULL_TREE)
+     {
+       var_decl = a68_make_variable_declaration_decl (defining_identifier,
+ 						     ctx.module_definition_name);
+       TAX_TREE_DECL (TAX (defining_identifier)) = var_decl;
+     }
+ 
+   /* If the variable declaration is in a public range then add the declaration
+      to the publicized declarations list.  Otherwise chain the declaration in
+      the proper block and bind it.  */
+   if (PUBLIC_RANGE (TABLE (TAX (defining_identifier))))
+     vec_safe_push (A68_MODULE_DEFINITION_DECLS, var_decl);
+   else
+     a68_add_decl (var_decl);
+ 
+   /* Add a decl_expr in the current range.  */
+   a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 				      DECL_EXPR,
+ 				      TREE_TYPE (var_decl),
+ 				      var_decl));
+ 
+   tree expr = NULL_TREE;
+ 
+   /* Allocate memory for the declared variables.
+ 
+      This is done differently depending on the sample generator used in the
+      variable declaration, be it explicit or the default LOC.
+ 
+      If the LOC generator is used and the value has no rows, it means it
+      doesnt' need a dynamic part and the var_decl created above is not a
+      pointer.  So the memory has been allocated already and there is nothing
+      else to do at this point.
+ 
+      If the HEAP generator is used, or if the generated value has rows, it
+      means the var_decl created above is a pointer.  We need to run a generator
+      to get the memory with descriptors filled in.  Note that we cannot set the
+      pointer as the initial of the var_decl because the bouns in the actual
+      declarer shall be elaborated at the point of the code where the
+      declaration appears, not at the beginning of its reach.  Note that the
+      mode of the declarer will be always a REF, since this is a variable
+      declaration: the referred mode is what we pass to the a68_low_generator.
+ 
+      If the STATIC generator is used, the var_decl created above is not a
+      pointer.  The static part of the value has been already allocated, and if
+      the value needs a dynamic part (i.e. if it has rows) then it is allocated
+      using the heap.  Note how we allocate the whole value (including the
+      static part) and then we copy if over the var_decl.  */
+ 
+   if (HEAP (TAX (defining_identifier)) == STATIC_SYMBOL)
+     {
+       if (HAS_ROWS (SUB (MOID (defining_identifier))))
+ 	{
+ 	  expr = fold_build2 (MODIFY_EXPR, TREE_TYPE (var_decl),
+ 			      var_decl,
+ 			      fold_build1 (INDIRECT_REF,
+ 					   TREE_TYPE (var_decl),
+ 					   a68_low_generator (declarer,
+ 							      SUB (MOID (declarer)),
+ 							      true /* heap */,
+ 							      ctx)));
+ 	}
+     }
+   else
+     {
+       bool heap = HEAP (TAX (defining_identifier)) == HEAP_SYMBOL;
+       if (heap || HAS_ROWS (SUB (MOID (defining_identifier))))
+ 	{
+ 	  gcc_assert(IS_REF (MOID (declarer)));
+ 	  expr = fold_build2 (MODIFY_EXPR, TREE_TYPE (var_decl),
+ 			      var_decl,
+ 			      a68_low_generator (declarer,
+ 						 SUB (MOID (declarer)),
+ 						 heap, ctx));
+ 	}
+     }
+ 
+   if (unit != NO_NODE)
+     {
+       tree rhs = a68_lower_tree (unit, ctx);
+       tree assignation = a68_low_assignation (p,
+ 					      var_decl, MOID (defining_identifier),
+ 					      rhs, MOID (unit));
+       if (expr != NULL_TREE)
+ 	expr = fold_build2_loc (a68_get_node_location (p),
+ 				COMPOUND_EXPR,
+ 				TREE_TYPE (assignation),
+ 				expr, assignation);
+       else
+ 	expr = assignation;
+     }
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_expr != NULL_TREE)
+     {
+       if (expr != NULL_TREE)
+ 	expr = fold_build2_loc (a68_get_node_location (p),
+ 				COMPOUND_EXPR,
+ 				TREE_TYPE (var_decl),
+ 				sub_expr,
+ 				expr);
+       else
+ 	expr = sub_expr;
+     }
+ 
+   return expr;
+ }
+ 
+ /* Lower one or more identity declarations.
+ 
+      identity declaration : declarer, defining identifier,
+                             equals symbol, unit;
+ 			    public symbol, declarer, defining identifier,
+ 			    equals symbol, unit;
+                             identity declaration, comma symbol,
+ 			    defining identifier, equals symbol, unit;
+ 
+    Each identity declaration lowers into a declaration.
+ 
+    VAR_DECL with both TREE_CONSTANT and TREE_READONLY set.  Note that we cannot
+    use CONST_DECL because of two reasons.  First, CONST_DECL only works for
+    scalar modes.  Second, since Algol 68 allows usage of identifiers before
+    they get declared, each declaration adds a declaration with a SKIP initial
+    value, and also an assignation of the value at the declaration point.  This
+    function also returns an expression with code to initialize the declared
+    constant.  */
+ 
+ tree
+ a68_lower_identity_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree unit_tree = NULL_TREE;
+   tree sub_expr = NULL_TREE;
+ 
+   /* Note that the formal declarer in the construct is not used.  This is
+      because it is already reflected in the mode of the identity
+      declaration.  */
+ 
+   NODE_T *defining_identifier;
+   if (IS (SUB (p), IDENTITY_DECLARATION))
+     {
+       sub_expr = a68_lower_tree (SUB (p), ctx);
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else if (IS (SUB (p), PUBLIC_SYMBOL))
+     {
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else if (IS (SUB (p), DECLARER))
+     {
+       defining_identifier = NEXT (SUB (p));
+     }
+   else
+     gcc_unreachable ();
+ 
+   NODE_T *unit = NEXT (NEXT (defining_identifier));
+ 
+   tree expr = NULL_TREE;
+   if (NEST_PROC (TAX (defining_identifier)))
+     {
+       /* NEST_PROC tells us that the identity declaration is of the form:
+ 
+ 	 PROCMODE defining_identifier = FORMAL_HOLE
+ 
+ 	 Which in effect is very like a procedure declaration.  */
+       gcc_assert (IS (SUB (unit), FORMAL_HOLE));
+       ctx.proc_decl_identifier = defining_identifier;
+       ctx.proc_decl_operator = false;
+       expr = a68_lower_tree (unit, ctx);
+     }
+   else
+     {
+       /* For regular identity declarations, create a declaration for the
+ 	 defined entity and chain it in the current block.  The declaration has
+ 	 an initial value of SKIP.  */
+       tree id_decl = TAX_TREE_DECL (TAX (defining_identifier));
+       if (id_decl == NULL_TREE)
+ 	{
+ 	  id_decl = a68_make_identity_declaration_decl (defining_identifier,
+ 							ctx.module_definition_name);
+ 	  TAX_TREE_DECL (TAX (defining_identifier)) = id_decl;
+ 	}
+ 
+       /* Prepare the DECL_EXPR.  */
+       a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 					  DECL_EXPR,
+ 					  TREE_TYPE (id_decl),
+ 					  id_decl));
+ 
+       unit_tree = a68_lower_tree (unit, ctx);
+       unit_tree = a68_consolidate_ref (MOID (unit), unit_tree);
+       expr = a68_low_ascription (MOID (defining_identifier),
+ 				 id_decl, unit_tree);
+ 
+       /* If the ascribed value is constant, mark the declaration as
+ 	 constant.  */
+       TREE_CONSTANT (id_decl) = TREE_CONSTANT (unit_tree);
+ 
+       /* If the identity declaration is in a public range then add the
+ 	 declaration to the module's declarations list.  Otherwise chain the
+ 	 declaration in the proper block and bind it.  */
+       if (PUBLIC_RANGE (TABLE (TAX (defining_identifier))))
+ 	vec_safe_push (A68_MODULE_DEFINITION_DECLS, id_decl);
+       else
+ 	a68_add_decl (id_decl);
+     }
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_expr != NULL_TREE)
+     {
+       if (expr != NULL_TREE)
+ 	expr = fold_build2_loc (a68_get_node_location (p),
+ 				COMPOUND_EXPR,
+ 				TREE_TYPE (expr),
+ 				sub_expr,
+ 				expr);
+       else
+ 	expr = sub_expr;
+     }
+ 
+   return expr;
+ }
+ 
+ /* Lower a declarer.
+ 
+      declarer : indicant;
+      		longety, indicant;
+      		shortety, indicant;
+ 		flex symbol, declarer;
+ 		flex symbol, bounds, declarer;
+ 		flex symbol, formal bounds, declarer;
+ 		bounds, declarer;
+ 		formal bounds, declarer;
+                 ref symbol, declarer;
+ 		struct symbol, structure pack;
+ 		union symbol, union pack;
+                 proc symbol, declarer;
+ 		proc symbol, formal declarers, declarer;
+ 		proc symbol, formal declarers, void symbol;
+ 
+ 
+   This handler lowes a DECLARER tree into an expression that evaluates to the
+   size of the actual declarer.  Note that this is a self-contained handler and
+   it does traverse the sub-tree on its own.  */
+ 
+ tree
+ a68_lower_declarer (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   gcc_unreachable ();
+ }
+ 
+ /* Lower a declaration list.
+ 
+     declaration list : mode declaration;
+                        priority declaration;
+                        brief operator declaration;
+                        operator declaration;
+                        identity declaration;
+                        procedure declaration;
+                        procedure variable declaration;
+                        variable declaration;
+                        environ name;
+ 		       declaration list, comma symbol, declaration list;
+ 
+    Process the subtree, which produces declarations associated with the current
+    context and which get added to the current block.  The list of declarations
+    gets returned in nested compound expressions.  */
+ 
+ tree
+ a68_lower_declaration_list (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (IS (SUB (p), DECLARATION_LIST))
+     {
+       tree left = a68_lower_tree (SUB (p), ctx);
+       tree right = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+       /* The trees `left' and `right' may be NULL_TREE if the declarations
+ 	 under them didn't have an initializing expression.  In that case,
+ 	 replace them by nops which are removed at fold time.  This is ugly,
+ 	 but works.  */
+       if (left == NULL_TREE)
+ 	left = integer_zero_node;
+       if (right == NULL_TREE)
+ 	right = integer_zero_node;
+ 
+       return fold_build2_loc (a68_get_node_location (p),
+ 			      COMPOUND_EXPR,
+ 			      void_type_node,
+ 			      left, right);
+     }
+   else
+     return a68_lower_tree (SUB (p), ctx);
+ }
+ 
+ /* Lower a procedure declaration.
+ 
+      procedure declaration : proc symbol, defining identifier, assign symbol, routine text;
+                              public symbol, proc symbol, defining identifier, assign symbol, routine text;
+                              procedure declaration, comma symbol,
+ 			     defining identifier, equals symbol, routine text.
+ 
+    Each procedure declaration lowers into a declaration.  */
+ 
+ tree
+ a68_lower_procedure_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree sub_func_decl = NULL_TREE;
+   NODE_T *defining_identifier;
+   if (IS (SUB (p), PROCEDURE_DECLARATION))
+     {
+       sub_func_decl = a68_lower_tree (SUB (p), ctx);
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else if (IS (SUB (p), PUBLIC_SYMBOL))
+     {
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else if (IS (SUB (p), PROC_SYMBOL))
+     {
+       defining_identifier = NEXT (SUB (p));
+     }
+   else
+     gcc_unreachable ();
+ 
+   NODE_T *routine_text = NEXT (NEXT (defining_identifier));
+ 
+   /* Lower the routine text to get a function decl.  */
+   ctx.proc_decl_identifier = defining_identifier;
+   ctx.proc_decl_operator = false;
+   tree func_decl = a68_lower_tree (routine_text, ctx);
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_func_decl != NULL_TREE)
+     {
+       if (func_decl != NULL_TREE)
+ 	func_decl = fold_build2_loc (a68_get_node_location (p),
+ 				     COMPOUND_EXPR,
+ 				     TREE_TYPE (func_decl),
+ 				     sub_func_decl,
+ 				     func_decl);
+       else
+ 	func_decl = sub_func_decl;
+     }
+ 
+   return func_decl;
+ }
+ 
+ /* Lower a procedure variable declaration.
+ 
+      procedure variable declaration
+        : proc symbol, defining identifier, assign symbol, routine text;
+          qualifier, proc symbol, defining identifier, assign symbol, routine text;
+ 	 public symbol, proc symbol, defining identifier, assign symbol, routine text;
+          public symbol, qualifier, proc symbol, defining identifier, assign symbol, routine text;
+ 	 procedure variable declaration, comma symbol, defining identiier, assign symbol, routine text.
+ 
+    This lowers into the declaration of a VAR_DECL which is a pointer to the
+    free standing routine yielded by the routine text.  */
+ 
+ tree
+ a68_lower_procedure_variable_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree sub_decl = NULL_TREE;
+   NODE_T *defining_identifier;
+   if (IS (SUB (p), PROCEDURE_VARIABLE_DECLARATION))
+     {
+       sub_decl = a68_lower_tree (SUB (p), ctx);
+       defining_identifier = NEXT (NEXT (SUB (p)));
+     }
+   else
+     {
+       NODE_T *q = SUB (p);
+ 
+       if (IS (q, PUBLIC_SYMBOL))
+ 	FORWARD (q);
+ 
+       if (IS (q, PROC_SYMBOL))
+ 	defining_identifier = NEXT (q);
+       else if (IS (q, QUALIFIER))
+ 	/* The qualifier determines what kind of generator is used in the
+ 	   variable declaration.  This is already annotated in the tax entry
+ 	   for the definining identifier.  */
+ 	defining_identifier = NEXT (NEXT (q));
+       else
+ 	gcc_unreachable ();
+     }
+ 
+   NODE_T *routine_text = NEXT (NEXT (defining_identifier));
+ 
+   /* The routine text lowers into a pointer to function.  */
+   ctx.proc_decl_identifier = NO_NODE;
+   ctx.proc_decl_operator = false;
+   tree routine = a68_lower_tree (routine_text, ctx);
+ 
+   /* Create a declaration for the proc variable, if that hasn't been done
+      already.  */
+   tree decl = TAX_TREE_DECL (TAX (defining_identifier));
+   if (decl == NULL_TREE)
+     {
+       decl = a68_make_variable_declaration_decl (defining_identifier,
+ 						ctx.module_definition_name);
+       TAX_TREE_DECL (TAX (defining_identifier)) = decl;
+     }
+ 
+   /* If the variable declaration is in a public range then add the declaration
+      to the publicized declarations list.  Otherwise chain the declaration in
+      the proper block and bind it.  */
+   if (PUBLIC_RANGE (TABLE (TAX (defining_identifier))))
+     vec_safe_push (A68_MODULE_DEFINITION_DECLS, decl);
+   else
+     a68_add_decl (decl);
+ 
+   /* Add a decl_expr in the current range.  */
+   a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 				      DECL_EXPR,
+ 				      TREE_TYPE (decl),
+ 				      decl));
+   /* Initialize.
+ 
+      If the variable is heap allocated then the var_decl created above is a
+      pointer.  We don't allocate the actual function on the heap, because the
+      scope of procedures is not global.  */
+   bool heap = HEAP (TAX (defining_identifier)) == HEAP_SYMBOL;
+   a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (decl), decl,
+ 			     heap ? fold_build1 (ADDR_EXPR, TREE_TYPE (decl),
+ 						 routine) : routine));
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_decl != NULL_TREE)
+     {
+       if (decl != NULL_TREE)
+ 	decl = fold_build2_loc (a68_get_node_location (p),
+ 				COMPOUND_EXPR,
+ 				TREE_TYPE (decl),
+ 				sub_decl,
+ 				decl);
+       else
+ 	decl = sub_decl;
+     }
+ 
+   return decl;
+ }
+ 
+ /* Lower a priority declaration.
+ 
+    This lowers to nothing.  Operator priority is fully handled by the parser in
+    order to decide which operator declaration corresponds to each applied
+    operator.  */
+ 
+ tree
+ a68_lower_priority_declaration (NODE_T *p ATTRIBUTE_UNUSED,
+ 				LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return NULL_TREE;
+ }
+ 
+ /* Lower a brief operator declaration.
+ 
+      brief operator declaration
+        : op symbol, defining operator, equals symbol, routine text;
+          public symbol, op symbol, defining operator, equals symbol, routine text;
+          brief operator declaration, comma symbol, defining operator, equals symbol, routine text.
+ 
+    The declarations low in a series of FUNCTION_DECLs, one per declared
+    operator.  */
+ 
+ tree
+ a68_lower_brief_operator_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree sub_func_decl = NULL_TREE;
+   NODE_T *defining_operator;
+ 
+   if (IS (SUB (p), BRIEF_OPERATOR_DECLARATION))
+     {
+       sub_func_decl = a68_lower_tree (SUB (p), ctx);
+       defining_operator = NEXT (NEXT (SUB (p)));
+     }
+   else
+     {
+       if (IS (SUB (p), PUBLIC_SYMBOL))
+ 	{
+ 	  gcc_assert (IS (NEXT (SUB (p)), OP_SYMBOL));
+ 	  defining_operator = NEXT (NEXT (SUB (p)));
+ 	}
+       else
+ 	defining_operator = NEXT (SUB (p));
+     }
+   NODE_T *routine_text = NEXT (NEXT (defining_operator));
+ 
+   /* Lower the routine text to get a function decl.  */
+   ctx.proc_decl_identifier = defining_operator;
+   ctx.proc_decl_operator = true;
+   tree func_decl = a68_lower_tree (routine_text, ctx);
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_func_decl != NULL_TREE)
+     {
+       if (func_decl != NULL_TREE)
+ 	func_decl = fold_build2_loc (a68_get_node_location (p),
+ 				     COMPOUND_EXPR,
+ 				     TREE_TYPE (func_decl),
+ 				     sub_func_decl,
+ 				     func_decl);
+       else
+ 	func_decl = sub_func_decl;
+     }
+ 
+   return func_decl;
+ }
+ 
+ /* Lower an operator declaration.
+ 
+      operator declaration : operator plan, defining operator, equals symbol, unit;
+                             public symbol, operator plan, defining operator, equals symbol, unit;
+                             operator declaration, comma symbol, defining operator, equals symbol, unit.
+ 
+    Each operator declaration lowers into a declaration.  */
+ 
+ tree
+ a68_lower_operator_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree sub_op_decl = NULL_TREE;
+   NODE_T *defining_operator;
+ 
+   if (IS (SUB (p), OPERATOR_DECLARATION))
+     {
+       sub_op_decl = a68_lower_tree (SUB (p), ctx);
+       defining_operator = NEXT (NEXT (SUB (p)));
+     }
+   else
+     {
+       if (IS (SUB (p), PUBLIC_SYMBOL))
+ 	defining_operator = NEXT (NEXT (SUB (p)));
+       else
+ 	defining_operator = NEXT (SUB (p));
+     }
+   NODE_T *unit = NEXT (NEXT (defining_operator));
+ 
+   tree op_decl = TAX_TREE_DECL (TAX (defining_operator));
+   if (op_decl == NULL_TREE)
+     {
+       op_decl = a68_make_identity_declaration_decl (defining_operator,
+ 						    ctx.module_definition_name,
+ 						    true /* indicant */);
+       TAX_TREE_DECL (TAX (defining_operator)) = op_decl;
+     }
+ 
+   /* If the identity declaration is in a public range then add the declaration
+      to the publicized declarations list.  Otherwise chain the declaration in
+      the proper block and bind it.  */
+   if (PUBLIC_RANGE (TABLE (TAX (defining_operator))))
+     vec_safe_push (A68_MODULE_DEFINITION_DECLS, op_decl);
+   else
+     a68_add_decl (op_decl);
+ 
+   /* Prepare the DECL_EXPR.  */
+   a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 				      DECL_EXPR,
+ 				      TREE_TYPE (op_decl),
+ 				      op_decl));
+   /* Initialize.  */
+   a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (op_decl), op_decl,
+ 			     a68_lower_tree (unit, ctx)));
+ 
+   /* Tail in a compound expression with sub declarations, if any.  */
+   if (sub_op_decl != NULL_TREE)
+     {
+       if (op_decl != NULL_TREE)
+ 	op_decl = fold_build2_loc (a68_get_node_location (p),
+ 				   COMPOUND_EXPR,
+ 				   TREE_TYPE (op_decl),
+ 				   sub_op_decl,
+ 				   op_decl);
+       else
+ 	op_decl = sub_op_decl;
+     }
+ 
+   return op_decl;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-generator.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-generator.cc
*** gcc-15.2.0/gcc/algol68/a68-low-generator.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-generator.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,533 ----
+ /* Lower generators.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ 
+ typedef tree (*allocator_t) (MOID_T*, tree);
+ 
+ /* Lower to code that fill in BOUNDS and elements pointers in the given buffer
+    pointed by BUFFER at offset OFFSET according to the mode MODE, and evals to
+    BUFFER.  */
+ 
+ static tree
+ fill_in_buffer (tree buffer, tree offset, tree_stmt_iterator *bounds, MOID_T *m,
+ 		allocator_t allocator)
+ {
+   tree filler = NULL_TREE;
+   tree type = CTYPE (m);
+   tree pointer_type = build_pointer_type (type);
+ 
+   a68_push_stmt_list (M_VOID);
+ 
+   if (m == M_INT || m == M_BOOL || m == M_CHAR || m == M_REAL || IS_REF (m))
+     {
+       tree val_address = fold_build2 (POINTER_PLUS_EXPR, pointer_type, buffer, offset);
+       tree init_val = a68_get_skip_tree (m);
+       tree modify = fold_build2 (MODIFY_EXPR,
+ 				 type,
+ 				 fold_build1 (INDIRECT_REF, type, val_address),
+ 				 init_val);
+       a68_add_stmt (modify);
+     }
+   else if (!HAS_ROWS (m))
+     {
+       /* This mode has no rows.  We can just fill in with zeroes, which
+ 	 translates into SKIP values for all possibly contained types.  */
+       tree call = builtin_decl_explicit (BUILT_IN_MEMSET);
+       call = build_call_expr_loc (UNKNOWN_LOCATION, call, 3,
+ 				  buffer,
+ 				  integer_zero_node,
+ 				  fold_convert (sizetype, size_in_bytes (CTYPE (m))));
+       a68_add_stmt (call);
+     }
+   else if (m == M_STRING)
+     {
+       /* Strings are rows but handled especially as they are created empty and
+ 	 don't feature bounds in the formal declarer.  */
+ 
+       /* First the descriptor.  */
+       tree pointer_byte_size = size_int (POINTER_SIZE / BITS_PER_UNIT);
+       tree lb_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, ssizetype, lb_address),
+ 				 ssize_int (1)));
+       offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+       tree ub_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, ssizetype, ub_address),
+ 				 ssize_int (0)));
+       offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+       tree stride_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, sizetype, stride_address),
+ 				 size_in_bytes (a68_char_type)));
+ 
+       /* The data is an empty string, i.e NULL.  */
+       offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+       tree elems_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, build_pointer_type (a68_char_type),
+ 					      elems_address),
+ 				 build_int_cst (build_pointer_type (a68_char_type), 0)));
+ 
+       /* The size of the elements is zero.  */
+       offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+       tree elems_size_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, build_pointer_type (a68_char_type),
+ 					      elems_size_address),
+ 				 size_zero_node));
+     }
+   else if (A68_ROW_TYPE_P (type))
+     {
+       /* If the row mode is flexible we can deflex it now: these also must have
+ 	 bounds specified for them, with the only exception of strings/flexible
+ 	 rows of chars, which are handled above.  Note we cannot use DEFLEXED
+ 	 here because that contains the fully deflexed mode.  For example,
+ 	 DEFLEXED returns [][]INT for FLEX[]FLEX[]INT, and we want []FLEX[]INT
+ 	 instead.  */
+       if (IS_FLEX (m))
+ 	m = SUB (m);
+ 
+       /* Consume two bounds from BOUNDS for each dimension and patch them at
+ 	 their right offsets.  Note that we have to process from upper
+ 	 dimension to lower dimension so we can calculate the stride as we
+ 	 go.  */
+       size_t dim = DIM (m);
+ 
+       /* Collect lower and upper bounds and calculate the number of elements of
+ 	 the multiple.  */
+       tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+       tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+       tree num_elems = NULL_TREE;
+       for (size_t i = 0; i < dim; ++i)
+ 	{
+ 	  /* Note we have to convert the bounds from CTYPE(M_INT) to
+ 	     ssizetype.  */
+ 	  lower_bounds[i] = fold_convert (ssizetype, save_expr (tsi_stmt (*bounds)));
+ 	  tsi_next (bounds);
+ 	  upper_bounds[i] = fold_convert (ssizetype, save_expr (tsi_stmt (*bounds)));
+ 	  tsi_next (bounds);
+ 
+ 	  tree dim_num_elems
+ 	    = fold_build2 (PLUS_EXPR, sizetype,
+ 			   fold_convert (sizetype,
+ 					 fold_build2 (MINUS_EXPR, ssizetype,
+ 						      upper_bounds[i], lower_bounds[i])),
+ 			   size_one_node);
+ 	  dim_num_elems = fold_build3 (COND_EXPR,
+ 				       sizetype,
+ 				       fold_build2 (LT_EXPR, ssizetype,
+ 						    upper_bounds[i], lower_bounds[i]),
+ 				       size_zero_node,
+ 				       dim_num_elems);
+ 	  if (num_elems == NULL_TREE)
+ 	    num_elems = dim_num_elems;
+ 	  else
+ 	    num_elems = fold_build2 (MULT_EXPR, sizetype, num_elems, dim_num_elems);
+ 	}
+ 
+       /* Calculate strides.  */
+       tree *strides = (tree *) xmalloc (sizeof (tree) * dim);
+       a68_multiple_compute_strides (type, dim, lower_bounds, upper_bounds, strides);
+ 
+       /* Now emit instructions to patch the bounds and strides.  */
+       tree pointer_byte_size = size_int (POINTER_SIZE / BITS_PER_UNIT);
+       for (size_t i = 0; i < dim; ++i)
+ 	{
+ 	  /* Lower bound.  */
+ 	  tree lb_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				     void_type_node,
+ 				     fold_build1 (INDIRECT_REF, ssizetype, lb_address),
+ 				     lower_bounds[i]));
+ 	  /* Upper bound.  */
+ 	  offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+ 	  tree ub_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				     void_type_node,
+ 				     fold_build1 (INDIRECT_REF, ssizetype, ub_address),
+ 				     upper_bounds[i]));
+ 	  /* Stride.  */
+ 	  offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+ 	  tree stride_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				     void_type_node,
+ 				     fold_build1 (INDIRECT_REF, sizetype, stride_address),
+ 				     strides[i]));
+ 	  offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+ 	}
+       free (lower_bounds);
+       free (upper_bounds);
+       free (strides);
+ 
+       /* Now allocate space for the elements.  */
+       MOID_T *elem_mode = SUB (m);
+       tree elem_size = fold_convert (sizetype, size_in_bytes (CTYPE (elem_mode)));
+       tree elems_size = save_expr (fold_build2 (MULT_EXPR, sizetype, elem_size, num_elems));
+       tree elemsptr = (*allocator) (elem_mode, elems_size);
+       elemsptr = save_expr (elemsptr);
+ 
+       /* And initialize them.  */
+       if (elem_mode == M_INT || elem_mode == M_BOOL || elem_mode == M_CHAR
+ 	  || elem_mode == M_REAL || IS_REF (elem_mode))
+ 	{
+ 	  /* Memsetting the buffer with either zeroes or ones satisfies the
+ 	     SKIP value for these modes.  */
+ 	  tree call = builtin_decl_explicit (BUILT_IN_MEMSET);
+ 	  call = build_call_expr_loc (UNKNOWN_LOCATION, call, 3,
+ 				      elemsptr,
+ 				      integer_zero_node,
+ 				      elems_size);
+ 	  a68_add_stmt (call);
+ 	}
+       else
+ 	{
+ 	  /* Recurse in a loop to fill in elements.  */
+ 	  a68_push_range (NULL);
+ 	  tree num_elems_var = a68_lower_tmpvar ("numelems%", size_type_node,
+ 						 num_elems);
+ 	  tree index = a68_lower_tmpvar ("index%", size_type_node, size_zero_node);
+ 	  tree elems_var = a68_lower_tmpvar ("elems%", TREE_TYPE (elemsptr),
+ 					     elemsptr);
+ 	  tree elem_offset = a68_lower_tmpvar ("elem_offset%", size_type_node,
+ 					       size_zero_node);
+ 
+ 	  /* Begin of loop body.  */
+ 	  a68_push_range (NULL);
+ 	  a68_add_stmt (fold_build1 (EXIT_EXPR,
+ 				     void_type_node,
+ 				     fold_build2 (EQ_EXPR,
+ 						  size_type_node,
+ 						  index, num_elems_var)));
+ 	  a68_add_stmt (fill_in_buffer (elems_var, elem_offset, bounds, elem_mode,
+ 					allocator));
+ 	  /* Increase elem_offset  */
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR, sizetype,
+ 				     elem_offset,
+ 				     fold_build2 (PLUS_EXPR, sizetype,
+ 						  elem_offset, elem_size)));
+ 	  /* index++ */
+ 	  a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR,
+ 				     size_type_node,
+ 				     index, size_one_node));
+ 	  tree loop_body = a68_pop_range ();
+ 	  /* End of loop body.  */
+ 	  a68_add_stmt (fold_build1 (LOOP_EXPR,
+ 				     void_type_node,
+ 				     loop_body));
+ 	  a68_add_stmt (a68_pop_range ());
+ 	}
+ 
+       /* Patch the elements% field.  */
+       tree elems_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 void_type_node,
+ 				 fold_build1 (INDIRECT_REF,
+ 					      build_pointer_type (CTYPE (elem_mode)), elems_address),
+ 				 elemsptr));
+       /* Patch the elements_size% field.  */
+       offset = fold_build2 (PLUS_EXPR, sizetype, offset, pointer_byte_size);
+       tree elems_size_address = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 				 void_type_node,
+ 				 fold_build1 (INDIRECT_REF,
+ 					      sizetype,
+ 					      elems_size_address),
+ 				 elems_size));
+     }
+   else if (A68_STRUCT_TYPE_P (type))
+     {
+       /* Initialize the struct's fields in the allocated buffer.  */
+       tree base = a68_lower_tmpvar ("base%", TREE_TYPE (buffer),
+ 				    fold_build2 (POINTER_PLUS_EXPR,
+ 						 TREE_TYPE (buffer),
+ 						 buffer, offset));
+       PACK_T *field_pack = PACK (m);
+       for (tree field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+ 	{
+ 	  gcc_assert (COMPLETE_TYPE_P (TREE_TYPE (field)));
+ 	  //	  printf ("BYTE_POSITION\n");
+ 	  //	  debug_tree (byte_position (field));
+ 	  a68_add_stmt (fill_in_buffer (base, byte_position (field),
+ 					bounds, MOID (field_pack), allocator));
+ 	  FORWARD (field_pack);
+ 	}
+     }
+   else if (A68_UNION_TYPE_P (type))
+     {
+       /* Union values are initialized with an overhead of (sizetype) -1, which
+ 	 means it is not initialized.  Note that row declarers in united modes
+ 	 are formal declarers, so they never contribute bounds. */
+       tree overhead_address
+ 	= fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer), buffer, offset);
+       tree uninitialized = fold_convert (sizetype, build_minus_one_cst (ssizetype));
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 fold_build1 (INDIRECT_REF, sizetype, overhead_address),
+ 				 uninitialized));
+ #if 0
+       /* Set the rest of the union with zeroes.  */
+       tree value_address
+ 	= fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (buffer),
+ 		       buffer,
+ 		       fold_build2 (PLUS_EXPR, sizetype, offset, size_in_bytes (sizetype)));
+ 
+       tree value_field = TREE_CHAIN (TYPE_FIELDS (type));
+       tree call = builtin_decl_explicit (BUILT_IN_MEMSET);
+       call = build_call_expr_loc (UNKNOWN_LOCATION, call, 3,
+ 				  value_address,
+ 				  integer_zero_node,
+ 				  size_in_bytes (TREE_TYPE (value_field)));
+       a68_add_stmt (call);
+ #endif
+     }
+   else
+     gcc_unreachable ();
+ 
+   a68_add_stmt (buffer);
+   filler = a68_pop_stmt_list ();
+   TREE_TYPE (filler) = pointer_type;
+   return filler;
+ }
+ 
+ /* Lower to code that generates storage for a value of mode M, using bounds
+    from BOUNDS.  */
+ 
+ static tree
+ gen_mode (MOID_T *m, tree_stmt_iterator *bounds, allocator_t allocator)
+ {
+   /* Allocate space for the value and fill it.  */
+   tree buffer = (*allocator) (m, size_in_bytes (CTYPE (m)));
+   buffer = save_expr (buffer);
+   return fill_in_buffer (buffer, size_zero_node, bounds, m, allocator);
+ }
+ 
+ /* Collect row bounds from BOUNDS.
+    Lower bounds are optional, and if not found they default to 1.  */
+ 
+ static void
+ collect_bounds (NODE_T *p, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, BOUNDS_LIST))
+ 	collect_bounds (SUB (p), ctx);
+       else if (IS (p, BOUND))
+ 	collect_bounds (SUB (p), ctx);
+       else if (IS (p, UNIT))
+ 	{
+ 	  /* First the lower bound.  */
+ 	  tree lower_bound;
+ 	  if (NEXT (p) != NO_NODE && IS (NEXT (p), COLON_SYMBOL))
+ 	    {
+ 	      lower_bound = a68_lower_tree (p, ctx);
+ 	      p = NEXT_NEXT (p);
+ 	    }
+ 	  else
+ 	    /* Default lower bound.  */
+ 	    lower_bound = integer_one_node;
+ 
+ 	  /* Now the upper bound.  */
+ 	  tree upper_bound = a68_lower_tree (p, ctx);
+ 
+ 	  /* See the comment for collect_declarer_bounds for an explanation for
+ 	     the usage of save_expr here.  */
+ 	  a68_add_stmt (save_expr (lower_bound));
+ 	  a68_add_stmt (save_expr (upper_bound));
+ 	}
+     }
+ }
+ 
+ /* Append all the bounds found in the given declarer in the current statements
+    list.  */
+ 
+ static void
+ collect_declarer_bounds_1 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, BOUNDS))
+ 	collect_bounds (SUB (p), ctx);
+       else if (IS (p, INDICANT) && IS_LITERALLY (p, "STRING"))
+ 	return;
+       else if (IS (p, INDICANT))
+ 	{
+ 	  if (TAX (p) != NO_TAG && HAS_ROWS (MOID (TAX (p))))
+ 	    /* Continue from definition at MODE A = ....  */
+ 	    collect_declarer_bounds_1 (NEXT_NEXT (NODE (TAX (p))), ctx);
+ 	}
+       else if (IS (p, DECLARER)
+ 	       && (IS_UNION (MOID (p)) || !HAS_ROWS (MOID (p))))
+ 	  return;
+       else
+ 	collect_declarer_bounds_1 (SUB (p), ctx);
+     }
+ }
+ 
+ /* Given a declarer node, return a statements list with all the expressions of
+    the bounds within it.
+ 
+    Note that the language rules mandates that the bounds expression shall be
+    evaluated just once even when they are used by several generators, such as
+    in
+ 
+      [n +:= 1]real a, b;
+ 
+      Therefore the expressions are saved in save_exprs and the statements list
+      is cached in the CDECL field of the parse tree node.  */
+ 
+ static tree
+ collect_declarer_bounds (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (CDECL (p) == NULL_TREE)
+     {
+       a68_push_stmt_list (M_VOID);
+       collect_declarer_bounds_1 (SUB (p), ctx);
+       CDECL (p) = a68_pop_stmt_list ();
+     }
+ 
+   return CDECL (p);
+ }
+ 
+ /* Low the elaboration of a generator.
+ 
+    The lowered code evaluates to a pointer.
+ 
+    DECLARER is the actual declarer passed to the generator.
+ 
+    MODE is the mode of the value to generate.
+ 
+    HEAP is true if we are lowering a heap generator, false if we are lowering a
+    LOC generator.  */
+ 
+ tree
+ a68_low_generator (NODE_T *declarer,
+ 		   MOID_T *mode,
+ 		   bool heap, LOW_CTX_T ctx)
+ {
+   /* If the declarer is a mode indicant which has a recursive definition then
+      we need to lower to a function which gets immediately called rather than
+      an expression, to handle the recursivity.  In that case, though, we need
+      to always heap allocated memory for obvious reasons, which sucks, but such
+      is life.  */
+ 
+   if (IS (SUB (declarer), INDICANT) && TAX (SUB (declarer)) != NO_TAG
+       && IS_RECURSIVE (TAX (SUB (declarer))))
+     {
+       if (TAX_TREE_DECL (TAX (SUB (declarer))) != NULL_TREE)
+ 	{
+ 	  /* This is a recursive mode indicant.  Just call the function.  */
+ 	  return save_expr (build_call_expr_loc (a68_get_node_location (SUB (declarer)),
+ 						 TAX_TREE_DECL (TAX (SUB (declarer))),
+ 						 0));
+ 	}
+ 
+       tree ret_type = build_pointer_type (CTYPE (mode));
+       tree func_decl = build_decl (a68_get_node_location (declarer),
+ 				   FUNCTION_DECL,
+ 				   NULL_TREE /* name, set below */,
+ 				   build_function_type (ret_type, void_list_node));
+       char *name = xasprintf ("genroutine%d", DECL_UID (func_decl));
+       DECL_NAME (func_decl) = a68_get_mangled_identifier (name);
+       free (name);
+       DECL_EXTERNAL (func_decl) = 0;
+       DECL_STATIC_CHAIN (func_decl) = !a68_in_global_range ();
+       TREE_ADDRESSABLE (func_decl) = 1;
+       TREE_PUBLIC (func_decl) = a68_in_global_range ();
+       TREE_STATIC (func_decl) = 1;
+       TAX_TREE_DECL (TAX (SUB (declarer))) = func_decl;
+ 
+       a68_add_decl (func_decl);
+       a68_add_decl_expr (fold_build1_loc (a68_get_node_location (declarer),
+ 					  DECL_EXPR,
+ 					  TREE_TYPE (func_decl),
+ 					  func_decl));
+       announce_function (func_decl);
+       a68_push_function_range (func_decl, ret_type);
+ 
+       /* Collect bounds from declarer.  */
+       tree bounds = collect_declarer_bounds (declarer, ctx);
+ 
+       /* Allocate and initialize a memory buffer for a value of mode MODE with
+ 	 bounds in BOUNDS.  */
+       tree_stmt_iterator bounds_iter = tsi_start (bounds);
+       tree gen = gen_mode (mode, &bounds_iter, a68_lower_malloc);
+       a68_pop_function_range (gen);
+       /* Avoid this generator function, which uses the global lexical
+ 	 environment, to be reused in other contexts.  */
+       TAX_TREE_DECL (TAX (SUB (declarer))) = NULL_TREE;
+       return save_expr (build_call_expr_loc (a68_get_node_location (declarer),
+ 					     func_decl, 0));
+     }
+   else
+     {
+       /* Collect bounds from declarer.  */
+       tree bounds = collect_declarer_bounds (declarer, ctx);
+ 
+       /* Allocate and initialize a memory buffer for a value of mode MODE with
+ 	 bounds in BOUNDS.  */
+       tree_stmt_iterator bounds_iter = tsi_start (bounds);
+       tree gen = gen_mode (mode, &bounds_iter,
+ 			   heap ? a68_lower_malloc : a68_lower_alloca);
+       return gen;
+     }
+ }
+ 
+ /* Allocate storage for a value of mode M.
+    NBOUNDS is the number of bounds in BOUNDS.  */
+ 
+ tree
+ a68_low_gen (MOID_T *m, size_t nbounds, tree *bounds, bool use_heap)
+ {
+   /* First collect bounds from BOUNDS into a statements list, which is what
+      gen_mode expects.  */
+   tree bounds_list = alloc_stmt_list ();
+   for (size_t i = 0; i < nbounds; ++i)
+     append_to_statement_list_force (bounds[i], &bounds_list);
+   allocator_t allocator = use_heap ? a68_lower_malloc : a68_lower_alloca;
+ 
+   tree_stmt_iterator q = tsi_start (bounds_list);
+   tree ret = gen_mode (m, &q, allocator);
+   free_stmt_list (bounds_list);
+   return ret;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-holes.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-holes.cc
*** gcc-15.2.0/gcc/algol68/a68-low-holes.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-holes.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,243 ----
+ /* Lowering routines for formal holes.
+    Copyright (C) 2026 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Get the symbol associated with the formal hole P. *ADDRP is set to `true' if
+    the string denotation in the formal hole starts with `&'.  */
+ 
+ static const char *
+ get_hole_symbol (NODE_T *p, bool *addrp)
+ {
+   NODE_T *str = NEXT_SUB (p);
+   if (IS (str, LANGUAGE_INDICANT))
+     FORWARD (str);
+   gcc_assert (IS (str, TERTIARY));
+   while (str != NO_NODE && !IS (str, ROW_CHAR_DENOTATION))
+     str = SUB (str);
+   gcc_assert (IS (str, ROW_CHAR_DENOTATION));
+ 
+   const char *cstr = NSYMBOL (str);
+   bool isaddr = false;
+   if (strlen (cstr) > 0 && cstr[0] == '&')
+     {
+       isaddr = true;
+       cstr = cstr + 1;
+     }
+ 
+   if (addrp != NULL)
+     *addrp = isaddr;
+   return a68_string_process_breaks (p, cstr);
+ }
+ 
+ /* Build and return a var decl providing access to the formal hole P.  */
+ 
+ tree
+ a68_wrap_formal_var_hole (NODE_T *p)
+ {
+   gcc_assert (!IS (MOID (p), PROC_SYMBOL));
+   bool addrp;
+   const char *symbol = get_hole_symbol (p, &addrp);
+   return a68_make_formal_hole_decl (p, symbol, addrp);
+ }
+ 
+ /* Build the body for a wrapper to the formal hole in P, which is of a proc
+    mode.  The body is installed in the function_decl WRAPPER.  */
+ 
+ void
+ a68_wrap_formal_proc_hole (NODE_T *p, tree wrapper)
+ {
+   gcc_assert (IS (MOID (p), PROC_SYMBOL));
+ 
+   bool addrp;
+   const char *symbol = get_hole_symbol (p, &addrp);
+   gcc_assert (addrp == false);
+ 
+   /* Create a wrapper function.  */
+ 
+   MOID_T *m = MOID (p);
+ 
+   /* Determine how many arguments we need for the wrapped function. */
+   int wrapped_nargs = 0;
+   for (PACK_T *z = PACK (m); z != NO_PACK; FORWARD (z))
+     {
+       if (MOID(z) == M_STRING)
+ 	wrapped_nargs += 3;
+       else
+ 	wrapped_nargs += 1;
+     }
+   if (SUB (m) == M_STRING)
+     wrapped_nargs += 2;
+ 
+   /* Now build the type of the wrapped function.  */
+   tree wrapper_ret_type = TREE_TYPE (TREE_TYPE (wrapper));
+   tree wrapped_ret_type = (SUB (m) == M_STRING || SUB (m) == M_VOID
+ 			   ? void_type_node : wrapper_ret_type);
+   tree *wrapped_args_types = XALLOCAVEC (tree, wrapped_nargs);
+   int nwrappedarg = 0;
+   for (PACK_T *z = PACK (m); z != NO_PACK; FORWARD (z))
+     {
+       if (MOID (z) == M_STRING)
+ 	{
+ 	  wrapped_args_types[nwrappedarg++] = build_pointer_type (a68_char_type);
+ 	  wrapped_args_types[nwrappedarg++] = size_type_node;
+ 	  wrapped_args_types[nwrappedarg++] = size_type_node;
+ 	}
+       else
+ 	{
+ 	      wrapped_args_types[nwrappedarg++] = CTYPE (MOID (z));
+ 	}
+     }
+ 
+   if (SUB (m) == M_STRING)
+     {
+       wrapped_args_types[nwrappedarg++]
+ 	= build_pointer_type (build_pointer_type (a68_char_type));
+       wrapped_args_types[nwrappedarg++]
+ 	= build_pointer_type (size_type_node);
+     }
+ 
+   tree wrapped_type = build_function_type_array (wrapped_ret_type,
+ 						 wrapped_nargs,
+ 						 wrapped_args_types);
+ 
+   /* And a decl for the wrapped function.  */
+   tree wrapped = build_decl (UNKNOWN_LOCATION,
+ 			     FUNCTION_DECL,
+ 			     get_identifier (symbol),
+ 			     wrapped_type);
+   DECL_EXTERNAL (wrapped) = 1;
+   TREE_PUBLIC (wrapped) = 1;
+   DECL_ARTIFICIAL (wrapped) = 1;
+   DECL_VISIBILITY (wrapped) = VISIBILITY_DEFAULT;
+   DECL_VISIBILITY_SPECIFIED (wrapped) = 1;
+ 
+   announce_function (wrapper);
+ 
+   vec<tree, va_gc> *wrapped_args;
+   vec_alloc (wrapped_args, wrapped_nargs);
+   for (PACK_T *z = PACK (m); z != NO_PACK; FORWARD (z))
+     {
+       if (MOID (z) == M_STRING)
+ 	{
+ 	  tree str = a68_low_func_param (wrapper, "str", CTYPE (M_STRING));
+ 	  DECL_ARGUMENTS (wrapper) = chainon (str, DECL_ARGUMENTS (wrapper));
+ 
+ 	  tree s = a68_multiple_elements (str);
+ 	  tree len = a68_multiple_num_elems (str);
+ 	  tree stride = a68_multiple_stride (str, size_zero_node /* dim */);
+ 
+ 	  wrapped_args->quick_push (s);
+ 	  wrapped_args->quick_push (len);
+ 	  wrapped_args->quick_push (stride);
+ 	}
+       else
+ 	{
+ 	  tree a = a68_low_func_param (wrapper, "param", CTYPE (MOID (z)));
+ 	  DECL_ARGUMENTS (wrapper) = chainon (a, DECL_ARGUMENTS (wrapper));
+ 	  wrapped_args->quick_push (a);
+ 	}
+     }
+   DECL_ARGUMENTS (wrapper) = nreverse (DECL_ARGUMENTS (wrapper));
+ 
+   tree body = NULL_TREE;
+   a68_push_function_range (wrapper, wrapper_ret_type);
+   {
+     /* Note how we need a pointer to a function type for the call.  */
+     if (!POINTER_TYPE_P (TREE_TYPE (wrapped)))
+       wrapped = fold_build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (wrapped)),
+ 			     wrapped);
+     if (SUB (m) == M_STRING
+ 	|| (IS_REF (SUB (m)) && SUB (SUB (m)) == M_STRING))
+       {
+ 	a68_push_range (SUB (m));
+ 	tree ptrchar_type = build_pointer_type (a68_char_type);
+ 	tree r = a68_lower_tmpvar ("r%", ptrchar_type, build_int_cst (ptrchar_type, 0));
+ 	tree rlen = a68_lower_tmpvar ("rlen%", sizetype, size_int (0));
+ 	TREE_ADDRESSABLE (r) = 1;
+ 	TREE_ADDRESSABLE (rlen) = 1;
+ 
+ 	/* Add two additional arguments to the wrapped call if the wrapper
+ 	   returns a string.  */
+ 	wrapped_args->quick_push (fold_build1 (ADDR_EXPR,
+ 					       build_pointer_type (ptrchar_type), r));
+ 	wrapped_args->quick_push (fold_build1 (ADDR_EXPR,
+ 					       build_pointer_type (sizetype), rlen));
+ 
+ 	/* Call to the wrapped function.  */
+ 	tree call = build_call_vec (TREE_TYPE (wrapped_type), wrapped, wrapped_args);
+ 	a68_add_stmt (call);
+ 
+ 	/* Build the result string.  */
+ 	tree lower_bound = ssize_int (1);
+ 	tree upper_bound = fold_convert (ssizetype, rlen);
+ 	tree relems_size = fold_build2 (MULT_EXPR, sizetype,
+ 					rlen, size_in_bytes (a68_char_type));
+ 
+ 
+ 	if (SUB (m) == M_STRING)
+ 	  a68_add_stmt (a68_row_value (CTYPE (M_STRING), 1 /* dim */,
+ 				       r, relems_size, &lower_bound, &upper_bound));
+ 	else
+ 	  {
+ 	    /* Return a ref to string.  */
+ 	    gcc_assert (IS_REF (SUB (m)) && SUB (SUB (m)) == M_STRING);
+ 	    a68_add_stmt (a68_row_malloc (M_STRING, 1 /* dim */,
+ 					  r, relems_size,
+ 					  &lower_bound, &upper_bound));
+ 	  }
+ 	body = a68_pop_range ();
+       }
+     else if (SUB (m) == M_VOID)
+       {
+ 	a68_push_range (M_VOID);
+ 	a68_add_stmt (build_call_vec (TREE_TYPE (wrapped_type),
+ 				      wrapped,
+ 				      wrapped_args));
+ 	a68_add_stmt (a68_get_empty ());
+ 	body = a68_pop_range ();
+       }
+     else
+       body = build_call_vec (TREE_TYPE (wrapped_type), wrapped, wrapped_args);
+   }
+   a68_pop_function_range (body);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-ints.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-ints.cc
*** gcc-15.2.0/gcc/algol68/a68-low-ints.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-ints.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,310 ----
+ /* Lowering routines for all things related to INT values.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielind of SKIP for the given integral mode.  */
+ 
+ tree
+ a68_get_int_skip_tree (MOID_T *m)
+ {
+   tree type;
+ 
+   if (m == M_INT)
+     type = a68_int_type;
+   else if (m == M_LONG_INT)
+     type = a68_long_int_type;
+   else if (m == M_LONG_LONG_INT)
+     type = a68_long_long_int_type;
+   else if (m == M_SHORT_INT)
+     type = a68_short_int_type;
+   else if (m == M_SHORT_SHORT_INT)
+     type = a68_short_short_int_type;
+   else
+     gcc_unreachable ();
+ 
+   return build_int_cst (type, 0);
+ }
+ 
+ /* Given an integral type, build the maximum value expressable in that
+    type.  */
+ 
+ tree
+ a68_int_maxval (tree type)
+ {
+   return fold_convert (type, TYPE_MAX_VALUE (type));
+ }
+ 
+ /* Given an integral type, build the minimum value expressable in that
+    type.  */
+ 
+ tree
+ a68_int_minval (tree type)
+ {
+   return fold_convert (type, TYPE_MIN_VALUE (type));
+ }
+ 
+ /* Given an integer value VAL, return -1 if it is less than zero, 0 if it is
+    zero and +1 if it is bigger than zero.  The built value is always of mode
+    M_INT.  */
+ 
+ tree
+ a68_int_sign (tree val)
+ {
+   tree zero = build_int_cst (TREE_TYPE (val), 0);
+   val = save_expr (val);
+   return fold_build3 (COND_EXPR,
+ 		      a68_int_type,
+ 		      fold_build2 (EQ_EXPR, integer_type_node, val, zero),
+ 		      build_int_cst (a68_int_type, 0),
+ 		      fold_build3 (COND_EXPR,
+ 				   a68_int_type,
+ 				   fold_build2 (GT_EXPR, integer_type_node, val, zero),
+ 				   build_int_cst (a68_int_type, 1),
+ 				   build_int_cst (a68_int_type, -1)));
+ }
+ 
+ /* Absolute value of an integer.  */
+ 
+ tree
+ a68_int_abs (tree val)
+ {
+   return fold_build1 (ABS_EXPR, TREE_TYPE (val), val);
+ }
+ 
+ /* Build the integral value lengthened from the value of VAL, from mode
+    FROM_MODE to mode TO_MODE.  */
+ 
+ tree
+ a68_int_leng (MOID_T *to_mode, MOID_T *from_mode ATTRIBUTE_UNUSED, tree val)
+ {
+   /* Lengthening can be done by just a cast.  */
+   return fold_convert (CTYPE (to_mode), val);
+ }
+ 
+ /* Build the integral value that can be lengthened to the value of VAL, from
+    mode FROM_MODE to mode TO_MODE.
+ 
+    If VAL cannot be represented in TO_MODE because it is bigger than the most
+    positive value representable in TO_MODE, then it is truncated to that value.
+ 
+    Likewise, if VAL cannot be represented in TO_MODE because it is less than
+    the most negative value representable in TO_MODE, then it is truncated to
+    that value.  */
+ 
+ tree
+ a68_int_shorten (MOID_T *to_mode, MOID_T *from_mode ATTRIBUTE_UNUSED, tree val)
+ {
+   tree most_positive_value = fold_convert (CTYPE (from_mode),
+ 					   a68_int_maxval (CTYPE (to_mode)));
+   tree most_negative_value = fold_convert (CTYPE (from_mode),
+ 					   a68_int_minval (CTYPE (to_mode)));
+ 
+   val = save_expr (val);
+   most_positive_value = save_expr (most_positive_value);
+   most_negative_value = save_expr (most_negative_value);
+   return fold_build3 (COND_EXPR, CTYPE (to_mode),
+ 		      fold_build2 (GT_EXPR, a68_bool_type, val, most_positive_value),
+ 		      fold_convert (CTYPE (to_mode), most_positive_value),
+ 		      fold_build3 (COND_EXPR, CTYPE (to_mode),
+ 				   fold_build2 (LT_EXPR, a68_bool_type, val, most_negative_value),
+ 				   fold_convert (CTYPE (to_mode), most_negative_value),
+ 				   fold_convert (CTYPE (to_mode), val)));
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates the
+    addition of A and B.  */
+ 
+ tree
+ a68_int_plus (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, PLUS_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates the
+    subtraction of A by B.  */
+ 
+ tree
+ a68_int_minus (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, MINUS_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates the
+    multiplication of A by B.  */
+ 
+ tree
+ a68_int_mult (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, MULT_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates the
+    division of A by B.  */
+ 
+ tree
+ a68_int_div (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, TRUNC_DIV_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A = B.  */
+ 
+ tree
+ a68_int_eq (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A /= B.  */
+ 
+ tree
+ a68_int_ne (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A < B.  */
+ 
+ tree
+ a68_int_lt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A <= B.  */
+ 
+ tree
+ a68_int_le (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A > B.  */
+ 
+ tree
+ a68_int_gt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build an expression that calculates
+    whether A >= B.  */
+ 
+ tree
+ a68_int_ge (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two integral values of mode M, build and expression that calculates the
+    modulus as specified by the Revised Report:
+ 
+    OP MOD = (L INT a, b) L INT:
+      (INT r = a - a % b * b; r < 0 | r + ABS b | r)
+ */
+ 
+ tree
+ a68_int_mod (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   a = save_expr (a);
+   b = save_expr (b);
+   tree r = a68_int_minus (m, a, a68_int_mult (m, a68_int_div (m, a, b), b));
+ 
+   r = save_expr (r);
+   return fold_build3_loc (loc, COND_EXPR, CTYPE (m),
+ 			  a68_int_lt (r, build_int_cst (CTYPE (m), 0)),
+ 			  a68_int_plus (m, r, a68_int_abs (b)),
+ 			  r);
+ }
+ 
+ /* Given two integral values values, the first of mode M an the second of mode
+    INT, build an expression that calculates the exponentiation of A by B, as
+    specified by the Revised Report:
+ 
+    OP ** = (L INT a, INT b) L INT:
+      (b >= 0 | L INT p := L 1; TO b DO p := p * a OD; p)
+ */
+ 
+ tree
+ a68_int_pow (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   tree zero = build_int_cst (CTYPE (m), 0);
+   tree one = build_int_cst (CTYPE (m), 1);
+ 
+   a = save_expr (a);
+   b = save_expr (fold_convert (CTYPE (m), b));
+ 
+   a68_push_range (m);
+   tree index = a68_lower_tmpvar ("index%", CTYPE (m), zero);
+   tree p = a68_lower_tmpvar ("p%", CTYPE (m), one);
+ 
+   /* Begin of loop body.  */
+   a68_push_range (NULL);
+   {
+     /* if (index == b) break;  */
+     a68_add_stmt (fold_build1 (EXIT_EXPR,
+ 			       void_type_node,
+ 			       fold_build2 (EQ_EXPR, CTYPE (m),
+ 					    index, b)));
+     a68_add_stmt (fold_build2 (MODIFY_EXPR, CTYPE (m),
+ 			       p, a68_int_mult (m, p, a)));
+ 
+     /* index++ */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR, CTYPE (m),
+ 			       index, one));
+   }
+   tree loop_body = a68_pop_range ();
+   a68_add_stmt (fold_build1 (LOOP_EXPR,
+ 			     void_type_node,
+ 			     loop_body));
+   a68_add_stmt (p);
+   tree calculate_p = a68_pop_range ();
+   return fold_build3_loc (loc, COND_EXPR, CTYPE (m),
+ 			  a68_int_ge (b, zero),
+ 			  calculate_p, zero);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-misc.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-misc.cc
*** gcc-15.2.0/gcc/algol68/a68-low-misc.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-misc.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,234 ----
+ /* Lower miscellaneous tree nodes to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Lower an assertion.
+ 
+      assertion : assert symbol, enclosed clause.
+ */
+ 
+ tree
+ a68_lower_assertion (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (!OPTION_ASSERT (&A68_JOB))
+     return a68_get_empty();
+ 
+   /* Build the call to the assert run-time function.  */
+   unsigned int lineno = NUMBER (LINE (INFO (p)));
+   const char *filename_str = FILENAME (LINE (INFO (p)));
+   tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					filename_str);
+   tree call = a68_build_libcall (A68_LIBCALL_ASSERT,
+ 				 void_type_node, 2,
+ 				 filename,
+ 				 build_int_cst (unsigned_type_node, lineno));
+   /* Check condition and call assert if required.  */
+   tree assertion = fold_build2_loc (a68_get_node_location (p),
+ 				    COMPOUND_EXPR,
+ 				    a68_void_type,
+ 				    build2_loc (a68_get_node_location (p),
+ 						TRUTH_ORIF_EXPR,
+ 						a68_int_type,
+ 						a68_lower_tree (NEXT (SUB (p)), ctx),
+ 						fold_build2 (COMPOUND_EXPR,
+ 							     a68_int_type,
+ 							     call,
+ 							     build_int_cst (a68_int_type, 0))),
+ 				    a68_get_empty ());
+   TREE_SIDE_EFFECTS (assertion) = 1;
+   return assertion;
+ }
+ 
+ /* Lower a jump to a label.
+ 
+      jump : goto symbol, identifier;
+             identifier.
+ 
+    A jump lowers into a ({ GOTO_EXPR; EMPTY }).  */
+ 
+ tree
+ a68_lower_jump (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *label_identifier = SUB (p);
+   MOID_T *jump_mode = MOID (p);
+   if (!IS (label_identifier, IDENTIFIER))
+     FORWARD (label_identifier);
+ 
+   /* Create LABEL_DECL if necessary and chain it in both current block and bind
+      expression.  */
+   if (TAX_TREE_DECL (TAX (label_identifier)) == NULL_TREE)
+     {
+       tree label_decl = build_decl (a68_get_node_location (label_identifier),
+ 				    LABEL_DECL,
+ 				    a68_get_mangled_identifier (NSYMBOL (label_identifier)),
+ 				    void_type_node);
+       TAX_TREE_DECL (TAX (label_identifier)) = label_decl;
+     }
+ 
+   MOID (label_identifier) = M_VOID;
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  CTYPE (jump_mode),
+ 			  fold_build1_loc (a68_get_node_location (p),
+ 					   GOTO_EXPR,
+ 					   void_type_node,
+ 					   a68_lower_tree (label_identifier, ctx)),
+ 			  a68_get_skip_tree (jump_mode));
+ }
+ 
+ /* Lower a parameter into a chain of PARAM_DECLs.
+ 
+      parameter : declarer, identifier;
+                  parameter, comma symbol, identifier.
+ */
+ 
+ tree
+ a68_lower_parameter (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree prev_parm_decls = NULL_TREE;
+   NODE_T *identifier = NO_NODE;
+   if (IS (SUB (p), PARAMETER))
+     {
+       prev_parm_decls = a68_lower_tree (SUB (p), ctx);
+       identifier = NEXT (NEXT (SUB (p)));
+     }
+   else
+     identifier = NEXT (SUB (p));
+ 
+   /* Create the PARM_DECL.  */
+   tree parm_decl = build_decl (a68_get_node_location (p),
+ 			       PARM_DECL,
+ 			       a68_get_mangled_identifier (NSYMBOL (identifier)),
+ 			       CTYPE (MOID (identifier)));
+   DECL_CONTEXT (parm_decl) = current_function_decl;
+   DECL_ARG_TYPE (parm_decl) = TREE_TYPE (parm_decl);
+   TAX_TREE_DECL (TAX (identifier)) = parm_decl;
+ 
+   layout_decl (parm_decl, 0);
+ 
+   if (prev_parm_decls != NULL)
+     return chainon (prev_parm_decls, parm_decl);
+   else
+     return parm_decl;
+ }
+ 
+ /* Lower a list of parameters into a chain of PARAM_DECLs.
+ 
+         parameter list : parameter;
+                          parameter list; comma symbol; parameter.
+ */
+ 
+ tree
+ a68_lower_parameter_list (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree parm_decl = NULL_TREE;
+   tree prev_parm_decls = NULL_TREE;
+   if (IS (SUB (p), PARAMETER_LIST))
+     {
+       prev_parm_decls = a68_lower_tree (SUB (p), ctx);
+       parm_decl = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+     }
+   else
+     parm_decl = a68_lower_tree (SUB (p), ctx);
+ 
+   gcc_assert (parm_decl != NULL_TREE);
+   if (prev_parm_decls != NULL)
+     return chainon (prev_parm_decls, parm_decl);
+   else
+     return parm_decl;
+ }
+ 
+ /* Lower a parameter pack into a chain of PARAM_DECLs.
+ 
+      parameter pack : open symbol, parameter list, close symbol.
+ */
+ 
+ tree
+ a68_lower_parameter_pack (NODE_T *p, LOW_CTX_T ctx)
+ {
+   /* Lower the contained PARAMETER_LIST.  */
+   return a68_lower_tree (NEXT (SUB (p)), ctx);
+ }
+ 
+ /* Lower an applied operator.
+ 
+    Applied operators lower into a function object that gets one argument in
+    case of monadic operators, or two arguments in case of dyadic operators.  */
+ 
+ tree
+ a68_lower_operator (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   /* This is an user defined operator.  Handle it in a similar way than applied
+      identifiers.  */
+   tree func_decl = TAX_TREE_DECL (TAX (p));
+   if (func_decl == NULL_TREE)
+     {
+       bool external = (MOIF (TAX (p)) != NO_MOIF);
+       const char *extern_symbol = EXTERN_SYMBOL (TAX (p));
+       if (IN_PROC (TAX (p)))
+ 	{
+ 	  if (external)
+ 	    func_decl = a68_make_proc_identity_declaration_decl (p,
+ 								 NAME (MOIF (TAX (p))),
+ 								 true /* indicant */,
+ 								 external,
+ 								 extern_symbol);
+ 	  else
+ 	    func_decl = a68_make_proc_identity_declaration_decl (p,
+ 								 ctx.module_definition_name,
+ 								 true /* indicant */);
+ 	}
+       else
+ 	{
+ 	  if (external)
+ 	    func_decl = a68_make_identity_declaration_decl (p, NAME (MOIF (TAX (p))),
+ 							    true /* indicant */, external,
+ 							    extern_symbol);
+ 	  else
+ 	    func_decl = a68_make_identity_declaration_decl (p, ctx.module_definition_name,
+ 							    true /* indicant */);
+ 	}
+       TAX_TREE_DECL (TAX (p)) = func_decl;
+     }
+   return func_decl;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-moids.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-moids.cc
*** gcc-15.2.0/gcc/algol68/a68-low-moids.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-moids.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,734 ----
+ /* Lower Algol 68 modes to GCC trees.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "stringpool.h"
+ #include "tree.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "print-tree.h"
+ 
+ #include "a68.h"
+ 
+ static tree a68_lower_mode (MOID_T *m);
+ 
+ /*
+  * Support routines and definitions.
+  */
+ 
+ /* Build a stub TYPE_DECL for a given TYPE.
+ 
+    This is used for TYPE_STUB_DECL so we can generate debug info for all our
+    modes, so the TYPE_DECL has no name.  */
+ 
+ static void
+ build_stub_type_decl (tree type, tree context)
+ {
+   if (TYPE_STUB_DECL (type))
+     return;
+ 
+   tree decl = build_decl (UNKNOWN_LOCATION,
+ 			  TYPE_DECL,
+ 			  NULL_TREE /* name */,
+ 			  type);
+   TREE_PUBLIC (decl) = 1;
+   DECL_CONTEXT (decl) = context;
+   TYPE_CONTEXT (type) = DECL_CONTEXT (decl);
+   TYPE_NAME (type) = decl; /* Weird.  This is for typedefs! */
+   TYPE_STUB_DECL (type) = decl;
+ }
+ 
+ /* Builds a record type whose name is NAME.  NFIELDS is the number of fields,
+    provided as field ident/type pairs.
+ 
+    This code is copied from the D front end.  */
+ 
+ static tree
+ make_struct_type (tree type, const char *name, int nfields, ...)
+ {
+   tree fields = NULL_TREE;
+   va_list ap;
+ 
+   va_start (ap, nfields);
+ 
+   for (int i = 0; i < nfields; i++)
+     {
+       tree ident = va_arg (ap, tree);
+       tree type = va_arg (ap, tree);
+       tree field = build_decl (BUILTINS_LOCATION, FIELD_DECL, ident, type);
+       DECL_CHAIN (field) = fields;
+       fields = field;
+     }
+ 
+   va_end (ap);
+ 
+   if (type == NULL_TREE)
+     type = make_node (RECORD_TYPE);
+   finish_builtin_struct (type, name, fields, NULL_TREE);
+ 
+   return type;
+ }
+ 
+ /* Iterate over all the field selectors FIELDS of a structure type and add them
+    as fields to CONTEXT.  Returns the number of field selectors found.  */
+ 
+ static size_t
+ chain_struct_fields (PACK_T *fields, tree context)
+ {
+   PACK_T *elem;
+   size_t num_fields;
+ 
+   for (num_fields = 0, elem = fields;
+        elem != NO_PACK;
+        FORWARD (elem), ++num_fields)
+     {
+       const char *field_name = TEXT (elem);
+       MOID_T *field_mode = MOID (elem);
+       tree field_type = a68_lower_mode (field_mode);
+ 
+       /* Create the field declaration.
+          The declaration is not a compiler-generated entity.
+ 	 Do not ignore the declaration for symbolic debug purposes. */
+       tree field_decl = build_decl ((NODE (field_mode)
+ 				     ? a68_get_node_location (NODE (field_mode))
+ 				     : UNKNOWN_LOCATION),
+ 				    FIELD_DECL,
+ 				    field_name ? get_identifier (field_name) : NULL_TREE,
+ 				    field_type);
+       DECL_ARTIFICIAL (field_decl) = 0;
+       DECL_IGNORED_P (field_decl) = 0;
+ 
+       /* If the mode of the field is not a ref then references to the field
+ 	 cannot appear in a LHS of an assignment.  */
+       TREE_READONLY (field_decl) = IS_REF (field_mode);
+ 
+       /* Associate the tree field declaration and the front end node.  */
+       DECL_LANG_SPECIFIC (field_decl) =
+ 	(NODE (field_mode) ? a68_build_lang_decl (NODE (field_mode)) : NULL);
+ 
+       /* Chain the field declaration in its containing context.  */
+       DECL_FIELD_CONTEXT (field_decl) = context;
+       TYPE_FIELDS (context) = chainon (TYPE_FIELDS (context), field_decl);
+     }
+ 
+   return num_fields;
+ }
+ 
+ /* If the union or struct type TYPE completes the type of any previous field
+    declarations, lay them out now.  */
+ 
+ static void
+ finish_incomplete_fields (tree type)
+ {
+   for (tree fwdref = TYPE_FORWARD_REFERENCES (type); fwdref != NULL_TREE;
+        fwdref = TREE_CHAIN (fwdref))
+     {
+       tree field = TREE_VALUE (fwdref);
+       tree struct_or_union_type = DECL_FIELD_CONTEXT (field);
+ 
+       relayout_decl (field);
+       bool type_complete = true;
+       for (tree field = TYPE_FIELDS (struct_or_union_type);
+ 	   field;
+ 	   field = DECL_CHAIN (field))
+ 	{
+ 	  if (!COMPLETE_TYPE_P (TREE_TYPE (field)))
+ 	    {
+ 	      type_complete = false;
+ 	      break;
+ 	    }
+ 	}
+ 
+       if (type_complete)
+ 	{
+ 	  // XXX why this fires
+ 	  //	  gcc_assert (!COMPLETE_TYPE_P (struct_or_union_type));
+ 	  layout_type (struct_or_union_type);
+ 	  /* Set the back-end type mode now that all fields have had their size
+ 	     set.  */
+ 	  compute_record_mode (struct_or_union_type);
+ 	}
+     };
+ 
+   /* No more forward references to process.  */
+   TYPE_FORWARD_REFERENCES (type) = NULL_TREE;
+ }
+ 
+ /*
+  * Mode lowering routines.
+  */
+ 
+ /* Lower a HIP mode to a GENERIC tree.
+    HIP is the mode of NIL.  */
+ 
+ static tree
+ lower_hip_mode (MOID_T *m)
+ {
+   static tree hip_type;
+ 
+   if (hip_type == NULL)
+     {
+       hip_type = build_pointer_type (a68_void_type);
+       TYPE_LANG_SPECIFIC (hip_type) = a68_build_lang_type (m);
+       CTYPE (m) = hip_type;
+     }
+ 
+   return hip_type;
+ }
+ 
+ /* Lower a standard mode to a GENERIC tree.
+ 
+    Note that this function only has to handle the standard modes that have not
+    been resolved to some equivalent.  */
+ 
+ static tree
+ lower_standard_mode (MOID_T *m)
+ {
+   tree type = NULL_TREE;
+ 
+   if (m == M_VOID)
+     type = a68_void_type;
+   else if (m == M_BOOL)
+     type = a68_bool_type;
+   else if (m == M_CHAR)
+     type = a68_char_type;
+   else if (m == M_SHORT_SHORT_INT)
+     type = a68_short_short_int_type;
+   else if (m == M_SHORT_INT)
+     type = a68_short_int_type;
+   else if (m == M_INT)
+     type = a68_int_type;
+   else if (m == M_LONG_INT)
+     type = a68_long_int_type;
+   else if (m == M_LONG_LONG_INT)
+     type = a68_long_long_int_type;
+   else if (m == M_REAL)
+     type = a68_real_type;
+   else if (m == M_LONG_REAL)
+     type = a68_long_real_type;
+   else if (m == M_LONG_LONG_REAL)
+     type = a68_long_long_real_type;
+   else if (m == M_SHORT_SHORT_BITS)
+     type = a68_short_short_bits_type;
+   else if (m == M_SHORT_BITS)
+     type = a68_short_bits_type;
+   else if (m == M_BITS)
+     type = a68_bits_type;
+   else if (m == M_LONG_BITS)
+     type = a68_long_bits_type;
+   else if (m == M_LONG_LONG_BITS)
+     type = a68_long_long_bits_type;
+   else if (m == M_BYTES)
+     type = a68_bytes_type;
+   else if (m == M_LONG_BYTES)
+     type = a68_long_bytes_type;
+   else if (m == M_FILE)
+     /* XXX for now this is a file descriptor.  */
+     type = integer_type_node;
+   else if (m == M_CHANNEL)
+     /* XXX for now this is a channel descriptor.  */
+     type = integer_type_node;
+   else
+     gcc_unreachable ();
+ 
+   TYPE_LANG_SPECIFIC (type) = a68_build_lang_type (m);
+   return type;
+ }
+ 
+ /* Lower a struct mode to a GENERIC tree.  */
+ 
+ static tree
+ lower_struct_mode (MOID_T *m)
+ {
+   /* First make the GENERIC struct.  This is needed in case of
+      self-references.  */
+   tree struct_type = make_node (RECORD_TYPE);
+   TYPE_NAME (struct_type) = get_identifier ("lalastruct%");
+   TYPE_FIELDS (struct_type) = NULL_TREE;
+   TYPE_CXX_ODR_P (struct_type) = 0;
+   CTYPE (m) = struct_type;
+   TYPE_LANG_SPECIFIC (struct_type) = a68_build_lang_type (m); /* XXX this will get overrided. */
+ 
+   /* Add field declarations.  */
+   chain_struct_fields (PACK (m), struct_type);
+ 
+   /* Layout all fields.  */
+   bool struct_type_complete = true;
+   for (tree field = TYPE_FIELDS (struct_type); field; field = DECL_CHAIN (field))
+     {
+       tree basetype = TREE_TYPE (field);
+ 
+       if (!COMPLETE_TYPE_P (basetype))
+ 	{
+ 	  tree field_type = TREE_TYPE (field);
+ 	  tree forward_refs = tree_cons (NULL_TREE, field,
+ 					 TYPE_FORWARD_REFERENCES (field_type));
+ 	  TYPE_FORWARD_REFERENCES (struct_type) = forward_refs;
+ 
+ 	  struct_type_complete = false;
+ 	  continue;
+ 	}
+ 
+       layout_decl (field, 0);
+       gcc_assert (DECL_SIZE (field) != NULL_TREE);
+     }
+ 
+   /* If all fields have complete types then we can layout the struct type now.
+      Otherwise it will be done in finish_incomplete_types.  */
+   if (struct_type_complete)
+     {
+       layout_type (struct_type);
+       /* Set the back-end type mode now that all fields have had their size
+ 	 set.  */
+       compute_record_mode (struct_type);
+     }
+ 
+   /* Finish debugging output for this type.  */
+   build_stub_type_decl (struct_type, NULL_TREE /* context */);
+   rest_of_type_compilation (struct_type, TYPE_FILE_SCOPE_P (struct_type));
+   rest_of_decl_compilation (TYPE_NAME (struct_type), 1 /* file scope p */, 0);
+   A68_STRUCT_TYPE_P (struct_type) = 1;
+   return struct_type;
+ }
+ 
+ /* Lower a ref mode to a GENERIC tree.
+    REF AMODE lowers to a pointer.  */
+ 
+ static tree
+ lower_ref_mode (MOID_T *m)
+ {
+   return build_pointer_type (a68_lower_mode (SUB (m)));
+ }
+ 
+ /* Lower a flex mode to a GENERIC tree.  */
+ 
+ static tree
+ lower_flex_mode (MOID_T *m)
+ {
+   /* This is basically a qualifier of the parent REF.  */
+   return a68_lower_mode (SUB (m));
+ }
+ 
+ /* Lower a proc mode to a GENERIC tree.  */
+ 
+ static tree
+ lower_proc_mode (MOID_T *m)
+ {
+   tree fnargs = NULL_TREE;
+   tree ret_type;
+ 
+   /* We have to create the function type in advance because it can appear
+      recursively as the type of arguments and/or of the return value.  We
+      cannot use build_function_type, as it doesn't support recursive types.  */
+   tree function_type = make_node (FUNCTION_TYPE);
+   tree ptr_function_type = build_pointer_type (function_type);
+   CTYPE (m) = ptr_function_type;
+ 
+   /* Now add arguments and return value types.  */
+   for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+     {
+       tree arg_type = a68_lower_mode (MOID (p));
+       fnargs = chainon (fnargs, build_tree_list (0, arg_type));
+     }
+   ret_type = a68_lower_mode (SUB (m));
+ 
+   /* Complete the function type.  Note that there is some code duplication with
+      build_function_type, which we cannot use, but such is life.  */
+   TREE_TYPE (function_type) = ret_type; /* THIS */
+   TYPE_ARG_TYPES (function_type) = fnargs;
+   SET_TYPE_STRUCTURAL_EQUALITY (function_type);
+ 
+   if (!COMPLETE_TYPE_P (function_type))
+     layout_type (function_type);
+ 
+   return ptr_function_type;
+ }
+ 
+ /* Lower an union mode to a GENERIC tree.
+ 
+    overhead%     Characterizes the actual mode of the value.
+    value%        GENERIC union.  */
+ 
+ static tree
+ lower_union_mode (MOID_T *m)
+ {
+   // XXX make the union type QUAL_UNION_TYPE and relate the fields with the
+   // overhead%.  This is necessary for DWARF.
+   tree union_type = make_node (RECORD_TYPE);
+   TYPE_NAME (union_type) = NULL_TREE;
+   TYPE_FIELDS (union_type) = NULL_TREE;
+   TYPE_CXX_ODR_P (union_type) = 0;
+   CTYPE (m) = union_type;
+ 
+   /* Then the GENERIC union.  */
+   tree c_union_type = make_node (UNION_TYPE);
+   TYPE_NAME (c_union_type) = NULL_TREE;
+   TYPE_FIELDS (c_union_type) = NULL_TREE;
+   TYPE_CXX_ODR_P (c_union_type) = 0; // XXX otherwise lto complains.  why.
+   SET_TYPE_STRUCTURAL_EQUALITY (c_union_type);
+ 
+   /* Add field declarations.  */
+   chain_struct_fields (PACK (m), c_union_type);
+ 
+   /* Layout all fields now the type is complete.  */
+   bool c_union_type_complete = true;
+   for (tree field = TYPE_FIELDS (c_union_type); field; field = DECL_CHAIN (field))
+     {
+       tree field_type = TREE_TYPE (field);
+ 
+       if (!COMPLETE_TYPE_P (field_type))
+ 	{
+ 	  tree field_type = TREE_TYPE (field);
+ 	  tree forward_refs = tree_cons (NULL_TREE, field,
+ 					 TYPE_FORWARD_REFERENCES (field_type));
+ 	  TYPE_FORWARD_REFERENCES (c_union_type) = forward_refs;
+ 
+ 	  c_union_type_complete = false;
+ 	  continue;
+ 	}
+ 
+       layout_decl (field, 0);
+       gcc_assert (DECL_SIZE (field) != NULL_TREE);
+     }
+ 
+   /* If all fields have complete types then we can layout the c-union type now.
+      Otherwise it will be done in finish_incomplete_types.  */
+   if (c_union_type_complete)
+     {
+       layout_type (c_union_type);
+       /* Set the back-end type mode now that all fields have had their size
+ 	 set.  */
+       compute_record_mode (c_union_type);
+     }
+ 
+   /* Finish debugging output for this type.  */
+   build_stub_type_decl (c_union_type, NULL_TREE /* context */);
+   rest_of_type_compilation (c_union_type, TYPE_FILE_SCOPE_P (c_union_type));
+   rest_of_decl_compilation (TYPE_NAME (c_union_type), 1 /* file scope p */, 0);
+ 
+   /* Now the type with the overhead.  */
+   TYPE_NAME (union_type) = get_identifier ("union%");
+   tree overhead_field = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 				    get_identifier ("overhead%"), sizetype);
+   tree value_field = build_decl (UNKNOWN_LOCATION, FIELD_DECL,
+ 				 get_identifier ("value%"), c_union_type);
+   DECL_FIELD_CONTEXT (overhead_field) = union_type;
+   DECL_FIELD_CONTEXT (value_field) = union_type;
+   DECL_CHAIN (value_field) = NULL_TREE;
+   DECL_CHAIN (overhead_field) = value_field;
+   TYPE_FIELDS (union_type) = overhead_field;
+ 
+   if (c_union_type_complete)
+     {
+       layout_type (union_type);
+       /* Set the back-end type mode now that all fields have had their size
+ 	 set.  */
+       compute_record_mode (union_type);
+     }
+   else
+     {
+       tree forward_refs = tree_cons (NULL_TREE, value_field,
+ 				     TYPE_FORWARD_REFERENCES (union_type));
+       TYPE_FORWARD_REFERENCES (union_type) = forward_refs;
+     }
+ 
+   SET_TYPE_STRUCTURAL_EQUALITY (union_type);
+   A68_UNION_TYPE_P (union_type) = 1;
+   return union_type;
+ }
+ 
+ /* Return the type for an array descriptor triplet.  */
+ 
+ tree
+ a68_triplet_type (void)
+ {
+   static tree triplet_type = NULL_TREE;
+   if (triplet_type == NULL_TREE)
+     {
+       triplet_type = make_struct_type (NULL_TREE, "triplet%", 3,
+ 				       get_identifier ("lb%"),
+ 				       ssizetype,
+ 				       get_identifier ("ub%"),
+ 				       ssizetype,
+ 				       get_identifier ("stride%"),
+ 				       sizetype);
+     }
+ 
+   return triplet_type;
+ }
+ 
+ /* Return the lower bound field in an array descriptor triplet.  */
+ 
+ tree
+ a68_triplet_type_lower_bound (tree triplet)
+ {
+   tree lb_field = TYPE_FIELDS (triplet);
+   return lb_field;
+ }
+ 
+ /* Lower a row mode to a GENERIC tree.
+ 
+    descriptor%
+      triplets%     Value of ARRAY_TYPE with an entry per multiple dimension.
+      {
+        li%         Lower bound of dimension.
+        ui%         Upper bound of dimension.
+        di%         Stride of dimension in bytes.
+      }
+    elements%       Pointer to the elements.
+    elements_size%  Size of elements% in bytes.
+ */
+ 
+ static tree
+ lower_row_mode (MOID_T *m)
+ {
+   int num_dimensions = DIM (m);
+   tree triplet_type = a68_triplet_type ();
+   tree triplets_type = build_array_type (triplet_type,
+ 					 build_index_type (size_int (num_dimensions - 1)));
+   tree element_type = a68_lower_mode (SUB (m));
+   tree row_type = make_struct_type (NULL_TREE, "row%", 3,
+ 				    get_identifier ("triplets%"),
+ 				    triplets_type,
+ 				    get_identifier ("elements%"),
+ 				    build_pointer_type (element_type),
+ 				    get_identifier ("elements_size%"),
+ 				    sizetype);
+   layout_type (row_type);
+   A68_ROW_TYPE_P (row_type) = 1;
+   return row_type;
+ }
+ 
+ /* Given a row type, return the type of the pointer to its elements.  */
+ 
+ tree
+ a68_row_elements_pointer_type (tree type)
+ {
+   gcc_assert (A68_ROW_TYPE_P (type));
+   /* elements% is the second field.  */
+   return TREE_TYPE (TREE_CHAIN (TYPE_FIELDS (type)));
+ }
+ 
+ /* Given a row type, return the type of its elements.  */
+ 
+ tree
+ a68_row_elements_type (tree type)
+ {
+   return TREE_TYPE (a68_row_elements_pointer_type (type));
+ }
+ 
+ /* Lower a ROWS mode to a GENERIC tree.
+ 
+    dim%         Number of dimensions.
+    triplets%    Pointer to triplets.
+ 
+    Values of this mode are passed to the operators UPB, LWB and ELEMS, which
+    need only descriptor information.  There is no need to store any multiple
+    elements.  */
+ 
+ static tree
+ lower_rows_mode (MOID_T *m ATTRIBUTE_UNUSED)
+ {
+   static tree rows_type = NULL_TREE;
+ 
+   if (rows_type == NULL_TREE)
+     {
+       rows_type = make_struct_type (NULL_TREE, "rows%", 2,
+ 				    get_identifier ("dim%"),
+ 				    sizetype,
+ 				    get_identifier ("triplets%"),
+ 				    build_pointer_type (a68_triplet_type ()));
+       A68_ROWS_TYPE_P (rows_type) = 1;
+     }
+   return rows_type;
+ }
+ 
+ /* Lower modes in a series.  This is used as the mode of the mode yielded by an
+    enclosed clause that yields a series of united rows, for M_ROWS.  */
+ 
+ static tree
+ lower_series (MOID_T *m)
+ {
+   for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+     {
+       if (IS (MOID (p), SERIES_MODE) || IS (MOID (p), STOWED_MODE))
+ 	lower_series (MOID (p));
+       else
+ 	(void) a68_lower_mode (MOID (p));
+     }
+ 
+   return lower_rows_mode (NO_MOID);
+ }
+ 
+ /* Lower a mode to a GENERIC tree.  */
+ 
+ static tree
+ a68_lower_mode (MOID_T *m)
+ {
+   tree type = NULL_TREE;
+ 
+   /* If the given mode has already been lowered, return the corresponding
+      tree.  */
+   if (CTYPE (m) != NULL)
+     return CTYPE (m);
+ 
+   if (EQUIVALENT (m) != NO_MOID && EQUIVALENT (m) != m)
+     /* This covers INDICANTs and standard MOIDS having an equivalent mode.  */
+     type = a68_lower_mode (EQUIVALENT (m));
+   else if (m == M_VOID)
+     type = a68_void_type;
+   else if (m == M_HIP)
+     type = lower_hip_mode (m);
+   else if (IS (m, STANDARD))
+     type = lower_standard_mode (m);
+   else if (IS_REF (m))
+     type = lower_ref_mode (m);
+   else if (IS_FLEX (m))
+     type = lower_flex_mode (m);
+   else if (IS (m, PROC_SYMBOL))
+     type = lower_proc_mode (m);
+   else if (IS_STRUCT (m))
+     type = lower_struct_mode (m);
+   else if (IS_ROW (m))
+     type = lower_row_mode (m);
+   else if (IS_UNION (m))
+     type = lower_union_mode (m);
+   else if (m == M_SIMPLOUT || m == M_SIMPLIN)
+     type = a68_void_type;
+   else if (IS (m, ROWS_SYMBOL))
+     /* ROWS is a mode that means "any row mode".  */
+     type = lower_rows_mode (m);
+   else if (m == M_VACUUM)
+     /* This is a mode that should not survive the parser.  */
+     type = a68_void_type;
+   else if (IS (m, SERIES_MODE) || IS (m, STOWED_MODE))
+     {
+       /* When dealing with operators the parser creates some modes that leak
+ 	 SERIES and STOWED "proto-modes" in them, such as for example:
+ 
+ 	 UNION ((INT, INT), INT, PROC [] CHAR)
+ 
+ 	 These are not really real Algol 68 modes and are useless by
+ 	 themselves, so when we find them, we traverse them (they ultimately
+ 	 contain valid modes that may show up in other contexts and that
+ 	 require being lowered) and just report them as VOID.  */
+       type = lower_series (m);
+     }
+   else
+     {
+       fatal_error (NODE (m) ? a68_get_node_location (NODE (m)) : UNKNOWN_LOCATION,
+ 		   "Cannot lower mode %s",
+ 		   a68_moid_to_string (m, MOID_ERROR_WIDTH, NODE (m)));
+     }
+ 
+   /* Associate the created tree node with the mode, and vice-versa.  */
+   gcc_assert (type != NULL_TREE);
+   TYPE_LANG_SPECIFIC (type) = a68_build_lang_type (m);
+   A68_TYPE_HAS_ROWS_P (type) = HAS_ROWS (m);
+   if (CTYPE (m) == NULL_TREE)
+     CTYPE (m) = type;
+   //  printf ("DONE LOWERING %s\n", a68_moid_to_string (m, MOID_ERROR_WIDTH, NODE (m)));
+   return type;
+ }
+ 
+ /* Lower MOIDs to GENERIC trees.  */
+ 
+ void
+ a68_lower_moids (MOID_T *mode)
+ {
+   /* First pass: all modes but refs.  */
+   for (MOID_T *m = mode; m != NO_MOID; FORWARD (m))
+     (void) a68_lower_mode (m);
+ 
+   /* Try to layout all incomplete types.  This is a two-passes process.  */
+ 
+   for (MOID_T *m = mode; m != NO_MOID; FORWARD (m))
+     {
+       if (IS_STRUCT (m))
+ 	{
+ 	  tree struct_type = CTYPE (m);
+ 	  finish_incomplete_fields (struct_type);
+ 	}
+       else if (IS_UNION (m))
+ 	{
+ 	  tree union_type = CTYPE (m);
+ 	  tree c_union_type = TREE_TYPE (TREE_CHAIN (TYPE_FIELDS (union_type)));
+ 	  finish_incomplete_fields (c_union_type);
+ 	  finish_incomplete_fields (union_type);
+ 	}
+     }
+ 
+   for (MOID_T *m = mode; m != NO_MOID; FORWARD (m))
+     {
+       if (IS_UNION (m))
+ 	{
+ 	  tree union_type = CTYPE (m);
+ 	  tree c_union_type = TREE_TYPE (TREE_CHAIN (TYPE_FIELDS (union_type)));
+ 
+ 	  if (!COMPLETE_TYPE_P (c_union_type))
+ 	    {
+ 	      layout_type (c_union_type);
+ 	      compute_record_mode (c_union_type);
+ 	      gcc_assert (COMPLETE_TYPE_P (c_union_type));
+ 	    }
+ 
+ 	  if (!COMPLETE_TYPE_P (union_type))
+ 	    {
+ 	      layout_type (union_type);
+ 	      compute_record_mode (union_type);
+ 	      gcc_assert (COMPLETE_TYPE_P (union_type));
+ 	    }
+ 	}
+       else if (!COMPLETE_TYPE_P (CTYPE (m)))
+ 	{
+ 	  if (IS_STRUCT (m))
+ 	    {
+ 	      tree struct_type = CTYPE (m);
+ 	      layout_type (struct_type);
+ 	      compute_record_mode (struct_type);
+ 	    }
+ 	  else
+ 	    layout_type (CTYPE (m));
+ 	}
+     }
+ 
+   /* Sanity check.  */
+   for (MOID_T *m = mode; m != NO_MOID; FORWARD (m))
+     {
+       gcc_assert (COMPLETE_TYPE_P (CTYPE (m)));
+       if (IS_UNION (m))
+ 	{
+ 	  tree union_type = CTYPE (m);
+ 	  tree c_union_type = TREE_TYPE (TREE_CHAIN (TYPE_FIELDS (union_type)));
+ 	  gcc_assert (COMPLETE_TYPE_P (c_union_type));
+ 	}
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-multiples.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-multiples.cc
*** gcc-15.2.0/gcc/algol68/a68-low-multiples.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-multiples.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1098 ----
+ /* Lowering routines for all things related to multiples.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Algol 68 multiples are multi-dimensional and dynamically sized. They have a
+    static part and a dynamic part.  The static part is conformed by a
+    "descriptor", which contains information about each of the dimensions, and a
+    pointer to the actual elements stored in the multiple.  The dynamic part are
+    the elements, which are stored in column order.  Both the descriptor and the
+    elements may reside on the stack, data section, or the heap.  The mode of a
+    multiple is a "row".
+ 
+    Schematically, the descriptor contains:
+ 
+       triplets%
+         lb% ub% stride%
+ 	...
+       elements%
+       elements_size%
+ 
+    Where elements_size% is the size of the buffer pointed by elements%, in
+    bytes.
+ 
+    There is a triplet per dimension in the multiple.  The number of dimensions
+    in a row mode is static and is determined at compile-time.
+ 
+    The infomation stored for each triplet is:
+ 
+      lb%     is the lower bound of the dimension.
+      ub%     is the upper bound of the dimension.
+      stride% is the stride of the dimension.
+ 
+    The stride of each dimension is the number of bytes to skip in order to
+    access the next element in that dimension.  They express the layout of the
+    multiple in memory.
+ 
+    Algol 68 multi-dimensional multiples are stored in row-major (generalized,
+    lexicographical) order:
+ 
+      [1:3,1:2]AMODE = ((e1, e2, e3),
+                        (e4, e5, e6))
+ 
+    is stored as:
+ 
+           1  2  3
+        1  e1 e2 e3      | stride 2S ->  stride 1S
+        2  e4 e5 e6      v
+ 
+    Where S is the size in bytes of a single element.  That means that for two
+    dimensional multiples, the column stride is always 1S and the row stride is
+    the column size.
+ 
+    In general, given a mode with number of elements N1, N2, N3, ...:
+ 
+      [N1,N2,N3...,Nn]AMODE
+ 
+    the strides of the dimensions are:
+ 
+      S1 = N2 * S2
+      S2 = N3 * S3
+      S3 = N4 * S4
+      ...
+      Si = N1 * N2 * ... * Ni-1
+ 
+    Indexing is then performed by a dot-product of an element coordinate and the
+    strides:
+ 
+      (i1,i2,i3) . (S1,S2,S3) = offset + i1*S1 + i2*S2 + i3*S3 = index in elements array.
+ 
+    Note that the number of elements in each dimension can be easily derived
+    from the bounds and there is no need to store them explicitly, save for
+    performance reasons.  Descriptors are bulky enough and often they they are
+    stored on the stack, so we prefer to pay in performance and save in
+    storage.  */
+ 
+ /* Return a tree with the yielding of SKIP for the given row mode, a
+    multiple.  */
+ 
+ tree
+ a68_get_multiple_skip_tree (MOID_T *m)
+ {
+   tree res = NULL_TREE;
+   int dim = DIM (m);
+   tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+   tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * dim);
+   tree ssize_one_node = fold_convert (ssizetype, size_one_node);
+   tree ssize_zero_node = fold_convert (ssizetype, size_zero_node);
+   for (int i = 0; i < dim; ++i)
+     {
+       lower_bounds[i] = ssize_one_node;
+       upper_bounds[i] = ssize_zero_node;
+     }
+   res = a68_row_value (CTYPE (m), dim,
+ 		       build_int_cst (build_pointer_type (void_type_node), 0),
+ 		       size_zero_node, /* elements_size */
+ 		       lower_bounds, upper_bounds);
+   free (lower_bounds);
+   free (upper_bounds);
+   return res;
+ }
+ 
+ /* Return the number of dimensions of the multiple EXP as an integer
+    constant.  */
+ 
+ tree
+ a68_multiple_dimensions (tree exp)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* triplets% is the first field in the descriptor.  */
+   tree triplets_field = TYPE_FIELDS (TREE_TYPE (exp));
+   return array_type_nelts_top (TREE_TYPE (triplets_field));
+ }
+ 
+ /* Return an expression that evaluates to the total number of elements stored
+    in a multiple as a sizetype.  */
+ 
+ tree
+ a68_multiple_num_elems (tree exp)
+ {
+   /* We have to calculate the number of elements based on the dimension
+      triplets in the array type.  The number of dimensions is known at compile
+      time, so we don't really need a loop.  */
+ 
+   tree num_dimensions_tree = a68_multiple_dimensions (exp);
+   gcc_assert (TREE_CODE (num_dimensions_tree) == INTEGER_CST);
+   int num_dimensions = tree_to_shwi (num_dimensions_tree);
+ 
+   tree size = NULL_TREE;
+   for (int dim = 0; dim < num_dimensions; ++dim)
+     {
+       tree size_dim = size_int (dim);
+       tree lower_bound = a68_multiple_lower_bound (exp, size_dim);
+       tree upper_bound = a68_multiple_upper_bound (exp, size_dim);
+       tree dim_size = fold_build2 (PLUS_EXPR, sizetype,
+ 				   fold_convert (sizetype, fold_build2 (MINUS_EXPR,
+ 									ssizetype,
+ 									upper_bound,
+ 									lower_bound)),
+ 				   size_one_node);
+ 
+       if (size == NULL_TREE)
+ 	size = dim_size;
+       else
+ 	size = fold_build2 (MULT_EXPR, sizetype, size, dim_size);
+     }
+ 
+   return size;
+ }
+ 
+ /* Return a size expression that evaluates to the total size, in bytes, of the
+    elements stored in the multiple.  */
+ 
+ tree
+ a68_multiple_elements_size (tree exp)
+ {
+   tree type = TREE_TYPE (exp);
+   gcc_assert (A68_ROW_TYPE_P (type));
+ 
+   /* elements_size% is the third field in the descriptor.  */
+   tree elements_size_field = TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (type)));
+   return fold_build3 (COMPONENT_REF, TREE_TYPE (elements_size_field),
+ 		      exp, elements_size_field, NULL_TREE);
+ }
+ 
+ /* Return the triplet for dimension DIM in the multiple EXP.  */
+ 
+ static tree
+ multiple_triplet (tree exp, tree dim)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* triplets% is the first field in the descriptor.  */
+   tree triplets_field = TYPE_FIELDS (TREE_TYPE (exp));
+   tree triplets = fold_build3 (COMPONENT_REF,
+ 			       TREE_TYPE (triplets_field),
+ 			       exp,
+ 			       triplets_field,
+ 			       NULL_TREE);
+ 
+   /* Get the triplet for the given dimension.  */
+   return build4 (ARRAY_REF,
+ 		 TREE_TYPE (TREE_TYPE (triplets)),
+ 		 triplets,
+ 		 dim,
+ 		 NULL_TREE,
+ 		 NULL_TREE);
+ }
+ 
+ /* Return the lower bound of dimension DIM of the multiple EXP.  The returned
+    value is a ssizetype.  */
+ 
+ tree
+ a68_multiple_lower_bound (tree exp, tree dim)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* lb% is the first field in the triplet.  */
+   tree triplet = multiple_triplet (exp, dim);
+   tree lower_bound_field = TYPE_FIELDS (TREE_TYPE (triplet));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (lower_bound_field),
+ 		      triplet,
+ 		      lower_bound_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return an expression that sets the lower bound of dimension DIM of the
+    multiple EXP to BOUND.  */
+ 
+ tree
+ a68_multiple_set_lower_bound (tree exp, tree dim, tree bound)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (bound),
+ 		      a68_multiple_lower_bound (exp, dim),
+ 		      bound);
+ }
+ 
+ /* Return the upper bound of dimension DIM of the multiple EXP.  The returned
+    value is a ssizetype.  */
+ 
+ tree
+ a68_multiple_upper_bound (tree exp, tree dim)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* ub% is the second field in the triplet.  */
+   tree triplet = multiple_triplet (exp, dim);
+   tree upper_bound_field = TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (triplet)));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (upper_bound_field),
+ 		      triplet,
+ 		      upper_bound_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return an expression that sets the upper bound of dimension DIM of the
+    multiple EXP to BOUND.  */
+ 
+ tree
+ a68_multiple_set_upper_bound (tree exp, tree dim, tree bound)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (bound),
+ 		      a68_multiple_upper_bound (exp, dim),
+ 		      bound);
+ }
+ 
+ /* Return the stride of dimension DIM of the multiple EXP.  */
+ 
+ tree
+ a68_multiple_stride (tree exp, tree dim)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* stride% is the third field in the triplet.  */
+   tree triplet = multiple_triplet (exp, dim);
+   tree stride_field = TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (triplet))));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (stride_field),
+ 		      triplet,
+ 		      stride_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return an expression that sets the stride of dimension DIM of the multiple
+    EXP to STRIDE.
+ 
+    STRIDE must be a sizetype.  */
+ 
+ tree
+ a68_multiple_set_stride (tree exp, tree dim, tree stride)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (stride),
+ 		      a68_multiple_stride (exp, dim),
+ 		      stride);
+ }
+ 
+ /* Return the triplets of the multiple EXP.  */
+ 
+ tree
+ a68_multiple_triplets (tree exp)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* triplets% is the first field in the descriptor.  */
+   tree triplets_field = TYPE_FIELDS (TREE_TYPE (exp));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (triplets_field),
+ 		      exp,
+ 		      triplets_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return the pointer to the elements of the multiple EXP.  */
+ 
+ tree
+ a68_multiple_elements (tree exp)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* elements% is the second field in the descriptor.  */
+   tree elements_field = TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (exp)));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (elements_field),
+ 		      exp,
+ 		      elements_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return an expression that sets the elements% field of EXP to ELEMENTS.  */
+ 
+ tree
+ a68_multiple_set_elements (tree exp, tree elements)
+ {
+   /* elements% is the second field in the descriptor.  */
+   tree elements_field = TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (exp)));
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (elements_field),
+ 		      fold_build3 (COMPONENT_REF,
+ 				   TREE_TYPE (elements_field),
+ 				   exp,
+ 				   elements_field,
+ 				   NULL_TREE),
+ 		      elements);
+ }
+ 
+ /* Return an expression that sets the elements_size% field of EXP to
+    ELEMENTS_SIZE, which must be a sizetype.  */
+ 
+ tree
+ a68_multiple_set_elements_size (tree exp, tree elements_size)
+ {
+   /* elements_size% is the third field in the descriptor.  */
+   tree elements_size_field = TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (TREE_TYPE (exp))));
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (elements_size_field),
+ 		      fold_build3 (COMPONENT_REF,
+ 				   TREE_TYPE (elements_size_field),
+ 				   exp,
+ 				   elements_size_field,
+ 				   NULL_TREE),
+ 		      elements_size);
+ }
+ 
+ /* Given two arrays of LOWER_BOUNDs and UPPER_BOUNDs corresponding to DIM
+    dimensions of a multiple of type TYPE, fill in the strides in STRIDES, which
+    is assumed to be a buffer big enough to hold DIM tree nodes.  The bounds
+    shall be of type ssizetype, and the calculated strides are of type sizetype,
+    i.e. unsigned.  */
+ 
+ void
+ a68_multiple_compute_strides (tree type, size_t dim,
+ 			      tree *lower_bounds, tree *upper_bounds,
+ 			      tree *strides)
+ {
+   tree stride = size_in_bytes (a68_row_elements_type (type));
+   for (ssize_t i = dim - 1; i >= 0; --i)
+     {
+       strides[i] = stride;
+ 
+       /* Calculate the stride for the previous dimension.  */
+       tree dim_num_elems
+ 	= save_expr (fold_build2 (PLUS_EXPR,
+ 				  sizetype,
+ 				  fold_convert (sizetype,
+ 						fold_build2 (MINUS_EXPR, ssizetype,
+ 							     upper_bounds[i], lower_bounds[i])),
+ 				  size_one_node));
+       stride = fold_build2 (MULT_EXPR, sizetype, stride, dim_num_elems);
+     }
+ }
+ 
+ /* Return a constructor for a multiple of row type TYPE, using TRIPLETS and
+    ELEMENTS.  ELEMENTS_SIZE is the size in bytes of the memory pointed by
+    ELEMENTS.  */
+ 
+ tree
+ a68_row_value_raw (tree type, tree triplets,
+ 		   tree elements, tree elements_size)
+ {
+   tree triplets_field;
+   tree elements_field;
+   tree elements_size_field;
+   vec <constructor_elt, va_gc> *ce = NULL;
+ 
+   gcc_assert (A68_ROW_TYPE_P (type));
+   triplets_field = TYPE_FIELDS (type);
+   elements_field = TREE_CHAIN (triplets_field);
+   elements_size_field = TREE_CHAIN (elements_field);
+   CONSTRUCTOR_APPEND_ELT (ce, triplets_field, triplets);
+   CONSTRUCTOR_APPEND_ELT (ce, elements_field,
+ 			  fold_build1 (CONVERT_EXPR ,TREE_TYPE (elements_field), elements));
+   CONSTRUCTOR_APPEND_ELT (ce, elements_size_field, elements_size);
+   return build_constructor (type, ce);
+ }
+ 
+ /* Return a constructor for a multiple of row type TYPE, of DIM dimensions and
+    pointing to ELEMENTS.
+ 
+    ELEMENTS_SIZE contains the size in bytes of the memory pointed by ELEMENTS.
+ 
+    *LOWER_BOUND and *UPPER_BOUND are the bounds for the DIM dimensions.
+ */
+ 
+ tree
+ a68_row_value (tree type, size_t dim,
+ 	       tree elements, tree elements_size,
+ 	       tree *lower_bound, tree *upper_bound)
+ {
+   tree triplets_field;
+   tree elements_field;
+   tree elements_size_field;
+   vec <constructor_elt, va_gc> *ce = NULL;
+ 
+   gcc_assert (A68_ROW_TYPE_P (type));
+   triplets_field = TYPE_FIELDS (type);
+   elements_field = TREE_CHAIN (triplets_field);
+   elements_size_field = TREE_CHAIN (elements_field);
+ 
+   tree triplet_type = TREE_TYPE (TREE_TYPE (triplets_field));
+   tree lower_bound_field = TYPE_FIELDS (triplet_type);
+   tree upper_bound_field = TREE_CHAIN (TYPE_FIELDS (triplet_type));
+   tree stride_field = TREE_CHAIN (TREE_CHAIN (TYPE_FIELDS (triplet_type)));
+ 
+   /* Calculate strides.  */
+   tree *strides = (tree *) xmalloc (sizeof (tree) * dim);
+   a68_multiple_compute_strides (type, dim, lower_bound, upper_bound, strides);
+ 
+   vec <constructor_elt, va_gc> *triplets_ce = NULL;
+   for (size_t i = 0; i < dim; ++i)
+     {
+       CONSTRUCTOR_APPEND_ELT (triplets_ce,
+ 			      size_int (i),
+ 			      build_constructor_va (triplet_type,
+ 						    3,
+ 						    lower_bound_field, lower_bound[i],
+ 						    upper_bound_field, upper_bound[i],
+ 						    stride_field, strides[i]));
+     }
+   free (strides);
+   CONSTRUCTOR_APPEND_ELT (ce, triplets_field,
+ 			  build_constructor (TREE_TYPE (triplets_field), triplets_ce));
+   CONSTRUCTOR_APPEND_ELT (ce, elements_field,
+ 			  fold_build1 (CONVERT_EXPR, TREE_TYPE (elements_field), elements));
+   CONSTRUCTOR_APPEND_ELT (ce, elements_size_field,
+ 			  elements_size ? elements_size : size_zero_node);
+   tree multiple = build_constructor (type, ce);
+   return multiple;
+ }
+ 
+ /* Build a tree to slice a multiple given a set of indexes.
+ 
+    P is the tree node corresponding to the slice.  It is used as the source of
+    location information.
+ 
+    MULTIPLE is the multiple value being sliced.  If SLICING_NAME is true, it
+    means the slicing operation is for a name and therefore it must yield a
+    name.
+ 
+    INDEXES is a list of NUM_INDEXES indexes, which are units.
+    NUM_INDEXES must match the dimension of the multiple.  */
+ 
+ tree
+ a68_multiple_slice (NODE_T *p,
+ 		    tree multiple, bool slicing_name,
+ 		    int num_indexes, tree *indexes)
+ {
+   tree slice = NULL_TREE;
+   tree bounds_check = NULL_TREE;
+ 
+   multiple = save_expr (multiple);
+   tree index = NULL_TREE;
+   for (int idx = 0; idx < num_indexes; ++idx)
+     {
+       tree lower_bound = a68_multiple_lower_bound (multiple, size_int (idx));
+       tree index_expr = save_expr (indexes[idx]);
+ 
+       /* Do run-time bound checking if requested.  */
+       if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+ 	{
+ 	  tree upper_bound = a68_multiple_upper_bound (multiple, size_int (idx));
+ 	  unsigned int lineno = NUMBER (LINE (INFO (p)));
+ 	  const char *filename_str = FILENAME (LINE (INFO (p)));
+ 	  tree filename = build_string_literal (strlen (filename_str) + 1,
+ 						    filename_str);
+ 	  tree call = a68_build_libcall (A68_LIBCALL_ARRAYBOUNDS,
+ 					 void_type_node, 5,
+ 					 filename,
+ 					 build_int_cst (unsigned_type_node, lineno),
+ 					 fold_convert (ssizetype, index_expr),
+ 					 fold_convert (ssizetype, lower_bound),
+ 					 fold_convert (ssizetype, upper_bound));
+ 	  call = fold_build2 (COMPOUND_EXPR, a68_bool_type, call, boolean_false_node);
+ 
+ 	  /* If LB > UB, the dimension contains no elements.
+ 	     Otherwise, it must hold IDX >= LB && IDX <= UB */
+ 	  tree dim_bounds_check = fold_build2 (TRUTH_AND_EXPR, sizetype,
+ 					       fold_build2 (LE_EXPR, ssizetype,
+ 							    lower_bound, upper_bound),
+ 					       fold_build2 (TRUTH_AND_EXPR,
+ 							    boolean_type_node,
+ 							    fold_build2 (GE_EXPR, ssizetype,
+ 									 fold_convert (ssizetype,
+ 										       index_expr),
+ 									 lower_bound),
+ 							    fold_build2 (LE_EXPR, ssizetype,
+ 									 fold_convert (ssizetype,
+ 										       index_expr),
+ 									 upper_bound)));
+ 	  dim_bounds_check = fold_build2_loc (a68_get_node_location (p),
+ 					      TRUTH_ORIF_EXPR,
+ 					      ssizetype,
+ 					      dim_bounds_check, call);
+ 
+ 	  /* bounds_check_ok || call_runtime_error */
+ 	  if (bounds_check == NULL_TREE)
+ 	    bounds_check = dim_bounds_check;
+ 	  else
+ 	    bounds_check = fold_build2 (TRUTH_ANDIF_EXPR,
+ 					ssizetype,
+ 					bounds_check,
+ 					dim_bounds_check);
+ 	}
+ 
+       /* Now add the effect of this dimension's subscript in the index.  Note
+ 	 that the stride is expressed in bytes.  */
+       tree stride = a68_multiple_stride (multiple, size_int (idx));
+       tree adjusted_index
+ 	= fold_convert (sizetype, fold_build2 (MINUS_EXPR, ssizetype,
+ 					       fold_convert (ssizetype, index_expr),
+ 					       lower_bound));
+       tree term = fold_build2 (MULT_EXPR, sizetype,
+ 			       adjusted_index, stride);
+       if (index == NULL_TREE)
+ 	index = term;
+       else
+ 	index = fold_build2 (PLUS_EXPR, sizetype,
+ 			     index, term);
+     }
+ 
+   tree elements = a68_multiple_elements (multiple);
+   tree element_pointer_type = TREE_TYPE (elements);
+   tree element_type = TREE_TYPE (element_pointer_type);
+ 
+   /* Now refer to the indexed element.  In case we are slicing a ref to a
+      multiple, return the address of the element and not the element
+      itself.  */
+   tree element_address = fold_build2 (POINTER_PLUS_EXPR,
+ 				      element_pointer_type,
+ 				      elements,
+ 				      index);
+   if (slicing_name)
+     slice = element_address;
+   else
+     slice = fold_build2 (MEM_REF,
+ 			 element_type,
+ 			 fold_build2 (POINTER_PLUS_EXPR,
+ 				      element_pointer_type,
+ 				      elements,
+ 				      index),
+ 			 fold_convert (element_pointer_type,
+ 				       integer_zero_node));
+ 
+   /* Prepend bounds checking code if necessary.  */
+   if (bounds_check != NULL_TREE)
+     {
+       slice = fold_build2_loc (a68_get_node_location (p),
+ 			       COMPOUND_EXPR,
+ 			       TREE_TYPE (slice),
+ 			       bounds_check,
+ 			       slice);
+     }
+ 
+   return slice;
+ }
+ 
+ /* Auxiliary routine for a68_multiple_copy_elemens.  */
+ 
+ static tree
+ copy_multiple_dimension_elems (size_t dim, size_t num_dimensions,
+ 			       tree to, tree from,
+ 			       tree to_elements, tree from_elements,
+ 			       tree *to_offset, tree *from_offset,
+ 			       tree *indexes)
+ {
+   tree element_pointer_type = TREE_TYPE (from_elements);
+   tree element_type = TREE_TYPE (element_pointer_type);
+   tree upb = a68_multiple_upper_bound (from, size_int (dim));
+ 
+   char *name = xasprintf ("r" HOST_SIZE_T_PRINT_DEC "%%", (fmt_size_t) dim);
+   indexes[dim] = a68_lower_tmpvar (name, ssizetype,
+ 				   a68_multiple_lower_bound (from,
+ 							     size_int (dim)));
+   free (name);
+ 
+   /* Loop body.  */
+   a68_push_range (NULL);
+   {
+     /* if (indexes[dim] > upb) break; */
+     a68_add_stmt (fold_build1 (EXIT_EXPR, void_type_node,
+ 			       fold_build2 (GT_EXPR, size_type_node,
+ 					    indexes[dim], upb)));
+ 
+     /* Add this dimension's contribution to the offsets.  */
+     tree index = fold_convert (sizetype,
+ 			       fold_build2 (MINUS_EXPR, ssizetype,
+ 					    upb, indexes[dim]));
+     *to_offset = fold_build2 (PLUS_EXPR, sizetype,
+ 			      *to_offset,
+ 			      fold_build2 (MULT_EXPR, sizetype,
+ 					   index,
+ 					   a68_multiple_stride (to, size_int (dim))));
+     *from_offset = fold_build2 (PLUS_EXPR, sizetype,
+ 				*from_offset,
+ 				fold_build2 (MULT_EXPR, sizetype,
+ 					     index,
+ 					     a68_multiple_stride (from, size_int (dim))));
+ 
+     if (dim == num_dimensions - 1)
+       {
+ 	/* Most inner loop, copy one element.  */
+ 
+ 	tree to_off = a68_lower_tmpvar ("to_offset%", sizetype, *to_offset);
+ 	tree from_off = a68_lower_tmpvar ("from_offset%", sizetype, *from_offset);
+ 
+ 	tree to_elem = fold_build2 (MEM_REF,
+ 				    element_type,
+ 				    fold_build2 (POINTER_PLUS_EXPR,
+ 						 element_pointer_type,
+ 						 to_elements,
+ 						 to_off),
+ 				    fold_convert (element_pointer_type,
+ 						  integer_zero_node));
+ 	tree from_elem = fold_build2 (MEM_REF,
+ 				      element_type,
+ 				      fold_build2 (POINTER_PLUS_EXPR,
+ 						   element_pointer_type,
+ 						   from_elements,
+ 						   from_off),
+ 				      fold_convert (element_pointer_type,
+ 						    integer_zero_node));
+ 
+ 	/* XXX
+ 	   if may_overlap then modify only if dst_offset < src_offset */
+ 	a68_add_stmt (fold_build2 (MODIFY_EXPR, element_type,
+ 				   to_elem, from_elem));
+       }
+     else
+       {
+ 	a68_add_stmt (copy_multiple_dimension_elems (dim + 1, num_dimensions,
+ 						     to, from,
+ 						     to_elements, from_elements,
+ 						     to_offset, from_offset,
+ 						     indexes));
+       }
+ 
+     /* indexes[dim]++ */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR, ssizetype,
+ 			       indexes[dim], ssize_int (1)));
+   }
+   tree loop_body = a68_pop_range ();
+ 
+   return fold_build1 (LOOP_EXPR, void_type_node, loop_body);
+ }
+ 
+ /* Copy the elements of a given multiple (string) FROM to the multiple (string)
+    TO.
+ 
+    The dimensions and bounds of both multiples are supposed to match, and they
+    are supposed to not be flat.
+ 
+    XXX simple cases  with same strides may be done with a memcpy.
+    XXX compile this into a support routine to reduce code size.  */
+ 
+ tree
+ a68_multiple_copy_elems (MOID_T *mode, tree to, tree from)
+ {
+   gcc_assert (A68_ROW_TYPE_P (TREE_TYPE (to))
+ 	      && A68_ROW_TYPE_P (TREE_TYPE (from)));
+ 
+   /* Deflex modes as needed and determine dimension.  */
+   if (IS_FLEX (mode))
+     mode = SUB (mode);
+   int num_dimensions = (mode == M_STRING ? 1 : DIM (mode));
+ 
+   a68_push_range (NULL);
+   to = a68_lower_tmpvar ("to%", TREE_TYPE (to), to);
+   from = a68_lower_tmpvar ("from%", TREE_TYPE (from), from);
+   tree from_elements = a68_multiple_elements (from);
+   tree element_pointer_type = TREE_TYPE (from_elements);
+   from_elements = a68_lower_tmpvar ("from_elements%", element_pointer_type,
+ 				    from_elements);
+   tree to_elements = a68_lower_tmpvar ("to_elements%", element_pointer_type,
+ 				       a68_multiple_elements (to));
+ 
+   tree *indexes = (tree *) xmalloc (num_dimensions * sizeof (tree));
+   tree to_offset = size_zero_node;
+   tree from_offset = size_zero_node;
+   a68_add_stmt (copy_multiple_dimension_elems (0 /* dim */, num_dimensions,
+ 					       to, from,
+ 					       to_elements, from_elements,
+ 					       &to_offset, &from_offset,
+ 					       indexes));
+   free (indexes);
+   return a68_pop_range ();
+ }
+ 
+ /* Given a rows type, return the number of dimensions.  */
+ 
+ tree
+ a68_rows_dim (tree exp)
+ {
+   gcc_assert (A68_ROWS_TYPE_P (TREE_TYPE (exp)));
+ 
+   /* dim% is the first field in the rows struct.  */
+   tree dim_field = TYPE_FIELDS (TREE_TYPE (exp));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (dim_field),
+ 		      exp,
+ 		      dim_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Given a multiple value, create a rows value reflecting the multiple's
+    dimensions and triplets.  */
+ 
+ tree
+ a68_rows_value (tree multiple)
+ {
+   tree rows_type = CTYPE (M_ROWS);
+   tree dim_field = TYPE_FIELDS (rows_type);
+   tree triplets_field = TREE_CHAIN (dim_field);
+ 
+   tree dimensions = save_expr (a68_multiple_dimensions (multiple));
+   tree triplets = fold_build1 (ADDR_EXPR, TREE_TYPE (triplets_field),
+ 			       a68_multiple_triplets (multiple));
+   return build_constructor_va (rows_type, 2,
+ 			       dim_field, dimensions,
+ 			       triplets_field, triplets);
+ }
+ 
+ /* Given a rows value and a dimension number, return the upper bound or the
+    lower of the given dimension.  The returned bound is a ssizetype.
+ 
+    DIM must be a sizetype.  */
+ 
+ static tree
+ rows_lower_or_upper_bound (tree rows, tree dim, bool upper)
+ {
+   tree rows_type = TREE_TYPE (rows);
+   tree triplet_type = a68_triplet_type ();
+   tree triplet_pointer_type = build_pointer_type (triplet_type);
+   tree triplet_lb_field = TYPE_FIELDS (triplet_type);
+   tree triplet_ub_field = TREE_CHAIN (TYPE_FIELDS (triplet_type));
+   tree triplets_field = TREE_CHAIN (TYPE_FIELDS (rows_type));
+   tree triplets = fold_build3 (COMPONENT_REF, triplet_pointer_type,
+ 			       rows, triplets_field, NULL_TREE);
+   tree triplet_offset = fold_build2 (MULT_EXPR, sizetype,
+ 				     dim,
+ 				     size_in_bytes (triplet_type));
+   tree bound = fold_build3 (COMPONENT_REF, ssizetype,
+ 			    fold_build1 (INDIRECT_REF, triplet_type,
+ 					 fold_build2 (POINTER_PLUS_EXPR,
+ 						      triplet_pointer_type,
+ 						      triplets,
+ 						      triplet_offset)),
+ 			    upper ? triplet_ub_field : triplet_lb_field,
+ 			    NULL_TREE);
+ 
+   return bound;
+ }
+ 
+ /* Return the lower bound of dimension DIM of ROWS.  */
+ 
+ tree
+ a68_rows_lower_bound (tree rows, tree dim)
+ {
+   return rows_lower_or_upper_bound (rows, dim, false);
+ }
+ 
+ /* Return the upper bound of dimension DIM of ROWS.  */
+ 
+ tree
+ a68_rows_upper_bound (tree rows, tree dim)
+ {
+   return rows_lower_or_upper_bound (rows, dim, true);
+ }
+ 
+ /* Return a tree that checks that a given INDEX is correct given a multiple's
+    bounds in a given rank DIM.
+ 
+    If UPPER_BOUND is true then INDEX shall be less or equal than the multiple's
+    upper bound.  Otherwise INDEX shall be bigger or equal than the multiple's
+    lower bound.
+ 
+    If the condition above doesn't hold then a call to a run-time function is
+    performed: if UPPER_BOUND is true then ARRAYUPPERBOUND is called.  Otherwise
+    ARRAYLOWERBOUND is called.  */
+ 
+ tree
+ a68_multiple_single_bound_check (NODE_T *p, tree dim,
+ 				 tree multiple, tree index, bool upper_bound)
+ {
+   index = save_expr (index);
+   multiple = save_expr (multiple);
+ 
+   tree bound = (upper_bound
+ 		? a68_multiple_upper_bound (multiple, dim)
+ 		: a68_multiple_lower_bound (multiple, dim));
+   a68_libcall_fn libcall = (upper_bound
+ 			    ? A68_LIBCALL_ARRAYUPPERBOUND
+ 			    : A68_LIBCALL_ARRAYLOWERBOUND);
+ 
+   /* Build the call to ARRAY*BOUNDS. */
+   unsigned int lineno = NUMBER (LINE (INFO (p)));
+   const char *filename_str = FILENAME (LINE (INFO (p)));
+   tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					filename_str);
+   tree call = a68_build_libcall (libcall,
+ 				 void_type_node, 4,
+ 				 filename,
+ 				 build_int_cst (unsigned_type_node, lineno),
+ 				 fold_convert (ssizetype, index),
+ 				 fold_convert (ssizetype, bound));
+   call = fold_build2 (COMPOUND_EXPR, a68_bool_type, call, boolean_false_node);
+ 
+   tree bounds_check = fold_build2 (upper_bound ? LE_EXPR : GE_EXPR,
+ 				   ssizetype,
+ 				   fold_convert (ssizetype, index),
+ 				   bound);
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_ORIF_EXPR,
+ 			  ssizetype,
+ 			  bounds_check, call);
+ }
+ 
+ /* Return a tree that checks whether the given DIM is a valid dimension/rank of
+    a boundable object with dimension BOUNDABLE_DIM.  If the provided DIM is not
+    a valid dimention then a call to the run-time function ARRAYDIM is
+    performed.
+ 
+    BOUNDABLE_DIM and DIM must be of type sizetype.  They are both one-based.
+ 
+    The parse tree node P is used as the source for the filename and line number
+    passed to the run-time function.  */
+ 
+ static tree
+ a68_boundable_dim_check (NODE_T *p, tree boundable_dim, tree dim)
+ {
+   boundable_dim = save_expr (boundable_dim);
+   dim = save_expr (dim);
+ 
+   /* Build the call to ARRAYDIM. */
+   unsigned int lineno = NUMBER (LINE (INFO (p)));
+   const char *filename_str = FILENAME (LINE (INFO (p)));
+   tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					filename_str);
+   tree call = a68_build_libcall (A68_LIBCALL_ARRAYDIM,
+ 				 void_type_node, 4,
+ 				 filename,
+ 				 build_int_cst (unsigned_type_node, lineno),
+ 				 boundable_dim, dim);
+   call = fold_build2 (COMPOUND_EXPR, a68_bool_type, call, boolean_false_node);
+ 
+   tree dim_check = fold_build2 (TRUTH_AND_EXPR, boolean_type_node,
+ 				fold_build2 (GT_EXPR, boolean_type_node, dim, size_zero_node),
+ 				fold_build2 (LE_EXPR, boolean_type_node, dim, boundable_dim));
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_ORIF_EXPR,
+ 			  ssizetype,
+ 			  dim_check, call);
+ }
+ 
+ /* Return a tree that checks whether the given DIM is a valid dimension/rank of
+    the given rows value ROWS.
+ 
+    DIM is a sizetype.
+    The parse tree node P is used as the source for the filename and line
+    number.  */
+ 
+ tree
+ a68_rows_dim_check (NODE_T *p, tree rows, tree dim)
+ {
+   return a68_boundable_dim_check (p, a68_rows_dim (rows), dim);
+ }
+ 
+ /* Return a tree that checks whether the given DIM is a valid dimension/rank of
+    the given multiple value MULTIPLE.
+ 
+    DIM is a sizetype.
+    The parse tree node P is used as the source for the filename and line
+    number.  */
+ 
+ tree
+ a68_multiple_dim_check (NODE_T *p, tree multiple, tree dim)
+ {
+   return a68_boundable_dim_check (p, a68_multiple_dimensions (multiple), dim);
+ }
+ 
+ /* Return a tree that checks whether the given INDEX falls within the bounds of
+    MULTIPLE in the rank DIM.  If the provided index is out of bounds then a
+    call to the run-time function ARRAYBOUNDS is performed.
+ 
+    DIM must be a sizetype.
+    MULTIPLE must be a multiple value.
+    INDEX must be a ssizetype.
+ 
+    The parse tree node P is used as the source for the filename and line number
+    passed to the run-time function.  */
+ 
+ tree
+ a68_multiple_bounds_check (NODE_T *p, tree dim,
+ 			   tree multiple, tree index)
+ {
+   index = save_expr (index);
+   multiple = save_expr (multiple);
+ 
+   tree upper_bound = a68_multiple_upper_bound (multiple, dim);
+   tree lower_bound = a68_multiple_lower_bound (multiple, dim);
+ 
+   /* Build the call to ARRAYBOUNDS. */
+   unsigned int lineno = NUMBER (LINE (INFO (p)));
+   const char *filename_str = FILENAME (LINE (INFO (p)));
+   tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					filename_str);
+   tree call = a68_build_libcall (A68_LIBCALL_ARRAYBOUNDS,
+ 				 void_type_node, 5,
+ 				 filename,
+ 				 build_int_cst (unsigned_type_node, lineno),
+ 				 fold_convert (ssizetype, index),
+ 				 fold_convert (ssizetype, lower_bound),
+ 				 fold_convert (ssizetype, upper_bound));
+   call = fold_build2 (COMPOUND_EXPR, a68_bool_type, call, boolean_false_node);
+ 
+   /* If LB > UB, the dimension contains no elements.
+      Otherwise, it must hold IDX >= LB && IDX <= UB */
+   tree bounds_check = fold_build2 (TRUTH_AND_EXPR, sizetype,
+ 				   fold_build2 (LE_EXPR, ssizetype,
+ 						lower_bound, upper_bound),
+ 				   fold_build2 (TRUTH_AND_EXPR,
+ 						boolean_type_node,
+ 						fold_build2 (GE_EXPR, ssizetype,
+ 							     fold_convert (ssizetype,
+ 									   index),
+ 							     lower_bound),
+ 						fold_build2 (LE_EXPR, ssizetype,
+ 							     fold_convert (ssizetype,
+ 									   index),
+ 							     upper_bound)));
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_ORIF_EXPR,
+ 			  ssizetype,
+ 			  bounds_check, call);
+ }
+ 
+ /* Emit a run-time error if the bounds of M1 and M2 are not the same.  Both
+    multiples are assumed to have the same type and therefore feature the same
+    number of dimensions.  */
+ 
+ tree
+ a68_multiple_bounds_check_equal (NODE_T *p, tree m1, tree m2)
+ {
+   m1 = save_expr (m1);
+   m2 = save_expr (m2);
+ 
+   /* First determine the rank of the multiples and check they match.  */
+   tree m1_dimensions = a68_multiple_dimensions (m1);
+   tree m2_dimensions = a68_multiple_dimensions (m2);
+   gcc_assert (TREE_CODE (m1_dimensions) == INTEGER_CST
+ 	      && TREE_CODE (m2_dimensions) == INTEGER_CST);
+ 
+   int dim1 = tree_to_shwi (m1_dimensions);
+   int dim2 = tree_to_shwi (m2_dimensions);
+   gcc_assert (dim1 == dim2);
+ 
+   a68_push_range (NULL /* VOID */);
+ 
+   /* For each dimension, check that bounds are the same in both multiples.  */
+   int i;
+   for (i = 0; i < dim1; ++i)
+     {
+       tree dim_tree = build_int_cst (ssizetype, i);
+       tree dim_plus_one = fold_build2 (PLUS_EXPR, ssizetype,
+ 				       dim_tree,
+ 				       fold_convert (ssizetype, size_one_node));
+ 
+       tree lb1 = save_expr (a68_multiple_lower_bound (m1, dim_tree));
+       tree lb2 = save_expr (a68_multiple_lower_bound (m2, dim_tree));
+ 
+       tree ub1 = save_expr (a68_multiple_upper_bound (m1, dim_tree));
+       tree ub2 = save_expr (a68_multiple_upper_bound (m2, dim_tree));
+ 
+       tree bounds_equal = fold_build2 (TRUTH_AND_EXPR,
+ 				       boolean_type_node,
+ 				       fold_build2 (EQ_EXPR, boolean_type_node,
+ 						    lb1, lb2),
+ 				       fold_build2 (EQ_EXPR, boolean_type_node,
+ 						    ub1, ub2));
+ 
+       unsigned int lineno = NUMBER (LINE (INFO (p)));
+       const char *filename_str = FILENAME (LINE (INFO (p)));
+       tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					    filename_str);
+       tree call = a68_build_libcall (A68_LIBCALL_ARRAYBOUNDSMISMATCH,
+ 				     void_type_node, 7,
+ 				     filename,
+ 				     build_int_cst (unsigned_type_node, lineno),
+ 				     dim_plus_one,
+ 				     lb1, ub1, lb2, ub2);
+       call = fold_build2 (COMPOUND_EXPR, boolean_type_node, call, boolean_false_node);
+ 
+       tree check = fold_build2_loc (a68_get_node_location (p),
+ 				    TRUTH_ORIF_EXPR, boolean_type_node,
+ 				    bounds_equal,
+ 				    call);
+       a68_add_stmt (check);
+     }
+ 
+   return a68_pop_range ();
+ }
+ 
+ /* Allocate a multiple on the heap.
+ 
+    M is the mode the multiple to allocate.
+    DIM is the number of dimensions of the multiple.
+    ELEMS is a pointer to the elements of the multiple.
+    ELEMS_SIZE is the size in bytes of ELEMS.
+    *LOWER_BOUND and *UPPER_BOUND are the bounds for the DIM dimensions.  */
+ 
+ tree
+ a68_row_malloc (MOID_T *m, int dim, tree elems, tree elems_size,
+ 		tree *lower_bound, tree *upper_bound)
+ {
+   tree type = CTYPE (m);
+   tree ptr_to_type = build_pointer_type (type);
+ 
+   a68_push_range (NULL);
+ 
+   /* Allocate space for the descriptor.  */
+   tree ptr_to_multiple = a68_lower_tmpvar ("ptr_to_multiple%", ptr_to_type,
+ 					   a68_lower_malloc (m, size_in_bytes (type)));
+   tree multiple = a68_row_value (type, dim,
+ 				 elems, elems_size,
+ 				 lower_bound, upper_bound);
+   a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 			     fold_build1 (INDIRECT_REF, type, ptr_to_multiple),
+ 			     multiple));
+   a68_add_stmt (ptr_to_multiple);
+   tree res = a68_pop_range ();
+   TREE_TYPE (res) = ptr_to_type;
+   return res;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-prelude.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-prelude.cc
*** gcc-15.2.0/gcc/algol68/a68-low-prelude.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-prelude.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1868 ----
+ /* Lower Algol 68 pre-defined operators and procedures.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* The following handlers are for lowing the entities defined in
+    a68-parser-prelude.c.  */
+ 
+ tree
+ a68_lower_unimplemented (NODE_T *p,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   fatal_error (a68_get_node_location (p),
+ 	       "no lowering routine installed for construct.  jemarch has been lazy");
+ }
+ 
+ tree
+ a68_lower_charabs2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_char_abs (op);
+ }
+ 
+ tree
+ a68_lower_boolabs2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bool_abs (op);
+ }
+ 
+ tree
+ a68_lower_intabs2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_int_abs (op);
+ }
+ 
+ tree
+ a68_lower_realabs2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_real_abs (op);
+ }
+ 
+ tree
+ a68_lower_confirm2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   /* Used to implement monadic +.  */
+   return a68_lower_tree (NEXT (SUB (p)), ctx);
+ }
+ 
+ tree
+ a68_lower_negate2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   /* Annotate denotations as being negated.  */
+   NODE_T *s = NEXT (SUB (p));
+   if (ATTRIBUTE (s) == SECONDARY
+       && ATTRIBUTE (SUB (s)) == PRIMARY
+       && ATTRIBUTE (SUB (SUB (s))) == DENOTATION)
+     {
+       NEGATED (SUB (SUB (s))) = true;
+     }
+ 
+   return fold_build1_loc (a68_get_node_location (p),
+ 			  NEGATE_EXPR,
+ 			  CTYPE (MOID (p)),
+ 			  a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ /* Lower an ENTIER standard monadic operator.  */
+ 
+ tree
+ a68_lower_entier2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *op = NEXT (SUB (p));
+   return a68_real_entier (a68_lower_tree (op, ctx), MOID (p), MOID (op));
+ }
+ 
+ /* Lower a ROUND standard monadic operator.
+ 
+    This operator gets a LONGSETY REAL and produces a LONGSETY INT which is the
+    nearest integer to the given real.  */
+ 
+ tree
+ a68_lower_round2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *op = NEXT (SUB (p));
+   return a68_real_round (a68_lower_tree (op, ctx), MOID (p), MOID (op));
+ }
+ 
+ tree
+ a68_lower_not2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return fold_build1_loc (a68_get_node_location (p),
+ 			  TRUTH_NOT_EXPR,
+ 			  CTYPE (MOID (p)),
+ 			  a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ tree
+ a68_lower_and3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_AND_EXPR,
+ 			  CTYPE (MOID (p)),
+ 			  a68_lower_tree (SUB (p), ctx),
+ 			  a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ }
+ 
+ tree
+ a68_lower_or3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_OR_EXPR,
+ 			  CTYPE (MOID (p)),
+ 			  a68_lower_tree (SUB (p), ctx),
+ 			  a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ }
+ 
+ tree
+ a68_lower_xor3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  TRUTH_XOR_EXPR,
+ 			  CTYPE (MOID (p)),
+ 			  a68_lower_tree (SUB (p), ctx),
+ 			  a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ }
+ 
+ tree
+ a68_lower_plus_int (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_plus (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_plus_real (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_real_plus (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_minus_int (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_minus (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_minus_real (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_real_minus (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_mult_int (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_mult (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_mult_real (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_real_mult (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_multab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    MULT_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_over3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_div (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_mod3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *m = MOID (p);
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_mod (m, op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_div3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_real_div (MOID (p),
+ 		       a68_lower_tree (SUB (p), ctx),
+ 		       a68_lower_tree (NEXT (NEXT (SUB (p))), ctx),
+ 		       a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_rdiv3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_real_div (MOID (p),
+ 		       fold_build1 (FLOAT_EXPR, CTYPE (MOID (p)),
+ 				    a68_lower_tree (SUB (p), ctx)),
+ 		       fold_build1 (FLOAT_EXPR, CTYPE (MOID (p)),
+ 				    a68_lower_tree (NEXT (NEXT (SUB (p))), ctx)),
+ 		       a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_eq (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_ne (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_lt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_lt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_le3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_le (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_gt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_gt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_int_ge3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_int_ge (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_eq (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_ne (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_lt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_lt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_le3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_le (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_gt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_gt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_real_ge3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_real_ge (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_eq (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_ne (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_lt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_lt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_le3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_le (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_gt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_gt (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_char_ge3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_char_ge (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_bool_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_bool_eq (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_bool_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_bool_ne (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_sign2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_int_sign (op);
+ }
+ 
+ tree
+ a68_lower_realsign2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_real_sign (op);
+ }
+ 
+ tree
+ a68_lower_plusab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    PLUS_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_minusab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    MINUS_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_overab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    TRUNC_DIV_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_modab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    TRUNC_MOD_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_divab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = fold_build2_loc (a68_get_node_location (p),
+ 				    RDIV_EXPR,
+ 				    TREE_TYPE (rhs),
+ 				    a68_low_deref (lhs, SUB (p)),
+ 				    rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ /* UPB comes in two flavors.
+ 
+    The unary operator returns the upper bound of the first dimension of the
+    operand multple.
+ 
+    The binary operator returns the upper bound of the given dimension of the
+    operand multiple.  The dimension is one-based.  If the specified dimension
+    is out of bounds then an a run-time error is raised.  */
+ 
+ static tree
+ upb (NODE_T *p, tree boundable, tree dim)
+ {
+   boundable = save_expr (boundable);
+   dim = save_expr (dim);
+ 
+   /* BOUNDABLE can be a multiple or a ROWS.  */
+   tree zero_based_dim
+     = save_expr (fold_build2 (MINUS_EXPR, TREE_TYPE (dim), dim, size_one_node));
+   tree type = TREE_TYPE (boundable);
+   if (A68_ROW_TYPE_P (type))
+     {
+       return fold_build2 (COMPOUND_EXPR, ssizetype,
+ 			  a68_multiple_dim_check (p, boundable, dim),
+ 			  a68_multiple_upper_bound (boundable, zero_based_dim));
+     }
+   else if (A68_ROWS_TYPE_P (type))
+     {
+       return fold_build2 (COMPOUND_EXPR, ssizetype,
+ 			  a68_rows_dim_check (p, boundable, dim),
+ 			  a68_rows_upper_bound (boundable, zero_based_dim));
+     }
+   else
+     gcc_unreachable ();
+ }
+ 
+ tree
+ a68_lower_upb2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree multiple = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return fold_convert (CTYPE (MOID (p)), upb (p, multiple, size_one_node));
+ }
+ 
+ tree
+ a68_lower_upb3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree dim = fold_convert (sizetype, a68_lower_tree (SUB (p), ctx));
+   tree multiple = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return fold_convert (CTYPE (MOID (p)), upb (p, multiple, dim));
+ }
+ 
+ /* LWB comes in two flavors.
+ 
+    The unary operator returns the lower bound of the first dimension of the
+    operand multple.
+ 
+    The binary operator returns the lower bound of the given dimension of the
+    operand multiple.  The dimension is one-based.  If the specified dimension
+    is out of bounds then an a run-time error is raised.  */
+ 
+ static tree
+ lwb (NODE_T *p, tree boundable, tree dim)
+ {
+   boundable = save_expr (boundable);
+   dim = save_expr (dim);
+ 
+   /* BOUNDABLE can be a multiple or an union whose all alternatives yield a
+      multiple.  */
+   tree zero_based_dim
+     = save_expr (fold_build2 (MINUS_EXPR, TREE_TYPE (dim), dim, size_one_node));
+   tree type = TREE_TYPE (boundable);
+   if (A68_ROW_TYPE_P (type))
+     {
+       return fold_build2 (COMPOUND_EXPR, ssizetype,
+ 			  a68_multiple_dim_check (p, boundable, dim),
+ 			  a68_multiple_lower_bound (boundable, zero_based_dim));
+     }
+   else if (A68_ROWS_TYPE_P (type))
+     {
+       return fold_build2 (COMPOUND_EXPR, ssizetype,
+ 			  a68_rows_dim_check (p, boundable, dim),
+ 			  a68_rows_lower_bound (boundable, zero_based_dim));
+     }
+   else
+     gcc_unreachable ();
+ }
+ 
+ tree
+ a68_lower_lwb2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree multiple = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return fold_convert (CTYPE (MOID (p)), lwb (p, multiple, size_one_node));
+ }
+ 
+ tree
+ a68_lower_lwb3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree dim = fold_convert (sizetype, a68_lower_tree (SUB (p), ctx));
+   tree multiple = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return fold_convert (CTYPE (MOID (p)), lwb (p, multiple, dim));
+ }
+ 
+ /* ELEMS comes in two flavors.
+ 
+    The unary operator returns the number of elements in the first dimension of
+    the operand multple.
+ 
+    DIM must be a size.
+ 
+    The binary operator returns the number of elements in the given dimension of the
+    operand multiple.  The dimension is one-based.  If the specified dimension
+    is out of bounds then an a run-time error is raised.  */
+ 
+ static tree
+ elems (NODE_T *p, tree boundable, tree dim)
+ {
+   dim = save_expr (dim);
+ 
+   /* BOUNDABLE can be a multiple or a ROWS.  */
+   tree type = TREE_TYPE (boundable);
+ 
+   /* Make DIM zero-based.  */
+   tree dim_minus_one
+     = fold_build2 (MINUS_EXPR, TREE_TYPE (dim), dim, size_one_node);
+ 
+   boundable = save_expr (boundable);
+   tree upper_bound = NULL_TREE;
+   tree lower_bound = NULL_TREE;
+   tree check_dimension = NULL_TREE;
+   if (A68_ROW_TYPE_P (type))
+     {
+       upper_bound = a68_multiple_upper_bound (boundable, dim_minus_one);
+       lower_bound = a68_multiple_lower_bound (boundable, dim_minus_one);
+       check_dimension = a68_multiple_dim_check (p, boundable, dim);
+     }
+   else if (A68_ROWS_TYPE_P (type))
+     {
+       upper_bound = a68_rows_upper_bound (boundable, dim_minus_one);
+       lower_bound = a68_rows_lower_bound (boundable, dim_minus_one);
+       check_dimension = a68_rows_dim_check (p, boundable, dim);
+     }
+   else
+     gcc_unreachable ();
+ 
+   upper_bound = save_expr (upper_bound);
+   lower_bound = save_expr (lower_bound);
+ 
+   tree non_flat = fold_build2 (PLUS_EXPR,
+ 			       sizetype,
+ 			       fold_convert (sizetype,
+ 					     fold_build2 (MINUS_EXPR, ssizetype,
+ 							  upper_bound, lower_bound)),
+ 			       size_one_node);
+ 
+   tree elems = fold_build3 (COND_EXPR, sizetype,
+ 			    fold_build2 (LT_EXPR, boolean_type_node,
+ 					 upper_bound, lower_bound),
+ 			    size_zero_node,
+ 			    non_flat);
+ 
+   if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+     elems = fold_build2 (COMPOUND_EXPR, sizetype,
+ 			 check_dimension,
+ 			 elems);
+ 
+   return elems;
+ }
+ 
+ tree
+ a68_lower_elems2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree multiple = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return fold_convert (CTYPE (MOID (p)), elems (p, multiple, size_one_node));
+ }
+ 
+ tree
+ a68_lower_elems3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree dim = fold_convert (sizetype, a68_lower_tree (SUB (p), ctx));
+   tree multiple = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return fold_convert (CTYPE (MOID (p)), elems (p, multiple, dim));
+ }
+ 
+ tree
+ a68_lower_set3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_set (MOID (p), op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_clear3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_clear (MOID (p), op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_test3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_test (op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_pow_int (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_int_pow (MOID (p), op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_pow_real (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *mode = MOID (p);
+   MOID_T *op1_mode = MOID (SUB (p));
+   MOID_T *op2_mode = MOID (NEXT (NEXT (SUB (p))));
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_real_pow (mode, op1_mode, op2_mode,
+ 		       op1, op2, a68_get_node_location (p));
+ }
+ 
+ tree
+ a68_lower_odd2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *op = NEXT (SUB (p));
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  EQ_EXPR,
+ 			  a68_bool_type,
+ 			  fold_build2 (BIT_AND_EXPR,
+ 				       CTYPE (MOID (op)),
+ 				       a68_lower_tree (op, ctx),
+ 				       build_int_cst (CTYPE (MOID (op)), 1)),
+ 			  build_int_cst (CTYPE (MOID (op)), 1));
+ }
+ 
+ tree
+ a68_lower_string_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  EQ_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  NE_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_lt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  LT_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_le3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  LE_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_gt3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  GT_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_ge3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   tree cmp = a68_string_cmp (op1, op2);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  GE_EXPR,
+ 			  a68_bool_type,
+ 			  cmp,
+ 			  build_int_cst (a68_int_type, 0));
+ }
+ 
+ tree
+ a68_lower_string_plus3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_string_concat (a68_lower_tree (SUB (p), ctx),
+ 			    a68_lower_tree (NEXT (NEXT (SUB (p))), ctx));
+ }
+ 
+ tree
+ a68_lower_string_plusab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = a68_string_concat (a68_low_deref (lhs, SUB (p)), rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_string_plusto3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *lhs_node = NEXT (NEXT (SUB (p)));
+   tree lhs = a68_lower_tree (lhs_node, ctx);
+   lhs = a68_consolidate_ref (MOID (lhs_node), lhs);
+   lhs = save_expr (lhs);
+   MOID_T *lhs_mode = MOID (lhs_node);
+   NODE_T *rhs_node = SUB (p);
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = a68_string_concat (rhs, a68_low_deref (lhs, NEXT (NEXT (SUB (p)))));
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, lhs_mode,
+ 					       operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ tree
+ a68_lower_repr2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *op = NEXT (SUB (p));
+   return a68_char_repr (op, a68_lower_tree (op, ctx));
+ }
+ 
+ tree
+ a68_lower_char_plus3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+   return a68_string_concat (a68_string_from_char (op1),
+ 			    a68_string_from_char (op2));
+ }
+ 
+ tree
+ a68_lower_char_mult3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *n1 = SUB (p);
+   NODE_T *n2 = NEXT (NEXT (SUB (p)));
+ 
+   if (MOID (n1) == M_INT)
+     {
+       gcc_assert (MOID (n2) == M_CHAR);
+       return a68_string_mult (a68_string_from_char (a68_lower_tree (n2, ctx)),
+ 			      a68_lower_tree (n1, ctx));
+     }
+   else
+     {
+       gcc_assert (MOID (n1) == M_CHAR);
+       gcc_assert (MOID (n2) == M_INT);
+       return a68_string_mult (a68_string_from_char (a68_lower_tree (n1, ctx)),
+ 			      a68_lower_tree (n2, ctx));
+     }
+ }
+ 
+ tree
+ a68_lower_string_mult3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *n1 = SUB (p);
+   NODE_T *n2 = NEXT (NEXT (SUB (p)));
+ 
+   if (MOID (n1) == M_INT)
+     {
+       gcc_assert (MOID (n2) == M_STRING || MOID (n2) == M_ROW_CHAR);
+       return a68_string_mult (a68_lower_tree (n2, ctx),
+ 			      a68_lower_tree (n1, ctx));
+     }
+   else
+     {
+       gcc_assert (MOID (n1) == M_STRING || MOID (n1) == M_ROW_CHAR);
+       gcc_assert (MOID (n2) == M_INT);
+       return a68_string_mult (a68_lower_tree (n1, ctx),
+ 			      a68_lower_tree (n2, ctx));
+     }
+ }
+ 
+ tree
+ a68_lower_string_multab3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree lhs = a68_lower_tree (SUB (p), ctx);
+   lhs = a68_consolidate_ref (MOID (SUB (p)), lhs);
+   lhs = save_expr (lhs);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+   tree operation = a68_string_mult (a68_low_deref (lhs, SUB (p)), rhs);
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  COMPOUND_EXPR,
+ 			  TREE_TYPE (lhs),
+ 			  a68_low_assignation (p, lhs, MOID (SUB (p)), operation, MOID (rhs_node)),
+ 			  lhs);
+ }
+ 
+ /* SIZETY BITS operators.  */
+ 
+ tree
+ a68_lower_bin2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bits_bin (MOID (p), op);
+ }
+ 
+ tree
+ a68_lower_bitabs2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bits_abs (MOID (p), op);
+ }
+ 
+ tree
+ a68_lower_bitleng2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bits_leng (CTYPE (MOID (p)), op);
+ }
+ 
+ tree
+ a68_lower_bitshorten2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bits_shorten (CTYPE (MOID (p)), op);
+ }
+ 
+ tree
+ a68_lower_bitnot2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_bits_not (op);
+ }
+ 
+ tree
+ a68_lower_bitand3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_and (op1, op2);
+ }
+ 
+ tree
+ a68_lower_bitior3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_ior (op1, op2);
+ }
+ 
+ tree
+ a68_lower_bitxor3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_xor (op1, op2);
+ }
+ 
+ tree
+ a68_lower_shl3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree bits = a68_lower_tree (SUB (p), ctx);
+   tree shift = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_shift (p,
+ 			 fold_build1 (NEGATE_EXPR, TREE_TYPE (shift), shift),
+ 			 bits);
+ }
+ 
+ tree
+ a68_lower_shr3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree bits = a68_lower_tree (SUB (p), ctx);
+   tree shift = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_shift (p, shift, bits);
+ }
+ 
+ tree
+ a68_lower_bitelem3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree pos = a68_lower_tree (SUB (p), ctx);
+   tree bits = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_elem (p, pos, bits);
+ }
+ 
+ tree
+ a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_eq (op1, op2);
+ }
+ 
+ tree
+ a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_ne (op1, op2);
+ }
+ 
+ tree
+ a68_lower_bit_le3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_subset (op1, op2);
+ }
+ 
+ tree
+ a68_lower_bit_ge3 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   return a68_bits_subset (op2, op1);
+ }
+ 
+ /* Environment enquiries.  */
+ 
+ tree
+ a68_lower_maxint (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_int_maxval (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_minint (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_int_minval (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_maxbits (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_maxbits (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_maxreal (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_real_maxval (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_minreal (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_real_minval (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_smallreal (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_real_smallval (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_bitswidth (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_width (a68_bits_type);
+ }
+ 
+ tree
+ a68_lower_longbitswidth (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_width (a68_long_bits_type);
+ }
+ 
+ tree
+ a68_lower_longlongbitswidth (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_width (a68_long_long_bits_type);
+ }
+ 
+ tree
+ a68_lower_shortbitswidth (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_width (a68_short_bits_type);
+ }
+ 
+ tree
+ a68_lower_shortshortbitswidth (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_bits_width (a68_short_short_bits_type);
+ }
+ 
+ tree
+ a68_lower_pi (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_real_pi (CTYPE (MOID (p)));
+ }
+ 
+ tree
+ a68_lower_nullcharacter (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree null_character = NULL_TREE;
+ 
+   if (null_character == NULL_TREE)
+     null_character = build_int_cst (a68_char_type, 0);
+   return null_character;
+ }
+ 
+ tree
+ a68_lower_flip (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree flip = NULL_TREE;
+ 
+   if (flip == NULL_TREE)
+     flip = build_int_cst (a68_char_type, 84); /* T */
+   return flip;
+ }
+ 
+ tree
+ a68_lower_eofchar (NODE_T *p ATTRIBUTE_UNUSED,
+ 		   LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree eofchar = NULL_TREE;
+ 
+   if (eofchar == NULL_TREE)
+     eofchar = build_int_cst (a68_char_type, -1);
+   return eofchar;
+ }
+ 
+ tree
+ a68_lower_replacementchar (NODE_T *p ATTRIBUTE_UNUSED,
+ 		       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree replacementchar = NULL_TREE;
+ 
+   if (replacementchar == NULL_TREE)
+     replacementchar = build_int_cst (a68_char_type, 0xfffd);
+   return replacementchar;
+ }
+ 
+ tree
+ a68_lower_flop (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree flop = NULL_TREE;
+ 
+   if (flop == NULL_TREE)
+     flop = build_int_cst (a68_char_type, 70); /* F */
+   return flop;
+ }
+ 
+ tree
+ a68_lower_errorchar (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree errorchar = NULL_TREE;
+ 
+   if (errorchar == NULL_TREE)
+     errorchar = build_int_cst (a68_char_type, 42); /* * */
+   return errorchar;
+ }
+ 
+ tree
+ a68_lower_blank (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   static tree blank = NULL_TREE;
+ 
+   if (blank == NULL_TREE)
+     blank = build_int_cst (a68_char_type, 32);
+   return blank;
+ }
+ 
+ tree
+ a68_lower_intlengths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   HOST_WIDE_INT int_size = int_size_in_bytes (a68_int_type);
+   HOST_WIDE_INT long_int_size = int_size_in_bytes (a68_long_int_type);
+   HOST_WIDE_INT long_long_int_size = int_size_in_bytes (a68_long_long_int_type);
+ 
+   gcc_assert (int_size != -1);
+   gcc_assert (long_int_size != -1);
+   gcc_assert (long_long_int_size != -1);
+ 
+   int lengths = 1;
+   if (long_long_int_size != long_int_size)
+     lengths++;
+   if (long_int_size != int_size)
+     lengths++;
+ 
+   return build_int_cst (CTYPE (MOID (p)), lengths);
+ }
+ 
+ tree
+ a68_lower_intshorths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   HOST_WIDE_INT int_size = int_size_in_bytes (a68_int_type);
+   HOST_WIDE_INT short_int_size = int_size_in_bytes (a68_short_int_type);
+   HOST_WIDE_INT short_short_int_size = int_size_in_bytes (a68_short_short_int_type);
+ 
+   gcc_assert (int_size != -1);
+   gcc_assert (short_int_size != -1);
+   gcc_assert (short_short_int_size != -1);
+ 
+   int shorths = 1;
+   if (short_short_int_size != short_int_size)
+     shorths++;
+   if (short_int_size != int_size)
+     shorths++;
+ 
+   return build_int_cst (CTYPE (MOID (p)), shorths);
+ }
+ 
+ tree
+ a68_lower_bitslengths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   HOST_WIDE_INT bits_size = int_size_in_bytes (a68_bits_type);
+   HOST_WIDE_INT long_bits_size = int_size_in_bytes (a68_long_bits_type);
+   HOST_WIDE_INT long_long_bits_size = int_size_in_bytes (a68_long_long_bits_type);
+ 
+   gcc_assert (bits_size != -1);
+   gcc_assert (long_bits_size != -1);
+   gcc_assert (long_long_bits_size != -1);
+ 
+   int lengths = 1;
+   if (long_long_bits_size != long_bits_size)
+     lengths++;
+   if (long_bits_size != bits_size)
+     lengths++;
+ 
+   return build_int_cst (CTYPE (MOID (p)), lengths);
+ }
+ 
+ tree
+ a68_lower_bitsshorths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   HOST_WIDE_INT bits_size = int_size_in_bytes (a68_bits_type);
+   HOST_WIDE_INT short_bits_size = int_size_in_bytes (a68_short_bits_type);
+   HOST_WIDE_INT short_short_bits_size = int_size_in_bytes (a68_short_short_bits_type);
+ 
+   gcc_assert (bits_size != -1);
+   gcc_assert (short_bits_size != -1);
+   gcc_assert (short_short_bits_size != -1);
+ 
+   int shorths = 1;
+   if (short_short_bits_size != short_bits_size)
+     shorths++;
+   if (short_bits_size != bits_size)
+     shorths++;
+ 
+   return build_int_cst (CTYPE (MOID (p)), shorths);
+ }
+ 
+ tree
+ a68_lower_reallengths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   HOST_WIDE_INT real_size = int_size_in_bytes (a68_real_type);
+   HOST_WIDE_INT long_real_size = int_size_in_bytes (a68_long_real_type);
+   HOST_WIDE_INT long_long_real_size = int_size_in_bytes (a68_long_long_real_type);
+ 
+   gcc_assert (real_size != -1);
+   gcc_assert (long_real_size != -1);
+   gcc_assert (long_long_real_size != -1);
+ 
+   int lengths = 1;
+   if (long_long_real_size != long_real_size)
+     lengths++;
+   if (long_real_size != real_size)
+     lengths++;
+ 
+   return build_int_cst (CTYPE (MOID (p)), lengths);
+ }
+ 
+ tree
+ a68_lower_realshorths (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return build_int_cst (CTYPE (MOID (p)), 1);
+ }
+ 
+ tree
+ a68_lower_infinity (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return build_real (CTYPE (MOID (p)), dconstinf);
+ }
+ 
+ tree
+ a68_lower_minusinfinity (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return build_real (CTYPE (MOID (p)), dconstninf);
+ }
+ 
+ tree
+ a68_lower_maxabschar (NODE_T *p ATTRIBUTE_UNUSED,
+ 		      LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_char_max ();
+ }
+ 
+ tree
+ a68_lower_sqrt (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sqrt (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_sqrt (NODE_T *p ATTRIBUTE_UNUSED,
+ 		     LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sqrt (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_sqrt (NODE_T *p ATTRIBUTE_UNUSED,
+ 			  LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sqrt (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_tan (NODE_T *p ATTRIBUTE_UNUSED,
+ 	       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_tan (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_tan (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_tan (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_tan (NODE_T *p ATTRIBUTE_UNUSED,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_tan (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_sin (NODE_T *p ATTRIBUTE_UNUSED,
+ 	       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sin (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_sin (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sin (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_sin (NODE_T *p ATTRIBUTE_UNUSED,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_sin (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_cos (NODE_T *p ATTRIBUTE_UNUSED,
+ 	       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_cos (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_cos (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_cos (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_cos (NODE_T *p ATTRIBUTE_UNUSED,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_cos (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_acos (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_acos (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_acos (NODE_T *p ATTRIBUTE_UNUSED,
+ 		     LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_acos (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_acos (NODE_T *p ATTRIBUTE_UNUSED,
+ 			  LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_acos (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_asin (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_asin (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_asin (NODE_T *p ATTRIBUTE_UNUSED,
+ 		     LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_asin (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_asin (NODE_T *p ATTRIBUTE_UNUSED,
+ 			  LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_asin (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_atan (NODE_T *p ATTRIBUTE_UNUSED,
+ 		LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_atan (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_atan (NODE_T *p ATTRIBUTE_UNUSED,
+ 		     LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_atan (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_atan (NODE_T *p ATTRIBUTE_UNUSED,
+ 			  LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_atan (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_ln (NODE_T *p ATTRIBUTE_UNUSED,
+ 	      LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_ln (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_ln (NODE_T *p ATTRIBUTE_UNUSED,
+ 		   LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_ln (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_ln (NODE_T *p ATTRIBUTE_UNUSED,
+ 			LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_ln (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_log (NODE_T *p ATTRIBUTE_UNUSED,
+ 	       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_log (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_log (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_log (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_log (NODE_T *p ATTRIBUTE_UNUSED,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_log (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_exp (NODE_T *p ATTRIBUTE_UNUSED,
+ 	       LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_exp (a68_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_exp (NODE_T *p ATTRIBUTE_UNUSED,
+ 		    LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_exp (a68_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_long_long_exp (NODE_T *p ATTRIBUTE_UNUSED,
+ 			 LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree t = a68_real_exp (a68_long_long_real_type);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_reali (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t = a68_complex_i (M_COMPLEX, op1, op2);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_longreali (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t = a68_complex_i (M_LONG_COMPLEX, op1, op2);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_longlongreali (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t = a68_complex_i (M_LONG_LONG_COMPLEX, op1, op2);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_inti (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t = a68_complex_i (M_COMPLEX,
+ 			  convert_to_real (a68_real_type, op1),
+ 			  convert_to_real (a68_real_type, op2));
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_longinti (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t= a68_complex_i (M_LONG_COMPLEX,
+ 			 convert_to_real (a68_long_real_type, op1),
+ 			 convert_to_real (a68_long_real_type, op2));
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_longlonginti (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op1 = a68_lower_tree (SUB (p), ctx);
+   tree op2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+   tree t = a68_complex_i (M_LONG_LONG_COMPLEX,
+ 			  convert_to_real (a68_long_long_real_type, op1),
+ 			  convert_to_real (a68_long_long_real_type, op2));
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_re2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   tree t = a68_complex_re (op);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_im2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   tree t = a68_complex_im (op);
+   if (CAN_HAVE_LOCATION_P (t))
+     SET_EXPR_LOCATION (t, a68_get_node_location (p));
+   return t;
+ }
+ 
+ tree
+ a68_lower_conj2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+   return a68_complex_conj (MOID (p), op);
+ }
+ 
+ tree
+ a68_lower_shortenint2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_int_shorten (MOID (p), MOID (NEXT (SUB (p))),
+ 			  a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ tree
+ a68_lower_lengint2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_int_leng (MOID (p), MOID (NEXT (SUB (p))),
+ 		       a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ tree
+ a68_lower_shortenreal2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_real_shorten (MOID (p), MOID (NEXT (SUB (p))),
+ 			   a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ tree
+ a68_lower_lengreal2 (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_real_leng (MOID (p), MOID (NEXT (SUB (p))),
+ 			a68_lower_tree (NEXT (SUB (p)), ctx));
+ }
+ 
+ tree
+ a68_lower_random (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_get_libcall (A68_LIBCALL_RANDOM);
+ }
+ 
+ tree
+ a68_lower_longrandom (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   /* Note we dont build a call because this will get deprocedured in case it is
+      actually called.  */
+   return a68_get_libcall (A68_LIBCALL_LONGRANDOM);
+ }
+ 
+ tree
+ a68_lower_longlongrandom (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_get_libcall (A68_LIBCALL_LONGLONGRANDOM);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-procs.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-procs.cc
*** gcc-15.2.0/gcc/algol68/a68-low-procs.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-procs.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,52 ----
+ /* Lowering routines for all things related to procedures.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielding of SKIP for the given procedure mode.  */
+ 
+ tree
+ a68_get_proc_skip_tree (MOID_T *m)
+ {
+   /* A SKIP for a procecure mode lowers to a NULL pointer to a function.  */
+   return build_int_cst (CTYPE (m), 0);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-ranges.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-ranges.cc
*** gcc-15.2.0/gcc/algol68/a68-low-ranges.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-ranges.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,699 ----
+ /* Management of ranges in the Algol 68 front-end.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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 "tree.h"
+ #include "fold-const.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ #include "tree-nested.h"
+ 
+ #include "a68.h"
+ 
+ /* Many Algol 68 constructions introduce a new range of definitions.  This is
+    the case of clauses and of routine definitions.  The stack of ranges at any
+    point in the program determines the "nest" of the constructions declared in
+    the program.  This nest carries a record of all the declarations forming the
+    environment in which that construct is to be interpreted.
+ 
+    This file contains a manager of ranges of which we allocate one for each
+    range inducing construct.  The top-level range corresponds to the primal
+    environment.
+ 
+    The ranges are used by the lowering code in order to create GCC tree BLOCK
+    nodes, and also to keep track of the set of declarations and of statements
+    being added by the current serial clause.  */
+ 
+ struct GTY (()) range
+ {
+   /* Whether this range entry doesn't introduce a lexical frame.  Declarations
+      and decl_exprs get added to the nearst enclosing range that is not
+      frameless.  */
+   bool frameless;
+ 
+   /* A chain of _DECL nodes for all variables, constants, functions,
+      and typedef types.  These are in the reverse of the order supplied.  */
+   tree names;
+ 
+   /* A statements list of DECL_EXPR nodes for all the declarations in the
+      range.  These are prepended to the statements list when the range is
+      closed.  */
+   tree decl_exprs;
+ 
+   /* The context of the range, either a function declaration or a translation
+      unit.  */
+   tree context;
+ 
+   /* The range below this one.  */
+   struct range *next;
+ 
+   /* Statement list.  */
+   tree stmt_list;
+ 
+   /* List of blocks to which the block created for this range is the
+      superblock.  */
+   tree blocks;
+ 
+   /* Mode associated with the range.  For serial clauses, this is the mode of
+      the value yielded by the clause.  */
+   MOID_T *mode;
+ 
+   /* If not TREE_NULL, then the range corresponds to a function, which can be
+      either nested or defined at top-level.  */
+   tree fndecl;
+   bool top_level_function;
+ 
+   /* The following fields are used by ranges introduced by serial
+      clauses.  */
+   bool save_restore_stack;
+   bool has_completers;
+   tree clause_result_decl;
+   tree clause_exit_label_decl;
+   tree clause_stack_save_decl;
+ };
+ 
+ /* Global and current ranges.  */
+ 
+ static GTY (()) struct range *global_range;
+ static GTY (()) struct range *current_range;
+ 
+ /* Create a new range and push it in the list.  */
+ 
+ static struct range *
+ new_range (void)
+ {
+   struct range *range = ggc_alloc<struct range> ();
+ 
+   range->frameless = false;
+   range->names = NULL;
+   range->decl_exprs = alloc_stmt_list ();
+   range->context = NULL;
+   range->next = NULL;
+   range->blocks = NULL_TREE;
+   range->stmt_list = alloc_stmt_list ();
+   range->fndecl = NULL_TREE;
+   range->top_level_function = false;
+   range->save_restore_stack = false;
+   range->has_completers = false;
+   range->clause_result_decl = NULL_TREE;
+   range->clause_exit_label_decl = NULL_TREE;
+   range->clause_stack_save_decl = NULL_TREE;
+   range->mode = NO_MOID;
+   return range;
+ }
+ 
+ /* Push a new frameless range.  */
+ 
+ void
+ a68_push_stmt_list (MOID_T *mode)
+ {
+   a68_push_range (mode);
+   current_range->frameless = true;
+ }
+ 
+ /* Pop a frameless range.  */
+ 
+ tree
+ a68_pop_stmt_list (void)
+ {
+   /* This will result into a stmt list.  */
+   tree res = a68_pop_range ();
+   gcc_assert (TREE_CODE (res) == STATEMENT_LIST);
+   return res;
+ }
+ 
+ /* Push a new range.  */
+ 
+ void
+ a68_push_range (MOID_T *mode)
+ {
+   struct range *range = new_range ();
+   if (current_range)
+     range->context = current_range->context;
+   range->next = current_range;
+   range->mode = mode;
+   current_range = range;
+ }
+ 
+ /* Pop a range, with a finalizer.
+ 
+    Return a BIND_EXPR, a statement list or a TRY_FINALLY_EXPR.  */
+ 
+ tree
+ a68_pop_range_with_finalizer (tree finalizer)
+ {
+   tree range = a68_pop_range ();
+   return fold_build2 (TRY_FINALLY_EXPR, TREE_TYPE (range),
+ 		      range, finalizer);
+ }
+ 
+ /* Pop a range.  Return either a BIND_EXPR or a statements list.  */
+ 
+ tree
+ a68_pop_range (void)
+ {
+   struct range *range = current_range;
+   current_range = range->next;
+   tree type = (range->mode == NULL ? void_type_node : CTYPE (range->mode));
+ 
+   /* If TYPE is a pointer type and the last expression in the statement list is
+      a variable of the type pointed by TYPE then take its address.  */
+   tree_stmt_iterator i = tsi_last (range->stmt_list);
+   if (POINTER_TYPE_P (type) && TREE_TYPE (type) == TREE_TYPE (tsi_stmt (i)))
+     {
+       append_to_statement_list_force (a68_consolidate_ref (range->mode, tsi_stmt (i)),
+ 				      &range->stmt_list);
+       tsi_delink (&i);
+     }
+ 
+   tree clause = NULL_TREE;
+   if (range->frameless)
+     clause = range->stmt_list;
+   else
+     {
+       /* Create a block and set its declarations and supercontext.  */
+       tree block = make_node (BLOCK);
+       BLOCK_VARS (block) = range->names;
+       BLOCK_SUBBLOCKS (block) = range->blocks;
+ 
+       /* In each subblock, record that this is its superior.  */
+       for (tree t = range->blocks; t; t = BLOCK_CHAIN (t))
+ 	BLOCK_SUPERCONTEXT (t) = block;
+ 
+       if (range->fndecl)
+ 	{
+ 	  BLOCK_SUPERCONTEXT (block) = range->fndecl;
+ 	  DECL_INITIAL (range->fndecl) = block;
+ 	}
+       else
+ 	{
+ 	  current_range->blocks
+ 	    = block_chainon (current_range->blocks, block);
+ 	}
+ 
+       TREE_USED (block) = true;
+ 
+       /* Create a BIND if the range contains declarations.  Otherwise just
+ 	 use the statements list.  */
+       clause = range->stmt_list;
+       if (range->names != NULL_TREE)
+ 	{
+ 	  clause = build3 (BIND_EXPR,
+ 			   type,
+ 			   range->names,
+ 			   range->stmt_list,
+ 			   block);
+ 	  TREE_SIDE_EFFECTS (clause) = 1;
+ 	  BIND_EXPR_VARS (clause) = BLOCK_VARS (block);
+ 	}
+ 
+       /* Prepend the decl_exprs to the range's statements list.  */
+       tree_stmt_iterator q = tsi_start (range->stmt_list);
+       tsi_link_before (&q, range->decl_exprs, TSI_SAME_STMT);
+     }
+ 
+   /* Set the type of the stmt_list.  */
+   TREE_TYPE (range->stmt_list) = type;
+   TREE_SIDE_EFFECTS (range->stmt_list) = 1;
+ 
+   return clause;
+ }
+ 
+ /* Add a new expression to the current range.  */
+ 
+ void
+ a68_add_stmt (tree exp)
+ {
+   if (exp == void_node)
+     /* This may result from a mode declaration.  */
+     return;
+   gcc_assert (current_range != NULL);
+   append_to_statement_list_force (exp,
+ 				  &current_range->stmt_list);
+ }
+ 
+ /* Add a new declaration to the current range.  */
+ 
+ void
+ a68_add_decl (tree decl)
+ {
+   gcc_assert (current_range != NULL);
+   struct range *range = current_range;
+ 
+   /* Search for the right frame where to add the declaration.  */
+   while (range->frameless)
+     {
+       gcc_assert (range->next != NULL);
+       range = range->next;
+     }
+ 
+   tree n = range->names;
+   while (n != decl && n != NULL)
+     n = TREE_CHAIN (n);
+   if (n != decl)
+     {
+       if (decl != current_function_decl)
+ 	DECL_CONTEXT (decl) = range->context;
+       /* Note this list needs to be in reverse order for compatibility with
+ 	 GCC.  */
+       TREE_CHAIN (decl) = range->names;
+       range->names = decl;
+     }
+ }
+ 
+ /* Add a new declaration expr to the current range.  */
+ 
+ void
+ a68_add_decl_expr (tree decl_expr)
+ {
+   gcc_assert (current_range != NULL);
+   struct range *range = current_range;
+ 
+   /* Search for the right frame where to add the declaration expr.  */
+   while (range->frameless)
+     {
+       gcc_assert (range->next != NULL);
+       range = range->next;
+     }
+ 
+   append_to_statement_list_force (decl_expr, &range->decl_exprs);
+ }
+ 
+ /* Add a completer in the current range.  */
+ 
+ void
+ a68_add_completer (void)
+ {
+   struct range *range = current_range;
+ 
+   /* The last statement in the statements list is either a single unit or a
+      labeled unit, i.e a COMPOUND_EXPR whose first expression is a label and
+      second expression is the unit.  Consolidate the unit within the labeled
+      unit to a ref.  */
+   tree_stmt_iterator i = tsi_last (range->stmt_list);
+   tree last_expr = tsi_stmt (i);
+ 
+   if (TREE_CODE (last_expr) == COMPOUND_EXPR
+       && TREE_CODE (TREE_OPERAND (last_expr, 0)) == LABEL_EXPR)
+     {
+       TREE_OPERAND (last_expr, 1) = a68_consolidate_ref (range->mode,
+ 							 TREE_OPERAND (last_expr, 1));
+       TREE_TYPE (last_expr) = TREE_TYPE (TREE_OPERAND (last_expr, 1));
+     }
+   else
+     last_expr = a68_consolidate_ref (range->mode, last_expr);
+ 
+   /* Now assign the labeled unit to the clause result decl then jump to the end
+      of the serial clause.  */
+   append_to_statement_list_force (fold_build2 (MODIFY_EXPR,
+ 					       void_type_node,
+ 					       range->clause_result_decl,
+ 					       last_expr),
+ 				  &range->stmt_list);
+   tsi_delink (&i);
+   append_to_statement_list_force (fold_build1 (GOTO_EXPR, void_type_node,
+ 					       range->clause_exit_label_decl),
+ 				  &range->stmt_list);
+   range->has_completers = true;
+ }
+ 
+ /* Get the context of the current range.  */
+ 
+ tree
+ a68_range_context (void)
+ {
+   gcc_assert (current_range != NULL);
+   return current_range->context;
+ }
+ 
+ /* Get the list of declarations in the current range.  */
+ 
+ tree
+ a68_range_names (void)
+ {
+   struct range *range = current_range;
+ 
+   while (range->frameless && range->next != NULL)
+     range = range->next;
+ 
+   if (range != NULL)
+     return range->names;
+   else
+     return NULL_TREE;
+ }
+ 
+ /* Get the statements list of the current range.  */
+ 
+ tree
+ a68_range_stmt_list (void)
+ {
+   gcc_assert (current_range != NULL);
+   return current_range->stmt_list;
+ }
+ 
+ /* Push a range for a function.  */
+ 
+ void
+ a68_push_function_range (tree fndecl, tree result_type,
+ 			 bool top_level)
+ {
+   a68_push_range (NULL /* VOID */);
+   current_range->fndecl = fndecl;
+   current_range->top_level_function = top_level;
+   current_range->context = fndecl;
+ 
+   /* Setup the result declaration.  */
+   tree resdecl = build_decl (UNKNOWN_LOCATION,
+ 			     RESULT_DECL,
+ 			     get_identifier ("resdecl%"),
+ 			     result_type);
+   DECL_ARTIFICIAL (resdecl) = 1;
+   DECL_IGNORED_P (resdecl) = 1;
+   DECL_CONTEXT (resdecl) = fndecl;
+   DECL_RESULT (fndecl) = resdecl;
+   rest_of_decl_compilation (fndecl, 1, 0);
+   make_decl_rtl (fndecl);
+   allocate_struct_function (fndecl, false);
+ 
+   /* Let GCC know the current scope is this function.  */
+   current_function_decl = fndecl;
+ }
+ 
+ /* Pop a range for a function.  */
+ 
+ void
+ a68_pop_function_range (tree body)
+ {
+   tree fndecl = current_range->fndecl;
+   bool top_level = current_range->top_level_function;
+ 
+   if (TREE_TYPE (DECL_RESULT (fndecl)) == void_type_node)
+     {
+       a68_add_stmt (body);
+     }
+   else
+     {
+       /* Append the return statement.
+ 	 Note that this does the copy of the returned value.  */
+       tree return_stmt = fold_build1 (RETURN_EXPR,
+ 				      void_type_node,
+ 				      fold_build2 (MODIFY_EXPR,
+ 						   TREE_TYPE (DECL_RESULT (fndecl)),
+ 						   DECL_RESULT (fndecl),
+ 						   a68_low_dup (body, true /* use_heap */)));
+       a68_add_stmt (return_stmt);
+     }
+ 
+   /* Set the body of the function.  */
+   DECL_SAVED_TREE (fndecl) = a68_pop_range ();
+ 
+   /* Output the GENERIC tree for the function..  */
+   dump_function (TDI_original, fndecl);
+   /* This compiles the function all the way to assembler language output.
+      Nested functions are finalized when the containing top-level function is
+      finalized.  */
+   if (top_level || a68_in_global_range ())
+     cgraph_node::finalize_function (fndecl, true);
+   else
+     /* Register this function with cgraph just far enough to get it added to
+        our parent's nested function list.  */
+     (void) cgraph_node::get_create (fndecl);
+ 
+   /* Let GCC know the current scope has changed.  */
+   current_function_decl = NULL_TREE;
+   for (struct range *r = current_range; r; r = r->next)
+     {
+       if (r->fndecl != NULL_TREE)
+ 	current_function_decl = r->fndecl;
+     }
+ }
+ 
+ /* Push a range for a serial clause.
+ 
+     label1:                 BIND_EXPR_BODY (STATEMENT_LIST (
+      expr1;                  label1,
+      expr2                   expr1,
+    exit label2:              clause_result = expr2,
+      expr3;                  goto exit_label,
+      expr4                   label2,
+    exit label3:              expr3,
+      expr5                   clause_result = expr4,
+                              goto exit_label,
+                              label3,
+                              clause_result = expr5,
+                              exit_label,
+ 			     clause_result)) */
+ 
+ void
+ a68_push_serial_clause_range (MOID_T *clause_mode,
+ 			      bool save_restore_stack)
+ {
+   /* Get the type of the enclosing clause.  */
+   tree clause_type = CTYPE (clause_mode);
+ 
+   /* If the serial clause has declarations that involve dynamic allocation, and
+      the environ it establishes is local, then save the stack pointer.  */
+   if (save_restore_stack)
+     {
+       a68_push_range (clause_mode);
+       current_range->save_restore_stack = true;
+ 
+       tree outer_clause_result_decl = build_decl (UNKNOWN_LOCATION,
+ 						  VAR_DECL,
+ 						  NULL, /* Set below.  */
+ 						  clause_type);
+       char *outer_clause_result_name = xasprintf ("outer_clause_result%d%%",
+ 						  DECL_UID (outer_clause_result_decl));
+       DECL_NAME (outer_clause_result_decl) = get_identifier (outer_clause_result_name);
+       free (outer_clause_result_name);
+       current_range->clause_result_decl = outer_clause_result_decl;
+       a68_add_decl (outer_clause_result_decl);
+ 
+       /* Variable used to save the stack pointer.  */
+       tree stack_save_decl = build_decl (UNKNOWN_LOCATION,
+ 					 VAR_DECL,
+ 					 get_identifier ("stack_save%"),
+ 					 build_pointer_type (char_type_node));
+       current_range->clause_stack_save_decl = stack_save_decl;
+       a68_add_decl (stack_save_decl);
+       a68_add_stmt (fold_build1 (DECL_EXPR,
+ 				 TREE_TYPE (stack_save_decl),
+ 				 stack_save_decl));
+ 
+       /* Save stack pointer.  */
+       tree call = builtin_decl_implicit (BUILT_IN_STACK_SAVE);
+       call = build_call_expr_loc (UNKNOWN_LOCATION, call, 0);
+       a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 				 stack_save_decl, call));
+     }
+ 
+   /* Push a new range.  */
+   a68_push_range (clause_mode);
+   current_range->save_restore_stack = save_restore_stack;
+ 
+   /* Create a decl for clause_result with the right type and add it to the
+      block's declaration list.  */
+   tree clause_result_decl = build_decl (UNKNOWN_LOCATION,
+ 					VAR_DECL,
+ 					NULL, /* Set below.  */
+ 					clause_type);
+   char *clause_result_name = xasprintf ("clause_result%d%%", DECL_UID (clause_result_decl));
+   DECL_NAME (clause_result_decl) = get_identifier (clause_result_name);
+   //  free (clause_result_name);
+   DECL_INITIAL (clause_result_decl) = a68_get_skip_tree (clause_mode);
+   DECL_CONTEXT (clause_result_decl) = current_range->context;
+   current_range->clause_result_decl = clause_result_decl;
+ 
+   /* Create a decl for the clause's exit label.  */
+   tree clause_exit_label_decl = build_decl (UNKNOWN_LOCATION,
+ 					    LABEL_DECL,
+ 					    NULL, /* Set below.  */
+ 					    void_type_node);
+   char *exit_label_name = xasprintf ("clause_exit_label%d%%", DECL_UID (clause_exit_label_decl));
+   DECL_NAME (clause_exit_label_decl) = get_identifier (exit_label_name);
+   free (exit_label_name);
+   DECL_CONTEXT (clause_exit_label_decl) = current_range->context;
+   current_range->clause_exit_label_decl = clause_exit_label_decl;
+ }
+ 
+ /* Pop a range for a serial clause and return the resulting bind
+    expression.  */
+ 
+ tree
+ a68_pop_serial_clause_range (void)
+ {
+   struct range *range = current_range;
+   MOID_T *clause_mode = range->mode;
+   tree clause_type = CTYPE (clause_mode);
+ 
+   /* The last expression in the statements list is either a single unit or a
+      labeled unit.  Consolidate it to a ref if required by the mode of the
+      serial clause.  */
+   {
+     tree_stmt_iterator si = tsi_last (range->stmt_list);
+     tree last_expr = tsi_stmt (si);
+     if (TREE_CODE (last_expr) == COMPOUND_EXPR
+ 	&& TREE_CODE (TREE_OPERAND (last_expr, 0)) == LABEL_EXPR)
+       {
+ 	TREE_OPERAND (last_expr, 1) = a68_consolidate_ref (range->mode,
+ 							   TREE_OPERAND (last_expr, 1));
+ 	TREE_TYPE (last_expr) = TREE_TYPE (TREE_OPERAND (last_expr, 1));
+       }
+     else
+       last_expr = a68_consolidate_ref (range->mode, last_expr);
+     a68_add_stmt (last_expr);
+     tsi_delink (&si);
+   }
+ 
+   /* If the serial clause has completers, we have to make use of the
+      clause_result% and clause_exit_label% mechanism to assure the statements
+      list has a single exit at the end.  */
+   if (range->has_completers)
+     {
+       /* First prepend EXPR_DECL expressions for clause_result% and
+ 	 clause_exit_label% */
+       {
+ 	tree_stmt_iterator si = tsi_start (range->stmt_list);
+ 	tsi_link_before (&si,
+ 			 fold_build1 (DECL_EXPR,
+ 				      TREE_TYPE (range->clause_result_decl),
+ 				      range->clause_result_decl),
+ 			 TSI_CONTINUE_LINKING);
+ 	tsi_link_before (&si,
+ 			 fold_build1 (DECL_EXPR,
+ 				      TREE_TYPE (range->clause_exit_label_decl),
+ 				      range->clause_exit_label_decl),
+ 			 TSI_CONTINUE_LINKING);
+       }
+ 
+       /* Then turn the last expression in stmt_list to an assignment to
+ 	 clause_result_decl%, but don't bother if it has been voided.  */
+       if (clause_type != a68_void_type)
+ 	{
+ 	  tree_stmt_iterator si = tsi_last (range->stmt_list);
+ 	  tree last_expr = tsi_stmt (si);
+ 
+ 	  a68_add_stmt (build2 (MODIFY_EXPR,
+ 				clause_type,
+ 				range->clause_result_decl,
+ 				last_expr));
+ 	  tsi_delink (&si);
+ 	}
+ 
+       a68_add_decl (range->clause_result_decl);
+       a68_add_decl (range->clause_exit_label_decl);
+ 
+       /* Finally append the exit label and last expression with
+ 	 result_decl.  */
+       a68_add_stmt (build1 (LABEL_EXPR, void_type_node, range->clause_exit_label_decl));
+       a68_add_stmt (build1 (NON_LVALUE_EXPR, clause_type, range->clause_result_decl));
+     }
+ 
+   /* Check that the type of the last statement in the statements list is the
+      same than the type corresponding to the clause mode.  */
+   {
+     tree_stmt_iterator si = tsi_last (range->stmt_list);
+     if (TREE_TYPE (tsi_stmt (si)) != clause_type
+ 	/* But NIL can appear in a context expecting VOID with no widening.  */
+ 	&& !(clause_type == a68_void_type
+ 	     && POINTER_TYPE_P (TREE_TYPE (tsi_stmt (si)))
+ 	     && TREE_CODE (tsi_stmt (si)) == INTEGER_CST
+ 	     && tree_to_shwi (tsi_stmt (si)) == 0)
+ 	/* And any row type is valid when M_ROWS is expected.  */
+ 	&& !(A68_ROWS_TYPE_P (clause_type)
+ 	     && A68_ROWS_TYPE_P (TREE_TYPE (tsi_stmt (si))))
+ 	/* Do not rely on comparing pointer types, as the equality fails in
+ 	   that case.  We need a better way of comparing types, either using
+ 	   TYPE_CANONICAL or caching.  */
+ 	&& !(POINTER_TYPE_P (TREE_TYPE (tsi_stmt (si))) && POINTER_TYPE_P (clause_type)))
+       {
+ 	printf ("last statement:\n");
+ 	debug_tree (tsi_stmt (si));
+ 	printf ("expected type:\n");
+ 	debug_tree (clause_type);
+ 	gcc_unreachable ();
+       }
+   }
+ 
+   /* If the serial clause has declarations that involve dynamic allocation, and
+      the environ it establishes is local, then restore the stack pointer.  */
+   if (range->save_restore_stack)
+     {
+       /* Turn last expression of inner clause into a modify statement.  This
+ 	 may involve a copy.  This can be omitted if the serial clause yields
+ 	 void.  */
+       if (clause_type != a68_void_type)
+ 	{
+ 	  tree_stmt_iterator si = tsi_last (range->stmt_list);
+ 	  tree last_expr = tsi_stmt (si);
+ 
+ 	  a68_add_stmt (build2 (MODIFY_EXPR,
+ 				clause_type,
+ 				range->next->clause_result_decl,
+ 				a68_low_dup (last_expr)));
+ 	  tsi_delink (&si);
+ 	}
+ 
+       /* Finish inner clause, restoring stack pointer on finalizing.  */
+       tree restore_sp = builtin_decl_implicit (BUILT_IN_STACK_RESTORE);
+       restore_sp = build_call_expr_loc (UNKNOWN_LOCATION, restore_sp, 1,
+ 					current_range->next->clause_stack_save_decl);
+       a68_add_stmt (a68_pop_range_with_finalizer (restore_sp));
+       /* The result value is now in clause_result_decl.  */
+       a68_add_stmt (build1 (NON_LVALUE_EXPR, clause_type,
+ 			    current_range->clause_result_decl));
+     }
+ 
+   return a68_pop_range ();
+ }
+ 
+ /* Whether the current range is the global range.  */
+ 
+ bool
+ a68_in_global_range (void)
+ {
+   return current_range == global_range;
+ }
+ 
+ /* Initialize ranges.  */
+ 
+ void
+ a68_init_ranges (void)
+ {
+   global_range = new_range ();
+   global_range->context = build_translation_unit_decl (NULL);
+   current_range = global_range;
+ }
+ 
+ #include "gt-algol68-a68-low-ranges.h"
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-reals.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-reals.cc
*** gcc-15.2.0/gcc/algol68/a68-low-reals.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-reals.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,593 ----
+ /* Lowering routines for all things related to REAL values.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "math.h" /* For log10 */
+ 
+ #include "a68.h"
+ 
+ tree
+ a68_get_real_skip_tree (MOID_T *m)
+ {
+   tree int_type = NULL_TREE;
+   tree real_type = NULL_TREE;
+ 
+   if (m == M_REAL)
+     {
+       int_type = a68_int_type;
+       real_type = a68_real_type;
+     }
+   else if (m == M_LONG_REAL)
+     {
+       int_type = a68_long_int_type;
+       real_type = a68_long_real_type;
+     }
+   else if (m == M_LONG_LONG_REAL)
+     {
+       int_type = a68_long_long_int_type;
+       real_type = a68_long_long_real_type;
+     }
+   else
+     gcc_unreachable ();
+ 
+   return build_real_from_int_cst (real_type,
+ 				  build_int_cst (int_type, 0));
+ }
+ 
+ static tree
+ addr_of_builtin_decl (enum built_in_function fncode)
+ {
+   tree builtin = builtin_decl_explicit (fncode);
+   return fold_build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (builtin)), builtin);
+ }
+ 
+ /* Build PI for the given real type.  */
+ 
+ tree
+ a68_real_pi (tree type)
+ {
+   return build_real (type, dconst_pi ());
+ }
+ 
+ /* Given a real type, build the maximum value expresssable with that type.  */
+ 
+ tree
+ a68_real_maxval (tree type)
+ {
+   REAL_VALUE_TYPE max;
+   real_maxval (&max, 0, TYPE_MODE (type));
+   return build_real (type, max);
+ }
+ 
+ /* Given a real type, build the minimum value expressable with that type.  */
+ 
+ tree
+ a68_real_minval (tree type)
+ {
+   REAL_VALUE_TYPE min;
+   real_maxval (&min, 1, TYPE_MODE (type));
+   return build_real (type, min);
+ }
+ 
+ /* Given a real type, build the smallest value which can be meaningfully added
+    to or substracted from 1.  */
+ 
+ tree
+ a68_real_smallval (tree type)
+ {
+   /* The smallest real value which can be meaningfully added to or subtracted
+      from 1.  */
+   const machine_mode mode = TYPE_MODE (type);
+   const struct real_format *fmt = REAL_MODE_FORMAT (mode);
+ 
+   char buf[128];
+   if (fmt->pnan < fmt->p)
+     snprintf (buf, sizeof (buf), "0x1p%d", fmt->emin - fmt->p);
+   else
+     snprintf (buf, sizeof (buf), "0x1p%d", 1 - fmt->p);
+ 
+   REAL_VALUE_TYPE res;
+   real_from_string (&res, buf);
+   return build_real (type, res);
+ }
+ 
+ /* Given a real value VAL, return -1 if it is less than zero, 0 if it is zero
+    and +1 if it is bigger than zero.  The built value is always of mode
+    M_INT.  */
+ 
+ tree
+ a68_real_sign (tree val)
+ {
+   tree zero = build_real (TREE_TYPE (val), dconst0);
+   val = save_expr (val);
+   return fold_build3 (COND_EXPR,
+ 		      a68_int_type,
+ 		      build2 (EQ_EXPR, integer_type_node, val, zero),
+ 		      build_int_cst (a68_int_type, 0),
+ 		      fold_build3 (COND_EXPR,
+ 				   a68_int_type,
+ 				   fold_build2 (GT_EXPR, integer_type_node, val, zero),
+ 				   build_int_cst (a68_int_type, 1),
+ 				   build_int_cst (a68_int_type, -1)));
+ }
+ 
+ /* Absolute value of a real value.  */
+ 
+ tree
+ a68_real_abs (tree val)
+ {
+   return fold_build1 (ABS_EXPR, TREE_TYPE (val), val);
+ }
+ 
+ tree
+ a68_real_sqrt (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_SQRTF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_SQRT;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_SQRTL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_tan (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_TANF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_TAN;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_TANL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_sin (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_SINF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_SIN;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_SINL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_cos (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_COSF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_COS;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_COSL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_acos (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_ACOSF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_ACOS;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_ACOSL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_asin (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_ASINF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_ASIN;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_ASINL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_atan (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_ATANF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_ATAN;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_ATANL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_ln (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_LOGF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_LOG;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_LOGL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_log (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_LOG10F;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_LOG10;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_LOG10L;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ tree
+ a68_real_exp (tree type)
+ {
+   enum built_in_function builtin;
+ 
+   if (type == float_type_node)
+     builtin = BUILT_IN_EXPF;
+   else if (type == double_type_node)
+     builtin = BUILT_IN_EXP;
+   else if (type == long_double_type_node)
+     builtin = BUILT_IN_EXPL;
+   else
+     gcc_unreachable ();
+ 
+   return addr_of_builtin_decl (builtin);
+ }
+ 
+ /* Build the real value lengthened from the value of VAL, from mode
+    FROM_MODE to mode TO_MODE.  */
+ 
+ tree
+ a68_real_leng (MOID_T *to_mode, MOID_T *from_mode ATTRIBUTE_UNUSED, tree val)
+ {
+   /* Lengthening can be done by just a conversion.  */
+   return fold_convert (CTYPE (to_mode), val);
+ }
+ 
+ /* Build the real value that can be lengthened to the value of VAL, from mode
+    FROM_MODE to mode TO_MODE.
+ 
+    If VAL cannot be represented in TO_MODE because it is bigger than the most
+    positive value representable in TO_MODE, then it is truncated to that value.
+ 
+    Likewise, if VAL cannot be represented in TO_MODE because it is less than
+    the most negative value representable in TO_MODE, then it is truncated to
+    that value.  */
+ 
+ tree
+ a68_real_shorten (MOID_T *to_mode, MOID_T *from_mode ATTRIBUTE_UNUSED, tree val)
+ {
+   tree most_positive_value = fold_convert (CTYPE (from_mode),
+ 					   a68_real_maxval (CTYPE (to_mode)));
+   tree most_negative_value = fold_convert (CTYPE (from_mode),
+ 					   a68_real_minval (CTYPE (to_mode)));
+ 
+   val = save_expr (val);
+   most_positive_value = save_expr (most_positive_value);
+   most_negative_value = save_expr (most_negative_value);
+   return fold_build3 (COND_EXPR, CTYPE (to_mode),
+ 		      fold_build2 (GT_EXPR, a68_bool_type, val, most_positive_value),
+ 		      fold_convert (CTYPE (to_mode), most_positive_value),
+ 		      fold_build3 (COND_EXPR, CTYPE (to_mode),
+ 				   fold_build2 (LT_EXPR, a68_bool_type, val, most_negative_value),
+ 				   fold_convert (CTYPE (to_mode), most_negative_value),
+ 				   fold_convert (CTYPE (to_mode), val)));
+ }
+ 
+ /* Given a real expression VAL of mode MODE, produce an integral value which is
+    equal to the given real, or the next integer below (more negative than) the
+    given real.  */
+ 
+ tree
+ a68_real_entier (tree val, MOID_T *to_mode, MOID_T *from_mode)
+ {
+   tree fn = NULL_TREE;
+   tree to_type = CTYPE (to_mode);
+ 
+   if (from_mode == M_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IFLOORF);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LFLOORF);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLFLOORF);
+       else
+ 	gcc_unreachable ();
+     }
+   else if (from_mode == M_LONG_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IFLOOR);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LFLOOR);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLFLOOR);
+       else
+ 	gcc_unreachable ();
+     }
+   else if (from_mode == M_LONG_LONG_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IFLOORL);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LFLOORL);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLFLOORL);
+       else
+ 	gcc_unreachable ();
+     }
+   else
+     gcc_unreachable ();
+ 
+   return build_call_expr_loc (UNKNOWN_LOCATION, fn, 1, val);
+ }
+ 
+ /* Given a real expression VAL of mode MODE, produce an integral value which is
+    the nearest integer to the given real.  */
+ 
+ tree
+ a68_real_round (tree val, MOID_T *to_mode, MOID_T *from_mode)
+ {
+   tree fn = NULL_TREE;
+   tree to_type = CTYPE (to_mode);
+ 
+   if (from_mode == M_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IROUNDF);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LROUNDF);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLROUNDF);
+       else
+ 	gcc_unreachable ();
+     }
+   else if (from_mode == M_LONG_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IROUND);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LROUND);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLROUND);
+       else
+ 	gcc_unreachable ();
+     }
+   else if (from_mode == M_LONG_LONG_REAL)
+     {
+       if (to_type == integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_IROUNDL);
+       else if (to_type == long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LROUNDL);
+       else if (to_type == long_long_integer_type_node)
+ 	fn = builtin_decl_explicit (BUILT_IN_LLROUNDL);
+       else
+ 	gcc_unreachable ();
+     }
+   else
+     gcc_unreachable ();
+ 
+   return build_call_expr_loc (UNKNOWN_LOCATION, fn, 1, val);
+ }
+ 
+ 
+ /* Given two real values of mode M, build an expression that calculates the
+    addition of A and B.  */
+ 
+ tree
+ a68_real_plus (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, PLUS_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates the
+    subtraction of A by B.  */
+ 
+ tree
+ a68_real_minus (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, MINUS_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates the
+    multiplication of A by B.  */
+ 
+ tree
+ a68_real_mult (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, MULT_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates the
+    division of A by B.  */
+ 
+ tree
+ a68_real_div (MOID_T *m, tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, RDIV_EXPR, CTYPE (m), a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates whether
+    A = B.  */
+ 
+ tree
+ a68_real_eq (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, EQ_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates whether
+    A /= B.  */
+ 
+ tree
+ a68_real_ne (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, NE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates whether
+    A < B.  */
+ 
+ tree
+ a68_real_lt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates
+    whether A <= B.  */
+ 
+ tree
+ a68_real_le (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, LE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates whether
+    A > B.  */
+ 
+ tree
+ a68_real_gt (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GT_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Given two real values of mode M, build an expression that calculates whether
+    A >= B.  */
+ 
+ tree
+ a68_real_ge (tree a, tree b, location_t loc)
+ {
+   return fold_build2_loc (loc, GE_EXPR, boolean_type_node, a, b);
+ }
+ 
+ /* Exponentiation involving real values.
+ 
+    REAL <- REAL, REAL
+    REAL <- REAL, INT
+    LONG REAL <- LONG REAL, LONG REAL
+    LONG REAL <- LONG REAL, INT
+    LONG LONG REAL <- LONG LONG REAL, LONG LONG REAL
+    LONG LONG REAL <- LONG LONG REAL, INT  */
+ 
+ tree
+ a68_real_pow (MOID_T *m, MOID_T *a_mode, MOID_T *b_mode,
+ 	      tree a, tree b, location_t loc)
+ {
+   enum built_in_function built_in;
+   if (m == M_REAL)
+     {
+       gcc_assert (a_mode == M_REAL);
+       built_in = b_mode == M_REAL ? BUILT_IN_POWF : BUILT_IN_POWIF;
+     }
+   else if (m == M_LONG_REAL)
+     {
+       gcc_assert (a_mode == M_LONG_REAL);
+       built_in = b_mode == M_LONG_REAL ? BUILT_IN_POW : BUILT_IN_POWI;
+     }
+   else if (m == M_LONG_LONG_REAL)
+     {
+       gcc_assert (a_mode == M_LONG_LONG_REAL);
+       built_in = b_mode == M_LONG_LONG_REAL ? BUILT_IN_POWL : BUILT_IN_POWIL;
+     }
+   else
+     gcc_unreachable ();
+ 
+   tree call = builtin_decl_explicit (built_in);
+   gcc_assert (call != NULL_TREE);
+   return build_call_expr_loc (loc, call, 2, a, b);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-refs.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-refs.cc
*** gcc-15.2.0/gcc/algol68/a68-low-refs.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-refs.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,52 ----
+ /* Lowering routines for all things related to names.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielding of SKIP for the given name mode.  */
+ 
+ tree
+ a68_get_ref_skip_tree (MOID_T *m)
+ {
+   /* Build a NULL pointer.  */
+   return build_int_cst (CTYPE (m), 0);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-runtime.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-runtime.cc
*** gcc-15.2.0/gcc/algol68/a68-low-runtime.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-runtime.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,225 ----
+ /* Libcalls to Algol 68 run-time functions.
+    Copyright (C) 2006-2026 Free Software Foundation, Inc.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+    Adapted from gcc/d/runtime.cc.
+ 
+    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 "tree.h"
+ #include "fold-const.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* The lowering pass may generate expressions to call various runtime library
+    functions.  Most of these functions are implemented in libga68.  This file
+    provides facilities to compile libcalls to runtime functions.  The file
+    a68-low-runtime.def contains a database of available runtime library
+    functions.  */
+ 
+ enum a68_libcall_type
+ {
+   LCT_VOID,
+   LCT_CHAR,
+   LCT_CONSTCHARPTR,
+   LCT_VOIDPTR,
+   LCT_UNISTR,
+   LCT_UNISTRPTR,
+   LCT_SIZE,
+   LCT_SSIZE,
+   LCT_SIZEPTR,
+   LCT_UINT,
+   LCT_INT,
+   LCT_LONGLONGINT,
+   LCT_FLOAT,
+   LCT_DOUBLE,
+   LCT_LONGDOUBLE,
+   LCT_END
+ };
+ 
+ /* An array of all types that are used by the runtime functions we need.  */
+ 
+ static tree libcall_types[LCT_END];
+ 
+ /* Internal list of library functions.  */
+ 
+ static tree libcall_decls[A68_LIBCALL_LAST];
+ 
+ /* Return the TREE type that is described by TYPE.  */
+ 
+ static tree
+ get_libcall_type (a68_libcall_type type)
+ {
+   if (libcall_types[type])
+     return libcall_types[type];
+ 
+   if (type == LCT_VOID)
+     libcall_types[type] = void_type_node;
+   else if (type == LCT_CHAR)
+     libcall_types[type] = uint32_type_node;
+   else if (type == LCT_CONSTCHARPTR)
+     libcall_types[type] = build_pointer_type (build_qualified_type (char_type_node,
+ 								    TYPE_QUAL_CONST));
+   else if (type == LCT_VOIDPTR)
+     libcall_types[type] = ptr_type_node;
+   else if (type == LCT_UNISTR)
+     libcall_types[type] = build_pointer_type (a68_char_type);
+   else if (type == LCT_UNISTRPTR)
+     libcall_types[type] = build_pointer_type (build_pointer_type (a68_char_type));
+   else if (type == LCT_SIZE)
+     libcall_types[type] = sizetype;
+   else if (type == LCT_SSIZE)
+     libcall_types[type] = ssizetype;
+   else if (type == LCT_SIZEPTR)
+     libcall_types[type] = build_pointer_type (sizetype);
+   else if (type == LCT_UINT)
+     libcall_types[type] = unsigned_type_node;
+   else if (type == LCT_INT)
+     libcall_types[type] = integer_type_node;
+   else if (type == LCT_LONGLONGINT)
+     libcall_types[type] = long_long_integer_type_node;
+   else if (type == LCT_FLOAT)
+     libcall_types[type] = float_type_node;
+   else if (type == LCT_DOUBLE)
+     libcall_types[type] = double_type_node;
+   else if (type == LCT_LONGDOUBLE)
+     libcall_types[type] = long_double_type_node;
+   else
+     gcc_unreachable ();
+ 
+   return libcall_types[type];
+ }
+ 
+ /* Build and return a function declaration named NAME.  The RETURN_TYPE is the
+    type returned, FLAGS are the expression call flags, and NPARAMS is the
+    number of arguments, the types of which are provided in `...'.  */
+ 
+ static tree
+ build_libcall_decl (const char *name, a68_libcall_type return_type,
+ 		    int flags, int nparams, ...)
+ {
+   tree *args = XALLOCAVEC (tree, nparams);
+   bool varargs = false;
+   tree fntype;
+ 
+   /* Add parameter types, using `void' as the last parameter type
+      to mean this function accepts a variable list of arguments.  */
+   va_list ap;
+   va_start (ap, nparams);
+ 
+   for (int i = 0; i < nparams; i++)
+     {
+       a68_libcall_type ptype = (a68_libcall_type) va_arg (ap, int);
+       tree type = get_libcall_type (ptype);
+ 
+       if (type == void_type_node)
+ 	{
+ 	  varargs = true;
+ 	  nparams = i;
+ 	}
+       else
+ 	args[i] = type;
+     }
+ 
+   va_end (ap);
+ 
+   /* Build the function.  */
+   tree tret = get_libcall_type (return_type);
+   if (varargs)
+     fntype = build_varargs_function_type_array (tret, nparams, args);
+   else
+     fntype = build_function_type_array (tret, nparams, args);
+ 
+   tree decl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
+ 			  get_identifier (name), fntype);
+   DECL_EXTERNAL (decl) = 1;
+   TREE_PUBLIC (decl) = 1;
+   DECL_ARTIFICIAL (decl) = 1;
+   DECL_VISIBILITY (decl) = VISIBILITY_DEFAULT;
+   DECL_VISIBILITY_SPECIFIED (decl) = 1;
+ 
+   /* Set any attributes on the function, such as malloc or noreturn.  */
+   set_call_expr_flags (decl, flags);
+   return decl;
+ }
+ 
+ /* Return or create the runtime library function declaration for LIBCALL.
+    Library functions are generated as needed.  This could probably be changed
+    in the future to be done in the compiler init stage, like GCC builtin trees
+    are.  */
+ 
+ tree
+ a68_get_libcall (a68_libcall_fn libcall)
+ {
+   if (libcall_decls[libcall])
+     return libcall_decls[libcall];
+ 
+   switch (libcall)
+     {
+ #define DEF_A68_RUNTIME(CODE, NAME, TYPE, PARAMS, FLAGS) \
+     case A68_LIBCALL_ ## CODE:	\
+       libcall_decls[libcall] = build_libcall_decl (NAME, TYPE, FLAGS, PARAMS); \
+       break;
+ #include "a68-low-runtime.def"
+ #undef DEF_A68_RUNTIME
+     default:
+       gcc_unreachable ();
+     }
+ 
+   return libcall_decls[libcall];
+ }
+ 
+ /* Generate a call to LIBCALL, returning the result as TYPE.  NARGS is the
+    number of call arguments, the expressions of which are provided in `...'.
+    This does not perform conversions or promotions on the arguments.  */
+ 
+ tree
+ a68_build_libcall (a68_libcall_fn libcall, tree type ATTRIBUTE_UNUSED,
+ 		   int nargs, ...)
+ {
+   /* Build the call expression to the runtime function.  */
+   tree decl = a68_get_libcall (libcall);
+   tree *args = XALLOCAVEC (tree, nargs);
+   va_list ap;
+ 
+   va_start (ap, nargs);
+   for (int i = 0; i < nargs; i++)
+     args[i] = va_arg (ap, tree);
+   va_end (ap);
+ 
+   tree result = build_call_expr_loc_array (input_location, decl, nargs, args);
+ 
+   /* Assumes caller knows what it is doing.  */
+   return result;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-runtime.def gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-runtime.def
*** gcc-15.2.0/gcc/algol68/a68-low-runtime.def	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-runtime.def	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,72 ----
+ /* a68-low-runtime.def -- Definitions for Algol 68 runtime functions.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+ 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/>.  */
+ 
+ /* Helper macros for parameter building.  */
+ #define P0()	0
+ #define P1(T1)	1, LCT_ ## T1
+ #define P2(T1, T2) \
+ 		2, LCT_ ## T1, LCT_ ## T2
+ #define P3(T1, T2, T3) \
+ 		3, LCT_ ## T1, LCT_ ## T2, LCT_ ## T3
+ #define P4(T1, T2, T3, T4) \
+ 		4, LCT_ ## T1, LCT_ ## T2, LCT_ ## T3, LCT_ ## T4
+ #define P5(T1, T2, T3, T4, T5)  \
+ 		5, LCT_ ## T1, LCT_ ## T2, LCT_ ## T3, LCT_ ## T4, LCT_ ## T5
+ #define P6(T1, T2, T3, T4, T5, T6)  \
+ 		6, LCT_ ## T1, LCT_ ## T2, LCT_ ## T3, LCT_ ## T4, LCT_ ## T5, LCT_ ## T6
+ #define P7(T1, T2, T3, T4, T5, T6, T7)					\
+                 7, LCT_ ## T1, LCT_ ## T2, LCT_ ## T3, LCT_ ## T4, LCT_ ## T5, LCT_ ## T6, LCT_ ## T7
+ #define RT(T1)	LCT_ ## T1
+ 
+ /* Algol 68 runtime library functions.  */
+ 
+ /* DEF_A68_RUNTIME (CODE, NAME, TYPE, PARAMS, FLAGS)
+    CODE	    The enum code used to refer to this function.
+    NAME	    The name of this function as a string.
+    FLAGS    ECF flags to describe attributes of the function.
+ 
+    Used for declaring functions that are called by generated code.  */
+ 
+ DEF_A68_RUNTIME (ASSERT, "_libga68_assert", RT(VOID), P2(CONSTCHARPTR, UINT), ECF_NORETURN)
+ DEF_A68_RUNTIME (MALLOC, "_libga68_malloc", RT(VOIDPTR), P1(SIZE), ECF_NOTHROW | ECF_LEAF | ECF_MALLOC)
+ DEF_A68_RUNTIME (MALLOC_LEAF, "_libga68_malloc_leaf", RT(VOIDPTR), P1(SIZE), ECF_NOTHROW | ECF_LEAF | ECF_MALLOC)
+ DEF_A68_RUNTIME (DEREFNIL, "_libga68_derefnil", RT(VOID), P2(CONSTCHARPTR, UINT), ECF_NORETURN)
+ DEF_A68_RUNTIME (UNREACHABLE, "_libga68_unreachable", RT(VOID), P2(CONSTCHARPTR, UINT), ECF_NORETURN)
+ DEF_A68_RUNTIME (INVALIDCHARERROR, "_libga68_invalidcharerror", RT(VOID), P3(CONSTCHARPTR,UINT,INT), ECF_NORETURN)
+ DEF_A68_RUNTIME (BITSBOUNDSERROR, "_libga68_bitsboundserror", RT(VOID), P3(CONSTCHARPTR,UINT,SSIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (ARRAYLOWERBOUND, "_libga68_lower_bound", RT(VOID),
+ 		 P4(CONSTCHARPTR, UINT, SSIZE, SSIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (ARRAYUPPERBOUND, "_libga68_upper_bound", RT(VOID),
+ 		 P4(CONSTCHARPTR, UINT, SSIZE, SSIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (ARRAYBOUNDS, "_libga68_bounds", RT(VOID),
+ 		 P5(CONSTCHARPTR, UINT, SSIZE, SSIZE, SSIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (ARRAYBOUNDSMISMATCH, "_libga68_bounds_mismatch", RT(VOID),
+ 		 P7(CONSTCHARPTR, UINT, SIZE, SSIZE, SSIZE, SSIZE, SSIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (ARRAYDIM, "_libga68_dim", RT(VOID),
+                  P4(CONSTCHARPTR, UINT, SIZE, SIZE), ECF_NORETURN)
+ DEF_A68_RUNTIME (RANDOM, "_libga68_random", RT(FLOAT), P0(), 0)
+ DEF_A68_RUNTIME (LONGRANDOM, "_libga68_longrandom", RT(DOUBLE), P0(), 0)
+ DEF_A68_RUNTIME (LONGLONGRANDOM, "_libga68_longlongrandom", RT(LONGDOUBLE), P0(), 0)
+ DEF_A68_RUNTIME (U32_CMP2, "_libga68_u32_cmp2", RT(INT), P6(UNISTR, SIZE, SIZE, UNISTR, SIZE, SIZE), 0)
+ 
+ #undef P0
+ #undef P1
+ #undef P2
+ #undef P3
+ #undef P4
+ #undef P5
+ #undef RT
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-strings.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-strings.cc
*** gcc-15.2.0/gcc/algol68/a68-low-strings.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-strings.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,402 ----
+ /* Lowering routines for all things related to STRINGs.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielding of SKIP for M_STRING.  */
+ 
+ tree
+ a68_get_string_skip_tree (void)
+ {
+   return a68_get_multiple_skip_tree (M_FLEX_ROW_CHAR);
+ }
+ 
+ /* Copy chars from STR to ELEMENTS starting at TO_INDEX chars in ELEMENTS.  */
+ 
+ static void
+ copy_string (tree elements, tree to_index, tree str)
+ {
+   tree char_pointer_type = build_pointer_type (a68_char_type);
+   tree num_elems
+     = a68_lower_tmpvar ("num_elems%", sizetype, a68_multiple_num_elems (str));
+ 
+   tree from_index
+     = a68_lower_tmpvar ("from_index%", sizetype, size_zero_node);
+   tree from_offset
+     = a68_lower_tmpvar ("from_offset%", sizetype, size_zero_node);
+ 
+   /* Begin of loop body.  */
+   a68_push_range (NULL);
+   {
+     /* if (from_index == num_elems) break;  */
+     a68_add_stmt (fold_build1 (EXIT_EXPR, void_type_node,
+ 			       fold_build2 (GE_EXPR, sizetype,
+ 					    from_index, num_elems)));
+ 
+     /* *(elements + to_index) = *(elements + from_index)  */
+     tree to_offset = fold_build2 (MULT_EXPR, sizetype,
+ 				  to_index, size_in_bytes (a68_char_type));
+     a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 			       void_type_node,
+ 			       fold_build2 (MEM_REF, a68_char_type,
+ 					    fold_build2 (POINTER_PLUS_EXPR,
+ 							 char_pointer_type,
+ 							 elements, to_offset),
+ 					    fold_convert (char_pointer_type,
+ 							  integer_zero_node)),
+ 			       fold_build2 (MEM_REF, a68_char_type,
+ 					    fold_build2 (POINTER_PLUS_EXPR,
+ 							 char_pointer_type,
+ 							 a68_multiple_elements (str),
+ 							 from_offset),
+ 					    fold_convert (char_pointer_type,
+ 							  integer_zero_node))));
+ 
+     /* from_offset = from_offset + stride */
+     a68_add_stmt (fold_build2 (MODIFY_EXPR, void_type_node,
+ 			       from_offset,
+ 			       fold_build2 (PLUS_EXPR, sizetype,
+ 					    from_offset,
+ 					    a68_multiple_stride (str, size_zero_node))));
+     /* to_index = to_index + 1 */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR, sizetype, to_index, size_one_node));
+ 
+     /* from_index = from_index + 1 */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR, sizetype, from_index, size_one_node));
+   }
+ 
+   /* End of loop body.  */
+   tree loop_body = a68_pop_range ();
+   a68_add_stmt (fold_build1 (LOOP_EXPR,
+ 			     void_type_node,
+ 			     loop_body));
+ }
+ 
+ /* Given two STRINGs STR1 and STR2, allocate a new string on the stack with a
+    copy of the concatenated characters of the given string.  */
+ 
+ tree
+ a68_string_concat (tree str1, tree str2)
+ {
+   tree char_pointer_type = build_pointer_type (a68_char_type);
+   static tree string_concat_fndecl;
+ 
+   if (string_concat_fndecl == NULL_TREE)
+     {
+       string_concat_fndecl
+ 	= a68_low_toplevel_func_decl ("string_concat",
+ 				      build_function_type_list (char_pointer_type,
+ 								TREE_TYPE (str1),
+ 								TREE_TYPE (str2),
+ 								NULL_TREE));
+       announce_function (string_concat_fndecl);
+ 
+       tree s1 = a68_low_func_param (string_concat_fndecl, "s1", TREE_TYPE (str1));
+       tree s2 = a68_low_func_param (string_concat_fndecl, "s2", TREE_TYPE (str2));
+       DECL_ARGUMENTS (string_concat_fndecl) = chainon (s1, s2);
+ 
+       a68_push_function_range (string_concat_fndecl, char_pointer_type,
+ 			       true /* top_level */);
+ 
+       tree n1 = a68_lower_tmpvar ("n1%", sizetype, a68_multiple_num_elems (s1));
+       tree n2 = a68_lower_tmpvar ("n2%", sizetype, a68_multiple_num_elems (s2));
+       tree num_elems = a68_lower_tmpvar ("num_elems%", sizetype,
+ 					 fold_build2 (PLUS_EXPR, sizetype, n1, n2));
+ 
+       /* First allocate memory for the result string.  We need enough space to
+ 	 hold the elements of both strings with a stride of 1S.  */
+       tree char_pointer_type = build_pointer_type (a68_char_type);
+       tree elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 					size_in_bytes (a68_char_type),
+ 					num_elems);
+       tree elements = a68_lower_tmpvar ("elements%", char_pointer_type,
+ 					a68_lower_malloc (M_CHAR, elements_size));
+ 
+       /* Copy elements.  */
+       tree to_index = a68_lower_tmpvar ("to_index%", sizetype, size_zero_node);
+       copy_string (elements, to_index, s1);
+       copy_string (elements, to_index, s2);
+       a68_pop_function_range (elements);
+     }
+ 
+   /* Build the resulting multiple.  */
+   str1 = save_expr (str1);
+   str2 = save_expr (str2);
+   tree n1 = a68_multiple_num_elems (str1);
+   tree n2 = a68_multiple_num_elems (str2);
+   tree num_elems = save_expr (fold_build2 (PLUS_EXPR, sizetype, n1, n2));
+   tree elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 				    size_in_bytes (a68_char_type),
+ 				    num_elems);
+   tree lower_bound = ssize_int (1);
+   tree upper_bound = fold_convert (ssizetype, num_elems);
+   tree elements = build_call_nary (char_pointer_type,
+ 				   fold_build1 (ADDR_EXPR,
+ 						build_pointer_type (TREE_TYPE (string_concat_fndecl)),
+ 						string_concat_fndecl),
+ 				   2, str1, str2);
+   return a68_row_value (CTYPE (M_STRING), 1 /* dim */,
+ 			elements, elements_size,
+ 			&lower_bound, &upper_bound);
+ }
+ 
+ /* Given a STRING STR and an INT FACTOR, return STRING concatenated to itself
+    FACTOR - 1 times.
+ 
+    Negative values of FACTOR are interpreted as zero.  */
+ 
+ tree
+ a68_string_mult (tree str, tree factor)
+ {
+   a68_push_range (M_STRING);
+ 
+   str = save_expr (str);
+   tree ssize_one_node = ssize_int (1);
+   tree res = a68_lower_tmpvar ("res%", CTYPE (M_STRING),
+ 			       fold_build1 (INDIRECT_REF, CTYPE(M_STRING),
+ 					    a68_low_gen (M_STRING, 0, NULL,
+ 							 false /* use_heap */)));
+   tree index = a68_lower_tmpvar ("index%", ssizetype, ssize_one_node);
+ 
+   /* Begin of loop body.  */
+   a68_push_range (NULL);
+ 
+   /* if (index > FACTOR) break;  */
+   a68_add_stmt (fold_build1 (EXIT_EXPR,
+ 			     void_type_node,
+ 			     fold_build2 (GT_EXPR, ssizetype,
+ 					  index,
+ 					  fold_convert (ssizetype, factor))));
+ 
+   /* res += str */
+   a68_add_stmt (fold_build2 (MODIFY_EXPR, TREE_TYPE (res),
+ 			     res,
+ 			     a68_string_concat (res, str)));
+ 
+   /* index++ */
+   a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR,
+ 			     ssizetype,
+ 			     index, ssize_one_node));
+   tree loop_body = a68_pop_range ();
+   /* End of loop body.  */
+   a68_add_stmt (fold_build1 (LOOP_EXPR,
+ 			     void_type_node,
+ 			     loop_body));
+   a68_add_stmt (res);
+   return a68_pop_range ();
+ }
+ 
+ /* Given a CHAR C, build a string whose contents are just that CHAR.  */
+ 
+ tree
+ a68_string_from_char (tree c)
+ {
+   tree lower_bound = ssize_int (1);
+   tree upper_bound = lower_bound;
+   tree char_pointer_type = build_pointer_type (a68_char_type);
+ 
+   a68_push_range (M_STRING);
+ 
+   tree elements = a68_lower_tmpvar ("elements%", char_pointer_type,
+ 				    a68_lower_malloc (M_CHAR,
+ 						      size_one_node));
+   a68_add_stmt (fold_build2 (MODIFY_EXPR,
+ 			     void_type_node,
+ 			     fold_build1 (INDIRECT_REF, a68_char_type, elements),
+ 			     c));
+   a68_add_stmt (a68_row_value (CTYPE (M_STRING), 1 /* dim */,
+ 			       elements,
+ 			       size_in_bytes (a68_char_type),
+ 			       &lower_bound, &upper_bound));
+   return a68_pop_range ();
+ }
+ 
+ /* Compare the two given strings lexicographically and return -1 (less than), 0
+    (equal to) or 1 (bigger than) reflecting the result of the comparison.  */
+ 
+ tree
+ a68_string_cmp (tree s1, tree s2)
+ {
+   s1 = save_expr (s1);
+   tree s1_elems = a68_multiple_elements (s1);
+   tree s1_len = a68_multiple_num_elems (s1);
+   tree s1_stride = a68_multiple_stride (s1, size_zero_node);
+ 
+   s2 = save_expr (s2);
+   tree s2_elems = a68_multiple_elements (s2);
+   tree s2_len = a68_multiple_num_elems (s2);
+   tree s2_stride = a68_multiple_stride (s2, size_zero_node);
+ 
+   return a68_build_libcall (A68_LIBCALL_U32_CMP2,
+ 			    a68_int_type, 6,
+ 			    s1_elems, s1_len, s1_stride,
+ 			    s2_elems, s2_len, s2_stride);
+ }
+ 
+ /* Return a newly allocated UTF-8 string resulting from processing the string
+    breaks in STR.  This function assumes the passed string is well-formed (the
+    scanner is in charge of seeing that is true) and just ICEs if it is not.
+    NODE is used as the location for diagnostics in case the string breaks
+    contain some invalid data.  */
+ 
+ char *
+ a68_string_process_breaks (NODE_T *node, const char *str)
+ {
+   size_t len = 0;
+   char *res = NULL;
+ 
+   /* First calculate the size of the resulting string.  */
+   for (const char *p = str; *p != '\0';)
+     {
+       if (*p == '\'')
+ 	{
+ 	  switch (p[1])
+ 	    {
+ 	    case '\'':
+ 	    case 'n':
+ 	    case 'f':
+ 	    case 'r':
+ 	    case 't':
+ 	      len += 1;
+ 	      p += 2;
+ 	      break;
+ 	    case '(':
+ 	      p += 2;
+ 	      while (1)
+ 		{
+ 		  if (p[0] == ')')
+ 		    {
+ 		      p++;
+ 		      break;
+ 		    }
+ 		  else if (p[0] == ',' || ISSPACE (p[0]))
+ 		    {
+ 		      p++;
+ 		      continue;
+ 		    }
+ 
+ 		  /* An Unicode codepoint encoded in UTF-8 occupies at most six
+ 		     octets.  */
+ 		  len += 6;
+ 		  p += (p[0] == 'u' ? 5 : 9);
+ 		}
+ 	      break;
+ 	    default:
+ 	      gcc_unreachable ();
+ 	    }
+ 	}
+       else
+ 	{
+ 	  len += 1;
+ 	  p += 1;
+ 	}
+     }
+ 
+   /* Now and allocate it, adding space for a trailing NULL.  */
+   res = (char *) xmalloc (len + 1);
+ 
+   /* Finally fill it with the result of expanding all the string breaks.  */
+   size_t offset = 0;
+   for (const char *p = str; *p != '\0';)
+     {
+       if (*p == '\'')
+ 	{
+ 	  switch (p[1])
+ 	    {
+ 	    case '\'': res[offset] = '\''; p += 2; offset += 1; break;
+ 	    case 'n': res[offset] = '\n'; p += 2;  offset += 1; break;
+ 	    case 't': res[offset] = '\t'; p += 2;  offset += 1; break;
+ 	    case 'r': res[offset] = '\r'; p += 2;  offset += 1; break;
+ 	    case 'f': res[offset] = '\f'; p += 2;  offset += 1; break;
+ 	    case '(':
+ 	      {
+ 		p += 2;
+ 		while (1)
+ 		  {
+ 		    if (p[0] == ')')
+ 		      {
+ 			p++;
+ 			break;
+ 		      }
+ 		    else if (p[0] == ',' || ISSPACE (p[0]))
+ 		      {
+ 			p++;
+ 			continue;
+ 		      }
+ 
+ 		    /* Skip the u or U.  */
+ 		    gcc_assert (p[0] == 'u' || p[0] == 'U');
+ 		    p++;
+ 
+ 		    const char *begin = p;
+ 		    char *end;
+ 		    int64_t codepoint = strtol (p, &end, 16);
+ 		    gcc_assert (end > p);
+ 		    p = end;
+ 		    /* Append the UTF-8 encoding of the obtained codepoint to
+ 		       the `res' string.  */
+ 		    int n = a68_u8_uctomb ((uint8_t *) res + offset, codepoint, 6);
+ 		    if (n < 0)
+ 		      {
+ 			char *start = CHAR_IN_LINE (INFO (node)) + (begin - str);
+ 			a68_scan_error (LINE (INFO (node)), start,
+ 					"invalid Unicode codepoint in string literal");
+ 		      }
+ 
+ 		    offset += n;
+ 		  }
+ 		break;
+ 	      }
+ 	    default: gcc_unreachable ();
+ 	    }
+ 	}
+       else
+ 	{
+ 	  res[offset] = *p;
+ 	  offset += 1;
+ 	  p += 1;
+ 	}
+     }
+   res[offset] = '\0';
+ 
+   return res;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-structs.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-structs.cc
*** gcc-15.2.0/gcc/algol68/a68-low-structs.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-structs.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,63 ----
+ /* Lowering routines for all things related to structs.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with the yielding of SKIP for the given structured mode.  */
+ 
+ tree
+ a68_get_struct_skip_tree (MOID_T *m)
+ {
+   /* Build a constructor that assigns SKIPs to each field in the struct
+      type.  */
+ 
+   vec <constructor_elt, va_gc> *ve = NULL;
+   tree field = TYPE_FIELDS (CTYPE (m));
+   for (PACK_T *elem = PACK (m); elem; FORWARD (elem))
+     {
+       gcc_assert (field != NULL_TREE);
+       CONSTRUCTOR_APPEND_ELT (ve, field, a68_get_skip_tree (MOID (elem)));
+       field = DECL_CHAIN (field);
+     }
+ 
+   return build_constructor (CTYPE (m), ve);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-unions.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-unions.cc
*** gcc-15.2.0/gcc/algol68/a68-low-unions.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-unions.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,279 ----
+ /* Lowering routines for all things related to unions.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ 
+ /* Algol 68 unions are implemented in this front-end as a data structure
+    consisting of an overhead followed by a value:
+ 
+      overhead%
+      value%
+ 
+    Where overhead% is an index that identifies the kind of object currently
+    united, and value% is a GENERIC union.  The value currently united in the
+    union is the overhead%-th field in value%.
+ 
+    At the language level there are no values of union modes in Algol 68.  All
+    values are built from either SKIP (for uninitialized UNION values) or as the
+    result of an uniting coercion.  */
+ 
+ /* Given an union mode P and a mode Q, return whether Q is a mode in P.  */
+ 
+ bool
+ a68_union_contains_mode (MOID_T *p, MOID_T *q)
+ {
+   while (EQUIVALENT (p) != NO_MOID)
+     p = EQUIVALENT (p);
+ 
+   for (PACK_T *pack = PACK (p); pack != NO_PACK; FORWARD (pack))
+     {
+       MOID_T *m = MOID (pack);
+ 
+       if (a68_is_equal_modes (q, m, SAFE_DEFLEXING)
+ 	  || (m == M_STRING && IS_ROW (q) && SUB (q) == M_CHAR)
+ 	  || (q == M_STRING && IS_ROW (m) && SUB (m) == M_CHAR))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Given an union mode P and a mode Q, return an integer with the index of the
+    occurrence of Q in P.  */
+ 
+ int
+ a68_united_mode_index (MOID_T *p, MOID_T *q)
+ {
+   int ret = 0;
+   while (EQUIVALENT (p) != NO_MOID)
+     p = EQUIVALENT (p);
+   for (PACK_T *pack = PACK (p); pack != NO_PACK; FORWARD (pack))
+     {
+       MOID_T *m = MOID (pack);
+ 
+       if (a68_is_equal_modes (q, m, SAFE_DEFLEXING)
+ 	  || (m == M_STRING && IS_ROW (q) && SUB (q) == M_CHAR)
+ 	  || (q == M_STRING && IS_ROW (m) && SUB (m) == M_CHAR))
+ 	return ret;
+       ret += 1;
+     }
+ 
+   /* Not found.  Shouldn't happen.  */
+   gcc_unreachable ();
+   return 0;
+ }
+ 
+ /* Given two united modes FROM and TO, and an overhead FROM_OVERHEAD in mode
+    FROM, return the corresponding overhead in mode TO.
+ 
+    This function assumes that the mode with FROM_OVERHEAD in mode FROM exists
+    in TO.  */
+ 
+ tree
+ a68_union_translate_overhead (MOID_T *from, tree from_overhead,
+ 			      MOID_T *to)
+ {
+   /* Note that the initialization value for to_overhead should never be used.
+      XXX perhaps translate it to a run-time call to abort/compiler-error.  */
+   tree to_overhead = size_int (0);
+ 
+   from_overhead = save_expr (from_overhead);
+ 
+   int i = 0;
+   for (PACK_T *pack = PACK (from); pack != NO_PACK; FORWARD (pack), ++i)
+     {
+       MOID_T *mode = MOID (pack);
+ 
+       if (a68_union_contains_mode (to, mode))
+ 	{
+ 	  to_overhead = fold_build3 (COND_EXPR, sizetype,
+ 				     fold_build2 (EQ_EXPR, boolean_type_node,
+ 						  from_overhead,
+ 						  size_int (i)),
+ 				     size_int (a68_united_mode_index (to, mode)),
+ 				     to_overhead);
+ 	}
+     }
+ 
+   return to_overhead;
+ }
+ 
+ /* Get the overhead of a given united value EXP.  */
+ 
+ tree
+ a68_union_overhead (tree exp)
+ {
+   tree type = TREE_TYPE (exp);
+   tree overhead_field = TYPE_FIELDS (type);
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (overhead_field),
+ 		      exp,
+ 		      overhead_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Set the overhead of a given united value EXP to OVERHEAD.  */
+ 
+ tree
+ a68_union_set_overhead (tree exp, tree overhead)
+ {
+   tree type = TREE_TYPE (exp);
+   tree overhead_field = TYPE_FIELDS (type);
+   return fold_build2 (MODIFY_EXPR,
+ 		      TREE_TYPE (overhead),
+ 		      fold_build3 (COMPONENT_REF,
+ 				   TREE_TYPE (overhead_field),
+ 				   exp,
+ 				   overhead_field,
+ 				   NULL_TREE),
+ 		      overhead);
+ }
+ 
+ /* Get the cunion in the given union EXP.  */
+ 
+ tree
+ a68_union_cunion (tree exp)
+ {
+   tree type = TREE_TYPE (exp);
+   tree value_field = TREE_CHAIN (TYPE_FIELDS (type));
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (value_field),
+ 		      exp,
+ 		      value_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Build a SKIP value for a given union mode M.
+ 
+    The SKIP value computed is:
+ 
+    overhead% refers to the first united mode in the union
+    value% is the SKIP for the first united mode in the union
+ */
+ 
+ tree
+ a68_get_union_skip_tree (MOID_T *m)
+ {
+   tree type = CTYPE (m);
+   tree overhead_field = TYPE_FIELDS (type);
+   tree value_field = TREE_CHAIN (TYPE_FIELDS (type));
+ 
+   /* Overhead selects the first union alternative.  */
+   tree overhead = size_zero_node;
+   /* First union alternative.
+ 
+      Note that the first union alternative corresponds to the last alternative
+      in the mode as written in the source program.  */
+   tree value_type = TREE_TYPE (value_field);
+   tree first_alternative_field = TYPE_FIELDS (value_type);
+   tree value = build_constructor_va (TREE_TYPE (value_field),
+ 				     1,
+ 				     first_alternative_field,
+ 				     a68_get_skip_tree (MOID (PACK (m))));
+   return build_constructor_va (CTYPE (m),
+ 			       2,
+ 			       overhead_field, overhead,
+ 			       value_field, value);
+ }
+ 
+ /* Return the alternative (value) at the index INDEX in the united value
+    EXP.  */
+ 
+ tree
+ a68_union_alternative (tree exp, int index)
+ {
+   tree type = TREE_TYPE (exp);
+   tree value_field = TREE_CHAIN (TYPE_FIELDS (type));
+   tree value = fold_build3 (COMPONENT_REF,
+ 			    TREE_TYPE (value_field),
+ 			    exp,
+ 			    value_field,
+ 			    NULL_TREE);
+ 
+   /* Get the current alternative in the value union.  */
+   tree value_type = TREE_TYPE (value_field);
+   tree alternative_field = TYPE_FIELDS (value_type);
+   for (int i = 0; i < index; ++i)
+     {
+       gcc_assert (TREE_CHAIN (alternative_field));
+       alternative_field = TREE_CHAIN (alternative_field);
+     }
+ 
+   /* Get the current alternative from the value.  */
+   return fold_build3 (COMPONENT_REF,
+ 		      TREE_TYPE (alternative_field),
+ 		      value,
+ 		      alternative_field,
+ 		      NULL_TREE);
+ }
+ 
+ /* Return a constructor for an union of mode MODE, holding the value in EXP
+    which is of mode EXP_MODE.  */
+ 
+ tree
+ a68_union_value (MOID_T *mode, tree exp, MOID_T *exp_mode)
+ {
+   tree type = CTYPE (mode);
+   tree overhead_field = TYPE_FIELDS (type);
+   tree value_field = TREE_CHAIN (TYPE_FIELDS (type));
+ 
+   int alternative_index = a68_united_mode_index (mode, exp_mode);
+   tree overhead = build_int_cst (sizetype, alternative_index);
+ 
+   /* Get the field for the alternative corresponding to alternative_index.  */
+   tree value_type = TREE_TYPE (value_field);
+   tree alternative_field = TYPE_FIELDS (value_type);
+   for (int i = 0; i < alternative_index; ++i)
+     {
+       gcc_assert (TREE_CHAIN (alternative_field));
+       alternative_field = TREE_CHAIN (alternative_field);
+     }
+ 
+   tree value = build_constructor_va (TREE_TYPE (value_field),
+ 				     1,
+ 				     alternative_field,
+ 				     a68_consolidate_ref (exp_mode, exp));
+   return build_constructor_va (type,
+ 			       2,
+ 			       overhead_field, overhead,
+ 			       value_field, value);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low-units.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-units.cc
*** gcc-15.2.0/gcc/algol68/a68-low-units.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low-units.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1375 ----
+ /* Lower units to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* Note that enclosed clauses, which are units, are handled in
+    a68-low-clauses.  */
+ 
+ /* Lower an applied identifier.
+ 
+    This lowers into the declaration of the referred identifier.  The
+    declaration of the identifier should now be available in the symbol table
+    entry for the identifier.  */
+ 
+ tree
+ a68_lower_identifier (NODE_T *p, LOW_CTX_T ctx)
+ {
+   LOWERER_T lowerer = LOWERER (TAX (p));
+ 
+   if (lowerer != NO_LOWERER)
+     {
+       /* This identifier is defined in the standard prelude.  Use its lowering
+ 	 handler.  */
+       return (*lowerer) (p, ctx);
+     }
+   else
+     {
+       tree id_decl = TAX_TREE_DECL (TAX (p));
+ 
+       if (id_decl == NULL_TREE)
+ 	{
+ 	  /* This is an applied identifier used before the corresponding defining
+ 	     identifier gets defined in either an identity declaration or a
+ 	     variable declaration.  Create the declaration and install it in the
+ 	     symbol table.  The declaration itself, declaration expr and
+ 	     initialization assignment for the declaration will be emitted by the
+ 	     corresponding declaration lowering handler.  Note that the defining
+ 	     identifier (and therefore the declaration associated with this applied
+ 	     identifier) may be in an outer lexical block.  */
+ 
+ 	  if (IS (MOID (p), PROC_SYMBOL))
+ 	    {
+ 	      bool external = (MOIF (TAX (p)) != NO_MOIF);
+ 
+ 	      const char *extern_symbol = EXTERN_SYMBOL (TAX (p));
+ 	      if (VARIABLE (TAX (p)))
+ 		{
+ 		  if (external)
+ 		    id_decl
+ 		      = a68_make_variable_declaration_decl (p, NAME (MOIF (TAX (p))), external,
+ 							    extern_symbol);
+ 		  else
+ 		    id_decl
+ 		      = a68_make_variable_declaration_decl (p, ctx.module_definition_name);
+ 		}
+ 	      else if (IN_PROC (TAX (p)) || NEST_PROC (TAX (p)))
+ 		{
+ 		  if (external)
+ 		    id_decl
+ 		      = a68_make_proc_identity_declaration_decl (p, NAME (MOIF (TAX (p))),
+ 								 false /* indicant */,
+ 								 external,
+ 								 extern_symbol);
+ 		  else
+ 		    id_decl
+ 		      = a68_make_proc_identity_declaration_decl (p, ctx.module_definition_name);
+ 		}
+ 	      else
+ 		{
+ 		  if (external)
+ 		    id_decl
+ 		      = a68_make_identity_declaration_decl (p, NAME (MOIF (TAX (p))),
+ 							    false /* indicant */,
+ 							    external, extern_symbol);
+ 		  else
+ 		    id_decl
+ 		      = a68_make_identity_declaration_decl (p, ctx.module_definition_name);
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      bool external = (MOIF (TAX (p)) != NO_MOIF);
+ 	      const char *extern_symbol = EXTERN_SYMBOL (TAX (p));
+ 	      if (VARIABLE (TAX (p)))
+ 		{
+ 		  if (external)
+ 		    id_decl
+ 		      = a68_make_variable_declaration_decl (p, NAME (MOIF (TAX (p))), external,
+ 							    extern_symbol);
+ 		  else
+ 		    id_decl
+ 		      = a68_make_variable_declaration_decl (p, ctx.module_definition_name);
+ 		}
+ 	      else
+ 		{
+ 		  if (external)
+ 		    id_decl
+ 		      = a68_make_identity_declaration_decl (p, NAME (MOIF (TAX (p))),
+ 							    false /* indicant */, external,
+ 							    extern_symbol);
+ 		  else
+ 		    id_decl
+ 		      = a68_make_identity_declaration_decl (p, ctx.module_definition_name);
+ 		}
+ 	    }
+ 
+ 	  TAX_TREE_DECL (TAX (p)) = id_decl;
+ 	}
+ 
+       /* If the identifier refers to a FUNCTION_DECL, this means the
+ 	 declaration was made by a procecure-identity-dclaration or a
+ 	 proc-identity-declaration of a formal hole.  The applied identifier in
+ 	 that case refers to the address of the corresponding function.  */
+       if (TREE_CODE (id_decl) == FUNCTION_DECL)
+ 	return fold_build1 (ADDR_EXPR,
+ 			    build_pointer_type (TREE_TYPE (id_decl)),
+ 			    id_decl);
+       else
+ 	return id_decl;
+     }
+ }
+ 
+ /* Lower a string denotation.
+ 
+    String denotations are of mode []CHAR, and lower into a multiple with a
+    single dimension, and with the following characteristics:
+ 
+    - The lower bound of dimension 0 is 1.
+    - The upper bound of dimension 0 is strlen (NSYMBOL (p)).
+    - The stride of dimension 0 is 0.
+    - The pointed elements are a buffer of CHARs allocated in the stack.  */
+ 
+ tree
+ a68_lower_string_denotation (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   /* First process string breaks.  */
+   char *str = a68_string_process_breaks (p, NSYMBOL (p));
+ 
+   /* Build a multiple of UCS-4 CHARs from the resulting UTF-8 string.  */
+   size_t ucslen;
+   uint32_t *ucsbuf = a68_u8_to_u32 ((const uint8_t *) str, strlen (str),
+ 				    NULL, &ucslen);
+   free (str);
+   tree string_literal = build_string_literal (ucslen * sizeof (uint32_t),
+ 					      (char *) ucsbuf, a68_char_type);
+   tree elements = string_literal;
+   tree lower_bound = fold_convert (ssizetype, size_one_node);
+   tree upper_bound = ssize_int (ucslen);
+   tree elements_size = fold_build2 (MULT_EXPR, sizetype,
+ 				    size_int (ucslen),
+ 				    size_in_bytes (a68_char_type));
+   tree multiple = a68_row_value (CTYPE (M_ROW_CHAR), 1,
+ 				 elements, elements_size,
+ 				 &lower_bound, &upper_bound);
+   TREE_CONSTANT (multiple) = true;
+   free (ucsbuf);
+   return multiple;
+ }
+ 
+ /* Lower denotation.
+ 
+      denotation : int denotation; real denotation; bits denotation;
+      		  row char denotation;
+ 		  true symbol; false symbol;
+ 		  empty symbol;
+ 		  longety, int denotation;
+                   longety, real denotation;
+ 		  longety, bits denotation;
+ 		  shortety, int denotation;
+ 		  shortety, real denotation;
+ 		  shortety, bits denotation.
+ 
+    Denotations lower into GENERIC cst expressions.  */
+ 
+ tree
+ a68_lower_denotation (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *moid = MOID (p);
+ 
+   if (moid == M_VOID)
+     /* EMPTY  */
+     return a68_lower_empty (p, ctx);
+   else if (moid == M_BOOL)
+     /* TRUE or FALSE.  */
+     return (NSYMBOL (p)[0] == 'T') ? boolean_true_node : boolean_false_node;
+   else if (moid == M_CHAR)
+     {
+       char *s = a68_string_process_breaks (p, NSYMBOL (p));
+       int num_units = strlen (s);
+       uint32_t ucs;
+       int length = a68_u8_mbtouc (&ucs, (const uint8_t *) s, num_units);
+       gcc_assert (length == num_units);
+       free (s);
+       return build_int_cst (a68_char_type, ucs);
+     }
+   else if (moid == M_ROW_CHAR)
+     return a68_lower_string_denotation (p, ctx);
+   else if (moid == M_INT
+ 	   || moid == M_LONG_INT
+ 	   || moid == M_LONG_LONG_INT
+ 	   || moid == M_SHORT_INT
+ 	   || moid == M_SHORT_SHORT_INT)
+     {
+       /* SIZETY INT */
+       tree type;
+       char *end;
+       NODE_T *s = NO_NODE;
+       if (IS (SUB (p), LONGETY) || IS (SUB (p), SHORTETY))
+ 	s = NEXT (SUB (p));
+       else
+ 	s = SUB (p);
+ 
+       type = CTYPE (moid);
+       errno = 0;
+ #if defined(INT64_T_IS_LONG)
+       uint64_t val = strtoul (NSYMBOL (s), &end, 10);
+ #else
+       uint64_t val = strtoull (NSYMBOL (s), &end, 10);
+ #endif
+       gcc_assert (end[0] == '\0');
+       uint64_t max_positive = uint64_t (wi::max_value (type).to_shwi ());
+       uint64_t max_negative = -uint64_t (wi::min_value (type).to_shwi ());
+       if (errno == ERANGE
+ 	  || (NEGATED (p) && (val > max_negative))
+ 	  || (!NEGATED (p) && (val > max_positive)))
+ 	{
+ 	  a68_moid_format_token m (moid);
+ 	  a68_error (s, "denotation is too large for %e", &m);
+ 	}
+ 
+       return build_int_cst (type, val);
+     }
+   if (moid == M_BITS
+       || moid == M_LONG_BITS
+       || moid == M_LONG_LONG_BITS
+       || moid == M_SHORT_BITS
+       || moid == M_SHORT_SHORT_BITS)
+     {
+       /* SIZETY BITS */
+ 
+       tree type;
+       char *end;
+       NODE_T *s = NO_NODE;
+       if (IS (SUB (p), LONGETY) || IS (SUB (p), SHORTETY))
+ 	s = NEXT (SUB (p));
+       else
+ 	s = SUB (p);
+ 
+       type = CTYPE (moid);
+       errno = 0;
+ #if defined(INT64_T_IS_LONG)
+       uint64_t radix = strtoul (NSYMBOL (s), &end, 10);
+ #else
+       uint64_t radix = strtoull (NSYMBOL (s), &end, 10);
+ #endif
+       gcc_assert (errno == 0 && end != NSYMBOL (s) && *end == 'r');
+       end++;
+       errno = 0;
+ #if defined(INT64_T_IS_LONG)
+       uint64_t val = strtoul (end, &end, radix);
+ #else
+       uint64_t val = strtoull (end, &end, radix);
+ #endif
+       gcc_assert (errno == 0 && end[0] == '\0');
+       return build_int_cst (type, val);
+     }
+   else if (moid == M_REAL
+ 	   || moid == M_LONG_REAL
+ 	   || moid == M_LONG_LONG_REAL)
+     {
+       /* SIZETY REAL */
+       tree type;
+       NODE_T *s = NO_NODE;
+       if (IS (SUB (p), LONGETY) || IS (SUB (p), SHORTETY))
+ 	s = NEXT (SUB (p));
+       else
+ 	s = SUB (p);
+ 
+       if (moid == M_REAL)
+ 	type = float_type_node;
+       else if (moid == M_LONG_REAL)
+ 	type = double_type_node;
+       else if (moid == M_LONG_LONG_REAL)
+ 	type = long_double_type_node;
+       else
+ 	gcc_unreachable ();
+ 
+       REAL_VALUE_TYPE val;
+       real_from_string (&val, NSYMBOL (s));
+       return build_real (type, val);
+     }
+ 
+   gcc_unreachable ();
+   return NULL_TREE;
+ }
+ 
+ /* Lower SKIP.
+ 
+      skip
+ */
+ 
+ tree
+ a68_lower_skip (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_get_skip_tree (MOID (p));
+ }
+ 
+ /* Lower NIHIL.
+ 
+      nihil : nil.
+ 
+    NIL stands for a name referring to no value and which must be
+    distinguishable from any other name.  It is of mode REF AMODE.  NIL is never
+    subject to coercion and it may only occur where the context is strong,
+    i.e. where AMODE is known at compile-time.
+ 
+    It lowers to a pointer to AMODE with value 0.  */
+ 
+ tree
+ a68_lower_nihil (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   tree type = CTYPE (MOID (p));
+ 
+   gcc_assert (type == a68_void_type || POINTER_TYPE_P (type));
+   if (type == a68_void_type)
+     return a68_lower_empty (p, ctx);
+   else
+     return build_int_cst (type, 0);
+ }
+ 
+ /* Lower EMPTY.  */
+ 
+ tree
+ a68_lower_empty (NODE_T *p ATTRIBUTE_UNUSED, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   return a68_get_empty ();
+ }
+ 
+ /* Lower an identity relation.
+ 
+      identity relation : tertiary, is symbol, tertiary;
+      			 tertiary, isnt symbol, tertiary.
+ 
+    An identity relation determines whether two name values are the same.  It
+    lowers into EQ_EXPR in case of IS and into NE_EXPR in case of ISNT.  */
+ 
+ tree
+ a68_lower_identity_relation (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *lhs = SUB (p);
+   NODE_T *oper = NEXT (lhs);
+   NODE_T *rhs = NEXT (oper);
+ 
+   /* Consolidate arguments to make sure we are comparing pointers in the
+      r-value context of the EQ_EXPR or NE_EXPR operation below.  */
+   tree op1 = a68_consolidate_ref (MOID (lhs), a68_lower_tree (lhs, ctx));
+   tree op2 = a68_consolidate_ref (MOID (rhs), a68_lower_tree (rhs, ctx));
+ 
+   tree_code code;
+   if (IS (oper, IS_SYMBOL))
+     code = EQ_EXPR;
+   else if (IS (oper, ISNT_SYMBOL))
+     code = NE_EXPR;
+   else
+     gcc_unreachable ();
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  code, boolean_type_node, op1, op2);
+ }
+ 
+ /* Lower AND_FUNCTION and OR_FUNCTION.
+ 
+      and function : tertiary, andf symbol, tertiary.
+      or function : tertiary, orf_symbol, tertiary.
+ 
+    These are pseudo-operators that are used to implement short-circuits
+    evaluation of logical expressions.
+ 
+    These pseudo-operators lower into TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR,
+    respectively.  */
+ 
+ tree
+ a68_lower_logic_function (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *lhs = SUB (p);
+   NODE_T *oper = NEXT (lhs);
+   NODE_T *rhs = NEXT (oper);
+ 
+   tree op1 = a68_lower_tree (lhs, ctx);
+   tree op2 = a68_lower_tree (rhs, ctx);
+ 
+   tree_code code;
+   if (IS (oper, ANDF_SYMBOL))
+     code = TRUTH_ANDIF_EXPR;
+   else if (IS (oper, ORF_SYMBOL))
+     code = TRUTH_ORIF_EXPR;
+   else
+     gcc_unreachable ();
+ 
+   return fold_build2_loc (a68_get_node_location (p),
+ 			  code, boolean_type_node, op1, op2);
+ }
+ 
+ /* Lower a primary.
+ 
+      primary : identifier; denotation; cast; enclosed clause; format text.
+ 
+    The primary lowers into some GENERIC expression.  */
+ 
+ tree
+ a68_lower_primary (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
+ 
+ /* Lower a cast.
+ 
+      cast : declarer, enclosed clause;
+             void symbol, enclosed clause.
+ 
+    A cast establishes a strong context with some required mode.  This context
+    allows coercions to be applied, and these coercions have been inserted in
+    the parse tree by the parser.  */
+ 
+ tree
+ a68_lower_cast (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (NEXT (SUB (p)), ctx);
+ }
+ 
+ /* Lower a slice.
+ 
+      slice : MULTIPLE INDEXER
+ 
+    Slicing a multiple may result in either an element of the multiple, if the
+    operation is indexing, or another multiple, if the operation is a
+    trimming.  */
+ 
+ static void
+ lower_subscript_for_indexes (NODE_T *p, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case TRIMMER:
+ 	  /* Because of ANNOTATION (indexer) == SLICE */
+ 	  gcc_unreachable ();
+ 	  break;
+ 	case UNIT:
+ 	  a68_add_stmt (a68_lower_tree (p, ctx));
+ 	  break;
+ 	case GENERIC_ARGUMENT:
+ 	case GENERIC_ARGUMENT_LIST:
+ 	  lower_subscript_for_indexes (SUB (p), ctx);
+ 	  break;
+ 	default:
+ 	  break;
+ 	}
+     }
+ }
+ 
+ static void
+ lower_subscript_for_trimmers (NODE_T *p, LOW_CTX_T ctx,
+ 			      tree multiple, tree new_multiple,
+ 			      int *dim, int *new_dim,
+ 			      tree elements_pointer_type)
+ {
+   /* new.elements := multiple.elements;
+      FOR dim TO num dimensions
+      DO CO t[dim] is either a subscript i or a trimmer i : j @ k CO
+         new.elements +:= i * multiple.strides[dim];
+         IF t[dim] is a trimmer
+         THEN INT d := ( k is absent | 1 | multiple.lb[dim] - k );
+              new.lb[dim] := multiple.lb[dim] - d;
+ 	     new.ub[dim] := multiple.ub[dim] - d;
+ 	     new.strides[dim] := multiple.strides[dim]
+         FI
+      OD
+   */
+ 
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case UNIT:
+ 	  {
+ 	    tree unit = save_expr (fold_convert (ssizetype, a68_lower_tree (p, ctx)));
+ 	    tree new_elements = a68_multiple_elements (new_multiple);
+ 	    tree size_dim = size_int (*dim);
+ 	    tree dim_lower_bound = save_expr (a68_multiple_lower_bound (multiple, size_dim));
+ 	    tree stride = save_expr (a68_multiple_stride (multiple, size_dim));
+ 
+ 	    /* Validate bounds.  */
+ 	    if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+ 	      a68_add_stmt (a68_multiple_bounds_check (p, size_dim, multiple, unit));
+ 
+ 	    /* new_elements += i * strides[dim] */
+ 	    tree offset = fold_build2 (MULT_EXPR, sizetype,
+ 				       fold_convert (sizetype, fold_build2 (MINUS_EXPR, ssizetype,
+ 									    unit, dim_lower_bound)),
+ 				       stride);
+ 
+ 	    offset = save_expr (offset);
+ 	    new_elements = fold_build2 (POINTER_PLUS_EXPR,
+ 					elements_pointer_type,
+ 					new_elements,
+ 					offset);
+ 	    a68_add_stmt (a68_multiple_set_elements (new_multiple, new_elements));
+ 
+ 	    /* elements_size -= i * strides[dim] */
+ 	    tree elements_size = a68_multiple_elements_size (new_multiple);
+ 	    elements_size = fold_build2 (MINUS_EXPR, sizetype,
+ 					 elements_size, offset);
+ 	    a68_add_stmt (a68_multiple_set_elements_size (new_multiple, elements_size));
+ 
+ 	    *dim += 1;
+ 	    break;
+ 	  }
+ 	case TRIMMER:
+ 	  {
+ 	    /* First collect components from the trimmer.  */
+ 	    tree size_dim = size_int (*dim);
+ 	    tree dim_lower_bound = save_expr (a68_multiple_lower_bound (multiple, size_dim));
+ 	    tree lower_bound = dim_lower_bound;
+ 	    tree upper_bound = save_expr (a68_multiple_upper_bound (multiple, size_dim));
+ 	    tree at = NULL_TREE;
+ 
+ 	    bool explicit_lower_bound = false;
+ 	    bool explicit_upper_bound = false;
+ 
+ 	    NODE_T *q = SUB (p);
+ 
+ 	    /* Process trimscript if present.  */
+ 	    if (q != NO_NODE)
+ 	      {
+ 		at = ssize_int (1);
+ 
+ 		if (IS (q, AT_SYMBOL))
+ 		  {
+ 		    /* Both bounds are implicit.  */
+ 		    at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ 		  }
+ 		else if (IS (q, COLON_SYMBOL))
+ 		  {
+ 		    /* Lower bound is implicit.  */
+ 		    FORWARD (q);
+ 		    if (q != NO_NODE)
+ 		      {
+ 			if (IS (q, AT_SYMBOL))
+ 			  {
+ 			    /* Upper bound is implicit, AT specified.  */
+ 			    at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ 			  }
+ 			else
+ 			  {
+ 			    explicit_upper_bound = true;
+ 			    upper_bound
+ 			      = save_expr (fold_convert (ssizetype, a68_lower_tree (q, ctx)));
+ 			    FORWARD (q);
+ 			    if (q != NO_NODE)
+ 			      {
+ 				gcc_assert (IS (q, AT_SYMBOL));
+ 				at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ 			      }
+ 			  }
+ 		      }
+ 		  }
+ 		else
+ 		  {
+ 		    explicit_lower_bound = true;
+ 		    lower_bound = fold_convert (ssizetype, a68_lower_tree (q, ctx));
+ 		    FORWARD (q);
+ 		    gcc_assert (IS (q, COLON_SYMBOL));
+ 		    FORWARD (q);
+ 		    if (q != NO_NODE)
+ 		      {
+ 			if (IS (q, AT_SYMBOL))
+ 			  at = save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ 			else
+ 			  {
+ 			    explicit_upper_bound = true;
+ 			    upper_bound
+ 			      = save_expr (fold_convert (ssizetype, a68_lower_tree (q, ctx)));
+ 			    FORWARD (q);
+ 			    if (q != NO_NODE && IS (q, AT_SYMBOL))
+ 			      at =
+ 				save_expr (fold_convert (ssizetype, a68_lower_tree (NEXT (q), ctx)));
+ 			  }
+ 		      }
+ 		  }
+ 
+ 		/* Time for some bounds checking.
+ 
+ 		   Note that in trimmers, given the current dimension's bounds
+ 		   (L,U), we cannot simply do the check:
+ 
+ 		     L <= lower_bound <= U
+ 		     L <= upper_bound <= U
+ 
+ 		   This is because the multiple may be flat, and the dimension
+ 		   may have bounds such like U < L.  In that case, the
+ 		   expressions above would always eval to false for any
+ 		   lower_bound and upper_bound.
+ 
+ 		   So we check for this instead:
+ 
+ 	             L <= lower_bound AND upper_bound <= U
+ 
+ 		     This allows to trim a "flat dimension" using a trimmer
+ 		     where upper_bound < lower_bound.  The result is, of
+ 		     course, another "flat dimension" in the multiple result of
+ 		     the trimming.  */
+ 
+ 		if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+ 		  {
+ 		    if (explicit_lower_bound)
+ 		      a68_add_stmt (a68_multiple_single_bound_check (p, size_dim, multiple,
+ 								     lower_bound,
+ 								     false /* upper_bound */));
+ 		    if (explicit_upper_bound)
+ 		      a68_add_stmt (a68_multiple_single_bound_check (p, size_dim, multiple,
+ 								     upper_bound,
+ 								     true /* upper_bound */));
+ 		  }
+ 	      }
+ 
+ 	    /* new_elements += i * strides[dim] */
+ 	    tree stride = save_expr (a68_multiple_stride (multiple, size_dim));
+ 	    tree new_elements = a68_multiple_elements (new_multiple);
+ 	    tree offset = fold_build2 (MULT_EXPR, sizetype,
+ 				       fold_convert (sizetype, fold_build2 (MINUS_EXPR, ssizetype,
+ 									    lower_bound, dim_lower_bound)),
+ 				       stride);
+ 
+ 	    offset = save_expr (offset);
+ 	    new_elements = fold_build2 (POINTER_PLUS_EXPR,
+ 					elements_pointer_type,
+ 					new_elements,
+ 					offset);
+ 	    a68_add_stmt (a68_multiple_set_elements (new_multiple, new_elements));
+ 
+ 	    /* elements_size -= i * strides[dim] */
+ 	    tree elements_size = a68_multiple_elements_size (new_multiple);
+ 	    elements_size = fold_build2 (MINUS_EXPR, sizetype,
+ 					 elements_size, offset);
+ 	    a68_add_stmt (a68_multiple_set_elements_size (new_multiple,
+ 							  elements_size));
+ 
+ 	    /* Correct bounds to the revised lower bound, if necessary.  */
+ 	    if (at != NULL_TREE)
+ 	      {
+ 		/* Correct bounds to honor the revised lower bound.  */
+ 		tree d = fold_build2 (MINUS_EXPR, ssizetype, lower_bound, at);
+ 		lower_bound = fold_build2 (MINUS_EXPR, ssizetype, lower_bound, d);
+ 		upper_bound = fold_build2 (MINUS_EXPR, ssizetype, upper_bound, d);
+ 	      }
+ 
+ 	    /* Fill the triplet for this dimension in new_multiple.  */
+ 	    tree size_new_dim = size_int (*new_dim);
+ 	    a68_add_stmt (a68_multiple_set_lower_bound (new_multiple, size_new_dim, lower_bound));
+ 	    a68_add_stmt (a68_multiple_set_upper_bound (new_multiple, size_new_dim, upper_bound));
+ 	    a68_add_stmt (a68_multiple_set_stride (new_multiple, size_new_dim, stride));
+ 
+ 	    *new_dim += 1;
+ 	    *dim += 1;
+ 	    break;
+ 	  }
+ 	default:
+ 	  lower_subscript_for_trimmers (SUB (p), ctx,
+ 					multiple, new_multiple,
+ 					dim, new_dim,
+ 					elements_pointer_type);
+ 	}
+     }
+ }
+ 
+ tree
+ a68_lower_slice (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *indexer = NEXT_SUB (p);
+   MOID_T *orig_multiple_mode = MOID (SUB (p));
+   MOID_T *multiple_mode = orig_multiple_mode;
+   bool slicing_name = false;
+ 
+   /* First of all, lower the multiple being sliced.  If it is a name to a
+      multiple, set a flag and dereference.  */
+   tree multiple = a68_lower_tree (SUB (p), ctx);
+   MOID_T *orig_sliced_multiple_mode = MOID (p);
+   MOID_T *sliced_multiple_mode = MOID (p);
+   size_t slice_num_dimensions = 0;
+   if (IS_REF (MOID (SUB (p))))
+     {
+       slicing_name = true;
+       multiple = a68_low_deref (multiple, SUB (p));
+       multiple_mode = SUB (multiple_mode);
+       slice_num_dimensions = DIM (SUB (MOID (p)));
+       sliced_multiple_mode = SUB (sliced_multiple_mode);
+     }
+   else
+     slice_num_dimensions = DIM (MOID (p));
+ 
+   tree slice = NULL_TREE;
+   if (ANNOTATION (indexer) == SLICE)
+     {
+       /* The slice has only indexers and no trimmers.  Collect units and slice
+ 	 an element of the multiple using a68_multiple_slice.  This operation
+ 	 results in an element of the multiple.  */
+ 
+       /* Collect units  */
+       a68_push_range (NULL);
+       lower_subscript_for_indexes (SUB (indexer), ctx);
+       tree units = a68_pop_range ();
+ 
+       /* We need to allocate space for as many indexes as dimensions of the
+ 	 multiple.  */
+       tree num_dimensions_tree = a68_multiple_dimensions (multiple);
+       gcc_assert (TREE_CODE (num_dimensions_tree) == INTEGER_CST);
+       int num_dimensions = tree_to_shwi (num_dimensions_tree);
+ 
+       int num_indexes = 0;
+       tree *indexes = (tree *) xmalloc (sizeof (tree) * num_dimensions);
+       for (tree_stmt_iterator si = tsi_start (units);
+ 	   !tsi_end_p (si);
+ 	   tsi_next (&si))
+ 	{
+ 	  /* Add the unit to the list of indexes.  */
+ 	  indexes[num_indexes] = tsi_stmt (si);
+ 	  num_indexes++;
+ 	}
+       gcc_assert (num_indexes == num_dimensions);
+ 
+       /* Slice.  */
+       slice = a68_multiple_slice (p, multiple, slicing_name,
+ 				  num_indexes, indexes);
+       free (indexes);
+     }
+   else if (ANNOTATION (indexer) == TRIMMER)
+     {
+       /* The slice has both indexers and trimmers.  Traverse the indexer
+ 	 subtree to obtain the descriptor of the trimmed multiple (which is
+ 	 another multiple) and the pointer to the elements, which points to
+ 	 some position within the elements of the trimmed multiple.  This
+ 	 operation results in a new multiple of the same mode than the trimmed
+ 	 multiple with shared elements.  */
+ 
+       a68_push_range (sliced_multiple_mode);
+ 
+       tree sliced_multiple = a68_lower_tmpvar ("multiple%", TREE_TYPE (multiple),
+ 					       multiple);
+       tree *lower_bounds = (tree *) xmalloc (sizeof (tree) * slice_num_dimensions);
+       tree *upper_bounds = (tree *) xmalloc (sizeof (tree) * slice_num_dimensions);
+       tree ssize_one_node = fold_convert (ssizetype, size_one_node);
+       tree ssize_zero_node = fold_convert (ssizetype, size_zero_node);
+       for (size_t d = 0; d < slice_num_dimensions; ++d)
+ 	{
+ 	  /* Note that these dummy bounds and the implied strides will be
+ 	     overwritten by lower_subscript_for_trimmers below.  */
+ 	  lower_bounds[d] = ssize_one_node;
+ 	  upper_bounds[d] = ssize_zero_node;
+ 	}
+       tree new_multiple = a68_row_value (CTYPE (sliced_multiple_mode),
+ 					 slice_num_dimensions,
+ 					 a68_multiple_elements (sliced_multiple),
+ 					 a68_multiple_elements_size (sliced_multiple),
+ 					 lower_bounds, upper_bounds);
+       new_multiple = save_expr (new_multiple);
+       new_multiple = a68_lower_tmpvar ("new_multiple%", TREE_TYPE (new_multiple),
+ 				       new_multiple);
+ 
+       int dim = 0;
+       int new_dim = 0;
+       lower_subscript_for_trimmers (SUB (indexer), ctx,
+ 				    sliced_multiple, new_multiple,
+ 				    &dim, &new_dim,
+ 				    a68_row_elements_pointer_type (TREE_TYPE (multiple)));
+       a68_add_stmt (new_multiple);
+       slice = a68_pop_range ();
+ 
+       /* In case we are slicing a ref to a multiple, return the address of the
+ 	 resulting multiple and not the multiple itself.  But in this case we
+ 	 need an address in the heap, because the trimmed multiple may be in
+ 	 the heap and the result shall have the same scope.  */
+       if (slicing_name)
+ 	{
+ 	  tree ptrtype = CTYPE (orig_sliced_multiple_mode);
+ 	  tree slice_addr = fold_build1 (ADDR_EXPR, ptrtype, slice);
+ 	  tree alloc = a68_lower_malloc (orig_sliced_multiple_mode, size_in_bytes (TREE_TYPE (slice)));
+ 	  alloc = save_expr (alloc);
+ 	  tree copy = a68_lower_memcpy (alloc, slice_addr, size_in_bytes (TREE_TYPE (slice)));
+ 
+ 	  slice = fold_build2 (COMPOUND_EXPR, ptrtype, copy, alloc);
+ 	}
+     }
+   else
+     gcc_unreachable ();
+ 
+   return slice;
+ }
+ 
+ /* Lower a selection.
+ 
+      selection : selector, secondary.
+      selector : field identifier, of symbol.
+ 
+    The selection lowers into a COMPONENT_REF of the field corresponding to the
+    field identifier.  */
+ 
+ tree
+ a68_lower_selection (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *secondary = NEXT (SUB (p));
+   NODE_T *field_identifier = SUB (SUB (p));
+ 
+   MOID_T *secondary_mode = MOID (secondary);
+   tree secondary_expr = a68_lower_tree (secondary, ctx);
+ 
+   tree res = NULL_TREE;
+ 
+   /* If the secondary is an address, we need to indirect.  */
+   if (IS_REF (secondary_mode))
+     {
+       secondary_expr = a68_low_deref (secondary_expr, secondary);
+       secondary_mode = SUB (secondary_mode);
+     }
+ 
+   if (IS_FLEX (secondary_mode) || IS_ROW (secondary_mode))
+     {
+       /* This is the selection of a multiple of structs.
+ 
+ 	 The result is a multiple with same dimensions, dimension bounds and
+ 	 strides than the indexed multiple.  The elements pointer is made to
+ 	 point to the selected field of the first struct.  */
+ 
+       MOID_T *result_mode = MOID (p);
+       if (IS_REF (result_mode))
+ 	result_mode = SUB (result_mode);
+       MOID_T *struct_mode = SUB (secondary_mode);
+       tree field_id = a68_get_mangled_identifier (SYMBOL (INFO (field_identifier)));
+       tree struct_type = CTYPE (struct_mode);
+       a68_push_range (result_mode);
+       tree selection = a68_lower_tmpvar ("selection%", CTYPE (result_mode),
+ 					 a68_get_skip_tree (result_mode));
+       tree multiple = a68_lower_tmpvar ("multiple%", TREE_TYPE (secondary_expr),
+ 					secondary_expr);
+ 
+       /* First set the bounds of the selection, which are exactly the same
+ 	 bounds than the selected multiple.  */
+       for (int dim = 0; dim < DIM (DEFLEX (secondary_mode)); ++dim)
+ 	{
+ 	  tree size_dim = size_int (dim);
+ 	  tree lower_bound = a68_multiple_lower_bound (multiple, size_dim);
+ 	  tree upper_bound = a68_multiple_upper_bound (multiple, size_dim);
+ 	  tree stride = a68_multiple_stride (multiple, size_dim);
+ 	  a68_add_stmt (a68_multiple_set_lower_bound (selection, size_dim,
+ 						      lower_bound));
+ 	  a68_add_stmt (a68_multiple_set_upper_bound (selection, size_dim,
+ 						      upper_bound));
+ 	  a68_add_stmt (a68_multiple_set_stride (selection, size_dim,
+ 						 stride));
+ 	}
+ 
+       /* Now set the elements pointer, which is the elements pointer of the
+ 	 selected multiple offset the offset of the selected field in its
+ 	 struct type.  */
+       tree elements = a68_multiple_elements (selection);
+       tree multiple_elements = a68_multiple_elements (multiple);
+       tree multiple_elements_size = a68_multiple_elements_size (multiple);
+       tree element_pointer_type = TREE_TYPE (elements);
+       tree field_offset = NULL_TREE;
+       for (tree f = TYPE_FIELDS (struct_type); f; f = DECL_CHAIN (f))
+ 	{
+ 	  if (field_id == DECL_NAME (f))
+ 	    {
+ 	      field_offset = byte_position (f);
+ 	      break;
+ 	    }
+ 	}
+       gcc_assert (field_offset != NULL_TREE);
+       a68_add_stmt (a68_multiple_set_elements (selection,
+ 					       fold_build2 (POINTER_PLUS_EXPR,
+ 							    element_pointer_type,
+ 							    multiple_elements,
+ 							    field_offset)));
+ 
+       /* The size of the buffer pointed by the elements pointer has to be
+ 	 adjusted accordingly.  */
+       a68_add_stmt (a68_multiple_set_elements_size (selection,
+ 						    fold_build2 (MINUS_EXPR, sizetype,
+ 								 multiple_elements_size,
+ 								 field_offset)));
+ 
+       a68_add_stmt (selection);
+       res = a68_pop_range ();
+     }
+   else
+     {
+       /* This is the selection of a struct field.  */
+       gcc_assert (A68_STRUCT_TYPE_P (TREE_TYPE (secondary_expr)));
+ 
+       /* Search for the selected field in the struct type.  */
+       tree struct_type = TREE_TYPE (secondary_expr);
+       tree field_id = a68_get_mangled_identifier (SYMBOL (INFO (field_identifier)));
+       tree field = NULL_TREE;
+       for (tree f = TYPE_FIELDS (struct_type); f; f = DECL_CHAIN (f))
+ 	{
+ 	  if (field_id == DECL_NAME (f))
+ 	    {
+ 	      field = f;
+ 	      break;
+ 	    }
+ 	}
+       gcc_assert (field != NULL_TREE);
+ 
+       /* Emit the COMPONENT_REF.  */
+       res = fold_build3_loc (a68_get_node_location (p),
+ 			     COMPONENT_REF,
+ 			     TREE_TYPE (field),
+ 			     secondary_expr,
+ 			     field,
+ 			     NULL_TREE);
+     }
+ 
+   /* The selection of a name yields a name.  */
+   if (IS_REF (MOID (secondary)))
+     /* XXX This may require copying.  */
+     return fold_build1 (ADDR_EXPR, CTYPE (MOID (p)), res);
+   else
+     return res;
+ }
+ 
+ /* Lower a secondary.
+ 
+      secondary : primary; generator; selection.
+ 
+    The secondary lowers into some GENERIC expression.  */
+ 
+ tree
+ a68_lower_secondary (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
+ 
+ /* Lower a formula.
+ 
+      formula : secondary, operator, secondary;
+      	       secondary, operator, monadic formula;
+ 	       secondary, operator, formula;
+ 	       monadic formula;
+ 	       monadic formula, operator, secondary;
+ 	       monadic formula, operator, monadic formula;
+ 	       monadic formula, operator, formula;
+ 	       formula, operator, secondary;
+ 	       formula, operator, monadic formula;
+ 	       formula, operator, formula.
+ 
+    The formula lowers into some GENERIC expression.  */
+ 
+ tree
+ a68_lower_formula (NODE_T *p, LOW_CTX_T ctx)
+ {
+   if (IS (SUB (p), MONADIC_FORMULA) && NEXT (SUB (p)) == NO_NODE)
+     return a68_lower_tree (SUB (p), ctx);
+   else
+     {
+       LOWERER_T lowerer = LOWERER (TAX (NEXT (SUB (p))));
+ 
+       /* If the operator is defined in the standard prelude, then use its lowering
+ 	 code.  */
+       if (lowerer != NO_LOWERER)
+ 	{
+ 	  return (*lowerer) (p, ctx);
+ 	}
+       else
+ 	{
+ 	  tree arg1 = a68_lower_tree (SUB (p), ctx);
+ 	  tree op = a68_lower_tree (NEXT (SUB (p)), ctx);
+ 	  tree arg2 = a68_lower_tree (NEXT (NEXT (SUB (p))), ctx);
+ 
+ 	  if (POINTER_TYPE_P (TREE_TYPE (op)))
+ 	    op = fold_build1 (INDIRECT_REF,
+ 			      TREE_TYPE (TREE_TYPE (op)),
+ 			      op);
+ 	  return build_call_expr_loc (a68_get_node_location (p), op, 2, arg1, arg2);
+ 	}
+     }
+ }
+ 
+ /* Lower a monadic formula.
+ 
+      monadic formula : operator, secondary;
+                        operator, monadic formula.
+ 
+    The monadic formula lowers into some GENERIC expression.  */
+ 
+ tree
+ a68_lower_monadic_formula (NODE_T *p, LOW_CTX_T ctx)
+ {
+   LOWERER_T lowerer = LOWERER (TAX (SUB (p)));
+ 
+   /* If the operator is defined in the standard prelude, then use its lowering
+      code.  */
+   if (lowerer != NO_LOWERER)
+     {
+       return (*lowerer) (p, ctx);
+     }
+   else
+     {
+       tree op = a68_lower_tree (SUB (p), ctx);
+       tree secondary = a68_lower_tree (NEXT (SUB (p)), ctx);
+ 
+       if (POINTER_TYPE_P (TREE_TYPE (op)))
+ 	op = fold_build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (op)), op);
+       return build_call_expr_loc (a68_get_node_location (p), op, 1, secondary);
+     }
+ }
+ 
+ /* Lower a tertiary.
+ 
+      tertiary : nihil; monadic formula; formula; secondary.
+ 
+   The tertiary lowers to some GENERIC expression.  */
+ 
+ tree
+ a68_lower_tertiary (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
+ 
+ /* Lower an assignation.
+ 
+      assignation : tertiary, assign symbol, tertiary;
+                    tertiary, assign symbol, identity relation;
+ 		   tertiary, assign symbol, and function;
+ 		   tertiary, assign symbol, or function;
+ 		   tertiary, assign symbol, routine text;
+ 		   tertiary, assign symbol, jump;
+ 		   tertiary, assign symbol, skip;
+ 		   tertiary, assign symbol, assignation;
+ 		   tertiary, assign symbol, code clause.
+ 
+    An assignation lowers into appending a MODIFY_EXPR to the statements list,
+    and the result of the expression is the left hand side.  A compound
+    expression fits perfectly */
+ 
+ tree
+ a68_lower_assignation (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *lhs_node = SUB (p);
+   NODE_T *rhs_node = NEXT (NEXT (SUB (p)));
+   tree lhs = a68_lower_tree (lhs_node, ctx);
+   tree rhs = a68_lower_tree (rhs_node, ctx);
+ 
+   return a68_low_assignation (p,
+ 			      lhs, MOID (lhs_node),
+ 			      rhs, MOID (rhs_node));
+ }
+ 
+ /* Lower a generator.
+ 
+      generator : loc symbol, declarer;
+                  heap symbol, declarer;
+ 		 new symbol, declarer.
+ 
+    LOC generators lower into calls to BUILT_IN_ALLOCA.
+    HEAP generators lower into calls to malloc.  */
+ 
+ tree
+ a68_lower_generator (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *declarer = NEXT (SUB (p));
+   return a68_low_generator (declarer,
+ 			    MOID (declarer),
+ 			    !IS (SUB (p), LOC_SYMBOL),
+ 			    ctx);
+ }
+ 
+ /* Lower a procedure call.
+ 
+  */
+ 
+ static void
+ collect_call_arguments (NODE_T *p, vec<tree, va_gc> *args, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  /* In Algol 68 parameters are passed via an identity declaration, so
+ 	     this must implement same semantics.  */
+ 	  tree arg = a68_lower_tree (p, ctx);
+ 	  if (HAS_ROWS (MOID (p)))
+ 	    arg = a68_low_dup (arg);
+ 	  arg = a68_consolidate_ref (MOID (p), arg);
+ 	  args->quick_push (arg);
+ 	}
+       else
+ 	collect_call_arguments (SUB (p), args, ctx);
+     }
+ }
+ 
+ tree
+ a68_lower_call (NODE_T *p, LOW_CTX_T ctx)
+ {
+   MOID_T *proc_mode = MOID (SUB (p));
+   MOID_T *ret_mode = SUB (proc_mode);
+   unsigned int nargs = DIM (proc_mode);
+ 
+   /* Collect arguments.  */
+   vec<tree, va_gc> *args;
+   vec_alloc (args, nargs);
+   collect_call_arguments (NEXT (SUB (p)), args, ctx);
+ 
+   /* Lower the primary to call.  */
+   tree primary = a68_lower_tree (SUB (p), ctx);
+ 
+   /* We need a pointer to a function type.  */
+   if (!POINTER_TYPE_P (TREE_TYPE (primary)))
+     primary = fold_build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (primary)),
+ 			   primary);
+ 
+   /* Build a function call.  */
+   tree call = build_call_vec (CTYPE (ret_mode), primary, args);
+   SET_EXPR_LOCATION (call, a68_get_node_location (p));
+   return call;
+ }
+ 
+ /* Lower a routine text.
+ 
+      routine text : parameter pack, (declarer ; void symbol), colon symbol, assignation;
+                     parameter pack, (declarer ; void symbol), colon symbol, identity relation;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, and function;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, or runction;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, jump;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, skip;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, tertiary;
+ 		    parameter pack, (declarer ; void symbol), colon symbol, routine text;
+ 		    parameter pack, (declarer ; void symboL), colon symbol, code clause;
+                     (declarer ; void symbol), colon symbol, assignation;
+                     (declarer ; void symbol), colon symbol, identity relation;
+ 		    (declarer ; void symbol), colon symbol, and function;
+ 		    (declarer ; void symbol), colon symbol, or runction;
+ 		    (declarer ; void symbol), colon symbol, jump;
+ 		    (declarer ; void symbol), colon symbol, skip;
+ 		    (declarer ; void symbol), colon symbol, tertiary;
+ 		    (declarer ; void symbol), colon symbol, routine text;
+ 		    (declarer ; void symbol), colon symbol, code clause.
+ 
+   Routine texts are used to create routines.  They can stand as the actual
+   parameter of an identity declaration, as the actual parameter of a call, or
+   as the right-hand side of an assignation.
+ 
+   This lowering function is called in two different contexts:
+ 
+   1) As part of a routine-identity-declaration, in which case the routine
+      resulting from this routine-text is beign ascribed to an identifier given
+      in ctx.proc_decl_identifier.  In that case, we lower to a FUNC_DECL
+      initialized with the body of the routine-text.
+ 
+   2) As a free standing routine-text.  In that case ctx.proc_decl_identifier is
+      NO_NODE. We lower to the address of a FUNC_DECL that features some unique
+      name.  This pointer will then likely be assigned or ascribed to some
+      variable or identifier in non-contracted identity declaration, but we
+      cannot assume that so we have to opt for the indirection.  */
+ 
+ tree
+ a68_lower_routine_text (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *s = SUB (p);
+ 
+   tree func_decl = NULL_TREE;
+   NODE_T *defining_identifier = ctx.proc_decl_identifier;
+   bool defining_operator = ctx.proc_decl_operator;
+   if (defining_identifier != NO_NODE)
+     {
+       /* The routine-text is part of a routine-identity-declaration.  */
+       func_decl = TAX_TREE_DECL (TAX (defining_identifier));
+       if (func_decl == NULL_TREE)
+ 	{
+ 	  func_decl
+ 	    = a68_make_proc_identity_declaration_decl (defining_identifier,
+ 						       ctx.module_definition_name,
+ 						       defining_operator /* indicant */);
+ 	  TAX_TREE_DECL (TAX (defining_identifier)) = func_decl;
+ 	}
+ 
+       /* If the routine-identity-declaration is in a public range then add the
+ 	 declaration to the publicized declarations list.  Otherwise chain the
+ 	 declaration in the proper block and bind it.  */
+       if (PUBLIC_RANGE (TABLE (TAX (defining_identifier))))
+ 	vec_safe_push (A68_MODULE_DEFINITION_DECLS, func_decl);
+       else
+ 	a68_add_decl (func_decl);
+     }
+   else
+     {
+       /* The routine-text is free standing.  */
+       func_decl = a68_make_anonymous_routine_decl (MOID (p));
+       a68_add_decl (func_decl);
+     }
+ 
+   a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 				      DECL_EXPR,
+ 				      TREE_TYPE (func_decl),
+ 				      func_decl));
+   announce_function (func_decl);
+ 
+   /* PARAMETER_PACK.  */
+   NODE_T *parameter_pack_node = NO_NODE;
+   tree parameter_pack = NULL_TREE; /* This is computed below.  */
+   if (IS (s, PARAMETER_PACK))
+     {
+       parameter_pack_node = s;
+       FORWARD (s);
+     }
+ 
+   /* DECLARER or VOID_SYMBOL */
+   if (IS (s, DECLARER) || IS (s, VOID_SYMBOL))
+     /* This is not used, as this formal declarer is also available in the
+        procedure mode.  So just skip it.  */
+     FORWARD (s);
+ 
+   /* Skip the COLON_SYMBOL.  */
+   gcc_assert (IS (s, COLON_SYMBOL));
+   FORWARD (s);
+ 
+   /* Lower the function body.
+ 
+      This should be done in a new range in which the formal parameters of the
+      routine-text have been declared.  */
+   a68_push_function_range (func_decl, CTYPE (SUB (MOID (p))) /* result_type */);
+   if (parameter_pack_node != NO_NODE)
+     parameter_pack = a68_lower_tree (parameter_pack_node, ctx);
+   DECL_ARGUMENTS (func_decl) = parameter_pack;
+   ctx.proc_decl_identifier = NO_NODE;
+   tree func_body = a68_lower_tree (s, ctx);
+   a68_pop_function_range (func_body);
+ 
+   if (defining_identifier != NO_NODE)
+     /* Routine-text immediately ascribed to some identifier in a
+        proc-identity-declaration.  Return the FUNC_DECL.  */
+     return func_decl;
+   else
+     /* Free standing routine-text.  Return its address.  */
+     return fold_build1 (ADDR_EXPR,
+ 			build_pointer_type (TREE_TYPE (func_decl)),
+ 			func_decl);
+ }
+ 
+ /* Lower a formal hole.
+ 
+       formal hole : formal nest symbol, tertiary ;
+                     formal nest symbol, language indicant, tertiary.
+ */
+ 
+ tree
+ a68_lower_formal_hole (NODE_T *p, LOW_CTX_T ctx ATTRIBUTE_UNUSED)
+ {
+   NODE_T *defining_identifier = ctx.proc_decl_identifier;
+   bool defining_operator = ctx.proc_decl_operator;
+ 
+   if (defining_identifier != NO_NODE)
+     {
+       /* The formal-hole is part of an identity declaration and yields a proc
+ 	 mode.  */
+       gcc_assert (IS (MOID (p), PROC_SYMBOL));
+ 
+       tree func_decl = TAX_TREE_DECL (TAX (defining_identifier));
+       if (func_decl == NULL_TREE)
+ 	{
+ 	  /* Note that for PROC modes (which are non-REF) the function below
+ 	     always returns a func_decl, never an address.  */
+ 	  func_decl
+ 	    = a68_make_proc_identity_declaration_decl (defining_identifier,
+ 						       ctx.module_definition_name,
+ 						       defining_operator /* indicant */);
+ 	  TAX_TREE_DECL (TAX (defining_identifier)) = func_decl;
+ 	}
+ 
+       /* If the identity-declaration is in a public range then add the
+ 	 declaration to the module's declarations list.  Otherwise chain the
+ 	 declaration in the proper block and bind it.  */
+       if (PUBLIC_RANGE (TABLE (TAX (defining_identifier))))
+ 	vec_safe_push (A68_MODULE_DEFINITION_DECLS, func_decl);
+       else
+ 	a68_add_decl (func_decl);
+ 
+       a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 					  DECL_EXPR,
+ 					  TREE_TYPE (func_decl),
+ 					  func_decl));
+ 
+       /* Create the body for the wrapper from the formal hole. */
+       a68_wrap_formal_proc_hole (p, func_decl);
+ 
+       return func_decl;
+     }
+   else
+     {
+       /* The formal-hole is free standing. */
+       tree decl;
+       if (IS (MOID (p), PROC_SYMBOL))
+ 	{
+ 	  decl = a68_make_anonymous_routine_decl (MOID (p));
+ 	  a68_add_decl (decl);
+ 	  a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
+ 					      DECL_EXPR,
+ 					      TREE_TYPE (decl),
+ 					      decl));
+ 	  a68_wrap_formal_proc_hole (p, decl);
+ 
+ 	  decl = fold_build1 (ADDR_EXPR,
+ 			      build_pointer_type (TREE_TYPE (decl)),
+ 			      decl);
+ 	}
+       else
+ 	decl = a68_wrap_formal_var_hole (p);
+ 
+       return decl;
+     }
+ }
+ 
+ /* Lower an unit.
+ 
+       unit : assignation; identity relation;
+              and function; or function; routine text;
+              jump; skip; tertiary; assertion; code clause.
+ 
+    The unit lowers to an expression.  */
+ 
+ tree
+ a68_lower_unit (NODE_T *p, LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-low.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-low.cc
*** gcc-15.2.0/gcc/algol68/a68-low.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-low.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1797 ----
+ /* Lower the Algol 68 parse tree to GENERIC.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "tree.h"
+ #include "fold-const.h"
+ #include "diagnostic.h"
+ #include "langhooks.h"
+ #include "tm.h"
+ #include "function.h"
+ #include "cgraph.h"
+ #include "toplev.h"
+ #include "varasm.h"
+ #include "predict.h"
+ #include "stor-layout.h"
+ #include "tree-iterator.h"
+ #include "stringpool.h"
+ #include "print-tree.h"
+ #include "gimplify.h"
+ #include "dumpfile.h"
+ #include "convert.h"
+ #include "options.h"
+ 
+ #include "a68.h"
+ 
+ /* Return a tree with an identifier for the mangled version of a given
+    name.
+ 
+    Publicized symbols feature the module name publishing them.
+    Internal symbols don't.
+ 
+    Bold words, i.e. mode indicants, module indicants and operator indicants,
+    are mangled to upper-case.
+ 
+    Tags, i.e. identifiers are mangled to lower-case.
+ 
+    Monads and nomads are mangled to letter codes symbolizing the symbols:
+ 
+      %    (p)ercentage
+      ^    (c)aret
+      &    (a)mpersand
+      +    pl(u)s
+      -    (m)inus
+      ~    (t)ilde
+      !    (b)ang
+      ?    (q)uestion mark
+      >    bi(g)ger than
+      <    (l)ess than
+      /    (s)lash
+      =    (e)qual
+      :    c(o)lon
+      *    sta(r)
+ 
+    Each letter code is followed by a single underscore character.  */
+ 
+ static tree
+ get_mangled_identifier_or_indicant (const char *name, bool indicant,
+ 				    const char *mname, bool internal,
+ 				    bool numbered)
+ {
+   /* First determine the size of the mangled symbol.  */
+   size_t mangled_size = strlen (name) + 1;
+   if (mname)
+     {
+       /* Add size for MNAME_ */
+       mangled_size += strlen (mname) + 1;
+       if (internal)
+ 	/* Another _ */
+ 	mangled_size += 1;
+     }
+   for (const char *p = name; *p; ++p)
+     {
+       mangled_size += 1;
+       if (strchr (MONADS, *p) != NULL
+ 	  || strchr (NOMADS, *p) != NULL
+ 	  || *p == ':')
+ 	/* Each monad or nomad requires two chars to encode.  */
+ 	mangled_size += 1;
+     }
+ 
+   char *number_buf = NULL;
+   if (numbered)
+     {
+       static unsigned int cnt;
+       number_buf = xasprintf ("%d", cnt++);
+       mangled_size += strlen (number_buf);
+     }
+ 
+   /* Now fill-in the mangled symbol.  */
+   char *mangled_name = (char *) alloca (mangled_size);
+   size_t pos = 0;
+   if (mname)
+     {
+       for (const char *p = mname; *p; ++p)
+ 	/* Module names are bold words.  Make sure to emit them in upper-case.  */
+ 	mangled_name[pos++] = TOUPPER (*p);
+       mangled_name[pos++] = '_';
+       if (internal)
+ 	mangled_name[pos++] = '_';
+     }
+ 
+   for (const char *p = name; *p; ++p)
+     {
+       if (strchr (MONADS, *p) != NULL
+ 	  || strchr (NOMADS, *p) != NULL
+ 	  || *p == ':')
+ 	{
+ 	  char c;
+ 	  switch (*p)
+ 	    {
+ 	    case '%': c = 'p'; break;
+ 	    case '^': c = 'c'; break;
+ 	    case '&': c = 'a'; break;
+ 	    case '+': c = 'u'; break;
+ 	    case '-': c = 'm'; break;
+ 	    case '~': c = 't'; break;
+ 	    case '!': c = 'b'; break;
+ 	    case '?': c = 'q'; break;
+ 	    case '>': c = 'g'; break;
+ 	    case '<': c = 'l'; break;
+ 	    case '/': c = 's'; break;
+ 	    case '=': c = 'e'; break;
+ 	    case ':': c = 'o'; break;
+ 	    case '*': c = 'r'; break;
+ 	    default:
+ 	      /* Should not happen.  */
+ 	      gcc_unreachable ();
+ 	    }
+ 	  mangled_name[pos++] = c;
+ 	  mangled_name[pos++] = '_';
+ 	}
+       else
+ 	{
+ 	  if (indicant)
+ 	    mangled_name[pos++] = TOUPPER (*p);
+ 	  else
+ 	    mangled_name[pos++] = TOLOWER (*p);
+ 	}
+     }
+ 
+   if (numbered)
+     {
+       for (char *p = number_buf; *p; ++p)
+ 	mangled_name[pos++] = *p;
+       free (number_buf);
+     }
+   mangled_name[pos++] = '\0';
+ 
+   return get_identifier (mangled_name);
+ }
+ 
+ tree
+ a68_get_mangled_identifier (const char *name, const char *mname,
+ 			    bool internal, bool numbered)
+ {
+   return get_mangled_identifier_or_indicant (name, false /* indicant */, mname,
+ 					     internal, numbered);
+ }
+ 
+ tree
+ a68_get_mangled_indicant (const char *name, const char *mname,
+ 			  bool internal, bool numbered)
+ {
+   return get_mangled_identifier_or_indicant (name, true /* indicant */, mname,
+ 					     internal, numbered);
+ }
+ 
+ /* Demangle a given SYMBOL.
+ 
+    This function does the reverse operation than
+    get_mangled_identifier_or_indicant.  */
+ 
+ char *
+ a68_demangle_symbol (const char *mname, const char *symbol,
+ 		     bool is_operator)
+ {
+   gcc_assert (strlen (symbol) >= strlen (mname) + 1);
+   /* First get rid of the module name and underscore.  */
+   symbol += strlen (mname) + 1;
+   /* Now demangle the rest.  */
+   size_t size = strlen (symbol) + 1;
+   char *demangled = (char *) xmalloc (size + 1);
+   size_t o = 0;
+   for (size_t i = 0; i < size; ++i)
+     {
+       if (symbol[i+1] == '_')
+ 	{
+ 	  switch (symbol[i])
+ 	    {
+ 	    case 'p': demangled[o++] = '+'; break;
+ 	    case 'c': demangled[o++] = '^'; break;
+ 	    case 'a': demangled[o++] = '&'; break;
+ 	    case 'u': demangled[o++] = '+'; break;
+ 	    case 'm': demangled[o++] = '-'; break;
+ 	    case 't': demangled[o++] = '~'; break;
+ 	    case 'b': demangled[o++] = '!'; break;
+ 	    case 'q': demangled[o++] = '?'; break;
+ 	    case 'g': demangled[o++] = '>'; break;
+ 	    case 'l': demangled[o++] = '<'; break;
+ 	    case 's': demangled[o++] = '/'; break;
+ 	    case 'e': demangled[o++] = '='; break;
+ 	    case 'o': demangled[o++] = ':'; break;
+ 	    case 'r': demangled[o++] = '*'; break;
+ 	    default:
+ 	      /* Invalid mangling.  */
+ 	      // XXX this should be checked at import time in extract.
+ 	      gcc_unreachable ();
+ 	    }
+ 	  i += 1;
+ 	}
+       else
+ 	demangled[o++] = symbol[i];
+     }
+   demangled[o] = '\0';
+ 
+   if (is_operator)
+     {
+       /* Remove trailing digits.  */
+       for (size_t i = strlen (demangled) - 1; i > 0; --i)
+ 	{
+ 	  if (ISDIGIT (demangled[i]))
+ 	    demangled[i] = '\0';
+ 	  else
+ 	    break;
+ 	}
+     }
+ 
+   return demangled;
+ }
+ 
+ /* Return a tree with the EMPTY value.
+ 
+    EMPTY is the only denotation of the VOID mode.  It is used in unions to
+    denote "no value".  It must have size zero, so it lowers into an empty
+    constructor with zero elements of type void.  This is what GNU C uses to
+    implement the empty struct extension.  */
+ 
+ tree
+ a68_get_empty (void)
+ {
+   return build_constructor (a68_void_type, NULL);
+ }
+ 
+ /* Return a tree with the yielding of SKIP of a given mode.
+ 
+    SKIP stands for some value of some given mode.  It shall be used only in a
+    context where the compiler can determine the mode.
+ 
+    The particular value to which it elaborates is non-important, but this
+    compiler always uses the same values.  See the a68_get_ref_*_tree functions
+    for details on what values are these.  */
+ 
+ tree
+ a68_get_skip_tree (MOID_T *m)
+ {
+   tree expr = NULL_TREE;
+ 
+   while (EQUIVALENT (m) != NO_MOID)
+     m = EQUIVALENT (m);
+ 
+   if (IS_INTEGRAL (m))
+     expr = a68_get_int_skip_tree (m);
+   else if (m == M_CHAR)
+     expr = a68_get_char_skip_tree ();
+   else if (m == M_BOOL)
+     expr = a68_get_bool_skip_tree ();
+   else if (IS_REAL (m))
+     expr = a68_get_real_skip_tree (m);
+   else if (IS_BITS (m))
+     expr = a68_get_bits_skip_tree (m);
+   else if (IS_REF (m))
+     expr = a68_get_ref_skip_tree (m);
+   else if (IS (m, PROC_SYMBOL))
+     expr = a68_get_proc_skip_tree (m);
+   else if (IS_STRUCT (m))
+     expr = a68_get_struct_skip_tree (m);
+   else if (IS_UNION (m))
+     expr = a68_get_union_skip_tree (m);
+   else if (IS_FLEXETY_ROW (m))
+     expr = a68_get_multiple_skip_tree (m);
+   else if (m == M_STRING)
+       expr = a68_get_string_skip_tree ();
+   else if (m == M_ROWS  || IS (m, SERIES_MODE))
+     {
+       /* XXX assert that all modes in the series are rows? */
+       tree rows_type = CTYPE (M_ROWS);
+       tree dim_field = TYPE_FIELDS (rows_type);
+       tree triplets_field = TREE_CHAIN (dim_field);
+       tree null_pointer = build_int_cst (TREE_TYPE (triplets_field), 0);
+       expr = build_constructor_va (rows_type, 2,
+ 				   dim_field, size_zero_node,
+ 				   triplets_field, null_pointer);
+     }
+   else if (m == M_VOID || m == M_HIP)
+     expr = a68_get_empty ();
+   else
+     {
+       fatal_error (UNKNOWN_LOCATION,
+ 		   "get skip tree: cannot compute SKIP for mode %s",
+ 		   a68_moid_to_string (m, MOID_ERROR_WIDTH, NODE (m), true));
+       gcc_unreachable ();
+     }
+ 
+   return expr;
+ }
+ 
+ /* Given a tree node EXP holding a value of mode M:
+ 
+    *NUM_REFS is set to the number of REFs in M.
+ 
+    *NUM_POINTERS is set to the number of pointers in the type of EXP that
+    correspond to the REFs in M.  */
+ 
+ void
+ a68_ref_counts (tree exp, MOID_T *m, int *num_refs, int *num_pointers)
+ {
+   /* Count REFs in M and pointers in the type of EXP.  Note that VAR_DECLs
+      corresponding to REF PROC are of type pointer, so these should not count
+      for the count!  */
+ 
+   /* Make sure we are accessing the real mode definition.  */
+   while (EQUIVALENT (m) != NO_MOID)
+     m = EQUIVALENT (m);
+ 
+   *num_refs = 0;
+   *num_pointers = 0;
+   for (MOID_T *s = m; s != NO_MOID && IS_REF (s); s = SUB (s))
+     *num_refs += 1;
+   for (tree p = TREE_TYPE (exp);
+        p != NULL_TREE && POINTER_TYPE_P (p) && TREE_CODE (TREE_TYPE (p)) != FUNCTION_TYPE;
+        p = TREE_TYPE (p))
+     *num_pointers += 1;
+ 
+   gcc_assert (*num_refs >= *num_pointers);
+ }
+ 
+ /* The Algol 68 variable declaration
+ 
+      [LOC|HEAP] AMODE foo;
+ 
+    Is in principle equivalent to the identity declaration
+ 
+      REF AMODE foo = [LOC|HEAP] AMODE;
+ 
+    In both cases the object ascribed to the defining identifier `foo' is of
+    mode REF AMODE.  The ascribed object is a name which is created by a
+    generator implied in the actual declarer in the first case, and an explicit
+    generator in the initialization expression in the second case.
+ 
+    However, this front-end implements these two cases differently in order to
+    reduce the amount of both indirect addressing and of storage:
+ 
+    - The variable declaration `[LOC|HEAP] AMODE foo;' lowers into a VAR_DECL
+      with type ATYPE provided that the generator is LOC and that it contains no
+      rows.  Accessing it requires direct addressing.  When its address is
+      required, an ADDR_EXPR shall be used.
+ 
+    - The identity declaration `REF AMODE foo = LOC AMODE;' lowers into a
+      VAR_DECL with type *ATYPE.  Accessing it requires indirect addressing.  It
+      is effectively a pointer.
+ 
+    This introduces the complication that an expression (the VAR_DECL) whose
+    type is TYPE can appear in a place where *TYPE is expected.  This function,
+    given the required mode and an expression, adds as many ADDR_EXPR to EXPR as
+    necessary so the resulting value is of the required type.  Other than this
+    nuisance, the parser guarantees that the entities have the right type at the
+    location they appear, so a call to a68_consolidate_ref is all must be needed
+    at any point in the lowering process to guarantee a valid value for the
+    context.
+ 
+    This function expects:
+    - That the type of EXPR is zero or more pointers to a base type BTYPE.
+    - That the mode M is zero or more REFs to a base non-ref mode AMODE.
+    - That the number of pointers in the type of EXPR is less or equal than the
+      number of REFs in the mode M.
+    - That BTYPE and AMODE are equivalent.  */
+ 
+ tree
+ a68_consolidate_ref (MOID_T *m, tree expr)
+ {
+   int num_refs, num_pointers;
+   a68_ref_counts (expr, m, &num_refs, &num_pointers);
+ 
+   /* Address EXPR as many times as necessary to match the number of REFs in the
+      desired mode.  */
+   while (num_pointers < num_refs)
+     {
+       if (TREE_CODE (expr) == COMPOUND_EXPR)
+ 	{
+ 	  /* (..., x) -> (..., &x) */
+ 	  //	  gcc_assert (TREE_CODE (TREE_OPERAND (expr, 0)) == MODIFY_EXPR);
+ 	  //	  gcc_assert (VAR_P (TREE_OPERAND (expr, 1)));
+ 	  TREE_OPERAND (expr, 1) = a68_consolidate_ref (m, TREE_OPERAND (expr, 1));
+ 	  TREE_TYPE (expr) = TREE_TYPE (TREE_OPERAND (expr, 1));
+ 	}
+       else
+ 	{
+ 	  /* x -> &x */
+ 	  if (TREE_CODE (expr) == INDIRECT_REF)
+ 	    /* expr is an indirection.  Remove the pointer rather than adding
+ 	       an addr.  This avoids &* situations and marking stuff as
+ 	       addressable unnecessarily.  */
+ 	    expr = TREE_OPERAND (expr,0);
+ 	  else
+ 	    {
+ 	      TREE_ADDRESSABLE (expr) = true;
+ 	      expr = fold_build1 (ADDR_EXPR, build_pointer_type (TREE_TYPE (expr)), expr);
+ 	    }
+ 	}
+       num_pointers += 1;
+     }
+ 
+   return expr;
+ }
+ 
+ /* Make a declaration for an anonymous routine of mode MODE.  */
+ 
+ tree
+ a68_make_anonymous_routine_decl (MOID_T *mode)
+ {
+   /* The CTYPE of MODE is a pointer to a function.  We need the pointed
+      function type for the FUNCTION_DECL.  */
+   tree func_type = TREE_TYPE (CTYPE (mode));
+   tree func_decl = build_decl (UNKNOWN_LOCATION,
+ 			       FUNCTION_DECL,
+ 			       NULL_TREE /* name, set below.  */,
+ 			       func_type);
+   char *name = xasprintf ("routine%d", DECL_UID (func_decl));
+   DECL_NAME (func_decl) = a68_get_mangled_identifier (name);
+   free (name);
+   DECL_EXTERNAL (func_decl) = 0;
+   DECL_STATIC_CHAIN (func_decl) = !a68_in_global_range ();
+   /* Nested functions should be addressable.
+      XXX this should be propagated to their containing functions, so for now
+      we mark them all as addressable.  */
+   TREE_ADDRESSABLE (func_decl) = 1;
+   /* A nested function is not global.  */
+   TREE_PUBLIC (func_decl) = a68_in_global_range ();
+   TREE_STATIC (func_decl) = 1;
+ 
+   return func_decl;
+ }
+ 
+ /* Make a declaration for a constant procedure or operator.  */
+ 
+ tree
+ a68_make_proc_identity_declaration_decl (NODE_T *identifier,
+ 					 const char *module_name,
+ 					 bool indicant, bool external,
+ 					 const char *extern_symbol)
+ {
+   /* The CTYPE of MODE is a pointer to a function.  We need the pointed
+      function type for the FUNCTION_DECL.  */
+   tree func_type = TREE_TYPE (CTYPE (MOID (identifier)));
+   bool public_range = PUBLIC_RANGE (TABLE (TAX (identifier)));
+   tree func_decl = build_decl (UNKNOWN_LOCATION,
+ 			       FUNCTION_DECL,
+ 			       NULL_TREE, /* name, set below.  */
+ 			       func_type);
+ 
+   if (public_range)
+     {
+       bool publicized = PUBLICIZED (TAX (identifier));
+ 
+       DECL_EXTERNAL (func_decl) = 0;
+       if (publicized)
+ 	TREE_PUBLIC (func_decl) = 1;
+       else
+ 	TREE_PUBLIC (func_decl) = 0;
+       if (indicant)
+ 	DECL_NAME (func_decl)
+ 	  = a68_get_mangled_indicant (NSYMBOL (identifier), module_name,
+ 				      false /* internal */,
+ 				      (IS (identifier, DEFINING_OPERATOR)
+ 				       || IS (identifier, OPERATOR)));
+       else
+ 	DECL_NAME (func_decl)
+ 	  = a68_get_mangled_identifier (NSYMBOL (identifier), module_name,
+ 					false /* internal */,
+ 					(IS (identifier, DEFINING_OPERATOR)
+ 					 || IS (identifier, OPERATOR)));
+     }
+   else if (external)
+     {
+       DECL_EXTERNAL (func_decl) = 1;
+       TREE_PUBLIC (func_decl) = 1;
+       DECL_NAME (func_decl) = get_identifier (extern_symbol);
+     }
+   else
+     {
+       DECL_EXTERNAL (func_decl) = 0;
+       DECL_STATIC_CHAIN (func_decl) = !a68_in_global_range ();
+       /* Nested functions should be addressable.
+ 	 XXX this should be propagated to their containing functions, so for now
+ 	 we mark them all as addressable.  */
+       TREE_ADDRESSABLE (func_decl) = 1;
+       /* A nested function is not global.  */
+       TREE_PUBLIC (func_decl) = a68_in_global_range ();
+       if (indicant)
+ 	DECL_NAME (func_decl) = a68_get_mangled_indicant (NSYMBOL (identifier));
+       else
+ 	DECL_NAME (func_decl) = a68_get_mangled_identifier (NSYMBOL (identifier));
+     }
+   TREE_STATIC (func_decl) = 1;
+ 
+   return func_decl;
+ }
+ 
+ /* Make a declaration for an identity declaration.  */
+ 
+ tree
+ a68_make_identity_declaration_decl (NODE_T *identifier,
+ 				    const char *module_name,
+ 				    bool indicant, bool external,
+ 				    const char *extern_symbol)
+ {
+   tree type = CTYPE (MOID (identifier));
+   bool public_range = PUBLIC_RANGE (TABLE (TAX (identifier)));
+   tree decl = build_decl (a68_get_node_location (identifier),
+ 			  VAR_DECL,
+ 			  NULL_TREE, /* name, set below.  */
+ 			  type);
+ 
+   if (public_range)
+     {
+       bool publicized = PUBLICIZED (TAX (identifier));
+ 
+       DECL_EXTERNAL (decl) = 0;
+       TREE_STATIC (decl) = 1;
+       if (publicized)
+ 	TREE_PUBLIC (decl) = 1;
+       else
+ 	TREE_PUBLIC (decl) = 0;
+       if (indicant)
+ 	DECL_NAME (decl) = a68_get_mangled_indicant (NSYMBOL (identifier), module_name,
+ 						     false /* internal */,
+ 						     (IS (identifier, DEFINING_OPERATOR)
+ 						      || IS (identifier, OPERATOR)));
+       else
+ 	DECL_NAME (decl) = a68_get_mangled_identifier (NSYMBOL (identifier), module_name,
+ 						       false /* internal */,
+ 						       (IS (identifier, DEFINING_OPERATOR)
+ 							|| IS (identifier, OPERATOR)));
+     }
+   else if (external)
+     {
+       DECL_EXTERNAL (decl) = 1;
+       TREE_PUBLIC (decl) = 1;
+       DECL_NAME (decl) = get_identifier (extern_symbol);
+     }
+   else
+     {
+       DECL_EXTERNAL (decl) = 0;
+       TREE_PUBLIC (decl) = 0;
+       DECL_NAME (decl) = a68_get_mangled_identifier (NSYMBOL (identifier));
+     }
+ 
+   DECL_INITIAL (decl) = a68_get_skip_tree (MOID (identifier));
+   return decl;
+ }
+ 
+ /* Make a declaration for a variable declaration.
+    The mode of the given identifier is expected to be a REF AMODE.  */
+ 
+ tree
+ a68_make_variable_declaration_decl (NODE_T *identifier,
+ 				    const char *module_name,
+ 				    bool external,
+ 				    const char *extern_symbol)
+ {
+   gcc_assert (IS_REF (MOID (identifier)));
+ 
+   MOID_T *mode = MOID (identifier);
+   bool use_pointer = (HEAP (TAX (identifier)) != STATIC_SYMBOL
+ 		      && ((HEAP (TAX (identifier)) == HEAP_SYMBOL)
+ 			  || HAS_ROWS (SUB (MOID (identifier)))));
+   bool public_range = PUBLIC_RANGE (TABLE (TAX (identifier)));
+   tree type = use_pointer ? CTYPE (mode) : CTYPE (SUB (mode));
+   tree decl = build_decl (a68_get_node_location (identifier),
+ 			  VAR_DECL,
+ 			  NULL_TREE, /* name, set below.  */
+ 			  type);
+ 
+   if (public_range)
+     {
+       bool publicized = PUBLICIZED (TAX (identifier));
+ 
+       DECL_EXTERNAL (decl) = 0;
+       TREE_STATIC (decl) = 1;
+       if (publicized)
+ 	TREE_PUBLIC (decl) = 1;
+       else
+ 	TREE_PUBLIC (decl) = 0;
+       DECL_NAME (decl) =  a68_get_mangled_identifier (NSYMBOL (identifier), module_name,
+ 						      false /* internal */,
+ 						      (IS (identifier, DEFINING_OPERATOR)
+ 						       || IS (identifier, OPERATOR)));
+     }
+   else if (external)
+     {
+       DECL_EXTERNAL (decl) = 1;
+       TREE_PUBLIC (decl) = 1;
+       DECL_NAME (decl) = get_identifier (extern_symbol);
+     }
+   else
+     {
+       TREE_PUBLIC (decl) = 0;
+       DECL_NAME (decl) =  a68_get_mangled_identifier (NSYMBOL (identifier));
+     }
+ 
+   DECL_INITIAL (decl) = a68_get_skip_tree (use_pointer ? mode : SUB (mode));
+   return decl;
+ }
+ 
+ /* Make an extern declaration for a formal hole.
+ 
+    If ADDRP is true then it is the address of the external symbol we are
+    interested in.  In that case the mode of P shall be a ref.
+    
+    Note that this function is not used for formal holes with proc modes, called
+    from a68_wrap_formal_var_hole.  See a68_wrap_formal_proc_hole.  */
+ 
+ tree
+ a68_make_formal_hole_decl (NODE_T *p, const char *extern_symbol,
+ 			   bool addrp)
+ {
+   gcc_assert (!IS (MOID (p), PROC_SYMBOL));
+ 
+   tree type = CTYPE (MOID (p));
+   tree decl = build_decl (a68_get_node_location (p),
+ 			  VAR_DECL,
+ 			  get_identifier (extern_symbol),
+ 			  type);
+   DECL_EXTERNAL (decl) = 1;
+   TREE_PUBLIC (decl) = 1;
+   DECL_INITIAL (decl) = a68_get_skip_tree (MOID (p));
+ 
+   if (addrp)
+     {
+       gcc_assert (IS_REF (MOID (p)));
+       decl = fold_build1 (ADDR_EXPR, type, decl);
+     }
+   return decl;
+ }
+ 
+ /* Do a checked indirection.
+ 
+    P is a tree node used for its location information.
+    EXP is an expression that gets indirected.
+    EXP_MODE is the mode of exp.  */
+ 
+ tree
+ a68_checked_indirect_ref (NODE_T *p, tree exp, MOID_T *exp_mode)
+ {
+   tree exp_type = TREE_TYPE (exp);
+   tree nil_check = NULL_TREE;
+ 
+   if (OPTION_NIL_CHECKING (&A68_JOB))
+     {
+       exp = save_expr (exp);
+       tree consolidated_exp = a68_consolidate_ref (exp_mode, exp);
+ 
+       /* Check whether we are dereferencing NIL.  */
+       unsigned int lineno = NUMBER (LINE (INFO (p)));
+       const char *filename_str = FILENAME (LINE (INFO (p)));
+       tree filename = build_string_literal (strlen (filename_str) + 1,
+ 					    filename_str);
+       tree call = a68_build_libcall (A68_LIBCALL_DEREFNIL,
+ 					 void_type_node, 2,
+ 					 filename,
+ 					 build_int_cst (unsigned_type_node, lineno));
+       call = fold_build2 (COMPOUND_EXPR, a68_bool_type, call, boolean_false_node);
+       nil_check = fold_build2 (NE_EXPR, exp_type,
+ 			       consolidated_exp,
+ 			       build_int_cst (exp_type, 0));
+       nil_check = fold_build2 (TRUTH_ORIF_EXPR, exp_type,
+ 			       nil_check, call);
+     }
+ 
+   tree deref = fold_build1 (INDIRECT_REF, TREE_TYPE (exp_type), exp);
+   if (nil_check == NULL_TREE)
+     return deref;
+   else
+     return fold_build2 (COMPOUND_EXPR, TREE_TYPE (deref),
+ 			nil_check, deref);
+ }
+ 
+ /* Deref a given expression EXP whose mode is MOID (P).
+ 
+    The value to dereference always corresponds to a name, but it may consist
+    of:
+ 
+    - Not a pointer, in which case corresponds to a name lowered to a VAR_DECL.
+ 
+    - A pointer to a function, in which case corresponds to a name of mode REF
+      PROC, lowered to a VAR_DECL.
+ 
+    - Any other pointer corresponds to a name lowered to a VAR_DECL that is a
+      pointer.
+ 
+    In the first two cases, in both r-value and l-value situations the expected
+    result is achieved by just returning the value: in r-value the decl denotes
+    the value, in l-value the decl denotes the (direct) address of the
+    value.  */
+ 
+ tree
+ a68_low_deref (tree exp, NODE_T *p)
+ {
+   int num_refs, num_pointers;
+   a68_ref_counts (exp, MOID (p), &num_refs, &num_pointers);
+ 
+   if (num_refs > num_pointers)
+     return exp;
+   else
+     {
+       gcc_assert (num_refs == num_pointers);
+       return a68_checked_indirect_ref (p, exp, MOID (p));
+     }
+ }
+ 
+ /* Get a deep-copy of a given Algol 68 value EXP.  */
+ 
+ tree
+ a68_low_dup (tree expr, bool use_heap)
+ {
+   tree dup = NULL_TREE;
+   tree type = TREE_TYPE (expr);
+ 
+   /* XXX */
+   use_heap = true;
+ 
+   /* Determine the mode corresponding to the type of EXPR.  */
+   MOID_T *m = a68_type_moid (type);
+   gcc_assert (m != NO_MOID);
+   while (EQUIVALENT (m) != NO_MOID)
+     m = EQUIVALENT (m);
+ 
+   if (A68_ROW_TYPE_P (type))
+     {
+       /* We need to copy the elements as well as the descriptor.  There is no
+ 	 need to check bounds.  */
+ 
+       /* Deflexe the mode as appropriate.  */
+       while (IS_FLEX (m))
+ 	m = SUB (m);
+       gcc_assert (IS_ROW (m) || m == M_STRING);
+ 
+       a68_push_range (NULL);
+ 
+       /* First allocate space for the dupped elements.  */
+       expr = save_expr (expr);
+       tree elements = a68_multiple_elements (expr);
+       tree element_pointer_type = TREE_TYPE (elements);
+       tree element_type = TREE_TYPE (element_pointer_type);
+       tree new_elements_size = save_expr (a68_multiple_elements_size (expr));
+       tree new_elements_type = TREE_TYPE (TREE_TYPE (elements));
+       MOID_T *new_elements_moid = a68_type_moid (new_elements_type);
+       tree new_elements = a68_lower_tmpvar ("new_elements%",
+ 					    TREE_TYPE (elements),
+ 					    (use_heap
+ 					     ? a68_lower_malloc (new_elements_moid,
+ 								 new_elements_size)
+ 					     : a68_lower_alloca (new_elements_moid,
+ 								 new_elements_size)));
+ 
+       /* Then copy the elements.
+ 
+ 	 If the mode of the elements stored in the multiple dont have rows,
+ 	 then we can just use memcpy.  Otherwise, we have to loop and recurse
+ 	 to dup all the elements in the multiple one by one.
+ 
+ 	 The above applies to multiples of any number of dimensions.  */
+       if (m == M_STRING || !HAS_ROWS (SUB (m)))
+ 	{
+ 	  a68_add_stmt (a68_lower_memcpy (new_elements,
+ 					  elements,
+ 					  new_elements_size));
+ 	  a68_add_stmt (new_elements);
+ 	}
+       else
+ 	{
+ 	  /* Note that num_elems includes elements that are not accessible due
+ 	     to trimming.  */
+ 	  tree num_elems = a68_lower_tmpvar ("numelems%", size_type_node,
+ 					     fold_build2 (TRUNC_DIV_EXPR, sizetype,
+ 							  new_elements_size,
+ 							  size_in_bytes (element_type)));
+ 	  tree orig_elements = a68_lower_tmpvar ("orig_elements%",
+ 						 element_pointer_type, elements);
+ 	  tree index = a68_lower_tmpvar ("index%", size_type_node, size_zero_node);
+ 
+ 	  /* Begin of loop body.  */
+ 	  a68_push_range (NULL);
+ 
+ 	  /* if (index == num_elems) break; */
+ 	  a68_add_stmt (fold_build1 (EXIT_EXPR,
+ 				     void_type_node,
+ 				     fold_build2 (EQ_EXPR,
+ 						  size_type_node,
+ 						  index, num_elems)));
+ 	  /* new_elements[index] = elements[index] */
+ 	  tree offset = fold_build2 (MULT_EXPR, sizetype,
+ 				     index, size_in_bytes (element_type));
+ 	  tree new_elem_lvalue = fold_build2 (MEM_REF, element_type,
+ 					      fold_build2 (POINTER_PLUS_EXPR,
+ 							   element_pointer_type,
+ 							   new_elements,
+ 							   offset),
+ 					      fold_convert (element_pointer_type,
+ 							    integer_zero_node));
+ 	  tree elem = fold_build2 (MEM_REF, element_type,
+ 				   fold_build2 (POINTER_PLUS_EXPR,
+ 						element_pointer_type,
+ 						orig_elements,
+ 						offset),
+ 				   fold_convert (element_pointer_type,
+ 						 integer_zero_node));
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR, element_type,
+ 				     new_elem_lvalue,
+ 				     a68_low_dup (elem, use_heap)));
+ 	  /* index++ */
+ 	  a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR,
+ 				     size_type_node,
+ 				     index, size_one_node));
+ 	  tree loop_body = a68_pop_range ();
+ 	  /* End of loop body.  */
+ 
+ 	  a68_add_stmt (fold_build1 (LOOP_EXPR,
+ 				     void_type_node,
+ 				     loop_body));
+ 	  a68_add_stmt (new_elements);
+ 	}
+ 
+       new_elements = a68_pop_range ();
+       TREE_TYPE (new_elements) = element_pointer_type;
+ 
+       /* Now build a descriptor pointing to the dupped elements and return it.
+ 	 Note that the descriptor is always allocated on the stack.  */
+       dup = a68_row_value_raw (type,
+ 			       a68_multiple_triplets (expr),
+ 			       new_elements,
+ 			       new_elements_size);
+     }
+   else if (!HAS_ROWS (m))
+     {
+       /* Non-multiple values that do not contain rows do not need to be dupped,
+ 	 since they can be just moved around using the semantics of
+ 	 MODIFY_EXPR.  */
+       dup = expr;
+     }
+   else if (A68_STRUCT_TYPE_P (type))
+     {
+       /* Since struct value can contain multiples and unions and other values
+ 	 that require deep copy, we cannot simply rely on the C semantics of a
+ 	 MODIFY_EXPR.  */
+       tree struct_type = type;
+       vec <constructor_elt, va_gc> *ce = NULL;
+ 
+       expr = save_expr (expr);
+       for (tree field = TYPE_FIELDS (struct_type);
+ 	   field;
+ 	   field = TREE_CHAIN (field))
+ 	{
+ 	  CONSTRUCTOR_APPEND_ELT (ce, field,
+ 				  a68_low_dup (fold_build3 (COMPONENT_REF,
+ 							    TREE_TYPE (field),
+ 							    expr,
+ 							    field,
+ 							    NULL_TREE),
+ 					       use_heap));
+ 	}
+       dup = build_constructor (struct_type, ce);
+     }
+   else if (A68_UNION_TYPE_P (type))
+     {
+       /* We need to recurse in whatever type corresponding to the active mode
+ 	 in the united value.  This shall be done at run-time by using a series
+ 	 of
+ 
+ 	   IF overhead IS index of mode blah in union
+ 	   THEN dup = dup_type (CTYPE (mode blah in union))
+ 	   FI
+       */
+ 
+       MOID_T *union_mode = a68_type_moid (type);
+ 
+       a68_push_range (union_mode);
+       dup = a68_lower_tmpvar ("dup%", type, expr);
+ 
+       tree cunion_type = TREE_TYPE (TREE_CHAIN (TYPE_FIELDS (type)));
+       tree field_decl = TYPE_FIELDS (cunion_type);
+       while (EQUIVALENT (union_mode) != NO_MOID)
+ 	union_mode = EQUIVALENT (union_mode);
+       for (PACK_T *pack = PACK (union_mode); pack != NO_PACK; FORWARD (pack))
+ 	{
+ 	  tree continue_label_decl = build_decl (UNKNOWN_LOCATION,
+ 						 LABEL_DECL,
+ 						 NULL, /* Set below.  */
+ 						 void_type_node);
+ 	  char *label_name = xasprintf ("continue%d%%", DECL_UID (continue_label_decl));
+ 	  DECL_NAME (continue_label_decl) = get_identifier (label_name);
+ 	  free (label_name);
+ 
+ 	  a68_add_decl (continue_label_decl);
+ 
+ 	  a68_add_stmt (fold_build2 (TRUTH_ORIF_EXPR,
+ 				     integer_type_node,
+ 				     fold_build2 (EQ_EXPR,
+ 						  integer_type_node,
+ 						  a68_union_overhead (dup),
+ 						  size_int (a68_united_mode_index (union_mode, MOID (pack)))),
+ 				     fold_build2 (COMPOUND_EXPR,
+ 						  integer_type_node,
+ 						  build1 (GOTO_EXPR, void_type_node, continue_label_decl),
+ 						  integer_zero_node)));
+ 	  a68_add_stmt (fold_build2 (MODIFY_EXPR, type,
+ 				     fold_build3 (COMPONENT_REF,
+ 						  TREE_TYPE (field_decl),
+ 						  a68_union_cunion (dup),
+ 						  field_decl,
+ 						  NULL_TREE),
+ 				     a68_low_dup (fold_build3 (COMPONENT_REF,
+ 							       TREE_TYPE (field_decl),
+ 							       a68_union_cunion (dup),
+ 							       field_decl,
+ 							       NULL_TREE),
+ 						  use_heap)));
+ 	  a68_add_stmt (build1 (LABEL_EXPR, void_type_node, continue_label_decl));
+ 	  field_decl = TREE_CHAIN (field_decl);
+ 	}
+ 
+       a68_add_stmt (dup);
+       dup = a68_pop_range ();
+     }
+   else
+     /* Not an Algol 68 value.  */
+     gcc_unreachable ();
+ 
+   return dup;
+ }
+ 
+ /* Lower code to ascribe the value yielded by the expression in RHS to the
+    defining identifier implied by the LHS, which is a VAR_DECL tree.  MODE is
+    the mode of the value to be ascribed.  */
+ 
+ tree
+ a68_low_ascription (MOID_T *mode, tree lhs, tree rhs)
+ {
+   gcc_assert (VAR_P (lhs));
+ 
+   tree type = CTYPE (mode);
+   if (IS (mode, PROC_SYMBOL))
+     {
+       /* A pointer to a function, or a function, is expected at the right hand
+ 	 side.  We need a pointer for the left hand side..  */
+       if (TREE_CODE (TREE_TYPE (rhs)) == FUNCTION_TYPE)
+ 	{
+ 	  type = build_pointer_type (type);
+ 	  rhs = fold_build1 (ADDR_EXPR, type, rhs);
+ 	}
+     }
+ 
+   if (HAS_ROWS (mode))
+     rhs = a68_low_dup (rhs);
+   return fold_build2 (MODIFY_EXPR, type, lhs, rhs);
+ }
+ 
+ /* Perform an assignation of RHS to LHS.
+ 
+    MODE_RHS is the mode of the rhs.
+    MODE_LHS is the mode of the lhs.
+ 
+    MODE_LHS shall be REF [FLEX] MODE_LHS.  */
+ 
+ tree
+ a68_low_assignation (NODE_T *p,
+ 		     tree lhs, MOID_T *mode_lhs,
+ 		     tree rhs, MOID_T *mode_rhs)
+ {
+   NODE_T *lhs_node = SUB (p);
+   tree assignation = NULL_TREE;
+   tree orig_rhs = rhs;
+ 
+   if (IS_FLEXETY_ROW (mode_rhs))
+     {
+       /* Make a deep copy of the rhs.  Note that we have to use the heap
+ 	 because the scope of the lhs may be older than the scope of the rhs.
+ 	 XXX this can be ommitted if a68_multiple_copy_elems below supports
+ 	 overlapping multiples.  */
+       if (HAS_ROWS (mode_rhs))
+ 	rhs = a68_low_dup (rhs, true /* use_heap */);
+       rhs = save_expr (rhs);
+ 
+       /* Determine whether the REF [FLEX] MODE_LHS is flexible.  */
+       if (SUB (mode_lhs) == M_STRING || IS_FLEX (SUB (mode_lhs)))
+ 	{
+ 	  /* Assigning to a flexible name updates descriptor with new bounds
+ 	     and also sets the elements to the dup of the rhs.  No boundscheck
+ 	     is peformed.  XXX but bound checking in contained values may be
+ 	     necessary, ghost elements.  */
+ 	  if (POINTER_TYPE_P (TREE_TYPE (lhs))
+ 	      && TREE_TYPE (TREE_TYPE (lhs)) == TREE_TYPE (rhs))
+ 	    {
+ 	      /* Make sure to not evaluate the expression yielding the pointer
+ 		 more than once.  */
+ 	      lhs = save_expr (lhs);
+ 	      tree deref_lhs = a68_checked_indirect_ref (lhs_node, lhs, mode_lhs);
+ 	      assignation = fold_build2 (COMPOUND_EXPR,
+ 					 TREE_TYPE (lhs),
+ 					 fold_build2 (MODIFY_EXPR, TREE_TYPE (lhs),
+ 						      deref_lhs, rhs),
+ 					 lhs);
+ 	    }
+ 	  else
+ 	    {
+ 	      /* The lhs is either a variable or a component ref as a l-value.  It
+ 		 is ok to evaluate it as an r-value as well as doing so inroduces
+ 		 no side-effects.  */
+ 	      assignation = fold_build2 (COMPOUND_EXPR,
+ 					 TREE_TYPE (lhs),
+ 					 fold_build2 (MODIFY_EXPR, TREE_TYPE (lhs),
+ 						      lhs, rhs),
+ 					 lhs);
+ 	    }
+ 	}
+       else
+ 	{
+ 	  /* Dereference the multiple at the left-hand side.  This may require
+ 	     indirection.  */
+ 
+ 	  tree effective_lhs;
+ 	  if (POINTER_TYPE_P (TREE_TYPE (lhs)))
+ 	    {
+ 	      /* The name at the lhs is a pointer.  */
+ 	      gcc_assert (TREE_TYPE (TREE_TYPE (lhs)) == TREE_TYPE (rhs));
+ 	      lhs = save_expr (lhs);
+ 	      effective_lhs = a68_checked_indirect_ref (lhs_node, lhs, mode_lhs);
+ 	    }
+ 	  else
+ 	    {
+ 	      /* The name at the lhs is either a variable or a component ref as
+ 		 a l-value.  It is ok to evaluate it as an r-value as well as
+ 		 doing so introduces no side-effects.  */
+ 	      effective_lhs = lhs;
+ 	    }
+ 
+ 	  /* Copy over the elements in a loop.  The space occupied by the
+ 	     previous elements stored in the lhs multiple will be recovered by
+ 	     either stack shrinkage or garbage collected.  */
+ 	  tree copy_elements = a68_multiple_copy_elems (mode_rhs, effective_lhs, rhs);
+ 	  assignation = fold_build2 (COMPOUND_EXPR,
+ 				     TREE_TYPE (lhs),
+ 				     copy_elements,
+ 				     lhs);
+ 
+ 	  /* Check the bounds of the multiple at the rhs to make sure they are
+ 	     the same than the bounds of the multiple already referred by the
+ 	     lhs.  If the bounds don't match then emit a run-time error.  */
+ 	  if (OPTION_BOUNDS_CHECKING (&A68_JOB))
+ 	    assignation = fold_build2 (COMPOUND_EXPR,
+ 				       TREE_TYPE (assignation),
+ 				       a68_multiple_bounds_check_equal (p,
+ 									effective_lhs,
+ 									rhs),
+ 				       assignation);
+ 
+ 	}
+     }
+   else
+     {
+       /* First make sure we got a pointer in the RHS in case it is a name.  */
+       rhs = a68_consolidate_ref (mode_rhs, rhs);
+ 
+       /* The assignation implies copying the entire value being assigned, so
+ 	 make sure we do a deep copy whenever needed.  Note that we have to use
+ 	 the heap because the scope of the lhs may be older than the scope of
+ 	 the rhs.  */
+       if (HAS_ROWS (mode_rhs))
+ 	rhs = a68_low_dup (rhs, true /* use_heap */);
+ 
+       if (POINTER_TYPE_P (TREE_TYPE (lhs))
+ 	  && TREE_TYPE (TREE_TYPE (lhs)) == TREE_TYPE (rhs))
+ 	{
+ 	  /* If the left hand side is a pointer, deref it, but return the
+ 	     pointer.  Make sure to not evaluate the expression yielding the
+ 	     pointer more than once.  */
+ 	  lhs = save_expr (lhs);
+ 	  tree deref_lhs = a68_checked_indirect_ref (lhs_node, lhs, mode_lhs);
+ 	  assignation = fold_build2 (COMPOUND_EXPR,
+ 				     TREE_TYPE (lhs),
+ 				     fold_build2 (MODIFY_EXPR, TREE_TYPE (lhs),
+ 						  deref_lhs, rhs),
+ 				     lhs);
+ 	}
+       else
+ 	{
+ 	  /* Otherwise the lhs is either a variable or a component ref as an
+ 	     l-value.  It is ok to evaluate it as an r-value as well as doing
+ 	     so introduces no side-effects.  */
+ 	  assignation = fold_build2 (COMPOUND_EXPR,
+ 				     TREE_TYPE (lhs),
+ 				     fold_build2 (MODIFY_EXPR, TREE_TYPE (lhs),
+ 						  lhs, rhs),
+ 				     lhs);
+ 	}
+     }
+ 
+   /* Since it is been assigned to a name, the rhs is no longer constant.  */
+   if (A68_ROW_TYPE_P (TREE_TYPE (orig_rhs)) || A68_STRUCT_TYPE_P (TREE_TYPE (orig_rhs)))
+     TREE_CONSTANT (orig_rhs) = 0;
+   return assignation;
+ }
+ 
+ /* Build a tree that copies SIZE bytes from SRC into DST.  */
+ 
+ tree
+ a68_lower_memcpy (tree dst, tree src, tree size)
+ {
+   return build_call_expr (builtin_decl_explicit (BUILT_IN_MEMCPY), 3,
+ 			  dst, src, size);
+ }
+ 
+ /* Build a tree that allocates SIZE bytes on the stack and returns a *TYPE
+    pointer to it.  */
+ 
+ tree
+ a68_lower_alloca (MOID_T *m, tree size)
+ {
+   tree type = CTYPE (m);
+   tree call = builtin_decl_explicit (BUILT_IN_ALLOCA_WITH_ALIGN);
+   call = build_call_expr_loc (UNKNOWN_LOCATION, call, 2,
+ 			      size,
+ 			      size_int (TYPE_ALIGN (type)));
+   call = fold_convert (build_pointer_type (type), call);
+   return call;
+ }
+ 
+ 
+ /* Build a tree that allocates SIZE bytes on the heap and returns a pointer to
+    a tree with type equivalent to mode M.  */
+ 
+ tree
+ a68_lower_malloc (MOID_T *m, tree size)
+ {
+   tree type = CTYPE (m);
+   a68_libcall_fn libcall
+     = (HAS_REFS (m) || HAS_ROWS (m)) ? A68_LIBCALL_MALLOC : A68_LIBCALL_MALLOC_LEAF;
+   return fold_convert (build_pointer_type (type),
+ 		       a68_build_libcall (libcall, ptr_type_node,
+ 					  1, size));
+ }
+ 
+ /* Build code for a temporary variable named NAME, of type TYPE and initialized
+    to INIT.  Returns the decl node for the temporary.  */
+ 
+ tree
+ a68_lower_tmpvar (const char *name, tree type, tree init)
+ {
+   tree tmpvar = build_decl (UNKNOWN_LOCATION,
+ 			    VAR_DECL,
+ 			    get_identifier (name),
+ 			    type);
+   DECL_ARTIFICIAL (tmpvar) = 1;
+   DECL_IGNORED_P (tmpvar) = 1;
+   a68_add_decl (tmpvar);
+   a68_add_decl_expr (fold_build1 (DECL_EXPR, type, tmpvar));
+   a68_add_stmt (fold_build2 (INIT_EXPR, type, tmpvar, init));
+   return tmpvar;
+ }
+ 
+ /* Build a FUNC_DECL for a top-level non-public function and return it.  */
+ 
+ tree
+ a68_low_toplevel_func_decl (const char *name, tree fntype)
+ {
+   tree fndecl = build_decl (UNKNOWN_LOCATION,
+ 			    FUNCTION_DECL,
+ 			    NULL /* set below */,
+ 			    fntype);
+   char *_name = xasprintf ("__ga68_%s%d", name, DECL_UID (fndecl));
+   DECL_NAME (fndecl) = get_identifier (_name);
+   free (_name);
+   DECL_EXTERNAL (fndecl) = 0;
+   TREE_PUBLIC (fndecl) = 0;
+   TREE_STATIC (fndecl) = 1;
+ 
+   return fndecl;
+ }
+ 
+ /* Build a PARM_DECL whose context is TYPE with the given NAME.  */
+ 
+ tree
+ a68_low_func_param (tree fndecl, const char *name, tree type)
+ {
+   tree param = build_decl (UNKNOWN_LOCATION, PARM_DECL,
+ 			   get_identifier (name), type);
+   DECL_CONTEXT (param) = fndecl;
+   DECL_ARG_TYPE (param) = TREE_TYPE (param);
+   layout_decl (param, 0);
+   return param;
+ }
+ 
+ /* Lower revelations, to calls to either its prelude or poslude.
+    This function always returns NULL_TREE.  */
+ 
+ static tree
+ lower_revelations (NODE_T *p, LOW_CTX_T ctx, bool prelude)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       lower_revelations (SUB (p), ctx, prelude);
+       if (IS (p, MODULE_INDICANT))
+ 	{
+ 	  tree decl = build_decl (a68_get_node_location (p),
+ 				  FUNCTION_DECL,
+ 				  NULL_TREE, /* name, set below.  */
+ 				  build_function_type (void_type_node,
+ 						       void_list_node));
+ 	  DECL_NAME (decl)
+ 	    = a68_get_mangled_identifier (prelude ? "_prelude" : "_postlude",
+ 					  NSYMBOL (p));
+ 	  DECL_EXTERNAL (decl) = 1;
+ 	  TREE_PUBLIC (decl) = 1;
+ 	  a68_add_decl (decl);
+ 	  a68_add_stmt (build_call_expr_loc (a68_get_node_location (p),
+ 					     decl, 0));
+ 	}
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower the declaration of a prelude or postlude.  */
+ 
+ static tree
+ lower_lude_decl (const char *module, bool postludep)
+ {
+   char *symbol = xasprintf ("%s__%s",
+ 			    module,
+ 			    postludep ? "postlude" : "prelude");
+   tree fdecl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
+ 			   get_identifier (symbol),
+ 			   build_function_type (void_type_node, void_list_node));
+   free (symbol);
+   DECL_EXTERNAL (fdecl) = 1;
+   TREE_PUBLIC (fdecl) = 1;
+   return fdecl;
+ }
+ 
+ /* Lower a module text.
+ 
+      module text : revelation part, def part, postlude part, fed symbol ;
+                    revelation part, def part, fed symbol ;
+ 		   def part, postlude part, fed symbol ;
+ 		   def part, postlude part, fed symbol.
+      def part : def symbol, enquiry clause.
+      postlude part : postlude symbol, serial clause.
+ 
+    Each module text lowers to two functions which are callable from outside the
+    current compilation unit:
+ 
+      MODULENAME__prelude
+      MODULENAME__postlude
+ 
+    Declarations inside prelude and postlude are lowered into global decl trees.
+    The non-PUBlicized ones are marked as static.
+ 
+    This handler always returns NULL_TREE.  */
+ 
+ static tree
+ lower_module_text (NODE_T *p, LOW_CTX_T ctx)
+ {
+   NODE_T *def_part = (IS (SUB (p), REVELATION_PART)
+ 		      ? NEXT_SUB (p)
+ 		      : SUB (p));
+   NODE_T *revelation_part = (IS (SUB (p), REVELATION_PART)
+ 			     ? SUB (p)
+ 			     : NO_NODE);
+   NODE_T *postlude_part = (IS (NEXT (def_part), FED_SYMBOL)
+ 			   ? NO_NODE
+ 			   : NEXT (def_part));
+   NODE_T *prelude_enquiry = NEXT_SUB (def_part);
+ 
+   /* The global sentinel of the module, initialized to 0.  */
+   tree sentinel_decl = build_decl (UNKNOWN_LOCATION,
+ 				   VAR_DECL, NULL /* name */,
+ 				   sizetype);
+   char *sentinel_name = xasprintf ("%s__sentinel", ctx.module_definition_name);
+   DECL_NAME (sentinel_decl) = get_identifier (sentinel_name);
+   free (sentinel_name);
+   TREE_PUBLIC (sentinel_decl) = 0;
+   TREE_STATIC (sentinel_decl) = 1;
+   DECL_CONTEXT (sentinel_decl) = NULL_TREE;  /* File scope.  */
+   make_decl_rtl (sentinel_decl);
+   varpool_node::finalize_decl (sentinel_decl);
+ 
+   /* Create the prelude function.  */
+   tree prelude_decl = build_decl (a68_get_node_location (def_part),
+ 				  FUNCTION_DECL,
+ 				  NULL_TREE, /* name, set below.  */
+ 				  build_function_type (void_type_node,
+ 						       void_list_node));
+   DECL_NAME (prelude_decl)
+     = a68_get_mangled_identifier ("_prelude",
+ 				  ctx.module_definition_name);
+   DECL_EXTERNAL (prelude_decl) = 0;
+   TREE_PUBLIC (prelude_decl) = 1;
+   TREE_STATIC (prelude_decl) = 1;
+ 
+   a68_push_function_range (prelude_decl,
+ 			   void_type_node /* result_type */, true /* top_level */);
+   {
+     /* Increase sentinel.  */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR,
+ 			       sizetype,
+ 			       sentinel_decl, size_one_node));
+ 
+     a68_push_stmt_list (NULL);
+     {
+       a68_push_stmt_list (NULL);
+       {
+ 	if (!flag_building_libga68)
+ 	  {
+ 	    /* Add calls to implicitly accessed standard preludes.  */
+ 	    tree standard_prelude = lower_lude_decl ("STANDARD", false);
+ 	    tree posix_prelude = lower_lude_decl ("POSIX", false);
+ 	    a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, standard_prelude, 0));
+ 	    a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, posix_prelude, 0));
+ 	  }
+ 
+ 	/* Add calls to preludes of modules in REVELATION_PART.  */
+ 	lower_revelations (revelation_part, ctx, true /* prelude */);
+ 	a68_add_stmt (a68_lower_tree (prelude_enquiry, ctx));
+       }
+       tree do_prelude = a68_pop_stmt_list ();
+ 
+       a68_push_stmt_list (M_VOID);
+       tree do_nothing = a68_pop_stmt_list ();
+ 
+       /* Do the prelude work only if sentinel is 1.  */
+       a68_add_stmt (fold_build3 (COND_EXPR, void_type_node,
+ 				 fold_build2 (EQ_EXPR, sizetype,
+ 					      sentinel_decl, size_one_node),
+ 				 do_prelude, do_nothing));
+     }
+     tree prelude_body = a68_pop_stmt_list ();
+     a68_pop_function_range (prelude_body);
+   }
+ 
+   /* Create the postlude function.  This is done even if the module definition
+      has no postlude in the source code.  */
+ 
+   location_t postlude_loc = UNKNOWN_LOCATION;
+   if (postlude_part != NO_NODE)
+     postlude_loc = a68_get_node_location (postlude_part);
+   tree postlude_decl = build_decl (postlude_loc,
+ 				   FUNCTION_DECL,
+ 				   NULL_TREE, /* name, set below.  */
+ 				   build_function_type (void_type_node,
+ 							void_list_node));
+   DECL_NAME (postlude_decl)
+     = a68_get_mangled_identifier ("_postlude",
+ 				  ctx.module_definition_name);
+   DECL_EXTERNAL (postlude_decl) = 0;
+   TREE_PUBLIC (postlude_decl) = 1;
+   TREE_STATIC (postlude_decl) = 1;
+ 
+   a68_push_function_range (postlude_decl,
+ 			   void_type_node /* result_type */, true /* top_level */);
+   {
+     /* Decrease sentinel.  */
+     a68_add_stmt (fold_build2 (POSTINCREMENT_EXPR,
+ 			       sizetype,
+ 			       sentinel_decl, size_one_node));
+ 
+     a68_push_stmt_list (NULL);
+     {
+       a68_push_stmt_list (NULL);
+       {
+ 	/* Perhaps the postlude code, if there is one.  */
+ 	NODE_T *postlude_serial = NO_NODE;
+ 	if (postlude_part != NO_NODE)
+ 	  postlude_serial = NEXT_SUB (postlude_part);
+ 	if (postlude_serial != NO_NODE)
+ 	  a68_add_stmt (a68_lower_tree (postlude_serial, ctx));
+ 
+ 	/* Add calls to postludes of modules in REVELATION_PART.  */
+ 	lower_revelations (revelation_part, ctx, false /* prelude */);
+ 
+ 	if (!flag_building_libga68)
+ 	  {
+ 	    /* Add calls to implicitly accessed standard postludes.  */
+ 	    tree standard_postlude = lower_lude_decl ("STANDARD", true);
+ 	    tree posix_postlude = lower_lude_decl ("POSIX", true);
+ 	    a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, posix_postlude, 0));
+ 	    a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, standard_postlude, 0));
+ 	  }
+       }
+       tree do_postlude = a68_pop_stmt_list ();
+ 
+       a68_push_stmt_list (M_VOID);
+       tree do_nothing = a68_pop_stmt_list ();
+ 
+       /* Do the postlude work only if sentinel is 0.  */
+       a68_add_stmt (fold_build3 (COND_EXPR, void_type_node,
+ 				 fold_build2 (EQ_EXPR, sizetype,
+ 					      sentinel_decl, size_zero_node),
+ 				 do_postlude, do_nothing));
+     }
+     tree postlude_body = a68_pop_stmt_list ();
+     a68_pop_function_range (postlude_body);
+   }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower a set of module declarations.
+ 
+    module declaration : module symbol, defining module, equals symbol, module text ;
+                         module_declaration, comma symbol, defining module,
+                           equals symbol, module text.
+ 
+    Each module declaration lowers into the side-effects of emitting prelude and
+    postlude global functions, and emitting global declarations for the
+    declarations in the module definition prelude.
+ 
+    This handler always returns NULL_TREE.  */
+ 
+ static tree
+ lower_module_declaration (NODE_T *p, LOW_CTX_T ctx)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEFINING_MODULE_INDICANT))
+ 	{
+ 	  ctx.module_definition_name = NSYMBOL (p);
+ 	  A68_MODULE_DEFINITION_DECLS->truncate (0);
+ 	  vec_alloc (A68_MODULE_DEFINITION_DECLS, 16);
+ 	  lower_module_text (NEXT (NEXT (p)), ctx);
+ 	  for (tree d : A68_MODULE_DEFINITION_DECLS)
+ 	    {
+ 	      if (TREE_CODE (d) == FUNCTION_DECL)
+ 		{
+ 		  cgraph_node::finalize_function (d, true);
+ 		}
+ 	      else
+ 		{
+ 		  rest_of_decl_compilation (d, 1, 0);
+ 		  make_decl_rtl (d);
+ 		}
+ 	    }
+ 	}
+       else
+ 	lower_module_declaration (SUB (p), ctx);
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Lower a prelude packet.
+ 
+      prelude packet : module declaration.
+ 
+    This handler always returns NULL_TREE.  */
+ 
+ static tree
+ lower_prelude_packet (NODE_T *p, LOW_CTX_T ctx)
+ {
+   a68_lower_tree (SUB (p), ctx);
+   return NULL_TREE;
+ }
+ 
+ /* Lower a particular program.
+ 
+      particular program : label, enclosed clause; enclosed clause.
+ 
+    This handler always returns NULL_TREE.  */
+ 
+ static tree
+ lower_particular_program (NODE_T *p, LOW_CTX_T ctx)
+ {
+   /* Create the main function that conforms the particular program.  */
+   tree main_decl = build_decl (a68_get_node_location (p),
+ 			       FUNCTION_DECL,
+ 			       get_identifier ("__algol68_main"),
+ 			       build_function_type (void_type_node,
+ 						    void_list_node));
+   DECL_EXTERNAL (main_decl) = 0;
+   TREE_PUBLIC (main_decl) = 1;
+   TREE_STATIC (main_decl) = 1;
+ 
+   a68_push_function_range (main_decl,
+ 			   void_type_node /* result_type */);
+ 
+   /* Lower the body of the function.  */
+ 
+   tree standard_prelude = lower_lude_decl ("STANDARD", false);
+   tree standard_postlude = lower_lude_decl ("STANDARD", true);
+   tree posix_prelude = lower_lude_decl ("POSIX", false);
+   tree posix_postlude = lower_lude_decl ("POSIX", true);
+ 
+   NODE_T *enclosed_clause = (IS (SUB (p), ENCLOSED_CLAUSE)
+ 			     ? SUB (p) : NEXT (SUB (p)));
+ 
+   a68_push_range (M_VOID);
+   a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, standard_prelude, 0));
+   a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, posix_prelude, 0));
+   a68_add_stmt (a68_lower_tree (enclosed_clause, ctx));
+   a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, posix_postlude, 0));
+   a68_add_stmt (build_call_expr_loc (UNKNOWN_LOCATION, standard_postlude, 0));
+ 
+   tree body = a68_pop_range ();
+   a68_pop_function_range (body);
+   return NULL_TREE;
+ }
+ 
+ /* Lower a packet.
+ 
+      packet : particular program ; prelude packet.
+ */
+ 
+ static tree
+ lower_packet (NODE_T *p,
+ 	      LOW_CTX_T ctx)
+ {
+   return a68_lower_tree (SUB (p), ctx);
+ }
+ 
+ /* Lower the given tree P using the given context CTX.  */
+ 
+ tree
+ a68_lower_tree (NODE_T *p, LOW_CTX_T ctx)
+ {
+ #if 0
+   for (int i = 0; i < ctx.level; ++i)
+     printf (" ");
+   printf ("LOWER TREE: %d::%s\n",
+   	  NUMBER (p), a68_attribute_name (ATTRIBUTE (p)));
+ #endif
+   ctx.level++;
+ 
+   tree res = NULL_TREE;
+ 
+   if (p == NO_NODE)
+     gcc_unreachable ();
+ 
+   switch (ATTRIBUTE (p))
+     {
+     case PACKET:
+       res = lower_packet (p, ctx);
+       break;
+     case PRELUDE_PACKET:
+       res = lower_prelude_packet (p, ctx);
+       break;
+     case MODULE_DECLARATION:
+       res = lower_module_declaration (p, ctx);
+       break;
+     case MODULE_TEXT:
+       res = lower_module_text (p, ctx);
+       break;
+     case PARTICULAR_PROGRAM:
+       res = lower_particular_program (p, ctx);
+       break;
+       /* Clauses */
+     case ENCLOSED_CLAUSE:
+       res = a68_lower_enclosed_clause (p, ctx);
+       break;
+     case CLOSED_CLAUSE:
+       res = a68_lower_closed_clause (p, ctx);
+       break;
+     case ACCESS_CLAUSE:
+       res = a68_lower_access_clause (p, ctx);
+       break;
+     case PARALLEL_CLAUSE:
+       res = a68_lower_parallel_clause (p, ctx);
+       break;
+     case COLLATERAL_CLAUSE:
+       res = a68_lower_collateral_clause (p, ctx);
+       break;
+     case UNIT_LIST:
+       res = a68_lower_unit_list (p, ctx);
+       break;
+     case CONDITIONAL_CLAUSE:
+       res = a68_lower_conditional_clause (p, ctx);
+       break;
+     case ENQUIRY_CLAUSE:
+       res = a68_lower_enquiry_clause (p, ctx);
+       break;
+     case CASE_CLAUSE:
+       res = a68_lower_case_clause (p, ctx);
+       break;
+     case CONFORMITY_CLAUSE:
+       res = a68_lower_conformity_clause (p, ctx);
+       break;
+     case LOOP_CLAUSE:
+       res = a68_lower_loop_clause (p, ctx);
+       break;
+     case SERIAL_CLAUSE:
+       res = a68_lower_serial_clause (p, ctx);
+       break;
+     case INITIALISER_SERIES:
+       res = a68_lower_initialiser_series (p, ctx);
+       break;
+     case EXIT_SYMBOL:
+       res = a68_lower_completer (p, ctx);
+       break;
+     case LABELED_UNIT:
+       res = a68_lower_labeled_unit (p, ctx);
+       break;
+     case LABEL:
+       res = a68_lower_label (p, ctx);
+       break;
+       /* Declarations.  */
+     case DECLARATION_LIST:
+       res = a68_lower_declaration_list (p, ctx);
+       break;
+     case DECLARER:
+       res = a68_lower_declarer (p, ctx);
+       break;
+     case IDENTITY_DECLARATION:
+       res = a68_lower_identity_declaration (p, ctx);
+       break;
+     case VARIABLE_DECLARATION:
+       res = a68_lower_variable_declaration (p, ctx);
+       break;
+     case PROCEDURE_DECLARATION:
+       res = a68_lower_procedure_declaration (p, ctx);
+       break;
+     case PROCEDURE_VARIABLE_DECLARATION:
+       res = a68_lower_procedure_variable_declaration (p, ctx);
+       break;
+     case PRIORITY_DECLARATION:
+       res = a68_lower_priority_declaration (p, ctx);
+       break;
+     case BRIEF_OPERATOR_DECLARATION:
+       res = a68_lower_brief_operator_declaration (p, ctx);
+       break;
+     case OPERATOR_DECLARATION:
+       res = a68_lower_operator_declaration (p, ctx);
+       break;
+     case MODE_DECLARATION:
+       res = a68_lower_mode_declaration (p, ctx);
+       break;
+       /* Units. */
+     case UNIT:
+       res = a68_lower_unit (p, ctx);
+       break;
+     case ROUTINE_TEXT:
+       res = a68_lower_routine_text (p, ctx);
+       break;
+     case ASSIGNATION:
+       res = a68_lower_assignation (p, ctx);
+       break;
+     case TERTIARY:
+       res = a68_lower_tertiary (p, ctx);
+       break;
+     case MONADIC_FORMULA:
+       res = a68_lower_monadic_formula (p, ctx);
+       break;
+     case FORMULA:
+       res = a68_lower_formula (p, ctx);
+       break;
+     case SECONDARY:
+       res = a68_lower_secondary (p, ctx);
+       break;
+     case SLICE:
+       res = a68_lower_slice (p, ctx);
+       break;
+     case SELECTION:
+       res = a68_lower_selection (p, ctx);
+       break;
+     case PRIMARY:
+       res = a68_lower_primary (p, ctx);
+       break;
+     case GENERATOR:
+       res = a68_lower_generator (p, ctx);
+       break;
+     case CALL:
+       res = a68_lower_call (p, ctx);
+       break;
+     case CAST:
+       res = a68_lower_cast (p, ctx);
+       break;
+     case AND_FUNCTION:
+     case OR_FUNCTION:
+       res = a68_lower_logic_function (p, ctx);
+       break;
+     case FORMAL_HOLE:
+       res = a68_lower_formal_hole (p, ctx);
+       break;
+     case IDENTITY_RELATION:
+       res = a68_lower_identity_relation (p, ctx);
+       break;
+     case EMPTY_SYMBOL:
+       res = a68_lower_empty (p, ctx);
+       break;
+     case NIHIL:
+       res = a68_lower_nihil (p, ctx);
+       break;
+     case SKIP:
+       res = a68_lower_skip (p, ctx);
+       break;
+     case DENOTATION:
+       res = a68_lower_denotation (p, ctx);
+       break;
+     case IDENTIFIER:
+       res = a68_lower_identifier (p, ctx);
+       break;
+       /* Coercions.  */
+     case ROWING:
+       res = a68_lower_rowing (p, ctx);
+       break;
+     case WIDENING:
+       res = a68_lower_widening (p, ctx);
+       break;
+     case DEPROCEDURING:
+       res = a68_lower_deproceduring (p, ctx);
+       break;
+     case PROCEDURING:
+       res = a68_lower_proceduring (p, ctx);
+       break;
+     case VOIDING:
+       res = a68_lower_voiding (p, ctx);
+       break;
+     case DEREFERENCING:
+       res = a68_lower_dereferencing (p, ctx);
+       break;
+       /* Others. */
+     case UNITING:
+       res = a68_lower_uniting (p, ctx);
+       break;
+     case JUMP:
+       res = a68_lower_jump (p, ctx);
+       break;
+     case PARAMETER:
+       res = a68_lower_parameter (p, ctx);
+       break;
+     case PARAMETER_LIST:
+       res = a68_lower_parameter_list (p, ctx);
+       break;
+     case PARAMETER_PACK:
+       res = a68_lower_parameter_pack (p, ctx);
+       break;
+     case OPERATOR:
+       res = a68_lower_operator (p, ctx);
+       break;
+     case ASSERTION:
+       res = a68_lower_assertion (p, ctx);
+       break;
+     case STOP:
+       res = NULL_TREE;
+       break;
+     default:
+       fatal_error (a68_get_node_location (p), "cannot lower node %s",
+ 		   a68_attribute_name (ATTRIBUTE (p)));
+       gcc_unreachable ();
+       break;
+     }
+ 
+   return res;
+ }
+ 
+ /* Lower an Algol 68 complete parse tree to a GENERIC tree.  */
+ 
+ tree
+ a68_lower_top_tree (NODE_T *p)
+ {
+   LOW_CTX_T top_ctx;
+ 
+   top_ctx.declarer = NULL;
+   top_ctx.proc_decl_identifier = NO_NODE;
+   top_ctx.proc_decl_operator = false;
+   top_ctx.level = 0;
+   top_ctx.module_definition_name = NULL;
+   vec_alloc (A68_MODULE_DEFINITION_DECLS, 16);
+   return a68_lower_tree (p, top_ctx);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-moids-diagnostics.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-diagnostics.cc
*** gcc-15.2.0/gcc/algol68/a68-moids-diagnostics.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-diagnostics.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,305 ----
+ /* MOID diagnostics routines.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ #include <string>
+ 
+ /* Give accurate error message.  */
+ 
+ const char *
+ a68_mode_error_text (NODE_T *n, MOID_T *p, MOID_T *q, int context, int deflex, int depth)
+ {
+ #define TAIL(z) (&(z)[strlen (z)])
+ #define ACTUAL_SNPRINTF_SIZE ((SNPRINTF_SIZE - len))
+   static BUFFER txt;
+   size_t len;
+   if (depth == 1)
+     txt[0] = '\0';
+   if (IS (p, SERIES_MODE))
+     {
+       len = strlen (txt);
+       PACK_T *u = PACK (p);
+ 
+       int N = 0;
+       if (u == NO_PACK)
+ 	{
+ 	  if (snprintf (txt, ACTUAL_SNPRINTF_SIZE, "empty mode-list") < 0)
+ 	    gcc_unreachable ();
+ 	  N++;
+ 	}
+       else
+ 	{
+ 	  for (; u != NO_PACK; FORWARD (u))
+ 	    {
+ 	      if (MOID (u) != NO_MOID)
+ 		{
+ 		  if (IS (MOID (u), SERIES_MODE))
+ 		    (void) a68_mode_error_text (n, MOID (u), q, context, deflex, depth + 1);
+ 		  else if (!a68_is_coercible (MOID (u), q, context, deflex))
+ 		    {
+ 		      len = strlen (txt);
+ 		      if (len > BUFFER_SIZE / 2)
+ 			{
+ 			  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " etcetera") < 0)
+ 			    gcc_unreachable ();
+ 			  N++;
+ 			}
+ 		      else
+ 			{
+ 			  if (len > 0)
+ 			    {
+ 			      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " and ") < 0)
+ 				gcc_unreachable ();
+ 			      N++;
+ 			      len = strlen (txt);
+ 			    }
+ 			  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, "%%<%s%%>",
+ 					a68_moid_to_string (MOID (u), MOID_ERROR_WIDTH, n)) < 0)
+ 			    gcc_unreachable ();
+ 			  N++;
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+       if (depth == 1)
+ 	{
+ 	  len = strlen (txt);
+ 	  if (N == 0)
+ 	    {
+ 	      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, "mode") < 0)
+ 		gcc_unreachable ();
+ 	      len = strlen (txt);
+ 	    }
+ 	  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " cannot be coerced to %%<%s%%>",
+ 			a68_moid_to_string (q, MOID_ERROR_WIDTH, n)) < 0)
+ 	    gcc_unreachable ();
+ 	}
+     }
+   else if (IS (p, STOWED_MODE) && IS_FLEX (q))
+     {
+       PACK_T *u = PACK (p);
+       len = strlen (txt);
+       if (u == NO_PACK)
+ 	{
+ 	  if (snprintf (txt, ACTUAL_SNPRINTF_SIZE, "empty mode-list") < 0)
+ 	    gcc_unreachable ();
+ 	}
+       else
+ 	{
+ 	  for (; u != NO_PACK; FORWARD (u))
+ 	    {
+ 	      if (!a68_is_coercible (MOID (u), SLICE (SUB (q)), context, deflex))
+ 		{
+ 		  len = strlen (txt);
+ 		  if (len > BUFFER_SIZE / 2)
+ 		    {
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " etcetera") < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		  else
+ 		    {
+ 		      if (len > 0)
+ 			{
+ 			  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " and ") < 0)
+ 			    gcc_unreachable ();
+ 			  len = strlen (txt);
+ 			}
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, "%s",
+ 				    a68_moid_to_string (MOID (u), MOID_ERROR_WIDTH, n)) < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		}
+ 	    }
+ 	  len = strlen (txt);
+ 	  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " cannot be coerced to %%<%s%%>",
+ 			a68_moid_to_string (SLICE (SUB (q)), MOID_ERROR_WIDTH, n)) < 0)
+ 	    gcc_unreachable ();
+ 	}
+     }
+   else if (IS (p, STOWED_MODE) && IS (q, ROW_SYMBOL))
+     {
+       PACK_T *u = PACK (p);
+       len = strlen (txt);
+       if (u == NO_PACK)
+ 	{
+ 	  if (snprintf (txt, ACTUAL_SNPRINTF_SIZE, "empty mode-list") < 0)
+ 	    gcc_unreachable ();
+ 	}
+       else
+ 	{
+ 	  for (; u != NO_PACK; FORWARD (u))
+ 	    {
+ 	      if (!a68_is_coercible (MOID (u), SLICE (q), context, deflex))
+ 		{
+ 		  len = strlen (txt);
+ 		  if (len > BUFFER_SIZE / 2)
+ 		    {
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " etcetera") < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		  else
+ 		    {
+ 		      if (len > 0)
+ 			{
+ 			  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " and ") < 0)
+ 			    gcc_unreachable ();
+ 			  len = strlen (txt);
+ 			}
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, "%%<%s%%>",
+ 				    a68_moid_to_string (MOID (u), MOID_ERROR_WIDTH, n)) < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		}
+ 	    }
+ 	  len = strlen (txt);
+ 	  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " cannot be coerced to %s",
+ 			a68_moid_to_string (SLICE (q), MOID_ERROR_WIDTH, n)) < 0)
+ 	    gcc_unreachable ();
+ 	}
+     }
+   else if (IS (p, STOWED_MODE) && (IS (q, PROC_SYMBOL) || IS (q, STRUCT_SYMBOL)))
+     {
+       PACK_T *u = PACK (p), *v = PACK (q);
+       len = strlen (txt);
+       if (u == NO_PACK)
+ 	{
+ 	  if (snprintf (txt, ACTUAL_SNPRINTF_SIZE, "empty mode-list") < 0)
+ 	    gcc_unreachable ();
+ 	}
+       else
+ 	{
+ 	  for (; u != NO_PACK && v != NO_PACK; FORWARD (u), FORWARD (v))
+ 	    {
+ 	      if (!a68_is_coercible (MOID (u), MOID (v), context, deflex))
+ 		{
+ 		  len = strlen (txt);
+ 		  if (len > BUFFER_SIZE / 2)
+ 		    {
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " etcetera") < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		  else
+ 		    {
+ 		      if (len > 0)
+ 			{
+ 			  if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, " and ") < 0)
+ 			    gcc_unreachable ();
+ 			  len = strlen (txt);
+ 			}
+ 		      if (snprintf (TAIL (txt), ACTUAL_SNPRINTF_SIZE, "%%<%s%%> cannot be coerced to %%<%s%%>",
+ 				    a68_moid_to_string (MOID (u), MOID_ERROR_WIDTH, n),
+ 				    a68_moid_to_string (MOID (v), MOID_ERROR_WIDTH, n)) < 0)
+ 			gcc_unreachable ();
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+   return txt;
+ #undef TAIL
+ #undef ACTUAL_SNPRINTF_SIZE
+ }
+ 
+ /* Cannot coerce error.  */
+ 
+ void
+ a68_cannot_coerce (NODE_T *p, MOID_T *from, MOID_T *to, int context, int deflex, int att)
+ {
+   const char *txt = a68_mode_error_text (p, from, to, context, deflex, 1);
+ 
+   a68_moid_format_token from1 (from);
+   a68_moid_format_token to1 (to);
+   a68_attr_format_token att1 ((a68_attribute) att);
+   a68_sort_format_token context1 (context);
+ 
+   if (att == STOP)
+     {
+       if (strlen (txt) == 0)
+ 	a68_error (p, "%e cannot be coerced to %e in %e context", &from1, &to1, &context1);
+       else
+ 	{
+ 	  std::string fmt (txt);
+ 	  a68_error (p, (fmt + " in %e context").c_str (), &context1);
+ 	}
+     }
+   else
+     {
+       if (strlen (txt) == 0)
+ 	a68_error (p, "%e cannot be coerced to %e in %e-%e", &from1, &to1, &context1, &att1);
+       else
+ 	{
+ 	  std::string fmt (txt);
+ 	  a68_error (p, (fmt + " in %e-%e").c_str (), &context1, &att1);
+ 	}
+     }
+ }
+ 
+ /* Give a warning when a value is silently discarded.  */
+ 
+ void
+ a68_warn_for_voiding (NODE_T *p, SOID_T *x, SOID_T *y, int c)
+ {
+   (void) c;
+ 
+   if (CAST (x) == false)
+     {
+       if (MOID (x) == M_VOID
+ 	  && MOID (y) != M_ERROR
+ 	  && !(MOID (y) == M_VOID || !a68_is_nonproc (MOID (y))))
+ 	{
+ 	  a68_moid_format_token m1 (MOID (y));
+ 	  a68_construct_format_token c1 (p);
+ 
+ 	  a68_warning (p, OPT_Wvoiding, "value of %e %e will be voided",
+ 		       &m1, &c1);
+ 	}
+     }
+ }
+ 
+ /* Warn for things that are likely unintended.  */
+ 
+ void
+ a68_semantic_pitfall (NODE_T *p, MOID_T *m, int c, int u)
+ {
+   /* semantic_pitfall: warn for things that are likely unintended, for instance
+                        REF INT i := LOC INT := 0, which should probably be
+                        REF INT i = LOC INT := 0.  */
+   if (IS (p, u))
+     {
+       a68_moid_format_token m1 (MOID (p));
+       a68_moid_format_token m2 (m);
+       a68_construct_format_token u1 ((a68_attribute) u);
+       a68_construct_format_token c1 ((a68_attribute) c);
+ 
+       a68_warning (p, 0, "possibly unintended %e %e in %e %e",
+ 		   &m1, &u1, &m2, &c1);
+     }
+   else if (a68_is_one_of (p, UNIT, TERTIARY, SECONDARY, PRIMARY, STOP))
+     a68_semantic_pitfall (SUB (p), m, c, u);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-moids-misc.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-misc.cc
*** gcc-15.2.0/gcc/algol68/a68-moids-misc.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-misc.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1443 ----
+ /* Miscellaneous MOID routines.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ 
+ /*
+  * MODE checker routines.
+  */
+ 
+ /* Absorb nested series modes recursively.  */
+ 
+ void
+ a68_absorb_series_pack (MOID_T **p)
+ {
+   bool siga;
+ 
+   do
+     {
+       PACK_T *z = NO_PACK;
+ 
+       siga = false;
+       for (PACK_T *t = PACK (*p); t != NO_PACK; FORWARD (t))
+ 	{
+ 	  if (MOID (t) != NO_MOID && IS (MOID (t), SERIES_MODE))
+ 	    {
+ 	      siga = true;
+ 	      for (PACK_T *s = PACK (MOID (t)); s != NO_PACK; FORWARD (s))
+ 		a68_add_mode_to_pack (&z, MOID (s), NO_TEXT, NODE (s));
+ 	    }
+ 	  else
+ 	    a68_add_mode_to_pack (&z, MOID (t), NO_TEXT, NODE (t));
+ 	}
+       PACK (*p) = z;
+     }
+   while (siga);
+ }
+ 
+ /* Make SERIES (u, v).  */
+ 
+ MOID_T *
+ a68_make_series_from_moids (MOID_T *u, MOID_T *v)
+ {
+   MOID_T *x = a68_new_moid ();
+ 
+   ATTRIBUTE (x) = SERIES_MODE;
+   a68_add_mode_to_pack (&(PACK (x)), u, NO_TEXT, NODE (u));
+   a68_add_mode_to_pack (&(PACK (x)), v, NO_TEXT, NODE (v));
+   a68_absorb_series_pack (&x);
+   DIM (x) = a68_count_pack_members (PACK (x));
+   (void) a68_register_extra_mode (&TOP_MOID (&A68_JOB), x);
+   if (DIM (x) == 1)
+     return MOID (PACK (x));
+   else
+     return x;
+ }
+ 
+ /* Absorb firmly related unions in mode.
+ 
+    For instance invalid UNION (PROC REF UNION (A, B), A, B) -> valid
+    UNION (A, B), which is used in balancing conformity clauses.  */
+ 
+ MOID_T *
+ a68_absorb_related_subsets (MOID_T * m)
+ {
+   /* For instance invalid UNION (PROC REF UNION (A, B), A, B) -> valid UNION
+      (A, B), which is used in balancing conformity clauses.  */
+   bool siga;
+ 
+   do
+     {
+       PACK_T *u = NO_PACK;
+ 
+       siga = false;
+       for (PACK_T *v = PACK (m); v != NO_PACK; FORWARD (v))
+ 	{
+ 	  MOID_T *n = a68_depref_completely (MOID (v));
+ 
+ 	  if (IS (n, UNION_SYMBOL) && a68_is_subset (n, m, SAFE_DEFLEXING))
+ 	    {
+ 	      /*  Unpack it.  */
+ 	      for (PACK_T *w = PACK (n); w != NO_PACK; FORWARD (w))
+ 		a68_add_mode_to_pack (&u, MOID (w), NO_TEXT, NODE (w));
+ 	      siga = true;
+ 	    }
+ 	  else
+ 	    a68_add_mode_to_pack (&u, MOID (v), NO_TEXT, NODE (v));
+ 	}
+       PACK (m) = a68_absorb_union_pack (u);
+     }
+   while (siga);
+   return m;
+ }
+ 
+ /* Absorb nested series and united modes recursively.  */
+ 
+ void
+ a68_absorb_series_union_pack (MOID_T **p)
+ {
+   bool siga;
+ 
+   do
+     {
+       PACK_T *z = NO_PACK;
+ 
+       siga = false;
+       for (PACK_T *t = PACK (*p); t != NO_PACK; FORWARD (t))
+ 	{
+ 	  if (MOID (t) != NO_MOID && (IS (MOID (t), SERIES_MODE) || IS (MOID (t), UNION_SYMBOL)))
+ 	    {
+ 	      siga = true;
+ 	      for (PACK_T *s = PACK (MOID (t)); s != NO_PACK; FORWARD (s))
+ 		a68_add_mode_to_pack (&z, MOID (s), NO_TEXT, NODE (s));
+ 	    }
+ 	  else
+ 	    a68_add_mode_to_pack (&z, MOID (t), NO_TEXT, NODE (t));
+ 	}
+       PACK (*p) = z;
+     }
+   while (siga);
+ }
+ 
+ /* Make united mode, from mode that is a SERIES (..).  */
+ 
+ MOID_T *
+ a68_make_united_mode (MOID_T *m)
+ {
+   if (m == NO_MOID)
+     return M_ERROR;
+   else if (ATTRIBUTE (m) != SERIES_MODE)
+     return m;
+ 
+   /* Do not unite a single UNION.  */
+   if (DIM (m) == 1 && IS (MOID (PACK (m)), UNION_SYMBOL))
+     return MOID (PACK (m));
+ 
+   /* Straighten the series.  */
+   a68_absorb_series_union_pack (&m);
+   /* Copy the series into a UNION.  */
+   MOID_T *u = a68_new_moid ();
+   ATTRIBUTE (u) = UNION_SYMBOL;
+   PACK (u) = NO_PACK;
+   for (PACK_T *w = PACK (m); w != NO_PACK; FORWARD (w))
+     a68_add_mode_to_pack (&(PACK (u)), MOID (w), NO_TEXT, NODE (m));
+ 
+   /* Absorb and contract the new UNION.  */
+   a68_absorb_series_union_pack (&u);
+   DIM (u) = a68_count_pack_members (PACK (u));
+   PACK (u) = a68_absorb_union_pack (PACK (u));
+   a68_contract_union (u);
+   DIM (u) = a68_count_pack_members (PACK (u));
+   /* A UNION of one mode is that mode itself.  */
+   if (DIM (u) == 1)
+     return MOID (PACK (u));
+   else
+     return a68_register_extra_mode (&TOP_MOID (&A68_JOB), u);
+ }
+ 
+ /* Make SOID data structure.  */
+ 
+ void
+ a68_make_soid (SOID_T *s, int sort, MOID_T *type, int attribute)
+ {
+   ATTRIBUTE (s) = attribute;
+   SORT (s) = sort;
+   MOID (s) = type;
+   CAST (s) = false;
+ }
+ 
+ /* Whether mode is not well defined.  */
+ 
+ bool
+ a68_is_mode_isnt_well (MOID_T *p)
+ {
+   if (p == NO_MOID)
+     return true;
+   else if (!A68_IF_MODE_IS_WELL (p))
+     return true;
+   else if (PACK (p) != NO_PACK)
+     {
+       for (PACK_T *q = PACK (p); q != NO_PACK; FORWARD (q))
+ 	{
+ 	  if (!A68_IF_MODE_IS_WELL (MOID (q)))
+ 	    return true;
+ 	}
+     }
+   return false;
+ }
+ 
+ /* Add SOID data to free chain.  */
+ 
+ void
+ a68_free_soid_list (SOID_T *root)
+ {
+   if (root != NO_SOID)
+     {
+       SOID_T *q = root;
+ 
+       for (; NEXT (q) != NO_SOID; FORWARD (q))
+ 	;
+       NEXT (q) = A68 (top_soid_list);
+       A68 (top_soid_list) = root;
+     }
+ }
+ 
+ /* Add SOID data structure to soid list.  */
+ 
+ void
+ a68_add_to_soid_list (SOID_T **root, NODE_T *where, SOID_T *soid)
+ {
+   if (*root != NO_SOID)
+     a68_add_to_soid_list (&(NEXT (*root)), where, soid);
+   else
+     {
+       SOID_T *new_one;
+ 
+       if (A68 (top_soid_list) == NO_SOID)
+ 	new_one = (SOID_T *) ggc_cleared_alloc<SOID_T> ();
+       else
+ 	{
+ 	  new_one = A68 (top_soid_list);
+ 	  FORWARD (A68 (top_soid_list));
+ 	}
+ 
+       a68_make_soid (new_one, SORT (soid), MOID (soid), 0);
+       NODE (new_one) = where;
+       NEXT (new_one) = NO_SOID;
+       *root = new_one;
+     }
+ }
+ 
+ /* Pack soids in moid, gather resulting moids from terminators in a clause.  */
+ 
+ MOID_T *
+ a68_pack_soids_in_moid (SOID_T *top_sl, int attribute)
+ {
+   MOID_T *x = a68_new_moid ();
+   PACK_T *t, **p;
+ 
+   ATTRIBUTE (x) = attribute;
+   DIM (x) = 0;
+   SUB (x) = NO_MOID;
+   EQUIVALENT (x) = NO_MOID;
+   SLICE (x) = NO_MOID;
+   DEFLEXED (x) = NO_MOID;
+   NAME (x) = NO_MOID;
+   NEXT (x) = NO_MOID;
+   PACK (x) = NO_PACK;
+   p = &(PACK (x));
+   for (; top_sl != NO_SOID; FORWARD (top_sl))
+     {
+       t = a68_new_pack ();
+       MOID (t) = MOID (top_sl);
+       TEXT (t) = NO_TEXT;
+       NODE (t) = NODE (top_sl);
+       NEXT (t) = NO_PACK;
+       DIM (x)++;
+       *p = t;
+       p = &NEXT (t);
+     }
+ 
+   return a68_register_extra_mode (&TOP_MOID (&A68_JOB), x);
+ }
+ 
+ /* Whether P is compatible with Q.  */
+ 
+ bool
+ a68_is_equal_modes (MOID_T *p, MOID_T *q, int deflex)
+ {
+   if (deflex == FORCE_DEFLEXING)
+     return DEFLEX (p) == DEFLEX (q);
+   else if (deflex == ALIAS_DEFLEXING)
+     {
+       if (IS (p, REF_SYMBOL) && IS (q, REF_SYMBOL))
+ 	return (p == q
+ 		|| a68_prove_moid_equivalence (p, q)
+ 		|| a68_prove_moid_equivalence (DEFLEX (p), q)
+ 		|| DEFLEX (p) == q);
+       else if (!IS (p, REF_SYMBOL) && !IS (q, REF_SYMBOL))
+ 	return (DEFLEX (p) == DEFLEX (q)
+ 		|| a68_prove_moid_equivalence (DEFLEX (p), DEFLEX (q)));
+   }
+   else if (deflex == SAFE_DEFLEXING)
+     {
+       if (!IS (p, REF_SYMBOL) && !IS (q, REF_SYMBOL))
+ 	return (DEFLEX (p) == DEFLEX (q)
+ 		|| a68_prove_moid_equivalence (DEFLEX (p), DEFLEX (q)));
+     }
+ 
+   return (p == q || a68_prove_moid_equivalence (p, q));
+ }
+ 
+ /* Whether mode is deprefable, i.e. whether it can be either deferred or
+    deprocedured.  */
+ 
+ bool
+ a68_is_deprefable (MOID_T *p)
+ {
+   if (IS_REF (p))
+     return true;
+   else
+     return (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK);
+ }
+ 
+ /* Deref or deproc the mode P once.  */
+ 
+ MOID_T *
+ a68_depref_once (MOID_T *p)
+ {
+   if (IS_REF_FLEX (p))
+     return SUB_SUB (p);
+   else if (IS_REF (p))
+     return SUB (p);
+   else if (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK)
+     return SUB (p);
+   else
+     return NO_MOID;
+ }
+ 
+ /* Depref mode completely.  */
+ 
+ MOID_T *
+ a68_depref_completely (MOID_T *p)
+ {
+   while (a68_is_deprefable (p))
+     p = a68_depref_once (p);
+   return p;
+ }
+ 
+ /* Deproc_completely.  */
+ 
+ MOID_T *
+ a68_deproc_completely (MOID_T *p)
+ {
+   while (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK)
+     p = a68_depref_once (p);
+   return p;
+ }
+ 
+ /* Depref rows.  */
+ 
+ MOID_T *
+ a68_depref_rows (MOID_T *p, MOID_T *q)
+ {
+   if (q == M_ROWS)
+     {
+       while (a68_is_deprefable (p))
+ 	p = a68_depref_once (p);
+       return p;
+     }
+   else
+     return q;
+ }
+ 
+ /* Derow mode, strip FLEX and BOUNDS.  */
+ 
+ MOID_T *
+ a68_derow (MOID_T *p)
+ {
+   if (IS_ROW (p) || IS_FLEX (p))
+     return a68_derow (SUB (p));
+   else
+     return p;
+ }
+ 
+ /* Whether rows type.  */
+ 
+ bool
+ a68_is_rows_type (MOID_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case ROW_SYMBOL:
+     case FLEX_SYMBOL:
+       return true;
+     case UNION_SYMBOL:
+       {
+ 	PACK_T *t = PACK (p);
+ 	bool siga = true;
+ 	while (t != NO_PACK && siga)
+ 	  {
+ 	    siga &= a68_is_rows_type (MOID (t));
+ 	    FORWARD (t);
+ 	  }
+ 	return siga;
+       }
+     default:
+       return false;
+     }
+ }
+ 
+ /* Whether mode is PROC (REF FILE) VOID or FORMAT.  */
+ 
+ bool
+ a68_is_proc_ref_file_void_or_format (MOID_T *p)
+ {
+   if (p == M_PROC_REF_FILE_VOID)
+     return true;
+   else if (p == M_FORMAT)
+     return true;
+   else
+     return false;
+ }
+ 
+ /* Whether mode can be transput.  */
+ 
+ bool
+ a68_is_transput_mode (MOID_T *p, char rw)
+ {
+   if (p == M_INT)
+     return true;
+   else if (p == M_SHORT_INT)
+     return true;
+   else if (p == M_SHORT_SHORT_INT)
+     return true;
+   else if (p == M_LONG_INT)
+     return true;
+   else if (p == M_LONG_LONG_INT)
+     return true;
+   else if (p == M_REAL)
+     return true;
+   else if (p == M_LONG_REAL)
+     return true;
+   else if (p == M_LONG_LONG_REAL)
+     return true;
+   else if (p == M_BOOL)
+     return true;
+   else if (p == M_CHAR)
+     return true;
+   else if (p == M_BITS)
+     return true;
+   else if (p == M_SHORT_BITS)
+     return true;
+   else if (p == M_SHORT_SHORT_BITS)
+     return true;
+   else if (p == M_LONG_BITS)
+     return true;
+   else if (p == M_LONG_LONG_BITS)
+     return true;
+   else if (p == M_COMPLEX)
+     return true;
+   else if (p == M_LONG_COMPLEX)
+     return true;
+   else if (p == M_LONG_LONG_COMPLEX)
+     return true;
+   else if (p == M_ROW_CHAR)
+     return true;
+   else if (p == M_STRING)
+     return true;
+   else if (IS (p, UNION_SYMBOL) || IS (p, STRUCT_SYMBOL))
+     {
+       for (PACK_T *q = PACK (p); q != NO_PACK; FORWARD (q))
+ 	{
+ 	  if (!(a68_is_transput_mode (MOID (q), rw)
+ 		|| a68_is_proc_ref_file_void_or_format (MOID (q))))
+ 	    return false;
+ 	}
+       return true;
+     }
+   else if (IS_FLEX (p))
+     {
+       if (SUB (p) == M_ROW_CHAR)
+ 	return true;
+       else
+ 	return (rw == 'w' ? a68_is_transput_mode (SUB (p), rw) : false);
+     }
+   else if (IS_ROW (p))
+     return (a68_is_transput_mode (SUB (p), rw)
+ 	    || a68_is_proc_ref_file_void_or_format (SUB (p)));
+   else
+     return false;
+ }
+ 
+ /* Whether mode is printable.  */
+ 
+ bool
+ a68_is_printable_mode (MOID_T *p)
+ {
+   if (a68_is_proc_ref_file_void_or_format (p))
+     return true;
+   else
+     return a68_is_transput_mode (p, 'w');
+ }
+ 
+ /* Whether mode is readable.  */
+ 
+ bool
+ a68_is_readable_mode (MOID_T *p)
+ {
+   if (a68_is_proc_ref_file_void_or_format (p))
+     return true;
+   else if (IS_REF (p))
+     return a68_is_transput_mode (SUB (p), 'r');
+   else if (IS_UNION (p))
+     {
+       for (PACK_T *q = PACK (p); q != NO_PACK; FORWARD (q))
+ 	{
+ 	  if (!IS_REF (MOID (q)))
+ 	    return false;
+ 	  else if (!a68_is_transput_mode (SUB (MOID (q)), 'r'))
+ 	    return false;
+ 	}
+       return true;
+     }
+   else
+     return false;
+ }
+ 
+ /* Whether name struct.  */
+ 
+ bool
+ a68_is_name_struct (MOID_T *p)
+ {
+   return (NAME (p) != NO_MOID ? IS (DEFLEX (SUB (p)), STRUCT_SYMBOL) : false);
+ }
+ 
+ /* Yield mode to unite to.  */
+ 
+ MOID_T *
+ a68_unites_to (MOID_T *m, MOID_T *u)
+ {
+   /* Uniting U (m).  */
+   MOID_T *v = NO_MOID;
+ 
+   if (u == M_SIMPLIN || u == M_SIMPLOUT)
+     return m;
+ 
+   for (PACK_T *p = PACK (u); p != NO_PACK; FORWARD (p))
+     {
+       /* Prefer []->[] over []->FLEX [].  */
+       if (m == MOID (p))
+ 	v = MOID (p);
+       else if (v == NO_MOID && DEFLEX (m) == DEFLEX (MOID (p)))
+ 	v = MOID (p);
+     }
+   return v;
+ }
+ 
+ /* Whether moid in pack.  */
+ 
+ bool
+ a68_is_moid_in_pack (MOID_T *u, PACK_T *v, int deflex)
+ {
+   for (; v != NO_PACK; FORWARD (v))
+     {
+       if (a68_is_equal_modes (u, MOID (v), deflex))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Whether a rows type in pack.  */
+ 
+ bool
+ a68_is_rows_in_pack (PACK_T *v)
+ {
+   for (; v != NO_PACK; FORWARD (v))
+     {
+       if (a68_is_rows_type (MOID (v)))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Whether P is a subset of Q.  */
+ 
+ bool
+ a68_is_subset (MOID_T *p, MOID_T *q, int deflex)
+ {
+   bool j =true;
+ 
+   for (PACK_T *u = PACK (p); u != NO_PACK && j; FORWARD (u))
+     j = (j && a68_is_moid_in_pack (MOID (u), PACK (q), deflex));
+ 
+   return j;
+ }
+ 
+ /* Whether P can be united to UNION Q.  */
+ 
+ bool
+ a68_is_unitable (MOID_T *p, MOID_T *q, int deflex)
+ {
+   if (IS (q, UNION_SYMBOL))
+     {
+       if (IS (p, UNION_SYMBOL))
+ 	return a68_is_subset (p, q, deflex);
+       else if (p == M_ROWS)
+ 	return a68_is_rows_in_pack (PACK (q));
+       else
+ 	return a68_is_moid_in_pack (p, PACK (q), deflex);
+   }
+ 
+   return false;
+ }
+ 
+ /* Whether all or some components of U can be firmly coerced to a component
+    mode of V..  */
+ 
+ void
+ a68_investigate_firm_relations (PACK_T *u, PACK_T *v, bool *all, bool *some)
+ {
+   *all = true;
+   *some = true;
+   for (; v != NO_PACK; FORWARD (v))
+     {
+       bool k = false;
+ 
+       for (PACK_T *w = u; w != NO_PACK; FORWARD (w))
+ 	k |= a68_is_coercible (MOID (w), MOID (v), FIRM, FORCE_DEFLEXING);
+       *some |= k;
+       *all &= k;
+     }
+ }
+ 
+ /* Whether there is a soft path from P to Q.  */
+ 
+ bool
+ a68_is_softly_coercible (MOID_T *p, MOID_T *q, int deflex)
+ {
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK)
+     return a68_is_softly_coercible (SUB (p), q, deflex);
+   else
+     return false;
+ }
+ 
+ /* Whether there is a weak path from P to Q.  */
+ 
+ bool
+ a68_is_weakly_coercible (MOID_T * p, MOID_T * q, int deflex)
+ {
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (a68_is_deprefable (p))
+     return a68_is_weakly_coercible (a68_depref_once (p), q, deflex);
+   else
+     return false;
+ }
+ 
+ /* Whether there is a meek path from P to Q.  */
+ 
+ bool
+ a68_is_meekly_coercible (MOID_T *p, MOID_T *q, int deflex)
+ {
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (a68_is_deprefable (p))
+     return a68_is_meekly_coercible (a68_depref_once (p), q, deflex);
+   else
+     return false;
+ }
+ 
+ /* Whether there is a firm path from P to Q.  */
+ 
+ bool
+ a68_is_firmly_coercible (MOID_T *p, MOID_T *q, int deflex)
+ {
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (q == M_ROWS && a68_is_rows_type (p))
+     return true;
+   else if (a68_is_unitable (p, q, deflex))
+     return true;
+   else if (a68_is_deprefable (p))
+     return a68_is_firmly_coercible (a68_depref_once (p), q, deflex);
+   else
+     return false;
+ }
+ 
+ /* Whether firm.  */
+ 
+ bool
+ a68_is_firm (MOID_T *p, MOID_T *q)
+ {
+   return (a68_is_firmly_coercible (p, q, SAFE_DEFLEXING)
+ 	  || a68_is_firmly_coercible (q, p, SAFE_DEFLEXING));
+ }
+ 
+ /* Whether P widens to Q.
+ 
+    This function returns:
+ 
+    The destination mode Q if P, or
+    Some other mode which is an intermediate step from P to Q, or
+    NO_MOID if P cannot be widened to Q.
+ 
+    This means that if P is known to widen to Q (a68_is_widenable (P,Q) return
+    true) this function can be invoked repeteadly and it will eventually return
+    Q.  */
+ 
+ MOID_T *
+ a68_widens_to (MOID_T *p, MOID_T *q)
+ {
+   if (p == M_INT)
+     {
+       if (q == M_REAL || q == M_COMPLEX)
+ 	{
+ 	  return M_REAL;
+ 	}
+       else
+ 	{
+ 	  return NO_MOID;
+ 	}
+     }
+   else if (p == M_LONG_INT)
+     {
+       if (q == M_LONG_REAL)
+ 	{
+ 	  return M_LONG_REAL;
+ 	}
+       else
+ 	{
+ 	  return NO_MOID;
+ 	}
+     }
+   else if (p == M_LONG_LONG_INT)
+     {
+       if (q == M_LONG_LONG_REAL || q == M_LONG_LONG_COMPLEX)
+ 	  return M_LONG_LONG_REAL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_REAL)
+     {
+       if (q == M_COMPLEX)
+ 	{
+ 	  return M_COMPLEX;
+ 	}
+       else
+ 	{
+ 	  return NO_MOID;
+ 	}
+     }
+   else if (p == M_LONG_REAL)
+     {
+       if (q == M_LONG_COMPLEX)
+ 	return M_LONG_COMPLEX;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_LONG_LONG_REAL)
+     {
+       if (q == M_LONG_LONG_COMPLEX)
+ 	return M_LONG_LONG_COMPLEX;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_BITS)
+     {
+       if (q == M_ROW_BOOL)
+ 	return M_ROW_BOOL;
+       else if (q == M_FLEX_ROW_BOOL)
+ 	return M_FLEX_ROW_BOOL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_SHORT_BITS)
+     {
+       if (q == M_ROW_BOOL)
+ 	return M_ROW_BOOL;
+       else if (q == M_FLEX_ROW_BOOL)
+ 	return M_FLEX_ROW_BOOL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_SHORT_SHORT_BITS)
+     {
+       if (q == M_ROW_BOOL)
+ 	return M_ROW_BOOL;
+       else if (q == M_FLEX_ROW_BOOL)
+ 	return M_FLEX_ROW_BOOL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_LONG_BITS)
+     {
+       if (q == M_ROW_BOOL)
+ 	return M_ROW_BOOL;
+       else if (q == M_FLEX_ROW_BOOL)
+ 	return M_FLEX_ROW_BOOL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_LONG_LONG_BITS)
+     {
+       if (q == M_ROW_BOOL)
+ 	return M_ROW_BOOL;
+       else if (q == M_FLEX_ROW_BOOL)
+ 	return M_FLEX_ROW_BOOL;
+       else
+ 	return NO_MOID;
+     }
+   else if (p == M_BYTES && q == M_ROW_CHAR)
+     return M_ROW_CHAR;
+   else if (p == M_LONG_BYTES && q == M_ROW_CHAR)
+     return M_ROW_CHAR;
+   else if (p == M_BYTES && q == M_FLEX_ROW_CHAR)
+     return M_FLEX_ROW_CHAR;
+   else if (p == M_LONG_BYTES && q == M_FLEX_ROW_CHAR)
+     return M_FLEX_ROW_CHAR;
+   else
+     return NO_MOID;
+ }
+ 
+ /* Whether P widens to Q.  */
+ 
+ bool
+ a68_is_widenable (MOID_T *p, MOID_T *q)
+ {
+   MOID_T *z = a68_widens_to (p, q);
+ 
+   if (z != NO_MOID)
+     return (z == q ? true : a68_is_widenable (z, q));
+   else
+     return false;
+ }
+ 
+ /* Whether P is a REF ROW.  */
+ 
+ bool
+ a68_is_ref_row (MOID_T *p)
+ {
+   return (NAME (p) != NO_MOID ? IS_ROW (DEFLEX (SUB (p))) : false);
+ }
+ 
+ /* Whether strong name.  */
+ 
+ bool
+ a68_is_strong_name (MOID_T *p, MOID_T *q)
+ {
+   if (p == q)
+     return true;
+   else if (a68_is_ref_row (q))
+     return a68_is_strong_name (p, NAME (q));
+   else
+     return false;
+ }
+ 
+ /* Whether strong slice. */
+ 
+ bool
+ a68_is_strong_slice (MOID_T *p, MOID_T *q)
+ {
+   if (p == q || a68_is_widenable (p, q))
+     return true;
+   else if (SLICE (q) != NO_MOID)
+     return a68_is_strong_slice (p, SLICE (q));
+   else if (IS_FLEX (q))
+     return a68_is_strong_slice (p, SUB (q));
+   else if (a68_is_ref_row (q))
+     return a68_is_strong_name (p, q);
+   else
+     return false;
+ }
+ 
+ /* Whether strongly coercible.  */
+ 
+ bool
+ a68_is_strongly_coercible (MOID_T *p, MOID_T *q, int deflex)
+ {
+   /* Keep this sequence of statements.  */
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (q == M_VOID)
+     return true;
+   else if ((q == M_SIMPLIN || q == M_ROW_SIMPLIN) && a68_is_readable_mode (p))
+     return true;
+   else if (q == M_ROWS && a68_is_rows_type (p))
+     return true;
+   else if (a68_is_unitable (p, a68_derow (q), deflex))
+     return true;
+ 
+   if (a68_is_ref_row (q) && a68_is_strong_name (p, q))
+     return true;
+   else if (SLICE (q) != NO_MOID && a68_is_strong_slice (p, q))
+     return true;
+   else if (IS_FLEX (q) && a68_is_strong_slice (p, q))
+     return true;
+   else if (a68_is_widenable (p, q))
+     return true;
+   else if (a68_is_deprefable (p))
+     return a68_is_strongly_coercible (a68_depref_once (p), q, deflex);
+   else if (q == M_SIMPLOUT || q == M_ROW_SIMPLOUT)
+     return a68_is_printable_mode (p);
+   else
+     return false;
+ }
+ 
+ /* Basic coercions.  */
+ 
+ bool
+ a68_basic_coercions (MOID_T *p, MOID_T *q, int c, int deflex)
+ {
+   if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (c == NO_SORT)
+     return (p == q);
+   else if (c == SOFT)
+     return a68_is_softly_coercible (p, q, deflex);
+   else if (c == WEAK)
+     return a68_is_weakly_coercible (p, q, deflex);
+   else if (c == MEEK)
+     return a68_is_meekly_coercible (p, q, deflex);
+   else if (c == FIRM)
+     return a68_is_firmly_coercible (p, q, deflex);
+   else if (c == STRONG)
+     return a68_is_strongly_coercible (p, q, deflex);
+   else
+     return false;
+ }
+ 
+ /* Whether coercible stowed.  */
+ 
+ bool
+ a68_is_coercible_stowed (MOID_T *p, MOID_T *q, int c, int deflex)
+ {
+   if (c != STRONG)
+     /* Such construct is always in a strong position, is it not?  */
+     return false;
+   else if (q == M_VOID)
+     return true;
+   else if (IS_FLEX (q))
+     {
+       bool j = true;
+ 
+       for (PACK_T *u = PACK (p); u != NO_PACK && j; FORWARD (u))
+ 	j &= a68_is_coercible (MOID (u), SLICE (SUB (q)), c, deflex);
+       return j;
+     }
+   else if (IS_ROW (q))
+     {
+       bool j = true;
+ 
+       for (PACK_T *u = PACK (p); u != NO_PACK && j; FORWARD (u))
+ 	j &= a68_is_coercible (MOID (u), SLICE (q), c, deflex);
+       return j;
+     }
+   else if (IS (q, PROC_SYMBOL) || IS (q, STRUCT_SYMBOL))
+     {
+       if (DIM (p) != DIM (q))
+ 	return false;
+       else
+ 	{
+ 	  PACK_T *u = PACK (p), *v = PACK (q);
+ 	  bool j = true;
+ 
+ 	  while (u != NO_PACK && v != NO_PACK && j)
+ 	    {
+ 	      j &= a68_is_coercible (MOID (u), MOID (v), c, deflex);
+ 	      FORWARD (u);
+ 	      FORWARD (v);
+ 	    }
+ 	  return j;
+ 	}
+     }
+   else
+     return false;
+ }
+ 
+ /* Whether coercible series.  */
+ 
+ bool
+ a68_is_coercible_series (MOID_T *p, MOID_T *q, int c, int deflex)
+ {
+   if (c == NO_SORT)
+     return false;
+   else if (p == NO_MOID || q == NO_MOID)
+     return false;
+   else if (IS (p, SERIES_MODE) && PACK (p) == NO_PACK)
+     return false;
+   else if (IS (q, SERIES_MODE) && PACK (q) == NO_PACK)
+     return false;
+   else if (PACK (p) == NO_PACK)
+     return a68_is_coercible (p, q, c, deflex);
+   else
+     {
+       bool j = true;
+ 
+       for (PACK_T *u = PACK (p); u != NO_PACK && j; FORWARD (u))
+ 	{
+ 	  if (MOID (u) != NO_MOID)
+ 	    j &= a68_is_coercible (MOID (u), q, c, deflex);
+ 	}
+     return j;
+     }
+ }
+ 
+ /* Whether P can be coerced to Q in a C context.
+ 
+    If P is a STOWED modes serie (A, B, ...) and Q is a routine mode like `proc
+    (X, Y, ...)' then this routine determines whether A can be coerced to X, B
+    to Y, etc.  */
+ 
+ bool
+ a68_is_coercible (MOID_T *p, MOID_T *q, int c, int deflex)
+ {
+   if (a68_is_mode_isnt_well (p) || a68_is_mode_isnt_well (q))
+     return true;
+   else if (a68_is_equal_modes (p, q, deflex))
+     return true;
+   else if (p == M_HIP)
+     return true;
+   else if (IS (p, STOWED_MODE))
+     return a68_is_coercible_stowed (p, q, c, deflex);
+   else if (IS (p, SERIES_MODE))
+     return a68_is_coercible_series (p, q, c, deflex);
+   else if (p == M_VACUUM && IS_ROW (DEFLEX (q)))
+     return true;
+   else
+     return a68_basic_coercions (p, q, c, deflex);
+ }
+ 
+ /* Whether coercible in context.  */
+ 
+ bool
+ a68_is_coercible_in_context (SOID_T *p, SOID_T *q, int deflex)
+ {
+   if (SORT (p) != SORT (q))
+     return false;
+   else if (MOID (p) == MOID (q))
+     return true;
+   else
+     return a68_is_coercible (MOID (p), MOID (q), SORT (q), deflex);
+ }
+ 
+ /* Whether list Y is balanced.  */
+ 
+ bool
+ a68_is_balanced (NODE_T *n, SOID_T *y, int sort)
+ {
+   if (sort == STRONG)
+     return true;
+   else
+     {
+       bool k = false;
+ 
+       for (; y != NO_SOID && !k; FORWARD (y))
+ 	k = (!IS (MOID (y), STOWED_MODE));
+ 
+       if (k == false)
+ 	a68_error (n, "construct has no unique mode");
+       return k;
+     }
+ }
+ 
+ /* A moid from M to which all other members can be coerced.
+    If no fulcrum of the balance is found, return NO_MOID.  */
+ 
+ MOID_T *
+ a68_get_balanced_mode_or_no_mode (MOID_T *m, int sort, bool return_depreffed, int deflex)
+ {
+   MOID_T *common_moid = NO_MOID;
+ 
+   if (m != NO_MOID && !a68_is_mode_isnt_well (m) && IS (m, UNION_SYMBOL))
+     {
+       int depref_level;
+       bool siga = true;
+       /* Test for increasing depreffing.  */
+       for (depref_level = 0; siga; depref_level++)
+ 	{
+ 	  siga = false;
+ 	  /* Test the whole pack.  */
+ 	  for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	    {
+ 	      /* HIPs are not eligible of course.  */
+ 	      if (MOID (p) != M_HIP)
+ 		{
+ 		  MOID_T *candidate = MOID (p);
+ 		  int k;
+ 		  /* Depref as far as allowed.  */
+ 		  for (k = depref_level; k > 0 && a68_is_deprefable (candidate); k--)
+ 		    candidate = a68_depref_once (candidate);
+ 		  /* Only need testing if all allowed deprefs succeeded.  */
+ 		  if (k == 0)
+ 		    {
+ 		      MOID_T *to = (return_depreffed ? a68_depref_completely (candidate) : candidate);
+ 		      bool all_coercible = true;
+ 
+ 		      siga = true;
+ 		      for (PACK_T *q = PACK (m); q != NO_PACK && all_coercible; FORWARD (q))
+ 			{
+ 			  MOID_T *from = MOID (q);
+ 			  if (p != q && from != to)
+ 			    all_coercible &= a68_is_coercible (from, to, sort, deflex);
+ 			}
+ 		      /* If the pack is coercible to the candidate, we mark the
+ 			 candidate.  We continue searching for longest series
+ 			 of REF REF PROC REF.  */
+ 		      if (all_coercible)
+ 			{
+ 			  MOID_T *mark = (return_depreffed ? MOID (p) : candidate);
+ 
+ 			  if (common_moid == NO_MOID)
+ 			    common_moid = mark;
+ 			  else if (IS_FLEX (candidate) && DEFLEX (candidate) == common_moid)
+ 			    /* We prefer FLEX.  */
+ 			    common_moid = mark;
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   return common_moid;
+ }
+ 
+ /* A moid from M to which all other members can be coerced.
+    If no fulcrum of the balance is found, return M.  */
+ 
+ MOID_T *
+ a68_get_balanced_mode (MOID_T *m, int sort, bool return_depreffed, int deflex)
+ {
+   MOID_T *common_moid
+     = a68_get_balanced_mode_or_no_mode (m, sort, return_depreffed, deflex);
+   return common_moid == NO_MOID ? m : common_moid;
+ }
+ 
+ /* Whether we can search a common mode from a clause or not.  */
+ 
+ bool
+ a68_clause_allows_balancing (int att)
+ {
+   switch (att)
+     {
+     case CLOSED_CLAUSE:
+     case CONDITIONAL_CLAUSE:
+     case CASE_CLAUSE:
+     case SERIAL_CLAUSE:
+     case CONFORMITY_CLAUSE:
+       return true;
+     }
+   return false;
+ }
+ 
+ /* A unique mode from Z.  */
+ 
+ MOID_T *
+ a68_determine_unique_mode (SOID_T *z, int deflex)
+ {
+   if (z == NO_SOID)
+     return NO_MOID;
+   else
+     {
+       MOID_T *x = MOID (z);
+ 
+       if (a68_is_mode_isnt_well (x))
+ 	return M_ERROR;
+ 
+       /* If X is a series containing one union, a68_make_united_mode will
+ 	 return that union (because 'union (union (...))' is the same than
+ 	 'union (...)') and then a68_get_balanced_mode below will try to
+ 	 balance the modes in that union.  Not what we want.  */
+       if (ATTRIBUTE (x) == SERIES_MODE
+ 	  && DIM (x) == 1
+ 	  && IS (MOID (PACK (x)), UNION_SYMBOL))
+ 	return MOID (PACK (x));
+ 
+       x = a68_make_united_mode (x);
+       if (a68_clause_allows_balancing (ATTRIBUTE (z)))
+ 	return a68_get_balanced_mode (x, STRONG, A68_NO_DEPREF, deflex);
+       else
+ 	return x;
+     }
+ }
+ 
+ /* Whether the given mode M is a valid mode for a C formal hole.  See
+    metaproduction rule 561B in ga68.vw.  */
+ 
+ bool
+ a68_is_c_mode (MOID_T *m, int level)
+ {
+   if (m == M_VOID || m == M_BOOL || m == M_CHAR)
+     return true;
+   else if (IS_INTEGRAL (m))
+     return true;
+   else if (IS_BITS (m))
+     return true;
+   else if (IS_REAL (m))
+     return true;
+   else if (IS_REF (m))
+     return a68_is_c_mode (SUB (m), level + 1);
+   else if (IS (m, PROC_SYMBOL))
+     {
+       bool yielded_mode_valid =
+ 	((level == 0
+ 	  && (SUB (m) == M_STRING
+ 	      || (IS_REF (SUB (m)) && SUB (SUB (m)) == M_STRING)))
+ 	 || a68_is_c_mode (SUB (m), level + 1));
+       bool params_valid = true;
+ 
+       for (PACK_T *z = PACK (m); z != NO_PACK; FORWARD (z))
+ 	{
+ 	  if (level == 0 && MOID (z) == M_STRING)
+ 	    ;
+ 	  else
+ 	    params_valid &= a68_is_c_mode (MOID (z), level + 1);
+ 	}
+ 
+       return yielded_mode_valid && params_valid;
+     }
+   else if (IS_STRUCT (m))
+     {
+       bool fields_valid = true;
+ 
+       for (PACK_T *z = PACK (m); z != NO_PACK; FORWARD (z))
+ 	fields_valid &= a68_is_c_mode (MOID (z), level + 1);
+       return fields_valid;
+     }
+ 
+   return false;
+ }
+ 
+ /* Insert coercion A in the tree.  */
+ 
+ void
+ a68_make_coercion (NODE_T *l, enum a68_attribute a, MOID_T *m)
+ {
+   a68_make_sub (l, l, a);
+   MOID (l) = a68_depref_rows (MOID (l), m);
+ }
+ 
+ /* Make widening coercion.  */
+ 
+ static void
+ make_widening_coercion (NODE_T *n, MOID_T *p, MOID_T *q)
+ {
+   MOID_T *z = a68_widens_to (p, q);
+ 
+   a68_make_coercion (n, WIDENING, z);
+   if (z != q)
+     make_widening_coercion (n, z, q);
+ }
+ 
+ /* Make ref rowing coercion.  */
+ 
+ void
+ a68_make_ref_rowing_coercion (NODE_T *n, MOID_T *p, MOID_T *q)
+ {
+   if (DEFLEX (p) != DEFLEX (q))
+     {
+       if (a68_is_widenable (p, q))
+ 	make_widening_coercion (n, p, q);
+       else if (a68_is_ref_row (q))
+ 	{
+ 	  a68_make_ref_rowing_coercion (n, p, NAME (q));
+ 	  a68_make_coercion (n, ROWING, q);
+ 	}
+     }
+ }
+ 
+ /* Make rowing coercion.  */
+ 
+ void
+ a68_make_rowing_coercion (NODE_T *n, MOID_T *p, MOID_T *q)
+ {
+   if (DEFLEX (p) != DEFLEX (q))
+     {
+       if (a68_is_widenable (p, q))
+ 	make_widening_coercion (n, p, q);
+       else if (SLICE (q) != NO_MOID)
+ 	{
+ 	  a68_make_rowing_coercion (n, p, SLICE (q));
+ 	  a68_make_coercion (n, ROWING, q);
+ 	}
+       else if (IS_FLEX (q))
+ 	a68_make_rowing_coercion (n, p, SUB (q));
+       else if (a68_is_ref_row (q))
+ 	a68_make_ref_rowing_coercion (n, p, q);
+     }
+ }
+ 
+ /* Make uniting coercion.  */
+ 
+ void
+ a68_make_uniting_coercion (NODE_T *n, MOID_T *q)
+ {
+   a68_make_coercion (n, UNITING, a68_derow (q));
+   if (IS_ROW (q) || IS_FLEX (q))
+     a68_make_rowing_coercion (n, a68_derow (q), q);
+ }
+ 
+ /* Make depreffing coercion to coerce node N from mode P to mode Q in a strong
+    context.  */
+ 
+ void
+ a68_make_depreffing_coercion (NODE_T *n, MOID_T *p, MOID_T *q)
+ {
+   if (DEFLEX (p) == DEFLEX (q))
+     return;
+   else if (q == M_SIMPLOUT && a68_is_printable_mode (p))
+     a68_make_coercion (n, UNITING, q);
+   else if (q == M_ROW_SIMPLOUT && a68_is_printable_mode (p))
+     {
+       a68_make_coercion (n, UNITING, M_SIMPLOUT);
+       a68_make_coercion (n, ROWING, M_ROW_SIMPLOUT);
+     }
+   else if (q == M_SIMPLIN && a68_is_readable_mode (p))
+     a68_make_coercion (n, UNITING, q);
+   else if (q == M_ROW_SIMPLIN && a68_is_readable_mode (p))
+     {
+       a68_make_coercion (n, UNITING, M_SIMPLIN);
+       a68_make_coercion (n, ROWING, M_ROW_SIMPLIN);
+     }
+   else if (q == M_ROWS && a68_is_rows_type (p))
+     {
+       a68_make_coercion (n, UNITING, M_ROWS);
+       MOID (n) = M_ROWS;
+     }
+   else if (a68_is_widenable (p, q))
+     make_widening_coercion (n, p, q);
+   else if (a68_is_unitable (p, a68_derow (q), SAFE_DEFLEXING))
+     a68_make_uniting_coercion (n, q);
+   else if (a68_is_ref_row (q) && a68_is_strong_name (p, q))
+     a68_make_ref_rowing_coercion (n, p, q);
+   else if (SLICE (q) != NO_MOID && a68_is_strong_slice (p, q))
+     a68_make_rowing_coercion (n, p, q);
+   else if (IS_FLEX (q) && a68_is_strong_slice (p, q))
+     a68_make_rowing_coercion (n, p, q);
+   else if (IS_REF (p))
+     {
+       MOID_T *r = a68_depref_once (p);
+       a68_make_coercion (n, DEREFERENCING, r);
+       a68_make_depreffing_coercion (n, r, q);
+     }
+   else if (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK)
+     {
+       MOID_T *r = SUB (p);
+ 
+       a68_make_coercion (n, DEPROCEDURING, r);
+       a68_make_depreffing_coercion (n, r, q);
+     }
+   else if (p != q)
+     a68_cannot_coerce (n, p, q, NO_SORT, SKIP_DEFLEXING, 0);
+ }
+ 
+ /* Whether p is a nonproc mode (that is voided directly).  */
+ 
+ bool
+ a68_is_nonproc (MOID_T *p)
+ {
+   if (IS (p, PROC_SYMBOL) && PACK (p) == NO_PACK)
+     return false;
+   else if (IS_REF (p))
+     return a68_is_nonproc (SUB (p));
+   else
+     return true;
+ }
+ 
+ /* Voiden in an appropriate way.  */
+ 
+ void
+ a68_make_void (NODE_T *p, MOID_T *q)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case ASSIGNATION:
+     case IDENTITY_RELATION:
+     case GENERATOR:
+     case CAST:
+     case DENOTATION:
+       a68_make_coercion (p, VOIDING, M_VOID);
+       return;
+     default:
+       break;
+     }
+ 
+   /* MORFs are an involved case.  */
+   switch (ATTRIBUTE (p))
+     {
+     case SELECTION:
+     case SLICE:
+     case ROUTINE_TEXT:
+     case FORMULA:
+     case CALL:
+     case IDENTIFIER:
+       /* A nonproc moid value is eliminated directly.  */
+       if (a68_is_nonproc (q))
+ 	{
+ 	  a68_make_coercion (p, VOIDING, M_VOID);
+ 	  return;
+ 	}
+       else
+ 	{
+ 	  /* Descend the chain of e.g. REF PROC .. until a nonproc moid
+ 	     remains.  */
+ 	  MOID_T *z = q;
+ 
+ 	  while (!a68_is_nonproc (z))
+ 	    {
+ 	      if (IS_REF (z))
+ 		a68_make_coercion (p, DEREFERENCING, SUB (z));
+ 	      if (IS (z, PROC_SYMBOL) && NODE_PACK (p) == NO_PACK)
+ 		a68_make_coercion (p, DEPROCEDURING, SUB (z));
+ 	      z = SUB (z);
+ 	    }
+ 	  if (z != M_VOID)
+ 	    a68_make_coercion (p, VOIDING, M_VOID);
+ 	  return;
+ 	}
+     default:
+       break;
+     }
+ 
+   /* All other is voided straight away.  */
+   a68_make_coercion (p, VOIDING, M_VOID);
+ }
+ 
+ /* Make strong coercion of node N from mode P to mode Q.  */
+ 
+ void
+ a68_make_strong (NODE_T *n, MOID_T *p, MOID_T *q)
+ {
+   if (q == M_VOID && p != M_VOID)
+     a68_make_void (n, p);
+   else
+     a68_make_depreffing_coercion (n, p, q);
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-moids-sorting.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-sorting.cc
*** gcc-15.2.0/gcc/algol68/a68-moids-sorting.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-sorting.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,187 ----
+ /* MOID sorting routines.
+    Copyright (C) 2026 James Bohl.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /*
+  * Routines for ordering modes.
+  */
+ 
+ /* Forward references.  */
+ 
+ static int mode_ordering (MOID_T *a,MOID_T *b);
+ static PACK_T * sort_union_pack (PACK_T *u);
+ 
+ /* Returns a negative value if 'a' should be ordered after 'b'.
+    Returns a positive value if 'a' should be ordered before 'b'.
+    Returns zero if 'a' and 'b' are equivalent.  */
+ 
+ static int
+ packs_ordering (PACK_T *a, PACK_T *b, bool compare_names = true)
+ {
+   for (; a != NO_PACK && b != NO_PACK; FORWARD (a), FORWARD (b))
+     {
+       int order = mode_ordering (MOID (a), MOID (b));
+       if (order != 0)
+ 	return order;
+       if (compare_names)
+ 	{
+ 	  if (TEXT (a) != TEXT (b))
+ 	    {
+ 	      if (TEXT (a) == NO_TEXT)
+ 		return 1;
+ 	      if (TEXT (b) == NO_TEXT)
+ 		return -1;
+ 	      return -strcmp (TEXT (a), TEXT (b));
+ 	    }
+ 	}
+     }
+   return 0;
+ }
+ 
+ /* Returns a negative value if 'a' should be ordered after 'b'.
+    Returns a positive value if 'a' should be ordered before 'b'.
+    Returns zero if 'a' and 'b' are equivalent.  */
+ 
+ static int
+ mode_ordering (MOID_T *a, MOID_T *b)
+ {
+   if (a == b)
+     return 0;
+   int r = ATTRIBUTE (a) - ATTRIBUTE (b);
+   if (r != 0)
+     return r;
+   r = DIM (a) - DIM (b);
+   if (r != 0)
+     return r;
+   if (IS (a, STANDARD))
+     return strcmp (NSYMBOL (NODE (a)), NSYMBOL (NODE (b)));
+   else if (EQUIVALENT (a) == b || EQUIVALENT (b) == a)
+     return 0;
+   else if (a68_is_postulated_pair (A68 (top_postulate), a, b)
+ 	    || a68_is_postulated_pair (A68 (top_postulate), b, a))
+     return 0;
+   else if (IS (a, INDICANT))
+     {
+       if (NODE (a) == NO_NODE)
+        return 1;
+       if (NODE (b) == NO_NODE)
+        return -1;
+       if (NODE (a) == NODE (b))
+        return 0;
+       return strcmp (NSYMBOL (NODE (a)), NSYMBOL (NODE (b)));
+     }
+   else if (IS (a, REF_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, ROW_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, FLEX_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, STRUCT_SYMBOL))
+     {
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       r = packs_ordering (PACK (a), PACK (b));
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return r;
+     }
+   else if (IS (a, UNION_SYMBOL))
+     {
+       PACK (a) = sort_union_pack (PACK (a));
+       PACK (b) = sort_union_pack (PACK (b));
+       return packs_ordering (PACK (a), PACK (b), false);
+     }
+   else if (IS (a, PROC_SYMBOL))
+     {
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       r = mode_ordering (SUB (a), SUB (b));
+       if (r == 0)
+ 	r = packs_ordering (PACK (a), PACK (b), false);
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return r;
+     }
+   else if (IS (a, SERIES_MODE) || IS (a, STOWED_MODE))
+     return packs_ordering (PACK (a), PACK (b), false);
+   return 0;
+ }
+ 
+ /* Add a moid to a sorted pack, maybe with a (field) name.  */
+ 
+ static void
+ add_mode_to_pack_sorted (PACK_T **p, MOID_T *m, const char *text, NODE_T *node)
+ {
+   PACK_T *z = a68_new_pack ();
+ 
+   MOID (z) = m;
+   TEXT (z) = text;
+   NODE (z) = node;
+ 
+   PACK_T *next = (*p);
+   PACK_T *previous = NO_PACK;
+   while (next != NO_PACK)
+     {
+       int order = mode_ordering (m,MOID (next));
+       if (order > 0)
+ 	break;
+       previous = next;
+       FORWARD (next);
+     }
+   NEXT (z) = next;
+   PREVIOUS (z) = previous;
+ 
+   if (previous == NO_PACK)
+     *p = z;
+   else
+     NEXT (previous) = z;
+ 
+   if (next != NO_PACK)
+     PREVIOUS (next) = z;
+ }
+ 
+ /* Sort modes in a UNION pack.  */
+ 
+ static PACK_T *
+ sort_union_pack (PACK_T *u)
+ {
+   PACK_T *z = NO_PACK;
+   for (PACK_T *t = u; t != NO_PACK; FORWARD (t))
+     {
+       (void) add_mode_to_pack_sorted (&z, MOID (t), NO_TEXT, NODE (t));
+     }
+   return z;
+ }
+ 
+ /* Sort modes in UNION packs.  */
+ 
+ void
+ a68_sort_union_packs (MOID_T *m)
+ {
+   for (; m != NO_MOID; FORWARD (m))
+     {
+       if (IS (m, UNION_SYMBOL))
+ 	PACK (m) = sort_union_pack (PACK (m));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-moids-to-string.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-to-string.cc
*** gcc-15.2.0/gcc/algol68/a68-moids-to-string.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-moids-to-string.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,417 ----
+ /* Pretty-print a MOID.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /*
+  * A pretty printer for moids.
+  *
+  * For example "PROC (REF STRUCT (REF SELF, UNION (INT, VOID))) REF SELF"
+  * for a procedure yielding a pointer to an object of its own mode.
+  */
+ 
+ static void moid_to_string_2 (char *, MOID_T *, size_t *, NODE_T *,
+ 			      bool indicant_value);
+ 
+ /* Add string to MOID text.  */
+ 
+ static void
+ add_to_moid_text (char *dst, const char *str, size_t *w)
+ {
+   a68_bufcat (dst, str, BUFFER_SIZE);
+   (*w) -= strlen (str);
+ }
+ 
+ /* Find a tag, searching symbol tables towards the root.  */
+ 
+ static TAG_T *
+ find_indicant_global (TABLE_T * table, MOID_T * mode)
+ {
+   if (table != NO_TABLE)
+     {
+       for (TAG_T *s = INDICANTS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (MOID (s) == mode)
+ 	    return s;
+ 	}
+       return find_indicant_global (PREVIOUS (table), mode);
+     }
+   else
+     return NO_TAG;
+ }
+ 
+ /* Pack to string.  */
+ 
+ static void
+ pack_to_string (char *b, PACK_T *p, size_t *w, bool text, NODE_T *idf,
+ 		bool indicant_value)
+ {
+   for (; p != NO_PACK; FORWARD (p))
+     {
+       moid_to_string_2 (b, MOID (p), w, idf, indicant_value);
+       if (text)
+ 	{
+ 	  if (TEXT (p) != NO_TEXT)
+ 	    {
+ 	      add_to_moid_text (b, " ", w);
+ 	      add_to_moid_text (b, TEXT (p), w);
+ 	    }
+ 	}
+       if (p != NO_PACK && NEXT (p) != NO_PACK)
+ 	add_to_moid_text (b, ", ", w);
+     }
+ }
+ 
+ /* Moid to string 2.  */
+ 
+ static void moid_to_string_2 (char *b, MOID_T *n, size_t *w, NODE_T *idf,
+ 			      bool indicant_value)
+ {
+   bool supper_stropping = (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING);
+   const char *strop_self = supper_stropping ? "self" : "SELF";
+   const char *strop_hip = supper_stropping ? "hip" : "HIP";
+   const char *strop_compl = supper_stropping ? "compl" : "COMPL";
+   const char *strop_long_compl = supper_stropping ? "long compl" : "LONG COMPL";
+   const char *strop_long_long_compl = supper_stropping ? "long long compl" : "LONG LONG COMPL";
+   const char *strop_string = supper_stropping ? "string" : "STRING";
+   const char *strop_collitem = supper_stropping ? "collitem" : "COLLITEM";
+   const char *strop_simplin = supper_stropping ? "%%<simplin%%>" : "%%<SIMPLIN%%>";
+   const char *strop_simplout = supper_stropping ? "%%<simplout%%>" : "%%<SIMPLOUT%%>";
+   const char *strop_rows = supper_stropping ? "%%<rows%%>" : "%%<ROWS%%>";
+   const char *strop_vacuum = supper_stropping ? "%%<vacuum%%>" : "%%<VACUUM%%>";
+   const char *strop_long = supper_stropping ? "long" : "LONG";
+   const char *strop_short = supper_stropping ? "short" : "SHORT";
+   const char *strop_ref = supper_stropping ? "ref" : "REF";
+   const char *strop_flex = supper_stropping ? "flex" : "FLEX";
+   const char *strop_struct = supper_stropping ? "struct" : "STRUCT";
+   const char *strop_union = supper_stropping ? "union" : "UNION";
+   const char *strop_proc = supper_stropping ? "proc" : "PROC";
+ 
+   if (n == NO_MOID)
+     {
+       /* Oops. Should not happen.  */
+       add_to_moid_text (b, "null", w);;
+       return;
+     }
+ 
+   /* Reference to self through REF or PROC.  */
+   if (a68_is_postulated (A68 (postulates), n))
+     {
+       add_to_moid_text (b, strop_self, w);
+       return;
+     }
+ 
+   /* If declared by a mode-declaration, present the indicant.  */
+   if (idf != NO_NODE && !IS (n, STANDARD))
+     {
+       TAG_T *indy = find_indicant_global (TABLE (idf), n);
+ 
+       if (indy != NO_TAG)
+ 	{
+ 	  add_to_moid_text (b, NSYMBOL (NODE (indy)), w);
+ 	  if (!indicant_value)
+ 	    return;
+ 	  else
+ 	    add_to_moid_text (b, " = ", w);
+ 	}
+     }
+ 
+   /* Write the standard modes.  */
+   if (n == M_HIP)
+     add_to_moid_text (b, strop_hip, w);
+   else if (n == M_ERROR)
+     add_to_moid_text (b, "ERROR", w);
+   else if (n == M_UNDEFINED)
+     add_to_moid_text (b, "unresolved mode", w);
+   else if (n == M_C_STRING)
+     add_to_moid_text (b, "C-STRING", w);
+   else if (n == M_COMPLEX)
+     add_to_moid_text (b, strop_compl, w);
+   else if (n == M_LONG_COMPLEX)
+     add_to_moid_text (b, strop_long_compl, w);
+   else if (n == M_LONG_LONG_COMPLEX)
+     add_to_moid_text (b, strop_long_long_compl, w);
+   else if (n == M_STRING)
+     add_to_moid_text (b, strop_string, w);
+   else if (n == M_COLLITEM)
+     add_to_moid_text (b, strop_collitem, w);
+   else if (IS (n, IN_TYPE_MODE))
+     add_to_moid_text (b, strop_simplin, w);
+   else if (IS (n, OUT_TYPE_MODE))
+     add_to_moid_text (b, strop_simplout, w);
+   else if (IS (n, ROWS_SYMBOL))
+     add_to_moid_text (b, strop_rows, w);
+   else if (n == M_VACUUM)
+     add_to_moid_text (b, strop_vacuum, w);
+   else if (IS (n, VOID_SYMBOL) || IS (n, STANDARD) || IS (n, INDICANT))
+     {
+       if (DIM (n) > 0)
+ 	{
+ 	  size_t k = DIM (n);
+ 
+ 	  if ((*w) >= k * strlen ("LONG ") + strlen (NSYMBOL (NODE (n))))
+ 	    {
+ 	      while (k--)
+ 		{
+ 		  add_to_moid_text (b, strop_long, w);
+ 		  add_to_moid_text (b, " ", w);
+ 		}
+ 
+ 	      const char *strop_symbol = a68_strop_keyword (NSYMBOL (NODE (n)));
+ 	      add_to_moid_text (b, strop_symbol, w);
+ 	    }
+ 	  else
+ 	    add_to_moid_text (b, "..", w);
+ 	}
+       else if (DIM (n) < 0)
+ 	{
+ 	  size_t k = -DIM (n);
+ 
+ 	  if ((*w) >= k * strlen ("SHORT ") + strlen (NSYMBOL (NODE (n))))
+ 	    {
+ 	      while (k--)
+ 		{
+ 		  add_to_moid_text (b, strop_short, w);
+ 		  add_to_moid_text (b, " ", w);
+ 		}
+ 
+ 	      const char *strop_symbol = a68_strop_keyword (NSYMBOL (NODE (n)));
+ 	      add_to_moid_text (b, strop_symbol, w);
+ 	    }
+ 	  else
+ 	    add_to_moid_text (b, "..", w);
+ 	}
+       else if (DIM (n) == 0)
+ 	{
+ 	  const char *strop_symbol = a68_strop_keyword (NSYMBOL (NODE (n)));
+ 	  add_to_moid_text (b, strop_symbol, w);
+ 	}
+ 
+       /*  Write compxounded modes.  */
+     }
+   else if (IS_REF (n))
+     {
+       if ((*w) >= strlen ("REF .."))
+ 	{
+ 	  add_to_moid_text (b, strop_ref, w);
+ 	  add_to_moid_text (b, " ", w);
+ 	  moid_to_string_2 (b, SUB (n), w, idf, indicant_value);
+ 	}
+       else
+ 	{
+ 	  add_to_moid_text (b, strop_ref, w);
+ 	  add_to_moid_text (b, " ..", w);
+ 	}
+     }
+   else if (IS_FLEX (n))
+     {
+       if ((*w) >= strlen ("FLEX .."))
+ 	{
+ 	  add_to_moid_text (b, strop_flex, w);
+ 	  add_to_moid_text (b, " ", w);
+ 	  moid_to_string_2 (b, SUB (n), w, idf, indicant_value);
+ 	}
+       else
+ 	{
+ 	  add_to_moid_text (b, strop_flex, w);
+ 	  add_to_moid_text (b, " ..", w);
+ 	}
+     }
+   else if (IS_ROW (n))
+     {
+       size_t j = strlen ("[] ..") + (DIM (n) - 1) * strlen (",");
+ 
+       if ((*w) >= j)
+ 	{
+ 	  size_t k = DIM (n) - 1;
+ 	  add_to_moid_text (b, "[", w);
+ 	  while (k-- > 0)
+ 	    add_to_moid_text (b, ",", w);
+ 	  add_to_moid_text (b, "] ", w);
+ 	  moid_to_string_2 (b, SUB (n), w, idf, indicant_value);
+ 	}
+       else if (DIM (n) == 1)
+ 	{
+ 	  add_to_moid_text (b, "[] ..", w);
+ 	}
+       else
+ 	{
+ 	  size_t k = DIM (n);
+ 	  add_to_moid_text (b, "[", w);
+ 	  while (k--)
+ 	    add_to_moid_text (b, ",", w);
+ 	  add_to_moid_text (b, "] ..", w);
+ 	}
+     }
+   else if (IS_STRUCT (n))
+     {
+       size_t j = (strlen ("STRUCT ()") + (DIM (n) - 1)
+ 		  * strlen (".., ") + strlen (".."));
+ 
+       if ((*w) >= j)
+ 	{
+ 	  POSTULATE_T *save = A68 (postulates);
+ 	  a68_make_postulate (&A68 (postulates), n, NO_MOID);
+ 	  add_to_moid_text (b, strop_struct, w);
+ 	  add_to_moid_text (b, " (", w);
+ 	  pack_to_string (b, PACK (n), w, true, idf, indicant_value);
+ 	  add_to_moid_text (b, ")", w);
+ 	  a68_free_postulate_list (A68 (postulates), save);
+ 	  A68 (postulates) = save;
+ 	}
+       else
+ 	{
+ 	  size_t k = DIM (n);
+ 	  add_to_moid_text (b, strop_struct, w);
+ 	  add_to_moid_text (b, " (", w);
+ 	  while (k-- > 0)
+ 	    add_to_moid_text (b, ",", w);
+ 	  add_to_moid_text (b, ")", w);
+ 	}
+     }
+   else if (IS_UNION (n))
+     {
+       size_t j = (strlen ("UNION ()") + (DIM (n) - 1)
+ 		  * strlen (".., ") + strlen (".."));
+ 
+       if ((*w) >= j)
+ 	{
+ 	  POSTULATE_T *save = A68 (postulates);
+ 	  a68_make_postulate (&A68 (postulates), n, NO_MOID);
+ 	  add_to_moid_text (b, strop_union, w);
+ 	  add_to_moid_text (b, " (", w);
+ 	  pack_to_string (b, PACK (n), w, false, idf, indicant_value);
+ 	  add_to_moid_text (b, ")", w);
+ 	  a68_free_postulate_list (A68 (postulates), save);
+ 	  A68 (postulates) = save;
+ 	}
+     else
+       {
+ 	size_t k = DIM (n);
+ 	add_to_moid_text (b, strop_union, w);
+ 	add_to_moid_text (b, " (", w);
+ 	while (k-- > 0)
+ 	  add_to_moid_text (b, ",", w);
+ 	add_to_moid_text (b, ")", w);
+       }
+     }
+   else if (IS (n, PROC_SYMBOL) && DIM (n) == 0)
+     {
+       if ((*w) >= strlen ("PROC .."))
+ 	{
+ 	  add_to_moid_text (b, strop_proc, w);
+ 	  add_to_moid_text (b, " ", w);
+ 	  moid_to_string_2 (b, SUB (n), w, idf, indicant_value);
+ 	}
+       else
+ 	{
+ 	  add_to_moid_text (b, strop_proc, w);
+ 	  add_to_moid_text (b, " ..", w);
+ 	}
+     }
+   else if (IS (n, PROC_SYMBOL) && DIM (n) > 0)
+     {
+       size_t j = (strlen ("PROC () ..") + (DIM (n) - 1)
+ 		  * strlen (".., ") + strlen (".."));
+ 
+       if ((*w) >= j)
+ 	{
+ 	  POSTULATE_T *save = A68 (postulates);
+ 	  a68_make_postulate (&A68 (postulates), n, NO_MOID);
+ 	  add_to_moid_text (b, strop_proc, w);
+ 	  add_to_moid_text (b, " (", w);
+ 	  pack_to_string (b, PACK (n), w, false, idf, indicant_value);
+ 	  add_to_moid_text (b, ") ", w);
+ 	  moid_to_string_2 (b, SUB (n), w, idf, indicant_value);
+ 	  a68_free_postulate_list (A68 (postulates), save);
+ 	  A68 (postulates) = save;
+ 	}
+       else
+ 	{
+ 	  size_t k = DIM (n);
+ 
+ 	  add_to_moid_text (b, strop_proc, w);
+ 	  add_to_moid_text (b, " (", w);
+ 	  while (k-- > 0)
+ 	    add_to_moid_text (b, ",", w);
+ 	  add_to_moid_text (b, ") ..", w);
+ 	}
+     }
+   else if (IS (n, SERIES_MODE) || IS (n, STOWED_MODE))
+     {
+       size_t j = (strlen ("()") + (DIM (n) - 1)
+ 		  * strlen (".., ") + strlen (".."));
+ 
+       if ((*w) >= j)
+ 	{
+ 	  add_to_moid_text (b, "(", w);
+ 	  pack_to_string (b, PACK (n), w, false, idf, indicant_value);
+ 	  add_to_moid_text (b, ")", w);
+ 	}
+       else
+ 	{
+ 	  size_t k = DIM (n);
+ 
+ 	  add_to_moid_text (b, "(", w);
+ 	  while (k-- > 0)
+ 	    add_to_moid_text (b, ",", w);
+ 	  add_to_moid_text (b, ")", w);
+ 	}
+     }
+   else
+     {
+       char str[SMALL_BUFFER_SIZE];
+       if (snprintf (str, (size_t) SMALL_BUFFER_SIZE, "\\%d", ATTRIBUTE (n)) < 0)
+ 	gcc_unreachable ();
+       add_to_moid_text (b, str, w);
+     }
+ }
+ 
+ /* Pretty-formatted mode N; W is a measure of width.  */
+ 
+ const char *
+ a68_moid_to_string (MOID_T *n, size_t w, NODE_T *idf, bool indicant_value)
+ {
+ #define MAX_MTS 8
+   /* We use a static buffer of MAX_MTS strings. This value 8 should be safe.
+      No more than MAX_MTS calls can be pending in for instance printf.  Instead
+      we could allocate each string on the heap but that leaks memory.  */
+   static int mts_buff_ptr = 0;
+   static char mts_buff[8][BUFFER_SIZE];
+   char *a = &(mts_buff[mts_buff_ptr][0]);
+   mts_buff_ptr++;
+   if (mts_buff_ptr >= MAX_MTS)
+     mts_buff_ptr = 0;
+   a[0] = '\0';
+   if (w >= BUFFER_SIZE)
+     w = BUFFER_SIZE - 1;
+   A68 (postulates) = NO_POSTULATE;
+   if (n != NO_MOID)
+     moid_to_string_2 (a, n, &w, idf, indicant_value);
+   else
+     a68_bufcat (a, "null", BUFFER_SIZE);
+   return a;
+ #undef MAX_MTS
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-attrs.def gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-attrs.def
*** gcc-15.2.0/gcc/algol68/a68-parser-attrs.def	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-attrs.def	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,390 ----
+ /* This file contains the definitions and documentation for all the different
+    kind/attributes of Algol 68 parse tree nodes.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* Please keep the entries in this file sorted alphabetically.  */
+ 
+ /* Note that the textual descriptions for the nodes are used in diagnostic
+    messages and debug dumps.  Please make sure to write them in a way you would
+    expect to be used in statements like "[...] near ATT".  */
+ 
+ A68_ATTR(A68_PATTERN, "transput pattern")
+ A68_ATTR(ACCESS_CLAUSE, "access clause")
+ A68_ATTR(ACCESS_SYMBOL, "access-symbol")
+ A68_ATTR(ACTUAL_DECLARER_MARK, "actual declarer mark")
+ A68_ATTR(ALT_ACCESS_SYMBOL, "alt-access-symbol")
+ A68_ATTR(ALT_DO_PART, "alt do part")
+ A68_ATTR(ALT_DO_SYMBOL, "alt do symbol")
+ A68_ATTR(ALT_EQUALS_SYMBOL, "alt equals symbol")
+ A68_ATTR(ALT_FORMAL_BOUNDS_LIST, "alt formal bounds list")
+ A68_ATTR(ANDF_SYMBOL, "andf symbol")
+ A68_ATTR(AND_FUNCTION, "andf pseudo-operator")
+ A68_ATTR(ANONYMOUS, "anonymous")
+ A68_ATTR(ARGUMENT, "argument")
+ A68_ATTR(ARGUMENT_LIST, "argument list")
+ A68_ATTR(ASSERTION, "assertion")
+ A68_ATTR(ASSERT_SYMBOL, "assert symbol")
+ A68_ATTR(ASSIGNATION, "assignation")
+ A68_ATTR(ASSIGN_SYMBOL, "assignation symbol")
+ A68_ATTR(ASSIGN_TO_SYMBOL, "assign-to symbol")
+ A68_ATTR(AT_SYMBOL, "at symbol")
+ A68_ATTR(BEGIN_SYMBOL, "begin symbol")
+ A68_ATTR(BITS_C_PATTERN, "bits-c-pattern")
+ A68_ATTR(BITS_DENOTATION, "bits-denotation")
+ A68_ATTR(BITS_PATTERN, "bits pattern")
+ A68_ATTR(BITS_SYMBOL, "bits-symbol")
+ A68_ATTR(BOLD_COMMENT_SYMBOL, "comment delimiter")
+ A68_ATTR(BOLD_COMMENT_BEGIN_SYMBOL, "comment opening delimiter")
+ A68_ATTR(BOLD_COMMENT_END_SYMBOL, "comment closing delimiter")
+ A68_ATTR(BOLD_PRAGMAT_SYMBOL, "pragmat-symbol")
+ A68_ATTR(BOLD_TAG, "bold tag")
+ A68_ATTR(BOOLEAN_PATTERN, "boolean pattern")
+ A68_ATTR(BOOL_SYMBOL, "bool-symbol")
+ A68_ATTR(BOUND, "actual declarer bound")
+ A68_ATTR(BOUNDS, "actual declarer bounds")
+ A68_ATTR(BOUNDS_LIST, "actual declarer bounds list")
+ A68_ATTR(BRIEF_COMMENT_BEGIN_SYMBOL, "comment opening delimiter")
+ A68_ATTR(BRIEF_COMMENT_END_SYMBOL, "comment closing delimiter")
+ A68_ATTR(BRIEF_OUSE_PART, "ouse-part")
+ A68_ATTR(BRIEF_CONFORMITY_OUSE_PART, "ouse-part")
+ A68_ATTR(BRIEF_ELIF_PART, "elif-part")
+ A68_ATTR(BRIEF_OPERATOR_DECLARATION, "operator declaration")
+ A68_ATTR(BUS_SYMBOL, "bus-symbol")
+ A68_ATTR(BYTES_SYMBOL, "bytes-symbol")
+ A68_ATTR(BY_PART, "by-part")
+ A68_ATTR(BY_SYMBOL, "by-symbol")
+ A68_ATTR(CALL, "call")
+ A68_ATTR(CASE_CHOICE_CLAUSE, "case choice clause")
+ A68_ATTR(CASE_CLAUSE, "case clause")
+ A68_ATTR(CASE_IN_PART, "case-in-part")
+ A68_ATTR(CASE_OUSE_PART, "case-ouse-part")
+ A68_ATTR(CASE_PART, "case-part")
+ A68_ATTR(CASE_SYMBOL, "case-symbol")
+ A68_ATTR(CAST, "cast")
+ A68_ATTR(CHANNEL_SYMBOL, "channel-symbol")
+ A68_ATTR(CHAR_C_PATTERN, "char C-like pattern")
+ A68_ATTR(CHAR_SYMBOL, "char-symbol")
+ A68_ATTR(CHOICE, "choice")
+ A68_ATTR(CHOICE_PATTERN, "choice pattern")
+ A68_ATTR(CLOSED_CLAUSE, "closed clause")
+ A68_ATTR(CLOSE_SYMBOL, "close symbol")
+ A68_ATTR(COLLATERAL_CLAUSE, "collateral clause")
+ A68_ATTR(COLLECTION, "collection")
+ A68_ATTR(COLON_SYMBOL, "colon-symbol")
+ A68_ATTR(COMMA_SYMBOL, "comma-symbol")
+ A68_ATTR(COMPLEX_PATTERN, "complex pattern")
+ A68_ATTR(COMPLEX_SYMBOL, "complex-symbol")
+ A68_ATTR(COMPL_SYMBOL, "compl-symbol")
+ A68_ATTR(CONDITIONAL_CLAUSE, "conditional clause")
+ A68_ATTR(CONFORMITY_CHOICE, "conformity clause choice")
+ A68_ATTR(CONFORMITY_CLAUSE, "conformity clause")
+ A68_ATTR(CONFORMITY_IN_PART, "conformity clause in-part")
+ A68_ATTR(CONFORMITY_OUSE_PART, "conformity clause ouse-part")
+ A68_ATTR(CONSTRUCT, "construct")
+ A68_ATTR(DECLARATION_LIST, "list of declarations")
+ A68_ATTR(DECLARER, "declarer")
+ A68_ATTR(DEF_PART, "def-part")
+ A68_ATTR(DEF_SYMBOL, "def-symbol")
+ A68_ATTR(DEFINING_IDENTIFIER, "defining identifier")
+ A68_ATTR(DEFINING_INDICANT, "defining mode")
+ A68_ATTR(DEFINING_OPERATOR, "defining operator")
+ A68_ATTR(DEFINING_MODULE_INDICANT, "defining module indicant")
+ A68_ATTR(DENOTATION, "denotation")
+ A68_ATTR(DEPROCEDURING, "deproceduring coercion")
+ A68_ATTR(DEREFERENCING, "dereferencing coercion")
+ A68_ATTR(DO_PART, "do-part")
+ A68_ATTR(DO_SYMBOL, "do-symbol")
+ A68_ATTR(DYNAMIC_REPLICATOR, "format dynamic replicator")
+ A68_ATTR(EGG_SYMBOL, "egg-symbol")
+ A68_ATTR(ELIF_IF_PART, "elif if-part")
+ A68_ATTR(ELIF_PART, "elif-part")
+ A68_ATTR(ELIF_SYMBOL, "elif-symbol")
+ A68_ATTR(ELSE_BAR_SYMBOL, "else-bar-symbol")
+ A68_ATTR(ELSE_OPEN_PART, "else-open-part")
+ A68_ATTR(ELSE_PART, "else-part")
+ A68_ATTR(ELSE_SYMBOL, "else-symbol")
+ A68_ATTR(EMPTY_SYMBOL, "empty-symbol")
+ A68_ATTR(ENCLOSED_CLAUSE, "enclosed clause")
+ A68_ATTR(END_SYMBOL, "end-symbol")
+ A68_ATTR(ENQUIRY_CLAUSE, "enquiry clause")
+ A68_ATTR(EQUALS_SYMBOL, "equals-symbol")
+ A68_ATTR(ERROR, "error node")
+ A68_ATTR(ERROR_IDENTIFIER, "error-identifier")
+ A68_ATTR(ESAC_SYMBOL, "esac-symbol")
+ A68_ATTR(EXIT_SYMBOL, "exit-symbol")
+ A68_ATTR(EXPONENT_FRAME, "exponent-frame")
+ A68_ATTR(FALSE_SYMBOL, "false-symbol")
+ A68_ATTR(FED_SYMBOL, "fed-symbol")
+ A68_ATTR(FIELD, "struct field")
+ A68_ATTR(FIELD_IDENTIFIER, "field-identifier")
+ A68_ATTR(FILE_SYMBOL, "file-symbol")
+ A68_ATTR(FIRM, "firm context")
+ A68_ATTR(FIXED_C_PATTERN, "fixed-c-pattern")
+ A68_ATTR(FI_SYMBOL, "fi-symbol")
+ A68_ATTR(FLEX_SYMBOL, "flex-symbol")
+ A68_ATTR(FLOAT_C_PATTERN, "float C format pattern")
+ A68_ATTR(FORMAL_BOUNDS, "formal declarer bounds")
+ A68_ATTR(FORMAL_BOUNDS_LIST, "list of formal declarer bounds")
+ A68_ATTR(FORMAL_DECLARERS, "formal declarers")
+ A68_ATTR(FORMAL_DECLARERS_LIST, "list of formal declarers")
+ A68_ATTR(FORMAL_DECLARER_MARK, "formal declarer mark")
+ A68_ATTR(FORMAL_HOLE, "formal hole")
+ A68_ATTR(FORMAL_NEST_SYMBOL, "formal-nest-symbol")
+ A68_ATTR(FORMULA, "formula")
+ A68_ATTR(FOR_PART, "for-part")
+ A68_ATTR(FOR_SYMBOL, "for-symbol")
+ A68_ATTR(FORMAT_CLOSE_SYMBOL, "format-close-symbol")
+ A68_ATTR(FORMAT_DELIMITER_SYMBOL, "format-delimiter-symbol")
+ A68_ATTR(FORMAT_IDENTIFIER, "format identifier")
+ A68_ATTR(FORMAT_A_FRAME, "format A-frame")
+ A68_ATTR(FORMAT_D_FRAME, "format D-frame")
+ A68_ATTR(FORMAT_E_FRAME, "format E-frame")
+ A68_ATTR(FORMAT_I_FRAME, "format I-frame")
+ A68_ATTR(FORMAT_ITEM_A, "format item-A")
+ A68_ATTR(FORMAT_ITEM_B, "format item-B")
+ A68_ATTR(FORMAT_ITEM_C, "format item-C")
+ A68_ATTR(FORMAT_ITEM_D, "format item-D")
+ A68_ATTR(FORMAT_ITEM_E, "format item-E")
+ A68_ATTR(FORMAT_ITEM_F, "format item-F")
+ A68_ATTR(FORMAT_ITEM_G, "format item-G")
+ A68_ATTR(FORMAT_ITEM_H, "format item-H")
+ A68_ATTR(FORMAT_ITEM_I, "format item-I")
+ A68_ATTR(FORMAT_ITEM_J, "format item-J")
+ A68_ATTR(FORMAT_ITEM_K, "format item-K")
+ A68_ATTR(FORMAT_ITEM_L, "format item-L")
+ A68_ATTR(FORMAT_ITEM_M, "format item-M")
+ A68_ATTR(FORMAT_ITEM_N, "format item-N")
+ A68_ATTR(FORMAT_ITEM_O, "format item-O")
+ A68_ATTR(FORMAT_ITEM_P, "format item-P")
+ A68_ATTR(FORMAT_ITEM_Q, "format item-Q")
+ A68_ATTR(FORMAT_ITEM_R, "format item-R")
+ A68_ATTR(FORMAT_ITEM_S, "format item-S")
+ A68_ATTR(FORMAT_ITEM_T, "format item-T")
+ A68_ATTR(FORMAT_ITEM_U, "format item-U")
+ A68_ATTR(FORMAT_ITEM_V, "format item-V")
+ A68_ATTR(FORMAT_ITEM_W, "format item-W")
+ A68_ATTR(FORMAT_ITEM_X, "format item-X")
+ A68_ATTR(FORMAT_ITEM_Y, "format item-Y")
+ A68_ATTR(FORMAT_ITEM_Z, "format item-Z")
+ A68_ATTR(FORMAT_ITEM_ESCAPE, "format item escape")
+ A68_ATTR(FORMAT_ITEM_MINUS, "format item -")
+ A68_ATTR(FORMAT_ITEM_PLUS, "format item +")
+ A68_ATTR(FORMAT_ITEM_POINT, "format item .")
+ A68_ATTR(FORMAT_OPEN_SYMBOL, "format-open-symbol")
+ A68_ATTR(FORMAT_PATTERN, "format pattern")
+ A68_ATTR(FORMAT_POINT_FRAME, "format point frame")
+ A68_ATTR(FORMAT_SYMBOL, "format-symbol")
+ A68_ATTR(FORMAT_TEXT, "format text")
+ A68_ATTR(FORMAT_Z_FRAME, "format Z frame")
+ A68_ATTR(FROM_PART, "from-part")
+ A68_ATTR(FROM_SYMBOL, "from-symbol")
+ A68_ATTR(GENERAL_C_PATTERN, "general C-like pattern")
+ A68_ATTR(GENERAL_PATTERN, "general pattern")
+ A68_ATTR(GENERATOR, "generator")
+ A68_ATTR(GENERIC_ARGUMENT, "generic argument")
+ A68_ATTR(GENERIC_ARGUMENT_LIST, "generic argument list")
+ A68_ATTR(GOTO_SYMBOL, "goto-symbol")
+ A68_ATTR(GO_SYMBOL, "go-symbol")
+ A68_ATTR(GUARDED_CONDITIONAL_CLAUSE, "guarded conditional clause")
+ A68_ATTR(GUARDED_LOOP_CLAUSE, "guarded loop clause")
+ A68_ATTR(HEAP_SYMBOL, "heap-symbol")
+ A68_ATTR(IDENTIFIER, "identifier")
+ A68_ATTR(IDENTIFIER_WITH_UNDERSCORES, "identifier with underscores")
+ A68_ATTR(IDENTITY_DECLARATION, "identity declaration")
+ A68_ATTR(IDENTITY_RELATION, "identity relation")
+ A68_ATTR(IF_PART, "if-part")
+ A68_ATTR(IF_SYMBOL, "if-symbol")
+ A68_ATTR(INDICANT, "indicant")
+ A68_ATTR(INITIALISER_SERIES, "initialiser series")
+ A68_ATTR(INSERTION, "insertion")
+ A68_ATTR(INTEGRAL_C_PATTERN, "integral C-like pattern")
+ A68_ATTR(INTEGRAL_MOULD, "integral mould")
+ A68_ATTR(INTEGRAL_PATTERN, "integral pattern")
+ A68_ATTR(INT_DENOTATION, "integral denotation")
+ A68_ATTR(INT_SYMBOL, "int-symbol")
+ A68_ATTR(IN_SYMBOL, "in-symbol")
+ A68_ATTR(IN_TYPE_MODE, "in type mode")
+ A68_ATTR(ISNT_SYMBOL, "isnt-symbol")
+ A68_ATTR(IS_SYMBOL, "is-symbol")
+ A68_ATTR(JUMP, "jump")
+ A68_ATTR(KEYWORD, "keyword")
+ A68_ATTR(LABEL, "label")
+ A68_ATTR(LABELED_UNIT, "labeled unit")
+ A68_ATTR(LABEL_IDENTIFIER, "label identifier")
+ A68_ATTR(LABEL_SEQUENCE, "label sequence")
+ A68_ATTR(LANGUAGE_INDICANT, "language indicant")
+ A68_ATTR(LITERAL, "literal")
+ A68_ATTR(LOCAL_LABEL, "local label")
+ A68_ATTR(LOC_SYMBOL, "loc-symbol")
+ A68_ATTR(LONGETY, "longsety")
+ A68_ATTR(LONG_SYMBOL, "long-symbol")
+ A68_ATTR(LOOP_CLAUSE, "loop clause")
+ A68_ATTR(LOOP_IDENTIFIER, "loop identifier")
+ A68_ATTR(MAIN_SYMBOL, "main-symbol")
+ A68_ATTR(MEEK, "meek context")
+ A68_ATTR(MODE_BITS, "mode bits")
+ A68_ATTR(MODE_BOOL, "mode bool")
+ A68_ATTR(MODE_BYTES, "mode bytes")
+ A68_ATTR(MODE_CHAR, "mode char")
+ A68_ATTR(MODE_COMPLEX, "mode complex")
+ A68_ATTR(MODE_DECLARATION, "mode declaration")
+ A68_ATTR(MODE_FILE, "mode file")
+ A68_ATTR(MODE_FORMAT, "mode format")
+ A68_ATTR(A68_MODE_INT, "mode int")
+ A68_ATTR(MODE_LONG_LONG_BITS, "mode long long bits")
+ A68_ATTR(MODE_LONG_LONG_COMPLEX, "mode long long complex")
+ A68_ATTR(MODE_LONG_LONG_INT, "mode long long int")
+ A68_ATTR(MODE_LONG_LONG_REAL, "mode long long real")
+ A68_ATTR(MODE_LONG_BITS, "mode long bits")
+ A68_ATTR(MODE_LONG_BYTES, "mode long bytes")
+ A68_ATTR(MODE_LONG_COMPLEX, "mode long complex")
+ A68_ATTR(MODE_LONG_INT, "mode long int")
+ A68_ATTR(MODE_LONG_REAL, "mode long real")
+ A68_ATTR(MODE_NO_CHECK, "mode no check")
+ A68_ATTR(MODE_REAL, "mode real")
+ A68_ATTR(MODE_SYMBOL, "mode-symbol")
+ A68_ATTR(MODULE_INDICANT, "module indicant")
+ A68_ATTR(MODULE_DECLARATION, "module-declaration")
+ A68_ATTR(MODULE_SYMBOL, "module-symbol")
+ A68_ATTR(MODULE_TEXT, "module text")
+ A68_ATTR(MONADIC_FORMULA, "monadic formula")
+ A68_ATTR(MONAD_SEQUENCE, "monad sequence")
+ A68_ATTR(NIHIL, "nihil")
+ A68_ATTR(NIL_SYMBOL, "nil-symbol")
+ A68_ATTR(NORMAL_IDENTIFIER, "normal identifier")
+ A68_ATTR(NO_SORT, "no sort")
+ A68_ATTR(OD_SYMBOL, "od-symbol")
+ A68_ATTR(OF_SYMBOL, "of-symbol")
+ A68_ATTR(OPEN_PART, "open part")
+ A68_ATTR(OPEN_SYMBOL, "open-symbol")
+ A68_ATTR(OPERATOR, "operator")
+ A68_ATTR(OPERATOR_DECLARATION, "operator declaration")
+ A68_ATTR(OPERATOR_PLAN, "operator plan")
+ A68_ATTR(OP_SYMBOL, "op-symbol")
+ A68_ATTR(ORF_SYMBOL, "orf-symbol")
+ A68_ATTR(OR_FUNCTION, "orel pseudo-operator")
+ A68_ATTR(OUSE_PART, "ouse-part")
+ A68_ATTR(OUSE_SYMBOL, "ouse-symbol")
+ A68_ATTR(OUT_PART, "out-part")
+ A68_ATTR(OUT_SYMBOL, "out-symbol")
+ A68_ATTR(OUT_TYPE_MODE, "out type mode")
+ A68_ATTR(PACKET, "packet")
+ A68_ATTR(PARALLEL_CLAUSE, "parallel clause")
+ A68_ATTR(PARAMETER, "parameter")
+ A68_ATTR(PARAMETER_IDENTIFIER, "parameter identifier")
+ A68_ATTR(PARAMETER_LIST, "parameter list")
+ A68_ATTR(PARAMETER_PACK, "parameter pack")
+ A68_ATTR(PARTICULAR_PROGRAM, "particular program")
+ A68_ATTR(PAR_SYMBOL, "par-symbol")
+ A68_ATTR(PICTURE, "format picture")
+ A68_ATTR(PICTURE_LIST, "format picture list")
+ A68_ATTR(PIPE_SYMBOL, "pipe-symbol")
+ A68_ATTR(POINT_SYMBOL, "point-symbol")
+ A68_ATTR(POSTLUDE_PART, "postlude-part")
+ A68_ATTR(POSTLUDE_SYMBOL, "postlude-symbol")
+ A68_ATTR(PRELUDE_PACKET, "prelude-packet")
+ A68_ATTR(PRIMARY, "primary")
+ A68_ATTR(PRIORITY, "operator priority")
+ A68_ATTR(PRIORITY_DECLARATION, "operator priority declaration")
+ A68_ATTR(PRIO_SYMBOL, "prio-symbol")
+ A68_ATTR(PROCEDURE_DECLARATION, "procedure declaration")
+ A68_ATTR(PROCEDURE_VARIABLE_DECLARATION, "procedure variable declaration")
+ A68_ATTR(PROCEDURING, "proceduring coercion")
+ A68_ATTR(PROC_SYMBOL, "proc-symbol")
+ A68_ATTR(PUBLIC_SYMBOL, "public-symbol")
+ A68_ATTR(QUALIFIER, "qualifier")
+ A68_ATTR(QUOTE_SYMBOL,"quote-symbol")
+ A68_ATTR(RADIX_FRAME, "radix frame")
+ A68_ATTR(REAL_DENOTATION, "real denotation")
+ A68_ATTR(REAL_PATTERN, "real pattern")
+ A68_ATTR(REAL_SYMBOL, "real-symbol")
+ A68_ATTR(REF_SYMBOL, "ref-symbol")
+ A68_ATTR(REPLICATOR, "format replicator")
+ A68_ATTR(REVELATION, "revelation")
+ A68_ATTR(REVELATION_PART, "revelation-part")
+ A68_ATTR(ROUTINE_TEXT, "routine text")
+ A68_ATTR(ROUTINE_UNIT, "routine unit")
+ A68_ATTR(ROWING, "rowing coercion")
+ A68_ATTR(ROWS_SYMBOL, "rows-symbol")
+ A68_ATTR(ROW_CHAR_DENOTATION, "row of chars denotation")
+ A68_ATTR(ROW_SYMBOL, "row-symbol")
+ A68_ATTR(SECONDARY, "secondary")
+ A68_ATTR(SELECTION, "selection")
+ A68_ATTR(SELECTOR, "selector")
+ A68_ATTR(SEMA_SYMBOL, "sema-symbol")
+ A68_ATTR(SEMI_SYMBOL, "semi-symbol")
+ A68_ATTR(SERIAL_CLAUSE, "serial clause")
+ A68_ATTR(SERIES_MODE, "series mode")
+ A68_ATTR(SHORTETY, "shortsety")
+ A68_ATTR(SHORT_SYMBOL, "short-symbol")
+ A68_ATTR(SIGN_MOULD, "sign mould")
+ A68_ATTR(SKIP, "skip unit")
+ A68_ATTR(SKIP_SYMBOL, "skip-symbol")
+ A68_ATTR(SLICE, "slice")
+ A68_ATTR(SOFT, "soft context")
+ A68_ATTR(SOME_CLAUSE, "some clause")
+ A68_ATTR(SPECIFICATION, "specification")
+ A68_ATTR(SPECIFIED_UNIT, "specified unit")
+ A68_ATTR(SPECIFIED_UNIT_LIST, "specified unit list")
+ A68_ATTR(SPECIFIED_UNIT_UNIT, "specified unit unit")
+ A68_ATTR(SPECIFIER, "specifier")
+ A68_ATTR(SPECIFIER_IDENTIFIER, "specifier identifier")
+ A68_ATTR(STANDARD, "standard")
+ A68_ATTR(STATIC_REPLICATOR, "static replicator")
+ A68_ATTR(STATIC_SYMBOL, "static-symbol")
+ A68_ATTR(STOWED_MODE, "stowed mode")
+ A68_ATTR(STRING_C_PATTERN, "string C-like pattern")
+ A68_ATTR(STRING_PATTERN, "string pattern")
+ A68_ATTR(STRING_SYMBOL, "string-symbol")
+ A68_ATTR(STRONG, "strong context")
+ A68_ATTR(STRUCTURED_FIELD, "structured field")
+ A68_ATTR(STRUCTURED_FIELD_LIST, "structured field list")
+ A68_ATTR(STRUCTURE_PACK, "structure pack")
+ A68_ATTR(STRUCT_SYMBOL, "struct-symbol")
+ A68_ATTR(STYLE_II_COMMENT_SYMBOL, "comment delimiter")
+ A68_ATTR(STYLE_I_COMMENT_SYMBOL, "comment delimiter")
+ A68_ATTR(STYLE_I_PRAGMAT_SYMBOL, "pragmat-symbol")
+ A68_ATTR(SUB_SYMBOL, "sub-symbol")
+ A68_ATTR(SUB_UNIT, "sub unit")
+ A68_ATTR(TERTIARY, "tertiary")
+ A68_ATTR(THEN_BAR_SYMBOL, "then-bar-symbol")
+ A68_ATTR(THEN_PART, "then-part")
+ A68_ATTR(THEN_SYMBOL, "then-symbol")
+ A68_ATTR(TO_PART, "to-part")
+ A68_ATTR(TO_SYMBOL, "to-symbol")
+ A68_ATTR(TRIMMER, "trimmer")
+ A68_ATTR(TRUE_SYMBOL, "true-symbol")
+ A68_ATTR(UNION_DECLARER_LIST, "union declarer list")
+ A68_ATTR(UNION_PACK, "union pack")
+ A68_ATTR(UNION_SYMBOL, "union-symbol")
+ A68_ATTR(UNIT, "unit")
+ A68_ATTR(UNITING, "uniting coercion")
+ A68_ATTR(UNIT_LIST, "unit list")
+ A68_ATTR(UNIT_SERIES, "unit series")
+ A68_ATTR(VARIABLE_DECLARATION, "variable declaration")
+ A68_ATTR(VIRTUAL_DECLARER_MARK, "virtual declarer mark")
+ A68_ATTR(VOIDING, "voiding coercion")
+ A68_ATTR(VOID_SYMBOL, "void-symbol")
+ A68_ATTR(WEAK, "weak context")
+ A68_ATTR(WHILE_PART, "while-part")
+ A68_ATTR(WHILE_SYMBOL, "while-symbol")
+ A68_ATTR(WIDENING, "widening coercion")
+ A68_ATTR(WILDCARD, "wildcard")
+ 
+ /*
+ Local variables:
+ mode:c
+ End:
+ */
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-bottom-up.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-bottom-up.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-bottom-up.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-bottom-up.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,3057 ----
+ /* Hand-coded bottom-up parser for Algol 68.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* This is a Mailloux-type parser, in the sense that it scans a "phrase" for
+    definitions needed for parsing, and therefore allows for tags to be used
+    before they are defined, which gives some freedom in top-down programming.
+ 
+       B. J. Mailloux. On the implementation of Algol 68.
+       Thesis, Universiteit van Amsterdam (Mathematisch Centrum) [1968].
+ 
+    Technically, Mailloux's approach renders the two-level grammar LALR.  This
+    is the bottom-up parser that resolves the structure of the program.  */
+ 
+ /* *** Thou who adventure here, please read this ***
+ 
+    On parse trees, phrases and branches
+    ------------------------------------
+ 
+    The Algol 68 parser operates on parse trees in which sibling nodes are
+    linked together in "phrases" via NEXT and PREVIOUS pointers, and sub-trees
+    or "branches" start at SUB pointers.  For example, in the parse tree
+ 
+        a
+        |
+        b - c - d - e
+            |
+            f - g - h - i
+ 	               |
+ 	               j
+ 
+    'a' is the root of the tree.
+    'a', 'b - c - d - e', 'f - g - h -i' and 'j' are phrases.
+    'a', 'c' and 'i' introduce branches to sub trees via their SUB pointer.
+ 
+    From the scanner to the bottom-up parser
+    ----------------------------------------
+ 
+    The lexical analyzer transforms the textual input programs into a single
+    phrase with all the tokens.  For example, the program text
+ 
+       begin if A then B fi;
+             C
+       end;
+       D
+ 
+    will be turned by the lexical analyzer into the following parse tree, which
+    in fact is a list conforming a single phrase:
+ 
+      begin - if - A - then - B - fi - semi - C - end - semi - D
+ 
+    This parse tree is then handed over to the top-down parser, which provides
+    some initial structure and turns the single phrase into an actual tree:
+ 
+      begin - semi - D
+        |
+      begin - if - then - fi - end - semi - C - end
+               |    |
+               |   then - B
+              if - A
+ 
+    Note how branches have been created for the closed clause and for the
+    different parts of the conditional clause.  The same would have happened for
+    loop parts and case parts as well, but it is important to note that the role
+    of the top-down parser doesn't handle the conditional, loop or case clauses
+    themselves: it just branches the parts of these clauses that introduce
+    ranges. Taking care of structuring the clauses is precisely the main role of
+    the bottom-up parser.
+ 
+    The bottom-up parser
+    --------------------
+ 
+    The bottom-up parser is given a parse tree like the one above, partially
+    structured in phrases by the top-down parser.  The bottom-up parser then
+    proceeds from the root-node using two basic operations:
+ 
+      - reduce a phrase, implemented by 'reduce'.
+      - reduce a sub-phrase starting at a branch, implemented by 'reduce_branch'.
+ */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "options.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* Bottom-up parser, reduces all constructs.  */
+ 
+ 
+ /* Maximum number of errors the bottom-up parser will try to recover from and
+    save diagnostics for.  */
+ 
+ #define MAX_ERRORS 5
+ 
+ /* Forward declarations of some of the functions defined below.  */
+ 
+ static void reduce_branch (NODE_T *q, a68_attribute expect);
+ static void recover_from_error (NODE_T * p, enum a68_attribute expect, bool suppress);
+ static void reduce_declarers (NODE_T *p, enum a68_attribute expect);
+ static void reduce_primary_parts (NODE_T *p, enum a68_attribute expect);
+ static void reduce_primaries (NODE_T *p, enum a68_attribute expect);
+ static void reduce_format_texts (NODE_T *p);
+ static void reduce_secondaries (NODE_T *p);
+ static void reduce_formulae (NODE_T * p);
+ static void reduce_tertiaries (NODE_T *p);
+ static void reduce_right_to_left_constructs (NODE_T *p);
+ static void reduce_units (NODE_T * p);
+ static void reduce_erroneous_units (NODE_T *p);
+ static void reduce_generic_arguments (NODE_T *p);
+ static void reduce_bounds (NODE_T *p);
+ static void reduce_serial_clauses (NODE_T *p);
+ static void reduce_enquiry_clauses (NODE_T *p);
+ static void reduce_collateral_clauses (NODE_T *p);
+ static void reduce_arguments (NODE_T *p);
+ static void reduce_enclosed_clauses (NODE_T *q, enum a68_attribute expect);
+ static void reduce_basic_declarations (NODE_T *p);
+ static void reduce_declaration_lists (NODE_T *p);
+ static void reduce_module_texts (NODE_T *p);
+ static void reduce_module_text_parts (NODE_T *p);
+ static void reduce_formal_holes (NODE_T *p);
+ static NODE_T *reduce_dyadic (NODE_T *p, int u);
+ 
+ /* Whether a series is serial or collateral.  */
+ 
+ static enum a68_attribute
+ serial_or_collateral (NODE_T *p)
+ {
+   int semis = 0, commas = 0, exits = 0;
+   for (NODE_T *q = p; q != NO_NODE; q = NEXT (q))
+     {
+       if (IS (q, COMMA_SYMBOL))
+ 	commas++;
+       else if (IS (q, SEMI_SYMBOL))
+ 	semis++;
+       else if (IS (q, EXIT_SYMBOL))
+ 	exits++;
+     }
+ 
+   if (semis == 0 && exits == 0 && commas > 0)
+     return COLLATERAL_CLAUSE;
+   else if ((semis > 0 || exits > 0) && commas == 0)
+     return SERIAL_CLAUSE;
+   else if (semis == 0 && exits == 0 && commas == 0)
+     return SERIAL_CLAUSE;
+   else
+     /* Heuristic guess to give intelligible error message.  */
+     return (semis + exits >= commas) ? SERIAL_CLAUSE : COLLATERAL_CLAUSE;
+ }
+ 
+ /* Insert a node with attribute "a" after "p".  */
+ 
+ static void
+ pad_node (NODE_T *p, enum a68_attribute a)
+ {
+   /* This is used to fill information that Algol 68 does not require to be
+      present.  Filling in gives one format for such construct; this helps later
+      passes.  */
+   NODE_T *z = a68_new_node ();
+   *z = *p;
+   if (GINFO (p) != NO_GINFO)
+     GINFO (z) = a68_new_genie_info ();
+   PREVIOUS (z) = p;
+   SUB (z) = NO_NODE;
+   ATTRIBUTE (z) = a;
+   MOID (z) = NO_MOID;
+   if (NEXT (z) != NO_NODE)
+     PREVIOUS (NEXT (z)) = z;
+   NEXT (p) = z;
+ }
+ 
+ /* Diagnose extensions.  */
+ 
+ static void
+ a68_extension (NODE_T *p)
+ {
+   a68_warning (p, OPT_Wextensions, "ast node is an extension");
+ }
+ 
+ /* Diagnose for clauses not yielding a value.  */
+ 
+ static void
+ empty_clause (NODE_T *p)
+ {
+   a68_error (p, "clause does not yield a value");
+ }
+ 
+ /* Diagnose for invalid module text.  */
+ 
+ static void
+ expected_module_text (NODE_T *p)
+ {
+   a68_error (p, "expected module text in module definition");
+ }
+ 
+ /* Diagnose for missing symbol.  */
+ 
+ static void
+ strange_tokens (NODE_T *p)
+ {
+   NODE_T *q = ((p != NO_NODE && NEXT (p) != NO_NODE) ? NEXT (p) : p);
+   a68_error (q, "possibly a missing or erroneous symbol nearby");
+ }
+ 
+ /* Diagnose for strange separator.  */
+ 
+ static void
+ strange_separator (NODE_T *p)
+ {
+   NODE_T *q = ((p != NO_NODE && NEXT (p) != NO_NODE) ? NEXT (p) : p);
+   a68_error (q, "possibly a missing or erroneous separator nearby");
+ }
+ 
+ /* If match then reduce a sentence, the core bottom-up parser routine.  The
+    reduction of a sequence of nodes stating at P:
+ 
+       P - A - B - C - D - E - F
+ 
+    where the attributes passed to this function are Z P A B C, the result of
+    the reduction is:
+ 
+       Z - D - E - F
+       |
+       P - A - B - C
+ 
+    Note how the node pointed by P gets changed after a reduction gets
+    performed.
+ 
+    P is the AST node from where start matching.
+ 
+    ATTRS is a sequence of node attributes.  The first of these attributes is
+    the kind of node resulting from the reduction.  The rest of attributes are
+    the matched in order starting at P, then a reduction is performed.  Two node
+    attributes exist that convey special meaning when passing to "reduce":
+ 
+      STOP marks the end of the variable-length sequence of attributes to match.
+ 
+      WILDCARD will match any non terminal, with the exception of a keyword.  It
+      is used to recover from errors.
+ 
+    A is a "noting" function that is invoked and passed P right before doing the
+    reduction.  If A is NO_NOTE then it is not used.
+ 
+    The boolean Z is set to "true" if the reduction has been performed, and is
+    left untouched otherwise.  If Z is NO_TICK then it is not used.
+ 
+    It is common to invoke "reduce" in a row in order to try the reduction of
+    several alternatives, which are mutually exclusive.  For example:
+ 
+      reduce (p, NO_NOTE, NO_TICK, PARTICULAR_PROGRAM, LABEL, ENCLOSED_CLAUSE, STOP);
+      reduce (p, NO_NOTE, NO_TICK, PARTICULAR_PROGRAM, ENCLOSED_CLAUSE, STOP);
+ 
+    We know that at much only one of these reductions will succeed, becuase if
+    the first reduction succeeds, then P gets changed to LABEL which cannot
+    match ENCLOSED_CLAUSE.
+ 
+    Sometimes, however, "reduce" is invoked in a row in a way the second
+    reduction is intended to succeed if the first one succeeds.  For example:
+ 
+      reduce (p, NO_NOTE, NO_TICK, PARALLEL_CLAUSE, PAR_SYMBOL, COLLATERAL_CLAUSE, STOP);
+      reduce (p, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, PARALLEL_CLAUSE, STOP);
+ 
+    In this case if the first reduction succeeds, then the resulting
+    PARALLEL_CLAUSE will be itself reduced to an ENCLOSED_CLAUSE.
+ 
+    Another typical usage of "reduce" is to put it in a loop in order to reduce
+    matches of a left-recursive rule.  This is where Z comes to play.  For
+    example, consider the rules:
+ 
+      label : defining identifier, colon symbol ;
+              label, defining identifier, colon symbol.
+ 
+    The second alternative is left-recursive, and along with the first rule
+    defines a sequence of one or more labels, each label consisting on a
+    defining identifier followed by a colon symbol.  We could match these rules
+    using the following loop:
+ 
+      while (siga)
+        {
+          siga = false;
+ 	 reduce (q, NO_NOTE, &siga, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+ 	 reduce (q, NO_NOTE, &siga, LABEL, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+        }
+ 
+    Note how, when presented with a sequence of labels like `l1: l2: l3: ...',
+    the first call to "reduce" will succeed, turning Q into a LABEL.  Then the
+    second call to "reduce" will also succed, reducing to another LABEL and
+    setting SIGA to "true".  In subsequent iterations of the loop the first call
+    will always fail, and the second call will keep succeeding as more sequences
+    of DEFINING_IDENTIFIER, COLON_SYMBOL get matched.  */
+ 
+ static void
+ reduce (NODE_T *p, void (*a) (NODE_T *), bool *z, /* attrs */...)
+ {
+   va_list list;
+   va_start (list, z);
+   enum a68_attribute expect;
+   enum a68_attribute result = (enum a68_attribute) va_arg (list, int);
+   NODE_T *head = p, *tail = NO_NODE;
+ 
+   while ((expect = (enum a68_attribute) va_arg (list, int)) != STOP)
+   {
+     bool keep_matching;
+ 
+     if (p == NO_NODE)
+       keep_matching = false;
+     else if (expect == WILDCARD)
+       /* WILDCARD matches any non terminal, but no keyword.  */
+       keep_matching = (a68_attribute_name (ATTRIBUTE (p)) != NO_TEXT);
+     else
+       {
+ 	if (expect == SKIP)
+ 	  {
+ 	    /* Stray "~" matches expected SKIP.  */
+ 	    if (IS (p, OPERATOR) && IS_LITERALLY (p, "~"))
+ 	      ATTRIBUTE (p) = SKIP;
+ 	  }
+ 
+ 	if (expect >= 0)
+ 	  keep_matching = (expect == ATTRIBUTE (p));
+ 	else
+ 	  keep_matching = (expect != ATTRIBUTE (p));
+       }
+ 
+     if (keep_matching)
+       {
+ 	tail = p;
+ 	FORWARD (p);
+       }
+     else
+       {
+ 	va_end (list);
+ 	return;
+       }
+   }
+ 
+   /* Make reduction.  */
+   if (a != NO_NOTE)
+     a (head);
+ 
+   a68_make_sub (head, tail, result);
+   va_end (list);
+   if (z != NO_TICK)
+     *z = true;
+ }
+ 
+ /* Graciously ignore extra semicolons.  */
+ 
+ static void
+ ignore_superfluous_semicolons (NODE_T *p)
+ {
+   /* This routine relaxes the parser a bit with respect to superfluous
+      semicolons, for instance "FI; OD". These provoke only a warning.  */
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       ignore_superfluous_semicolons (SUB (p));
+ 
+       if (NEXT (p) != NO_NODE && IS (NEXT (p), SEMI_SYMBOL) && NEXT_NEXT (p) == NO_NODE)
+ 	{
+ 	  a68_attr_format_token a (ATTRIBUTE (NEXT (p)));
+ 	  a68_warning (NEXT (p), 0, "skipped superfluous %e", &a);
+ 	  NEXT (p) = NO_NODE;
+ 	}
+       else if (IS (p, SEMI_SYMBOL) && a68_is_semicolon_less (NEXT (p)))
+ 	{
+ 	  a68_attr_format_token a (ATTRIBUTE (p));
+ 	  a68_warning (p, 0, "skipped superfluous %e", &a);
+ 	  if (PREVIOUS (p) != NO_NODE)
+ 	    NEXT (PREVIOUS (p)) = NEXT (p);
+ 	  PREVIOUS (NEXT (p)) = PREVIOUS (p);
+ 	}
+     }
+ }
+ 
+ /* Reduce a particular program.  */
+ 
+ void
+ reduce_particular_program (NODE_T *p)
+ {
+   /* A program is "label sequence; particular program".  */
+   a68_extract_labels (p, SERIAL_CLAUSE);
+ 
+   NODE_T *q = p;
+   /* Parse the program itself.  */
+   for (; q != NO_NODE; FORWARD (q))
+     {
+       bool siga = true;
+ 
+       if (SUB (q) != NO_NODE)
+ 	reduce_branch (q, SOME_CLAUSE);
+ 
+       while (siga)
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+ 	  reduce (q, NO_NOTE, &siga, LABEL, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+ 	}
+     }
+   /* Determine the encompassing enclosed clause.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, PARALLEL_CLAUSE, PAR_SYMBOL, COLLATERAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, PARALLEL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, COLLATERAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONDITIONAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CASE_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONFORMITY_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, LOOP_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, ACCESS_CLAUSE, STOP);
+     }
+ 
+   /* Try reducing a particular program.  */
+   q = p;
+   reduce (q, NO_NOTE, NO_TICK, PARTICULAR_PROGRAM, LABEL, ENCLOSED_CLAUSE, STOP);
+   reduce (q, NO_NOTE, NO_TICK, PARTICULAR_PROGRAM, ENCLOSED_CLAUSE, STOP);
+ }
+ 
+ /* Reduce a prelude packet.  */
+ 
+ void
+ reduce_prelude_packet (NODE_T *p)
+ {
+   /* Extract the module indicants.  */
+   a68_extract_indicants (p);
+ 
+   /* Reduce MODULE_TEXTs  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, ALT_ACCESS_SYMBOL))
+ 	reduce_branch (q, MODULE_TEXT);
+       else if (IS (q, DEF_SYMBOL))
+ 	{
+ 	  for (NODE_T *v = q; v != NO_NODE; FORWARD (v))
+ 	    {
+ 	      if (IS (v, DEF_SYMBOL))
+ 		reduce_branch (v, DEF_PART);
+ 	      else if (IS (v, POSTLUDE_SYMBOL))
+ 		reduce_branch (v, POSTLUDE_PART);
+ 	    }
+ 	  reduce_module_texts (q);
+ 	}
+     }
+ 
+   /* Single module declaration.  */
+   reduce (p, NO_NOTE, NO_TICK,
+ 	  MODULE_DECLARATION, MODULE_SYMBOL, DEFINING_MODULE_INDICANT, EQUALS_SYMBOL, MODULE_TEXT, STOP);
+   reduce (p, expected_module_text, NO_TICK,
+ 	  MODULE_DECLARATION, MODULE_SYMBOL, DEFINING_MODULE_INDICANT, EQUALS_SYMBOL, -MODULE_TEXT, STOP);
+ 
+ #if 0
+   /* Joined module declarations.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  MODULE_DECLARATION, MODULE_DECLARATION,
+ 		  COMMA_SYMBOL, DEFINING_MODULE_INDICANT, EQUALS_SYMBOL, MODULE_TEXT, STOP);
+ 	}
+       while (siga);
+     }
+ #endif
+ 
+   /* Try reducing a prelude packet.  */
+   reduce (p, NO_NOTE, NO_TICK, PRELUDE_PACKET, MODULE_DECLARATION, STOP);
+ }
+ 
+ /* Driver for the bottom-up parser.  */
+ 
+ void
+ a68_bottom_up_parser (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (!setjmp (A68_PARSER (bottom_up_crash_exit)))
+ 	{
+ 	  NODE_T *q;
+ 	  int error_count_0 = ERROR_COUNT (&A68_JOB);
+ 
+ 	  ignore_superfluous_semicolons (p);
+ 
+ 	  /* A compilation unit is a packet, which can be either a particular
+ 	     program or a prelude packet.  */
+ 	  if (IS (p, MODULE_SYMBOL))
+ 	    reduce_prelude_packet (p);
+ 	  else
+ 	    reduce_particular_program (p);
+ 
+ 	  /* Try reducing the packet.  */
+ 	  q = p;
+ 	  reduce (q, NO_NOTE, NO_TICK, PACKET, PARTICULAR_PROGRAM, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, PACKET, PRELUDE_PACKET, STOP);
+ 	  if (SUB (p) == NO_NODE || NEXT (p) != NO_NODE)
+ 	    recover_from_error (p, PACKET,
+ 				((ERROR_COUNT (&A68_JOB) - error_count_0) > MAX_ERRORS));
+ 	}
+     }
+ }
+ 
+ /* Reduce the sub-phrase that starts one level down.
+ 
+    EXPECT is the expected construct for the sub-phrase, and it is used to guide
+    the parsing by determining what reductions to try.  This can be SOME_CLAUSE,
+    which means either a serial or a collateral clause.
+ 
+    This is a recursive process.  Let's suppose we have the parse tree below and
+    we call `reduce_branch (b, EXPECT)':
+ 
+       a - b - c - d - e
+           |
+ 	  b - x - y - z
+ 	      |
+ 	      v - w
+ 
+    The first thing this function does is to traverse the 'b' branch
+ 
+       b - x - y - z
+ 
+    looking for declarations of indicants, priorities and operators
+    (a68_extract_{indicants,priorities,operators}).  Using this information , it
+    determines the nature of bold tags occuring in the branch, by turning
+    BOLD_TAG nodes into either INDICANT nodes or OPERATOR nodes
+    (a68_elaborate_bold_tags).
+ 
+    At this point it is possible to try reduce the declarers within the 'b'
+    subtree, so reduce_declarers is invoked on it.  This function is recursive
+    and performs reductions of several kinds: sequences of 'long' and 'short'
+    symbols into sizeties, symbols like 'int' and 'real' into indicants,
+    declarers, declarer lists, etc.
+ 
+    Once that is done, the 'p' branch is traversed and reduce_branch is invoked
+    recursively in certain nodes that start a sub-branch:
+ 
+      | Recursing in branch                              | with expect       |
+      |--------------------------------------------------+-------------------|
+      | FORMAT_DELIMITER_SYMBOL, FORMAT_OPEN_SYMBOL      | FORMAT_TEXT       |
+      |--------------------------------------------------+-------------------|
+      | OPEN_SYMBOL, IN_SYMBOL                           | COLLATERAL_CLAUSE |
+      |--------------------------------------------------+-------------------|
+      | IF_SYMBOL, ELIF_SYMBOL, CASE_SYMBOL, OUSE_SYMBOL | ENQUIRY_CLAUSE    |
+      | WHILE_SYMBOL, ELSE_BAR_SYMBOL, DEF_SYMBOL        |                   |
+      |--------------------------------------------------+-------------------|
+      | BEGIN_SYMBOL, THEN_BAR_SYMBOL                    | SOME_CLAUSE       |
+      |--------------------------------------------------+-------------------|
+      | THEN_SYMBOL, ELSE_SYMBOL, OUT_SYMBOL             | SERIAL_CLAUSE     |
+      | DO_SYMBOL, ALT_DO_SYMBOL, POSTLUDE_SYMBOL        |                   |
+      |--------------------------------------------------+-------------------|
+      | LOOP_CLAUSE, ACCESS_SYMBOL                       | ENCLOSED_CLAUSE   |
+      |--------------------------------------------------+-------------------|
+      | FOR_SYMBOL, FROM_SYMBOL, BY_SYMBOL, TO_SYMBOL    | UNIT              |
+ 
+    Once all the sub-branches are reduced, the final step is to finally reduce
+    the 'b' branch, trying different possibilities: basic declarations, units,
+    bounds, declaration lists, clauses, module texts, etc.
+ 
+    Note that reducing a branch requires knowing the kind of resulting subtree.
+    So if you find yourself wanting to call reduce_branch and don't know what to
+    pass in EXPECT, you are probably doing something wrong..  very likely you
+    want to make reduce_branch aware of a new sort of branch.  */
+ 
+ static void
+ reduce_branch (NODE_T *q, enum a68_attribute expect)
+ {
+   /* If unsuccessful then the routine will at least copy the resulting
+      attribute as the parser can repair some faults. This gives less spurious
+      diagnostics.  */
+   if (q != NO_NODE && SUB (q) != NO_NODE)
+     {
+       NODE_T *p = SUB (q), *u = NO_NODE;
+       int error_count_0 = ERROR_COUNT (&A68_JOB), error_count_02;
+       bool declarer_pack = false, no_error;
+ 
+       switch (expect)
+ 	{
+ 	case STRUCTURE_PACK:
+ 	case PARAMETER_PACK:
+ 	case FORMAL_DECLARERS:
+ 	case UNION_PACK:
+ 	case SPECIFIER:
+ 	  declarer_pack = true;
+ 	  break;
+ 	default:
+ 	  declarer_pack = false;
+ 	}
+ 
+       /* Sample all info needed to decide whether a bold tag is operator or
+ 	 indicant.  Find the meaning of bold tags and quit in case of extra
+ 	 errors.  */
+       a68_extract_indicants (p);
+       if (!declarer_pack)
+ 	{
+ 	  a68_extract_priorities (p);
+ 	  a68_extract_operators (p);
+ 	}
+ 
+       error_count_02 = ERROR_COUNT (&A68_JOB);
+       a68_elaborate_bold_tags (p);
+       if ((ERROR_COUNT (&A68_JOB) - error_count_02) > 0)
+ 	longjmp (A68_PARSER (bottom_up_crash_exit), 1);
+ 
+       /* Now we can reduce declarers, knowing which bold tags are indicants.  */
+       reduce_declarers (p, expect);
+       /* Parse the phrase, as appropriate.  */
+       if (declarer_pack == false)
+ 	{
+ 	  error_count_02 = ERROR_COUNT (&A68_JOB);
+ 	  a68_extract_declarations (p);
+ 	  if ((ERROR_COUNT (&A68_JOB) - error_count_02) > 0)
+ 	    longjmp (A68_PARSER (bottom_up_crash_exit), 1);
+ 	  a68_extract_labels (p, expect);
+ 	  for (u = p; u != NO_NODE; FORWARD (u))
+ 	    {
+ 	      if (SUB (u) != NO_NODE)
+ 		{
+ 		  if (IS (u, FORMAT_DELIMITER_SYMBOL))
+ 		    reduce_branch (u, FORMAT_TEXT);
+ 		  else if (IS (u, FORMAT_OPEN_SYMBOL))
+ 		    reduce_branch (u, FORMAT_TEXT);
+ 		  else if (IS (u, OPEN_SYMBOL))
+ 		    {
+ 		      if (NEXT (u) != NO_NODE && IS (NEXT (u), THEN_BAR_SYMBOL))
+ 			reduce_branch (u, ENQUIRY_CLAUSE);
+ 		      else if (PREVIOUS (u) != NO_NODE && IS (PREVIOUS (u), PAR_SYMBOL))
+ 			reduce_branch (u, COLLATERAL_CLAUSE);
+ 		    }
+ 		  else if (a68_is_one_of (u, IF_SYMBOL, ELIF_SYMBOL, CASE_SYMBOL,
+ 					  OUSE_SYMBOL, WHILE_SYMBOL,
+ 					  ELSE_BAR_SYMBOL, DEF_PART, STOP))
+ 		    reduce_branch (u, ENQUIRY_CLAUSE);
+ 		  else if (IS (u, BEGIN_SYMBOL))
+ 		    reduce_branch (u, SOME_CLAUSE);
+ 		  else if (a68_is_one_of (u, THEN_SYMBOL, ELSE_SYMBOL, OUT_SYMBOL,
+ 					  DO_SYMBOL, ALT_DO_SYMBOL,
+ 					  POSTLUDE_PART, STOP))
+ 		    reduce_branch (u, SERIAL_CLAUSE);
+ 		  else if (IS (u, IN_SYMBOL))
+ 		    reduce_branch (u, COLLATERAL_CLAUSE);
+ 		  else if (IS (u, THEN_BAR_SYMBOL))
+ 		    reduce_branch (u, SOME_CLAUSE);
+ 		  else if (IS (u, ACCESS_SYMBOL))
+ 		    reduce_branch (u, ENCLOSED_CLAUSE);
+ 		  else if (IS (u, DEF_SYMBOL))
+ 		    reduce_branch (u, DEF_PART);
+ 		  else if (IS (u, POSTLUDE_SYMBOL))
+ 		    reduce_branch (u, POSTLUDE_PART);
+ 		  else if (IS (u, LOOP_CLAUSE))
+ 		    reduce_branch (u, ENCLOSED_CLAUSE);
+ 		  else if (a68_is_one_of (u, FOR_SYMBOL, FROM_SYMBOL, BY_SYMBOL, TO_SYMBOL,
+ 					  STOP))
+ 		    reduce_branch (u, UNIT);
+ 		}
+ 	    }
+ 
+ 	  reduce_primary_parts (p, expect);
+ 	  if (expect != ENCLOSED_CLAUSE)
+ 	    {
+ 	      reduce_primaries (p, expect);
+ 	      if (expect == FORMAT_TEXT)
+ 		reduce_format_texts (p);
+ 	      else
+ 		{
+ 		  reduce_secondaries (p);
+ 		  reduce_formulae (p);
+ 		  reduce_tertiaries (p);
+ 		}
+ 	    }
+ 
+ 	  reduce_right_to_left_constructs (p);
+ 	  /* Reduce units and declarations.  */
+ 	  reduce_basic_declarations (p);
+ 	  reduce_formal_holes (p);
+ 	  reduce_units (p);
+ 	  reduce_erroneous_units (p);
+ 	  if (expect != UNIT)
+ 	    {
+ 	      if (expect == GENERIC_ARGUMENT)
+ 		reduce_generic_arguments (p);
+ 	      else if (expect == BOUNDS)
+ 		reduce_bounds (p);
+ 	      else
+ 		{
+ 		  reduce_declaration_lists (p);
+ 		  if (expect != DECLARATION_LIST)
+ 		    {
+ 		      for (u = p; u != NO_NODE; FORWARD (u))
+ 			{
+ 			  reduce (u, NO_NOTE, NO_TICK, LABELED_UNIT, LABEL, UNIT, STOP);
+ 			  reduce (u, NO_NOTE, NO_TICK, SPECIFIED_UNIT, SPECIFIER,
+ 				  COLON_SYMBOL, UNIT, STOP);
+ 			}
+ 		      if (expect == SOME_CLAUSE)
+ 			expect = serial_or_collateral (p);
+ 		      if (expect == SERIAL_CLAUSE)
+ 			reduce_serial_clauses (p);
+ 		      else if (expect == ENQUIRY_CLAUSE)
+ 			reduce_enquiry_clauses (p);
+ 		      else if (expect == COLLATERAL_CLAUSE)
+ 			reduce_collateral_clauses (p);
+ 		      else if (expect == ARGUMENT)
+ 			reduce_arguments (p);
+ 		    }
+ 		}
+ 	    }
+ 	  reduce_enclosed_clauses (p, expect);
+ 	  if (expect == DEF_PART || expect == POSTLUDE_PART)
+ 	    reduce_module_text_parts (p);
+ 	  if (expect == MODULE_TEXT)
+ 	    reduce_module_texts (p);
+ 	}
+ 
+       /* Do something if parsing failed.  */
+       if (SUB (p) == NO_NODE || NEXT (p) != NO_NODE)
+ 	{
+ 	  recover_from_error (p, expect,
+ 			      ((ERROR_COUNT (&A68_JOB) - error_count_0) > MAX_ERRORS));
+ 	  no_error = false;
+ 	}
+       else
+ 	no_error = true;
+       ATTRIBUTE (q) = ATTRIBUTE (p);
+       if (no_error)
+ 	SUB (q) = SUB (p);
+     }
+ }
+ 
+ /* Driver for reducing declarers.  */
+ 
+ static void
+ reduce_declarers (NODE_T *p, enum a68_attribute expect)
+ {
+   NODE_T *q; bool siga; /* Must be in this scope.  */
+ 
+   /* Reduce lengtheties.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       siga = true;
+       reduce (q, NO_NOTE, NO_TICK, LONGETY, LONG_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SHORTETY, SHORT_SYMBOL, STOP);
+       while (siga)
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, LONGETY, LONGETY, LONG_SYMBOL, STOP);
+ 	  reduce (q, NO_NOTE, &siga, SHORTETY, SHORTETY, SHORT_SYMBOL, STOP);
+ 	}
+     }
+ 
+   /* Reduce indicants.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, INT_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, REAL_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, BITS_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, BYTES_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, COMPLEX_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, COMPL_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, BOOL_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, CHAR_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, FORMAT_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, STRING_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, FILE_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, CHANNEL_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INDICANT, SEMA_SYMBOL, STOP);
+     }
+ 
+   /* Reduce standard stuff.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (a68_whether (q, LONGETY, INDICANT, STOP))
+ 	{
+ 	  int a;
+ 
+ 	  if (SUB_NEXT (q) == NO_NODE)
+ 	    {
+ 	      a68_error (NEXT (q), "appropriate declarer expected");
+ 	      reduce (q, NO_NOTE, NO_TICK, DECLARER, LONGETY, INDICANT, STOP);
+ 	    }
+ 	  else
+ 	    {
+ 	      a = ATTRIBUTE (SUB_NEXT (q));
+ 
+ 	      if (a == INT_SYMBOL || a == REAL_SYMBOL || a == BITS_SYMBOL
+ 		  || a == BYTES_SYMBOL || a == COMPLEX_SYMBOL
+ 		  || a == COMPL_SYMBOL)
+ 		{
+ 		  reduce (q, NO_NOTE, NO_TICK, DECLARER, LONGETY, INDICANT, STOP);
+ 		}
+ 	      else
+ 		{
+ 		  a68_error (NEXT (q), "appropriate declarer expected");
+ 		  reduce (q, NO_NOTE, NO_TICK, DECLARER, LONGETY, INDICANT, STOP);
+ 		}
+ 	    }
+ 	}
+       else if (a68_whether (q, SHORTETY, INDICANT, STOP))
+ 	{
+ 	  int a;
+ 
+ 	  if (SUB_NEXT (q) == NO_NODE)
+ 	    {
+ 	      a68_error (NEXT (q), "appropriate declarer expected");
+ 	      reduce (q, NO_NOTE, NO_TICK, DECLARER, SHORTETY, INDICANT, STOP);
+ 	    }
+ 	  else
+ 	    {
+ 	      a = ATTRIBUTE (SUB_NEXT (q));
+ 	      if (a == INT_SYMBOL || a == REAL_SYMBOL || a == BITS_SYMBOL
+ 		  || a == BYTES_SYMBOL || a == COMPLEX_SYMBOL || a == COMPL_SYMBOL)
+ 		{
+ 		  reduce (q, NO_NOTE, NO_TICK, DECLARER, SHORTETY, INDICANT, STOP);
+ 		}
+ 	      else
+ 		{
+ 		  a68_error (NEXT (q), "appropriate declarer expected");
+ 		  reduce (q, NO_NOTE, NO_TICK, DECLARER, LONGETY, INDICANT, STOP);
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, DECLARER, INDICANT, STOP);
+ 
+   /* Reduce declarer lists.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (NEXT (q) != NO_NODE && SUB_NEXT (q) != NO_NODE)
+ 	{
+ 	  if (IS (q, STRUCT_SYMBOL))
+ 	    {
+ 	      reduce_branch (NEXT (q), STRUCTURE_PACK);
+ 	      reduce (q, NO_NOTE, NO_TICK, DECLARER, STRUCT_SYMBOL, STRUCTURE_PACK, STOP);
+ 	    }
+ 	  else if (IS (q, UNION_SYMBOL))
+ 	    {
+ 	      reduce_branch (NEXT (q), UNION_PACK);
+ 	      reduce (q, NO_NOTE, NO_TICK, DECLARER, UNION_SYMBOL, UNION_PACK, STOP);
+ 	    }
+ 	  else if (IS (q, PROC_SYMBOL))
+ 	    {
+ 	      if (a68_whether (q, PROC_SYMBOL, OPEN_SYMBOL, STOP))
+ 		{
+ 		  if (!a68_is_formal_bounds (SUB_NEXT (q)))
+ 		    reduce_branch (NEXT (q), FORMAL_DECLARERS);
+ 		}
+ 	    }
+ 	  else if (IS (q, OP_SYMBOL))
+ 	    {
+ 	      if (a68_whether (q, OP_SYMBOL, OPEN_SYMBOL, STOP))
+ 		{
+ 		  if (!a68_is_formal_bounds (SUB_NEXT (q)))
+ 		    reduce_branch (NEXT (q), FORMAL_DECLARERS);
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   /* Reduce row, proc or op declarers.  */
+   siga = true;
+   while (siga)
+     {
+     siga = false;
+ 
+     for (q = p; q != NO_NODE; FORWARD (q))
+       {
+ 	/* FLEX DECL.  */
+ 	if (a68_whether (q, FLEX_SYMBOL, DECLARER, STOP))
+ 	  reduce (q, NO_NOTE, &siga, DECLARER, FLEX_SYMBOL, DECLARER, STOP);
+ 
+ 	/* FLEX [] DECL.  */
+ 	if (a68_whether (q, FLEX_SYMBOL, SUB_SYMBOL, DECLARER, STOP) && SUB_NEXT (q) != NO_NODE)
+ 	  {
+ 	    reduce_branch (NEXT (q), BOUNDS);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, FLEX_SYMBOL, BOUNDS, DECLARER, STOP);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, FLEX_SYMBOL, FORMAL_BOUNDS, DECLARER, STOP);
+ 	  }
+ 
+ 	/* FLEX () DECL.  */
+ 	if (a68_whether (q, FLEX_SYMBOL, OPEN_SYMBOL, DECLARER, STOP) && SUB_NEXT (q) != NO_NODE)
+ 	  {
+ 	    if (!a68_whether (q, FLEX_SYMBOL, OPEN_SYMBOL, DECLARER, COLON_SYMBOL, STOP))
+ 	      {
+ 		reduce_branch (NEXT (q), BOUNDS);
+ 		reduce (q, NO_NOTE, &siga, DECLARER, FLEX_SYMBOL, BOUNDS, DECLARER, STOP);
+ 		reduce (q, NO_NOTE, &siga, DECLARER, FLEX_SYMBOL, FORMAL_BOUNDS, DECLARER, STOP);
+ 	      }
+ 	  }
+ 
+ 	/* [] DECL.  */
+ 	if (a68_whether (q, SUB_SYMBOL, DECLARER, STOP) && SUB (q) != NO_NODE)
+ 	  {
+ 	    reduce_branch (q, BOUNDS);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, BOUNDS, DECLARER, STOP);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, FORMAL_BOUNDS, DECLARER, STOP);
+ 	  }
+ 
+ 	/* () DECL.  */
+ 	if (a68_whether (q, OPEN_SYMBOL, DECLARER, STOP) && SUB (q) != NO_NODE)
+ 	  {
+ 	    if (a68_whether (q, OPEN_SYMBOL, DECLARER, COLON_SYMBOL, STOP))
+ 	      {
+ 		/* Catch e.g. (INT i) () INT:.  */
+ 		if (a68_is_formal_bounds (SUB (q)))
+ 		  {
+ 		    reduce_branch (q, BOUNDS);
+ 		    reduce (q, NO_NOTE, &siga, DECLARER, BOUNDS, DECLARER, STOP);
+ 		    reduce (q, NO_NOTE, &siga, DECLARER, FORMAL_BOUNDS, DECLARER, STOP);
+ 		  }
+ 	      }
+ 	    else
+ 	      {
+ 		reduce_branch (q, BOUNDS);
+ 		reduce (q, NO_NOTE, &siga, DECLARER, BOUNDS, DECLARER, STOP);
+ 		reduce (q, NO_NOTE, &siga, DECLARER, FORMAL_BOUNDS, DECLARER, STOP);
+ 	      }
+ 	  }
+       }
+ 
+     /* PROC DECL, PROC () DECL, OP () DECL.  */
+     for (q = p; q != NO_NODE; FORWARD (q))
+       {
+ 	int a = ATTRIBUTE (q);
+ 	if (a == REF_SYMBOL)
+ 	  reduce (q, NO_NOTE, &siga, DECLARER, REF_SYMBOL, DECLARER, STOP);
+ 	else if (a == PROC_SYMBOL)
+ 	  {
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, PROC_SYMBOL, DECLARER, STOP);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, PROC_SYMBOL, FORMAL_DECLARERS, DECLARER, STOP);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, PROC_SYMBOL, VOID_SYMBOL, STOP);
+ 	    reduce (q, NO_NOTE, &siga, DECLARER, PROC_SYMBOL, FORMAL_DECLARERS, VOID_SYMBOL, STOP);
+ 	  }
+ 	else if (a == OP_SYMBOL)
+ 	  {
+ 	    reduce (q, NO_NOTE, &siga, OPERATOR_PLAN, OP_SYMBOL, FORMAL_DECLARERS, DECLARER, STOP);
+ 	    reduce (q, NO_NOTE, &siga, OPERATOR_PLAN, OP_SYMBOL, FORMAL_DECLARERS, VOID_SYMBOL, STOP);
+ 	  }
+       }
+     }
+ 
+   /* Reduce packs etcetera.  */
+   if (expect == STRUCTURE_PACK)
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, STRUCTURED_FIELD, DECLARER, IDENTIFIER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, STRUCTURED_FIELD, STRUCTURED_FIELD, COMMA_SYMBOL, IDENTIFIER, STOP);
+ 	    }
+ 	}
+ 
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, STRUCTURED_FIELD_LIST, STRUCTURED_FIELD, STOP);
+ 	      reduce (q, NO_NOTE, &siga, STRUCTURED_FIELD_LIST, STRUCTURED_FIELD_LIST,
+ 		      COMMA_SYMBOL, STRUCTURED_FIELD, STOP);
+ 	      reduce (q, strange_separator, &siga, STRUCTURED_FIELD_LIST, STRUCTURED_FIELD_LIST,
+ 		      STRUCTURED_FIELD, STOP);
+ 	      reduce (q, strange_separator, &siga, STRUCTURED_FIELD_LIST, STRUCTURED_FIELD_LIST,
+ 		      SEMI_SYMBOL, STRUCTURED_FIELD, STOP);
+ 	    }
+ 	}
+     q = p;
+     reduce (q, NO_NOTE, NO_TICK, STRUCTURE_PACK, OPEN_SYMBOL, STRUCTURED_FIELD_LIST,
+ 	    CLOSE_SYMBOL, STOP);
+     }
+   else if (expect == PARAMETER_PACK)
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, PARAMETER, DECLARER, IDENTIFIER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, PARAMETER, PARAMETER, COMMA_SYMBOL, IDENTIFIER, STOP);
+ 	    }
+ 	}
+ 
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, PARAMETER_LIST, PARAMETER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, PARAMETER_LIST, PARAMETER_LIST, COMMA_SYMBOL, PARAMETER, STOP);
+ 	    }
+ 	}
+       q = p;
+       reduce (q, NO_NOTE, NO_TICK, PARAMETER_PACK, OPEN_SYMBOL, PARAMETER_LIST,
+ 	      CLOSE_SYMBOL, STOP);
+     }
+   else if (expect == FORMAL_DECLARERS)
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, FORMAL_DECLARERS_LIST, DECLARER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, FORMAL_DECLARERS_LIST, FORMAL_DECLARERS_LIST,
+ 		      COMMA_SYMBOL, DECLARER, STOP);
+ 	      reduce (q, strange_separator, &siga, FORMAL_DECLARERS_LIST, FORMAL_DECLARERS_LIST,
+ 		      SEMI_SYMBOL, DECLARER, STOP);
+ 	      reduce (q, strange_separator, &siga, FORMAL_DECLARERS_LIST, FORMAL_DECLARERS_LIST,
+ 		      DECLARER, STOP);
+ 	    }
+ 	}
+       q = p;
+       reduce (q, NO_NOTE, NO_TICK, FORMAL_DECLARERS, OPEN_SYMBOL, FORMAL_DECLARERS_LIST,
+ 	      CLOSE_SYMBOL, STOP);
+     }
+   else if (expect == UNION_PACK)
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, UNION_DECLARER_LIST, DECLARER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, UNION_DECLARER_LIST, VOID_SYMBOL, STOP);
+ 	      reduce (q, NO_NOTE, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      COMMA_SYMBOL, DECLARER, STOP);
+ 	      reduce (q, NO_NOTE, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      COMMA_SYMBOL, VOID_SYMBOL, STOP);
+ 	      reduce (q, strange_separator, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      SEMI_SYMBOL, DECLARER, STOP);
+ 	      reduce (q, strange_separator, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      SEMI_SYMBOL, VOID_SYMBOL, STOP);
+ 	      reduce (q, strange_separator, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      DECLARER, STOP);
+ 	      reduce (q, strange_separator, &siga, UNION_DECLARER_LIST, UNION_DECLARER_LIST,
+ 		      VOID_SYMBOL, STOP);
+ 	    }
+ 	}
+       q = p;
+       reduce (q, NO_NOTE, NO_TICK, UNION_PACK, OPEN_SYMBOL, UNION_DECLARER_LIST,
+ 	      CLOSE_SYMBOL, STOP);
+     }
+   else if (expect == SPECIFIER)
+     {
+       reduce (p, NO_NOTE, NO_TICK, SPECIFIER, OPEN_SYMBOL, DECLARER, IDENTIFIER, CLOSE_SYMBOL, STOP);
+       reduce (p, NO_NOTE, NO_TICK, SPECIFIER, OPEN_SYMBOL, DECLARER, CLOSE_SYMBOL, STOP);
+       reduce (p, NO_NOTE, NO_TICK, SPECIFIER, OPEN_SYMBOL, VOID_SYMBOL, CLOSE_SYMBOL, STOP);
+     }
+   else
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (a68_whether (q, OPEN_SYMBOL, COLON_SYMBOL, STOP)
+ 	      && !(expect == GENERIC_ARGUMENT || expect == BOUNDS))
+ 	    {
+ 	      if (a68_is_one_of (p, IN_SYMBOL, THEN_BAR_SYMBOL, STOP))
+ 		reduce_branch (q, SPECIFIER);
+ 	    }
+ 	  if (a68_whether (q, OPEN_SYMBOL, DECLARER, COLON_SYMBOL, STOP))
+ 	    reduce_branch (q, PARAMETER_PACK);
+ 	  if (a68_whether (q, OPEN_SYMBOL, VOID_SYMBOL, COLON_SYMBOL, STOP))
+ 	    reduce_branch (q, PARAMETER_PACK);
+ 	}
+     }
+ }
+ 
+ /* Handle cases that need reducing from right-to-left.  */
+ 
+ static void
+ reduce_right_to_left_constructs (NODE_T *p)
+ {
+   /* Here are cases that need reducing from right-to-left whereas many things
+      can be reduced left-to-right. Assignations are a notable example; one
+      could discuss whether it would not be more natural to write 1 =: k instead
+      of k := 1. (jemarch: MARY did just that.)  The latter is said to be more
+      natural, or it could be just computing history. Meanwhile we use this
+      routine.  */
+ 
+   if (p != NO_NODE)
+     {
+       reduce_right_to_left_constructs (NEXT (p));
+       /* Assignations.  */
+       if (IS (p, TERTIARY))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, TERTIARY, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, IDENTITY_RELATION, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, AND_FUNCTION, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, OR_FUNCTION, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, ROUTINE_TEXT, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, JUMP, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, SKIP, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, ASSIGNATION, TERTIARY, ASSIGN_SYMBOL, ASSIGNATION, STOP);
+ 	}
+ 
+       /* Routine texts with parameter pack.  */
+     else if (IS (p, PARAMETER_PACK))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, ASSIGNATION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, IDENTITY_RELATION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL,AND_FUNCTION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, OR_FUNCTION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, JUMP, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, SKIP, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, TERTIARY, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, DECLARER, COLON_SYMBOL, ROUTINE_TEXT, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, ASSIGNATION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, IDENTITY_RELATION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, AND_FUNCTION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, OR_FUNCTION, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, JUMP, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, SKIP, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, TERTIARY, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		ROUTINE_TEXT, PARAMETER_PACK, VOID_SYMBOL, COLON_SYMBOL, ROUTINE_TEXT, STOP);
+       }
+       /* Routine texts without parameter pack. */
+     else if (IS (p, DECLARER))
+       {
+ 	if (!(PREVIOUS (p) != NO_NODE && IS (PREVIOUS (p), PARAMETER_PACK)))
+ 	  {
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, ASSIGNATION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, IDENTITY_RELATION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, AND_FUNCTION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, OR_FUNCTION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, JUMP, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, SKIP, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, TERTIARY, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, DECLARER, COLON_SYMBOL, ROUTINE_TEXT, STOP);
+ 	  }
+       }
+     else if (IS (p, VOID_SYMBOL))
+       {
+ 	if (!(PREVIOUS (p) != NO_NODE && IS (PREVIOUS (p), PARAMETER_PACK)))
+ 	  {
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, ASSIGNATION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, IDENTITY_RELATION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, AND_FUNCTION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, OR_FUNCTION, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, JUMP, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, SKIP, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, TERTIARY, STOP);
+ 	    reduce (p, NO_NOTE, NO_TICK, ROUTINE_TEXT, VOID_SYMBOL, COLON_SYMBOL, ROUTINE_TEXT, STOP);
+ 	  }
+       }
+     }
+ }
+ 
+ /* Reduce primary elements.  */
+ 
+ static void
+ reduce_primary_parts (NODE_T *p, enum a68_attribute expect)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (a68_whether (q, IDENTIFIER, OF_SYMBOL, STOP)
+ 	  || a68_whether (q, IDENTIFIER, QUOTE_SYMBOL, STOP))
+ 	ATTRIBUTE (q) = FIELD_IDENTIFIER;
+ 
+       reduce (q, NO_NOTE, NO_TICK, NIHIL, NIL_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SKIP, SKIP_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SELECTOR, FIELD_IDENTIFIER, OF_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SELECTOR, FIELD_IDENTIFIER, QUOTE_SYMBOL, STOP);
+       /* JUMPs without GOTO are resolved later.  */
+       reduce (q, NO_NOTE, NO_TICK, JUMP, GOTO_SYMBOL, IDENTIFIER, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, LONGETY, INT_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, LONGETY, REAL_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, LONGETY, BITS_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, SHORTETY, INT_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, SHORTETY, REAL_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, SHORTETY, BITS_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, INT_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, REAL_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, BITS_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, ROW_CHAR_DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, TRUE_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, FALSE_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DENOTATION, EMPTY_SYMBOL, STOP);
+       if (expect == SERIAL_CLAUSE || expect == ENQUIRY_CLAUSE || expect == SOME_CLAUSE)
+ 	{
+ 	  bool siga = true;
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+ 	      reduce (q, NO_NOTE, &siga, LABEL, LABEL, DEFINING_IDENTIFIER, COLON_SYMBOL, STOP);
+ 	    }
+ 	}
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, PARALLEL_CLAUSE, PAR_SYMBOL, COLLATERAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, ACCESS_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, PARALLEL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, COLLATERAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONDITIONAL_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CASE_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONFORMITY_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, LOOP_CLAUSE, STOP);
+     }
+ }
+ 
+ /* Reduce primaries completely.  */
+ 
+ static void
+ reduce_primaries (NODE_T *p, enum a68_attribute expect)
+ {
+   NODE_T *q = p;
+   while (q != NO_NODE)
+     {
+       bool fwd = true, siga;
+       /* Primaries excepts call and slice.  */
+       reduce (q, NO_NOTE, NO_TICK, PRIMARY, IDENTIFIER, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PRIMARY, DENOTATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, CAST, DECLARER, ENCLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, CAST, VOID_SYMBOL, ENCLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, ASSERTION, ASSERT_SYMBOL, ENCLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PRIMARY, CAST, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PRIMARY, ENCLOSED_CLAUSE, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PRIMARY, FORMAT_TEXT, STOP);
+       /* Call and slice.  */
+       siga = true;
+       while (siga)
+ 	{
+ 	  NODE_T *x = NEXT (q);
+ 
+ 	  siga = false;
+ 	  if (IS (q, PRIMARY) && x != NO_NODE)
+ 	    {
+ 	      if (IS (x, OPEN_SYMBOL))
+ 		{
+ 		  reduce_branch (NEXT (q), GENERIC_ARGUMENT);
+ 		  reduce (q, NO_NOTE, &siga, SPECIFICATION, PRIMARY, GENERIC_ARGUMENT, STOP);
+ 		  reduce (q, NO_NOTE, &siga, PRIMARY, SPECIFICATION, STOP);
+ 		}
+ 	      else if (IS (x, SUB_SYMBOL))
+ 		{
+ 		  reduce_branch (NEXT (q), GENERIC_ARGUMENT);
+ 		  reduce (q, NO_NOTE, &siga, SPECIFICATION, PRIMARY, GENERIC_ARGUMENT, STOP);
+ 		  reduce (q, NO_NOTE, &siga, PRIMARY, SPECIFICATION, STOP);
+ 		}
+ 	    }
+ 	}
+ 
+       /* Now that call and slice are known, reduce remaining ( .. ).  */
+       if (IS (q, OPEN_SYMBOL) && SUB (q) != NO_NODE)
+ 	{
+ 	  reduce_branch (q, SOME_CLAUSE);
+ 	  reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CLOSED_CLAUSE, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, COLLATERAL_CLAUSE, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONDITIONAL_CLAUSE, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CASE_CLAUSE, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONFORMITY_CLAUSE, STOP);
+ 	  if (PREVIOUS (q) != NO_NODE)
+ 	    {
+ 	      BACKWARD (q);
+ 	      fwd = false;
+ 	    }
+ 	}
+ 
+       /* Format text items.  */
+       if (expect == FORMAT_TEXT)
+ 	{
+ 	  NODE_T *r;
+ 
+ 	  for (r = p; r != NO_NODE; FORWARD (r))
+ 	    {
+ 	      reduce (r, NO_NOTE, NO_TICK, DYNAMIC_REPLICATOR, FORMAT_ITEM_N, ENCLOSED_CLAUSE, STOP);
+ 	      reduce (r, NO_NOTE, NO_TICK, GENERAL_PATTERN, FORMAT_ITEM_G, ENCLOSED_CLAUSE, STOP);
+ 	      reduce (r, NO_NOTE, NO_TICK, GENERAL_PATTERN, FORMAT_ITEM_H, ENCLOSED_CLAUSE, STOP);
+ 	      reduce (r, NO_NOTE, NO_TICK, FORMAT_PATTERN, FORMAT_ITEM_F, ENCLOSED_CLAUSE, STOP);
+ 	    }
+ 	}
+       if (fwd)
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Enforce that ambiguous patterns are separated by commas.  */
+ 
+ static void
+ ambiguous_patterns (NODE_T *p)
+ {
+   /* Example: printf (($+d.2d +d.2d$, 1, 2)) can produce either "+1.00 +2.00"
+      or "+1+002.00". A comma must be supplied to resolve the ambiguity.
+ 
+      The obvious thing would be to weave this into the syntax, letting the BU
+      parser sort it out. But the C-style patterns do not suffer from Algol 68
+      pattern ambiguity, so by solving it this way we maximise freedom in
+      writing the patterns as we want without introducing two "kinds" of
+      patterns, and so we have shorter routines for implementing formatted
+      transput. This is a pragmatic system.  */
+   NODE_T *q, *last_pat = NO_NODE;
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       switch (ATTRIBUTE (q))
+ 	{
+ 	  /* These are the potentially ambiguous patterns.  */
+ 	case INTEGRAL_PATTERN:
+ 	case REAL_PATTERN:
+ 	case COMPLEX_PATTERN:
+ 	case BITS_PATTERN:
+ 	  if (last_pat != NO_NODE)
+ 	    {
+ 	      a68_attr_format_token a1 (ATTRIBUTE (last_pat));
+ 	      a68_attr_format_token a2 (ATTRIBUTE (q));
+ 	      a68_error (q, "%e and %e must be separated by a comma-symbol",
+ 			 &a1, &a2);
+ 	    }
+ 	  last_pat = q;
+ 	  break;
+ 	case COMMA_SYMBOL:
+ 	  last_pat = NO_NODE;
+ 	  break;
+ 	default:
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Reduce C format texts completely.  */
+ 
+ static void
+ reduce_c_pattern (NODE_T *p, int pr, int let)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, REPLICATOR, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_PLUS, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_PLUS, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_PLUS, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_PLUS, REPLICATOR, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, REPLICATOR, FORMAT_ITEM_POINT, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_PLUS, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_PLUS, FORMAT_ITEM_POINT, REPLICATOR,
+ 	      let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_PLUS, REPLICATOR, let, STOP);
+       reduce (q, NO_NOTE, NO_TICK, pr,
+ 	      FORMAT_ITEM_ESCAPE, FORMAT_ITEM_MINUS, FORMAT_ITEM_PLUS, REPLICATOR, FORMAT_ITEM_POINT,
+ 	      REPLICATOR, let, STOP);
+   }
+ }
+ 
+ /* Reduce format texts completely.  */
+ 
+ static void
+ reduce_format_texts (NODE_T *p)
+ {
+   /* Replicators.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, REPLICATOR, STATIC_REPLICATOR, STOP);
+       reduce (q, NO_NOTE, NO_TICK, REPLICATOR, DYNAMIC_REPLICATOR, STOP);
+     }
+ 
+   /* "OTHER" patterns.  */
+   reduce_c_pattern (p, BITS_C_PATTERN, FORMAT_ITEM_B);
+   reduce_c_pattern (p, BITS_C_PATTERN, FORMAT_ITEM_O);
+   reduce_c_pattern (p, BITS_C_PATTERN, FORMAT_ITEM_X);
+   reduce_c_pattern (p, CHAR_C_PATTERN, FORMAT_ITEM_C);
+   reduce_c_pattern (p, FIXED_C_PATTERN, FORMAT_ITEM_F);
+   reduce_c_pattern (p, FLOAT_C_PATTERN, FORMAT_ITEM_E);
+   reduce_c_pattern (p, GENERAL_C_PATTERN, FORMAT_ITEM_G);
+   reduce_c_pattern (p, INTEGRAL_C_PATTERN, FORMAT_ITEM_D);
+   reduce_c_pattern (p, INTEGRAL_C_PATTERN, FORMAT_ITEM_I);
+   reduce_c_pattern (p, STRING_C_PATTERN, FORMAT_ITEM_S);
+   /* Radix frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, RADIX_FRAME, REPLICATOR, FORMAT_ITEM_R, STOP);
+ 
+   /* Insertions.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_X, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_Y, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_L, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_P, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_Q, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, FORMAT_ITEM_K, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, LITERAL, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, INSERTION, REPLICATOR, INSERTION, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga = true;
+       while (siga)
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, INSERTION, INSERTION, INSERTION, STOP);
+ 	}
+     }
+ 
+   /* Replicated suppressible frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_A_FRAME, REPLICATOR, FORMAT_ITEM_S, FORMAT_ITEM_A, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_Z_FRAME, REPLICATOR, FORMAT_ITEM_S, FORMAT_ITEM_Z, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_D_FRAME, REPLICATOR, FORMAT_ITEM_S, FORMAT_ITEM_D, STOP);
+     }
+ 
+   /* Suppressible frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_A_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_A, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_Z_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_Z, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_D_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_D, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_E_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_E, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_POINT_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_POINT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_I_FRAME, FORMAT_ITEM_S, FORMAT_ITEM_I, STOP);
+     }
+ 
+   /* Replicated frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_A_FRAME, REPLICATOR, FORMAT_ITEM_A, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_Z_FRAME, REPLICATOR, FORMAT_ITEM_Z, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_D_FRAME, REPLICATOR, FORMAT_ITEM_D, STOP);
+     }
+ 
+   /* Frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_A_FRAME, FORMAT_ITEM_A, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_Z_FRAME, FORMAT_ITEM_Z, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_D_FRAME, FORMAT_ITEM_D, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_E_FRAME, FORMAT_ITEM_E, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_POINT_FRAME, FORMAT_ITEM_POINT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_I_FRAME, FORMAT_ITEM_I, STOP);
+     }
+ 
+   /* Frames with an insertion.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_A_FRAME, INSERTION, FORMAT_A_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_Z_FRAME, INSERTION, FORMAT_Z_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_D_FRAME, INSERTION, FORMAT_D_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_E_FRAME, INSERTION, FORMAT_E_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_POINT_FRAME, INSERTION, FORMAT_POINT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMAT_I_FRAME, INSERTION, FORMAT_I_FRAME, STOP);
+     }
+ 
+   /* String patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, STRING_PATTERN, REPLICATOR, FORMAT_A_FRAME, STOP);
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, STRING_PATTERN, FORMAT_A_FRAME, STOP);
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga = true;
+       while (siga)
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, STRING_PATTERN, STRING_PATTERN, STRING_PATTERN, STOP);
+ 	  reduce (q, NO_NOTE, &siga, STRING_PATTERN, STRING_PATTERN, INSERTION, STRING_PATTERN, STOP);
+ 	}
+     }
+ 
+   /* Integral moulds.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, INTEGRAL_MOULD, FORMAT_Z_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INTEGRAL_MOULD, FORMAT_D_FRAME, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga = true;
+       while (siga)
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, INTEGRAL_MOULD, INTEGRAL_MOULD, INTEGRAL_MOULD, STOP);
+ 	  reduce (q, NO_NOTE, &siga, INTEGRAL_MOULD, INTEGRAL_MOULD, INSERTION, STOP);
+ 	}
+     }
+ 
+   /* Sign moulds.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_ITEM_PLUS, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_ITEM_MINUS, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, SIGN_MOULD, FORMAT_ITEM_PLUS, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SIGN_MOULD, FORMAT_ITEM_MINUS, STOP);
+     }
+ 
+   /* Exponent frames.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, EXPONENT_FRAME, FORMAT_E_FRAME, SIGN_MOULD, INTEGRAL_MOULD, STOP);
+       reduce (q, NO_NOTE, NO_TICK, EXPONENT_FRAME, FORMAT_E_FRAME, INTEGRAL_MOULD, STOP);
+     }
+ 
+   /* Real patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, EXPONENT_FRAME,
+ 	      STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_POINT_FRAME, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, FORMAT_POINT_FRAME, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, SIGN_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, REAL_PATTERN, SIGN_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, STOP);
+       reduce (q, NO_NOTE, NO_TICK, REAL_PATTERN, SIGN_MOULD, FORMAT_POINT_FRAME, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, REAL_PATTERN, SIGN_MOULD, FORMAT_POINT_FRAME, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, INTEGRAL_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, INTEGRAL_MOULD, FORMAT_POINT_FRAME, INTEGRAL_MOULD, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, INTEGRAL_MOULD, FORMAT_POINT_FRAME, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, INTEGRAL_MOULD, FORMAT_POINT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, FORMAT_POINT_FRAME, INTEGRAL_MOULD, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      REAL_PATTERN, FORMAT_POINT_FRAME, INTEGRAL_MOULD, STOP);
+   }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, REAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, EXPONENT_FRAME, STOP);
+       reduce (q, NO_NOTE, NO_TICK, REAL_PATTERN, INTEGRAL_MOULD, EXPONENT_FRAME, STOP);
+     }
+ 
+   /* Complex patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, COMPLEX_PATTERN, REAL_PATTERN, FORMAT_I_FRAME, REAL_PATTERN, STOP);
+ 
+   /* Bits patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, BITS_PATTERN, RADIX_FRAME, INTEGRAL_MOULD, STOP);
+ 
+   /* Integral patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, INTEGRAL_PATTERN, SIGN_MOULD, INTEGRAL_MOULD, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INTEGRAL_PATTERN, INTEGRAL_MOULD, STOP);
+     }
+ 
+   /* Patterns.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, BOOLEAN_PATTERN, FORMAT_ITEM_B, COLLECTION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, CHOICE_PATTERN, FORMAT_ITEM_C, COLLECTION, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, BOOLEAN_PATTERN, FORMAT_ITEM_B, STOP);
+       reduce (q, NO_NOTE, NO_TICK, GENERAL_PATTERN, FORMAT_ITEM_G, STOP);
+       reduce (q, NO_NOTE, NO_TICK, GENERAL_PATTERN, FORMAT_ITEM_H, STOP);
+     }
+ 
+   ambiguous_patterns (p);
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, BITS_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, CHAR_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, FIXED_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, FLOAT_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, GENERAL_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, INTEGRAL_C_PATTERN, STOP);
+       reduce (q, a68_extension, NO_TICK, A68_PATTERN, STRING_C_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, BITS_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, BOOLEAN_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, CHOICE_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, COMPLEX_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, FORMAT_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, GENERAL_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, INTEGRAL_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, REAL_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, A68_PATTERN, STRING_PATTERN, STOP);
+     }
+ 
+   /* Pictures.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, PICTURE, INSERTION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PICTURE, A68_PATTERN, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PICTURE, COLLECTION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, PICTURE, REPLICATOR, COLLECTION, STOP);
+     }
+ 
+   /* Picture lists.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, PICTURE))
+ 	{
+ 	  bool siga = true;
+ 	  reduce (q, NO_NOTE, NO_TICK, PICTURE_LIST, PICTURE, STOP);
+ 	  while (siga)
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, PICTURE_LIST, PICTURE_LIST, COMMA_SYMBOL, PICTURE, STOP);
+ 	      /* We filtered ambiguous patterns, so commas may be omitted  */
+ 	      reduce (q, NO_NOTE, &siga, PICTURE_LIST, PICTURE_LIST, PICTURE, STOP);
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Reduce secondaries completely.  */
+ 
+ static void
+ reduce_secondaries (NODE_T *p)
+ {
+   NODE_T *q; bool siga;
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, SECONDARY, PRIMARY, STOP);
+       reduce (q, NO_NOTE, NO_TICK, GENERATOR, LOC_SYMBOL, DECLARER, STOP);
+       reduce (q, NO_NOTE, NO_TICK, GENERATOR, HEAP_SYMBOL, DECLARER, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SECONDARY, GENERATOR, STOP);
+     }
+   siga = true;
+   while (siga)
+     {
+       siga = false;
+       for (q = p; NEXT (q) != NO_NODE; FORWARD (q))
+ 	;
+       for (; q != NO_NODE; BACKWARD (q))
+ 	{
+ 	  reduce (q, NO_NOTE, &siga, SELECTION, SELECTOR, SECONDARY, STOP);
+ 	  reduce (q, NO_NOTE, &siga, SECONDARY, SELECTION, STOP);
+ 	}
+     }
+ }
+ 
+ /* Whether Q is an operator with priority K.  */
+ 
+ static int
+ operator_with_priority (NODE_T *q, int k)
+ {
+   return NEXT (q) != NO_NODE
+     && ATTRIBUTE (NEXT (q)) == OPERATOR && PRIO (INFO (NEXT (q))) == k;
+ }
+ 
+ /* Reduce formulae.  */
+ 
+ static void
+ reduce_formulae (NODE_T * p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (a68_is_one_of (q, OPERATOR, SECONDARY, STOP))
+ 	q = reduce_dyadic (q, STOP);
+       else
+ 	FORWARD (q);
+     }
+ 
+   /* Reduce the expression.  */
+   for (int prio = MAX_PRIORITY; prio >= 0; prio--)
+     {
+       for (q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (operator_with_priority (q, prio))
+ 	    {
+ 	      bool siga = false;
+ 	      NODE_T *op = NEXT (q);
+ 	      if (IS (q, SECONDARY))
+ 		{
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, SECONDARY, OPERATOR, SECONDARY, STOP);
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, SECONDARY, OPERATOR, MONADIC_FORMULA, STOP);
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, SECONDARY, OPERATOR, FORMULA, STOP);
+ 		}
+ 	      else if (IS (q, MONADIC_FORMULA))
+ 		{
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, MONADIC_FORMULA, OPERATOR, SECONDARY, STOP);
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, MONADIC_FORMULA, OPERATOR, MONADIC_FORMULA, STOP);
+ 		  reduce (q, NO_NOTE, &siga, FORMULA, MONADIC_FORMULA, OPERATOR, FORMULA, STOP);
+ 		}
+ 	      if (prio == 0 && siga)
+ 		{
+ 		  a68_symbol_format_token s (op);
+ 		  a68_error (op, "%e has no priority declaration", &s);
+ 		}
+ 	      siga = true;
+ 	      while (siga)
+ 		{
+ 		  NODE_T *op2 = NEXT (q);
+ 		  siga = false;
+ 		  if (operator_with_priority (q, prio))
+ 		    reduce (q, NO_NOTE, &siga, FORMULA, FORMULA, OPERATOR, SECONDARY, STOP);
+ 		  if (operator_with_priority (q, prio))
+ 		    reduce (q, NO_NOTE, &siga, FORMULA, FORMULA, OPERATOR, MONADIC_FORMULA, STOP);
+ 		  if (operator_with_priority (q, prio))
+ 		    reduce (q, NO_NOTE, &siga, FORMULA, FORMULA, OPERATOR, FORMULA, STOP);
+ 		  if (prio == 0 && siga)
+ 		    {
+ 		      a68_symbol_format_token s (op2);
+ 		      a68_error (op2, "%e has no priority declaration", &s);
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Reduce dyadic expressions.  */
+ 
+ static NODE_T *
+ reduce_dyadic (NODE_T *p, int u)
+ {
+   /* We work inside out - higher priority expressions get reduced first.  */
+   if (u > MAX_PRIORITY)
+     {
+       if (p == NO_NODE)
+ 	return NO_NODE;
+       else if (IS (p, OPERATOR))
+ 	{
+ 	  /* Reduce monadic formulas.  */
+ 	  NODE_T *q = p;
+ 	  bool siga;
+ 	  do
+ 	    {
+ 	      PRIO (INFO (q)) = 10;
+ 	      siga = ((NEXT (q) != NO_NODE) && (IS (NEXT (q), OPERATOR)));
+ 	      if (siga)
+ 		FORWARD (q);
+ 	    }
+ 	  while (siga);
+ 	  reduce (q, NO_NOTE, NO_TICK, MONADIC_FORMULA, OPERATOR, SECONDARY, STOP);
+ 	  while (q != p)
+ 	    {
+ 	      BACKWARD (q);
+ 	      reduce (q, NO_NOTE, NO_TICK, MONADIC_FORMULA, OPERATOR, MONADIC_FORMULA, STOP);
+ 	    }
+ 	}
+       FORWARD (p);
+     }
+   else
+     {
+       p = reduce_dyadic (p, u + 1);
+       while (p != NO_NODE && IS (p, OPERATOR) && PRIO (INFO (p)) == u)
+ 	{
+ 	  FORWARD (p);
+ 	  p = reduce_dyadic (p, u + 1);
+ 	}
+     }
+   return p;
+ }
+ 
+ /* Reduce tertiaries completely.  */
+ 
+ static void
+ reduce_tertiaries (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, TERTIARY, NIHIL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, FORMULA, MONADIC_FORMULA, STOP);
+       reduce (q, NO_NOTE, NO_TICK, TERTIARY, FORMULA, STOP);
+       reduce (q, NO_NOTE, NO_TICK, TERTIARY, SECONDARY, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, IDENTITY_RELATION, TERTIARY, IS_SYMBOL, TERTIARY, STOP);
+       reduce (q, NO_NOTE, NO_TICK, IDENTITY_RELATION, TERTIARY, ISNT_SYMBOL, TERTIARY, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, AND_FUNCTION, TERTIARY, ANDF_SYMBOL, TERTIARY, STOP);
+       reduce (q, NO_NOTE, NO_TICK, OR_FUNCTION, TERTIARY, ORF_SYMBOL, TERTIARY, STOP);
+     }
+ }
+ 
+ /* Reduce formal holes.  */
+ 
+ static void
+ reduce_formal_holes (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool ahole = false;
+       reduce (q, NO_NOTE, &ahole, FORMAL_HOLE,
+ 	      FORMAL_NEST_SYMBOL, TERTIARY, STOP);
+       reduce (q, NO_NOTE, &ahole, FORMAL_HOLE,
+ 	      FORMAL_NEST_SYMBOL, LANGUAGE_INDICANT, TERTIARY, STOP);
+ 
+       if (ahole)
+ 	{
+ 	  /* Check that the tertiary is a row of chars denotation.  */
+ 	  for (NODE_T *s = SUB (q); s != NO_NODE; FORWARD (s))
+ 	    {
+ 	      if (IS (s, TERTIARY)
+ 		  && !(IS (SUB (s), SECONDARY)
+ 		       && IS (SUB (SUB (s)), PRIMARY)
+ 		       && IS (SUB (SUB (SUB (s))), DENOTATION)
+ 		       && IS (SUB (SUB (SUB (SUB (s)))), ROW_CHAR_DENOTATION)))
+ 		{
+ 		  a68_error (s, "expected %<row char%> denotation");
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Reduce units. */
+ 
+ static void
+ reduce_units (NODE_T *p)
+ {
+   /* Stray ~ is a SKIP.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, OPERATOR) && IS_LITERALLY (q, "~"))
+ 	ATTRIBUTE (q) = SKIP;
+     }
+ 
+   /* Reduce units.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, UNIT, ASSIGNATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, IDENTITY_RELATION, STOP);
+       reduce (q, a68_extension, NO_TICK, UNIT, AND_FUNCTION, STOP);
+       reduce (q, a68_extension, NO_TICK, UNIT, OR_FUNCTION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, ROUTINE_TEXT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, JUMP, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, SKIP, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, TERTIARY, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, ASSERTION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, UNIT, FORMAL_HOLE, STOP);
+     }
+ }
+ 
+ /* Reduce_generic arguments.  */
+ 
+ static void
+ reduce_generic_arguments (NODE_T *p)
+ {
+   NODE_T *q; bool siga; /* In this scope.  */
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, UNIT))
+ 	{
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, UNIT, COLON_SYMBOL, UNIT, AT_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, UNIT, COLON_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, UNIT, COLON_SYMBOL, AT_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, UNIT, COLON_SYMBOL, STOP);
+ 	}
+       else if (IS (q, COLON_SYMBOL))
+ 	{
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, COLON_SYMBOL, UNIT, AT_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, COLON_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, COLON_SYMBOL, AT_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, NO_TICK, TRIMMER, COLON_SYMBOL, STOP);
+ 	}
+     }
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, TRIMMER, UNIT, AT_SYMBOL, UNIT, STOP);
+   for (q = p; q != NO_NODE; FORWARD (q))
+     reduce (q, NO_NOTE, NO_TICK, TRIMMER, AT_SYMBOL, UNIT, STOP);
+   for (q = p; q && NEXT (q); FORWARD (q))
+     {
+       if (IS (q, COMMA_SYMBOL))
+ 	{
+ 	  if (!(ATTRIBUTE (NEXT (q)) == UNIT || ATTRIBUTE (NEXT (q)) == TRIMMER))
+ 	    pad_node (q, TRIMMER);
+ 	}
+       else
+ 	{
+ 	  if (IS (NEXT (q), COMMA_SYMBOL))
+ 	    {
+ 	      if (!IS (q, UNIT) && !IS (q, TRIMMER))
+ 		pad_node (q, TRIMMER);
+ 	    }
+ 	}
+     }
+ 
+   q = NEXT (p);
+   if (q == NO_NODE)
+     gcc_unreachable ();
+   reduce (q, NO_NOTE, NO_TICK, GENERIC_ARGUMENT_LIST, UNIT, STOP);
+   reduce (q, NO_NOTE, NO_TICK, GENERIC_ARGUMENT_LIST, TRIMMER, STOP);
+   do
+     {
+       siga = false;
+       reduce (q, NO_NOTE, &siga, GENERIC_ARGUMENT_LIST, GENERIC_ARGUMENT_LIST, COMMA_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, &siga, GENERIC_ARGUMENT_LIST, GENERIC_ARGUMENT_LIST, COMMA_SYMBOL, TRIMMER, STOP);
+       reduce (q, strange_separator, &siga, GENERIC_ARGUMENT_LIST, GENERIC_ARGUMENT_LIST, UNIT, STOP);
+       reduce (q, strange_separator, &siga, GENERIC_ARGUMENT_LIST, GENERIC_ARGUMENT_LIST, TRIMMER, STOP);
+     }
+   while (siga);
+ }
+ 
+ /* Reduce bounds.  */
+ 
+ static void
+ reduce_bounds (NODE_T *p)
+ {
+   NODE_T *q; bool siga;
+ 
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, BOUND, UNIT, COLON_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, BOUND, UNIT, STOP);
+     }
+   q = NEXT (p);
+   reduce (q, NO_NOTE, NO_TICK, BOUNDS_LIST, BOUND, STOP);
+   reduce (q, NO_NOTE, NO_TICK, FORMAL_BOUNDS_LIST, COMMA_SYMBOL, STOP);
+   reduce (q, NO_NOTE, NO_TICK, ALT_FORMAL_BOUNDS_LIST, COLON_SYMBOL, STOP);
+   do
+     {
+       siga = false;
+       reduce (q, NO_NOTE, &siga, BOUNDS_LIST, BOUNDS_LIST, COMMA_SYMBOL, BOUND, STOP);
+       reduce (q, NO_NOTE, &siga, FORMAL_BOUNDS_LIST, FORMAL_BOUNDS_LIST, COMMA_SYMBOL, STOP);
+       reduce (q, NO_NOTE, &siga, ALT_FORMAL_BOUNDS_LIST, FORMAL_BOUNDS_LIST, COLON_SYMBOL, STOP);
+       reduce (q, NO_NOTE, &siga, FORMAL_BOUNDS_LIST, ALT_FORMAL_BOUNDS_LIST, COMMA_SYMBOL, STOP);
+       reduce (q, strange_separator, &siga, BOUNDS_LIST, BOUNDS_LIST, BOUND, STOP);
+     }
+   while (siga);
+ }
+ 
+ /* Reduce argument packs.  */
+ 
+ static void
+ reduce_arguments (NODE_T *p)
+ {
+   if (NEXT (p) != NO_NODE)
+     {
+       NODE_T *q = NEXT (p);
+       bool siga;
+       reduce (q, NO_NOTE, NO_TICK, ARGUMENT_LIST, UNIT, STOP);
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga, ARGUMENT_LIST, ARGUMENT_LIST, COMMA_SYMBOL, UNIT, STOP);
+ 	  reduce (q, strange_separator, &siga, ARGUMENT_LIST, ARGUMENT_LIST, UNIT, STOP);
+ 	}
+       while (siga);
+     }
+ }
+ 
+ /* Reduce declarations.  */
+ 
+ static void
+ reduce_basic_declarations (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       /* Publicized declarations.  */
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PRIORITY_DECLARATION, PUBLIC_SYMBOL,
+ 	      PRIO_SYMBOL, DEFINING_OPERATOR, EQUALS_SYMBOL, PRIORITY, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      MODE_DECLARATION, PUBLIC_SYMBOL,
+ 	      MODE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, DECLARER, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      MODE_DECLARATION, PUBLIC_SYMBOL,
+ 	      MODE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, VOID_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_DECLARATION, PUBLIC_SYMBOL,
+ 	      PROC_SYMBOL, DEFINING_IDENTIFIER, EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, ROUTINE_TEXT,
+ 	      STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      QUALIFIER, PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL,
+ 	      ROUTINE_TEXT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      BRIEF_OPERATOR_DECLARATION, PUBLIC_SYMBOL,
+ 	      OP_SYMBOL, DEFINING_OPERATOR, EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+ 
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PRIORITY_DECLARATION, PRIO_SYMBOL, DEFINING_OPERATOR, EQUALS_SYMBOL, PRIORITY, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      MODE_DECLARATION, MODE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, DECLARER, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      MODE_DECLARATION, MODE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, VOID_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_DECLARATION, PROC_SYMBOL, DEFINING_IDENTIFIER, EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, ROUTINE_TEXT,
+ 	      STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, QUALIFIER, PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL,
+ 	      ROUTINE_TEXT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      BRIEF_OPERATOR_DECLARATION, OP_SYMBOL, DEFINING_OPERATOR, EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+ #if 0
+       /* XXX for local module definitions */
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      MODULE_DECLARATION, MODULE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, MODULE_TEXT, STOP);
+ #endif
+       /* Errors.  */
+       reduce (q, strange_tokens, NO_TICK,
+ 	      PRIORITY_DECLARATION, PRIO_SYMBOL, -DEFINING_OPERATOR, -EQUALS_SYMBOL, -PRIORITY, STOP);
+       reduce (q, strange_tokens, NO_TICK,
+ 	      MODE_DECLARATION, MODE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, -DECLARER, STOP);
+       reduce (q, strange_tokens, NO_TICK,
+ 	      PROCEDURE_DECLARATION, PROC_SYMBOL, DEFINING_IDENTIFIER, EQUALS_SYMBOL, -ROUTINE_TEXT, STOP);
+       reduce (q, strange_tokens, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, -ROUTINE_TEXT,
+ 	      STOP);
+       reduce (q, strange_tokens, NO_TICK,
+ 	      PROCEDURE_VARIABLE_DECLARATION, QUALIFIER, PROC_SYMBOL, DEFINING_IDENTIFIER, ASSIGN_SYMBOL,
+ 	      -ROUTINE_TEXT, STOP);
+       reduce (q, strange_tokens, NO_TICK,
+ 	      BRIEF_OPERATOR_DECLARATION, OP_SYMBOL, DEFINING_OPERATOR, EQUALS_SYMBOL, -ROUTINE_TEXT, STOP);
+ #if 0
+       /* XXX for local module definitions */
+       reduce (q, strange_tokens, NO_TICK,
+ 	      MODULE_DECLARATION, MODULE_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL, -MODULE_TEXT, STOP);
+ #endif
+       /* Errors. WILDCARD catches TERTIARY which catches IDENTIFIER.  */
+       reduce (q, strange_tokens, NO_TICK, PROCEDURE_DECLARATION, PROC_SYMBOL, WILDCARD, ROUTINE_TEXT, STOP);
+     }
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  PRIORITY_DECLARATION, PRIORITY_DECLARATION, COMMA_SYMBOL, DEFINING_OPERATOR,
+ 		  EQUALS_SYMBOL, PRIORITY, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  MODE_DECLARATION, MODE_DECLARATION, COMMA_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL,
+ 		  DECLARER, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  MODE_DECLARATION, MODE_DECLARATION, COMMA_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL,
+ 		  VOID_SYMBOL, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  PROCEDURE_DECLARATION, PROCEDURE_DECLARATION, COMMA_SYMBOL, DEFINING_IDENTIFIER,
+ 		  EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  PROCEDURE_VARIABLE_DECLARATION, PROCEDURE_VARIABLE_DECLARATION, COMMA_SYMBOL,
+ 		  DEFINING_IDENTIFIER, ASSIGN_SYMBOL, ROUTINE_TEXT, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  BRIEF_OPERATOR_DECLARATION, BRIEF_OPERATOR_DECLARATION, COMMA_SYMBOL,
+ 		  DEFINING_OPERATOR, EQUALS_SYMBOL, ROUTINE_TEXT, STOP);
+ #if 0
+ 	  /* XXX for local module definitions */
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  MODULE_DECLARATION, MODULE_DECLARATION, COMMA_SYMBOL, DEFINING_INDICANT, EQUALS_SYMBOL,
+ 		  MODULE_TEXT, STOP);
+ #endif
+ 	  /* Errors. WILDCARD catches TERTIARY which catches IDENTIFIER.  */
+ 	  reduce (q, strange_tokens, &siga,
+ 		  PROCEDURE_DECLARATION, PROCEDURE_DECLARATION, COMMA_SYMBOL, WILDCARD, ROUTINE_TEXT, STOP);
+ 	}
+       while (siga);
+     }
+ }
+ 
+ /* Reduce declaration lists.  */
+ 
+ static void
+ reduce_declaration_lists (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      IDENTITY_DECLARATION, PUBLIC_SYMBOL,
+ 	      DECLARER, DEFINING_IDENTIFIER, EQUALS_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      QUALIFIER, DECLARER, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      QUALIFIER, DECLARER, DEFINING_IDENTIFIER, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      DECLARER, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, PUBLIC_SYMBOL,
+ 	      DECLARER, DEFINING_IDENTIFIER, STOP);
+ 
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      IDENTITY_DECLARATION, DECLARER, DEFINING_IDENTIFIER, EQUALS_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, QUALIFIER, DECLARER, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, QUALIFIER, DECLARER, DEFINING_IDENTIFIER, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, DECLARER, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      VARIABLE_DECLARATION, DECLARER, DEFINING_IDENTIFIER, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  IDENTITY_DECLARATION, IDENTITY_DECLARATION, COMMA_SYMBOL, DEFINING_IDENTIFIER,
+ 		  EQUALS_SYMBOL, UNIT, STOP);
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  VARIABLE_DECLARATION, VARIABLE_DECLARATION, COMMA_SYMBOL, DEFINING_IDENTIFIER,
+ 		  ASSIGN_SYMBOL, UNIT, STOP);
+ 	  if (!a68_whether (q, VARIABLE_DECLARATION, COMMA_SYMBOL, DEFINING_IDENTIFIER,
+ 			    ASSIGN_SYMBOL, UNIT, STOP))
+ 	    reduce (q, NO_NOTE, &siga,
+ 		    VARIABLE_DECLARATION, VARIABLE_DECLARATION, COMMA_SYMBOL, DEFINING_IDENTIFIER, STOP);
+ 	}
+       while (siga);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      OPERATOR_DECLARATION, PUBLIC_SYMBOL,
+ 	      OPERATOR_PLAN, DEFINING_OPERATOR, EQUALS_SYMBOL, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK,
+ 	      OPERATOR_DECLARATION, OPERATOR_PLAN, DEFINING_OPERATOR, EQUALS_SYMBOL, UNIT, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  OPERATOR_DECLARATION, OPERATOR_DECLARATION, COMMA_SYMBOL, DEFINING_OPERATOR,
+ 		  EQUALS_SYMBOL, UNIT, STOP);
+ 	}
+       while (siga);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, MODE_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, PRIORITY_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, BRIEF_OPERATOR_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, OPERATOR_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, IDENTITY_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, PROCEDURE_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, PROCEDURE_VARIABLE_DECLARATION, STOP);
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, VARIABLE_DECLARATION, STOP);
+ #if 0
+       /* XXX for local module definitions */
+       reduce (q, NO_NOTE, NO_TICK, DECLARATION_LIST, MODULE_DECLARATION, STOP);
+ #endif
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (q, NO_NOTE, &siga,
+ 		  DECLARATION_LIST, DECLARATION_LIST, COMMA_SYMBOL, DECLARATION_LIST, STOP);
+ 	}
+       while (siga);
+     }
+ }
+ 
+ /* Reduce module text.  */
+ 
+ static void
+ reduce_module_texts (NODE_T *p)
+ {
+   if (IS (p, ALT_ACCESS_SYMBOL))
+     {
+       reduce (p, NO_NOTE, NO_TICK,
+ 	      REVELATION, ALT_ACCESS_SYMBOL, PUBLIC_SYMBOL, MODULE_INDICANT, STOP);
+       reduce (p, NO_NOTE, NO_TICK,
+ 	      REVELATION, ALT_ACCESS_SYMBOL, MODULE_INDICANT, STOP);
+       bool siga;
+       do
+ 	{
+ 	  siga = false;
+ 	  reduce (p, NO_NOTE, &siga,
+ 		  REVELATION, REVELATION, COMMA_SYMBOL, PUBLIC_SYMBOL, MODULE_INDICANT, STOP);
+ 	  reduce (p, NO_NOTE, &siga,
+ 		  REVELATION, REVELATION, COMMA_SYMBOL, MODULE_INDICANT, STOP);
+ 	}
+       while (siga);
+       reduce (p, NO_NOTE, NO_TICK, REVELATION_PART, REVELATION, STOP);
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       reduce (q, NO_NOTE, NO_TICK, MODULE_TEXT, REVELATION_PART, DEF_PART, POSTLUDE_PART, FED_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, MODULE_TEXT, REVELATION_PART, DEF_PART, FED_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, MODULE_TEXT, DEF_PART, POSTLUDE_PART, FED_SYMBOL, STOP);
+       reduce (q, NO_NOTE, NO_TICK, MODULE_TEXT, DEF_PART, FED_SYMBOL, STOP);
+     }
+ }
+ 
+ /* Reduce def-parts and postlude-parts.
+    Note that revelations are reduced in reduce_module_texts.  */
+ 
+ static void
+ reduce_module_text_parts (NODE_T *p)
+ {
+   if (IS (p, DEF_SYMBOL))
+     {
+       reduce_enquiry_clauses (p);
+       reduce (p, NO_NOTE, NO_TICK, DEF_PART, DEF_SYMBOL, ENQUIRY_CLAUSE, STOP);
+     }
+   else if (IS (p, POSTLUDE_SYMBOL))
+     {
+       reduce_serial_clauses (p);
+       reduce (p, NO_NOTE, NO_TICK, POSTLUDE_PART, POSTLUDE_SYMBOL, SERIAL_CLAUSE, STOP);
+     }
+ }
+ 
+ /* Reduce serial clauses.  */
+ 
+ static void
+ reduce_serial_clauses (NODE_T *p)
+ {
+   if (NEXT (p) != NO_NODE)
+     {
+       NODE_T *q = NEXT (p), *u;
+       bool siga, label_seen;
+       /* Check wrong exits.  */
+       for (u = q; u != NO_NODE; FORWARD (u))
+ 	{
+ 	  if (IS (u, EXIT_SYMBOL))
+ 	    {
+ 	      if (NEXT (u) == NO_NODE || !IS (NEXT (u), LABELED_UNIT))
+ 		{
+ 		  a68_symbol_format_token s (u);
+ 		  a68_error (u, "%e must be followed by a labeled unit", &s);
+ 		}
+ 	    }
+ 	}
+ 
+       /* Check wrong jumps and declarations.  */
+       for (u = q, label_seen = false; u != NO_NODE; FORWARD (u))
+ 	{
+ 	  if (IS (u, LABELED_UNIT))
+ 	    label_seen = true;
+ 	  else if (IS (u, DECLARATION_LIST))
+ 	    {
+ 	      if (label_seen)
+ 		a68_error (u, "declaration cannot follow a labeled unit");
+ 	    }
+ 	}
+ 
+       /* Reduce serial clauses.  */
+       reduce (q, NO_NOTE, NO_TICK, SERIAL_CLAUSE, LABELED_UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, SERIAL_CLAUSE, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INITIALISER_SERIES, DECLARATION_LIST, STOP);
+       do
+ 	{
+ 	  siga = false;
+ 	  if (IS (q, SERIAL_CLAUSE))
+ 	    {
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, SEMI_SYMBOL, UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, EXIT_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, SEMI_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      INITIALISER_SERIES, SERIAL_CLAUSE, SEMI_SYMBOL, DECLARATION_LIST, STOP);
+ 	      /* Errors  */
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, COMMA_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, COMMA_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, SERIAL_CLAUSE, COMMA_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, COLON_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, COLON_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, SERIAL_CLAUSE, COLON_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, SERIAL_CLAUSE, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, SERIAL_CLAUSE, DECLARATION_LIST, STOP);
+ 	    }
+ 	  else if (IS (q, INITIALISER_SERIES))
+ 	    {
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, SEMI_SYMBOL, UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, SEMI_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, SEMI_SYMBOL, DECLARATION_LIST, STOP);
+ 	      /* Errors  */
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, COMMA_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, COMMA_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, COMMA_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, COLON_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, COLON_SYMBOL, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, COLON_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SERIAL_CLAUSE, INITIALISER_SERIES, LABELED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, DECLARATION_LIST, STOP);
+ 	    }
+ 	}
+       while (siga);
+     }
+ }
+ 
+ /* Reduce enquiry clauses.  */
+ 
+ static void
+ reduce_enquiry_clauses (NODE_T *p)
+ {
+   if (NEXT (p) != NO_NODE)
+     {
+       NODE_T *q = NEXT (p);
+       bool siga;
+       reduce (q, NO_NOTE, NO_TICK, ENQUIRY_CLAUSE, UNIT, STOP);
+       reduce (q, NO_NOTE, NO_TICK, INITIALISER_SERIES, DECLARATION_LIST, STOP);
+       do
+ 	{
+ 	  siga = false;
+ 	  if (IS (q, ENQUIRY_CLAUSE))
+ 	    {
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      ENQUIRY_CLAUSE, ENQUIRY_CLAUSE, SEMI_SYMBOL, UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      INITIALISER_SERIES, ENQUIRY_CLAUSE, SEMI_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, ENQUIRY_CLAUSE, COMMA_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, ENQUIRY_CLAUSE, COMMA_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, ENQUIRY_CLAUSE, COLON_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, ENQUIRY_CLAUSE, COLON_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, ENQUIRY_CLAUSE, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, ENQUIRY_CLAUSE, DECLARATION_LIST, STOP);
+ 	    }
+ 	  else if (IS (q, INITIALISER_SERIES))
+ 	    {
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      ENQUIRY_CLAUSE, INITIALISER_SERIES, SEMI_SYMBOL, UNIT, STOP);
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, SEMI_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, INITIALISER_SERIES, COMMA_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, COMMA_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, INITIALISER_SERIES, COLON_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, COLON_SYMBOL, DECLARATION_LIST, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      ENQUIRY_CLAUSE, INITIALISER_SERIES, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      INITIALISER_SERIES, INITIALISER_SERIES, DECLARATION_LIST, STOP);
+ 	    }
+ 	}
+       while (siga);
+     }
+ }
+ 
+ /* Reduce collateral clauses.  */
+ 
+ static void
+ reduce_collateral_clauses (NODE_T *p)
+ {
+   if (NEXT (p) != NO_NODE)
+     {
+       NODE_T *q = NEXT (p);
+       if (IS (q, UNIT))
+ 	{
+ 	  bool siga;
+ 	  reduce (q, NO_NOTE, NO_TICK, UNIT_LIST, UNIT, STOP);
+ 	  do
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga, UNIT_LIST, UNIT_LIST, COMMA_SYMBOL, UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga, UNIT_LIST, UNIT_LIST, UNIT, STOP);
+ 	    }
+ 	  while (siga);
+ 	}
+       else if (IS (q, SPECIFIED_UNIT))
+ 	{
+ 	  bool siga;
+ 	  reduce (q, NO_NOTE, NO_TICK, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT, STOP);
+ 	  do
+ 	    {
+ 	      siga = false;
+ 	      reduce (q, NO_NOTE, &siga,
+ 		      SPECIFIED_UNIT_LIST, SPECIFIED_UNIT_LIST, COMMA_SYMBOL, SPECIFIED_UNIT, STOP);
+ 	      reduce (q, strange_separator, &siga,
+ 		      SPECIFIED_UNIT_LIST, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT, STOP);
+ 	    }
+ 	  while (siga);
+ 	}
+     }
+ }
+ 
+ /* Reduces enclosed clauses.  */
+ 
+ static void
+ reduce_enclosed_clauses (NODE_T *q, enum a68_attribute expect)
+ {
+   NODE_T *p = q;
+ 
+   if (SUB (p) == NO_NODE)
+     {
+       if (IS (p, FOR_SYMBOL))
+ 	reduce (p, NO_NOTE, NO_TICK, FOR_PART, FOR_SYMBOL, DEFINING_IDENTIFIER, STOP);
+       else if (IS (p, OPEN_SYMBOL))
+ 	{
+ 	  if (expect == ENQUIRY_CLAUSE)
+ 	    reduce (p, NO_NOTE, NO_TICK, OPEN_PART, OPEN_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	  else if (expect == ARGUMENT)
+ 	    {
+ 	      reduce (p, NO_NOTE, NO_TICK, ARGUMENT, OPEN_SYMBOL, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, ARGUMENT, OPEN_SYMBOL, ARGUMENT_LIST, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, empty_clause, NO_TICK, ARGUMENT, OPEN_SYMBOL, INITIALISER_SERIES, CLOSE_SYMBOL, STOP);
+ 	    }
+ 	  else if (expect == GENERIC_ARGUMENT)
+ 	    {
+ 	      if (a68_whether (p, OPEN_SYMBOL, CLOSE_SYMBOL, STOP))
+ 		{
+ 		  pad_node (p, TRIMMER);
+ 		  reduce (p, NO_NOTE, NO_TICK, GENERIC_ARGUMENT, OPEN_SYMBOL, TRIMMER, CLOSE_SYMBOL, STOP);
+ 		}
+ 	      reduce (p, NO_NOTE, NO_TICK,
+ 		      GENERIC_ARGUMENT, OPEN_SYMBOL, GENERIC_ARGUMENT_LIST, CLOSE_SYMBOL, STOP);
+ 	    }
+ 	  else if (expect == BOUNDS)
+ 	    {
+ 	      reduce (p, NO_NOTE, NO_TICK, FORMAL_BOUNDS, OPEN_SYMBOL, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, BOUNDS, OPEN_SYMBOL, BOUNDS_LIST, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, FORMAL_BOUNDS, OPEN_SYMBOL, FORMAL_BOUNDS_LIST, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK,
+ 		      FORMAL_BOUNDS, OPEN_SYMBOL, ALT_FORMAL_BOUNDS_LIST, CLOSE_SYMBOL, STOP);
+ 	    }
+ 	  else
+ 	    {
+ 	      reduce (p, NO_NOTE, NO_TICK, CLOSED_CLAUSE, OPEN_SYMBOL, SERIAL_CLAUSE, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, COLLATERAL_CLAUSE, OPEN_SYMBOL, UNIT_LIST, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, COLLATERAL_CLAUSE, OPEN_SYMBOL, CLOSE_SYMBOL, STOP);
+ 	      reduce (p, empty_clause, NO_TICK,
+ 		      CLOSED_CLAUSE, OPEN_SYMBOL, INITIALISER_SERIES, CLOSE_SYMBOL, STOP);
+ 	    }
+ 	}
+       else if (IS (p, SUB_SYMBOL))
+ 	{
+ 	  if (expect == GENERIC_ARGUMENT)
+ 	    {
+ 	      if (a68_whether (p, SUB_SYMBOL, BUS_SYMBOL, STOP))
+ 		{
+ 		  pad_node (p, TRIMMER);
+ 		  reduce (p, NO_NOTE, NO_TICK, GENERIC_ARGUMENT, SUB_SYMBOL, TRIMMER, BUS_SYMBOL, STOP);
+ 		}
+ 	      reduce (p, NO_NOTE, NO_TICK,
+ 		      GENERIC_ARGUMENT, SUB_SYMBOL, GENERIC_ARGUMENT_LIST, BUS_SYMBOL, STOP);
+ 	    }
+ 	  else if (expect == BOUNDS)
+ 	    {
+ 	      reduce (p, NO_NOTE, NO_TICK, FORMAL_BOUNDS, SUB_SYMBOL, BUS_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, BOUNDS, SUB_SYMBOL, BOUNDS_LIST, BUS_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, FORMAL_BOUNDS, SUB_SYMBOL, FORMAL_BOUNDS_LIST, BUS_SYMBOL, STOP);
+ 	      reduce (p, NO_NOTE, NO_TICK, FORMAL_BOUNDS, SUB_SYMBOL, ALT_FORMAL_BOUNDS_LIST, BUS_SYMBOL, STOP);
+ 	    }
+ 	}
+       else if (IS (p, BEGIN_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, COLLATERAL_CLAUSE, BEGIN_SYMBOL, UNIT_LIST, END_SYMBOL, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, COLLATERAL_CLAUSE, BEGIN_SYMBOL, END_SYMBOL, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, CLOSED_CLAUSE, BEGIN_SYMBOL, SERIAL_CLAUSE, END_SYMBOL, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, CLOSED_CLAUSE, BEGIN_SYMBOL, INITIALISER_SERIES, END_SYMBOL, STOP);
+ 	}
+       else if (IS (p, FORMAT_DELIMITER_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK,
+ 		  FORMAT_TEXT, FORMAT_DELIMITER_SYMBOL, PICTURE_LIST, FORMAT_DELIMITER_SYMBOL, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK,
+ 		  FORMAT_TEXT, FORMAT_DELIMITER_SYMBOL, FORMAT_DELIMITER_SYMBOL, STOP);
+ 	}
+       else if (IS (p, FORMAT_OPEN_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK,
+ 		  COLLECTION, FORMAT_OPEN_SYMBOL, PICTURE_LIST, FORMAT_CLOSE_SYMBOL, STOP);
+ 	}
+       else if (IS (p, ACCESS_SYMBOL))
+ 	{
+ 	  NODE_T *s;
+ 	  for (s = p; s != NO_NODE; FORWARD (s))
+ 	    {
+ 	      if (SUB (s) != NO_NODE)
+ 		{
+ 		  // XXX why
+ 		  if (IS (SUB (s), OPEN_SYMBOL))
+ 		    reduce_branch (s, SOME_CLAUSE);
+ 		  else
+ 		    reduce_branch (s, ENCLOSED_CLAUSE);
+ 		}
+ 	      reduce (s, NO_NOTE, NO_TICK, PARALLEL_CLAUSE, PAR_SYMBOL, COLLATERAL_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, PARALLEL_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CLOSED_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, COLLATERAL_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONDITIONAL_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CASE_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, CONFORMITY_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, LOOP_CLAUSE, STOP);
+ 	      reduce (s, NO_NOTE, NO_TICK, ENCLOSED_CLAUSE, ACCESS_CLAUSE, STOP);
+ 	    }
+ 
+ 	  /* Reduce revelations.  */
+ 
+ 	  reduce (p, NO_NOTE, NO_TICK,
+ 		  REVELATION, ACCESS_SYMBOL, MODULE_INDICANT, STOP);
+ 
+ 	  bool siga;
+ 	  do
+ 	    {
+ 	      siga = false;
+ 	      reduce (p, NO_NOTE, &siga,
+ 		      REVELATION, REVELATION, COMMA_SYMBOL, MODULE_INDICANT, STOP);
+ 	    }
+ 	  while (siga);
+ 	  reduce (p, NO_NOTE, NO_TICK,
+ 		  ACCESS_CLAUSE, REVELATION, ENCLOSED_CLAUSE, STOP);
+ 	}
+       else if (IS (p, IF_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, IF_PART, IF_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, IF_PART, IF_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, THEN_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, THEN_PART, THEN_SYMBOL, SERIAL_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, THEN_PART, THEN_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, ELSE_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, ELSE_PART, ELSE_SYMBOL, SERIAL_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, ELSE_PART, ELSE_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, ELIF_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, ELIF_IF_PART, ELIF_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	}
+       else if (IS (p, CASE_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, CASE_PART, CASE_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, CASE_PART, CASE_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, IN_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, CASE_IN_PART, IN_SYMBOL, UNIT_LIST, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, CONFORMITY_IN_PART, IN_SYMBOL, SPECIFIED_UNIT_LIST, STOP);
+ 	}
+       else if (IS (p, OUT_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, OUT_PART, OUT_SYMBOL, SERIAL_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, OUT_PART, OUT_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, OUSE_SYMBOL))
+ 	reduce (p, NO_NOTE, NO_TICK, OUSE_PART, OUSE_SYMBOL, ENQUIRY_CLAUSE, STOP);
+       else if (IS (p, THEN_BAR_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, CHOICE, THEN_BAR_SYMBOL, SERIAL_CLAUSE, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, CASE_CHOICE_CLAUSE, THEN_BAR_SYMBOL, UNIT_LIST, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, CONFORMITY_CHOICE, THEN_BAR_SYMBOL, SPECIFIED_UNIT_LIST, STOP);
+ 	  reduce (p, NO_NOTE, NO_TICK, CONFORMITY_CHOICE, THEN_BAR_SYMBOL, SPECIFIED_UNIT, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, CHOICE, THEN_BAR_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, ELSE_BAR_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, ELSE_OPEN_PART, ELSE_BAR_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, ELSE_OPEN_PART, ELSE_BAR_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, FROM_SYMBOL))
+ 	reduce (p, NO_NOTE, NO_TICK, FROM_PART, FROM_SYMBOL, UNIT, STOP);
+       else if (IS (p, BY_SYMBOL))
+ 	reduce (p, NO_NOTE, NO_TICK, BY_PART, BY_SYMBOL, UNIT, STOP);
+       else if (IS (p, TO_SYMBOL))
+ 	reduce (p, NO_NOTE, NO_TICK, TO_PART, TO_SYMBOL, UNIT, STOP);
+       else if (IS (p, WHILE_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, WHILE_PART, WHILE_SYMBOL, ENQUIRY_CLAUSE, STOP);
+ 	  reduce (p, empty_clause, NO_TICK, WHILE_PART, WHILE_SYMBOL, INITIALISER_SERIES, STOP);
+ 	}
+       else if (IS (p, DO_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, DO_PART, DO_SYMBOL, SERIAL_CLAUSE, OD_SYMBOL, STOP);
+ 	}
+       else if (IS (p, ALT_DO_SYMBOL))
+ 	{
+ 	  reduce (p, NO_NOTE, NO_TICK, ALT_DO_PART, ALT_DO_SYMBOL, SERIAL_CLAUSE, OD_SYMBOL, STOP);
+ 	}
+     }
+   p = q;
+   if (SUB (p) != NO_NODE)
+     {
+     if (IS (p, OPEN_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, OPEN_PART, CHOICE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, OPEN_PART, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, OPEN_PART, CHOICE, BRIEF_ELIF_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, OPEN_PART, CASE_CHOICE_CLAUSE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, OPEN_PART, CASE_CHOICE_CLAUSE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, OPEN_PART, CASE_CHOICE_CLAUSE, BRIEF_OUSE_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, OPEN_PART, CONFORMITY_CHOICE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, OPEN_PART, CONFORMITY_CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, OPEN_PART, CONFORMITY_CHOICE, BRIEF_CONFORMITY_OUSE_PART, STOP);
+       }
+     else if (IS (p, ELSE_OPEN_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, BRIEF_ELIF_PART, ELSE_OPEN_PART, CHOICE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, BRIEF_ELIF_PART, ELSE_OPEN_PART, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, BRIEF_ELIF_PART, ELSE_OPEN_PART, CHOICE, BRIEF_ELIF_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		BRIEF_OUSE_PART, ELSE_OPEN_PART, CASE_CHOICE_CLAUSE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, BRIEF_OUSE_PART, ELSE_OPEN_PART, CASE_CHOICE_CLAUSE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		BRIEF_OUSE_PART, ELSE_OPEN_PART, CASE_CHOICE_CLAUSE, BRIEF_OUSE_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		BRIEF_CONFORMITY_OUSE_PART, ELSE_OPEN_PART, CONFORMITY_CHOICE, CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		BRIEF_CONFORMITY_OUSE_PART, ELSE_OPEN_PART, CONFORMITY_CHOICE, CLOSE_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		BRIEF_CONFORMITY_OUSE_PART, ELSE_OPEN_PART, CONFORMITY_CHOICE, BRIEF_CONFORMITY_OUSE_PART,
+ 		STOP);
+       }
+     else if (IS (p, IF_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, IF_PART, THEN_PART, ELSE_PART, FI_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, IF_PART, THEN_PART, ELIF_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CONDITIONAL_CLAUSE, IF_PART, THEN_PART, FI_SYMBOL, STOP);
+       }
+     else if (IS (p, ELIF_IF_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, ELIF_PART, ELIF_IF_PART, THEN_PART, ELSE_PART, FI_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, ELIF_PART, ELIF_IF_PART, THEN_PART, FI_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, ELIF_PART, ELIF_IF_PART, THEN_PART, ELIF_PART, STOP);
+       }
+     else if (IS (p, CASE_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, CASE_PART, CASE_IN_PART, OUT_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, CASE_PART, CASE_IN_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_CLAUSE, CASE_PART, CASE_IN_PART, CASE_OUSE_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, CASE_PART, CONFORMITY_IN_PART, OUT_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, CASE_PART, CONFORMITY_IN_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_CLAUSE, CASE_PART, CONFORMITY_IN_PART, CONFORMITY_OUSE_PART, STOP);
+       }
+     else if (IS (p, OUSE_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_OUSE_PART, OUSE_PART, CASE_IN_PART, OUT_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_OUSE_PART, OUSE_PART, CASE_IN_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, CASE_OUSE_PART, OUSE_PART, CASE_IN_PART, CASE_OUSE_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_OUSE_PART, OUSE_PART, CONFORMITY_IN_PART, OUT_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_OUSE_PART, OUSE_PART, CONFORMITY_IN_PART, ESAC_SYMBOL, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		CONFORMITY_OUSE_PART, OUSE_PART, CONFORMITY_IN_PART, CONFORMITY_OUSE_PART, STOP);
+       }
+     else if (IS (p, FOR_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK,
+ 		LOOP_CLAUSE, FOR_PART, FROM_PART, BY_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, BY_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, BY_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, BY_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, BY_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, BY_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, FROM_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, BY_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, BY_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FOR_PART, ALT_DO_PART, STOP);
+       }
+     else if (IS (p, FROM_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, BY_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, BY_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, BY_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, BY_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, FROM_PART, ALT_DO_PART, STOP);
+       }
+     else if (IS (p, BY_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, BY_PART, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, BY_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, BY_PART, TO_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, BY_PART, ALT_DO_PART, STOP);
+       }
+     else if (IS (p, TO_PART))
+       {
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, TO_PART, WHILE_PART, ALT_DO_PART, STOP);
+ 	reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, TO_PART, ALT_DO_PART, STOP);
+       }
+     else if (IS (p, WHILE_PART))
+       reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, WHILE_PART, ALT_DO_PART, STOP);
+     else if (IS (p, DO_PART))
+       reduce (p, NO_NOTE, NO_TICK, LOOP_CLAUSE, DO_PART, STOP);
+     }
+ }
+ 
+ /* Substitute reduction when a phrase could not be parsed.  */
+ 
+ static void
+ recover_from_error (NODE_T * p, enum a68_attribute expect, bool suppress)
+ {
+   /* This routine does not do fancy things as that might introduce more
+      errors.  */
+   NODE_T *q = p;
+   if (p == NO_NODE)
+     return;
+ 
+   if (expect == SOME_CLAUSE)
+     expect = serial_or_collateral (p);
+ 
+   if (!suppress)
+     {
+       /* Give an error message.  */
+       NODE_T *w = p;
+       const char *seq = a68_phrase_to_text (p, &w);
+       if (strlen (seq) == 0)
+ 	{
+ 	  if (ERROR_COUNT (&A68_JOB) == 0)
+ 	    {
+ 	      a68_attr_format_token a (expect);
+ 	      a68_error (w, "expected %e", &a);
+ 	    }
+ 	}
+       else
+ 	{
+ 	  a68_attr_format_token a (expect);
+ 	  a68_error (w, "%s is an invalid %e", seq, &a);
+ 	}
+ 
+     if (ERROR_COUNT (&A68_JOB) >= MAX_ERRORS)
+       longjmp (A68_PARSER (bottom_up_crash_exit), 1);
+   }
+ 
+   /* Try to prevent spurious diagnostics by guessing what was expected.  */
+   while (NEXT (q) != NO_NODE)
+     FORWARD (q);
+ 
+   if (a68_is_one_of (p, BEGIN_SYMBOL, OPEN_SYMBOL, STOP))
+     {
+       if (expect == ARGUMENT || expect == COLLATERAL_CLAUSE
+ 	  || expect == PARAMETER_PACK || expect == STRUCTURE_PACK
+ 	  || expect == UNION_PACK)
+ 	a68_make_sub (p, q, expect);
+       else if (expect == ENQUIRY_CLAUSE)
+ 	a68_make_sub (p, q, OPEN_PART);
+       else if (expect == FORMAL_DECLARERS)
+ 	a68_make_sub (p, q, FORMAL_DECLARERS);
+       else
+ 	a68_make_sub (p, q, CLOSED_CLAUSE);
+     }
+   else if (IS (p, FORMAT_DELIMITER_SYMBOL) && expect == FORMAT_TEXT)
+     a68_make_sub (p, q, FORMAT_TEXT);
+   else if (a68_is_one_of (p, THEN_BAR_SYMBOL, CHOICE, STOP))
+     a68_make_sub (p, q, CHOICE);
+   else if (a68_is_one_of (p, IF_SYMBOL, IF_PART, STOP))
+     a68_make_sub (p, q, IF_PART);
+   else if (a68_is_one_of (p, THEN_SYMBOL, THEN_PART, STOP))
+     a68_make_sub (p, q, THEN_PART);
+   else if (a68_is_one_of (p, ELSE_SYMBOL, ELSE_PART, STOP))
+     a68_make_sub (p, q, ELSE_PART);
+   else if (a68_is_one_of (p, ELIF_SYMBOL, ELIF_IF_PART, STOP))
+     a68_make_sub (p, q, ELIF_IF_PART);
+   else if (a68_is_one_of (p, CASE_SYMBOL, CASE_PART, STOP))
+     a68_make_sub (p, q, CASE_PART);
+   else if (a68_is_one_of (p, OUT_SYMBOL, OUT_PART, STOP))
+     a68_make_sub (p, q, OUT_PART);
+   else if (a68_is_one_of (p, OUSE_SYMBOL, OUSE_PART, STOP))
+     a68_make_sub (p, q, OUSE_PART);
+   else if (a68_is_one_of (p, FOR_SYMBOL, FOR_PART, STOP))
+     a68_make_sub (p, q, FOR_PART);
+   else if (a68_is_one_of (p, FROM_SYMBOL, FROM_PART, STOP))
+     a68_make_sub (p, q, FROM_PART);
+   else if (a68_is_one_of (p, BY_SYMBOL, BY_PART, STOP))
+     a68_make_sub (p, q, BY_PART);
+   else if (a68_is_one_of (p, TO_SYMBOL, TO_PART, STOP))
+     a68_make_sub (p, q, TO_PART);
+   else if (a68_is_one_of (p, WHILE_SYMBOL, WHILE_PART, STOP))
+     a68_make_sub (p, q, WHILE_PART);
+   else if (a68_is_one_of (p, DO_SYMBOL, DO_PART, STOP))
+     a68_make_sub (p, q, DO_PART);
+   else if (a68_is_one_of (p, ALT_DO_SYMBOL, ALT_DO_PART, STOP))
+     a68_make_sub (p, q, ALT_DO_PART);
+   else if (a68_attribute_name (expect) != NO_TEXT)
+     a68_make_sub (p, q, expect);
+ }
+ 
+ /* Heuristic aid in pinpointing errors.  */
+ 
+ static void
+ reduce_erroneous_units (NODE_T *p)
+ {
+   /* Constructs are reduced to units in an attempt to limit spurious
+      diagnostics.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       /* Some implementations allow selection from a tertiary, when there is no
+ 	 risk of ambiguity. GCC follows RR, so some extra attention here to
+ 	 guide an unsuspecting user.  */
+     if (a68_whether (q, SELECTOR, -SECONDARY, STOP))
+       {
+ 	a68_attr_format_token a (SECONDARY);
+ 	a68_error (NEXT (q), "expected %e", &a);
+ 	reduce (q, NO_NOTE, NO_TICK, UNIT, SELECTOR, WILDCARD, STOP);
+       }
+ 
+     /* Attention for identity relations that require tertiaries.  */
+     if (a68_whether (q, -TERTIARY, IS_SYMBOL, TERTIARY, STOP)
+ 	|| a68_whether (q, TERTIARY, IS_SYMBOL, -TERTIARY, STOP)
+ 	|| a68_whether (q, -TERTIARY, IS_SYMBOL, -TERTIARY, STOP))
+       {
+ 	a68_attr_format_token a (TERTIARY);
+ 	a68_error (NEXT (q), "expected %e", &a);
+ 	reduce (q, NO_NOTE, NO_TICK, UNIT, WILDCARD, IS_SYMBOL, WILDCARD, STOP);
+       }
+     else if (a68_whether (q, -TERTIARY, ISNT_SYMBOL, TERTIARY, STOP)
+ 	     || a68_whether (q, TERTIARY, ISNT_SYMBOL, -TERTIARY, STOP)
+ 	     || a68_whether (q, -TERTIARY, ISNT_SYMBOL, -TERTIARY, STOP))
+       {
+ 	a68_attr_format_token a (TERTIARY);
+ 	a68_error (NEXT (q), "expected %e", &a);
+ 	reduce (q, NO_NOTE, NO_TICK, UNIT, WILDCARD, ISNT_SYMBOL, WILDCARD, STOP);
+       }
+     }
+ }
+ 
+ /*
+  * A posteriori checks of the syntax tree built by the BU parser.
+  */
+ 
+ /* Driver for a posteriori error checking.  */
+ 
+ void
+ a68_bottom_up_error_check (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, BOOLEAN_PATTERN))
+ 	{
+ 	  int k = 0;
+ 	  a68_count_pictures (SUB (p), &k);
+ 	  if (!(k == 0 || k == 2))
+ 	    {
+ 	      a68_attr_format_token a (ATTRIBUTE (p));
+ 	      a68_error (p, "incorrect number of pictures for %e", &a);
+ 	    }
+ 	}
+       else if (a68_is_one_of (p,
+ 			      DEFINING_INDICANT, DEFINING_IDENTIFIER, DEFINING_OPERATOR, STOP))
+ 	{
+ 	  if (PUBLICIZED (p) && !PUBLIC_RANGE (TABLE (p)))
+ 	    a68_error (p,
+ 		       "%<pub%>licized declaration not in a module definition");
+ 	}
+       else
+ 	a68_bottom_up_error_check (SUB (p));
+     }
+ }
+ 
+ /*
+  * Next part rearranges and checks the tree after the symbol tables are finished.
+  */
+ 
+ /* Transfer IDENTIFIER to JUMP where appropriate.  */
+ 
+ void
+ a68_rearrange_goto_less_jumps (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  NODE_T *q = SUB (p);
+ 	  if (IS (q, TERTIARY))
+ 	    {
+ 	      NODE_T *tertiary = q;
+ 	      q = SUB (q);
+ 	      if (q != NO_NODE && IS (q, SECONDARY))
+ 		{
+ 		  q = SUB (q);
+ 		  if (q != NO_NODE && IS (q, PRIMARY))
+ 		    {
+ 		      q = SUB (q);
+ 		      if (q != NO_NODE && IS (q, IDENTIFIER))
+ 			{
+ 			  if (a68_is_identifier_or_label_global (TABLE (q), NSYMBOL (q)) == LABEL)
+ 			    {
+ 			      ATTRIBUTE (tertiary) = JUMP;
+ 			      SUB (tertiary) = q;
+ 			    }
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+       else if (IS (p, TERTIARY))
+ 	{
+ 	  NODE_T *q = SUB (p);
+ 	  if (q != NO_NODE && IS (q, SECONDARY))
+ 	    {
+ 	      NODE_T *secondary = q;
+ 	      q = SUB (q);
+ 	      if (q != NO_NODE && IS (q, PRIMARY))
+ 		{
+ 		  q = SUB (q);
+ 		  if (q != NO_NODE && IS (q, IDENTIFIER))
+ 		    {
+ 		      if (a68_is_identifier_or_label_global (TABLE (q), NSYMBOL (q)) == LABEL)
+ 			{
+ 			  ATTRIBUTE (secondary) = JUMP;
+ 			  SUB (secondary) = q;
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+       else if (IS (p, SECONDARY))
+ 	{
+ 	  NODE_T *q = SUB (p);
+ 	  if (q != NO_NODE && IS (q, PRIMARY))
+ 	    {
+ 	      NODE_T *primary = q;
+ 	      q = SUB (q);
+ 	      if (q != NO_NODE && IS (q, IDENTIFIER))
+ 		{
+ 		  if (a68_is_identifier_or_label_global (TABLE (q), NSYMBOL (q)) == LABEL)
+ 		    {
+ 		      ATTRIBUTE (primary) = JUMP;
+ 		      SUB (primary) = q;
+ 		    }
+ 		}
+ 	    }
+ 	}
+       else if (IS (p, PRIMARY))
+ 	{
+ 	  NODE_T *q = SUB (p);
+ 	  if (q != NO_NODE && IS (q, IDENTIFIER))
+ 	    {
+ 	      if (a68_is_identifier_or_label_global (TABLE (q), NSYMBOL (q)) == LABEL)
+ 		a68_make_sub (q, q, JUMP);
+ 	    }
+ 	}
+       a68_rearrange_goto_less_jumps (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-brackets.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-brackets.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-brackets.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-brackets.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,224 ----
+ /* Recursive-descent parenthesis checker.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* After this checker, we know that at least brackets are matched.  This
+    stabilises later parser phases.
+ 
+    Note that this checker operates on a linear list of nodes.
+ 
+    Error diagnostics are placed near offending lines.  */
+ 
+ /* Intelligible diagnostics for the bracket checker.  */
+ 
+ static void
+ bracket_check_error (char *txt, int n, const char *bra, const char *ket)
+ {
+   BUFFER buf;
+ 
+   if (n == 0)
+     return;
+ 
+   const char *strop_ket = a68_strop_keyword (ket);
+   const char *strop_bra = a68_strop_keyword (bra);
+ 
+   BUFCLR (buf);
+   if (snprintf (buf, SNPRINTF_SIZE, "missing matching %%<%s%%>",
+ 		(n > 0 ? strop_ket : strop_bra)) < 0)
+     gcc_unreachable ();
+ 
+   if (strlen (txt) > 0)
+     a68_bufcat (txt, " or ", BUFFER_SIZE);
+   a68_bufcat (txt, buf, BUFFER_SIZE);
+ }
+ 
+ /* Diagnose brackets in local branch of the tree.  */
+ 
+ static char *
+ bracket_check_diagnose (NODE_T *p)
+ {
+   int begins = 0, opens = 0, format_delims = 0, format_opens = 0;
+   int subs = 0, ifs = 0, cases = 0, dos = 0;
+ 
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case BEGIN_SYMBOL:
+ 	  begins++;
+ 	  break;
+ 	case END_SYMBOL:
+ 	  begins--;
+ 	  break;
+ 	case OPEN_SYMBOL:
+ 	  opens++;
+ 	  break;
+ 	case CLOSE_SYMBOL:
+ 	  opens--;
+ 	  break;
+ 	case FORMAT_DELIMITER_SYMBOL:
+ 	  if (format_delims == 0)
+ 	    format_delims = 1;
+ 	  else
+ 	    format_delims = 0;
+ 	  break;
+ 	case FORMAT_OPEN_SYMBOL:
+ 	  format_opens++;
+ 	  break;
+ 	case FORMAT_CLOSE_SYMBOL:
+ 	  format_opens--;
+ 	  break;
+ 	case SUB_SYMBOL:
+ 	  subs++;
+ 	  break;
+ 	case BUS_SYMBOL:
+ 	  subs--;
+ 	  break;
+ 	case IF_SYMBOL:
+ 	  ifs++;
+ 	  break;
+ 	case FI_SYMBOL:
+ 	  ifs--;
+ 	  break;
+ 	case CASE_SYMBOL:
+ 	  cases++;
+ 	  break;
+ 	case ESAC_SYMBOL:
+ 	  cases--;
+ 	  break;
+ 	case DO_SYMBOL:
+ 	  dos++;
+ 	  break;
+ 	case OD_SYMBOL:
+ 	  dos--;
+ 	  break;
+ 	default:
+ 	  break;
+ 	}
+     }
+ 
+   A68 (edit_line)[0] = '\0';
+   bracket_check_error (A68 (edit_line), begins, "BEGIN", "END");
+   bracket_check_error (A68 (edit_line), opens, "(", ")");
+   bracket_check_error (A68 (edit_line), format_opens, "(", ")");
+   bracket_check_error (A68 (edit_line), format_delims, "$", "$");
+   bracket_check_error (A68 (edit_line), subs, "[", "]");
+   bracket_check_error (A68 (edit_line), ifs, "IF", "FI");
+   bracket_check_error (A68 (edit_line), cases, "CASE", "ESAC");
+   bracket_check_error (A68 (edit_line), dos, "DO", "OD");
+   return A68 (edit_line);
+ }
+ 
+ /* Driver for locally diagnosing non-matching tokens.  */
+ 
+ static NODE_T *
+ bracket_check_parse (NODE_T *top, NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       int ket = STOP;
+       NODE_T *q = NO_NODE;
+       bool ignore_token = false;
+ 
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case BEGIN_SYMBOL:
+ 	  ket = END_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case OPEN_SYMBOL:
+ 	  ket = CLOSE_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case FORMAT_OPEN_SYMBOL:
+ 	  ket = FORMAT_CLOSE_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case SUB_SYMBOL:
+ 	  ket = BUS_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case IF_SYMBOL:
+ 	  ket = FI_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case CASE_SYMBOL:
+ 	  ket = ESAC_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case DO_SYMBOL:
+ 	  ket = OD_SYMBOL;
+ 	  q = bracket_check_parse (top, NEXT (p));
+ 	  break;
+ 	case END_SYMBOL:
+ 	case CLOSE_SYMBOL:
+ 	case FORMAT_CLOSE_SYMBOL:
+ 	case BUS_SYMBOL:
+ 	case FI_SYMBOL:
+ 	case ESAC_SYMBOL:
+ 	case OD_SYMBOL:
+ 	  return p;
+ 	default:
+ 	  ignore_token = true;
+ 	}
+ 
+       if (ignore_token)
+ 	;
+       else if (q != NO_NODE && IS (q, ket))
+ 	p = q;
+       else if (q == NO_NODE)
+ 	{
+ 	  char *diag = bracket_check_diagnose (top);
+ 	  a68_error (p, "incorrect nesting, check for %s",
+ 		     (strlen (diag) > 0 ? diag : "missing or unmatched keyword"));
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+       else
+ 	{
+ 	  char *diag = bracket_check_diagnose (top);
+ 	  a68_attr_format_token a (ATTRIBUTE (q));
+ 
+ 	  a68_error (q, "unexpected %e, check for %s", &a,
+ 		     (strlen (diag) > 0 ? diag : "missing or unmatched keyword"));
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+     }
+   return NO_NODE;
+ }
+ 
+ /* Driver for globally diagnosing non-matching tokens.  */
+ 
+ void
+ a68_check_parenthesis (NODE_T *top)
+ {
+   if (!setjmp (A68_PARSER (top_down_crash_exit)))
+     {
+       if (bracket_check_parse (top, top) != NO_NODE)
+ 	a68_error (top, "incorrect nesting, check for missing or unmatched keyword");
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-debug.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-debug.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-debug.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-debug.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,255 ----
+ /* Debug facilities for the Algol 68 parser.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #define INCLUDE_VECTOR
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "diagnostic.h"
+ #include "text-art/types.h"
+ #include "text-art/dump.h"
+ #include "text-art/dump-widget-info.h"
+ #include "text-art/canvas.h"
+ #include "text-art/theme.h"
+ #include "text-art/tree-widget.h"
+ 
+ #include "a68.h"
+ 
+ /* Write a printable representation of the parse tree with top node P to the
+    standard output.  */
+ 
+ static void
+ a68_dump_parse_tree_1 (NODE_T *p, const text_art::dump_widget_info &dwi,
+ 		       text_art::tree_widget &widget, bool tables, bool levels)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       char *symbol;
+       if (ATTRIBUTE (p) == IDENTIFIER
+ 	  || ATTRIBUTE (p) == DEFINING_IDENTIFIER
+ 	  || ATTRIBUTE (p) == DEFINING_OPERATOR
+ 	  || ATTRIBUTE (p) == BOLD_TAG)
+ 	symbol = xasprintf (" %s", NSYMBOL (p));
+       else
+ 	symbol = xstrdup ("");
+ 
+       char *tableinfo;
+       if (tables && TABLE (p) != NO_TABLE)
+ 	tableinfo = xasprintf (" table=%p prev=%p",
+ 			       (void *) TABLE (p),
+ 			       (void *) PREVIOUS (TABLE (p)));
+       else
+ 	tableinfo = xstrdup ("");
+ 
+       char *levelsinfo;
+       if (levels && TABLE (p) != NO_TABLE)
+ 	levelsinfo = xasprintf (" level=%d", LEVEL (TABLE (p)));
+       else
+ 	levelsinfo = xstrdup ("");
+ 
+       char mode[BUFFER_SIZE];
+       mode[0] = '\0';
+       if (MOID (p) != NO_MOID)
+ 	{
+ 	  MOID_T *moid = MOID (p);
+ 	  mode[0] = '\0';
+ 
+ 	  a68_bufcat (mode, " (", 2);
+ 	  if (IS (moid, SERIES_MODE))
+ 	    {
+ 	      if (PACK (moid) != NO_PACK && NEXT (PACK (moid)) == NO_PACK)
+ 		a68_bufcat (mode, a68_moid_to_string (MOID (PACK (moid)), MOID_ERROR_WIDTH, p),
+ 			    BUFFER_SIZE);
+ 	      else
+ 		a68_bufcat (mode, a68_moid_to_string (moid, MOID_ERROR_WIDTH, p), BUFFER_SIZE);
+ 	    }
+ 	  else
+ 	    a68_bufcat (mode, a68_moid_to_string (moid, MOID_ERROR_WIDTH, p), BUFFER_SIZE);
+ 	  a68_bufcat (mode, ")", 2);
+ 	}
+ 
+       location_t loc = a68_get_node_location (p);
+       std::unique_ptr<text_art::tree_widget> cwidget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr,
+ 					   "%s:%d:%d [%d] %s%s%s%s%s",
+ 					   LOCATION_FILE (loc),
+ 					   LOCATION_LINE (loc),
+ 					   LOCATION_COLUMN (loc),
+ 					   NUMBER (p),
+ 					   a68_attribute_name (ATTRIBUTE (p)),
+ 					   symbol,
+ 					   mode,
+ 					   tableinfo,
+ 					   levelsinfo);
+       free (symbol);
+       free (tableinfo);
+       free (levelsinfo);
+ 
+       a68_dump_parse_tree_1 (SUB (p), dwi, *cwidget, tables, levels);
+       widget.add_child (std::move (cwidget));
+     }
+ }
+ 
+ void
+ a68_dump_parse_tree (NODE_T *p, bool tables, bool levels)
+ {
+   text_art::style_manager sm;
+   text_art::style::id_t default_style_id (sm.get_or_create_id (text_art::style ()));
+   text_art::ascii_theme theme;
+   text_art::dump_widget_info dwi (sm, theme, default_style_id);
+   std::unique_ptr<text_art::tree_widget> widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "Parse Tree");
+ 
+   a68_dump_parse_tree_1 (p, dwi, *widget, tables, levels);
+ 
+   text_art::canvas c (widget->to_canvas (sm));
+   pretty_printer *const pp = global_dc->get_reference_printer ();
+   pp_clear_output_area (pp);
+   c.print_to_pp (pp);
+   printf ("%s", pp_formatted_text (pp));
+ }
+ 
+ /* Dump the modes in the list MOID.  */
+ 
+ void
+ a68_dump_modes (MOID_T *moid)
+ {
+   for (; moid != NO_MOID; FORWARD (moid))
+     {
+       printf ("%p %s\n", (void *) moid,
+ 	      a68_moid_to_string (moid, MOID_ERROR_WIDTH, NODE (moid),
+ 				  true /* indicant_value */));
+     }
+ }
+ 
+ /* Dump a given MOIF.  */
+ 
+ void
+ a68_dump_moif (MOIF_T *moif)
+ {
+   text_art::style_manager sm;
+   text_art::style::id_t default_style_id (sm.get_or_create_id (text_art::style ()));
+   text_art::ascii_theme theme;
+   text_art::dump_widget_info dwi (sm, theme, default_style_id);
+   std::unique_ptr<text_art::tree_widget> widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "module interface: %s", NAME (moif));
+ 
+   std::unique_ptr<text_art::tree_widget> prelude_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "prelude: %s", PRELUDE (moif));
+   widget->add_child (std::move (prelude_widget));
+ 
+   std::unique_ptr<text_art::tree_widget> postlude_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "postlude: %s", POSTLUDE (moif));
+   widget->add_child (std::move (postlude_widget));
+ 
+   /* Mode table.  */
+   std::unique_ptr<text_art::tree_widget> modes_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "modes");
+   for (MOID_T *mode : MODES (moif))
+     {
+       const char *asm_label = ASM_LABEL (mode);
+       if (asm_label == NULL)
+ 	asm_label = a68_moid_to_string (mode, 80, NO_NODE, false);
+       std::unique_ptr<text_art::tree_widget> mode_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "mode: %s: %s",
+ 					   asm_label,
+ 					   a68_moid_to_string (mode, 80, NO_NODE, true));
+       modes_widget->add_child (std::move (mode_widget));
+     }
+   widget->add_child (std::move (modes_widget));
+ 
+   /* Module extracts.  */
+   std::unique_ptr<text_art::tree_widget> mod_extracts_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "module extracts");
+   for (EXTRACT_T *e : MODULES (moif))
+     {
+       std::unique_ptr<text_art::tree_widget> mod_extract_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "module extract: %s", EXTRACT_SYMBOL (e));
+       mod_extracts_widget->add_child (std::move (mod_extract_widget));
+     }
+   widget->add_child (std::move (mod_extracts_widget));
+ 
+   /* Mode extracts.  */
+   std::unique_ptr<text_art::tree_widget> mode_extracts_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "mode extracts");
+   for (EXTRACT_T *e : INDICANTS (moif))
+     {
+       const char *asm_label = ASM_LABEL (EXTRACT_MODE (e));
+       if (asm_label == NULL)
+ 	asm_label = a68_moid_to_string (EXTRACT_MODE (e), 80, NO_NODE, false);
+       std::unique_ptr<text_art::tree_widget> mode_extract_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "mode extract: %s [%s]",
+ 					   EXTRACT_SYMBOL (e), asm_label);
+       mode_extracts_widget->add_child (std::move (mode_extract_widget));
+     }
+   widget->add_child (std::move (mode_extracts_widget));
+ 
+   /* Priority extracts.  */
+   std::unique_ptr<text_art::tree_widget> prio_extracts_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "prio extracts");
+   for (EXTRACT_T *e : PRIOS (moif))
+     {
+       std::unique_ptr<text_art::tree_widget> prio_extract_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "prio extract: %s [prio: %d]",
+ 					   EXTRACT_SYMBOL (e), EXTRACT_PRIO (e));
+       prio_extracts_widget->add_child (std::move (prio_extract_widget));
+     }
+   widget->add_child (std::move (prio_extracts_widget));
+ 
+   /* Identifier extracts.  */
+   std::unique_ptr<text_art::tree_widget> id_extracts_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "identifier extracts");
+   for (EXTRACT_T *e : IDENTIFIERS (moif))
+     {
+       const char *asm_label = ASM_LABEL (EXTRACT_MODE (e));
+       if (asm_label == NULL)
+ 	asm_label = a68_moid_to_string (EXTRACT_MODE (e), 80, NO_NODE, false);
+       std::unique_ptr<text_art::tree_widget> id_extract_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "iden extract: %s [%s] variable=%d inproc=%d",
+ 					   EXTRACT_SYMBOL (e), asm_label,
+ 					   EXTRACT_VARIABLE (e),
+ 					   EXTRACT_IN_PROC (e));
+       id_extracts_widget->add_child (std::move (id_extract_widget));
+     }
+   widget->add_child (std::move (id_extracts_widget));
+ 
+   /* Operator extracts.  */
+   std::unique_ptr<text_art::tree_widget> op_extracts_widget
+     = text_art::tree_widget::from_fmt (dwi, nullptr, "operator extracts");
+   for (EXTRACT_T *e : OPERATORS (moif))
+     {
+       const char *asm_label = ASM_LABEL (EXTRACT_MODE (e));
+       if (asm_label == NULL)
+ 	asm_label = a68_moid_to_string (EXTRACT_MODE (e), 80, NO_NODE, false);
+ 
+       std::unique_ptr<text_art::tree_widget> op_extract_widget
+ 	= text_art::tree_widget::from_fmt (dwi, nullptr, "op extract: %s [%s] variable=%d inproc=%d",
+ 					   EXTRACT_SYMBOL (e), asm_label,
+ 					   EXTRACT_VARIABLE (e),
+ 					   EXTRACT_IN_PROC (e));
+       op_extracts_widget->add_child (std::move (op_extract_widget));
+     }
+   widget->add_child (std::move (op_extracts_widget));
+ 
+   text_art::canvas c (widget->to_canvas (sm));
+   pretty_printer *const pp = global_dc->get_reference_printer ();
+   pp_clear_output_area (pp);
+   c.print_to_pp (pp);
+   printf ("%s", pp_formatted_text (pp));
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-extract.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-extract.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-extract.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-extract.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1065 ----
+ /* Extract tags from phrases.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* This is part of the bottom-up parser.  Here is a set of routines that gather
+   definitions from phrases.  This way we can apply tags before defining them.
+   These routines do not look very elegant as they have to scan through all kind
+   of symbols to find a pattern that they recognise.  */
+ 
+ /* Insert alt equals symbol.  */
+ 
+ static void
+ insert_alt_equals (NODE_T *p)
+ {
+   NODE_T *q = a68_new_node ();
+   *q = *p;
+   INFO (q) = a68_new_node_info ();
+   *INFO (q) = *INFO (p);
+   GINFO (q) = a68_new_genie_info ();
+   *GINFO (q) = *GINFO (p);
+   ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+   NSYMBOL (q) = TEXT (a68_add_token (&A68 (top_token), "="));
+   NEXT (p) = q;
+   PREVIOUS (q) = p;
+   if (NEXT (q) != NO_NODE)
+     PREVIOUS (NEXT (q)) = q;
+ }
+ 
+ /* Detect redefined keyword.  */
+ 
+ static void
+ detect_redefined_keyword (NODE_T *p, int construct)
+ {
+   if (p != NO_NODE && a68_whether (p, KEYWORD, EQUALS_SYMBOL, STOP))
+     {
+       a68_attr_format_token a ((a68_attribute) construct);
+       a68_error (p, "attempt to redefine keyword %s in %e",
+ 		 NSYMBOL (p), &a);
+     }
+ }
+ 
+ /* Skip anything until a FED or ALT_ACCESS_SYMBOL is found.  */
+ 
+ static NODE_T *
+ skip_module_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, FED_SYMBOL) || IS (p, ALT_ACCESS_SYMBOL))
+ 	return p;
+     }
+ 
+   return NO_NODE;
+ }
+ 
+ /* Skip anything until a comma, semicolon or EXIT is found.  */
+ 
+ static NODE_T *
+ skip_unit (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, COMMA_SYMBOL))
+ 	return p;
+       else if (IS (p, SEMI_SYMBOL))
+ 	return p;
+       else if (IS (p, EXIT_SYMBOL))
+ 	return p;
+     }
+   return NO_NODE;
+ }
+ 
+ /* Attribute of entry in symbol table.  */
+ 
+ static int
+ find_tag_definition (TABLE_T *table, const char *name)
+ {
+   if (table != NO_TABLE)
+     {
+       int ret = 0;
+       bool found = false;
+       for (TAG_T *s = INDICANTS (table); s != NO_TAG && !found; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    {
+ 	      ret += INDICANT;
+ 	      found = true;
+ 	    }
+ 	}
+       found = false;
+       for (TAG_T *s = OPERATORS (table); s != NO_TAG && !found; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    {
+ 	      ret += OPERATOR;
+ 	      found = true;
+ 	    }
+ 	}
+       found = false;
+       for (TAG_T *s = MODULES (table); s != NO_TAG && !found; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    {
+ 	      ret += MODULE_INDICANT;
+ 	      found = true;
+ 	    }
+ 	}
+ 
+       if (ret == 0)
+ 	return find_tag_definition (PREVIOUS (table), name);
+       else
+ 	return ret;
+     }
+   else
+     return 0;
+ }
+ 
+ /* Fill in whether bold tag is operator, indicant, module indicant or language
+    indicant.  */
+ 
+ void
+ a68_elaborate_bold_tags (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, BOLD_TAG))
+ 	{
+ 	  if (PREVIOUS (q) != NO_NODE
+ 	      && IS (PREVIOUS (q), FORMAL_NEST_SYMBOL))
+ 	    {
+ 	      if (strcmp (NSYMBOL (q), "C") != 0)
+ 		{
+ 		  a68_symbol_format_token s (q);
+ 		  a68_error (q, "%e is not a valid language indication", &s);
+ 		}
+ 	      else
+ 		ATTRIBUTE (q) = LANGUAGE_INDICANT;
+ 	    }
+ 	  else
+ 	    {
+ 	      switch (find_tag_definition (TABLE (q), NSYMBOL (q)))
+ 		{
+ 		case 0:
+ 		  {
+ 		    a68_symbol_format_token s (q);
+ 		    a68_error (q, "indicant %e has not been declared properly", &s);
+ 		  }
+ 		  break;
+ 		case INDICANT:
+ 		  ATTRIBUTE (q) = INDICANT;
+ 		  break;
+ 		case OPERATOR:
+ 		  ATTRIBUTE (q) = OPERATOR;
+ 		  break;
+ 		case MODULE_INDICANT:
+ 		  ATTRIBUTE (q) = MODULE_INDICANT;
+ 		  break;
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Skip declarer, or argument pack and declarer.  */
+ 
+ static NODE_T *
+ skip_pack_declarer (NODE_T *p)
+ {
+   /* Skip PUB () REF [] REF FLEX [] [] ...  */
+   while (p != NO_NODE
+ 	 && (a68_is_one_of (p, SUB_SYMBOL, OPEN_SYMBOL, REF_SYMBOL,
+ 			    FLEX_SYMBOL, SHORT_SYMBOL, LONG_SYMBOL, STOP)))
+     {
+       FORWARD (p);
+     }
+ 
+   /* Skip STRUCT (), UNION () or PROC [()].  */
+   if (p != NO_NODE && (a68_is_one_of (p, STRUCT_SYMBOL, UNION_SYMBOL, STOP)))
+     return NEXT (p);
+   else if (p != NO_NODE && IS (p, PROC_SYMBOL))
+     return skip_pack_declarer (NEXT (p));
+   else
+     return p;
+ }
+ 
+ /* Extract the revelation associated with the module MODULE.
+ 
+    The node Q is used for symbol table and diagnostic purposes
+ 
+    Publicized modules are recursively extracted as well.  This call may result
+    in one or more errors.
+ 
+    If FILENAME is not NULL then the module exports are looked in
+    libFILENAME.so, FILENAME.o, etc.  If it is NULL, the filename is derived
+    from the module name.
+ 
+    This function is visible externally because it is used to extract
+    revelations of modules distributed as part of libga68, in
+    a68-parser-prelude.cc */
+ 
+ void
+ a68_extract_revelation (NODE_T *q, const char *module, const char *filename,
+ 			TAG_T *tag)
+ {
+   /* Import the MOIF and install it in the tag.  */
+   MOIF_T *moif = a68_open_packet (module, filename);
+   if (moif == NULL)
+     {
+       a68_error (q, "cannot find module %qs", module);
+       return;
+     }
+ 
+   if (tag != NO_TAG)
+     MOIF (tag) = moif;
+ 
+   /* Store all the modes from the MOIF in the moid list.
+ 
+      The front-end depends on being able to compare any two modes by pointer
+      value.  For example, the parser mode equivalence and coercion code relies
+      on this.  The lowerer also relies on this to make sure the same lowered
+      trees are used for the same modes.  */
+ 
+   for (MOID_T *m : MODES (moif))
+     {
+       /* Note that m == NO_MOID if the imported mode was already known to the
+ 	 compiler and has been replaced.  */
+       if (m != NO_MOID)
+ 	{
+ 	  MOID_T *r = a68_register_extra_mode (&TOP_MOID (&A68_JOB), m);
+ 	  if (r != m)
+ 	    {
+ 	      printf ("r: %s\n", a68_moid_to_string (r, 80, NO_NODE, false));
+ 	      printf ("m: %s\n", a68_moid_to_string (m, 80, NO_NODE, false));
+ 	      gcc_unreachable ();
+ 	    }
+ 	}
+     }
+ 
+   /* Second thing to do is to extract the revelations of publicized modules in
+      this moif.  This leads to recursive calls of this function.  Note that
+      this should be done _after_ the modes get added to the global list of
+      modes so mode deduplication in a68_open_packet in the recursive
+      extract_revelation calls is properly done.  */
+ 
+   for (EXTRACT_T *e : MODULES (moif))
+     a68_extract_revelation (q, EXTRACT_SYMBOL (e), filename, NO_TAG);
+ 
+   /* Store mode indicants from the MOIF in the symbol table,
+      and also in the moid list.  */
+   for (EXTRACT_T *e : INDICANTS (moif))
+     {
+       /* Indicants stored in the indicants area of a symbol
+ 	 table are expected to be INDICANT nodes originating in
+ 	 parsing, with the following subtree:
+ 
+ 	 INDICANT - EQUALS_SYMBOL - DECLARER
+ 
+ 	 where MOID (DECLARER) is determined to be the mode
+ 	 associated by INDICANT, or its "equivalent" mode.
+ 	 Therefore we have to synthesize something like that
+ 	 here, since the mode comes from a module interface and
+ 	 we don't have a declarer tree for it..  */
+ 
+       /* INDICANT node.  */
+       NODE_T *n = a68_some_node (a68_demangle_symbol (NAME (moif),
+ 						      EXTRACT_SYMBOL (e)));
+       MOID (n) = EXTRACT_MODE (e);
+       /* EQUALS_SYMBOL node.  */
+       NEXT (n) = a68_some_node ("=");
+       ATTRIBUTE (NEXT (n)) = EQUALS_SYMBOL;
+       /* DECLARER node.  */
+       NEXT (NEXT (n)) = a68_some_node ("");
+       LINE (INFO (n)) = LINE (INFO (q));
+       NCHAR_IN_LINE (n) = STRING (LINE (INFO (n)));
+       MOID (NEXT (NEXT (n))) = EXTRACT_MODE (e);
+       TABLE (n) = TABLE (q);
+ 
+       /* Now add the INDICANT subtree to the symbol table of
+ 	 this access clause lexical level. */
+       TAG_T *tag = a68_add_tag (TABLE (q), INDICANT, n, NO_MOID, 0);
+       gcc_assert (tag != NO_TAG);
+ 
+       /* Finally add the mode indicant to the moids list.  Note
+ 	 that the mode in DECLARER is associated to the
+ 	 INDICANT in the table at some point later, via
+ 	 EQUIVALENT.  Hence the NO_MOID in the call to
+ 	 a68_add_mode.  */
+       MOID_T *effective_mode = a68_add_mode (&TOP_MOID (&A68_JOB), INDICANT,
+ 					     0, n, NO_MOID, NO_PACK);
+       gcc_assert (effective_mode != NO_MOID);
+     }
+ 
+   /* Store priorities from the MOIF.  */
+   for (EXTRACT_T *e : PRIOS (moif))
+     {
+       NODE_T *n
+ 	= a68_some_node (a68_demangle_symbol (NAME (moif),
+ 					      EXTRACT_SYMBOL (e)));
+       /* XXX sensible location somehow? */
+       LINE (INFO (n)) = LINE (INFO (q));
+       NCHAR_IN_LINE (n) = STRING (LINE (INFO (n)));
+       TABLE (n) = TABLE (q);
+       TAG_T *tag = a68_add_tag (TABLE (q), PRIO_SYMBOL, n, NO_MOID,
+ 				EXTRACT_PRIO (e));
+       gcc_assert (tag != NO_TAG);
+       MOIF (tag) = moif; // XXX add to existing list of moifs.
+     }
+ 
+   /* Store identifiers from the MOIF.  */
+   for (EXTRACT_T *e : IDENTIFIERS (moif))
+     {
+       NODE_T *n
+ 	= a68_some_node (a68_demangle_symbol (NAME (moif),
+ 					      EXTRACT_SYMBOL (e)));
+       /* XXX sensible location somehow? */
+       LINE (INFO (n)) = LINE (INFO (q));
+       NCHAR_IN_LINE (n) = STRING (LINE (INFO (n)));
+       TABLE (n) = TABLE (q);
+ 
+       TAG_T *tag = a68_add_tag (TABLE (q), IDENTIFIER,
+ 				n, EXTRACT_MODE (e), NORMAL_IDENTIFIER);
+       gcc_assert (tag != NO_TAG);
+       EXTERN_SYMBOL (tag) = ggc_strdup (EXTRACT_SYMBOL (e));
+       VARIABLE (tag) = VARIABLE (e);
+       IN_PROC (tag) = IN_PROC (e);
+       HEAP (tag) = STATIC_SYMBOL;
+       MOIF (tag) = moif;
+     }
+ 
+   /* Store operators from the MOIF.  */
+   for (EXTRACT_T *e : OPERATORS (moif))
+     {
+       NODE_T *n
+ 	= a68_some_node (a68_demangle_symbol (NAME (moif),
+ 					      EXTRACT_SYMBOL (e),
+ 					      true /* operator */));
+       MOID (n) = EXTRACT_MODE (e);
+       LINE (INFO (n)) = LINE (INFO (q));
+       NCHAR_IN_LINE (n) = STRING (LINE (INFO (n)));
+       TABLE (n) = TABLE (q);
+       TAG_T *tag = a68_add_tag (TABLE (q), OP_SYMBOL,
+ 				n, EXTRACT_MODE (e), STOP);
+       gcc_assert (tag != NO_TAG);
+       VARIABLE (tag) = VARIABLE (e);
+       IN_PROC (tag) = IN_PROC (e);
+       HEAP (tag) = STATIC_SYMBOL;
+       MOIF (tag) = moif;
+       EXTERN_SYMBOL (tag) = ggc_strdup (EXTRACT_SYMBOL (e));
+     }
+ }
+ 
+ /* This version of a68_extract_revelation gets a symbol table and line info
+    rather than a node.  It is used to extract revelations from standard modules
+    distributed in the run-time library.  See a68-parser-prelude.cc */
+ 
+ void
+ a68_extract_revelation (TABLE_T *t, LINE_T *l,
+ 			const char *module, const char *filename,
+ 			TAG_T *tag)
+ {
+   NODE_T *q = a68_some_node ("");
+   TABLE (q) = t;
+   LINE (INFO (q)) = l;
+   a68_extract_revelation (q, module, filename, tag);
+ }
+ 
+ /* Search [MODE|MODULE] A = .., B = ..
+    and    ACCESS A, B, ..
+    and store indicants.  */
+ 
+ void
+ a68_extract_indicants (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (IS (q, ACCESS_SYMBOL) || IS (q, ALT_ACCESS_SYMBOL))
+ 	{
+ 	  /* An access clause implies the declaration of module indicants,
+ 	     provided they are found in a suitable packet.  */
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      if (q != NO_NODE)
+ 		{
+ 		  NODE_T *bold_tag = NO_NODE;
+ 
+ 		  if (IS (q, BOLD_TAG))
+ 		    {
+ 		      bold_tag = q;
+ 		      FORWARD (q);
+ 		    }
+ 		  else if (a68_whether (q, PUBLIC_SYMBOL, BOLD_TAG, STOP))
+ 		    {
+ 		      bold_tag = NEXT (q);
+ 		      FORWARD (q);
+ 		      FORWARD (q);
+ 		    }
+ 
+ 		  if (bold_tag != NO_NODE)
+ 		    {
+ 		      TAG_T *tag = a68_add_tag (TABLE (bold_tag), MODULE_SYMBOL, bold_tag, NO_MOID, STOP);
+ 		      gcc_assert (tag != NO_TAG);
+ 		      a68_extract_revelation (bold_tag, NSYMBOL (bold_tag),
+ 					      NULL /* filename */, tag);
+ 		    }
+ 		}
+ 	    }
+ 	  while (q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else if (IS (q, MODULE_SYMBOL))
+ 	{
+ 	  bool siga = true;
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      detect_redefined_keyword (q, MODULE_DECLARATION);
+ 	      if (a68_whether (q, BOLD_TAG, EQUALS_SYMBOL, STOP))
+ 		{
+ 		  ATTRIBUTE (q) = DEFINING_MODULE_INDICANT;
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = EQUALS_SYMBOL; /* XXX why not ALT_EQUALS_SYMBOL */
+ 		  if (NEXT (q) != NO_NODE && IS (NEXT (q), ACCESS_SYMBOL))
+ 		    {
+ 		      a68_error (NEXT (q),
+ 				 "nested access clauses not allowed in module texts");
+ 		      siga = false;
+ 		    }
+ 		  else
+ 		    {
+ 		      q = skip_module_text (NEXT (q));
+ 		      if (q == NO_NODE)
+ 			siga = false;
+ 		      else
+ 			FORWARD (q);
+ 		    }
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else if (IS (q, MODE_SYMBOL) || a68_whether (q, PUBLIC_SYMBOL, MODE_SYMBOL, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      detect_redefined_keyword (q, MODE_DECLARATION);
+ 	      if (a68_whether (q, BOLD_TAG, EQUALS_SYMBOL, STOP))
+ 		{
+ 		  /* Store in the symbol table, but also in the moid list.
+ 		     Position of definition (q) connects to this lexical
+ 		     level!  */
+ 		  if (a68_add_tag (TABLE (p), INDICANT, q, NO_MOID, STOP) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  if (a68_add_mode (&TOP_MOID (&A68_JOB), INDICANT, 0, q, NO_MOID, NO_PACK) == NO_MOID)
+ 		    gcc_unreachable ();
+ 		  ATTRIBUTE (q) = DEFINING_INDICANT;
+ 		  PUBLICIZED (q) = is_public;
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		  q = skip_pack_declarer (NEXT (q));
+ 		  FORWARD (q);
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ #define GET_PRIORITY(q, k)						\
+   do									\
+     {									\
+       errno=0;								\
+       (k) = atoi (NSYMBOL (q));						\
+       if (errno != 0) {							\
+ 	a68_error ((q), "invalid priority declaration");		\
+ 	(k) = MAX_PRIORITY;						\
+       } else if ((k) < 1 || (k) > MAX_PRIORITY) {			\
+ 	a68_error ((q), "invalid priority declaration");		\
+ 	(k) = MAX_PRIORITY;						\
+       }									\
+     }									\
+   while (0)
+ 
+ /* Search PRIO X = .., Y = .. and store priorities.  */
+ 
+ void
+ a68_extract_priorities (NODE_T *p)
+ {
+   NODE_T *q = p;
+   while (q != NO_NODE)
+     {
+       if (IS (q, PRIO_SYMBOL) || a68_whether (q, PUBLIC_SYMBOL, PRIO_SYMBOL, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      detect_redefined_keyword (q, PRIORITY_DECLARATION);
+ 	      /* An operator tag like ++ or && gives strange errors so we catch
+ 		 it here.  */
+ 	      if (a68_whether (q, OPERATOR, OPERATOR, STOP))
+ 		{
+ 		  NODE_T *y = q;
+ 		  a68_error (q, "invalid operator tag");
+ 		  ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		  PUBLICIZED (q) = is_public;
+ 		  /* Remove one superfluous operator, and hope it was only
+ 		     one.  */
+ 		  NEXT (q) = NEXT_NEXT (q);
+ 		  PREVIOUS (NEXT (q)) = q;
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		  FORWARD (q);
+ 		  int k;
+ 		  GET_PRIORITY (q, k);
+ 		  ATTRIBUTE (q) = PRIORITY;
+ 		  if (a68_add_tag (TABLE (p), PRIO_SYMBOL, y, NO_MOID, k) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  FORWARD (q);
+ 		}
+ 	      else if (a68_whether (q, OPERATOR, EQUALS_SYMBOL, INT_DENOTATION, STOP)
+ 		       || a68_whether (q, EQUALS_SYMBOL, EQUALS_SYMBOL, INT_DENOTATION, STOP))
+ 		{
+ 		  NODE_T *y = q;
+ 		  ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		  PUBLICIZED (q) = is_public;
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		  FORWARD (q);
+ 		  int k;
+ 		  GET_PRIORITY (q, k);
+ 		  ATTRIBUTE (q) = PRIORITY;
+ 		  if (a68_add_tag (TABLE (p), PRIO_SYMBOL, y, NO_MOID, k) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  FORWARD (q);
+ 		}
+ 	      else if (a68_whether (q, BOLD_TAG, IDENTIFIER, STOP))
+ 		{
+ 		  siga = false;
+ 		}
+ 	      else if (a68_whether (q, BOLD_TAG, EQUALS_SYMBOL, INT_DENOTATION, STOP))
+ 		{
+ 		  NODE_T *y = q;
+ 		  ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		  PUBLICIZED (q) = is_public;
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		  FORWARD (q);
+ 		  int k;
+ 		  GET_PRIORITY (q, k);
+ 		  ATTRIBUTE (q) = PRIORITY;
+ 		  if (a68_add_tag (TABLE (p), PRIO_SYMBOL, y, NO_MOID, k) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  FORWARD (q);
+ 		} else if (a68_whether (q, BOLD_TAG, INT_DENOTATION, STOP)
+ 			   || a68_whether (q, OPERATOR, INT_DENOTATION, STOP)
+ 			   || a68_whether (q, EQUALS_SYMBOL, INT_DENOTATION, STOP))
+ 		{
+ 		  /* The scanner cannot separate operator and "=" sign so we do this here.  */
+ 		  int len = (int) strlen (NSYMBOL (q));
+ 		  if (len > 1 && NSYMBOL (q)[len - 1] == '=')
+ 		    {
+ 		      NODE_T *y = q;
+ 		      char *sym = (char *) xmalloc ((size_t) (len + 1));
+ 		      a68_bufcpy (sym, NSYMBOL (q), len + 1);
+ 		      sym[len - 1] = '\0';
+ 		      NSYMBOL (q) = TEXT (a68_add_token (&A68 (top_token), sym));
+ 		      free (sym);
+ 		      if (len > 2 && NSYMBOL (q)[len - 2] == ':' && NSYMBOL (q)[len - 3] != '=')
+ 			{
+ 			  a68_symbol_format_token s (q);
+ 			  a68_error (q,
+ 				     "probably a missing symbol near invalid operator %e",
+ 				     &s);
+ 			}
+ 		      ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		      PUBLICIZED (q) = is_public;
+ 		      insert_alt_equals (q);
+ 		      q = NEXT_NEXT (q);
+ 		      int k;
+ 		      GET_PRIORITY (q, k);
+ 		      ATTRIBUTE (q) = PRIORITY;
+ 		      if (a68_add_tag (TABLE (p), PRIO_SYMBOL, y, NO_MOID, k) == NO_TAG)
+ 			gcc_unreachable ();
+ 		      FORWARD (q);
+ 		    }
+ 		  else
+ 		    siga = false;
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Search OP [( .. ) ..] X = .., Y = .. and store operators.  */
+ 
+ void
+ a68_extract_operators (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (IS (q, OP_SYMBOL) || a68_whether (q, PUBLIC_SYMBOL, OP_SYMBOL, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool in_proc = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  /* Skip operator plan.  */
+ 	  if (NEXT (q) != NO_NODE && IS (NEXT (q), OPEN_SYMBOL))
+ 	    {
+ 	      q = skip_pack_declarer (NEXT (q));
+ 	      in_proc = false;
+ 	    }
+ 	  /* Sample operators.  */
+ 	  if (q != NO_NODE)
+ 	    {
+ 	      do
+ 		{
+ 		  FORWARD (q);
+ 		  detect_redefined_keyword (q, OPERATOR_DECLARATION);
+ 		  /* Unacceptable operator tags like ++ or && could give
+ 		     strange errors.  */
+ 		  if (a68_whether (q, OPERATOR, OPERATOR, STOP))
+ 		    {
+ 		      a68_error (q, "invalid operator tag");
+ 		      ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		      PUBLICIZED (q) = is_public;
+ 		      TAG_T *t = a68_add_tag (TABLE (p), OP_SYMBOL, q, NO_MOID, STOP);
+ 		      if (t == NO_TAG)
+ 			gcc_unreachable ();
+ 		      IN_PROC (t) = in_proc;
+ 		      /* Remove one superfluous operator, and hope it was only one.  */
+ 		      NEXT (q) = NEXT_NEXT (q);
+ 		      PREVIOUS (NEXT (q)) = q;
+ 		      FORWARD (q);
+ 		      ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		      q = skip_unit (q);
+ 		    }
+ 		  else if (a68_whether (q, OPERATOR, EQUALS_SYMBOL, STOP)
+ 			   || a68_whether (q, EQUALS_SYMBOL, EQUALS_SYMBOL, STOP))
+ 		    {
+ 		      ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		      PUBLICIZED (q) = is_public;
+ 		      TAG_T *t = a68_add_tag (TABLE (p), OP_SYMBOL, q, NO_MOID, STOP);
+ 		      if (t == NO_TAG)
+ 			gcc_unreachable ();
+ 		      IN_PROC (t) = in_proc;
+ 		      FORWARD (q);
+ 		      ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		      q = skip_unit (q);
+ 		    }
+ 		  else if (a68_whether (q, BOLD_TAG, IDENTIFIER, STOP))
+ 		    {
+ 		      siga = false;
+ 		    }
+ 		  else if (a68_whether (q, BOLD_TAG, EQUALS_SYMBOL, STOP))
+ 		    {
+ 		      ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 		      PUBLICIZED (q) = is_public;
+ 		      TAG_T *t = a68_add_tag (TABLE (p), OP_SYMBOL, q, NO_MOID, STOP);
+ 		      if (t == NO_TAG)
+ 			gcc_unreachable ();
+ 		      IN_PROC (t) = in_proc;
+ 		      FORWARD (q);
+ 		      ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		      q = skip_unit (q);
+ 		    }
+ 		  else if (q != NO_NODE && (a68_is_one_of (q, OPERATOR, BOLD_TAG, EQUALS_SYMBOL, STOP)))
+ 		    {
+ 		      /* The scanner cannot separate operator and "=" sign so
+ 			 we do this here.  */
+ 		      int len = (int) strlen (NSYMBOL (q));
+ 		      if (len > 1 && NSYMBOL (q)[len - 1] == '=')
+ 			{
+ 			  char *sym = (char *) xmalloc ((size_t) (len + 1));
+ 			  a68_bufcpy (sym, NSYMBOL (q), len + 1);
+ 			  sym[len - 1] = '\0';
+ 			  NSYMBOL (q) = TEXT (a68_add_token (&A68 (top_token), sym));
+ 			  if (len > 2 && NSYMBOL (q)[len - 2] == ':'
+ 			      && NSYMBOL (q)[len - 3] != '=')
+ 			    {
+ 			      a68_symbol_format_token s (q);
+ 			      a68_error (q,
+ 					 "probably a missing symbol near invalid operator %e",
+ 					 &s);
+ 			    }
+ 			  ATTRIBUTE (q) = DEFINING_OPERATOR;
+ 			  PUBLICIZED (q) = is_public;
+ 			  insert_alt_equals (q);
+ 			  TAG_T *t = a68_add_tag (TABLE (p), OP_SYMBOL, q, NO_MOID, STOP);
+ 			  if (t == NO_TAG)
+ 			    gcc_unreachable ();
+ 			  IN_PROC (t) = in_proc;
+ 			  FORWARD (q);
+ 			  q = skip_unit (q);
+ 			}
+ 		      else
+ 			siga = false;
+ 		    }
+ 		  else
+ 		    siga = false;
+ 		}
+ 	      while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	    }
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Search and store labels.  */
+ 
+ void
+ a68_extract_labels (NODE_T *p, int expect)
+ {
+   /* Only handle candidate phrases as not to search indexers!.  */
+   if (expect == SERIAL_CLAUSE || expect == ENQUIRY_CLAUSE || expect == SOME_CLAUSE)
+     {
+       for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (a68_whether (q, IDENTIFIER, COLON_SYMBOL, STOP))
+ 	    {
+ 	      TAG_T *z = a68_add_tag (TABLE (p), LABEL, q, NO_MOID, LOCAL_LABEL);
+ 	      ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 	      UNIT (z) = NO_NODE;
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Search MOID x = .., y = .. and store identifiers.  */
+ 
+ static void
+ extract_identities (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (a68_whether (q, DECLARER, IDENTIFIER, EQUALS_SYMBOL, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, DECLARER, IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  NODE_T *declarer = q;
+ 	  do
+ 	    {
+ 	      if (a68_whether ((FORWARD (q)), IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 		{
+ 		  TAG_T *tag = a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER);
+ 		  if (tag == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  if (IS (SUB (declarer), PROC_SYMBOL))
+ 		    {
+ 		      NODE_T *actual_param = NEXT (NEXT (q));
+ 		      if (actual_param != NO_NODE && IS (actual_param, FORMAL_NEST_SYMBOL))
+ 			NEST_PROC (tag) = true;
+ 		    }
+ 		  FORWARD (q);
+ 		  ATTRIBUTE (q) = ALT_EQUALS_SYMBOL;
+ 		  q = skip_unit (q);
+ 		}
+ 	      else if (a68_whether (q, IDENTIFIER, ASSIGN_SYMBOL, STOP))
+ 		{
+ 		  /* Handle common error in ALGOL 68 programs.  */
+ 		  a68_error (q, "mixed identity-declaration and variable-declaration");
+ 		  if (a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  ATTRIBUTE (FORWARD (q)) = ALT_EQUALS_SYMBOL;
+ 		  q = skip_unit (q);
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Search MOID x [:= ..], y [:= ..] and store identifiers.  */
+ 
+ static void
+ extract_variables (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (a68_whether (q, HEAP_SYMBOL, DECLARER, IDENTIFIER, STOP)
+ 	  || a68_whether (q, LOC_SYMBOL, DECLARER, IDENTIFIER, STOP)
+ 	  || a68_whether (q, DECLARER, IDENTIFIER, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, HEAP_SYMBOL, DECLARER, IDENTIFIER, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, LOC_SYMBOL, DECLARER, IDENTIFIER, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, DECLARER, IDENTIFIER, STOP))
+ 	{
+ 	  bool is_public = IS (q, PUBLIC_SYMBOL);
+ 	  while (!IS (q, DECLARER))
+ 	    FORWARD (q);
+ 
+ 	  bool siga = true;
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      if (a68_whether (q, IDENTIFIER, STOP))
+ 		{
+ 		  if (a68_whether (q, IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 		    {
+ 		      /* Handle common error in ALGOL 68 programs.  */
+ 		      a68_error (q, "mixed identity-declaration and variable-declaration");
+ 		      ATTRIBUTE (NEXT (q)) = ASSIGN_SYMBOL;
+ 		    }
+ 		  TAG_T *tag = a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER);
+ 		  if (tag == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  VARIABLE (tag) = true;
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  q = skip_unit (q);
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Search PROC x = .., y = .. and stores identifiers.  */
+ 
+ static void
+ extract_proc_identities (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (a68_whether (q, PROC_SYMBOL, IDENTIFIER, EQUALS_SYMBOL, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, PROC_SYMBOL, IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      if (a68_whether (q, IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 		{
+ 		  TAG_T *t = a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER);
+ 		  IN_PROC (t) = true;
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  ATTRIBUTE (FORWARD (q)) = ALT_EQUALS_SYMBOL;
+ 		  q = skip_unit (q);
+ 		}
+ 	      else if (a68_whether (q, IDENTIFIER, ASSIGN_SYMBOL, STOP))
+ 		{
+ 		  /* Handle common error in ALGOL 68 programs. */
+ 		  a68_error (q, "mixed identity-declaration and variable-declaration");
+ 		  if (a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER) == NO_TAG)
+ 		    gcc_unreachable ();
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  ATTRIBUTE (FORWARD (q)) = ALT_EQUALS_SYMBOL;
+ 		  q = skip_unit (q);
+ 		}
+ 	      else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Search PROC x [:= ..], y [:= ..]; store identifiers.  */
+ 
+ static void
+ extract_proc_variables (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       if (a68_whether (q, PROC_SYMBOL, IDENTIFIER, STOP)
+ 	  || a68_whether (q, PUBLIC_SYMBOL, PROC_SYMBOL, IDENTIFIER, STOP))
+ 	{
+ 	  bool siga = true;
+ 	  bool is_public = false;
+ 
+ 	  if (IS (q, PUBLIC_SYMBOL))
+ 	    {
+ 	      is_public = true;
+ 	      FORWARD (q);
+ 	    }
+ 
+ 	  do
+ 	    {
+ 	      FORWARD (q);
+ 	      if (a68_whether (q, IDENTIFIER, ASSIGN_SYMBOL, STOP))
+ 		{
+ 		  TAG_T *tag = a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER);
+ 		  gcc_assert (tag != NO_TAG);
+ 		  VARIABLE (tag) = true;
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  q = skip_unit (FORWARD (q));
+ 		}
+ 	      else if (a68_whether (q, IDENTIFIER, EQUALS_SYMBOL, STOP))
+ 		{
+ 		  /* Handle common error in ALGOL 68 programs.  */
+ 		  a68_error (q, "mixed identity-declaration and variable-declaration");
+ 		  TAG_T *tag = a68_add_tag (TABLE (p), IDENTIFIER, q, NO_MOID, NORMAL_IDENTIFIER);
+ 		  gcc_assert (tag != NO_TAG);
+ 		  ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+ 		  PUBLICIZED (q) = is_public;
+ 		  ATTRIBUTE (FORWARD (q)) = ASSIGN_SYMBOL;
+ 		  q = skip_unit (q);
+ 		} else
+ 		siga = false;
+ 	    }
+ 	  while (siga && q != NO_NODE && IS (q, COMMA_SYMBOL));
+ 	}
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /* Schedule gathering of definitions in a phrase.  */
+ 
+ void
+ a68_extract_declarations (NODE_T *p)
+ {
+   /* Get definitions so we know what is defined in this range.  */
+   extract_identities (p);
+   extract_variables (p);
+   extract_proc_identities (p);
+   extract_proc_variables (p);
+   /* By now we know whether "=" is an operator or not.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, EQUALS_SYMBOL))
+ 	ATTRIBUTE (q) = OPERATOR;
+       else if (IS (q, ALT_EQUALS_SYMBOL))
+ 	ATTRIBUTE (q) = EQUALS_SYMBOL;
+     }
+ 
+   /* Get qualifiers.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (a68_whether (q, LOC_SYMBOL, DECLARER, DEFINING_IDENTIFIER, STOP))
+ 	a68_make_sub (q, q, QUALIFIER);
+       if (a68_whether (q, HEAP_SYMBOL, DECLARER, DEFINING_IDENTIFIER, STOP))
+ 	a68_make_sub (q, q, QUALIFIER);
+       if (a68_whether (q, LOC_SYMBOL, PROC_SYMBOL, DEFINING_IDENTIFIER, STOP))
+ 	a68_make_sub (q, q, QUALIFIER);
+       if (a68_whether (q, HEAP_SYMBOL, PROC_SYMBOL, DEFINING_IDENTIFIER, STOP))
+ 	a68_make_sub (q, q, QUALIFIER);
+     }
+ 
+   /* Give priorities to operators.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, OPERATOR))
+ 	{
+ 	  if (a68_find_tag_global (TABLE (q), OP_SYMBOL, NSYMBOL (q)))
+ 	    {
+ 	      TAG_T *s = a68_find_tag_global (TABLE (q), PRIO_SYMBOL, NSYMBOL (q));
+ 
+ 	      if (s != NO_TAG)
+ 		PRIO (INFO (q)) = PRIO (s);
+ 	      else
+ 		PRIO (INFO (q)) = 0;
+ 	    }
+ 	  else
+ 	    {
+ 	      a68_symbol_format_token s (q);
+ 	      a68_error (q, "indicant %e has not been declared properly", &s);
+ 	      PRIO (INFO (q)) = 1;
+ 	    }
+ 	}
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-keywords.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-keywords.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-keywords.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-keywords.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,255 ----
+ /* Keyword tables.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /* Apply stropping to the given keyword and return its written form, which must
+    be upper-case.  */
+ 
+ const char *
+ a68_strop_keyword (const char *keyword)
+ {
+   char *stropped = (char *) alloca (strlen (keyword) + 1);
+   memcpy (stropped, keyword, strlen (keyword) + 1);
+ 
+   if (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING)
+     {
+       for (char *p = stropped; *p; ++p)
+ 	*p = TOLOWER (*p);
+     }
+ 
+   return ggc_strdup (stropped);
+ }
+ 
+ /* Add token to the token tree.  */
+ 
+ TOKEN_T *
+ a68_add_token (TOKEN_T **p, const char *t)
+ {
+   while (*p != NO_TOKEN)
+     {
+       int k = strcmp (t, TEXT (*p));
+ 
+       if (k < 0)
+ 	p = &LESS (*p);
+       else if (k > 0)
+ 	p = &MORE (*p);
+       else
+ 	return *p;
+     }
+ 
+   *p = (TOKEN_T *) ggc_cleared_alloc<TOKEN_T> ();
+   TEXT (*p) = ggc_strdup (t);
+   LESS (*p) = MORE (*p) = NO_TOKEN;
+   return *p;
+ }
+ 
+ /*  Find keyword, from token name.  */
+ 
+ KEYWORD_T *
+ a68_find_keyword (KEYWORD_T *p, const char *t)
+ {
+   while (p != NO_KEYWORD)
+     {
+       bool case_insensitive = (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING);
+       int k = (case_insensitive
+ 	       ? strcasecmp (t, TEXT (p))
+ 	       : strcmp (t, TEXT (p)));
+ 
+       if (k < 0)
+ 	p = LESS (p);
+       else if (k > 0)
+ 	p = MORE (p);
+       else
+ 	return p;
+     }
+ 
+   return NO_KEYWORD;
+ }
+ 
+ /* Find keyword, from attribute.  */
+ 
+ KEYWORD_T *
+ a68_find_keyword_from_attribute (KEYWORD_T *p, enum a68_attribute a)
+ {
+   if (p == NO_KEYWORD)
+     return NO_KEYWORD;
+   else if (a == ATTRIBUTE (p))
+     return p;
+   else
+     {
+       KEYWORD_T *z;
+ 
+       if ((z = a68_find_keyword_from_attribute (LESS (p), a)) != NO_KEYWORD)
+ 	return z;
+       else if ((z = a68_find_keyword_from_attribute (MORE (p), a)) != NO_KEYWORD)
+ 	return z;
+     }
+ 
+   return NO_KEYWORD;
+ }
+ 
+ /* Add keyword to the tree.  */
+ 
+ static void
+ add_keyword (KEYWORD_T **p, enum a68_attribute a, const char *t)
+ {
+   while (*p != NO_KEYWORD)
+     {
+       bool case_insensitive = (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING);
+       int k = (case_insensitive
+ 	       ? strcasecmp (t, TEXT (*p))
+ 	       : strcmp (t, TEXT (*p)));
+       if (k < 0)
+ 	p = &LESS (*p);
+       else
+ 	p = &MORE (*p);
+     }
+ 
+   *p = (KEYWORD_T *) ggc_cleared_alloc<KEYWORD_T> ();
+   ATTRIBUTE (*p) = a;
+   TEXT (*p) = t;
+   LESS (*p) = MORE (*p) = NO_KEYWORD;
+ }
+ 
+ /* Make tables of keywords and non-terminals.  */
+ 
+ void
+ a68_set_up_tables (void)
+ {
+   /* Entries are randomised to balance the tree.  */
+   if (OPTION_STRICT (&A68_JOB) == false)
+     {
+       /* Symbols from GNU extensions.  */
+       add_keyword (&A68 (top_keyword), ANDF_SYMBOL, "ANDTH");
+       add_keyword (&A68 (top_keyword), ORF_SYMBOL, "OREL");
+       add_keyword (&A68 (top_keyword), BRIEF_COMMENT_BEGIN_SYMBOL, "{");
+       add_keyword (&A68 (top_keyword), BRIEF_COMMENT_END_SYMBOL, "}");
+       add_keyword (&A68 (top_keyword), QUOTE_SYMBOL, "'");
+ 
+       if (OPTION_STROPPING (&A68_JOB) != SUPPER_STROPPING)
+ 	{
+ 	  add_keyword (&A68 (top_keyword), BOLD_COMMENT_BEGIN_SYMBOL, "NOTE");
+ 	  add_keyword (&A68 (top_keyword), BOLD_COMMENT_END_SYMBOL, "ETON");
+ 	}
+ 
+       /* Symbols from MR.  */
+       add_keyword (&A68 (top_keyword), ACCESS_SYMBOL, "ACCESS");
+       add_keyword (&A68 (top_keyword), DEF_SYMBOL, "DEF");
+       add_keyword (&A68 (top_keyword), POSTLUDE_SYMBOL, "POSTLUDE");
+       add_keyword (&A68 (top_keyword), FED_SYMBOL, "FED");
+       add_keyword (&A68 (top_keyword), FORMAL_NEST_SYMBOL, "NEST");
+       add_keyword (&A68 (top_keyword), MODULE_SYMBOL, "MODULE");
+       add_keyword (&A68 (top_keyword), EGG_SYMBOL, "EGG");
+       add_keyword (&A68 (top_keyword), PUBLIC_SYMBOL, "PUB");
+     }
+ 
+   if (OPTION_STROPPING (&A68_JOB) != SUPPER_STROPPING)
+     {
+       /* The following representations do not work well with stropping regimes
+ 	 in which reserved words live in the same namespace than
+ 	 tags/identifiers.  The alternative "brief" representations for these
+ 	 symbols shall be used instead.  */
+       add_keyword (&A68 (top_keyword), STYLE_I_COMMENT_SYMBOL, "CO");
+       add_keyword (&A68 (top_keyword), BOLD_COMMENT_SYMBOL, "COMMENT");
+       add_keyword (&A68 (top_keyword), STYLE_II_COMMENT_SYMBOL, "#");
+     }
+ 
+   add_keyword (&A68 (top_keyword), POINT_SYMBOL, ".");
+   add_keyword (&A68 (top_keyword), COLON_SYMBOL, ":");
+   add_keyword (&A68 (top_keyword), THEN_BAR_SYMBOL, "|");
+   add_keyword (&A68 (top_keyword), SUB_SYMBOL, "[");
+   add_keyword (&A68 (top_keyword), BY_SYMBOL, "BY");
+   add_keyword (&A68 (top_keyword), OP_SYMBOL, "OP");
+   add_keyword (&A68 (top_keyword), COMMA_SYMBOL, ",");
+   add_keyword (&A68 (top_keyword), AT_SYMBOL, "AT");
+   add_keyword (&A68 (top_keyword), PRIO_SYMBOL, "PRIO");
+   add_keyword (&A68 (top_keyword), END_SYMBOL, "END");
+   add_keyword (&A68 (top_keyword), GO_SYMBOL, "GO");
+   add_keyword (&A68 (top_keyword), TO_SYMBOL, "TO");
+   add_keyword (&A68 (top_keyword), ELSE_BAR_SYMBOL, "|:");
+   add_keyword (&A68 (top_keyword), THEN_SYMBOL, "THEN");
+   add_keyword (&A68 (top_keyword), TRUE_SYMBOL, "TRUE");
+   add_keyword (&A68 (top_keyword), PROC_SYMBOL, "PROC");
+   add_keyword (&A68 (top_keyword), FOR_SYMBOL, "FOR");
+   add_keyword (&A68 (top_keyword), GOTO_SYMBOL, "GOTO");
+   add_keyword (&A68 (top_keyword), WHILE_SYMBOL, "WHILE");
+   add_keyword (&A68 (top_keyword), IS_SYMBOL, ":=:");
+   add_keyword (&A68 (top_keyword), ASSIGN_TO_SYMBOL, "=:");
+   add_keyword (&A68 (top_keyword), COMPL_SYMBOL, "COMPL");
+   add_keyword (&A68 (top_keyword), FROM_SYMBOL, "FROM");
+   add_keyword (&A68 (top_keyword), BOLD_PRAGMAT_SYMBOL, "PRAGMAT");
+   add_keyword (&A68 (top_keyword), DO_SYMBOL, "DO");
+   add_keyword (&A68 (top_keyword), CASE_SYMBOL, "CASE");
+   add_keyword (&A68 (top_keyword), LOC_SYMBOL, "LOC");
+   add_keyword (&A68 (top_keyword), CHAR_SYMBOL, "CHAR");
+   add_keyword (&A68 (top_keyword), ISNT_SYMBOL, ":/=:");
+   add_keyword (&A68 (top_keyword), REF_SYMBOL, "REF");
+   add_keyword (&A68 (top_keyword), NIL_SYMBOL, "NIL");
+   add_keyword (&A68 (top_keyword), ASSIGN_SYMBOL, ":=");
+   add_keyword (&A68 (top_keyword), FI_SYMBOL, "FI");
+   add_keyword (&A68 (top_keyword), FILE_SYMBOL, "FILE");
+   add_keyword (&A68 (top_keyword), PAR_SYMBOL, "PAR");
+   add_keyword (&A68 (top_keyword), ASSERT_SYMBOL, "ASSERT");
+   add_keyword (&A68 (top_keyword), OUSE_SYMBOL, "OUSE");
+   add_keyword (&A68 (top_keyword), IN_SYMBOL, "IN");
+   add_keyword (&A68 (top_keyword), LONG_SYMBOL, "LONG");
+   add_keyword (&A68 (top_keyword), SEMI_SYMBOL, ";");
+   add_keyword (&A68 (top_keyword), EMPTY_SYMBOL, "EMPTY");
+   add_keyword (&A68 (top_keyword), MODE_SYMBOL, "MODE");
+   add_keyword (&A68 (top_keyword), IF_SYMBOL, "IF");
+   add_keyword (&A68 (top_keyword), OD_SYMBOL, "OD");
+   add_keyword (&A68 (top_keyword), OF_SYMBOL, "OF");
+   add_keyword (&A68 (top_keyword), STRUCT_SYMBOL, "STRUCT");
+   add_keyword (&A68 (top_keyword), STYLE_I_PRAGMAT_SYMBOL, "PR");
+   add_keyword (&A68 (top_keyword), BUS_SYMBOL, "]");
+   add_keyword (&A68 (top_keyword), SKIP_SYMBOL, "SKIP");
+   add_keyword (&A68 (top_keyword), SHORT_SYMBOL, "SHORT");
+   add_keyword (&A68 (top_keyword), IS_SYMBOL, "IS");
+   add_keyword (&A68 (top_keyword), ESAC_SYMBOL, "ESAC");
+   add_keyword (&A68 (top_keyword), CHANNEL_SYMBOL, "CHANNEL");
+   add_keyword (&A68 (top_keyword), REAL_SYMBOL, "REAL");
+   add_keyword (&A68 (top_keyword), STRING_SYMBOL, "STRING");
+   add_keyword (&A68 (top_keyword), BOOL_SYMBOL, "BOOL");
+   add_keyword (&A68 (top_keyword), ISNT_SYMBOL, "ISNT");
+   add_keyword (&A68 (top_keyword), FALSE_SYMBOL, "FALSE");
+   add_keyword (&A68 (top_keyword), UNION_SYMBOL, "UNION");
+   add_keyword (&A68 (top_keyword), OUT_SYMBOL, "OUT");
+   add_keyword (&A68 (top_keyword), BRIEF_COMMENT_END_SYMBOL, "{");
+   add_keyword (&A68 (top_keyword), OPEN_SYMBOL, "(");
+   add_keyword (&A68 (top_keyword), BEGIN_SYMBOL, "BEGIN");
+   add_keyword (&A68 (top_keyword), FLEX_SYMBOL, "FLEX");
+   add_keyword (&A68 (top_keyword), VOID_SYMBOL, "VOID");
+   add_keyword (&A68 (top_keyword), BITS_SYMBOL, "BITS");
+   add_keyword (&A68 (top_keyword), ELSE_SYMBOL, "ELSE");
+   add_keyword (&A68 (top_keyword), EXIT_SYMBOL, "EXIT");
+   add_keyword (&A68 (top_keyword), HEAP_SYMBOL, "HEAP");
+   add_keyword (&A68 (top_keyword), INT_SYMBOL, "INT");
+   add_keyword (&A68 (top_keyword), BYTES_SYMBOL, "BYTES");
+   add_keyword (&A68 (top_keyword), SEMA_SYMBOL, "SEMA");
+   add_keyword (&A68 (top_keyword), CLOSE_SYMBOL, ")");
+   add_keyword (&A68 (top_keyword), AT_SYMBOL, "@");
+   add_keyword (&A68 (top_keyword), ELIF_SYMBOL, "ELIF");
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-modes.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-modes.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-modes.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-modes.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1372 ----
+ /* Mode table management.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /*
+  * Mode collection, equivalencing and derived modes.
+  */
+ 
+ /* Few forward references.  */
+ 
+ static MOID_T *get_mode_from_declarer (NODE_T *p);
+ 
+ /*
+  * Mode service routines.
+  */
+ 
+ /* Count bounds in declarer in tree.  */
+ 
+ static int
+ count_bounds (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return 0;
+   else
+     {
+       if (IS (p, BOUND))
+ 	return 1 + count_bounds (NEXT (p));
+       else
+ 	return count_bounds (NEXT (p)) + count_bounds (SUB (p));
+     }
+ }
+ 
+ /* Count number of SHORTs or LONGs. */
+ 
+ static int
+ count_sizety (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return 0;
+   else if (IS (p, LONGETY))
+     return count_sizety (SUB (p)) + count_sizety (NEXT (p));
+   else if (IS (p, SHORTETY))
+     return count_sizety (SUB (p)) + count_sizety (NEXT (p));
+   else if (IS (p, LONG_SYMBOL))
+     return 1;
+   else if (IS (p, SHORT_SYMBOL))
+     return -1;
+   else
+     return 0;
+ }
+ 
+ /* Count moids in a pack.  */
+ 
+ int
+ a68_count_pack_members (PACK_T *u)
+ {
+   int k = 0;
+ 
+   for (; u != NO_PACK; FORWARD (u))
+     k++;
+   return k;
+ }
+ 
+ /* Replace a mode by its equivalent mode.  */
+ 
+ static void
+ resolve_equivalent (MOID_T **m)
+ {
+   while ((*m) != NO_MOID
+ 	 && EQUIVALENT ((*m)) != NO_MOID
+ 	 && (*m) != EQUIVALENT (*m))
+     {
+       (*m) = EQUIVALENT (*m);
+     }
+ }
+ 
+ /* Reset moid.  */
+ 
+ static void
+ reset_moid_tree (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       MOID (p) = NO_MOID;
+       reset_moid_tree (SUB (p));
+     }
+ }
+ 
+ /* Renumber moids.  */
+ 
+ void
+ a68_renumber_moids (MOID_T *p, int n)
+ {
+   if (p != NO_MOID)
+     {
+       NUMBER (p) = n;
+       a68_renumber_moids (NEXT (p), n + 1);
+     }
+ }
+ 
+ /* See whether a mode equivalent to the mode M exists in the global mode table,
+    and return it.  Return NO_MOID if no equivalent mode is found.  */
+ 
+ MOID_T *
+ a68_search_equivalent_mode (MOID_T *m)
+ {
+   for (MOID_T *head = TOP_MOID (&A68_JOB); head != NO_MOID; FORWARD (head))
+     {
+       if (a68_prove_moid_equivalence (head, m))
+ 	return head;
+     }
+ 
+   return NO_MOID;
+ }
+ 
+ /* Register mode in the global mode table, if mode is unique.  */
+ 
+ MOID_T *
+ a68_register_extra_mode (MOID_T **z, MOID_T *u)
+ {
+   /* If we already know this mode, return the existing entry; otherwise link it
+      in.  */
+   for (MOID_T *head = TOP_MOID (&A68_JOB); head != NO_MOID; FORWARD (head))
+     {
+       if (a68_prove_moid_equivalence (head, u))
+ 	return head;
+     }
+ 
+   /* Link to chain and exit.  */
+   NUMBER (u) = A68 (mode_count)++;
+   NEXT (u) = (*z);
+   return *z = u;
+ }
+ 
+ /* Create a new mode.  */
+ 
+ MOID_T *
+ a68_create_mode (int att, int dim, NODE_T *node, MOID_T *sub, PACK_T *pack)
+ {
+   MOID_T *new_mode = a68_new_moid ();
+ 
+   if (sub == NO_MOID)
+     {
+       if (att == REF_SYMBOL
+ 	  || att == FLEX_SYMBOL
+ 	  || att == ROW_SYMBOL)
+ 	gcc_unreachable ();
+     }
+ 
+   USE (new_mode) = false;
+   ATTRIBUTE (new_mode) = att;
+   DIM (new_mode) = dim;
+   NODE (new_mode) = node;
+   HAS_ROWS (new_mode) = (att == ROW_SYMBOL);
+   HAS_REFS (new_mode) = (att == REF_SYMBOL);
+   SUB (new_mode) = sub;
+   PACK (new_mode) = pack;
+   NEXT (new_mode) = NO_MOID;
+   EQUIVALENT (new_mode) = NO_MOID;
+   SLICE (new_mode) = NO_MOID;
+   DEFLEXED (new_mode) = NO_MOID;
+   NAME (new_mode) = NO_MOID;
+   MULTIPLE (new_mode) = NO_MOID;
+   ROWED (new_mode) = NO_MOID;
+ 
+   return new_mode;
+ }
+ 
+ /* Create a new mode and add it to chain Z.  */
+ 
+ MOID_T *
+ a68_add_mode (MOID_T **z, int att, int dim, NODE_T *node, MOID_T *sub, PACK_T *pack)
+ {
+   MOID_T *new_mode = a68_create_mode (att, dim, node, sub, pack);
+   return a68_register_extra_mode (z, new_mode);
+ }
+ 
+ /* Contract a UNION.  */
+ 
+ void
+ a68_contract_union (MOID_T *u)
+ {
+   for (PACK_T *s = PACK (u); s != NO_PACK; FORWARD (s))
+     {
+       PACK_T *t = s;
+ 
+       while (t != NO_PACK)
+ 	{
+ 	  if (NEXT (t) != NO_PACK && MOID (NEXT (t)) == MOID (s))
+ 	    {
+ 	      MOID (t) = MOID (t);
+ 	      NEXT (t) = NEXT_NEXT (t);
+ 	    }
+ 	  else
+ 	    FORWARD (t);
+ 	}
+     }
+ }
+ 
+ /* Absorb UNION pack.  */
+ 
+ PACK_T *
+ a68_absorb_union_pack (PACK_T * u)
+ {
+   PACK_T *z;
+   bool siga;
+ 
+   do
+     {
+       z = NO_PACK;
+       siga = false;
+       for (PACK_T *t = u; t != NO_PACK; FORWARD (t))
+ 	{
+ 	  if (IS (MOID (t), UNION_SYMBOL))
+ 	    {
+ 	      siga = true;
+ 	      for (PACK_T *s = PACK (MOID (t)); s != NO_PACK; FORWARD (s))
+ 		(void) a68_add_mode_to_pack (&z, MOID (s), NO_TEXT, NODE (s));
+ 	    }
+ 	  else
+ 	    {
+ 	      (void) a68_add_mode_to_pack (&z, MOID (t), NO_TEXT, NODE (t));
+ 	    }
+ 	}
+       u = z;
+     }
+   while (siga);
+   return z;
+ }
+ 
+ /* Add row and its slices to chain, recursively.  */
+ 
+ static MOID_T *
+ add_row (MOID_T **p, int dim, MOID_T *sub, NODE_T *n, bool derivate)
+ {
+   MOID_T *q = a68_add_mode (p, ROW_SYMBOL, dim, n, sub, NO_PACK);
+ 
+   DERIVATE (q) |= derivate;
+   if (dim > 1)
+     SLICE (q) = add_row (&NEXT (q), dim - 1, sub, n, derivate);
+   else
+     SLICE (q) = sub;
+   return q;
+ }
+ 
+ /* Add a moid to a pack, maybe with a (field) name.  */
+ 
+ void
+ a68_add_mode_to_pack (PACK_T **p, MOID_T *m, const char *text, NODE_T *node)
+ {
+   PACK_T *z = a68_new_pack ();
+ 
+   MOID (z) = m;
+   TEXT (z) = text;
+   NODE (z) = node;
+   NEXT (z) = *p;
+   PREVIOUS (z) = NO_PACK;
+   if (NEXT (z) != NO_PACK)
+     PREVIOUS (NEXT (z)) = z;
+ 
+   /* Link in chain.  */
+   *p = z;
+ }
+ 
+ /* Add a moid to a pack, maybe with a (field) name.  */
+ 
+ void
+ a68_add_mode_to_pack_end (PACK_T **p, MOID_T *m, const char *text, NODE_T *node)
+ {
+   PACK_T *z = a68_new_pack ();
+ 
+   MOID (z) = m;
+   TEXT (z) = text;
+   NODE (z) = node;
+   NEXT (z) = NO_PACK;
+   if (NEXT (z) != NO_PACK)
+     PREVIOUS (NEXT (z)) = z;
+ 
+   /* Link in chain.  */
+   while ((*p) != NO_PACK)
+     p = &(NEXT (*p));
+   PREVIOUS (z) = (*p);
+   (*p) = z;
+ }
+ 
+ /* Absorb UNION members.  */
+ 
+ static void
+ absorb_unions (MOID_T *m)
+ {
+   /* UNION (A, UNION (B, C)) = UNION (A, B, C) or
+      UNION (A, UNION (A, B)) = UNION (A, B).  */
+   for (; m != NO_MOID; FORWARD (m))
+     {
+       if (IS (m, UNION_SYMBOL))
+ 	PACK (m) = a68_absorb_union_pack (PACK (m));
+     }
+ }
+ 
+ /* Contract UNIONs.  */
+ 
+ static void
+ contract_unions (MOID_T *m)
+ {
+   /* UNION (A, B, A) -> UNION (A, B).  */
+   for (; m != NO_MOID; FORWARD (m))
+     {
+       if (IS (m, UNION_SYMBOL) && EQUIVALENT (m) == NO_MOID)
+ 	a68_contract_union (m);
+     }
+ }
+ 
+ /*
+  * Routines to collect MOIDs from the program text.
+  */
+ 
+ /* Search standard mode in standard environ.  */
+ 
+ static MOID_T *
+ search_standard_mode (int sizety, NODE_T *indicant)
+ {
+   /* Search standard mode.  */
+   for (MOID_T *p = TOP_MOID (&A68_JOB); p != NO_MOID; FORWARD (p))
+     {
+       if (IS (p, STANDARD)
+ 	  && DIM (p) == sizety
+ 	  && NSYMBOL (NODE (p)) == NSYMBOL (indicant))
+ 	return p;
+   }
+ 
+   /* Map onto greater precision.  */
+   if (sizety < 0)
+     return search_standard_mode (sizety + 1, indicant);
+   else if (sizety > 0)
+     return search_standard_mode (sizety - 1, indicant);
+   else
+     return NO_MOID;
+ }
+ 
+ /* Collect mode from STRUCT field.  */
+ 
+ static void
+ get_mode_from_struct_field (NODE_T *p, PACK_T **u)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, IDENTIFIER))
+ 	{
+ 	  ATTRIBUTE (p) = FIELD_IDENTIFIER;
+ 	  (void) a68_add_mode_to_pack (u, NO_MOID, NSYMBOL (p), p);
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  MOID_T *new_one = get_mode_from_declarer (p);
+ 
+ 	  get_mode_from_struct_field (NEXT (p), u);
+ 	  for (PACK_T *t = *u; t && MOID (t) == NO_MOID; FORWARD (t))
+ 	    {
+ 	      MOID (t) = new_one;
+ 	      MOID (NODE (t)) = new_one;
+ 	    }
+ 	}
+       else
+ 	{
+ 	  get_mode_from_struct_field (NEXT (p), u);
+ 	  get_mode_from_struct_field (SUB (p), u);
+ 	}
+     }
+ }
+ 
+ /* Collect MODE from formal pack.  */
+ 
+ static void
+ get_mode_from_formal_pack (NODE_T *p, PACK_T **u)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, DECLARER))
+ 	{
+ 	  get_mode_from_formal_pack (NEXT (p), u);
+ 	  MOID_T *z = get_mode_from_declarer (p);
+ 	  (void) a68_add_mode_to_pack (u, z, NO_TEXT, p);
+ 	}
+       else
+ 	{
+ 	  get_mode_from_formal_pack (NEXT (p), u);
+ 	  get_mode_from_formal_pack (SUB (p), u);
+ 	}
+     }
+ }
+ 
+ /* Collect MODE or VOID from formal UNION pack.  */
+ 
+ static void
+ get_mode_from_union_pack (NODE_T *p, PACK_T **u)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, DECLARER) || IS (p, VOID_SYMBOL))
+ 	{
+ 	  get_mode_from_union_pack (NEXT (p), u);
+ 	  MOID_T *z = get_mode_from_declarer (p);
+ 	  (void) a68_add_mode_to_pack (u, z, NO_TEXT, p);
+ 	}
+       else
+ 	{
+ 	  get_mode_from_union_pack (NEXT (p), u);
+ 	  get_mode_from_union_pack (SUB (p), u);
+ 	}
+     }
+ }
+ 
+ /* Collect mode from PROC, OP pack.  */
+ 
+ static void
+ get_mode_from_routine_pack (NODE_T *p, PACK_T **u)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, IDENTIFIER))
+ 	(void) a68_add_mode_to_pack (u, NO_MOID, NO_TEXT, p);
+       else if (IS (p, DECLARER))
+ 	{
+ 	  MOID_T *z = get_mode_from_declarer (p);
+ 
+ 	  for (PACK_T *t = *u; t != NO_PACK && MOID (t) == NO_MOID; FORWARD (t))
+ 	    {
+ 	      MOID (t) = z;
+ 	      MOID (NODE (t)) = z;
+ 	    }
+ 	  (void) a68_add_mode_to_pack (u, z, NO_TEXT, p);
+ 	}
+       else
+ 	{
+ 	  get_mode_from_routine_pack (NEXT (p), u);
+ 	  get_mode_from_routine_pack (SUB (p), u);
+ 	}
+     }
+ }
+ 
+ /* Collect MODE from DECLARER.  */
+ 
+ static MOID_T *
+ get_mode_from_declarer (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return NO_MOID;
+   else
+     {
+       if (IS (p, DECLARER))
+ 	{
+ 	  if (MOID (p) != NO_MOID)
+ 	    return MOID (p);
+ 	 else
+ 	   return MOID (p) = get_mode_from_declarer (SUB (p));
+ 	}
+       else
+ 	{
+ 	  if (IS (p, VOID_SYMBOL))
+ 	    {
+ 	      MOID (p) = M_VOID;
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, LONGETY))
+ 	    {
+ 	      if (a68_whether (p, LONGETY, INDICANT, STOP))
+ 		{
+ 		  int k = count_sizety (SUB (p));
+ 		  MOID (p) = search_standard_mode (k, NEXT (p));
+ 		  return MOID (p);
+ 		}
+ 	      else
+ 		{
+ 		  return NO_MOID;
+ 		}
+ 	    }
+ 	  else if (IS (p, SHORTETY))
+ 	    {
+ 	      if (a68_whether (p, SHORTETY, INDICANT, STOP))
+ 		{
+ 		  int k = count_sizety (SUB (p));
+ 		  MOID (p) = search_standard_mode (k, NEXT (p));
+ 		  return MOID (p);
+ 		}
+ 	      else
+ 		return NO_MOID;
+ 	    }
+ 	  else if (IS (p, INDICANT))
+ 	    {
+ 	      MOID_T *q = search_standard_mode (0, p);
+ 	      if (q != NO_MOID)
+ 		  MOID (p) = q;
+ 	      else
+ 		{
+ 		  /* Position of definition tells indicants apart.  */
+ 		  TAG_T *y = a68_find_tag_global (TABLE (p), INDICANT, NSYMBOL (p));
+ 		  if (y == NO_TAG)
+ 		    a68_error (p, "tag %qs has not been declared properly", NSYMBOL (p));
+ 		  else
+ 		    MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB), INDICANT, 0, NODE (y),
+ 					     NO_MOID, NO_PACK);
+ 		}
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS_REF (p))
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+ 	      MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, p, new_one, NO_PACK);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS_FLEX (p))
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+ 	      MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB), FLEX_SYMBOL, 0, p, new_one, NO_PACK);
+ 	      SLICE (MOID (p)) = SLICE (new_one);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, FORMAL_BOUNDS))
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+ 	      MOID (p) = add_row (&TOP_MOID (&A68_JOB),
+ 				  1 + a68_count_formal_bounds (SUB (p)), new_one, p, false);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, BOUNDS))
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+ 	      MOID (p) = add_row (&TOP_MOID (&A68_JOB), count_bounds (SUB (p)), new_one, p, false);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, STRUCT_SYMBOL))
+ 	    {
+ 	      PACK_T *u = NO_PACK;
+ 	      get_mode_from_struct_field (NEXT (p), &u);
+ 	      MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB),
+ 				       STRUCT_SYMBOL, a68_count_pack_members (u), p, NO_MOID, u);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, UNION_SYMBOL))
+ 	    {
+ 	      PACK_T *u = NO_PACK;
+ 	      get_mode_from_union_pack (NEXT (p), &u);
+ 	      MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB),
+ 				       UNION_SYMBOL, a68_count_pack_members (u), p, NO_MOID, u);
+ 	      return MOID (p);
+ 	    }
+ 	  else if (IS (p, PROC_SYMBOL))
+ 	    {
+ 	      NODE_T *save = p;
+ 	      PACK_T *u = NO_PACK;
+ 	      if (IS (NEXT (p), FORMAL_DECLARERS))
+ 		{
+ 		  get_mode_from_formal_pack (SUB_NEXT (p), &u);
+ 		  FORWARD (p);
+ 		}
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+ 	      MOID (p) =
+ 		a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (u), save, new_one, u);
+ 	      MOID (save) = MOID (p);
+ 	      return MOID (p);
+ 	    }
+ 	  else
+ 	    return NO_MOID;
+ 	}
+     }
+ }
+ 
+ /* Collect MODEs from a routine-text header.  */
+ 
+ static MOID_T *
+ get_mode_from_routine_text (NODE_T *p)
+ {
+   PACK_T *u = NO_PACK;
+   NODE_T *q = p;
+ 
+   if (IS (p, PARAMETER_PACK))
+     {
+       get_mode_from_routine_pack (SUB (p), &u);
+       FORWARD (p);
+     }
+   MOID_T *n = get_mode_from_declarer (p);
+   return a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (u), q, n, u);
+ }
+ 
+ /* Collect modes from operator-plan.  */
+ 
+ static MOID_T *
+ get_mode_from_operator (NODE_T *p)
+ {
+   PACK_T *u = NO_PACK;
+   NODE_T *save = p;
+ 
+   if (IS (NEXT (p), FORMAL_DECLARERS))
+     {
+       get_mode_from_formal_pack (SUB_NEXT (p), &u);
+       FORWARD (p);
+     }
+   MOID_T *new_one = get_mode_from_declarer (NEXT (p));
+   MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (u), save, new_one, u);
+   return MOID (p);
+ }
+ 
+ /* Collect mode from denotation.  */
+ 
+ static void
+ get_mode_from_denotation (NODE_T *p, int sizety)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, ROW_CHAR_DENOTATION))
+ 	{
+ 	  const char *s = NSYMBOL (p);
+ 	  size_t len = strlen (s);
+ 
+ 	  if (len == 1
+ 	      || (len == 2 && s[0] == '\'')
+ 	      || (len == 8 && s[0] == '\'' && s[1] == '(' && s[2] == 'u')
+ 	      || (len == 12 && s[0] == '\'' && s[1] == '(' && s[2] == 'U'))
+ 	    {
+ 	      MOID (p) = M_CHAR;
+ 	    }
+ 	  else
+ 	    MOID (p) = M_ROW_CHAR;
+ 	}
+       else if (IS (p, TRUE_SYMBOL) || IS (p, FALSE_SYMBOL))
+ 	{
+ 	  MOID (p) = M_BOOL;
+ 	}
+       else if (IS (p, INT_DENOTATION))
+ 	{
+ 	  if (sizety == -2)
+ 	    MOID (p) = M_SHORT_SHORT_INT;
+ 	  else if (sizety == -1)
+ 	    MOID (p) = M_SHORT_INT;
+ 	  else if (sizety == 0)
+ 	    MOID (p) = M_INT;
+ 	  else if (sizety == 1)
+ 	    MOID (p) = M_LONG_INT;
+ 	  else if (sizety == 2)
+ 	    MOID (p) = M_LONG_LONG_INT;
+ 	 else
+ 	   MOID (p) = (sizety > 0 ? M_LONG_LONG_INT : M_INT);
+ 	}
+       else if (IS (p, REAL_DENOTATION))
+ 	{
+ 	  if (sizety == 0)
+ 	    MOID (p) = M_REAL;
+ 	  else if (sizety == 1)
+ 	    MOID (p) = M_LONG_REAL;
+ 	 else if (sizety == 2)
+ 	   MOID (p) = M_LONG_LONG_REAL;
+ 	 else
+ 	   MOID (p) = (sizety > 0 ? M_LONG_LONG_REAL : M_REAL);
+ 	}
+       else if (IS (p, BITS_DENOTATION))
+ 	{
+ 	  if (sizety == -2)
+ 	    MOID (p) = M_SHORT_SHORT_BITS;
+ 	  else if (sizety == -1)
+ 	    MOID (p) = M_SHORT_BITS;
+ 	  else if (sizety == 0)
+ 	    MOID (p) = M_BITS;
+ 	  else if (sizety == 1)
+ 	    MOID (p) = M_LONG_BITS;
+ 	  else if (sizety == 2)
+ 	    MOID (p) = M_LONG_LONG_BITS;
+ 	  else
+ 	    MOID (p) = (sizety > 0 ? M_LONG_LONG_BITS : M_BITS);
+ 	}
+       else if (IS (p, LONGETY) || IS (p, SHORTETY))
+ 	{
+ 	  get_mode_from_denotation (NEXT (p), count_sizety (SUB (p)));
+ 	  MOID (p) = MOID (NEXT (p));
+ 	}
+       else if (IS (p, EMPTY_SYMBOL))
+        {
+ 	 MOID (p) = M_VOID;
+        }
+     }
+ }
+ 
+ /* Collect modes from the syntax tree.  */
+ 
+ static void
+ get_modes_from_tree (NODE_T *p, int attribute)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, VOID_SYMBOL))
+ 	MOID (q) = M_VOID;
+       else if (IS (q, DECLARER))
+ 	{
+ 	  if (attribute == VARIABLE_DECLARATION)
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (q);
+ 	      MOID (q) = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, new_one, NO_PACK);
+ 	    }
+ 	  else
+ 	    MOID (q) = get_mode_from_declarer (q);
+ 	}
+       else if (IS (q, ROUTINE_TEXT))
+ 	{
+ 	  MOID (q) = get_mode_from_routine_text (SUB (q));
+ 	}
+       else if (IS (q, OPERATOR_PLAN))
+ 	{
+ 	  MOID (q) = get_mode_from_operator (SUB (q));
+ 	}
+       else if (a68_is_one_of (q, LOC_SYMBOL, HEAP_SYMBOL, STOP))
+ 	{
+ 	  if (attribute == GENERATOR)
+ 	    {
+ 	      MOID_T *new_one = get_mode_from_declarer (NEXT (q));
+ 	      MOID (NEXT (q)) = new_one;
+ 	      MOID (q) = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, new_one, NO_PACK);
+ 	    }
+ 	}
+       else
+ 	{
+ 	  if (attribute == DENOTATION)
+ 	    get_mode_from_denotation (q, 0);
+ 	}
+     }
+ 
+   if (attribute != DENOTATION)
+     {
+       for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (SUB (q) != NO_NODE)
+ 	    get_modes_from_tree (SUB (q), ATTRIBUTE (q));
+ 	}
+     }
+ }
+ 
+ //! @brief Collect modes from proc variables.
+ 
+ static void
+ get_mode_from_proc_variables (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, PROCEDURE_VARIABLE_DECLARATION))
+ 	{
+ 	  get_mode_from_proc_variables (SUB (p));
+ 	  get_mode_from_proc_variables (NEXT (p));
+ 	}
+       else if (IS (p, PUBLIC_SYMBOL) || IS (p, QUALIFIER) || IS (p, PROC_SYMBOL) || IS (p, COMMA_SYMBOL))
+ 	{
+ 	  get_mode_from_proc_variables (NEXT (p));
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  MOID_T *new_one = MOID (NEXT_NEXT (p));
+ 	  MOID (p) = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, p, new_one, NO_PACK);
+ 	}
+     }
+ }
+ 
+ /* Collect modes from proc variable declarations.  */
+ 
+ static void
+ get_mode_from_proc_var_declarations_tree (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       get_mode_from_proc_var_declarations_tree (SUB (p));
+ 
+       if (IS (p, PROCEDURE_VARIABLE_DECLARATION))
+ 	get_mode_from_proc_variables (p);
+     }
+ }
+ 
+ /*
+  * Various routines to test modes.
+  */
+ 
+ /* Whether a mode declaration refers to self or relates to void.
+    This uses Lindsey's ying-yang algorithm.  */
+ 
+ static bool
+ is_well_formed (MOID_T *def, MOID_T *z, bool yin, bool yang, bool video)
+ {
+   if (z == NO_MOID)
+     return false;
+   else if (yin && yang)
+     return z == M_VOID ? video : true;
+   else if (z == M_VOID)
+     return video;
+   else if (IS (z, STANDARD))
+     return true;
+   else if (IS (z, INDICANT))
+     {
+       if (def == NO_MOID)
+ 	{
+ 	  /* Check an applied indicant for relation to VOID.  */
+ 	  while (z != NO_MOID)
+ 	    z = EQUIVALENT (z);
+ 	  if (z == M_VOID)
+ 	    return video;
+ 	  else
+ 	    return true;
+ 	}
+       else
+ 	{
+ 	  if (z == def || USE (z))
+ 	    return yin && yang;
+ 	  else
+ 	    {
+ 	      USE (z) = true;
+ 	      bool wwf = is_well_formed (def, EQUIVALENT (z), yin, yang, video);
+ 	      USE (z) = false;
+ 	  return wwf;
+ 	    }
+ 	}
+     }
+   else if (IS_REF (z))
+     return is_well_formed (def, SUB (z), true, yang, false);
+   else if (IS (z, PROC_SYMBOL))
+     return PACK (z) != NO_PACK ? true : is_well_formed (def, SUB (z), true, yang, true);
+   else if (IS_ROW (z))
+     return is_well_formed (def, SUB (z), yin, yang, false);
+   else if (IS_FLEX (z))
+     return is_well_formed (def, SUB (z), yin, yang, false);
+   else if (IS (z, STRUCT_SYMBOL))
+     {
+       for (PACK_T *s = PACK (z); s != NO_PACK; FORWARD (s))
+ 	{
+ 	  if (!is_well_formed (def, MOID (s), yin, true, false))
+ 	    return false;
+ 	}
+       return true;
+     }
+   else if (IS (z, UNION_SYMBOL))
+     {
+       for (PACK_T *s = PACK (z); s != NO_PACK; FORWARD (s))
+ 	{
+ 	  if (!is_well_formed (def, MOID (s), yin, yang, true))
+ 	    return false;
+ 	}
+       return true;
+     }
+   else
+     {
+       return false;
+     }
+ }
+ 
+ /* Replace a mode by its equivalent mode (walk chain).  */
+ 
+ static void
+ resolve_eq_members (MOID_T *q)
+ {
+   resolve_equivalent (&SUB (q));
+   resolve_equivalent (&DEFLEXED (q));
+   resolve_equivalent (&MULTIPLE (q));
+   resolve_equivalent (&NAME (q));
+   resolve_equivalent (&SLICE (q));
+   resolve_equivalent (&TRIM (q));
+   resolve_equivalent (&ROWED (q));
+   for (PACK_T *p = PACK (q); p != NO_PACK; FORWARD (p))
+     resolve_equivalent (&MOID (p));
+ }
+ 
+ /* Track equivalent tags.  */
+ 
+ static void
+ resolve_eq_tags (TAG_T *z)
+ {
+   for (; z != NO_TAG; FORWARD (z))
+     {
+       if (MOID (z) != NO_MOID)
+ 	resolve_equivalent (&MOID (z));
+     }
+ }
+ 
+ /* Bind modes in syntax tree.  */
+ 
+ static void
+ bind_modes (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       resolve_equivalent (&MOID (p));
+ 
+       if (SUB (p) != NO_NODE && a68_is_new_lexical_level (p))
+ 	{
+ 	  TABLE_T *s = TABLE (SUB (p));
+ 	  for (TAG_T *z = INDICANTS (s); z != NO_TAG; FORWARD (z))
+ 	    {
+ 	      if (NODE (z) != NO_NODE)
+ 		{
+ 		  resolve_equivalent (&MOID (NEXT_NEXT (NODE (z))));
+ 		  MOID (z) = MOID (NEXT_NEXT (NODE (z)));
+ 		  MOID (NODE (z)) = MOID (z);
+ 		}
+ 	    }
+ 	}
+       bind_modes (SUB (p));
+     }
+ }
+ 
+ /* Routines for calculating subordinates for selections, for instance selection
+    from REF STRUCT (A) yields REF A fields and selection from [] STRUCT (A)
+    yields [] A fields.  */
+ 
+ /* Make name pack.
+    Given a pack with modes: M1, M2, ...
+    Build a pack with modes: REF M1, REF M2, ...  */
+ 
+ static void
+ make_name_pack (PACK_T *src, PACK_T **dst, MOID_T **p)
+ {
+   if (src != NO_PACK)
+     {
+       make_name_pack (NEXT (src), dst, p);
+       MOID_T *z = a68_add_mode (p, REF_SYMBOL, 0, NO_NODE, MOID (src), NO_PACK);
+       (void) a68_add_mode_to_pack (dst, z, TEXT (src), NODE (src));
+     }
+ }
+ 
+ /* Make flex multiple row pack.
+    Given a pack with modes: M1, M2, ...
+    Build a pack with modes: []M1, []M2, ...  */
+ 
+ static void
+ make_flex_multiple_row_pack (PACK_T *src, PACK_T **dst, MOID_T **p, int dim)
+ {
+   if (src != NO_PACK)
+     {
+       make_flex_multiple_row_pack (NEXT (src), dst, p, dim);
+       MOID_T *z = add_row (p, dim, MOID (src), NO_NODE, false);
+       z = a68_add_mode (p, FLEX_SYMBOL, 0, NO_NODE, z, NO_PACK);
+       (void) a68_add_mode_to_pack (dst, z, TEXT (src), NODE (src));
+     }
+ }
+ 
+ /* Make name struct.  */
+ 
+ static MOID_T *
+ make_name_struct (MOID_T *m, MOID_T **p)
+ {
+   PACK_T *u = NO_PACK;
+   make_name_pack (PACK (m), &u, p);
+   return a68_add_mode (p, STRUCT_SYMBOL, DIM (m), NO_NODE, NO_MOID, u);
+ }
+ 
+ /* Make name row.  */
+ 
+ static MOID_T *
+ make_name_row (MOID_T *m, MOID_T **p)
+ {
+   if (SLICE (m) != NO_MOID)
+     return a68_add_mode (p, REF_SYMBOL, 0, NO_NODE, SLICE (m), NO_PACK);
+   else if (SUB (m) != NO_MOID)
+     return a68_add_mode (p, REF_SYMBOL, 0, NO_NODE, SUB (m), NO_PACK);
+   else
+     /* weird, FLEX INT or so ...  */
+     return NO_MOID;
+ }
+ 
+ /* Make multiple row pack.  */
+ 
+ static void
+ make_multiple_row_pack (PACK_T *src, PACK_T **dst, MOID_T **p, int dim)
+ {
+   if (src != NO_PACK)
+     {
+       make_multiple_row_pack (NEXT (src), dst, p, dim);
+       (void) a68_add_mode_to_pack (dst, add_row (p, dim, MOID (src), NO_NODE, false),
+ 				   TEXT (src), NODE (src));
+     }
+ }
+ 
+ /* Make flex multiple struct.  */
+ 
+ static MOID_T *
+ make_flex_multiple_struct (MOID_T *m, MOID_T **p, int dim)
+ {
+   PACK_T *u = NO_PACK;
+   make_flex_multiple_row_pack (PACK (m), &u, p, dim);
+   return a68_add_mode (p, STRUCT_SYMBOL, DIM (m), NO_NODE, NO_MOID, u);
+ }
+ 
+ /* Make multiple struct.  */
+ 
+ static MOID_T *
+ make_multiple_struct (MOID_T *m, MOID_T **p, int dim)
+ {
+   PACK_T *u = NO_PACK;
+   make_multiple_row_pack (PACK (m), &u, p, dim);
+   return a68_add_mode (p, STRUCT_SYMBOL, DIM (m), NO_NODE, NO_MOID, u);
+ }
+ 
+ /* Whether mode has row.  */
+ 
+ static bool
+ is_mode_has_row (MOID_T *m)
+ {
+   if (IS (m, STRUCT_SYMBOL) || IS (m, UNION_SYMBOL))
+     {
+       bool k = false;
+ 
+       for (PACK_T *p = PACK (m); p != NO_PACK && k == false; FORWARD (p))
+ 	{
+ 	  HAS_ROWS (MOID (p)) = is_mode_has_row (MOID (p));
+ 	  k |= (HAS_ROWS (MOID (p)));
+ 	}
+       return k;
+     }
+   else
+     return (HAS_ROWS (m) || IS_ROW (m) || IS_FLEX (m));
+ }
+ 
+ /* Whether mode has ref.  */
+ 
+ static bool
+ is_mode_has_refs (MOID_T *m)
+ {
+   if (IS_ROW (m) || IS_FLEX (m))
+     {
+       HAS_REFS (m) = is_mode_has_refs (SUB (m));
+       return HAS_REFS (m);
+     }
+   else if (IS_STRUCT (m) || IS_UNION (m))
+     {
+       bool has_refs = false;
+       for (PACK_T *p = PACK (m); p != NO_PACK; FORWARD (p))
+ 	{
+ 	  HAS_REFS (MOID (p)) = is_mode_has_refs (MOID (p));
+ 	  has_refs |= HAS_REFS (MOID (p));
+ 	}
+       return has_refs;
+     }
+   else
+     return HAS_REFS (m);
+ }
+ 
+ /* Compute derived modes.  */
+ 
+ static void
+ compute_derived_modes (MODULE_T *mod)
+ {
+   MOID_T *z;
+   int len = 0, nlen = 1;
+ 
+   /* UNION things.  */
+   absorb_unions (TOP_MOID (mod));
+   contract_unions (TOP_MOID (mod));
+   /* The for-statement below prevents an endless loop.  */
+   for (int k = 1; k <= 10 && len != nlen; k++)
+     {
+       /* Make deflexed modes.  */
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (SUB (z) != NO_MOID)
+ 	    {
+ 	      if (IS_REF_FLEX (z) && DEFLEXED (SUB_SUB (z)) != NO_MOID)
+ 		DEFLEXED (z) = a68_add_mode (&TOP_MOID (mod), REF_SYMBOL, 0, NODE (z),
+ 					     DEFLEXED (SUB_SUB (z)), NO_PACK);
+ 	      else if (IS_REF (z) && DEFLEXED (SUB (z)) != NO_MOID)
+ 		DEFLEXED (z) = a68_add_mode (&TOP_MOID (mod), REF_SYMBOL, 0, NODE (z),
+ 					     DEFLEXED (SUB (z)), NO_PACK);
+ 	      else if (IS_ROW (z) && DEFLEXED (SUB (z)) != NO_MOID)
+ 		DEFLEXED (z) = a68_add_mode (&TOP_MOID (mod), ROW_SYMBOL, DIM (z), NODE (z),
+ 					     DEFLEXED (SUB (z)), NO_PACK);
+ 	      else if (IS_FLEX (z) && DEFLEXED (SUB (z)) != NO_MOID)
+ 		DEFLEXED (z) = DEFLEXED (SUB (z));
+ 	      else if (IS_FLEX (z))
+ 		DEFLEXED (z) = SUB (z);
+ 	      else
+ 		DEFLEXED (z) = z;
+ 	    }
+ 	}
+ 
+       /* Derived modes for stowed modes.  */
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (NAME (z) == NO_MOID && IS_REF (z))
+ 	    {
+ 	      if (IS (SUB (z), STRUCT_SYMBOL))
+ 		NAME (z) = make_name_struct (SUB (z), &TOP_MOID (mod));
+ 	      else if (IS_ROW (SUB (z)))
+ 		NAME (z) = make_name_row (SUB (z), &TOP_MOID (mod));
+ 	      else if (IS_FLEX (SUB (z)) && SUB_SUB (z) != NO_MOID)
+ 		NAME (z) = make_name_row (SUB_SUB (z), &TOP_MOID (mod));
+ 	    }
+ 
+ 	  if (MULTIPLE (z) != NO_MOID)
+ 	    ;
+ 	  else if (IS_REF (z))
+ 	    {
+ 	      if (MULTIPLE (SUB (z)) != NO_MOID)
+ 		MULTIPLE (z) = make_name_struct (MULTIPLE (SUB (z)), &TOP_MOID (mod));
+ 	    }
+ 	  else if (IS_ROW (z))
+ 	    {
+ 	      if (IS (SUB (z), STRUCT_SYMBOL))
+ 		MULTIPLE (z) = make_multiple_struct (SUB (z), &TOP_MOID (mod), DIM (z));
+ 	    }
+ 	}
+ 
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (TRIM (z) == NO_MOID && IS_FLEX (z))
+ 	    TRIM (z) = SUB (z);
+ 	  if (TRIM (z) == NO_MOID && IS_REF_FLEX (z))
+ 	    TRIM (z) = a68_add_mode (&TOP_MOID (mod), REF_SYMBOL, 0, NODE (z), SUB_SUB (z), NO_PACK);
+ 	}
+ 
+       /* Fill out stuff for rows, f.i. inverse relations.  */
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (IS_ROW (z) && DIM (z) > 0 && SUB (z) != NO_MOID && !DERIVATE (z))
+ 	    (void) add_row (&TOP_MOID (mod), DIM (z) + 1, SUB (z), NODE (z), true);
+ 	  else if (IS_REF (z) && IS (SUB (z), ROW_SYMBOL) && !DERIVATE (SUB (z)))
+ 	    {
+ 	      MOID_T *x = add_row (&TOP_MOID (mod), DIM (SUB (z)) + 1, SUB_SUB (z), NODE (SUB (z)), true);
+ 	      MOID_T *y = a68_add_mode (&TOP_MOID (mod), REF_SYMBOL, 0, NODE (z), x, NO_PACK);
+ 	      NAME (y) = z;
+ 	    }
+ 	}
+ 
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (IS_ROW (z) && SLICE (z) != NO_MOID)
+ 	    ROWED (SLICE (z)) = z;
+ 	  if (IS_REF (z))
+ 	    {
+ 	      MOID_T *y = SUB (z);
+ 	      if (SLICE (y) != NO_MOID && IS_ROW (SLICE (y)) && NAME (z) != NO_MOID)
+ 		ROWED (NAME (z)) = z;
+ 	    }
+ 	}
+ 
+       bind_modes (TOP_NODE (mod));
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (IS (z, INDICANT) && NODE (z) != NO_NODE)
+ 	    EQUIVALENT (z) = MOID (NODE (z));
+ 	}
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	resolve_eq_members (z);
+       resolve_eq_tags (INDICANTS (A68_STANDENV));
+       resolve_eq_tags (IDENTIFIERS (A68_STANDENV));
+       resolve_eq_tags (OPERATORS (A68_STANDENV));
+       resolve_equivalent (&M_STRING);
+       resolve_equivalent (&M_COMPLEX);
+       resolve_equivalent (&M_LONG_COMPLEX);
+       resolve_equivalent (&M_LONG_LONG_COMPLEX);
+       resolve_equivalent (&M_SEMA);
+       /* UNION members could be resolved.  */
+       absorb_unions (TOP_MOID (mod));
+       contract_unions (TOP_MOID (mod));
+       /* FLEX INDICANT could be resolved.  */
+       for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	{
+ 	  if (IS_FLEX (z) && SUB (z) != NO_MOID)
+ 	    {
+ 	      if (SUB_SUB (z) != NO_MOID && IS (SUB_SUB (z), STRUCT_SYMBOL))
+ 		MULTIPLE (z) = make_flex_multiple_struct (SUB_SUB (z), &TOP_MOID (mod), DIM (SUB (z)));
+ 	    }
+ 	}
+       /* See what new known modes we have generated by resolving..  */
+       for (z = TOP_MOID (mod); z != STANDENV_MOID (&A68_JOB); FORWARD (z))
+ 	{
+ 	  MOID_T *v;
+ 
+ 	  for (v = NEXT (z); v != NO_MOID; FORWARD (v))
+ 	    {
+ 	      if (a68_prove_moid_equivalence (z, v))
+ 		{
+ 		  EQUIVALENT (z) = v;
+ 		  EQUIVALENT (v) = NO_MOID;
+ 		}
+ 	    }
+ 	}
+ 
+       /* Count the modes to check self consistency.  */
+       len = nlen;
+       for (nlen = 0, z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+ 	nlen++;
+     }
+ 
+   gcc_assert (M_STRING == M_FLEX_ROW_CHAR);
+ 
+   /* Find out what modes contain rows, and refs.  */
+   for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       HAS_ROWS (z) = is_mode_has_row (z);
+       HAS_REFS (z) = is_mode_has_refs (z);
+     }
+ 
+   /* Check flexible modes.  */
+   for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (IS_FLEX (z) && !IS (SUB (z), ROW_SYMBOL))
+ 	{
+ 	  a68_moid_format_token m (z);
+ 	  a68_error (NODE (z), "%e does not specify a well formed mode", &m);
+ 	}
+     }
+ 
+   /* Check on fields in structured modes f.i. STRUCT (REAL x, INT n, REAL x) is
+      wrong.  */
+   for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (IS (z, STRUCT_SYMBOL) && EQUIVALENT (z) == NO_MOID)
+ 	{
+ 	  PACK_T *s = PACK (z);
+ 
+ 	  for (; s != NO_PACK; FORWARD (s))
+ 	    {
+ 	      bool x = true;
+ 
+ 	      for (PACK_T *t = NEXT (s); t != NO_PACK && x; FORWARD (t))
+ 		{
+ 		  if (TEXT (s) == TEXT (t))
+ 		    {
+ 		      a68_symbol_format_token zs (NODE (z));
+ 		      a68_error (NODE (z), "multiple declaration of field %e", &zs);
+ 		      while (NEXT (s) != NO_PACK && TEXT (NEXT (s)) == TEXT (t))
+ 			FORWARD (s);
+ 		      x = false;
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   /* Various union test.  */
+   for (z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (IS (z, UNION_SYMBOL) && EQUIVALENT (z) == NO_MOID)
+ 	{
+ 	  PACK_T *s = PACK (z);
+ 	  /* Discard unions with one member.  */
+ 	  if (a68_count_pack_members (s) == 1)
+ 	    {
+ 	      a68_moid_format_token m (z);
+ 	      a68_error (NODE (z), "%e must have at least two components", &m);
+ 	    }
+ 	  /* Discard incestuous unions with firmly related modes.  */
+ 	  for (; s != NO_PACK; FORWARD (s))
+ 	    {
+ 	      PACK_T *t;
+ 
+ 	      for (t = NEXT (s); t != NO_PACK; FORWARD (t))
+ 		{
+ 		  if (MOID (t) != MOID (s))
+ 		    {
+ 		      if (a68_is_firm (MOID (s), MOID (t)))
+ 			{
+ 			  a68_moid_format_token m (z);
+ 			  a68_error (NODE (z), "%e has firmly related components", &m);
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 
+ 	  /* Discard incestuous unions with firmly related subsets.  */
+ 	  for (s = PACK (z); s != NO_PACK; FORWARD (s))
+ 	    {
+ 	      MOID_T *n = a68_depref_completely (MOID (s));
+ 
+ 	      if (IS (n, UNION_SYMBOL) && a68_is_subset (n, z, NO_DEFLEXING))
+ 		{
+ 		  a68_moid_format_token m1 (z);
+ 		  a68_moid_format_token m2 (n);
+ 		  a68_error (NODE (z), "%e has firmly related subset %e", &m1, &m2);
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   /* Wrap up and exit.  */
+   a68_free_postulate_list (A68 (top_postulate), NO_POSTULATE);
+   A68 (top_postulate) = NO_POSTULATE;
+ }
+ 
+ /* Make list of all modes in the program.  */
+ 
+ void
+ a68_make_moid_list (MODULE_T *mod)
+ {
+   bool cont = true;
+ 
+   /* Collect modes from the syntax tree.  */
+   reset_moid_tree (TOP_NODE (mod));
+   get_modes_from_tree (TOP_NODE (mod), STOP);
+   get_mode_from_proc_var_declarations_tree (TOP_NODE (mod));
+ 
+   /* Connect indicants to their declarers.  */
+   for (MOID_T *z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (IS (z, INDICANT))
+ 	{
+ 	  NODE_T *u = NODE (z);
+ 	  gcc_assert (NEXT (u) != NO_NODE);
+ 	  gcc_assert (NEXT_NEXT (u) != NO_NODE);
+ 	  gcc_assert (MOID (NEXT_NEXT (u)) != NO_MOID);
+ 	  EQUIVALENT (z) = MOID (NEXT_NEXT (u));
+ 	}
+     }
+ 
+   /* Checks on wrong declarations.  */
+   for (MOID_T *z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     USE (z) = false;
+ 
+   for (MOID_T *z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (IS (z, INDICANT) && EQUIVALENT (z) != NO_MOID)
+ 	{
+ 	  if (!is_well_formed (z, EQUIVALENT (z), false, false, true))
+ 	    {
+ 	      a68_moid_format_token m (z);
+ 	      a68_error (NODE (z), "%e does not specify a well formed mode", &m);
+ 	      cont = false;
+ 	    }
+ 	}
+     }
+ 
+   for (MOID_T *z = TOP_MOID (mod); cont && z != NO_MOID; FORWARD (z))
+     {
+       if (IS (z, INDICANT) && EQUIVALENT (z) != NO_MOID)
+ 	;
+       else if (NODE (z) != NO_NODE)
+ 	{
+ 	  if (!is_well_formed (NO_MOID, z, false, false, true))
+ 	    {
+ 	      a68_moid_format_token m (z);
+ 	      a68_error (NODE (z), "%e does not specify a well formed mode", &m);
+ 	    }
+ 	}
+     }
+ 
+   for (MOID_T *z = TOP_MOID (mod); z != NO_MOID; FORWARD (z))
+     {
+       if (USE (z))
+ 	gcc_unreachable ();
+     }
+ 
+   if (ERROR_COUNT (mod) != 0)
+     return;
+ 
+   compute_derived_modes (mod);
+   a68_init_postulates ();
+   a68_sort_union_packs(TOP_MOID (mod));
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-moids-check.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-check.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-moids-check.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-check.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1975 ----
+ /* Mode checker routines.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC and fixes by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* ALGOL 68 contexts are SOFT, WEAK, MEEK, FIRM and STRONG.
+    These contexts are increasing in strength:
+ 
+    SOFT: Deproceduring
+ 
+    WEAK: Dereferencing to REF [] or REF STRUCT
+ 
+    MEEK: Deproceduring and dereferencing
+ 
+    FIRM: MEEK followed by uniting
+ 
+    STRONG: FIRM followed by rowing, widening or voiding
+ 
+    Furthermore you will see in this file next switches:
+ 
+    (1) FORCE_DEFLEXING allows assignment compatibility between FLEX and non FLEX
+    rows. This can only be the case when there is no danger of altering bounds of a
+    non FLEX row.
+ 
+    (2) ALIAS_DEFLEXING prohibits aliasing a FLEX row to a non FLEX row (vice versa
+    is no problem) so that one cannot alter the bounds of a non FLEX row by
+    aliasing it to a FLEX row. This is particularly the case when passing names as
+    parameters to procedures:
+ 
+       PROC x = (REF STRING s) VOID: ..., PROC y = (REF [] CHAR c) VOID: ...;
+ 
+       x (LOC STRING);    # OK #
+ 
+       x (LOC [10] CHAR); # Not OK, suppose x changes bounds of s! #
+ 
+       y (LOC STRING);    # OK #
+ 
+       y (LOC [10] CHAR); # OK #
+ 
+    (3) SAFE_DEFLEXING sets FLEX row apart from non FLEX row. This holds for names,
+    not for values, so common things are not rejected, for instance
+ 
+       STRING x = read string;
+ 
+       [] CHAR y = read string
+ 
+    (4) NO_DEFLEXING sets FLEX row apart from non FLEX row.  */
+ 
+ /*
+   In the RR grammar:
+ 
+      SORT: strong; firm; weak; meek; soft.
+      SORT MOID serial clause;
+        strong void unit, go on token, SORT MOID serial clause;
+        declaration, go on token, SORT MOID serial clause;
+        SORT MOID unit
+ 
+   And it is the SORT MOID sequence of metanotions, which shall evaluate the
+   same in the complete rule, that control the balancing! o_O
+ 
+   Also, it denotes how the SORT MOID of the serial clause gets "passed" to the
+   last unit in the serial clause.  Other units have SOID `strong void'.
+ 
+   It is used to pass down the required mode on whatever context.  Like,
+   PARTICULAR_PROGRAM evaluates in strong context and requires VOID.
+ 
+   The ATTRIBUTE in the soid is used to pass down the kind of construct that
+   introduces the context+required mode.  This is used in
+   a68_determine_unique_mode in order to know whether balancing shall be
+   performed or not.
+ */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "options.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* Forward declarations of some of the functions defined below.  */
+ 
+ static void mode_check_enclosed (NODE_T *p, SOID_T *x, SOID_T *y);
+ static void mode_check_unit (NODE_T *p, SOID_T *x, SOID_T *y);
+ static void mode_check_formula (NODE_T *p, SOID_T *x, SOID_T *y);
+ static void mode_check_module_declaration (NODE_T *p);
+ static void mode_check_module_text (NODE_T *p);
+ static void mode_check_module_declaration (NODE_T *p);
+ 
+ /* Driver for mode checker.  */
+ 
+ void
+ a68_mode_checker (NODE_T *p)
+ {
+   if (IS (p, PACKET))
+     {
+       p = SUB (p);
+ 
+       if (IS (p, PARTICULAR_PROGRAM))
+ 	{
+ 	  A68 (top_soid_list) = NO_SOID;
+ 	  SOID_T x, y;
+ 	  a68_make_soid (&x, STRONG, M_VOID, 0);
+ 	  mode_check_enclosed (SUB (p), &x, &y);
+ 	  MOID (p) = MOID (&y);
+ 	}
+       else if (IS (p, PRELUDE_PACKET))
+ 	mode_check_module_declaration (SUB (p));
+     }
+ }
+ 
+ /* Mode check on bounds.  */
+ 
+ static void
+ mode_check_bounds (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, UNIT))
+     {
+       SOID_T x, y;
+       a68_make_soid (&x, STRONG, M_INT, 0);
+       mode_check_unit (p, &x, &y);
+       if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	a68_cannot_coerce (p, MOID (&y), M_INT, MEEK, SAFE_DEFLEXING, UNIT);
+       mode_check_bounds (NEXT (p));
+     }
+   else
+     {
+       mode_check_bounds (SUB (p));
+       mode_check_bounds (NEXT (p));
+     }
+ }
+ 
+ /* Mode check declarer.  */
+ 
+ static void
+ mode_check_declarer (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, BOUNDS))
+     {
+       mode_check_bounds (SUB (p));
+       mode_check_declarer (NEXT (p));
+     }
+   else
+     {
+       mode_check_declarer (SUB (p));
+       mode_check_declarer (NEXT (p));
+     }
+ }
+ 
+ /* Mode check identity declaration.  */
+ 
+ static void
+ mode_check_identity_declaration (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case DECLARER:
+ 	  mode_check_declarer (SUB (p));
+ 	  mode_check_identity_declaration (NEXT (p));
+ 	  break;
+ 	case DEFINING_IDENTIFIER:
+ 	  {
+ 	    SOID_T x, y;
+ 	    a68_make_soid (&x, STRONG, MOID (p), 0);
+ 	    mode_check_unit (NEXT_NEXT (p), &x, &y);
+ 	    if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	      a68_cannot_coerce (NEXT_NEXT (p), MOID (&y), MOID (&x), STRONG, SAFE_DEFLEXING, UNIT);
+ 	    else if (MOID (&x) != MOID (&y))
+ 	      /* Check for instance, REF INT i = LOC REF INT.  */
+ 	      a68_semantic_pitfall (NEXT_NEXT (p), MOID (&x), IDENTITY_DECLARATION, GENERATOR);
+ 	    break;
+ 	  }
+ 	default:
+ 	  mode_check_identity_declaration (SUB (p));
+ 	  mode_check_identity_declaration (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Mode check variable declaration.  */
+ 
+ static void
+ mode_check_variable_declaration (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case DECLARER:
+ 	  mode_check_declarer (SUB (p));
+ 	  mode_check_variable_declaration (NEXT (p));
+ 	  break;
+ 	case DEFINING_IDENTIFIER:
+ 	  if (a68_whether (p, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP))
+ 	    {
+ 	      SOID_T x, y;
+ 	      a68_make_soid (&x, STRONG, SUB_MOID (p), 0);
+ 	      mode_check_unit (NEXT_NEXT (p), &x, &y);
+ 	      if (!a68_is_coercible_in_context (&y, &x, FORCE_DEFLEXING))
+ 		a68_cannot_coerce (p, MOID (&y), MOID (&x), STRONG, FORCE_DEFLEXING, UNIT);
+ 	      else if (SUB_MOID (&x) != MOID (&y))
+ 		/* Check for instance, REF INT i = LOC REF INT.  */
+ 		a68_semantic_pitfall (NEXT_NEXT (p), MOID (&x), VARIABLE_DECLARATION, GENERATOR);
+ 	    }
+ 	  break;
+ 	default:
+ 	  mode_check_variable_declaration (SUB (p));
+ 	  mode_check_variable_declaration (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Mode check routine text.  */
+ 
+ static void
+ mode_check_routine_text (NODE_T *p, SOID_T *y)
+ {
+   SOID_T w;
+ 
+   if (IS (p, PARAMETER_PACK))
+     {
+       mode_check_declarer (SUB (p));
+       FORWARD (p);
+     }
+ 
+   mode_check_declarer (SUB (p));
+   a68_make_soid (&w, STRONG, MOID (p), 0);
+   mode_check_unit (NEXT_NEXT (p), &w, y);
+   if (!a68_is_coercible_in_context (y, &w, FORCE_DEFLEXING))
+     a68_cannot_coerce (NEXT_NEXT (p), MOID (y), MOID (&w), STRONG, FORCE_DEFLEXING, UNIT);
+ }
+ 
+ /* Mode check proc declaration.  */
+ 
+ static void
+ mode_check_proc_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, ROUTINE_TEXT))
+     {
+       SOID_T x, y;
+       a68_make_soid (&x, STRONG, NO_MOID, 0);
+       mode_check_routine_text (SUB (p), &y);
+     }
+   else
+     {
+       mode_check_proc_declaration (SUB (p));
+       mode_check_proc_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Mode check brief op declaration.  */
+ 
+ static void
+ mode_check_brief_op_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, DEFINING_OPERATOR))
+     {
+       SOID_T y;
+ 
+       if (MOID (p) != MOID (NEXT_NEXT (p)))
+ 	{
+ 	  SOID_T y2, x;
+ 	  a68_make_soid (&y2, NO_SORT, MOID (NEXT_NEXT (p)), 0);
+ 	  a68_make_soid (&x, NO_SORT, MOID (p), 0);
+ 	  a68_cannot_coerce (NEXT_NEXT (p), MOID (&y2), MOID (&x), STRONG, SKIP_DEFLEXING, ROUTINE_TEXT);
+ 	}
+       mode_check_routine_text (SUB (NEXT_NEXT (p)), &y);
+     }
+   else
+     {
+       mode_check_brief_op_declaration (SUB (p));
+       mode_check_brief_op_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Mode check op declaration.  */
+ 
+ static void
+ mode_check_op_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, DEFINING_OPERATOR))
+     {
+       SOID_T y, x;
+       a68_make_soid (&x, STRONG, MOID (p), 0);
+       mode_check_unit (NEXT_NEXT (p), &x, &y);
+       if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	a68_cannot_coerce (NEXT_NEXT (p), MOID (&y), MOID (&x), STRONG, SAFE_DEFLEXING, UNIT);
+     }
+   else
+     {
+       mode_check_op_declaration (SUB (p));
+       mode_check_op_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Mode check declaration list.  */
+ 
+ static void
+ mode_check_declaration_list (NODE_T * p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case IDENTITY_DECLARATION:
+ 	  mode_check_identity_declaration (SUB (p));
+ 	  break;
+ 	case VARIABLE_DECLARATION:
+ 	  mode_check_variable_declaration (SUB (p));
+ 	  break;
+ 	case MODE_DECLARATION:
+ 	  mode_check_declarer (SUB (p));
+ 	  break;
+ 	case PROCEDURE_DECLARATION:
+ 	case PROCEDURE_VARIABLE_DECLARATION:
+ 	  mode_check_proc_declaration (SUB (p));
+ 	  break;
+ 	case BRIEF_OPERATOR_DECLARATION:
+ 	  mode_check_brief_op_declaration (SUB (p));
+ 	  break;
+ 	case OPERATOR_DECLARATION:
+ 	  mode_check_op_declaration (SUB (p));
+ 	  break;
+ 	default:
+ 	  mode_check_declaration_list (SUB (p));
+ 	  mode_check_declaration_list (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Mode check serial clause.  */
+ 
+ static void
+ mode_check_serial (SOID_T **r, NODE_T *p, SOID_T *x, bool k)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, INITIALISER_SERIES))
+     {
+       mode_check_serial (r, SUB (p), x, false);
+       mode_check_serial (r, NEXT (p), x, k);
+     }
+   else if (IS (p, DECLARATION_LIST))
+     mode_check_declaration_list (SUB (p));
+   else if (a68_is_one_of (p, LABEL, SEMI_SYMBOL, EXIT_SYMBOL, STOP))
+     mode_check_serial (r, NEXT (p), x, k);
+   else if (a68_is_one_of (p, SERIAL_CLAUSE, ENQUIRY_CLAUSE, STOP))
+     {
+       if (NEXT (p) != NO_NODE)
+ 	{
+ 	  if (IS (NEXT (p), EXIT_SYMBOL) || IS (NEXT (p), END_SYMBOL) || IS (NEXT (p), CLOSE_SYMBOL))
+ 	    mode_check_serial (r, SUB (p), x, true);
+ 	  else
+ 	    mode_check_serial (r, SUB (p), x, false);
+ 	  mode_check_serial (r, NEXT (p), x, k);
+ 	}
+       else
+ 	mode_check_serial (r, SUB (p), x, true);
+     }
+   else if (IS (p, LABELED_UNIT))
+     mode_check_serial (r, SUB (p), x, k);
+   else if (IS (p, UNIT))
+     {
+       SOID_T y;
+ 
+       if (k)
+ 	mode_check_unit (p, x, &y);
+       else
+ 	{
+ 	  SOID_T w;
+ 	  a68_make_soid (&w, STRONG, M_VOID, 0);
+ 	  mode_check_unit (p, &w, &y);
+ 	}
+       if (NEXT (p) != NO_NODE)
+ 	mode_check_serial (r, NEXT (p), x, k);
+       else
+ 	{
+ 	  if (k)
+ 	    a68_add_to_soid_list (r, p, &y);
+ 	}
+     }
+ }
+ 
+ /* Mode check serial clause units.  */
+ 
+ static void
+ mode_check_serial_units (NODE_T *p, SOID_T *x, SOID_T *y,
+ 			 int att __attribute__((unused)))
+ {
+   SOID_T *top_sl = NO_SOID;
+ 
+   mode_check_serial (&top_sl, SUB (p), x, true);
+   if (a68_is_balanced (p, top_sl, SORT (x)))
+     {
+       MOID_T *result = a68_pack_soids_in_moid (top_sl, SERIES_MODE);
+       a68_make_soid (y, SORT (x), result, SERIAL_CLAUSE);
+     }
+   else
+     a68_make_soid (y, SORT (x), (MOID (x) != NO_MOID ? MOID (x) : M_ERROR), 0);
+ 
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check unit list.  */
+ 
+ static void
+ mode_check_unit_list (SOID_T **r, NODE_T *p, SOID_T *x)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, UNIT_LIST))
+     {
+       mode_check_unit_list (r, SUB (p), x);
+       mode_check_unit_list (r, NEXT (p), x);
+     }
+   else if (IS (p, COMMA_SYMBOL))
+     mode_check_unit_list (r, NEXT (p), x);
+   else if (IS (p, UNIT))
+     {
+       SOID_T y;
+       mode_check_unit (p, x, &y);
+       a68_add_to_soid_list (r, p, &y);
+       mode_check_unit_list (r, NEXT (p), x);
+     }
+ }
+ 
+ /* Mode check struct display.  */
+ 
+ static void
+ mode_check_struct_display (SOID_T **r, NODE_T *p, PACK_T **fields)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, UNIT_LIST))
+     {
+       mode_check_struct_display (r, SUB (p), fields);
+       mode_check_struct_display (r, NEXT (p), fields);
+     }
+   else if (IS (p, COMMA_SYMBOL))
+     mode_check_struct_display (r, NEXT (p), fields);
+   else if (IS (p, UNIT))
+     {
+       SOID_T x, y;
+ 
+       if (*fields != NO_PACK)
+ 	{
+ 	  a68_make_soid (&x, STRONG, MOID (*fields), 0);
+ 	  FORWARD (*fields);
+ 	}
+       else
+ 	a68_make_soid (&x, STRONG, NO_MOID, 0);
+       mode_check_unit (p, &x, &y);
+       a68_add_to_soid_list (r, p, &y);
+       mode_check_struct_display (r, NEXT (p), fields);
+     }
+ }
+ 
+ /* Mode check get specified moids.  */
+ 
+ static void
+ mode_check_get_specified_moids (NODE_T *p, MOID_T *u)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (a68_is_one_of (p, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT, STOP))
+ 	mode_check_get_specified_moids (SUB (p), u);
+       else if (IS (p, SPECIFIER))
+ 	{
+ 	  MOID_T *m = MOID (NEXT_SUB (p));
+ 	  a68_add_mode_to_pack (&(PACK (u)), m, NO_TEXT, NODE (m));
+ 	}
+     }
+ }
+ 
+ /* Mode check specified unit list.  */
+ 
+ void
+ mode_check_specified_unit_list (SOID_T **r, NODE_T *p, SOID_T *x, MOID_T *u)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (a68_is_one_of (p, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT, STOP))
+ 	mode_check_specified_unit_list (r, SUB (p), x, u);
+       else if (IS (p, SPECIFIER))
+ 	{
+ 	  MOID_T *m = MOID (NEXT_SUB (p));
+ 	  if (u != NO_MOID && !a68_is_unitable (m, u, SAFE_DEFLEXING))
+ 	    {
+ 	      a68_moid_format_token m1 (m);
+ 	      a68_moid_format_token m2 (u);
+ 	      a68_error (p, "%e is neither component nor subset of %e", &m1, &m2);
+ 	    }
+ 
+ 	}
+       else if (IS (p, UNIT))
+ 	{
+ 	  SOID_T y;
+ 	  mode_check_unit (p, x, &y);
+ 	  a68_add_to_soid_list (r, p, &y);
+ 	}
+     }
+ }
+ 
+ /* Mode check united case parts.  */
+ 
+ static void
+ mode_check_united_case_parts (SOID_T **ry, NODE_T *p, SOID_T *x)
+ {
+   SOID_T enq_expct, enq_yield;
+   MOID_T *u = NO_MOID, *v = NO_MOID, *w = NO_MOID;
+   /* Check the CASE part and deduce the united mode.  */
+   a68_make_soid (&enq_expct, MEEK, NO_MOID, 0);
+   mode_check_serial_units (NEXT_SUB (p), &enq_expct, &enq_yield, ENQUIRY_CLAUSE);
+   /* Deduce the united mode from the enquiry clause.
+      This requires balancing.  */
+   u = MOID (&enq_yield);
+   a68_absorb_series_pack (&u);
+   DIM (u) = a68_count_pack_members (PACK (u));
+   if (DIM (u) == 1)
+     u = MOID (PACK (u));
+   else
+     {
+       MOID_T *united, *balanced;
+       united = a68_make_united_mode (u);
+       balanced = a68_get_balanced_mode_or_no_mode (united,
+ 						   STRONG, A68_NO_DEPREF,
+ 						   SAFE_DEFLEXING);
+       if (balanced != NO_MOID)
+ 	u = balanced;
+     }
+   u = a68_depref_completely (u);
+   /* Also deduce the united mode from the specifiers.  */
+   v = a68_new_moid ();
+   ATTRIBUTE (v) = SERIES_MODE;
+   mode_check_get_specified_moids (NEXT_SUB (NEXT (p)), v);
+   v = a68_make_united_mode (v);
+   /* Determine a resulting union.  */
+   if (u == M_HIP)
+     w = v;
+   else
+     {
+       if (IS (u, UNION_SYMBOL))
+ 	{
+ 	  bool uv, vu, some;
+ 	  a68_investigate_firm_relations (PACK (u), PACK (v), &uv, &some);
+ 	  a68_investigate_firm_relations (PACK (v), PACK (u), &vu, &some);
+ 	  if (uv && vu)
+ 	    {
+ 	      /* Every component has a specifier.  */
+ 	      w = u;
+ 	    }
+ 	  else if (!uv && !vu)
+ 	    {
+ 	      /* Hmmmm ... let the coercer sort it out.  */
+ 	      w = u;
+ 	    }
+ 	  else
+ 	    {
+ 	      /* This is all the balancing we allow here for the moment. Firmly
+ 		 related subsets are not valid so we absorb them. If this
+ 		 doesn't solve it then we get a coercion-error later. */
+ 	      w = a68_absorb_related_subsets (u);
+ 	    }
+ 	}
+       else
+ 	{
+ 	  a68_moid_format_token m (u);
+ 	  a68_error (NEXT_SUB (p), "%e is not a united mode", &m);
+ 	  return;
+ 	}
+     }
+   MOID (SUB (p)) = w;
+   FORWARD (p);
+   /* Check the IN part.  */
+   mode_check_specified_unit_list (ry, NEXT_SUB (p), x, w);
+   /* OUSE, OUT, ESAC.  */
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, OUT_PART, CHOICE, STOP))
+ 	mode_check_serial (ry, NEXT_SUB (p), x, true);
+       else if (a68_is_one_of (p, CONFORMITY_OUSE_PART, BRIEF_CONFORMITY_OUSE_PART, STOP))
+ 	mode_check_united_case_parts (ry, SUB (p), x);
+     }
+ }
+ 
+ /* Mode check united case.  */
+ 
+ static void
+ mode_check_united_case (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T *top_sl = NO_SOID;
+ 
+   mode_check_united_case_parts (&top_sl, p, x);
+   if (!a68_is_balanced (p, top_sl, SORT (x)))
+     {
+       if (MOID (x) != NO_MOID)
+ 	a68_make_soid (y, SORT (x), MOID (x), CONFORMITY_CLAUSE);
+       else
+ 	a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+   else
+     {
+       MOID_T *z = a68_pack_soids_in_moid (top_sl, SERIES_MODE);
+       a68_make_soid (y, SORT (x), z, CONFORMITY_CLAUSE);
+     }
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check unit list 2.  */
+ 
+ static void
+ mode_check_unit_list_2 (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T *top_sl = NO_SOID;
+ 
+   if (MOID (x) != NO_MOID)
+     {
+       if (IS_FLEX (MOID (x)))
+ 	{
+ 	  SOID_T y2;
+ 	  a68_make_soid (&y2, SORT (x), SLICE (SUB_MOID (x)), 0);
+ 	  mode_check_unit_list (&top_sl, SUB (p), &y2);
+ 	}
+       else if (IS_ROW (MOID (x)))
+ 	{
+ 	  SOID_T y2;
+ 	  a68_make_soid (&y2, SORT (x), SLICE (MOID (x)), 0);
+ 	  mode_check_unit_list (&top_sl, SUB (p), &y2);
+ 	}
+       else if (IS (MOID (x), STRUCT_SYMBOL))
+ 	{
+ 	  PACK_T *y2 = PACK (MOID (x));
+ 	  mode_check_struct_display (&top_sl, SUB (p), &y2);
+ 	}
+       else
+ 	mode_check_unit_list (&top_sl, SUB (p), x);
+     }
+   else
+     mode_check_unit_list (&top_sl, SUB (p), x);
+ 
+   a68_make_soid (y, STRONG, a68_pack_soids_in_moid (top_sl, STOWED_MODE), 0);
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check access.  */
+ 
+ static void
+ mode_check_access (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, ENCLOSED_CLAUSE))
+ 	{
+ 	  mode_check_enclosed (q, x, y);
+ 	  MOID (p) = MOID (y);
+ 	}
+     }
+ }
+ 
+ /* Mode check closed.  */
+ 
+ static void
+ mode_check_closed (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, SERIAL_CLAUSE))
+     mode_check_serial_units (p, x, y, SERIAL_CLAUSE);
+   else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, STOP))
+     mode_check_closed (NEXT (p), x, y);
+   MOID (p) = MOID (y);
+ }
+ 
+ /* Mode check collateral.  */
+ 
+ void
+ mode_check_collateral (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (a68_whether (p, BEGIN_SYMBOL, END_SYMBOL, STOP)
+ 	   || a68_whether (p, OPEN_SYMBOL, CLOSE_SYMBOL, STOP))
+     {
+       if (SORT (x) == STRONG)
+ 	{
+ 	  if (MOID (x) == NO_MOID)
+ 	    a68_error (p, "vacuum cannot have row elements (use a %qs generator)",
+ 		       a68_strop_keyword ("REF MODE"));
+ 	  else if (IS_FLEXETY_ROW (MOID (x)))
+ 	    a68_make_soid (y, STRONG, M_VACUUM, 0);
+ 	  else
+ 	    {
+ 	      /* The syntax only allows vacuums in strong contexts with rowed
+ 		 modes.  See rule 33d.  */
+ 	      a68_moid_format_token m (MOID (x));
+ 	      a68_error (p, "a vacuum is not a valid %e", &m);
+ 	      a68_make_soid (y, STRONG, M_ERROR, 0);
+ 	    }
+ 	}
+       else
+ 	a68_make_soid (y, STRONG, M_UNDEFINED, 0);
+     }
+   else
+     {
+       if (IS (p, UNIT_LIST))
+ 	mode_check_unit_list_2 (p, x, y);
+       else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, STOP))
+ 	mode_check_collateral (NEXT (p), x, y);
+       MOID (p) = MOID (y);
+     }
+ }
+ 
+ /* Mode check conditional 2.  */
+ 
+ static void
+ mode_check_conditional_2 (SOID_T **ry, NODE_T *p, SOID_T *x)
+ {
+   SOID_T enq_expct, enq_yield;
+ 
+   a68_make_soid (&enq_expct, MEEK, M_BOOL, 0);
+   mode_check_serial_units (NEXT_SUB (p), &enq_expct, &enq_yield, ENQUIRY_CLAUSE);
+   if (!a68_is_coercible_in_context (&enq_yield, &enq_expct, SAFE_DEFLEXING))
+     a68_cannot_coerce (p, MOID (&enq_yield), MOID (&enq_expct), MEEK, SAFE_DEFLEXING, ENQUIRY_CLAUSE);
+   FORWARD (p);
+   mode_check_serial (ry, NEXT_SUB (p), x, true);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, ELSE_PART, CHOICE, STOP))
+ 	mode_check_serial (ry, NEXT_SUB (p), x, true);
+       else if (a68_is_one_of (p, ELIF_PART, BRIEF_ELIF_PART, STOP))
+ 	mode_check_conditional_2 (ry, SUB (p), x);
+     }
+ }
+ 
+ /* Mode check conditional.  */
+ 
+ static void
+ mode_check_conditional (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T *top_sl = NO_SOID;
+   mode_check_conditional_2 (&top_sl, p, x);
+   if (!a68_is_balanced (p, top_sl, SORT (x)))
+     {
+       if (MOID (x) != NO_MOID)
+ 	a68_make_soid (y, SORT (x), MOID (x), CONDITIONAL_CLAUSE);
+       else
+ 	a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+   else
+     {
+       MOID_T *z = a68_pack_soids_in_moid (top_sl, SERIES_MODE);
+       a68_make_soid (y, SORT (x), z, CONDITIONAL_CLAUSE);
+     }
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check int case 2.  */
+ 
+ static void
+ mode_check_int_case_2 (SOID_T **ry, NODE_T *p, SOID_T *x)
+ {
+   SOID_T enq_expct, enq_yield;
+   a68_make_soid (&enq_expct, MEEK, M_INT, 0);
+   mode_check_serial_units (NEXT_SUB (p), &enq_expct, &enq_yield, ENQUIRY_CLAUSE);
+   if (!a68_is_coercible_in_context (&enq_yield, &enq_expct, SAFE_DEFLEXING))
+     a68_cannot_coerce (p, MOID (&enq_yield), MOID (&enq_expct), MEEK, SAFE_DEFLEXING, ENQUIRY_CLAUSE);
+   FORWARD (p);
+   mode_check_unit_list (ry, NEXT_SUB (p), x);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, OUT_PART, CHOICE, STOP))
+ 	mode_check_serial (ry, NEXT_SUB (p), x, true);
+       else if (a68_is_one_of (p, CASE_OUSE_PART, BRIEF_OUSE_PART, STOP))
+ 	mode_check_int_case_2 (ry, SUB (p), x);
+     }
+ }
+ 
+ /* Mode check int case.  */
+ 
+ static void
+ mode_check_int_case (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T *top_sl = NO_SOID;
+   mode_check_int_case_2 (&top_sl, p, x);
+   if (!a68_is_balanced (p, top_sl, SORT (x)))
+     {
+       if (MOID (x) != NO_MOID)
+ 	a68_make_soid (y, SORT (x), MOID (x), CASE_CLAUSE);
+       else
+ 	a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+   else
+     {
+       MOID_T *z = a68_pack_soids_in_moid (top_sl, SERIES_MODE);
+       a68_make_soid (y, SORT (x), z, CASE_CLAUSE);
+     }
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check loop 2.  */
+ 
+ static void
+ mode_check_loop_2 (NODE_T *p, SOID_T *y)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, FOR_PART))
+     mode_check_loop_2 (NEXT (p), y);
+   else if (a68_is_one_of (p, FROM_PART, BY_PART, TO_PART, STOP))
+     {
+       SOID_T ix, iy;
+       a68_make_soid (&ix, STRONG, M_INT, 0);
+       mode_check_unit (NEXT_SUB (p), &ix, &iy);
+       if (!a68_is_coercible_in_context (&iy, &ix, SAFE_DEFLEXING))
+ 	a68_cannot_coerce (NEXT_SUB (p), MOID (&iy), M_INT, MEEK, SAFE_DEFLEXING, ENQUIRY_CLAUSE);
+       mode_check_loop_2 (NEXT (p), y);
+     }
+   else if (IS (p, WHILE_PART))
+     {
+       SOID_T enq_expct, enq_yield;
+       a68_make_soid (&enq_expct, MEEK, M_BOOL, 0);
+       mode_check_serial_units (NEXT_SUB (p), &enq_expct, &enq_yield, ENQUIRY_CLAUSE);
+       if (!a68_is_coercible_in_context (&enq_yield, &enq_expct, SAFE_DEFLEXING))
+ 	a68_cannot_coerce (p, MOID (&enq_yield), MOID (&enq_expct), MEEK, SAFE_DEFLEXING, ENQUIRY_CLAUSE);
+       mode_check_loop_2 (NEXT (p), y);
+     }
+   else if (a68_is_one_of (p, DO_PART, ALT_DO_PART, STOP))
+     {
+       SOID_T *z = NO_SOID;
+       NODE_T *do_p = NEXT_SUB (p);
+       SOID_T ix;
+       a68_make_soid (&ix, STRONG, M_VOID, 0);
+       if (IS (do_p, SERIAL_CLAUSE))
+ 	mode_check_serial (&z, do_p, &ix, true);
+       a68_free_soid_list (z);
+     }
+ }
+ 
+ /* Mode check loop.  */
+ 
+ static void
+ mode_check_loop (NODE_T *p, SOID_T *y)
+ {
+   SOID_T *z = NO_SOID;
+   mode_check_loop_2 (p, z);
+   a68_make_soid (y, STRONG, M_VOID, 0);
+ }
+ 
+ /* Mode check enclosed.  */
+ 
+ static void
+ mode_check_enclosed (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, ENCLOSED_CLAUSE))
+     mode_check_enclosed (SUB (p), x, y);
+   else if (IS (p, CLOSED_CLAUSE))
+     mode_check_closed (SUB (p), x, y);
+   else if (IS (p, ACCESS_CLAUSE))
+     mode_check_access (SUB (p), x, y);
+   else if (IS (p, PARALLEL_CLAUSE))
+     {
+       mode_check_collateral (SUB (NEXT_SUB (p)), x, y);
+       a68_make_soid (y, STRONG, M_VOID, 0);
+       MOID (NEXT_SUB (p)) = M_VOID;
+     }
+   else if (IS (p, COLLATERAL_CLAUSE))
+     mode_check_collateral (SUB (p), x, y);
+   else if (IS (p, CONDITIONAL_CLAUSE))
+     mode_check_conditional (SUB (p), x, y);
+   else if (IS (p, CASE_CLAUSE))
+     mode_check_int_case (SUB (p), x, y);
+   else if (IS (p, CONFORMITY_CLAUSE))
+     mode_check_united_case (SUB (p), x, y);
+   else if (IS (p, LOOP_CLAUSE))
+     mode_check_loop (SUB (p), y);
+ 
+   MOID (p) = MOID (y);
+ }
+ 
+ /* Search table for operator.  */
+ 
+ static TAG_T *
+ search_table_for_operator (TAG_T *t, const char *n, MOID_T *x, MOID_T *y)
+ {
+   if (a68_is_mode_isnt_well (x))
+     return A68_PARSER (error_tag);
+   else if (y != NO_MOID && a68_is_mode_isnt_well (y))
+     return A68_PARSER (error_tag);
+ 
+   for (; t != NO_TAG; FORWARD (t))
+     {
+       if (NSYMBOL (NODE (t)) == n || strcmp (NSYMBOL (NODE (t)), n) == 0)
+ 	{
+ 	  PACK_T *p = PACK (MOID (t));
+ 	  if (a68_is_coercible (x, MOID (p), FIRM, ALIAS_DEFLEXING))
+ 	    {
+ 	      FORWARD (p);
+ 	      if (p == NO_PACK && y == NO_MOID)
+ 		/* Matched in case of a monadic.  */
+ 		return t;
+ 	      else if (p != NO_PACK && y != NO_MOID
+ 		       && a68_is_coercible (y, MOID (p), FIRM, ALIAS_DEFLEXING))
+ 		/* Matched in case of a dyadic.  */
+ 		return t;
+ 	    }
+ 	}
+     }
+   return NO_TAG;
+ }
+ 
+ /* Search chain of symbol tables and return matching operator "x n y" or
+    "n x".  */
+ 
+ static TAG_T *
+ search_table_chain_for_operator (TABLE_T *s, const char *n, MOID_T *x, MOID_T *y)
+ {
+   if (a68_is_mode_isnt_well (x))
+     return A68_PARSER (error_tag);
+   else if (y != NO_MOID && a68_is_mode_isnt_well (y))
+     return A68_PARSER (error_tag);
+ 
+   while (s != NO_TABLE)
+     {
+       TAG_T *z = search_table_for_operator (OPERATORS (s), n, x, y);
+       if (z != NO_TAG)
+ 	return z;
+       BACKWARD (s);
+     }
+   return NO_TAG;
+ }
+ 
+ /* Return a matching operator "x n y".  */
+ 
+ static TAG_T *
+ find_operator (TABLE_T *s, const char *n, MOID_T *x, MOID_T *y)
+ {
+   /* Coercions to operand modes are FIRM.  */
+   MOID_T *u, *v; TAG_T *z;
+   /* (A) Catch exceptions first.  */
+   if (x == NO_MOID && y == NO_MOID)
+     return NO_TAG;
+   else if (a68_is_mode_isnt_well (x))
+     return A68_PARSER (error_tag);
+   else if (y != NO_MOID && a68_is_mode_isnt_well (y))
+     return A68_PARSER (error_tag);
+ 
+   /* (B) MONADs.  */
+   if (x != NO_MOID && y == NO_MOID)
+     {
+       z = search_table_chain_for_operator (s, n, x, NO_MOID);
+       if (z != NO_TAG)
+ 	return z;
+       else
+ 	{
+ 	  /* (B.2) A little trick to allow - (0, 1) or ABS (1, long pi).  */
+ 	  if (a68_is_coercible (x, M_COMPLEX, STRONG, SAFE_DEFLEXING))
+ 	    {
+ 	      z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_COMPLEX, NO_MOID);
+ 	      if (z != NO_TAG)
+ 		return z;
+ 	    }
+ 	  if (a68_is_coercible (x, M_LONG_COMPLEX, STRONG, SAFE_DEFLEXING))
+ 	    {
+ 	      z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_COMPLEX, NO_MOID);
+ 	      if (z != NO_TAG)
+ 		return z;
+ 	    }
+ 	  if (a68_is_coercible (x, M_LONG_LONG_COMPLEX, STRONG, SAFE_DEFLEXING))
+ 	    z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_LONG_COMPLEX, NO_MOID);
+ 	}
+       return NO_TAG;
+     }
+   /* (C) DYADs.  */
+   z = search_table_chain_for_operator (s, n, x, y);
+   if (z != NO_TAG)
+     return z;
+   /* (C.2) Vector and matrix "strong coercions" in standard environ.  */
+   u = DEFLEX (a68_depref_completely (x));
+   v = DEFLEX (a68_depref_completely (y));
+   if ((u == M_ROW_REAL || u == M_ROW_ROW_REAL)
+       || (v == M_ROW_REAL || v == M_ROW_ROW_REAL)
+       || (u == M_ROW_COMPLEX || u == M_ROW_ROW_COMPLEX)
+       || (v == M_ROW_COMPLEX || v == M_ROW_ROW_COMPLEX))
+     {
+       if (u == M_INT)
+ 	{
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_REAL, y);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_COMPLEX, y);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	}
+       else if (v == M_INT)
+ 	{
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, x, M_REAL);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, x, M_COMPLEX);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	}
+       else if (u == M_REAL)
+ 	{
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_COMPLEX, y);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	}
+       else if (v == M_REAL)
+ 	{
+ 	  z = search_table_for_operator (OPERATORS (A68_STANDENV), n, x, M_COMPLEX);
+ 	  if (z != NO_TAG)
+ 	    return z;
+ 	}
+     }
+   /* (C.3) Look in standenv for an appropriate cross-term.  */
+   u = a68_make_series_from_moids (x, y);
+   u = a68_make_united_mode (u);
+   v = a68_get_balanced_mode (u, STRONG, A68_NO_DEPREF, SAFE_DEFLEXING);
+   z = search_table_for_operator (OPERATORS (A68_STANDENV), n, v, v);
+   if (z != NO_TAG)
+     return z;
+   if (a68_is_coercible_series (u, M_REAL, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_REAL, M_REAL);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   if (a68_is_coercible_series (u, M_LONG_REAL, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_REAL, M_LONG_REAL);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   if (a68_is_coercible_series (u, M_LONG_LONG_REAL, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_LONG_REAL, M_LONG_LONG_REAL);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   if (a68_is_coercible_series (u, M_COMPLEX, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_COMPLEX, M_COMPLEX);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   if (a68_is_coercible_series (u, M_LONG_COMPLEX, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_COMPLEX, M_LONG_COMPLEX);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   if (a68_is_coercible_series (u, M_LONG_LONG_COMPLEX, STRONG, SAFE_DEFLEXING))
+     {
+       z = search_table_for_operator (OPERATORS (A68_STANDENV), n, M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX);
+       if (z != NO_TAG)
+ 	return z;
+     }
+   /* (C.4) Now allow for depreffing for REF REAL +:= INT and alike.  */
+   v = a68_get_balanced_mode (u, STRONG, A68_DEPREF, SAFE_DEFLEXING);
+   z = search_table_for_operator (OPERATORS (A68_STANDENV), n, v, v);
+   if (z != NO_TAG)
+     return z;
+   return NO_TAG;
+ }
+ 
+ /* Mode check monadic operator.  */
+ 
+ static void
+ mode_check_monadic_operator (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   if (p != NO_NODE)
+     {
+       TAG_T *t;
+       MOID_T *u = a68_determine_unique_mode (y, SAFE_DEFLEXING);
+       if (a68_is_mode_isnt_well (u))
+ 	a68_make_soid (y, SORT (x), M_ERROR, 0);
+       else if (u == M_HIP)
+ 	{
+ 	  a68_moid_format_token m (u);
+ 	  a68_error (NEXT (p), "%e construct is an invalid operand", &m);
+ 	  a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	}
+       else
+ 	{
+ 	  if (strchr (NOMADS, *(NSYMBOL (p))) != NO_TEXT)
+ 	    {
+ 	      t = NO_TAG;
+ 	      a68_symbol_format_token s (p);
+ 	      a68_error (p, "monadic %e cannot start with a character from %qs",
+ 			 &s, NOMADS);
+ 	      a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	    }
+ 	  else
+ 	    {
+ 	      t = find_operator (TABLE (p), NSYMBOL (p), u, NO_MOID);
+ 	      if (t == NO_TAG)
+ 		{
+ 		  a68_symbol_format_token s (p);
+ 		  a68_opmoid_format_token o (u);
+ 		  a68_error (p, "monadic operator %e %e has not been declared",
+ 			     &s, &o);
+ 		  a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 		}
+ 	    }
+ 	  if (t != NO_TAG)
+ 	    MOID (p) = MOID (t);
+ 	  TAX (p) = t;
+ 	  if (t != NO_TAG && t != A68_PARSER (error_tag))
+ 	    {
+ 	      MOID (p) = MOID (t);
+ 	      a68_make_soid (y, SORT (x), SUB_MOID (t), 0);
+ 	    }
+ 	  else
+ 	    {
+ 	      MOID (p) = M_ERROR;
+ 	      a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Mode check monadic formula.  */
+ 
+ static void
+ mode_check_monadic_formula (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T e;
+   a68_make_soid (&e, FIRM, NO_MOID, 0);
+   mode_check_formula (NEXT (p), &e, y);
+   mode_check_monadic_operator (p, &e, y);
+   a68_make_soid (y, SORT (x), MOID (y), 0);
+ }
+ 
+ /* Mode check formula.  */
+ 
+ static void
+ mode_check_formula (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T ls;
+   if (IS (p, MONADIC_FORMULA))
+     mode_check_monadic_formula (SUB (p), x, &ls);
+   else if (IS (p, FORMULA))
+     mode_check_formula (SUB (p), x, &ls);
+   else if (IS (p, SECONDARY))
+     {
+       SOID_T e;
+       a68_make_soid (&e, FIRM, NO_MOID, 0);
+       mode_check_unit (SUB (p), &e, &ls);
+     }
+   MOID_T *u = a68_determine_unique_mode (&ls, SAFE_DEFLEXING);
+   MOID (p) = u;
+   SOID_T rs;
+   if (NEXT (p) == NO_NODE)
+     a68_make_soid (y, SORT (x), u, 0);
+   else
+     {
+       NODE_T *q = NEXT_NEXT (p);
+       if (IS (q, MONADIC_FORMULA))
+ 	mode_check_monadic_formula (SUB (NEXT_NEXT (p)), x, &rs);
+       else if (IS (q, FORMULA))
+ 	mode_check_formula (SUB (NEXT_NEXT (p)), x, &rs);
+       else if (IS (q, SECONDARY))
+ 	{
+ 	  SOID_T e;
+ 	  a68_make_soid (&e, FIRM, NO_MOID, 0);
+ 	  mode_check_unit (SUB (q), &e, &rs);
+ 	}
+       MOID_T *v = a68_determine_unique_mode (&rs, SAFE_DEFLEXING);
+       MOID (q) = v;
+       if (a68_is_mode_isnt_well (u) || a68_is_mode_isnt_well (v))
+ 	a68_make_soid (y, SORT (x), M_ERROR, 0);
+       else if (u == M_HIP)
+ 	{
+ 	  a68_moid_format_token m (u);
+ 	  a68_error (p, "%e construct is an invalid operand", &m);
+ 	  a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	}
+       else if (v == M_HIP)
+ 	{
+ 	  a68_moid_format_token m (u);
+ 	  a68_error (q, "%e construct is an invalid operand", &m);
+ 	  a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	}
+       else
+ 	{
+ 	  TAG_T *op = find_operator (TABLE (NEXT (p)), NSYMBOL (NEXT (p)), u, v);
+ 	  if (op == NO_TAG)
+ 	    {
+ 	      a68_symbol_format_token s (NEXT (p));
+ 	      a68_opmoid_format_token o1 (u);
+ 	      a68_opmoid_format_token o2 (v);
+ 	      a68_error (NEXT (p), "dyadic operator %e %e %e has not been declared",
+ 			 &o1, &s, &o2);
+ 	      a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	    }
+ 	  if (op != NO_TAG)
+ 	    MOID (NEXT (p)) = MOID (op);
+ 	  TAX (NEXT (p)) = op;
+ 	  if (op != NO_TAG && op != A68_PARSER (error_tag))
+ 	    a68_make_soid (y, SORT (x), SUB_MOID (op), 0);
+ 	  else
+ 	    a68_make_soid (y, SORT (x), M_ERROR, 0);
+ 	}
+     }
+ }
+ 
+ /* Mode check assignation.  */
+ 
+ static void
+ mode_check_assignation (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   /* Get destination mode.  */
+   SOID_T name, tmp, value;
+   a68_make_soid (&name, SOFT, NO_MOID, 0);
+   mode_check_unit (SUB (p), &name, &tmp);
+   /* SOFT coercion.  */
+   MOID_T *ori = a68_determine_unique_mode (&tmp, SAFE_DEFLEXING);
+   MOID_T *name_moid = a68_deproc_completely (ori);
+   if (ATTRIBUTE (name_moid) != REF_SYMBOL)
+     {
+       if (A68_IF_MODE_IS_WELL (name_moid))
+ 	{
+ 	  a68_moid_format_token m (ori);
+ 	  a68_attr_format_token a (ATTRIBUTE (SUB (p)));
+ 	  a68_error (p, "%e %e does not yield a name", &m, &a);
+ 	}
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+       return;
+     }
+   MOID (p) = name_moid;
+   /* Get source mode.  */
+   a68_make_soid (&name, STRONG, SUB (name_moid), 0);
+   mode_check_unit (NEXT_NEXT (p), &name, &value);
+   if (!a68_is_coercible_in_context (&value, &name, FORCE_DEFLEXING))
+     {
+       a68_cannot_coerce (p, MOID (&value), MOID (&name), STRONG, FORCE_DEFLEXING, UNIT);
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+   else
+     a68_make_soid (y, SORT (x), name_moid, 0);
+ }
+ 
+ /* Mode check identity relation.  */
+ 
+ static void
+ mode_check_identity_relation (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   NODE_T *ln = p, *rn = NEXT_NEXT (p);
+   SOID_T e, l, r;
+   a68_make_soid (&e, SOFT, NO_MOID, 0);
+   mode_check_unit (SUB (ln), &e, &l);
+   mode_check_unit (SUB (rn), &e, &r);
+   /* SOFT coercion.  */
+   MOID_T *oril = a68_determine_unique_mode (&l, SAFE_DEFLEXING);
+   MOID_T *orir = a68_determine_unique_mode (&r, SAFE_DEFLEXING);
+   MOID_T *lhs = a68_deproc_completely (oril);
+   MOID_T *rhs = a68_deproc_completely (orir);
+   if (A68_IF_MODE_IS_WELL (lhs) && lhs != M_HIP && ATTRIBUTE (lhs) != REF_SYMBOL)
+     {
+       a68_moid_format_token m (oril);
+       a68_attr_format_token a (ATTRIBUTE (SUB (ln)));
+       a68_error (ln, "%e %e does not yield a name", &m, &a);
+       lhs = M_ERROR;
+     }
+   if (A68_IF_MODE_IS_WELL (rhs) && rhs != M_HIP && ATTRIBUTE (rhs) != REF_SYMBOL)
+     {
+       a68_moid_format_token m (orir);
+       a68_attr_format_token a (ATTRIBUTE (SUB (rn)));
+       a68_error (rn, "%e %e does not yield a name", &m, &a);
+       rhs = M_ERROR;
+     }
+   if (lhs == M_HIP && rhs == M_HIP)
+     a68_error (p, "construct has no unique mode");
+ 
+   if (a68_is_coercible (lhs, rhs, STRONG, SAFE_DEFLEXING))
+     lhs = rhs;
+   else if (a68_is_coercible (rhs, lhs, STRONG, SAFE_DEFLEXING))
+     rhs = lhs;
+   else
+     {
+       a68_cannot_coerce (NEXT (p), rhs, lhs, SOFT, SKIP_DEFLEXING, TERTIARY);
+       lhs = rhs = M_ERROR;
+     }
+   MOID (ln) = lhs;
+   MOID (rn) = rhs;
+   a68_make_soid (y, SORT (x), M_BOOL, 0);
+ }
+ 
+ /* Mode check bool functions ANDF and ORF.  */
+ 
+ static void
+ mode_check_bool_function (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T e, l, r;
+   NODE_T *ln = p, *rn = NEXT_NEXT (p);
+   a68_make_soid (&e, STRONG, M_BOOL, 0);
+   mode_check_unit (SUB (ln), &e, &l);
+   if (!a68_is_coercible_in_context (&l, &e, SAFE_DEFLEXING))
+     a68_cannot_coerce (ln, MOID (&l), MOID (&e), MEEK, SAFE_DEFLEXING, TERTIARY);
+   mode_check_unit (SUB (rn), &e, &r);
+   if (!a68_is_coercible_in_context (&r, &e, SAFE_DEFLEXING))
+     a68_cannot_coerce (rn, MOID (&r), MOID (&e), MEEK, SAFE_DEFLEXING, TERTIARY);
+   MOID (ln) = M_BOOL;
+   MOID (rn) = M_BOOL;
+   a68_make_soid (y, SORT (x), M_BOOL, 0);
+ }
+ 
+ /* Mode check cast.  */
+ 
+ static void
+ mode_check_cast (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T w;
+   mode_check_declarer (p);
+   a68_make_soid (&w, STRONG, MOID (p), 0);
+   CAST (&w) = true;
+   mode_check_enclosed (SUB_NEXT (p), &w, y);
+   if (!a68_is_coercible_in_context (y, &w, SAFE_DEFLEXING))
+     a68_cannot_coerce (NEXT (p), MOID (y), MOID (&w), STRONG, SAFE_DEFLEXING, ENCLOSED_CLAUSE);
+   a68_make_soid (y, SORT (x), MOID (p), 0);
+ }
+ 
+ /* Mode check assertion.  */
+ 
+ static void
+ mode_check_assertion (NODE_T *p)
+ {
+   SOID_T w, y;
+   a68_make_soid (&w, STRONG, M_BOOL, 0);
+   mode_check_enclosed (SUB_NEXT (p), &w, &y);
+   SORT (&y) = SORT (&w);
+   if (!a68_is_coercible_in_context (&y, &w, NO_DEFLEXING))
+     a68_cannot_coerce (NEXT (p), MOID (&y), MOID (&w), MEEK, NO_DEFLEXING, ENCLOSED_CLAUSE);
+ }
+ 
+ /* Mode check argument list.  */
+ 
+ static void
+ mode_check_argument_list (SOID_T **r, NODE_T *p, PACK_T **x, PACK_T **v, PACK_T **w)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, GENERIC_ARGUMENT_LIST))
+ 	ATTRIBUTE (p) = ARGUMENT_LIST;
+ 
+       if (IS (p, ARGUMENT_LIST))
+ 	mode_check_argument_list (r, SUB (p), x, v, w);
+       else if (IS (p, UNIT))
+ 	{
+ 	  SOID_T y, z;
+ 	  if (*x != NO_PACK)
+ 	    {
+ 	      a68_make_soid (&z, STRONG, MOID (*x), 0);
+ 	      a68_add_mode_to_pack_end (v, MOID (*x), NO_TEXT, p);
+ 	      FORWARD (*x);
+ 	    }
+ 	  else
+ 	    a68_make_soid (&z, STRONG, NO_MOID, 0);
+ 	  mode_check_unit (p, &z, &y);
+ 	  a68_add_to_soid_list (r, p, &y);
+ 	}
+       else if (IS (p, TRIMMER))
+ 	{
+ 	  SOID_T z;
+ 	  if (SUB (p) != NO_NODE)
+ 	    {
+ 	      a68_attr_format_token a (ARGUMENT);
+ 	      a68_error (p, "syntax error detected in %e", &a);
+ 	      a68_make_soid (&z, STRONG, M_ERROR, 0);
+ 	      a68_add_mode_to_pack_end (v, M_VOID, NO_TEXT, p);
+ 	      a68_add_mode_to_pack_end (w, MOID (*x), NO_TEXT, p);
+ 	      FORWARD (*x);
+ 	    }
+ 	  else if (*x != NO_PACK)
+ 	    {
+ 	      a68_make_soid (&z, STRONG, MOID (*x), 0);
+ 	      a68_add_mode_to_pack_end (v, M_VOID, NO_TEXT, p);
+ 	      a68_add_mode_to_pack_end (w, MOID (*x), NO_TEXT, p);
+ 	      FORWARD (*x);
+ 	    }
+ 	  else
+ 	    a68_make_soid (&z, STRONG, NO_MOID, 0);
+ 	  a68_add_to_soid_list (r, p, &z);
+ 	}
+       else if (IS (p, SUB_SYMBOL) && !OPTION_BRACKETS (&A68_JOB))
+ 	{
+ 	  a68_attr_format_token a (CALL);
+ 	  a68_error (p, "syntax error detected in %e", &a);
+ 	}
+     }
+ }
+ 
+ /* Mode check argument list 2.  */
+ 
+ static void
+ mode_check_argument_list_2 (NODE_T *p, PACK_T *x, SOID_T *y, PACK_T **v, PACK_T **w)
+ {
+   SOID_T *top_sl = NO_SOID;
+   mode_check_argument_list (&top_sl, SUB (p), &x, v, w);
+   a68_make_soid (y, STRONG, a68_pack_soids_in_moid (top_sl, STOWED_MODE), 0);
+   a68_free_soid_list (top_sl);
+ }
+ 
+ /* Mode check meek int.  */
+ 
+ static void
+ mode_check_meek_int (NODE_T *p)
+ {
+   SOID_T x, y;
+   a68_make_soid (&x, MEEK, M_INT, 0);
+   mode_check_unit (p, &x, &y);
+   if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+     a68_cannot_coerce (p, MOID (&y), MOID (&x), MEEK, SAFE_DEFLEXING, 0);
+ }
+ 
+ /* Mode check trimmer.  */
+ 
+ static void
+ mode_check_trimmer (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, TRIMMER))
+     mode_check_trimmer (SUB (p));
+   else if (IS (p, UNIT))
+     {
+       mode_check_meek_int (p);
+       mode_check_trimmer (NEXT (p));
+     }
+   else
+     mode_check_trimmer (NEXT (p));
+ }
+ 
+ /* Mode check indexer.  */
+ 
+ static void
+ mode_check_indexer (NODE_T *p, int *subs, int *trims)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, TRIMMER))
+     {
+       (*trims)++;
+       mode_check_trimmer (SUB (p));
+     }
+   else if (IS (p, UNIT))
+     {
+       (*subs)++;
+       mode_check_meek_int (p);
+     }
+   else
+     {
+       mode_check_indexer (SUB (p), subs, trims);
+       mode_check_indexer (NEXT (p), subs, trims);
+     }
+ }
+ 
+ /* Mode check call.  */
+ 
+ static void
+ mode_check_call (NODE_T *p, MOID_T *n, SOID_T *x, SOID_T *y)
+ {
+   MOID (p) = n;
+   /* "partial_locale" is the mode of the locale.  */
+   PARTIAL_LOCALE (GINFO (p)) = a68_new_moid ();
+   ATTRIBUTE (PARTIAL_LOCALE (GINFO (p))) = PROC_SYMBOL;
+   PACK (PARTIAL_LOCALE (GINFO (p))) = NO_PACK;
+   SUB (PARTIAL_LOCALE (GINFO (p))) = SUB (n);
+   /* "partial_proc" is the mode of the resulting proc.  */
+   PARTIAL_PROC (GINFO (p)) = a68_new_moid ();
+   ATTRIBUTE (PARTIAL_PROC (GINFO (p))) = PROC_SYMBOL;
+   PACK (PARTIAL_PROC (GINFO (p))) = NO_PACK;
+   SUB (PARTIAL_PROC (GINFO (p))) = SUB (n);
+   /* Check arguments and construct modes.  */
+   SOID_T d;
+   mode_check_argument_list_2 (NEXT (p), PACK (n), &d, &PACK (PARTIAL_LOCALE (GINFO (p))),
+ 			      &PACK (PARTIAL_PROC (GINFO (p))));
+   DIM (PARTIAL_PROC (GINFO (p))) = a68_count_pack_members (PACK (PARTIAL_PROC (GINFO (p))));
+   DIM (PARTIAL_LOCALE (GINFO (p))) = a68_count_pack_members (PACK (PARTIAL_LOCALE (GINFO (p))));
+   PARTIAL_PROC (GINFO (p)) = a68_register_extra_mode (&TOP_MOID (&A68_JOB), PARTIAL_PROC (GINFO (p)));
+   PARTIAL_LOCALE (GINFO (p)) = a68_register_extra_mode (&TOP_MOID (&A68_JOB), PARTIAL_LOCALE (GINFO (p)));
+   if (DIM (MOID (&d)) != DIM (n))
+     {
+       a68_moid_format_token m (n);
+       a68_error (p, "incorrect number of arguments for %e", &m);
+       a68_make_soid (y, SORT (x), SUB (n), 0);
+       /*  a68_make_soid (y, SORT (x), M_ERROR, 0);.  */
+     }
+   else
+     {
+       if (!a68_is_coercible (MOID (&d), n, STRONG, ALIAS_DEFLEXING))
+ 	a68_cannot_coerce (p, MOID (&d), n, STRONG, ALIAS_DEFLEXING, ARGUMENT);
+       if (DIM (PARTIAL_PROC (GINFO (p))) == 0)
+ 	a68_make_soid (y, SORT (x), SUB (n), 0);
+       else
+ 	{
+ 	  a68_construct_format_token c (NEXT (p));
+ 	  a68_warning (NEXT (p), OPT_Wextensions, "%e is an extension", &c);
+ 	  a68_make_soid (y, SORT (x), PARTIAL_PROC (GINFO (p)), 0);
+ 	}
+     }
+ }
+ 
+ /* Mode check slice.  */
+ 
+ static void
+ mode_check_slice (NODE_T *p, MOID_T *ori, SOID_T *x, SOID_T *y)
+ {
+   MOID_T *m = a68_depref_completely (ori), *n = ori;
+   /* WEAK coercion.  */
+   while ((IS_REF (n) && !a68_is_ref_row (n)) || (IS (n, PROC_SYMBOL) && PACK (n) == NO_PACK))
+     n = a68_depref_once (n);
+ 
+   if (n == NO_MOID || !(SLICE (DEFLEX (n)) != NO_MOID || a68_is_ref_row (n)))
+     {
+       if (A68_IF_MODE_IS_WELL (n))
+ 	{
+ 	  a68_moid_format_token m (n);
+ 	  a68_attr_format_token a (ATTRIBUTE (SUB (p)));
+ 	  a68_error (p, "%e %e does not yield a row or procedure", &m, &a);
+ 	}
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+ 
+   MOID (p) = n;
+   int dim = 0, subs = 0, trims = 0;
+   mode_check_indexer (SUB_NEXT (p), &subs, &trims);
+   bool is_ref;
+   if ((is_ref = a68_is_ref_row (n)) != 0)
+     dim = DIM (DEFLEX (SUB (n)));
+   else
+     dim = DIM (DEFLEX (n));
+ 
+   if ((subs + trims) != dim)
+     {
+       a68_moid_format_token m (n);
+       a68_error (p, "incorrect number of indexers for %e", &m);
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+     }
+   else
+     {
+       if (subs > 0 && trims == 0)
+ 	{
+ 	  ANNOTATION (NEXT (p)) = SLICE;
+ 	  m = n;
+ 	}
+       else
+ 	{
+ 	  ANNOTATION (NEXT (p)) = TRIMMER;
+ 	  m = n;
+ 	}
+       while (subs > 0)
+ 	{
+ 	  if (is_ref)
+ 	    m = NAME (m);
+ 	  else
+ 	    {
+ 	      if (IS_FLEX (m))
+ 		m = SUB (m);
+ 	      m = SLICE (m);
+ 	    }
+ 	  gcc_assert (m != NO_MOID);
+ 	  subs--;
+ 	}
+       /* A trim cannot be but deflexed.  */
+       if (ANNOTATION (NEXT (p)) == TRIMMER && TRIM (m) != NO_MOID)
+ 	{
+ 	  gcc_assert (TRIM (m) != NO_MOID);
+ 	  a68_make_soid (y, SORT (x), TRIM (m), 0);
+ 	}
+       else
+ 	a68_make_soid (y, SORT (x), m, 0);
+     }
+ }
+ 
+ /* Mode check specification.  */
+ 
+ static enum a68_attribute
+ mode_check_specification (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   SOID_T w, d;
+   a68_make_soid (&w, WEAK, NO_MOID, 0);
+   mode_check_unit (SUB (p), &w, &d);
+   MOID_T *ori = a68_determine_unique_mode (&d, SAFE_DEFLEXING);
+   MOID_T *m = a68_depref_completely (ori);
+   if (IS (m, PROC_SYMBOL))
+     {
+       /* Assume CALL.  */
+       mode_check_call (p, m, x, y);
+       return CALL;
+     }
+   else if (IS_ROW (m) || IS_FLEX (m))
+     {
+       /* Assume SLICE.  */
+       mode_check_slice (p, ori, x, y);
+       return SLICE;
+     }
+   else
+     {
+       if (m != M_ERROR)
+ 	{
+ 	  a68_moid_format_token m1 (m);
+ 	  a68_error (p, "%e construct must yield a routine or a row value", &m1);
+ 	}
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+       return PRIMARY;
+     }
+ }
+ 
+ /* Mode check selection.  */
+ 
+ static void
+ mode_check_selection (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   bool deflex = false;
+   NODE_T *secondary = SUB_NEXT (p);
+   SOID_T w, d;
+   a68_make_soid (&w, WEAK, NO_MOID, 0);
+   mode_check_unit (secondary, &w, &d);
+   MOID_T *n, *ori;
+   n = ori = a68_determine_unique_mode (&d, SAFE_DEFLEXING);
+   PACK_T *t = NO_PACK, *t_2 = NO_PACK;
+   bool coerce = true;
+   while (coerce)
+     {
+       if (IS (n, STRUCT_SYMBOL))
+ 	{
+ 	  coerce = false;
+ 	  t = PACK (n);
+ 	}
+       else if (IS_REF (n) && (IS_ROW (SUB (n)) || IS_FLEX (SUB (n))) && MULTIPLE (n) != NO_MOID)
+ 	{
+ 	  coerce = false;
+ 	  deflex = true;
+ 	  t = PACK (MULTIPLE (n));
+ 	}
+       else if ((IS_ROW (n) || IS_FLEX (n)) && MULTIPLE (n) != NO_MOID)
+ 	{
+ 	  coerce = false;
+ 	  deflex = true;
+ 	  t = PACK (MULTIPLE (n));
+ 	}
+       else if (IS_REF (n) && a68_is_name_struct (n))
+ 	{
+ 	  coerce = false;
+ 	  t = PACK (NAME (n));
+ 	}
+       else if (a68_is_deprefable (n))
+ 	{
+ 	  coerce = true;
+ 	  n = SUB (n);
+ 	  t = NO_PACK;
+ 	}
+       else
+ 	{
+ 	  coerce = false;
+ 	  t = NO_PACK;
+ 	}
+     }
+   if (t == NO_PACK)
+     {
+       if (A68_IF_MODE_IS_WELL (MOID (&d)))
+ 	{
+ 	  a68_moid_format_token m (ori);
+ 	  a68_attr_format_token a (ATTRIBUTE (secondary));
+ 	  a68_error (secondary, "%e %e does not yield a structured value", &m, &a);
+ 	}
+       a68_make_soid (y, SORT (x), M_ERROR, 0);
+       return;
+     }
+ 
+   MOID (NEXT (p)) = n;
+   const char *fs = NSYMBOL (SUB (p));
+   MOID_T *str = n;
+   while (IS_REF (str))
+     str = SUB (str);
+   if (IS_FLEX (str))
+     str = SUB (str);
+   if (IS_ROW (str))
+     str = SUB (str);
+   t_2 = PACK (str);
+   while (t != NO_PACK && t_2 != NO_PACK)
+     {
+       if (TEXT (t) == fs || strcmp (TEXT (t), fs) == 0)
+ 	{
+ 	  MOID_T *ret = MOID (t);
+ 	  if (deflex && TRIM (ret) != NO_MOID)
+ 	    ret = TRIM (ret);
+ 	  a68_make_soid (y, SORT (x), ret, 0);
+ 	  MOID (p) = ret;
+ 	  NODE_PACK (SUB (p)) = t_2;
+ 	  return;
+ 	}
+       FORWARD (t);
+       FORWARD (t_2);
+     }
+   a68_make_soid (&d, NO_SORT, n, 0);
+   a68_moid_format_token m (str);
+   a68_error (p, "%e has no field %qs", &m, fs);
+   a68_make_soid (y, SORT (x), M_ERROR, 0);
+ }
+ 
+ /* Mode check format text.  */
+ 
+ static void
+ mode_check_format_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       mode_check_format_text (SUB (p));
+       if (IS (p, FORMAT_PATTERN))
+ 	{
+ 	  SOID_T x, y;
+ 	  a68_make_soid (&x, STRONG, M_FORMAT, 0);
+ 	  mode_check_enclosed (SUB (NEXT_SUB (p)), &x, &y);
+ 	  if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	    a68_cannot_coerce (p, MOID (&y), MOID (&x), STRONG, SAFE_DEFLEXING, ENCLOSED_CLAUSE);
+ 	}
+       else if (IS (p, GENERAL_PATTERN) && NEXT_SUB (p) != NO_NODE)
+ 	{
+ 	  SOID_T x, y;
+ 	  a68_make_soid (&x, STRONG, M_ROW_INT, 0);
+ 	  mode_check_enclosed (SUB (NEXT_SUB (p)), &x, &y);
+ 	  if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	    a68_cannot_coerce (p, MOID (&y), MOID (&x), STRONG, SAFE_DEFLEXING, ENCLOSED_CLAUSE);
+ 	}
+       else if (IS (p, DYNAMIC_REPLICATOR))
+ 	{
+ 	  SOID_T x, y;
+ 	  a68_make_soid (&x, STRONG, M_INT, 0);
+ 	  mode_check_enclosed (SUB (NEXT_SUB (p)), &x, &y);
+ 	  if (!a68_is_coercible_in_context (&y, &x, SAFE_DEFLEXING))
+ 	    a68_cannot_coerce (p, MOID (&y), MOID (&x), STRONG, SAFE_DEFLEXING, ENCLOSED_CLAUSE);
+ 	}
+     }
+ }
+ 
+ /* Mode check unit.  */
+ 
+ static void
+ mode_check_unit (NODE_T *p, SOID_T *x, SOID_T *y)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (a68_is_one_of (p, UNIT, TERTIARY, SECONDARY, PRIMARY, STOP))
+     mode_check_unit (SUB (p), x, y);
+   /* Ex primary.  */
+   else if (IS (p, SPECIFICATION))
+     {
+       ATTRIBUTE (p) = mode_check_specification (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, ATTRIBUTE (p));
+     }
+   else if (IS (p, CAST))
+     {
+       mode_check_cast (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, CAST);
+     }
+   else if (IS (p, DENOTATION))
+     {
+       a68_make_soid (y, SORT (x), MOID (SUB (p)), 0);
+       a68_warn_for_voiding (p, x, y, DENOTATION);
+     }
+   else if (IS (p, IDENTIFIER))
+     {
+       if ((TAX (p) == NO_TAG) && (MOID (p) == NO_MOID))
+ 	{
+ 	  int att = a68_first_tag_global (TABLE (p), NSYMBOL (p));
+ 	  if (att == STOP)
+ 	    {
+ 	      (void) a68_add_tag (TABLE (p), IDENTIFIER, p, M_ERROR, NORMAL_IDENTIFIER);
+ 	      a68_error (p, "tag %qs has not been declared properly", NSYMBOL (p));
+ 	      MOID (p) = M_ERROR;
+ 	    }
+ 	  else
+ 	    {
+ 	      TAG_T *z = a68_find_tag_global (TABLE (p), att, NSYMBOL (p));
+ 	      if (att == IDENTIFIER && z != NO_TAG)
+ 		MOID (p) = MOID (z);
+ 	      else
+ 		{
+ 		  (void) a68_add_tag (TABLE (p), IDENTIFIER, p, M_ERROR, NORMAL_IDENTIFIER);
+ 		  a68_error (p, "tag %qs has not been declared properly", NSYMBOL (p));
+ 		  MOID (p) = M_ERROR;
+ 		}
+ 	    }
+ 	}
+       a68_make_soid (y, SORT (x), MOID (p), 0);
+       a68_warn_for_voiding (p, x, y, IDENTIFIER);
+     }
+   else if (IS (p, ENCLOSED_CLAUSE))
+     mode_check_enclosed (SUB (p), x, y);
+   else if (IS (p, FORMAT_TEXT))
+     {
+       mode_check_format_text (p);
+       a68_make_soid (y, SORT (x), M_FORMAT, 0);
+       a68_warn_for_voiding (p, x, y, FORMAT_TEXT);
+       /* Ex secondary.  */
+     }
+   else if (IS (p, GENERATOR))
+     {
+       mode_check_declarer (SUB (p));
+       a68_make_soid (y, SORT (x), MOID (SUB (p)), 0);
+       a68_warn_for_voiding (p, x, y, GENERATOR);
+     }
+   else if (IS (p, SELECTION))
+     {
+       mode_check_selection (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, SELECTION);
+       /* Ex tertiary.  */
+     }
+   else if (IS (p, NIHIL))
+     a68_make_soid (y, STRONG, M_HIP, 0);
+   else if (IS (p, FORMULA))
+     {
+       mode_check_formula (p, x, y);
+       if (!IS_REF (MOID (y)))
+ 	a68_warn_for_voiding (p, x, y, FORMULA);
+     }
+   else if (a68_is_one_of (p, JUMP, SKIP, STOP))
+     {
+       if (SORT (x) != STRONG)
+ 	{
+ 	  a68_construct_format_token c (p);
+ 	  a68_sort_format_token s (SORT (x));
+ 	  a68_warning (p, 0, "%e should not be in %e context", &c, &s);
+ 	}
+       /*  a68_make_soid (y, STRONG, M_HIP, 0);  */
+       a68_make_soid (y, SORT (x), M_HIP, 0);
+     }
+   else if (IS (p, ASSIGNATION))
+     mode_check_assignation (SUB (p), x, y);
+   else if (IS (p, IDENTITY_RELATION))
+     {
+       mode_check_identity_relation (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, IDENTITY_RELATION);
+     }
+   else if (IS (p, ROUTINE_TEXT))
+     {
+       mode_check_routine_text (SUB (p), y);
+       a68_make_soid (y, SORT (x), MOID (p), 0);
+       a68_warn_for_voiding (p, x, y, ROUTINE_TEXT);
+     }
+   else if (IS (p, ASSERTION))
+     {
+       mode_check_assertion (SUB (p));
+       a68_make_soid (y, STRONG, M_VOID, 0);
+     }
+   else if (IS (p, AND_FUNCTION))
+     {
+       mode_check_bool_function (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, AND_FUNCTION);
+     }
+   else if (IS (p, OR_FUNCTION))
+     {
+       mode_check_bool_function (SUB (p), x, y);
+       a68_warn_for_voiding (p, x, y, OR_FUNCTION);
+     }
+   else if (IS (p, FORMAL_HOLE))
+     {
+       NODE_T *tertiary = NO_NODE;
+ 
+       for (NODE_T *q = SUB (p); q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (IS (q, TERTIARY))
+ 	    {
+ 	      tertiary = q;
+ 	      break;
+ 	    }
+ 	}
+ 
+       NODE_T *str = tertiary;
+       while (str != NO_NODE && !IS (str, ROW_CHAR_DENOTATION))
+ 	str = SUB (str);
+       gcc_assert (IS (str, ROW_CHAR_DENOTATION));
+ 
+       if (SORT (x) != STRONG)
+ 	{
+ 	  /* A formal hole should appear in a strong context, and its mode is
+ 	     the goal mode of the context.  */
+ 	  a68_error (p, "formal hole should be in a strong context");
+ 	  a68_make_soid (y, STRONG, M_ERROR, 0);
+ 	}
+       else if (!a68_is_c_mode (MOID (x)))
+ 	{
+ 	  /* Additionally, the mode of the formal hole should be amenable to be
+ 	     somehow "translated" to C semantics. */
+ 	  a68_moid_format_token m (MOID (x));
+ 	  a68_error (p, "formal hole cannot be of mode %e", &m);
+ 	  a68_make_soid (y, STRONG, M_ERROR, 0);
+ 	}
+       else if (NSYMBOL (str)[0] == '&' && !IS_REF (MOID (x)))
+ 	{
+ 	  /* A C formal whole whose string starts with & requires
+ 	     a ref mode.  */
+ 	  a68_error (p, "formal hole should be a name (ref to a mode)");
+ 	  a68_make_soid (y, STRONG, M_ERROR, 0);
+ 	}
+       else
+ 	{
+ 	  SOID_T z;
+ 	  mode_check_unit (tertiary, x, &z);
+ 	  a68_make_soid (y, SORT (x), MOID (x), 0);
+ 	  a68_warn_for_voiding (p, x, y, FORMAL_HOLE);
+ 	}
+     }
+ 
+   MOID (p) = MOID (y);
+ }
+ 
+ /* Mode check a module text.  */
+ 
+ static void
+ mode_check_module_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEF_PART) || IS (p, POSTLUDE_PART))
+ 	{
+ 	  /* XXX unde def is an enquiry clause  */
+ 	  SOID_T *z = NO_SOID;
+ 	  SOID_T ix;
+ 	  a68_make_soid (&ix, STRONG, M_VOID, 0);
+ 	  mode_check_serial (&z, NEXT_SUB (p), &ix, true);
+ 	  a68_free_soid_list (z);
+ 	}
+     }
+ }
+ 
+ /* Mode check a module declaration.  */
+ 
+ static void
+ mode_check_module_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, MODULE_TEXT))
+ 	mode_check_module_text (SUB (p));
+       else
+ 	mode_check_module_declaration (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-moids-coerce.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-coerce.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-moids-coerce.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-coerce.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,925 ----
+ /* Mode coercion driver.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ 
+ #define A68_INSERT_COERCIONS(n, p, q) a68_make_strong ((n), (p), MOID (q))
+ 
+ /* A few forward references of functions defined below.  */
+ 
+ static void coerce_unit (NODE_T *p, SOID_T *q);
+ static void coerce_formula (NODE_T *p, SOID_T *q __attribute__ ((unused)));
+ static void coerce_operand (NODE_T *p, SOID_T *q);
+ static void coerce_enclosed (NODE_T *p, SOID_T *q);
+ 
+ /* Coerce bounds.  */
+ 
+ static void
+ coerce_bounds (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  SOID_T q;
+ 	  a68_make_soid (&q, MEEK, M_INT, 0);
+ 	  coerce_unit (p, &q);
+ 	}
+       else
+ 	coerce_bounds (SUB (p));
+     }
+ }
+ 
+ /* Coerce declarer.  */
+ 
+ static void
+ coerce_declarer (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, BOUNDS))
+ 	coerce_bounds (SUB (p));
+       else
+ 	coerce_declarer (SUB (p));
+     }
+ }
+ 
+ /* Coerce identity declaration.  */
+ 
+ static void
+ coerce_identity_declaration (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case DECLARER:
+ 	  coerce_declarer (SUB (p));
+ 	  coerce_identity_declaration (NEXT (p));
+         break;
+ 	case DEFINING_IDENTIFIER:
+ 	  {
+ 	    SOID_T q;
+ 	    a68_make_soid (&q, STRONG, MOID (p), 0);
+ 	    coerce_unit (NEXT_NEXT (p), &q);
+ 	    break;
+ 	  }
+ 	default:
+ 	  coerce_identity_declaration (SUB (p));
+ 	  coerce_identity_declaration (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Coerce variable declaration.  */
+ 
+ static void
+ coerce_variable_declaration (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case DECLARER:
+ 	  coerce_declarer (SUB (p));
+ 	  coerce_variable_declaration (NEXT (p));
+ 	  break;
+ 	case DEFINING_IDENTIFIER:
+ 	  if (a68_whether (p, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP))
+ 	    {
+ 	      SOID_T q;
+ 	      a68_make_soid (&q, STRONG, SUB_MOID (p), 0);
+ 	      coerce_unit (NEXT_NEXT (p), &q);
+ 	      break;
+ 	    }
+ 	  /* Fallthrough.  */
+ 	default:
+ 	  coerce_variable_declaration (SUB (p));
+ 	  coerce_variable_declaration (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Coerce routine text.  */
+ 
+ static void
+ coerce_routine_text (NODE_T *p)
+ {
+   if (IS (p, PARAMETER_PACK))
+     FORWARD (p);
+   SOID_T w;
+   a68_make_soid (&w, STRONG, MOID (p), 0);
+   coerce_unit (NEXT_NEXT (p), &w);
+ }
+ 
+ /* Coerce proc declaration.  */
+ 
+ static void
+ coerce_proc_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, ROUTINE_TEXT))
+     coerce_routine_text (SUB (p));
+   else
+     {
+       coerce_proc_declaration (SUB (p));
+       coerce_proc_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Coerce_op_declaration.  */
+ 
+ static void
+ coerce_op_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, DEFINING_OPERATOR))
+     {
+       SOID_T q;
+       a68_make_soid (&q, STRONG, MOID (p), 0);
+       coerce_unit (NEXT_NEXT (p), &q);
+     }
+   else
+     {
+       coerce_op_declaration (SUB (p));
+       coerce_op_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Coerce brief op declaration.  */
+ 
+ static void
+ coerce_brief_op_declaration (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, DEFINING_OPERATOR))
+     coerce_routine_text (SUB (NEXT_NEXT (p)));
+   else
+     {
+       coerce_brief_op_declaration (SUB (p));
+       coerce_brief_op_declaration (NEXT (p));
+     }
+ }
+ 
+ /* Coerce declaration list.  */
+ 
+ static void
+ coerce_declaration_list (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case IDENTITY_DECLARATION:
+ 	  coerce_identity_declaration (SUB (p));
+ 	  break;
+ 	case VARIABLE_DECLARATION:
+ 	  coerce_variable_declaration (SUB (p));
+ 	  break;
+ 	case MODE_DECLARATION:
+ 	  coerce_declarer (SUB (p));
+ 	  break;
+ 	case PROCEDURE_DECLARATION:
+ 	case PROCEDURE_VARIABLE_DECLARATION:
+ 	  coerce_proc_declaration (SUB (p));
+ 	  break;
+ 	case BRIEF_OPERATOR_DECLARATION:
+ 	  coerce_brief_op_declaration (SUB (p));
+ 	  break;
+ 	case OPERATOR_DECLARATION:
+ 	  coerce_op_declaration (SUB (p));
+ 	  break;
+ 	default:
+ 	  coerce_declaration_list (SUB (p));
+ 	  coerce_declaration_list (NEXT (p));
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Coerce serial.  */
+ 
+ static void
+ coerce_serial (NODE_T *p, SOID_T *q, bool k)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, INITIALISER_SERIES))
+     {
+       coerce_serial (SUB (p), q, false);
+       coerce_serial (NEXT (p), q, k);
+     }
+   else if (IS (p, DECLARATION_LIST))
+     coerce_declaration_list (SUB (p));
+   else if (a68_is_one_of (p, LABEL, SEMI_SYMBOL, EXIT_SYMBOL, STOP))
+     coerce_serial (NEXT (p), q, k);
+   else if (a68_is_one_of (p, SERIAL_CLAUSE, ENQUIRY_CLAUSE, STOP))
+     {
+       NODE_T *z = NEXT (p);
+       if (z != NO_NODE)
+ 	{
+ 	  if (IS (z, EXIT_SYMBOL) || IS (z, END_SYMBOL) || IS (z, CLOSE_SYMBOL))
+ 	    coerce_serial (SUB (p), q, true);
+ 	  else
+ 	    coerce_serial (SUB (p), q, false);
+ 	}
+       else
+ 	coerce_serial (SUB (p), q, true);
+       coerce_serial (NEXT (p), q, k);
+     }
+   else if (IS (p, LABELED_UNIT))
+     coerce_serial (SUB (p), q, k);
+   else if (IS (p, UNIT))
+     {
+       if (k)
+ 	coerce_unit (p, q);
+       else
+ 	{
+ 	  SOID_T strongvoid;
+ 	  a68_make_soid (&strongvoid, STRONG, M_VOID, 0);
+ 	  coerce_unit (p, &strongvoid);
+ 	}
+     }
+ }
+ 
+ /* Coerce closed.  */
+ 
+ static void
+ coerce_closed (NODE_T *p, SOID_T *q)
+ {
+   if (IS (p, SERIAL_CLAUSE))
+     coerce_serial (p, q, true);
+   else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, STOP))
+     coerce_closed (NEXT (p), q);
+ }
+ 
+ /* Coerce access clause.  */
+ 
+ static void
+ coerce_access (NODE_T *p, SOID_T *q)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, ENCLOSED_CLAUSE))
+ 	coerce_enclosed (p, q);
+     }
+ }
+ 
+ /* Coerce conditional.  */
+ 
+ static void
+ coerce_conditional (NODE_T *p, SOID_T *q)
+ {
+   SOID_T w;
+   a68_make_soid (&w, MEEK, M_BOOL, 0);
+   coerce_serial (NEXT_SUB (p), &w, true);
+   FORWARD (p);
+   coerce_serial (NEXT_SUB (p), q, true);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, ELSE_PART, CHOICE, STOP))
+ 	coerce_serial (NEXT_SUB (p), q, true);
+       else if (a68_is_one_of (p, ELIF_PART, BRIEF_ELIF_PART, STOP))
+ 	coerce_conditional (SUB (p), q);
+     }
+ }
+ 
+ /* Coerce unit list.  */
+ 
+ static void
+ coerce_unit_list (NODE_T *p, SOID_T *q)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, UNIT_LIST))
+     {
+       coerce_unit_list (SUB (p), q);
+       coerce_unit_list (NEXT (p), q);
+     }
+   else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, COMMA_SYMBOL, STOP))
+     coerce_unit_list (NEXT (p), q);
+   else if (IS (p, UNIT))
+     {
+       coerce_unit (p, q);
+       coerce_unit_list (NEXT (p), q);
+     }
+ }
+ 
+ /* Coerce int case.  */
+ 
+ static void
+ coerce_int_case (NODE_T *p, SOID_T *q)
+ {
+   SOID_T w;
+   a68_make_soid (&w, MEEK, M_INT, 0);
+   coerce_serial (NEXT_SUB (p), &w, true);
+   FORWARD (p);
+   coerce_unit_list (NEXT_SUB (p), q);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, OUT_PART, CHOICE, STOP))
+ 	coerce_serial (NEXT_SUB (p), q, true);
+       else if (a68_is_one_of (p, CASE_OUSE_PART, BRIEF_OUSE_PART, STOP))
+ 	coerce_int_case (SUB (p), q);
+     }
+ }
+ 
+ /* Coerce spec unit list.  */
+ 
+ static void
+ coerce_spec_unit_list (NODE_T *p, SOID_T *q)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (a68_is_one_of (p, SPECIFIED_UNIT_LIST, SPECIFIED_UNIT, STOP))
+ 	coerce_spec_unit_list (SUB (p), q);
+       else if (IS (p, UNIT))
+ 	coerce_unit (p, q);
+     }
+ }
+ 
+ /* Coerce united case.  */
+ 
+ static void
+ coerce_united_case (NODE_T *p, SOID_T *q)
+ {
+   SOID_T w;
+   a68_make_soid (&w, MEEK, MOID (SUB (p)), 0);
+   coerce_serial (NEXT_SUB (p), &w, true);
+   FORWARD (p);
+   coerce_spec_unit_list (NEXT_SUB (p), q);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, OUT_PART, CHOICE, STOP))
+ 	coerce_serial (NEXT_SUB (p), q, true);
+       else if (a68_is_one_of (p, CONFORMITY_OUSE_PART, BRIEF_CONFORMITY_OUSE_PART, STOP))
+ 	coerce_united_case (SUB (p), q);
+     }
+ }
+ 
+ /* Coerce loop.  */
+ 
+ static void
+ coerce_loop (NODE_T *p)
+ {
+   if (IS (p, FOR_PART))
+     coerce_loop (NEXT (p));
+   else if (a68_is_one_of (p, FROM_PART, BY_PART, TO_PART, STOP))
+     {
+       SOID_T w;
+       a68_make_soid (&w, MEEK, M_INT, 0);
+       coerce_unit (NEXT_SUB (p), &w);
+       coerce_loop (NEXT (p));
+     }
+   else if (IS (p, WHILE_PART))
+     {
+       SOID_T w;
+       a68_make_soid (&w, MEEK, M_BOOL, 0);
+       coerce_serial (NEXT_SUB (p), &w, true);
+       coerce_loop (NEXT (p));
+     }
+   else if (a68_is_one_of (p, DO_PART, ALT_DO_PART, STOP))
+     {
+       SOID_T w;
+       NODE_T *do_p = NEXT_SUB (p);
+       a68_make_soid (&w, STRONG, M_VOID, 0);
+       coerce_serial (do_p, &w, true);
+     }
+ }
+ 
+ /* Coerce struct display.  */
+ 
+ static void
+ coerce_struct_display (PACK_T **r, NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (IS (p, UNIT_LIST))
+     {
+       coerce_struct_display (r, SUB (p));
+       coerce_struct_display (r, NEXT (p));
+     }
+   else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, COMMA_SYMBOL, STOP))
+     coerce_struct_display (r, NEXT (p));
+   else if (IS (p, UNIT))
+     {
+       SOID_T s;
+       a68_make_soid (&s, STRONG, MOID (*r), 0);
+       coerce_unit (p, &s);
+       FORWARD (*r);
+       coerce_struct_display (r, NEXT (p));
+     }
+ }
+ 
+ /* Coerce collateral.  */
+ 
+ static void
+ coerce_collateral (NODE_T *p, SOID_T *q)
+ {
+   if (!(a68_whether (p, BEGIN_SYMBOL, END_SYMBOL, STOP)
+ 	|| a68_whether (p, OPEN_SYMBOL, CLOSE_SYMBOL, STOP)))
+     {
+       if (IS (MOID (q), STRUCT_SYMBOL))
+ 	{
+ 	  PACK_T *t = PACK (MOID (q));
+ 	  coerce_struct_display (&t, p);
+ 	}
+       else if (IS_FLEX (MOID (q)))
+ 	{
+ 	  SOID_T w;
+ 	  a68_make_soid (&w, STRONG, SLICE (SUB_MOID (q)), 0);
+ 	  coerce_unit_list (p, &w);
+ 	}
+       else if (IS_ROW (MOID (q)))
+ 	{
+ 	  SOID_T w;
+ 	  a68_make_soid (&w, STRONG, SLICE (MOID (q)), 0);
+ 	  coerce_unit_list (p, &w);
+ 	}
+       else
+ 	{
+ 	  /* if (MOID (q) != M_VOID).  */
+ 	  coerce_unit_list (p, q);
+ 	}
+     }
+ }
+ 
+ /* Coerce_enclosed.  */
+ 
+ static void
+ coerce_enclosed (NODE_T *p, SOID_T *q)
+ {
+   if (IS (p, ENCLOSED_CLAUSE))
+     coerce_enclosed (SUB (p), q);
+   else if (IS (p, CLOSED_CLAUSE))
+     coerce_closed (SUB (p), q);
+   else if (IS (p, COLLATERAL_CLAUSE))
+     coerce_collateral (SUB (p), q);
+   else if (IS (p, ACCESS_CLAUSE))
+     coerce_access (SUB (p), q);
+   else if (IS (p, PARALLEL_CLAUSE))
+     coerce_collateral (SUB (NEXT_SUB (p)), q);
+   else if (IS (p, CONDITIONAL_CLAUSE))
+     coerce_conditional (SUB (p), q);
+   else if (IS (p, CASE_CLAUSE))
+     coerce_int_case (SUB (p), q);
+   else if (IS (p, CONFORMITY_CLAUSE))
+     coerce_united_case (SUB (p), q);
+   else if (IS (p, LOOP_CLAUSE))
+     coerce_loop (SUB (p));
+ 
+   MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+ }
+ 
+ /* Get monad moid.  */
+ 
+ static MOID_T *
+ get_monad_moid (NODE_T *p)
+ {
+   if (TAX (p) != NO_TAG && TAX (p) != A68_PARSER (error_tag))
+     {
+       MOID (p) = MOID (TAX (p));
+       return MOID (PACK (MOID (p)));
+     }
+   else
+     return M_ERROR;
+ }
+ 
+ /* Coerce monad oper.  */
+ 
+ static void
+ coerce_monad_oper (NODE_T *p, SOID_T *q)
+ {
+   if (p != NO_NODE)
+     {
+       SOID_T z;
+       a68_make_soid (&z, FIRM, MOID (PACK (MOID (TAX (p)))), 0);
+       A68_INSERT_COERCIONS (NEXT (p), MOID (q), &z);
+     }
+ }
+ 
+ /* Coerce monad formula.  */
+ 
+ static void
+ coerce_monad_formula (NODE_T *p)
+ {
+   SOID_T e;
+   a68_make_soid (&e, STRONG, get_monad_moid (p), 0);
+   coerce_operand (NEXT (p), &e);
+   coerce_monad_oper (p, &e);
+ }
+ 
+ /* Coerce operand.  */
+ 
+ static void
+ coerce_operand (NODE_T *p, SOID_T *q)
+ {
+   if (IS (p, MONADIC_FORMULA))
+     {
+       coerce_monad_formula (SUB (p));
+       if (MOID (p) != MOID (q))
+ 	{
+ 	  a68_make_sub (p, p, FORMULA);
+ 	  A68_INSERT_COERCIONS (p, MOID (p), q);
+ 	  a68_make_sub (p, p, TERTIARY);
+ 	}
+       MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+     }
+   else if (IS (p, FORMULA))
+     {
+       coerce_formula (SUB (p), q);
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+       MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+     }
+   else if (IS (p, SECONDARY))
+     {
+       coerce_unit (SUB (p), q);
+       MOID (p) = MOID (SUB (p));
+     }
+ }
+ 
+ /* Coerce formula.  */
+ 
+ static void
+ coerce_formula (NODE_T *p, SOID_T *q __attribute__ ((unused)))
+ {
+   if (IS (p, MONADIC_FORMULA) && NEXT (p) == NO_NODE)
+     coerce_monad_formula (SUB (p));
+   else
+     {
+       if (TAX (NEXT (p)) != NO_TAG && TAX (NEXT (p)) != A68_PARSER (error_tag))
+ 	{
+ 	  SOID_T s;
+ 	  NODE_T *op = NEXT (p), *nq = NEXT_NEXT (p);
+ 	  MOID_T *w = MOID (op);
+ 	  MOID_T *u = MOID (PACK (w)), *v = MOID (NEXT (PACK (w)));
+ 	  a68_make_soid (&s, STRONG, u, 0);
+ 	  coerce_operand (p, &s);
+ 	  a68_make_soid (&s, STRONG, v, 0);
+ 	  coerce_operand (nq, &s);
+ 	}
+     }
+ }
+ 
+ /* Coerce assignation.  */
+ 
+ static void
+ coerce_assignation (NODE_T *p)
+ {
+   SOID_T w;
+   a68_make_soid (&w, SOFT, MOID (p), 0);
+   coerce_unit (SUB (p), &w);
+   a68_make_soid (&w, STRONG, SUB_MOID (p), 0);
+   coerce_unit (NEXT_NEXT (p), &w);
+ }
+ 
+ /* Coerce relation.  */
+ 
+ static void
+ coerce_relation (NODE_T *p)
+ {
+   SOID_T w;
+   a68_make_soid (&w, STRONG, MOID (p), 0);
+   coerce_unit (SUB (p), &w);
+   a68_make_soid (&w, STRONG, MOID (NEXT_NEXT (p)), 0);
+   coerce_unit (SUB (NEXT_NEXT (p)), &w);
+ }
+ 
+ /* Coerce bool function.  */
+ 
+ static void
+ coerce_bool_function (NODE_T *p)
+ {
+   SOID_T w;
+   a68_make_soid (&w, STRONG, M_BOOL, 0);
+   coerce_unit (SUB (p), &w);
+   coerce_unit (SUB (NEXT_NEXT (p)), &w);
+ }
+ 
+ /* Coerce assertion.  */
+ 
+ static void
+ coerce_assertion (NODE_T *p)
+ {
+   SOID_T w;
+   a68_make_soid (&w, MEEK, M_BOOL, 0);
+   coerce_enclosed (SUB_NEXT (p), &w);
+ }
+ 
+ /* Coerce selection.  */
+ 
+ static void
+ coerce_selection (NODE_T * p)
+ {
+   SOID_T w;
+   a68_make_soid (&w, STRONG, MOID (NEXT (p)), 0);
+   coerce_unit (SUB_NEXT (p), &w);
+ }
+ 
+ /* Coerce cast.  */
+ 
+ static void
+ coerce_cast (NODE_T * p)
+ {
+   coerce_declarer (p);
+   SOID_T w;
+   a68_make_soid (&w, STRONG, MOID (p), 0);
+   coerce_enclosed (NEXT (p), &w);
+ }
+ 
+ /* Coerce argument list.  */
+ 
+ static void
+ coerce_argument_list (PACK_T **r, NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, ARGUMENT_LIST))
+ 	coerce_argument_list (r, SUB (p));
+       else if (IS (p, UNIT))
+ 	{
+ 	  SOID_T s;
+ 	  a68_make_soid (&s, STRONG, MOID (*r), 0);
+ 	  coerce_unit (p, &s);
+ 	  FORWARD (*r);
+ 	}
+       else if (IS (p, TRIMMER))
+ 	FORWARD (*r);
+     }
+ }
+ 
+ /* Coerce call.  */
+ 
+ static void
+ coerce_call (NODE_T *p)
+ {
+   MOID_T *proc = MOID (p);
+   SOID_T w;
+   a68_make_soid (&w, MEEK, proc, 0);
+   coerce_unit (SUB (p), &w);
+   FORWARD (p);
+   PACK_T *t = PACK (proc);
+   coerce_argument_list (&t, SUB (p));
+ }
+ 
+ /* Coerce meek int.  */
+ 
+ static void
+ coerce_meek_int (NODE_T *p)
+ {
+   SOID_T x;
+   a68_make_soid (&x, MEEK, M_INT, 0);
+   coerce_unit (p, &x);
+ }
+ 
+ /* Coerce trimmer.  */
+ 
+ static void
+ coerce_trimmer (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  coerce_meek_int (p);
+ 	  coerce_trimmer (NEXT (p));
+ 	}
+       else
+ 	coerce_trimmer (NEXT (p));
+     }
+ }
+ 
+ /* Coerce indexer.  */
+ 
+ static void
+ coerce_indexer (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, TRIMMER))
+ 	coerce_trimmer (SUB (p));
+       else if (IS (p, UNIT))
+ 	coerce_meek_int (p);
+       else
+ 	{
+ 	  coerce_indexer (SUB (p));
+ 	  coerce_indexer (NEXT (p));
+ 	}
+     }
+ }
+ 
+ /* Coerce_slice.  */
+ 
+ static void
+ coerce_slice (NODE_T *p)
+ {
+   SOID_T w;
+   MOID_T *row = MOID (p);
+   a68_make_soid (&w, STRONG, row, 0);
+   coerce_unit (SUB (p), &w);
+   coerce_indexer (SUB_NEXT (p));
+ }
+ 
+ /* Coerce format text.  */
+ 
+ static void
+ coerce_format_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       coerce_format_text (SUB (p));
+       if (IS (p, FORMAT_PATTERN))
+ 	{
+ 	  SOID_T x;
+ 	  a68_make_soid (&x, STRONG, M_FORMAT, 0);
+ 	  coerce_enclosed (SUB (NEXT_SUB (p)), &x);
+ 	}
+       else if (IS (p, GENERAL_PATTERN) && NEXT_SUB (p) != NO_NODE)
+ 	{
+ 	  SOID_T x;
+ 	  a68_make_soid (&x, STRONG, M_ROW_INT, 0);
+ 	  coerce_enclosed (SUB (NEXT_SUB (p)), &x);
+ 	}
+       else if (IS (p, DYNAMIC_REPLICATOR))
+ 	{
+ 	  SOID_T x;
+ 	  a68_make_soid (&x, STRONG, M_INT, 0);
+ 	  coerce_enclosed (SUB (NEXT_SUB (p)), &x);
+ 	}
+     }
+ }
+ 
+ /* Coerce unit.  */
+ 
+ static void
+ coerce_unit (NODE_T *p, SOID_T *q)
+ {
+   if (p == NO_NODE)
+     return;
+   else if (a68_is_one_of (p, UNIT, TERTIARY, SECONDARY, PRIMARY, STOP))
+     {
+       coerce_unit (SUB (p), q);
+       MOID (p) = MOID (SUB (p));
+       /* Ex primary.  */
+     }
+   else if (IS (p, CALL))
+     {
+       coerce_call (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, SLICE))
+     {
+       coerce_slice (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, CAST))
+     {
+       coerce_cast (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (a68_is_one_of (p, DENOTATION, IDENTIFIER, STOP))
+     A68_INSERT_COERCIONS (p, MOID (p), q);
+   else if (IS (p, FORMAT_TEXT))
+     {
+       coerce_format_text (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, ENCLOSED_CLAUSE))
+     {
+       coerce_enclosed (p, q);
+       /* Ex secondary.  */
+     }
+   else if (IS (p, SELECTION))
+     {
+       coerce_selection (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, GENERATOR))
+     {
+       coerce_declarer (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+       /* Ex tertiary.  */
+     }
+   else if (IS (p, NIHIL))
+     {
+       if (ATTRIBUTE (MOID (q)) != REF_SYMBOL && MOID (q) != M_VOID)
+ 	a68_error (p, "context does not require a name");
+       MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+     }
+   else if (IS (p, FORMULA))
+     {
+       coerce_formula (SUB (p), q);
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, JUMP))
+     {
+       if (MOID (q) == M_PROC_VOID)
+ 	a68_make_sub (p, p, PROCEDURING);
+       MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+     }
+   else if (IS (p, SKIP))
+     MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+   else if (IS (p, ASSIGNATION))
+     {
+       coerce_assignation (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+       MOID (p) = a68_depref_rows (MOID (p), MOID (q));
+     }
+   else if (IS (p, IDENTITY_RELATION))
+     {
+       coerce_relation (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, ROUTINE_TEXT))
+     {
+       coerce_routine_text (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (a68_is_one_of (p, AND_FUNCTION, OR_FUNCTION, STOP))
+     {
+       coerce_bool_function (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+   else if (IS (p, ASSERTION))
+     {
+       coerce_assertion (SUB (p));
+       A68_INSERT_COERCIONS (p, MOID (p), q);
+     }
+ }
+ 
+ /* Coerce module text.  */
+ 
+ static void
+ coerce_module_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEF_PART) || IS (p, POSTLUDE_PART))
+ 	{
+ 	  SOID_T w;
+ 	  a68_make_soid (&w, STRONG, M_VOID, 0);
+ 	  coerce_serial (NEXT_SUB (p), &w, true);
+ 	}
+     }
+ }
+ 
+ /* Coerce module declaration.  */
+ 
+ static void
+ coerce_module_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, MODULE_TEXT))
+ 	coerce_module_text (SUB (p));
+       else
+ 	coerce_module_declaration (SUB (p));
+     }
+ }	  
+ 
+ /* Driver for coercion insertions.  */
+ 
+ void
+ a68_coercion_inserter (NODE_T *p)
+ {
+   if (IS (p, PACKET))
+     {
+       p = SUB (p);
+       if (IS (p, PARTICULAR_PROGRAM))
+ 	{
+ 	  SOID_T q;
+ 	  a68_make_soid (&q, STRONG, M_VOID, 0);
+ 	  coerce_enclosed (SUB (p), &q);
+ 	}
+       else if (IS (p, PRELUDE_PACKET))
+ 	coerce_module_declaration (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-moids-equivalence.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-equivalence.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-moids-equivalence.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-moids-equivalence.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,187 ----
+ /* Prove equivalence of modes.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /* Routines for establishing equivalence of modes.
+    After I made this mode equivalencer (in 1993), I found:
+ 
+    Algol Bulletin 30.3.3 C.H.A. Koster: On infinite modes, 86-89 [1969],
+ 
+    which essentially concurs with this test on mode equivalence I wrote.
+    It is elementary logic anyway: prove equivalence, assuming equivalence.  */
+ 
+ /* Forward declarations of some of the functions defined below.  */
+ 
+ static bool are_modes_equivalent (MOID_T * a, MOID_T * b);
+ 
+ /* Whether packs are equivalent, same sequence of equivalence modes.  */
+ 
+ static bool
+ are_packs_equivalent (PACK_T *s, PACK_T *t,
+ 		      bool compare_names = true)
+ {
+   for (; s != NO_PACK && t != NO_PACK; s = s->next, t = t->next)
+     {
+       if (!are_modes_equivalent (MOID (s), MOID (t)))
+ 	return false;
+       if (compare_names)
+ 	{
+ 	  /* Note that a name in a pack of a struct may be NULL if the
+ 	     corresponding field is supposed to not be accessible by the user.
+ 	     There is at present one instance of this: the standard prelude
+ 	   */
+ 	  if (TEXT (s) != TEXT (t)
+ 	      && !(TEXT (s) != NO_TEXT
+ 		   && TEXT (t) != NO_TEXT
+ 		   && strcmp (TEXT (s), TEXT (t)) == 0))
+ 	    return false;
+ 	}
+     }
+ 
+   return s == NO_PACK && t == NO_PACK;
+ }
+ 
+ /* Whether packs are subsets.  */
+ 
+ static bool
+ is_united_subset (PACK_T *s, PACK_T *t)
+ {
+   /* For all modes in 's' there must be an equivalent in 't'.  */
+   for (PACK_T *p = s; p != NO_PACK; p = p->next)
+     {
+       bool f = false;
+       for (PACK_T *q = t; q != NO_PACK && !f; q = q->next)
+ 	f = are_modes_equivalent (MOID (p), MOID (q));
+ 
+       if (!f)
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Whether packs are subsets.  */
+ 
+ static bool
+ are_united_packs_equivalent (PACK_T *s, PACK_T *t)
+ {
+   return is_united_subset (s, t) && is_united_subset (t, s);
+ }
+ 
+ /* Whether moids A and B are structurally equivalent.  */
+ 
+ static bool
+ are_modes_equivalent (MOID_T * a, MOID_T * b)
+ {
+   /* First lets try some cheap heuristics.  */
+ 
+   if (a == NO_MOID || b == NO_MOID)
+     /* Modes can be NO_MOID in partial argument lists.  */
+     return false;
+   else if (a == M_ERROR || b == M_ERROR)
+     return false;
+   else if (a == b)
+     return true;
+   else if (ATTRIBUTE (a) != ATTRIBUTE (b))
+     return false;
+   else if (DIM (a) != DIM (b))
+     return false;
+   else if (IS (a, STANDARD))
+     return (a == b);
+   else if (EQUIVALENT (a) == b || EQUIVALENT (b) == a)
+     return true;
+   else if (a68_is_postulated_pair (A68 (top_postulate), a, b)
+ 	   || a68_is_postulated_pair (A68 (top_postulate), b, a))
+     return true;
+   else if (IS (a, INDICANT))
+     {
+       if (NODE (a) == NO_NODE || NODE (b) == NO_NODE)
+ 	return false;
+       else
+ 	return (NODE (a) == NODE (b)
+ 		|| strcmp (NSYMBOL (NODE (a)), NSYMBOL (NODE (b))) == 0);
+     }
+ 
+   /* Investigate structure.  */
+ 
+   /* We now know that 'a' and 'b' have same attribute, dimension, ...  */
+   if (IS (a, REF_SYMBOL))
+     /* REF MODE  */
+     return are_modes_equivalent (a->sub, b->sub);
+   else if (IS (a, ROW_SYMBOL))
+     /* [] MODE  */
+     return are_modes_equivalent (a->sub, b->sub);
+   else if (IS (a, FLEX_SYMBOL))
+     /* FLEX [...] MODE  */
+     return are_modes_equivalent (a->sub, b->sub);
+   else if (IS (a, STRUCT_SYMBOL))
+     {
+       /* STRUCT (...)  */
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       bool z = are_packs_equivalent (PACK (a), PACK (b));
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return z;
+     }
+   else if (IS (a, UNION_SYMBOL))
+     /* UNION (...)  */
+     return are_united_packs_equivalent (PACK (a), PACK (b));
+   else if (IS (a, PROC_SYMBOL) && PACK (a) == NO_PACK && PACK (b) == NO_PACK)
+     /* PROC MOID  */
+     return are_modes_equivalent (a->sub, b->sub);
+   else if (IS (a, PROC_SYMBOL) && PACK (a) != NO_PACK && PACK (b) != NO_PACK)
+     {
+       /* PROC (...) MOID  */
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       bool z = are_modes_equivalent (a->sub, b->sub);
+       if (z)
+ 	z = are_packs_equivalent (PACK (a), PACK (b),
+ 				  false /* compare_names */);
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return z;
+     }
+   else if (IS (a, SERIES_MODE) || IS (a, STOWED_MODE))
+     /* Modes occurring in displays.  */
+     return are_packs_equivalent (PACK (a), PACK (b));
+ 
+   return false;
+ }
+ 
+ //! @brief Whether two modes are structurally equivalent.
+ 
+ bool
+ a68_prove_moid_equivalence (MOID_T *p, MOID_T *q)
+ {
+ // Prove two modes to be equivalent under assumption that they indeed are.
+   POSTULATE_T *save = A68 (top_postulate);
+   bool z = are_modes_equivalent (p, q);
+   a68_free_postulate_list (A68 (top_postulate), save);
+   A68 (top_postulate) = save;
+   return z;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-pragmat.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-pragmat.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-pragmat.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-pragmat.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,207 ----
+ /* Handling of compiler pragmats.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /* Utility macros useful for parsing pragmat contents.  */
+ 
+ #define SKIP_WHITESPACES(P)			\
+   while (ISSPACE (*(P))) (P)++
+ 
+ #define PARSE_WORD(P,W)					\
+   do							\
+     {							\
+       (W) = (char *) alloca (strlen ((P)));		\
+       size_t i = 0;					\
+       while (ISALPHA (*(P)))				\
+ 	(W)[i++] = *((P)++);				\
+       (W)[i] = '\0';					\
+     } while (0)
+ 
+ /* Parse a string denotation and return its value in an allocated buffer in
+    *STR.  It is up to the caller to dispose of the allocated memory.
+ 
+    This function returns a pointer to the character following the string
+    denotation in P, or P in case of parse error.
+ 
+    In case of parse error *STR is also set to NULL.  */
+ 
+ const char *
+ parse_string_denotation (const char *p, char **str)
+ {
+   const char *orig = p;
+   size_t i = 0;
+   char *s = (char *) xmalloc (2 * strlen (p));
+ 
+   if (*(p++) != '\"')
+     goto error;
+   while (*p != '\0' && *p != '\"')
+     {
+       if (*p == '\'' && *(p + 1) == '\"')
+ 	{
+ 	  s[i++] = '\"';
+ 	  p += 2;
+ 	}
+       else
+ 	{
+ 	  s[i++] = *p;
+ 	  p++;
+ 	}
+     }
+   if (*p != '\"')
+     goto error;
+ 
+   *str = s;
+   return p + 1;
+  error:
+   free (s);
+   *str = NULL;
+   return orig;
+ }
+ 
+ /* PR access MODULE in "filename" PR  */
+ 
+ const char *
+ handle_access_in_pragmat (NODE_T *p, const char *pragmat, size_t pos)
+ {
+   const char *beginning = pragmat;
+ 
+   SKIP_WHITESPACES (pragmat);
+   /* Parse module name.  */
+   char *module;
+   PARSE_WORD (pragmat, module);
+   if (*module == '\0')
+     {
+       a68_error (p, "invalid pragmat: expected module name after %<access%>");
+       return NULL;
+     }
+   SKIP_WHITESPACES (pragmat);
+   /* Parse "in " */
+   if (strncmp (pragmat, "in ", 3) != 0)
+     {
+       a68_error (p, "invalid pragmat: expected %<in%> after module name");
+       return NULL;
+     }
+   pragmat += 3;
+   SKIP_WHITESPACES (pragmat);
+   /* Parse a string denotation.  */
+   char *filename;
+   pragmat = parse_string_denotation (pragmat, &filename);
+   if (filename == NULL)
+     {
+       size_t off = pos + pragmat - beginning;
+       char *found;
+       PARSE_WORD (pragmat, found);
+       a68_error_in_pragmat (p, off,
+ 			    "in %<access%> pragmat, expected string, found %qs",
+ 			    found);
+       return NULL;
+     }
+ 
+   /* Normalize module indicant to upper-case.  */
+   for (char *q = module; *q; ++q)
+     *q = TOUPPER (*q);
+ 
+   /* Add entry in the module files map.  */
+   const char **pmodule = A68_MODULE_FILES->get (module);
+   if (pmodule != NULL)
+     {
+       a68_error_in_pragmat (p, pos + pragmat - beginning,
+ 			    "module %qs cannot appear in multiple %<access%> pragmats",
+ 			    module);
+       return NULL;
+     }
+ 
+   SKIP_WHITESPACES (pragmat);
+   /* Skip closing PR or PRAGMAT.  */
+   if (NPRAGMAT_TYPE (p) == STYLE_I_PRAGMAT_SYMBOL)
+     pragmat += 2;
+   else
+     pragmat += 7;
+ 
+   A68_MODULE_FILES->put (ggc_strdup (module), ggc_strdup (filename));
+   free (filename);
+   return pragmat;
+ }
+ 
+ /* Parse and action on a pragmat.  */
+ 
+ void
+ handle_pragmat (NODE_T *p)
+ {
+   const char *pragmat = NPRAGMAT (p);
+   if (pragmat != NULL
+       && (NPRAGMAT_TYPE (p) == STYLE_I_PRAGMAT_SYMBOL
+ 	  || NPRAGMAT_TYPE (p) == BOLD_PRAGMAT_SYMBOL))
+     {
+       /* Process pragmat commands.  */
+       do
+ 	{
+ 	  SKIP_WHITESPACES (pragmat);
+ 	  /* Skip PR or PRAGMAT.  */
+ 	  if (NPRAGMAT_TYPE (p) == STYLE_I_PRAGMAT_SYMBOL)
+ 	    pragmat += 2;
+ 	  else
+ 	    pragmat += 7;
+ 	  SKIP_WHITESPACES (pragmat);
+ 	  /* Get first word in pragmat and dispatch.  */
+ 	  SKIP_WHITESPACES (pragmat);
+ 	  char *word = (char *) alloca (strlen (pragmat));
+ 	  size_t i = 0;
+ 	  while (ISALPHA (*pragmat) || *pragmat == '\n')
+ 	    word[i++] = *(pragmat++);
+ 	  word[i] = '\0';
+ 
+ 	  if (strcmp (word, "access") == 0)
+ 	    {
+ 	      pragmat
+ 		= handle_access_in_pragmat (p, pragmat, pragmat - NPRAGMAT (p));
+ 	      if (pragmat == NULL)
+ 		break;
+ 	    }
+ 	  else if (strcmp (word, "include") == 0)
+ 	    /* Include pragmats are handled in the scanner.  */
+ 	    return;
+ 	  else
+ 	    {
+ 	      a68_error_in_pragmat (p, pragmat - NPRAGMAT (p),
+ 				    "unrecognized pragmat %qs", word);
+ 	      break;
+ 	    }
+ 	}
+       while (*pragmat != '\0');
+     }
+ }
+ 
+ /* Entry point: handle all pragmats in the given parse tree.  */
+ 
+ void
+ a68_handle_pragmats (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       a68_handle_pragmats (SUB (p));
+       handle_pragmat (p);
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-prelude.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-prelude.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-prelude.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-prelude.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1423 ----
+ /* Standard prelude definitions.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ 
+ #define A68_STD true
+ #define A68_EXT false
+ 
+ /* ALGOL68C type procs. */
+ 
+ #define A68C_DEFIO(name, mode)					\
+   do								\
+     {								\
+       m = a68_proc (MODE (mode), M_REF_FILE, NO_MOID);		\
+       a68_idf (A68_EXT, "get" #name, m);			\
+       m = a68_proc (M_VOID, M_REF_FILE, MODE (mode), NO_MOID);	\
+       a68_idf (A68_EXT, "put" #name, m);			\
+       m = a68_proc (MODE (mode), NO_MOID);			\
+       a68_idf (A68_EXT, "read" #name, m);			\
+       m = a68_proc (M_VOID, MODE (mode), NO_MOID);		\
+       a68_idf (A68_EXT, "print" #name, m);			\
+     }								\
+   while (0)
+ 
+ /* Enter tag in standenv symbol table.  */
+ 
+ static void
+ add_a68_standenv (bool portable, int a, NODE_T* n, char *c, MOID_T *m,
+ 		  int p, LOWERER_T l = LOWERER_UNIMPL)
+ {
+ #define INSERT_TAG(l, n) \
+   do {			 \
+     NEXT (n) = *(l);	 \
+     *(l) = (n);		 \
+   } while (0)
+ 
+   TAG_T *new_one = a68_new_tag ();
+ 
+   PROCEDURE_LEVEL (INFO (n)) = 0;
+   USE (new_one) = false;
+   HEAP (new_one) = HEAP_SYMBOL;
+   TAG_TABLE (new_one) = A68_STANDENV;
+   NODE (new_one) = n;
+   if (c != NO_TEXT)
+     VALUE (new_one) = TEXT (a68_add_token (&A68 (top_token), c));
+   else
+     VALUE (new_one) = NO_TEXT;
+   PRIO (new_one) = p;
+   TAX_TREE_DECL (new_one) = NULL;
+   LOWERER (new_one) = l;
+   UNIT (new_one) = NULL;
+   PORTABLE (new_one) = portable;
+   MOID (new_one) = m;
+   NEXT (new_one) = NO_TAG;
+   if (a == IDENTIFIER)
+     INSERT_TAG (&IDENTIFIERS (A68_STANDENV), new_one);
+   else if (a == OP_SYMBOL)
+     INSERT_TAG (&OPERATORS (A68_STANDENV), new_one);
+   else if (a == PRIO_SYMBOL)
+     INSERT_TAG (&PRIO (A68_STANDENV), new_one);
+   else if (a == INDICANT)
+     INSERT_TAG (&INDICANTS (A68_STANDENV), new_one);
+   else if (a == LABEL)
+     INSERT_TAG (&LABELS (A68_STANDENV), new_one);
+ #undef INSERT_TAG
+ }
+ 
+ /* Compose PROC moid from arguments - first result, than arguments.  */
+ 
+ static MOID_T *
+ a68_proc (MOID_T *m, ...)
+ {
+   PACK_T *p = NO_PACK, *q = NO_PACK;
+   MOID_T *y;
+ 
+   va_list attribute;
+   va_start (attribute, m);
+   while ((y = va_arg (attribute, MOID_T *)) != NO_MOID)
+     {
+       PACK_T *new_one = a68_new_pack ();
+ 
+       MOID (new_one) = y;
+       TEXT (new_one) = NO_TEXT;
+       NEXT (new_one) = NO_PACK;
+       if (q != NO_PACK)
+ 	NEXT (q) = new_one;
+       else
+ 	p = new_one;
+       q = new_one;
+     }
+ 
+   va_end (attribute);
+   return a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL,
+ 		   a68_count_pack_members (p), NO_NODE, m, p);
+ }
+ 
+ /* Enter an identifier in standenv.  */
+ 
+ static void
+ a68_idf (bool portable, const char *n, MOID_T *m, LOWERER_T l = LOWERER_UNIMPL)
+ {
+   add_a68_standenv (portable, IDENTIFIER,
+ 		    a68_some_node (TEXT (a68_add_token (&A68 (top_token), n))),
+ 		    NO_TEXT, m, 0, l);
+ }
+ 
+ /* Enter a moid in standenv.  */
+ 
+ static void
+ a68_mode (int p, const char *t, MOID_T **m)
+ {
+   (*m) = a68_add_mode (&TOP_MOID (&A68_JOB),
+ 		   STANDARD, p,
+ 		   a68_some_node (TEXT (a68_find_keyword (A68 (top_keyword), t))),
+ 		   NO_MOID, NO_PACK);
+ }
+ 
+ /* Enter a priority in standenv.  */
+ 
+ static void
+ a68_prio (const char *p, int b)
+ {
+   add_a68_standenv (true, PRIO_SYMBOL,
+ 		    a68_some_node (TEXT (a68_add_token (&A68 (top_token), p))),
+ 		    NO_TEXT, NO_MOID, b, LOWERER_UNIMPL);
+ }
+ 
+ /* Enter operator in standenv.  */
+ 
+ static void
+ a68_op (bool portable, const char *n, MOID_T *m, LOWERER_T l = LOWERER_UNIMPL)
+ {
+   add_a68_standenv (portable, OP_SYMBOL,
+ 		    a68_some_node (TEXT (a68_add_token (&A68 (top_token), n))),
+ 		    NO_TEXT, m, 0, l);
+ }
+ 
+ /* Enter standard modes in standenv.  */
+ 
+ static void
+ stand_moids (void)
+ {
+   /* Primitive A68 moids.  */
+   a68_mode (0, "VOID", &M_VOID);
+   /* Standard precision.  */
+   a68_mode (0, "INT", &M_INT);
+   a68_mode (0, "REAL", &M_REAL);
+   a68_mode (0, "COMPL", &M_COMPLEX);
+   a68_mode (0, "BITS", &M_BITS);
+   a68_mode (0, "BYTES", &M_BYTES);
+   /* Multiple precision.  */
+   a68_mode (-2, "INT", &M_SHORT_SHORT_INT);
+   a68_mode (-2, "BITS", &M_SHORT_SHORT_BITS);
+   a68_mode (-1, "INT", &M_SHORT_INT);
+   a68_mode (-1, "BITS", &M_SHORT_BITS);
+   a68_mode (1, "INT", &M_LONG_INT);
+   a68_mode (1, "REAL", &M_LONG_REAL);
+   a68_mode (1, "COMPL", &M_LONG_COMPLEX);
+   a68_mode (1, "BITS", &M_LONG_BITS);
+   a68_mode (1, "BYTES", &M_LONG_BYTES);
+   a68_mode (2, "REAL", &M_LONG_LONG_REAL);
+   a68_mode (2, "INT", &M_LONG_LONG_INT);
+   a68_mode (2, "BITS", &M_LONG_LONG_BITS);
+   a68_mode (2, "COMPL", &M_LONG_LONG_COMPLEX);
+   /* Other.  */
+   a68_mode (0, "BOOL", &M_BOOL);
+   a68_mode (0, "CHAR", &M_CHAR);
+   a68_mode (0, "STRING", &M_STRING);
+   a68_mode (0, "FILE", &M_FILE);
+   a68_mode (0, "CHANNEL", &M_CHANNEL);
+   a68_mode (0, "SEMA", &M_SEMA);
+   /* Rows.  */
+   M_ROWS = a68_add_mode (&TOP_MOID (&A68_JOB), ROWS_SYMBOL, 0, NO_NODE, NO_MOID, NO_PACK);
+   /* REFs.  */
+   M_REF_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_INT, NO_PACK);
+   M_REF_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_REAL, NO_PACK);
+   M_REF_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_COMPLEX, NO_PACK);
+   M_REF_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_BITS, NO_PACK);
+   M_REF_BYTES = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_BYTES, NO_PACK);
+   /* Multiple precision.  */
+   M_REF_LONG_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_INT, NO_PACK);
+   M_REF_LONG_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_REAL, NO_PACK);
+   M_REF_LONG_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_COMPLEX, NO_PACK);
+   M_REF_LONG_LONG_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_LONG_INT, NO_PACK);
+   M_REF_LONG_LONG_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_LONG_REAL, NO_PACK);
+   M_REF_LONG_LONG_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_LONG_COMPLEX, NO_PACK);
+   M_REF_LONG_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_BITS, NO_PACK);
+   M_REF_LONG_LONG_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_LONG_BITS, NO_PACK);
+   M_REF_LONG_BYTES = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_LONG_BYTES, NO_PACK);
+   M_REF_SHORT_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_SHORT_INT, NO_PACK);
+   M_REF_SHORT_SHORT_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_SHORT_SHORT_INT, NO_PACK
+ );
+   M_REF_SHORT_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_SHORT_BITS, NO_PACK);
+   M_REF_SHORT_SHORT_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_SHORT_SHORT_BITS, NO_PACK);
+   /* Other.  */
+   M_REF_BOOL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_BOOL, NO_PACK);
+   M_REF_CHAR = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_CHAR, NO_PACK);
+   M_REF_FILE = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_FILE, NO_PACK);
+   M_REF_REF_FILE = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_REF_FILE, NO_PACK);
+   /* [] INT.  */
+   M_ROW_INT = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_INT, NO_PACK);
+   HAS_ROWS (M_ROW_INT) = true;
+   SLICE (M_ROW_INT) = M_INT;
+   M_REF_ROW_INT = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_INT, NO_PACK);
+   NAME (M_REF_ROW_INT) = M_REF_INT;
+   /* [] REAL.  */
+   M_ROW_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_REAL, NO_PACK);
+   HAS_ROWS (M_ROW_REAL) = true;
+   SLICE (M_ROW_REAL) = M_REAL;
+   M_REF_ROW_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_REAL, NO_PACK);
+   NAME (M_REF_ROW_REAL) = M_REF_REAL;
+   /* [,] REAL.  */
+   M_ROW_ROW_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 2, NO_NODE, M_REAL, NO_PACK);
+   HAS_ROWS (M_ROW_ROW_REAL) = true;
+   SLICE (M_ROW_ROW_REAL) = M_ROW_REAL;
+   M_REF_ROW_ROW_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_ROW_REAL, NO_PACK);
+   NAME (M_REF_ROW_ROW_REAL) = M_REF_ROW_REAL;
+   /* [] COMPLEX.  */
+   M_ROW_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_COMPLEX, NO_PACK);
+   HAS_ROWS (M_ROW_COMPLEX) = true;
+   SLICE (M_ROW_COMPLEX) = M_COMPLEX;
+   M_REF_ROW_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_COMPLEX, NO_PACK);
+   NAME (M_REF_ROW_COMPLEX) = M_REF_COMPLEX;
+   /* [,] COMPLEX.  */
+   M_ROW_ROW_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 2, NO_NODE, M_COMPLEX, NO_PACK);
+   HAS_ROWS (M_ROW_ROW_COMPLEX) = true;
+   SLICE (M_ROW_ROW_COMPLEX) = M_ROW_COMPLEX;
+   M_REF_ROW_ROW_COMPLEX = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_ROW_COMPLEX, NO_PACK);
+   NAME (M_REF_ROW_ROW_COMPLEX) = M_REF_ROW_COMPLEX;
+   /* [] BOOL.  */
+   M_ROW_BOOL = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_BOOL, NO_PACK);
+   HAS_ROWS (M_ROW_BOOL) = true;
+   SLICE (M_ROW_BOOL) = M_BOOL;
+   /* FLEX [] BOOL.  */
+   MOID_T *m = a68_add_mode (&TOP_MOID (&A68_JOB), FLEX_SYMBOL, 0, NO_NODE, M_ROW_BOOL, NO_PACK);
+   HAS_ROWS (m) = true;
+   M_FLEX_ROW_BOOL = m;
+   /* [] BITS.  */
+   M_ROW_BITS = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_BITS, NO_PACK);
+   HAS_ROWS (M_ROW_BITS) = true;
+   SLICE (M_ROW_BITS) = M_BITS;
+   /* [] CHAR.  */
+   M_ROW_CHAR = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_CHAR, NO_PACK);
+   HAS_ROWS (M_ROW_CHAR) = true;
+   SLICE (M_ROW_CHAR) = M_CHAR;
+   /* [][] CHAR.  */
+   M_ROW_ROW_CHAR = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_ROW_CHAR, NO_PACK);
+   HAS_ROWS (M_ROW_ROW_CHAR) = true;
+   SLICE (M_ROW_ROW_CHAR) = M_ROW_CHAR;
+   /* MODE STRING = FLEX [] CHAR.  */
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), FLEX_SYMBOL, 0, NO_NODE, M_ROW_CHAR, NO_PACK);
+   HAS_ROWS (m) = true;
+   M_FLEX_ROW_CHAR = m;
+   EQUIVALENT (M_STRING) = m;
+   /* REF [] CHAR.  */
+   M_REF_ROW_CHAR = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, M_ROW_CHAR, NO_PACK);
+   NAME (M_REF_ROW_CHAR) = M_REF_CHAR;
+   /* PROC [] CHAR.  */
+   M_PROC_ROW_CHAR = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, 0, NO_NODE, M_ROW_CHAR, NO_PACK);
+   /* REF STRING = REF FLEX [] CHAR.  */
+   M_REF_STRING = a68_add_mode (&TOP_MOID (&A68_JOB), REF_SYMBOL, 0, NO_NODE, EQUIVALENT (M_STRING), NO_PACK);
+   NAME (M_REF_STRING) = M_REF_CHAR;
+   DEFLEXED (M_REF_STRING) = M_REF_ROW_CHAR;
+   /* [] STRING.  */
+   M_ROW_STRING = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_STRING, NO_PACK);
+   HAS_ROWS (M_ROW_STRING) = true;
+   SLICE (M_ROW_STRING) = M_STRING;
+   DEFLEXED (M_ROW_STRING) = M_ROW_ROW_CHAR;
+   /* PROC STRING.  */
+   M_PROC_STRING = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, 0, NO_NODE, M_STRING, NO_PACK);
+   DEFLEXED (M_PROC_STRING) = M_PROC_ROW_CHAR;
+   /* COMPLEX.  */
+   PACK_T *z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   EQUIVALENT (M_COMPLEX) = m;
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_REF_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   NAME (M_REF_COMPLEX) = m;
+   /* LONG COMPLEX.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   EQUIVALENT (M_LONG_COMPLEX) = m;
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_REF_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   NAME (M_REF_LONG_COMPLEX) = m;
+   /* LONG_LONG COMPLEX.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_LONG_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_LONG_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   EQUIVALENT (M_LONG_LONG_COMPLEX) = m;
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_LONG_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "im")), NO_NODE);
+   (void) a68_add_mode_to_pack (&z, M_REF_LONG_LONG_REAL, TEXT (a68_add_token (&A68 (top_token), "re")), NO_NODE);
+   m = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   NAME (M_REF_LONG_LONG_COMPLEX) = m;
+   /* SEMA.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_INT, NO_TEXT, NO_NODE);
+   EQUIVALENT (M_SEMA) = a68_add_mode (&TOP_MOID (&A68_JOB), STRUCT_SYMBOL, a68_count_pack_members (z), NO_NODE, NO_MOID, z);
+   /* PROC VOID.  */
+   z = NO_PACK;
+   M_PROC_VOID = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (z), NO_NODE, M_VOID, z);
+   /* PROC (REAL) REAL.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REAL, NO_TEXT, NO_NODE);
+   M_PROC_REAL_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (z), NO_NODE, M_REAL, z);
+   /* PROC (LONG_REAL) LONG_REAL.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_LONG_REAL, NO_TEXT, NO_NODE);
+   M_PROC_LONG_REAL_LONG_REAL = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (z), NO_NODE, M_LONG_REAL, z);
+   /* IO: PROC (REF FILE) BOOL.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_FILE, NO_TEXT, NO_NODE);
+   M_PROC_REF_FILE_BOOL = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (z), NO_NODE, M_BOOL, z);
+   /* IO: PROC (REF FILE) VOID.  */
+   z = NO_PACK;
+   (void) a68_add_mode_to_pack (&z, M_REF_FILE, NO_TEXT, NO_NODE);
+   M_PROC_REF_FILE_VOID = a68_add_mode (&TOP_MOID (&A68_JOB), PROC_SYMBOL, a68_count_pack_members (z), NO_NODE, M_VOID, z);
+   /* IO: SIMPLIN and SIMPLOUT.  */
+   M_SIMPLIN = a68_add_mode (&TOP_MOID (&A68_JOB), IN_TYPE_MODE, 0, NO_NODE, NO_MOID, NO_PACK);
+   M_ROW_SIMPLIN = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_SIMPLIN, NO_PACK);
+   SLICE (M_ROW_SIMPLIN) = M_SIMPLIN;
+   M_SIMPLOUT = a68_add_mode (&TOP_MOID (&A68_JOB), OUT_TYPE_MODE, 0, NO_NODE, NO_MOID, NO_PACK);
+   M_ROW_SIMPLOUT = a68_add_mode (&TOP_MOID (&A68_JOB), ROW_SYMBOL, 1, NO_NODE, M_SIMPLOUT, NO_PACK);
+   SLICE (M_ROW_SIMPLOUT) = M_SIMPLOUT;
+ }
+ 
+ /* Set up standenv - general RR including transput.  */
+ 
+ static void
+ stand_prelude (void)
+ {
+   /* Identifiers.  */
+   a68_idf (A68_STD, "intlengths", M_INT, a68_lower_intlengths);
+   a68_idf (A68_STD, "intshorths", M_INT, a68_lower_intshorths);
+   a68_idf (A68_STD, "maxint", M_INT, a68_lower_maxint);
+   a68_idf (A68_STD, "longmaxint", M_LONG_INT, a68_lower_maxint);
+   a68_idf (A68_STD, "longlongmaxint", M_LONG_LONG_INT, a68_lower_maxint);
+   a68_idf (A68_STD, "shortmaxint", M_SHORT_INT, a68_lower_maxint);
+   a68_idf (A68_STD, "shortshortmaxint", M_SHORT_SHORT_INT, a68_lower_maxint);
+   a68_idf (A68_STD, "maxreal", M_REAL, a68_lower_maxreal);
+   a68_idf (A68_STD, "longmaxreal", M_LONG_REAL, a68_lower_maxreal);
+   a68_idf (A68_STD, "longlongmaxreal", M_LONG_LONG_REAL, a68_lower_maxreal);
+   a68_idf (A68_STD, "smallreal", M_REAL, a68_lower_smallreal);
+   a68_idf (A68_STD, "longsmallreal", M_LONG_REAL, a68_lower_smallreal);
+   a68_idf (A68_STD, "longlongsmallreal", M_LONG_LONG_REAL, a68_lower_smallreal);
+   a68_idf (A68_STD, "reallengths", M_INT, a68_lower_reallengths);
+   a68_idf (A68_STD, "realshorths", M_INT, a68_lower_realshorths);
+   a68_idf (A68_STD, "bitslengths", M_INT, a68_lower_bitslengths);
+   a68_idf (A68_STD, "bitsshorths", M_INT, a68_lower_bitsshorths);
+   a68_idf (A68_STD, "bitswidth", M_INT, a68_lower_bitswidth);
+   a68_idf (A68_STD, "longbitswidth", M_INT, a68_lower_longbitswidth);
+   a68_idf (A68_STD, "longlongbitswidth", M_INT, a68_lower_longlongbitswidth);
+   a68_idf (A68_STD, "shortbitswidth", M_INT, a68_lower_shortbitswidth);
+   a68_idf (A68_STD, "shortshortbitswidth", M_INT, a68_lower_shortshortbitswidth);
+   a68_idf (A68_STD, "maxbits", M_BITS, a68_lower_maxbits);
+   a68_idf (A68_STD, "longmaxbits", M_LONG_BITS, a68_lower_maxbits);
+   a68_idf (A68_STD, "longlongmaxbits", M_LONG_LONG_BITS, a68_lower_maxbits);
+   a68_idf (A68_STD, "maxabschar", M_INT, a68_lower_maxabschar);
+   a68_idf (A68_STD, "pi", M_REAL, a68_lower_pi);
+   a68_idf (A68_STD, "longpi", M_LONG_REAL, a68_lower_pi);
+   a68_idf (A68_STD, "longlongpi", M_LONG_LONG_REAL, a68_lower_pi);
+   a68_idf (A68_STD, "compllengths", M_INT);
+   a68_idf (A68_STD, "complshorths", M_INT);
+   a68_idf (A68_STD, "byteslengths", M_INT);
+   a68_idf (A68_STD, "bytesshorths", M_INT);
+   a68_idf (A68_STD, "byteswidth", M_INT);
+   a68_idf (A68_STD, "longbyteswidth", M_INT);
+   a68_idf (A68_STD, "flip", M_CHAR, a68_lower_flip);
+   a68_idf (A68_STD, "flop", M_CHAR, a68_lower_flop);
+   a68_idf (A68_STD, "errorchar", M_CHAR, a68_lower_errorchar);
+   a68_idf (A68_STD, "nullcharacter", M_CHAR, a68_lower_nullcharacter);
+   a68_idf (A68_STD, "blank", M_CHAR, a68_lower_blank);
+   /* RNG procedures.  */
+   MOID_T *m = a68_proc (M_VOID, M_INT, NO_MOID);
+   a68_idf (A68_STD, "firstrandom", m);
+   /* REAL procedures.  */
+   m = A68_MCACHE (proc_real);
+   a68_idf (A68_STD, "nextrandom", m);
+   a68_idf (A68_STD, "random", m, a68_lower_random);
+   a68_idf (A68_STD, "rnd", m);
+   m = A68_MCACHE (proc_real_real);
+   a68_idf (A68_STD, "arccos", m, a68_lower_acos);
+   a68_idf (A68_STD, "arcsin", m, a68_lower_asin);
+   a68_idf (A68_STD, "arctan", m, a68_lower_atan);
+   a68_idf (A68_STD, "cos", m, a68_lower_cos);
+   a68_idf (A68_STD, "exp", m, a68_lower_exp);
+   a68_idf (A68_STD, "ln", m, a68_lower_ln);
+   a68_idf (A68_STD, "sin", m, a68_lower_sin);
+   a68_idf (A68_STD, "sqrt", m, a68_lower_sqrt);
+   a68_idf (A68_STD, "tan", m, a68_lower_tan);
+   /* LONG REAL procedures.  */
+   m = a68_proc (M_LONG_REAL, NO_MOID);
+   a68_idf (A68_STD, "longnextrandom", m);
+   a68_idf (A68_STD, "longrandom", m, a68_lower_longrandom);
+   m = a68_proc (M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_idf (A68_STD, "longarccos", m, a68_lower_long_acos);
+   a68_idf (A68_STD, "longarcsin", m, a68_lower_long_asin);
+   a68_idf (A68_STD, "longarctan", m, a68_lower_long_atan);
+   a68_idf (A68_STD, "longcos", m, a68_lower_long_cos);
+   a68_idf (A68_STD, "longexp", m, a68_lower_long_exp);
+   a68_idf (A68_STD, "longln", m, a68_lower_long_ln);
+   a68_idf (A68_STD, "longsin", m, a68_lower_long_sin);
+   a68_idf (A68_STD, "longsqrt", m, a68_lower_long_sqrt);
+   a68_idf (A68_STD, "longtan", m, a68_lower_long_tan);
+   /* LONG LONG REAL procedures.  */
+   m = a68_proc (M_LONG_LONG_REAL, NO_MOID);
+   a68_idf (A68_STD, "longlongnextrandom", m);
+   a68_idf (A68_STD, "longlongrandom", m, a68_lower_longlongrandom);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_idf (A68_STD, "longlongarccos", m, a68_lower_long_long_acos);
+   a68_idf (A68_STD, "longlongarcsin", m, a68_lower_long_long_asin);
+   a68_idf (A68_STD, "longlongarctan", m, a68_lower_long_long_atan);
+   a68_idf (A68_STD, "longlongcos", m, a68_lower_long_long_cos);
+   a68_idf (A68_STD, "longlongexp", m, a68_lower_long_long_exp);
+   a68_idf (A68_STD, "longlongln", m, a68_lower_long_long_ln);
+   a68_idf (A68_STD, "longlongsin", m, a68_lower_long_long_sin);
+   a68_idf (A68_STD, "longlongsqrt", m, a68_lower_long_long_sqrt);
+   a68_idf (A68_STD, "longlongtan", m, a68_lower_long_long_tan);
+   /* Priorities.  */
+   a68_prio ("+:=", 1);
+   a68_prio ("-:=", 1);
+   a68_prio ("*:=", 1);
+   a68_prio ("/:=", 1);
+   a68_prio ("%:=", 1);
+   a68_prio ("%*:=", 1);
+   a68_prio ("+=:", 1);
+   a68_prio ("PLUSAB", 1);
+   a68_prio ("MINUSAB", 1);
+   a68_prio ("TIMESAB", 1);
+   a68_prio ("DIVAB", 1);
+   a68_prio ("OVERAB", 1);
+   a68_prio ("MODAB", 1);
+   a68_prio ("PLUSTO", 1);
+   a68_prio ("OR", 2);
+   a68_prio ("AND", 3);
+   a68_prio ("XOR", 3);
+   a68_prio ("=", 4);
+   a68_prio ("/=", 4);
+   a68_prio ("<", 5);
+   a68_prio ("<=", 5);
+   a68_prio (">", 5);
+   a68_prio (">=", 5);
+   a68_prio ("EQ", 4);
+   a68_prio ("NE", 4);
+   a68_prio ("LT", 5);
+   a68_prio ("LE", 5);
+   a68_prio ("GT", 5);
+   a68_prio ("GE", 5);
+   a68_prio ("+", 6);
+   a68_prio ("-", 6);
+   a68_prio ("*", 7);
+   a68_prio ("/", 7);
+   a68_prio ("OVER", 7);
+   a68_prio ("%", 7);
+   a68_prio ("MOD", 7);
+   a68_prio ("%*", 7);
+   a68_prio ("ELEM", 7);
+   a68_prio ("**", 8);
+   a68_prio ("SHL", 8);
+   a68_prio ("SHR", 8);
+   a68_prio ("UP", 8);
+   a68_prio ("DOWN", 8);
+   a68_prio ("^", 8);
+   a68_prio ("LWB", 8);
+   a68_prio ("UPB", 8);
+   a68_prio ("I", 9);
+   a68_prio ("+*", 9);
+   /* BOOL operators.  */
+   m = a68_proc (M_BOOL, M_BOOL, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_not2);
+   a68_op (A68_STD, "~", m, a68_lower_not2);
+   m = a68_proc (M_INT, M_BOOL, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_boolabs2);
+   m = a68_proc (M_BOOL, M_BOOL, M_BOOL, NO_MOID);
+   a68_op (A68_STD, "OR", m, a68_lower_or3);
+   a68_op (A68_STD, "AND", m, a68_lower_and3);
+   a68_op (A68_STD, "=", m, a68_lower_bool_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bool_ne3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bool_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_bool_ne3);
+   /* CHAR operators.  */
+   m = a68_proc (M_BOOL, M_CHAR, M_CHAR, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_char_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_char_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_char_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_char_le3);
+   a68_op (A68_STD, ">", m, a68_lower_char_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_char_ge3);
+   a68_op (A68_STD, "EQ", m, a68_lower_char_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_char_ne3);
+   a68_op (A68_STD, "LT", m, a68_lower_char_lt3);
+   a68_op (A68_STD, "LE", m, a68_lower_char_le3);
+   a68_op (A68_STD, "GT", m, a68_lower_char_gt3);
+   a68_op (A68_STD, "GE", m, a68_lower_char_ge3);
+   m = a68_proc (M_INT, M_CHAR, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_charabs2);
+   m = a68_proc (M_CHAR, M_INT, NO_MOID);
+   a68_op (A68_STD, "REPR", m, a68_lower_repr2);
+   /* STRING operators.  */
+   m = a68_proc (M_BOOL, M_STRING, M_STRING, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_string_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_string_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_string_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_string_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_string_ge3);
+   a68_op (A68_STD, ">", m, a68_lower_string_gt3);
+   a68_op (A68_STD, "EQ", m, a68_lower_string_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_string_ne3);
+   a68_op (A68_STD, "LT", m, a68_lower_string_lt3);
+   a68_op (A68_STD, "LE", m, a68_lower_string_le3);
+   a68_op (A68_STD, "GE", m, a68_lower_string_ge3);
+   a68_op (A68_STD, "GT", m, a68_lower_string_gt3);
+   m = a68_proc (M_STRING, M_CHAR, M_CHAR, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_char_plus3);
+   m = a68_proc (M_STRING, M_STRING, M_STRING, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_string_plus3);
+   m = a68_proc (M_REF_STRING, M_REF_STRING, M_STRING, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_string_plusab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_string_plusab3);
+   m = a68_proc (M_REF_STRING, M_REF_STRING, M_INT, NO_MOID);
+   a68_op (A68_STD, "*:=", m, a68_lower_string_multab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_string_multab3);
+   m = a68_proc (M_REF_STRING, M_STRING, M_REF_STRING, NO_MOID);
+   a68_op (A68_STD, "+=:", m, a68_lower_string_plusto3);
+   a68_op (A68_STD, "PLUSTO", m, a68_lower_string_plusto3);
+   m = a68_proc (M_STRING, M_STRING, M_INT, NO_MOID);
+   a68_op (A68_STD, "*", m, a68_lower_string_mult3);
+   m = a68_proc (M_STRING, M_INT, M_STRING, NO_MOID);
+   a68_op (A68_STD, "*", m, a68_lower_string_mult3);
+   m = a68_proc (M_STRING, M_INT, M_CHAR, NO_MOID);
+   a68_op (A68_STD, "*", m, a68_lower_char_mult3);
+   m = a68_proc (M_STRING, M_CHAR, M_INT, NO_MOID);
+   a68_op (A68_STD, "*", m, a68_lower_char_mult3);
+   /* SHORT SHORT INT operators.  */
+   m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_intabs2);
+   m = a68_proc (M_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "SIGN", m, a68_lower_sign2);
+   m = a68_proc (M_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengint2);
+   m = a68_proc (M_BOOL, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "ODD", m, a68_lower_odd2);
+   m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_int);
+   a68_op (A68_STD, "-", m, a68_lower_minus_int);
+   a68_op (A68_STD, "*", m, a68_lower_mult_int);
+   a68_op (A68_STD, "OVER", m, a68_lower_over3);
+   a68_op (A68_STD, "%", m, a68_lower_over3);
+   a68_op (A68_STD, "MOD", m, a68_lower_mod3);
+   a68_op (A68_STD, "%*", m, a68_lower_mod3);
+   m = a68_proc (M_REF_SHORT_SHORT_INT, M_REF_SHORT_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "%:=", m, a68_lower_overab3);
+   a68_op (A68_STD, "%*:=", m, a68_lower_modab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
+   a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
+   m = a68_proc (M_BOOL, M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+   a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+   a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+   a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+   a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+   a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+   m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_SHORT_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_int);
+   a68_op (A68_STD, "^", m, a68_lower_pow_int);
+   /* SHORT INT operators.  */
+   m = a68_proc (M_SHORT_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_intabs2);
+   m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenint2);
+   m = a68_proc (M_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengint2);
+   a68_op (A68_STD, "SIGN", m, a68_lower_sign2);
+   m = a68_proc (M_BOOL, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "ODD", m, a68_lower_odd2);
+   m = a68_proc (M_SHORT_INT, M_SHORT_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_int);
+   a68_op (A68_STD, "-", m, a68_lower_minus_int);
+   a68_op (A68_STD, "*", m, a68_lower_mult_int);
+   a68_op (A68_STD, "OVER", m, a68_lower_over3);
+   a68_op (A68_STD, "%", m, a68_lower_over3);
+   a68_op (A68_STD, "MOD", m, a68_lower_mod3);
+   a68_op (A68_STD, "%*", m, a68_lower_mod3);
+   m = a68_proc (M_REF_SHORT_INT, M_REF_SHORT_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "%:=", m, a68_lower_overab3);
+   a68_op (A68_STD, "%*:=", m, a68_lower_modab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
+   a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
+   m = a68_proc (M_BOOL, M_SHORT_INT, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+   a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+   m = a68_proc (M_SHORT_INT, M_SHORT_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_int);
+   a68_op (A68_STD, "^", m, a68_lower_pow_int);
+   /* INT operators. */
+   m = a68_proc (M_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_intabs2);
+   a68_op (A68_STD, "SIGN", m, a68_lower_sign2);
+   m = a68_proc (M_SHORT_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenint2);
+   m = a68_proc (M_LONG_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengint2);
+   m = a68_proc (M_BOOL, M_INT, NO_MOID);
+   a68_op (A68_STD, "ODD", m, a68_lower_odd2);
+   m = a68_proc (M_BOOL, M_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+   a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+   a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+   a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+   m = a68_proc (M_INT, M_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_int);
+   a68_op (A68_STD, "-", m, a68_lower_minus_int);
+   a68_op (A68_STD, "*", m, a68_lower_mult_int);
+   a68_op (A68_STD, "OVER", m, a68_lower_over3);
+   a68_op (A68_STD, "%", m, a68_lower_over3);
+   a68_op (A68_STD, "MOD", m, a68_lower_mod3);
+   a68_op (A68_STD, "%*", m, a68_lower_mod3);
+   a68_op (A68_STD, "**", m, a68_lower_pow_int);
+   a68_op (A68_STD, "^", m, a68_lower_pow_int);
+   m = a68_proc (M_REAL, M_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "/", m, a68_lower_rdiv3);
+   m = a68_proc (M_REF_INT, M_REF_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "%:=", m, a68_lower_overab3);
+   a68_op (A68_STD, "%*:=", m, a68_lower_modab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
+   a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
+   /* LONG INT operators */
+   m = a68_proc (M_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_intabs2);
+   m = a68_proc (M_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenint2);
+   a68_op (A68_STD, "SIGN", m, a68_lower_sign2);
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengint2);
+   m = a68_proc (M_BOOL, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "ODD", m, a68_lower_odd2);
+   m = a68_proc (M_LONG_INT, M_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_int);
+   a68_op (A68_STD, "-", m, a68_lower_minus_int);
+   a68_op (A68_STD, "*", m, a68_lower_mult_int);
+   a68_op (A68_STD, "OVER", m, a68_lower_over3);
+   a68_op (A68_STD, "%", m, a68_lower_over3);
+   a68_op (A68_STD, "MOD", m, a68_lower_mod3);
+   a68_op (A68_STD, "%*", m, a68_lower_mod3);
+   m = a68_proc (M_REF_LONG_INT, M_REF_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "%:=", m, a68_lower_overab3);
+   a68_op (A68_STD, "%*:=", m, a68_lower_modab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
+   a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
+   m = a68_proc (M_BOOL, M_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+   a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+   m = a68_proc (M_LONG_REAL, M_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "/", m, a68_lower_rdiv3);
+   m = a68_proc (M_LONG_INT, M_LONG_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_int);
+   a68_op (A68_STD, "^", m, a68_lower_pow_int);
+   /* LONG LONG INT operators. */
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_intabs2);
+   m = a68_proc (M_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "SIGN", m, a68_lower_sign2);
+   m = a68_proc (M_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenint2);
+   m = a68_proc (M_BOOL, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "ODD", m, a68_lower_odd2);
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_int);
+   a68_op (A68_STD, "-", m, a68_lower_minus_int);
+   a68_op (A68_STD, "*", m, a68_lower_mult_int);
+   a68_op (A68_STD, "OVER", m, a68_lower_over3);
+   a68_op (A68_STD, "%", m, a68_lower_over3);
+   a68_op (A68_STD, "MOD", m, a68_lower_mod3);
+   a68_op (A68_STD, "%*", m, a68_lower_mod3);
+   m = a68_proc (M_REF_LONG_LONG_INT, M_REF_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "%:=", m, a68_lower_overab3);
+   a68_op (A68_STD, "%*:=", m, a68_lower_modab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "OVERAB", m, a68_lower_overab3);
+   a68_op (A68_STD, "MODAB", m, a68_lower_modab3);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "/", m, a68_lower_rdiv3);
+   m = a68_proc (M_BOOL, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "EQ", m, a68_lower_int_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_int_ne3);
+   a68_op (A68_STD, "GE", m, a68_lower_int_ge3);
+   a68_op (A68_STD, "GT", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "LE", m, a68_lower_int_le3);
+   a68_op (A68_STD, "LT", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "=", m, a68_lower_int_eq3);
+   a68_op (A68_STD, ">=", m, a68_lower_int_ge3);
+   a68_op (A68_STD, ">", m, a68_lower_int_gt3);
+   a68_op (A68_STD, "<=", m, a68_lower_int_le3);
+   a68_op (A68_STD, "<", m, a68_lower_int_lt3);
+   a68_op (A68_STD, "/=", m, a68_lower_int_ne3);
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_int);
+   a68_op (A68_STD, "^", m, a68_lower_pow_int);
+   /* SHORT SHORT BITS operators  */
+   m = a68_proc (M_BOOL, M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
+   a68_op (A68_STD, "~", m, a68_lower_bitnot2);
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "AND", m, a68_lower_bitand3);
+   a68_op (A68_STD, "OR", m, a68_lower_bitior3);
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHL", m, a68_lower_shl3);
+   a68_op (A68_STD, "UP", m, a68_lower_shl3);
+   a68_op (A68_STD, "SHR", m, a68_lower_shr3);
+   a68_op (A68_STD, "DOWN", m, a68_lower_shr3);
+   m = a68_proc (M_BOOL, M_INT, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "ELEM", m, a68_lower_bitelem3);
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "BIN", m, a68_lower_bin2);
+   m = a68_proc (M_SHORT_SHORT_INT, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_bitabs2);
+   m = a68_proc (M_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_bitleng2);
+   /* SHORT BITS operatos.  */
+   m = a68_proc (M_SHORT_INT, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_bitabs2);
+   m = a68_proc (M_SHORT_BITS, M_SHORT_INT, NO_MOID);
+   a68_op (A68_STD, "BIN", m, a68_lower_bin2);
+   m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
+   a68_op (A68_STD, "~", m, a68_lower_bitnot2);
+   m = a68_proc (M_BOOL, M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
+   m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "AND", m, a68_lower_bitand3);
+   a68_op (A68_STD, "OR", m, a68_lower_bitior3);
+   m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHL", m, a68_lower_shl3);
+   a68_op (A68_STD, "UP", m, a68_lower_shl3);
+   a68_op (A68_STD, "SHR", m, a68_lower_shr3);
+   a68_op (A68_STD, "DOWN", m, a68_lower_shr3);
+   m = a68_proc (M_BOOL, M_INT, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "ELEM", m, a68_lower_bitelem3);
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_bitshorten2);
+   m = a68_proc (M_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_STD, "LENG", m,  a68_lower_bitleng2);
+   /* BITS operators.  */
+   m = a68_proc (M_INT, M_BITS, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_bitabs2);
+   m = a68_proc (M_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "BIN", m, a68_lower_bin2);
+   m = a68_proc (M_BITS, M_BITS, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
+   a68_op (A68_STD, "~", m, a68_lower_bitnot2);
+   m = a68_proc (M_BOOL, M_BITS, M_BITS, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+   a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
+   m = a68_proc (M_BITS, M_BITS, M_BITS, NO_MOID);
+   a68_op (A68_STD, "AND", m, a68_lower_bitand3);
+   a68_op (A68_STD, "OR", m, a68_lower_bitior3);
+   m = a68_proc (M_BITS, M_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHL", m, a68_lower_shl3);
+   a68_op (A68_STD, "UP", m, a68_lower_shl3);
+   a68_op (A68_STD, "SHR", m, a68_lower_shr3);
+   a68_op (A68_STD, "DOWN", m, a68_lower_shr3);
+   m = a68_proc (M_BOOL, M_INT, M_BITS, NO_MOID);
+   a68_op (A68_STD, "ELEM", m, a68_lower_bitelem3);
+   m = a68_proc (M_LONG_BITS, M_BITS, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_bitleng2);
+   m = a68_proc (M_SHORT_BITS, M_BITS, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_bitshorten2);
+   /* LONG BITS operatos.  */
+   m = a68_proc (M_LONG_INT, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_bitabs2);
+   m = a68_proc (M_LONG_BITS, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "BIN", m, a68_lower_bin2);
+   m = a68_proc (M_LONG_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
+   a68_op (A68_STD, "~", m, a68_lower_bitnot2);
+   m = a68_proc (M_BOOL, M_LONG_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
+   m = a68_proc (M_LONG_BITS, M_LONG_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "AND", m, a68_lower_bitand3);
+   a68_op (A68_STD, "OR", m, a68_lower_bitior3);
+   m = a68_proc (M_LONG_BITS, M_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHL", m, a68_lower_shl3);
+   a68_op (A68_STD, "UP", m, a68_lower_shl3);
+   a68_op (A68_STD, "SHR", m, a68_lower_shr3);
+   a68_op (A68_STD, "DOWN", m, a68_lower_shr3);
+   m = a68_proc (M_BOOL, M_INT, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "ELEM", m, a68_lower_bitelem3);
+   m = a68_proc (M_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_bitshorten2);
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "LENG", m,  a68_lower_bitleng2);
+   /* LONG LONG BITS operators  */
+   m = a68_proc (M_BOOL, M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_bit_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_bit_ne3);
+   a68_op (A68_STD, "<=", m, a68_lower_bit_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_bit_le3);
+   a68_op (A68_STD, ">=", m, a68_lower_bit_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_bit_ge3);
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "NOT", m, a68_lower_bitnot2);
+   a68_op (A68_STD, "~", m, a68_lower_bitnot2);
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "AND", m, a68_lower_bitand3);
+   a68_op (A68_STD, "OR", m, a68_lower_bitior3);
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_STD, "SHL", m, a68_lower_shl3);
+   a68_op (A68_STD, "UP", m, a68_lower_shl3);
+   a68_op (A68_STD, "SHR", m, a68_lower_shr3);
+   a68_op (A68_STD, "DOWN", m, a68_lower_shr3);
+   m = a68_proc (M_BOOL, M_INT, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "ELEM", m, a68_lower_bitelem3);
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "BIN", m, a68_lower_bin2);
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_bitabs2);
+   m = a68_proc (M_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_bitshorten2);
+   /* REAL operators.  */
+   m = A68_MCACHE (proc_real_real);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_realabs2);
+   m = a68_proc (M_INT, M_REAL, NO_MOID);
+   a68_op (A68_STD, "SIGN", m, a68_lower_realsign2);
+   a68_op (A68_STD, "ROUND", m, a68_lower_round2);
+   a68_op (A68_STD, "ENTIER", m, a68_lower_entier2);
+   m = a68_proc (M_BOOL, M_REAL, M_REAL, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+   a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+   a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+   a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+   a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
+   m = A68_MCACHE (proc_real_real_real);
+   a68_op (A68_STD, "+", m, a68_lower_plus_real);
+   a68_op (A68_STD, "-", m, a68_lower_minus_real);
+   a68_op (A68_STD, "*", m, a68_lower_mult_real);
+   a68_op (A68_STD, "/", m, a68_lower_div3);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   m = a68_proc (M_REAL, M_REAL, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   m = a68_proc (M_REF_REAL, M_REF_REAL, M_REAL, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "/:=", m, a68_lower_divab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "DIVAB", m, a68_lower_divab3);
+   m = a68_proc (M_LONG_REAL, M_REAL, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengreal2);
+   /* LONG REAL operators */
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "LENG", m, a68_lower_lengreal2);
+   m = a68_proc (M_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenreal2);
+   m = a68_proc (M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   a68_op (A68_STD, "ABS", m, a68_lower_realabs2);
+   m = a68_proc (M_INT, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "SIGN", m, a68_lower_realsign2);
+   m = a68_proc (M_LONG_INT, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "ENTIER", m, a68_lower_entier2);
+   a68_op (A68_STD, "ROUND", m, a68_lower_round2);
+   m = a68_proc (M_LONG_REAL, M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_real);
+   a68_op (A68_STD, "-", m, a68_lower_minus_real);
+   a68_op (A68_STD, "*", m, a68_lower_mult_real);
+   a68_op (A68_STD, "/", m, a68_lower_div3);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   m = a68_proc (M_REF_LONG_REAL, M_REF_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "/:=", m, a68_lower_divab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "DIVAB", m, a68_lower_divab3);
+   m = a68_proc (M_BOOL, M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+   a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+   a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
+   m = a68_proc (M_LONG_REAL, M_LONG_REAL, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   /* LONG LONG REAL operators. */
+   m = a68_proc (M_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m, a68_lower_shortenreal2);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "ABS", m, a68_lower_realabs2);
+   a68_op (A68_STD, "+", m, a68_lower_confirm2);
+   a68_op (A68_STD, "-", m, a68_lower_negate2);
+   m = a68_proc (M_INT, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "SIGN", m, a68_lower_realsign2);
+   m = a68_proc (M_LONG_LONG_INT, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "ENTIER", m, a68_lower_entier2);
+   a68_op (A68_STD, "ROUND", m, a68_lower_round2);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "+", m, a68_lower_plus_real);
+   a68_op (A68_STD, "-", m, a68_lower_minus_real);
+   a68_op (A68_STD, "*", m, a68_lower_mult_real);
+   a68_op (A68_STD, "/", m, a68_lower_div3);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   m = a68_proc (M_REF_LONG_LONG_REAL, M_REF_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "+:=", m, a68_lower_plusab3);
+   a68_op (A68_STD, "-:=", m, a68_lower_minusab3);
+   a68_op (A68_STD, "*:=", m, a68_lower_multab3);
+   a68_op (A68_STD, "/:=", m, a68_lower_divab3);
+   a68_op (A68_STD, "PLUSAB", m, a68_lower_plusab3);
+   a68_op (A68_STD, "MINUSAB", m, a68_lower_minusab3);
+   a68_op (A68_STD, "TIMESAB", m, a68_lower_multab3);
+   a68_op (A68_STD, "DIVAB", m, a68_lower_divab3);
+   m = a68_proc (M_BOOL, M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "=", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "EQ", m, a68_lower_real_eq3);
+   a68_op (A68_STD, "/=", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "NE", m, a68_lower_real_ne3);
+   a68_op (A68_STD, "<", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "LT", m, a68_lower_real_lt3);
+   a68_op (A68_STD, "<=", m, a68_lower_real_le3);
+   a68_op (A68_STD, "LE", m, a68_lower_real_le3);
+   a68_op (A68_STD, ">", m, a68_lower_real_gt3);
+   a68_op (A68_STD, "GT", m, a68_lower_real_gt3);
+   a68_op (A68_STD, ">=", m, a68_lower_real_ge3);
+   a68_op (A68_STD, "GE", m, a68_lower_real_ge3);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m, a68_lower_pow_real);
+   a68_op (A68_STD, "^", m, a68_lower_pow_real);
+   /* ROWS operators.  */
+   m = a68_proc (M_INT, M_ROWS, NO_MOID);
+   a68_op (A68_STD, "LWB", m, a68_lower_lwb2);
+   a68_op (A68_STD, "UPB", m, a68_lower_upb2);
+   m = a68_proc (M_INT, M_INT, M_ROWS, NO_MOID);
+   a68_op (A68_STD, "LWB", m, a68_lower_lwb3);
+   a68_op (A68_STD, "UPB", m, a68_lower_upb3);
+   /* BYTES operators.  */
+   m = a68_proc (M_BYTES, M_STRING, NO_MOID);
+   a68_idf (A68_STD, "bytespack", m);
+   m = a68_proc (M_CHAR, M_INT, M_BYTES, NO_MOID);
+   a68_op (A68_STD, "ELEM", m);
+   m = a68_proc (M_BYTES, M_BYTES, M_BYTES, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   m = a68_proc (M_REF_BYTES, M_REF_BYTES, M_BYTES, NO_MOID);
+   a68_op (A68_STD, "+:=", m);
+   a68_op (A68_STD, "PLUSAB", m);
+   m = a68_proc (M_BOOL, M_BYTES, M_BYTES, NO_MOID);
+   a68_op (A68_STD, "=", m);
+   a68_op (A68_STD, "/=", m);
+   a68_op (A68_STD, "<", m);
+   a68_op (A68_STD, "<=", m);
+   a68_op (A68_STD, ">", m);
+   a68_op (A68_STD, ">=", m);
+   a68_op (A68_STD, "EQ", m);
+   a68_op (A68_STD, "NE", m);
+   a68_op (A68_STD, "LT", m);
+   a68_op (A68_STD, "LE", m);
+   a68_op (A68_STD, "GT", m);
+   a68_op (A68_STD, "GE", m);
+   /* LONG BYTES operators.  */
+   m = a68_proc (M_LONG_BYTES, M_BYTES, NO_MOID);
+   a68_op (A68_STD, "LENG", m);
+   m = a68_proc (M_BYTES, M_LONG_BYTES, NO_MOID);
+   a68_idf (A68_STD, "SHORTEN", m);
+   m = a68_proc (M_LONG_BYTES, M_STRING, NO_MOID);
+   a68_idf (A68_STD, "longbytespack", m);
+   m = a68_proc (M_CHAR, M_INT, M_LONG_BYTES, NO_MOID);
+   a68_op (A68_STD, "ELEM", m);
+   m = a68_proc (M_LONG_BYTES, M_LONG_BYTES, M_LONG_BYTES, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   m = a68_proc (M_REF_LONG_BYTES, M_REF_LONG_BYTES, M_LONG_BYTES, NO_MOID);
+   a68_op (A68_STD, "+:=", m);
+   a68_op (A68_STD, "PLUSAB", m);
+   m = a68_proc (M_BOOL, M_LONG_BYTES, M_LONG_BYTES, NO_MOID);
+   a68_op (A68_STD, "=", m);
+   a68_op (A68_STD, "/=", m);
+   a68_op (A68_STD, "<", m);
+   a68_op (A68_STD, "<=", m);
+   a68_op (A68_STD, ">", m);
+   a68_op (A68_STD, ">=", m);
+   a68_op (A68_STD, "EQ", m);
+   a68_op (A68_STD, "NE", m);
+   a68_op (A68_STD, "LT", m);
+   a68_op (A68_STD, "LE", m);
+   a68_op (A68_STD, "GT", m);
+   a68_op (A68_STD, "GE", m);
+   /* COMPLEX operators.  */
+   m = a68_proc (M_COMPLEX, M_REAL, M_REAL, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_reali);
+   a68_op (A68_STD, "+*", m, a68_lower_reali);
+   m = a68_proc (M_COMPLEX, M_INT, M_INT, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_inti);
+   a68_op (A68_STD, "+*", m, a68_lower_inti);
+   m = a68_proc (M_REAL, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "RE", m, a68_lower_re2);
+   a68_op (A68_STD, "IM", m, a68_lower_im2);
+   a68_op (A68_STD, "ABS", m);
+   a68_op (A68_STD, "ARG", m);
+   m = A68_MCACHE (proc_complex_complex);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "CONJ", m, a68_lower_conj2);
+   m = a68_proc (M_BOOL, M_COMPLEX, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "=", m);
+   a68_op (A68_STD, "/=", m);
+   a68_op (A68_STD, "EQ", m);
+   a68_op (A68_STD, "NE", m);
+   m = a68_proc (M_COMPLEX, M_COMPLEX, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "*", m);
+   a68_op (A68_STD, "/", m);
+   m = a68_proc (M_COMPLEX, M_COMPLEX, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m);
+   a68_op (A68_STD, "UP", m);
+   a68_op (A68_STD, "^", m);
+   m = a68_proc (M_REF_COMPLEX, M_REF_COMPLEX, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+:=", m);
+   a68_op (A68_STD, "-:=", m);
+   a68_op (A68_STD, "*:=", m);
+   a68_op (A68_STD, "/:=", m);
+   a68_op (A68_STD, "PLUSAB", m);
+   a68_op (A68_STD, "MINUSAB", m);
+   a68_op (A68_STD, "TIMESAB", m);
+   a68_op (A68_STD, "DIVAB", m);
+   m = a68_proc (M_COMPLEX, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m);
+   /* LONG COMPLEX  operators */
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_INT, M_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_longinti);
+   a68_op (A68_STD, "+*", m, a68_lower_longinti);
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_longreali);
+   a68_op (A68_STD, "+*", m, a68_lower_longreali);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "LENG", m);
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m);
+   m = a68_proc (M_LONG_COMPLEX, M_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "LENG", m);
+   m = a68_proc (M_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "SHORTEN", m);
+   m = a68_proc (M_LONG_REAL, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "RE", m, a68_lower_re2);
+   a68_op (A68_STD, "IM", m, a68_lower_im2);
+   a68_op (A68_STD, "ARG", m);
+   a68_op (A68_STD, "ABS", m);
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "CONJ", m, a68_lower_conj2);
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "*", m);
+   a68_op (A68_STD, "/", m);
+   m = a68_proc (M_LONG_COMPLEX, M_LONG_COMPLEX, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m);
+   a68_op (A68_STD, "UP", m);
+   a68_op (A68_STD, "^", m);
+   m = a68_proc (M_BOOL, M_LONG_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "=", m);
+   a68_op (A68_STD, "EQ", m);
+   a68_op (A68_STD, "/=", m);
+   a68_op (A68_STD, "NE", m);
+   m = a68_proc (M_REF_LONG_COMPLEX, M_REF_LONG_COMPLEX, M_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+:=", m);
+   a68_op (A68_STD, "-:=", m);
+   a68_op (A68_STD, "*:=", m);
+   a68_op (A68_STD, "/:=", m);
+   a68_op (A68_STD, "PLUSAB", m);
+   a68_op (A68_STD, "MINUSAB", m);
+   a68_op (A68_STD, "TIMESAB", m);
+   a68_op (A68_STD, "DIVAB", m);
+   /* LONG LONG COMPLEX operators.  */
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_INT, M_LONG_LONG_INT, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_longlonginti);
+   a68_op (A68_STD, "+*", m, a68_lower_longlonginti);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_op (A68_STD, "I", m, a68_lower_longlongreali);
+   a68_op (A68_STD, "+*", m, a68_lower_longlongreali);
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "RE", m, a68_lower_re2);
+   a68_op (A68_STD, "IM", m, a68_lower_im2);
+   a68_op (A68_STD, "ARG", m);
+   a68_op (A68_STD, "ABS", m);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "CONJ", m, a68_lower_conj2);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+", m);
+   a68_op (A68_STD, "-", m);
+   a68_op (A68_STD, "*", m);
+   a68_op (A68_STD, "/", m);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, M_INT, NO_MOID);
+   a68_op (A68_STD, "**", m);
+   a68_op (A68_STD, "UP", m);
+   a68_op (A68_STD, "^", m);
+   m = a68_proc (M_BOOL, M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "=", m);
+   a68_op (A68_STD, "EQ", m);
+   a68_op (A68_STD, "/=", m);
+   a68_op (A68_STD, "NE", m);
+   m = a68_proc (M_REF_LONG_LONG_COMPLEX, M_REF_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "+:=", m);
+   a68_op (A68_STD, "-:=", m);
+   a68_op (A68_STD, "*:=", m);
+   a68_op (A68_STD, "/:=", m);
+   a68_op (A68_STD, "PLUSAB", m);
+   a68_op (A68_STD, "MINUSAB", m);
+   a68_op (A68_STD, "TIMESAB", m);
+   a68_op (A68_STD, "DIVAB", m);
+   m = a68_proc (M_LONG_LONG_COMPLEX, M_LONG_LONG_COMPLEX, NO_MOID);
+   a68_op (A68_STD, "LENG", m);
+   /* SEMA operators.  */
+   m = a68_proc (M_SEMA, M_INT, NO_MOID);
+   a68_op (A68_STD, "LEVEL", m);
+   m = a68_proc (M_INT, M_SEMA, NO_MOID);
+   a68_op (A68_STD, "LEVEL", m);
+   m = a68_proc (M_VOID, M_SEMA, NO_MOID);
+   a68_op (A68_STD, "UP", m);
+   a68_op (A68_STD, "DOWN", m);
+ 
+ 
+   /* Load Algol 68 parts.  */
+   if (!flag_building_libga68)
+     a68_extract_revelation (A68_STANDENV, LINE (INFO (TOP_NODE (&A68_JOB))),
+ 			    "STANDARD", "ga68");
+ }
+ 
+ /* GNU extensions for the standenv.  */
+ 
+ static void
+ gnu_prelude (void)
+ {
+   MOID_T *m = NO_MOID;
+   /* Priorities.  */
+   a68_prio ("ELEMS", 8);
+   a68_prio ("SET", 7);
+   a68_prio ("CLEAR", 7);
+   a68_prio ("TEST", 7);
+   /* Identifiers.  */
+   a68_idf (A68_EXT, "infinity", M_REAL, a68_lower_infinity);
+   a68_idf (A68_EXT, "minusinfinity", M_REAL, a68_lower_minusinfinity);
+   a68_idf (A68_EXT, "longlonginfinity", M_LONG_LONG_REAL);
+   a68_idf (A68_EXT, "longlongminusinfinity", M_LONG_LONG_REAL);
+   a68_idf (A68_EXT, "longinfinity", M_LONG_REAL);
+   a68_idf (A68_EXT, "longminusinfinity", M_LONG_REAL);
+   a68_idf (A68_EXT, "minint", M_INT, a68_lower_minint);
+   a68_idf (A68_EXT, "longminint", M_LONG_INT, a68_lower_minint);
+   a68_idf (A68_EXT, "longlongminint", M_LONG_LONG_INT, a68_lower_minint);
+   a68_idf (A68_EXT, "shortminint", M_SHORT_INT, a68_lower_minint);
+   a68_idf (A68_EXT, "shortshortminint", M_SHORT_SHORT_INT, a68_lower_minint);
+   a68_idf (A68_EXT, "minreal", M_REAL, a68_lower_minreal);
+   a68_idf (A68_EXT, "longminreal", M_LONG_REAL, a68_lower_minreal);
+   a68_idf (A68_EXT, "longlongminreal", M_LONG_LONG_REAL, a68_lower_minreal);
+   a68_idf (A68_EXT, "eofchar", M_CHAR, a68_lower_eofchar);
+   a68_idf (A68_EXT, "replacementchar", M_CHAR, a68_lower_replacementchar);
+   /* REAL procedures.  */
+   m = A68_MCACHE (proc_real_real);
+   a68_idf (A68_EXT, "log", m, a68_lower_log);
+   /* LONG REAL procedures.  */
+   m = a68_proc (M_LONG_REAL, M_LONG_REAL, NO_MOID);
+   a68_idf (A68_EXT, "longlog", m, a68_lower_long_log);
+   /* LONG LONG REAL procedures.  */
+   m = a68_proc (M_LONG_LONG_REAL, M_LONG_LONG_REAL, NO_MOID);
+   a68_idf (A68_EXT, "longlonglog", m, a68_lower_long_long_log);
+   /* BOOL operators.  */
+   m = a68_proc (M_BOOL, M_BOOL, M_BOOL, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_xor3);
+   /* SHORT SHORT BITS operators.  */
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_bitxor3);
+   /* SHORT BITS operators.  */
+   m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, M_SHORT_BITS, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_bitxor3);
+   /* BITS operators.  */
+   m = a68_proc (M_BITS, M_BITS, M_BITS, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_bitxor3);
+   /* LONG BITS operators.  */
+   m = a68_proc (M_LONG_BITS, M_LONG_BITS, M_LONG_BITS, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_bitxor3);
+   /* LONG LONG BITS operators.  */
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, M_LONG_LONG_BITS, NO_MOID);
+   a68_op (A68_EXT, "XOR", m, a68_lower_bitxor3);
+   /* ROWS operators.  */
+   m = a68_proc (M_INT, M_ROWS, NO_MOID);
+   a68_op (A68_EXT, "ELEMS", m, a68_lower_elems2);
+   m = a68_proc (M_INT, M_INT, M_ROWS, NO_MOID);
+   a68_op (A68_EXT, "ELEMS", m, a68_lower_elems3);
+   /* SHORT SHORT BITS operators.  */
+   m = a68_proc (M_SHORT_SHORT_BITS, M_SHORT_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "SET", m, a68_lower_set3);
+   a68_op (A68_EXT, "CLEAR", m, a68_lower_clear3);
+   m = a68_proc (M_BOOL, M_SHORT_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "TEST", m, a68_lower_test3);
+   /* SHORT BITS operators.  */
+   m = a68_proc (M_SHORT_BITS, M_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "SET", m, a68_lower_set3);
+   a68_op (A68_EXT, "CLEAR", m, a68_lower_clear3);
+   m = a68_proc (M_BOOL, M_SHORT_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "TEST", m, a68_lower_test3);
+   /* BITS operators.  */
+   m = a68_proc (M_BITS, M_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "SET", m, a68_lower_set3);
+   a68_op (A68_EXT, "CLEAR", m, a68_lower_clear3);
+   m = a68_proc (M_BOOL, M_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "TEST", m, a68_lower_test3);
+   /* LONG BITS operators.  */
+   m = a68_proc (M_LONG_BITS, M_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "SET", m, a68_lower_set3);
+   a68_op (A68_EXT, "CLEAR", m, a68_lower_clear3);
+   m = a68_proc (M_BOOL, M_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "TEST", m, a68_lower_test3);
+   /* LONG LONG BITS operators.  */
+   m = a68_proc (M_LONG_LONG_BITS, M_LONG_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "SET", m, a68_lower_set3);
+   a68_op (A68_EXT, "CLEAR", m, a68_lower_clear3);
+   m = a68_proc (M_BOOL, M_LONG_LONG_BITS, M_INT, NO_MOID);
+   a68_op (A68_EXT, "TEST", m, a68_lower_test3);
+ }
+ 
+ /* POSIX prelude.  */
+ 
+ static void
+ posix_prelude (void)
+ {
+   if (!flag_building_libga68)
+     a68_extract_revelation (A68_STANDENV, LINE (INFO (TOP_NODE (&A68_JOB))),
+ 			    "POSIX", "ga68");
+ }
+ 
+ void
+ a68_make_standard_environ (void)
+ {
+   stand_moids ();
+   A68_MCACHE (proc_bool) = a68_proc (M_BOOL, NO_MOID);
+   A68_MCACHE (proc_char) = a68_proc (M_CHAR, NO_MOID);
+   A68_MCACHE (proc_complex_complex) = a68_proc (M_COMPLEX, M_COMPLEX, NO_MOID);
+   A68_MCACHE (proc_int) = a68_proc (M_INT, NO_MOID);
+   A68_MCACHE (proc_int_int) = a68_proc (M_INT, M_INT, NO_MOID);
+   A68_MCACHE (proc_int_int_real) = a68_proc (M_REAL, M_INT, M_INT, NO_MOID);
+   A68_MCACHE (proc_int_real) = a68_proc (M_REAL, M_INT, NO_MOID);
+   A68_MCACHE (proc_int_real_real) = a68_proc (M_REAL, M_INT, M_REAL, NO_MOID);
+   A68_MCACHE (proc_int_real_real_real) = a68_proc (M_REAL, M_INT, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real) = a68_proc (M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_int_real) = a68_proc (M_REAL, M_REAL, M_INT, NO_MOID);
+   A68_MCACHE (proc_real_real_int_real) = a68_proc (M_REAL, M_REAL, M_REAL, M_INT, NO_MOID);
+   A68_MCACHE (proc_real_real) = M_PROC_REAL_REAL;
+   A68_MCACHE (proc_real_real_real) = a68_proc (M_REAL, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_real_real_int) = a68_proc (M_INT, M_REAL, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_real_real_real) = a68_proc (M_REAL, M_REAL, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_real_real_real_real) = a68_proc (M_REAL, M_REAL, M_REAL, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_real_real_real_real_real) = a68_proc (M_REAL, M_REAL, M_REAL, M_REAL, M_REAL, M_REAL, NO_MOID);
+   A68_MCACHE (proc_real_ref_real_ref_int_void) = a68_proc (M_VOID, M_REAL, M_REF_REAL, M_REF_INT, NO_MOID);
+   A68_MCACHE (proc_void) = a68_proc (M_VOID, NO_MOID);
+   stand_prelude ();
+   if (!OPTION_STRICT (&A68_JOB))
+     {
+       gnu_prelude ();
+       posix_prelude ();
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-scanner.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-scanner.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-scanner.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-scanner.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,2399 ----
+ /* Context-dependent ALGOL 68 tokeniser.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* Context-dependent ALGOL 68 tokeniser.  */
+ 
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "diagnostic.h"
+ #include "options.h"
+ #include "vec.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* A few forward references of static functions defined in this file.  */
+ 
+ static void include_files (LINE_T *top);
+ 
+ /* Standard prelude and postlude for source files.
+ 
+    These are used for particular programs only.  Not for prelude packets.
+    We need several versions for the several supported stropping regimes.  */
+ 
+ static const char *
+ upper_prelude_start[] = {
+   "BEGIN",
+   "      BEGIN",
+   NO_TEXT
+ };
+ 
+ static const char *
+ upper_postlude[] = {
+   "      END;",
+   "      stop: SKIP",
+   "END",
+   NO_TEXT
+ };
+ 
+ static const char *
+ supper_prelude_start[] = {
+   "begin",
+   "     begin",
+   NO_TEXT
+ };
+ 
+ static const char *
+ supper_postlude[] = {
+   "      end;",
+   "      stop: skip",
+   "end",
+   NO_TEXT
+ };
+ 
+ /* Macros.  */
+ 
+ #define NULL_CHAR '\0'
+ #define STOP_CHAR 127
+ #define FORMFEED_CHAR '\f'
+ #define CR_CHAR '\r'
+ #define SINGLE_QUOTE_CHAR '\''
+ #define QUOTE_CHAR '"'
+ #define APOSTROPHE_CHAR '\''
+ #define BACKSLASH_CHAR '\\'
+ #define NEWLINE_CHAR '\n'
+ #define EXPONENT_CHAR 'e'
+ #define RADIX_CHAR 'r'
+ #define POINT_CHAR '.'
+ #define TAB_CHAR '\t'
+ 
+ #define MAX_RESTART 256
+ 
+ #define EOL(c) ((c) == NEWLINE_CHAR || (c) == NULL_CHAR)
+ #define SCAN_ERROR(c, u, v, txt) if (c)		\
+     do						\
+       {						\
+ 	a68_scan_error (u, v, txt);		\
+       }						\
+     while (0)
+ 
+ 
+ #define SCAN_DIGITS(c)				\
+   while (ISDIGIT (c))				\
+     {						\
+       (sym++)[0] = (c);				\
+       (c) = next_char (ref_l, ref_s, true);	\
+     }
+ 
+ #define SCAN_EXPONENT_PART(c)						\
+   do									\
+     {									\
+       (sym++)[0] = EXPONENT_CHAR;					\
+       (c) = next_char (ref_l, ref_s, true);				\
+       if ((c) == '+' || (c) == '-') {					\
+ 	(sym++)[0] = (c);						\
+ 	(c) = next_char (ref_l, ref_s, true);				\
+       }									\
+       SCAN_ERROR (!ISDIGIT (c), *start_l, *start_c,			\
+ 		  "invalid exponent digit");				\
+       SCAN_DIGITS (c);							\
+     }									\
+   while (0)
+ 
+ /* Get the size of a file given a file descriptor FD.  In case the size of
+    the file cannot be determined then this function returns -1.  */
+ 
+ ssize_t
+ a68_file_size (int fd)
+ {
+   ssize_t fsize;
+   off_t off, save;
+ 
+   save = lseek (fd, 0, SEEK_CUR);
+   if (save == (off_t) -1)
+     return -1;
+ 
+   off = lseek (fd, 0, SEEK_END);
+   if (off == (off_t) -1)
+     return -1;
+   fsize = (ssize_t) off;
+ 
+   off = lseek (fd, save, SEEK_SET);
+   if (off == (off_t) -1)
+     return -1;
+ 
+   return fsize;
+ }
+ 
+ /* Read bytes from file into buffer given a file descriptor.  */
+ 
+ ssize_t
+ a68_file_read (int fd, void *buf, size_t n)
+ {
+   size_t to_do = n;
+   int restarts = 0;
+   char *z = (char *) buf;
+   while (to_do > 0)
+     {
+       ssize_t bytes_read;
+ 
+       errno = 0;
+       bytes_read = read (fd, z, to_do);
+       if (bytes_read < 0)
+ 	{
+ 	  if (errno == EINTR)
+ 	    {
+ 	      /* interrupt, retry.  */
+ 	      bytes_read = 0;
+ 	      if (restarts++ > MAX_RESTART)
+ 		{
+ 		  return -1;
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      /* read error.  */
+ 	      return -1;
+ 	    }
+ 	}
+       else if (bytes_read == 0)
+ 	{
+ 	  /* EOF_CHAR */
+ 	  break;
+ 	}
+       to_do -= (size_t) bytes_read;
+       z += bytes_read;
+     }
+ 
+   /* return >= 0  */
+   return (ssize_t) n - (ssize_t) to_do;
+ }
+ 
+ /* Save scanner state, for character look-ahead.  */
+ 
+ static void
+ save_state (LINE_T *ref_l, char *ref_s, char ch)
+ {
+   SCAN_STATE_L (&A68_JOB) = ref_l;
+   SCAN_STATE_S (&A68_JOB) = ref_s;
+   SCAN_STATE_C (&A68_JOB) = ch;
+ }
+ 
+ /* Restore scanner state, for character look-ahead.  */
+ 
+ static void
+ restore_state (LINE_T **ref_l, char **ref_s, char *ch)
+ {
+   *ref_l = SCAN_STATE_L (&A68_JOB);
+   *ref_s = SCAN_STATE_S (&A68_JOB);
+   *ch = SCAN_STATE_C (&A68_JOB);
+ }
+ 
+ /* New_source_line.  */
+ 
+ static LINE_T *
+ new_source_line (void)
+ {
+   LINE_T *z = ggc_cleared_alloc<LINE_T> ();
+ 
+   MARKER (z)[0] = '\0';
+   STRING (z) = NO_TEXT;
+   FILENAME (z) = NO_TEXT;
+   NUMBER (z) = 0;
+   NEXT (z) = NO_LINE;
+   PREVIOUS (z) = NO_LINE;
+   return z;
+ }
+ 
+ /* Append a source line to the internal source file.  */
+ 
+ static void
+ append_source_line (const char *str, LINE_T **ref_l, int *line_num,
+ 		    const char *filename)
+ {
+   LINE_T *z = new_source_line ();
+ 
+   /* Link line into the chain.  */
+   STRING (z) = xstrdup (str);
+   FILENAME (z) = ggc_strdup (filename);
+   NUMBER (z) = (*line_num)++;
+   NEXT (z) = NO_LINE;
+   PREVIOUS (z) = *ref_l;
+   if (TOP_LINE (&A68_JOB) == NO_LINE)
+     TOP_LINE (&A68_JOB) = z;
+   if (*ref_l != NO_LINE)
+     NEXT (*ref_l) = z;
+   *ref_l = z;
+ }
+ 
+ /* Append environment source lines.  */
+ 
+ static void
+ append_environ (const char *str[], LINE_T **ref_l, int *line_num, const char *name)
+ {
+   for (int k = 0; str[k] != NO_TEXT; k++)
+     {
+       int zero_line_num = 0;
+       (*line_num)++;
+       append_source_line (str[k], ref_l, &zero_line_num, name);
+     }
+ }
+ 
+ /*
+  * Scanner, tokenises the source code.
+  */
+ 
+ /* Emit a diagnostic if CH is an unworthy character.  */
+ 
+ static void
+ unworthy (LINE_T *u, char *v, char ch)
+ {
+   if (ISPRINT (ch))
+     {
+       if (snprintf (A68 (edit_line), SNPRINTF_SIZE, "*%s",
+ 		    "unworthy character") < 0)
+ 	gcc_unreachable ();
+     }
+   else
+     {
+       if (snprintf (A68 (edit_line), SNPRINTF_SIZE, "*%s %c",
+ 		    "unworthy character", ch) < 0)
+ 	gcc_unreachable ();
+     }
+ 
+   a68_scan_error (u, v, A68 (edit_line));
+ }
+ 
+ /* Concatenate lines that terminate in '\' with next line.  */
+ 
+ static void
+ concatenate_lines (LINE_T * top)
+ {
+   LINE_T *q;
+   /* Work from bottom backwards.  */
+   for (q = top; q != NO_LINE && NEXT (q) != NO_LINE; FORWARD (q))
+     ;
+ 
+   for (; q != NO_LINE; BACKWARD (q))
+     {
+       char *z = STRING (q);
+       size_t len = strlen (z);
+ 
+       if (len >= 2
+ 	  && z[len - 2] == BACKSLASH_CHAR
+ 	  && z[len - 1] == NEWLINE_CHAR
+ 	  && NEXT (q) != NO_LINE
+ 	  && STRING (NEXT (q)) != NO_TEXT)
+ 	{
+ 	  z[len - 2] = '\0';
+ 	  len += (int) strlen (STRING (NEXT (q)));
+ 	  z = (char *) xmalloc (len + 1);
+ 	  a68_bufcpy (z, STRING (q), len + 1);
+ 	  a68_bufcat (z, STRING (NEXT (q)), len + 1);
+ 	  STRING (NEXT (q))[0] = '\0';
+ 	  STRING (q) = z;
+ 	}
+     }
+ }
+ 
+ /* Read source file FILENAME and make internal copy.  */
+ 
+ static bool
+ read_source_file (const char *filename)
+ {
+   struct stat statbuf;
+   LINE_T *ref_l = NO_LINE;
+   int line_num = 0;
+   size_t k;
+   size_t bytes_read;
+   ssize_t l;
+   size_t source_file_size;
+   char *buffer;
+   FILE *f;
+   bool ret = true;
+ 
+   /* First open the given file.  */
+   if (!(FILE_SOURCE_FD (&A68_JOB) = fopen (filename, "r")))
+     fatal_error (UNKNOWN_LOCATION, "could not open source file %s",
+ 		 filename);
+   FILE_SOURCE_NAME (&A68_JOB) = ggc_strdup (filename);
+   f = FILE_SOURCE_FD (&A68_JOB);
+ 
+   if (fstat (fileno (f), &statbuf)
+       || !(S_ISREG (statbuf.st_mode) || S_ISCHR (statbuf.st_mode)))
+     fatal_error (UNKNOWN_LOCATION, "specified file %s is a directory",
+ 		 filename);
+ 
+   l = a68_file_size (fileno (f));
+   if (l < 0)
+     error ("could not get size of source file");
+   source_file_size = l;
+ 
+   /* Allocate A68_PARSER (scan_buf), which is an auxiliary buffer used by the
+      scanner known to be big enough to hold any string contained in the source
+      file.  */
+   A68_PARSER (max_scan_buf_length) = source_file_size + 1;
+   A68_PARSER (max_scan_buf_length) += 1024; /* For the environment.  */
+   A68_PARSER (scan_buf) = (char *) xmalloc (A68_PARSER (max_scan_buf_length));
+ 
+   /* Prelude.  */
+   append_environ (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING
+ 		  ? upper_prelude_start : supper_prelude_start,
+ 		  &ref_l, &line_num, "prelude");
+ 
+   /* Read the file into a single buffer, so we save on system calls.  */
+   line_num = 1;
+   buffer = (char *) xmalloc (8 + source_file_size);
+   bytes_read = a68_file_read (fileno (f), buffer, source_file_size);
+   gcc_assert (bytes_read == source_file_size);
+ 
+   /* Link all lines into the list.  */
+   k = 0;
+   while (k < source_file_size)
+     {
+       l = 0;
+       A68_PARSER (scan_buf)[0] = '\0';
+       while (k < source_file_size  && buffer[k] != NEWLINE_CHAR)
+ 	{
+ 	  if (k < source_file_size - 1
+ 	      && buffer[k] == CR_CHAR && buffer[k + 1] == NEWLINE_CHAR)
+ 	    k++;
+ 	  else
+ 	    {
+ 	      A68_PARSER (scan_buf)[l++] = buffer[k++];
+ 	      A68_PARSER (scan_buf)[l] = '\0';
+ 	    }
+ 	}
+       A68_PARSER (scan_buf)[l++] = NEWLINE_CHAR;
+       A68_PARSER (scan_buf)[l] = '\0';
+       if (k < source_file_size)
+ 	k++;
+       append_source_line (A68_PARSER (scan_buf), &ref_l, &line_num,
+ 			  FILE_SOURCE_NAME (&A68_JOB));
+       SCAN_ERROR (l != (ssize_t) strlen (A68_PARSER (scan_buf)),
+ 		  NO_LINE, NO_TEXT, "invalid characters in source file");
+     }
+ 
+   /* Postlude.  */
+   append_environ (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING
+ 		  ? upper_postlude : supper_postlude,
+ 		  &ref_l, &line_num, "postlude");
+ 
+   /* Concatenate lines that end with \.  */
+   concatenate_lines (TOP_LINE (&A68_JOB));
+ 
+   /* Include files.  */
+   include_files (TOP_LINE (&A68_JOB));
+ 
+   if (fclose (FILE_SOURCE_FD (&A68_JOB)) != 0)
+     gcc_unreachable ();
+   return ret;
+ }
+ 
+ /* Get next character from internal copy of source file.
+ 
+    If ALLOW_TYPO is true then typographical display features are skipped.
+ 
+    If ALLOW_ONE_UNDER is true then a single underscore character is
+    skipped.  */
+ 
+ static char
+ next_char (LINE_T **ref_l, char **ref_s, bool allow_typo,
+ 	   bool allow_one_under = false, bool *found_under = NULL)
+ {
+   char ch;
+ 
+   /* Empty source.  */
+   if (*ref_l == NO_LINE)
+     return STOP_CHAR;
+ 
+   if ((*ref_s)[0] == NEWLINE_CHAR || (*ref_s)[0] == '\0')
+     {
+       /* Go to new line.  */
+       *ref_l = NEXT (*ref_l);
+       if (*ref_l == NO_LINE)
+         return STOP_CHAR;
+       *ref_s = STRING (*ref_l);
+     }
+   else
+     (*ref_s)++;
+ 
+   /* Deliver next char.  */
+   ch = (*ref_s)[0];
+   if ((allow_typo && (ISSPACE (ch) || ch == FORMFEED_CHAR))
+       || (allow_one_under && ch == '_'))
+     {
+       if (ch == '_' && found_under != NULL)
+ 	*found_under = true;
+       ch = next_char (ref_l, ref_s, allow_typo);
+     }
+   return ch;
+ }
+ 
+ /* Find first character that can start a valid symbol.  */
+ 
+ static void
+ get_good_char (char *ref_c, LINE_T **ref_l, char **ref_s)
+ {
+   while (*ref_c != STOP_CHAR && (ISSPACE (*ref_c) || (*ref_c == '\0')))
+     *ref_c = next_char (ref_l, ref_s, false);
+ }
+ 
+ /* Case insensitive strncmp for at most the number of chars in V.  */
+ 
+ static int
+ streq (const char *u, const char *v)
+ {
+   int diff;
+   for (diff = 0; diff == 0 && u[0] != NULL_CHAR && v[0] != NULL_CHAR; u++, v++)
+     diff = ((int) TOLOWER (u[0])) - ((int) TOLOWER (v[0]));
+   return diff;
+ }
+ 
+ /* Case insensitive strncmp for at most N chars.  */
+ 
+ static int
+ strneq (const char *u, const char *v, size_t n)
+ {
+   int diff;
+   size_t pos = 0;
+   for (diff = 0;
+        diff == 0 && u[0] != NULL_CHAR && v[0] != NULL_CHAR && pos < n;
+        u++, v++, pos++)
+     diff = ((int) TOLOWER (u[0])) - ((int) TOLOWER (v[0]));
+   return diff;
+ }
+ 
+ 
+ /* Determine whether u is bold tag v, independent of stropping regime.  */
+ 
+ static bool
+ is_bold (char *u, const char *v)
+ {
+   size_t len = strlen (v);
+ 
+   if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING)
+     /* UPPER stropping.  */
+     return strncmp (u, v, len) == 0 && !ISUPPER (u[len]);
+   else
+     /* SUPPER stropping.  */
+     return (strlen (u) >= len
+ 	    && ISLOWER (u[0])
+ 	    && strneq (u, v, len) == 0
+ 	    && !ISALPHA (u[len])
+ 	    && !ISDIGIT (u[len]));
+ }
+ 
+ /* Skip a string denotation.
+ 
+    This function returns true if the end of the string denotation is found.
+    Returns false otherwise.  */
+ 
+ static bool
+ skip_string (LINE_T **top, char **ch)
+ {
+   LINE_T *u = *top;
+   char *v = *ch;
+   v++;
+   while (u != NO_LINE)
+     {
+       while (v[0] != NULL_CHAR)
+ 	{
+ 	  if (v[0] == QUOTE_CHAR && v[1] != QUOTE_CHAR)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else if (v[0] == QUOTE_CHAR && v[1] == QUOTE_CHAR)
+ 	    {
+ 	      v += 2;
+ 	    }
+ 	  else
+ 	    {
+ 	      v++;
+ 	    }
+ 	}
+       FORWARD (u);
+       if (u != NO_LINE) {
+ 	v = &(STRING (u)[0]);
+       } else {
+ 	v = NO_TEXT;
+       }
+     }
+   return false;
+ }
+ 
+ /* Skip a comment.
+ 
+    This function returns true if the end of the comment is found.  Returns
+    false otherwise.  */
+ 
+ static bool
+ skip_comment (LINE_T **top, char **ch, int delim)
+ {
+   LINE_T *u = *top;
+   char *v = *ch;
+   int nesting_level = 1;
+   v++;
+   while (u != NO_LINE)
+     {
+       while (v[0] != NULL_CHAR)
+ 	{
+ 	  LINE_T *l = u;
+ 	  char *c = v;
+ 
+ 	  if (v[0] == QUOTE_CHAR && skip_string (&l, &c)
+ 	      && (delim == BOLD_COMMENT_BEGIN_SYMBOL || delim == BRIEF_COMMENT_BEGIN_SYMBOL))
+ 	    {
+ 	      u = l;
+ 	      v = c;
+ 	    }
+ 	  else if (is_bold (v, "COMMENT") && delim == BOLD_COMMENT_SYMBOL)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else if (is_bold (v, "CO") && delim == STYLE_I_COMMENT_SYMBOL)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else if (v[0] == '#' && delim == STYLE_II_COMMENT_SYMBOL)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else if (is_bold (v, "ETON") && delim == BOLD_COMMENT_BEGIN_SYMBOL)
+ 	    {
+ 	      gcc_assert (nesting_level > 0);
+ 	      nesting_level -= 1;
+ 	      if (nesting_level == 0)
+ 		{
+ 		  *top = u;
+ 		  *ch = &v[1];
+ 		  return true;
+ 		}
+ 	    }
+ 	  else if (v[0] == '}' && delim == BRIEF_COMMENT_BEGIN_SYMBOL)
+ 	    {
+ 	      gcc_assert (nesting_level > 0);
+ 	      nesting_level -= 1;
+ 	      if (nesting_level == 0)
+ 		{
+ 		  *top = u;
+ 		  *ch = &v[1];
+ 		  return true;
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      if ((is_bold (v, "NOTE") && delim == BOLD_COMMENT_BEGIN_SYMBOL)
+ 		  || (v[0] == '{' && delim == BRIEF_COMMENT_BEGIN_SYMBOL))
+ 		{
+ 		  nesting_level += 1;
+ 		}
+ 
+ 	      v++;
+ 	    }
+ 	}
+       FORWARD (u);
+       if (u != NO_LINE)
+ 	v = &(STRING (u)[0]);
+       else
+ 	v = NO_TEXT;
+     }
+ 
+   return false;
+ }
+ 
+ /* Skip rest of pragmat.
+ 
+    This function returns true if the end of the pragmat is found, false
+    otherwise.  */
+ 
+ static bool
+ skip_pragmat (LINE_T **top, char **ch, int delim, bool whitespace)
+ {
+   LINE_T *u = *top;
+   char *v = *ch;
+   while (u != NO_LINE)
+     {
+       while (v[0] != NULL_CHAR)
+ 	{
+ 	  if (is_bold (v, "PRAGMAT") && delim == BOLD_PRAGMAT_SYMBOL)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else if (is_bold (v, "PR") && delim == STYLE_I_PRAGMAT_SYMBOL)
+ 	    {
+ 	      *top = u;
+ 	      *ch = &v[1];
+ 	      return true;
+ 	    }
+ 	  else
+ 	    {
+ 	      if (whitespace && !ISSPACE (v[0]) && v[0] != NEWLINE_CHAR)
+ 		{
+ 		  SCAN_ERROR (true, u, v, "error in pragment");
+ 		}
+ 	      else if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING && ISUPPER (v[0]))
+ 		{
+ 		  /* Skip a bold word as you may trigger on REPR, for
+ 		     instance.  */
+ 		  while (ISUPPER (v[0]))
+ 		    v++;
+ 		}
+ 	      else if (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING && ISLOWER (v[0]))
+ 		{
+ 		  /* Skip a tag as you may trigger on expr, for instance.  */
+ 		  while (ISLOWER (v[0]) || ISDIGIT (v[0]) || v[0] == '_')
+ 		    v++;
+ 		}
+ 	      else
+ 		{
+ 		  v++;
+ 		}
+ 	    }
+ 	}
+ 
+       FORWARD (u);
+       if (u != NO_LINE)
+ 	v = &(STRING (u)[0]);
+       else
+ 	v = NO_TEXT;
+     }
+ 
+   return false;
+ }
+ 
+ /* Return pointer to next token within pragmat.  */
+ 
+ static char *
+ get_pragmat_item (LINE_T **top, char **ch)
+ {
+   LINE_T *u = *top;
+   char *v = *ch;
+   while (u != NO_LINE)
+     {
+       while (v[0] != NULL_CHAR)
+ 	{
+ 	  if (!ISSPACE (v[0]) && v[0] != NEWLINE_CHAR)
+ 	    {
+ 	      *top = u;
+ 	      *ch = v;
+ 	      return v;
+ 	    }
+ 	  else
+ 	    {
+ 	      v++;
+ 	    }
+ 	}
+       FORWARD (u);
+       if (u != NO_LINE)
+ 	v = &(STRING (u)[0]);
+       else
+ 	v = NO_TEXT;
+   }
+ 
+   return NO_TEXT;
+ }
+ 
+ /* Scan for the next pragmat and yield the first item within it.  */
+ 
+ static char *
+ next_preprocessor_item (LINE_T **top, char **ch, int *delim)
+ {
+   LINE_T *u = *top;
+   char *v = *ch;
+   *delim = 0;
+   while (u != NO_LINE)
+     {
+       while (v[0] != NULL_CHAR)
+ 	{
+ 	  LINE_T *start_l = u;
+ 	  char *start_c = v;
+ 
+ 	  if (v[0] == QUOTE_CHAR)
+ 	    {
+ 	      /* Skip string denotation.  */
+ 	      SCAN_ERROR (!skip_string (&u, &v), start_l, start_c,
+ 			  "unterminated string");
+ 	    }
+ 	  else if (a68_find_keyword (A68 (top_keyword), "COMMENT") != NO_KEYWORD
+ 		   && is_bold (v, "COMMENT"))
+ 	    {
+ 	      /* Skip comment.  */
+ 	      SCAN_ERROR (!skip_comment (&u, &v, BOLD_COMMENT_SYMBOL), start_l, start_c,
+ 			  "unterminated comment");
+ 	    }
+ 	  else if (a68_find_keyword (A68 (top_keyword), "CO") != NO_KEYWORD
+ 		   && is_bold (v, "CO"))
+ 	    {
+ 	      /* skip comment.  */
+ 	      SCAN_ERROR (!skip_comment (&u, &v, STYLE_I_COMMENT_SYMBOL), start_l, start_c,
+ 			  "unterminated comment");
+ 	    }
+ 	  else if (a68_find_keyword (A68 (top_keyword), "#") != NO_KEYWORD
+ 		   && v[0] == '#')
+ 	    {
+ 	      SCAN_ERROR (!skip_comment (&u, &v, STYLE_II_COMMENT_SYMBOL), start_l, start_c,
+ 			  "unterminated comment");
+ 	    }
+ 	  else if (a68_find_keyword (A68 (top_keyword), "NOTE") != NO_KEYWORD
+ 		   && is_bold (v, "NOTE"))
+ 	    {
+ 	      SCAN_ERROR (!skip_comment (&u, &v, BOLD_COMMENT_BEGIN_SYMBOL), start_l, start_c,
+ 			  "unterminated comment");
+ 	    }
+ 	  else if (a68_find_keyword (A68 (top_keyword), "{") != NO_KEYWORD
+ 		   && v[0] == '{')
+ 	    {
+ 	      SCAN_ERROR (!skip_comment (&u, &v, BRIEF_COMMENT_BEGIN_SYMBOL), start_l, start_c,
+ 			  "unterminated comment");
+ 	    }
+ 	  else if (is_bold (v, "PRAGMAT") || is_bold (v, "PR"))
+ 	    {
+ 	      /* We caught a PRAGMAT.  */
+ 	      char *item;
+ 	      if (is_bold (v, "PRAGMAT"))
+ 		{
+ 		  *delim = BOLD_PRAGMAT_SYMBOL;
+ 		  v = &v[strlen ("PRAGMAT")];
+ 		}
+ 	      else if (is_bold (v, "PR"))
+ 		{
+ 		  *delim = STYLE_I_PRAGMAT_SYMBOL;
+ 		  v = &v[strlen ("PR")];
+ 		}
+ 	      item = get_pragmat_item (&u, &v);
+ 	      SCAN_ERROR (item == NO_TEXT, start_l, start_c,
+ 			  "unterminated pragmat");
+ 
+ 	      if (streq (item, "INCLUDE") == 0)
+ 		{
+ 		  /* Item "INCLUDE" includes a file.  */
+ 		  *top = u;
+ 		  *ch = v;
+ 		  return item;
+ 		}
+ 	      else
+ 		{
+ 		  /* Unrecognised item - probably options handled later by the
+ 		     tokeniser.  */
+ 		  SCAN_ERROR (!skip_pragmat (&u, &v, *delim, false), start_l, start_c,
+ 			      "unterminated pragmat");
+ 		}
+ 	    }
+ 	  else if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING && ISUPPER (v[0]))
+ 	    {
+ 	      /* Skip a bold word as you may trigger on REPR, for instance.  */
+ 	      while (ISUPPER (v[0]))
+ 		v++;
+ 	    }
+ 	  else if (OPTION_STROPPING (&A68_JOB) == SUPPER_STROPPING && ISLOWER (v[0]))
+ 	    {
+ 	      /* Skip a tag as you may trigger on expr, for instance.  */
+ 	      while (ISLOWER (v[0]) || ISDIGIT (v[0]) || v[0] == '_')
+ 		v++;
+ 	    }
+ 	  else
+ 	    {
+ 	      v++;
+ 	    }
+ 	}
+ 
+       FORWARD (u);
+       if (u != NO_LINE)
+ 	v = &(STRING (u)[0]);
+       else
+ 	v = NO_TEXT;
+     }
+ 
+   *top = u;
+   *ch = v;
+   return NO_TEXT;
+ }
+ 
+ /* Concatenate the two paths P1 and P2.  */
+ 
+ static char *
+ a68_relpath (const char *p1, const char *p2, const char *fn)
+ {
+ #if defined(__GNU__)
+   /* The Hurd doesn't define PATH_MAX.  */
+ # define PATH_MAX 4096
+ #endif
+ 
+   char q[PATH_MAX + 1];
+   a68_bufcpy (q, p1, PATH_MAX);
+   a68_bufcat (q, "/", PATH_MAX);
+   a68_bufcat (q, p2, PATH_MAX);
+   a68_bufcat (q, "/", PATH_MAX);
+   a68_bufcat (q, fn, PATH_MAX);
+   /* Home directory shortcut ~ is a shell extension.  */
+   if (strchr (q, '~') != NO_TEXT) {
+     return NO_TEXT;
+   }
+   char *r = (char *) xmalloc (PATH_MAX + 1);
+   gcc_assert (r != NULL);
+   /*  Error handling in the caller!  */
+   errno = 0;
+   r = lrealpath (q);
+   return r;
+ }
+ 
+ /* Return true if we can open the file for reading.  False otherwise.  */
+ 
+ static bool
+ file_read_p (const char *filename)
+ {
+   return access (filename, R_OK) == 0 ? true : false;
+ }
+ 
+ /* Find a file to include into the current source being parsed.  Search the file
+    system for FILENAME and return a string with the file path.  If the file is
+    not found, return NULL.
+ 
+    When FILENAME is not an absolute path we first try to find it relative to the
+    current file being parsed (CURFILE). Failing to do that we use the search
+    paths provided by the -I option.  */
+ 
+ static char *
+ find_include_file (const char *curfile, const char *filename)
+ {
+   char *filepath = NO_TEXT;
+   char *tmpfpath = NO_TEXT;
+   char *fnbdir = ldirname (filename);
+   const char *incfile = lbasename (filename);
+ 
+   if (fnbdir == NULL || incfile == NULL)
+     gcc_unreachable ();
+ 
+   if (!IS_ABSOLUTE_PATH (filename))
+     {
+       char *sourcedir = ldirname (curfile);
+ 
+       if (sourcedir == NULL || fnbdir == NULL)
+ 	gcc_unreachable ();
+ 
+       if (strlen (sourcedir) == 0 && strlen (fnbdir) == 0)
+ 	{
+ 	  free (sourcedir);
+ 	  sourcedir = (char *) xmalloc (2);
+ 	  a68_bufcpy (sourcedir, ".", 2);
+ 	}
+ 
+       tmpfpath = a68_relpath (sourcedir, fnbdir, incfile);
+       if (file_read_p (tmpfpath))
+ 	{
+ 	  filepath = tmpfpath;
+ 	  goto cleanup;
+ 	}
+ 
+       for (unsigned ix = 0; ix != vec_safe_length (A68_INCLUDE_PATHS); ix++)
+ 	{
+ 	  const char *include_dir = (*(A68_INCLUDE_PATHS))[ix];
+ 	  tmpfpath = a68_relpath (include_dir, fnbdir, incfile);
+ 	  if (!IS_ABSOLUTE_PATH (tmpfpath))
+ 	    tmpfpath = a68_relpath (sourcedir, fnbdir, incfile);
+ 	  if (file_read_p (tmpfpath))
+ 	    {
+ 	      filepath = tmpfpath;
+ 	      goto cleanup;
+ 	    }
+ 	}
+ 
+     cleanup:
+       free (sourcedir);
+       goto end;
+     }
+   else
+     {
+       size_t fnwid = (int) strlen (filename) + 1;
+       tmpfpath = (char *) xmalloc ((size_t) fnwid);
+       a68_bufcpy (tmpfpath, filename, fnwid);
+ 
+       if (file_read_p (tmpfpath))
+ 	{
+ 	  filepath = tmpfpath;
+ 	  goto end;
+ 	}
+     }
+ 
+ end:
+   free (fnbdir);
+   return filepath;
+ }
+ 
+ /* Include files.
+    This function handles the INCLUDE pragmat in the source file.  */
+ 
+ static void
+ include_files (LINE_T *top)
+ {
+   /* syntax: PR include "filename" PR
+ 
+      The file gets inserted before the line containing the pragmat. In this way
+      correct line numbers are preserved which helps diagnostics. A file that
+      has been included will not be included a second time - it will be ignored.
+      A rigorous fail-safe, but there is no mechanism to prevent recursive
+      includes in A68 source code. User reports do not indicate sophisticated
+      use of INCLUDE, so this is fine for now.
+   */
+ 
+   bool make_pass = true;
+   while (make_pass)
+     {
+       LINE_T *s, *t, *u = top;
+       char *v = &(STRING (u)[0]);
+       make_pass = false;
+       errno = 0;
+       while (u != NO_LINE)
+ 	{
+ 	  int pr_lim;
+ 	  char *item = next_preprocessor_item (&u, &v, &pr_lim);
+ 	  LINE_T *start_l = u;
+ 	  char *start_c = v;
+ 	  /* Search for PR include "filename" PR.  */
+ 	  if (item != NO_TEXT && streq (item, "INCLUDE") == 0)
+ 	    {
+ 	      FILE *fp;
+ 	      size_t fsize, k;
+ 	      ssize_t ssize;
+ 	      int n, linum, bytes_read;
+ 	      char *fbuf, delim;
+ 	      BUFFER fnb;
+ 	      char *fn = NO_TEXT;
+ 	      /* Skip to filename.  */
+ 	      while (ISALPHA (v[0]))
+ 		v++;
+ 	      while (ISSPACE (v[0]))
+ 		v++;
+ 	      /* Scan quoted filename.  */
+ 	      SCAN_ERROR ((v[0] != QUOTE_CHAR && v[0] != '\''), start_l, start_c,
+ 			  "incorrect filename");
+ 	      delim = (v++)[0];
+ 	      n = 0;
+ 	      fnb[0] = NULL_CHAR;
+ 	      /* Scan Algol 68 string (note: "" denotes a ", while in C it
+ 		 concatenates).  */
+ 	      do
+ 		{
+ 		  SCAN_ERROR (EOL (v[0]), start_l, start_c,
+ 			      "incorrect filename");
+ 		  SCAN_ERROR (n == BUFFER_SIZE - 1, start_l, start_c,
+ 			      "incorrect filename");
+ 		  if (v[0] == delim)
+ 		    {
+ 		      while (v[0] == delim && v[1] == delim)
+ 			{
+ 			  SCAN_ERROR (n == BUFFER_SIZE - 1, start_l, start_c,
+ 				      "incorrect filename");
+ 			  fnb[n++] = delim;
+ 			  fnb[n] = NULL_CHAR;
+ 			  v += 2;
+ 			}
+ 		    }
+ 		  else if (ISPRINT (v[0]))
+ 		    {
+ 		      fnb[n++] = *(v++);
+ 		      fnb[n] = NULL_CHAR;
+ 		    }
+ 		  else
+ 		    {
+ 		      SCAN_ERROR (true, start_l, start_c,
+ 				  "incorrect filename");
+ 		    }
+ 		}
+ 	      while (v[0] != delim);
+ 
+ 	      /* Insist that the pragmat is closed properly.  */
+ 	      v = &v[1];
+ 	      SCAN_ERROR (!skip_pragmat (&u, &v, pr_lim, true), start_l, start_c,
+ 			  "unterminated pragmat");
+ 	      SCAN_ERROR (n == 0, start_l, start_c,
+ 			  "incorrect filename");
+ 
+ 	      char *sourcefile = NO_TEXT;
+ 	      if (FILENAME (u) != NO_TEXT)
+ 		{
+ 		  sourcefile = xstrdup (FILENAME (u));
+ 		}
+ 	      else
+ 		{
+ 		  sourcefile = (char *) xmalloc (2);
+ 		  a68_bufcpy (sourcefile, ".", 1);
+ 		}
+ 	      fn = find_include_file (sourcefile, fnb);
+ 	      free (sourcefile);
+ 
+ 	      /* Do not check errno, since errno may be undefined here
+ 		 after a successful call.  */
+ 	      if (fn != NO_TEXT)
+ 		a68_bufcpy (fnb, fn, BUFFER_SIZE);
+ 	      else
+ 		{
+ 		  SCAN_ERROR (true, start_l, start_c,
+ 			      "included file not found");
+ 		}
+ 	      size_t fnwid = (int) strlen (fnb) + 1;
+ 	      fn = (char *) xmalloc ((size_t) fnwid);
+ 	      a68_bufcpy (fn, fnb, fnwid);
+ 
+ 	      /* Ignore the file when included more than once.  */
+ 	      for (t = top; t != NO_LINE; t = NEXT (t))
+ 		{
+ 		  if (strcmp (FILENAME (t), fn) == 0)
+ 		    goto search_next_pragmat;
+ 		}
+ 	      t = NO_LINE;
+ 
+ 	      /* Access the file.  */
+ 	      fp = fopen (fn, "r");
+ 	      SCAN_ERROR (fp == NULL, start_l, start_c,
+ 			  "error opening included file");
+ 	      ssize = a68_file_size (fileno (fp));
+ 	      SCAN_ERROR (ssize < 0, start_l, start_c,
+ 			  "error getting included file size");
+ 	      fsize = ssize;
+ 	      fbuf = (char *) xmalloc (8 + fsize);
+ 	      bytes_read = (int) a68_file_read (fileno (fp), fbuf, (size_t) fsize);
+ 	      SCAN_ERROR ((size_t) bytes_read != fsize, start_l, start_c,
+ 			  "error while reading file");
+ 
+ 	      /* Buffer still usable?.  */
+ 	      if (fsize > A68_PARSER (max_scan_buf_length))
+ 		{
+ 		  A68_PARSER (max_scan_buf_length) = fsize;
+ 		  A68_PARSER (scan_buf) = (char *) xmalloc (8 + A68_PARSER (max_scan_buf_length));
+ 		}
+ 
+ 	      /* Link all lines into the list.  */
+ 	      linum = 1;
+ 	      s = u;
+ 	      t = PREVIOUS (u);
+ 	      k = 0;
+ 	      if (fsize == 0)
+ 		{
+ 		  /* If file is empty, insert single empty line.  */
+ 		  A68_PARSER (scan_buf)[0] = NEWLINE_CHAR;
+ 		  A68_PARSER (scan_buf)[1] = NULL_CHAR;
+ 		  append_source_line (A68_PARSER (scan_buf), &t, &linum, fn);
+ 		}
+ 	      else
+ 		{
+ 		  while (k < fsize)
+ 		    {
+ 		      n = 0;
+ 		      A68_PARSER (scan_buf)[0] = NULL_CHAR;
+ 		      while (k < fsize && fbuf[k] != NEWLINE_CHAR)
+ 			{
+ 			  SCAN_ERROR ((ISCNTRL (fbuf[k]) && !ISSPACE (fbuf[k]))
+ 				      || fbuf[k] == STOP_CHAR,
+ 				      start_l, start_c,
+ 				      "invalid characters in included file");
+ 			  A68_PARSER (scan_buf)[n++] = fbuf[k++];
+ 			  A68_PARSER (scan_buf)[n] = NULL_CHAR;
+ 			}
+ 		      A68_PARSER (scan_buf)[n++] = NEWLINE_CHAR;
+ 		      A68_PARSER (scan_buf)[n] = NULL_CHAR;
+ 		      if (k < fsize)
+ 			k++;
+ 		      append_source_line (A68_PARSER (scan_buf), &t, &linum, fn);
+ 		    }
+ 		}
+ 
+ 	      /* Conclude and go find another include directive, if any.  */
+ 	      NEXT (t) = s;
+ 	      PREVIOUS (s) = t;
+ 	      concatenate_lines (top);
+ 	      if (fclose (fp) != 0)
+ 		gcc_unreachable ();
+ 	      make_pass = true;
+ 	    }
+ 	search_next_pragmat:
+ 	  { (void) 0; };
+ 	}
+     }
+ }
+ 
+ /* Handle a pragment (pragmat or comment).  */
+ 
+ static char *
+ pragment (int type, LINE_T **ref_l, char **ref_c)
+ {
+ #define INIT_BUFFER					\
+   do							\
+     {							\
+       chars_in_buf = 0;					\
+       A68_PARSER (scan_buf)[chars_in_buf] = '\0';	\
+     }							\
+   while (0)
+ 
+ #define ADD_ONE_CHAR(CH)						\
+   do									\
+     {									\
+       A68_PARSER (scan_buf)[chars_in_buf ++] = (CH);			\
+       A68_PARSER (scan_buf)[chars_in_buf] = '\0';			\
+     }									\
+   while (0)
+ 
+   const char *term_s = NO_TEXT;
+   const char *beg_s = NO_TEXT;
+   char c = **ref_c, *start_c = *ref_c;
+   char *z = NO_TEXT;
+   LINE_T *start_l = *ref_l;
+   int beg_s_length, term_s_length, chars_in_buf;
+   bool stop, pragmat = false;
+ 
+   /* Set terminator to look for.  */
+   if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING)
+     {
+       if (type == STYLE_I_COMMENT_SYMBOL)
+ 	term_s = "CO";
+       else if (type == STYLE_II_COMMENT_SYMBOL)
+ 	term_s = "#";
+       else if (type == BOLD_COMMENT_SYMBOL)
+ 	term_s = "COMMENT";
+       else if (type == BOLD_COMMENT_BEGIN_SYMBOL)
+ 	{
+ 	  beg_s = "NOTE";
+ 	  term_s = "ETON";
+ 	}
+       else if (type == BRIEF_COMMENT_BEGIN_SYMBOL)
+ 	{
+ 	  beg_s = "{";
+ 	  term_s = "}";
+ 	}
+       else if (type == STYLE_I_PRAGMAT_SYMBOL)
+ 	{
+ 	  term_s = "PR";
+ 	  pragmat = true;
+ 	}
+       else if (type == BOLD_PRAGMAT_SYMBOL)
+ 	{
+ 	  term_s = "PRAGMAT";
+ 	  pragmat = true;
+ 	}
+     }
+   else
+     {
+       /* SUPPER stropping.  */
+       if (type == STYLE_I_COMMENT_SYMBOL)
+ 	term_s = "co";
+       else if (type == STYLE_II_COMMENT_SYMBOL)
+ 	term_s = "#";
+       else if (type == BOLD_COMMENT_SYMBOL)
+ 	term_s = "comment";
+       else if (type == BOLD_COMMENT_BEGIN_SYMBOL)
+ 	{
+ 	  beg_s = "note";
+ 	  term_s = "eton";
+ 	}
+       else if (type == BRIEF_COMMENT_BEGIN_SYMBOL)
+ 	{
+ 	  beg_s = "{";
+ 	  term_s = "}";
+ 	}
+       else if (type == STYLE_I_PRAGMAT_SYMBOL)
+ 	{
+ 	  term_s = "pr";
+ 	  pragmat = true;
+ 	}
+       else if (type == BOLD_PRAGMAT_SYMBOL)
+ 	{
+ 	  term_s = "pragmat";
+ 	  pragmat = true;
+ 	}
+     }
+ 
+   beg_s_length = (beg_s != NO_TEXT ? (int) strlen (beg_s) : 0);
+   term_s_length = (int) strlen (term_s);
+ 
+   /* Scan for terminator.  */
+   bool nestable_comment = (beg_s != NO_TEXT);
+   int nesting_level = 1;
+   INIT_BUFFER;
+   stop = false;
+   while (stop == false)
+     {
+       SCAN_ERROR (c == STOP_CHAR, start_l, start_c,
+ 		  "unterminated pragment");
+ 
+       /* A ".." or '..' delimited string in a PRAGMAT, or
+ 	 a ".." in a nestable comment.  */
+       if ((pragmat && (c == QUOTE_CHAR || c == '\''))
+ 	  || (nestable_comment && c == QUOTE_CHAR))
+ 	{
+ 	  char delim = c;
+ 	  bool eos = false;
+ 	  ADD_ONE_CHAR (c);
+ 	  c = next_char (ref_l, ref_c, false);
+ 	  while (!eos)
+ 	    {
+ 	      SCAN_ERROR (EOL (c), start_l, start_c,
+ 			  "string within pragment exceeds end of line");
+ 
+ 	      if (c == delim)
+ 		{
+ 		  ADD_ONE_CHAR (delim);
+ 		  save_state (*ref_l, *ref_c, c);
+ 		  c = next_char (ref_l, ref_c, false);
+ 		  if (c == delim)
+ 		    c = next_char (ref_l, ref_c, false);
+ 		  else
+ 		    {
+ 		      restore_state (ref_l, ref_c, &c);
+ 		      eos = true;
+ 		    }
+ 		}
+ 	      else if (ISPRINT (c))
+ 		{
+ 		  ADD_ONE_CHAR (c);
+ 		  c = next_char (ref_l, ref_c, false);
+ 		}
+ 	      else
+ 		unworthy (start_l, start_c, c);
+ 	    }
+ 	}
+       else if (EOL (c))
+ 	ADD_ONE_CHAR (NEWLINE_CHAR);
+       else if (ISPRINT (c) || ISSPACE (c))
+ 	ADD_ONE_CHAR (c);
+ 
+       if (nestable_comment && chars_in_buf >= beg_s_length)
+ 	{
+ 	  /* If we find another instance of the nestable begin mark, bump the
+ 	     nesting level and continue scanning.  */
+ 	  if (strcmp (beg_s,
+ 		      &(A68_PARSER (scan_buf)[chars_in_buf - beg_s_length])) == 0)
+ 	    {
+ 	      nesting_level += 1;
+ 	      goto nextchar;
+ 	    }
+ 	}
+ 
+       if (chars_in_buf >= term_s_length)
+ 	{
+ 	  /* Check whether we encountered the terminator.  Mind nesting if
+ 	     necessary.  */
+ 	  if (strcmp (term_s,
+ 		      &(A68_PARSER (scan_buf)[chars_in_buf - term_s_length])) == 0)
+ 	    {
+ 	      if (nestable_comment)
+ 		{
+ 		  gcc_assert (nesting_level > 0);
+ 		  nesting_level -= 1;
+ 		  stop = (nesting_level == 0);
+ 		}
+ 	      else
+ 		stop = true;
+ 	    }
+ 	}
+ 
+     nextchar:
+       c = next_char (ref_l, ref_c, false);
+     }
+ 
+   A68_PARSER (scan_buf)[chars_in_buf - term_s_length] = '\0';
+   z = a68_new_string (term_s, A68_PARSER (scan_buf), term_s, NO_TEXT);
+   return z;
+ #undef ADD_ONE_CHAR
+ #undef INIT_BUFFER
+ }
+ 
+ /* Whether input shows exponent character.  */
+ 
+ static bool
+ is_exp_char (LINE_T **ref_l, char **ref_s, char *ch)
+ {
+   bool ret = false;
+ 
+   char exp_syms[3];
+ 
+   /* Note that this works for both UPPER and SUPPER stropping regimes.  */
+   exp_syms[0] = EXPONENT_CHAR;
+   exp_syms[1] = TOUPPER (EXPONENT_CHAR);
+   exp_syms[2] = '\0';
+ 
+   save_state (*ref_l, *ref_s, *ch);
+   if (strchr (exp_syms, *ch) != NO_TEXT)
+     {
+       *ch = next_char (ref_l, ref_s, true);
+       ret = (strchr ("+-0123456789", *ch) != NO_TEXT);
+     }
+   restore_state (ref_l, ref_s, ch);
+   return ret;
+ }
+ 
+ /* Whether input shows radix character.  */
+ 
+ static bool
+ is_radix_char (LINE_T **ref_l, char **ref_s, char *ch)
+ {
+   bool ret = false;
+ 
+   save_state (*ref_l, *ref_s, *ch);
+   /* Note that this works for both UPPER and SUPPER stropping regimes.  */
+   if (*ch == RADIX_CHAR)
+     {
+       *ch = next_char (ref_l, ref_s, true);
+       ret = (strchr ("0123456789abcdef", *ch) != NO_TEXT);
+     }
+   restore_state (ref_l, ref_s, ch);
+   return ret;
+ }
+ 
+ /* Whether input shows decimal point.  */
+ 
+ static bool
+ is_decimal_point (LINE_T **ref_l, char **ref_s, char *ch)
+ {
+   bool ret = false;
+ 
+   save_state (*ref_l, *ref_s, *ch);
+   if (*ch == POINT_CHAR)
+     {
+       char exp_syms[3];
+ 
+       /* Note that this works for both UPPER and SUPPER stropping regimes.  */
+       exp_syms[0] = EXPONENT_CHAR;
+       exp_syms[1] = TOUPPER (EXPONENT_CHAR);
+       exp_syms[2] = '\0';
+ 
+       *ch = next_char (ref_l, ref_s, true);
+       if (strchr (exp_syms, *ch) != NO_TEXT)
+ 	{
+ 	  *ch = next_char (ref_l, ref_s, true);
+ 	  ret = (strchr ("+-0123456789", *ch) != NO_TEXT);
+ 	}
+       else
+ 	ret = (strchr ("0123456789", *ch) != NO_TEXT);
+     }
+   restore_state (ref_l, ref_s, ch);
+   return ret;
+ }
+ 
+ /* Attribute for format item.  */
+ 
+ static enum a68_attribute
+ get_format_item (char ch)
+ {
+   switch (TOLOWER (ch))
+     {
+     case 'a':
+       return FORMAT_ITEM_A;
+     case 'b':
+       return FORMAT_ITEM_B;
+     case 'c':
+       return FORMAT_ITEM_C;
+     case 'd':
+       return FORMAT_ITEM_D;
+     case 'e':
+       return FORMAT_ITEM_E;
+     case 'f':
+       return FORMAT_ITEM_F;
+     case 'g':
+       return FORMAT_ITEM_G;
+     case 'h':
+       return FORMAT_ITEM_H;
+     case 'i':
+       return FORMAT_ITEM_I;
+     case 'j':
+       return FORMAT_ITEM_J;
+     case 'k':
+       return FORMAT_ITEM_K;
+     case 'l':
+     case '/':
+       return FORMAT_ITEM_L;
+     case 'm':
+       return FORMAT_ITEM_M;
+     case 'n':
+       return FORMAT_ITEM_N;
+     case 'o':
+       return FORMAT_ITEM_O;
+     case 'p':
+       return FORMAT_ITEM_P;
+     case 'q':
+       return FORMAT_ITEM_Q;
+     case 'r':
+       return FORMAT_ITEM_R;
+     case 's':
+       return FORMAT_ITEM_S;
+     case 't':
+       return FORMAT_ITEM_T;
+     case 'u':
+       return FORMAT_ITEM_U;
+     case 'v':
+       return FORMAT_ITEM_V;
+     case 'w':
+       return FORMAT_ITEM_W;
+     case 'x':
+       return FORMAT_ITEM_X;
+     case 'y':
+       return FORMAT_ITEM_Y;
+     case 'z':
+       return FORMAT_ITEM_Z;
+     case '+':
+       return FORMAT_ITEM_PLUS;
+     case '-':
+       return FORMAT_ITEM_MINUS;
+     case POINT_CHAR:
+       return FORMAT_ITEM_POINT;
+     case '%':
+       return FORMAT_ITEM_ESCAPE;
+     default:
+       return STOP;
+     }
+ }
+ 
+ /* Get next token from internal copy of source file.
+ 
+    The kind of token is set via the passed pointer ATTR.
+    The contents of token is set in the scan_buf via SYM.
+ 
+    The recognized tokens are, by reported ATTR:
+ 
+    <unset>
+      End of file.
+    FORMAT_ITEM_*
+      Item in a format.
+    STATIC_REPLICATOR
+      INT denotation for a static replicator in a format.
+    BOLD_TAG
+      Bold tag.
+    IDENTIFIER
+      A "lower case" identifier.
+    IDENTIFIER_WITH_UNDERSCORES
+      A "lower case" identifier whose's at least one taggle
+      was found adjacent to an underscore.
+    REAL_DENOTATION
+      A REAL denotation.
+    POINT_SYMBOL
+      .
+    BITS_DENOTATION
+      A BITS denotation like 16rffff
+    INT_DENOTATION
+      An INT denotation.
+    ROW_CHAR_DENOTATION
+      A STRING denotation.
+    LITERAL
+      A literal denotation in a format.
+    STOP
+      Single-character symbols #$()[]{},;@|:
+      := /= :=: :/=:
+      The character is placed in SYM.
+    EQUALS_SYMBOL
+      The equality symbol.
+    OPERATOR
+      A predefined operator.
+ */
+ 
+ static void
+ get_next_token (bool in_format,
+ 		LINE_T **ref_l, char **ref_s,
+ 		LINE_T **start_l, char **start_c, enum a68_attribute *att)
+ {
+   char c = **ref_s;
+   char *sym = A68_PARSER (scan_buf);
+ 
+   sym[0] = '\0';
+   get_good_char (&c, ref_l, ref_s);
+   *start_l = *ref_l;
+   *start_c = *ref_s;
+   if (c == STOP_CHAR)
+     {
+       /* We are at EOF.  */
+       (sym++)[0] = STOP_CHAR;
+       sym[0] = '\0';
+       return;
+     }
+ 
+   if (in_format)
+     {
+       /* In a format.  */
+       const char *format_items = "/%\\+-.abcdefghijklmnopqrstuvwxyz";
+       if (strchr (format_items, c) != NO_TEXT)
+ 	{
+ 	  /* General format items.  */
+ 	  (sym++)[0] = c;
+ 	  sym[0] = NULL_CHAR;
+ 	  *att = get_format_item (c);
+ 	  (void) next_char (ref_l, ref_s, false);
+ 	  return;
+ 	}
+       if (ISDIGIT (c))
+ 	{
+ 	  /* INT denotation for static replicator.  */
+ 	  SCAN_DIGITS (c);
+ 	  sym[0] = NULL_CHAR;
+ 	  *att = STATIC_REPLICATOR;
+ 	  return;
+ 	}
+     }
+ 
+   if (ISUPPER (c))
+     {
+       /* Bold taggles are enabled only in gnu68.  */
+       bool allow_one_under = !OPTION_STRICT (&A68_JOB);
+ 
+       if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING)
+ 	{
+ 	  /* In UPPER stropping a bold tag is an upper case word.  */
+ 	  while (ISUPPER (c))
+ 	    {
+ 	      (sym++)[0] = c;
+ 	      c = next_char (ref_l, ref_s, false, allow_one_under);
+ 	    }
+ 	  sym[0] = '\0';
+ 	  *att = BOLD_TAG;
+ 	}
+       else
+ 	{
+ 	  /* In SUPPER stropping a bold tag is a capitalized word that may
+ 	     contain letters and digits.  */
+ 	  while (ISALPHA (c) || ISDIGIT (c))
+ 	    {
+ 	      (sym++)[0] = c;
+ 	      c = next_char (ref_l, ref_s, false, allow_one_under);
+ 	    }
+ 	  sym[0] = '\0';
+ 	  *att = BOLD_TAG;
+ 	}
+     }
+   else if (ISLOWER (c))
+     {
+       /* In both UPPER and SUPPER stropping regimes a tag is a lower case word
+ 	 which may contain letters and digits.
+ 
+ 	 In SUPPER stropping, however, it is not allowed to have blanks
+ 	 separating the taggles within tags.  */
+ 
+       bool allow_one_under = true;
+       bool found_under = false;
+       bool allow_typo = OPTION_STROPPING (&A68_JOB) != SUPPER_STROPPING;
+ 
+       /* Lower case word - identifier.  */
+       while (ISLOWER (c) || ISDIGIT (c))
+ 	{
+ 	  (sym++)[0] = c;
+ 	  c = next_char (ref_l, ref_s, allow_typo, allow_one_under,
+ 			 &found_under);
+ 	}
+ 
+       sym[0] = '\0';
+       *att = found_under ? IDENTIFIER_WITH_UNDERSCORES : IDENTIFIER;
+     }
+   else if (c == POINT_CHAR)
+     {
+       /* Begins with a point symbol - point, L REAL denotation.  */
+       if (is_decimal_point (ref_l, ref_s, &c))
+ 	{
+ 	  (sym++)[0] = '0';
+ 	  (sym++)[0] = POINT_CHAR;
+ 	  c = next_char (ref_l, ref_s, true);
+ 	  SCAN_DIGITS (c);
+ 	  if (is_exp_char (ref_l, ref_s, &c))
+ 	    SCAN_EXPONENT_PART (c);
+ 	  sym[0] = '\0';
+ 	  *att = REAL_DENOTATION;
+ 	}
+       else
+ 	{
+ 	  c = next_char (ref_l, ref_s, true);
+ 	  (sym++)[0] = POINT_CHAR;
+ 	  sym[0] = '\0';
+ 	  *att = POINT_SYMBOL;
+ 	}
+     }
+   else if (!OPTION_STRICT (&A68_JOB) && c == SINGLE_QUOTE_CHAR)
+     {
+       c = next_char (ref_l, ref_s, true);
+       (sym++)[0] = SINGLE_QUOTE_CHAR;
+       sym[0] = '\0';
+       *att = QUOTE_SYMBOL;
+     }
+   else if (ISDIGIT (c))
+     {
+       /* Something that begins with a digit:
+ 	 L INT denotation, L REAL denotation.  */
+       SCAN_DIGITS (c);
+ 
+       if (is_decimal_point (ref_l, ref_s, &c))
+ 	{
+ 	  c = next_char (ref_l, ref_s, true);
+ 	  if (is_exp_char (ref_l, ref_s, &c))
+ 	    {
+ 	      (sym++)[0] = POINT_CHAR;
+ 	      (sym++)[0] = '0';
+ 	      SCAN_EXPONENT_PART (c);
+ 	      *att = REAL_DENOTATION;
+ 	    }
+ 	  else
+ 	    {
+ 	      (sym++)[0] = POINT_CHAR;
+ 	      SCAN_DIGITS (c);
+ 	      if (is_exp_char (ref_l, ref_s, &c))
+ 		SCAN_EXPONENT_PART (c);
+ 	      *att = REAL_DENOTATION;
+ 	    }
+ 	}
+       else if (is_exp_char (ref_l, ref_s, &c))
+ 	{
+ 	  SCAN_EXPONENT_PART (c);
+ 	  *att = REAL_DENOTATION;
+ 	}
+       else if (is_radix_char (ref_l, ref_s, &c))
+ 	{
+ 	  /* Parse the radix, which is expressed in base 10.  */
+ 	  (sym++)[0] = c;
+ 	  char *end;
+ 	  errno = 0;
+ 	  uint64_t radix = strtoul (A68_PARSER (scan_buf), &end, 10);
+ 	  gcc_assert (errno == 0 && end != A68_PARSER (scan_buf) && *end == 'r');
+ 
+ 	  /* Get the rest of the bits literal.  Typographical display features
+ 	     are allowed in the reference language between the digit symbols
+ 	     composing the denotation.  However, in SUPPER stropping this could
+ 	     lead to confusing situations like:
+ 
+ 	       while bitmask /= 16r0 do ~ od
+ 
+ 	     Where the scanner would recognize a bits denotation 16r0d and then
+ 	     the parser would complain about a missing 'do'.  This is not a
+ 	     problem in UPPER stropping since D is not a valid hexadecimal
+ 	     digit.
+ 
+ 	     To avoid confusing errors, in SUPPER stropping we do not allow
+ 	     typographical display features in bits denotations when the radix
+ 	     is 16.  */
+ 	  c = next_char (ref_l, ref_s, true);
+ 	  while (((radix == 2 && (c == '0' || c == '1'))
+ 		  || (radix == 4 && (c >= '0' && c <= '3'))
+ 		  || (radix == 8 && (c >= '0' && c <= '7'))
+ 		  || (radix == 16 && (ISDIGIT (c) || strchr ("abcdef", c) != NO_TEXT))))
+ 	    {
+ 	      (sym++)[0] = c;
+ 	      c = next_char (ref_l, ref_s,
+ 			     OPTION_STROPPING (&A68_JOB) != SUPPER_STROPPING
+ 			     || radix != 16);
+ 	    }
+ 	  *att = BITS_DENOTATION;
+ 	}
+       else
+ 	{
+ 	  *att = INT_DENOTATION;
+ 	}
+       sym[0] = '\0';
+     }
+   else if (c == QUOTE_CHAR)
+     {
+       /* STRING denotation.  */
+       bool stop = false;
+ 
+       while (!stop)
+ 	{
+ 	  c = next_char (ref_l, ref_s, false);
+ 	  while (c != QUOTE_CHAR && c != STOP_CHAR)
+ 	    {
+ 	      if (c == APOSTROPHE_CHAR)
+ 		{
+ 		  (sym++)[0] = c;
+ 		  c = next_char (ref_l, ref_s, false);
+ 		  switch (c)
+ 		    {
+ 		    case APOSTROPHE_CHAR:
+ 		    case 'n':
+ 		    case 'f':
+ 		    case 'r':
+ 		    case 't':
+ 		      (sym++)[0] = c;
+ 		      break;
+ 		    case '(':
+ 		      {
+ 			unsigned int num_code_points = 0;
+ 
+ 			(sym++)[0] = c;
+ 			/* Process code points.  */
+ 			while (1)
+ 			  {
+ 			    /* Skip white spaces.  */
+ 			    while (1)
+ 			      {
+ 				c = next_char (ref_l, ref_s, false);
+ 				if (!ISSPACE (c))
+ 				  break;
+ 			      }
+ 
+ 			    /* See if we are done.  */
+ 			    if (c == ')')
+ 			      {
+ 				SCAN_ERROR (num_code_points == 0, *start_l, *ref_s,
+ 					    "expected at least one character point in string break");
+ 				(sym++)[0] = c;
+ 				break;
+ 			      }
+ 			    else if (c == 'u' || c == 'U')
+ 			      {
+ 				(sym++)[0] = c;
+ 				/* Process a code point.  */
+ 				char u = c;
+ 				int numdigits = (u == 'u' ? 4 : 8);
+ 				char *startpos = *ref_s;
+ 				int i = 0;
+ 				do
+ 				  {
+ 				    c = next_char (ref_l, ref_s, false);
+ 				    if (!(ISDIGIT (c)
+ 					  || ((c >= 'a') && (c <= 'f'))
+ 					  || ((c >= 'A') && (c <= 'F'))))
+ 				      {
+ 					SCAN_ERROR (true, *start_l, startpos,
+ 						    (u == 'u'
+ 						     ? "expected four hex digits in \
+ string break character point"
+ 						     : "expected eight hex digits in \
+ string break character point"));
+ 				      }
+ 				    (sym++)[0] = c;
+ 				    i += 1;
+ 				  }
+ 				while (i < numdigits);
+ 
+ 				/* Skip white spaces.  */
+ 				while (1)
+ 				  {
+ 				    c = next_char (ref_l, ref_s, false);
+ 				    if (!ISSPACE (c))
+ 				      break;
+ 				  }
+ 
+ 				/* Comma or end of list.  */
+ 				if (c == ')')
+ 				  {
+ 				    (sym++)[0] = c;
+ 				    break;
+ 				  }
+ 
+ 				SCAN_ERROR (c != ',', *start_l, *ref_s,
+ 					    "expected %<,%> or %<)%> in string break");
+ 			      }
+ 			    else
+ 			      {
+ 				SCAN_ERROR (true, *start_l, *ref_s,
+ 					    "unterminated list of character codes");
+ 			      }
+ 			  }
+ 			break;
+ 		      }
+ 		    default:
+ 		      SCAN_ERROR (true, *start_l, *ref_s, "invalid string break sequence");
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  SCAN_ERROR (EOL (c), *start_l, *start_c, "string exceeds end of line");
+ 		  (sym++)[0] = c;
+ 		}
+ 	      c = next_char (ref_l, ref_s, false);
+ 	    }
+ 	  SCAN_ERROR (*ref_l == NO_LINE, *start_l, *start_c, "unterminated string");
+ 	  c = next_char (ref_l, ref_s, false);
+ 	  if (c == QUOTE_CHAR)
+ 	    (sym++)[0] = QUOTE_CHAR;
+ 	  else
+ 	    stop = true;
+ 	}
+       sym[0] = '\0';
+       *att = (in_format ? LITERAL : ROW_CHAR_DENOTATION);
+     }
+   else if (strchr ("#$()[]{},;@", c) != NO_TEXT)
+     {
+       /* Single character symbols.  */
+       (sym++)[0] = c;
+       (void) next_char (ref_l, ref_s, false);
+       sym[0] = '\0';
+       *att = STOP;
+     }
+   else if (c == '|')
+     {
+       /* Bar.  */
+       (sym++)[0] = c;
+       c = next_char (ref_l, ref_s, false);
+       if (c == ':')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  (void) next_char (ref_l, ref_s, false);
+ 	}
+       sym[0] = '\0';
+       *att = STOP;
+     }
+   else if (c == ':')
+     {
+       /* Colon, semicolon, IS, ISNT.  */
+       (sym++)[0] = c;
+       c = next_char (ref_l, ref_s, false);
+       if (c == '=')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  if ((c = next_char (ref_l, ref_s, false)) == ':')
+ 	    {
+ 	      (sym++)[0] = c;
+ 	      c = next_char (ref_l, ref_s, false);
+ 	    }
+ 	}
+       else if (c == '/')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  if ((c = next_char (ref_l, ref_s, false)) == '=')
+ 	    {
+ 	      (sym++)[0] = c;
+ 	      if ((c = next_char (ref_l, ref_s, false)) == ':')
+ 		{
+ 		  (sym++)[0] = c;
+ 		  c = next_char (ref_l, ref_s, false);
+ 		}
+ 	    }
+ 	}
+       else if (c == ':')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  if ((c = next_char (ref_l, ref_s, false)) == '=')
+ 	    (sym++)[0] = c;
+ 	}
+ 
+       sym[0] = '\0';
+       *att = STOP;
+ 
+     }
+   else if (c == '=')
+     {
+       /* Operator starting with "=".  */
+       char *scanned = sym;
+       (sym++)[0] = c;
+       c = next_char (ref_l, ref_s, false);
+       if (strchr (NOMADS, c) != NO_TEXT)
+ 	{
+ 	  (sym++)[0] = c;
+ 	  c = next_char (ref_l, ref_s, false);
+ 	}
+       if (c == '=')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  if (next_char (ref_l, ref_s, false) == ':')
+ 	    {
+ 	      (sym++)[0] = ':';
+ 	      c = next_char (ref_l, ref_s, false);
+ 	      if (strlen (sym) < 4 && c == '=')
+ 		{
+ 		  (sym++)[0] = '=';
+ 		  (void) next_char (ref_l, ref_s, false);
+ 		}
+ 	    }
+ 	}
+       else if (c == ':')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  sym[0] = '\0';
+ 	  if (next_char (ref_l, ref_s, false) == '=')
+ 	    {
+ 	      (sym++)[0] = '=';
+ 	      (void) next_char (ref_l, ref_s, false);
+ 	    }
+ 	  else
+ 	    {
+ 	      SCAN_ERROR (!(strcmp (scanned, "=:") == 0 || strcmp (scanned, "==:") == 0),
+ 			  *start_l, *start_c, "invalid operator tag");
+ 	    }
+ 	}
+       sym[0] = '\0';
+       if (strcmp (scanned, "=") == 0)
+ 	*att = EQUALS_SYMBOL;
+       else
+ 	*att = OPERATOR;
+     }
+   else if (strchr (MONADS, c) != NO_TEXT || strchr (NOMADS, c) != NO_TEXT)
+     {
+       /* Operator.  */
+       char *scanned = sym;
+       (sym++)[0] = c;
+       c = next_char (ref_l, ref_s, false);
+       if (strchr (NOMADS, c) != NO_TEXT)
+ 	{
+ 	  (sym++)[0] = c;
+ 	  c = next_char (ref_l, ref_s, false);
+ 	}
+       if (c == '=')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  if (next_char (ref_l, ref_s, false) == ':')
+ 	    {
+ 	      (sym++)[0] = ':';
+ 	      c = next_char (ref_l, ref_s, false);
+ 	      if (strlen (scanned) < 4 && c == '=')
+ 		{
+ 		  (sym++)[0] = '=';
+ 		  (void) next_char (ref_l, ref_s, false);
+ 		}
+ 	    }
+ 	}
+       else if (c == ':')
+ 	{
+ 	  (sym++)[0] = c;
+ 	  sym[0] = '\0';
+ 	  if (next_char (ref_l, ref_s, false) == '=')
+ 	    {
+ 	      (sym++)[0] = '=';
+ 	      sym[0] = '\0';
+ 	      (void) next_char (ref_l, ref_s, false);
+ 	    }
+ 	  else
+ 	    {
+ 	      SCAN_ERROR (strcmp (&(scanned[1]), "=:") != 0,
+ 			  *start_l, *start_c, "invalid operator tag");
+ 	    }
+ 	}
+       sym[0] = '\0';
+       *att = OPERATOR;
+     }
+   else
+     {
+       /* Afuuus ... strange characters!.  */
+       unworthy (*start_l, *start_c, (int) c);
+     }
+ }
+ 
+ /* Whether att opens an embedded clause.  */
+ 
+ static bool
+ open_nested_clause (int att)
+ {
+   switch (att)
+     {
+     case OPEN_SYMBOL:
+     case BEGIN_SYMBOL:
+     case PAR_SYMBOL:
+     case IF_SYMBOL:
+     case CASE_SYMBOL:
+     case FOR_SYMBOL:
+     case FROM_SYMBOL:
+     case BY_SYMBOL:
+     case TO_SYMBOL:
+     case WHILE_SYMBOL:
+     case DO_SYMBOL:
+     case SUB_SYMBOL:
+       return true;
+     }
+   return false;
+ }
+ 
+ /* Whether att closes an embedded clause.  */
+ 
+ static bool
+ close_nested_clause (int att)
+ {
+   switch (att)
+     {
+     case CLOSE_SYMBOL:
+     case END_SYMBOL:
+     case FI_SYMBOL:
+     case ESAC_SYMBOL:
+     case OD_SYMBOL:
+     case BUS_SYMBOL:
+       return true;
+     }
+   return false;
+ }
+ 
+ /* Cast a string to lower case.  */
+ 
+ static void
+ make_lower_case (char *p)
+ {
+   for (; p != NO_TEXT && p[0] != '\0'; p++)
+     p[0] = TOLOWER (p[0]);
+ }
+ 
+ /* Cast a string to upper case.  */
+ 
+ static void
+ make_upper_case (char *p)
+ {
+   for (; p != NO_TEXT && p[0] != '\0'; p++)
+     p[0] = TOUPPER (p[0]);
+ }
+ 
+ /* Construct a linear list of tokens.  */
+ 
+ static void
+ tokenise_source (NODE_T **root, int level, bool in_format,
+ 		 LINE_T **l, char **s, LINE_T **start_l,
+ 		 char **start_c)
+ {
+   char *pragmat_lpr = NO_TEXT;
+   int pragmat_lprt = 0;
+   LINE_T *pragmat_lprl = NO_LINE;
+   char *pragmat_lprc = NULL;
+ 
+   char *comment_lpr = NO_TEXT;
+   int comment_lprt = 0;
+   LINE_T *comment_lprl = NO_LINE;
+   char *comment_lprc = NULL;
+ 
+   while (l != NO_VAR && !A68_PARSER (stop_scanner))
+     {
+       enum a68_attribute att = STOP;
+       get_next_token (in_format, l, s, start_l, start_c, &att);
+ 
+       if (A68_PARSER (scan_buf)[0] == STOP_CHAR)
+ 	A68_PARSER (stop_scanner) = true;
+       else if (strlen (A68_PARSER (scan_buf)) > 0 || att == ROW_CHAR_DENOTATION || att == LITERAL)
+ 	{
+ 	  KEYWORD_T *kw;
+ 	  const char *c = NO_TEXT;
+ 	  bool make_node = true;
+ 	  const char *trailing = NO_TEXT;
+ 
+ 	  if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING)
+ 	    {
+ 	      /* In UPPER stropping all symbols in R9.4.1 are expressed as bold
+ 		 tags like "BEGIN", or symbols like "@".  */
+ 
+ 	      /* In this stropping regime there is no need to handle
+ 		 identifiers for which taggles were adjacent to underscores
+ 		 specially.  */
+ 	      if (att != IDENTIFIER && att != IDENTIFIER_WITH_UNDERSCORES)
+ 		kw = a68_find_keyword (A68 (top_keyword), A68_PARSER (scan_buf));
+ 	      else
+ 		kw = NO_KEYWORD;
+ 	    }
+ 	  else
+ 	    {
+ 	      /* In SUPPER stropping all symbols in R9.4.1 are expressed as
+ 		 tags like "begin", or symbols like "@".  */
+ 
+ 	      /* Normalize bold tags to all upper-case letters.  */
+ 	      if (att == BOLD_TAG)
+ 		make_upper_case (A68_PARSER (scan_buf));
+ 
+ 	      /* If any of the taggles of the scanned identifier were adjacent
+ 		 to an underscore, that inhibits interpreting it as a
+ 		 keyword.  */
+ 	      if (att != BOLD_TAG && att != IDENTIFIER_WITH_UNDERSCORES)
+ 		kw = a68_find_keyword (A68 (top_keyword), A68_PARSER (scan_buf));
+ 	      else
+ 		kw = NO_KEYWORD;
+ 	    }
+ 
+ 	  /* Beyond this point it is irrelevant whether an identifier had
+ 	     taggles adjacent to an underscore.  */
+ 	  if (att == IDENTIFIER_WITH_UNDERSCORES)
+ 	    att = IDENTIFIER;
+ 
+ 	  if (kw == NO_KEYWORD || att == ROW_CHAR_DENOTATION)
+ 	    {
+ 	      if (att == IDENTIFIER)
+ 		make_lower_case (A68_PARSER (scan_buf));
+ 	      if (att != ROW_CHAR_DENOTATION && att != LITERAL)
+ 		{
+ 		  size_t len = strlen (A68_PARSER (scan_buf));
+ 		  while (len >= 1 && A68_PARSER (scan_buf)[len - 1] == '_')
+ 		    {
+ 		      trailing = "_";
+ 		      A68_PARSER (scan_buf)[len - 1] = NULL_CHAR;
+ 		      len--;
+ 		    }
+ 		}
+ 	      c = TEXT (a68_add_token (&A68 (top_token), A68_PARSER (scan_buf)));
+ 	    }
+ 	  else
+ 	    {
+ 	      if (IS (kw, TO_SYMBOL))
+ 		{
+ 		  /* Merge GO and TO to GOTO.  */
+ 		  if (*root != NO_NODE && IS (*root, GO_SYMBOL))
+ 		    {
+ 		      ATTRIBUTE (*root) = GOTO_SYMBOL;
+ 		      NSYMBOL (*root) = TEXT (a68_find_keyword (A68 (top_keyword), "GOTO"));
+ 		      make_node = false;
+ 		    }
+ 		  else
+ 		    {
+ 		      att = ATTRIBUTE (kw);
+ 		      c = TEXT (kw);
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  if (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING)
+ 		    {
+ 		      if (att == 0 || att == BOLD_TAG)
+ 			att = ATTRIBUTE (kw);
+ 		    }
+ 		  else
+ 		    {
+ 		      if (att == 0 || att == IDENTIFIER)
+ 			att = ATTRIBUTE (kw);
+ 		    }
+ 
+ 		  c = TEXT (kw);
+ 		  /* Handle pragments.  */
+ 		  if (att == STYLE_II_COMMENT_SYMBOL
+ 		      || att == STYLE_I_COMMENT_SYMBOL
+ 		      || att == BOLD_COMMENT_SYMBOL
+ 		      || att == BOLD_COMMENT_BEGIN_SYMBOL
+ 		      || att == BRIEF_COMMENT_BEGIN_SYMBOL)
+ 		    {
+ 		      char *nlpr = pragment (ATTRIBUTE (kw), l, s);
+ 
+ 		      if (comment_lpr == NO_TEXT
+ 			  || (int) strlen (comment_lpr) == 0)
+ 			comment_lpr = nlpr;
+ 		      else
+ 			{
+ 			  char *stale = comment_lpr;
+ 			  comment_lpr
+ 			    = a68_new_string (comment_lpr, "n\n", nlpr, NO_TEXT);
+ 			  free (stale);
+ 			}
+ 		      comment_lprt = att;
+ 		      comment_lprl = *start_l;
+ 		      comment_lprc = *start_c;
+ 		      make_node = false;
+ 		    }
+ 		  else if (att == STYLE_I_PRAGMAT_SYMBOL
+ 			   || att == BOLD_PRAGMAT_SYMBOL)
+ 		    {
+ 		      char *nlpr = pragment (ATTRIBUTE (kw), l, s);
+ 		      if (pragmat_lpr == NO_TEXT
+ 			  || (int) strlen (pragmat_lpr) == 0)
+ 			pragmat_lpr = nlpr;
+ 		      else
+ 			{
+ 			  char *stale = pragmat_lpr;
+ 			  pragmat_lpr
+ 			    = a68_new_string (pragmat_lpr, " ", nlpr, NO_TEXT);
+ 			  free (stale);
+ 			}
+ 		      pragmat_lprt = att;
+ 		      pragmat_lprl = *start_l;
+ 		      pragmat_lprc = *start_c;
+ 		      if (!A68_PARSER (stop_scanner))
+ 			make_node = false;
+ 		    }
+ 		}
+ 	    }
+ 	  /* Add token to the tree.  */
+ 	  if (make_node)
+ 	    {
+ 	      NODE_T *q = a68_new_node ();
+ 	      INFO (q) = a68_new_node_info ();
+ 
+ 	      switch (att)
+ 		{
+ 		case ASSIGN_SYMBOL:
+ 		case END_SYMBOL:
+ 		case ESAC_SYMBOL:
+ 		case OD_SYMBOL:
+ 		case OF_SYMBOL:
+ 		case QUOTE_SYMBOL:
+ 		case FI_SYMBOL:
+ 		case CLOSE_SYMBOL:
+ 		case BUS_SYMBOL:
+ 		case COLON_SYMBOL:
+ 		case COMMA_SYMBOL:
+ 		case SEMI_SYMBOL:
+ 		  GINFO (q) = NO_GINFO;
+ 		  break;
+ 		default:
+ 		  GINFO (q) = a68_new_genie_info ();
+ 		  break;
+ 		}
+ 
+ 	      STATUS (q) = (STATUS_MASK_T) 0;
+ 	      LINE (INFO (q)) = *start_l;
+ 	      CHAR_IN_LINE (INFO (q)) = *start_c;
+ 	      PRIO (INFO (q)) = 0;
+ 	      PROCEDURE_LEVEL (INFO (q)) = 0;
+ 	      ATTRIBUTE (q) = att;
+ 	      NSYMBOL (q) = c;
+ 	      PREVIOUS (q) = *root;
+ 	      SUB (q) = NEXT (q) = NO_NODE;
+ 	      TABLE (q) = NO_TABLE;
+ 	      MOID (q) = NO_MOID;
+ 	      TAX (q) = NO_TAG;
+ 	      if (pragmat_lpr != NO_TEXT)
+ 		{
+ 		  NPRAGMAT (q) = pragmat_lpr;
+ 		  NPRAGMAT_TYPE (q) = pragmat_lprt;
+ 		  NPRAGMAT_LINE (q) = pragmat_lprl;
+ 		  NPRAGMAT_CHAR_IN_LINE (q) = pragmat_lprc;
+ 		  pragmat_lpr = NO_TEXT;
+ 		  pragmat_lprt = 0;
+ 		}
+ 	      if (comment_lpr != NO_TEXT)
+ 		{
+ 		  NCOMMENT (q) = comment_lpr;
+ 		  NCOMMENT_TYPE (q) = comment_lprt;
+ 		  NCOMMENT_LINE (q) = comment_lprl;
+ 		  NCOMMENT_CHAR_IN_LINE (q) = comment_lprc;
+ 		  comment_lpr = NO_TEXT;
+ 		  comment_lprt = 0;
+ 		}
+ 	      if (*root != NO_NODE)
+ 		NEXT (*root) = q;
+ 	      if (TOP_NODE (&A68_JOB) == NO_NODE)
+ 		TOP_NODE (&A68_JOB) = q;
+ 	      *root = q;
+ 	      if (trailing != NO_TEXT)
+ 		{
+ 		  a68_attr_format_token a (att);
+ 		  a68_warning (q, 0,
+ 			       "ignoring trailing character %qs in %e",
+ 			       trailing, &a);
+ 		}
+ 	    }
+ 	  /* Redirection in tokenising formats. The scanner is a recursive-descent type as
+ 	     to know when it scans a format text and when not.  */
+ 	  if (in_format && att == FORMAT_DELIMITER_SYMBOL)
+ 	    return;
+ 	  else if (!in_format && att == FORMAT_DELIMITER_SYMBOL)
+ 	    tokenise_source (root, level + 1, true, l, s, start_l, start_c);
+ 	  else if (in_format && open_nested_clause (att))
+ 	    {
+ 	      NODE_T *z = PREVIOUS (*root);
+ 
+ 	      if (z != NO_NODE && a68_is_one_of (z, FORMAT_ITEM_N, FORMAT_ITEM_G, FORMAT_ITEM_H,
+ 						 FORMAT_ITEM_F, STOP))
+ 		{
+ 		  tokenise_source (root, level, false, l, s, start_l, start_c);
+ 		}
+ 	      else if (att == OPEN_SYMBOL)
+ 		ATTRIBUTE (*root) = FORMAT_OPEN_SYMBOL;
+ 	      else if (OPTION_BRACKETS (&A68_JOB) && att == SUB_SYMBOL)
+ 		ATTRIBUTE (*root) = FORMAT_OPEN_SYMBOL;
+ 	    }
+ 	  else if (!in_format && level > 0 && open_nested_clause (att))
+ 	    tokenise_source (root, level + 1, false, l, s, start_l, start_c);
+ 	  else if (!in_format && level > 0 && close_nested_clause (att))
+ 	    return;
+ 	  else if (in_format && att == CLOSE_SYMBOL)
+ 	    ATTRIBUTE (*root) = FORMAT_CLOSE_SYMBOL;
+ 	  else if (OPTION_BRACKETS (&A68_JOB) && in_format && att == BUS_SYMBOL)
+ 	    ATTRIBUTE (*root) = FORMAT_CLOSE_SYMBOL;
+ 	}
+     }
+ }
+ 
+ /* Tokenise source file, build initial syntax tree.  */
+ 
+ bool
+ a68_lexical_analyser (const char *filename, bool *empty_program)
+ {
+   LINE_T *l = NO_LINE, *start_l = NO_LINE;
+   char *s = NO_TEXT, *start_c = NO_TEXT;
+   NODE_T *root = NO_NODE;
+ 
+   /* Read the source file into lines.  */
+   if (!read_source_file (filename))
+     return false;
+ 
+   /* Start tokenising.  */
+   A68_PARSER (stop_scanner) = false;
+   if ((l = TOP_LINE (&A68_JOB)) != NO_LINE)
+     s = STRING (l);
+   tokenise_source (&root, 0, false, &l, &s, &start_l, &start_c);
+ 
+   /* Detemine whether the actual file contents resulted in some token.  This is
+      used in order to provide better diagnostics for empty source files or
+      files containing only comments or pragmats.  These are not valid Algol 68
+      packets.  */
+ 
+   *empty_program = true;
+   for (NODE_T *p = TOP_NODE (&A68_JOB); p != NO_NODE; FORWARD (p))
+     {
+       LINE_T *l = LINE (INFO (p));
+       if (strcmp (FILENAME (l), "prelude") != 0
+ 	  && strcmp (FILENAME (l), "postlude") != 0)
+ 	{
+ 	  *empty_program = false;
+ 	  break;
+ 	}
+     }
+ 
+   /* If the source is a prelude packet then we should remove the prelude and
+      postlude nodes from the token stream.  We distinguish these nodes by
+      location.
+ 
+      Yes this is crude and creepy but it works and it is less annoying than not
+      adding the prelude/postlude in read_source_file and I got other fish to
+      fry at this moment.  Somebody please fix this in a decent way, thanks -
+      jemarch.  */
+ 
+   NODE_T *p = TOP_NODE (&A68_JOB);
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       LINE_T *l = LINE (INFO (p));
+       if (strcmp (FILENAME (l), "prelude") != 0)
+ 	break;
+     }
+ 
+   if (p != NO_NODE && IS (p, MODULE_SYMBOL))
+     {
+       p = TOP_NODE (&A68_JOB);
+       while (p != NO_NODE)
+ 	{
+ 	  LINE_T *l = LINE (INFO (p));
+ 	  if (strcmp (FILENAME (l), "prelude") == 0
+ 	      || strcmp (FILENAME (l), "postlude") == 0)
+ 	    {
+ 	      if (PREVIOUS (p) != NO_NODE)
+ 		NEXT (PREVIOUS (p)) = NEXT (p);
+ 	      else
+ 		TOP_NODE (&A68_JOB) = NEXT (p);
+ 
+ 	      if (NEXT (p) != NO_NODE)
+ 		PREVIOUS (NEXT (p)) = PREVIOUS (p);
+ 
+ 	      NODE_T *next = NEXT (p);
+ 	      p = next;
+ 	    }
+ 	  else
+ 	    p = FORWARD (p);
+ 	}
+     }
+ 
+   /* Note that A68_PARSER (scan_buf) and A68_PARSER (max_scan_buf_length) are
+      allocated by read_source_line.  */
+   free (A68_PARSER (scan_buf));
+   A68_PARSER (scan_buf) = NULL;
+   A68_PARSER (max_scan_buf_length) = 0;
+   return true;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-scope.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-scope.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-scope.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-scope.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1059 ----
+ /* Static scope checker.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* A static scope checker inspects the source. Note that ALGOL 68 also needs
+    dynamic scope checking. This phase concludes the parser.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "options.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ struct TUPLE_T
+ {
+   int level;
+   bool transient;
+ };
+ 
+ struct SCOPE_T
+ {
+   NODE_T *where;
+   TUPLE_T tuple;
+   SCOPE_T *next;
+ };
+ 
+ constexpr TUPLE_T *NO_TUPLE = nullptr;
+ constexpr SCOPE_T *NO_SCOPE = nullptr;
+ 
+ #define TUPLE(p) ((p)->tuple)
+ 
+ enum { NOT_TRANSIENT = 0, TRANSIENT };
+ 
+ static void gather_scopes_for_youngest (NODE_T *, SCOPE_T **);
+ static void scope_statement (NODE_T *, SCOPE_T **);
+ static void scope_enclosed_clause (NODE_T *, SCOPE_T **);
+ static void scope_formula (NODE_T *, SCOPE_T **);
+ static void scope_routine_text (NODE_T *, SCOPE_T **);
+ static void scope_access_clause (NODE_T *, SCOPE_T **);
+ 
+ /*
+  * Static scope checker.
+  */
+ 
+ /* Scope_make_tuple.  */
+ 
+ static TUPLE_T
+ scope_make_tuple (int e, int t)
+ {
+   static TUPLE_T z;
+   LEVEL (&z) = e;
+   TRANSIENT (&z) = t;
+   return z;
+ }
+ 
+ /* Link scope information into the list.  */
+ 
+ static void
+ scope_add (SCOPE_T **sl, NODE_T *p, TUPLE_T tup)
+ {
+   if (sl != NO_VAR)
+     {
+       SCOPE_T *ns = (SCOPE_T *) xmalloc (sizeof (SCOPE_T));
+       WHERE (ns) = p;
+       TUPLE (ns) = tup;
+       NEXT (ns) = *sl;
+       *sl = ns;
+     }
+ }
+ 
+ /* Scope_check.  */
+ 
+ static bool
+ scope_check (SCOPE_T *top, int mask, int dest)
+ {
+   int errors = 0;
+ 
+   /* Transient names cannot be stored.  */
+   if (mask & TRANSIENT)
+     {
+       for (SCOPE_T *s = top; s != NO_SCOPE; FORWARD (s))
+ 	{
+ 	  if (TRANSIENT (&TUPLE (s)) & TRANSIENT)
+ 	    {
+ 	      a68_error (WHERE (s), "attempt at storing a transient name");
+ 	      STATUS_SET (WHERE (s), SCOPE_ERROR_MASK);
+ 	      errors++;
+ 	    }
+ 	}
+     }
+ 
+   /* Potential scope violations.  */
+   for (SCOPE_T *s = top; s != NO_SCOPE; FORWARD (s))
+     {
+       if (dest < LEVEL (&TUPLE (s)) && !STATUS_TEST (WHERE (s), SCOPE_ERROR_MASK))
+ 	{
+ 	  MOID_T *ws = MOID (WHERE (s));
+ 
+ 	  if (ws != NO_MOID)
+ 	    {
+ 	      if (IS_REF (ws)
+ 		  || IS (ws, PROC_SYMBOL)
+ 		  || IS (ws, FORMAT_SYMBOL)
+ 		  || IS (ws, UNION_SYMBOL))
+ 		{
+ 		  a68_moid_format_token m (MOID (WHERE (s)));
+ 		  a68_attr_format_token a (ATTRIBUTE (WHERE (s)));
+ 		  a68_warning (WHERE (s), OPT_Wscope,
+ 			       "%e %e is a potential scope violation",
+ 			       &m, &a);
+ 		}
+ 	    }
+ 	  STATUS_SET (WHERE (s), SCOPE_ERROR_MASK);
+ 	  errors++;
+ 	}
+     }
+   return (errors == 0);
+ }
+ 
+ /* Scope_check_multiple.  */
+ 
+ static bool
+ scope_check_multiple (SCOPE_T *top, int mask, SCOPE_T *dest)
+ {
+   bool no_err = true;
+ 
+   for (; dest != NO_SCOPE; FORWARD (dest))
+     no_err = no_err && scope_check (top, mask, LEVEL (&TUPLE (dest)));
+   return no_err;
+ }
+ 
+ /* Check_identifier_usage.  */
+ 
+ static void
+ check_identifier_usage (TAG_T *t, NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, IDENTIFIER) && TAX (p) == t && ATTRIBUTE (MOID (t)) != PROC_SYMBOL)
+ 	{
+ 	  a68_symbol_format_token s (p);
+ 	  a68_warning (p, OPT_Wuninitialized,
+ 		       "identifier %e might be used uninitialised", &s);
+ 	}
+       check_identifier_usage (t, SUB (p));
+     }
+ }
+ 
+ /* Scope_find_youngest_outside.  */
+ 
+ static TUPLE_T
+ scope_find_youngest_outside (SCOPE_T *s, int treshold)
+ {
+   TUPLE_T z = scope_make_tuple (PRIMAL_SCOPE, NOT_TRANSIENT);
+ 
+   for (; s != NO_SCOPE; FORWARD (s))
+     {
+       if (LEVEL (&TUPLE (s)) > LEVEL (&z) && LEVEL (&TUPLE (s)) <= treshold)
+ 	z = TUPLE (s);
+     }
+   return z;
+ }
+ 
+ /* Scope_find_youngest.  */
+ 
+ static TUPLE_T
+ scope_find_youngest (SCOPE_T *s)
+ {
+   return scope_find_youngest_outside (s, INT_MAX);
+ }
+ 
+ /*
+  * Routines for determining scope of ROUTINE TEXT or FORMAT TEXT.
+  */
+ 
+ /* Get_declarer_elements.  */
+ 
+ static void
+ get_declarer_elements (NODE_T *p, SCOPE_T **r, bool no_ref)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, BOUNDS))
+ 	gather_scopes_for_youngest (SUB (p), r);
+       else if (IS (p, INDICANT))
+ 	{
+ 	  if (MOID (p) != NO_MOID && TAX (p) != NO_TAG && HAS_ROWS (MOID (p)) && no_ref)
+ 	    scope_add (r, p, scope_make_tuple (TAG_LEX_LEVEL (TAX (p)), NOT_TRANSIENT));
+ 	}
+       else if (IS_REF (p))
+ 	get_declarer_elements (NEXT (p), r, false);
+       else if (a68_is_one_of (p, PROC_SYMBOL, UNION_SYMBOL, STOP))
+ 	;
+       else
+ 	{
+ 	  get_declarer_elements (SUB (p), r, no_ref);
+ 	  get_declarer_elements (NEXT (p), r, no_ref);
+ 	}
+     }
+ }
+ 
+ /* Gather_scopes_for_youngest.  */
+ 
+ static void
+ gather_scopes_for_youngest (NODE_T *p, SCOPE_T **s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if ((a68_is_one_of (p, ROUTINE_TEXT, FORMAT_TEXT, STOP))
+ 	  && (YOUNGEST_ENVIRON (TAX (p)) == PRIMAL_SCOPE))
+ 	{
+ 	  SCOPE_T *t = NO_SCOPE;
+ 	  TUPLE_T tup;
+ 
+ 	  gather_scopes_for_youngest (SUB (p), &t);
+ 	  tup = scope_find_youngest_outside (t, LEX_LEVEL (p));
+ 	  YOUNGEST_ENVIRON (TAX (p)) = LEVEL (&tup);
+ 	  /* Direct link into list iso "gather_scopes_for_youngest (SUB (p),
+ 	     s);".  */
+ 	  if (t != NO_SCOPE)
+ 	    {
+ 	      SCOPE_T *u = t;
+ 	      while (NEXT (u) != NO_SCOPE) {
+ 		FORWARD (u);
+ 	      }
+ 	      NEXT (u) = *s;
+ 	      (*s) = t;
+ 	    }
+ 	}
+       else if (a68_is_one_of (p, IDENTIFIER, OPERATOR, STOP))
+ 	{
+ 	  if (TAX (p) != NO_TAG && TAG_LEX_LEVEL (TAX (p)) != PRIMAL_SCOPE)
+ 	    scope_add (s, p, scope_make_tuple (TAG_LEX_LEVEL (TAX (p)), NOT_TRANSIENT));
+ 	}
+       else if (IS (p, DECLARER))
+ 	get_declarer_elements (p, s, true);
+       else
+ 	gather_scopes_for_youngest (SUB (p), s);
+   }
+ }
+ 
+ /* Get_youngest_environs.  */
+ 
+ static void
+ get_youngest_environs (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (a68_is_one_of (p, ROUTINE_TEXT, FORMAT_TEXT, STOP))
+ 	{
+ 	  SCOPE_T *s = NO_SCOPE;
+ 	  TUPLE_T tup;
+ 	  gather_scopes_for_youngest (SUB (p), &s);
+ 	  tup = scope_find_youngest_outside (s, LEX_LEVEL (p));
+ 	  YOUNGEST_ENVIRON (TAX (p)) = LEVEL (&tup);
+ 	}
+       else
+ 	get_youngest_environs (SUB (p));
+   }
+ }
+ 
+ /* Bind_scope_to_tag.  */
+ 
+ static void
+ bind_scope_to_tag (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEFINING_IDENTIFIER) && MOID (p) == M_FORMAT)
+ 	{
+ 	  if (IS (NEXT_NEXT (p), FORMAT_TEXT))
+ 	    {
+ 	      SCOPE (TAX (p)) = YOUNGEST_ENVIRON (TAX (NEXT_NEXT (p)));
+ 	      SCOPE_ASSIGNED (TAX (p)) = true;
+ 	    }
+ 	  return;
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  if (IS (NEXT_NEXT (p), ROUTINE_TEXT))
+ 	    {
+ 	      SCOPE (TAX (p)) = YOUNGEST_ENVIRON (TAX (NEXT_NEXT (p)));
+ 	      SCOPE_ASSIGNED (TAX (p)) = true;
+ 	    }
+ 	  return;
+ 	}
+       else
+ 	bind_scope_to_tag (SUB (p));
+   }
+ }
+ 
+ /* Bind_scope_to_tags.  */
+ 
+ static void
+ bind_scope_to_tags (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (a68_is_one_of (p, PROCEDURE_DECLARATION, IDENTITY_DECLARATION, STOP))
+ 	bind_scope_to_tag (SUB (p));
+       else
+ 	bind_scope_to_tags (SUB (p));
+     }
+ }
+ 
+ /* Scope_bounds.  */
+ 
+ static void
+ scope_bounds (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	scope_statement (p, NO_VAR);
+       else
+ 	scope_bounds (SUB (p));
+     }
+ }
+ 
+ /* Scope_declarer.  */
+ 
+ static void
+ scope_declarer (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, BOUNDS))
+ 	scope_bounds (SUB (p));
+       else if (IS (p, INDICANT))
+ 	;
+       else if (IS_REF (p))
+ 	scope_declarer (NEXT (p));
+       else if (a68_is_one_of (p, PROC_SYMBOL, UNION_SYMBOL, STOP))
+ 	;
+       else
+ 	{
+ 	  scope_declarer (SUB (p));
+ 	  scope_declarer (NEXT (p));
+ 	}
+     }
+ }
+ 
+ /* Scope_identity_declaration.  */
+ 
+ static void
+ scope_identity_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       scope_identity_declaration (SUB (p));
+ 
+       if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  NODE_T *unit = NEXT_NEXT (p);
+ 	  SCOPE_T *s = NO_SCOPE;
+ 	  TUPLE_T tup;
+ 	  int z = PRIMAL_SCOPE;
+ 
+ 	  if (ATTRIBUTE (MOID (TAX (p))) != PROC_SYMBOL)
+ 	    check_identifier_usage (TAX (p), unit);
+ 	  scope_statement (unit, &s);
+ 	  (void) scope_check (s, TRANSIENT, LEX_LEVEL (p));
+ 	  tup = scope_find_youngest (s);
+ 	  z = LEVEL (&tup);
+ 	  if (z < LEX_LEVEL (p))
+ 	    {
+ 	      SCOPE (TAX (p)) = z;
+ 	      SCOPE_ASSIGNED (TAX (p)) = true;
+ 	    }
+ 	  return;
+ 	}
+     }
+ }
+ 
+ /* Scope_variable_declaration.  */
+ 
+ static void
+ scope_variable_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       scope_variable_declaration (SUB (p));
+       if (IS (p, DECLARER))
+ 	scope_declarer (SUB (p));
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  if (a68_whether (p, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, UNIT, STOP))
+ 	    {
+ 	      NODE_T *unit = NEXT_NEXT (p);
+ 	      SCOPE_T *s = NO_SCOPE;
+ 	      check_identifier_usage (TAX (p), unit);
+ 	      scope_statement (unit, &s);
+ 	      (void) scope_check (s, TRANSIENT, LEX_LEVEL (p));
+ 	      return;
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Scope_procedure_declaration.  */
+ 
+ static void
+ scope_procedure_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       scope_procedure_declaration (SUB (p));
+ 
+       if (a68_is_one_of (p, DEFINING_IDENTIFIER, DEFINING_OPERATOR, STOP))
+ 	{
+ 	  NODE_T *unit = NEXT_NEXT (p);
+ 	  SCOPE_T *s = NO_SCOPE;
+ 
+ 	  scope_statement (unit, &s);
+ 	  (void) scope_check (s, NOT_TRANSIENT, LEX_LEVEL (p));
+ 	  return;
+ 	}
+     }
+ }
+ 
+ /* Scope_declaration_list.  */
+ 
+ static void
+ scope_declaration_list (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, IDENTITY_DECLARATION))
+ 	scope_identity_declaration (SUB (p));
+       else if (IS (p, VARIABLE_DECLARATION))
+ 	scope_variable_declaration (SUB (p));
+       else if (IS (p, MODE_DECLARATION))
+ 	scope_declarer (SUB (p));
+       else if (IS (p, PRIORITY_DECLARATION))
+ 	;
+       else if (IS (p, PROCEDURE_DECLARATION))
+        scope_procedure_declaration (SUB (p));
+       else if (IS (p, PROCEDURE_VARIABLE_DECLARATION))
+ 	scope_procedure_declaration (SUB (p));
+       else if (a68_is_one_of (p, BRIEF_OPERATOR_DECLARATION, OPERATOR_DECLARATION, STOP))
+ 	scope_procedure_declaration (SUB (p));
+       else
+ 	{
+ 	  scope_declaration_list (SUB (p));
+ 	  scope_declaration_list (NEXT (p));
+ 	}
+     }
+ }
+ 
+ /* Scope_arguments.  */
+ 
+ static void
+ scope_arguments (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	{
+ 	  SCOPE_T *s = NO_SCOPE;
+ 	  scope_statement (p, &s);
+ 	  (void) scope_check (s, TRANSIENT, LEX_LEVEL (p));
+ 	}
+       else
+ 	scope_arguments (SUB (p));
+   }
+ }
+ 
+ /* Is_coercion.  */
+ 
+ static bool
+ is_coercion (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case DEPROCEDURING:
+ 	case DEREFERENCING:
+ 	case UNITING:
+ 	case ROWING:
+ 	case WIDENING:
+ 	case VOIDING:
+ 	case PROCEDURING:
+ 	  return true;
+ 	default:
+ 	  return false;
+ 	}
+     }
+   else
+     return false;
+ }
+ 
+ /* Scope_coercion.  */
+ 
+ static void
+ scope_coercion (NODE_T *p, SCOPE_T **s)
+ {
+   if (is_coercion (p))
+     {
+       if (IS (p, VOIDING))
+ 	scope_coercion (SUB (p), NO_VAR);
+       else if (IS (p, DEREFERENCING))
+ 	/* Leave this to the dynamic scope checker.  */
+ 	scope_coercion (SUB (p), NO_VAR);
+       else if (IS (p, DEPROCEDURING))
+ 	scope_coercion (SUB (p), NO_VAR);
+       else if (IS (p, ROWING))
+ 	{
+ 	  SCOPE_T *z = NO_SCOPE;
+ 
+ 	  scope_coercion (SUB (p), &z);
+ 	  (void) scope_check (z, TRANSIENT, LEX_LEVEL (p));
+ 	  if (IS_REF_FLEX (MOID (SUB (p))))
+ 	    scope_add (s, p, scope_make_tuple (LEX_LEVEL (p), TRANSIENT));
+ 	  else
+ 	    scope_add (s, p, scope_make_tuple (LEX_LEVEL (p), NOT_TRANSIENT));
+ 	}
+       else if (IS (p, PROCEDURING))
+ 	{
+ 	  /* Can only be a JUMP.  */
+ 	  NODE_T *q = SUB_SUB (p);
+ 	  if (IS (q, GOTO_SYMBOL))
+ 	    FORWARD (q);
+ 
+ 	  scope_add (s, q, scope_make_tuple (TAG_LEX_LEVEL (TAX (q)), NOT_TRANSIENT));
+ 	}
+       else if (IS (p, UNITING))
+ 	{
+ 	  SCOPE_T *z = NO_SCOPE;
+ 
+ 	  scope_coercion (SUB (p), &z);
+ 	  if (z != NO_SCOPE)
+ 	    {
+ 	      (void) scope_check (z, TRANSIENT, LEX_LEVEL (p));
+ 	      scope_add (s, p, scope_find_youngest (z));
+ 	    }
+ 	}
+       else
+ 	scope_coercion (SUB (p), s);
+     }
+   else
+     scope_statement (p, s);
+ }
+ 
+ /* Scope_format_text.  */
+ 
+ static void
+ scope_format_text (NODE_T *p, SCOPE_T **s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, FORMAT_PATTERN))
+ 	scope_enclosed_clause (SUB (NEXT_SUB (p)), s);
+       else if (IS (p, FORMAT_ITEM_G) && NEXT (p) != NO_NODE)
+ 	scope_enclosed_clause (SUB_NEXT (p), s);
+       else if (IS (p, DYNAMIC_REPLICATOR))
+ 	scope_enclosed_clause (SUB (NEXT_SUB (p)), s);
+       else
+ 	scope_format_text (SUB (p), s);
+     }
+ }
+ 
+ /* Scope_operand.  */
+ 
+ static void
+ scope_operand (NODE_T *p, SCOPE_T **s)
+ {
+   if (IS (p, MONADIC_FORMULA))
+     scope_operand (NEXT_SUB (p), s);
+   else if (IS (p, FORMULA))
+     scope_formula (p, s);
+   else if (IS (p, SECONDARY))
+     scope_statement (SUB (p), s);
+ }
+ 
+ /* Scope_formula.  */
+ 
+ static void
+ scope_formula (NODE_T *p, SCOPE_T **s)
+ {
+   NODE_T *q = SUB (p);
+   SCOPE_T *s2 = NO_SCOPE;
+ 
+   scope_operand (q, &s2);
+   (void) scope_check (s2, TRANSIENT, LEX_LEVEL (p));
+   if (NEXT (q) != NO_NODE)
+     {
+       SCOPE_T *s3 = NO_SCOPE;
+       scope_operand (NEXT_NEXT (q), &s3);
+       (void) scope_check (s3, TRANSIENT, LEX_LEVEL (p));
+     }
+   (void) s;
+ }
+ 
+ /* Scope_routine_text.  */
+ 
+ static void
+ scope_routine_text (NODE_T *p, SCOPE_T **s)
+ {
+   NODE_T *q = SUB (p);
+   NODE_T *routine = (IS (q, PARAMETER_PACK) ? NEXT (q) : q);
+   SCOPE_T *x = NO_SCOPE;
+ 
+   scope_statement (NEXT_NEXT (routine), &x);
+   (void) scope_check (x, TRANSIENT, LEX_LEVEL (p));
+   TUPLE_T routine_tuple = scope_make_tuple (YOUNGEST_ENVIRON (TAX (p)), NOT_TRANSIENT);
+   scope_add (s, p, routine_tuple);
+ }
+ 
+ /* Scope_statement.  */
+ 
+ static void
+ scope_statement (NODE_T *p, SCOPE_T **s)
+ {
+   if (is_coercion (p))
+     scope_coercion (p, s);
+   else if (a68_is_one_of (p, PRIMARY, SECONDARY, TERTIARY, UNIT, STOP))
+     scope_statement (SUB (p), s);
+   else if (a68_is_one_of (p, NIHIL, STOP))
+     scope_add (s, p, scope_make_tuple (PRIMAL_SCOPE, NOT_TRANSIENT));
+   else if (IS (p, DENOTATION))
+     ;
+   else if (IS (p, IDENTIFIER))
+     {
+       if (IS_REF (MOID (p)))
+ 	{
+ 	  if (PRIO (TAX (p)) == PARAMETER_IDENTIFIER)
+ 	    scope_add (s, p, scope_make_tuple (TAG_LEX_LEVEL (TAX (p)) - 1, NOT_TRANSIENT));
+ 	  else
+ 	    {
+ 	      if (HEAP (TAX (p)) == HEAP_SYMBOL)
+ 		scope_add (s, p, scope_make_tuple (PRIMAL_SCOPE, NOT_TRANSIENT));
+ 	      else if (SCOPE_ASSIGNED (TAX (p)))
+ 		scope_add (s, p, scope_make_tuple (SCOPE (TAX (p)), NOT_TRANSIENT));
+ 	      else
+ 		scope_add (s, p, scope_make_tuple (TAG_LEX_LEVEL (TAX (p)), NOT_TRANSIENT));
+ 	    }
+ 	}
+       else if (ATTRIBUTE (MOID (p)) == PROC_SYMBOL && SCOPE_ASSIGNED (TAX (p)) == true)
+ 	scope_add (s, p, scope_make_tuple (SCOPE (TAX (p)), NOT_TRANSIENT));
+       else if (MOID (p) == M_FORMAT && SCOPE_ASSIGNED (TAX (p)) == true)
+ 	scope_add (s, p, scope_make_tuple (SCOPE (TAX (p)), NOT_TRANSIENT));
+     }
+   else if (IS (p, ENCLOSED_CLAUSE))
+     scope_enclosed_clause (SUB (p), s);
+   else if (IS (p, CALL))
+     {
+       SCOPE_T *x = NO_SCOPE;
+ 
+       scope_statement (SUB (p), &x);
+       (void) scope_check (x, NOT_TRANSIENT, LEX_LEVEL (p));
+       scope_arguments (NEXT_SUB (p));
+     }
+   else if (IS (p, SLICE))
+     {
+       SCOPE_T *x = NO_SCOPE;
+       MOID_T *m = MOID (SUB (p));
+ 
+       if (IS_REF (m))
+ 	{
+ 	  if (ATTRIBUTE (SUB (p)) == PRIMARY && ATTRIBUTE (SUB_SUB (p)) == SLICE)
+ 	    scope_statement (SUB (p), s);
+ 	  else
+ 	    {
+ 	      scope_statement (SUB (p), &x);
+ 	      (void) scope_check (x, NOT_TRANSIENT, LEX_LEVEL (p));
+ 	    }
+ 	  if (IS_FLEX (SUB (m)))
+ 	    scope_add (s, SUB (p), scope_make_tuple (LEX_LEVEL (p), TRANSIENT));
+ 	  scope_bounds (SUB (NEXT_SUB (p)));
+ 	}
+       if (IS_REF (MOID (p)))
+ 	scope_add (s, p, scope_find_youngest (x));
+     }
+   else if (IS (p, FORMAT_TEXT))
+     {
+       SCOPE_T *x = NO_SCOPE;
+       scope_format_text (SUB (p), &x);
+       scope_add (s, p, scope_find_youngest (x));
+     }
+   else if (IS (p, CAST))
+     {
+       SCOPE_T *x = NO_SCOPE;
+       scope_enclosed_clause (SUB (NEXT_SUB (p)), &x);
+       (void) scope_check (x, NOT_TRANSIENT, LEX_LEVEL (p));
+       scope_add (s, p, scope_find_youngest (x));
+     }
+   else if (IS (p, SELECTION))
+     {
+       SCOPE_T *ns = NO_SCOPE;
+       scope_statement (NEXT_SUB (p), &ns);
+       (void) scope_check (ns, NOT_TRANSIENT, LEX_LEVEL (p));
+       if (a68_is_ref_refety_flex (MOID (NEXT_SUB (p))))
+ 	scope_add (s, p, scope_make_tuple (LEX_LEVEL (p), TRANSIENT));
+       scope_add (s, p, scope_find_youngest (ns));
+   }
+   else if (IS (p, GENERATOR))
+     {
+       if (IS (SUB (p), LOC_SYMBOL))
+ 	{
+ 	  if (NON_LOCAL (p) != NO_TABLE)
+ 	    scope_add (s, p, scope_make_tuple (LEVEL (NON_LOCAL (p)), NOT_TRANSIENT));
+ 	  else
+ 	    scope_add (s, p, scope_make_tuple (LEX_LEVEL (p), NOT_TRANSIENT));
+ 	}
+       else
+ 	scope_add (s, p, scope_make_tuple (PRIMAL_SCOPE, NOT_TRANSIENT));
+       scope_declarer (SUB (NEXT_SUB (p)));
+     }
+   else if (IS (p, FORMULA))
+     scope_formula (p, s);
+   else if (IS (p, ASSIGNATION))
+     {
+       NODE_T *unit = NEXT (NEXT_SUB (p));
+       SCOPE_T *ns = NO_SCOPE, *nd = NO_SCOPE;
+       TUPLE_T tup;
+       scope_statement (SUB_SUB (p), &nd);
+       scope_statement (unit, &ns);
+       (void) scope_check_multiple (ns, TRANSIENT, nd);
+       tup = scope_find_youngest (nd);
+       scope_add (s, p, scope_make_tuple (LEVEL (&tup), NOT_TRANSIENT));
+     }
+   else if (IS (p, ROUTINE_TEXT))
+     scope_routine_text (p, s);
+   else if (a68_is_one_of (p, IDENTITY_RELATION, AND_FUNCTION, OR_FUNCTION, STOP))
+     {
+       SCOPE_T *n = NO_SCOPE;
+       scope_statement (SUB (p), &n);
+       scope_statement (NEXT (NEXT_SUB (p)), &n);
+       (void) scope_check (n, NOT_TRANSIENT, LEX_LEVEL (p));
+     }
+   else if (IS (p, ASSERTION))
+     {
+       SCOPE_T *n = NO_SCOPE;
+       scope_enclosed_clause (SUB (NEXT_SUB (p)), &n);
+       (void) scope_check (n, NOT_TRANSIENT, LEX_LEVEL (p));
+     }
+   else if (a68_is_one_of (p, JUMP, SKIP, STOP))
+     {
+       ;
+     }
+ }
+ 
+ /* Scope_statement_list.  */
+ 
+ static void
+ scope_statement_list (NODE_T *p, SCOPE_T **s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, UNIT))
+ 	scope_statement (p, s);
+       else
+ 	scope_statement_list (SUB (p), s);
+     }
+ }
+ 
+ /* Scope_serial_clause.  */
+ 
+ static void
+ scope_serial_clause (NODE_T *p, SCOPE_T **s, bool terminator)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, INITIALISER_SERIES))
+ 	{
+ 	  scope_serial_clause (SUB (p), s, false);
+ 	  scope_serial_clause (NEXT (p), s, terminator);
+ 	}
+       else if (IS (p, DECLARATION_LIST))
+ 	scope_declaration_list (SUB (p));
+       else if (a68_is_one_of (p, LABEL, SEMI_SYMBOL, EXIT_SYMBOL, STOP))
+ 	scope_serial_clause (NEXT (p), s, terminator);
+       else if (a68_is_one_of (p, SERIAL_CLAUSE, ENQUIRY_CLAUSE, STOP))
+ 	{
+ 	  if (NEXT (p) != NO_NODE)
+ 	    {
+ 	      int j = ATTRIBUTE (NEXT (p));
+ 	      if (j == EXIT_SYMBOL || j == END_SYMBOL || j == CLOSE_SYMBOL)
+ 		scope_serial_clause (SUB (p), s, true);
+ 	      else
+ 		scope_serial_clause (SUB (p), s, false);
+ 	    }
+ 	  else
+ 	    scope_serial_clause (SUB (p), s, true);
+ 	  scope_serial_clause (NEXT (p), s, terminator);
+ 	}
+       else if (IS (p, LABELED_UNIT))
+ 	scope_serial_clause (SUB (p), s, terminator);
+       else if (IS (p, UNIT))
+ 	{
+ 	  if (terminator)
+ 	    scope_statement (p, s);
+ 	  else
+ 	    scope_statement (p, NO_VAR);
+ 	}
+     }
+ }
+ 
+ /* Scope_closed_clause.  */
+ 
+ static void
+ scope_closed_clause (NODE_T *p, SCOPE_T **s)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, SERIAL_CLAUSE))
+ 	scope_serial_clause (p, s, true);
+       else if (a68_is_one_of (p, OPEN_SYMBOL, BEGIN_SYMBOL, STOP))
+ 	scope_closed_clause (NEXT (p), s);
+     }
+ }
+ 
+ /* Scope_collateral_clause.  */
+ 
+ static void
+ scope_collateral_clause (NODE_T *p, SCOPE_T **s)
+ {
+   if (p != NO_NODE)
+     {
+       if (!(a68_whether (p, BEGIN_SYMBOL, END_SYMBOL, STOP)
+ 	    || a68_whether (p, OPEN_SYMBOL, CLOSE_SYMBOL, STOP)))
+ 	{
+ 	  scope_statement_list (p, s);
+ 	}
+     }
+ }
+ 
+ /* Scope_conditional_clause.  */
+ 
+ static void
+ scope_conditional_clause (NODE_T *p, SCOPE_T **s)
+ {
+   scope_serial_clause (NEXT_SUB (p), NO_VAR, true);
+   FORWARD (p);
+   scope_serial_clause (NEXT_SUB (p), s, true);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, ELSE_PART, CHOICE, STOP))
+ 	scope_serial_clause (NEXT_SUB (p), s, true);
+       else if (a68_is_one_of (p, ELIF_PART, BRIEF_ELIF_PART, STOP))
+ 	scope_conditional_clause (SUB (p), s);
+     }
+ }
+ 
+ /* Scope_case_clause.  */
+ 
+ static void
+ scope_case_clause (NODE_T *p, SCOPE_T **s)
+ {
+   SCOPE_T *n = NO_SCOPE;
+   scope_serial_clause (NEXT_SUB (p), &n, true);
+   (void) scope_check (n, NOT_TRANSIENT, LEX_LEVEL (p));
+   FORWARD (p);
+   scope_statement_list (NEXT_SUB (p), s);
+   if ((FORWARD (p)) != NO_NODE)
+     {
+       if (a68_is_one_of (p, OUT_PART, CHOICE, STOP))
+ 	scope_serial_clause (NEXT_SUB (p), s, true);
+       else if (a68_is_one_of (p, CASE_OUSE_PART, BRIEF_OUSE_PART, STOP))
+ 	scope_case_clause (SUB (p), s);
+       else if (a68_is_one_of (p, CONFORMITY_OUSE_PART, BRIEF_CONFORMITY_OUSE_PART, STOP))
+ 	scope_case_clause (SUB (p), s);
+     }
+ }
+ 
+ /* Scope_loop_clause.  */
+ 
+ static void
+ scope_loop_clause (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, FOR_PART))
+ 	scope_loop_clause (NEXT (p));
+       else if (a68_is_one_of (p, FROM_PART, BY_PART, TO_PART, STOP))
+ 	{
+ 	  scope_statement (NEXT_SUB (p), NO_VAR);
+ 	  scope_loop_clause (NEXT (p));
+ 	}
+       else if (IS (p, WHILE_PART))
+ 	{
+ 	  scope_serial_clause (NEXT_SUB (p), NO_VAR, true);
+ 	  scope_loop_clause (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, DO_PART, ALT_DO_PART, STOP))
+ 	{
+ 	  NODE_T *do_p = NEXT_SUB (p);
+ 
+ 	  if (IS (do_p, SERIAL_CLAUSE))
+ 	    scope_serial_clause (do_p, NO_VAR, true);
+ 	}
+     }
+ }
+ 
+ /* Scope and access-clause.  */
+ 
+ static void
+ scope_access_clause (NODE_T *p, SCOPE_T **s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, ENCLOSED_CLAUSE))
+ 	scope_enclosed_clause (SUB (p), s);
+     }
+ }
+ 
+ /* Scope_enclosed_clause.  */
+ 
+ static void
+ scope_enclosed_clause (NODE_T *p, SCOPE_T **s)
+ {
+   if (IS (p, ENCLOSED_CLAUSE))
+     scope_enclosed_clause (SUB (p), s);
+   else if (IS (p, CLOSED_CLAUSE))
+     scope_closed_clause (SUB (p), s);
+   else if (a68_is_one_of (p, COLLATERAL_CLAUSE, PARALLEL_CLAUSE, STOP))
+     scope_collateral_clause (SUB (p), s);
+   else if (IS (p, CONDITIONAL_CLAUSE))
+     scope_conditional_clause (SUB (p), s);
+   else if (a68_is_one_of (p, CASE_CLAUSE, CONFORMITY_CLAUSE, STOP))
+     scope_case_clause (SUB (p), s);
+   else if (IS (p, LOOP_CLAUSE))
+     scope_loop_clause (SUB (p));
+   else if (IS (p, ACCESS_CLAUSE))
+     scope_access_clause (SUB (p), s);
+ }
+ 
+ /* Whether a symbol table contains no (anonymous) definition.  */
+ 
+ static bool
+ empty_table (TABLE_T * t)
+ {
+   if (IDENTIFIERS (t) == NO_TAG)
+     return (OPERATORS (t) == NO_TAG && INDICANTS (t) == NO_TAG);
+   else if (PRIO (IDENTIFIERS (t)) == LOOP_IDENTIFIER && NEXT (IDENTIFIERS (t)) == NO_TAG)
+     return (OPERATORS (t) == NO_TAG && INDICANTS (t) == NO_TAG);
+   else if (PRIO (IDENTIFIERS (t)) == SPECIFIER_IDENTIFIER && NEXT (IDENTIFIERS (t)) == NO_TAG)
+     return (OPERATORS (t) == NO_TAG && INDICANTS (t) == NO_TAG);
+   else
+     return false;
+ }
+ 
+ /* Indicate non-local environs.  */
+ 
+ static void
+ get_non_local_environs (NODE_T *p, int max)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, ROUTINE_TEXT))
+ 	get_non_local_environs (SUB (p), LEX_LEVEL (SUB (p)));
+       else if (IS (p, FORMAT_TEXT))
+ 	get_non_local_environs (SUB (p), LEX_LEVEL (SUB (p)));
+       else
+ 	{
+ 	  get_non_local_environs (SUB (p), max);
+ 	  NON_LOCAL (p) = NO_TABLE;
+ 	  if (TABLE (p) != NO_TABLE)
+ 	    {
+ 	      TABLE_T *q = TABLE (p);
+ 	      while (q != NO_TABLE && empty_table (q)
+ 		     && PREVIOUS (q) != NO_TABLE && LEVEL (PREVIOUS (q)) >= max)
+ 		{
+ 		  NON_LOCAL (p) = PREVIOUS (q);
+ 		  q = PREVIOUS (q);
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Scope a module text.  */
+ 
+ static void
+ scope_module_text (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEF_PART) || IS (p, POSTLUDE_PART))
+ 	{
+ 	  NODE_T *clause = NEXT (SUB (p));
+ 	  gcc_assert (IS (clause, ENQUIRY_CLAUSE) || IS (clause, SERIAL_CLAUSE));
+ 	  scope_serial_clause (clause, NO_VAR, true /* terminator */);
+ 	}
+     }
+ }
+ 
+ /* Scope a module declaration.  */
+ 
+ static void
+ scope_module_declaration (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, MODULE_TEXT))
+ 	scope_module_text (SUB (p));
+       else
+ 	scope_module_declaration (SUB (p));
+     }
+ }
+ 
+ /* Scope a particular program.  */
+ 
+ static void
+ scope_particular_program (NODE_T *p)
+ {
+   scope_enclosed_clause (SUB (SUB (p)), NO_VAR);
+ }
+ 
+ /* Scope a prelude packet.  */
+ 
+ static void
+ scope_prelude_packet (NODE_T *p)
+ {
+   gcc_assert (IS (SUB (p), MODULE_DECLARATION));
+   scope_module_declaration (SUB (p));
+ }
+ 
+ /* The static scope checker.  */
+ 
+ void
+ a68_scope_checker (NODE_T *p)
+ {
+   /* Establish scopes of routine texts and format texts.  */
+   get_youngest_environs (p);
+   /* Find non-local environs.  */
+   get_non_local_environs (p, PRIMAL_SCOPE);
+   /* PROC and FORMAT identities can now be assigned a scope.  */
+   bind_scope_to_tags (p);
+ 
+   /* Now check evertyhing else.  */
+   gcc_assert (IS (p, PACKET));
+   if (IS (SUB (p), PARTICULAR_PROGRAM))
+     scope_particular_program (SUB (p));
+   else if (IS (SUB (p), PRELUDE_PACKET))
+     scope_prelude_packet (SUB (p));
+   else
+     gcc_unreachable ();
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-serial-dsa.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-serial-dsa.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-serial-dsa.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-serial-dsa.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,114 ----
+ /* Check dynamic stack usage in serial clauses.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Written by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* This file implements a phase that determines what serial clauses contain
+    phrases whose elaboration may involve dynamic stack allocation.  It
+    annotates the SERIAL_CLAUSE parse nodes by setting the DYNAMIC_STACK_ALLOCS
+    flag.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "options.h"
+ 
+ #include "a68.h"
+ 
+ /* Uncomment the following line for debugging traces.  */
+ /* #define SERIAL_DSA_DEBUG */
+ 
+ static void
+ serial_dsa_check_serial_clause (NODE_T *p, bool *dsa)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, GENERATOR))
+ 	{
+ 	  /* LOC generators always result in dyamic stack allocation regardless
+ 	     of the mode of the allocated value.  */
+ 	  if (IS (SUB (p), LOC_SYMBOL))
+ 	    {
+ #ifdef SERIAL_DSA_DEBUG
+ 	      fprintf (stderr, "serial_dsa: %s:%d: loc generator implies DSA\n",
+ 		       FILENAME (LINE (INFO (p))),
+ 		       LINE_NUMBER (p));
+ #endif
+ 	      *dsa = true;
+ 	      return;
+ 	    }
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  /* Variable declarations of values with sample loc generators will
+ 	     result in dynamic stack allocation.
+ 
+ 	     Note that label declarations do no have a mode, so we have to
+ 	     check for MOID (p).  */
+ 
+ 	  if (MOID (p) != NO_MOID && IS_REF (MOID (p)))
+ 	    {
+ 	      bool heap = HEAP (TAX (p)) == HEAP_SYMBOL;
+ 	      if (HAS_ROWS (SUB (MOID (p))) && !heap)
+ 		{
+ #ifdef SERIAL_DSA_DEBUG		  
+ 		  fprintf (stderr,
+ 			   "serial_dsa: %s:%d: defining identifier %s implies DSA\n",
+ 			   FILENAME (LINE (INFO (p))),
+ 			   LINE_NUMBER (p),
+ 			   NSYMBOL (p));
+ #endif
+ 		  *dsa = true;
+ 		  return;
+ 		}
+ 	    }
+ 	}
+       else
+ 	{
+ 	  /* Inner serial clauses will take care of their own.  Code in routine
+ 	     texts will not impact the stack of the containing serial
+ 	     clause.  */
+ 	  if (!IS (p, SERIAL_CLAUSE) && !IS (p, ROUTINE_TEXT))
+ 	    serial_dsa_check_serial_clause (SUB (p), dsa);
+ 	}
+     }
+ }
+ 
+ void
+ a68_serial_dsa (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       a68_serial_dsa (SUB (p));
+       if (IS (p, SERIAL_CLAUSE))
+ 	{
+ 	  bool dsa = false;
+ 	  serial_dsa_check_serial_clause (SUB (p), &dsa);
+ 	  DYNAMIC_STACK_ALLOCS (p) = dsa;
+ #ifdef SERIAL_DSA_DEBUG
+ 	  if (dsa)
+ 	    {
+ 	      fprintf (stderr, "serial_dsa: %s:%d: marking serial clause %p as DSA\n",
+ 		       FILENAME (LINE (INFO (p))),
+ 		       LINE_NUMBER (p),
+ 		       (void *) p);
+ 	    }
+ 	  
+ #endif
+ 	}
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-taxes.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-taxes.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-taxes.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-taxes.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1815 ----
+ /* Symbol table management.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /*
+  * Symbol table handling, managing TAGS.
+  */
+ 
+ /* Forward declarations for several functions defined below.  */
+ 
+ static TAG_T *find_tag_local (TABLE_T *table, int a, const char *name);
+ 
+ /* Set level for procedures.  */
+ 
+ void
+ a68_set_proc_level (NODE_T *p, int n)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       PROCEDURE_LEVEL (INFO (p)) = n;
+       if (IS (p, ROUTINE_TEXT))
+ 	a68_set_proc_level (SUB (p), n + 1);
+       else
+ 	a68_set_proc_level (SUB (p), n);
+     }
+ }
+ 
+ /* Set nests for diagnostics.  */
+ 
+ void
+ a68_set_nest (NODE_T *p, NODE_T *s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       NEST (p) = s;
+       if (IS (p, PARTICULAR_PROGRAM))
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, CLOSED_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, COLLATERAL_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, CONDITIONAL_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, CASE_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, CONFORMITY_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else if (IS (p, LOOP_CLAUSE) && LINE_NUMBER (p) != 0)
+ 	a68_set_nest (SUB (p), p);
+       else
+ 	a68_set_nest (SUB (p), s);
+     }
+ }
+ 
+ /*
+  * Routines that work with tags and symbol tables.
+  */
+ 
+ static void tax_tags (NODE_T *);
+ static void tax_specifier_list (NODE_T *);
+ static void tax_parameter_list (NODE_T *);
+ static void tax_format_texts (NODE_T *);
+ 
+ /* Find a tag, searching symbol tables towards the root.  */
+ 
+ int
+ a68_first_tag_global (TABLE_T * table, const char *name)
+ {
+   if (table != NO_TABLE)
+     {
+       for (TAG_T *s = IDENTIFIERS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return IDENTIFIER;
+ 	}
+       for (TAG_T *s = INDICANTS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return INDICANT;
+ 	}
+       for (TAG_T *s = LABELS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return LABEL;
+ 	}
+       for (TAG_T *s = OPERATORS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return OP_SYMBOL;
+ 	}
+       for (TAG_T *s = MODULES (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return MODULE_SYMBOL;
+ 	}
+       for (TAG_T *s = PRIO (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return PRIO_SYMBOL;
+ 	}
+       return a68_first_tag_global (PREVIOUS (table), name);
+     }
+   else
+     return STOP;
+ }
+ 
+ /* Whether routine can be "lengthety-mapped".  */
+ 
+ static bool
+ is_mappable_routine (const char *z)
+ {
+ #define ACCEPT(u, v) {\
+   if (strlen (u) >= strlen (v)) {\
+     if (strcmp (&u[strlen (u) - strlen (v)], v) == 0) {\
+       return true;\
+   }}}
+ 
+   /* Math routines.  */
+   ACCEPT (z, "arccos");
+   ACCEPT (z, "arccosdg");
+   ACCEPT (z, "arccot");
+   ACCEPT (z, "arccotdg");
+   ACCEPT (z, "arcsin");
+   ACCEPT (z, "arcsindg");
+   ACCEPT (z, "arctan");
+   ACCEPT (z, "arctandg");
+   ACCEPT (z, "beta");
+   ACCEPT (z, "betainc");
+   ACCEPT (z, "cbrt");
+   ACCEPT (z, "cos");
+   ACCEPT (z, "cosdg");
+   ACCEPT (z, "cospi");
+   ACCEPT (z, "cot");
+   ACCEPT (z, "cot");
+   ACCEPT (z, "cotdg");
+   ACCEPT (z, "cotpi");
+   ACCEPT (z, "curt");
+   ACCEPT (z, "erf");
+   ACCEPT (z, "erfc");
+   ACCEPT (z, "exp");
+   ACCEPT (z, "gamma");
+   ACCEPT (z, "gammainc");
+   ACCEPT (z, "gammaincg");
+   ACCEPT (z, "gammaincgf");
+   ACCEPT (z, "ln");
+   ACCEPT (z, "log");
+   ACCEPT (z, "pi");
+   ACCEPT (z, "sin");
+   ACCEPT (z, "sindg");
+   ACCEPT (z, "sinpi");
+   ACCEPT (z, "sqrt");
+   ACCEPT (z, "tan");
+   ACCEPT (z, "tandg");
+   ACCEPT (z, "tanpi");
+   /* Random generator.  */
+   ACCEPT (z, "nextrandom");
+   ACCEPT (z, "random");
+   /* BITS.  */
+   ACCEPT (z, "bitspack");
+   /* Enquiries.  */
+   ACCEPT (z, "maxint");
+   ACCEPT (z, "intwidth");
+   ACCEPT (z, "maxreal");
+   ACCEPT (z, "realwidth");
+   ACCEPT (z, "expwidth");
+   ACCEPT (z, "maxbits");
+   ACCEPT (z, "bitswidth");
+   ACCEPT (z, "byteswidth");
+   ACCEPT (z, "smallreal");
+   return false;
+ #undef ACCEPT
+ }
+ 
+ /* Map "short sqrt" onto "sqrt" etcetera.  */
+ 
+ static TAG_T *
+ bind_lengthety_identifier (const char *u)
+ {
+ #define CAR(u, v) (strncmp (u, v, strlen(v)) == 0)
+   /* We can only map routines blessed by "is_mappable_routine", so there is no
+      "short print" or "long char in string". */
+   if (CAR (u, "short"))
+     {
+       do
+ 	{
+ 	  u = &u[strlen ("short")];
+ 	  const char *v = TEXT (a68_add_token (&A68 (top_token), u));
+ 	  TAG_T *w = find_tag_local (A68_STANDENV, IDENTIFIER, v);
+ 	  if (w != NO_TAG && is_mappable_routine (v))
+ 	    return w;
+ 	}
+       while (CAR (u, "short"));
+     }
+   else if (CAR (u, "long"))
+     {
+       do
+ 	{
+ 	  u = &u[strlen ("long")];
+ 	  const char *v = TEXT (a68_add_token (&A68 (top_token), u));
+ 	  TAG_T *w = find_tag_local (A68_STANDENV, IDENTIFIER, v);
+ 	  if (w != NO_TAG && is_mappable_routine (v))
+ 	    return w;
+ 	}
+       while (CAR (u, "long"));
+     }
+ 
+   return NO_TAG;
+ #undef CAR
+ }
+ 
+ /* Bind identifier tags to the symbol table.  */
+ 
+ static void
+ bind_identifier_tag_to_symbol_table (NODE_T * p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       bind_identifier_tag_to_symbol_table (SUB (p));
+ 
+       if (a68_is_one_of (p, IDENTIFIER, DEFINING_IDENTIFIER, STOP))
+ 	{
+ 	  int att = a68_first_tag_global (TABLE (p), NSYMBOL (p));
+ 
+ 	  if (att == STOP)
+ 	    {
+ 	      TAG_T *z = bind_lengthety_identifier (NSYMBOL (p));
+ 
+ 	      if (z != NO_TAG)
+ 		MOID (p) = MOID (z);
+ 	      TAX (p) = z;
+ 	    }
+ 	  else
+ 	    {
+ 	      TAG_T *z = a68_find_tag_global (TABLE (p), att, NSYMBOL (p));
+ 
+ 	      if (att == IDENTIFIER && z != NO_TAG)
+ 		MOID (p) = MOID (z);
+ 	      else if (att == LABEL && z != NO_TAG)
+ 		;
+ 	      else if ((z = bind_lengthety_identifier (NSYMBOL (p))) != NO_TAG)
+ 		MOID (p) = MOID (z);
+ 	      else
+ 		{
+ 		  a68_error (p, "tag %qs has not been declared properly",
+ 			     NSYMBOL (p));
+ 		  z = a68_add_tag (TABLE (p), IDENTIFIER, p, M_ERROR, NORMAL_IDENTIFIER);
+ 		  MOID (p) = M_ERROR;
+ 		}
+ 	      TAX (p) = z;
+ 	      if (IS (p, DEFINING_IDENTIFIER))
+ 		NODE (z) = p;
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Tell whether the given tree refers to the applied indicant INDICANT in an
+    actual declarer.  */
+ 
+ static bool
+ declarer_contains_indicant (NODE_T *p, NODE_T *indicant)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, DECLARER)
+ 	  && IS (SUB (q), INDICANT)
+ 	  && ((TAX (SUB (q)) && IS_RECURSIVE (TAX (SUB (q))))
+ 	      || IS_LITERALLY (SUB (q), NSYMBOL (indicant))))
+ 	{
+ 	  return true;
+ 	}
+ 
+       if (declarer_contains_indicant (SUB (q), indicant))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
+ /* Bind indicant tags to the symbol table.  */
+ 
+ static void
+ bind_indicant_tag_to_symbol_table (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       bind_indicant_tag_to_symbol_table (SUB (p));
+ 
+       if (a68_is_one_of (p, INDICANT, DEFINING_INDICANT, STOP))
+ 	{
+ 	  TAG_T *z = a68_find_tag_global (TABLE (p), INDICANT, NSYMBOL (p));
+ 
+ 	  if (z != NO_TAG)
+ 	    {
+ 	      MOID (p) = MOID (z);
+ 	      TAX (p) = z;
+ 	      if (IS (p, DEFINING_INDICANT))
+ 		{
+ 		  NODE (z) = p;
+ 		  IS_RECURSIVE (z) = declarer_contains_indicant (NEXT_NEXT (p), p);
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Enter specifier identifiers in the symbol table.  */
+ 
+ static void
+ tax_specifiers (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_specifiers (SUB (p));
+ 
+       if (SUB (p) != NO_NODE && IS (p, SPECIFIER))
+ 	tax_specifier_list (SUB (p));
+     }
+ }
+ 
+ /* Enter specifier identifiers in the symbol table.  */
+ 
+ static void
+ tax_specifier_list (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, OPEN_SYMBOL))
+ 	tax_specifier_list (NEXT (p));
+       else if (a68_is_one_of (p, CLOSE_SYMBOL, VOID_SYMBOL, STOP))
+ 	;
+       else if (IS (p, IDENTIFIER))
+ 	{
+ 	  TAG_T *z = a68_add_tag (TABLE (p), IDENTIFIER, p, NO_MOID, SPECIFIER_IDENTIFIER);
+ 	  HEAP (z) = LOC_SYMBOL;
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  tax_specifiers (SUB (p));
+ 	  tax_specifier_list (NEXT (p));
+ 	  /* last identifier entry is identifier with this declarer.  */
+ 	  if (IDENTIFIERS (TABLE (p)) != NO_TAG
+ 	      && PRIO (IDENTIFIERS (TABLE (p))) == SPECIFIER_IDENTIFIER)
+ 	    MOID (IDENTIFIERS (TABLE (p))) = MOID (p);
+ 	}
+     }
+ }
+ 
+ /* Enter parameter identifiers in the symbol table.  */
+ 
+ static void
+ tax_parameters (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (SUB (p) != NO_NODE)
+ 	{
+ 	  tax_parameters (SUB (p));
+ 	  if (IS (p, PARAMETER_PACK))
+ 	    tax_parameter_list (SUB (p));
+ 	}
+     }
+ }
+ 
+ /* Enter parameter identifiers in the symbol table.  */
+ 
+ static void
+ tax_parameter_list (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (a68_is_one_of (p, OPEN_SYMBOL, COMMA_SYMBOL, STOP))
+       tax_parameter_list (NEXT (p));
+       else if (IS (p, CLOSE_SYMBOL))
+ 	;
+       else if (a68_is_one_of (p, PARAMETER_LIST, PARAMETER, STOP))
+ 	{
+ 	  tax_parameter_list (NEXT (p));
+ 	  tax_parameter_list (SUB (p));
+ 	}
+       else if (IS (p, IDENTIFIER))
+ 	{
+ 	  /* parameters are always local.  */
+ 	  HEAP (a68_add_tag (TABLE (p), IDENTIFIER, p, NO_MOID, PARAMETER_IDENTIFIER)) = LOC_SYMBOL;
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  tax_parameter_list (NEXT (p));
+ 	  /* last identifier entries are identifiers with this declarer.  */
+ 	  for (TAG_T *s = IDENTIFIERS (TABLE (p)); s != NO_TAG && MOID (s) == NO_MOID; FORWARD (s))
+ 	    MOID (s) = MOID (p);
+ 	  tax_parameters (SUB (p));
+ 	}
+     }
+ }
+ 
+ /* Enter FOR identifiers in the symbol table.  */
+ 
+ static void
+ tax_for_identifiers (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_for_identifiers (SUB (p));
+ 
+       if (IS (p, FOR_SYMBOL))
+ 	{
+ 	  if ((FORWARD (p)) != NO_NODE)
+ 	    (void) a68_add_tag (TABLE (p), IDENTIFIER, p, M_INT, LOOP_IDENTIFIER);
+ 	}
+     }
+ }
+ 
+ /* Enter routine texts in the symbol table.  */
+ 
+ static void
+ tax_routine_texts (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_routine_texts (SUB (p));
+ 
+       if (IS (p, ROUTINE_TEXT))
+ 	{
+ 	  TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, MOID (p), ROUTINE_TEXT);
+ 	  TAX (p) = z;
+ 	  HEAP (z) = LOC_SYMBOL;
+ 	  USE (z) = true;
+ 	}
+     }
+ }
+ 
+ /* Enter format texts in the symbol table.  */
+ 
+ static void
+ tax_format_texts (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_format_texts (SUB (p));
+ 
+       if (IS (p, FORMAT_TEXT))
+ 	{
+ 	  TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, M_FORMAT, FORMAT_TEXT);
+ 	  TAX (p) = z;
+ 	  USE (z) = true;
+ 	}
+       else if (IS (p, FORMAT_DELIMITER_SYMBOL) && NEXT (p) != NO_NODE)
+ 	{
+ 	  TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, M_FORMAT, FORMAT_IDENTIFIER);
+ 	  TAX (p) = z;
+ 	  USE (z) = true;
+ 	}
+     }
+ }
+ 
+ /* Enter FORMAT pictures in the symbol table.  */
+ 
+ static void
+ tax_pictures (NODE_T * p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_pictures (SUB (p));
+ 
+       if (IS (p, PICTURE))
+ 	TAX (p) = a68_add_tag (TABLE (p), ANONYMOUS, p, M_COLLITEM, FORMAT_IDENTIFIER);
+     }
+ }
+ 
+ /* Enter generators in the symbol table.  */
+ 
+ static void
+ tax_generators (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       tax_generators (SUB (p));
+ 
+       if (IS (p, GENERATOR))
+ 	{
+ 	  if (IS (SUB (p), LOC_SYMBOL))
+ 	    {
+ 	      TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, SUB_MOID (SUB (p)), GENERATOR);
+ 	      HEAP (z) = LOC_SYMBOL;
+ 	      USE (z) = true;
+ 	      TAX (p) = z;
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Find a firmly related operator for operands.  */
+ 
+ static TAG_T *
+ find_firmly_related_op (TABLE_T *c, const char *n, MOID_T *l, MOID_T *r, TAG_T *self)
+ {
+   if (c != NO_TABLE)
+     {
+       TAG_T *s = OPERATORS (c);
+ 
+       for (; s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (s != self && NSYMBOL (NODE (s)) == n)
+ 	    {
+ 	      PACK_T *t = PACK (MOID (s));
+ 	      if (t != NO_PACK && a68_is_firm (MOID (t), l))
+ 		{
+ 		  /* catch monadic operator.  */
+ 		  if ((FORWARD (t)) == NO_PACK)
+ 		    {
+ 		      if (r == NO_MOID)
+ 			return s;
+ 		    }
+ 		  else
+ 		    {
+ 		      /* catch dyadic operator.  */
+ 		      if (r != NO_MOID && a68_is_firm (MOID (t), r))
+ 			return s;
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+   return NO_TAG;
+ }
+ 
+ /* Check for firmly related operators in this range.  */
+ 
+ static void
+ test_firmly_related_ops_local (NODE_T *p, TAG_T *s)
+ {
+   if (s != NO_TAG)
+     {
+       PACK_T *u = PACK (MOID (s));
+ 
+       if (u != NO_PACK)
+ 	{
+ 	  MOID_T *l = MOID (u);
+ 	  MOID_T *r = (NEXT (u) != NO_PACK ? MOID (NEXT (u)) : NO_MOID);
+ 	  TAG_T *t = find_firmly_related_op (TAG_TABLE (s), NSYMBOL (NODE (s)), l, r, s);
+ 
+ 	  if (t != NO_TAG)
+ 	    {
+ 	      a68_moid_format_token m1 (MOID (s));
+ 	      a68_moid_format_token m2 (MOID (t));
+ 	      a68_error (p, "%e %qs is firmly related to %e %qs",
+ 			 &m1, NSYMBOL (NODE (s)), &m2,
+ 			 NSYMBOL (NODE (t)));
+ 	    }
+ 	  else
+ 	    {
+ 	      /* Warn for hidden firmly related operators defined in outer
+ 		 ranges, if requested.  */
+ 	      for (TABLE_T *prev = PREVIOUS (TAG_TABLE (s));
+ 		   prev != NO_TABLE;
+ 		   prev = PREVIOUS (prev))
+ 		{
+ 		  TAG_T *t = find_firmly_related_op (prev, NSYMBOL (NODE (s)), l, r,
+ 						     NO_TAG /* self */);
+ 		  if (t != NO_TAG)
+ 		    {
+ 		      if (TAG_TABLE (t) == A68_STANDENV
+ 			  && warn_algol68_hidden_declarations > 0)
+ 			{
+ 			  if (a68_warning (p, OPT_Whidden_declarations_,
+ 					   "%qs hides a firmly related operator in a larger reach",
+ 					   NSYMBOL (NODE (s))))
+ 			    {
+ 			      a68_moid_format_token m (MOID (t));
+ 			      a68_inform (NO_NODE,
+ 					  "operator %e %qs defined in the standard prelude",
+ 					  &m, NSYMBOL (NODE (t)));
+ 			    }
+ 			}
+ 		      else if (warn_algol68_hidden_declarations > 1)
+ 			{
+ 			  if (a68_warning (p, OPT_Whidden_declarations_,
+ 					   "%qs hides a firmly related operator in a larger reach",
+ 					   NSYMBOL (NODE (s))))
+ 			    {
+ 			      a68_symbol_format_token s1 (NODE (s));
+ 			      a68_inform (NODE (t),
+ 					  "previous hidden declaration of %e declared here",
+ 					  &s1);
+ 			    }
+ 			}
+ 
+ 		      /* Report only one level of hidding or it gets messy.  */
+ 		      break;
+ 		    }
+ 		}
+ 	    }
+ 	}
+       if (NEXT (s) != NO_TAG)
+ 	test_firmly_related_ops_local ((p == NO_NODE ? NO_NODE : NODE (NEXT (s))), NEXT (s));
+     }
+ }
+ 
+ /* Find firmly related operators in this program.  */
+ 
+ static void
+ test_firmly_related_ops (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (SUB (p) != NO_NODE && a68_is_new_lexical_level (p))
+ 	{
+ 	  TAG_T *oops = OPERATORS (TABLE (SUB (p)));
+ 
+ 	  if (oops != NO_TAG)
+ 	    test_firmly_related_ops_local (NODE (oops), oops);
+ 	}
+       test_firmly_related_ops (SUB (p));
+     }
+ }
+ 
+ /* Driver for the processing of TAXes.  */
+ 
+ void
+ a68_collect_taxes (NODE_T *p)
+ {
+   tax_tags (p);
+   tax_specifiers (p);
+   tax_parameters (p);
+   tax_for_identifiers (p);
+   tax_routine_texts (p);
+   tax_pictures (p);
+   tax_format_texts (p);
+   tax_generators (p);
+   bind_identifier_tag_to_symbol_table (p);
+   bind_indicant_tag_to_symbol_table (p);
+   test_firmly_related_ops (p);
+   test_firmly_related_ops_local (NO_NODE, OPERATORS (A68_STANDENV));
+ }
+ 
+ /* Whether tag has already been declared in this range.  */
+ 
+ static void
+ already_declared (NODE_T *n, int a)
+ {
+   if (find_tag_local (TABLE (n), a, NSYMBOL (n)) != NO_TAG)
+     a68_error (n, "multiple declaration of tag %qs", NSYMBOL (n));
+ }
+ 
+ /* Whether tag has already been declared in this range.  */
+ 
+ static void
+ already_declared_hidden (NODE_T *n, int a)
+ {
+   if (find_tag_local (TABLE (n), a, NSYMBOL (n)) != NO_TAG)
+     a68_error (n, "multiple declaration of tag %qs", NSYMBOL (n));
+ 
+   TAG_T *s = a68_find_tag_global (PREVIOUS (TABLE (n)), a, NSYMBOL (n));
+ 
+   if (s != NO_TAG
+       && ((TAG_TABLE (s) == A68_STANDENV && warn_algol68_hidden_declarations > 0)
+ 	  || (TAG_TABLE (s) != A68_STANDENV && warn_algol68_hidden_declarations > 1)))
+     {
+       if (a68_warning (n, OPT_Whidden_declarations_,
+ 		       "%qs hides a declaration with larger reach",
+ 		       NSYMBOL (n)))
+ 	{
+ 	  if (TAG_TABLE (s) == A68_STANDENV)
+ 	    {
+ 	      a68_moid_format_token m (MOID (s));
+ 	      a68_inform (NO_NODE,
+ 			  "%e %qs defined in the standard prelude",
+ 			  &m, NSYMBOL (NODE (s)));
+ 	    }
+ 	  else
+ 	    a68_inform (NODE (s),
+ 			"previous hidden declaration of %qs declared here",
+ 			NSYMBOL (n));
+ 	}
+     }
+ }
+ 
+ /* Add tag to local symbol table.  */
+ 
+ TAG_T *
+ a68_add_tag (TABLE_T *s, int a, NODE_T *n, MOID_T *m, int p)
+ {
+ #define INSERT_TAG(l, n) {NEXT (n) = *(l); *(l) = (n);}
+   if (s != NO_TABLE)
+     {
+       TAG_T *z = a68_new_tag ();
+ 
+       TAG_TABLE (z) = s;
+       PRIO (z) = p;
+       MOID (z) = m;
+       NODE (z) = n;
+       /* TAX(n) = z;.  */
+       switch (a)
+ 	{
+ 	case IDENTIFIER:
+ 	  already_declared_hidden (n, IDENTIFIER);
+ 	  already_declared_hidden (n, LABEL);
+ 	  INSERT_TAG (&IDENTIFIERS (s), z);
+ 	  break;
+ 	case INDICANT:
+ 	  already_declared_hidden (n, INDICANT);
+ 	  already_declared (n, OP_SYMBOL);
+ 	  already_declared (n, PRIO_SYMBOL);
+ 	  INSERT_TAG (&INDICANTS (s), z);
+ 	  break;
+ 	case LABEL:
+ 	  already_declared_hidden (n, LABEL);
+ 	  already_declared_hidden (n, IDENTIFIER);
+ 	  INSERT_TAG (&LABELS (s), z);
+ 	  break;
+ 	case OP_SYMBOL:
+ 	  already_declared (n, INDICANT);
+ 	  INSERT_TAG (&OPERATORS (s), z);
+ 	  break;
+ 	case MODULE_SYMBOL:
+ 	  already_declared (n, INDICANT);
+ 	  INSERT_TAG (&MODULES (s), z);
+ 	  break;
+ 	case PRIO_SYMBOL:
+ 	  already_declared (n, PRIO_SYMBOL);
+ 	  already_declared (n, INDICANT);
+ 	  INSERT_TAG (&PRIO (s), z);
+ 	  break;
+ 	case ANONYMOUS:
+ 	  INSERT_TAG (&ANONYMOUS (s), z);
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+       return z;
+     }
+   else
+     return NO_TAG;
+ }
+ 
+ /* Find a tag, searching symbol tables towards the root.  */
+ 
+ TAG_T *
+ a68_find_tag_global (TABLE_T *table, int a, const char *name)
+ {
+   if (table != NO_TABLE)
+     {
+       TAG_T *s = NO_TAG;
+       switch (a)
+ 	{
+ 	case IDENTIFIER:
+ 	  s = IDENTIFIERS (table);
+ 	  break;
+ 	case INDICANT:
+ 	  s = INDICANTS (table);
+ 	  break;
+ 	case LABEL:
+ 	  s = LABELS (table);
+ 	  break;
+ 	case OP_SYMBOL:
+ 	  s = OPERATORS (table);
+ 	  break;
+ 	case MODULE_SYMBOL:
+ 	  s = MODULES (table);
+ 	  break;
+ 	case PRIO_SYMBOL:
+ 	  s = PRIO (table);
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	  break;
+ 	}
+ 
+       for (; s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return s;
+ 	}
+       return a68_find_tag_global (PREVIOUS (table), a, name);
+     }
+   else
+     return NO_TAG;
+ }
+ 
+ /* Whether identifier or label global.  */
+ 
+ int
+ a68_is_identifier_or_label_global (TABLE_T *table, const char *name)
+ {
+   if (table != NO_TABLE)
+     {
+       for (TAG_T *s = IDENTIFIERS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return IDENTIFIER;
+ 	}
+       for (TAG_T *s = LABELS (table); s != NO_TAG; FORWARD (s))
+ 	{
+ 	  if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	    return LABEL;
+ 	}
+       return a68_is_identifier_or_label_global (PREVIOUS (table), name);
+     }
+   else
+     return 0;
+ }
+ 
+ /* Find a tag, searching only local symbol table.  */
+ 
+ static TAG_T *
+ find_tag_local (TABLE_T *table, int a, const char *name)
+ {
+   if (table != NO_TABLE)
+     {
+       TAG_T *s = NO_TAG;
+ 
+       if (a == OP_SYMBOL)
+ 	s = OPERATORS (table);
+       else if (a == MODULE_SYMBOL)
+ 	s = MODULES (table);
+       else if (a == PRIO_SYMBOL)
+ 	s = PRIO (table);
+       else if (a == IDENTIFIER)
+ 	s = IDENTIFIERS (table);
+       else if (a == INDICANT)
+ 	s = INDICANTS (table);
+       else if (a == LABEL)
+ 	s = LABELS (table);
+       else
+ 	gcc_unreachable ();
+ 
+     for (; s != NO_TAG; FORWARD (s))
+       {
+ 	if (NSYMBOL (NODE (s)) == name || strcmp (NSYMBOL (NODE (s)), name) == 0)
+ 	  return s;
+       }
+     }
+   return NO_TAG;
+ }
+ 
+ /* Whether context specifies HEAP or LOC for an identifier.
+ 
+    The boolean *E is set to true if an explicit qualifier was found, false
+    otherwise.  */
+ 
+ static int
+ tab_qualifier (NODE_T *p, bool *e)
+ {
+   *e = false;
+   if (p != NO_NODE)
+     {
+       if (a68_is_one_of (p, UNIT, ASSIGNATION, TERTIARY, SECONDARY, GENERATOR, STOP))
+ 	return tab_qualifier (SUB (p), e);
+       else if (a68_is_one_of (p, LOC_SYMBOL, HEAP_SYMBOL, STOP))
+ 	{
+ 	  *e = true;
+ 	  return ATTRIBUTE (p) == LOC_SYMBOL ? LOC_SYMBOL : HEAP_SYMBOL;
+ 	}
+       else
+ 	return LOC_SYMBOL;
+     }
+   else
+     return LOC_SYMBOL;
+ }
+ 
+ /* Enter identity declarations in the symbol table.
+ 
+    E is true if HEAP or LOC got specified explicitly in the identity
+    declaration's formal parameter.  */
+ 
+ static void
+ tax_identity_dec (NODE_T *p, MOID_T **m)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, IDENTITY_DECLARATION))
+ 	{
+ 	  tax_identity_dec (SUB (p), m);
+ 	  tax_identity_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, PUBLIC_SYMBOL))
+ 	{
+ 	  tax_identity_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  tax_tags (SUB (p));
+ 	  *m = MOID (p);
+ 	  tax_identity_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, COMMA_SYMBOL))
+ 	{
+ 	  tax_identity_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  TAG_T *entry = find_tag_local (TABLE (p), IDENTIFIER, NSYMBOL (p));
+ 	  gcc_assert (entry != NO_TAG);
+ 
+ 	  MOID (p) = *m;
+ 	  HEAP (entry) = LOC_SYMBOL;
+ 	  TAX (p) = entry;
+ 	  MOID (entry) = *m;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 	  bool e;
+ 	  if (ATTRIBUTE (*m) == REF_SYMBOL)
+ 	    {
+ 	      HEAP (entry) = tab_qualifier (NEXT_NEXT (p), &e);
+ 	      if (e && HEAP (entry) == LOC_SYMBOL && PUBLICIZED (entry))
+ 		a68_warning (p, 0, "value of local generator will be out of scope");
+ 	    }
+ 	  tax_identity_dec (NEXT_NEXT (p), m);
+ 	}
+       else
+ 	tax_tags (p);
+     }
+ }
+ 
+ /* Enter variable declarations in the symbol table.
+ 
+    E is true if an explicit sample generator was specified in the variable
+    declaration.  */
+ 
+ static void
+ tax_variable_dec (NODE_T *p, int *q, MOID_T **m, bool e)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, VARIABLE_DECLARATION))
+ 	{
+ 	  tax_variable_dec (SUB (p), q, m, e);
+ 	  tax_variable_dec (NEXT (p), q, m, e);
+ 	}
+       else if (IS (p, PUBLIC_SYMBOL))
+ 	{
+ 	  tax_variable_dec (NEXT (p), q, m, e);
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  tax_tags (SUB (p));
+ 	  *m = MOID (p);
+ 	  tax_variable_dec (NEXT (p), q, m, e);
+ 	}
+       else if (IS (p, QUALIFIER))
+ 	{
+ 	  *q = ATTRIBUTE (SUB (p));
+ 	  tax_variable_dec (NEXT (p), q, m, true);
+ 	}
+       else if (IS (p, COMMA_SYMBOL))
+ 	{
+ 	  tax_variable_dec (NEXT (p), q, m, e);
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  TAG_T *entry = find_tag_local (TABLE (p), IDENTIFIER, NSYMBOL (p));
+ 
+ 	  MOID (p) = *m;
+ 	  TAX (p) = entry;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 
+ 	  if (PUBLICIZED (p) && e && *q == LOC_SYMBOL)
+ 	    a68_error (p, "publicized variable should not be allocated on the stack");
+ 
+ 	  if (PUBLICIZED (p))
+ 	    HEAP (entry) = STATIC_SYMBOL;
+ 	  else
+ 	    HEAP (entry) = *q;
+ 	  
+ 	  if (HEAP (entry) == LOC_SYMBOL)
+ 	    {
+ 	      TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, SUB (*m), GENERATOR);
+ 	      HEAP (z) = LOC_SYMBOL;
+ 	      USE (z) = true;
+ 	      BODY (entry) = z;
+ 	    }
+ 	  else
+ 	    {
+ 	      BODY (entry) = NO_TAG;
+ 	    }
+ 	  MOID (entry) = *m;
+ 	  tax_variable_dec (NEXT (p), q, m, e);
+ 	}
+       else
+ 	tax_tags (p);
+     }
+ }
+ 
+ /* Enter procedure variable declarations in the symbol table.
+ 
+    E is true if an explicit sample generator was specified in the procedure
+    variable declaration.  */
+ 
+ static void
+ tax_proc_variable_dec (NODE_T *p, int *q, bool e)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, PROCEDURE_VARIABLE_DECLARATION))
+ 	{
+ 	  tax_proc_variable_dec (SUB (p), q, e);
+ 	  tax_proc_variable_dec (NEXT (p), q, e);
+ 	}
+       else if (IS (p, QUALIFIER))
+ 	{
+ 	  *q = ATTRIBUTE (SUB (p));
+ 	  tax_proc_variable_dec (NEXT (p), q, true);
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, PROC_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  tax_proc_variable_dec (NEXT (p), q, e);
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  TAG_T *entry = find_tag_local (TABLE (p), IDENTIFIER, NSYMBOL (p));
+ 
+ 	  TAX (p) = entry;
+ 	  MOID (entry) = MOID (p);
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 
+ 	  if (PUBLICIZED (p) && e && *q == LOC_SYMBOL)
+ 	    a68_error (p, "publicized variable should not be allocated on the stack");
+ 
+ 	  if (PUBLICIZED (p))
+ 	    HEAP (entry) = STATIC_SYMBOL;
+ 	  else
+ 	    HEAP (entry) = *q;
+ 
+ 	  if (HEAP (entry) == LOC_SYMBOL)
+ 	    {
+ 	      TAG_T *z = a68_add_tag (TABLE (p), ANONYMOUS, p, SUB_MOID (p), GENERATOR);
+ 	      HEAP (z) = LOC_SYMBOL;
+ 	      USE (z) = true;
+ 	      BODY (entry) = z;
+ 	    }
+ 	  else
+ 	    {
+ 	      BODY (entry) = NO_TAG;
+ 	    }
+ 	  tax_proc_variable_dec (NEXT (p), q, e);
+ 	}
+       else
+ 	tax_tags (p);
+     }
+ }
+ 
+ /* Enter procedure declarations in the symbol table.  */
+ 
+ static void
+ tax_proc_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, PROCEDURE_DECLARATION))
+ 	{
+ 	  tax_proc_dec (SUB (p));
+ 	  tax_proc_dec (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, PROC_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  tax_proc_dec (NEXT (p));
+ 	}
+       else if (IS (p, DEFINING_IDENTIFIER))
+ 	{
+ 	  TAG_T *entry = find_tag_local (TABLE (p), IDENTIFIER, NSYMBOL (p));
+ 
+ 	  MOID_T *m = MOID (NEXT_NEXT (p));
+ 	  MOID (p) = m;
+ 	  TAX (p) = entry;
+ 	  HEAP (entry) = LOC_SYMBOL;
+ 	  MOID (entry) = m;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 	  tax_proc_dec (NEXT (p));
+ 	}
+       else
+ 	tax_tags (p);
+     }
+ }
+ 
+ /* Check validity of operator declaration.  */
+ 
+ static void
+ check_operator_dec (NODE_T *p, MOID_T *u)
+ {
+   int k = 0;
+ 
+   if (u == NO_MOID)
+     {
+       NODE_T *pack = SUB_SUB (NEXT_NEXT (p)); /* Where the parameter pack
+ 						 is.  */
+       if (ATTRIBUTE (NEXT_NEXT (p)) != ROUTINE_TEXT)
+ 	pack = SUB (pack);
+       k = 1 + a68_count_operands (pack);
+     }
+   else
+     k = a68_count_pack_members (PACK (u));
+ 
+   if (k < 1 || k > 2)
+     {
+       a68_symbol_format_token s (p);
+       a68_error (p, "incorrect number of operands for %e", &s);
+       k = 0;
+     }
+ 
+   if (k == 1 && strchr (NOMADS, NSYMBOL (p)[0]) != NO_TEXT)
+     {
+       a68_symbol_format_token s (p);
+       a68_error (p, "monadic %e cannot start with a character from %qs",
+ 		 &s, NOMADS);
+     }
+   else if (k == 2 && !a68_find_tag_global (TABLE (p), PRIO_SYMBOL, NSYMBOL (p)))
+     {
+       a68_symbol_format_token s (p);
+       a68_error (p, "dyadic %e has no priority declaration", &s);
+     }
+ }
+ 
+ /* Enter operator declarations in the symbol table.  */
+ 
+ static void
+ tax_op_dec (NODE_T *p, MOID_T **m)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, OPERATOR_DECLARATION))
+ 	{
+ 	  tax_op_dec (SUB (p), m);
+ 	  tax_op_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, OPERATOR_PLAN))
+ 	{
+ 	  tax_tags (SUB (p));
+ 	  *m = MOID (p);
+ 	  tax_op_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, OP_SYMBOL))
+ 	{
+ 	  tax_op_dec (NEXT (p), m);
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  tax_op_dec (NEXT (p), m);
+ 	}
+       else if (IS (p, DEFINING_OPERATOR))
+ 	{
+ 	  TAG_T *entry = OPERATORS (TABLE (p));
+ 	  check_operator_dec (p, *m);
+ 	  while (entry != NO_TAG && NODE (entry) != p)
+ 	    FORWARD (entry);
+ 	  MOID (p) = *m;
+ 	  TAX (p) = entry;
+ 	  HEAP (entry) = LOC_SYMBOL;
+ 	  MOID (entry) = *m;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 	  tax_op_dec (NEXT (p), m);
+ 	}
+       else
+ 	{
+ 	  tax_tags (p);
+ 	}
+     }
+ }
+ 
+ /* Enter module declarations in the symbol table.  */
+ 
+ static void
+ tax_module_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, MODULE_DECLARATION))
+ 	{
+ 	  tax_module_dec (SUB (p));
+ 	  tax_module_dec (NEXT (p));
+ 	}
+       else if (IS (p, MODULE_SYMBOL))
+ 	{
+ 	  tax_module_dec (NEXT (p));
+ 	}
+       else if (IS (p, COMMA_SYMBOL))
+ 	{
+ 	  tax_module_dec (NEXT (p));
+ 	}
+       else
+ 	{
+ 	  tax_tags (p);
+ 	}
+     }
+ }
+ 
+ /* Enter brief operator declarations in the symbol table.  */
+ 
+ static void
+ tax_brief_op_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, BRIEF_OPERATOR_DECLARATION))
+ 	{
+ 	  tax_brief_op_dec (SUB (p));
+ 	  tax_brief_op_dec (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, OP_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  tax_brief_op_dec (NEXT (p));
+ 	}
+       else if (IS (p, DEFINING_OPERATOR))
+ 	{
+ 	  TAG_T *entry = OPERATORS (TABLE (p));
+ 	  MOID_T *m = MOID (NEXT_NEXT (p));
+ 	  check_operator_dec (p, NO_MOID);
+ 	  while (entry != NO_TAG && NODE (entry) != p)
+ 	    FORWARD (entry);
+ 	  MOID (p) = m;
+ 	  TAX (p) = entry;
+ 	  HEAP (entry) = LOC_SYMBOL;
+ 	  MOID (entry) = m;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 	  tax_brief_op_dec (NEXT (p));
+ 	}
+       else
+ 	{
+ 	  tax_tags (p);
+ 	}
+     }
+ }
+ 
+ /* Enter priority declarations in the symbol table.  */
+ 
+ static void tax_prio_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, PRIORITY_DECLARATION))
+ 	{
+ 	  tax_prio_dec (SUB (p));
+ 	  tax_prio_dec (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, PRIO_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  tax_prio_dec (NEXT (p));
+ 	}
+       else if (IS (p, DEFINING_OPERATOR))
+ 	{
+ 	  TAG_T *entry = PRIO (TABLE (p));
+ 	  while (entry != NO_TAG && NODE (entry) != p)
+ 	    FORWARD (entry);
+ 	  MOID (p) = NO_MOID;
+ 	  TAX (p) = entry;
+ 	  HEAP (entry) = LOC_SYMBOL;
+ 	  PUBLICIZED (entry) = PUBLICIZED (p);
+ 	  tax_prio_dec (NEXT (p));
+ 	}
+       else
+ 	{
+ 	  tax_tags (p);
+ 	}
+     }
+ }
+ 
+ /* Enter TAXes in the symbol table.  */
+ 
+ static void
+ tax_tags (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       int heap = LOC_SYMBOL;
+       MOID_T *m = NO_MOID;
+ 
+       if (IS (p, IDENTITY_DECLARATION))
+ 	tax_identity_dec (p, &m);
+       else if (IS (p, VARIABLE_DECLARATION))
+ 	tax_variable_dec (p, &heap, &m, false);
+       else if (IS (p, PROCEDURE_DECLARATION))
+ 	tax_proc_dec (p);
+       else if (IS (p, PROCEDURE_VARIABLE_DECLARATION))
+ 	tax_proc_variable_dec (p, &heap, false);
+       else if (IS (p, OPERATOR_DECLARATION))
+ 	tax_op_dec (p, &m);
+       else if (IS (p, BRIEF_OPERATOR_DECLARATION))
+ 	tax_brief_op_dec (p);
+       else if (IS (p, PRIORITY_DECLARATION))
+ 	tax_prio_dec (p);
+       else if (IS (p, MODULE_DECLARATION))
+ 	tax_module_dec (p);
+       else
+ 	tax_tags (SUB (p));
+     }
+ }
+ 
+ /* Reset symbol table nest count.  */
+ 
+ void
+ a68_reset_symbol_table_nest_count (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (SUB (p) != NO_NODE && a68_is_new_lexical_level (p))
+ 	NEST (TABLE (SUB (p))) = A68 (symbol_table_count)++;
+       a68_reset_symbol_table_nest_count (SUB (p));
+     }
+ }
+ 
+ //! @brief Bind routines in symbol table to the tree.
+ 
+ void
+ a68_bind_routine_tags_to_tree (NODE_T *p)
+ {
+   /* By inserting coercions etc. some may have shifted.  */
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, ROUTINE_TEXT) && TAX (p) != NO_TAG)
+ 	NODE (TAX (p)) = p;
+       a68_bind_routine_tags_to_tree (SUB (p));
+     }
+ }
+ 
+ /* Bind formats in symbol table to tree.  */
+ 
+ static void
+ bind_format_tags_to_tree (NODE_T *p)
+ {
+   /* By inserting coercions etc. some may have shifted.  */
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, FORMAT_TEXT) && TAX (p) != NO_TAG)
+ 	NODE (TAX (p)) = p;
+       else if (IS (p, FORMAT_DELIMITER_SYMBOL) && NEXT (p) != NO_NODE && TAX (p) != NO_TAG)
+ 	NODE (TAX (p)) = p;
+ 
+       bind_format_tags_to_tree (SUB (p));
+     }
+ }
+ 
+ /* Fill outer level of symbol table.  */
+ 
+ void
+ a68_fill_symbol_table_outer (NODE_T *p, TABLE_T *s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (TABLE (p) != NO_TABLE)
+ 	OUTER (TABLE (p)) = s;
+ 
+       if (SUB (p) != NO_NODE && IS (p, ROUTINE_TEXT))
+ 	a68_fill_symbol_table_outer (SUB (p), TABLE (SUB (p)));
+       else if (SUB (p) != NO_NODE && IS (p, FORMAT_TEXT))
+ 	a68_fill_symbol_table_outer (SUB (p), TABLE (SUB (p)));
+       else if (SUB (p) != NO_NODE && IS (p, MODULE_TEXT))
+ 	a68_fill_symbol_table_outer (SUB (p), TABLE (SUB (p)));
+       else
+ 	a68_fill_symbol_table_outer (SUB (p), s);
+     }
+ }
+ 
+ /* Flood branch in tree with local symbol table S.  */
+ 
+ static void
+ flood_with_symbol_table_restricted (NODE_T *p, TABLE_T *s)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       TABLE (p) = s;
+       if (ATTRIBUTE (p) != ROUTINE_TEXT && ATTRIBUTE (p) != SPECIFIED_UNIT)
+ 	{
+ 	  if (a68_is_new_lexical_level (p))
+ 	    PREVIOUS (TABLE (SUB (p))) = s;
+ 	  else
+ 	    flood_with_symbol_table_restricted (SUB (p), s);
+ 	}
+     }
+ }
+ 
+ /* Final structure of symbol table after parsing.  */
+ 
+ void
+ a68_finalise_symbol_table_setup (NODE_T *p, int l)
+ {
+   TABLE_T *s = TABLE (p);
+   NODE_T *q = p;
+ 
+   while (q != NO_NODE)
+     {
+       /* routine texts are ranges.  */
+       if (IS (q, ROUTINE_TEXT))
+ 	flood_with_symbol_table_restricted (SUB (q), a68_new_symbol_table (s));
+ 
+       /* specifiers are ranges.  */
+       else if (IS (q, SPECIFIED_UNIT))
+ 	flood_with_symbol_table_restricted (SUB (q), a68_new_symbol_table (s));
+ 
+       /* level count and recursion.  */
+       if (SUB (q) != NO_NODE)
+ 	{
+ 	  if (a68_is_new_lexical_level (q))
+ 	    {
+ 	      LEX_LEVEL (SUB (q)) = l + 1;
+ 	      gcc_assert (TABLE (SUB (q)) != s);
+ 	      PREVIOUS (TABLE (SUB (q))) = s;
+ 	      a68_finalise_symbol_table_setup (SUB (q), l + 1);
+ 	      if (IS (q, WHILE_PART))
+ 		{
+ 		  /* This was a bug that went unnoticed for 15 years!.  */
+ 		  TABLE_T *s2 = TABLE (SUB (q));
+ 		  if ((FORWARD (q)) == NO_NODE)
+ 		    return;
+ 		  if (IS (q, ALT_DO_PART))
+ 		    {
+ 		      PREVIOUS (TABLE (SUB (q))) = s2;
+ 		      LEX_LEVEL (SUB (q)) = l + 2;
+ 		      a68_finalise_symbol_table_setup (SUB (q), l + 2);
+ 		    }
+ 		}
+ 	      if (IS (q, DEF_PART))
+ 		{
+ 		  TABLE_T *s2 = TABLE (SUB (q));
+ 		  if ((FORWARD (q)) == NO_NODE)
+ 		    return;
+ 		  if (IS (q, POSTLUDE_PART))
+ 		    {
+ 		      PREVIOUS (TABLE (SUB (q))) = s2;
+ 		      LEX_LEVEL (SUB (q)) = l + 2;
+ 		      a68_finalise_symbol_table_setup (SUB (q), l + 2);
+ 		    }
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      TABLE (SUB (q)) = s;
+ 	      a68_finalise_symbol_table_setup (SUB (q), l);
+ 	    }
+ 	}
+       TABLE (q) = s;
+ 
+       if (IS (q, FOR_SYMBOL))
+ 	FORWARD (q);
+       FORWARD (q);
+     }
+ 
+   /* FOR identifiers are in the DO ... OD range.  */
+   for (q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, FOR_SYMBOL))
+ 	TABLE (NEXT (q)) = TABLE (SEQUENCE (NEXT (q)));
+     }
+ }
+ 
+ /* First structure of symbol table for parsing.  */
+ 
+ void
+ a68_preliminary_symbol_table_setup (NODE_T *p)
+ {
+   TABLE_T *s = TABLE (p);
+   bool not_a_for_range = false;
+ 
+   /* Let the tree point to the current symbol table.  */
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     TABLE (q) = s;
+ 
+   /* insert new tables when required.  */
+   for (NODE_T *q = p; q != NO_NODE && !not_a_for_range; FORWARD (q))
+     {
+       if (SUB (q) != NO_NODE)
+ 	{
+ 	  /* BEGIN ... END, CODE ... EDOC, DO ... OD, $ ... $, { ... } are
+ 	     ranges.  */
+ 	  if (a68_is_one_of (q, BEGIN_SYMBOL, DO_SYMBOL, ALT_DO_SYMBOL,
+ 			     FORMAT_DELIMITER_SYMBOL, STOP))
+ 	    {
+ 	      TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	    }
+ 	  /* ( ... ) is a range.   */
+ 	  else if (IS (q, OPEN_SYMBOL))
+ 	    {
+ 	      if (a68_whether (q, OPEN_SYMBOL, THEN_BAR_SYMBOL, STOP))
+ 		{
+ 		  TABLE (SUB (q)) = s;
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  FORWARD (q);
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  if ((FORWARD (q)) == NO_NODE)
+ 		    not_a_for_range = true;
+ 		  else
+ 		    {
+ 		      if (IS (q, THEN_BAR_SYMBOL))
+ 			{
+ 			  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 			  a68_preliminary_symbol_table_setup (SUB (q));
+ 			}
+ 		      if (IS (q, OPEN_SYMBOL))
+ 			{
+ 			  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 			  a68_preliminary_symbol_table_setup (SUB (q));
+ 			}
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  /* Don't worry about STRUCT (...), UNION (...), PROC (...)
+ 		     yet.  */
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* IF ... THEN ... ELSE ... FI are ranges.  */
+ 	  else if (IS (q, IF_SYMBOL))
+ 	    {
+ 	      if (a68_whether (q, IF_SYMBOL, THEN_SYMBOL, STOP))
+ 		{
+ 		  TABLE (SUB (q)) = s;
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  FORWARD (q);
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  if ((FORWARD (q)) == NO_NODE)
+ 		    not_a_for_range = true;
+ 		  else
+ 		    if (IS (q, ELSE_SYMBOL))
+ 		      {
+ 			TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 			a68_preliminary_symbol_table_setup (SUB (q));
+ 		      }
+ 		  if (IS (q, IF_SYMBOL))
+ 		    {
+ 		      TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		      a68_preliminary_symbol_table_setup (SUB (q));
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* CASE ... IN ... OUT ... ESAC are ranges.  */
+ 	  else if (IS (q, CASE_SYMBOL))
+ 	    {
+ 	      if (a68_whether (q, CASE_SYMBOL, IN_SYMBOL, STOP))
+ 		{
+ 		  TABLE (SUB (q)) = s;
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  FORWARD (q);
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		  if ((FORWARD (q)) == NO_NODE)
+ 		    not_a_for_range = true;
+ 		  else
+ 		    {
+ 		      if (IS (q, OUT_SYMBOL))
+ 			{
+ 			  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 			  a68_preliminary_symbol_table_setup (SUB (q));
+ 			}
+ 		      if (IS (q, CASE_SYMBOL))
+ 			{
+ 			  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 			  a68_preliminary_symbol_table_setup (SUB (q));
+ 			}
+ 		    }
+ 		}
+ 	      else
+ 		{
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (s);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* WHILE ... DO ... OD are ranges.  */
+ 	  else if (IS (q, WHILE_SYMBOL))
+ 	    {
+ 	      TABLE_T *u = a68_new_symbol_table (s);
+ 	      TABLE (SUB (q)) = u;
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	      if ((FORWARD (q)) == NO_NODE)
+ 		not_a_for_range = true;
+ 	      else if (IS (q, ALT_DO_SYMBOL))
+ 		{
+ 		  TABLE (SUB (q)) = a68_new_symbol_table (u);
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* ACCESS ... DEF ...POSTLUDE ...FED are ranges.  */
+ 	  else if (IS (q, ALT_ACCESS_SYMBOL))
+ 	    {
+ 	      TABLE_T *u = a68_new_symbol_table (s);
+ 	      TABLE (SUB (q)) = u;
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	      if (NEXT (q) == NO_NODE)
+ 		not_a_for_range = true;
+ 	      else if (IS ((FORWARD (q)), DEF_SYMBOL))
+ 		{
+ 		  TABLE_T *v = a68_new_symbol_table (u);
+ 		  TABLE (SUB (q)) = v;
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* DEF ... POSTLUDE ... FED are ranges.  */
+ 	  else if (IS (q, DEF_SYMBOL))
+ 	    {
+ 	      TABLE_T *u = a68_new_symbol_table (s);
+ 	      PUBLIC_RANGE (u) = true;
+ 	      TABLE (SUB (q)) = u;
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	      if (NEXT (q) == NO_NODE)
+ 		  not_a_for_range = true;
+ 	      else if (IS ((FORWARD (q)), POSTLUDE_SYMBOL))
+ 		{
+ 		  TABLE_T *v = a68_new_symbol_table (u);
+ 		  TABLE (SUB (q)) = v;
+ 		  a68_preliminary_symbol_table_setup (SUB (q));
+ 		}
+ 	    }
+ 	  /* ACCESS ... CONTROLLED_CLAUSE  are ranges.  */
+ 	  else if (IS (q, ACCESS_SYMBOL))
+ 	    {
+ 	      TABLE_T *u = a68_new_symbol_table (s);
+ 	      TABLE (SUB (q)) = u;
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	      if (NEXT (q) == NO_NODE)
+ 		not_a_for_range = true;
+ 	    }
+ 	  else
+ 	    {
+ 	      TABLE (SUB (q)) = s;
+ 	      a68_preliminary_symbol_table_setup (SUB (q));
+ 	    }
+ 	}
+     }
+   /* FOR identifiers will go to the DO ... OD range.  */
+   if (!not_a_for_range)
+     {
+       for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+ 	{
+ 	  if (IS (q, FOR_SYMBOL))
+ 	    {
+ 	      NODE_T *r = q;
+ 	      TABLE (NEXT (q)) = NO_TABLE;
+ 	      for (; r != NO_NODE && TABLE (NEXT (q)) == NO_TABLE; FORWARD (r))
+ 		{
+ 		  if ((a68_is_one_of (r, WHILE_SYMBOL, ALT_DO_SYMBOL, STOP))
+ 		      && (NEXT (q) != NO_NODE && SUB (r) != NO_NODE))
+ 		    {
+ 		      TABLE (NEXT (q)) = TABLE (SUB (r));
+ 		      SEQUENCE (NEXT (q)) = SUB (r);
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Mark a mode as in use.  */
+ 
+ static void
+ mark_mode (MOID_T *m)
+ {
+   if (m != NO_MOID && USE (m) == false)
+     {
+       PACK_T *p = PACK (m);
+       USE (m) = true;
+       for (; p != NO_PACK; FORWARD (p))
+ 	{
+ 	  mark_mode (MOID (p));
+ 	  mark_mode (SUB (m));
+ 	  mark_mode (SLICE (m));
+ 	}
+     }
+ }
+ 
+ //! @brief Traverse tree and mark modes as used.
+ 
+ void
+ a68_mark_moids (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       a68_mark_moids (SUB (p));
+       if (MOID (p) != NO_MOID)
+ 	mark_mode (MOID (p));
+     }
+ }
+ 
+ /* Mark various tags as used.  */
+ 
+ void
+ a68_mark_auxilliary (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (SUB (p) != NO_NODE)
+ 	{
+ 	  /* You get no warnings on unused PROC parameters. That is ok since
+ 	     A68 has some parameters that you may not use at all - think of
+ 	     PROC (REF FILE) BOOL event routines in transput.  */
+ 	  a68_mark_auxilliary (SUB (p));
+ 	}
+       else if (IS (p, OPERATOR))
+ 	{
+ 	  TAG_T *z;
+ 
+ 	  if (TAX (p) != NO_TAG)
+ 	    USE (TAX (p)) = true;
+ 	  
+ 	  if ((z = a68_find_tag_global (TABLE (p), PRIO_SYMBOL, NSYMBOL (p))) != NO_TAG)
+ 	    USE (z) = true;
+ 	}
+       else if (IS (p, INDICANT))
+ 	{
+ 	  TAG_T *z = a68_find_tag_global (TABLE (p), INDICANT, NSYMBOL (p));
+ 
+ 	  if (z != NO_TAG)
+ 	    {
+ 	      TAX (p) = z;
+ 	      USE (z) = true;
+ 	    }
+ 	}
+       else if (IS (p, IDENTIFIER))
+ 	{
+ 	  if (TAX (p) != NO_TAG)
+ 	    USE (TAX (p)) = true;
+ 	}
+     }
+ }
+ 
+ /* Check a single tag.  */
+ 
+ static void
+ unused (TAG_T *s)
+ {
+   for (; s != NO_TAG; FORWARD (s))
+     {
+       if (LINE_NUMBER (NODE (s)) > 0 && !USE (s))
+ 	a68_warning (NODE (s), OPT_Wunused, "tag %qs is not used", NSYMBOL (NODE (s)));
+     }
+ }
+ 
+ /* Driver for traversing tree and warn for unused tags.  */
+ 
+ void
+ a68_warn_for_unused_tags (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (SUB (p) != NO_NODE)
+ 	{
+ 	  if (a68_is_new_lexical_level (p))
+ 	    {
+ 	      unused (MODULES (TABLE (SUB (p))));
+ 	      unused (OPERATORS (TABLE (SUB (p))));
+ 	      unused (PRIO (TABLE (SUB (p))));
+ 	      unused (IDENTIFIERS (TABLE (SUB (p))));
+ 	      unused (LABELS (TABLE (SUB (p))));
+ 	      unused (INDICANTS (TABLE (SUB (p))));
+ 	    }
+ 	}
+       a68_warn_for_unused_tags (SUB (p));
+     }
+ }
+ 
+ /* Mark jumps and procedured jumps.  */
+ 
+ void
+ a68_jumps_from_procs (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, PROCEDURING))
+ 	{
+ 	  NODE_T *u = SUB_SUB (p);
+ 
+ 	  if (IS (u, GOTO_SYMBOL))
+ 	    FORWARD (u);
+ 	  USE (TAX (u)) = true;
+ 	}
+       else if (IS (p, JUMP))
+ 	{
+ 	  NODE_T *u = SUB (p);
+ 
+ 	  if (IS (u, GOTO_SYMBOL))
+ 	    FORWARD (u);
+ 	  if ((TAX (u) == NO_TAG) && (MOID (u) == NO_MOID)
+ 	      && (a68_find_tag_global (TABLE (u), LABEL, NSYMBOL (u)) == NO_TAG))
+ 	    {
+ 	      (void) a68_add_tag (TABLE (u), LABEL, u, NO_MOID, LOCAL_LABEL);
+ 	      a68_error (u, "tag %qs has not been declared properly", NSYMBOL (u));
+ 	    }
+ 	  else
+ 	    USE (TAX (u)) = true;
+ 	}
+       else
+ 	a68_jumps_from_procs (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-top-down.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-top-down.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-top-down.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-top-down.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,909 ----
+ /* Top-down parser for control structure.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ #include "a68-pretty-print.h"
+ 
+ /* A few forward prototypes of functions defined below.  */
+ 
+ static NODE_T *top_down_loop (NODE_T *p);
+ static NODE_T *top_down_skip_unit (NODE_T *p);
+ static NODE_T *top_down_def (NODE_T *def_p);
+ 
+ /* Substitute brackets.
+ 
+    Traditional ALGOL 68 syntax allows ( .. ) to replace [ .. ] in bounds and
+    slices.  This top-down pass substitutes [ .. ] occurrences into ( .. ).  */
+ 
+ void
+ a68_substitute_brackets (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       a68_substitute_brackets (SUB (p));
+ 
+       switch (ATTRIBUTE (p))
+ 	{
+ 	case SUB_SYMBOL:
+ 	  ATTRIBUTE (p) = OPEN_SYMBOL;
+ 	  break;
+ 	case BUS_SYMBOL:
+ 	  ATTRIBUTE (p) = CLOSE_SYMBOL;
+ 	  break;
+ 	default:
+ 	  break;
+ 	}
+     }
+ }
+ 
+ /* Intelligible diagnostic from syntax tree branch.  */
+ 
+ const char *
+ a68_phrase_to_text (NODE_T * p, NODE_T ** w)
+ {
+ #define MAX_TERMINALS 8
+   int count = 0, line = -1;
+   static BUFFER buffer;
+ 
+   for (buffer[0] = '\0'; p != NO_NODE && count < MAX_TERMINALS; FORWARD (p))
+     {
+       if (LINE_NUMBER (p) == 0)
+ 	continue;
+ 
+       enum a68_attribute gatt = a68_get_good_attribute (p);
+       const char *z = a68_attribute_name (gatt);
+ 
+       /* Where to put the error message? Bob Uzgalis noted that actual
+ 	 content of a diagnostic is not as important as accurately
+ 	 indicating *were* the problem is!  */
+       if (w != NO_VAR)
+ 	{
+ 	  if (count == 0 || (*w) == NO_NODE)
+ 	    *w = p;
+ 	  else if (a68_dont_mark_here (*w))
+ 	    *w = p;
+ 	}
+ 
+       /* Add initiation.  */
+       if (count == 0)
+ 	{
+ 	  if (w != NO_VAR)
+ 	    a68_bufcat (buffer, "construct beginning with", BUFFER_SIZE);
+ 	}
+       else if (count == 1)
+ 	a68_bufcat (buffer, " followed by", BUFFER_SIZE);
+       else if (count == 2)
+ 	a68_bufcat (buffer, " and then", BUFFER_SIZE);
+       else if (count >= 3)
+ 	a68_bufcat (buffer, " and", BUFFER_SIZE);
+ 
+       /* Attribute or symbol.  */
+       if (z != NO_TEXT && SUB (p) != NO_NODE)
+ 	{
+ 	  if (gatt == IDENTIFIER || gatt == OPERATOR || gatt == DENOTATION)
+ 	    {
+ 	      const char *strop_symbol = a68_strop_keyword (NSYMBOL (p));
+ 	      if (snprintf (A68 (edit_line), SNPRINTF_SIZE, " %%<%s%%>", strop_symbol) < 0)
+ 		gcc_unreachable ();
+ 	      a68_bufcat (buffer, A68 (edit_line), BUFFER_SIZE);
+ 	    }
+ 	  else
+ 	    {
+ 	      if (strchr ("aeio", z[0]) != NO_TEXT)
+ 		a68_bufcat (buffer, " an", BUFFER_SIZE);
+ 	      else
+ 		a68_bufcat (buffer, " a", BUFFER_SIZE);
+ 
+ 	      if (snprintf (A68 (edit_line), SNPRINTF_SIZE, " %s", z) < 0)
+ 		gcc_unreachable ();
+ 	      a68_bufcat (buffer, A68 (edit_line), BUFFER_SIZE);
+ 	    }
+ 	}
+       else if (z != NO_TEXT && SUB (p) == NO_NODE)
+ 	{
+ 	  const char *strop_symbol = a68_strop_keyword (NSYMBOL (p));
+ 	  if (snprintf (A68 (edit_line), SNPRINTF_SIZE, " %%<%s%%>", strop_symbol) < 0)
+ 	    gcc_unreachable ();
+ 	  a68_bufcat (buffer, A68 (edit_line), BUFFER_SIZE);
+ 	}
+       else if (NSYMBOL (p) != NO_TEXT)
+ 	{
+ 	  const char *strop_symbol = a68_strop_keyword (NSYMBOL (p));
+ 	  if (snprintf (A68 (edit_line), SNPRINTF_SIZE, " %%<%s%%>", strop_symbol) < 0)
+ 	    gcc_unreachable ();
+ 	  a68_bufcat (buffer, A68 (edit_line), BUFFER_SIZE);
+ 	}
+       /* Add "starting in line nn".  */
+       if (z != NO_TEXT && line != LINE_NUMBER (p))
+ 	{
+ 	  line = LINE_NUMBER (p);
+ 	  if (gatt == SERIAL_CLAUSE || gatt == ENQUIRY_CLAUSE || gatt == INITIALISER_SERIES)
+ 	    a68_bufcat (buffer, " starting", BUFFER_SIZE);
+ 	  if (snprintf (A68 (edit_line), SNPRINTF_SIZE, " in line %d", line) < 0)
+ 	    gcc_unreachable ();
+ 	  a68_bufcat (buffer, A68 (edit_line), BUFFER_SIZE);
+ 	}
+       count++;
+     }
+ 
+   if (p != NO_NODE && count == MAX_TERMINALS)
+     a68_bufcat (buffer, " etcetera", BUFFER_SIZE);
+   return buffer;
+ }
+ 
+ /* Next is a top-down parser that branches out the basic blocks.
+    After this we can assign symbol tables to basic blocks.
+    This renders the two-level grammar LALR.  */
+ 
+ /* Give diagnose from top-down parser.  */
+ 
+ static void
+ top_down_diagnose (NODE_T *start, NODE_T *p, int clause, int expected)
+ {
+   NODE_T *issue = (p != NO_NODE ? p : start);
+   const char *strop_keyword = a68_strop_keyword (NSYMBOL (start));
+ 
+   a68_line_format_token l (LINE (INFO (start)), issue);
+   a68_attr_format_token a1 ((a68_attribute) clause);
+ 
+   if (expected != 0)
+     {
+ 
+       a68_attr_format_token a2 ((a68_attribute) expected);
+       a68_error (issue, "%e expected in %e, near %qs %e",
+ 		 &a2, &a1, strop_keyword, &l);
+     }
+   else
+     a68_error (issue, "missing or unbalanced keyword in %e, near %qs %e",
+ 	       &a1, strop_keyword, &l);
+ }
+ 
+ /* Check for premature exhaustion of tokens.  */
+ 
+ static void
+ tokens_exhausted (NODE_T *p, NODE_T *q)
+ {
+   if (p == NO_NODE)
+     {
+       a68_symbol_format_token s (q);
+       a68_error (q, "check for missing or unmatched keyword in clause starting at %e",
+ 		 &s);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+     }
+ }
+ 
+ /*
+  * This part specifically branches out loop clauses.
+  */
+ 
+ /* Whether in cast or formula with loop clause.  */
+ 
+ static int
+ is_loop_cast_formula (NODE_T *p)
+ {
+   /* Accept declarers that can appear in such casts but not much more.  */
+   if (IS (p, VOID_SYMBOL))
+     return 1;
+   else if (IS (p, INT_SYMBOL))
+     return 1;
+   else if (IS_REF (p))
+     return 1;
+   else if (a68_is_one_of (p, OPERATOR, BOLD_TAG, STOP))
+     return 1;
+   else if (a68_whether (p, UNION_SYMBOL, OPEN_SYMBOL, STOP))
+     return 2;
+   else if (a68_is_one_of (p, OPEN_SYMBOL, SUB_SYMBOL, STOP))
+     {
+       int k = 0;
+       for (; p != NO_NODE && (a68_is_one_of (p, OPEN_SYMBOL, SUB_SYMBOL, STOP)); FORWARD (p), k++)
+ 	;
+       return p != NO_NODE && (a68_whether (p, UNION_SYMBOL, OPEN_SYMBOL, STOP) ? k : 0);
+     }
+   return 0;
+ }
+ 
+ /* Skip a unit in a loop clause (FROM u BY u TO u).  */
+ 
+ static NODE_T *
+ top_down_skip_loop_unit (NODE_T *p)
+ {
+   /* Unit may start with, or consist of, a loop.  */
+   if (a68_is_loop_keyword (p))
+     p = top_down_loop (p);
+ 
+   /* Skip rest of unit.  */
+   while (p != NO_NODE)
+     {
+       int k = is_loop_cast_formula (p);
+ 
+       if (k != 0)
+ 	{
+ 	  /* operator-cast series ...  */
+ 	  while (p != NO_NODE && k != 0)
+ 	    {
+ 	      while (k != 0)
+ 		{
+ 		  FORWARD (p);
+ 		  k--;
+ 		}
+ 	      k = is_loop_cast_formula (p);
+ 	    }
+ 
+ 	  /* ... may be followed by a loop clause.  */
+ 	  if (a68_is_loop_keyword (p))
+ 	    p = top_down_loop (p);
+ 	}
+       else if (a68_is_loop_keyword (p) || IS (p, OD_SYMBOL))
+ 	/* new loop or end-of-loop.  */
+ 	return p;
+       else if (IS (p, COLON_SYMBOL))
+ 	{
+ 	  FORWARD (p);
+ 	  /* skip routine header: loop clause.  */
+ 	  if (p != NO_NODE && a68_is_loop_keyword (p))
+ 	    p = top_down_loop (p);
+ 	}
+       else if (a68_is_one_of (p, SEMI_SYMBOL, COMMA_SYMBOL, STOP) || IS (p, EXIT_SYMBOL))
+ 	/* Statement separators.  */
+ 	return p;
+       else
+ 	FORWARD (p);
+     }
+   return NO_NODE;
+ }
+ 
+ /* Skip a loop clause.  */
+ 
+ static NODE_T *
+ top_down_skip_loop_series (NODE_T *p)
+ {
+   bool siga;
+ 
+   do
+     {
+       p = top_down_skip_loop_unit (p);
+       siga = (p != NO_NODE && (a68_is_one_of (p, SEMI_SYMBOL, EXIT_SYMBOL,
+ 					      COMMA_SYMBOL, COLON_SYMBOL,
+ 					      STOP)));
+     if (siga)
+       FORWARD (p);
+     }
+   while (!(p == NO_NODE || !siga));
+ 
+   return p;
+ }
+ 
+ /* Make branch of loop parts.  */
+ 
+ static NODE_T *
+ top_down_loop (NODE_T *p)
+ {
+   NODE_T *start = p, *q = p;
+ 
+   if (IS (q, FOR_SYMBOL))
+     {
+       tokens_exhausted (FORWARD (q), start);
+ 
+       if (IS (q, IDENTIFIER))
+ 	ATTRIBUTE (q) = DEFINING_IDENTIFIER;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, IDENTIFIER);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       tokens_exhausted (FORWARD (q), start);
+ 
+       if (a68_is_one_of (q, FROM_SYMBOL, BY_SYMBOL, TO_SYMBOL,
+ 			 WHILE_SYMBOL, STOP))
+ 	;
+       else if (IS (q, DO_SYMBOL))
+ 	ATTRIBUTE (q) = ALT_DO_SYMBOL;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, STOP);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+     }
+ 
+   if (IS (q, FROM_SYMBOL))
+     {
+       start = q;
+       q = top_down_skip_loop_unit (NEXT (q));
+       tokens_exhausted (q, start);
+       if (a68_is_one_of (q, BY_SYMBOL, TO_SYMBOL, WHILE_SYMBOL, STOP))
+ 	;
+       else if (IS (q, DO_SYMBOL))
+ 	ATTRIBUTE (q) = ALT_DO_SYMBOL;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, STOP);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (start, PREVIOUS (q), FROM_SYMBOL);
+     }
+ 
+   if (IS (q, BY_SYMBOL))
+     {
+       start = q;
+       q = top_down_skip_loop_series (NEXT (q));
+       tokens_exhausted (q, start);
+ 
+       if (a68_is_one_of (q, TO_SYMBOL, WHILE_SYMBOL, STOP))
+ 	;
+       else if (IS (q, DO_SYMBOL))
+ 	ATTRIBUTE (q) = ALT_DO_SYMBOL;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, STOP);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (start, PREVIOUS (q), BY_SYMBOL);
+     }
+ 
+   if (a68_is_one_of (q, TO_SYMBOL, STOP))
+     {
+       start = q;
+       q = top_down_skip_loop_series (NEXT (q));
+       tokens_exhausted (q, start);
+ 
+       if (IS (q, WHILE_SYMBOL))
+ 	;
+       else if (IS (q, DO_SYMBOL))
+ 	ATTRIBUTE (q) = ALT_DO_SYMBOL;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, STOP);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (start, PREVIOUS (q), TO_SYMBOL);
+     }
+ 
+   if (IS (q, WHILE_SYMBOL))
+     {
+       start = q;
+       q = top_down_skip_loop_series (NEXT (q));
+       tokens_exhausted (q, start);
+ 
+       if (IS (q, DO_SYMBOL))
+ 	ATTRIBUTE (q) = ALT_DO_SYMBOL;
+       else
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, DO_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (start, PREVIOUS (q), WHILE_SYMBOL);
+     }
+ 
+   if (a68_is_one_of (q, DO_SYMBOL, ALT_DO_SYMBOL, STOP))
+     {
+       enum a68_attribute k = ATTRIBUTE (q);
+ 
+       start = q;
+       q = top_down_skip_loop_series (NEXT (q));
+       tokens_exhausted (q, start);
+ 
+       if (!IS (q, OD_SYMBOL))
+ 	{
+ 	  top_down_diagnose (start, q, LOOP_CLAUSE, OD_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (start, q, k);
+     }
+ 
+   NODE_T *save = NEXT (start);
+   a68_make_sub (p, start, LOOP_CLAUSE);
+   return save;
+ }
+ 
+ /* Driver for making branches of loop parts.  */
+ 
+ static void
+ top_down_loops (NODE_T *p)
+ {
+   NODE_T *q = p;
+ 
+   for (; q != NO_NODE; FORWARD (q))
+     {
+       if (SUB (q) != NO_NODE)
+ 	top_down_loops (SUB (q));
+     }
+ 
+   q = p;
+   while (q != NO_NODE)
+     {
+       if (a68_is_loop_keyword (q) != STOP)
+ 	q = top_down_loop (q);
+       else
+ 	FORWARD (q);
+     }
+ }
+ 
+ /*
+  * Branch anything except parts of a loop.
+  */
+ 
+ /* Skip serial/enquiry clause (unit series).  */
+ 
+ static NODE_T *
+ top_down_series (NODE_T *p)
+ {
+   bool siga = true;
+   while (siga)
+     {
+       siga = false;
+       p = top_down_skip_unit (p);
+       if (p != NO_NODE)
+ 	{
+ 	  if (a68_is_one_of (p, SEMI_SYMBOL, EXIT_SYMBOL, COMMA_SYMBOL, STOP))
+ 	    {
+ 	      siga = true;
+ 	      FORWARD (p);
+ 	    }
+ 	}
+     }
+   return p;
+ }
+ 
+ /* Make branch of DEF .. POSTLUDE .. FED.  */
+ 
+ static NODE_T *
+ top_down_def (NODE_T *def_p)
+ {
+   NODE_T *fed_p = top_down_series (NEXT (def_p));
+ 
+   if (fed_p == NO_NODE || !(IS (fed_p, FED_SYMBOL) || IS (fed_p, POSTLUDE_SYMBOL)))
+     {
+       top_down_diagnose (def_p, fed_p, MODULE_TEXT, FED_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+     }
+ 
+   a68_make_sub (def_p, PREVIOUS (fed_p), DEF_SYMBOL);
+ 
+   if (IS (fed_p, POSTLUDE_SYMBOL))
+     {
+       NODE_T *postlude_p = top_down_series (NEXT (fed_p));
+ 
+       if (postlude_p == NO_NODE || !IS (postlude_p, FED_SYMBOL))
+ 	{
+ 	  top_down_diagnose (def_p, fed_p, MODULE_TEXT, FED_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (fed_p, PREVIOUS (postlude_p), POSTLUDE_SYMBOL);
+     }
+ 
+   return NEXT (def_p);
+ }
+ 
+ /* Make branch of
+ 
+    ACCESS REVELATIONS [DEF_SYMBOL]
+    or
+    ACCESS REVELATIONS ENCLOSED_CLAUSE.   */
+ 
+ static void
+ top_down_access (NODE_T *p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (SUB (q) != NO_NODE)
+ 	top_down_access (SUB (q));
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, ACCESS_SYMBOL))
+ 	{
+ 	  NODE_T *end_p = NEXT (q);
+ 
+ 	  /* Skip joined list of revelations and make branch until the enclosed
+ 	     clause, DEF_SYMBOL or POSTLUDE_SYMBOL.  */
+ 	  while (a68_is_one_of (end_p, BOLD_TAG, PUBLIC_SYMBOL, COMMA_SYMBOL, STOP))
+ 	    FORWARD (end_p);
+ 
+ 	  if (IS (end_p, DEF_SYMBOL))
+ 	    {
+ 	      FORWARD (end_p);
+ 	      if (IS (end_p, POSTLUDE_SYMBOL))
+ 		FORWARD (end_p);
+ 	      if (IS (end_p, FED_SYMBOL))
+ 		{
+ 		  ATTRIBUTE (q) = ALT_ACCESS_SYMBOL;
+ 		  a68_make_sub (q, end_p, ALT_ACCESS_SYMBOL);
+ 		}
+ 	    }
+ 	  else if (IS (end_p, ACCESS_SYMBOL))
+ 	    {
+ 	      top_down_access (end_p);
+ 	      a68_make_sub (q, end_p, ACCESS_SYMBOL);
+ 	    }
+ 	  else
+ 	    a68_make_sub (q, end_p, ACCESS_SYMBOL);
+ 	}
+     }
+ }
+ 
+ /* Make branch of BEGIN .. END.  */
+ 
+ static NODE_T *
+ top_down_begin (NODE_T *begin_p)
+ {
+   NODE_T *end_p = top_down_series (NEXT (begin_p));
+ 
+   if (end_p == NO_NODE || !IS (end_p, END_SYMBOL))
+     {
+       top_down_diagnose (begin_p, end_p, ENCLOSED_CLAUSE, END_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+   else
+     {
+       a68_make_sub (begin_p, end_p, BEGIN_SYMBOL);
+       return NEXT (begin_p);
+     }
+ }
+ 
+ /* Make branch of ( .. ).  */
+ 
+ static NODE_T *
+ top_down_open (NODE_T *open_p)
+ {
+   NODE_T *then_bar_p = top_down_series (NEXT (open_p)), *elif_bar_p;
+ 
+   if (then_bar_p != NO_NODE && IS (then_bar_p, CLOSE_SYMBOL))
+     {
+       a68_make_sub (open_p, then_bar_p, OPEN_SYMBOL);
+       return NEXT (open_p);
+     }
+ 
+   if (then_bar_p == NO_NODE || !IS (then_bar_p, THEN_BAR_SYMBOL))
+     {
+       top_down_diagnose (open_p, then_bar_p, ENCLOSED_CLAUSE, STOP);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+     }
+ 
+   a68_make_sub (open_p, PREVIOUS (then_bar_p), OPEN_SYMBOL);
+   elif_bar_p = top_down_series (NEXT (then_bar_p));
+   if (elif_bar_p != NO_NODE && IS (elif_bar_p, CLOSE_SYMBOL))
+     {
+       a68_make_sub (then_bar_p, PREVIOUS (elif_bar_p), THEN_BAR_SYMBOL);
+       a68_make_sub (open_p, elif_bar_p, OPEN_SYMBOL);
+       return NEXT (open_p);
+     }
+ 
+   if (elif_bar_p != NO_NODE && IS (elif_bar_p, THEN_BAR_SYMBOL))
+     {
+       NODE_T *close_p = top_down_series (NEXT (elif_bar_p));
+ 
+       if (close_p == NO_NODE || !IS (close_p, CLOSE_SYMBOL))
+ 	{
+ 	  top_down_diagnose (open_p, elif_bar_p, ENCLOSED_CLAUSE, CLOSE_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+ 
+       a68_make_sub (then_bar_p, PREVIOUS (elif_bar_p), THEN_BAR_SYMBOL);
+       a68_make_sub (elif_bar_p, PREVIOUS (close_p), THEN_BAR_SYMBOL);
+       a68_make_sub (open_p, close_p, OPEN_SYMBOL);
+       return NEXT (open_p);
+     }
+ 
+   if (elif_bar_p != NO_NODE && IS (elif_bar_p, ELSE_BAR_SYMBOL))
+     {
+       NODE_T *close_p = top_down_open (elif_bar_p);
+       a68_make_sub (then_bar_p, PREVIOUS (elif_bar_p), THEN_BAR_SYMBOL);
+       a68_make_sub (open_p, elif_bar_p, OPEN_SYMBOL);
+       return close_p;
+     }
+   else
+     {
+       top_down_diagnose (open_p, elif_bar_p, ENCLOSED_CLAUSE, CLOSE_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+ }
+ 
+ /* Make branch of [ .. ].  */
+ 
+ static NODE_T *
+ top_down_sub (NODE_T *sub_p)
+ {
+   NODE_T *bus_p = top_down_series (NEXT (sub_p));
+ 
+   if (bus_p != NO_NODE && IS (bus_p, BUS_SYMBOL))
+     {
+       a68_make_sub (sub_p, bus_p, SUB_SYMBOL);
+       return NEXT (sub_p);
+     }
+   else
+     {
+       top_down_diagnose (sub_p, bus_p, 0, BUS_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+ }
+ 
+ /* Make branch of IF .. THEN .. ELSE .. FI.  */
+ 
+ static NODE_T *
+ top_down_if (NODE_T * if_p)
+ {
+   NODE_T *then_p = top_down_series (NEXT (if_p)), *elif_p;
+ 
+   if (then_p == NO_NODE || !IS (then_p, THEN_SYMBOL))
+     {
+       top_down_diagnose (if_p, then_p, CONDITIONAL_CLAUSE, THEN_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+     }
+ 
+   a68_make_sub (if_p, PREVIOUS (then_p), IF_SYMBOL);
+ 
+   elif_p = top_down_series (NEXT (then_p));
+   if (elif_p != NO_NODE && IS (elif_p, FI_SYMBOL))
+     {
+       a68_make_sub (then_p, PREVIOUS (elif_p), THEN_SYMBOL);
+       a68_make_sub (if_p, elif_p, IF_SYMBOL);
+       return NEXT (if_p);
+     }
+ 
+   if (elif_p != NO_NODE && IS (elif_p, ELSE_SYMBOL))
+     {
+       NODE_T *fi_p = top_down_series (NEXT (elif_p));
+ 
+       if (fi_p == NO_NODE || !IS (fi_p, FI_SYMBOL))
+ 	{
+ 	  top_down_diagnose (if_p, fi_p, CONDITIONAL_CLAUSE, FI_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+       else
+ 	{
+ 	  a68_make_sub (then_p, PREVIOUS (elif_p), THEN_SYMBOL);
+ 	  a68_make_sub (elif_p, PREVIOUS (fi_p), ELSE_SYMBOL);
+ 	  a68_make_sub (if_p, fi_p, IF_SYMBOL);
+ 	  return NEXT (if_p);
+ 	}
+     }
+ 
+   if (elif_p != NO_NODE && IS (elif_p, ELIF_SYMBOL))
+     {
+       NODE_T *fi_p = top_down_if (elif_p);
+ 
+       a68_make_sub (then_p, PREVIOUS (elif_p), THEN_SYMBOL);
+       a68_make_sub (if_p, elif_p, IF_SYMBOL);
+       return fi_p;
+     }
+   else
+     {
+       top_down_diagnose (if_p, elif_p, CONDITIONAL_CLAUSE, FI_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+ }
+ 
+ /* Make branch of CASE .. IN .. OUT .. ESAC.  */
+ 
+ static NODE_T *
+ top_down_case (NODE_T *case_p)
+ {
+   NODE_T *in_p = top_down_series (NEXT (case_p)), *ouse_p;
+ 
+   if (in_p == NO_NODE || !IS (in_p, IN_SYMBOL))
+     {
+       top_down_diagnose (case_p, in_p, ENCLOSED_CLAUSE, IN_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+     }
+ 
+   a68_make_sub (case_p, PREVIOUS (in_p), CASE_SYMBOL);
+ 
+   ouse_p = top_down_series (NEXT (in_p));
+   if (ouse_p != NO_NODE && IS (ouse_p, ESAC_SYMBOL))
+     {
+       a68_make_sub (in_p, PREVIOUS (ouse_p), IN_SYMBOL);
+       a68_make_sub (case_p, ouse_p, CASE_SYMBOL);
+       return NEXT (case_p);
+     }
+ 
+   if (ouse_p != NO_NODE && IS (ouse_p, OUT_SYMBOL))
+     {
+       NODE_T *esac_p = top_down_series (NEXT (ouse_p));
+ 
+       if (esac_p == NO_NODE || !IS (esac_p, ESAC_SYMBOL))
+ 	{
+ 	  top_down_diagnose (case_p, esac_p, ENCLOSED_CLAUSE, ESAC_SYMBOL);
+ 	  longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	}
+       else
+ 	{
+ 	  a68_make_sub (in_p, PREVIOUS (ouse_p), IN_SYMBOL);
+ 	  a68_make_sub (ouse_p, PREVIOUS (esac_p), OUT_SYMBOL);
+ 	  a68_make_sub (case_p, esac_p, CASE_SYMBOL);
+ 	  return NEXT (case_p);
+ 	}
+     }
+ 
+   if (ouse_p != NO_NODE && IS (ouse_p, OUSE_SYMBOL))
+     {
+       NODE_T *esac_p = top_down_case (ouse_p);
+ 
+       a68_make_sub (in_p, PREVIOUS (ouse_p), IN_SYMBOL);
+       a68_make_sub (case_p, ouse_p, CASE_SYMBOL);
+       return esac_p;
+     }
+   else
+     {
+       top_down_diagnose (case_p, ouse_p, ENCLOSED_CLAUSE, ESAC_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+ }
+ 
+ /* Skip a unit.  */
+ 
+ static NODE_T *
+ top_down_skip_unit (NODE_T *p)
+ {
+   while (p != NO_NODE && !a68_is_unit_terminator (p))
+     {
+       if (IS (p, BEGIN_SYMBOL))
+ 	p = top_down_begin (p);
+       else if (IS (p, SUB_SYMBOL))
+ 	p = top_down_sub (p);
+       else if (IS (p, OPEN_SYMBOL))
+ 	p = top_down_open (p);
+       else if (IS (p, IF_SYMBOL))
+ 	p = top_down_if (p);
+       else if (IS (p, CASE_SYMBOL))
+ 	p = top_down_case (p);
+       else
+ 	FORWARD (p);
+     }
+   return p;
+ }
+ 
+ static NODE_T *top_down_skip_format (NODE_T *);
+ 
+ /* Make branch of ( .. ) in a format.  */
+ 
+ static NODE_T *
+ top_down_format_open (NODE_T *open_p)
+ {
+   NODE_T *close_p = top_down_skip_format (NEXT (open_p));
+ 
+   if (close_p != NO_NODE && IS (close_p, FORMAT_CLOSE_SYMBOL))
+     {
+       a68_make_sub (open_p, close_p, FORMAT_OPEN_SYMBOL);
+       return NEXT (open_p);
+     }
+   else
+     {
+       top_down_diagnose (open_p, close_p, 0, FORMAT_CLOSE_SYMBOL);
+       longjmp (A68_PARSER (top_down_crash_exit), 1);
+       return NO_NODE;
+     }
+ }
+ 
+ /* Skip a format text.  */
+ 
+ static NODE_T *
+ top_down_skip_format (NODE_T *p)
+ {
+   while (p != NO_NODE)
+     {
+       if (IS (p, FORMAT_OPEN_SYMBOL))
+ 	p = top_down_format_open (p);
+       else if (a68_is_one_of (p, FORMAT_CLOSE_SYMBOL, FORMAT_DELIMITER_SYMBOL, STOP))
+ 	return p;
+       else
+ 	FORWARD (p);
+   }
+   return NO_NODE;
+ }
+ 
+ /* Make branch of $ .. $.  */
+ 
+ static void
+ top_down_formats (NODE_T * p)
+ {
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (SUB (q) != NO_NODE)
+ 	top_down_formats (SUB (q));
+     }
+ 
+   for (NODE_T *q = p; q != NO_NODE; FORWARD (q))
+     {
+       if (IS (q, FORMAT_DELIMITER_SYMBOL))
+ 	{
+ 	  NODE_T *f = NEXT (q);
+ 
+ 	  while (f != NO_NODE && !IS (f, FORMAT_DELIMITER_SYMBOL))
+ 	    {
+ 	      if (IS (f, FORMAT_OPEN_SYMBOL))
+ 		f = top_down_format_open (f);
+ 	      else
+ 		f = NEXT (f);
+ 	    }
+ 
+ 	  if (f == NO_NODE)
+ 	    {
+ 	      top_down_diagnose (p, f, FORMAT_TEXT, FORMAT_DELIMITER_SYMBOL);
+ 	      longjmp (A68_PARSER (top_down_crash_exit), 1);
+ 	    }
+ 	  else
+ 	    a68_make_sub (q, f, FORMAT_DELIMITER_SYMBOL);
+ 	}
+     }
+ }
+ 
+ /* Skip prelude packet.  */
+ 
+ static NODE_T *
+ top_down_prelude_packet (NODE_T *p)
+ {
+   while (p != NO_NODE)
+     {
+       if (IS (p, DEF_SYMBOL))
+ 	p = top_down_def (p);
+       else
+ 	FORWARD (p);
+     }
+ 
+   return p;
+ }
+ 
+ /* Skip particular program.  */
+ 
+ static NODE_T *
+ top_down_particular_program (NODE_T *p)
+ {
+   (void) top_down_series (p);
+   return p;
+ }
+ 
+ /* Make branches of phrases for the bottom-up parser.  */
+ 
+ void
+ a68_top_down_parser (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return;
+ 
+   if (!setjmp (A68_PARSER (top_down_crash_exit)))
+     {
+       if (IS (p, MODULE_SYMBOL))
+ 	(void) top_down_prelude_packet (p);
+       else
+ 	(void) top_down_particular_program (p);
+ 
+       top_down_loops (p);
+       top_down_formats (p);
+       top_down_access (p);
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser-victal.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-victal.cc
*** gcc-15.2.0/gcc/algol68/a68-parser-victal.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser-victal.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,370 ----
+ /* Syntax check for formal, actual and virtual declarers.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 "options.h"
+ 
+ #include "a68.h"
+ 
+ static bool victal_check_declarer (NODE_T *, int);
+ 
+ /* Check generator.  */
+ 
+ static void
+ victal_check_generator (NODE_T * p)
+ {
+   if (!victal_check_declarer (NEXT (p), ACTUAL_DECLARER_MARK))
+     a68_error (p, "actual declarer expected");
+ }
+ 
+ /* Check formal pack.  */
+ 
+ static void
+ victal_check_formal_pack (NODE_T *p, int x, bool *z)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, FORMAL_DECLARERS))
+ 	victal_check_formal_pack (SUB (p), x, z);
+       else if (a68_is_one_of (p, OPEN_SYMBOL, COMMA_SYMBOL, STOP))
+ 	victal_check_formal_pack (NEXT (p), x, z);
+       else if (IS (p, FORMAL_DECLARERS_LIST))
+ 	{
+ 	  victal_check_formal_pack (NEXT (p), x, z);
+ 	  victal_check_formal_pack (SUB (p), x, z);
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  victal_check_formal_pack (NEXT (p), x, z);
+ 	  (*z) &= victal_check_declarer (SUB (p), x);
+ 	}
+     }
+ }
+ 
+ /* Check operator declaration.  */
+ 
+ static void
+ victal_check_operator_dec (NODE_T *p)
+ {
+   if (IS (NEXT (p), FORMAL_DECLARERS))
+     {
+       bool z = true;
+       victal_check_formal_pack (NEXT (p), FORMAL_DECLARER_MARK, &z);
+       if (!z)
+ 	a68_error (p, "formal declarers expected");
+       FORWARD (p);
+   }
+   if (!victal_check_declarer (NEXT (p), FORMAL_DECLARER_MARK))
+     a68_error (p, "formal declarer expected");
+ }
+ 
+ /* Check mode declaration.  */
+ 
+ static void
+ victal_check_mode_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, MODE_DECLARATION))
+ 	{
+ 	  victal_check_mode_dec (SUB (p));
+ 	  victal_check_mode_dec (NEXT (p));
+ 	}
+       else if (IS (p, PUBLIC_SYMBOL))
+ 	{
+ 	  victal_check_mode_dec (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, MODE_SYMBOL, DEFINING_INDICANT, STOP)
+                || a68_is_one_of (p, EQUALS_SYMBOL, COMMA_SYMBOL, STOP))
+ 	{
+ 	  victal_check_mode_dec (NEXT (p));
+ 	}
+       else if (IS (p, DECLARER))
+ 	{
+ 	  if (!victal_check_declarer (p, ACTUAL_DECLARER_MARK))
+ 	    a68_error (p, "actual declarer expected");
+ 	}
+     }
+ }
+ 
+ /* Check variable declaration. */
+ 
+ static void
+ victal_check_variable_dec (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, VARIABLE_DECLARATION))
+ 	{
+ 	  victal_check_variable_dec (SUB (p));
+ 	  victal_check_variable_dec (NEXT (p));
+ 	}
+       else
+ 	{
+ 	  if (IS (p, PUBLIC_SYMBOL))
+ 	    FORWARD (p);
+ 
+ 	  if (IS (p, QUALIFIER))
+ 	    FORWARD (p);
+ 
+ 	  if (a68_is_one_of (p, DEFINING_IDENTIFIER, ASSIGN_SYMBOL, STOP)
+ 	      || IS (p, COMMA_SYMBOL))
+ 	    victal_check_variable_dec (NEXT (p));
+ 	  else if (IS (p, UNIT))
+ 	    a68_victal_checker (SUB (p));
+ 	  else if (IS (p, DECLARER))
+ 	    {
+ 	      if (!victal_check_declarer (p, ACTUAL_DECLARER_MARK))
+ 		a68_error (p, "actual declarer expected");
+ 	      victal_check_variable_dec (NEXT (p));
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Check identity declaration.  */
+ 
+ static void
+ victal_check_identity_dec (NODE_T * p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, IDENTITY_DECLARATION))
+ 	{
+ 	  victal_check_identity_dec (SUB (p));
+ 	  victal_check_identity_dec (NEXT (p));
+ 	}
+       else if (a68_is_one_of (p, PUBLIC_SYMBOL, DEFINING_IDENTIFIER, EQUALS_SYMBOL, COMMA_SYMBOL,
+ 			      STOP))
+ 	victal_check_identity_dec (NEXT (p));
+       else if (IS (p, UNIT))
+ 	a68_victal_checker (SUB (p));
+       else if (IS (p, DECLARER))
+ 	{
+ 	  if (!victal_check_declarer (p, FORMAL_DECLARER_MARK))
+ 	    a68_error (p, "formal declarer expected");
+ 	  victal_check_identity_dec (NEXT (p));
+ 	}
+     }
+ }
+ 
+ /* Check routine pack.  */
+ 
+ static void
+ victal_check_routine_pack (NODE_T *p, int x, bool *z)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, PARAMETER_PACK))
+ 	victal_check_routine_pack (SUB (p), x, z);
+       else if (a68_is_one_of (p, OPEN_SYMBOL, COMMA_SYMBOL, STOP))
+ 	victal_check_routine_pack (NEXT (p), x, z);
+       else if (a68_is_one_of (p, PARAMETER_LIST, PARAMETER, STOP))
+ 	{
+ 	  victal_check_routine_pack (NEXT (p), x, z);
+ 	  victal_check_routine_pack (SUB (p), x, z);
+ 	}
+       else if (IS (p, DECLARER))
+ 	*z &= victal_check_declarer (SUB (p), x);
+     }
+ }
+ 
+ /* Check routine text.  */
+ 
+ static void
+ victal_check_routine_text (NODE_T *p)
+ {
+   if (IS (p, PARAMETER_PACK))
+     {
+       bool z = true;
+       victal_check_routine_pack (p, FORMAL_DECLARER_MARK, &z);
+       if (!z)
+ 	a68_error (p, "formal declarers expected");
+       FORWARD (p);
+     }
+   if (!victal_check_declarer (p, FORMAL_DECLARER_MARK))
+     a68_error (p, "formal declarer expected");
+   a68_victal_checker (NEXT (p));
+ }
+ 
+ /* Check structure pack.  */
+ 
+ static void
+ victal_check_structure_pack (NODE_T *p, int x, bool *z)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, STRUCTURE_PACK))
+ 	victal_check_structure_pack (SUB (p), x, z);
+       else if (a68_is_one_of (p, OPEN_SYMBOL, COMMA_SYMBOL, STOP))
+ 	victal_check_structure_pack (NEXT (p), x, z);
+       else if (a68_is_one_of (p, STRUCTURED_FIELD_LIST, STRUCTURED_FIELD, STOP))
+ 	{
+ 	  victal_check_structure_pack (NEXT (p), x, z);
+ 	  victal_check_structure_pack (SUB (p), x, z);
+ 	}
+       else if (IS (p, DECLARER))
+ 	(*z) &= victal_check_declarer (SUB (p), x);
+     }
+ }
+ 
+ /* Check union pack.  */
+ 
+ static void
+ victal_check_union_pack (NODE_T * p, int x, bool * z)
+ {
+   if (p != NO_NODE)
+     {
+     if (IS (p, UNION_PACK))
+       victal_check_union_pack (SUB (p), x, z);
+     else if (a68_is_one_of (p, OPEN_SYMBOL, COMMA_SYMBOL, VOID_SYMBOL, STOP))
+       victal_check_union_pack (NEXT (p), x, z);
+     else if (IS (p, UNION_DECLARER_LIST))
+       {
+ 	victal_check_union_pack (NEXT (p), x, z);
+ 	victal_check_union_pack (SUB (p), x, z);
+       }
+     else if (IS (p, DECLARER))
+       {
+ 	victal_check_union_pack (NEXT (p), x, z);
+ 	(*z) &= victal_check_declarer (SUB (p), FORMAL_DECLARER_MARK);
+       }
+     }
+ }
+ 
+ /* Check declarer.  */
+ 
+ static bool
+ victal_check_declarer (NODE_T *p, int x)
+ {
+   if (p == NO_NODE)
+     return false;
+   else if (IS (p, DECLARER))
+     return victal_check_declarer (SUB (p), x);
+   else if (a68_is_one_of (p, LONGETY, SHORTETY, STOP))
+     return true;
+   else if (a68_is_one_of (p, VOID_SYMBOL, INDICANT, STANDARD, STOP))
+     return true;
+   else if (IS_REF (p))
+     return victal_check_declarer (NEXT (p), VIRTUAL_DECLARER_MARK);
+   else if (IS_FLEX (p))
+     return victal_check_declarer (NEXT (p), x);
+   else if (IS (p, BOUNDS))
+     {
+       a68_victal_checker (SUB (p));
+       if (x == FORMAL_DECLARER_MARK)
+ 	{
+ 	  a68_error (p, "formal bounds expected");
+ 	  (void) victal_check_declarer (NEXT (p), x);
+ 	  return true;
+ 	}
+       else if (x == VIRTUAL_DECLARER_MARK)
+ 	{
+ 	  a68_error (p, "virtual bounds expected");
+ 	  (void) victal_check_declarer (NEXT (p), x);
+ 	  return true;
+ 	}
+       else
+ 	return victal_check_declarer (NEXT (p), x);
+     }
+   else if (IS (p, FORMAL_BOUNDS))
+     {
+       a68_victal_checker (SUB (p));
+       if (x == ACTUAL_DECLARER_MARK)
+ 	{
+ 	  a68_error (p, "actual bounds expected");
+ 	  (void) victal_check_declarer (NEXT (p), x);
+ 	  return true;
+ 	}
+       else
+ 	return victal_check_declarer (NEXT (p), x);
+     }
+   else if (IS (p, STRUCT_SYMBOL))
+     {
+       bool z = true;
+       victal_check_structure_pack (NEXT (p), x, &z);
+       return z;
+     }
+   else if (IS (p, UNION_SYMBOL))
+     {
+       bool z = true;
+       victal_check_union_pack (NEXT (p), FORMAL_DECLARER_MARK, &z);
+       if (!z)
+ 	a68_error (p, "formal declarer pack expected");
+       return true;
+     }
+   else if (IS (p, PROC_SYMBOL))
+     {
+       if (IS (NEXT (p), FORMAL_DECLARERS))
+ 	{
+ 	  bool z = true;
+ 	  victal_check_formal_pack (NEXT (p), FORMAL_DECLARER_MARK, &z);
+ 	  if (!z)
+ 	    a68_error (p, "formal declarer expected");
+ 	  FORWARD (p);
+ 	}
+       if (!victal_check_declarer (NEXT (p), FORMAL_DECLARER_MARK))
+ 	a68_error (p, "formal declarer expected");
+       return true;
+     }
+   else
+     return false;
+ }
+ 
+ /* Check cast.  */
+ 
+ static void
+ victal_check_cast (NODE_T *p)
+ {
+   if (!victal_check_declarer (p, FORMAL_DECLARER_MARK))
+     {
+       a68_error (p, "formal declarer expected");
+       a68_victal_checker (NEXT (p));
+     }
+ }
+ 
+ /* Driver for checking VICTALITY of declarers.  */
+ 
+ void
+ a68_victal_checker (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, MODE_DECLARATION))
+ 	victal_check_mode_dec (SUB (p));
+       else if (IS (p, VARIABLE_DECLARATION))
+ 	victal_check_variable_dec (SUB (p));
+       else if (IS (p, IDENTITY_DECLARATION))
+ 	victal_check_identity_dec (SUB (p));
+       else if (IS (p, GENERATOR))
+ 	victal_check_generator (SUB (p));
+       else if (IS (p, ROUTINE_TEXT))
+ 	victal_check_routine_text (SUB (p));
+       else if (IS (p, OPERATOR_PLAN))
+ 	victal_check_operator_dec (SUB (p));
+       else if (IS (p, CAST))
+ 	victal_check_cast (SUB (p));
+       else
+ 	a68_victal_checker (SUB (p));
+     }
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-parser.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser.cc
*** gcc-15.2.0/gcc/algol68/a68-parser.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-parser.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1182 ----
+ /* ALGOL 68 parser.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /*
+    This is a Mailloux-type parser driver.
+ 
+    The Algol 68 grammar is a two level (Van Wijngaarden, "VW") grammar
+    that incorporates, as syntactical rules, the semantical rules in
+    other languages. Examples are correct use of symbols, modes and
+    scope.
+ 
+    This code constitutes an effective "VW Algol 68 parser". A
+    pragmatic approach was chosen since in the early days of Algol 68,
+    many "ab initio" implementations failed, probably because
+    techniques to parse a language like Algol 68 had yet to be
+    invented.
+ 
+    This is a Mailloux-type parser, in the sense that it scans a
+    "phrase" for definitions needed for parsing. Algol 68 allows for
+    tags to be used before they are defined, which gives freedom in
+    top-down programming.
+ 
+      B. J. Mailloux. On the implementation of Algol 68.
+      Thesis, Universiteit van Amsterdam (Mathematisch Centrum) [1968].
+ 
+    Technically, Mailloux's approach renders the two-level grammar
+    LALR.
+ 
+    First part of the parser is the scanner. The source file is read, is
+    tokenised.  The result is a linear list of tokens that is input for the
+    parser, that will transform the linear list into a syntax tree.
+ 
+    This front-end tokenises all symbols before the bottom-up parser is invoked.
+    This means that scanning does not use information from the parser.  The
+    scanner does of course some rudimentary parsing.
+ 
+    The scanner supports two stropping regimes: "bold" (or "upper") and
+    "quote".  Examples of both:
+ 
+     bold stropping: BEGIN INT i = 1, j = 1; print (i + j) END
+ 
+     quote stropping: 'BEGIN' 'INT' I = 1, J = 1; PRINT (I + J) 'END'
+ 
+    Quote stropping was used frequently in the (excusez-le-mot)
+    punch-card age.  Hence, bold stropping is the default. There also
+    existed point stropping, but that has not been implemented here.
+ 
+    Next part of the parser is a recursive-descent type to check
+    parenthesis.  Also a first set-up is made of symbol tables, needed
+    by the bottom-up parser.  Next part is the bottom-up parser, that
+    parses without knowing modes while parsing and reducing. It can
+    therefore not exchange "[]" with "()" as was blessed by the Revised
+    Report. This is solved by treating CALL and SLICE as equivalent for
+    the moment and letting the mode checker sort it out later.
+ 
+    Parsing progresses in various phases to avoid spurious diagnostics
+    from a recovering parser. Every phase "tightens" the grammar more.
+    An error in any phase makes the parser quit when that phase ends.
+    The parser is forgiving in case of superfluous semicolons.
+ 
+    These are the parser phases:
+ 
+    (1) Parenthesis are checked to see whether they match. Then, a top-down
+        parser determines the basic-block structure of the program
+        so symbol tables can be set up that the bottom-up parser will consult
+        as you can define things before they are applied.
+ 
+    (2) A bottom-up parser resolves the structure of the program.
+ 
+    (3) After the symbol tables have been finalised, a small rearrangement of the
+        tree may be required where JUMPs have no GOTO. This leads to the
+        non-standard situation that JUMPs without GOTO can have the syntactic
+        position of a PRIMARY, SECONDARY or TERTIARY. The bottom-up parser also
+        does not check VICTAL correctness of declarers. This is done separately.
+ 
+   The parser sets up symbol tables and populates them as far as needed to parse
+   the source. After the bottom-up parser terminates succesfully, the symbol tables
+   are completed.
+ 
+    (4) Next, modes are collected and rules for well-formedness and structural
+        equivalence are applied. Then the symbol-table is completed now moids are
+        all known.
+ 
+    (5) Next phases are the mode checker and coercion inserter. The syntax tree is
+        traversed to determine and check all modes, and to select operators. Then
+        the tree is traversed again to insert coercions.
+ 
+    (6) A static scope checker detects where objects are transported out of scope.
+        At run time, a dynamic scope checker will check that what the static scope
+        checker cannot see.
+ 
+    (7) A serial-clause dynamic stack allocation (DSA) phase annotates the
+        serial clauses that contain phrases whose elaboration may result in
+        dynamic stack adjustments.
+ */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "diagnostic.h"
+ #include "tree.h"
+ 
+ #include "a68.h"
+ 
+ /* Global state kept by the parser.  */
+ 
+ PARSER_T a68_parser_state;
+ 
+ /* A few forward declarations of functions defined below.  */
+ 
+ static void make_special_mode (MOID_T ** n, int m);
+ static void tie_label_to_serial (NODE_T *p);
+ static void tie_label_to_unit (NODE_T *p);
+ 
+ /* Is_ref_refety_flex.  */
+ 
+ bool
+ a68_is_ref_refety_flex (MOID_T *m)
+ {
+   if (IS_REF_FLEX (m))
+     return true;
+   else if (IS_REF (m))
+     return a68_is_ref_refety_flex (SUB (m));
+   else
+     return false;
+ }
+ 
+ /* Count number of operands in operator parameter list.  */
+ 
+ int
+ a68_count_operands (NODE_T *p)
+ {
+   if (p != NO_NODE)
+     {
+       if (IS (p, DECLARER))
+ 	return a68_count_operands (NEXT (p));
+       else if (IS (p, COMMA_SYMBOL))
+ 	return 1 + a68_count_operands (NEXT (p));
+       else
+ 	return a68_count_operands (NEXT (p)) + a68_count_operands (SUB (p));
+     }
+   else
+     return 0;
+ }
+ 
+ /* Count formal bounds in declarer in tree.  */
+ 
+ int
+ a68_count_formal_bounds (NODE_T * p)
+ {
+   if (p == NO_NODE)
+     return 0;
+   else
+     {
+       if (IS (p, COMMA_SYMBOL))
+ 	return 1;
+       else
+ 	return a68_count_formal_bounds (NEXT (p)) + a68_count_formal_bounds (SUB (p));
+     }
+ }
+ 
+ /* Count pictures.  */
+ 
+ void
+ a68_count_pictures (NODE_T *p, int *k)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, PICTURE))
+ 	(*k)++;
+       a68_count_pictures (SUB (p), k);
+     }
+ }
+ 
+ /* Whether token cannot follow semicolon or EXIT.  */
+ 
+ bool
+ a68_is_semicolon_less (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case BUS_SYMBOL:
+     case CLOSE_SYMBOL:
+     case END_SYMBOL:
+     case SEMI_SYMBOL:
+     case EXIT_SYMBOL:
+     case THEN_BAR_SYMBOL:
+     case ELSE_BAR_SYMBOL:
+     case THEN_SYMBOL:
+     case ELIF_SYMBOL:
+     case ELSE_SYMBOL:
+     case FI_SYMBOL:
+     case IN_SYMBOL:
+     case OUT_SYMBOL:
+     case OUSE_SYMBOL:
+     case ESAC_SYMBOL:
+     case OD_SYMBOL:
+     case FED_SYMBOL:
+     case POSTLUDE_SYMBOL:
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
+ /* Whether formal bounds.  */
+ 
+ bool
+ a68_is_formal_bounds (NODE_T *p)
+ {
+   if (p == NO_NODE)
+     return true;
+ 
+   switch (ATTRIBUTE (p))
+     {
+     case OPEN_SYMBOL:
+     case CLOSE_SYMBOL:
+     case SUB_SYMBOL:
+     case BUS_SYMBOL:
+     case COMMA_SYMBOL:
+     case COLON_SYMBOL:
+     case INT_DENOTATION:
+     case IDENTIFIER:
+     case OPERATOR:
+       return (a68_is_formal_bounds (SUB (p))
+ 	      && a68_is_formal_bounds (NEXT (p)));
+     default:
+         return false;
+     }
+ }
+ 
+ /* Whether token terminates a unit.  */
+ 
+ bool
+ a68_is_unit_terminator (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case BUS_SYMBOL:
+     case CLOSE_SYMBOL:
+     case END_SYMBOL:
+     case SEMI_SYMBOL:
+     case EXIT_SYMBOL:
+     case COMMA_SYMBOL:
+     case THEN_BAR_SYMBOL:
+     case ELSE_BAR_SYMBOL:
+     case THEN_SYMBOL:
+     case ELIF_SYMBOL:
+     case ELSE_SYMBOL:
+     case FI_SYMBOL:
+     case IN_SYMBOL:
+     case OUT_SYMBOL:
+     case OUSE_SYMBOL:
+     case ESAC_SYMBOL:
+     case FED_SYMBOL:
+     case POSTLUDE_SYMBOL:
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
+ /* Whether token is a unit-terminator in a loop clause.  */
+ 
+ bool
+ a68_is_loop_keyword (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case FOR_SYMBOL:
+     case FROM_SYMBOL:
+     case BY_SYMBOL:
+     case TO_SYMBOL:
+     case WHILE_SYMBOL:
+     case DO_SYMBOL:
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
+ /* Get good attribute.  */
+ 
+ enum a68_attribute
+ a68_get_good_attribute (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case UNIT:
+     case TERTIARY:
+     case SECONDARY:
+     case PRIMARY:
+       return a68_get_good_attribute (SUB (p));
+     default:
+       return ATTRIBUTE (p);
+     }
+ }
+ 
+ /* Preferably don't put intelligible diagnostic here.  */
+ 
+ bool
+ a68_dont_mark_here (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case ALT_DO_SYMBOL:
+     case ALT_EQUALS_SYMBOL:
+     case ANDF_SYMBOL:
+     case ASSERT_SYMBOL:
+     case ASSIGN_SYMBOL:
+     case ASSIGN_TO_SYMBOL:
+     case AT_SYMBOL:
+     case BEGIN_SYMBOL:
+     case BITS_SYMBOL:
+     case BOLD_COMMENT_SYMBOL:
+     case BOLD_PRAGMAT_SYMBOL:
+     case BOLD_COMMENT_BEGIN_SYMBOL:
+     case BOLD_COMMENT_END_SYMBOL:
+     case BOOL_SYMBOL:
+     case BUS_SYMBOL:
+     case BY_SYMBOL:
+     case BYTES_SYMBOL:
+     case CASE_SYMBOL:
+     case CHANNEL_SYMBOL:
+     case CHAR_SYMBOL:
+     case CLOSE_SYMBOL:
+     case COLON_SYMBOL:
+     case COMMA_SYMBOL:
+     case COMPLEX_SYMBOL:
+     case COMPL_SYMBOL:
+     case DO_SYMBOL:
+     case ELIF_SYMBOL:
+     case ELSE_BAR_SYMBOL:
+     case ELSE_SYMBOL:
+     case EMPTY_SYMBOL:
+     case END_SYMBOL:
+     case EQUALS_SYMBOL:
+     case ESAC_SYMBOL:
+     case EXIT_SYMBOL:
+     case FALSE_SYMBOL:
+     case FILE_SYMBOL:
+     case FI_SYMBOL:
+     case FLEX_SYMBOL:
+     case FOR_SYMBOL:
+     case FROM_SYMBOL:
+     case GO_SYMBOL:
+     case GOTO_SYMBOL:
+     case HEAP_SYMBOL:
+     case IF_SYMBOL:
+     case IN_SYMBOL:
+     case INT_SYMBOL:
+     case ISNT_SYMBOL:
+     case IS_SYMBOL:
+     case LOC_SYMBOL:
+     case LONG_SYMBOL:
+     case MAIN_SYMBOL:
+     case MODE_SYMBOL:
+     case NIL_SYMBOL:
+     case OD_SYMBOL:
+     case OF_SYMBOL:
+     case QUOTE_SYMBOL:
+     case OPEN_SYMBOL:
+     case OP_SYMBOL:
+     case ORF_SYMBOL:
+     case OUSE_SYMBOL:
+     case OUT_SYMBOL:
+     case PAR_SYMBOL:
+     case POINT_SYMBOL:
+     case PRIO_SYMBOL:
+     case PROC_SYMBOL:
+     case REAL_SYMBOL:
+     case REF_SYMBOL:
+     case ROWS_SYMBOL:
+     case ROW_SYMBOL:
+     case SEMA_SYMBOL:
+     case SEMI_SYMBOL:
+     case SHORT_SYMBOL:
+     case SKIP_SYMBOL:
+     case STRING_SYMBOL:
+     case STRUCT_SYMBOL:
+     case STYLE_I_COMMENT_SYMBOL:
+     case STYLE_II_COMMENT_SYMBOL:
+     case STYLE_I_PRAGMAT_SYMBOL:
+     case SUB_SYMBOL:
+     case THEN_BAR_SYMBOL:
+     case THEN_SYMBOL:
+     case TO_SYMBOL:
+     case TRUE_SYMBOL:
+     case UNION_SYMBOL:
+     case VOID_SYMBOL:
+     case WHILE_SYMBOL:
+     case SERIAL_CLAUSE:
+     case ENQUIRY_CLAUSE:
+     case INITIALISER_SERIES:
+     case DECLARATION_LIST:
+     case DEF_SYMBOL:
+     case FED_SYMBOL:
+     case POSTLUDE_SYMBOL:
+     case ACCESS_SYMBOL:
+       return true;
+     default:
+       return false;
+     }
+ }
+ 
+ /* Renumber nodes in the given subtree P, starting with number N.  */
+ 
+ static void
+ renumber_nodes (NODE_T *p, int *n)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       NUMBER (p) = (*n)++;
+       renumber_nodes (SUB (p), n);
+     }
+ }
+ 
+ /* Parse an ALGOL 68 source file.  */
+ 
+ void
+ a68_parser (const char *filename)
+ {
+   int renum = 0;
+ 
+   /* Initialisation.  */
+   A68 (top_keyword) = NO_KEYWORD;
+   A68 (top_token) = NO_TOKEN;
+   A68_PARSER (error_tag) = (TAG_T *) a68_new_tag ();
+   TOP_NODE (&A68_JOB) = NO_NODE;
+   TOP_MOID (&A68_JOB) = NO_MOID;
+   TOP_MOIF (&A68_JOB) = NO_MOIF;
+   TOP_LINE (&A68_JOB) = NO_LINE;
+   STANDENV_MOID (&A68_JOB) = NO_MOID;
+   a68_set_up_tables ();
+   ERROR_COUNT (&A68_JOB) = WARNING_COUNT (&A68_JOB) = 0;
+ 
+   /* Tokeniser.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       bool empty_program;
+       bool ok = a68_lexical_analyser (filename, &empty_program);
+ 
+       if (!ok)
+ 	return;
+ 
+       if (empty_program)
+ 	a68_error (NO_NODE,
+ 		   "particular program or prelude packet not found in source file");
+ 
+       TREE_LISTING_SAFE (&A68_JOB) = true;
+       renum = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &renum);
+     }
+ 
+   /* Final initialisations.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       A68_STANDENV = NO_TABLE;
+       a68_init_postulates ();
+       A68 (mode_count) = 0;
+       make_special_mode (&M_HIP, A68 (mode_count)++);
+       make_special_mode (&M_UNDEFINED, A68 (mode_count)++);
+       make_special_mode (&M_ERROR, A68 (mode_count)++);
+       make_special_mode (&M_VACUUM, A68 (mode_count)++);
+       make_special_mode (&M_C_STRING, A68 (mode_count)++);
+       make_special_mode (&M_COLLITEM, A68 (mode_count)++);
+     }
+ 
+   /* Handle pragmats.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     a68_handle_pragmats (TOP_NODE (&A68_JOB));
+ 
+   /* Top-down parser.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_check_parenthesis (TOP_NODE (&A68_JOB));
+       if (ERROR_COUNT (&A68_JOB) == 0)
+ 	{
+ 	  if (OPTION_BRACKETS (&A68_JOB))
+ 	    a68_substitute_brackets (TOP_NODE (&A68_JOB));
+ 	  A68 (symbol_table_count) = 0;
+ 	  A68_STANDENV = a68_new_symbol_table (NO_TABLE);
+ 	  LEVEL (A68_STANDENV) = 0;
+ 	  a68_top_down_parser (TOP_NODE (&A68_JOB));
+ 	  //	  printf ("AFTER TOP-DOWN\n");
+ 	  //	  a68_dump_parse_tree (TOP_NODE (&A68_JOB));
+ 	}
+ 
+       renum = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &renum);
+     }
+ 
+   /* Standard environment builder.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       TABLE (TOP_NODE (&A68_JOB)) = a68_new_symbol_table (A68_STANDENV);
+       a68_make_standard_environ ();
+       STANDENV_MOID (&A68_JOB) = TOP_MOID (&A68_JOB);
+     }
+ 
+   /* Bottom-up parser.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_preliminary_symbol_table_setup (TOP_NODE (&A68_JOB));
+       //      printf ("AFTER PRELIMINARY SYMBOL TABLE SETUP\n");
+       //      a68_dump_parse_tree (TOP_NODE (&A68_JOB), true);
+       a68_bottom_up_parser (TOP_NODE (&A68_JOB));
+       renum = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &renum);
+     }
+ 
+   //  printf ("AFTER BOTTOM-UP\n");
+   //  a68_dump_parse_tree (TOP_NODE (&A68_JOB), true);
+ 
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_bottom_up_error_check (TOP_NODE (&A68_JOB));
+       a68_victal_checker (TOP_NODE (&A68_JOB));
+       if (ERROR_COUNT (&A68_JOB) == 0)
+ 	{
+ 	  a68_finalise_symbol_table_setup (TOP_NODE (&A68_JOB), 1);
+ 	  //	  printf ("AFTER FINALISE SYMBOL TABLE SETUP\n");
+ 	  //	  a68_dump_parse_tree (TOP_NODE (&A68_JOB), true, true);
+ 	  NEST (TABLE (TOP_NODE (&A68_JOB))) = A68 (symbol_table_count) = 3;
+ 	  a68_reset_symbol_table_nest_count (TOP_NODE (&A68_JOB));
+ 	  a68_fill_symbol_table_outer (TOP_NODE (&A68_JOB), TABLE (TOP_NODE (&A68_JOB)));
+ 	  a68_set_nest (TOP_NODE (&A68_JOB), NO_NODE);
+ 	  a68_set_proc_level (TOP_NODE (&A68_JOB), 1);
+ 	}
+       renum = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &renum);
+     }
+ 
+   /* Mode table builder.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     a68_make_moid_list (&A68_JOB);
+   CROSS_REFERENCE_SAFE (&A68_JOB) = true;
+ 
+   /* Symbol table builder.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     a68_collect_taxes (TOP_NODE (&A68_JOB));
+ 
+   /* Post parser.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     a68_rearrange_goto_less_jumps (TOP_NODE (&A68_JOB));
+ 
+   /* Mode checker.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     a68_mode_checker (TOP_NODE (&A68_JOB));
+ 
+   /* Coercion inserter.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_coercion_inserter (TOP_NODE (&A68_JOB));
+       renum = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &renum);
+     }
+ 
+   /* Application checker.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_mark_moids (TOP_NODE (&A68_JOB));
+       a68_mark_auxilliary (TOP_NODE (&A68_JOB));
+       a68_jumps_from_procs (TOP_NODE (&A68_JOB));
+       a68_warn_for_unused_tags (TOP_NODE (&A68_JOB));
+     }
+ 
+   /* Static scope checker.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       tie_label_to_serial (TOP_NODE (&A68_JOB));
+       tie_label_to_unit (TOP_NODE (&A68_JOB));
+       a68_bind_routine_tags_to_tree (TOP_NODE (&A68_JOB));
+       a68_scope_checker (TOP_NODE (&A68_JOB));
+     }
+ 
+   /* Serial dynamic stack allocation checker.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       a68_serial_dsa (TOP_NODE (&A68_JOB));
+     }
+ 
+   /* Finalise syntax tree.  */
+   if (ERROR_COUNT (&A68_JOB) == 0)
+     {
+       int num = 0;
+       renumber_nodes (TOP_NODE (&A68_JOB), &num);
+       NEST (TABLE (TOP_NODE (&A68_JOB))) = A68 (symbol_table_count) = 3;
+       a68_reset_symbol_table_nest_count (TOP_NODE (&A68_JOB));
+     }
+ }
+ 
+ /* New_node_info.  */
+ 
+ NODE_INFO_T *
+ a68_new_node_info (void)
+ {
+   NODE_INFO_T *z = ggc_cleared_alloc<NODE_INFO_T> ();
+ 
+   A68 (new_node_infos)++;
+   PROCEDURE_LEVEL (z) = 0;
+   CHAR_IN_LINE (z) = NO_TEXT;
+   SYMBOL (z) = NO_TEXT;
+   PRAGMAT (z) = NO_TEXT;
+   PRAGMAT_TYPE (z) = 0;
+   PRAGMAT_LINE (z) = NO_LINE;
+   PRAGMAT_CHAR_IN_LINE (z) = NO_TEXT;
+   COMMENT (z) = NO_TEXT;
+   COMMENT_TYPE (z) = 0;
+   COMMENT_LINE (z) = NO_LINE;
+   COMMENT_CHAR_IN_LINE (z) = NO_TEXT;
+   LINE (z) = NO_LINE;
+   return z;
+ }
+ 
+ /* New_genie_info.  */
+ 
+ GINFO_T *
+ a68_new_genie_info (void)
+ {
+   GINFO_T *z = ggc_cleared_alloc<GINFO_T> ();
+ 
+   A68 (new_genie_infos)++;
+   PARTIAL_PROC (z) = NO_MOID;
+   PARTIAL_LOCALE (z) = NO_MOID;
+   return z;
+ }
+ 
+ /* Allocate and return a new parse tree node with proper defaults.  */
+ 
+ NODE_T *
+ a68_new_node (void)
+ {
+   NODE_T *z = ggc_cleared_alloc<NODE_T> ();
+ 
+   A68 (new_nodes)++;
+   TABLE (z) = NO_TABLE;
+   INFO (z) = NO_NINFO;
+   GINFO (z) = NO_GINFO;
+   ATTRIBUTE (z) = STOP;
+   ANNOTATION (z) = STOP;
+   MOID (z) = NO_MOID;
+   NEXT (z) = NO_NODE;
+   PREVIOUS (z) = NO_NODE;
+   SUB (z) = NO_NODE;
+   NEST (z) = NO_NODE;
+   NON_LOCAL (z) = NO_TABLE;
+   TAX (z) = NO_TAG;
+   SEQUENCE (z) = NO_NODE;
+   PACK (z) = NO_PACK;
+   CDECL (z) = NULL_TREE;
+   DYNAMIC_STACK_ALLOCS (z) = false;
+   PUBLICIZED (z) = false;
+   NEGATED (z) = false;
+   return z;
+ }
+ 
+ /* Some_node.  */
+ 
+ NODE_T *
+ a68_some_node (const char *t)
+ {
+   NODE_T *z = a68_new_node ();
+   INFO (z) = a68_new_node_info ();
+   GINFO (z) = a68_new_genie_info ();
+   NSYMBOL (z) = t;
+   return z;
+ }
+ 
+ /* New_symbol_table.  */
+ 
+ TABLE_T *
+ a68_new_symbol_table (TABLE_T *p)
+ {
+   TABLE_T *z = ggc_cleared_alloc<TABLE_T> ();
+ 
+   NUM (z) = A68 (symbol_table_count);
+   LEVEL (z) = A68 (symbol_table_count)++;
+   NEST (z) = A68 (symbol_table_count);
+   ATTRIBUTE (z) = 0;
+   INITIALISE_FRAME (z) = true;
+   PROC_OPS (z) = true;
+   INITIALISE_ANON (z) = true;
+   PREVIOUS (z) = p;
+   OUTER (z) = NO_TABLE;
+   IDENTIFIERS (z) = NO_TAG;
+   OPERATORS (z) = NO_TAG;
+   MODULES (z) = NO_TAG;
+   PRIO (z) = NO_TAG;
+   INDICANTS (z) = NO_TAG;
+   LABELS (z) = NO_TAG;
+   ANONYMOUS (z) = NO_TAG;
+   JUMP_TO (z) = NO_NODE;
+   SEQUENCE (z) = NO_NODE;
+   PUBLIC_RANGE (z) = false;
+   return z;
+ }
+ 
+ /* New_moid.  */
+ 
+ MOID_T *
+ a68_new_moid (void)
+ {
+   MOID_T *z = ggc_cleared_alloc<MOID_T> ();
+ 
+   A68 (new_modes)++;
+   ATTRIBUTE (z) = 0;
+   NUMBER (z) = 0;
+   DIM (z) = 0;
+   USE (z) = false;
+   HAS_ROWS (z) = false;
+   HAS_REFS (z) = false;
+   PORTABLE (z) = true;
+   DERIVATE (z) = false;
+   NODE (z) = NO_NODE;
+   PACK (z) = NO_PACK;
+   SUB (z) = NO_MOID;
+   EQUIVALENT_MODE (z) = NO_MOID;
+   SLICE (z) = NO_MOID;
+   TRIM (z) = NO_MOID;
+   DEFLEXED (z) = NO_MOID;
+   NAME (z) = NO_MOID;
+   MULTIPLE_MODE (z) = NO_MOID;
+   NEXT (z) = NO_MOID;
+   CTYPE (z) = NULL_TREE;
+   ASM_LABEL (z) = NULL;
+   return z;
+ }
+ 
+ /* New_pack.  */
+ 
+ PACK_T *
+ a68_new_pack (void)
+ {
+   PACK_T *z = ggc_cleared_alloc<PACK_T> ();
+ 
+   MOID (z) = NO_MOID;
+   TEXT (z) = NO_TEXT;
+   NODE (z) = NO_NODE;
+   NEXT (z) = NO_PACK;
+   PREVIOUS (z) = NO_PACK;
+   return z;
+ }
+ 
+ /* New_tag.  */
+ 
+ TAG_T *
+ a68_new_tag (void)
+ {
+   TAG_T *z = ggc_cleared_alloc<TAG_T> ();
+ 
+   STATUS (z) = NULL_MASK;
+   TAG_TABLE (z) = NO_TABLE;
+   MOID (z) = NO_MOID;
+   NODE (z) = NO_NODE;
+   UNIT (z) = NO_NODE;
+   VALUE (z) = NO_TEXT;
+   SCOPE (z) = PRIMAL_SCOPE;
+   SCOPE_ASSIGNED (z) = false;
+   PRIO (z) = 0;
+   USE (z) = false;
+   IN_PROC (z) = false;
+   NEST_PROC (z) = false;
+   HEAP (z) = false;
+   YOUNGEST_ENVIRON (z) = PRIMAL_SCOPE;
+   LOC_ASSIGNED (z) = false;
+   NEXT (z) = NO_TAG;
+   BODY (z) = NO_TAG;
+   PORTABLE (z) = true;
+   VARIABLE (z) = false;
+   IS_RECURSIVE (z) = false;
+   PUBLICIZED (z) = true; /* XXX */
+   ASCRIBED_ROUTINE_TEXT (z) = false;
+   LOWERER (z) = NO_LOWERER;
+   TAX_TREE_DECL (z) = NULL_TREE;
+   MOIF (z) = NO_MOIF;
+   EXTERN_SYMBOL (z) = NO_TEXT;
+   NUMBER (z) = ++A68_PARSER (tag_number);
+   return z;
+ }
+ 
+ /* Make special, internal mode.  */
+ 
+ static void
+ make_special_mode (MOID_T ** n, int m)
+ {
+   (*n) = a68_new_moid ();
+   ATTRIBUTE (*n) = 0;
+   NUMBER (*n) = m;
+   PACK (*n) = NO_PACK;
+   SUB (*n) = NO_MOID;
+   EQUIVALENT (*n) = NO_MOID;
+   DEFLEXED (*n) = NO_MOID;
+   NAME (*n) = NO_MOID;
+   SLICE (*n) = NO_MOID;
+   TRIM (*n) = NO_MOID;
+   ROWED (*n) = NO_MOID;
+ }
+ 
+ /* Whether attributes match in subsequent nodes.  */
+ 
+ bool
+ a68_whether (NODE_T * p, ...)
+ {
+   va_list vl;
+   va_start (vl, p);
+   int a;
+   while ((a = va_arg (vl, int)) != STOP)
+   {
+     if (p != NO_NODE && a == WILDCARD)
+       FORWARD (p);
+     else if (p != NO_NODE && (a == KEYWORD))
+       {
+ 	if (a68_find_keyword_from_attribute (A68 (top_keyword), ATTRIBUTE (p)) != NO_KEYWORD)
+ 	  FORWARD (p);
+ 	else
+ 	  {
+ 	    va_end (vl);
+ 	    return false;
+ 	  }
+       }
+     else if (p != NO_NODE && (a >= 0 ? a == ATTRIBUTE (p) : (-a) != ATTRIBUTE (p)))
+       FORWARD (p);
+     else
+       {
+ 	va_end (vl);
+ 	return false;
+       }
+   }
+   va_end (vl);
+   return true;
+ }
+ 
+ /* Whether one of a series of attributes matches a node.  */
+ 
+ bool
+ a68_is_one_of (NODE_T *p, ...)
+ {
+   if (p != NO_NODE)
+     {
+       bool match = false;
+       int a;
+ 
+       va_list vl;
+       va_start (vl, p);
+       while ((a = va_arg (vl, int)) != STOP)
+ 	match = (match | IS (p, a));
+       va_end (vl);
+       return match;
+     }
+   else
+     return false;
+ }
+ 
+ 
+ /* Isolate nodes p-q making p a branch to p-q
+ 
+    From x - p - a - b - c - q - y
+    To   x - t - y
+             |
+             p - a - b - c - q
+ */
+ 
+ void
+ a68_make_sub (NODE_T *p, NODE_T *q, enum a68_attribute t)
+ {
+   NODE_T *z = a68_new_node ();
+ 
+   gcc_assert (p != NO_NODE && q != NO_NODE);
+   *z = *p;
+ 
+   if (GINFO (p) != NO_GINFO)
+     GINFO (z) = a68_new_genie_info ();
+ 
+   PREVIOUS (z) = NO_NODE;
+ 
+   if (p == q)
+     NEXT (z) = NO_NODE;
+   else
+     {
+       if (NEXT (p) != NO_NODE)
+ 	PREVIOUS (NEXT (p)) = z;
+       NEXT (p) = NEXT (q);
+       if (NEXT (p) != NO_NODE)
+ 	PREVIOUS (NEXT (p)) = p;
+       NEXT (q) = NO_NODE;
+     }
+ 
+   SUB (p) = z;
+   ATTRIBUTE (p) = t;
+ }
+ 
+ /* Find symbol table at level I.  */
+ 
+ static TABLE_T *
+ find_level (NODE_T *n, int i)
+ {
+   if (n == NO_NODE)
+     return NO_TABLE;
+   else
+     {
+       TABLE_T *s = TABLE (n);
+ 
+       if (s != NO_TABLE && LEVEL (s) == i)
+ 	return s;
+       else if ((s = find_level (SUB (n), i)) != NO_TABLE)
+ 	return s;
+       else if ((s = find_level (NEXT (n), i)) != NO_TABLE)
+ 	return s;
+       else
+ 	return NO_TABLE;
+     }
+ }
+ 
+ /* Whether P is top of lexical level.  */
+ 
+ bool
+ a68_is_new_lexical_level (NODE_T *p)
+ {
+   switch (ATTRIBUTE (p))
+     {
+     case ALT_DO_PART:
+     case BRIEF_ELIF_PART:
+     case BRIEF_OUSE_PART:
+     case BRIEF_CONFORMITY_OUSE_PART:
+     case CHOICE:
+     case CLOSED_CLAUSE:
+     case CONDITIONAL_CLAUSE:
+     case DO_PART:
+     case ELIF_PART:
+     case ELSE_PART:
+     case CASE_CLAUSE:
+     case CASE_CHOICE_CLAUSE:
+     case CASE_IN_PART:
+     case CASE_OUSE_PART:
+     case OUT_PART:
+     case ROUTINE_TEXT:
+     case SPECIFIED_UNIT:
+     case THEN_PART:
+     case CONFORMITY_CLAUSE:
+     case CONFORMITY_CHOICE:
+     case CONFORMITY_IN_PART:
+     case CONFORMITY_OUSE_PART:
+     case WHILE_PART:
+     case DEF_PART:
+     case POSTLUDE_PART:
+     case ACCESS_CLAUSE:
+       return true;
+     case MODULE_TEXT:
+       /* Module texts introduce an additional lexical level encompassing all
+ 	 its parts only if it is endowed with revelations.  */
+       if (SUB (p) != NO_NODE && IS (SUB (p), REVELATION_PART))
+ 	return true;
+       else
+ 	return false;
+       break;
+     default:
+       return false;
+     }
+ }
+ 
+ /*
+  * Couple of utility functions.
+  */
+ 
+ /* Safely append to buffer.  */
+ 
+ void
+ a68_bufcat (char *dst, const char *src, int len)
+ {
+   if (src != NO_TEXT) {
+     char *d = dst;
+     const char *s = src;
+     int n = len;
+ // Find end of dst and left-adjust; do not go past end
+     for (; n-- != 0 && d[0] != '\0'; d++) {
+       ;
+     }
+     int dlen = (int) (d - dst);
+     n = len - dlen;
+     if (n > 0) {
+       while (s[0] != '\0') {
+         if (n != 1) {
+           (d++)[0] = s[0];
+           n--;
+         }
+         s++;
+       }
+       d[0] = '\0';
+     }
+ // Better sure than sorry
+     dst[len - 1] = '\0';
+   }
+ }
+ 
+ /* Safely copy to buffer.  */
+ 
+ void
+ a68_bufcpy (char *dst, const char *src, int len)
+ {
+   if (src != NO_TEXT) {
+     char *d = dst;
+     const char *s = src;
+     int n = len;
+ // Copy as many as fit
+     if (n > 0 && --n > 0) {
+       do {
+         if (((d++)[0] = (s++)[0]) == '\0') {
+           break;
+         }
+       } while (--n > 0);
+     }
+     if (n == 0 && len > 0) {
+ // Not enough room in dst, so terminate
+       d[0] = '\0';
+     }
+ // Better sure than sorry
+     dst[len - 1] = '\0';
+   }
+ }
+ 
+ /* Make a new copy of concatenated strings.  */
+ 
+ char *
+ a68_new_string (const char *t, ...)
+ {
+   va_list vl;
+   va_start (vl, t);
+   const char *q = t;
+   if (q == NO_TEXT) {
+     va_end (vl);
+     return NO_TEXT;
+   }
+   int len = 0;
+   while (q != NO_TEXT) {
+     len += (int) strlen (q);
+     q = va_arg (vl, char *);
+   }
+   va_end (vl);
+   len++;
+   char *z = (char *) xmalloc ((size_t) len);
+   z[0] = '\0';
+   q = t;
+   va_start (vl, t);
+   while (q != NO_TEXT) {
+     a68_bufcat (z, q, len);
+     q = va_arg (vl, char *);
+   }
+   va_end (vl);
+   return z;
+ }
+ 
+ /*  Tie label to the clause it is defined in.  */
+ 
+ static void
+ tie_label_to_serial (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, SERIAL_CLAUSE))
+ 	{
+ 	  bool valid_follow;
+ 
+ 	  if (NEXT (p) == NO_NODE)
+ 	    valid_follow = true;
+ 	  else if (IS (NEXT (p), CLOSE_SYMBOL))
+ 	    valid_follow = true;
+ 	  else if (IS (NEXT (p), END_SYMBOL))
+ 	    valid_follow = true;
+ 	  else if (IS (NEXT (p), OD_SYMBOL))
+ 	    valid_follow = true;
+ 	  else
+ 	    valid_follow = false;
+ 
+ 	  if (valid_follow)
+ 	    JUMP_TO (TABLE (SUB (p))) = NO_NODE;
+ 	}
+ 
+       tie_label_to_serial (SUB (p));
+     }
+ }
+ 
+ /* Tie label to the clause it is defined in.  */
+ 
+ static void
+ tie_label (NODE_T *p, NODE_T *unit)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, DEFINING_IDENTIFIER))
+ 	UNIT (TAX (p)) = unit;
+       tie_label (SUB (p), unit);
+     }
+ }
+ 
+ /* Tie label to the clause it is defined in.  */
+ 
+ static void
+ tie_label_to_unit (NODE_T *p)
+ {
+   for (; p != NO_NODE; FORWARD (p))
+     {
+       if (IS (p, LABELED_UNIT))
+ 	tie_label (SUB_SUB (p), NEXT_SUB (p));
+       tie_label_to_unit (SUB (p));
+     }
+ }
+ 
+ /* Table with attribute names.  */
+ 
+ static const char *attribute_names[] =
+ {
+   "STOP",
+ #define A68_ATTR(ATTR,DESCR) DESCR,
+ #include "a68-parser-attrs.def"
+ #undef A68_ATTR
+ };
+ 
+ /* Get the name of an attribute.  */
+ 
+ const char *
+ a68_attribute_name (enum a68_attribute attr)
+ {
+   return attribute_names[attr];
+ }
+ 
+ /* Get the location of node P as a GCC location.  */
+ 
+ location_t
+ a68_get_node_location (NODE_T *p)
+ {
+   LINE_T *line = LINE (INFO (p));
+ 
+   if (line == NO_LINE)
+     return UNKNOWN_LOCATION;
+ 
+   unsigned line_number = NUMBER (line);
+   unsigned column_number = CHAR_IN_LINE (INFO (p)) - STRING (line) + 1;
+   const char *filename = FILENAME (line);
+ 
+   location_t gcc_location;
+ 
+   linemap_add (line_table, LC_ENTER, 0, filename, line_number);
+   linemap_line_start (line_table, line_number, 0);
+   gcc_location = linemap_position_for_column (line_table, column_number);
+   linemap_add (line_table, LC_LEAVE, 0, NULL, 0);
+ 
+   return gcc_location;
+ }
+ 
+ /* Get the location of POS inside LINE as a GCC location.  */
+ 
+ location_t
+ a68_get_line_location (LINE_T *line, const char *pos)
+ {
+   location_t loc;
+ 
+   linemap_add (line_table, LC_ENTER, 0, FILENAME (line), NUMBER (line));
+   linemap_line_start (line_table, NUMBER (line), 0);
+   loc = linemap_position_for_column (line_table, pos - STRING (line) + 1);
+   linemap_add (line_table, LC_LEAVE, 0, NULL, 0);
+   return loc;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-postulates.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68-postulates.cc
*** gcc-15.2.0/gcc/algol68/a68-postulates.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-postulates.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,103 ----
+ /* Postulates needed for improving equivalence of modes.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /* Initialise use of postulate-lists.  */
+ 
+ void
+ a68_init_postulates (void)
+ {
+   A68 (top_postulate) = NO_POSTULATE;
+   A68 (top_postulate_list) = NO_POSTULATE;
+ }
+ 
+ /* Make old postulates available for new use.  */
+ 
+ void
+ a68_free_postulate_list (POSTULATE_T *start, POSTULATE_T *stop)
+ {
+   if (start == stop)
+     return;
+ 
+   POSTULATE_T *last = start;
+   for (; NEXT (last) != stop; FORWARD (last))
+     ;
+ 
+   NEXT (last) = A68 (top_postulate_list);
+   A68 (top_postulate_list) = start;
+ }
+ 
+ /* Add postulates to postulate-list.  */
+ 
+ void
+ a68_make_postulate (POSTULATE_T **p, MOID_T *a, MOID_T *b)
+ {
+   POSTULATE_T *new_one;
+ 
+   if (A68 (top_postulate_list) != NO_POSTULATE)
+     {
+       new_one = A68 (top_postulate_list);
+       A68 (top_postulate_list) = A68 (top_postulate_list)->next;
+     }
+   else
+     {
+       new_one = (POSTULATE_T *) ggc_cleared_alloc<POSTULATE_T> ();
+       A68 (new_postulates)++;
+     }
+ 
+   new_one->a = a;
+   new_one->b = b;
+   new_one->next = *p;
+   *p = new_one;
+ }
+ 
+ /* Where postulates are in the list.  */
+ 
+ POSTULATE_T
+ *a68_is_postulated_pair (POSTULATE_T *p, MOID_T *a, MOID_T *b)
+ {
+   for (; p != NO_POSTULATE; p = p->next)
+     {
+       if (p->a == a && p->b == b)
+ 	return p;
+     }
+ 
+   return NO_POSTULATE;
+ }
+ 
+ /* Where postulate is in the list.  */
+ 
+ POSTULATE_T
+ *a68_is_postulated (POSTULATE_T *p, MOID_T *a)
+ {
+   for (; p != NO_POSTULATE; p = p->next)
+     {
+       if (p->a == a)
+ 	return p;
+     }
+ 
+   return NO_POSTULATE;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-pretty-print.h gcc-16.1.0-RC-20260423/gcc/algol68/a68-pretty-print.h
*** gcc-15.2.0/gcc/algol68/a68-pretty-print.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-pretty-print.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,241 ----
+ /* Pretty printers for Algol 68 front-end specific %e tags.
+    Copyright (C) 2026 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 __A68_PRETTY_PRINT__
+ #define __A68_PRETTY_PRINT__
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "pretty-print.h"
+ #include "pretty-print-format-impl.h"
+ #include "pretty-print-markup.h"
+ 
+ struct a68_format_token : public pp_element
+ {
+ public:
+   struct value : public pp_token_custom_data::value
+   {
+     value (a68_format_token &token)
+       : m_token (token)
+     {
+     }
+ 
+     value (const value &other)
+       : m_token (other.m_token)
+     {
+     }
+ 
+     value (value &&other)
+       : m_token (other.m_token)
+     {
+     }
+ 
+     value &operator= (const value &other) = delete;
+     value &operator= (value &&other) = delete;
+     ~value ()
+     {
+     }
+ 
+     void dump (FILE *out) const final override
+     {
+       fprintf (out, "%s", m_token.m_str);
+     }
+ 
+     bool as_standard_tokens (pp_token_list &out) final override
+     {
+       out.push_back<pp_token_text> (label_text::borrow (m_token.m_str));
+       return true;
+     }
+ 
+     a68_format_token &m_token;
+   };
+ 
+   a68_format_token ()
+   {
+     m_str = NULL;
+   }
+ 
+   ~a68_format_token ()
+   {
+     free (m_str);
+   }
+ 
+   void add_to_phase_2 (pp_markup::context &ctxt) final override
+   {
+     auto val_ptr = std::make_unique<value> (*this);
+     ctxt.m_formatted_token_list->push_back<pp_token_custom_data>
+       (std::move (val_ptr));
+   }
+ 
+   char *m_str;
+ };
+ 
+ 
+ struct a68_moid_format_token : public a68_format_token
+ {
+ public:
+   a68_moid_format_token (MOID_T *m)
+   {
+     m_str = xstrdup (a68_moid_to_string (m, MOID_ERROR_WIDTH, NO_NODE));
+   }
+ };
+ 
+ struct a68_opmoid_format_token : public a68_format_token
+ {
+ public:
+   a68_opmoid_format_token (MOID_T *m)
+   {
+     if (m == NO_MOID || m == M_ERROR)
+       m = M_UNDEFINED;
+ 
+     const char *str;
+     if (m == M_VOID)
+       str = (OPTION_STROPPING (&A68_JOB) == UPPER_STROPPING
+ 	     ? "UNION (VOID, ..)"
+ 	     : "union (void, ..)");
+     else if (IS (m, SERIES_MODE))
+       {
+ 	if (PACK (m) != NO_PACK && NEXT (PACK (m)) == NO_PACK)
+ 	  str = a68_moid_to_string (MOID (PACK (m)), MOID_ERROR_WIDTH, NO_NODE);
+ 	else
+ 	  str = a68_moid_to_string (m, MOID_ERROR_WIDTH, NO_NODE);
+       }
+     else
+       str = a68_moid_to_string (m, MOID_ERROR_WIDTH, NO_NODE);
+ 
+     m_str = xstrdup (str);
+   }
+ };
+ 
+ struct a68_attr_format_token : public a68_format_token
+ {
+ public:
+   a68_attr_format_token (enum a68_attribute a)
+   {
+     KEYWORD_T *nt = a68_find_keyword_from_attribute (A68 (top_keyword), a);
+     if (nt != NO_KEYWORD)
+       m_str = xstrdup (a68_strop_keyword (TEXT (nt)));
+     else
+       m_str = xstrdup ("keyword");
+   }
+ };
+ 
+ struct a68_construct_format_token : public a68_format_token
+ {
+ public:
+   a68_construct_format_token (a68_attribute a)
+   {
+     do_attr (a);
+   }
+ 
+   a68_construct_format_token (NODE_T *p)
+   {
+     do_attr (ATTRIBUTE (p));
+   }
+ 
+ private:
+ 
+   void do_attr (a68_attribute a)
+   {
+     const char *nt = a68_attribute_name (a);
+     if (nt != NO_TEXT)
+       m_str = xstrdup (nt);
+     else
+       m_str = xstrdup ("construct");
+   }
+ };
+ 
+ struct a68_symbol_format_token : public a68_format_token
+ {
+ public:
+   a68_symbol_format_token (NODE_T *p)
+   {
+     const char *txt = NSYMBOL (p);
+     char *sym = NCHAR_IN_LINE (p);
+     int n = 0, size = (int) strlen (txt);
+ 
+     if (txt == NO_TEXT)
+       m_str = xstrdup ("symbol");
+     else
+       {
+ 	if (txt[0] != sym[0] || (int) strlen (sym) < size)
+ 	  m_str = xstrdup (txt);
+ 	else
+ 	  {
+ 	    m_str = (char *) xmalloc (size + 1);
+ 	    while (n < size)
+ 	      {
+ 		if (ISPRINT (sym[0]))
+ 		  m_str[n] = sym[0];
+ 		if (TOLOWER (txt[0]) == TOLOWER (sym[0]))
+ 		  {
+ 		    txt++;
+ 		    n++;
+ 		  }
+ 		sym++;
+ 	      }
+ 	    m_str[n] = '\0';
+ 	  }
+       }
+   }
+ };
+ 
+ struct a68_sort_format_token : public a68_format_token
+ {
+ public:
+   a68_sort_format_token (int s)
+   {
+     const char *cstr;
+     switch (s)
+       {
+       case NO_SORT: cstr = "this"; break;
+       case SOFT: cstr = "a soft"; break;
+       case WEAK: cstr = "a weak"; break;
+       case MEEK: cstr = "a meek"; break;
+       case FIRM: cstr = "a firm"; break;
+       case STRONG: cstr = "a strong"; break;
+       default:
+ 	gcc_unreachable ();
+       }
+     m_str = xstrdup (cstr);
+   }
+ };
+ 
+ 
+ struct a68_line_format_token : public a68_format_token
+ {
+ public:
+   a68_line_format_token (LINE_T *l, NODE_T *n)
+   {
+     gcc_assert (l != NO_LINE);
+     if (NUMBER (l) == 0)
+       m_str = xstrdup ("in standard environment");
+     else if (n != NO_NODE && NUMBER (l) == LINE_NUMBER (n))
+       m_str = xstrdup ("in this line");
+     else
+       {
+ 	m_str = (char *) xmalloc (18);
+ 	if (snprintf (m_str, 18, "in line %d", NUMBER (l)) < 0)
+ 	  gcc_unreachable ();
+       }
+   }
+ };
+ 
+ #endif /* ! __A68_PRETTY_PRINT__ */
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-tree.def gcc-16.1.0-RC-20260423/gcc/algol68/a68-tree.def
*** gcc-15.2.0/gcc/algol68/a68-tree.def	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-tree.def	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,24 ----
+ /* This file contains the definitions and documentation for the
+    additional tree codes used in the GNU Algol 68 compiler (see
+    tree.def for the standard codes).
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* Tree nodes used in the Algol68 frontend only.  */
+ 
+ /*
+ Local variables:
+ mode:c
+ End:
+ */
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-types.h gcc-16.1.0-RC-20260423/gcc/algol68/a68-types.h
*** gcc-15.2.0/gcc/algol68/a68-types.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-types.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1156 ----
+ /* Type definitions for the ALGOL 68 parser.
+    Copyright (C) 2001-2023 J. Marcel van der Veer.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    Original implementation by J. Marcel van der Veer.
+    Adapted for GCC by Jose E. Marchesi.
+ 
+    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 __A68_TYPES_H__
+ #define __A68_TYPES_H__
+ 
+ #include "config.h"
+ #include "system.h"
+ 
+ #include <setjmp.h>
+ #include "vec.h"
+ 
+ /* Enumerations.  */
+ 
+ enum a68_stropping
+ {
+   UPPER_STROPPING,
+   SUPPER_STROPPING
+ };
+ 
+ enum a68_attribute
+ {
+   STOP = 0,
+ #define A68_ATTR(ATTR,DESCR) ATTR,
+ #include "a68-parser-attrs.def"
+ #undef A68_ATTR
+ };
+ 
+ enum a68_tree_index
+ {
+   /* Type trees.  */
+   ATI_VOID_TYPE,
+   ATI_BOOL_TYPE,
+   ATI_CHAR_TYPE,
+   ATI_SHORT_SHORT_BITS_TYPE,
+   ATI_SHORT_BITS_TYPE,
+   ATI_BITS_TYPE,
+   ATI_LONG_BITS_TYPE,
+   ATI_LONG_LONG_BITS_TYPE,
+   ATI_BYTES_TYPE,
+   ATI_LONG_BYTES_TYPE,
+   ATI_SHORT_SHORT_INT_TYPE,
+   ATI_SHORT_INT_TYPE,
+   ATI_INT_TYPE,
+   ATI_LONG_INT_TYPE,
+   ATI_LONG_LONG_INT_TYPE,
+   ATI_REAL_TYPE,
+   ATI_LONG_REAL_TYPE,
+   ATI_LONG_LONG_REAL_TYPE,
+   /* Sentinel.  */
+   ATI_MAX
+ };
+ 
+ /*
+  * Type definitions.
+  */
+ 
+ typedef char BUFFER[BUFFER_SIZE + 1];
+ 
+ struct MODES_T;
+ struct NODE_T;
+ struct MODE_CACHE_T;
+ struct MOID_T;
+ struct GINFO_T;
+ struct KEYWORD_T;
+ struct LINE_T;
+ struct NODE_INFO_T;
+ struct PACK_T;
+ struct SOID_T;
+ struct TABLE_T;
+ struct TAG_T;
+ struct TOKEN_T;
+ struct ORIGIN_T;
+ struct POSTULATE_T;
+ struct OPTIONS_T;
+ struct PARSER_T;
+ struct MODULE_T;
+ struct EXTRACT_T;
+ struct MOIF_T;
+ struct A68_T;
+ 
+ constexpr GINFO_T *NO_GINFO = nullptr;
+ constexpr KEYWORD_T *NO_KEYWORD = nullptr;
+ constexpr NODE_INFO_T *NO_NINFO = nullptr;
+ constexpr void (*NO_NOTE) (NODE_T *) = nullptr;
+ constexpr PACK_T *NO_PACK = nullptr;
+ constexpr SOID_T *NO_SOID = nullptr;
+ constexpr char *NO_TEXT = nullptr;
+ constexpr bool *NO_TICK = nullptr;
+ constexpr TOKEN_T *NO_TOKEN = nullptr;
+ #define NO_VAR nullptr
+ 
+ /* A STATUS_MASK_T is a word of flags denoting states.
+ 
+    Status masks are used in parse tree nodes (NODE_T) and in entries in the
+    symbol table (TAG_T).
+ 
+ 
+    SCOPE_ERROR_MASK is used by the static scope checker in order to avoid
+    emitting duplicated scope warnings.  */
+ 
+ typedef uint32_t STATUS_MASK_T;
+ 
+ #define STATUS_CLEAR(p, q) {STATUS (p) &= (~(q));}
+ #define STATUS_SET(p, q) {STATUS (p) |= (q);}
+ #define STATUS_TEST(p, q) ((STATUS (p) & (q)) != (uint32_t) 0)
+ 
+ #define NULL_MASK                 ((STATUS_MASK_T) 0x00000000)
+ #define SCOPE_ERROR_MASK          ((STATUS_MASK_T) 0x00000200)
+ 
+ /* Structure containing the lowering context which is propagated while calling
+    the lowering handlers.  */
+ 
+ struct LOW_CTX_T
+ {
+   /* The common declarer in a declaration list.  */
+   NODE_T **declarer;
+   /* The defining identifier of the procedure declaration being processed, or
+      NO_NODE.  This is set by a68_lower_procedure_declaration and used by
+      a68_lower_routine_text.  */
+   NODE_T *proc_decl_identifier;
+   /* If proc_decl_identifier is no NO_NODE, this denotes whether the
+      declaration being processed is of an operator.  */
+   bool proc_decl_operator;
+   /* Name of current module definition, or NULL.  */
+   const char *module_definition_name;
+   /* For debugging purposes.  */
+   int level;
+ };
+ 
+ typedef struct LOW_CTX_T LOW_CTX_T;
+ 
+ /* Type of the lowerer routines defined in a68-low-prelude.cc.  */
+ typedef tree (*LOWERER_T) (struct NODE_T *, struct LOW_CTX_T);
+ 
+ #define NO_LOWERER NULL
+ #define LOWERER_UNIMPL a68_lower_unimplemented
+ 
+ struct GTY((chain_next ("%h.more"), chain_prev ("%h.less"))) KEYWORD_T
+ {
+   enum a68_attribute attribute;
+   const char *text;
+   KEYWORD_T *less, *more;
+ };
+ 
+ /* A MOID_T represents a mode indicator.
+ 
+    NUMBER is an unique number assigned to the moid when it gets created.  A
+    renumber_moids function exists in a68-parser-modes.cc but it dosn't seem to
+    be used at all.
+ 
+    ATTRIBUTE characterizes the kind of mode and is one of the values defined in
+    a68-parser-attrs.def.  Valid values are:
+ 
+      PROC_SYMBOL for procecure modes.
+      ROWS_SYMBOL for row modes.
+      REF_SYMBOL for reference modes.
+      FLEX_SYMBOL for flexible reference modes.
+      STRUCT_SYMBOL for struct modes.
+      UNION_SYMBOL for union modes.
+      IN_TYPE_MODE for XXX modes.
+      OUT_TYPE_MODE for XXX modes.
+      SERIES_MODE for XXX modes.
+      INDICANT for XXX modes.
+      MODULE_INDICANT for XXX modules.
+      STANDARD for standard modes.
+ 
+    NODE is a parse tree node XXX.
+ 
+    HAS_ROWS is true if the mode contains rows somewhere in its internal
+    structure.
+ 
+    HAS_REFS is true if the mode contains refs somewhere in its internal
+    structure.
+ 
+    The interpretation of SUB depends on the kind of mode:
+    - For REF modes it is the referred mode.
+    - For FLEX modes it is the referred mode.
+    - For ROW modes it is the mode of the elements.
+    - For PROC modes it is the mode of the value yielded by the procedure.
+ 
+    The interpretation of DIM depends on the kind of mode:
+    - In VOID_SYMBOL, STANDARD or INDICANT mode, if DIM is positive it
+      specifies the size of the longsety of the mode.  If DIM is negative then
+      abs (DIM) is the size of hte shortsety of the mode.
+    - In ROW modes, DIM is the number of dimensions.
+    - In STRUCT modes, DIM is the number of fields.
+    - In UNION modes, DIM is the number of united modes.
+    - In PROC_SYMBOL modes, DIM is the number of arguments.
+    - In SERIES_MODE and STOWED_MODE modes, DIM is the number modes.
+ 
+    SLICE is the mode resulting from slicing a value of this mode.  For example,
+    slicing a M_ROW_INT yields a M_INT.
+ 
+    EQUIVALENT_MODE (referred as EQUIVALENT), for INDICANTs it is its declarer
+    mode (in MODE FOO = BAR FOO is the indicant and BAR is its declarer) and for
+    STANDARD modes it may be a mode that reflects its structure.
+ 
+    USE is used by the is_well_formed function, which detects whether a mode is
+    well formed, i.e. that the mode doesn't refer to itself nor it relates to
+    void.
+ 
+    DEFLEXED_MODE is like the current mode, but without FLEX.  Only defined for
+    modes that have a SUB, i.e. REF, FLEX, ROW and PROC.  In other modes this is
+    NO_MODE.
+ 
+    For refs to structs, rows or flex, NAME points to the corresponding name
+    mode.  For example, for a mode REF STRUCT (INT i, REAL x), NAME points to a
+    mode STRUCT (REF INT i, REF REAL x).  This is used for selections.
+ 
+    For rows of structs, rows or flex, MULTIPLE points to the corresponding row
+    mode.  For example, for a mode [] STRUCT (INT i, REAL x), MULTIPLE points to
+    a mode STRUCT ([]INT i, []REAL x).  This is used for selections.
+ 
+    PACK is a pack of moids.  For a STOWED_MODE, it contains the modes of the
+    arguments of a procedure, or the modes of the units in a collateral clause.
+    For a SERIES_MODE, it contains the modes of the completing units in a serial
+    clause, the alternatives in a conformity clause, the alternatives in a
+    CONDITIONAL_CLAUSE, the alternatives in a CASE_CLAUSE,
+ 
+    CTYPE is a GCC GENERIC tree corresponding to this mode.  It is computed and
+    installed by a68_lower_moid.
+ 
+    ASM_LABEL is an assembly label used by a68_asm_output_mode.  */
+ 
+ #define NO_MOID ((MOID_T *) 0)
+ 
+ struct GTY((chain_next ("%h.next"))) MOID_T
+ {
+   int number;
+   int attribute;
+   int dim;
+   bool has_rows, has_refs, use, portable, derivate;
+   NODE_T *node;
+   PACK_T *pack;
+   MOID_T *sub, *equivalent_mode, *slice, *deflexed_mode, *name, *multiple_mode, *next, *rowed, *trim;
+   tree ctype;
+   const char *asm_label;
+ };
+ 
+ /* A MODES_T struct contains a collection of particular pre-defined modes.
+ 
+    These modes are initialized by either stand_moids or make_special_mode.
+    They are commonly referred using the corresponding M_* macros.
+ 
+    ROWS is a mode to which any ROW mode can be strongly coerced.  It is used as
+    the mode of the second operand of the ELEMS, LWB and UPB operators.
+ 
+    HIP is the mode of NIL.  */
+ 
+ struct MODES_T
+ {
+   MOID_T *BITS, *BOOL, *BYTES, *CHANNEL, *CHAR, *COLLITEM, *COMPL, *COMPLEX,
+     *C_STRING, *ERROR, *FILE, *FORMAT, *HEX_NUMBER, *HIP, *INT, *LONG_BITS, *LONG_BYTES,
+     *LONG_COMPL, *LONG_COMPLEX, *LONG_INT, *LONG_LONG_BITS, *LONG_LONG_COMPL,
+     *LONG_LONG_COMPLEX, *LONG_LONG_INT, *LONG_LONG_REAL, *LONG_REAL, *NUMBER,
+     *PROC_REAL_REAL, *PROC_LONG_REAL_LONG_REAL, *PROC_REF_FILE_BOOL, *PROC_REF_FILE_VOID, *PROC_ROW_CHAR,
+     *PROC_STRING, *PROC_VOID, *REAL, *REF_BITS, *REF_BOOL, *REF_BYTES,
+     *REF_CHAR, *REF_COMPL, *REF_COMPLEX, *REF_FILE, *REF_INT,
+     *REF_LONG_BITS, *REF_LONG_BYTES, *REF_LONG_COMPL, *REF_LONG_COMPLEX,
+     *REF_LONG_INT, *REF_LONG_LONG_BITS, *REF_LONG_LONG_COMPL,
+     *REF_LONG_LONG_COMPLEX, *REF_LONG_LONG_INT, *REF_LONG_LONG_REAL, *REF_LONG_REAL,
+     *REF_REAL, *REF_REF_FILE, *REF_ROW_CHAR, *REF_ROW_COMPLEX, *REF_ROW_INT,
+     *REF_ROW_REAL, *REF_ROW_ROW_COMPLEX, *REF_ROW_ROW_REAL,
+     *REF_SHORT_BITS, *REF_SHORT_SHORT_BITS, *REF_SHORT_INT,
+     *REF_SHORT_SHORT_INT, *REF_STRING,
+     *ROW_BITS, *ROW_BOOL, *ROW_CHAR, *ROW_COMPLEX, *ROW_INT, *ROW_LONG_BITS, *ROW_LONG_LONG_BITS,
+     *ROW_REAL, *ROW_ROW_CHAR, *ROW_ROW_COMPLEX, *ROW_ROW_REAL, *ROWS, *ROW_SIMPLIN, *ROW_SIMPLOUT,
+     *ROW_STRING, *SEMA, *SHORT_BITS, *SHORT_SHORT_BITS, *SHORT_INT, *SHORT_SHORT_INT,
+     *SIMPLIN, *SIMPLOUT, *STRING, *FLEX_ROW_CHAR,
+     *FLEX_ROW_BOOL, *UNDEFINED, *VACUUM, *VOID;
+ };
+ 
+ /* The OPTIONS_T structure record which front-end options have been activated.
+    Each option OPTION has a corresponding GCC -f[no-]a68-OPTION command-line
+    switch that can be used to activate or deactivate it.
+ 
+    STROPPING indicates the stropping regime in use.  It can be UPPER_STROPPING
+    or SUPPER_STROPPING.
+ 
+    BRACKETS indicates whether [ .. ] and { .. } are equivalent to ( .. ).
+ 
+    STRICT indicates that no ALGOL 68 extension is allowed.
+ 
+    ASSERT indicates whether to generate code for assertions.
+ 
+    BOUNDS_CHECKING indicates whether to perform array bound checking at
+    run-time.
+ 
+    NIL_CHECKING indicates whether to check for NIL when dereferencing at
+    run-time.  */
+ 
+ struct GTY(()) OPTIONS_T
+ {
+   enum a68_stropping stropping;
+   bool brackets;
+   bool strict;
+   bool assert;
+   bool bounds_checking;
+   bool nil_checking;
+ };
+ 
+ /* The access class static property of a stored value determines how the value
+    can be reached at run-time.  It is used by the lowering pass in order to
+    minimize copies at run-time.
+ 
+    CONSTANT is for constant literals.  At run-time these literals will either
+    reside in operand instructions or in space allocated in CONSTAB%.
+ 
+    DIRIDEN (direct identifier) means that the value is stored on IDST% at some
+    static address.  This is the access class used for values ascribed to
+    identifiers as long as the block in hich they are declared has not been
+    left.  It is also used for values resulting from actions such as the
+    selection from a value possessed by an identifier or the dereferencing fo a
+    name corespodning to a variable.
+ 
+    VARIDEN (variable identifier) is used for values which are names/variables.
+    The name is stored on IDST%.  The static elaboration of the dereferencing of
+    a variable with access VARIDEN results in a value with access DIRIDEN, not
+    requiring any run-time action.  Same happens with selections of variables of
+    access VARIDEN.
+ 
+    INDIDEN (indirect identifier) is used for values that are stored in a memory
+    location in IDST%.  The static elaboration of a dereferencing applied to a
+    value of access DIRIDEN.
+ 
+    DIRWOST (direct working stack) is very much like DIRIDEN, except that the
+    value is stored in WOST% rathern than in IDST%.  This access is used for the
+    result of an action when this result does not preexist in memory and hence
+    has to be constructed in WOST%.
+ 
+    INDWOST (indirect working stack) is very similar to INDIDEN.  Such an access
+    can be obtained for example through the static elaboration of the
+    dereferencing of a name the access of which is DIRWOST.
+ 
+    NIHIL is used to characterize the absence of value.  This is used in the
+    static elaboration of a jump, a voiding and a call ith a void result.
+ 
+    Note that in all these classes we assume as run-time the intermediate
+    language level we are lowering to, i.e. GENERIC.  A DIRIDEN value, for
+    example, can very well stored in a register depending on further compiler
+    optimizations.  */
+ 
+ #define ACCESS_NIHIL 0
+ #define ACCESS_CONSTANT 1
+ #define ACCESS_DIRIDEN 2
+ #define ACCESS_INDIDEN 3
+ #define ACCESS_DIRWOST 4
+ 
+ /* A NODE_T is a node in the A68 Syntax tree produced by the lexer-scanner and
+    later expanded by the Mailloux parser.
+ 
+    NUMBER identifies the node uniquely in the syntax tree.
+ 
+    ATTRIBUTE is a code that specifies the kind of entity denoted by the node.
+    Valid attributes are defined in the enumeration a68_attribute above in
+    this file.  Examples of attributes are ELIF_PART, GOTO_SYMBOL or BOLD_TAG.
+ 
+    ANNOTATION provides a way to annotate a node with a reference to another
+    node attribute.  This is currently used by the mode checker to annotate
+    indexer nodes as slicer or as trimmers.
+ 
+    TYPE (accessed as MOID) is either NO_MOID if the entity denoted by the node
+    doesn't have a mode, or a suitable MOID_T reflecting the mode of the entity.
+    This attribute is calculated and set in all the nodes of the tree by the
+    mode collection and checker pass implemented by make_moid_list.
+ 
+    INFO contains additional attributes of the node.  See NODE_INFO_T below.
+ 
+    NEXT, PREVIOUS and SUB are links to other tree nodes.  They are used to link
+    the syntax tree structure from the top:
+ 
+         TOP <-> N <-> N <-> ...
+                 |                      < is PREVIOUS
+ 		N <-> N <-> ...        > is NEXT
+                       |                | is SUB
+                       N <-> ...
+ 
+    SEQUENCE is a link to another tree node.  It is used by the tax collector
+    (symbol table builder) in order to handle DO .. OD ranges.
+ 
+    NEST is a link to another tree node, which is the NEST for the current node.
+    It is set by the tax collector (symbol table builder) and it is used for
+    diagnostics.
+ 
+    PACK (accessed as NODE_PACK) is either NO_PACK or an instance of the PACK_T
+    structure defined below.  It is used by the modes checker.
+ 
+    STATUS is a mask of flags, used by several passes that handle nodes.  Valid status flags are:
+ 
+    SYMBOL_TABLE (accessed as TABLE) is either NO_TABLE or a TABLE_T containing
+    a symbol table introduced by the entity denoted by the tree node.  These
+    nodes are the ones introducing ranges: BEGIN, DO, etc.
+ 
+    NON_LOCAL is either NO_TABLE, if the environ established by the node is
+    local, or a pointer to a TABLE_T identifying the non-local environment
+    associated with the tree node.  It is set by the static scope checker.  See
+    3.2.2 and 5.2.3.2.b in the report for its application in the handling of
+    local generators in serial clauses.
+ 
+    TAG (accessed as TAX) is either NO_TAG or a TAG_T used to bind identifier
+    nodes, routine texts and other indicants to their corresponding entry in a
+    symbol table.  This is set by the taxes collector.
+ 
+    The following fields are static properties managed an used in the lowering
+    pass.
+ 
+    ORIGIN is a static property that describes the history of the entity denoted
+    by the node.  This is only used in nodes denoting values.
+ 
+    DYNAMIC_STACK_ALLOCS is a flag used in serial clause nodes.  It determines
+    whether the elaboration of the phrases in the serial clause may involve
+    dynamic stack allocation.  This is used by the lower pass, along with
+    NON_LOCAL above, in order to properly manage the stack pointer while
+    lowering these clauses.
+ 
+    PUBLICIZED is true for DEFINING_OPERATOR, DEFINING_IDENTIFIER and
+    DEFINING_INDICANT nodes that appear in declarations marked with PUB.
+ 
+    CDECL is a GCC GENERIC tree corresponding to a DECL_FIELD for FIELD
+    nodes.
+ 
+    NEGATED is used to mark DENOTATION nodes as being negated.  */
+ 
+ struct GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) NODE_T
+ {
+   GINFO_T *genie;
+   int number;
+   enum a68_attribute attribute;
+   enum a68_attribute annotation;
+   MOID_T *type;
+   NODE_INFO_T *info;
+   NODE_T *next, *previous, *sub;
+   NODE_T *sequence, *nest;
+   PACK_T *pack;
+   STATUS_MASK_T status;
+   TABLE_T *symbol_table;
+   TABLE_T *non_local;
+   TAG_T *tag;
+   tree cdecl;
+   bool dynamic_stack_allocs;
+   bool publicized;
+   bool negated;
+ };
+ 
+ #define NO_NODE ((NODE_T *) 0)
+ 
+ /* A NODE_INFO_T struct contains additional attributes of a NODE_T parse tree
+    node.
+ 
+    PROCEDURE_LEVEL indicates how lexically deep the tree node is in terms of
+    routine texts.  This attribute is set for all the nodes in the syntax tree
+    by the taxes collector and originally used by ALGOL 68 Genie's monitor.
+    Even if at the moment this is not used by GCC, this field and the
+    correponding machinery is still here in case it is useful in the future.
+ 
+    PRIORITY (accessed as PRIO) is used by operator tree nodes and specifies the
+    priority of the operator denoted by the node.  This is set tree wide by the
+    bottom-up parser.
+ 
+    SYMBOL (accessed indirectly as NSYMBOL) contains the symbol value, a string,
+    corresponding to the tree node.  This is used by tree nodes representing
+    tokens such as bold tags, keywords and identifiers.  The symbols are set by
+    the parser-scanner.
+ 
+    LINE is a pointer to the source line from which the tree node originates.
+    This is set for tree nodes representing tokens and is set by the
+    parser-scanner.  */
+ 
+ struct GTY(()) NODE_INFO_T
+ {
+   int procedure_level;
+   int priority;
+   char * GTY((skip)) char_in_line;
+   int comment_type;
+   char * GTY((skip)) comment;
+   LINE_T *comment_line;
+   char * GTY((skip)) comment_char_in_line;
+   int pragmat_type;
+   char * GTY((skip)) pragmat;
+   LINE_T *pragmat_line;
+   char * GTY((skip)) pragmat_char_in_line;
+   const char *symbol;
+   LINE_T *line;
+ };
+ 
+ struct GTY(()) GINFO_T
+ {
+   MOID_T *partial_proc, *partial_locale;
+ };
+ 
+ struct GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) PACK_T
+ {
+   MOID_T *type;
+   const char *text;
+   NODE_T *node;
+   PACK_T *next, *previous;
+ };
+ 
+ /* Postulates.  */
+ 
+ struct GTY((chain_next ("%h.next"))) POSTULATE_T
+ {
+   MOID_T *a, *b;
+   POSTULATE_T *next;
+ };
+ 
+ #define NO_POSTULATE ((POSTULATE_T *) 0)
+ 
+ struct GTY((chain_next ("%h.next"))) SOID_T
+ {
+   int attribute, sort, cast;
+   MOID_T *type;
+   NODE_T *node;
+   SOID_T *next;
+ };
+ 
+ struct GTY((chain_next ("%h.next"))) LINE_T
+ {
+   char marker[6];
+   char * GTY((skip)) string;
+   const char *filename;
+   int number;
+   LINE_T *next, *previous;
+ };
+ #define NO_LINE ((LINE_T *) 0)
+ 
+ /* Symbol table.
+ 
+    PUBLIC_RANGE is true in ranges whose declarations may be made accessible to
+    other compilation units.  decl trees lowered for declarations in public
+    ranges will be put in the top-level block.  This is used for top-level
+    module declarations.  */
+ 
+ struct GTY(()) TABLE_T
+ {
+   int num, level, nest, attribute;
+   bool initialise_frame, initialise_anon, proc_ops, public_range;
+   TABLE_T *previous, *outer;
+   TAG_T *identifiers, *operators, *modules, *priority, *indicants, *labels, *anonymous;
+   NODE_T *jump_to, *sequence;
+ };
+ #define NO_TABLE ((TABLE_T *) 0)
+ 
+ /* A TAG_T structure denotes an entry in the symbol table.  Each entry
+    corresponds to an identity.
+ 
+    TAX: TAG; TAB; TAD; TAM;
+ 
+    TYPE is the mode of the entry.
+ 
+    NODE is the defining identifier associated to the declaration.
+ 
+    SCOPE is the lexical depth of the tag.  Zero corresponds to the primal
+    scope.  It is set by the static scope checker.
+ 
+    SCOPE_ASSIGNED determines whether a SCOPE has been actually assigned to the
+    tag.  It is set by the static scope checker.  The entities which get
+    assigned scopes are identities of format texts and routine texts.
+ 
+    PORTABLE determines whether the construction associated with the tag is
+    Algol 68 or some extension.
+ 
+    VARIABLE is set when the defining identifier in NODE is defined in a
+    variable declaration, as opposed to an identity declaration.  This is set by
+    extract_variables and is used by the lowering pass.
+ 
+    HEAP is used for defining identifier in NODE is defined in a variable
+    declaration.  It is HEAP_SYMBOL or LOC_SYMBOL.
+ 
+    IS_RECURSIVE is set for mode indicants whose definition is recursive,
+    i.e. they appear in actual declarers within its own definition.
+ 
+    PUBLICIZED is set for tags that are marked as public and therefore shall be
+    exported as part of a module interface.
+ 
+    ASCRIBED_ROUTINE_TEXT is set when the defining identifier is ascribed a
+    routine-text in an identity declaration.
+ 
+    IN_PROC is set when the defining identifier has been set in a
+    proc-identity-declaration or in a brief-op-declaration.  These declarations
+    are optimized in a similar way than variable declarations in order to avoid
+    indirect addressing.
+ 
+    NEST_PROC is set when the defining identifier has been set in an
+    identity-declaration of a proc mode with a formal hole as actual parameter.
+    These declarations are optimized in a similar way than variable declarations
+    in order to avoid indirect addressing.
+ 
+    YOUNGEST_ENVIRON is used when NODE is either a ROUTINE_TEXT or a
+    FORMAT_TEXT, and contains the youngest (higher) lexical level of any object
+    directly declared in the routine or format body.  This is filled in and used
+    by the scope checker.
+ 
+    TREE_DECL is the GENERIC declaration for the definition of this symbol.
+    This is set and used by the lower pass.  For mode indicants, it contains a
+    function that generates a pointer to the given mode, and is used by
+    a68_low_generator to handle recursive modes.
+ 
+    MOIF is a list of module interfaces.  This is used in ACCESS_CLAUSE nodes.
+ 
+    EXTERN_SYMBOL is a string with the symbol that was obtained from an imported
+    module declaration.  This is only used in entries where MOIF is not NO_MOIF.
+ 
+    LOWERER is a lowering routine defined in a68-low-prelude.cc.  These are used
+    in taxes that denote some pre-defined operator.  */
+ 
+ struct GTY((chain_next ("%h.next"))) TAG_T
+ {
+   TABLE_T *symbol_table;
+   MOID_T *type;
+   NODE_T *node, *unit;
+   const char *value;
+   bool scope_assigned, use, in_proc, nest_proc, loc_assigned, portable, variable;
+   bool ascribed_routine_text, is_recursive, publicized;
+   int priority, heap, scope, youngest_environ, number;
+   STATUS_MASK_T status;
+   tree tree_decl;
+   MOIF_T *moif;
+   LOWERER_T lowerer;
+   TAG_T *next, *body;
+   const char *extern_symbol;
+ };
+ #define NO_TAG ((TAG_T *) 0)
+ 
+ struct GTY((chain_next ("%h.more"), chain_prev ("%h.less"))) TOKEN_T
+ {
+   const char *text;
+   TOKEN_T *less, *more;
+ };
+ #define NO_TOKEN ((TOKEN_T *) 0)
+ 
+ struct GTY(()) MODULE_T
+ {
+   bool tree_listing_safe, cross_reference_safe;
+   int error_count, warning_count, source_scan;
+   LINE_T *top_line;
+   MOID_T *top_moid, *standenv_moid;
+   MOIF_T *top_moif;
+   NODE_T *top_node;
+   OPTIONS_T options;
+   FILE * GTY ((skip)) file_source_fd;
+   const char *file_source_name;
+   struct
+   {
+     LINE_T *save_l;
+     char * GTY((skip)) save_s, GTY((skip)) save_c;
+   } scan_state;
+ };
+ 
+ /* Module interface extracts.
+ 
+    KIND is the kind of extract.  One of the GA68_EXTRACT_* codes defined in
+    a68-exports.cc.
+ 
+    SYMBOL is a string with the symbol name for the entity represented by the
+    extract.  It is mangled.
+ 
+    MODE applies to identifier, operator and indicatione extracts.
+ 
+    PRIORITY is the priority number in a priority extract.
+ 
+    VARIABLE applies to GA68_EXTRACT_IDEN and GA68_EXTRACT_OPER extracts, and
+    indicates whether the exported symbol was declared via a variable
+    declaration. These decls are optimized and don't require indirect
+    addressing.  This is compiler-specific and part of mdextra.
+ 
+    IN_PROC applies to GA68_EXTRACT_IDEN and GA68_EXTRACT_OPER extracts.  If
+    set, the exported symbol shall not be indirected.  This is compiler-specific
+    and part of mdextra.  */
+ 
+ struct GTY(()) EXTRACT_T
+ {
+   unsigned int kind;
+   const char *symbol;
+   MOID_T *mode;
+   int priority;
+   bool variable, in_proc;
+ };
+ 
+ /* Module interfaces.
+ 
+    VERSION is the version of the exports format to report in the encoded data.
+ 
+    NAME is the name of the module as it is accessed at the source level, which
+    corresponds to a bold word.
+ 
+    PRELUDE and POSTLUDE are mangled symbols corresponding to the entry points
+    of the module's prelude and postlude.
+ 
+    MODES is a vector of modes which conform the modes table of the module
+    interface.
+ 
+    MODULES is a vector of TAGs for module extracts.
+    INDICANTS is a vector of TAGs for mode extracts.
+    IDENTIFIERS is a vector of TAGs for identifier extracts.
+    PRIOS is a vector of TAGs for operator priorities.  */
+ 
+ #define NO_MOIF ((MOIF_T *) 0)
+ 
+ struct GTY((chain_next ("%h.next"))) MOIF_T
+ {
+   unsigned int version;
+   const char *name;
+   const char *prelude;
+   const char *postlude;
+   vec<MOID_T*,va_gc> *modes;
+   vec<EXTRACT_T*,va_gc> *modules;
+   vec<EXTRACT_T*,va_gc> *indicants;
+   vec<EXTRACT_T*,va_gc> *identifiers;
+   vec<EXTRACT_T*,va_gc> *prios;
+   vec<EXTRACT_T*,va_gc> *operators;
+   MOIF_T *next;
+ };
+ 
+ struct MODE_CACHE_T
+ {
+   MOID_T *proc_bool;
+   MOID_T *proc_char;
+   MOID_T *proc_complex_complex;
+   MOID_T *proc_int;
+   MOID_T *proc_int_int;
+   MOID_T *proc_int_int_real;
+   MOID_T *proc_int_real;
+   MOID_T *proc_int_real_real;
+   MOID_T *proc_int_real_real_real;
+   MOID_T *proc_real;
+   MOID_T *proc_real_int_real;
+   MOID_T *proc_real_real;
+   MOID_T *proc_real_real_int_real;
+   MOID_T *proc_real_real_real;
+   MOID_T *proc_real_real_real_int;
+   MOID_T *proc_real_real_real_real;
+   MOID_T *proc_real_real_real_real_real;
+   MOID_T *proc_real_real_real_real_real_real;
+   MOID_T *proc_real_ref_real_ref_int_void;
+   MOID_T *proc_void;
+ };
+ 
+ /* A PARSER_T struct contains all the global state that is kept by the parser.
+    This information is managed and used exclusively by a68_parser.
+ 
+    ERROR_TAG is a tag that signifies an error.  It is initialized in
+    a68_parser.
+ 
+    STOP_SCANNER is a control flag used exclusively by the main loop in
+    tokenise_source, which is recursive.
+ 
+    SCAN_BUF is a scratch buffer used by the scanner for several purposes.  This
+    buffer is known to be big enough to hold any substring from the source file.
+    It is initialized in read_source_file.
+ 
+    MAX_SCAN_BUF_LENGTH is the useable size of SCAN_BUF.  This is used by the
+    scanner to grow SCAN_BUF as it includes other files.
+ 
+    TAG_NUMBER is a global counter used by the parser to assign an unique number
+    to each tag it creates.  It is used in a68_new_tag.
+ 
+    BOTTOM_UP_CRASH_EXIT and TOP_DOWN_CRASH_EXIT are used to longjmp from deeply
+    nested errors in the bottom-up and top-down parsers respectively.  */
+ 
+ struct GTY(()) PARSER_T
+ {
+   TAG_T *error_tag;
+   bool stop_scanner;
+   size_t max_scan_buf_length;
+   char * GTY((skip)) scan_buf;
+   int tag_number;
+   jmp_buf GTY((skip)) bottom_up_crash_exit;
+   jmp_buf GTY((skip)) top_down_crash_exit;
+ };
+ 
+ /* A A68_T struct contains the global state used by the ALGOL 68 front-end.
+ 
+    OUTPUT_LINE is used by the diagnostics machinery in order to write out
+    message lines.
+ 
+    EDIT_LINE is used as a scratch buffer for composing error messages and the
+    like.
+ 
+    INPUT_LINE is used by the original ALGOL 68 Genie to read lines from the
+    tty.  But in this parser it is used uninitialized (!) by the
+    a68_phrase_to_text routine in the top-down parser.  XXX.
+ 
+    NEW_NODES is a global counter that keeps the number of parse tree nodes
+    created.  It is currently not used for anything, but still updated in
+    a68_new_node.
+ 
+    NEW_MODES is a global counter that keeps the number of moids created.  It is
+    currently not used for anything, but still updated in a68_new_moid.
+ 
+    NEW_POSTULATES is a global counter that keeps the number of postulates
+    created by the front-end.  It is currently not used for anything, but still
+    updated in a68_make_postulate.
+ 
+    NEW_NODE_INFOS is a global counter that keeps the number of NODE_INFO_T
+    structures created by the front-end.  It is currently not used for anything,
+    but still updated in a68_new_node_info.
+ 
+    NEW_GENIE_INFOS is a global counter that keeps the number of GINFO_T
+    structures created by the front-end.  It is currently no tused for anything,
+    but still updated in a68_new_genie_info.
+ 
+    SYMBOL_TABLE_COUNT is a global counter used by the parser.  XXX move to
+    parser global state when syntax tree finalisation is moved to a68_parser?
+ 
+    MODE_COUNT is the number of modes registered in the global modes table. XXX
+    which table.
+ 
+    TOP_KEYWORD is the top of the list of keywords known to the font-end.
+ 
+    MODE_CACHE XXX.
+ 
+    A68_MODES (accessed as MODE) is a collection of particular pre-defined
+    modes.  These modes are initialized by stand_moids.
+ 
+    JOB (accessed as A68_JOB) is the instance of MODULE_T with the global data
+    corresponding to the source file being compiled.
+ 
+    OPTIONS is the set of options currently set for the front-end.
+ 
+    TOP_POSTULATE and TOP_POSTULATE_LIST are lists of postulates maintained by
+    the front-end.
+ 
+    POSTULATES is a collection of postulates used by the moid pretty printer.
+ 
+    TOP_SOID_LIST is used by the moid machinery.
+ 
+    STANDENV XXX.
+ 
+    TOP_TOKEN XXX.
+ 
+    INCLUDE_PATHS is the list of paths where we search for files to include.
+    Directories are added to the list at the option handling language hook.
+    The list is searched in FIFO order.
+ 
+    IMPORT_PATHS is the list of paths where we search for module exports data.
+    Directories are added to the list at the option handling language hook.  The
+    list is searched in FIFO order.
+ 
+    GLOBAL_TREES is an array with global types like a68_void_type and
+    a68_long_int_type.  It is indexed by an enum a68_tree_index.
+ 
+    MODULE_DEFINITION_DECLS is the global list of the tree decls corresponding
+    to the module definition being compiled.  Note that currently we only allow
+    top-level modules, so there is no nesting.  This is part of the context of
+    the lowering pass, and these declarations are collected by the lowering
+    handlers and finally compiled down to assembler in lower_module_declaration.
+    It cannot go in LOW_CTX_T because the later is on the stack and is not
+    reachable by the GGC.
+ 
+    PARSER_STATE contains the parser's global state.
+ 
+    GLOBAL_CONTEXT is the context to be used for global declarations.  Normally
+    the translation unit.
+ 
+    GLOBAL_DECLARATIONS contains a array of global declarations to pass back to
+    the middle-end at the end of the compilation.
+ */
+ 
+ struct GTY(()) A68_T
+ {
+   BUFFER output_line;
+   BUFFER edit_line;
+   BUFFER input_line;
+   int new_nodes;
+   int new_modes;
+   int new_postulates;
+   int new_node_infos;
+   int new_genie_infos;
+   int symbol_table_count;
+   int mode_count;
+   KEYWORD_T *top_keyword;
+   MODE_CACHE_T mode_cache;
+   MODES_T a68_modes;
+   MODULE_T job;
+   OPTIONS_T *options;
+   POSTULATE_T *postulates, *top_postulate, *top_postulate_list;
+   SOID_T *top_soid_list;
+   TABLE_T *standenv;
+   TOKEN_T *top_token;
+   vec<const char *, va_gc, vl_embed> *include_paths;
+   vec<const char *, va_gc, vl_embed> *import_paths;
+   hash_map<nofree_string_hash,const char *> *module_files;
+   tree global_trees[ATI_MAX];
+   PARSER_T parser_state;
+   vec<tree,va_gc> *module_definition_decls;
+   tree global_context;
+   vec<tree, va_gc> *global_declarations;
+ };
+ 
+ /*
+  * Access macros to fields in the struct types defined above.  These are used *
+  * in order to achieve a nice ALGOL-like field OF struct style.
+  */
+ 
+ #define ASM_LABEL(m) ((m)->asm_label)
+ #define BACKWARD(p) (p = PREVIOUS (p))
+ #define DEFLEX(p) (DEFLEXED (p) != NO_MOID ? DEFLEXED(p) : (p))
+ #define FORWARD(p) ((p) = NEXT (p))
+ #define A(p) ((p)->a)
+ #define ANNOTATION(p) ((p)->annotation)
+ #define ANONYMOUS(p) ((p)->anonymous)
+ #define ATTRIBUTE(p) ((p)->attribute)
+ #define ASCRIBED_ROUTINE_TEXT(p) ((p)->ascribed_routine_text)
+ #define B(p) ((p)->b)
+ #define BODY(p) ((p)->body)
+ #define CAST(p) ((p)->cast)
+ #define CHAR_IN_LINE(p) ((p)->char_in_line)
+ #define CROSS_REFERENCE_SAFE(p) ((p)->cross_reference_safe)
+ #define CDECL(p) ((p)->cdecl)
+ #define COMMENT(p) ((p)->comment)
+ #define COMMENT_CHAR_IN_LINE(p) ((p)->comment_char_in_line)
+ #define COMMENT_LINE(p) ((p)->comment_line)
+ #define COMMENT_TYPE(p) ((p)->comment_type)
+ #define CTYPE(p) ((p)->ctype)
+ #define DEFLEXED(p) ((p)->deflexed_mode)
+ #define DEREFO(p) ((p).derefo)
+ #define DERIVATE(p) ((p)->derivate)
+ #define DIM(p) ((p)->dim)
+ #define DYNAMIC_STACK_ALLOCS(p) ((p)->dynamic_stack_allocs)
+ #define EQUIVALENT(p) ((p)->equivalent_mode)
+ #define EQUIVALENT_MODE(p) ((p)->equivalent_mode)
+ #define ERROR_COUNT(p) ((p)->error_count)
+ #define EXTERN_SYMBOL(p) ((p)->extern_symbol)
+ #define EXTRACT_IN_PROC(p) ((p)->in_proc)
+ #define EXTRACT_KIND(p) ((p)->kind)
+ #define EXTRACT_MODE(p) ((p)->mode)
+ #define EXTRACT_PRIO(p) ((p)->priority)
+ #define EXTRACT_SYMBOL(p) ((p)->symbol)
+ #define EXTRACT_VARIABLE(p) ((p)->variable)
+ #define WARNING_COUNT(p) ((p)->warning_count)
+ #define F(p) ((p)->f)
+ #define FILENAME(p) ((p)->filename)
+ #define FILE_SOURCE_FD(p) ((p)->file_source_fd)
+ #define FILE_SOURCE_NAME(p) ((p)->file_source_name)
+ #define FLEXO(p) ((p).flexo)
+ #define FLEXO_KNOWN(p) ((p).flexo_known)
+ #define G(p) ((p)->g)
+ #define GINFO(p) ((p)->genie)
+ #define GENO(p) ((p).geno)
+ #define GET(p) ((p)->get)
+ #define GPARENT(p) (PARENT (GINFO (p)))
+ #define GREEN(p) ((p)->green)
+ #define H(p) ((p)->h)
+ #define HANDLE(p) ((p)->handle)
+ #define HAS_REFS(p) ((p)->has_refs)
+ #define HAS_ROWS(p) ((p)->has_rows)
+ #define HEAP(p) ((p)->heap)
+ #define ID(p) ((p)->id)
+ #define IDENTIFICATION(p) ((p)->identification)
+ #define IDENTIFIERS(p) ((p)->identifiers)
+ #define IDF(p) ((p)->idf)
+ #define IM(z) (VALUE (&(z)[1]))
+ #define IN(p) ((p)->in)
+ #define INDEX(p) ((p)->index)
+ #define INDICANTS(p) ((p)->indicants)
+ #define INFO(p) ((p)->info)
+ #define INITIALISE_ANON(p) ((p)->initialise_anon)
+ #define INITIALISE_FRAME(p) ((p)->initialise_frame)
+ #define INI_PTR(p) ((p)->ini_ptr)
+ #define INS_MODE(p) ((p)->ins_mode)
+ #define IN_FORBIDDEN(p) ((p)->in_forbidden)
+ #define IN_PREFIX(p) ((p)->in_prefix)
+ #define IN_PROC(p) ((p)->in_proc)
+ #define IN_TEXT(p) ((p)->in_text)
+ #define IS_OPEN(p) ((p)->is_open)
+ #define IS_RECURSIVE(p) ((p)->is_recursive)
+ #define IS_TMP(p) ((p)->is_tmp)
+ #define JUMP_STAT(p) ((p)->jump_stat)
+ #define JUMP_TO(p) ((p)->jump_to)
+ #define K(q) ((q)->k)
+ #define LABELS(p) ((p)->labels)
+ #define LAST(p) ((p)->last)
+ #define LAST_LINE(p) ((p)->last_line)
+ #define LESS(p) ((p)->less)
+ #define LEVEL(p) ((p)->level)
+ #define LEX_LEVEL(p) (LEVEL (TABLE (p)))
+ #define LINBUF(p) ((p)->linbuf)
+ #define LINE(p) ((p)->line)
+ #define LINE_APPLIED(p) ((p)->line_applied)
+ #define LINE_DEFINED(p) ((p)->line_defined)
+ #define LINE_END_MENDED(p) ((p)->line_end_mended)
+ #define LINE_NUMBER(p) (NUMBER (LINE (INFO (p))))
+ #define LINSIZ(p) ((p)->linsiz)
+ #define LIST(p) ((p)->list)
+ #define ln(x) (log (x))
+ #define LOCALE(p) ((p)->locale)
+ #define LOC_ASSIGNED(p) ((p)->loc_assigned)
+ #define LOWERER(p) ((p)->lowerer)
+ #define LOWER_BOUND(p) ((p)->lower_bound)
+ #define LWB(p) ((p)->lower_bound)
+ #define MARKER(p) ((p)->marker)
+ #define MATCH(p) ((p)->match)
+ #define MODIFIED(p) ((p)->modified)
+ #define MODULES(p) ((p)->modules)
+ #define VERSION(p) ((p)->version)
+ #define MODES(p) ((p)->modes)
+ #define MOID(p) ((p)->type)
+ #define MOIF(p) ((p)->moif)
+ #define MORE(p) ((p)->more)
+ #define MSGS(p) ((p)->msgs)
+ #define MULTIPLE(p) ((p)->multiple_mode)
+ #define MULTIPLE_MODE(p) ((p)->multiple_mode)
+ #define NAME(p) ((p)->name)
+ #define NEST(p) ((p)->nest)
+ #define NEST_PROC(p) ((p)->nest_proc)
+ #define NEXT(p) ((p)->next)
+ #define NEXT_NEXT(p) (NEXT (NEXT (p)))
+ #define NEXT_NEXT_NEXT(p) (NEXT (NEXT_NEXT (p)))
+ #define NEXT_SUB(p) (NEXT (SUB (p)))
+ #define NF(p) ((p)->nf)
+ #define NILO(p) ((p).nilo)
+ #define NILO_KNOWN(p) ((p).nilo_known)
+ #define NODE(p) ((p)->node)
+ #define NODE_DEFINED(p) ((p)->node_defined)
+ #define NODE_PACK(p) ((p)->pack)
+ #define NON_LOCAL(p) ((p)->non_local)
+ #define NCHAR_IN_LINE(p) (CHAR_IN_LINE (INFO (p)))
+ #define NCOMMENT(p) (COMMENT (INFO (p)))
+ #define NCOMMENT_CHAR_IN_LINE(p) (COMMENT_CHAR_IN_LINE (INFO (p)))
+ #define NCOMMENT_LINE(p) (COMMENT_LINE (INFO (p)))
+ #define NCOMMENT_TYPE(p) (COMMENT_TYPE (INFO (p)))
+ #define NEGATED(p) ((p)->negated)
+ #define NPRAGMAT(p) (PRAGMAT (INFO (p)))
+ #define NPRAGMAT_CHAR_IN_LINE(p) (PRAGMAT_CHAR_IN_LINE (INFO (p)))
+ #define NPRAGMAT_LINE(p) (PRAGMAT_LINE (INFO (p)))
+ #define NPRAGMAT_TYPE(p) (PRAGMAT_TYPE (INFO (p)))
+ #define NSYMBOL(p) (SYMBOL (INFO (p)))
+ #define NUM(p) ((p)->num)
+ #define NUMBER(p) ((p)->number)
+ #define OPER(p) ((p)->oper)
+ #define OPERATORS(p) ((p)->operators)
+ #define OPT(p) ((p)->opt)
+ #define OPTIONS(p) ((p)->options)
+ #define OPTION_ASSERT(p) (OPTIONS (p).assert)
+ #define OPTION_BOUNDS_CHECKING(p) (OPTIONS (p).bounds_checking)
+ #define OPTION_BRACKETS(p) (OPTIONS (p).brackets)
+ #define OPTION_NIL_CHECKING(p) (OPTIONS (p).nil_checking)
+ #define OPTION_STRICT(p) (OPTIONS (p).strict)
+ #define OPTION_STROPPING(p) (OPTIONS (p).stropping)
+ #define OPTION_LIST(p) (OPTIONS (p).list)
+ #define OPTION_LOCAL(p) (OPTIONS (p).local)
+ #define OPTION_NODEMASK(p) (OPTIONS (p).nodemask)
+ #define OUT(p) ((p)->out)
+ #define OUTER(p) ((p)->outer)
+ #define P(q) ((q)->p)
+ #define PACK(p) ((p)->pack)
+ #define PARTIAL_LOCALE(p) ((p)->partial_locale)
+ #define PARTIAL_PROC(p) ((p)->partial_proc)
+ #define PORTABLE(p) ((p)->portable)
+ #define POSTLUDE(p) ((p)->postlude)
+ #define PRAGMAT(p) ((p)->pragmat)
+ #define PRAGMAT_CHAR_IN_LINE(p) ((p)->pragmat_char_in_line)
+ #define PRAGMAT_LINE(p) ((p)->pragmat_line)
+ #define PRAGMAT_TYPE(p) ((p)->pragmat_type)
+ #define PRELUDE(p) ((p)->prelude)
+ #define PREVIOUS(p) ((p)->previous)
+ #define PRIO(p) ((p)->priority)
+ #define PRIOS(p) ((p)->prios)
+ #define PROCEDURE_LEVEL(p) ((p)->procedure_level)
+ #define PROC_OPS(p) ((p)->proc_ops)
+ #define PUBLICIZED(p) ((p)->publicized)
+ #define PUBLIC_RANGE(p) ((p)->public_range)
+ #define R(p) ((p)->r)
+ #define RE(z) (VALUE (&(z)[0]))
+ #define ROWED(p) ((p)->rowed)
+ #define SCAN_STATE_C(p) ((p)->scan_state.save_c)
+ #define SCAN_STATE_L(p) ((p)->scan_state.save_l)
+ #define SCAN_STATE_S(p) ((p)->scan_state.save_s)
+ #define SCOPE(p) ((p)->scope)
+ #define SCOPE_ASSIGNED(p) ((p)->scope_assigned)
+ #define SEQUENCE(p) ((p)->sequence)
+ #define SEVERITY(p) ((p)->severity)
+ #define SLICE(p) ((p)->slice)
+ #define SORT(p) ((p)->sort)
+ #define SOURCE_SCAN(p) ((p)->source_scan)
+ #define STANDENV_MOID(p) ((p)->standenv_moid)
+ #define STATUS(p) ((p)->status)
+ #define STRING(p) ((p)->string)
+ #define SUB(p) ((p)->sub)
+ #define SUB_MOID(p) (SUB (MOID (p)))
+ #define SUB_NEXT(p) (SUB (NEXT (p)))
+ #define SUB_SUB(p) (SUB (SUB (p)))
+ #define SYMBOL(p) ((p)->symbol)
+ #define TABLE(p) ((p)->symbol_table)
+ #define TAG_LEX_LEVEL(p) (LEVEL (TAG_TABLE (p)))
+ #define TAG_TABLE(p) ((p)->symbol_table)
+ #define TAX(p) ((p)->tag)
+ #define TAX_TREE_DECL(p) ((p)->tree_decl)
+ #define TEXT(p) ((p)->text)
+ #define TOP_LINE(p) ((p)->top_line)
+ #define TOP_MOID(p) ((p)->top_moid)
+ #define TOP_MOIF(p) ((p)->top_moif)
+ #define TOP_NODE(p) ((p)->top_node)
+ #define TRANSIENT(p) ((p)->transient)
+ #define TREE_LISTING_SAFE(p) ((p)->tree_listing_safe)
+ #define TRIM(p) ((p)->trim)
+ #define UNIT(p) ((p)->unit)
+ #define USE(p) ((p)->use)
+ #define VALUE(p) ((p)->value)
+ #define VARIABLE(p) ((p)->variable)
+ #define WHERE(p) ((p)->where)
+ #define IS_FLEXETY_ROW(m) (IS_FLEX (m) || IS_ROW (m) || m == M_STRING)
+ #define IS_FLEX(m) IS ((m), FLEX_SYMBOL)
+ #define IS_LITERALLY(p, s) (strcmp (NSYMBOL (p), s) == 0)
+ #define ISNT(p, s) (! IS (p, s))
+ #define IS(p, s) (ATTRIBUTE (p) == (s))
+ #define IS_REF_FLEX(m) (IS (m, REF_SYMBOL) && IS (SUB (m), FLEX_SYMBOL))
+ #define IS_REF(m) IS ((m), REF_SYMBOL)
+ #define IS_INTEGRAL(m)					  \
+   ((m) == M_INT						  \
+    || (m) == M_LONG_INT					  \
+    || (m) == M_LONG_LONG_INT				  \
+    || (m) == M_SHORT_INT				  \
+    || (m) == M_SHORT_SHORT_INT)
+ #define IS_BITS(m)						  \
+   ((m) == M_BITS						  \
+    || (m) == M_LONG_BITS					  \
+    || (m) == M_LONG_LONG_BITS					  \
+    || (m) == M_SHORT_BITS					  \
+    || (m) == M_SHORT_SHORT_BITS)
+ #define IS_BYTES(m)				\
+   ((m) == M_BYTES || (m) == M_LONG_BYTES)
+ #define IS_COMPLEX(m)				\
+   ((m) == M_COMPLEX				\
+    || (m) == M_LONG_COMPLEX			\
+    || (m) == M_LONG_LONG_COMPLEX)
+ #define IS_REAL(m)				\
+   ((m) == M_REAL				\
+    || (m) == M_LONG_REAL			\
+    || (m) == M_LONG_LONG_REAL)
+ #define IS_ROW(m) IS ((m), ROW_SYMBOL)
+ #define IS_STRUCT(m) IS ((m), STRUCT_SYMBOL)
+ #define IS_UNION(m) IS ((m), UNION_SYMBOL)
+ #define YOUNGEST_ENVIRON(p) ((p)->youngest_environ)
+ 
+ #endif /* ! __A68_TYPES_H */
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68-unistr.c gcc-16.1.0-RC-20260423/gcc/algol68/a68-unistr.c
*** gcc-15.2.0/gcc/algol68/a68-unistr.c	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68-unistr.c	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,453 ----
+ /* Character conversion functions for the Algol 68 front-end.
+    Copyright (C) 1999-2026 Free Software Foundation, Inc.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    The code in this file has been adapted from the unistr gnulib module,
+    written by Bruno Haible.
+   
+    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/>.  */
+ 
+ #define INCLUDE_MEMORY
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ static int
+ u8_mbtoucr (uint32_t *puc, const uint8_t *s, size_t n)
+ {
+   uint8_t c = *s;
+ 
+   if (c < 0x80)
+     {
+       *puc = c;
+       return 1;
+     }
+   else if (c >= 0xc2)
+     {
+       if (c < 0xe0)
+         {
+           if (n >= 2)
+             {
+               if ((s[1] ^ 0x80) < 0x40)
+                 {
+                   *puc = ((unsigned int) (c & 0x1f) << 6)
+                          | (unsigned int) (s[1] ^ 0x80);
+                   return 2;
+                 }
+               /* invalid multibyte character */
+             }
+           else
+             {
+               /* incomplete multibyte character */
+               *puc = 0xfffd;
+               return -2;
+             }
+         }
+       else if (c < 0xf0)
+         {
+           if (n >= 2)
+             {
+               if ((s[1] ^ 0x80) < 0x40
+                   && (c >= 0xe1 || s[1] >= 0xa0)
+                   && (c != 0xed || s[1] < 0xa0))
+                 {
+                   if (n >= 3)
+                     {
+                       if ((s[2] ^ 0x80) < 0x40)
+                         {
+                           *puc = ((unsigned int) (c & 0x0f) << 12)
+                                  | ((unsigned int) (s[1] ^ 0x80) << 6)
+                                  | (unsigned int) (s[2] ^ 0x80);
+                           return 3;
+                         }
+                       /* invalid multibyte character */
+                     }
+                   else
+                     {
+                       /* incomplete multibyte character */
+                       *puc = 0xfffd;
+                       return -2;
+                     }
+                 }
+               /* invalid multibyte character */
+             }
+           else
+             {
+               /* incomplete multibyte character */
+               *puc = 0xfffd;
+               return -2;
+             }
+         }
+       else if (c <= 0xf4)
+         {
+           if (n >= 2)
+             {
+               if ((s[1] ^ 0x80) < 0x40
+                   && (c >= 0xf1 || s[1] >= 0x90)
+                   && (c < 0xf4 || (/* c == 0xf4 && */ s[1] < 0x90)))
+                 {
+                   if (n >= 3)
+                     {
+                       if ((s[2] ^ 0x80) < 0x40)
+                         {
+                           if (n >= 4)
+                             {
+                               if ((s[3] ^ 0x80) < 0x40)
+                                 {
+                                   *puc = ((unsigned int) (c & 0x07) << 18)
+                                          | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                          | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                          | (unsigned int) (s[3] ^ 0x80);
+                                   return 4;
+                                 }
+                               /* invalid multibyte character */
+                             }
+                           else
+                             {
+                               /* incomplete multibyte character */
+                               *puc = 0xfffd;
+                               return -2;
+                             }
+                         }
+                       /* invalid multibyte character */
+                     }
+                   else
+                     {
+                       /* incomplete multibyte character */
+                       *puc = 0xfffd;
+                       return -2;
+                     }
+                 }
+               /* invalid multibyte character */
+             }
+           else
+             {
+               /* incomplete multibyte character */
+               *puc = 0xfffd;
+               return -2;
+             }
+         }
+     }
+   /* invalid multibyte character */
+   *puc = 0xfffd;
+   return -1;
+ }
+ 
+ /* Get the UCS code for the first character of a given UTF-8 string.  */
+ 
+ int
+ a68_u8_mbtouc (uint32_t *puc, const uint8_t *s, size_t n)
+ {
+   uint8_t c = *s;
+ 
+   if (c < 0x80)
+     {
+       *puc = c;
+       return 1;
+     }
+   else if (c >= 0xc2)
+     {
+       if (c < 0xe0)
+         {
+           if (n >= 2)
+             {
+               if ((s[1] ^ 0x80) < 0x40)
+                 {
+                   *puc = ((unsigned int) (c & 0x1f) << 6)
+                          | (unsigned int) (s[1] ^ 0x80);
+                   return 2;
+                 }
+               /* invalid multibyte character */
+             }
+           else
+             {
+               /* incomplete multibyte character */
+               *puc = 0xfffd;
+               return 1;
+             }
+         }
+       else if (c < 0xf0)
+         {
+           if (n >= 3)
+             {
+               if ((s[1] ^ 0x80) < 0x40
+                   && (c >= 0xe1 || s[1] >= 0xa0)
+                   && (c != 0xed || s[1] < 0xa0))
+                 {
+                   if ((s[2] ^ 0x80) < 0x40)
+                     {
+                       *puc = ((unsigned int) (c & 0x0f) << 12)
+                              | ((unsigned int) (s[1] ^ 0x80) << 6)
+                              | (unsigned int) (s[2] ^ 0x80);
+                       return 3;
+                     }
+                   /* invalid multibyte character */
+                   *puc = 0xfffd;
+                   return 2;
+                 }
+               /* invalid multibyte character */
+               *puc = 0xfffd;
+               return 1;
+             }
+           else
+             {
+               *puc = 0xfffd;
+               if (n == 1)
+                 {
+                   /* incomplete multibyte character */
+                   return 1;
+                 }
+               else
+                 {
+                   if ((s[1] ^ 0x80) < 0x40
+                       && (c >= 0xe1 || s[1] >= 0xa0)
+                       && (c != 0xed || s[1] < 0xa0))
+                     {
+                       /* incomplete multibyte character */
+                       return 2;
+                     }
+                   else
+                     {
+                       /* invalid multibyte character */
+                       return 1;
+                     }
+                 }
+             }
+         }
+       else if (c <= 0xf4)
+         {
+           if (n >= 4)
+             {
+               if ((s[1] ^ 0x80) < 0x40
+                   && (c >= 0xf1 || s[1] >= 0x90)
+                   && (c < 0xf4 || (/* c == 0xf4 && */ s[1] < 0x90)))
+                 {
+                   if ((s[2] ^ 0x80) < 0x40)
+                     {
+                       if ((s[3] ^ 0x80) < 0x40)
+                         {
+                           *puc = ((unsigned int) (c & 0x07) << 18)
+                                  | ((unsigned int) (s[1] ^ 0x80) << 12)
+                                  | ((unsigned int) (s[2] ^ 0x80) << 6)
+                                  | (unsigned int) (s[3] ^ 0x80);
+                           return 4;
+                         }
+                       /* invalid multibyte character */
+                       *puc = 0xfffd;
+                       return 3;
+                     }
+                   /* invalid multibyte character */
+                   *puc = 0xfffd;
+                   return 2;
+                 }
+               /* invalid multibyte character */
+               *puc = 0xfffd;
+               return 1;
+             }
+           else
+             {
+               *puc = 0xfffd;
+               if (n == 1)
+                 {
+                   /* incomplete multibyte character */
+                   return 1;
+                 }
+               else
+                 {
+                   if ((s[1] ^ 0x80) < 0x40
+                       && (c >= 0xf1 || s[1] >= 0x90)
+                       && (c < 0xf4 || (/* c == 0xf4 && */ s[1] < 0x90)))
+                     {
+                       if (n == 2)
+                         {
+                           /* incomplete multibyte character */
+                           return 2;
+                         }
+                       else
+                         {
+                           if ((s[2] ^ 0x80) < 0x40)
+                             {
+                               /* incomplete multibyte character */
+                               return 3;
+                             }
+                           else
+                             {
+                               /* invalid multibyte character */
+                               return 2;
+                             }
+                         }
+                     }
+                   else
+                     {
+                       /* invalid multibyte character */
+                       return 1;
+                     }
+                 }
+             }
+         }
+     }
+   /* invalid multibyte character */
+   *puc = 0xfffd;
+   return 1;
+ }
+ 
+ /* Encode a given UCS code in UTF-8.  */
+ 
+ int
+ a68_u8_uctomb (uint8_t *s, uint32_t uc, ptrdiff_t n)
+ {
+   if (uc < 0x80)
+     {
+       if (n > 0)
+         {
+           s[0] = uc;
+           return 1;
+         }
+       /* else return -2, below.  */
+     }
+   else
+     {
+       int count;
+ 
+       if (uc < 0x800)
+         count = 2;
+       else if (uc < 0x10000)
+         {
+           if (uc < 0xd800 || uc >= 0xe000)
+             count = 3;
+           else
+             return -1;
+         }
+       else if (uc < 0x110000)
+         count = 4;
+       else
+         return -1;
+ 
+       if (n >= count)
+         {
+           switch (count) /* note: code falls through cases! */
+             {
+             case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
+               gcc_fallthrough ();
+             case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
+               gcc_fallthrough ();
+             case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
+           /*case 1:*/ s[0] = uc;
+             }
+           return count;
+         }
+     }
+   return -2;
+ }
+ 
+ /* Convert UTF-8 to UTF-32/UCS-4  */
+ 
+ uint32_t *
+ a68_u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp)
+ {
+   const uint8_t *s_end = s + n;
+   /* Output string accumulator.  */
+   uint32_t *result;
+   size_t allocated;
+   size_t length;
+ 
+   if (resultbuf != NULL)
+     {
+       result = resultbuf;
+       allocated = *lengthp;
+     }
+   else
+     {
+       result = NULL;
+       allocated = 0;
+     }
+   length = 0;
+   /* Invariants:
+      result is either == resultbuf or == NULL or malloc-allocated.
+      If length > 0, then result != NULL.  */
+ 
+   while (s < s_end)
+     {
+       uint32_t uc;
+       int count;
+ 
+       /* Fetch a Unicode character from the input string.  */
+       count = u8_mbtoucr (&uc, s, s_end - s);
+       if (count < 0)
+         {
+           if (!(result == resultbuf || result == NULL))
+             free (result);
+           errno = EILSEQ;
+           return NULL;
+         }
+       s += count;
+ 
+       /* Store it in the output string.  */
+       if (length + 1 > allocated)
+         {
+           uint32_t *memory;
+ 
+           allocated = (allocated > 0 ? 2 * allocated : 12);
+           if (length + 1 > allocated)
+             allocated = length + 1;
+           if (result == resultbuf || result == NULL)
+             memory = (uint32_t *) xmalloc (allocated * sizeof (uint32_t));
+           else
+             memory =
+               (uint32_t *) xrealloc (result, allocated * sizeof (uint32_t));
+ 
+           if (memory == NULL)
+             {
+               if (!(result == resultbuf || result == NULL))
+                 free (result);
+               errno = ENOMEM;
+               return NULL;
+             }
+           if (result == resultbuf && length > 0)
+             memcpy ((char *) memory, (char *) result,
+                     length * sizeof (uint32_t));
+           result = memory;
+         }
+       result[length++] = uc;
+     }
+ 
+   if (length == 0)
+     {
+       if (result == NULL)
+         {
+           /* Return a non-NULL value.  NULL means error.  */
+           result = (uint32_t *) xmalloc (sizeof (uint32_t));
+           if (result == NULL)
+             {
+               errno = ENOMEM;
+               return NULL;
+             }
+         }
+     }
+   else if (result != resultbuf && length < allocated)
+     {
+       /* Shrink the allocated memory if possible.  */
+       uint32_t *memory;
+ 
+       memory = (uint32_t *) xrealloc (result, length * sizeof (uint32_t));
+       if (memory != NULL)
+         result = memory;
+     }
+ 
+   *lengthp = length;
+   return result;
+ }
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68.h gcc-16.1.0-RC-20260423/gcc/algol68/a68.h
*** gcc-15.2.0/gcc/algol68/a68.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1079 ----
+ /* Definitions for the Algol 68 GCC front end.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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 __A68_H__
+ #define __A68_H__
+ 
+ /* Some common definitions first.  */
+ 
+ #define BUFFER_SIZE 1024
+ #define SMALL_BUFFER_SIZE 128
+ #define SNPRINTF_SIZE ((size_t) (BUFFER_SIZE - 1))
+ #define BUFCLR(z) {memset ((z), 0, BUFFER_SIZE + 1);}
+ #define MOID_ERROR_WIDTH 80
+ 
+ #define MONADS "%^&+-~!?"
+ #define NOMADS "></=*"
+ 
+ /* Macro to easily add gcc_tdiag attributes to functions for builds in which
+    the compiler supports them.  */
+ 
+ #if (CHECKING_P && GCC_VERSION >= 4001) || GCC_VERSION == BUILDING_GCC_VERSION
+ #define ATTRIBUTE_A68_DIAG(m, n) __attribute__ ((__format__ (__gcc_tdiag__, m, n))) ATTRIBUTE_NONNULL(m)
+ #else
+ #define ATTRIBUTE_A68_DIAG(m, n) ATTRIBUTE_NONNULL(m)
+ #endif
+ 
+ /* Maximum number of priorities supported for operators.  The Algol 68 RR
+    specifies 9.  */
+ 
+ #define MAX_PRIORITY 9
+ 
+ /* The primal scope is the top-level scope.  */
+ 
+ #define PRIMAL_SCOPE 0
+ 
+ /* Deflexing strategy.  See the moid checking routines in
+    a68-parser-moids-check for an explanation of these values.  */
+ 
+ enum
+ {
+   NO_DEFLEXING = 1, SAFE_DEFLEXING, ALIAS_DEFLEXING, FORCE_DEFLEXING,
+   SKIP_DEFLEXING
+ };
+ 
+ /* Magic number for the exports data.  */
+ 
+ #define A68_EXPORT_MAGIC_LEN 2
+ 
+ #define A68_EXPORT_MAGIC1 0x0a
+ #define A68_EXPORT_MAGIC2 0x68
+ 
+ /* The segment name we pass to simple_object_start_read to find Algol 68 export
+    data.  */
+ 
+ #ifndef A68_EXPORT_SEGMENT_NAME
+ #define A68_EXPORT_SEGMENT_NAME "__GNU_A68"
+ #endif
+ 
+ /* The section name we use when reading and writing export data.  */
+ 
+ #ifndef A68_EXPORT_SECTION_NAME
+ #define A68_EXPORT_SECTION_NAME ".a68_exports"
+ #endif
+ 
+ /* ga68 export format definitions.  See ga68-exports.pk.  */
+ 
+ #define GA68_EXPORTS_VERSION 1
+ 
+ #define GA68_MODE_UNKNOWN 0
+ #define GA68_MODE_VOID    1
+ #define GA68_MODE_INT     2
+ #define GA68_MODE_REAL    3
+ #define GA68_MODE_BITS    4
+ #define GA68_MODE_BYTES   5
+ #define GA68_MODE_CHAR    6
+ #define GA68_MODE_BOOL    7
+ #define GA68_MODE_CMPL    8
+ #define GA68_MODE_ROW     9
+ #define GA68_MODE_STRUCT 10
+ #define GA68_MODE_UNION  11
+ #define GA68_MODE_NAME   12
+ #define GA68_MODE_PROC   13
+ #define GA68_MODE_STRING 14
+ #define GA68_MODE_FLEX   15
+ 
+ #define GA68_EXTRACT_MODU 0
+ #define GA68_EXTRACT_IDEN 1
+ #define GA68_EXTRACT_MODE 2
+ #define GA68_EXTRACT_PRIO 3
+ #define GA68_EXTRACT_OPER 4
+ 
+ /* Then the types.  */
+ 
+ #include "a68-types.h"
+ 
+ /* Front-end global state.  */
+ 
+ extern GTY(()) A68_T a68_common;
+ #define A68(z)             (a68_common.z)
+ #define A68_JOB            A68 (job)
+ #define A68_STANDENV       A68 (standenv)
+ #define A68_MCACHE(z)      A68 (mode_cache.z)
+ #define A68_INCLUDE_PATHS  A68 (include_paths)
+ #define A68_IMPORT_PATHS   A68 (import_paths)
+ #define A68_MODULE_FILES   A68 (module_files)
+ #define A68_GLOBAL_TREES   A68 (global_trees)
+ #define A68_PARSER(Z)      (A68 (parser_state).Z)
+ #define A68_MODULE_DEFINITION_DECLS   A68 (module_definition_decls)
+ #define A68_GLOBAL_CONTEXT      A68 (global_context)
+ #define A68_GLOBAL_DECLARATIONS A68 (global_declarations)
+ 
+ /* Particular pre-defined modes.  */
+ 
+ #define MODE(p)        A68 (a68_modes.p)
+ #define M_BITS (MODE (BITS))
+ #define M_BOOL (MODE (BOOL))
+ #define M_BYTES (MODE (BYTES))
+ #define M_CHANNEL (MODE (CHANNEL))
+ #define M_CHAR (MODE (CHAR))
+ #define M_COLLITEM (MODE (COLLITEM))
+ #define M_COMPLEX (MODE (COMPLEX))
+ #define M_C_STRING (MODE (C_STRING))
+ #define M_ERROR (MODE (ERROR))
+ #define M_FILE (MODE (FILE))
+ #define M_FLEX_ROW_BOOL (MODE (FLEX_ROW_BOOL))
+ #define M_FLEX_ROW_CHAR (MODE (FLEX_ROW_CHAR))
+ #define M_FORMAT (MODE (FORMAT))
+ #define M_HIP (MODE (HIP))
+ #define M_INT (MODE (INT))
+ #define M_LONG_BITS (MODE (LONG_BITS))
+ #define M_LONG_BYTES (MODE (LONG_BYTES))
+ #define M_LONG_COMPLEX (MODE (LONG_COMPLEX))
+ #define M_LONG_INT (MODE (LONG_INT))
+ #define M_LONG_LONG_INT (MODE (LONG_LONG_INT))
+ #define M_LONG_LONG_BITS (MODE (LONG_LONG_BITS))
+ #define M_LONG_LONG_COMPLEX (MODE (LONG_LONG_COMPLEX))
+ #define M_LONG_LONG_INT (MODE (LONG_LONG_INT))
+ #define M_LONG_LONG_REAL (MODE (LONG_LONG_REAL))
+ #define M_LONG_REAL (MODE (LONG_REAL))
+ #define M_NIL (MODE (NIL))
+ #define M_NUMBER (MODE (NUMBER))
+ #define M_PROC_LONG_REAL_LONG_REAL (MODE (PROC_LONG_REAL_LONG_REAL))
+ #define M_PROC_REAL_REAL (MODE (PROC_REAL_REAL))
+ #define M_PROC_REF_FILE_BOOL (MODE (PROC_REF_FILE_BOOL))
+ #define M_PROC_REF_FILE_VOID (MODE (PROC_REF_FILE_VOID))
+ #define M_PROC_ROW_CHAR (MODE (PROC_ROW_CHAR))
+ #define M_PROC_STRING (MODE (PROC_STRING))
+ #define M_PROC_VOID (MODE (PROC_VOID))
+ #define M_REAL (MODE (REAL))
+ #define M_REF_BITS (MODE (REF_BITS))
+ #define M_REF_BOOL (MODE (REF_BOOL))
+ #define M_REF_BYTES (MODE (REF_BYTES))
+ #define M_REF_CHAR (MODE (REF_CHAR))
+ #define M_REF_COMPLEX (MODE (REF_COMPLEX))
+ #define M_REF_FILE (MODE (REF_FILE))
+ #define M_REF_INT (MODE (REF_INT))
+ #define M_REF_LONG_BITS (MODE (REF_LONG_BITS))
+ #define M_REF_LONG_BYTES (MODE (REF_LONG_BYTES))
+ #define M_REF_LONG_COMPLEX (MODE (REF_LONG_COMPLEX))
+ #define M_REF_LONG_INT (MODE (REF_LONG_INT))
+ #define M_REF_LONG_LONG_BITS (MODE (REF_LONG_LONG_BITS))
+ #define M_REF_LONG_LONG_COMPLEX (MODE (REF_LONG_LONG_COMPLEX))
+ #define M_REF_LONG_LONG_INT (MODE (REF_LONG_LONG_INT))
+ #define M_REF_LONG_LONG_REAL (MODE (REF_LONG_LONG_REAL))
+ #define M_REF_LONG_REAL (MODE (REF_LONG_REAL))
+ #define M_REF_REAL (MODE (REF_REAL))
+ #define M_REF_REF_FILE (MODE (REF_REF_FILE))
+ #define M_REF_SHORT_BITS (MODE (REF_SHORT_BITS))
+ #define M_REF_SHORT_SHORT_BITS (MODE (REF_SHORT_SHORT_BITS))
+ #define M_REF_ROW_CHAR (MODE (REF_ROW_CHAR))
+ #define M_REF_ROW_COMPLEX (MODE (REF_ROW_COMPLEX))
+ #define M_REF_ROW_INT (MODE (REF_ROW_INT))
+ #define M_REF_ROW_REAL (MODE (REF_ROW_REAL))
+ #define M_REF_ROW_ROW_COMPLEX (MODE (REF_ROW_ROW_COMPLEX))
+ #define M_REF_ROW_ROW_REAL (MODE (REF_ROW_ROW_REAL))
+ #define M_REF_SHORT_INT (MODE (REF_SHORT_INT))
+ #define M_REF_SHORT_SHORT_INT (MODE (REF_SHORT_SHORT_INT))
+ #define M_REF_STRING (MODE (REF_STRING))
+ #define M_ROW_BITS (MODE (ROW_BITS))
+ #define M_ROW_BOOL (MODE (ROW_BOOL))
+ #define M_ROW_CHAR (MODE (ROW_CHAR))
+ #define M_ROW_COMPLEX (MODE (ROW_COMPLEX))
+ #define M_ROW_INT (MODE (ROW_INT))
+ #define M_ROW_REAL (MODE (ROW_REAL))
+ #define M_ROW_ROW_CHAR (MODE (ROW_ROW_CHAR))
+ #define M_ROW_ROW_COMPLEX (MODE (ROW_ROW_COMPLEX))
+ #define M_ROW_ROW_REAL (MODE (ROW_ROW_REAL))
+ #define M_ROW_SIMPLIN (MODE (ROW_SIMPLIN))
+ #define M_ROW_SIMPLOUT (MODE (ROW_SIMPLOUT))
+ #define M_ROWS (MODE (ROWS))
+ #define M_ROW_STRING (MODE (ROW_STRING))
+ #define M_SEMA (MODE (SEMA))
+ #define M_SHORT_BITS (MODE (SHORT_BITS))
+ #define M_SHORT_SHORT_BITS (MODE (SHORT_SHORT_BITS))
+ #define M_SHORT_INT (MODE (SHORT_INT))
+ #define M_SHORT_SHORT_INT (MODE (SHORT_SHORT_INT))
+ #define M_SIMPLIN (MODE (SIMPLIN))
+ #define M_SIMPLOUT (MODE (SIMPLOUT))
+ #define M_STRING (MODE (STRING))
+ #define M_UNDEFINED (MODE (UNDEFINED))
+ #define M_VACUUM (MODE (VACUUM))
+ #define M_VOID (MODE (VOID))
+ 
+ /* Usage of TYPE_LANG_FLAG_* flags.  */
+ 
+ #define A68_ROW_TYPE_P(NODE) TYPE_LANG_FLAG_0 (NODE)
+ #define A68_UNION_TYPE_P(NODE) TYPE_LANG_FLAG_1 (NODE)
+ #define A68_STRUCT_TYPE_P(NODE) TYPE_LANG_FLAG_2 (NODE)
+ #define A68_ROWS_TYPE_P(NODE) TYPE_LANG_FLAG_3 (NODE)
+ #define A68_TYPE_HAS_ROWS_P(NODE) TYPE_LANG_FLAG_4 (NODE)
+ 
+ /* Language-specific tree checkers.  */
+ 
+ #define STRUCT_OR_UNION_TYPE_CHECK(NODE) \
+   TREE_CHECK2 (NODE, RECORD_TYPE, UNION_TYPE)
+ 
+ /* Usage of TYPE_LANG_SLOT_* fields.  */
+ 
+ #define TYPE_FORWARD_REFERENCES(NODE) \
+   (TYPE_LANG_SLOT_1 (STRUCT_OR_UNION_TYPE_CHECK (NODE)))
+ 
+ /* a68-unistr.cc */
+ 
+ int a68_u8_mbtouc (uint32_t *puc, const uint8_t *s, size_t n);
+ int a68_u8_uctomb (uint8_t *s, uint32_t uc, ptrdiff_t n);
+ 
+ uint32_t *a68_u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp);
+ 
+ /* a68-lang.cc */
+ 
+ /* Global types.  These are built in a68_build_a68_type_nodes and used by the
+    lowering routines.  */
+ 
+ #define a68_void_type               A68_GLOBAL_TREES[ATI_VOID_TYPE]
+ #define a68_bool_type               A68_GLOBAL_TREES[ATI_BOOL_TYPE]
+ #define a68_char_type               A68_GLOBAL_TREES[ATI_CHAR_TYPE]
+ #define a68_short_short_bits_type   A68_GLOBAL_TREES[ATI_SHORT_SHORT_BITS_TYPE]
+ #define a68_short_bits_type         A68_GLOBAL_TREES[ATI_SHORT_BITS_TYPE]
+ #define a68_bits_type               A68_GLOBAL_TREES[ATI_BITS_TYPE]
+ #define a68_long_bits_type          A68_GLOBAL_TREES[ATI_LONG_BITS_TYPE]
+ #define a68_long_long_bits_type     A68_GLOBAL_TREES[ATI_LONG_LONG_BITS_TYPE]
+ #define a68_bytes_type              A68_GLOBAL_TREES[ATI_BYTES_TYPE]
+ #define a68_long_bytes_type         A68_GLOBAL_TREES[ATI_LONG_BYTES_TYPE]
+ #define a68_short_short_int_type    A68_GLOBAL_TREES[ATI_SHORT_SHORT_INT_TYPE]
+ #define a68_short_int_type          A68_GLOBAL_TREES[ATI_SHORT_INT_TYPE]
+ #define a68_int_type                A68_GLOBAL_TREES[ATI_INT_TYPE]
+ #define a68_long_int_type           A68_GLOBAL_TREES[ATI_LONG_INT_TYPE]
+ #define a68_long_long_int_type      A68_GLOBAL_TREES[ATI_LONG_LONG_INT_TYPE]
+ #define a68_real_type               A68_GLOBAL_TREES[ATI_REAL_TYPE]
+ #define a68_long_real_type          A68_GLOBAL_TREES[ATI_LONG_REAL_TYPE]
+ #define a68_long_long_real_type     A68_GLOBAL_TREES[ATI_LONG_LONG_REAL_TYPE]
+ 
+ struct lang_type *a68_build_lang_type (MOID_T *moid);
+ struct lang_decl *a68_build_lang_decl (NODE_T *node);
+ MOID_T *a68_type_moid (tree type);
+ 
+ /* a68-diagnostics.cc  */
+ 
+ void a68_error (NODE_T *p, const char *loc_str, ...) ATTRIBUTE_A68_DIAG(2,3);
+ void a68_error_in_pragmat (NODE_T *p, size_t off,
+ 			   const char *loc_str, ...) ATTRIBUTE_A68_DIAG(3,4);
+ bool a68_warning (NODE_T *p, int opt, const char *loc_str, ...)  ATTRIBUTE_A68_DIAG(3,4);
+ void a68_inform (NODE_T *p, const char *loc_str, ...)  ATTRIBUTE_A68_DIAG(2,3);
+ void a68_fatal (NODE_T *p, const char *loc_str, ...)  ATTRIBUTE_A68_DIAG(2,3);
+ void a68_scan_error (LINE_T *u, char *v, const char *txt, ...)  ATTRIBUTE_A68_DIAG(3,4);
+ 
+ /* a68-parser-scanner.cc  */
+ 
+ bool a68_lexical_analyser (const char *filename, bool *empty_file);
+ ssize_t a68_file_size (int fd);
+ ssize_t a68_file_read (int fd, void *buf, size_t n);
+ 
+ /* a68-parser.cc  */
+ 
+ int a68_count_operands (NODE_T *p);
+ int a68_count_formal_bounds (NODE_T *p);
+ void a68_count_pictures (NODE_T *p, int *k);
+ bool a68_is_ref_refety_flex (MOID_T *m);
+ bool a68_is_semicolon_less (NODE_T *p);
+ bool a68_is_formal_bounds (NODE_T *p);
+ bool a68_is_unit_terminator (NODE_T *p);
+ bool a68_is_loop_keyword (NODE_T *p);
+ bool a68_is_new_lexical_level (NODE_T *p);
+ bool a68_dont_mark_here (NODE_T *p);
+ enum a68_attribute a68_get_good_attribute (NODE_T *p);
+ void a68_parser (const char *filename);
+ NODE_INFO_T *a68_new_node_info (void);
+ GINFO_T *a68_new_genie_info (void);
+ NODE_T *a68_new_node (void);
+ NODE_T *a68_some_node (const char *t);
+ TABLE_T *a68_new_symbol_table (TABLE_T *p);
+ MOID_T *a68_new_moid (void);
+ PACK_T *a68_new_pack (void);
+ TAG_T *a68_new_tag (void);
+ void a68_make_special_mode (MOID_T **, int m);
+ void a68_make_sub (NODE_T *p, NODE_T *, enum a68_attribute t);
+ bool a68_whether (NODE_T *, ...);
+ bool a68_is_one_of (NODE_T *p, ...);
+ void a68_bufcat (char *dst, const char *src, int len);
+ void a68_bufcpy (char *dst, const char *src, int len);
+ char *a68_new_string (const char *t, ...);
+ const char *a68_attribute_name (enum a68_attribute attr);
+ location_t a68_get_node_location (NODE_T *p);
+ location_t a68_get_line_location (LINE_T *line, const char *pos);
+ 
+ /* a68-parser-top-down.cc  */
+ 
+ void a68_substitute_brackets (NODE_T *p);
+ const char *a68_phrase_to_text (NODE_T *p, NODE_T **w);
+ void a68_top_down_parser (NODE_T *p);
+ 
+ /* a68-parser-bottom-up.cc  */
+ 
+ void a68_bottom_up_parser (NODE_T *p);
+ void a68_bottom_up_error_check (NODE_T *p);
+ void a68_rearrange_goto_less_jumps (NODE_T *p);
+ void a68_bottom_up_coalesce_pub (NODE_T *p);
+ 
+ /* a68-parser-extract.cc  */
+ 
+ void a68_extract_indicants (NODE_T *p);
+ void a68_extract_priorities (NODE_T *p);
+ void a68_extract_operators (NODE_T *p);
+ void a68_extract_labels (NODE_T *p, int expect);
+ void a68_extract_declarations (NODE_T *p);
+ void a68_elaborate_bold_tags (NODE_T *p);
+ void a68_extract_revelation (NODE_T *q, const char *module,
+ 			     const char *filename, TAG_T *tag = NO_TAG);
+ void a68_extract_revelation (TABLE_T *t, LINE_T *l, const char *module,
+ 			     const char *filename, TAG_T *tag = NO_TAG);
+ 
+ /* a68-parser-keywords.cc  */
+ 
+ const char *a68_strop_keyword (const char *keyword);
+ void a68_set_up_tables (void);
+ TOKEN_T *a68_add_token (TOKEN_T **p, const char *t);
+ KEYWORD_T *a68_find_keyword (KEYWORD_T *p, const char *t);
+ KEYWORD_T *a68_find_keyword_from_attribute (KEYWORD_T *p, enum a68_attribute a);
+ 
+ /* a68-postulates.cc  */
+ 
+ void a68_init_postulates (void);
+ void a68_free_postulate_list (POSTULATE_T *, POSTULATE_T *);
+ void a68_make_postulate (POSTULATE_T **, MOID_T *, MOID_T *);
+ POSTULATE_T *a68_is_postulated (POSTULATE_T *, MOID_T *);
+ POSTULATE_T *a68_is_postulated_pair (POSTULATE_T *, MOID_T *, MOID_T *);
+ 
+ /* a68-parser-moids-check.cc  */
+ 
+ void a68_mode_checker (NODE_T *p);
+ 
+ /* a68-parser-moids-coerce.cc */
+ 
+ void a68_coercion_inserter (NODE_T *p);
+ 
+ /* a68-parser-moids-equivalence.cc  */
+ 
+ bool a68_prove_moid_equivalence (MOID_T *, MOID_T *);
+ 
+ /* a68-parser-brackets.cc  */
+ 
+ void a68_check_parenthesis (NODE_T *top);
+ 
+ /* a68-parser-prelude.cc  */
+ 
+ void a68_make_standard_environ (void);
+ 
+ /* a68-parser-taxes.cc  */
+ 
+ void a68_set_proc_level (NODE_T *p, int n);
+ void a68_set_nest (NODE_T *p, NODE_T *s);
+ int a68_first_tag_global (TABLE_T * table, const char *name);
+ void a68_collect_taxes (NODE_T *p);
+ TAG_T *a68_add_tag (TABLE_T *s, int a, NODE_T *n, MOID_T *m, int p);
+ TAG_T *a68_find_tag_global (TABLE_T *table, int a, const char *name);
+ int a68_is_identifier_or_label_global (TABLE_T *table, const char *name);
+ void a68_reset_symbol_table_nest_count (NODE_T *p);
+ void a68_bind_routine_tags_to_tree (NODE_T *p);
+ void a68_fill_symbol_table_outer (NODE_T *p, TABLE_T *s);
+ void a68_finalise_symbol_table_setup (NODE_T *p, int l);
+ void a68_preliminary_symbol_table_setup (NODE_T *p);
+ void a68_mark_moids (NODE_T *p);
+ void a68_mark_auxilliary (NODE_T *p);
+ void a68_warn_for_unused_tags (NODE_T *p);
+ void a68_jumps_from_procs (NODE_T *p);
+ 
+ /* a68-parser-victal.cc  */
+ 
+ void a68_victal_checker (NODE_T *p);
+ 
+ /* a68-parser-modes.cc  */
+ 
+ int a68_count_pack_members (PACK_T *u);
+ MOID_T *a68_register_extra_mode (MOID_T **z, MOID_T *u);
+ MOID_T *a68_create_mode (int att, int dim, NODE_T *node, MOID_T *sub, PACK_T *pack);
+ MOID_T *a68_search_equivalent_mode (MOID_T *m);
+ MOID_T *a68_add_mode (MOID_T **z, int att, int dim, NODE_T *node, MOID_T *sub, PACK_T *pack);
+ void a68_contract_union (MOID_T *u);
+ PACK_T *a68_absorb_union_pack (PACK_T * u);
+ void a68_add_mode_to_pack (PACK_T **p, MOID_T *m, const char *text, NODE_T *node);
+ void a68_add_mode_to_pack_end (PACK_T **p, MOID_T *m, const char *text, NODE_T *node);
+ void a68_make_moid_list (MODULE_T *mod);
+ 
+ void a68_renumber_moids (MOID_T *p, int n);
+ 
+ /* a68-moids-to-string.cc  */
+ 
+ const char *a68_moid_to_string (MOID_T *n, size_t w, NODE_T *idf,
+ 				bool indicant_value = false);
+ 
+ /* a68-moids-misc.cc  */
+ 
+ bool a68_basic_coercions (MOID_T *p, MOID_T *q, int c, int deflex);
+ bool a68_clause_allows_balancing (int att);
+ bool a68_is_balanced (NODE_T *n, SOID_T *y, int sort);
+ bool a68_is_coercible_in_context (SOID_T *p, SOID_T *q, int deflex);
+ bool a68_is_coercible (MOID_T *p, MOID_T *q, int c, int deflex);
+ bool a68_is_coercible_series (MOID_T *p, MOID_T *q, int c, int deflex);
+ bool a68_is_coercible_stowed (MOID_T *p, MOID_T *q, int c, int deflex);
+ bool a68_is_deprefable (MOID_T *p);
+ bool a68_is_equal_modes (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_firmly_coercible (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_firm (MOID_T *p, MOID_T *q);
+ bool a68_is_meekly_coercible (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_mode_isnt_well (MOID_T *p);
+ bool a68_is_moid_in_pack (MOID_T *u, PACK_T *v, int deflex);
+ bool a68_is_name_struct (MOID_T *p);
+ bool a68_is_nonproc (MOID_T *p);
+ bool a68_is_printable_mode (MOID_T *p);
+ bool a68_is_proc_ref_file_void_or_format (MOID_T *p);
+ bool a68_is_readable_mode (MOID_T *p);
+ bool a68_is_ref_row (MOID_T *p);
+ bool a68_is_rows_type (MOID_T *p);
+ bool a68_is_softly_coercible (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_strongly_coercible (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_strong_name (MOID_T *p, MOID_T *q);
+ bool a68_is_strong_slice (MOID_T *p, MOID_T *q);
+ bool a68_is_subset (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_transput_mode (MOID_T *p, char rw);
+ bool a68_is_unitable (MOID_T *p, MOID_T *q, int deflex);
+ bool a68_is_weakly_coercible (MOID_T * p, MOID_T * q, int deflex);
+ bool a68_is_widenable (MOID_T *p, MOID_T *q);
+ MOID_T *a68_absorb_related_subsets (MOID_T *m);
+ MOID_T *a68_depref_completely (MOID_T *p);
+ MOID_T *a68_depref_once (MOID_T *p);
+ MOID_T *a68_depref_rows (MOID_T *p, MOID_T *q);
+ MOID_T *a68_deproc_completely (MOID_T *p);
+ MOID_T *a68_derow (MOID_T *p);
+ MOID_T *a68_determine_unique_mode (SOID_T *z, int deflex);
+ MOID_T *a68_get_balanced_mode (MOID_T *m, int sort, bool return_depreffed, int deflex);
+ MOID_T *a68_get_balanced_mode_or_no_mode (MOID_T *m, int sort, bool return_depreffed, int deflex);
+ MOID_T *a68_make_series_from_moids (MOID_T *u, MOID_T *v);
+ MOID_T *a68_make_united_mode (MOID_T *m);
+ MOID_T *a68_pack_soids_in_moid (SOID_T *top_sl, int attribute);
+ MOID_T *a68_unites_to (MOID_T *m, MOID_T *u);
+ void a68_absorb_series_pack (MOID_T **p);
+ void a68_absorb_series_union_pack (MOID_T **p);
+ void a68_add_to_soid_list (SOID_T **root, NODE_T *where, SOID_T *soid);
+ void a68_free_soid_list (SOID_T *root);
+ void a68_investigate_firm_relations (PACK_T *u, PACK_T *v, bool *all, bool *some);
+ void a68_make_coercion (NODE_T *l, enum a68_attribute a, MOID_T *m);
+ void a68_make_depreffing_coercion (NODE_T *n, MOID_T *p, MOID_T *q);
+ void a68_make_ref_rowing_coercion (NODE_T *n, MOID_T *p, MOID_T *q);
+ void a68_make_rowing_coercion (NODE_T *n, MOID_T *p, MOID_T *q);
+ void a68_make_soid (SOID_T *s, int sort, MOID_T *type, int attribute);
+ void a68_make_strong (NODE_T *n, MOID_T *p, MOID_T *q);
+ void a68_make_uniting_coercion (NODE_T *n, MOID_T *q);
+ void a68_make_void (NODE_T *p, MOID_T *q);
+ bool a68_is_c_mode (MOID_T *m, int level = 0);
+ 
+ #define A68_DEPREF true
+ #define A68_NO_DEPREF false
+ 
+ #define A68_IF_MODE_IS_WELL(n) (! ((n) == M_ERROR || (n) == M_UNDEFINED))
+ 
+ /* a68-moids-sorting.cc */
+ 
+ void a68_sort_union_packs (MOID_T* m);
+ 
+ /* a68-parser-scope.cc  */
+ 
+ void a68_scope_checker (NODE_T *p);
+ 
+ /* a68-parser-serial-dsa.cc  */
+ 
+ void a68_serial_dsa (NODE_T *p);
+ 
+ /* a68-parser-pragmat.cc */
+ 
+ void a68_handle_pragmats (NODE_T *p);
+ 
+ /* a68-moids-diagnostics.cc  */
+ 
+ const char *a68_mode_error_text (NODE_T *n, MOID_T *p, MOID_T *q, int context, int deflex, int depth);
+ void a68_cannot_coerce (NODE_T *p, MOID_T *from, MOID_T *to, int context, int deflex, int att);
+ void a68_warn_for_voiding (NODE_T *p, SOID_T *x, SOID_T *y, int c);
+ void a68_semantic_pitfall (NODE_T *p, MOID_T *m, int c, int u);
+ 
+ /* a68-low-misc.cc  */
+ 
+ tree a68_lower_assertion (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_jump (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_parameter (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_parameter_list (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_parameter_pack (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_operator (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-low-moids.cc  */
+ 
+ void a68_lower_moids (MOID_T *m);
+ void a68_set_type_moid (tree type, MOID_T *m);
+ tree a68_row_elements_pointer_type (tree type);
+ tree a68_row_elements_type (tree type);
+ tree a68_triplet_type (void);
+ 
+ /* a68-low-bits.cc */
+ 
+ tree a68_get_bits_skip_tree (MOID_T *m);
+ tree a68_bits_width (tree type);
+ tree a68_bits_maxbits (tree type);
+ tree a68_bits_bin (MOID_T *m, tree val);
+ tree a68_bits_abs (MOID_T *m, tree bits);
+ tree a68_bits_leng (tree type, tree bits);
+ tree a68_bits_shorten (tree type, tree bits);
+ tree a68_bits_not (tree bits);
+ tree a68_bits_and (tree bits1, tree bits2);
+ tree a68_bits_ior (tree bits1, tree bits2);
+ tree a68_bits_xor (tree bits1, tree bits2);
+ tree a68_bits_elem (NODE_T *p, tree pos, tree bits);
+ tree a68_bits_subset (tree bits1, tree bits2);
+ tree a68_bits_shift (NODE_T *p, tree shift, tree bits);
+ tree a68_bits_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_bits_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_bits_set (MOID_T *m, tree bits, tree numbit, location_t loc = UNKNOWN_LOCATION);
+ tree a68_bits_clear (MOID_T *m, tree bits, tree numbit, location_t loc = UNKNOWN_LOCATION);
+ tree a68_bits_test (tree bits, tree numbit, location_t loc = UNKNOWN_LOCATION);
+ 
+ /* a68-low_bools.cc  */
+ 
+ tree a68_get_bool_skip_tree (void);
+ tree a68_bool_abs (tree val);
+ tree a68_bool_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_bool_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ 
+ /* a68-low-ints.cc  */
+ 
+ tree a68_get_int_skip_tree (MOID_T *m);
+ tree a68_int_maxval (tree type);
+ tree a68_int_minval (tree type);
+ tree a68_int_sign (tree val);
+ tree a68_int_abs (tree val);
+ tree a68_int_shorten (MOID_T *to_mode, MOID_T *from_mode, tree val);
+ tree a68_int_leng (MOID_T *to_mode, MOID_T *from_mode, tree val);
+ 
+ tree a68_int_plus (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_minus (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_mult (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_div (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_mod (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_pow (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_int_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ 
+ /* a68-low-complex.cc  */
+ 
+ tree a68_complex_i (MOID_T *mode, tree re, tree im);
+ tree a68_complex_re (tree z);
+ tree a68_complex_im (tree z);
+ tree a68_complex_conj (MOID_T *mode, tree z);
+ tree a68_complex_widen_from_real (MOID_T *mode, tree r);
+ 
+ /* a68-low-reals.cc  */
+ 
+ tree a68_get_real_skip_tree (MOID_T *m);
+ tree a68_real_pi (tree type);
+ tree a68_real_maxval (tree type);
+ tree a68_real_minval (tree type);
+ tree a68_real_smallval (tree type);
+ tree a68_real_sign (tree val);
+ tree a68_real_abs (tree val);
+ tree a68_real_sqrt (tree val);
+ tree a68_real_tan (tree type);
+ tree a68_real_sin (tree type);
+ tree a68_real_cos (tree type);
+ tree a68_real_acos (tree type);
+ tree a68_real_asin (tree type);
+ tree a68_real_atan (tree type);
+ tree a68_real_ln (tree type);
+ tree a68_real_log (tree type);
+ tree a68_real_exp (tree type);
+ tree a68_real_shorten (MOID_T *to_mode, MOID_T *from_mode, tree val);
+ tree a68_real_leng (MOID_T *to_mode, MOID_T *from_mode, tree val);
+ tree a68_real_entier (tree val, MOID_T *to_mode, MOID_T *from_mode);
+ tree a68_real_round (tree val, MOID_T *to_mode, MOID_T *from_mode);
+ 
+ tree a68_real_plus (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_minus (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_mult (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_div (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_mod (MOID_T *m, tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_pow (MOID_T *m, MOID_T *a_mode, MOID_T *b_mode,
+ 		   tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_real_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ 
+ 
+ /* a68-low-strings.cc  */
+ 
+ tree a68_get_string_skip_tree (void);
+ tree a68_string_concat (tree str1, tree str2);
+ tree a68_string_mult (tree str1, tree str2);
+ tree a68_string_from_char (tree c);
+ tree a68_string_cmp (tree s1, tree s2);
+ char *a68_string_process_breaks (NODE_T *p, const char *str);
+ 
+ /* a68-low-chars.cc */
+ 
+ tree a68_get_char_skip_tree (void);
+ tree a68_char_max (void);
+ tree a68_char_repr (NODE_T *p, tree val);
+ tree a68_char_abs (tree val);
+ tree a68_char_eq (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_char_ne (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_char_lt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_char_le (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_char_gt (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ tree a68_char_ge (tree a, tree b, location_t loc = UNKNOWN_LOCATION);
+ 
+ /* a68-low-refs.cc  */
+ 
+ tree a68_get_ref_skip_tree (MOID_T *m);
+ 
+ /* a68-low-procs.cc  */
+ 
+ tree a68_get_proc_skip_tree (MOID_T *m);
+ 
+ /* a68-low-structs.cc  */
+ 
+ tree a68_get_struct_skip_tree (MOID_T *m);
+ 
+ /* a68-low-multiples.cc  */
+ 
+ tree a68_get_multiple_skip_tree (MOID_T *m);
+ tree a68_multiple_dimensions (tree exp);
+ tree a68_multiple_num_elems (tree exp);
+ tree a68_multiple_lower_bound (tree exp, tree dim);
+ tree a68_multiple_upper_bound (tree exp, tree dim);
+ tree a68_multiple_stride (tree exp, tree dim);
+ tree a68_multiple_triplets (tree exp);
+ tree a68_multiple_elements (tree exp);
+ tree a68_multiple_elements_size (tree exp);
+ tree a68_multiple_set_elements (tree exp, tree elements);
+ tree a68_multiple_set_elements_size (tree exp, tree elements_size);
+ void a68_multiple_compute_strides (tree type, size_t dim,
+ 				   tree *lower_bounds, tree *upper_bounds,
+ 				   tree *strides);
+ tree a68_multiple_set_lower_bound (tree exp, tree dim, tree bound);
+ tree a68_multiple_set_upper_bound (tree exp, tree dim, tree bound);
+ tree a68_multiple_set_stride (tree exp, tree dim, tree stride);
+ tree a68_row_value (tree type, size_t dim,
+ 		    tree elements, tree elements_size,
+ 		    tree *lower_bound, tree *upper_bound);
+ tree a68_row_value_raw (tree type, tree descriptor,
+ 			tree elements, tree elements_size);
+ tree a68_row_malloc (MOID_T *m, int dim,
+ 		    tree elements, tree elements_size,
+ 		    tree *lower_bound, tree *upper_bound);
+ tree a68_multiple_slice (NODE_T *p, tree multiple, bool slicing_name,
+ 			 int num_indexes, tree *indexes);
+ tree a68_multiple_copy_elems (MOID_T *to_mode, tree to, tree from);
+ tree a68_rows_dim (tree exp);
+ tree a68_rows_value (tree multiple);
+ tree a68_rows_lower_bound (tree rows, tree dim);
+ tree a68_rows_upper_bound (tree rows, tree dim);
+ tree a68_rows_dim_check (NODE_T *p, tree rows, tree dim);
+ tree a68_multiple_dim_check (NODE_T *p, tree multiple, tree dim);
+ tree a68_multiple_single_bound_check (NODE_T *p, tree dim, tree multiple,
+ 				      tree index, bool upper_bound);
+ tree a68_multiple_bounds_check (NODE_T *p, tree dim, tree multiple,
+ 				tree index);
+ tree a68_multiple_bounds_check_equal (NODE_T *p, tree m1, tree m2);
+ 
+ /* a68-low-ranges.cc  */
+ 
+ bool a68_in_global_range (void);
+ void a68_init_ranges (void);
+ void a68_push_range (MOID_T *mode);
+ tree a68_pop_range (void);
+ tree a68_pop_range_with_finalizer (tree *finalizer);
+ void a68_push_stmt_list (MOID_T *mode);
+ tree a68_pop_stmt_list (void);
+ void a68_push_function_range (tree fndel, tree result_type,
+ 			      bool top_level = false);
+ void a68_pop_function_range (tree body);
+ void a68_push_serial_clause_range (MOID_T *clause_mode,
+ 				   bool save_restore_stack = false);
+ tree a68_pop_serial_clause_range (void);
+ void a68_add_stmt (tree exp);
+ void a68_add_decl (tree decl);
+ void a68_add_decl_expr (tree decl_expr);
+ void a68_add_completer (void);
+ tree a68_range_context (void);
+ tree a68_range_names (void);
+ tree a68_range_stmt_list (void);
+ 
+ /* a68-low-runtime.cc */
+ 
+ enum a68_libcall_fn
+ {
+ #define DEF_A68_RUNTIME(CODE, N, T, P, F) A68_LIBCALL_ ## CODE,
+ #include "a68-low-runtime.def"
+ #undef DEF_A68_RUNTIME
+   A68_LIBCALL_LAST
+ };
+ 
+ tree a68_get_libcall (a68_libcall_fn libcall);
+ tree a68_build_libcall (a68_libcall_fn libcall, tree type, int nargs, ...);
+ 
+ /* a68-low-clauses.cc  */
+ 
+ void a68_begin_serial_clause (LOW_CTX_T *ctx, MOID_T *clause_mode);
+ tree a68_finish_serial_clause (LOW_CTX_T ctx, MOID_T *clause_mode, tree parent_block);
+ tree a68_lower_label (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_labeled_unit (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_completer (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_initialiser_series (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_serial_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_loop_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_conformity_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_case_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_enquiry_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_conditional_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_unit_list (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_access_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_collateral_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_parallel_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_closed_clause (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_enclosed_clause (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-low-coercions.cc */
+ 
+ tree a68_lower_dereferencing (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_rowing (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_widening (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_deproceduring (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_proceduring (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_voiding (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_uniting (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-low-decls.cc */
+ 
+ tree a68_lower_mode_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_variable_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_identity_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_procedure_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_procedure_variable_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_declarer (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_declaration_list (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_priority_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_brief_operator_declaration (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_operator_declaration (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-low.cc  */
+ 
+ tree a68_lower_top_tree (NODE_T *p);
+ tree a68_lower_tree (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_make_identity_declaration_decl (NODE_T *identifier, const char *module_name = NULL,
+ 					 bool indicant = false, bool external = false,
+ 					 const char *extern_symbol = NULL);
+ tree a68_make_variable_declaration_decl (NODE_T *identifier, const char *module_name = NULL,
+ 					 bool external = false,
+ 					 const char *extern_symbol = NULL);
+ tree a68_make_proc_identity_declaration_decl (NODE_T *identifier, const char *module_name = NULL,
+ 					      bool indicant = false, bool external = false,
+ 					      const char *extern_symbol = NULL);
+ tree a68_make_formal_hole_decl (NODE_T *p, const char *extern_symbol, bool addrp);
+ tree a68_make_anonymous_routine_decl (MOID_T *mode);
+ tree a68_get_skip_tree (MOID_T *m);
+ tree a68_get_empty (void);
+ void a68_ref_counts (tree exp, MOID_T *m, int *num_refs, int *num_pointers);
+ tree a68_consolidate_ref (MOID_T *m, tree expr);
+ tree a68_lower_alloca (MOID_T *m, tree size);
+ tree a68_lower_malloc (MOID_T *m, tree size);
+ tree a68_checked_indirect_ref (NODE_T *p, tree exp, MOID_T *exp_mode);
+ tree a68_low_deref (tree exp, NODE_T *p);
+ tree a68_low_dup (tree exp, bool use_heap = false);
+ tree a68_low_ascription (MOID_T *mode, tree lhs, tree rhs);
+ tree a68_low_assignation (NODE_T *p, tree lhs, MOID_T *lhs_mode, tree rhs, MOID_T *rhs_mode);
+ tree a68_lower_memcpy (tree dst, tree src, tree size);
+ tree a68_lower_tmpvar (const char *name, tree type, tree init);
+ tree a68_get_mangled_identifier (const char *name,
+ 				 const char *mname = NULL, bool internal = false,
+ 				 bool numbered = false);
+ tree a68_get_mangled_indicant (const char *name,
+ 			       const char *mname = NULL, bool internal = false,
+ 			       bool numbered = false);
+ char *a68_demangle_symbol (const char *mname, const char *symbol,
+ 			   bool is_operator = false);
+ tree a68_low_toplevel_func_decl (const char *name, tree fntype);
+ tree a68_low_func_param (tree fndecl, const char *name, tree type);
+ 
+ /* a68-low-builtins.cc */
+ 
+ void a68_install_builtins ();
+ 
+ /* a68-low-unions.c  */
+ 
+ int a68_united_mode_index (MOID_T *p, MOID_T *q);
+ tree a68_get_union_skip_tree (MOID_T *m);
+ tree a68_union_overhead (tree exp);
+ tree a68_union_set_overhead (tree exp, tree overhead);
+ tree a68_union_cunion (tree exp);
+ tree a68_union_alternative (tree exp, int index);
+ tree a68_union_value (MOID_T *mode, tree exp, MOID_T *exp_mode);
+ tree a68_union_translate_overhead (MOID_T *from, tree from_overhead, MOID_T *to);
+ bool a68_union_contains_mode (MOID_T *p, MOID_T *q);
+ 
+ /* a68-low-holes.cc */
+ 
+ tree a68_wrap_formal_var_hole (NODE_T *p);
+ void a68_wrap_formal_proc_hole (NODE_T *p, tree fndecl);
+ 
+ /* a68-low-units.cc  */
+ 
+ tree a68_lower_identifier (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_denotation (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_denotation (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_skip (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_nihil (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_empty (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_identity_relation (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_logic_function (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_primary (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_cast (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_secondary (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_slice (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_selection (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_formula (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_monadic_formula (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_tertiary (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_assignation (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_routine_text (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_generator (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_call (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_formal_hole (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_unit (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-low-generator.c  */
+ 
+ tree a68_low_generator (NODE_T *declarer, MOID_T *mode,
+ 			bool heap, LOW_CTX_T ctx);
+ tree a68_low_gen (MOID_T *m, size_t nbuonds, tree *bounds,
+ 		  bool use_heap);
+ 
+ /* a68-low-prelude.c  */
+ 
+ tree a68_lower_unimplemented (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_assert (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_intabs2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_realabs2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_boolabs2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_charabs2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_not2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_and3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_or3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_xor3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_confirm2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_negate2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_sign2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_realsign2 (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_plus_int (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_plus_real (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_minus_int (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_minus_real (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_mult_int (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_mult_real (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_multab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_div3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_divab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_rdiv3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_over3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_mod3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_lt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_le3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_gt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_int_ge3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_lt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_le3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_gt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_real_ge3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_lt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_le3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_gt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_ge3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bool_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bool_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_plusab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_minusab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_overab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_modab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_upb2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_upb3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_lwb2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_lwb3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_elems2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_elems3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_entier2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_round2 (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_pow_int (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_pow_real (NODE_T *p, LOW_CTX_T ctx);
+ 
+ tree a68_lower_odd2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_lt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_le3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_gt3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_ge3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_plus3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_plus3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_plusab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_mult3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_char_mult3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_multab3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_string_plusto3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_repr2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitelem3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bin2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitabs2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitleng2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitshorten2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitnot2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitand3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitior3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitxor3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shl3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shr3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_eq3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_ne3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_le3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bit_ge3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_maxint (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_minint (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_maxbits (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_maxreal (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_minreal (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_smallreal (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitswidth (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longbitswidth (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longlongbitswidth (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shortbitswidth (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shortshortbitswidth (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_pi (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_nullcharacter (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_flip (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_flop (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_errorchar (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_blank (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_eofchar (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_replacementchar (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_intlengths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_intshorths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitslengths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_bitsshorths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_reallengths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_realshorths (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_infinity (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_minusinfinity (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_maxabschar (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_sqrt (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_sqrt (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_sqrt (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_tan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_tan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_tan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_sin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_sin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_sin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_cos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_cos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_cos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_acos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_acos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_acos (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_asin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_asin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_asin (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_atan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_atan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_atan (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_ln (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_ln (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_ln (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_log (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_log (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_log (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_exp (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_exp (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_long_long_exp (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_reali (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longreali (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longlongreali (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_inti (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longinti (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longlonginti (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_re2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_im2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_conj2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shortenint2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_lengint2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_lengreal2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_shortenreal2 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_random (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longrandom (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_longlongrandom (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_set3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_clear3 (NODE_T *p, LOW_CTX_T ctx);
+ tree a68_lower_test3 (NODE_T *p, LOW_CTX_T ctx);
+ 
+ /* a68-exports.cc  */
+ 
+ MOIF_T *a68_moif_new (const char *module_name);
+ void a68_moif_free (MOIF_T *moif);
+ void a68_do_exports (NODE_T *p);
+ 
+ /* a68-imports.cc  */
+ 
+ MOIF_T *a68_open_packet (const char *module, const char *filename = NULL);
+ bool a68_process_module_map (const char *map, const char **errmsg);
+ char *a68_find_object_export_data (const std::string &filename,
+ 				   int fd, off_t offset, size_t *size);
+ 
+ /* a68-imports-archive.cc  */
+ 
+ bool a68_is_archive_magic (const char *bytes);
+ char *a68_find_archive_export_data (const char *filename, int fd, size_t *size);
+ 
+ /* a68-parser-debug.cc  */
+ 
+ void a68_dump_parse_tree (NODE_T *p, bool tables = false, bool levels = false);
+ void a68_dump_modes (MOID_T *m);
+ void a68_dump_moif (MOIF_T *moif);
+ 
+ #endif /* ! __A68_H__ */
diff -Nrcpad gcc-15.2.0/gcc/algol68/a68spec.cc gcc-16.1.0-RC-20260423/gcc/algol68/a68spec.cc
*** gcc-15.2.0/gcc/algol68/a68spec.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/a68spec.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,222 ----
+ /* a68spec.c -- Specific flags and argument handling of the Algol 68 front end.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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 "opt-suggestions.h"
+ #include "gcc.h"
+ #include "tm.h"
+ #include "opts.h"
+ 
+ /* satisfy intellisense  */
+ #include "options.h"
+ 
+ /* How to link with libga68.  */
+ enum libga68_link_mode
+ {
+   LIBGA68_NOLINK,
+   LIBGA68_STATIC,
+   LIBGA68_DYNAMIC
+ };
+ 
+ static enum libga68_link_mode libga68_link = LIBGA68_STATIC;
+ 
+ /* This bit is set if we saw a `-xfoo' language specification.  */
+ #define LANGSPEC (1 << 1)
+ /* This bit is set if they did `-lc'.  */
+ #define WITHLIBC (1 << 2)
+ /* Skip this option.  */
+ #define SKIPOPT (1 << 3)
+ 
+ void
+ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
+ 		      unsigned int *in_decoded_options_count,
+ 		      int *in_added_libraries)
+ {
+   unsigned int i, j;
+ 
+   /* The new argument list will be contained in this.  */
+   struct cl_decoded_option *new_decoded_options;
+ 
+   /* "-lc" if it appears on the command line.  */
+   const struct cl_decoded_option *saw_libc = 0;
+ 
+   /* An array used to flag each argument that needs a bit set for
+      LANGSPEC or WITHLIBC.  */
+   int *args;
+ 
+   /* True if we saw -static.  */
+   int static_link = 0;
+ 
+   /* True if we should add -shared-libgcc to the command-line.  */
+   int shared_libgcc = 1;
+ 
+   /* The total number of arguments with the new stuff.  */
+   unsigned int argc;
+ 
+   /* The argument list.  */
+   struct cl_decoded_option *decoded_options;
+ 
+   /* The number of libraries added in.  */
+   int added_libraries;
+ 
+   /* The total number of arguments with the new stuff.  */
+   int num_args = 1;
+ 
+   /* Whether the -o option was used.  */
+   //  bool saw_opt_o = false;
+ 
+   argc = *in_decoded_options_count;
+   decoded_options = *in_decoded_options;
+   added_libraries = *in_added_libraries;
+ 
+   args = XCNEWVEC (int, argc);
+ 
+   for (i = 1; i < argc; i++)
+     {
+       const char *arg = decoded_options[i].arg;
+ 
+       switch (decoded_options[i].opt_index)
+ 	{
+ 	case OPT__help:
+ 	case OPT__help_:
+ 	  /* Let gcc.cc handle this.  */
+ 	  *in_added_libraries = 0;
+ 	  return;
+ 	case OPT_c:
+ 	case OPT_E:
+ 	case OPT_M:
+ 	case OPT_MM:
+ 	case OPT_fsyntax_only:
+ 	case OPT_S:
+ 	  libga68_link = LIBGA68_NOLINK;
+ 	  break;
+ 
+ 	case OPT_l:
+ 	  if (strcmp (arg, "c") == 0)
+ 	    args[i] |= WITHLIBC;
+ 	  break;
+ 
+ 	case OPT_o:
+ 	  //saw_opt_o = true;
+ 	  break;
+ 
+ 	case OPT_static:
+ 	  static_link = 1;
+ 	  break;
+ 
+ 	case OPT_static_libgcc:
+ 	  shared_libgcc = 0;
+ 	  break;
+ 
+ 	case OPT_static_libga68:
+ 	  libga68_link = LIBGA68_STATIC;
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+ 	  /* Remove -static-libga68 from the command only if target supports
+ 	     LD_STATIC_DYNAMIC.  When not supported, it is left in so that a
+ 	     back-end target can use outfile substitution.  */
+ 	  args[i] |= SKIPOPT;
+ #endif
+ 	  break;
+ 
+ 	case OPT_shared_libga68:
+ 	  libga68_link = LIBGA68_DYNAMIC;
+ 	  args[i] |= SKIPOPT;
+ 	  break;
+ 
+ 	case OPT_SPECIAL_input_file:
+ 	  break;
+ 	}
+     }
+ 
+     /* There's no point adding -shared-libgcc if we don't have a shared
+        libgcc.  */
+ #ifndef ENABLE_SHARED_LIBGCC
+   shared_libgcc = 0;
+ #endif
+ 
+   /* Make sure to have room for the trailing NULL argument.
+      - libga68 adds `-Bstatic -lga68 -Bdynamic' */
+   num_args = argc + shared_libgcc + 1 * 5 + 10;
+   new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);
+ 
+   i = 0;
+   j = 0;
+ 
+   /* Copy the 0th argument, i.e., the name of the program itself.  */
+   new_decoded_options[j++] = decoded_options[i++];
+ 
+   /* NOTE: We start at 1 now, not 0.  */
+   while (i < argc)
+     {
+       new_decoded_options[j] = decoded_options[i];
+ 
+       if (!saw_libc && (args[i] & WITHLIBC))
+ 	{
+ 	  --j;
+ 	  saw_libc = &decoded_options[i];
+ 	}
+ 
+       if ((args[i] & SKIPOPT) != 0)
+ 	--j;
+ 
+       i++;
+       j++;
+     }
+ 
+   if (saw_libc)
+     new_decoded_options[j++] = *saw_libc;
+   if (shared_libgcc && !static_link)
+     generate_option (OPT_shared_libgcc, NULL, 1, CL_DRIVER,
+ 		     &new_decoded_options[j++]);
+ 
+   /* Add `-lga68 -lm' if we haven't already done so.  */
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+   if (libga68_link == LIBGA68_STATIC && !static_link)
+     {
+       generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER,
+ 		       &new_decoded_options[j++]);
+       added_libraries++; /* The driver calls add_infile while handling -Wl */
+     }
+ #endif
+   generate_option (OPT_l,
+ 		   "ga68", 1,
+ 		   CL_DRIVER, &new_decoded_options[j++]);
+   added_libraries++;
+ #ifdef HAVE_LD_STATIC_DYNAMIC
+   if (libga68_link == LIBGA68_STATIC && !static_link)
+     {
+       generate_option (OPT_Wl_, LD_DYNAMIC_OPTION, 1, CL_DRIVER,
+ 		       &new_decoded_options[j++]);
+       added_libraries++; /* The driver calls add_infile while handling -Wl */
+     }
+ #endif
+   *in_decoded_options_count = j;
+   *in_decoded_options = new_decoded_options;
+   *in_added_libraries = added_libraries;
+ }
+ 
+ /* Called before linking.  Returns 0 on success and -1 on failure.  */
+ int
+ lang_specific_pre_link (void)
+ {
+   if (libga68_link != LIBGA68_NOLINK)
+     do_spec ("%:include(libga68.spec)");
+   return 0;
+ }
+ 
+ /* Number of extra output files that lang_specific_pre_link may generate.  */
+ int lang_specific_extra_outfiles = 0; /* Not used for Algol68.  */
diff -Nrcpad gcc-15.2.0/gcc/algol68/config-lang.in gcc-16.1.0-RC-20260423/gcc/algol68/config-lang.in
*** gcc-15.2.0/gcc/algol68/config-lang.in	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/config-lang.in	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,32 ----
+ # config-lang.in -- Top level configure fragment for gcc Algol 68 frontend.
+ 
+ # Copyright (C) 2025-2026 Free Software Foundation, Inc.
+ 
+ # GCC is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # 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/>.
+ 
+ # Configure looks for the existence of this file to auto-config each language.
+ # We define several parameters used by configure:
+ #
+ # language	- name of language as it would appear in $(LANGUAGES)
+ # compilers	- value to add to $(COMPILERS)
+ 
+ language="algol68"
+ compilers="a681\$(exeext)"
+ gtfiles="\$(srcdir)/algol68/a68-types.h \$(srcdir)/algol68/a68.h \$(srcdir)/algol68/a68-lang.cc \$(srcdir)/algol68/a68-low-ranges.cc"
+ 
+ target_libs="target-libga68"
+ 
+ # Do not build by default.
+ build_by_default="no"
diff -Nrcpad gcc-15.2.0/gcc/algol68/ga68-coding-guidelines.texi gcc-16.1.0-RC-20260423/gcc/algol68/ga68-coding-guidelines.texi
*** gcc-15.2.0/gcc/algol68/ga68-coding-guidelines.texi	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ga68-coding-guidelines.texi	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,873 ----
+ \input texinfo  @c -*-texinfo-*-
+ @c %**start of header
+ @setfilename ga68-coding-guidelines.info
+ 
+ @include gcc-common.texi
+ 
+ @synindex tp cp
+ 
+ @settitle GNU Algol 68 Coding Guidelines
+ 
+ @c %**end of header
+ 
+ @c %** start of document
+ 
+ @copying
+ Copyright @copyright{} 2026 Jose E. Marchesi.
+ 
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3 or
+ any later version published by the Free Software Foundation; with no
+ Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+ copy of the license is included in the section entitled ``GNU Free
+ Documentation License''.
+ @end copying
+ 
+ @ifinfo
+ @dircategory Software development
+ @direntry
+ * ga68-coding-guidelines: (ga68-coding-guidelines).           GNU Algol 68 Coding Guidelines.
+ @end direntry
+ This document contains a set of conventions and recommendations for
+ writing Algol 68 code which is part of ga68, the GNU Algol 68
+ compiler. As with any coding conventions, the goal is to achieve a
+ coherent style among the code base.
+ 
+ @insertcopying
+ @end ifinfo
+ 
+ @c Macro for bold-tags.  In TeX and HTML they expand to proper bold words,
+ @c in other formats it resorts to upper stropping.
+ @iftex
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end iftex
+ 
+ @ifhtml
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end ifhtml
+ 
+ @ifnottex
+ @ifnothtml
+ @macro B{tag}
+ @sc{\tag\}
+ @end macro
+ @end ifnothtml
+ @end ifnottex
+ 
+ @setchapternewpage odd
+ @titlepage
+ @title GNU Algol 68 Coding Guidelines
+ @versionsubtitle
+ @author Jose E. Marchesi
+ @page
+ @vskip 0pt plus 1filll
+ @sp 1
+ @insertcopying
+ @end titlepage
+ 
+ @summarycontents
+ @contents
+ 
+ @page
+ 
+ @ifnottex
+ @node Top
+ @top Introduction
+ @cindex Introduction
+ 
+ This document contains a set of conventions and recommendations for
+ writing Algol 68 code which is part of @command{ga68}, the GNU Algol
+ 68 compiler. As with any coding conventions, the goal is to achieve a
+ coherent style among the code base.
+ 
+ Algol 68 is probably the programming language with the most carefully
+ and lovingly designed syntax ever made.  It can be verbose when it is
+ convenient for the programmer, and also extremely compact while
+ keeping an astounding high level of readability.  These conventions
+ aim to make a good use of that.
+ 
+ Feel free to adopt our guidelines for your own Algol 68 project,
+ partially or entirely.
+ 
+ In what follows we make extensive use of Algol 68 terminology, which
+ may be confusing at first for the uninitiated reader.  The Algol 68
+ Jargon File provides definitions for many of the terms used in the
+ context of the Algol 68 programming language and associated
+ technologies.  If you find yourself wondering about "frobyts" or
+ "enclosed clauses", please look them up in the jargon
+ file@footnote{@url{https://jemarch.net/a68-jargon}}.  The file is
+ available online in the www and, in Gentoo, as manpages once you
+ install the app-doc/a68-jargon package. Just type @command{man 7algol
+ frobyt} in the terminal, for example.
+ 
+ Additionally, in this document we use the term "space" and "spaces" to
+ refer to "typographical display features", i.e. spaces, tabs and
+ newlines.  These characters are of no significance and do not alter
+ the meaning of the program when they appear between symbols, outside
+ of string and character denotations, but they have a great impact on
+ the readability of the code and are the main tool for formatting.
+ 
+ @menu
+ * Stropping::              What stropping regime to use.
+ * Formatting::             Using spaces wisely.
+ * Comments::               No idem.
+ * Syntactic Conventions::  How to best write certain constructs.
+ * Naming::                 Choosing good tags and bold words.
+ * Programming Style::      Recommendations on style.
+ 
+ * GNU Free Documentation License::
+                            How you can copy and share this manual.
+ * Index::                  Index of this documentation.
+ @end menu
+ @end ifnottex
+ 
+ @c ---------------------------------------------------------------------
+ @c Stropping
+ @c ---------------------------------------------------------------------
+ 
+ @node Stropping
+ @chapter Stropping
+ 
+ The GNU Algol 68 compiler supports two stropping regimes:
+ 
+ @itemize @minus
+ @item
+ The classic @dfn{UPPER stropping}, which is one of the standard
+ stropping regimes defined in the Standard Hardware Representation for
+ Algol 68.  This regime uses upper-case letters to encode bold letters
+ and lower-case letters to encode non-bold letters.
+ @item
+ The modern @dfn{SUPPER stropping}, which is a GNU extension.  This is
+ the standard stropping regime in GCC, and its rules are similar to the
+ naming conventions widely used in many modern programming languages.
+ The resulting programs have a very modern feeling.
+ @end itemize
+ 
+ In GCC we use SUPPER stropping only.  The only instance of UPPER
+ stropping are in test cases.  Some of the guidelines and
+ considerations in this document may also be useful in programs using
+ UPPER stropping.
+ 
+ @node Formatting
+ @chapter Formatting
+ 
+ The placement of spaces and empty lines in the program text plays an
+ important role when it comes to readability.
+ 
+ @menu
+ * Empty lines::
+ * Spaces before parentheses::
+ * Spaces after parentheses::
+ * Spaces within packs::
+ * Spaces in row displays::
+ * Spaces in formulas::
+ * Spaces in declarers::
+ * Spaces in indexers and trimmers::
+ * Spaces in brief clause forms::
+ @end menu
+ 
+ @node Empty lines
+ @section Empty lines
+ 
+ Empty lines are often used in programs to separate logical parts in a
+ sequence of statements or expressions.  This avoids the code to look
+ like walls of text, which are somewhat difficult to read.  This of
+ course also applies to Algol 68, but to a much lesser degree due to
+ the exceptionally clean syntax of the language.  Therefore we favor a
+ compact formatting to a reasonable extent.
+ 
+ Please be frugal with empty lines, especially within enclosed clauses.
+ 
+ It is not necessary nor advisable to have separated "declaration
+ parts" in serial clauses, because declarations can appear anywhere.
+ However empty lines may still be useful to group related declarations
+ together.
+ 
+ It is often better to use an explanatory comment rather than an empty
+ line, again especially within enclosed clauses.
+ 
+ @node Spaces before parentheses
+ @section Spaces before parentheses
+ 
+ Do not put spaces before open-parentheses in routine calls.
+ 
+ But make sure to always put a space between @code{union} or
+ @code{struct} and the open parenthesis that follows in declarers.
+ 
+ Likewise, please put a space before the open parenthesis when the
+ enclosed clause in a cast is a closed clause.
+ 
+ Examples:
+ 
+ @example
+ @{ No space before open-parentheses in calls @}
+ puts(fixed(count,0) + "'n");
+ 
+ @{ Space between `union' or `struct' and `(' @}
+ mode Number = union (int,long int,real,long real)
+ 
+ @{ Space before '(' in casts @}
+ ref JSON_Fld (fields) := field;
+ @end example
+ 
+ @node Spaces after parentheses
+ @section Spaces after parentheses
+ 
+ When writing routine texts always place a space between the formal
+ parameters pack and the mode of the value yielded by the routine.
+ 
+ When writing operator and procedure declarators do not put a space
+ between the parameter modes pack and the mode of the yielded value.
+ 
+ Also in declarers, do not put a space after @code{op} or @code{proc}
+ and the parameter modes pack.
+ 
+ @example
+ @{ Space after formal parameters pack in routine text @}
+ json_foreach_elem(a, (ref JSON_Val v) void: len +:= 1)
+ 
+ @{ No space after parameters pack in procedure and operator
+   declarators @}
+ proc(string)void error;
+ @end example
+ 
+ @node Spaces within packs
+ @section Spaces within packs
+ 
+ With "pack" we refer to the following source constructs which are
+ collections of other constructs enclosed between @code{(} and @code{)}
+ symbols:
+ 
+ @itemize @minus
+ @item The actual parameters in a call.
+ @item The formal parameters in a routine text.
+ @item The fields in a struct mode declarator.
+ @item The modes of the united modes in an union mode declarator.
+ @item The modes of the parameters in an operator or procedure declarator.
+ @end itemize
+ 
+ Spaces are optional after commas in packs when both the preceding and
+ following symbols are tags.
+ 
+ Put a space after commas in packs when the next construct is not a
+ tag, but only if the preceding construct is a tag.
+ 
+ Do not put spaces before commas in packs.
+ 
+ Examples:
+ 
+ @example
+ @{ Spaces are optional around commas surrounded by tags @}
+ process(socket, resp, fragmented);
+ process(socket,resp,fragmented);
+ op E = (Symbol a,b) bool: a = b;
+ op E = (Symbol a, b) bool: a = b;
+ 
+ @{ Space after commas separating a non tag and a tag @}
+ op E = (Symbol s, Word w) bool: s E w;
+ mode M = struct (int i, real r);
+ 
+ @{ No spaces in commas separating non tags @}
+ proc(int,string,[]real)int callback;
+ op(int,int)int handler;
+ mode Data = union (void,bool,int)
+ @end example
+ 
+ @node Spaces in row displays
+ @section Spaces in row displays
+ 
+ Within row displays spaces are optional after commas, but please never
+ put spaces before commas.
+ 
+ @example
+ @{ Spaces are ok after commas in row-displays @}
+ []int a = (1,2,3);
+ []int b = (1, 2, 3);
+ []string names = ("jemarch",
+                   "mnabipoor",
+                   "pietr0");
+ @end example
+ 
+ @node Spaces in formulas
+ @section Spaces in formulas
+ 
+ Do not put spaces after monadic operators whose representation is not
+ a bold word.
+ 
+ However, if the monadic operator is represented by a bold word, always
+ put a space between the operator and the operand, even when the
+ operand starts with a parenthesis.
+ 
+ Always put spaces before and after dyadic operators if the formula is
+ not parenthesized.  Spaces are optional if the formula is
+ parenthesized, provided the operator is not represented by a bold
+ word.  Note however that if long tags are involved extra spaces may be
+ advisable even for parenthesized formulas.
+ 
+ Examples:
+ 
+ @example
+ @{ No space after non-bold monadic operators @}
+ int i = -10;
+ 
+ @{ Always a space after bold monadic operator @}
+ int i = ABS (base + offset)
+ 
+ @{ Spaces in dyadic opeator @}
+ total := a + b;
+ index := cnt +:= 1;
+ total := (a + b);
+ index := (cnt +:= 1);
+ total := (a+b);
+ index := (cnt+:=1)
+ @end example
+ 
+ @node Spaces in declarers
+ @section Spaces in declarers
+ 
+ 
+ Do not put spaces after ']' in row mode declarers.
+ 
+ Do not put spaces after the bounds of a declarer.
+ 
+ Also, do not put spaces directly within the bounds of a declarer,
+ unless for indentation purposes.  Since bounds can contain any unit,
+ the general rules apply within these.
+ 
+ Examples:
+ 
+ @example
+ @{ No space after `]' in declarers @}
+ []int a = (1,2,3);
+ 
+ @{ No spaces after bounds in declarers @}
+ mode List = [10]int,
+      MatrixList = [10][3,3]int,
+      Numbers = []union (int,real);
+ 
+ @{ No spaces directly within bounds in declarers @}
+ mode MyString = [1:10@@]MyChar,
+      DynamicTable = [read_int(10, 20),
+                      read_int(10, 20)]char;
+ @end example
+ 
+ @node Spaces in indexers and trimmers
+ @section Spaces in indexers and trimmers
+ 
+ 
+ While indexing and trimming a multiple, never put a space between the
+ indexed tertiary and the SUB symbol.
+ 
+ Do not put spaces direcly within indexers and trimmers, unless for
+ indentation purposes.  As an exception to this rule, you can put a
+ single space before the "at" operator @code{@@} if desired.
+ 
+ Examples:
+ 
+ @example
+ @{ No space between tertiary and '[' @}
+ int i = a[i];
+ int i = a[10:20]
+ 
+ @{ No direct spaces within trimmers and indexers, but before @ @}
+ []int a = b[2:5@@10];
+ []int c = d[10:20 @@1];
+ @end example
+ 
+ @node Spaces in brief clause forms
+ @section Spaces in brief clause forms
+ 
+ It is generally a good idea to have spaces around @code{|} and
+ @code{|:} within the brief forms of conditional clauses, case clauses
+ and conformity clauses.
+ 
+ When the brief forms are very short and the units are number
+ denotations, it may be more clear to not use spaces, especially when
+ the form is an operand in a formula.
+ 
+ Examples:
+ 
+ @example
+ @{ Space around | and |: in brief forms @}
+ (v | (void): "empty", (bool b): (b | "true" | "false"))
+ 
+ @{ No spaces may be more readable sometimes @}
+ int n = 2 + (c>3|10|20);
+ @end example
+ 
+ @node Comments
+ @chapter Comments
+ 
+ Use @code{"foo"} to refer to formal parameters when documenting
+ procedures or operators.
+ 
+ Use @code{`whatever'} to refer to any other source construct that is
+ not a formal parameter.
+ 
+ Use @code{@{@{} and @code{@}@}} delimiters for commenting out code.
+ Remember comments in modern Algol 68 are nestable.
+ 
+ Examples:
+ 
+ @example
+ int error_hash = 0;
+ 
+ @{ Return a hash code for the string "s", or `error_hash' if the string
+   is too long.  @}
+ 
+ proc hash_string (string s)
+ 
+ @{@{ int no_longer_needed; @}@}
+ @end example
+ 
+ @node Syntactic Conventions
+ @chapter Syntactic Conventions
+ 
+ @menu
+ * Closed clauses::
+ * Indexers and trimmers::
+ * Conditional clauses::
+ * Loop clauses::
+ * Case and conformity clauses::
+ * Procedure and operator declarations::
+ * Contracted declarations::
+ * Brief clause forms::
+ @end menu
+ 
+ @node Closed clauses
+ @section Closed clauses
+ 
+ Algol 68 allows using @code{(} and @code{)} instead of @code{begin} and
+ @code{end} to delimit closed clauses.  In fact, parenthesized
+ expression in other programming languages are realized in Algol 68
+ with closed clauses, in a very orthogonal way.  Both forms are useful
+ and can generally be used according to the programmer's taste.
+ However, this section contains a few guidelines and recommendations on
+ this regard.
+ 
+ Use parentheses for closed clauses that span a single line, regardless
+ of the context.  Having @code{begin} and @code{end} symbols in the
+ same line looks weird and confusing.
+ 
+ As a general rule, always use parentheses in closed clauses that are
+ operands in a formula.  Exceptionally, using @code{begin} and
+ @code{end} in formula operands may be preferable if the operand
+ contains many declarations and units, and only if it spans for more
+ than one line.  In this case, however, please consider factoring the
+ code in the operand into a routine and replace it with a procedure
+ call.
+ 
+ The preferred indentation for a closed clause whose contents span more
+ than one line, and that uses @code{begin} and @code{end} symbols as
+ delimiters, is to indent the contents right at the right of the
+ @code{begin} symbol.  The @code{end} symbol shall then be placed in
+ its own line, with the same indentation level than the opening symbol.
+ 
+ If the closed clause contains empty lines, or if the line preceding
+ the closed clause is so long that it would "hide" the first line in
+ the closed clause, then it is ok to put the first unit or declaration
+ in the line after @code{begin}.  This usually happens when the closed
+ clause is the body of a long routine text.
+ 
+ The preferred indentation for a closed clause whose contents span more
+ than one line, and that uses @code{(} and @code{)} symbols as
+ delimiters, is to indent the contents right at the right of the
+ @code{(} symbol.  The @code{)} symbol finishing the closed clause
+ shall not be placed in its own line.
+ 
+ @example
+ @{ No `begin' and `end' in the same line @}
+ int i = 2 + (3+4);
+ int i = 2 + (int i = random(); i % 10 );
+ bool test = case v in (string): (puts (s); true) out false esac;
+ 
+ @{ Closed clauses as formula operands @}
+ int i = 2 + (int cnt := 0;
+              to UPB data[@@1] do cnt +:= 1 od;
+              cnt)
+ int j = 2 + begin int cnt := 0;
+                   to UPB data[@@1] do cnt +:= 1 od;
+                   cnt
+                   end
+ 
+ @{ Closed clause with no empty lines @}
+ begin int fd = fopen ("data', file_o_rdonly")
+       puts ("first line: " + fgets (fd, 0));
+       fclose (fd)
+ end;
+ 
+ @{ Closed clause with no empty lines but with preceding
+   line of similar length @}
+ proc parse_number = int:
+ begin
+       int num := 0;
+       while num := num * 10 + ABS ch - ABS "0";
+             isdigi(getachar)
+       do ~ od;
+       ungeachar(ch);
+       num
+ end;
+ 
+ @{ Closed clause with empty lines @}
+ proc main_proc = int:
+ begin
+       @{ Auxiliary procs @}
+       proc aux1 = int: ...;
+       proc aux2 = int: ...;
+ 
+       @{ Computation @}
+       aux1;
+       aux2;
+ 
+       @{ Result @}
+       aux1 + aux2
+ end
+ 
+ @{ Indentation of closed clauses using `(' and `)' delimiters @}
+ proc parse_number = int:
+ (int num := 0;
+  while num := num * 10 + ABS ch - ABS "0";
+        isdigi(getachar)
+  do ~ od;
+  ungeachar(ch);
+  num)
+ @end example
+ 
+ 
+ @node Indexers and trimmers
+ @section Indexers and trimmers
+ 
+ Algol 68 allows using @code{(} and @code{)} instead of @code{[} and
+ @code{]} in bounds and slices to represent the SUB and BUS
+ symbols. This is supported by ga68 via the @option{-fbrackets}
+ command-line option in order to ease the porting of old code, and it
+ is disabled by default. Please always use square brackets for indexing
+ in new code.
+ 
+ @node Conditional clauses
+ @section Conditional clauses
+ 
+ If a conditional clause is still clear and not of excessive length
+ when written on a single line, just do it.
+ 
+ Start the enquiry clause in the if-part of a conditional clause right
+ after the @code{if} symbol, not in the next line.
+ 
+ The serial clauses in the then- and if-parts of the conditional clause
+ shall be indented five positions right, which is the length of both
+ the @code{then} and @code{else} symbols plus one.
+ 
+ The first declaration or unit in the then- and if-parts shall be
+ placed in the same line than the @code{then} and @code{else} symbols,
+ respectively.
+ 
+ Place the @code{fi} closing symbol in its own line, with the same
+ indentation level than the matching @code{if}.  The exception to this
+ rule is when the conditional clause has no else-part and the then-part
+ spans for a single line that is not too long.  In that case, place the
+ @code{fi} in the same line than @code{then}.
+ 
+ Examples:
+ 
+ @example
+ @{ Very small conditional clause in a single line @}
+ if idx < 0 then fatal("invalid idx") fi
+ 
+ @{ Short conditional-clause with `fi' in the same line
+   than `then' @}
+ if argc /= 3
+ then puts("expected two arguments'n") fi
+ 
+ @{ A conditional-clause that spans several lines @}
+ if a > 10
+ then puts("truncating");
+      a := 10
+ fi
+ @end example
+ 
+ @node Loop clauses
+ @section Loop clauses
+ 
+ 
+ If a loop clause is small enough to fit in a single line without
+ occupying most of it, just do it.
+ 
+ If a loop clause spans two lines, and the second line is not too long,
+ you can put @code{od} in the same line than @code{do}.
+ 
+ If a loop clause spans several lines, please put the @code{do} symbol
+ in its own line, indented to the same level than the clause's frobyts.
+ 
+ Examples:
+ 
+ @example
+ @{ Very short loop-clause in a single line.  @}
+ for a to argc do puts ("arg: " + argv[a]) od;
+ 
+ @{ Short loop-clause with `od' in the same line than `do' @}
+ for i from LWB a to UPB a
+ do total +:= a[i] od
+ 
+ @{ A loop-clause that spans several lines @}
+ while NOT exit
+ do string cmd = get_command;
+    process_command(cmd)
+ od
+ @end example
+ 
+ 
+ @node Case and conformity clauses
+ @section Case and conformity clauses
+ 
+ Do not write a case or conformity clause in a single line, unless
+ you are using the brief form.  Unlike conditional and loop clauses,
+ these are difficult to read.
+ 
+ Please put the @code{in}, @code{out} and @code{ease} symbols in their
+ own lines, with the same indentation level than the matching
+ @code{case}.
+ 
+ Start the choices right after the @code{in} symbol, in the same line.
+ All the choices may fit in a single line.  If they don't, please put
+ each choice in its own line.
+ 
+ @example
+ @{ Short case clause @}
+ case i
+ in 100, 200, 300 out 0 esac;
+ 
+ @{ Long case clause @}
+ case i
+ in 100,
+    200,
+    300
+ ouse i % 100
+ in 100,
+    200,
+    300
+ esac;
+ 
+ @{ Long conformity clause @}
+ case v
+ in (void): "empty",
+    (bool b): (b | "true" | "false"),
+    (string s): s
+ esac
+ @end example
+ 
+ @node Procedure and operator declarations
+ @section Procedure and operator declarations
+ 
+ In procedure and operator declarations, if the body of a routine text
+ starts with 'begin', put it at the same indentation than the
+ @code{pub}, @code{proc} or @code{op}.  Otherwise, indent it three
+ spaces to the right relative to the @code{pub}, @code{proc} or
+ @code{op}.
+ 
+ Examples:
+ 
+ @example
+ @{ Body of routine is a `begin'..`end' closed clause @}
+ proc checked_div = (int a,b) int:
+ begin
+       if b = 0 then fatal ("div by zero") fi;
+       a % b
+ end;
+ 
+ @{ Body of routine does not start with `begin' @}
+ proc checked_div = (int a,b) int:
+    (b = 0 | fatal ("div by zero"); skip | a % b);
+ 
+ @{ Body of routine is not a closed clause @}
+ proc checked_div = (int a,b) int:
+    if b = 0
+    then fatal ("div by zero"); skip
+    else a % b
+    fi;
+ @end example
+ 
+ @node Contracted declarations
+ @section Contracted declarations
+ 
+ Please don't be shy to use contracted forms of declarations.  They can
+ make the program much more readable and they make it easier to add new
+ declarations, because they prevent writing the same text again and
+ again.
+ 
+ However, care should be taken when declaring operators and procedures.
+ In these cases, contracted declarations should only be used when
+ declaring very short, one or two lines long routines.  The last
+ routine in the list of joined declarations can be a bit longer.
+ 
+ Examples:
+ 
+ @example
+ @{ Contracted declarations lead to compact and very
+   readable code @}
+ int disconnected = 0, connected = 0, unknown = 2;
+ pub ref JSON_Val json_no_val = nil,
+     ref JSON_Elm json_no_elm = nil;
+     ref JSON_Fld json_no_fld = nil;
+ 
+ @{ Use contracted declarations for short routines @}
+ op + = (States ss, State s) States: MoreStates (heap States := ss, s),
+    + = (Transitions ts, Transition t) Transitions:
+          MoreTransitions (heap Transitions := ts, t)
+ @end example
+ 
+ @node Brief clause forms
+ @section Brief clause forms
+ 
+ The obvious context where to use the brief forms of conditional, case
+ and conformity clauses is when these clauses appear as operands in
+ formulas.  They match well with parenthesized closed clauses.
+ 
+ It is also ok to use brief forms of clauses out of formulas,
+ especially inside case and conformiy clauses.  But please be careful,
+ as brief forms may be confused sometimes.
+ 
+ Examples:
+ 
+ @example
+ @{ Brief forms in formulas @}
+ int res = (a=0 | fatal("div by zero"); skip | den/a);
+ 
+ @{ Brief forms out of formulas @}
+ for i to ELEMS str
+ do char newline = REPR 10, tab = REPR 9, c = str[i];
+    (c = "\" | res +:= "\\"
+     |: c = newline | res +:= "\n"
+     |: c = tab | res +:= "\t"
+     |  res +:= c)
+ od
+ @end example
+ 
+ @node Naming
+ @chapter Naming
+ 
+ Unlike most other programming languages, which are not stropped, in
+ Algol 68 it is possible to have tags with the same name as reserved
+ words, by appending an underscore character to the tag. For example, a
+ tag @code{if} can be written as @code{if_}.  It is important to note
+ that the trailing underscore is not part of the tag: it is just a
+ stropping artifact. This is always better than contriving artificious
+ synonyms that are often confusing or too long.  A copying routine has
+ arguments "from" and "to"? Call them @code{from_} and @code{to_}. A
+ struct mode has fields "in" and "out"? Call them @code{in_} and
+ @code{out_}.
+ 
+ Please use fully upper-case bold words for operator indicants.  This
+ makes it easier for text editors to highlight them in a different
+ style than mode indicants, and look more symmetrical in case of dyadic
+ operators.  For example, use @code{ABS} and not @code{Abs}.
+ 
+ @node Programming Style
+ @chapter Programming Style
+ 
+ This section contains some recommendation on the usage of the
+ facilities of the language.
+ 
+ @menu
+ * Writing routines::
+ * Enquiry clauses::
+ * Nihils::
+ @end menu
+ 
+ @node Writing routines
+ @section Writing routines
+ 
+ Use routines liberally!  Routines are cheap, very easy to write thanks
+ to the excellent Algol 68 syntax for routine texts, and first-class
+ citizens in the language.  They also have access to the lexical
+ environment.  So if you find yourself wanting to write a macro in
+ order to repeat some little calculation, just write a small procedure
+ or operator instead.
+ 
+ Choose identifiers that are expressive of meaning in order to clarify
+ both the intent of the procedure or operator and the code written that
+ uses it.
+ 
+ Consider using overloaded operators in preference to procedures with
+ united mode parameters to encourage users of the operator to create
+ new versions of the operator for different parameter types, rather
+ than leaving the users trying to figure out how to hack the united
+ mode definition.
+ 
+ The high level of orthogonaliy of Algol 68 combined with the
+ structural type equivalence and the nice compact syntax of declarers
+ makes mode names way less relevant than in many other programming
+ languages.  In particular if a routine takes a parameter that is an
+ united mode, and that particular united mode is either not used
+ anywhere else or very short, just write the declarer, you don't have
+ to name it first.
+ 
+ Please make good use of the lexical block structure of the programming
+ language: is is there to be used.  In little local auxiliary routines,
+ do not add arguments just to pass a value that is in the environment;
+ rather, place the declaration of the auxiliary routine near the
+ declarations of the values it accesses.  If this is not possible, then
+ it may be wise to judiciously pass those non-nearby values as
+ arguments in order that the programmer be aware that non-nearby values
+ are being accessed or possibly altered.
+ 
+ @node Enquiry clauses
+ @section Enquiry clauses
+ 
+ @dfn{Enquiry clauses} are not just ``boolean expressions'' with a
+ fancy name.  They can be thought as a sort of specialized serial
+ clauses, and as such they can contain any number of declarations and
+ units while being required to always yield a value of mode
+ @code{bool}.
+ 
+ Avoid polluting the lexical environment with declarations that are
+ intended to be used exclusively within conditional and loop clauses:
+ use a declaration in the enquiry-clause of the clause instead.  This
+ also makes it easier to later refactor code.
+ 
+ Examples:
+ 
+ @example
+ @{ The range of `c' is the entire loop clause. @}
+ while char c = getchar;
+       c /= char_eof
+ do
+    ... use c ...
+ od
+ @end example
+ 
+ @node Nihils
+ @section Nihils
+ 
+ Never use @code{nil} directly in identity relations; it is very error
+ prone.  It is better to define @dfn{nihils} for all reference modes
+ that are likely to appear in one.
+ 
+ Examples:
+ 
+ @example
+ mode Node = ...;
+ ref Node no_node = nil;
+ while n :/=: no_node do ... od
+ @end example
+ 
+ @c ---------------------------------------------------------------------
+ @c GNU Free Documentation License
+ @c ---------------------------------------------------------------------
+ 
+ @include fdl.texi
+ 
+ 
+ @c ---------------------------------------------------------------------
+ @c Index
+ @c ---------------------------------------------------------------------
+ 
+ @node Index
+ @unnumbered Index
+ 
+ @printindex cp
+ 
+ @bye
diff -Nrcpad gcc-15.2.0/gcc/algol68/ga68-exports.pk gcc-16.1.0-RC-20260423/gcc/algol68/ga68-exports.pk
*** gcc-15.2.0/gcc/algol68/ga68-exports.pk	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ga68-exports.pk	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,511 ----
+ /* ga68-exports.pk - GCC Algol 68 exports format.
+ 
+    Copyright (C) 2025 Jose E. Marchesi
+ 
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* GNU Algol 68 source files (compilation units, or "packets") may
+    contain either a single particular-program or a set of one or more
+    module definitions.
+ 
+    When compiling a compilation unit containing module definitions,
+    the ga68 compiler emits an ELF section called .a68_exports along
+    with the usual compiled object code.  This section contains
+    information that reflects the PUBlicized identifiers exported by
+    module definitions: modes, operators, procedures, identifiers,
+    other module definitions, etc.  This interface is complete enough
+    to allow other compilation units to access these declarations.
+ 
+    The information that is in a module interface is defined in the MR
+    document using a sort of grammar.  It is:
+ 
+      module interface :
+        unique code & external symbol & hole description option &
+        mode table & definition summary.
+ 
+      definition summary :
+        set of definition groups.
+ 
+      definition group :
+        module identity & set of definition extracts.
+ 
+      definition extract :
+        mode extract ;
+        operation extract ;
+        priority extract ;
+        identifier extract ;
+        definition module extract ;
+        invocation extract.
+ 
+      mode extract :
+        mode marker & mode indication & mode & mdextra.
+ 
+      operation extract :
+        operation marker & operator & mode & mdextra.
+ 
+      priority extract :
+        priority marker & operator & integer priority & mdextra.
+ 
+      identifier extract :
+        identifier marker & identifier & mode & mdextra.
+ 
+      definition module extract :
+        definition module marker & definition module indication &
+        definition summary & mdextra.
+ 
+      invocation extract :
+        module identity.
+ 
+      mdextra :
+        extra machine-dependent information.
+ 
+    This pickle precisely describes how the module interfaces are
+    encoded in the .a68_exports ELF section, which are of type PROGBITS
+    and thus are concatenated by ELF linkers.  This works well because
+    each compilation unit may contain several module definitions, but a
+    module definition cannot be splitted among several compilation
+    units.  */
+ 
+ /* The exports format is versioned.  A bump in the format version
+    number indicates the presence of a backward incompatibility.  This
+    is important because .ga68_exports section may contain module
+    definition interfaces having different versions, so compilers and
+    tools designed to operate on version "n" must ignore, or error on,
+    modules definition interfaces with later versions.  */
+ 
+ var ga68_exports_ver = 1;
+ 
+ /* References other sections and the .ga68_export section itself are
+    realized via link-time relocations:
+ 
+    References to code addresses are relative to some text section.
+    References to data in .ga68_export are relative to the start of the
+    section.  */
+ 
+ load elf;
+ 
+ type ga68_text_reloc_64 = Elf64_Addr;
+ type ga68_data_reloc_64 = Elf64_Addr;
+ type ga68_text_reloc_32 = Elf32_Addr;
+ type ga68_data_reloc_32 = Elf32_Addr;
+ 
+ /* Strings are encoded in-place and are both pre-sized and
+    NULL-terminated.  This is to ease reading them quickly and
+    efficiently.  Note that the size includes the final NULL
+    character.  */
+ 
+ type ga68_str =
+   struct
+   {
+     offset<uint<16>,B> len;
+     string s: s'size == len;
+   };
+ 
+ /* Each module definition interface includes a table of modes, that
+    contains not only the modes for which mode extracts exist, but also
+    the indirectly referred modes: since Algol 68 used structural
+    equivalence of modes, each mode has to be defined fully.  The
+    encoding therefore tries to be as compact as possible while
+    allowing being read with a reasonable level of performance and
+    convenience.  */
+ 
+ var GA68_MODE_UNKNOWN   = 0UB,
+     GA68_MODE_VOID      = 1UB,
+     GA68_MODE_INT       = 2UB,
+     GA68_MODE_REAL      = 3UB,
+     GA68_MODE_BITS      = 4UB,
+     GA68_MODE_BYTES     = 5UB,
+     GA68_MODE_CHAR      = 6UB,
+     GA68_MODE_BOOL      = 7UB,
+     GA68_MODE_CMPL      = 8UB,
+     GA68_MODE_ROW       = 9UB,
+     GA68_MODE_STRUCT    = 10UB,
+     GA68_MODE_UNION     = 11UB,
+     GA68_MODE_NAME      = 12UB,
+     GA68_MODE_PROC      = 13UB,
+     GA68_MODE_STRING    = 14UB,
+     GA68_MODE_FLEX      = 15UB;
+ 
+ type ga68_mode_64 =
+   struct
+   {
+     uint<8> kind : kind in [GA68_MODE_VOID, GA68_MODE_INT,
+                             GA68_MODE_REAL, GA68_MODE_BITS,
+                             GA68_MODE_BYTES, GA68_MODE_CHAR,
+                             GA68_MODE_CMPL, GA68_MODE_ROW,
+                             GA68_MODE_STRUCT, GA68_MODE_UNION,
+                             GA68_MODE_NAME, GA68_MODE_PROC,
+                             GA68_MODE_FLEX];
+ 
+     union
+     {
+       int<8> sizety : kind in [GA68_MODE_INT, GA68_MODE_REAL,
+                                GA68_MODE_CMPL, GA68_MODE_BITS,
+                                GA68_MODE_BYTES];
+       struct
+       {
+         ga68_data_reloc_64 mode;
+       } name : kind == GA68_MODE_NAME || kind == GA68_MODE_FLEX;
+ 
+       struct
+       {
+         type triplet = struct { ga68_text_reloc_64 lb; ga68_text_reloc_64 ub; };
+ 
+         uint<8> ndims;
+         triplet[ndims] dims;
+         ga68_data_reloc_64 row_of;
+       } row : kind == GA68_MODE_ROW;
+ 
+       struct
+       {
+         type field = struct { ga68_data_reloc_64 mode; ga68_str name; };
+ 
+         uint<16> nfields;
+         field[nfields] fields;
+       } sct : kind == GA68_MODE_STRUCT;
+ 
+       /* When assigning overhead values to union modes, the list of
+ 	 united modes is ordered so that overhead values are assigned
+          consistently across compilation units.  Overhead values are
+          assigned to the modes in the ordered list in ascending order
+          starting from zero.
+ 
+          Modes are ordered in the following order:
+ 
+            UNION
+            STRUCT
+            STANDARD
+            ROWS
+            REF
+            PROC
+            FLEX
+ 
+ 	 A STANDARD mode is one of the following: (VOID, STRING, REAL,
+ 	 INT, COMPL, CHAR, BYTES, BOOL, BITS)
+ 
+          When two modes occupy the same row in the list above, the
+          ordering is determined as follows:
+ 
+          UNION:
+ 
+            The union with greater number of united modes is ordered
+ 	   first.  Unions having an equal number of united modes are
+            ordered based on the ordering of their first non-equivalent
+            mode.
+ 
+          STRUCT:
+ 
+            The struct with the largest number of fields is ordered first.
+            Structs having an equal number of fields are ordered based
+            on the first field that has non-equivalent modes or
+            non-matching field selectors.  If the modes are not equivalent,
+            the structs are ordered in the ordering of those modes.
+            Otherwise, the struct are ordered in the lexicographical
+            order of the field selectors.
+ 
+          STANDARD:
+ 
+            The mode with the greatest size of longsety and smaller size
+            of shortsety is ordered first.  If the size of shortsety and
+ 	   longsety are equal, the modes are ordered as follows:
+ 
+                VOID
+                STRING
+                REAL
+                INT
+                COMPL
+                CHAR
+                BYTES
+                BOOL
+                BITS
+ 
+          ROWS:
+ 
+            The mode with greater number of dimensions is ordered first.
+            Otherwise, the ordering of the modes of the elements is used.
+ 
+          REF:
+ 
+            The ordering is the ordering of the referred mode.
+ 
+          PROC:
+ 
+            The ordering is the ordering of the mode of the value yielded
+            by the procedure.  If the procedure yields values of the the
+            same mode, the procedure with greater number of arguments is
+            ordered first.  If the number of arguments is equal, the
+            ordering is the ordering of the modes of the first arguments
+            having non-equivalent modes.
+ 
+          FLEX:
+ 
+            The ordering is the ordering of the referred mode. */
+ 
+       struct
+       {
+         uint<8> nmodes;
+         ga68_data_reloc_64[nmodes] modes;
+       } uni : kind == GA68_MODE_UNION;
+ 
+       struct
+       {
+         type arg = struct { ga68_data_reloc_64 mode; ga68_str name; };
+ 
+         ga68_data_reloc_64 ret_mode;
+         uint<8> nargs;
+         arg[nargs] args;
+       } routine : kind == GA68_MODE_PROC;
+ 
+       struct { } _ : kind in [GA68_MODE_UNKNOWN, GA68_MODE_VOID,
+                               GA68_MODE_CHAR, GA68_MODE_BOOL,
+                               GA68_MODE_STRING];
+ 
+     } data;
+   };
+ 
+ type ga68_mode_32 =
+   struct
+   {
+     uint<8> kind : kind in [GA68_MODE_VOID, GA68_MODE_INT,
+                             GA68_MODE_REAL, GA68_MODE_BITS,
+                             GA68_MODE_BYTES, GA68_MODE_CHAR,
+                             GA68_MODE_CMPL, GA68_MODE_ROW,
+                             GA68_MODE_STRUCT, GA68_MODE_UNION,
+                             GA68_MODE_NAME, GA68_MODE_PROC,
+                             GA68_MODE_FLEX];
+ 
+     union
+     {
+       int<8> sizety : kind in [GA68_MODE_INT, GA68_MODE_REAL,
+                                GA68_MODE_CMPL, GA68_MODE_BITS,
+                                GA68_MODE_BYTES];
+       struct
+       {
+         ga68_data_reloc_32 mode;
+       } name : kind == GA68_MODE_NAME || kind == GA68_MODE_FLEX;
+ 
+       struct
+       {
+         type triplet = struct { ga68_text_reloc_32 lb; ga68_text_reloc_32 ub; };
+ 
+         uint<8> ndims;
+         triplet[ndims] dims;
+         ga68_data_reloc_32 row_of;
+       } row : kind == GA68_MODE_ROW;
+ 
+       struct
+       {
+         type field = struct { ga68_data_reloc_32 mode; ga68_str name; };
+ 
+         uint<16> nfields;
+         field[nfields] fields;
+       } sct : kind == GA68_MODE_STRUCT;
+ 
+       struct
+       {
+         uint<8> nmodes;
+         ga68_data_reloc_32[nmodes] modes;
+       } uni : kind == GA68_MODE_UNION;
+ 
+       struct
+       {
+         type arg = struct { ga68_data_reloc_32 mode; ga68_str name; };
+ 
+         ga68_data_reloc_32 ret_mode;
+         uint<8> nargs;
+         arg[nargs] args;
+       } routine : kind == GA68_MODE_PROC;
+ 
+       struct { } _ : kind in [GA68_MODE_UNKNOWN, GA68_MODE_VOID,
+                               GA68_MODE_CHAR, GA68_MODE_BOOL,
+                               GA68_MODE_STRING];
+ 
+     } data;
+   };
+ 
+ /* Each module definition interface includes a table of "extracts",
+    one per identifier PUBlicized by the module definition.
+ 
+    Mode extracts represent declarations of mode indications, like for
+    example `mode Foo = struct (int i, real r)'.
+ 
+    Identifier extracts represent declarations of constants, variables,
+    procedures and operators.  Examples are `real pi = 3.14', `int
+    counter', `proc double = (int a) int : a * 2' and `op // = (int a,
+    b) int: a % b'.
+ 
+    Priority extracts represent declarations of priorities for dyadic
+    operators, like for example `prio // = 9'.
+ 
+    Finally, module extracts represent the PUBlication of some other
+    module definition.  For example, the module definition `mode Foo =
+    access A, B def ... fed' will include module extracts for both "A"
+    and "B" in its interface.
+ 
+    Some of the extracts may need some additional compiler-specific or
+    machine-specific information, whose contents are not specified
+    here.  */
+ 
+ var GA68_EXTRACT_MODU  = 0UB,
+     GA68_EXTRACT_IDEN = 1UB,
+     GA68_EXTRACT_MODE = 2UB,
+     GA68_EXTRACT_PRIO = 3UB,
+     GA68_EXTRACT_OPER = 4UB;
+ 
+ type ga68_extract_64 =
+   struct
+   {
+     Elf64_Off extract_size;
+     union
+     {
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_MODU;
+         ga68_str module_indication;
+       } module;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_IDEN;
+         ga68_str name;
+         ga68_data_reloc_64 mode;
+       } identifier;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_MODE;
+         ga68_str mode_indication;
+         ga68_data_reloc_64 mode;
+       } mode;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_PRIO;
+         ga68_str opname;
+         uint<8> prio;
+       } prio;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_OPER;
+         ga68_str opname;
+         ga68_mode_64 mode;
+       } oper;
+ 
+     } extract : extract'size == extract_size;
+ 
+     Elf64_Off mdextra_size;
+     uint<8>[mdextra_size] data;
+   };
+ 
+ type ga68_extract_32 =
+   struct
+   {
+     type ga68_mdextra =
+       struct
+         {
+           Elf32_Off mdextra_size;
+           uint<8>[mdextra_size] data;
+         };
+ 
+     Elf32_Off extract_size;
+     union
+     {
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_MODU;
+         ga68_str module_indication;
+       } module;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_IDEN;
+         ga68_str name;
+         ga68_data_reloc_32 mode;
+         ga68_mdextra mdextra;
+       } identifier;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_MODE;
+         ga68_str mode_indication;
+         ga68_data_reloc_32 mode;
+       } mode;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_PRIO;
+         ga68_str opname;
+         uint<8> prio;
+       } prio;
+ 
+       struct
+       {
+         uint<8> mark : mark == GA68_EXTRACT_OPER;
+         ga68_str opname;
+         ga68_mode_32 mode;
+         ga68_mdextra mdextra;
+       } oper;
+ 
+     } extract : extract'size == extract_size;
+   };
+ 
+ /* The contents of the .ga68_exports section can be mapped as a
+    ga68_module[sec.sh_size] */
+ 
+ type ga68_module_64 =
+   struct
+   {
+     uint<8>[2] magic : magic == [0x0aUB, 0x68UB];
+     uint<16> version : version == ga68_exports_ver;
+ 
+     /* Module identification.
+        Add a hash or UUID?  */
+     ga68_str name;
+ 
+     /* Entry points.  */
+     ga68_str prelude;
+     ga68_str poslude;
+ 
+     /* Table of modes.  */
+     Elf64_Off modes_size;
+     ga68_mode_64[modes_size] modes;
+ 
+     /* Table of extracts.  */
+     Elf64_Off extracts_size;
+     ga68_extract_64[extracts_size] extracts;
+   };
+ 
+ type ga68_module_32 =
+   struct
+   {
+     uint<8>[2] magic : magic == [0x0aUB, 0x68UB];
+     uint<16> version : version == ga68_exports_ver;
+ 
+     /* Module identification.
+        Add a hash or UUID?  */
+     ga68_str name;
+ 
+     /* Entry points.  */
+     ga68_str prelude;
+     ga68_str poslude;
+ 
+     /* Table of modes.  */
+     Elf32_Off modes_size;
+     ga68_mode_32[modes_size] modes;
+ 
+     /* Table of extracts.  */
+     Elf32_Off extracts_size;
+     ga68_extract_32[extracts_size] extracts;
+   };
diff -Nrcpad gcc-15.2.0/gcc/algol68/ga68-internals.texi gcc-16.1.0-RC-20260423/gcc/algol68/ga68-internals.texi
*** gcc-15.2.0/gcc/algol68/ga68-internals.texi	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ga68-internals.texi	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,383 ----
+ \input texinfo  @c -*-texinfo-*-
+ @c %**start of header
+ @setfilename ga68-internals.info
+ 
+ @include gcc-common.texi
+ 
+ @synindex tp cp
+ 
+ @settitle GNU Algol 68 Compiler Internals
+ 
+ @c %**end of header
+ 
+ @c %** start of document
+ 
+ @copying
+ Copyright @copyright{} 2025 Jose E. Marchesi.
+ 
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.3 or
+ any later version published by the Free Software Foundation; with no
+ Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+ copy of the license is included in the section entitled ``GNU Free
+ Documentation License''.
+ @end copying
+ 
+ @ifinfo
+ @dircategory Software development
+ @direntry
+ * ga68-internals: (ga68-internals).           The GNU Algol 68 Compiler Internals.
+ @end direntry
+ This file documents the internals of the GNU Algol 68
+ compiler, (@command{ga68}).
+ 
+ @insertcopying
+ @end ifinfo
+ 
+ @c Macro for bold-tags.  In TeX and HTML they expand to proper bold words,
+ @c in other formats it resorts to upper stropping.
+ @iftex
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end iftex
+ 
+ @ifhtml
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end ifhtml
+ 
+ @ifnottex
+ @ifnothtml
+ @macro B{tag}
+ @sc{\tag\}
+ @end macro
+ @end ifnothtml
+ @end ifnottex
+ 
+ @setchapternewpage odd
+ @titlepage
+ @title GNU Algol 68 Internals
+ @versionsubtitle
+ @author Jose E. Marchesi
+ @page
+ @vskip 0pt plus 1filll
+ @sp 1
+ @insertcopying
+ @end titlepage
+ 
+ @summarycontents
+ @contents
+ 
+ @page
+ 
+ @ifnottex
+ @node Top
+ @top Introduction
+ @cindex Introduction
+ 
+ This manual documents (some of) the internals of @command{ga68}, the
+ GNU Algol 68 compiler.
+ 
+ @menu
+ * Scope Checking::         Scope checking in assignation.
+ * Storage Management::     Management of run-time storage.
+ * Lowering Declarations::  Mapping external objects to internal objects.
+ * Lowering Assignations::  Superceding the value referred by a name.
+ * GNU Free Documentation License::
+                            How you can copy and share this manual.
+ * Index::                  Index of this documentation.
+ @end menu
+ @end ifnottex
+ 
+ @c ---------------------------------------------------------------------
+ @c Scope Checking
+ @c ---------------------------------------------------------------------
+ 
+ @node Scope Checking
+ @chapter Scope Checking
+ 
+ Static scope checking: pass.
+ Dynamic scope checking: run-time call.
+ 
+ @c ---------------------------------------------------------------------
+ @c Storage Management
+ @c ---------------------------------------------------------------------
+ 
+ @node Storage Management
+ @chapter Storage Management
+ 
+ This chapter discusses the run-time management of internal objects in
+ Algol 68.
+ 
+ First, a conceptual model is presented that describes the restrictions
+ as mandated by the Report.  The storage implied by the lowered GENERIC
+ entities, as described in the previous chapter, shall match the
+ storage of the conceptual model.
+ 
+ @menu
+ * Storage Structure of Objects::
+ * Copying of Objects::
+ * The Stack::
+ * The Heap::
+ @end menu
+ 
+ @node Storage Structure of Objects
+ @section Storage Structure of Objects
+ 
+ The internal objects which are the values in an Algol 68 program may
+ consist on a hierarchy of memory locations, which may not be
+ contiguous.  This hierarchy of memory locations is the storage
+ structure of the object, and is not concerned by the particular
+ bit-patterns stored.
+ 
+ Simple values.
+ 
+ Names.
+ 
+ Multiple values.
+ 
+ Structured values.
+ 
+ Values of united modes.
+ 
+ @node Copying of Objects
+ @section Copying of Objects
+ 
+ @node The Stack
+ @section The Stack
+ 
+ XXX
+ 
+ @node The Heap
+ @section The Heap
+ 
+ @itemize @minus
+ @item
+ A value that has rows and gets returned by a procedure shall be
+ allocated on the stack.
+ @item
+ A copy of the right hand side is made before assigning it to the left
+ hand side.  This copy is always allocated in the heap, because the
+ scope of the left hand side may be older than the scope of the right
+ hand side.  This happens when assigning to a global variable.
+ @item
+ A trimmer of a name.  This is because the trimmed multiple may be
+ allocated on the heap, and the trim shall have the same scope than the
+ trimmed multiple.
+ @end itemize
+ 
+ @c ---------------------------------------------------------------------
+ @c Internal Objects
+ @c ---------------------------------------------------------------------
+ 
+ @node Lowering Declarations
+ @chapter Lowering Declarations
+ 
+ This chapter describes the mapping between external objects declared
+ in identity and variable declarations and the internal objects that
+ are the result of lowering the external objects in the parse tree into
+ GENERIC entities.
+ 
+ @menu
+ * Identity Declarations::             @code{@B{amode} xxx = init value}
+ * Variable Declarations::             @code{@B{amode} xxx [:= init value]}
+ * Procedure Identity Declarations::   @code{@B{proc} xxx = routine text}
+ * Procedure Variable Declarations::   @code{@B{proc} xxx := routine text}
+ * Operator Brief Declarations::       @code{@B{op} @B{xxx} = routine text}
+ * Operator Declarations::             @code{@B{op}(...)@B{amode} @B{xxx} = routine text}
+ * Applied Identifiers::
+ @end menu
+ 
+ @node Identity Declarations
+ @section Identity Declarations
+ 
+ An identity declaration with the form:
+ 
+ @example
+ @B{c} part 1 @B{c}
+ @B{amode} defining_identifier = unit;
+ @B{c} part 2 @B{c}
+ @end example
+ 
+ @noindent
+ Introduces the identifier @code{defining_identifier} in the current
+ range and ascribes a copy of the value yielded by @code{unit} to it.
+ Once established, the relationship between an identifier and the value
+ ascribed to it is constant and it cannot change during the reach of
+ the identifier.  The ascribed unit can be any unitary clause, and its
+ elaboration can be arbitrarily complicated.  In particular, it is not
+ required to be a compile-time constant.  @code{@B{amode}} determines
+ the mode of the value yielded by the unit, and the unit is elaborated
+ in a strong context.
+ 
+ An identity declaration like the above, where @code{@B{amode}} is not
+ a procedure mode (@xref{Procedure Identity Declarations}) is lowered
+ into:
+ 
+ @itemize @bullet
+ @item
+ A @code{VAR_DECL} with name @code{defining_identifier}, type
+ @code{CTYPE (@B{amode})} and initial value @code{@B{amode}(@B{skip})}
+ that gets chained into the declarations list of the current block.
+ @item
+ A @code{DECL_EXPR} that gets prepended in the current statement's list.
+ @item
+ A @code{MODIFY_EXPR} setting the @code{VAR_DECL} to a copy of the
+ lowering of @code{unit}, @code{a68_low_dup (unit)}.
+ @end itemize
+ 
+ @noindent
+ Schematically:
+ 
+ @example
+    BIND_EXPR (BLOCK (DECLS: ... -> VAR_DECL (defining_identifier, INITIAL=SKIP)))
+      STMT_LIST
+      |
+      +-- DECL_EXPR (defining_identifier)
+      |
+      |   @B{c} part 1 @B{c}
+      |
+      +-- MODIFY_EXPR (defining_identifier, unit)
+      |
+      |   @B{c} part 2 @B{c}
+      |
+ @end example
+ 
+ The reason why the @code{VAR_DECL} is initialized to @code{@B{skip}}
+ and then set to the initial @code{unit} specified in the source line
+ is that the Report specifies that Algol 68 identifiers can be used
+ before they are defined provided we are in the right range, but in
+ that case the value ascribed to the identifier is ``undefined''.
+ Accessing an ``undefined'' value in traditional Algol 68
+ implementations would lead to a run-time error (these implementations
+ used a special value to denote undefined, such as @code{F00L}) but in
+ GNU Algol 68 the ``undefined'' value is always @code{@B{skip}} which,
+ if not terribly useful in most cases, is at least well defined in this
+ implementation and doesn't lead to an error.
+ 
+ Identity declarations are the Algol 68 way of defining constants, and
+ one may wonder why we are not using @code{CONST_DECL} instead of
+ @code{VAR_DECL}.  The reason is that @code{CONST_DECL} is really only
+ intended for integral values in C enums, and the @code{@B{amode}} in
+ the identity declaration can really be any mode, from simple integers
+ or characters to fairly complicated structured modes, which may
+ involve also rows and united modes.  Whether the @code{VAR_DECL} will
+ lead to allocating storage on the stack depends on the nature of the
+ mode and the way the identifier is used in the program: whether its
+ address is taken, etc.
+ 
+ @node Variable Declarations
+ @section Variable Declarations
+ 
+ A variable declaration with the form:
+ 
+ @example
+ [@B{loc}|@B{heap}] @B{amode} defining identifier [:= unit];
+ @end example
+ 
+ @noindent
+ Is in principle equivalent to the identity declaration:
+ 
+ @example
+ @B{ref} @B{amode} defining identifier = [@B{loc}|@B{heap}] @B{amode};
+ @end example
+ 
+ @noindent
+ In both cases the object ascribed to the defining identifier is of
+ mode @code{@B{ref} @B{amode}}.  The ascribed object is a name which is
+ created by a generator implied in the actual declarer in the variable
+ declaration case, and an explicit generator in the initialization
+ expression in the identity declaration case.
+ 
+ However, in this compiler these two cases are handled differently in
+ order to reduce the amount of both indirect addressing and of storage:
+ 
+ @itemize @bullet
+ @item
+ The variable declaration @code{[@B{loc}|@B{heap}] @B{amode} foo}
+ lowers into a @code{VAR_DECL} with type @code{CTYPE (amode)} provided
+ that the generator is @code{@B{loc}} and that the type contains no
+ rows.  Accessing the variable will then involve direct addressing, and
+ when its address is required an @code{ADDR_EXPR} shall be used.
+ @item
+ The identity declaration @code{@B{ref} @B{amode} foo = @B{loc}
+ @B{amode}} lowers into a @code{VAR_DECL} with type @code{*CTYPE
+ (amode)}.  Accessing the variable will then involve indirect
+ addressing: it is effectively a pointer.
+ @end itemize
+ 
+ This optimization introduces the complication that an expression (the
+ @code{VAR_DECL}) whose type is TYPE can appear in a place where *TYPE
+ is expected, depending on the context and the r-value and l-value
+ interpretation of the @code{VAR_DECL}.  The function
+ @code{a68_consolidate_ref} is used in several parts of the lowering
+ pass to guarantee a given name is an address regardless of how it was
+ initialized.
+ 
+ @node Procedure Identity Declarations
+ @section Procedure Identity Declarations
+ 
+ XXX
+ 
+ @node Procedure Variable Declarations
+ @section Procedure Variable Declarations
+ 
+ XXX
+ 
+ @node Operator Brief Declarations
+ @section Operator Brief Declarations
+ 
+ XXX
+ 
+ @node Operator Declarations
+ @section Operator Declarations
+ 
+ XXX
+ 
+ @node Applied Identifiers
+ @section Applied Identifiers
+ 
+ XXX
+ 
+ @c ---------------------------------------------------------------------
+ @c Lowering Assignations
+ @c ---------------------------------------------------------------------
+ 
+ @node Lowering Assignations
+ @chapter Lowering Assignations
+ 
+ Scope checking:
+ 
+ @itemize @bullet
+ @item
+ If static scope checking is relevant and OK, then just perform assignation.
+ @item
+ If static scope checking is relevant and not OK, a compile-time error
+ will have already being emitted.
+ @item
+ If static scope checking is not relevant, perform dynamic scope
+ checking: each time a name, a routine or a format of the data
+ structure is assigned, its dynamic scope (scope%_si) is compared with
+ the one of the destination (scope%_d).  A run-time error message is
+ provided in case scope%_d < scope%_si.
+ @end itemize
+ 
+ @c ---------------------------------------------------------------------
+ @c GNU Free Documentation License
+ @c ---------------------------------------------------------------------
+ 
+ @include fdl.texi
+ 
+ 
+ @c ---------------------------------------------------------------------
+ @c Index
+ @c ---------------------------------------------------------------------
+ 
+ @node Index
+ @unnumbered Index
+ 
+ @printindex cp
+ 
+ @bye
diff -Nrcpad gcc-15.2.0/gcc/algol68/ga68.texi gcc-16.1.0-RC-20260423/gcc/algol68/ga68.texi
*** gcc-15.2.0/gcc/algol68/ga68.texi	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ga68.texi	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,3565 ----
+ \input texinfo @c -*-texinfo-*-
+ @setfilename ga68.info
+ @settitle The GNU Algol 68 Compiler
+ 
+ @c Macro for bold-tags.  In TeX and HTML they expand to proper bold words,
+ @c in other formats it resorts to upper stropping.
+ @iftex
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end iftex
+ 
+ @ifhtml
+ @macro B{tag}
+ @strong{\tag\}
+ @end macro
+ @end ifhtml
+ 
+ @ifnottex
+ @ifnothtml
+ @macro B{tag}
+ \tag\
+ @end macro
+ @end ifnothtml
+ @end ifnottex
+ 
+ @c Create a separate index for command line options
+ @defcodeindex op
+ @c Merge the standard indexes into a single one.
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @syncodeindex pg cp
+ @syncodeindex tp cp
+ 
+ @include gcc-common.texi
+ 
+ @c Copyright years for this manual.
+ @set copyrights-ga68 2025-2026
+ 
+ @copying
+ @c man begin COPYRIGHT
+ Copyright @copyright{} @value{copyrights-ga68} 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
+ any later version published by the Free Software Foundation; with no
+ Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the
+ @c man end
+ section entitled ``GNU Free Documentation License''.
+ @ignore
+ @c man begin COPYRIGHT
+ man page gfdl(7).
+ @c man end
+ @end ignore
+ @end copying
+ 
+ @ifinfo
+ @format
+ @dircategory Software development
+ @direntry
+ * ga68: (ga68).               A GCC-based compiler for Algol 68
+ @end direntry
+ @end format
+ 
+ @insertcopying
+ @end ifinfo
+ 
+ @titlepage
+ @title The GNU Algol 68 Compiler
+ @versionsubtitle
+ @author Jose E. Marchesi
+ 
+ @page
+ @vskip 0pt plus 1filll
+ @sp 1
+ @insertcopying
+ @end titlepage
+ @summarycontents
+ @contents
+ @page
+ 
+ @node Top
+ @top Introduction
+ 
+ This manual describes how to use @command{ga68}, the GNU compiler for
+ Algol 68.  This manual is specifically about how to invoke
+ @command{ga68}, as well as its features.  For more information about
+ the Algol 68 language in general, the reader is referred to the
+ bibliography.
+ 
+ Note that the particular way of representing Algol 68 code snippets in
+ this manual will depend on the media.  If you are reading this manual
+ in a printed support or a PDF file rendered for publication then the
+ bold words in programs will be rendered in actual bold typography and
+ tags may have spaces within them.  If you are reading this manual in a
+ terminal or other media not supporting rich typography the code
+ examples will follow the modern stropping regime with is the default
+ in ga68.
+ 
+ Note also that we are making use of @dfn{pseudo-comments} in code
+ examples, as it is traditional in Algol 68 related documentation.
+ These appear surrounded by @code{@B{C}} marks and act as placeholders
+ of some Algol 68 code.  For example, @code{@B{C} frob the input
+ variable @B{C}} is a pseudo-comment.
+ 
+ @menu
+ * Invoking ga68::               How to run the compiler.
+ * Composing programs::          Packets, modules, holes, particular programs.
+ * Foreign Function Interface::  Communicating with other languages via holes.
+ * Comments and pragmats::       Comments and pragmas.
+ * Hardware representation::     Representation of programs.
+ * Standard prelude::            Standard modes, operators, etc.
+ * Extended prelude::            GNU extensions to the standard prelude.
+ * POSIX prelude::               Simple I/O and system interaction facilities.
+ * Language extensions::         GNU extensions to the Algol 68 language.
+ * Copying::                     The GNU General Public License.
+ * GNU Free Documentation License::
+                                 How you can share and copy this manual.
+ * Option Index::                Index of command line options.
+ * General Index::               General index.
+ @end menu
+ 
+ @node Invoking ga68
+ @chapter Invoking ga68
+ 
+ @c man title ga68 A GCC-based compiler for Algol 68
+ 
+ @ignore
+ @c man begin SYNOPSIS ga68
+ ga68 [@option{-c}|@option{-S}] [@option{-g}] [@option{-pg}]
+      [@option{-O}@var{level}] [@option{-W}@var{warn}@dots{}]
+      [@option{-I}@var{dir}@dots{}] [@option{-L}@var{dir}@dots{}]
+      [@option{-f}@var{option}@dots{}] [@option{-m}@var{machine-option}@dots{}]
+      [@option{-o} @var{outfile}] [@@@var{file}] @var{infile}@dots{}
+ 
+ Only the most useful options are listed here; see below for the
+ remainder.
+ @c man end
+ @c man begin SEEALSO
+ gpl(7), gfdl(7), fsf-funding(7), gcc(1)
+ and the Info entries for @file{ga68} and @file{gcc}.
+ @c man end
+ @end ignore
+ 
+ @c man begin DESCRIPTION ga68
+ 
+ The @command{ga68} command is the GNU compiler for the Algol 68 language and
+ supports many of the same options as @command{gcc}.  @xref{Option Summary, ,
+ Option Summary, gcc, Using the GNU Compiler Collection (GCC)}.
+ This manual only documents the options specific to @command{ga68}.
+ 
+ @c man end
+ 
+ @menu
+ * Dialect options::         Options controlling the accepted language.
+ * Directory options::       Options influencing where to find source files.
+ * Module search options::   Options influencing where to look for modules.
+ * Warnings options::        Options controlling warnings specific to ga68
+ * Runtime options::         Options controlling runtime behavior
+ * Linking options::         Options influencing the linking step
+ * Developer options::       Options useful for developers of ga68
+ @end menu
+ 
+ @node Dialect options
+ @section Dialect options
+ @cindex options, dialect
+ 
+ The following options control how the compiler handles certain dialect
+ variations of the language.
+ 
+ @table @gcctabopt
+ @opindex std=@var{std}
+ @item -std=@var{std}
+ Specify the standard to which the program is expected to conform,
+ which may be one of @samp{algol68} or @samp{gnu68}.  The default value
+ for @var{std} is @samp{gnu68}, which specifies a strict super language
+ of Algol 68 allowing GNU extensions.  The @samp{algol68} value
+ specifies that the program strictly conform to the Revised Report.
+ @opindex fstropping=@var{stropping_regime}
+ @item -fstropping=@var{stropping_regime}
+ Specify the stropping regime to expect in the input programs.  The
+ default value for @var{stropping_regime} is @samp{supper}, which
+ specifies the modern SUPPER stropping which is a GNU extension.  The
+ @samp{upper} value specifies the classic UPPER stropping of Algol 68
+ programs.  @xref{Stropping regimes}.
+ @opindex fbrackets
+ @opindex fno-brackets
+ @item -fbrackets
+ This option controls whether @code{[ .. ]} is considered equivalent to
+ @code{( .. )}.  This syntactic variation is blessed by the Revised
+ Report and is still strict Algol 68.
+ 
+ This option is disabled by default.
+ @end table
+ 
+ @node Directory options
+ @section Options for Directory Search
+ @cindex directory options
+ @cindex options, directory search
+ @cindex search path
+ 
+ These options specify directories to search for files, libraries, and
+ other parts of the compiler:
+ 
+ @table @gcctabopt
+ 
+ @opindex I
+ @item -I@var{dir}
+ Add the directory @var{dir} to the list of directories to be searched
+ for files when processing the @ref{pragmat include}.  Multiple
+ @option{-I} options can be used, and the directories specified are
+ scanned in left-to-right order, as with @command{gcc}.  The directory
+ will also be added to the list of directories to be searched for module
+ interface-definitions @ref{Module activation}.
+ 
+ @opindex L
+ @item -L@var{dir}
+ Add the directory @var{dir} to the list of directories to be searched
+ for module interface-definitions @ref{Module activation}.  Multiple
+ @option{-L} options can be used, and the directories specified are
+ scanned in left-to-right order, as with @command{gcc}.  The directory
+ will also be added to the list of library search directories, as with
+ @command{gcc}.
+ 
+ @end table
+ 
+ @node Module search options
+ @section Module search options
+ @cindex options, modules
+ @cindex modules
+ 
+ The following options can be used to tell the compiler where to look
+ for certain modules.
+ 
+ @table @gcctabopt
+ @opindex fmodules-map
+ @item -fmodules-map=@var{string}
+ Use the mapping between module indicants and module base filenames
+ specified in @var{string}, which must contain a sequence of entries
+ with form
+ @code{@var{basename}=@var{moduleindicant}[,@var{moduleindicant}]...}
+ separated by colon (@code{:}) characters.
+ 
+ When a module @var{moduleindicant} is accessed, the compiler will look
+ for exports information for it in files @file{@var{basename}.m68},
+ @file{lib@var{basename}.so}, @file{lib@var{basename}.a},
+ @file{@var{basename}.o}, in that order.
+ 
+ This option is used to avoid the default behavior, in which the
+ basename used to search for an accessed module is implicitly derived
+ from its indicant, by transforming it to lower case.
+ 
+ The effect of this option is accumulative.
+ 
+ @opindex fmodules-map-file
+ @item -fmodules-map-file=@var{<filename>}
+ Like @option{-fmodules-map}, but read the mapping information from the
+ file @var{<filename>}.
+ @end table
+ 
+ @node Warnings options
+ @section Warnings options
+ @cindex options, warnings
+ @cindex options, errors
+ @cindex warnings, suppressing
+ @cindex messages, error
+ @cindex messages, warning
+ @cindex suppressing warnings
+ 
+ Warnings are diagnostic messages that report constructions that
+ are not inherently erroneous but that are risky or suggest there
+ is likely to be a bug in the program.  Unless @option{-Werror} is
+ specified, they do not prevent compilation of the program.
+ 
+ @table @gcctabopt
+ @opindex Wvoiding
+ @opindex Wno-voiding
+ @item -Wvoiding
+ Warn on non-void units being voided due to a strong context.
+ @opindex Wscope
+ @opindex Wno-scope
+ @item -Wscope
+ Warn when a potential name scope violation is found.
+ @opindex Whidden-declarations
+ @opindex Wno-hidden-declarations
+ @item -Whidden-declarations=@var{level}
+ Warn when a declaration hides another declaration in a larger reach.
+ This includes operators that hide firmly related operators defined in
+ larger reach.
+ 
+ @table @gcctabopt
+ @item -Whidden-declarations=none
+ At this level no warning is issued for any hidden declaration on an
+ outer scope.
+ 
+ @item -Whidden-declarations=prelude
+ At this level, warnings are issued for hidden declarations defined in
+ the standard prelude.  This is the default warning level of
+ @option{-Whidden-declarations}.
+ 
+ @item -Whidden-declarations=all
+ At this level, warnings are issued for any and all hidden
+ declarations.
+ @end table
+ 
+ @opindex Wextensions
+ @opindex Wno-extensions
+ @item -Wextensions
+ Warn when a non-portable Algol 68 construct is used, like GNU
+ extensions to Algol 68.
+ @end table
+ 
+ @node Runtime options
+ @section Runtime options
+ @cindex options, runtime
+ 
+ These options affect the runtime behavior of programs compiled with
+ @command{ga68}.
+ 
+ @table @gcctabopt
+ @opindex fassert
+ @opindex fno-assert
+ @item -fno-assert
+ Turn off code generation for @code{ASSERT} contracts.
+ 
+ @opindex fcheck
+ @item -fcheck=@var{<keyword>}
+ Enable the generation of run-time checks; the argument shall be a
+ comma-delimited list of the following keywords.  Prefixing a check
+ with @option{no-} disables it if it was activated by a previous
+ specification.
+ 
+ @table @asis
+ @item @samp{all}
+ Enable all run-time test of @option{-fcheck}.
+ 
+ @item @samp{none}
+ Disable all run-time test of @option{-fcheck}.
+ 
+ @item @samp{nil}
+ Check for nil while dereferencing.
+ 
+ @item @samp{bounds}
+ Enable generation of run-time checks when indexing and trimming
+ multiple values.
+ @end table
+ @end table
+ 
+ @node Linking options
+ @section Linking options
+ @cindex options, linking
+ @cindex linking, static
+ 
+ These options come into play when the compiler links object files into
+ an executable output file.  They are meaningless if the compiler is
+ not doing a link step.
+ 
+ @table @gcctabopt
+ 
+ @opindex shared-libga68
+ @item -shared-libga68
+ On systems that provide @file{libga68} as a shared and a static
+ library, this option forces the use of the shared version.  If no
+ shared version was built when the compiler was configured, this option
+ has no effect.
+ 
+ @opindex static-libga68
+ @item -static-libga68
+ On systems that provide @file{libga68} as a shared and a static
+ library, this option forces the use of the static version.  If no
+ static version was built when the compiler was configured, this option
+ has no effect.  This is the default.
+ @end table
+ 
+ @node Developer options
+ @section Developer options
+ @cindex developer options
+ @cindex debug dump options
+ @cindex dump options
+ 
+ This section describes command-line options that are primarily of
+ interest to developers.
+ 
+ @table @gcctabopt
+ @opindex fa68-dump-modes
+ @item -fa68-dump-modes
+ Output a list of all the modes parsed by the front-end.
+ 
+ @opindex fa68-dump-ast
+ @item -fa68-dump-ast
+ Dump a textual representation of the parse tree.
+ 
+ @opindex fa68-dump-module-interfaces
+ @item -fa68-dump-module-interfaces
+ Dump the interfaces of module definitions in the compiled packet.
+ @end table
+ 
+ @node Composing programs
+ @chapter Composing programs
+ @cindex program
+ @cindex separated compilation
+ 
+ This chapter documents how to compose full Algol 68 programs using the
+ modules and separated compilation support provided by this compiler.
+ 
+ @menu
+ * Packets::                  Compilation units.
+ * Modules::                  Facilities for bottom-up programming.
+ * Holes::                    Facilities for top-down programming.
+ * Particular programs::      The main program.
+ * The standard environment:: Environment conforming a full program.
+ @end menu
+ 
+ @node Packets
+ @section Packets
+ @cindex packet
+ @cindex compilation unit
+ 
+ Each Algol 68 source file, which are files using the file extension
+ @file{.a68}, contains the definition of a so-called @dfn{packet}.
+ Packets therefore play the role of @dfn{compilation units}, and each
+ packet can be compiled separately to an object file.  A set of
+ compiled object files can then be linked in the usual fashion into an
+ executable, archive or shared object by the system linker, without the
+ need of any language-specific link editor or build system.
+ 
+ @noindent
+ This compiler supports two different kind of packets:
+ 
+ @itemize @minus
+ @item
+ @dfn{Particular programs} constitute the entry point of a program.
+ They roughly speaking correspond to the @code{main} function of other
+ languages like C.
+ 
+ @xref{Particular programs}.
+ 
+ @item
+ @dfn{Prelude packets} contain the definition of @dfn{modules}, which
+ @dfn{publicize} definitions of modes, procedures, variables, operators
+ and even the publicized definitions of other modules.  Each prelude
+ packet defines a single packet, defined at the top-level, which can be
+ accessed by other packets (be them particular programs or other
+ prelude packets) via an @code{@B{access}} construct.  Prelude packets
+ are so-called because their contents get conceptually stuffed in the
+ @dfn{user-prelude} in the case of user-defined modules, or the
+ @dfn{library-prelude} in the case of module packets provided by the
+ compiler.  They are usually used to compose libraries that can be used
+ in a bottom-up fashion.
+ 
+ @xref{Modules}.
+ @end itemize
+ 
+ Future versions of this compiler will eventually support a third kind
+ of packet, oriented to top-down development:
+ 
+ @itemize @minus
+ @item
+ @dfn{Stuffing packets} contain the definition of an @dfn{actual hole},
+ an @code{@B{egg}} construct, that can be stuffed in a matching
+ @dfn{formal hole} in another package via a @code{@B{nest}} construct.
+ Formal holes are used in order to achieve separated compilation in a
+ top-bottom fashion, and also to invoke procedures written in other
+ languages, such as C functions or Fortran subroutines.
+ 
+ @end itemize
+ 
+ A @dfn{collection of packets}, all of which must be compatible with
+ each other, constitutes either a @dfn{program} or a @dfn{library}.
+ Exactly one of the packets constituting a program shall be a
+ particular program.  In libraries at least one packet must be a
+ prelude packet.
+ 
+ @node Modules
+ @section Modules
+ @cindex module
+ 
+ @dfn{Definition modules}, often referred as just @dfn{modules} in the
+ sequel, fulfill two different but related purposes.  On one side, they
+ provide some degree of @dfn{protection} by preventing accessing
+ indicators defined within the module but not explicitly publicized.
+ On the other, they allow to define @dfn{interfaces}, allow separated
+ compilation based on these interfaces, and conform libraries.
+ 
+ Modules are usually associated with bottom-up development strategies,
+ where several already written components are grouped and combined to
+ conform bigger components.
+ 
+ @menu
+ * Writing modules::                Writing modules.
+ * Accessing modules::              Using the definitions of a module.
+ * Module activation::              How and when modules execute.
+ * Modules and exports::            How the compiler searches for modules.
+ * Modules and libraries::          Using modules to conform libraries.
+ * Modules and protection::         When block structure is not enough.
+ @end menu
+ 
+ @node Writing modules
+ @subsection Writing modules
+ 
+ A @dfn{definition module} is a construct that provides access to a set
+ of publicized definitions.  They appear in the outer reach of a
+ prelude packet and constitute its only contents (@pxref{Packets}).
+ They are composed of a prelude and a postlude.  The publicized
+ definitions appear in the module's prelude.
+ 
+ Consider for example the following definition module, which implements
+ a very simple logging facility:
+ 
+ @example
+ @B{module} @B{Logger} =
+ @B{def} @B{int} fd = stderr;
+     @B{pub} @B{string} originator;
+     @B{pub} @B{proc} log = (@B{string} msg) @B{void}:
+            fputs (fd, (originator /= "" | ": ") + msg + "'n");
+ 
+     log ("beginning of log'n")
+ @B{postlude}
+     log ("end of log'n")
+ @B{fed}
+ @end example
+ 
+ @noindent
+ The @dfn{module text} delimited by @code{@B{def}} and @code{@B{fed}}
+ gets ascribed to the module indicator @code{@B{Logger}}.  Module
+ indicators are bold tags.
+ 
+ The @dfn{prelude} of the module spans from @code{@B{def}} to either
+ @code{@B{postlude}}, or to @code{@B{fed}} in case of modules not
+ featuring a postlude.  It consists of a restricted serial clause in a
+ void strong context, which can contain units and declarations, but no
+ labels or completers.  The declarations in the prelude may be either
+ publicized or no publicized.  As we shall see, publicized indicators
+ are accessible within the reach of the defining module publicizing
+ them.  Publicized declarations are marked by preceding them with
+ @code{@B{pub}}.
+ 
+ In our example the module prelude consists of three declarations and
+ one unit.  The tag @code{fd} is not publicized and is to be used
+ internally by the module.  The indicators @code{originator} and
+ @code{log}, on the other hand, are publicized and conform the
+ interface of the module.  Note how the range of the prelude also
+ covers the postlude: the @code{log} procedure is reachable there, as
+ it would be @code{fd} as well.
+ 
+ The @dfn{postlude} of the module is optional and spans from
+ @code{@B{postlude}} to @code{@B{fed}}.  It consists of a serial clause
+ in a @code{@B{void}} strong context, where definitions, labels and
+ module accesses are not allowed, just units.
+ 
+ @node Accessing modules
+ @subsection Accessing modules
+ 
+ Once a module is defined (@pxref{Writing modules}) it can be accessed
+ from other packets using an @dfn{access clause}.  The access clause
+ identifies the modules to access and then makes the publicized
+ definitions of these modules visible within a @dfn{control clause}.
+ 
+ For example, this is how we could use the logger definition module
+ defined in a previous section to log the progress of some particular
+ program that reads an input file and writes some output file:
+ 
+ @example
+ @B{access} @B{Logger}
+ @B{begin} @{ Identify ourselves with the program name @}
+       originator := argv (1);
+ 
+       @{ Read input file.  @}
+       @B{if} @B{NOT} parse_input (argv (2))
+       @B{then} log ("error parsing input file"); stop @B{fi};
+ 
+       @{ Write output file.  @}
+       @B{if} @B{NOT} write_output (argv (3))
+       @B{then} log ("error writing output file"); stop @B{fi};
+ 
+       log ("success")
+ @B{end}
+ @end example
+ 
+ @noindent
+ In this case the controlled clause is the closed clause conforming the
+ particular program, and the definitions publicized by the logger
+ module, in this case @code{originator} and @code{log}, can be used
+ within it.
+ 
+ @subsubsection Accessing several modules
+ 
+ An access clause is not restricted to just provide access to a single
+ module: any number of module indicators can be specified in an access
+ clause.  Suppose that our example processing program has to read and
+ write the data in JSON format, and that a suitable JSON library is
+ available in the form of a reachable module.  We could then make both
+ logger and json modules accessible like this:
+ 
+ @example
+ @B{access} @B{Logger}, @B{JSON}
+ @B{begin} @{ Identify ourselves with the program name @}
+       originator := argv (1);
+ 
+       @B{JSONVal} data;
+ 
+       @{ Read input file.  @}
+       @B{if} data := json_from_file (argv (2));
+          data = json_no_val
+       @B{then} log ("error parsing input file"); stop @B{fi};
+ 
+       @{ Write output file.  @}
+       @B{if} @B{not} json_to_file (argv (3), data)
+       @B{then} log ("error writing output file"); stop @B{fi};
+ 
+       log ("success")
+ @B{end}
+ @end example
+ 
+ @noindent
+ In this version of the program the access clause includes the module
+ indicator @code{@B{JSON}}, and that makes the mode indicator
+ @code{@B{jsonval}} and the tags @code{json_no_val},
+ @code{json_from_file} and @code{json_to_file} visible within the
+ program's closed clause.
+ 
+ Note that the following two access clauses are not equivalent:
+ 
+ @example
+ @B{access} @B{Logger}, @B{JSON} @B{C} ... @B{C};
+ @B{access} @B{Logger} @B{access} @B{JSON} @B{C} ... @B{C};
+ @end example
+ 
+ @noindent
+ In the first case, a compilation time error is emitted if there is a
+ conflict among the publicized definitions of both modules; for
+ example, if both modules were to publicize a procedure called
+ @code{log}.  In the second case, the declaration of @code{log}
+ publicized by @code{@B{Logger}} would hide the declaration of
+ @code{log} publicized by @code{@B{JSON}}.  This also has implications
+ related to activation, that we will be discussing in a later section.
+ 
+ @subsubsection The controlled clause
+ 
+ The controlled clause in an access clause doesn't have to be a serial
+ clause, like in the examples above.  It can be any enclosed clause,
+ like for example a loop clause:
+ 
+ @example
+ @B{proc} frobnicate frobs = ([]@B{Frob} frobs) @B{void}:
+    @B{access} @B{Logger} @B{to} @B{UPB} frobs
+                  @B{do} log ("frobnicating " + name @B{of} frob);
+                     frobnicate (frob)
+                  @B{od}
+ @end example
+ 
+ @subsubsection The value yielded by an access clause
+ 
+ The elaboration of an access clause yields a value, which is the value
+ yielded by the elaboration of the controlled clause.  Since the later
+ is an enclosed clause, coercions get passed into them whenever
+ required, the usual fashion.
+ 
+ We can see an example of this in the following procedure, whose body
+ is a controlled closed clause that yields a @code{@B{real}} value:
+ 
+ @example
+ @B{proc} incr factor = (@B{ref}[]@B{real} factors, @B{int} idx) @B{real}:
+    @B{access} @B{logger} (log ("factor increased"); factors[idx] +:= 1.0)
+ @end example
+ 
+ @noindent
+ Note how the access clause above is in a strong context requiring a
+ value of mode @code{@B{real}}.  The value yielded by the access clause
+ is the value yielded by the controlled enclosed clause, which in this
+ case is a closed clause.  The strong context and required mode gets
+ passed to the last unit of the closed clause (the assignation) which
+ in this case yields a value of mode @code{@B{ref} @B{real}}.  The unit
+ is coerced to @code{@B{real}} by dereferencing, and the resulting
+ value becomes the value yielded by the access clause.
+ 
+ @subsubsection Modules accessing other modules
+ 
+ Up to this point we have seen particular programs accessing modules,
+ but a definition module may itself access other modules.  This is done
+ by placing the module text as a controlled clause of an access clause.
+ Suppose we rewrite our logger module so it uses JSON internally to log
+ JSON objects rather than raw strings.  We could do it this way:
+ 
+ @example
+ @B{module} @B{Logger} =
+    @B{access} @B{JSON}
+    @B{def} @B{int} fd = stderr;
+        @B{pub} @B{string} originator;
+        @B{pub} @B{proc} log = (@B{string} msg) @B{void}:
+               fputs (fd, json_array (json_string (originator),
+                                      json_string (msg)));
+ 
+        log (json_string ("beginning of log'n"))
+    @B{postlude}
+        log (json_string ("end of log'n"))
+    @B{fed}
+ @end example
+ 
+ @noindent
+ Note how this version of @code{@B{Logger}} uses a few definitions
+ publicized by the @code{@B{JSON}} module.
+ 
+ A program accessing @code{@B{Logger}} will not see the definitions
+ publicized by the @code{@B{JSON}} module.  If that is what we
+ intended, for example to allow the users of the logger to tweak their
+ own JSON, we would need to specify it this way:
+ 
+ @example
+ @B{module} @B{Logger} =
+    @B{access} @B{pub} @B{JSON}
+    @B{def} @B{c} ...as before... @B{c} @B{fed}
+ @end example
+ 
+ @noindent
+ In this version the definitions publicized by @code{@B{JSON}} become
+ visible to programs accessing @code{@B{Logger}}.
+ 
+ @node Module activation
+ @subsection Module activation
+ 
+ In all the examples seen so far the modules were accessed just once.
+ In these cases, accessing the module via an access-clause causes the
+ @dfn{activation} of the module.
+ 
+ Activating a module involves elaborating all the declarations and
+ units that conform its prelude.  Depending on the particular module
+ definition that gets activated, this may involve all sort of side
+ effects, such as allocating space for values and initializing them,
+ opening files, @i{etc}.  Once the modules specified in the access
+ clause are successfully activated, the controlled clause gets
+ elaborated itself, within the reach of all the publicized definitions
+ by the activated modules as we saw in the last section.  Finally, once
+ the controlled clause has been elaborated, the module gets
+ @dfn{revoked} by elaborating the serial clause in its postlude.
+ 
+ However, nothing prevents some given definition module to be accessed
+ more than once in the same program.  The following program, that makes
+ use of the @code{@B{logger}} module, exemplifies this:
+ 
+ @example
+ @B{access} @B{Logger}
+ @B{begin} originator := argv (1);
+       log ("executing program");
+       @B{c} ... @B{c}
+       @B{access} @B{Logger} (originator := argv (1) + ":subtask";
+                      log ("doing subtask")
+                      @B{c} ... @B{c})
+ @B{end}
+ @end example
+ 
+ @noindent
+ In this program the module @code{@B{Logger}} is accessed twice.  The
+ code is obviously written assuming that the inner access clause
+ triggers a new activation of the @code{@B{Logger}} module, allocating
+ new storage and executing its prelude.  This would result in the
+ following log contents:
+ 
+ @example
+ a.out: beginning of log
+ a.out: executing program
+ a.out:subtask: beginning of log
+ a.out:subtask: doing subtask
+ a.out:subtask: end of log
+ a.out: end of log
+ @end example
+ 
+ @noindent
+ However, this is not what happens.  The module gets only activated
+ once, as the result of the outer access clause.  The inner access
+ clause just makes the publicized indicators visible in its controlled
+ clause.  The actual resulting log output is:
+ 
+ @example
+ a.out: beginning of log
+ a.out: executing program
+ a.out:subtask: doing subtask
+ a.out:subtask: end of log
+ @end example
+ 
+ @noindent
+ Which is not what we intended.  Modules are not classes.  If we wanted
+ the logger to support several originators that can be nested, we would
+ need to add support for it in the definition module.  Something like:
+ 
+ @example
+ @B{module} @B{Logger} =
+    @B{def} @B{int} fd = stderr, max_originators = 10;
+        @B{int} orig := 0;
+        [max_originators]@B{string} originators;
+ 
+        @B{pub} @B{proc} push_originator = (@B{string} str) @B{void}:
+               (@B{assert} (orig < max_originators);
+                orig +:= 1;
+                originators[orig] := str);
+        @B{pub} @B{proc} pop_originator = @B{void}:
+               (@B{assert} (max_originators > 0);
+                orig -:= 1);
+        @B{pub} @B{proc} log = (@B{string} msg) @B{void}:
+               fputs (fd, (originator[orig] /= "" | ": ") + msg + "'n");
+ 
+        log ("beginning of log'n")
+    @B{postlude}
+        log ("end of log'n")
+    @B{fed}
+ @end example
+ 
+ @noindent
+ Note how in this version of @code{@B{Logger}} @code{originators} acts
+ as a stack of originator strings, and it is not publicized.  The
+ management of the stack is done via a pair of publicized procedures
+ @code{push_originator} and @code{pop_originator}.  Our program will
+ now look like:
+ 
+ @example
+ @B{access} @B{Logger}
+ @B{begin} push_originator (argv (1));
+       log ("executing program");
+       @B{c} ... @B{c}
+       @B{access} @B{logger} (push_originator ("subtask");
+                      log ("doing subtask")
+                      @B{c} ... @B{c};
+                      pop_originator)
+ @B{end}
+ @end example
+ 
+ @noindent
+ And the log output is:
+ 
+ @example
+ a.out: beginning of log
+ a.out: executing program
+ a.out:subtask: doing subtask
+ a.out: end of log
+ @end example
+ 
+ @node Modules and exports
+ @subsection Modules and exports
+ @cindex exports
+ 
+ As we have seen, each Algol 68 source file contains either a
+ particular program or a prelude packet.  Prelude packets consist on
+ the definition of a single top-level module, that is itself identified
+ by a module indicant.
+ 
+ Consider for example a source file called @file{trilean.a68} that
+ implements strong Kleene three-valued (``trilean'') logic.  It does so
+ by the mean of a definition module called @code{@B{Trilean}}.  A
+ sketch of such a file may look like this:
+ 
+ @example
+ @B{module} @B{Trilean} =
+ @B{def}
+     @B{pub} @B{mode} @B{Tril} = @B{int};
+ 
+     @B{pub} @B{Tril} dontknow = 0, yes = 1, no = 2;
+ 
+     @B{pub} @B{prio} @B{AND3} = 3, @B{OR3} = 3, @B{XOR3} = 3;
+ 
+     @B{pub} @B{op} @B{NOT3} = (@B{Tril} a) @B{Tril}:
+        (a + 1 | dontknow, no, yes);
+ 
+     @B{C} ... other definitions ... @B{C}
+ 
+     @B{skip}
+ @B{fed}
+ @end example
+ 
+ The module indicant @code{@B{Trilean}} identifies the module.  If we
+ now compile this file to an object file using GCC:
+ 
+ @example
+ $ ga68 -c trilean.a68
+ @end example
+ 
+ The result of the compilation is an object file @file{trilean.o}, plus
+ some @dfn{exports information} which is placed in a section in the
+ object file, named @code{.a68_exports}.  The exports information
+ describes the interface provided by the @code{@B{Trilean}} module
+ defined in the compilation unit.  This includes all the modes,
+ identifiers, priorities, operators, etc, that are publicized by the
+ module.  The particular encoding used to hold these exports is highly
+ compact and not easy readable by persons; instead, it is designed to
+ be read back by GCC when it builds another compilation unit that, in
+ turn, needs to access the @code{@B{Trilean}} module.
+ 
+ Consider the following sketched particular program that resides in a
+ source file @file{main.a68}, and that uses trilean logic:
+ 
+ @example
+ @B{access} @B{Trilean}
+ @B{begin}
+       @B{C} ... @B{C}
+ @B{end}
+ @end example
+ 
+ When this program gets compiled by GCC using @code{ga68 -c
+ program.a68}, the compiler finds the access clause and needs to locate
+ some exports for the module @code{@B{Trilean}}.  To do so, it searches
+ in the modules search path, composed by the current working directory,
+ some system directories and all directories specified in @option{-I}
+ and @option{-L} options, looking for files called @file{trilean.m68},
+ @file{trilean.so}, @file{trilean.a} and @file{trilean.o}, in that
+ order, where:
+ 
+ @table @file
+ @item trilean.m68
+ Is a stand-alone file expected to contain export data for one or more
+ modules.
+ @item trilean.so
+ Is a DSO, or shared object, expected to contain a @code{.a68_exports}
+ section with exports data for one or more modules.
+ @item trilean.a
+ Is an archive, whose constituent object files may contain
+ @code{.a68_exports} sections with exports data for one or more
+ modules.
+ @item trilean.o
+ Is an object file expected to contain export data for one or more
+ modules in a @code{.a68_exports} section.
+ @end table
+ 
+ The files are tried in order, and if export data for the requested
+ module @code{@B{Trilean}} is found, it is read in, decoded, and used
+ to compile @file{main.a68} into @file{main.o}.
+ 
+ The last step in obtaining an executable for our program would be to
+ use GCC to do a link like @code{ga68 trilean.o main.o -o main}.
+ 
+ Module indicants such as @code{@B{Trilean}} are bold words in the
+ language.  This means that, independently of the stropping regime
+ used, they are constituted by a bold letter followed by a sequence of
+ zero or more bold letters and digits.  Using the modern stropping
+ supported by the GNU Algol 68 compiler, this means that all of
+ @code{@B{Trilean}}, @code{@B{TRILEAN}} and @code{@B{Tri_lean}} denote
+ exactly the same module indicant, @b{trilean}.
+ 
+ The mapping from module indicant to the ``base name'' used to locate
+ the module exports is quite straightforward: the bold letters are
+ transformed to lower-case letters, and the bold digits are just normal
+ digits.  Therefore, the exports for the module
+ @code{@B{GRAMP_Grammar}} would looked in files
+ @file{grampgrammar.m68}, @file{libgrampgrammar.so}, etc.
+ 
+ But often this default, straightforward mapping, is not what we need.
+ 
+ Suppose for example that a shared object installed in the system,
+ @file{liba68goodies.so}, provides many facilities in the form of
+ several modules, including a @code{@B{Trilean}} module.  We want to
+ use the trilean implementation of liba68goodies in our program
+ @file{main.a68}.  If we just @code{@B{access} @B{Trilean}} GCC will
+ look for @file{trilean.m68} etc, but wont even consider looking in
+ @file{liba68goodies.so}.  Accessing @code{@B{A68Goodies}} is obviously
+ not a solution, as the module we want is @code{@B{Trilean}} and there
+ may not even be a module called @code{@B{A68Goodies}} in
+ @file{liba68goodies.so}.
+ 
+ The solution for this is to use the @dfn{modules map} of the compiler.
+ This map is an association or map between module indicants and
+ base-names.  When it comes to access some module, the compiler looks
+ in the map.  If there is an entry for the module's indicant, then it
+ fetches the base-name to use for looking for the module's export data.
+ If there is not an entry for the module's indicant then the default,
+ straightforward mapping described above is attempted.
+ 
+ By default the map is empty, but we can add entries by using the
+ @option{-fmodules-map=} and @option{-fmodules-map-file=} command-line
+ options.  The first option expects entries to be added to the map in a
+ string in the command-line, whereas the second option expects the name
+ of a file containing the entries to add to the map.  In both cases the
+ format describing the entries is exactly the same (@pxref{Module
+ search options}).
+ 
+ In our case, we could compile our main program specifying an entry in
+ the map telling the compiler where to find the trilean and logging
+ modules:
+ 
+ @example
+ $ ga68 -fmodules-map="a68goodies=Trilean,Logger" -c main.a68
+ @end example
+ 
+ @node Modules and libraries
+ @subsection Modules and libraries
+ @cindex library
+ @cindex prelude packet
+ 
+ XXX
+ 
+ As we have seen modules are accessed by referring to them in
+ access-clauses, using the same sort of bold-word indicants that
+ identify user-defined modes and operators, such as @code{JSON},
+ @code{Transput} or @code{LEB128_Arithmetic}.
+ 
+ @node Modules and protection
+ @subsection Modules and protection
+ @cindex protection
+ @cindex publicized definition
+ 
+ XXX
+ 
+ @node Holes
+ @section Holes
+ @cindex holes
+ 
+ @dfn{Holes} are part of the modules system and are a mechanism used
+ for two main purposes:
+ 
+ @itemize @minus
+ @item Top-down programming.
+ @item Communication with other programming languages.
+ @end itemize
+ 
+ 
+ At the moment only the second kind of holes are supported by this
+ compiler.  @xref{Foreign Function Interface}.
+ 
+ @node Particular programs
+ @section Particular programs
+ @cindex particular program
+ 
+ An Algol 68 @dfn{particular program} consists of an enclosed clause in
+ a strong context with target mode @code{@B{void}}, possibly preceded
+ by a set of zero or more labels.  For example:
+ 
+ @example
+ hello:
+ @B{begin} puts ("Hello, world!'n")
+ @B{end}
+ @end example
+ 
+ @noindent
+ Note that the enclosed clause conforming the particular program
+ doesn't have to be a closed clause.  Consider for example the
+ following program, that prints out its command line arguments:
+ 
+ @example
+ @B{for} i @B{to} argc
+ @B{do} puts (argv (i) + "'n") @B{od}
+ @end example
+ 
+ @menu
+ * Exit status::              How do programs communicate success or failure.
+ * The @code{stop} label::    How to terminate a program at any time.
+ @end menu
+ 
+ @node Exit status
+ @subsection Exit status
+ @cindex exit status
+ 
+ Some operating systems have the notion of @dfn{exit status} of a
+ process.  In such systems, by default the execution of the particular
+ program results in an exit status of success.  It is possible for the
+ program to specify an explicit exit status by using the standard
+ procedure @code{posix exit}, like:
+ 
+ @example
+ @b{begin} @{ ... program code ... @}
+      @B{if} error found;
+      @B{then} posix exit (1) @B{fi}
+ @b{end}
+ @end example
+ 
+ In POSIX systems the status is an integer, and the system interprets a
+ value other than zero as a run-time error.  In other systems the
+ status may be of some other type.  To support this, the @code{posix
+ exit} procedure accepts as an argument an united value that
+ accommodates all the supported systems.
+ 
+ The following example shows a very simple program that prints ``Hello
+ world'' on the standard output and then returns to the operating
+ system with a success status:
+ 
+ @example
+ @B{begin} puts ("Hello world'n")
+ @B{end}
+ @end example
+ 
+ @node The @code{stop} label
+ @subsection The @code{stop} label
+ @cindex @code{stop}
+ 
+ A predefined label named @code{stop} is defined in the standard
+ postlude.  This label can be jumped to at any time by a program and it
+ will cause it to terminate and exit.  For example:
+ 
+ @example
+ @B{begin} @B{if} argc /= 2
+       @B{then} puts ("Program requires exactly two arguments.");
+      goto stop
+       @B{fi}
+       @B{C} ... @B{C}
+ @B{end}
+ @end example
+ 
+ @node The standard environment
+ @section The standard environment
+ @cindex standard environment
+ 
+ The environment in which particular programs run is expressed here in
+ the form of pseudo code:
+ 
+ @example
+ (@B{c} standard-prelude @B{c};
+  @B{c} library-prelude @B{c};
+  @B{c} system-prelude @B{c};
+  @B{par} @B{begin} @B{c} system-task-1 @B{c},
+            @B{c} system-task-2 @B{c},
+            @B{c} system-task-n @B{c},
+            @B{c} user-task-1 @B{c},
+            @B{c} user-task-2 @B{c},
+            @B{c} user-task-m @B{c}
+      @B{end})
+ @end example
+ 
+ @noindent
+ Where each user task consists of:
+ 
+ @example
+ (@B{c} particular-prelude @B{c};
+  @B{c} user-prelude @B{c};
+  @B{c} particular-program @B{c};
+  @B{c} particular-postlude @B{c})
+ @end example
+ 
+ The only standard system task described in the report is expressed in
+ pseudo-code as:
+ 
+ @example
+ @B{do} @B{down} gremlins; undefined; @B{up} bfileprotect @B{od}
+ @end example
+ 
+ @noindent
+ Which denotes that, once a book (file) is closed, anything may happen.
+ Other system tasks may exist, depending on the operating system.  In
+ general these tasks in the parallel clause denote the fact that the
+ operating system is running in parallel (intercalated) with the user's
+ particular programs.
+ 
+ @itemize @bullet
+ @item
+ The library-prelude contains, among other things, the prelude parts of
+ the defining modules provided by library.
+ 
+ @item
+ The particular-prelude and particular-postlude are common to all the
+ particular programs.
+ 
+ @item
+ The user-prelude is where the prelude parts of the defining modules
+ involved in the compilation get stuffed.  If no defining module is
+ involved then the user-prelude is empty.
+ @end itemize
+ 
+ Subsequent sections in this manual include a detailed description of
+ the contents of these preludes.
+ 
+ @node Foreign Function Interface
+ @chapter Foreign Function Interface
+ @cindex FFI
+ 
+ It is possible to call functions written in other programming
+ languages, and also to access variables and constants, using the
+ following form of @dfn{formal hole}:
+ 
+ @example
+ @B{nest} @B{language_indicant} "row char denotation"
+ @end example
+ 
+ @noindent
+ Where @B{language_indicant} is a bold word indicating the programming
+ language we are communicating with and the row char denotation
+ specifies the entity we are accessing.  The interpretation of the
+ later depends on the specific language.
+ 
+ The formal hole construction is an @dfn{unit}, and can only appear in
+ a strong context.  It's mode is the mode expected by the strong
+ context.  For example, in the following declaration:
+ 
+ @example
+ int counter = nest C "_counter";
+ @end example
+ 
+ @noindent
+ The mode of the formal hole is @code{@B{int}}, since it is in a strong
+ context (the actual parameter of an identity declaration) in which an
+ integral value is expected.  Likewise, in:
+ 
+ @example
+ proc long int func = nest C "random";
+ @end example
+ 
+ @noindent
+ The expected mode is a procedure that gets no arguments and returns a
+ @code{@B{long} @B{int}}.
+ 
+ The set of modes that are accepted in the formal holes depend on the
+ specific language we are communicating to.  These are usually
+ restricted because the compiler may not know how to translate certain
+ Algol 68 concepts into the foreign language ones.  A compile time
+ error is issued if an invalid mode is required.  Specifics are
+ described in the sections below.
+ 
+ It is important to note that the language-indicants like @code{@B{C}}
+ or @code{@B{Fortran}} are still available to be used as mode
+ indicants, operators or module indicants: they only qualify as
+ language indicants when they appear in a formal hole (@code{@B{nest}})
+ construct.
+ 
+ The following subsections document the specific supported foreign
+ languages.
+ 
+ @menu
+ * Communicating with C::     Accessing C variables and functions.
+ @end menu
+ 
+ @node Communicating with C
+ @section Communicating with C
+ 
+ The language indicant @code{@B{C}} is used to access C variables and
+ calling C functions:
+ 
+ @example
+ @B{nest} @B{C} "[&]symbol"
+ @end example
+ 
+ The row char denotation should contain a symbol corresponding to a C
+ variable or function, optionally preceded by an ampersand @code{&}.
+ It is the responsibility of the programmer to make sure the specified
+ symbol actually corresponds to an entity with the right type.  In case
+ a malformed symbol is specified it will very likely result in an
+ assembler error.
+ 
+ For example, this is how we can access a C variable as an Algol 68
+ constant:
+ 
+ @example
+ @B{int} counter = @B{nest} @B{C} "counter";
+ 
+ @B{if} counter = 0
+ @B{then} ... @B{fi};
+ @end example
+ 
+ If we wanted to be able to change the value of the C variable
+ @code{counter} then we need to add a leading ampersand to the row
+ denotation, and of course change the mode on the Algol 68 side to a
+ @code{@B{ref} @B{int}}:
+ 
+ @example
+ @B{ref} @B{int} counter = @B{nest} @B{C} "&counter";
+ 
+ counter +:= 1;
+ @end example
+ 
+ If we wanted to access a C pointer variable @code{int *ptr} as an
+ Algol 68 name we could do:
+ 
+ @example
+ @B{ref} @B{int} ptr = @B{nest} @B{C} "ptr";
+ 
+ ptr := 100; @{ Changes the value pointed by the C pointer ptr,
+               not of ptr itself @}
+ @end example
+ 
+ If we wanted to call the standard POSIX functions @code{random} and
+ @code{srandom} we could do:
+ 
+ @example
+ @B{proc} @B{long} @B{int} random = @B{nest} @B{C} "random";
+ @B{proc}(@B{bits})@B{void} srandom = @B{nest} @B{C} "srandom";
+ 
+ @B{if} random < 100 @B{then} ... @B{fi}
+ @end example
+ 
+ The modes accepted in a formal hole for C are:
+ 
+ @table @asis
+ @item @code{@B{void}}
+ As C @code{void}.
+ @item @code{@B{bool}}
+ As C @code{bool}.
+ @item @code{@B{char}}
+ As C 32-bit integer.
+ @item @code{@B{int}}
+ As C @code{int}.
+ @item @code{@B{short} @B{int}}
+ As C @code{short}.
+ @item @code{@B{short} @B{short} @B{int}}
+ As C @code{char}.
+ @item @code{@B{long} @B{int}}
+ As C @code{long} or as C @code{int}.
+ @item @code{@B{long} @B{long} @B{int}}
+ As C @code{long long} or as C @code{long} or as C @code{int}.
+ @item @code{@B{bits}}
+ As C @code{unsigned int}.
+ @item @code{@B{short} @B{bits}}
+ As C @code{unsigned short}.
+ @item @code{@B{short} @B{short} @B{bits}}
+ As C @code{unsigned char}.
+ @item @code{@B{long} @B{bits}}
+ As C @code{unsigned long} or as C @code{unsigned int}.
+ @item @code{@B{long} @B{long} @B{bits}}
+ As C @code{unsigned long long} or as C @code{unsigned long} or as C @code{unsigned int}.
+ @item @code{@B{real}}
+ As C @code{float}
+ @item @code{@B{long} @B{real}}
+ As C @code{double}
+ @item @code{string} but only as formal parameters of procedures
+ Each Algol 68 string formal parameter turns into three parameters in C:
+ 
+ @table @code
+ @item uint32_t *s
+ A pointer to the UCS-4 characters composing the string.
+ @item size_t len
+ The length of @code{s} in number of characters.
+ @item size_t stride
+ The distance in bytes between each character in @code{s}.
+ @end table
+ @item @B{proc} with accepted formal parameter modes and yielded mode
+ As the corresponding C functions.
+ @item Structs with fields of accepted modes
+ As the corresponding C structs.
+ @end table
+ 
+ @node Comments and pragmats
+ @chapter Comments and pragmats
+ 
+ Comments and pragmats, also known collectively as @dfn{pragments}, can
+ appear almost anywhere in an Algol 68 program.  Comments are usually
+ used for documentation purposes, and pragmats contain annotations for
+ the compiler.  Both are handled at the lexical level.
+ 
+ @menu
+ * Comments::                    Your typical friendly comments.
+ * Pragmats::                    In-source directives for the compiler.
+ @end menu
+ 
+ @node Comments
+ @section Comments
+ 
+ In the default modern stropping regime supported by GCC comments are
+ written between @code{@{} and @code{@}} delimiters, and can be nested
+ to arbitrary depth.  For example:
+ 
+ @example
+ foo +:= 1; @{ Increment foo.  @}
+ @end example
+ 
+ If UPPER stropping is selected, this compiler additionally supports
+ three classical Algol 68 comment styles, in which the symbols marking
+ the beginning of comments are the same than the symbols marking the
+ end of comments and therefore can't be nested: @code{@B{comment}
+ ... @B{comment}}, @code{@B{co} ... @B{co}} and @code{# .. #}.  For
+ example:
+ 
+ @example
+ @B{comment}
+   This is a comment.
+ @B{comment}
+ 
+ foo := 10; @B{co} this is also a comment @B{co}
+ foo +:= 1; # and so is this.  #
+ @end example
+ 
+ Unless @option{-std=algol68} is specified in the command line, two
+ styles of nestable comments can be also used with UPPER stropping: the
+ already explained @code{@{ ... @}} and a ``bold'' style that uses
+ @code{@B{code} ... @B{edoc}}.  For example:
+ 
+ @example
+ foo := 10; @{ this is a nestable comment in brief style.  @}
+ foo +:= 1; @B{note} this is a nestable comment in bold style.  @B{eton}.
+ @end example
+ 
+ @example
+ @B{note}
+    "Bold" nestable comments.
+ @B{eton}
+ 
+ @{ "Brief" nestable comments. @}
+ @end example
+ 
+ In UPPER stropping all comment styles are available, both classic and
+ nestable.  In modern SUPPER stropping, which is based on reserved
+ words, only @code{@{ ... @}} is available.
+ 
+ @node Pragmats
+ @section Pragmats
+ 
+ @cindex pragmat
+ @dfn{Pragmats} (also known as @dfn{pragmas} in other programming
+ languages) are directives and annotations for the compiler, and their
+ usage impacts the compilation process in several ways.  A pragmat
+ starts with either @code{@B{pragmat}} or @code{@B{pr}} and finished
+ with either @code{@B{pragmat}} or @code{@B{pr}} respectively.
+ Pragmats cannot be nested.  For example:
+ 
+ @example
+ @B{pr} include "foo.a68" @B{pr}
+ @end example
+ 
+ The interpretation of pragmats is compiler-specific.  This chapter
+ documents the pragmats supported by GCC.
+ 
+ @menu
+ * pragmat include::         Include another source file.
+ @end menu
+ 
+ @node pragmat include
+ @subsection pragmat include
+ @cindex include
+ 
+ An @dfn{include pragmat} has the form:
+ 
+ @example
+ @B{pr} include "PATH" @B{pr}
+ @end example
+ 
+ @noindent
+ Where @code{PATH} is the path of the file whose contents are to be
+ included at the location of the pragmat.  If the provided path is
+ relative then it is interpreted as relative to the directory
+ containing the source file that contains the pragmat.
+ 
+ The @option{-I} command line option can be used in order to add
+ additional search paths for @code{include}.
+ 
+ @node Hardware representation
+ @chapter Hardware representation
+ 
+ The @dfn{reference language} specified by the Revised Report describes
+ Algol 68 particular programs as composed by @dfn{symbols}.  However,
+ the Report leaves the matter of the concrete representation of these
+ symbols, the @dfn{representation language}, open to the several
+ implementations.  This was motivated by the very heterogeneous
+ computer systems in existence at the time the Report was written,
+ which made flexibility in terms of representation a crucial matter.
+ 
+ This flexibility was indeed exploited by the early implementations,
+ and there was a price to pay for it.  A few years after the
+ publication of the Revised Report the different implementations had
+ already given rise to a plethora of many related languages that,
+ albeit being strict Algol 68, differed considerably in appearance.
+ This, and the fact that people were already engrossed in writing
+ programs other than compilers that needed to process Algol 68
+ programs, such as code formatters and macro processors, prompted the
+ WG 2.1 to develop and publish a @dfn{Report on the Standard Hardware
+ Representation for ALGOL 68}, which came out in 1975.
+ 
+ This compiler generally follows the Standard Hardware Representation,
+ but deviates from it in a few aspects.  This chapter provides an
+ overview of the hardware representation and documents any deviation.
+ 
+ @menu
+ * Representation languages::  From symbols to syntactic marks.
+ * Worthy characters::         Marks that can appear in a program.
+ * Base characters::           Mapping of worthy characters to code points.
+ * Stropping regimes::         Representation of bold words.
+ * Monads and Nomads::         Characters that can appear in operator names.
+ * String breaks::             String literals and escape sequences.
+ @end menu
+ 
+ @node Representation languages
+ @section Representation languages
+ 
+ A program in the strict Algol 68 language is composed by a series of
+ symbols.  These symbols have names such as @code{letter-a-symbol} and
+ @code{assigns-to-symbol} which are, well, purely symbolic. In fact,
+ these are notions in the two-level grammar that defines the strict
+ language.
+ 
+ A @dfn{representation language} provides a mapping between symbols in
+ the strict language and the representation of these symbols.  Each
+ representation is a sequence of syntactic marks.  For example, the
+ @code{completion symbol} may be represented by @strong{exit}, where
+ the marks are the bold letters.  The @code{tilde symbol} may be
+ represented by @code{~}, which is a single mark. The representation of
+ @code{assigns to symbol} is @code{:=}, which is composed by the two
+ marks @code{:} and @code{=}.  The representation of @code{letter-a}
+ is, not surprising, the single mark @code{a}.
+ 
+ The section 9.4 of the Report describes the recommended representation
+ for all the symbols of the language.  The set of all recommendations
+ constitutes the so-called @dfn{reference language}. Algol 68
+ implementations are strongly encouraged to use representation
+ languages which are similar enough to the reference language,
+ recognizable ``without further elucidation'', but this is not
+ strictly required.
+ 
+ A representation language may specify more than one representation for
+ a given symbol.  For example, in the reference language the @code{is
+ not symbol} is represented by @strong{isnt}, @code{:/=:} and a variant
+ of the later where the slash sign is superimposed on the equal sign.
+ In this case, an implementation can choose to implement any number of
+ the representations.
+ 
+ Spaces, tabs and newlines are @dfn{typographical display features}
+ that, when they appear between symbols, are of no significance and do
+ not alter the meaning of the program.  However, when a space or a tab
+ appear in string or character denotations, they represent the
+ @code{space symbol} and the @code{tab symbol}
+ respectively@footnote{The @code{tab symbol} is a GNU extension}.  The
+ different stropping regimes, however, may impose specific restrictions
+ on where typographical display features may or may not
+ appear. @xref{Stropping regimes}.
+ 
+ @node Worthy characters
+ @section Worthy characters
+ @cindex worthy characters
+ 
+ The syntactic marks of a representation language, both symbols and
+ typographical display features, are realized as a set of @dfn{worthy
+ characters} and the newline. Effectively, an Algol 68 program is a
+ sequence of @dfn{worthy characters} and newlines.  The worthy
+ characters are:
+ 
+ @example
+ a b c d e f g h i j k l m n o p q r s t u v w x y z
+ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+ 0 1 2 3 4 5 6 7 8 9
+ space tab " # $ % & ' ( ) * + , - . / : ; < = >  @@ [ \ ]
+ ^ _ | @ ! ? ~ @{ @}
+ @end example
+ 
+ Some of the characters above were considered unworthy by the original
+ Standard Hardware Representation:
+ 
+ @table @code
+ @item !
+ It was considered unworthy because many installations didn't have a
+ vertical bar base character, and @code{!} was used as a base character
+ for @code{|}.  Today every computer system features a vertical bar
+ character, so @code{!} can qualify as a worthy character.
+ @item &
+ The Revised Report specifies that @code{&} is a monad, used as a
+ symbol for the dyadic @code{@B{and}} operator.  The Standard Hardware
+ representation decided to turn it into an unworthy character,
+ motivated by the fact that no nomads existed for the other logical
+ operators @code{@B{not}} and @code{@B{or}}, and also with the goal of
+ maintaining the set of worthy characters as small as possible to
+ improve portability.  Recognizing that the first motivation still
+ holds, but not the second, this compiler re-instates @code{&} as a
+ monad but doesn't use it as an alternative representation of the
+ @code{@B{and}} operator.
+ @item ~
+ The Standard Hardware Representation vaguely cites some ``severe
+ difficulties'' with the hardware representation of the tilde
+ character.  Whatever these difficulties were at the time, they surely
+ don't exist anymore.  This compiler therefore recognizes @code{~} as a
+ worthy character, and is used as a monad.
+ @item ?
+ The question mark character was omitted as a worthy character to limit
+ the size of the worthy set.  This compiler recognizes @code{?} as a
+ worthy character, and is used as a monad.
+ @item \
+ Back-slash wasn't included as a worthy character because back in 1975
+ it wasn't supported in EBCDIC (it is now).  This compiler recognizes
+ @code{\} as a worthy character.
+ @item tab
+ This compiler recognizes the tabulator character as a worthy
+ character, and it is used as a typographical display feature.
+ @end table
+ 
+ @node Base characters
+ @section Base characters
+ @cindex base characters
+ 
+ The worthy characters described in the previous section are to be
+ interpreted symbolically rather than visually.  The worthy character
+ @code{|}, for example, is the vertical line character and generally
+ looks the same in every system.  The worthy character @code{space} is
+ obviously referred by a symbolic name.
+ 
+ The actual visually distinguishable characters available in an
+ installation are known as @dfn{base characters}.  The Standard
+ Hardware Representation allows implementations the possibility of
+ using two or more base characters to represent a single worthy
+ character.  This was the case of the @code{|} character, which was
+ represented in many implementations by either @code{|} or @code{!}.
+ 
+ This compiler uses the set of base characters corresponding to the
+ subset of the Unicode character set that maps one to one to the set of
+ worthy characters described in the previous section:
+ 
+ @example
+ A-Z   65-90
+ a-z   97-122
+ space 32
+ tab   9
+ !     33
+ "     34
+ #     35
+ $     36
+ %     37
+ &     38
+ '     39
+ (     40
+ )     41
+ *     42
+ +     43
+ ,     44
+ -     45
+ .     46
+ /     47
+ :     58
+ ;     59
+ <     60
+ =     61
+ >     62
+ ?     63
+ @@     64
+ [     91
+ \     92
+ ]     93
+ ^     94
+ _     95
+ |     124
+ ~     126
+ @end example
+ 
+ @node Stropping regimes
+ @section Stropping regimes
+ 
+ The Algol 68 reference language establishes that certain source
+ constructs, namely mode indications and operator indications, consist
+ in a sequence of @dfn{bold letters} and @dfn{bold digits}, known as a
+ @dfn{bold word}.  In contrast, other constructs like identifiers,
+ field selectors and labels, collectively known as @dfn{tags}, are
+ composed of regular, non-bold letters and digits.
+ 
+ What is precisely a bold letter or digit, and how they differ from
+ non-bold letters and digits, is not specified by the Report.  This is
+ no negligence, but a conscious effort at abstracting the definition of
+ the so-called @dfn{strict language} from its representation.  This
+ allows different representations of the same language.
+ 
+ Some representations of Algol 68 are intended to be published in
+ books, be it paper or electronic devices, and be consumed by persons.
+ These are called @dfn{publication languages}.  In publication
+ languages bold letters and digits are typically represented by actual
+ bold alphanumeric typographic marks.  An Algol 68 program hand written
+ on a napkin or a sheet of paper would typically represent bold letters
+ and digits underlined, or stroked using a different color ink.
+ 
+ Other representations of Algol 68 are intended to be automatically
+ processed by a computer.  These representations are called
+ @dfn{hardware languages}.  Sometimes the hardware languages are also
+ intended to be written and read by programmers; these are called
+ @dfn{programming languages}.
+ 
+ Unfortunately, computer systems today usually do not yet provide
+ readily usable and ergonomic bold or underline alphanumeric marks,
+ despite the existence of Unicode and modern and sophisticated editing
+ environments.  The lack of appropriate input methods surely plays a
+ role to explain this.  Thus, the programming representation languages
+ of Algol 68 should resort to a technique known as @dfn{stropping} in
+ order to differentiate bold letters and digits from non-bold letters
+ and digits.  The set of rules specifying the representation of these
+ characters is called a @dfn{stropping regime}.
+ 
+ There are three classical stropping regimes for Algol 68, which are
+ standardized and specified in the Standard Hardware Representation
+ normative document.  These are @dfn{POINT stropping}, @dfn{RES
+ stropping} and @dfn{UPPER stropping}.  The following sections do a
+ cursory tour over them; for more details the reader is referred to the
+ Standard Hardware Representation.
+ 
+ This compiler implements UPPER stropping and SUPPER stropping.
+ 
+ @menu
+ * POINT stropping::
+ * RES stropping::
+ * UPPER stropping::
+ * SUPPER stropping::
+ @end menu
+ 
+ @node POINT stropping
+ @subsection POINT stropping
+ 
+ POINT stropping is in a way the most fundamental of the three standard
+ regimes.  It was designed to work in installations with limited
+ character sets that provide only one alphabet, one set of digits, and
+ a very restricted set of other symbols.
+ 
+ In POINT stropping a bold word is represented by its constituent
+ letters and digits preceded by a point character.  For example, the
+ symbol @code{bold begin symbol} in the strict language, which is
+ represented as @strong{begin} in bold face in the reference language,
+ would be represented as @code{.BEGIN} in POINT stropping.
+ 
+ More examples are summarized in the following table.
+ 
+ @multitable @columnfractions .33 .33 .33
+ @headitem Strict language @tab Reference language @tab POINT stropping
+ @item @code{true symbol} @tab @strong{true} @tab @code{.TRUE}
+ @item @code{false symbol} @tab @strong{false} @tab @code{.FALSE}
+ @item @code{integral symbol} @tab @strong{int} @tab @code{.INT}
+ @item @code{completion symbol} @tab @strong{exit} @tab @code{.EXIT}
+ @item @code{bold-letter-c-...} @tab @strong{crc32} @tab @code{.CRC32}
+ @end multitable
+ 
+ In POINT stropping a tag is represented by writing its constituent
+ non-bold letters and digits in order.  But they are organized in
+ several @dfn{taggles}.
+ 
+ Each taggle is a sequence of one or more letters and digits,
+ optionally followed by an underscore character.  For example, the tag
+ @code{PRINT} is composed of a single taggle, but the tag
+ @code{PRINT_TABLE} is composed of a first taggle @code{PRINT_}
+ followed by a second taggle @code{TABLE}.
+ 
+ To improve readability it is possible to insert zero or more white
+ space characters between the taggles in a tag.  Therefore, the tag
+ @code{PRINT_TABLE} could have been written @code{PRINT TABLE}, or even
+ @code{PRINT_ TABLE}.  This is the reason why Algol 68 identifiers,
+ labels and field selectors can and do usually feature white spaces in
+ them.
+ 
+ It is important to note that both the trailing underscore characters
+ in taggles and the white spaces in a tag do not contribute anything to
+ the denoted tag: these are just stropping artifacts aimed to improve
+ readability.  Therefore @code{FOOBAR} @code{FOO BAR}, @code{FOO_BAR}
+ and @code{FOO_BAR_} are all representations of the same tag, that
+ represents the
+ @code{letter-f-letter-o-letter-o-letter-b-letter-a-letter-r} language
+ construct.
+ 
+ Below is the text of an example Algol 68 procedure encoded in POINT
+ stropping.
+ 
+ @example
+ .PROC RECSEL OUTPUT RECORDS = .VOID:
+ .BEGIN .BITS FLAGS
+          := (INCLUDE DESCRIPTORS | REC F DESCRIPTOR | REC F NONE);
+        .RECRSET RES = REC DB QUERY (DB, RECUTL TYPE,
+                                     RECUTL QUICK, FLAGS);
+        .RECWRITER WRITER := REC WRITER FILE NEW (STDOUT);
+ 
+        SKIP COMMENTS .OF WRITER := .TRUE;
+        .IF RECUTL PRINT SEXPS
+        .THEN MODE .OF WRITER := REC WRITER SEXP .FI;
+        REC WRITE (WRITER, RES)
+ .END
+ @end example
+ 
+ @node RES stropping
+ @subsection RES stropping
+ 
+ The early installations where Algol 68 ran not only featured a very
+ restricted character set, but also suffered from limited storage and
+ complex to use and time consuming input methods such as card punchers
+ and readers.  It was important for the representation of programs to
+ be as compact as possible.
+ 
+ It is likely that is what motivated the introduction of the RES
+ stropping regime.  As its name implies, it removes the need of
+ stropping many bold words by introducing @dfn{reserved words}.
+ 
+ A @dfn{reserved word} is one of the bold words specified in the
+ section 9.4.1 of the Report as a representation of some symbol.
+ Examples are @strong{at}, @strong{begin}, @strong{if}, @strong{int}
+ and @strong{real}.
+ 
+ RES stropping encodes bold words and tags like POINT stropping, but if
+ a bold word is a reserved word then it can then be written without a
+ preceding point, achieving this way a more compact, and easier to
+ read, representation for programs.
+ 
+ Introducing reserved words has the obvious disadvantage that some tags
+ cannot be written the obvious way due to the possibility of conflicts.
+ For example, to represent a tag @code{if} it is not possible to just
+ write @code{IF}, because it conflicts with a reserved word, but this
+ can be overcome easily (if not elegantly) by writing @code{IF_}
+ instead.
+ 
+ Below is the @code{recsel output records} procedure again, this time
+ encoded in RES stropping.
+ 
+ @example
+ PROC RECSEL OUTPUT RECORDS = VOID:
+ BEGIN BITS FLAGS
+          := (INCLUDE DESCRIPTORS | REC F DESCRIPTOR | REC F NONE);
+       .RECRSET RES = REC DB QUERY (DB, RECUTL TYPE,
+                                    RECUTL QUICK, FLAGS);
+       .RECWRITER WRITER := REC WRITER FILE NEW (STDOUT);
+ 
+       SKIP COMMENTS OF WRITER := TRUE;
+       IF RECUTL PRINT SEXPS
+       THEN MODE .OF WRITER := REC WRITER SEXP FI;
+       REC WRITE (WRITER, RES)
+ END
+ @end example
+ 
+ Note how user-defined mode an operator indications still require
+ explicit stropping.
+ 
+ @node UPPER stropping
+ @subsection UPPER stropping
+ 
+ In time computers added support for more than one alphabet by
+ introducing character sets with both upper and lower case letters,
+ along with convenient ways to both input and display these.
+ 
+ In UPPER stropping the bold letters in bold word are represented by
+ upper-case letters, whereas the letters in tags are represented by
+ lower-case letters.
+ 
+ The notions of upper- and lower-case are not applicable to digits, but
+ since the language syntax assures that it is not possible to have a
+ bold word that starts with a digit, digits are considered to be bold
+ if they follow a bold letter or another bold digit.
+ 
+ Below is the @code{recsel output records} procedure again, this time
+ encoded in UPPER stropping.
+ 
+ @example
+ PROC recsel output records = VOID:
+ BEGIN BITS flags
+          := (include descriptors | rec f descriptor | rec f none);
+       RECRSET res = rec db query (db, recutl type,
+                                   recutl quick, flags);
+       RECWRITER writer := rec writer file new (stdout);
+ 
+       skip comments of writer := TRUE;
+       IF recutl print sexps
+       THEN mode OF writer := rec writer sexp FI;
+       rec write (writer, res)
+ END
+ @end example
+ 
+ Note how in this regime it is almost never necessary to introduce bold
+ tags with points.  All in all, it looks much more natural to
+ contemporary readers.  UPPER stropping is in fact the stropping regime
+ of choice today.  It is difficult to think of any reason why anyone
+ would resort to use POINT or RES stropping.
+ 
+ @node SUPPER stropping
+ @subsection SUPPER stropping
+ 
+ In the SUPPER stropping regime bold words are written by writing a
+ sequence of one or more @dfn{taggles}. Each taggle is written by
+ writing a letter followed by zero or more other letters and digits and
+ is optionally followed by a trailing underscore character.  The first
+ letter in a bold word shall be an upper-case letter.  The rest of the
+ letters in the bold word may be either upper- or lower-case.
+ 
+ For example, @code{RecRset}, @code{Rec_Rset} and @code{RECRset} are
+ all different ways to represent the same mode indication.  This allows
+ to recreate popular naming conventions such as @code{CamelCase}.
+ 
+ As in the other stropping regimes, the casing of the letters and the
+ underscore characters are not really part of the mode or operator
+ indication.
+ 
+ Operator indications are also bold words and are written in exactly
+ the same way than mode indications, but it is usually better to always
+ use upper-case letters in operator indications.  On one side, it looks
+ better, especially in the case of dyadic operators where the asymmetry
+ of, for example @code{Equal} would look odd, consider @code{m1 Equal
+ m2} as opposed to @code{m1 EQUAL m2}.  On the other side, tools like
+ editors can make use of this convention in order to highlight operator
+ indications differently than mode indications.
+ 
+ In the SUPPER stropping regime tags are written by writing a sequence
+ of one or more @dfn{taggles}.  Each taggle is written by writing a
+ letter followed by zero or more other letters and digits and is
+ optionally followed by a trailing underscore character.  All letters
+ in a tag shall be lower-case letters.
+ 
+ For example, the identifier @code{list} is represented by a single
+ taggle, and it is composed by the letters @code{l}, @code{i}, @code{s}
+ and @code{t}, in order.  In the jargon of the strict language we would
+ spell the tag as @code{letter-l-letter-i-letter-s-letter-t}.
+ 
+ The label @code{found_zero} is represented by two taggles,
+ @code{found_} and @code{zero}, and it is composed by the letters
+ @code{f}, @code{o}, @code{u}, @code{n}, @code{d}, @code{z}, @code{e},
+ @code{r} and @code{o}, in order.  In the jargon of the strict language
+ we would spell the tag as @code{letter-f-letter-o-letter-u-letter-n
+ -letter-d-letter-z-letter-e-letter-r-letter-o}.
+ 
+ The identifier @code{crc_32} is likewise represented by two taggles,
+ @code{crc_} and @code{32}.  Note how the second taggle contains only
+ digits.  In the jargon of the strict language we would spell the tag
+ as @code{letter-c-letter-r-letter-c-digit-three-digit-two}.
+ 
+ The underscore characters are not really part of the tag, but part of
+ the stropping.  For example, both @code{goto found_zero} and
+ @code{goto foundzero} jump to the same label.
+ 
+ In general, typographical display features are allowed between any
+ symbol in the written program.  In SUPPER stropping, however, it is
+ not allowed to place spaces or tab characters between the constituent
+ digits of bits denotations when the radix is 16.  This is to avoid
+ confusing situations like the following invalid program:
+ 
+ @example
+ @B{while} bitmask /= 16r0 @B{do} ~ @B{od}
+ @end example
+ 
+ @noindent
+ Where the bits denotation would be interpreted as @code{16r0d} rather
+ than @code{16r0}, leading to a syntax error.  Note however that
+ typographical display features are still allowed between the radix
+ part and the digits, so @code{16r aabb} is valid also in SUPPER
+ stropping.
+ 
+ The @code{recsel output records} procedure, encoded in SUPPER
+ stropping, looks like below.
+ 
+ @example
+ proc recsel_output_records = void:
+ begin bits flags
+         := (include_descriptors | rec_f_descriptor | rec_f_none);
+       RecRset res = rec_db_query (db, recutl_type,
+                                   recutl_uick, flags);
+       RecWriter writer := rec_writer_file_new (stdout);
+ 
+       skip_comments of writer := true;
+       if recutl_print_sexps
+       then mode_ of writer := rec_writer_sexp fi;
+       rec_write (writer, res)
+ end
+ @end example
+ 
+ @node Monads and Nomads
+ @section Monads and Nomads
+ @cindex monads
+ @cindex nomads
+ 
+ Algol68 operators, be them predefined or defined by the programmer,
+ can be referred via either bold tags or sequences of certain
+ non-alphabetic symbols.  For example, the dyadic operator @code{+} is
+ defined for many modes to perform addition, the monadic operator
+ @code{@B{entier}} gets a real value and rounds it to an integral
+ value, and the operator @code{:=:} is the identity relation.  Many
+ operators provide both bold tag names and symbols names, like in the
+ case of @code{:/=:} that can also be written as @code{@B{isnt}}.
+ 
+ Bold tags are lexically well delimited, and if the same tag is used to
+ refer to a monadic operator and to a dyadic operator, no ambiguity can
+ arise.  For example, in the following program it is clear that the
+ second instance of @code{@B{plus}} refers to the monadic operator, and
+ the first instance refers to the dyadic operator@footnote{If one would
+ write @code{@B{plusplus}}, it would be a third different bold tag.}.
+ 
+ @example
+ @B{op} @B{PLUS} = (@B{int} a, b) @B{int}: a + b,
+    @B{PLUS} = (@B{int} a): a;
+ @B{int} val = 2 @B{PLUS} @B{PLUS} 3;
+ @end example
+ 
+ On the other hand, symbols are not lexically delimited as words, and
+ one symbol can appear immediately following another symbol.  This can
+ lead to ambiguities.  For example, if we were to define a C-like
+ monadic operator @code{++} like:
+ 
+ @example
+ @B{op} ++ = (@B{ref} @B{int} a) @B{int}: (@B{int} t = a; a +:=1; t);
+ @end example
+ 
+ @noindent
+ Then the expression @code{++a} would be ambiguous: is it @code{++a} or
+ @code{+(+a)}?.  In a similar way, if we would use @code{++} as the
+ name of a dyadic operator, an expression like @code{a++b} could be
+ also interpreted as both @code{a++b} and @code{a+(+b)}.
+ 
+ To avoid these problems Algol 68 divides the symbols which are
+ suitable to appear in the name of an operator into two classes: monads
+ and nomads.  @dfn{Monads} are symbols that can be used as monadic
+ operators.  @dfn{Nomads} are symbols which can be used as both monadic
+ or dyadic operators.  Given these two sets, the rules to conform a
+ valid operator are:
+ 
+ @itemize @minus
+ @item A bold tag.
+ @item Any monad.
+ @item A monad followed by a nomad.
+ @item A monad optionally followed by a nomad followed by either @code{:=} or @code{=:}, but not by both.
+ @end itemize
+ 
+ @noindent
+ In the GNU Algol 68 compiler:
+ 
+ @itemize @minus
+ @item The set of monads is @code{%^&+-~!?}.
+ @item The set of nomads is @code{></=*}.
+ @end itemize
+ 
+ @node String breaks
+ @section String breaks
+ 
+ The intrinsic value of each worthy character that appears inside a
+ string denotation is itself.  The string @code{"/abc"}, therefore,
+ contains a slash character followed by the three letters @code{a},
+ @code{b} and @code{c}.
+ 
+ Sometimes, however, it becomes necessary to represent some non-worthy
+ character in a string denotation.  In these cases, an escape
+ convention has to be used to represent these extra string-items.  It
+ is up to the implementation to decide this convention, and the only
+ requirement imposed by the Standard Hardware Representation on this
+ regard is that the character used to introduce escapes, the
+ @dfn{escape character}, shall be the apostrophe.  This section
+ documents the escape conventions implemented by the GNU compiler.
+ 
+ Two characters have special meaning inside string denotations: double
+ quote (@code{"}) and apostrophe (@code{'}).  The first finishes the
+ string denotation, and the second starts a @dfn{string break}, which
+ is the Algol 68 term for what is known as an ``escape sequence'' in
+ other programming languages.  Two consecutive double-quote characters
+ specify a single double-quote character.
+ 
+ The following string breaks are recognized by this compiler:
+ 
+ @table @code
+ @item ''
+ Apostrophe character @code{'}.
+ @item 'n
+ Newline character.
+ @item 'f
+ Form feed character.
+ @item 'r
+ Carriage return (no line feed).
+ @item 't
+ Tab.
+ @item '(list of character codes separated by commas)
+ The indicated characters, where each code has the form @code{uhhhh} or
+ @code{Uhhhhhhhh}, where @code{hhhh} and @code{hhhhhhhh} are integers
+ expressing the character code in hexadecimal.  The list must contain
+ at least one entry.
+ @end table
+ 
+ A string break can appear as the single string-item in a character
+ denotation, subject to the following restrictions:
+ 
+ @itemize @bullet
+ @item
+ List of characters string breaks @code{'(...)} that contain more than
+ one character code are not allowed in character denotations.  If the
+ specified code point is not a valid Unicode character then a
+ compilation error shall be raised.
+ @end itemize
+ 
+ @node Standard prelude
+ @chapter Standard prelude
+ @cindex prelude, standard
+ 
+ The Algol 68 Revised Report defines an extensive set of standard
+ modes, operators, procedures and values, collectively known as the
+ @dfn{standard prelude}.
+ 
+ The standard prelude is available to Algol 68 programs without needing
+ to import any module.
+ 
+ For brevity, in this section the pseudo-mode @code{@B{L}} represents a
+ @dfn{shortsety}, i.e. a sequence of either zero or more
+ @code{@B{LONG}} or zero or more @code{@B{SHORT}}.
+ 
+ @menu
+ * Environment enquiries::              Information about the implementation.
+ * Standard modes::                     Modes defined by the standard prelude.
+ * Standard priorities::                Priorities of all standard operators.
+ * Rows operators::                     Rows and associated operations.
+ * Boolean operators::                  Operations on boolean operands.
+ * Integral operators::                 Operations on integral operands.
+ * Real operators::                     Operations on real operands.
+ * Character operators::                Operations on character operands.
+ * String operators::                   Strings and associated operations.
+ * Complex operators::                  Operations on complex operands.
+ * Bits operators::                     Bits and associated operations.
+ * Bytes operators::                    Bytes and associated operations.
+ * Semaphore operators::                Synchronization operations.
+ * Math procedures::                    Standard mathematical constants and functions.
+ @end menu
+ 
+ @node Environment enquiries
+ @section Environment enquiries
+ 
+ An @dfn{environment enquiry} is a constant or a procedure, whose
+ elaboration yields a value that may be useful to the programmer, that
+ reflects some characteristic of the particular implementation.  The
+ values of these enquiries are also determined by the architecture and
+ operating system targeted by the compiler.
+ 
+ @deftypevr Constant @B{int} {int lengths}
+ 1 plus the number of extra lenghts of integers which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {int shorths}
+ 1 plus the number of extra shorths of integers which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{int}} {L max int}
+ The largest integral value.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {real lengths}
+ 1 plus the number of extra lenghts of real numbers which are
+ meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {real shorths}
+ 1 plus the number of extra shorths of real numbers which are
+ meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L max real}
+ The largest real value.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L small real}
+ The smallest real value such that both @code{1 + small real > 1} and
+ @code{1 - small real < 1}.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bits lengths}
+ 1 plus the number of extra widths of bits which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bits shorths}
+ 1 plus the number of extra shorths of bits which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bits width}
+ @deftypevrx Constant @B{int} {long bits width}
+ @deftypevrx Constant @B{int} {long long bits width}
+ The number of bits in a @code{@B{bits}} value.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bytes lengths}
+ 1 plus the number of extra widths of bytes which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bytes shorths}
+ 1 plus the number of extra shorths of bytes which are meaningful.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {bytes width}
+ @deftypevrx Constant @B{int} {long bytes width}
+ @deftypevrx Constant @B{int} {long long bytes width}
+ The number of chars in a @code{@B{bytes}} value.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{int} {max abs char}
+ The largest value which @code{@B{abs}} of a @code{@B{char}} can yield.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} {null character}
+ Some character.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} flip
+ @deftypevrx Constant @B{char} flop
+ Characters used to represent @code{@B{true}} and @code{@B{false}}
+ boolean values in textual transput.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} {error char}
+ Character used to represent the digit of a value resulting from a
+ conversion error in textual transput.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} blank
+ The space character.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L pi}
+ The number pi.
+ @end deftypevr
+ 
+ @node Standard modes
+ @section Standard modes
+ 
+ @deftp Mode @B{void}
+ The only value of this mode is @code{@B{empty}}.
+ @end deftp
+ 
+ @deftp Mode @B{bool}
+ Mode for the boolean truth values @code{@B{true}} and @code{@B{false}}.
+ @end deftp
+ 
+ @deftp Mode {@B{l} @B{int}}
+ Modes for signed integral values.  Each @code{@B{long}} or
+ @code{@B{short}} may increase or decrease the range of the domain,
+ depending on the characteristics of the current target.  Further
+ @code{@B{long}}s and @code{@B{short}}s may be specified with no
+ effect.
+ @end deftp
+ 
+ @deftp Mode {@B{l} @B{real}}
+ Modes for signed real values.  Each @code{@B{long}} may increase the
+ upper range of the domain, depending on the characteristics of the
+ current target.  Further @code{@B{long}}s may be specified but with no
+ effect.
+ @end deftp
+ 
+ @deftp Mode @B{char}
+ Mode for character values.  The character values are mapped one-to-one
+ to code points in the 21-bit space of Unicode.
+ @end deftp
+ 
+ @deftp Mode @B{string} {= @B{flex}[1:0]@B{char}}
+ Mode for sequences of characters.  This is implemented as a flexible
+ row of @code{@B{char}} values.
+ @end deftp
+ 
+ @deftp Mode {@B{l} @B{compl}} {= @B{struct} (@B{real} re,im)}
+ Modes for complex values.  Each @code{@B{long}} may increase the
+ precision of both the real and imaginary parts of the numbers,
+ depending on the characteristics of the current target.  Further
+ @code{@B{long}}s may be specified with no effect.
+ @end deftp
+ 
+ @deftp Mode {@B{l} @B{bits}}
+ Compact and efficient representation of a row of boolean values.  Each
+ @code{@B{long}} may increase the number of booleans that can be packed
+ in a bits, depending on the characteristics of the current target.
+ @end deftp
+ 
+ @deftp Mode {@B{l} @B{bytes}}
+ Compact and efficient representation of a row of character values.
+ Each @code{@B{long}} may increase the number of characters that can be
+ packed in a bytes, depending on the characteristics of the current
+ target.
+ @end deftp
+ 
+ @node Standard priorities
+ @section Standard priorities
+ 
+ @table @code
+ @item 1
+ @itemize @bullet
+ @item @code{plusab}, @code{+:=}
+ @item @code{minusab}, @code{-:=}
+ @item @code{timesab}, @code{*:=}
+ @item @code{divab}, @code{/:=}
+ @item @code{overab}, @code{%:=}
+ @item @code{modab}, @code{%*:=}
+ @item @code{plusto}, @code{+=:}
+ @end itemize
+ 
+ @item 2
+ @itemize @bullet
+ @item @code{or}
+ @end itemize
+ 
+ @item 3
+ @itemize @bullet
+ @item @code{and}
+ @item @code{xor}
+ @end itemize
+ 
+ @item 4
+ @itemize @bullet
+ @item @code{@B{eq}}, @code{=}
+ @item @code{@B{ne}}, @code{/=}
+ @end itemize
+ 
+ @item  5
+ @itemize @bullet
+ @item @code{@B{lt}}, @code{<},
+ @item @code{@B{le}}, @code{<=}
+ @item @code{@B{gt}}, @code{>}
+ @item @code{@B{ge}}, @code{>=}
+ @end itemize
+ 
+ @item 6
+ @itemize @bullet
+ @item @code{+}
+ @item @code{-}
+ @end itemize
+ 
+ @item 7
+ @itemize @bullet
+ @item @code{*}
+ @item @code{/}
+ @item @code{@B{over}}, @code{%}
+ @item @code{@B{mod}}, @code{%*}
+ @item @code{@B{elem}}
+ @end itemize
+ 
+ @item 8
+ @itemize @bullet
+ @item @code{**}
+ @item @code{@B{shl}}, @code{@B{up}}
+ @item @code{@B{shr}}, @code{@B{down}}
+ @item @code{@B{up}}, @code{@B{down}}
+ @item @code{^}
+ @item @code{@B{lwb}}
+ @item @code{@B{upb}}
+ @end itemize
+ 
+ @item 9
+ @itemize @bullet
+ @item @code{@B{i}}
+ @item @code{+*}
+ @end itemize
+ @end table
+ 
+ @node Rows operators
+ @section Rows operators
+ 
+ The following operators work on any row mode, denoted below using the
+ pseudo-mode @code{@B{rows}}.
+ 
+ @deftypefn Operator {} {@B{lwb}} {= (@B{rows} a) @B{int}}
+ Monadic operator that yields the lower bound of the first bound pair
+ of the descriptor of the value of @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{upb}} {= (@B{rows} a) @B{int}}
+ Monadic operator that yields the upper bound of the first bound pair
+ of the descriptor of the value of @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lwb}} {= (@B{int} n, @B{rows} a) @B{int}}
+ Dyadic operator that yields the lower bound in the n-th bound pair of
+ the descriptor of the value of @code{a}, if that bound pair exists.
+ Attempting to access a non-existing bound pair results in a run-time
+ error.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{upb}} {= (@B{int} n, @B{rows} a) @B{int}}
+ Dyadic operator that yields the upper bound in the n-th bound pair of
+ the descriptor of the value of @code{a}, if that bound pair exists.
+ Attempting to access a non-existing bound pair results in a run-time
+ error.
+ @end deftypefn
+ 
+ @node Boolean operators
+ @section Boolean operators
+ 
+ @deftypefn Operator {} {@B{not}} {= (@B{bool} a) @B{bool}}
+ @deftypefnx Operator {} {~} {= (@B{bool} a) @B{bool}}
+ Monadic operator that yields the logical negation of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{or}} {= (@B{bool} a, b) @B{bool}}
+ Dyadic operator that yields the logical ``or'' of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{and}} {= (@B{bool} a, b) @B{bool}}
+ @deftypefnx Operator {} {@B{&}} {= (@B{bool} a, b) @B{bool}}
+ Dyadic operator that yields the logical ``and'' of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{bool} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{bool} a, b) @B{bool}}
+ Dyadic operator that yields @code{@B{true}} if its operands are the
+ same truth value, @code{@B{false}} otherwise.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{bool} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{bool} a, b) @B{bool}}
+ Dyadic operator that yields @code{@B{false}} if its operands are the
+ same truth value, @code{@B{true}} otherwise.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{abs}} {= (@B{bool} a) @B{int}}
+ Monadic operator that yields 1 if its operand is @code{@B{true}}, and
+ 0 if its operand is @code{@B{false}}.
+ @end deftypefn
+ 
+ @node Integral operators
+ @section Integral operators
+ 
+ @subsection Arithmetic
+ 
+ @deftypefn Operator {} {+} {= (@B{l} @B{int} a) @B{l} @B{int}}
+ Monadic operator that yields the affirmation of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {-} {= (@B{l} @B{int} a) @B{l} @B{int}}
+ Monadic operator that yields the negative of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{abs}} {= (@B{l} @B{int} a) @B{l} @B{int}}
+ Monadic operator that yields the absolute value of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{sign}} {= (@B{l} @B{int} a) @B{int}}
+ Monadic operator that yields -1 if @code{a} if negative, 0 if @code{a}
+ is zero and 1 if @code{a} is positive.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{odd}} {= (@B{l} @B{int} a) @B{bool}}
+ Monadic operator that yields @code{@B{true}} if its operand is odd,
+ @code{@B{false}} otherwise.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {+} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields the addition of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {-} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields @code{b} subtracted from @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {*} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields the multiplication of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{over}} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ @deftypefnx Operator {} {%} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields the integer division of @code{a} by
+ @code{b}, rounding the quotient toward zero.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{mod}} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ @deftypefnx Operator {} {%*} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields the remainder of the division of @code{a}
+ by @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {/} {= (@B{l} @B{int} a, b) @B{l} @B{real}}
+ Dyadic operator that yields the integer division with real result of
+ @code{a} by @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {**} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ @deftypefnx Operator {} {^} {= (@B{l} @B{int} a, b) @B{l} @B{int}}
+ Dyadic operator that yields @code{a} raised to the exponent @code{b}.
+ @end deftypefn
+ 
+ @subsection Arithmetic combined with assignation
+ 
+ @deftypefn Operator {} {@B{plusab}} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @deftypefnx Operator {} {+:=} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @dfn{Plus and become}.  Dyadic operator that calculates @code{a + b},
+ assigns the result of the operation to the name @code{a} and then
+ yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{minusab}} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @deftypefnx Operator {} {-:=} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ Dyadic operator that calculates @code{a - b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{timesab}} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @deftypefnx Operator {} {*:=} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ Dyadic operator that calculates @code{a * b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{overab}} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @deftypefnx Operator {} {%:=} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ Dyadic operator that calculates @code{a % b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{modab}} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ @deftypefnx Operator {} {%*:=} {= (@B{ref} @B{l} @B{int} a, @B{l} @B{int} b) @B{ref} @B{l} @B{int}}
+ Dyadic operator that calculates @code{a %* b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @subsection Relational
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are not equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lt}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {<} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{le}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {<=} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than, or equal to
+ @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{gt}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {>} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than
+ @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ge}} {= (@B{l} @B{int} a, b) @B{bool}}
+ @deftypefnx Operator {} {>=} {= (@B{l} @B{int} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than, or equal
+ to @code{b}.
+ @end deftypefn
+ 
+ @subsection Conversion
+ 
+ @deftypefn Operator {} {@B{shorten}} {= (@B{short} @B{int} a) @B{short} @B{short} @B{int}}
+ @deftypefnx Operator {} {@B{shorten}} {= (@B{int} a) @B{short} @B{int}}
+ @deftypefnx Operator {} {@B{shorten}} {= (@B{long} @B{int} a) @B{int}}
+ @deftypefnx Operator {} {@B{shorten}} {= (@B{long} @B{long} @B{int} a) @B{long} @B{int}}
+ Monadic operator that yields, if it exists, the integral value that
+ can be lengthened to the value of @code{a}.  If the value doesn't
+ exist then the operator yields either the most positive integral value
+ in the destination mode, if @code{a} is bigger than that value, or the
+ most negative integral value in the destination mode, if @code{a} is
+ smaller than that value.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{leng}} {= (@B{short} @B{short} @B{int} a) @B{short} @B{int}}
+ @deftypefnx Operator {} {@B{leng}} {= (@B{short} @B{int} a) @B{int}}
+ @deftypefnx Operator {} {@B{leng}} {= (@B{int} a) @B{long} @B{int}}
+ @deftypefnx Operator {} {@B{leng}} {= (@B{long} @B{int} a) @B{long} @B{long} @B{int}}
+ Monadic operator that yields the integral value lengthened from the
+ value of @code{a}.
+ @end deftypefn
+ 
+ @node Real operators
+ @section Real operators
+ 
+ @subsection Arithmetic
+ 
+ @deftypefn Operator {} {+} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Monadic operator that yields the affirmation of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {-} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Monadic operator that yields the negative of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{abs}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Monadic operator that yields the absolute value of its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{sign}} {= (@B{l} @B{real} a) @B{int}}
+ Monadic operator that yields -1 if @code{a} if negative, 0 if @code{a}
+ is zero and 1 if @code{a} is positive.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {+} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Dyadic operator that yields the addition of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {-} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Dyadic operator that yields @code{b} subtracted from @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {*} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Dyadic operator that yields the multiplication of its operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {/} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Dyadic operator that yields the realeger division with real result of
+ @code{a} by @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {**} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ @deftypefnx Operator {} {^} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Dyadic operator that yields @code{a} raised to the real exponent @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {**} {= (@B{l} @B{real} a, @B{int} b) @B{l} @B{real}}
+ @deftypefnx Operator {} {^} {= (@B{l} @B{real} a, @B{int} b) @B{l} @B{real}}
+ Dyadic operator that yields @code{a} raised to the integral exponent
+ @code{b}.
+ @end deftypefn
+ 
+ @subsection Arithmetic combined with assignation
+ 
+ @deftypefn Operator {} {@B{plusab}} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ @deftypefnx Operator {} {+:=} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ @dfn{Plus and become}.  Dyadic operator that calculates @code{a + b},
+ assigns the result of the operation to the name @code{a} and then
+ yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{minusab}} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ @deftypefnx Operator {} {-:=} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ Dyadic operator that calculates @code{a - b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{timesab}} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ @deftypefnx Operator {} {*:=} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ Dyadic operator that calculates @code{a * b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{divab}} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ @deftypefnx Operator {} {/:=} {= (@B{ref} @B{l} @B{real} a, @B{l} @B{real} b) @B{ref} @B{l} @B{real}}
+ Dyadic operator that calculates @code{a / b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @subsection Relational
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are not equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lt}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {<} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{le}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {<=} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than, or equal to
+ @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{gt}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {>} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than
+ @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ge}} {= (@B{l} @B{real} a, b) @B{bool}}
+ @deftypefnx Operator {} {>=} {= (@B{l} @B{real} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than, or equal
+ to @code{b}.
+ @end deftypefn
+ 
+ @subsection Conversions
+ 
+ @deftypefn Operator {} {@B{round}} {= (@B{l} @B{real} a) @B{int}}
+ Monadic operator that yields the nearest integer to its operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{entier}} {= (@B{l} @B{real} a) @B{int}}
+ Monadic operator that yields the integer equal to @code{a}, or the
+ next integer below (more negative than) @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{shorten}} {= (@B{long} @B{real} a) @B{real}}
+ @deftypefnx Operator {} {@B{shorten}} {= (@B{long} @B{long} @B{real} a) @B{long} @B{real}}
+ Monadic operator that yields, if it exists, the real value that
+ can be lengthened to the value of @code{a}.  If the value doesn't
+ exist then the operator yields either the most positive real value
+ in the destination mode, if @code{a} is bigger than that value, or the
+ most negative real value in the destination mode, if @code{a} is
+ smaller than that value.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{leng}} {= (@B{real} a) @B{long} @B{real}}
+ @deftypefnx Operator {} {@B{leng}} {= (@B{long} @B{real} a) @B{long} @B{long} @B{real}}
+ Monadic operator that yields the real value lengthened from the
+ value of @code{a}.
+ @end deftypefn
+ 
+ @node Character operators
+ @section Character operators
+ 
+ @subsection Relational
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are not equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lt}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {<} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{le}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {<=} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is less than, or equal to
+ @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{gt}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {>} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ge}} {= (@B{char} a, b) @B{bool}}
+ @deftypefnx Operator {} {>=} {= (@B{char} a, b) @B{bool}}
+ Dyadic operator that yields whether @code{a} is greater than, or equal
+ to @code{b}.
+ @end deftypefn
+ 
+ @subsection Conversions
+ 
+ @deftypefn Operator {} {@B{ABS}} {= (@B{char} a) @B{int}}
+ Monadic operator that yields an unique integer for each permissable
+ value of @code{@B{char}}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{REPR}} {= (@B{int} a) @B{char}}
+ The opposite of @code{@B{abs}} of a character.
+ @end deftypefn
+ 
+ @node String operators
+ @section String operators
+ 
+ @subsection Relational
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are equal.  Two
+ strings are equal if they contain the same sequence of characters.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are not equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lt}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {<} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether the string @code{a} is less than
+ the string @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{le}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {<=} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether the string @code{a} is less than,
+ or equal to string @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{gt}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {>} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether the string @code{a} is greater
+ than the string @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ge}} {= (@B{string} a, b) @B{bool}}
+ @deftypefnx Operator {} {>=} {= (@B{string} a, b) @B{bool}}
+ Dyadic operator that yields whether the string @code{a} is greater
+ than, or equal to the string @code{b}.
+ @end deftypefn
+ 
+ @subsection Composition
+ 
+ @deftypefn Operator {} {+} {= (@B{string} a, b) @B{string}}
+ Dyadic operator that yields the concatenation of the two given
+ strings as a new string.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {+} {= (@B{string} a, @B{char} b) @B{string}}
+ Dyadic operator that yields the concatenation of the given string
+ @code{a} and a string whose contents are the character @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {*} (= (@B{int} a, @B{string} b) @B{string})
+ @deftypefnx Operator {} {*} (= (@B{string} b, @B{int} a) @B{string})
+ Dyadic operator that yields the string composed of @code{a}
+ concatenated copies of @code{b}.  If @code{a} is less than zero then
+ it is interpreted to be zero.
+ @end deftypefn
+ 
+ @subsection Composition combined with assignation
+ 
+ @deftypefn Operator {} {@B{plusab}} {= (@B{ref} @B{string} a, @B{string} b) @B{ref} @B{string}}
+ @deftypefnx Operator {} {+:=} {= (@B{ref} @B{string} a, @B{string} b) @B{ref} @B{string}}
+ @dfn{Plus and become}.  Dyadic operator that calculates @code{a + b},
+ assigns the result of the operation to the name @code{a} and then
+ yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{plusto}} {= (@B{string} b, @B{ref} @B{string} a) @B{ref} @B{string}}
+ @deftypefnx Operator {} {+=:} {= (@B{string} b, @B{ref} @B{string} b) @B{ref} @B{string}}
+ Dyadic operator that calculates @code{a + b}, assigns the result of
+ the operation to the name @code{a} and then yields @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{timesab}} {= (@B{ref} @B{string} a, @B{string} b) @B{ref} @B{string}}
+ @deftypefnx Operator {} {*:=} {= (@B{ref} @B{string} a, @B{string} b) @B{ref} @B{stringl}}
+ @dfn{Plus and become}.  Dyadic operator that calculates @code{a * b},
+ assigns the result of the operation to the name @code{a} and then
+ yields @code{a}.
+ @end deftypefn
+ 
+ @node Complex operators
+ @section Complex operators
+ 
+ @node Bits operators
+ @section Bits operators
+ 
+ @subsection Logical
+ 
+ @deftypefn Operator {} {@B{NOT}} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ @deftypefnx Operator {} {~} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ Monadic operator that yields the element-wise not logical operation in
+ the elements of the given bits operand.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{AND}} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ @deftypefnx Operator {} {&} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ Dyadic operator that yields the element-wise and logical operation in
+ the elements of the given bits operands.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{OR}} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ Dyadic operator that yields the element-wise ``or'' logical operation
+ in the elements of the given bits operands.
+ @end deftypefn
+ 
+ @subsection Shifting
+ 
+ @deftypefn Operator {} {@B{SHL}} {= (@B{l} @B{bits} a, @B{int} n) @B{l} @B{bits}}
+ @deftypefnx Operator {} {@B{UP}} {= (@B{l} @B{bits} a, @B{int} n) @B{l} @B{bits}}
+ Dyadic operator that yields the given bits operand shifted @code{ABS
+ n} positions to the left if @code{n >= 0} or @code{ABS n} positions to
+ the right if @code{n < 0}.  Extra elements introduced on the right or
+ left are initialized to @code{@B{false}}.  If @code{ABS n >
+ L_bits_width} then the resulting bits value has all bits set to
+ @code{false}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{SHR}} {= (@B{l} @B{bits} a, @B{int} n) @B{l} @B{bits}}
+ @deftypefnx Operator {} {@B{DOWN}} {= (@B{l} @B{bits} a, @B{int} n) @B{l} @B{bits}}
+ Dyadic operator that yields the given bits operand shifted @code{ABS
+ n} positions to the right if @code{n >= 0} or @code{ABS n} positions
+ to the left if @code{n < 0}.  Extra elements introduced on the right
+ or left are initialized to @code{@B{false}}.  If @code{ABS n >
+ L_bits_width} then the resulting bits value has all bits set to
+ @code{false}.
+ @end deftypefn
+ 
+ @subsection Relational
+ 
+ @deftypefn Operator {} {@B{eq}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {=} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are equal.  Two
+ bits are equal if they contain the same sequence of booleans.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ne}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {/=} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether its operands are not equal.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{lt}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {<} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether the bits @code{a} is less than
+ the bits @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{le}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {<=} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether the bits @code{a} is less than,
+ or equal to bits @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{gt}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {>} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether the bits @code{a} is greater than
+ the bits @code{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{ge}} {= (@B{l} @B{bits} a, b) @B{bool}}
+ @deftypefnx Operator {} {>=} {= (@B{l} @B{bits} a, b) @B{bool}}
+ Dyadic operator that yields whether the bits @code{a} is greater
+ than, or equal to the bits @code{b}.
+ @end deftypefn
+ 
+ @subsection Conversions
+ 
+ @deftypefn Operator {} {@B{abs}} {= (@B{l} @B{bits} a) @B{l} @B{int}}
+ Monadic operator that yields the integral value whose constituent bits
+ correspond to the booleans stored in @code{a}. @xref{@code{@B{bin}}
+ and @code{@B{abs}} of negative integral values}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{bin}} {= (@B{l} @B{int} a) @B{l} @B{bits}}
+ Monadic operator that yields the bits value whose boolean elements map
+ the bits in the given integral operand. @xref{@code{@B{bin}} and
+ @code{@B{abs}} of negative integral values}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{shorten}} {= (@B{long} @B{bits} a) @B{bits}}
+ @deftypefnx Operator {} {@B{shorten}} {= (@B{long} @B{long} @B{bits} a) @B{long} @B{bits}}
+ Monadic operator that yields the bits value that can be lengthened to
+ the value of @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{leng}} {= (@B{bits} a) @B{long} @B{bits}}
+ @deftypefnx Operator {} {@B{leng}} {= (@B{long} @B{bits} a) @B{long} @B{long} @B{bits}}
+ Monadic operator that yields the bits value lengthened from the value
+ of @code{a}.  The lengthened value features @code{@B{false}} in the
+ extra left positions added to match the lengthened size.
+ @end deftypefn
+ 
+ @node Bytes operators
+ @section Bytes operators
+ 
+ @node Semaphore operators
+ @section Semaphore operators
+ 
+ @node Math procedures
+ @section Math procedures
+ 
+ @subsection Arithmetic
+ 
+ @deftypefn Procedure {} {@B{sqrt}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the square root of the given real argument.
+ @end deftypefn
+ 
+ @subsection Logarithms
+ 
+ @deftypefn Procedure {} {@B{ln}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the base @code{e} logarithm of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{exp}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the exponential function of the given real
+ argument.  This is the inverse of @code{@B{ln}}.
+ @end deftypefn
+ 
+ @subsection Trigonometric
+ 
+ @deftypefn Procedure {} {@B{sin}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the sin trigonometric function of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{arcsin}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the arc-sin trigonometric function of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{cos}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the cos trigonometric function of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{arccos}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the arc-cos trigonometric function of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{tan}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the tan trigonometric function of the given real
+ argument.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {@B{arctan}} {= (@B{l} @B{real} a) @B{l} @B{real}}
+ Procedure that yields the arc-tan trigonometric function of the given
+ real argument.
+ @end deftypefn
+ 
+ @node Extended prelude
+ @chapter Extended prelude
+ @cindex prelude, extended
+ 
+ This chapter documents the GNU extensions to the standard prelude.
+ The facilities documented below are available to Algol 68 programs
+ only if the @option{gnu68} language dialect is selected, which is the
+ default.
+ 
+ The extended prelude is available to Algol 68 programs without needing
+ to import any module, provided they are compiled as @code{gnu68} code,
+ which is the default.
+ 
+ @menu
+ * Extended priorities::                Priorities of extended operators.
+ * Extended environment enquiries::     Information about the implementation.
+ * Extended rows operators::            Rows and associated operations.
+ * Extended boolean operators::         Operations on boolean operands.
+ * Extended bits operators::            Bits and associated operations.
+ * Extended math procedures::           Mathematical constants and functions.
+ @end menu
+ 
+ @node Extended priorities
+ @section Extended priorities
+ 
+ @table @code
+ @item 3
+ @itemize @bullet
+ @item @code{@B{xor}}
+ @end itemize
+ 
+ @item 8
+ @itemize @bullet
+ @item @code{@B{elems}}
+ @end itemize
+ @end table
+ 
+ @node Extended environment enquiries
+ @section Extended environment enquiries
+ 
+ An @dfn{environment enquiry} is a constant, whose value may be useful
+ to the programmer, that reflects some characteristic of the particular
+ implementation.  The values of these enquiries are also determined by
+ the architecture and operating system targeted by the compiler.
+ 
+ @deftypevr Constant {@B{l} @B{int}} {L min int}
+ The most negative integral value.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L min real}
+ The most negative real value.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L infinity}
+ Positive infinity expressed in a real value.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{l} @B{real}} {L minus infinity}
+ Negative infinity expressed in a real value.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} {replacement char}
+ A character that is unknown, unrecognizable or unrepresentable in
+ Unicode.
+ @end deftypevr
+ 
+ @deftypevr Constant @B{char} {eof char}
+ @B{char} value that doesn't denote an actual char, but an end-of-file
+ situation.
+ @end deftypevr
+ 
+ @node Extended rows operators
+ @section Extended rows operators
+ 
+ The following operators work on any row mode, denoted below using the
+ pseudo-mode @code{@B{rows}}.
+ 
+ @deftypefn Operator {} {@B{elems}} {= (@B{rows} a) @B{int}}
+ Monadic operator that yields the number of elements implied by the
+ first bound pair of the descriptor of the value of @code{a}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{elems}} {= (@B{int} n, @B{rows} a) @B{int}}
+ Dyadic operator that yields the number of elements implied by the n-th
+ bound pair of the descriptor of the value of @code{a}.
+ @end deftypefn
+ 
+ @node Extended boolean operators
+ @section Extended boolean operators
+ 
+ @deftypefn Operator {} {@B{xor}} {= (@B{bool} a, b) @B{bool}}
+ Dyadic operator that yields the exclusive-or operation of the given
+ boolean arguments.
+ @end deftypefn
+ 
+ @node Extended bits operators
+ @section Extended bits operators
+ 
+ @deftypefn Operator {} {@B{xor}} {= (@B{l} @B{bits} a, b) @B{l} @B{bits}}
+ Dyadic operator that yields the bit exclusive-or operation of the
+ given bits arguments.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{set}} {= (@B{l} @B{bits} b, @B{int} n) @B{l} @B{bits}}
+ Dyadic operator that sets the @code{n}th least significant bit in
+ @code{@B{b}}, where @code{n} is zero based.  If @code{n} is not in the
+ range @code{[0,L_bits_width)} then the operator yields @B{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{clear}} {= (@B{l} @B{bits} b, @B{int} n) @B{l} @B{bits}}
+ Dyadic operator that clears the @code{n}th least significant bit in
+ @code{@B{b}}, where @code{n} is zero based.  If @code{n} is not in the
+ range @code{[0,L_bits_width)} then the operator yields @B{b}.
+ @end deftypefn
+ 
+ @deftypefn Operator {} {@B{test}} {= (@B{l} @B{bits} b, @B{int} n) @B{bool}}
+ Dyadic operator that tests whether the @code{n}th least significant
+ bit in @code{@B{b}} is set, where @code{n} is zero based. If @code{n}
+ is not in the range @code{0,L_bits_width)} then the operator yields
+ @B{false}.
+ @end deftypefn
+ 
+ @node Extended math procedures
+ @section Extended math procedures
+ 
+ @subsection Logarithms
+ 
+ @deftypefn Procedure {} {@B{log}} {= (@B{l} @B{real} a, b) @B{l} @B{real}}
+ Procedure that calculates the base ten logarithm of the given arguments.
+ @end deftypefn
+ 
+ @node POSIX prelude
+ @chapter POSIX prelude
+ 
+ The POSIX prelude provides facilities to perform simple transput (I/O)
+ based on POSIX file descriptors, accessing the file system,
+ command-line arguments, environment variables, etc.
+ 
+ This prelude is available to Algol 68 programs without needing to
+ import any module, provided they are compiled as @code{gnu68} code,
+ which is the default.
+ 
+ @menu
+ * POSIX process::           Process exit status.
+ * POSIX command line::      Parsing command-line arguments.
+ * POSIX environment::       Environment variables.
+ * POSIX errors::            Error handling and error descriptions.
+ * POSIX files::             Creating, opening and closing files.
+ * POSIX sockets::           Communication endpoints.
+ * POSIX string transput::   Reading and writing characters and strings.
+ @end menu
+ 
+ @node POSIX process
+ @section POSIX process
+ 
+ The Algol 68 program reports an exit status to the operating system once
+ it stops running.  The exit status reported by default is zero, which
+ corresponds to success.
+ 
+ @deftypefn Procedure {} {posix exit} {= (@B{int} status)}
+ Procedure that sets the exit status to report to the operating system
+ and immediately stops executing the program.  The default exit status is
+ 0 which, by convention, is interpreted by POSIX systems as success.  A
+ value different to zero is interpreted as an error status.
+ @end deftypefn
+ 
+ @node POSIX command line
+ @section POSIX command line
+ 
+ Algol 68 programs can access the command-line arguments passed to them
+ by using the following procedures.
+ 
+ @deftypefn Procedure {} {argc} {= @B{int}}
+ Procedure that yields the number of arguments passed in the command
+ line, including the name of the program.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {argv} {= (@B{int} n) @B{string}}
+ Procedure that yields the @code{n}th argument passed in the command
+ line.  The first argument is always the name used to invoke the
+ program.  If @code{n} is out of range then this procedure returns the
+ empty string.
+ @end deftypefn
+ 
+ @node POSIX environment
+ @section POSIX environment
+ 
+ @deftypefn Procedure {} {getenv} {= (@B{string} varname) @B{string}}
+ Procedure that yields the value of the environment variable
+ @code{varname} as a string.  If the specified environmental variable
+ is not defined the this procedure returns an empty string.
+ @end deftypefn
+ 
+ @node POSIX errors
+ @section POSIX errors
+ 
+ When a call to a procedure in this prelude results in an error, the
+ called procedure signals the error in some particular way and also
+ sets a global @code{errno} to a code describing the error.  For
+ example, trying to opening a file that doesn't exist will result in
+ @code{fopen} returning -1, which signals an error.  The caller can
+ then inspect the global @code{errno} to see what particular error
+ prevented the operation to be completed: in this case, @code{errno}
+ will contain the error code corresponding to ``file doesn't exist''.
+ 
+ @deftypefn Procedure {} {errno} {= @B{int}}
+ This procedure yields the current value of the global @code{errno}.
+ The yielded value reflects the error status of the last executed POSIX
+ prelude operation.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {strerror} {= (@B{int} ecode) @B{string}}
+ This procedure gets an error code and yields a string containing an
+ explanatory short description of the error.  It is typical to pass the
+ output of @code{errno} to this procedure.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {perror} {= (@B{string} msg) @B{void}}
+ This procedure prints the given string @code{msg} in the standard
+ error output, followed by a colon character, a space character and
+ finally the string error of the current value of @code{errno}.
+ @end deftypefn
+ 
+ @node POSIX files
+ @section POSIX files
+ 
+ File descriptors are @code{@B{int}} values that identify open files
+ that can be accessed by the program.  The @code{fopen} procedure
+ allocates file descriptors as it opens files, and the descriptor is
+ used in subsequent transput calls to perform operations on the files.
+ 
+ @subsection Standard file descriptors
+ 
+ There are three descriptors, however, which are automatically opened
+ when the program starts executing and automatically closed when the
+ program finishes.  These are:
+ 
+ @deftypevr Constant {@B{int}} {stdin}
+ File descriptor associated with the standard input.  Its value is @code{0}.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{int}} {stdout}
+ File descriptor associated with the standard output.  Its value is @code{1}.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{int}} {stderr}
+ File descriptor associated with the standard error.  Its value is @code{2}.
+ @end deftypevr
+ 
+ @subsection Opening and closing files
+ 
+ @deftypefn Procedure {} {fopen} {= (@B{string} pathname, @B{bits} flags) @B{int}}
+ Open the file specified by @code{pathname}.  The argument @code{flags}
+ is a combination of @code{file o} flags as defined below.  If the
+ specified file is successfully opened while satisfying the constraints
+ implied by @code{flags} then this procedure yields a file descriptor
+ that is used in subsequent I/O calls to refer to the open
+ file. Otherwise, this procedure yields -1.  The particular error can
+ be inspected by calling the @code{errno} procedure.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {fclose} {= (@B{int} fd) @B{int}}
+ Close the given file descriptor, which no longer refers to any file.
+ This procedure yields zero on success, and -1 on error.  In the later
+ case, the program can look at the particular error by calling the
+ @code{errno} procedure.
+ @end deftypefn
+ 
+ @subsection Creating files
+ 
+ @deftypefn Procedure {} {fcreate} {= (@B{string} pathname, @B{bits} mode) @B{int}}
+ Create a file with name @code{pathname}.  The argument @code{mode} is
+ a @code{@B{bits}} value containing a bit pattern that determines the
+ permissions on the created file.  The bit pattern has the form
+ @code{8rUGO}, where @code{U} reflects the permissions of the user who
+ owns the file, @code{U} reflects the permissions of the users
+ pertaining to the file's group, and @code{O} reflects the permissions
+ of all other users.  The permission bits are 1 for execute, 2 for
+ write and 4 for read.  If the file is successfully created then this
+ procedure yields a file descriptor that is used in subsequent I/O
+ calls to refer to the newly created file.  Otherwise, this procedure
+ yields -1.  The particular error can be inspected by calling the
+ @code{errno} procedure.
+ @end deftypefn
+ 
+ @subsection Flags for @code{fopen}
+ 
+ The following flags can be combined using bit-wise operators.  Note
+ that in POSIX systems the effective mode of the created file is the
+ mode specified by the programmer masked with the process's
+ @dfn{umask}.
+ 
+ @deftypevr Constant {@B{bits}} {file o default}
+ Flag for @code{fopen} indicating that the file shall be opened with
+ whatever capabilities allowed by its permissions.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{bits}} {file o rdwr}
+ Flag for @code{fopen} indicating that the file shall be opened for
+ both reading and writing.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{bits}} {file o rdonly}
+ Flag for @code{fopen} indicating that the file shall be opened for
+ reading only.  This flag is not compatible with @code{file o rdwr} nor
+ with @code{file o wronly}.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{bits}} {file o wronly}
+ Flag for @code{fopen} indicating that the file shall be opened for
+ write only.  This flag is not compatible with @code{file o rdwr} nor
+ with @code{file o rdonly}.
+ @end deftypevr
+ 
+ @deftypevr Constant {@B{bits}} {file o trunc}
+ Flag for @code{fopen} indicating that the opened file shall be
+ truncated upon opening it.  The file must allow writing for this flag
+ to take effect.  The effect of combining @code{file o trunc} and
+ @code{file o rdonly} is undefined and varies among implementations.
+ @end deftypevr
+ 
+ @subsection Getting file properties
+ 
+ @deftypefn Procedure {} {fsize} {= (@B{int} fd) @B{long} @B{long} @B{int}}
+ Return the size in bytes of the file characterized by the file
+ descriptor @code{fd}.  If the system entity characterized by the given
+ file descriptor doesn't have a size, if the size of the file cannot be
+ stored in a @code{@B{long} @B{long} @B{int}}, or if there is any other
+ error condition, this procedure yields -1 and @code{errno} is set
+ appropriately.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {lseek} {= (@B{int} fd, @B{long long int} offset, @B{int} whence) @B{long long int}}
+ Set the file offset of the file characterized by the file descriptor @code{fd}
+ depending on the values of @code{offset} and @code{whence}.  On success, the
+ resulting offset, as measured in bytes from the beginning of the file, is
+ returned. Otherwise, -1 is returned, @code{errno} is set to indicate the error,
+ and the file offset remains unchanged.  The effects of @code{offset} and
+ @code{whence} are:
+ @itemize
+ @item
+ If @code{whence} is @code{seek set}, the file offset is set to @code{offset}
+ bytes.
+ @item
+ If @code{whence} is @code{seek cur}, the file offset is set to its current
+ location plus @code{offset}.
+ @item
+ If @code{whence} is @code{seek end}, the file offset is set to the size of the
+ file plus @code{offset}.
+ @end itemize
+ @end deftypefn
+ 
+ @node POSIX sockets
+ @section POSIX sockets
+ 
+ A program can communicate with other computers, or with other
+ processes running in the same computer, via sockets.  The sockets are
+ identified by file descriptors.
+ 
+ @deftypefn Procedure {} {fconnect} {= (@B{string} host, @B{int} port) @B{int}}
+ This procedure creates a stream socket and connects it to the given
+ @code{host} using port @code{port}.  The established communication is
+ full-duplex, and allows sending and receiving data using transput
+ until it gets closed.  On success this procedure yields a file
+ descriptor.  On error this procedure yields -1 and @code{errno} is set
+ appropriately.
+ @end deftypefn
+ 
+ @node POSIX string transput
+ @section POSIX string transput
+ 
+ The following procedures read or write characters and strings from and
+ to open files.  The external encoding of the files is assumed to be
+ UTF-8.  Since Algol 68 @code{@B{char}}s are UCS-4, this means that
+ reading or writing a character may involve reading or writing more
+ than one byte, depending on the particular Unicode code points
+ involved.
+ 
+ @subsection Output of strings and chars
+ 
+ @deftypefn Procedure {} {putchar} {= (@B{char} c) @B{char}}
+ Write the given character to the standard output.  This procedure
+ yields @code{c} in case the character got successfully written, or
+ @code{eof char} otherwise.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {puts} {= (@B{string} str) @B{void}}
+ Write the given string to the standard output.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {fputc} {= (@B{int} fd, @B{char} c) @B{int}}
+ Write given character @code{c} to the file with descriptor @code{fd}.
+ This procedure yields @code{c} on success, or @code{eof char} on
+ error.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {fputs} {= (@B{int} fd, @B{string} str) @B{int}}
+ Write the given string @code{str} to the file with descriptor
+ @code{fd}.  This procedure yields the number of bytes written on
+ success, or 0 on error.
+ @end deftypefn
+ 
+ @subsection Input of strings and chars
+ 
+ @deftypefn Procedure {} {getchar} {= @B{char}}
+ Read a character from the standard input.  This procedure yields the
+ read character in case the character got successfully read, or
+ @code{eof char} otherwise.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {gets} {= (@B{int} n) @B{ref} @B{string}}
+ Read a string composed of @code{n} characters from the standard input
+ and yield a reference to it.  If @code{n} is bigger than zero then
+ characters get read until either @code{n} characters have been read or
+ the end of line is reached.  If @code{n} is zero or negative then
+ characters get read until either a new line character is read or the
+ end of line is reached.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {fgetc} {= (@B{int} fd) @B{int}}
+ Read a character from the file with descriptor @code{fd}.  This
+ procedure yields the read character in case a valid Unicode character
+ got successfully read.  If an unrecognizable or unknown character is
+ found then this procedure yields @code{replacement char}.  In case of
+ end of file this procedure yields @code{eof char}.
+ @end deftypefn
+ 
+ @deftypefn Procedure {} {fgets} {= (@B{int} fd, @B{int} n) @B{ref} @B{string}}
+ Read a string from the file with descriptor @code{fd} and yield a
+ reference to it.  If @code{n} is bigger than zero then characters get
+ read until either @code{n} characters have been read or the end of
+ line is reached.  If @code{n} is zero or negative then characters get
+ read until either a new line character is read or the end of line is
+ reached.
+ @end deftypefn
+ 
+ @node Language extensions
+ @chapter Language extensions
+ 
+ This chapter documents the GNU extensions implemented by this compiler
+ on top of the Algol 68 programming language.  These extensions
+ collectively conform a strict @dfn{superlanguage} of Algol 68, and are
+ enabled by default.  To disable them the user can select the strict
+ Algol 68 standard by passing the option @option{-std=algol68} when
+ invoking the compiler.
+ 
+ @menu
+ * @code{@B{bin}} and @code{@B{abs}} of negative integral values::
+ * Bold taggles::              Using underscores in mode and operator indications.
+ * Brief selection::           Shorter form of the @code{of-symbol}.
+ @end menu
+ 
+ @node @code{@B{bin}} and @code{@B{abs}} of negative integral values
+ @section @code{@B{bin}} and @code{@B{abs}} of negative integral values
+ 
+ The @code{@B{bin}} operator gets an integral value and yields a
+ @code{@B{bits}} value that reflects the internal bits of the integral
+ value.  The semantics of this operator, as defined in the Algol 68
+ standard prelude, are:
+ 
+ @example
+ @B{op} @B{bin} = (L @B{int} a) L @B{bits}:
+   @B{if} a >= L 0
+   @B{then} L @B{int} b := a; L @B{bits};
+        @B{for} i @B{from} L bits width @B{by} -1 @B{to} 1
+        @B{do} (L F @B{of} c)[i] := @B{odd} b; b := b % L 2 @B{od};
+        c
+   @B{fi};
+ @end example
+ 
+ The @code{@B{abs}} operator performs the inverse operation of
+ @code{@B{bits}}.  Given a @code{L @B{bits}} value, it yields the
+ @code{L @B{int}} value whose bits representation is the bits value.
+ The semantics of this operator, as defined in the Algol 68 prelude,
+ are:
+ 
+ @example
+ @B{op} @B{abs} = (L @B{bits} a) L @B{int}:
+ @B{begin} L @B{int} c := L 0;
+       @B{for} i @B{to} L bits width
+       @B{do} c := L 2 * c + K @B{abs} (L F @B{of} a)[i] @B{od};
+       c
+ @B{end}
+ @end example
+ 
+ @noindent
+ Note how the @code{@B{bin}} of a negative integral value is not
+ defined: the implicit else-part of the conditional yields
+ @code{@B{skip}}, which is defined as any bits value in that context.
+ Note also how @code{@B{abs}} doesn't make any provision to check
+ whether the resulting value is positive: it assumes it is so.
+ 
+ The GNU Algol 68 compiler, when working in strict Algol 68 mode
+ (@option{-std=algol68}), makes @code{@B{bin}} to always yield @code{L
+ @B{bits} (@B{skip})} when given a negative value, as mandated by the
+ report.  But the skip value is always the bits representation of zero,
+ @i{i.e.} 2r0.  Strict Algol 68 programs, however, must not rely on
+ this.
+ 
+ When GNU extensions are enabled (@option{-std=gnu68}) the
+ @code{@B{bin}} of a negative value yields the two's complement bit
+ pattern of the value rather than zero.  Therefore, @code{@B{bin} -
+ @B{short} @B{short} 2} yields @code{2r11111110}.  And @code{@B{abs}
+ @B{short} @B{short} 2r11111110} yields -2.
+ 
+ @node Bold taggles
+ @section Bold taggles
+ 
+ This compiler supports the stropping regimes known as UPPER and
+ SUPPER.  In both regimes bold words are written by writing their
+ constituent bold letters and digits, in order.  In UPPER regime all
+ the letters of a bold word are to be written using upper-case.  In
+ SUPPER regime, only the first bold letter is required to be written
+ using upper-case, and this only when the bold word is not a reserved
+ word.
+ 
+ When a bold word comprises several natural words, it may be a little
+ difficult to distinguish them at first sight.  Consider for example
+ the following code, written fist in UPPER stropping:
+ 
+ @example
+ MODE TREENODE = STRUCT (TREENODEPAYLOAD data, REF TREENODE next),
+      TREENODEPAYLOAD = STRUCT (INT code, REAL average, mean);
+ @end example
+ 
+ @noindent
+ Then written in SUPPER stropping:
+ 
+ @example
+ mode TreeNode = struct (TreeNodePayload data, REF TreeNode next),
+      TreeNodePayload = struct (int code, real average, mean);
+ @end example
+ 
+ Particularly in UPPER stropping, it may be difficult to distinguish
+ the constituent natural words at first sight.
+ 
+ In order to improve this, this compiler implements a GNU extension
+ called @dfn{bold taggles} that allows to use underscore characters
+ (@code{_}) within mode and operator indications as a visual aid to
+ improve readability.  When this extension is enabled, mode indications
+ and operator indications consist in a sequence of the so-called
+ @dfn{bold taggles}, which are themselves sequences of one or more bold
+ letters or digits optionally terminated by an underscore character.
+ 
+ With bold taggles enabled the program above could have been written
+ using UPPER stropping as:
+ 
+ @example
+ MODE TREE_NODE = STRUCT (TREE_NODE_PAYLOAD data, REF TREE_NODE next),
+      TREE_NODE_PAYLOAD = STRUCT (INT code, REAL average, mean);
+ @end example
+ 
+ @noindent
+ And using SUPPER stropping as:
+ 
+ @example
+ mode Tree_Node = struct (Tree_Node_Payload data, ref Tree_Node next),
+      Tree_Node_Payload = struct (int code, real average, mean);
+ @end example
+ 
+ @noindent
+ Which is perhaps more readable for most people.  Note that the
+ underscore characters are not really part of the mode or operator
+ indication.  Both @code{TREE_NODE} and @code{TREENODE} denote the same
+ mode indication.  Note also that, following the definition, constructs
+ like @code{Foo__bar} and @code{_Baz} are not valid indications.
+ 
+ Bold taggles are available when the gnu68 dialect of the language is
+ selected.  @xref{Dialect options}.
+ 
+ @node Brief selection
+ @section Brief selection
+ 
+ It was early recognized that a shorter alternative representation the
+ of-symbol was very much needed, considering the fact the bold version
+ @code{@B{of}} is at least four characters long.  This makes certain
+ phrases long and also slightly laborious to read, like in:
+ 
+ @example
+ @B{pub} @B{op} + = (@B{Pos} a,b) @B{Pos}: (c @B{of} a + c @B{of} b, r @B{of} a + r @B{of} b),
+        - = (@B{Pos} a,b) @B{Pos}: (c @B{of} a - c @B{of} b, r @B{of} a - r @B{of} b);
+ @end example
+ 
+ This compiler allows using a quote character @code{'} instead of
+ @code{of} in selections of structs and multiples.  Using this brief
+ style the example above now can be written as:
+ 
+ @example
+ @B{pub} @B{op} + = (@B{Pos} a,b) @B{Pos}: (c'a + c'b, r'a + r'b),
+        - = (@B{Pos} a,b) @B{Pos}: (c'a - c'b, r'a - r'b);
+ @end example
+ 
+ @include gpl_v3.texi
+ @include fdl.texi
+ 
+ @node Option Index
+ @unnumbered Option Index
+ 
+ @command{ga68}'s command line options are indexed here without any initial
+ @samp{-} or @samp{--}.  Where an option has both positive and negative forms
+ (such as @option{-f@var{option}} and @option{-fno-@var{option}}), relevant
+ entries in the manual are indexed under the most appropriate form; it may
+ sometimes be useful to look up both forms.
+ 
+ @printindex op
+ 
+ @node General Index
+ @unnumbered Index
+ 
+ @printindex cp
+ 
+ @bye
diff -Nrcpad gcc-15.2.0/gcc/algol68/ga68.vw gcc-16.1.0-RC-20260423/gcc/algol68/ga68.vw
*** gcc-15.2.0/gcc/algol68/ga68.vw	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/ga68.vw	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1853 ----
+ { ga68.vw - The GNU Algol 68 strict language -*- vw -*-
+ 
+   Copyright (C) 2025 Jose E. Marchesi <jemarch@gnu.org>
+ 
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+ 
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.  }
+ 
+ { This file contains an annotated description of the syntax of the GNU
+   Algol 68 strict language.  GNU Algol 68 aims to be a super-language
+   of Algol 68.
+ 
+   Extension to the strict Revised Report incorporated into GNU Algol
+   68 are:
+ 
+   [US] This is the GNU68-2025-001-unsafe GNU extension.  It adds an
+        unsafe clause that marks a controlled clause as containing
+        unsafe constructs which are known by the programmer, and makes
+        the compiler to avoid certain diagnostics.  See the GNU Algol
+        68 Compiler manual for more information.
+ 
+   [SC] This is the GNU68-2025-003-andth-orel GNU extension.  It adds
+        two units that act as pseudo-operators providing logical AND
+        and OR functions with short-circuited elaboration.  See the GNU
+        Algol 68 Compiler manual for more information.
+ 
+   [MR] A modules and separated compilation system based on the modules
+        system recomended by IFIP Working Group 2.1 Standing
+        Subcommittee on Algol 68 Support, described in:
+ 
+          A Modules and Separate Compilation Facility for Algol 68 by
+          Lindsey and Boom.
+ 
+   [NC] This is the GNU68-2025-005-nestable-comments GNU extension.  It
+        adds support for nestable block comments.
+ 
+   [BF] This is the GNU68-2026-001-brief-selection GNU extension.  It
+        adds support for a brief form of the selection construct.
+ 
+   The metaproduction rules, hyper-rules and hyper-alternatives
+   introduced by each extension are clearly marked in the sections
+   below.  You can easily search for them using the extensions tags in
+   the list above.  For example, to look for the extensions introduced
+   by the modules and separated compilation system, search for [MR].
+ 
+   The few deviations to the RR Algol 68 are clearly marked as well in
+   this specification.
+ 
+   A complete description of the semantics of the Algol 68 subset of
+   the described language and the extensions is not included in this
+   file.  The reader is referred to the Revised Report and other
+   documentation corresponding to the extensions, like the GNU Algol 68
+   compiler manual.
+ 
+   The sectioning and the enumeration of metaproduction rules and of
+   hyper-rules, including cross-references, are the same than in the
+   Report.  The annotations and pragmatics added between curly brackets
+   explain the meaning of the rules and how they describe the syntax of
+   the language.  Note that thanks to the expressive power of VW
+   grammars the syntax expressed by this description covers much more
+   than what is usually expressed by context-free grammars in the
+   descriptions of other languages that typically use some variant of
+   the BNF notation.
+ 
+   Sample code in examples and pragmatics is expressed using the UPPER
+   stropping regime.
+ 
+   This file is better browsed using the Emacs vw-mode, which provides
+   automatic indentation, font-lock, and other facilities like the
+   hiding of annotations an the following of cross-references.  See the
+   vw-mode manual for more information, including a primer on VW
+   grammars and the formal description used in both the original Report
+   and this file.  }
+ 
+ 1 Language and metalanguage
+ 
+ 1.2 General metaproduction rules
+ 
+ 1.2.1 Metaproduction rules of modes
+ 
+ A) MODE :: PLAIN ; STOWED ; REF to MODE ; PROCEDURE ;
+            UNITED ; MU definition of MODE ; MU application.
+ B) PLAIN :: INTREAL ; boolean ; character.
+ C) INTREAL :: SIZETY integral ; SIZETY real.
+ D) SIZETY :: long LONGSETY ; short SHORTSETY ; EMPTY.
+ E) LONGSETY :: long LONGSETY ; EMPTY.
+ F) SHORTSETY :: short SHORTSETY ; EMPTY.
+ G) EMPTY :: .
+ H) STOWED :: structured with FIELDS mode ;
+              FLEXETY ROWS of MODE.
+ I) FIELDS :: FIELD ; FIELDS FIELD.
+ J) FIELD :: MODE field TAG{942A}.
+ K) FLEXETY :: flexible ; EMPTY.
+ L) ROWS :: row ; ROWS row.
+ M) REF :: reference ; transient reference.
+ N) PROCEDURE :: procedure PARAMETY yielding MOID.
+ O) PARAMETY :: with PARAMETERS ; EMPTY.
+ P) PARAMETERS :: PARAMETER ; PARAMETERS PARAMETER.
+ Q) PARAMETER :: MODE parameter.
+ R) MOID :: MODE ; void.
+ S) UNITED :: union of MOODS mode.
+ T) MOODS :: MOOD ; MOODS MOOD.
+ U) MOOD :: PLAIN ; STOWED ; reference to MODE ; PROCEDURE ; void.
+ V) MU :: muTALLY.
+ W) TALLY :: i ; TALLY i.
+ 
+ 1.2.2 Metaproduction rules associated with phrases and coercion
+ 
+ { Extensions:
+   [MR] access
+   [US] unsafe }
+ 
+ A) ENCLOSED :: closed ; collateral ; parallel ; CHOICE{34A} ;
+                loop ; access ; unsafe.
+ B) SOME :: SORT MOID NEST.
+ C) SORT :: strong ; firm ; meek ; weak ; soft.
+ 
+ { Modules are activated by means of access-clauses.  }
+ 
+ 1.2.3 Metaproduction rules associated with nests
+ 
+ { Extensions:
+   [MR] MODSETY, MOD, MODS, REVSETY, REVS, REV,
+        TAU, INKSETY, INKS, INK }
+ 
+ A) NEST :: LAYER ; NEST LAYER.
+ B) LAYER :: new DECSETY LABSETY INKSETY.
+ C) DECSETY :: DECS ; EMPTY.
+ D) DECS :: DEC ; DECS DEC.
+ E) DEC :: MODE TAG{942A} ; priority PRIO TAD{942F} ;
+           MOID TALLY TAB{942D} ; DUO TAD{942F}  MONO TAM{492K} ;
+           MOD.
+ F) PRIO :: i ; ii ; iii ;
+            iii i ; iii ii ; iii iii ;
+            iii iii i ; iii iii ii ; iii iii iii.
+ G) MONO :: procedure with PARAMETER yielding MOID.
+ H) DUO :: procedure with PARAMETER1 PARAMETER2 yielding MOID.
+ I) LABSETY :: LABS ; EMPTY.
+ J) LABS :: LAB ; LABS LAB.
+ K) LAB :: label TAG{942A}.
+ L) MODSETY :: MODS ; EMPTY.
+ M) MODS :: MOD ; MODS MOD.
+ N) MOD :: module REVS TAB.
+ O) REVSETY :: REVS ; EMPTY.
+ P) REVS :: REV ; REVS REV.
+ Q) REV :: TAU reveals DECSETY INKS.
+ R) TAU :: MU.
+ S) INKSETY :: INKS ; EMPTY.
+ T) INKS :: INK ; INKS INK.
+ U) INK :: invoked TAU.
+ 
+ { The primal environment is just 'new'. }
+ 
+ 1.3 General hyper-rules
+ 
+ 1.3.1 Syntax of general predicates
+ 
+ A) NOTION :: ALPHA ; NOTION ALPHA.
+ B) ALPHA :: a ; b ; c ; d ; e ; f ; g ; h ; i ; j;
+             k ; l ; m ; n ; o ; p ; q ; r ; s ; t;
+             u ; v ; w ; x ; y ; z.
+ C) NOTETY :: NOTION ; EMPTY.
+ D) THING :: NOTION ;
+             (NOTETY1) NOTETY2 ;
+             THING (NOTETY1) NOTETY2.
+ E) WHETHER :: where ; unless.
+ 
+ a) where true : EMPTY.
+ b) unless false : EMPTY.
+ c) where THING1 and THING2 : where THING1, where THING2.
+ d) where THING1 or THING2 : where THING1 ; where THING2.
+ e) unless THING1 and THING2 : unless THING1; unless THING2.
+ f) unless THING1 or THING2 : unless THING1, unless THING2.
+ g) WHETHER (NOTETY1) is (NOTETY2) :
+      WHETHER (NOTETY1) begins with (NOTETY2){h,i,j}
+              and (NOTETY2) begins with (NOTETY1){h,i,j}.
+ h) WHETHER (EMPTY) begins with (NOTION){g,j} :
+      WHETHER false{b,-}.
+ i) WHETHER (NOTETY1) begins with (EMPTY){g,j} :
+      WHETHER true{a,-}.
+ j) WHETHER (ALPHA1 NOTETY1) begins with
+            (ALPHA2 NOTETY2){g,j,m} :
+      WHETHER (ALPHA1) coincides with (ALPHA2) in
+              (abcdefghijklmnopqrstuvwxyz){k,l,-}
+              and (NOTETY1) begins with (NOTETY2){h,i,j}.
+ k) where (ALPHA) coincides with (ALPHA) in (NOTION){j} :
+      where true{a}.
+ l) unless (ALPHA1) coincides with (ALPHA2) in (NOTION){j} :
+      where (NOTION) contains (ALPHA1 NOTETY ALPHA2){m}
+            or (NOTION) contains (ALPHA2 NOTETY ALPHA1){m}.
+ m) WHETHER (ALPHA NOTETY) contains (NOTION){l,m} :
+      WHETHER (ALPHA NOTETY) begins with (NOTION){j}
+              or (NOTETY) contains (NOTION){m,n}.
+ n) WHETHER (EMPTY) contains (NOTION){m} : WHETHER false{b,-}.
+ 
+ 1.3.3 Syntax of general constructions
+ 
+ A) STYLE :: brief ; bold ; style TALLY.
+ 
+ a) NOTION option : NOTION ; EMPTY.
+ b) NOTION sequence{b} : NOTION ; NOTION, NOTION sequence{b}.
+ c) NOTION list{c} :
+      NOTION ; NOTION, and also{94f} token, NOTION list{c}.
+ d) NOTETY STYLE pack :
+      STYLE begin{94f,-} token, NOTETY, STYLE end{94f,-} token.
+ e) NOTION STYLE bracket :
+      STYLE sub{94f,-} token, NOTION, STYLE bus{94f,-} token.
+ f) THING1 or alternatively THING2 : THING1 ; THING2.
+ 
+ 2 The computer and the program
+ 
+ 2.2 The program
+ 
+ 2.2.1 Syntax
+ 
+ a) program : program token, strong integral new closed clause{31a}.
+ 
+ { The value yielded by the elaboration of the program is the exit
+   status returned by the process to the operating system upon
+   termination.  This is a slight deviation from the Report, which
+   instead specifies:
+ 
+   a) program : strong void new closed clause.
+ 
+   and mandates that the production tree of a particular program should
+   be akin to the production of the program in the strict language. }
+ 
+ 3 Clauses
+ 
+ 3.0.1 Syntax
+ 
+ { Extensions:
+   [MR] "NEST module text publishing REVS defining LAYER",
+        "NEST LAYER1 LAYER2 module series with DECSETY
+           without DECSETY",
+        "SOID NEST access clause"  }
+ 
+ a) *phrase : SOME unit{32d} ; NEST declaration of DECS{41a}.
+ b) *SORT MODE expression : SORT MODE NEST UNIT{5A}.
+ c) *statement : strong void NEST UNIT{5A}.
+ d) *MOID constant : MOID NEST DEFIED identifier with TAG{48a,b} ;
+                     MOID NEST denoter{80a}.
+ e) *MODE variable :
+      reference to MODE NEST DEFIED identifier with TAG{48a,b}.
+ f) *NEST range :
+      SOID NEST serial clause defining LAYER{32a} ;
+      SOID NEST chooser CHOICE STYLE clause{34b} ;
+      SOID NEST case part of choice using UNITED{34i} ;
+      NEST STYLE repeating part with DEC{35e} ;
+      NEST STYLE while do part{35f} ;
+      PROCEDURE NEST routine text{541a,b} ;
+      NEST module text publishing REVS defining LAYER{49c,-} ;
+      NEST LAYER1 LAYER2 module series
+           with DECSETY without DECSETY1{49d} ;
+      SOID NEST access clause{36a}.
+ 
+ { The rules b and c establish a precise definition of "expressions"
+   and "statements".  The former are units yielding values of a mode
+   other than VOID in any context.  The later are units in a strong
+   context with a-posteriori mode of VOID, that get voided. }
+ 
+ { The rules d and e establish a precise definition of "constants" and
+   "variables".  The former are either a denotation or an identifier of
+   some mode.  The second are identifiers of a "reference to" mode. }
+ 
+ { The rule f introduces a paranotion for all the constructs that
+   introduce new ranges.  }
+ 
+ 3.1 Closed clauses
+ 
+ 3.1.1 Syntax
+ 
+ A) SOID :: SORT MOID.
+ B) PACK :: STYLE pack.
+ 
+ a) SOID NEST closed clause{22a,5D,551a,A341h,A349a} :
+      SOID NEST serial clause defining LAYER{32a} PACK.
+ 
+ { Examples:
+   a) BEGIN x := 1; y := 2 END }
+ 
+ 3.2 Serial clauses
+ 
+ 3.2.1 Syntax
+ 
+ { Extensions:
+   [MR] "establishing clause"  }
+ 
+ a) SOID NEST serial clause defining new PROPSETY{31a,34f,1,35h} :
+      SOID NEST new PROPSETY series with PROPSETY{b}.
+ b) SOID NEST series with PROPSETY{a,b,35c} :
+      strong void NEST unit{d}, go on{94f} token,
+        SOID NEST series with PROPSETY{b} ;
+      where (PROPSETY) is (DECS DECSETY LABSETY),
+        NEST declaration of DECS{41a}, go on{94f} token,
+        SOID NEST series with DECSETY LABSETY{b} ;
+      where (PROPSETY) is (LAB LABSETY),
+        NEST label definition of LAB{c},
+        SOID NEST series with LABSETY{b} ;
+      where (PROPSETY) is (LAB LABSETY)
+            and SOID balances SOID1 and SOID2{3}, SOID1 NEST unit{d},
+        completion{94f} token, NEST label definition of LAB{c},
+        SOID2 NEST series with LABSETY{b} ;
+      where (PROPSETY) is (EMPTY),
+        SOID NEST unit{d}.
+ c) NEST label definition of label TAG{b} :
+      label NEST defining identifier with TAG{48a}, label{94f} token.
+ d) SOME unit{b,33b,g,34i,35d,46m,n,521c,532e,541a,b,543c,A34Ab,c,d} :
+      SOME UNIT{5A,-}.
+ e) WHETHER SORT MOID balances
+            SORT1 MOID1 an SORT2 MOID2{b,33b,34d,h} :
+      WHETHER SORT balances SORT1 and SORT2{f}
+              and MOID balances MOID1 and MOID2{g}.
+ f) WHETHER SORT balances SORT1 and SORT2{e,522a} :
+      where (SORT1) is (strong), WHETHER (SORT2) is (SORT) ;
+      where (SORT2) is (strong), WHETHER (SORT1) is (SORT).
+ g) WHETHER MOID balances MOID1 and MOID2{3} :
+      where (MOID1) is (MOID2), WHETHER (MOID) is (MOID1) ;
+      where (MOID1) is (transient MOID2),
+        WHETHER (MOID) is (MOID1) ;
+      where (MOID2) is (transient MOID1),
+        WHETHER (MOID) is (MOID2).
+ 
+ h) *SOID unitary clause : SOID NEST unit{d}.
+ i) *establishing clause :
+      SOID NEST serial clause defining LAYER{32a} ;
+      MODE NEST enquiry clause defining LAYER{34c}.
+ 
+ { The paranotion establishing-clause encompasses both module-texts and
+   revelations.  }
+ 
+ { Examples:
+   b) read (x1); REAL s:= 0;
+      sum: FOR i TO n DO (x1[i] > 0 | s :+= x1[i] | nonpos) OD EXIT
+      nonpos: print (s)
+ 
+      REAL s := 0;
+      sum: FOR i TO n DO (x1[i] > 0 | s :+= x1[i] | nonpos) OD EXIT
+      nonpos: print (s)
+ 
+      sum: FOR i TO n DO (x1[i] > 0 | s :+= x1[i] | nonpos) OD EXIT
+      nonpos: print (s)
+ 
+      FOR i TO n DO (x1[i] > 0 | s :+= x1[i] | nonpos) OD EXIT
+      nonpos: print (s)
+   c) sum:
+   d) print (s) }
+ 
+ 3.3 Collateral and parallel clauses
+ 
+ 3.3.1 Syntax
+ 
+ a) strong void NEST collateral clause{5D,551a} :
+      strong void NEST joined portrait{b} PACK.
+ b) SOID NEST joined portrait{a,b,c,d,34g} :
+      were SOID balances SOID1 and SOID2{32e},
+        SOID1 NEST unit{32d}, and also{94f} token,
+        SOID2 NEST unit{32d}
+              or alternatively SOID2 NEST joined portrait{b}.
+ c) strong void NEST parallel clause{5D,551a} :
+      parallel{94f} token, strong void NEST joined portrait{b} PACK.
+ d) strong ROWS of MODE NEST collateral clause{5D,551a} :
+      where (ROWS) is (row),
+        strong MODE NEST joined portrait{b} PACK ;
+      where (ROWS) is (row ROWS1),
+        strong ROWS1 of MODE NEST joined portrait{b} PACK ;
+      EMPTY PACK.
+ e) strong structured with
+           FIELDS FIELD mode NEST collateral clause{5D,551a} :
+      NEST FIELDS FIELD portrait{f} PACK.
+ f) NEST FIELDS FIELD portrait{3,f} :
+      NEST FIELDS portrait{f,g}, an also{94f} token,
+        NEST FIELD portrait{g}.
+ g) NEST MODE field TAG portrait{f} : strong MODE NEST unit{32d}.
+ 
+ h) *structure display :
+      strong structured with FIELDS FIELD mode NEST collateral clause{e}.
+ i) *row display :
+      strong ROWS of MODE NEST collateral clause{d}.
+ j) *display : strong STOWED NEST collateral clause{d,e}.
+ k) *vacuum : EMPTY PACK.
+ 
+ 3.4 Choice clauses
+ 
+ 3.4.1 Syntax
+ 
+ A) CHOICE :: choice using boolean ; CASE.
+ B) CASE :: choice using integral ; choice using UNITED.
+ 
+ a) SOID NEST1 CHOICE clause{5D,551a,A341h,A349a} :
+      CHOICE STYLE start{91a,-},
+        SOID NEST1 chooser CHOICE STYLE clause{b},
+        CHOICE STYLE finish{91e,-}.
+ b) SOID NEST1 chooser choice using MODE STYLE clause{a,l} :
+      MODE NEST1 enquiry clause defining LAYER2{c,-},
+        SOID NEST1 LAYER2 alternate choice using MODE STYLE clause{d}.
+ c) MODE NEST1 enquiry clause defining new DECSETY2{b,35g} :
+      meek MODE NEST1 new DESETY2 series with DECSETY2{32b}.
+ d) SOID NEST2 alternate CHOICE STYLE clause{b} :
+      SOID NEST2 in CHOICE STYLE clause{e} ;
+      where SOID balances SOID1 and SOID2{32e},
+        SOID1 NEST2 in CHOICE STYLE clause{3},
+        SOID2 NEST2 out CHOICE STYLE clause{l}.
+ e) SOID NEST2 in CHOICE STYLE clause{d} :
+      CHOICE STYLE in{91b,-}, SOID NEST2 in part of CHOICE{f,g,h}.
+ f) SOID NEST2 in part of choice using boolean{e} :
+      SOID NEST2 serial clause defining LAYER3{32a}.
+ g) SOID NEST2 in part of choice using integral{e} :
+      SOID NEST2 joined portrait{33b}.
+ h) SOID NEST2 in part of choice using UNITED{e,h} :
+      SOID NEST2 case part of choice using UNITED{i} ;
+      where SOID balances SOID1 and SOID2{32e},
+        SOID1 NEST2 case part of choice using UNITED{i},
+        and also{94f} token,
+        SOID2 NEST2 in part of choice using UNITED{h}.
+ i) SOID NEST2 case part of choice using UNITED{h} :
+      MOID NEST2 LAYER3 specification defining LAYER3{jk,-},
+        where MOID unites to UNITED{64b},
+        SOID NEST2 LAYER3 unit{32d}.
+ j) MODE NEST3 specification defining new MODE TAG3{i} :
+      NEST3 declarative defining new MODE TAG3{541e} brief pack,
+        colon{94f} token.
+ k) MOID NEST3 specification defining new EMPTY{i} :
+      formal MOID NEST3 declarer{46b} brief pack, colon{94f} token.
+ l) SOID NEST2 out CHOICE STYLE clause{d} :
+      CHOICE STYLE out{91d,-},
+        SOID NEST2 serial lause defining LAYER3{32a} ;
+      CHOICE STYLE again{91c,-},
+        SOID NEST2 chooser CHOICE2 STYLE clause{b},
+        where CHOICE2 may follow CHOICE{m}.
+ m) WHETHER choice using MODE2 may follow choice using MODE1{l} :
+      where (MODE1) is (MOOD), WHETHER (MODE2) is (MODE1) ;
+      where (MODE1) begins with (union of),
+        WHETHER (MODE2) begins with (union of).
+ 
+ n) *SOME choice clause : SOME CHOICE clause{a}.
+ o) *SOME conditional clause : SOME choice using boolean clause{a}.
+ p) *SOME case clause : SOME choice using integral clause{a}.
+ q) *SOME conformity clause : SOME choice using UNITED clause{a}.
+ 
+ 3.5 Loop clauses
+ 
+ 3.5.1 Syntax
+ 
+ A) FROBYT :: from ; by ; to.
+ 
+ a) strong void NEST1 loop clause{5D,551a} :
+      NEST1 STYLE for part defining new integral TAG2{b},
+        NEST1 STYLE intervals{c},
+        NEST1 STYLE repeating part with integral TAG2{e}.
+ b) NEST1 STYLE for part defining new integral TAG2{a} :
+      STYLE for{94g,-} token,
+        integral NEST1 new integral TAG2 defining identifier
+                 with TAG2{48a} ;
+      where (TAG2) is (letter aleph), EMPTY.
+ c) NEST1 STYLE intervals{a} :
+      NEST1 STYLE from part{d} option,
+        NEST1 STYLE by part{d} option,
+        NEST1 STYLE to part{d} option.
+ d) NEST1 STYLE FROBYT part{c} :
+      STYLE FROBYT{94g,-} token, meek integral NEST1 unit{32d}.
+ e) NEST1 STYLE repeating part with DEC2{a} :
+      NEST1 new DEC2 STYLE while do part{f} ;
+      NEST1 new DEC2 STYLE do part{h}.
+ f) NEST2 STYLE while do part{e} :
+      NEST2 STYLE while part defining LAYER3{g},
+        NEST2 LAYER3 STYLE do part{h}.
+ g) NEST2 STYLE while part defining LAYER3{f} :
+      STYLE while{94g,-} token,
+        boolean NEST2 enquiry clause defining LAYER3{34c,-}.
+ h) NEST3 STYLE do part{3,f} :
+      STYLE do{94g,-} token,
+        strong void NEST3 serial clause defining LAYER4{32a},
+        STYLE od{94g,-} token.
+ 
+ 3.6 Access clauses
+ 
+ { Extensions:
+   [MR] GMR }
+ 
+ { Access clauses contain a controlled-clause, which is an
+   enclosed-clause. }
+ 
+ 3.6.1 Syntax
+ 
+ a) SOID NEST access clause{5D,551a,A341h,A349a} :
+      NEST revelation publishing EMPTY defining LAYER{b},
+        SOID NEST LAYER ENCLOSED clause{a,31a,33a,c,d,e,34a,35a,-}.
+ b) NEST revelation publishing REVSETY
+         defining new DECSETY INKSETY{a,49c} :
+      access{94d} token,
+        NEST joined module call publishing REVSETY revealing REVS{c},
+        where DECSETY INKS revealed by REVS{e,f}
+              and NEST filters INKSETY out of INKS{h}.
+ c) NEST joined module call publishing REVSETY revealing RES{b,c} :
+      NEST moule call publishing REVSETY revealing REVS{d,-} ;
+      where (REVSETY) is (REVSETY1 REVSETY2)
+            an (REVS) is (REVS1 REVS2),
+        NEST module call publishing REVSETY1 revealing REVS1{d,-},
+        and also{94f} token,
+        NEST joined module call publishing REVSETY2 revealing REVS2{c}.
+ d) NEST module call publishing REVSETY revealing REVS{c} :
+      where (REVSETY) is (EMPTY),
+        module REVS NEST applied module indication with TAB{48b} ;
+      where (REVSETY) is (REVS),
+        public{94d} token,
+        module REVS NEST applied module indication with TAB{48b}.
+ e) WHETHER DECSETY1 DECSETY2 INKS1 INKSETY2 revealed by
+            TAU reveals DECSETY1 INKS1 REVSETY3
+            TAU reveals DECSETY1 INKS1 REVSETY4{b,e,f} :
+      WHETHER DECSETY DECSETY2 INKS1 INKSETY2 revealed by
+              TAU reveals DECSETY1 INKS1 REVSETY3 REVSETY4{e,f}.
+ f) WHETHER DECSETY1 DECSETY2 INKS1 INKSETY2 revealed by
+            TAU reveals DECSETY1 INKS1 REVSETY2{b,e,f} :
+      WHETHER DECSETY2 INKSETY2 revealed by REVSETY2
+              and DECSETY1 independent DECSETY2{71a,b,c}.
+ g) WHETHER EMPTY revealed by EmPTY{e,f} : WHETHER true.
+ h) WHETHER NEST filters INKSETY1 out of INKSETY INK{b} :
+      unless INK ientified in NEST{72a},
+        WHETHER (INKSETY) is (INKSETY2 INK)
+                and NEST INK filers INKSETY2 out of INKSETY{h,i} ;
+      where INK identified in NEST{72a},
+        WHETHER NEST filters INKSETY1 out of INKSETY{h,i}.
+ i) WHETHER NEST filters EMPTY out of EMPTY{h} : WHETHER true.
+ 
+ { Examples:
+     a) ACCESS A, B (gets (f, a); puts (a))
+     b) ACCESS A, B
+     c) A, B
+     d) A
+        PUB B  }
+ 
+ { In rule b, the 'invoke TAU's enveloped by 'INKS' represent those
+   modules which might need to be invoked at any module-call whose
+   applied-module-indication identified a particular
+   defining-module-indication, whereas those enveloped by 'INKSETY'
+   represent only those which need invocation in the particular
+   context, the remainder having already being elaborated, as can be
+   determined statically from the 'NEST'.  The presence of 'INKSETY' in
+   the nest of all descendent constructs of the access-clause ensures
+   that all modules now invoked will never be invoked again within
+   those descendents.  }
+ 
+ { Rule f ensures the independence of declarations revealed by one
+   revelation; thus
+ 
+     MODULE A = DEF PUB REAL x FED, B = DEF PUB REAL x FED;
+     ACCESS A, B (x)
+ 
+   is not produced.  However, rule e allows a given declaration to be
+   revealed by two public accesses of the same module, as in
+ 
+     MODULE A = DEF PUB REAL x FED;
+     MODULE B = ACCESS PUB A DEF REAL y FED,
+            C = ACCESS PUB A DEF REAL z FED;
+     ACCESS B C (x + y + z)
+ 
+   in which the module-definitions for both B and C reveal x, by virtue
+   of the PUB A in their constituent revelations.  }
+ 
+ { Note that a particular-program may now consist of a
+   joined-label-definition followed by an access-clause.  The
+   defining-module- indications identified thereby would be in the
+   library-prelude or the user-prelude.  }
+ 
+ 3.7 Unsafe clauses
+ 
+ { Extensions: [US] }
+ 
+ { Unsafe clauses contain a controlled-clause, which is an enclosed-clause. }
+ 
+ 3.7.1 Syntax
+ 
+ a) SOID NEST unsafe clause :
+      unsafe{94f} token, SOID NEST ENCLOSED clause{a,31a,33a,c,d,e,34a,35a,-}.
+ 
+ { Examples:
+     a) UNSAFE (ptr := dst)  }
+ 
+ 4 Declarations, declarers and indicators
+ 
+ 4.1 Declarations
+ 
+ 4.1.1 Syntax
+ 
+ { Extensions:
+   [MR] module
+        "declaration with DECSETY without DECSETY1" }
+ 
+ A) COMMON :: mode ; priority ; MODINE identity ;
+              reference to MODINE variable ; MODINE operation ;
+              PARAMETER ; MODE FIELDS ; module.
+              { MODINE :: MODE ; routine. }
+ 
+ a) NEST declaration of DECS{a,32b} :
+      NEST COMMON declaration of DECS{42a,43a,44a,e,45a,-} ;
+      where (DECS) is (DECS1 DECS2),
+        NEST COMMON declaration of DECS1{42a,43a,44a,e,45a,-},
+        and also{94f} token, NEST declaration of DECS2{a}.
+ b) NEST COMMON joined definition of PROPS PROP{b,42a,43a,44a,e,45a,46e,541e} :
+      NEST COMON joined definition of PROPS{b,c},
+        and also{94f} token,
+        NEST COMMON joined definition of PROP{c}.
+ c) NEST COMMON joined definition of PROP{b,42a,43a,44a,e,45a,46e,541e} :
+      NEST COMMON definition of PROP{42b,43b,44c,f,45c,46f,541f,-}.
+ 
+ d) *definition of PROP :
+      NEST COMMON definition of PROP{42b,43b,44c,f,45c,46f,541f} ;
+      NEST label definition of PROP{32}.
+ e) NEST declaration with DECSETY without DECSETY1{49e} :
+      where (DECSETY without DECSETY1) is (EMPTY without DECS1),
+        NEST COMMON declaration of DECS1{42a,43a,44a,e,45a,49a,-} ;
+      where (DECSETY without DECSETY1) is (DECS without EMPTY),
+        public{94d} token,
+        NEST COMMON declaration of DECS{42a,43a,44a,e,45a,49a,-} ;
+      where (DECSETY without DECSETY1) is
+            (DECSETY without DECS1 DECSETY2),
+        NEST COMMON declaration of DECS1{42a,43a,44a,e,45a,49a,-},
+        and also{94f} token,
+        NEST declaration with DECSETY without DECSETY2{e} ;
+      where (DECSETY without DECSETY1) is
+            (DECS DECSETY3 without DECSETY1),
+        public{94d} token,
+        NEST COMMON declaration of DECS{42a,43a,44a,e,45a,49a,-},
+        and also{94f} token,
+        NEST declaration with DECSETY3 without DECSETY1{e}.
+ 
+ { Rule e determines how a "NEST declaration with DECSETY without
+   DECSETY1" results into two groups of declarations.  The declarations
+   in 'DECSETY' are public and syntactically preceded by PUB.  The
+   declarations in 'DECSETY1 are non-public and are not marked by
+   PUB.  }
+ 
+ 4.2 Mode declarations
+ 
+ 4.2.1 Syntax
+ 
+ a) NEST mode declaration of DECS{41a} :
+      mode{94d} token, NEST mode joined definition of DECS{41b,c}.
+ b) NEST mode definition of MOID TALLY TAB{41c} :
+      where (TAB) is (bold TAG) or (NEST) is (new LAYER),
+        MOID TALLY NEST defining mode indication with TAB{48a},
+        is defined as{94d} token,
+        actual MOI TALLY NEST declarer{c}.
+ c) actual MOID TALLY1 NEST declarer{b} :
+      where (TALLY1) is (i),
+        actual MOID NEST declarator{46c,d,g,h,o,s,-} ;
+      where (TALLY1) is (TALLY2 i),
+        MOID TALLY2 NEST applied mode indication with TAB2{48b}.
+ 
+ { The use of TALLY excludes circular chains of mode-definitions such
+   as `mode a = b, b = a'. }
+ 
+ 4.3 Priority declarations
+ 
+ 4.3.1 Syntax
+ 
+ a) NEST priority declaration of DECS{41a} :
+      priority{94d} token, NEST priority joined definition of DECS{41b,c}.
+ b) NEST priority definition of priority PRIO TAD{41c} :
+      priority PRIO NEST definining operator with TAD{48a},
+        is defined as{94d} token, DIGIT{94b} token,
+        where DIGIT counts DIGIT{94b} token,
+        where DIGIT counts PRIO{c,d}.
+    {DIGIT :: digit zero ; digit one ; digit two ; digit three ;
+              digit four ; digit five ; digit six ; digit seven ;
+              digit eight ; digit nine.}
+ c) WHETHER DIGIT1 counts PRIO i{b,c} :
+      WHETHER DIGIT2 counts PRIO{c,d},
+        where (digit one igit two digit three digit four
+               digit five digit six digit seven digit eight digit nine)
+               contains (DIGIT2 DIGIT1).
+ d) WHETHER digit one counts i{b,c} : WHETHER true.
+ 
+ 4.4 Identifier declarations
+ 
+ 4.4.1 Syntax
+ 
+ A) MODINE :: MODE ; routine.
+ B) LEAP :: local ; heap ; primal.
+ 
+ a) NEST MODINE identity declaration of DECS{41a} :
+      formal MODINE NEST declarer{b,46b},
+        NEST MODINE identity joined definition of DECS{41b,c}.
+ b) VICTAL routine NEST declarer{a,523b} : procedure{94d} token.
+ c) NEST MODINE identity definition of MODE TAG{41c} :
+      MODE NEST defining identifier with TAG{48a},
+        is defined as{94d} token, MODE NEST source for MODINE{d}.
+ d) MODE NEST source for MODINE{c,f,45c} :
+      where (MODINE) is (MODE), MODE NEST source{521c} ;
+      where (MODINE) is (routine), MODE NEST routine text{541a,b,-}.
+ e) NEST reference to MODINE variable declaration of DECS{41a} :
+      reference to MODINE NEST LEAP sample generator{523b},
+        NEST reference to MODINE variable joined definition of DECS{41b,c}.
+ f) NEST reference to MODINE variable definition
+         of reference to MODE TAG{41c} :
+      reference to MODE NEST defining identifier with TAG{48a},
+        becomes{94c} token, MODE NEST soure for MODINE{d} ;
+      where (MODINE) is (MODE),
+        reference to MODE NEST defining identifier with TAG{48a}.
+ 
+ g) *identifier declaration :
+      NEST MODINE identity declaration of DECS{a} ;
+      NEST reference to MODINE variable declaration of DECS{e}.
+ 
+ 4.5 Operation declarations
+ 
+ 4.5.1 Syntax
+ 
+ A) PRAM :: DUO ; MONO.
+ B) TAO :: TAD ; TAM.
+ 
+ a) NEST MODINE operation delarations of DECS{41a} :
+      operator{94d} token, formal MODINE NEST plan{b,46p,-},
+        NEST MODINE operation joined definition of DECS{41b,c}.
+ b) formal routine NEST plan{a} : EMPTY.
+ c) NEST MODINE operation definition of PRAM TAO{41c} :
+      PRAM NEST defining operator with TAO{48a},
+        is defined as{94d} token, PRAM NEST source for MODINE{44d}.
+ 
+ 4.6 Declarers
+ 
+ 4.6.1 Syntax
+ 
+ A) VICTAL :: VIRACT ; formal.
+ B) VIRACT :: virtual ; actual.
+ C) MOIDS :: MOID ; MOIDS MOID.
+ 
+ a) VIRACT MOID NEST declarer{c,e,g,h,523a,b} :
+      VIRACT MOID NEST declarator{c,d,g,h,o,s,-} ;
+      MOID TALLY NEST applied mode indication with TAB{48b,-}.
+ b) formal MOID NEST declarer{e,h,p,r,u,34k,44a,541a,b,e,551a} :
+      where MOID deflexes to MOID{47a,b,c,-},
+        formal MOID NEST declarator{c,d,h,o,s,-} ;
+      MOID1 TALLY NEST applied mode indication with TAB{48b,-},
+        where MOID1 deflexes to MOID{47a,b,c,-}.
+ c) VICTAL reference to MODE NEST declarator{a,b,42c} :
+      reference to{94d} token, virtual MODE NEST declarer{a}.
+ d) VICTAL structured with FIELDS mode NEST declarator{a,b,42c} :
+      structure{94d} token,
+        VICTAL FIELDS NEST portrayer of FIELDS{e} brief pack.
+ e) VICTAL FIELDS NEST portrayer of FIELDS1{d,e} :
+      VICTAL MODE NEST declarer{a,b},
+        NEST MODE FIELDS joined definition of FIELDS1{41b,c} ;
+      where (FIELDS1) is (FIELDS2 FIELDS3),
+        VICTAL MODE NEST declarer{a,b},
+        NEST MODE FIELDS joined definition of FIELDS2{41b,c},
+        and also{94f} token,
+        VICTAL FIELDS NEST portrayer of FIELDS3{e}.
+ f) NEST MODE FIELDS definition of MODE field TAG{41c} :
+      MODE field FIELDS defining field selector with TAG{48c}.
+ g) VIRACT flexible ROWS of MODE NEST declarator{a,42c} :
+      flexible{94d} token, VIRACT ROWS of MODE NEST declarer{a}.
+ h) VICTAL ROWS of MODE NEST declarator{a,b,42c} :
+      VICTAL ROWS NEST rower{i,j,k,l} STYLE bracket,
+        VICTAL MODE NEST declarer{a,b,}.
+ i) VICTAL row ROWS NEST rower{h,i} :
+      VICTAL row NEST rower{j,k,l}, and also{94f} token,
+        VICTAL ROWS NEST rower{i,j,k,l}.
+ j) actual row NEST rower{h,i} :
+      NEST lower bound{m}, up to{94f} token, NEST upper bound{n} ;
+      NEST upper bound{n}.
+ k) virtual row NEST rower{h,i} : up to{94f} token option.
+ l) formal row NEST rower{h,i} : up to{94f} token option.
+ m) NEST lower bound{j,532f,g} : meek integral NEST unit{32d}.
+ n) NEST upper bound{j,532f} : meek integral NEST unit{32d}.
+ o) VICTAL PROCEDURE NEST declarator{a,b,42c} :
+      procedure{94d} token, formal PROCEDURE NEST plan{p}.
+ p) formal procedure PARAMETY yieling MOID NEST plan{o,45a} :
+      where (PARAMETY) is (EMPTY), formal MOID NEST declarer{b} ;
+      PARAMETERS NEST joined declarer{q,r} brief pack,
+        formal MOID NEST declarer{b}.
+ q) PARAMETERS PARAMETER NEST joined declarer{p,q} :
+      PARAMETERS NEST joined declarer{q,r}, and also{94f} token,
+        PARAMETER NEST joined declarer{r}.
+ r) MODE parameter NEST joined declarer{p,q} :
+      formal MODE NEST declarer{b}.
+ s) VICTAL union of MOODS1 MOOD1 mode NEST declarator{a,b,42c} :
+      unless EMPTY with MOODS1 MOOD1 incestuous{47f},
+        union of{94d} token,
+        MOIDS NEST joined declarer{t,u} brief pack,
+        where MOIDS ravels to MOODS2{47g}
+              and safe MOODS1 MOOD1 subset of safe MOODS2{73l}
+              and safe MOODS2 subset of safe MOODS1 MOOD1{731,m}.
+ t) MOIDS MOID NEST joined declarer{s,t} :
+      MOIDS NEST joined declarer{t,u}, an also{94f} token,
+        MOID NEST joined declarer{u}.
+ u) MOID NEST joined declarer{s,t} : formal MOID NEST declarer{b}.
+ 
+ 4.7 Relationships between modes
+ 
+ 4.7.1 Syntax
+ 
+ A) NONSTOWED :: PLAIN ; REF to MODE ; PROCEDURE ; UNITED ; void.
+ B) MOODSETY :: MOODS ; EMPTY.
+ C) MOIDSETY :: MOIDS ; EMPTY.
+ 
+ a) WHETHER NONSTOWED deflexes to NONSTOWED{b,e,46b,521c,62a,71n} :
+      WHETHER true.
+ b) WHETHER FLEXETY ROWS of MODE1 deflexes to ROWS of MODE2{b,e,46b,521c,62a,71n} :
+      WHETHER MODE1 deflexes to MODE2{a,b,c,-}.
+ c) WHETHER structured with FIELDS1 mode deflexes to
+            structured with FIELDS2 mode{b,e,46b,521c,62a,71n} :
+      WHETHER FIELDS1 deflexes to FIELDS2{d,e,-}.
+ d) WHETHER FIELDS1 FIELD1 deflexes to FIELDS2 FIELD2{c,d} :
+      WHETHER FIELDS1 deflexes to FIELDS2{d,e,-}
+              and FIELD1 deflexes to FIELD2{e,-}.
+ e) WHETHER MODE1 field TAG deflexes to MODE2 field TAG{c,d} :
+      WHETHER MODE1 deflexes to MODE2{a,b,c,-}.
+ 
+ f) WHETHER MOODSETY1 with MOODSETY2 inestuous{f,46s} :
+      where (MOODSETY2) is (MOOD MOODSETY3),
+        WHETHER MOODSETY1 MOOD with MOODSETY3 incestuous{f}
+                or MOOD is firm union of MOODSETY1 MOODSETY3 mode{71m} ;
+      where (MOODSETY2) is (EMPTY), WHETHER false.
+ 
+ g) WHETHER MOIDS ravels to MOODS{g,46s} :
+      where (MOIDS) is (MOODS), WHETHER true ;
+      where (MOIDS) is
+            (MOODSETY union of MOODS1 mode MOIDSETY),
+        WHETHER MOODSETY MOODS1 MOIDSETY ravels to MOODS{g}.
+ 
+ { The hyperrules from a) to e) implement a predicate deflexes-to that
+   determines whether a given mode deflexes to another mode.  Any
+   non-stowed mode deflexes to any other non-stowed mode.  A row mode
+   deflexes to another row mode if the ranks of the modes are the same
+   and the mode of the former's elements deflexes to the mode of the
+   later's elements.  A structured mode deflexes to another structured
+   mode if they have the same number of fields with the same tags and
+   their modes deflex.  }
+ 
+ { The hyperrule f) implements a predicate that determines whether two
+   provided sets of moods are incestuous, i.e. whether they contain
+   modes which are firmly related.  }
+ 
+ { The hyperrule g) determines whether a set of moods and
+   united modes may be ravelled.  }
+ 
+ 4.8 Indicators and field selectors
+ 
+ 4.8.1 Syntax
+ 
+ { Extensions:
+   [MR] INK, "module indication", "module REVS", "invoked", TAU }
+ 
+ A) INDICATOR :: identifier ; mode indication ; operator ;
+                 module indication.
+ B) DEFIED :: defining ; applied.
+ C) PROPSETY :: PROPS ; EMPTY.
+ D) PROPS :: PROP ; PROPS PROP.
+ E) PROP :: DEC ; LAB ; FIELD ; INK.
+ F) QUALITY :: MODE ; MOID TALLY ; DYADIC ; label ; MODE field ;
+               module REVS ; invoked.
+ G) TAX :: TAG ; TAB ; TAD ; TAM ; TAU.
+ 
+ a) QUALITY NEST new PROPSETY1 QUALITY TAX PROPSETY2
+            defining INDICATOR with TAX{32c,35b,42b,43b,44c,f,45c,541f} :
+      where QUALITY TAX independent PROPSETY1 PROPSETY2{71a,b,c},
+        TAX{942A,D,F,K} token.
+ b) QUALITY NEST applied INDICATOR with TAX{42c,46a,b,5D,542a,b,544a} :
+      where QUALITY TAX identified in NEST{72a},
+        TAX{942A,D,F,K} token.
+ c) MODE field PROPSETY1 MODE field TAG PROPSETY2 defining
+         field selector with TAG{46f} :
+      where MODE field TAG independent PROPSETY1 PrOPSETY2{71a,b,c},
+        TAX{942A} token.
+ d) MODE field FIELDS applied field selector with TAG{531a} :
+      where MODE field TAG resides in FIELDS{72b,c,-},
+        TAG{942A} token.
+ 
+ e) *QUALITY NEST DEFIED indicator with TAX :
+      QUALITY NEST DEFIED INDICATOR with TAX{a,b}.
+ f) *MODE DEFIED field seletor with TAG :
+      MODE field FIELDS DEFIED field selector with TAG{c,d}.
+ 
+ { MODs are introduced into a nest by module-declarations.
+   INKs are introduced into a nest by module-calls. }
+ 
+ { Modules are ascribed to module-indications by means of
+   module-declarations.  }
+ 
+ 4.9 Module declarations
+ 
+ 4.9.1 Syntax
+ 
+ a) NEST1 module declaration of MODS{41a,e} :
+      module{94d} token,
+        NEST1 module joined definition of MODS{41b,c}.
+ b) NEST1 module definition of module RESETY REV TAB{41c} :
+      where (REV) is (TAU reveals DECSETY invoked TAU)
+            and (TAB) is (bold TAG),
+        where (NEST1) is (NOTION1 invoked TAU NOTETY2),
+        unless (NOTION1 NOTETY2) contains (invoked TAU),
+        module REVSETY REV NEST1 defining module indication with TAB{48a},
+        is defined as{94d} token,
+        NEST1 module text publishing REVSETY REV defining LAYER{c,-}.
+ c) NEST1 module text
+          publishing REVSETY TAU reveals DECSETY INKSETY INK
+          defining new DECSETY1 DECSETY INK{b} :
+      where (INKSETY) is (EMPTY) and (REVSETY) is (EMPTY),
+        def{94d} token,
+        NEST1 new new DECSETY1 DECSETY INK module series
+              with DECSETY without DECSETY1{d},
+        fed{94d} token ;
+      NEST1 revelation publishing REVSETY defining LAYER{36b},
+        def{94d} token,
+        NEST1 LAYER new DECSETY1 DECSETY INK module series
+              with DECSETY without DECSETY1{d},
+        fed{94d} token,
+        where (LAYER) is (new DECSETY2 INKSETY).
+ d) NEST3 module series with DECSETY without DECSETY1{c} :
+      NEST3 module prelude with DECSETY without DECSETY1{e},
+        NEST3 module postlude{f} option.
+ e) NEST3 module prelude with DECSETY1 without DECSETY2{d,e} :
+      strong void NEST3 unit{32d}, go on{94f} token,
+        NEST3 module prelude with DECSETY1 without DECSETY2{e} ;
+      where (DECSETY1 without DECSETY2) is
+            (DECSETY3 DECSETY4 without DECSETY5 DECSETY6>,
+        NEST3 declaration with DECSETY3 without DECSETY5{41e},
+        go on{94f} token,
+        NEST3 module prelude with DECSETY4 without DECSETY6{e} ;
+      where (DECSETY1 without DECSETY2) is (EMPTY without EMPTY),
+        strong void NEST3 unit{32d} ;
+      NEST3 declaration with DECSETY1 without DECSETY2{41e}.
+ f) NEST3 module postlude{d} :
+      postlude{94d} token, strong void NEST3 series with EMPTY{32b}.
+ 
+ g) *module text :
+      NEST module text publishing REVS defining LAYER{c}.
+ 
+ { Examples:
+     a) MODULE A = DEF STRING s; gets (s);
+                       PUB STRING t = "file"+s, PUB REAL a FED,
+               B = ACCESS A DEF PUB INT fd;
+                                fopen (fd, file o rdonly)
+                            POSTLUDE close (f) FED
+ 
+     b) A = DEF STRING s; gets (s);
+                PUB STRING t = "file"+s, PUB REAL a FED
+ 
+        B = ACCESS A DEF PUB FILE f;
+                         fopen (fd, file o rdonly)
+                         POSTLUDE close (f) FED
+ 
+     c) DEF STRING s; gets (s);
+            PUB STRING t = "file"+s, PUB REAL a FED
+ 
+        ACCESS A DEF PUB FILE f;
+                         fopen (fd, file o rdonly)
+                         POSTLUDE close (f) FED
+ 
+     d) STRING s; gets (s); PUB STRING t = "file"+s, PUB real a
+ 
+        PUB FILE f; fopen (fd, file o rdonly) POSTLUDE close (f)
+ 
+     e) STRING s; gets (s); PUB STRING t = "file"+s, PUB real a
+ 
+        PUB FILE f; fopen (fd, file o rdonly)
+ 
+     f) POSTLUDE close (f) }
+ 
+ { Note that the EMPTY (for PROPSETY) in rule f enforces that a module
+   postlude cannot contain declarations, labels or module accesses.
+   Only units are allowed.  }
+ 
+ { Rule b ensures that a unique 'TAU' is associated with each
+   module-text accessible from any given point in the program.  This is
+   used to ensure that an invoke ATU' can be identified in the nest of
+   all descendent constructs of any access-clause or module-text which
+   invokes that module-text.
+ 
+   In general, a module-text-publishing-REVS-defining-LAYER T makes
+   'LAYER' visible within itself, and makes the properties revealed by
+   'REVS' visible wherever T is accessed.  'LAYER' includes both a
+   'DECSETY' corresponding to its public declarations and an INK' which
+   links T to its unique associated 'TAU' and signifies in the nest
+   that T is now known to be invoked.  REVS' always reveals 'DECSETY
+   INKSETY INK' (but not 'DECSETY1'), where INKSETY' signifies the
+   invocation of any other modules accessed by T.  'REVS' may also
+   reveal the publications of the other modules accessed by T if their
+   module-calls within T contained a public-token. }
+ 
+ 5 Units
+ 
+ 5.1 Syntax
+ 
+ { Extensions:
+   [MR] formal hole, virtual hole }
+ 
+ A) UNIT{32d} ::
+      assignation{521a} coercee ; identity relation{522a} coercee ;
+      routine text{541a,b} coercee ; jump{544a} ; skip{552a} ;
+      and function{57a} ; or function{57b} ;
+      formal hole{561b} ; virtual hole{561a} ;
+      TERTIARY{B}.
+ B) TERTIARY{A,521b,522a} ::
+      ADIC formula{542a,b} coercee ; nihil ;
+      SECONDARY{C}.
+ C) SECONDARY{B,531a,542c} ::
+      LEAP generator{523a} coercee ; selection{531a} coercee ;
+      PRIMARY{D}.
+ D) PRIMARY{C,532a,543a} ::
+      slice{532a} coercee ; call{543a} coercee ;
+      format text{A341a} coercee ;
+      applied identifier with TAG{48b} coercee ;
+      ENCLOSED clause{31a,33a,c,d,e,34a,35a}.
+ 
+ a) *SOME hip :
+      SOME jump{544a} : SOME skip{552a} ; SOME nihil{524a}.
+ 
+ 5.2 Units associated with names
+ 
+ 5.2.1 Assignations
+ 
+ 5.2.1.1 Syntax
+ 
+ a) REF to MODE NEST assignation{5A} :
+      REF to MODE NEST destination{b}, becomes{94c} token,
+        MODE NEST source{c}.
+ b) REF to MODE NEST destination{a} :
+      soft REF to MODE NEST TERTIARY{5B}.
+ c) MODE1 NEST source{a,44d} :
+      strong MODE2 NEST unit{32d},
+        where MODE1 deflexes to MODE2{47a,b,c,-}.
+ 
+ 5.2.2 Identity relations
+ 
+ 5.2.2.1 Syntax
+ 
+ a) boolean NEST identity relation{5A} :
+      where soft balances SORT1 and SORT2{32f},
+        SORT1 reference to MODE NEST TERTIARY1{5B},
+        identity relator{b},
+        SORT2 reference to MODE NEST TERTIARY2{5B}.
+ b) identity relator{a} : is{94f} token ; is not{94f} token.
+ 
+ 5.2.3 Generators
+ 
+ 5.2.3.1 Syntax
+ 
+ a) reference to MODE NEST LEAP generator{5C} :
+      LEAP{94d,-} token, actual MODE NEST declarer{46a}.
+ b) reference to MODINE NEST LEAP sample generator{44e} :
+      LEAP{94d,-} token, actual MODINE NEST declarer{44b,46a} ;
+      where (LEAP) is (local), actual MODINE NEST declarer{44b,46a}.
+ 
+ 5.2.4 Nihils
+ 
+ 5.2.4.1 Syntax
+ 
+ a) strong reference to MODE NEST nihil{5B} :
+      nil{94f} token.
+ 
+ 5.3 Units associated with stowed values
+ 
+ 5.3.1 Selections
+ 
+ 5.3.1.1 Syntax
+ 
+ { Extensions:
+   [BF] brief selection }
+ 
+ A) REFETY :: REF to ; EMPTY.
+ B) REFLEXETY :: REF to ; REF to flexible ; EMPTY.
+ 
+ a) REFETY MODE1 NEST selection{5C} :
+      MODE1 field FIELDS applied field selector with TAG{48d},
+        STYLE selection token, weak REFLEXETY ROWS of structured with
+                                    FIELDS mode NEST SECONDARY{5C},
+        where (REFETY) is derived from (REFLEXETY){b,c,-}.
+ b) WHETHER (transient reference to) is derived from
+            (REF to flexible){a,532,66a} :
+      WHETHER true.
+ c) WHETHER (REFETY) is derived from (REFETY){a,532a,66a} :
+      WHETHER true.
+ 
+ 5.3.2 Slices
+ 
+ 5.3.2.1 Syntax
+ 
+ A) ROWSETY :: ROWS ; EMPTY.
+ 
+ a) REFETY MODE1 NEST slice{5D} :
+      weak REFLEXETY ROWS1 of MODE1 NEST PRIMARY{5D},
+        ROWS1 leaving EMPTY NEST indexer{b,c,-} STYLE bracket,
+        where (REFETY) is derived from (REFLEXETY){531b,c,-} ;
+      where (MODE1) is (ROWS2 of MODE2),
+        weak REFLEXETY ROWS1 of MODE2 NEST PRIMARY{5D},
+        ROWS1 leaving ROWS2 NEST indexer{b,d,-} STYLE bracket,
+        where (REFETY) is derived from (REFLEXETY){531b,c,-}.
+ b) row ROWS leaving ROWSETY1 ROWSETY2 NEST indexer{a,b} :
+      row leaing ROWSETY1 NEST indexer{c,d,-}, and also{94f} token,
+        ROWS leaving ROWSETY2 NEST indexer{b,c,d,-}.
+ c) row leaving EMPTY NEST indexer{a,b} : NEST subscript{3}.
+ d) row leaving row NEST indexer{a,b} :
+      NEST trimmer{f} ; NEST revised lower bound{g} option.
+ e) NEST subscript{c} : meek integral NEST unit{32d}.
+ f) NEST trimmer{d} :
+      NEST lower bound{46m} option, up to{94f} token,
+        NEST upper bound{46n} option,
+        NEST revised lower bound{g} option.
+ g) NEST revised lower bound{d,f} :
+      at{94f} token, NEST lower bound{46m}.
+ 
+ h) *trimscript :
+      NEST subscript{e} ; NEST trimmer{f};
+      NEST revised lower bound{g} option.
+ i) *indexer :
+      ROWS leaving ROWSETY NEST indexer{b,c,d}.
+ j) *boundscript :
+      NEST subscript{e} ; NEST lower bound{46m} ;
+      NEST upper bound{46n} ; NEST revised lowe bound{g}.
+ 
+ 5.4 Units associated with routines
+ 
+ 5.4.1 Routine texts
+ 
+ 5.4.1.1 Syntax
+ 
+ a) procedure yielding MOID NEST1 routine text{44d,5A} :
+      formal MOID NEST1 declarer{46b}, routine{94f} token,
+        strong MOID NEST1 unit{32d}.
+ b) procedure with PARAMETERS yielding
+              MOID NEST1 routine text{44d,5A} :
+      NEST1 new DECS2 declarative defining
+            new DECS2{e} brief pack,
+        where DECS2 like PARAMETERS{c,d,-},
+        formal MOID NEST1 declarer{46b}, routine{94f} token,
+        strong MOID NEST1 new DECS2 unit{32d}.
+ c) WHETHER DECS DEC like PARAMETERS PARAMETER{b,c} :
+      WHETHER DECS like PARAMETERS{c,d-}
+              and DEC like PARAMETER{d,-}.
+ d) WHETHER MODE TAG like MODE parameters{b,c} :
+      WHETHER true.
+ e) NEST2 declarative defining new DECS2{b,e,34j} :
+      formal MODE NEST2 declarer{46b},
+        NEST2 MODE parameter joined definition of DECS2{41b,c} ;
+      where (DECS2) is (DECS3 DECS4),
+        formal MODE NEST2 declarer{46b},
+        NEST2 MODE parameter joind definition of DECS3{41b,c},
+        and also{94f} token, NEST2 declarative defining new DECS4{3}.
+ f) NEST2 MODE parameter efinition of MODE TAG2{41c} :
+      MDOE NEST2 defining identifier with TAG2{48a}.
+ 
+ g) *formal MODE parameter :
+      NEST MODE parameter definition of MODE TAG{f}.
+ 
+ 5.4.2 Formulas
+ 
+ 5.4.2.1 Syntax
+ 
+ A) DYADIC :: priority PRIO.
+ B) MONADIC :: priority iii iii iii i.
+ C) ADIC :: DYADIC ; MONADIC.
+ D) TALLETY :: TALLY ; EMPTY.
+ 
+ a) MOID NEST DYADIC formula{c,5B} :
+      MODE1 NEST DYADIC TALLETY operand{c,-},
+        procedure with MODE1 parameter MODE2 parameter
+                  yielding MOID NEST applied operator with TAD{48b},
+        where DYADIC TAD identified in NEST{72a},
+        MODE2 NEST DYADIC TALLY operand{c,-}.
+ b) MOID NEST MONADIC formula{c,5B} :
+      procedure with MODE parameter yielding MOID
+                NEST applied operator ith TAM{48b},
+        MODE NEST MONADIC operand{c}.
+ c) MODE NEST ADIC operand{a,b} :
+      firm MODE NEST ADIC formula{a,b} coercee{61b} ;
+      where (ADIC) is (MONADIC), firm MODE NEST SECONDARY{5C}.
+ 
+ d) *MOID formula : MOID NEST ADIC formula{a,b}.
+ e) *DUO dyadic operator with TAD :
+      DUO NEST DEFIED operator with TAD{48a,b}.
+ f) *MONO monadic operator with TAM :
+      MONO NEST DEFIED operator with TAM{48a,b}.
+ g) *MODE operand : MODE NEST ADIC operand{c}.
+ 
+ 5.4.3 Calls
+ 
+ 5.4.3.1 Syntax
+ 
+ a) MOID NEST call{5D} :
+      meek procedure with PARAMETERS yielding MOID NEST PRIMARY{5D},
+        actual NEST PARAMETERS{b,c} brief pack.
+ b) actual NEST PARAMETERS PARAMETER{a,b} :
+      actual NEST PARAMETERS{b,c}, and also{94f} token,
+        actual NEST PARAMETER{c}.
+ c) actual NEST MODE parameter{a,b} : strong MODE NEST unit{32d}.
+ 
+ 5.4.4 Jumps
+ 
+ 5.4.4.1 Syntax
+ 
+ a) strong MOID NEST jump{5A} :
+      go to{b} option,
+        label NEST applied identifier with TAG{48b}.
+ b) go to{a} : STYLE go to{94f,-} token ;
+               STYLE go{94f,-} token, STYLE to symbol{94g,-}.
+ 
+ 5.5 Units associated with values of any mode
+ 
+ 5.5.1 Casts
+ 
+ 5.5.1.1 Syntax
+ 
+ a) MOID NEST cast{5D} :
+      formal MOID NEST declarer{46b},
+        strong MOID NEST ENCLOSED clause{31a,33c,d,e,34a,35a,-}.
+ 
+ 5.5.2 Skips
+ 
+ 5.5.2.1 Syntax
+ 
+ a) strong MOID NEST skip{5A} : skip{94f} token.
+ 
+ 5.6 Holes
+ 
+ 5.6.1 Syntax
+ 
+ A) LANGUAGE :: algol sixty eight ; c language.
+ B) CODE :: CAIN ; CLAN ; reference to CAIN ;
+            procedure with PERFORMERS yieling COID ;
+            procedure yielding COID.
+ C) PERFORMERS :: PERFORMER ; PERFORMERS PERFORMER.
+ D) PERFORMER :: CODE parameter.
+ E) COID :: CODE ; void.
+ F) CAIN :: real ; long real ; integral ; BITS ; boolean ; char.
+ 
+ a) strong MOID NEST virtual hole{5A} :
+      virtual nest symbol, strong MOID NEST closed clause{31a}.
+ b) strong MOID NEST formal hole{5A} :
+      formal nest{94d} token, MOID LANGUAGE indication{e,f,-},
+        hole indication{d}.
+ c) MOID NEST actual hole{A6a} :
+      strong MOID NEST ENCLOSED clause{31a,33a,c,34a,35a,36a,-}.
+ d) hole indication{b} :
+      character denotation{814a} ; row of character denotation{83a}.
+ e) MOID algol sixty eight indication{b} : EMPTY.
+ f) COID c language indication{b} : bold letter c token.
+ 
+ { COID-c-language-indication restricts the `MOID's to the set for
+   which a C equivalence can be immediately determined by the compiler
+   without any additional information.  }
+ 
+ { Since no representation is provided for the virtual-nest-symbol, the
+   user is unable to construct virtual-holes for himself, but a
+   mechanism is provided (10.6.2.a) for constructing them out of
+   formal- and actual-holes. }
+ 
+ 5.7 Short-circuit logical functions
+ 
+ { Extensions: [SC] }
+ 
+ { The short-circuit logical functions are pseudo-operators providing
+   logical AND and OR functions with short-circuited elaboration.  }
+ 
+ 5.7.1 Syntax
+ 
+ a) boolean NEST and function{5A} :
+      meek boolean NEST TERTIARY1, andth{94c} token, meek boolean NEST TERTIARY2.
+ 
+ b) boolean NEST or function{5A} :
+      meek boolean NEST TERTIARY1, orel{94c} token, meek boolean NEST TERTIARY2.
+ 
+ c) *boolean NEST short circuit function :
+      boolean NEST and function{a} ; boolean NEST or function{b}.
+ 
+ { Examples:
+     a) UPB str > 2 ANDTH str[3] /= "x"
+     b) error = 0 OREL (print ("error"); stop; SKIP) }
+ 
+ 6 Coercion
+ 
+ 6.1 Coercees
+ 
+ 6.1.1 Syntax
+ 
+ A) STRONG{a,66a} ::
+      FIRM{B} ; widened to{65a,b,c,d} ; rowed to{66a} ;
+      voided for{67a,b}.
+ B) FIRM{A,b} :: MEEK{C} ; united to{64a}.
+ C) MEEK{B,c,d,64a,63a,64a,65a,b,c,d} ::
+      unchanged from{f} ; dereferenced to{62a} ; deprocedured to{63a}.
+ D) SOFT{e,63b} ::
+      unchanged from{f} ; softly deprocedured to{63b}.
+ E) FORM :: MORF ; COMORF.
+ F) MORF ::
+      NEST selection ; NEST slice ; NEST routine text ;
+      NEST ADIC formula ; NEST call ;
+      NEST applied identifier with TAG.
+ G) COMORF ::
+      NEST assignation ; NEST identity relation ;
+      NEST LEAP generator ; NEST cast ; NEST denoter ;
+      NEST format text.
+ 
+ a) strong MOID FORM coercee{5A,B,C,D,A341i} :
+      where (FORM) is (MORF), STRONG{A} MOID MORF ;
+      where (FORM) is (COMORF), STRONG{A} MOID COMORF,
+        unless (STRONG MOID) is (deprocedured to void).
+ b) firm MODE FORM coercee{5A,B,C,D,542c} : FIRM{B} MODE FORM.
+ c) meek MODE FORM coercee{5A,B,C,D} : MEEK{C} MOID FORM.
+ d) weak REFETY STOWED FORM coercee{5A,B,C,D} :
+      MEEK{C} REFETY STOWED FORM,
+        unless (MEEK) is (dereferenced to)
+               and (REFETY) is (EMPTY).
+ e) soft MODE FORM coercee{5A,B,C,D} : SOFT{D} MODE FORM.
+ f) unchanged from MOID FORM{C,D,67a,b} : MOID FORM.
+ 
+ g) *SORT MOID coercee : SORT MOID FORM coercee{a,b,c,d,e}.
+ h) *MOID coercend : MOID FORM.
+ 
+ { Examples:
+     a) 3.14 (in x := 3.14)
+     b) 3.14 (in x + 3.14)
+     c) sin (in sin (x))
+     d) x1 (in x1[2] := 3.14)
+     e) x (in x := 3.14)  }
+ 
+ 6.2 Dereferencing
+ 
+ 6.2.1 Syntax
+ 
+ a) dereferenced to{61C} MODE1 FORM :
+      MEEK{61C} REF to MODE2 FORM,
+        where MODE2 deflexes to MODE1{47a,b,c,-}.
+ 
+ { Examples:
+     a) x in (real (x)) }
+ 
+ 6.3 Deproceduring
+ 
+ 6.3.1 Syntax
+ 
+ a) deprocedured to{61C,67a} MOID FORM :
+      MEEK{61C} procedure yielding MOID FORM.
+ b) softly deprocedured to{61D} MODE FORM :
+      SOFT{61D} procedure yielding MODE FORM.
+ 
+ { Examples:
+     a) random (in real (random))
+     b) x or y (in x or y := 3.14, given
+                PROC x or y = REF REAL: (random < .5 | x | y)) }
+ 
+ 6.4 Uniting
+ 
+ 6.4.1 Syntax
+ 
+ a) united to{64B} UNITED FORM :
+      MEEK{61C} MOID FORM,
+        where MOID unites to UNITED{b}.
+ b) WHETHER MOID1 unites to MOID2{a,34i,71m} :
+      where MOID1 equivalent MOID2{73a}, WHETHER false ;
+      unless MOID1 equivalent MOID2{73a},
+        WHETHER safe MOODS1 subset of safe MOODS2{73l,m,n},
+        where (MOODS1) is (MOID1)
+              or (union of MOODS1 mode) is (MOID1),
+        where (MOODS2) is (MOIDS2)
+              or (union of MOODS2 mode) is (MOIDS2).
+ 
+ { Examples:
+     a) x (in uir := x)
+        u (in UNION(CHAR,INT,VOID)(u), in a reach containing
+           UNION(INt,VOID) u := EMPTY) }
+ 
+ 6.5 Widening
+ 
+ 6.5.1 Syntax
+ 
+ A) BITS :: structured with
+                       row of boolean field SITHETY letter aleph mode.
+ B) BYTES :: structured with
+                        row of character field SITHETY letter aleph mode.
+ C) SITHETY :: LENGTH LENGTHETY ; SHORT SHORTHETY ; EMPTY.
+ D) LENGTH :: letter l letter o letter n letter g.
+ E) SHORT :: letter s letter h letter o letter r letter t.
+ F) LENGTHETY :: LENGTH LENGTHETY ; EMPTY.
+ G) SHORTHETY :: SHORT SHORTHETY ; EMPTY.
+ 
+ a) widened to{b,61A} SIZETY real FORM :
+      MEEK{61C} SIZETY integral FORM.
+ b) widened to{61A} structured with SIZETY real field letter r letter e
+            SIZETY real field letter i letter m mode FORM :
+      MEEK{61C} SIZETY real FORM ;
+      widened to{a} SIZETY real FORM.
+ c) widened to{61A} row of boolean FORM : MEEK{61C} BIT FORM.
+ d) widened to{61A} row of character FORM : MEEK{61C} BYTES FORM.
+ 
+ { Examples:
+     a) 1 (in x := 1)
+     b) 1.0 (in z := 1.0)
+        1 (in z := 1)
+     c) 2r101 (in []BOOL(2r101))
+     d) r (in []CHAR(r)) }
+ 
+ 6.6 Rowing
+ 
+ 6.6.1 Syntax
+ 
+ a) rowed to{61A} REFETY ROWS1 of MODE FORM :
+      where (ROWS1) is (row),
+        STRONG{61A} REFLEXETY MODE FORM,
+        where (REFETY) is derived from (REFLEXETY){531b,c,-} ;
+      where (ROWS1) is (row ROWS2),
+        STRONG{61A} REFLEXETY ROWS2 of MODE FORM,
+        where (REFETY) is derived from (REFLEXETY){531b,c,-}.
+ 
+ { Examples:
+     a) 4.13 (in [1:1]REAL b1 := 4.13)
+        x1 (in [1:1,1:n]REAL b2 := x1) }
+ 
+ 6.7 Voiding
+ 
+ 6.7.1 Syntax
+ 
+ A) NONPROC :: PLAIN ; STOWED ; REF to NONPROC ;
+               procedure with PARAMETERS yielding MOID ; UNITED.
+ 
+ a) voided to{61A} void MORF :
+      deprocedured to{63a} NONPROC MORF ;
+      unchanged from{61f} NONPROC MORF.
+ b) voided to{61A} void COMORF :
+      unchanged from{61f} MODE COMORF.
+ 
+ { Examples:
+     a) random (in SKIP; random;)
+        next random (last random)
+          (in SKIP; next random (lat random);)
+     b) PROC VOID (pp) (in PROC PROC VOID pp = PROC VOID : (print (1);
+             VOID : print (2)); PROC VOID (pp);) }
+ 
+ 8 Denotations
+ 
+ 8.1 Plain denotations
+ 
+ 8.1.0.1 Syntax
+ 
+ A) SIZE:: long ; short.
+ B) *NUMERAL :: fixed point numeral ; variable point numeral ;
+                floating point numeral.
+ 
+ a) SIZE INTREAL denotation{a,80a} :
+      SIZE symbol{94d}, INTREAL, denotation{a,811a,812a}.
+ 
+ b) *plain denotation :
+      PLAIN denotation{a,811a,812a,813a,814a} ; void denotation{815a}.
+ 
+ { Example:
+     a) LONG 0 }
+ 
+ 8.1.1 Integral denotations
+ 
+ 8.1.1.1 Syntax
+ 
+ a) integral denotation{80a,810a} : fixed point numeral{b}.
+ b) fixed point numeral{a,812c,d,f,i,A341h} : digit cypher{c} sequence.
+ c) digit cypher{b} : DIGIT symbol{94b}.
+ 
+ { Examples:
+     a) 4096
+     b) 4096
+     c) 4 }
+ 
+ 8.1.2 Real denotations
+ 
+ 8.1.2.1 Syntax
+ 
+ a) real denotation{80a,810a} :
+      variable point numeral{b} ; floating point numeral{e}.
+ b) variable point numeral{a,f} :
+      integral part{c} option, fractional part{d}.
+ c) integral part{b} : fixed point numeral{811b}.
+ d) fractional part{b} : point symbol{94b}, fixed point numeral{811b}.
+ e) floating point numeral{a} : stagnant part{f}, exponent part{g}.
+ f) stagnant part{e} :
+      fixed point numeral{811b} : variable point numeral{b}.
+ g) exponent part{e} :
+      times ten to the power choice{h}, power of then{i}.
+ h) times ten to the power choice{g} :
+      times ten to the power symbol{94b} ; letter e symbol{94a}.
+ i) power of ten{g}: plusminus{j} option, fixed point numeral{811b}.
+ j) plusminus{i} : plus symbol{94c} ; mius symbol{94c}.
+ 
+ { Examples:
+     a) 0.00123
+        1.23e-3
+     b) 0.00123
+     c) 0
+     d) .00123
+     e) 1.23e-3
+     f) 123
+        1.23
+     g) E-3
+     h) E
+     i) -3
+     j) +
+        - }
+ 
+ 8.1.3 Boolean denotations
+ 
+ 8.1.3.1 Syntax
+ 
+ a) boolean denotation{80a} : true{94b} symbol ; false{94b} smbol.
+ 
+ { Examples:
+     a) TRUE
+        FALSE }
+ 
+ 8.1.4 Character denotations
+ 
+ 8.1.4.1 Syntax
+ 
+ a) character denotation{80a} :
+      quote{94b} symbol, string item{b}, quote sybol{94b}.
+ b) string item{a,83b} :
+      character glyph{c} ; quote image symbol{94f} ; other string item{d}.
+ c) character glyph{b,92c} :
+      LETTER symbol{94a} ; DIGIT symbol{94b} ;
+      point sybol{94b} ; open symbol{94f} ; close symbol{94f} ;
+      comma symbol{94b} ; space symbol{94b} ;
+      plus symbol{94c} ; minus symbol{94c}.
+ 
+ { A production rule may be added for the notion 'other string item'
+   each of whose alternatives is a symbol 1.1.3.1.f which is different
+   from any terminal production of 'character glyph' and which is not
+   'quote symbol' }
+ 
+ { Examples:
+     a) "a"
+     b) a
+        ""
+        ?
+     c) a 1 . ( ) , . space + - }
+ 
+ 8.1.5 Void denotation
+ 
+ 5.1.5.1 Syntax
+ 
+ a) void denotation{80a} : empty{94b} symbol.
+ 
+ { Example:
+     a) EMPTY }
+ 
+ 8.2 Bits denotations
+ 
+ 8.2.1 Syntax
+ 
+ A) RADIX :: radix two ; radix four ; radix eight ; radix sixteen.
+ 
+ a) structured with row of boolean field
+               LENGTH LENGTHETY letter aleph mode denotation{a,80a} :
+      long{94d} symbol, structured with row of boolean field
+                                   LENGTHETY letter aleph mode denotation{a,c}.
+ b) structured with row of boolean field
+               SHORT SHORTHTETY letter aleph mode denotation{b,80a} :
+      short{94d} symbol,
+        structured with row of boolean field SHORTHETY letter aleph mode denotation{b,c}.
+ c) structured wih row of boolean field
+               letter aleph mode denotation{a,b,80a} :
+      RADIX{d,e,f,g}, letter r symbol{94a}, RADIX digit{h,i,j,k} sequence.
+ d) radix two{c,A347b} : digit two{94b} symbol.
+ e) radix four{c,A347b} : digit four{94b} symbol.
+ f) radix eight{c,A347b} : digit eight{94b} symbol.
+ g) radix sixteen{c,A347b} : digit one symbol{94b}, digit six symbol{94b}.
+ h) radix two digit{c,i} : digit zero symbol{94b} ; digit one symbol{94b}.
+ i) radix four digit{c,j} :
+      radix two digit{h} ; digit two symbol{94b} ;
+      digit three symbol{94b}.
+ j) raidx eight digit{c,k} :
+      radix four digit{i} ; digit four symbol{94b} ;
+      digit five symbol{94b} ; digit six symbol{94b} ;
+      digit seven symbol{94b}.
+ k) radix sixteen digit{c} :
+      radix eight digit{j} ; digit eight symbol{94b} ;
+      digit nine symbol{94b} ; letter a symbol{94a} ;
+      letter b symbol{94a} ; letter e symbol{94a} ; letter d symbol{94a} ;
+      letter e symbol{94a} ; letter f symbol{94a}.
+ 
+ l) *bits denotation : BITS denotation{a,b,c}.
+ m) *radix digit : RADIX digit{h,i,j,k}.
+ 
+ { Examples:
+     a) LONG 2r101
+     b) SHORT 16rffff
+     c) 8r231 }
+ 
+ 8.3 String denotations
+ 
+ 8.3.1 Syntax
+ 
+ a) row of character denotation{80a} :
+      quote{94b} symbol, string{b} option, quote symbol{94b}.
+ b) string{a} : string item{814b}, string item{814b} sequence.
+ 
+ c) *string denotation : row of charater denotation{a}.
+ 
+ { Examples:
+     a) "abc"
+     b) abc }
+ 
+ 9 Tokens and symbols
+ 
+ 9.1 Tokens
+ 
+ { Tokens are symbols possibly preceded by pragments.  }
+ 
+ 9.1.1 Syntax
+ 
+ a) CHOICE STYLE start{34a} :
+      where (CHOICE) is (choice using boolean),
+        STYLE if{94f,-} token ;
+      where (CHOICE) is (CASE), STYLE case{94f,-} token.
+ b) CHOICE STYLE in{34e} :
+      where (CHOICE) is (choice using boolean),
+        STYLE then{94f,-} token ;
+      where (CHOICE) is (CASE), STYLE in{94f,-} token.
+ c) CHOICE STYLE again{34l} :
+      where (CHOICE) is (choice using boolean),
+        STYLE else if{94f,-} token ;
+      where (CHOICE) is (CASE), STYLE ouse{94f,-} token.
+ d) CHOICE STYLE out{34l} :
+      where (CHOICE) is (choice using boolean),
+        STYLE else{94f,-} token ;
+      where (CHOICE) is (CASE), STYLE out{94f,-} token.
+ e) CHOICE STYLE finish{34a} :
+      where (CHOICE) is (choice using boolean),
+        STYLE fi{94f,-} token ;
+      where (CHOICE) is (CASE), STYLE esac{94f,-} token.
+ f) NOTION token :
+      pragment{92a} sequence option,
+        NOTION symbol{94a,b,c,d,e,f,g,h}.
+ 
+ g) *token : NOTION token{f}.
+ h) *symbol : NOTION symbol{94a,b,c,d,e,f,g,h}.
+ 
+ 9.2 Comments and pragmats
+ 
+ 9.2.1 Syntax
+ 
+ { Extensions:
+   [NC] nestable comments.  }
+ 
+ A) PRAGMENT :: pragmat ; comment.
+ 
+ a) pragment{80a,91f,A341b,h,A348a,b,c,A349a,A34Ab} : PRAGMENT{b}.
+ b) PRAGMENT{a} :
+      STYLE PRAGMENT symbol{94h,-},
+        STYLE PRAGMENT item{c} sequence option,
+        STYLE PRAGMENT symbol{94h,-} ;
+      STYLE nestable comment{d}.
+ c) STYLE PRAGMENT item{b} :
+      character glyph{814c} ; STYLE other PRAGMENT item{d}.
+ d) STYLE nestable comment{b} :
+      STYLE comment begin symbol{94h,-},
+        STYLE nestable comment contents{e} sequence,
+        STYLE comment end symbol{94h,-}.
+ e) STYLE nestable comment contents{d} :
+      STYLE nestable comment item{c} sequence option,
+        STYLE nestable comment{d} option.
+ f) STYLE nestable comment item{e} :
+      character glyph{814c} ; STYLE other nestable comment item{d}.
+ 
+ { A production rule may be added for each notion designated by 'STYLE
+   other PRAGMENT item' each of whose alternatives is a symbol
+   different from any terminal production of 'character glyph', and
+   such that no terminal production of any 'STYLE other PRAGMENT item'
+   is the corresponding 'STYLE PRAGMENT symbol'.  This allows to nest
+   different comment or pragmat for example.  }
+ 
+ 9.4 The reference language
+ 
+ 9.4.1 Representations of symbols
+ 
+ { Extensions:
+   [CS] andth symbol, orel symbol
+   [MR] access symbol, module symbol, def symbol, public symbol,
+        postlude symbol, formal nest symbol, egg symbol
+   [US] unsafe symbol
+   [SS] brief of symbol }
+ 
+ { This section of the Report doesn't describe syntax, but lists all
+   the different symbols along with their representation in the
+   reference language.  We only include here symbols corresponding to
+   the GNU extensions implemented by this compiler.  }
+ 
+         symbol                         representation
+ 
+ c) andth symbol{57a}                    ANDTH
+    orel symbol{57b}                     OREL
+ d) module symbol{49a}                   MODULE
+    access symbol{36b}                   ACCESS
+    def symbol{49c}                      DEF
+    fed symbol{49c}                      FED
+    public symbol{36d,41e}               PUB
+    postlude symbol{49f}                 POSTLUDE
+    formal nest symbol{56b}              NEST
+    egg symbol{A6a,c}                    EGG
+ f) unsafe symbol{37a}                   UNSAFE
+    bold of symbol{53a}                  OF
+    brief of symbol{53a}                 '
+ h) bold comment begin symbol{92a}       NOTE
+    bold comment end symbol{92a}         ETON
+    brief comment begin symbol{92a}      {
+    brief comment end symbol{92a}        }
+ 
+ 10.1.1 Syntax
+ 
+ { Extensions:
+   [MR] user, user task }
+ 
+ A) EXTERNAL :: user.
+ 
+ f) NEST1 user task{d} :
+      NEST2 particular prelude with DECS{c},
+        NEST2 user prelude with MODSETY{c},
+        NEST2 particular program{g} PACK, go on{94f} token,
+        NEST2 particualr poslude{i},
+        where (NEST2) is (NEST1 new DECS MODSETY STOP).
+ 
+ 10.6 Packets
+ 
+ 10.6.1 Syntax
+ 
+ a) MOID NEST new MODSETY ALGOL68 stuffing packet{A7a} :
+      egg{94d} token, hole indication{56d}, is defined as{94d} token,
+        MOID NEST new MODSETY actual hole{56c}.
+ 
+ { b) Note that the rules for "MOID NEST new MODSETY LANGUAGE stuffing
+   packets" for other languages are not explicitly included in the
+   syntax.  These rules conceptually transform all such
+   LANGUAGE-stuffing-packets into ALGOL68-stuffing-packets with the
+   same meaning. }
+ 
+ c) NEST new MODSETY1 MODS definition module packet of MODS{A7a} :
+      egg{94d} token, hole indication{56d}, is defined as{94d} token,
+        NEST new MODSETY1 MODS module declaration of MODS{49a},
+        where MODS absent from NEST{e}.
+ d) new LAYER1 new DECS MODSETY1 MODS STOP
+        prelude packet of MODS{A7a} :
+      new LAYER1 new DECS MODSETY1 MODS STOP
+          module declaration of MODS{4a},
+        where MODS absent from new LAYER1{e}.
+ e) WHETHER MODSETY MOD absent from NEST{c,d} :
+      WHETEHR MODSETY absent from NEST{e,f}
+              and MOD independent PROPSETY{71a,b,c},
+        where PROPSETY collected properties from NEST{g,h}.
+ f) WHETHER EMPTY absent from NEST{e} :
+      WHETHER true.
+ g) WHETHER PROPSETY1 PROPSETY2 collected properties from
+            NEST new PROPSETY2{e,g} :
+      WHETHER PROPSETY1 collected properties from NEST {g,h}.
+ h) WHETHER EMPTY collected properties from new EMPTY{e,g} :
+      WHETHER true.
+ 
+ i) *NEST new PROPSETY packet :
+      MOID NEST new PROPSETY LANGUAGE stuffing packet{a,b} ;
+      NEST new PROPSETY definition module packet of MODS{c} ;
+      NEST new PROPSETY particular program{A1g} ;
+      NEST new PROPSETY prelude packet of MODS{d}.
+ j) *letter symbol : LETTER symbol{94a}.
+ k) *digit symbol : DIGIT symbol{94b}.
+ 
+ { Examples:
+ 
+     a) EGG "abc" = ACCESS A,B (x := 1; y := 2; print (x+y))
+     c) EGG "abc" = MODULE A = DEF PUB REAL x FED
+     d) MODULE B = DEF PUB REAL y FED
+ 
+   The thre examples above would form a compatible collection of
+   packets when taken in conjunction with the particular-program BEGIN
+   NEST "abc" END }
+ 
+ { In rule a above, 'MODSETY' envelops the 'MOD's defined by al the
+   definition-module-packets that are being stuffed along with the
+   stuffing-packet.
+ 
+   In rules c and d, 'MODSETY1' need only envelop the 'MOD's for those
+   modules actually accessed from within that packet.
+ 
+   The semantics related to packets are only defined if, for a
+   collection of packets being stuffed together, all the 'MOD's
+   enveloped by the various 'MODSETY1's are enveloped by 'MODSETY'.  }
+ 
+ { A stuffing packet contains the definition of an actual-hole.  For
+   Algol 68 this consists on an enclosed-clause.  For other values of
+   the metanotion 'LANGUAGE' it is different, and it is expected to be
+   translated somehow to an equivalent Algol 68 definition,
+   conceptually naturally.
+ 
+   A definition module packet contains the definition of an actual-hole
+   which consists in one or more joined module declarations, with the
+   restriction that none of the declared modules shall exist in the
+   static environment at the formal-hole.
+ 
+   A prelude packet contains one or more joined module declarations.  }
+ 
+ 10.7 Compilation systems
+ 
+ { An implementtion of Algol 68 in which packets of a collection are
+   compiled into a collection of object-modules should conform to the
+   provisions of this section.  }
+ 
+ 10.7.1 Syntax
+ 
+ { Note that we use the notion "compilation unit" rather than the
+   original "compilation input" used in the IFIP modules definition.  }
+ 
+ A) *LAYERS :: LAYER ; LAYERS LAYER.
+ 
+ a) compilation unit :
+      MOID NEST new MODSETY LANGUAGE stuffing packet{A6a,b},
+        MOID NEST hole interface{d},
+        joined module interface with MODSETY{b,c} ;
+      NEST new MODSETY1 MODS definition module packet of MODS{A6c},
+        MOID NEST hole interface{d},
+        joined module interface with MODSETY1{b,c},
+        module interface with MODS{d} option ;
+      new LAYER1 new DECS MODSETY STOP particular program{A1g},
+        { void new LAYER1 new DECS STOP hole interface,}
+        unless (DECS) contains (MODULE),
+        joined module interface with MODSETY{b,c} ;
+      new LAYER1 new DECS MODSETY1 MODS STOP
+          prelude packet of MODS{A6d},
+        { void new LAYER1 new DECS STOP hole interface,}
+        unless (DECS) contains (module),
+        joined module interface with MODSETY1{b,c},
+        module interface with MODS{d} option.
+ b) joined module interface with MODS MODSETY{a,b} :
+      module interface with MODS{d},
+        joined module interface with MODSETY{b,c}.
+ c) joined module inteface with EMPTY{a,b} : EMPTY.
+ 
+ { A compilation-unit is either a stuffing packet, a definition module
+   packet, a particular program, or a prelude packet.  The packets
+   shall be accompanied by the required hole and module interface
+   information.  }
+ 
+ { d) Hyper-rules for "MOID NEST hole interface", "module interface
+      with MODS" and "MOID NEST object module".  The terminal
+      productions will most likely be in some cryptic notation
+      understood only by the compiler, i.e. the interface data. }
+ 
+ { The inclusion of the hypernotions "void new LAYER1 new DECS STOP
+   hole interface" within pragmatic remarks in rule a is intended to
+   signify that this information (which describes the standard
+   environment) must clearly be available to the compiler, but that it
+   may well not be provided in the form of an explicit
+   hole-interface. }
diff -Nrcpad gcc-15.2.0/gcc/algol68/lang-specs.h gcc-16.1.0-RC-20260423/gcc/algol68/lang-specs.h
*** gcc-15.2.0/gcc/algol68/lang-specs.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/lang-specs.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,24 ----
+ /* lang-specs.h -- gcc driver specs for Algol 68 frontend.
+    Copyright (C) 2025 Jose E. Marchesi.
+ 
+    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/>.  */
+ 
+ /* This is the contribution to the `default_compilers' array in gcc.cc for the
+    Algol 68 language.  */
+ 
+ {".a68", "@algol68", 0, 1, 0},
+   {"@algol68",
+    "a681 %i %(cc1_options) %{I*} %{L*} %D %{!fsyntax-only:%(invoke_as)}", 0, 1,
+    0},   
diff -Nrcpad gcc-15.2.0/gcc/algol68/lang.opt gcc-16.1.0-RC-20260423/gcc/algol68/lang.opt
*** gcc-15.2.0/gcc/algol68/lang.opt	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/lang.opt	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,147 ----
+ ; Options for the Algol 68 front end.
+ ; Copyright (C) 2025-2026 Free Software Foundation, Inc.
+ ;
+ ; GCC is free software; you can redistribute it and/or modify it under
+ ; the terms of the GNU General Public License as published by 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/>.
+ 
+ ; See the GCC internals manual for a description of this file's format.
+ 
+ ; Please try to keep this file in ASCII collating order.
+ 
+ ; Describes command-line options used by this frontend
+ 
+ Language
+ Algol68
+ 
+ I
+ Algol68 Joined Separate
+ ; Documented in c-family/c.opt
+ 
+ L
+ Algol68 Joined Separate
+ ; Not documented
+ 
+ Wextensions
+ Algol68 Warning Var(warn_algol68_extensions) LangEnabledBy(Algol68, Wextra)
+ Warn for usage of non-portable extensions of Algol 68.
+ 
+ Wvoiding
+ Algol68 Warning Var(warn_algol68_voiding) LangEnabledBy(Algol68, Wextra)
+ Warn when voiding occurs.
+ 
+ Wextra
+ Algol68 Warning
+ ; Documented in common.opt
+ 
+ Wscope
+ Algol68 Warning Var(warn_algol68_scope)
+ Warn for potential name scope violations.
+ 
+ Enum
+ Name(warn_hidden_declarations_level) Type(int) UnknownError(argument %qs to %<-Whidden-declaration%> not recognized)
+ 
+ EnumValue
+ Enum(warn_hidden_declarations_level) String(none) Value(0)
+ 
+ EnumValue
+ Enum(warn_hidden_declarations_level) String(prelude) Value(1)
+ 
+ EnumValue
+ Enum(warn_hidden_declarations_level) String(all) Value(2)
+ 
+ Whidden-declarations
+ Algol68 Alias(Whidden-declarations=,prelude,none)
+ Warn about hidden declarations in inner scopes.
+ 
+ Whidden-declarations=
+ Algol68 Warning Var(warn_algol68_hidden_declarations) Enum(warn_hidden_declarations_level) Joined RejectNegative LangEnabledBy(Algol68,Wall)
+ -Whidden-declarations=[none|prelude|all] Warn about declarations hidden in inner scopes.
+ 
+ fbrackets
+ Algol68 Var(flag_brackets)
+ -fbrackets  	Consider [ .. ] and { .. } as being equivalent to ( .. ).
+ 
+ fassert
+ Algol68 Var(flag_assert)
+ Generate code for assert contracts.
+ 
+ fcheck=
+ Algol68 RejectNegative JoinedOrMissing
+ -fcheck=[...]	Specify which runtime checks are to be performed.
+ 
+ fbuilding-libga68
+ Algol68 Undocumented Var(flag_building_libga68)
+ 
+ fa68-dump-modes
+ Algol68 Var(flag_a68_dump_modes)
+ Dump Algol 68 modes after parsing.
+ 
+ fa68-dump-ast
+ Algol68 Var(flag_a68_dump_ast)
+ Dump Algol 68 parse tree after parsing.
+ 
+ fa68-dump-module-interfaces
+ Algol68 Var(flag_a68_dump_moif)
+ Dump the interfaces of module definitions in the compiled packet.
+ 
+ static-libga68
+ Driver
+ Link the GNU Algol run-time library statically in the compilation.
+ 
+ shared-libga68
+ Driver
+ Link the GNU Algol 68 run-time library dynamically in the compilation.
+ 
+ std=algol68
+ Algol68
+ Compile strict Algol 68 as defined by the Revised Report.
+ 
+ std=gnu68
+ Algol68
+ Accept GNU extensions to Algol 68.
+ 
+ ; Stropping regimes.
+ 
+ fstropping=
+ Algol68 Joined RejectNegative Enum(stropping_regime) Var(flag_stropping_regime)
+ -fstropping=[upper|supper]              Stropping regime to expect in Algol 68 programs.
+ 
+ Enum
+ Name(stropping_regime) Type(int) UnknownError(unknown stropping_regime setting %qs)
+ 
+ EnumValue
+ Enum(stropping_regime) String(upper) Value(0)
+ 
+ EnumValue
+ Enum(stropping_regime) String(supper) Value(1)
+ 
+ ; Module maps
+ 
+ fmodules-map
+ Algol68 Separate RejectNegative
+ -fmodules-map=<mapstring>                 Association between module indicants and files.
+ 
+ fmodules-map=
+ Algol68 Joined RejectNegative
+ -fmodules-map=<mapstring>                 Association between module indicants and files.
+ 
+ fmodules-map-file
+ Algol68 Separate RejectNegative
+ -fmodules-map-file=<filename>              File containing modules map.
+ 
+ fmodules-map-file=
+ Algol68 Joined RejectNegative
+ -fmodules-map-file=<filename>              File containing modules map.
+ 
+ ; This comment is to ensure we retain the blank line above.
diff -Nrcpad gcc-15.2.0/gcc/algol68/lang.opt.urls gcc-16.1.0-RC-20260423/gcc/algol68/lang.opt.urls
*** gcc-15.2.0/gcc/algol68/lang.opt.urls	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/algol68/lang.opt.urls	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,62 ----
+ ; Autogenerated by regenerate-opt-urls.py from gcc/algol68/lang.opt and generated HTML
+ 
+ I
+ UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-I)
+ 
+ L
+ UrlSuffix(gcc/Directory-Options.html#index-L) LangUrlSuffix_D(gdc/Directory-Options.html#index-L) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-L)
+ 
+ Wextensions
+ LangUrlSuffix_Algol68(ga68/Warnings-options.html#index-Wextensions)
+ 
+ Wvoiding
+ LangUrlSuffix_Algol68(ga68/Warnings-options.html#index-Wno-voiding)
+ 
+ Wextra
+ UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wextra)
+ 
+ Wscope
+ LangUrlSuffix_Algol68(ga68/Warnings-options.html#index-Wno-scope)
+ 
+ Whidden-declarations
+ LangUrlSuffix_Algol68(ga68/Warnings-options.html#index-Whidden-declarations)
+ 
+ Whidden-declarations=
+ LangUrlSuffix_Algol68(ga68/Warnings-options.html#index-Whidden-declarations)
+ 
+ fbrackets
+ LangUrlSuffix_Algol68(ga68/Dialect-options.html#index-fbrackets)
+ 
+ fassert
+ LangUrlSuffix_D(gdc/Runtime-Options.html#index-fassert) LangUrlSuffix_Algol68(ga68/Runtime-options.html#index-fassert)
+ 
+ fcheck=
+ LangUrlSuffix_Fortran(gfortran/Code-Gen-Options.html#index-fcheck) LangUrlSuffix_Algol68(ga68/Runtime-options.html#index-fcheck)
+ 
+ fa68-dump-modes
+ LangUrlSuffix_Algol68(ga68/Developer-options.html#index-fa68-dump-modes)
+ 
+ fa68-dump-ast
+ LangUrlSuffix_Algol68(ga68/Developer-options.html#index-fa68-dump-ast)
+ 
+ fa68-dump-module-interfaces
+ LangUrlSuffix_Algol68(ga68/Developer-options.html#index-fa68-dump-module-interfaces)
+ 
+ static-libga68
+ LangUrlSuffix_Algol68(ga68/Linking-options.html#index-static-libga68)
+ 
+ shared-libga68
+ LangUrlSuffix_Algol68(ga68/Linking-options.html#index-shared-libga68)
+ 
+ fmodules-map
+ LangUrlSuffix_Algol68(ga68/Module-search-options.html#index-fmodules-map)
+ 
+ fmodules-map=
+ LangUrlSuffix_Algol68(ga68/Module-search-options.html#index-fmodules-map)
+ 
+ fmodules-map-file
+ LangUrlSuffix_Algol68(ga68/Module-search-options.html#index-fmodules-map-file)
+ 
+ fmodules-map-file=
+ LangUrlSuffix_Algol68(ga68/Module-search-options.html#index-fmodules-map-file)
+ 
diff -Nrcpad gcc-15.2.0/gcc/alias.cc gcc-16.1.0-RC-20260423/gcc/alias.cc
*** gcc-15.2.0/gcc/alias.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/alias.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Alias analysis for GNU C
!    Copyright (C) 1997-2026 Free Software Foundation, Inc.
     Contributed by John Carr (jfc@mit.edu).
  
  This file is part of GCC.
*************** alias_set_subset_of (alias_set_type set1
*** 442,448 ****
       *ptr2 = ...
  
       Additionally if a set contains universal pointer, we consider every pointer
!      to be a subset of it, but we do not represent this explicitely - doing so
       would require us to update transitive closure each time we introduce new
       pointer type.  This makes aliasing_component_refs_p to return true
       on the following testcase:
--- 442,448 ----
       *ptr2 = ...
  
       Additionally if a set contains universal pointer, we consider every pointer
!      to be a subset of it, but we do not represent this explicitly - doing so
       would require us to update transitive closure each time we introduce new
       pointer type.  This makes aliasing_component_refs_p to return true
       on the following testcase:
*************** get_alias_set (tree t)
*** 948,954 ****
    else
      {
        t = TYPE_CANONICAL (t);
!       gcc_checking_assert (!TYPE_STRUCTURAL_EQUALITY_P (t));
      }
  
    /* If this is a type with a known alias set, return it.  */
--- 948,959 ----
    else
      {
        t = TYPE_CANONICAL (t);
!       gcc_checking_assert (TYPE_CANONICAL (t) == t);
!       if (t != TYPE_MAIN_VARIANT (t))
! 	{
! 	  t = TYPE_MAIN_VARIANT (t);
! 	  gcc_checking_assert (TYPE_CANONICAL (t) == t);
! 	}
      }
  
    /* If this is a type with a known alias set, return it.  */
*************** get_alias_set (tree t)
*** 1099,1105 ****
  		p = build_pointer_type (p);
  	      gcc_checking_assert (p == TYPE_MAIN_VARIANT (p));
  	      /* build_pointer_type should always return the canonical type.
! 		 For LTO TYPE_CANOINCAL may be NULL, because we do not compute
  		 them.  Be sure that frontends do not glob canonical types of
  		 pointers in unexpected way and that p == TYPE_CANONICAL (p)
  		 in all other cases.  */
--- 1104,1110 ----
  		p = build_pointer_type (p);
  	      gcc_checking_assert (p == TYPE_MAIN_VARIANT (p));
  	      /* build_pointer_type should always return the canonical type.
! 		 For LTO TYPE_CANONICAL may be NULL, because we do not compute
  		 them.  Be sure that frontends do not glob canonical types of
  		 pointers in unexpected way and that p == TYPE_CANONICAL (p)
  		 in all other cases.  */
*************** memory_modified_in_insn_p (const_rtx mem
*** 3337,3343 ****
      return true;
    memory_modified = false;
    note_stores (as_a<const rtx_insn *> (insn), memory_modified_1,
! 	       CONST_CAST_RTX(mem));
    return memory_modified;
  }
  
--- 3342,3348 ----
      return true;
    memory_modified = false;
    note_stores (as_a<const rtx_insn *> (insn), memory_modified_1,
! 	       const_cast<rtx> (mem));
    return memory_modified;
  }
  
diff -Nrcpad gcc-15.2.0/gcc/alias.h gcc-16.1.0-RC-20260423/gcc/alias.h
*** gcc-15.2.0/gcc/alias.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/alias.h	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Exported functions from alias.cc
!    Copyright (C) 2004-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/align.h gcc-16.1.0-RC-20260423/gcc/align.h
*** gcc-15.2.0/gcc/align.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/align.h	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  /* Alignment-related classes.
!    Copyright (C) 2018-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Alignment-related classes.
!    Copyright (C) 2018-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/alloc-pool.cc gcc-16.1.0-RC-20260423/gcc/alloc-pool.cc
*** gcc-15.2.0/gcc/alloc-pool.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/alloc-pool.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/alloc-pool.h gcc-16.1.0-RC-20260423/gcc/alloc-pool.h
*** gcc-15.2.0/gcc/alloc-pool.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/alloc-pool.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Functions to support a pool of allocatable objects
!    Copyright (C) 1997-2026 Free Software Foundation, Inc.
     Contributed by Daniel Berlin <dan@cgsoftware.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ChangeLog gcc-16.1.0-RC-20260423/gcc/analyzer/ChangeLog
*** gcc-15.2.0/gcc/analyzer/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ChangeLog	Thu Apr 23 11:07:32 2026
***************
*** 1,10 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2025-03-14  Jakub Jelinek  <jakub@redhat.com>
  
--- 1,2350 ----
! 2026-04-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
! 	* engine.cc (impl_region_model_context::on_unexpected_tree_code): Print
! 	"<unknown>" when m_file or m_function is NULL.
  
! 2026-03-12  David Malcolm  <dmalcolm@redhat.com>
  
! 	PR analyzer/124451
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_invert_comparison_in_unaryop): New,
! 	adapted from...
! 	(region_model_manager::maybe_fold_unaryop): ...here, splitting out
! 	the comparison inversion case for TRUTH_NOT_EXPR.  Add a case for
! 	BIT_NOT_EXPR, reusing the inversion logic when dealing with
! 	boolean types.
! 	* region-model-manager.h
! 	(region_model_manager::maybe_invert_comparison_in_unaryop): New decl.
! 
! 2026-03-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124375
! 	* ops.cc (ggoto_edge_op::apply_constraints): Ensure that we write
! 	back a rejected_constraint if the edge is infeasible.
! 	* region-model.cc (region_model::add_constraint): Convert
! 	rejected_op_constraint from tree to const svalue *.
! 	(rejected_op_constraint::dump_to_pp): Likewise.
! 	* region-model.h (class rejected_op_constraint): Likewise.
! 
! 2026-03-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124433
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_binop): When checking for
! 	division by zero, use the value range of the divisor, rather
! 	than merely checking for constant 0.
! 	* region-model.cc (region_model::get_gassign_result): Likewise.
! 
! 2026-03-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR testsuite/112520
! 	* region-model-manager.cc
! 	(region_model_manager::get_field_region): Assert that the args are non-null.
! 
! 2026-02-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124232
! 	* kf.cc (kf_putenv::impl_call_pre): Use base region when marking
! 	pointer as having escaped.
! 
! 2026-02-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124188
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_binop): Don't attempt to fold
! 	X + (-X) to zero for vector types.
! 
! 2026-02-24  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124195
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_binop): Bulletproof against
! 	division by zero by returning "unknown".
! 	* region-model.cc (region_model::get_gassign_result): Bail out for
! 	division by zero.
! 	* svalue.cc (svalue::maybe_get_value_range): Rename to...
! 	(svalue::maybe_get_value_range_1): ...this.
! 	(constant_svalue::maybe_get_value_range): Rename to...
! 	(constant_svalue::maybe_get_value_range_1): ...this.
! 	(unknown_svalue::maybe_get_value_range): Rename to...
! 	(unknown_svalue::maybe_get_value_range_1): ...this.
! 	(unaryop_svalue::maybe_get_value_range): Rename to...
! 	(unaryop_svalue::maybe_get_value_range_1): ...this.
! 	(binop_svalue::maybe_get_value_range): Rename to...
! 	(binop_svalue::maybe_get_value_range_1): ...this.
! 	* svalue.h (svalue::maybe_get_value_range): Reimplement inline,
! 	asserting that if we get a result it is not undefined_p.  Use
! 	maybe_get_value_range_1 for the vfunc.
! 	(svalue::maybe_get_value_range_1): Rename from above.
! 	(constant_svalue::maybe_get_value_range): Rename to...
! 	(constant_svalue::maybe_get_value_range_1): ...this.
! 	(unknown_svalue::maybe_get_value_range): Rename to...
! 	(unknown_svalue::maybe_get_value_range_1): ...this.
! 	(unaryop_svalue::maybe_get_value_range): Rename to...
! 	(unaryop_svalue::maybe_get_value_range_1): ...this.
! 	(binop_svalue::maybe_get_value_range): Rename to...
! 	(binop_svalue::maybe_get_value_range_1): ...this.
! 
! 2026-02-17  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124104
! 	* svalue.cc (unaryop_svalue::maybe_get_value_range): Bail out for
! 	incompatible types.
! 
! 2026-02-17  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124139
! 	* engine.cc (exploded_node::on_throw): Bail out if we can't get
! 	the fndecl for the call.
! 
! 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/117369
! 	* kf.cc (kf_sprintf::impl_call_pre): Use the capacity of the
! 	region when "faking" a write to the destination buffer, to
! 	avoid buffer overflow false +ves.
! 
! 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124073
! 	* region-model.cc (region_model::push_frame): Bulletproof against
! 	DECL_RESULT having null SSA on function missing a return
! 	statement (-Wreturn-type).
! 
! 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/124055
! 	* kf.cc (kf_strcpy::impl_call_pre): Ensure bytes_to_copy is
! 	initialized.  Assert that it was written to with non-null if
! 	check_for_null_terminated_string_arg returns non-null.
! 	* region-model.cc (region_model::scan_for_null_terminator):
! 	Initialize *out_sval, and assert it is written to when
! 	returning non-null.
! 	(region_model::check_for_null_terminated_string_arg): Assert
! 	that scan_for_null_terminator wrote to *out_sval if it
! 	returns non-null.
! 
! 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123973
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_binop): Fold X + (Y - X) to Y.
! 
! 2026-02-10  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/113496
! 	* constraint-manager.cc (cmp_types): New.
! 	(bounded_range::cmp): Compare the types of the constants, as well
! 	as their values.
! 
! 2026-02-09  Federico Angelilli  <code@fedang.net>
! 	    David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123981
! 	* sm-malloc.cc: Include "target.h".
! 	(zero_address_valid_p): New.
! 	(malloc_state_machine::on_stmt): Guard possible_null_deref and
! 	null_deref with !zero_address_valid_p.
! 
! 2026-02-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/116228
! 	* kf-lang-cp.cc (kf_operator_new::impl_call_post): Don't try to
! 	add a constraint if the return value is discarded.
! 
! 2026-02-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/98447
! 	* common.h: Include "value-range.h".
! 	* region-model.cc: Include "value-relation.h" and "range-op.h".
! 	(region_model::eval_condition): Try using range_op to see if we
! 	can get a known boolean from the value_ranges of the operands.
! 	* svalue.cc: Include "value-relation.h" and "range-op.h".
! 	(type_can_have_value_range_p): New.
! 	(svalue::maybe_get_value_range): New.
! 	(constant_svalue::maybe_get_value_range): New.
! 	(unknown_svalue::maybe_get_value_range): New.
! 	(unaryop_svalue::maybe_get_value_range): New.
! 	(binop_svalue::maybe_get_value_range): New.
! 	* svalue.h (svalue::maybe_get_value_range): New vfunc decl.
! 	(constant_svalue::maybe_get_value_range): New decl.
! 	(unknown_svalue::maybe_get_value_range): New decl.
! 	(unaryop_svalue::maybe_get_value_range): New decl.
! 	(binop_svalue::maybe_get_value_range): New decl.
! 
! 2026-02-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/117491
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_repeated_svalue): Don't ICE when
! 	inner_svalue has null type.
! 
! 2026-02-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/116865
! 	* region-model-manager.cc
! 	(region_model_manager::get_offset_region): Use POINTER_PLUS_EXPR
! 	rather than PLUS_EXPR for pointer offsets.
! 
! 2026-01-31  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123880
! 	* engine.cc (throw_custom_edge::update_model): Gracefully handle
! 	not knowing the current exception in a rethrow.
! 	(exploded_node::on_throw): Likewise.
! 
! 2026-01-27  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/122623
! 	* analyzer.opt (fanalyzer-assume-nothrow): New.
! 	* analyzer.opt.urls: Regenerate.
! 	* region-model.cc (can_throw_p): Bail out if the user specified
! 	-fanalyzer-assume-nothrow.
! 
! 2026-01-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123145
! 	* program-state.cc (sm_state_map::impl_set_state): Update
! 	iteration to avoid looking up binding_key values.
! 	* region-model-reachability.cc (reachable_regions::handle_sval):
! 	Use iter.get_svalue.
! 	(reachable_regions::handle_parm): Likewise.
! 	* region-model.cc (iterable_cluster::iterable_cluster): Update
! 	iteration to avoid looking up binding_key values.
! 	(iterable_cluster::dump_to_pp): Likewise.
! 	(exposure_through_uninit_copy::calc_num_uninit_bits): Likewise.
! 	(exposure_through_uninit_copy::complain_about_uninit_ranges):
! 	Likewise.
! 	(contains_uninit_p): Likewise.
! 	* store.cc (binding_map::hash): Likewise.
! 	* store.h (bit_range::hash): New, based on...
! 	(concrete_binding::hash): ...this.  Reimplement using the above.
! 	(binding_map::const_iterator::get_svalue): New decl.
! 	(binding_map::get_symbolic_bindings): New accessor.
! 	(binding_map::for_each_value): Update iteration to avoid looking
! 	up binding_key values.
! 
! 2026-01-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* store.cc (binding_cluster::validate): Reimplement as...
! 	(binding_map::validate): ...this new function, using
! 	m_concrete and m_symbolic sizes rather than iterating through
! 	map and counting.  Verify that concrete keys do not overlap.
! 	(binding_cluster::can_merge_p): Reject cases that would lead to
! 	overlapping concrete clusters.
! 	* store.h (binding_cluster::validate): New decl.
! 	(binding_map::get_concrete_bindings): New accessor.
! 
! 2026-01-21  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* store.cc (store::eval_alias): Different decls don't alias.
! 
! 2026-01-20  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc (cfg_edge_event::maybe_get_edge_sense): New.
! 	* checker-event.h (cfg_edge_event::maybe_get_edge_sense): New decl.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::consolidate_conditions): Use the above to
! 	ensure that edge_sense is initialized if used, and to simplify
! 	the check for a run of conditions.
! 
! 2026-01-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (exploded_graph::process_worklist): Remove guard on
! 	limit being non-zero when checking for -Wanalyzer-too-complex
! 	on overall number of exploded nodes.  Allow for the origin enode.
! 
! 2026-01-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123145
! 	* supergraph-fixup-locations.cc: Include "timevar.h".
! 	(supergraph::fixup_locations): Track time spent as
! 	TV_ANALYZER_SUPERGRAPH_FIXUP_LOCATIONS.
! 	* supergraph-simplify.cc: Include "timevar.h".
! 	(supergraph::simplify): Track time spent as
! 	TV_ANALYZER_SUPERGRAPH_SIMPLIFY.
! 	* supergraph-sorting.cc: Include "timevar.h".
! 	(supergraph::sort_nodes): Track time spent as
! 	TV_ANALYZER_SUPERGRAPH_SORTING.
! 	* supergraph.cc (supergraph::supergraph): Track time spent as
! 	TV_ANALYZER_SUPERGRAPH_CREATION rather than
! 	TV_ANALYZER_SUPERGRAPH.
! 
! 2026-01-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123540
! 	* ops.cc (eh_dispatch_edge_op::make): Drop dst_snode param to
! 	ctor.
! 	(eh_dispatch_edge_op::eh_dispatch_edge_op): Likewise, dropping
! 	field eh_dispatch_edge_op::m_dst_snode.
! 	(eh_dispatch_try_edge_op::eh_dispatch_try_edge_op): Likewise.
! 	(eh_dispatch_allowed_edge_op::eh_dispatch_allowed_edge_op):
! 	Likewise.
! 	* ops.h (eh_dispatch_edge_op::eh_dispatch_edge_op): Likewise.
! 	(eh_dispatch_edge_op::m_dst_snode): Drop unused field.
! 	(eh_dispatch_try_edge_op::eh_dispatch_try_edge_op): Drop unused
! 	dst_snode param.
! 
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* common.h (struct on_frame_popped): New.
! 	(subscriber::on_message): New vfunc for on_frame_popped.
! 	* region-model.cc: Include "context.h" and "channels.h".
! 	(region_model::pop_frame_callbacks): Delete.
! 	(region_model::pop_frame): Port from notify_on_pop_frame to
! 	using pub/sub channel.
! 	* region-model.h (pop_frame_callback): Delete typedef.
! 	(region_model::register_pop_frame_callback): Delete.
! 	(region_model::pop_frame_callbacks): Delete.
! 
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer-language.cc: Include "context.h" and "channels.h".
! 	(finish_translation_unit_callbacks): Delete.
! 	(register_finish_translation_unit_callback): Delete.
! 	(run_callbacks): Delete.
! 	(on_finish_translation_unit): Port from run_callbacks to pub/sub.
! 	* analyzer-language.h (finish_translation_unit_callback): Delete
! 	typedef.
! 	(register_finish_translation_unit_callback): Delete decl.
! 	* common.h (class translation_unit): New forward decl.
! 	(struct analyzer_events::on_tu_finished): New.
! 	(analyzer_events::subscriber::on_message): Add vfunc for
! 	on_tu_finished messages.
! 
! 2026-01-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* common.h: Define INCLUDE_LIST.
! 	(class plugin_analyzer_init_iface): Replace with...
! 	(gcc::topics::analyzer_events::on_ana_init): ...this.
! 	(gcc::topics::analyzer_events::subscriber): New.
! 	* engine.cc: Include "context.h" and "channels.h".
! 	(class plugin_analyzer_init_impl): Replace with...
! 	(class impl_on_ana_init): ...this.  Fix some overlong lines.
! 	(impl_run_checkers): Port from PLUGIN_ANALYZER_INIT to using
! 	publish/subscribe framework.
! 
! 2025-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123136
! 	* engine.cc
! 	(strongly_connected_components::strongly_connected_components):
! 	Consistently use size_t.
! 	(strongly_connected_components::dump): Likewise.
! 	(strongly_connected_components::to_json): Likewise.
! 	(exploded_graph::print_bar_charts): Likewise.
! 	(exploded_path::feasible_p): Remove unused locals.
! 	(exploded_graph_annotator::exploded_graph_annotator): Use size_t
! 	for iterator var.
! 	(impl_run_checkers): Drop logger param of engine ctor.
! 	* ops.cc (phis_for_edge_op::maybe_make): Drop unused param of
! 	phis_for_edge_op ctor.
! 	(phis_for_edge_op::phis_for_edge_op): Likewise.
! 	* ops.h (operation::~operation): Make virtual.
! 	(control_flow_op::dyn_cast_control_flow_op): Add "final override".
! 	(phis_for_edge_op::phis_for_edge_op): Drop unused param.
! 	(phis_for_edge_op::m_cfg_in_edge): Drop unused field.
! 	* region-model.cc (engine::engine): Drop unused "logger" param.
! 	* region-model.h (engine::engine): Likewise.
! 	* supergraph-fixup-locations.cc (location_fixer::location_fixer):
! 	Drop m_sg field.
! 	(location_fixer::m_sg): Drop unused field.
! 	(location_fixer::m_purge_map): Drop unused field.
! 	* supergraph-sorting.cc (class sorting_worklist): Drop unused
! 	m_worklist field.
! 
! 2025-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* supergraph.cc (supernode::dump_dot): Escape filename.
! 
! 2025-12-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/122003
! 	* checker-event.cc (return_event::get_program_state): New.
! 	* checker-event.h (return_event::get_program_state): New decl.
! 
! 2025-12-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/123085
! 	* region-model.cc (region_model::scan_for_null_terminator_1): Use
! 	byte offset when accessing string constant.
! 
! 2025-12-15  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/122975
! 	* region-model-manager.cc (region_model_manager::maybe_fold_binop): Fold
! 	X + (-X) to zero.
! 
! 2025-12-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.opt.urls: Regenerate.
! 
! 2025-12-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/122003
! 	* analyzer-logging.h (class log_nesting_level): New.
! 	(log_nesting_level::log_nesting_level): New.
! 	(log_nesting_level::~log_nesting_level): New.
! 	* analyzer.cc (is_cxa_end_catch_p): New.
! 	* analyzer.opt (fdump-analyzer-callgraph): Make this as a no-op
! 	preserved for backwards compatibility.
! 	(fanalyzer-fine-grained): Likewise.
! 	(fanalyzer-simplify-supergraph): New.
! 	* bounds-checking.cc (strip_types): Update for changes to
! 	widening_svalue.
! 	* call-details.h: Include "pending-diagnostic.h".
! 	* call-info.cc (custom_edge_info::get_dot_attrs): New.
! 	(call_info::add_events_to_path): Add pending_diagnostic & param.
! 	Fix indentation.
! 	* call-info.h (call_info::add_events_to_path): Add
! 	pending_diagnostic & param.
! 	* call-string.cc (call_string::element_t::operator==): Reimplement.
! 	(call_string::element_t::cmp): New.
! 	(call_string::element_t::get_caller_function): Likewise.
! 	(call_string::element_t::get_callee_function): Likewise.
! 	(call_string::element_t::get_call_snode_in_caller): New.
! 	(call_string::element_t::get_return_snode_in_caller): New.
! 	(call_string::element_t::get_call_stmt): New.
! 	(call_string::print): Update for new implementation.
! 	(call_string::to_json): Likewise.
! 	(call_string::push_call): Likewise.
! 	(call_string::count_occurrences_of_function): Likewise.
! 	(call_string::cmp): Likewise.
! 	(call_string::get_callee_node): Delete.
! 	(call_string::get_caller_node): Convert into...
! 	(call_string::get_return_node_in_caller): ...this new function.
! 	(call_string::validate): Update for new implementation.
! 	(call_string::recursive_log): Likewise.
! 	* call-string.h (class call_superedge): Delete forward decl.
! 	(class return_superedge): Likewise.
! 	(class call_and_return_op): New forward decl.
! 	(struct call_string::element_t): Reimplement using
! 	call_and_return_op, rather than relying on interprocedural edges
! 	in the supergraph.
! 	(class call_string): Likewise.
! 	* call-summary.cc (call_summary::get_fndecl): Reimplement.
! 	(call_summary_replay::convert_svalue_from_summary_1): Update for
! 	changes to widening_svalue.
! 	* checker-event.cc (event_kind_to_string): Update for renamings
! 	of event_kind::{call_edge -> call_} and
! 	event_kind::{return_edge -> return_}.
! 	(region_creation_event_debug::print_desc): Update for change to
! 	event_loc_info.
! 	(state_change_event::state_change_event): Pass in event_loc_info
! 	rather than stack_depth, and pass it to checker_event ctor.
! 	(superedge_event::get_callgraph_superedge): Delete.
! 	(superedge_event::should_filter_p): Reimplement in terms of
! 	get_any_cfg_edge.
! 	(superedge_event::get_call_and_return_op): New.
! 	(superedge_event::superedge_event): Drop m_eedge and
! 	m_critical_state.  Add assertion that the superedge is non-null.
! 	(cfg_edge_event::get_cfg_superedge): Delete.
! 	(cfg_edge_event::cfg_edge_event): Add "op" param, and remove
! 	assertion refering to kinds of superedge.
! 	(cfg_edge_event::get_meaning): Reimplement without
! 	cfg_superedge.
! 	(cfg_edge_event::get_cfg_edge): New.
! 	(start_cfg_edge_event::print_desc): Use m_op.  Update for renaming
! 	of superedge::m_index to superedge::m_id.
! 	(start_cfg_edge_event::maybe_describe_condition): Reimplement in
! 	ops.cc as gcond_edge_op::maybe_describe_condition.
! 	(start_cfg_edge_event::should_print_expr_p): Reimplement in ops.cc
! 	as gcond_edge_op::should_print_expr_p.
! 	(call_event::call_event): Update for renaming of event_kind.  Drop
! 	assertion about superedge kind.
! 	(call_event::print_desc): Update for consolidation of m_var and
! 	m_critical_state into a struct.
! 	(return_event::return_event): Inherit directly from checker_event.
! 	Drop assertion referring to kinds of superedge.  Initialize m_edge
! 	and m_call_and_return_op.
! 	(return_event::print_desc): Update for change to m_critical_state.
! 	* checker-event.h (enum class event_kind): Rename call_edge to
! 	call_, and return_edge to return_.
! 	(state_change_event::state_change_event): Update for changes to
! 	location-handling in base class ctor.
! 	(state_change_event::record_critical_state): Drop this, moving
! 	it to special-cases in the subclasses that need it.
! 	(state_change_event::get_callgraph_superedge): Delete.
! 	(superedge_event::get_call_and_return_op): New vfunc decl.
! 	(superedge_event::m_var, superedge_event::m_critical_state): Drop
! 	these fields from this class, combining them into a new struct
! 	and moving the fields to the interprocedural event subclasses
! 	where they make sense.
! 	(cfg_edge_event::get_cfg_superedge): Delete.
! 	(cfg_edge_event::get_cfg_edge): Add.
! 	(cfg_edge_event::cfg_edge_event): Update for changes to location
! 	handling in base class ctor.  Add "op".
! 	(cfg_edge_event::m_op): New field.
! 	(start_cfg_edge_event::start_cfg_edge_event): Update for changes
! 	to base class ctor.
! 	(start_cfg_edge_event::maybe_describe_condition): Drop.
! 	(end_cfg_edge_event::end_cfg_edge_event): Update for changes to
! 	base class ctor.
! 	(catch_cfg_edge_event::catch_cfg_edge_event): Likewise.
! 	(struct critical_state): New struct.
! 	(call_event::record_critical_state): New decl.
! 	(call_event::m_critical_state): New field.
! 	(class return_event): Inherit from checker_event, rather than
! 	superedge_event.
! 	(return_event::get_call_and_return_op): New.
! 	(return_event::record_critical_state): New.
! 	(return_event::m_call_and_return_op): New field.
! 	(return_event::m_critical_state): New field.
! 	* common.h: Define INCLUDE_SET.
! 	(class cfg_superedge): Drop forward decl.
! 	(class switch_cfg_superedge): Likewise.
! 	(class eh_dispatch_cfg_superedge): Likewise.
! 	(class eh_dispatch_try_cfg_superedge): Likewise.
! 	(class eh_dispatch_allowed_cfg_superedge): Likewise.
! 	(class callgraph_superedge): Likewise.
! 	(class call_superedge): Likewise.
! 	(class return_superedge): Likewise.
! 	(class stmt_finder): Likewise.
! 	(class function_point): Likewise.
! 	(class feasibility_state): New forward decl.
! 	(class uncertainty_t): Likewise.
! 	(useful_location_p): New.
! 	(known_function::check_any_preconditions): New.
! 	(custom_edge_info::get_dot_attrs): New decl.
! 	(custom_edge_info::add_events_to_path): Add param
! 	"pending_diagnostic &pd".
! 	(is_cxa_end_catch_p): New decl.
! 	* constraint-manager.cc
! 	(bounded_ranges_manager::get_or_create_ranges_for_switch): Delete.
! 	(bounded_ranges_manager::create_ranges_for_switch): Delete.
! 	* constraint-manager.h
! 	(bounded_ranges_manager::get_or_create_ranges_for_switch): Delete
! 	decl.
! 	(bounded_ranges_manager::create_ranges_for_switch): Likewise.
! 	(bounded_ranges_manager::make_case_label_ranges): Make public for
! 	use by ops code.
! 	(bounded_ranges_manager::edge_cache_t): Delete.
! 	(bounded_ranges_manager::m_edge_cache): Delete.
! 	* diagnostic-manager.cc (pending_location::pending_location): New
! 	ctor implementations.
! 	(pending_location::to_json): New.
! 	(epath_finder::get_best_epath): Rename param to "target_enode".
! 	Drop param "target_stmt".  Update for renaming of
! 	supernode::m_index to m_id.
! 	(epath_finder::explore_feasible_paths): Drop param "target_stmt".
! 	(process_worklist_item): Likewise.
! 	(saved_diagnostic::saved_diagnostic): Pass in param "ploc" by
! 	rvalue reference and store it in m_ploc.  Drop m_stmt_finder and
! 	other fields made redundant by m_ploc.
! 	(saved_diagnostic::get_supernode): New.
! 	(saved_diagnostic::operator==): Update for changes to
! 	location-tracking.
! 	(saved_diagnostic::to_json): Update.
! 	(saved_diagnostic::dump_as_dot_node): Drop m_stmt.
! 	(saved_diagnostic::calc_best_epath): Update for change to
! 	location-tracking.
! 	(saved_diagnostic::supercedes_p): Likewise.
! 	(saved_diagnostic::maybe_add_sarif_properties): Likewise.
! 	(get_emission_location): Delete.
! 	(diagnostic_manager::add_diagnostic): Pass "ploc" by rvalue
! 	reference, moving it to the saved_diagnostic.  Update early
! 	rejection check, and call fixup_location before-hand.
! 	(class dedupe_key): Drop m_stmt field, and update for changes
! 	to saved_diagnostic.
! 	(dedupe_winners::add): Call get_best_epath here, and call
! 	fixer_for_epath on it.
! 	(diagnostic_manager::emit_saved_diagnostics): Update for
! 	changes to saved_diagnostic and supernode.
! 	(diagnostic_manager::emit_saved_diagnostic): Likewise.
! 	Use the pending_location from the saved_diagnostic for the
! 	location of the final event, and for the primary location of the
! 	diagnostic itself.
! 	(diagnostic_manager::build_emission_path): Use useful_location_p.
! 	(state_change_event_creator::on_global_state_change): Update for
! 	changes to location-tracking.
! 	(state_change_event_creator::on_state_change): Likewise.
! 	(struct null_assignment_sm_context): Reimplement within ops.cc.
! 	(diagnostic_manager::add_events_for_eedge): Reimplement.
! 	(diagnostic_manager::add_events_for_superedge): Delete in favor of
! 	control_flow_op::add_any_events_for_eedge.
! 	(diagnostic_manager::prune_for_sm_diagnostic): Update call/return
! 	for event_kind renamings, and to use call_and_return_op rathern
! 	than callgraph_superedge.
! 	(diagnostic_manager::consolidate_conditions): Port from
! 	cfg_superedge to get_cfg_edge.
! 	* diagnostic-manager.h: Include "analyzer/supergraph.h" and
! 	"analyzer/event-loc-info.h".
! 	(struct pending_location): Move decl earlier in file.  Replace
! 	the existing specified ctors with 3 new ones.  Add comments.
! 	(class pending_location::fixer_for_epath): New.
! 	(pending_location::get_location): New.
! 	(pending_location::to_json): New decl.
! 	(pending_location::m_snode): Drop redundant field.
! 	(pending_location::m_event_loc_info): New field, replacing m_stmt
! 	and m_loc.
! 	(pending_location::m_finder): Replace with...
! 	(pending_location::m_fixer_for_epath): ...this new field.
! 	(make_ploc_fixer_for_epath_for_leak_diagnostic): New decl.
! 	(saved_diagnostic::saved_diagnostic): Pass in param "ploc" by
! 	rvalue reference and store it in m_ploc.
! 	(saved_diagnostic::get_supernode): New.
! 	(saved_diagnostic::m_ploc): New field, replacing m_enode,
! 	m_snode, m_stmt, m_stmt_finder, and m_loc.
! 	(diagnostic_manager::add_diagnostic): Pass ploc as rvalue
! 	reference.
! 	(diagnostic_manager::add_events_for_superedge): Delete decl.
! 	* engine.cc: Include "gimple-predict.h" and
! 	"analyzer/impl-sm-context.h".
! 	(impl_region_model_context::impl_region_model_context): Drop
! 	stmt_finder.
! 	(impl_region_model_context::warn): Convert to...
! 	(impl_region_model_context::warn_at): ...this.
! 	(class impl_sm_context): Move to impl-sm-context.h.
! 	(impl_region_model_context::get_state_map_by_name): Drop
! 	m_stmt_finder.
! 	(class leak_stmt_finder): Reimplement as...
! 	(class leak_ploc_fixer_for_epath): ...this.
! 	(make_ploc_fixer_for_epath_for_leak_diagnostic): New.
! 	(returning_from_function_p): Update for supergraph changes.
! 	(impl_region_model_context::on_state_leak): Port from
! 	leak_stmt_finder to leak_ploc_fixer_for_epath.
! 	(impl_region_model_context::on_condition): Update for
! 	location-handling changes.
! 	(impl_region_model_context::on_bounded_ranges): Likewise.
! 	(impl_region_model_context::on_phi): Likewise.
! 	(impl_region_model_context::get_pending_location_for_diag): New.
! 	(exploded_node::status_to_str): Add status::special.
! 	(exploded_node::get_processed_stmt): Delete.
! 	(exploded_node::dump_dot): Elide state if we have a single
! 	predecessor  and the state hasn't changed.
! 	(exploded_node::dump_processed_stmts): Delete.
! 	(exploded_node::on_stmt): Delete, reimplementing in ops.cc as
! 	gimple_stmt_op::execute_on_state, call_and_return_op::execute, and
! 	operation::handle_on_stmt_for_state_machines.
! 	(exploded_node::on_stmt_pre): Delete, reimplementing in ops.cc as
! 	call_and_return_op::make.
! 	(exploded_node::on_stmt_post): Delete.
! 	(class call_summary_edge_info): Move to ops.cc.
! 	(exploded_node::replay_call_summaries): Delete.
! 	(exploded_node::replay_call_summary): Delete.
! 	(exploded_node::on_edge): Delete.
! 	(exploded_node::on_longjmp): Eliminate ambiguous "setjmp_point"
! 	and "next_point" in favor of "point_before_setjmp" and
! 	"point_after_setjmp".
! 	(exploded_graph::unwind_from_exception): Update for changes to
! 	program_point.
! 	(exploded_node::on_throw): Convert "after_throw_point" to a param.
! 	(exploded_node::on_resx): Delete.
! 	(exploded_node::detect_leaks): Update for renaming of
! 	supernode::return_p to supernode::exit_p, and drop stmt param of
! 	impl_region_model_context ctor.
! 	(dynamic_call_info_t::update_model): Delete.
! 	(dynamic_call_info_t::add_events_to_path): Delete.
! 	(interprocedural_call::print): New.
! 	(interprocedural_call::get_dot_attrs): New.
! 	(interprocedural_call::update_state): New.
! 	(interprocedural_call::update_model): New.
! 	(interprocedural_call::add_events_to_path): New.
! 	(interprocedural_return::print): New.
! 	(interprocedural_return::get_dot_attrs): New.
! 	(interprocedural_return::update_state): New.
! 	(interprocedural_return::update_model): New.
! 	(interprocedural_return::add_events_to_path): New.
! 	(rewind_info_t::add_events_to_path): Add pending_diagnostic &
! 	param.
! 	(exploded_edge::dump_dot_label): Drop superedge kinds.  Show
! 	op vs no-op.  Flush before printing any superedge label, and
! 	escape that label.
! 	(exploded_edge::maybe_get_stmt): New.
! 	(exploded_edge::maybe_get_op): New.
! 	(stats::stats): Update for change to m_num_nodes;
! 	(stats::log): Likewise.
! 	(stats::dump): Likewise.
! 	(stats::get_total_enodes): Likewise.
! 	(strongly_connected_components::strongly_connected_components):
! 	Update for changes to supergraph.
! 	(strongly_connected_components::dump): Show the stack.  Update for
! 	changes to supernode.
! 	(strongly_connected_components::to_json): Update for changes to
! 	supergraph.
! 	(strongly_connected_components::strong_connect): Rename "index" to
! 	"id".  Drop superedge kinds.
! 	(worklist::key_t::cmp): Compare BB indexes before snode ids.
! 	Drop function_point.
! 	(exploded_graph::exploded_graph): Update stats initialization.
! 	(tainted_args_function_info::update_model): Reimplement.
! 	(tainted_args_function_info::add_events_to_path): Add param.
! 	(exploded_graph::get_or_create_node): Check for recursion limit
! 	here, rather than in program_point::on_edge and
! 	exploded_graph::maybe_create_dynamic_call.  Only merge state
! 	for points with state_merge_at_p.  Update stats tracking for
! 	changes to supergraph.  Fix wording of log of state.
! 	(exploded_graph::get_or_create_per_call_string_data): Update for
! 	supergraph changes.
! 	(tainted_args_call_info::update_model): Reimplement.
! 	(tainted_args_call_info::add_events_to_path): Add param.
! 	(exploded_graph::process_worklist): Drop assertions that nodes
! 	have no successors, due to some cases during unwinding exceptions.
! 	Update call to maybe_process_run_of_before_supernode_enodes to
! 	call to maybe_process_run_of_enodes, and only at points for
! 	which state_merge_at_p.  Reimplement "too complex" check.
! 	(exploded_graph::maybe_process_run_of_before_supernode_enodes):
! 	Convert to...
! 	(exploded_graph::maybe_process_run_of_enodes): ...this.  Only
! 	consider nodes with a single successor in the supergraph and for
! 	which that superedge supports_bulk_merge_p.  Port state updates to
! 	using operation::update_state_for_bulk_merger.
! 	(stmt_requires_new_enode_p): Delete.
! 	(state_change_requires_new_enode_p): Delete.
! 	(exploded_graph::maybe_create_dynamic_call): Delete.
! 	(class impl_path_context): Reimplement in ops.cc.
! 	(class jump_through_null): Move to region-model.cc.
! 	(exploded_graph::process_node): Use location_t from supernode,
! 	rather than trying to have a stmt associated with a supernode.
! 	Drop switch on program_point kind, instead using the operation, if any,
! 	from the superedge.
! 	(exploded_graph::get_or_create_function_stats): Update computation
! 	of num_supernodes for the function.
! 	(exploded_graph::print_bar_charts): Update for supergraph changes.
! 	(exploded_graph::dump_stats): Likewise.
! 	(exploded_graph::dump_states_for_supernode): Delete.
! 	(exploded_graph::to_json): Update comment.
! 	(exploded_path::find_stmt_backwards): Update for supergraph
! 	reimplementation.
! 	(exploded_path::feasible_p): Drop "last_stmt".
! 	(feasibility_state::maybe_update_for_edge): Move most of
! 	implementation to ops and custom_edge_infos.
! 	(feasibility_state::update_for_stmt): Delete.
! 	(supernode_cluster::dump_dot): Update for supernode changes.
! 	(supernode_cluster::cmp_ptr_ptr): Likewise.
! 	(exploded_graph::dump_exploded_nodes): Update for
! 	location-handling changes, and for changes to supergraph
! 	representation.
! 	(class viz_callgraph_node): Delete
! 	(class viz_callgraph_edge): Delete.
! 	(class viz_callgraph): Delete.
! 	(class viz_callgraph_cluster): Delete.
! 	(struct viz_callgraph_traits): Delete.
! 	(dump_callgraph): Delete.
! 	(exploded_graph_annotator::exploded_graph_annotator): Update for
! 	supernode::m_index becoming supernode:m_id.
! 	(exploded_graph_annotator::add_node_annotations): Reimplement to
! 	show enodes within the node for the supernode.
! 	(exploded_graph_annotator::print_enode_port): New.
! 	(exploded_graph_annotator::print_enode): Add port.
! 	(exploded_graph_annotator::print_saved_diagnostic): Drop stmt.
! 	(exploded_graph_annotator::m_enodes_per_snodes): Convert to...
! 	(exploded_graph_annotator::m_enodes_per_snode_id): ...this, using
! 	std::vector.
! 	(maybe_dump_supergraph): New.
! 	(impl_run_checkers): Create region_model_manager before supergraph
! 	and pass it to supergraph ctor.  Dump the original form of the
! 	supergraph, then call fixup_locations, simplify, and sort_nodes on
! 	the supergraph, dumping it at each stage.  Drop dump_callgraph.
! 	Replace dump to "NAME.supergraph-eg.dot" with dump to
! 	"NAME.supergraph.N.eg.dot".
! 	* event-loc-info.h (event_loc_info::event_loc_info): Add ctors taking
! 	const exploded_node * and const program_point &.
! 	* exploded-graph.h: Add include of "analyzer/region-model.h".
! 	(impl_region_model_context::impl_region_model_context): Add default
! 	for "stmt" param. Drop "stmt_finder" param.
! 	(impl_region_model_context::warn): Convert to...
! 	(impl_region_model_context::warn_at): ...this.
! 	(impl_region_model_context::get_pending_location_for_diag): New.
! 	(impl_region_model_context::m_stmt_finder): Drop.
! 	(struct exploded_node::on_stmt_flags): Drop.
! 	(exploded_node::on_stmt): Drop.
! 	(exploded_node::on_stmt_pre): Drop.
! 	(exploded_node::on_stmt_post): Drop.
! 	(exploded_node::replay_call_summaries): Drop.
! 	(exploded_node::replay_call_summary): Drop.
! 	(exploded_node::on_edge): Drop.
! 	(exploded_node::on_throw): Add "after_throw_point" param.
! 	(exploded_node::on_resx): Drop.
! 	(exploded_node::get_location): New.
! 	(exploded_node::get_stmt): Drop.
! 	(exploded_node::get_processed_stmt): Drop.
! 	(exploded_node::maybe_get_stmt): New decl.
! 	(exploded_node::maybe_get_op): New decl.
! 	(class dynamic_call_info_t): Delete.
! 	(class interprocedural_call): New.
! 	(class interprocedural_return): New.
! 	(rewind_info_t::add_events_to_path): Add pending_diagnostic &
! 	param.
! 	(rewind_info_t::get_setjmp_point): Replace with...
! 	(rewind_info_t::get_point_before_setjmp): ...this...
! 	(rewind_info_t::get_point_after_setjmp): ...and this.
! 	(stats::m_num_nodes): Convert from an array to a plain int.
! 	(class strongly_connected_components): Convert from index to id
! 	throughout.
! 	(exploded_graph::maybe_process_run_of_before_supernode_enodes):
! 	Replace with...
! 	(exploded_graph::maybe_process_run_of_enodes): ...this.
! 	(exploded_graph::maybe_create_dynamic_call): Delete.
! 	(exploded_graph::save_diagnostic): Drop stmt_finder param.
! 	(exploded_graph::dump_states_for_supernode): Drop.
! 	(exploded_graph::m_PK_AFTER_SUPERNODE_per_snode): Drop.
! 	(class feasibility_problem): Drop "m_last_stmt".
! 	(feasibility_state::update_for_stmt): Drop.
! 	(feasibility_state::get_model): Add non-const accessor.
! 	(feasibility_state::get_snodes_visited): New accessor.
! 	(class stmt_finder): Drop.
! 	* feasible-graph.cc (feasible_node::dump_dot): Drop call to
! 	dump_processed_stmts.
! 	(feasible_node::get_state_at_stmt): Drop.
! 	* impl-sm-context.h: New file, adapted from material in engine.cc.
! 	* infinite-loop.cc
! 	(perpetual_start_cfg_edge_event::perpetual_start_cfg_edge_event):
! 	Add "op" param.
! 	(perpetual_start_cfg_edge_event::print_desc): Use m_op to describe
! 	condition.
! 	(looping_back_event::looping_back_event): Add "op" param.
! 	(infinite_loop_diagnostic::maybe_add_custom_events_for_superedge):
! 	Convert to...
! 	(infinite_loop_diagnostic::maybe_add_custom_events_for_eedge):
! 	...this.
! 	(infinite_loop_diagnostic::add_final_event): Port from
! 	cfg_superedge to get_any_cfg_edge and operations.  Update for
! 	location-handling changes.
! 	(get_in_edge_back_edge): Port from cfg_superedge to
! 	get_any_cfg_edge.
! 	(starts_infinite_loop_p): Update for location-handling changes.
! 	(exploded_graph::detect_infinite_loops): Remove redundant params.
! 	* infinite-recursion.cc
! 	(infinite_recursion_diagnostic::add_final_event): Update for
! 	location-handling changes.
! 	(infinite_recursion_diagnostic::check_valid_fpath_p): Drop gimple
! 	param.
! 	(infinite_recursion_diagnostic::fedge_uses_conjured_svalue_p):
! 	Port from cfg_superedge to operations.
! 	(is_entrypoint_p): Update for supergraph changes.
! 	(exploded_graph::detect_infinite_recursion): Update for
! 	location-handling changes.
! 	* kf-lang-cp.cc (kf_operator_new::impl_call_pre): Split out
! 	code to handle placement-new into...
! 	(kf_operator_new::check_any_preconditions): ...this...
! 	(kf_operator_new::get_sized_region_for_placement_new): ...and
! 	this.
! 	* ops.cc: New file, albeit with material adatpted from old
! 	implementation.
! 	* ops.h: Likewise.
! 	* pending-diagnostic.cc (pending_diagnostic::add_call_event): Add
! 	gcall param.  Update for changes to location-handling.
! 	* pending-diagnostic.h
! 	(pending_diagnostic::maybe_add_custom_events_for_superedge):
! 	Convert to...
! 	(pending_diagnostic::maybe_add_custom_events_for_eedge): ...this.
! 	(pending_diagnostic::add_call_event): Add "call_stmt" param.
! 	(pending_diagnostic::check_valid_fpath_p): Drop stmt param.
! 	* program-point.cc (point_kind_to_string): Delete.
! 	(function_point::function_point): Delete.
! 	(function_point::print): Delete.
! 	(function_point::hash): Delete.
! 	(function_point::get_function): Delete.
! 	(function_point::get_stmt): Delete.
! 	(function_point::get_location): Delete.
! 	(function_point::final_stmt_p): Delete.
! 	(function_point::from_function_entry): Delete.
! 	(function_point::before_supernode): Delete.
! 	(function_point::print_source_line): Convert to...
! 	(program_point::print_source_line): ...this.
! 	(program_point::print): Reimplement.
! 	(program_point::to_json): Likewise.
! 	(program_point::push_to_call_stack): Delete.
! 	(program_point::hash): Reimplement.
! 	(program_point::get_function_at_depth): Likewise.
! 	(program_point::on_edge): Delete.
! 	(function_point::cmp_within_supernode_1): Delete.
! 	(function_point::cmp_within_supernode): Delete.
! 	(function_point::cmp): Delete.
! 	(function_point::cmp_ptr): Delete.
! 	(function_point::next_stmt): Delete.
! 	(function_point::get_next): Delete.
! 	(program_point::origin): Update.
! 	(program_point::from_function_entry): Update.
! 	(program_point::get_next): Delete.
! 	(selftest::test_function_point_equality): Delete.
! 	(selftest::test_function_point_ordering): Delete.
! 	(selftest::test_program_point_equality): Update for changes to
! 	program_point.
! 	(selftest::analyzer_program_point_cc_tests): Don't call deleted
! 	function_point tests.
! 	* program-point.h: Include "analyzer/supergraph.h".
! 	(class exploded_graph): Drop forward decl.
! 	(enum point_kind): Drop.
! 	(point_kind_to_string): Drop decl.
! 	(class function_point): Delete.
! 	(program_point::program_point): Take a const supernode *
! 	rather than a const function_point &.
! 	(program_point::print_source_line): New decl.
! 	(program_point::operator==): Update.
! 	(program_point::get_function_point): Drop.
! 	(program_point::get_supernode): Reimplement.
! 	(program_point::get_function): Reimplement.
! 	(program_point::get_fndecl): Reimplement.
! 	(program_point::get_stmt): Drop.
! 	(program_point::get_location): Reimplement.
! 	(program_point::get_kind): Drop.
! 	(program_point::get_from_edge): Drop.
! 	(program_point::get_stmt_idx): Drop.
! 	(program_point::get_stack_depth): Update.
! 	(program_point::state_merge_at_p): New.
! 	(program_point::before_supernode): Drop.
! 	(program_point::before_stmt): Drop.
! 	(program_point::after_supernode): Drop.
! 	(program_point::empty): Drop.
! 	(program_point::deleted): Drop.
! 	(program_point::on_edge): Drop.
! 	(program_point::push_to_call_stack): Drop.
! 	(program_point::next_stmt): Drop.
! 	(program_point::get_next): Drop.
! 	(program_point::m_function_point): Replace with...
! 	(program_point::m_snode): ...this.
! 	* program-state.cc (program_state::on_edge): Delete.
! 	(program_state::push_call): Delete.
! 	(program_state::returning_call): Delete.
! 	(program_state::prune_for_point): Port from function_point to
! 	supernode.  Drop stmt param to impl_region_model_context ctor.
! 	(selftest::test_sm_state_map): Update for engine borrowing rather
! 	owning the region_model_manager.
! 	(selftest::test_program_state_1): Likewise.
! 	(selftest::test_program_state_2): Likewise.
! 	(selftest::test_program_state_merging): Likewise.
! 	(selftest::test_program_state_merging_2): Likewise.
! 	* program-state.h (program_state::push_call): Delete decl.
! 	(program_state::returning_call): Delete decl.
! 	(program_state::on_edge): Delete decl.
! 	* region-model-manager.cc (region_model_manager::maybe_fold_unaryop):
! 	Only fold constants if we have a type.
! 	(region_model_manager::get_or_create_widening_svalue): Port from
! 	function_point to supernode.
! 	* region-model-manager.h
! 	(region_model_manager::get_or_create_widening_svalue): Likewise.
! 	* region-model.cc
! 	(poisoned_value_diagnostic::check_valid_fpath_p): Drop code for
! 	handling function_points within an snode.
! 	(exception_thrown_from_unrecognized_call::add_events_to_path): Add
! 	pending_diagnostic param.
! 	(class jump_through_null): Move here from engine.cc.
! 	(region_model::on_call_pre): Check for jump through null here,
! 	rather than in exploded_graph::process_node.
! 	(region_model::on_setjmp): Add superedge param and pass it to
! 	setjmp_record ctor.
! 	(region_model::handle_phi): Delete, in favor of
! 	phis_for_edge_op::update_state in ops.cc.
! 	(region_model::update_for_phis): Likewise.
! 	(region_model::maybe_update_for_edge): Delete.
! 	(region_model::update_for_call_superedge): Delete.
! 	(region_model::update_for_return_superedge): Delete.
! 	(region_model::apply_constraints_for_gcond): Reimplement in ops.cc as
! 	gcond_edge_op::apply_constraints.
! 	(has_nondefault_case_for_value_p): Move to ops.cc.
! 	(has_nondefault_cases_for_all_enum_values_p): Move to ops.cc
! 	(region_model::apply_constraints_for_gswitch): Reimplement in
! 	ops.cc as switch_case_op::apply_constraints.
! 	(class rejected_eh_dispatch): Move to ops.cc.
! 	(exception_matches_type_p): Move to ops.cc.
! 	(matches_any_exception_type_p): Move to ops.cc.
! 	(region_model::apply_constraints_for_eh_dispatch): Reimplement in
! 	ops.cc as eh_dispatch_edge_op::apply_constraints.
! 	(region_model::apply_constraints_for_eh_dispatch_try): Reimplement
! 	in ops.cc as eh_dispatch_try_edge_op::apply_eh_constraints.
! 	(region_model::apply_constraints_for_eh_dispatch_allowed):
! 	Reimplement in ops.cc as
! 	eh_dispatch_allowed_edge_op::apply_eh_constraints.
! 	(region_model::apply_constraints_for_ggoto): Reimplement in ops.cc
! 	as ggoto_edge_op::apply_constraints.
! 	(caller_context::warn): Replace with...
! 	(caller_context::get_pending_location_for_diag): ...this.
! 	(region_model::get_or_create_region_for_heap_alloc): Fix
! 	indentation.
! 	(region_model_context::warn): New, replacing vfunc with
! 	shared code that calls get_pending_location_for_diag and warn_at
! 	vfuncs.
! 	(engine::engine): Borrow m_mgr rather than own it.
! 	(seldtest::test_state_merging): Update test for ptrs to different
! 	base regions becoming unmergeable.
! 	(selftest::test_widening_constraints): Port from function_point to
! 	supernode.
! 	* region-model.h: Include "analyzer/diagnostic-manager.h".
! 	(region_model::on_setjmp): Add superedge param.
! 	(region_model::void update_for_phis): Drop decl.
! 	(region_model::handle_phi): Drop decl.
! 	(region_model::maybe_update_for_edge): Drop decl.
! 	(region_model::apply_constraints_for_eh_dispatch_try): Drop decl.
! 	(region_model::apply_constraints_for_eh_dispatch_allowed): Drop
! 	decl.
! 	(region_model::update_for_call_superedge): Drop decl.
! 	(region_model::update_for_return_superedge): Drop decl.
! 	(region_model::apply_constraints_for_gcond): Drop decl.
! 	(region_model::apply_constraints_for_gswitch): Drop decl.
! 	(region_model::apply_constraints_for_ggoto): Drop decl.
! 	(region_model::apply_constraints_for_eh_dispatch): Drop decl.
! 	(region_model_context::warn): Convert from vfunc to func.
! 	(region_model_context::get_pending_location_for_diag): New vfunc.
! 	(region_model_context::warn_at): New vfunc.
! 	(class noop_region_model_context): Update for changes to
! 	region_model_context.
! 	(class region_model_context_decorator): Likewise.
! 	(class annotating_context): Likewise.
! 	(struct model_merger): Port from function_point to supernode.
! 	(class engine): Borrow m_mgr rather than own it.
! 	(class test_region_model_context): Update for changes to
! 	region_model_context.
! 	* region.cc (frame_region::get_region_for_local): Update for
! 	change to supergraph.
! 	* sm-fd.cc: Drop redundant params throughout.  Pass stmt
! 	rather than node to the various on_ calls.
! 	* sm-file.cc: Drop redundant params throughout.
! 	(register_known_file_functions): Register "*_unlocked" versions of
! 	functions that I'd missed.
! 	* sm-malloc.cc: Drop redundant params throughout.
! 	(deref_before_check::loop_header_p): Reimplement cfg_superedge
! 	check.
! 	(malloc_state_machine::on_stmt): Move attribute-handling to...
! 	(malloc_state_machine::check_call_preconditions): ...this new
! 	function.
! 	(maybe_complain_about_deref_before_check): Use
! 	sm_ctxt.get_emission_location when checking for inlining.
! 	* sm-pattern-test.cc: Drop redundant params throughout.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* sm.cc: Fix unused param warnings.
! 	* sm.h: Include "analyzer/analyzer-logging.h".  Drop redundant
! 	params throughout.
! 	(state_machine::check_call_preconditions): New vfunc.
! 	(sm_context::get_state): Drop "stmt" args.
! 	(sm_context::set_next_state): Likewise.
! 	(sm_context::on_transition): Drop "stmt" and "node" args.
! 	(sm_context::warn): Likewise.
! 	(sm_context::get_emission_location): New vfunc.
! 	* state-purge.cc: Define INCLUDE_SET.
! 	(class gimple_op_visitor): Replace function_point and function
! 	with superedge.
! 	(state_purge_map::state_purge_map): Iterate through ops on edges,
! 	rather than on stmts in supernodes.
! 	(state_purge_map::on_duplicated_node): New.
! 	(state_purge_map::get_or_create_data_for_decl): Use supernode
! 	rather than function_point.
! 	(state_purge_per_ssa_name::state_purge_per_ssa_name): Likewise.
! 	(state_purge_per_ssa_name::needed_at_point_p): Replace with...
! 	(state_purge_per_ssa_name::needed_at_supernode_p): ...this.
! 	(state_purge_per_ssa_name::before_use_stmt): Delete.
! 	(state_purge_per_ssa_name::add_to_worklist): Use supernode rather
! 	than function_point.
! 	(name_used_by_phis_p): Delete.
! 	(state_purge_per_ssa_name::process_point): Replace with...
! 	(state_purge_per_ssa_name::process_supernode): ...this.
! 	(state_purge_per_ssa_name::on_duplicated_node): New.
! 	(state_purge_per_decl::state_purge_per_decl): Use supernode rather
! 	than function_point.
! 	(state_purge_per_decl::add_needed_at): Likewise.
! 	(state_purge_per_decl::add_pointed_to_at): Likewise.
! 	(state_purge_per_decl::process_worklists): Likewise.
! 	(state_purge_per_decl::add_to_worklist): Likewise.
! 	(state_purge_per_decl::process_point_backwards): Replace with...
! 	(state_purge_per_decl::process_supernode_backwards): ...this.
! 	(state_purge_per_decl::process_point_forwards): Replace with...
! 	(state_purge_per_decl::process_supernode_forwards): ...this.
! 	(state_purge_per_decl::needed_at_point_p): Replace with...
! 	(state_purge_per_decl::needed_at_supernode_p): ...this.
! 	(state_purge_per_decl::on_duplicated_node): New.
! 	(print_vec_of_names): Drop "within_table" param.
! 	(state_purge_annotator::add_stmt_annotations): Drop.
! 	(state_purge_annotator::add_node_annotations): Reimplement.
! 	* state-purge.h: Convert throughout from function_point to
! 	supernode.
! 	(state_purge_map::on_duplicated_node): New decl.
! 	(state_purge_per_ssa_name::on_duplicated_node): Likewise.
! 	(state_purge_per_decl::on_duplicated_node): Likewise.
! 	* store.cc (needs_loop_replay_fixup_p): New.
! 	(store::loop_replay_fixup): Use it rather than checking for
! 	SK_WIDENING.
! 	* supergraph-fixup-locations.cc: New file.
! 	* supergraph-manipulation.h: New file.
! 	* supergraph-simplify.cc: New file.
! 	* supergraph-sorting.cc: New file.
! 	* supergraph.cc: Define INCLUDE_DEQUE.  Drop include of
! 	"tree-dfa.h".  Include "diagnostics/file-cache.h"
! 	and "analyzer/exploded-graph.h".
! 	(supergraph_call_edge): Delete.
! 	(control_flow_stmt_p): New.
! 	(supergraph::supergraph): Add "mgr" param.  Initialize
! 	m_next_snode_id.  Reimplement.
! 	(supergraph::populate_for_basic_block): New.
! 	(supergraph::dump_dot_to_pp): Add auto_cfun sentinel.
! 	Split up nodes using loop information from the original CFG,
! 	then by basic block.  Call the node_annotator's
! 	add_extra_objects vfunc.
! 	(supergraph::dump_dot_to_gv_for_loop): New.
! 	(supergraph::dump_dot_to_gv_for_bb): New, based on code in
! 	dump_dot_to_pp.
! 	(supergraph::add_node): Drop "returning_call" and "phi_nodes"
! 	params. Add logger param and logging.  Use m_next_snode_id to
! 	allow for node deletion.
! 	(supergraph::add_cfg_edge): Delete.
! 	(supergraph::add_call_superedge): Delete.
! 	(supergraph::add_return_superedge): Delete.
! 	(supergraph::delete_nodes): New.
! 	(supergraph::add_sedges_for_cfg_edge): New.
! 	(supernode::dump_dot): Drop output cluster, moving
! 	add_node_annotations to within the dot node.  Show any SCC id.
! 	Show m_preserve_p and m_state_merger_node.  Update for renaming of
! 	supernode::return_p to supernode::exit_p.  Highlight nodes without
! 	source location information.  Show m_loc and m_stmt_loc.  Show
! 	source lines, with color for highlight.
! 	(supernode::dump_dot_id): Update.
! 	(supernode::to_json): Update.
! 	(supernode::get_start_location): Delete.
! 	(supernode::get_end_location): Delete.
! 	(supernode::get_stmt_index): Delete.
! 	(supernode::get_label): Delete.
! 	(edge_kind_to_string): Delete.
! 	(superedge::dump): Update for supernode::m_index becoming m_id.
! 	(superedge::dump_dot): Drop ltail/lhead attrs.  Flush after
! 	dumping the label.
! 	(superedge::to_json): Reimplement.
! 	(superedge::get_any_cfg_edge): Delete.
! 	(superedge::get_any_callgraph_edge): Delete.
! 	(superedge::preserve_p): New.
! 	(superedge::supports_bulk_merge_p): New.
! 	(cfg_superedge::dump_label_to_pp): Delete.
! 	(superedge::dump_label_to_pp): New.
! 	(cfg_superedge::get_phi_arg_idx): Delete.
! 	(cfg_superedge::get_phi_arg): Delete.
! 	(switch_cfg_superedge::switch_cfg_superedge): Delete.
! 	(switch_cfg_superedge::dump_label_to_pp): Delete.
! 	(switch_cfg_superedge::implicitly_created_default_p): Delete.
! 	(get_catch): Move to ops.cc.
! 	(eh_dispatch_cfg_superedge::make): Delete in favor of
! 	eh_dispatch_edge_op::make.
! 	(eh_dispatch_cfg_superedge::eh_dispatch_cfg_superedge): Delete.
! 	(eh_dispatch_cfg_superedge::get_eh_status): Delete.
! 	(eh_dispatch_try_cfg_superedge::dump_label_to_pp): Delete.
! 	(eh_dispatch_try_cfg_superedge::apply_constraints): Delete.
! 	(eh_dispatch_allowed_cfg_superedge::eh_dispatch_allowed_cfg_superedge):
! 	Delete.
! 	(eh_dispatch_allowed_cfg_superedge::dump_label_to_pp): Delete.
! 	(eh_dispatch_allowed_cfg_superedge::apply_constraints): Delete.
! 	(callgraph_superedge::dump_label_to_pp): Delete.
! 	(callgraph_superedge::get_callee_function): Delete.
! 	(callgraph_superedge::get_caller_function): Delete
! 	(callgraph_superedge::get_callee_decl): Delete
! 	(callgraph_superedge::get_call_stmt): Delete
! 	(callgraph_superedge::get_caller_decl): Delete
! 	(callgraph_superedge::get_arg_for_parm): Delete in favor of
! 	call_and_return_op::get_arg_for_parm in ops.cc.
! 	(callgraph_superedge::get_parm_for_arg): Delete in favor of
! 	call_and_return_op::get_parm_for_arg in ops.cc.
! 	(callgraph_superedge::map_expr_from_caller_to_callee): Delete in
! 	favor of call_and_return_op::map_expr_from_caller_to_callee in
! 	ops.cc.
! 	(callgraph_superedge::map_expr_from_callee_to_caller): Delete in
! 	favor of call_and_return_op::map_expr_from_callee_to_caller in
! 	ops.cc.
! 	* supergraph.h: Include "cfgloop.h" and "analyzer/ops.h".
! 	(enum edge_kind): Delete.
! 	(struct supergraph_traits::dump_args_t): Add m_eg.
! 	(class supergraph): Rewrite leading comment.
! 	(supergraph::supergraph): Add "mgr" param.
! 	(supergraph::get_node_for_function_entry): Reimplement.
! 	(supergraph::get_node_for_function_exit): Reimplement.
! 	(supergraph::get_node_for_block): Convert to...
! 	(supergraph::get_initial_node_for_block): ...this.
! 	(supergraph::get_caller_next_node): Delete.
! 	(supergraph::get_edge_for_call): Delete.
! 	(supergraph::get_edge_for_return): Delete.
! 	(supergraph::get_intraprocedural_edge_for_call): Delete.
! 	(supergraph::get_edge_for_cfg_edge): Delete.
! 	(supergraph::get_supernode_for_stmt): Delete.
! 	(supergraph::get_final_node_for_block): New.
! 	(supergraph::get_supernode_for_stmt): New.
! 	(supergraph::get_superedge_for_phis): New.
! 	(supergraph::get_node_by_index): Delete.
! 	(supergraph::add_node): Drop "returning_call" and "phi_nodes"
! 	params.  Add logger param.
! 	(supergraph::add_cfg_edge): Delete.
! 	(supergraph::add_call_superedge): Delete.
! 	(supergraph::add_return_superedge): Delete.
! 	(supergraph::log_stats): New decl.
! 	(supergraph::delete_nodes): New decl.
! 	(supergraph::fixup_locations): New decl.
! 	(supergraph::simplify): New decl.
! 	(supergraph::sort_nodes): New decl.
! 	(supergraph::populate_for_basic_block): New decl.
! 	(supergraph::add_sedges_for_cfg_edge): New decl.
! 	(supergraph::dump_dot_to_gv_for_loop): New decl.
! 	(supergraph::dump_dot_to_gv_for_bb): New decl.
! 	(supergraph::reorder_nodes_and_ids): New decl.
! 	(supergraph::bb_to_node_t): Make private.
! 	(supergraph::m_bb_to_initial_node): Make private.
! 	(supergraph::m_bb_to_final_node): Make private.
! 	(supergraph::cgraph_edge_to_node_t): Delete typedef.
! 	(supergraph::m_cgraph_edge_to_caller_prev_node): Delete.
! 	(supergraph::m_cgraph_edge_to_caller_next_node): Delete.
! 	(supergraph::cfg_edge_to_cfg_superedge_t): Delete typedef.
! 	(supergraph::m_cfg_edge_to_cfg_superedge): Delete.
! 	(supergraph::cgraph_edge_to_call_superedge_t): Delete typedef.
! 	(supergraph::m_cgraph_edge_to_call_superedge): Delete
! 	(supergraph::cgraph_edge_to_return_superedge_t): Delete typedef.
! 	(supergraph::m_cgraph_edge_to_return_superedge): Delete.
! 	(supergraph::cgraph_edge_to_intraproc_superedge_t): Delete
! 	typedef.
! 	(supergraph::m_cgraph_edge_to_intraproc_superedge): Delete.
! 	(supergraph::stmt_to_node_t): Delete typedef.
! 	(supergraph::m_stmt_to_node_t): Replace with...
! 	(supergraph::m_node_for_stmt): ...this.
! 	(supergraph::m_edges_for_phis): New field.
! 	(supergraph::m_next_snode_id): New field.
! 	(supergraph::m_snode_by_id): New field.
! 	(supernode::supernode): Drop "returning_call" and "phi_nodes"
! 	params.  Convert "index" to "id".  Update for changes to fields.
! 	(supernode::return_p): Rename for clarity to...
! 	(supernode::exit_p): ...this.
! 	(supernode::get_start_location): Delete.
! 	(supernode::get_end_location): Delete.
! 	(supernode::start_phis): Delete.
! 	(supernode::get_returning_call): Delete.
! 	(supernode::print): New.
! 	(supernode::get_last_stmt): Delete.
! 	(supernode::get_final_call): Delete.
! 	(supernode::get_stmt_index): Delete.
! 	(supernode::get_location): New.
! 	(supernode::get_label): Convert to trivial accessor.
! 	(supernode::preserve_p): New.
! 	(supernode::m_returning_call): Drop field.
! 	(supernode::m_phi_nodes): Drop field.
! 	(supernode::m_stmts): Drop field.
! 	(supernode::m_index): Replace with...
! 	(supernode::m_id): ...this.
! 	(supernode::m_loc): New field.
! 	(supernode::m_stmt_loc): New field.
! 	(supernode::m_original_id): New field.
! 	(supernode::m_label): New field.
! 	(supernode::m_preserve_p): New field.
! 	(supernode::m_state_merger_node): New field.
! 	(class superedge): Update leading comment.
! 	(superedge::superedge): Make public rather than protected.  Drop
! 	"kind" param.  Add "op" and "cfg_edge" params.  Assert that edge
! 	is intraprocedural.
! 	(superedge::m_kind): Drop field.
! 	(superedge::m_op): New field.
! 	(superedge::m_cfg_edge): New field.
! 	(superedge::dump_label_to_pp): Make non-virtual.
! 	(superedge::get_op): New.
! 	(superedge::set_op): New.
! 	(superedge::get_kind): Drop.
! 	(superedge::get_dest_snode): New accessor.
! 	(superedge::dyn_cast_cfg_superedge): Delete.
! 	(superedge::dyn_cast_switch_cfg_superedge): Delete
! 	(superedge::dyn_cast_eh_dispatch_cfg_superedge): Delete
! 	(superedge::dyn_cast_eh_dispatch_try_cfg_superedge): Delete
! 	(superedge::dyn_cast_eh_dispatch_allowed_cfg_superedge): Delete
! 	(superedge::dyn_cast_callgraph_superedge): Delete
! 	(superedge::dyn_cast_callgraph_superedge): Delete
! 	(superedge::dyn_cast_call_superedge): Delete
! 	(superedge::dyn_cast_call_superedge): Delete
! 	(superedge::dyn_cast_return_superedge): Delete
! 	(superedge::dyn_cast_return_superedge): Delete
! 	(superedge::get_any_cfg_edge): Convert to trivial accessor.
! 	(superedge::get_any_callgraph_edge): Drop.
! 	(superedge::preserve_p): New.
! 	(superedge::supports_bulk_merge_p): New.
! 	(class callgraph_superedge): Drop.
! 	(is_a_helper <const callgraph_superedge *>::test): Drop.
! 	(class call_superedge): Drop.
! 	(is_a_helper <const call_superedge *>::test): Drop.
! 	(class return_superedge): Drop.
! 	(is_a_helper <const return_superedge *>::test): Drop.
! 	(class cfg_superedge): Drop.
! 	(class switch_cfg_superedge): Drop.
! 	(is_a_helper <const switch_cfg_superedge *>::test): Drop.
! 	(class eh_dispatch_cfg_superedge): Drop.
! 	(is_a_helper <const eh_dispatch_cfg_superedge *>::test): Drop.
! 	(class eh_dispatch_try_cfg_superedge): Drop.
! 	(is_a_helper <const eh_dispatch_try_cfg_superedge *>::test): Drop.
! 	(class eh_dispatch_allowed_cfg_superedge): Drop.
! 	(is_a_helper <const eh_dispatch_allowed_cfg_superedge *>::test):
! 	Drop.
! 	(dot_annotator::~dot_annotator): Use "= default;".
! 	(dot_annotator::add_node_annotations): Drop return value and
! 	"within_table" param.
! 	(dot_annotator::add_stmt_annotations): Drop.
! 	(dot_annotator::add_after_node_annotations): Drop.
! 	(dot_annotator::add_extra_objects): New.
! 	(supergraph_call_edge): Delete decl.
! 	(get_ultimate_function_for_cgraph_edge): Delete decl.
! 	* svalue.cc (svalue::can_merge_p): Reject attempts to merge
! 	pointers that point to different base regions, except for the case
! 	where both are string literals.  Update for point change in
! 	widening_svalue.
! 	(svalue::cmp_ptr): Update for point change to widening_svalue.
! 	(widening_svalue::dump_to_pp): Likewise.
! 	(widening_svalue::print_dump_widget_label): Likewise.
! 	* svalue.h (struct setjmp_record): Add m_sedge.
! 	(class widening_svalue): Replace function_point m_point with
! 	const supernode *m_snode throughout.
! 	* varargs.cc (va_list_state_machine::on_stmt): Drop redundant
! 	param.
! 	(va_list_state_machine::on_va_start): Likewise.  Update for change
! 	to get_state.
! 	(va_list_state_machine::check_for_ended_va_list): Likewise.
! 	(va_list_state_machine::on_va_copy): Likewise.
! 	(va_list_state_machine::on_va_arg): Likewise.
! 	(va_list_state_machine::on_va_end): Likewise.
! 	(va_arg_diagnostic::add_call_event): Update for changes to
! 	location-tracking.
! 
! 2025-12-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* kf.cc (register_known_functions): Remove duplicate calls to
! 	register_atomic_builtins and register_varargs_builtins.
! 
! 2025-11-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* known-function-manager.cc (known_function_manager::add): Avoid
! 	arithmetics between enumerators from different enum types.
! 	(known_function_manager::get_internal_fn): Likewise.
! 
! 2025-11-27  Jonathan Wakely  <jwakely@redhat.com>
! 
! 	* constraint-manager.cc (equiv_class::operator==): Add const
! 	qualifier.
! 	* constraint-manager.h (equiv_class::operator==): Likewise.
! 
! 2025-11-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* sm-malloc.cc (deref_before_check::emit): Add logging of the
! 	various conditions for late-rejection of a
! 	-Wanalyzer-deref-before-check warning.
! 
! 2025-11-12  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* program-state.cc (log_set_of_svalues):  Avoid -Wformat-security
! 	warning when logging name.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* analyzer.opt.urls: Regenerated.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* analyzer.opt (fanalyzer-verbosity=): Add RejectNegative.
! 
! 2025-11-07  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc
! 	(region_creation_event_allocation_size::print_desc): Fix missing
! 	"else" leading to stray trailing "allocated here" text in events.
! 
! 2025-11-04  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/122544
! 	* checker-event.cc (catch_cfg_edge_event::get_meaning): New.
! 	(setjmp_event::get_meaning): New.
! 	(rewind_event::get_meaning): New.
! 	(throw_event::get_meaning): New.
! 	(unwind_event::get_meaning): New.
! 	* checker-event.h (catch_cfg_edge_event::get_meaning): New decl.
! 	(setjmp_event::get_meaning): New decl.
! 	(rewind_event::get_meaning): New decl.
! 	(throw_event::get_meaning): New decl.
! 	(unwind_event::get_meaning): New decl.
! 
! 2025-10-16  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
! 	json::property instances found within custom_sarif_properties
! 	throughout, rather than types in diagnostics::state_graphs.
! 	* ana-state-to-diagnostic-state.h: Likewise.
! 	* checker-event.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 
! 2025-10-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Update for renaming of fields of binding_key.
! 	* ana-state-to-diagnostic-state.cc: Likewise.
! 	* bounds-checking.cc: Likewise.  Add store_manager param.
! 	* call-summary.cc: Likewise.
! 	* diagnostic-manager.cc: Drop includes of "basic-block.h" and
! 	"gimple.h".
! 	* engine.cc: Likewise.
! 	* infinite-recursion.cc: Update for renaming of fields of
! 	binding_key.
! 	* kf.cc: Pass store_manager to mark_as_escaped.
! 	* program-state.cc: Update for renaming of fields of binding_key.
! 	* region-model-asm.cc: Pass store manager to
! 	get_or_create_cluster.
! 	* region-model-reachability.cc: Likewise.  Update for renaming of
! 	fields of binding_key.
! 	* region-model.cc: Likewise.
! 	(struct bad_pointer_finder): Drop.
! 	(region_model::poison_any_pointers_to_descendents): Implement
! 	iteration directly, rather than using store::for_each_binding.
! 	Drop return value.
! 	(selftest::test_struct): Set field in order y then x.  Verify
! 	that iteration yields bindings in order x then y.
! 	* region-model.h
! 	(region_model::poison_any_pointers_to_descendents): Drop return
! 	value.
! 	* region.cc: Pass store manager to get_or_create_cluster.
! 	* store.cc (binding_map::const_iterator::operator==): New.
! 	(binding_map::const_iterator::operator++): New.
! 	(binding_map::const_iterator::operator*): New.
! 	(binding_map::iterator::operator==): New.
! 	(binding_map::iterator::operator++): New.
! 	(binding_map::iterator::operator*): New.
! 	(binding_map::binding_map): Reimplement.
! 	(binding_map::operator=): Reimplement.
! 	(binding_map::operator==): Reimplement.
! 	(binding_map::hash): Reimplement.
! 	(binding_map::get): Reimplement.
! 	(binding_map::put): Reimplement.
! 	(binding_map::overwrite): New.
! 	(binding_map::remove): New.
! 	(binding_map::begin): New.
! 	(binding_map::end): New.
! 	(binding_map::elements): New.
! 	(binding_map::dump_to_pp): Reimplement.
! 	(binding_map::to_json): Iterate over *this directly; drop sort.
! 	(binding_map::add_to_tree_widget): Likewise.
! 	(binding_map::cmp): Reimplement.
! 	(binding_map::get_overlapping_bindings): Update for field
! 	renamings.
! 	(binding_cluster::binding_cluster): Add store_mgr param.
! 	(binding_cluster::validate): Update for field renamings.
! 	(binding_cluster::bind_compound_sval): Likewise.
! 	(binding_cluster::purge_state_involving): Likewise.
! 	(binding_cluster::maybe_get_compound_binding): Likewise.  Add
! 	store_mgr param.
! 	(binding_cluster::can_merge_p): Likewise.  Update for new
! 	implementation.
! 	(binding_cluster::make_unknown_relative_to): Likewise.
! 	(binding_cluster::on_unknown_fncall): Likewise.
! 	(binding_cluster::on_asm): Likewise.
! 	(binding_cluster::get_representative_path_vars): Likewise.
! 	(store::set_value): Likewise.
! 	(store::on_maybe_live_values): Pass around store_manager.
! 	(store::fill_region): Likewise.
! 	(store::mark_region_as_unknown): Likewise.
! 	(store::get_or_create_cluster): Likewise.
! 	(store::can_merge_p): Likewise.
! 	(store::mark_as_escaped): Likewise.
! 	(store::canonicalize): Update for field renamings.
! 	(store::loop_replay_fixup): Likewise.  Pass around store_manager.
! 	(store::replay_call_summary_cluster): Likewise.
! 	(selftest::test_binding_map_ops): New.
! 	(selftest::analyzer_store_cc_tests): Call it.
! 	* store.h (class binding_map): Reimplement.
! 	(binding_map::map_t): Drop.
! 	(struct binding_map::symbolic_binding): New.
! 	(binding_map::concrete_bindings_t): New.
! 	(binding_map::symbolic_bindings_t): New.
! 	(struct binding_map::bindings_pair): New.
! 	(class binding_map::const_iterator): New.
! 	(class binding_map::iterator): New.
! 	(binding_map::get): Reimplement.
! 	(binding_map::overwrite): New decl.
! 	(binding_map::remove): Reimplement.
! 	(binding_map::clear): Reimplement.
! 	(binding_map::put): Reimplement.
! 	(binding_map::empty_p): Reimplement.
! 	(binding_map::begin): Reimplement.
! 	(binding_map::end): Reimplement.
! 	(binding_map::elements): Reimplement.
! 	(binding_map::m_map): Drop field.
! 	(binding_map::m_store_mgr): New field.
! 	(binding_map::m_concrete): New field.
! 	(binding_map::m_symbolic): New field.
! 	(BindingVisitor): Drop.
! 	(binding_cluster::map_t): Drop.
! 	(binding_cluster::iterator_t): Reimplement.
! 	(binding_cluster::const_iterator_t): New.
! 	(binding_cluster::binding_cluster): Add store_mgr param.
! 	(binding_cluster::for_each_value): Reimplement.
! 	(binding_cluster::empty_p): Reimplement.
! 	(binding_cluster::for_each_binding): Drop.
! 	(binding_cluster::begin): Split into const/non-const overloads.
! 	(binding_cluster::get_map): Add non-const overload.
! 	(store::get_or_create_cluster): Add store_mgr param.
! 	(store::mark_as_escaped): Likewise.
! 	(store::for_each_binding): Drop.
! 	(store::on_maybe_live_values): Add store_mgr param.
! 	* svalue.cc (compound_svalue::compound_svalue): Reimplement.
! 	(compound_svalue::accept): Likewise.
! 	(compound_svalue::calc_complexity): Likewise.
! 	(compound_svalue::maybe_fold_bits_within): Likewise.
! 	* svalue.h (compound_svalue::const_iterator_t): New.
! 	(compound_svalue::begin): Split into const/non-const overloads.
! 	(compound_svalue::end): Likewise.
! 
! 2025-10-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	Revert:
! 	2025-10-03  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
! 	json::property instances found within custom_sarif_properties
! 	throughout, rather than types in diagnostics::state_graphs.
! 	* ana-state-to-diagnostic-state.h: Likewise.
! 	* checker-event.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 
! 2025-10-02  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Reimplement throughout to use
! 	json::property instances found within custom_sarif_properties
! 	throughout, rather than types in diagnostics::state_graphs.
! 	* ana-state-to-diagnostic-state.h: Likewise.
! 	* checker-event.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 
! 2025-09-15  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* kf.cc (register_known_functions): Add __get_errno_ptr.
! 
! 2025-08-29  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* pending-diagnostic.cc: Include "diagnostics/logging.h".
! 	(diagnostic_emission_context::warn): Add logging.
! 	(diagnostic_emission_context::inform): Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* program-point.cc: Make diagnostics::context::m_source_printing
! 	private.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* pending-diagnostic.cc: Update for diagnostic_t becoming
! 	enum class diagnostics::kind.
! 	* program-point.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* program-point.cc: : Update for diagnostic_context becoming
! 	diagnostics::context, and for diagnostic_source_print_policy
! 	becoming diagnostics::source_print_policy.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Update for move of
! 	diagnostics output formats into namespace "diagnostics" as
! 	"sinks".
! 	* bounds-checking.cc: Likewise.
! 	* call-details.cc: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-event.h: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* diagnostic-manager.h: Likewise.
! 	* infinite-loop.cc: Likewise.
! 	* infinite-recursion.cc: Likewise.
! 	* pending-diagnostic.h: Likewise.
! 	* region-model.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Update for changes to diagnostic paths:
! 	"diagnostic-path.h" moving to "diagnostics/paths.h",
! 	"diagnostic-event-id.h" moving to "diagnostics/event-id.h",
! 	diagnostic_event_id_t to diagnostics::paths::event_id_t,
! 	diagnostic_path to diagnostics::paths::path, and
! 	diagnostic_event to diagnostics::paths::event.
! 	* access-diagram.h: Likewise.
! 	* analyzer.cc: Likewise.
! 	* bounds-checking.cc: Likewise.
! 	* call-info.cc: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-event.h: Likewise.
! 	* checker-path.cc: Likewise.
! 	* checker-path.h: Likewise.
! 	* common.h: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* pending-diagnostic.cc: Likewise.
! 	* pending-diagnostic.h: Likewise.
! 	* program-point.cc: Likewise.
! 	* program-state.cc: Likewise.
! 	* region-model.cc: Likewise.
! 	* sm-fd.cc: Likewise.
! 	* 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.
! 	* varargs.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* bounds-checking.cc: Update #include for move of
! 	"diagnostic-diagram.h" to "diagnostics/diagram.h". Update for
! 	move of diagnostic_diagram to diagnostics::diagram.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* diagnostic-manager.cc: Update for move of diagnostic_metadata to
! 	diagnostics::metadata.
! 	* kf.cc: Likewise.
! 	* pending-diagnostic.h: Likewise; also, update #include for move
! 	of "diagnostic-metadata.h" to "diagnostics/metadata.h".
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.h (checker_event::get_logical_location): Update
! 	for conversion of logical_location to
! 	diagnostics::logical_locations::key.
! 	(checker_event::m_logical_loc): Likewise.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::get_logical_location_manager): Likewise.
! 	* diagnostic-manager.h
! 	(diagnostic_manager::get_logical_location_manager): Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Update #include for move of
! 	"diagnostic-state-graphs.h" to "diagnostics/state-graphs.h".
! 	* ana-state-to-diagnostic-state.h: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-event.h: Update #include for move of
! 	"diagnostic-digraphs.h" to "diagnostics/digraphs.h".
! 	* program-state.cc: : Update #include for move of
! 	"diagnostic-state-graphs.h" to "diagnostics/state-graphs.h".
! 
! 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
! 
! 	* region-model-asm.cc (region_model::on_asm_stmt): Pass null
! 	pointer to parse_{input,output}_constraint().
! 
! 2025-07-11  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* ana-state-to-diagnostic-state.cc: Reimplement, replacing
! 	XML-based implementation with one based on state graphs.
! 	* ana-state-to-diagnostic-state.h: Likewise.
! 	* checker-event.cc: Replace include of "xml.h" with include of
! 	"diagnostic-state-graphs.h".
! 	(checker_event::maybe_make_xml_state): Replace with...
! 	(checker_event::maybe_make_diagnostic_state_graph): ...this.
! 	* checker-event.h: Add include of "diagnostic-digraphs.h".
! 	(checker_event::maybe_make_xml_state): Replace decl with...
! 	(checker_event::maybe_make_diagnostic_state_graph): ...this.
! 	* engine.cc (exploded_node::on_stmt_pre): Replace
! 	"_analyzer_dump_xml" with "__analyzer_dump_sarif".
! 	* program-state.cc: Replace include of "diagnostic-state.h" with
! 	"diagnostic-state-graphs.h".
! 	(program_state::dump_dot): Port from XML to state graphs.
! 	* program-state.h: Drop reduntant forward decl of xml::document.
! 	(program_state::make_xml): Replace decl with...
! 	(program_state::make_diagnostic_state_graph): ...this.
! 	(program_state::dump_xml_to_pp): Drop decl.
! 	(program_state::dump_xml_to_file): Drop decl.
! 	(program_state::dump_xml): Drop decl.
! 	(program_state::dump_dump_sarif): New decl.
! 	* sm-malloc.cc (get_dynalloc_state_for_state): New.
! 	(malloc_state_machine::add_state_to_xml): Replace with...
! 	(malloc_state_machine::add_state_to_state_graph): ...this.
! 	* sm.cc (state_machine::add_state_to_xml): Replace with...
! 	(state_machine::add_state_to_state_graph): ...this.
! 	(state_machine::add_global_state_to_xml): Replace with...
! 	(state_machine::add_global_state_to_state_graph): ...this.
! 	* sm.h (class xml_state): Drop forward decl.
! 	(class analyzer_state_graph): New forward decl.
! 	(state_machine::add_state_to_xml): Replace decl with...
! 	(state_machine::add_state_to_state_graph): ...this.
! 	(state_machine::add_global_state_to_xml): Replace decl with...
! 	(state_machine::add_global_state_to_state_graph): ...this.
! 
! 2025-06-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Use nullptr rather than NULL where
! 	appropriate.
! 	* analyzer-language.cc: Likewise.
! 	* analyzer-language.h: Likewise.
! 	* analyzer-logging.h: Likewise.
! 	* analyzer-pass.cc: Likewise.
! 	* analyzer.cc: Likewise.
! 	* bounds-checking.cc: Likewise.
! 	* call-details.cc: Likewise.
! 	* call-string.cc: Likewise.
! 	* call-string.h: Likewise.
! 	* call-summary.cc: Likewise.
! 	* checker-event.cc: Likewise.
! 	* common.h: Likewise.
! 	* constraint-manager.cc: Likewise.
! 	* constraint-manager.h: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* engine.cc: Likewise.
! 	* exploded-graph.h: Likewise.
! 	* function-set.cc: Likewise
! 	* infinite-recursion.cc: Likewise
! 	* inlining-iterator.h: Likewise
! 	* kf.cc: Likewise
! 	* known-function-manager.cc: Likewise
! 	* pending-diagnostic.cc: Likewise
! 	* program-point.cc: Likewise
! 	* program-point.h: Likewise
! 	* program-state.cc: Likewise
! 	* program-state.h: Likewise
! 	* record-layout.cc: Likewise
! 	* region-model-asm.cc: Likewise
! 	* region-model-manager.cc: Likewise
! 	* region-model-manager.h: Likewise
! 	* region-model-reachability.cc: Likewise
! 	* region-model.cc: Likewise
! 	* region-model.h: Likewise
! 	* region.cc: Likewise
! 	* region.h: Likewise
! 	* sm-fd.cc: Likewise
! 	* sm-malloc.cc: Likewise
! 	* sm-pattern-test.cc: Likewise
! 	* sm-signal.cc: Likewise
! 	* sm-taint.cc: Likewise
! 	* sm.cc: Likewise
! 	* sm.h: Likewise
! 	* state-purge.cc: Likewise
! 	* state-purge.h: Likewise
! 	* store.cc: Likewise
! 	* store.h: Likewise
! 	* supergraph.cc: Likewise
! 	* supergraph.h: Likewise
! 	* svalue.cc: Likewise
! 	* svalue.h: Likewise
! 	* varargs.cc: Likewise
! 
! 2025-06-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc (function_entry_event::get_meaning): Convert
! 	diagnostic_event::meaning enums to enum class.
! 	(cfg_edge_event::get_meaning): Likewise.
! 	(call_event::get_meaning): Likewise.
! 	(return_event::get_meaning): Likewise.
! 	(start_consolidated_cfg_edges_event::get_meaning): Likewise.
! 	(inlined_call_event::get_meaning): Likewise.
! 	(warning_event::get_meaning): Likewise.
! 	* sm-fd.cc (fd_diagnostic::get_meaning_for_state_change):
! 	Likewise.
! 	* sm-file.cc (file_diagnostic::get_meaning_for_state_change):
! 	Likewise.
! 	* sm-malloc.cc (malloc_diagnostic::get_meaning_for_state_change):
! 	Likewise.
! 	* sm-sensitive.cc
! 	(exposure_through_output_file::get_meaning_for_state_change):
! 	Likewise.
! 	* sm-taint.cc (taint_diagnostic::get_meaning_for_state_change):
! 	Likewise.
! 	* varargs.cc
! 	(va_list_sm_diagnostic::get_meaning_for_state_change): Likewise.
! 
! 2025-06-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/120520
! 	PR c/117023
! 	* sm-malloc.cc (malloc_state_machine::on_stmt): Handle 3 argument
! 	nonnull_if_nonzero attribute.
! 
! 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc
! 	(exception_thrown_from_unrecognized_call::print): Add
! 	"final override" to vfunc.
! 
! 2025-06-23  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR other/116792
! 	* ana-state-to-diagnostic-state.cc: New file.
! 	* ana-state-to-diagnostic-state.h: New file.
! 	* checker-event.cc: Include "xml.h".
! 	(checker_event::checker_event): Initialize m_path.
! 	(checker_event::prepare_for_emission): Store the path pointer into
! 	m_path.
! 	(checker_event::maybe_make_xml_state): New.
! 	(function_entry_event::function_entry_event): Add "state" param
! 	and use it to initialize m_state.
! 	(superedge_event::get_program_state): New.
! 	(call_event::get_program_state): New.
! 	(warning_event::get_program_state): New.
! 	* checker-event.h (checker_event::get_program_state): New vfunc.
! 	(checker_event::maybe_make_xml_state): New decl.
! 	(checker_event::m_path): New field.
! 	(statement_event::get_program_state): New vfunc impl.
! 	(function_entry_event::function_entry_event): Add "state" param.
! 	(function_entry_event::get_program_state): New vfunc impl.
! 	(function_entry_event::m_state): New field.
! 	(state_change_event::get_program_state): New vfunc impl.
! 	(superedge_event::get_program_state): New vfunc decl.
! 	(warning_event::warning_event): Add "program_state_" param and
! 	copy it.
! 	(warning_event::get_program_state): New vfunc decl.
! 	(warning_event::m_program_state): New field.
! 	* checker-path.h (checker_path::checker_path): Add ext_state param.
! 	(checker_path::get_ext_state): New accessor.
! 	(checker_path::m_ext_state): New field.
! 	* common.h: Define INCLUDE_MAP and INCLUDE_STRING.
! 	* diagnostic-manager.cc (saved_diagnostic::operator==): Don't
! 	deduplicate dump_path_diagnostic instances.
! 	(diagnostic_manager::emit_saved_diagnostic): Pass ext_state to
! 	checker_path ctor.
! 	* engine.cc:
! 	(impl_region_model_context::on_state_leak): Pass old and new state
! 	to state_machine::on_leak.
! 	(exploded_node::on_stmt_pre): Implement __analyzer_dump_xml and
! 	__analyzer_dump_dot.
! 	* exploded-graph.h (impl_region_model_context::get_state): New.
! 	* infinite-recursion.cc
! 	(recursive_function_entry_event::recursive_function_entry_event):
! 	Add "dst_state" param and pass to function_entry_event ctor.
! 	(infinite_recursion_diagnostic::add_function_entry_event): Pass state
! 	to event ctor.
! 	* kf-analyzer.cc: Include "analyzer/program-state.h"
! 	(dump_path_diagnostic::dump_path_diagnostic): Add "state" param.
! 	(dump_path_diagnostic::get_final_state): New.
! 	(dump_path_diagnostic::m_state): New field.
! 	(kf_analyzer_dump_path::impl_call_pre): Pass state to warning.
! 	* pending-diagnostic.cc
! 	(pending_diagnostic::add_function_entry_event): Pass state to
! 	function_entry_event.
! 	(pending_diagnostic::add_final_event): Likewise to warning_event.
! 	* pending-diagnostic.h (pending_diagnostic::get_final_state): New
! 	vfunc decl.
! 	* program-state.cc: Include "diagnostic-state.h", "graphviz.h" and
! 	"analyzer/ana-state-to-diagnostic-state.h".
! 	(program_state::dump_dot): New.
! 	* program-state.h: Include "text-art/tree-widget.h" and
! 	"analyzer/store.h".
! 	(class xml::document): New forward decl.
! 	(make_xml): New.
! 	(dump_xml_to_pp): New.
! 	(dump_xml_to_file): New.
! 	(dump_xml): New.
! 	(dump_dot): New.
! 	* record-layout.cc (record_layout::record_layout): Make param
! 	const_tree.
! 	* record-layout.h (item::item): Likewise.
! 	(item::m_field): Likewise.
! 	(record_layout::record_layout): Likewise.
! 	(record_layout::begin): New.
! 	(record_layout::end): New.
! 	* region-model.cc
! 	(exposure_through_uninit_copy::complain_about_fully_uninit_item):
! 	Use const_tree.
! 	(exposure_through_uninit_copy::complain_about_partially_uninit_item):
! 	Likewise.
! 	* region-model.h (region_model_context::get_state): New vfunc.
! 	(noop_region_model_context::get_state): New.
! 	(region_model_context_decorator::get_state): New.
! 	* sm-fd.cc (fd_leak::fd_leak): Add "final_state" param and capture
! 	it if present.
! 	(fd_leak::get_final_state): New.
! 	(fd_leak::m_final_state): New.
! 	(fd_state_machine::on_open): Pass nullptr for new "final_state"
! 	param.
! 	(fd_state_machine::on_creat): Likewise.
! 	(fd_state_machine::on_socket): Likewise.
! 	(fd_state_machine::on_accept): Likewise.
! 	(fd_state_machine::on_leak): Add state params and pass new state
! 	as final state to fd_leak ctor.
! 	* sm-file.cc: Include "analyzer/program-state.h".
! 	(file_leak::file_leak): Add "final_state" param and capture it if
! 	present.
! 	(file_leak::get_final_state): New.
! 	(file_leak::m_final_state): New.
! 	(fileptr_state_machine::on_leak): Add state params and pass new
! 	state as final state to fd_leak ctor.
! 	* sm-malloc.cc: Include
! 	"analyzer/ana-state-to-diagnostic-state.h".
! 	(malloc_leak::malloc_leak): Add "final_state" param and use it.
! 	(malloc_leak::get_final_state): New vfunc impl.
! 	(malloc_leak::m_final_state): New field.
! 	(malloc_state_machine::on_leak): Add state params; capture final
! 	state.
! 	(malloc_state_machine::add_state_to_xml): New.
! 	* sm.cc (state_machine::on_leak): Add "old_state" and "new_state"
! 	params.  Use nullptr.
! 	(state_machine::add_state_to_xml): New.
! 	(state_machine::add_global_state_to_xml): New.
! 	* sm.h (class xml_state): New forward decl.
! 	(state_machine::on_leak): Add state params.
! 	(state_machine::add_state_to_xml): New vfunc decl.
! 	(state_machine::add_global_state_to_xml): New vfunc decl.
! 	* store.h (bit_range::operator<): New.
! 	* varargs.cc (va_list_leak::va_list_leak): Add final_state param
! 	and capture it if non-null.
! 	(va_list_leak::get_final_state): New.
! 	(va_list_leak::m_final_state): New.
! 	(va_list_state_machine::on_leak): Add state params and pass final
! 	state to va_list_leak ctor.
! 
! 2025-06-18  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.h (checker_event::get_kind): New accessor.
! 	(checker_event::m_kind): Make private.
! 	* checker-path.cc (checker_path::maybe_log): Use accessor for
! 	checker_event::m_kind.
! 	(checker_path::add_event): Likewise.
! 	(checker_path::debug): Likewise.
! 	(checker_path::cfg_edge_pair_at_p): Likewise.
! 	(checker_path::inject_any_inlined_call_events): Likewise.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::prune_for_sm_diagnostic): Likewise.
! 	(diagnostic_manager::prune_for_sm_diagnostic): Likewise.
! 	(diagnostic_manager::consolidate_conditions): Likewise.
! 	(diagnostic_manager::consolidate_unwind_events): Likewise.
! 	(diagnostic_manager::finish_pruning): Likewise.
! 
! 2025-05-06  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* checker-event.cc (checker_event::checker_event): Update
! 	initialization of m_logical_loc.
! 	(checker_event::maybe_add_sarif_properties): Add "builder" param.
! 	Replace call to make_sarif_logical_location_object with call to
! 	sarif_property_bag::set_logical_location.
! 	(superedge_event::maybe_add_sarif_properties): Add "builder"
! 	param.
! 	* checker-event.h (checker_event::get_logical_location):
! 	Reimplement.
! 	(checker_event::maybe_add_sarif_properties): Add "builder" param.
! 	(checker_event::maybe_add_sarif_properties): Add "builder" param.
! 	(checker_event::m_logical_loc): Convert from tree_logical_location
! 	to logical_location.
! 	(superedge_event::maybe_add_sarif_properties): Add sarif_builder
! 	param.
! 	* checker-path.h (checker_path::checker_path): Add logical_loc_mgr
! 	param.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::emit_saved_diagnostic): Pass logical location
! 	manager to emission_path ctor.
! 	(diagnostic_manager::get_logical_location_manager): New.
! 	* diagnostic-manager.h
! 	(diagnostic_manager::get_logical_location_manager): New decl.
! 
! 2025-04-30  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* sm-malloc.cc (malloc_diagnostic::describe_state_change): Tweak
! 	the "EXPR is NULL" message for the case where EXPR is a null
! 	pointer.
! 
! 2025-04-29  Marc Poulhiès  <dkm@kataplop.net>
! 
! 	* exploded-graph.h (set_status): Rename parameter.
! 	* constraint-manager.cc (bound::ensure_closed): Likewise.
! 	(range::add_bound): Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/111536
! 	* engine.cc (maybe_update_for_edge): Update for new call_stmt
! 	param to region_model::push_frame.
! 	* program-state.cc (program_state::push_frame): Likewise.
! 	* region-model.cc (region_model::update_for_gcall): Likewise.
! 	(region_model::push_frame): Add "call_stmt" param.
! 	Handle DECL_RESULT with DECL_BY_REFERENCE set on it by stashing
! 	the region of the lhs of the call_stmt in the caller frame,
! 	and writing a reference to it within the "result" in the callee
! 	frame.
! 	(region_model::pop_frame): Don't write back to the LHS for
! 	DECL_BY_REFERENCE results.
! 	(selftest::test_stack_frames): Update for new call_stmt param to
! 	region_model::push_frame.
! 	(selftest::test_get_representative_path_var): Likewise.
! 	(selftest::test_state_merging): Likewise.
! 	(selftest::test_alloca): Likewise.
! 	* region-model.h (region_model::push_frame): Add "call_stmt"
! 	param.
! 	* region.cc: Include "tree-ssa.h".
! 	(region::can_have_initial_svalue_p): Use ssa_defined_default_def_p
! 	for ssa names, rather than special-casing it for just parameters.
! 	This should now also cover DECL_RESULT with DECL_BY_REFERENCE and
! 	hard registers.
! 	* sm-signal.cc (update_model_for_signal_handler): Update for new
! 	call_stmt param to region_model::push_frame.
! 	* state-purge.cc (state_purge_per_decl::process_worklists):
! 	Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/109366
! 	* region-model-manager.cc
! 	(region_model_manager::maybe_fold_sub_svalue): Sub-values of zero
! 	constants are zero.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	PR analyzer/97111
! 	* analyzer.cc (is_cxa_throw_p): New.
! 	(is_cxa_rethrow_p): New.
! 	* analyzer.opt (Wanalyzer-throw-of-unexpected-type): New.
! 	* analyzer.opt.urls: Regenerate.
! 	* call-info.cc (custom_edge_info::create_enode): New.
! 	* call-info.h (call_info::print): Drop "final".
! 	(call_info::add_events_to_path): Likewise.
! 	* checker-event.cc (event_kind_to_string): Add cases for
! 	event_kind::catch_, event_kind::throw_, and event_kind::unwind.
! 	(explicit_throw_event::print_desc): New.
! 	(throw_from_call_to_external_fn_event::print_desc): New.
! 	(unwind_event::print_desc): New.
! 	* checker-event.h (enum class event_kind): Add catch_, throw_,
! 	and unwind.
! 	(class catch_cfg_edge_event): New.
! 	(class throw_event): New.
! 	(class explicit_throw_event): New.
! 	(class throw_from_call_to_external_fn_event): New.
! 	(class unwind_event): New.
! 	* common.h (class eh_dispatch_cfg_superedge): New forward decl.
! 	(class eh_dispatch_try_cfg_superedge): New forward decl.
! 	(class eh_dispatch_allowed_cfg_superedge): New forward decl.
! 	(custom_edge_info::create_enode): New vfunc decl.
! 	(is_cxa_throw_p): New decl.
! 	(is_cxa_rethrow_p): New decl.
! 	* diagnostic-manager.cc
! 	(diagnostic_manager::add_events_for_superedge): Special-case edges
! 	for eh_dispach_try.
! 	(diagnostic_manager::prune_path): Call consolidate_unwind_events.
! 	(diagnostic_manager::prune_for_sm_diagnostic): Don't filter the new
! 	event_kinds.
! 	(diagnostic_manager::consolidate_unwind_events): New.
! 	* diagnostic-manager.h
! 	(diagnostic_manager::consolidate_unwind_events): New decl.
! 	* engine.cc (exploded_node::on_stmt_pre): Handle "__cxa_throw",
! 	"__cxa_rethrow", and resx statements.
! 	(class throw_custom_edge): New.
! 	(class unwind_custom_edge): New.
! 	(get_eh_outedge): New.
! 	(exploded_graph::unwind_from_exception): New.
! 	(exploded_node::on_throw): New.
! 	(exploded_node::on_resx): New.
! 	(exploded_graph::get_or_create_node): Add "add_to_worklist" param
! 	and use it.
! 	(exploded_graph::process_node): Use edge_info's create_enode vfunc
! 	to create enodes, rather than calling get_or_create_node directly.
! 	Ignore CFG edges in the sgraph flagged with EH whilst we're
! 	exploring the egraph.
! 	(exploded_graph_annotator::print_enode): Handle case
! 	exploded_node::status::special.
! 	* exploded-graph.h (exploded_node::status): Add value "special".
! 	(exploded_node::on_throw): New decl.
! 	(exploded_node::on_resx): New decl.
! 	(exploded_graph::get_or_create_node): Add optional
! 	"add_to_worklist" param.
! 	(exploded_graph::unwind_from_exception): New decl.
! 	* kf-lang-cp.cc (class kf_cxa_allocate_exception): New.
! 	(class kf_cxa_begin_catch): New.
! 	(class kf_cxa_end_catch): New.
! 	(class throw_of_unexpected_type): New.
! 	(class kf_cxa_call_unexpected): New.
! 	(register_known_functions_lang_cp): Register known functions
! 	"__cxa_allocate_exception", "__cxa_begin_catch",
! 	"__cxa_end_catch", and "__cxa_call_unexpected".
! 	* kf.cc (class kf_eh_pointer): New.
! 	(register_known_functions): Register it for BUILT_IN_EH_POINTER.
! 	* region-model.cc: Include "analyzer/function-set.h".
! 	(exception_node::operator==): New.
! 	(exception_node::dump_to_pp): New.
! 	(exception_node::dump): New.
! 	(exception_node::to_json): New.
! 	(exception_node::make_dump_widget): New.
! 	(exception_node::maybe_get_type): New.
! 	(exception_node::add_to_reachable_regions): New.
! 	(region_model::region_model): Initialize
! 	m_thrown_exceptions_stack and m_caught_exceptions_stack.
! 	(region_model::operator=): Likewise.
! 	(region_model::operator==): Compare them.
! 	(region_model::dump_to_pp): Dump exception stacks.
! 	(region_model::to_json): Add exception stacks.
! 	(region_model::make_dump_widget): Likewise.
! 	(class exception_thrown_from_unrecognized_call): New.
! 	(get_fns_assumed_not_to_throw): New.
! 	(can_throw_p): New.
! 	(region_model::check_for_throw_inside_call): New.
! 	(region_model::on_call_pre): Call check_for_throw_inside_call
! 	on unknown fns or those we don't have a body for.
! 	(region_model::maybe_update_for_edge): Handle eh_dispatch_stmt
! 	statements.  Drop old code that called
! 	apply_constraints_for_exception on EDGE_EH edges.
! 	(class rejected_eh_dispatch): New.
! 	(exception_matches_type_p): New.
! 	(matches_any_exception_type_p): New.
! 	(region_model::apply_constraints_for_eh_dispatch): New.
! 	(region_model::apply_constraints_for_eh_dispatch_try): New.
! 	(region_model::apply_constraints_for_eh_dispatch_allowed): New.
! 	(region_model::apply_constraints_for_exception): Delete.
! 	(region_model::can_merge_with_p): Don't merge models with
! 	non-equal exception stacks.
! 	(region_model::get_referenced_base_regions): Add regions from
! 	exception stacks.
! 	* region-model.h (struct exception_node): New.
! 	(region_model::push_thrown_exception): New.
! 	(region_model::get_current_thrown_exception): New.
! 	(region_model::pop_thrown_exception): New.
! 	(region_model::push_caught_exception): New.
! 	(region_model::get_current_caught_exception): New.
! 	(region_model::pop_caught_exception): New.
! 	(region_model::apply_constraints_for_eh_dispatch_try): New decl.
! 	(region_model::apply_constraints_for_eh_dispatch_allowed) New decl.
! 	(region_model::apply_constraints_for_exception): Delete.
! 	(region_model::apply_constraints_for_eh_dispatch): New decl.
! 	(region_model::check_for_throw_inside_call): New decl.
! 	(region_model::m_thrown_exceptions_stack): New field.
! 	(region_model::m_caught_exceptions_stack): New field.
! 	* supergraph.cc: Include "except.h" and "analyzer/region-model.h".
! 	(supergraph::add_cfg_edge): Special-case eh_dispatch edges.
! 	(superedge::get_description): Use default_tree_printer.
! 	(get_catch): New.
! 	(eh_dispatch_cfg_superedge::make): New.
! 	(eh_dispatch_cfg_superedge::eh_dispatch_cfg_superedge): New.
! 	(eh_dispatch_cfg_superedge::get_eh_status): New.
! 	(eh_dispatch_try_cfg_superedge::dump_label_to_pp): New.
! 	(eh_dispatch_try_cfg_superedge::apply_constraints): New.
! 	(eh_dispatch_allowed_cfg_superedge::eh_dispatch_allowed_cfg_superedge):
! 	New.
! 	(eh_dispatch_allowed_cfg_superedge::dump_label_to_pp): New.
! 	(eh_dispatch_allowed_cfg_superedge::apply_constraints): New.
! 	* supergraph.h: Include "except.h".
! 	(superedge::dyn_cast_eh_dispatch_cfg_superedge): New vfunc.
! 	(superedge::dyn_cast_eh_dispatch_try_cfg_superedge): New vfunc.
! 	(superedge::dyn_cast_eh_dispatch_allowed_cfg_superedge): New
! 	vfunc.
! 	(class eh_dispatch_cfg_superedge): New.
! 	(is_a_helper <const eh_dispatch_cfg_superedge *>::test): New.
! 	(class eh_dispatch_try_cfg_superedge): New.
! 	(is_a_helper <const eh_dispatch_try_cfg_superedge *>::test): New.
! 	(class eh_dispatch_allowed_cfg_superedge): New.
! 	(is_a_helper <const eh_dispatch_allowed_cfg_superedge *>::test):
! 	New.
! 	* svalue.cc (svalue::maybe_get_type_from_typeinfo): New.
! 	* svalue.h (svalue::maybe_get_type_from_typeinfo): New decl.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Replace uses of ::make_unique with
! 	std::make_unique.
! 	* analyzer.cc: Likewise.
! 	* bounds-checking.cc: Likewise.
! 	* call-details.cc: Likewise.
! 	* call-info.cc: Likewise.
! 	* call-string.cc: Likewise.
! 	* checker-path.cc: Likewise.
! 	* common.h: Drop include of "make-unique.h".
! 	* constraint-manager.cc: Replace uses of ::make_unique with
! 	std::make_unique.
! 	* diagnostic-manager.cc: Likewise.
! 	* engine.cc: Likewise.
! 	* infinite-loop.cc: Likewise.
! 	* infinite-recursion.cc: Likewise.
! 	* kf-analyzer.cc: Likewise.
! 	* kf-lang-cp.cc: Likewise.
! 	* kf.cc: Likewise.
! 	* pending-diagnostic.cc: Likewise.
! 	* program-point.cc: Likewise; drop #include.
! 	* program-state.cc: Likewise.
! 	* ranges.cc: Likewise.
! 	* region-model.cc: Likewise.
! 	* region.cc: Likewise; drop #include.
! 	* sm-fd.cc: Likewise.
! 	* 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.cc: Likewise.
! 	* store.cc: Likewise.
! 	* supergraph.cc: Likewise.
! 	* svalue.cc: Likewise; drop #include.
! 	* varargs.cc: Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* engine.cc (class plugin_analyzer_init_impl): Convert
! 	"m_checkers" to use std::vector of std::unique_ptr.  Convert
! 	"m_known_fn_mgr" to a reference.
! 	(impl_run_checkers): Convert "checkers" to use std::vector of
! 	std::unique_ptr and move it into the extrinsic_state.
! 	* program-state.cc (extrinsic_state::dump_to_pp): Update for
! 	changes to m_checkers.
! 	(extrinsic_state::to_json): Likewise.
! 	(extrinsic_state::get_sm_idx_by_name): Likewise.
! 	(selftest::test_sm_state_map): Update to use std::unique_ptr
! 	for state machines.
! 	(selftest::test_program_state_1): Likewise.
! 	(selftest::test_program_state_2): Likewise.
! 	(selftest::test_program_state_merging): Likewise.
! 	(selftest::test_program_state_merging_2): Likewise.
! 	* program-state.h (class extrinsic_state): Convert "m_checkers" to
! 	use std::vector of std::unique_ptr and to be owned by this object,
! 	rather than a reference.  Add ctor for use in selftests.
! 	* sm-fd.cc (make_fd_state_machine): Update to use std::unique_ptr.
! 	* sm-file.cc (make_fileptr_state_machine): Likewise.
! 	* sm-malloc.cc (make_malloc_state_machine): Likewise.
! 	* sm-pattern-test.cc (make_pattern_test_state_machine): Likewise.
! 	* sm-sensitive.cc (make_sensitive_state_machine): Likewise.
! 	* sm-signal.cc (make_signal_state_machine): Likewise.
! 	* sm-taint.cc (make_taint_state_machine): Likewise.
! 	* sm.cc: Define INCLUDE_LIST.
! 	(make_checkers): Return the vector directly, rather than pass it
! 	in by reference.  Update to use std::unique_ptr throughout.  Use
! 	an intermediate list, and use that to filter with
! 	flag_analyzer_checker, fixing memory leak for this case.
! 	* sm.h: (make_checkers): Return the vector directly, rather than
! 	pass it in by reference, and use std::vector of std::unique_ptr.
! 	(make_malloc_state_machine): Convert return type to use std::unique_ptr.
! 	(make_fileptr_state_machine): Likewise.
! 	(make_taint_state_machine): Likewise.
! 	(make_sensitive_state_machine): Likewise.
! 	(make_signal_state_machine): Likewise.
! 	(make_pattern_test_state_machine): Likewise.
! 	(make_va_list_state_machine): Likewise.
! 	(make_fd_state_machine): Likewise.
! 	* varargs.cc (make_va_list_state_machine): Update to use
! 	std::unique_ptr.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-summary.cc (call_summary_replay::call_summary_replay):
! 	Convert "summary" from call_summary * to call_summary &.
! 	(call_summary_replay::dump_to_pp): Likewise for m_summary.
! 	* call-summary.h (call_summary_replay::call_summary_replay):
! 	Likewise for "summary".
! 	(call_summary_replay::m_summary): Likewise.
! 	* engine.cc (call_summary_edge_info::call_summary_edge_info):
! 	Likewise.
! 	(call_summary_edge_info::update_state): Likewise.
! 	(call_summary_edge_info::update_model): Likewise.
! 	(call_summary_edge_info::print_desc): Likewise for m_summary.
! 	(call_summary_edge_info::m_summary): Likewise.
! 	(exploded_node::replay_call_summaries): Update for change to
! 	replay_call_summary.
! 	(exploded_node::replay_call_summary): Convert "summary" from
! 	call_summary * to call_summary &.
! 	* exploded-graph.h (exploded_node::replay_call_summary): Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.cc: Convert gcall * to gcall & where we know the
! 	pointer must be non-null.
! 	* call-details.cc: Likewise.
! 	* call-details.h: Likewise.
! 	* call-info.cc: Likewise.
! 	* call-info.h: Likewise.
! 	* call-summary.h: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-event.h: Likewise.
! 	* common.h: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* engine.cc: Likewise.
! 	* exploded-graph.h: Likewise.
! 	* kf-analyzer.cc: Likewise.
! 	* kf-lang-cp.cc: Likewise.
! 	* kf.cc: Likewise.
! 	* known-function-manager.cc: Likewise.
! 	* program-state.cc: Likewise.
! 	* program-state.h: Likewise.
! 	* region-model.cc: Likewise.
! 	* region-model.h: Likewise.
! 	* sm-fd.cc: Likewise.
! 	* sm-file.cc: Likewise.
! 	* sm-malloc.cc: Likewise.
! 	* sm-sensitive.cc: Likewise.
! 	* sm-signal.cc: Likewise.
! 	* sm-taint.cc: Likewise.
! 	* sm.h: Likewise.
! 	* store.cc: Likewise.
! 	* store.h: Likewise.
! 	* supergraph.cc: Likewise.
! 	* supergraph.h: Likewise.
! 	* svalue.h: Likewise.
! 	* varargs.cc: Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* access-diagram.cc: Convert enum access_direction to
! 	"enum class".
! 	* bounds-checking.cc: Likewise.
! 	* checker-event.cc: Convert enum event_kind to "enum class".
! 	* checker-event.h: Likewise.
! 	* checker-path.cc: Likewise.
! 	* common.h: Convert enum access_direction to "enum class".
! 	* constraint-manager.cc: Convert enum bound_kind to "enum class".
! 	* constraint-manager.h: Likewise.
! 	* diagnostic-manager.cc: Convert enum event_kind to "enum class".
! 	* engine.cc: Convert enum status to "enum class".
! 	* exploded-graph.h: Likewise.
! 	* infinite-loop.cc: Likewise.
! 	* kf-lang-cp.cc: Convert enum poison_kind to "enum class".
! 	* kf.cc: Likewise.
! 	* region-model-manager.cc: Likewise.
! 	* region-model.cc: Likewise; also for enum access_direction.
! 	* svalue.cc: Likewise.
! 	* svalue.h: Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* analyzer.h: Rename to...
! 	* common.h: ...this.  Add define of INCLUDE_VECTOR, includes of
! 	"config.h", "system.h", "coretypes.h", "make-unique.h", "tree.h",
! 	"function.h", "basic-block.h", "gimple.h", "options.h",
! 	"bitmap.h", "diagnostic-core.h", and "diagnostic-path.h".
! 	* access-diagram.h: Don't include "analyzer/analyzer.h".
! 	* access-diagram.cc: Reorganize includes to #include
! 	"analyzer/common.h" first, then group by subsystem, dropping
! 	redundant headers.
! 	* analysis-plan.cc: Likewise.
! 	* analyzer-language.cc: Likewise.
! 	* analyzer-pass.cc: Likewise.
! 	* analyzer-selftests.cc: Likewise.
! 	* analyzer.cc: Likewise.
! 	* bounds-checking.cc: Likewise.
! 	* call-details.cc: Likewise.
! 	* call-info.cc: Likewise.
! 	* call-string.cc: Likewise.
! 	* call-summary.cc: Likewise.
! 	* checker-event.cc: Likewise.
! 	* checker-path.cc: Likewise.
! 	* complexity.cc: Likewise.
! 	* constraint-manager.cc: Likewise.
! 	* diagnostic-manager.cc: Likewise.
! 	* engine.cc: Likewise.
! 	* feasible-graph.cc: Likewise.
! 	* infinite-loop.cc: Likewise.
! 	* 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.
! 	* ranges.cc: Likewise.
! 	* record-layout.cc: Likewise.
! 	* region-model-asm.cc: Likewise.
! 	* region-model-manager.cc: Likewise.
! 	* region-model-reachability.cc: Likewise.
! 	* region-model.cc: Likewise.
! 	* region.cc: Likewise.
! 	* sm-fd.cc: Likewise.
! 	* 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.cc: Likewise.
! 	* state-purge.cc: Likewise.
! 	* store.cc: Likewise.
! 	* supergraph.cc: Likewise.
! 	* svalue.cc: Likewise.
! 	* symbol.cc: Likewise.
! 	* trimmed-graph.cc: Likewise.
! 	* varargs.cc: Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* region-model.cc (region_model::on_stmt_pre): Use internal_error
! 	if we see an unexpected gimple stmt code.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* call-details.cc (call_details::dump): New overload.
! 	(call_details::make_dump_widget): New.
! 	* call-details.h (call_details::dump): Declare new overload.
! 	(call_details::make_dump_widget): New decl.
  
  2025-03-14  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 13142,13148 ****
  
  	* 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
--- 15482,15488 ----
  
  	* Initial creation
  
! Copyright (C) 2019-2026 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-15.2.0/gcc/analyzer/access-diagram.cc gcc-16.1.0-RC-20260423/gcc/analyzer/access-diagram.cc
*** gcc-15.2.0/gcc/analyzer/access-diagram.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/access-diagram.cc	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** You should have received a copy of the G
*** 17,44 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
- #include "config.h"
  #define INCLUDE_ALGORITHM
  #define INCLUDE_MAP
  #define INCLUDE_SET
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "diagnostic.h"
  #include "intl.h"
! #include "make-unique.h"
! #include "tree-diagnostic.h" /* for default_tree_printer.  */
! #include "analyzer/analyzer.h"
  #include "analyzer/region-model.h"
  #include "analyzer/access-diagram.h"
- #include "text-art/ruler.h"
- #include "fold-const.h"
  #include "analyzer/analyzer-selftests.h"
  
  #if ENABLE_ANALYZER
--- 17,34 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
  #define INCLUDE_ALGORITHM
  #define INCLUDE_MAP
  #define INCLUDE_SET
! #include "analyzer/common.h"
! 
! #include "fold-const.h"
  #include "intl.h"
! 
! #include "text-art/ruler.h"
! 
  #include "analyzer/region-model.h"
  #include "analyzer/access-diagram.h"
  #include "analyzer/analyzer-selftests.h"
  
  #if ENABLE_ANALYZER
*************** get_access_size_str (style_manager &sm,
*** 245,251 ****
        pp_format_decoder (&pp) = default_tree_printer;
        if (num_bits.maybe_print_for_user (&pp, op.m_model))
  	{
! 	  if (op.m_dir == DIR_READ)
  	    return fmt_styled_string (sm,
  				      _("read of %qT (%s)"),
  				      type,
--- 235,241 ----
        pp_format_decoder (&pp) = default_tree_printer;
        if (num_bits.maybe_print_for_user (&pp, op.m_model))
  	{
! 	  if (op.m_dir == access_direction::read)
  	    return fmt_styled_string (sm,
  				      _("read of %qT (%s)"),
  				      type,
*************** get_access_size_str (style_manager &sm,
*** 257,263 ****
  				      pp_formatted_text (&pp));
  	}
      }
!   if (op.m_dir == DIR_READ)
      {
        if (auto p
  	  = num_bits.maybe_get_formatted_str (sm, op.m_model,
--- 247,253 ----
  				      pp_formatted_text (&pp));
  	}
      }
!   if (op.m_dir == access_direction::read)
      {
        if (auto p
  	  = num_bits.maybe_get_formatted_str (sm, op.m_model,
*************** get_access_size_str (style_manager &sm,
*** 284,296 ****
  
    if (type)
      {
!       if (op.m_dir == DIR_READ)
  	return fmt_styled_string (sm, _("read of %qT"), type);
        else
  	return fmt_styled_string (sm, _("write of %qT"), type);
      }
  
!   if (op.m_dir == DIR_READ)
      return styled_string (sm, _("read"));
    else
      return styled_string (sm, _("write"));
--- 274,286 ----
  
    if (type)
      {
!       if (op.m_dir == access_direction::read)
  	return fmt_styled_string (sm, _("read of %qT"), type);
        else
  	return fmt_styled_string (sm, _("write of %qT"), type);
      }
  
!   if (op.m_dir == access_direction::read)
      return styled_string (sm, _("read"));
    else
      return styled_string (sm, _("write"));
*************** bit_size_expr::maybe_get_formatted_str (
*** 375,385 ****
  	  if (!wi::fits_uhwi_p (concrete_num_bytes))
  	    return nullptr;
  	  if (concrete_num_bytes == 1)
! 	    return ::make_unique <text_art::styled_string>
  	      (fmt_styled_string (sm, concrete_single_byte_fmt,
  				  concrete_num_bytes.to_uhwi ()));
  	  else
! 	    return ::make_unique <text_art::styled_string>
  	      (fmt_styled_string (sm, concrete_plural_bytes_fmt,
  				  concrete_num_bytes.to_uhwi ()));
  	}
--- 365,375 ----
  	  if (!wi::fits_uhwi_p (concrete_num_bytes))
  	    return nullptr;
  	  if (concrete_num_bytes == 1)
! 	    return std::make_unique <text_art::styled_string>
  	      (fmt_styled_string (sm, concrete_single_byte_fmt,
  				  concrete_num_bytes.to_uhwi ()));
  	  else
! 	    return std::make_unique <text_art::styled_string>
  	      (fmt_styled_string (sm, concrete_plural_bytes_fmt,
  				  concrete_num_bytes.to_uhwi ()));
  	}
*************** bit_size_expr::maybe_get_formatted_str (
*** 389,395 ****
  	  pp_format_decoder (&pp) = default_tree_printer;
  	  if (!num_bytes->maybe_print_for_user (&pp, model))
  	    return nullptr;
! 	  return ::make_unique <text_art::styled_string>
  	    (fmt_styled_string (sm, symbolic_bytes_fmt,
  				pp_formatted_text (&pp)));
  	}
--- 379,385 ----
  	  pp_format_decoder (&pp) = default_tree_printer;
  	  if (!num_bytes->maybe_print_for_user (&pp, model))
  	    return nullptr;
! 	  return std::make_unique <text_art::styled_string>
  	    (fmt_styled_string (sm, symbolic_bytes_fmt,
  				pp_formatted_text (&pp)));
  	}
*************** bit_size_expr::maybe_get_formatted_str (
*** 400,410 ****
        if (!wi::fits_uhwi_p (concrete_num_bits))
  	return nullptr;
        if (concrete_num_bits == 1)
! 	return ::make_unique <text_art::styled_string>
  	  (fmt_styled_string (sm, concrete_single_bit_fmt,
  			      concrete_num_bits.to_uhwi ()));
        else
! 	return ::make_unique <text_art::styled_string>
  	  (fmt_styled_string (sm, concrete_plural_bits_fmt,
  			      concrete_num_bits.to_uhwi ()));
      }
--- 390,400 ----
        if (!wi::fits_uhwi_p (concrete_num_bits))
  	return nullptr;
        if (concrete_num_bits == 1)
! 	return std::make_unique <text_art::styled_string>
  	  (fmt_styled_string (sm, concrete_single_bit_fmt,
  			      concrete_num_bits.to_uhwi ()));
        else
! 	return std::make_unique <text_art::styled_string>
  	  (fmt_styled_string (sm, concrete_plural_bits_fmt,
  			      concrete_num_bits.to_uhwi ()));
      }
*************** bit_size_expr::maybe_get_formatted_str (
*** 414,420 ****
        pp_format_decoder (&pp) = default_tree_printer;
        if (!m_num_bits.maybe_print_for_user (&pp, model))
  	return nullptr;
!       return ::make_unique <text_art::styled_string>
  	(fmt_styled_string (sm, symbolic_bits_fmt,
  			    pp_formatted_text (&pp)));
      }
--- 404,410 ----
        pp_format_decoder (&pp) = default_tree_printer;
        if (!m_num_bits.maybe_print_for_user (&pp, model))
  	return nullptr;
!       return std::make_unique <text_art::styled_string>
  	(fmt_styled_string (sm, symbolic_bits_fmt,
  			    pp_formatted_text (&pp)));
      }
*************** public:
*** 1126,1132 ****
        {
  	logger.start_log_line ();
  	logger.log_partial ("table_x: %i", table_x);
! 	access_range range_for_column (NULL, bit_range (0, 0));
  	if (maybe_get_access_range_for_table_x (table_x, &range_for_column))
  	  {
  	    logger.log_partial (": range: ");
--- 1116,1122 ----
        {
  	logger.start_log_line ();
  	logger.log_partial ("table_x: %i", table_x);
! 	access_range range_for_column (nullptr, bit_range (0, 0));
  	if (maybe_get_access_range_for_table_x (table_x, &range_for_column))
  	  {
  	    logger.log_partial (": range: ");
*************** public:
*** 1226,1233 ****
      auto_vec <const binding_key *> binding_keys;
      for (auto iter : map)
        {
! 	const binding_key *key = iter.first;
! 	const svalue *bound_sval = iter.second;
  	if (const concrete_binding *concrete_key
  	      = key->dyn_cast_concrete_binding ())
  	  {
--- 1216,1223 ----
      auto_vec <const binding_key *> binding_keys;
      for (auto iter : map)
        {
! 	const binding_key *key = iter.m_key;
! 	const svalue *bound_sval = iter.m_sval;
  	if (const concrete_binding *concrete_key
  	      = key->dyn_cast_concrete_binding ())
  	  {
*************** class valid_region_spatial_item : public
*** 1310,1316 ****
  {
  public:
    valid_region_spatial_item (const access_operation &op,
! 			     diagnostic_event_id_t region_creation_event_id,
  			     const theme &theme)
    : m_op (op),
      m_region_creation_event_id (region_creation_event_id),
--- 1300,1306 ----
  {
  public:
    valid_region_spatial_item (const access_operation &op,
! 			     diagnostics::paths::event_id_t region_creation_event_id,
  			     const theme &theme)
    : m_op (op),
      m_region_creation_event_id (region_creation_event_id),
*************** public:
*** 1533,1539 ****
  
  private:
    const access_operation &m_op;
!   diagnostic_event_id_t m_region_creation_event_id;
    mutable const boundaries *m_boundaries;
    const svalue *m_existing_sval;
    std::unique_ptr<spatial_item> m_existing_sval_spatial_item;
--- 1523,1529 ----
  
  private:
    const access_operation &m_op;
!   diagnostics::paths::event_id_t m_region_creation_event_id;
    mutable const boundaries *m_boundaries;
    const svalue *m_existing_sval;
    std::unique_ptr<spatial_item> m_existing_sval_spatial_item;
*************** make_written_svalue_spatial_item (const
*** 1975,1985 ****
    if (const initial_svalue *initial_sval = sval.dyn_cast_initial_svalue ())
      if (const string_region *string_reg
  	= initial_sval->get_region ()->dyn_cast_string_region ())
!       return make_unique <string_literal_spatial_item>
  	(sval, actual_bits,
  	 *string_reg, theme,
  	 svalue_spatial_item::kind::WRITTEN);
!   return make_unique <written_svalue_spatial_item> (op, sval, actual_bits);
  }
  
  static std::unique_ptr<spatial_item>
--- 1965,1975 ----
    if (const initial_svalue *initial_sval = sval.dyn_cast_initial_svalue ())
      if (const string_region *string_reg
  	= initial_sval->get_region ()->dyn_cast_string_region ())
!       return std::make_unique <string_literal_spatial_item>
  	(sval, actual_bits,
  	 *string_reg, theme,
  	 svalue_spatial_item::kind::WRITTEN);
!   return std::make_unique <written_svalue_spatial_item> (op, sval, actual_bits);
  }
  
  static std::unique_ptr<spatial_item>
*************** make_existing_svalue_spatial_item (const
*** 2000,2006 ****
  	const initial_svalue *initial_sval = (const initial_svalue *)sval;
  	if (const string_region *string_reg
  	    = initial_sval->get_region ()->dyn_cast_string_region ())
! 	  return make_unique <string_literal_spatial_item>
  	    (*sval, bits,
  	     *string_reg, theme,
  	     svalue_spatial_item::kind::EXISTING);
--- 1990,1996 ----
  	const initial_svalue *initial_sval = (const initial_svalue *)sval;
  	if (const string_region *string_reg
  	    = initial_sval->get_region ()->dyn_cast_string_region ())
! 	  return std::make_unique <string_literal_spatial_item>
  	    (*sval, bits,
  	     *string_reg, theme,
  	     svalue_spatial_item::kind::EXISTING);
*************** make_existing_svalue_spatial_item (const
*** 2008,2014 ****
        }
  
      case SK_COMPOUND:
!       return make_unique<compound_svalue_spatial_item>
  	(*((const compound_svalue *)sval),
  	 bits,
  	 svalue_spatial_item::kind::EXISTING,
--- 1998,2004 ----
        }
  
      case SK_COMPOUND:
!       return std::make_unique<compound_svalue_spatial_item>
  	(*((const compound_svalue *)sval),
  	 bits,
  	 svalue_spatial_item::kind::EXISTING,
*************** class access_diagram_impl : public vbox_
*** 2022,2028 ****
  {
  public:
    access_diagram_impl (const access_operation &op,
! 		       diagnostic_event_id_t region_creation_event_id,
  		       style_manager &sm,
  		       const theme &theme,
  		       logger *logger)
--- 2012,2018 ----
  {
  public:
    access_diagram_impl (const access_operation &op,
! 		       diagnostics::paths::event_id_t region_creation_event_id,
  		       style_manager &sm,
  		       const theme &theme,
  		       logger *logger)
*************** public:
*** 2116,2122 ****
      }
  
      m_col_widths
!       = make_unique <table_dimension_sizes> (m_btm.get_num_columns ());
  
      /* Now create child widgets.  */
  
--- 2106,2112 ----
      }
  
      m_col_widths
!       = std::make_unique <table_dimension_sizes> (m_btm.get_num_columns ());
  
      /* Now create child widgets.  */
  
*************** private:
*** 2211,2218 ****
    std::unique_ptr<boundaries>
    find_boundaries () const
    {
!     std::unique_ptr<boundaries> result
!       = make_unique<boundaries> (*m_op.m_base_region, m_logger);
  
      m_valid_region_spatial_item.add_boundaries (*result, m_logger);
      m_accessed_region_spatial_item.add_boundaries (*result, m_logger);
--- 2201,2208 ----
    std::unique_ptr<boundaries>
    find_boundaries () const
    {
!     auto result
!       = std::make_unique<boundaries> (*m_op.m_base_region, m_logger);
  
      m_valid_region_spatial_item.add_boundaries (*result, m_logger);
      m_accessed_region_spatial_item.add_boundaries (*result, m_logger);
*************** private:
*** 2254,2260 ****
      for (int table_x = 0; table_x < t.get_size ().w; table_x++)
        {
  	const int table_y = 1;
! 	access_range range_for_column (NULL, bit_range (0, 0));
  	if (m_btm.maybe_get_access_range_for_table_x (table_x,
  						      &range_for_column))
  	  {
--- 2244,2250 ----
      for (int table_x = 0; table_x < t.get_size ().w; table_x++)
        {
  	const int table_y = 1;
! 	access_range range_for_column (nullptr, bit_range (0, 0));
  	if (m_btm.maybe_get_access_range_for_table_x (table_x,
  						      &range_for_column))
  	  {
*************** private:
*** 2271,2277 ****
  
    void add_direction_widget ()
    {
!     add_child (::make_unique<direction_widget> (*this, m_btm));
    }
  
    void add_invalid_accesses_to_region_table (table &t_region)
--- 2261,2267 ----
  
    void add_direction_widget ()
    {
!     add_child (std::make_unique<direction_widget> (*this, m_btm));
    }
  
    void add_invalid_accesses_to_region_table (table &t_region)
*************** private:
*** 2382,2388 ****
  	bit_size_expr num_before_bits
  	  (invalid_before_bits.get_size (m_op.get_manager ()));
  	std::unique_ptr<styled_string> label;
! 	if (m_op.m_dir == DIR_READ)
  	  label = num_before_bits.maybe_get_formatted_str
  	    (m_sm, m_op.m_model,
  	     _("under-read of %wi bit"),
--- 2372,2378 ----
  	bit_size_expr num_before_bits
  	  (invalid_before_bits.get_size (m_op.get_manager ()));
  	std::unique_ptr<styled_string> label;
! 	if (m_op.m_dir == access_direction::read)
  	  label = num_before_bits.maybe_get_formatted_str
  	    (m_sm, m_op.m_model,
  	     _("under-read of %wi bit"),
*************** private:
*** 2423,2429 ****
      maybe_add_gap (w, invalid_before_bits, valid_bits);
  
      std::unique_ptr<styled_string> label;
!     if (m_op.m_dir == DIR_READ)
        label = num_valid_bits.maybe_get_formatted_str (m_sm,
  						      m_op.m_model,
  						      _("size: %wi bit"),
--- 2413,2419 ----
      maybe_add_gap (w, invalid_before_bits, valid_bits);
  
      std::unique_ptr<styled_string> label;
!     if (m_op.m_dir == access_direction::read)
        label = num_valid_bits.maybe_get_formatted_str (m_sm,
  						      m_op.m_model,
  						      _("size: %wi bit"),
*************** private:
*** 2459,2465 ****
  	bit_size_expr num_after_bits
  	  (invalid_after_bits.get_size (m_op.get_manager ()));
  	std::unique_ptr<styled_string> label;
! 	if (m_op.m_dir == DIR_READ)
  	  label = num_after_bits.maybe_get_formatted_str
  	    (m_sm, m_op.m_model,
  	     _("over-read of %wi bit"),
--- 2449,2455 ----
  	bit_size_expr num_after_bits
  	  (invalid_after_bits.get_size (m_op.get_manager ()));
  	std::unique_ptr<styled_string> label;
! 	if (m_op.m_dir == access_direction::read)
  	  label = num_after_bits.maybe_get_formatted_str
  	    (m_sm, m_op.m_model,
  	     _("over-read of %wi bit"),
*************** private:
*** 2505,2511 ****
      std::vector<bit_offset_t> bit_sizes (num_columns);
      for (unsigned table_x = 0; table_x < num_columns; table_x++)
        {
! 	access_range range_for_column (NULL, bit_range (0, 0));
  	if (m_btm.maybe_get_access_range_for_table_x (table_x,
  						      &range_for_column))
  	  {
--- 2495,2501 ----
      std::vector<bit_offset_t> bit_sizes (num_columns);
      for (unsigned table_x = 0; table_x < num_columns; table_x++)
        {
! 	access_range range_for_column (nullptr, bit_range (0, 0));
  	if (m_btm.maybe_get_access_range_for_table_x (table_x,
  						      &range_for_column))
  	  {
*************** private:
*** 2574,2580 ****
    }
  
    const access_operation &m_op;
!   diagnostic_event_id_t m_region_creation_event_id;
    style_manager &m_sm;
    const theme &m_theme;
    logger *m_logger;
--- 2564,2570 ----
    }
  
    const access_operation &m_op;
!   diagnostics::paths::event_id_t m_region_creation_event_id;
    style_manager &m_sm;
    const theme &m_theme;
    logger *m_logger;
*************** direction_widget::paint_to_canvas (canva
*** 2658,2664 ****
  	    (canvas,
  	     canvas_x,
  	     canvas::range_t (get_y_range ()),
! 	     (m_dia_impl.get_op ().m_dir == DIR_READ
  	      ? theme::y_arrow_dir::UP
  	      : theme::y_arrow_dir::DOWN),
  	     style_id);
--- 2648,2654 ----
  	    (canvas,
  	     canvas_x,
  	     canvas::range_t (get_y_range ()),
! 	     (m_dia_impl.get_op ().m_dir == access_direction::read
  	      ? theme::y_arrow_dir::UP
  	      : theme::y_arrow_dir::DOWN),
  	     style_id);
*************** direction_widget::paint_to_canvas (canva
*** 2672,2686 ****
     an access_diagram_impl.  */
  
  access_diagram::access_diagram (const access_operation &op,
! 				diagnostic_event_id_t region_creation_event_id,
  				style_manager &sm,
  				const theme &theme,
  				logger *logger)
! : wrapper_widget (make_unique <access_diagram_impl> (op,
! 						     region_creation_event_id,
! 						     sm,
! 						     theme,
! 						     logger))
  {
  }
  
--- 2662,2677 ----
     an access_diagram_impl.  */
  
  access_diagram::access_diagram (const access_operation &op,
! 				diagnostics::paths::event_id_t region_creation_event_id,
  				style_manager &sm,
  				const theme &theme,
  				logger *logger)
! : wrapper_widget
!     (std::make_unique <access_diagram_impl> (op,
! 					     region_creation_event_id,
! 					     sm,
! 					     theme,
! 					     logger))
  {
  }
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/access-diagram.h gcc-16.1.0-RC-20260423/gcc/analyzer/access-diagram.h
*** gcc-15.2.0/gcc/analyzer/access-diagram.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/access-diagram.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Text art visualizations within -fanalyzer.
!    Copyright (C) 2023-2026 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 ****
  #include "text-art/canvas.h"
  #include "text-art/theme.h"
  #include "text-art/widget.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/store.h"
  
  namespace ana {
--- 24,30 ----
  #include "text-art/canvas.h"
  #include "text-art/theme.h"
  #include "text-art/widget.h"
! 
  #include "analyzer/store.h"
  
  namespace ana {
*************** class access_diagram : public text_art::
*** 152,158 ****
  {
  public:
    access_diagram (const access_operation &op,
! 		  diagnostic_event_id_t region_creation_event_id,
  		  text_art::style_manager &sm,
  		  const text_art::theme &theme,
  		  logger *logger);
--- 152,158 ----
  {
  public:
    access_diagram (const access_operation &op,
! 		  diagnostics::paths::event_id_t region_creation_event_id,
  		  text_art::style_manager &sm,
  		  const text_art::theme &theme,
  		  logger *logger);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ana-state-to-diagnostic-state.cc gcc-16.1.0-RC-20260423/gcc/analyzer/ana-state-to-diagnostic-state.cc
*** gcc-15.2.0/gcc/analyzer/ana-state-to-diagnostic-state.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ana-state-to-diagnostic-state.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,707 ----
+ /* Creating diagnostic state graphs from ana::program_state.
+    Copyright (C) 2025-2026 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/>.  */
+ 
+ #define INCLUDE_ALGORITHM
+ #define INCLUDE_MAP
+ #define INCLUDE_SET
+ #include "analyzer/common.h"
+ 
+ #include "diagnostics/state-graphs.h"
+ #include "diagnostics/sarif-sink.h"
+ 
+ #include "analyzer/region-model.h"
+ #include "analyzer/program-state.h"
+ #include "analyzer/record-layout.h"
+ #include "analyzer/ana-state-to-diagnostic-state.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ #if __GNUC__ >= 10
+ #pragma GCC diagnostic ignored "-Wformat"
+ #endif
+ 
+ namespace ana {
+ 
+ namespace node_properties = custom_sarif_properties::state_graphs::node;
+ 
+ static void
+ set_wi_attr (diagnostics::digraphs::node &state_node,
+ 	     const json::string_property &property,
+ 	     const wide_int_ref &w,
+ 	     signop sgn)
+ {
+   pretty_printer pp;
+   pp_wide_int (&pp, w, sgn);
+   state_node.set_property (property, pp_formatted_text (&pp));
+ }
+ 
+ static void
+ set_type_attr (diagnostics::digraphs::node &state_node,
+ 	       const_tree type)
+ {
+   gcc_assert (type);
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   pp_printf (&pp, "%T", type);
+   state_node.set_property (node_properties::type,
+ 			   pp_formatted_text (&pp));
+ }
+ 
+ static void
+ set_bits_attr (diagnostics::digraphs::node & state_node,
+ 	       bit_range bits)
+ {
+   pretty_printer pp;
+   bits.dump_to_pp (&pp);
+   state_node.set_property (node_properties::bits,
+ 			   pp_formatted_text (&pp));
+ }
+ 
+ static void
+ set_value_attrs (diagnostics::digraphs::node &state_node,
+ 		 const svalue &sval)
+ {
+   state_node.set_property (node_properties::value,
+ 			   sval.to_json ());
+   pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
+   sval.dump_to_pp (&pp, true);
+   state_node.set_property (node_properties::value_str,
+ 			   pp_formatted_text (&pp));
+ }
+ 
+ 
+ // class analyzer_state_graph : public diagnostics::digraphs::digraph
+ 
+ analyzer_state_graph::analyzer_state_graph (const program_state &state,
+ 					    const extrinsic_state &ext_state)
+ : m_state (state),
+   m_ext_state (ext_state),
+   m_mgr (*ext_state.get_engine ()->get_model_manager ()),
+   m_next_id (0)
+ {
+   /* Find pointers to heap-allocated regions, and record their types,
+      so that we have a user-friendly way of showing the memory
+      (by field, rather than by byte offset).  */
+   for (auto cluster_iter : *state.m_region_model->get_store ())
+     for (auto binding_iter : *cluster_iter.second)
+       {
+ 	const svalue *svalue = binding_iter.m_sval;
+ 	if (const region *reg = svalue->maybe_get_region ())
+ 	  if (svalue->get_type () && !reg->get_type ())
+ 	    {
+ 	      tree pointed_to_type = TREE_TYPE (svalue->get_type ());
+ 	      if (!VOID_TYPE_P (pointed_to_type))
+ 		m_types_for_untyped_regions[reg] = pointed_to_type;
+ 	    }
+       }
+ 
+   /* TODO: look for vtable pointers at the top of dynamically-allocated
+      regions and use that type as a fallback.  */
+ 
+   /* Find regions of interest.
+      Create elements per region, and build into hierarchy.
+      Add edges for pointers.  */
+ 
+   /* Create stack, from top to bottom.  */
+   for (int i = state.m_region_model->get_stack_depth () - 1; i >= 0; --i)
+     {
+       const frame_region *reg = state.m_region_model->get_frame_at_index (i);
+       get_or_create_state_node (*reg);
+     }
+ 
+   /* Create bound memory.  */
+   for (auto iter : *state.m_region_model->get_store ())
+     {
+       const bool create_all = false; // "true" for verbose, for debugging
+       create_state_nodes_for_binding_cluster (*iter.second, create_all);
+     }
+ 
+   /* TODO: Constraints.  */
+ 
+   /* Annotate with information from state machines.  */
+   {
+     int i;
+     sm_state_map *smap;
+     FOR_EACH_VEC_ELT (state.m_checker_states, i, smap)
+       {
+ 	auto &sm = ext_state.get_sm (i);
+ 	for (const auto &iter : *smap)
+ 	  sm.add_state_to_state_graph (*this, *iter.first, iter.second.m_state);
+ 	if (auto s = smap->get_global_state ())
+ 	  sm.add_global_state_to_state_graph (*this, s);
+       }
+   }
+ 
+   /* Process pending edges.  */
+   while (m_pending_edges.size () > 0)
+     {
+       pending_edge item = m_pending_edges.back ();
+       m_pending_edges.pop_back ();
+ 
+       /* Ensure we have a node for the dst region.  This
+ 	 could lead to additional pending edges.  */
+       auto &dst_node = get_or_create_state_node (item.m_dst_reg);
+       add_edge (nullptr, item.m_src_node, dst_node);
+     }
+ }
+ 
+ diagnostics::digraphs::node &
+ analyzer_state_graph::get_or_create_state_node (const region &reg)
+ {
+   auto existing = m_region_to_state_node_map.find (&reg);
+   if (existing != m_region_to_state_node_map.end ())
+     return *existing->second;
+ 
+   auto &state_node = create_and_add_state_node (reg);
+   m_region_to_state_node_map[&reg] = &state_node;
+   return state_node;
+ }
+ 
+ diagnostics::digraphs::node &
+ analyzer_state_graph::create_and_add_state_node (const region &reg)
+ {
+   auto node = create_state_node (reg);
+ 
+   diagnostics::digraphs::node &result = *node;
+   if (auto parent_reg = reg.get_parent_region ())
+     if (parent_reg->get_kind () != RK_ROOT)
+       {
+ 	auto &parent_state_node = get_or_create_state_node (*parent_reg);
+ 	parent_state_node.add_child (std::move (node));
+ 	return result;
+       }
+   add_node (std::move (node));
+   return result;
+ }
+ 
+ std::string
+ analyzer_state_graph::make_node_id (const char *prefix)
+ {
+   return std::string (prefix) + "-" + std::to_string (m_next_id++);
+ }
+ 
+ std::string
+ analyzer_state_graph::make_node_id (const region &reg)
+ {
+   const char *prefix = nullptr;
+   switch (reg.get_kind ())
+     {
+     case RK_ROOT:
+     default:
+       gcc_unreachable ();
+       break;
+ 
+     case RK_GLOBALS:
+       return "globals";
+     case RK_CODE:
+       return "code";
+     case RK_STACK:
+       return "stack";
+     case RK_HEAP:
+       return "heap";
+ 
+     case RK_FRAME:
+       prefix = "frame-region";
+       break;
+     case RK_FUNCTION:
+       prefix = "function-region";
+       break;
+     case RK_LABEL:
+       prefix = "label-region";
+       break;
+     case RK_THREAD_LOCAL:
+       prefix = "thread-local-region";
+       break;
+     case RK_SYMBOLIC:
+       prefix = "symbolic-region";
+       break;
+     case RK_DECL:
+       prefix = "decl-region";
+       break;
+     case RK_FIELD:
+       prefix = "field-region";
+       break;
+     case RK_ELEMENT:
+       prefix = "element-region";
+       break;
+     case RK_OFFSET:
+       prefix = "offset-region";
+       break;
+     case RK_SIZED:
+       prefix = "sized-region";
+       break;
+     case RK_CAST:
+       prefix = "cast-region";
+       break;
+     case RK_HEAP_ALLOCATED:
+       prefix = "heap-allocated-region";
+       break;
+     case RK_ALLOCA:
+       prefix = "alloca-region";
+       break;
+     case RK_STRING:
+       prefix = "string-region";
+       break;
+     case RK_BIT_RANGE:
+       prefix = "bit-range-region";
+       break;
+     case RK_VAR_ARG:
+       prefix = "var-arg-region";
+       break;
+     case RK_ERRNO:
+       prefix = "errno-region";
+       break;
+     case RK_PRIVATE:
+       prefix = "private-region";
+       break;
+     case RK_UNKNOWN:
+       prefix = "unknown-region";
+       break;
+     }
+   return std::string (prefix) + "-" + std::to_string (reg.get_id ());
+ }
+ 
+ std::unique_ptr<diagnostics::digraphs::node>
+ analyzer_state_graph::
+ make_state_node (enum node_properties::kind_t kind,
+ 		 std::string id)
+ {
+   auto node = std::make_unique<diagnostics::digraphs::node> (*this, std::move (id));
+   node->set_property (node_properties::kind_prop, kind);
+   return node;
+ }
+ 
+ std::unique_ptr<diagnostics::digraphs::node>
+ analyzer_state_graph::
+ make_memspace_state_node (const region &reg,
+ 			  enum node_properties::kind_t kind)
+ {
+   return make_state_node (kind, make_node_id (reg));
+ }
+ 
+ std::unique_ptr<diagnostics::digraphs::node>
+ analyzer_state_graph::create_state_node (const region &reg)
+ {
+   std::unique_ptr<diagnostics::digraphs::node> node;
+ 
+   switch (reg.get_kind ())
+     {
+     default:
+       gcc_unreachable ();
+ 
+     case RK_FRAME:
+       {
+ 	const frame_region &frame_reg
+ 	  = static_cast<const frame_region &> (reg);
+ 
+ 	node = make_state_node (node_properties::kind_t::stack_frame,
+ 				make_node_id (reg));
+ 	node->set_logical_loc
+ 	  (m_logical_loc_mgr.key_from_tree (frame_reg.get_fndecl ()));
+ 	{
+ 	  pretty_printer pp;
+ 	  pp_format_decoder (&pp) = default_tree_printer;
+ 	  pp_printf (&pp, "%E", frame_reg.get_fndecl ());
+ 	  node->set_property (node_properties::function,
+ 			      pp_formatted_text (&pp));
+ 	}
+       }
+       break;
+ 
+     case RK_GLOBALS:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::globals);
+       break;
+     case RK_CODE:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::code);
+       break;
+     case RK_FUNCTION:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::function);
+       // TODO
+       break;
+ 
+     case RK_STACK:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::stack);
+       break;
+     case RK_HEAP:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::heap_);
+       break;
+     case RK_THREAD_LOCAL:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::thread_local_);
+       break;
+     case RK_ROOT:
+       gcc_unreachable ();
+       break;
+     case RK_SYMBOLIC:
+       node = make_memspace_state_node (reg,
+ 				       node_properties::kind_t::other);
+       break;
+ 
+     case RK_DECL:
+       {
+ 	node = make_state_node (node_properties::kind_t::variable,
+ 				make_node_id (reg));
+ 	const decl_region &decl_reg
+ 	  = static_cast<const decl_region &> (reg);
+ 
+ 	{
+ 	  pretty_printer pp;
+ 	  pp_format_decoder (&pp) = default_tree_printer;
+ 	  pp_printf (&pp, "%E", decl_reg.get_decl ());
+ 	  node->set_property (node_properties::name,
+ 			      pp_formatted_text (&pp));
+ 	}
+ 	set_type_attr (*node, TREE_TYPE (decl_reg.get_decl ()));
+       }
+       break;
+ 
+     case RK_FIELD:
+     case RK_ELEMENT:
+       /* These should be handled in populate_state_node_for_typed_region.  */
+       gcc_unreachable ();
+       break;
+ 
+     case RK_LABEL:
+     case RK_OFFSET:
+     case RK_SIZED:
+     case RK_CAST:
+     case RK_STRING:
+     case RK_BIT_RANGE:
+     case RK_VAR_ARG:
+     case RK_ERRNO:
+     case RK_PRIVATE:
+     case RK_UNKNOWN:
+       node = make_state_node (node_properties::kind_t::other,
+ 				make_node_id (reg));
+       break;
+ 
+     case RK_HEAP_ALLOCATED:
+     case RK_ALLOCA:
+       node
+ 	= make_memspace_state_node (reg,
+ 				    node_properties::kind_t::dynalloc_buffer);
+       set_attr_for_dynamic_extents (reg, *node);
+       break;
+     }
+   gcc_assert (node);
+ 
+   if (reg.get_base_region () == &reg)
+     if (!reg.get_type ())
+       {
+ 	auto search
+ 	  = m_types_for_untyped_regions.find (&reg);
+ 	if (search != m_types_for_untyped_regions.end ())
+ 	  {
+ 	    tree type_to_use = search->second;
+ 	    set_type_attr (*node, type_to_use);
+ 	  }
+       }
+ 
+   return node;
+ }
+ 
+ void
+ analyzer_state_graph::
+ create_state_nodes_for_binding_cluster (const binding_cluster &cluster,
+ 					bool create_all)
+ {
+   /* TODO:
+      - symbolic bindings
+      - get current svalue, so as to get "zeros" and "uninitialized".  */
+ 
+   concrete_bindings_t conc_bindings;
+   for (auto iter : cluster)
+     {
+       const binding_key *key = iter.m_key;
+       const svalue *svalue = iter.m_sval;
+       if (auto conc_key = key->dyn_cast_concrete_binding ())
+ 	conc_bindings[conc_key->get_bit_range ()] = svalue;
+       if (const region *reg = svalue->maybe_get_region ())
+ 	get_or_create_state_node (*reg);
+     }
+ 
+   auto &ref = get_or_create_state_node (*cluster.get_base_region ());
+ 
+   ref.add_child (create_state_node_for_conc_bindings (conc_bindings));
+ 
+   const region *typed_reg = cluster.get_base_region ();
+   if (!typed_reg->get_type ())
+     {
+       auto search
+ 	= m_types_for_untyped_regions.find (cluster.get_base_region ());
+       if (search != m_types_for_untyped_regions.end ())
+ 	{
+ 	  tree type_to_use = search->second;
+ 	  typed_reg = m_mgr.get_cast_region (typed_reg, type_to_use);
+ 	}
+     }
+ 
+   if (typed_reg->get_type ())
+     populate_state_node_for_typed_region (ref,
+ 					  *typed_reg,
+ 					  conc_bindings,
+ 					  create_all);
+   else
+     {
+       // TODO
+     }
+ }
+ 
+ std::unique_ptr<diagnostics::digraphs::node>
+ analyzer_state_graph::create_state_node_for_conc_bindings (const concrete_bindings_t &conc_bindings)
+ {
+   auto node = make_state_node (node_properties::kind_t::other,
+ 			       make_node_id ("concrete-bindings"));
+   for (auto iter : conc_bindings)
+     {
+       const bit_range bits = iter.first;
+       const svalue *sval = iter.second;
+       auto binding_state_node
+ 	= make_state_node (node_properties::kind_t::other,
+ 			   make_node_id ("binding"));
+       set_bits_attr (*binding_state_node, bits);
+       gcc_assert (sval);
+       set_value_attrs (*binding_state_node, *sval);
+       node->add_child (std::move (binding_state_node));
+     }
+   return node;
+ }
+ 
+ // Try to get the bit_range of REG within its base region
+ bool
+ analyzer_state_graph::get_bit_range_within_base_region (const region &reg,
+ 							bit_range &out)
+ {
+   region_offset start_offset = reg.get_offset (&m_mgr);
+   if (!start_offset.concrete_p ())
+     return false;
+   region_offset next_offset = reg.get_next_offset (&m_mgr);
+   if (!next_offset.concrete_p ())
+     return false;
+   out = bit_range (start_offset.get_bit_offset (),
+ 		   next_offset.get_bit_offset ()
+ 		   - start_offset.get_bit_offset ());
+   return true;
+ }
+ 
+ void
+ analyzer_state_graph::
+ populate_state_node_for_typed_region (diagnostics::digraphs::node &state_node,
+ 				      const region &reg,
+ 				      const concrete_bindings_t &conc_bindings,
+ 				      bool create_all)
+ {
+   const_tree reg_type = reg.get_type ();
+   gcc_assert (reg_type);
+   set_type_attr (state_node, reg_type);
+ 
+   bit_range bits (0, 0);
+   if (get_bit_range_within_base_region (reg, bits))
+     {
+       set_bits_attr (state_node, bits);
+ 
+       auto search = conc_bindings.find (bits);
+       if (search != conc_bindings.end ())
+ 	{
+ 	  const svalue *bound_sval = search->second;
+ 	  gcc_assert (bound_sval);
+ 	  set_value_attrs (state_node, *bound_sval);
+ 	  if (const region *dst_reg = bound_sval->maybe_get_region ())
+ 	    m_pending_edges.push_back ({state_node, *dst_reg});
+ 	}
+     }
+ 
+   switch (TREE_CODE (reg_type))
+     {
+     default:
+       break;
+ 
+     case ARRAY_TYPE:
+       {
+ 	tree domain = TYPE_DOMAIN (reg_type);
+ 	if (!domain)
+ 	  return;
+ 	const_tree max_idx = TYPE_MAX_VALUE (domain);
+ 	if (!max_idx)
+ 	  return;
+ 	if (TREE_CODE (max_idx) != INTEGER_CST)
+ 	  return;
+ 	const_tree min_idx = TYPE_MIN_VALUE (domain);
+ 	if (TREE_CODE (min_idx) != INTEGER_CST)
+ 	  return;
+ 	for (offset_int idx = wi::to_offset (min_idx);
+ 	     idx <= wi::to_offset (max_idx);
+ 	     ++idx)
+ 	  {
+ 	    const_tree element_type = TREE_TYPE (reg_type);
+ 	    const svalue *sval_index
+ 	      = m_mgr.get_or_create_int_cst (domain, idx);
+ 	    const region *child_reg
+ 	      = m_mgr.get_element_region (&reg,
+ 					  const_cast<tree> (element_type),
+ 					  sval_index);
+ 	    if (show_child_state_node_for_child_region_p (*child_reg,
+ 						       conc_bindings,
+ 						       create_all))
+ 	      {
+ 		auto child_state_node
+ 		  = make_state_node
+ 		      (node_properties::kind_t::element,
+ 		       make_node_id (*child_reg));
+ 		set_wi_attr (*child_state_node,
+ 			     node_properties::index, idx, UNSIGNED);
+ 
+ 		// Recurse:
+ 		gcc_assert (element_type);
+ 		populate_state_node_for_typed_region (*child_state_node,
+ 						      *child_reg,
+ 						      conc_bindings,
+ 						      create_all);
+ 		state_node.add_child (std::move (child_state_node));
+ 	      }
+ 	  }
+       }
+       break;
+ 
+     case RECORD_TYPE:
+       {
+ 	const record_layout layout (reg_type);
+ 	for (auto item : layout)
+ 	  {
+ 	    if (item.m_is_padding)
+ 	      {
+ 		const bit_range bits (0, item.m_bit_range.m_size_in_bits);
+ 		const region *child_reg
+ 		  = m_mgr.get_bit_range (&reg, NULL_TREE, bits);
+ 		if (show_child_state_node_for_child_region_p (*child_reg,
+ 							      conc_bindings,
+ 							      create_all))
+ 		  {
+ 		    auto child_state_node
+ 		      = make_state_node
+ 			  (node_properties::kind_t::padding,
+ 			   make_node_id (*child_reg));
+ 		    set_wi_attr (*child_state_node,
+ 				 node_properties::num_bits,
+ 				 item.m_bit_range.m_size_in_bits, SIGNED);
+ 		    state_node.add_child (std::move (child_state_node));
+ 		  }
+ 	      }
+ 	    else
+ 	      {
+ 		const region *child_reg
+ 		  = m_mgr.get_field_region (&reg,
+ 					    const_cast<tree> (item.m_field));
+ 		if (show_child_state_node_for_child_region_p (*child_reg,
+ 							      conc_bindings,
+ 							      create_all))
+ 		  {
+ 		    auto child_state_node
+ 		      = make_state_node
+ 			  (node_properties::kind_t::field,
+ 			   make_node_id (*child_reg));
+ 		    {
+ 		      pretty_printer pp;
+ 		      pp_format_decoder (&pp) = default_tree_printer;
+ 		      pp_printf (&pp, "%D", item.m_field);
+ 		      child_state_node->set_property (node_properties::name,
+ 						      pp_formatted_text (&pp));
+ 		    }
+ 
+ 		    // Recurse:
+ 		    populate_state_node_for_typed_region (*child_state_node,
+ 							  *child_reg,
+ 							  conc_bindings,
+ 							  create_all);
+ 		    state_node.add_child (std::move (child_state_node));
+ 		  }
+ 	      }
+ 	  }
+       }
+       break;
+     }
+ }
+ 
+ void
+ analyzer_state_graph::
+ set_attr_for_dynamic_extents (const region &reg,
+ 			      diagnostics::digraphs::node &state_node)
+ {
+   const svalue *sval = m_state.m_region_model->get_dynamic_extents (&reg);
+   if (sval)
+     {
+       pretty_printer pp;
+       pp_format_decoder (&pp) = default_tree_printer;
+       if (auto cst = sval->maybe_get_constant ())
+ 	pp_wide_int (&pp, wi::to_wide (cst), UNSIGNED);
+       else
+ 	sval->dump_to_pp (&pp, true);
+       state_node.set_property (state_node_properties::dynamic_extents,
+ 			       pp_formatted_text (&pp));
+     }
+ }
+ 
+ bool
+ analyzer_state_graph::
+ show_child_state_node_for_child_region_p (const region &reg,
+ 					  const concrete_bindings_t &conc_bindings,
+ 					  bool create_all)
+ {
+   if (create_all)
+     return true;
+   bit_range reg_bits (0, 0);
+   if (!get_bit_range_within_base_region (reg, reg_bits))
+     return true;
+ 
+   /* Is any of "bits" bound?
+      TODO: ideally there would be a more efficient way to do this, using
+      spatial relationships.  */
+   for (auto iter : conc_bindings)
+     {
+       const bit_range bound_bits = iter.first;
+       if (bound_bits.intersects_p (reg_bits))
+ 	return true;
+     }
+   return false;
+ }
+ 
+ std::unique_ptr<diagnostics::digraphs::digraph>
+ program_state::
+ make_diagnostic_state_graph (const extrinsic_state &ext_state) const
+ {
+   return std::make_unique<analyzer_state_graph> (*this, ext_state);
+ }
+ 
+ void
+ program_state::dump_sarif (const extrinsic_state &ext_state) const
+ {
+   auto g = make_diagnostic_state_graph (ext_state);
+   g->dump ();
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ana-state-to-diagnostic-state.h gcc-16.1.0-RC-20260423/gcc/analyzer/ana-state-to-diagnostic-state.h
*** gcc-15.2.0/gcc/analyzer/ana-state-to-diagnostic-state.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ana-state-to-diagnostic-state.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,111 ----
+ /* Creating diagnostic state graphs from ana::program_state.
+    Copyright (C) 2025-2026 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_ANA_STATE_TO_DIAGNOSTIC_STATE_H
+ #define GCC_ANALYZER_ANA_STATE_TO_DIAGNOSTIC_STATE_H
+ 
+ #include "diagnostics/state-graphs.h"
+ #include "tree-logical-location.h"
+ #include "custom-sarif-properties/state-graphs.h"
+ 
+ namespace ana {
+ 
+ namespace state_node_properties = custom_sarif_properties::state_graphs::node;
+ 
+ class analyzer_state_graph : public diagnostics::digraphs::digraph
+ {
+ public:
+   analyzer_state_graph (const program_state &state,
+ 			const extrinsic_state &ext_state);
+   diagnostics::digraphs::node &
+   get_or_create_state_node (const region &reg);
+ 
+ private:
+ 
+   struct pending_edge
+   {
+     diagnostics::digraphs::node & m_src_node;
+     const region &m_dst_reg;
+   };
+ 
+   diagnostics::digraphs::node &
+   create_and_add_state_node (const region &reg);
+ 
+   std::unique_ptr<diagnostics::digraphs::node>
+   make_state_node (enum state_node_properties::kind_t kind,
+ 		   std::string id);
+ 
+   std::unique_ptr<diagnostics::digraphs::node>
+   make_memspace_state_node (const region &reg,
+ 			    enum state_node_properties::kind_t kind);
+ 
+   std::unique_ptr<diagnostics::digraphs::node>
+   create_state_node (const region &reg);
+ 
+   /* Spatially sorted concrete bindings.  */
+   typedef std::map<bit_range, const svalue *> concrete_bindings_t;
+ 
+   void
+   create_state_nodes_for_binding_cluster (const binding_cluster &cluster,
+ 					  bool create_all);
+ 
+   std::unique_ptr<diagnostics::digraphs::node>
+   create_state_node_for_conc_bindings (const concrete_bindings_t &conc_bindings);
+ 
+   // Try to get the bit_range of REG within its base region
+   bool
+   get_bit_range_within_base_region (const region &reg,
+ 				    bit_range &out);
+ 
+   void
+   populate_state_node_for_typed_region (diagnostics::digraphs::node &,
+ 					const region &reg,
+ 					const concrete_bindings_t &conc_bindings,
+ 					bool create_all);
+ 
+   void
+   set_attr_for_dynamic_extents (const region &reg,
+ 				diagnostics::digraphs::node &);
+ 
+   bool
+   show_child_state_node_for_child_region_p (const region &reg,
+ 					    const concrete_bindings_t &conc_bindings,
+ 					    bool create_all);
+ 
+   std::unique_ptr<diagnostics::digraphs::node>
+   create_state_node_for_svalue (const svalue *sval);
+ 
+   std::string make_node_id (const region &reg);
+   std::string make_node_id (const char *prefix);
+ 
+   tree_logical_location_manager m_logical_loc_mgr;
+   const program_state &m_state;
+   const extrinsic_state &m_ext_state;
+   region_model_manager &m_mgr;
+   std::map<const region *,
+ 	   diagnostics::digraphs::node *> m_region_to_state_node_map;
+   std::map<const region *, tree> m_types_for_untyped_regions;
+   unsigned m_next_id;
+   std::vector<pending_edge> m_pending_edges;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_ANA_STATE_TO_DIAGNOSTIC_STATE_H */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analysis-plan.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analysis-plan.cc
*** gcc-15.2.0/gcc/analyzer/analysis-plan.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analysis-plan.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,44 ****
  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 "tree.h"
! #include "options.h"
! #include "cgraph.h"
  #include "timevar.h"
- #include "ipa-utils.h"
- #include "function.h"
- #include "analyzer/analyzer.h"
- #include "diagnostic-core.h"
- #include "analyzer/analyzer-logging.h"
- #include "analyzer/analysis-plan.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
  #include "gimple-iterator.h"
  #include "digraph.h"
  #include "analyzer/supergraph.h"
  
  #if ENABLE_ANALYZER
--- 18,36 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "timevar.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "gimple-iterator.h"
  #include "digraph.h"
+ #include "ipa-utils.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/analysis-plan.h"
  #include "analyzer/supergraph.h"
  
  #if ENABLE_ANALYZER
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analysis-plan.h gcc-16.1.0-RC-20260423/gcc/analyzer/analysis-plan.h
*** gcc-15.2.0/gcc/analyzer/analysis-plan.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analysis-plan.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A class to encapsulate decisions about how the analysis should happen.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-language.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-language.cc
*** gcc-15.2.0/gcc/analyzer/analyzer-language.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-language.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,32 ****
  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 "tree.h"
  #include "stringpool.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-language.h"
  #include "analyzer/analyzer-logging.h"
- #include "diagnostic.h"
  
  /* Map from identifier to INTEGER_CST.  */
  static GTY (()) hash_map <tree, tree> *analyzer_stashed_constants;
--- 18,32 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostic.h"
  #include "stringpool.h"
! #include "context.h"
! #include "channels.h"
! 
  #include "analyzer/analyzer-language.h"
  #include "analyzer/analyzer-logging.h"
  
  /* Map from identifier to INTEGER_CST.  */
  static GTY (()) hash_map <tree, tree> *analyzer_stashed_constants;
*************** static GTY (()) hash_map <tree, tree> *a
*** 34,59 ****
  #if ENABLE_ANALYZER
  
  namespace ana {
- static vec<finish_translation_unit_callback>
-     *finish_translation_unit_callbacks;
- 
- void
- register_finish_translation_unit_callback (
-     finish_translation_unit_callback callback)
- {
-   if (!finish_translation_unit_callbacks)
-     vec_alloc (finish_translation_unit_callbacks, 1);
-   finish_translation_unit_callbacks->safe_push (callback);
- }
- 
- static void
- run_callbacks (logger *logger, const translation_unit &tu)
- {
-   for (auto const &cb : finish_translation_unit_callbacks)
-     {
-       cb (logger, tu);
-     }
- }
  
  /* Call into TU to try to find a value for NAME.
     If found, stash its value within analyzer_stashed_constants.  */
--- 34,39 ----
*************** on_finish_translation_unit (const transl
*** 116,128 ****
      return;
  
    FILE *logfile = get_or_create_any_logfile ();
!   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);
  }
  
  /* Lookup NAME in the named constants stashed when the frontend TU finished.
--- 96,113 ----
      return;
  
    FILE *logfile = get_or_create_any_logfile ();
!   log_user the_logger (nullptr);
    if (logfile)
      the_logger.set_logger (new logger (logfile, 0, 0,
  				       *global_dc->get_reference_printer ()));
    stash_named_constants (the_logger.get_logger (), tu);
  
!   if (auto chan = g->get_channels ().analyzer_events_channel.get_if_active ())
!     {
!       gcc::topics::analyzer_events::on_tu_finished msg {the_logger.get_logger (),
! 							tu};
!       chan->publish (msg);
!     }
  }
  
  /* Lookup NAME in the named constants stashed when the frontend TU finished.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-language.h gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-language.h
*** gcc-15.2.0/gcc/analyzer/analyzer-language.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-language.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Interface between analyzer and frontends.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class translation_unit
*** 35,51 ****
   public:
    /* Attempt to look up an  value for identifier ID (e.g. in the headers that
       have been seen).  If it is defined and an integer (e.g. either as a
!      macro or enum), return the INTEGER_CST value, otherwise return NULL.  */
    virtual tree lookup_constant_by_id (tree id) const = 0;
    virtual tree lookup_type_by_id (tree id) const = 0;
    virtual tree lookup_global_var_by_id (tree id) const = 0;
  };
  
- typedef void (*finish_translation_unit_callback)
-    (logger *, const translation_unit &);
- void register_finish_translation_unit_callback (
-     finish_translation_unit_callback callback);
- 
  /* Analyzer hook for frontends to call at the end of the TU.  */
  
  void on_finish_translation_unit (const translation_unit &tu);
--- 35,46 ----
   public:
    /* Attempt to look up an  value for identifier ID (e.g. in the headers that
       have been seen).  If it is defined and an integer (e.g. either as a
!      macro or enum), return the INTEGER_CST value, otherwise return NULL_TREE.  */
    virtual tree lookup_constant_by_id (tree id) const = 0;
    virtual tree lookup_type_by_id (tree id) const = 0;
    virtual tree lookup_global_var_by_id (tree id) const = 0;
  };
  
  /* Analyzer hook for frontends to call at the end of the TU.  */
  
  void on_finish_translation_unit (const translation_unit &tu);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-logging.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-logging.cc
*** gcc-15.2.0/gcc/analyzer/analyzer-logging.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-logging.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-logging.h gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-logging.h
*** gcc-15.2.0/gcc/analyzer/analyzer-logging.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-logging.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Hierarchical log messages for the analyzer.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 91,97 ****
  
  /* The constructor for log_scope.
  
!    The normal case is that the logger is NULL, in which case this should
     be largely a no-op.
  
     If we do have a logger, notify it that we're entering the given scope.
--- 91,97 ----
  
  /* The constructor for log_scope.
  
!    The normal case is that the logger is nullptr, in which case this should
     be largely a no-op.
  
     If we do have a logger, notify it that we're entering the given scope.
*************** log_scope::~log_scope ()
*** 139,145 ****
      }
  }
  
! /* A log_user is something that potentially uses a logger (which could be NULL).
  
     The log_user class keeps the reference-count of a logger up-to-date.  */
  
--- 139,187 ----
      }
  }
  
! class log_nesting_level
! {
! public:
!   log_nesting_level (logger *logger, const char *fmt, ...)
!     ATTRIBUTE_GCC_DIAG(3, 4);
!   ~log_nesting_level ();
! 
! private:
!   logger *m_logger;
! };
! 
! inline
! log_nesting_level::log_nesting_level (logger *logger, const char *fmt, ...)
! : m_logger (logger)
! {
!   if (logger)
!     {
!       va_list ap;
!       va_start (ap, fmt);
! 
!       logger->start_log_line ();
!       logger->log_va_partial (fmt, &ap);
!       logger->end_log_line ();
! 
!       logger->inc_indent ();
! 
!       va_end (ap);
!     }
! }
! 
! 
! /* The destructor for log_nesting_level; essentially the opposite of
!    the constructor.  */
! 
! inline
! log_nesting_level::~log_nesting_level ()
! {
!   if (m_logger)
!     m_logger->dec_indent ();
! }
! 
! /* A log_user is something that potentially uses a logger (which could be
!    nullptr).
  
     The log_user class keeps the reference-count of a logger up-to-date.  */
  
*************** class log_user
*** 169,176 ****
  
    FILE *get_logger_file () const
    {
!     if (m_logger == NULL)
!       return NULL;
      return m_logger->get_file ();
    }
  
--- 211,218 ----
  
    FILE *get_logger_file () const
    {
!     if (m_logger == nullptr)
!       return nullptr;
      return m_logger->get_file ();
    }
  
*************** class log_user
*** 181,187 ****
  };
  
  /* A shortcut for calling log from a log_user, handling the common
!    case where the underlying logger is NULL via a no-op.  */
  
  inline void
  log_user::log (const char *fmt, ...) const
--- 223,229 ----
  };
  
  /* A shortcut for calling log from a log_user, handling the common
!    case where the underlying logger is nullptr via a no-op.  */
  
  inline void
  log_user::log (const char *fmt, ...) const
*************** log_user::log (const char *fmt, ...) con
*** 196,202 ****
  }
  
  /* A shortcut for starting a log line from a log_user,
!    handling the common case where the underlying logger is NULL via
     a no-op.  */
  
  inline void
--- 238,244 ----
  }
  
  /* A shortcut for starting a log line from a log_user,
!    handling the common case where the underlying logger is nullptr via
     a no-op.  */
  
  inline void
*************** log_user::start_log_line () const
*** 207,213 ****
  }
  
  /* A shortcut for ending a log line from a log_user,
!    handling the common case where the underlying logger is NULL via
     a no-op.  */
  
  inline void
--- 249,255 ----
  }
  
  /* A shortcut for ending a log line from a log_user,
!    handling the common case where the underlying logger is nullptr via
     a no-op.  */
  
  inline void
*************** log_user::end_log_line () const
*** 218,224 ****
  }
  
  /* A shortcut for recording entry into a scope from a log_user,
!    handling the common case where the underlying logger is NULL via
     a no-op.  */
  
  inline void
--- 260,266 ----
  }
  
  /* A shortcut for recording entry into a scope from a log_user,
!    handling the common case where the underlying logger is nullptr via
     a no-op.  */
  
  inline void
*************** log_user::enter_scope (const char *scope
*** 229,235 ****
  }
  
  /* A shortcut for recording exit from a scope from a log_user,
!    handling the common case where the underlying logger is NULL via
     a no-op.  */
  
  inline void
--- 271,277 ----
  }
  
  /* A shortcut for recording exit from a scope from a log_user,
!    handling the common case where the underlying logger is nullptr via
     a no-op.  */
  
  inline void
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-pass.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-pass.cc
*** gcc-15.2.0/gcc/analyzer/analyzer-pass.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-pass.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Integration of the analyzer with GCC's pass manager.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,32 ****
  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 "context.h"
  #include "tree-pass.h"
! #include "diagnostic.h"
! #include "options.h"
! #include "tree.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/engine.h"
  
  namespace {
--- 18,27 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "tree-pass.h"
! 
  #include "analyzer/engine.h"
  
  namespace {
*************** class pass_analyzer : public ipa_opt_pas
*** 53,67 ****
  public:
     pass_analyzer(gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_analyzer, ctxt,
! 		     NULL, /* generate_summary */
! 		     NULL, /* write_summary */
! 		     NULL, /* read_summary */
! 		     NULL, /* write_optimization_summary */
! 		     NULL, /* read_optimization_summary */
! 		     NULL, /* stmt_fixup */
  		     0, /* function_transform_todo_flags_start */
! 		     NULL, /* function_transform */
! 		     NULL) /* variable_transform */
    {}
  
    /* opt_pass methods: */
--- 48,62 ----
  public:
     pass_analyzer(gcc::context *ctxt)
     : ipa_opt_pass_d (pass_data_analyzer, ctxt,
! 		     nullptr, /* generate_summary */
! 		     nullptr, /* write_summary */
! 		     nullptr, /* read_summary */
! 		     nullptr, /* write_optimization_summary */
! 		     nullptr, /* read_optimization_summary */
! 		     nullptr, /* stmt_fixup */
  		     0, /* function_transform_todo_flags_start */
! 		     nullptr, /* function_transform */
! 		     nullptr) /* variable_transform */
    {}
  
    /* opt_pass methods: */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-selftests.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-selftests.cc
*** gcc-15.2.0/gcc/analyzer/analyzer-selftests.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-selftests.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Selftest support for the analyzer.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,29 ****
  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 "tree.h"
  #include "stringpool.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-selftests.h"
  
  #if CHECKING_P
--- 18,27 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "stringpool.h"
! 
  #include "analyzer/analyzer-selftests.h"
  
  #if CHECKING_P
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer-selftests.h gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-selftests.h
*** gcc-15.2.0/gcc/analyzer/analyzer-selftests.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer-selftests.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Selftests for the analyzer.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer.cc gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.cc
*** gcc-15.2.0/gcc/analyzer/analyzer.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Utility functions for the analyzer.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,37 ****
  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 "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic.h"
! #include "intl.h"
! #include "analyzer/analyzer.h"
  #include "tree-pretty-print.h"
! #include "diagnostic-event-id.h"
  #include "tree-dfa.h"
! #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,29 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "tree-pretty-print.h"
! #include "diagnostics/event-id.h"
  #include "tree-dfa.h"
! #include "intl.h"
  
  #if ENABLE_ANALYZER
  
*************** std::unique_ptr<json::value>
*** 227,237 ****
  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.
--- 219,229 ----
  tree_to_json (tree node)
  {
    if (!node)
!     return std::make_unique<json::literal> (json::JSON_NULL);
  
    pretty_printer pp;
    dump_generic_node (&pp, node, 0, TDF_VOPS|TDF_MEMSYMS, false);
!   return std::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for EVENT_ID.
*************** tree_to_json (tree node)
*** 240,255 ****
     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.
--- 232,247 ----
     for unknown).  */
  
  std::unique_ptr<json::value>
! diagnostic_event_id_to_json (const diagnostics::paths::event_id_t &event_id)
  {
    if (event_id.known_p ())
      {
        pretty_printer pp;
        pp_printf (&pp, "%@", &event_id);
!       return std::make_unique<json::string> (pp_formatted_text (&pp));
      }
    else
!     return std::make_unique<json::literal> (json::JSON_NULL);
  }
  
  /* Generate a JSON value for OFFSET.
*************** bit_offset_to_json (const bit_offset_t &
*** 261,267 ****
  {
    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.
--- 253,259 ----
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return std::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* Generate a JSON value for OFFSET.
*************** byte_offset_to_json (const byte_offset_t
*** 273,279 ****
  {
    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.  */
--- 265,271 ----
  {
    pretty_printer pp;
    pp_wide_int_large (&pp, offset, SIGNED);
!   return std::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
*** 298,309 ****
     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);
  
!   tree fndecl = gimple_call_fndecl (call);
    if (!fndecl)
      return false;
  
--- 290,301 ----
     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);
  
!   tree fndecl = gimple_call_fndecl (&call);
    if (!fndecl)
      return false;
  
*************** is_std_named_call_p (const_tree fndecl,
*** 396,402 ****
  
  bool
  is_named_call_p (const_tree fndecl, const char *funcname,
! 		 const gcall *call, unsigned int num_args)
  {
    gcc_assert (fndecl);
    gcc_assert (funcname);
--- 388,394 ----
  
  bool
  is_named_call_p (const_tree fndecl, const char *funcname,
! 		 const gcall &call, unsigned int num_args)
  {
    gcc_assert (fndecl);
    gcc_assert (funcname);
*************** is_named_call_p (const_tree fndecl, cons
*** 404,410 ****
    if (!is_named_call_p (fndecl, funcname))
      return false;
  
!   if (gimple_call_num_args (call) != num_args)
      return false;
  
    return true;
--- 396,402 ----
    if (!is_named_call_p (fndecl, funcname))
      return false;
  
!   if (gimple_call_num_args (&call) != num_args)
      return false;
  
    return true;
*************** is_named_call_p (const_tree fndecl, cons
*** 414,420 ****
  
  bool
  is_std_named_call_p (const_tree fndecl, const char *funcname,
! 		     const gcall *call, unsigned int num_args)
  {
    gcc_assert (fndecl);
    gcc_assert (funcname);
--- 406,412 ----
  
  bool
  is_std_named_call_p (const_tree fndecl, const char *funcname,
! 		     const gcall &call, unsigned int num_args)
  {
    gcc_assert (fndecl);
    gcc_assert (funcname);
*************** is_std_named_call_p (const_tree fndecl,
*** 422,428 ****
    if (!is_std_named_call_p (fndecl, funcname))
      return false;
  
!   if (gimple_call_num_args (call) != num_args)
      return false;
  
    return true;
--- 414,420 ----
    if (!is_std_named_call_p (fndecl, funcname))
      return false;
  
!   if (gimple_call_num_args (&call) != num_args)
      return false;
  
    return true;
*************** is_std_named_call_p (const_tree fndecl,
*** 431,442 ****
  /* Return true if stmt is a setjmp or sigsetjmp call.  */
  
  bool
! is_setjmp_call_p (const gcall *call)
  {
    if (is_special_named_call_p (call, "setjmp", 1)
        || is_special_named_call_p (call, "sigsetjmp", 2))
      /* region_model::on_setjmp requires a pointer.  */
!     if (POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0))))
        return true;
  
    return false;
--- 423,434 ----
  /* Return true if stmt is a setjmp or sigsetjmp call.  */
  
  bool
! is_setjmp_call_p (const gcall &call)
  {
    if (is_special_named_call_p (call, "setjmp", 1)
        || is_special_named_call_p (call, "sigsetjmp", 2))
      /* region_model::on_setjmp requires a pointer.  */
!     if (POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (&call, 0))))
        return true;
  
    return false;
*************** is_setjmp_call_p (const gcall *call)
*** 445,470 ****
  /* Return true if stmt is a longjmp or siglongjmp call.  */
  
  bool
! is_longjmp_call_p (const gcall *call)
  {
    if (is_special_named_call_p (call, "longjmp", 2)
        || is_special_named_call_p (call, "siglongjmp", 2))
      /* exploded_node::on_longjmp requires a pointer for the initial
         argument.  */
!     if (POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0))))
        return true;
  
    return false;
  }
  
  /* For a CALL that matched is_special_named_call_p or is_named_call_p for
     some name, return a name for the called function suitable for use in
     diagnostics (stripping the leading underscores).  */
  
  const char *
! get_user_facing_name (const gcall *call)
  {
!   tree fndecl = gimple_call_fndecl (call);
    gcc_assert (fndecl);
  
    tree identifier = DECL_NAME (fndecl);
--- 437,492 ----
  /* Return true if stmt is a longjmp or siglongjmp call.  */
  
  bool
! is_longjmp_call_p (const gcall &call)
  {
    if (is_special_named_call_p (call, "longjmp", 2)
        || is_special_named_call_p (call, "siglongjmp", 2))
      /* exploded_node::on_longjmp requires a pointer for the initial
         argument.  */
!     if (POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (&call, 0))))
        return true;
  
    return false;
  }
  
+ bool
+ is_cxa_throw_p (const gcall &call)
+ {
+   tree fndecl = gimple_call_fndecl (&call);
+   if (!fndecl)
+     return false;
+ 
+   return is_named_call_p (fndecl, "__cxa_throw");
+ }
+ 
+ bool
+ is_cxa_rethrow_p (const gcall &call)
+ {
+   tree fndecl = gimple_call_fndecl (&call);
+   if (!fndecl)
+     return false;
+ 
+   return is_named_call_p (fndecl, "__cxa_rethrow");
+ }
+ 
+ bool
+ is_cxa_end_catch_p (const gcall &call)
+ {
+   tree fndecl = gimple_call_fndecl (&call);
+   if (!fndecl)
+     return false;
+ 
+   return is_named_call_p (fndecl, "__cxa_end_catch");
+ }
+ 
  /* For a CALL that matched is_special_named_call_p or is_named_call_p for
     some name, return a name for the called function suitable for use in
     diagnostics (stripping the leading underscores).  */
  
  const char *
! get_user_facing_name (const gcall &call)
  {
!   tree fndecl = gimple_call_fndecl (&call);
    gcc_assert (fndecl);
  
    tree identifier = DECL_NAME (fndecl);
*************** make_label_text (bool can_colorize, cons
*** 506,512 ****
  
    va_start (ap, fmt);
  
!   text_info ti (_(fmt), &ap, 0, NULL, &rich_loc);
    pp_format (pp.get (), &ti);
    pp_output_formatted_text (pp.get ());
  
--- 528,534 ----
  
    va_start (ap, fmt);
  
!   text_info ti (_(fmt), &ap, 0, nullptr, &rich_loc);
    pp_format (pp.get (), &ti);
    pp_output_formatted_text (pp.get ());
  
*************** make_label_text_n (bool can_colorize, un
*** 537,543 ****
  
    const char *fmt = ngettext (singular_fmt, plural_fmt, n);
  
!   text_info ti (fmt, &ap, 0, NULL, &rich_loc);
  
    pp_format (pp.get (), &ti);
    pp_output_formatted_text (pp.get ());
--- 559,565 ----
  
    const char *fmt = ngettext (singular_fmt, plural_fmt, n);
  
!   text_info ti (fmt, &ap, 0, nullptr, &rich_loc);
  
    pp_format (pp.get (), &ti);
    pp_output_formatted_text (pp.get ());
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer.h gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.h
*** gcc-15.2.0/gcc/analyzer/analyzer.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.h	Thu Jan  1 00:00:00 1970
***************
*** 1,580 ****
- /* 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.
- 
- 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_ANALYZER_H
- #define GCC_ANALYZER_ANALYZER_H
- 
- #include "rich-location.h"
- #include "function.h"
- #include "json.h"
- #include "tristate.h"
- 
- class graphviz_out;
- 
- namespace ana {
- 
- /* Forward decls of common types, with indentation to show inheritance.  */
- 
- class supergraph;
- class supernode;
- class superedge;
-   class cfg_superedge;
-     class switch_cfg_superedge;
-   class callgraph_superedge;
-     class call_superedge;
-     class return_superedge;
- 
- class svalue;
-   class region_svalue;
-   class constant_svalue;
-   class unknown_svalue;
-   class poisoned_svalue;
-   class setjmp_svalue;
-   class initial_svalue;
-   class unaryop_svalue;
-   class binop_svalue;
-   class sub_svalue;
-   class repeated_svalue;
-   class bits_within_svalue;
-   class unmergeable_svalue;
-   class placeholder_svalue;
-   class widening_svalue;
-   class compound_svalue;
-   class conjured_svalue;
-   class asm_output_svalue;
-   class const_fn_result_svalue;
- typedef hash_set<const svalue *> svalue_set;
- class region;
-   class frame_region;
-   class function_region;
-   class label_region;
-   class decl_region;
-   class symbolic_region;
-   class element_region;
-   class offset_region;
-   class sized_region;
-   class cast_region;
-   class field_region;
-   class string_region;
-   class bit_range_region;
-   class var_arg_region;
- class region_model_manager;
- class conjured_purge;
- struct model_merger;
- class store_manager;
- class store;
- class region_model;
- class region_model_context;
-   class impl_region_model_context;
- class call_details;
- class rejected_constraint;
- class constraint_manager;
- class equiv_class;
- class reachable_regions;
- class bounded_ranges;
- class bounded_ranges_manager;
- 
- struct pending_location;
- class pending_diagnostic;
- class pending_note;
- class saved_diagnostic;
- struct event_loc_info;
- class checker_event;
-   class state_change_event;
-   class warning_event;
- class checker_path;
- class extrinsic_state;
- class sm_state_map;
- class stmt_finder;
- class program_point;
- class function_point;
- class program_state;
- class exploded_graph;
- class exploded_node;
- class exploded_edge;
- class feasibility_problem;
- class exploded_cluster;
- class exploded_path;
- class analysis_plan;
- class state_purge_map;
- class state_purge_per_ssa_name;
- class state_purge_per_decl;
- class state_change;
- class rewind_info_t;
- 
- class engine;
- class state_machine;
- class logger;
- class visitor;
- class known_function_manager;
- class call_summary;
- class call_summary_replay;
- struct per_function_data;
- struct interesting_t;
- 
- class feasible_node;
- 
- class known_function;
-   class builtin_known_function;
-   class internal_known_function;
- 
- /* Forward decls of functions.  */
- 
- extern void dump_tree (pretty_printer *pp, tree t);
- extern void dump_quoted_tree (pretty_printer *pp, tree t);
- extern void print_quoted_type (pretty_printer *pp, tree t);
- extern void print_expr_for_user (pretty_printer *pp, tree t);
- extern int readability_comparator (const void *p1, const void *p2);
- extern int tree_cmp (const void *p1, const void *p2);
- extern tree fixup_tree_for_diagnostic (tree);
- extern tree get_diagnostic_tree_for_gassign (const gassign *);
- 
- /* A tree, extended with stack frame information for locals, so that
-    we can distinguish between different values of locals within a potentially
-    recursive callstack.  */
- 
- class path_var
- {
- public:
-   path_var (tree t, int stack_depth)
-   : m_tree (t), m_stack_depth (stack_depth)
-   {
-     // TODO: ignore stack depth for globals and constants
-   }
- 
-   bool operator== (const path_var &other) const
-   {
-     return (m_tree == other.m_tree
- 	    && m_stack_depth == other.m_stack_depth);
-   }
- 
-   operator bool () const
-   {
-     return m_tree != NULL_TREE;
-   }
- 
-   void dump (pretty_printer *pp) const;
- 
-   tree m_tree;
-   int m_stack_depth; // or -1 for globals?
- };
- 
- typedef offset_int bit_offset_t;
- typedef offset_int bit_size_t;
- typedef offset_int byte_offset_t;
- typedef offset_int byte_size_t;
- 
- extern bool int_size_in_bits (const_tree type, bit_size_t *out);
- 
- extern tree get_field_at_bit_offset (tree record_type, bit_offset_t bit_offset);
- 
- /* The location of a region expressesd as an offset relative to a
-    base region.  */
- 
- class region_offset
- {
- public:
-   region_offset ()
-   : m_base_region (NULL), m_offset (0), m_sym_offset (NULL)
-   {
-   }
- 
-   static region_offset make_concrete (const region *base_region,
- 				      bit_offset_t offset)
-   {
-     return region_offset (base_region, offset, NULL);
-   }
-   static region_offset make_symbolic (const region *base_region,
- 				      const svalue *sym_offset)
-   {
-     return region_offset (base_region, 0, sym_offset);
-   }
-   static region_offset make_byte_offset (const region *base_region,
- 					 const svalue *num_bytes_sval);
- 
-   const region *get_base_region () const { return m_base_region; }
- 
-   bool concrete_p () const { return m_sym_offset == NULL; }
-   bool symbolic_p () const { return m_sym_offset != NULL; }
- 
-   bit_offset_t get_bit_offset () const
-   {
-     gcc_assert (!symbolic_p ());
-     return m_offset;
-   }
- 
-   bool get_concrete_byte_offset (byte_offset_t *out) const
-   {
-     gcc_assert (!symbolic_p ());
-     if (m_offset % BITS_PER_UNIT == 0)
-       {
- 	*out = m_offset / BITS_PER_UNIT;
- 	return true;
-       }
-     return false;
-   }
- 
-   const svalue *get_symbolic_byte_offset () const
-   {
-     gcc_assert (symbolic_p ());
-     return m_sym_offset;
-   }
- 
-   const svalue &calc_symbolic_bit_offset (region_model_manager *mgr) const;
-   const svalue *calc_symbolic_byte_offset (region_model_manager *mgr) const;
- 
-   bool operator== (const region_offset &other) const
-   {
-     return (m_base_region == other.m_base_region
- 	    && m_offset == other.m_offset
- 	    && m_sym_offset == other.m_sym_offset);
-   }
- 
-   void dump_to_pp (pretty_printer *pp, bool) const;
-   void dump (bool) const;
- 
- private:
-   region_offset (const region *base_region, bit_offset_t offset,
- 		 const svalue *sym_offset)
-   : m_base_region (base_region), m_offset (offset), m_sym_offset (sym_offset)
-   {}
- 
-   const region *m_base_region;
-   bit_offset_t m_offset;
-   const svalue *m_sym_offset;
- };
- 
- extern bool operator< (const region_offset &, const region_offset &);
- extern bool operator<= (const region_offset &, const region_offset &);
- extern bool operator> (const region_offset &, const region_offset &);
- extern bool operator>= (const region_offset &, const region_offset &);
- 
- extern location_t get_stmt_location (const gimple *stmt, function *fun);
- 
- extern bool compat_types_p (tree src_type, tree dst_type);
- 
- /* Abstract base class for simulating the behavior of known functions,
-    supplied by the core of the analyzer, or by plugins.
-    The former are typically implemented in the various kf*.cc  */
- 
- class known_function
- {
- public:
-   virtual ~known_function () {}
-   virtual bool matches_call_types_p (const call_details &cd) const = 0;
-   virtual void impl_call_pre (const call_details &) const
-   {
-     return;
-   }
-   virtual void impl_call_post (const call_details &) const
-   {
-     return;
-   }
- 
-   virtual const builtin_known_function *
-   dyn_cast_builtin_kf () const { return NULL; }
- };
- 
- /* Subclass of known_function for builtin functions.  */
- 
- class builtin_known_function : public known_function
- {
- public:
-   virtual enum built_in_function builtin_code () const = 0;
-   tree builtin_decl () const {
-     gcc_assert (builtin_code () < END_BUILTINS);
-     return builtin_info[builtin_code ()].decl;
-   }
- 
-   const builtin_known_function *
-   dyn_cast_builtin_kf () const final override { return this; }
- };
- 
- /* Subclass of known_function for IFN_* functions.  */
- 
- class internal_known_function : public known_function
- {
- public:
-   bool matches_call_types_p (const call_details &) const final override
-   {
-     /* Types are assumed to be correct.  */
-     return true;
-   }
- };
- 
- /* Abstract subclass of known_function that merely sets the return
-    value of the function (based on function attributes), and assumes
-    it has no side-effects.  */
- 
- class pure_known_function_with_default_return : public known_function
- {
- public:
-   void impl_call_pre (const call_details &cd) const override;
- };
- 
- extern void register_known_functions (known_function_manager &kfm,
- 				      region_model_manager &rmm);
- extern void register_known_analyzer_functions (known_function_manager &kfm);
- extern void register_known_fd_functions (known_function_manager &kfm);
- extern void register_known_file_functions (known_function_manager &kfm);
- extern void register_known_functions_lang_cp (known_function_manager &kfm);
- extern void register_varargs_builtins (known_function_manager &kfm);
- 
- /* Passed by pointer to PLUGIN_ANALYZER_INIT callbacks.  */
- 
- class plugin_analyzer_init_iface
- {
- public:
-   virtual void register_state_machine (std::unique_ptr<state_machine>) = 0;
-   virtual void register_known_function (const char *name,
- 					std::unique_ptr<known_function>) = 0;
-   virtual logger *get_logger () const = 0;
- };
- 
- /* An enum for describing the direction of an access to memory.  */
- 
- enum access_direction
- {
-   DIR_READ,
-   DIR_WRITE
- };
- 
- /* Abstract base class for associating custom data with an
-    exploded_edge, for handling non-standard edges such as
-    rewinding from a longjmp, signal handlers, etc.
-    Also used when "bifurcating" state: splitting the execution
-    path in non-standard ways (e.g. for simulating the various
-    outcomes of "realloc").  */
- 
- class custom_edge_info
- {
- public:
-   virtual ~custom_edge_info () {}
- 
-   /* Hook for making .dot label more readable.  */
-   virtual void print (pretty_printer *pp) const = 0;
- 
-   /* Hook for updating STATE when handling bifurcation.  */
-   virtual bool update_state (program_state *state,
- 			     const exploded_edge *eedge,
- 			     region_model_context *ctxt) const;
- 
-   /* Hook for updating MODEL within exploded_path::feasible_p
-      and when handling bifurcation.  */
-   virtual bool update_model (region_model *model,
- 			     const exploded_edge *eedge,
- 			     region_model_context *ctxt) const = 0;
- 
-   virtual void add_events_to_path (checker_path *emission_path,
- 				   const exploded_edge &eedge) const = 0;
- };
- 
- /* Abstract base class for splitting state.
- 
-    Most of the state-management code in the analyzer involves
-    modifying state objects in-place, which assumes a single outcome.
- 
-    This class provides an escape hatch to allow for multiple outcomes
-    for such updates e.g. for modelling multiple outcomes from function
-    calls, such as the various outcomes of "realloc".  */
- 
- class path_context
- {
- public:
-   virtual ~path_context () {}
- 
-   /* Hook for clients to split state with a non-standard path.  */
-   virtual void bifurcate (std::unique_ptr<custom_edge_info> info) = 0;
- 
-   /* Hook for clients to terminate the standard path.  */
-   virtual void terminate_path () = 0;
- 
-   /* Hook for clients to determine if the standard path has been
-      terminated.  */
-   virtual bool terminate_path_p () const = 0;
- };
- 
- extern tree get_stashed_constant_by_name (const char *name);
- extern void log_stashed_constants (logger *logger);
- 
- 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
- compare_constants (tree lhs_const, enum tree_code op, tree rhs_const);
- 
- extern tree
- get_string_cst_size (const_tree string_cst);
- 
- extern tree
- get_ssa_default_def (const function &fun, tree var);
- 
- extern const svalue *
- strip_types (const svalue *sval, region_model_manager &mgr);
- 
- extern region_offset
- strip_types (const region_offset &offset, region_model_manager &mgr);
- 
- extern tree remove_ssa_names (tree expr);
- 
- } // 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);
- extern bool is_setjmp_call_p (const gcall *call);
- extern bool is_longjmp_call_p (const gcall *call);
- extern bool is_placement_new_p (const gcall *call);
- 
- extern const char *get_user_facing_name (const gcall *call);
- 
- extern void register_analyzer_pass ();
- 
- extern label_text make_label_text (bool can_colorize, const char *fmt, ...);
- extern label_text make_label_text_n (bool can_colorize,
- 				     unsigned HOST_WIDE_INT n,
- 				     const char *singular_fmt,
- 				     const char *plural_fmt, ...);
- 
- extern bool fndecl_has_gimple_body_p (tree fndecl);
- 
- /* An RAII-style class for pushing/popping cfun within a scope.
-    Doing so ensures we get "In function " announcements
-    from the diagnostics subsystem.  */
- 
- class auto_cfun
- {
- public:
-   auto_cfun (function *fun) { push_cfun (fun); }
-   ~auto_cfun () { pop_cfun (); }
- };
- 
- /* A template for creating hash traits for a POD type.  */
- 
- template <typename Type>
- struct pod_hash_traits : typed_noop_remove<Type>
- {
-   typedef Type value_type;
-   typedef Type compare_type;
-   static inline hashval_t hash (value_type);
-   static inline bool equal (const value_type &existing,
- 			    const value_type &candidate);
-   static inline void mark_deleted (Type &);
-   static inline void mark_empty (Type &);
-   static inline bool is_deleted (Type);
-   static inline bool is_empty (Type);
- };
- 
- /* A hash traits class that uses member functions to implement
-    the various required ops.  */
- 
- template <typename Type>
- struct member_function_hash_traits : public typed_noop_remove<Type>
- {
-   typedef Type value_type;
-   typedef Type compare_type;
-   static inline hashval_t hash (value_type v) { return v.hash (); }
-   static inline bool equal (const value_type &existing,
- 			    const value_type &candidate)
-   {
-     return existing == candidate;
-   }
-   static inline void mark_deleted (Type &t) { t.mark_deleted (); }
-   static inline void mark_empty (Type &t) { t.mark_empty (); }
-   static inline bool is_deleted (Type t) { return t.is_deleted (); }
-   static inline bool is_empty (Type t) { return t.is_empty (); }
- };
- 
- /* A map from T::key_t to T* for use in consolidating instances of T.
-    Owns all instances of T.
-    T::key_t should have operator== and be hashable.  */
- 
- template <typename T>
- class consolidation_map
- {
- public:
-   typedef typename T::key_t key_t;
-   typedef T instance_t;
-   typedef hash_map<key_t, instance_t *> inner_map_t;
-   typedef typename inner_map_t::iterator iterator;
- 
-   /* Delete all instances of T.  */
- 
-   ~consolidation_map ()
-   {
-     for (typename inner_map_t::iterator iter = m_inner_map.begin ();
- 	 iter != m_inner_map.end (); ++iter)
-       delete (*iter).second;
-   }
- 
-   /* Get the instance of T for K if one exists, or NULL.  */
- 
-   T *get (const key_t &k) const
-   {
-     if (instance_t **slot = const_cast<inner_map_t &> (m_inner_map).get (k))
-       return *slot;
-     return NULL;
-   }
- 
-   /* Take ownership of INSTANCE.  */
- 
-   void put (const key_t &k, T *instance)
-   {
-     m_inner_map.put (k, instance);
-   }
- 
-   size_t elements () const { return m_inner_map.elements (); }
- 
-   iterator begin () const { return m_inner_map.begin (); }
-   iterator end () const { return m_inner_map.end (); }
- 
- private:
-   inner_map_t m_inner_map;
- };
- 
- /* Disable -Wformat-diag; we want to be able to use pp_printf
-    for logging/dumping without complying with the rules for diagnostics.  */
- #if __GNUC__ >= 10
- #pragma GCC diagnostic ignored "-Wformat-diag"
- #endif
- 
- #if !ENABLE_ANALYZER
- extern void sorry_no_analyzer ();
- #endif /* #if !ENABLE_ANALYZER */
- 
- #endif /* GCC_ANALYZER_ANALYZER_H */
--- 0 ----
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer.opt gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.opt
*** gcc-15.2.0/gcc/analyzer/analyzer.opt	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.opt	Thu Apr 23 11:07:32 2026
***************
*** 1,6 ****
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2025 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; analyzer.opt -- Options for the analyzer.
  
! ; Copyright (C) 2019-2026 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-throw-of-unexpected-type
+ Common Var(warn_analyzer_throw_of_unexpected_type) Init(1) Warning
+ Warn about code paths in which an exception of unexpected type is thrown.
+ 
  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-too-complex
*** 274,279 ****
--- 278,287 ----
  Common Var(warn_analyzer_too_complex) Init(0) Warning
  Warn if the code is too complicated for the analyzer to fully explore.
  
+ fanalyzer-assume-nothrow
+ Common Var(flag_analyzer_assume_nothrow) Init(0)
+ Assume that no function calls can throw exceptions.
+ 
  fanalyzer-checker=
  Common Joined RejectNegative Var(flag_analyzer_checker)
  Restrict the analyzer to run just the named checker.
*************** Common Var(flag_analyzer_debug_text_art)
*** 283,290 ****
  Add extra annotations to diagrams.
  
  fanalyzer-fine-grained
! Common Var(flag_analyzer_fine_grained) Init(0)
! Avoid combining multiple statements into one exploded edge.
  
  fanalyzer-feasibility
  Common Var(flag_analyzer_feasibility) Init(1)
--- 291,298 ----
  Add extra annotations to diagrams.
  
  fanalyzer-fine-grained
! Common Ignore
! Does nothing. Preserved for backward compatibility.
  
  fanalyzer-feasibility
  Common Var(flag_analyzer_feasibility) Init(1)
*************** fanalyzer-show-duplicate-count
*** 294,299 ****
--- 302,311 ----
  Common Var(flag_analyzer_show_duplicate_count) Init(0)
  Issue a note when diagnostics are deduplicated.
  
+ fanalyzer-simplify-supergraph
+ Common Var(flag_analyzer_simplify_supergraph) Init(1)
+ Simplify the supergraph before analyzing it.
+ 
  fanalyzer-state-purge
  Common Var(flag_analyzer_state_purge) Init(1)
  Purge unneeded state during analysis.
*************** Common Var(flag_analyzer_verbose_state_c
*** 331,337 ****
  Emit more verbose descriptions of state changes in diagnostics.
  
  fanalyzer-verbosity=
! Common Joined UInteger Var(analyzer_verbosity) Init(2)
  Control which events are displayed in diagnostic paths.
  
  fdump-analyzer
--- 343,349 ----
  Emit more verbose descriptions of state changes in diagnostics.
  
  fanalyzer-verbosity=
! Common RejectNegative Joined UInteger Var(analyzer_verbosity) Init(2)
  Control which events are displayed in diagnostic paths.
  
  fdump-analyzer
*************** Common RejectNegative Var(flag_dump_anal
*** 343,350 ****
  Dump various analyzer internals to stderr.
  
  fdump-analyzer-callgraph
! Common RejectNegative Var(flag_dump_analyzer_callgraph)
! Dump analyzer-specific call graph information to a SRCFILE.callgraph.dot file.
  
  fdump-analyzer-exploded-graph
  Common RejectNegative Var(flag_dump_analyzer_exploded_graph)
--- 355,362 ----
  Dump various analyzer internals to stderr.
  
  fdump-analyzer-callgraph
! Common Ignore
! Does nothing. Preserved for backward compatibility.
  
  fdump-analyzer-exploded-graph
  Common RejectNegative Var(flag_dump_analyzer_exploded_graph)
diff -Nrcpad gcc-15.2.0/gcc/analyzer/analyzer.opt.urls gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.opt.urls
*** gcc-15.2.0/gcc/analyzer/analyzer.opt.urls	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/analyzer.opt.urls	Thu Apr 23 11:07:32 2026
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 114,119 ****
--- 114,122 ----
  Wanalyzer-tainted-size
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-tainted-size)
  
+ Wanalyzer-throw-of-unexpected-type
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-throw-of-unexpected-type)
+ 
  Wanalyzer-undefined-behavior-ptrdiff
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-undefined-behavior-ptrdiff)
  
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 153,158 ****
--- 156,164 ----
  Wanalyzer-too-complex
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-Wanalyzer-too-complex)
  
+ fanalyzer-assume-nothrow
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-assume-nothrow)
+ 
  fanalyzer-checker=
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-checker)
  
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 168,173 ****
--- 174,182 ----
  fanalyzer-show-duplicate-count
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-show-duplicate-count)
  
+ fanalyzer-simplify-supergraph
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-simplify-supergraph)
+ 
  fanalyzer-state-purge
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-state-purge)
  
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 189,194 ****
--- 198,212 ----
  fanalyzer-undo-inlining
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-undo-inlining)
  
+ fanalyzer-verbose-edges
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-verbose-edges)
+ 
+ fanalyzer-verbose-state-changes
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-verbose-state-changes)
+ 
+ fanalyzer-verbosity=
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fanalyzer-verbosity)
+ 
  fdump-analyzer
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer)
  
*************** UrlSuffix(gcc/Static-Analyzer-Options.ht
*** 201,209 ****
--- 219,242 ----
  fdump-analyzer-exploded-graph
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-graph)
  
+ fdump-analyzer-exploded-nodes
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-nodes)
+ 
+ fdump-analyzer-exploded-nodes-2
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-nodes-2)
+ 
+ fdump-analyzer-exploded-nodes-3
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-nodes-3)
+ 
  fdump-analyzer-exploded-paths
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-exploded-paths)
  
+ fdump-analyzer-feasibility
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-feasibility)
+ 
+ fdump-analyzer-infinite-loop
+ UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-infinite-loop)
+ 
  fdump-analyzer-json
  UrlSuffix(gcc/Static-Analyzer-Options.html#index-fdump-analyzer-json)
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/bar-chart.cc gcc-16.1.0-RC-20260423/gcc/analyzer/bar-chart.cc
*** gcc-15.2.0/gcc/analyzer/bar-chart.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/bar-chart.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/bar-chart.h gcc-16.1.0-RC-20260423/gcc/analyzer/bar-chart.h
*** gcc-15.2.0/gcc/analyzer/bar-chart.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/bar-chart.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Support for plotting bar charts in dumps.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/bounds-checking.cc gcc-16.1.0-RC-20260423/gcc/analyzer/bounds-checking.cc
*** gcc-15.2.0/gcc/analyzer/bounds-checking.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/bounds-checking.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
  
--- 1,5 ----
  /* Bounds-checking of reads and writes to memory regions.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** You should have received a copy of the G
*** 17,37 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
  #include "intl.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "diagnostic-diagram.h"
! #include "diagnostic-format-sarif.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/checker-event.h"
--- 17,28 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "intl.h"
! #include "diagnostics/diagram.h"
! #include "diagnostics/sarif-sink.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/checker-event.h"
*************** public:
*** 60,66 ****
      }
      void prepare_for_emission (checker_path *path,
  			       pending_diagnostic *pd,
! 			       diagnostic_event_id_t emission_id) override
      {
        region_creation_event_capacity::prepare_for_emission (path,
  							    pd,
--- 51,57 ----
      }
      void prepare_for_emission (checker_path *path,
  			       pending_diagnostic *pd,
! 			       diagnostics::paths::event_id_t emission_id) override
      {
        region_creation_event_capacity::prepare_for_emission (path,
  							    pd,
*************** public:
*** 105,122 ****
         so we don't need an event for that.  */
      if (byte_capacity)
        emission_path.add_event
! 	(make_unique<oob_region_creation_event_capacity> (byte_capacity,
! 							  loc_info,
! 							  *this));
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const override
    {
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/out_of_bounds/"
      props.set_string (PROPERTY_PREFIX "dir",
! 		      get_dir () == DIR_READ ? "read" : "write");
      props.set (PROPERTY_PREFIX "model", m_model.to_json ());
      props.set (PROPERTY_PREFIX "region", m_reg->to_json ());
      props.set (PROPERTY_PREFIX "diag_arg", tree_to_json (m_diag_arg));
--- 96,114 ----
         so we don't need an event for that.  */
      if (byte_capacity)
        emission_path.add_event
! 	(std::make_unique<oob_region_creation_event_capacity> (byte_capacity,
! 							       loc_info,
! 							       *this));
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/out_of_bounds/"
      props.set_string (PROPERTY_PREFIX "dir",
! 		      get_dir () == access_direction::read ? "read" : "write");
      props.set (PROPERTY_PREFIX "model", m_model.to_json ());
      props.set (PROPERTY_PREFIX "region", m_reg->to_json ());
      props.set (PROPERTY_PREFIX "diag_arg", tree_to_json (m_diag_arg));
*************** protected:
*** 190,196 ****
  	       a problem.  Give up if that's happened.  */
  	    return;
  	  }
! 	diagnostic_diagram diagram
  	  (canvas,
  	   /* Alt text.  */
  	   _("Diagram visualizing the predicted out-of-bounds access"));
--- 182,188 ----
  	       a problem.  Give up if that's happened.  */
  	    return;
  	  }
! 	diagnostics::diagram diagram
  	  (canvas,
  	   /* Alt text.  */
  	   _("Diagram visualizing the predicted out-of-bounds access"));
*************** protected:
*** 212,218 ****
    const region *m_reg;
    tree m_diag_arg;
    const svalue *m_sval_hint;
!   diagnostic_event_id_t m_region_creation_event_id;
  };
  
  /* Abstract base class for all out-of-bounds warnings where the
--- 204,210 ----
    const region *m_reg;
    tree m_diag_arg;
    const svalue *m_sval_hint;
!   diagnostics::paths::event_id_t m_region_creation_event_id;
  };
  
  /* Abstract base class for all out-of-bounds warnings where the
*************** public:
*** 237,247 ****
  	    && m_out_of_bounds_bits == other.m_out_of_bounds_bits);
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const override
    {
      out_of_bounds::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/concrete_out_of_bounds/"
      props.set (PROPERTY_PREFIX "out_of_bounds_bits",
  	       m_out_of_bounds_bits.to_json ());
--- 229,239 ----
  	    && m_out_of_bounds_bits == other.m_out_of_bounds_bits);
    }
  
!   void maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const override
    {
      out_of_bounds::maybe_add_sarif_properties (result_obj);
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/concrete_out_of_bounds/"
      props.set (PROPERTY_PREFIX "out_of_bounds_bits",
  	       m_out_of_bounds_bits.to_json ());
*************** public:
*** 298,313 ****
    {
      if (m_byte_bound && TREE_CODE (m_byte_bound) == INTEGER_CST)
        emission_path.add_event
! 	(make_unique<oob_region_creation_event_capacity> (m_byte_bound,
! 							  loc_info,
! 							  *this));
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const final override
    {
      concrete_out_of_bounds::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/concrete_past_the_end/"
      props.set (PROPERTY_PREFIX "bit_bound",
  	       tree_to_json (m_bit_bound));
--- 290,305 ----
    {
      if (m_byte_bound && TREE_CODE (m_byte_bound) == INTEGER_CST)
        emission_path.add_event
! 	(std::make_unique<oob_region_creation_event_capacity> (m_byte_bound,
! 							       loc_info,
! 							       *this));
    }
  
!   void maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
      concrete_out_of_bounds::maybe_add_sarif_properties (result_obj);
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/concrete_past_the_end/"
      props.set (PROPERTY_PREFIX "bit_bound",
  	       tree_to_json (m_bit_bound));
*************** public:
*** 505,511 ****
        }
    }
  
!   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about buffer over-reads.  */
--- 497,503 ----
        }
    }
  
!   enum access_direction get_dir () const final override { return access_direction::write; }
  };
  
  /* Concrete subclass to complain about buffer over-reads.  */
*************** public:
*** 516,522 ****
    concrete_buffer_over_read (const region_model &model,
  			     const region *reg, tree diag_arg,
  			     bit_range range, tree bit_bound)
!   : concrete_past_the_end (model, reg, diag_arg, range, bit_bound, NULL)
    {}
  
    const char *get_kind () const final override
--- 508,514 ----
    concrete_buffer_over_read (const region_model &model,
  			     const region *reg, tree diag_arg,
  			     bit_range range, tree bit_bound)
!   : concrete_past_the_end (model, reg, diag_arg, range, bit_bound, nullptr)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 689,695 ****
        }
    }
  
!   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
  /* Concrete subclass to complain about buffer underwrites.  */
--- 681,687 ----
        }
    }
  
!   enum access_direction get_dir () const final override { return access_direction::read; }
  };
  
  /* Concrete subclass to complain about buffer underwrites.  */
*************** public:
*** 817,823 ****
        }
    }
  
!   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about buffer under-reads.  */
--- 809,815 ----
        }
    }
  
!   enum access_direction get_dir () const final override { return access_direction::write; }
  };
  
  /* Concrete subclass to complain about buffer under-reads.  */
*************** public:
*** 828,834 ****
    concrete_buffer_under_read (const region_model &model,
  			      const region *reg, tree diag_arg,
  			      bit_range range)
!   : concrete_out_of_bounds (model, reg, diag_arg, range, NULL)
    {}
  
    const char *get_kind () const final override
--- 820,826 ----
    concrete_buffer_under_read (const region_model &model,
  			      const region *reg, tree diag_arg,
  			      bit_range range)
!   : concrete_out_of_bounds (model, reg, diag_arg, range, nullptr)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 945,951 ****
        }
    }
  
!   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
  /* Abstract class to complain about out-of-bounds read/writes where
--- 937,943 ----
        }
    }
  
!   enum access_direction get_dir () const final override { return access_direction::read; }
  };
  
  /* Abstract class to complain about out-of-bounds read/writes where
*************** public:
*** 975,985 ****
  	    && pending_diagnostic::same_tree_p (m_capacity, other.m_capacity));
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const final override
    {
      out_of_bounds::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/symbolic_past_the_end/"
      props.set (PROPERTY_PREFIX "offset", tree_to_json (m_offset));
      props.set (PROPERTY_PREFIX "num_bytes", tree_to_json (m_num_bytes));
--- 967,978 ----
  	    && pending_diagnostic::same_tree_p (m_capacity, other.m_capacity));
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
      out_of_bounds::maybe_add_sarif_properties (result_obj);
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/symbolic_past_the_end/"
      props.set (PROPERTY_PREFIX "offset", tree_to_json (m_offset));
      props.set (PROPERTY_PREFIX "num_bytes", tree_to_json (m_num_bytes));
*************** public:
*** 1116,1122 ****
      return true;
    }
  
!   enum access_direction get_dir () const final override { return DIR_WRITE; }
  };
  
  /* Concrete subclass to complain about over-reads with symbolic values.  */
--- 1109,1115 ----
      return true;
    }
  
!   enum access_direction get_dir () const final override { return access_direction::write; }
  };
  
  /* Concrete subclass to complain about over-reads with symbolic values.  */
*************** public:
*** 1128,1134 ****
  			     const region *reg, tree diag_arg, tree offset,
  			     tree num_bytes, tree capacity)
    : symbolic_past_the_end (model, reg, diag_arg, offset, num_bytes, capacity,
! 			   NULL)
    {
    }
  
--- 1121,1127 ----
  			     const region *reg, tree diag_arg, tree offset,
  			     tree num_bytes, tree capacity)
    : symbolic_past_the_end (model, reg, diag_arg, offset, num_bytes, capacity,
! 			   nullptr)
    {
    }
  
*************** public:
*** 1243,1249 ****
      return true;
    }
  
!   enum access_direction get_dir () const final override { return DIR_READ; }
  };
  
  const svalue *
--- 1236,1242 ----
      return true;
    }
  
!   enum access_direction get_dir () const final override { return access_direction::read; }
  };
  
  const svalue *
*************** strip_types (const svalue *sval,
*** 1334,1351 ****
  	const widening_svalue *widening_sval = (const widening_svalue *)sval;
  	return mgr.get_or_create_widening_svalue
  	  (NULL_TREE,
! 	   widening_sval->get_point (),
  	   strip_types (widening_sval->get_base_svalue (), mgr),
  	   strip_types (widening_sval->get_iter_svalue (), mgr));
        }
      case SK_COMPOUND:
        {
  	const compound_svalue *compound_sval = (const compound_svalue *)sval;
! 	binding_map typeless_map;
  	for (auto iter : compound_sval->get_map ())
  	  {
! 	    const binding_key *key = iter.first;
! 	    const svalue *bound_sval = iter.second;
  	    typeless_map.put (key, strip_types (bound_sval, mgr));
  	  }
  	return mgr.get_or_create_compound_svalue (NULL_TREE, typeless_map);
--- 1327,1344 ----
  	const widening_svalue *widening_sval = (const widening_svalue *)sval;
  	return mgr.get_or_create_widening_svalue
  	  (NULL_TREE,
! 	   widening_sval->get_snode (),
  	   strip_types (widening_sval->get_base_svalue (), mgr),
  	   strip_types (widening_sval->get_iter_svalue (), mgr));
        }
      case SK_COMPOUND:
        {
  	const compound_svalue *compound_sval = (const compound_svalue *)sval;
! 	binding_map typeless_map (*mgr.get_store_manager ());
  	for (auto iter : compound_sval->get_map ())
  	  {
! 	    const binding_key *key = iter.m_key;
! 	    const svalue *bound_sval = iter.m_sval;
  	    typeless_map.put (key, strip_types (bound_sval, mgr));
  	  }
  	return mgr.get_or_create_compound_svalue (NULL_TREE, typeless_map);
*************** region_model::check_symbolic_bounds (con
*** 1427,1450 ****
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case DIR_READ:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<symbolic_buffer_over_read> (*this,
! 							      sized_offset_reg,
! 							      diag_arg,
! 							      offset_tree,
! 							      num_bytes_tree,
! 							      capacity_tree));
  	  return false;
  	  break;
! 	case DIR_WRITE:
! 	  ctxt->warn (make_unique<symbolic_buffer_overflow> (*this,
! 							     sized_offset_reg,
! 							     diag_arg,
! 							     offset_tree,
! 							     num_bytes_tree,
! 							     capacity_tree,
! 							     sval_hint));
  	  return false;
  	  break;
  	}
--- 1420,1445 ----
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case access_direction::read:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn
! 	    (std::make_unique<symbolic_buffer_over_read> (*this,
! 							  sized_offset_reg,
! 							  diag_arg,
! 							  offset_tree,
! 							  num_bytes_tree,
! 							  capacity_tree));
  	  return false;
  	  break;
! 	case access_direction::write:
! 	  ctxt->warn
! 	    (std::make_unique<symbolic_buffer_overflow> (*this,
! 							 sized_offset_reg,
! 							 diag_arg,
! 							 offset_tree,
! 							 num_bytes_tree,
! 							 capacity_tree,
! 							 sval_hint));
  	  return false;
  	  break;
  	}
*************** region_model::check_region_bounds (const
*** 1535,1552 ****
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case DIR_READ:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<concrete_buffer_under_read> (*this, reg,
! 							       diag_arg,
! 							       bits_outside));
  	  oob_safe = false;
  	  break;
! 	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_underwrite> (*this,
! 							       reg, diag_arg,
! 							       bits_outside,
! 							       sval_hint));
  	  oob_safe = false;
  	  break;
  	}
--- 1530,1549 ----
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case access_direction::read:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn
! 	    (std::make_unique<concrete_buffer_under_read> (*this, reg,
! 							   diag_arg,
! 							   bits_outside));
  	  oob_safe = false;
  	  break;
! 	case access_direction::write:
! 	  ctxt->warn
! 	    (std::make_unique<concrete_buffer_underwrite> (*this,
! 							   reg, diag_arg,
! 							   bits_outside,
! 							   sval_hint));
  	  oob_safe = false;
  	  break;
  	}
*************** region_model::check_region_bounds (const
*** 1571,1590 ****
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case DIR_READ:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn (make_unique<concrete_buffer_over_read> (*this,
! 							      reg, diag_arg,
! 							      bits_outside,
! 							      bit_bound));
  	  oob_safe = false;
  	  break;
! 	case DIR_WRITE:
! 	  ctxt->warn (make_unique<concrete_buffer_overflow> (*this,
! 							     reg, diag_arg,
! 							     bits_outside,
! 							     bit_bound,
! 							     sval_hint));
  	  oob_safe = false;
  	  break;
  	}
--- 1568,1589 ----
  	default:
  	  gcc_unreachable ();
  	  break;
! 	case access_direction::read:
  	  gcc_assert (sval_hint == nullptr);
! 	  ctxt->warn
! 	    (std::make_unique<concrete_buffer_over_read> (*this,
! 							  reg, diag_arg,
! 							  bits_outside,
! 							  bit_bound));
  	  oob_safe = false;
  	  break;
! 	case access_direction::write:
! 	  ctxt->warn
! 	    (std::make_unique<concrete_buffer_overflow> (*this,
! 							 reg, diag_arg,
! 							 bits_outside,
! 							 bit_bound,
! 							 sval_hint));
  	  oob_safe = false;
  	  break;
  	}
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-details.cc gcc-16.1.0-RC-20260423/gcc/analyzer/call-details.cc
*** gcc-15.2.0/gcc/analyzer/call-details.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-details.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,44 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "diagnostic.h"
  #include "tree-diagnostic.h" /* for default_tree_printer.  */
  #include "gimple-pretty-print.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  #include "analyzer/ranges.h"
- #include "stringpool.h"
- #include "attribs.h"
- #include "make-unique.h"
- #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
--- 18,36 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "diagnostic.h"
  #include "tree-diagnostic.h" /* for default_tree_printer.  */
  #include "gimple-pretty-print.h"
+ #include "stringpool.h"
+ #include "attribs.h"
+ #include "diagnostics/sarif-sink.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  #include "analyzer/ranges.h"
  
  #if ENABLE_ANALYZER
  
*************** namespace ana {
*** 48,60 ****
  
  /* call_details's ctor.  */
  
! call_details::call_details (const gcall *call, region_model *model,
  			    region_model_context *ctxt)
  : m_call (call), m_model (model), m_ctxt (ctxt),
!   m_lhs_type (NULL_TREE), m_lhs_region (NULL)
  {
    m_lhs_type = NULL_TREE;
!   if (tree lhs = gimple_call_lhs (call))
      {
        m_lhs_region = model->get_lvalue (lhs, ctxt);
        m_lhs_type = TREE_TYPE (lhs);
--- 40,52 ----
  
  /* call_details's ctor.  */
  
! call_details::call_details (const gcall &call, region_model *model,
  			    region_model_context *ctxt)
  : m_call (call), m_model (model), m_ctxt (ctxt),
!   m_lhs_type (NULL_TREE), m_lhs_region (nullptr)
  {
    m_lhs_type = NULL_TREE;
!   if (tree lhs = gimple_call_lhs (&call))
      {
        m_lhs_region = model->get_lvalue (lhs, ctxt);
        m_lhs_type = TREE_TYPE (lhs);
*************** call_details::call_details (const gcall
*** 66,74 ****
  
  call_details::call_details (const call_details &cd,
  			    region_model_context *ctxt)
  {
-   *this = cd;
-   m_ctxt = ctxt;
  }
  
  /* Get the manager from m_model.  */
--- 58,68 ----
  
  call_details::call_details (const call_details &cd,
  			    region_model_context *ctxt)
+ : m_call (cd.m_call), m_model (cd.m_model),
+   m_ctxt (ctxt),
+   m_lhs_type (cd.m_lhs_type),
+   m_lhs_region (cd.m_lhs_region)
  {
  }
  
  /* Get the manager from m_model.  */
*************** call_details::get_logger () const
*** 87,93 ****
    if (m_ctxt)
      return m_ctxt->get_logger ();
    else
!     return NULL;
  }
  
  /* Get any uncertainty_t associated with the region_model_context.  */
--- 81,87 ----
    if (m_ctxt)
      return m_ctxt->get_logger ();
    else
!     return nullptr;
  }
  
  /* Get any uncertainty_t associated with the region_model_context.  */
*************** call_details::get_uncertainty () const
*** 98,104 ****
    if (m_ctxt)
      return m_ctxt->get_uncertainty ();
    else
!     return NULL;
  }
  
  /* If the callsite has a left-hand-side region, set it to RESULT
--- 92,98 ----
    if (m_ctxt)
      return m_ctxt->get_uncertainty ();
    else
!     return nullptr;
  }
  
  /* If the callsite has a left-hand-side region, set it to RESULT
*************** const_fn_p (const call_details &cd)
*** 133,157 ****
  
  /* If this CD is known to be a call to a function with
     __attribute__((const)), attempt to get a const_fn_result_svalue
!    based on the arguments, or return NULL otherwise.  */
  
  static const svalue *
  maybe_get_const_fn_result (const call_details &cd)
  {
    if (!const_fn_p (cd))
!     return NULL;
  
    unsigned num_args = cd.num_args ();
    if (num_args > const_fn_result_svalue::MAX_INPUTS)
      /* Too many arguments.  */
!     return NULL;
  
    auto_vec<const svalue *> inputs (num_args);
    for (unsigned arg_idx = 0; arg_idx < num_args; arg_idx++)
      {
        const svalue *arg_sval = cd.get_arg_svalue (arg_idx);
        if (!arg_sval->can_have_associated_state_p ())
! 	return NULL;
        inputs.quick_push (arg_sval);
      }
  
--- 127,151 ----
  
  /* If this CD is known to be a call to a function with
     __attribute__((const)), attempt to get a const_fn_result_svalue
!    based on the arguments, or return nullptr otherwise.  */
  
  static const svalue *
  maybe_get_const_fn_result (const call_details &cd)
  {
    if (!const_fn_p (cd))
!     return nullptr;
  
    unsigned num_args = cd.num_args ();
    if (num_args > const_fn_result_svalue::MAX_INPUTS)
      /* Too many arguments.  */
!     return nullptr;
  
    auto_vec<const svalue *> inputs (num_args);
    for (unsigned arg_idx = 0; arg_idx < num_args; arg_idx++)
      {
        const svalue *arg_sval = cd.get_arg_svalue (arg_idx);
        if (!arg_sval->can_have_associated_state_p ())
! 	return nullptr;
        inputs.quick_push (arg_sval);
      }
  
*************** call_details::set_any_lhs_with_defaults
*** 228,235 ****
        if (lookup_function_attribute ("malloc"))
  	{
  	  const region *new_reg
! 	    = m_model->get_or_create_region_for_heap_alloc (NULL, m_ctxt);
! 	  m_model->mark_region_as_unknown (new_reg, NULL);
  	  sval = mgr->get_ptr_svalue (get_lhs_type (), new_reg);
  	}
        else
--- 222,229 ----
        if (lookup_function_attribute ("malloc"))
  	{
  	  const region *new_reg
! 	    = m_model->get_or_create_region_for_heap_alloc (nullptr, m_ctxt);
! 	  m_model->mark_region_as_unknown (new_reg, nullptr);
  	  sval = mgr->get_ptr_svalue (get_lhs_type (), new_reg);
  	}
        else
*************** call_details::set_any_lhs_with_defaults
*** 252,258 ****
  unsigned
  call_details::num_args () const
  {
!   return gimple_call_num_args (m_call);
  }
  
  /* Return true if argument IDX is a size_t (or compatible with it).  */
--- 246,252 ----
  unsigned
  call_details::num_args () const
  {
!   return gimple_call_num_args (&m_call);
  }
  
  /* Return true if argument IDX is a size_t (or compatible with it).  */
*************** call_details::arg_is_size_p (unsigned id
*** 268,274 ****
  location_t
  call_details::get_location () const
  {
!   return m_call->location;
  }
  
  /* Get argument IDX at the callsite as a tree.  */
--- 262,268 ----
  location_t
  call_details::get_location () const
  {
!   return m_call.location;
  }
  
  /* Get argument IDX at the callsite as a tree.  */
*************** call_details::get_location () const
*** 276,282 ****
  tree
  call_details::get_arg_tree (unsigned idx) const
  {
!   return gimple_call_arg (m_call, idx);
  }
  
  /* Get the type of argument IDX.  */
--- 270,276 ----
  tree
  call_details::get_arg_tree (unsigned idx) const
  {
!   return gimple_call_arg (&m_call, idx);
  }
  
  /* Get the type of argument IDX.  */
*************** call_details::get_arg_tree (unsigned idx
*** 284,290 ****
  tree
  call_details::get_arg_type (unsigned idx) const
  {
!   return TREE_TYPE (gimple_call_arg (m_call, idx));
  }
  
  /* Get argument IDX at the callsite as an svalue.  */
--- 278,284 ----
  tree
  call_details::get_arg_type (unsigned idx) const
  {
!   return TREE_TYPE (gimple_call_arg (&m_call, idx));
  }
  
  /* Get argument IDX at the callsite as an svalue.  */
*************** call_details::get_arg_svalue (unsigned i
*** 298,304 ****
  
  /* If argument IDX's svalue at the callsite is of pointer type,
     return the region it points to.
!    Otherwise return NULL.  */
  
  const region *
  call_details::deref_ptr_arg (unsigned idx) const
--- 292,298 ----
  
  /* If argument IDX's svalue at the callsite is of pointer type,
     return the region it points to.
!    Otherwise return nullptr.  */
  
  const region *
  call_details::deref_ptr_arg (unsigned idx) const
*************** call_details::deref_ptr_arg (unsigned id
*** 307,313 ****
    return m_model->deref_rvalue (ptr_sval, get_arg_tree (idx), m_ctxt);
  }
  
! /* Attempt to get the string literal for argument IDX, or return NULL
     otherwise.
     For use when implementing "__analyzer_*" functions that take
     string literals.  */
--- 301,307 ----
    return m_model->deref_rvalue (ptr_sval, get_arg_tree (idx), m_ctxt);
  }
  
! /* Attempt to get the string literal for argument IDX, or return nullptr
     otherwise.
     For use when implementing "__analyzer_*" functions that take
     string literals.  */
*************** call_details::get_arg_string_literal (un
*** 322,328 ****
  	tree string_cst = string_reg->get_string_cst ();
  	return TREE_STRING_POINTER (string_cst);
        }
!   return NULL;
  }
  
  /* Attempt to get the fndecl used at this call, if known, or NULL_TREE
--- 316,322 ----
  	tree string_cst = string_reg->get_string_cst ();
  	return TREE_STRING_POINTER (string_cst);
        }
!   return nullptr;
  }
  
  /* Attempt to get the fndecl used at this call, if known, or NULL_TREE
*************** void
*** 340,346 ****
  call_details::dump_to_pp (pretty_printer *pp, bool simple) const
  {
    pp_string (pp, "gcall: ");
!   pp_gimple_stmt_1 (pp, m_call, 0 /* spc */, TDF_NONE /* flags */);
    pp_newline (pp);
    pp_string (pp, "return region: ");
    if (m_lhs_region)
--- 334,340 ----
  call_details::dump_to_pp (pretty_printer *pp, bool simple) const
  {
    pp_string (pp, "gcall: ");
!   pp_gimple_stmt_1 (pp, &m_call, 0 /* spc */, TDF_NONE /* flags */);
    pp_newline (pp);
    pp_string (pp, "return region: ");
    if (m_lhs_region)
*************** call_details::dump_to_pp (pretty_printer
*** 348,354 ****
    else
      pp_string (pp, "NULL");
    pp_newline (pp);
!   for (unsigned i = 0; i < gimple_call_num_args (m_call); i++)
      {
        const svalue *arg_sval = get_arg_svalue (i);
        pp_printf (pp, "arg %i: ", i);
--- 342,348 ----
    else
      pp_string (pp, "NULL");
    pp_newline (pp);
!   for (unsigned i = 0; i < gimple_call_num_args (&m_call); i++)
      {
        const svalue *arg_sval = get_arg_svalue (i);
        pp_printf (pp, "arg %i: ", i);
*************** call_details::dump (bool simple) const
*** 366,371 ****
--- 360,424 ----
    dump_to_pp (&pp, simple);
  }
  
+ /* Dump a tree-like representation of this call to stderr.  */
+ 
+ DEBUG_FUNCTION void
+ call_details::dump () const
+ {
+   text_art::dump (*this);
+ }
+ 
+ std::unique_ptr<text_art::tree_widget>
+ call_details::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> cd_widget
+     (tree_widget::from_fmt (dwi, nullptr, "Call Details"));
+ 
+   {
+     pretty_printer the_pp;
+     pretty_printer * const pp = &the_pp;
+     pp_format_decoder (pp) = default_tree_printer;
+     pp_string (pp, "gcall: ");
+     pp_gimple_stmt_1 (pp, &m_call, 0 /* spc */, TDF_NONE /* flags */);
+     cd_widget->add_child (tree_widget::make (dwi, pp));
+   }
+   {
+     pretty_printer the_pp;
+     pretty_printer * const pp = &the_pp;
+     pp_format_decoder (pp) = default_tree_printer;
+     pp_string (pp, "return region: ");
+     if (m_lhs_region)
+       m_lhs_region->dump_to_pp (pp, true);
+     else
+       pp_string (pp, "NULL");
+     auto w = tree_widget::make (dwi, pp);
+     if (m_lhs_region)
+       w->add_child (m_lhs_region->make_dump_widget (dwi));
+     cd_widget->add_child (std::move (w));
+   }
+   if (gimple_call_num_args (&m_call) > 0)
+     {
+       std::unique_ptr<tree_widget> args_widget
+ 	(tree_widget::from_fmt (dwi, nullptr, "Arguments"));
+       for (unsigned i = 0; i < gimple_call_num_args (&m_call); i++)
+ 	{
+ 	  pretty_printer the_pp;
+ 	  pretty_printer * const pp = &the_pp;
+ 	  pp_format_decoder (pp) = default_tree_printer;
+ 	  const svalue *arg_sval = get_arg_svalue (i);
+ 	  pp_printf (pp, "%i: ", i);
+ 	  arg_sval->dump_to_pp (pp, true);
+ 	  auto w = tree_widget::make (dwi, pp);
+ 	  w->add_child (arg_sval->make_dump_widget (dwi));
+ 	  args_widget->add_child (std::move (w));
+ 	}
+       cd_widget->add_child (std::move (args_widget));
+     }
+ 
+   return cd_widget;
+ }
+ 
  /* Get a conjured_svalue for this call for REG,
     and purge any state already relating to that conjured_svalue.  */
  
*************** const svalue *
*** 373,379 ****
  call_details::get_or_create_conjured_svalue (const region *reg) const
  {
    region_model_manager *mgr = m_model->get_manager ();
!   return mgr->get_or_create_conjured_svalue (reg->get_type (), m_call, reg,
  					     conjured_purge (m_model, m_ctxt));
  }
  
--- 426,432 ----
  call_details::get_or_create_conjured_svalue (const region *reg) const
  {
    region_model_manager *mgr = m_model->get_manager ();
!   return mgr->get_or_create_conjured_svalue (reg->get_type (), &m_call, reg,
  					     conjured_purge (m_model, m_ctxt));
  }
  
*************** call_details::lookup_function_attribute
*** 388,394 ****
    if (tree fndecl = get_fndecl_for_call ())
      allocfntype = TREE_TYPE (fndecl);
    else
!     allocfntype = gimple_call_fntype (m_call);
  
    if (!allocfntype)
      return NULL_TREE;
--- 441,447 ----
    if (tree fndecl = get_fndecl_for_call ())
      allocfntype = TREE_TYPE (fndecl);
    else
!     allocfntype = gimple_call_fntype (&m_call);
  
    if (!allocfntype)
      return NULL_TREE;
*************** public:
*** 475,484 ****
      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/overlapping_buffers/"
      props.set (PROPERTY_PREFIX "bytes_range_a",
  	       m_byte_range_a.to_json ());
--- 528,537 ----
      return true;
    }
  
!   void maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/overlapping_buffers/"
      props.set (PROPERTY_PREFIX "bytes_range_a",
  	       m_byte_range_a.to_json ());
*************** call_details::complain_about_overlap (un
*** 540,549 ****
    if (!byte_range_a.intersection (byte_range_b, *model).is_true ())
      return;
  
!   ctxt->warn (make_unique<overlapping_buffers> (get_fndecl_for_call (),
! 						byte_range_a,
! 						byte_range_b,
! 						num_bytes_read_sval));
  }
  
  } // namespace ana
--- 593,602 ----
    if (!byte_range_a.intersection (byte_range_b, *model).is_true ())
      return;
  
!   ctxt->warn (std::make_unique<overlapping_buffers> (get_fndecl_for_call (),
! 						     byte_range_a,
! 						     byte_range_b,
! 						     num_bytes_read_sval));
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-details.h gcc-16.1.0-RC-20260423/gcc/analyzer/call-details.h
*** gcc-15.2.0/gcc/analyzer/call-details.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-details.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Helper class for handling a call with specific arguments.
!    Copyright (C) 2019-2026 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_CALL_DETAILS_H
  #define GCC_ANALYZER_CALL_DETAILS_H
  
+ #include "pending-diagnostic.h"
+ 
  namespace ana {
  
  /* Helper class for handling calls to functions with known behavior.  */
*************** namespace ana {
*** 28,34 ****
  class call_details
  {
  public:
!   call_details (const gcall *call, region_model *model,
  		region_model_context *ctxt);
    call_details (const call_details &cd, region_model_context *ctxt);
  
--- 30,36 ----
  class call_details
  {
  public:
!   call_details (const gcall &call, region_model *model,
  		region_model_context *ctxt);
    call_details (const call_details &cd, region_model_context *ctxt);
  
*************** public:
*** 55,61 ****
      return INTEGRAL_TYPE_P (get_arg_type (idx));
    }
  
!   const gcall *get_call_stmt () const { return m_call; }
    location_t get_location () const;
  
    tree get_arg_tree (unsigned idx) const;
--- 57,63 ----
      return INTEGRAL_TYPE_P (get_arg_type (idx));
    }
  
!   const gcall &get_call_stmt () const { return m_call; }
    location_t get_location () const;
  
    tree get_arg_tree (unsigned idx) const;
*************** public:
*** 68,73 ****
--- 70,79 ----
  
    void dump_to_pp (pretty_printer *pp, bool simple) const;
    void dump (bool simple) const;
+   void dump () const;
+ 
+   std::unique_ptr<text_art::tree_widget>
+   make_dump_widget (const text_art::dump_widget_info &dwi) const;
  
    const svalue *get_or_create_conjured_svalue (const region *) const;
  
*************** public:
*** 86,92 ****
  			  const svalue *num_bytes_read_sval) const;
  
  private:
!   const gcall *m_call;
    region_model *m_model;
    region_model_context *m_ctxt;
    tree m_lhs_type;
--- 92,98 ----
  			  const svalue *num_bytes_read_sval) const;
  
  private:
!   const gcall &m_call;
    region_model *m_model;
    region_model_context *m_ctxt;
    tree m_lhs_type;
*************** public:
*** 110,122 ****
  
    bool operator== (const call_arg_details &other) const
    {
!     return (m_call == other.m_call
  	    && m_called_fndecl == other.m_called_fndecl
  	    && m_arg_idx == other.m_arg_idx
  	    && pending_diagnostic::same_tree_p (m_arg_expr, other.m_arg_expr));
    }
  
!   const gcall *m_call;
    tree m_called_fndecl;
    unsigned m_arg_idx; // 0-based
    tree m_arg_expr;
--- 116,128 ----
  
    bool operator== (const call_arg_details &other) const
    {
!     return (&m_call == &other.m_call
  	    && m_called_fndecl == other.m_called_fndecl
  	    && m_arg_idx == other.m_arg_idx
  	    && pending_diagnostic::same_tree_p (m_arg_expr, other.m_arg_expr));
    }
  
!   const gcall &m_call;
    tree m_called_fndecl;
    unsigned m_arg_idx; // 0-based
    tree m_arg_expr;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-info.cc gcc-16.1.0-RC-20260423/gcc/analyzer/call-info.cc
*** gcc-15.2.0/gcc/analyzer/call-info.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-info.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,62 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-pretty-print.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
  #include "cfg.h"
  #include "digraph.h"
- #include "analyzer/supergraph.h"
  #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
- #include "diagnostic-event-id.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/region-model-reachability.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/program-state.h"
- #include "diagnostic-path.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/call-details.h"
  #include "analyzer/call-info.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,48 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "ordered-hash-map.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "sbitmap.h"
+ #include "diagnostics/event-id.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/region-model-reachability.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/call-details.h"
  #include "analyzer/call-info.h"
  
  #if ENABLE_ANALYZER
  
*************** custom_edge_info::update_state (program_
*** 72,77 ****
--- 58,83 ----
    return update_model (state->m_region_model, eedge, ctxt);
  }
  
+ void
+ custom_edge_info::get_dot_attrs (const char *&out_style,
+ 				 const char *&out_color) const
+ {
+   out_color = "red";
+   out_style = "\"dotted\"";
+ }
+ 
+ /* Base implementation of custom_edge_info::create_enode vfunc.  */
+ 
+ exploded_node *
+ custom_edge_info::create_enode (exploded_graph &eg,
+ 				const program_point &point,
+ 				program_state &&state,
+ 				exploded_node *enode_for_diag,
+ 				region_model_context *) const
+ {
+   return eg.get_or_create_node (point, state, enode_for_diag);
+ }
+ 
  /* class call_info : public custom_edge_info.  */
  
  /* Implementation of custom_edge_info::print vfunc for call_info.  */
*************** call_info::print (pretty_printer *pp) co
*** 89,95 ****
  
  void
  call_info::add_events_to_path (checker_path *emission_path,
! 			       const exploded_edge &eedge) const
  {
    class call_event : public custom_event
    {
--- 95,102 ----
  
  void
  call_info::add_events_to_path (checker_path *emission_path,
! 			       const exploded_edge &eedge,
! 			       pending_diagnostic &) const
  {
    class call_event : public custom_event
    {
*************** call_info::add_events_to_path (checker_p
*** 115,124 ****
    const int stack_depth = src_point.get_stack_depth ();
  
    emission_path->add_event
!     (make_unique<call_event> (event_loc_info (get_call_stmt ()->location,
! 					      caller_fndecl,
! 					      stack_depth),
! 			      this));
  }
  
  /* Recreate a call_details instance from this call_info.  */
--- 122,131 ----
    const int stack_depth = src_point.get_stack_depth ();
  
    emission_path->add_event
!     (std::make_unique<call_event> (event_loc_info (get_call_stmt ().location,
! 						   caller_fndecl,
! 						   stack_depth),
! 				   this));
  }
  
  /* Recreate a call_details instance from this call_info.  */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-info.h gcc-16.1.0-RC-20260423/gcc/analyzer/call-info.h
*** gcc-15.2.0/gcc/analyzer/call-info.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-info.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Subclasses of custom_edge_info for describing outcomes of function calls.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 30,40 ****
  class call_info : public custom_edge_info
  {
  public:
!   void print (pretty_printer *pp) const final override;
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge) const final override;
  
!   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;
--- 30,41 ----
  class call_info : public custom_edge_info
  {
  public:
!   void print (pretty_printer *pp) const override;
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge,
! 			   pending_diagnostic &pd) const override;
  
!   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;
*************** protected:
*** 47,53 ****
    call_info (const call_details &cd, const function &called_fn);
  
  private:
!   const gcall *m_call_stmt;
    tree m_fndecl;
  };
  
--- 48,54 ----
    call_info (const call_details &cd, const function &called_fn);
  
  private:
!   const gcall &m_call_stmt;
    tree m_fndecl;
  };
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-string.cc gcc-16.1.0-RC-20260423/gcc/analyzer/call-string.cc
*** gcc-15.2.0/gcc/analyzer/call-string.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-string.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,43 ****
  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 "pretty-print.h"
! #include "tree.h"
! #include "options.h"
! #include "ordered-hash-map.h"
! #include "options.h"
! #include "cgraph.h"
! #include "function.h"
! #include "cfg.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "digraph.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,28 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
  
  #if ENABLE_ANALYZER
  
*************** along with GCC; see the file COPYING3.
*** 54,60 ****
  bool
  call_string::element_t::operator== (const call_string::element_t &other) const
  {
!   return (m_caller == other.m_caller && m_callee == other.m_callee);
  }
  
  /* call_string::element_t's inequality operator.  */
--- 39,46 ----
  bool
  call_string::element_t::operator== (const call_string::element_t &other) const
  {
!   return (m_call_sedge == other.m_call_sedge
! 	  && m_called_fun == other.m_called_fun);
  }
  
  /* call_string::element_t's inequality operator.  */
*************** call_string::element_t::operator!= (cons
*** 64,79 ****
    return !(*this == other);
  }
  
  function *
  call_string::element_t::get_caller_function () const
  {
!   return m_caller->get_function ();
  }
  
! function *
! call_string::element_t::get_callee_function () const
  {
!   return m_callee->get_function ();
  }
  
  /* Print this to PP.  */
--- 50,90 ----
    return !(*this == other);
  }
  
+ int
+ call_string::element_t::cmp (const element_t &a, const element_t &b)
+ {
+   if (int src_id_cmp = (a.m_call_sedge->m_src->m_id
+ 			- b.m_call_sedge->m_src->m_id))
+     return src_id_cmp;
+ 
+   /* We don't expect multiple call sedges with the same src.  */
+   gcc_assert (a.m_call_sedge->m_dest == b.m_call_sedge->m_dest);
+ 
+   return a.m_called_fun->funcdef_no - b.m_called_fun->funcdef_no;
+ }
+ 
  function *
  call_string::element_t::get_caller_function () const
  {
!   return m_call_sedge->m_src->get_function ();
  }
  
! const supernode *
! call_string::element_t::get_call_snode_in_caller () const
  {
!   return m_call_sedge->m_src;
! }
! 
! const supernode *
! call_string::element_t::get_return_snode_in_caller () const
! {
!   return m_call_sedge->m_dest;
! }
! 
! const gcall &
! call_string::element_t::get_call_stmt () const
! {
!   return m_call_op->get_gcall ();
  }
  
  /* Print this to PP.  */
*************** call_string::print (pretty_printer *pp)
*** 90,146 ****
        if (i > 0)
  	pp_string (pp, ", ");
        pp_printf (pp, "(SN: %i -> SN: %i in %s)",
! 		 e->m_callee->m_index, e->m_caller->m_index,
! 		 function_name (e->m_caller->m_fun));
      }
  
    pp_string (pp, "]");
  }
  
  /* Return a new json::array of the form
!    [{"src_snode_idx" : int,
!      "dst_snode_idx" : int,
!      "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;
  }
  
- /* Get or create the call_string resulting from pushing the return
-    superedge for CALL_SEDGE onto the end of this call_string.  */
- 
- const call_string *
- call_string::push_call (const supergraph &sg,
- 			const call_superedge *call_sedge) const
- {
-   gcc_assert (call_sedge);
-   const return_superedge *return_sedge = call_sedge->get_edge_for_return (sg);
-   gcc_assert (return_sedge);
-   return push_call (return_sedge->m_dest, return_sedge->m_src);
- }
  
  /* Get or create the call_string resulting from pushing the call
     (caller, callee) onto the end of this call_string.  */
  
  const call_string *
! call_string::push_call (const supernode *caller,
! 			const supernode *callee) const
  {
!   call_string::element_t e (caller, callee);
  
    if (const call_string **slot = m_children.get (e))
      return *slot;
--- 101,147 ----
        if (i > 0)
  	pp_string (pp, ", ");
        pp_printf (pp, "(SN: %i -> SN: %i in %s)",
! 		 e->get_call_snode_in_caller ()->m_id,
! 		 e->get_return_snode_in_caller ()->m_id,
! 		 function_name (e->get_caller_function ()));
      }
  
    pp_string (pp, "]");
  }
  
  /* Return a new json::array of the form
!    [{"call_sedge_src" : int,
!      "call_sedge_dest" : int,
!      "called_fun" : str},
       ...for each element in the callstring].  */
  
  std::unique_ptr<json::value>
  call_string::to_json () const
  {
!   auto arr = std::make_unique<json::array> ();
  
    for (const call_string::element_t &e : m_elements)
      {
!       auto e_obj = std::make_unique<json::object> ();
!       e_obj->set_integer ("call_sedge_src", e.m_call_sedge->m_src->m_id);
!       e_obj->set_integer ("call_sedge_dest", e.m_call_sedge->m_dest->m_id);
!       e_obj->set_string ("called_fun", function_name (e.m_called_fun));
        arr->append (std::move (e_obj));
      }
  
    return arr;
  }
  
  
  /* Get or create the call_string resulting from pushing the call
     (caller, callee) onto the end of this call_string.  */
  
  const call_string *
! call_string::push_call (const superedge &call_sedge,
! 			const call_and_return_op &call_op,
! 			function &called_fun) const
  {
!   call_string::element_t e (&call_sedge, &call_op, &called_fun);
  
    if (const call_string **slot = m_children.get (e))
      return *slot;
*************** call_string::count_occurrences_of_functi
*** 175,184 ****
    int result = 0;
    for (const call_string::element_t &e : m_elements)
      {
-       if (e.get_callee_function () == fun)
- 	result++;
        if (e.get_caller_function () == fun)
  	result++;
      }
    return result;
  }
--- 176,185 ----
    int result = 0;
    for (const call_string::element_t &e : m_elements)
      {
        if (e.get_caller_function () == fun)
  	result++;
+       if (e.get_callee_function () == fun)
+ 	result++;
      }
    return result;
  }
*************** call_string::cmp (const call_string &a,
*** 211,227 ****
        if (i >= len_b)
  	return -1;
  
!       /* Otherwise, compare the node pairs.  */
!       const call_string::element_t a_node_pair = a[i];
!       const call_string::element_t b_node_pair = b[i];
!       int src_cmp
! 	= a_node_pair.m_callee->m_index - b_node_pair.m_callee->m_index;
!       if (src_cmp)
! 	return src_cmp;
!       int dest_cmp
! 	= a_node_pair.m_caller->m_index - b_node_pair.m_caller->m_index;
!       if (dest_cmp)
! 	return dest_cmp;
        i++;
        // TODO: test coverage for this
      }
--- 212,220 ----
        if (i >= len_b)
  	return -1;
  
!       /* Otherwise, compare the elements.  */
!       if (int element_cmp = call_string::element_t::cmp (a[i], b[i]))
! 	return element_cmp;
        i++;
        // TODO: test coverage for this
      }
*************** call_string::cmp_ptr_ptr (const void *pa
*** 237,260 ****
    return cmp (*cs_a, *cs_b);
  }
  
- /* Return the pointer to callee of the topmost call in the stack,
-    or NULL if stack is empty.  */
- const supernode *
- call_string::get_callee_node () const
- {
-   if(m_elements.is_empty ())
-     return NULL;
-   return m_elements[m_elements.length () - 1].m_callee;
- }
- 
  /* Return the pointer to caller of the topmost call in the stack,
!    or NULL if stack is empty.  */
  const supernode *
! call_string::get_caller_node () const
  {
    if(m_elements.is_empty ())
!     return NULL;
!   return m_elements[m_elements.length () - 1].m_caller;
  }
  
  /* Assert that this object is sane.  */
--- 230,243 ----
    return cmp (*cs_a, *cs_b);
  }
  
  /* Return the pointer to caller of the topmost call in the stack,
!    or nullptr if stack is empty.  */
  const supernode *
! call_string::get_return_node_in_caller () const
  {
    if(m_elements.is_empty ())
!     return nullptr;
!   return m_elements[m_elements.length () - 1].get_return_snode_in_caller ();
  }
  
  /* Assert that this object is sane.  */
*************** call_string::validate () const
*** 267,287 ****
    return;
  #endif
  
!   gcc_assert (m_parent || m_elements.length () == 0);
  
-   /* Each entry's "caller" should be the "callee" of the previous entry.  */
    call_string::element_t *e;
    int i;
    FOR_EACH_VEC_ELT (m_elements, i, e)
!     if (i > 0)
!       gcc_assert (e->get_caller_function () ==
! 		  m_elements[i - 1].get_callee_function ());
  }
  
  /* ctor for the root/empty call_string.  */
  
  call_string::call_string ()
! : m_parent (NULL), m_elements ()
  {
  }
  
--- 250,275 ----
    return;
  #endif
  
!   gcc_assert ((m_parent != nullptr)
! 	      ^ (m_elements.length () == 0));
  
    call_string::element_t *e;
    int i;
    FOR_EACH_VEC_ELT (m_elements, i, e)
!     {
!       gcc_assert (e->m_call_op == e->m_call_sedge->get_op ());
!       /* Each entry's "caller" should be the "callee" of the
! 	 previous entry.  */
!       if (i > 0)
! 	gcc_assert (e->get_caller_function () ==
! 		    m_elements[i - 1].get_callee_function ());
!     }
  }
  
  /* ctor for the root/empty call_string.  */
  
  call_string::call_string ()
! : m_parent (nullptr), m_elements ()
  {
  }
  
*************** call_string::recursive_log (logger *logg
*** 323,330 ****
        /* Log the final element in detail.  */
        const element_t *e = &m_elements[m_elements.length () - 1];
        pp_printf (pp, "(SN: %i -> SN: %i in %s)]",
! 		 e->m_callee->m_index, e->m_caller->m_index,
! 		 function_name (e->m_caller->m_fun));
      }
    else
      pp_string (pp, "[]");
--- 311,319 ----
        /* Log the final element in detail.  */
        const element_t *e = &m_elements[m_elements.length () - 1];
        pp_printf (pp, "(SN: %i -> SN: %i in %s)]",
! 		 e->m_call_sedge->m_src->m_id,
! 		 e->m_call_sedge->m_dest->m_id,
! 		 function_name (e->get_caller_function ()));
      }
    else
      pp_string (pp, "[]");
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-string.h gcc-16.1.0-RC-20260423/gcc/analyzer/call-string.h
*** gcc-15.2.0/gcc/analyzer/call-string.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-string.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Call stacks at program points.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 25,44 ****
  
  class supergraph;
  class supernode;
! class call_superedge;
! class return_superedge;
! 
  
! /* A string of return_superedge pointers, representing a call stack
!    at a program point.
  
     This is used to ensure that we generate interprocedurally valid paths
     i.e. that we return to the same callsite that called us.
  
-    The class stores returning calls ( which may be represented by a
-    returning superedge ). We do so because this is what we need to compare
-    against.
- 
     Instances of call_string are consolidated by the region_model_manager,
     which effectively owns them: it owns the root/empty call_string, and each
     call_string instance tracks its children, lazily creating them on demand,
--- 25,37 ----
  
  class supergraph;
  class supernode;
!   class call_and_return_op;
  
! /* A string of "elements" representing a call stack at a program point.
  
     This is used to ensure that we generate interprocedurally valid paths
     i.e. that we return to the same callsite that called us.
  
     Instances of call_string are consolidated by the region_model_manager,
     which effectively owns them: it owns the root/empty call_string, and each
     call_string instance tracks its children, lazily creating them on demand,
*************** class call_string
*** 49,73 ****
  public:
    /* A struct representing an element in the call_string.
  
!    Each element represents a path from m_callee to m_caller which represents
!    returning from function.  */
  
    struct element_t
    {
!     element_t (const supernode *caller, const supernode *callee)
!     :  m_caller (caller), m_callee (callee)
      {
      }
  
      bool operator== (const element_t &other) const;
      bool operator!= (const element_t &other) const;
  
      /* Accessors */
      function *get_caller_function () const;
!     function *get_callee_function () const;
  
!     const supernode *m_caller;
!     const supernode *m_callee;
    };
  
    void print (pretty_printer *pp) const;
--- 42,78 ----
  public:
    /* A struct representing an element in the call_string.
  
!      Each element represents a "call superedge" within the caller for which
!      the op was a call_and_return_op.
!      Returning from the callee to the caller will involve creating a custom
!      exploded edge from the exit supernode in the callee to the destination
!      of the call superedge within the caller.  */
  
    struct element_t
    {
!     element_t (const superedge *call_sedge,
! 	       const call_and_return_op *call_op,
! 	       function *called_fun)
!     :  m_call_sedge (call_sedge), m_call_op (call_op),
!        m_called_fun (called_fun)
      {
      }
  
      bool operator== (const element_t &other) const;
      bool operator!= (const element_t &other) const;
  
+     static int cmp (const element_t &a, const element_t &b);
+ 
      /* Accessors */
      function *get_caller_function () const;
!     function *get_callee_function () const { return m_called_fun; }
!     const supernode *get_call_snode_in_caller () const;
!     const supernode *get_return_snode_in_caller () const;
!     const gcall &get_call_stmt () const;
  
!     const superedge *m_call_sedge;
!     const call_and_return_op *m_call_op;
!     function *m_called_fun;
    };
  
    void print (pretty_printer *pp) const;
*************** public:
*** 76,86 ****
  
    bool empty_p () const { return m_elements.is_empty (); }
  
!   const call_string *push_call (const supergraph &sg,
! 				const call_superedge *sedge) const;
! 
!   const call_string *push_call (const supernode *src,
! 				const supernode *dest) const;
    const call_string *get_parent () const { return m_parent; }
  
    int calc_recursion_depth () const;
--- 81,89 ----
  
    bool empty_p () const { return m_elements.is_empty (); }
  
!   const call_string *push_call (const superedge &call_sedge,
! 				const call_and_return_op &call_op,
! 				function &called_fun) const;
    const call_string *get_parent () const { return m_parent; }
  
    int calc_recursion_depth () const;
*************** public:
*** 91,99 ****
    static int cmp_ptr_ptr (const void *, const void *);
  
    /* Accessors */
! 
!   const supernode *get_callee_node () const;
!   const supernode *get_caller_node () const;
    unsigned length () const { return m_elements.length (); }
    element_t operator[] (unsigned idx) const
    {
--- 94,100 ----
    static int cmp_ptr_ptr (const void *, const void *);
  
    /* Accessors */
!   const supernode *get_return_node_in_caller () const;
    unsigned length () const { return m_elements.length (); }
    element_t operator[] (unsigned idx) const
    {
*************** private:
*** 119,126 ****
      static inline hashval_t hash (const key_type &k)
      {
        inchash::hash hstate;
!       hstate.add_ptr (k.m_caller);
!       hstate.add_ptr (k.m_callee);
        return hstate.end ();
      }
      static inline bool equal_keys (const key_type &k1, const key_type &k2)
--- 120,126 ----
      static inline hashval_t hash (const key_type &k)
      {
        inchash::hash hstate;
!       hstate.add_ptr (k.m_call_sedge);
        return hstate.end ();
      }
      static inline bool equal_keys (const key_type &k1, const key_type &k2)
*************** private:
*** 129,153 ****
      }
      template <typename T> static inline void remove (T &entry)
      {
!       entry.m_key = element_t (NULL, NULL);
      }
      static const bool empty_zero_p = true;
      template <typename T> static inline bool is_empty (const T &entry)
      {
!       return entry.m_key.m_caller == NULL;
      }
      template <typename T> static inline bool is_deleted (const T &entry)
      {
!       return entry.m_key.m_caller == reinterpret_cast<const supernode *> (1);
      }
      template <typename T> static inline void mark_empty (T &entry)
      {
!       entry.m_key = element_t (NULL, NULL);
!       entry.m_value = NULL;
      }
      template <typename T> static inline void mark_deleted (T &entry)
      {
!       entry.m_key.m_caller = reinterpret_cast<const supernode *> (1);
      }
    };
  
--- 129,153 ----
      }
      template <typename T> static inline void remove (T &entry)
      {
!       entry.m_key = element_t (nullptr, nullptr, nullptr);
      }
      static const bool empty_zero_p = true;
      template <typename T> static inline bool is_empty (const T &entry)
      {
!       return entry.m_key.m_call_sedge == nullptr;
      }
      template <typename T> static inline bool is_deleted (const T &entry)
      {
!       return entry.m_key.m_call_sedge == reinterpret_cast<const superedge *> (1);
      }
      template <typename T> static inline void mark_empty (T &entry)
      {
!       entry.m_key = element_t (nullptr, nullptr, nullptr);
!       entry.m_value = nullptr;
      }
      template <typename T> static inline void mark_deleted (T &entry)
      {
!        entry.m_key.m_call_sedge = reinterpret_cast<const superedge *> (1);
      }
    };
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-summary.cc gcc-16.1.0-RC-20260423/gcc/analyzer/call-summary.cc
*** gcc-15.2.0/gcc/analyzer/call-summary.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-summary.cc	Thu Apr 23 11:07:32 2026
*************** You should have received a copy of the G
*** 17,32 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "tree-dfa.h"
! #include "diagnostic-core.h"
! #include "diagnostic.h"
! #include "tree-diagnostic.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/exploded-graph.h"
--- 17,24 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "analyzer/region-model.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/exploded-graph.h"
*************** call_summary::get_state () const
*** 46,52 ****
  tree
  call_summary::get_fndecl () const
  {
!   return m_enode->get_point ().get_fndecl ();
  }
  
  label_text
--- 38,44 ----
  tree
  call_summary::get_fndecl () const
  {
!   return m_enode->get_function ()->decl;
  }
  
  label_text
*************** call_summary::get_user_facing_desc (pret
*** 79,87 ****
        if (tree result = DECL_RESULT (fndecl))
  	{
  	  const region *result_reg
! 	    = get_state ().m_region_model->get_lvalue (result, NULL);
  	  const svalue *result_sval
! 	    = get_state ().m_region_model->get_store_value (result_reg, NULL);
  	  switch (result_sval->get_kind ())
  	    {
  	    default:
--- 71,79 ----
        if (tree result = DECL_RESULT (fndecl))
  	{
  	  const region *result_reg
! 	    = get_state ().m_region_model->get_lvalue (result, nullptr);
  	  const svalue *result_sval
! 	    = get_state ().m_region_model->get_store_value (result_reg, nullptr);
  	  switch (result_sval->get_kind ())
  	    {
  	    default:
*************** call_summary::dump (const extrinsic_stat
*** 165,171 ****
  
  call_summary_replay::call_summary_replay (const call_details &cd,
  					  const function &called_fn,
! 					  call_summary *summary,
  					  const extrinsic_state &ext_state)
  : m_cd (cd),
    m_summary (summary),
--- 157,163 ----
  
  call_summary_replay::call_summary_replay (const call_details &cd,
  					  const function &called_fn,
! 					  call_summary &summary,
  					  const extrinsic_state &ext_state)
  : m_cd (cd),
    m_summary (summary),
*************** call_summary_replay::call_summary_replay
*** 180,186 ****
       This will be a top-level frame, since that's what's in
       the summary.  */
    const frame_region *summary_frame
!     = mgr->get_frame_region (NULL, called_fn);
  
    unsigned idx = 0;
    for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
--- 172,178 ----
       This will be a top-level frame, since that's what's in
       the summary.  */
    const frame_region *summary_frame
!     = mgr->get_frame_region (nullptr, called_fn);
  
    unsigned idx = 0;
    for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
*************** call_summary_replay::call_summary_replay
*** 218,224 ****
  /* Try to convert SUMMARY_SVAL in the summary to a corresponding svalue
     in the caller, caching the result.
  
!    Return NULL if the conversion is not possible.  */
  
  const svalue *
  call_summary_replay::convert_svalue_from_summary (const svalue *summary_sval)
--- 210,216 ----
  /* Try to convert SUMMARY_SVAL in the summary to a corresponding svalue
     in the caller, caching the result.
  
!    Return nullptr if the conversion is not possible.  */
  
  const svalue *
  call_summary_replay::convert_svalue_from_summary (const svalue *summary_sval)
*************** call_summary_replay::convert_svalue_from
*** 260,266 ****
  	const region *summary_reg = region_summary_sval->get_pointee ();
  	const region *caller_reg = convert_region_from_summary (summary_reg);
  	if (!caller_reg)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	const svalue *caller_ptr
  	  = mgr->get_ptr_svalue (summary_sval->get_type (),
--- 252,258 ----
  	const region *summary_reg = region_summary_sval->get_pointee ();
  	const region *caller_reg = convert_region_from_summary (summary_reg);
  	if (!caller_reg)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	const svalue *caller_ptr
  	  = mgr->get_ptr_svalue (summary_sval->get_type (),
*************** call_summary_replay::convert_svalue_from
*** 276,282 ****
        return summary_sval;
  
      case SK_SETJMP:
!       return NULL; // TODO
  
      case SK_INITIAL:
        {
--- 268,274 ----
        return summary_sval;
  
      case SK_SETJMP:
!       return nullptr; // TODO
  
      case SK_INITIAL:
        {
*************** call_summary_replay::convert_svalue_from
*** 290,296 ****
  	const region *summary_reg = initial_summary_sval->get_region ();
  	const region *caller_reg = convert_region_from_summary (summary_reg);
  	if (!caller_reg)
! 	  return NULL;
  	const svalue *caller_sval
  	  = m_cd.get_model ()->get_store_value (caller_reg, m_cd.get_ctxt ());
  	return caller_sval;
--- 282,288 ----
  	const region *summary_reg = initial_summary_sval->get_region ();
  	const region *caller_reg = convert_region_from_summary (summary_reg);
  	if (!caller_reg)
! 	  return nullptr;
  	const svalue *caller_sval
  	  = m_cd.get_model ()->get_store_value (caller_reg, m_cd.get_ctxt ());
  	return caller_sval;
*************** call_summary_replay::convert_svalue_from
*** 303,309 ****
  	const svalue *summary_arg = unaryop_summary_sval->get_arg ();
  	const svalue *caller_arg = convert_svalue_from_summary (summary_arg);
  	if (!caller_arg)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_unaryop (summary_sval->get_type (),
  					   unaryop_summary_sval->get_op (),
--- 295,301 ----
  	const svalue *summary_arg = unaryop_summary_sval->get_arg ();
  	const svalue *caller_arg = convert_svalue_from_summary (summary_arg);
  	if (!caller_arg)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_unaryop (summary_sval->get_type (),
  					   unaryop_summary_sval->get_op (),
*************** call_summary_replay::convert_svalue_from
*** 317,327 ****
  	const svalue *summary_arg0 = binop_summary_sval->get_arg0 ();
  	const svalue *caller_arg0 = convert_svalue_from_summary (summary_arg0);
  	if (!caller_arg0)
! 	  return NULL;
  	const svalue *summary_arg1 = binop_summary_sval->get_arg1 ();
  	const svalue *caller_arg1 = convert_svalue_from_summary (summary_arg1);
  	if (!caller_arg1)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_binop (summary_sval->get_type (),
  					 binop_summary_sval->get_op (),
--- 309,319 ----
  	const svalue *summary_arg0 = binop_summary_sval->get_arg0 ();
  	const svalue *caller_arg0 = convert_svalue_from_summary (summary_arg0);
  	if (!caller_arg0)
! 	  return nullptr;
  	const svalue *summary_arg1 = binop_summary_sval->get_arg1 ();
  	const svalue *caller_arg1 = convert_svalue_from_summary (summary_arg1);
  	if (!caller_arg1)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_binop (summary_sval->get_type (),
  					 binop_summary_sval->get_op (),
*************** call_summary_replay::convert_svalue_from
*** 336,345 ****
  	region_model_manager *mgr = get_manager ();
  	const svalue *summary_parent_sval = sub_summary_sval->get_parent ();
  	if (!summary_parent_sval)
! 	  return NULL;
  	const region *summary_subregion = sub_summary_sval->get_subregion ();
  	if (!summary_subregion)
! 	  return NULL;
  	return mgr->get_or_create_sub_svalue (summary_sval->get_type (),
  					      summary_parent_sval,
  					      summary_subregion);
--- 328,337 ----
  	region_model_manager *mgr = get_manager ();
  	const svalue *summary_parent_sval = sub_summary_sval->get_parent ();
  	if (!summary_parent_sval)
! 	  return nullptr;
  	const region *summary_subregion = sub_summary_sval->get_subregion ();
  	if (!summary_subregion)
! 	  return nullptr;
  	return mgr->get_or_create_sub_svalue (summary_sval->get_type (),
  					      summary_parent_sval,
  					      summary_subregion);
*************** call_summary_replay::convert_svalue_from
*** 354,366 ****
  	const svalue *caller_outer_size
  	  = convert_svalue_from_summary (summary_outer_size);
  	if (!caller_outer_size)
! 	  return NULL;
  	const svalue *summary_inner_sval
  	  = repeated_summary_sval->get_inner_svalue ();
  	const svalue *caller_inner_sval
  	  = convert_svalue_from_summary (summary_inner_sval);
  	if (!caller_inner_sval)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_repeated_svalue (summary_sval->get_type (),
  						   caller_outer_size,
--- 346,358 ----
  	const svalue *caller_outer_size
  	  = convert_svalue_from_summary (summary_outer_size);
  	if (!caller_outer_size)
! 	  return nullptr;
  	const svalue *summary_inner_sval
  	  = repeated_summary_sval->get_inner_svalue ();
  	const svalue *caller_inner_sval
  	  = convert_svalue_from_summary (summary_inner_sval);
  	if (!caller_inner_sval)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_repeated_svalue (summary_sval->get_type (),
  						   caller_outer_size,
*************** call_summary_replay::convert_svalue_from
*** 377,383 ****
  	const svalue *caller_inner_sval
  	  = convert_svalue_from_summary (summary_inner_sval);
  	if (!caller_inner_sval)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_bits_within (summary_sval->get_type (),
  					       bits,
--- 369,375 ----
  	const svalue *caller_inner_sval
  	  = convert_svalue_from_summary (summary_inner_sval);
  	if (!caller_inner_sval)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_bits_within (summary_sval->get_type (),
  					       bits,
*************** call_summary_replay::convert_svalue_from
*** 392,398 ****
  	const svalue *caller_arg_sval
  	  = convert_svalue_from_summary (summary_arg_sval);
  	if (!caller_arg_sval)
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_unmergeable (caller_arg_sval);
        }
--- 384,390 ----
  	const svalue *caller_arg_sval
  	  = convert_svalue_from_summary (summary_arg_sval);
  	if (!caller_arg_sval)
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_unmergeable (caller_arg_sval);
        }
*************** call_summary_replay::convert_svalue_from
*** 401,425 ****
        {
  	const widening_svalue *widening_summary_sval
  	  = as_a <const widening_svalue *> (summary_sval);
! 	const function_point &point = widening_summary_sval->get_point ();
  	const svalue *summary_base_sval
  	  = widening_summary_sval->get_base_svalue ();
  	const svalue *caller_base_sval
  	  = convert_svalue_from_summary (summary_base_sval);
  	if (!(caller_base_sval
  	      && caller_base_sval->can_have_associated_state_p ()))
! 	  return NULL;
  	const svalue *summary_iter_sval
  	  = widening_summary_sval->get_iter_svalue ();
  	const svalue *caller_iter_sval
  	  = convert_svalue_from_summary (summary_iter_sval);
  	if (!(caller_iter_sval
  	      && caller_iter_sval->can_have_associated_state_p ()))
! 	  return NULL;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_widening_svalue
  	  (summary_iter_sval->get_type (),
! 	   point,
  	   caller_base_sval,
  	   caller_iter_sval);
        }
--- 393,417 ----
        {
  	const widening_svalue *widening_summary_sval
  	  = as_a <const widening_svalue *> (summary_sval);
! 	const supernode *snode = widening_summary_sval->get_snode ();
  	const svalue *summary_base_sval
  	  = widening_summary_sval->get_base_svalue ();
  	const svalue *caller_base_sval
  	  = convert_svalue_from_summary (summary_base_sval);
  	if (!(caller_base_sval
  	      && caller_base_sval->can_have_associated_state_p ()))
! 	  return nullptr;
  	const svalue *summary_iter_sval
  	  = widening_summary_sval->get_iter_svalue ();
  	const svalue *caller_iter_sval
  	  = convert_svalue_from_summary (summary_iter_sval);
  	if (!(caller_iter_sval
  	      && caller_iter_sval->can_have_associated_state_p ()))
! 	  return nullptr;
  	region_model_manager *mgr = get_manager ();
  	return mgr->get_or_create_widening_svalue
  	  (summary_iter_sval->get_type (),
! 	   snode,
  	   caller_base_sval,
  	   caller_iter_sval);
        }
*************** call_summary_replay::convert_svalue_from
*** 430,439 ****
  	  = as_a <const compound_svalue *> (summary_sval);
  	region_model_manager *mgr = get_manager ();
  	store_manager *store_mgr = mgr->get_store_manager ();
! 	binding_map caller_map;
  	auto_vec <const binding_key *> summary_keys;
  	for (auto kv : *compound_summary_sval)
! 	  summary_keys.safe_push (kv.first);
  	summary_keys.qsort (binding_key::cmp_ptrs);
  	for (auto key : summary_keys)
  	  {
--- 422,431 ----
  	  = as_a <const compound_svalue *> (summary_sval);
  	region_model_manager *mgr = get_manager ();
  	store_manager *store_mgr = mgr->get_store_manager ();
! 	binding_map caller_map (*store_mgr);
  	auto_vec <const binding_key *> summary_keys;
  	for (auto kv : *compound_summary_sval)
! 	  summary_keys.safe_push (kv.m_key);
  	summary_keys.qsort (binding_key::cmp_ptrs);
  	for (auto key : summary_keys)
  	  {
*************** call_summary_replay::convert_svalue_from
*** 455,462 ****
  		for (auto inner_kv : *inner_compound_sval)
  		  {
  		    // These should already be mapped to the caller.
! 		    const binding_key *inner_key = inner_kv.first;
! 		    const svalue *inner_sval = inner_kv.second;
  		    gcc_assert (inner_key->concrete_p ());
  		    const concrete_binding *concrete_key
  		      = as_a <const concrete_binding *> (inner_key);
--- 447,454 ----
  		for (auto inner_kv : *inner_compound_sval)
  		  {
  		    // These should already be mapped to the caller.
! 		    const binding_key *inner_key = inner_kv.m_key;
! 		    const svalue *inner_sval = inner_kv.m_sval;
  		    gcc_assert (inner_key->concrete_p ());
  		    const concrete_binding *concrete_key
  		      = as_a <const concrete_binding *> (inner_key);
*************** call_summary_replay::convert_svalue_from
*** 499,505 ****
  	    const svalue *caller_input
  	      = convert_svalue_from_summary (summary_input);
  	    if (!caller_input)
! 	      return NULL;
  	    inputs.safe_push (caller_input);
  	  }
  	region_model_manager *mgr = get_manager ();
--- 491,497 ----
  	    const svalue *caller_input
  	      = convert_svalue_from_summary (summary_input);
  	    if (!caller_input)
! 	      return nullptr;
  	    inputs.safe_push (caller_input);
  	  }
  	region_model_manager *mgr = get_manager ();
*************** call_summary_replay::convert_svalue_from
*** 524,530 ****
  	    const svalue *caller_input
  	      = convert_svalue_from_summary (summary_input);
  	    if (!caller_input)
! 	      return NULL;
  	    inputs.safe_push (caller_input);
  	  }
  	region_model_manager *mgr = get_manager ();
--- 516,522 ----
  	    const svalue *caller_input
  	      = convert_svalue_from_summary (summary_input);
  	    if (!caller_input)
! 	      return nullptr;
  	    inputs.safe_push (caller_input);
  	  }
  	region_model_manager *mgr = get_manager ();
*************** call_summary_replay::convert_svalue_from
*** 540,546 ****
  /* Try to convert SUMMARY_REG in the summary to a corresponding region
     in the caller, caching the result.
  
!    Return NULL if the conversion is not possible.  */
  
  const region *
  call_summary_replay::convert_region_from_summary (const region *summary_reg)
--- 532,538 ----
  /* Try to convert SUMMARY_REG in the summary to a corresponding region
     in the caller, caching the result.
  
!    Return nullptr if the conversion is not possible.  */
  
  const region *
  call_summary_replay::convert_region_from_summary (const region *summary_reg)
*************** call_summary_replay::convert_region_from
*** 604,610 ****
  	const svalue *caller_ptr_sval
  	  = convert_svalue_from_summary (summary_ptr_sval);
  	if (!caller_ptr_sval)
! 	  return NULL;
  	const region *caller_reg
  	  = get_caller_model ()->deref_rvalue (caller_ptr_sval,
  					       NULL_TREE,
--- 596,602 ----
  	const svalue *caller_ptr_sval
  	  = convert_svalue_from_summary (summary_ptr_sval);
  	if (!caller_ptr_sval)
! 	  return nullptr;
  	const region *caller_reg
  	  = get_caller_model ()->deref_rvalue (caller_ptr_sval,
  					       NULL_TREE,
*************** call_summary_replay::convert_region_from
*** 627,633 ****
  	  case SSA_NAME:
  	    /* We don't care about writes to locals within
  	       the summary.  */
! 	    return NULL;
  	  case VAR_DECL:
  	    /* We don't care about writes to locals within
  	       the summary.  */
--- 619,625 ----
  	  case SSA_NAME:
  	    /* We don't care about writes to locals within
  	       the summary.  */
! 	    return nullptr;
  	  case VAR_DECL:
  	    /* We don't care about writes to locals within
  	       the summary.  */
*************** call_summary_replay::convert_region_from
*** 636,647 ****
  	      return summary_reg;
  	    else
  	      /* Otherwise, we don't care about locals.  */
! 	      return NULL;
  	  case RESULT_DECL:
  	    return m_cd.get_lhs_region ();
  	  case PARM_DECL:
  	    /* Writes (by value) to parms should be visible to the caller.  */
! 	    return NULL;
  	  }
        }
        break;
--- 628,639 ----
  	      return summary_reg;
  	    else
  	      /* Otherwise, we don't care about locals.  */
! 	      return nullptr;
  	  case RESULT_DECL:
  	    return m_cd.get_lhs_region ();
  	  case PARM_DECL:
  	    /* Writes (by value) to parms should be visible to the caller.  */
! 	    return nullptr;
  	  }
        }
        break;
*************** call_summary_replay::convert_region_from
*** 653,659 ****
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return NULL;
  	tree field = summary_field_reg->get_field ();
  	return mgr->get_field_region (caller_parent_reg, field);
        }
--- 645,651 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	tree field = summary_field_reg->get_field ();
  	return mgr->get_field_region (caller_parent_reg, field);
        }
*************** call_summary_replay::convert_region_from
*** 666,677 ****
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return NULL;
  	const svalue *summary_index = summary_element_reg->get_index ();
  	const svalue *caller_index
  	  = convert_svalue_from_summary (summary_index);
  	if (!caller_index)
! 	  return NULL;
  	return mgr->get_element_region (caller_parent_reg,
  					summary_reg->get_type (),
  					caller_index);
--- 658,669 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	const svalue *summary_index = summary_element_reg->get_index ();
  	const svalue *caller_index
  	  = convert_svalue_from_summary (summary_index);
  	if (!caller_index)
! 	  return nullptr;
  	return mgr->get_element_region (caller_parent_reg,
  					summary_reg->get_type (),
  					caller_index);
*************** call_summary_replay::convert_region_from
*** 685,697 ****
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return NULL;
  	const svalue *summary_byte_offset
  	  = summary_offset_reg->get_byte_offset ();
  	const svalue *caller_byte_offset
  	  = convert_svalue_from_summary (summary_byte_offset);
  	if (!caller_byte_offset)
! 	  return NULL;
  	return mgr->get_offset_region (caller_parent_reg,
  				       summary_reg->get_type (),
  				       caller_byte_offset);
--- 677,689 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	const svalue *summary_byte_offset
  	  = summary_offset_reg->get_byte_offset ();
  	const svalue *caller_byte_offset
  	  = convert_svalue_from_summary (summary_byte_offset);
  	if (!caller_byte_offset)
! 	  return nullptr;
  	return mgr->get_offset_region (caller_parent_reg,
  				       summary_reg->get_type (),
  				       caller_byte_offset);
*************** call_summary_replay::convert_region_from
*** 705,717 ****
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return NULL;
  	const svalue *summary_byte_size
  	  = summary_sized_reg->get_byte_size_sval (mgr);
  	const svalue *caller_byte_size
  	  = convert_svalue_from_summary (summary_byte_size);
  	if (!caller_byte_size)
! 	  return NULL;
  	return mgr->get_sized_region (caller_parent_reg,
  				       summary_reg->get_type (),
  				       caller_byte_size);
--- 697,709 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	const svalue *summary_byte_size
  	  = summary_sized_reg->get_byte_size_sval (mgr);
  	const svalue *caller_byte_size
  	  = convert_svalue_from_summary (summary_byte_size);
  	if (!caller_byte_size)
! 	  return nullptr;
  	return mgr->get_sized_region (caller_parent_reg,
  				       summary_reg->get_type (),
  				       caller_byte_size);
*************** call_summary_replay::convert_region_from
*** 723,729 ****
  	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 ());
        }
--- 715,721 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	return mgr->get_cast_region (caller_parent_reg,
  				     summary_reg->get_type ());
        }
*************** call_summary_replay::convert_region_from
*** 739,745 ****
        }
        break;
      case RK_ALLOCA:
!       return NULL;
      case RK_BIT_RANGE:
        {
  	const bit_range_region *summary_bit_range_reg
--- 731,737 ----
        }
        break;
      case RK_ALLOCA:
!       return nullptr;
      case RK_BIT_RANGE:
        {
  	const bit_range_region *summary_bit_range_reg
*************** call_summary_replay::convert_region_from
*** 748,754 ****
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return NULL;
  	const bit_range &bits = summary_bit_range_reg->get_bits ();
  	return mgr->get_bit_range (caller_parent_reg,
  				   summary_reg->get_type (),
--- 740,746 ----
  	const region *caller_parent_reg
  	  = convert_region_from_summary (summary_parent_reg);
  	if (!caller_parent_reg)
! 	  return nullptr;
  	const bit_range &bits = summary_bit_range_reg->get_bits ();
  	return mgr->get_bit_range (caller_parent_reg,
  				   summary_reg->get_type (),
*************** call_summary_replay::convert_region_from
*** 756,769 ****
        }
        break;
      case RK_VAR_ARG:
!       return NULL;
      }
  }
  
  /* Try to convert SUMMARY_KEY in the summary to a corresponding binding key
     in the caller.
  
!    Return NULL if the conversion is not possible.  */
  
  const binding_key *
  call_summary_replay::convert_key_from_summary (const binding_key *summary_key)
--- 748,761 ----
        }
        break;
      case RK_VAR_ARG:
!       return nullptr;
      }
  }
  
  /* Try to convert SUMMARY_KEY in the summary to a corresponding binding key
     in the caller.
  
!    Return nullptr if the conversion is not possible.  */
  
  const binding_key *
  call_summary_replay::convert_key_from_summary (const binding_key *summary_key)
*************** call_summary_replay::convert_key_from_su
*** 775,781 ****
    const region *summary_reg = symbolic_key->get_region ();
    const region *caller_reg = convert_region_from_summary (summary_reg);
    if (!caller_reg)
!     return NULL;
    region_model_manager *mgr = get_manager ();
    store_manager *store_mgr = mgr->get_store_manager ();
    return store_mgr->get_symbolic_binding (caller_reg);
--- 767,773 ----
    const region *summary_reg = symbolic_key->get_region ();
    const region *caller_reg = convert_region_from_summary (summary_reg);
    if (!caller_reg)
!     return nullptr;
    region_model_manager *mgr = get_manager ();
    store_manager *store_mgr = mgr->get_store_manager ();
    return store_mgr->get_symbolic_binding (caller_reg);
*************** call_summary_replay::add_svalue_mapping
*** 788,794 ****
  					 const svalue *caller_sval)
  {
    gcc_assert (summary_sval);
!   // CALLER_SVAL can be NULL
    m_map_svalue_from_summary_to_caller.put (summary_sval, caller_sval);
  }
  
--- 780,786 ----
  					 const svalue *caller_sval)
  {
    gcc_assert (summary_sval);
!   // CALLER_SVAL can be nullptr
    m_map_svalue_from_summary_to_caller.put (summary_sval, caller_sval);
  }
  
*************** call_summary_replay::add_region_mapping
*** 799,805 ****
  					 const region *caller_reg)
  {
    gcc_assert (summary_reg);
!   // CALLER_REG can be NULL
    m_map_region_from_summary_to_caller.put (summary_reg, caller_reg);
  }
  
--- 791,797 ----
  					 const region *caller_reg)
  {
    gcc_assert (summary_reg);
!   // CALLER_REG can be nullptr
    m_map_region_from_summary_to_caller.put (summary_reg, caller_reg);
  }
  
*************** call_summary_replay::dump_to_pp (pretty_
*** 816,822 ****
    pp_newline (pp);
    pp_string (pp, "CALLEE SUMMARY:");
    pp_newline (pp);
!   m_summary->dump_to_pp (m_ext_state, pp, simple);
  
    /* Current state of caller (could be in mid-update).  */
    pp_newline (pp);
--- 808,814 ----
    pp_newline (pp);
    pp_string (pp, "CALLEE SUMMARY:");
    pp_newline (pp);
!   m_summary.dump_to_pp (m_ext_state, pp, simple);
  
    /* Current state of caller (could be in mid-update).  */
    pp_newline (pp);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/call-summary.h gcc-16.1.0-RC-20260423/gcc/analyzer/call-summary.h
*** gcc-15.2.0/gcc/analyzer/call-summary.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/call-summary.h	Thu Apr 23 11:07:32 2026
*************** class call_summary_replay
*** 69,79 ****
  public:
    call_summary_replay (const call_details &cd,
  		       const function &called_fn,
! 		       call_summary *m_summary,
  		       const extrinsic_state &ext_state);
  
    const call_details &get_call_details () const { return m_cd; }
!   const gcall *get_call_stmt () const { return m_cd.get_call_stmt (); }
    region_model_manager *get_manager () const { return m_cd.get_manager (); }
    store_manager *get_store_manager () const
    {
--- 69,79 ----
  public:
    call_summary_replay (const call_details &cd,
  		       const function &called_fn,
! 		       call_summary &summary,
  		       const extrinsic_state &ext_state);
  
    const call_details &get_call_details () const { return m_cd; }
!   const gcall &get_call_stmt () const { return m_cd.get_call_stmt (); }
    region_model_manager *get_manager () const { return m_cd.get_manager (); }
    store_manager *get_store_manager () const
    {
*************** private:
*** 102,108 ****
    const region *convert_region_from_summary_1 (const region *);
  
    const call_details &m_cd;
!   call_summary *m_summary;
    const extrinsic_state &m_ext_state;
  
    // Mapping from svalues in summary to svalues for callsite:
--- 102,108 ----
    const region *convert_region_from_summary_1 (const region *);
  
    const call_details &m_cd;
!   call_summary &m_summary;
    const extrinsic_state &m_ext_state;
  
    // Mapping from svalues in summary to svalues for callsite:
diff -Nrcpad gcc-15.2.0/gcc/analyzer/checker-event.cc gcc-16.1.0-RC-20260423/gcc/analyzer/checker-event.cc
*** gcc-15.2.0/gcc/analyzer/checker-event.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/checker-event.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
! /* Subclasses of diagnostics::paths::event for analyzer diagnostics.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,62 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
  #include "gimple-pretty-print.h"
  #include "fold-const.h"
! #include "diagnostic-path.h"
! #include "options.h"
! #include "cgraph.h"
! #include "cfg.h"
! #include "digraph.h"
! #include "diagnostic-event-id.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
- #include "sbitmap.h"
- #include "bitmap.h"
- #include "ordered-hash-map.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
- #include "gimple-iterator.h"
- #include "inlining-iterator.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/constraint-manager.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
- #include "diagnostic-format-sarif.h"
- #include "tree-logical-location.h"
  
  #if ENABLE_ANALYZER
  
--- 18,50 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "gimple-pretty-print.h"
+ #include "sbitmap.h"
+ #include "ordered-hash-map.h"
  #include "fold-const.h"
! #include "gimple-iterator.h"
! #include "inlining-iterator.h"
! #include "tree-logical-location.h"
! #include "diagnostics/sarif-sink.h"
! #include "diagnostics/state-graphs.h"
! #include "custom-sarif-properties/state-graphs.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/constraint-manager.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
  
  #if ENABLE_ANALYZER
  
*************** event_kind_to_string (enum event_kind ek
*** 71,126 ****
      {
      default:
        gcc_unreachable ();
!     case EK_DEBUG:
!       return "EK_DEBUG";
!     case EK_CUSTOM:
!       return "EK_CUSTOM";
!     case EK_STMT:
!       return "EK_STMT";
!     case EK_REGION_CREATION:
!       return "EK_REGION_CREATION";
!     case EK_FUNCTION_ENTRY:
!       return "EK_FUNCTION_ENTRY";
!     case EK_STATE_CHANGE:
!       return "EK_STATE_CHANGE";
!     case EK_START_CFG_EDGE:
!       return "EK_START_CFG_EDGE";
!     case EK_END_CFG_EDGE:
!       return "EK_END_CFG_EDGE";
!     case EK_CALL_EDGE:
!       return "EK_CALL_EDGE";
!     case EK_RETURN_EDGE:
!       return "EK_RETURN_EDGE";
!     case EK_START_CONSOLIDATED_CFG_EDGES:
!       return "EK_START_CONSOLIDATED_CFG_EDGES";
!     case EK_END_CONSOLIDATED_CFG_EDGES:
!       return "EK_END_CONSOLIDATED_CFG_EDGES";
!     case EK_INLINED_CALL:
!       return "EK_INLINED_CALL";
!     case EK_SETJMP:
!       return "EK_SETJMP";
!     case EK_REWIND_FROM_LONGJMP:
!       return "EK_REWIND_FROM_LONGJMP";
!     case EK_REWIND_TO_SETJMP:
!       return "EK_REWIND_TO_SETJMP";
!     case EK_WARNING:
!       return "EK_WARNING";
      }
  }
  
! /* class checker_event : public diagnostic_event.  */
  
  /* checker_event's ctor.  */
  
  checker_event::checker_event (enum event_kind kind,
  			      const event_loc_info &loc_info)
! : m_kind (kind), m_loc (loc_info.m_loc),
    m_original_fndecl (loc_info.m_fndecl),
    m_effective_fndecl (loc_info.m_fndecl),
    m_original_depth (loc_info.m_depth),
    m_effective_depth (loc_info.m_depth),
!   m_pending_diagnostic (NULL), m_emission_id (),
!   m_logical_loc (loc_info.m_fndecl)
  {
    /* Update effective fndecl and depth if inlining has been recorded.  */
    if (flag_analyzer_undo_inlining)
--- 59,122 ----
      {
      default:
        gcc_unreachable ();
!     case event_kind::debug:
!       return "debug";
!     case event_kind::custom:
!       return "custom";
!     case event_kind::stmt:
!       return "stmt";
!     case event_kind::region_creation:
!       return "region_creation";
!     case event_kind::function_entry:
!       return "function_entry";
!     case event_kind::state_change:
!       return "state_change";
!     case event_kind::start_cfg_edge:
!       return "start_cfg_edge";
!     case event_kind::end_cfg_edge:
!       return "end_cfg_edge";
!     case event_kind::catch_:
!       return "catch";
!     case event_kind::call_:
!       return "call";
!     case event_kind::return_:
!       return "return";
!     case event_kind::start_consolidated_cfg_edges:
!       return "start_consolidated_cfg_edges";
!     case event_kind::end_consolidated_cfg_edges:
!       return "end_consolidated_cfg_edges";
!     case event_kind::inlined_call:
!       return "inlined_call";
!     case event_kind::setjmp_:
!       return "setjmp";
!     case event_kind::rewind_from_longjmp:
!       return "rewind_from_longjmp";
!     case event_kind::rewind_to_setjmp:
!       return "rewind_to_setjmp";
!     case event_kind::throw_:
!       return "throw";
!     case event_kind::unwind:
!       return "unwind";
!     case event_kind::warning:
!       return "warning";
      }
  }
  
! /* class checker_event : public diagnostics::paths::event.  */
  
  /* checker_event's ctor.  */
  
  checker_event::checker_event (enum event_kind kind,
  			      const event_loc_info &loc_info)
! : m_path (nullptr),
!   m_kind (kind), m_loc (loc_info.m_loc),
    m_original_fndecl (loc_info.m_fndecl),
    m_effective_fndecl (loc_info.m_fndecl),
    m_original_depth (loc_info.m_depth),
    m_effective_depth (loc_info.m_depth),
!   m_pending_diagnostic (nullptr), m_emission_id (),
!   m_logical_loc
!     (tree_logical_location_manager::key_from_tree (loc_info.m_fndecl))
  {
    /* Update effective fndecl and depth if inlining has been recorded.  */
    if (flag_analyzer_undo_inlining)
*************** checker_event::checker_event (enum event
*** 130,169 ****
  	{
  	  m_effective_fndecl = info.get_inner_fndecl ();
  	  m_effective_depth += info.get_extra_frames ();
! 	  m_logical_loc = tree_logical_location (m_effective_fndecl);
  	}
      }
  }
  
! /* No-op implementation of diagnostic_event::get_meaning vfunc for
     checker_event: checker events have no meaning by default.  */
  
! diagnostic_event::meaning
  checker_event::get_meaning () const
  {
!   return meaning ();
  }
  
! /* Implementation of diagnostic_event::maybe_add_sarif_properties
     for checker_event.  */
  
  void
  checker_event::
! maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj) const
  {
!   sarif_property_bag &props = thread_flow_loc_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/checker_event/"
    props.set (PROPERTY_PREFIX "emission_id",
  	     diagnostic_event_id_to_json  (m_emission_id));
    props.set_string (PROPERTY_PREFIX "kind", event_kind_to_string (m_kind));
  
    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);
  #undef PROPERTY_PREFIX
--- 126,166 ----
  	{
  	  m_effective_fndecl = info.get_inner_fndecl ();
  	  m_effective_depth += info.get_extra_frames ();
! 	  m_logical_loc
! 	    = tree_logical_location_manager::key_from_tree (m_effective_fndecl);
  	}
      }
  }
  
! /* No-op implementation of diagnostics::paths::event::get_meaning vfunc for
     checker_event: checker events have no meaning by default.  */
  
! diagnostics::paths::event::meaning
  checker_event::get_meaning () const
  {
!   return diagnostics::paths::event::meaning ();
  }
  
! /* Implementation of diagnostics::paths::event::maybe_add_sarif_properties
     for checker_event.  */
  
  void
  checker_event::
! maybe_add_sarif_properties (diagnostics::sarif_builder &builder,
! 			    diagnostics::sarif_object &thread_flow_loc_obj) const
  {
!   auto &props = thread_flow_loc_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/checker_event/"
    props.set (PROPERTY_PREFIX "emission_id",
  	     diagnostic_event_id_to_json  (m_emission_id));
    props.set_string (PROPERTY_PREFIX "kind", event_kind_to_string (m_kind));
  
    if (m_original_fndecl != m_effective_fndecl)
!     props.set_logical_location
!       (PROPERTY_PREFIX "original_fndecl",
!        builder,
!        tree_logical_location_manager::key_from_tree (m_original_fndecl));
! 
    if (m_original_depth != m_effective_depth)
      props.set_integer (PROPERTY_PREFIX "original_depth", m_original_depth);
  #undef PROPERTY_PREFIX
*************** checker_event::debug () const
*** 217,226 ****
     pertinent data within the sm-state).  */
  
  void
! checker_event::prepare_for_emission (checker_path *,
  				     pending_diagnostic *pd,
! 				     diagnostic_event_id_t emission_id)
  {
    m_pending_diagnostic = pd;
    m_emission_id = emission_id;
  
--- 214,224 ----
     pertinent data within the sm-state).  */
  
  void
! checker_event::prepare_for_emission (checker_path *path,
  				     pending_diagnostic *pd,
! 				     diagnostics::paths::event_id_t emission_id)
  {
+   m_path = path;
    m_pending_diagnostic = pd;
    m_emission_id = emission_id;
  
*************** checker_event::prepare_for_emission (che
*** 228,236 ****
    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.  */
  
--- 226,261 ----
    print_desc (*pp.get ());
  }
  
+ std::unique_ptr<diagnostics::digraphs::digraph>
+ checker_event::maybe_make_diagnostic_state_graph (bool debug) const
+ {
+   const program_state *state = get_program_state ();
+   if (!state)
+     return nullptr;
+ 
+   gcc_assert (m_path);
+   const extrinsic_state &ext_state = m_path->get_ext_state ();
+ 
+   auto result = state->make_diagnostic_state_graph (ext_state);
+ 
+   if (debug)
+     {
+       pretty_printer pp;
+       text_art::theme *theme = global_dc->get_diagram_theme ();
+       text_art::dump_to_pp (*state, theme, &pp);
+       const json::string_property program_state_property
+ 	(custom_sarif_properties::state_graphs::graph::prefix,
+ 	 "analyzer/program_state/");
+       result->set_property (program_state_property,
+ 			    pp_formatted_text (&pp));
+     }
+ 
+   return result;
+ }
+ 
  /* class debug_event : public checker_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     debug_event.
     Use the saved string as the event's description.  */
  
*************** debug_event::print_desc (pretty_printer
*** 242,248 ****
  
  /* 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.  */
  
--- 267,273 ----
  
  /* class precanned_custom_event : public custom_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     precanned_custom_event.
     Use the saved string as the event's description.  */
  
*************** precanned_custom_event::print_desc (pret
*** 258,271 ****
  
  statement_event::statement_event (const gimple *stmt, tree fndecl, int depth,
  				  const program_state &dst_state)
! : checker_event (EK_STMT,
  		 event_loc_info (gimple_location (stmt), fndecl, depth)),
    m_stmt (stmt),
    m_dst_state (dst_state)
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     statement_event.
     Use the statement's dump form as the event's description.  */
  
--- 283,296 ----
  
  statement_event::statement_event (const gimple *stmt, tree fndecl, int depth,
  				  const program_state &dst_state)
! : checker_event (event_kind::stmt,
  		 event_loc_info (gimple_location (stmt), fndecl, depth)),
    m_stmt (stmt),
    m_dst_state (dst_state)
  {
  }
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     statement_event.
     Use the statement's dump form as the event's description.  */
  
*************** statement_event::print_desc (pretty_prin
*** 279,285 ****
  /* class region_creation_event : public checker_event.  */
  
  region_creation_event::region_creation_event (const event_loc_info &loc_info)
! : checker_event (EK_REGION_CREATION, loc_info)
  {
  }
  
--- 304,310 ----
  /* class region_creation_event : public checker_event.  */
  
  region_creation_event::region_creation_event (const event_loc_info &loc_info)
! : checker_event (event_kind::region_creation, loc_info)
  {
  }
  
*************** region_creation_event_allocation_size::p
*** 336,342 ****
  		   "allocated %qE bytes here",
  		   m_capacity);
      }
!   pp_printf (&pp, "allocated here");
  }
  
  void
--- 361,368 ----
  		   "allocated %qE bytes here",
  		   m_capacity);
      }
!   else
!     pp_printf (&pp, "allocated here");
  }
  
  void
*************** region_creation_event_debug::print_desc
*** 350,365 ****
  
  /* class function_entry_event : public checker_event.  */
  
! function_entry_event::function_entry_event (const program_point &dst_point)
! : checker_event (EK_FUNCTION_ENTRY,
! 		 event_loc_info (dst_point.get_supernode
! 				   ()->get_start_location (),
  				 dst_point.get_fndecl (),
! 				 dst_point.get_stack_depth ()))
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     function_entry_event.
  
     Use a string such as "entry to 'foo'" as the event's description.  */
--- 376,392 ----
  
  /* class function_entry_event : public checker_event.  */
  
! function_entry_event::function_entry_event (const program_point &dst_point,
! 					    const program_state &state)
! : checker_event (event_kind::function_entry,
! 		 event_loc_info (dst_point.get_location (),
  				 dst_point.get_fndecl (),
! 				 dst_point.get_stack_depth ())),
!   m_state (state)
  {
  }
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     function_entry_event.
  
     Use a string such as "entry to 'foo'" as the event's description.  */
*************** function_entry_event::print_desc (pretty
*** 370,391 ****
    pp_printf (&pp, "entry to %qE", m_effective_fndecl);
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     function entry.  */
  
! diagnostic_event::meaning
  function_entry_event::get_meaning () const
  {
!   return meaning (VERB_enter, NOUN_function);
  }
  
  /* class state_change_event : public checker_event.  */
  
  /* state_change_event's ctor.  */
  
! state_change_event::state_change_event (const supernode *node,
  					const gimple *stmt,
- 					int stack_depth,
  					const state_machine &sm,
  					const svalue *sval,
  					state_machine::state_t from,
--- 397,417 ----
    pp_printf (&pp, "entry to %qE", m_effective_fndecl);
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     function entry.  */
  
! diagnostics::paths::event::meaning
  function_entry_event::get_meaning () const
  {
!   return meaning (verb::enter, noun::function);
  }
  
  /* class state_change_event : public checker_event.  */
  
  /* state_change_event's ctor.  */
  
! state_change_event::state_change_event (const event_loc_info &loc_info,
  					const gimple *stmt,
  					const state_machine &sm,
  					const svalue *sval,
  					state_machine::state_t from,
*************** state_change_event::state_change_event (
*** 393,403 ****
  					const svalue *origin,
  					const program_state &dst_state,
  					const exploded_node *enode)
! : checker_event (EK_STATE_CHANGE,
! 		 event_loc_info (stmt->location,
! 				 node->m_fun->decl,
! 				 stack_depth)),
!   m_node (node), m_stmt (stmt), m_sm (sm),
    m_sval (sval), m_from (from), m_to (to),
    m_origin (origin),
    m_dst_state (dst_state),
--- 419,427 ----
  					const svalue *origin,
  					const program_state &dst_state,
  					const exploded_node *enode)
! : checker_event (event_kind::state_change, loc_info),
!   m_stmt (stmt),
!   m_sm (sm),
    m_sval (sval), m_from (from), m_to (to),
    m_origin (origin),
    m_dst_state (dst_state),
*************** state_change_event::state_change_event (
*** 405,411 ****
  {
  }
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     state_change_event.
  
     Attempt to generate a nicer human-readable description.
--- 429,435 ----
  {
  }
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     state_change_event.
  
     Attempt to generate a nicer human-readable description.
*************** state_change_event::print_desc (pretty_p
*** 447,453 ****
  		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, ")");
--- 471,477 ----
  		pp_string (&pp, "NULL origin");
  
  	      /* Get any "meaning" of event.  */
! 	      diagnostics::paths::event::meaning meaning = get_meaning ();
  	      pp_string (&pp, ", meaning: ");
  	      meaning.dump_to_pp (&pp);
  	      pp_string (&pp, ")");
*************** state_change_event::print_desc (pretty_p
*** 476,482 ****
      }
    else
      {
!       gcc_assert (m_origin == NULL);
        pp_printf (&pp,
  		 "global state: %qs -> %qs",
  		 m_from->get_name (),
--- 500,506 ----
      }
    else
      {
!       gcc_assert (m_origin == nullptr);
        pp_printf (&pp,
  		 "global state: %qs -> %qs",
  		 m_from->get_name (),
*************** state_change_event::print_desc (pretty_p
*** 484,494 ****
      }
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     state change events: delegate to the pending_diagnostic to
     get any meaning.  */
  
! diagnostic_event::meaning
  state_change_event::get_meaning () const
  {
    if (m_pending_diagnostic)
--- 508,518 ----
      }
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     state change events: delegate to the pending_diagnostic to
     get any meaning.  */
  
! diagnostics::paths::event::meaning
  state_change_event::get_meaning () const
  {
    if (m_pending_diagnostic)
*************** state_change_event::get_meaning () const
*** 506,618 ****
  
  /* class superedge_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::maybe_add_sarif_properties
     for superedge_event.  */
  
  void
! superedge_event::maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj)
    const
  {
!   checker_event::maybe_add_sarif_properties (thread_flow_loc_obj);
!   sarif_property_bag &props = thread_flow_loc_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/superedge_event/"
    if (m_sedge)
      props.set (PROPERTY_PREFIX "superedge", m_sedge->to_json ());
  #undef PROPERTY_PREFIX
  }
  
- /* Get the callgraph_superedge for this superedge_event, which must be
-    for an interprocedural edge, rather than a CFG edge.  */
- 
- const callgraph_superedge&
- superedge_event::get_callgraph_superedge () const
- {
-   gcc_assert (m_sedge->m_kind != SUPEREDGE_CFG_EDGE);
-   return *m_sedge->dyn_cast_callgraph_superedge ();
- }
- 
  /* Determine if this event should be filtered at the given verbosity
     level.  */
  
  bool
  superedge_event::should_filter_p (int verbosity) const
  {
!   switch (m_sedge->m_kind)
      {
!     case SUPEREDGE_CFG_EDGE:
!       {
! 	if (verbosity < 2)
! 	  return true;
! 
! 	if (verbosity < 4)
! 	  {
! 	    /* 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;
! 	  }
!       }
!       break;
  
!     default:
!       break;
      }
    return false;
  }
  
  /* superedge_event's ctor.  */
  
  superedge_event::superedge_event (enum event_kind kind,
  				  const exploded_edge &eedge,
  				  const event_loc_info &loc_info)
  : checker_event (kind, loc_info),
!   m_eedge (eedge), m_sedge (eedge.m_sedge),
!   m_var (NULL_TREE), m_critical_state (0)
  {
!   /* Note that m_sedge can be nullptr for e.g. jumps through
!      function pointers.  */
  }
  
  /* class cfg_edge_event : public superedge_event.  */
  
- /* Get the cfg_superedge for this cfg_edge_event.  */
- 
- const cfg_superedge &
- cfg_edge_event::get_cfg_superedge () const
- {
-   return *m_sedge->dyn_cast_cfg_superedge ();
- }
- 
  /* cfg_edge_event's ctor.  */
  
  cfg_edge_event::cfg_edge_event (enum event_kind kind,
  				const exploded_edge &eedge,
! 				const event_loc_info &loc_info)
! : superedge_event (kind, eedge, loc_info)
  {
-   gcc_assert (eedge.m_sedge->m_kind == SUPEREDGE_CFG_EDGE);
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     CFG edge events.  */
  
! diagnostic_event::meaning
  cfg_edge_event::get_meaning () const
  {
!   const cfg_superedge& cfg_sedge = get_cfg_superedge ();
!   if (cfg_sedge.true_value_p ())
!     return meaning (VERB_branch, PROPERTY_true);
!   else if (cfg_sedge.false_value_p ())
!     return meaning (VERB_branch, PROPERTY_false);
!   else
!     return meaning ();
  }
  
  /* 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
--- 530,663 ----
  
  /* class superedge_event : public checker_event.  */
  
! /* Implementation of diagnostics::paths::event::maybe_add_sarif_properties
     for superedge_event.  */
  
  void
! superedge_event::
! maybe_add_sarif_properties (diagnostics::sarif_builder &builder,
! 			    diagnostics::sarif_object &thread_flow_loc_obj)
    const
  {
!   checker_event::maybe_add_sarif_properties (builder, thread_flow_loc_obj);
!   auto &props = thread_flow_loc_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/superedge_event/"
    if (m_sedge)
      props.set (PROPERTY_PREFIX "superedge", m_sedge->to_json ());
  #undef PROPERTY_PREFIX
  }
  
  /* Determine if this event should be filtered at the given verbosity
     level.  */
  
  bool
  superedge_event::should_filter_p (int verbosity) const
  {
!   if (m_sedge->get_any_cfg_edge ())
      {
!       if (verbosity < 2)
! 	return true;
  
!       if (verbosity < 4)
! 	{
! 	  /* 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;
! 	}
      }
    return false;
  }
  
+ const program_state *
+ superedge_event::get_program_state () const
+ {
+   return &m_eedge.m_dest->get_state ();
+ }
+ 
+ const call_and_return_op *
+ superedge_event::get_call_and_return_op () const
+ {
+   if (m_sedge)
+     if (auto base_op = m_sedge->get_op ())
+       return base_op->dyn_cast_call_and_return_op ();
+   return nullptr;
+ }
+ 
  /* superedge_event's ctor.  */
  
  superedge_event::superedge_event (enum event_kind kind,
  				  const exploded_edge &eedge,
  				  const event_loc_info &loc_info)
  : checker_event (kind, loc_info),
!   m_eedge (eedge), m_sedge (eedge.m_sedge)
  {
!   gcc_assert (m_sedge);
  }
  
  /* class cfg_edge_event : public superedge_event.  */
  
  /* cfg_edge_event's ctor.  */
  
  cfg_edge_event::cfg_edge_event (enum event_kind kind,
  				const exploded_edge &eedge,
! 				const event_loc_info &loc_info,
! 				const control_flow_op *op)
! : superedge_event (kind, eedge, loc_info),
!   m_op (op)
  {
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     CFG edge events.  */
  
! diagnostics::paths::event::meaning
  cfg_edge_event::get_meaning () const
  {
!   if (::edge e = get_cfg_edge ())
!     {
!       if (e->flags & EDGE_TRUE_VALUE)
! 	return meaning (verb::branch, property::true_);
!       else if (e->flags & EDGE_FALSE_VALUE)
! 	return meaning (verb::branch, property::false_);
!     }
!   return meaning ();
! }
! 
! ::edge
! cfg_edge_event::get_cfg_edge () const
! {
!   return m_sedge->get_any_cfg_edge ();
! }
! 
! /* If this event is for a conditional, write the sense of the
!    conditional to *OUT and return true.
!    Otherwise return false.  */
! 
! bool
! cfg_edge_event::maybe_get_edge_sense (bool *out) const
! {
!   if (::edge e = get_cfg_edge ())
!     {
!       if (e->flags & EDGE_TRUE_VALUE)
! 	{
! 	  *out = true;
! 	  return true;
! 	}
!       else if (e->flags & EDGE_FALSE_VALUE)
! 	{
! 	  *out = false;
! 	  return true;
! 	}
!     }
!   return false;
  }
  
  /* class start_cfg_edge_event : public cfg_edge_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     start_cfg_edge_event.
  
     If -fanalyzer-verbose-edges, then generate low-level descriptions, such
*************** start_cfg_edge_event::print_desc (pretty
*** 639,647 ****
    label_text edge_desc (m_sedge->get_description (user_facing));
    if (user_facing)
      {
!       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,
--- 684,695 ----
    label_text edge_desc (m_sedge->get_description (user_facing));
    if (user_facing)
      {
!       if (edge_desc.get ()
! 	  && strlen (edge_desc.get ()) > 0
! 	  && m_op)
  	{
! 	  label_text cond_desc
! 	    = m_op->maybe_describe_condition (pp_show_color (&pp));
  	  label_text result;
  	  if (cond_desc.get ())
  	    pp_printf (&pp,
*************** start_cfg_edge_event::print_desc (pretty
*** 659,801 ****
  	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);
!     }
! }
! 
! /* Attempt to generate a description of any condition that holds at this edge.
! 
!    The intent is to make the user-facing messages more clear, especially for
!    cases where there's a single or double-negative, such as
!    when describing the false branch of an inverted condition.
! 
!    For example, rather than printing just:
! 
!       |  if (!ptr)
!       |     ~
!       |     |
!       |     (1) following 'false' branch...
! 
!    it's clearer to spell out the condition that holds:
! 
!       |  if (!ptr)
!       |     ~
!       |     |
!       |     (1) following 'false' branch (when 'ptr' is non-NULL)...
!                                           ^^^^^^^^^^^^^^^^^^^^^^
! 
!    In the above example, this function would generate the highlighted
!    string: "when 'ptr' is non-NULL".
! 
!    If the edge is not a condition, or it's not clear that a description of
!    the condition would be helpful to the user, return NULL.  */
! 
! label_text
! start_cfg_edge_event::maybe_describe_condition (bool can_colorize) const
! {
!   const cfg_superedge& cfg_sedge = get_cfg_superedge ();
! 
!   if (cfg_sedge.true_value_p () || cfg_sedge.false_value_p ())
!     {
!       const gimple *last_stmt = m_sedge->m_src->get_last_stmt ();
!       if (const gcond *cond_stmt = dyn_cast <const gcond *> (last_stmt))
! 	{
! 	  enum tree_code op = gimple_cond_code (cond_stmt);
! 	  tree lhs = gimple_cond_lhs (cond_stmt);
! 	  tree rhs = gimple_cond_rhs (cond_stmt);
! 	  if (cfg_sedge.false_value_p ())
! 	    op = invert_tree_comparison (op, false /* honor_nans */);
! 	  return maybe_describe_condition (can_colorize,
! 					   lhs, op, rhs);
! 	}
!     }
!   return label_text::borrow (NULL);
! }
! 
! /* Subroutine of maybe_describe_condition above.
! 
!    Attempt to generate a user-facing description of the condition
!    LHS OP RHS, but only if it is likely to make it easier for the
!    user to understand a condition.  */
! 
! label_text
! start_cfg_edge_event::maybe_describe_condition (bool can_colorize,
! 						tree lhs,
! 						enum tree_code op,
! 						tree rhs)
! {
!   /* In theory we could just build a tree via
!        fold_build2 (op, boolean_type_node, lhs, rhs)
!      and print it with %qE on it, but this leads to warts such as
!      parenthesizing vars, such as '(i) <= 9', and uses of '<unknown>'.  */
! 
!   /* Special-case: describe testing the result of strcmp, as figuring
!      out what the "true" or "false" path is can be confusing to the user.  */
!   if (TREE_CODE (lhs) == SSA_NAME
!       && zerop (rhs))
!     {
!       if (gcall *call = dyn_cast <gcall *> (SSA_NAME_DEF_STMT (lhs)))
! 	if (is_special_named_call_p (call, "strcmp", 2))
! 	  {
! 	    if (op == EQ_EXPR)
! 	      return label_text::borrow ("when the strings are equal");
! 	    if (op == NE_EXPR)
! 	      return label_text::borrow ("when the strings are non-equal");
! 	  }
!     }
! 
!   /* Only attempt to generate text for sufficiently simple expressions.  */
!   if (!should_print_expr_p (lhs))
!     return label_text::borrow (NULL);
!   if (!should_print_expr_p (rhs))
!     return label_text::borrow (NULL);
! 
!   /* Special cases for pointer comparisons against NULL.  */
!   if (POINTER_TYPE_P (TREE_TYPE (lhs))
!       && POINTER_TYPE_P (TREE_TYPE (rhs))
!       && zerop (rhs))
!     {
!       if (op == EQ_EXPR)
! 	return make_label_text (can_colorize, "when %qE is NULL",
! 				lhs);
!       if (op == NE_EXPR)
! 	return make_label_text (can_colorize, "when %qE is non-NULL",
! 				lhs);
      }
- 
-   return make_label_text (can_colorize, "when %<%E %s %E%>",
- 			  lhs, op_symbol_code (op), rhs);
  }
  
! /* Subroutine of maybe_describe_condition.
! 
!    Return true if EXPR is we will get suitable user-facing output
!    from %E on it.  */
  
! bool
! start_cfg_edge_event::should_print_expr_p (tree expr)
  {
!   if (TREE_CODE (expr) == SSA_NAME)
!     {
!       if (SSA_NAME_VAR (expr))
! 	return should_print_expr_p (SSA_NAME_VAR (expr));
!       else
! 	return false;
!     }
! 
!   if (DECL_P (expr))
!     return true;
! 
!   if (CONSTANT_CLASS_P (expr))
!     return true;
! 
!   return false;
  }
  
  /* class call_event : public superedge_event.  */
--- 707,728 ----
  	return pp_printf (&pp,
  			  "taking %qs edge SN:%i -> SN:%i",
  			  edge_desc.get (),
! 			  m_sedge->m_src->m_id,
! 			  m_sedge->m_dest->m_id);
        else
  	return pp_printf (&pp,
  			  "taking edge SN:%i -> SN:%i",
! 			  m_sedge->m_src->m_id,
! 			  m_sedge->m_dest->m_id);
      }
  }
  
! /* class catch_cfg_edge_event : public cfg_edge_event.  */
  
! diagnostics::paths::event::meaning
! catch_cfg_edge_event::get_meaning () const
  {
!   return meaning (verb::catch_);
  }
  
  /* class call_event : public superedge_event.  */
*************** start_cfg_edge_event::should_print_expr_
*** 804,819 ****
  
  call_event::call_event (const exploded_edge &eedge,
  			const event_loc_info &loc_info)
! : superedge_event (EK_CALL_EDGE, eedge, loc_info)
  {
-   if (eedge.m_sedge)
-     gcc_assert (eedge.m_sedge->m_kind == SUPEREDGE_CALL);
- 
     m_src_snode = eedge.m_src->get_supernode ();
     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,
--- 731,743 ----
  
  call_event::call_event (const exploded_edge &eedge,
  			const event_loc_info &loc_info)
! : superedge_event (event_kind::call_, eedge, loc_info)
  {
     m_src_snode = eedge.m_src->get_supernode ();
     m_dest_snode = eedge.m_dest->get_supernode ();
  }
  
! /* Implementation of diagnostics::paths::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
*** 827,840 ****
  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;
      }
--- 751,764 ----
  void
  call_event::print_desc (pretty_printer &pp) const
  {
!   if (m_critical_state.m_state && m_pending_diagnostic)
      {
!       gcc_assert (m_critical_state.m_var);
!       tree var = fixup_tree_for_diagnostic (m_critical_state.m_var);
        evdesc::call_with_state evd (m_src_snode->m_fun->decl,
  				   m_dest_snode->m_fun->decl,
  				   var,
! 				   m_critical_state.m_state);
        if (m_pending_diagnostic->describe_call_with_state (pp, evd))
  	return;
      }
*************** call_event::print_desc (pretty_printer &
*** 845,857 ****
  	     get_caller_fndecl ());
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     function call events.  */
  
! diagnostic_event::meaning
  call_event::get_meaning () const
  {
!   return meaning (VERB_call, NOUN_function);
  }
  
  /* Override of checker_event::is_call_p for calls.  */
--- 769,781 ----
  	     get_caller_fndecl ());
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     function call events.  */
  
! diagnostics::paths::event::meaning
  call_event::get_meaning () const
  {
!   return meaning (verb::call, noun::function);
  }
  
  /* Override of checker_event::is_call_p for calls.  */
*************** call_event::get_callee_fndecl () const
*** 874,895 ****
    return m_dest_snode->m_fun->decl;
  }
  
! /* class return_event : public superedge_event.  */
  
  /* return_event's ctor.  */
  
  return_event::return_event (const exploded_edge &eedge,
  			    const event_loc_info &loc_info)
! : superedge_event (EK_RETURN_EDGE, eedge, loc_info)
  {
-   if (eedge.m_sedge)
-     gcc_assert (eedge.m_sedge->m_kind == SUPEREDGE_RETURN);
- 
    m_src_snode = eedge.m_src->get_supernode ();
    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,
--- 798,827 ----
    return m_dest_snode->m_fun->decl;
  }
  
! const program_state *
! call_event::get_program_state () const
! {
!   /* Use the state at the source (at the caller),
!      rather than the one at the dest, which has a frame for the callee.  */
!   return &m_eedge.m_src->get_state ();
! }
! 
! /* class return_event : public checker_event.  */
  
  /* return_event's ctor.  */
  
  return_event::return_event (const exploded_edge &eedge,
  			    const event_loc_info &loc_info)
! : checker_event (event_kind::return_, loc_info),
!   m_eedge (eedge)
  {
    m_src_snode = eedge.m_src->get_supernode ();
    m_dest_snode = eedge.m_dest->get_supernode ();
+   m_call_and_return_op
+     = eedge.m_src->get_point ().get_call_string ().get_top_of_stack ().m_call_op;
  }
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     return_event.
  
     If this return event returns critical state for an sm-based warning,
*************** return_event::print_desc (pretty_printer
*** 907,917 ****
        state involved in the pending diagnostic, give the pending
        diagnostic a chance to describe this return (in terms of
        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;
      }
--- 839,849 ----
        state involved in the pending diagnostic, give the pending
        diagnostic a chance to describe this return (in terms of
        itself).  */
!   if (m_critical_state.m_state && m_pending_diagnostic)
      {
        evdesc::return_of_state evd (m_dest_snode->m_fun->decl,
  				   m_src_snode->m_fun->decl,
! 				   m_critical_state.m_state);
        if (m_pending_diagnostic->describe_return_of_state (pp, evd))
  	return;
      }
*************** return_event::print_desc (pretty_printer
*** 921,933 ****
  	     m_src_snode->m_fun->decl);
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     function return events.  */
  
! diagnostic_event::meaning
  return_event::get_meaning () const
  {
!   return meaning (VERB_return, NOUN_function);
  }
  
  /* Override of checker_event::is_return_p for returns.  */
--- 853,865 ----
  	     m_src_snode->m_fun->decl);
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     function return events.  */
  
! diagnostics::paths::event::meaning
  return_event::get_meaning () const
  {
!   return meaning (verb::return_, noun::function);
  }
  
  /* Override of checker_event::is_return_p for returns.  */
*************** return_event::is_return_p () const
*** 938,943 ****
--- 870,881 ----
    return true;
  }
  
+ const program_state *
+ return_event::get_program_state () const
+ {
+   return &m_eedge.m_dest->get_state ();
+ }
+ 
  /* class start_consolidated_cfg_edges_event : public checker_event.  */
  
  void
*************** start_consolidated_cfg_edges_event::prin
*** 948,961 ****
  	     m_edge_sense ? "true" : "false");
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     start_consolidated_cfg_edges_event.  */
  
! diagnostic_event::meaning
  start_consolidated_cfg_edges_event::get_meaning () const
  {
!   return meaning (VERB_branch,
! 		  (m_edge_sense ? PROPERTY_true : PROPERTY_false));
  }
  
  /* class inlined_call_event : public checker_event.  */
--- 886,899 ----
  	     m_edge_sense ? "true" : "false");
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     start_consolidated_cfg_edges_event.  */
  
! diagnostics::paths::event::meaning
  start_consolidated_cfg_edges_event::get_meaning () const
  {
!   return meaning (verb::branch,
! 		  (m_edge_sense ? property::true_ : property::false_));
  }
  
  /* class inlined_call_event : public checker_event.  */
*************** inlined_call_event::print_desc (pretty_p
*** 969,986 ****
  	     m_apparent_caller_fndecl);
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     reconstructed inlined function calls.  */
  
! diagnostic_event::meaning
  inlined_call_event::get_meaning () const
  {
!   return meaning (VERB_call, NOUN_function);
  }
  
  /* class setjmp_event : public checker_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     setjmp_event.  */
  
  void
--- 907,924 ----
  	     m_apparent_caller_fndecl);
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     reconstructed inlined function calls.  */
  
! diagnostics::paths::event::meaning
  inlined_call_event::get_meaning () const
  {
!   return meaning (verb::call, noun::function);
  }
  
  /* class setjmp_event : public checker_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     setjmp_event.  */
  
  void
*************** setjmp_event::print_desc (pretty_printer
*** 991,996 ****
--- 929,940 ----
  	     get_user_facing_name (m_setjmp_call));
  }
  
+ diagnostics::paths::event::meaning
+ setjmp_event::get_meaning () const
+ {
+   return meaning (verb::setjmp_);
+ }
+ 
  /* Implementation of checker_event::prepare_for_emission vfunc for setjmp_event.
  
     Record this setjmp's event ID into the path, so that rewind events can
*************** setjmp_event::print_desc (pretty_printer
*** 999,1005 ****
  void
  setjmp_event::prepare_for_emission (checker_path *path,
  				    pending_diagnostic *pd,
! 				    diagnostic_event_id_t emission_id)
  {
    checker_event::prepare_for_emission (path, pd, emission_id);
    path->record_setjmp_event (m_enode, emission_id);
--- 943,949 ----
  void
  setjmp_event::prepare_for_emission (checker_path *path,
  				    pending_diagnostic *pd,
! 				    diagnostics::paths::event_id_t emission_id)
  {
    checker_event::prepare_for_emission (path, pd, emission_id);
    path->record_setjmp_event (m_enode, emission_id);
*************** rewind_event::get_setjmp_caller () const
*** 1023,1028 ****
--- 967,978 ----
    return m_eedge->m_dest->get_function ()->decl;
  }
  
+ diagnostics::paths::event::meaning
+ rewind_event::get_meaning () const
+ {
+   return meaning (verb::longjmp_);
+ }
+ 
  /* rewind_event's ctor.  */
  
  rewind_event::rewind_event (const exploded_edge *eedge,
*************** rewind_event::rewind_event (const explod
*** 1038,1044 ****
  
  /* class rewind_from_longjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     rewind_from_longjmp_event.  */
  
  void
--- 988,994 ----
  
  /* class rewind_from_longjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     rewind_from_longjmp_event.  */
  
  void
*************** rewind_from_longjmp_event::print_desc (p
*** 1062,1068 ****
  
  /* class rewind_to_setjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostic_event::print_desc vfunc for
     rewind_to_setjmp_event.  */
  
  void
--- 1012,1018 ----
  
  /* class rewind_to_setjmp_event : public rewind_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     rewind_to_setjmp_event.  */
  
  void
*************** rewind_to_setjmp_event::print_desc (pret
*** 1111,1126 ****
  void
  rewind_to_setjmp_event::prepare_for_emission (checker_path *path,
  					      pending_diagnostic *pd,
! 					      diagnostic_event_id_t emission_id)
  {
    checker_event::prepare_for_emission (path, pd, emission_id);
    path->get_setjmp_event (m_rewind_info->get_enode_origin (),
  			  &m_original_setjmp_event_id);
  }
  
  /* 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,
--- 1061,1132 ----
  void
  rewind_to_setjmp_event::prepare_for_emission (checker_path *path,
  					      pending_diagnostic *pd,
! 					      diagnostics::paths::event_id_t emission_id)
  {
    checker_event::prepare_for_emission (path, pd, emission_id);
    path->get_setjmp_event (m_rewind_info->get_enode_origin (),
  			  &m_original_setjmp_event_id);
  }
  
+ /* class throw_event : public checker_event.  */
+ 
+ diagnostics::paths::event::meaning
+ throw_event::get_meaning () const
+ {
+   return meaning (verb::throw_);
+ }
+ 
+ /* class explicit_throw_event : public throw_event.  */
+ void
+ explicit_throw_event::print_desc (pretty_printer &pp) const
+ {
+   if (m_is_rethrow)
+     {
+       if (m_type)
+ 	pp_printf (&pp, "rethrowing exception of type %qT here...", m_type);
+       else
+ 	pp_printf (&pp, "rethrowing exception here...");
+     }
+   else
+     {
+       if (m_type)
+ 	pp_printf (&pp, "throwing exception of type %qT here...", m_type);
+       else
+ 	pp_printf (&pp, "throwing exception here...");
+     }
+ }
+ 
+ /* class throw_from_call_to_external_fn_event : public throw_event.  */
+ 
+ void
+ throw_from_call_to_external_fn_event::print_desc (pretty_printer &pp) const
+ {
+   if (m_fndecl)
+     pp_printf (&pp, "if %qD throws an exception...", m_fndecl);
+   else
+     pp_printf (&pp, "if the called function throws an exception...");
+ }
+ 
+ // class unwind_event : public checker_event
+ 
+ void
+ unwind_event::print_desc (pretty_printer &pp) const
+ {
+   if (m_num_frames > 1)
+     pp_printf (&pp, "unwinding %i stack frames", m_num_frames);
+   else
+     pp_printf (&pp, "unwinding stack frame");
+ }
+ 
+ diagnostics::paths::event::meaning
+ unwind_event::get_meaning () const
+ {
+   return meaning (verb::unwind_);
+ }
+ 
  /* class warning_event : public checker_event.  */
  
! /* Implementation of diagnostics::paths::event::print_desc vfunc for
     warning_event.
  
     If the pending diagnostic implements describe_final_event, use it,
*************** warning_event::print_desc (pretty_printe
*** 1165,1177 ****
      pp_string (&pp, "here");
  }
  
! /* Implementation of diagnostic_event::get_meaning vfunc for
     warning_event.  */
  
! diagnostic_event::meaning
  warning_event::get_meaning () const
  {
!   return meaning (VERB_danger, NOUN_unknown);
  }
  
  } // namespace ana
--- 1171,1192 ----
      pp_string (&pp, "here");
  }
  
! /* Implementation of diagnostics::paths::event::get_meaning vfunc for
     warning_event.  */
  
! diagnostics::paths::event::meaning
  warning_event::get_meaning () const
  {
!   return meaning (verb::danger, noun::unknown);
! }
! 
! const program_state *
! warning_event::get_program_state () const
! {
!   if (m_program_state)
!     return m_program_state.get ();
!   else
!     return &m_enode->get_state ();
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/checker-event.h gcc-16.1.0-RC-20260423/gcc/analyzer/checker-event.h
*** gcc-15.2.0/gcc/analyzer/checker-event.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/checker-event.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
! /* Subclasses of diagnostics::paths::event for analyzer diagnostics.
!    Copyright (C) 2019-2026 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,54 ****
  #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.  */
  
! enum event_kind
  {
!   EK_DEBUG,
!   EK_CUSTOM,
!   EK_STMT,
!   EK_REGION_CREATION,
!   EK_FUNCTION_ENTRY,
!   EK_STATE_CHANGE,
!   EK_START_CFG_EDGE,
!   EK_END_CFG_EDGE,
!   EK_CALL_EDGE,
!   EK_RETURN_EDGE,
!   EK_START_CONSOLIDATED_CFG_EDGES,
!   EK_END_CONSOLIDATED_CFG_EDGES,
!   EK_INLINED_CALL,
!   EK_SETJMP,
!   EK_REWIND_FROM_LONGJMP,
!   EK_REWIND_TO_SETJMP,
!   EK_WARNING
  };
  
  extern const char *event_kind_to_string (enum event_kind ek);
--- 24,58 ----
  #include "tree-logical-location.h"
  #include "analyzer/program-state.h"
  #include "analyzer/event-loc-info.h"
+ #include "diagnostics/digraphs.h"
  
  namespace ana {
  
  /* An enum for discriminating between the concrete subclasses of
     checker_event.  */
  
! enum class event_kind
  {
!   debug,
!   custom,
!   stmt,
!   region_creation,
!   function_entry,
!   state_change,
!   start_cfg_edge,
!   end_cfg_edge,
!   catch_,
!   call_,
!   return_,
!   start_consolidated_cfg_edges,
!   end_consolidated_cfg_edges,
!   inlined_call,
!   setjmp_,
!   rewind_from_longjmp,
!   rewind_to_setjmp,
!   throw_,
!   unwind,
!   warning
  };
  
  extern const char *event_kind_to_string (enum event_kind ek);
*************** extern const char *event_kind_to_string
*** 58,128 ****
     The class hierarchy looks like this (using indentation to show
     inheritance, and with event_kinds shown for the concrete subclasses):
  
!    diagnostic_event
       checker_event
!        debug_event (EK_DEBUG)
!        custom_event (EK_CUSTOM)
  	 precanned_custom_event
!        statement_event (EK_STMT)
!        region_creation_event (EK_REGION_CREATION)
!        function_entry_event (EK_FUNCTION_ENTRY)
!        state_change_event (EK_STATE_CHANGE)
         superedge_event
           cfg_edge_event
! 	   start_cfg_edge_event (EK_START_CFG_EDGE)
! 	   end_cfg_edge_event (EK_END_CFG_EDGE)
!          call_event (EK_CALL_EDGE)
!          return_edge (EK_RETURN_EDGE)
!        start_consolidated_cfg_edges_event (EK_START_CONSOLIDATED_CFG_EDGES)
!        end_consolidated_cfg_edges_event (EK_END_CONSOLIDATED_CFG_EDGES)
!        inlined_call_event (EK_INLINED_CALL)
!        setjmp_event (EK_SETJMP)
         rewind_event
!          rewind_from_longjmp_event (EK_REWIND_FROM_LONGJMP)
! 	 rewind_to_setjmp_event (EK_REWIND_TO_SETJMP)
!        warning_event (EK_WARNING).  */
  
! /* Abstract subclass of diagnostic_event; the base class for use in
!    checker_path (the analyzer's diagnostic_path subclass).  */
  
! class checker_event : public diagnostic_event
  {
  public:
!   /* Implementation of diagnostic_event.  */
  
    location_t get_location () const final override { return m_loc; }
    int get_stack_depth () const final override { return m_effective_depth; }
!   const logical_location *get_logical_location () const final override
    {
!     if (m_effective_fndecl)
!       return &m_logical_loc;
!     else
!       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;
    }
  
    void
!   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; }
  
    virtual void prepare_for_emission (checker_path *,
  				     pending_diagnostic *pd,
! 				     diagnostic_event_id_t emission_id);
    virtual bool is_call_p () const { return false; }
    virtual bool is_function_entry_p () const  { return false; }
    virtual bool is_return_p () const  { return false; }
  
    /* For use with %@.  */
!   const diagnostic_event_id_t *get_id_ptr () const
    {
      return &m_emission_id;
    }
--- 62,144 ----
     The class hierarchy looks like this (using indentation to show
     inheritance, and with event_kinds shown for the concrete subclasses):
  
!    diagnostics::paths::event
       checker_event
!        debug_event (event_kind::debug)
!        custom_event (event_kind::custom)
  	 precanned_custom_event
!        statement_event (event_kind::stmt)
!        region_creation_event (event_kind::region_creation)
!        function_entry_event (event_kind::function_entry)
!        state_change_event (event_kind::state_change)
         superedge_event
           cfg_edge_event
! 	   start_cfg_edge_event (event_kind::start_cfg_edge)
! 	   end_cfg_edge_event (event_kind::end_cfg_edge)
! 	   catch_cfg_edge_event (event_kind::catch_cfg_edge)
! 	 call_event (event_kind::call_)
!        return_event (event_kind::return_)
!        start_consolidated_cfg_edges_event (event_kind::start_consolidated_cfg_edges)
!        end_consolidated_cfg_edges_event (event_kind::end_consolidated_cfg_edges)
!        inlined_call_event (event_kind::inlined_call)
!        setjmp_event (event_kind::setjmp_)
         rewind_event
!          rewind_from_longjmp_event (event_kind::rewind_from_longjmp)
! 	 rewind_to_setjmp_event (event_kind::rewind_to_setjmp)
!        throw_event (event_kind:throw_)
! 	 explicit_throw_event
! 	 throw_from_call_to_external_fn_event
!        unwind_event (event_kind::unwind)
!        warning_event (event_kind::warning).  */
  
! /* Abstract subclass of diagnostics::paths::event; the base class for use in
!    checker_path (the analyzer's diagnostics::paths::path subclass).  */
  
! class checker_event : public diagnostics::paths::event
  {
  public:
!   /* Implementation of diagnostics::paths::event.  */
  
    location_t get_location () const final override { return m_loc; }
    int get_stack_depth () const final override { return m_effective_depth; }
!   diagnostics::logical_locations::key
!   get_logical_location () const final override
    {
!     return m_logical_loc;
    }
    meaning get_meaning () const override;
    bool connect_to_next_event_p () const override { return false; }
!   diagnostics::paths::thread_id_t get_thread_id () const final override
    {
      return 0;
    }
  
    void
!   maybe_add_sarif_properties (diagnostics::sarif_builder &,
! 			      diagnostics::sarif_object &thread_flow_loc_obj)
!     const override;
  
    /* Additional functionality.  */
+   enum event_kind get_kind () const { return m_kind; }
    tree get_fndecl () const { return m_effective_fndecl; }
  
    int get_original_stack_depth () const { return m_original_depth; }
  
    virtual void prepare_for_emission (checker_path *,
  				     pending_diagnostic *pd,
! 				     diagnostics::paths::event_id_t emission_id);
    virtual bool is_call_p () const { return false; }
    virtual bool is_function_entry_p () const  { return false; }
    virtual bool is_return_p () const  { return false; }
  
+   std::unique_ptr<diagnostics::digraphs::digraph>
+   maybe_make_diagnostic_state_graph (bool debug) const final override;
+ 
+   virtual const program_state *
+   get_program_state () const { return nullptr; }
+ 
    /* For use with %@.  */
!   const diagnostics::paths::event_id_t *get_id_ptr () const
    {
      return &m_emission_id;
    }
*************** protected:
*** 136,142 ****
    checker_event (enum event_kind kind,
  		 const event_loc_info &loc_info);
  
!  public:
    const enum event_kind m_kind;
   protected:
    location_t m_loc;
--- 152,159 ----
    checker_event (enum event_kind kind,
  		 const event_loc_info &loc_info);
  
!  private:
!   const checker_path *m_path;
    const enum event_kind m_kind;
   protected:
    location_t m_loc;
*************** protected:
*** 145,152 ****
    int m_original_depth;
    int m_effective_depth;
    pending_diagnostic *m_pending_diagnostic;
!   diagnostic_event_id_t m_emission_id; // only set once all pruning has occurred
!   tree_logical_location m_logical_loc;
  };
  
  /* A concrete event subclass for a purely textual event, for use in
--- 162,169 ----
    int m_original_depth;
    int m_effective_depth;
    pending_diagnostic *m_pending_diagnostic;
!   diagnostics::paths::event_id_t m_emission_id; // only set once all pruning has occurred
!   diagnostics::logical_locations::key m_logical_loc;
  };
  
  /* A concrete event subclass for a purely textual event, for use in
*************** public:
*** 158,164 ****
  
    debug_event (const event_loc_info &loc_info,
  	       const char *desc)
!   : checker_event (EK_DEBUG, loc_info),
      m_desc (xstrdup (desc))
    {
    }
--- 175,181 ----
  
    debug_event (const event_loc_info &loc_info,
  	       const char *desc)
!   : checker_event (event_kind::debug, loc_info),
      m_desc (xstrdup (desc))
    {
    }
*************** class custom_event : public checker_even
*** 180,186 ****
  {
  protected:
    custom_event (const event_loc_info &loc_info)
!   : checker_event (EK_CUSTOM, loc_info)
    {
    }
  };
--- 197,203 ----
  {
  protected:
    custom_event (const event_loc_info &loc_info)
!   : checker_event (event_kind::custom, loc_info)
    {
    }
  };
*************** public:
*** 218,223 ****
--- 235,246 ----
  
    void print_desc (pretty_printer &) const final override;
  
+   const program_state *
+   get_program_state () const final override
+   {
+     return &m_dst_state;
+   }
+ 
    const gimple * const m_stmt;
    const program_state m_dst_state;
  };
*************** private:
*** 328,344 ****
  class function_entry_event : public checker_event
  {
  public:
!   function_entry_event (const event_loc_info &loc_info)
!   : checker_event (EK_FUNCTION_ENTRY, loc_info)
    {
    }
  
!   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; }
  };
  
  /* Subclass of checker_event describing a state change.  */
--- 351,379 ----
  class function_entry_event : public checker_event
  {
  public:
!   function_entry_event (const event_loc_info &loc_info,
! 			const program_state &state)
!   : checker_event (event_kind::function_entry, loc_info),
!     m_state (state)
    {
    }
  
!   function_entry_event (const program_point &dst_point,
! 			const program_state &state);
  
    void print_desc (pretty_printer &pp) const override;
    meaning get_meaning () const override;
  
    bool is_function_entry_p () const final override { return true; }
+ 
+   const program_state *
+   get_program_state () const final override
+   {
+     return &m_state;
+   }
+ 
+ private:
+   const program_state &m_state;
  };
  
  /* Subclass of checker_event describing a state change.  */
*************** public:
*** 346,353 ****
  class state_change_event : public checker_event
  {
  public:
!   state_change_event (const supernode *node, const gimple *stmt,
! 		      int stack_depth,
  		      const state_machine &sm,
  		      const svalue *sval,
  		      state_machine::state_t from,
--- 381,388 ----
  class state_change_event : public checker_event
  {
  public:
!   state_change_event (const event_loc_info &loc_info,
! 		      const gimple *stmt,
  		      const state_machine &sm,
  		      const svalue *sval,
  		      state_machine::state_t from,
*************** public:
*** 359,364 ****
--- 394,405 ----
    void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
+   const program_state *
+   get_program_state () const final override
+   {
+     return &m_dst_state;
+   }
+ 
    const function *get_dest_function () const
    {
      return m_dst_state.get_current_function ();
*************** public:
*** 366,372 ****
  
    const exploded_node *get_exploded_node () const { return m_enode; }
  
-   const supernode *m_node;
    const gimple *m_stmt;
    const state_machine &m_sm;
    const svalue *m_sval;
--- 407,412 ----
*************** public:
*** 383,404 ****
  class superedge_event : public checker_event
  {
  public:
!   void maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj)
      const override;
  
!   /* 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)
!   {
!     m_var = var;
!     m_critical_state = state;
!   }
  
!   const callgraph_superedge& get_callgraph_superedge () const;
  
!   bool should_filter_p (int verbosity) const;
  
   protected:
    superedge_event (enum event_kind kind, const exploded_edge &eedge,
--- 423,440 ----
  class superedge_event : public checker_event
  {
  public:
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_builder &,
! 			      diagnostics::sarif_object &thread_flow_loc_obj)
      const override;
  
!   bool should_filter_p (int verbosity) const;
  
!   const program_state *
!   get_program_state () const override;
  
!   virtual const call_and_return_op *
!   get_call_and_return_op () const;
  
   protected:
    superedge_event (enum event_kind kind, const exploded_edge &eedge,
*************** public:
*** 407,414 ****
   public:
    const exploded_edge &m_eedge;
    const superedge *m_sedge;
-   tree m_var;
-   state_machine::state_t m_critical_state;
  };
  
  /* An abstract event subclass for when a CFG edge is followed; it has two
--- 443,448 ----
*************** class cfg_edge_event : public superedge_
*** 420,430 ****
  public:
    meaning get_meaning () const override;
  
!   const cfg_superedge& get_cfg_superedge () const;
  
   protected:
!   cfg_edge_event (enum event_kind kind, const exploded_edge &eedge,
! 		  const event_loc_info &loc_info);
  };
  
  /* A concrete event subclass for the start of a CFG edge
--- 454,470 ----
  public:
    meaning get_meaning () const override;
  
!   ::edge get_cfg_edge () const;
! 
!   bool maybe_get_edge_sense (bool *out) const;
  
   protected:
!   cfg_edge_event (enum event_kind kind,
! 		  const exploded_edge &eedge,
! 		  const event_loc_info &loc_info,
! 		  const control_flow_op *op);
! 
!   const control_flow_op *m_op;
  };
  
  /* A concrete event subclass for the start of a CFG edge
*************** class start_cfg_edge_event : public cfg_
*** 434,455 ****
  {
  public:
    start_cfg_edge_event (const exploded_edge &eedge,
! 			const event_loc_info &loc_info)
!   : cfg_edge_event (EK_START_CFG_EDGE, eedge, loc_info)
    {
    }
  
    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;
- 
  private:
-   static label_text maybe_describe_condition (bool can_colorize,
- 					      tree lhs,
- 					      enum tree_code op,
- 					      tree rhs);
    static bool should_print_expr_p (tree);
  };
  
--- 474,489 ----
  {
  public:
    start_cfg_edge_event (const exploded_edge &eedge,
! 			const event_loc_info &loc_info,
! 			const control_flow_op *op)
!   : cfg_edge_event (event_kind::start_cfg_edge, eedge, loc_info, op)
    {
    }
  
    void print_desc (pretty_printer &pp) const override;
    bool connect_to_next_event_p () const final override { return true; }
  
  private:
    static bool should_print_expr_p (tree);
  };
  
*************** class end_cfg_edge_event : public cfg_ed
*** 460,467 ****
  {
  public:
    end_cfg_edge_event (const exploded_edge &eedge,
! 		      const event_loc_info &loc_info)
!   : cfg_edge_event (EK_END_CFG_EDGE, eedge, loc_info)
    {
    }
  
--- 494,502 ----
  {
  public:
    end_cfg_edge_event (const exploded_edge &eedge,
! 		      const event_loc_info &loc_info,
! 		      const control_flow_op *op)
!   : cfg_edge_event (event_kind::end_cfg_edge, eedge, loc_info, op)
    {
    }
  
*************** public:
*** 471,476 ****
--- 506,557 ----
    }
  };
  
+ /* A concrete event subclass for catching an exception
+    e.g. "...catching 'struct io_error' here".  */
+ 
+ class catch_cfg_edge_event : public cfg_edge_event
+ {
+ public:
+   catch_cfg_edge_event (const exploded_edge &eedge,
+ 			const event_loc_info &loc_info,
+ 			const control_flow_op &op,
+ 			tree type)
+   : cfg_edge_event (event_kind::catch_, eedge, loc_info, &op),
+     m_type (type)
+   {
+   }
+ 
+   void print_desc (pretty_printer &pp) const final override
+   {
+     if (m_type)
+       pp_printf (&pp, "...catching exception of type %qT here", m_type);
+     else
+       pp_string (&pp, "...catching exception here");
+   }
+ 
+   meaning get_meaning () const override;
+ 
+ private:
+   tree m_type;
+ };
+ 
+ struct critical_state
+ {
+   critical_state ()
+   : m_var (NULL_TREE),
+     m_state (nullptr)
+   {
+   }
+   critical_state (tree var, state_machine::state_t state)
+   : m_var (var),
+     m_state (state)
+   {
+   }
+ 
+   tree m_var;
+   state_machine::state_t m_state;
+ };
+ 
  /* A concrete event subclass for an interprocedural call.  */
  
  class call_event : public superedge_event
*************** public:
*** 484,500 ****
  
    bool is_call_p () const final override;
  
  protected:
    tree get_caller_fndecl () const;
    tree get_callee_fndecl () const;
  
    const supernode *m_src_snode;
    const supernode *m_dest_snode;
  };
  
  /* A concrete event subclass for an interprocedural return.  */
  
! class return_event : public superedge_event
  {
  public:
    return_event (const exploded_edge &eedge,
--- 565,594 ----
  
    bool is_call_p () const final override;
  
+   const program_state *
+   get_program_state () const final override;
+ 
+   /* 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)
+   {
+     m_critical_state = critical_state (var, state);
+   }
+ 
  protected:
    tree get_caller_fndecl () const;
    tree get_callee_fndecl () const;
  
    const supernode *m_src_snode;
    const supernode *m_dest_snode;
+   critical_state m_critical_state;
  };
  
  /* A concrete event subclass for an interprocedural return.  */
  
! class return_event : public checker_event
  {
  public:
    return_event (const exploded_edge &eedge,
*************** public:
*** 505,512 ****
--- 599,627 ----
  
    bool is_return_p () const final override;
  
+   const call_and_return_op *
+   get_call_and_return_op () const
+   {
+     return m_call_and_return_op;
+   }
+ 
+   const program_state *
+   get_program_state () const override;
+ 
+   /* 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)
+   {
+     m_critical_state = critical_state (var, state);
+   }
+ 
+   const exploded_edge &m_eedge;
    const supernode *m_src_snode;
    const supernode *m_dest_snode;
+   const call_and_return_op *m_call_and_return_op;
+   critical_state m_critical_state;
  };
  
  /* A concrete event subclass for the start of a consolidated run of CFG
*************** class start_consolidated_cfg_edges_event
*** 517,523 ****
  public:
    start_consolidated_cfg_edges_event (const event_loc_info &loc_info,
  				      bool edge_sense)
!   : checker_event (EK_START_CONSOLIDATED_CFG_EDGES, loc_info),
      m_edge_sense (edge_sense)
    {
    }
--- 632,638 ----
  public:
    start_consolidated_cfg_edges_event (const event_loc_info &loc_info,
  				      bool edge_sense)
!   : checker_event (event_kind::start_consolidated_cfg_edges, loc_info),
      m_edge_sense (edge_sense)
    {
    }
*************** class end_consolidated_cfg_edges_event :
*** 537,543 ****
  {
  public:
    end_consolidated_cfg_edges_event (const event_loc_info &loc_info)
!   : checker_event (EK_END_CONSOLIDATED_CFG_EDGES, loc_info)
    {
    }
  
--- 652,658 ----
  {
  public:
    end_consolidated_cfg_edges_event (const event_loc_info &loc_info)
!   : checker_event (event_kind::end_consolidated_cfg_edges, loc_info)
    {
    }
  
*************** public:
*** 558,564 ****
  		      tree apparent_caller_fndecl,
  		      int actual_depth,
  		      int stack_depth_adjustment)
!   : checker_event (EK_INLINED_CALL,
  		   event_loc_info (loc,
  				   apparent_caller_fndecl,
  				   actual_depth + stack_depth_adjustment)),
--- 673,679 ----
  		      tree apparent_caller_fndecl,
  		      int actual_depth,
  		      int stack_depth_adjustment)
!   : checker_event (event_kind::inlined_call,
  		   event_loc_info (loc,
  				   apparent_caller_fndecl,
  				   actual_depth + stack_depth_adjustment)),
*************** class setjmp_event : public checker_even
*** 583,603 ****
  public:
    setjmp_event (const event_loc_info &loc_info,
  		const exploded_node *enode,
! 		const gcall *setjmp_call)
!   : checker_event (EK_SETJMP, loc_info),
      m_enode (enode), m_setjmp_call (setjmp_call)
    {
    }
  
    void print_desc (pretty_printer &pp) const final override;
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
! 			     diagnostic_event_id_t emission_id) final override;
  
  private:
    const exploded_node *m_enode;
!   const gcall *m_setjmp_call;
  };
  
  /* An abstract event subclass for rewinding from a longjmp to a setjmp
--- 698,720 ----
  public:
    setjmp_event (const event_loc_info &loc_info,
  		const exploded_node *enode,
! 		const gcall &setjmp_call)
!   : checker_event (event_kind::setjmp_, loc_info),
      m_enode (enode), m_setjmp_call (setjmp_call)
    {
    }
  
    void print_desc (pretty_printer &pp) const final override;
  
+   meaning get_meaning () const override;
+ 
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
! 			     diagnostics::paths::event_id_t emission_id) final override;
  
  private:
    const exploded_node *m_enode;
!   const gcall &m_setjmp_call;
  };
  
  /* An abstract event subclass for rewinding from a longjmp to a setjmp
*************** public:
*** 613,618 ****
--- 730,737 ----
    tree get_setjmp_caller () const;
    const exploded_edge *get_eedge () const { return m_eedge; }
  
+   meaning get_meaning () const override;
+ 
   protected:
    rewind_event (const exploded_edge *eedge,
  		enum event_kind kind,
*************** public:
*** 633,639 ****
    rewind_from_longjmp_event (const exploded_edge *eedge,
  			     const event_loc_info &loc_info,
  			     const rewind_info_t *rewind_info)
!   : rewind_event (eedge, EK_REWIND_FROM_LONGJMP, loc_info,
  		  rewind_info)
    {
    }
--- 752,758 ----
    rewind_from_longjmp_event (const exploded_edge *eedge,
  			     const event_loc_info &loc_info,
  			     const rewind_info_t *rewind_info)
!   : rewind_event (eedge, event_kind::rewind_from_longjmp, loc_info,
  		  rewind_info)
    {
    }
*************** public:
*** 650,656 ****
    rewind_to_setjmp_event (const exploded_edge *eedge,
  			  const event_loc_info &loc_info,
  			  const rewind_info_t *rewind_info)
!   : rewind_event (eedge, EK_REWIND_TO_SETJMP, loc_info,
  		  rewind_info)
    {
    }
--- 769,775 ----
    rewind_to_setjmp_event (const exploded_edge *eedge,
  			  const event_loc_info &loc_info,
  			  const rewind_info_t *rewind_info)
!   : rewind_event (eedge, event_kind::rewind_to_setjmp, loc_info,
  		  rewind_info)
    {
    }
*************** public:
*** 659,668 ****
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
! 			     diagnostic_event_id_t emission_id) final override;
  
  private:
!   diagnostic_event_id_t m_original_setjmp_event_id;
  };
  
  /* Concrete subclass of checker_event for use at the end of a path:
--- 778,873 ----
  
    void prepare_for_emission (checker_path *path,
  			     pending_diagnostic *pd,
! 			     diagnostics::paths::event_id_t emission_id) final override;
  
  private:
!   diagnostics::paths::event_id_t m_original_setjmp_event_id;
! };
! 
! /* An abstract subclass for throwing/rethrowing an exception.  */
! 
! class throw_event : public checker_event
! {
! public:
!   throw_event (const event_loc_info &loc_info,
! 	       const exploded_node *enode,
! 	       const gcall &throw_call)
!   : checker_event (event_kind::throw_, loc_info),
!     m_enode (enode),
!     m_throw_call (throw_call)
!   {
!   }
! 
!   meaning get_meaning () const override;
! 
! protected:
!   const exploded_node *m_enode;
!   const gcall &m_throw_call;
! };
! 
! /* A concrete event subclass for an explicit "throw EXC;"
!    or "throw;"  (actually, a call to __cxa_throw or __cxa_rethrow).  */
! 
! class explicit_throw_event : public throw_event
! {
! public:
!   explicit_throw_event (const event_loc_info &loc_info,
! 			const exploded_node *enode,
! 			const gcall &throw_call,
! 			tree type,
! 			bool is_rethrow)
!   : throw_event (loc_info, enode, throw_call),
!     m_type (type),
!     m_is_rethrow (is_rethrow)
!   {
!   }
! 
!   void print_desc (pretty_printer &pp) const final override;
! 
! private:
!   tree m_type;
!   bool m_is_rethrow;
! };
! 
! /* A concrete event subclass for an exception being thrown
!    from within a call to a function we don't have the body of,
!    or where we don't know what function was called.  */
! 
! class throw_from_call_to_external_fn_event : public throw_event
! {
! public:
!   throw_from_call_to_external_fn_event (const event_loc_info &loc_info,
! 					const exploded_node *enode,
! 					const gcall &throw_call,
! 					tree fndecl)
!   : throw_event (loc_info, enode, throw_call),
!     m_fndecl (fndecl)
!   {
!   }
! 
!   void print_desc (pretty_printer &pp) const final override;
! 
! private:
!   tree m_fndecl;
! };
! 
! /* A concrete event subclass for unwinding a stack frame when
!    processing an exception.  */
! 
! class unwind_event : public checker_event
! {
! public:
!   unwind_event (const event_loc_info &loc_info)
!   : checker_event (event_kind::unwind, loc_info),
!     m_num_frames (1)
!   {
!   }
! 
!   meaning get_meaning () const override;
! 
!   void print_desc (pretty_printer &pp) const final override;
! 
!   int m_num_frames;
  };
  
  /* Concrete subclass of checker_event for use at the end of a path:
*************** public:
*** 676,691 ****
    warning_event (const event_loc_info &loc_info,
  		 const exploded_node *enode,
  		 const state_machine *sm,
! 		 tree var, state_machine::state_t state)
!   : checker_event (EK_WARNING, loc_info),
      m_enode (enode),
      m_sm (sm), m_var (var), m_state (state)
    {
    }
  
    void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
    const exploded_node *get_exploded_node () const { return m_enode; }
  
  private:
--- 881,902 ----
    warning_event (const event_loc_info &loc_info,
  		 const exploded_node *enode,
  		 const state_machine *sm,
! 		 tree var, state_machine::state_t state,
! 		 const program_state *program_state_ = nullptr)
!   : checker_event (event_kind::warning, loc_info),
      m_enode (enode),
      m_sm (sm), m_var (var), m_state (state)
    {
+     if (program_state_)
+       m_program_state = std::make_unique<program_state> (*program_state_);
    }
  
    void print_desc (pretty_printer &pp) const final override;
    meaning get_meaning () const override;
  
+   const program_state *
+   get_program_state () const final override;
+ 
    const exploded_node *get_exploded_node () const { return m_enode; }
  
  private:
*************** private:
*** 693,698 ****
--- 904,912 ----
    const state_machine *m_sm;
    tree m_var;
    state_machine::state_t m_state;
+   /* Optional copy of program state, for when this is different from
+      m_enode's state:  */
+   std::unique_ptr<program_state> m_program_state;
  };
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/checker-path.cc gcc-16.1.0-RC-20260423/gcc/analyzer/checker-path.cc
*** gcc-15.2.0/gcc/analyzer/checker-path.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/checker-path.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
! /* Subclass of diagnostics::paths::path for analyzer diagnostics.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,54 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "fold-const.h"
! #include "diagnostic-path.h"
! #include "options.h"
! #include "cgraph.h"
! #include "cfg.h"
! #include "digraph.h"
! #include "diagnostic-event-id.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
! #include "analyzer/sm.h"
  #include "sbitmap.h"
- #include "bitmap.h"
  #include "ordered-hash-map.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
- #include "gimple-iterator.h"
- #include "inlining-iterator.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
--- 18,39 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "tree-pretty-print.h"
  #include "sbitmap.h"
  #include "ordered-hash-map.h"
+ #include "gimple-iterator.h"
+ #include "inlining-iterator.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/sm.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
*************** along with GCC; see the file COPYING3.
*** 56,62 ****
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/exploded-graph.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 41,46 ----
*************** checker_path::maybe_log (logger *logger,
*** 105,111 ****
      {
        logger->start_log_line ();
        logger->log_partial ("%s[%i]: %s ", desc, i,
! 			   event_kind_to_string (m_events[i]->m_kind));
        m_events[i]->dump (logger->get_printer ());
        logger->end_log_line ();
      }
--- 89,95 ----
      {
        logger->start_log_line ();
        logger->log_partial ("%s[%i]: %s ", desc, i,
! 			   event_kind_to_string (m_events[i]->get_kind ()));
        m_events[i]->dump (logger->get_printer ());
        logger->end_log_line ();
      }
*************** checker_path::add_event (std::unique_ptr
*** 119,125 ****
        m_logger->start_log_line ();
        m_logger->log_partial ("added event[%i]: %s ",
  			     m_events.length (),
! 			     event_kind_to_string (event.get ()->m_kind));
        event.get ()->dump (m_logger->get_printer ());
        m_logger->end_log_line ();
      }
--- 103,109 ----
        m_logger->start_log_line ();
        m_logger->log_partial ("added event[%i]: %s ",
  			     m_events.length (),
! 			     event_kind_to_string (event.get ()->get_kind ()));
        event.get ()->dump (m_logger->get_printer ());
        m_logger->end_log_line ();
      }
*************** checker_path::debug () const
*** 139,145 ****
        fprintf (stderr,
  	       "[%i]: %s \"%s\"\n",
  	       i,
! 	       event_kind_to_string (m_events[i]->m_kind),
  	       event_desc.get ());
      }
  }
--- 123,129 ----
        fprintf (stderr,
  	       "[%i]: %s \"%s\"\n",
  	       i,
! 	       event_kind_to_string (m_events[i]->get_kind ()),
  	       event_desc.get ());
      }
  }
*************** checker_path::add_region_creation_events
*** 164,171 ****
    pd->add_region_creation_events (reg, capacity, loc_info, *this);
  
    if (debug)
!     add_event (make_unique<region_creation_event_debug> (reg, capacity,
! 							 loc_info));
  }
  
  void
--- 148,155 ----
    pd->add_region_creation_events (reg, capacity, loc_info, *this);
  
    if (debug)
!     add_event (std::make_unique<region_creation_event_debug> (reg, capacity,
! 							      loc_info));
  }
  
  void
*************** checker_path::cfg_edge_pair_at_p (unsign
*** 183,190 ****
  {
    if (m_events.length () < idx + 1)
      return false;
!   return (m_events[idx]->m_kind == EK_START_CFG_EDGE
! 	  && m_events[idx + 1]->m_kind == EK_END_CFG_EDGE);
  }
  
  /* Consider a call from "outer" to "middle" which calls "inner",
--- 167,174 ----
  {
    if (m_events.length () < idx + 1)
      return false;
!   return (m_events[idx]->get_kind () == event_kind::start_cfg_edge
! 	  && m_events[idx + 1]->get_kind () == event_kind::end_cfg_edge);
  }
  
  /* Consider a call from "outer" to "middle" which calls "inner",
*************** checker_path::cfg_edge_pair_at_p (unsign
*** 202,239 ****
     (for gcc.dg/analyzer/inlining-4.c):
  
      before[0]:
!       EK_FUNCTION_ENTRY "entry to ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=511c4)
      before[1]:
!       EK_START_CFG_EDGE "following ‘true’ branch (when ‘flag != 0’)..."
        (depth 3 corrected from 1,
         fndecl ‘inner’ corrected from ‘outer’, m_loc=8000000f)
      before[2]:
!       EK_END_CFG_EDGE "...to here"
        (depth 1, fndecl ‘outer’, m_loc=0)
      before[3]:
!       EK_WARNING "here (‘<unknown>’ is in state ‘null’)"
        (depth 1, fndecl ‘outer’, m_loc=80000004)
  
     We want to add inlined_call_events showing the calls, so that
     the above becomes:
  
      after[0]:
!       EK_FUNCTION_ENTRY "entry to ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=511c4)
      after[1]:
!       EK_INLINED_CALL "inlined call to ‘middle’ from ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=53300)
      after[2]:
!       EK_INLINED_CALL "inlined call to ‘inner’ from ‘middle’"
        (depth 2, fndecl ‘middle’, m_loc=4d2e0)
      after[3]:
!       EK_START_CFG_EDGE "following ‘true’ branch (when ‘flag != 0’)..."
        (depth 3 corrected from 1,
         fndecl ‘inner’ corrected from ‘outer’, m_loc=8000000f)
!     after[4]: EK_END_CFG_EDGE "...to here"
        (depth 1, fndecl ‘outer’, m_loc=0)
!     after[5]: EK_WARNING "here (‘<unknown>’ is in state ‘null’)"
        (depth 1, fndecl ‘outer’, m_loc=80000004)
  
      where we've added events between before[0] and before[1] to show
--- 186,223 ----
     (for gcc.dg/analyzer/inlining-4.c):
  
      before[0]:
!       event_kind::function_entry "entry to ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=511c4)
      before[1]:
!       event_kind::start_cfg_edge "following ‘true’ branch (when ‘flag != 0’)..."
        (depth 3 corrected from 1,
         fndecl ‘inner’ corrected from ‘outer’, m_loc=8000000f)
      before[2]:
!       event_kind::end_cfg_edge "...to here"
        (depth 1, fndecl ‘outer’, m_loc=0)
      before[3]:
!       event_kind::warning "here (‘<unknown>’ is in state ‘null’)"
        (depth 1, fndecl ‘outer’, m_loc=80000004)
  
     We want to add inlined_call_events showing the calls, so that
     the above becomes:
  
      after[0]:
!       event_kind::function_entry "entry to ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=511c4)
      after[1]:
!       event_kind::inlined_call "inlined call to ‘middle’ from ‘outer’"
        (depth 1, fndecl ‘outer’, m_loc=53300)
      after[2]:
!       event_kind::inlined_call "inlined call to ‘inner’ from ‘middle’"
        (depth 2, fndecl ‘middle’, m_loc=4d2e0)
      after[3]:
!       event_kind::start_cfg_edge "following ‘true’ branch (when ‘flag != 0’)..."
        (depth 3 corrected from 1,
         fndecl ‘inner’ corrected from ‘outer’, m_loc=8000000f)
!     after[4]: event_kind::end_cfg_edge "...to here"
        (depth 1, fndecl ‘outer’, m_loc=0)
!     after[5]: event_kind::warning "here (‘<unknown>’ is in state ‘null’)"
        (depth 1, fndecl ‘outer’, m_loc=80000004)
  
      where we've added events between before[0] and before[1] to show
*************** checker_path::inject_any_inlined_call_ev
*** 270,276 ****
  	{
  	  logger->start_log_line ();
  	  logger->log_partial ("event[%i]: %s ", ev_idx,
! 			       event_kind_to_string (curr_event->m_kind));
  	  curr_event->dump (logger->get_printer ());
  	  logger->end_log_line ();
  	  for (inlining_iterator iter (curr_event->get_location ());
--- 254,260 ----
  	{
  	  logger->start_log_line ();
  	  logger->log_partial ("event[%i]: %s ", ev_idx,
! 			       event_kind_to_string (curr_event->get_kind ()));
  	  curr_event->dump (logger->get_printer ());
  	  logger->end_log_line ();
  	  for (inlining_iterator iter (curr_event->get_location ());
diff -Nrcpad gcc-15.2.0/gcc/analyzer/checker-path.h gcc-16.1.0-RC-20260423/gcc/analyzer/checker-path.h
*** gcc-15.2.0/gcc/analyzer/checker-path.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/checker-path.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
! /* Subclass of diagnostics::paths::path for analyzer diagnostics.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 26,50 ****
  
  namespace ana {
  
! /* Subclass of diagnostic_path for analyzer diagnostics.  */
  
! class checker_path : public diagnostic_path
  {
  public:
!   checker_path (logger *logger)
!   : diagnostic_path (),
      m_thread ("main"),
      m_logger (logger)
    {}
  
!   /* Implementation of diagnostic_path vfuncs.  */
  
    unsigned num_events () const final override
    {
      return m_events.length ();
    }
  
!   const diagnostic_event & get_event (int idx) const final override
    {
      return *m_events[idx];
    }
--- 26,54 ----
  
  namespace ana {
  
! /* Subclass of diagnostic path for analyzer diagnostics.  */
  
! class checker_path : public diagnostics::paths::path
  {
  public:
!   checker_path (const diagnostics::logical_locations::manager &logical_loc_mgr,
! 		const extrinsic_state &ext_state,
! 		logger *logger)
!   : diagnostics::paths::path (logical_loc_mgr),
!     m_ext_state (ext_state),
      m_thread ("main"),
      m_logger (logger)
    {}
  
!   /* Implementation of diagnostics::paths::path vfuncs.  */
  
    unsigned num_events () const final override
    {
      return m_events.length ();
    }
  
!   const diagnostics::paths::event &
!   get_event (int idx) const final override
    {
      return *m_events[idx];
    }
*************** public:
*** 52,63 ****
    {
      return 1;
    }
!   const diagnostic_thread &
!   get_thread (diagnostic_thread_id_t) const final override
    {
      return m_thread;
    }
  
    checker_event *get_checker_event (int idx)
    {
      return m_events[idx];
--- 56,69 ----
    {
      return 1;
    }
!   const diagnostics::paths::thread &
!   get_thread (diagnostics::paths::thread_id_t) const final override
    {
      return m_thread;
    }
  
+   const extrinsic_state &get_ext_state () const { return m_ext_state; }
+ 
    checker_event *get_checker_event (int idx)
    {
      return m_events[idx];
*************** public:
*** 110,130 ****
      checker_event *e;
      int i;
      FOR_EACH_VEC_ELT (m_events, i, e)
!       e->prepare_for_emission (this, pd, diagnostic_event_id_t (i));
    }
  
    void fixup_locations (pending_diagnostic *pd);
  
    void record_setjmp_event (const exploded_node *enode,
! 			    diagnostic_event_id_t setjmp_emission_id)
    {
      m_setjmp_event_ids.put (enode, setjmp_emission_id);
    }
  
    bool get_setjmp_event (const exploded_node *enode,
! 			 diagnostic_event_id_t *out_emission_id)
    {
!     if (diagnostic_event_id_t *emission_id = m_setjmp_event_ids.get (enode))
        {
  	*out_emission_id = *emission_id;
  	return true;
--- 116,137 ----
      checker_event *e;
      int i;
      FOR_EACH_VEC_ELT (m_events, i, e)
!       e->prepare_for_emission (this, pd, diagnostics::paths::event_id_t (i));
    }
  
    void fixup_locations (pending_diagnostic *pd);
  
    void record_setjmp_event (const exploded_node *enode,
! 			    diagnostics::paths::event_id_t setjmp_emission_id)
    {
      m_setjmp_event_ids.put (enode, setjmp_emission_id);
    }
  
    bool get_setjmp_event (const exploded_node *enode,
! 			 diagnostics::paths::event_id_t *out_emission_id)
    {
!     if (diagnostics::paths::event_id_t *emission_id
! 	  = m_setjmp_event_ids.get (enode))
        {
  	*out_emission_id = *emission_id;
  	return true;
*************** public:
*** 139,144 ****
--- 146,153 ----
  private:
    DISABLE_COPY_AND_ASSIGN(checker_path);
  
+   const extrinsic_state &m_ext_state;
+ 
    simple_diagnostic_thread m_thread;
  
    /* The events that have occurred along this path.  */
*************** private:
*** 147,153 ****
    /* During prepare_for_emission (and after), the setjmp_event for each
       exploded_node *, so that rewind events can refer to them in their
       descriptions.  */
!   hash_map <const exploded_node *, diagnostic_event_id_t> m_setjmp_event_ids;
  
    logger *m_logger;
  };
--- 156,162 ----
    /* During prepare_for_emission (and after), the setjmp_event for each
       exploded_node *, so that rewind events can refer to them in their
       descriptions.  */
!   hash_map <const exploded_node *, diagnostics::paths::event_id_t> m_setjmp_event_ids;
  
    logger *m_logger;
  };
diff -Nrcpad gcc-15.2.0/gcc/analyzer/common.h gcc-16.1.0-RC-20260423/gcc/analyzer/common.h
*** gcc-15.2.0/gcc/analyzer/common.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/common.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,670 ----
+ /* Base header for the analyzer, plus utility functions.
+    Copyright (C) 2019-2026 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_COMMON_H
+ #define GCC_ANALYZER_COMMON_H
+ 
+ #include "config.h"
+ #define INCLUDE_LIST
+ #define INCLUDE_MAP
+ #define INCLUDE_SET
+ #define INCLUDE_STRING
+ #define INCLUDE_VECTOR
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tree.h"
+ #include "function.h"
+ #include "basic-block.h"
+ #include "gimple.h"
+ #include "options.h"
+ #include "bitmap.h"
+ #include "diagnostic-core.h"
+ #include "diagnostics/paths.h"
+ #include "rich-location.h"
+ #include "function.h"
+ #include "json.h"
+ #include "tristate.h"
+ #include "value-range.h"
+ 
+ class graphviz_out;
+ 
+ namespace ana {
+ 
+ /* Forward decls of common types, with indentation to show inheritance.  */
+ 
+ class supergraph;
+ class supernode;
+ class superedge;
+ 
+ class svalue;
+   class region_svalue;
+   class constant_svalue;
+   class unknown_svalue;
+   class poisoned_svalue;
+   class setjmp_svalue;
+   class initial_svalue;
+   class unaryop_svalue;
+   class binop_svalue;
+   class sub_svalue;
+   class repeated_svalue;
+   class bits_within_svalue;
+   class unmergeable_svalue;
+   class placeholder_svalue;
+   class widening_svalue;
+   class compound_svalue;
+   class conjured_svalue;
+   class asm_output_svalue;
+   class const_fn_result_svalue;
+ typedef hash_set<const svalue *> svalue_set;
+ class region;
+   class frame_region;
+   class function_region;
+   class label_region;
+   class decl_region;
+   class symbolic_region;
+   class element_region;
+   class offset_region;
+   class sized_region;
+   class cast_region;
+   class field_region;
+   class string_region;
+   class bit_range_region;
+   class var_arg_region;
+ class region_model_manager;
+ class conjured_purge;
+ struct model_merger;
+ class store_manager;
+ class store;
+ class region_model;
+ class region_model_context;
+   class impl_region_model_context;
+ class call_details;
+ class rejected_constraint;
+ class constraint_manager;
+ class equiv_class;
+ class reachable_regions;
+ class bounded_ranges;
+ class bounded_ranges_manager;
+ 
+ struct pending_location;
+ class pending_diagnostic;
+ class pending_note;
+ class saved_diagnostic;
+ struct event_loc_info;
+ class checker_event;
+   class state_change_event;
+   class warning_event;
+ class checker_path;
+ class extrinsic_state;
+ class sm_state_map;
+ class program_point;
+ class program_state;
+ class exploded_graph;
+ class exploded_node;
+ class exploded_edge;
+ class feasibility_problem;
+ class feasibility_state;
+ class exploded_cluster;
+ class exploded_path;
+ class analysis_plan;
+ class state_purge_map;
+ class state_purge_per_ssa_name;
+ class state_purge_per_decl;
+ class state_change;
+ class rewind_info_t;
+ 
+ class engine;
+ class state_machine;
+ class logger;
+ class visitor;
+ class known_function_manager;
+ class call_summary;
+ class call_summary_replay;
+ struct per_function_data;
+ struct interesting_t;
+ class uncertainty_t;
+ 
+ class feasible_node;
+ 
+ class known_function;
+   class builtin_known_function;
+   class internal_known_function;
+ 
+ class translation_unit;
+ 
+ /* Forward decls of functions.  */
+ 
+ extern void dump_tree (pretty_printer *pp, tree t);
+ extern void dump_quoted_tree (pretty_printer *pp, tree t);
+ extern void print_quoted_type (pretty_printer *pp, tree t);
+ extern void print_expr_for_user (pretty_printer *pp, tree t);
+ extern int readability_comparator (const void *p1, const void *p2);
+ extern int tree_cmp (const void *p1, const void *p2);
+ extern tree fixup_tree_for_diagnostic (tree);
+ extern tree get_diagnostic_tree_for_gassign (const gassign *);
+ 
+ inline bool
+ useful_location_p (location_t loc)
+ {
+   return get_pure_location (loc) != UNKNOWN_LOCATION;
+ }
+ 
+ /* A tree, extended with stack frame information for locals, so that
+    we can distinguish between different values of locals within a potentially
+    recursive callstack.  */
+ 
+ class path_var
+ {
+ public:
+   path_var (tree t, int stack_depth)
+   : m_tree (t), m_stack_depth (stack_depth)
+   {
+     // TODO: ignore stack depth for globals and constants
+   }
+ 
+   bool operator== (const path_var &other) const
+   {
+     return (m_tree == other.m_tree
+ 	    && m_stack_depth == other.m_stack_depth);
+   }
+ 
+   operator bool () const
+   {
+     return m_tree != NULL_TREE;
+   }
+ 
+   void dump (pretty_printer *pp) const;
+ 
+   tree m_tree;
+   int m_stack_depth; // or -1 for globals?
+ };
+ 
+ typedef offset_int bit_offset_t;
+ typedef offset_int bit_size_t;
+ typedef offset_int byte_offset_t;
+ typedef offset_int byte_size_t;
+ 
+ extern bool int_size_in_bits (const_tree type, bit_size_t *out);
+ 
+ extern tree get_field_at_bit_offset (tree record_type, bit_offset_t bit_offset);
+ 
+ /* The location of a region expressesd as an offset relative to a
+    base region.  */
+ 
+ class region_offset
+ {
+ public:
+   region_offset ()
+   : m_base_region (nullptr), m_offset (0), m_sym_offset (nullptr)
+   {
+   }
+ 
+   static region_offset make_concrete (const region *base_region,
+ 				      bit_offset_t offset)
+   {
+     return region_offset (base_region, offset, nullptr);
+   }
+   static region_offset make_symbolic (const region *base_region,
+ 				      const svalue *sym_offset)
+   {
+     return region_offset (base_region, 0, sym_offset);
+   }
+   static region_offset make_byte_offset (const region *base_region,
+ 					 const svalue *num_bytes_sval);
+ 
+   const region *get_base_region () const { return m_base_region; }
+ 
+   bool concrete_p () const { return m_sym_offset == nullptr; }
+   bool symbolic_p () const { return m_sym_offset != nullptr; }
+ 
+   bit_offset_t get_bit_offset () const
+   {
+     gcc_assert (!symbolic_p ());
+     return m_offset;
+   }
+ 
+   bool get_concrete_byte_offset (byte_offset_t *out) const
+   {
+     gcc_assert (!symbolic_p ());
+     if (m_offset % BITS_PER_UNIT == 0)
+       {
+ 	*out = m_offset / BITS_PER_UNIT;
+ 	return true;
+       }
+     return false;
+   }
+ 
+   const svalue *get_symbolic_byte_offset () const
+   {
+     gcc_assert (symbolic_p ());
+     return m_sym_offset;
+   }
+ 
+   const svalue &calc_symbolic_bit_offset (region_model_manager *mgr) const;
+   const svalue *calc_symbolic_byte_offset (region_model_manager *mgr) const;
+ 
+   bool operator== (const region_offset &other) const
+   {
+     return (m_base_region == other.m_base_region
+ 	    && m_offset == other.m_offset
+ 	    && m_sym_offset == other.m_sym_offset);
+   }
+ 
+   void dump_to_pp (pretty_printer *pp, bool) const;
+   void dump (bool) const;
+ 
+ private:
+   region_offset (const region *base_region, bit_offset_t offset,
+ 		 const svalue *sym_offset)
+   : m_base_region (base_region), m_offset (offset), m_sym_offset (sym_offset)
+   {}
+ 
+   const region *m_base_region;
+   bit_offset_t m_offset;
+   const svalue *m_sym_offset;
+ };
+ 
+ extern bool operator< (const region_offset &, const region_offset &);
+ extern bool operator<= (const region_offset &, const region_offset &);
+ extern bool operator> (const region_offset &, const region_offset &);
+ extern bool operator>= (const region_offset &, const region_offset &);
+ 
+ extern location_t get_stmt_location (const gimple *stmt, function *fun);
+ 
+ extern bool compat_types_p (tree src_type, tree dst_type);
+ 
+ /* Abstract base class for simulating the behavior of known functions,
+    supplied by the core of the analyzer, or by plugins.
+    The former are typically implemented in the various kf*.cc  */
+ 
+ class known_function
+ {
+ public:
+   virtual ~known_function () {}
+   virtual bool matches_call_types_p (const call_details &cd) const = 0;
+ 
+   /* A hook for performing additional checks on the expected state
+      at a call.  */
+   virtual void
+   check_any_preconditions (const call_details &) const
+   {
+     // no-op
+   }
+ 
+   virtual void impl_call_pre (const call_details &) const
+   {
+     return;
+   }
+   virtual void impl_call_post (const call_details &) const
+   {
+     return;
+   }
+ 
+   virtual const builtin_known_function *
+   dyn_cast_builtin_kf () const { return nullptr; }
+ };
+ 
+ /* Subclass of known_function for builtin functions.  */
+ 
+ class builtin_known_function : public known_function
+ {
+ public:
+   virtual enum built_in_function builtin_code () const = 0;
+   tree builtin_decl () const {
+     gcc_assert (builtin_code () < END_BUILTINS);
+     return builtin_info[builtin_code ()].decl;
+   }
+ 
+   const builtin_known_function *
+   dyn_cast_builtin_kf () const final override { return this; }
+ };
+ 
+ /* Subclass of known_function for IFN_* functions.  */
+ 
+ class internal_known_function : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &) const final override
+   {
+     /* Types are assumed to be correct.  */
+     return true;
+   }
+ };
+ 
+ /* Abstract subclass of known_function that merely sets the return
+    value of the function (based on function attributes), and assumes
+    it has no side-effects.  */
+ 
+ class pure_known_function_with_default_return : public known_function
+ {
+ public:
+   void impl_call_pre (const call_details &cd) const override;
+ };
+ 
+ extern void register_known_functions (known_function_manager &kfm,
+ 				      region_model_manager &rmm);
+ extern void register_known_analyzer_functions (known_function_manager &kfm);
+ extern void register_known_fd_functions (known_function_manager &kfm);
+ extern void register_known_file_functions (known_function_manager &kfm);
+ extern void register_known_functions_lang_cp (known_function_manager &kfm);
+ extern void register_varargs_builtins (known_function_manager &kfm);
+ 
+ /* An enum for describing the direction of an access to memory.  */
+ 
+ enum class access_direction
+ {
+   read,
+   write
+ };
+ 
+ /* Abstract base class for associating custom data with an
+    exploded_edge, for handling non-standard edges such as
+    rewinding from a longjmp, signal handlers, etc.
+    Also used when "bifurcating" state: splitting the execution
+    path in non-standard ways (e.g. for simulating the various
+    outcomes of "realloc").  */
+ 
+ class custom_edge_info
+ {
+ public:
+   virtual ~custom_edge_info () {}
+ 
+   /* Hook for making .dot label more readable.  */
+   virtual void print (pretty_printer *pp) const = 0;
+ 
+   virtual void
+   get_dot_attrs (const char *&out_style,
+ 		 const char *&out_color) const;
+ 
+   /* Hook for updating STATE when handling bifurcation.  */
+   virtual bool update_state (program_state *state,
+ 			     const exploded_edge *eedge,
+ 			     region_model_context *ctxt) const;
+ 
+   /* Hook for updating MODEL within exploded_path::feasible_p
+      and when handling bifurcation.  */
+   virtual bool update_model (region_model *model,
+ 			     const exploded_edge *eedge,
+ 			     region_model_context *ctxt) const = 0;
+ 
+   virtual void add_events_to_path (checker_path *emission_path,
+ 				   const exploded_edge &eedge,
+ 				   pending_diagnostic &pd) const = 0;
+ 
+   virtual exploded_node *create_enode (exploded_graph &eg,
+ 				       const program_point &point,
+ 				       program_state &&state,
+ 				       exploded_node *enode_for_diag,
+ 				       region_model_context *ctxt) const;
+ };
+ 
+ /* Abstract base class for splitting state.
+ 
+    Most of the state-management code in the analyzer involves
+    modifying state objects in-place, which assumes a single outcome.
+ 
+    This class provides an escape hatch to allow for multiple outcomes
+    for such updates e.g. for modelling multiple outcomes from function
+    calls, such as the various outcomes of "realloc".  */
+ 
+ class path_context
+ {
+ public:
+   virtual ~path_context () {}
+ 
+   /* Hook for clients to split state with a non-standard path.  */
+   virtual void bifurcate (std::unique_ptr<custom_edge_info> info) = 0;
+ 
+   /* Hook for clients to terminate the standard path.  */
+   virtual void terminate_path () = 0;
+ 
+   /* Hook for clients to determine if the standard path has been
+      terminated.  */
+   virtual bool terminate_path_p () const = 0;
+ };
+ 
+ extern tree get_stashed_constant_by_name (const char *name);
+ extern void log_stashed_constants (logger *logger);
+ 
+ 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 diagnostics::paths::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
+ compare_constants (tree lhs_const, enum tree_code op, tree rhs_const);
+ 
+ extern tree
+ get_string_cst_size (const_tree string_cst);
+ 
+ extern tree
+ get_ssa_default_def (const function &fun, tree var);
+ 
+ extern const svalue *
+ strip_types (const svalue *sval, region_model_manager &mgr);
+ 
+ extern region_offset
+ strip_types (const region_offset &offset, region_model_manager &mgr);
+ 
+ extern tree remove_ssa_names (tree expr);
+ 
+ } // 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);
+ extern bool is_setjmp_call_p (const gcall &call);
+ extern bool is_longjmp_call_p (const gcall &call);
+ extern bool is_placement_new_p (const gcall &call);
+ extern bool is_cxa_throw_p (const gcall &call);
+ extern bool is_cxa_rethrow_p (const gcall &call);
+ extern bool is_cxa_end_catch_p (const gcall &call);
+ 
+ extern const char *get_user_facing_name (const gcall &call);
+ 
+ extern void register_analyzer_pass ();
+ 
+ extern label_text make_label_text (bool can_colorize, const char *fmt, ...);
+ extern label_text make_label_text_n (bool can_colorize,
+ 				     unsigned HOST_WIDE_INT n,
+ 				     const char *singular_fmt,
+ 				     const char *plural_fmt, ...);
+ 
+ extern bool fndecl_has_gimple_body_p (tree fndecl);
+ 
+ /* An RAII-style class for pushing/popping cfun within a scope.
+    Doing so ensures we get "In function " announcements
+    from the diagnostics subsystem.  */
+ 
+ class auto_cfun
+ {
+ public:
+   auto_cfun (function *fun) { push_cfun (fun); }
+   ~auto_cfun () { pop_cfun (); }
+ };
+ 
+ /* A template for creating hash traits for a POD type.  */
+ 
+ template <typename Type>
+ struct pod_hash_traits : typed_noop_remove<Type>
+ {
+   typedef Type value_type;
+   typedef Type compare_type;
+   static inline hashval_t hash (value_type);
+   static inline bool equal (const value_type &existing,
+ 			    const value_type &candidate);
+   static inline void mark_deleted (Type &);
+   static inline void mark_empty (Type &);
+   static inline bool is_deleted (Type);
+   static inline bool is_empty (Type);
+ };
+ 
+ /* A hash traits class that uses member functions to implement
+    the various required ops.  */
+ 
+ template <typename Type>
+ struct member_function_hash_traits : public typed_noop_remove<Type>
+ {
+   typedef Type value_type;
+   typedef Type compare_type;
+   static inline hashval_t hash (value_type v) { return v.hash (); }
+   static inline bool equal (const value_type &existing,
+ 			    const value_type &candidate)
+   {
+     return existing == candidate;
+   }
+   static inline void mark_deleted (Type &t) { t.mark_deleted (); }
+   static inline void mark_empty (Type &t) { t.mark_empty (); }
+   static inline bool is_deleted (Type t) { return t.is_deleted (); }
+   static inline bool is_empty (Type t) { return t.is_empty (); }
+ };
+ 
+ /* A map from T::key_t to T* for use in consolidating instances of T.
+    Owns all instances of T.
+    T::key_t should have operator== and be hashable.  */
+ 
+ template <typename T>
+ class consolidation_map
+ {
+ public:
+   typedef typename T::key_t key_t;
+   typedef T instance_t;
+   typedef hash_map<key_t, instance_t *> inner_map_t;
+   typedef typename inner_map_t::iterator iterator;
+ 
+   /* Delete all instances of T.  */
+ 
+   ~consolidation_map ()
+   {
+     for (typename inner_map_t::iterator iter = m_inner_map.begin ();
+ 	 iter != m_inner_map.end (); ++iter)
+       delete (*iter).second;
+   }
+ 
+   /* Get the instance of T for K if one exists, or nullptr.  */
+ 
+   T *get (const key_t &k) const
+   {
+     if (instance_t **slot = const_cast<inner_map_t &> (m_inner_map).get (k))
+       return *slot;
+     return nullptr;
+   }
+ 
+   /* Take ownership of INSTANCE.  */
+ 
+   void put (const key_t &k, T *instance)
+   {
+     m_inner_map.put (k, instance);
+   }
+ 
+   size_t elements () const { return m_inner_map.elements (); }
+ 
+   iterator begin () const { return m_inner_map.begin (); }
+   iterator end () const { return m_inner_map.end (); }
+ 
+ private:
+   inner_map_t m_inner_map;
+ };
+ 
+ /* Disable -Wformat-diag; we want to be able to use pp_printf
+    for logging/dumping without complying with the rules for diagnostics.  */
+ #if __GNUC__ >= 10
+ #pragma GCC diagnostic ignored "-Wformat-diag"
+ #endif
+ 
+ namespace gcc {
+ namespace topics {
+ 
+ /* A topic for messages relating to the analyzer.  */
+ 
+ namespace analyzer_events {
+ 
+ /* A message published by the analyzer when the frontend finishes
+    parsing the TU, to allow it to look up pertinent items using the FE's
+    name-resolution logic.  */
+ 
+ struct on_tu_finished
+ {
+   ana::logger *m_logger;
+   const ana::translation_unit &m_tu;
+ };
+ 
+ /* A message published by the analyzer as it starts up, intended for
+    subsystems/plugins that want to register additional functionality
+    within the analyzer.  */
+ 
+ struct on_ana_init
+ {
+   virtual void
+   register_state_machine (std::unique_ptr<ana::state_machine>) const = 0;
+ 
+   virtual void
+   register_known_function (const char *name,
+ 			   std::unique_ptr<ana::known_function>) const = 0;
+ 
+   virtual ana::logger *
+   get_logger () const = 0;
+ };
+ 
+ /* A message published by the analyzer when it simulates popping a stack
+    frame.  */
+ 
+ struct on_frame_popped
+ {
+   const ana::region_model *m_new_model;
+   const ana::region_model *m_old_model;
+   const ana::svalue *m_retval;
+   ana::region_model_context *m_ctxt;
+ };
+ 
+ struct subscriber {
+ 
+   virtual ~subscriber () = default;
+ 
+   virtual void on_message (const on_tu_finished &) {}
+   virtual void on_message (const on_ana_init &) {}
+   virtual void on_message (const on_frame_popped &) {}
+ };
+ 
+ } // namespace gcc::topics::analyzer_events
+ } // namespace gcc::topics
+ } // namespace gcc
+ 
+ #if !ENABLE_ANALYZER
+ extern void sorry_no_analyzer ();
+ #endif /* #if !ENABLE_ANALYZER */
+ 
+ #endif /* GCC_ANALYZER_COMMON_H */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/complexity.cc gcc-16.1.0-RC-20260423/gcc/analyzer/complexity.cc
*** gcc-15.2.0/gcc/analyzer/complexity.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/complexity.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,51 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
! #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
--- 18,31 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
diff -Nrcpad gcc-15.2.0/gcc/analyzer/complexity.h gcc-16.1.0-RC-20260423/gcc/analyzer/complexity.h
*** gcc-15.2.0/gcc/analyzer/complexity.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/complexity.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Measuring the complexity of svalues/regions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/constraint-manager.cc gcc-16.1.0-RC-20260423/gcc/analyzer/constraint-manager.cc
*** gcc-15.2.0/gcc/analyzer/constraint-manager.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/constraint-manager.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,45 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
  #include "fold-const.h"
- #include "selftest.h"
- #include "diagnostic-core.h"
- #include "graphviz.h"
- #include "analyzer/analyzer.h"
  #include "ordered-hash-map.h"
- #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
- #include "analyzer/supergraph.h"
  #include "sbitmap.h"
! #include "bitmap.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
--- 18,34 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "fold-const.h"
  #include "ordered-hash-map.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "sbitmap.h"
! #include "tree-pretty-print.h"
! 
! #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 48,55 ****
  #include "analyzer/constraint-manager.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
- #include "tree-pretty-print.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 37,42 ----
*************** minus_one (tree cst)
*** 117,123 ****
     closed one.  */
  
  void
! bound::ensure_closed (enum bound_kind bound_kind)
  {
    if (!m_closed)
      {
--- 104,110 ----
     closed one.  */
  
  void
! bound::ensure_closed (enum bound_kind bnd_kind)
  {
    if (!m_closed)
      {
*************** bound::ensure_closed (enum bound_kind bo
*** 126,132 ****
  	 and convert x < 5 into x <= 4.  */
        gcc_assert (CONSTANT_CLASS_P (m_constant));
        gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (m_constant)));
!       m_constant = fold_build2 (bound_kind == BK_UPPER ? MINUS_EXPR : PLUS_EXPR,
  				TREE_TYPE (m_constant),
  				m_constant, integer_one_node);
        gcc_assert (CONSTANT_CLASS_P (m_constant));
--- 113,119 ----
  	 and convert x < 5 into x <= 4.  */
        gcc_assert (CONSTANT_CLASS_P (m_constant));
        gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (m_constant)));
!       m_constant = fold_build2 (bnd_kind == bound_kind::upper ? MINUS_EXPR : PLUS_EXPR,
  				TREE_TYPE (m_constant),
  				m_constant, integer_one_node);
        gcc_assert (CONSTANT_CLASS_P (m_constant));
*************** range::constrained_to_single_element ()
*** 203,210 ****
      return NULL_TREE;
  
    /* Convert any open bounds to closed bounds.  */
!   m_lower_bound.ensure_closed (BK_LOWER);
!   m_upper_bound.ensure_closed (BK_UPPER);
  
    // Are they equal?
    tree comparison = fold_binary (EQ_EXPR, boolean_type_node,
--- 190,197 ----
      return NULL_TREE;
  
    /* Convert any open bounds to closed bounds.  */
!   m_lower_bound.ensure_closed (bound_kind::lower);
!   m_upper_bound.ensure_closed (bound_kind::upper);
  
    // Are they equal?
    tree comparison = fold_binary (EQ_EXPR, boolean_type_node,
*************** range::above_upper_bound (tree rhs_const
*** 303,332 ****
     Return true if feasible; false if infeasible.  */
  
  bool
! range::add_bound (bound b, enum bound_kind bound_kind)
  {
    /* Bail out on floating point constants.  */
    if (!INTEGRAL_TYPE_P (TREE_TYPE (b.m_constant)))
      return true;
  
!   b.ensure_closed (bound_kind);
  
!   switch (bound_kind)
      {
      default:
        gcc_unreachable ();
!     case BK_LOWER:
        /* Discard redundant bounds.  */
        if (m_lower_bound.m_constant)
  	{
! 	  m_lower_bound.ensure_closed (BK_LOWER);
  	  if (tree_int_cst_le (b.m_constant,
  			       m_lower_bound.m_constant))
  	    return true;
  	}
        if (m_upper_bound.m_constant)
  	{
! 	  m_upper_bound.ensure_closed (BK_UPPER);
  	  /* Reject B <= V <= UPPER when B > UPPER.  */
  	  if (!tree_int_cst_le (b.m_constant,
  				m_upper_bound.m_constant))
--- 290,319 ----
     Return true if feasible; false if infeasible.  */
  
  bool
! range::add_bound (bound b, enum bound_kind bnd_kind)
  {
    /* Bail out on floating point constants.  */
    if (!INTEGRAL_TYPE_P (TREE_TYPE (b.m_constant)))
      return true;
  
!   b.ensure_closed (bnd_kind);
  
!   switch (bnd_kind)
      {
      default:
        gcc_unreachable ();
!     case bound_kind::lower:
        /* Discard redundant bounds.  */
        if (m_lower_bound.m_constant)
  	{
! 	  m_lower_bound.ensure_closed (bound_kind::lower);
  	  if (tree_int_cst_le (b.m_constant,
  			       m_lower_bound.m_constant))
  	    return true;
  	}
        if (m_upper_bound.m_constant)
  	{
! 	  m_upper_bound.ensure_closed (bound_kind::upper);
  	  /* Reject B <= V <= UPPER when B > UPPER.  */
  	  if (!tree_int_cst_le (b.m_constant,
  				m_upper_bound.m_constant))
*************** range::add_bound (bound b, enum bound_ki
*** 335,352 ****
        m_lower_bound = b;
        break;
  
!     case BK_UPPER:
        /* Discard redundant bounds.  */
        if (m_upper_bound.m_constant)
  	{
! 	  m_upper_bound.ensure_closed (BK_UPPER);
  	  if (!tree_int_cst_lt (b.m_constant,
  				m_upper_bound.m_constant))
  	    return true;
  	}
        if (m_lower_bound.m_constant)
  	{
! 	  m_lower_bound.ensure_closed (BK_LOWER);
  	  /* Reject LOWER <= V <= B when LOWER > B.  */
  	  if (!tree_int_cst_le (m_lower_bound.m_constant,
  				b.m_constant))
--- 322,339 ----
        m_lower_bound = b;
        break;
  
!     case bound_kind::upper:
        /* Discard redundant bounds.  */
        if (m_upper_bound.m_constant)
  	{
! 	  m_upper_bound.ensure_closed (bound_kind::upper);
  	  if (!tree_int_cst_lt (b.m_constant,
  				m_upper_bound.m_constant))
  	    return true;
  	}
        if (m_lower_bound.m_constant)
  	{
! 	  m_lower_bound.ensure_closed (bound_kind::lower);
  	  /* Reject LOWER <= V <= B when LOWER > B.  */
  	  if (!tree_int_cst_le (m_lower_bound.m_constant,
  				b.m_constant))
*************** range::add_bound (enum tree_code op, tre
*** 371,386 ****
        return true;
      case LT_EXPR:
        /* "V < RHS_CONST"  */
!       return add_bound (bound (rhs_const, false), BK_UPPER);
      case LE_EXPR:
        /* "V <= RHS_CONST"  */
!       return add_bound (bound (rhs_const, true), BK_UPPER);
      case GE_EXPR:
        /* "V >= RHS_CONST"  */
!       return add_bound (bound (rhs_const, true), BK_LOWER);
      case GT_EXPR:
        /* "V > RHS_CONST"  */
!       return add_bound (bound (rhs_const, false), BK_LOWER);
      }
  }
  
--- 358,373 ----
        return true;
      case LT_EXPR:
        /* "V < RHS_CONST"  */
!       return add_bound (bound (rhs_const, false), bound_kind::upper);
      case LE_EXPR:
        /* "V <= RHS_CONST"  */
!       return add_bound (bound (rhs_const, true), bound_kind::upper);
      case GE_EXPR:
        /* "V >= RHS_CONST"  */
!       return add_bound (bound (rhs_const, true), bound_kind::lower);
      case GT_EXPR:
        /* "V > RHS_CONST"  */
!       return add_bound (bound (rhs_const, false), bound_kind::lower);
      }
  }
  
*************** bounded_range::dump (bool show_types) co
*** 449,455 ****
  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;
--- 436,442 ----
  std::unique_ptr<json::object>
  bounded_range::to_json () const
  {
!   auto range_obj = std::make_unique<json::object> ();
    set_json_attr (*range_obj, "lower", m_lower);
    set_json_attr (*range_obj, "upper", m_upper);
    return range_obj;
*************** bounded_range::operator== (const bounded
*** 525,537 ****
  	  && tree_int_cst_equal (m_upper, other.m_upper));
  }
  
  int
  bounded_range::cmp (const bounded_range &br1, const bounded_range &br2)
  {
!   if (int cmp_lower = tree_int_cst_compare (br1.m_lower,
! 					    br2.m_lower))
      return cmp_lower;
!   return tree_int_cst_compare (br1.m_upper, br2.m_upper);
  }
  
  /* struct bounded_ranges.  */
--- 512,539 ----
  	  && tree_int_cst_equal (m_upper, other.m_upper));
  }
  
+ static int
+ cmp_types (const_tree type1, const_tree type2)
+ {
+   int t1 = TYPE_UID (type1);
+   int t2 = TYPE_UID (type2);
+   return t1 - t2;
+ }
+ 
  int
  bounded_range::cmp (const bounded_range &br1, const bounded_range &br2)
  {
!   if (int cmp_lower = tree_int_cst_compare (br1.m_lower, br2.m_lower))
      return cmp_lower;
!   if (int cmp_upper = tree_int_cst_compare (br1.m_upper, br2.m_upper))
!     return cmp_upper;
!   if (int cmp_lower_type = cmp_types (TREE_TYPE (br1.m_lower),
! 				      TREE_TYPE (br2.m_lower)))
!     return cmp_lower_type;
!   if (int cmp_upper_type = cmp_types (TREE_TYPE (br1.m_upper),
! 				      TREE_TYPE (br2.m_upper)))
!     return cmp_upper_type;
!   return 0;
  }
  
  /* struct bounded_ranges.  */
*************** bounded_ranges::canonicalize ()
*** 622,628 ****
      {
        bounded_range *prev = &m_ranges[i - 1];
        const bounded_range *next = &m_ranges[i];
!       if (prev->intersects_p (*next, NULL)
  	  || (can_plus_one_p (prev->m_upper)
  	      && tree_int_cst_equal (plus_one (prev->m_upper),
  				     next->m_lower)))
--- 624,630 ----
      {
        bounded_range *prev = &m_ranges[i - 1];
        const bounded_range *next = &m_ranges[i];
!       if (prev->intersects_p (*next, nullptr)
  	  || (can_plus_one_p (prev->m_upper)
  	      && tree_int_cst_equal (plus_one (prev->m_upper),
  				     next->m_lower)))
*************** bounded_ranges::dump (bool show_types) c
*** 718,724 ****
  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 ());
--- 720,726 ----
  std::unique_ptr<json::value>
  bounded_ranges::to_json () const
  {
!   auto arr_obj = std::make_unique<json::array> ();
  
    for (unsigned i = 0; i < m_ranges.length (); ++i)
      arr_obj->append (m_ranges[i].to_json ());
*************** bounded_ranges_manager::consolidate (bou
*** 943,995 ****
    return inst;
  }
  
- /* Get the bounded_ranges instance for EDGE of SWITCH_STMT,
-    creating it if necessary, and caching it by edge.  */
- 
- const bounded_ranges *
- bounded_ranges_manager::
- get_or_create_ranges_for_switch (const switch_cfg_superedge *edge,
- 				 const gswitch *switch_stmt)
- {
-   /* Look in per-edge cache.  */
-   if (const bounded_ranges ** slot = m_edge_cache.get (edge))
-     return *slot;
- 
-   /* Not yet in cache.  */
-   const bounded_ranges *all_cases_ranges
-     = create_ranges_for_switch (*edge, switch_stmt);
-   m_edge_cache.put (edge, all_cases_ranges);
-   return all_cases_ranges;
- }
- 
- /* Get the bounded_ranges instance for EDGE of SWITCH_STMT,
-    creating it if necessary, for edges for which the per-edge
-    cache has not yet been populated.  */
- 
- const bounded_ranges *
- bounded_ranges_manager::
- create_ranges_for_switch (const switch_cfg_superedge &edge,
- 			  const gswitch *switch_stmt)
- {
-   /* Get the ranges for each case label.  */
-   auto_vec <const bounded_ranges *> case_ranges_vec
-     (gimple_switch_num_labels (switch_stmt));
- 
-   for (tree case_label : edge.get_case_labels ())
-     {
-       /* Get the ranges for this case label.  */
-       const bounded_ranges *case_ranges
- 	= make_case_label_ranges (switch_stmt, case_label);
-       case_ranges_vec.quick_push (case_ranges);
-     }
- 
-   /* Combine all the ranges for each case label into a single collection
-      of ranges.  */
-   const bounded_ranges *all_cases_ranges
-     = get_or_create_union (case_ranges_vec);
-   return all_cases_ranges;
- }
- 
  /* Get the bounded_ranges instance for CASE_LABEL within
     SWITCH_STMT.  */
  
--- 945,950 ----
*************** bounded_ranges_manager::log_stats (logge
*** 1071,1077 ****
  /* equiv_class's default ctor.  */
  
  equiv_class::equiv_class ()
! : m_constant (NULL_TREE), m_cst_sval (NULL), m_vars ()
  {
  }
  
--- 1026,1032 ----
  /* equiv_class's default ctor.  */
  
  equiv_class::equiv_class ()
! : m_constant (NULL_TREE), m_cst_sval (nullptr), m_vars ()
  {
  }
  
*************** equiv_class::print (pretty_printer *pp)
*** 1116,1124 ****
  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));
--- 1071,1079 ----
  std::unique_ptr<json::object>
  equiv_class::to_json () const
  {
!   auto ec_obj = std::make_unique<json::object> ();
  
!   auto sval_arr = std::make_unique<json::array> ();
    for (const svalue *sval : m_vars)
      sval_arr->append (sval->to_json ());
    ec_obj->set ("svals", std::move (sval_arr));
*************** equiv_class::hash () const
*** 1188,1194 ****
     meaningful.  */
  
  bool
! equiv_class::operator== (const equiv_class &other)
  {
    if (m_constant != other.m_constant)
      return false; // TODO: use tree equality here?
--- 1143,1149 ----
     meaningful.  */
  
  bool
! equiv_class::operator== (const equiv_class &other) const
  {
    if (m_constant != other.m_constant)
      return false; // TODO: use tree equality here?
*************** constraint::print (pretty_printer *pp, c
*** 1383,1389 ****
  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));
--- 1338,1344 ----
  std::unique_ptr<json::object>
  constraint::to_json () const
  {
!   auto con_obj = std::make_unique<json::object> ();
  
    con_obj->set_integer ("lhs", m_lhs.as_int ());
    con_obj->set_string ("op", constraint_op_code (m_op));
*************** bounded_ranges_constraint::print (pretty
*** 1471,1477 ****
  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 ());
--- 1426,1432 ----
  std::unique_ptr<json::object>
  bounded_ranges_constraint::to_json () const
  {
!   auto con_obj = std::make_unique<json::object> ();
  
    con_obj->set_integer ("ec", m_ec_id.as_int ());
    con_obj->set ("ranges", m_ranges->to_json ());
*************** debug (const constraint_manager &cm)
*** 1784,1794 ****
  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));
--- 1739,1749 ----
  std::unique_ptr<json::object>
  constraint_manager::to_json () const
  {
!   auto cm_obj = std::make_unique<json::object> ();
  
    /* Equivalence classes.  */
    {
!     auto ec_arr = std::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));
*************** constraint_manager::to_json () const
*** 1796,1802 ****
  
    /* 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));
--- 1751,1757 ----
  
    /* Constraints.  */
    {
!     auto con_arr = std::make_unique<json::array> ();
      for (const constraint &c : m_constraints)
        con_arr->append (c.to_json ());
      cm_obj->set ("constraints", std::move (con_arr));
*************** constraint_manager::to_json () const
*** 1804,1810 ****
  
    /* 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));
--- 1759,1765 ----
  
    /* m_bounded_ranges_constraints.  */
    {
!     auto con_arr = std::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));
*************** constraint_manager::get_ec_bounds (equiv
*** 2578,2589 ****
  
  	      case CONSTRAINT_LT:
  		/* We have "EC_ID < OTHER_CST".  */
! 		result.add_bound (bound (other_cst, false), BK_UPPER);
  		break;
  
  	      case CONSTRAINT_LE:
  		/* We have "EC_ID <= OTHER_CST".  */
! 		result.add_bound (bound (other_cst, true), BK_UPPER);
  		break;
  	      }
  	}
--- 2533,2544 ----
  
  	      case CONSTRAINT_LT:
  		/* We have "EC_ID < OTHER_CST".  */
! 		result.add_bound (bound (other_cst, false), bound_kind::upper);
  		break;
  
  	      case CONSTRAINT_LE:
  		/* We have "EC_ID <= OTHER_CST".  */
! 		result.add_bound (bound (other_cst, true), bound_kind::upper);
  		break;
  	      }
  	}
*************** constraint_manager::get_ec_bounds (equiv
*** 2600,2612 ****
  	      case CONSTRAINT_LT:
  		/* We have "OTHER_CST < EC_ID"
  		   i.e. "EC_ID > OTHER_CST".  */
! 		result.add_bound (bound (other_cst, false), BK_LOWER);
  		break;
  
  	      case CONSTRAINT_LE:
  		/* We have "OTHER_CST <= EC_ID"
  		   i.e. "EC_ID >= OTHER_CST".  */
! 		result.add_bound (bound (other_cst, true), BK_LOWER);
  		break;
  	      }
  	}
--- 2555,2567 ----
  	      case CONSTRAINT_LT:
  		/* We have "OTHER_CST < EC_ID"
  		   i.e. "EC_ID > OTHER_CST".  */
! 		result.add_bound (bound (other_cst, false), bound_kind::lower);
  		break;
  
  	      case CONSTRAINT_LE:
  		/* We have "OTHER_CST <= EC_ID"
  		   i.e. "EC_ID >= OTHER_CST".  */
! 		result.add_bound (bound (other_cst, true), bound_kind::lower);
  		break;
  	      }
  	}
*************** on_liveness_change (const svalue_set &li
*** 3037,3043 ****
  		    const region_model *model)
  {
    dead_svalue_purger p (live_svalues, model);
!   purge (p, NULL);
  }
  
  class svalue_purger
--- 2992,2998 ----
  		    const region_model *model)
  {
    dead_svalue_purger p (live_svalues, model);
!   purge (p, nullptr);
  }
  
  class svalue_purger
*************** void
*** 3060,3066 ****
  constraint_manager::purge_state_involving (const svalue *sval)
  {
    svalue_purger p (sval);
!   purge (p, NULL);
  }
  
  /* Comparator for use by constraint_manager::canonicalize.
--- 3015,3021 ----
  constraint_manager::purge_state_involving (const svalue *sval)
  {
    svalue_purger p (sval);
!   purge (p, nullptr);
  }
  
  /* Comparator for use by constraint_manager::canonicalize.
*************** public:
*** 3204,3210 ****
    {
      /* Special-case for widening.  */
      if (lhs->get_kind () == SK_WIDENING)
!       if (!m_cm_b->get_equiv_class_by_svalue (lhs, NULL))
  	{
  	  /* LHS isn't constrained within m_cm_b.  */
  	  bool sat = m_out->add_constraint (lhs, code, rhs);
--- 3159,3165 ----
    {
      /* Special-case for widening.  */
      if (lhs->get_kind () == SK_WIDENING)
!       if (!m_cm_b->get_equiv_class_by_svalue (lhs, nullptr))
  	{
  	  /* LHS isn't constrained within m_cm_b.  */
  	  bool sat = m_out->add_constraint (lhs, code, rhs);
*************** test_constraint_conditions ()
*** 3528,3534 ****
      ADD_SAT_CONSTRAINT (model, x, EQ_EXPR, x);
      ADD_SAT_CONSTRAINT (model, int_42, EQ_EXPR, int_42);
      /* ...even when done directly via svalues: */
!     const svalue *sval_int_42 = model.get_rvalue (int_42, NULL);
      bool sat = model.get_constraints ()->add_constraint (sval_int_42,
  							  EQ_EXPR,
  							  sval_int_42);
--- 3483,3489 ----
      ADD_SAT_CONSTRAINT (model, x, EQ_EXPR, x);
      ADD_SAT_CONSTRAINT (model, int_42, EQ_EXPR, int_42);
      /* ...even when done directly via svalues: */
!     const svalue *sval_int_42 = model.get_rvalue (int_42, nullptr);
      bool sat = model.get_constraints ()->add_constraint (sval_int_42,
  							  EQ_EXPR,
  							  sval_int_42);
*************** test_purging (void)
*** 4317,4324 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should have an empty constraint_manager.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 0);
--- 4272,4279 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should have an empty constraint_manager.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 0);
*************** test_purging (void)
*** 4335,4342 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 2);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should just have the constraint/ECs involving b != 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 2);
--- 4290,4297 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 2);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should just have the constraint/ECs involving b != 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 2);
*************** test_purging (void)
*** 4354,4361 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should just have the EC involving b == 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 1);
--- 4309,4316 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should just have the EC involving b == 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 1);
*************** test_purging (void)
*** 4372,4379 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 0);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should have an empty constraint_manager.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 0);
--- 4327,4334 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 0);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should have an empty constraint_manager.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 0);
*************** test_purging (void)
*** 4390,4397 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should just have the constraint/ECs involving b != 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 2);
--- 4345,4352 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 1);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should just have the constraint/ECs involving b != 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 2);
*************** test_purging (void)
*** 4409,4416 ****
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 0);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, NULL);
!     model.purge_state_involving (sval_a, NULL);
      model.canonicalize ();
      /* We should just have the EC involving b == 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 1);
--- 4364,4371 ----
      ASSERT_EQ (model.get_constraints ()->m_constraints.length (), 0);
  
      /* Purge state for "a".  */
!     const svalue *sval_a = model.get_rvalue (a, nullptr);
!     model.purge_state_involving (sval_a, nullptr);
      model.canonicalize ();
      /* We should just have the EC involving b == 0.  */
      ASSERT_EQ (model.get_constraints ()->m_equiv_classes.length (), 1);
*************** test_bounded_range ()
*** 4472,4479 ****
    bounded_range br_u8_64_128 (u8_64, u8_128);
    ASSERT_DUMP_BOUNDED_RANGE_EQ (br_u8_64_128, "[64, 128]");
  
!   ASSERT_FALSE (br_u8_0.intersects_p (br_u8_64_128, NULL));
!   ASSERT_FALSE (br_u8_64_128.intersects_p (br_u8_0, NULL));
  
    bounded_range br_u8_128_255 (u8_128, u8_255);
    ASSERT_DUMP_BOUNDED_RANGE_EQ (br_u8_128_255, "[128, 255]");
--- 4427,4434 ----
    bounded_range br_u8_64_128 (u8_64, u8_128);
    ASSERT_DUMP_BOUNDED_RANGE_EQ (br_u8_64_128, "[64, 128]");
  
!   ASSERT_FALSE (br_u8_0.intersects_p (br_u8_64_128, nullptr));
!   ASSERT_FALSE (br_u8_64_128.intersects_p (br_u8_0, nullptr));
  
    bounded_range br_u8_128_255 (u8_128, u8_255);
    ASSERT_DUMP_BOUNDED_RANGE_EQ (br_u8_128_255, "[128, 255]");
diff -Nrcpad gcc-15.2.0/gcc/analyzer/constraint-manager.h gcc-16.1.0-RC-20260423/gcc/analyzer/constraint-manager.h
*** gcc-15.2.0/gcc/analyzer/constraint-manager.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/constraint-manager.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Tracking equivalence classes and constraints at a point on an execution path.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 25,34 ****
  
  class constraint_manager;
  
! enum bound_kind
  {
!   BK_LOWER,
!   BK_UPPER
  };
  
  /* One of the end-points of a range.  */
--- 25,34 ----
  
  class constraint_manager;
  
! enum class bound_kind
  {
!   lower,
!   upper
  };
  
  /* One of the end-points of a range.  */
*************** template <> struct default_hash_traits<b
*** 172,191 ****
  
  namespace ana {
  
! /* An object to own and consolidate bounded_ranges instances.
!    This also caches the mapping from switch_cfg_superedge
!    bounded_ranges instances, so that get_or_create_ranges_for_switch is
!    memoized.  */
  
  class bounded_ranges_manager
  {
  public:
    ~bounded_ranges_manager ();
  
-   const bounded_ranges *
-   get_or_create_ranges_for_switch (const switch_cfg_superedge *edge,
- 				   const gswitch *switch_stmt);
- 
    const bounded_ranges *get_or_create_empty ();
    const bounded_ranges *get_or_create_point (const_tree value);
    const bounded_ranges *get_or_create_range (const_tree lower_bound,
--- 172,184 ----
  
  namespace ana {
  
! /* An object to own and consolidate bounded_ranges instances.  */
  
  class bounded_ranges_manager
  {
  public:
    ~bounded_ranges_manager ();
  
    const bounded_ranges *get_or_create_empty ();
    const bounded_ranges *get_or_create_point (const_tree value);
    const bounded_ranges *get_or_create_range (const_tree lower_bound,
*************** public:
*** 200,214 ****
  
    void log_stats (logger *logger, bool show_objs) const;
  
- private:
-   const bounded_ranges *
-   create_ranges_for_switch (const switch_cfg_superedge &edge,
- 			    const gswitch *switch_stmt);
- 
    const bounded_ranges *
    make_case_label_ranges (const gswitch *switch_stmt,
  			  tree case_label);
  
    const bounded_ranges *consolidate (bounded_ranges *);
  
    struct hash_traits_t : public typed_noop_remove<bounded_ranges *>
--- 193,203 ----
  
    void log_stats (logger *logger, bool show_objs) const;
  
    const bounded_ranges *
    make_case_label_ranges (const gswitch *switch_stmt,
  			  tree case_label);
  
+ private:
    const bounded_ranges *consolidate (bounded_ranges *);
  
    struct hash_traits_t : public typed_noop_remove<bounded_ranges *>
*************** private:
*** 226,233 ****
      {
        return k->get_hash ();
      }
!     static inline bool is_empty (key_type k) { return k == NULL; }
!     static inline void mark_empty (key_type &k) { k = NULL; }
      static inline bool is_deleted (key_type k)
      {
        return k == reinterpret_cast<key_type> (1);
--- 215,222 ----
      {
        return k->get_hash ();
      }
!     static inline bool is_empty (key_type k) { return k == nullptr; }
!     static inline void mark_empty (key_type &k) { k = nullptr; }
      static inline bool is_deleted (key_type k)
      {
        return k == reinterpret_cast<key_type> (1);
*************** private:
*** 241,250 ****
    };
    typedef hash_map<bounded_ranges *, bounded_ranges *, traits_t> map_t;
    map_t m_map;
- 
-   typedef hash_map<const switch_cfg_superedge *,
- 		   const bounded_ranges *> edge_cache_t;
-   edge_cache_t m_edge_cache;
  };
  
  /* An equivalence class within a constraint manager: a set of
--- 230,235 ----
*************** public:
*** 258,264 ****
    equiv_class (const equiv_class &other);
  
    hashval_t hash () const;
!   bool operator== (const equiv_class &other);
  
    void add (const svalue *sval);
    bool del (const svalue *sval);
--- 243,249 ----
    equiv_class (const equiv_class &other);
  
    hashval_t hash () const;
!   bool operator== (const equiv_class &other) const;
  
    void add (const svalue *sval);
    bool del (const svalue *sval);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/diagnostic-manager.cc gcc-16.1.0-RC-20260423/gcc/analyzer/diagnostic-manager.cc
*** gcc-15.2.0/gcc/analyzer/diagnostic-manager.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/diagnostic-manager.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,39 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "input.h"
! #include "diagnostic-core.h"
! #include "pretty-print.h"
! #include "gcc-rich-location.h"
  #include "gimple-pretty-print.h"
! #include "function.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "bitmap.h"
! #include "ordered-hash-map.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 18,34 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "cfg.h"
  #include "gimple-pretty-print.h"
! #include "gimple-iterator.h"
! #include "inlining-iterator.h"
! #include "cgraph.h"
! #include "digraph.h"
! #include "gcc-rich-location.h"
! #include "diagnostics/sarif-sink.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** along with GCC; see the file COPYING3.
*** 43,55 ****
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "inlining-iterator.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
--- 38,43 ----
*************** along with GCC; see the file COPYING3.
*** 57,64 ****
  #include "analyzer/feasible-graph.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/reachability.h"
- #include "make-unique.h"
- #include "diagnostic-format-sarif.h"
  
  #if ENABLE_ANALYZER
  
--- 45,50 ----
*************** namespace ana {
*** 66,71 ****
--- 52,90 ----
  
  class feasible_worklist;
  
+ // struct pending_location
+ 
+ pending_location::pending_location ()
+ : m_enode (nullptr),
+   m_event_loc_info (UNKNOWN_LOCATION, NULL_TREE, 0)
+ {
+ }
+ 
+ pending_location::pending_location (exploded_node *enode)
+ : m_enode (enode),
+   m_event_loc_info (enode)
+ {
+ }
+ 
+ pending_location::pending_location (exploded_node *enode,
+ 				    location_t loc)
+ : m_enode (enode),
+   m_event_loc_info (enode)
+ {
+   m_event_loc_info.m_loc = loc;
+ }
+ 
+ std::unique_ptr<json::object>
+ pending_location::to_json () const
+ {
+   auto ploc_obj = std::make_unique<json::object> ();
+ 
+   if (m_enode)
+     ploc_obj->set_integer ("enode", m_enode->m_index);
+   // TODO: also store m_event_loc_info
+   return ploc_obj;
+ }
+ 
  /* State for finding the shortest feasible exploded_path for a
     saved_diagnostic.
     This is shared between all diagnostics, so that we avoid repeating work.  */
*************** class epath_finder
*** 75,81 ****
  public:
    epath_finder (const exploded_graph &eg)
    : m_eg (eg),
!     m_sep (NULL)
    {
      /* This is shared by all diagnostics, but only needed if
         !flag_analyzer_feasibility.  */
--- 94,100 ----
  public:
    epath_finder (const exploded_graph &eg)
    : m_eg (eg),
!     m_sep (nullptr)
    {
      /* This is shared by all diagnostics, but only needed if
         !flag_analyzer_feasibility.  */
*************** public:
*** 90,96 ****
  
    std::unique_ptr<exploded_path>
    get_best_epath (const exploded_node *target_enode,
- 		  const gimple *target_stmt,
  		  const pending_diagnostic &pd,
  		  const char *desc, unsigned diag_idx,
  		  std::unique_ptr<feasibility_problem> *out_problem);
--- 109,114 ----
*************** private:
*** 100,106 ****
  
    std::unique_ptr<exploded_path>
    explore_feasible_paths (const exploded_node *target_enode,
- 			  const gimple *target_stmt,
  			  const pending_diagnostic &pd,
  			  const char *desc, unsigned diag_idx);
    bool
--- 118,123 ----
*************** private:
*** 108,114 ****
  			 const trimmed_graph &tg,
  			 feasible_graph *fg,
  			 const exploded_node *target_enode,
- 			 const gimple *target_stmt,
  			 const pending_diagnostic &pd,
  			 unsigned diag_idx,
  			 std::unique_ptr<exploded_path> *out_best_path) const;
--- 125,130 ----
*************** private:
*** 130,143 ****
  
  /* class epath_finder.  */
  
! /* Get the "best" exploded_path for reaching ENODE from the origin,
     returning ownership of it to the caller.
  
-    If TARGET_STMT is non-NULL, then check for reaching that stmt
-    within ENODE.
- 
     Ideally we want to report the shortest feasible path.
!    Return NULL if we could not find a feasible path
     (when flag_analyzer_feasibility is true).
  
     If flag_analyzer_feasibility is false, then simply return the
--- 146,156 ----
  
  /* class epath_finder.  */
  
! /* Get the "best" exploded_path for reaching TARGET_ENODE from the origin,
     returning ownership of it to the caller.
  
     Ideally we want to report the shortest feasible path.
!    Return nullptr if we could not find a feasible path
     (when flag_analyzer_feasibility is true).
  
     If flag_analyzer_feasibility is false, then simply return the
*************** private:
*** 148,155 ****
     Write any feasibility_problem to *OUT_PROBLEM.  */
  
  std::unique_ptr<exploded_path>
! epath_finder::get_best_epath (const exploded_node *enode,
! 			      const gimple *target_stmt,
  			      const pending_diagnostic &pd,
  			      const char *desc, unsigned diag_idx,
  			      std::unique_ptr<feasibility_problem> *out_problem)
--- 161,167 ----
     Write any feasibility_problem to *OUT_PROBLEM.  */
  
  std::unique_ptr<exploded_path>
! epath_finder::get_best_epath (const exploded_node *target_enode,
  			      const pending_diagnostic &pd,
  			      const char *desc, unsigned diag_idx,
  			      std::unique_ptr<feasibility_problem> *out_problem)
*************** epath_finder::get_best_epath (const expl
*** 157,166 ****
    logger *logger = get_logger ();
    LOG_SCOPE (logger);
  
!   unsigned snode_idx = enode->get_supernode ()->m_index;
    if (logger)
      logger->log ("considering %qs at EN: %i, SN: %i (sd: %i)",
! 		 desc, enode->m_index, snode_idx, diag_idx);
  
    /* State-merging means that not every path in the egraph corresponds
       to a feasible one w.r.t. states.
--- 169,178 ----
    logger *logger = get_logger ();
    LOG_SCOPE (logger);
  
!   unsigned snode_id = target_enode->get_supernode ()->m_id;
    if (logger)
      logger->log ("considering %qs at EN: %i, SN: %i (sd: %i)",
! 		 desc, target_enode->m_index, snode_id, diag_idx);
  
    /* State-merging means that not every path in the egraph corresponds
       to a feasible one w.r.t. states.
*************** epath_finder::get_best_epath (const expl
*** 174,185 ****
        if (logger)
  	logger->log ("trying to find shortest feasible path");
        if (std::unique_ptr<exploded_path> epath
! 	    = explore_feasible_paths (enode, target_stmt, pd, desc, diag_idx))
  	{
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sd: %i)"
  			 " with feasible path (length: %i)",
! 			 desc, enode->m_index, snode_idx, diag_idx,
  			 epath->length ());
  	  return epath;
  	}
--- 186,197 ----
        if (logger)
  	logger->log ("trying to find shortest feasible path");
        if (std::unique_ptr<exploded_path> epath
! 	    = explore_feasible_paths (target_enode, pd, desc, diag_idx))
  	{
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sd: %i)"
  			 " with feasible path (length: %i)",
! 			 desc, target_enode->m_index, snode_id, diag_idx,
  			 epath->length ());
  	  return epath;
  	}
*************** epath_finder::get_best_epath (const expl
*** 188,195 ****
  	  if (logger)
  	    logger->log ("rejecting %qs at EN: %i, SN: %i (sd: %i)"
  			 " due to not finding feasible path",
! 			 desc, enode->m_index, snode_idx, diag_idx);
! 	  return NULL;
  	}
      }
    else
--- 200,207 ----
  	  if (logger)
  	    logger->log ("rejecting %qs at EN: %i, SN: %i (sd: %i)"
  			 " due to not finding feasible path",
! 			 desc, target_enode->m_index, snode_id, diag_idx);
! 	  return nullptr;
  	}
      }
    else
*************** epath_finder::get_best_epath (const expl
*** 202,215 ****
        if (logger)
  	logger->log ("trying to find shortest path ignoring feasibility");
        gcc_assert (m_sep);
!       std::unique_ptr<exploded_path> epath
! 	= make_unique<exploded_path> (m_sep->get_shortest_path (enode));
        if (epath->feasible_p (logger, out_problem, m_eg.get_engine (), &m_eg))
  	{
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sn: %i)"
  			 " with feasible path (length: %i)",
! 			 desc, enode->m_index, snode_idx, diag_idx,
  			 epath->length ());
  	}
        else
--- 214,228 ----
        if (logger)
  	logger->log ("trying to find shortest path ignoring feasibility");
        gcc_assert (m_sep);
!       auto epath
! 	= std::make_unique<exploded_path>
! 	    (m_sep->get_shortest_path (target_enode));
        if (epath->feasible_p (logger, out_problem, m_eg.get_engine (), &m_eg))
  	{
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sn: %i)"
  			 " with feasible path (length: %i)",
! 			 desc, target_enode->m_index, snode_id, diag_idx,
  			 epath->length ());
  	}
        else
*************** epath_finder::get_best_epath (const expl
*** 217,223 ****
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sn: %i) (length: %i)"
  			 " despite infeasible path (due to %qs)",
! 			 desc, enode->m_index, snode_idx, diag_idx,
  			 epath->length (),
  			 "-fno-analyzer-feasibility");
  	}
--- 230,236 ----
  	  if (logger)
  	    logger->log ("accepting %qs at EN: %i, SN: %i (sn: %i) (length: %i)"
  			 " despite infeasible path (due to %qs)",
! 			 desc, target_enode->m_index, snode_id, diag_idx,
  			 epath->length (),
  			 "-fno-analyzer-feasibility");
  	}
*************** class feasible_worklist
*** 233,239 ****
  {
  public:
    feasible_worklist (const shortest_paths<eg_traits, exploded_path> &sep)
!   : m_queue (key_t (*this, NULL)),
      m_sep (sep)
    {
    }
--- 246,252 ----
  {
  public:
    feasible_worklist (const shortest_paths<eg_traits, exploded_path> &sep)
!   : m_queue (key_t (*this, nullptr)),
      m_sep (sep)
    {
    }
*************** private:
*** 344,352 ****
     TARGET_ENODE by iteratively building a feasible_graph, in which
     every path to a feasible_node is feasible by construction.
  
-    If TARGET_STMT is non-NULL, then check for reaching that stmt
-    within TARGET_ENODE.
- 
     We effectively explore the tree of feasible paths in order of shortest
     path until we either find a feasible path to TARGET_ENODE, or hit
     a limit and give up.
--- 357,362 ----
*************** private:
*** 390,396 ****
  
  std::unique_ptr<exploded_path>
  epath_finder::explore_feasible_paths (const exploded_node *target_enode,
- 				      const gimple *target_stmt,
  				      const pending_diagnostic &pd,
  				      const char *desc, unsigned diag_idx)
  {
--- 400,405 ----
*************** epath_finder::explore_feasible_paths (co
*** 428,439 ****
       a limit.  */
  
    /* Set this if we find a feasible path to TARGET_ENODE.  */
!   std::unique_ptr<exploded_path> best_path = NULL;
  
    {
      auto_checking_feasibility sentinel (mgr);
  
!     while (process_worklist_item (&worklist, tg, &fg, target_enode, target_stmt,
  				  pd, diag_idx, &best_path))
        {
  	/* Empty; the work is done within process_worklist_item.  */
--- 437,448 ----
       a limit.  */
  
    /* Set this if we find a feasible path to TARGET_ENODE.  */
!   std::unique_ptr<exploded_path> best_path = nullptr;
  
    {
      auto_checking_feasibility sentinel (mgr);
  
!     while (process_worklist_item (&worklist, tg, &fg, target_enode,
  				  pd, diag_idx, &best_path))
        {
  	/* Empty; the work is done within process_worklist_item.  */
*************** process_worklist_item (feasible_worklist
*** 478,484 ****
  		       const trimmed_graph &tg,
  		       feasible_graph *fg,
  		       const exploded_node *target_enode,
- 		       const gimple *target_stmt,
  		       const pending_diagnostic &pd,
  		       unsigned diag_idx,
  		       std::unique_ptr<exploded_path> *out_best_path) const
--- 487,492 ----
*************** process_worklist_item (feasible_worklist
*** 520,526 ****
        std::unique_ptr<rejected_constraint> rc;
        if (succ_state.maybe_update_for_edge (logger, succ_eedge, nullptr, &rc))
  	{
! 	  gcc_assert (rc == NULL);
  	  feasible_node *succ_fnode
  	    = fg->add_node (succ_eedge->m_dest,
  			    succ_state,
--- 528,534 ----
        std::unique_ptr<rejected_constraint> rc;
        if (succ_state.maybe_update_for_edge (logger, succ_eedge, nullptr, &rc))
  	{
! 	  gcc_assert (rc == nullptr);
  	  feasible_node *succ_fnode
  	    = fg->add_node (succ_eedge->m_dest,
  			    succ_state,
*************** process_worklist_item (feasible_worklist
*** 537,543 ****
  			     " (length: %i)",
  			     target_enode->m_index, diag_idx,
  			     succ_fnode->get_path_length ());
! 	      if (!pd.check_valid_fpath_p (*succ_fnode, target_stmt))
  		{
  		  if (logger)
  		    logger->log ("rejecting feasible path due to"
--- 545,551 ----
  			     " (length: %i)",
  			     target_enode->m_index, diag_idx,
  			     succ_fnode->get_path_length ());
! 	      if (!pd.check_valid_fpath_p (*succ_fnode))
  		{
  		  if (logger)
  		    logger->log ("rejecting feasible path due to"
*************** dump_trimmed_graph (const exploded_node
*** 624,630 ****
    pp_printf (&pp, "%s.%s.%i.to-en%i.tg.dot",
  	     dump_base_name, desc, diag_idx, target_enode->m_index);
    char *filename = xstrdup (pp_formatted_text (&pp));
!   tg.dump_dot (filename, NULL, args);
    free (filename);
  }
  
--- 632,638 ----
    pp_printf (&pp, "%s.%s.%i.to-en%i.tg.dot",
  	     dump_base_name, desc, diag_idx, target_enode->m_index);
    char *filename = xstrdup (pp_formatted_text (&pp));
!   tg.dump_dot (filename, nullptr, args);
    free (filename);
  }
  
*************** epath_finder::dump_feasible_graph (const
*** 642,648 ****
    pp_printf (&pp, "%s.%s.%i.to-en%i.fg.dot",
  	     dump_base_name, desc, diag_idx, target_enode->m_index);
    char *filename = xstrdup (pp_formatted_text (&pp));
!   fg.dump_dot (filename, NULL, args);
    free (filename);
  }
  
--- 650,656 ----
    pp_printf (&pp, "%s.%s.%i.to-en%i.fg.dot",
  	     dump_base_name, desc, diag_idx, target_enode->m_index);
    char *filename = xstrdup (pp_formatted_text (&pp));
!   fg.dump_dot (filename, nullptr, args);
    free (filename);
  }
  
*************** epath_finder::dump_feasible_path (const
*** 668,685 ****
  /* saved_diagnostic's ctor.  */
  
  saved_diagnostic::saved_diagnostic (const state_machine *sm,
! 				    const pending_location &ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
  				    std::unique_ptr<pending_diagnostic> d,
  				    unsigned idx)
! : m_sm (sm), m_enode (ploc.m_enode), m_snode (ploc.m_snode),
!   m_stmt (ploc.m_stmt),
!   /* stmt_finder could be on-stack; we want our own copy that can
!      outlive that.  */
!   m_stmt_finder (ploc.m_finder ? ploc.m_finder->clone () : nullptr),
!   m_loc (ploc.m_loc),
    m_var (var), m_sval (sval), m_state (state),
    m_d (std::move (d)), m_trailing_eedge (nullptr),
    m_idx (idx),
--- 676,689 ----
  /* saved_diagnostic's ctor.  */
  
  saved_diagnostic::saved_diagnostic (const state_machine *sm,
! 				    pending_location &&ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
  				    std::unique_ptr<pending_diagnostic> d,
  				    unsigned idx)
! : m_sm (sm),
!   m_ploc (std::move (ploc)),
    m_var (var), m_sval (sval), m_state (state),
    m_d (std::move (d)), m_trailing_eedge (nullptr),
    m_idx (idx),
*************** saved_diagnostic::saved_diagnostic (cons
*** 688,694 ****
  {
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to this diagnostic.  */
!   gcc_assert (m_enode);
  }
  
  bool
--- 692,704 ----
  {
    /* We must have an enode in order to be able to look for paths
       through the exploded_graph to this diagnostic.  */
!   gcc_assert (m_ploc.m_enode);
! }
! 
! const supernode *
! saved_diagnostic::get_supernode () const
! {
!   return m_ploc.m_enode->get_supernode ();
  }
  
  bool
*************** saved_diagnostic::operator== (const save
*** 699,710 ****
    for (unsigned i = 0; i < m_notes.length (); i++)
      if (!m_notes[i]->equal_p (*other.m_notes[i]))
        return false;
    return (m_sm == other.m_sm
  	  /* We don't compare m_enode.  */
! 	  && m_snode == other.m_snode
! 	  && m_stmt == other.m_stmt
! 	  /* We don't compare m_stmt_finder.  */
! 	  && m_loc == other.m_loc
  	  && pending_diagnostic::same_tree_p (m_var, other.m_var)
  	  && m_state == other.m_state
  	  && m_d->equal_p (*other.m_d)
--- 709,724 ----
    for (unsigned i = 0; i < m_notes.length (); i++)
      if (!m_notes[i]->equal_p (*other.m_notes[i]))
        return false;
+ 
+   // Don't deduplicate dump_path_diagnostic instances
+   if (!strcmp (m_d->get_kind (), "dump_path_diagnostic"))
+     return this == &other;
+ 
    return (m_sm == other.m_sm
  	  /* We don't compare m_enode.  */
! 	  && get_supernode () == other.get_supernode ()
! 	  && (m_ploc.m_event_loc_info.m_loc
! 	      == other.m_ploc.m_event_loc_info.m_loc)
  	  && pending_diagnostic::same_tree_p (m_var, other.m_var)
  	  && m_state == other.m_state
  	  && m_d->equal_p (*other.m_d)
*************** saved_diagnostic::add_event (std::unique
*** 731,738 ****
  
  /* Return a new json::object of the form
     {"sm": optional str,
!     "enode": int,
!     "snode": int,
      "sval": optional str,
      "state": optional str,
      "path_length": optional int,
--- 745,751 ----
  
  /* Return a new json::object of the form
     {"sm": optional str,
!     "ploc": {},
      "sval": optional str,
      "state": optional str,
      "path_length": optional int,
*************** saved_diagnostic::add_event (std::unique
*** 742,753 ****
  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)
--- 755,765 ----
  std::unique_ptr<json::object>
  saved_diagnostic::to_json () const
  {
!   auto sd_obj = std::make_unique<json::object> ();
  
    if (m_sm)
      sd_obj->set_string ("sm", m_sm->get_name ());
!   sd_obj->set ("ploc", m_ploc.to_json ());
    if (m_sval)
      sd_obj->set ("sval", m_sval->to_json ());
    if (m_state)
*************** saved_diagnostic::to_json () const
*** 757,772 ****
    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;
-      stmt_finder *m_stmt_finder;
-      tree m_var;
-      exploded_edge *m_trailing_eedge;
-      enum status m_status;
-      feasibility_problem *m_problem;
-      auto_delete_vec <pending_note> m_notes;
-   */
- 
    return sd_obj;
  }
  
--- 769,774 ----
*************** saved_diagnostic::dump_as_dot_node (pret
*** 801,812 ****
  	}
        pp_newline (pp);
      }
-   if (m_stmt)
-     {
-       pp_string (pp, "stmt: ");
-       pp_gimple_stmt_1 (pp, m_stmt, 0, (dump_flags_t)0);
-       pp_newline (pp);
-     }
    if (m_var)
      pp_printf (pp, "var: %qE\n", m_var);
    if (m_sval)
--- 803,808 ----
*************** saved_diagnostic::dump_as_dot_node (pret
*** 832,841 ****
      }
  }
  
! /* Use PF to find the best exploded_path for this saved_diagnostic,
     and store it in m_best_epath.
-    If we don't have a specific location in m_loc and m_stmt is still NULL,
-    use m_stmt_finder on the epath to populate m_stmt.
     Return true if a best path was found.  */
  
  bool
--- 828,835 ----
      }
  }
  
! /* Use PF to find the best exploded_path for this saved_diagnostic, if any,
     and store it in m_best_epath.
     Return true if a best path was found.  */
  
  bool
*************** saved_diagnostic::calc_best_epath (epath
*** 843,868 ****
  {
    logger *logger = pf->get_logger ();
    LOG_SCOPE (logger);
!   m_problem = NULL;
  
!   m_best_epath = pf->get_best_epath (m_enode, m_stmt,
  				     *m_d, m_d->get_kind (), m_idx,
  				     &m_problem);
  
    /* Handle failure to find a feasible path.  */
!   if (m_best_epath == NULL)
      return false;
  
    gcc_assert (m_best_epath);
-   if (m_loc == UNKNOWN_LOCATION)
-     {
-       if (m_stmt == NULL)
- 	{
- 	  gcc_assert (m_stmt_finder);
- 	  m_stmt = m_stmt_finder->find_stmt (*m_best_epath);
- 	}
-       gcc_assert (m_stmt);
-     }
  
    return true;
  }
--- 837,853 ----
  {
    logger *logger = pf->get_logger ();
    LOG_SCOPE (logger);
!   m_problem = nullptr;
  
!   m_best_epath = pf->get_best_epath (m_ploc.m_enode,
  				     *m_d, m_d->get_kind (), m_idx,
  				     &m_problem);
  
    /* Handle failure to find a feasible path.  */
!   if (m_best_epath == nullptr)
      return false;
  
    gcc_assert (m_best_epath);
  
    return true;
  }
*************** compatible_epath_p (const exploded_path
*** 985,993 ****
  bool
  saved_diagnostic::supercedes_p (const saved_diagnostic &other) const
  {
!   /* They should be at the same stmt.  */
!   if (m_stmt != other.m_stmt)
      return false;
    /* return early if OTHER won't be superseded anyway.  */
    if (!m_d->supercedes_p (*other.m_d))
      return false;
--- 970,978 ----
  bool
  saved_diagnostic::supercedes_p (const saved_diagnostic &other) const
  {
!   if (get_supernode () != other.get_supernode ())
      return false;
+ 
    /* return early if OTHER won't be superseded anyway.  */
    if (!m_d->supercedes_p (*other.m_d))
      return false;
*************** saved_diagnostic::emit_any_notes () cons
*** 1024,1043 ****
     This extra data is intended for use when debugging the analyzer.  */
  
  void
! saved_diagnostic::maybe_add_sarif_properties (sarif_object &result_obj) const
  {
!   sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/saved_diagnostic/"
    if (m_sm)
      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)
--- 1009,1022 ----
     This extra data is intended for use when debugging the analyzer.  */
  
  void
! saved_diagnostic::
! maybe_add_sarif_properties (diagnostics::sarif_object &result_obj) const
  {
!   auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/saved_diagnostic/"
    if (m_sm)
      props.set_string (PROPERTY_PREFIX "sm", m_sm->get_name ());
!   props.set (PROPERTY_PREFIX "ploc", m_ploc.to_json ());
    if (m_var)
      props.set (PROPERTY_PREFIX "var", tree_to_json (m_var));
    if (m_sval)
*************** saved_diagnostic::maybe_add_sarif_proper
*** 1048,1057 ****
    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));
  	}
--- 1027,1036 ----
    props.set_integer (PROPERTY_PREFIX "idx", m_idx);
    if (m_duplicates.length () > 0)
      {
!       auto duplicates_arr = std::make_unique<json::array> ();
        for (auto iter : m_duplicates)
  	{
! 	  auto sd_obj = std::make_unique<diagnostics::sarif_object> ();
  	  iter->maybe_add_sarif_properties (*sd_obj);
  	  duplicates_arr->append (std::move (sd_obj));
  	}
*************** private:
*** 1123,1142 ****
    const feasibility_problem *m_feasibility_problem;
  };
  
- /* Determine the emission location for PD at STMT in FUN.  */
- 
- static location_t
- get_emission_location (const gimple *stmt, function *fun,
- 		       const pending_diagnostic &pd)
- {
-   location_t loc = get_stmt_location (stmt, fun);
- 
-   /* Allow the pending_diagnostic to fix up the location.  */
-   loc = pd.fixup_location (loc, true);
- 
-   return loc;
- }
- 
  /* class diagnostic_manager.  */
  
  /* diagnostic_manager's ctor.  */
--- 1102,1107 ----
*************** diagnostic_manager::diagnostic_manager (
*** 1153,1159 ****
  
  bool
  diagnostic_manager::add_diagnostic (const state_machine *sm,
! 				    const pending_location &ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
--- 1118,1124 ----
  
  bool
  diagnostic_manager::add_diagnostic (const state_machine *sm,
! 				    pending_location &&ploc,
  				    tree var,
  				    const svalue *sval,
  				    state_machine::state_t state,
*************** diagnostic_manager::add_diagnostic (cons
*** 1166,1198 ****
    gcc_assert (ploc.m_enode);
  
    /* If this warning is ultimately going to be rejected by a -Wno-analyzer-*
!      flag, reject it now.
!      We can only do this for diagnostics where we already know the stmt,
!      and thus can determine the emission location.  */
!   if (ploc.m_stmt)
!     {
!       location_t loc
! 	= get_emission_location (ploc.m_stmt, ploc.m_snode->m_fun, *d);
!       int option = d->get_controlling_option ();
!       if (!warning_enabled_at (loc, option))
! 	{
! 	  if (get_logger ())
! 	    get_logger ()->log ("rejecting disabled warning %qs",
! 				d->get_kind ());
! 	  m_num_disabled_diagnostics++;
! 	  return false;
! 	}
!     }
  
    saved_diagnostic *sd
!     = new saved_diagnostic (sm, ploc, var, sval, state, std::move (d),
  			    m_saved_diagnostics.length ());
    m_saved_diagnostics.safe_push (sd);
!   ploc.m_enode->add_diagnostic (sd);
    if (get_logger ())
      log ("adding saved diagnostic %i at SN %i to EN %i: %qs",
  	 sd->get_index (),
! 	 ploc.m_snode->m_index, ploc.m_enode->m_index, sd->m_d->get_kind ());
    return true;
  }
  
--- 1131,1167 ----
    gcc_assert (ploc.m_enode);
  
    /* If this warning is ultimately going to be rejected by a -Wno-analyzer-*
!      flag, reject it now.  */
!   {
!     location_t loc = ploc.m_event_loc_info.m_loc;
!     loc = d->fixup_location (loc, true);
!     int option = d->get_controlling_option ();
!     if (!warning_enabled_at (loc, option))
!       {
! 	if (get_logger ())
! 	  get_logger ()->log ("rejecting disabled warning %qs",
! 			      d->get_kind ());
! 	m_num_disabled_diagnostics++;
! 	return false;
!       }
!   }
  
    saved_diagnostic *sd
!     = new saved_diagnostic (sm,
! 			    std::move (ploc),
! 			    var,
! 			    sval,
! 			    state,
! 			    std::move (d),
  			    m_saved_diagnostics.length ());
    m_saved_diagnostics.safe_push (sd);
!   sd->m_ploc.m_enode->add_diagnostic (sd);
    if (get_logger ())
      log ("adding saved diagnostic %i at SN %i to EN %i: %qs",
  	 sd->get_index (),
! 	 sd->get_supernode ()->m_id,
! 	 sd->m_ploc.m_enode->m_index,
! 	 sd->m_d->get_kind ());
    return true;
  }
  
*************** diagnostic_manager::add_diagnostic (cons
*** 1201,1211 ****
     Take ownership of D (or delete it).  */
  
  bool
! diagnostic_manager::add_diagnostic (const pending_location &ploc,
  				    std::unique_ptr<pending_diagnostic> d)
  {
    gcc_assert (ploc.m_enode);
!   return add_diagnostic (NULL, ploc, NULL_TREE, NULL, 0, std::move (d));
  }
  
  /* Add PN to the most recent saved_diagnostic.  */
--- 1170,1181 ----
     Take ownership of D (or delete it).  */
  
  bool
! diagnostic_manager::add_diagnostic (pending_location &&ploc,
  				    std::unique_ptr<pending_diagnostic> d)
  {
    gcc_assert (ploc.m_enode);
!   return add_diagnostic (nullptr, std::move (ploc),
! 			 NULL_TREE, nullptr, 0, std::move (d));
  }
  
  /* Add PN to the most recent saved_diagnostic.  */
*************** diagnostic_manager::add_event (std::uniq
*** 1242,1251 ****
  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)
--- 1212,1221 ----
  std::unique_ptr<json::object>
  diagnostic_manager::to_json () const
  {
!   auto dm_obj = std::make_unique<json::object> ();
  
    {
!     auto sd_arr = std::make_unique<json::array> ();
      int i;
      saved_diagnostic *sd;
      FOR_EACH_VEC_ELT (m_saved_diagnostics, i, sd)
*************** class dedupe_key
*** 1265,1296 ****
  {
  public:
    dedupe_key (const saved_diagnostic &sd)
!   : m_sd (sd), m_stmt (sd.m_stmt), m_loc (sd.m_loc)
    {
-     gcc_assert (m_stmt || m_loc != UNKNOWN_LOCATION);
    }
  
    hashval_t hash () const
    {
      inchash::hash hstate;
-     hstate.add_ptr (m_stmt);
      // TODO: m_sd
      return hstate.end ();
    }
    bool operator== (const dedupe_key &other) const
    {
      return (m_sd == other.m_sd
- 	    && m_stmt == other.m_stmt
  	    && m_loc == other.m_loc);
    }
  
!   location_t get_location () const
!   {
!     if (m_loc != UNKNOWN_LOCATION)
!       return m_loc;
!     gcc_assert (m_stmt);
!     return m_stmt->location;
!   }
  
    /* A qsort comparator for use by dedupe_winners::emit_best
       to sort them into location_t order.  */
--- 1235,1258 ----
  {
  public:
    dedupe_key (const saved_diagnostic &sd)
!   : m_sd (sd),
!     m_loc (sd.m_ploc.m_event_loc_info.m_loc)
    {
    }
  
    hashval_t hash () const
    {
      inchash::hash hstate;
      // TODO: m_sd
      return hstate.end ();
    }
    bool operator== (const dedupe_key &other) const
    {
      return (m_sd == other.m_sd
  	    && m_loc == other.m_loc);
    }
  
!   location_t get_location () const { return m_loc; }
  
    /* A qsort comparator for use by dedupe_winners::emit_best
       to sort them into location_t order.  */
*************** public:
*** 1316,1322 ****
    }
  
    const saved_diagnostic &m_sd;
-   const gimple *m_stmt;
    location_t m_loc;
  };
  
--- 1278,1283 ----
*************** public:
*** 1350,1356 ****
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = NULL;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
--- 1311,1317 ----
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = nullptr;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
*************** public:
*** 1360,1366 ****
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == NULL;
    }
    static const bool empty_zero_p = true;
  };
--- 1321,1327 ----
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == nullptr;
    }
    static const bool empty_zero_p = true;
  };
*************** public:
*** 1392,1397 ****
--- 1353,1366 ----
      if (!sd->calc_best_epath (pf))
        return;
  
+     const exploded_path *epath = sd->get_best_epath ();
+     gcc_assert (epath);
+ 
+     /* Now we have an exploded path, use it for pending_locations that are
+        affected by such things, and for deduplication.  */
+     if (sd->m_ploc.m_fixer_for_epath)
+       sd->m_ploc.m_fixer_for_epath->fixup_for_epath (*epath, sd->m_ploc);
+ 
      dedupe_key *key = new dedupe_key (*sd);
      if (saved_diagnostic **slot = m_map.get (key))
        {
*************** diagnostic_manager::emit_saved_diagnosti
*** 1520,1527 ****
        saved_diagnostic *sd;
        FOR_EACH_VEC_ELT (m_saved_diagnostics, i, sd)
  	log ("[%i] sd: %qs at EN: %i, SN: %i",
! 	     i, sd->m_d->get_kind (), sd->m_enode->m_index,
! 	     sd->m_snode->m_index);
      }
  
    if (m_saved_diagnostics.length () == 0)
--- 1489,1496 ----
        saved_diagnostic *sd;
        FOR_EACH_VEC_ELT (m_saved_diagnostics, i, sd)
  	log ("[%i] sd: %qs at EN: %i, SN: %i",
! 	     i, sd->m_d->get_kind (), sd->m_ploc.m_enode->m_index,
! 	     sd->get_supernode ()->m_id);
      }
  
    if (m_saved_diagnostics.length () == 0)
*************** diagnostic_manager::emit_saved_diagnosti
*** 1548,1559 ****
    best_candidates.emit_best (this, eg);
  }
  
! /* Custom subclass of diagnostic_metadata which, for SARIF output,
     populates the property bag of the diagnostic's "result" object
     with information from the saved_diagnostic and the
     pending_diagnostic.  */
  
! class pending_diagnostic_metadata : public diagnostic_metadata
  {
  public:
    pending_diagnostic_metadata (const saved_diagnostic &sd)
--- 1517,1528 ----
    best_candidates.emit_best (this, eg);
  }
  
! /* Custom subclass of diagnostics::metadata which, for SARIF output,
     populates the property bag of the diagnostic's "result" object
     with information from the saved_diagnostic and the
     pending_diagnostic.  */
  
! class pending_diagnostic_metadata : public diagnostics::metadata
  {
  public:
    pending_diagnostic_metadata (const saved_diagnostic &sd)
*************** public:
*** 1562,1568 ****
    }
  
    void
!   maybe_add_sarif_properties (sarif_object &result_obj) const override
    {
      m_sd.maybe_add_sarif_properties (result_obj);
    }
--- 1531,1538 ----
    }
  
    void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
!     const override
    {
      m_sd.maybe_add_sarif_properties (result_obj);
    }
*************** diagnostic_manager::emit_saved_diagnosti
*** 1581,1587 ****
  {
    LOG_SCOPE (get_logger ());
    log ("sd[%i]: %qs at SN: %i",
!        sd.get_index (), sd.m_d->get_kind (), sd.m_snode->m_index);
    log ("num dupes: %i", sd.get_num_dupes ());
  
    const exploded_path *epath = sd.get_best_epath ();
--- 1551,1557 ----
  {
    LOG_SCOPE (get_logger ());
    log ("sd[%i]: %qs at SN: %i",
!        sd.get_index (), sd.m_d->get_kind (), sd.get_supernode ()->m_id);
    log ("num dupes: %i", sd.get_num_dupes ());
  
    const exploded_path *epath = sd.get_best_epath ();
*************** diagnostic_manager::emit_saved_diagnosti
*** 1590,1598 ****
    /* Precompute all enodes from which the diagnostic is reachable.  */
    path_builder pb (eg, *epath, sd.get_feasibility_problem (), sd);
  
!   /* This is the diagnostic_path subclass that will be built for
       the diagnostic.  */
!   checker_path emission_path (get_logger ());
  
    /* Populate emission_path with a full description of EPATH.  */
    build_emission_path (pb, *epath, &emission_path);
--- 1560,1570 ----
    /* Precompute all enodes from which the diagnostic is reachable.  */
    path_builder pb (eg, *epath, sd.get_feasibility_problem (), sd);
  
!   /* This is the diagnostics::paths::path subclass that will be built for
       the diagnostic.  */
!   checker_path emission_path (get_logical_location_manager (),
! 			      eg.get_ext_state (),
! 			      get_logger ());
  
    /* Populate emission_path with a full description of EPATH.  */
    build_emission_path (pb, *epath, &emission_path);
*************** diagnostic_manager::emit_saved_diagnosti
*** 1605,1623 ****
       generated.  These don't get pruned, as they are probably pertinent.  */
    sd.add_any_saved_events (emission_path);
  
!   /* Add a final event to the path, covering the diagnostic itself.
!      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);
    }
  
--- 1577,1586 ----
       generated.  These don't get pruned, as they are probably pertinent.  */
    sd.add_any_saved_events (emission_path);
  
!   /* Add a final event to the path, covering the diagnostic itself.  */
    {
      const exploded_node *const enode = epath->get_final_enode ();
!     sd.m_d->add_final_event (sd.m_sm, enode, sd.m_ploc.m_event_loc_info,
  			     sd.m_var, sd.m_state, &emission_path);
    }
  
*************** diagnostic_manager::emit_saved_diagnosti
*** 1625,1639 ****
       trailing eedge stashed, add any events for it.  This is for use
       in handling longjmp, to show where a longjmp is rewinding to.  */
    if (sd.m_trailing_eedge)
!     add_events_for_eedge (pb, *sd.m_trailing_eedge, &emission_path, NULL);
  
    emission_path.inject_any_inlined_call_events (get_logger ());
  
    emission_path.prepare_for_emission (sd.m_d.get ());
  
!   location_t loc = sd.m_loc;
!   if (loc == UNKNOWN_LOCATION)
!     loc = get_emission_location (sd.m_stmt, sd.m_snode->m_fun, *sd.m_d);
  
    /* Allow the pending_diagnostic to fix up the locations of events.  */
    emission_path.fixup_locations (sd.m_d.get ());
--- 1588,1601 ----
       trailing eedge stashed, add any events for it.  This is for use
       in handling longjmp, to show where a longjmp is rewinding to.  */
    if (sd.m_trailing_eedge)
!     add_events_for_eedge (pb, *sd.m_trailing_eedge, &emission_path, nullptr);
  
    emission_path.inject_any_inlined_call_events (get_logger ());
  
    emission_path.prepare_for_emission (sd.m_d.get ());
  
!   location_t loc = sd.m_ploc.m_event_loc_info.m_loc;
!   loc = sd.m_d->fixup_location (loc, true);
  
    /* Allow the pending_diagnostic to fix up the locations of events.  */
    emission_path.fixup_locations (sd.m_d.get ());
*************** diagnostic_manager::emit_saved_diagnosti
*** 1642,1648 ****
    rich_loc.set_path (&emission_path);
  
    auto_diagnostic_group d;
!   auto_cfun sentinel (sd.m_snode->m_fun);
    pending_diagnostic_metadata m (sd);
    diagnostic_emission_context diag_ctxt (sd, rich_loc, m, get_logger ());
    if (sd.m_d->emit (diag_ctxt))
--- 1604,1610 ----
    rich_loc.set_path (&emission_path);
  
    auto_diagnostic_group d;
!   auto_cfun sentinel (sd.get_supernode ()->m_fun);
    pending_diagnostic_metadata m (sd);
    diagnostic_emission_context diag_ctxt (sd, rich_loc, m, get_logger ());
    if (sd.m_d->emit (diag_ctxt))
*************** diagnostic_manager::emit_saved_diagnosti
*** 1668,1673 ****
--- 1630,1644 ----
      }
  }
  
+ const diagnostics::logical_locations::manager &
+ diagnostic_manager::get_logical_location_manager () const
+ {
+   gcc_assert (global_dc);
+   auto mgr = global_dc->get_logical_location_manager ();
+   gcc_assert (mgr);
+   return *mgr;
+ }
+ 
  /* Emit a "path" of events to EMISSION_PATH describing the exploded path
     EPATH within EG.  */
  
*************** diagnostic_manager::build_emission_path
*** 1696,1706 ****
  	    const region *base_reg = reg->get_base_region ();
  	    if (tree decl = base_reg->maybe_get_decl ())
  	      if (DECL_P (decl)
! 		  && DECL_SOURCE_LOCATION (decl) != UNKNOWN_LOCATION)
  		{
  		  emission_path->add_region_creation_events
  		    (pb.get_pending_diagnostic (),
! 		     reg, NULL,
  		     event_loc_info (DECL_SOURCE_LOCATION (decl),
  				     NULL_TREE,
  				     0),
--- 1667,1677 ----
  	    const region *base_reg = reg->get_base_region ();
  	    if (tree decl = base_reg->maybe_get_decl ())
  	      if (DECL_P (decl)
! 		  && useful_location_p (DECL_SOURCE_LOCATION (decl)))
  		{
  		  emission_path->add_region_creation_events
  		    (pb.get_pending_diagnostic (),
! 		     reg, nullptr,
  		     event_loc_info (DECL_SOURCE_LOCATION (decl),
  				     NULL_TREE,
  				     0),
*************** diagnostic_manager::add_event_on_final_n
*** 1759,1765 ****
  	= src_model->get_dynamic_extents (base_reg);
  	    const svalue *new_extents
  	= dst_model->get_dynamic_extents (base_reg);
! 	    if (old_extents == NULL && new_extents != NULL)
  	      switch (base_reg->get_kind ())
  		{
  		default:
--- 1730,1736 ----
  	= src_model->get_dynamic_extents (base_reg);
  	    const svalue *new_extents
  	= dst_model->get_dynamic_extents (base_reg);
! 	    if (old_extents == nullptr && new_extents != nullptr)
  	      switch (base_reg->get_kind ())
  		{
  		default:
*************** public:
*** 1806,1831 ****
      if (&sm != m_pb.get_sm ())
        return false;
      const exploded_node *src_node = m_eedge.m_src;
-     const program_point &src_point = src_node->get_point ();
-     const int src_stack_depth = src_point.get_stack_depth ();
      const exploded_node *dst_node = m_eedge.m_dest;
!     const gimple *stmt = src_point.get_stmt ();
!     const supernode *supernode = src_point.get_supernode ();
      const program_state &dst_state = dst_node->get_state ();
  
-     int stack_depth = src_stack_depth;
- 
      m_emission_path->add_event
!       (make_unique<state_change_event> (supernode,
! 					stmt,
! 					stack_depth,
! 					sm,
! 					nullptr,
! 					src_sm_val,
! 					dst_sm_val,
! 					nullptr,
! 					dst_state,
! 					src_node));
      return false;
    }
  
--- 1777,1796 ----
      if (&sm != m_pb.get_sm ())
        return false;
      const exploded_node *src_node = m_eedge.m_src;
      const exploded_node *dst_node = m_eedge.m_dest;
!     const gimple *stmt = m_eedge.maybe_get_stmt ();
      const program_state &dst_state = dst_node->get_state ();
  
      m_emission_path->add_event
!       (std::make_unique<state_change_event> (m_eedge.m_src,
! 					     stmt,
! 					     sm,
! 					     nullptr,
! 					     src_sm_val,
! 					     dst_sm_val,
! 					     nullptr,
! 					     dst_state,
! 					     src_node));
      return false;
    }
  
*************** public:
*** 1837,1876 ****
    {
      if (&sm != m_pb.get_sm ())
        return false;
      const exploded_node *src_node = m_eedge.m_src;
-     const program_point &src_point = src_node->get_point ();
-     const int src_stack_depth = src_point.get_stack_depth ();
      const exploded_node *dst_node = m_eedge.m_dest;
!     const gimple *stmt = src_point.get_stmt ();
!     const supernode *supernode = src_point.get_supernode ();
      const program_state &dst_state = dst_node->get_state ();
  
-     int stack_depth = src_stack_depth;
- 
-     if (m_eedge.m_sedge
- 	&& m_eedge.m_sedge->m_kind == SUPEREDGE_CFG_EDGE)
-       {
- 	supernode = src_point.get_supernode ();
- 	stmt = supernode->get_last_stmt ();
- 	stack_depth = src_stack_depth;
-       }
- 
-     /* Bulletproofing for state changes at calls/returns;
-        TODO: is there a better way? */
-     if (!stmt)
-       return false;
- 
      m_emission_path->add_event
!       (make_unique<state_change_event> (supernode,
! 					stmt,
! 					stack_depth,
! 					sm,
! 					sval,
! 					src_sm_val,
! 					dst_sm_val,
! 					dst_origin_sval,
! 					dst_state,
! 					src_node));
      return false;
    }
  
--- 1802,1823 ----
    {
      if (&sm != m_pb.get_sm ())
        return false;
+ 
      const exploded_node *src_node = m_eedge.m_src;
      const exploded_node *dst_node = m_eedge.m_dest;
!     const gimple *stmt = m_eedge.maybe_get_stmt ();
      const program_state &dst_state = dst_node->get_state ();
  
      m_emission_path->add_event
!       (std::make_unique<state_change_event> (m_eedge.m_src,
! 					     stmt,
! 					     sm,
! 					     sval,
! 					     src_sm_val,
! 					     dst_sm_val,
! 					     dst_origin_sval,
! 					     dst_state,
! 					     src_node));
      return false;
    }
  
*************** for_each_state_change (const program_sta
*** 1940,2124 ****
    return false;
  }
  
- /* An sm_context for adding state_change_event on assignments to NULL,
-    where the default state isn't m_start.  Storing such state in the
-    sm_state_map would lead to bloat of the exploded_graph, so we want
-    to leave it as a default state, and inject state change events here
-    when we have a diagnostic.
-    Find transitions of constants, for handling on_zero_assignment.  */
- 
- struct null_assignment_sm_context : public sm_context
- {
-   null_assignment_sm_context (int sm_idx,
- 			      const state_machine &sm,
- 			      const program_state *old_state,
- 			      const program_state *new_state,
- 			      const gimple *stmt,
- 			      const program_point *point,
- 			      checker_path *emission_path,
- 			      const extrinsic_state &ext_state)
-   : sm_context (sm_idx, sm), m_old_state (old_state), m_new_state (new_state),
-     m_stmt (stmt), m_point (point), m_emission_path (emission_path),
-     m_ext_state (ext_state)
-   {
-   }
- 
-   tree get_fndecl_for_call (const gcall */*call*/) final override
-   {
-     return NULL_TREE;
-   }
- 
-   state_machine::state_t get_state (const gimple *stmt ATTRIBUTE_UNUSED,
- 				    tree var) final override
-   {
-     const svalue *var_old_sval
-       = m_old_state->m_region_model->get_rvalue (var, NULL);
-     const sm_state_map *old_smap = m_old_state->m_checker_states[m_sm_idx];
- 
-     state_machine::state_t current
-       = old_smap->get_state (var_old_sval, m_ext_state);
- 
-     return current;
-   }
- 
-   state_machine::state_t get_state (const gimple *stmt ATTRIBUTE_UNUSED,
- 				    const svalue *sval) final override
-   {
-     const sm_state_map *old_smap = m_old_state->m_checker_states[m_sm_idx];
-     state_machine::state_t current = old_smap->get_state (sval, m_ext_state);
-     return current;
-   }
- 
-   void set_next_state (const gimple *stmt,
- 		       tree var,
- 		       state_machine::state_t to,
- 		       tree origin ATTRIBUTE_UNUSED) final override
-   {
-     state_machine::state_t from = get_state (stmt, var);
-     if (from != m_sm.get_start_state ())
-       return;
-     if (!is_transition_to_null (to))
-       return;
- 
-     const svalue *var_new_sval
-       = m_new_state->m_region_model->get_rvalue (var, NULL);
- 
-     const supernode *supernode = m_point->get_supernode ();
-     int stack_depth = m_point->get_stack_depth ();
- 
-     m_emission_path->add_event
-       (make_unique<state_change_event> (supernode,
- 					m_stmt,
- 					stack_depth,
- 					m_sm,
- 					var_new_sval,
- 					from, to,
- 					nullptr,
- 					*m_new_state,
- 					nullptr));
-   }
- 
-   void set_next_state (const gimple *stmt,
- 		       const svalue *sval,
- 		       state_machine::state_t to,
- 		       tree origin ATTRIBUTE_UNUSED) final override
-   {
-     state_machine::state_t from = get_state (stmt, sval);
-     if (from != m_sm.get_start_state ())
-       return;
-     if (!is_transition_to_null (to))
-       return;
- 
-     const supernode *supernode = m_point->get_supernode ();
-     int stack_depth = m_point->get_stack_depth ();
- 
-     m_emission_path->add_event
-       (make_unique<state_change_event> (supernode,
- 					m_stmt,
- 					stack_depth,
- 					m_sm,
- 					sval,
- 					from, to,
- 					nullptr,
- 					*m_new_state,
- 					nullptr));
-   }
- 
-   void warn (const supernode *, const gimple *,
- 	     tree, std::unique_ptr<pending_diagnostic>) final override
-   {
-   }
-   void warn (const supernode *, const gimple *,
- 	     const svalue *, std::unique_ptr<pending_diagnostic>) final override
-   {
-   }
- 
-   tree get_diagnostic_tree (tree expr) final override
-   {
-     return expr;
-   }
- 
-   tree get_diagnostic_tree (const svalue *sval) final override
-   {
-     return m_new_state->m_region_model->get_representative_tree (sval);
-   }
- 
-   state_machine::state_t get_global_state () const final override
-   {
-     return 0;
-   }
- 
-   void set_global_state (state_machine::state_t) final override
-   {
-     /* No-op.  */
-   }
- 
-   void clear_all_per_svalue_state () final override
-   {
-     /* No-op.  */
-   }
- 
-   void on_custom_transition (custom_transition *) final override
-   {
-   }
- 
-   tree is_zero_assignment (const gimple *stmt) final override
-   {
-     const gassign *assign_stmt = dyn_cast <const gassign *> (stmt);
-     if (!assign_stmt)
-      return NULL_TREE;
-     if (const svalue *sval
- 	= m_new_state->m_region_model->get_gassign_result (assign_stmt, NULL))
-       if (tree cst = sval->maybe_get_constant ())
- 	if (::zerop(cst))
- 	  return gimple_assign_lhs (assign_stmt);
-     return NULL_TREE;
-   }
- 
-   const program_state *get_old_program_state () const final override
-   {
-     return m_old_state;
-   }
-   const program_state *get_new_program_state () const final override
-   {
-     return m_new_state;
-   }
- 
-   /* We only care about transitions to the "null" state
-      within sm-malloc.  Special-case this.  */
-   static bool is_transition_to_null (state_machine::state_t s)
-   {
-     return !strcmp (s->get_name (), "null");
-   }
- 
-   const program_state *m_old_state;
-   const program_state *m_new_state;
-   const gimple *m_stmt;
-   const program_point *m_point;
-   checker_path *m_emission_path;
-   const extrinsic_state &m_ext_state;
- };
- 
  /* Subroutine of diagnostic_manager::build_emission_path.
     Add any events for EEDGE to EMISSION_PATH.  */
  
--- 1887,1892 ----
*************** diagnostic_manager::add_events_for_eedge
*** 2168,2279 ****
    for_each_state_change (src_state, dst_state, pb.get_ext_state (),
  			 &visitor);
  
    /* Allow non-standard edges to add events, e.g. when rewinding from
       longjmp to a setjmp.  */
    if (eedge.m_custom_info)
!     eedge.m_custom_info->add_events_to_path (emission_path, eedge);
  
!   /* Add events for superedges, function entries, and for statements.  */
!   switch (dst_point.get_kind ())
      {
!     default:
!       break;
!     case PK_BEFORE_SUPERNODE:
!       if (src_point.get_kind () == PK_AFTER_SUPERNODE)
! 	{
! 	  if (eedge.m_sedge)
! 	    add_events_for_superedge (pb, eedge, emission_path);
! 	}
!       /* Add function entry events.  */
!       if (dst_point.get_supernode ()->entry_p ())
  	{
! 	  pb.get_pending_diagnostic ()->add_function_entry_event
! 	    (eedge, emission_path);
! 	  /* Create region_creation_events for on-stack regions within
! 	     this frame.  */
! 	  if (interest)
! 	    {
! 	      unsigned i;
! 	      const region *reg;
! 	      FOR_EACH_VEC_ELT (interest->m_region_creation, i, reg)
! 		if (const frame_region *frame = reg->maybe_get_frame_region ())
! 		  if (frame->get_fndecl () == dst_point.get_fndecl ())
! 		    {
! 		      const region *base_reg = reg->get_base_region ();
! 		      if (tree decl = base_reg->maybe_get_decl ())
! 			if (DECL_P (decl)
! 			    && DECL_SOURCE_LOCATION (decl) != UNKNOWN_LOCATION)
! 			  {
! 			    emission_path->add_region_creation_events
! 			      (pb.get_pending_diagnostic (),
! 			       reg, dst_state.m_region_model,
! 			       event_loc_info (DECL_SOURCE_LOCATION (decl),
! 					       dst_point.get_fndecl (),
! 					       dst_stack_depth),
! 			       m_verbosity > 3);
! 			  }
! 		    }
! 	    }
! 	}
!       break;
!     case PK_BEFORE_STMT:
!       {
! 	const gimple *stmt = dst_point.get_stmt ();
! 	const gcall *call = dyn_cast <const gcall *> (stmt);
! 	if (call && is_setjmp_call_p (call))
! 	  emission_path->add_event
! 	    (make_unique<setjmp_event> (event_loc_info (stmt->location,
! 							dst_point.get_fndecl (),
! 							dst_stack_depth),
! 					dst_node,
! 					call));
! 	else
! 	  emission_path->add_event
! 	    (make_unique<statement_event> (stmt,
! 					   dst_point.get_fndecl (),
! 					   dst_stack_depth, dst_state));
! 
! 	/* Create state change events for assignment to NULL.
! 	   Iterate through the stmts in dst_enode, adding state change
! 	   events for them.  */
! 	if (dst_state.m_region_model)
! 	  {
! 	    log_scope s (get_logger (), "processing run of stmts");
! 	    program_state iter_state (dst_state);
! 	    program_point iter_point (dst_point);
! 	    while (1)
! 	      {
! 		const gimple *stmt = iter_point.get_stmt ();
! 		if (const gassign *assign = dyn_cast<const gassign *> (stmt))
! 		  {
! 		    const extrinsic_state &ext_state = pb.get_ext_state ();
! 		    program_state old_state (iter_state);
! 		    iter_state.m_region_model->on_assignment (assign, NULL);
! 		    for (unsigned i = 0; i < ext_state.get_num_checkers (); i++)
  		      {
! 			const state_machine &sm = ext_state.get_sm (i);
! 			null_assignment_sm_context sm_ctxt (i, sm,
! 							    &old_state,
! 							    &iter_state,
! 							    stmt,
! 							    &iter_point,
! 							    emission_path,
! 							    pb.get_ext_state ());
! 			sm.on_stmt (sm_ctxt, dst_point.get_supernode (), stmt);
! 			// TODO: what about phi nodes?
  		      }
! 		  }
! 		iter_point.next_stmt ();
! 		if (iter_point.get_kind () == PK_AFTER_SUPERNODE
! 		    || (dst_node->m_succs.length () > 1
! 			&& (iter_point
! 			    == dst_node->m_succs[0]->m_dest->get_point ())))
! 		  break;
! 	      }
! 
! 	  }
!       }
!       break;
      }
  
    /* Look for changes in dynamic extents, which will identify
--- 1936,1992 ----
    for_each_state_change (src_state, dst_state, pb.get_ext_state (),
  			 &visitor);
  
+   /* Give diagnostics an opportunity to inject extra events, or
+      to override the rest of this function.  */
+   pending_diagnostic *pd = pb.get_pending_diagnostic ();
+   if (pd->maybe_add_custom_events_for_eedge (eedge, emission_path))
+     return;
+ 
    /* Allow non-standard edges to add events, e.g. when rewinding from
       longjmp to a setjmp.  */
    if (eedge.m_custom_info)
!     eedge.m_custom_info->add_events_to_path (emission_path, eedge, *pd);
  
!   /* Don't add events for insignificant edges at verbosity levels below 3.  */
!   if (m_verbosity < 3)
!     if (!significant_edge_p (pb, eedge))
!       return;
! 
!   /* Add events for operations.  */
!   if (eedge.m_sedge)
!     if (auto op = eedge.m_sedge->get_op ())
!       op->add_any_events_for_eedge (eedge, *emission_path);
! 
!   /* Add events for function entry.  */
!   if (dst_point.get_supernode ()->entry_p ())
      {
!       pb.get_pending_diagnostic ()->add_function_entry_event
! 	(eedge, emission_path);
!       /* Create region_creation_events for on-stack regions within
! 	 this frame.  */
!       if (interest)
  	{
! 	  unsigned i;
! 	  const region *reg;
! 	  FOR_EACH_VEC_ELT (interest->m_region_creation, i, reg)
! 	    if (const frame_region *frame = reg->maybe_get_frame_region ())
! 	      if (frame->get_fndecl () == dst_point.get_fndecl ())
! 		{
! 		  const region *base_reg = reg->get_base_region ();
! 		  if (tree decl = base_reg->maybe_get_decl ())
! 		    if (DECL_P (decl)
! 			&& useful_location_p (DECL_SOURCE_LOCATION (decl)))
  		      {
! 			emission_path->add_region_creation_events
! 			  (pb.get_pending_diagnostic (),
! 			   reg, dst_state.m_region_model,
! 			   event_loc_info (DECL_SOURCE_LOCATION (decl),
! 					   dst_point.get_fndecl (),
! 					   dst_stack_depth),
! 			   m_verbosity > 3);
  		      }
! 		}
! 	}
      }
  
    /* Look for changes in dynamic extents, which will identify
*************** diagnostic_manager::add_events_for_eedge
*** 2294,2300 ****
  		= src_model->get_dynamic_extents (base_reg);
  	      const svalue *new_extents
  		= dst_model->get_dynamic_extents (base_reg);
! 	      if (old_extents == NULL && new_extents != NULL)
  		switch (base_reg->get_kind ())
  		  {
  		  default:
--- 2007,2013 ----
  		= src_model->get_dynamic_extents (base_reg);
  	      const svalue *new_extents
  		= dst_model->get_dynamic_extents (base_reg);
! 	      if (old_extents == nullptr && new_extents != nullptr)
  		switch (base_reg->get_kind ())
  		  {
  		  default:
*************** diagnostic_manager::add_events_for_eedge
*** 2324,2334 ****
  		 " at this edge: ");
        pb.get_feasibility_problem ()->dump_to_pp (&pp);
        emission_path->add_event
! 	(make_unique<precanned_custom_event>
! 	 (event_loc_info (dst_point.get_location (),
! 			  dst_point.get_fndecl (),
! 			  dst_stack_depth),
! 	  pp_formatted_text (&pp)));
      }
  }
  
--- 2037,2047 ----
  		 " at this edge: ");
        pb.get_feasibility_problem ()->dump_to_pp (&pp);
        emission_path->add_event
! 	(std::make_unique<precanned_custom_event>
! 	   (event_loc_info (dst_point.get_location (),
! 			    dst_point.get_fndecl (),
! 			    dst_stack_depth),
! 	    pp_formatted_text (&pp)));
      }
  }
  
*************** diagnostic_manager::significant_edge_p (
*** 2403,2494 ****
    return true;
  }
  
- /* Subroutine of diagnostic_manager::add_events_for_eedge
-    where EEDGE has an underlying superedge i.e. a CFG edge,
-    or an interprocedural call/return.
-    Add any events for the superedge to EMISSION_PATH.  */
- 
- void
- diagnostic_manager::add_events_for_superedge (const path_builder &pb,
- 					      const exploded_edge &eedge,
- 					      checker_path *emission_path)
-   const
- {
-   gcc_assert (eedge.m_sedge);
- 
-   /* Give diagnostics an opportunity to override this function.  */
-   pending_diagnostic *pd = pb.get_pending_diagnostic ();
-   if (pd->maybe_add_custom_events_for_superedge (eedge, emission_path))
-     return;
- 
-   /* Don't add events for insignificant edges at verbosity levels below 3.  */
-   if (m_verbosity < 3)
-     if (!significant_edge_p (pb, eedge))
-       return;
- 
-   const exploded_node *src_node = eedge.m_src;
-   const program_point &src_point = src_node->get_point ();
-   const exploded_node *dst_node = eedge.m_dest;
-   const program_point &dst_point = dst_node->get_point ();
-   const int src_stack_depth = src_point.get_stack_depth ();
-   const int dst_stack_depth = dst_point.get_stack_depth ();
-   const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
- 
-   switch (eedge.m_sedge->m_kind)
-     {
-     case SUPEREDGE_CFG_EDGE:
-       {
- 	emission_path->add_event
- 	  (make_unique<start_cfg_edge_event>
- 	   (eedge,
- 	    event_loc_info (last_stmt ? last_stmt->location : UNKNOWN_LOCATION,
- 			    src_point.get_fndecl (),
- 			    src_stack_depth)));
- 	emission_path->add_event
- 	  (make_unique<end_cfg_edge_event>
- 	    (eedge,
- 	     event_loc_info (dst_point.get_supernode ()->get_start_location (),
- 			     dst_point.get_fndecl (),
- 			     dst_stack_depth)));
-       }
-       break;
- 
-     case SUPEREDGE_CALL:
-       pd->add_call_event (eedge, emission_path);
-       break;
- 
-     case SUPEREDGE_INTRAPROCEDURAL_CALL:
-       {
- 	/* TODO: add a subclass for this, or generate events for the
- 	   summary.  */
- 	emission_path->add_event
- 	  (make_unique<debug_event> (event_loc_info (last_stmt
- 						     ? last_stmt->location
- 						     : UNKNOWN_LOCATION,
- 						     src_point.get_fndecl (),
- 						     src_stack_depth),
- 				     "call summary"));
-       }
-       break;
- 
-     case SUPEREDGE_RETURN:
-       {
- 	const return_superedge *return_edge
- 	  = as_a <const return_superedge *> (eedge.m_sedge);
- 
- 	const gcall *call_stmt = return_edge->get_call_stmt ();
- 	emission_path->add_event
- 	  (make_unique<return_event> (eedge,
- 				      event_loc_info (call_stmt
- 						      ? call_stmt->location
- 						      : UNKNOWN_LOCATION,
- 						      dst_point.get_fndecl (),
- 						      dst_stack_depth)));
-       }
-       break;
-     }
- }
- 
  /* Prune PATH, based on the verbosity level, to the most pertinent
     events for a diagnostic that involves VAR ending in state STATE
     (for state machine SM).
--- 2116,2121 ----
*************** diagnostic_manager::prune_path (checker_
*** 2512,2517 ****
--- 2139,2145 ----
    if (! flag_analyzer_show_events_in_system_headers)
      prune_system_headers (path);
    consolidate_conditions (path);
+   consolidate_unwind_events (path);
    finish_pruning (path);
    path->maybe_log (get_logger (), "pruned");
  }
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2569,2592 ****
  		{
  		  label_text sval_desc = sval->get_desc ();
  		  log ("considering event %i (%s), with sval: %qs, state: %qs",
! 		       idx, event_kind_to_string (base_event->m_kind),
  		       sval_desc.get (), state->get_name ());
  		}
  	      else
  		log ("considering event %i (%s), with global state: %qs",
! 		     idx, event_kind_to_string (base_event->m_kind),
  		     state->get_name ());
  	    }
  	  else
  	    log ("considering event %i", idx);
  	}
  
!       switch (base_event->m_kind)
  	{
  	default:
  	  gcc_unreachable ();
  
! 	case EK_DEBUG:
  	  if (m_verbosity < 4)
  	    {
  	      log ("filtering event %i: debug event", idx);
--- 2197,2220 ----
  		{
  		  label_text sval_desc = sval->get_desc ();
  		  log ("considering event %i (%s), with sval: %qs, state: %qs",
! 		       idx, event_kind_to_string (base_event->get_kind ()),
  		       sval_desc.get (), state->get_name ());
  		}
  	      else
  		log ("considering event %i (%s), with global state: %qs",
! 		     idx, event_kind_to_string (base_event->get_kind ()),
  		     state->get_name ());
  	    }
  	  else
  	    log ("considering event %i", idx);
  	}
  
!       switch (base_event->get_kind ())
  	{
  	default:
  	  gcc_unreachable ();
  
! 	case event_kind::debug:
  	  if (m_verbosity < 4)
  	    {
  	      log ("filtering event %i: debug event", idx);
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2594,2604 ****
  	    }
  	  break;
  
! 	case EK_CUSTOM:
  	  /* Don't filter custom events.  */
  	  break;
  
! 	case EK_STMT:
  	  {
  	    if (m_verbosity < 4)
  	      {
--- 2222,2232 ----
  	    }
  	  break;
  
! 	case event_kind::custom:
  	  /* Don't filter custom events.  */
  	  break;
  
! 	case event_kind::stmt:
  	  {
  	    if (m_verbosity < 4)
  	      {
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2608,2618 ****
  	  }
  	  break;
  
! 	case EK_REGION_CREATION:
  	  /* Don't filter these.  */
  	  break;
  
! 	case EK_FUNCTION_ENTRY:
  	  if (m_verbosity < 1)
  	    {
  	      log ("filtering event %i: function entry", idx);
--- 2236,2246 ----
  	  }
  	  break;
  
! 	case event_kind::region_creation:
  	  /* Don't filter these.  */
  	  break;
  
! 	case event_kind::function_entry:
  	  if (m_verbosity < 1)
  	    {
  	      log ("filtering event %i: function entry", idx);
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2620,2626 ****
  	    }
  	  break;
  
! 	case EK_STATE_CHANGE:
  	  {
  	    state_change_event *state_change = (state_change_event *)base_event;
  	    gcc_assert (state_change->m_dst_state.m_region_model);
--- 2248,2254 ----
  	    }
  	  break;
  
! 	case event_kind::state_change:
  	  {
  	    state_change_event *state_change = (state_change_event *)base_event;
  	    gcc_assert (state_change->m_dst_state.m_region_model);
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2674,2680 ****
  	  }
  	  break;
  
! 	case EK_START_CFG_EDGE:
  	  {
  	    cfg_edge_event *event = (cfg_edge_event *)base_event;
  
--- 2302,2308 ----
  	  }
  	  break;
  
! 	case event_kind::start_cfg_edge:
  	  {
  	    cfg_edge_event *event = (cfg_edge_event *)base_event;
  
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2687,2706 ****
  	      {
  		log ("filtering events %i and %i: CFG edge", idx, idx + 1);
  		path->delete_event (idx);
! 		/* Also delete the corresponding EK_END_CFG_EDGE.  */
! 		gcc_assert (path->get_checker_event (idx)->m_kind
! 			    == EK_END_CFG_EDGE);
  		path->delete_event (idx);
  	      }
  	  }
  	  break;
  
! 	case EK_END_CFG_EDGE:
! 	  /* These come in pairs with EK_START_CFG_EDGE events and are
  	     filtered when their start event is filtered.  */
  	  break;
  
! 	case EK_CALL_EDGE:
  	  {
  	    call_event *event = (call_event *)base_event;
  	    const region_model *callee_model
--- 2315,2340 ----
  	      {
  		log ("filtering events %i and %i: CFG edge", idx, idx + 1);
  		path->delete_event (idx);
! 		/* Also delete the corresponding event_kind::end_cfg_edge.  */
! 		gcc_assert (path->get_checker_event (idx)->get_kind ()
! 			    == event_kind::end_cfg_edge);
  		path->delete_event (idx);
  	      }
  	  }
  	  break;
  
! 	case event_kind::end_cfg_edge:
! 	  /* These come in pairs with event_kind::start_cfg_edge events and are
  	     filtered when their start event is filtered.  */
  	  break;
  
! 	case event_kind::catch_:
! 	case event_kind::throw_:
! 	case event_kind::unwind:
! 	  /* Don't filter these.  */
! 	  break;
! 
! 	case event_kind::call_:
  	  {
  	    call_event *event = (call_event *)base_event;
  	    const region_model *callee_model
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2711,2728 ****
  	    callsite_expr expr;
  
  	    tree caller_var;
!             if(event->m_sedge)
!               {
!                 const callgraph_superedge& cg_superedge
!                   = event->get_callgraph_superedge ();
!                 if (cg_superedge.m_cedge)
! 	          caller_var
! 	            = cg_superedge.map_expr_from_callee_to_caller (callee_var,
!                                                                    &expr);
!                 else
!                   caller_var = caller_model->get_representative_tree (sval);
!               }
!             else
  	      caller_var = caller_model->get_representative_tree (sval);
  
  	    if (caller_var)
--- 2345,2360 ----
  	    callsite_expr expr;
  
  	    tree caller_var;
! 	    if (auto op = event->get_call_and_return_op ())
! 	      {
! 		tree callee_fndecl
! 		  = event->m_eedge.m_dest->get_point ().get_fndecl ();
! 		caller_var
! 		  = op->map_expr_from_callee_to_caller (callee_fndecl,
! 							callee_var,
! 							&expr);
! 	      }
! 	    else
  	      caller_var = caller_model->get_representative_tree (sval);
  
  	    if (caller_var)
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2741,2747 ****
  	  }
  	  break;
  
! 	case EK_RETURN_EDGE:
  	  {
  	    if (sval)
  	      {
--- 2373,2379 ----
  	  }
  	  break;
  
! 	case event_kind::return_:
  	  {
  	    if (sval)
  	      {
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2753,2772 ****
                    = event->m_eedge.m_src->get_state ().m_region_model;
  		callsite_expr expr;
  
!                 tree callee_var;
!                 if (event->m_sedge)
!                   {
!                     const callgraph_superedge& cg_superedge
!                       = event->get_callgraph_superedge ();
!                     if (cg_superedge.m_cedge)
!                       callee_var
!                         = cg_superedge.map_expr_from_caller_to_callee (caller_var,
!                                                                        &expr);
!                     else
!                       callee_var = callee_model->get_representative_tree (sval);
!                   }
!                 else
!                   callee_var = callee_model->get_representative_tree (sval);
  
  		if (callee_var)
  		  {
--- 2385,2403 ----
                    = event->m_eedge.m_src->get_state ().m_region_model;
  		callsite_expr expr;
  
! 		tree callee_var;
! 
! 		if (auto op = event->get_call_and_return_op ())
! 		  {
! 		    tree callee_fndecl
! 		      = event->m_eedge.m_src->get_point ().get_fndecl ();
! 		    callee_var
! 		      = op->map_expr_from_caller_to_callee (callee_fndecl,
! 							    caller_var,
! 							    &expr);
! 		  }
! 		else
! 		  callee_var = callee_model->get_representative_tree (sval);
  
  		if (callee_var)
  		  {
*************** diagnostic_manager::prune_for_sm_diagnos
*** 2785,2803 ****
  	  }
  	  break;
  
! 	case EK_INLINED_CALL:
  	  /* We don't expect to see these yet, as they're added later.
  	     We'd want to keep them around.  */
  	  break;
  
! 	case EK_SETJMP:
  	  /* TODO: only show setjmp_events that matter i.e. those for which
  	     there is a later rewind event using them.  */
! 	case EK_REWIND_FROM_LONGJMP:
! 	case EK_REWIND_TO_SETJMP:
  	  break;
  
! 	case EK_WARNING:
  	  /* Always show the final "warning" event in the path.  */
  	  break;
  	}
--- 2416,2434 ----
  	  }
  	  break;
  
! 	case event_kind::inlined_call:
  	  /* We don't expect to see these yet, as they're added later.
  	     We'd want to keep them around.  */
  	  break;
  
! 	case event_kind::setjmp_:
  	  /* TODO: only show setjmp_events that matter i.e. those for which
  	     there is a later rewind event using them.  */
! 	case event_kind::rewind_from_longjmp:
! 	case event_kind::rewind_to_setjmp:
  	  break;
  
! 	case event_kind::warning:
  	  /* Always show the final "warning" event in the path.  */
  	  break;
  	}
*************** same_line_as_p (const expanded_location
*** 3002,3008 ****
    const checker_event *ev = path->get_checker_event (idx);
    expanded_location idx_exp_loc = expand_location (ev->get_location ());
    gcc_assert (ref_exp_loc.file);
!   if (idx_exp_loc.file == NULL)
      return false;
    if (strcmp (ref_exp_loc.file, idx_exp_loc.file))
      return false;
--- 2633,2639 ----
    const checker_event *ev = path->get_checker_event (idx);
    expanded_location idx_exp_loc = expand_location (ev->get_location ());
    gcc_assert (ref_exp_loc.file);
!   if (idx_exp_loc.file == nullptr)
      return false;
    if (strcmp (ref_exp_loc.file, idx_exp_loc.file))
      return false;
*************** diagnostic_manager::consolidate_conditio
*** 3067,3089 ****
  	    = path->get_checker_event (start_idx);
  	  expanded_location start_exp_loc
  	    = expand_location (old_start_ev->get_location ());
! 	  if (start_exp_loc.file == NULL)
  	    continue;
  	  if (!same_line_as_p (start_exp_loc, path, start_idx + 1))
  	    continue;
  
  	  /* Are we looking for a run of all TRUE edges, or all FALSE edges?  */
! 	  gcc_assert (old_start_ev->m_kind == EK_START_CFG_EDGE);
  	  const start_cfg_edge_event *old_start_cfg_ev
  	    = (const start_cfg_edge_event *)old_start_ev;
- 	  const cfg_superedge& first_cfg_sedge
- 	    = old_start_cfg_ev->get_cfg_superedge ();
  	  bool edge_sense;
! 	  if (first_cfg_sedge.true_value_p ())
! 	    edge_sense = true;
! 	  else if (first_cfg_sedge.false_value_p ())
! 	    edge_sense = false;
! 	  else
  	    continue;
  
  	  /* Find a run of CFG start/end event pairs from
--- 2698,2714 ----
  	    = path->get_checker_event (start_idx);
  	  expanded_location start_exp_loc
  	    = expand_location (old_start_ev->get_location ());
! 	  if (start_exp_loc.file == nullptr)
  	    continue;
  	  if (!same_line_as_p (start_exp_loc, path, start_idx + 1))
  	    continue;
  
  	  /* Are we looking for a run of all TRUE edges, or all FALSE edges?  */
! 	  gcc_assert (old_start_ev->get_kind () == event_kind::start_cfg_edge);
  	  const start_cfg_edge_event *old_start_cfg_ev
  	    = (const start_cfg_edge_event *)old_start_ev;
  	  bool edge_sense;
! 	  if (!old_start_cfg_ev->maybe_get_edge_sense (&edge_sense))
  	    continue;
  
  	  /* Find a run of CFG start/end event pairs from
*************** diagnostic_manager::consolidate_conditio
*** 3096,3116 ****
  	    {
  	      const checker_event *iter_ev
  		= path->get_checker_event (next_idx);
! 	      gcc_assert (iter_ev->m_kind == EK_START_CFG_EDGE);
  	      const start_cfg_edge_event *iter_cfg_ev
  		= (const start_cfg_edge_event *)iter_ev;
! 	      const cfg_superedge& iter_cfg_sedge
! 		= iter_cfg_ev->get_cfg_superedge ();
! 	      if (edge_sense)
! 		{
! 		  if (!iter_cfg_sedge.true_value_p ())
! 		    break;
! 		}
! 	      else
! 		{
! 		  if (!iter_cfg_sedge.false_value_p ())
! 		    break;
! 		}
  	      next_idx += 2;
  	    }
  
--- 2721,2734 ----
  	    {
  	      const checker_event *iter_ev
  		= path->get_checker_event (next_idx);
! 	      gcc_assert (iter_ev->get_kind () == event_kind::start_cfg_edge);
  	      const start_cfg_edge_event *iter_cfg_ev
  		= (const start_cfg_edge_event *)iter_ev;
! 	      bool iter_edge_sense;
! 	      if (!iter_cfg_ev->maybe_get_edge_sense (&iter_edge_sense))
! 		break;
! 	      if (iter_edge_sense != edge_sense)
! 		break;
  	      next_idx += 2;
  	    }
  
*************** diagnostic_manager::consolidate_conditio
*** 3140,3145 ****
--- 2758,2807 ----
      }
  }
  
+ /* Consolidate runs of consecutive unwind_event.  */
+ 
+ void
+ diagnostic_manager::consolidate_unwind_events (checker_path *path) const
+ {
+   /* Don't simplify edges if we're debugging them.  */
+   if (flag_analyzer_verbose_edges)
+     return;
+ 
+   for (int start_idx = 0;
+        start_idx < (signed)path->num_events () - 1;
+        start_idx++)
+     {
+       /* Find a run of consecutive unwind_event instances.  */
+       if (path->get_checker_event (start_idx)->get_kind ()
+ 	  != event_kind::unwind)
+ 	continue;
+       int iter_idx = start_idx + 1;
+       while (iter_idx < (int)path->num_events ())
+ 	if (path->get_checker_event (iter_idx)->get_kind ()
+ 	    == event_kind::unwind)
+ 	  ++iter_idx;
+ 	else
+ 	  break;
+ 
+       /* iter_idx should now be one after the last unwind_event in the run.  */
+       const int last_idx = iter_idx - 1;
+       if (last_idx == start_idx)
+ 	continue;
+ 
+       gcc_assert (last_idx > start_idx);
+ 
+       log ("consolidating unwind events %i-%i into %i",
+ 	   start_idx, last_idx, start_idx);
+ 
+       unwind_event *first_event
+ 	= (unwind_event *)path->get_checker_event (start_idx);
+       const unwind_event *last_event
+ 	= (const unwind_event *)path->get_checker_event (last_idx);
+       first_event->m_num_frames += last_event->m_num_frames;
+       path->delete_events (start_idx + 1, last_idx - start_idx);
+     }
+ }
+ 
  /* Final pass of diagnostic_manager::prune_path.
  
     If all we're left with is in one function, then filter function entry
*************** diagnostic_manager::finish_pruning (chec
*** 3154,3160 ****
        while (idx >= 0 && idx < (signed)path->num_events ())
  	{
  	  checker_event *base_event = path->get_checker_event (idx);
! 	  if (base_event->m_kind == EK_FUNCTION_ENTRY)
  	    {
  	      log ("filtering event %i:"
  		   " function entry for purely intraprocedural path", idx);
--- 2816,2822 ----
        while (idx >= 0 && idx < (signed)path->num_events ())
  	{
  	  checker_event *base_event = path->get_checker_event (idx);
! 	  if (base_event->get_kind () == event_kind::function_entry)
  	    {
  	      log ("filtering event %i:"
  		   " function entry for purely intraprocedural path", idx);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/diagnostic-manager.h gcc-16.1.0-RC-20260423/gcc/analyzer/diagnostic-manager.h
*** gcc-15.2.0/gcc/analyzer/diagnostic-manager.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/diagnostic-manager.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for saving, deduplicating, and emitting analyzer diagnostics.
!    Copyright (C) 2019-2026 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,37 ****
  #ifndef GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
  #define GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
  
  namespace ana {
  
  class epath_finder;
  
  /* A to-be-emitted diagnostic stored within diagnostic_manager.  */
  
  class saved_diagnostic
  {
  public:
    saved_diagnostic (const state_machine *sm,
! 		    const pending_location &ploc,
  		    tree var, const svalue *sval,
  		    state_machine::state_t state,
  		    std::unique_ptr<pending_diagnostic> d,
--- 21,85 ----
  #ifndef GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
  #define GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
  
+ #include "analyzer/supergraph.h"
+ #include "analyzer/event-loc-info.h"
+ 
  namespace ana {
  
  class epath_finder;
  
+ /* A bundle of information capturing where a pending_diagnostic should
+    be emitted.  */
+ 
+ struct pending_location
+ {
+ public:
+   class fixer_for_epath
+   {
+   public:
+     virtual ~fixer_for_epath () = default;
+ 
+     virtual void
+     fixup_for_epath (const exploded_path &epath,
+ 		     pending_location &ploc) const = 0;
+   };
+ 
+   pending_location ();
+   pending_location (exploded_node *enode);
+   pending_location (exploded_node *enode,
+ 		    location_t loc);
+ 
+   location_t get_location () const
+   {
+     return m_event_loc_info.m_loc;
+   }
+ 
+   std::unique_ptr<json::object> to_json () const;
+ 
+   /* The enode with which a diagnostic is to be associated,
+      for tracking feasibility.  */
+   exploded_node *m_enode;
+ 
+   /* Information to use for the location of the warning,
+      and for the location of the "final warning" in the path.  */
+   event_loc_info m_event_loc_info;
+ 
+   /* Optional hook for use when eventually emitting the diagnostic
+      for fixing up m_event_loc_info based on the specific epath.  */
+   std::unique_ptr<fixer_for_epath> m_fixer_for_epath;
+ };
+ 
+ extern std::unique_ptr<pending_location::fixer_for_epath>
+ make_ploc_fixer_for_epath_for_leak_diagnostic (const exploded_graph &eg,
+ 					       tree var);
+ 
  /* A to-be-emitted diagnostic stored within diagnostic_manager.  */
  
  class saved_diagnostic
  {
  public:
    saved_diagnostic (const state_machine *sm,
! 		    pending_location &&ploc,
  		    tree var, const svalue *sval,
  		    state_machine::state_t state,
  		    std::unique_ptr<pending_diagnostic> d,
*************** public:
*** 67,81 ****
  
    void emit_any_notes () const;
  
!   void maybe_add_sarif_properties (sarif_object &result_obj) const;
  
    //private:
    const state_machine *m_sm;
!   const exploded_node *m_enode;
!   const supernode *m_snode;
!   const gimple *m_stmt;
!   std::unique_ptr<stmt_finder> m_stmt_finder;
!   location_t m_loc;
    tree m_var;
    const svalue *m_sval;
    state_machine::state_t m_state;
--- 115,128 ----
  
    void emit_any_notes () const;
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj) const;
! 
!   const supernode *get_supernode () const;
  
    //private:
    const state_machine *m_sm;
!   pending_location m_ploc;
    tree m_var;
    const svalue *m_sval;
    state_machine::state_t m_state;
*************** private:
*** 101,146 ****
  
  class path_builder;
  
- /* A bundle of information capturing where a pending_diagnostic should
-    be emitted.  */
- 
- struct pending_location
- {
- public:
-   pending_location (exploded_node *enode,
- 		    const supernode *snode,
- 		    const gimple *stmt,
- 		    const stmt_finder *finder)
-   : m_enode (enode),
-     m_snode (snode),
-     m_stmt (stmt),
-     m_finder (finder),
-     m_loc (UNKNOWN_LOCATION)
-   {
-     gcc_assert (m_stmt || m_finder);
-   }
- 
-   /* ctor for cases where we have a location_t but there isn't any
-      gimple stmt associated with the diagnostic.  */
- 
-   pending_location (exploded_node *enode,
- 		    const supernode *snode,
- 		    location_t loc)
-   : m_enode (enode),
-     m_snode (snode),
-     m_stmt (nullptr),
-     m_finder (nullptr),
-     m_loc (loc)
-   {
-   }
- 
-   exploded_node *m_enode;
-   const supernode *m_snode;
-   const gimple *m_stmt;
-   const stmt_finder *m_finder;
-   location_t m_loc;
- };
- 
  /* A class with responsibility for saving pending diagnostics, so that
     they can be emitted after the exploded_graph is complete.
     This lets us de-duplicate diagnostics, and find the shortest path
--- 148,153 ----
*************** public:
*** 160,172 ****
    std::unique_ptr<json::object> to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
! 		       const pending_location &ploc,
  		       tree var,
  		       const svalue *sval,
  		       state_machine::state_t state,
  		       std::unique_ptr<pending_diagnostic> d);
  
!   bool add_diagnostic (const pending_location &ploc,
  		       std::unique_ptr<pending_diagnostic> d);
  
    void add_note (std::unique_ptr<pending_note> pn);
--- 167,179 ----
    std::unique_ptr<json::object> to_json () const;
  
    bool add_diagnostic (const state_machine *sm,
! 		       pending_location &&ploc,
  		       tree var,
  		       const svalue *sval,
  		       state_machine::state_t state,
  		       std::unique_ptr<pending_diagnostic> d);
  
!   bool add_diagnostic (pending_location &&ploc,
  		       std::unique_ptr<pending_diagnostic> d);
  
    void add_note (std::unique_ptr<pending_note> pn);
*************** public:
*** 191,196 ****
--- 198,206 ----
    }
  
  private:
+   const diagnostics::logical_locations::manager &
+   get_logical_location_manager () const;
+ 
    void build_emission_path (const path_builder &pb,
  			    const exploded_path &epath,
  			    checker_path *emission_path) const;
*************** private:
*** 208,217 ****
    bool significant_edge_p (const path_builder &pb,
  			   const exploded_edge &eedge) const;
  
-   void add_events_for_superedge (const path_builder &pb,
- 				 const exploded_edge &eedge,
- 				 checker_path *emission_path) const;
- 
    void prune_path (checker_path *path,
  		   const state_machine *sm,
  		   const svalue *sval,
--- 218,223 ----
*************** private:
*** 229,234 ****
--- 235,241 ----
    void prune_interproc_events (checker_path *path) const;
    void prune_system_headers (checker_path *path) const;
    void consolidate_conditions (checker_path *path) const;
+   void consolidate_unwind_events (checker_path *path) const;
    void finish_pruning (checker_path *path) const;
  
    engine *m_eng;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/engine.cc gcc-16.1.0-RC-20260423/gcc/analyzer/engine.cc
*** gcc-15.2.0/gcc/analyzer/engine.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/engine.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,40 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "fold-const.h"
  #include "gcc-rich-location.h"
! #include "diagnostic-core.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "function.h"
! #include "pretty-print.h"
! #include "sbitmap.h"
! #include "bitmap.h"
! #include "ordered-hash-map.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
--- 18,45 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include <zlib.h>
! 
! #include "cfg.h"
  #include "gcc-rich-location.h"
! #include "gimple-iterator.h"
! #include "gimple-pretty-print.h"
! #include "cgraph.h"
! #include "fold-const.h"
! #include "digraph.h"
! #include "plugin.h"
! #include "target.h"
! #include "stringpool.h"
! #include "attribs.h"
! #include "tree-dfa.h"
! #include "gimple-predict.h"
! #include "context.h"
! #include "channels.h"
! 
! #include "text-art/dump.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 44,56 ****
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "gimple-pretty-print.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
--- 49,54 ----
*************** along with GCC; see the file COPYING3.
*** 59,74 ****
  #include "analyzer/state-purge.h"
  #include "analyzer/bar-chart.h"
  #include "analyzer/call-info.h"
- #include <zlib.h>
- #include "plugin.h"
- #include "target.h"
- #include <memory>
- #include "stringpool.h"
- #include "attribs.h"
- #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.  */
  
--- 57,65 ----
  #include "analyzer/state-purge.h"
  #include "analyzer/bar-chart.h"
  #include "analyzer/call-info.h"
  #include "analyzer/known-function-manager.h"
  #include "analyzer/call-summary.h"
! #include "analyzer/impl-sm-context.h"
  
  /* For an overview, see gcc/doc/analyzer.texi.  */
  
*************** impl_region_model_context (exploded_grap
*** 86,99 ****
  			   uncertainty_t *uncertainty,
  			   path_context *path_ctxt,
  			   const gimple *stmt,
- 			   stmt_finder *stmt_finder,
  			   bool *out_could_have_done_work)
  : m_eg (&eg), m_logger (eg.get_logger ()),
    m_enode_for_diag (enode_for_diag),
    m_old_state (old_state),
    m_new_state (new_state),
    m_stmt (stmt),
-   m_stmt_finder (stmt_finder),
    m_ext_state (eg.get_ext_state ()),
    m_uncertainty (uncertainty),
    m_path_ctxt (path_ctxt),
--- 77,88 ----
*************** impl_region_model_context (program_state
*** 106,143 ****
  			   const extrinsic_state &ext_state,
  			   uncertainty_t *uncertainty,
  			   logger *logger)
! : m_eg (NULL), m_logger (logger), m_enode_for_diag (NULL),
!   m_old_state (NULL),
    m_new_state (state),
!   m_stmt (NULL),
!   m_stmt_finder (NULL),
    m_ext_state (ext_state),
    m_uncertainty (uncertainty),
!   m_path_ctxt (NULL),
    m_out_could_have_done_work (nullptr)
  {
  }
  
  bool
! impl_region_model_context::warn (std::unique_ptr<pending_diagnostic> d,
! 				 const stmt_finder *custom_finder)
  {
    LOG_FUNC (get_logger ());
-   auto curr_stmt_finder = custom_finder ? custom_finder : m_stmt_finder;
-   if (m_stmt == NULL && curr_stmt_finder == NULL)
-     {
-       if (get_logger ())
- 	get_logger ()->log ("rejecting diagnostic: no stmt");
-       return false;
-     }
    if (m_eg)
      {
        bool terminate_path = d->terminate_path_p ();
!       pending_location ploc (m_enode_for_diag,
! 			     m_enode_for_diag->get_supernode (),
! 			     m_stmt,
! 			     curr_stmt_finder);
!       if (m_eg->get_diagnostic_manager ().add_diagnostic (ploc,
  							  std::move (d)))
  	{
  	  if (m_path_ctxt
--- 95,120 ----
  			   const extrinsic_state &ext_state,
  			   uncertainty_t *uncertainty,
  			   logger *logger)
! : m_eg (nullptr), m_logger (logger), m_enode_for_diag (nullptr),
!   m_old_state (nullptr),
    m_new_state (state),
!   m_stmt (nullptr),
    m_ext_state (ext_state),
    m_uncertainty (uncertainty),
!   m_path_ctxt (nullptr),
    m_out_could_have_done_work (nullptr)
  {
  }
  
  bool
! impl_region_model_context::warn_at (std::unique_ptr<pending_diagnostic> d,
! 				    pending_location &&ploc)
  {
    LOG_FUNC (get_logger ());
    if (m_eg)
      {
        bool terminate_path = d->terminate_path_p ();
!       if (m_eg->get_diagnostic_manager ().add_diagnostic (std::move (ploc),
  							  std::move (d)))
  	{
  	  if (m_path_ctxt
*************** setjmp_svalue::get_enode_index () const
*** 292,562 ****
    return m_setjmp_record.m_enode->m_index;
  }
  
- /* Concrete implementation of sm_context, wiring it up to the rest of this
-    file.  */
- 
- class impl_sm_context : public sm_context
- {
- public:
-   impl_sm_context (exploded_graph &eg,
- 		   int sm_idx,
- 		   const state_machine &sm,
- 		   exploded_node *enode_for_diag,
- 		   const program_state *old_state,
- 		   program_state *new_state,
- 		   const sm_state_map *old_smap,
- 		   sm_state_map *new_smap,
- 		   path_context *path_ctxt,
- 		   const stmt_finder *stmt_finder = NULL,
- 		   bool unknown_side_effects = false)
-   : sm_context (sm_idx, sm),
-     m_logger (eg.get_logger ()),
-     m_eg (eg), m_enode_for_diag (enode_for_diag),
-     m_old_state (old_state), m_new_state (new_state),
-     m_old_smap (old_smap), m_new_smap (new_smap),
-     m_path_ctxt (path_ctxt),
-     m_stmt_finder (stmt_finder),
-     m_unknown_side_effects (unknown_side_effects)
-   {
-   }
- 
-   logger *get_logger () const { return m_logger.get_logger (); }
- 
-   tree get_fndecl_for_call (const gcall *call) final override
-   {
-     impl_region_model_context old_ctxt
-       (m_eg, m_enode_for_diag, NULL, NULL, NULL/*m_enode->get_state ()*/,
-        NULL, call);
-     region_model *model = m_new_state->m_region_model;
-     return model->get_fndecl_for_call (call, &old_ctxt);
-   }
- 
-   state_machine::state_t get_state (const gimple *stmt ATTRIBUTE_UNUSED,
- 				    tree var) final override
-   {
-     logger * const logger = get_logger ();
-     LOG_FUNC (logger);
-     /* Use NULL ctxt on this get_rvalue call to avoid triggering
-        uninitialized value warnings.  */
-     const svalue *var_old_sval
-       = m_old_state->m_region_model->get_rvalue (var, NULL);
- 
-     state_machine::state_t current
-       = m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ());
-     return current;
-   }
-   state_machine::state_t get_state (const gimple *stmt ATTRIBUTE_UNUSED,
- 				    const svalue *sval) final override
-   {
-     logger * const logger = get_logger ();
-     LOG_FUNC (logger);
-     state_machine::state_t current
-       = m_old_smap->get_state (sval, m_eg.get_ext_state ());
-     return current;
-   }
- 
- 
-   void set_next_state (const gimple *,
- 		       tree var,
- 		       state_machine::state_t to,
- 		       tree origin) final override
-   {
-     logger * const logger = get_logger ();
-     LOG_FUNC (logger);
-     const svalue *var_new_sval
-       = m_new_state->m_region_model->get_rvalue (var, NULL);
-     const svalue *origin_new_sval
-       = m_new_state->m_region_model->get_rvalue (origin, NULL);
- 
-     /* We use the new sval here to avoid issues with uninitialized values.  */
-     state_machine::state_t current
-       = m_old_smap->get_state (var_new_sval, m_eg.get_ext_state ());
-     if (logger)
-       logger->log ("%s: state transition of %qE: %s -> %s",
- 		   m_sm.get_name (),
- 		   var,
- 		   current->get_name (),
- 		   to->get_name ());
-     m_new_smap->set_state (m_new_state->m_region_model, var_new_sval,
- 			   to, origin_new_sval, m_eg.get_ext_state ());
-   }
- 
-   void set_next_state (const gimple *stmt,
- 		       const svalue *sval,
- 		       state_machine::state_t to,
- 		       tree origin) final override
-   {
-     logger * const logger = get_logger ();
-     LOG_FUNC (logger);
-     impl_region_model_context old_ctxt
-       (m_eg, m_enode_for_diag, NULL, NULL, NULL/*m_enode->get_state ()*/,
-        NULL, stmt);
- 
-     const svalue *origin_new_sval
-       = m_new_state->m_region_model->get_rvalue (origin, NULL);
- 
-     state_machine::state_t current
-       = m_old_smap->get_state (sval, m_eg.get_ext_state ());
-     if (logger)
-       {
- 	logger->start_log_line ();
- 	logger->log_partial ("%s: state transition of ",
- 			     m_sm.get_name ());
- 	sval->dump_to_pp (logger->get_printer (), true);
- 	logger->log_partial (": %s -> %s",
- 			     current->get_name (),
- 			     to->get_name ());
- 	logger->end_log_line ();
-       }
-     m_new_smap->set_state (m_new_state->m_region_model, sval,
- 			   to, origin_new_sval, m_eg.get_ext_state ());
-   }
- 
-   void warn (const supernode *snode, const gimple *stmt,
- 	     tree var,
- 	     std::unique_ptr<pending_diagnostic> d) final override
-   {
-     LOG_FUNC (get_logger ());
-     gcc_assert (d);
-     const svalue *var_old_sval
-       = m_old_state->m_region_model->get_rvalue (var, NULL);
-     state_machine::state_t current
-       = (var
- 	 ? m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ())
- 	 : m_old_smap->get_global_state ());
-     bool terminate_path = d->terminate_path_p ();
-     pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
-     m_eg.get_diagnostic_manager ().add_diagnostic
-       (&m_sm, ploc,
-        var, var_old_sval, current, std::move (d));
-     if (m_path_ctxt
- 	&& terminate_path
- 	&& flag_analyzer_suppress_followups)
-       m_path_ctxt->terminate_path ();
-   }
- 
-   void warn (const supernode *snode, const gimple *stmt,
- 	     const svalue *sval,
- 	     std::unique_ptr<pending_diagnostic> d) final override
-   {
-     LOG_FUNC (get_logger ());
-     gcc_assert (d);
-     state_machine::state_t current
-       = (sval
- 	 ? m_old_smap->get_state (sval, m_eg.get_ext_state ())
- 	 : m_old_smap->get_global_state ());
-     bool terminate_path = d->terminate_path_p ();
-     pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
-     m_eg.get_diagnostic_manager ().add_diagnostic
-       (&m_sm, ploc,
-        NULL_TREE, sval, current, std::move (d));
-     if (m_path_ctxt
- 	&& terminate_path
- 	&& flag_analyzer_suppress_followups)
-       m_path_ctxt->terminate_path ();
-   }
- 
-   /* Hook for picking more readable trees for SSA names of temporaries,
-      so that rather than e.g.
-        "double-free of '<unknown>'"
-      we can print:
-        "double-free of 'inbuf.data'".  */
- 
-   tree get_diagnostic_tree (tree expr) final override
-   {
-     /* Only for SSA_NAMEs of temporaries; otherwise, return EXPR, as it's
-        likely to be the least surprising tree to report.  */
-     if (TREE_CODE (expr) != SSA_NAME)
-       return expr;
-     if (SSA_NAME_VAR (expr) != NULL)
-       return expr;
- 
-     gcc_assert (m_new_state);
-     const svalue *sval = m_new_state->m_region_model->get_rvalue (expr, NULL);
-     /* Find trees for all regions storing the value.  */
-     if (tree t = m_new_state->m_region_model->get_representative_tree (sval))
-       return t;
-     else
-       return expr;
-   }
- 
-   tree get_diagnostic_tree (const svalue *sval) final override
-   {
-     return m_new_state->m_region_model->get_representative_tree (sval);
-   }
- 
-   state_machine::state_t get_global_state () const final override
-   {
-     return m_old_state->m_checker_states[m_sm_idx]->get_global_state ();
-   }
- 
-   void set_global_state (state_machine::state_t state) final override
-   {
-     m_new_state->m_checker_states[m_sm_idx]->set_global_state (state);
-   }
- 
-   void clear_all_per_svalue_state () final override
-   {
-     m_new_state->m_checker_states[m_sm_idx]->clear_all_per_svalue_state ();
-   }
- 
-   void on_custom_transition (custom_transition *transition) final override
-   {
-     transition->impl_transition (&m_eg,
- 				 const_cast<exploded_node *> (m_enode_for_diag),
- 				 m_sm_idx);
-   }
- 
-   tree is_zero_assignment (const gimple *stmt) final override
-   {
-     const gassign *assign_stmt = dyn_cast <const gassign *> (stmt);
-     if (!assign_stmt)
-      return NULL_TREE;
-     impl_region_model_context old_ctxt
-       (m_eg, m_enode_for_diag, m_old_state, m_new_state, NULL, NULL, stmt);
-     if (const svalue *sval
- 	= m_new_state->m_region_model->get_gassign_result (assign_stmt,
- 							    &old_ctxt))
-       if (tree cst = sval->maybe_get_constant ())
- 	if (::zerop(cst))
- 	  return gimple_assign_lhs (assign_stmt);
-     return NULL_TREE;
-   }
- 
-   path_context *get_path_context () const final override
-   {
-     return m_path_ctxt;
-   }
- 
-   bool unknown_side_effects_p () const final override
-   {
-     return m_unknown_side_effects;
-   }
- 
-   const program_state *get_old_program_state () const final override
-   {
-     return m_old_state;
-   }
- 
-   const program_state *get_new_program_state () const final override
-   {
-     return m_new_state;
-   }
- 
-   log_user m_logger;
-   exploded_graph &m_eg;
-   exploded_node *m_enode_for_diag;
-   const program_state *m_old_state;
-   program_state *m_new_state;
-   const sm_state_map *m_old_smap;
-   sm_state_map *m_new_smap;
-   path_context *m_path_ctxt;
-   const stmt_finder *m_stmt_finder;
- 
-   /* Are we handling an external function with unknown side effects?  */
-   bool m_unknown_side_effects;
- };
- 
  bool
  impl_region_model_context::
  get_state_map_by_name (const char *name,
--- 269,274 ----
*************** get_state_map_by_name (const char *name,
*** 583,695 ****
      {
        const sm_state_map *old_smap = m_old_state->m_checker_states[sm_idx];
        *out_sm_context
! 	= make_unique<impl_sm_context> (*m_eg,
! 					sm_idx,
! 					*sm,
! 					m_enode_for_diag,
! 					m_old_state,
! 					m_new_state,
! 					old_smap,
! 					new_smap,
! 					m_path_ctxt,
! 					m_stmt_finder,
! 					false);
      }
    return true;
  }
  
! /* Subclass of stmt_finder for finding the best stmt to report the leak at,
!    given the emission path.  */
  
! class leak_stmt_finder : public stmt_finder
  {
  public:
!   leak_stmt_finder (const exploded_graph &eg, tree var)
!   : m_eg (eg), m_var (var) {}
! 
!   std::unique_ptr<stmt_finder> clone () const final override
!   {
!     return make_unique<leak_stmt_finder> (m_eg, m_var);
!   }
  
!   const gimple *find_stmt (const exploded_path &epath)
!     final override
    {
      logger * const logger = m_eg.get_logger ();
      LOG_FUNC (logger);
  
      if (m_var && TREE_CODE (m_var) == SSA_NAME)
        {
  	/* Locate the final write to this SSA name in the path.  */
  	const gimple *def_stmt = SSA_NAME_DEF_STMT (m_var);
  
  	int idx_of_def_stmt;
! 	bool found = epath.find_stmt_backwards (def_stmt, &idx_of_def_stmt);
! 	if (!found)
! 	  goto not_found;
  
! 	/* What was the next write to the underlying var
! 	   after the SSA name was set? (if any).  */
  
! 	for (unsigned idx = idx_of_def_stmt + 1;
! 	     idx < epath.m_edges.length ();
! 	     ++idx)
  	  {
- 	    const exploded_edge *eedge = epath.m_edges[idx];
  	    if (logger)
- 	      logger->log ("eedge[%i]: EN %i -> EN %i",
- 			   idx,
- 			   eedge->m_src->m_index,
- 			   eedge->m_dest->m_index);
- 	    const exploded_node *dst_node = eedge->m_dest;
- 	    const program_point &dst_point = dst_node->get_point ();
- 	    const gimple *stmt = dst_point.get_stmt ();
- 	    if (!stmt)
- 	      continue;
- 	    if (const gassign *assign = dyn_cast <const gassign *> (stmt))
  	      {
! 		tree lhs = gimple_assign_lhs (assign);
! 		if (TREE_CODE (lhs) == SSA_NAME
! 		    && SSA_NAME_VAR (lhs) == SSA_NAME_VAR (m_var))
! 		  return assign;
  	      }
  	  }
        }
  
!   not_found:
  
!     /* Look backwards for the first statement with a location.  */
!     int i;
      const exploded_edge *eedge;
!     FOR_EACH_VEC_ELT_REVERSE (epath.m_edges, i, eedge)
        {
! 	if (logger)
! 	  logger->log ("eedge[%i]: EN %i -> EN %i",
! 		       i,
! 		       eedge->m_src->m_index,
! 		       eedge->m_dest->m_index);
! 	const exploded_node *dst_node = eedge->m_dest;
! 	const program_point &dst_point = dst_node->get_point ();
! 	const gimple *stmt = dst_point.get_stmt ();
! 	if (stmt)
! 	  if (get_pure_location (stmt->location) != UNKNOWN_LOCATION)
! 	    return stmt;
        }
! 
!     gcc_unreachable ();
!     return NULL;
    }
  
!   void update_event_loc_info (event_loc_info &) final override
    {
!     /* No-op.  */
    }
  
- private:
    const exploded_graph &m_eg;
    tree m_var;
  };
  
  /* A measurement of how good EXPR is for presenting to the user, so
     that e.g. we can say prefer printing
       "leak of 'tmp.m_ptr'"
--- 295,555 ----
      {
        const sm_state_map *old_smap = m_old_state->m_checker_states[sm_idx];
        *out_sm_context
! 	= std::make_unique<impl_sm_context> (*m_eg,
! 					     sm_idx,
! 					     *sm,
! 					     m_enode_for_diag,
! 					     m_old_state,
! 					     m_new_state,
! 					     old_smap,
! 					     new_smap,
! 					     m_path_ctxt,
! 					     false);
      }
    return true;
  }
  
! /* Subclass of pending_location::fixer_for_epath for finding the best stmt
!    to report the leak at, given the emission path.  */
  
! class leak_ploc_fixer_for_epath : public pending_location::fixer_for_epath
  {
  public:
!   leak_ploc_fixer_for_epath (const exploded_graph &eg, tree var)
!   : m_eg (eg), m_var (var)
!   {}
  
!   void
!   fixup_for_epath (const exploded_path &epath,
! 		   pending_location &ploc) const final override
    {
      logger * const logger = m_eg.get_logger ();
      LOG_FUNC (logger);
  
+     /* Handle the interprocedural case where we leak the retval at a return
+        because the caller discards the return value.  */
+     if (m_var
+ 	&& TREE_CODE (m_var) == RESULT_DECL)
+       {
+ 	auto &point = ploc.m_enode->get_point ();
+ 	if (point.get_stack_depth () > 1)
+ 	  if (point.get_supernode ()->exit_p ())
+ 	    {
+ 	      /* Get the program_point for the call within the caller.  */
+ 	      auto &cs = point.get_call_string ();
+ 	      auto caller_snode = cs.get_return_node_in_caller ();
+ 	      gcc_assert (caller_snode);
+ 	      program_point caller_point (caller_snode, *cs.get_parent ());
+ 	      ploc.m_event_loc_info = event_loc_info (caller_point);
+ 	      return;
+ 	    }
+       }
+ 
+     /* Handle the case where we have e.g.:
+        |   var = malloc (N);
+        |   var = NULL;
+        which with SSA becomes e.g.:
+        |   var_0 = malloc (N);
+        |   var_1 = nullptr;
+        and thus leads to the leak being found at the enode where "var_0" goes
+        out of scope.
+        Fix up the location of the leak to report it at the write of NULL.  */
      if (m_var && TREE_CODE (m_var) == SSA_NAME)
        {
+ 	log_scope sentinel (logger, "looking for write to sibling SSA name");
  	/* Locate the final write to this SSA name in the path.  */
  	const gimple *def_stmt = SSA_NAME_DEF_STMT (m_var);
  
  	int idx_of_def_stmt;
! 	if (epath.find_stmt_backwards (def_stmt, &idx_of_def_stmt))
! 	  {
! 	    /* What was the next write to the underlying var
! 	       after the SSA name was set? (if any).  */
  
! 	    for (unsigned idx = idx_of_def_stmt + 1;
! 		 idx < epath.m_edges.length ();
! 		 ++idx)
! 	      {
! 		const exploded_edge *eedge = epath.m_edges[idx];
! 		if (logger)
! 		  logger->log ("eedge[%i]: EN %i -> EN %i",
! 			       idx,
! 			       eedge->m_src->m_index,
! 			       eedge->m_dest->m_index);
! 		const gimple *stmt = eedge->maybe_get_stmt ();
! 		if (!stmt)
! 		  continue;
! 		if (const gassign *assign = dyn_cast <const gassign *> (stmt))
! 		  {
! 		    tree lhs = gimple_assign_lhs (assign);
! 		    if (TREE_CODE (lhs) == SSA_NAME
! 			&& SSA_NAME_VAR (lhs) == SSA_NAME_VAR (m_var))
! 		      {
! 			if (logger)
! 			  logger->log ("using location 0%lx from gassign",
! 				       assign->location);
! 			ploc.m_event_loc_info.m_loc = assign->location;
! 			return;
! 		      }
! 		  }
! 	      }
! 	  }
!       }
  
!     /* If the epath ends at a function exit node, the location is at
!        the final "}".  Try walking backward along EPATH, looking for a
!        the first suitable stmt with a better location.  */
!     gcc_assert (ploc.m_enode->get_supernode ());
!     const greturn *return_stmt = nullptr;
!     if (ploc.m_enode->get_supernode ()->exit_p ()
! 	&& has_return_stmt_p (epath, return_stmt, logger))
!       {
! 	/* If we have "return SSA_NAME;" on EPATH, keep track of the
! 	   pertinent SSA name as we walk backwards through EPATH.  */
! 	tree retval = NULL_TREE;
! 	if (return_stmt)
! 	  retval = gimple_return_retval (return_stmt);
! 
! 	log_scope sentinel (logger, "walking backward along epath");
! 	int idx;
! 	const exploded_edge *eedge;
! 	FOR_EACH_VEC_ELT_REVERSE (epath.m_edges, idx, eedge)
  	  {
  	    if (logger)
  	      {
! 		logger->log ("eedge[%i]: EN %i -> EN %i",
! 			     idx,
! 			     eedge->m_src->m_index,
! 			     eedge->m_dest->m_index);
! 		if (retval)
! 		  logger->log ("  retval: %qE", retval);
! 	      }
! 	    if (auto op = eedge->maybe_get_op ())
! 	      {
! 		if (retval)
! 		  if (auto phis = op->dyn_cast_phis_for_edge_op ())
! 		    {
! 		      for (auto iter : phis->get_pairs ())
! 			if (retval == iter.m_dst)
! 			  {
! 			    /* We have "PHI(RETVAL = SRC);"
! 			       Track SRC instead  */
! 			    retval = iter.m_src;
! 			    if (logger)
! 			      logger->log ("updating retval to %qE", retval);
! 			  }
! 		    }
! 		if (const gimple *stmt = op->maybe_get_stmt ())
! 		  if (consider_stmt_location_p (*stmt, retval))
! 		    if (useful_location_p (stmt->location))
! 		      {
! 			if (logger)
! 			  logger->log ("using location 0x%lx from stmt",
! 				       stmt->location);
! 			ploc.m_event_loc_info.m_loc = stmt->location;
! 			return;
! 		      }
  	      }
  	  }
        }
+   }
  
! private:
!   static bool
!   has_return_stmt_p (const exploded_path &epath,
! 		     const greturn *&out_greturn,
! 		     logger *logger)
!   {
!     LOG_SCOPE (logger);
  
!     int idx;
      const exploded_edge *eedge;
!     FOR_EACH_VEC_ELT_REVERSE (epath.m_edges, idx, eedge)
        {
! 	if (eedge->m_src->get_stack_depth ()
! 	    != eedge->m_dest->get_stack_depth ())
! 	  {
! 	    /* We have interprocedural activity, and
! 	       presumably are no longer in the function where
! 	       EPATH terminates.
! 	       Give up.  */
! 	    return false;
! 	  }
! 	if (auto op = eedge->maybe_get_op ())
! 	  {
! 	    switch (op->get_kind ())
! 	      {
! 	      default:
! 		break;
! 	      case operation::kind::return_stmt:
! 		if (logger)
! 		  logger->log ("found return_stmt");
! 		out_greturn = &((const greturn_op *)op)->get_greturn ();
! 		return true;
! 	      case operation::kind::predict_stmt:
! 		{
! 		  auto &stmt = ((const gimple_stmt_op *)op)->get_stmt ();
! 		  switch (gimple_predict_predictor (&stmt))
! 		    {
! 		    case PRED_TREE_EARLY_RETURN:
! 		      /* Assume this is due to a "return;" in the user's
! 			 code.  */
! 		      if (logger)
! 			logger->log ("assuming a return: PRED_TREE_EARLY_RETURN");
! 		      return true;
! 		    default:
! 		      break;
! 		    }
! 		}
! 		break;
! 	      }
! 	  }
        }
!     return false;
    }
  
!   /* When certain statements show up on the epath of a leak
!      at an exit node, if they have locations, these locations
!      tend to be better locations for the leak.
!      Return true for such statements (but without checking their
!      locations).  */
!   static bool
!   consider_stmt_location_p (const gimple &stmt,
! 			    tree retval)
    {
!     if (retval && TREE_CODE (retval) == SSA_NAME)
!       if (&stmt == SSA_NAME_DEF_STMT (retval))
! 	return true;
! 
!     switch (stmt.code)
!       {
!       default:
! 	break;
!       case GIMPLE_CALL:
! 	{
! 	  const gcall &call = *as_a <const gcall *> (&stmt);
! 	  if (is_cxa_end_catch_p (call))
! 	    return true;
! 	}
! 	break;
!       case GIMPLE_PREDICT:
!       case GIMPLE_RETURN:
! 	return true;
!       }
!     return false;
    }
  
    const exploded_graph &m_eg;
    tree m_var;
  };
  
+ std::unique_ptr<pending_location::fixer_for_epath>
+ make_ploc_fixer_for_epath_for_leak_diagnostic (const exploded_graph &eg,
+ 					  tree var)
+ {
+   return std::make_unique<leak_ploc_fixer_for_epath> (eg, var);
+ }
+ 
  /* A measurement of how good EXPR is for presenting to the user, so
     that e.g. we can say prefer printing
       "leak of 'tmp.m_ptr'"
*************** returning_from_function_p (const superno
*** 844,856 ****
    const supernode *iter = snode;
    while (true)
      {
!       if (iter->return_p ())
  	return true;
        if (iter->m_succs.length () != 1)
  	return false;
        const superedge *sedge = iter->m_succs[0];
!       if (sedge->get_kind () != SUPEREDGE_CFG_EDGE)
! 	return false;
        iter = sedge->m_dest;
  
        /* Impose a limit to ensure we terminate for pathological cases.
--- 704,719 ----
    const supernode *iter = snode;
    while (true)
      {
!       if (iter->exit_p ())
  	return true;
        if (iter->m_succs.length () != 1)
  	return false;
        const superedge *sedge = iter->m_succs[0];
! 
!       if (auto op = sedge->get_op ())
! 	if (op->get_kind () == operation::kind::return_stmt)
! 	  return true;
! 
        iter = sedge->m_dest;
  
        /* Impose a limit to ensure we terminate for pathological cases.
*************** returning_from_function_p (const superno
*** 864,870 ****
  	   return _val;
  
  	   EXIT BB.*/
!       if (++count > 3)
  	return false;
      }
  }
--- 727,733 ----
  	   return _val;
  
  	   EXIT BB.*/
!       if (++count > 4)
  	return false;
      }
  }
*************** impl_region_model_context::on_state_leak
*** 920,926 ****
  	logger->log ("best leaked_tree: NULL");
      }
  
-   leak_stmt_finder stmt_finder (*m_eg, leaked_tree);
    gcc_assert (m_enode_for_diag);
  
    /* Don't complain about leaks when returning from "main".  */
--- 783,788 ----
*************** impl_region_model_context::on_state_leak
*** 936,950 ****
      }
  
    tree leaked_tree_for_diag = fixup_tree_for_diagnostic (leaked_tree);
!   std::unique_ptr<pending_diagnostic> pd = sm.on_leak (leaked_tree_for_diag);
    if (pd)
      {
!       pending_location ploc (m_enode_for_diag,
! 			     m_enode_for_diag->get_supernode (),
! 			     m_stmt,
! 			     &stmt_finder);
        m_eg->get_diagnostic_manager ().add_diagnostic
! 	(&sm, ploc,
  	 leaked_tree_for_diag, sval, state, std::move (pd));
      }
  }
--- 798,813 ----
      }
  
    tree leaked_tree_for_diag = fixup_tree_for_diagnostic (leaked_tree);
!   std::unique_ptr<pending_diagnostic> pd = sm.on_leak (leaked_tree_for_diag,
! 						       m_old_state,
! 						       m_new_state);
    if (pd)
      {
!       pending_location ploc (get_pending_location_for_diag ());
!       ploc.m_fixer_for_epath
! 	= std::make_unique<leak_ploc_fixer_for_epath> (*m_eg, leaked_tree);
        m_eg->get_diagnostic_manager ().add_diagnostic
! 	(&sm, std::move (ploc),
  	 leaked_tree_for_diag, sval, state, std::move (pd));
      }
  }
*************** impl_region_model_context::on_condition
*** 968,979 ****
  			       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),
! 		       m_stmt,
! 		       lhs, op, rhs);
      }
  }
  
--- 831,837 ----
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_condition (sm_ctxt, lhs, op, rhs);
      }
  }
  
*************** impl_region_model_context::on_bounded_ra
*** 995,1005 ****
  			       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),
! 			    m_stmt, sval, ranges);
      }
  }
  
--- 853,859 ----
  			       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, sval, ranges);
      }
  }
  
*************** impl_region_model_context::on_phi (const
*** 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);
      }
  }
  
--- 890,896 ----
  			       m_old_state->m_checker_states[sm_idx],
  			       m_new_state->m_checker_states[sm_idx],
  			       m_path_ctxt);
!       sm.on_phi (sm_ctxt, phi, rhs);
      }
  }
  
*************** impl_region_model_context::on_unexpected
*** 1050,1060 ****
  {
    logger * const logger = get_logger ();
    if (logger)
!     logger->log ("unhandled tree code: %qs in %qs at %s:%i",
! 		 get_tree_code_name (TREE_CODE (t)),
! 		 loc.get_impl_location ().m_function,
! 		 loc.get_impl_location ().m_file,
! 		 loc.get_impl_location ().m_line);
    if (m_new_state)
      m_new_state->m_valid = false;
  }
--- 904,918 ----
  {
    logger * const logger = get_logger ();
    if (logger)
!     {
!       const dump_impl_location_t &impl_loc = loc.get_impl_location ();
!       const char *unknown = "<unknown>";
!       logger->log ("unhandled tree code: %qs in %qs at %s:%i",
! 		   get_tree_code_name (TREE_CODE (t)),
! 		   impl_loc.m_function ? impl_loc.m_function : unknown,
! 		   impl_loc.m_file ? impl_loc.m_file : unknown,
! 		   impl_loc.m_line);
!     }
    if (m_new_state)
      m_new_state->m_valid = false;
  }
*************** impl_region_model_context::maybe_did_wor
*** 1070,1075 ****
--- 928,942 ----
      *m_out_could_have_done_work = true;
  }
  
+ pending_location
+ impl_region_model_context::get_pending_location_for_diag () const
+ {
+   if (m_stmt && useful_location_p (m_stmt->location))
+     return pending_location (m_enode_for_diag, m_stmt->location);
+   else
+     return pending_location (m_enode_for_diag);
+ }
+ 
  /* struct point_and_state.  */
  
  /* Assert that this object is sane.  */
*************** exploded_node::status_to_str (enum statu
*** 1207,1216 ****
    switch (s)
      {
      default: gcc_unreachable ();
!     case STATUS_WORKLIST: return "WORKLIST";
!     case STATUS_PROCESSED: return "PROCESSED";
!     case STATUS_MERGER: return "MERGER";
!     case STATUS_BULK_MERGED: return "BULK_MERGED";
      }
  }
  
--- 1074,1084 ----
    switch (s)
      {
      default: gcc_unreachable ();
!     case status::worklist: return "worklist";
!     case status::processed: return "processed";
!     case status::special: return "special";
!     case status::merger: return "merger";
!     case status::bulk_merged: return "bulk_merged";
      }
  }
  
*************** exploded_node::status_to_str (enum statu
*** 1218,1246 ****
  
  exploded_node::exploded_node (const point_and_state &ps,
  			      int index)
! : m_ps (ps), m_status (STATUS_WORKLIST), m_index (index),
    m_num_processed_stmts (0)
  {
    gcc_checking_assert (ps.get_state ().m_region_model->canonicalized_p ());
  }
  
- /* Get the stmt that was processed in this enode at index IDX.
-    IDX is an index within the stmts processed at this enode, rather
-    than within those of the supernode.  */
- 
- const gimple *
- exploded_node::get_processed_stmt (unsigned idx) const
- {
-   gcc_assert (idx < m_num_processed_stmts);
-   const program_point &point = get_point ();
-   gcc_assert (point.get_kind () == PK_BEFORE_STMT);
-   const supernode *snode = get_supernode ();
-   const unsigned int point_stmt_idx = point.get_stmt_idx ();
-   const unsigned int idx_within_snode = point_stmt_idx + idx;
-   const gimple *stmt = snode->m_stmts[idx_within_snode];
-   return stmt;
- }
- 
  /* For use by dump_dot, get a value for the .dot "fillcolor" attribute.
     Colorize by sm-state, to make it easier to see how sm-state propagates
     through the exploded_graph.  */
--- 1086,1097 ----
  
  exploded_node::exploded_node (const point_and_state &ps,
  			      int index)
! : m_ps (ps), m_status (status::worklist), m_index (index),
    m_num_processed_stmts (0)
  {
    gcc_checking_assert (ps.get_state ().m_region_model->canonicalized_p ());
  }
  
  /* For use by dump_dot, get a value for the .dot "fillcolor" attribute.
     Colorize by sm-state, to make it easier to see how sm-state propagates
     through the exploded_graph.  */
*************** exploded_node::dump_dot (graphviz_out *g
*** 1296,1304 ****
    pp_write_text_to_stream (pp);
  
    pp_printf (pp, "EN: %i", m_index);
!   if (m_status == STATUS_MERGER)
      pp_string (pp, " (merger)");
!   else if (m_status == STATUS_BULK_MERGED)
      pp_string (pp, " (bulk merged)");
    pp_newline (pp);
  
--- 1147,1155 ----
    pp_write_text_to_stream (pp);
  
    pp_printf (pp, "EN: %i", m_index);
!   if (m_status == status::merger)
      pp_string (pp, " (merger)");
!   else if (m_status == status::bulk_merged)
      pp_string (pp, " (bulk merged)");
    pp_newline (pp);
  
*************** exploded_node::dump_dot (graphviz_out *g
*** 1308,1319 ****
        m_ps.get_point ().print (pp, f);
        pp_newline (pp);
  
!       const extrinsic_state &ext_state = args.m_eg.get_ext_state ();
!       const program_state &state = m_ps.get_state ();
!       state.dump_to_pp (ext_state, false, true, pp);
!       pp_newline (pp);
  
!       dump_processed_stmts (pp);
      }
  
    dump_saved_diagnostics (pp);
--- 1159,1179 ----
        m_ps.get_point ().print (pp, f);
        pp_newline (pp);
  
!       bool show_state = true;
  
!       /* Don't show the state if we have a single predecessor
! 	 and the state hasn't changed.  */
!       if (m_preds.length () == 1
! 	  && get_state () == m_preds[0]->m_src->get_state ())
! 	show_state = false;
! 
!       if (show_state)
! 	{
! 	  const extrinsic_state &ext_state = args.m_eg.get_ext_state ();
! 	  const program_state &state = m_ps.get_state ();
! 	  state.dump_to_pp (ext_state, false, true, pp);
! 	  pp_newline (pp);
! 	}
      }
  
    dump_saved_diagnostics (pp);
*************** exploded_node::dump_dot (graphviz_out *g
*** 1347,1377 ****
    pp_flush (pp);
  }
  
- /* Show any stmts that were processed within this enode,
-    and their index within the supernode.  */
- void
- exploded_node::dump_processed_stmts (pretty_printer *pp) const
- {
-   if (m_num_processed_stmts > 0)
-     {
-       const program_point &point = get_point ();
-       gcc_assert (point.get_kind () == PK_BEFORE_STMT);
-       const supernode *snode = get_supernode ();
-       const unsigned int point_stmt_idx = point.get_stmt_idx ();
- 
-       pp_printf (pp, "stmts: %i", m_num_processed_stmts);
-       pp_newline (pp);
-       for (unsigned i = 0; i < m_num_processed_stmts; i++)
- 	{
- 	  const unsigned int idx_within_snode = point_stmt_idx + i;
- 	  const gimple *stmt = snode->m_stmts[idx_within_snode];
- 	  pp_printf (pp, "  %i: ", idx_within_snode);
- 	  pp_gimple_stmt_1 (pp, stmt, 0, (dump_flags_t)0);
- 	  pp_newline (pp);
- 	}
-     }
- }
- 
  /* Dump any saved_diagnostics at this enode to PP.  */
  
  void
--- 1207,1212 ----
*************** exploded_node::dump (const extrinsic_sta
*** 1440,1446 ****
  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));
--- 1275,1281 ----
  std::unique_ptr<json::object>
  exploded_node::to_json (const extrinsic_state &ext_state) const
  {
!   auto enode_obj = std::make_unique<json::object> ();
  
    enode_obj->set ("point", get_point ().to_json ());
    enode_obj->set ("state", get_state ().to_json (ext_state));
*************** fndecl_has_gimple_body_p (tree fndecl)
*** 1471,1798 ****
  
  namespace ana {
  
- /* Modify STATE in place, applying the effects of the stmt at this node's
-    point.  */
- 
- exploded_node::on_stmt_flags
- exploded_node::on_stmt (exploded_graph &eg,
- 			const supernode *snode,
- 			const gimple *stmt,
- 			program_state *state,
- 			uncertainty_t *uncertainty,
- 			bool *out_could_have_done_work,
- 			path_context *path_ctxt)
- {
-   logger *logger = eg.get_logger ();
-   LOG_SCOPE (logger);
-   if (logger)
-     {
-       logger->start_log_line ();
-       pp_gimple_stmt_1 (logger->get_printer (), stmt, 0, (dump_flags_t)0);
-       logger->end_log_line ();
-     }
- 
-   /* Update input_location in case of ICE: make it easier to track down which
-      source construct we're failing to handle.  */
-   input_location = stmt->location;
- 
-   gcc_assert (state->m_region_model);
- 
-   /* Preserve the old state.  It is used here for looking
-      up old checker states, for determining state transitions, and
-      also within impl_region_model_context and impl_sm_context for
-      going from tree to svalue_id.  */
-   const program_state old_state (*state);
- 
-   impl_region_model_context ctxt (eg, this,
- 				  &old_state, state, uncertainty,
- 				  path_ctxt, stmt, nullptr,
- 				  out_could_have_done_work);
- 
-   /* Handle call summaries here.  */
-   if (cgraph_edge *cgedge
- 	  = supergraph_call_edge (snode->get_function (), stmt))
-     if (eg.get_analysis_plan ().use_summary_p (cgedge))
-       {
- 	function *called_fn = get_ultimate_function_for_cgraph_edge (cgedge);
- 	per_function_data *called_fn_data
- 	  = eg.get_per_function_data (called_fn);
- 	if (called_fn_data)
- 	  {
- 	    gcc_assert (called_fn);
- 	    return replay_call_summaries (eg,
- 					  snode,
- 					  as_a <const gcall *> (stmt),
- 					  state,
- 					  path_ctxt,
- 					  *called_fn,
- 					  *called_fn_data,
- 					  &ctxt);
- 	  }
-       }
- 
-   bool unknown_side_effects = false;
-   bool terminate_path = false;
- 
-   on_stmt_pre (eg, stmt, state, &terminate_path,
- 	       &unknown_side_effects, &ctxt);
- 
-   if (terminate_path)
-     return on_stmt_flags::terminate_path ();
- 
-   int sm_idx;
-   sm_state_map *smap;
-   FOR_EACH_VEC_ELT (old_state.m_checker_states, sm_idx, smap)
-     {
-       const state_machine &sm = eg.get_ext_state ().get_sm (sm_idx);
-       const sm_state_map *old_smap
- 	= old_state.m_checker_states[sm_idx];
-       sm_state_map *new_smap = state->m_checker_states[sm_idx];
-       impl_sm_context sm_ctxt (eg, sm_idx, sm, this, &old_state, state,
- 			       old_smap, new_smap, path_ctxt, NULL,
- 			       unknown_side_effects);
- 
-       /* Allow the state_machine to handle the stmt.  */
-       if (sm.on_stmt (sm_ctxt, snode, stmt))
- 	unknown_side_effects = false;
-     }
- 
-   if (path_ctxt->terminate_path_p ())
-     return on_stmt_flags::terminate_path ();
- 
-   on_stmt_post (stmt, state, unknown_side_effects, &ctxt);
- 
-   return on_stmt_flags ();
- }
- 
- /* Handle the pre-sm-state part of STMT, modifying STATE in-place.
-    Write true to *OUT_TERMINATE_PATH if the path should be terminated.
-    Write true to *OUT_UNKNOWN_SIDE_EFFECTS if the stmt has unknown
-    side effects.  */
- 
- void
- exploded_node::on_stmt_pre (exploded_graph &eg,
- 			    const gimple *stmt,
- 			    program_state *state,
- 			    bool *out_terminate_path,
- 			    bool *out_unknown_side_effects,
- 			    region_model_context *ctxt)
- {
-   /* Handle special-case calls that require the full program_state.  */
-   if (const gcall *call = dyn_cast <const gcall *> (stmt))
-     {
-       if (is_special_named_call_p (call, "__analyzer_dump", 0))
- 	{
- 	  /* Handle the builtin "__analyzer_dump" by dumping state
- 	     to stderr.  */
- 	  state->dump (eg.get_ext_state (), true);
- 	  return;
- 	}
-       else if (is_special_named_call_p (call, "__analyzer_dump_state", 2))
- 	{
- 	  state->impl_call_analyzer_dump_state (call, eg.get_ext_state (),
- 						ctxt);
- 	  return;
- 	}
-       else if (is_setjmp_call_p (call))
- 	{
- 	  state->m_region_model->on_setjmp (call, this, ctxt);
- 	  if (ctxt)
- 	    ctxt->maybe_did_work ();
- 	  return;
- 	}
-       else if (is_longjmp_call_p (call))
- 	{
- 	  on_longjmp (eg, call, state, ctxt);
- 	  *out_terminate_path = true;
- 	  if (ctxt)
- 	    ctxt->maybe_did_work ();
- 	  return;
- 	}
-     }
- 
-   /* Otherwise, defer to m_region_model.  */
-   state->m_region_model->on_stmt_pre (stmt,
- 				      out_unknown_side_effects,
- 				      ctxt);
- }
- 
- /* Handle the post-sm-state part of STMT, modifying STATE in-place.  */
- 
- void
- exploded_node::on_stmt_post (const gimple *stmt,
- 			     program_state *state,
- 			     bool unknown_side_effects,
- 			     region_model_context *ctxt)
- {
-   if (const gcall *call = dyn_cast <const gcall *> (stmt))
-     state->m_region_model->on_call_post (call, unknown_side_effects, ctxt);
- }
- 
- /* A concrete call_info subclass representing a replay of a call summary.  */
- 
- class call_summary_edge_info : public call_info
- {
- public:
-   call_summary_edge_info (const call_details &cd,
- 			  const function &called_fn,
- 			  call_summary *summary,
- 			  const extrinsic_state &ext_state)
-   : call_info (cd, called_fn),
-     m_called_fn (called_fn),
-     m_summary (summary),
-     m_ext_state (ext_state)
-   {}
- 
-   bool update_state (program_state *state,
- 		     const exploded_edge *,
- 		     region_model_context *ctxt) const final override
-   {
-     /* Update STATE based on summary_end_state.  */
-     call_details cd (get_call_details (state->m_region_model, ctxt));
-     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
-     const program_state &summary_end_state = m_summary->get_state ();
-     return state->replay_call_summary (r, summary_end_state);
-   }
- 
-   bool update_model (region_model *model,
- 		     const exploded_edge *,
- 		     region_model_context *ctxt) const final override
-   {
-     /* Update STATE based on summary_end_state.  */
-     call_details cd (get_call_details (model, ctxt));
-     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
-     const program_state &summary_end_state = m_summary->get_state ();
-     model->replay_call_summary (r, *summary_end_state.m_region_model);
-     return true;
-   }
- 
-   void print_desc (pretty_printer &pp) const final override
-   {
-     pp_string (&pp, m_summary->get_desc ().get ());
-   }
- 
- private:
-   const function &m_called_fn;
-   call_summary *m_summary;
-   const extrinsic_state &m_ext_state;
- };
- 
- /* Use PATH_CTXT to bifurcate, which when handled will add custom edges
-    for a replay of the various feasible summaries in CALLED_FN_DATA.  */
- 
- exploded_node::on_stmt_flags
- exploded_node::replay_call_summaries (exploded_graph &eg,
- 				      const supernode *snode,
- 				      const gcall *call_stmt,
- 				      program_state *state,
- 				      path_context *path_ctxt,
- 				      const function &called_fn,
- 				      per_function_data &called_fn_data,
- 				      region_model_context *ctxt)
- {
-   logger *logger = eg.get_logger ();
-   LOG_SCOPE (logger);
- 
-   /* Each summary will call bifurcate on the PATH_CTXT.  */
-   for (auto summary : called_fn_data.m_summaries)
-     replay_call_summary (eg, snode, call_stmt, state,
- 			 path_ctxt, called_fn, summary, ctxt);
-   path_ctxt->terminate_path ();
- 
-   return on_stmt_flags ();
- }
- 
- /* Use PATH_CTXT to bifurcate, which when handled will add a
-    custom edge for a replay of SUMMARY, if the summary's
-    conditions are feasible based on the current state.  */
- 
- void
- exploded_node::replay_call_summary (exploded_graph &eg,
- 				    const supernode *snode,
- 				    const gcall *call_stmt,
- 				    program_state *old_state,
- 				    path_context *path_ctxt,
- 				    const function &called_fn,
- 				    call_summary *summary,
- 				    region_model_context *ctxt)
- {
-   logger *logger = eg.get_logger ();
-   LOG_SCOPE (logger);
-   gcc_assert (snode);
-   gcc_assert (call_stmt);
-   gcc_assert (old_state);
-   gcc_assert (summary);
- 
-   if (logger)
-     logger->log ("using %s as summary for call to %qE from %qE",
- 		 summary->get_desc ().get (),
- 		 called_fn.decl,
- 		 snode->get_function ()->decl);
-   const extrinsic_state &ext_state = eg.get_ext_state ();
-   const program_state &summary_end_state = summary->get_state ();
-   if (logger)
-     {
-       pretty_printer *pp = logger->get_printer ();
- 
-       logger->start_log_line ();
-       pp_string (pp, "callsite state: ");
-       old_state->dump_to_pp (ext_state, true, false, pp);
-       logger->end_log_line ();
- 
-       logger->start_log_line ();
-       pp_string (pp, "summary end state: ");
-       summary_end_state.dump_to_pp (ext_state, true, false, pp);
-       logger->end_log_line ();
-     }
- 
-   program_state new_state (*old_state);
- 
-   call_details cd (call_stmt, new_state.m_region_model, ctxt);
-   call_summary_replay r (cd, called_fn, summary, ext_state);
- 
-   if (path_ctxt)
-     path_ctxt->bifurcate (make_unique<call_summary_edge_info> (cd,
- 							       called_fn,
- 							       summary,
- 							       ext_state));
- }
- 
- 
- /* Consider the effect of following superedge SUCC from this node.
- 
-    Return true if it's feasible to follow the edge, or false
-    if it's infeasible.
- 
-    Examples: if it's the "true" branch within
-    a CFG and we know the conditional is false, we know it's infeasible.
-    If it's one of multiple interprocedual "return" edges, then only
-    the edge back to the most recent callsite is feasible.
- 
-    Update NEXT_STATE accordingly (e.g. to record that a condition was
-    true or false, or that the NULL-ness of a pointer has been checked,
-    pushing/popping stack frames, etc).
- 
-    Update NEXT_POINT accordingly (updating the call string).  */
- 
- bool
- exploded_node::on_edge (exploded_graph &eg,
- 			const superedge *succ,
- 			program_point *next_point,
- 			program_state *next_state,
- 			uncertainty_t *uncertainty)
- {
-   LOG_FUNC (eg.get_logger ());
- 
-   if (!next_point->on_edge (eg, succ))
-     return false;
- 
-   if (!next_state->on_edge (eg, this, succ, uncertainty))
-     return false;
- 
-   return true;
- }
- 
  /* Verify that the stack at LONGJMP_POINT is still valid, given a call
     to "setjmp" at SETJMP_POINT - the stack frame that "setjmp" was
     called in must still be valid.
--- 1306,1311 ----
*************** valid_longjmp_stack_p (const program_poi
*** 1826,1835 ****
  class stale_jmp_buf : public pending_diagnostic_subclass<stale_jmp_buf>
  {
  public:
!   stale_jmp_buf (const gcall *setjmp_call, const gcall *longjmp_call,
  		 const program_point &setjmp_point)
    : m_setjmp_call (setjmp_call), m_longjmp_call (longjmp_call),
!     m_setjmp_point (setjmp_point), m_stack_pop_event (NULL)
    {}
  
    int get_controlling_option () const final override
--- 1339,1348 ----
  class stale_jmp_buf : public pending_diagnostic_subclass<stale_jmp_buf>
  {
  public:
!   stale_jmp_buf (const gcall &setjmp_call, const gcall &longjmp_call,
  		 const program_point &setjmp_point)
    : m_setjmp_call (setjmp_call), m_longjmp_call (longjmp_call),
!     m_setjmp_point (setjmp_point), m_stack_pop_event (nullptr)
    {}
  
    int get_controlling_option () const final override
*************** public:
*** 1849,1861 ****
  
    bool operator== (const stale_jmp_buf &other) const
    {
!     return (m_setjmp_call == other.m_setjmp_call
! 	    && m_longjmp_call == other.m_longjmp_call);
    }
  
    bool
!   maybe_add_custom_events_for_superedge (const exploded_edge &eedge,
! 					 checker_path *emission_path)
      final override
    {
      /* Detect exactly when the stack first becomes invalid,
--- 1362,1374 ----
  
    bool operator== (const stale_jmp_buf &other) const
    {
!     return (&m_setjmp_call == &other.m_setjmp_call
! 	    && &m_longjmp_call == &other.m_longjmp_call);
    }
  
    bool
!   maybe_add_custom_events_for_eedge (const exploded_edge &eedge,
! 				     checker_path *emission_path)
      final override
    {
      /* Detect exactly when the stack first becomes invalid,
*************** public:
*** 1903,1910 ****
  
  
  private:
!   const gcall *m_setjmp_call;
!   const gcall *m_longjmp_call;
    program_point m_setjmp_point;
    custom_event *m_stack_pop_event;
  };
--- 1416,1423 ----
  
  
  private:
!   const gcall &m_setjmp_call;
!   const gcall &m_longjmp_call;
    program_point m_setjmp_point;
    custom_event *m_stack_pop_event;
  };
*************** private:
*** 1917,1927 ****
  
  void
  exploded_node::on_longjmp (exploded_graph &eg,
! 			   const gcall *longjmp_call,
  			   program_state *new_state,
  			   region_model_context *ctxt)
  {
!   tree buf_ptr = gimple_call_arg (longjmp_call, 0);
    gcc_assert (POINTER_TYPE_P (TREE_TYPE (buf_ptr)));
  
    region_model *new_region_model = new_state->m_region_model;
--- 1430,1440 ----
  
  void
  exploded_node::on_longjmp (exploded_graph &eg,
! 			   const gcall &longjmp_call,
  			   program_state *new_state,
  			   region_model_context *ctxt)
  {
!   tree buf_ptr = gimple_call_arg (&longjmp_call, 0);
    gcc_assert (POINTER_TYPE_P (TREE_TYPE (buf_ptr)));
  
    region_model *new_region_model = new_state->m_region_model;
*************** exploded_node::on_longjmp (exploded_grap
*** 1942,1963 ****
       call back to the setjmp/sigsetjmp.  */
    rewind_info_t rewind_info (tmp_setjmp_record, longjmp_call);
  
!   const gcall *setjmp_call = rewind_info.get_setjmp_call ();
!   const program_point &setjmp_point = rewind_info.get_setjmp_point ();
  
    const program_point &longjmp_point = get_point ();
  
    /* Verify that the setjmp's call_stack hasn't been popped.  */
!   if (!valid_longjmp_stack_p (longjmp_point, setjmp_point))
      {
!       ctxt->warn (make_unique<stale_jmp_buf> (setjmp_call,
! 					      longjmp_call,
! 					      setjmp_point));
        return;
      }
  
    gcc_assert (longjmp_point.get_stack_depth ()
! 	      >= setjmp_point.get_stack_depth ());
  
    /* Update the state for use by the destination node.  */
  
--- 1455,1477 ----
       call back to the setjmp/sigsetjmp.  */
    rewind_info_t rewind_info (tmp_setjmp_record, longjmp_call);
  
!   const gcall &setjmp_call = rewind_info.get_setjmp_call ();
!   const program_point point_before_setjmp = rewind_info.get_point_before_setjmp ();
!   const program_point point_after_setjmp = rewind_info.get_point_after_setjmp ();
  
    const program_point &longjmp_point = get_point ();
  
    /* Verify that the setjmp's call_stack hasn't been popped.  */
!   if (!valid_longjmp_stack_p (longjmp_point, point_after_setjmp))
      {
!       ctxt->warn (std::make_unique<stale_jmp_buf> (setjmp_call,
! 						   longjmp_call,
! 						   point_before_setjmp));
        return;
      }
  
    gcc_assert (longjmp_point.get_stack_depth ()
! 	      >= point_after_setjmp.get_stack_depth ());
  
    /* Update the state for use by the destination node.  */
  
*************** exploded_node::on_longjmp (exploded_grap
*** 1968,1993 ****
    unsigned prev_num_diagnostics = dm->get_num_diagnostics ();
  
    new_region_model->on_longjmp (longjmp_call, setjmp_call,
! 				setjmp_point.get_stack_depth (), ctxt);
  
    /* Detect leaks in the new state relative to the old state.  */
!   program_state::detect_leaks (get_state (), *new_state, NULL,
  				eg.get_ext_state (), ctxt);
- 
-   program_point next_point
-     = program_point::after_supernode (setjmp_point.get_supernode (),
- 				      setjmp_point.get_call_string ());
- 
    exploded_node *next
!     = eg.get_or_create_node (next_point, *new_state, this);
  
    /* Create custom exploded_edge for a longjmp.  */
    if (next)
      {
        exploded_edge *eedge
! 	= eg.add_edge (const_cast<exploded_node *> (this), next, NULL, true,
! 		       make_unique<rewind_info_t> (tmp_setjmp_record,
! 						   longjmp_call));
  
        /* For any diagnostics that were queued here (such as leaks) we want
  	 the checker_path to show the rewinding events after the "final event"
--- 1482,1502 ----
    unsigned prev_num_diagnostics = dm->get_num_diagnostics ();
  
    new_region_model->on_longjmp (longjmp_call, setjmp_call,
! 				point_after_setjmp.get_stack_depth (), ctxt);
  
    /* Detect leaks in the new state relative to the old state.  */
!   program_state::detect_leaks (get_state (), *new_state, nullptr,
  				eg.get_ext_state (), ctxt);
    exploded_node *next
!     = eg.get_or_create_node (point_after_setjmp, *new_state, this);
  
    /* Create custom exploded_edge for a longjmp.  */
    if (next)
      {
        exploded_edge *eedge
! 	= eg.add_edge (const_cast<exploded_node *> (this), next, nullptr, true,
! 		       std::make_unique<rewind_info_t> (tmp_setjmp_record,
! 							longjmp_call));
  
        /* For any diagnostics that were queued here (such as leaks) we want
  	 the checker_path to show the rewinding events after the "final event"
*************** exploded_node::on_longjmp (exploded_grap
*** 2025,2030 ****
--- 1534,1864 ----
      }
  }
  
+ /* Subclass of call_info for exploded edges that express
+    a throw or rethrow of an exception (actually a call
+    to __cxa_throw or __cxa_rethrow).  */
+ 
+ class throw_custom_edge : public call_info
+ {
+ public:
+   throw_custom_edge (const call_details &cd,
+ 		     tree type,
+ 		     bool is_rethrow)
+   : call_info (cd),
+     m_type (type),
+     m_is_rethrow (is_rethrow)
+   {
+   }
+ 
+   void print (pretty_printer *pp) const final override
+   {
+     if (m_is_rethrow)
+       {
+ 	if (m_type)
+ 	  pp_printf (pp, "rethrowing %qT", m_type);
+ 	else
+ 	  pp_printf (pp, "rethrowing");
+       }
+     else
+       {
+ 	if (m_type)
+ 	  pp_printf (pp, "throwing %qT", m_type);
+ 	else
+ 	  pp_printf (pp, "throwing");
+       }
+   }
+ 
+   void print_desc (pretty_printer &pp) const final override
+   {
+     print (&pp);
+   }
+ 
+   bool update_model (region_model *model,
+ 		     const exploded_edge *,
+ 		     region_model_context *ctxt) const final override
+   {
+     if (m_is_rethrow)
+       {
+ 	if (auto eh_node = model->get_current_caught_exception ())
+ 	  model->push_thrown_exception (*eh_node);
+ 	else
+ 	  {
+ 	    /* We have a rethrow of some unknown exception.
+ 	       We don't have a good way of representing this;
+ 	       leave the exception stack empty.  */
+ 	  }
+       }
+     else
+       {
+ 	call_details cd (get_call_details (model, ctxt));
+ 
+ 	const svalue *exception_sval = cd.get_arg_svalue (0);
+ 	const svalue *tinfo_sval = cd.get_arg_svalue (1);
+ 	const svalue *destructor_sval = cd.get_arg_svalue (2);
+ 
+ 	/* Push a new exception_node on the model's m_exception_stack.  */
+ 	exception_node eh_node (exception_sval, tinfo_sval, destructor_sval);
+ 	model->push_thrown_exception (eh_node);
+       }
+ 
+     return true;
+   }
+ 
+   void add_events_to_path (checker_path *emission_path,
+ 			   const exploded_edge &eedge,
+ 			   pending_diagnostic &) const final override
+   {
+     const exploded_node *dst_node = eedge.m_dest;
+     const program_point &dst_point = dst_node->get_point ();
+     const int dst_stack_depth = dst_point.get_stack_depth ();
+ 
+     const gcall &call = get_call_stmt ();
+ 
+     emission_path->add_event
+       (std::make_unique<explicit_throw_event>
+ 	 (event_loc_info (call.location,
+ 			  dst_point.get_fndecl (),
+ 			  dst_stack_depth),
+ 	  dst_node,
+ 	  call,
+ 	  m_type,
+ 	  m_is_rethrow));
+   }
+ 
+ private:
+   tree m_type;
+   bool m_is_rethrow;
+ };
+ 
+ /* Subclass of custom_edge_info for an exploded edge that expresses
+    unwinding one stack frame during exception handling.  */
+ 
+ class unwind_custom_edge : public custom_edge_info
+ {
+ public:
+   unwind_custom_edge (location_t loc)
+   : m_loc (loc)
+   {
+   }
+ 
+   void print (pretty_printer *pp) const final override
+   {
+     pp_printf (pp, "unwinding frame");
+   }
+ 
+   bool update_model (region_model *model,
+ 		     const exploded_edge *,
+ 		     region_model_context *ctxt) const final override
+   {
+     model->pop_frame (NULL_TREE, nullptr, ctxt, nullptr, false);
+     return true;
+   }
+ 
+   void add_events_to_path (checker_path *emission_path,
+ 			   const exploded_edge &eedge,
+ 			   pending_diagnostic &) const final override
+   {
+     const exploded_node *src_node = eedge.m_src;
+     const program_point &src_point = src_node->get_point ();
+     const int src_stack_depth = src_point.get_stack_depth ();
+     emission_path->add_event
+       (std::make_unique<unwind_event> (event_loc_info (m_loc,
+ 						       src_point.get_fndecl (),
+ 						       src_stack_depth)));
+   }
+ 
+ private:
+   location_t m_loc;
+ };
+ 
+ /* Locate an SNODE that's a CFG edge with the EH flag,
+    or return nullptr. */
+ 
+ static const superedge *
+ get_eh_outedge (const supernode &snode)
+ {
+   for (auto out_sedge : snode.m_succs)
+     if (::edge cfg_edge = out_sedge->get_any_cfg_edge ())
+       if (cfg_edge->flags & EDGE_EH)
+ 	return out_sedge;
+ 
+   // Not found
+   return nullptr;
+ }
+ 
+ /* Given THROWN_ENODE, which expreses a throw or rethrow occurring at
+    THROW_STMT, unwind intraprocedurally and interprocedurally to find
+    the next eh_dispatch statement to handle exceptions, if any.
+ 
+    Add eedges and enodes to this graph expressing the actions taken
+    to reach an enode containing the eh_dispatch stmt, if any.
+    Only the final enode is added to this graph's worklist.
+ 
+    Use CTXT to warn about problems e.g. memory leaks due to stack frames
+    being unwound.  */
+ 
+ void
+ exploded_graph::unwind_from_exception (exploded_node &thrown_enode,
+ 				       const gimple *throw_stmt,
+ 				       region_model_context *ctxt)
+ {
+   logger * const logger = get_logger ();
+   LOG_FUNC_1 (logger, "thrown EN: %i", thrown_enode.m_index);
+ 
+   /* Iteratively unwind the stack looking for an out-cfg-edge
+      flagged EH.  */
+   exploded_node *iter_enode = &thrown_enode;
+   while (iter_enode)
+     {
+       /* If we have an out-cfg-edge flagged EH, follow that,
+ 	 presumably to a bb with a label and an eh_dispatch stmt.
+ 	 Otherwise assume no out-cfgs-edges, and we are unwinding to the
+ 	 caller.  */
+       if (auto sedge = get_eh_outedge (*iter_enode->get_supernode ()))
+ 	{
+ 	  /* Intraprocedural case.
+ 	     Assume we have an out-edge flagged with EH leading to
+ 	     code for dispatch to catch handlers.  */
+ 	  const program_point next_point
+ 	    (sedge->m_dest,
+ 	     iter_enode->get_point ().get_call_string ());
+ 	  exploded_node *next_enode
+ 	    = get_or_create_node (next_point,
+ 				  iter_enode->get_state (),
+ 				  iter_enode,
+ 				  /* Add this enode to the worklist.  */
+ 				  true);
+ 	  if (!next_enode)
+ 	    return;
+ 
+ 	  add_edge (iter_enode, next_enode, nullptr, false, nullptr);
+ 	  return;
+ 	}
+       else
+ 	{
+ 	  /* Interprocedural case.
+ 	     No out-cfg-edge.  Unwind one stack frame.  */
+ 	  program_state unwound_state (iter_enode->get_state ());
+ 	  location_t loc = throw_stmt ? throw_stmt->location : UNKNOWN_LOCATION;
+ 	  auto unwind_edge_info
+ 	    = std::make_unique<unwind_custom_edge> (loc);
+ 	  unwind_edge_info->update_model (unwound_state.m_region_model, nullptr,
+ 					  ctxt);
+ 
+ 	  /* Detect leaks in the new state relative to the old state.
+ 	     Use an alternate ctxt that uses the original enode and the stmt
+ 	     (if any) for the location of any diagnostics.  */
+ 	  {
+ 	    uncertainty_t uncertainty;
+ 	    impl_region_model_context ctxt (*this,
+ 					    &thrown_enode,
+ 					    &iter_enode->get_state (),
+ 					    &unwound_state,
+ 					    &uncertainty,
+ 					    nullptr,
+ 					    throw_stmt);
+ 	    program_state::detect_leaks (iter_enode->get_state (),
+ 					 unwound_state,
+ 					 nullptr,
+ 					 get_ext_state (), &ctxt);
+ 	  }
+ 	  const call_string &cs = iter_enode->get_point ().get_call_string ();
+ 	  if (cs.empty_p ())
+ 	    {
+ 	      /* Top-level stack frame in analysis: unwinding
+ 		 to the outside world that called us.  */
+ 	      return;
+ 	    }
+ 	  else
+ 	    {
+ 	      /* Nested function in analysis: unwinding to
+ 		 the callsite in the analysis (or beyond).  */
+ 	      program_point unwound_point (cs.get_return_node_in_caller (), cs);
+ 	      unwound_point.pop_from_call_stack ();
+ 
+ 	      exploded_node *after_unwind_enode
+ 		= get_or_create_node (unwound_point,
+ 				      std::move (unwound_state),
+ 				      iter_enode,
+ 				      /* Don't add this enode to the
+ 					 worklist; we will process it
+ 					 on the next iteration.  */
+ 				      false);
+ 
+ 	      if (!after_unwind_enode)
+ 		return;
+ 
+ 	      add_edge (iter_enode, after_unwind_enode, nullptr, true,
+ 			std::move (unwind_edge_info));
+ 	      iter_enode = after_unwind_enode;
+ 	    }
+ 	}
+     }
+ }
+ 
+ /* Handle THROW_CALL, a call to __cxa_throw or __cxa_rethrow.
+ 
+    Create an eedge and destination enode for the throw/rethrow, adding
+    them to this egraph.  The new enode isn't added to the worklist, but
+    instead exploded_graph::unwind_from_exception is immediately called
+    on it, potentially creating more eedges and enodes leading to an
+    eh_handler stmt.  */
+ 
+ void
+ exploded_node::on_throw (exploded_graph &eg,
+ 			 const gcall &throw_call,
+ 			 const program_point &after_throw_point,
+ 			 program_state *new_state,
+ 			 bool is_rethrow,
+ 			 region_model_context *ctxt)
+ {
+   region_model *model = new_state->m_region_model;
+   call_details cd (throw_call, model, ctxt);
+ 
+   if (!cd.get_fndecl_for_call ())
+     return;
+ 
+   /* Create an enode and eedge for the "throw".  */
+   tree type = NULL_TREE;
+   if (is_rethrow)
+     {
+       const exception_node *eh_node = model->get_current_caught_exception ();
+       if (eh_node)
+ 	type = eh_node->maybe_get_type ();
+       else
+ 	{
+ 	  /* We have a "throw;" but no exception to rethrow.
+ 	     Presumably the top-level of the analysis is an
+ 	     entrypoint for handling exceptions, so we will
+ 	     simulate fully unwinding.  */
+ 	}
+     }
+   else
+     {
+       const svalue *tinfo_sval = cd.get_arg_svalue (1);
+       type = tinfo_sval->maybe_get_type_from_typeinfo ();
+     }
+ 
+   auto throw_edge_info
+     = std::make_unique<throw_custom_edge> (cd, type, is_rethrow);
+   throw_edge_info->update_model (model, nullptr, ctxt);
+ 
+   exploded_node *after_throw_enode
+     = eg.get_or_create_node (after_throw_point, *new_state, this,
+ 			     /* Don't add to worklist; we process
+ 				this immediately below.  */
+ 			     false);
+ 
+   if (!after_throw_enode)
+     return;
+ 
+   /* Create custom exploded_edge for a throw.  */
+   eg.add_edge (this, after_throw_enode, nullptr, true,
+ 	       std::move (throw_edge_info));
+ 
+   eg.unwind_from_exception (*after_throw_enode, &throw_call, ctxt);
+ }
+ 
  /* Subroutine of exploded_graph::process_node for finding the successors
     of the supernode for a function exit basic block.
  
*************** exploded_node::detect_leaks (exploded_gr
*** 2036,2042 ****
  {
    LOG_FUNC_1 (eg.get_logger (), "EN: %i", m_index);
  
!   gcc_assert (get_point ().get_supernode ()->return_p ());
  
    /* If we're not a "top-level" function, do nothing; pop_frame
       will be called when handling the return superedge.  */
--- 1870,1876 ----
  {
    LOG_FUNC_1 (eg.get_logger (), "EN: %i", m_index);
  
!   gcc_assert (get_point ().get_supernode ()->exit_p ());
  
    /* If we're not a "top-level" function, do nothing; pop_frame
       will be called when handling the return superedge.  */
*************** exploded_node::detect_leaks (exploded_gr
*** 2056,2065 ****
  
    uncertainty_t uncertainty;
    impl_region_model_context ctxt (eg, this,
! 				  &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);
  }
--- 1890,1899 ----
  
    uncertainty_t uncertainty;
    impl_region_model_context ctxt (eg, this,
! 				  &old_state, &new_state, &uncertainty, nullptr,
! 				  nullptr);
!   const svalue *result = nullptr;
!   new_state.m_region_model->pop_frame (nullptr, &result, &ctxt, nullptr);
    program_state::detect_leaks (old_state, new_state, result,
  			       eg.get_ext_state (), &ctxt);
  }
*************** exploded_node::dump_succs_and_preds (FIL
*** 2091,2150 ****
    }
  }
  
! /* class dynamic_call_info_t : public custom_edge_info.  */
  
! /* Implementation of custom_edge_info::update_model vfunc
!    for dynamic_call_info_t.
  
!    Update state for a dynamically discovered call (or return), by pushing
!    or popping the a frame for the appropriate function.  */
  
  bool
! dynamic_call_info_t::update_model (region_model *model,
! 				   const exploded_edge *eedge,
! 				   region_model_context *ctxt) const
  {
!   gcc_assert (eedge);
!   if (m_is_returning_call)
!     model->update_for_return_gcall (m_dynamic_call, ctxt);
!   else
!     {
!       function *callee = eedge->m_dest->get_function ();
!       model->update_for_gcall (m_dynamic_call, ctxt, callee);
!     }
    return true;
  }
  
! /* Implementation of custom_edge_info::add_events_to_path vfunc
!    for dynamic_call_info_t.  */
  
  void
! dynamic_call_info_t::add_events_to_path (checker_path *emission_path,
! 				   const exploded_edge &eedge) const
  {
!   const exploded_node *src_node = eedge.m_src;
!   const program_point &src_point = src_node->get_point ();
!   const int src_stack_depth = src_point.get_stack_depth ();
!   const exploded_node *dest_node = eedge.m_dest;
!   const program_point &dest_point = dest_node->get_point ();
!   const int dest_stack_depth = dest_point.get_stack_depth ();
  
!   if (m_is_returning_call)
!     emission_path->add_event
!       (make_unique<return_event> (eedge,
! 				  event_loc_info (m_dynamic_call
! 						  ? m_dynamic_call->location
! 						  : UNKNOWN_LOCATION,
! 						  dest_point.get_fndecl (),
! 						  dest_stack_depth)));
!   else
!     emission_path->add_event
!       (make_unique<call_event> (eedge,
! 				event_loc_info (m_dynamic_call
! 						? m_dynamic_call->location
! 						: UNKNOWN_LOCATION,
! 						src_point.get_fndecl (),
! 						src_stack_depth)));
  }
  
  /* class rewind_info_t : public custom_edge_info.  */
--- 1925,2016 ----
    }
  }
  
! // class interprocedural_call : public custom_edge_info
  
! void
! interprocedural_call::print (pretty_printer *pp) const
! {
!   pp_string (pp, "call to ");
!   pp_gimple_stmt_1 (pp, &m_call_stmt, 0, (dump_flags_t)0);
! }
  
! void
! interprocedural_call::get_dot_attrs (const char *&/*out_style*/,
! 				     const char *&out_color) const
! {
!   out_color = "red";
! }
  
  bool
! interprocedural_call::update_state (program_state *state,
! 				    const exploded_edge *eedge,
! 				    region_model_context *ctxt) const
  {
!   return update_model (state->m_region_model, eedge, ctxt);
! }
! 
! bool
! interprocedural_call::update_model (region_model *model,
! 				    const exploded_edge */*eedge*/,
! 				    region_model_context *ctxt) const
! {
!   model->update_for_gcall (m_call_stmt, ctxt, &m_callee_fun);
    return true;
  }
  
! void
! interprocedural_call::add_events_to_path (checker_path *emission_path,
! 					  const exploded_edge &eedge,
! 					  pending_diagnostic &pd) const
! {
!   pd.add_call_event (eedge, m_call_stmt, *emission_path);
! }
! 
! // class interprocedural_return : public custom_edge_info
  
  void
! interprocedural_return::print (pretty_printer *pp) const
  {
!   pp_string (pp, "return from ");
!   pp_gimple_stmt_1 (pp, &m_call_stmt, 0, (dump_flags_t)0);
! }
  
! void
! interprocedural_return::get_dot_attrs (const char *&/*out_style*/,
! 				       const char *&out_color) const
! {
!   out_color = "green";
! }
! 
! bool
! interprocedural_return::update_state (program_state *state,
! 				      const exploded_edge *eedge,
! 				      region_model_context *ctxt) const
! {
!   return update_model (state->m_region_model, eedge, ctxt);
! }
! 
! bool
! interprocedural_return::update_model (region_model *model,
! 				      const exploded_edge */*eedge*/,
! 				      region_model_context *ctxt) const
! {
!   model->update_for_return_gcall (m_call_stmt, ctxt);
!   return true;
! }
! 
! void
! interprocedural_return::add_events_to_path (checker_path *emission_path,
! 					    const exploded_edge &eedge,
! 					    pending_diagnostic &) const
! {
!   const program_point &dst_point = eedge.m_dest->get_point ();
!   emission_path->add_event
!     (std::make_unique<return_event>
!        (eedge,
! 	event_loc_info (m_call_stmt.location,
! 			dst_point.get_fndecl (),
! 			dst_point.get_stack_depth ())));
  }
  
  /* class rewind_info_t : public custom_edge_info.  */
*************** rewind_info_t::update_model (region_mode
*** 2170,2176 ****
  
    model->on_longjmp (get_longjmp_call (),
  		     get_setjmp_call (),
! 		     setjmp_point.get_stack_depth (), NULL);
    return true;
  }
  
--- 2036,2042 ----
  
    model->on_longjmp (get_longjmp_call (),
  		     get_setjmp_call (),
! 		     setjmp_point.get_stack_depth (), nullptr);
    return true;
  }
  
*************** rewind_info_t::update_model (region_mode
*** 2179,2185 ****
  
  void
  rewind_info_t::add_events_to_path (checker_path *emission_path,
! 				   const exploded_edge &eedge) const
  {
    const exploded_node *src_node = eedge.m_src;
    const program_point &src_point = src_node->get_point ();
--- 2045,2052 ----
  
  void
  rewind_info_t::add_events_to_path (checker_path *emission_path,
! 				   const exploded_edge &eedge,
! 				   pending_diagnostic &) const
  {
    const exploded_node *src_node = eedge.m_src;
    const program_point &src_point = src_node->get_point ();
*************** rewind_info_t::add_events_to_path (check
*** 2189,2207 ****
    const int dst_stack_depth = dst_point.get_stack_depth ();
  
    emission_path->add_event
!     (make_unique<rewind_from_longjmp_event>
!      (&eedge,
!       event_loc_info (get_longjmp_call ()->location,
! 		      src_point.get_fndecl (),
! 		      src_stack_depth),
!       this));
    emission_path->add_event
!     (make_unique<rewind_to_setjmp_event>
!      (&eedge,
!       event_loc_info (get_setjmp_call ()->location,
! 		      dst_point.get_fndecl (),
! 		      dst_stack_depth),
!       this));
  }
  
  /* class exploded_edge : public dedge<eg_traits>.  */
--- 2056,2074 ----
    const int dst_stack_depth = dst_point.get_stack_depth ();
  
    emission_path->add_event
!     (std::make_unique<rewind_from_longjmp_event>
!        (&eedge,
! 	event_loc_info (get_longjmp_call ().location,
! 			src_point.get_fndecl (),
! 			src_stack_depth),
! 	this));
    emission_path->add_event
!     (std::make_unique<rewind_to_setjmp_event>
!        (&eedge,
! 	event_loc_info (get_setjmp_call ().location,
! 			dst_point.get_fndecl (),
! 			dst_stack_depth),
! 	this));
  }
  
  /* class exploded_edge : public dedge<eg_traits>.  */
*************** exploded_edge::dump_dot_label (pretty_pr
*** 2243,2276 ****
    const char *constraint = "true";
  
    if (m_sedge)
-     switch (m_sedge->m_kind)
-       {
-       default:
- 	gcc_unreachable ();
-       case SUPEREDGE_CFG_EDGE:
- 	break;
-       case SUPEREDGE_CALL:
- 	color = "red";
- 	//constraint = "false";
- 	break;
-       case SUPEREDGE_RETURN:
- 	color = "green";
- 	//constraint = "false";
- 	break;
-       case SUPEREDGE_INTRAPROCEDURAL_CALL:
- 	style = "\"dotted\"";
- 	break;
-       }
-   if (m_custom_info)
      {
!       color = "red";
!       style = "\"dotted\"";
      }
  
    pp_printf (pp,
  	     (" [style=%s, color=%s, weight=%d, constraint=%s,"
  	      " headlabel=\""),
  	     style, color, weight, constraint);
  
    if (m_sedge)
      m_sedge->dump_label_to_pp (pp, false);
--- 2110,2129 ----
    const char *constraint = "true";
  
    if (m_sedge)
      {
!       if (m_sedge->get_op ())
! 	style = "\"solid\"";
!       else
! 	style = "\"dotted\"";
      }
+   if (m_custom_info)
+     m_custom_info->get_dot_attrs (style, color);
  
    pp_printf (pp,
  	     (" [style=%s, color=%s, weight=%d, constraint=%s,"
  	      " headlabel=\""),
  	     style, color, weight, constraint);
+   pp_flush (pp);
  
    if (m_sedge)
      m_sedge->dump_label_to_pp (pp, false);
*************** exploded_edge::dump_dot_label (pretty_pr
*** 2280,2286 ****
    pp_printf (pp, "%s",
  	     could_do_work_p () ? "(could do work)" : "DOES NO WORK");
  
!   //pp_write_text_as_dot_label_to_stream (pp, /*for_record=*/false);
  
    pp_printf (pp, "\"];\n");
  }
--- 2133,2139 ----
    pp_printf (pp, "%s",
  	     could_do_work_p () ? "(could do work)" : "DOES NO WORK");
  
!   pp_write_text_as_dot_label_to_stream (pp, /*for_record=*/false);
  
    pp_printf (pp, "\"];\n");
  }
*************** exploded_edge::dump_dot_label (pretty_pr
*** 2294,2300 ****
  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)
--- 2147,2153 ----
  std::unique_ptr<json::object>
  exploded_edge::to_json () const
  {
!   auto eedge_obj = std::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)
*************** exploded_edge::to_json () const
*** 2309,2325 ****
    return eedge_obj;
  }
  
  /* struct stats.  */
  
  /* stats' ctor.  */
  
  stats::stats (int num_supernodes)
! : m_node_reuse_count (0),
    m_node_reuse_after_merge_count (0),
    m_num_supernodes (num_supernodes)
  {
-   for (int i = 0; i < NUM_POINT_KINDS; i++)
-     m_num_nodes[i] = 0;
  }
  
  /* Log these stats in multiline form to LOGGER.  */
--- 2162,2194 ----
    return eedge_obj;
  }
  
+ const gimple *
+ exploded_edge::maybe_get_stmt () const
+ {
+   auto op = maybe_get_op ();
+   if (!op)
+     return nullptr;
+   return op->maybe_get_stmt ();
+ }
+ 
+ const operation *
+ exploded_edge::maybe_get_op () const
+ {
+   if (!m_sedge)
+     return nullptr;
+   return m_sedge->get_op ();
+ }
+ 
  /* struct stats.  */
  
  /* stats' ctor.  */
  
  stats::stats (int num_supernodes)
! : m_num_nodes (0),
!   m_node_reuse_count (0),
    m_node_reuse_after_merge_count (0),
    m_num_supernodes (num_supernodes)
  {
  }
  
  /* Log these stats in multiline form to LOGGER.  */
*************** void
*** 2328,2338 ****
  stats::log (logger *logger) const
  {
    gcc_assert (logger);
!   for (int i = 0; i < NUM_POINT_KINDS; i++)
!     if (m_num_nodes[i] > 0)
!       logger->log ("m_num_nodes[%s]: %i",
! 		   point_kind_to_string (static_cast <enum point_kind> (i)),
! 		   m_num_nodes[i]);
    logger->log ("m_node_reuse_count: %i", m_node_reuse_count);
    logger->log ("m_node_reuse_after_merge_count: %i",
  	       m_node_reuse_after_merge_count);
--- 2197,2203 ----
  stats::log (logger *logger) const
  {
    gcc_assert (logger);
!   logger->log ("m_num_nodes: %i", m_num_nodes);
    logger->log ("m_node_reuse_count: %i", m_node_reuse_count);
    logger->log ("m_node_reuse_after_merge_count: %i",
  	       m_node_reuse_after_merge_count);
*************** stats::log (logger *logger) const
*** 2343,2360 ****
  void
  stats::dump (FILE *out) const
  {
!   for (int i = 0; i < NUM_POINT_KINDS; i++)
!     if (m_num_nodes[i] > 0)
!       fprintf (out, "m_num_nodes[%s]: %i\n",
! 	       point_kind_to_string (static_cast <enum point_kind> (i)),
! 	       m_num_nodes[i]);
    fprintf (out, "m_node_reuse_count: %i\n", m_node_reuse_count);
    fprintf (out, "m_node_reuse_after_merge_count: %i\n",
  	   m_node_reuse_after_merge_count);
  
    if (m_num_supernodes > 0)
!     fprintf (out, "PK_AFTER_SUPERNODE nodes per supernode: %.2f\n",
! 	     (float)m_num_nodes[PK_AFTER_SUPERNODE] / (float)m_num_supernodes);
  }
  
  /* Return the total number of enodes recorded within this object.  */
--- 2208,2221 ----
  void
  stats::dump (FILE *out) const
  {
!   fprintf (out, "m_num_nodes: %i\n", m_num_nodes);
    fprintf (out, "m_node_reuse_count: %i\n", m_node_reuse_count);
    fprintf (out, "m_node_reuse_after_merge_count: %i\n",
  	   m_node_reuse_after_merge_count);
  
    if (m_num_supernodes > 0)
!     fprintf (out, "enodes per supernode: %.2f\n",
! 	     (float)m_num_nodes / (float)m_num_supernodes);
  }
  
  /* Return the total number of enodes recorded within this object.  */
*************** stats::dump (FILE *out) const
*** 2362,2371 ****
  int
  stats::get_total_enodes () const
  {
!   int result = 0;
!   for (int i = 0; i < NUM_POINT_KINDS; i++)
!     result += m_num_nodes[i];
!   return result;
  }
  
  /* struct per_function_data.  */
--- 2223,2229 ----
  int
  stats::get_total_enodes () const
  {
!   return m_num_nodes;
  }
  
  /* struct per_function_data.  */
*************** per_function_data::add_call_summary (exp
*** 2386,2402 ****
  
  strongly_connected_components::
  strongly_connected_components (const supergraph &sg, logger *logger)
! : m_sg (sg), m_per_node (m_sg.num_nodes ())
  {
    LOG_SCOPE (logger);
    auto_timevar tv (TV_ANALYZER_SCC);
  
!   for (int i = 0; i < m_sg.num_nodes (); i++)
      m_per_node.quick_push (per_node_data ());
  
!   for (int i = 0; i < m_sg.num_nodes (); i++)
!     if (m_per_node[i].m_index == -1)
!       strong_connect (i);
  
    if (0)
      dump ();
--- 2244,2260 ----
  
  strongly_connected_components::
  strongly_connected_components (const supergraph &sg, logger *logger)
! : m_sg (sg), m_per_node (m_sg.m_nodes.length ())
  {
    LOG_SCOPE (logger);
    auto_timevar tv (TV_ANALYZER_SCC);
  
!   for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
      m_per_node.quick_push (per_node_data ());
  
!   for (auto snode : m_sg.m_nodes)
!     if (m_per_node[snode->m_id].m_id == -1)
!       strong_connect (snode->m_id, logger);
  
    if (0)
      dump ();
*************** strongly_connected_components (const sup
*** 2407,2417 ****
  DEBUG_FUNCTION void
  strongly_connected_components::dump () const
  {
!   for (int i = 0; i < m_sg.num_nodes (); i++)
      {
        const per_node_data &v = m_per_node[i];
!       fprintf (stderr, "SN %i: index: %i lowlink: %i on_stack: %i\n",
! 	       i, v.m_index, v.m_lowlink, v.m_on_stack);
      }
  }
  
--- 2265,2286 ----
  DEBUG_FUNCTION void
  strongly_connected_components::dump () const
  {
!   fprintf (stderr, "Stack: [");
!   bool first = true;
!   for (auto i : m_stack)
!     {
!       if (first)
! 	first = false;
!       else
! 	fprintf (stderr, ", ");
!       fprintf (stderr, "%i", i);
!     }
!   fprintf (stderr, "]\n");
!   for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
      {
        const per_node_data &v = m_per_node[i];
!       fprintf (stderr, "SN %lu: index: %i lowlink: %i on_stack: %i\n",
! 	       i, v.m_id, v.m_lowlink, v.m_on_stack);
      }
  }
  
*************** strongly_connected_components::dump () c
*** 2420,2428 ****
  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;
  }
  
--- 2289,2297 ----
  std::unique_ptr<json::array>
  strongly_connected_components::to_json () const
  {
!   auto scc_arr = std::make_unique<json::array> ();
!   for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
!     scc_arr->append (std::make_unique<json::integer_number> (get_scc_id (i)));
    return scc_arr;
  }
  
*************** strongly_connected_components::to_json (
*** 2430,2461 ****
     SCC algorithm.  */
  
  void
! strongly_connected_components::strong_connect (unsigned index)
  {
!   supernode *v_snode = m_sg.get_node_by_index (index);
  
    /* Set the depth index for v to the smallest unused index.  */
!   per_node_data *v = &m_per_node[index];
!   v->m_index = index;
!   v->m_lowlink = index;
!   m_stack.safe_push (index);
    v->m_on_stack = true;
!   index++;
  
    /* Consider successors of v.  */
    unsigned i;
    superedge *sedge;
    FOR_EACH_VEC_ELT (v_snode->m_succs, i, sedge)
      {
-       if (sedge->get_kind () != SUPEREDGE_CFG_EDGE
- 	  && sedge->get_kind () != SUPEREDGE_INTRAPROCEDURAL_CALL)
- 	continue;
        supernode *w_snode = sedge->m_dest;
!       per_node_data *w = &m_per_node[w_snode->m_index];
!       if (w->m_index == -1)
  	{
  	  /* Successor w has not yet been visited; recurse on it.  */
! 	  strong_connect (w_snode->m_index);
  	  v->m_lowlink = MIN (v->m_lowlink, w->m_lowlink);
  	}
        else if (w->m_on_stack)
--- 2299,2330 ----
     SCC algorithm.  */
  
  void
! strongly_connected_components::strong_connect (unsigned id,
! 					       logger *logger)
  {
!   supernode *v_snode = m_sg.m_nodes[id];
!   if (!v_snode)
!     return;
  
    /* Set the depth index for v to the smallest unused index.  */
!   per_node_data *v = &m_per_node[id];
!   v->m_id = id;
!   v->m_lowlink = id;
!   m_stack.safe_push (id);
    v->m_on_stack = true;
!   id++;
  
    /* Consider successors of v.  */
    unsigned i;
    superedge *sedge;
    FOR_EACH_VEC_ELT (v_snode->m_succs, i, sedge)
      {
        supernode *w_snode = sedge->m_dest;
!       per_node_data *w = &m_per_node[w_snode->m_id];
!       if (w->m_id == -1)
  	{
  	  /* Successor w has not yet been visited; recurse on it.  */
! 	  strong_connect (w_snode->m_id, logger);
  	  v->m_lowlink = MIN (v->m_lowlink, w->m_lowlink);
  	}
        else if (w->m_on_stack)
*************** strongly_connected_components::strong_co
*** 2463,2481 ****
  	  /* Successor w is in stack S and hence in the current SCC
  	     If w is not on stack, then (v, w) is a cross-edge in the DFS
  	     tree and must be ignored.  */
! 	  v->m_lowlink = MIN (v->m_lowlink, w->m_index);
  	}
      }
  
    /* If v is a root node, pop the stack and generate an SCC.  */
  
!   if (v->m_lowlink == v->m_index)
      {
        per_node_data *w;
        do {
! 	int idx = m_stack.pop ();
! 	w = &m_per_node[idx];
  	w->m_on_stack = false;
        } while (w != v);
      }
  }
--- 2332,2354 ----
  	  /* Successor w is in stack S and hence in the current SCC
  	     If w is not on stack, then (v, w) is a cross-edge in the DFS
  	     tree and must be ignored.  */
! 	  v->m_lowlink = MIN (v->m_lowlink, w->m_id);
  	}
      }
  
    /* If v is a root node, pop the stack and generate an SCC.  */
  
!   if (v->m_lowlink == v->m_id)
      {
+       if (logger)
+ 	logger->log ("got SCC root node: SN %i", v->m_id);
        per_node_data *w;
        do {
! 	int id = m_stack.pop ();
! 	w = &m_per_node[id];
  	w->m_on_stack = false;
+ 	if (logger)
+ 	  logger->log ("  popping SN %i", w->m_id);
        } while (w != v);
      }
  }
*************** strongly_connected_components::strong_co
*** 2485,2491 ****
  worklist::worklist (const exploded_graph &eg, const analysis_plan &plan)
  : m_scc (eg.get_supergraph (), eg.get_logger ()),
    m_plan (plan),
!   m_queue (key_t (*this, NULL))
  {
  }
  
--- 2358,2364 ----
  worklist::worklist (const exploded_graph &eg, const analysis_plan &plan)
  : m_scc (eg.get_supergraph (), eg.get_logger ()),
    m_plan (plan),
!   m_queue (key_t (*this, nullptr))
  {
  }
  
*************** worklist::peek_next ()
*** 2518,2524 ****
  void
  worklist::add_node (exploded_node *enode)
  {
!   gcc_assert (enode->get_status () == exploded_node::STATUS_WORKLIST);
    m_queue.insert (key_t (*this, enode), enode);
  }
  
--- 2391,2397 ----
  void
  worklist::add_node (exploded_node *enode)
  {
!   gcc_assert (enode->get_status () == exploded_node::status::worklist);
    m_queue.insert (key_t (*this, enode), enode);
  }
  
*************** worklist::key_t::cmp (const worklist::ke
*** 2547,2554 ****
    if (flag_analyzer_call_summaries
        && call_string_a.empty_p ()
        && call_string_b.empty_p ()
!       && point_a.get_function () != NULL
!       && point_b.get_function () != NULL
        && point_a.get_function () != point_b.get_function ())
      {
        if (int cmp = ka.m_worklist.m_plan.cmp_function (point_a.get_function (),
--- 2420,2427 ----
    if (flag_analyzer_call_summaries
        && call_string_a.empty_p ()
        && call_string_b.empty_p ()
!       && point_a.get_function () != nullptr
!       && point_b.get_function () != nullptr
        && point_a.get_function () != point_b.get_function ())
      {
        if (int cmp = ka.m_worklist.m_plan.cmp_function (point_a.get_function (),
*************** worklist::key_t::cmp (const worklist::ke
*** 2584,2615 ****
       ordering).  */
    const supernode *snode_a = ka.m_enode->get_supernode ();
    const supernode *snode_b = kb.m_enode->get_supernode ();
!   if (snode_a == NULL)
      {
!       if (snode_b != NULL)
! 	/* One is NULL.  */
  	return -1;
        else
! 	/* Both are NULL.  */
  	return 0;
      }
!   if (snode_b == NULL)
!     /* One is NULL.  */
      return 1;
!   /* Neither are NULL.  */
    gcc_assert (snode_a && snode_b);
!   if (snode_a->m_index != snode_b->m_index)
!     return snode_a->m_index - snode_b->m_index;
  
    gcc_assert (snode_a == snode_b);
  
-   /* Order within supernode via program point.  */
-   int within_snode_cmp
-     = function_point::cmp_within_supernode (point_a.get_function_point (),
- 					    point_b.get_function_point ());
-   if (within_snode_cmp)
-     return within_snode_cmp;
- 
    /* Otherwise, we ought to have the same program_point.  */
    gcc_assert (point_a == point_b);
  
--- 2457,2483 ----
       ordering).  */
    const supernode *snode_a = ka.m_enode->get_supernode ();
    const supernode *snode_b = kb.m_enode->get_supernode ();
!   if (snode_a == nullptr)
      {
!       if (snode_b != nullptr)
! 	/* One is nullptr.  */
  	return -1;
        else
! 	/* Both are nullptr.  */
  	return 0;
      }
!   if (snode_b == nullptr)
!     /* One is nullptr.  */
      return 1;
!   /* Neither are nullptr.  */
    gcc_assert (snode_a && snode_b);
!   if (snode_a->m_bb->index != snode_b->m_bb->index)
!     return snode_a->m_bb->index - snode_b->m_bb->index;
!   if (snode_a->m_id != snode_b->m_id)
!     return snode_a->m_id - snode_b->m_id;
  
    gcc_assert (snode_a == snode_b);
  
    /* Otherwise, we ought to have the same program_point.  */
    gcc_assert (point_a == point_b);
  
*************** worklist::key_t::cmp (const worklist::ke
*** 2641,2647 ****
  std::unique_ptr<json::object>
  worklist::to_json () const
  {
!   auto worklist_obj = ::make_unique<json::object> ();
  
    worklist_obj->set ("scc", m_scc.to_json ());
  
--- 2509,2515 ----
  std::unique_ptr<json::object>
  worklist::to_json () const
  {
!   auto worklist_obj = std::make_unique<json::object> ();
  
    worklist_obj->set ("scc", m_scc.to_json ());
  
*************** exploded_graph::exploded_graph (const su
*** 2664,2678 ****
    m_purge_map (purge_map),
    m_plan (plan),
    m_diagnostic_manager (logger, ext_state.get_engine (), verbosity),
!   m_global_stats (m_sg.num_nodes ()),
!   m_functionless_stats (m_sg.num_nodes ()),
!   m_PK_AFTER_SUPERNODE_per_snode (m_sg.num_nodes ())
  {
    m_origin = get_or_create_node
      (program_point::origin (*ext_state.get_model_manager ()),
!      program_state (ext_state), NULL);
!   for (int i = 0; i < m_sg.num_nodes (); i++)
!     m_PK_AFTER_SUPERNODE_per_snode.quick_push (i);
  }
  
  /* exploded_graph's dtor.  */
--- 2532,2543 ----
    m_purge_map (purge_map),
    m_plan (plan),
    m_diagnostic_manager (logger, ext_state.get_engine (), verbosity),
!   m_global_stats (m_sg.m_nodes.length ()),
!   m_functionless_stats (m_sg.m_nodes.length ())
  {
    m_origin = get_or_create_node
      (program_point::origin (*ext_state.get_model_manager ()),
!      program_state (ext_state), nullptr);
  }
  
  /* exploded_graph's dtor.  */
*************** mark_params_as_tainted (program_state *s
*** 2722,2731 ****
        tree param = iter_parm;
        if (tree parm_default_ssa = ssa_default_def (fun, iter_parm))
  	param = parm_default_ssa;
!       const region *param_reg = state->m_region_model->get_lvalue (param, NULL);
        const svalue *init_sval = mgr->get_or_create_initial_value (param_reg);
        smap->set_state (state->m_region_model, init_sval,
! 		       tainted, NULL /*origin_new_sval*/, ext_state);
        if (POINTER_TYPE_P (TREE_TYPE (param)))
  	{
  	  const region *pointee_reg = mgr->get_symbolic_region (init_sval);
--- 2587,2596 ----
        tree param = iter_parm;
        if (tree parm_default_ssa = ssa_default_def (fun, iter_parm))
  	param = parm_default_ssa;
!       const region *param_reg = state->m_region_model->get_lvalue (param, nullptr);
        const svalue *init_sval = mgr->get_or_create_initial_value (param_reg);
        smap->set_state (state->m_region_model, init_sval,
! 		       tainted, nullptr /*origin_new_sval*/, ext_state);
        if (POINTER_TYPE_P (TREE_TYPE (param)))
  	{
  	  const region *pointee_reg = mgr->get_symbolic_region (init_sval);
*************** mark_params_as_tainted (program_state *s
*** 2733,2739 ****
  	  const svalue *init_pointee_sval
  	    = mgr->get_or_create_initial_value (pointee_reg);
  	  smap->set_state (state->m_region_model, init_pointee_sval,
! 			   tainted, NULL /*origin_new_sval*/, ext_state);
  	}
      }
  
--- 2598,2604 ----
  	  const svalue *init_pointee_sval
  	    = mgr->get_or_create_initial_value (pointee_reg);
  	  smap->set_state (state->m_region_model, init_pointee_sval,
! 			   tainted, nullptr /*origin_new_sval*/, ext_state);
  	}
      }
  
*************** public:
*** 2779,2798 ****
      pp_string (pp, "call to tainted_args function");
    };
  
!   bool update_model (region_model *,
! 		     const exploded_edge *,
! 		     region_model_context *) const final override
    {
!     /* No-op.  */
      return true;
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &) const final override
    {
      emission_path->add_event
!       (make_unique<tainted_args_function_custom_event>
!        (event_loc_info (DECL_SOURCE_LOCATION (m_fndecl), m_fndecl, 0)));
    }
  
  private:
--- 2644,2666 ----
      pp_string (pp, "call to tainted_args function");
    };
  
!   bool update_model (region_model *model,
! 		     const exploded_edge *eedge,
! 		     region_model_context *ctxt) const final override
    {
!     function *fun = eedge->m_dest->get_function ();
!     gcc_assert (fun);
!     model->push_frame (*fun, nullptr, nullptr, ctxt);
      return true;
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &,
! 			   pending_diagnostic &) const final override
    {
      emission_path->add_event
!       (std::make_unique<tainted_args_function_custom_event>
! 	 (event_loc_info (DECL_SOURCE_LOCATION (m_fndecl), m_fndecl, 0)));
    }
  
  private:
*************** exploded_graph::add_function_entry (cons
*** 2819,2825 ****
        logger * const logger = get_logger ();
         if (logger)
  	logger->log ("entrypoint for %qE already exists", fun.decl);
!       return NULL;
      }
  
    program_point point
--- 2687,2693 ----
        logger * const logger = get_logger ();
         if (logger)
  	logger->log ("entrypoint for %qE already exists", fun.decl);
!       return nullptr;
      }
  
    program_point point
*************** exploded_graph::add_function_entry (cons
*** 2828,2849 ****
    program_state state (m_ext_state);
    state.push_frame (m_ext_state, fun);
  
!   std::unique_ptr<custom_edge_info> edge_info = NULL;
  
    if (lookup_attribute ("tainted_args", DECL_ATTRIBUTES (fun.decl)))
      {
        if (mark_params_as_tainted (&state, fun.decl, m_ext_state))
! 	edge_info = make_unique<tainted_args_function_info> (fun.decl);
      }
  
    if (!state.m_valid)
!     return NULL;
  
!   exploded_node *enode = get_or_create_node (point, state, NULL);
    if (!enode)
!     return NULL;
  
!   add_edge (m_origin, enode, NULL, false, std::move (edge_info));
  
    m_functions_with_enodes.add (key);
  
--- 2696,2717 ----
    program_state state (m_ext_state);
    state.push_frame (m_ext_state, fun);
  
!   std::unique_ptr<custom_edge_info> edge_info = nullptr;
  
    if (lookup_attribute ("tainted_args", DECL_ATTRIBUTES (fun.decl)))
      {
        if (mark_params_as_tainted (&state, fun.decl, m_ext_state))
! 	edge_info = std::make_unique<tainted_args_function_info> (fun.decl);
      }
  
    if (!state.m_valid)
!     return nullptr;
  
!   exploded_node *enode = get_or_create_node (point, state, nullptr);
    if (!enode)
!     return nullptr;
  
!   add_edge (m_origin, enode, nullptr, false, std::move (edge_info));
  
    m_functions_with_enodes.add (key);
  
*************** exploded_graph::add_function_entry (cons
*** 2851,2857 ****
  }
  
  /* Get or create an exploded_node for (POINT, STATE).
!    If a new node is created, it is added to the worklist.
  
     Use ENODE_FOR_DIAG, a pre-existing enode, for any diagnostics
     that need to be emitted (e.g. when purging state *before* we have
--- 2719,2726 ----
  }
  
  /* Get or create an exploded_node for (POINT, STATE).
!    If a new node is created and ADD_TO_WORKLIST is true,
!    it is added to the worklist.
  
     Use ENODE_FOR_DIAG, a pre-existing enode, for any diagnostics
     that need to be emitted (e.g. when purging state *before* we have
*************** exploded_graph::add_function_entry (cons
*** 2860,2866 ****
  exploded_node *
  exploded_graph::get_or_create_node (const program_point &point,
  				    const program_state &state,
! 				    exploded_node *enode_for_diag)
  {
    logger * const logger = get_logger ();
    LOG_FUNC (logger);
--- 2729,2736 ----
  exploded_node *
  exploded_graph::get_or_create_node (const program_point &point,
  				    const program_state &state,
! 				    exploded_node *enode_for_diag,
! 				    bool add_to_worklist)
  {
    logger * const logger = get_logger ();
    LOG_FUNC (logger);
*************** exploded_graph::get_or_create_node (cons
*** 2884,2890 ****
      {
        if (logger)
  	logger->log ("invalid state; not creating node");
!       return NULL;
      }
  
    auto_cfun sentinel (point.get_function ());
--- 2754,2768 ----
      {
        if (logger)
  	logger->log ("invalid state; not creating node");
!       return nullptr;
!     }
! 
!   if (point.get_call_string ().calc_recursion_depth ()
!       > param_analyzer_max_recursion_depth)
!     {
!       if (logger)
! 	logger->log ("rejecting node: recursion limit exceeded");
!       return nullptr;
      }
  
    auto_cfun sentinel (point.get_function ());
*************** exploded_graph::get_or_create_node (cons
*** 2936,2942 ****
      = get_or_create_per_program_point_data (point);
  
    /* Consider merging state with another enode at this program_point.  */
!   if (flag_analyzer_state_merge)
      {
        exploded_node *existing_enode;
        unsigned i;
--- 2814,2820 ----
      = get_or_create_per_program_point_data (point);
  
    /* Consider merging state with another enode at this program_point.  */
!   if (flag_analyzer_state_merge && point.state_merge_at_p ())
      {
        exploded_node *existing_enode;
        unsigned i;
*************** exploded_graph::get_or_create_node (cons
*** 2998,3004 ****
  		  "terminating analysis for this program point: %s",
  		  pp_formatted_text (&pp));
        per_point_data->m_excess_enodes++;
!       return NULL;
      }
  
    ps.validate (m_ext_state);
--- 2876,2882 ----
  		  "terminating analysis for this program point: %s",
  		  pp_formatted_text (&pp));
        per_point_data->m_excess_enodes++;
!       return nullptr;
      }
  
    ps.validate (m_ext_state);
*************** exploded_graph::get_or_create_node (cons
*** 3011,3023 ****
    /* Update per-program_point data.  */
    per_point_data->m_enodes.safe_push (node);
  
!   const enum point_kind node_pk = node->get_point ().get_kind ();
!   m_global_stats.m_num_nodes[node_pk]++;
!   per_fn_stats->m_num_nodes[node_pk]++;
!   per_cs_stats->m_num_nodes[node_pk]++;
! 
!   if (node_pk == PK_AFTER_SUPERNODE)
!     m_PK_AFTER_SUPERNODE_per_snode[point.get_supernode ()->m_index]++;
  
    if (logger)
      {
--- 2889,2897 ----
    /* Update per-program_point data.  */
    per_point_data->m_enodes.safe_push (node);
  
!   m_global_stats.m_num_nodes++;
!   per_fn_stats->m_num_nodes++;
!   per_cs_stats->m_num_nodes++;
  
    if (logger)
      {
*************** exploded_graph::get_or_create_node (cons
*** 3029,3041 ****
        point.print (pp, f);
        logger->end_log_line ();
        logger->start_log_line ();
!       pp_string (pp, "pruned_state: ");
!       pruned_state.dump_to_pp (m_ext_state, true, false, pp);
        logger->end_log_line ();
      }
  
    /* Add the new node to the worlist.  */
!   m_worklist.add_node (node);
    return node;
  }
  
--- 2903,2918 ----
        point.print (pp, f);
        logger->end_log_line ();
        logger->start_log_line ();
!       pp_string (pp, "state: ");
!       ps.get_state ().dump_to_pp (m_ext_state, true, false, pp);
        logger->end_log_line ();
      }
  
    /* Add the new node to the worlist.  */
!   if (add_to_worklist)
!     m_worklist.add_node (node);
!   else
!     node->set_status (exploded_node::status::special);
    return node;
  }
  
*************** get_or_create_per_program_point_data (co
*** 3075,3081 ****
  }
  
  /* Get this graph's per-program-point-data for POINT if there is any,
!    otherwise NULL.  */
  
  per_program_point_data *
  exploded_graph::get_per_program_point_data (const program_point &point) const
--- 2952,2958 ----
  }
  
  /* Get this graph's per-program-point-data for POINT if there is any,
!    otherwise nullptr.  */
  
  per_program_point_data *
  exploded_graph::get_per_program_point_data (const program_point &point) const
*************** exploded_graph::get_per_program_point_da
*** 3084,3090 ****
        = const_cast <point_map_t &> (m_per_point_data).get (&point))
      return *slot;
  
!   return NULL;
  }
  
  /* Ensure that this graph has per-call_string-data for CS;
--- 2961,2967 ----
        = const_cast <point_map_t &> (m_per_point_data).get (&point))
      return *slot;
  
!   return nullptr;
  }
  
  /* Ensure that this graph has per-call_string-data for CS;
*************** exploded_graph::get_or_create_per_call_s
*** 3096,3102 ****
    if (per_call_string_data **slot = m_per_call_string_data.get (&cs))
      return *slot;
  
!   per_call_string_data *data = new per_call_string_data (cs, m_sg.num_nodes ());
    m_per_call_string_data.put (&data->m_key,
  			      data);
    return data;
--- 2973,2979 ----
    if (per_call_string_data **slot = m_per_call_string_data.get (&cs))
      return *slot;
  
!   per_call_string_data *data = new per_call_string_data (cs, m_sg.m_nodes.length ());
    m_per_call_string_data.put (&data->m_key,
  			      data);
    return data;
*************** exploded_graph::get_or_create_per_functi
*** 3117,3123 ****
  }
  
  /* Get this graph's per-function-data for FUN if there is any,
!    otherwise NULL.  */
  
  per_function_data *
  exploded_graph::get_per_function_data (function *fun) const
--- 2994,3000 ----
  }
  
  /* Get this graph's per-function-data for FUN if there is any,
!    otherwise nullptr.  */
  
  per_function_data *
  exploded_graph::get_per_function_data (function *fun) const
*************** exploded_graph::get_per_function_data (f
*** 3126,3132 ****
  	= const_cast <per_function_data_t &> (m_per_function_data).get (fun))
      return *slot;
  
!   return NULL;
  }
  
  /* Return true if FUN should be traversed directly, rather than only as
--- 3003,3009 ----
  	= const_cast <per_function_data_t &> (m_per_function_data).get (fun))
      return *slot;
  
!   return nullptr;
  }
  
  /* Return true if FUN should be traversed directly, rather than only as
*************** public:
*** 3224,3253 ****
      pp_string (pp, "call to tainted field");
    };
  
!   bool update_model (region_model *,
! 		     const exploded_edge *,
  		     region_model_context *) const final override
    {
!     /* No-op.  */
      return true;
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &) const final override
    {
      /* Show the field in the struct declaration, e.g.
         "(1) field 'store' is marked with '__attribute__((tainted_args))'"  */
      emission_path->add_event
!       (make_unique<tainted_args_field_custom_event> (m_field));
  
      /* Show the callback in the initializer
         e.g.
         "(2) function 'gadget_dev_desc_UDC_store' used as initializer
         for field 'store' marked with '__attribute__((tainted_args))'".  */
      emission_path->add_event
!       (make_unique<tainted_args_callback_custom_event>
!        (event_loc_info (m_loc, m_fndecl, 0),
! 	m_field));
    }
  
  private:
--- 3101,3132 ----
      pp_string (pp, "call to tainted field");
    };
  
!   bool update_model (region_model *model,
! 		     const exploded_edge *eedge,
  		     region_model_context *) const final override
    {
!     model->push_frame (*eedge->m_dest->get_function (),
! 		       nullptr, nullptr, nullptr);
      return true;
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &,
! 			   pending_diagnostic &) const final override
    {
      /* Show the field in the struct declaration, e.g.
         "(1) field 'store' is marked with '__attribute__((tainted_args))'"  */
      emission_path->add_event
!       (std::make_unique<tainted_args_field_custom_event> (m_field));
  
      /* Show the callback in the initializer
         e.g.
         "(2) function 'gadget_dev_desc_UDC_store' used as initializer
         for field 'store' marked with '__attribute__((tainted_args))'".  */
      emission_path->add_event
!       (std::make_unique<tainted_args_callback_custom_event>
! 	 (event_loc_info (m_loc, m_fndecl, 0),
! 	  m_field));
    }
  
  private:
*************** add_tainted_args_callback (exploded_grap
*** 3289,3295 ****
    if (!state.m_valid)
      return;
  
!   exploded_node *enode = eg->get_or_create_node (point, state, NULL);
    if (logger)
      {
        if (enode)
--- 3168,3174 ----
    if (!state.m_valid)
      return;
  
!   exploded_node *enode = eg->get_or_create_node (point, state, nullptr);
    if (logger)
      {
        if (enode)
*************** add_tainted_args_callback (exploded_grap
*** 3303,3310 ****
  	}
      }
  
!   eg->add_edge (eg->get_origin (), enode, NULL, false,
! 		make_unique<tainted_args_call_info> (field, fndecl, loc));
  }
  
  /* Callback for walk_tree for finding callbacks within initializers;
--- 3182,3189 ----
  	}
      }
  
!   eg->add_edge (eg->get_origin (), enode, nullptr, false,
! 		std::make_unique<tainted_args_call_info> (field, fndecl, loc));
  }
  
  /* Callback for walk_tree for finding callbacks within initializers;
*************** exploded_graph::build_initial_worklist (
*** 3377,3383 ****
        tree init = DECL_INITIAL (decl);
        if (!init)
  	continue;
!       walk_tree (&init, add_any_callbacks, this, NULL);
      }
  }
  
--- 3256,3262 ----
        tree init = DECL_INITIAL (decl);
        if (!init)
  	continue;
!       walk_tree (&init, add_any_callbacks, this, nullptr);
      }
  }
  
*************** exploded_graph::process_worklist ()
*** 3397,3413 ****
    while (m_worklist.length () > 0)
      {
        exploded_node *node = m_worklist.take_next ();
!       gcc_assert (node->get_status () == exploded_node::STATUS_WORKLIST);
!       gcc_assert (node->m_succs.length () == 0
! 		  || node == m_origin);
  
        if (logger)
  	logger->log ("next to process: EN: %i", node->m_index);
  
!       /* If we have a run of nodes that are before-supernode, try merging and
  	 processing them together, rather than pairwise or individually.  */
!       if (flag_analyzer_state_merge && node != m_origin)
! 	if (maybe_process_run_of_before_supernode_enodes (node))
  	  goto handle_limit;
  
        /* Avoid exponential explosions of nodes by attempting to merge
--- 3276,3291 ----
    while (m_worklist.length () > 0)
      {
        exploded_node *node = m_worklist.take_next ();
!       gcc_assert (node->get_status () == exploded_node::status::worklist);
  
        if (logger)
  	logger->log ("next to process: EN: %i", node->m_index);
  
!       /* If we have a run of nodes at the same point, try merging and
  	 processing them together, rather than pairwise or individually.  */
!       if (flag_analyzer_state_merge
! 	  && node->get_point ().state_merge_at_p ())
! 	if (maybe_process_run_of_enodes (node))
  	  goto handle_limit;
  
        /* Avoid exponential explosions of nodes by attempting to merge
*************** exploded_graph::process_worklist ()
*** 3417,3426 ****
  	if (exploded_node *node_2 = m_worklist.peek_next ())
  	  {
  	    gcc_assert (node_2->get_status ()
! 			== exploded_node::STATUS_WORKLIST);
! 	    gcc_assert (node->m_succs.length () == 0);
! 	    gcc_assert (node_2->m_succs.length () == 0);
! 
  	    gcc_assert (node != node_2);
  
  	    if (logger)
--- 3295,3301 ----
  	if (exploded_node *node_2 = m_worklist.peek_next ())
  	  {
  	    gcc_assert (node_2->get_status ()
! 			== exploded_node::status::worklist);
  	    gcc_assert (node != node_2);
  
  	    if (logger)
*************** exploded_graph::process_worklist ()
*** 3458,3468 ****
  		    if (merged_state == state)
  		      {
  			/* Then merge node_2 into node by adding an edge.  */
! 			add_edge (node_2, node, NULL, false);
  
  			/* Remove node_2 from the worklist.  */
  			m_worklist.take_next ();
! 			node_2->set_status (exploded_node::STATUS_MERGER);
  
  			/* Continue processing "node" below.  */
  		      }
--- 3333,3343 ----
  		    if (merged_state == state)
  		      {
  			/* Then merge node_2 into node by adding an edge.  */
! 			add_edge (node_2, node, nullptr, false);
  
  			/* Remove node_2 from the worklist.  */
  			m_worklist.take_next ();
! 			node_2->set_status (exploded_node::status::merger);
  
  			/* Continue processing "node" below.  */
  		      }
*************** exploded_graph::process_worklist ()
*** 3471,3478 ****
  			/* Then merge node into node_2, and leave node_2
  			   in the worklist, to be processed on the next
  			   iteration.  */
! 			add_edge (node, node_2, NULL, false);
! 			node->set_status (exploded_node::STATUS_MERGER);
  			continue;
  		      }
  		    else
--- 3346,3353 ----
  			/* Then merge node into node_2, and leave node_2
  			   in the worklist, to be processed on the next
  			   iteration.  */
! 			add_edge (node, node_2, nullptr, false);
! 			node->set_status (exploded_node::status::merger);
  			continue;
  		      }
  		    else
*************** exploded_graph::process_worklist ()
*** 3488,3494 ****
  			exploded_node *merged_enode
  			  = get_or_create_node (node->get_point (),
  						merged_state, node);
! 			if (merged_enode == NULL)
  			  continue;
  
  			if (logger)
--- 3363,3369 ----
  			exploded_node *merged_enode
  			  = get_or_create_node (node->get_point (),
  						merged_state, node);
! 			if (merged_enode == nullptr)
  			  continue;
  
  			if (logger)
*************** exploded_graph::process_worklist ()
*** 3516,3531 ****
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node, merged_enode, NULL, false);
! 			    node->set_status (exploded_node::STATUS_MERGER);
  			  }
  
  			if (merged_enode == node_2)
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node_2, merged_enode, NULL, false);
! 			    node_2->set_status (exploded_node::STATUS_MERGER);
  			  }
  
  			continue;
--- 3391,3406 ----
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node, merged_enode, nullptr, false);
! 			    node->set_status (exploded_node::status::merger);
  			  }
  
  			if (merged_enode == node_2)
  			  m_worklist.add_node (merged_enode);
  			else
  			  {
! 			    add_edge (node_2, merged_enode, nullptr, false);
! 			    node_2->set_status (exploded_node::status::merger);
  			  }
  
  			continue;
*************** exploded_graph::process_worklist ()
*** 3543,3567 ****
      handle_limit:
        /* Impose a hard limit on the number of exploded nodes, to ensure
  	 that the analysis terminates in the face of pathological state
! 	 explosion (or bugs).
! 
! 	 Specifically, the limit is on the number of PK_AFTER_SUPERNODE
! 	 exploded nodes, looking at supernode exit events.
! 
! 	 We use exit rather than entry since there can be multiple
! 	 entry ENs, one per phi; the number of PK_AFTER_SUPERNODE ought
! 	 to be equivalent to the number of supernodes multiplied by the
! 	 number of states.  */
!       const int limit = m_sg.num_nodes () * param_analyzer_bb_explosion_factor;
!       if (m_global_stats.m_num_nodes[PK_AFTER_SUPERNODE] > limit)
  	{
  	  if (logger)
  	    logger->log ("bailing out; too many nodes");
  	  warning_at (node->get_point ().get_location (),
  		      OPT_Wanalyzer_too_complex,
  		      "analysis bailed out early"
! 		      " (%i 'after-snode' enodes; %i enodes)",
! 		      m_global_stats.m_num_nodes[PK_AFTER_SUPERNODE],
  		      m_nodes.length ());
  	  return;
  	}
--- 3418,3437 ----
      handle_limit:
        /* Impose a hard limit on the number of exploded nodes, to ensure
  	 that the analysis terminates in the face of pathological state
! 	 explosion (or bugs).  */
!       const int limit
! 	= (// Per-supernode limit:
! 	   (m_sg.num_nodes () * param_analyzer_bb_explosion_factor)
! 	   // Allow one for the "origin" enode:
! 	   + 1);
!       if (m_global_stats.m_num_nodes > limit)
  	{
  	  if (logger)
  	    logger->log ("bailing out; too many nodes");
  	  warning_at (node->get_point ().get_location (),
  		      OPT_Wanalyzer_too_complex,
  		      "analysis bailed out early"
! 		      " (%i enodes)",
  		      m_nodes.length ());
  	  return;
  	}
*************** exploded_graph::process_worklist ()
*** 3569,3587 ****
  }
  
  /* Attempt to process a consecutive run of sufficiently-similar nodes in
!    the worklist at a CFG join-point (having already popped ENODE from the
!    head of the worklist).
  
!    If ENODE's point is of the form (before-supernode, SNODE) and the next
!    nodes in the worklist are a consecutive run of enodes of the same form,
!    for the same supernode as ENODE (but potentially from different in-edges),
!    process them all together, setting their status to STATUS_BULK_MERGED,
     and return true.
     Otherwise, return false, in which case ENODE must be processed in the
     normal way.
  
     When processing them all together, generate successor states based
!    on phi nodes for the appropriate CFG edges, and then attempt to merge
     these states into a minimal set of merged successor states, partitioning
     the inputs by merged successor state.
  
--- 3439,3457 ----
  }
  
  /* Attempt to process a consecutive run of sufficiently-similar nodes in
!    the worklist at a point flagged with state_merge_at_p (having already
!    popped ENODE from the head of the worklist).
  
!    If we have a consecutive run of enodes in the worklist all of which have
!    a single out-edge where all these out-edges are supports_bulk_merge_p and
!    all have the same successor snode and call string, then
!    process them all together, setting their status to status::bulk_merged,
     and return true.
     Otherwise, return false, in which case ENODE must be processed in the
     normal way.
  
     When processing them all together, generate successor states based
!    on the edge op update_state_for_bulk_merger, and then attempt to merge
     these states into a minimal set of merged successor states, partitioning
     the inputs by merged successor state.
  
*************** exploded_graph::process_worklist ()
*** 3598,3604 ****
  
  bool
  exploded_graph::
! maybe_process_run_of_before_supernode_enodes (exploded_node *enode)
  {
    /* A struct for tracking per-input state.  */
    struct item
--- 3468,3474 ----
  
  bool
  exploded_graph::
! maybe_process_run_of_enodes (exploded_node *enode)
  {
    /* A struct for tracking per-input state.  */
    struct item
*************** maybe_process_run_of_before_supernode_en
*** 3614,3653 ****
      int m_merger_idx;
    };
  
!   gcc_assert (enode->get_status () == exploded_node::STATUS_WORKLIST);
!   gcc_assert (enode->m_succs.length () == 0);
  
!   const program_point &point = enode->get_point ();
  
!   if (point.get_kind () != PK_BEFORE_SUPERNODE)
      return false;
  
!   const supernode *snode = point.get_supernode ();
  
!   logger * const logger = get_logger ();
!   LOG_SCOPE (logger);
  
!   /* Find a run of enodes in the worklist that are before the same supernode,
!      but potentially from different in-edges.  */
    auto_vec <exploded_node *> enodes;
    enodes.safe_push (enode);
    while (exploded_node *enode_2 = m_worklist.peek_next ())
      {
        gcc_assert (enode_2->get_status ()
! 		  == exploded_node::STATUS_WORKLIST);
        gcc_assert (enode_2->m_succs.length () == 0);
  
        const program_point &point_2 = enode_2->get_point ();
  
!       if (point_2.get_kind () == PK_BEFORE_SUPERNODE
! 	  && point_2.get_supernode () == snode
! 	  && &point_2.get_call_string () == &point.get_call_string ())
! 	{
! 	  enodes.safe_push (enode_2);
! 	  m_worklist.take_next ();
! 	}
!       else
  	break;
      }
  
    /* If the only node is ENODE, then give up.  */
--- 3484,3533 ----
      int m_merger_idx;
    };
  
!   gcc_assert (enode->get_status () == exploded_node::status::worklist);
  
!   const program_point &src_point = enode->get_point ();
!   const supernode *src_snode = src_point.get_supernode ();
  
!   logger * const logger = get_logger ();
!   LOG_SCOPE (logger);
! 
!   if (src_snode->m_succs.length () != 1)
      return false;
  
!   auto sedge = src_snode->m_succs[0];
  
!   if (!sedge->supports_bulk_merge_p ())
!     return false;
  
!   const supernode *dst_snode = src_snode->m_succs[0]->m_dest;
! 
!   /* Find a run of enodes in the worklist that all have single out-sedges
!      go to the same supernode, all of which are bulk-mergeable (i.e. have
!      a simple single intraprocedural outcome).  */
    auto_vec <exploded_node *> enodes;
    enodes.safe_push (enode);
    while (exploded_node *enode_2 = m_worklist.peek_next ())
      {
        gcc_assert (enode_2->get_status ()
! 		  == exploded_node::status::worklist);
        gcc_assert (enode_2->m_succs.length () == 0);
  
        const program_point &point_2 = enode_2->get_point ();
+       const supernode *src_snode_2 = point_2.get_supernode ();
  
!       if (src_snode_2->m_succs.length () != 1)
  	break;
+       auto sedge_2 = src_snode_2->m_succs[0];
+       if (sedge_2->m_dest != dst_snode)
+ 	break;
+       if (&point_2.get_call_string () != &src_point.get_call_string ())
+ 	break;
+       if (!sedge_2->supports_bulk_merge_p ())
+ 	break;
+ 
+       enodes.safe_push (enode_2);
+       m_worklist.take_next ();
      }
  
    /* If the only node is ENODE, then give up.  */
*************** maybe_process_run_of_before_supernode_en
*** 3655,3666 ****
      return false;
  
    if (logger)
!     logger->log ("got run of %i enodes for SN: %i",
! 		 enodes.length (), snode->m_index);
  
!   /* All of these enodes have a shared successor point (even if they
!      were for different in-edges).  */
!   program_point next_point (point.get_next ());
  
    /* Calculate the successor state for each enode in enodes.  */
    auto_delete_vec<item> items (enodes.length ());
--- 3535,3547 ----
      return false;
  
    if (logger)
!     logger->log ("got run of %i bulk-mergable enodes going to SN: %i",
! 		 enodes.length (), dst_snode->m_id);
  
!   /* All of these enodes have a shared intraprocedural successor point
!      (even if they were for different in-edges).  */
!   program_point next_point (sedge->m_dest,
! 			    src_point.get_call_string ());
  
    /* Calculate the successor state for each enode in enodes.  */
    auto_delete_vec<item> items (enodes.length ());
*************** maybe_process_run_of_before_supernode_en
*** 3673,3691 ****
        const program_state &state = iter_enode->get_state ();
        program_state *next_state = &it->m_processed_state;
        next_state->validate (m_ext_state);
!       const program_point &iter_point = iter_enode->get_point ();
!       if (const superedge *iter_sedge = iter_point.get_from_edge ())
! 	{
! 	  uncertainty_t uncertainty;
! 	  impl_region_model_context ctxt (*this, iter_enode,
! 					  &state, next_state,
! 					  &uncertainty, NULL, NULL);
! 	  const cfg_superedge *last_cfg_superedge
! 	    = iter_sedge->dyn_cast_cfg_superedge ();
! 	  if (last_cfg_superedge)
! 	    next_state->m_region_model->update_for_phis
! 	      (snode, last_cfg_superedge, &ctxt);
! 	}
        next_state->validate (m_ext_state);
      }
  
--- 3554,3563 ----
        const program_state &state = iter_enode->get_state ();
        program_state *next_state = &it->m_processed_state;
        next_state->validate (m_ext_state);
!       gcc_assert (iter_enode->get_supernode ()->m_succs.length () == 1);
!       const superedge *iter_sedge = iter_enode->get_supernode ()->m_succs[0];
!       if (auto op = iter_sedge->get_op ())
! 	op->update_state_for_bulk_merger (state, *next_state);
        next_state->validate (m_ext_state);
      }
  
*************** maybe_process_run_of_before_supernode_en
*** 3742,3748 ****
  	= first_item_for_each_merged_state[i]->m_input_enode;
        exploded_node *next
  	= get_or_create_node (next_point, *merged_state, src_enode);
!       /* "next" could be NULL; we handle that when adding the edges below.  */
        next_enodes.quick_push (next);
        if (logger)
  	{
--- 3614,3620 ----
  	= first_item_for_each_merged_state[i]->m_input_enode;
        exploded_node *next
  	= get_or_create_node (next_point, *merged_state, src_enode);
!       /* "next" could be nullptr; we handle that when adding the edges below.  */
        next_enodes.quick_push (next);
        if (logger)
  	{
*************** maybe_process_run_of_before_supernode_en
*** 3759,4032 ****
      {
        exploded_node *next = next_enodes[it->m_merger_idx];
        if (next)
! 	add_edge (it->m_input_enode, next, NULL,
! 		  false); /* no "work" is done during merger.  */
!       it->m_input_enode->set_status (exploded_node::STATUS_BULK_MERGED);
      }
  
    if (logger)
      logger->log ("merged %i in-enodes into %i out-enode(s) at SN: %i",
! 		 items.length (), merged_states.length (), snode->m_index);
  
    return true;
  }
  
- /* Return true if STMT must appear at the start of its exploded node, and
-    thus we can't consolidate its effects within a run of other statements,
-    where PREV_STMT was the previous statement.  */
- 
- static bool
- stmt_requires_new_enode_p (const gimple *stmt,
- 			   const gimple *prev_stmt)
- {
-   if (const gcall *call = dyn_cast <const gcall *> (stmt))
-     {
-       /* Stop consolidating at calls to
- 	 "__analyzer_dump_exploded_nodes", so they always appear at the
- 	 start of an exploded_node.  */
-       if (is_special_named_call_p (call, "__analyzer_dump_exploded_nodes",
- 				   1))
- 	return true;
- 
-       /* sm-signal.cc injects an additional custom eedge at "signal" calls
- 	 from the registration enode to the handler enode, separate from the
- 	 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;
-     }
- 
-   /* If we had a PREV_STMT with an unknown location, and this stmt
-      has a known location, then if a state change happens here, it
-      could be consolidated into PREV_STMT, giving us an event with
-      no location.  Ensure that STMT gets its own exploded_node to
-      avoid this.  */
-   if (get_pure_location (prev_stmt->location) == UNKNOWN_LOCATION
-       && get_pure_location (stmt->location) != UNKNOWN_LOCATION)
-     return true;
- 
-   return false;
- }
- 
- /* Return true if OLD_STATE and NEW_STATE are sufficiently different that
-    we should split enodes and create an exploded_edge separating them
-    (which makes it easier to identify state changes of intereset when
-    constructing checker_paths).  */
- 
- static bool
- state_change_requires_new_enode_p (const program_state &old_state,
- 				   const program_state &new_state)
- {
-   /* Changes in dynamic extents signify creations of heap/alloca regions
-      and resizings of heap regions; likely to be of interest in
-      diagnostic paths.  */
-   if (old_state.m_region_model->get_dynamic_extents ()
-       != new_state.m_region_model->get_dynamic_extents ())
-     return true;
- 
-   /* Changes in sm-state are of interest.  */
-   int sm_idx;
-   sm_state_map *smap;
-   FOR_EACH_VEC_ELT (old_state.m_checker_states, sm_idx, smap)
-     {
-       const sm_state_map *old_smap = old_state.m_checker_states[sm_idx];
-       const sm_state_map *new_smap = new_state.m_checker_states[sm_idx];
-       if (*old_smap != *new_smap)
- 	return true;
-     }
- 
-   return false;
- }
- 
- /* Create enodes and eedges for the function calls that doesn't have an
-    underlying call superedge.
- 
-    Such case occurs when GCC's middle end didn't know which function to
-    call but the analyzer does (with the help of current state).
- 
-    Some example such calls are dynamically dispatched calls to virtual
-    functions or calls that happen via function pointer.  */
- 
- bool
- exploded_graph::maybe_create_dynamic_call (const gcall *call,
- 					   tree fn_decl,
- 					   exploded_node *node,
- 					   program_state next_state,
- 					   program_point &next_point,
- 					   uncertainty_t *uncertainty,
- 					   logger *logger)
- {
-   LOG_FUNC (logger);
- 
-   const program_point *this_point = &node->get_point ();
-   function *fun = DECL_STRUCT_FUNCTION (fn_decl);
-   if (fun)
-     {
-       const supergraph &sg = this->get_supergraph ();
-       supernode *sn_entry = sg.get_node_for_function_entry (*fun);
-       supernode *sn_exit = sg.get_node_for_function_exit (*fun);
- 
-       program_point new_point
- 	= program_point::before_supernode (sn_entry,
- 					   NULL,
- 					   this_point->get_call_string ());
- 
-       new_point.push_to_call_stack (sn_exit,
- 				    next_point.get_supernode());
- 
-       /* Impose a maximum recursion depth and don't analyze paths
- 	 that exceed it further.
- 	 This is something of a blunt workaround, but it only
- 	 applies to recursion (and mutual recursion), not to
- 	 general call stacks.  */
-       if (new_point.get_call_string ().calc_recursion_depth ()
- 	  > param_analyzer_max_recursion_depth)
-       {
- 	if (logger)
- 	  logger->log ("rejecting call edge: recursion limit exceeded");
- 	return false;
-       }
- 
-       next_state.push_call (*this, node, call, uncertainty);
- 
-       if (next_state.m_valid)
- 	{
- 	  if (logger)
- 	    logger->log ("Discovered call to %s [SN: %i -> SN: %i]",
- 			 function_name(fun),
- 			 this_point->get_supernode ()->m_index,
- 			 sn_entry->m_index);
- 
- 	  exploded_node *enode = get_or_create_node (new_point,
- 						     next_state,
- 						     node);
- 	  if (enode)
- 	    add_edge (node,enode, NULL,
- 		      false, /* No work is done by the call itself.  */
- 		      make_unique<dynamic_call_info_t> (call));
- 	  return true;
- 	}
-     }
-   return false;
- }
- 
- /* Subclass of path_context for use within exploded_graph::process_node,
-    so that we can split states e.g. at "realloc" calls.  */
- 
- class impl_path_context : public path_context
- {
- public:
-   impl_path_context (const program_state *cur_state,
- 		     logger *logger)
-   : m_cur_state (cur_state),
-     m_logger (logger),
-     m_terminate_path (false)
-   {
-   }
- 
-   bool bifurcation_p () const
-   {
-     return m_custom_eedge_infos.length () > 0;
-   }
- 
-   const program_state &get_state_at_bifurcation () const
-   {
-     gcc_assert (m_state_at_bifurcation);
-     return *m_state_at_bifurcation;
-   }
- 
-   void
-   bifurcate (std::unique_ptr<custom_edge_info> info) final override
-   {
-     if (m_logger)
-       m_logger->log ("bifurcating path");
- 
-     if (m_state_at_bifurcation)
-       /* Verify that the state at bifurcation is consistent when we
- 	 split into multiple out-edges.  */
-       gcc_assert (*m_state_at_bifurcation == *m_cur_state);
-     else
-       /* Take a copy of the cur_state at the moment when bifurcation
- 	 happens.  */
-       m_state_at_bifurcation
- 	= std::unique_ptr<program_state> (new program_state (*m_cur_state));
- 
-     /* Take ownership of INFO.  */
-     m_custom_eedge_infos.safe_push (info.release ());
-   }
- 
-   void terminate_path () final override
-   {
-     if (m_logger)
-       m_logger->log ("terminating path");
-     m_terminate_path = true;
-   }
- 
-   bool terminate_path_p () const final override
-   {
-     return m_terminate_path;
-   }
- 
-   const vec<custom_edge_info *> & get_custom_eedge_infos ()
-   {
-     return m_custom_eedge_infos;
-   }
- 
- private:
-   const program_state *m_cur_state;
- 
-   logger *m_logger;
- 
-   /* Lazily-created copy of the state before the split.  */
-   std::unique_ptr<program_state> m_state_at_bifurcation;
- 
-   auto_vec <custom_edge_info *> m_custom_eedge_infos;
- 
-   bool m_terminate_path;
- };
- 
- /* A subclass of pending_diagnostic for complaining about jumps through NULL
-    function pointers.  */
- 
- class jump_through_null : public pending_diagnostic_subclass<jump_through_null>
- {
- public:
-   jump_through_null (const gcall *call)
-   : m_call (call)
-   {}
- 
-   const char *get_kind () const final override
-   {
-     return "jump_through_null";
-   }
- 
-   bool operator== (const jump_through_null &other) const
-   {
-     return m_call == other.m_call;
-   }
- 
-   int get_controlling_option () const final override
-   {
-     return OPT_Wanalyzer_jump_through_null;
-   }
- 
-   bool emit (diagnostic_emission_context &ctxt) final override
-   {
-     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:
-   const gcall *m_call;
- };
- 
  /* The core of exploded_graph::process_worklist (the main analysis loop),
     handling one node in the worklist.
  
--- 3631,3654 ----
      {
        exploded_node *next = next_enodes[it->m_merger_idx];
        if (next)
! 	{
! 	  gcc_assert (it->m_input_enode->get_supernode ()->m_succs.length ()
! 		      == 1);
! 	  const superedge *sedge
! 	    = it->m_input_enode->get_supernode ()->m_succs[0];
! 	  add_edge (it->m_input_enode, next, sedge,
! 		    false); /* no "work" is done during merger.  */
! 	}
!       it->m_input_enode->set_status (exploded_node::status::bulk_merged);
      }
  
    if (logger)
      logger->log ("merged %i in-enodes into %i out-enode(s) at SN: %i",
! 		 items.length (), merged_states.length (), dst_snode->m_id);
  
    return true;
  }
  
  /* The core of exploded_graph::process_worklist (the main analysis loop),
     handling one node in the worklist.
  
*************** exploded_graph::process_node (exploded_n
*** 4041,4056 ****
    logger * const logger = get_logger ();
    LOG_FUNC_1 (logger, "EN: %i", node->m_index);
  
!   node->set_status (exploded_node::STATUS_PROCESSED);
  
    const program_point &point = node->get_point ();
  
    /* Update cfun and input_location in case of an ICE: make it easier to
       track down which source construct we're failing to handle.  */
    auto_cfun sentinel (node->get_function ());
!   const gimple *stmt = point.get_stmt ();
!   if (stmt)
!     input_location = stmt->location;
  
    const program_state &state = node->get_state ();
    if (logger)
--- 3663,3677 ----
    logger * const logger = get_logger ();
    LOG_FUNC_1 (logger, "EN: %i", node->m_index);
  
!   node->set_status (exploded_node::status::processed);
  
    const program_point &point = node->get_point ();
  
    /* Update cfun and input_location in case of an ICE: make it easier to
       track down which source construct we're failing to handle.  */
    auto_cfun sentinel (node->get_function ());
! 
!   input_location = node->get_location ();
  
    const program_state &state = node->get_state ();
    if (logger)
*************** exploded_graph::process_node (exploded_n
*** 4064,4456 ****
        logger->end_log_line ();
      }
  
!   switch (point.get_kind ())
!     {
!     default:
!       gcc_unreachable ();
!     case PK_ORIGIN:
!       /* This node exists to simplify finding the shortest path
! 	 to an exploded_node.  */
!       break;
! 
!     case PK_BEFORE_SUPERNODE:
!       {
! 	program_state next_state (state);
! 	uncertainty_t uncertainty;
! 
! 	if (point.get_from_edge ())
! 	  {
! 	    impl_region_model_context ctxt (*this, node,
! 					    &state, &next_state,
! 					    &uncertainty, NULL, NULL);
! 	    const cfg_superedge *last_cfg_superedge
! 	      = point.get_from_edge ()->dyn_cast_cfg_superedge ();
! 	    if (last_cfg_superedge)
! 	      next_state.m_region_model->update_for_phis
! 		(node->get_supernode (),
! 		 last_cfg_superedge,
! 		 &ctxt);
! 	    program_state::detect_leaks (state, next_state, NULL,
! 					 get_ext_state (), &ctxt);
! 	  }
  
! 	program_point next_point (point.get_next ());
! 	exploded_node *next = get_or_create_node (next_point, next_state, node);
! 	if (next)
! 	  add_edge (node, next, NULL,
! 		    false); /* Assume no work is done at phi nodes.  */
!       }
!       break;
!     case PK_BEFORE_STMT:
!       {
! 	/* Determine the effect of a run of one or more statements
! 	   within one supernode, generating an edge to the program_point
! 	   after the last statement that's processed.
  
! 	   Stop iterating statements and thus consolidating into one enode
! 	   when:
! 	   - reaching the end of the statements in the supernode
! 	   - if an sm-state-change occurs (so that it gets its own
! 	     exploded_node)
! 	   - if "-fanalyzer-fine-grained" is active
! 	   - encountering certain statements must appear at the start of
! 	   their enode (for which stmt_requires_new_enode_p returns true)
  
! 	   Update next_state in-place, to get the result of the one
! 	   or more stmts that are processed.
  
! 	   Split the node in-place if an sm-state-change occurs, so that
! 	   the sm-state-change occurs on an edge where the src enode has
! 	   exactly one stmt, the one that caused the change. */
! 	program_state next_state (state);
  
! 	impl_path_context path_ctxt (&next_state, logger);
  
! 	bool could_have_done_work = false;
! 	uncertainty_t uncertainty;
! 	const supernode *snode = point.get_supernode ();
! 	unsigned stmt_idx;
! 	const gimple *prev_stmt = NULL;
! 	for (stmt_idx = point.get_stmt_idx ();
! 	     stmt_idx < snode->m_stmts.length ();
! 	     stmt_idx++)
! 	  {
! 	    const gimple *stmt = snode->m_stmts[stmt_idx];
  
! 	    if (stmt_idx > point.get_stmt_idx ())
! 	      if (stmt_requires_new_enode_p (stmt, prev_stmt))
  		{
! 		  stmt_idx--;
! 		  break;
  		}
! 	    prev_stmt = stmt;
! 
! 	    program_state old_state (next_state);
! 
! 	    /* Process the stmt.  */
! 	    exploded_node::on_stmt_flags flags
! 	      = node->on_stmt (*this, snode, stmt, &next_state, &uncertainty,
! 			       &could_have_done_work, &path_ctxt);
! 	    node->m_num_processed_stmts++;
! 
! 	    /* If flags.m_terminate_path, stop analyzing; any nodes/edges
! 	       will have been added by on_stmt (e.g. for handling longjmp).  */
! 	    if (flags.m_terminate_path)
! 	      return;
! 
! 	    if (next_state.m_region_model)
! 	      {
! 		impl_region_model_context ctxt (*this, node,
! 						&old_state, &next_state,
! 						&uncertainty, NULL, stmt);
! 		program_state::detect_leaks (old_state, next_state, NULL,
! 					     get_ext_state (), &ctxt);
! 	      }
! 
! 	    unsigned next_idx = stmt_idx + 1;
! 	    program_point next_point
! 	      = (next_idx < point.get_supernode ()->m_stmts.length ()
! 		 ? program_point::before_stmt (point.get_supernode (), next_idx,
! 					       point.get_call_string ())
! 		 : program_point::after_supernode (point.get_supernode (),
! 						   point.get_call_string ()));
! 	    next_state = next_state.prune_for_point (*this, next_point, node,
! 						     &uncertainty);
! 
! 	    if (flag_analyzer_fine_grained
! 		|| state_change_requires_new_enode_p (old_state, next_state)
! 		|| path_ctxt.bifurcation_p ()
! 		|| path_ctxt.terminate_path_p ())
! 	      {
! 		program_point split_point
! 		  = program_point::before_stmt (point.get_supernode (),
! 						stmt_idx,
! 						point.get_call_string ());
! 		if (split_point != node->get_point ())
! 		  {
! 		    /* If we're not at the start of NODE, split the enode at
! 		       this stmt, so we have:
! 			 node -> split_enode
! 		       so that when split_enode is processed the next edge
! 		       we add will be:
! 			 split_enode -> next
! 		       and any state change will effectively occur on that
! 		       latter edge, and split_enode will contain just stmt.  */
! 		    if (logger)
! 		      logger->log ("getting split_enode");
! 		    exploded_node *split_enode
! 		      = get_or_create_node (split_point, old_state, node);
! 		    if (!split_enode)
! 		      return;
! 		    /* "stmt" will be reprocessed when split_enode is
! 		       processed.  */
! 		    node->m_num_processed_stmts--;
! 		    if (logger)
! 		      logger->log ("creating edge to split_enode");
! 		    add_edge (node, split_enode, NULL, could_have_done_work);
! 		    return;
! 		  }
! 		else
! 		  /* If we're at the start of NODE, stop iterating,
! 		     so that an edge will be created from NODE to
! 		     (next_point, next_state) below. */
! 		  break;
! 	      }
! 	  }
! 	unsigned next_idx = stmt_idx + 1;
! 	program_point next_point
! 	  = (next_idx < point.get_supernode ()->m_stmts.length ()
! 	     ? program_point::before_stmt (point.get_supernode (), next_idx,
! 					   point.get_call_string ())
! 	     : program_point::after_supernode (point.get_supernode (),
! 					       point.get_call_string ()));
! 	if (path_ctxt.terminate_path_p ())
! 	  {
! 	    if (logger)
! 	      logger->log ("not adding node: terminating path");
! 	  }
! 	else
! 	  {
! 	    exploded_node *next
! 	      = get_or_create_node (next_point, next_state, node);
! 	    if (next)
! 	      add_edge (node, next, NULL, could_have_done_work);
! 	  }
! 
! 	/* If we have custom edge infos, "bifurcate" the state
! 	   accordingly, potentially creating a new state/enode/eedge
! 	   instances.  For example, to handle a "realloc" call, we
! 	   might split into 3 states, for the "failure",
! 	   "resizing in place", and "moving to a new buffer" cases.  */
! 	for (auto edge_info_iter : path_ctxt.get_custom_eedge_infos ())
! 	  {
! 	    /* Take ownership of the edge infos from the path_ctxt.  */
! 	    std::unique_ptr<custom_edge_info> edge_info (edge_info_iter);
! 	    if (logger)
! 	      {
! 		logger->start_log_line ();
! 		logger->log_partial ("bifurcating for edge: ");
! 		edge_info->print (logger->get_printer ());
! 		logger->end_log_line ();
! 	      }
! 	    program_state bifurcated_new_state
! 	      (path_ctxt.get_state_at_bifurcation ());
! 
! 	    /* Apply edge_info to state.  */
! 	    impl_region_model_context
! 	      bifurcation_ctxt (*this,
! 				node, // enode_for_diag
! 				&path_ctxt.get_state_at_bifurcation (),
! 				&bifurcated_new_state,
! 				NULL, // uncertainty_t *uncertainty
! 				NULL, // path_context *path_ctxt
! 				stmt);
! 	    if (edge_info->update_state (&bifurcated_new_state,
! 					 NULL, /* no exploded_edge yet.  */
! 					 &bifurcation_ctxt))
! 	      {
! 		exploded_node *next2
! 		  = get_or_create_node (next_point, bifurcated_new_state, node);
! 		if (next2)
! 		  add_edge (node, next2, NULL,
! 			    true /* assume that work could be done */,
! 			    std::move (edge_info));
! 	      }
! 	    else
! 	      {
! 		if (logger)
! 		  logger->log ("infeasible state, not adding node");
! 	      }
! 	  }
!       }
!       break;
!     case PK_AFTER_SUPERNODE:
!       {
! 	bool found_a_superedge = false;
! 	bool is_an_exit_block = false;
! 	/* If this is an EXIT BB, detect leaks, and potentially
! 	   create a function summary.  */
! 	if (point.get_supernode ()->return_p ())
! 	  {
! 	    is_an_exit_block = true;
! 	    node->detect_leaks (*this);
! 	    if (flag_analyzer_call_summaries
! 		&& point.get_call_string ().empty_p ())
! 	      {
! 		/* TODO: create function summary
! 		   There can be more than one; each corresponds to a different
! 		   final enode in the function.  */
! 		if (logger)
! 		  {
! 		    pretty_printer *pp = logger->get_printer ();
! 		    logger->start_log_line ();
! 		    logger->log_partial
! 		      ("would create function summary for %qE; state: ",
! 		       point.get_fndecl ());
! 		    state.dump_to_pp (m_ext_state, true, false, pp);
! 		    logger->end_log_line ();
! 		  }
! 		per_function_data *per_fn_data
! 		  = get_or_create_per_function_data (point.get_function ());
! 		per_fn_data->add_call_summary (node);
! 	      }
! 	  }
! 	/* Traverse into successors of the supernode.  */
! 	int i;
! 	superedge *succ;
! 	FOR_EACH_VEC_ELT (point.get_supernode ()->m_succs, i, succ)
! 	  {
! 	    found_a_superedge = true;
! 	    if (logger)
! 	      {
! 		label_text succ_desc (succ->get_description (false));
! 		logger->log ("considering SN: %i -> SN: %i (%s)",
! 			     succ->m_src->m_index, succ->m_dest->m_index,
! 			     succ_desc.get ());
! 	      }
! 
! 	    program_point next_point
! 	      = program_point::before_supernode (succ->m_dest, succ,
! 						 point.get_call_string ());
! 	    program_state next_state (state);
! 	    uncertainty_t uncertainty;
! 
! 	    /* Make use the current state and try to discover and analyse
! 	       indirect function calls (a call that doesn't have an underlying
! 	       cgraph edge representing call).
! 
! 	       Some examples of such calls are virtual function calls
! 	       and calls that happen via a function pointer.  */
! 	    if (succ->m_kind == SUPEREDGE_INTRAPROCEDURAL_CALL
! 		&& !(succ->get_any_callgraph_edge ()))
! 	      {
! 		const gcall *call
! 		  = point.get_supernode ()->get_final_call ();
! 
! 		impl_region_model_context ctxt (*this,
! 						node,
! 						&state,
! 						&next_state,
! 						&uncertainty,
! 						NULL,
! 						point.get_stmt());
! 
! 		region_model *model = state.m_region_model;
! 		bool call_discovered = false;
! 
! 		if (tree fn_decl = model->get_fndecl_for_call (call, &ctxt))
! 		  call_discovered = maybe_create_dynamic_call (call,
! 							       fn_decl,
! 							       node,
! 							       next_state,
! 							       next_point,
! 							       &uncertainty,
! 							       logger);
! 		if (!call_discovered)
! 		  {
! 		    /* Check for jump through NULL.  */
! 		    if (tree fn_ptr = gimple_call_fn (call))
! 		      {
! 			const svalue *fn_ptr_sval
! 			  = model->get_rvalue (fn_ptr, &ctxt);
! 			if (fn_ptr_sval->all_zeroes_p ())
! 			  ctxt.warn (make_unique<jump_through_null> (call));
! 		      }
! 
! 		    /* An unknown function or a special function was called
! 		       at this point, in such case, don't terminate the
! 		       analysis of the current function.
! 
! 		       The analyzer handles calls to such functions while
! 		       analysing the stmt itself, so the function call
! 		       must have been handled by the anlyzer till now.  */
! 		    exploded_node *next
! 		      = get_or_create_node (next_point,
! 					    next_state,
! 					    node);
! 		    if (next)
! 		      add_edge (node, next, succ,
! 				true /* assume that work is done */);
! 		  }
! 	      }
  
! 	    if (!node->on_edge (*this, succ, &next_point, &next_state,
! 				&uncertainty))
! 	      {
! 		if (logger)
! 		  logger->log ("skipping impossible edge to SN: %i",
! 			       succ->m_dest->m_index);
! 		continue;
! 	      }
! 	    exploded_node *next = get_or_create_node (next_point, next_state,
! 						      node);
! 	    if (next)
! 	      {
! 		add_edge (node, next, succ, false);
  
! 		/* We might have a function entrypoint.  */
! 		detect_infinite_recursion (next);
! 	      }
! 	  }
  
! 	/* Return from the calls which doesn't have a return superedge.
! 	   Such case occurs when GCC's middle end didn't knew which function to
! 	   call but analyzer did.  */
! 	if ((is_an_exit_block && !found_a_superedge)
! 	    && (!point.get_call_string ().empty_p ()))
! 	  {
! 	    const call_string &cs = point.get_call_string ();
! 	    program_point next_point
! 	      = program_point::before_supernode (cs.get_caller_node (),
! 						 NULL,
! 						 cs);
! 	    program_state next_state (state);
! 	    uncertainty_t uncertainty;
  
! 	    const gcall *call
! 	      = next_point.get_supernode ()->get_returning_call ();
  
! 	    if (call)
! 	      next_state.returning_call (*this, node, call, &uncertainty);
  
! 	    if (next_state.m_valid)
! 	      {
! 		next_point.pop_from_call_stack ();
! 		exploded_node *enode = get_or_create_node (next_point,
! 							   next_state,
! 							   node);
! 		if (enode)
! 		  add_edge (node, enode, NULL, false,
! 			    make_unique<dynamic_call_info_t> (call, true));
! 	      }
! 	  }
!       }
!       break;
      }
  }
  
  /* Ensure that this graph has a stats instance for FN, return it.
!    FN can be NULL, in which case a stats instances is returned covering
     "functionless" parts of the graph (the origin node).  */
  
  stats *
--- 3685,3811 ----
        logger->end_log_line ();
      }
  
!   /* Don't do anything for the origin enode; the initial population of the
!      worklist has already added successor enodes.  */
!   if (point.get_supernode () == nullptr)
!     return;
  
!   /* Specialcase for EXIT BBs, which don't have out-edges.  */
!   if (point.get_supernode ()->exit_p ())
!     {
!       gcc_assert (point.get_supernode ()->m_succs.length () == 0);
  
!       if (point.get_stack_depth () > 1)
! 	{
! 	  /* Interprocedural return.  */
! 	  auto &src_call_string = point.get_call_string ();
  
! 	  const call_string::element_t &top_of_stack
! 	    = src_call_string.get_top_of_stack ();
! 	  const call_string *dst_call_string = src_call_string.get_parent ();
! 	  const program_point dst_point
! 	    (top_of_stack.get_return_snode_in_caller (),
! 	     *dst_call_string);
! 	  auto edge_info
! 	    = std::make_unique<interprocedural_return> (top_of_stack.get_call_stmt ());
  
! 	  const program_state &src_state (node->get_state ());
! 	  program_state dst_state (src_state);
! 	  uncertainty_t uncertainty;
! 	  impl_region_model_context ctxt (*this, node,
! 					  &src_state, &dst_state, &uncertainty,
! 					  nullptr,
! 					  nullptr);
! 	  edge_info->update_state (&dst_state, nullptr, &ctxt);
  
! 	  program_state::detect_leaks (src_state, dst_state,
! 				       nullptr, get_ext_state (),
! 				       &ctxt);
  
! 	  if (exploded_node *next
! 	      = get_or_create_node (dst_point, dst_state, node))
! 	    add_edge (node, next, nullptr, false,
! 		      std::move (edge_info));
! 	}
!       else
! 	{
! 	  /* End of top-level of analysis for this function.
! 	     Detect leaks, and potentially create a function summary.  */
! 	  node->detect_leaks (*this);
  
! 	  if (flag_analyzer_call_summaries
! 	      && point.get_call_string ().empty_p ())
! 	    {
! 	      /* TODO: create function summary
! 		 There can be more than one; each corresponds to a different
! 		 final enode in the function.  */
! 	      if (logger)
  		{
! 		  pretty_printer *pp = logger->get_printer ();
! 		  logger->start_log_line ();
! 		  logger->log_partial
! 		    ("would create function summary for %qE; state: ",
! 		     point.get_fndecl ());
! 		  state.dump_to_pp (m_ext_state, true, false, pp);
! 		  logger->end_log_line ();
  		}
! 	      per_function_data *per_fn_data
! 		= get_or_create_per_function_data (point.get_function ());
! 	      per_fn_data->add_call_summary (node);
! 	    }
! 	}
  
!       return;
!     }
  
!   /* Traverse into successors of the supernode.  */
!   int i;
!   superedge *succ;
!   FOR_EACH_VEC_ELT (point.get_supernode ()->m_succs, i, succ)
!     {
!       if (logger)
! 	{
! 	  label_text succ_desc (succ->get_description (false));
! 	  logger->log ("considering SN: %i -> SN: %i (%s)",
! 		       succ->m_src->m_id, succ->m_dest->m_id,
! 		       succ_desc.get ());
! 	}
  
!       program_point next_point (succ->m_dest, point.get_call_string ());
!       program_state next_state (state);
!       uncertainty_t uncertainty;
  
!       /* Find the outcome(s) of any operation on the edge.  */
!       operation_context op_ctxt (*this, *node, *succ);
  
!       /* Skip EH edges.  */
!       if (auto cfg_edge = succ->get_any_cfg_edge ())
! 	if (cfg_edge->flags & EDGE_EH)
! 	  continue;
  
!       if (auto op = succ->get_op ())
! 	op->execute (op_ctxt);
!       else
! 	{
! 	  /* No-op.
! 	     Unconditional goto to the dst point, which
! 	     must be in same function.
! 	     The supernode changes, but the callstring and
! 	     state do not change.  */
! 	  if (logger)
! 	    logger->log ("handling no-op edge");
! 	  auto dst_point (op_ctxt.get_next_intraprocedural_point ());
! 	  if (exploded_node *next
! 	      = get_or_create_node (dst_point,
! 				    node->get_state (),
! 				    node))
! 	    add_edge (node, next, succ, false);
! 	}
      }
  }
  
  /* Ensure that this graph has a stats instance for FN, return it.
!    FN can be nullptr, in which case a stats instances is returned covering
     "functionless" parts of the graph (the origin node).  */
  
  stats *
*************** exploded_graph::get_or_create_function_s
*** 4463,4470 ****
      return *slot;
    else
      {
!       int num_supernodes = fn ? n_basic_blocks_for_fn (fn) : 0;
!       /* not quite the num supernodes, but nearly.  */
        stats *new_stats = new stats (num_supernodes);
        m_per_function_stats.put (fn, new_stats);
        return new_stats;
--- 3818,3827 ----
      return *slot;
    else
      {
!       int num_supernodes = 0;
!       for (auto snode : m_sg.m_nodes)
! 	if (snode->get_function () == fn)
! 	  ++num_supernodes;
        stats *new_stats = new stats (num_supernodes);
        m_per_function_stats.put (fn, new_stats);
        return new_stats;
*************** exploded_graph::print_bar_charts (pretty
*** 4497,4504 ****
    enodes_per_function.print (pp);
  
    /* Accumulate number of enodes per supernode.  */
!   auto_vec<unsigned> enodes_per_supernode (m_sg.num_nodes ());
!   for (int i = 0; i < m_sg.num_nodes (); i++)
      enodes_per_supernode.quick_push (0);
    int i;
    exploded_node *enode;
--- 3854,3861 ----
    enodes_per_function.print (pp);
  
    /* Accumulate number of enodes per supernode.  */
!   auto_vec<unsigned> enodes_per_supernode (m_sg.m_nodes.length ());
!   for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
      enodes_per_supernode.quick_push (0);
    int i;
    exploded_node *enode;
*************** exploded_graph::print_bar_charts (pretty
*** 4507,4518 ****
        const supernode *iter_snode = enode->get_supernode ();
        if (!iter_snode)
  	continue;
!       enodes_per_supernode[iter_snode->m_index]++;
      }
  
    /* Accumulate excess enodes per supernode.  */
!   auto_vec<unsigned> excess_enodes_per_supernode (m_sg.num_nodes ());
!   for (int i = 0; i < m_sg.num_nodes (); i++)
      excess_enodes_per_supernode.quick_push (0);
    for (point_map_t::iterator iter = m_per_point_data.begin ();
         iter != m_per_point_data.end (); ++iter)
--- 3864,3875 ----
        const supernode *iter_snode = enode->get_supernode ();
        if (!iter_snode)
  	continue;
!       enodes_per_supernode[iter_snode->m_id]++;
      }
  
    /* Accumulate excess enodes per supernode.  */
!   auto_vec<unsigned> excess_enodes_per_supernode (m_sg.m_nodes.length ());
!   for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
      excess_enodes_per_supernode.quick_push (0);
    for (point_map_t::iterator iter = m_per_point_data.begin ();
         iter != m_per_point_data.end (); ++iter)
*************** exploded_graph::print_bar_charts (pretty
*** 4522,4528 ****
        if (!iter_snode)
  	continue;
        const per_program_point_data *point_data = (*iter).second;
!       excess_enodes_per_supernode[iter_snode->m_index]
  	+= point_data->m_excess_enodes;
      }
  
--- 3879,3885 ----
        if (!iter_snode)
  	continue;
        const per_program_point_data *point_data = (*iter).second;
!       excess_enodes_per_supernode[iter_snode->m_id]
  	+= point_data->m_excess_enodes;
      }
  
*************** exploded_graph::print_bar_charts (pretty
*** 4538,4555 ****
        bar_chart enodes_per_snode;
        bar_chart excess_enodes_per_snode;
        bool have_excess_enodes = false;
!       for (int i = 0; i < m_sg.num_nodes (); i++)
  	{
! 	  const supernode *iter_snode = m_sg.get_node_by_index (i);
  	  if (iter_snode->get_function () != fn)
  	    continue;
  	  pretty_printer tmp_pp;
  	  pp_printf (&tmp_pp, "sn %i (bb %i)",
! 		     iter_snode->m_index, iter_snode->m_bb->index);
  	  enodes_per_snode.add_item (pp_formatted_text (&tmp_pp),
! 				     enodes_per_supernode[iter_snode->m_index]);
  	  const int num_excess
! 	    = excess_enodes_per_supernode[iter_snode->m_index];
  	  excess_enodes_per_snode.add_item (pp_formatted_text (&tmp_pp),
  					    num_excess);
  	  if (num_excess)
--- 3895,3912 ----
        bar_chart enodes_per_snode;
        bar_chart excess_enodes_per_snode;
        bool have_excess_enodes = false;
!       for (size_t i = 0; i < m_sg.m_nodes.length (); i++)
  	{
! 	  const supernode *iter_snode = m_sg.m_nodes[i];
  	  if (iter_snode->get_function () != fn)
  	    continue;
  	  pretty_printer tmp_pp;
  	  pp_printf (&tmp_pp, "sn %i (bb %i)",
! 		     iter_snode->m_id, iter_snode->m_bb->index);
  	  enodes_per_snode.add_item (pp_formatted_text (&tmp_pp),
! 				     enodes_per_supernode[iter_snode->m_id]);
  	  const int num_excess
! 	    = excess_enodes_per_supernode[iter_snode->m_id];
  	  excess_enodes_per_snode.add_item (pp_formatted_text (&tmp_pp),
  					    num_excess);
  	  if (num_excess)
*************** exploded_graph::dump_stats (FILE *out) c
*** 4619,4654 ****
        fprintf (out, "function: %s\n", function_name (fn));
        (*iter).second->dump (out);
      }
- 
-   fprintf (out, "PK_AFTER_SUPERNODE per supernode:\n");
-   for (unsigned i = 0; i < m_PK_AFTER_SUPERNODE_per_snode.length (); i++)
-     fprintf (out, "  SN %i: %3i\n", i, m_PK_AFTER_SUPERNODE_per_snode[i]);
- }
- 
- void
- exploded_graph::dump_states_for_supernode (FILE *out,
- 					   const supernode *snode) const
- {
-   fprintf (out, "PK_AFTER_SUPERNODE nodes for SN: %i\n", snode->m_index);
-   int i;
-   exploded_node *enode;
-   int state_idx = 0;
-   FOR_EACH_VEC_ELT (m_nodes, i, enode)
-     {
-       const supernode *iter_snode = enode->get_supernode ();
-       if (enode->get_point ().get_kind () == PK_AFTER_SUPERNODE
- 	  && iter_snode == snode)
- 	{
- 	  pretty_printer pp;
- 	  pp_format_decoder (&pp) = default_tree_printer;
- 	  enode->get_state ().dump_to_pp (m_ext_state, true, false, &pp);
- 	  fprintf (out, "state %i: EN: %i\n  %s\n",
- 		   state_idx++, enode->m_index,
- 		   pp_formatted_text (&pp));
- 	}
-     }
-   fprintf (out, "#exploded_node for PK_AFTER_SUPERNODE for SN: %i = %i\n",
- 	   snode->m_index, state_idx);
  }
  
  /* Return a new json::object of the form
--- 3976,3981 ----
*************** exploded_graph::dump_states_for_supernod
*** 4660,4670 ****
  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)
--- 3987,3997 ----
  std::unique_ptr<json::object>
  exploded_graph::to_json () const
  {
!   auto egraph_obj = std::make_unique<json::object> ();
  
    /* Nodes.  */
    {
!     auto nodes_arr = std::make_unique<json::array> ();
      unsigned i;
      exploded_node *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
*************** exploded_graph::to_json () const
*** 4674,4680 ****
  
    /* Edges.  */
    {
!     auto edges_arr = ::make_unique<json::array> ();
      unsigned i;
      exploded_edge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
--- 4001,4007 ----
  
    /* Edges.  */
    {
!     auto edges_arr = std::make_unique<json::array> ();
      unsigned i;
      exploded_edge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
*************** exploded_graph::to_json () const
*** 4694,4701 ****
       stats m_global_stats;
       function_stat_map_t m_per_function_stats;
       stats m_functionless_stats;
!      call_string_data_map_t m_per_call_string_data;
!      auto_vec<int> m_PK_AFTER_SUPERNODE_per_snode;  */
  
    return egraph_obj;
  }
--- 4021,4027 ----
       stats m_global_stats;
       function_stat_map_t m_per_function_stats;
       stats m_functionless_stats;
!      call_string_data_map_t m_per_call_string_data;  */
  
    return egraph_obj;
  }
*************** exploded_path::find_stmt_backwards (cons
*** 4724,4739 ****
    int i;
    const exploded_edge *eedge;
    FOR_EACH_VEC_ELT_REVERSE (m_edges, i, eedge)
!     {
!       const exploded_node *dst_node = eedge->m_dest;
!       const program_point &dst_point = dst_node->get_point ();
!       const gimple *stmt = dst_point.get_stmt ();
!       if (stmt == search_stmt)
! 	{
! 	  *out_idx = i;
! 	  return true;
! 	}
!     }
    return false;
  }
  
--- 4050,4077 ----
    int i;
    const exploded_edge *eedge;
    FOR_EACH_VEC_ELT_REVERSE (m_edges, i, eedge)
!     if (search_stmt->code == GIMPLE_PHI)
!       {
! 	/* Each phis_for_edge_op instance handles multiple phi stmts
! 	   at once, so we have to special-case the search for a phi stmt.  */
! 	if (auto op = eedge->maybe_get_op ())
! 	  if (auto phis_op = op->dyn_cast_phis_for_edge_op ())
! 	    if (phis_op->defines_ssa_name_p (gimple_phi_result (search_stmt)))
! 	      {
! 		*out_idx = i;
! 		return true;
! 	      }
!       }
!     else
!       {
! 	/* Non-phi stmt.  */
! 	if (const gimple *stmt = eedge->maybe_get_stmt ())
! 	  if (stmt == search_stmt)
! 	    {
! 	      *out_idx = i;
! 	      return true;
! 	    }
!       }
    return false;
  }
  
*************** exploded_path::feasible_p (logger *logge
*** 4775,4789 ****
  	{
  	  gcc_assert (rc);
  	  if (out)
! 	    {
! 	      const exploded_node &src_enode = *eedge->m_src;
! 	      const program_point &src_point = src_enode.get_point ();
! 	      const gimple *last_stmt
! 		= src_point.get_supernode ()->get_last_stmt ();
! 	      *out = ::make_unique<feasibility_problem> (edge_idx, *eedge,
! 							 last_stmt,
! 							 std::move (rc));
! 	    }
  	  return false;
  	}
  
--- 4113,4120 ----
  	{
  	  gcc_assert (rc);
  	  if (out)
! 	    *out = std::make_unique<feasibility_problem> (edge_idx, *eedge,
! 							  std::move (rc));
  	  return false;
  	}
  
*************** maybe_update_for_edge (logger *logger,
*** 4936,5047 ****
        logger->end_log_line ();
      }
  
!   /* Update state for the stmts that were processed in each enode.  */
!   for (unsigned stmt_idx = 0; stmt_idx < src_enode.m_num_processed_stmts;
!        stmt_idx++)
!     {
!       const gimple *stmt = src_enode.get_processed_stmt (stmt_idx);
! 
!       /* Update cfun and input_location in case of ICE: make it easier to
! 	 track down which source construct we're failing to handle.  */
!       auto_cfun sentinel (src_point.get_function ());
!       input_location = stmt->location;
! 
!       update_for_stmt (stmt);
!     }
! 
!   const superedge *sedge = eedge->m_sedge;
!   if (sedge)
      {
!       if (logger)
! 	{
! 	  label_text desc (sedge->get_description (false));
! 	  logger->log ("  sedge: SN:%i -> SN:%i %s",
! 		       sedge->m_src->m_index,
! 		       sedge->m_dest->m_index,
! 		       desc.get ());
! 	}
! 
!       const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
!       if (!m_model.maybe_update_for_edge (*sedge, last_stmt, ctxt, out_rc))
  	{
  	  if (logger)
  	    {
! 	      logger->start_log_line ();
! 	      logger->log_partial ("rejecting due to region model: ");
! 	      m_model.dump_to_pp (logger->get_printer (), true, false);
! 	      logger->end_log_line ();
  	    }
! 	  return false;
! 	}
!     }
!   else
!     {
!       /* Special-case the initial eedge from the origin node to the
! 	 initial function by pushing a frame for it.  */
!       if (src_point.get_kind () == PK_ORIGIN)
! 	{
! 	  gcc_assert (eedge->m_src->m_index == 0);
! 	  gcc_assert (eedge->m_dest->get_point ().get_kind ()
! 		      == PK_BEFORE_SUPERNODE);
! 	  function *fun = eedge->m_dest->get_function ();
! 	  gcc_assert (fun);
! 	  m_model.push_frame (*fun, NULL, ctxt);
! 	  if (logger)
! 	    logger->log ("  pushing frame for %qD", fun->decl);
  	}
!       else if (eedge->m_custom_info)
  	{
! 	  eedge->m_custom_info->update_model (&m_model, eedge, ctxt);
  	}
      }
  
-   /* Handle phi nodes on an edge leaving a PK_BEFORE_SUPERNODE (to
-      a PK_BEFORE_STMT, or a PK_AFTER_SUPERNODE if no stmts).
-      This will typically not be associated with a superedge.  */
-   if (src_point.get_from_edge ())
-     {
-       const cfg_superedge *last_cfg_superedge
- 	= src_point.get_from_edge ()->dyn_cast_cfg_superedge ();
-       const exploded_node &dst_enode = *eedge->m_dest;
-       const unsigned dst_snode_idx = dst_enode.get_supernode ()->m_index;
-       if (last_cfg_superedge)
- 	{
- 	  if (logger)
- 	    logger->log ("  update for phis");
- 	  m_model.update_for_phis (src_enode.get_supernode (),
- 				  last_cfg_superedge,
- 				  ctxt);
- 	  /* If we've entering an snode that we've already visited on this
- 	     epath, then we need do fix things up for loops; see the
- 	     comment for store::loop_replay_fixup.
- 	     Perhaps we should probably also verify the callstring,
- 	     and track program_points,  but hopefully doing it by supernode
- 	     is good enough.  */
- 	  if (bitmap_bit_p (m_snodes_visited, dst_snode_idx))
- 	    m_model.loop_replay_fixup (dst_enode.get_state ().m_region_model);
- 	}
-       bitmap_set_bit (m_snodes_visited, dst_snode_idx);
-     }
-   return true;
- }
  
! /* Update this object for the effects of STMT.  */
  
! void
! feasibility_state::update_for_stmt (const gimple *stmt)
! {
!   if (const gassign *assign = dyn_cast <const gassign *> (stmt))
!     m_model.on_assignment (assign, NULL);
!   else if (const gasm *asm_stmt = dyn_cast <const gasm *> (stmt))
!     m_model.on_asm_stmt (asm_stmt, NULL);
!   else if (const gcall *call = dyn_cast <const gcall *> (stmt))
!     {
!       bool unknown_side_effects = m_model.on_call_pre (call, NULL);
!       m_model.on_call_post (call, unknown_side_effects, NULL);
!     }
!   else if (const greturn *return_ = dyn_cast <const greturn *> (stmt))
!     m_model.on_return (return_, NULL);
  }
  
  /* Dump this object to PP.  */
--- 4267,4327 ----
        logger->end_log_line ();
      }
  
!   if (eedge->m_custom_info)
!     eedge->m_custom_info->update_model (&m_model, eedge, ctxt);
!   else
      {
!       const superedge *sedge = eedge->m_sedge;
!       if (sedge)
  	{
  	  if (logger)
  	    {
! 	      label_text desc (sedge->get_description (false));
! 	      logger->log ("  sedge: SN:%i -> SN:%i %s",
! 			   sedge->m_src->m_id,
! 			   sedge->m_dest->m_id,
! 			   desc.get ());
  	    }
! 
! 	  if (sedge->get_op ())
! 	    if (!sedge->get_op ()->execute_for_feasibility (*eedge,
! 							    *this,
! 							    ctxt,
! 							    out_rc))
! 	      {
! 		if (logger)
! 		  {
! 		    logger->start_log_line ();
! 		    logger->log_partial ("rejecting due to region model: ");
! 		    m_model.dump_to_pp (logger->get_printer (), true, false);
! 		    logger->end_log_line ();
! 		  }
! 		return false;
! 	      }
  	}
!       else
  	{
! 	  /* Special-case the initial eedge from the origin node to the
! 	     initial function by pushing a frame for it.  */
! 	  if (eedge->m_src->m_index == 0)
! 	    {
! 	      function *fun = eedge->m_dest->get_function ();
! 	      gcc_assert (fun);
! 	      m_model.push_frame (*fun, nullptr, nullptr, ctxt);
! 	      if (logger)
! 		logger->log ("  pushing frame for %qD", fun->decl);
! 	    }
  	}
      }
  
  
!   {
!     const exploded_node &dst_enode = *eedge->m_dest;
!     const unsigned dst_snode_idx = dst_enode.get_supernode ()->m_id;
!     bitmap_set_bit (m_snodes_visited, dst_snode_idx);
!   }
  
!   return true;
  }
  
  /* Dump this object to PP.  */
*************** public:
*** 5084,5094 ****
  
    void dump_dot (graphviz_out *gv, const dump_args_t &args) const final override
    {
!     gv->println ("subgraph \"cluster_supernode_%i\" {", m_supernode->m_index);
      gv->indent ();
      gv->println ("style=\"dashed\";");
      gv->println ("label=\"SN: %i (bb: %i; scc: %i)\";",
! 		 m_supernode->m_index, m_supernode->m_bb->index,
  		 args.m_eg.get_scc_id (*m_supernode));
  
      int i;
--- 4364,4374 ----
  
    void dump_dot (graphviz_out *gv, const dump_args_t &args) const final override
    {
!     gv->println ("subgraph \"cluster_supernode_%i\" {", m_supernode->m_id);
      gv->indent ();
      gv->println ("style=\"dashed\";");
      gv->println ("label=\"SN: %i (bb: %i; scc: %i)\";",
! 		 m_supernode->m_id, m_supernode->m_bb->index,
  		 args.m_eg.get_scc_id (*m_supernode));
  
      int i;
*************** public:
*** 5114,5120 ****
        = *(const supernode_cluster * const *)p1;
      const supernode_cluster *c2
        = *(const supernode_cluster * const *)p2;
!     return c1->m_supernode->m_index - c2->m_supernode->m_index;
    }
  
  private:
--- 4394,4400 ----
        = *(const supernode_cluster * const *)p1;
      const supernode_cluster *c2
        = *(const supernode_cluster * const *)p2;
!     return c1->m_supernode->m_id - c2->m_supernode->m_id;
    }
  
  private:
*************** template <>
*** 5256,5262 ****
  inline void
  pod_hash_traits<function_call_string>::mark_empty (value_type &v)
  {
!   v.m_fun = NULL;
  }
  template <>
  inline bool
--- 4536,4542 ----
  inline void
  pod_hash_traits<function_call_string>::mark_empty (value_type &v)
  {
!   v.m_fun = nullptr;
  }
  template <>
  inline bool
*************** template <>
*** 5268,5274 ****
  inline bool
  pod_hash_traits<function_call_string>::is_empty (value_type v)
  {
!   return v.m_fun == NULL;
  }
  
  namespace ana {
--- 4548,4554 ----
  inline bool
  pod_hash_traits<function_call_string>::is_empty (value_type v)
  {
!   return v.m_fun == nullptr;
  }
  
  namespace ana {
*************** exploded_graph::dump_exploded_nodes () c
*** 5397,5411 ****
        exploded_node *enode;
        FOR_EACH_VEC_ELT (m_nodes, i, enode)
  	{
! 	  if (const gimple *stmt = enode->get_stmt ())
! 	    {
! 	      if (get_pure_location (richloc.get_loc ()) == UNKNOWN_LOCATION)
! 		richloc.set_range (0, stmt->location, SHOW_RANGE_WITH_CARET);
! 	      else
! 		richloc.add_range (stmt->location,
! 				   SHOW_RANGE_WITHOUT_CARET,
! 				   new enode_label (m_ext_state, enode));
! 	    }
  	}
        warning_at (&richloc, 0, "%i exploded nodes", m_nodes.length ());
  
--- 4677,4689 ----
        exploded_node *enode;
        FOR_EACH_VEC_ELT (m_nodes, i, enode)
  	{
! 	  location_t loc = enode->get_location ();
! 	  if (get_pure_location (richloc.get_loc ()) == UNKNOWN_LOCATION)
! 	    richloc.set_range (0, loc, SHOW_RANGE_WITH_CARET);
! 	  else
! 	    richloc.add_range (loc,
! 			       SHOW_RANGE_WITHOUT_CARET,
! 			       new enode_label (m_ext_state, enode));
  	}
        warning_at (&richloc, 0, "%i exploded nodes", m_nodes.length ());
  
*************** exploded_graph::dump_exploded_nodes () c
*** 5424,5430 ****
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        char *filename
! 	= concat (dump_base_name, ".eg.txt", NULL);
        FILE *outf = fopen (filename, "w");
        if (!outf)
  	error_at (UNKNOWN_LOCATION, "unable to open %qs for writing", filename);
--- 4702,4708 ----
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        char *filename
! 	= concat (dump_base_name, ".eg.txt", nullptr);
        FILE *outf = fopen (filename, "w");
        if (!outf)
  	error_at (UNKNOWN_LOCATION, "unable to open %qs for writing", filename);
*************** exploded_graph::dump_exploded_nodes () c
*** 5478,5485 ****
      }
  
    /* Emit a warning at any call to "__analyzer_dump_exploded_nodes",
!      giving the number of processed exploded nodes for "before-stmt",
!      and the IDs of processed, merger, and worklist enodes.
  
       We highlight the count of *processed* enodes since this is of most
       interest in DejaGnu tests for ensuring that state merger has
--- 4756,4763 ----
      }
  
    /* Emit a warning at any call to "__analyzer_dump_exploded_nodes",
!      giving the number of processed exploded nodes at the snode before
!      the call, and the IDs of processed, merger, and worklist enodes.
  
       We highlight the count of *processed* enodes since this is of most
       interest in DejaGnu tests for ensuring that state merger has
*************** exploded_graph::dump_exploded_nodes () c
*** 5494,5582 ****
    hash_set<const gimple *> seen;
    FOR_EACH_VEC_ELT (m_nodes, i, enode)
      {
!       if (enode->get_point ().get_kind () != PK_BEFORE_STMT)
  	continue;
  
!       if (const gimple *stmt = enode->get_stmt ())
! 	if (const gcall *call = dyn_cast <const gcall *> (stmt))
! 	  if (is_special_named_call_p (call, "__analyzer_dump_exploded_nodes",
! 				       1))
  	    {
! 	      if (seen.contains (stmt))
! 		continue;
! 
! 	      auto_vec<exploded_node *> processed_enodes;
! 	      auto_vec<exploded_node *> merger_enodes;
! 	      auto_vec<exploded_node *> worklist_enodes;
! 	      /* This is O(N^2).  */
! 	      unsigned j;
! 	      exploded_node *other_enode;
! 	      FOR_EACH_VEC_ELT (m_nodes, j, other_enode)
! 		{
! 		  if (other_enode->get_point ().get_kind () != PK_BEFORE_STMT)
! 		    continue;
! 		  if (other_enode->get_stmt () == stmt)
! 		    switch (other_enode->get_status ())
! 		      {
! 		      default:
! 			gcc_unreachable ();
! 		      case exploded_node::STATUS_WORKLIST:
! 			worklist_enodes.safe_push (other_enode);
! 			break;
! 		      case exploded_node::STATUS_PROCESSED:
! 			processed_enodes.safe_push (other_enode);
! 			break;
! 		      case exploded_node::STATUS_MERGER:
! 			merger_enodes.safe_push (other_enode);
! 			break;
! 		      }
! 		}
  
! 	      pretty_printer pp;
! 	      pp_character (&pp, '[');
! 	      print_enode_indices (&pp, processed_enodes);
! 	      if (merger_enodes.length () > 0)
! 		{
! 		  pp_string (&pp, "] merger(s): [");
! 		  print_enode_indices (&pp, merger_enodes);
! 		}
! 	      if (worklist_enodes.length () > 0)
! 		{
! 		  pp_string (&pp, "] worklist: [");
! 		  print_enode_indices (&pp, worklist_enodes);
! 		}
! 	      pp_character (&pp, ']');
  
! 	      warning_n (stmt->location, 0, processed_enodes.length (),
! 			 "%i processed enode: %s",
! 			 "%i processed enodes: %s",
! 			 processed_enodes.length (), pp_formatted_text (&pp));
! 	      seen.add (stmt);
  
! 	      /* If the argument is non-zero, then print all of the states
! 		 of the various enodes.  */
! 	      tree t_arg = fold (gimple_call_arg (call, 0));
! 	      if (TREE_CODE (t_arg) != INTEGER_CST)
! 		{
! 		  error_at (call->location,
! 			    "integer constant required for arg 1");
! 		  return;
! 		}
! 	      int i_arg = TREE_INT_CST_LOW (t_arg);
! 	      if (i_arg)
  		{
! 		  exploded_node *other_enode;
! 		  FOR_EACH_VEC_ELT (processed_enodes, j, other_enode)
! 		    {
! 		      fprintf (stderr, "%i of %i: EN %i:\n",
! 			       j + 1, processed_enodes.length (),
! 			       other_enode->m_index);
! 		      other_enode->dump_succs_and_preds (stderr);
! 		      /* Dump state.  */
! 		      other_enode->get_state ().dump (m_ext_state, false);
! 		    }
  		}
  	    }
      }
  }
  
--- 4772,4865 ----
    hash_set<const gimple *> seen;
    FOR_EACH_VEC_ELT (m_nodes, i, enode)
      {
!       const supernode *snode = enode->get_supernode ();
!       if (!snode)
! 	continue;
!       if (snode->m_succs.length () != 1)
! 	continue;
!       const superedge *sedge = snode->m_succs[0];
!       if (!sedge->get_op ())
! 	continue;
!       const call_and_return_op *op
! 	= sedge->get_op ()->dyn_cast_call_and_return_op ();
!       if (!op)
  	continue;
+       const gcall &call = op->get_gcall ();
+       if (is_special_named_call_p (call, "__analyzer_dump_exploded_nodes", 1))
+ 	{
+ 	  if (seen.contains (&call))
+ 	    continue;
  
! 	  auto_vec<exploded_node *> processed_enodes;
! 	  auto_vec<exploded_node *> merger_enodes;
! 	  auto_vec<exploded_node *> worklist_enodes;
! 	  /* This is O(N^2).  */
! 	  unsigned j;
! 	  exploded_node *other_enode;
! 	  FOR_EACH_VEC_ELT (m_nodes, j, other_enode)
  	    {
! 	      if (other_enode->get_supernode () == snode)
! 		switch (other_enode->get_status ())
! 		  {
! 		  default:
! 		    gcc_unreachable ();
! 		  case exploded_node::status::worklist:
! 		    worklist_enodes.safe_push (other_enode);
! 		    break;
! 		  case exploded_node::status::processed:
! 		    processed_enodes.safe_push (other_enode);
! 		    break;
! 		  case exploded_node::status::merger:
! 		    merger_enodes.safe_push (other_enode);
! 		    break;
! 		  }
! 	    }
  
! 	  pretty_printer pp;
! 	  pp_character (&pp, '[');
! 	  print_enode_indices (&pp, processed_enodes);
! 	  if (merger_enodes.length () > 0)
! 	    {
! 	      pp_string (&pp, "] merger(s): [");
! 	      print_enode_indices (&pp, merger_enodes);
! 	    }
! 	  if (worklist_enodes.length () > 0)
! 	    {
! 	      pp_string (&pp, "] worklist: [");
! 	      print_enode_indices (&pp, worklist_enodes);
! 	    }
! 	  pp_character (&pp, ']');
  
! 	  warning_n (call.location, 0, processed_enodes.length (),
! 		     "%i processed enode: %s",
! 		     "%i processed enodes: %s",
! 		     processed_enodes.length (), pp_formatted_text (&pp));
! 	  seen.add (&call);
  
! 	  /* If the argument is non-zero, then print all of the states
! 	     of the various enodes.  */
! 	  tree t_arg = fold (gimple_call_arg (&call, 0));
! 	  if (TREE_CODE (t_arg) != INTEGER_CST)
! 	    {
! 	      error_at (snode->m_loc,
! 			"integer constant required for arg 1");
! 	      return;
! 	    }
! 	  int i_arg = TREE_INT_CST_LOW (t_arg);
! 	  if (i_arg)
! 	    {
! 	      exploded_node *other_enode;
! 	      FOR_EACH_VEC_ELT (processed_enodes, j, other_enode)
  		{
! 		  fprintf (stderr, "%i of %i: EN %i:\n",
! 			   j + 1, processed_enodes.length (),
! 			   other_enode->m_index);
! 		  other_enode->dump_succs_and_preds (stderr);
! 		  /* Dump state.  */
! 		  other_enode->get_state ().dump (m_ext_state, false);
  		}
  	    }
+ 	}
      }
  }
  
*************** exploded_graph::on_escaped_function (tre
*** 5618,5878 ****
      }
  }
  
- /* A collection of classes for visualizing the callgraph in .dot form
-    (as represented in the supergraph).  */
- 
- /* Forward decls.  */
- class viz_callgraph_node;
- class viz_callgraph_edge;
- class viz_callgraph;
- class viz_callgraph_cluster;
- 
- /* Traits for using "digraph.h" to visualize the callgraph.  */
- 
- struct viz_callgraph_traits
- {
-   typedef viz_callgraph_node node_t;
-   typedef viz_callgraph_edge edge_t;
-   typedef viz_callgraph graph_t;
-   struct dump_args_t
-   {
-     dump_args_t (const exploded_graph *eg) : m_eg (eg) {}
-     const exploded_graph *m_eg;
-   };
-   typedef viz_callgraph_cluster cluster_t;
- };
- 
- /* Subclass of dnode representing a function within the callgraph.  */
- 
- class viz_callgraph_node : public dnode<viz_callgraph_traits>
- {
-   friend class viz_callgraph;
- 
- public:
-   viz_callgraph_node (function *fun, int index)
-   : m_fun (fun), m_index (index), m_num_supernodes (0), m_num_superedges (0)
-   {
-     gcc_assert (fun);
-   }
- 
-   void dump_dot (graphviz_out *gv, const dump_args_t &args) const final override
-   {
-     pretty_printer *pp = gv->get_pp ();
- 
-     dump_dot_id (pp);
-     pp_printf (pp, " [shape=none,margin=0,style=filled,fillcolor=%s,label=\"",
- 	       "lightgrey");
-     pp_write_text_to_stream (pp);
- 
-     pp_printf (pp, "VCG: %i: %s", m_index, function_name (m_fun));
-     pp_newline (pp);
- 
-     pp_printf (pp, "supernodes: %i\n", m_num_supernodes);
-     pp_newline (pp);
- 
-     pp_printf (pp, "superedges: %i\n", m_num_superedges);
-     pp_newline (pp);
- 
-     if (args.m_eg)
-       {
- 	unsigned i;
- 	exploded_node *enode;
- 	unsigned num_enodes = 0;
- 	FOR_EACH_VEC_ELT (args.m_eg->m_nodes, i, enode)
- 	  {
- 	    if (enode->get_point ().get_function () == m_fun)
- 	      num_enodes++;
- 	  }
- 	pp_printf (pp, "enodes: %i\n", num_enodes);
- 	pp_newline (pp);
- 
- 	// TODO: also show the per-callstring breakdown
- 	const exploded_graph::call_string_data_map_t *per_cs_data
- 	  = args.m_eg->get_per_call_string_data ();
- 	for (exploded_graph::call_string_data_map_t::iterator iter
- 	       = per_cs_data->begin ();
- 	     iter != per_cs_data->end ();
- 	     ++iter)
- 	  {
- 	    const call_string *cs = (*iter).first;
- 	    //per_call_string_data *data = (*iter).second;
- 	    num_enodes = 0;
- 	    FOR_EACH_VEC_ELT (args.m_eg->m_nodes, i, enode)
- 	      {
- 		if (enode->get_point ().get_function () == m_fun
- 		    && &enode->get_point ().get_call_string () == cs)
- 		  num_enodes++;
- 	      }
- 	    if (num_enodes > 0)
- 	      {
- 		cs->print (pp);
- 		pp_printf (pp, ": %i\n", num_enodes);
- 	      }
- 	  }
- 
- 	/* Show any summaries.  */
- 	per_function_data *data = args.m_eg->get_per_function_data (m_fun);
- 	if (data)
- 	  {
- 	    pp_newline (pp);
- 	    pp_printf (pp, "summaries: %i\n", data->m_summaries.length ());
- 	    for (auto summary : data->m_summaries)
- 	      {
- 		pp_printf (pp, "\nsummary: %s:\n", summary->get_desc ().get ());
- 		const extrinsic_state &ext_state = args.m_eg->get_ext_state ();
- 		const program_state &state = summary->get_state ();
- 		state.dump_to_pp (ext_state, false, true, pp);
- 		pp_newline (pp);
- 	      }
- 	  }
-       }
- 
-     pp_write_text_as_dot_label_to_stream (pp, /*for_record=*/true);
-     pp_string (pp, "\"];\n\n");
-     pp_flush (pp);
-   }
- 
-   void dump_dot_id (pretty_printer *pp) const
-   {
-     pp_printf (pp, "vcg_%i", m_index);
-   }
- 
- private:
-   function *m_fun;
-   int m_index;
-   int m_num_supernodes;
-   int m_num_superedges;
- };
- 
- /* Subclass of dedge representing a callgraph edge.  */
- 
- class viz_callgraph_edge : public dedge<viz_callgraph_traits>
- {
- public:
-   viz_callgraph_edge (viz_callgraph_node *src, viz_callgraph_node *dest)
-   : dedge<viz_callgraph_traits> (src, dest)
-   {}
- 
-   void dump_dot (graphviz_out *gv, const dump_args_t &) const
-     final override
-   {
-     pretty_printer *pp = gv->get_pp ();
- 
-     const char *style = "\"solid,bold\"";
-     const char *color = "black";
-     int weight = 10;
-     const char *constraint = "true";
- 
-     m_src->dump_dot_id (pp);
-     pp_string (pp, " -> ");
-     m_dest->dump_dot_id (pp);
-     pp_printf (pp,
- 	       (" [style=%s, color=%s, weight=%d, constraint=%s,"
- 		" headlabel=\""),
- 	       style, color, weight, constraint);
-     pp_printf (pp, "\"];\n");
-   }
- };
- 
- /* Subclass of digraph representing the callgraph.  */
- 
- class viz_callgraph : public digraph<viz_callgraph_traits>
- {
- public:
-   viz_callgraph (const supergraph &sg);
- 
-   viz_callgraph_node *get_vcg_node_for_function (function *fun)
-   {
-     return *m_map.get (fun);
-   }
- 
-   viz_callgraph_node *get_vcg_node_for_snode (supernode *snode)
-   {
-     return get_vcg_node_for_function (snode->m_fun);
-   }
- 
- private:
-   hash_map<function *, viz_callgraph_node *> m_map;
- };
- 
- /* Placeholder subclass of cluster.  */
- 
- class viz_callgraph_cluster : public cluster<viz_callgraph_traits>
- {
- };
- 
- /* viz_callgraph's ctor.  */
- 
- viz_callgraph::viz_callgraph (const supergraph &sg)
- {
-   cgraph_node *node;
-   FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
-     {
-       function *fun = node->get_fun ();
-       viz_callgraph_node *vcg_node
- 	= new viz_callgraph_node (fun, m_nodes.length ());
-       m_map.put (fun, vcg_node);
-       add_node (vcg_node);
-     }
- 
-   unsigned i;
-   superedge *sedge;
-   FOR_EACH_VEC_ELT (sg.m_edges, i, sedge)
-     {
-       viz_callgraph_node *vcg_src = get_vcg_node_for_snode (sedge->m_src);
-       if (vcg_src->m_fun)
- 	get_vcg_node_for_function (vcg_src->m_fun)->m_num_superedges++;
-       if (sedge->dyn_cast_call_superedge ())
- 	{
- 	  viz_callgraph_node *vcg_dest = get_vcg_node_for_snode (sedge->m_dest);
- 	  viz_callgraph_edge *vcg_edge
- 	    = new viz_callgraph_edge (vcg_src, vcg_dest);
- 	  add_edge (vcg_edge);
- 	}
-     }
- 
-   supernode *snode;
-   FOR_EACH_VEC_ELT (sg.m_nodes, i, snode)
-     {
-       if (snode->m_fun)
- 	get_vcg_node_for_function (snode->m_fun)->m_num_supernodes++;
-     }
- }
- 
- /* Dump the callgraph to FILENAME.  */
- 
- static void
- dump_callgraph (const supergraph &sg, const char *filename,
- 		const exploded_graph *eg)
- {
-   FILE *outf = fopen (filename, "w");
-   if (!outf)
-     return;
- 
-   // TODO
-   viz_callgraph vcg (sg);
-   vcg.dump_dot (filename, NULL, viz_callgraph_traits::dump_args_t (eg));
- 
-   fclose (outf);
- }
- 
- /* Dump the callgraph to "<srcfile>.callgraph.dot".  */
- 
- static void
- dump_callgraph (const supergraph &sg, const exploded_graph *eg)
- {
-   auto_timevar tv (TV_ANALYZER_DUMP);
-   char *filename = concat (dump_base_name, ".callgraph.dot", NULL);
-   dump_callgraph (sg, filename, eg);
-   free (filename);
- }
- 
  /* Subclass of dot_annotator for implementing
!    DUMP_BASE_NAME.supergraph-eg.dot, a post-analysis dump of the supergraph.
  
     Annotate the supergraph nodes by printing the exploded nodes in concise
!    form within them, next to their pertinent statements where appropriate,
!    colorizing the exploded nodes based on sm-state.
     Also show saved diagnostics within the exploded nodes, giving information
     on whether they were feasible, and, if infeasible, where the problem
     was.  */
--- 4901,4911 ----
      }
  }
  
  /* Subclass of dot_annotator for implementing
!    DUMP_BASE_NAME.supergraph.N.eg.dot, a post-analysis dump of the supergraph.
  
     Annotate the supergraph nodes by printing the exploded nodes in concise
!    form within them, colorizing the exploded nodes based on sm-state.
     Also show saved diagnostics within the exploded nodes, giving information
     on whether they were feasible, and, if infeasible, where the problem
     was.  */
*************** public:
*** 5883,5992 ****
    exploded_graph_annotator (const exploded_graph &eg)
    : m_eg (eg)
    {
!     /* Avoid O(N^2) by prepopulating m_enodes_per_snodes.  */
!     unsigned i;
!     supernode *snode;
!     FOR_EACH_VEC_ELT (eg.get_supergraph ().m_nodes, i, snode)
!       m_enodes_per_snodes.safe_push (new auto_vec <exploded_node *> ());
      exploded_node *enode;
      FOR_EACH_VEC_ELT (m_eg.m_nodes, i, enode)
        if (enode->get_supernode ())
! 	m_enodes_per_snodes[enode->get_supernode ()->m_index]->safe_push (enode);
    }
  
!   /* Show exploded nodes for BEFORE_SUPERNODE points before N.  */
!   bool add_node_annotations (graphviz_out *gv, const supernode &n,
! 			     bool within_table)
      const final override
    {
-     if (!within_table)
-       return false;
      gv->begin_tr ();
      pretty_printer *pp = gv->get_pp ();
  
!     gv->begin_td ();
!     pp_string (pp, "BEFORE");
!     pp_printf (pp, " (scc: %i)", m_eg.get_scc_id (n));
!     gv->end_td ();
! 
!     unsigned i;
!     exploded_node *enode;
!     bool had_enode = false;
!     FOR_EACH_VEC_ELT (*m_enodes_per_snodes[n.m_index], i, enode)
        {
! 	gcc_assert (enode->get_supernode () == &n);
! 	const program_point &point = enode->get_point ();
! 	if (point.get_kind () != PK_BEFORE_SUPERNODE)
! 	  continue;
! 	print_enode (gv, enode);
! 	had_enode = true;
        }
!     if (!had_enode)
!       pp_string (pp, "<TD BGCOLOR=\"red\">UNREACHED</TD>");
      pp_flush (pp);
      gv->end_tr ();
-     return true;
    }
  
!   /* Show exploded nodes for STMT.  */
!   void add_stmt_annotations (graphviz_out *gv, const gimple *stmt,
! 			     bool within_row)
!     const final override
    {
-     if (!within_row)
-       return;
      pretty_printer *pp = gv->get_pp ();
  
!     const supernode *snode
!       = m_eg.get_supergraph ().get_supernode_for_stmt (stmt);
!     unsigned i;
!     exploded_node *enode;
!     bool had_td = false;
!     FOR_EACH_VEC_ELT (*m_enodes_per_snodes[snode->m_index], i, enode)
!       {
! 	const program_point &point = enode->get_point ();
! 	if (point.get_kind () != PK_BEFORE_STMT)
! 	  continue;
! 	if (point.get_stmt () != stmt)
! 	  continue;
! 	print_enode (gv, enode);
! 	had_td = true;
!       }
      pp_flush (pp);
-     if (!had_td)
-       {
- 	gv->begin_td ();
- 	gv->end_td ();
-       }
-   }
- 
-   /* Show exploded nodes for AFTER_SUPERNODE points after N.  */
-   bool add_after_node_annotations (graphviz_out *gv, const supernode &n)
-     const final override
-   {
-     gv->begin_tr ();
-     pretty_printer *pp = gv->get_pp ();
- 
-     gv->begin_td ();
-     pp_string (pp, "AFTER");
-     gv->end_td ();
  
      unsigned i;
!     exploded_node *enode;
!     FOR_EACH_VEC_ELT (*m_enodes_per_snodes[n.m_index], i, enode)
        {
! 	gcc_assert (enode->get_supernode () == &n);
! 	const program_point &point = enode->get_point ();
! 	if (point.get_kind () != PK_AFTER_SUPERNODE)
! 	  continue;
! 	print_enode (gv, enode);
        }
-     pp_flush (pp);
-     gv->end_tr ();
-     return true;
    }
  
  private:
    /* Concisely print a TD element for ENODE, showing the index, status,
       and any saved_diagnostics at the enode.  Colorize it to show sm-state.
  
--- 4916,5004 ----
    exploded_graph_annotator (const exploded_graph &eg)
    : m_eg (eg)
    {
!     /* Avoid O(N^2) by prepopulating m_enodes_per_snode_id.  */
!     for (size_t i = 0; i < eg.get_supergraph ().m_nodes.length (); ++i)
!       m_enodes_per_snode_id.push_back (std::vector<exploded_node *> ());
      exploded_node *enode;
+     unsigned i;
      FOR_EACH_VEC_ELT (m_eg.m_nodes, i, enode)
        if (enode->get_supernode ())
! 	m_enodes_per_snode_id[enode->get_supernode ()->m_id].push_back (enode);
    }
  
!   /* Show exploded nodes for N.  */
!   void add_node_annotations (graphviz_out *gv, const supernode &n)
      const final override
    {
      gv->begin_tr ();
      pretty_printer *pp = gv->get_pp ();
  
!     if (m_enodes_per_snode_id[n.m_id].empty ())
!       pp_string (pp, "<TD BGCOLOR=\"red\">UNREACHED</TD>");
!     else
        {
! 	/* Adding an empty TD here makes the actual enodes
! 	   be right-aligned and tightly packed, greatly
! 	   improving the readability of the graph.  */
! 	pp_string (pp, "<TD></TD>");
! 	for (auto enode : m_enodes_per_snode_id[n.m_id])
! 	  {
! 	    gcc_assert (enode->get_supernode () == &n);
! 	    print_enode (gv, enode);
! 	  }
        }
! 
      pp_flush (pp);
      gv->end_tr ();
    }
  
!   void
!   add_extra_objects (graphviz_out *gv) const final override
    {
      pretty_printer *pp = gv->get_pp ();
  
!     pp_string (pp, "en_0 [shape=none,margin=0,style=filled,label=<<TABLE><TR>");
!     print_enode (gv, m_eg.m_nodes[0]);
!     pp_string (pp, "</TR></TABLE>>];\n\n");
      pp_flush (pp);
  
      unsigned i;
!     exploded_edge *eedge;
!     FOR_EACH_VEC_ELT (m_eg.m_edges, i, eedge)
        {
! 	print_enode_port (pp, *eedge->m_src, "s");
! 	pp_string (pp, " -> ");
! 	print_enode_port (pp, *eedge->m_dest, "n");
! 	dot::attr_list attrs;
! 	attrs.add (dot::id ("style"), dot::id ("dotted"));
! 	if (eedge->m_custom_info)
! 	  {
! 	    pretty_printer info_pp;
! 	    pp_format_decoder (&info_pp) = default_tree_printer;
! 	    eedge->m_custom_info->print (&info_pp);
! 	    attrs.add (dot::id ("label"),
! 		       dot::id (pp_formatted_text (&info_pp)));
! 	  }
! 	dot::writer w (*pp);
! 	attrs.print (w);
! 	pp_newline (pp);
        }
    }
  
  private:
+   void
+   print_enode_port (pretty_printer *pp,
+ 		    const exploded_node &enode,
+ 		    const char *compass_pt) const
+   {
+     if (const supernode *snode = enode.get_supernode ())
+       pp_printf (pp, "node_%i:en_%i:%s",
+ 		 snode->m_id, enode.m_index, compass_pt);
+     else
+       pp_printf (pp, "en_%i:%s",
+ 		 enode.m_index, compass_pt);
+   }
+ 
    /* Concisely print a TD element for ENODE, showing the index, status,
       and any saved_diagnostics at the enode.  Colorize it to show sm-state.
  
*************** private:
*** 6000,6021 ****
      pretty_printer *pp = gv->get_pp ();
      pp_printf (pp, "<TD BGCOLOR=\"%s\">",
  	       enode->get_dot_fillcolor ());
!     pp_printf (pp, "<TABLE BORDER=\"0\">");
      gv->begin_trtd ();
      pp_printf (pp, "EN: %i", enode->m_index);
      switch (enode->get_status ())
        {
        default:
  	gcc_unreachable ();
!       case exploded_node::STATUS_WORKLIST:
  	pp_string (pp, "(W)");
  	break;
!       case exploded_node::STATUS_PROCESSED:
  	break;
!       case exploded_node::STATUS_MERGER:
  	pp_string (pp, "(M)");
  	break;
!       case exploded_node::STATUS_BULK_MERGED:
  	pp_string (pp, "(BM)");
  	break;
        }
--- 5012,5036 ----
      pretty_printer *pp = gv->get_pp ();
      pp_printf (pp, "<TD BGCOLOR=\"%s\">",
  	       enode->get_dot_fillcolor ());
!     pp_printf (pp, "<TABLE BORDER=\"0\" PORT=\"en_%i\">", enode->m_index);
      gv->begin_trtd ();
      pp_printf (pp, "EN: %i", enode->m_index);
      switch (enode->get_status ())
        {
        default:
  	gcc_unreachable ();
!       case exploded_node::status::worklist:
  	pp_string (pp, "(W)");
  	break;
!       case exploded_node::status::processed:
  	break;
!       case exploded_node::status::special:
! 	pp_string (pp, "(S)");
! 	break;
!       case exploded_node::status::merger:
  	pp_string (pp, "(M)");
  	break;
!       case exploded_node::status::bulk_merged:
  	pp_string (pp, "(BM)");
  	break;
        }
*************** private:
*** 6063,6072 ****
  	p->m_eedge.m_sedge->dump (pp);
  	pp_write_text_as_html_like_dot_to_stream (pp);
  	gv->end_tdtr ();
- 	gv->begin_trtd ();
- 	pp_gimple_stmt_1 (pp, p->m_last_stmt, 0, (dump_flags_t)0);
- 	pp_write_text_as_html_like_dot_to_stream (pp);
- 	gv->end_tdtr ();
  	/* Ideally we'd print p->m_model here; see the notes above about
  	   tooltips.  */
        }
--- 5078,5083 ----
*************** private:
*** 6075,6081 ****
    }
  
    const exploded_graph &m_eg;
!   auto_delete_vec<auto_vec <exploded_node *> > m_enodes_per_snodes;
  };
  
  /* Implement -fdump-analyzer-json.  */
--- 5086,5092 ----
    }
  
    const exploded_graph &m_eg;
!   std::vector<std::vector <exploded_node *> > m_enodes_per_snode_id;
  };
  
  /* Implement -fdump-analyzer-json.  */
*************** dump_analyzer_json (const supergraph &sg
*** 6085,6091 ****
  		    const exploded_graph &eg)
  {
    auto_timevar tv (TV_ANALYZER_DUMP);
!   char *filename = concat (dump_base_name, ".analyzer.json.gz", NULL);
    gzFile output = gzopen (filename, "w");
    if (!output)
      {
--- 5096,5102 ----
  		    const exploded_graph &eg)
  {
    auto_timevar tv (TV_ANALYZER_DUMP);
!   char *filename = concat (dump_base_name, ".analyzer.json.gz", nullptr);
    gzFile output = gzopen (filename, "w");
    if (!output)
      {
*************** dump_analyzer_json (const supergraph &sg
*** 6094,6100 ****
        return;
      }
  
!   auto toplev_obj = ::make_unique<json::object> ();
    toplev_obj->set ("sgraph", sg.to_json ());
    toplev_obj->set ("egraph", eg.to_json ());
  
--- 5105,5111 ----
        return;
      }
  
!   auto toplev_obj = std::make_unique<json::object> ();
    toplev_obj->set ("sgraph", sg.to_json ());
    toplev_obj->set ("egraph", eg.to_json ());
  
*************** dump_analyzer_json (const supergraph &sg
*** 6109,6152 ****
    free (filename);
  }
  
! /* Concrete subclass of plugin_analyzer_init_iface, allowing plugins
!    to register new state machines.  */
  
! class plugin_analyzer_init_impl : public plugin_analyzer_init_iface
  {
  public:
!   plugin_analyzer_init_impl (auto_delete_vec <state_machine> *checkers,
! 			     known_function_manager *known_fn_mgr,
! 			     logger *logger)
    : m_checkers (checkers),
      m_known_fn_mgr (known_fn_mgr),
      m_logger (logger)
    {}
  
!   void register_state_machine (std::unique_ptr<state_machine> sm) final override
    {
      LOG_SCOPE (m_logger);
!     m_checkers->safe_push (sm.release ());
    }
  
!   void register_known_function (const char *name,
! 				std::unique_ptr<known_function> kf) final override
    {
      LOG_SCOPE (m_logger);
!     m_known_fn_mgr->add (name, std::move (kf));
    }
  
!   logger *get_logger () const final override
    {
      return m_logger;
    }
  
  private:
!   auto_delete_vec <state_machine> *m_checkers;
!   known_function_manager *m_known_fn_mgr;
    logger *m_logger;
  };
  
  /* Run the analysis "engine".  */
  
  void
--- 5120,5191 ----
    free (filename);
  }
  
! /* Concrete subclass of on_ana_init, allowing plugins to register
!    new state machines.  */
  
! class impl_on_ana_init : public gcc::topics::analyzer_events::on_ana_init
  {
  public:
!   impl_on_ana_init (std::vector<std::unique_ptr<state_machine>> &checkers,
! 		    known_function_manager &known_fn_mgr,
! 		    logger *logger)
    : m_checkers (checkers),
      m_known_fn_mgr (known_fn_mgr),
      m_logger (logger)
    {}
  
!   void
!   register_state_machine (std::unique_ptr<state_machine> sm)
!     const final override
    {
      LOG_SCOPE (m_logger);
!     m_checkers.push_back (std::move (sm));
    }
  
!   void
!   register_known_function (const char *name,
! 			   std::unique_ptr<known_function> kf)
!     const final override
    {
      LOG_SCOPE (m_logger);
!     m_known_fn_mgr.add (name, std::move (kf));
    }
  
!   logger *
!   get_logger () const final override
    {
      return m_logger;
    }
  
  private:
!   std::vector<std::unique_ptr<state_machine>> &m_checkers;
!   known_function_manager &m_known_fn_mgr;
    logger *m_logger;
  };
  
+ static void
+ maybe_dump_supergraph (const supergraph &sg, const char *name,
+ 		       const dot_annotator *annotator = nullptr,
+ 		       const exploded_graph *eg = nullptr)
+ {
+   static int dump_idx = 0;
+   if (!flag_dump_analyzer_supergraph)
+     return;
+ 
+   auto_timevar tv (TV_ANALYZER_DUMP);
+   std::string filename (dump_base_name);
+   filename += ".supergraph.";
+   filename += std::to_string (dump_idx++);
+   filename += ".";
+   filename += name;
+   filename += ".dot";
+   supergraph::dump_args_t args
+     ((enum supergraph_dot_flags)SUPERGRAPH_DOT_SHOW_BBS,
+      annotator,
+      eg);
+   sg.dump_dot (filename.c_str (), args);
+ }
+ 
  /* Run the analysis "engine".  */
  
  void
*************** impl_run_checkers (logger *logger)
*** 6167,6223 ****
    FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
      node->get_untransformed_body ();
  
    /* Create the supergraph.  */
!   supergraph sg (logger);
  
!   engine eng (&sg, logger);
  
!   state_purge_map *purge_map = NULL;
  
    if (flag_analyzer_state_purge)
      purge_map = new state_purge_map (sg, eng.get_model_manager (), logger);
  
!   if (flag_dump_analyzer_supergraph)
      {
!       /* Dump supergraph pre-analysis.  */
!       auto_timevar tv (TV_ANALYZER_DUMP);
!       char *filename = concat (dump_base_name, ".supergraph.dot", NULL);
!       supergraph::dump_args_t args ((enum supergraph_dot_flags)0, NULL);
!       sg.dump_dot (filename, args);
!       free (filename);
      }
  
    if (flag_dump_analyzer_state_purge)
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        state_purge_annotator a (purge_map);
!       char *filename = concat (dump_base_name, ".state-purge.dot", NULL);
!       supergraph::dump_args_t args ((enum supergraph_dot_flags)0, &a);
        sg.dump_dot (filename, args);
        free (filename);
      }
  
!   auto_delete_vec <state_machine> checkers;
!   make_checkers (checkers, logger);
  
    register_known_functions (*eng.get_known_function_manager (),
  			    *eng.get_model_manager ());
  
!   plugin_analyzer_init_impl data (&checkers,
! 				  eng.get_known_function_manager (),
! 				  logger);
!   invoke_plugin_callbacks (PLUGIN_ANALYZER_INIT, &data);
  
    if (logger)
      {
!       int i;
!       state_machine *sm;
!       FOR_EACH_VEC_ELT (checkers, i, sm)
! 	logger->log ("checkers[%i]: %s", i, sm->get_name ());
      }
  
    /* Extrinsic state shared by nodes in the graph.  */
!   const extrinsic_state ext_state (checkers, &eng, logger);
  
    const analysis_plan plan (sg, logger);
  
--- 5206,5267 ----
    FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
      node->get_untransformed_body ();
  
+   region_model_manager mgr;
+ 
    /* Create the supergraph.  */
!   supergraph sg (mgr, logger);
  
!   maybe_dump_supergraph (sg, "original");
  
!   sg.fixup_locations (logger);
! 
!   maybe_dump_supergraph (sg, "fixup-locations");
! 
!   engine eng (mgr, &sg);
  
+   state_purge_map *purge_map = nullptr;
    if (flag_analyzer_state_purge)
      purge_map = new state_purge_map (sg, eng.get_model_manager (), logger);
  
!   if (flag_analyzer_simplify_supergraph)
      {
!       sg.simplify (logger);
!       maybe_dump_supergraph (sg, "simplified");
      }
  
+   sg.sort_nodes (logger);
+   maybe_dump_supergraph (sg, "sorted");
+ 
    if (flag_dump_analyzer_state_purge)
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        state_purge_annotator a (purge_map);
!       char *filename = concat (dump_base_name, ".state-purge.dot", nullptr);
!       supergraph::dump_args_t args ((enum supergraph_dot_flags)0, &a, nullptr);
        sg.dump_dot (filename, args);
        free (filename);
      }
  
!   auto checkers = make_checkers (logger);
  
    register_known_functions (*eng.get_known_function_manager (),
  			    *eng.get_model_manager ());
  
!   if (auto channel
! 	= g->get_channels ().analyzer_events_channel.get_if_active ())
!     channel->publish (impl_on_ana_init (checkers,
! 					*eng.get_known_function_manager (),
! 					logger));
  
    if (logger)
      {
!       int i = 0;
!       for (auto &sm : checkers)
! 	logger->log ("checkers[%i]: %s", ++i, sm->get_name ());
      }
  
    /* Extrinsic state shared by nodes in the graph.  */
!   const extrinsic_state ext_state (std::move (checkers), &eng, logger);
  
    const analysis_plan plan (sg, logger);
  
*************** impl_run_checkers (logger *logger)
*** 6238,6244 ****
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        char *filename
! 	= concat (dump_base_name, ".eg.dot", NULL);
        exploded_graph::dump_args_t args (eg);
        root_cluster c;
        eg.dump_dot (filename, &c, args);
--- 5282,5288 ----
      {
        auto_timevar tv (TV_ANALYZER_DUMP);
        char *filename
! 	= concat (dump_base_name, ".eg.dot", nullptr);
        exploded_graph::dump_args_t args (eg);
        root_cluster c;
        eg.dump_dot (filename, &c, args);
*************** impl_run_checkers (logger *logger)
*** 6252,6269 ****
  
    eg.log_stats ();
  
-   if (flag_dump_analyzer_callgraph)
-     dump_callgraph (sg, &eg);
- 
    if (flag_dump_analyzer_supergraph)
      {
        /* Dump post-analysis form of supergraph.  */
-       auto_timevar tv (TV_ANALYZER_DUMP);
-       char *filename = concat (dump_base_name, ".supergraph-eg.dot", NULL);
        exploded_graph_annotator a (eg);
!       supergraph::dump_args_t args ((enum supergraph_dot_flags)0, &a);
!       sg.dump_dot (filename, args);
!       free (filename);
      }
  
    if (flag_dump_analyzer_json)
--- 5296,5306 ----
  
    eg.log_stats ();
  
    if (flag_dump_analyzer_supergraph)
      {
        /* Dump post-analysis form of supergraph.  */
        exploded_graph_annotator a (eg);
!       maybe_dump_supergraph (sg, "eg", &a, &eg);
      }
  
    if (flag_dump_analyzer_json)
*************** impl_run_checkers (logger *logger)
*** 6283,6289 ****
  }
  
  /* Handle -fdump-analyzer and -fdump-analyzer-stderr.  */
! static FILE *dump_fout = NULL;
  
  /* Track if we're responsible for closing dump_fout.  */
  static bool owns_dump_fout = false;
--- 5320,5326 ----
  }
  
  /* Handle -fdump-analyzer and -fdump-analyzer-stderr.  */
! static FILE *dump_fout = nullptr;
  
  /* Track if we're responsible for closing dump_fout.  */
  static bool owns_dump_fout = false;
*************** get_or_create_any_logfile ()
*** 6300,6306 ****
  	dump_fout = stderr;
        else if (flag_dump_analyzer)
  	{
! 	  char *dump_filename = concat (dump_base_name, ".analyzer.txt", NULL);
  	  dump_fout = fopen (dump_filename, "w");
  	  free (dump_filename);
  	  if (dump_fout)
--- 5337,5343 ----
  	dump_fout = stderr;
        else if (flag_dump_analyzer)
  	{
! 	  char *dump_filename = concat (dump_base_name, ".analyzer.txt", nullptr);
  	  dump_fout = fopen (dump_filename, "w");
  	  free (dump_filename);
  	  if (dump_fout)
*************** run_checkers ()
*** 6320,6326 ****
    location_t saved_input_location = input_location;
  
    {
!     log_user the_logger (NULL);
      get_or_create_any_logfile ();
      if (dump_fout)
        the_logger.set_logger (new logger (dump_fout, 0, 0,
--- 5357,5363 ----
    location_t saved_input_location = input_location;
  
    {
!     log_user the_logger (nullptr);
      get_or_create_any_logfile ();
      if (dump_fout)
        the_logger.set_logger (new logger (dump_fout, 0, 0,
*************** run_checkers ()
*** 6337,6343 ****
      {
        fclose (dump_fout);
        owns_dump_fout = false;
!       dump_fout = NULL;
      }
  
    /* Restore input_location.  Subsequent passes may assume that input_location
--- 5374,5380 ----
      {
        fclose (dump_fout);
        owns_dump_fout = false;
!       dump_fout = nullptr;
      }
  
    /* Restore input_location.  Subsequent passes may assume that input_location
diff -Nrcpad gcc-15.2.0/gcc/analyzer/engine.h gcc-16.1.0-RC-20260423/gcc/analyzer/engine.h
*** gcc-15.2.0/gcc/analyzer/engine.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/engine.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* The analysis "engine".
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/event-loc-info.h gcc-16.1.0-RC-20260423/gcc/analyzer/event-loc-info.h
*** gcc-15.2.0/gcc/analyzer/event-loc-info.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/event-loc-info.h	Thu Apr 23 11:07:32 2026
***************
*** 1,5 ****
  /* 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.
--- 1,5 ----
  /* A bundle of location information for a checker_event.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** struct event_loc_info
*** 31,36 ****
--- 31,39 ----
    : m_loc (loc), m_fndecl (fndecl), m_depth (depth)
    {}
  
+   event_loc_info (const exploded_node *enode);
+   event_loc_info (const program_point &point);
+ 
    location_t m_loc;
    tree m_fndecl;
    int m_depth;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/exploded-graph.h gcc-16.1.0-RC-20260423/gcc/analyzer/exploded-graph.h
*** gcc-15.2.0/gcc/analyzer/exploded-graph.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/exploded-graph.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for managing a directed graph of <point, state> pairs.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 29,34 ****
--- 29,35 ----
  #include "analyzer/sm.h"
  #include "analyzer/program-state.h"
  #include "analyzer/diagnostic-manager.h"
+ #include "analyzer/region-model.h"
  
  namespace ana {
  
*************** class impl_region_model_context : public
*** 47,65 ****
  			     program_state *new_state,
  			     uncertainty_t *uncertainty,
  			     path_context *path_ctxt,
! 
! 			     const gimple *stmt,
! 			     stmt_finder *stmt_finder = NULL,
! 
  			     bool *out_could_have_done_work = nullptr);
  
    impl_region_model_context (program_state *state,
  			     const extrinsic_state &ext_state,
  			     uncertainty_t *uncertainty,
! 			     logger *logger = NULL);
  
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder = NULL) final override;
    void add_note (std::unique_ptr<pending_note> pn) final override;
    void add_event (std::unique_ptr<checker_event> event) final override;
    void on_svalue_leak (const svalue *) override;
--- 48,64 ----
  			     program_state *new_state,
  			     uncertainty_t *uncertainty,
  			     path_context *path_ctxt,
! 			     const gimple *stmt = nullptr,
  			     bool *out_could_have_done_work = nullptr);
  
    impl_region_model_context (program_state *state,
  			     const extrinsic_state &ext_state,
  			     uncertainty_t *uncertainty,
! 			     logger *logger = nullptr);
  
!   bool
!   warn_at (std::unique_ptr<pending_diagnostic> d,
! 	   pending_location &&ploc) final override;
    void add_note (std::unique_ptr<pending_note> pn) final override;
    void add_event (std::unique_ptr<checker_event> event) final override;
    void on_svalue_leak (const svalue *) override;
*************** class impl_region_model_context : public
*** 112,128 ****
    const gimple *get_stmt () const override { return m_stmt; }
    const exploded_graph *get_eg () const override { return m_eg; }
  
    void maybe_did_work () override;
    bool checking_for_infinite_loop_p () const override { return false; }
    void on_unusable_in_infinite_loop () override {}
  
    exploded_graph *m_eg;
    log_user m_logger;
    exploded_node *m_enode_for_diag;
    const program_state *m_old_state;
    program_state *m_new_state;
    const gimple *m_stmt;
-   stmt_finder *m_stmt_finder;
    const extrinsic_state &m_ext_state;
    uncertainty_t *m_uncertainty;
    path_context *m_path_ctxt;
--- 111,131 ----
    const gimple *get_stmt () const override { return m_stmt; }
    const exploded_graph *get_eg () const override { return m_eg; }
  
+   const program_state *get_state () const override { return m_new_state; }
+ 
    void maybe_did_work () override;
    bool checking_for_infinite_loop_p () const override { return false; }
    void on_unusable_in_infinite_loop () override {}
  
+   pending_location
+   get_pending_location_for_diag () const override;
+ 
    exploded_graph *m_eg;
    log_user m_logger;
    exploded_node *m_enode_for_diag;
    const program_state *m_old_state;
    program_state *m_new_state;
    const gimple *m_stmt;
    const extrinsic_state &m_ext_state;
    uncertainty_t *m_uncertainty;
    path_context *m_path_ctxt;
*************** class exploded_node : public dnode<eg_tr
*** 206,225 ****
       This allows us to distinguish enodes that were merged during
       worklist-handling, and thus never had process_node called on them
       (in favor of processing the merged node).  */
!   enum status
    {
      /* Node is in the worklist.  */
!     STATUS_WORKLIST,
  
      /* Node has had exploded_graph::process_node called on it.  */
!     STATUS_PROCESSED,
  
      /* Node was left unprocessed due to merger; it won't have had
         exploded_graph::process_node called on it.  */
!     STATUS_MERGER,
  
!     /* Node was processed by maybe_process_run_of_before_supernode_enodes.  */
!     STATUS_BULK_MERGED
    };
    static const char * status_to_str (enum status s);
  
--- 209,232 ----
       This allows us to distinguish enodes that were merged during
       worklist-handling, and thus never had process_node called on them
       (in favor of processing the merged node).  */
!   enum class status
    {
      /* Node is in the worklist.  */
!     worklist,
  
      /* Node has had exploded_graph::process_node called on it.  */
!     processed,
! 
!     /* Node was excluded from worklist on creation.
!        e.g. for handling exception-unwinding.  */
!     special,
  
      /* Node was left unprocessed due to merger; it won't have had
         exploded_graph::process_node called on it.  */
!     merger,
  
!     /* Node was processed by maybe_process_run_of_enodes.  */
!     bulk_merged
    };
    static const char * status_to_str (enum status s);
  
*************** class exploded_node : public dnode<eg_tr
*** 241,311 ****
  
    std::unique_ptr<json::object> to_json (const extrinsic_state &ext_state) const;
  
-   /* The result of on_stmt.  */
-   struct on_stmt_flags
-   {
-     on_stmt_flags () : m_terminate_path (false)
-     {}
- 
-     static on_stmt_flags terminate_path ()
-     {
-       return on_stmt_flags (true);
-     }
- 
-     /* Should we stop analyzing this path (on_stmt may have already
-        added nodes/edges, e.g. when handling longjmp).  */
-     bool m_terminate_path : 1;
- 
-   private:
-     on_stmt_flags (bool terminate_path)
-     : m_terminate_path (terminate_path)
-     {}
-   };
- 
-   on_stmt_flags on_stmt (exploded_graph &eg,
- 			 const supernode *snode,
- 			 const gimple *stmt,
- 			 program_state *state,
- 			 uncertainty_t *uncertainty,
- 			 bool *out_could_have_done_work,
- 			 path_context *path_ctxt);
-   void on_stmt_pre (exploded_graph &eg,
- 		    const gimple *stmt,
- 		    program_state *state,
- 		    bool *out_terminate_path,
- 		    bool *out_unknown_side_effects,
- 		    region_model_context *ctxt);
-   void on_stmt_post (const gimple *stmt,
- 		     program_state *state,
- 		     bool unknown_side_effects,
- 		     region_model_context *ctxt);
- 
-   on_stmt_flags replay_call_summaries (exploded_graph &eg,
- 				       const supernode *snode,
- 				       const gcall *call_stmt,
- 				       program_state *state,
- 				       path_context *path_ctxt,
- 				       const function &called_fn,
- 				       per_function_data &called_fn_data,
- 				       region_model_context *ctxt);
-   void replay_call_summary (exploded_graph &eg,
- 			    const supernode *snode,
- 			    const gcall *call_stmt,
- 			    program_state *state,
- 			    path_context *path_ctxt,
- 			    const function &called_fn,
- 			    call_summary *summary,
- 			    region_model_context *ctxt);
- 
-   bool on_edge (exploded_graph &eg,
- 		const superedge *succ,
- 		program_point *next_point,
- 		program_state *next_state,
- 		uncertainty_t *uncertainty);
    void on_longjmp (exploded_graph &eg,
! 		   const gcall *call,
  		   program_state *new_state,
  		   region_model_context *ctxt);
  
    void detect_leaks (exploded_graph &eg);
  
--- 248,263 ----
  
    std::unique_ptr<json::object> to_json (const extrinsic_state &ext_state) const;
  
    void on_longjmp (exploded_graph &eg,
! 		   const gcall &call,
  		   program_state *new_state,
  		   region_model_context *ctxt);
+   void on_throw (exploded_graph &eg,
+ 		 const gcall &call,
+ 		 const program_point &after_throw_point,
+ 		 program_state *new_state,
+ 		 bool is_rethrow,
+ 		 region_model_context *ctxt);
  
    void detect_leaks (exploded_graph &eg);
  
*************** class exploded_node : public dnode<eg_tr
*** 314,319 ****
--- 266,275 ----
    {
      return get_point ().get_supernode ();
    }
+   location_t get_location () const
+   {
+     return get_point ().get_location ();
+   }
    function *get_function () const
    {
      return get_point ().get_function ();
*************** class exploded_node : public dnode<eg_tr
*** 322,329 ****
    {
      return get_point ().get_stack_depth ();
    }
-   const gimple *get_stmt () const { return get_point ().get_stmt (); }
-   const gimple *get_processed_stmt (unsigned idx) const;
  
    const program_state &get_state () const { return m_ps.get_state (); }
  
--- 278,283 ----
*************** class exploded_node : public dnode<eg_tr
*** 333,342 ****
    void dump_succs_and_preds (FILE *outf) const;
  
    enum status get_status () const { return m_status; }
!   void set_status (enum status status)
    {
!     gcc_assert (m_status == STATUS_WORKLIST);
!     m_status = status;
    }
  
    void add_diagnostic (const saved_diagnostic *sd)
--- 287,296 ----
    void dump_succs_and_preds (FILE *outf) const;
  
    enum status get_status () const { return m_status; }
!   void set_status (enum status s)
    {
!     gcc_assert (m_status == status::worklist);
!     m_status = s;
    }
  
    void add_diagnostic (const saved_diagnostic *sd)
*************** class exploded_edge : public dedge<eg_tr
*** 392,404 ****
    //private:
    const superedge *const m_sedge;
  
!   /* NULL for most edges; will be non-NULL for special cases
       such as an unwind from a longjmp to a setjmp, or when
       a signal is delivered to a signal-handler.  */
    std::unique_ptr<custom_edge_info> m_custom_info;
  
    bool could_do_work_p () const { return m_could_do_work_p; }
  
  private:
    DISABLE_COPY_AND_ASSIGN (exploded_edge);
  
--- 346,361 ----
    //private:
    const superedge *const m_sedge;
  
!   /* nullptr for most edges; will be non-NULL for special cases
       such as an unwind from a longjmp to a setjmp, or when
       a signal is delivered to a signal-handler.  */
    std::unique_ptr<custom_edge_info> m_custom_info;
  
    bool could_do_work_p () const { return m_could_do_work_p; }
  
+   const gimple *maybe_get_stmt () const;
+   const operation *maybe_get_op () const;
+ 
  private:
    DISABLE_COPY_AND_ASSIGN (exploded_edge);
  
*************** private:
*** 418,454 ****
    bool m_could_do_work_p;
  };
  
! /* Extra data for an exploded_edge that represents dynamic call info ( calls
!    that doesn't have an underlying superedge representing the call ).  */
  
! class dynamic_call_info_t : public custom_edge_info
  {
  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)
    {}
  
!   void print (pretty_printer *pp) const final override
!   {
!     if (m_is_returning_call)
!       pp_string (pp, "dynamic_return");
!     else
!       pp_string (pp, "dynamic_call");
!   }
  
    bool update_model (region_model *model,
  		     const exploded_edge *eedge,
  		     region_model_context *ctxt) const final override;
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge) const final override;
  private:
!   const gcall *m_dynamic_call;
!   const bool m_is_returning_call;
  };
  
  
  /* Extra data for an exploded_edge that represents a rewind from a
     longjmp to a setjmp (or from a siglongjmp to a sigsetjmp).  */
--- 375,444 ----
    bool m_could_do_work_p;
  };
  
! /* Extra data for an exploded_edge that represents an interprocedural
!    call.  */
  
! class interprocedural_call : public custom_edge_info
  {
  public:
!   interprocedural_call (const gcall &call_stmt,
! 			function &callee_fun)
!   : m_call_stmt (call_stmt),
!     m_callee_fun (callee_fun)
    {}
  
!   void print (pretty_printer *pp) const final override;
! 
!   void get_dot_attrs (const char *&out_style,
! 		      const char *&out_color) const final override;
! 
!   bool update_state (program_state *state,
! 		     const exploded_edge *eedge,
! 		     region_model_context *ctxt) const final override;
  
    bool update_model (region_model *model,
  		     const exploded_edge *eedge,
  		     region_model_context *ctxt) const final override;
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge,
! 			   pending_diagnostic &pd) const final override;
! 
  private:
!   const gcall &m_call_stmt;
!   function &m_callee_fun;
  };
  
+ /* Extra data for an exploded_edge that represents an interprocedural
+    return.  */
+ 
+ class interprocedural_return : public custom_edge_info
+ {
+ public:
+   interprocedural_return (const gcall &call_stmt)
+   : m_call_stmt (call_stmt)
+   {}
+ 
+   void print (pretty_printer *pp) const final override;
+ 
+   void get_dot_attrs (const char *&out_style,
+ 		      const char *&out_color) const final override;
+ 
+   bool update_state (program_state *state,
+ 		     const exploded_edge *eedge,
+ 		     region_model_context *ctxt) const final override;
+ 
+   bool update_model (region_model *model,
+ 		     const exploded_edge *eedge,
+ 		     region_model_context *ctxt) const final override;
+ 
+   void add_events_to_path (checker_path *emission_path,
+ 			   const exploded_edge &eedge,
+ 			   pending_diagnostic &pd) const final override;
+ 
+ private:
+   const gcall &m_call_stmt;
+ };
  
  /* Extra data for an exploded_edge that represents a rewind from a
     longjmp to a setjmp (or from a siglongjmp to a sigsetjmp).  */
*************** class rewind_info_t : public custom_edge
*** 457,463 ****
  {
  public:
    rewind_info_t (const setjmp_record &setjmp_record,
! 		 const gcall *longjmp_call)
    : m_setjmp_record (setjmp_record),
      m_longjmp_call (longjmp_call)
    {}
--- 447,453 ----
  {
  public:
    rewind_info_t (const setjmp_record &setjmp_record,
! 		 const gcall &longjmp_call)
    : m_setjmp_record (setjmp_record),
      m_longjmp_call (longjmp_call)
    {}
*************** public:
*** 472,497 ****
  		     region_model_context *ctxt) const final override;
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge) const final override;
  
!   const program_point &get_setjmp_point () const
    {
!     const program_point &origin_point = get_enode_origin ()->get_point ();
! 
!     /* "origin_point" ought to be before the call to "setjmp".  */
!     gcc_assert (origin_point.get_kind () == PK_BEFORE_STMT);
! 
!     /* TODO: assert that it's the final stmt in its supernode.  */
  
!     return origin_point;
    }
  
!   const gcall *get_setjmp_call () const
    {
!     return m_setjmp_record.m_setjmp_call;
    }
  
!   const gcall *get_longjmp_call () const
    {
      return m_longjmp_call;
    }
--- 462,490 ----
  		     region_model_context *ctxt) const final override;
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge,
! 			   pending_diagnostic &pd) const final override;
  
!   program_point
!   get_point_before_setjmp () const
    {
!     return get_enode_origin ()->get_point ();
!   }
  
!   program_point
!   get_point_after_setjmp () const
!   {
!     const program_point &origin_point = get_enode_origin ()->get_point ();
!     return program_point (m_setjmp_record.m_sedge->m_dest,
! 			  origin_point.get_call_string ());
    }
  
!   const gcall &get_setjmp_call () const
    {
!     return *m_setjmp_record.m_setjmp_call;
    }
  
!   const gcall &get_longjmp_call () const
    {
      return m_longjmp_call;
    }
*************** public:
*** 503,509 ****
  
  private:
    setjmp_record m_setjmp_record;
!   const gcall *m_longjmp_call;
  };
  
  /* Statistics about aspects of an exploded_graph.  */
--- 496,502 ----
  
  private:
    setjmp_record m_setjmp_record;
!   const gcall &m_longjmp_call;
  };
  
  /* Statistics about aspects of an exploded_graph.  */
*************** struct stats
*** 516,522 ****
  
    int get_total_enodes () const;
  
!   int m_num_nodes[NUM_POINT_KINDS];
    int m_node_reuse_count;
    int m_node_reuse_after_merge_count;
    int m_num_supernodes;
--- 509,515 ----
  
    int get_total_enodes () const;
  
!   int m_num_nodes;
    int m_node_reuse_count;
    int m_node_reuse_after_merge_count;
    int m_num_supernodes;
*************** struct eg_hash_map_traits
*** 533,546 ****
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != NULL);
      gcc_assert (k != reinterpret_cast<key_type> (1));
      return k->hash ();
    }
    static inline bool equal_keys (const key_type &k1, const key_type &k2)
    {
!     gcc_assert (k1 != NULL);
!     gcc_assert (k2 != NULL);
      gcc_assert (k1 != reinterpret_cast<key_type> (1));
      gcc_assert (k2 != reinterpret_cast<key_type> (1));
      if (k1 && k2)
--- 526,539 ----
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != nullptr);
      gcc_assert (k != reinterpret_cast<key_type> (1));
      return k->hash ();
    }
    static inline bool equal_keys (const key_type &k1, const key_type &k2)
    {
!     gcc_assert (k1 != nullptr);
!     gcc_assert (k2 != nullptr);
      gcc_assert (k1 != reinterpret_cast<key_type> (1));
      gcc_assert (k2 != reinterpret_cast<key_type> (1));
      if (k1 && k2)
*************** struct eg_hash_map_traits
*** 562,568 ****
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = NULL;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
--- 555,561 ----
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = nullptr;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
*************** struct eg_hash_map_traits
*** 572,578 ****
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == NULL;
    }
    static const bool empty_zero_p = false;
  };
--- 565,571 ----
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == nullptr;
    }
    static const bool empty_zero_p = false;
  };
*************** struct eg_point_hash_map_traits
*** 603,616 ****
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != NULL);
      gcc_assert (k != reinterpret_cast<key_type> (1));
      return k->hash ();
    }
    static inline bool equal_keys (const key_type &k1, const key_type &k2)
    {
!     gcc_assert (k1 != NULL);
!     gcc_assert (k2 != NULL);
      gcc_assert (k1 != reinterpret_cast<key_type> (1));
      gcc_assert (k2 != reinterpret_cast<key_type> (1));
      if (k1 && k2)
--- 596,609 ----
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != nullptr);
      gcc_assert (k != reinterpret_cast<key_type> (1));
      return k->hash ();
    }
    static inline bool equal_keys (const key_type &k1, const key_type &k2)
    {
!     gcc_assert (k1 != nullptr);
!     gcc_assert (k2 != nullptr);
      gcc_assert (k1 != reinterpret_cast<key_type> (1));
      gcc_assert (k2 != reinterpret_cast<key_type> (1));
      if (k1 && k2)
*************** struct eg_point_hash_map_traits
*** 632,638 ****
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = NULL;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
--- 625,631 ----
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = nullptr;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
*************** struct eg_point_hash_map_traits
*** 642,648 ****
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == NULL;
    }
    static const bool empty_zero_p = false;
  };
--- 635,641 ----
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == nullptr;
    }
    static const bool empty_zero_p = false;
  };
*************** struct per_function_data
*** 671,677 ****
    auto_vec<call_summary *> m_summaries;
  };
  
- 
  /* The strongly connected components of a supergraph.
     In particular, this allows us to compute a partial ordering
     of supernodes.  */
--- 664,669 ----
*************** private:
*** 694,708 ****
    struct per_node_data
    {
      per_node_data ()
!       : m_index (-1), m_lowlink (-1), m_on_stack (false)
      {}
  
!     int m_index;
      int m_lowlink;
      bool m_on_stack;
    };
  
!   void strong_connect (unsigned index);
  
    const supergraph &m_sg;
    auto_vec<unsigned> m_stack;
--- 686,700 ----
    struct per_node_data
    {
      per_node_data ()
!     : m_id (-1), m_lowlink (-1), m_on_stack (false)
      {}
  
!     int m_id;
      int m_lowlink;
      bool m_on_stack;
    };
  
!   void strong_connect (unsigned index, logger *logger);
  
    const supergraph &m_sg;
    auto_vec<unsigned> m_stack;
*************** public:
*** 729,735 ****
    void add_node (exploded_node *enode);
    int get_scc_id (const supernode &snode) const
    {
!     return m_scc.get_scc_id (snode.m_index);
    }
  
    std::unique_ptr<json::object> to_json () const;
--- 721,727 ----
    void add_node (exploded_node *enode);
    int get_scc_id (const supernode &snode) const
    {
!     return m_scc.get_scc_id (snode.m_id);
    }
  
    std::unique_ptr<json::object> to_json () const;
*************** private:
*** 763,771 ****
      int get_scc_id (const exploded_node *enode) const
      {
        const supernode *snode = enode->get_supernode ();
!       if (snode == NULL)
  	return 0;
!       return m_worklist.m_scc.get_scc_id (snode->m_index);
      }
  
      const worklist &m_worklist;
--- 755,763 ----
      int get_scc_id (const exploded_node *enode) const
      {
        const supernode *snode = enode->get_supernode ();
!       if (snode == nullptr)
  	return 0;
!       return m_worklist.m_scc.get_scc_id (snode->m_id);
      }
  
      const worklist &m_worklist;
*************** public:
*** 814,836 ****
  
    void build_initial_worklist ();
    void process_worklist ();
!   bool maybe_process_run_of_before_supernode_enodes (exploded_node *node);
    void process_node (exploded_node *node);
  
-   bool maybe_create_dynamic_call (const gcall *call,
-                                   tree fn_decl,
-                                   exploded_node *node,
-                                   program_state next_state,
-                                   program_point &next_point,
-                                   uncertainty_t *uncertainty,
-                                   logger *logger);
- 
    exploded_node *get_or_create_node (const program_point &point,
  				     const program_state &state,
! 				     exploded_node *enode_for_diag);
    exploded_edge *add_edge (exploded_node *src, exploded_node *dest,
  			   const superedge *sedge, bool could_do_work,
! 			   std::unique_ptr<custom_edge_info> custom = NULL);
  
    per_program_point_data *
    get_or_create_per_program_point_data (const program_point &);
--- 806,821 ----
  
    void build_initial_worklist ();
    void process_worklist ();
!   bool maybe_process_run_of_enodes (exploded_node *node);
    void process_node (exploded_node *node);
  
    exploded_node *get_or_create_node (const program_point &point,
  				     const program_state &state,
! 				     exploded_node *enode_for_diag,
! 				     bool add_to_worklist = true);
    exploded_edge *add_edge (exploded_node *src, exploded_node *dest,
  			   const superedge *sedge, bool could_do_work,
! 			   std::unique_ptr<custom_edge_info> custom = nullptr);
  
    per_program_point_data *
    get_or_create_per_program_point_data (const program_point &);
*************** public:
*** 847,853 ****
    void save_diagnostic (const state_machine &sm,
  			const exploded_node *enode,
  			const supernode *node, const gimple *stmt,
- 			stmt_finder *finder,
  			tree var, state_machine::state_t state,
  			pending_diagnostic *d);
  
--- 832,837 ----
*************** public:
*** 864,870 ****
    stats *get_or_create_function_stats (function *fn);
    void log_stats () const;
    void dump_stats (FILE *) const;
-   void dump_states_for_supernode (FILE *, const supernode *snode) const;
    void dump_exploded_nodes () const;
  
    std::unique_ptr<json::object> to_json () const;
--- 848,853 ----
*************** public:
*** 881,886 ****
--- 864,873 ----
  
    void on_escaped_function (tree fndecl);
  
+   void unwind_from_exception (exploded_node &enode,
+ 			      const gimple *stmt,
+ 			      region_model_context *ctxt);
+ 
    /* In infinite-loop.cc */
    void detect_infinite_loops ();
  
*************** private:
*** 934,941 ****
  
    call_string_data_map_t m_per_call_string_data;
  
-   auto_vec<int> m_PK_AFTER_SUPERNODE_per_snode;
- 
    /* Functions with a top-level enode, to make add_function_entry
       be idempotent, for use in handling callbacks.  */
    hash_set<function *> m_functions_with_enodes;
--- 921,926 ----
*************** public:
*** 959,965 ****
    void dump_to_pp (pretty_printer *pp,
  		   const extrinsic_state *ext_state) const;
    void dump (FILE *fp, const extrinsic_state *ext_state) const;
!   void dump (const extrinsic_state *ext_state = NULL) const;
    void dump_to_file (const char *filename,
  		     const extrinsic_state &ext_state) const;
  
--- 944,950 ----
    void dump_to_pp (pretty_printer *pp,
  		   const extrinsic_state *ext_state) const;
    void dump (FILE *fp, const extrinsic_state *ext_state) const;
!   void dump (const extrinsic_state *ext_state = nullptr) const;
    void dump_to_file (const char *filename,
  		     const extrinsic_state &ext_state) const;
  
*************** class feasibility_problem
*** 976,992 ****
  public:
    feasibility_problem (unsigned eedge_idx,
  		       const exploded_edge &eedge,
- 		       const gimple *last_stmt,
  		       std::unique_ptr<rejected_constraint> rc)
    : m_eedge_idx (eedge_idx), m_eedge (eedge),
!     m_last_stmt (last_stmt), m_rc (std::move (rc))
    {}
  
    void dump_to_pp (pretty_printer *pp) const;
  
    unsigned m_eedge_idx;
    const exploded_edge &m_eedge;
-   const gimple *m_last_stmt;
    std::unique_ptr<rejected_constraint> m_rc;
  };
  
--- 961,975 ----
  public:
    feasibility_problem (unsigned eedge_idx,
  		       const exploded_edge &eedge,
  		       std::unique_ptr<rejected_constraint> rc)
    : m_eedge_idx (eedge_idx), m_eedge (eedge),
!     m_rc (std::move (rc))
    {}
  
    void dump_to_pp (pretty_printer *pp) const;
  
    unsigned m_eedge_idx;
    const exploded_edge &m_eedge;
    std::unique_ptr<rejected_constraint> m_rc;
  };
  
*************** public:
*** 1008,1016 ****
  			      const exploded_edge *eedge,
  			      region_model_context *ctxt,
  			      std::unique_ptr<rejected_constraint> *out_rc);
-   void update_for_stmt (const gimple *stmt);
  
    const region_model &get_model () const { return m_model; }
    const auto_sbitmap &get_snodes_visited () const { return m_snodes_visited; }
  
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
--- 991,1000 ----
  			      const exploded_edge *eedge,
  			      region_model_context *ctxt,
  			      std::unique_ptr<rejected_constraint> *out_rc);
  
+   region_model &get_model () { return m_model; }
    const region_model &get_model () const { return m_model; }
+   auto_sbitmap &get_snodes_visited () { return m_snodes_visited; }
    const auto_sbitmap &get_snodes_visited () const { return m_snodes_visited; }
  
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
*************** private:
*** 1024,1043 ****
  
  typedef shortest_paths<eg_traits, exploded_path> shortest_exploded_paths;
  
- /* Abstract base class for use when passing NULL as the stmt for
-    a possible warning, allowing the choice of stmt to be deferred
-    until after we have an emission path (and know we're emitting a
-    warning).  */
- 
- class stmt_finder
- {
- public:
-   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?
  
  } // namespace ana
--- 1008,1013 ----
diff -Nrcpad gcc-15.2.0/gcc/analyzer/feasible-graph.cc gcc-16.1.0-RC-20260423/gcc/analyzer/feasible-graph.cc
*** gcc-15.2.0/gcc/analyzer/feasible-graph.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/feasible-graph.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,38 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "pretty-print.h"
! #include "gcc-rich-location.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "diagnostic-core.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "bitmap.h"
! #include "ordered-hash-map.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 18,30 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "cfg.h"
! #include "gimple-iterator.h"
! #include "cgraph.h"
! #include "digraph.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** along with GCC; see the file COPYING3.
*** 42,53 ****
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
--- 34,39 ----
*************** feasible_node::dump_dot (graphviz_out *g
*** 95,101 ****
    m_state.get_model ().dump_to_pp (pp, true, true);
    pp_newline (pp);
  
-   m_inner_node->dump_processed_stmts (pp);
    m_inner_node->dump_saved_diagnostics (pp);
  
    pp_write_text_as_dot_label_to_stream (pp, /*for_record=*/true);
--- 81,86 ----
*************** feasible_node::dump_dot (graphviz_out *g
*** 104,139 ****
    pp_flush (pp);
  }
  
- /* Attempt to get the region_model for this node's state at TARGET_STMT.
-    Return true and write to *OUT if found.
-    Return false if there's a problem.  */
- 
- bool
- feasible_node::get_state_at_stmt (const gimple *target_stmt,
- 				  region_model *out) const
- {
-   if (!target_stmt)
-     return false;
- 
-   feasibility_state result (m_state);
- 
-   /* Update state for the stmts that were processed in each enode.  */
-   for (unsigned stmt_idx = 0; stmt_idx < m_inner_node->m_num_processed_stmts;
-        stmt_idx++)
-     {
-       const gimple *stmt = m_inner_node->get_processed_stmt (stmt_idx);
-       if (stmt == target_stmt)
- 	{
- 	  *out = result.get_model ();
- 	  return true;
- 	}
-       result.update_for_stmt (stmt);
-     }
- 
-   /* TARGET_STMT not found; wrong node?  */
-   return false;
- }
- 
  /* Implementation of dump_dot vfunc for infeasible_node.
     In particular, show the rejected constraint.  */
  
--- 89,94 ----
diff -Nrcpad gcc-15.2.0/gcc/analyzer/feasible-graph.h gcc-16.1.0-RC-20260423/gcc/analyzer/feasible-graph.h
*** gcc-15.2.0/gcc/analyzer/feasible-graph.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/feasible-graph.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A graph for exploring trees of feasible paths through the egraph.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/function-set.cc gcc-16.1.0-RC-20260423/gcc/analyzer/function-set.cc
*** gcc-15.2.0/gcc/analyzer/function-set.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/function-set.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace selftest {
*** 95,101 ****
  static void
  test_empty ()
  {
!   function_set fs (NULL, 0);
    fs.assert_sorted ();
    fs.assert_sane ();
    ASSERT_FALSE (fs.contains_name_p (""));
--- 95,101 ----
  static void
  test_empty ()
  {
!   function_set fs (nullptr, 0);
    fs.assert_sorted ();
    fs.assert_sane ();
    ASSERT_FALSE (fs.contains_name_p (""));
diff -Nrcpad gcc-15.2.0/gcc/analyzer/function-set.h gcc-16.1.0-RC-20260423/gcc/analyzer/function-set.h
*** gcc-15.2.0/gcc/analyzer/function-set.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/function-set.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Sets of function names.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/impl-sm-context.h gcc-16.1.0-RC-20260423/gcc/analyzer/impl-sm-context.h
*** gcc-15.2.0/gcc/analyzer/impl-sm-context.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/impl-sm-context.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,289 ----
+ /* Concrete implementation of sm_context.
+    Copyright (C) 2019-2026 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_IMPL_SM_CONTEXT
+ #define GCC_ANALYZER_IMPL_SM_CONTEXT
+ 
+ namespace ana {
+ 
+ /* Concrete implementation of sm_context, wiring it up to the rest of this
+    file.  */
+ 
+ class impl_sm_context : public sm_context
+ {
+ public:
+   impl_sm_context (exploded_graph &eg,
+ 		   int sm_idx,
+ 		   const state_machine &sm,
+ 		   exploded_node *enode_for_diag,
+ 		   const program_state *old_state,
+ 		   program_state *new_state,
+ 		   const sm_state_map *old_smap,
+ 		   sm_state_map *new_smap,
+ 		   path_context *path_ctxt,
+ 		   bool unknown_side_effects = false)
+   : sm_context (sm_idx, sm),
+     m_logger (eg.get_logger ()),
+     m_eg (eg), m_enode_for_diag (enode_for_diag),
+     m_old_state (old_state), m_new_state (new_state),
+     m_old_smap (old_smap), m_new_smap (new_smap),
+     m_path_ctxt (path_ctxt),
+     m_unknown_side_effects (unknown_side_effects)
+   {
+   }
+ 
+   logger *get_logger () const { return m_logger.get_logger (); }
+ 
+   tree get_fndecl_for_call (const gcall &call) final override
+   {
+     impl_region_model_context old_ctxt
+       (m_eg, m_enode_for_diag, nullptr, nullptr, nullptr/*m_enode->get_state ()*/,
+        nullptr, &call);
+     region_model *model = m_new_state->m_region_model;
+     return model->get_fndecl_for_call (call, &old_ctxt);
+   }
+ 
+   state_machine::state_t get_state (tree var) final override
+   {
+     logger * const logger = get_logger ();
+     LOG_FUNC (logger);
+     /* Use nullptr ctxt on this get_rvalue call to avoid triggering
+        uninitialized value warnings.  */
+     const svalue *var_old_sval
+       = m_old_state->m_region_model->get_rvalue (var, nullptr);
+ 
+     state_machine::state_t current
+       = m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ());
+     return current;
+   }
+   state_machine::state_t get_state (const svalue *sval) final override
+   {
+     logger * const logger = get_logger ();
+     LOG_FUNC (logger);
+     state_machine::state_t current
+       = m_old_smap->get_state (sval, m_eg.get_ext_state ());
+     return current;
+   }
+ 
+ 
+   void set_next_state (tree var,
+ 		       state_machine::state_t to,
+ 		       tree origin) final override
+   {
+     logger * const logger = get_logger ();
+     LOG_FUNC (logger);
+     const svalue *var_new_sval
+       = m_new_state->m_region_model->get_rvalue (var, nullptr);
+     const svalue *origin_new_sval
+       = m_new_state->m_region_model->get_rvalue (origin, nullptr);
+ 
+     /* We use the new sval here to avoid issues with uninitialized values.  */
+     state_machine::state_t current
+       = m_old_smap->get_state (var_new_sval, m_eg.get_ext_state ());
+     if (logger)
+       logger->log ("%s: state transition of %qE: %s -> %s",
+ 		   m_sm.get_name (),
+ 		   var,
+ 		   current->get_name (),
+ 		   to->get_name ());
+     m_new_smap->set_state (m_new_state->m_region_model, var_new_sval,
+ 			   to, origin_new_sval, m_eg.get_ext_state ());
+   }
+ 
+   void set_next_state (const svalue *sval,
+ 		       state_machine::state_t to,
+ 		       tree origin) final override
+   {
+     logger * const logger = get_logger ();
+     LOG_FUNC (logger);
+     impl_region_model_context old_ctxt
+       (m_eg, m_enode_for_diag, nullptr, nullptr, nullptr/*m_enode->get_state ()*/,
+        nullptr, nullptr);
+ 
+     const svalue *origin_new_sval
+       = m_new_state->m_region_model->get_rvalue (origin, nullptr);
+ 
+     state_machine::state_t current
+       = m_old_smap->get_state (sval, m_eg.get_ext_state ());
+     if (logger)
+       {
+ 	logger->start_log_line ();
+ 	logger->log_partial ("%s: state transition of ",
+ 			     m_sm.get_name ());
+ 	sval->dump_to_pp (logger->get_printer (), true);
+ 	logger->log_partial (": %s -> %s",
+ 			     current->get_name (),
+ 			     to->get_name ());
+ 	logger->end_log_line ();
+       }
+     m_new_smap->set_state (m_new_state->m_region_model, sval,
+ 			   to, origin_new_sval, m_eg.get_ext_state ());
+   }
+ 
+   void warn (tree var,
+ 	     std::unique_ptr<pending_diagnostic> d) final override
+   {
+     LOG_FUNC (get_logger ());
+     gcc_assert (d);
+     const svalue *var_old_sval
+       = m_old_state->m_region_model->get_rvalue (var, nullptr);
+     state_machine::state_t current
+       = (var
+ 	 ? m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ())
+ 	 : m_old_smap->get_global_state ());
+     bool terminate_path = d->terminate_path_p ();
+     pending_location ploc (m_enode_for_diag);
+     m_eg.get_diagnostic_manager ().add_diagnostic
+       (&m_sm, std::move (ploc),
+        var, var_old_sval, current, std::move (d));
+     if (m_path_ctxt
+ 	&& terminate_path
+ 	&& flag_analyzer_suppress_followups)
+       m_path_ctxt->terminate_path ();
+   }
+ 
+   void warn (const svalue *sval,
+ 	     std::unique_ptr<pending_diagnostic> d) final override
+   {
+     LOG_FUNC (get_logger ());
+     gcc_assert (d);
+     state_machine::state_t current
+       = (sval
+ 	 ? m_old_smap->get_state (sval, m_eg.get_ext_state ())
+ 	 : m_old_smap->get_global_state ());
+     bool terminate_path = d->terminate_path_p ();
+     pending_location ploc (m_enode_for_diag);
+     m_eg.get_diagnostic_manager ().add_diagnostic
+       (&m_sm, std::move (ploc),
+        NULL_TREE, sval, current, std::move (d));
+     if (m_path_ctxt
+ 	&& terminate_path
+ 	&& flag_analyzer_suppress_followups)
+       m_path_ctxt->terminate_path ();
+   }
+ 
+   /* Hook for picking more readable trees for SSA names of temporaries,
+      so that rather than e.g.
+        "double-free of '<unknown>'"
+      we can print:
+        "double-free of 'inbuf.data'".  */
+ 
+   tree get_diagnostic_tree (tree expr) final override
+   {
+     /* Only for SSA_NAMEs of temporaries; otherwise, return EXPR, as it's
+        likely to be the least surprising tree to report.  */
+     if (TREE_CODE (expr) != SSA_NAME)
+       return expr;
+     if (SSA_NAME_VAR (expr) != NULL)
+       return expr;
+ 
+     gcc_assert (m_new_state);
+     const svalue *sval = m_new_state->m_region_model->get_rvalue (expr, nullptr);
+     /* Find trees for all regions storing the value.  */
+     if (tree t = m_new_state->m_region_model->get_representative_tree (sval))
+       return t;
+     else
+       return expr;
+   }
+ 
+   tree get_diagnostic_tree (const svalue *sval) final override
+   {
+     return m_new_state->m_region_model->get_representative_tree (sval);
+   }
+ 
+   state_machine::state_t get_global_state () const final override
+   {
+     return m_old_state->m_checker_states[m_sm_idx]->get_global_state ();
+   }
+ 
+   void set_global_state (state_machine::state_t state) final override
+   {
+     m_new_state->m_checker_states[m_sm_idx]->set_global_state (state);
+   }
+ 
+   void clear_all_per_svalue_state () final override
+   {
+     m_new_state->m_checker_states[m_sm_idx]->clear_all_per_svalue_state ();
+   }
+ 
+   void on_custom_transition (custom_transition *transition) final override
+   {
+     transition->impl_transition (&m_eg,
+ 				 const_cast<exploded_node *> (m_enode_for_diag),
+ 				 m_sm_idx);
+   }
+ 
+   tree is_zero_assignment (const gimple *stmt) final override
+   {
+     const gassign *assign_stmt = dyn_cast <const gassign *> (stmt);
+     if (!assign_stmt)
+      return NULL_TREE;
+     impl_region_model_context old_ctxt
+       (m_eg, m_enode_for_diag, m_old_state, m_new_state, nullptr, nullptr, stmt);
+     if (const svalue *sval
+ 	= m_new_state->m_region_model->get_gassign_result (assign_stmt,
+ 							    &old_ctxt))
+       if (tree cst = sval->maybe_get_constant ())
+ 	if (::zerop(cst))
+ 	  return gimple_assign_lhs (assign_stmt);
+     return NULL_TREE;
+   }
+ 
+   path_context *get_path_context () const final override
+   {
+     return m_path_ctxt;
+   }
+ 
+   bool unknown_side_effects_p () const final override
+   {
+     return m_unknown_side_effects;
+   }
+ 
+   const program_state *get_old_program_state () const final override
+   {
+     return m_old_state;
+   }
+ 
+   const program_state *get_new_program_state () const final override
+   {
+     return m_new_state;
+   }
+ 
+   location_t get_emission_location () const final override
+   {
+     return pending_location (m_enode_for_diag).get_location ();
+   }
+ 
+   log_user m_logger;
+   exploded_graph &m_eg;
+   exploded_node *m_enode_for_diag;
+   const program_state *m_old_state;
+   program_state *m_new_state;
+   const sm_state_map *m_old_smap;
+   sm_state_map *m_new_smap;
+   path_context *m_path_ctxt;
+ 
+   /* Are we handling an external function with unknown side effects?  */
+   bool m_unknown_side_effects;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_IMPL_SM_CONTEXT */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/infinite-loop.cc gcc-16.1.0-RC-20260423/gcc/analyzer/infinite-loop.cc
*** gcc-15.2.0/gcc/analyzer/infinite-loop.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/infinite-loop.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Detection of infinite loops.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,45 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "fold-const.h"
! #include "gcc-rich-location.h"
! #include "alloc-pool.h"
! #include "fibonacci_heap.h"
! #include "shortest-paths.h"
! #include "diagnostic-core.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "function.h"
! #include "pretty-print.h"
! #include "sbitmap.h"
! #include "bitmap.h"
! #include "tristate.h"
! #include "ordered-hash-map.h"
! #include "selftest.h"
! #include "json.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
--- 18,32 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "cfg.h"
! #include "gimple-iterator.h"
! #include "gimple-pretty-print.h"
! #include "cgraph.h"
! #include "digraph.h"
! #include "diagnostics/sarif-sink.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 49,68 ****
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "gimple-pretty-print.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/feasible-graph.h"
- #include "make-unique.h"
- #include "diagnostic-format-sarif.h"
  
  /* A bundle of data characterizing a particular infinite loop
     identified within the exploded graph.  */
--- 36,46 ----
*************** struct infinite_loop
*** 108,116 ****
    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));
--- 86,94 ----
    std::unique_ptr<json::object>
    to_json () const
    {
!     auto loop_obj = std::make_unique<json::object> ();
      loop_obj->set_integer ("enode", m_enode.m_index);
!     auto edge_arr = std::make_unique<json::array> ();
      for (auto eedge : m_eedge_vec)
        edge_arr->append (eedge->to_json ());
      loop_obj->set ("eedges", std::move (edge_arr));
*************** class perpetual_start_cfg_edge_event : p
*** 130,137 ****
  {
  public:
    perpetual_start_cfg_edge_event (const exploded_edge &eedge,
! 				  const event_loc_info &loc_info)
!   : start_cfg_edge_event (eedge, loc_info)
    {
    }
  
--- 108,116 ----
  {
  public:
    perpetual_start_cfg_edge_event (const exploded_edge &eedge,
! 				  const event_loc_info &loc_info,
! 				  const control_flow_op *op)
!   : start_cfg_edge_event (eedge, loc_info, op)
    {
    }
  
*************** public:
*** 141,150 ****
      label_text edge_desc (m_sedge->get_description (user_facing));
      if (user_facing)
        {
! 	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...",
--- 120,131 ----
      label_text edge_desc (m_sedge->get_description (user_facing));
      if (user_facing)
        {
! 	if (edge_desc.get ()
! 	    && strlen (edge_desc.get ()) > 0
! 	    && m_op)
  	  {
  	    label_text cond_desc
! 	      = m_op->maybe_describe_condition (pp_show_color (&pp));
  	    if (cond_desc.get ())
  	      pp_printf (&pp,
  			 "%s: always following %qs branch...",
*************** class looping_back_event : public start_
*** 165,172 ****
  {
  public:
    looping_back_event (const exploded_edge &eedge,
! 		      const event_loc_info &loc_info)
!   : start_cfg_edge_event (eedge, loc_info)
    {
    }
  
--- 146,154 ----
  {
  public:
    looping_back_event (const exploded_edge &eedge,
! 		      const event_loc_info &loc_info,
! 		      const control_flow_op *op)
!   : start_cfg_edge_event (eedge, loc_info, op)
    {
    }
  
*************** public:
*** 211,218 ****
      return ctxt.warn ("infinite loop");
    }
  
!   bool maybe_add_custom_events_for_superedge (const exploded_edge &,
! 					      checker_path *)
      final override
    {
      /* Don't add any regular events; instead we add them after pruning as
--- 193,200 ----
      return ctxt.warn ("infinite loop");
    }
  
!   bool maybe_add_custom_events_for_eedge (const exploded_edge &,
! 					  checker_path *)
      final override
    {
      /* Don't add any regular events; instead we add them after pruning as
*************** public:
*** 237,243 ****
  			checker_path *emission_path) final override
    {
      emission_path->add_event
!       (make_unique<warning_event>
         (event_loc_info (m_inf_loop->m_loc,
  			enode->get_function ()->decl,
  			enode->get_stack_depth ()),
--- 219,225 ----
  			checker_path *emission_path) final override
    {
      emission_path->add_event
!       (std::make_unique<warning_event>
         (event_loc_info (m_inf_loop->m_loc,
  			enode->get_function ()->decl,
  			enode->get_stack_depth ()),
*************** public:
*** 257,265 ****
  	if (!eedge->m_sedge)
  	  continue;
  
! 	const cfg_superedge *cfg_sedge
! 	  = eedge->m_sedge->dyn_cast_cfg_superedge ();
! 	if (!cfg_sedge)
  	  continue;
  
  	const exploded_node *src_node = eedge->m_src;
--- 239,246 ----
  	if (!eedge->m_sedge)
  	  continue;
  
! 	::edge cfg_edge = eedge->m_sedge->get_any_cfg_edge ();
! 	if (!cfg_edge)
  	  continue;
  
  	const exploded_node *src_node = eedge->m_src;
*************** public:
*** 268,335 ****
  	const program_point &dst_point = dst_node->get_point ();
  	const int src_stack_depth = src_point.get_stack_depth ();
  	const int dst_stack_depth = dst_point.get_stack_depth ();
- 	const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
- 
  	event_loc_info loc_info_from
! 	  (last_stmt ? last_stmt->location : cfg_sedge->get_goto_locus (),
  	   src_point.get_fndecl (),
  	   src_stack_depth);
  	event_loc_info loc_info_to
! 	  (dst_point.get_supernode ()->get_start_location (),
  	   dst_point.get_fndecl (),
  	   dst_stack_depth);
  
! 	if (const switch_cfg_superedge *switch_cfg_sedge
! 	      = cfg_sedge->dyn_cast_switch_cfg_superedge ())
! 	  {
! 	    if (switch_cfg_sedge->implicitly_created_default_p ())
! 	      {
! 		emission_path->add_event
! 		  (make_unique<perpetual_start_cfg_edge_event> (*eedge,
! 								loc_info_from));
! 		emission_path->add_event
! 		  (make_unique<end_cfg_edge_event>
! 		   (*eedge,
! 		    loc_info_to));
! 	      }
! 	  }
! 
! 	if (cfg_sedge->true_value_p ())
! 	  {
! 	    emission_path->add_event
! 	      (make_unique<perpetual_start_cfg_edge_event> (*eedge,
! 							    loc_info_from));
! 	    emission_path->add_event
! 	      (make_unique<end_cfg_edge_event>
! 	       (*eedge,
! 		loc_info_to));
! 	  }
! 	else if (cfg_sedge->false_value_p ())
! 	  {
! 	    emission_path->add_event
! 	      (make_unique<perpetual_start_cfg_edge_event> (*eedge,
! 							    loc_info_from));
! 	    emission_path->add_event
! 	      (make_unique<end_cfg_edge_event>
! 	       (*eedge,
! 		loc_info_to));
! 	  }
! 	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,
! 		loc_info_to));
  	  }
        }
    }
  
!   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/infinite_loop_diagnostic/"
      props.set (PROPERTY_PREFIX "inf_loop", m_inf_loop->to_json ());
  #undef PROPERTY_PREFIX
--- 249,330 ----
  	const program_point &dst_point = dst_node->get_point ();
  	const int src_stack_depth = src_point.get_stack_depth ();
  	const int dst_stack_depth = dst_point.get_stack_depth ();
  	event_loc_info loc_info_from
! 	  (src_point.get_supernode ()->get_location (),
  	   src_point.get_fndecl (),
  	   src_stack_depth);
  	event_loc_info loc_info_to
! 	  (dst_point.get_supernode ()->get_location (),
  	   dst_point.get_fndecl (),
  	   dst_stack_depth);
+ 	if (auto base_op = eedge->m_sedge->get_op ())
+ 	  if (auto control_flow_op = base_op->dyn_cast_control_flow_op ())
+ 	    {
+ 	      if (control_flow_op->get_kind () == operation::switch_edge)
+ 		{
+ 		  const switch_case_op &case_op
+ 		    = *(const switch_case_op *)base_op;
+ 		  if (case_op.implicitly_created_default_p ())
+ 		    {
+ 		      emission_path->add_event
+ 			(std::make_unique<perpetual_start_cfg_edge_event>
+ 			 (*eedge,
+ 			  loc_info_from,
+ 			  control_flow_op));
+ 		      emission_path->add_event
+ 			(std::make_unique<end_cfg_edge_event>
+ 			 (*eedge,
+ 			  loc_info_to,
+ 			  control_flow_op));
+ 		    }
+ 		}
+ 	      else if (cfg_edge->flags & EDGE_TRUE_VALUE)
+ 		{
+ 		  emission_path->add_event
+ 		    (std::make_unique<perpetual_start_cfg_edge_event>
+ 		     (*eedge,
+ 		      loc_info_from,
+ 		      control_flow_op));
+ 		  emission_path->add_event
+ 		    (std::make_unique<end_cfg_edge_event>
+ 		     (*eedge,
+ 		      loc_info_to,
+ 		      control_flow_op));
+ 		}
+ 	      else if (cfg_edge->flags & EDGE_FALSE_VALUE)
+ 		{
+ 		  emission_path->add_event
+ 		    (std::make_unique<perpetual_start_cfg_edge_event>
+ 		     (*eedge,
+ 		      loc_info_from,
+ 		      control_flow_op));
+ 		  emission_path->add_event
+ 		    (std::make_unique<end_cfg_edge_event>
+ 		     (*eedge,
+ 		      loc_info_to,
+ 		      control_flow_op));
+ 		}
+ 	    }
  
! 	if (cfg_edge->flags & EDGE_DFS_BACK)
  	  {
  	    emission_path->add_event
! 	      (std::make_unique<looping_back_event> (*eedge, loc_info_from,
! 						     nullptr));
  	    emission_path->add_event
! 	      (std::make_unique<end_cfg_edge_event>
! 		 (*eedge,
! 		  loc_info_to,
! 		  nullptr));
  	  }
        }
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/infinite_loop_diagnostic/"
      props.set (PROPERTY_PREFIX "inf_loop", m_inf_loop->to_json ());
  #undef PROPERTY_PREFIX
*************** get_in_edge_back_edge (const exploded_no
*** 351,361 ****
        const superedge *sedge = in_edge->m_sedge;
        if (!sedge)
  	continue;
!       const cfg_superedge *cfg_sedge = sedge->dyn_cast_cfg_superedge ();
!       if (!cfg_sedge)
! 	continue;
!       if (cfg_sedge->back_edge_p ())
! 	return in_edge;
      }
    return nullptr;
  }
--- 346,354 ----
        const superedge *sedge = in_edge->m_sedge;
        if (!sedge)
  	continue;
!       if (::edge cfg_in_edge = sedge->get_any_cfg_edge ())
! 	if (cfg_in_edge->flags & EDGE_DFS_BACK)
! 	  return in_edge;
      }
    return nullptr;
  }
*************** starts_infinite_loop_p (const exploded_n
*** 415,421 ****
    feasible_node *curr_fnode = nullptr;
  
    if (flag_dump_analyzer_infinite_loop)
!     fg = ::make_unique<feasible_graph> ();
  
    location_t first_loc = UNKNOWN_LOCATION;
    const exploded_node *iter = &enode;
--- 408,414 ----
    feasible_node *curr_fnode = nullptr;
  
    if (flag_dump_analyzer_infinite_loop)
!     fg = std::make_unique<feasible_graph> ();
  
    location_t first_loc = UNKNOWN_LOCATION;
    const exploded_node *iter = &enode;
*************** starts_infinite_loop_p (const exploded_n
*** 432,438 ****
        if (logger)
  	logger->log ("iter: EN: %i", iter->m_index);
        /* Analysis bailed out before processing this node.  */
!       if (iter->get_status () == exploded_node::STATUS_WORKLIST)
  	{
  	  if (logger)
  	    logger->log ("rejecting: EN: %i is still in worklist",
--- 425,431 ----
        if (logger)
  	logger->log ("iter: EN: %i", iter->m_index);
        /* Analysis bailed out before processing this node.  */
!       if (iter->get_status () == exploded_node::status::worklist)
  	{
  	  if (logger)
  	    logger->log ("rejecting: EN: %i is still in worklist",
*************** starts_infinite_loop_p (const exploded_n
*** 460,469 ****
  		  fg->dump_dot (filename, nullptr, dump_args);
  		  free (filename);
  		}
! 	      return ::make_unique<infinite_loop> (enode,
! 						   first_loc,
! 						   std::move (eedges),
! 						   logger);
  	    }
  	  else
  	    {
--- 453,462 ----
  		  fg->dump_dot (filename, nullptr, dump_args);
  		  free (filename);
  		}
! 	      return std::make_unique<infinite_loop> (enode,
! 						      first_loc,
! 						      std::move (eedges),
! 						      logger);
  	    }
  	  else
  	    {
*************** starts_infinite_loop_p (const exploded_n
*** 476,484 ****
        visited.add (iter);
        if (first_loc == UNKNOWN_LOCATION)
  	{
! 	  location_t enode_loc = iter->get_point ().get_location ();
! 	  if (enode_loc != UNKNOWN_LOCATION)
! 	    first_loc = enode_loc;
  	}
  
        /* Find the out-edges that are feasible, given the
--- 469,485 ----
        visited.add (iter);
        if (first_loc == UNKNOWN_LOCATION)
  	{
! 	  auto snode = iter->get_supernode ();
! 	  gcc_assert (snode);
! 	  /* Ignore initial location in loop if it's a merger node,
! 	     to avoid using locations of phi nodes that are at the end
! 	     of the loop in the source.  */
! 	  if (!(iter == &enode && snode->m_state_merger_node))
! 	    {
! 	      location_t enode_loc = snode->get_location ();
! 	      if (useful_location_p (enode_loc))
! 		first_loc = enode_loc;
! 	    }
  	}
  
        /* Find the out-edges that are feasible, given the
*************** exploded_graph::detect_infinite_loops ()
*** 573,580 ****
        if (std::unique_ptr<infinite_loop> inf_loop
  	    = starts_infinite_loop_p (*enode, *this, get_logger ()))
  	{
- 	  const supernode *snode = enode->get_supernode ();
- 
  	  if (get_logger ())
  	    get_logger ()->log ("EN: %i from starts_infinite_loop_p",
  				enode->m_index);
--- 574,579 ----
*************** exploded_graph::detect_infinite_loops ()
*** 591,600 ****
  	      continue;
  	    }
  
! 	  pending_location ploc (enode, snode, inf_loop->m_loc);
  	  auto d
! 	    = ::make_unique<infinite_loop_diagnostic> (std::move (inf_loop));
! 	  get_diagnostic_manager ().add_diagnostic (ploc, std::move (d));
  	}
      }
  }
--- 590,600 ----
  	      continue;
  	    }
  
! 	  pending_location ploc (enode, inf_loop->m_loc);
  	  auto d
! 	    = std::make_unique<infinite_loop_diagnostic> (std::move (inf_loop));
! 	  get_diagnostic_manager ().add_diagnostic (std::move (ploc),
! 						    std::move (d));
  	}
      }
  }
diff -Nrcpad gcc-15.2.0/gcc/analyzer/infinite-recursion.cc gcc-16.1.0-RC-20260423/gcc/analyzer/infinite-recursion.cc
*** gcc-15.2.0/gcc/analyzer/infinite-recursion.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/infinite-recursion.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Detection of infinite recursion.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,45 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "fold-const.h"
! #include "gcc-rich-location.h"
! #include "alloc-pool.h"
! #include "fibonacci_heap.h"
! #include "shortest-paths.h"
! #include "diagnostic-core.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "function.h"
! #include "pretty-print.h"
! #include "sbitmap.h"
! #include "bitmap.h"
! #include "tristate.h"
! #include "ordered-hash-map.h"
! #include "selftest.h"
! #include "json.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
--- 18,32 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "cfg.h"
! #include "gimple-iterator.h"
! #include "gimple-pretty-print.h"
! #include "cgraph.h"
! #include "digraph.h"
! #include "diagnostics/sarif-sink.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 49,68 ****
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "gimple-pretty-print.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
- #include "make-unique.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/feasible-graph.h"
- #include "diagnostic-format-sarif.h"
  
  /* A subclass of pending_diagnostic for complaining about suspected
     infinite recursion.  */
--- 36,46 ----
*************** public:
*** 77,83 ****
    : m_prev_entry_enode (prev_entry_enode),
      m_new_entry_enode (new_entry_enode),
      m_callee_fndecl (callee_fndecl),
!     m_prev_entry_event (NULL)
    {}
  
    const char *get_kind () const final override
--- 55,61 ----
    : m_prev_entry_enode (prev_entry_enode),
      m_new_entry_enode (new_entry_enode),
      m_callee_fndecl (callee_fndecl),
!     m_prev_entry_event (nullptr)
    {}
  
    const char *get_kind () const final override
*************** public:
*** 130,138 ****
      {
      public:
        recursive_function_entry_event (const program_point &dst_point,
  				      const infinite_recursion_diagnostic &pd,
  				      bool topmost)
!       : function_entry_event (dst_point),
  	m_pd (pd),
  	m_topmost (topmost)
        {
--- 108,117 ----
      {
      public:
        recursive_function_entry_event (const program_point &dst_point,
+ 				      const program_state &dst_state,
  				      const infinite_recursion_diagnostic &pd,
  				      bool topmost)
!       : function_entry_event (dst_point, dst_state),
  	m_pd (pd),
  	m_topmost (topmost)
        {
*************** public:
*** 168,183 ****
      const program_point &dst_point = dst_node->get_point ();
      if (eedge.m_dest == m_prev_entry_enode)
        {
! 	gcc_assert (m_prev_entry_event == NULL);
  	std::unique_ptr<checker_event> prev_entry_event
! 	  = make_unique <recursive_function_entry_event> (dst_point,
! 							  *this, false);
  	m_prev_entry_event = prev_entry_event.get ();
  	emission_path->add_event (std::move (prev_entry_event));
        }
      else if (eedge.m_dest == m_new_entry_enode)
        emission_path->add_event
! 	(make_unique<recursive_function_entry_event> (dst_point, *this, true));
      else
        pending_diagnostic::add_function_entry_event (eedge, emission_path);
    }
--- 147,165 ----
      const program_point &dst_point = dst_node->get_point ();
      if (eedge.m_dest == m_prev_entry_enode)
        {
! 	gcc_assert (m_prev_entry_event == nullptr);
  	std::unique_ptr<checker_event> prev_entry_event
! 	  = std::make_unique <recursive_function_entry_event>
! 	      (dst_point,
! 	       dst_node->get_state (),
! 	       *this, false);
  	m_prev_entry_event = prev_entry_event.get ();
  	emission_path->add_event (std::move (prev_entry_event));
        }
      else if (eedge.m_dest == m_new_entry_enode)
        emission_path->add_event
! 	(std::make_unique<recursive_function_entry_event>
! 	 (dst_point, dst_node->get_state (), *this, true));
      else
        pending_diagnostic::add_function_entry_event (eedge, emission_path);
    }
*************** public:
*** 193,201 ****
    {
      gcc_assert (m_new_entry_enode);
      emission_path->add_event
!       (make_unique<warning_event>
         (event_loc_info (m_new_entry_enode->get_supernode
! 			  ()->get_start_location (),
  			m_callee_fndecl,
  			m_new_entry_enode->get_stack_depth ()),
  	enode,
--- 175,183 ----
    {
      gcc_assert (m_new_entry_enode);
      emission_path->add_event
!       (std::make_unique<warning_event>
         (event_loc_info (m_new_entry_enode->get_supernode
! 			  ()->get_location (),
  			m_callee_fndecl,
  			m_new_entry_enode->get_stack_depth ()),
  	enode,
*************** public:
*** 205,212 ****
    /* Reject paths in which conjured svalues have affected control flow
       since m_prev_entry_enode.  */
  
!   bool check_valid_fpath_p (const feasible_node &final_fnode,
! 			    const gimple *)
      const final override
    {
      /* Reject paths in which calls with unknown side effects have occurred
--- 187,193 ----
    /* Reject paths in which conjured svalues have affected control flow
       since m_prev_entry_enode.  */
  
!   bool check_valid_fpath_p (const feasible_node &final_fnode)
      const final override
    {
      /* Reject paths in which calls with unknown side effects have occurred
*************** public:
*** 241,250 ****
      return false;
    }
  
!   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/infinite_recursion_diagnostic/"
      props.set_integer (PROPERTY_PREFIX "prev_entry_enode",
  		       m_prev_entry_enode->m_index);
--- 222,232 ----
      return false;
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/infinite_recursion_diagnostic/"
      props.set_integer (PROPERTY_PREFIX "prev_entry_enode",
  		       m_prev_entry_enode->m_index);
*************** private:
*** 262,279 ****
      const superedge *sedge = eedge->m_sedge;
      if (!sedge)
        return false;
!     const cfg_superedge *cfg_sedge = sedge->dyn_cast_cfg_superedge ();
!     if (!cfg_sedge)
        return false;
!     const gimple *last_stmt = sedge->m_src->get_last_stmt ();
!     if (!last_stmt)
        return false;
  
      const feasible_node *dst_fnode
        = static_cast<const feasible_node *> (fedge->m_dest);
      const region_model &model = dst_fnode->get_state ().get_model ();
  
!     if (const gcond *cond_stmt = dyn_cast <const gcond *> (last_stmt))
        {
  	if (expr_uses_conjured_svalue_p (model, gimple_cond_lhs (cond_stmt)))
  	  return true;
--- 244,263 ----
      const superedge *sedge = eedge->m_sedge;
      if (!sedge)
        return false;
!     auto op = sedge->get_op ();
!     if (!op)
        return false;
!     const control_flow_op *ctrlflow_op = op->dyn_cast_control_flow_op ();
!     if (!ctrlflow_op)
        return false;
  
+     const gimple &last_stmt = ctrlflow_op->get_ctrlflow_stmt ();
+ 
      const feasible_node *dst_fnode
        = static_cast<const feasible_node *> (fedge->m_dest);
      const region_model &model = dst_fnode->get_state ().get_model ();
  
!     if (const gcond *cond_stmt = dyn_cast <const gcond *> (&last_stmt))
        {
  	if (expr_uses_conjured_svalue_p (model, gimple_cond_lhs (cond_stmt)))
  	  return true;
*************** private:
*** 281,287 ****
  	  return true;
        }
      else if (const gswitch *switch_stmt
! 	       = dyn_cast <const gswitch *> (last_stmt))
        {
  	if (expr_uses_conjured_svalue_p (model,
  					 gimple_switch_index (switch_stmt)))
--- 265,271 ----
  	  return true;
        }
      else if (const gswitch *switch_stmt
! 	       = dyn_cast <const gswitch *> (&last_stmt))
        {
  	if (expr_uses_conjured_svalue_p (model,
  					 gimple_switch_index (switch_stmt)))
*************** private:
*** 309,315 ****
        bool m_found_conjured_svalues;
      };
  
!     const svalue *sval = model.get_rvalue (expr, NULL);
      conjured_svalue_finder v;
      sval->accept (&v);
      return v.m_found_conjured_svalues;
--- 293,299 ----
        bool m_found_conjured_svalues;
      };
  
!     const svalue *sval = model.get_rvalue (expr, nullptr);
      conjured_svalue_finder v;
      sval->accept (&v);
      return v.m_found_conjured_svalues;
*************** private:
*** 321,328 ****
    const checker_event *m_prev_entry_event;
  };
  
! /* Return true iff ENODE is the PK_BEFORE_SUPERNODE at a function
!    entrypoint.  */
  
  static bool
  is_entrypoint_p (exploded_node *enode)
--- 305,311 ----
    const checker_event *m_prev_entry_event;
  };
  
! /* Return true iff ENODE is at a function entrypoint.  */
  
  static bool
  is_entrypoint_p (exploded_node *enode)
*************** is_entrypoint_p (exploded_node *enode)
*** 331,342 ****
    const supernode *snode = enode->get_supernode ();
    if (!snode)
      return false;
!   if (!snode->entry_p ())
!     return false;;
!   const program_point &point = enode->get_point ();
!   if (point.get_kind () != PK_BEFORE_SUPERNODE)
!     return false;
!   return true;
  }
  
  /* Walk backwards through the eg, looking for the first
--- 314,320 ----
    const supernode *snode = enode->get_supernode ();
    if (!snode)
      return false;
!   return snode->entry_p ();
  }
  
  /* Walk backwards through the eg, looking for the first
*************** exploded_graph::find_previous_entry_to (
*** 369,375 ****
      }
  
    /* Not found.  */
!   return NULL;
  }
  
  /* Given BASE_REG within ENCLOSING_FRAME (such as a function parameter),
--- 347,353 ----
      }
  
    /* Not found.  */
!   return nullptr;
  }
  
  /* Given BASE_REG within ENCLOSING_FRAME (such as a function parameter),
*************** remap_enclosing_frame (const region *bas
*** 403,409 ****
  	const decl_region *decl_reg = (const decl_region *)base_reg;
  	return equiv_prev_frame->get_region_for_local (mgr,
  						       decl_reg->get_decl (),
! 						       NULL);
        }
      }
  }
--- 381,387 ----
  	const decl_region *decl_reg = (const decl_region *)base_reg;
  	return equiv_prev_frame->get_region_for_local (mgr,
  						       decl_reg->get_decl (),
! 						       nullptr);
        }
      }
  }
*************** contains_unknown_p (const svalue *sval)
*** 418,424 ****
    if (const compound_svalue *compound_sval
  	= sval->dyn_cast_compound_svalue ())
      for (auto iter : *compound_sval)
!       if (iter.second->get_kind () == SK_UNKNOWN)
  	return true;
    return false;
  }
--- 396,402 ----
    if (const compound_svalue *compound_sval
  	= sval->dyn_cast_compound_svalue ())
      for (auto iter : *compound_sval)
!       if (iter.m_sval->get_kind () == SK_UNKNOWN)
  	return true;
    return false;
  }
*************** sufficiently_different_region_binding_p
*** 445,451 ****
  
    /* Get the value within the new frame.  */
    const svalue *new_sval
!     = new_model.get_store_value (base_reg, NULL);
  
    /* If any part of the value is UNKNOWN (e.g. due to hitting
       complexity limits) assume that it differs from the previous
--- 423,429 ----
  
    /* Get the value within the new frame.  */
    const svalue *new_sval
!     = new_model.get_store_value (base_reg, nullptr);
  
    /* If any part of the value is UNKNOWN (e.g. due to hitting
       complexity limits) assume that it differs from the previous
*************** sufficiently_different_region_binding_p
*** 465,471 ****
  	 to the recursion.  */
        const int old_stack_depth = prev_entry_enode->get_stack_depth ();
        if (enclosing_frame->get_stack_depth () < old_stack_depth)
! 	prev_sval = prev_model.get_store_value (base_reg, NULL);
        else
  	{
  	  /* Ignore bindings within frames below the new entry node.  */
--- 443,449 ----
  	 to the recursion.  */
        const int old_stack_depth = prev_entry_enode->get_stack_depth ();
        if (enclosing_frame->get_stack_depth () < old_stack_depth)
! 	prev_sval = prev_model.get_store_value (base_reg, nullptr);
        else
  	{
  	  /* Ignore bindings within frames below the new entry node.  */
*************** sufficiently_different_region_binding_p
*** 487,497 ****
  				     equiv_prev_frame,
  				     new_model.get_manager ());
  	  prev_sval
! 	    = prev_model.get_store_value (equiv_prev_base_reg, NULL);
  	}
      }
    else
!     prev_sval = prev_model.get_store_value (base_reg, NULL);
  
    /* If the prev_sval contains UNKNOWN (e.g. due to hitting complexity limits)
       assume that it will differ from any new value.  */
--- 465,475 ----
  				     equiv_prev_frame,
  				     new_model.get_manager ());
  	  prev_sval
! 	    = prev_model.get_store_value (equiv_prev_base_reg, nullptr);
  	}
      }
    else
!     prev_sval = prev_model.get_store_value (base_reg, nullptr);
  
    /* If the prev_sval contains UNKNOWN (e.g. due to hitting complexity limits)
       assume that it will differ from any new value.  */
*************** exploded_graph::detect_infinite_recursio
*** 635,651 ****
  
    /* Otherwise, the state of memory is effectively the same between the two
       recursion levels; warn.  */
- 
-   const supernode *caller_snode = call_string.get_top_of_stack ().m_caller;
-   const supernode *snode = enode->get_supernode ();
-   gcc_assert (caller_snode->m_returning_call);
    pending_location ploc (enode,
! 			 snode,
! 			 caller_snode->m_returning_call,
! 			 nullptr);
    get_diagnostic_manager ().add_diagnostic
!     (ploc,
!      make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
! 						 enode,
! 						 fndecl));
  }
--- 613,623 ----
  
    /* Otherwise, the state of memory is effectively the same between the two
       recursion levels; warn.  */
    pending_location ploc (enode,
! 			 call_string.get_top_of_stack ().get_call_stmt ().location);
    get_diagnostic_manager ().add_diagnostic
!     (std::move (ploc),
!      std::make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
! 						      enode,
! 						      fndecl));
  }
diff -Nrcpad gcc-15.2.0/gcc/analyzer/inlining-iterator.h gcc-16.1.0-RC-20260423/gcc/analyzer/inlining-iterator.h
*** gcc-15.2.0/gcc/analyzer/inlining-iterator.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/inlining-iterator.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Iterator for walking a chain of inlining locations.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** class inlining_iterator
*** 46,52 ****
  public:
    inlining_iterator (location_t loc)
    : m_abstract_origin (LOCATION_BLOCK (loc)),
!     m_callsite (UNKNOWN_LOCATION), m_fndecl (NULL),
      m_next_abstract_origin (NULL)
    {
      prepare_iteration ();
--- 46,52 ----
  public:
    inlining_iterator (location_t loc)
    : m_abstract_origin (LOCATION_BLOCK (loc)),
!     m_callsite (UNKNOWN_LOCATION), m_fndecl (NULL_TREE),
      m_next_abstract_origin (NULL)
    {
      prepare_iteration ();
*************** private:
*** 71,77 ****
        return;
      tree block = m_abstract_origin;
      m_callsite = BLOCK_SOURCE_LOCATION (block);
!     m_fndecl = NULL;
      block = BLOCK_SUPERCONTEXT (block);
      while (block && TREE_CODE (block) == BLOCK
  	   && BLOCK_ABSTRACT_ORIGIN (block))
--- 71,77 ----
        return;
      tree block = m_abstract_origin;
      m_callsite = BLOCK_SOURCE_LOCATION (block);
!     m_fndecl = NULL_TREE;
      block = BLOCK_SUPERCONTEXT (block);
      while (block && TREE_CODE (block) == BLOCK
  	   && BLOCK_ABSTRACT_ORIGIN (block))
diff -Nrcpad gcc-15.2.0/gcc/analyzer/kf-analyzer.cc gcc-16.1.0-RC-20260423/gcc/analyzer/kf-analyzer.cc
*** gcc-15.2.0/gcc/analyzer/kf-analyzer.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/kf-analyzer.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Handling for the various __analyzer_* known functions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,41 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "diagnostic.h"
  #include "tree-diagnostic.h" /* for default_tree_printer.  */
  #include "analyzer/region-model.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/call-details.h"
! #include "make-unique.h"
! #include "pretty-print-markup.h"
  
  #if ENABLE_ANALYZER
  
--- 18,34 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "diagnostic.h"
  #include "tree-diagnostic.h" /* for default_tree_printer.  */
+ #include "pretty-print-markup.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/call-details.h"
! #include "analyzer/program-state.h"
  
  #if ENABLE_ANALYZER
  
*************** public:
*** 110,116 ****
      const region *base_reg = reg->get_base_region ();
      const svalue *capacity = model->get_capacity (base_reg);
      label_text desc = capacity->get_desc (true);
!     warning_at (cd.get_call_stmt ()->location, 0,
  		"capacity: %qs", desc.get ());
    }
  };
--- 103,109 ----
      const region *base_reg = reg->get_base_region ();
      const svalue *capacity = model->get_capacity (base_reg);
      label_text desc = capacity->get_desc (true);
!     warning_at (cd.get_call_stmt ().location, 0,
  		"capacity: %qs", desc.get ());
    }
  };
*************** class dump_path_diagnostic
*** 268,273 ****
--- 261,271 ----
    : public pending_diagnostic_subclass<dump_path_diagnostic>
  {
  public:
+   dump_path_diagnostic (const program_state &state)
+   : m_state (state)
+   {
+   }
+ 
    int get_controlling_option () const final override
    {
      return 0;
*************** public:
*** 288,293 ****
--- 286,300 ----
    {
      return true;
    }
+ 
+   const program_state *
+   get_final_state () const final override
+   {
+     return &m_state;
+   }
+ 
+ private:
+   program_state m_state;
  };
  
  /* Handle calls to "__analyzer_dump_path" by queuing a diagnostic at this
*************** public:
*** 305,311 ****
      region_model_context *ctxt = cd.get_ctxt ();
      if (!ctxt)
        return;
!     ctxt->warn (make_unique<dump_path_diagnostic> ());
    }
  };
  
--- 312,319 ----
      region_model_context *ctxt = cd.get_ctxt ();
      if (!ctxt)
        return;
!     if (const program_state *state = ctxt->get_state ())
!       ctxt->warn (std::make_unique<dump_path_diagnostic> (*state));
    }
  };
  
*************** public:
*** 382,403 ****
  void
  register_known_analyzer_functions (known_function_manager &kfm)
  {
!   kfm.add ("__analyzer_break", make_unique<kf_analyzer_break> ());
!   kfm.add ("__analyzer_describe", make_unique<kf_analyzer_describe> ());
    kfm.add ("__analyzer_dump_capacity",
! 	   make_unique<kf_analyzer_dump_capacity> ());
!   kfm.add ("__analyzer_dump_escaped", make_unique<kf_analyzer_dump_escaped> ());
    kfm.add ("__analyzer_dump_exploded_nodes",
! 	   make_unique<kf_analyzer_dump_exploded_nodes> ());
    kfm.add ("__analyzer_dump_named_constant",
! 	   make_unique<kf_analyzer_dump_named_constant> ());
!   kfm.add ("__analyzer_dump_path", make_unique<kf_analyzer_dump_path> ());
    kfm.add ("__analyzer_dump_region_model",
! 	   make_unique<kf_analyzer_dump_region_model> ());
!   kfm.add ("__analyzer_eval", make_unique<kf_analyzer_eval> ());
    kfm.add ("__analyzer_get_unknown_ptr",
! 	   make_unique<kf_analyzer_get_unknown_ptr> ());
!   kfm.add ("__analyzer_get_strlen", make_kf_strlen ());
  }
  
  } // namespace ana
--- 390,417 ----
  void
  register_known_analyzer_functions (known_function_manager &kfm)
  {
!   kfm.add ("__analyzer_break",
! 	   std::make_unique<kf_analyzer_break> ());
!   kfm.add ("__analyzer_describe",
! 	   std::make_unique<kf_analyzer_describe> ());
    kfm.add ("__analyzer_dump_capacity",
! 	   std::make_unique<kf_analyzer_dump_capacity> ());
!   kfm.add ("__analyzer_dump_escaped",
! 	   std::make_unique<kf_analyzer_dump_escaped> ());
    kfm.add ("__analyzer_dump_exploded_nodes",
! 	   std::make_unique<kf_analyzer_dump_exploded_nodes> ());
    kfm.add ("__analyzer_dump_named_constant",
! 	   std::make_unique<kf_analyzer_dump_named_constant> ());
!   kfm.add ("__analyzer_dump_path",
! 	   std::make_unique<kf_analyzer_dump_path> ());
    kfm.add ("__analyzer_dump_region_model",
! 	   std::make_unique<kf_analyzer_dump_region_model> ());
!   kfm.add ("__analyzer_eval",
! 	   std::make_unique<kf_analyzer_eval> ());
    kfm.add ("__analyzer_get_unknown_ptr",
! 	   std::make_unique<kf_analyzer_get_unknown_ptr> ());
!   kfm.add ("__analyzer_get_strlen",
! 	   make_kf_strlen ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/kf-lang-cp.cc gcc-16.1.0-RC-20260423/gcc/analyzer/kf-lang-cp.cc
*** gcc-15.2.0/gcc/analyzer/kf-lang-cp.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/kf-lang-cp.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Handling for the known behavior of various functions specific to C++.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,37 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "diagnostic.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,30 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "diagnostic.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  
  #if ENABLE_ANALYZER
  
*************** along with GCC; see the file COPYING3.
*** 43,52 ****
  
     See https://en.cppreference.com/w/cpp/memory/new/operator_new.  */
  
! bool is_placement_new_p (const gcall *call)
  {
!   gcc_assert (call);
!   tree fndecl = gimple_call_fndecl (call);
  
    if (!fndecl || TREE_CODE (TREE_TYPE (fndecl)) == METHOD_TYPE)
      /* Give up on overloaded operator new.  */
--- 36,44 ----
  
     See https://en.cppreference.com/w/cpp/memory/new/operator_new.  */
  
! bool is_placement_new_p (const gcall &call)
  {
!   tree fndecl = gimple_call_fndecl (&call);
  
    if (!fndecl || TREE_CODE (TREE_TYPE (fndecl)) == METHOD_TYPE)
      /* Give up on overloaded operator new.  */
*************** public:
*** 85,117 ****
        && POINTER_TYPE_P (cd.get_arg_type (1)));
    }
  
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
      region_model_manager *mgr = cd.get_manager ();
      const svalue *size_sval = cd.get_arg_svalue (0);
      region_model_context *ctxt = cd.get_ctxt ();
!     const gcall *call = cd.get_call_stmt ();
  
-     /* If the call was actually a placement new, check that accessing
-        the buffer lhs is placed into does not result in out-of-bounds.  */
      if (is_placement_new_p (call))
        {
  	const region *ptr_reg = cd.deref_ptr_arg (1);
  	if (ptr_reg && cd.get_lhs_type ())
! 	  {
! 	    const svalue *num_bytes_sval = cd.get_arg_svalue (0);
! 	    const region *sized_new_reg
! 		= mgr->get_sized_region (ptr_reg,
! 					 cd.get_lhs_type (),
! 					 num_bytes_sval);
! 	    model->check_region_for_write (sized_new_reg,
! 					   nullptr,
! 					   ctxt);
! 	    const svalue *ptr_sval
! 	      = mgr->get_ptr_svalue (cd.get_lhs_type (), sized_new_reg);
! 	    cd.maybe_set_lhs (ptr_sval);
! 	  }
        }
      /* If the call is an allocating new, then create a heap allocated
         region.  */
--- 77,120 ----
        && POINTER_TYPE_P (cd.get_arg_type (1)));
    }
  
+   void
+   check_any_preconditions (const call_details &cd) const final override
+   {
+     region_model_context *ctxt = cd.get_ctxt ();
+     if (!ctxt)
+       return;
+     region_model *model = cd.get_model ();
+     const gcall &call = cd.get_call_stmt ();
+ 
+     /* If the call was actually a placement new, check that accessing
+        the buffer lhs is placed into does not result in out-of-bounds.  */
+     if (is_placement_new_p (call))
+       {
+ 	if (const region *sized_reg = get_sized_region_for_placement_new (cd))
+ 	  model->check_region_for_write (sized_reg,
+ 					 nullptr,
+ 					 ctxt);
+       }
+   }
+ 
    void impl_call_pre (const call_details &cd) const final override
    {
      region_model *model = cd.get_model ();
      region_model_manager *mgr = cd.get_manager ();
      const svalue *size_sval = cd.get_arg_svalue (0);
      region_model_context *ctxt = cd.get_ctxt ();
!     const gcall &call = cd.get_call_stmt ();
  
      if (is_placement_new_p (call))
        {
  	const region *ptr_reg = cd.deref_ptr_arg (1);
  	if (ptr_reg && cd.get_lhs_type ())
! 	  if (const region *sized_reg = get_sized_region_for_placement_new (cd))
! 	    {
! 	      const svalue *ptr_sval
! 		= mgr->get_ptr_svalue (cd.get_lhs_type (), sized_reg);
! 	      cd.maybe_set_lhs (ptr_sval);
! 	    }
        }
      /* If the call is an allocating new, then create a heap allocated
         region.  */
*************** public:
*** 137,143 ****
  
      /* If the call is guaranteed to return nonnull
         then add a nonnull constraint to the allocated region.  */
!     if (!TREE_NOTHROW (callee_fndecl) && flag_exceptions)
        {
  	const svalue *null_sval
  	  = mgr->get_or_create_null_ptr (cd.get_lhs_type ());
--- 140,148 ----
  
      /* If the call is guaranteed to return nonnull
         then add a nonnull constraint to the allocated region.  */
!     if (!TREE_NOTHROW (callee_fndecl)
! 	&& flag_exceptions
! 	&& cd.get_lhs_type ())
        {
  	const svalue *null_sval
  	  = mgr->get_or_create_null_ptr (cd.get_lhs_type ());
*************** public:
*** 146,151 ****
--- 151,172 ----
  	model->add_constraint (result, NE_EXPR, null_sval, ctxt);
        }
    }
+ 
+ private:
+   const region *
+   get_sized_region_for_placement_new (const call_details &cd) const
+   {
+     const region *ptr_reg = cd.deref_ptr_arg (1);
+     if (ptr_reg && cd.get_lhs_type ())
+       {
+ 	region_model_manager *mgr = cd.get_manager ();
+ 	const svalue *num_bytes_sval = cd.get_arg_svalue (0);
+ 	return mgr->get_sized_region (ptr_reg,
+ 				      cd.get_lhs_type (),
+ 				      num_bytes_sval);
+       }
+     return nullptr;
+   }
  };
  
  /* Handler for "operator delete" and for "operator delete []",
*************** public:
*** 169,189 ****
  	/* If the ptr points to an underlying heap region, delete it,
  	   poisoning pointers.  */
  	model->unbind_region_and_descendents (freed_reg,
! 					      POISON_KIND_DELETED);
        }
    }
  
  };
  
  /* Populate KFM with instances of known functions relating to C++.  */
  
  void
  register_known_functions_lang_cp (known_function_manager &kfm)
  {
!   kfm.add ("operator new", make_unique<kf_operator_new> ());
!   kfm.add ("operator new []", make_unique<kf_operator_new> ());
!   kfm.add ("operator delete", make_unique<kf_operator_delete> ());
!   kfm.add ("operator delete []", make_unique<kf_operator_delete> ());
  }
  
  } // namespace ana
--- 190,376 ----
  	/* If the ptr points to an underlying heap region, delete it,
  	   poisoning pointers.  */
  	model->unbind_region_and_descendents (freed_reg,
! 					      poison_kind::deleted);
        }
    }
  
  };
  
+ class kf_cxa_allocate_exception : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return cd.num_args () == 1 && cd.arg_is_size_p (0);
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     region_model *model = cd.get_model ();
+     region_model_manager *mgr = cd.get_manager ();
+     const svalue *size_sval = cd.get_arg_svalue (0);
+     region_model_context *ctxt = cd.get_ctxt ();
+ 
+     /* Create a heap allocated region.  */
+     const region *new_reg
+       = model->get_or_create_region_for_heap_alloc (size_sval, ctxt);
+     if (cd.get_lhs_type ())
+       {
+ 	const svalue *ptr_sval
+ 	  = mgr->get_ptr_svalue (cd.get_lhs_type (), new_reg);
+ 	cd.maybe_set_lhs (ptr_sval);
+       }
+   }
+ };
+ 
+ class kf_cxa_begin_catch : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == 1
+ 	    && POINTER_TYPE_P (cd.get_arg_type (0)));
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     region_model *model = cd.get_model ();
+ 
+     auto node = model->pop_thrown_exception ();
+     model->push_caught_exception (node);
+     cd.maybe_set_lhs (node.m_exception_sval);
+   }
+ };
+ 
+ class kf_cxa_end_catch : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return cd.num_args () == 0;
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     region_model *model = cd.get_model ();
+     model->pop_caught_exception ();
+   }
+ };
+ 
+ /* A subclass of pending_diagnostic for complaining about an exception
+    of an unexpected type being thrown (due to a call to
+    __cxa_call_unexpected).
+    See https://en.cppreference.com/w/cpp/language/except_spec  */
+ 
+ class throw_of_unexpected_type
+ : public pending_diagnostic_subclass<throw_of_unexpected_type>
+ {
+ public:
+   throw_of_unexpected_type (tree exception_type,
+ 			    tree thrown_from_fndecl)
+   : m_exception_type (exception_type),
+     m_thrown_from_fndecl (thrown_from_fndecl)
+   {
+     gcc_assert (m_exception_type);
+     gcc_assert (m_thrown_from_fndecl);
+   }
+ 
+   const char *get_kind () const final override
+   {
+     return "throw_of_unexpected_type";
+   }
+ 
+   bool operator== (const throw_of_unexpected_type &other) const
+   {
+     return (m_exception_type == other.m_exception_type
+ 	    && m_thrown_from_fndecl == other.m_thrown_from_fndecl);
+   }
+ 
+   int get_controlling_option () const final override
+   {
+     return OPT_Wanalyzer_throw_of_unexpected_type;
+   }
+ 
+   bool emit (diagnostic_emission_context &ctxt) final override
+   {
+     auto_diagnostic_group d;
+ 
+     bool warned
+       = ctxt.warn ("throwing exception of unexpected type %qT from %qE",
+ 		   m_exception_type, m_thrown_from_fndecl);
+     if (warned)
+       {
+ 	inform (DECL_SOURCE_LOCATION (m_thrown_from_fndecl),
+ 		"%qE declared here", m_thrown_from_fndecl);
+ 	// TODO: show specified types?
+       }
+     return warned;
+   }
+ 
+   bool
+   describe_final_event (pretty_printer &pp,
+ 			const evdesc::final_event &) final override
+   {
+     pp_printf  (&pp,
+ 		"exception of unexpected type %qT thrown from %qE",
+ 		m_exception_type, m_thrown_from_fndecl);
+     return true;
+   }
+ 
+ private:
+   tree m_exception_type;
+   tree m_thrown_from_fndecl;
+ };
+ 
+ /* See https://en.cppreference.com/w/cpp/language/except_spec  */
+ 
+ class kf_cxa_call_unexpected : public known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &cd) const final override
+   {
+     return (cd.num_args () == 1
+ 	    && POINTER_TYPE_P (cd.get_arg_type (0)));
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     if (region_model_context *ctxt = cd.get_ctxt ())
+       {
+ 	region_model *model = cd.get_model ();
+ 	tree thrown_from_fndecl = model->get_current_function ()->decl;
+ 	/* We must have a thrown exception.  */
+ 	auto eh_node = model->get_current_thrown_exception ();
+ 	gcc_assert (eh_node);
+ 	tree exception_type = eh_node->maybe_get_type ();
+ 	ctxt->warn
+ 	  (std::make_unique<throw_of_unexpected_type> (exception_type,
+ 						       thrown_from_fndecl));
+ 	ctxt->terminate_path ();
+       }
+   }
+ };
+ 
  /* Populate KFM with instances of known functions relating to C++.  */
  
  void
  register_known_functions_lang_cp (known_function_manager &kfm)
  {
!   kfm.add ("operator new", std::make_unique<kf_operator_new> ());
!   kfm.add ("operator new []", std::make_unique<kf_operator_new> ());
!   kfm.add ("operator delete", std::make_unique<kf_operator_delete> ());
!   kfm.add ("operator delete []", std::make_unique<kf_operator_delete> ());
! 
!   /* Functions mentioned in "Itanium C++ ABI: Exception Handling"'s
!      "Level II: C++ ABI"
!      https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html#cxx-abi  */
!   kfm.add ("__cxa_allocate_exception",
! 	   std::make_unique<kf_cxa_allocate_exception> ());
!   // We treat __cxa_throw and __cxa_rethrow as special cases
!   kfm.add ("__cxa_begin_catch", std::make_unique<kf_cxa_begin_catch> ());
!   kfm.add ("__cxa_end_catch", std::make_unique<kf_cxa_end_catch> ());
!   kfm.add ("__cxa_call_unexpected",
! 	   std::make_unique<kf_cxa_call_unexpected> ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/kf.cc gcc-16.1.0-RC-20260423/gcc/analyzer/kf.cc
*** gcc-15.2.0/gcc/analyzer/kf.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/kf.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Handling for the known behavior of various specific functions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,40 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "diagnostic-metadata.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "diagnostic.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  #include "analyzer/call-info.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,31 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "diagnostic.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  #include "analyzer/call-info.h"
  
  #if ENABLE_ANALYZER
  
*************** public:
*** 50,56 ****
    : m_call_stmt (cd.get_call_stmt ()),
      m_callee_fndecl (cd.get_fndecl_for_call ())
    {
-     gcc_assert (m_call_stmt);
      gcc_assert (m_callee_fndecl);
    }
  
--- 41,46 ----
*************** public:
*** 61,67 ****
  
    bool operator== (const undefined_function_behavior &other) const
    {
!     return (m_call_stmt == other.m_call_stmt
  	    && m_callee_fndecl == other.m_callee_fndecl);
    }
  
--- 51,57 ----
  
    bool operator== (const undefined_function_behavior &other) const
    {
!     return (&m_call_stmt == &other.m_call_stmt
  	    && m_callee_fndecl == other.m_callee_fndecl);
    }
  
*************** public:
*** 70,76 ****
    tree get_callee_fndecl () const { return m_callee_fndecl; }
  
  private:
!   const gimple *m_call_stmt;
    tree m_callee_fndecl;
  };
  
--- 60,66 ----
    tree get_callee_fndecl () const { return m_callee_fndecl; }
  
  private:
!   const gimple &m_call_stmt;
    tree m_callee_fndecl;
  };
  
*************** kf_free::impl_call_post (const call_deta
*** 596,602 ****
        /* If the ptr points to an underlying heap region, delete it,
  	 poisoning pointers.  */
        region_model *model = cd.get_model ();
!       model->unbind_region_and_descendents (freed_reg, POISON_KIND_FREED);
        model->unset_dynamic_extents (freed_reg);
      }
  }
--- 586,592 ----
        /* If the ptr points to an underlying heap region, delete it,
  	 poisoning pointers.  */
        region_model *model = cd.get_model ();
!       model->unbind_region_and_descendents (freed_reg, poison_kind::freed);
        model->unset_dynamic_extents (freed_reg);
      }
  }
*************** public:
*** 793,799 ****
  
      /* SEI CERT C Coding Standard: "POS34-C. Do not call putenv() with a
         pointer to an automatic variable as the argument".  */
!     diagnostic_metadata::precanned_rule
        rule ("POS34-C", "https://wiki.sei.cmu.edu/confluence/x/6NYxBQ");
      ctxt.add_rule (rule);
  
--- 783,789 ----
  
      /* SEI CERT C Coding Standard: "POS34-C. Do not call putenv() with a
         pointer to an automatic variable as the argument".  */
!     diagnostics::metadata::precanned_rule
        rule ("POS34-C", "https://wiki.sei.cmu.edu/confluence/x/6NYxBQ");
      ctxt.add_rule (rule);
  
*************** public:
*** 867,873 ****
      const svalue *ptr_sval = cd.get_arg_svalue (0);
      const region *reg
        = model->deref_rvalue (ptr_sval, cd.get_arg_tree (0), ctxt);
!     model->get_store ()->mark_as_escaped (reg);
      enum memory_space mem_space = reg->get_memory_space ();
      switch (mem_space)
        {
--- 857,864 ----
      const svalue *ptr_sval = cd.get_arg_svalue (0);
      const region *reg
        = model->deref_rvalue (ptr_sval, cd.get_arg_tree (0), ctxt);
!     store_manager *store_mgr = model->get_manager ()->get_store_manager ();
!     model->get_store ()->mark_as_escaped (*store_mgr, reg->get_base_region ());
      enum memory_space mem_space = reg->get_memory_space ();
      switch (mem_space)
        {
*************** public:
*** 881,887 ****
  	break;
        case MEMSPACE_STACK:
  	if (ctxt)
! 	  ctxt->warn (make_unique<putenv_of_auto_var> (fndecl, reg));
  	break;
        }
      cd.set_any_lhs_with_defaults ();
--- 872,878 ----
  	break;
        case MEMSPACE_STACK:
  	if (ctxt)
! 	  ctxt->warn (std::make_unique<putenv_of_auto_var> (fndecl, reg));
  	break;
        }
      cd.set_any_lhs_with_defaults ();
*************** kf_realloc::impl_call_post (const call_d
*** 1063,1073 ****
  	      const svalue *copied_size_sval
  		= get_copied_size (model, old_size_sval, new_size_sval);
  	      const region *copied_old_reg
! 		= mgr->get_sized_region (freed_reg, NULL, copied_size_sval);
  	      const svalue *buffer_content_sval
  		= model->get_store_value (copied_old_reg, cd.get_ctxt ());
  	      const region *copied_new_reg
! 		= mgr->get_sized_region (new_reg, NULL, copied_size_sval);
  	      model->set_value (copied_new_reg, buffer_content_sval,
  				cd.get_ctxt ());
  	    }
--- 1054,1064 ----
  	      const svalue *copied_size_sval
  		= get_copied_size (model, old_size_sval, new_size_sval);
  	      const region *copied_old_reg
! 		= mgr->get_sized_region (freed_reg, nullptr, copied_size_sval);
  	      const svalue *buffer_content_sval
  		= model->get_store_value (copied_old_reg, cd.get_ctxt ());
  	      const region *copied_new_reg
! 		= mgr->get_sized_region (new_reg, nullptr, copied_size_sval);
  	      model->set_value (copied_new_reg, buffer_content_sval,
  				cd.get_ctxt ());
  	    }
*************** kf_realloc::impl_call_post (const call_d
*** 1084,1090 ****
  
  	  /* If the ptr points to an underlying heap region, delete it,
  	     poisoning pointers.  */
! 	  model->unbind_region_and_descendents (freed_reg, POISON_KIND_FREED);
  	  model->unset_dynamic_extents (freed_reg);
  	}
  
--- 1075,1081 ----
  
  	  /* If the ptr points to an underlying heap region, delete it,
  	     poisoning pointers.  */
! 	  model->unbind_region_and_descendents (freed_reg, poison_kind::freed);
  	  model->unset_dynamic_extents (freed_reg);
  	}
  
*************** kf_realloc::impl_call_post (const call_d
*** 1129,1137 ****
  
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (make_unique<failure> (cd));
!       cd.get_ctxt ()->bifurcate (make_unique<success_no_move> (cd));
!       cd.get_ctxt ()->bifurcate (make_unique<success_with_move> (cd));
        cd.get_ctxt ()->terminate_path ();
      }
  }
--- 1120,1128 ----
  
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (std::make_unique<failure> (cd));
!       cd.get_ctxt ()->bifurcate (std::make_unique<success_no_move> (cd));
!       cd.get_ctxt ()->bifurcate (std::make_unique<success_with_move> (cd));
        cd.get_ctxt ()->terminate_path ();
      }
  }
*************** kf_strchr::impl_call_post (const call_de
*** 1200,1206 ****
  		 using the str_reg as the id of the conjured_svalue.  */
  	      const svalue *offset
  		= mgr->get_or_create_conjured_svalue (size_type_node,
! 						      cd.get_call_stmt (),
  						      str_reg,
  						      conjured_purge (model,
  								      ctxt));
--- 1191,1197 ----
  		 using the str_reg as the id of the conjured_svalue.  */
  	      const svalue *offset
  		= mgr->get_or_create_conjured_svalue (size_type_node,
! 						      &cd.get_call_stmt (),
  						      str_reg,
  						      conjured_purge (model,
  								      ctxt));
*************** kf_strchr::impl_call_post (const call_de
*** 1220,1227 ****
    /* Body of kf_strchr::impl_call_post.  */
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (make_unique<strchr_call_info> (cd, false));
!       cd.get_ctxt ()->bifurcate (make_unique<strchr_call_info> (cd, true));
        cd.get_ctxt ()->terminate_path ();
      }
  }
--- 1211,1218 ----
    /* Body of kf_strchr::impl_call_post.  */
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (std::make_unique<strchr_call_info> (cd, false));
!       cd.get_ctxt ()->bifurcate (std::make_unique<strchr_call_info> (cd, true));
        cd.get_ctxt ()->terminate_path ();
      }
  }
*************** public:
*** 1254,1259 ****
--- 1245,1256 ----
      const svalue *dst_ptr = cd.get_arg_svalue (0);
      const region *dst_reg
        = model->deref_rvalue (dst_ptr, cd.get_arg_tree (0), ctxt);
+     /* Restrict the region we consider to be affected to the valid capacity
+        so that we don't trigger buffer overflow false positives.  */
+     const svalue *capacity = model->get_capacity (dst_reg);
+     dst_reg = model->get_manager ()->get_sized_region (dst_reg,
+ 						       NULL_TREE,
+ 						       capacity);
      const svalue *content = cd.get_or_create_conjured_svalue (dst_reg);
      model->set_value (dst_reg, content, ctxt);
      cd.set_any_lhs_with_defaults ();
*************** public:
*** 1286,1291 ****
--- 1283,1309 ----
    /* Currently a no-op.  */
  };
  
+ /* Handler for "__builtin_eh_pointer".  */
+ 
+ class kf_eh_pointer : public builtin_known_function
+ {
+ public:
+   bool matches_call_types_p (const call_details &) const final override
+   {
+     return true;
+   }
+ 
+   enum built_in_function builtin_code () const final override
+   {
+     return BUILT_IN_EH_POINTER;
+   }
+ 
+   void impl_call_pre (const call_details &cd) const final override
+   {
+     cd.set_any_lhs_with_defaults ();
+   }
+ };
+ 
  /* Handler for "strcat" and "__builtin_strcat_chk".  */
  
  class kf_strcat : public builtin_known_function
*************** kf_strcpy::impl_call_pre (const call_det
*** 1387,1396 ****
    /* strcpy returns the initial param.  */
    cd.maybe_set_lhs (dest_sval);
  
!   const svalue *bytes_to_copy;
    if (const svalue *num_bytes_read_sval
        = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy))
      {
        cd.complain_about_overlap (0, 1, num_bytes_read_sval);
        model->write_bytes (dest_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
      }
--- 1405,1415 ----
    /* strcpy returns the initial param.  */
    cd.maybe_set_lhs (dest_sval);
  
!   const svalue *bytes_to_copy = nullptr;
    if (const svalue *num_bytes_read_sval
        = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy))
      {
+       gcc_assert (bytes_to_copy);
        cd.complain_about_overlap (0, 1, num_bytes_read_sval);
        model->write_bytes (dest_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
      }
*************** public:
*** 1476,1482 ****
  std::unique_ptr<known_function>
  make_kf_strlen ()
  {
!   return make_unique<kf_strlen> ();
  }
  
  /* Handler for "strncpy" and "__builtin_strncpy".
--- 1495,1501 ----
  std::unique_ptr<known_function>
  make_kf_strlen ()
  {
!   return std::make_unique<kf_strlen> ();
  }
  
  /* Handler for "strncpy" and "__builtin_strncpy".
*************** kf_strncpy::impl_call_post (const call_d
*** 1625,1631 ****
      }
    private:
      /* (strlen + 1) of the source string if it has a terminator,
!        or NULL for the case where UB would happen before
         finding any terminator.  */
      const svalue *m_num_bytes_with_terminator_sval;
  
--- 1644,1650 ----
      }
    private:
      /* (strlen + 1) of the source string if it has a terminator,
!        or nullptr for the case where UB would happen before
         finding any terminator.  */
      const svalue *m_num_bytes_with_terminator_sval;
  
*************** kf_strncpy::impl_call_post (const call_d
*** 1650,1660 ****
  					   nullptr,
  					   nullptr);
        cd.get_ctxt ()->bifurcate
! 	(make_unique<strncpy_call_info> (cd, num_bytes_with_terminator_sval,
! 					 false));
        cd.get_ctxt ()->bifurcate
! 	(make_unique<strncpy_call_info> (cd, num_bytes_with_terminator_sval,
! 					 true));
        cd.get_ctxt ()->terminate_path ();
      }
  };
--- 1669,1681 ----
  					   nullptr,
  					   nullptr);
        cd.get_ctxt ()->bifurcate
! 	(std::make_unique<strncpy_call_info>
! 	   (cd, num_bytes_with_terminator_sval,
! 	    false));
        cd.get_ctxt ()->bifurcate
! 	(std::make_unique<strncpy_call_info>
! 	   (cd, num_bytes_with_terminator_sval,
! 	    true));
        cd.get_ctxt ()->terminate_path ();
      }
  };
*************** public:
*** 1678,1685 ****
      region_model_manager *mgr = cd.get_manager ();
      /* Ideally we'd get the size here, and simulate copying the bytes.  */
      const region *new_reg
!       = model->get_or_create_region_for_heap_alloc (NULL, cd.get_ctxt ());
!     model->mark_region_as_unknown (new_reg, NULL);
      if (cd.get_lhs_type ())
        {
  	const svalue *ptr_sval
--- 1699,1706 ----
      region_model_manager *mgr = cd.get_manager ();
      /* Ideally we'd get the size here, and simulate copying the bytes.  */
      const region *new_reg
!       = model->get_or_create_region_for_heap_alloc (nullptr, cd.get_ctxt ());
!     model->mark_region_as_unknown (new_reg, nullptr);
      if (cd.get_lhs_type ())
        {
  	const svalue *ptr_sval
*************** kf_strstr::impl_call_post (const call_de
*** 1757,1763 ****
  		 using the str_reg as the id of the conjured_svalue.  */
  	      const svalue *offset
  		= mgr->get_or_create_conjured_svalue (size_type_node,
! 						      cd.get_call_stmt (),
  						      str_reg,
  						      conjured_purge (model,
  								      ctxt));
--- 1778,1784 ----
  		 using the str_reg as the id of the conjured_svalue.  */
  	      const svalue *offset
  		= mgr->get_or_create_conjured_svalue (size_type_node,
! 						      &cd.get_call_stmt (),
  						      str_reg,
  						      conjured_purge (model,
  								      ctxt));
*************** kf_strstr::impl_call_post (const call_de
*** 1777,1784 ****
    /* Body of kf_strstr::impl_call_post.  */
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (make_unique<strstr_call_info> (cd, false));
!       cd.get_ctxt ()->bifurcate (make_unique<strstr_call_info> (cd, true));
        cd.get_ctxt ()->terminate_path ();
      }
  }
--- 1798,1805 ----
    /* Body of kf_strstr::impl_call_post.  */
    if (cd.get_ctxt ())
      {
!       cd.get_ctxt ()->bifurcate (std::make_unique<strstr_call_info> (cd, false));
!       cd.get_ctxt ()->bifurcate (std::make_unique<strstr_call_info> (cd, true));
        cd.get_ctxt ()->terminate_path ();
      }
  }
*************** public:
*** 1924,1930 ****
  		if (cd.get_arg_svalue (0)->all_zeroes_p ())
  		  {
  		    if (ctxt)
! 		      ctxt->warn (::make_unique<undefined_behavior> (cd));
  		  }
  
  		/* Assume that "str" was actually non-null; terminate
--- 1945,1951 ----
  		if (cd.get_arg_svalue (0)->all_zeroes_p ())
  		  {
  		    if (ctxt)
! 		      ctxt->warn (::std::make_unique<undefined_behavior> (cd));
  		  }
  
  		/* Assume that "str" was actually non-null; terminate
*************** public:
*** 1958,1971 ****
  	     using the str_reg as the id of the conjured_svalue.  */
  	  const svalue *start_offset
  	    = mgr->get_or_create_conjured_svalue (size_type_node,
! 						  cd.get_call_stmt (),
  						  str_reg,
  						  conjured_purge (model,
  								  ctxt),
  						  0);
  	  const svalue *nul_offset
  	    = mgr->get_or_create_conjured_svalue (size_type_node,
! 						  cd.get_call_stmt (),
  						  str_reg,
  						  conjured_purge (model,
  								  ctxt),
--- 1979,1992 ----
  	     using the str_reg as the id of the conjured_svalue.  */
  	  const svalue *start_offset
  	    = mgr->get_or_create_conjured_svalue (size_type_node,
! 						  &cd.get_call_stmt (),
  						  str_reg,
  						  conjured_purge (model,
  								  ctxt),
  						  0);
  	  const svalue *nul_offset
  	    = mgr->get_or_create_conjured_svalue (size_type_node,
! 						  &cd.get_call_stmt (),
  						  str_reg,
  						  conjured_purge (model,
  								  ctxt),
*************** public:
*** 2042,2054 ****
  	   Typically the str is either null or non-null at a particular site,
  	   so hopefully this will generally just lead to two out-edges.  */
  	cd.get_ctxt ()->bifurcate
! 	  (make_unique<strtok_call_info> (cd, m_private_reg, false, false));
  	cd.get_ctxt ()->bifurcate
! 	  (make_unique<strtok_call_info> (cd, m_private_reg, false, true));
  	cd.get_ctxt ()->bifurcate
! 	  (make_unique<strtok_call_info> (cd, m_private_reg, true, false));
  	cd.get_ctxt ()->bifurcate
! 	  (make_unique<strtok_call_info> (cd, m_private_reg, true, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2063,2075 ----
  	   Typically the str is either null or non-null at a particular site,
  	   so hopefully this will generally just lead to two out-edges.  */
  	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<strtok_call_info> (cd, m_private_reg, false, false));
  	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<strtok_call_info> (cd, m_private_reg, false, true));
  	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<strtok_call_info> (cd, m_private_reg, true, false));
  	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<strtok_call_info> (cd, m_private_reg, true, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** region_model::impl_deallocation_call (co
*** 2074,2200 ****
  static void
  register_atomic_builtins (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE, make_unique<kf_atomic_exchange> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_N, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_1, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_2, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_4, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_8, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_16, make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD, make_unique<kf_atomic_load> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_N, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_1, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_2, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_4, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_8, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_16, make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE, make_unique<kf_atomic_store> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_N, make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_1, make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_2, make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_4, make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_8, make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_16, make_unique<kf_atomic_store_n> ());
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_1,
! 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_2,
! 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_4,
! 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_8,
! 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_16,
! 	   make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_1,
! 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_2,
! 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_4,
! 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_8,
! 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_16,
! 	   make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_1,
! 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_2,
! 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_4,
! 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_8,
! 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_16,
! 	   make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_1,
! 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_2,
! 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_4,
! 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_8,
! 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_16,
! 	   make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_1,
! 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_2,
! 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_4,
! 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_8,
! 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_16,
! 	   make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_1,
! 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_2,
! 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_4,
! 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_8,
! 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_16,
! 	   make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_1,
! 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_2,
! 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_4,
! 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_8,
! 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_16,
! 	   make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_1,
! 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_2,
! 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_4,
! 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_8,
! 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_16,
! 	   make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_1,
! 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_2,
! 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_4,
! 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_8,
! 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_16,
! 	   make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_1,
! 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_2,
! 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_4,
! 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_8,
! 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_16,
! 	   make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
  }
  
  /* Handle calls to the various IFN_UBSAN_* with no return value.
--- 2095,2221 ----
  static void
  register_atomic_builtins (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE, std::make_unique<kf_atomic_exchange> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_N, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_1, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_2, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_4, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_8, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_EXCHANGE_16, std::make_unique<kf_atomic_exchange_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD, std::make_unique<kf_atomic_load> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_N, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_1, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_2, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_4, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_8, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_LOAD_16, std::make_unique<kf_atomic_load_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE, std::make_unique<kf_atomic_store> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_N, std::make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_1, std::make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_2, std::make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_4, std::make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_8, std::make_unique<kf_atomic_store_n> ());
!   kfm.add (BUILT_IN_ATOMIC_STORE_16, std::make_unique<kf_atomic_store_n> ());
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_1,
! 	   std::make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_2,
! 	   std::make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_4,
! 	   std::make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_8,
! 	   std::make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_ADD_FETCH_16,
! 	   std::make_unique<kf_atomic_op_fetch> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_1,
! 	   std::make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_2,
! 	   std::make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_4,
! 	   std::make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_8,
! 	   std::make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_SUB_FETCH_16,
! 	   std::make_unique<kf_atomic_op_fetch> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_1,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_2,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_4,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_8,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_AND_FETCH_16,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_1,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_2,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_4,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_8,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_XOR_FETCH_16,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_1,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_2,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_4,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_8,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_OR_FETCH_16,
! 	   std::make_unique<kf_atomic_op_fetch> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_1,
! 	   std::make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_2,
! 	   std::make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_4,
! 	   std::make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_8,
! 	   std::make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_ADD_16,
! 	   std::make_unique<kf_atomic_fetch_op> (PLUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_1,
! 	   std::make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_2,
! 	   std::make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_4,
! 	   std::make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_8,
! 	   std::make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_SUB_16,
! 	   std::make_unique<kf_atomic_fetch_op> (MINUS_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_1,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_2,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_4,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_8,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_AND_16,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_AND_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_1,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_2,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_4,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_8,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_XOR_16,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_XOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_1,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_2,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_4,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_8,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
    kfm.add (BUILT_IN_ATOMIC_FETCH_OR_16,
! 	   std::make_unique<kf_atomic_fetch_op> (BIT_IOR_EXPR));
  }
  
  /* Handle calls to the various IFN_UBSAN_* with no return value.
*************** register_sanitizer_builtins (known_funct
*** 2224,2237 ****
    /* 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> ());
  }
  
  /* Populate KFM with instances of known functions supported by the core of the
--- 2245,2258 ----
    /* Handle calls to the various IFN_UBSAN_* with no return value.
       For now, treat these as no-ops.  */
    kfm.add (IFN_UBSAN_NULL,
! 	   std::make_unique<kf_ubsan_noop> ());
    kfm.add (IFN_UBSAN_BOUNDS,
! 	   std::make_unique<kf_ubsan_noop> ());
    kfm.add (IFN_UBSAN_PTR,
! 	   std::make_unique<kf_ubsan_noop> ());
  
    kfm.add (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
! 	   std::make_unique<kf_ubsan_handler> ());
  }
  
  /* Populate KFM with instances of known functions supported by the core of the
*************** register_known_functions (known_function
*** 2246,2262 ****
  
    /* Internal fns the analyzer has known_functions for.  */
    {
!     kfm.add (IFN_BUILTIN_EXPECT, make_unique<kf_expect> ());
    }
  
    /* GCC built-ins that do not correspond to a function
       in the standard library.  */
    {
!     kfm.add (BUILT_IN_EXPECT, make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_EXPECT_WITH_PROBABILITY, make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_ALLOCA_WITH_ALIGN, make_unique<kf_alloca> ());
!     kfm.add (BUILT_IN_STACK_RESTORE, make_unique<kf_stack_restore> ());
!     kfm.add (BUILT_IN_STACK_SAVE, make_unique<kf_stack_save> ());
  
      register_atomic_builtins (kfm);
      register_sanitizer_builtins (kfm);
--- 2267,2285 ----
  
    /* Internal fns the analyzer has known_functions for.  */
    {
!     kfm.add (IFN_BUILTIN_EXPECT, std::make_unique<kf_expect> ());
    }
  
    /* GCC built-ins that do not correspond to a function
       in the standard library.  */
    {
!     kfm.add (BUILT_IN_EXPECT, std::make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_EXPECT_WITH_PROBABILITY, std::make_unique<kf_expect> ());
!     kfm.add (BUILT_IN_ALLOCA_WITH_ALIGN, std::make_unique<kf_alloca> ());
!     kfm.add (BUILT_IN_STACK_RESTORE, std::make_unique<kf_stack_restore> ());
!     kfm.add (BUILT_IN_STACK_SAVE, std::make_unique<kf_stack_save> ());
! 
!     kfm.add (BUILT_IN_EH_POINTER, std::make_unique<kf_eh_pointer> ());
  
      register_atomic_builtins (kfm);
      register_sanitizer_builtins (kfm);
*************** register_known_functions (known_function
*** 2266,2333 ****
    /* Known builtins and C standard library functions
       the analyzer has known functions for.  */
    {
!     kfm.add ("alloca", make_unique<kf_alloca> ());
!     kfm.add ("__builtin_alloca", make_unique<kf_alloca> ());
!     kfm.add ("calloc", make_unique<kf_calloc> ());
!     kfm.add ("__builtin_calloc", make_unique<kf_calloc> ());
!     kfm.add ("free", make_unique<kf_free> ());
!     kfm.add ("__builtin_free", make_unique<kf_free> ());
!     kfm.add ("malloc", make_unique<kf_malloc> ());
!     kfm.add ("__builtin_malloc", make_unique<kf_malloc> ());
      kfm.add ("memcpy",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
      kfm.add ("__builtin_memcpy",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
!     kfm.add ("__memcpy_chk", make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
!     kfm.add ("__builtin___memcpy_chk", make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
      kfm.add ("memmove",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
      kfm.add ("__builtin_memmove",
! 	      make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
!     kfm.add ("__memmove_chk", make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("__builtin___memmove_chk", make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("memset", make_unique<kf_memset> (false));
!     kfm.add ("__builtin_memset", make_unique<kf_memset> (false));
!     kfm.add ("__memset_chk", make_unique<kf_memset> (true));
!     kfm.add ("__builtin___memset_chk", make_unique<kf_memset> (true));
!     kfm.add ("realloc", make_unique<kf_realloc> ());
!     kfm.add ("__builtin_realloc", make_unique<kf_realloc> ());
!     kfm.add ("sprintf", make_unique<kf_sprintf> ());
!     kfm.add ("__builtin_sprintf", make_unique<kf_sprintf> ());
!     kfm.add ("strchr", make_unique<kf_strchr> ());
!     kfm.add ("__builtin_strchr", make_unique<kf_strchr> ());
!     kfm.add ("strcpy", make_unique<kf_strcpy> (2, false));
!     kfm.add ("__builtin_strcpy", make_unique<kf_strcpy> (2, false));
!     kfm.add ("__strcpy_chk", make_unique<kf_strcpy> (3, true));
!     kfm.add ("__builtin___strcpy_chk", make_unique<kf_strcpy> (3, true));
!     kfm.add ("strcat", make_unique<kf_strcat> (2, false));
!     kfm.add ("__builtin_strcat", make_unique<kf_strcat> (2, false));
!     kfm.add ("__strcat_chk", make_unique<kf_strcat> (3, true));
!     kfm.add ("__builtin___strcat_chk", make_unique<kf_strcat> (3, true));
!     kfm.add ("strdup", make_unique<kf_strdup> ());
!     kfm.add ("__builtin_strdup", make_unique<kf_strdup> ());
!     kfm.add ("strncpy", make_unique<kf_strncpy> ());
!     kfm.add ("__builtin_strncpy", make_unique<kf_strncpy> ());
!     kfm.add ("strndup", make_unique<kf_strndup> ());
!     kfm.add ("__builtin_strndup", make_unique<kf_strndup> ());
!     kfm.add ("strlen", make_unique<kf_strlen> ());
!     kfm.add ("__builtin_strlen", make_unique<kf_strlen> ());
!     kfm.add ("strstr", make_unique<kf_strstr> ());
!     kfm.add ("__builtin_strstr", make_unique<kf_strstr> ());
! 
!     register_atomic_builtins (kfm);
!     register_varargs_builtins (kfm);
    }
  
    /* Known POSIX functions, and some non-standard extensions.  */
    {
!     kfm.add ("fopen", make_unique<kf_fopen> ());
!     kfm.add ("putenv", make_unique<kf_putenv> ());
!     kfm.add ("strtok", make_unique<kf_strtok> (rmm));
  
      register_known_fd_functions (kfm);
      register_known_file_functions (kfm);
--- 2289,2353 ----
    /* Known builtins and C standard library functions
       the analyzer has known functions for.  */
    {
!     kfm.add ("alloca", std::make_unique<kf_alloca> ());
!     kfm.add ("__builtin_alloca", std::make_unique<kf_alloca> ());
!     kfm.add ("calloc", std::make_unique<kf_calloc> ());
!     kfm.add ("__builtin_calloc", std::make_unique<kf_calloc> ());
!     kfm.add ("free", std::make_unique<kf_free> ());
!     kfm.add ("__builtin_free", std::make_unique<kf_free> ());
!     kfm.add ("malloc", std::make_unique<kf_malloc> ());
!     kfm.add ("__builtin_malloc", std::make_unique<kf_malloc> ());
      kfm.add ("memcpy",
! 	      std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
      kfm.add ("__builtin_memcpy",
! 	      std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
!     kfm.add ("__memcpy_chk", std::make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
!     kfm.add ("__builtin___memcpy_chk", std::make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMCPY_CHK));
      kfm.add ("memmove",
! 	      std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
      kfm.add ("__builtin_memmove",
! 	      std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
!     kfm.add ("__memmove_chk", std::make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("__builtin___memmove_chk", std::make_unique<kf_memcpy_memmove>
  			      (kf_memcpy_memmove::KF_MEMMOVE_CHK));
!     kfm.add ("memset", std::make_unique<kf_memset> (false));
!     kfm.add ("__builtin_memset", std::make_unique<kf_memset> (false));
!     kfm.add ("__memset_chk", std::make_unique<kf_memset> (true));
!     kfm.add ("__builtin___memset_chk", std::make_unique<kf_memset> (true));
!     kfm.add ("realloc", std::make_unique<kf_realloc> ());
!     kfm.add ("__builtin_realloc", std::make_unique<kf_realloc> ());
!     kfm.add ("sprintf", std::make_unique<kf_sprintf> ());
!     kfm.add ("__builtin_sprintf", std::make_unique<kf_sprintf> ());
!     kfm.add ("strchr", std::make_unique<kf_strchr> ());
!     kfm.add ("__builtin_strchr", std::make_unique<kf_strchr> ());
!     kfm.add ("strcpy", std::make_unique<kf_strcpy> (2, false));
!     kfm.add ("__builtin_strcpy", std::make_unique<kf_strcpy> (2, false));
!     kfm.add ("__strcpy_chk", std::make_unique<kf_strcpy> (3, true));
!     kfm.add ("__builtin___strcpy_chk", std::make_unique<kf_strcpy> (3, true));
!     kfm.add ("strcat", std::make_unique<kf_strcat> (2, false));
!     kfm.add ("__builtin_strcat", std::make_unique<kf_strcat> (2, false));
!     kfm.add ("__strcat_chk", std::make_unique<kf_strcat> (3, true));
!     kfm.add ("__builtin___strcat_chk", std::make_unique<kf_strcat> (3, true));
!     kfm.add ("strdup", std::make_unique<kf_strdup> ());
!     kfm.add ("__builtin_strdup", std::make_unique<kf_strdup> ());
!     kfm.add ("strncpy", std::make_unique<kf_strncpy> ());
!     kfm.add ("__builtin_strncpy", std::make_unique<kf_strncpy> ());
!     kfm.add ("strndup", std::make_unique<kf_strndup> ());
!     kfm.add ("__builtin_strndup", std::make_unique<kf_strndup> ());
!     kfm.add ("strlen", std::make_unique<kf_strlen> ());
!     kfm.add ("__builtin_strlen", std::make_unique<kf_strlen> ());
!     kfm.add ("strstr", std::make_unique<kf_strstr> ());
!     kfm.add ("__builtin_strstr", std::make_unique<kf_strstr> ());
    }
  
    /* Known POSIX functions, and some non-standard extensions.  */
    {
!     kfm.add ("fopen", std::make_unique<kf_fopen> ());
!     kfm.add ("putenv", std::make_unique<kf_putenv> ());
!     kfm.add ("strtok", std::make_unique<kf_strtok> (rmm));
  
      register_known_fd_functions (kfm);
      register_known_file_functions (kfm);
*************** register_known_functions (known_function
*** 2335,2347 ****
  
    /* glibc functions.  */
    {
!     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.  */
--- 2355,2367 ----
  
    /* glibc functions.  */
    {
!     kfm.add ("__errno_location", std::make_unique<kf_errno_location> ());
!     kfm.add ("error", std::make_unique<kf_error> (3));
!     kfm.add ("error_at_line", std::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", std::make_unique<kf_error> (3));
!     kfm.add ("__error_at_line_alias", std::make_unique<kf_error> (5));
    }
  
    /* Other implementations of C standard library.  */
*************** register_known_functions (known_function
*** 2355,2363 ****
  	 #define errno (*__error())
         and similarly __errno for newlib.
         Add these as synonyms for "__errno_location".  */
!     kfm.add ("___errno", make_unique<kf_errno_location> ());
!     kfm.add ("__error", make_unique<kf_errno_location> ());
!     kfm.add ("__errno", make_unique<kf_errno_location> ());
    }
  
    /* Language-specific support functions.  */
--- 2375,2384 ----
  	 #define errno (*__error())
         and similarly __errno for newlib.
         Add these as synonyms for "__errno_location".  */
!     kfm.add ("___errno", std::make_unique<kf_errno_location> ());
!     kfm.add ("__error", std::make_unique<kf_errno_location> ());
!     kfm.add ("__errno", std::make_unique<kf_errno_location> ());
!     kfm.add ("__get_errno_ptr", std::make_unique<kf_errno_location> ());
    }
  
    /* Language-specific support functions.  */
*************** register_known_functions (known_function
*** 2367,2388 ****
       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));
    }
  }
  
--- 2388,2409 ----
       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", std::make_unique<kf_malloc> ());
!     kfm.add_std_ns ("free", std::make_unique<kf_free> ());
!     kfm.add_std_ns ("realloc", std::make_unique<kf_realloc> ());
!     kfm.add_std_ns ("calloc", std::make_unique<kf_calloc> ());
      kfm.add_std_ns
        ("memcpy",
!        std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
      kfm.add_std_ns
        ("memmove",
!        std::make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
!     kfm.add_std_ns ("memset", std::make_unique<kf_memset> (false));
!     kfm.add_std_ns ("strcat", std::make_unique<kf_strcat> (2, false));
!     kfm.add_std_ns ("strcpy", std::make_unique<kf_strcpy> (2, false));
!     kfm.add_std_ns ("strlen", std::make_unique<kf_strlen> ());
!     kfm.add_std_ns ("strncpy", std::make_unique<kf_strncpy> ());
!     kfm.add_std_ns ("strtok", std::make_unique<kf_strtok> (rmm));
    }
  }
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/known-function-manager.cc gcc-16.1.0-RC-20260423/gcc/analyzer/known-function-manager.cc
*** gcc-15.2.0/gcc/analyzer/known-function-manager.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/known-function-manager.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,34 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "analyzer/analyzer.h"
  #include "diagnostic-core.h"
- #include "analyzer/analyzer-logging.h"
  #include "stringpool.h"
! #include "basic-block.h"
! #include "gimple.h"
  #include "analyzer/known-function-manager.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
--- 18,29 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "diagnostic-core.h"
  #include "stringpool.h"
! 
! #include "analyzer/analyzer-logging.h"
  #include "analyzer/known-function-manager.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
*************** known_function_manager::add (enum intern
*** 88,95 ****
  			     std::unique_ptr<known_function> kf)
  {
    gcc_assert (ifn < IFN_LAST);
!   delete m_combined_fns_arr[ifn + END_BUILTINS];
!   m_combined_fns_arr[ifn + END_BUILTINS] = kf.release ();
  }
  
  /* Get any known_function for FNDECL for call CD.
--- 83,90 ----
  			     std::unique_ptr<known_function> kf)
  {
    gcc_assert (ifn < IFN_LAST);
!   delete m_combined_fns_arr[ifn + int (END_BUILTINS)];
!   m_combined_fns_arr[ifn + int (END_BUILTINS)] = kf.release ();
  }
  
  /* Get any known_function for FNDECL for call CD.
*************** known_function_manager::add (enum intern
*** 97,103 ****
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return NULL if no known_function is found, or it does not match the
     assumption(s).  */
  
  const known_function *
--- 92,98 ----
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return nullptr if no known_function is found, or it does not match the
     assumption(s).  */
  
  const known_function *
*************** known_function_manager::get_match (tree
*** 108,114 ****
      {
        if (const known_function *candidate
  	  = get_normal_builtin (DECL_FUNCTION_CODE (fndecl)))
! 	if (gimple_builtin_call_types_compatible_p (cd.get_call_stmt (),
  						    fndecl))
  	  return candidate;
      }
--- 103,109 ----
      {
        if (const known_function *candidate
  	  = get_normal_builtin (DECL_FUNCTION_CODE (fndecl)))
! 	if (gimple_builtin_call_types_compatible_p (&cd.get_call_stmt (),
  						    fndecl))
  	  return candidate;
      }
*************** known_function_manager::get_match (tree
*** 127,152 ****
  
    if (DECL_CONTEXT (fndecl)
        && TREE_CODE (DECL_CONTEXT (fndecl)) != TRANSLATION_UNIT_DECL)
!     return NULL;
    if (tree identifier = DECL_NAME (fndecl))
      if (const known_function *candidate = get_by_identifier (identifier))
        if (candidate->matches_call_types_p (cd))
  	return candidate;
  
!   return NULL;
  }
  
! /* Get any known_function for IFN, or NULL.  */
  
  const known_function *
  known_function_manager::get_internal_fn (enum internal_fn ifn) const
  {
    gcc_assert (ifn < IFN_LAST);
!   return m_combined_fns_arr[ifn + END_BUILTINS];
  }
  
  /* Get any known_function for NAME, without type-checking.
!    Return NULL if there isn't one.  */
  
  const known_function *
  known_function_manager::get_normal_builtin (enum built_in_function name) const
--- 122,147 ----
  
    if (DECL_CONTEXT (fndecl)
        && TREE_CODE (DECL_CONTEXT (fndecl)) != TRANSLATION_UNIT_DECL)
!     return nullptr;
    if (tree identifier = DECL_NAME (fndecl))
      if (const known_function *candidate = get_by_identifier (identifier))
        if (candidate->matches_call_types_p (cd))
  	return candidate;
  
!   return nullptr;
  }
  
! /* Get any known_function for IFN, or nullptr.  */
  
  const known_function *
  known_function_manager::get_internal_fn (enum internal_fn ifn) const
  {
    gcc_assert (ifn < IFN_LAST);
!   return m_combined_fns_arr[ifn + int (END_BUILTINS)];
  }
  
  /* Get any known_function for NAME, without type-checking.
!    Return nullptr if there isn't one.  */
  
  const known_function *
  known_function_manager::get_normal_builtin (enum built_in_function name) const
*************** get_normal_builtin (const builtin_known_
*** 165,171 ****
  }
  
  /* Get any known_function matching IDENTIFIER, without type-checking.
!    Return NULL if there isn't one.  */
  
  const known_function *
  known_function_manager::get_by_identifier (tree identifier) const
--- 160,166 ----
  }
  
  /* Get any known_function matching IDENTIFIER, without type-checking.
!    Return nullptr if there isn't one.  */
  
  const known_function *
  known_function_manager::get_by_identifier (tree identifier) const
*************** known_function_manager::get_by_identifie
*** 175,181 ****
    if (slot)
      return *slot;
    else
!     return NULL;
  }
  
  /* Get any known_function in C++ std:: namespace matching IDENTIFIER, without
--- 170,176 ----
    if (slot)
      return *slot;
    else
!     return nullptr;
  }
  
  /* Get any known_function in C++ std:: namespace matching IDENTIFIER, without
diff -Nrcpad gcc-15.2.0/gcc/analyzer/known-function-manager.h gcc-16.1.0-RC-20260423/gcc/analyzer/known-function-manager.h
*** gcc-15.2.0/gcc/analyzer/known-function-manager.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/known-function-manager.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Support for plugin-supplied behaviors of known functions.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ops.cc gcc-16.1.0-RC-20260423/gcc/analyzer/ops.cc
*** gcc-15.2.0/gcc/analyzer/ops.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ops.cc	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,2393 ----
+ /* Operations within the code being analyzed.
+    Copyright (C) 2019-2026 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/>.  */
+ 
+ #include "analyzer/common.h"
+ 
+ #include "gimple-pretty-print.h"
+ #include "gimple-iterator.h"
+ #include "tree-cfg.h"
+ #include "tree-dfa.h"
+ #include "fold-const.h"
+ #include "cgraph.h"
+ #include "text-art/dump.h"
+ #include "text-art/tree-widget.h"
+ 
+ #include "analyzer/ops.h"
+ #include "analyzer/call-details.h"
+ #include "analyzer/exploded-graph.h"
+ #include "analyzer/checker-path.h"
+ #include "analyzer/impl-sm-context.h"
+ #include "analyzer/constraint-manager.h"
+ #include "analyzer/call-summary.h"
+ #include "analyzer/call-info.h"
+ #include "analyzer/analysis-plan.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ event_loc_info::event_loc_info (const exploded_node *enode)
+ {
+   if (enode)
+     {
+       m_loc = enode->get_location ();
+       m_fndecl = enode->get_point ().get_fndecl ();
+       m_depth = enode->get_stack_depth ();
+     }
+   else
+     {
+       m_loc = UNKNOWN_LOCATION;
+       m_fndecl = NULL_TREE;
+       m_depth = 0;
+     }
+ }
+ 
+ event_loc_info::event_loc_info (const program_point &point)
+ {
+   m_loc = point.get_location ();
+   m_fndecl = point.get_fndecl ();
+   m_depth = point.get_stack_depth ();
+ }
+ 
+ // struct operation_context
+ 
+ void
+ operation_context::dump () const
+ {
+   fprintf (stderr, "src enode: EN: %i\n", m_src_enode.m_index);
+   m_src_enode.dump (m_eg.get_ext_state ());
+ 
+   fprintf (stderr, "superedge\n");
+   pretty_printer pp;
+   pp.set_output_stream (stderr);
+   m_sedge.dump (&pp);
+ }
+ 
+ logger *
+ operation_context::get_logger () const
+ {
+   return m_eg.get_logger ();
+ }
+ 
+ const extrinsic_state &
+ operation_context::get_ext_state () const
+ {
+   return m_eg.get_ext_state ();
+ }
+ 
+ const program_point &
+ operation_context::get_initial_point () const
+ {
+   return m_src_enode.get_point ();
+ }
+ 
+ const program_state &
+ operation_context::get_initial_state () const
+ {
+   return m_src_enode.get_state ();
+ }
+ 
+ const supergraph &
+ operation_context::get_supergraph () const
+ {
+   return m_eg.get_supergraph ();
+ }
+ 
+ program_point
+ operation_context::get_next_intraprocedural_point () const
+ {
+   /* All edges are intraprocedural.  */
+   gcc_assert (m_sedge.m_src->get_function ()
+ 	      == m_sedge.m_dest->get_function ());
+   return program_point (m_sedge.m_dest,
+ 			m_src_enode.get_point ().get_call_string ());
+ }
+ 
+ void
+ operation_context::add_outcome (const program_point &dst_point,
+ 				program_state dst_state,
+ 				bool could_do_work,
+ 				uncertainty_t *uncertainty,
+ 				std::unique_ptr<custom_edge_info> info)
+ {
+   const program_state &src_state = get_initial_state ();
+   impl_region_model_context ctxt (m_eg, &m_src_enode,
+ 				  &src_state, &dst_state,
+ 				  uncertainty, nullptr);
+   program_state::detect_leaks (src_state, dst_state, nullptr,
+ 			       get_ext_state (), &ctxt);
+ 
+   if (exploded_node *dst_enode
+       = m_eg.get_or_create_node (dst_point, dst_state, &m_src_enode))
+     {
+       m_eg.add_edge (&m_src_enode, dst_enode, &m_sedge, could_do_work,
+ 		     std::move (info));
+       m_eg.detect_infinite_recursion (dst_enode);
+     }
+ }
+ 
+ class op_region_model_context : public impl_region_model_context
+ {
+ public:
+   op_region_model_context (operation_context &op_ctxt,
+ 			   program_state &dst_state)
+   : impl_region_model_context (op_ctxt.m_eg,
+ 			       &op_ctxt.m_src_enode,
+ 			       &op_ctxt.get_initial_state (),
+ 			       &dst_state,
+ 			       nullptr,
+ 			       &m_path_context)
+   {
+   }
+ 
+   bool terminate_path_p () const
+   {
+     return m_path_context.terminate_path_p ();
+   }
+ 
+ private:
+   class op_path_context : public path_context
+   {
+   public:
+     op_path_context ()
+     : m_terminate_path (false)
+     {
+     }
+ 
+     void bifurcate (std::unique_ptr<custom_edge_info>) final override
+     {
+       gcc_unreachable ();
+     }
+ 
+     void terminate_path () final override
+     {
+       m_terminate_path = true;
+     }
+ 
+     bool terminate_path_p () const final override
+     {
+       return m_terminate_path;
+     }
+   private:
+     bool m_terminate_path;
+   } m_path_context;
+ };
+ 
+ // class gimple_stmt_op : public operation
+ 
+ void
+ gimple_stmt_op::print_as_edge_label (pretty_printer *pp,
+ 				     bool /*user_facing*/) const
+ {
+   pp_gimple_stmt_1 (pp, &m_stmt, 0, (dump_flags_t)0);
+ }
+ 
+ bool
+ gimple_stmt_op::defines_ssa_name_p (const_tree ssa_name) const
+ {
+   return &m_stmt == SSA_NAME_DEF_STMT (ssa_name);
+ }
+ 
+ bool
+ gimple_stmt_op::supports_bulk_merge_p () const
+ {
+   return false;
+ }
+ 
+ /* Subclass of path_context for use within operation::execute implementations
+    so that we can split states e.g. at "realloc" calls.  */
+ 
+ class impl_path_context : public path_context
+ {
+ public:
+   impl_path_context (const program_state *cur_state,
+ 		     logger *logger)
+   : m_cur_state (cur_state),
+     m_logger (logger),
+     m_terminate_path (false)
+   {
+   }
+ 
+   bool bifurcation_p () const
+   {
+     return m_custom_eedge_infos.length () > 0;
+   }
+ 
+   const program_state &get_state_at_bifurcation () const
+   {
+     gcc_assert (m_state_at_bifurcation);
+     return *m_state_at_bifurcation;
+   }
+ 
+   void
+   bifurcate (std::unique_ptr<custom_edge_info> info) final override
+   {
+     if (m_logger)
+       m_logger->log ("bifurcating path");
+ 
+     if (m_state_at_bifurcation)
+       /* Verify that the state at bifurcation is consistent when we
+ 	 split into multiple out-edges.  */
+       gcc_assert (*m_state_at_bifurcation == *m_cur_state);
+     else
+       /* Take a copy of the cur_state at the moment when bifurcation
+ 	 happens.  */
+       m_state_at_bifurcation
+ 	= std::unique_ptr<program_state> (new program_state (*m_cur_state));
+ 
+     /* Take ownership of INFO.  */
+     m_custom_eedge_infos.safe_push (info.release ());
+   }
+ 
+   void terminate_path () final override
+   {
+     if (m_logger)
+       m_logger->log ("terminating path");
+     m_terminate_path = true;
+   }
+ 
+   bool terminate_path_p () const final override
+   {
+     return m_terminate_path;
+   }
+ 
+   const vec<custom_edge_info *> & get_custom_eedge_infos ()
+   {
+     return m_custom_eedge_infos;
+   }
+ 
+ private:
+   const program_state *m_cur_state;
+ 
+   logger *m_logger;
+ 
+   /* Lazily-created copy of the state before the split.  */
+   std::unique_ptr<program_state> m_state_at_bifurcation;
+ 
+   auto_vec <custom_edge_info *> m_custom_eedge_infos;
+ 
+   bool m_terminate_path;
+ };
+ 
+ DEBUG_FUNCTION void
+ operation::dump () const
+ {
+   tree_dump_pretty_printer pp (stderr);
+   print_as_edge_label (&pp, false);
+   pp_newline (&pp);
+ }
+ 
+ void
+ operation::handle_on_stmt_for_state_machines (operation_context &op_ctxt,
+ 					      program_state &dst_state,
+ 					      path_context *path_ctxt,
+ 					      bool &unknown_side_effects,
+ 					      const gimple &stmt)
+ {
+   const program_state &old_state = op_ctxt.get_initial_state ();
+   int sm_idx;
+   sm_state_map *smap;
+   FOR_EACH_VEC_ELT (old_state.m_checker_states, sm_idx, smap)
+     {
+       const state_machine &sm = op_ctxt.m_eg.get_ext_state ().get_sm (sm_idx);
+       const sm_state_map *old_smap
+ 	= old_state.m_checker_states[sm_idx];
+       sm_state_map *new_smap = dst_state.m_checker_states[sm_idx];
+       impl_sm_context sm_ctxt (op_ctxt.m_eg, sm_idx, sm,
+ 			       &op_ctxt.m_src_enode,
+ 			       &old_state,
+ 			       &dst_state,
+ 			       old_smap, new_smap, path_ctxt,
+ 			       unknown_side_effects);
+ 
+       /* Allow the state_machine to handle the stmt.  */
+       if (sm.on_stmt (sm_ctxt, &stmt))
+ 	unknown_side_effects = false;
+     }
+ }
+ 
+ void
+ gimple_stmt_op::
+ walk_load_store_addr_ops (void *data,
+ 			  walk_stmt_load_store_addr_fn load_cb,
+ 			  walk_stmt_load_store_addr_fn store_cb,
+ 			  walk_stmt_load_store_addr_fn addr_cb) const
+ {
+   walk_stmt_load_store_addr_ops (const_cast<gimple *>(&m_stmt), data,
+ 				 load_cb, store_cb, addr_cb);
+ }
+ 
+ void
+ gimple_stmt_op::execute (operation_context &op_ctxt) const
+ {
+   auto logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+   if (logger)
+     {
+       logger->start_log_line ();
+       pp_gimple_stmt_1 (logger->get_printer (), &get_stmt (), 0,
+ 			(dump_flags_t)0);
+       logger->end_log_line ();
+     }
+   execute_on_state (op_ctxt,
+ 		    /* Pass in a copy.  */
+ 		    op_ctxt.get_initial_state ());
+ }
+ 
+ void
+ gimple_stmt_op::execute_on_state (operation_context &op_ctxt,
+ 				  program_state dst_state) const
+ {
+   auto logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+ 
+   auto dst_point (op_ctxt.get_next_intraprocedural_point ());
+   const program_state &old_state  = op_ctxt.get_initial_state ();
+ 
+   bool unknown_side_effects = false;
+   bool could_have_done_work = false;
+ 
+   impl_path_context path_ctxt (&dst_state, logger);
+   uncertainty_t uncertainty;
+   impl_region_model_context ctxt (op_ctxt.m_eg,
+ 				  &op_ctxt.m_src_enode,
+ 				  &old_state,
+ 				  &dst_state,
+ 				  &uncertainty,
+ 				  &path_ctxt,
+ 				  &m_stmt,
+ 				  &could_have_done_work);
+ 
+   dst_state.m_region_model->on_stmt_pre (&get_stmt (),
+ 					 &unknown_side_effects,
+ 					 &ctxt);
+ 
+   handle_on_stmt_for_state_machines (op_ctxt,
+ 				     dst_state,
+ 				     &path_ctxt,
+ 				     unknown_side_effects,
+ 				     m_stmt);
+ 
+   if (path_ctxt.terminate_path_p ())
+     return;
+ 
+   if (const gcall *call = dyn_cast <const gcall *> (&m_stmt))
+     dst_state.m_region_model->on_call_post (*call, unknown_side_effects, &ctxt);
+ 
+   if (!path_ctxt.terminate_path_p ())
+     op_ctxt.add_outcome (dst_point, dst_state, could_have_done_work,
+ 			 &uncertainty);
+ 
+   /* If we have custom edge infos, "bifurcate" the state
+      accordingly, potentially creating a new state/enode/eedge
+      instances.  For example, to handle a "realloc" call, we
+      might split into 3 states, for the "failure",
+      "resizing in place", and "moving to a new buffer" cases.  */
+   for (auto edge_info_iter : path_ctxt.get_custom_eedge_infos ())
+     {
+       /* Take ownership of the edge infos from the path_ctxt.  */
+       std::unique_ptr<custom_edge_info> edge_info (edge_info_iter);
+       if (logger)
+ 	{
+ 	  logger->start_log_line ();
+ 	  logger->log_partial ("bifurcating for edge: ");
+ 	  edge_info->print (logger->get_printer ());
+ 	  logger->end_log_line ();
+ 	}
+       program_state bifurcated_new_state
+ 	(path_ctxt.get_state_at_bifurcation ());
+ 
+       /* Apply edge_info to state.  */
+       impl_region_model_context
+ 	bifurcation_ctxt (op_ctxt.m_eg,
+ 			  &op_ctxt.m_src_enode,
+ 			  &path_ctxt.get_state_at_bifurcation (),
+ 			  &bifurcated_new_state,
+ 			  nullptr, // uncertainty_t *uncertainty
+ 			  nullptr, // path_context *path_ctxt
+ 			  &m_stmt);
+       if (edge_info->update_state (&bifurcated_new_state,
+ 				   nullptr, /* no exploded_edge yet.  */
+ 				   &bifurcation_ctxt))
+ 	{
+ 	  if (exploded_node *next2
+ 	      = edge_info->create_enode
+ 	      (op_ctxt.m_eg,
+ 	       dst_point,
+ 	       std::move (bifurcated_new_state),
+ 	       &op_ctxt.m_src_enode,
+ 	       &bifurcation_ctxt))
+ 	    {
+ 	      op_ctxt.m_eg.add_edge (&op_ctxt.m_src_enode, next2, nullptr,
+ 				     true /* assume that work could be done */,
+ 				     std::move (edge_info));
+ 	    }
+ 	}
+     }
+ }
+ 
+ bool
+ gimple_stmt_op::
+ execute_for_feasibility (const exploded_edge &,
+ 			 feasibility_state &fstate,
+ 			 region_model_context *ctxt,
+ 			 std::unique_ptr<rejected_constraint> */*out_rc*/) const
+ {
+   region_model &model = fstate.get_model ();
+   bool unknown_side_effects;
+   model.on_stmt_pre (&m_stmt, &unknown_side_effects, ctxt);
+ 
+   if (const gcall *call = dyn_cast <const gcall *> (&m_stmt))
+     model.on_call_post (*call, unknown_side_effects, ctxt);
+ 
+   return true;
+ }
+ 
+ /* An sm_context for adding state_change_event on assignments to NULL,
+    where the default state isn't m_start.  Storing such state in the
+    sm_state_map would lead to bloat of the exploded_graph, so we want
+    to leave it as a default state, and inject state change events here
+    when we have a diagnostic.
+    Find transitions of constants, for handling on_zero_assignment.  */
+ 
+ struct null_assignment_sm_context : public sm_context
+ {
+   null_assignment_sm_context (int sm_idx,
+ 			      const state_machine &sm,
+ 			      const program_state *old_state,
+ 			      const program_state *new_state,
+ 			      const gimple *stmt,
+ 			      const program_point *point,
+ 			      checker_path *emission_path,
+ 			      const extrinsic_state &ext_state)
+   : sm_context (sm_idx, sm), m_old_state (old_state), m_new_state (new_state),
+     m_stmt (stmt), m_point (point), m_emission_path (emission_path),
+     m_ext_state (ext_state)
+   {
+   }
+ 
+   tree get_fndecl_for_call (const gcall &/*call*/) final override
+   {
+     return NULL_TREE;
+   }
+ 
+   state_machine::state_t get_state (tree var) final override
+   {
+     const svalue *var_old_sval
+       = m_old_state->m_region_model->get_rvalue (var, nullptr);
+     const sm_state_map *old_smap = m_old_state->m_checker_states[m_sm_idx];
+ 
+     state_machine::state_t current
+       = old_smap->get_state (var_old_sval, m_ext_state);
+ 
+     return current;
+   }
+ 
+   state_machine::state_t get_state (const svalue *sval) final override
+   {
+     const sm_state_map *old_smap = m_old_state->m_checker_states[m_sm_idx];
+     state_machine::state_t current = old_smap->get_state (sval, m_ext_state);
+     return current;
+   }
+ 
+   void set_next_state (tree var,
+ 		       state_machine::state_t to,
+ 		       tree origin ATTRIBUTE_UNUSED) final override
+   {
+     state_machine::state_t from = get_state (var);
+     if (from != m_sm.get_start_state ())
+       return;
+     if (!is_transition_to_null (to))
+       return;
+ 
+     const svalue *var_new_sval
+       = m_new_state->m_region_model->get_rvalue (var, nullptr);
+ 
+     m_emission_path->add_event
+       (std::make_unique<state_change_event> (event_loc_info (*m_point),
+ 					     m_stmt,
+ 					     m_sm,
+ 					     var_new_sval,
+ 					     from, to,
+ 					     nullptr,
+ 					     *m_new_state,
+ 					     nullptr));
+   }
+ 
+   void set_next_state (const svalue *sval,
+ 		       state_machine::state_t to,
+ 		       tree origin ATTRIBUTE_UNUSED) final override
+   {
+     state_machine::state_t from = get_state (sval);
+     if (from != m_sm.get_start_state ())
+       return;
+     if (!is_transition_to_null (to))
+       return;
+ 
+     m_emission_path->add_event
+       (std::make_unique<state_change_event> (event_loc_info (*m_point),
+ 					     m_stmt,
+ 					     m_sm,
+ 					     sval,
+ 					     from, to,
+ 					     nullptr,
+ 					     *m_new_state,
+ 					     nullptr));
+   }
+ 
+   void warn (tree, std::unique_ptr<pending_diagnostic>) final override
+   {
+   }
+   void warn (const svalue *, std::unique_ptr<pending_diagnostic>) final override
+   {
+   }
+ 
+   tree get_diagnostic_tree (tree expr) final override
+   {
+     return expr;
+   }
+ 
+   tree get_diagnostic_tree (const svalue *sval) final override
+   {
+     return m_new_state->m_region_model->get_representative_tree (sval);
+   }
+ 
+   state_machine::state_t get_global_state () const final override
+   {
+     return 0;
+   }
+ 
+   void set_global_state (state_machine::state_t) final override
+   {
+     /* No-op.  */
+   }
+ 
+   void clear_all_per_svalue_state () final override
+   {
+     /* No-op.  */
+   }
+ 
+   void on_custom_transition (custom_transition *) final override
+   {
+   }
+ 
+   tree is_zero_assignment (const gimple *stmt) final override
+   {
+     const gassign *assign_stmt = dyn_cast <const gassign *> (stmt);
+     if (!assign_stmt)
+      return NULL_TREE;
+     if (const svalue *sval
+ 	= m_new_state->m_region_model->get_gassign_result (assign_stmt, nullptr))
+       if (tree cst = sval->maybe_get_constant ())
+ 	if (::zerop(cst))
+ 	  return gimple_assign_lhs (assign_stmt);
+     return NULL_TREE;
+   }
+ 
+   const program_state *get_old_program_state () const final override
+   {
+     return m_old_state;
+   }
+   const program_state *get_new_program_state () const final override
+   {
+     return m_new_state;
+   }
+ 
+   location_t get_emission_location () const final override
+   {
+     return UNKNOWN_LOCATION;
+   }
+ 
+   /* We only care about transitions to the "null" state
+      within sm-malloc.  Special-case this.  */
+   static bool is_transition_to_null (state_machine::state_t s)
+   {
+     return !strcmp (s->get_name (), "null");
+   }
+ 
+   const program_state *m_old_state;
+   const program_state *m_new_state;
+   const gimple *m_stmt;
+   const program_point *m_point;
+   checker_path *m_emission_path;
+   const extrinsic_state &m_ext_state;
+ };
+ 
+ void
+ gimple_stmt_op::add_any_events_for_eedge (const exploded_edge &eedge,
+ 					  checker_path &out_path) const
+ {
+   out_path.add_event
+     (std::make_unique<statement_event> (&get_stmt (),
+ 					eedge.m_dest->get_function ()->decl,
+ 					eedge.m_dest->get_stack_depth (),
+ 					eedge.m_dest->get_state ()));
+ 
+   /* Create state change events for assignment to NULL.
+      Iterate through the stmts in dst_enode, adding state change
+      events for them.  */
+   if (const gassign *assign = dyn_cast<const gassign *> (&m_stmt))
+     {
+       const program_point &src_point = eedge.m_src->get_point ();
+       const extrinsic_state &ext_state = out_path.get_ext_state ();
+       for (unsigned i = 0; i < ext_state.get_num_checkers (); i++)
+ 	{
+ 	  const state_machine &sm = ext_state.get_sm (i);
+ 	  null_assignment_sm_context sm_ctxt (i, sm,
+ 					      &eedge.m_src->get_state (),
+ 					      &eedge.m_dest->get_state (),
+ 					      assign,
+ 					      &src_point,
+ 					      &out_path,
+ 					      ext_state);
+ 	  sm.on_stmt (sm_ctxt, assign);
+ 	  // TODO: what about phi nodes?
+ 	}
+     }
+ }
+ 
+ // class gassign_op : public gimple_stmt_op
+ 
+ // class greturn_op : public gimple_stmt_op
+ 
+ void
+ greturn_op::execute (operation_context &op_ctxt) const
+ {
+   auto logger = op_ctxt.get_logger ();
+ 
+   auto dst_point (op_ctxt.get_next_intraprocedural_point ());
+   const program_state &old_state  = op_ctxt.get_initial_state ();
+   program_state dst_state (old_state);
+ 
+   impl_path_context path_ctxt (&dst_state, logger);
+   uncertainty_t uncertainty;
+   impl_region_model_context ctxt (op_ctxt.m_eg,
+ 				  &op_ctxt.m_src_enode,
+ 
+ 				  /* TODO: should we be getting the ECs from the
+ 				     old state, rather than the new?  */
+ 				  &op_ctxt.get_initial_state (),
+ 				  &dst_state,
+ 				  &uncertainty,
+ 				  &path_ctxt,
+ 				  nullptr,
+ 				  nullptr);
+ 
+   tree callee = op_ctxt.get_initial_point ().get_function ()->decl;
+   tree lhs = DECL_RESULT (callee);
+ 
+   if (lhs && get_retval ())
+     {
+       region_model *dst_region_model = dst_state.m_region_model;
+       const svalue *sval
+ 	= dst_region_model->get_rvalue (get_retval (), &ctxt);
+       const region *ret_reg = dst_region_model->get_lvalue (lhs, &ctxt);
+       dst_region_model->set_value (ret_reg, sval, &ctxt);
+     }
+ 
+   if (!path_ctxt.terminate_path_p ())
+     op_ctxt.add_outcome (dst_point, dst_state, false, &uncertainty);
+ }
+ 
+ bool
+ greturn_op::
+ execute_for_feasibility (const exploded_edge &eedge,
+ 			 feasibility_state &fstate,
+ 			 region_model_context *ctxt,
+ 			 std::unique_ptr<rejected_constraint> *) const
+ {
+   tree callee = eedge.m_src->get_function ()->decl;
+   tree lhs = DECL_RESULT (callee);
+ 
+   if (lhs && get_retval ())
+     {
+       region_model &model = fstate.get_model ();
+       const svalue *sval = model.get_rvalue (get_retval (), ctxt);
+       const region *ret_reg = model.get_lvalue (lhs, ctxt);
+       model.set_value (ret_reg, sval, ctxt);
+     }
+ 
+   return true;
+ }
+ 
+ void
+ greturn_op::add_any_events_for_eedge (const exploded_edge &,
+ 				      checker_path &) const
+ {
+   // No-op.
+ }
+ 
+ // class call_and_return_op : public gimple_stmt_op
+ 
+ std::unique_ptr<operation>
+ call_and_return_op::make (const gcall &call_stmt)
+ {
+   if (is_special_named_call_p (call_stmt, "__analyzer_dump", 0))
+     return std::make_unique<dump_op> (call_stmt, dump_op::dump_kind::state);
+   else if (is_special_named_call_p (call_stmt, "__analyzer_dump_sarif", 0))
+     return std::make_unique<dump_op> (call_stmt, dump_op::dump_kind::sarif);
+   else if (is_special_named_call_p (call_stmt, "__analyzer_dump_dot", 0))
+     return std::make_unique<dump_op> (call_stmt, dump_op::dump_kind::dot);
+   else if (is_special_named_call_p (call_stmt, "__analyzer_dump_state", 2))
+     return std::make_unique<dump_op> (call_stmt, dump_op::dump_kind::state_2);
+   else if (is_setjmp_call_p (call_stmt))
+     return std::make_unique<setjmp_op> (call_stmt);
+   else if (is_longjmp_call_p (call_stmt))
+     return std::make_unique<longjmp_op> (call_stmt);
+   else if (is_cxa_throw_p (call_stmt))
+     return std::make_unique<cxa_throw_op> (call_stmt, false);
+   else if (is_cxa_rethrow_p (call_stmt))
+     return std::make_unique<cxa_throw_op> (call_stmt, true);
+ 
+   return std::make_unique<call_and_return_op> (call_stmt);
+ }
+ 
+ /* Resolve a function call by one of:
+ 
+    (a) using a call summary to add eedges to new enodes capturing
+    the states after summarized outcomes of the call
+ 
+    (b) adding an interprocedural_call edge, effectively "stepping into"
+    the called function, for detailed analysis of that path
+ 
+    (c) simulating the effect of the call, adding an eedge to a new
+    enode for the outcome of the call.  */
+ 
+ void
+ call_and_return_op::execute (operation_context &op_ctxt) const
+ {
+   /* Can we turn this into an interprocedural call, and execute within
+      the called fuction?  */
+   const program_state &old_state  = op_ctxt.get_initial_state ();
+   program_state dst_state (old_state);
+   op_region_model_context ctxt (op_ctxt, dst_state);
+   ctxt.m_stmt = &get_gcall ();
+   call_details cd (get_gcall (), old_state.m_region_model, &ctxt);
+ 
+   /* Regardless of how we handle the call, check any known
+      preconditions.  */
+   {
+     /* Check for any preconditions if it's a known_function.  */
+     if (auto kf = maybe_get_known_function (cd))
+       kf->check_any_preconditions (cd);
+ 
+     /* Check for any preconditions using sm-state.  */
+     {
+       int sm_idx;
+       sm_state_map *smap;
+       FOR_EACH_VEC_ELT (old_state.m_checker_states, sm_idx, smap)
+ 	{
+ 	  const state_machine &sm
+ 	    = op_ctxt.m_eg.get_ext_state ().get_sm (sm_idx);
+ 	  const sm_state_map *old_smap
+ 	    = old_state.m_checker_states[sm_idx];
+ 	  sm_state_map *new_smap = dst_state.m_checker_states[sm_idx];
+ 	  impl_sm_context sm_ctxt (op_ctxt.m_eg, sm_idx, sm,
+ 				   &op_ctxt.m_src_enode,
+ 				   &old_state, &dst_state,
+ 				   old_smap, new_smap, nullptr);
+ 	  sm.check_call_preconditions (sm_ctxt, cd);
+ 	}
+     }
+   }
+ 
+   if (tree callee_fndecl = cd.get_fndecl_for_call ())
+     {
+       // Consider using a call summary
+       if (function *called_fn = DECL_STRUCT_FUNCTION (callee_fndecl))
+ 	if (cgraph_edge *edge = get_any_cgraph_edge (op_ctxt))
+ 	  if (op_ctxt.m_eg.get_analysis_plan ().use_summary_p (edge))
+ 	    {
+ 	      per_function_data *called_fn_data
+ 		= op_ctxt.m_eg.get_per_function_data (called_fn);
+ 	      if (called_fn_data)
+ 		{
+ 		  replay_call_summaries (op_ctxt, *called_fn,
+ 					 *called_fn_data, &ctxt);
+ 		  return;
+ 		}
+ 	    }
+ 
+       // Do we have an entry snode for this fndecl?
+       if (auto callee_fun = DECL_STRUCT_FUNCTION (callee_fndecl))
+ 	if (supernode *callee_entry_snode
+ 	    = (op_ctxt.get_supergraph ()
+ 	       .get_node_for_function_entry (*callee_fun)))
+ 	  {
+ 	    const call_string *dst_call_string
+ 	      (op_ctxt.m_src_enode
+ 	       .get_point ()
+ 	       .get_call_string ()
+ 	       .push_call (op_ctxt.m_sedge, *this, *callee_fun));
+ 	    const program_point dst_point
+ 	      (callee_entry_snode, *dst_call_string);
+ 	    auto edge_info
+ 	      = std::make_unique<interprocedural_call> (get_gcall (),
+ 							*callee_fun);
+ 	    edge_info->update_state (&dst_state, nullptr, &ctxt);
+ 	    op_ctxt.add_outcome (dst_point, dst_state, false, nullptr,
+ 				 std::move (edge_info));
+ 	    return;
+ 	  }
+     }
+ 
+   /* Resolve intraprocedurally: execute the gcall, but using the
+      dst_state from above so that any preconditions have been applied.  */
+   gimple_stmt_op::execute_on_state (op_ctxt, std::move (dst_state));
+ }
+ 
+ cgraph_edge *
+ call_and_return_op::get_any_cgraph_edge (operation_context &op_ctxt) const
+ {
+   tree caller_fndecl = op_ctxt.get_initial_point ().get_fndecl ();
+   gcc_assert (caller_fndecl);
+ 
+   auto caller_cgnode = cgraph_node::get (caller_fndecl);
+   gcc_assert (caller_cgnode);
+   return caller_cgnode->get_edge (const_cast<gcall *> (&get_gcall ()));
+ }
+ 
+ void
+ call_and_return_op::
+ add_any_events_for_eedge (const exploded_edge &,
+ 			  checker_path &) const
+ {
+ }
+ 
+ /* Given PARM_TO_FIND, a PARM_DECL, identify its index (writing it
+    to *OUT if OUT is non-NULL), and return the corresponding argument
+    at the callsite.  */
+ 
+ tree
+ call_and_return_op::get_arg_for_parm (tree callee_fndecl,
+ 				      tree parm_to_find,
+ 				      callsite_expr *out) const
+ {
+   gcc_assert  (TREE_CODE (parm_to_find) == PARM_DECL);
+ 
+   const gcall &call_stmt = get_gcall ();
+ 
+   unsigned i = 0;
+   for (tree iter_parm = DECL_ARGUMENTS (callee_fndecl); iter_parm;
+        iter_parm = DECL_CHAIN (iter_parm), ++i)
+     {
+       if (i >= gimple_call_num_args (&call_stmt))
+ 	return NULL_TREE;
+       if (iter_parm == parm_to_find)
+ 	{
+ 	  if (out)
+ 	    *out = callsite_expr::from_zero_based_param (i);
+ 	  return gimple_call_arg (&call_stmt, i);
+ 	}
+     }
+ 
+   /* Not found.  */
+   return NULL_TREE;
+ }
+ 
+ /* Look for a use of ARG_TO_FIND as an argument at this callsite.
+    If found, return the default SSA def of the corresponding parm within
+    the callee, and if OUT is non-NULL, write the index to *OUT.
+    Only the first match is handled.  */
+ 
+ tree
+ call_and_return_op::get_parm_for_arg (tree callee_fndecl,
+ 				      tree arg_to_find,
+ 				      callsite_expr *out) const
+ {
+   const gcall &call_stmt = get_gcall ();
+ 
+   unsigned i = 0;
+   for (tree iter_parm = DECL_ARGUMENTS (callee_fndecl); iter_parm;
+        iter_parm = DECL_CHAIN (iter_parm), ++i)
+     {
+       if (i >= gimple_call_num_args (&call_stmt))
+ 	return NULL_TREE;
+       tree param = gimple_call_arg (&call_stmt, i);
+       if (arg_to_find == param)
+ 	{
+ 	  if (out)
+ 	    *out = callsite_expr::from_zero_based_param (i);
+ 	  return ssa_default_def (DECL_STRUCT_FUNCTION (callee_fndecl),
+ 				  iter_parm);
+ 	}
+     }
+ 
+   /* Not found.  */
+   return NULL_TREE;
+ }
+ 
+ /* Map caller_expr back to an expr within the callee, or return NULL_TREE.
+    If non-NULL is returned, populate OUT.  */
+ 
+ tree
+ call_and_return_op::map_expr_from_caller_to_callee (tree callee_fndecl,
+ 						    tree caller_expr,
+ 						    callsite_expr *out) const
+ {
+   /* Is it an argument (actual param)?  If so, convert to
+      parameter (formal param).  */
+   tree parm = get_parm_for_arg (callee_fndecl, caller_expr, out);
+   if (parm)
+     return parm;
+   /* Otherwise try return value.  */
+   if (caller_expr == gimple_call_lhs (&get_gcall ()))
+     {
+       if (out)
+ 	*out = callsite_expr::from_return_value ();
+       return DECL_RESULT (callee_fndecl);
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Map callee_expr back to an expr within the caller, or return NULL_TREE.
+    If non-NULL is returned, populate OUT.  */
+ 
+ tree
+ call_and_return_op::map_expr_from_callee_to_caller (tree callee_fndecl,
+ 						    tree callee_expr,
+ 						    callsite_expr *out) const
+ {
+   if (callee_expr == NULL_TREE)
+     return NULL_TREE;
+ 
+   /* If it's a parameter (formal param), get the argument (actual param).  */
+   if (TREE_CODE (callee_expr) == PARM_DECL)
+     return get_arg_for_parm (callee_fndecl, callee_expr, out);
+ 
+   /* Similar for the default SSA name of the PARM_DECL.  */
+   if (TREE_CODE (callee_expr) == SSA_NAME
+       && SSA_NAME_IS_DEFAULT_DEF (callee_expr)
+       && TREE_CODE (SSA_NAME_VAR (callee_expr)) == PARM_DECL)
+     return get_arg_for_parm (callee_fndecl, SSA_NAME_VAR (callee_expr), out);
+ 
+   /* Otherwise try return value.  */
+   if (callee_expr == DECL_RESULT (callee_fndecl))
+     {
+       if (out)
+ 	*out = callsite_expr::from_return_value ();
+       return gimple_call_lhs (&get_gcall ());
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ const known_function *
+ call_and_return_op::maybe_get_known_function (const call_details &cd) const
+ {
+   region_model_manager *mgr = cd.get_manager ();
+   known_function_manager *known_fn_mgr = mgr->get_known_function_manager ();
+ 
+   if (gimple_call_internal_p (&get_gcall ()))
+     return known_fn_mgr->get_internal_fn
+       (gimple_call_internal_fn (&get_gcall ()));
+ 
+   if (tree callee_fndecl = cd.get_fndecl_for_call ())
+     return known_fn_mgr->get_match (callee_fndecl, cd);
+ 
+   return nullptr;
+ }
+ 
+ void
+ call_and_return_op::
+ replay_call_summaries (operation_context &op_ctxt,
+ 		       function &called_fn,
+ 		       per_function_data &called_fn_data,
+ 		       region_model_context *ctxt) const
+ {
+   logger *logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+ 
+   for (auto summary : called_fn_data.m_summaries)
+     {
+       gcc_assert (summary);
+       replay_call_summary (op_ctxt, called_fn, *summary, ctxt);
+     }
+ }
+ 
+ /* A concrete call_info subclass representing a replay of a call summary.  */
+ 
+ class call_summary_edge_info : public call_info
+ {
+ public:
+   call_summary_edge_info (const call_details &cd,
+ 			  const function &called_fn,
+ 			  call_summary &summary,
+ 			  const extrinsic_state &ext_state)
+   : call_info (cd, called_fn),
+     m_called_fn (called_fn),
+     m_summary (summary),
+     m_ext_state (ext_state)
+   {}
+ 
+   bool update_state (program_state *state,
+ 		     const exploded_edge *,
+ 		     region_model_context *ctxt) const final override
+   {
+     /* Update STATE based on summary_end_state.  */
+     call_details cd (get_call_details (state->m_region_model, ctxt));
+     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
+     const program_state &summary_end_state = m_summary.get_state ();
+     return state->replay_call_summary (r, summary_end_state);
+   }
+ 
+   bool update_model (region_model *model,
+ 		     const exploded_edge *,
+ 		     region_model_context *ctxt) const final override
+   {
+     /* Update STATE based on summary_end_state.  */
+     call_details cd (get_call_details (model, ctxt));
+     call_summary_replay r (cd, m_called_fn, m_summary, m_ext_state);
+     const program_state &summary_end_state = m_summary.get_state ();
+     model->replay_call_summary (r, *summary_end_state.m_region_model);
+     return true;
+   }
+ 
+   void print_desc (pretty_printer &pp) const final override
+   {
+     pp_string (&pp, m_summary.get_desc ().get ());
+   }
+ 
+ private:
+   const function &m_called_fn;
+   call_summary &m_summary;
+   const extrinsic_state &m_ext_state;
+ };
+ 
+ void
+ call_and_return_op::
+ replay_call_summary (operation_context &op_ctxt,
+ 		     function &called_fn,
+ 		     call_summary &summary,
+ 		     region_model_context *ctxt) const
+ {
+   logger *logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+   if (logger)
+     logger->log ("using %s as summary for call to %qE from %qE",
+ 		 summary.get_desc ().get (),
+ 		 called_fn.decl,
+ 		 op_ctxt.get_initial_point ().get_function ()->decl);
+   const extrinsic_state &ext_state = op_ctxt.get_ext_state ();
+   const program_state &old_state = op_ctxt.get_initial_state ();
+   const program_state &summary_end_state = summary.get_state ();
+   if (logger)
+     {
+       pretty_printer *pp = logger->get_printer ();
+ 
+       logger->start_log_line ();
+       pp_string (pp, "callsite state: ");
+       old_state.dump_to_pp (ext_state, true, false, pp);
+       logger->end_log_line ();
+ 
+       logger->start_log_line ();
+       pp_string (pp, "summary end state: ");
+       summary_end_state.dump_to_pp (ext_state, true, false, pp);
+       logger->end_log_line ();
+     }
+ 
+   program_state new_state (old_state);
+ 
+   call_details cd (get_gcall (), new_state.m_region_model, ctxt);
+   call_summary_replay r (cd, called_fn, summary, ext_state);
+ 
+   if (new_state.replay_call_summary (r, summary_end_state))
+     op_ctxt.add_outcome
+       (op_ctxt.get_next_intraprocedural_point (),
+        new_state,
+        true,
+        nullptr,
+        std::make_unique<call_summary_edge_info> (cd,
+ 						 called_fn,
+ 						 summary,
+ 						 ext_state));
+ }
+ 
+ // class dump_op : public call_and_return_op
+ 
+ void
+ dump_op::execute (operation_context &op_ctxt) const
+ {
+   const program_state &state = op_ctxt.get_initial_state ();
+   switch (m_dump_kind)
+     {
+     default:
+       gcc_unreachable ();
+     case dump_kind::state:
+       /* Handle the builtin "__analyzer_dump" by dumping state
+ 	 to stderr.  */
+       state.dump (op_ctxt.get_ext_state (), true);
+       break;
+     case dump_kind::sarif:
+       state.dump_sarif (op_ctxt.get_ext_state ());
+       break;
+     case dump_kind::dot:
+       state.dump_dot (op_ctxt.get_ext_state ());
+       break;
+     case dump_kind::state_2:
+       {
+ 	program_state dst_state (state);
+ 	op_region_model_context ctxt (op_ctxt, dst_state);
+ 	dst_state.impl_call_analyzer_dump_state (get_gcall (),
+ 						 op_ctxt.get_ext_state (),
+ 						 &ctxt);
+       }
+       break;
+     }
+ 
+   op_ctxt.add_outcome (op_ctxt.get_next_intraprocedural_point (),
+ 		       state, false, nullptr);
+ }
+ 
+ // class setjmp_op : public call_and_return_op
+ 
+ void
+ setjmp_op::execute (operation_context &op_ctxt) const
+ {
+   program_state dst_state (op_ctxt.get_initial_state ());
+   op_region_model_context ctxt (op_ctxt, dst_state);
+   dst_state.m_region_model->on_setjmp (get_gcall (),
+ 				       op_ctxt.m_src_enode,
+ 				       op_ctxt.m_sedge,
+ 				       &ctxt);
+   op_ctxt.add_outcome (op_ctxt.get_next_intraprocedural_point (),
+ 		       dst_state, true, nullptr);
+ }
+ 
+ void
+ setjmp_op::add_any_events_for_eedge (const exploded_edge &eedge,
+ 				     checker_path &out_path) const
+ {
+   out_path.add_event
+     (std::make_unique<setjmp_event>
+        (event_loc_info (eedge.m_src),
+ 	eedge.m_src,
+ 	get_gcall ()));
+ }
+ 
+ // class longjmp_op : public call_and_return_op
+ 
+ void
+ longjmp_op::execute (operation_context &op_ctxt) const
+ {
+   program_state dst_state (op_ctxt.get_initial_state ());
+   op_region_model_context ctxt (op_ctxt, dst_state);
+   op_ctxt.m_src_enode.on_longjmp (op_ctxt.m_eg, get_gcall (), &dst_state,
+ 				  &ctxt);
+ }
+ 
+ // class cxa_throw_op : public call_and_return_op
+ 
+ void
+ cxa_throw_op::execute (operation_context &op_ctxt) const
+ {
+   program_state dst_state (op_ctxt.get_initial_state ());
+   op_region_model_context ctxt (op_ctxt, dst_state);
+   program_point after_throw_point (op_ctxt.get_next_intraprocedural_point ());
+   op_ctxt.m_src_enode.on_throw (op_ctxt.m_eg,
+ 				get_gcall (),
+ 				after_throw_point,
+ 				&dst_state,
+ 				m_is_rethrow,
+ 				&ctxt);
+   // We don't continue along op_ctxt's superedge
+ }
+ 
+ // class control_flow_op : public operation
+ 
+ void
+ control_flow_op::
+ walk_load_store_addr_ops (void *data,
+ 			  walk_stmt_load_store_addr_fn load_cb,
+ 			  walk_stmt_load_store_addr_fn store_cb,
+ 			  walk_stmt_load_store_addr_fn addr_cb) const
+ {
+   walk_stmt_load_store_addr_ops (const_cast <gimple *> (&m_ctrlflow_stmt),
+ 				 data,
+ 				 load_cb, store_cb, addr_cb);
+ }
+ 
+ void
+ control_flow_op::add_any_events_for_eedge (const exploded_edge &eedge,
+ 					   checker_path &out_path) const
+ {
+   out_path.add_event
+     (std::make_unique<start_cfg_edge_event> (eedge,
+ 					     event_loc_info (eedge.m_src),
+ 					     this));
+   out_path.add_event
+      (std::make_unique<end_cfg_edge_event> (eedge,
+ 					    event_loc_info (eedge.m_dest),
+ 					    this));
+ }
+ 
+ /* Attempt to generate a description of any condition that holds at this edge.
+ 
+    The intent is to make the user-facing messages more clear, especially for
+    cases where there's a single or double-negative, such as
+    when describing the false branch of an inverted condition.
+ 
+    For example, rather than printing just:
+ 
+       |  if (!ptr)
+       |     ~
+       |     |
+       |     (1) following 'false' branch...
+ 
+    it's clearer to spell out the condition that holds:
+ 
+       |  if (!ptr)
+       |     ~
+       |     |
+       |     (1) following 'false' branch (when 'ptr' is non-NULL)...
+                                           ^^^^^^^^^^^^^^^^^^^^^^
+ 
+    In the above example, this function would generate the highlighted
+    string: "when 'ptr' is non-NULL".
+ 
+    If the edge is not a condition, or it's not clear that a description of
+    the condition would be helpful to the user, return NULL.  */
+ 
+ label_text
+ control_flow_op::maybe_describe_condition (bool ) const
+ {
+   return label_text::borrow (nullptr);
+ }
+ 
+ void
+ control_flow_op::execute (operation_context &op_ctxt) const
+ {
+   auto logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+ 
+   program_state dst_state (op_ctxt.get_initial_state ());
+   op_region_model_context ctxt (op_ctxt, dst_state);
+   if (apply_constraints (&op_ctxt.m_sedge,
+ 			 *dst_state.m_region_model,
+ 			 &ctxt,
+ 			 nullptr))
+     {
+       bool unknown_side_effects;
+       handle_on_stmt_for_state_machines (op_ctxt,
+ 					 dst_state,
+ 					 nullptr,
+ 					 unknown_side_effects,
+ 					 m_ctrlflow_stmt);
+ 
+       if (!ctxt.terminate_path_p ())
+ 	{
+ 	  auto dst_point (op_ctxt.get_next_intraprocedural_point ());
+ 	  op_ctxt.add_outcome (dst_point, dst_state, false, nullptr);
+ 	}
+     }
+ }
+ 
+ bool
+ control_flow_op::
+ execute_for_feasibility (const exploded_edge &eedge,
+ 			 feasibility_state &fstate,
+ 			 region_model_context *ctxt,
+ 			 std::unique_ptr<rejected_constraint> *out_rc) const
+ {
+   gcc_assert (eedge.m_sedge);
+   return apply_constraints (eedge.m_sedge,
+ 			    fstate.get_model (),
+ 			    ctxt,
+ 			    out_rc);
+ }
+ 
+ // class gcond_edge_op : public control_flow_op
+ 
+ gcond_edge_op::gcond_edge_op (::edge cfg_edge,
+ 			      const gcond &cond_stmt)
+ : control_flow_op (kind::cond_edge, cfg_edge, cond_stmt),
+   m_true_value (get_flags () & EDGE_TRUE_VALUE)
+ {
+   /* Exactly one of EDGE_TRUE_VALUE and EDGE_FALSE_VALUE must
+      be set on CFG_EDGE.  */
+   gcc_assert (static_cast<bool> (get_flags () & EDGE_TRUE_VALUE)
+ 	      ^ static_cast<bool> (get_flags () & EDGE_FALSE_VALUE));
+ }
+ 
+ void
+ gcond_edge_op::print_as_edge_label (pretty_printer *pp,
+ 				    bool user_facing) const
+ {
+   if (!user_facing)
+     pp_gimple_stmt_1 (pp, &get_ctrlflow_stmt (), 0, (dump_flags_t)0);
+ 
+   if (m_true_value)
+     pp_printf (pp, "true");
+   else
+     pp_printf (pp, "false");
+ }
+ 
+ label_text
+ gcond_edge_op::maybe_describe_condition (bool can_colorize) const
+ {
+   const gcond &cond_stmt = get_gcond ();
+   enum tree_code op = gimple_cond_code (&cond_stmt);
+   tree lhs = gimple_cond_lhs (&cond_stmt);
+   tree rhs = gimple_cond_rhs (&cond_stmt);
+   if (!m_true_value)
+     op = invert_tree_comparison (op, false /* honor_nans */);
+   return maybe_describe_condition (can_colorize,
+ 				   lhs, op, rhs);
+ }
+ 
+ /* Subroutine of gcond_edge_op::maybe_describe_condition above.
+ 
+    Attempt to generate a user-facing description of the condition
+    LHS OP RHS, but only if it is likely to make it easier for the
+    user to understand a condition.  */
+ 
+ label_text
+ gcond_edge_op::maybe_describe_condition (bool can_colorize,
+ 					 tree lhs,
+ 					 enum tree_code op,
+ 					 tree rhs)
+ {
+   /* In theory we could just build a tree via
+        fold_build2 (op, boolean_type_node, lhs, rhs)
+      and print it with %qE on it, but this leads to warts such as
+      parenthesizing vars, such as '(i) <= 9', and uses of '<unknown>'.  */
+ 
+   /* Special-case: describe testing the result of strcmp, as figuring
+      out what the "true" or "false" path is can be confusing to the user.  */
+   if (TREE_CODE (lhs) == SSA_NAME
+       && zerop (rhs))
+     {
+       if (gcall *call = dyn_cast <gcall *> (SSA_NAME_DEF_STMT (lhs)))
+ 	if (is_special_named_call_p (*call, "strcmp", 2))
+ 	  {
+ 	    if (op == EQ_EXPR)
+ 	      return label_text::borrow ("when the strings are equal");
+ 	    if (op == NE_EXPR)
+ 	      return label_text::borrow ("when the strings are non-equal");
+ 	  }
+     }
+ 
+   /* Only attempt to generate text for sufficiently simple expressions.  */
+   if (!should_print_expr_p (lhs))
+     return label_text::borrow (nullptr);
+   if (!should_print_expr_p (rhs))
+     return label_text::borrow (nullptr);
+ 
+   /* Special cases for pointer comparisons against NULL.  */
+   if (POINTER_TYPE_P (TREE_TYPE (lhs))
+       && POINTER_TYPE_P (TREE_TYPE (rhs))
+       && zerop (rhs))
+     {
+       if (op == EQ_EXPR)
+ 	return make_label_text (can_colorize, "when %qE is NULL",
+ 				lhs);
+       if (op == NE_EXPR)
+ 	return make_label_text (can_colorize, "when %qE is non-NULL",
+ 				lhs);
+     }
+ 
+   return make_label_text (can_colorize, "when %<%E %s %E%>",
+ 			  lhs, op_symbol_code (op), rhs);
+ }
+ 
+ /* Subroutine of maybe_describe_condition.
+ 
+    Return true if EXPR is we will get suitable user-facing output
+    from %E on it.  */
+ 
+ bool
+ gcond_edge_op::should_print_expr_p (tree expr)
+ {
+   if (TREE_CODE (expr) == SSA_NAME)
+     {
+       if (SSA_NAME_VAR (expr))
+ 	return should_print_expr_p (SSA_NAME_VAR (expr));
+       else
+ 	return false;
+     }
+ 
+   if (DECL_P (expr))
+     return true;
+ 
+   if (CONSTANT_CLASS_P (expr))
+     return true;
+ 
+   return false;
+ }
+ 
+ bool
+ gcond_edge_op::
+ apply_constraints (const superedge *,
+ 		   region_model &model,
+ 		   region_model_context *ctxt,
+ 		   std::unique_ptr<rejected_constraint> *out) const
+ {
+   const gcond &cond_stmt = get_gcond ();
+   enum tree_code op = gimple_cond_code (&cond_stmt);
+   tree lhs = gimple_cond_lhs (&cond_stmt);
+   tree rhs = gimple_cond_rhs (&cond_stmt);
+   if (!m_true_value)
+     op = invert_tree_comparison (op, false /* honor_nans */);
+   return model.add_constraint (lhs, op, rhs, ctxt, out);
+ }
+ 
+ // class ggoto_edge_op : public control_flow_op
+ 
+ ggoto_edge_op::ggoto_edge_op (::edge cfg_edge,
+ 			      const ggoto &goto_stmt,
+ 			      tree dst_label)
+ : control_flow_op (kind::goto_edge, cfg_edge, goto_stmt),
+   m_dst_label (dst_label)
+ {
+ }
+ 
+ void
+ ggoto_edge_op::print_as_edge_label (pretty_printer *pp,
+ 				    bool user_facing) const
+ {
+   if (!user_facing)
+     pp_gimple_stmt_1 (pp, &get_ctrlflow_stmt (), 0, (dump_flags_t)0);
+ 
+   if (m_dst_label)
+     pp_printf (pp, "%qD", m_dst_label);
+ }
+ 
+ label_text
+ ggoto_edge_op::maybe_describe_condition (bool) const
+ {
+   return label_text::borrow ("");
+ }
+ 
+ bool
+ ggoto_edge_op::
+ apply_constraints (const superedge *,
+ 		   region_model &model,
+ 		   region_model_context *ctxt,
+ 		   std::unique_ptr<rejected_constraint> *out_rc) const
+ {
+   const ggoto &goto_stmt = get_ggoto ();
+   tree dest = gimple_goto_dest (&goto_stmt);
+   const svalue *dest_sval = model.get_rvalue (dest, ctxt);
+ 
+   /* If we know we were jumping to a specific label.  */
+   if (m_dst_label)
+     {
+       auto mgr = model.get_manager ();
+       const label_region *dst_label_reg
+ 	= mgr->get_region_for_label (m_dst_label);
+       const svalue *dst_label_ptr
+ 	= mgr->get_ptr_svalue (ptr_type_node, dst_label_reg);
+ 
+       if (!model.add_constraint (dest_sval, EQ_EXPR, dst_label_ptr, ctxt))
+ 	{
+ 	  if (out_rc)
+ 	    *out_rc
+ 	      = std::make_unique <rejected_op_constraint> (model,
+ 							   dest_sval,
+ 							   EQ_EXPR,
+ 							   dst_label_ptr);
+ 	  return false;
+ 	}
+     }
+ 
+   return true;
+ }
+ 
+ // class switch_case_op : public control_flow_op
+ 
+ switch_case_op::switch_case_op (function &fun,
+ 				::edge cfg_edge,
+ 				const gswitch &switch_stmt,
+ 				bounded_ranges_manager &mgr)
+ : control_flow_op (kind::switch_edge, cfg_edge, switch_stmt)
+ {
+   /* Populate m_case_labels with all cases which go to DST.  */
+   for (unsigned i = 0; i < gimple_switch_num_labels (&switch_stmt); i++)
+     {
+       tree case_ = gimple_switch_label (&switch_stmt, i);
+       basic_block bb = label_to_block (&fun,
+ 				       CASE_LABEL (case_));
+       if (bb == cfg_edge->dest)
+ 	m_case_labels.push_back (case_);
+     }
+ 
+   auto_vec <const bounded_ranges *> case_ranges_vec
+     (gimple_switch_num_labels (&switch_stmt));
+   for (auto case_label : m_case_labels)
+     {
+       /* Get the ranges for this case label.  */
+       const bounded_ranges *case_ranges
+ 	= mgr.make_case_label_ranges (&switch_stmt, case_label);
+       case_ranges_vec.quick_push (case_ranges);
+     }
+ 
+   m_all_cases_ranges = mgr.get_or_create_union (case_ranges_vec);
+ }
+ 
+ /* Print "case VAL:", "case LOWER ... UPPER:", or "default:" to PP.  */
+ 
+ void
+ switch_case_op::print_as_edge_label (pretty_printer *pp,
+ 				     bool user_facing) const
+ {
+   if (user_facing)
+     {
+       for (unsigned i = 0; i < m_case_labels.size (); ++i)
+ 	{
+ 	  if (i > 0)
+ 	    pp_string (pp, ", ");
+ 	  tree case_label = m_case_labels[i];
+ 	  gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
+ 	  tree lower_bound = CASE_LOW (case_label);
+ 	  tree upper_bound = CASE_HIGH (case_label);
+ 	  if (lower_bound)
+ 	    {
+ 	      pp_printf (pp, "case ");
+ 	      dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0, false);
+ 	      if (upper_bound)
+ 		{
+ 		  pp_printf (pp, " ... ");
+ 		  dump_generic_node (pp, upper_bound, 0, (dump_flags_t)0,
+ 				     false);
+ 		}
+ 	      pp_printf (pp, ":");
+ 	    }
+ 	  else
+ 	    pp_printf (pp, "default:");
+ 	}
+     }
+   else
+     {
+       pp_character (pp, '{');
+       for (unsigned i = 0; i < m_case_labels.size (); ++i)
+ 	{
+ 	  if (i > 0)
+ 	    pp_string (pp, ", ");
+ 	  tree case_label = m_case_labels[i];
+ 	  gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
+ 	  tree lower_bound = CASE_LOW (case_label);
+ 	  tree upper_bound = CASE_HIGH (case_label);
+ 	  if (lower_bound)
+ 	    {
+ 	      if (upper_bound)
+ 		{
+ 		  pp_character (pp, '[');
+ 		  dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0,
+ 				     false);
+ 		  pp_string (pp, ", ");
+ 		  dump_generic_node (pp, upper_bound, 0, (dump_flags_t)0,
+ 				     false);
+ 		  pp_character (pp, ']');
+ 		}
+ 	      else
+ 		dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0, false);
+ 	    }
+ 	  else
+ 	    pp_printf (pp, "default");
+ 	}
+       pp_character (pp, '}');
+       if (implicitly_created_default_p ())
+ 	{
+ 	  pp_string (pp, " IMPLICITLY CREATED");
+ 	}
+     }
+ }
+ 
+ /* Return true iff SWITCH_STMT has a non-default label that contains
+    INT_CST.  */
+ 
+ static bool
+ has_nondefault_case_for_value_p (const gswitch *switch_stmt, tree int_cst)
+ {
+   /* We expect the initial label to be the default; skip it.  */
+   gcc_assert (CASE_LOW (gimple_switch_label (switch_stmt, 0)) == NULL_TREE);
+   unsigned min_idx = 1;
+   unsigned max_idx = gimple_switch_num_labels (switch_stmt) - 1;
+ 
+   /* Binary search: try to find the label containing INT_CST.
+      This requires the cases to be sorted by CASE_LOW (done by the
+      gimplifier).  */
+   while (max_idx >= min_idx)
+     {
+       unsigned case_idx = (min_idx + max_idx) / 2;
+       tree label =  gimple_switch_label (switch_stmt, case_idx);
+       tree low = CASE_LOW (label);
+       gcc_assert (low);
+       tree high = CASE_HIGH (label);
+       if (!high)
+ 	high = low;
+       if (tree_int_cst_compare (int_cst, low) < 0)
+ 	{
+ 	  /* INT_CST is below the range of this label.  */
+ 	  gcc_assert (case_idx > 0);
+ 	  max_idx = case_idx - 1;
+ 	}
+       else if (tree_int_cst_compare (int_cst, high) > 0)
+ 	{
+ 	  /* INT_CST is above the range of this case.  */
+ 	  min_idx = case_idx + 1;
+ 	}
+       else
+ 	/* This case contains INT_CST.  */
+ 	return true;
+     }
+   /* Not found.  */
+   return false;
+ }
+ 
+ /* Return true iff SWITCH_STMT (which must be on an enum value)
+    has nondefault cases handling all values in the enum.  */
+ 
+ static bool
+ has_nondefault_cases_for_all_enum_values_p (const gswitch *switch_stmt,
+ 					    tree type)
+ {
+   gcc_assert (switch_stmt);
+   gcc_assert (TREE_CODE (type) == ENUMERAL_TYPE);
+ 
+   for (tree enum_val_iter = TYPE_VALUES (type);
+        enum_val_iter;
+        enum_val_iter = TREE_CHAIN (enum_val_iter))
+     {
+       tree enum_val = TREE_VALUE (enum_val_iter);
+       gcc_assert (TREE_CODE (enum_val) == CONST_DECL);
+       gcc_assert (TREE_CODE (DECL_INITIAL (enum_val)) == INTEGER_CST);
+       if (!has_nondefault_case_for_value_p (switch_stmt,
+ 					    DECL_INITIAL (enum_val)))
+ 	return false;
+     }
+   return true;
+ }
+ 
+ /* Given an EDGE guarded by SWITCH_STMT, determine appropriate constraints
+    for the edge to be taken.
+ 
+    If they are feasible, add the constraints and return true.
+ 
+    Return false if the constraints contradict existing knowledge
+    (and so the edge should not be taken).
+    When returning false, if OUT is non-NULL, write a new rejected_constraint
+    to it.  */
+ 
+ bool
+ switch_case_op::
+ apply_constraints (const superedge *,
+ 		   region_model &model,
+ 		   region_model_context *ctxt,
+ 		   std::unique_ptr<rejected_constraint> *out) const
+ {
+   const gswitch *switch_stmt = &get_gswitch ();
+   tree index  = gimple_switch_index (switch_stmt);
+   const svalue *index_sval = model.get_rvalue (index, ctxt);
+   bool check_index_type = true;
+ 
+   /* With -fshort-enum, there may be a type cast.  */
+   if (ctxt && index_sval->get_kind () == SK_UNARYOP
+       && TREE_CODE (index_sval->get_type ()) == INTEGER_TYPE)
+     {
+       const unaryop_svalue *unaryop = as_a <const unaryop_svalue *> (index_sval);
+       if (unaryop->get_op () == NOP_EXPR
+ 	  && is_a <const initial_svalue *> (unaryop->get_arg ()))
+ 	if (const initial_svalue *initvalop = (as_a <const initial_svalue *>
+ 					       (unaryop->get_arg ())))
+ 	  if (initvalop->get_type ()
+ 	      && TREE_CODE (initvalop->get_type ()) == ENUMERAL_TYPE)
+ 	    {
+ 	      index_sval = initvalop;
+ 	      check_index_type = false;
+ 	    }
+     }
+ 
+   /* If we're switching based on an enum type, assume that the user is only
+      working with values from the enum.  Hence if this is an
+      implicitly-created "default", assume it doesn't get followed.
+      This fixes numerous "uninitialized" false positives where we otherwise
+      consider jumping past the initialization cases.  */
+ 
+   if (/* Don't check during feasibility-checking (when ctxt is NULL).  */
+       ctxt
+       /* Must be an enum value.  */
+       && index_sval->get_type ()
+       && (!check_index_type
+ 	  || TREE_CODE (TREE_TYPE (index)) == ENUMERAL_TYPE)
+       && TREE_CODE (index_sval->get_type ()) == ENUMERAL_TYPE
+       /* If we have a constant, then we can check it directly.  */
+       && index_sval->get_kind () != SK_CONSTANT
+       && implicitly_created_default_p ()
+       && has_nondefault_cases_for_all_enum_values_p (switch_stmt,
+ 						     index_sval->get_type ())
+       /* Don't do this if there's a chance that the index is
+ 	 attacker-controlled.  */
+       && !ctxt->possibly_tainted_p (index_sval))
+     {
+       if (out)
+ 	*out = std::make_unique <rejected_default_case> (model);
+       return false;
+     }
+ 
+   bool sat
+     = model.get_constraints ()->add_bounded_ranges (index_sval,
+ 						    m_all_cases_ranges);
+   if (!sat && out)
+     *out = std::make_unique <rejected_ranges_constraint>
+       (model, index, m_all_cases_ranges);
+   if (sat && ctxt && !m_all_cases_ranges->empty_p ())
+     ctxt->on_bounded_ranges (*index_sval, *m_all_cases_ranges);
+   return sat;
+ }
+ 
+ /* Return true iff this op's edge is purely for an
+    implicitly-created "default".  */
+ 
+ bool
+ switch_case_op::implicitly_created_default_p () const
+ {
+   if (m_case_labels.size () != 1)
+     return false;
+ 
+   tree case_label = m_case_labels[0];
+   gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
+   if (CASE_LOW (case_label))
+     return false;
+ 
+   /* We have a single "default" case.
+      Assume that it was implicitly created if it has UNKNOWN_LOCATION.  */
+   return EXPR_LOCATION (case_label) == UNKNOWN_LOCATION;
+ }
+ 
+ /* Given an ERT_TRY region, get the eh_catch corresponding to
+    the label of DST_SNODE, if any.  */
+ 
+ static eh_catch
+ get_catch (eh_region eh_reg, supernode *dst_snode)
+ {
+   gcc_assert (eh_reg->type == ERT_TRY);
+ 
+   tree dst_snode_label = dst_snode->get_label ();
+   if (!dst_snode_label)
+     return nullptr;
+ 
+   for (eh_catch iter = eh_reg->u.eh_try.first_catch;
+        iter;
+        iter = iter->next_catch)
+     if (iter->label == dst_snode_label)
+       return iter;
+ 
+   return nullptr;
+ }
+ 
+ class rejected_eh_dispatch : public rejected_constraint
+ {
+ public:
+   rejected_eh_dispatch (const region_model &model)
+   : rejected_constraint (model)
+   {}
+ 
+   void dump_to_pp (pretty_printer *pp) const final override
+   {
+     pp_printf (pp, "rejected_eh_dispatch");
+   }
+ };
+ 
+ static bool
+ exception_matches_type_p (tree exception_type,
+ 			  tree catch_type)
+ {
+   if (catch_type == exception_type)
+     return true;
+ 
+   /* TODO (PR analyzer/119697): we should also handle subclasses etc;
+      see the rules in https://en.cppreference.com/w/cpp/language/catch
+ 
+      It looks like we should be calling (or emulating)
+      can_convert_eh from the C++ FE, but that's specific to the C++ FE.  */
+ 
+   return false;
+ }
+ 
+ static bool
+ matches_any_exception_type_p (eh_catch ehc, tree exception_type)
+ {
+   if (ehc->type_list == NULL_TREE)
+     /* All exceptions are caught here.  */
+     return true;
+ 
+   for (tree iter = ehc->type_list; iter; iter = TREE_CHAIN (iter))
+     if (exception_matches_type_p (TREE_VALUE (iter),
+ 				  exception_type))
+       return true;
+   return false;
+ }
+ 
+ // class eh_dispatch_edge_op : public control_flow_op
+ 
+ std::unique_ptr<eh_dispatch_edge_op>
+ eh_dispatch_edge_op::make (supernode *src_snode,
+ 			   supernode *dst_snode,
+ 			   ::edge cfg_edge,
+ 			   const geh_dispatch &eh_dispatch_stmt)
+ {
+   const eh_status *eh = src_snode->get_function ()->eh;
+   gcc_assert (eh);
+   int region_idx = gimple_eh_dispatch_region (&eh_dispatch_stmt);
+   gcc_assert (region_idx > 0);
+   gcc_assert ((*eh->region_array)[region_idx]);
+   eh_region eh_reg = (*eh->region_array)[region_idx];
+   gcc_assert (eh_reg);
+   switch (eh_reg->type)
+     {
+     default:
+       gcc_unreachable ();
+     case ERT_CLEANUP:
+       // TODO
+       gcc_unreachable ();
+       break;
+     case ERT_TRY:
+       {
+ 	eh_catch ehc = get_catch (eh_reg, dst_snode);
+ 	return std::make_unique<eh_dispatch_try_edge_op>
+ 	  (src_snode,
+ 	   cfg_edge, eh_dispatch_stmt,
+ 	   eh_reg, ehc);
+       }
+       break;
+     case ERT_ALLOWED_EXCEPTIONS:
+       return std::make_unique<eh_dispatch_allowed_edge_op>
+ 	(src_snode, dst_snode,
+ 	 cfg_edge, eh_dispatch_stmt,
+ 	 eh_reg);
+       break;
+     case ERT_MUST_NOT_THROW:
+       // TODO
+       gcc_unreachable ();
+       break;
+     }
+ }
+ 
+ eh_dispatch_edge_op::
+ eh_dispatch_edge_op (supernode *src_snode,
+ 		     enum kind kind_,
+ 		     ::edge cfg_edge,
+ 		     const geh_dispatch &geh_dispatch_stmt,
+ 		     eh_region eh_reg)
+ : control_flow_op (kind_, cfg_edge, geh_dispatch_stmt),
+   m_src_snode (src_snode),
+   m_eh_region (eh_reg)
+ {
+ }
+ 
+ bool
+ eh_dispatch_edge_op::
+ apply_constraints (const superedge *sedge,
+ 		   region_model &model,
+ 		   region_model_context *ctxt,
+ 		   std::unique_ptr<rejected_constraint> *out) const
+ {
+   const exception_node *current_node = model.get_current_thrown_exception ();
+ 
+   if (!current_node)
+     return false;
+ 
+   gcc_assert (current_node);
+   tree curr_exception_type = current_node->maybe_get_type ();
+   if (!curr_exception_type)
+     /* We don't know the specific type.  */
+     return true;
+ 
+   return apply_eh_constraints (sedge, model, ctxt, curr_exception_type, out);
+ }
+ 
+ // class eh_dispatch_try_edge_op : public eh_dispatch_edge_op
+ 
+ eh_dispatch_try_edge_op::
+ eh_dispatch_try_edge_op (supernode *src_snode,
+ 			 ::edge cfg_edge,
+ 			 const geh_dispatch &geh_dispatch_stmt,
+ 			 eh_region eh_reg,
+ 			 eh_catch ehc)
+ : eh_dispatch_edge_op (src_snode,
+ 		       kind::eh_dispatch_try_edge,
+ 		       cfg_edge, geh_dispatch_stmt, eh_reg),
+   m_eh_catch (ehc)
+ {
+   gcc_assert (eh_reg->type == ERT_TRY);
+ }
+ 
+ void
+ eh_dispatch_try_edge_op::print_as_edge_label (pretty_printer *pp,
+ 					      bool user_facing) const
+ {
+   if (!user_facing)
+     pp_string (pp, "ERT_TRY: ");
+   if (m_eh_catch)
+     {
+       bool first = true;
+       for (tree iter = m_eh_catch->type_list; iter; iter = TREE_CHAIN (iter))
+ 	{
+ 	  if (!first)
+ 	    pp_string (pp, ", ");
+ 	  pp_printf (pp, "on catch %qT", TREE_VALUE (iter));
+ 	  first = false;
+ 	}
+     }
+   else
+     pp_string (pp, "on uncaught exception");
+ }
+ 
+ void
+ eh_dispatch_try_edge_op::add_any_events_for_eedge (const exploded_edge &eedge,
+ 						   checker_path &out_path) const
+ {
+   if (m_eh_catch)
+     {
+       const region_model *model = eedge.m_src->get_state ().m_region_model;
+       auto curr_thrown_exception_node
+ 	= model->get_current_thrown_exception ();
+       gcc_assert (curr_thrown_exception_node);
+       tree type = curr_thrown_exception_node->maybe_get_type ();
+       out_path.add_event
+ 	(std::make_unique<catch_cfg_edge_event>
+ 	 (eedge,
+ 	  event_loc_info (eedge.m_dest),
+ 	  *this,
+ 	  type));
+     }
+   else
+     {
+       /* We have the "uncaught exception" sedge, from eh_dispatch
+ 	 to a block containing resx.
+ 	 Don't add any events for this, so that we can consolidate
+ 	 adjacent stack unwinding events.  */
+     }
+ }
+ 
+ bool
+ eh_dispatch_try_edge_op::
+ apply_eh_constraints (const superedge *sedge,
+ 		      region_model &model,
+ 		      region_model_context */*ctxt*/,
+ 		      tree exception_type,
+ 		      std::unique_ptr<rejected_constraint> *out) const
+ {
+   /* TODO: can we rely on this ordering?
+      or do we need to iterate through prev_catch ?  */
+   /* The exception must not match any of the previous edges.  */
+   for (auto sibling_sedge : get_src_snode ()->m_succs)
+     {
+       if (sibling_sedge == sedge)
+ 	break;
+ 
+       const eh_dispatch_try_edge_op *sibling_edge_op
+ 	= (const eh_dispatch_try_edge_op *)sibling_sedge->get_op ();
+       if (eh_catch ehc = sibling_edge_op->m_eh_catch)
+ 	if (matches_any_exception_type_p (ehc, exception_type))
+ 	  {
+ 	    /* The earlier sibling matches, so the "unhandled" edge is
+ 	       not taken.  */
+ 	    if (out)
+ 	      *out = std::make_unique<rejected_eh_dispatch> (model);
+ 	    return false;
+ 	  }
+     }
+ 
+   if (eh_catch ehc = m_eh_catch)
+     {
+       /* We have an edge that tried to match one or more types.  */
+ 
+       /* The exception must not match any of the previous edges.  */
+ 
+       /* It must match this type.  */
+       if (matches_any_exception_type_p (ehc, exception_type))
+ 	return true;
+       else
+ 	{
+ 	  /* Exception type doesn't match.  */
+ 	  if (out)
+ 	    *out = std::make_unique<rejected_eh_dispatch> (model);
+ 	  return false;
+ 	}
+     }
+   else
+     {
+       /* This is the "unhandled exception" edge.
+ 	 If we get here then no sibling edges matched;
+ 	 we will follow this edge.  */
+       return true;
+     }
+ }
+ 
+ // class eh_dispatch_allowed_edge_op : public eh_dispatch_edge_op
+ 
+ eh_dispatch_allowed_edge_op::
+ eh_dispatch_allowed_edge_op (supernode *src_snode,
+ 			     supernode *dst_snode,
+ 			     ::edge cfg_edge,
+ 			     const geh_dispatch &geh_dispatch_stmt,
+ 			     eh_region eh_reg)
+ : eh_dispatch_edge_op (src_snode,
+ 		       kind::eh_dispatch_try_edge,
+ 		       cfg_edge, geh_dispatch_stmt, eh_reg)
+ {
+   gcc_assert (eh_reg->type == ERT_ALLOWED_EXCEPTIONS);
+ 
+   /* We expect two sibling out-edges at an eh_dispatch from such a region:
+ 
+      - one to a bb without a gimple label, with a resx,
+      for exceptions of expected types
+ 
+      - one to a bb with a gimple label, with a call to __cxa_unexpected,
+      for exceptions of unexpected types.
+ 
+      Set m_kind for this edge accordingly.  */
+   gcc_assert (cfg_edge->src->succs->length () == 2);
+   tree label_for_unexpected_exceptions = eh_reg->u.allowed.label;
+   tree label_for_dest_enode = dst_snode->get_label ();
+   if (label_for_dest_enode == label_for_unexpected_exceptions)
+     m_kind = eh_kind::unexpected;
+   else
+     {
+       gcc_assert (label_for_dest_enode == nullptr);
+       m_kind = eh_kind::expected;
+     }
+ }
+ 
+ void
+ eh_dispatch_allowed_edge_op::print_as_edge_label (pretty_printer *pp,
+ 						  bool user_facing) const
+ {
+   if (!user_facing)
+     {
+       switch (m_kind)
+ 	{
+ 	default:
+ 	  gcc_unreachable ();
+ 	case eh_kind::expected:
+ 	  pp_string (pp, "expected: ");
+ 	  break;
+ 	case eh_kind::unexpected:
+ 	  pp_string (pp, "unexpected: ");
+ 	  break;
+ 	}
+       pp_string (pp, "ERT_ALLOWED_EXCEPTIONS: ");
+       eh_region eh_reg = get_eh_region ();
+       bool first = true;
+       for (tree iter = eh_reg->u.allowed.type_list; iter;
+ 	   iter = TREE_CHAIN (iter))
+ 	{
+ 	  if (!first)
+ 	    pp_string (pp, ", ");
+ 	  pp_printf (pp, "%qT", TREE_VALUE (iter));
+ 	  first = false;
+ 	}
+     }
+ }
+ 
+ bool
+ eh_dispatch_allowed_edge_op::
+ apply_eh_constraints (const superedge *,
+ 		      region_model &model,
+ 		      region_model_context */*ctxt*/,
+ 		      tree exception_type,
+ 		      std::unique_ptr<rejected_constraint> *out) const
+ {
+   auto curr_thrown_exception_node = model.get_current_thrown_exception ();
+   gcc_assert (curr_thrown_exception_node);
+   tree curr_exception_type = curr_thrown_exception_node->maybe_get_type ();
+   eh_region eh_reg = get_eh_region ();
+   tree type_list = eh_reg->u.allowed.type_list;
+ 
+   switch (get_eh_kind ())
+     {
+     default:
+       gcc_unreachable ();
+     case eh_kind::expected:
+       if (!curr_exception_type)
+ 	{
+ 	  /* We don't know the specific type;
+ 	     assume we have one of an expected type.  */
+ 	  return true;
+ 	}
+       for (tree iter = type_list; iter; iter = TREE_CHAIN (iter))
+ 	if (exception_matches_type_p (TREE_VALUE (iter),
+ 				      exception_type))
+ 	  return true;
+       if (out)
+ 	*out = std::make_unique<rejected_eh_dispatch> (model);
+       return false;
+ 
+     case eh_kind::unexpected:
+       if (!curr_exception_type)
+ 	{
+ 	  /* We don't know the specific type;
+ 	     assume we don't have one of an expected type.  */
+ 	  if (out)
+ 	    *out = std::make_unique<rejected_eh_dispatch> (model);
+ 	  return false;
+ 	}
+       for (tree iter = type_list; iter; iter = TREE_CHAIN (iter))
+ 	if (exception_matches_type_p (TREE_VALUE (iter),
+ 				      exception_type))
+ 	  {
+ 	    if (out)
+ 	      *out = std::make_unique<rejected_eh_dispatch> (model);
+ 	    return false;
+ 	  }
+       return true;
+     }
+ }
+ 
+ // class phis_for_edge_op : public operation
+ 
+ std::unique_ptr<operation>
+ phis_for_edge_op::maybe_make (::edge cfg_in_edge)
+ {
+   std::vector<pair> pairs = get_pairs_for_phi_along_in_edge (cfg_in_edge);
+   if (pairs.empty ())
+     return nullptr;
+ 
+   return std::make_unique <phis_for_edge_op> (std::move (pairs));
+ }
+ 
+ phis_for_edge_op::phis_for_edge_op (std::vector<pair> &&pairs)
+ : operation (kind::phis),
+   m_pairs (std::move (pairs))
+ {
+ }
+ 
+ std::vector<phis_for_edge_op::pair>
+ phis_for_edge_op::get_pairs_for_phi_along_in_edge (::edge cfg_in_edge)
+ {
+   std::vector<pair> result;
+ 
+   const size_t phi_arg_idx = cfg_in_edge->dest_idx;
+   for (gphi_iterator gpi = gsi_start_phis (cfg_in_edge->dest);
+        !gsi_end_p (gpi); gsi_next (&gpi))
+     {
+       gphi * const phi = gpi.phi ();
+       tree dst = gimple_phi_result (phi);
+ 
+       /* We don't bother tracking the .MEM SSA names.  */
+       if (tree var = SSA_NAME_VAR (dst))
+ 	if (TREE_CODE (var) == VAR_DECL)
+ 	  if (VAR_DECL_IS_VIRTUAL_OPERAND (var))
+ 	    continue;
+ 
+       tree src = gimple_phi_arg_def (phi, phi_arg_idx);
+ 
+       result.push_back ({dst, src});
+     }
+ 
+   return result;
+ }
+ 
+ void
+ phis_for_edge_op::print_as_edge_label (pretty_printer *pp,
+ 				       bool ) const
+ {
+   pp_printf (pp, "PHI(");
+   bool first = true;
+   for (auto &p : m_pairs)
+     {
+       if (first)
+ 	first = false;
+       else
+ 	pp_string (pp, ", ");
+ 
+       pp_printf (pp, "%E = %E", p.m_dst, p.m_src);
+     }
+   pp_printf (pp, ");");
+ }
+ 
+ void
+ phis_for_edge_op::
+ walk_load_store_addr_ops (void */*data*/ ,
+ 			  walk_stmt_load_store_addr_fn /*load_cb*/,
+ 			  walk_stmt_load_store_addr_fn /*store_cb*/,
+ 			  walk_stmt_load_store_addr_fn /*addr_cb*/) const
+ {
+ }
+ 
+ bool
+ phis_for_edge_op::defines_ssa_name_p (const_tree ssa_name) const
+ {
+   for (auto &p : m_pairs)
+     if (p.m_dst == ssa_name)
+       return true;
+   return false;
+ }
+ 
+ void
+ phis_for_edge_op::execute (operation_context &op_ctxt) const
+ {
+   auto logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+ 
+   auto dst_point (op_ctxt.get_next_intraprocedural_point ());
+ 
+   const program_state &src_state (op_ctxt.get_initial_state ());
+   program_state dst_state (src_state);
+ 
+   impl_path_context path_ctxt (&dst_state, logger);
+   uncertainty_t uncertainty;
+   impl_region_model_context ctxt (op_ctxt.m_eg,
+ 				  &op_ctxt.m_src_enode,
+ 
+ 				  /* TODO: should we be getting the ECs from the
+ 				     old state, rather than the new?  */
+ 				  &op_ctxt.get_initial_state (),
+ 				  &dst_state,
+ 				  &uncertainty,
+ 				  &path_ctxt,
+ 				  nullptr,
+ 				  nullptr);
+ 
+   update_state (src_state, dst_state, &ctxt);
+ 
+   op_ctxt.add_outcome (dst_point, dst_state, false, &uncertainty);
+ }
+ 
+ void
+ phis_for_edge_op::update_state (const program_state &src_state,
+ 				program_state &dst_state,
+ 				region_model_context *ctxt) const
+ {
+   const region_model &src_model = *src_state.m_region_model;
+   region_model &dst_model = *dst_state.m_region_model;
+ 
+   hash_set<const svalue *> svals_changing_meaning;
+ 
+   /* Get state from src_state so that all of the phi stmts for an edge
+      are effectively handled simultaneously.  */
+   for (auto &p : m_pairs)
+     {
+       const svalue *src_sval = src_model.get_rvalue (p.m_src, nullptr);
+       const region *dst_reg = src_model.get_lvalue (p.m_dst, nullptr);
+ 
+       const svalue *old_sval = src_model.get_rvalue (p.m_dst, nullptr);
+       if (old_sval->get_kind () == SK_WIDENING)
+ 	svals_changing_meaning.add (old_sval);
+ 
+       dst_model.set_value (dst_reg, src_sval, ctxt);
+     }
+ 
+  for (auto iter : svals_changing_meaning)
+    dst_model.get_constraints ()->purge_state_involving (iter);
+ }
+ 
+ bool
+ phis_for_edge_op::
+ execute_for_feasibility (const exploded_edge &eedge,
+ 			 feasibility_state &fstate,
+ 			 region_model_context *ctxt,
+ 			 std::unique_ptr<rejected_constraint> */*out_rc*/) const
+ {
+   hash_set<const svalue *> svals_changing_meaning;
+   /* Get state from src_state so that all of the phi stmts for an edge
+      are effectively handled simultaneously.  */
+   region_model &model = fstate.get_model ();
+   region_model src_model (model);
+   for (auto &p : m_pairs)
+     {
+       const svalue *src_sval = src_model.get_rvalue (p.m_src, ctxt);
+       const region *dst_reg = model.get_lvalue (p.m_dst, ctxt);
+ 
+       const svalue *sval = model.get_rvalue (p.m_dst, ctxt);
+       if (sval->get_kind () == SK_WIDENING)
+ 	svals_changing_meaning.add (sval);
+ 
+       model.set_value (dst_reg, src_sval, ctxt);
+     }
+ 
+   for (auto iter : svals_changing_meaning)
+     model.get_constraints ()->purge_state_involving (iter);
+ 
+   {
+     /* If we've entering an snode that we've already visited on this
+        epath, then we need do fix things up for loops; see the
+        comment for store::loop_replay_fixup.
+        Perhaps we should probably also verify the callstring,
+        and track program_points,  but hopefully doing it by supernode
+        is good enough.  */
+     const exploded_node &dst_enode = *eedge.m_dest;
+     const unsigned dst_snode_idx = dst_enode.get_supernode ()->m_id;
+     if (bitmap_bit_p (fstate.get_snodes_visited (), dst_snode_idx))
+       model.loop_replay_fixup (dst_enode.get_state ().m_region_model);
+   }
+  
+   return true;
+ }
+ 
+ void
+ phis_for_edge_op::
+ update_state_for_bulk_merger (const program_state &src_state,
+ 			      program_state &dst_state) const
+ {
+   update_state (src_state, dst_state, nullptr);
+ }
+ 
+ void
+ phis_for_edge_op::add_any_events_for_eedge (const exploded_edge &,
+ 					    checker_path &) const
+ {
+   // No-op
+ }
+ 
+ // class resx_op : public gimple_stmt_op
+ 
+ void
+ resx_op::execute (operation_context &op_ctxt) const
+ {
+   auto logger = op_ctxt.get_logger ();
+   LOG_SCOPE (logger);
+ 
+   program_point dst_point (op_ctxt.get_next_intraprocedural_point ());
+   program_state dst_state (op_ctxt.get_initial_state ());
+   op_region_model_context ctxt (op_ctxt, dst_state);
+ 
+   if (exploded_node *dst_enode
+       = op_ctxt.m_eg.get_or_create_node (dst_point, dst_state,
+ 					 &op_ctxt.m_src_enode,
+ 					 // Don't add to worklist:
+ 					 false))
+     {
+       op_ctxt.m_eg.add_edge (&op_ctxt.m_src_enode,
+ 			     dst_enode,
+ 			     &op_ctxt.m_sedge,
+ 			     false,
+ 			     nullptr);
+       /* Try to adding eedges and enodes that unwind to the next
+ 	 eh_dispatch statement, if any.
+ 	 Only the final enode is added to the worklist.  */
+       op_ctxt.m_eg.unwind_from_exception (*dst_enode,
+ 					  nullptr,
+ 					  &ctxt);
+     }
+ }
+ 
+ void
+ resx_op::add_any_events_for_eedge (const exploded_edge &,
+ 				   checker_path &) const
+ {
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ops.h gcc-16.1.0-RC-20260423/gcc/analyzer/ops.h
*** gcc-15.2.0/gcc/analyzer/ops.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ops.h	Thu Apr 23 11:07:32 2026
***************
*** 0 ****
--- 1,1002 ----
+ /* Operations within the code being analyzed.
+    Copyright (C) 2019-2026 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_OPS_H
+ #define GCC_ANALYZER_OPS_H
+ 
+ #include "except.h"
+ #include "gimple-walk.h"
+ 
+ namespace ana {
+ 
+ class operation;
+   class control_flow_op;
+   class call_and_return_op;
+   class phis_for_edge_op;
+ 
+ class callsite_expr;
+ 
+ struct operation_context
+ {
+   operation_context (exploded_graph &eg,
+ 		     exploded_node &src_enode,
+ 		     const superedge &sedge)
+   : m_eg (eg),
+     m_src_enode (src_enode),
+     m_sedge (sedge)
+   {
+   }
+ 
+   void DEBUG_FUNCTION dump () const;
+ 
+   logger *get_logger () const;
+ 
+   const extrinsic_state &get_ext_state () const;
+ 
+   const program_point &
+   get_initial_point () const;
+ 
+   const program_state &
+   get_initial_state () const;
+ 
+   const supergraph &
+   get_supergraph () const;
+ 
+   program_point
+   get_next_intraprocedural_point () const;
+ 
+   void
+   add_outcome (const program_point &dst_point,
+ 	       program_state dst_state,
+ 	       bool could_do_work,
+ 	       uncertainty_t *uncertainty,
+ 	       std::unique_ptr<custom_edge_info> info = nullptr);
+ 
+   exploded_graph &m_eg;
+   exploded_node &m_src_enode;
+   const superedge &m_sedge;
+ };
+ 
+ /* Abstract base class for an operation along a superedge.  */
+ 
+ class operation
+ {
+  public:
+   // Discriminator for concrete subclasses
+   enum kind
+   {
+     asm_stmt,
+     assignment,
+     predict_stmt,
+     return_stmt,
+     resx,
+     cond_edge,
+     goto_edge,
+     switch_edge,
+     eh_dispatch_try_edge,
+     eh_dispatch_allowed_edge,
+     phis,
+     call_and_return
+   };
+ 
+   virtual ~operation () {}
+ 
+   void
+   dump () const;
+ 
+   virtual std::unique_ptr<operation>
+   clone () const = 0;
+ 
+   virtual void
+   print_as_edge_label (pretty_printer *pp, bool user_facing) const = 0;
+ 
+   virtual bool
+   defines_ssa_name_p (const_tree ssa_name) const = 0;
+ 
+   virtual void
+   walk_load_store_addr_ops (void *,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn) const = 0;
+ 
+   virtual const gimple *
+   maybe_get_stmt () const
+   {
+     return nullptr;
+   }
+ 
+   virtual void
+   execute (operation_context &op_ctxt) const = 0;
+ 
+   virtual bool
+   execute_for_feasibility (const exploded_edge &,
+ 			   feasibility_state &,
+ 			   region_model_context *,
+ 			   std::unique_ptr<rejected_constraint> */*out_rc*/) const
+   {
+     // no-op
+     return true;
+   }
+ 
+   /* Is this op suitable for bulk-merging?
+      It must have a single outcome, at the intraprocedural
+      next point, with some state.  */
+   virtual bool
+   supports_bulk_merge_p () const = 0;
+   virtual void
+   update_state_for_bulk_merger (const program_state &,
+ 				program_state &) const
+   {
+     /* Must be implemented for any subclasses that return true
+        for supports_bulk_merge_p.  */
+     gcc_unreachable ();
+   }
+   virtual void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const = 0;
+ 
+   virtual const control_flow_op *
+   dyn_cast_control_flow_op () const { return nullptr; }
+ 
+   virtual const call_and_return_op *
+   dyn_cast_call_and_return_op () const { return nullptr; }
+ 
+   virtual const phis_for_edge_op *
+   dyn_cast_phis_for_edge_op () const { return nullptr; }
+ 
+   enum kind get_kind () const { return m_kind; }
+ 
+ protected:
+   operation (enum kind kind_)
+   : m_kind (kind_)
+   {
+   }
+ 
+   static void
+   handle_on_stmt_for_state_machines (operation_context &op_ctxt,
+ 				     program_state &dst_state,
+ 				     path_context *path_ctxt,
+ 				     bool &unknown_side_effects,
+ 				     const gimple &stmt);
+ 
+ private:
+   enum kind m_kind;
+ };
+ 
+ /* Subclass for an operation representing a specific gimple stmt
+    that isn't control flow.  */
+ 
+ class gimple_stmt_op : public operation
+ {
+ public:
+   const gimple &get_stmt () const { return m_stmt; }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp, bool user_facing) const override;
+ 
+   bool
+   defines_ssa_name_p (const_tree ssa_name) const final override;
+ 
+   void
+   walk_load_store_addr_ops (void *,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn) const final override;
+ 
+   const gimple *
+   maybe_get_stmt () const final override
+   {
+     return &m_stmt;
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const override;
+ 
+   void
+   execute_on_state (operation_context &op_ctxt,
+ 		    program_state dst_state) const;
+ 
+   bool
+   execute_for_feasibility (const exploded_edge &,
+ 			   feasibility_state &,
+ 			   region_model_context *,
+ 			   std::unique_ptr<rejected_constraint> *out_rc) const override;
+ 
+   virtual bool
+   supports_bulk_merge_p () const override;
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const override;
+ 
+ protected:
+   gimple_stmt_op (enum kind kind_, const gimple &stmt)
+   : operation (kind_), m_stmt (stmt)
+   {}
+ 
+ private:
+   const gimple &m_stmt;
+ };
+ 
+ /* Various subclasses of gimple_stmt_op.  */
+ 
+ /* An operation subclass representing the effect of a GIMPLE_ASM stmt.  */
+ 
+ class gasm_op : public gimple_stmt_op
+ {
+ public:
+   gasm_op (const gasm &asm_stmt)
+   : gimple_stmt_op (kind::asm_stmt, asm_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<gasm_op> (get_gasm ());
+   }
+ 
+   const gasm &get_gasm () const
+   {
+     return *as_a <const gasm *> (&get_stmt ());
+   }
+ };
+ 
+ /* An operation subclass representing the effect of a GIMPLE_ASSIGN stmt.  */
+ 
+ class gassign_op : public gimple_stmt_op
+ {
+ public:
+   gassign_op (const gassign &assign_stmt)
+   : gimple_stmt_op (kind::assignment, assign_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<gassign_op> (get_gassign ());
+   }
+ 
+   const gassign &get_gassign () const
+   {
+     return *as_a <const gassign *> (&get_stmt ());
+   }
+ };
+ 
+ /* An operation subclass for a GIMPLE_PREDICT stmt.
+    They have no effect on state, but can be useful for reconstructing
+    where "return" statements were in the code the user originally wrote,
+    to improve the reported locations in diagnostics.  */
+ 
+ class predict_op : public gimple_stmt_op
+ {
+ public:
+   predict_op (const gimple &predict_stmt)
+   : gimple_stmt_op (kind::predict_stmt, predict_stmt)
+   {
+     gcc_assert (predict_stmt.code == GIMPLE_PREDICT);
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<predict_op> (get_stmt ());
+   }
+ };
+ 
+ /* An operation subclass representing both:
+    (a) the effect of a GIMPLE_RETURN stmt: copying a value into the
+    RESULT_DECL of the current frame, and
+    (b) a hint when reporting diagnostics that this is the return
+    path from the function (rather than say, throwing an exception).  */
+ 
+ class greturn_op : public gimple_stmt_op
+ {
+ public:
+   greturn_op (const greturn &return_stmt)
+   : gimple_stmt_op (kind::return_stmt, return_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<greturn_op> (get_greturn ());
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+   bool
+   execute_for_feasibility (const exploded_edge &,
+ 			   feasibility_state &,
+ 			   region_model_context *ctxt,
+ 			   std::unique_ptr<rejected_constraint> *out_rc) const override;
+ 
+   bool
+   supports_bulk_merge_p () const final override
+   {
+     return false;
+   }
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const final override;
+ 
+   const greturn &get_greturn () const
+   {
+     return *as_a <const greturn *> (&get_stmt ());
+   }
+ 
+   tree get_retval () const
+   {
+     return gimple_return_retval (&get_greturn ());
+   }
+ };
+ 
+ /* A concrete operation subclass representing the effect of a GIMPLE_CALL stmt.
+ 
+    If the function is identified and has a known body, either simulate
+    it interprocedurally by pushing a stack frame and transitioning to the
+    callee, or simulate it intraprocedurally by replaying a summary of the
+    effects of the call.
+ 
+    If the function is identified but has an unknown body,
+    simulate it intraprocedurally, either using a known_function
+    subclass for precision, or following conservative rules that
+    assume various side-effects.
+ 
+    If the function is unidentified (for some kinds of dynamic calls),
+    simulate it intraprocedurally, following conservative rules that
+    assume various side-effects.
+ 
+    In the various intraprocedural simulation cases, the exploded edge will
+    correspond to the underlying superedge.
+ 
+    In the interprocedural simulation case, the exploded edge will
+    link two supernodes in different functions, and thus will require
+    custom edge info.
+ 
+    Various subclasses exist for handling awkward special cases,
+    such as longjmp.  */
+ 
+ class call_and_return_op : public gimple_stmt_op
+ {
+ public:
+   static std::unique_ptr<operation>
+   make (const gcall &call_stmt);
+ 
+   std::unique_ptr<operation>
+   clone () const override
+   {
+     return std::make_unique<call_and_return_op> (get_gcall ());
+   }
+ 
+   const gcall &get_gcall () const
+   {
+     return *as_a <const gcall *> (&get_stmt ());
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const override;
+ 
+   bool
+   supports_bulk_merge_p () const final override
+   {
+     return false;
+   }
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const override;
+ 
+   const call_and_return_op *
+   dyn_cast_call_and_return_op () const final override { return this; }
+ 
+   tree
+   map_expr_from_caller_to_callee (tree callee_fndecl,
+ 				  tree caller_expr,
+ 				  callsite_expr *out) const;
+   tree
+   map_expr_from_callee_to_caller (tree callee_fndecl,
+ 				  tree callee_expr,
+ 				  callsite_expr *out) const;
+ 
+   call_and_return_op (const gcall &call_stmt)
+   : gimple_stmt_op (kind::call_and_return, call_stmt)
+   {
+   }
+ 
+   const known_function *
+   maybe_get_known_function (const call_details &cd) const;
+ 
+ private:
+   cgraph_edge *
+   get_any_cgraph_edge (operation_context &op_ctxt) const;
+ 
+   void
+   replay_call_summaries (operation_context &op_ctxt,
+ 			 function &called_fn,
+ 			 per_function_data &called_fn_data,
+ 			 region_model_context *ctxt) const;
+ 
+   void
+   replay_call_summary (operation_context &op_ctxt,
+ 		       function &called_fn,
+ 		       call_summary &summary,
+ 		       region_model_context *ctxt) const;
+ 
+   tree
+   get_arg_for_parm (tree callee_fndecl,
+ 		    tree parm,
+ 		    callsite_expr *out) const;
+   tree
+   get_parm_for_arg (tree callee_fndecl,
+ 		    tree arg,
+ 		    callsite_expr *out) const;
+ };
+ 
+ /* A call to one of the various __analyzer_dump* functions.
+    These have no effect on state.  */
+ 
+ class dump_op : public call_and_return_op
+ {
+ public:
+   enum dump_kind
+   {
+    state,
+    sarif,
+    dot,
+    state_2
+   };
+ 
+   dump_op (const gcall &call_stmt, enum dump_kind dump_kind_)
+   : call_and_return_op (call_stmt),
+     m_dump_kind (dump_kind_)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<dump_op> (get_gcall (), m_dump_kind);
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+ private:
+   enum dump_kind m_dump_kind;
+ };
+ 
+ class setjmp_op : public call_and_return_op
+ {
+ public:
+   setjmp_op (const gcall &call_stmt)
+   : call_and_return_op (call_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<setjmp_op> (get_gcall ());
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const final override;
+ };
+ 
+ class longjmp_op : public call_and_return_op
+ {
+ public:
+   longjmp_op (const gcall &call_stmt)
+   : call_and_return_op (call_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<longjmp_op> (get_gcall ());
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ };
+ 
+ class cxa_throw_op : public call_and_return_op
+ {
+ public:
+   cxa_throw_op (const gcall &call_stmt, bool is_rethrow)
+   : call_and_return_op (call_stmt),
+     m_is_rethrow (is_rethrow)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<cxa_throw_op> (get_gcall (), m_is_rethrow);
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+ private:
+   bool m_is_rethrow;
+ };
+ 
+ class resx_op : public gimple_stmt_op
+ {
+ public:
+   resx_op (const gresx &resx_stmt)
+   : gimple_stmt_op (kind::resx, resx_stmt)
+   {
+   }
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<resx_op> (get_gresx ());
+   }
+ 
+   const gresx &get_gresx () const
+   {
+     return *as_a <const gresx *> (&get_stmt ());
+   }
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+   bool
+   supports_bulk_merge_p () const final override
+   {
+     return false;
+   }
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const final override;
+ };
+ 
+ /* An abstract subclass of operation representing the filtering effect on
+    state of a gimple control-flow statement at the end of a BB, for
+    a specific CFG out-edge from that BB.  */
+ 
+ class control_flow_op : public operation
+ {
+ public:
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const override;
+ 
+   bool
+   defines_ssa_name_p (const_tree) const final override
+   {
+     return false;
+   }
+ 
+   void
+   walk_load_store_addr_ops (void *,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn) const final override;
+ 
+   const gimple *
+   maybe_get_stmt () const final override
+   {
+     return &m_ctrlflow_stmt;
+   }
+ 
+   virtual label_text
+   maybe_describe_condition (bool can_colorize) const;
+ 
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+   bool
+   supports_bulk_merge_p () const final override
+   {
+     return false;
+   }
+ 
+   bool
+   execute_for_feasibility (const exploded_edge &,
+ 			   feasibility_state &,
+ 			   region_model_context *,
+ 			   std::unique_ptr<rejected_constraint> *out_rc) const override;
+ 
+   const control_flow_op *
+   dyn_cast_control_flow_op () const final override { return this; }
+ 
+   ::edge get_cfg_edge () const { return m_cfg_edge; }
+   int get_flags () const { return m_cfg_edge->flags; }
+   int back_edge_p () const { return get_flags () & EDGE_DFS_BACK; }
+ 
+   const gimple &get_ctrlflow_stmt () const { return m_ctrlflow_stmt; }
+ 
+ protected:
+   control_flow_op (enum kind kind_,
+ 		   ::edge cfg_edge,
+ 		   const gimple &ctrlflow_stmt)
+   : operation (kind_),
+     m_cfg_edge (cfg_edge),
+     m_ctrlflow_stmt (ctrlflow_stmt)
+   {}
+ 
+ private:
+   virtual bool
+   apply_constraints (const superedge *sedge,
+ 		     region_model &model,
+ 		     region_model_context *ctxt,
+ 		     std::unique_ptr<rejected_constraint> *out) const = 0;
+ 
+   ::edge m_cfg_edge;
+   const gimple &m_ctrlflow_stmt;
+ };
+ 
+ /* Concrete operation subclass representing filtering/applying state
+    transitions on a specific CFG edge after a GIMPLE_COND stmt, either the
+    "if (cond) is true" or the "if (cond) is false" branch.  */
+ 
+ class gcond_edge_op : public control_flow_op
+ {
+ public:
+   gcond_edge_op (::edge cfg_edge,
+ 		 const gcond &cond_stmt);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<gcond_edge_op> (get_cfg_edge (),
+ 					    get_gcond ());
+   }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   label_text
+   maybe_describe_condition (bool can_colorize) const final override;
+ 
+   const gcond &get_gcond () const
+   {
+     return *as_a <const gcond *> (&get_ctrlflow_stmt ());
+   }
+ 
+ private:
+   static label_text
+   maybe_describe_condition (bool can_colorize,
+ 			    tree lhs,
+ 			    enum tree_code op,
+ 			    tree rhs);
+   static bool should_print_expr_p (tree expr);
+ 
+   bool
+   apply_constraints (const superedge *sedge,
+ 		     region_model &model,
+ 		     region_model_context *ctxt,
+ 		     std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   bool m_true_value;
+ };
+ 
+ /* Concrete operation subclass representing filtering/applying state
+    transitions on a specific CFG edge after a GIMPLE_GOTO stmt, thus
+    handling computed gotos.  */
+ 
+ class ggoto_edge_op : public control_flow_op
+ {
+ public:
+   ggoto_edge_op (::edge cfg_edge,
+ 		 const ggoto &goto_stmt,
+ 		 tree dst_label);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<ggoto_edge_op> (get_cfg_edge (),
+ 					    get_ggoto (),
+ 					    m_dst_label);
+   }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   label_text
+   maybe_describe_condition (bool can_colorize) const final override;
+ 
+   const ggoto &get_ggoto () const
+   {
+     return *as_a <const ggoto *> (&get_ctrlflow_stmt ());
+   }
+ 
+ private:
+   bool
+   apply_constraints (const superedge *sedge,
+ 		     region_model &model,
+ 		     region_model_context *ctxt,
+ 		     std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   tree m_dst_label;
+ };
+ 
+ /* Concrete operation subclass representing filtering/applying state
+    transitions on a specific CFG edge after a GIMPLE_SWITCH stmt, thus
+    handling a cluster of cases/default value.  */
+ 
+ class switch_case_op : public control_flow_op
+ {
+  public:
+   switch_case_op (function &fun,
+ 		  ::edge cfg_edge,
+ 		  const gswitch &switch_stmt,
+ 		  bounded_ranges_manager &mgr);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<switch_case_op> (*this);
+   }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   bool implicitly_created_default_p () const;
+ 
+   const gswitch &get_gswitch () const
+   {
+     return *as_a <const gswitch *> (&get_ctrlflow_stmt ());
+   }
+ 
+  private:
+   bool
+   apply_constraints (const superedge *sedge,
+ 		     region_model &model,
+ 		     region_model_context *ctxt,
+ 		     std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   std::vector<tree> m_case_labels;
+   const bounded_ranges *m_all_cases_ranges;
+ };
+ 
+ /* Abstract subclass for edges from eh_dispatch statements.  */
+ 
+ class eh_dispatch_edge_op : public control_flow_op
+ {
+ public:
+   static std::unique_ptr<eh_dispatch_edge_op>
+   make (supernode *src,
+ 	supernode *dest,
+ 	::edge cfg_edge,
+ 	const geh_dispatch &geh_dispatch_stmt);
+ 
+   const geh_dispatch &
+   get_geh_dispatch () const
+   {
+     return *as_a <const geh_dispatch *> (&get_ctrlflow_stmt ());
+   }
+ 
+   eh_region
+   get_eh_region () const { return m_eh_region; }
+ 
+ protected:
+   eh_dispatch_edge_op (supernode *src_snode,
+ 		       enum kind kind_,
+ 		       ::edge cfg_edge,
+ 		       const geh_dispatch &geh_dispatch_stmt,
+ 		       eh_region eh_reg);
+ 
+   supernode *get_src_snode () const { return m_src_snode; }
+ 
+ private:
+   bool
+   apply_constraints (const superedge *sedge,
+ 		     region_model &model,
+ 		     region_model_context *ctxt,
+ 		     std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   virtual bool
+   apply_eh_constraints (const superedge *sedge,
+ 			region_model &model,
+ 			region_model_context *ctxt,
+ 			tree exception_type,
+ 			std::unique_ptr<rejected_constraint> *out) const = 0;
+ 
+   supernode *m_src_snode;
+   eh_region m_eh_region;
+ };
+ 
+ /* Concrete operation for edges from an eh_dispatch statement
+    for ERT_TRY regions.  */
+ 
+ class eh_dispatch_try_edge_op : public eh_dispatch_edge_op
+ {
+ public:
+   eh_dispatch_try_edge_op (supernode *src_snode,
+ 			   ::edge cfg_edge,
+ 			   const geh_dispatch &geh_dispatch_stmt,
+ 			   eh_region eh_reg,
+ 			   eh_catch ehc);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<eh_dispatch_try_edge_op> (*this);
+   }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const final override;
+ 
+ private:
+   bool
+   apply_eh_constraints (const superedge *sedge,
+ 			region_model &model,
+ 			region_model_context *ctxt,
+ 			tree exception_type,
+ 			std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   eh_catch m_eh_catch;
+ };
+ 
+ /* Concrete operation for edges from an eh_dispatch statement
+    for ERT_ALLOWED_EXCEPTIONS regions.  */
+ 
+ class eh_dispatch_allowed_edge_op : public eh_dispatch_edge_op
+ {
+ public:
+   enum eh_kind
+   {
+     expected,
+     unexpected
+   };
+ 
+   eh_dispatch_allowed_edge_op (supernode *src_snode,
+ 			       supernode *dst_snode,
+ 			       ::edge cfg_edge,
+ 			       const geh_dispatch &geh_dispatch_stmt,
+ 			       eh_region eh_reg);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<eh_dispatch_allowed_edge_op> (*this);
+   }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   enum eh_kind get_eh_kind () const { return m_kind; }
+ 
+ private:
+   bool
+   apply_eh_constraints (const superedge *sedge,
+ 			region_model &model,
+ 			region_model_context *ctxt,
+ 			tree exception_type,
+ 			std::unique_ptr<rejected_constraint> *out)
+     const final override;
+ 
+   enum eh_kind m_kind;
+ };
+ 
+ /* Concrete operation subclass representing the state transition
+    for simultaneously handling all of the phi nodes at the entry to a BB,
+    after following a specific CFG in-edge.
+    Note that this covers multiple gimple stmts: all of the gphi stmts
+    at a basic block entry (albeit for just one in-edge).
+    This can be thought of as handling one column of the entries in the
+    phi nodes of a BB (for a specific in-edge).
+    We ignore MEM entries, and discard phi nodes purely affecting them.  */
+ 
+ class phis_for_edge_op : public operation
+ {
+ public:
+   /* A "dst=src;" pair within a phi node.  */
+   struct pair
+   {
+     tree m_dst;
+     tree m_src;
+   };
+ 
+   static std::unique_ptr<operation>
+   maybe_make (::edge cfg_in_edge);
+ 
+   std::unique_ptr<operation>
+   clone () const final override
+   {
+     return std::make_unique<phis_for_edge_op> (*this);
+   }
+ 
+   phis_for_edge_op (std::vector<pair> &&pairs);
+ 
+   const phis_for_edge_op *
+   dyn_cast_phis_for_edge_op () const final override { return this; }
+ 
+   void
+   print_as_edge_label (pretty_printer *pp,
+ 		       bool user_facing) const final override;
+ 
+   bool
+   defines_ssa_name_p (const_tree ssa_name) const final override;
+ 
+   void
+   walk_load_store_addr_ops (void *,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn,
+ 			    walk_stmt_load_store_addr_fn) const final override;
+   void
+   execute (operation_context &op_ctxt) const final override;
+ 
+   bool
+   execute_for_feasibility (const exploded_edge &,
+ 			   feasibility_state &,
+ 			   region_model_context *,
+ 			   std::unique_ptr<rejected_constraint> *out_rc) const override;
+ 
+   bool
+   supports_bulk_merge_p () const final override
+   {
+     return true;
+   }
+   void
+   update_state_for_bulk_merger (const program_state &src_state,
+ 				program_state &dst_state) const final override;
+ 
+   void
+   add_any_events_for_eedge (const exploded_edge &eedge,
+ 			    checker_path &out_path) const final override;
+ 
+   const std::vector<pair> &get_pairs () const { return m_pairs; }
+ 
+ private:
+   static std::vector<pair>
+   get_pairs_for_phi_along_in_edge (::edge cfg_in_edge);
+ 
+   void
+   update_state (const program_state &src_state,
+ 		program_state &dst_state,
+ 		region_model_context *ctxt) const;
+ 
+   std::vector<pair> m_pairs;
+ };
+ 
+ } // namespace ana
+ 
+ #endif /* GCC_ANALYZER_OPS_H */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/pending-diagnostic.cc gcc-16.1.0-RC-20260423/gcc/analyzer/pending-diagnostic.cc
*** gcc-15.2.0/gcc/analyzer/pending-diagnostic.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/pending-diagnostic.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,35 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "intl.h"
! #include "diagnostic.h"
! #include "analyzer/analyzer.h"
! #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
- #include "diagnostic-event-id.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
--- 18,36 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
! #include "diagnostics/logging.h"
! #include "cpplib.h"
! #include "digraph.h"
! #include "ordered-hash-map.h"
! #include "cfg.h"
! #include "gimple-iterator.h"
! #include "cgraph.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
*************** along with GCC; see the file COPYING3.
*** 37,56 ****
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
- #include "cpplib.h"
- #include "digraph.h"
- #include "ordered-hash-map.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "cgraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
- #include "diagnostic-path.h"
  #include "analyzer/checker-path.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 38,47 ----
*************** diagnostic_emission_context::get_pending
*** 98,112 ****
  bool
  diagnostic_emission_context::warn (const char *gmsgid, ...)
  {
    const pending_diagnostic &pd = get_pending_diagnostic ();
    auto_diagnostic_group d;
    va_list ap;
    va_start (ap, gmsgid);
!   const bool result = emit_diagnostic_valist_meta (DK_WARNING,
  						   &m_rich_loc, &m_metadata,
  						   pd.get_controlling_option (),
  						   gmsgid, &ap);
    va_end (ap);
    return result;
  }
  
--- 89,114 ----
  bool
  diagnostic_emission_context::warn (const char *gmsgid, ...)
  {
+   auto dc_logger = global_dc->get_logger ();
+   diagnostics::logging::log_function_params
+     (dc_logger, "ana::diagnostic_emission_context::warn")
+     .log_param_string ("gmsgid", gmsgid);
+   diagnostics::logging::auto_inc_depth depth_sentinel (dc_logger);
+ 
    const pending_diagnostic &pd = get_pending_diagnostic ();
    auto_diagnostic_group d;
    va_list ap;
    va_start (ap, gmsgid);
!   const bool result = emit_diagnostic_valist_meta (diagnostics::kind::warning,
  						   &m_rich_loc, &m_metadata,
  						   pd.get_controlling_option (),
  						   gmsgid, &ap);
    va_end (ap);
+ 
+   if (dc_logger)
+     dc_logger->log_bool_return ("ana::diagnostic_emission_context::warn",
+ 				result);
+ 
    return result;
  }
  
*************** diagnostic_emission_context::warn (const
*** 116,126 ****
  void
  diagnostic_emission_context::inform (const char *gmsgid, ...)
  {
    const pending_diagnostic &pd = get_pending_diagnostic ();
    auto_diagnostic_group d;
    va_list ap;
    va_start (ap, gmsgid);
!   emit_diagnostic_valist_meta (DK_NOTE,
  			       &m_rich_loc, &m_metadata,
  			       pd.get_controlling_option (),
  			       gmsgid, &ap);
--- 118,134 ----
  void
  diagnostic_emission_context::inform (const char *gmsgid, ...)
  {
+   auto dc_logger = global_dc->get_logger ();
+   diagnostics::logging::log_function_params
+     (dc_logger, "ana::diagnostic_emission_context::inform")
+     .log_param_string ("gmsgid", gmsgid);
+   diagnostics::logging::auto_inc_depth depth_sentinel (dc_logger);
+ 
    const pending_diagnostic &pd = get_pending_diagnostic ();
    auto_diagnostic_group d;
    va_list ap;
    va_start (ap, gmsgid);
!   emit_diagnostic_valist_meta (diagnostics::kind::note,
  			       &m_rich_loc, &m_metadata,
  			       pd.get_controlling_option (),
  			       gmsgid, &ap);
*************** pending_diagnostic::fixup_location (loca
*** 181,187 ****
        const line_map_macro *macro_map = linemap_check_macro (map);
        if (fixup_location_in_macro_p (macro_map->macro))
  	loc = linemap_resolve_location (line_table, loc,
! 					LRK_MACRO_EXPANSION_POINT, NULL);
      }
    return loc;
  }
--- 189,195 ----
        const line_map_macro *macro_map = linemap_check_macro (map);
        if (fixup_location_in_macro_p (macro_map->macro))
  	loc = linemap_resolve_location (line_table, loc,
! 					LRK_MACRO_EXPANSION_POINT, nullptr);
      }
    return loc;
  }
*************** pending_diagnostic::add_function_entry_e
*** 195,201 ****
  {
    const exploded_node *dst_node = eedge.m_dest;
    const program_point &dst_point = dst_node->get_point ();
!   emission_path->add_event (make_unique<function_entry_event> (dst_point));
  }
  
  /* Base implementation of pending_diagnostic::add_call_event.
--- 203,212 ----
  {
    const exploded_node *dst_node = eedge.m_dest;
    const program_point &dst_point = dst_node->get_point ();
!   const program_state &dst_state = dst_node->get_state ();
!   emission_path->add_event
!     (std::make_unique<function_entry_event> (dst_point,
! 					     dst_state));
  }
  
  /* Base implementation of pending_diagnostic::add_call_event.
*************** pending_diagnostic::add_function_entry_e
*** 203,221 ****
  
  void
  pending_diagnostic::add_call_event (const exploded_edge &eedge,
! 				    checker_path *emission_path)
  {
!   const exploded_node *src_node = eedge.m_src;
!   const program_point &src_point = src_node->get_point ();
!   const int src_stack_depth = src_point.get_stack_depth ();
!   const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
!   emission_path->add_event
!     (make_unique<call_event> (eedge,
! 			      event_loc_info (last_stmt
! 					      ? last_stmt->location
! 					      : UNKNOWN_LOCATION,
! 					      src_point.get_fndecl (),
! 					      src_stack_depth)));
  }
  
  /* Base implementation of pending_diagnostic::add_region_creation_events.
--- 214,225 ----
  
  void
  pending_diagnostic::add_call_event (const exploded_edge &eedge,
! 				    const gcall &,
! 				    checker_path &emission_path)
  {
!   emission_path.add_event
!     (std::make_unique<call_event> (eedge,
! 				   event_loc_info (eedge.m_src)));
  }
  
  /* Base implementation of pending_diagnostic::add_region_creation_events.
*************** pending_diagnostic::add_region_creation_
*** 228,239 ****
  						checker_path &emission_path)
  {
    emission_path.add_event
!     (make_unique<region_creation_event_memory_space> (reg->get_memory_space (),
! 						      loc_info));
  
    if (capacity)
      emission_path.add_event
!       (make_unique<region_creation_event_capacity> (capacity, loc_info));
  }
  
  /* Base implementation of pending_diagnostic::add_final_event.
--- 232,244 ----
  						checker_path &emission_path)
  {
    emission_path.add_event
!     (std::make_unique<region_creation_event_memory_space>
!        (reg->get_memory_space (),
! 	loc_info));
  
    if (capacity)
      emission_path.add_event
!       (std::make_unique<region_creation_event_capacity> (capacity, loc_info));
  }
  
  /* Base implementation of pending_diagnostic::add_final_event.
*************** pending_diagnostic::add_final_event (con
*** 247,256 ****
  				     checker_path *emission_path)
  {
    emission_path->add_event
!     (make_unique<warning_event>
       (loc_info,
        enode,
!       sm, var, state));
  }
  
  } // namespace ana
--- 252,262 ----
  				     checker_path *emission_path)
  {
    emission_path->add_event
!     (std::make_unique<warning_event>
       (loc_info,
        enode,
!       sm, var, state,
!       get_final_state ()));
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/pending-diagnostic.h gcc-16.1.0-RC-20260423/gcc/analyzer/pending-diagnostic.h
*** gcc-15.2.0/gcc/analyzer/pending-diagnostic.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/pending-diagnostic.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for analyzer diagnostics.
!    Copyright (C) 2019-2026 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,28 ****
  #ifndef GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  #define GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  
! #include "diagnostic-metadata.h"
! #include "diagnostic-path.h"
  #include "analyzer/sm.h"
  
  namespace ana {
--- 21,27 ----
  #ifndef GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  #define GCC_ANALYZER_PENDING_DIAGNOSTIC_H
  
! #include "diagnostics/metadata.h"
  #include "analyzer/sm.h"
  
  namespace ana {
*************** struct interesting_t
*** 44,50 ****
  };
  
  /* Various bundles of information used for generating more precise
!    messages for events within a diagnostic_path, for passing to the
     various "describe_*" vfuncs of pending_diagnostic.  See those
     for more information.  */
  
--- 43,49 ----
  };
  
  /* Various bundles of information used for generating more precise
!    messages for events within a diagnostic path, for passing to the
     various "describe_*" vfuncs of pending_diagnostic.  See those
     for more information.  */
  
*************** struct state_change
*** 58,64 ****
  		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),
--- 57,63 ----
  		tree origin,
  		state_machine::state_t old_state,
  		state_machine::state_t new_state,
! 		diagnostics::paths::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),
*************** struct state_change
*** 71,77 ****
    tree m_origin;
    state_machine::state_t m_old_state;
    state_machine::state_t m_new_state;
!   diagnostic_event_id_t m_event_id;
    const state_change_event &m_event;
  };
  
--- 70,76 ----
    tree m_origin;
    state_machine::state_t m_old_state;
    state_machine::state_t m_new_state;
!   diagnostics::paths::event_id_t m_event_id;
    const state_change_event &m_event;
  };
  
*************** struct final_event
*** 131,144 ****
      pending_diagnostic::emit vfunc.
  
      The rich_location will have already been populated with a
!     diagnostic_path.  */
  
  class diagnostic_emission_context
  {
  public:
    diagnostic_emission_context (const saved_diagnostic &sd,
  			       rich_location &rich_loc,
! 			       diagnostic_metadata &metadata,
  			       logger *logger)
    : m_sd (sd),
      m_rich_loc (rich_loc),
--- 130,143 ----
      pending_diagnostic::emit vfunc.
  
      The rich_location will have already been populated with a
!     diagnostics::paths::path.  */
  
  class diagnostic_emission_context
  {
  public:
    diagnostic_emission_context (const saved_diagnostic &sd,
  			       rich_location &rich_loc,
! 			       diagnostics::metadata &metadata,
  			       logger *logger)
    : m_sd (sd),
      m_rich_loc (rich_loc),
*************** public:
*** 156,162 ****
    logger *get_logger () const { return m_logger; }
  
    void add_cwe (int cwe) { m_metadata.add_cwe (cwe); }
!   void add_rule (const diagnostic_metadata::rule &r)
    {
      m_metadata.add_rule (r);
    }
--- 155,161 ----
    logger *get_logger () const { return m_logger; }
  
    void add_cwe (int cwe) { m_metadata.add_cwe (cwe); }
!   void add_rule (const diagnostics::metadata::rule &r)
    {
      m_metadata.add_rule (r);
    }
*************** public:
*** 164,170 ****
  private:
    const saved_diagnostic &m_sd;
    rich_location &m_rich_loc;
!   diagnostic_metadata &m_metadata;
    logger *m_logger;
  };
  
--- 163,169 ----
  private:
    const saved_diagnostic &m_sd;
    rich_location &m_rich_loc;
!   diagnostics::metadata &m_metadata;
    logger *m_logger;
  };
  
*************** private:
*** 182,188 ****
  
     As well as emitting a diagnostic, the class has various "precision of
     wording" virtual functions, for generating descriptions for events
!    within a diagnostic_path.  These are optional, but implementing these
     allows for more precise wordings than the more generic
     implementation.  */
  
--- 181,187 ----
  
     As well as emitting a diagnostic, the class has various "precision of
     wording" virtual functions, for generating descriptions for events
!    within a diagnostic path.  These are optional, but implementing these
     allows for more precise wordings than the more generic
     implementation.  */
  
*************** class pending_diagnostic
*** 238,244 ****
    virtual location_t fixup_location (location_t loc, bool primary) const;
  
    /* Precision-of-wording vfunc for describing a critical state change
!      within the diagnostic_path.
  
       For example, a double-free diagnostic might use the descriptions:
       - "first 'free' happens here"
--- 237,243 ----
    virtual location_t fixup_location (location_t loc, bool primary) const;
  
    /* Precision-of-wording vfunc for describing a critical state change
!      within the diagnostic path.
  
       For example, a double-free diagnostic might use the descriptions:
       - "first 'free' happens here"
*************** class pending_diagnostic
*** 260,272 ****
      return false;
    }
  
!   /* Vfunc for implementing diagnostic_event::get_meaning for
       state_change_event.  */
!   virtual diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &) const
    {
      /* Default no-op implementation.  */
!     return diagnostic_event::meaning ();
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural call
--- 259,271 ----
      return false;
    }
  
!   /* Vfunc for implementing event::get_meaning for
       state_change_event.  */
!   virtual diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &) const
    {
      /* Default no-op implementation.  */
!     return diagnostics::paths::event::meaning ();
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural call
*************** class pending_diagnostic
*** 285,291 ****
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural return
!      within the diagnostic_path that carries critial state for the
       diagnostic, from callee back to caller.
  
       For example, a deref-of-unchecked-malloc diagnostic might use:
--- 284,290 ----
    }
  
    /* Precision-of-wording vfunc for describing an interprocedural return
!      within the diagnostic path that carries critial state for the
       diagnostic, from callee back to caller.
  
       For example, a deref-of-unchecked-malloc diagnostic might use:
*************** class pending_diagnostic
*** 301,307 ****
    }
  
    /* Precision-of-wording vfunc for describing the final event within a
!      diagnostic_path.
  
       For example a double-free diagnostic might use:
        - "second 'free' here; first 'free' was at (3)"
--- 300,306 ----
    }
  
    /* Precision-of-wording vfunc for describing the final event within a
!      diagnostic path.
  
       For example a double-free diagnostic might use:
        - "second 'free' here; first 'free' was at (3)"
*************** class pending_diagnostic
*** 326,341 ****
  			    checker_path *emission_path);
  
    /* Vfunc for extending/overriding creation of the events for an
!      exploded_edge that corresponds to a superedge, allowing for custom
!      events to be created that are pertinent to a particular
!      pending_diagnostic subclass.
  
       For example, the -Wanalyzer-stale-setjmp-buffer diagnostic adds a
       custom event showing when the pertinent stack frame is popped
       (and thus the point at which the jmp_buf becomes invalid).  */
  
!   virtual bool maybe_add_custom_events_for_superedge (const exploded_edge &,
! 						      checker_path *)
    {
      return false;
    }
--- 325,339 ----
  			    checker_path *emission_path);
  
    /* Vfunc for extending/overriding creation of the events for an
!      exploded_edge, allowing for custom events to be created that are
!      pertinent to a particular pending_diagnostic subclass.
  
       For example, the -Wanalyzer-stale-setjmp-buffer diagnostic adds a
       custom event showing when the pertinent stack frame is popped
       (and thus the point at which the jmp_buf becomes invalid).  */
  
!   virtual bool maybe_add_custom_events_for_eedge (const exploded_edge &,
! 						  checker_path *)
    {
      return false;
    }
*************** class pending_diagnostic
*** 344,350 ****
       the varargs diagnostics can add a custom event subclass that annotates
       the variadic arguments.  */
    virtual void add_call_event (const exploded_edge &,
! 			       checker_path *);
  
    /* Vfunc for adding any events for the creation of regions identified
       by the mark_interesting_stuff vfunc.
--- 342,349 ----
       the varargs diagnostics can add a custom event subclass that annotates
       the variadic arguments.  */
    virtual void add_call_event (const exploded_edge &,
! 			       const gcall &call_stmt,
! 			       checker_path &emission_path);
  
    /* Vfunc for adding any events for the creation of regions identified
       by the mark_interesting_stuff vfunc.
*************** class pending_diagnostic
*** 364,369 ****
--- 363,374 ----
  				tree var, state_machine::state_t state,
  				checker_path *emission_path);
  
+   virtual const program_state *
+   get_final_state () const
+   {
+     return nullptr;
+   }
+ 
    /* Vfunc for determining that this pending_diagnostic supercedes OTHER,
       and that OTHER should therefore not be emitted.
       They have already been tested for being at the same stmt.  */
*************** class pending_diagnostic
*** 385,392 ****
    /* Vfunc to give diagnostic subclasses the opportunity to reject diagnostics
       by imposing their own additional feasibility checks on the path to a
       given feasible_node.  */
!   virtual bool check_valid_fpath_p (const feasible_node &,
! 				    const gimple *) const
    {
      /* Default implementation: accept this path.  */
      return true;
--- 390,396 ----
    /* Vfunc to give diagnostic subclasses the opportunity to reject diagnostics
       by imposing their own additional feasibility checks on the path to a
       given feasible_node.  */
!   virtual bool check_valid_fpath_p (const feasible_node &) const
    {
      /* Default implementation: accept this path.  */
      return true;
*************** class pending_diagnostic
*** 396,402 ****
       the opportunity to add diagnostic-specific properties to the SARIF
       "result" object for the diagnostic.
       This is intended for use when debugging a diagnostic.  */
!   virtual void maybe_add_sarif_properties (sarif_object &/*result_obj*/) const
    {
      /* Default no-op implementation.  */
    }
--- 400,407 ----
       the opportunity to add diagnostic-specific properties to the SARIF
       "result" object for the diagnostic.
       This is intended for use when debugging a diagnostic.  */
!   virtual void
!   maybe_add_sarif_properties (diagnostics::sarif_object &/*result_obj*/) const
    {
      /* Default no-op implementation.  */
    }
diff -Nrcpad gcc-15.2.0/gcc/analyzer/program-point.cc gcc-16.1.0-RC-20260423/gcc/analyzer/program-point.cc
*** gcc-15.2.0/gcc/analyzer/program-point.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/program-point.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,264 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "gimple-pretty-print.h"
  #include "gcc-rich-location.h"
! #include "ordered-hash-map.h"
! #include "options.h"
! #include "cgraph.h"
! #include "function.h"
! #include "cfg.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "digraph.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-point.h"
- #include "sbitmap.h"
- #include "bitmap.h"
- #include "selftest.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/sm.h"
  #include "analyzer/program-state.h"
- #include "diagnostic-event-id.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
- #include "shortest-paths.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/analysis-plan.h"
  #include "analyzer/inlining-iterator.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
  namespace ana {
  
! /* Get a string for PK.  */
! 
! const char *
! point_kind_to_string (enum point_kind pk)
! {
!   switch (pk)
!     {
!     default:
!       gcc_unreachable ();
!     case PK_ORIGIN:
!       return "PK_ORIGIN";
!     case PK_BEFORE_SUPERNODE:
!       return "PK_BEFORE_SUPERNODE";
!     case PK_BEFORE_STMT:
!       return "PK_BEFORE_STMT";
!     case PK_AFTER_SUPERNODE:
!       return "PK_AFTER_SUPERNODE";
!     case PK_EMPTY:
!       return "PK_EMPTY";
!     case PK_DELETED:
!       return "PK_DELETED";
!     }
! }
! 
! /* class function_point.  */
! 
! function_point::function_point (const supernode *supernode,
! 				const superedge *from_edge,
! 				unsigned stmt_idx,
! 				enum point_kind kind)
! : m_supernode (supernode), m_from_edge (from_edge),
!   m_stmt_idx (stmt_idx), m_kind (kind)
! {
!   if (from_edge)
!     {
!       gcc_checking_assert (m_kind == PK_BEFORE_SUPERNODE);
!       gcc_checking_assert (from_edge->get_kind () == SUPEREDGE_CFG_EDGE);
!     }
!   if (stmt_idx)
!     gcc_checking_assert (m_kind == PK_BEFORE_STMT);
! }
! 
! /* Print this function_point to PP.  */
! 
! void
! function_point::print (pretty_printer *pp, const format &f) const
! {
!   switch (get_kind ())
!     {
!     default:
!       gcc_unreachable ();
! 
!     case PK_ORIGIN:
!       pp_printf (pp, "origin");
!       if (f.m_newlines)
! 	pp_newline (pp);
!       break;
! 
!     case PK_BEFORE_SUPERNODE:
!       {
! 	if (m_from_edge)
! 	  {
! 	    if (basic_block bb = m_from_edge->m_src->m_bb)
! 	      pp_printf (pp, "before SN: %i (from SN: %i (bb: %i))",
! 			 m_supernode->m_index, m_from_edge->m_src->m_index,
! 			 bb->index);
! 	    else
! 	      pp_printf (pp, "before SN: %i (from SN: %i)",
! 			 m_supernode->m_index, m_from_edge->m_src->m_index);
! 	  }
! 	else
! 	  pp_printf (pp, "before SN: %i (NULL from-edge)",
! 		     m_supernode->m_index);
! 	f.spacer (pp);
! 	for (gphi_iterator gpi
! 	       = const_cast<supernode *>(get_supernode ())->start_phis ();
! 	     !gsi_end_p (gpi); gsi_next (&gpi))
! 	  {
! 	    const gphi *phi = gpi.phi ();
! 	    pp_gimple_stmt_1 (pp, phi, 0, (dump_flags_t)0);
! 	  }
!       }
!       break;
! 
!     case PK_BEFORE_STMT:
!       pp_printf (pp, "before (SN: %i stmt: %i): ", m_supernode->m_index,
! 		 m_stmt_idx);
!       f.spacer (pp);
!       pp_gimple_stmt_1 (pp, get_stmt (), 0, (dump_flags_t)0);
!       if (f.m_newlines)
! 	{
! 	  pp_newline (pp);
! 	  print_source_line (pp);
! 	}
!       break;
! 
!     case PK_AFTER_SUPERNODE:
!       pp_printf (pp, "after SN: %i", m_supernode->m_index);
!       if (f.m_newlines)
! 	pp_newline (pp);
!       break;
!     }
! }
! 
! /* Generate a hash value for this function_point.  */
! 
! hashval_t
! function_point::hash () const
! {
!   inchash::hash hstate;
!   if (m_supernode)
!     hstate.add_int (m_supernode->m_index);
!   hstate.add_ptr (m_from_edge);
!   hstate.add_int (m_stmt_idx);
!   hstate.add_int (m_kind);
!   return hstate.end ();
! }
! 
! /* Get the function at this point, if any.  */
! 
! function *
! function_point::get_function () const
! {
!   if (m_supernode)
!     return m_supernode->m_fun;
!   else
!     return NULL;
! }
! 
! /* Get the gimple stmt for this function_point, if any.  */
! 
! const gimple *
! function_point::get_stmt () const
! {
!   if (m_kind == PK_BEFORE_STMT)
!     return m_supernode->m_stmts[m_stmt_idx];
!   else if (m_kind == PK_AFTER_SUPERNODE)
!     return m_supernode->get_last_stmt ();
!   else
!     return NULL;
! }
! 
! /* Get a location for this function_point, if any.  */
! 
! location_t
! function_point::get_location () const
! {
!   const gimple *stmt = get_stmt ();
!   if (stmt)
!     return stmt->location;
!   if (m_kind == PK_BEFORE_SUPERNODE)
!     return m_supernode->get_start_location ();
!   else if (m_kind == PK_AFTER_SUPERNODE)
!     return m_supernode->get_end_location ();
!   else
!     return UNKNOWN_LOCATION;
! }
! 
! /* Return true if this function_point is a before_stmt for
!    the final stmt in its supernode.  */
! 
! bool
! function_point::final_stmt_p () const
! {
!   if (m_kind != PK_BEFORE_STMT)
!     return false;
!   return m_stmt_idx == get_supernode ()->m_stmts.length () - 1;
! }
! 
! /* Create a function_point representing the entrypoint of function FUN.  */
! 
! function_point
! function_point::from_function_entry (const supergraph &sg, const function &fun)
! {
!   return before_supernode (sg.get_node_for_function_entry (fun), NULL);
! }
! 
! /* Create a function_point representing entering supernode SUPERNODE,
!    having reached it via FROM_EDGE (which could be NULL).  */
! 
! function_point
! function_point::before_supernode (const supernode *supernode,
! 				  const superedge *from_edge)
! {
!   if (from_edge && from_edge->get_kind () != SUPEREDGE_CFG_EDGE)
!     from_edge = NULL;
!   return function_point (supernode, from_edge, 0, PK_BEFORE_SUPERNODE);
! }
! 
! /* A subclass of diagnostic_context for use by
     program_point::print_source_line.  */
  
! class debug_diagnostic_context : public diagnostic_context
  {
  public:
    debug_diagnostic_context ()
    {
      diagnostic_initialize (this, 0);
!     m_source_printing.show_line_numbers_p = true;
!     m_source_printing.enabled = true;
    }
    ~debug_diagnostic_context ()
    {
--- 18,62 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
  #include "gcc-rich-location.h"
! #include "gimple-pretty-print.h"
! #include "sbitmap.h"
! #include "selftest.h"
! #include "shortest-paths.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/sm.h"
  #include "analyzer/program-state.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/analysis-plan.h"
  #include "analyzer/inlining-iterator.h"
  
  #if ENABLE_ANALYZER
  
  namespace ana {
  
! /* A subclass of diagnostics::context for use by
     program_point::print_source_line.  */
  
! class debug_diagnostic_context : public diagnostics::context
  {
  public:
    debug_diagnostic_context ()
    {
      diagnostic_initialize (this, 0);
!     auto &source_printing_opts = get_source_printing_options ();
!     source_printing_opts.show_line_numbers_p = true;
!     source_printing_opts.enabled = true;
    }
    ~debug_diagnostic_context ()
    {
*************** public:
*** 266,290 ****
    }
  };
  
! /* Print the source line (if any) for this function_point to PP.  */
  
  void
! function_point::print_source_line (pretty_printer *pp) const
  {
!   const gimple *stmt = get_stmt ();
!   if (!stmt)
      return;
-   // 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.  */
- 
  /* Print this program_point to PP.  */
  
  void
--- 64,86 ----
    }
  };
  
! /* class program_point.  */
! 
! /* Print the source line (if any) for this program_point to PP.  */
  
  void
! program_point::print_source_line (pretty_printer *pp) const
  {
!   if (!useful_location_p (get_location ()))
      return;
    debug_diagnostic_context tmp_dc;
!   gcc_rich_location richloc (get_location ());
!   diagnostics::source_print_policy source_policy (tmp_dc);
    gcc_assert (pp);
!   source_policy.print (*pp, richloc, diagnostics::kind::error, nullptr);
    pp_string (pp, pp_formatted_text (tmp_dc.get_reference_printer ()));
  }
  
  /* Print this program_point to PP.  */
  
  void
*************** program_point::print (pretty_printer *pp
*** 294,300 ****
    m_call_string->print (pp);
    f.spacer (pp);
  
!   m_function_point.print (pp, f);
  }
  
  /* Dump this point to stderr.  */
--- 90,106 ----
    m_call_string->print (pp);
    f.spacer (pp);
  
!   if (m_snode)
!     {
!       pp_printf (pp, "sn: %i", m_snode->m_id);
!       if (f.m_newlines)
! 	{
! 	  pp_newline (pp);
! 	  print_source_line (pp);
! 	}
!     }
!   else
!     pp_string (pp, "origin");
  }
  
  /* Dump this point to stderr.  */
*************** program_point::dump () const
*** 307,356 ****
  }
  
  /* Return a new json::object of the form
!    {"kind"  : str,
!     "snode_idx" : int (optional), the index of the supernode,
!     "from_edge_snode_idx" : int (only for kind=='PK_BEFORE_SUPERNODE'),
!     "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;
!     }
! 
    point_obj->set ("call_string", m_call_string->to_json ());
  
    return point_obj;
  }
  
- /* 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,
- 				   const supernode *callee)
- {
-   m_call_string = m_call_string->push_call (callee, caller);
- }
- 
  /* Pop the topmost call from the current callstack.  */
  void
  program_point::pop_from_call_stack ()
--- 113,133 ----
  }
  
  /* Return a new json::object of the form
!    {"snode_idx" : int (optional), the index of the supernode,
      "call_string": object for the call_string}.  */
  
  std::unique_ptr<json::object>
  program_point::to_json () const
  {
!   auto point_obj = std::make_unique<json::object> ();
  
    if (get_supernode ())
!     point_obj->set_integer ("snode_idx", get_supernode ()->m_id);
    point_obj->set ("call_string", m_call_string->to_json ());
  
    return point_obj;
  }
  
  /* Pop the topmost call from the current callstack.  */
  void
  program_point::pop_from_call_stack ()
*************** hashval_t
*** 365,371 ****
  program_point::hash () const
  {
    inchash::hash hstate;
!   hstate.merge_hash (m_function_point.hash ());
    hstate.add_ptr (m_call_string);
    return hstate.end ();
  }
--- 142,148 ----
  program_point::hash () const
  {
    inchash::hash hstate;
!   hstate.add_ptr (m_snode);
    hstate.add_ptr (m_call_string);
    return hstate.end ();
  }
*************** program_point::get_function_at_depth (un
*** 377,383 ****
  {
    gcc_assert (depth <= m_call_string->length ());
    if (depth == m_call_string->length ())
!     return m_function_point.get_function ();
    else
      return get_call_string ()[depth].get_caller_function ();
  }
--- 154,160 ----
  {
    gcc_assert (depth <= m_call_string->length ());
    if (depth == m_call_string->length ())
!     return m_snode->get_function ();
    else
      return get_call_string ()[depth].get_caller_function ();
  }
*************** program_point::validate () const
*** 401,694 ****
         == get_function ());
  }
  
- /* Check to see if SUCC is a valid edge to take (ensuring that we have
-    interprocedurally valid paths in the exploded graph, and enforcing
-    recursion limits).
- 
-    Update the call string if SUCC is a call or a return.
- 
-    Return true if SUCC can be taken, or false otherwise.
- 
-    This is the "point" half of exploded_node::on_edge.  */
- 
- bool
- program_point::on_edge (exploded_graph &eg,
- 			const superedge *succ)
- {
-   logger * const logger = eg.get_logger ();
-   LOG_FUNC (logger);
-   switch (succ->m_kind)
-     {
-     case SUPEREDGE_CFG_EDGE:
-       {
- 	const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (succ);
- 
- 	if (cfg_sedge->get_flags () & EDGE_ABNORMAL)
- 	  {
- 	    const supernode *src_snode = cfg_sedge->m_src;
- 	    if (gimple *last_stmt = src_snode->get_last_stmt ())
- 	      if (last_stmt->code == GIMPLE_GOTO)
- 		{
- 		  /* For the program_point aspect here, consider all
- 		     out-edges from goto stmts to be valid; we'll
- 		     consider state separately.  */
- 		  return true;
- 		}
- 
- 	    /* Reject other kinds of abnormal edges;
- 	       we special-case setjmp/longjmp.  */
- 	    return false;
- 	  }
-       }
-       break;
- 
-     case SUPEREDGE_CALL:
-       {
- 	const call_superedge *call_sedge = as_a <const call_superedge *> (succ);
- 
- 	if (eg.get_analysis_plan ().use_summary_p (call_sedge->m_cedge))
- 	  {
- 	    if (logger)
- 	      logger->log ("rejecting call edge: using summary instead");
- 	    return false;
- 	  }
- 
- 	/* Add the callsite to the call string.  */
- 	m_call_string = m_call_string->push_call (eg.get_supergraph (),
- 						  call_sedge);
- 
- 	/* Impose a maximum recursion depth and don't analyze paths
- 	   that exceed it further.
- 	   This is something of a blunt workaround, but it only
- 	   applies to recursion (and mutual recursion), not to
- 	   general call stacks.  */
- 	if (m_call_string->calc_recursion_depth ()
- 	    > param_analyzer_max_recursion_depth)
- 	  {
- 	    if (logger)
- 	      logger->log ("rejecting call edge: recursion limit exceeded");
- 	    // TODO: issue a sorry for this?
- 	    return false;
- 	  }
-       }
-       break;
- 
-     case SUPEREDGE_RETURN:
-       {
- 	/* Require that we return to the call site in the call string.  */
- 	if (m_call_string->empty_p ())
- 	  {
- 	    if (logger)
- 	      logger->log ("rejecting return edge: empty call string");
- 	    return false;
- 	  }
- 	const call_string::element_t &top_of_stack
- 	  = m_call_string->get_top_of_stack ();
- 	m_call_string = m_call_string->get_parent ();
- 	call_string::element_t current_call_string_element (succ->m_dest,
- 							    succ->m_src);
- 	if (top_of_stack != current_call_string_element)
- 	  {
- 	    if (logger)
- 	      logger->log ("rejecting return edge: return to wrong callsite");
- 	    return false;
- 	  }
-       }
-       break;
- 
-     case SUPEREDGE_INTRAPROCEDURAL_CALL:
-       {
- 	const callgraph_superedge *cg_sedge
- 	  = as_a <const callgraph_superedge *> (succ);
- 	/* Consider turning this edge into a use of an
- 	   interprocedural summary.  */
- 	if (eg.get_analysis_plan ().use_summary_p (cg_sedge->m_cedge))
- 	  {
- 	    if (logger)
- 	      logger->log ("using function summary for %qE in %qE",
- 			   cg_sedge->get_callee_decl (),
- 			   cg_sedge->get_caller_decl ());
- 	    return true;
- 	  }
- 	else
- 	  {
- 	    /* Otherwise, we ignore these edges  */
- 	    if (logger)
- 	      logger->log ("rejecting interprocedural edge");
- 	    return false;
- 	  }
-       }
-     }
- 
-   return true;
- }
- 
- /* Comparator for program points within the same supernode,
-    for implementing worklist::key_t comparison operators.
-    Return negative if POINT_A is before POINT_B
-    Return positive if POINT_A is after POINT_B
-    Return 0 if they are equal.  */
- 
- int
- function_point::cmp_within_supernode_1 (const function_point &point_a,
- 					const function_point &point_b)
- {
-   gcc_assert (point_a.get_supernode () == point_b.get_supernode ());
- 
-   switch (point_a.m_kind)
-     {
-     default:
-       gcc_unreachable ();
-     case PK_BEFORE_SUPERNODE:
-       switch (point_b.m_kind)
- 	{
- 	default:
- 	  gcc_unreachable ();
- 	case PK_BEFORE_SUPERNODE:
- 	  {
- 	    int a_src_idx = -1;
- 	    int b_src_idx = -1;
- 	    if (point_a.m_from_edge)
- 	      a_src_idx = point_a.m_from_edge->m_src->m_index;
- 	    if (point_b.m_from_edge)
- 	      b_src_idx = point_b.m_from_edge->m_src->m_index;
- 	    return a_src_idx - b_src_idx;
- 	  }
- 	  break;
- 
- 	case PK_BEFORE_STMT:
- 	case PK_AFTER_SUPERNODE:
- 	  return -1;
- 	}
-       break;
-     case PK_BEFORE_STMT:
-       switch (point_b.m_kind)
- 	{
- 	default:
- 	  gcc_unreachable ();
- 	case PK_BEFORE_SUPERNODE:
- 	  return 1;
- 
- 	case PK_BEFORE_STMT:
- 	  return point_a.m_stmt_idx - point_b.m_stmt_idx;
- 
- 	case PK_AFTER_SUPERNODE:
- 	  return -1;
- 	}
-       break;
-     case PK_AFTER_SUPERNODE:
-       switch (point_b.m_kind)
- 	{
- 	default:
- 	  gcc_unreachable ();
- 	case PK_BEFORE_SUPERNODE:
- 	case PK_BEFORE_STMT:
- 	  return 1;
- 
- 	case PK_AFTER_SUPERNODE:
- 	  return 0;
- 	}
-       break;
-     }
- }
- 
- /* Comparator for program points within the same supernode,
-    for implementing worklist::key_t comparison operators.
-    Return negative if POINT_A is before POINT_B
-    Return positive if POINT_A is after POINT_B
-    Return 0 if they are equal.  */
- 
- int
- function_point::cmp_within_supernode (const function_point &point_a,
- 				      const function_point &point_b)
- {
-   int result = cmp_within_supernode_1 (point_a, point_b);
- 
-   /* Check that the ordering is symmetric  */
- #if CHECKING_P
-   int reversed = cmp_within_supernode_1 (point_b, point_a);
-   gcc_assert (reversed == -result);
- #endif
- 
-   return result;
- }
- 
- /* Comparator for imposing an order on function_points.  */
- 
- int
- function_point::cmp (const function_point &point_a,
- 		     const function_point &point_b)
- {
-   int idx_a = point_a.m_supernode ? point_a.m_supernode->m_index : -1;
-   int idx_b = point_b.m_supernode ? point_b.m_supernode->m_index : -1;
-   if (int cmp_idx = idx_a - idx_b)
-     return cmp_idx;
-   gcc_assert (point_a.m_supernode == point_b.m_supernode);
-   if (point_a.m_supernode)
-     return cmp_within_supernode (point_a, point_b);
-   else
-     return 0;
- }
- 
- /* Comparator for use by vec<function_point>::qsort.  */
- 
- int
- function_point::cmp_ptr (const void *p1, const void *p2)
- {
-   const function_point *fp1 = (const function_point *)p1;
-   const function_point *fp2 = (const function_point *)p2;
-   return cmp (*fp1, *fp2);
- }
- 
- /* For PK_BEFORE_STMT, go to next stmt (or to PK_AFTER_SUPERNODE).  */
- 
- void
- function_point::next_stmt ()
- {
-   gcc_assert (m_kind == PK_BEFORE_STMT);
-   if (++m_stmt_idx == m_supernode->m_stmts.length ())
-     {
-       m_kind = PK_AFTER_SUPERNODE;
-       m_stmt_idx = 0;
-     }
- }
- 
- /* For those function points for which there is a uniquely-defined
-    successor, return it.  */
- 
- function_point
- function_point::get_next () const
- {
-   switch (get_kind ())
-     {
-     default:
-       gcc_unreachable ();
-     case PK_ORIGIN:
-     case PK_AFTER_SUPERNODE:
-       gcc_unreachable (); /* Not uniquely defined.  */
-     case PK_BEFORE_SUPERNODE:
-       if (get_supernode ()->m_stmts.length () > 0)
- 	return before_stmt (get_supernode (), 0);
-       else
- 	return after_supernode (get_supernode ());
-     case PK_BEFORE_STMT:
-       {
- 	unsigned next_idx = get_stmt_idx () + 1;
- 	if (next_idx < get_supernode ()->m_stmts.length ())
- 	  return before_stmt (get_supernode (), next_idx);
- 	else
- 	  return after_supernode (get_supernode ());
-       }
-     }
- }
- 
  /* class program_point.  */
  
  program_point
  program_point::origin (const region_model_manager &mgr)
  {
!   return program_point (function_point (NULL, NULL,
! 					0, PK_ORIGIN),
  			mgr.get_empty_call_string ());
  }
  
--- 178,189 ----
         == get_function ());
  }
  
  /* class program_point.  */
  
  program_point
  program_point::origin (const region_model_manager &mgr)
  {
!   return program_point (nullptr,
  			mgr.get_empty_call_string ());
  }
  
*************** program_point::from_function_entry (cons
*** 697,735 ****
  				    const supergraph &sg,
  				    const function &fun)
  {
!   return program_point (function_point::from_function_entry (sg, fun),
  			mgr.get_empty_call_string ());
  }
  
- /* For those program points for which there is a uniquely-defined
-    successor, return it.  */
- 
- program_point
- program_point::get_next () const
- {
-   switch (m_function_point.get_kind ())
-     {
-     default:
-       gcc_unreachable ();
-     case PK_ORIGIN:
-     case PK_AFTER_SUPERNODE:
-       gcc_unreachable (); /* Not uniquely defined.  */
-     case PK_BEFORE_SUPERNODE:
-       if (get_supernode ()->m_stmts.length () > 0)
- 	return before_stmt (get_supernode (), 0, get_call_string ());
-       else
- 	return after_supernode (get_supernode (), get_call_string ());
-     case PK_BEFORE_STMT:
-       {
- 	unsigned next_idx = get_stmt_idx () + 1;
- 	if (next_idx < get_supernode ()->m_stmts.length ())
- 	  return before_stmt (get_supernode (), next_idx, get_call_string ());
- 	else
- 	  return after_supernode (get_supernode (), get_call_string ());
-       }
-     }
- }
- 
  /* Return true iff POINT_A and POINT_B share the same function and
     call_string, both directly, and when attempting to undo inlining
     information.  */
--- 192,201 ----
  				    const supergraph &sg,
  				    const function &fun)
  {
!   return program_point (sg.get_node_for_function_entry (fun),
  			mgr.get_empty_call_string ());
  }
  
  /* Return true iff POINT_A and POINT_B share the same function and
     call_string, both directly, and when attempting to undo inlining
     information.  */
*************** program_point::effectively_intraprocedur
*** 775,828 ****
  
  namespace selftest {
  
- /* Verify that function_point::operator== works as expected.  */
- 
- static void
- test_function_point_equality ()
- {
-   const supernode *snode = NULL;
- 
-   function_point a = function_point (snode, NULL, 0,
- 				     PK_BEFORE_SUPERNODE);
-   function_point b = function_point::before_supernode (snode, NULL);
-   ASSERT_EQ (a, b);
- }
- 
- /* Verify that function_point::cmp_within_supernode works as expected.  */
- 
- static void
- test_function_point_ordering ()
- {
-   const supernode *snode = NULL;
- 
-   /* Populate an array with various points within the same
-      snode, in order.  */
-   auto_vec<function_point> points;
-   points.safe_push (function_point::before_supernode (snode, NULL));
-   points.safe_push (function_point::before_stmt (snode, 0));
-   points.safe_push (function_point::before_stmt (snode, 1));
-   points.safe_push (function_point::after_supernode (snode));
- 
-   /* Check all pairs.  */
-   unsigned i;
-   function_point *point_a;
-   FOR_EACH_VEC_ELT (points, i, point_a)
-     {
-       unsigned j;
-       function_point *point_b;
-       FOR_EACH_VEC_ELT (points, j, point_b)
- 	{
- 	  int cmp = function_point::cmp_within_supernode (*point_a, *point_b);
- 	  if (i == j)
- 	    ASSERT_EQ (cmp, 0);
- 	  if (i < j)
- 	    ASSERT_TRUE (cmp < 0);
- 	  if (i > j)
- 	    ASSERT_TRUE (cmp > 0);
- 	}
-     }
- }
- 
  /* Verify that program_point::operator== works as expected.  */
  
  static void
--- 241,246 ----
*************** test_program_point_equality ()
*** 830,847 ****
  {
    region_model_manager mgr;
  
!   const supernode *snode = NULL;
  
    const call_string &cs = mgr.get_empty_call_string ();
  
!   program_point a = program_point::before_supernode (snode, NULL,
! 						     cs);
! 
!   program_point b = program_point::before_supernode (snode, NULL,
! 						     cs);
! 
    ASSERT_EQ (a, b);
!   // TODO: verify with non-empty callstrings, with different edges
  }
  
  /* Run all of the selftests within this file.  */
--- 248,261 ----
  {
    region_model_manager mgr;
  
!   const supernode *snode = nullptr;
  
    const call_string &cs = mgr.get_empty_call_string ();
  
!   program_point a = program_point (snode, cs);
!   program_point b = program_point (snode, cs);
    ASSERT_EQ (a, b);
!   // TODO: verify with non-empty callstrings, with different snodes
  }
  
  /* Run all of the selftests within this file.  */
*************** test_program_point_equality ()
*** 849,856 ****
  void
  analyzer_program_point_cc_tests ()
  {
-   test_function_point_equality ();
-   test_function_point_ordering ();
    test_program_point_equality ();
  }
  
--- 263,268 ----
diff -Nrcpad gcc-15.2.0/gcc/analyzer/program-point.h gcc-16.1.0-RC-20260423/gcc/analyzer/program-point.h
*** gcc-15.2.0/gcc/analyzer/program-point.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/program-point.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for representing locations within the program.
!    Copyright (C) 2019-2026 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,52 ****
  
  #include "pretty-print.h"
  #include "analyzer/call-string.h"
  
  namespace ana {
  
- class exploded_graph;
- 
- /* An enum for distinguishing the various kinds of program_point.  */
- 
- enum point_kind {
-   /* A "fake" node which has edges to all entrypoints.  */
-   PK_ORIGIN,
- 
-   PK_BEFORE_SUPERNODE,
-   PK_BEFORE_STMT,
-   PK_AFTER_SUPERNODE,
- 
-   /* Special values used for hash_map:  */
-   PK_EMPTY,
-   PK_DELETED,
- 
-   NUM_POINT_KINDS
- };
- 
- extern const char *point_kind_to_string (enum point_kind pk);
- 
  class format
  {
  public:
--- 23,32 ----
  
  #include "pretty-print.h"
  #include "analyzer/call-string.h"
+ #include "analyzer/supergraph.h"
  
  namespace ana {
  
  class format
  {
  public:
*************** public:
*** 63,169 ****
    bool m_newlines;
  };
  
- /* A class for representing a location within the program, without
-    interprocedural information.
- 
-    This represents a fine-grained location within the supergraph (or
-    within one of its nodes).  */
- 
- class function_point
- {
- public:
-   function_point (const supernode *supernode,
- 		  const superedge *from_edge,
- 		  unsigned stmt_idx,
- 		  enum point_kind kind);
- 
-   void print (pretty_printer *pp, const format &f) const;
-   void print_source_line (pretty_printer *pp) const;
-   void dump () const;
- 
-   hashval_t hash () const;
-   bool operator== (const function_point &other) const
-   {
-     return (m_supernode == other.m_supernode
- 	    && m_from_edge == other.m_from_edge
- 	    && m_stmt_idx == other.m_stmt_idx
- 	    && m_kind == other.m_kind);
-   }
- 
-   /* Accessors.  */
- 
-   const supernode *get_supernode () const { return m_supernode; }
-   function *get_function () const;
-   const gimple *get_stmt () const;
-   location_t get_location () const;
-   enum point_kind get_kind () const { return m_kind; }
-   const superedge *get_from_edge () const
-   {
-     return m_from_edge;
-   }
-   unsigned get_stmt_idx () const
-   {
-     gcc_assert (m_kind == PK_BEFORE_STMT);
-     return m_stmt_idx;
-   }
- 
-   bool final_stmt_p () const;
- 
-   /* Factory functions for making various kinds of program_point.  */
- 
-   static function_point from_function_entry (const supergraph &sg,
- 					     const function &fun);
- 
-   static function_point before_supernode (const supernode *supernode,
- 					  const superedge *from_edge);
- 
-   static function_point before_stmt (const supernode *supernode,
- 				     unsigned stmt_idx)
-   {
-     return function_point (supernode, NULL, stmt_idx, PK_BEFORE_STMT);
-   }
- 
-   static function_point after_supernode (const supernode *supernode)
-   {
-     return function_point (supernode, NULL, 0, PK_AFTER_SUPERNODE);
-   }
- 
-   /* Support for hash_map.  */
- 
-   static function_point empty ()
-   {
-     return function_point (NULL, NULL, 0, PK_EMPTY);
-   }
-   static function_point deleted ()
-   {
-     return function_point (NULL, NULL, 0, PK_DELETED);
-   }
- 
-   static int cmp_within_supernode_1 (const function_point &point_a,
- 				     const function_point &point_b);
-   static int cmp_within_supernode (const function_point &point_a,
- 				   const function_point &point_b);
-   static int cmp (const function_point &point_a,
- 		  const function_point &point_b);
-   static int cmp_ptr (const void *p1, const void *p2);
- 
-   /* For before_stmt, go to next stmt.  */
-   void next_stmt ();
- 
-   function_point get_next () const;
- 
-  private:
-   const supernode *m_supernode;
- 
-   /* For PK_BEFORE_SUPERNODE, and only for CFG edges.  */
-   const superedge *m_from_edge;
- 
-   /* Only for PK_BEFORE_STMT.  */
-   unsigned m_stmt_idx;
- 
-   enum point_kind m_kind;
- };
- 
  /* A class for representing a location within the program, including
     interprocedural information.
  
--- 43,48 ----
*************** public:
*** 174,195 ****
  class program_point
  {
  public:
!   program_point (const function_point &fn_point,
  		 const call_string &call_string)
!   : m_function_point (fn_point),
      m_call_string (&call_string)
    {
    }
  
    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
    {
!     return (m_function_point == other.m_function_point
  	    && m_call_string == other.m_call_string);
    }
    bool operator!= (const program_point &other) const
--- 53,75 ----
  class program_point
  {
  public:
!   program_point (const supernode *snode,
  		 const call_string &call_string)
!   : m_snode (snode),
      m_call_string (&call_string)
    {
    }
  
    void print (pretty_printer *pp, const format &f) const;
    void dump () const;
+   void print_source_line (pretty_printer *pp) const;
  
    std::unique_ptr<json::object> to_json () const;
  
    hashval_t hash () const;
    bool operator== (const program_point &other) const
    {
!     return (m_snode == other.m_snode
  	    && m_call_string == other.m_call_string);
    }
    bool operator!= (const program_point &other) const
*************** public:
*** 199,240 ****
  
    /* Accessors.  */
  
-   const function_point &get_function_point () const { return m_function_point; }
-   const call_string &get_call_string () const { return *m_call_string; }
- 
    const supernode *get_supernode () const
    {
!     return m_function_point.get_supernode ();
    }
    function *get_function () const
    {
!     return m_function_point.get_function ();
    }
    function *get_function_at_depth (unsigned depth) const;
    tree get_fndecl () const
    {
!     gcc_assert (get_kind () != PK_ORIGIN);
!     return get_function ()->decl;
!   }
!   const gimple *get_stmt () const
!   {
!     return m_function_point.get_stmt ();
    }
    location_t get_location () const
    {
!     return m_function_point.get_location ();
!   }
!   enum point_kind get_kind () const
!   {
!     return m_function_point.get_kind ();
!   }
!   const superedge *get_from_edge () const
!   {
!     return m_function_point.get_from_edge ();
!   }
!   unsigned get_stmt_idx () const
!   {
!     return m_function_point.get_stmt_idx ();
    }
  
    /* Get the number of frames we expect at this program point.
--- 79,103 ----
  
    /* Accessors.  */
  
    const supernode *get_supernode () const
    {
!     return m_snode;
    }
+   const call_string &get_call_string () const { return *m_call_string; }
+ 
    function *get_function () const
    {
!     return m_snode ? m_snode->get_function () : nullptr;
    }
    function *get_function_at_depth (unsigned depth) const;
    tree get_fndecl () const
    {
!     function *fn = get_function ();
!     return fn ? fn->decl : nullptr;
    }
    location_t get_location () const
    {
!     return m_snode ? m_snode->get_location () : UNKNOWN_LOCATION;
    }
  
    /* Get the number of frames we expect at this program point.
*************** public:
*** 243,315 ****
       node, which doesn't have any frames.  */
    int get_stack_depth () const
    {
!     if (get_kind () == PK_ORIGIN)
        return 0;
      return get_call_string ().length () + 1;
    }
  
    /* Factory functions for making various kinds of program_point.  */
    static program_point origin (const region_model_manager &mgr);
    static program_point from_function_entry (const region_model_manager &mgr,
  					    const supergraph &sg,
  					    const function &fun);
  
-   static program_point before_supernode (const supernode *supernode,
- 					 const superedge *from_edge,
- 					 const call_string &call_string)
-   {
-     return program_point (function_point::before_supernode (supernode,
- 							    from_edge),
- 			  call_string);
-   }
- 
-   static program_point before_stmt (const supernode *supernode,
- 				    unsigned stmt_idx,
- 				    const call_string &call_string)
-   {
-     return program_point (function_point::before_stmt (supernode, stmt_idx),
- 			  call_string);
-   }
- 
-   static program_point after_supernode (const supernode *supernode,
- 					const call_string &call_string)
-   {
-     return program_point (function_point::after_supernode (supernode),
- 			  call_string);
-   }
- 
-   /* Support for hash_map.  */
- 
-   static program_point empty ()
-   {
-     return program_point (function_point::empty ());
-   }
-   static program_point deleted ()
-   {
-     return program_point (function_point::deleted ());
-   }
- 
-   bool on_edge (exploded_graph &eg, const superedge *succ);
-   void push_to_call_stack (const supernode *caller, const supernode *callee);
    void pop_from_call_stack ();
    void validate () const;
  
-   /* For before_stmt, go to next stmt.  */
-   void next_stmt () { m_function_point.next_stmt (); }
- 
-   program_point get_next () const;
- 
    static bool effectively_intraprocedural_p (const program_point &point_a,
  					     const program_point &point_b);
  
   private:
!   program_point (const function_point &fn_point)
!   : m_function_point (fn_point),
!     m_call_string (NULL)
!   {
!   }
! 
!   function_point m_function_point;
    const call_string *m_call_string;
  };
  
--- 106,138 ----
       node, which doesn't have any frames.  */
    int get_stack_depth () const
    {
!     if (m_snode == nullptr)
!       // Origin
        return 0;
      return get_call_string ().length () + 1;
    }
  
+   bool state_merge_at_p () const
+   {
+     if (m_snode)
+       return m_snode->m_state_merger_node;
+     return false;
+   }
+ 
    /* Factory functions for making various kinds of program_point.  */
    static program_point origin (const region_model_manager &mgr);
    static program_point from_function_entry (const region_model_manager &mgr,
  					    const supergraph &sg,
  					    const function &fun);
  
    void pop_from_call_stack ();
    void validate () const;
  
    static bool effectively_intraprocedural_p (const program_point &point_a,
  					     const program_point &point_b);
  
   private:
!   const supernode *m_snode;
    const call_string *m_call_string;
  };
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/program-state.cc gcc-16.1.0-RC-20260423/gcc/analyzer/program-state.cc
*** gcc-15.2.0/gcc/analyzer/program-state.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/program-state.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,61 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
! #include "diagnostic.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
! #include "analyzer/sm.h"
  #include "sbitmap.h"
- #include "bitmap.h"
  #include "ordered-hash-map.h"
  #include "selftest.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/constraint-manager.h"
- #include "diagnostic-event-id.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
- #include "cfg.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "cgraph.h"
- #include "digraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
  #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
  
--- 18,56 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "sbitmap.h"
  #include "ordered-hash-map.h"
  #include "selftest.h"
+ #include "cfg.h"
+ #include "gimple-iterator.h"
+ #include "cgraph.h"
+ #include "digraph.h"
+ #include "diagnostics/event-id.h"
+ #include "diagnostics/state-graphs.h"
+ #include "graphviz.h"
+ 
+ #include "text-art/tree-widget.h"
+ #include "text-art/dump.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/sm.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/constraint-manager.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-state.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/state-purge.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
! #include "analyzer/ana-state-to-diagnostic-state.h"
  
  #if ENABLE_ANALYZER
  
*************** void
*** 69,79 ****
  extrinsic_state::dump_to_pp (pretty_printer *pp) const
  {
    pp_printf (pp, "extrinsic_state: %i checker(s)\n", get_num_checkers ());
!   unsigned i;
!   state_machine *checker;
!   FOR_EACH_VEC_ELT (m_checkers, i, checker)
      {
!       pp_printf (pp, "m_checkers[%i]: %qs\n", i, checker->get_name ());
        checker->dump_to_pp (pp);
      }
  }
--- 64,73 ----
  extrinsic_state::dump_to_pp (pretty_printer *pp) const
  {
    pp_printf (pp, "extrinsic_state: %i checker(s)\n", get_num_checkers ());
!   unsigned i = 0;
!   for (auto &checker : m_checkers)
      {
!       pp_printf (pp, "m_checkers[%i]: %qs\n", ++i, checker->get_name ());
        checker->dump_to_pp (pp);
      }
  }
*************** extrinsic_state::dump () const
*** 101,113 ****
  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));
    }
--- 95,105 ----
  std::unique_ptr<json::object>
  extrinsic_state::to_json () const
  {
!   auto ext_state_obj = std::make_unique<json::object> ();
  
    {
!     auto checkers_arr = std::make_unique<json::array> ();
!     for (auto &sm : m_checkers)
        checkers_arr->append (sm->to_json ());
      ext_state_obj->set ("checkers", std::move (checkers_arr));
    }
*************** extrinsic_state::get_model_manager () co
*** 123,129 ****
    if (m_engine)
      return m_engine->get_model_manager ();
    else
!     return NULL; /* for selftests.  */
  }
  
  /* Try to find a state machine named NAME.
--- 115,121 ----
    if (m_engine)
      return m_engine->get_model_manager ();
    else
!     return nullptr; /* for selftests.  */
  }
  
  /* Try to find a state machine named NAME.
*************** extrinsic_state::get_model_manager () co
*** 133,142 ****
  bool
  extrinsic_state::get_sm_idx_by_name (const char *name, unsigned *out) const
  {
!   unsigned i;
!   state_machine *sm;
!   FOR_EACH_VEC_ELT (m_checkers, i, sm)
!     if (0 == strcmp (name, sm->get_name ()))
        {
  	/* Found NAME.  */
  	*out = i;
--- 125,132 ----
  bool
  extrinsic_state::get_sm_idx_by_name (const char *name, unsigned *out) const
  {
!   for (size_t i = 0; i < m_checkers.size (); ++i)
!     if (0 == strcmp (name, m_checkers[i]->get_name ()))
        {
  	/* Found NAME.  */
  	*out = i;
*************** DEBUG_FUNCTION void
*** 268,274 ****
  sm_state_map::dump (bool simple) const
  {
    tree_dump_pretty_printer pp (stderr);
!   print (NULL, simple, true, &pp);
    pp_newline (&pp);
  }
  
--- 258,264 ----
  sm_state_map::dump (bool simple) const
  {
    tree_dump_pretty_printer pp (stderr);
!   print (nullptr, simple, true, &pp);
    pp_newline (&pp);
  }
  
*************** sm_state_map::dump (bool simple) const
*** 279,285 ****
  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 ());
--- 269,275 ----
  std::unique_ptr<json::object>
  sm_state_map::to_json () const
  {
!   auto map_obj = std::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::operator== (const sm_state
*** 430,436 ****
        const svalue *sval = (*iter).first;
        entry_t e = (*iter).second;
        entry_t *other_slot = const_cast <map_t &> (other.m_map).get (sval);
!       if (other_slot == NULL)
  	return false;
        if (e != *other_slot)
  	return false;
--- 420,426 ----
        const svalue *sval = (*iter).first;
        entry_t e = (*iter).second;
        entry_t *other_slot = const_cast <map_t &> (other.m_map).get (sval);
!       if (other_slot == nullptr)
  	return false;
        if (e != *other_slot)
  	return false;
*************** sm_state_map::get_origin (const svalue *
*** 511,517 ****
    if (slot)
      return slot->m_origin;
    else
!     return NULL;
  }
  
  /* Set the state of SID within MODEL to STATE, recording that
--- 501,507 ----
    if (slot)
      return slot->m_origin;
    else
!     return nullptr;
  }
  
  /* Set the state of SID within MODEL to STATE, recording that
*************** sm_state_map::set_state (region_model *m
*** 524,530 ****
  			 const svalue *origin,
  			 const extrinsic_state &ext_state)
  {
!   if (model == NULL)
      return;
  
    /* Reject attempts to set state on UNKNOWN/POISONED.  */
--- 514,520 ----
  			 const svalue *origin,
  			 const extrinsic_state &ext_state)
  {
!   if (model == nullptr)
      return;
  
    /* Reject attempts to set state on UNKNOWN/POISONED.  */
*************** sm_state_map::impl_set_state (const sval
*** 572,580 ****
      {
        if (const compound_svalue *compound_sval
  	    = sval->dyn_cast_compound_svalue ())
! 	for (auto iter : *compound_sval)
  	  {
! 	    const svalue *inner_sval = iter.second;
  	    if (inner_sval->can_have_associated_state_p ())
  	      impl_set_state (inner_sval, state, origin, ext_state);
  	  }
--- 562,571 ----
      {
        if (const compound_svalue *compound_sval
  	    = sval->dyn_cast_compound_svalue ())
! 	for (auto iter = compound_sval->begin ();
! 	     iter != compound_sval->end (); ++iter)
  	  {
! 	    const svalue *inner_sval = iter.get_svalue ();
  	    if (inner_sval->can_have_associated_state_p ())
  	      impl_set_state (inner_sval, state, origin, ext_state);
  	  }
*************** sm_state_map::on_unknown_change (const s
*** 781,787 ****
  
    for (svalue_set::iterator iter = svals_to_unset.begin ();
         iter != svals_to_unset.end (); ++iter)
!     impl_set_state (*iter, (state_machine::state_t)0, NULL, ext_state);
  }
  
  /* Purge state for things involving SVAL.
--- 772,778 ----
  
    for (svalue_set::iterator iter = svals_to_unset.begin ();
         iter != svals_to_unset.end (); ++iter)
!     impl_set_state (*iter, (state_machine::state_t)0, nullptr, ext_state);
  }
  
  /* Purge state for things involving SVAL.
*************** sm_state_map::purge_state_involving (con
*** 812,818 ****
  
    for (svalue_set::iterator iter = svals_to_unset.begin ();
         iter != svals_to_unset.end (); ++iter)
!     impl_set_state (*iter, (state_machine::state_t)0, NULL, ext_state);
  }
  
  /* Comparator for imposing an order on sm_state_map instances.  */
--- 803,809 ----
  
    for (svalue_set::iterator iter = svals_to_unset.begin ();
         iter != svals_to_unset.end (); ++iter)
!     impl_set_state (*iter, (state_machine::state_t)0, nullptr, ext_state);
  }
  
  /* Comparator for imposing an order on sm_state_map instances.  */
*************** sm_state_map::can_merge_with_p (const sm
*** 922,928 ****
        state_machine::state_t other_state = other.get_state (sval, ext_state);
        if (state_machine::state_t merged_state
  	    = sm.maybe_get_merged_state (this_state, other_state))
! 	(*out)->impl_set_state (sval, merged_state, NULL, ext_state);
        else
  	return false;
      }
--- 913,919 ----
        state_machine::state_t other_state = other.get_state (sval, ext_state);
        if (state_machine::state_t merged_state
  	    = sm.maybe_get_merged_state (this_state, other_state))
! 	(*out)->impl_set_state (sval, merged_state, nullptr, ext_state);
        else
  	return false;
      }
*************** sm_state_map::can_merge_with_p (const sm
*** 936,942 ****
  /* program_state's ctor.  */
  
  program_state::program_state (const extrinsic_state &ext_state)
! : m_region_model (NULL),
    m_checker_states (ext_state.get_num_checkers ()),
    m_valid (true)
  {
--- 927,933 ----
  /* program_state's ctor.  */
  
  program_state::program_state (const extrinsic_state &ext_state)
! : m_region_model (nullptr),
    m_checker_states (ext_state.get_num_checkers ()),
    m_valid (true)
  {
*************** sm_state_map::replay_call_summary (call_
*** 970,977 ****
        const svalue *caller_origin
  	= (summary_origin
  	   ? r.convert_svalue_from_summary (summary_origin)
! 	   : NULL);
!       // caller_origin can be NULL.
        m_map.put (caller_sval, entry_t (kv.second.m_state, caller_origin));
      }
    m_global_state = summary.m_global_state;
--- 961,968 ----
        const svalue *caller_origin
  	= (summary_origin
  	   ? r.convert_svalue_from_summary (summary_origin)
! 	   : nullptr);
!       // caller_origin can be nullptr.
        m_map.put (caller_sval, entry_t (kv.second.m_state, caller_origin));
      }
    m_global_state = summary.m_global_state;
*************** program_state::program_state (program_st
*** 1019,1025 ****
  : m_region_model (other.m_region_model),
    m_checker_states (other.m_checker_states.length ())
  {
!   other.m_region_model = NULL;
  
    int i;
    sm_state_map *smap;
--- 1010,1016 ----
  : m_region_model (other.m_region_model),
    m_checker_states (other.m_checker_states.length ())
  {
!   other.m_region_model = nullptr;
  
    int i;
    sm_state_map *smap;
*************** program_state::dump () const
*** 1188,1194 ****
  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",
--- 1179,1185 ----
  std::unique_ptr<json::object>
  program_state::to_json (const extrinsic_state &ext_state) const
  {
!   auto state_obj = std::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_
*** 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;
--- 1190,1196 ----
  
    /* Provide m_checker_states as an object, using names as keys.  */
    {
!     auto checkers_obj = std::make_unique<json::object> ();
  
      int i;
      sm_state_map *smap;
*************** program_state::make_dump_widget (const t
*** 1237,1242 ****
--- 1228,1251 ----
    return state_widget;
  }
  
+ void
+ program_state::dump_dot (const extrinsic_state &ext_state) const
+ {
+   auto state_graph = make_diagnostic_state_graph (ext_state);
+ 
+   gcc_assert (global_dc);
+   auto logical_loc_mgr = global_dc->get_logical_location_manager ();
+   gcc_assert (logical_loc_mgr);
+ 
+   auto graph = diagnostics::state_graphs::make_dot_graph (*state_graph,
+ 							  *logical_loc_mgr);
+ 
+   pretty_printer pp;
+   dot::writer w (pp);
+   graph->print (w);
+   pp_flush (&pp);
+ }
+ 
  /* Update this program_state to reflect a top-level call to FUN.
     The params will have initial_svalues.  */
  
*************** void
*** 1244,1250 ****
  program_state::push_frame (const extrinsic_state &ext_state ATTRIBUTE_UNUSED,
  			   const function &fun)
  {
!   m_region_model->push_frame (fun, NULL, NULL);
  }
  
  /* Get the current function of this state.  */
--- 1253,1259 ----
  program_state::push_frame (const extrinsic_state &ext_state ATTRIBUTE_UNUSED,
  			   const function &fun)
  {
!   m_region_model->push_frame (fun, nullptr, nullptr, nullptr);
  }
  
  /* Get the current function of this state.  */
*************** program_state::get_current_function () c
*** 1255,1392 ****
    return m_region_model->get_current_function ();
  }
  
- /* Determine if following edge SUCC from ENODE is valid within the graph EG
-    and update this state accordingly in-place.
- 
-    Return true if the edge can be followed, or false otherwise.
- 
-    Check for relevant conditionals and switch-values for conditionals
-    and switch statements, adding the relevant conditions to this state.
-    Push/pop frames for interprocedural edges and update params/returned
-    values.
- 
-    This is the "state" half of exploded_node::on_edge.  */
- 
- bool
- program_state::on_edge (exploded_graph &eg,
- 			exploded_node *enode,
- 			const superedge *succ,
- 			uncertainty_t *uncertainty)
- {
-   class my_path_context : public path_context
-   {
-   public:
-     my_path_context (bool &terminated) : m_terminated (terminated) {}
-     void bifurcate (std::unique_ptr<custom_edge_info>) final override
-     {
-       gcc_unreachable ();
-     }
- 
-     void terminate_path () final override
-     {
-       m_terminated = true;
-     }
- 
-     bool terminate_path_p () const final override
-     {
-       return m_terminated;
-     }
-     bool &m_terminated;
-   };
- 
-   /* Update state.  */
-   const program_point &point = enode->get_point ();
-   const gimple *last_stmt = point.get_supernode ()->get_last_stmt ();
- 
-   /* For conditionals and switch statements, add the
-      relevant conditions (for the specific edge) to new_state;
-      skip edges for which the resulting constraints
-      are impossible.
-      This also updates frame information for call/return superedges.
-      Adding the relevant conditions for the edge could also trigger
-      sm-state transitions (e.g. transitions due to ptrs becoming known
-      to be NULL or non-NULL) */
-   bool terminated = false;
-   my_path_context path_ctxt (terminated);
-   impl_region_model_context ctxt (eg, enode,
- 				  &enode->get_state (),
- 				  this,
- 				  uncertainty, &path_ctxt,
- 				  last_stmt);
-   std::unique_ptr<rejected_constraint> rc;
-   logger * const logger = eg.get_logger ();
-   if (!m_region_model->maybe_update_for_edge (*succ,
- 					      last_stmt,
- 					      &ctxt,
- 					      logger ? &rc : nullptr))
-     {
-       if (logger)
- 	{
- 	  logger->start_log_line ();
- 	  logger->log_partial ("edge to SN: %i is impossible"
- 			       " due to region_model constraint: ",
- 			       succ->m_dest->m_index);
- 	  rc->dump_to_pp (logger->get_printer ());
- 	  logger->end_log_line ();
- 	}
-       return false;
-     }
-   if (terminated)
-     return false;
- 
-   program_state::detect_leaks (enode->get_state (), *this,
- 			       NULL, eg.get_ext_state (),
- 			       &ctxt);
- 
-   return true;
- }
- 
- /* 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,
-                           exploded_node *enode,
-                           const gcall *call_stmt,
-                           uncertainty_t *uncertainty)
- {
-   /* Update state.  */
-   const program_point &point = enode->get_point ();
-   const gimple *last_stmt = point.get_supernode ()->get_last_stmt ();
- 
-   impl_region_model_context ctxt (eg, enode,
-                                   &enode->get_state (),
-                                   this,
-                                   uncertainty,
- 				  NULL,
-                                   last_stmt);
-   m_region_model->update_for_gcall (call_stmt, &ctxt);
- }
- 
- /* 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,
-                                exploded_node *enode,
-                                const gcall *call_stmt,
-                                uncertainty_t *uncertainty)
- {
-   /* Update state.  */
-   const program_point &point = enode->get_point ();
-   const gimple *last_stmt = point.get_supernode ()->get_last_stmt ();
- 
-   impl_region_model_context ctxt (eg, enode,
-                                   &enode->get_state (),
-                                   this,
-                                   uncertainty,
- 				  NULL,
-                                   last_stmt);
-   m_region_model->update_for_return_gcall (call_stmt, &ctxt);
- }
- 
  /* Generate a simpler version of THIS, discarding state that's no longer
     relevant at POINT.
     The idea is that we're more likely to be able to consolidate
--- 1264,1269 ----
*************** program_state::prune_for_point (exploded
*** 1426,1432 ****
  	      const tree ssa_name = node;
  	      const state_purge_per_ssa_name &per_ssa
  		= pm->get_data_for_ssa_name (node);
! 	      if (!per_ssa.needed_at_point_p (point.get_function_point ()))
  		{
  		  /* Don't purge bindings of SSA names to svalues
  		     that have unpurgable sm-state, so that leaks are
--- 1303,1309 ----
  	      const tree ssa_name = node;
  	      const state_purge_per_ssa_name &per_ssa
  		= pm->get_data_for_ssa_name (node);
! 	      if (!per_ssa.needed_at_supernode_p (point.get_supernode ()))
  		{
  		  /* Don't purge bindings of SSA names to svalues
  		     that have unpurgable sm-state, so that leaks are
*************** program_state::prune_for_point (exploded
*** 1440,1446 ****
  		     temporaries keep the value reachable until the frame is
  		     popped.  */
  		  const svalue *sval
! 		    = new_state.m_region_model->get_store_value (reg, NULL);
  		  if (!new_state.can_purge_p (eg.get_ext_state (), sval)
  		      && SSA_NAME_VAR (ssa_name))
  		    {
--- 1317,1323 ----
  		     temporaries keep the value reachable until the frame is
  		     popped.  */
  		  const svalue *sval
! 		    = new_state.m_region_model->get_store_value (reg, nullptr);
  		  if (!new_state.can_purge_p (eg.get_ext_state (), sval)
  		      && SSA_NAME_VAR (ssa_name))
  		    {
*************** program_state::prune_for_point (exploded
*** 1464,1470 ****
  			  || TREE_CODE (node) == RESULT_DECL);
  	      if (const state_purge_per_decl *per_decl
  		  = pm->get_any_data_for_decl (decl))
! 		if (!per_decl->needed_at_point_p (point.get_function_point ()))
  		  {
  		    /* Don't purge bindings of decls if there are svalues
  		       that have unpurgable sm-state within the decl's cluster,
--- 1341,1347 ----
  			  || TREE_CODE (node) == RESULT_DECL);
  	      if (const state_purge_per_decl *per_decl
  		  = pm->get_any_data_for_decl (decl))
! 		if (!per_decl->needed_at_supernode_p (point.get_supernode ()))
  		  {
  		    /* Don't purge bindings of decls if there are svalues
  		       that have unpurgable sm-state within the decl's cluster,
*************** program_state::prune_for_point (exploded
*** 1499,1507 ****
  	  impl_region_model_context ctxt (eg, enode_for_diag,
  					  this,
  					  &new_state,
! 					  uncertainty, NULL,
! 					  point.get_stmt ());
! 	  detect_leaks (*this, new_state, NULL, eg.get_ext_state (), &ctxt);
  	}
      }
  
--- 1376,1384 ----
  	  impl_region_model_context ctxt (eg, enode_for_diag,
  					  this,
  					  &new_state,
! 					  uncertainty,
! 					  nullptr);
! 	  detect_leaks (*this, new_state, nullptr, eg.get_ext_state (), &ctxt);
  	}
      }
  
*************** program_state::can_purge_base_region_p (
*** 1523,1529 ****
  
    for (auto iter : *cluster)
      {
!       const svalue *sval = iter.second;
        if (!can_purge_p (ext_state, sval))
  	return false;
      }
--- 1400,1406 ----
  
    for (auto iter : *cluster)
      {
!       const svalue *sval = iter.m_sval;
        if (!can_purge_p (ext_state, sval))
  	return false;
      }
*************** static void
*** 1594,1600 ****
  log_set_of_svalues (logger *logger, const char *name,
  		    const svalue_set &set)
  {
!   logger->log (name);
    logger->inc_indent ();
    auto_vec<const svalue *> sval_vecs (set.elements ());
    for (svalue_set::iterator iter = set.begin ();
--- 1471,1477 ----
  log_set_of_svalues (logger *logger, const char *name,
  		    const svalue_set &set)
  {
!   logger->log ("%s", name);
    logger->inc_indent ();
    auto_vec<const svalue *> sval_vecs (set.elements ());
    for (svalue_set::iterator iter = set.begin ();
*************** program_state::detect_leaks (const progr
*** 1673,1679 ****
       *might* still be reachable in dst_state.  */
    svalue_set known_src_svalues;
    src_state.m_region_model->get_reachable_svalues (&known_src_svalues,
! 						   NULL, NULL);
    svalue_set maybe_dest_svalues;
    dest_state.m_region_model->get_reachable_svalues (&maybe_dest_svalues,
  						    extra_sval, uncertainty);
--- 1550,1556 ----
       *might* still be reachable in dst_state.  */
    svalue_set known_src_svalues;
    src_state.m_region_model->get_reachable_svalues (&known_src_svalues,
! 						   nullptr, nullptr);
    svalue_set maybe_dest_svalues;
    dest_state.m_region_model->get_reachable_svalues (&maybe_dest_svalues,
  						    extra_sval, uncertainty);
*************** program_state::replay_call_summary (call
*** 1749,1755 ****
  /* Handle calls to "__analyzer_dump_state".  */
  
  void
! program_state::impl_call_analyzer_dump_state (const gcall *call,
  					      const extrinsic_state &ext_state,
  					      region_model_context *ctxt)
  {
--- 1626,1632 ----
  /* Handle calls to "__analyzer_dump_state".  */
  
  void
! program_state::impl_call_analyzer_dump_state (const gcall &call,
  					      const extrinsic_state &ext_state,
  					      region_model_context *ctxt)
  {
*************** program_state::impl_call_analyzer_dump_s
*** 1757,1769 ****
    const char *sm_name = cd.get_arg_string_literal (0);
    if (!sm_name)
      {
!       error_at (call->location, "cannot determine state machine");
        return;
      }
    unsigned sm_idx;
    if (!ext_state.get_sm_idx_by_name (sm_name, &sm_idx))
      {
!       error_at (call->location, "unrecognized state machine %qs", sm_name);
        return;
      }
    const sm_state_map *smap = m_checker_states[sm_idx];
--- 1634,1646 ----
    const char *sm_name = cd.get_arg_string_literal (0);
    if (!sm_name)
      {
!       error_at (call.location, "cannot determine state machine");
        return;
      }
    unsigned sm_idx;
    if (!ext_state.get_sm_idx_by_name (sm_name, &sm_idx))
      {
!       error_at (call.location, "unrecognized state machine %qs", sm_name);
        return;
      }
    const sm_state_map *smap = m_checker_states[sm_idx];
*************** program_state::impl_call_analyzer_dump_s
*** 1775,1781 ****
      sval = cast;
  
    state_machine::state_t state = smap->get_state (sval, ext_state);
!   warning_at (call->location, 0, "state: %qs", state->get_name ());
  }
  
  #if CHECKING_P
--- 1652,1658 ----
      sval = cast;
  
    state_machine::state_t state = smap->get_state (sval, ext_state);
!   warning_at (call.location, 0, "state: %qs", state->get_name ());
  }
  
  #if CHECKING_P
*************** test_sm_state_map ()
*** 1791,1814 ****
    tree y = build_global_decl ("y", integer_type_node);
    tree z = build_global_decl ("z", integer_type_node);
  
!   state_machine *sm = make_malloc_state_machine (NULL);
!   auto_delete_vec <state_machine> checkers;
!   checkers.safe_push (sm);
!   engine eng;
!   extrinsic_state ext_state (checkers, &eng);
    state_machine::state_t start = sm->get_start_state ();
  
    /* Test setting states on svalue_id instances directly.  */
    {
      const state_machine::state test_state_42 ("test state 42", 42);
      const state_machine::state_t TEST_STATE_42 = &test_state_42;
-     region_model_manager mgr;
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, NULL);
!     const svalue *y_sval = model.get_rvalue (y, NULL);
!     const svalue *z_sval = model.get_rvalue (z, NULL);
  
!     sm_state_map map (*sm);
      ASSERT_TRUE (map.is_empty_p ());
      ASSERT_EQ (map.get_state (x_sval, ext_state), start);
  
--- 1668,1692 ----
    tree y = build_global_decl ("y", integer_type_node);
    tree z = build_global_decl ("z", integer_type_node);
  
!   std::unique_ptr<state_machine> sm = make_malloc_state_machine (nullptr);
    state_machine::state_t start = sm->get_start_state ();
+   std::vector<std::unique_ptr<state_machine>> checkers;
+   const state_machine &borrowed_sm = *sm.get ();
+   checkers.push_back (std::move (sm));
+   region_model_manager mgr;
+   engine eng (mgr);
+   extrinsic_state ext_state (std::move (checkers), &eng);
  
    /* Test setting states on svalue_id instances directly.  */
    {
      const state_machine::state test_state_42 ("test state 42", 42);
      const state_machine::state_t TEST_STATE_42 = &test_state_42;
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, nullptr);
!     const svalue *y_sval = model.get_rvalue (y, nullptr);
!     const svalue *z_sval = model.get_rvalue (z, nullptr);
  
!     sm_state_map map (borrowed_sm);
      ASSERT_TRUE (map.is_empty_p ());
      ASSERT_EQ (map.get_state (x_sval, ext_state), start);
  
*************** test_sm_state_map ()
*** 1831,1848 ****
  
    /* Test setting states via equivalence classes.  */
    {
-     region_model_manager mgr;
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, NULL);
!     const svalue *y_sval = model.get_rvalue (y, NULL);
!     const svalue *z_sval = model.get_rvalue (z, NULL);
  
!     sm_state_map map (*sm);
      ASSERT_TRUE (map.is_empty_p ());
      ASSERT_EQ (map.get_state (x_sval, ext_state), start);
      ASSERT_EQ (map.get_state (y_sval, ext_state), start);
  
!     model.add_constraint (x, EQ_EXPR, y, NULL);
  
      /* Setting x to a state should also update y, as they
         are in the same equivalence class.  */
--- 1709,1725 ----
  
    /* Test setting states via equivalence classes.  */
    {
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, nullptr);
!     const svalue *y_sval = model.get_rvalue (y, nullptr);
!     const svalue *z_sval = model.get_rvalue (z, nullptr);
  
!     sm_state_map map (borrowed_sm);
      ASSERT_TRUE (map.is_empty_p ());
      ASSERT_EQ (map.get_state (x_sval, ext_state), start);
      ASSERT_EQ (map.get_state (y_sval, ext_state), start);
  
!     model.add_constraint (x, EQ_EXPR, y, nullptr);
  
      /* Setting x to a state should also update y, as they
         are in the same equivalence class.  */
*************** test_sm_state_map ()
*** 1855,1868 ****
  
    /* Test equality and hashing.  */
    {
-     region_model_manager mgr;
      region_model model (&mgr);
!     const svalue *y_sval = model.get_rvalue (y, NULL);
!     const svalue *z_sval = model.get_rvalue (z, NULL);
  
!     sm_state_map map0 (*sm);
!     sm_state_map map1 (*sm);
!     sm_state_map map2 (*sm);
  
      ASSERT_EQ (map0.hash (), map1.hash ());
      ASSERT_EQ (map0, map1);
--- 1732,1744 ----
  
    /* Test equality and hashing.  */
    {
      region_model model (&mgr);
!     const svalue *y_sval = model.get_rvalue (y, nullptr);
!     const svalue *z_sval = model.get_rvalue (z, nullptr);
  
!     sm_state_map map0 (borrowed_sm);
!     sm_state_map map1 (borrowed_sm);
!     sm_state_map map2 (borrowed_sm);
  
      ASSERT_EQ (map0.hash (), map1.hash ());
      ASSERT_EQ (map0, map1);
*************** test_sm_state_map ()
*** 1883,1908 ****
      const state_machine::state_t TEST_STATE_2 = &test_state_2;
      const state_machine::state test_state_3 ("test state 3", 3);
      const state_machine::state_t TEST_STATE_3 = &test_state_3;
!     sm_state_map map0 (*sm);
!     sm_state_map map1 (*sm);
!     sm_state_map map2 (*sm);
  
      ASSERT_EQ (map0.hash (), map1.hash ());
      ASSERT_EQ (map0, map1);
  
-     region_model_manager mgr;
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, NULL);
!     const svalue *y_sval = model.get_rvalue (y, NULL);
!     const svalue *z_sval = model.get_rvalue (z, NULL);
  
!     map1.impl_set_state (x_sval, TEST_STATE_2, NULL, ext_state);
!     map1.impl_set_state (y_sval, TEST_STATE_3, NULL, ext_state);
!     map1.impl_set_state (z_sval, TEST_STATE_2, NULL, ext_state);
  
!     map2.impl_set_state (z_sval, TEST_STATE_2, NULL, ext_state);
!     map2.impl_set_state (y_sval, TEST_STATE_3, NULL, ext_state);
!     map2.impl_set_state (x_sval, TEST_STATE_2, NULL, ext_state);
  
      ASSERT_EQ (map1.hash (), map2.hash ());
      ASSERT_EQ (map1, map2);
--- 1759,1783 ----
      const state_machine::state_t TEST_STATE_2 = &test_state_2;
      const state_machine::state test_state_3 ("test state 3", 3);
      const state_machine::state_t TEST_STATE_3 = &test_state_3;
!     sm_state_map map0 (borrowed_sm);
!     sm_state_map map1 (borrowed_sm);
!     sm_state_map map2 (borrowed_sm);
  
      ASSERT_EQ (map0.hash (), map1.hash ());
      ASSERT_EQ (map0, map1);
  
      region_model model (&mgr);
!     const svalue *x_sval = model.get_rvalue (x, nullptr);
!     const svalue *y_sval = model.get_rvalue (y, nullptr);
!     const svalue *z_sval = model.get_rvalue (z, nullptr);
  
!     map1.impl_set_state (x_sval, TEST_STATE_2, nullptr, ext_state);
!     map1.impl_set_state (y_sval, TEST_STATE_3, nullptr, ext_state);
!     map1.impl_set_state (z_sval, TEST_STATE_2, nullptr, ext_state);
  
!     map2.impl_set_state (z_sval, TEST_STATE_2, nullptr, ext_state);
!     map2.impl_set_state (y_sval, TEST_STATE_3, nullptr, ext_state);
!     map2.impl_set_state (x_sval, TEST_STATE_2, nullptr, ext_state);
  
      ASSERT_EQ (map1.hash (), map2.hash ());
      ASSERT_EQ (map1, map2);
*************** test_program_state_1 ()
*** 1920,1946 ****
       malloc sm-state, pointing to a region on the heap.  */
    tree p = build_global_decl ("p", ptr_type_node);
  
!   state_machine *sm = make_malloc_state_machine (NULL);
    const state_machine::state_t UNCHECKED_STATE
      = sm->get_state_by_name ("unchecked");
-   auto_delete_vec <state_machine> checkers;
-   checkers.safe_push (sm);
  
!   engine eng;
!   extrinsic_state ext_state (checkers, &eng);
!   region_model_manager *mgr = eng.get_model_manager ();
    program_state s (ext_state);
    region_model *model = s.m_region_model;
    const svalue *size_in_bytes
!     = mgr->get_or_create_unknown_svalue (size_type_node);
    const region *new_reg
!     = model->get_or_create_region_for_heap_alloc (size_in_bytes, NULL);
!   const svalue *ptr_sval = mgr->get_ptr_svalue (ptr_type_node, new_reg);
!   model->set_value (model->get_lvalue (p, NULL),
! 		    ptr_sval, NULL);
    sm_state_map *smap = s.m_checker_states[0];
  
!   smap->impl_set_state (ptr_sval, UNCHECKED_STATE, NULL, ext_state);
    ASSERT_EQ (smap->get_state (ptr_sval, ext_state), UNCHECKED_STATE);
  }
  
--- 1795,1819 ----
       malloc sm-state, pointing to a region on the heap.  */
    tree p = build_global_decl ("p", ptr_type_node);
  
!   std::unique_ptr<state_machine> sm = make_malloc_state_machine (nullptr);
    const state_machine::state_t UNCHECKED_STATE
      = sm->get_state_by_name ("unchecked");
  
!   region_model_manager mgr;
!   engine eng (mgr);
!   extrinsic_state ext_state (std::move (sm), &eng);
    program_state s (ext_state);
    region_model *model = s.m_region_model;
    const svalue *size_in_bytes
!     = mgr.get_or_create_unknown_svalue (size_type_node);
    const region *new_reg
!     = model->get_or_create_region_for_heap_alloc (size_in_bytes, nullptr);
!   const svalue *ptr_sval = mgr.get_ptr_svalue (ptr_type_node, new_reg);
!   model->set_value (model->get_lvalue (p, nullptr),
! 		    ptr_sval, nullptr);
    sm_state_map *smap = s.m_checker_states[0];
  
!   smap->impl_set_state (ptr_sval, UNCHECKED_STATE, nullptr, ext_state);
    ASSERT_EQ (smap->get_state (ptr_sval, ext_state), UNCHECKED_STATE);
  }
  
*************** test_program_state_2 ()
*** 1955,1969 ****
  
    tree string_cst_ptr = build_string_literal (4, "foo");
  
!   auto_delete_vec <state_machine> checkers;
!   engine eng;
!   extrinsic_state ext_state (checkers, &eng);
  
    program_state s (ext_state);
    region_model *model = s.m_region_model;
!   const region *p_reg = model->get_lvalue (p, NULL);
!   const svalue *str_sval = model->get_rvalue (string_cst_ptr, NULL);
!   model->set_value (p_reg, str_sval, NULL);
  }
  
  /* Verify that program_states with identical sm-state can be merged,
--- 1828,1843 ----
  
    tree string_cst_ptr = build_string_literal (4, "foo");
  
!   std::vector<std::unique_ptr<state_machine>> checkers;
!   region_model_manager mgr;
!   engine eng (mgr);
!   extrinsic_state ext_state (std::move (checkers), &eng);
  
    program_state s (ext_state);
    region_model *model = s.m_region_model;
!   const region *p_reg = model->get_lvalue (p, nullptr);
!   const svalue *str_sval = model->get_rvalue (string_cst_ptr, nullptr);
!   model->set_value (p_reg, str_sval, nullptr);
  }
  
  /* Verify that program_states with identical sm-state can be merged,
*************** test_program_state_merging ()
*** 1976,1987 ****
       malloc sm-state, pointing to a region on the heap.  */
    tree p = build_global_decl ("p", ptr_type_node);
  
!   engine eng;
!   region_model_manager *mgr = eng.get_model_manager ();
!   program_point point (program_point::origin (*mgr));
!   auto_delete_vec <state_machine> checkers;
!   checkers.safe_push (make_malloc_state_machine (NULL));
!   extrinsic_state ext_state (checkers, &eng);
  
    program_state s0 (ext_state);
    uncertainty_t uncertainty;
--- 1850,1860 ----
       malloc sm-state, pointing to a region on the heap.  */
    tree p = build_global_decl ("p", ptr_type_node);
  
!   region_model_manager mgr;
!   engine eng (mgr);
!   program_point point (program_point::origin (mgr));
!   extrinsic_state ext_state (make_malloc_state_machine (nullptr),
! 			     &eng);
  
    program_state s0 (ext_state);
    uncertainty_t uncertainty;
*************** test_program_state_merging ()
*** 1989,2010 ****
  
    region_model *model0 = s0.m_region_model;
    const svalue *size_in_bytes
!     = mgr->get_or_create_unknown_svalue (size_type_node);
    const region *new_reg
!     = model0->get_or_create_region_for_heap_alloc (size_in_bytes, NULL);
!   const svalue *ptr_sval = mgr->get_ptr_svalue (ptr_type_node, new_reg);
    model0->set_value (model0->get_lvalue (p, &ctxt),
  		     ptr_sval, &ctxt);
    sm_state_map *smap = s0.m_checker_states[0];
    const state_machine::state test_state ("test state", 0);
    const state_machine::state_t TEST_STATE = &test_state;
!   smap->impl_set_state (ptr_sval, TEST_STATE, NULL, ext_state);
    ASSERT_EQ (smap->get_state (ptr_sval, ext_state), TEST_STATE);
  
    model0->canonicalize ();
  
    /* Verify that canonicalization preserves sm-state.  */
!   ASSERT_EQ (smap->get_state (model0->get_rvalue (p, NULL), ext_state),
  	     TEST_STATE);
  
    /* Make a copy of the program_state.  */
--- 1862,1883 ----
  
    region_model *model0 = s0.m_region_model;
    const svalue *size_in_bytes
!     = mgr.get_or_create_unknown_svalue (size_type_node);
    const region *new_reg
!     = model0->get_or_create_region_for_heap_alloc (size_in_bytes, nullptr);
!   const svalue *ptr_sval = mgr.get_ptr_svalue (ptr_type_node, new_reg);
    model0->set_value (model0->get_lvalue (p, &ctxt),
  		     ptr_sval, &ctxt);
    sm_state_map *smap = s0.m_checker_states[0];
    const state_machine::state test_state ("test state", 0);
    const state_machine::state_t TEST_STATE = &test_state;
!   smap->impl_set_state (ptr_sval, TEST_STATE, nullptr, ext_state);
    ASSERT_EQ (smap->get_state (ptr_sval, ext_state), TEST_STATE);
  
    model0->canonicalize ();
  
    /* Verify that canonicalization preserves sm-state.  */
!   ASSERT_EQ (smap->get_state (model0->get_rvalue (p, nullptr), ext_state),
  	     TEST_STATE);
  
    /* Make a copy of the program_state.  */
*************** test_program_state_merging ()
*** 2021,2027 ****
    /* Verify that the merged state has the sm-state for "p".  */
    region_model *merged_model = merged.m_region_model;
    sm_state_map *merged_smap = merged.m_checker_states[0];
!   ASSERT_EQ (merged_smap->get_state (merged_model->get_rvalue (p, NULL),
  				     ext_state),
  	     TEST_STATE);
  
--- 1894,1900 ----
    /* Verify that the merged state has the sm-state for "p".  */
    region_model *merged_model = merged.m_region_model;
    sm_state_map *merged_smap = merged.m_checker_states[0];
!   ASSERT_EQ (merged_smap->get_state (merged_model->get_rvalue (p, nullptr),
  				     ext_state),
  	     TEST_STATE);
  
*************** test_program_state_merging ()
*** 2030,2036 ****
    merged.validate (ext_state);
  
    /* Verify that the merged state still has the sm-state for "p".  */
!   ASSERT_EQ (merged_smap->get_state (merged_model->get_rvalue (p, NULL),
  				     ext_state),
  	     TEST_STATE);
  
--- 1903,1909 ----
    merged.validate (ext_state);
  
    /* Verify that the merged state still has the sm-state for "p".  */
!   ASSERT_EQ (merged_smap->get_state (merged_model->get_rvalue (p, nullptr),
  				     ext_state),
  	     TEST_STATE);
  
*************** test_program_state_merging ()
*** 2044,2055 ****
  static void
  test_program_state_merging_2 ()
  {
!   engine eng;
!   region_model_manager *mgr = eng.get_model_manager ();
!   program_point point (program_point::origin (*mgr));
!   auto_delete_vec <state_machine> checkers;
!   checkers.safe_push (make_signal_state_machine (NULL));
!   extrinsic_state ext_state (checkers, &eng);
  
    const state_machine::state test_state_0 ("test state 0", 0);
    const state_machine::state test_state_1 ("test state 1", 1);
--- 1917,1926 ----
  static void
  test_program_state_merging_2 ()
  {
!   region_model_manager mgr;
!   engine eng (mgr);
!   program_point point (program_point::origin (mgr));
!   extrinsic_state ext_state (make_signal_state_machine (nullptr), &eng);
  
    const state_machine::state test_state_0 ("test state 0", 0);
    const state_machine::state test_state_1 ("test state 1", 1);
diff -Nrcpad gcc-15.2.0/gcc/analyzer/program-state.h gcc-16.1.0-RC-20260423/gcc/analyzer/program-state.h
*** gcc-15.2.0/gcc/analyzer/program-state.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/program-state.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for representing the state of interest at a given path of analysis.
!    Copyright (C) 2019-2026 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,30 ----
  #define GCC_ANALYZER_PROGRAM_STATE_H
  
  #include "text-art/widget.h"
+ #include "text-art/tree-widget.h"
+ 
+ #include "analyzer/store.h"
  
  namespace ana {
  
*************** namespace ana {
*** 30,40 ****
  class extrinsic_state
  {
  public:
!   extrinsic_state (auto_delete_vec <state_machine> &checkers,
  		   engine *eng,
! 		   logger *logger = NULL)
!   : m_checkers (checkers), m_logger (logger), m_engine (eng)
    {
    }
  
    const state_machine &get_sm (int idx) const
--- 33,55 ----
  class extrinsic_state
  {
  public:
!   extrinsic_state (std::vector<std::unique_ptr<state_machine>> &&checkers,
  		   engine *eng,
! 		   logger *logger = nullptr)
!   : m_checkers (std::move (checkers)),
!     m_logger (logger),
!     m_engine (eng)
!   {
!   }
! 
!   // For use in selftests that use just one state machine
!   extrinsic_state (std::unique_ptr<state_machine> sm,
! 		   engine *eng,
! 		   logger *logger = nullptr)
!   : m_logger (logger),
!     m_engine (eng)
    {
+     m_checkers.push_back (std::move (sm));
    }
  
    const state_machine &get_sm (int idx) const
*************** public:
*** 47,53 ****
      return m_checkers[idx]->get_name ();
    }
  
!   unsigned get_num_checkers () const { return m_checkers.length (); }
  
    logger *get_logger () const { return m_logger; }
  
--- 62,68 ----
      return m_checkers[idx]->get_name ();
    }
  
!   unsigned get_num_checkers () const { return m_checkers.size (); }
  
    logger *get_logger () const { return m_logger; }
  
*************** public:
*** 64,70 ****
  
  private:
    /* The state machines.  */
!   auto_delete_vec <state_machine> &m_checkers;
  
    logger *m_logger;
    engine *m_engine;
--- 79,85 ----
  
  private:
    /* The state machines.  */
!   std::vector<std::unique_ptr<state_machine>> m_checkers;
  
    logger *m_logger;
    engine *m_engine;
*************** public:
*** 81,87 ****
    {
      /* Default ctor needed by hash_map::empty.  */
      entry_t ()
!     : m_state (0), m_origin (NULL)
      {
      }
  
--- 96,102 ----
    {
      /* Default ctor needed by hash_map::empty.  */
      entry_t ()
!     : m_state (0), m_origin (nullptr)
      {
      }
  
*************** public:
*** 231,236 ****
--- 246,260 ----
    void dump (const extrinsic_state &ext_state, bool simple) const;
    void dump () const;
  
+   std::unique_ptr<diagnostics::digraphs::digraph>
+   make_diagnostic_state_graph (const extrinsic_state &ext_state) const;
+ 
+   void
+   dump_sarif (const extrinsic_state &ext_state) const;
+ 
+   void
+   dump_dot (const extrinsic_state &ext_state) const;
+ 
    std::unique_ptr<json::object>
    to_json (const extrinsic_state &ext_state) const;
  
*************** public:
*** 240,261 ****
    void push_frame (const extrinsic_state &ext_state, const function &fun);
    const function * get_current_function () const;
  
-   void push_call (exploded_graph &eg,
- 		  exploded_node *enode,
- 		  const gcall *call_stmt,
- 		  uncertainty_t *uncertainty);
- 
-   void returning_call (exploded_graph &eg,
- 		       exploded_node *enode,
- 		       const gcall *call_stmt,
- 		       uncertainty_t *uncertainty);
- 
- 
-   bool on_edge (exploded_graph &eg,
- 		exploded_node *enode,
- 		const superedge *succ,
- 		uncertainty_t *uncertainty);
- 
    program_state prune_for_point (exploded_graph &eg,
  				 const program_point &point,
  				 exploded_node *enode_for_diag,
--- 264,269 ----
*************** public:
*** 298,304 ****
    bool replay_call_summary (call_summary_replay &r,
  			    const program_state &summary);
  
!   void impl_call_analyzer_dump_state (const gcall *call,
  				      const extrinsic_state &ext_state,
  				      region_model_context *ctxt);
  
--- 306,312 ----
    bool replay_call_summary (call_summary_replay &r,
  			    const program_state &summary);
  
!   void impl_call_analyzer_dump_state (const gcall &call,
  				      const extrinsic_state &ext_state,
  				      region_model_context *ctxt);
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ranges.cc gcc-16.1.0-RC-20260423/gcc/analyzer/ranges.cc
*** gcc-15.2.0/gcc/analyzer/ranges.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ranges.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,51 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
! #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
! #include "options.h"
  #include "analyzer/supergraph.h"
- #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
--- 18,30 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "sbitmap.h"
  #include "ordered-hash-map.h"
! 
! #include "analyzer/analyzer-logging.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
*************** along with GCC; see the file COPYING3.
*** 53,59 ****
  #include "analyzer/constraint-manager.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/ranges.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 32,37 ----
*************** symbolic_byte_range::dump (bool simple,
*** 158,164 ****
  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;
--- 136,142 ----
  std::unique_ptr<json::value>
  symbolic_byte_range::to_json () const
  {
!   auto obj = std::make_unique<json::object> ();
    obj->set ("start", m_start.to_json ());
    obj->set ("size", m_size.to_json ());
    return obj;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/ranges.h gcc-16.1.0-RC-20260423/gcc/analyzer/ranges.h
*** gcc-15.2.0/gcc/analyzer/ranges.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/ranges.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Symbolic offsets and ranges.
!    Copyright (C) 2023-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/reachability.h gcc-16.1.0-RC-20260423/gcc/analyzer/reachability.h
*** gcc-15.2.0/gcc/analyzer/reachability.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/reachability.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Digraph reachability.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/record-layout.cc gcc-16.1.0-RC-20260423/gcc/analyzer/record-layout.cc
*** gcc-15.2.0/gcc/analyzer/record-layout.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/record-layout.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Implementation of class record_layout.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,35 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "diagnostic-core.h"
! #include "diagnostic.h"
  #include "tree-diagnostic.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/record-layout.h"
  
  #if ENABLE_ANALYZER
--- 18,27 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "tree-diagnostic.h"
! 
  #include "analyzer/record-layout.h"
  
  #if ENABLE_ANALYZER
*************** namespace ana {
*** 38,44 ****
  
  /* class record_layout.  */
  
! record_layout::record_layout (tree record_type)
  {
    gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
  
--- 30,36 ----
  
  /* class record_layout.  */
  
! record_layout::record_layout (const_tree record_type)
  {
    gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
  
*************** record_layout::get_item_at (bit_offset_t
*** 94,100 ****
    FOR_EACH_VEC_ELT (m_items, i, it)
      if (it->contains_p (offset))
        return it;
!   return NULL;
  }
  
  /* Subroutine of ctor.  Add padding item to NEXT_OFFSET if necessary.  */
--- 86,92 ----
    FOR_EACH_VEC_ELT (m_items, i, it)
      if (it->contains_p (offset))
        return it;
!   return nullptr;
  }
  
  /* Subroutine of ctor.  Add padding item to NEXT_OFFSET if necessary.  */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/record-layout.h gcc-16.1.0-RC-20260423/gcc/analyzer/record-layout.h
*** gcc-15.2.0/gcc/analyzer/record-layout.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/record-layout.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Declaration of class record_layout.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 36,42 ****
    {
    public:
      item (const bit_range &br,
! 	  tree field,
  	  bool is_padding)
      : m_bit_range (br),
        m_field (field),
--- 36,42 ----
    {
    public:
      item (const bit_range &br,
! 	  const_tree field,
  	  bool is_padding)
      : m_bit_range (br),
        m_field (field),
*************** public:
*** 69,85 ****
      }
  
      bit_range m_bit_range;
!     tree m_field;
      bool m_is_padding;
    };
  
!   record_layout (tree record_type);
  
    void dump_to_pp (pretty_printer *pp) const;
    DEBUG_FUNCTION void dump () const;
  
    const record_layout::item *get_item_at (bit_offset_t offset) const;
  
  private:
    void maybe_pad_to (bit_offset_t next_offset);
  
--- 69,88 ----
      }
  
      bit_range m_bit_range;
!     const_tree m_field;
      bool m_is_padding;
    };
  
!   record_layout (const_tree record_type);
  
    void dump_to_pp (pretty_printer *pp) const;
    DEBUG_FUNCTION void dump () const;
  
    const record_layout::item *get_item_at (bit_offset_t offset) const;
  
+   auto begin () const { return m_items.begin (); }
+   auto end () const { return m_items.end (); }
+ 
  private:
    void maybe_pad_to (bit_offset_t next_offset);
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model-asm.cc gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-asm.cc
*** gcc-15.2.0/gcc/analyzer/region-model-asm.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-asm.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Handling inline asm in the analyzer.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,43 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "pretty-print.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
- #include "options.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/region-model-reachability.h"
- #include "stmt.h"
  
  #if ENABLE_ANALYZER
  
--- 18,33 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "stmt.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/region-model-reachability.h"
  
  #if ENABLE_ANALYZER
  
*************** deterministic_p (const gasm *asm_stmt)
*** 129,135 ****
  void
  region_model::on_asm_stmt (const gasm *stmt, region_model_context *ctxt)
  {
!   logger *logger = ctxt ? ctxt->get_logger () : NULL;
    LOG_SCOPE (logger);
  
    const unsigned noutputs = gimple_asm_noutputs (stmt);
--- 119,125 ----
  void
  region_model::on_asm_stmt (const gasm *stmt, region_model_context *ctxt)
  {
!   logger *logger = ctxt ? ctxt->get_logger () : nullptr;
    LOG_SCOPE (logger);
  
    const unsigned noutputs = gimple_asm_noutputs (stmt);
*************** region_model::on_asm_stmt (const gasm *s
*** 181,187 ****
  	 no point in going further.  */
        constraint = constraints[i];
        if (!parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				    &allows_mem, &allows_reg, &is_inout))
  	{
  	  if (logger)
  	    logger->log ("error parsing constraint for output %i: %qs",
--- 171,178 ----
  	 no point in going further.  */
        constraint = constraints[i];
        if (!parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				    &allows_mem, &allows_reg, &is_inout,
! 				    nullptr))
  	{
  	  if (logger)
  	    logger->log ("error parsing constraint for output %i: %qs",
*************** region_model::on_asm_stmt (const gasm *s
*** 214,221 ****
        const char *constraint = constraints[i + noutputs];
        bool allows_reg, allows_mem;
        if (! parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				    constraints.address (),
! 				    &allows_mem, &allows_reg))
  	{
  	  if (logger)
  	    logger->log ("error parsing constraint for input %i: %qs",
--- 205,212 ----
        const char *constraint = constraints[i + noutputs];
        bool allows_reg, allows_mem;
        if (! parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				    constraints.address (), &allows_mem,
! 				    &allows_reg, nullptr))
  	{
  	  if (logger)
  	    logger->log ("error parsing constraint for input %i: %qs",
*************** region_model::on_asm_stmt (const gasm *s
*** 226,232 ****
  
        tree src_expr = input_tvec[i];
        const svalue *src_sval = get_rvalue (src_expr, ctxt);
!       check_for_poison (src_sval, src_expr, NULL, ctxt);
        input_svals.quick_push (src_sval);
        reachable_regs.handle_sval (src_sval);
  
--- 217,223 ----
  
        tree src_expr = input_tvec[i];
        const svalue *src_sval = get_rvalue (src_expr, ctxt);
!       check_for_poison (src_sval, src_expr, nullptr, ctxt);
        input_svals.quick_push (src_sval);
        reachable_regs.handle_sval (src_sval);
  
*************** region_model::on_asm_stmt (const gasm *s
*** 269,275 ****
  	  || !base_reg->tracked_p ())
  	continue;
  
!       binding_cluster *cluster = m_store.get_or_create_cluster (base_reg);
        cluster->on_asm (stmt, m_mgr->get_store_manager (),
  		       conjured_purge (this, ctxt));
      }
--- 260,268 ----
  	  || !base_reg->tracked_p ())
  	continue;
  
!       binding_cluster *cluster
! 	= m_store.get_or_create_cluster (*m_mgr->get_store_manager (),
! 					 base_reg);
        cluster->on_asm (stmt, m_mgr->get_store_manager (),
  		       conjured_purge (this, ctxt));
      }
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model-manager.cc gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-manager.cc
*** gcc-15.2.0/gcc/analyzer/region-model-manager.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-manager.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,51 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
  #include "fold-const.h"
- #include "tree-pretty-print.h"
- #include "bitmap.h"
- #include "analyzer/analyzer.h"
- #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "analyzer/supergraph.h"
  #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
--- 18,33 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "fold-const.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "analyzer/supergraph.h"
  #include "sbitmap.h"
+ #include "target.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
*************** region_model_manager::region_model_manag
*** 67,73 ****
    m_root_region (alloc_symbol_id ()),
    m_stack_region (alloc_symbol_id (), &m_root_region),
    m_heap_region (alloc_symbol_id (), &m_root_region),
!   m_unknown_NULL (NULL),
    m_checking_feasibility (false),
    m_max_complexity (0, 0),
    m_code_region (alloc_symbol_id (), &m_root_region),
--- 49,55 ----
    m_root_region (alloc_symbol_id ()),
    m_stack_region (alloc_symbol_id (), &m_root_region),
    m_heap_region (alloc_symbol_id (), &m_root_region),
!   m_unknown_NULL (nullptr),
    m_checking_feasibility (false),
    m_max_complexity (0, 0),
    m_code_region (alloc_symbol_id (), &m_root_region),
*************** region_model_manager::get_or_create_null
*** 277,283 ****
    return get_or_create_int_cst (pointer_type, 0);
  }
  
! /* Return the svalue * for a unknown_svalue for TYPE (which can be NULL),
     creating it if necessary.
     The unknown_svalue instances are reused, based on pointer equality
     of the types  */
--- 259,265 ----
    return get_or_create_int_cst (pointer_type, 0);
  }
  
! /* Return the svalue * for a unknown_svalue for TYPE (which can be NULL_TREE),
     creating it if necessary.
     The unknown_svalue instances are reused, based on pointer equality
     of the types  */
*************** region_model_manager::get_or_create_init
*** 325,331 ****
  						   bool check_poisoned)
  {
    if (!reg->can_have_initial_svalue_p () && check_poisoned)
!     return get_or_create_poisoned_svalue (POISON_KIND_UNINIT,
  					  reg->get_type ());
  
    /* The initial value of a cast is a cast of the initial value.  */
--- 307,313 ----
  						   bool check_poisoned)
  {
    if (!reg->can_have_initial_svalue_p () && check_poisoned)
!     return get_or_create_poisoned_svalue (poison_kind::uninit,
  					  reg->get_type ());
  
    /* The initial value of a cast is a cast of the initial value.  */
*************** region_model_manager::get_ptr_svalue (tr
*** 423,431 ****
    return sval;
  }
  
  /* Subroutine of region_model_manager::get_or_create_unaryop.
     Attempt to fold the inputs and return a simpler svalue *.
!    Otherwise, return NULL.  */
  
  const svalue *
  region_model_manager::maybe_fold_unaryop (tree type, enum tree_code op,
--- 405,438 ----
    return sval;
  }
  
+ /* Subroutine of region_model_manager::maybe_fold_unaryop
+    when the arg is a binop_svalue.
+    Invert comparisons e.g. "!(x == y)" => "x != y".
+    Otherwise, return nullptr.  */
+ 
+ const svalue *
+ region_model_manager::
+ maybe_invert_comparison_in_unaryop (tree result_type,
+ 				    const binop_svalue *binop)
+ {
+   if (TREE_CODE_CLASS (binop->get_op ()) == tcc_comparison)
+     {
+       enum tree_code inv_op
+ 	= invert_tree_comparison (binop->get_op (),
+ 				  HONOR_NANS (binop->get_type ()));
+       if (inv_op != ERROR_MARK)
+ 	return get_or_create_cast
+ 	  (result_type,
+ 	   get_or_create_binop (binop->get_type (), inv_op,
+ 				binop->get_arg0 (),
+ 				binop->get_arg1 ()));
+     }
+   return nullptr;
+ }
+ 
  /* Subroutine of region_model_manager::get_or_create_unaryop.
     Attempt to fold the inputs and return a simpler svalue *.
!    Otherwise, return nullptr.  */
  
  const svalue *
  region_model_manager::maybe_fold_unaryop (tree type, enum tree_code op,
*************** region_model_manager::maybe_fold_unaryop
*** 488,503 ****
        {
  	/* Invert comparisons e.g. "!(x == y)" => "x != y".  */
  	if (const binop_svalue *binop = arg->dyn_cast_binop_svalue ())
! 	  if (TREE_CODE_CLASS (binop->get_op ()) == tcc_comparison)
! 	    {
! 	      enum tree_code inv_op
! 		= invert_tree_comparison (binop->get_op (),
! 					  HONOR_NANS (binop->get_type ()));
! 	      if (inv_op != ERROR_MARK)
! 		return get_or_create_binop (binop->get_type (), inv_op,
! 					    binop->get_arg0 (),
! 					    binop->get_arg1 ());
! 	    }
        }
        break;
      case NEGATE_EXPR:
--- 495,503 ----
        {
  	/* Invert comparisons e.g. "!(x == y)" => "x != y".  */
  	if (const binop_svalue *binop = arg->dyn_cast_binop_svalue ())
! 	  if (const svalue *folded
! 		= maybe_invert_comparison_in_unaryop (type, binop))
! 	    return folded;
        }
        break;
      case NEGATE_EXPR:
*************** region_model_manager::maybe_fold_unaryop
*** 511,540 ****
  	    return unaryop->get_arg ();
        }
        break;
      }
  
    /* Constants.  */
!   if (tree cst = arg->maybe_get_constant ())
!     if (tree result = fold_unary (op, type, cst))
!       {
! 	if (CONSTANT_CLASS_P (result))
! 	  return get_or_create_constant_svalue (result);
  
! 	/* fold_unary can return casts of constants; try to handle them.  */
! 	if (op != NOP_EXPR
! 		 && type
! 		 && TREE_CODE (result) == NOP_EXPR
! 		 && CONSTANT_CLASS_P (TREE_OPERAND (result, 0)))
! 	  {
! 	    const svalue *inner_cst
! 	      = get_or_create_constant_svalue (TREE_OPERAND (result, 0));
! 	    return get_or_create_cast (type,
! 				       get_or_create_cast (TREE_TYPE (result),
! 							   inner_cst));
! 	  }
!       }
  
!   return NULL;
  }
  
  /* Return the svalue * for an unary operation OP on ARG with a result of
--- 511,553 ----
  	    return unaryop->get_arg ();
        }
        break;
+     case BIT_NOT_EXPR:
+       {
+ 	/* Invert comparisons for e.g. "~(x == y)" => "x != y".  */
+ 	if (type
+ 	    && TREE_CODE (type) == BOOLEAN_TYPE
+ 	    && arg->get_type ()
+ 	    && TREE_CODE (arg->get_type ()) == BOOLEAN_TYPE)
+ 	  if (const binop_svalue *binop = arg->dyn_cast_binop_svalue ())
+ 	    if (const svalue *folded
+ 		= maybe_invert_comparison_in_unaryop (type, binop))
+ 	      return folded;
+       }
+       break;
      }
  
    /* Constants.  */
!   if (type)
!     if (tree cst = arg->maybe_get_constant ())
!       if (tree result = fold_unary (op, type, cst))
! 	{
! 	  if (CONSTANT_CLASS_P (result))
! 	    return get_or_create_constant_svalue (result);
  
! 	  /* fold_unary can return casts of constants; try to handle them.  */
! 	  if (op != NOP_EXPR
! 	      && TREE_CODE (result) == NOP_EXPR
! 	      && CONSTANT_CLASS_P (TREE_OPERAND (result, 0)))
! 	    {
! 	      const svalue *inner_cst
! 		= get_or_create_constant_svalue (TREE_OPERAND (result, 0));
! 	      return get_or_create_cast (type,
! 					 get_or_create_cast (TREE_TYPE (result),
! 							     inner_cst));
! 	    }
! 	}
  
!   return nullptr;
  }
  
  /* Return the svalue * for an unary operation OP on ARG with a result of
*************** region_model_manager::get_or_create_cast
*** 612,618 ****
  
     If COMPOUND_SVAL has a value for the appropriate bits, return it,
     shifted accordingly.
!    Otherwise return NULL.  */
  
  const svalue *
  region_model_manager::
--- 625,631 ----
  
     If COMPOUND_SVAL has a value for the appropriate bits, return it,
     shifted accordingly.
!    Otherwise return nullptr.  */
  
  const svalue *
  region_model_manager::
*************** maybe_undo_optimize_bit_field_compare (t
*** 624,630 ****
    if (!type)
      return nullptr;
    if (!INTEGRAL_TYPE_P (type))
!     return NULL;
  
    const binding_map &map = compound_sval->get_map ();
    unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (cst);
--- 637,643 ----
    if (!type)
      return nullptr;
    if (!INTEGRAL_TYPE_P (type))
!     return nullptr;
  
    const binding_map &map = compound_sval->get_map ();
    unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (cst);
*************** maybe_undo_optimize_bit_field_compare (t
*** 632,638 ****
       compound_sval has a value for those bits.  */
    bit_range bits (0, 0);
    if (!bit_range::from_mask (mask, &bits))
!     return NULL;
  
    bit_range bound_bits (bits);
    if (BYTES_BIG_ENDIAN)
--- 645,651 ----
       compound_sval has a value for those bits.  */
    bit_range bits (0, 0);
    if (!bit_range::from_mask (mask, &bits))
!     return nullptr;
  
    bit_range bound_bits (bits);
    if (BYTES_BIG_ENDIAN)
*************** maybe_undo_optimize_bit_field_compare (t
*** 642,648 ****
      = get_store_manager ()->get_concrete_binding (bound_bits);
    const svalue *sval = map.get (conc);
    if (!sval)
!     return NULL;
  
    /* We have a value;
       shift it by the correct number of bits.  */
--- 655,661 ----
      = get_store_manager ()->get_concrete_binding (bound_bits);
    const svalue *sval = map.get (conc);
    if (!sval)
!     return nullptr;
  
    /* We have a value;
       shift it by the correct number of bits.  */
*************** maybe_undo_optimize_bit_field_compare (t
*** 659,665 ****
  
  /* Subroutine of region_model_manager::get_or_create_binop.
     Attempt to fold the inputs and return a simpler svalue *.
!    Otherwise, return NULL.  */
  
  const svalue *
  region_model_manager::maybe_fold_binop (tree type, enum tree_code op,
--- 672,678 ----
  
  /* Subroutine of region_model_manager::get_or_create_binop.
     Attempt to fold the inputs and return a simpler svalue *.
!    Otherwise, return nullptr.  */
  
  const svalue *
  region_model_manager::maybe_fold_binop (tree type, enum tree_code op,
*************** region_model_manager::maybe_fold_binop (
*** 687,693 ****
    if ((type && FLOAT_TYPE_P (type))
        || (arg0->get_type () && FLOAT_TYPE_P (arg0->get_type ()))
        || (arg1->get_type () && FLOAT_TYPE_P (arg1->get_type ())))
!     return NULL;
  
    switch (op)
      {
--- 700,706 ----
    if ((type && FLOAT_TYPE_P (type))
        || (arg0->get_type () && FLOAT_TYPE_P (arg0->get_type ()))
        || (arg1->get_type () && FLOAT_TYPE_P (arg1->get_type ())))
!     return nullptr;
  
    switch (op)
      {
*************** region_model_manager::maybe_fold_binop (
*** 698,703 ****
--- 711,727 ----
        /* (VAL + 0) -> VAL.  */
        if (cst1 && zerop (cst1))
  	return get_or_create_cast (type, arg0);
+       /* X + (-X) -> 0.  */
+       if (const unaryop_svalue *unary_op = arg1->dyn_cast_unaryop_svalue ())
+ 	if (unary_op->get_op () == NEGATE_EXPR
+ 	    && unary_op->get_arg () == arg0
+ 	    && type && (INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type)))
+ 	  return get_or_create_int_cst (type, 0);
+       /* X + (Y - X) -> Y.  */
+       if (const binop_svalue *bin_op = arg1->dyn_cast_binop_svalue ())
+ 	if (bin_op->get_op () == MINUS_EXPR)
+ 	  if (bin_op->get_arg1 () == arg0)
+ 	    return get_or_create_cast (type, bin_op->get_arg0 ());
        break;
      case MINUS_EXPR:
        /* (VAL - 0) -> VAL.  */
*************** region_model_manager::maybe_fold_binop (
*** 799,804 ****
--- 823,846 ----
  	    return get_or_create_cast (type, arg1);
  	}
        break;
+ 
+     case TRUNC_DIV_EXPR:
+     case CEIL_DIV_EXPR:
+     case FLOOR_DIV_EXPR:
+     case ROUND_DIV_EXPR:
+     case TRUNC_MOD_EXPR:
+     case CEIL_MOD_EXPR:
+     case FLOOR_MOD_EXPR:
+     case ROUND_MOD_EXPR:
+     case RDIV_EXPR:
+     case EXACT_DIV_EXPR:
+       {
+ 	value_range arg1_vr;
+ 	if (arg1->maybe_get_value_range (arg1_vr))
+ 	  if (arg1_vr.zero_p ())
+ 	    return get_or_create_unknown_svalue (type);
+       }
+       break;
      }
  
    /* For associative ops, fold "(X op CST_A) op CST_B)" to
*************** region_model_manager::maybe_fold_binop (
*** 916,922 ****
  
    /* etc.  */
  
!   return NULL;
  }
  
  /* Return the svalue * for an binary operation OP on ARG0 and ARG1
--- 958,964 ----
  
    /* etc.  */
  
!   return nullptr;
  }
  
  /* Return the svalue * for an binary operation OP on ARG0 and ARG1
*************** region_model_manager::get_or_create_bino
*** 951,957 ****
  }
  
  /* Subroutine of region_model_manager::get_or_create_sub_svalue.
!    Return a folded svalue, or NULL.  */
  
  const svalue *
  region_model_manager::maybe_fold_sub_svalue (tree type,
--- 993,999 ----
  }
  
  /* Subroutine of region_model_manager::get_or_create_sub_svalue.
!    Return a folded svalue, or nullptr.  */
  
  const svalue *
  region_model_manager::maybe_fold_sub_svalue (tree type,
*************** region_model_manager::maybe_fold_sub_sva
*** 962,967 ****
--- 1004,1015 ----
    if (!parent_svalue->can_have_associated_state_p ())
      return get_or_create_unknown_svalue (type);
  
+   /* If we have a subvalue of a zero constant, it's zero.  */
+   if (tree cst = parent_svalue->maybe_get_constant ())
+     if (TREE_CODE (cst) == INTEGER_CST)
+       if (zerop (cst))
+ 	return get_or_create_cast (type, parent_svalue);
+ 
    /* If we have a subregion of a zero-fill, it's zero.  */
    if (const unaryop_svalue *unary
        = parent_svalue->dyn_cast_unaryop_svalue ())
*************** region_model_manager::maybe_fold_sub_sva
*** 1032,1038 ****
      if (type)
        return get_or_create_cast (type, repeated_sval->get_inner_svalue ());
  
!   return NULL;
  }
  
  /* Return the svalue * for extracting a subvalue of type TYPE from
--- 1080,1086 ----
      if (type)
        return get_or_create_cast (type, repeated_sval->get_inner_svalue ());
  
!   return nullptr;
  }
  
  /* Return the svalue * for extracting a subvalue of type TYPE from
*************** region_model_manager::get_or_create_sub_
*** 1058,1064 ****
  }
  
  /* Subroutine of region_model_manager::get_or_create_repeated_svalue.
!    Return a folded svalue, or NULL.  */
  
  const svalue *
  region_model_manager::maybe_fold_repeated_svalue (tree type,
--- 1106,1112 ----
  }
  
  /* Subroutine of region_model_manager::get_or_create_repeated_svalue.
!    Return a folded svalue, or nullptr.  */
  
  const svalue *
  region_model_manager::maybe_fold_repeated_svalue (tree type,
*************** region_model_manager::maybe_fold_repeate
*** 1072,1098 ****
  
    /* If INNER_SVALUE is the same size as OUTER_SIZE,
       turn into simply a cast.  */
!   if (tree cst_outer_num_bytes = outer_size->maybe_get_constant ())
!     {
!       HOST_WIDE_INT num_bytes_inner_svalue
! 	= int_size_in_bytes (inner_svalue->get_type ());
!       if (num_bytes_inner_svalue != -1)
! 	if (num_bytes_inner_svalue
! 	    == (HOST_WIDE_INT)tree_to_uhwi (cst_outer_num_bytes))
! 	  {
! 	    if (type)
! 	      return get_or_create_cast (type, inner_svalue);
! 	    else
! 	      return inner_svalue;
! 	  }
!     }
  
    /* Handle zero-fill of a specific type.  */
    if (tree cst = inner_svalue->maybe_get_constant ())
      if (zerop (cst) && type)
        return get_or_create_cast (type, inner_svalue);
  
!   return NULL;
  }
  
  /* Return the svalue * of type TYPE in which INNER_SVALUE is repeated
--- 1120,1147 ----
  
    /* If INNER_SVALUE is the same size as OUTER_SIZE,
       turn into simply a cast.  */
!   if (inner_svalue->get_type ())
!     if (tree cst_outer_num_bytes = outer_size->maybe_get_constant ())
!       {
! 	HOST_WIDE_INT num_bytes_inner_svalue
! 	  = int_size_in_bytes (inner_svalue->get_type ());
! 	if (num_bytes_inner_svalue != -1)
! 	  if (num_bytes_inner_svalue
! 	      == (HOST_WIDE_INT)tree_to_uhwi (cst_outer_num_bytes))
! 	    {
! 	      if (type)
! 		return get_or_create_cast (type, inner_svalue);
! 	      else
! 		return inner_svalue;
! 	    }
!       }
  
    /* Handle zero-fill of a specific type.  */
    if (tree cst = inner_svalue->maybe_get_constant ())
      if (zerop (cst) && type)
        return get_or_create_cast (type, inner_svalue);
  
!   return nullptr;
  }
  
  /* Return the svalue * of type TYPE in which INNER_SVALUE is repeated
*************** region_model_manager::maybe_fold_bits_wi
*** 1286,1292 ****
  	}
  	break;
        }
!   return NULL;
  }
  
  /* Return the svalue * of type TYPE for extracting BITS from INNER_SVALUE,
--- 1335,1341 ----
  	}
  	break;
        }
!   return nullptr;
  }
  
  /* Return the svalue * of type TYPE for extracting BITS from INNER_SVALUE,
*************** region_model_manager::get_or_create_unme
*** 1330,1351 ****
  }
  
  /* Return the svalue * of type TYPE for the merger of value BASE_SVAL
!    and ITER_SVAL at POINT, creating it if necessary.  */
  
  const svalue *
  region_model_manager::
  get_or_create_widening_svalue (tree type,
! 			       const function_point &point,
  			       const svalue *base_sval,
  			       const svalue *iter_sval)
  {
    gcc_assert (base_sval->get_kind () != SK_WIDENING);
    gcc_assert (iter_sval->get_kind () != SK_WIDENING);
!   widening_svalue::key_t key (type, point, base_sval, iter_sval);
    if (widening_svalue **slot = m_widening_values_map.get (key))
      return *slot;
    widening_svalue *widening_sval
!     = new widening_svalue (alloc_symbol_id (), type, point, base_sval,
  			   iter_sval);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (widening_sval);
    m_widening_values_map.put (key, widening_sval);
--- 1379,1400 ----
  }
  
  /* Return the svalue * of type TYPE for the merger of value BASE_SVAL
!    and ITER_SVAL at SNODE, creating it if necessary.  */
  
  const svalue *
  region_model_manager::
  get_or_create_widening_svalue (tree type,
! 			       const supernode *snode,
  			       const svalue *base_sval,
  			       const svalue *iter_sval)
  {
    gcc_assert (base_sval->get_kind () != SK_WIDENING);
    gcc_assert (iter_sval->get_kind () != SK_WIDENING);
!   widening_svalue::key_t key (type, snode, base_sval, iter_sval);
    if (widening_svalue **slot = m_widening_values_map.get (key))
      return *slot;
    widening_svalue *widening_sval
!     = new widening_svalue (alloc_symbol_id (), type, snode, base_sval,
  			   iter_sval);
    RETURN_UNKNOWN_IF_TOO_COMPLEX (widening_sval);
    m_widening_values_map.put (key, widening_sval);
*************** region_model_manager::get_or_create_conj
*** 1413,1419 ****
  }
  
  /* Subroutine of region_model_manager::get_or_create_asm_output_svalue.
!    Return a folded svalue, or NULL.  */
  
  const svalue *
  region_model_manager::
--- 1462,1468 ----
  }
  
  /* Subroutine of region_model_manager::get_or_create_asm_output_svalue.
!    Return a folded svalue, or nullptr.  */
  
  const svalue *
  region_model_manager::
*************** maybe_fold_asm_output_svalue (tree type,
*** 1425,1431 ****
      if (iter->get_kind () == SK_UNKNOWN)
        return get_or_create_unknown_svalue (type);
  
!   return NULL;
  }
  
  /* Return the svalue * of type TYPE for OUTPUT_IDX of the deterministic
--- 1474,1480 ----
      if (iter->get_kind () == SK_UNKNOWN)
        return get_or_create_unknown_svalue (type);
  
!   return nullptr;
  }
  
  /* Return the svalue * of type TYPE for OUTPUT_IDX of the deterministic
*************** get_or_create_const_fn_result_svalue (tr
*** 1513,1519 ****
  
  /* 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,
--- 1562,1568 ----
  
  /* 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 nullptr if unsuccessful.  */
  
  const svalue *
  region_model_manager::maybe_get_char_from_cst (tree data_cst,
*************** get_string_cst_size (const_tree string_c
*** 1545,1551 ****
  
  /* Given STRING_CST, a STRING_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_string_cst (tree string_cst,
--- 1594,1600 ----
  
  /* Given STRING_CST, a STRING_CST and BYTE_OFFSET_CST a constant,
     attempt to get the character at that offset, returning either
!    the svalue for the character constant, or nullptr if unsuccessful.  */
  
  const svalue *
  region_model_manager::maybe_get_char_from_string_cst (tree string_cst,
*************** region_model_manager::maybe_get_char_fro
*** 1564,1570 ****
        if (compare_constants (byte_offset_cst,
  			     GE_EXPR,
  			     get_string_cst_size (string_cst)).is_true ())
! 	return NULL;
  
        int char_val;
        if (compare_tree_int (byte_offset_cst,
--- 1613,1619 ----
        if (compare_constants (byte_offset_cst,
  			     GE_EXPR,
  			     get_string_cst_size (string_cst)).is_true ())
! 	return nullptr;
  
        int char_val;
        if (compare_tree_int (byte_offset_cst,
*************** region_model_manager::maybe_get_char_fro
*** 1579,1590 ****
  	= build_int_cst_type (TREE_TYPE (TREE_TYPE (string_cst)), char_val);
        return get_or_create_constant_svalue (char_cst);
      }
!   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,
--- 1628,1639 ----
  	= build_int_cst_type (TREE_TYPE (TREE_TYPE (string_cst)), char_val);
        return get_or_create_constant_svalue (char_cst);
      }
!   return nullptr;
  }
  
  /* 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 nullptr if unsuccessful.  */
  
  const svalue *
  region_model_manager::maybe_get_char_from_raw_data_cst (tree raw_data_cst,
*************** region_model_manager::get_unknown_symbol
*** 1675,1680 ****
--- 1724,1731 ----
  const region *
  region_model_manager::get_field_region (const region *parent, tree field)
  {
+   gcc_assert (parent);
+   gcc_assert (field);
    gcc_assert (TREE_CODE (field) == FIELD_DECL);
  
    /* (*UNKNOWN_PTR).field is (*UNKNOWN_PTR_OF_&FIELD_TYPE).  */
*************** region_model_manager::get_offset_region
*** 1739,1745 ****
        const svalue *sval_x = parent_offset_reg->get_byte_offset ();
        const svalue *sval_sum
  	= get_or_create_binop (byte_offset->get_type (),
! 			       PLUS_EXPR, sval_x, byte_offset);
        return get_offset_region (parent->get_parent_region (), type, sval_sum);
      }
  
--- 1790,1796 ----
        const svalue *sval_x = parent_offset_reg->get_byte_offset ();
        const svalue *sval_sum
  	= get_or_create_binop (byte_offset->get_type (),
! 			       POINTER_PLUS_EXPR, sval_x, byte_offset);
        return get_offset_region (parent->get_parent_region (), type, sval_sum);
      }
  
*************** region_model_manager::get_cast_region (c
*** 1813,1819 ****
  }
  
  /* Return the frame_region for call to FUN from CALLING_FRAME, creating it
!    if necessary.  CALLING_FRAME may be NULL.  */
  
  const frame_region *
  region_model_manager::get_frame_region (const frame_region *calling_frame,
--- 1864,1870 ----
  }
  
  /* Return the frame_region for call to FUN from CALLING_FRAME, creating it
!    if necessary.  CALLING_FRAME may be nullptr.  */
  
  const frame_region *
  region_model_manager::get_frame_region (const frame_region *calling_frame,
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model-manager.h gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-manager.h
*** gcc-15.2.0/gcc/analyzer/region-model-manager.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-manager.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Consolidation of svalues and regions.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** namespace ana {
*** 31,37 ****
  class region_model_manager
  {
  public:
!   region_model_manager (logger *logger = NULL);
    ~region_model_manager ();
  
    unsigned get_num_symbols () const { return m_next_symbol_id; }
--- 31,37 ----
  class region_model_manager
  {
  public:
!   region_model_manager (logger *logger = nullptr);
    ~region_model_manager ();
  
    unsigned get_num_symbols () const { return m_next_symbol_id; }
*************** public:
*** 73,79 ****
  					   const svalue *inner_svalue);
    const svalue *get_or_create_unmergeable (const svalue *arg);
    const svalue *get_or_create_widening_svalue (tree type,
! 					       const function_point &point,
  					       const svalue *base_svalue,
  					       const svalue *iter_svalue);
    const svalue *get_or_create_compound_svalue (tree type,
--- 73,79 ----
  					   const svalue *inner_svalue);
    const svalue *get_or_create_unmergeable (const svalue *arg);
    const svalue *get_or_create_widening_svalue (tree type,
! 					       const supernode *snode,
  					       const svalue *base_svalue,
  					       const svalue *iter_svalue);
    const svalue *get_or_create_compound_svalue (tree type,
*************** private:
*** 181,186 ****
--- 181,189 ----
    bool too_complex_p (const complexity &c) const;
    bool reject_if_too_complex (svalue *sval);
  
+   const svalue *
+   maybe_invert_comparison_in_unaryop (tree type,
+ 				      const binop_svalue *binop);
    const svalue *maybe_fold_unaryop (tree type, enum tree_code op,
  				    const svalue *arg);
    const svalue *maybe_fold_sub_svalue (tree type,
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model-reachability.cc gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-reachability.cc
*** gcc-15.2.0/gcc/analyzer/region-model-reachability.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-reachability.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,54 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
! #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
! #include "options.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/region-model-reachability.h"
- #include "diagnostic.h"
- #include "tree-diagnostic.h"
  
  #if ENABLE_ANALYZER
  
--- 18,35 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "ordered-hash-map.h"
! #include "diagnostic.h"
! #include "tree-diagnostic.h"
! 
! #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/region-model-reachability.h"
  
  #if ENABLE_ANALYZER
  
*************** reachable_regions::init_cluster (const r
*** 87,93 ****
    if (const symbolic_region *sym_reg = base_reg->dyn_cast_symbolic_region ())
      {
        const svalue *ptr = sym_reg->get_pointer ();
!       if (ptr->implicitly_live_p (NULL, m_model))
  	add (base_reg, true);
        switch (ptr->get_kind ())
  	{
--- 68,74 ----
    if (const symbolic_region *sym_reg = base_reg->dyn_cast_symbolic_region ())
      {
        const svalue *ptr = sym_reg->get_pointer ();
!       if (ptr->implicitly_live_p (nullptr, m_model))
  	add (base_reg, true);
        switch (ptr->get_kind ())
  	{
*************** reachable_regions::init_cluster (const r
*** 103,109 ****
  	    const region *other_base_reg = init_sval_reg->get_base_region ();
  	    const binding_cluster *other_cluster
  	      = m_store->get_cluster (other_base_reg);
! 	    if (other_cluster == NULL
  		|| !other_cluster->touched_p ())
  	      add (base_reg, true);
  	  }
--- 84,90 ----
  	    const region *other_base_reg = init_sval_reg->get_base_region ();
  	    const binding_cluster *other_cluster
  	      = m_store->get_cluster (other_base_reg);
! 	    if (other_cluster == nullptr
  		|| !other_cluster->touched_p ())
  	      add (base_reg, true);
  	  }
*************** reachable_regions::add (const region *re
*** 150,156 ****
    if (binding_cluster *bind_cluster = m_store->get_cluster (base_reg))
      bind_cluster->for_each_value (handle_sval_cb, this);
    else
!     handle_sval (m_model->get_store_value (reg, NULL));
  }
  
  void
--- 131,137 ----
    if (binding_cluster *bind_cluster = m_store->get_cluster (base_reg))
      bind_cluster->for_each_value (handle_sval_cb, this);
    else
!     handle_sval (m_model->get_store_value (reg, nullptr));
  }
  
  void
*************** reachable_regions::handle_sval (const sv
*** 188,197 ****
    if (const compound_svalue *compound_sval
        = sval->dyn_cast_compound_svalue ())
      {
!       for (compound_svalue::iterator_t iter = compound_sval->begin ();
  	   iter != compound_sval->end (); ++iter)
  	{
! 	  const svalue *iter_sval = (*iter).second;
  	  handle_sval (iter_sval);
  	}
      }
--- 169,178 ----
    if (const compound_svalue *compound_sval
        = sval->dyn_cast_compound_svalue ())
      {
!       for (auto iter = compound_sval->begin ();
  	   iter != compound_sval->end (); ++iter)
  	{
! 	  const svalue *iter_sval = iter.get_svalue ();
  	  handle_sval (iter_sval);
  	}
      }
*************** reachable_regions::handle_parm (const sv
*** 254,263 ****
    if (const compound_svalue *compound_sval
        = sval->dyn_cast_compound_svalue ())
      {
!       for (compound_svalue::iterator_t iter = compound_sval->begin ();
  	   iter != compound_sval->end (); ++iter)
  	{
! 	  const svalue *iter_sval = (*iter).second;
  	  handle_sval (iter_sval);
  	}
      }
--- 235,244 ----
    if (const compound_svalue *compound_sval
        = sval->dyn_cast_compound_svalue ())
      {
!       for (auto iter = compound_sval->begin ();
  	   iter != compound_sval->end (); ++iter)
  	{
! 	  const svalue *iter_sval = iter.get_svalue ();
  	  handle_sval (iter_sval);
  	}
      }
*************** reachable_regions::mark_escaped_clusters
*** 278,284 ****
         iter != m_mutable_base_regs.end (); ++iter)
      {
        const region *base_reg = *iter;
!       m_store->mark_as_escaped (base_reg);
  
        /* If we have a function that's escaped, potentially add
  	 it to the worklist.  */
--- 259,266 ----
         iter != m_mutable_base_regs.end (); ++iter)
      {
        const region *base_reg = *iter;
!       store_manager *store_mgr = m_model->get_manager ()->get_store_manager ();
!       m_store->mark_as_escaped (*store_mgr, base_reg);
  
        /* If we have a function that's escaped, potentially add
  	 it to the worklist.  */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model-reachability.h gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-reachability.h
*** gcc-15.2.0/gcc/analyzer/region-model-reachability.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model-reachability.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Finding reachable regions and values.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model.cc gcc-16.1.0-RC-20260423/gcc/analyzer/region-model.cc
*** gcc-15.2.0/gcc/analyzer/region-model.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,94 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
- #include "config.h"
  #define INCLUDE_ALGORITHM
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
  #include "options.h"
  #include "cgraph.h"
! #include "tree-dfa.h"
  #include "stringpool.h"
! #include "convert.h"
  #include "target.h"
! #include "fold-const.h"
  #include "tree-pretty-print.h"
! #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"
- #include "options.h"
- #include "cgraph.h"
- #include "cfg.h"
  #include "analyzer/supergraph.h"
- #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
- #include "diagnostic-event-id.h"
- #include "analyzer/sm.h"
- #include "diagnostic-event-id.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/region-model-reachability.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/program-state.h"
  #include "analyzer/call-summary.h"
- #include "stor-layout.h"
- #include "attribs.h"
- #include "tree-object-size.h"
- #include "gimple-ssa.h"
- #include "tree-phinodes.h"
- #include "tree-ssa-operands.h"
- #include "ssa-iterators.h"
- #include "calls.h"
- #include "is-a.h"
- #include "gcc-rich-location.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/checker-path.h"
  #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
  
  namespace ana {
  
- auto_vec<pop_frame_callback> region_model::pop_frame_callbacks;
- 
  /* Dump T to PP in language-independent form, for debugging/logging/dumping
     purposes.  */
  
--- 18,79 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
  #define INCLUDE_ALGORITHM
! #include "analyzer/common.h"
! 
! #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
! #include "cfg.h"
! #include "sbitmap.h"
! #include "diagnostics/event-id.h"
! #include "stor-layout.h"
  #include "stringpool.h"
! #include "attribs.h"
! #include "tree-object-size.h"
! #include "gimple-ssa.h"
! #include "tree-phinodes.h"
! #include "tree-ssa-operands.h"
! #include "ssa-iterators.h"
  #include "target.h"
! #include "calls.h"
! #include "is-a.h"
! #include "gcc-rich-location.h"
! #include "gcc-urlifier.h"
! #include "diagnostics/sarif-sink.h"
  #include "tree-pretty-print.h"
! #include "fold-const.h"
  #include "selftest-tree.h"
! #include "context.h"
! #include "channels.h"
! #include "value-relation.h"
! #include "range-op.h"
! 
! #include "text-art/tree-widget.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/constraint-manager.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/region-model-reachability.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/program-state.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/feasible-graph.h"
  #include "analyzer/record-layout.h"
! #include "analyzer/function-set.h"
  
  #if ENABLE_ANALYZER
  
  namespace ana {
  
  /* Dump T to PP in language-independent form, for debugging/logging/dumping
     purposes.  */
  
*************** region_to_value_map::operator== (const r
*** 176,182 ****
        const region *reg = iter.first;
        const svalue *sval = iter.second;
        const svalue * const *other_slot = other.get (reg);
!       if (other_slot == NULL)
  	return false;
        if (sval != *other_slot)
  	return false;
--- 161,167 ----
        const region *reg = iter.first;
        const svalue *sval = iter.second;
        const svalue * const *other_slot = other.get (reg);
!       if (other_slot == nullptr)
  	return false;
        if (sval != *other_slot)
  	return false;
*************** region_to_value_map::dump (bool simple)
*** 235,241 ****
  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)
--- 220,226 ----
  std::unique_ptr<json::object>
  region_to_value_map::to_json () const
  {
!   auto map_obj = std::make_unique<json::object> ();
  
    auto_vec<const region *> regs;
    for (iterator iter = begin (); iter != end (); ++iter)
*************** region_to_value_map::purge_state_involvi
*** 332,343 ****
      m_hash_map.remove (iter);
  }
  
  /* class region_model.  */
  
  /* Ctor for region_model: construct an "empty" model.  */
  
  region_model::region_model (region_model_manager *mgr)
! : m_mgr (mgr), m_store (), m_current_frame (NULL),
    m_dynamic_extents ()
  {
    m_constraints = new constraint_manager (mgr);
--- 317,413 ----
      m_hash_map.remove (iter);
  }
  
+ // struct exception_node
+ 
+ bool
+ exception_node::operator== (const exception_node &other) const
+ {
+   return (m_exception_sval == other.m_exception_sval
+ 	  && m_typeinfo_sval == other.m_typeinfo_sval
+ 	  && m_destructor_sval == other.m_destructor_sval);
+ }
+ 
+ void
+ exception_node::dump_to_pp (pretty_printer *pp,
+ 			    bool simple) const
+ {
+   pp_printf (pp, "{exception: ");
+   m_exception_sval->dump_to_pp (pp, simple);
+   pp_string (pp, ", typeinfo: ");
+   m_typeinfo_sval->dump_to_pp (pp, simple);
+   pp_string (pp, ", destructor: ");
+   m_destructor_sval->dump_to_pp (pp, simple);
+   pp_string (pp, "}");
+ }
+ 
+ void
+ exception_node::dump (FILE *fp, bool simple) const
+ {
+   tree_dump_pretty_printer pp (fp);
+   dump_to_pp (&pp, simple);
+   pp_newline (&pp);
+ }
+ 
+ /* Dump a multiline representation of this model to stderr.  */
+ 
+ DEBUG_FUNCTION void
+ exception_node::dump (bool simple) const
+ {
+   dump (stderr, simple);
+ }
+ 
+ DEBUG_FUNCTION void
+ exception_node::dump () const
+ {
+   text_art::dump (*this);
+ }
+ 
+ std::unique_ptr<json::object>
+ exception_node::to_json () const
+ {
+   auto obj = std::make_unique<json::object> ();
+   obj->set ("exception", m_exception_sval->to_json ());
+   obj->set ("typeinfo", m_typeinfo_sval->to_json ());
+   obj->set ("destructor", m_destructor_sval->to_json ());
+   return obj;
+ }
+ 
+ std::unique_ptr<text_art::tree_widget>
+ exception_node::make_dump_widget (const text_art::dump_widget_info &dwi) const
+ {
+   using text_art::tree_widget;
+   std::unique_ptr<tree_widget> w
+     (tree_widget::from_fmt (dwi, nullptr, "Exception Node"));
+ 
+   w->add_child (m_exception_sval->make_dump_widget (dwi, "exception"));
+   w->add_child (m_typeinfo_sval->make_dump_widget (dwi, "typeinfo"));
+   w->add_child (m_destructor_sval->make_dump_widget (dwi, "destructor"));
+ 
+   return w;
+ }
+ 
+ tree
+ exception_node::maybe_get_type () const
+ {
+   return m_typeinfo_sval->maybe_get_type_from_typeinfo ();
+ }
+ 
+ void
+ exception_node::add_to_reachable_regions (reachable_regions &regs) const
+ {
+   regs.handle_sval (m_exception_sval);
+   regs.handle_sval (m_typeinfo_sval);
+   regs.handle_sval (m_destructor_sval);
+ }
+ 
  /* class region_model.  */
  
  /* Ctor for region_model: construct an "empty" model.  */
  
  region_model::region_model (region_model_manager *mgr)
! : m_mgr (mgr), m_store (), m_current_frame (nullptr),
!   m_thrown_exceptions_stack (),
!   m_caught_exceptions_stack (),
    m_dynamic_extents ()
  {
    m_constraints = new constraint_manager (mgr);
*************** region_model::region_model (const region
*** 349,354 ****
--- 419,426 ----
  : m_mgr (other.m_mgr), m_store (other.m_store),
    m_constraints (new constraint_manager (*other.m_constraints)),
    m_current_frame (other.m_current_frame),
+   m_thrown_exceptions_stack (other.m_thrown_exceptions_stack),
+   m_caught_exceptions_stack (other.m_caught_exceptions_stack),
    m_dynamic_extents (other.m_dynamic_extents)
  {
  }
*************** region_model::operator= (const region_mo
*** 375,380 ****
--- 447,455 ----
  
    m_current_frame = other.m_current_frame;
  
+   m_thrown_exceptions_stack = other.m_thrown_exceptions_stack;
+   m_caught_exceptions_stack = other.m_caught_exceptions_stack;
+ 
    m_dynamic_extents = other.m_dynamic_extents;
  
    return *this;
*************** region_model::operator== (const region_m
*** 401,406 ****
--- 476,486 ----
    if (m_current_frame != other.m_current_frame)
      return false;
  
+   if (m_thrown_exceptions_stack != other.m_thrown_exceptions_stack)
+     return false;
+   if (m_caught_exceptions_stack != other.m_caught_exceptions_stack)
+     return false;
+ 
    if (m_dynamic_extents != other.m_dynamic_extents)
      return false;
  
*************** void
*** 427,433 ****
  region_model::dump_to_pp (pretty_printer *pp, bool simple,
  			  bool multiline) const
  {
!   /* Dump stack.  */
    pp_printf (pp, "stack depth: %i", get_stack_depth ());
    if (multiline)
      pp_newline (pp);
--- 507,513 ----
  region_model::dump_to_pp (pretty_printer *pp, bool simple,
  			  bool multiline) const
  {
!   /* Dump frame stack.  */
    pp_printf (pp, "stack depth: %i", get_stack_depth ());
    if (multiline)
      pp_newline (pp);
*************** region_model::dump_to_pp (pretty_printer
*** 448,453 ****
--- 528,577 ----
    if (!multiline)
      pp_string (pp, "}");
  
+   /* Dump exception stacks.  */
+   if (m_thrown_exceptions_stack.size () > 0)
+     {
+       pp_printf (pp, "thrown exceptions: %i", (int)m_thrown_exceptions_stack.size ());
+       if (multiline)
+ 	pp_newline (pp);
+       else
+ 	pp_string (pp, " {");
+       for (size_t idx = 0; idx < m_thrown_exceptions_stack.size (); ++idx)
+ 	{
+ 	  if (multiline)
+ 	    pp_string (pp, "  ");
+ 	  else if (idx > 0)
+ 	    pp_string (pp, ", ");
+ 	  pp_printf (pp, "exception (index %i): ", (int)idx);
+ 	  m_thrown_exceptions_stack[idx].dump_to_pp (pp, simple);
+ 	  if (multiline)
+ 	    pp_newline (pp);
+ 	}
+       if (!multiline)
+ 	pp_string (pp, "}");
+     }
+   if (m_caught_exceptions_stack.size () > 0)
+     {
+       pp_printf (pp, "caught exceptions: %i", (int)m_caught_exceptions_stack.size ());
+       if (multiline)
+ 	pp_newline (pp);
+       else
+ 	pp_string (pp, " {");
+       for (size_t idx = 0; idx < m_caught_exceptions_stack.size (); ++idx)
+ 	{
+ 	  if (multiline)
+ 	    pp_string (pp, "  ");
+ 	  else if (idx > 0)
+ 	    pp_string (pp, ", ");
+ 	  pp_printf (pp, "exception (index %i): ", (int)idx);
+ 	  m_caught_exceptions_stack[idx].dump_to_pp (pp, simple);
+ 	  if (multiline)
+ 	    pp_newline (pp);
+ 	}
+       if (!multiline)
+ 	pp_string (pp, "}");
+     }
+ 
    /* Dump store.  */
    if (!multiline)
      pp_string (pp, ", {");
*************** region_model::debug () const
*** 515,525 ****
  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)
      model_obj->set ("current_frame", m_current_frame->to_json ());
    model_obj->set ("dynamic_extents", m_dynamic_extents.to_json ());
    return model_obj;
  }
--- 639,660 ----
  std::unique_ptr<json::object>
  region_model::to_json () const
  {
!   auto model_obj = std::make_unique<json::object> ();
    model_obj->set ("store", m_store.to_json ());
    model_obj->set ("constraints", m_constraints->to_json ());
    if (m_current_frame)
      model_obj->set ("current_frame", m_current_frame->to_json ());
+ 
+   auto thrown_exceptions_arr = std::make_unique<json::array> ();
+   for (auto &node : m_thrown_exceptions_stack)
+     thrown_exceptions_arr->append (node.to_json ());
+   model_obj->set ("thrown_exception_stack", std::move (thrown_exceptions_arr));
+ 
+   auto caught_exceptions_arr = std::make_unique<json::array> ();
+   for (auto &node : m_caught_exceptions_stack)
+     caught_exceptions_arr->append (node.to_json ());
+   model_obj->set ("caught_exception_stack", std::move (caught_exceptions_arr));
+ 
    model_obj->set ("dynamic_extents", m_dynamic_extents.to_json ());
    return model_obj;
  }
*************** region_model::make_dump_widget (const te
*** 543,548 ****
--- 678,703 ----
        m_current_frame->dump_to_pp (pp, simple);
        model_widget->add_child (tree_widget::make (dwi, pp));
      }
+ 
+   if (m_thrown_exceptions_stack.size () > 0)
+     {
+       auto thrown_exceptions_widget
+ 	= tree_widget::make (dwi, "Thrown Exceptions");
+       for (auto &thrown_exception : m_thrown_exceptions_stack)
+ 	thrown_exceptions_widget->add_child
+ 	  (thrown_exception.make_dump_widget (dwi));
+       model_widget->add_child (std::move (thrown_exceptions_widget));
+     }
+   if (m_caught_exceptions_stack.size () > 0)
+     {
+       auto caught_exceptions_widget
+ 	= tree_widget::make (dwi, "Caught Exceptions");
+       for (auto &caught_exception : m_caught_exceptions_stack)
+ 	caught_exceptions_widget->add_child
+ 	  (caught_exception.make_dump_widget (dwi));
+       model_widget->add_child (std::move (caught_exceptions_widget));
+     }
+ 
    model_widget->add_child
      (m_store.make_dump_widget (dwi,
  			       m_mgr->get_store_manager ()));
*************** public:
*** 606,612 ****
  
    bool use_of_uninit_p () const final override
    {
!     return m_pkind == POISON_KIND_UNINIT;
    }
  
    bool operator== (const poisoned_value_diagnostic &other) const
--- 761,767 ----
  
    bool use_of_uninit_p () const final override
    {
!     return m_pkind == poison_kind::uninit;
    }
  
    bool operator== (const poisoned_value_diagnostic &other) const
*************** public:
*** 622,633 ****
        {
        default:
  	gcc_unreachable ();
!       case POISON_KIND_UNINIT:
  	return OPT_Wanalyzer_use_of_uninitialized_value;
!       case POISON_KIND_FREED:
!       case POISON_KIND_DELETED:
  	return OPT_Wanalyzer_use_after_free;
!       case POISON_KIND_POPPED_STACK:
  	return OPT_Wanalyzer_use_of_pointer_in_stale_stack_frame;
        }
    }
--- 777,788 ----
        {
        default:
  	gcc_unreachable ();
!       case poison_kind::uninit:
  	return OPT_Wanalyzer_use_of_uninitialized_value;
!       case poison_kind::freed:
!       case poison_kind::deleted:
  	return OPT_Wanalyzer_use_after_free;
!       case poison_kind::popped_stack:
  	return OPT_Wanalyzer_use_of_pointer_in_stale_stack_frame;
        }
    }
*************** public:
*** 640,667 ****
        {
        default:
  	gcc_unreachable ();
!       case POISON_KIND_UNINIT:
  	{
  	  ctxt.add_cwe (457); /* "CWE-457: Use of Uninitialized Variable".  */
  	  return ctxt.warn ("use of uninitialized value %qE",
  			    m_expr);
  	}
  	break;
!       case POISON_KIND_FREED:
  	{
  	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
  	  return ctxt.warn ("use after %<free%> of %qE",
  			    m_expr);
  	}
  	break;
!       case POISON_KIND_DELETED:
  	{
  	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
  	  return ctxt.warn ("use after %<delete%> of %qE",
  			    m_expr);
  	}
  	break;
!       case POISON_KIND_POPPED_STACK:
  	{
  	  /* TODO: which CWE?  */
  	  return ctxt.warn
--- 795,822 ----
        {
        default:
  	gcc_unreachable ();
!       case poison_kind::uninit:
  	{
  	  ctxt.add_cwe (457); /* "CWE-457: Use of Uninitialized Variable".  */
  	  return ctxt.warn ("use of uninitialized value %qE",
  			    m_expr);
  	}
  	break;
!       case poison_kind::freed:
  	{
  	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
  	  return ctxt.warn ("use after %<free%> of %qE",
  			    m_expr);
  	}
  	break;
!       case poison_kind::deleted:
  	{
  	  ctxt.add_cwe (416); /* "CWE-416: Use After Free".  */
  	  return ctxt.warn ("use after %<delete%> of %qE",
  			    m_expr);
  	}
  	break;
!       case poison_kind::popped_stack:
  	{
  	  /* TODO: which CWE?  */
  	  return ctxt.warn
*************** public:
*** 680,707 ****
        {
        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",
--- 835,862 ----
        {
        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",
*************** public:
*** 728,748 ****
       heap-allocated regions, the numbering could be different).
       Hence we access m_check_expr, if available.  */
  
!   bool check_valid_fpath_p (const feasible_node &fnode,
! 			    const gimple *emission_stmt)
      const final override
    {
      if (!m_check_expr)
        return true;
! 
!     /* We've reached the enode, but not necessarily the right function_point.
!        Try to get the state at the correct stmt.  */
!     region_model emission_model (fnode.get_model ().get_manager());
!     if (!fnode.get_state_at_stmt (emission_stmt, &emission_model))
!       /* Couldn't get state; accept this diagnostic.  */
!       return true;
! 
!     const svalue *fsval = emission_model.get_rvalue (m_check_expr, NULL);
      /* Check to see if the expr is also poisoned in FNODE (and in the
         same way).  */
      const poisoned_svalue * fspval = fsval->dyn_cast_poisoned_svalue ();
--- 883,894 ----
       heap-allocated regions, the numbering could be different).
       Hence we access m_check_expr, if available.  */
  
!   bool check_valid_fpath_p (const feasible_node &fnode)
      const final override
    {
      if (!m_check_expr)
        return true;
!     const svalue *fsval = fnode.get_model ().get_rvalue (m_check_expr, nullptr);
      /* Check to see if the expr is also poisoned in FNODE (and in the
         same way).  */
      const poisoned_svalue * fspval = fsval->dyn_cast_poisoned_svalue ();
*************** public:
*** 754,762 ****
    }
  
    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));
--- 900,909 ----
    }
  
    void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
!     const final override
    {
!     auto &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));
*************** public:
*** 956,965 ****
    {
      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
--- 1103,1112 ----
    {
      if (reg == m_base_reg_a)
        emission_path.add_event
! 	(std::make_unique<ptrdiff_region_creation_event> (loc_info, true));
      else if (reg == m_base_reg_b)
        emission_path.add_event
! 	(std::make_unique<ptrdiff_region_creation_event> (loc_info, false));
    }
  
    bool
*************** check_for_invalid_ptrdiff (const gassign
*** 1009,1025 ****
    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.
!    Otherwise return NULL.  */
  
  const svalue *
  region_model::get_gassign_result (const gassign *assign,
--- 1156,1173 ----
    if (base_reg_b->get_kind () == RK_SYMBOLIC)
      return;
  
!   ctxt.warn
!     (std::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.
!    Otherwise return nullptr.  */
  
  const svalue *
  region_model::get_gassign_result (const gassign *assign,
*************** region_model::get_gassign_result (const
*** 1042,1048 ****
    switch (op)
      {
      default:
!       return NULL;
  
      case POINTER_PLUS_EXPR:
        {
--- 1190,1196 ----
    switch (op)
      {
      default:
!       return nullptr;
  
      case POINTER_PLUS_EXPR:
        {
*************** region_model::get_gassign_result (const
*** 1192,1210 ****
  		{
  		  if (tree_int_cst_sgn (rhs2_cst) < 0)
  		    ctxt->warn
! 		      (make_unique<shift_count_negative_diagnostic>
  			 (assign, rhs2_cst));
  		  else if (compare_tree_int (rhs2_cst,
  					     TYPE_PRECISION (TREE_TYPE (rhs1)))
  			   >= 0)
  		    ctxt->warn
! 		      (make_unique<shift_count_overflow_diagnostic>
  			 (assign,
  			  int (TYPE_PRECISION (TREE_TYPE (rhs1))),
  			  rhs2_cst));
  		}
  	  }
  
  	const svalue *sval_binop
  	  = m_mgr->get_or_create_binop (TREE_TYPE (lhs), op,
  					rhs1_sval, rhs2_sval);
--- 1340,1380 ----
  		{
  		  if (tree_int_cst_sgn (rhs2_cst) < 0)
  		    ctxt->warn
! 		      (std::make_unique<shift_count_negative_diagnostic>
  			 (assign, rhs2_cst));
  		  else if (compare_tree_int (rhs2_cst,
  					     TYPE_PRECISION (TREE_TYPE (rhs1)))
  			   >= 0)
  		    ctxt->warn
! 		      (std::make_unique<shift_count_overflow_diagnostic>
  			 (assign,
  			  int (TYPE_PRECISION (TREE_TYPE (rhs1))),
  			  rhs2_cst));
  		}
  	  }
  
+ 	if (ctxt
+ 	    && (op == TRUNC_DIV_EXPR
+ 		|| op == CEIL_DIV_EXPR
+ 		|| op == FLOOR_DIV_EXPR
+ 		|| op == ROUND_DIV_EXPR
+ 		|| op == TRUNC_MOD_EXPR
+ 		|| op == CEIL_MOD_EXPR
+ 		|| op == FLOOR_MOD_EXPR
+ 		|| op == ROUND_MOD_EXPR
+ 		|| op == RDIV_EXPR
+ 		|| op == EXACT_DIV_EXPR))
+ 	  {
+ 	    value_range rhs_vr;
+ 	    if (rhs2_sval->maybe_get_value_range (rhs_vr))
+ 	      if (rhs_vr.zero_p ())
+ 		{
+ 		  /* Ideally we should issue a warning here;
+ 		     see PR analyzer/124217.  */
+ 		  return nullptr;
+ 		}
+ 	  }
+ 
  	const svalue *sval_binop
  	  = m_mgr->get_or_create_binop (TREE_TYPE (lhs), op,
  					rhs1_sval, rhs2_sval);
*************** within_short_circuited_stmt_p (const reg
*** 1307,1314 ****
       that implies that the value of the second arg doesn't matter, i.e.
       1 for bitwise or, 0 for bitwise and.  */
    tree other_arg = gimple_assign_rhs1 (use_assign);
!   /* Use a NULL ctxt here to avoid generating warnings.  */
!   const svalue *other_arg_sval = model->get_rvalue (other_arg, NULL);
    tree other_arg_cst = other_arg_sval->maybe_get_constant ();
    if (!other_arg_cst)
      return false;
--- 1477,1484 ----
       that implies that the value of the second arg doesn't matter, i.e.
       1 for bitwise or, 0 for bitwise and.  */
    tree other_arg = gimple_assign_rhs1 (use_assign);
!   /* Use a nullptr ctxt here to avoid generating warnings.  */
!   const svalue *other_arg_sval = model->get_rvalue (other_arg, nullptr);
    tree other_arg_cst = other_arg_sval->maybe_get_constant ();
    if (!other_arg_cst)
      return false;
*************** due_to_ifn_deferred_init_p (const gassig
*** 1375,1381 ****
  /* Check for SVAL being poisoned, adding a warning to CTXT.
     Return SVAL, or, if a warning is added, another value, to avoid
     repeatedly complaining about the same poisoned value in followup code.
!    SRC_REGION is a hint about where SVAL came from, and can be NULL.  */
  
  const svalue *
  region_model::check_for_poison (const svalue *sval,
--- 1545,1551 ----
  /* Check for SVAL being poisoned, adding a warning to CTXT.
     Return SVAL, or, if a warning is added, another value, to avoid
     repeatedly complaining about the same poisoned value in followup code.
!    SRC_REGION is a hint about where SVAL came from, and can be nullptr.  */
  
  const svalue *
  region_model::check_for_poison (const svalue *sval,
*************** region_model::check_for_poison (const sv
*** 1392,1403 ****
  
        /* Ignore uninitialized uses of empty types; there's nothing
  	 to initialize.  */
!       if (pkind == POISON_KIND_UNINIT
  	  && sval->get_type ()
  	  && is_empty_type (sval->get_type ()))
  	return sval;
  
!       if (pkind == POISON_KIND_UNINIT)
  	if (const gimple *curr_stmt = ctxt->get_stmt ())
  	  if (const gassign *assign_stmt
  		= dyn_cast <const gassign *> (curr_stmt))
--- 1562,1573 ----
  
        /* Ignore uninitialized uses of empty types; there's nothing
  	 to initialize.  */
!       if (pkind == poison_kind::uninit
  	  && sval->get_type ()
  	  && is_empty_type (sval->get_type ()))
  	return sval;
  
!       if (pkind == poison_kind::uninit)
  	if (const gimple *curr_stmt = ctxt->get_stmt ())
  	  if (const gassign *assign_stmt
  		= dyn_cast <const gassign *> (curr_stmt))
*************** region_model::check_for_poison (const sv
*** 1418,1424 ****
  	 the tree other than via the def stmts, using
  	 fixup_tree_for_diagnostic.  */
        tree diag_arg = fixup_tree_for_diagnostic (expr);
!       if (src_region == NULL && pkind == POISON_KIND_UNINIT)
  	src_region = get_region_for_poisoned_expr (expr);
  
        /* Can we reliably get the poisoned value from "expr"?
--- 1588,1594 ----
  	 the tree other than via the def stmts, using
  	 fixup_tree_for_diagnostic.  */
        tree diag_arg = fixup_tree_for_diagnostic (expr);
!       if (src_region == nullptr && pkind == poison_kind::uninit)
  	src_region = get_region_for_poisoned_expr (expr);
  
        /* Can we reliably get the poisoned value from "expr"?
*************** region_model::check_for_poison (const sv
*** 1427,1441 ****
  	 Hence we only query its value now, and only use it if we get the
  	 poisoned value back again.  */
        tree check_expr = expr;
!       const svalue *foo_sval = get_rvalue (expr, NULL);
        if (foo_sval == sval)
  	check_expr = expr;
        else
! 	check_expr = NULL;
!       if (ctxt->warn (make_unique<poisoned_value_diagnostic> (diag_arg,
! 							      pkind,
! 							      src_region,
! 							      check_expr)))
  	{
  	  /* We only want to report use of a poisoned value at the first
  	     place it gets used; return an unknown value to avoid generating
--- 1597,1612 ----
  	 Hence we only query its value now, and only use it if we get the
  	 poisoned value back again.  */
        tree check_expr = expr;
!       const svalue *foo_sval = get_rvalue (expr, nullptr);
        if (foo_sval == sval)
  	check_expr = expr;
        else
! 	check_expr = nullptr;
!       if (ctxt->warn
! 	    (std::make_unique<poisoned_value_diagnostic> (diag_arg,
! 							  pkind,
! 							  src_region,
! 							  check_expr)))
  	{
  	  /* We only want to report use of a poisoned value at the first
  	     place it gets used; return an unknown value to avoid generating
*************** region_model::check_for_poison (const sv
*** 1451,1457 ****
  
  /* Attempt to get a region for describing EXPR, the source of region of
     a poisoned_svalue for use in a poisoned_value_diagnostic.
!    Return NULL if there is no good region to use.  */
  
  const region *
  region_model::get_region_for_poisoned_expr (tree expr) const
--- 1622,1628 ----
  
  /* Attempt to get a region for describing EXPR, the source of region of
     a poisoned_svalue for use in a poisoned_value_diagnostic.
!    Return nullptr if there is no good region to use.  */
  
  const region *
  region_model::get_region_for_poisoned_expr (tree expr) const
*************** region_model::get_region_for_poisoned_ex
*** 1462,1470 ****
        if (decl && DECL_P (decl))
  	expr = decl;
        else
! 	return NULL;
      }
!   return get_lvalue (expr, NULL);
  }
  
  /* Update this model for the ASSIGN stmt, using CTXT to report any
--- 1633,1641 ----
        if (decl && DECL_P (decl))
  	expr = decl;
        else
! 	return nullptr;
      }
!   return get_lvalue (expr, nullptr);
  }
  
  /* Update this model for the ASSIGN stmt, using CTXT to report any
*************** region_model::on_assignment (const gassi
*** 1493,1499 ****
    if (const svalue *sval = get_gassign_result (assign, ctxt))
      {
        tree expr = get_diagnostic_tree_for_gassign (assign);
!       check_for_poison (sval, expr, NULL, ctxt);
        set_value (lhs_reg, sval, ctxt);
        return;
      }
--- 1664,1670 ----
    if (const svalue *sval = get_gassign_result (assign, ctxt))
      {
        tree expr = get_diagnostic_tree_for_gassign (assign);
!       check_for_poison (sval, expr, nullptr, ctxt);
        set_value (lhs_reg, sval, ctxt);
        return;
      }
*************** region_model::on_assignment (const gassi
*** 1553,1559 ****
  	/* e.g. "struct s2 x = {{'A', 'B', 'C', 'D'}};".  */
  	const svalue *rhs_sval = get_rvalue (rhs1, ctxt);
  	m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
! 			   ctxt ? ctxt->get_uncertainty () : NULL);
        }
        break;
      }
--- 1724,1730 ----
  	/* e.g. "struct s2 x = {{'A', 'B', 'C', 'D'}};".  */
  	const svalue *rhs_sval = get_rvalue (rhs1, ctxt);
  	m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
! 			   ctxt ? ctxt->get_uncertainty () : nullptr);
        }
        break;
      }
*************** region_model::on_stmt_pre (const gimple
*** 1570,1582 ****
  {
    switch (gimple_code (stmt))
      {
!     default:
!       /* No-op for now.  */
!       break;
! 
!     case GIMPLE_DEBUG:
!       /* We should have stripped these out when building the supergraph.  */
!       gcc_unreachable ();
        break;
  
      case GIMPLE_ASSIGN:
--- 1741,1755 ----
  {
    switch (gimple_code (stmt))
      {
!     case GIMPLE_COND:
!     case GIMPLE_EH_DISPATCH:
!     case GIMPLE_GOTO:
!     case GIMPLE_LABEL:
!     case GIMPLE_NOP:
!     case GIMPLE_PREDICT:
!     case GIMPLE_RESX:
!     case GIMPLE_SWITCH:
!       /* No-ops here.  */
        break;
  
      case GIMPLE_ASSIGN:
*************** region_model::on_stmt_pre (const gimple
*** 1601,1607 ****
  	   anything, for which we don't have a function body, or for which we
  	   don't know the fndecl.  */
  	const gcall *call = as_a <const gcall *> (stmt);
! 	*out_unknown_side_effects = on_call_pre (call, ctxt);
        }
        break;
  
--- 1774,1780 ----
  	   anything, for which we don't have a function body, or for which we
  	   don't know the fndecl.  */
  	const gcall *call = as_a <const gcall *> (stmt);
! 	*out_unknown_side_effects = on_call_pre (*call, ctxt);
        }
        break;
  
*************** region_model::on_stmt_pre (const gimple
*** 1611,1616 ****
--- 1784,1796 ----
  	on_return (return_, ctxt);
        }
        break;
+ 
+     /* We don't expect to see any other statement kinds in the analyzer.  */
+     case GIMPLE_DEBUG: // should have stripped these out when building the supergraph
+     default:
+       internal_error ("unexpected gimple stmt code: %qs",
+ 		      gimple_code_name[gimple_code (stmt)]);
+       break;
      }
  }
  
*************** region_model::check_call_format_attr (co
*** 1689,1695 ****
        };
  
        call_arg_details arg_details (m_cd, m_fmt_param_idx);
!       add_note (make_unique<reason_format_attr> (arg_details));
      }
    private:
      const call_details &m_cd;
--- 1869,1875 ----
        };
  
        call_arg_details arg_details (m_cd, m_fmt_param_idx);
!       add_note (std::make_unique<reason_format_attr> (arg_details));
      }
    private:
      const call_details &m_cd;
*************** region_model::update_for_nonzero_return
*** 1775,1781 ****
     to set an upper bound on the size of a copy_to_user.
     Attempt to simplify such sizes by trying to get the upper bound as a
     constant.
!    Return the simplified svalue if possible, or NULL otherwise.  */
  
  static const svalue *
  maybe_simplify_upper_bound (const svalue *num_bytes_sval,
--- 1955,1961 ----
     to set an upper bound on the size of a copy_to_user.
     Attempt to simplify such sizes by trying to get the upper bound as a
     constant.
!    Return the simplified svalue if possible, or nullptr otherwise.  */
  
  static const svalue *
  maybe_simplify_upper_bound (const svalue *num_bytes_sval,
*************** maybe_simplify_upper_bound (const svalue
*** 1793,1799 ****
  	     when recording the diagnostic, or note that we're using
  	     the upper bound.  */
  	}
!   return NULL;
  }
  
  /* Attempt to get an upper bound for the size of a copy when simulating a
--- 1973,1979 ----
  	     when recording the diagnostic, or note that we're using
  	     the upper bound.  */
  	}
!   return nullptr;
  }
  
  /* Attempt to get an upper bound for the size of a copy when simulating a
*************** maybe_simplify_upper_bound (const svalue
*** 1804,1810 ****
     that, use the size of SRC_REG if constant.
  
     Return a symbolic value for an upper limit on the number of bytes
!    copied, or NULL if no such value could be determined.  */
  
  const svalue *
  region_model::maybe_get_copy_bounds (const region *src_reg,
--- 1984,1990 ----
     that, use the size of SRC_REG if constant.
  
     Return a symbolic value for an upper limit on the number of bytes
!    copied, or nullptr if no such value could be determined.  */
  
  const svalue *
  region_model::maybe_get_copy_bounds (const region *src_reg,
*************** region_model::maybe_get_copy_bounds (con
*** 1830,1836 ****
      return num_bytes_sval;
  
    /* Non-constant: give up. */
!   return NULL;
  }
  
  /* Get any known_function for FNDECL for call CD.
--- 2010,2016 ----
      return num_bytes_sval;
  
    /* Non-constant: give up. */
!   return nullptr;
  }
  
  /* Get any known_function for FNDECL for call CD.
*************** region_model::maybe_get_copy_bounds (con
*** 1838,1844 ****
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return NULL if no known_function is found, or it does not match the
     assumption(s).  */
  
  const known_function *
--- 2018,2024 ----
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return nullptr if no known_function is found, or it does not match the
     assumption(s).  */
  
  const known_function *
*************** region_model::get_known_function (tree f
*** 1848,1854 ****
    return known_fn_mgr->get_match (fndecl, cd);
  }
  
! /* Get any known_function for IFN, or NULL.  */
  
  const known_function *
  region_model::get_known_function (enum internal_fn ifn) const
--- 2028,2034 ----
    return known_fn_mgr->get_match (fndecl, cd);
  }
  
! /* Get any known_function for IFN, or nullptr.  */
  
  const known_function *
  region_model::get_known_function (enum internal_fn ifn) const
*************** region_model::get_known_function (enum i
*** 1858,1869 ****
  }
  
  /* Get any builtin_known_function for CALL and emit any warning to CTXT
!    if not NULL.
  
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return NULL if no builtin_known_function is found, or it does
     not match the assumption(s).
  
     Internally calls get_known_function to find a known_function and cast it
--- 2038,2049 ----
  }
  
  /* Get any builtin_known_function for CALL and emit any warning to CTXT
!    if not nullptr.
  
     The call must match all assumptions made by the known_function (such as
     e.g. "argument 1's type must be a pointer type").
  
!    Return nullptr if no builtin_known_function is found, or it does
     not match the assumption(s).
  
     Internally calls get_known_function to find a known_function and cast it
*************** region_model::get_known_function (enum i
*** 1898,1918 ****
     attributes.  */
  
  const builtin_known_function *
! region_model::get_builtin_kf (const gcall *call,
! 			       region_model_context *ctxt /* = NULL */) const
  {
    region_model *mut_this = const_cast <region_model *> (this);
    tree callee_fndecl = mut_this->get_fndecl_for_call (call, ctxt);
    if (! callee_fndecl)
!     return NULL;
  
    call_details cd (call, mut_this, ctxt);
    if (const known_function *kf = get_known_function (callee_fndecl, cd))
      return kf->dyn_cast_builtin_kf ();
  
!   return NULL;
  }
  
  /* Update this model for the CALL stmt, using CTXT to report any
     diagnostics - the first half.
  
--- 2078,2310 ----
     attributes.  */
  
  const builtin_known_function *
! region_model::get_builtin_kf (const gcall &call,
! 			       region_model_context *ctxt /* = nullptr */) const
  {
    region_model *mut_this = const_cast <region_model *> (this);
    tree callee_fndecl = mut_this->get_fndecl_for_call (call, ctxt);
    if (! callee_fndecl)
!     return nullptr;
  
    call_details cd (call, mut_this, ctxt);
    if (const known_function *kf = get_known_function (callee_fndecl, cd))
      return kf->dyn_cast_builtin_kf ();
  
!   return nullptr;
  }
  
+ /* Subclass of custom_edge_info for use by exploded_edges that represent
+    an exception being thrown from a call we don't have the code for.  */
+ 
+ class exception_thrown_from_unrecognized_call : public custom_edge_info
+ {
+ public:
+   exception_thrown_from_unrecognized_call (const gcall &call,
+ 					   tree fndecl)
+   : m_call (call),
+     m_fndecl (fndecl)
+   {
+   }
+ 
+   void print (pretty_printer *pp) const final override
+   {
+     if (m_fndecl)
+       pp_printf (pp, "if %qD throws an exception...", m_fndecl);
+     else
+       pp_printf (pp, "if the called function throws an exception...");
+   };
+ 
+   bool
+   update_model (region_model *model,
+ 		const exploded_edge *,
+ 		region_model_context *ctxt) const final override
+   {
+     /* Allocate an exception and set it as the current exception.  */
+     const region *exception_reg
+       = model->get_or_create_region_for_heap_alloc
+ 	  (nullptr, /* We don't know the size of the region.  */
+ 	   ctxt);
+ 
+     region_model_manager *mgr = model->get_manager ();
+     conjured_purge p (model, ctxt);
+ 
+     /* The contents of the region are some conjured svalue.  */
+     const svalue *exception_sval
+       = mgr->get_or_create_conjured_svalue (NULL_TREE,
+ 					    &m_call,
+ 					    exception_reg, p, 0);
+     model->set_value (exception_reg, exception_sval, ctxt);
+     const svalue *exception_ptr_sval
+       = mgr->get_ptr_svalue (ptr_type_node, exception_reg);
+     const svalue *tinfo_sval
+       = mgr->get_or_create_conjured_svalue (ptr_type_node,
+ 					    &m_call,
+ 					    exception_reg, p, 1);
+     const svalue *destructor_sval
+       = mgr->get_or_create_conjured_svalue (ptr_type_node,
+ 					    &m_call,
+ 					    exception_reg, p, 2);
+ 
+     /* Push a new exception_node on the model's thrown exception stack.  */
+     exception_node eh_node (exception_ptr_sval, tinfo_sval, destructor_sval);
+     model->push_thrown_exception (eh_node);
+ 
+     return true;
+   }
+ 
+   void
+   add_events_to_path (checker_path *emission_path,
+ 		      const exploded_edge &eedge,
+ 		      pending_diagnostic &) const final override
+   {
+     const exploded_node *dst_node = eedge.m_dest;
+     const program_point &dst_point = dst_node->get_point ();
+     const int dst_stack_depth = dst_point.get_stack_depth ();
+ 
+     emission_path->add_event
+       (std::make_unique<throw_from_call_to_external_fn_event>
+ 	 (event_loc_info (m_call.location,
+ 			  dst_point.get_fndecl (),
+ 			  dst_stack_depth),
+ 	  dst_node,
+ 	  m_call,
+ 	  m_fndecl));
+   }
+ 
+   exploded_node *
+   create_enode (exploded_graph &eg,
+ 		const program_point &point,
+ 		program_state &&state,
+ 		exploded_node *enode_for_diag,
+ 		region_model_context *ctxt) const final override
+   {
+     exploded_node *thrown_enode
+       = eg.get_or_create_node (point, state, enode_for_diag,
+ 			       /* Don't add to worklist.  */
+ 			       false);
+     if (!thrown_enode)
+       return nullptr;
+ 
+     /* Add successor edges for thrown_enode "by hand" for the exception.  */
+     eg.unwind_from_exception (*thrown_enode,
+ 			      &m_call,
+ 			      ctxt);
+     return thrown_enode;
+   }
+ 
+ private:
+   const gcall &m_call;
+   tree m_fndecl; // could be null
+ };
+ 
+ /* Get a set of functions that are assumed to not throw exceptions.  */
+ 
+ static function_set
+ get_fns_assumed_not_to_throw ()
+ {
+   // TODO: populate this list more fully
+   static const char * const fn_names[] = {
+     /* This array must be kept sorted.  */
+ 
+     "fclose"
+   };
+   const size_t count = ARRAY_SIZE (fn_names);
+   function_set fs (fn_names, count);
+   return fs;
+ }
+ 
+ /* Return true if CALL could throw an exception.
+    FNDECL could be NULL_TREE.  */
+ 
+ static bool
+ can_throw_p (const gcall &call, tree fndecl)
+ {
+   if (!flag_exceptions)
+     return false;
+ 
+   /* Compatibility flag to allow the user to assume external functions
+      never throw exceptions.  This may be useful when using the analyzer
+      on C code that is compiled with -fexceptions, but for which the headers
+      haven't yet had "nothrow" attributes systematically added.  */
+   if (flag_analyzer_assume_nothrow)
+     return false;
+ 
+   if (gimple_call_nothrow_p (&call))
+     return false;
+ 
+   if (fndecl)
+     {
+       const function_set fs = get_fns_assumed_not_to_throw ();
+       if (fs.contains_decl_p (fndecl))
+ 	return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Given CALL where we don't know what code is being called
+    (by not having the body of FNDECL, or having NULL_TREE for FNDECL),
+   potentially bifurcate control flow to simulate the call throwing
+   an exception.  */
+ 
+ void
+ region_model::check_for_throw_inside_call (const gcall &call,
+ 					   tree fndecl,
+ 					   region_model_context *ctxt)
+ {
+   if (!ctxt)
+     return;
+ 
+   /* Could this function throw an exception?
+      If so, add an extra e-edge for that.  */
+   if (!can_throw_p (call, fndecl))
+     return;
+ 
+   auto throws_exception
+     = std::make_unique<exception_thrown_from_unrecognized_call> (call, fndecl);
+   ctxt->bifurcate (std::move (throws_exception));
+ }
+ 
+ /* A subclass of pending_diagnostic for complaining about jumps through NULL
+    function pointers.  */
+ 
+ class jump_through_null : public pending_diagnostic_subclass<jump_through_null>
+ {
+ public:
+   jump_through_null (const gcall &call)
+   : m_call (call)
+   {}
+ 
+   const char *get_kind () const final override
+   {
+     return "jump_through_null";
+   }
+ 
+   bool operator== (const jump_through_null &other) const
+   {
+     return &m_call == &other.m_call;
+   }
+ 
+   int get_controlling_option () const final override
+   {
+     return OPT_Wanalyzer_jump_through_null;
+   }
+ 
+   bool emit (diagnostic_emission_context &ctxt) final override
+   {
+     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:
+   const gcall &m_call;
+ };
  /* Update this model for the CALL stmt, using CTXT to report any
     diagnostics - the first half.
  
*************** region_model::get_builtin_kf (const gcal
*** 1925,1931 ****
     fndecl it is).  */
  
  bool
! region_model::on_call_pre (const gcall *call, region_model_context *ctxt)
  {
    call_details cd (call, this, ctxt);
  
--- 2317,2323 ----
     fndecl it is).  */
  
  bool
! region_model::on_call_pre (const gcall &call, region_model_context *ctxt)
  {
    call_details cd (call, this, ctxt);
  
*************** region_model::on_call_pre (const gcall *
*** 1935,1942 ****
       Handle IFN_DEFERRED_INIT by treating it as no-op: don't touch the
       lhs of the call, so that it is still uninitialized from the point of
       view of the analyzer.  */
!   if (gimple_call_internal_p (call)
!       && gimple_call_internal_fn (call) == IFN_DEFERRED_INIT)
      return false; /* No side effects.  */
  
    /* Get svalues for all of the arguments at the callsite, to ensure that we
--- 2327,2334 ----
       Handle IFN_DEFERRED_INIT by treating it as no-op: don't touch the
       lhs of the call, so that it is still uninitialized from the point of
       view of the analyzer.  */
!   if (gimple_call_internal_p (&call)
!       && gimple_call_internal_fn (&call) == IFN_DEFERRED_INIT)
      return false; /* No side effects.  */
  
    /* Get svalues for all of the arguments at the callsite, to ensure that we
*************** region_model::on_call_pre (const gcall *
*** 1948,1956 ****
  
    tree callee_fndecl = get_fndecl_for_call (call, ctxt);
  
!   if (gimple_call_internal_p (call))
      if (const known_function *kf
! 	  = get_known_function (gimple_call_internal_fn (call)))
        {
  	kf->impl_call_pre (cd);
  	return false; /* No further side effects.  */
--- 2340,2348 ----
  
    tree callee_fndecl = get_fndecl_for_call (call, ctxt);
  
!   if (gimple_call_internal_p (&call))
      if (const known_function *kf
! 	  = get_known_function (gimple_call_internal_fn (&call)))
        {
  	kf->impl_call_pre (cd);
  	return false; /* No further side effects.  */
*************** region_model::on_call_pre (const gcall *
*** 1958,1963 ****
--- 2350,2370 ----
  
    if (!callee_fndecl)
      {
+       /* Check for jump through nullptr.  */
+       if (ctxt)
+ 	if (tree fn_ptr = gimple_call_fn (&call))
+ 	  {
+ 	    const svalue *fn_ptr_sval = get_rvalue (fn_ptr, ctxt);
+ 	    if (fn_ptr_sval->all_zeroes_p ())
+ 	      {
+ 		ctxt->warn
+ 		  (std::make_unique<jump_through_null> (call));
+ 		ctxt->terminate_path ();
+ 		return true;
+ 	      }
+ 	  }
+ 
+       check_for_throw_inside_call (call, NULL_TREE, ctxt);
        cd.set_any_lhs_with_defaults ();
        return true; /* Unknown side effects.  */
      }
*************** region_model::on_call_pre (const gcall *
*** 1978,1984 ****
      return true; /* Unknown side effects.  */
  
    if (!fndecl_has_gimple_body_p (callee_fndecl))
!     return true; /* Unknown side effects.  */
  
    return false; /* No side effects.  */
  }
--- 2385,2394 ----
      return true; /* Unknown side effects.  */
  
    if (!fndecl_has_gimple_body_p (callee_fndecl))
!     {
!       check_for_throw_inside_call (call, callee_fndecl, ctxt);
!       return true; /* Unknown side effects.  */
!     }
  
    return false; /* No side effects.  */
  }
*************** region_model::on_call_pre (const gcall *
*** 1994,2000 ****
     to purge state.  */
  
  void
! region_model::on_call_post (const gcall *call,
  			    bool unknown_side_effects,
  			    region_model_context *ctxt)
  {
--- 2404,2410 ----
     to purge state.  */
  
  void
! region_model::on_call_post (const gcall &call,
  			    bool unknown_side_effects,
  			    region_model_context *ctxt)
  {
*************** private:
*** 2102,2113 ****
     attribute.  */
  
  void
! region_model::check_function_attr_access (const gcall *call,
  					  tree callee_fndecl,
  					  region_model_context *ctxt,
  					  rdwr_map &rdwr_idx) const
  {
-   gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
--- 2512,2522 ----
     attribute.  */
  
  void
! region_model::check_function_attr_access (const gcall &call,
  					  tree callee_fndecl,
  					  region_model_context *ctxt,
  					  rdwr_map &rdwr_idx) const
  {
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
*************** region_model::check_function_attr_access
*** 2145,2152 ****
  	    }
  	    void add_annotations () final override
  	    {
! 	      add_note (make_unique<reason_attr_access>
! 			(m_callee_fndecl, m_access));
  	    }
  	  private:
  	    tree m_callee_fndecl;
--- 2554,2561 ----
  	    }
  	    void add_annotations () final override
  	    {
! 	      add_note (std::make_unique<reason_attr_access>
! 			  (m_callee_fndecl, m_access));
  	    }
  	  private:
  	    tree m_callee_fndecl;
*************** region_model::check_function_attr_access
*** 2157,2163 ****
  	     note added to them.  */
  	  annotating_ctxt my_ctxt (callee_fndecl, *access, ctxt);
  
! 	  tree ptr_tree = gimple_call_arg (call, access->ptrarg);
  	  const svalue *ptr_sval = get_rvalue (ptr_tree, &my_ctxt);
  	  const region *reg = deref_rvalue (ptr_sval, ptr_tree, &my_ctxt);
  	  check_region_for_write (reg, nullptr, &my_ctxt);
--- 2566,2572 ----
  	     note added to them.  */
  	  annotating_ctxt my_ctxt (callee_fndecl, *access, ctxt);
  
! 	  tree ptr_tree = gimple_call_arg (&call, access->ptrarg);
  	  const svalue *ptr_sval = get_rvalue (ptr_tree, &my_ctxt);
  	  const region *reg = deref_rvalue (ptr_sval, ptr_tree, &my_ctxt);
  	  check_region_for_write (reg, nullptr, &my_ctxt);
*************** region_model::check_function_attr_access
*** 2171,2183 ****
  
  void
  region_model::
! check_one_function_attr_null_terminated_string_arg (const gcall *call,
  						    tree callee_fndecl,
  						    region_model_context *ctxt,
  						    rdwr_map &rdwr_idx,
  						    tree attr)
  {
-   gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
    gcc_assert (attr);
--- 2580,2591 ----
  
  void
  region_model::
! check_one_function_attr_null_terminated_string_arg (const gcall &call,
  						    tree callee_fndecl,
  						    region_model_context *ctxt,
  						    rdwr_map &rdwr_idx,
  						    tree attr)
  {
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
    gcc_assert (attr);
*************** check_one_function_attr_null_terminated_
*** 2245,2256 ****
  
  void
  region_model::
! check_function_attr_null_terminated_string_arg (const gcall *call,
  						tree callee_fndecl,
  						region_model_context *ctxt,
  						rdwr_map &rdwr_idx)
  {
-   gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
--- 2653,2663 ----
  
  void
  region_model::
! check_function_attr_null_terminated_string_arg (const gcall &call,
  						tree callee_fndecl,
  						region_model_context *ctxt,
  						rdwr_map &rdwr_idx)
  {
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
*************** check_function_attr_null_terminated_stri
*** 2275,2285 ****
     function attributes, complaining to CTXT about any issues.  */
  
  void
! region_model::check_function_attrs (const gcall *call,
  				    tree callee_fndecl,
  				    region_model_context *ctxt)
  {
-   gcc_assert (call);
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
--- 2682,2691 ----
     function attributes, complaining to CTXT about any issues.  */
  
  void
! region_model::check_function_attrs (const gcall &call,
  				    tree callee_fndecl,
  				    region_model_context *ctxt)
  {
    gcc_assert (callee_fndecl);
    gcc_assert (ctxt);
  
*************** region_model::check_function_attrs (cons
*** 2310,2316 ****
     from their values, and from values that point to them.  */
  
  void
! region_model::handle_unrecognized_call (const gcall *call,
  					region_model_context *ctxt)
  {
    tree fndecl = get_fndecl_for_call (call, ctxt);
--- 2716,2722 ----
     from their values, and from values that point to them.  */
  
  void
! region_model::handle_unrecognized_call (const gcall &call,
  					region_model_context *ctxt)
  {
    tree fndecl = get_fndecl_for_call (call, ctxt);
*************** region_model::handle_unrecognized_call (
*** 2331,2337 ****
      tree iter_param_types = NULL_TREE;
      if (fndecl)
        iter_param_types = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
!     for (unsigned arg_idx = 0; arg_idx < gimple_call_num_args (call); arg_idx++)
        {
  	/* Track expected param type, where available.  */
  	tree param_type = NULL_TREE;
--- 2737,2744 ----
      tree iter_param_types = NULL_TREE;
      if (fndecl)
        iter_param_types = TYPE_ARG_TYPES (TREE_TYPE (fndecl));
!     for (unsigned arg_idx = 0; arg_idx < gimple_call_num_args (&call);
! 	 arg_idx++)
        {
  	/* Track expected param type, where available.  */
  	tree param_type = NULL_TREE;
*************** region_model::handle_unrecognized_call (
*** 2342,2354 ****
  	    iter_param_types = TREE_CHAIN (iter_param_types);
  	  }
  
! 	tree parm = gimple_call_arg (call, arg_idx);
  	const svalue *parm_sval = get_rvalue (parm, ctxt);
  	reachable_regs.handle_parm (parm_sval, param_type);
        }
    }
  
!   uncertainty_t *uncertainty = ctxt ? ctxt->get_uncertainty () : NULL;
  
    /* Purge sm-state for the svalues that were reachable,
       both in non-mutable and mutable form.  */
--- 2749,2761 ----
  	    iter_param_types = TREE_CHAIN (iter_param_types);
  	  }
  
! 	tree parm = gimple_call_arg (&call, arg_idx);
  	const svalue *parm_sval = get_rvalue (parm, ctxt);
  	reachable_regs.handle_parm (parm_sval, param_type);
        }
    }
  
!   uncertainty_t *uncertainty = ctxt ? ctxt->get_uncertainty () : nullptr;
  
    /* Purge sm-state for the svalues that were reachable,
       both in non-mutable and mutable form.  */
*************** region_model::on_return (const greturn *
*** 2466,2490 ****
     0), as opposed to any second return due to longjmp/sigsetjmp.  */
  
  void
! region_model::on_setjmp (const gcall *call, const exploded_node *enode,
  			 region_model_context *ctxt)
  {
!   const svalue *buf_ptr = get_rvalue (gimple_call_arg (call, 0), ctxt);
!   const region *buf_reg = deref_rvalue (buf_ptr, gimple_call_arg (call, 0),
  					 ctxt);
  
    /* Create a setjmp_svalue for this call and store it in BUF_REG's
       region.  */
    if (buf_reg)
      {
!       setjmp_record r (enode, call);
        const svalue *sval
  	= m_mgr->get_or_create_setjmp_svalue (r, buf_reg->get_type ());
        set_value (buf_reg, sval, ctxt);
      }
  
    /* Direct calls to setjmp return 0.  */
!   if (tree lhs = gimple_call_lhs (call))
      {
        const svalue *new_sval
  	= m_mgr->get_or_create_int_cst (TREE_TYPE (lhs), 0);
--- 2873,2899 ----
     0), as opposed to any second return due to longjmp/sigsetjmp.  */
  
  void
! region_model::on_setjmp (const gcall &call,
! 			 const exploded_node &enode,
! 			 const superedge &sedge,
  			 region_model_context *ctxt)
  {
!   const svalue *buf_ptr = get_rvalue (gimple_call_arg (&call, 0), ctxt);
!   const region *buf_reg = deref_rvalue (buf_ptr, gimple_call_arg (&call, 0),
  					 ctxt);
  
    /* Create a setjmp_svalue for this call and store it in BUF_REG's
       region.  */
    if (buf_reg)
      {
!       setjmp_record r (&enode, &sedge, call);
        const svalue *sval
  	= m_mgr->get_or_create_setjmp_svalue (r, buf_reg->get_type ());
        set_value (buf_reg, sval, ctxt);
      }
  
    /* Direct calls to setjmp return 0.  */
!   if (tree lhs = gimple_call_lhs (&call))
      {
        const svalue *new_sval
  	= m_mgr->get_or_create_int_cst (TREE_TYPE (lhs), 0);
*************** region_model::on_setjmp (const gcall *ca
*** 2499,2521 ****
     done, and should be done by the caller.  */
  
  void
! region_model::on_longjmp (const gcall *longjmp_call, const gcall *setjmp_call,
  			   int setjmp_stack_depth, region_model_context *ctxt)
  {
    /* Evaluate the val, using the frame of the "longjmp".  */
!   tree fake_retval = gimple_call_arg (longjmp_call, 1);
    const svalue *fake_retval_sval = get_rvalue (fake_retval, ctxt);
  
    /* Pop any frames until we reach the stack depth of the function where
       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);
  
    /* Assign to LHS of "setjmp" in new_state.  */
!   if (tree lhs = gimple_call_lhs (setjmp_call))
      {
        /* Passing 0 as the val to longjmp leads to setjmp returning 1.  */
        const svalue *zero_sval
--- 2908,2930 ----
     done, and should be done by the caller.  */
  
  void
! region_model::on_longjmp (const gcall &longjmp_call, const gcall &setjmp_call,
  			   int setjmp_stack_depth, region_model_context *ctxt)
  {
    /* Evaluate the val, using the frame of the "longjmp".  */
!   tree fake_retval = gimple_call_arg (&longjmp_call, 1);
    const svalue *fake_retval_sval = get_rvalue (fake_retval, ctxt);
  
    /* Pop any frames until we reach the stack depth of the function where
       setjmp was called.  */
    gcc_assert (get_stack_depth () >= setjmp_stack_depth);
    while (get_stack_depth () > setjmp_stack_depth)
!     pop_frame (nullptr, nullptr, ctxt, nullptr, false);
  
    gcc_assert (get_stack_depth () == setjmp_stack_depth);
  
    /* Assign to LHS of "setjmp" in new_state.  */
!   if (tree lhs = gimple_call_lhs (&setjmp_call))
      {
        /* Passing 0 as the val to longjmp leads to setjmp returning 1.  */
        const svalue *zero_sval
*************** region_model::on_longjmp (const gcall *l
*** 2546,2583 ****
      }
  }
  
- /* Update this region_model for a phi stmt of the form
-      LHS = PHI <...RHS...>.
-    where RHS is for the appropriate edge.
-    Get state from OLD_STATE so that all of the phi stmts for a basic block
-    are effectively handled simultaneously.  */
- 
- void
- region_model::handle_phi (const gphi *phi,
- 			  tree lhs, tree rhs,
- 			  const region_model &old_state,
- 			  hash_set<const svalue *> &svals_changing_meaning,
- 			  region_model_context *ctxt)
- {
-   /* For now, don't bother tracking the .MEM SSA names.  */
-   if (tree var = SSA_NAME_VAR (lhs))
-     if (TREE_CODE (var) == VAR_DECL)
-       if (VAR_DECL_IS_VIRTUAL_OPERAND (var))
- 	return;
- 
-   const svalue *src_sval = old_state.get_rvalue (rhs, ctxt);
-   const region *dst_reg = old_state.get_lvalue (lhs, ctxt);
- 
-   const svalue *sval = old_state.get_rvalue (lhs, nullptr);
-   if (sval->get_kind () == SK_WIDENING)
-     svals_changing_meaning.add (sval);
- 
-   set_value (dst_reg, src_sval, ctxt);
- 
-   if (ctxt)
-     ctxt->on_phi (phi, rhs);
- }
- 
  /* Implementation of region_model::get_lvalue; the latter adds type-checking.
  
     Get the id of the region for PV within this region_model,
--- 2955,2960 ----
*************** const region *
*** 2711,2717 ****
  region_model::get_lvalue (path_var pv, region_model_context *ctxt) const
  {
    if (pv.m_tree == NULL_TREE)
!     return NULL;
  
    const region *result_reg = get_lvalue_1 (pv, ctxt);
    assert_compat_types (result_reg->get_type (), TREE_TYPE (pv.m_tree));
--- 3088,3094 ----
  region_model::get_lvalue (path_var pv, region_model_context *ctxt) const
  {
    if (pv.m_tree == NULL_TREE)
!     return nullptr;
  
    const region *result_reg = get_lvalue_1 (pv, ctxt);
    assert_compat_types (result_reg->get_type (), TREE_TYPE (pv.m_tree));
*************** const svalue *
*** 2856,2868 ****
  region_model::get_rvalue (path_var pv, region_model_context *ctxt) const
  {
    if (pv.m_tree == NULL_TREE)
!     return NULL;
  
    const svalue *result_sval = get_rvalue_1 (pv, ctxt);
  
    assert_compat_types (result_sval->get_type (), TREE_TYPE (pv.m_tree));
  
!   result_sval = check_for_poison (result_sval, pv.m_tree, NULL, ctxt);
  
    return result_sval;
  }
--- 3233,3245 ----
  region_model::get_rvalue (path_var pv, region_model_context *ctxt) const
  {
    if (pv.m_tree == NULL_TREE)
!     return nullptr;
  
    const svalue *result_sval = get_rvalue_1 (pv, ctxt);
  
    assert_compat_types (result_sval->get_type (), TREE_TYPE (pv.m_tree));
  
!   result_sval = check_for_poison (result_sval, pv.m_tree, nullptr, ctxt);
  
    return result_sval;
  }
*************** region_model::deref_rvalue (const svalue
*** 3092,3098 ****
  		const poisoned_svalue *poisoned_sval
  		  = as_a <const poisoned_svalue *> (ptr_sval);
  		enum poison_kind pkind = poisoned_sval->get_poison_kind ();
! 		ctxt->warn (::make_unique<poisoned_value_diagnostic>
  			      (ptr, pkind, nullptr, nullptr));
  	      }
  	  }
--- 3469,3475 ----
  		const poisoned_svalue *poisoned_sval
  		  = as_a <const poisoned_svalue *> (ptr_sval);
  		enum poison_kind pkind = poisoned_sval->get_poison_kind ();
! 		ctxt->warn (std::make_unique<poisoned_value_diagnostic>
  			      (ptr, pkind, nullptr, nullptr));
  	      }
  	  }
*************** void
*** 3250,3256 ****
  region_model::check_for_writable_region (const region* dest_reg,
  					 region_model_context *ctxt) const
  {
!   /* Fail gracefully if CTXT is NULL.  */
    if (!ctxt)
      return;
  
--- 3627,3633 ----
  region_model::check_for_writable_region (const region* dest_reg,
  					 region_model_context *ctxt) const
  {
!   /* Fail gracefully if CTXT is nullptr.  */
    if (!ctxt)
      return;
  
*************** region_model::check_for_writable_region
*** 3263,3278 ****
        {
  	const function_region *func_reg = as_a <const function_region *> (base_reg);
  	tree fndecl = func_reg->get_fndecl ();
! 	ctxt->warn (make_unique<write_to_const_diagnostic>
! 		      (func_reg, fndecl));
        }
        break;
      case RK_LABEL:
        {
  	const label_region *label_reg = as_a <const label_region *> (base_reg);
  	tree label = label_reg->get_label ();
! 	ctxt->warn (make_unique<write_to_const_diagnostic>
! 		      (label_reg, label));
        }
        break;
      case RK_DECL:
--- 3640,3657 ----
        {
  	const function_region *func_reg = as_a <const function_region *> (base_reg);
  	tree fndecl = func_reg->get_fndecl ();
! 	ctxt->warn
! 	  (std::make_unique<write_to_const_diagnostic>
! 	     (func_reg, fndecl));
        }
        break;
      case RK_LABEL:
        {
  	const label_region *label_reg = as_a <const label_region *> (base_reg);
  	tree label = label_reg->get_label ();
! 	ctxt->warn
! 	  (std::make_unique<write_to_const_diagnostic>
! 	     (label_reg, label));
        }
        break;
      case RK_DECL:
*************** region_model::check_for_writable_region
*** 3285,3295 ****
  	   "this" param is "T* const").  */
  	if (TREE_READONLY (decl)
  	    && is_global_var (decl))
! 	  ctxt->warn (make_unique<write_to_const_diagnostic> (dest_reg, decl));
        }
        break;
      case RK_STRING:
!       ctxt->warn (make_unique<write_to_string_literal_diagnostic> (dest_reg));
        break;
      }
  }
--- 3664,3676 ----
  	   "this" param is "T* const").  */
  	if (TREE_READONLY (decl)
  	    && is_global_var (decl))
! 	  ctxt->warn
! 	    (std::make_unique<write_to_const_diagnostic> (dest_reg, decl));
        }
        break;
      case RK_STRING:
!       ctxt->warn
! 	(std::make_unique<write_to_string_literal_diagnostic> (dest_reg));
        break;
      }
  }
*************** region_model::get_capacity (const region
*** 3311,3323 ****
  	  {
  	    tree type = TREE_TYPE (decl);
  	    tree size = TYPE_SIZE (type);
! 	    return get_rvalue (size, NULL);
  	  }
  	else
  	  {
  	    tree size = decl_init_size (decl, false);
  	    if (size)
! 	      return get_rvalue (size, NULL);
  	  }
        }
        break;
--- 3692,3704 ----
  	  {
  	    tree type = TREE_TYPE (decl);
  	    tree size = TYPE_SIZE (type);
! 	    return get_rvalue (size, nullptr);
  	  }
  	else
  	  {
  	    tree size = decl_init_size (decl, false);
  	    if (size)
! 	      return get_rvalue (size, nullptr);
  	  }
        }
        break;
*************** region_model::check_region_access (const
*** 3367,3376 ****
      {
      default:
        gcc_unreachable ();
!     case DIR_READ:
        /* Currently a no-op.  */
        break;
!     case DIR_WRITE:
        check_for_writable_region (reg, ctxt);
        break;
      }
--- 3748,3757 ----
      {
      default:
        gcc_unreachable ();
!     case access_direction::read:
        /* Currently a no-op.  */
        break;
!     case access_direction::write:
        check_for_writable_region (reg, ctxt);
        break;
      }
*************** region_model::check_region_for_write (co
*** 3384,3390 ****
  				      const svalue *sval_hint,
  				      region_model_context *ctxt) const
  {
!   check_region_access (dest_reg, DIR_WRITE, sval_hint, ctxt);
  }
  
  /* If CTXT is non-NULL, use it to warn about any problems reading from REG.
--- 3765,3771 ----
  				      const svalue *sval_hint,
  				      region_model_context *ctxt) const
  {
!   check_region_access (dest_reg, access_direction::write, sval_hint, ctxt);
  }
  
  /* If CTXT is non-NULL, use it to warn about any problems reading from REG.
*************** bool
*** 3394,3400 ****
  region_model::check_region_for_read (const region *src_reg,
  				     region_model_context *ctxt) const
  {
!   return check_region_access (src_reg, DIR_READ, NULL, ctxt);
  }
  
  /* Concrete subclass for casts of pointers that lead to trailing bytes.  */
--- 3775,3781 ----
  region_model::check_region_for_read (const region *src_reg,
  				     region_model_context *ctxt) const
  {
!   return check_region_access (src_reg, access_direction::read, nullptr, ctxt);
  }
  
  /* Concrete subclass for casts of pointers that lead to trailing bytes.  */
*************** public:
*** 3491,3497 ****
  			      checker_path &emission_path) final override
    {
      emission_path.add_event
!       (make_unique<region_creation_event_allocation_size> (capacity, loc_info));
  
      m_has_allocation_event = true;
    }
--- 3872,3879 ----
  			      checker_path &emission_path) final override
    {
      emission_path.add_event
!       (std::make_unique<region_creation_event_allocation_size>
! 	 (capacity, loc_info));
  
      m_has_allocation_event = true;
    }
*************** public:
*** 3501,3510 ****
      interest->add_region_creation (m_rhs);
    }
  
!   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/dubious_allocation_size/"
      props.set (PROPERTY_PREFIX "lhs", m_lhs->to_json ());
      props.set (PROPERTY_PREFIX "rhs", m_rhs->to_json ());
--- 3883,3893 ----
      interest->add_region_creation (m_rhs);
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/dubious_allocation_size/"
      props.set (PROPERTY_PREFIX "lhs", m_lhs->to_json ());
      props.set (PROPERTY_PREFIX "rhs", m_rhs->to_json ());
*************** void
*** 3781,3787 ****
  region_model::check_region_size (const region *lhs_reg, const svalue *rhs_sval,
  				 region_model_context *ctxt) const
  {
!   if (!ctxt || ctxt->get_stmt () == NULL)
      return;
    /* Only report warnings on assignments that actually change the type.  */
    if (!is_any_cast_p (ctxt->get_stmt ()))
--- 4164,4170 ----
  region_model::check_region_size (const region *lhs_reg, const svalue *rhs_sval,
  				 region_model_context *ctxt) const
  {
!   if (!ctxt || ctxt->get_stmt () == nullptr)
      return;
    /* Only report warnings on assignments that actually change the type.  */
    if (!is_any_cast_p (ctxt->get_stmt ()))
*************** region_model::check_region_size (const r
*** 3827,3835 ****
  	if (TREE_CODE (cst_cap) == INTEGER_CST
  	    && !capacity_compatible_with_type (cst_cap, pointee_size_tree,
  					       is_struct))
! 	  ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg, rhs_reg,
! 							     capacity, cst_cap,
! 							     ctxt->get_stmt ()));
        }
        break;
      default:
--- 4210,4219 ----
  	if (TREE_CODE (cst_cap) == INTEGER_CST
  	    && !capacity_compatible_with_type (cst_cap, pointee_size_tree,
  					       is_struct))
! 	  ctxt->warn
! 	    (std::make_unique <dubious_allocation_size> (lhs_reg, rhs_reg,
! 							 capacity, cst_cap,
! 							 ctxt->get_stmt ()));
        }
        break;
      default:
*************** region_model::check_region_size (const r
*** 3841,3850 ****
  				     m_constraints))
  	      {
  		tree expr = get_representative_tree (capacity);
! 		ctxt->warn (make_unique <dubious_allocation_size> (lhs_reg,
! 								   rhs_reg,
! 								   capacity, expr,
! 								   ctxt->get_stmt ()));
  	      }
  	  }
        break;
--- 4225,4235 ----
  				     m_constraints))
  	      {
  		tree expr = get_representative_tree (capacity);
! 		ctxt->warn
! 		  (std::make_unique <dubious_allocation_size> (lhs_reg,
! 							       rhs_reg,
! 							       capacity, expr,
! 							       ctxt->get_stmt ()));
  	      }
  	  }
        break;
*************** region_model::set_value (const region *l
*** 3872,3878 ****
    check_region_for_write (lhs_reg, rhs_sval, ctxt);
  
    m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
! 		     ctxt ? ctxt->get_uncertainty () : NULL);
  }
  
  /* Set the value of the region given by LHS to the value given by RHS.  */
--- 4257,4263 ----
    check_region_for_write (lhs_reg, rhs_sval, ctxt);
  
    m_store.set_value (m_mgr->get_store_manager(), lhs_reg, rhs_sval,
! 		     ctxt ? ctxt->get_uncertainty () : nullptr);
  }
  
  /* Set the value of the region given by LHS to the value given by RHS.  */
*************** public:
*** 4155,4175 ****
    {
      if (!cluster)
        return;
!     for (auto iter : *cluster)
        {
! 	const binding_key *key = iter.first;
  	const svalue *sval = iter.second;
  
! 	if (const concrete_binding *concrete_key
! 	    = key->dyn_cast_concrete_binding ())
! 	  {
! 	    byte_range fragment_bytes (0, 0);
! 	    if (concrete_key->get_byte_range (&fragment_bytes))
! 	      m_fragments.safe_push (fragment (fragment_bytes, sval));
! 	  }
! 	else
! 	  m_symbolic_bindings.safe_push (key);
        }
      m_fragments.qsort (fragment::cmp_ptrs);
    }
  
--- 4540,4556 ----
    {
      if (!cluster)
        return;
!     for (auto iter : cluster->get_map ().get_concrete_bindings ())
        {
! 	const bit_range &bits = iter.first;
  	const svalue *sval = iter.second;
  
! 	byte_range fragment_bytes (0, 0);
! 	if (bits.as_byte_range (&fragment_bytes))
! 	  m_fragments.safe_push (fragment (fragment_bytes, sval));
        }
+     for (auto iter : cluster->get_map ().get_symbolic_bindings ())
+       m_symbolic_bindings.safe_push (iter);
      m_fragments.qsort (fragment::cmp_ptrs);
    }
  
*************** public:
*** 4208,4221 ****
        {
  	if (&iter != m_symbolic_bindings.begin ())
  	  pp_string (pp, ", ");
! 	(*iter).dump_to_pp (pp, true);
        }
      pp_string (pp, "])");
    }
  
  private:
    auto_vec<fragment> m_fragments;
!   auto_vec<const binding_key *> m_symbolic_bindings;
  };
  
  /* Simulate reading the bytes at BYTES from BASE_REG.
--- 4589,4602 ----
        {
  	if (&iter != m_symbolic_bindings.begin ())
  	  pp_string (pp, ", ");
! 	iter.m_region->dump_to_pp (pp, true);
        }
      pp_string (pp, "])");
    }
  
  private:
    auto_vec<fragment> m_fragments;
!   auto_vec<binding_map::symbolic_binding> m_symbolic_bindings;
  };
  
  /* Simulate reading the bytes at BYTES from BASE_REG.
*************** region_model::scan_for_null_terminator_1
*** 4330,4353 ****
    if (const string_region *str_reg = base_reg->dyn_cast_string_region ())
      {
        tree string_cst = str_reg->get_string_cst ();
!       if (const void *p = memchr (TREE_STRING_POINTER (string_cst),
! 				  0,
! 				  TREE_STRING_LENGTH (string_cst)))
  	{
! 	  size_t num_bytes_read
! 	    = (const char *)p - TREE_STRING_POINTER (string_cst) + 1;
! 	  /* Simulate the read.  */
! 	  byte_range bytes_to_read (0, num_bytes_read);
! 	  const svalue *sval = get_store_bytes (reg, bytes_to_read, ctxt);
! 	  if (out_sval)
! 	    *out_sval = sval;
! 	  if (logger)
! 	    logger->log ("using string_cst");
! 	  return m_mgr->get_or_create_int_cst (size_type_node,
! 					       num_bytes_read);
  	}
      }
- 
    const binding_cluster *cluster = m_store.get_cluster (base_reg);
    iterable_cluster c (cluster);
    if (logger)
--- 4711,4741 ----
    if (const string_region *str_reg = base_reg->dyn_cast_string_region ())
      {
        tree string_cst = str_reg->get_string_cst ();
!       if (src_byte_offset >= 0
! 	  && src_byte_offset < TREE_STRING_LENGTH (string_cst)
! 	  && wi::fits_shwi_p (src_byte_offset))
  	{
! 	  HOST_WIDE_INT str_byte_offset = src_byte_offset.to_shwi ();
! 	  const char *effective_start
! 	    = TREE_STRING_POINTER (string_cst) + str_byte_offset;
! 	  size_t effective_len
! 	    = TREE_STRING_LENGTH (string_cst) - str_byte_offset;
! 	  if (const void *p = memchr (effective_start, 0, effective_len))
! 	    {
! 	      size_t num_bytes_read
! 		= (const char *)p - effective_start + 1;
! 	      /* Simulate the read.  */
! 	      byte_range bytes_to_read (0, num_bytes_read);
! 	      const svalue *sval = get_store_bytes (reg, bytes_to_read, ctxt);
! 	      if (out_sval)
! 		*out_sval = sval;
! 	      if (logger)
! 		logger->log ("using string_cst");
! 	      return m_mgr->get_or_create_int_cst (size_type_node,
! 						   num_bytes_read);
! 	    }
  	}
      }
    const binding_cluster *cluster = m_store.get_cluster (base_reg);
    iterable_cluster c (cluster);
    if (logger)
*************** region_model::scan_for_null_terminator_1
*** 4358,4364 ****
        logger->end_log_line ();
      }
  
!   binding_map result;
  
    while (1)
      {
--- 4746,4752 ----
        logger->end_log_line ();
      }
  
!   binding_map result (*store_mgr);
  
    while (1)
      {
*************** region_model::scan_for_null_terminator (
*** 4478,4484 ****
--- 4866,4876 ----
        reg->dump_to_pp (pp, true);
        logger->end_log_line ();
      }
+   if (out_sval)
+     *out_sval = nullptr;
    const svalue *sval = scan_for_null_terminator_1 (reg, expr, out_sval, ctxt);
+   if (sval && out_sval)
+     gcc_assert (*out_sval);
    if (logger)
      {
        pretty_printer *pp = logger->get_printer ();
*************** region_model::scan_for_null_terminator (
*** 4509,4515 ****
     Simulate scanning through the buffer, reading until we find a 0 byte
     (equivalent to calling strlen).
  
!    Complain and return NULL if:
     - the buffer pointed to isn't null-terminated
     - the buffer pointed to has any uninitalized bytes before any 0-terminator
     - any of the reads aren't within the bounds of the underlying base region
--- 4901,4907 ----
     Simulate scanning through the buffer, reading until we find a 0 byte
     (equivalent to calling strlen).
  
!    Complain and return nullptr if:
     - the buffer pointed to isn't null-terminated
     - the buffer pointed to has any uninitalized bytes before any 0-terminator
     - any of the reads aren't within the bounds of the underlying base region
*************** region_model::check_for_null_terminated_
*** 4537,4543 ****
     Simulate scanning through the buffer, reading until we find a 0 byte
     (equivalent to calling strlen).
  
!    Complain and return NULL if:
     - the buffer pointed to isn't null-terminated
     - the buffer pointed to has any uninitalized bytes before any 0-terminator
     - any of the reads aren't within the bounds of the underlying base region
--- 4929,4935 ----
     Simulate scanning through the buffer, reading until we find a 0 byte
     (equivalent to calling strlen).
  
!    Complain and return nullptr if:
     - the buffer pointed to isn't null-terminated
     - the buffer pointed to has any uninitalized bytes before any 0-terminator
     - any of the reads aren't within the bounds of the underlying base region
*************** region_model::check_for_null_terminated_
*** 4546,4552 ****
     (including the null terminator) if INCLUDE_TERMINATOR is true, or strlen
     of the buffer (not including the null terminator) if it is false.
  
!    Also, when returning an svalue, if OUT_SVAL is non-NULL, write to
     *OUT_SVAL with an svalue representing the content of the buffer up to
     and including the terminator.
  
--- 4938,4944 ----
     (including the null terminator) if INCLUDE_TERMINATOR is true, or strlen
     of the buffer (not including the null terminator) if it is false.
  
!    Also, when returning an svalue, if OUT_SVAL is non-nullptr, write to
     *OUT_SVAL with an svalue representing the content of the buffer up to
     and including the terminator.
  
*************** region_model::check_for_null_terminated_
*** 4637,4645 ****
  			       m_cd.get_model ()->get_current_function ()->decl,
  			       m_cd.get_model ()->get_stack_depth ());
  
!       add_event (make_unique<null_terminator_check_event> (loc_info,
! 							   arg_details));
!       add_note (make_unique <null_terminator_check_decl_note> (arg_details));
      }
    private:
      const call_details &m_cd;
--- 5029,5039 ----
  			       m_cd.get_model ()->get_current_function ()->decl,
  			       m_cd.get_model ()->get_stack_depth ());
  
!       add_event
! 	(std::make_unique<null_terminator_check_event> (loc_info,
! 							arg_details));
!       add_note
! 	(std::make_unique <null_terminator_check_decl_note> (arg_details));
      }
    private:
      const call_details &m_cd;
*************** region_model::check_for_null_terminated_
*** 4660,4665 ****
--- 5054,5061 ----
  				  out_sval,
  				  &my_ctxt))
      {
+       if (out_sval)
+ 	gcc_assert (*out_sval);
        if (include_terminator)
  	return num_bytes_read_sval;
        else
*************** region_model::mark_region_as_unknown (co
*** 4778,4784 ****
    svalue_set maybe_live_values;
    m_store.mark_region_as_unknown (m_mgr->get_store_manager(), reg,
  				  uncertainty, &maybe_live_values);
!   m_store.on_maybe_live_values (maybe_live_values);
  }
  
  /* Determine what is known about the condition "LHS_SVAL OP RHS_SVAL" within
--- 5174,5181 ----
    svalue_set maybe_live_values;
    m_store.mark_region_as_unknown (m_mgr->get_store_manager(), reg,
  				  uncertainty, &maybe_live_values);
!   m_store.on_maybe_live_values (*m_mgr->get_store_manager (),
! 				maybe_live_values);
  }
  
  /* Determine what is known about the condition "LHS_SVAL OP RHS_SVAL" within
*************** region_model::eval_condition (const sval
*** 4981,4986 ****
--- 5378,5407 ----
  	}
      }
  
+   /* Try range_op, but avoid cases where we have been sloppy about types.  */
+   if (lhs->get_type ()
+       && rhs->get_type ()
+       && range_compatible_p (lhs->get_type (), rhs->get_type ()))
+     {
+       value_range lhs_vr, rhs_vr;
+       if (lhs->maybe_get_value_range (lhs_vr))
+ 	if (rhs->maybe_get_value_range (rhs_vr))
+ 	  {
+ 	    range_op_handler handler (op);
+ 	    if (handler)
+ 	      {
+ 		int_range_max out;
+ 		if (handler.fold_range (out, boolean_type_node, lhs_vr, rhs_vr))
+ 		  {
+ 		    if (out.zero_p ())
+ 		      return tristate::TS_FALSE;
+ 		    if (out.nonzero_p ())
+ 		      return tristate::TS_TRUE;
+ 		  }
+ 	      }
+ 	  }
+     }
+ 
    /* Attempt to unwrap cast if there is one, and the types match.  */
    tree lhs_type = lhs->get_type ();
    tree rhs_type = rhs->get_type ();
*************** region_model::add_constraint (tree lhs,
*** 5385,5391 ****
  {
    bool sat = add_constraint (lhs, op, rhs, ctxt);
    if (!sat && out)
!     *out = make_unique <rejected_op_constraint> (*this, lhs, op, rhs);
    return sat;
  }
  
--- 5806,5817 ----
  {
    bool sat = add_constraint (lhs, op, rhs, ctxt);
    if (!sat && out)
!     {
!       const svalue *lhs_sval = get_rvalue (lhs, nullptr);
!       const svalue *rhs_sval = get_rvalue (rhs, nullptr);
!       *out = std::make_unique <rejected_op_constraint> (*this,
! 							lhs_sval, op, rhs_sval);
!     }
    return sat;
  }
  
*************** region_model::get_representative_path_va
*** 5507,5513 ****
  					   svalue_set *visited,
  					   logger *logger) const
  {
!   if (sval == NULL)
      return path_var (NULL_TREE, 0);
  
    LOG_SCOPE (logger);
--- 5933,5939 ----
  					   svalue_set *visited,
  					   logger *logger) const
  {
!   if (sval == nullptr)
      return path_var (NULL_TREE, 0);
  
    LOG_SCOPE (logger);
*************** region_model::get_representative_path_va
*** 5780,5933 ****
    return result;
  }
  
- /* Update this model for any phis in SNODE, assuming we came from
-    LAST_CFG_SUPEREDGE.  */
- 
- void
- region_model::update_for_phis (const supernode *snode,
- 			       const cfg_superedge *last_cfg_superedge,
- 			       region_model_context *ctxt)
- {
-   gcc_assert (last_cfg_superedge);
- 
-   /* Copy this state and pass it to handle_phi so that all of the phi stmts
-      are effectively handled simultaneously.  */
-   const region_model old_state (*this);
- 
-   hash_set<const svalue *> svals_changing_meaning;
- 
-   for (gphi_iterator gpi = const_cast<supernode *>(snode)->start_phis ();
-        !gsi_end_p (gpi); gsi_next (&gpi))
-     {
-       gphi *phi = gpi.phi ();
- 
-       tree src = last_cfg_superedge->get_phi_arg (phi);
-       tree lhs = gimple_phi_result (phi);
- 
-       /* Update next_state based on phi and old_state.  */
-       handle_phi (phi, lhs, src, old_state, svals_changing_meaning, ctxt);
-     }
- 
-   for (auto iter : svals_changing_meaning)
-     m_constraints->purge_state_involving (iter);
- }
- 
- /* Attempt to update this model for taking EDGE (where the last statement
-    was LAST_STMT), returning true if the edge can be taken, false
-    otherwise.
-    When returning false, if OUT is non-NULL, write a new rejected_constraint
-    to it.
- 
-    For CFG superedges where LAST_STMT is a conditional or a switch
-    statement, attempt to add the relevant conditions for EDGE to this
-    model, returning true if they are feasible, or false if they are
-    impossible.
- 
-    For call superedges, push frame information and store arguments
-    into parameters.
- 
-    For return superedges, pop frame information and store return
-    values into any lhs.
- 
-    Rejection of call/return superedges happens elsewhere, in
-    program_point::on_edge (i.e. based on program point, rather
-    than program state).  */
- 
- bool
- region_model::maybe_update_for_edge (const superedge &edge,
- 				     const gimple *last_stmt,
- 				     region_model_context *ctxt,
- 				     std::unique_ptr<rejected_constraint> *out)
- {
-   /* Handle frame updates for interprocedural edges.  */
-   switch (edge.m_kind)
-     {
-     default:
-       break;
- 
-     case SUPEREDGE_CALL:
-       {
- 	const call_superedge *call_edge = as_a <const call_superedge *> (&edge);
- 	update_for_call_superedge (*call_edge, ctxt);
-       }
-       break;
- 
-     case SUPEREDGE_RETURN:
-       {
- 	const return_superedge *return_edge
- 	  = as_a <const return_superedge *> (&edge);
- 	update_for_return_superedge (*return_edge, ctxt);
-       }
-       break;
- 
-     case SUPEREDGE_INTRAPROCEDURAL_CALL:
-       /* This is a no-op for call summaries; we should already
- 	 have handled the effect of the call summary at the call stmt.  */
-       break;
-     }
- 
-   if (last_stmt == NULL)
-     return true;
- 
-   /* Apply any constraints for conditionals/switch/computed-goto statements.  */
- 
-   if (const gcond *cond_stmt = dyn_cast <const gcond *> (last_stmt))
-     {
-       const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (&edge);
-       return apply_constraints_for_gcond (*cfg_sedge, cond_stmt, ctxt, out);
-     }
- 
-   if (const gswitch *switch_stmt = dyn_cast <const gswitch *> (last_stmt))
-     {
-       const switch_cfg_superedge *switch_sedge
- 	= as_a <const switch_cfg_superedge *> (&edge);
-       return apply_constraints_for_gswitch (*switch_sedge, switch_stmt,
- 					    ctxt, out);
-     }
- 
-   if (const ggoto *goto_stmt = dyn_cast <const ggoto *> (last_stmt))
-     {
-       const cfg_superedge *cfg_sedge = as_a <const cfg_superedge *> (&edge);
-       return apply_constraints_for_ggoto (*cfg_sedge, goto_stmt, ctxt);
-     }
- 
-   /* Apply any constraints due to an exception being thrown.  */
-   if (const cfg_superedge *cfg_sedge = dyn_cast <const cfg_superedge *> (&edge))
-     if (cfg_sedge->get_flags () & EDGE_EH)
-       return apply_constraints_for_exception (last_stmt, ctxt, out);
- 
-   return true;
- }
- 
  /* Push a new frame_region on to the stack region.
     Populate the frame_region with child regions for the function call's
     parameters, using values from the arguments at the callsite in the
     caller's frame.  */
  
  void
! region_model::update_for_gcall (const gcall *call_stmt,
  				region_model_context *ctxt,
  				function *callee)
  {
    /* Build a vec of argument svalues, using the current top
       frame for resolving tree expressions.  */
!   auto_vec<const svalue *> arg_svals (gimple_call_num_args (call_stmt));
  
!   for (unsigned i = 0; i < gimple_call_num_args (call_stmt); i++)
      {
!       tree arg = gimple_call_arg (call_stmt, i);
        arg_svals.quick_push (get_rvalue (arg, ctxt));
      }
  
    if(!callee)
    {
      /* Get the function * from the gcall.  */
!     tree fn_decl = get_fndecl_for_call (call_stmt,ctxt);
      callee = DECL_STRUCT_FUNCTION (fn_decl);
    }
  
    gcc_assert (callee);
!   push_frame (*callee, &arg_svals, ctxt);
  }
  
  /* Pop the top-most frame_region from the stack, and copy the return
--- 6206,6240 ----
    return result;
  }
  
  /* Push a new frame_region on to the stack region.
     Populate the frame_region with child regions for the function call's
     parameters, using values from the arguments at the callsite in the
     caller's frame.  */
  
  void
! region_model::update_for_gcall (const gcall &call_stmt,
  				region_model_context *ctxt,
  				function *callee)
  {
    /* Build a vec of argument svalues, using the current top
       frame for resolving tree expressions.  */
!   auto_vec<const svalue *> arg_svals (gimple_call_num_args (&call_stmt));
  
!   for (unsigned i = 0; i < gimple_call_num_args (&call_stmt); i++)
      {
!       tree arg = gimple_call_arg (&call_stmt, i);
        arg_svals.quick_push (get_rvalue (arg, ctxt));
      }
  
    if(!callee)
    {
      /* Get the function * from the gcall.  */
!     tree fn_decl = get_fndecl_for_call (call_stmt, ctxt);
      callee = DECL_STRUCT_FUNCTION (fn_decl);
    }
  
    gcc_assert (callee);
!   push_frame (*callee, &call_stmt, &arg_svals, ctxt);
  }
  
  /* Pop the top-most frame_region from the stack, and copy the return
*************** region_model::update_for_gcall (const gc
*** 5935,5970 ****
     the call (if any).  */
  
  void
! region_model::update_for_return_gcall (const gcall *call_stmt,
  				       region_model_context *ctxt)
  {
    /* Get the lvalue for the result of the call, passing it to pop_frame,
       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 (const call_superedge &call_edge,
! 					 region_model_context *ctxt)
! {
!   const gcall *call_stmt = call_edge.get_call_stmt ();
!   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::update_for_return_superedge (const return_superedge &return_edge,
! 					   region_model_context *ctxt)
! {
!   const gcall *call_stmt = return_edge.get_call_stmt ();
!   update_for_return_gcall (call_stmt, ctxt);
  }
  
  /* Attempt to use R to replay SUMMARY into this object.
--- 6242,6255 ----
     the call (if any).  */
  
  void
! region_model::update_for_return_gcall (const gcall &call_stmt,
  				       region_model_context *ctxt)
  {
    /* Get the lvalue for the result of the call, passing it to pop_frame,
       so that pop_frame can determine the region with respect to the
       *caller* frame.  */
!   tree lhs = gimple_call_lhs (&call_stmt);
!   pop_frame (lhs, nullptr, ctxt, &call_stmt);
  }
  
  /* Attempt to use R to replay SUMMARY into this object.
*************** region_model::replay_call_summary (call_
*** 6000,6239 ****
    return true;
  }
  
- /* Given a true or false edge guarded by conditional statement COND_STMT,
-    determine appropriate constraints for the edge to be taken.
- 
-    If they are feasible, add the constraints and return true.
- 
-    Return false if the constraints contradict existing knowledge
-    (and so the edge should not be taken).
-    When returning false, if OUT is non-NULL, write a new rejected_constraint
-    to it.  */
- 
- bool
- region_model::
- apply_constraints_for_gcond (const cfg_superedge &sedge,
- 			     const gcond *cond_stmt,
- 			     region_model_context *ctxt,
- 			     std::unique_ptr<rejected_constraint> *out)
- {
-   ::edge cfg_edge = sedge.get_cfg_edge ();
-   gcc_assert (cfg_edge != NULL);
-   gcc_assert (cfg_edge->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE));
- 
-   enum tree_code op = gimple_cond_code (cond_stmt);
-   tree lhs = gimple_cond_lhs (cond_stmt);
-   tree rhs = gimple_cond_rhs (cond_stmt);
-   if (cfg_edge->flags & EDGE_FALSE_VALUE)
-     op = invert_tree_comparison (op, false /* honor_nans */);
-   return add_constraint (lhs, op, rhs, ctxt, out);
- }
- 
- /* Return true iff SWITCH_STMT has a non-default label that contains
-    INT_CST.  */
- 
- static bool
- has_nondefault_case_for_value_p (const gswitch *switch_stmt, tree int_cst)
- {
-   /* We expect the initial label to be the default; skip it.  */
-   gcc_assert (CASE_LOW (gimple_switch_label (switch_stmt, 0)) == NULL);
-   unsigned min_idx = 1;
-   unsigned max_idx = gimple_switch_num_labels (switch_stmt) - 1;
- 
-   /* Binary search: try to find the label containing INT_CST.
-      This requires the cases to be sorted by CASE_LOW (done by the
-      gimplifier).  */
-   while (max_idx >= min_idx)
-     {
-       unsigned case_idx = (min_idx + max_idx) / 2;
-       tree label =  gimple_switch_label (switch_stmt, case_idx);
-       tree low = CASE_LOW (label);
-       gcc_assert (low);
-       tree high = CASE_HIGH (label);
-       if (!high)
- 	high = low;
-       if (tree_int_cst_compare (int_cst, low) < 0)
- 	{
- 	  /* INT_CST is below the range of this label.  */
- 	  gcc_assert (case_idx > 0);
- 	  max_idx = case_idx - 1;
- 	}
-       else if (tree_int_cst_compare (int_cst, high) > 0)
- 	{
- 	  /* INT_CST is above the range of this case.  */
- 	  min_idx = case_idx + 1;
- 	}
-       else
- 	/* This case contains INT_CST.  */
- 	return true;
-     }
-   /* Not found.  */
-   return false;
- }
- 
- /* Return true iff SWITCH_STMT (which must be on an enum value)
-    has nondefault cases handling all values in the enum.  */
- 
- static bool
- has_nondefault_cases_for_all_enum_values_p (const gswitch *switch_stmt,
- 					    tree type)
- {
-   gcc_assert (switch_stmt);
-   gcc_assert (TREE_CODE (type) == ENUMERAL_TYPE);
- 
-   for (tree enum_val_iter = TYPE_VALUES (type);
-        enum_val_iter;
-        enum_val_iter = TREE_CHAIN (enum_val_iter))
-     {
-       tree enum_val = TREE_VALUE (enum_val_iter);
-       gcc_assert (TREE_CODE (enum_val) == CONST_DECL);
-       gcc_assert (TREE_CODE (DECL_INITIAL (enum_val)) == INTEGER_CST);
-       if (!has_nondefault_case_for_value_p (switch_stmt,
- 					    DECL_INITIAL (enum_val)))
- 	return false;
-     }
-   return true;
- }
- 
- /* Given an EDGE guarded by SWITCH_STMT, determine appropriate constraints
-    for the edge to be taken.
- 
-    If they are feasible, add the constraints and return true.
- 
-    Return false if the constraints contradict existing knowledge
-    (and so the edge should not be taken).
-    When returning false, if OUT is non-NULL, write a new rejected_constraint
-    to it.  */
- 
- bool
- region_model::
- apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
- 			       const gswitch *switch_stmt,
- 			       region_model_context *ctxt,
- 			       std::unique_ptr<rejected_constraint> *out)
- {
-   tree index  = gimple_switch_index (switch_stmt);
-   const svalue *index_sval = get_rvalue (index, ctxt);
-   bool check_index_type = true;
- 
-   /* With -fshort-enum, there may be a type cast.  */
-   if (ctxt && index_sval->get_kind () == SK_UNARYOP
-       && TREE_CODE (index_sval->get_type ()) == INTEGER_TYPE)
-     {
-       const unaryop_svalue *unaryop = as_a <const unaryop_svalue *> (index_sval);
-       if (unaryop->get_op () == NOP_EXPR
- 	  && is_a <const initial_svalue *> (unaryop->get_arg ()))
- 	if (const initial_svalue *initvalop = (as_a <const initial_svalue *>
- 					       (unaryop->get_arg ())))
- 	  if (initvalop->get_type ()
- 	      && TREE_CODE (initvalop->get_type ()) == ENUMERAL_TYPE)
- 	    {
- 	      index_sval = initvalop;
- 	      check_index_type = false;
- 	    }
-     }
- 
-   /* If we're switching based on an enum type, assume that the user is only
-      working with values from the enum.  Hence if this is an
-      implicitly-created "default", assume it doesn't get followed.
-      This fixes numerous "uninitialized" false positives where we otherwise
-      consider jumping past the initialization cases.  */
- 
-   if (/* Don't check during feasibility-checking (when ctxt is NULL).  */
-       ctxt
-       /* Must be an enum value.  */
-       && index_sval->get_type ()
-       && (!check_index_type
- 	  || TREE_CODE (TREE_TYPE (index)) == ENUMERAL_TYPE)
-       && TREE_CODE (index_sval->get_type ()) == ENUMERAL_TYPE
-       /* If we have a constant, then we can check it directly.  */
-       && index_sval->get_kind () != SK_CONSTANT
-       && edge.implicitly_created_default_p ()
-       && has_nondefault_cases_for_all_enum_values_p (switch_stmt,
- 						     index_sval->get_type ())
-       /* Don't do this if there's a chance that the index is
- 	 attacker-controlled.  */
-       && !ctxt->possibly_tainted_p (index_sval))
-     {
-       if (out)
- 	*out = make_unique <rejected_default_case> (*this);
-       return false;
-     }
- 
-   bounded_ranges_manager *ranges_mgr = get_range_manager ();
-   const bounded_ranges *all_cases_ranges
-     = ranges_mgr->get_or_create_ranges_for_switch (&edge, switch_stmt);
-   bool sat = m_constraints->add_bounded_ranges (index_sval, all_cases_ranges);
-   if (!sat && out)
-     *out = make_unique <rejected_ranges_constraint> (*this, index, all_cases_ranges);
-   if (sat && ctxt && !all_cases_ranges->empty_p ())
-     ctxt->on_bounded_ranges (*index_sval, *all_cases_ranges);
-   return sat;
- }
- 
- /* Given an edge reached by GOTO_STMT, determine appropriate constraints
-    for the edge to be taken.
- 
-    If they are feasible, add the constraints and return true.
- 
-    Return false if the constraints contradict existing knowledge
-    (and so the edge should not be taken).  */
- 
- bool
- region_model::apply_constraints_for_ggoto (const cfg_superedge &edge,
- 					   const ggoto *goto_stmt,
- 					   region_model_context *ctxt)
- {
-   tree dest = gimple_goto_dest (goto_stmt);
-   const svalue *dest_sval = get_rvalue (dest, ctxt);
- 
-   /* If we know we were jumping to a specific label.  */
-   if (tree dst_label = edge.m_dest->get_label ())
-     {
-       const label_region *dst_label_reg
- 	= m_mgr->get_region_for_label (dst_label);
-       const svalue *dst_label_ptr
- 	= m_mgr->get_ptr_svalue (ptr_type_node, dst_label_reg);
- 
-       if (!add_constraint (dest_sval, EQ_EXPR, dst_label_ptr, ctxt))
- 	return false;
-     }
- 
-   return true;
- }
- 
- /* Apply any constraints due to an exception being thrown at LAST_STMT.
- 
-    If they are feasible, add the constraints and return true.
- 
-    Return false if the constraints contradict existing knowledge
-    (and so the edge should not be taken).
-    When returning false, if OUT is non-NULL, write a new rejected_constraint
-    to it.  */
- 
- bool
- region_model::
- apply_constraints_for_exception (const gimple *last_stmt,
- 				 region_model_context *ctxt,
- 				 std::unique_ptr<rejected_constraint> *out)
- {
-   gcc_assert (last_stmt);
-   if (const gcall *call = dyn_cast <const gcall *> (last_stmt))
-     if (tree callee_fndecl = get_fndecl_for_call (call, ctxt))
-       if (is_named_call_p (callee_fndecl, "operator new", call, 1)
- 	  || is_named_call_p (callee_fndecl, "operator new []", call, 1))
- 	{
- 	  /* We have an exception thrown from operator new.
- 	     Add a constraint that the result was NULL, to avoid a false
- 	     leak report due to the result being lost when following
- 	     the EH edge.  */
- 	  if (tree lhs = gimple_call_lhs (call))
- 	    return add_constraint (lhs, EQ_EXPR, null_pointer_node, ctxt, out);
- 	  return true;
- 	}
-   return true;
- }
- 
  /* For use with push_frame when handling a top-level call within the analysis.
     PARAM has a defined but unknown initial value.
     Anything it points to has escaped, since the calling context "knows"
--- 6285,6290 ----
*************** region_model::on_top_level_param (tree p
*** 6252,6258 ****
        const svalue *init_ptr_sval
  	= m_mgr->get_or_create_initial_value (param_reg);
        const region *pointee_reg = m_mgr->get_symbolic_region (init_ptr_sval);
!       m_store.mark_as_escaped (pointee_reg);
        if (nonnull)
  	{
  	  const svalue *null_ptr_sval
--- 6303,6310 ----
        const svalue *init_ptr_sval
  	= m_mgr->get_or_create_initial_value (param_reg);
        const region *pointee_reg = m_mgr->get_symbolic_region (init_ptr_sval);
!       store_manager *store_mgr = m_mgr->get_store_manager ();
!       m_store.mark_as_escaped (*store_mgr, pointee_reg);
        if (nonnull)
  	{
  	  const svalue *null_ptr_sval
*************** region_model::on_top_level_param (tree p
*** 6265,6270 ****
--- 6317,6326 ----
  /* Update this region_model to reflect pushing a frame onto the stack
     for a call to FUN.
  
+    If CALL_STMT is non-NULL, this is for the interprocedural case where
+    we already have an execution path into the caller.  It can be NULL for
+    top-level entrypoints into the analysis, or in selftests.
+ 
     If ARG_SVALS is non-NULL, use it to populate the parameters
     in the new frame.
     Otherwise, the params have their initial_svalues.
*************** region_model::on_top_level_param (tree p
*** 6273,6286 ****
  
  const region *
  region_model::push_frame (const function &fun,
  			  const vec<const svalue *> *arg_svals,
  			  region_model_context *ctxt)
  {
!   m_current_frame = m_mgr->get_frame_region (m_current_frame, fun);
    if (arg_svals)
      {
        /* Arguments supplied from a caller frame.  */
-       tree fndecl = fun.decl;
        unsigned idx = 0;
        for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
  	   iter_parm = DECL_CHAIN (iter_parm), ++idx)
--- 6329,6360 ----
  
  const region *
  region_model::push_frame (const function &fun,
+ 			  const gcall *call_stmt,
  			  const vec<const svalue *> *arg_svals,
  			  region_model_context *ctxt)
  {
!   tree fndecl = fun.decl;
    if (arg_svals)
      {
+       /* If the result of the callee is DECL_BY_REFERENCE, then
+ 	 we'll need to store a reference to the caller's lhs of
+ 	 CALL_STMT within callee's result.
+ 	 If so, determine the region of CALL_STMT's lhs within
+ 	 the caller's frame before updating m_current_frame.  */
+       const region *caller_return_by_reference_reg = nullptr;
+       if (tree result = DECL_RESULT (fndecl))
+ 	if (DECL_BY_REFERENCE (result))
+ 	  {
+ 	    gcc_assert (call_stmt);
+ 	    tree lhs = gimple_call_lhs (call_stmt);
+ 	    gcc_assert (lhs);
+ 	    caller_return_by_reference_reg = get_lvalue (lhs, ctxt);
+ 	  }
+ 
+       /* Update m_current_frame.  */
+       m_current_frame = m_mgr->get_frame_region (m_current_frame, fun);
+ 
        /* Arguments supplied from a caller frame.  */
        unsigned idx = 0;
        for (tree iter_parm = DECL_ARGUMENTS (fndecl); iter_parm;
  	   iter_parm = DECL_CHAIN (iter_parm), ++idx)
*************** region_model::push_frame (const function
*** 6308,6320 ****
  					 va_arg_idx);
  	  set_value (var_arg_reg, arg_sval, ctxt);
  	}
      }
    else
      {
        /* Otherwise we have a top-level call within the analysis.  The params
  	 have defined but unknown initial values.
  	 Anything they point to has escaped.  */
!       tree fndecl = fun.decl;
  
        /* Handle "__attribute__((nonnull))".   */
        tree fntype = TREE_TYPE (fndecl);
--- 6382,6421 ----
  					 va_arg_idx);
  	  set_value (var_arg_reg, arg_sval, ctxt);
  	}
+ 
+       /* If the result of the callee is DECL_BY_REFERENCE, then above
+ 	 we should have determined the region within the
+ 	 caller's frame that the callee will be writing back to.
+ 	 Use this now to initialize the reference in callee's frame.  */
+       if (tree result = DECL_RESULT (fndecl))
+ 	if (DECL_BY_REFERENCE (result))
+ 	  {
+ 	    /* Get reference to the caller lhs.  */
+ 	    gcc_assert (caller_return_by_reference_reg);
+ 	    const svalue *ref_sval
+ 	      = m_mgr->get_ptr_svalue (TREE_TYPE (result),
+ 				       caller_return_by_reference_reg);
+ 
+ 	    /* Get region for default val of DECL_RESULT within the
+ 	       callee.  */
+ 	    if (tree result_default_ssa = get_ssa_default_def (fun, result))
+ 	      {
+ 		const region *callee_result_reg
+ 		  = get_lvalue (result_default_ssa, ctxt);
+ 
+ 		/* Set the callee's reference to refer to the caller's lhs.  */
+ 		set_value (callee_result_reg, ref_sval, ctxt);
+ 	      }
+ 	  }
      }
    else
      {
        /* Otherwise we have a top-level call within the analysis.  The params
  	 have defined but unknown initial values.
  	 Anything they point to has escaped.  */
! 
!       /* Update m_current_frame.  */
!       m_current_frame = m_mgr->get_frame_region (m_current_frame, fun);
  
        /* Handle "__attribute__((nonnull))".   */
        tree fntype = TREE_TYPE (fndecl);
*************** public:
*** 6365,6410 ****
        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;
--- 6466,6486 ----
        m_call_stmt (call_stmt),
        m_caller_frame (caller_frame)
    {}
! 
!   pending_location
!   get_pending_location_for_diag () const override
    {
!     pending_location ploc
!       = region_model_context_decorator::get_pending_location_for_diag ();
  
!     ploc.m_event_loc_info
!       = event_loc_info (m_call_stmt->location,
! 			m_caller_frame.get_fndecl (),
! 			m_caller_frame.get_stack_depth ());
! 
!     return ploc;
    }
+ 
    const gimple *get_stmt () const override
    {
      return m_call_stmt;
*************** private:
*** 6433,6439 ****
  
     Purge the frame region and all its descendent regions.
     Convert any pointers that point into such regions into
!    POISON_KIND_POPPED_STACK svalues.  */
  
  void
  region_model::pop_frame (tree result_lvalue,
--- 6509,6515 ----
  
     Purge the frame region and all its descendent regions.
     Convert any pointers that point into such regions into
!    poison_kind::popped_stack svalues.  */
  
  void
  region_model::pop_frame (tree result_lvalue,
*************** region_model::pop_frame (tree result_lva
*** 6454,6460 ****
    /* Evaluate the result, within the callee frame.  */
    tree fndecl = m_current_frame->get_function ().decl;
    tree result = DECL_RESULT (fndecl);
!   const svalue *retval = NULL;
    if (result
        && TREE_TYPE (result) != void_type_node
        && eval_return_svalue)
--- 6530,6536 ----
    /* Evaluate the result, within the callee frame.  */
    tree fndecl = m_current_frame->get_function ().decl;
    tree result = DECL_RESULT (fndecl);
!   const svalue *retval = nullptr;
    if (result
        && TREE_TYPE (result) != void_type_node
        && eval_return_svalue)
*************** region_model::pop_frame (tree result_lva
*** 6467,6473 ****
    /* Pop the frame.  */
    m_current_frame = m_current_frame->get_calling_frame ();
  
!   if (result_lvalue && retval)
      {
        gcc_assert (eval_return_svalue);
  
--- 6543,6553 ----
    /* Pop the frame.  */
    m_current_frame = m_current_frame->get_calling_frame ();
  
!   if (result_lvalue
!       && retval
!       /* Don't write back for DECL_BY_REFERENCE; the writes
! 	 should have happened within the callee already.  */
!       && !DECL_BY_REFERENCE (result))
      {
        gcc_assert (eval_return_svalue);
  
*************** region_model::pop_frame (tree result_lva
*** 6483,6490 ****
        set_value (result_dst_reg, retval, call_stmt ? &caller_ctxt : ctxt);
      }
  
!   unbind_region_and_descendents (frame_reg,POISON_KIND_POPPED_STACK);
!   notify_on_pop_frame (this, &pre_popped_model, retval, ctxt);
  }
  
  /* Get the number of frames in this region_model's stack.  */
--- 6563,6576 ----
        set_value (result_dst_reg, retval, call_stmt ? &caller_ctxt : ctxt);
      }
  
!   unbind_region_and_descendents (frame_reg,poison_kind::popped_stack);
! 
!   if (auto chan = g->get_channels ().analyzer_events_channel.get_if_active ())
!     {
!       gcc::topics::analyzer_events::on_frame_popped msg
! 	{this, &pre_popped_model, retval, ctxt};
!       chan->publish (msg);
!     }
  }
  
  /* Get the number of frames in this region_model's stack.  */
*************** region_model::unbind_region_and_descende
*** 6552,6603 ****
      }
  }
  
- /* Implementation of BindingVisitor.
-    Update the bound svalues for regions below REG to use poisoned
-    values instead.  */
- 
- struct bad_pointer_finder
- {
-   bad_pointer_finder (const region *reg, enum poison_kind pkind,
- 		      region_model_manager *mgr)
-   : m_reg (reg), m_pkind (pkind), m_mgr (mgr), m_count (0)
-   {}
- 
-   void on_binding (const binding_key *, const svalue *&sval)
-   {
-     if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
-       {
- 	const region *ptr_dst = ptr_sval->get_pointee ();
- 	/* Poison ptrs to descendents of REG, but not to REG itself,
- 	   otherwise double-free detection doesn't work (since sm-state
- 	   for "free" is stored on the original ptr svalue).  */
- 	if (ptr_dst->descendent_of_p (m_reg)
- 	    && ptr_dst != m_reg)
- 	  {
- 	    sval = m_mgr->get_or_create_poisoned_svalue (m_pkind,
- 							 sval->get_type ());
- 	    ++m_count;
- 	  }
-       }
-   }
- 
-   const region *m_reg;
-   enum poison_kind m_pkind;
-   region_model_manager *const m_mgr;
-   int m_count;
- };
- 
  /* Find any pointers to REG or its descendents; convert them to
!    poisoned values of kind PKIND.
!    Return the number of pointers that were poisoned.  */
  
! int
  region_model::poison_any_pointers_to_descendents (const region *reg,
! 						   enum poison_kind pkind)
  {
!   bad_pointer_finder bv (reg, pkind, m_mgr);
!   m_store.for_each_binding (bv);
!   return bv.m_count;
  }
  
  /* Attempt to merge THIS with OTHER_MODEL, writing the result
--- 6638,6676 ----
      }
  }
  
  /* Find any pointers to REG or its descendents; convert them to
!    poisoned values of kind PKIND.  */
  
! void
  region_model::poison_any_pointers_to_descendents (const region *reg,
! 						  enum poison_kind pkind)
  {
!   for (const auto &cluster_iter : m_store)
!     {
!       binding_cluster *cluster = cluster_iter.second;
!       for (auto iter = cluster->begin ();
! 	   iter != cluster->end ();
! 	   ++iter)
! 	{
! 	  auto bp = *iter;
! 	  const svalue *sval = bp.m_sval;
! 	  if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
! 	    {
! 	      const region *ptr_dst = ptr_sval->get_pointee ();
! 	      /* Poison ptrs to descendents of REG, but not to REG itself,
! 		 otherwise double-free detection doesn't work (since sm-state
! 		 for "free" is stored on the original ptr svalue).  */
! 	      if (ptr_dst->descendent_of_p (reg)
! 		  && ptr_dst != reg)
! 		{
! 		  const svalue *new_sval
! 		    = m_mgr->get_or_create_poisoned_svalue (pkind,
! 							    sval->get_type ());
! 		  cluster->get_map ().overwrite (iter, new_sval);
! 		}
! 	    }
! 	}
!     }
  }
  
  /* Attempt to merge THIS with OTHER_MODEL, writing the result
*************** region_model::can_merge_with_p (const re
*** 6640,6645 ****
--- 6713,6726 ----
    for (auto iter : m.m_svals_changing_meaning)
      out_model->m_constraints->purge_state_involving (iter);
  
+   if (m_thrown_exceptions_stack != other_model.m_thrown_exceptions_stack)
+     return false;
+   out_model->m_thrown_exceptions_stack = m_thrown_exceptions_stack;
+ 
+   if (m_caught_exceptions_stack != other_model.m_caught_exceptions_stack)
+     return false;
+   out_model->m_caught_exceptions_stack = m_caught_exceptions_stack;
+ 
    return true;
  }
  
*************** region_model::can_merge_with_p (const re
*** 6647,6656 ****
     otherwise.  */
  
  tree
! region_model::get_fndecl_for_call (const gcall *call,
  				   region_model_context *ctxt)
  {
!   tree fn_ptr = gimple_call_fn (call);
    if (fn_ptr == NULL_TREE)
      return NULL_TREE;
    const svalue *fn_ptr_sval = get_rvalue (fn_ptr, ctxt);
--- 6728,6737 ----
     otherwise.  */
  
  tree
! region_model::get_fndecl_for_call (const gcall &call,
  				   region_model_context *ctxt)
  {
!   tree fn_ptr = gimple_call_fn (&call);
    if (fn_ptr == NULL_TREE)
      return NULL_TREE;
    const svalue *fn_ptr_sval = get_rvalue (fn_ptr, ctxt);
*************** private:
*** 6773,6779 ****
  class contains_floating_point_visitor : public visitor
  {
  public:
!   contains_floating_point_visitor (const svalue *root_sval) : m_result (NULL)
    {
      root_sval->accept (this);
    }
--- 6854,6860 ----
  class contains_floating_point_visitor : public visitor
  {
  public:
!   contains_floating_point_visitor (const svalue *root_sval) : m_result (nullptr)
    {
      root_sval->accept (this);
    }
*************** region_model::check_dynamic_size_for_flo
*** 6825,6831 ****
    if (const svalue *float_sval = v.get_svalue_to_report ())
  	{
  	  tree diag_arg = get_representative_tree (float_sval);
! 	  ctxt->warn (make_unique<float_as_size_arg> (diag_arg));
  	}
  }
  
--- 6906,6912 ----
    if (const svalue *float_sval = v.get_svalue_to_report ())
  	{
  	  tree diag_arg = get_representative_tree (float_sval);
! 	  ctxt->warn (std::make_unique<float_as_size_arg> (diag_arg));
  	}
  }
  
*************** region_model::get_or_create_region_for_h
*** 6867,6875 ****
  
  	if (update_state_machine && cd)
  		{
! 			const svalue *ptr_sval
! 			= m_mgr->get_ptr_svalue (cd->get_lhs_type (), reg);
!       transition_ptr_sval_non_null (ctxt, ptr_sval);
  		}
  
    return reg;
--- 6948,6956 ----
  
  	if (update_state_machine && cd)
  		{
! 		  const svalue *ptr_sval
! 		    = m_mgr->get_ptr_svalue (cd->get_lhs_type (), reg);
! 		  transition_ptr_sval_non_null (ctxt, ptr_sval);
  		}
  
    return reg;
*************** region_model::get_referenced_base_region
*** 6894,6899 ****
--- 6975,6986 ----
  	  reachable_regs.add (base_reg, false);
      }
  
+   for (auto &eh_node : m_thrown_exceptions_stack)
+     eh_node.add_to_reachable_regions (reachable_regs);
+   for (auto &eh_node : m_caught_exceptions_stack)
+     eh_node.add_to_reachable_regions (reachable_regs);
+ 
+ 
    bitmap_clear (out_ids);
    for (auto iter_reg : reachable_regs)
      bitmap_set_bit (out_ids, iter_reg->get_id ());
*************** region_model::set_dynamic_extents (const
*** 6931,6937 ****
    m_dynamic_extents.put (reg, size_in_bytes);
  }
  
! /* Get the recording of REG in bytes, or NULL if no dynamic size was
     recorded.  */
  
  const svalue *
--- 7018,7024 ----
    m_dynamic_extents.put (reg, size_in_bytes);
  }
  
! /* Get the recording of REG in bytes, or nullptr if no dynamic size was
     recorded.  */
  
  const svalue *
*************** region_model::get_dynamic_extents (const
*** 6939,6945 ****
  {
    if (const svalue * const *slot = m_dynamic_extents.get (reg))
      return *slot;
!   return NULL;
  }
  
  /* Unset any recorded dynamic size of REG.  */
--- 7026,7032 ----
  {
    if (const svalue * const *slot = m_dynamic_extents.get (reg))
      return *slot;
!   return nullptr;
  }
  
  /* Unset any recorded dynamic size of REG.  */
*************** public:
*** 7050,7058 ****
    }
  
    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/-Wanalyzer-exposure-through-uninit-copy/"
      props.set (PROPERTY_PREFIX "src_region", m_src_region->to_json ());
      props.set (PROPERTY_PREFIX "dest_region", m_dest_region->to_json ());
--- 7137,7146 ----
    }
  
    void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
!     const final override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/-Wanalyzer-exposure-through-uninit-copy/"
      props.set (PROPERTY_PREFIX "src_region", m_src_region->to_json ());
      props.set (PROPERTY_PREFIX "dest_region", m_dest_region->to_json ());
*************** private:
*** 7077,7083 ****
  	{
  	  const poisoned_svalue *poisoned_sval
  	    = as_a <const poisoned_svalue *> (m_copied_sval);
! 	  gcc_assert (poisoned_sval->get_poison_kind () == POISON_KIND_UNINIT);
  
  	  /* Give up if don't have type information.  */
  	  if (m_copied_sval->get_type () == NULL_TREE)
--- 7165,7171 ----
  	{
  	  const poisoned_svalue *poisoned_sval
  	    = as_a <const poisoned_svalue *> (m_copied_sval);
! 	  gcc_assert (poisoned_sval->get_poison_kind () == poison_kind::uninit);
  
  	  /* Give up if don't have type information.  */
  	  if (m_copied_sval->get_type () == NULL_TREE)
*************** private:
*** 7097,7114 ****
  	    = as_a <const compound_svalue *> (m_copied_sval);
  	  bit_size_t result = 0;
  	  /* Find keys for uninit svals.  */
! 	  for (auto iter : *compound_sval)
  	    {
  	      const svalue *sval = iter.second;
  	      if (const poisoned_svalue *psval
  		  = sval->dyn_cast_poisoned_svalue ())
! 		if (psval->get_poison_kind () == POISON_KIND_UNINIT)
  		  {
! 		    const binding_key *key = iter.first;
! 		    const concrete_binding *ckey
! 		      = key->dyn_cast_concrete_binding ();
! 		    gcc_assert (ckey);
! 		    result += ckey->get_size_in_bits ();
  		  }
  	    }
  	  return result;
--- 7185,7199 ----
  	    = as_a <const compound_svalue *> (m_copied_sval);
  	  bit_size_t result = 0;
  	  /* Find keys for uninit svals.  */
! 	  for (auto iter : compound_sval->get_map ().get_concrete_bindings ())
  	    {
  	      const svalue *sval = iter.second;
  	      if (const poisoned_svalue *psval
  		  = sval->dyn_cast_poisoned_svalue ())
! 		if (psval->get_poison_kind () == poison_kind::uninit)
  		  {
! 		    const bit_range &bits = iter.first;
! 		    result += bits.m_size_in_bits;
  		  }
  	    }
  	  return result;
*************** private:
*** 7148,7189 ****
  	= m_copied_sval->dyn_cast_compound_svalue ())
        {
  	/* Find keys for uninit svals.  */
! 	auto_vec<const concrete_binding *> uninit_keys;
! 	for (auto iter : *compound_sval)
  	  {
  	    const svalue *sval = iter.second;
  	    if (const poisoned_svalue *psval
  		= sval->dyn_cast_poisoned_svalue ())
! 	      if (psval->get_poison_kind () == POISON_KIND_UNINIT)
! 		{
! 		  const binding_key *key = iter.first;
! 		  const concrete_binding *ckey
! 		    = key->dyn_cast_concrete_binding ();
! 		  gcc_assert (ckey);
! 		  uninit_keys.safe_push (ckey);
! 		}
  	  }
- 	/* Complain about them in sorted order.  */
- 	uninit_keys.qsort (concrete_binding::cmp_ptr_ptr);
  
  	std::unique_ptr<record_layout> layout;
  
  	tree type = m_copied_sval->get_type ();
  	if (type && TREE_CODE (type) == RECORD_TYPE)
  	  {
! 	    // (std::make_unique is C++14)
! 	    layout = std::unique_ptr<record_layout> (new record_layout (type));
  
  	    if (0)
  	      layout->dump ();
  	  }
  
  	unsigned i;
! 	const concrete_binding *ckey;
! 	FOR_EACH_VEC_ELT (uninit_keys, i, ckey)
  	  {
! 	    bit_offset_t start_bit = ckey->get_start_bit_offset ();
! 	    bit_offset_t next_bit = ckey->get_next_bit_offset ();
  	    complain_about_uninit_range (loc, start_bit, next_bit,
  					 layout.get ());
  	  }
--- 7233,7265 ----
  	= m_copied_sval->dyn_cast_compound_svalue ())
        {
  	/* Find keys for uninit svals.  */
! 	auto_vec<bit_range> uninit_bit_ranges;
! 	for (auto iter : compound_sval->get_map ().get_concrete_bindings ())
  	  {
  	    const svalue *sval = iter.second;
  	    if (const poisoned_svalue *psval
  		= sval->dyn_cast_poisoned_svalue ())
! 	      if (psval->get_poison_kind () == poison_kind::uninit)
! 		uninit_bit_ranges.safe_push (iter.first);
  	  }
  
  	std::unique_ptr<record_layout> layout;
  
  	tree type = m_copied_sval->get_type ();
  	if (type && TREE_CODE (type) == RECORD_TYPE)
  	  {
! 	    layout = std::make_unique<record_layout> (type);
  
  	    if (0)
  	      layout->dump ();
  	  }
  
  	unsigned i;
! 	bit_range *bits;
! 	FOR_EACH_VEC_ELT (uninit_bit_ranges, i, bits)
  	  {
! 	    bit_offset_t start_bit = bits->get_start_bit_offset ();
! 	    bit_offset_t next_bit = bits->get_next_bit_offset ();
  	    complain_about_uninit_range (loc, start_bit, next_bit,
  					 layout.get ());
  	  }
*************** private:
*** 7254,7260 ****
    static void
    complain_about_fully_uninit_item (const record_layout::item &item)
    {
!     tree field = item.m_field;
      bit_size_t num_bits = item.m_bit_range.m_size_in_bits;
      if (item.m_is_padding)
        {
--- 7330,7336 ----
    static void
    complain_about_fully_uninit_item (const record_layout::item &item)
    {
!     const_tree field = item.m_field;
      bit_size_t num_bits = item.m_bit_range.m_size_in_bits;
      if (item.m_is_padding)
        {
*************** private:
*** 7315,7321 ****
    static void
    complain_about_partially_uninit_item (const record_layout::item &item)
    {
!     tree field = item.m_field;
      if (item.m_is_padding)
        inform (DECL_SOURCE_LOCATION (field),
  	      "padding after field %qD is partially uninitialized",
--- 7391,7397 ----
    static void
    complain_about_partially_uninit_item (const record_layout::item &item)
    {
!     const_tree field = item.m_field;
      if (item.m_is_padding)
        inform (DECL_SOURCE_LOCATION (field),
  	      "padding after field %qD is partially uninitialized",
*************** contains_uninit_p (const svalue *sval)
*** 7358,7376 ****
        {
  	const poisoned_svalue *psval
  	  = as_a <const poisoned_svalue *> (sval);
! 	return psval->get_poison_kind () == POISON_KIND_UNINIT;
        }
      case SK_COMPOUND:
        {
  	const compound_svalue *compound_sval
  	  = as_a <const compound_svalue *> (sval);
  
! 	for (auto iter : *compound_sval)
  	  {
! 	    const svalue *sval = iter.second;
  	    if (const poisoned_svalue *psval
! 		= sval->dyn_cast_poisoned_svalue ())
! 	      if (psval->get_poison_kind () == POISON_KIND_UNINIT)
  		return true;
  	  }
  
--- 7434,7453 ----
        {
  	const poisoned_svalue *psval
  	  = as_a <const poisoned_svalue *> (sval);
! 	return psval->get_poison_kind () == poison_kind::uninit;
        }
      case SK_COMPOUND:
        {
  	const compound_svalue *compound_sval
  	  = as_a <const compound_svalue *> (sval);
  
! 	for (auto iter = compound_sval->begin ();
! 	     iter != compound_sval->end (); ++iter)
  	  {
! 	    const svalue *inner_sval = iter.get_svalue ();
  	    if (const poisoned_svalue *psval
! 		= inner_sval->dyn_cast_poisoned_svalue ())
! 	      if (psval->get_poison_kind () == poison_kind::uninit)
  		return true;
  	  }
  
*************** contains_uninit_p (const svalue *sval)
*** 7386,7392 ****
     Check that COPIED_SVAL is fully initialized.  If not, complain about
     an infoleak to CTXT.
  
!    SRC_REG can be NULL; if non-NULL it is used as a hint in the diagnostic
     as to where COPIED_SVAL came from.  */
  
  void
--- 7463,7469 ----
     Check that COPIED_SVAL is fully initialized.  If not, complain about
     an infoleak to CTXT.
  
!    SRC_REG can be nullptr; if non-NULL it is used as a hint in the diagnostic
     as to where COPIED_SVAL came from.  */
  
  void
*************** region_model::maybe_complain_about_infol
*** 7397,7405 ****
  {
    /* Check for exposure.  */
    if (contains_uninit_p (copied_sval))
!     ctxt->warn (make_unique<exposure_through_uninit_copy> (src_reg,
! 							   dst_reg,
! 							   copied_sval));
  }
  
  /* Set errno to a positive symbolic int, as if some error has occurred.  */
--- 7474,7483 ----
  {
    /* Check for exposure.  */
    if (contains_uninit_p (copied_sval))
!     ctxt->warn
!       (std::make_unique<exposure_through_uninit_copy> (src_reg,
! 						       dst_reg,
! 						       copied_sval));
  }
  
  /* Set errno to a positive symbolic int, as if some error has occurred.  */
*************** region_model::set_errno (const call_deta
*** 7411,7417 ****
    conjured_purge p (this, cd.get_ctxt ());
    const svalue *new_errno_sval
      = m_mgr->get_or_create_conjured_svalue (integer_type_node,
! 					    cd.get_call_stmt (),
  					    errno_reg, p);
    const svalue *zero
      = m_mgr->get_or_create_int_cst (integer_type_node, 0);
--- 7489,7495 ----
    conjured_purge p (this, cd.get_ctxt ());
    const svalue *new_errno_sval
      = m_mgr->get_or_create_conjured_svalue (integer_type_node,
! 					    &cd.get_call_stmt (),
  					    errno_reg, p);
    const svalue *zero
      = m_mgr->get_or_create_int_cst (integer_type_node, 0);
*************** region_model::set_errno (const call_deta
*** 7419,7424 ****
--- 7497,7514 ----
    set_value (errno_reg, new_errno_sval, cd.get_ctxt ());
  }
  
+ // class region_model_context
+ 
+ bool
+ region_model_context::
+ warn (std::unique_ptr<pending_diagnostic> d,
+       std::unique_ptr<pending_location::fixer_for_epath> ploc_fixer)
+ {
+   pending_location ploc (get_pending_location_for_diag ());
+   ploc.m_fixer_for_epath = std::move (ploc_fixer);
+   return warn_at (std::move (d), std::move (ploc));
+ }
+ 
  /* class noop_region_model_context : public region_model_context.  */
  
  void
*************** void
*** 7538,7548 ****
  rejected_op_constraint::dump_to_pp (pretty_printer *pp) const
  {
    region_model m (m_model);
!   const svalue *lhs_sval = m.get_rvalue (m_lhs, NULL);
!   const svalue *rhs_sval = m.get_rvalue (m_rhs, NULL);
!   lhs_sval->dump_to_pp (pp, true);
    pp_printf (pp, " %s ", op_symbol_code (m_op));
!   rhs_sval->dump_to_pp (pp, true);
  }
  
  /* class rejected_default_case : public rejected_constraint.  */
--- 7628,7636 ----
  rejected_op_constraint::dump_to_pp (pretty_printer *pp) const
  {
    region_model m (m_model);
!   m_lhs->dump_to_pp (pp, true);
    pp_printf (pp, " %s ", op_symbol_code (m_op));
!   m_rhs->dump_to_pp (pp, true);
  }
  
  /* class rejected_default_case : public rejected_constraint.  */
*************** void
*** 7559,7565 ****
  rejected_ranges_constraint::dump_to_pp (pretty_printer *pp) const
  {
    region_model m (m_model);
!   const svalue *sval = m.get_rvalue (m_expr, NULL);
    sval->dump_to_pp (pp, true);
    pp_string (pp, " in ");
    m_ranges->dump_to_pp (pp, true);
--- 7647,7653 ----
  rejected_ranges_constraint::dump_to_pp (pretty_printer *pp) const
  {
    region_model m (m_model);
!   const svalue *sval = m.get_rvalue (m_expr, nullptr);
    sval->dump_to_pp (pp, true);
    pp_string (pp, " in ");
    m_ranges->dump_to_pp (pp, true);
*************** rejected_ranges_constraint::dump_to_pp (
*** 7569,7576 ****
  
  /* engine's ctor.  */
  
! engine::engine (const supergraph *sg, logger *logger)
! : m_sg (sg), m_mgr (logger)
  {
  }
  
--- 7657,7666 ----
  
  /* engine's ctor.  */
  
! engine::engine (region_model_manager &mgr,
! 		const supergraph *sg)
! : m_mgr (mgr),
!   m_sg (sg)
  {
  }
  
*************** assert_condition (const location &loc,
*** 7660,7666 ****
  		  tree lhs, tree_code op, tree rhs,
  		  tristate expected)
  {
!   tristate actual = model.eval_condition (lhs, op, rhs, NULL);
    ASSERT_EQ_AT (loc, actual, expected);
  }
  
--- 7750,7756 ----
  		  tree lhs, tree_code op, tree rhs,
  		  tristate expected)
  {
!   tristate actual = model.eval_condition (lhs, op, rhs, nullptr);
    ASSERT_EQ_AT (loc, actual, expected);
  }
  
*************** make_test_compound_type (const char *nam
*** 7749,7755 ****
    TYPE_NAME (t) = get_identifier (name);
    TYPE_SIZE (t) = 0;
  
!   tree fieldlist = NULL;
    int i;
    tree field;
    FOR_EACH_VEC_ELT (*fields, i, field)
--- 7839,7845 ----
    TYPE_NAME (t) = get_identifier (name);
    TYPE_SIZE (t) = 0;
  
!   tree fieldlist = NULL_TREE;
    int i;
    tree field;
    FOR_EACH_VEC_ELT (*fields, i, field)
*************** test_struct ()
*** 7804,7827 ****
  
    region_model_manager mgr;
    region_model model (&mgr);
!   model.set_value (c_x, int_17, NULL);
!   model.set_value (c_y, int_m3, NULL);
  
    /* Verify get_offset for "c.x".  */
    {
!     const region *c_x_reg = model.get_lvalue (c_x, NULL);
      region_offset offset = c_x_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (c, NULL));
      ASSERT_EQ (offset.get_bit_offset (), 0);
    }
  
    /* Verify get_offset for "c.y".  */
    {
!     const region *c_y_reg = model.get_lvalue (c_y, NULL);
      region_offset offset = c_y_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (c, NULL));
      ASSERT_EQ (offset.get_bit_offset (), INT_TYPE_SIZE);
    }
  }
  
  /* Verify usage of an array element.  */
--- 7894,7939 ----
  
    region_model_manager mgr;
    region_model model (&mgr);
!   /* Set fields in order y, then x.  */
!   model.set_value (c_y, int_m3, nullptr);
!   model.set_value (c_x, int_17, nullptr);
  
    /* Verify get_offset for "c.x".  */
    {
!     const region *c_x_reg = model.get_lvalue (c_x, nullptr);
      region_offset offset = c_x_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (c, nullptr));
      ASSERT_EQ (offset.get_bit_offset (), 0);
    }
  
    /* Verify get_offset for "c.y".  */
    {
!     const region *c_y_reg = model.get_lvalue (c_y, nullptr);
      region_offset offset = c_y_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (c, nullptr));
      ASSERT_EQ (offset.get_bit_offset (), INT_TYPE_SIZE);
    }
+ 
+   /* Check iteration order of binding_cluster (and thus of binding_map).  */
+   {
+     std::vector<binding_map::binding_pair> vec;
+     auto cluster
+       = model.get_store ()->get_cluster (model.get_lvalue (c, nullptr));
+     for (auto iter : *cluster)
+       vec.push_back (iter);
+     ASSERT_EQ (vec.size (), 2);
+     /* we should get them back in ascending order in memory (x then y).  */
+     /* x */
+     ASSERT_EQ (vec[0].m_key->dyn_cast_concrete_binding ()->get_bit_range (),
+ 	       bit_range (0, INT_TYPE_SIZE));
+     ASSERT_TRUE (tree_int_cst_equal(vec[0].m_sval->maybe_get_constant (),
+ 				    int_17));
+     /* y */
+     ASSERT_EQ (vec[1].m_key->dyn_cast_concrete_binding ()->get_bit_range (),
+ 	       bit_range (INT_TYPE_SIZE, INT_TYPE_SIZE));
+     ASSERT_TRUE (tree_int_cst_equal(vec[1].m_sval->maybe_get_constant (),
+ 				    int_m3));
+   }
  }
  
  /* Verify usage of an array element.  */
*************** test_array_1 ()
*** 7840,7846 ****
    tree a_0 = build4 (ARRAY_REF, char_type_node,
  		     a, int_0, NULL_TREE, NULL_TREE);
    tree char_A = build_int_cst (char_type_node, 'A');
!   model.set_value (a_0, char_A, NULL);
  }
  
  /* Verify that region_model::get_representative_tree works as expected.  */
--- 7952,7958 ----
    tree a_0 = build4 (ARRAY_REF, char_type_node,
  		     a, int_0, NULL_TREE, NULL_TREE);
    tree char_A = build_int_cst (char_type_node, 'A');
!   model.set_value (a_0, char_A, nullptr);
  }
  
  /* Verify that region_model::get_representative_tree works as expected.  */
*************** test_get_representative_tree ()
*** 7854,7860 ****
    {
      tree string_cst = build_string (4, "foo");
      region_model m (&mgr);
!     const svalue *str_sval = m.get_rvalue (string_cst, NULL);
      tree rep = m.get_representative_tree (str_sval);
      ASSERT_EQ (rep, string_cst);
    }
--- 7966,7972 ----
    {
      tree string_cst = build_string (4, "foo");
      region_model m (&mgr);
!     const svalue *str_sval = m.get_rvalue (string_cst, nullptr);
      tree rep = m.get_representative_tree (str_sval);
      ASSERT_EQ (rep, string_cst);
    }
*************** test_get_representative_tree ()
*** 7863,7869 ****
    {
      tree string_cst_ptr = build_string_literal (4, "foo");
      region_model m (&mgr);
!     const svalue *str_sval = m.get_rvalue (string_cst_ptr, NULL);
      tree rep = m.get_representative_tree (str_sval);
      ASSERT_DUMP_TREE_EQ (rep, "&\"foo\"[0]");
    }
--- 7975,7981 ----
    {
      tree string_cst_ptr = build_string_literal (4, "foo");
      region_model m (&mgr);
!     const svalue *str_sval = m.get_rvalue (string_cst_ptr, nullptr);
      tree rep = m.get_representative_tree (str_sval);
      ASSERT_DUMP_TREE_EQ (rep, "&\"foo\"[0]");
    }
*************** test_unique_unknowns ()
*** 7988,7999 ****
  
    /* Different types (or the NULL type) should have different
       unknown_svalues.  */
!   const svalue *unknown_NULL_type = mgr.get_or_create_unknown_svalue (NULL);
    ASSERT_NE (unknown_NULL_type, unknown_int);
  
    /* Repeated calls with NULL for the type should get the same "unknown"
       svalue.  */
!   const svalue *unknown_NULL_type_2 = mgr.get_or_create_unknown_svalue (NULL);
    ASSERT_EQ (unknown_NULL_type, unknown_NULL_type_2);
  }
  
--- 8100,8111 ----
  
    /* Different types (or the NULL type) should have different
       unknown_svalues.  */
!   const svalue *unknown_NULL_type = mgr.get_or_create_unknown_svalue (nullptr);
    ASSERT_NE (unknown_NULL_type, unknown_int);
  
    /* Repeated calls with NULL for the type should get the same "unknown"
       svalue.  */
!   const svalue *unknown_NULL_type_2 = mgr.get_or_create_unknown_svalue (nullptr);
    ASSERT_EQ (unknown_NULL_type, unknown_NULL_type_2);
  }
  
*************** test_assignment ()
*** 8337,8345 ****
    region_model model (&mgr);
    ADD_SAT_CONSTRAINT (model, x, EQ_EXPR, int_0);
    ASSERT_CONDITION_UNKNOWN (model, y, EQ_EXPR, int_0);
!   model.set_value (model.get_lvalue (y, NULL),
! 		   model.get_rvalue (int_0, NULL),
! 		   NULL);
    ASSERT_CONDITION_TRUE (model, y, EQ_EXPR, int_0);
    ASSERT_CONDITION_TRUE (model, y, EQ_EXPR, x);
  }
--- 8449,8457 ----
    region_model model (&mgr);
    ADD_SAT_CONSTRAINT (model, x, EQ_EXPR, int_0);
    ASSERT_CONDITION_UNKNOWN (model, y, EQ_EXPR, int_0);
!   model.set_value (model.get_lvalue (y, nullptr),
! 		   model.get_rvalue (int_0, nullptr),
! 		   nullptr);
    ASSERT_CONDITION_TRUE (model, y, EQ_EXPR, int_0);
    ASSERT_CONDITION_TRUE (model, y, EQ_EXPR, x);
  }
*************** test_compound_assignment ()
*** 8367,8382 ****
  
    region_model_manager mgr;
    region_model model (&mgr);
!   model.set_value (c_x, int_17, NULL);
!   model.set_value (c_y, int_m3, NULL);
  
    /* Copy c to d.  */
!   const svalue *sval = model.get_rvalue (c, NULL);
!   model.set_value (model.get_lvalue (d, NULL), sval, NULL);
  
    /* Check that the fields have the same svalues.  */
!   ASSERT_EQ (model.get_rvalue (c_x, NULL), model.get_rvalue (d_x, NULL));
!   ASSERT_EQ (model.get_rvalue (c_y, NULL), model.get_rvalue (d_y, NULL));
  }
  
  /* Verify the details of pushing and popping stack frames.  */
--- 8479,8494 ----
  
    region_model_manager mgr;
    region_model model (&mgr);
!   model.set_value (c_x, int_17, nullptr);
!   model.set_value (c_y, int_m3, nullptr);
  
    /* Copy c to d.  */
!   const svalue *sval = model.get_rvalue (c, nullptr);
!   model.set_value (model.get_lvalue (d, nullptr), sval, nullptr);
  
    /* Check that the fields have the same svalues.  */
!   ASSERT_EQ (model.get_rvalue (c_x, nullptr), model.get_rvalue (d_x, nullptr));
!   ASSERT_EQ (model.get_rvalue (c_y, nullptr), model.get_rvalue (d_y, nullptr));
  }
  
  /* Verify the details of pushing and popping stack frames.  */
*************** test_stack_frames ()
*** 8432,8438 ****
    /* Push stack frame for "parent_fn".  */
    const region *parent_frame_reg
      = model.push_frame (*DECL_STRUCT_FUNCTION (parent_fndecl),
! 			NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), parent_frame_reg);
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
    const region *a_in_parent_reg = model.get_lvalue (a, &ctxt);
--- 8544,8550 ----
    /* Push stack frame for "parent_fn".  */
    const region *parent_frame_reg
      = model.push_frame (*DECL_STRUCT_FUNCTION (parent_fndecl),
! 			nullptr, nullptr, &ctxt);
    ASSERT_EQ (model.get_current_frame (), parent_frame_reg);
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
    const region *a_in_parent_reg = model.get_lvalue (a, &ctxt);
*************** test_stack_frames ()
*** 8447,8453 ****
  
    /* Push stack frame for "child_fn".  */
    const region *child_frame_reg
!     = model.push_frame (*DECL_STRUCT_FUNCTION (child_fndecl), NULL, &ctxt);
    ASSERT_EQ (model.get_current_frame (), child_frame_reg);
    ASSERT_TRUE (model.region_exists_p (child_frame_reg));
    const region *x_in_child_reg = model.get_lvalue (x, &ctxt);
--- 8559,8566 ----
  
    /* Push stack frame for "child_fn".  */
    const region *child_frame_reg
!     = model.push_frame (*DECL_STRUCT_FUNCTION (child_fndecl),
! 			nullptr, nullptr, &ctxt);
    ASSERT_EQ (model.get_current_frame (), child_frame_reg);
    ASSERT_TRUE (model.region_exists_p (child_frame_reg));
    const region *x_in_child_reg = model.get_lvalue (x, &ctxt);
*************** test_stack_frames ()
*** 8465,8471 ****
    model.set_value (p_in_globals_reg,
  		   mgr.get_ptr_svalue (ptr_type_node, x_in_child_reg),
  		   &ctxt);
!   ASSERT_EQ (p_in_globals_reg->maybe_get_frame_region (), NULL);
  
    /* Point another global pointer at p: q = &p.  */
    const region *q_in_globals_reg = model.get_lvalue (q, &ctxt);
--- 8578,8584 ----
    model.set_value (p_in_globals_reg,
  		   mgr.get_ptr_svalue (ptr_type_node, x_in_child_reg),
  		   &ctxt);
!   ASSERT_EQ (p_in_globals_reg->maybe_get_frame_region (), nullptr);
  
    /* Point another global pointer at p: q = &p.  */
    const region *q_in_globals_reg = model.get_lvalue (q, &ctxt);
*************** test_stack_frames ()
*** 8479,8494 ****
    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));
  
    /* Verify that p (which was pointing at the local "x" in the popped
       frame) has been poisoned.  */
!   const svalue *new_p_sval = model.get_rvalue (p, NULL);
    ASSERT_EQ (new_p_sval->get_kind (), SK_POISONED);
    ASSERT_EQ (new_p_sval->dyn_cast_poisoned_svalue ()->get_poison_kind (),
! 	     POISON_KIND_POPPED_STACK);
  
    /* Verify that q still points to p, in spite of the region
       renumbering.  */
--- 8592,8607 ----
    ASSERT_FALSE (a_in_parent_reg->descendent_of_p (child_frame_reg));
  
    /* Pop the "child_fn" frame from the stack.  */
!   model.pop_frame (nullptr, nullptr, &ctxt, nullptr);
    ASSERT_FALSE (model.region_exists_p (child_frame_reg));
    ASSERT_TRUE (model.region_exists_p (parent_frame_reg));
  
    /* Verify that p (which was pointing at the local "x" in the popped
       frame) has been poisoned.  */
!   const svalue *new_p_sval = model.get_rvalue (p, nullptr);
    ASSERT_EQ (new_p_sval->get_kind (), SK_POISONED);
    ASSERT_EQ (new_p_sval->dyn_cast_poisoned_svalue ()->get_poison_kind (),
! 	     poison_kind::popped_stack);
  
    /* Verify that q still points to p, in spite of the region
       renumbering.  */
*************** test_get_representative_path_var ()
*** 8540,8546 ****
    for (int depth = 0; depth < 5; depth++)
      {
        const region *frame_n_reg
! 	= model.push_frame (*DECL_STRUCT_FUNCTION (fndecl), NULL, &ctxt);
        const region *parm_n_reg = model.get_lvalue (path_var (n, depth), &ctxt);
        parm_regs.safe_push (parm_n_reg);
  
--- 8653,8660 ----
    for (int depth = 0; depth < 5; depth++)
      {
        const region *frame_n_reg
! 	= model.push_frame (*DECL_STRUCT_FUNCTION (fndecl),
! 			    nullptr, nullptr, &ctxt);
        const region *parm_n_reg = model.get_lvalue (path_var (n, depth), &ctxt);
        parm_regs.safe_push (parm_n_reg);
  
*************** test_get_representative_path_var ()
*** 8562,8568 ****
        }
        /* ...and that we can lookup lvalues for locals for all frames,
  	 not just the top.  */
!       ASSERT_EQ (model.get_lvalue (path_var (n, depth), NULL),
  		 parm_regs[depth]);
        /* ...and that we can locate the svalues.  */
        {
--- 8676,8682 ----
        }
        /* ...and that we can lookup lvalues for locals for all frames,
  	 not just the top.  */
!       ASSERT_EQ (model.get_lvalue (path_var (n, depth), nullptr),
  		 parm_regs[depth]);
        /* ...and that we can locate the svalues.  */
        {
*************** test_equality_1 ()
*** 8591,8612 ****
  
    /* Verify that setting state in model1 makes the models non-equal.  */
    tree x = build_global_decl ("x", integer_type_node);
!   model0.set_value (x, int_42, NULL);
!   ASSERT_EQ (model0.get_rvalue (x, NULL)->maybe_get_constant (), int_42);
    ASSERT_NE (model0, model1);
  
    /* Verify the copy-ctor.  */
    region_model model2 (model0);
    ASSERT_EQ (model0, model2);
!   ASSERT_EQ (model2.get_rvalue (x, NULL)->maybe_get_constant (), int_42);
    ASSERT_NE (model1, model2);
  
    /* Verify that models obtained from copy-ctor are independently editable
       w/o affecting the original model.  */
!   model2.set_value (x, int_17, NULL);
    ASSERT_NE (model0, model2);
!   ASSERT_EQ (model2.get_rvalue (x, NULL)->maybe_get_constant (), int_17);
!   ASSERT_EQ (model0.get_rvalue (x, NULL)->maybe_get_constant (), int_42);
  }
  
  /* Verify that region models for
--- 8705,8726 ----
  
    /* Verify that setting state in model1 makes the models non-equal.  */
    tree x = build_global_decl ("x", integer_type_node);
!   model0.set_value (x, int_42, nullptr);
!   ASSERT_EQ (model0.get_rvalue (x, nullptr)->maybe_get_constant (), int_42);
    ASSERT_NE (model0, model1);
  
    /* Verify the copy-ctor.  */
    region_model model2 (model0);
    ASSERT_EQ (model0, model2);
!   ASSERT_EQ (model2.get_rvalue (x, nullptr)->maybe_get_constant (), int_42);
    ASSERT_NE (model1, model2);
  
    /* Verify that models obtained from copy-ctor are independently editable
       w/o affecting the original model.  */
!   model2.set_value (x, int_17, nullptr);
    ASSERT_NE (model0, model2);
!   ASSERT_EQ (model2.get_rvalue (x, nullptr)->maybe_get_constant (), int_17);
!   ASSERT_EQ (model0.get_rvalue (x, nullptr)->maybe_get_constant (), int_42);
  }
  
  /* Verify that region models for
*************** test_canonicalization_2 ()
*** 8625,8644 ****
  
    region_model_manager mgr;
    region_model model0 (&mgr);
!   model0.set_value (model0.get_lvalue (x, NULL),
! 		    model0.get_rvalue (int_42, NULL),
! 		    NULL);
!   model0.set_value (model0.get_lvalue (y, NULL),
! 		    model0.get_rvalue (int_113, NULL),
! 		    NULL);
  
    region_model model1 (&mgr);
!   model1.set_value (model1.get_lvalue (y, NULL),
! 		    model1.get_rvalue (int_113, NULL),
! 		    NULL);
!   model1.set_value (model1.get_lvalue (x, NULL),
! 		    model1.get_rvalue (int_42, NULL),
! 		    NULL);
  
    ASSERT_EQ (model0, model1);
  }
--- 8739,8758 ----
  
    region_model_manager mgr;
    region_model model0 (&mgr);
!   model0.set_value (model0.get_lvalue (x, nullptr),
! 		    model0.get_rvalue (int_42, nullptr),
! 		    nullptr);
!   model0.set_value (model0.get_lvalue (y, nullptr),
! 		    model0.get_rvalue (int_113, nullptr),
! 		    nullptr);
  
    region_model model1 (&mgr);
!   model1.set_value (model1.get_lvalue (y, nullptr),
! 		    model1.get_rvalue (int_113, nullptr),
! 		    nullptr);
!   model1.set_value (model1.get_lvalue (x, nullptr),
! 		    model1.get_rvalue (int_42, nullptr),
! 		    nullptr);
  
    ASSERT_EQ (model0, model1);
  }
*************** test_canonicalization_3 ()
*** 8659,8670 ****
  
    region_model_manager mgr;
    region_model model0 (&mgr);
!   model0.add_constraint (x, GT_EXPR, int_3, NULL);
!   model0.add_constraint (y, GT_EXPR, int_42, NULL);
  
    region_model model1 (&mgr);
!   model1.add_constraint (y, GT_EXPR, int_42, NULL);
!   model1.add_constraint (x, GT_EXPR, int_3, NULL);
  
    model0.canonicalize ();
    model1.canonicalize ();
--- 8773,8784 ----
  
    region_model_manager mgr;
    region_model model0 (&mgr);
!   model0.add_constraint (x, GT_EXPR, int_3, nullptr);
!   model0.add_constraint (y, GT_EXPR, int_42, nullptr);
  
    region_model model1 (&mgr);
!   model1.add_constraint (y, GT_EXPR, int_42, nullptr);
!   model1.add_constraint (x, GT_EXPR, int_3, nullptr);
  
    model0.canonicalize ();
    model1.canonicalize ();
*************** test_canonicalization_4 ()
*** 8684,8690 ****
    region_model model (&mgr);
  
    for (tree cst : csts)
!     model.get_rvalue (cst, NULL);
  
    model.canonicalize ();
  }
--- 8798,8804 ----
    region_model model (&mgr);
  
    for (tree cst : csts)
!     model.get_rvalue (cst, nullptr);
  
    model.canonicalize ();
  }
*************** test_canonicalization_4 ()
*** 8693,8699 ****
     with values VAL_A and VAL_B for EXPR that they are
     mergable.  Write the merged model to *OUT_MERGED_MODEL,
     and the merged svalue ptr to *OUT_MERGED_SVALUE.
!    If VAL_A or VAL_B are NULL_TREE, don't populate EXPR
     for that region_model.  */
  
  static void
--- 8807,8813 ----
     with values VAL_A and VAL_B for EXPR that they are
     mergable.  Write the merged model to *OUT_MERGED_MODEL,
     and the merged svalue ptr to *OUT_MERGED_SVALUE.
!    If VAL_A or VAL_B are nullptr_TREE, don't populate EXPR
     for that region_model.  */
  
  static void
*************** test_state_merging ()
*** 8786,8794 ****
      region_model model0 (&mgr);
      region_model model1 (&mgr);
      ASSERT_EQ (model0.get_stack_depth (), 0);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
      ASSERT_EQ (model0.get_stack_depth (), 1);
!     model1.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, &ctxt);
  
      placeholder_svalue test_sval (mgr.alloc_symbol_id (),
  				  integer_type_node, "test sval");
--- 8900,8910 ----
      region_model model0 (&mgr);
      region_model model1 (&mgr);
      ASSERT_EQ (model0.get_stack_depth (), 0);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 		       nullptr, nullptr, &ctxt);
      ASSERT_EQ (model0.get_stack_depth (), 1);
!     model1.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 		       nullptr, nullptr, &ctxt);
  
      placeholder_svalue test_sval (mgr.alloc_symbol_id (),
  				  integer_type_node, "test sval");
*************** test_state_merging ()
*** 8880,8888 ****
    /* Pointers: non-NULL and non-NULL: ptr to a local.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
!     model0.set_value (model0.get_lvalue (p, NULL),
! 		      model0.get_rvalue (addr_of_a, NULL), NULL);
  
      region_model model1 (model0);
      ASSERT_EQ (model0, model1);
--- 8996,9005 ----
    /* Pointers: non-NULL and non-NULL: ptr to a local.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 		       nullptr, nullptr, nullptr);
!     model0.set_value (model0.get_lvalue (p, nullptr),
! 		      model0.get_rvalue (addr_of_a, nullptr), nullptr);
  
      region_model model1 (model0);
      ASSERT_EQ (model0, model1);
*************** test_state_merging ()
*** 8906,8926 ****
      const region_svalue *merged_p_ptr
        = merged_p_sval->dyn_cast_region_svalue ();
      const region *merged_p_star_reg = merged_p_ptr->get_pointee ();
!     ASSERT_EQ (merged_p_star_reg, merged.get_lvalue (y, NULL));
    }
  
!   /* Pointers: non-NULL ptrs to different globals: should be unknown.  */
    {
!     region_model merged (&mgr);
      /* x == &y vs x == &z in the input models; these are actually casts
         of the ptrs to "int".  */
!     const svalue *merged_x_sval;
!     // TODO:
!     assert_region_models_merge (x, addr_of_y, addr_of_z, &merged,
! 				&merged_x_sval);
! 
!     /* We should get x == unknown in the merged model.  */
!     ASSERT_EQ (merged_x_sval->get_kind (), SK_UNKNOWN);
    }
  
    /* Pointers: non-NULL and non-NULL: ptr to a heap region.  */
--- 9023,9049 ----
      const region_svalue *merged_p_ptr
        = merged_p_sval->dyn_cast_region_svalue ();
      const region *merged_p_star_reg = merged_p_ptr->get_pointee ();
!     ASSERT_EQ (merged_p_star_reg, merged.get_lvalue (y, nullptr));
    }
  
!   /* Pointers: non-NULL ptrs to different globals should not merge;
!      see e.g. gcc.dg/analyzer/torture/uninit-pr108725.c  */
    {
!     region_model merged_model (&mgr);
!     program_point point (program_point::origin (mgr));
!     test_region_model_context ctxt;
      /* x == &y vs x == &z in the input models; these are actually casts
         of the ptrs to "int".  */
!     region_model model0 (&mgr);
!     region_model model1 (&mgr);
!     model0.set_value (model0.get_lvalue (x, &ctxt),
! 		      model0.get_rvalue (addr_of_y, &ctxt),
! 		      &ctxt);
!     model1.set_value (model1.get_lvalue (x, &ctxt),
! 		      model1.get_rvalue (addr_of_z, &ctxt),
! 		      &ctxt);
!     /* They should not be mergeable.  */
!     ASSERT_FALSE (model0.can_merge_with_p (model1, point, &merged_model));
    }
  
    /* Pointers: non-NULL and non-NULL: ptr to a heap region.  */
*************** test_state_merging ()
*** 9019,9035 ****
       frame points to a local in a more recent stack frame.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
!     const region *q_in_first_frame = model0.get_lvalue (q, NULL);
  
      /* Push a second frame.  */
      const region *reg_2nd_frame
!       = model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
  
      /* Have a pointer in the older frame point to a local in the
         more recent frame.  */
!     const svalue *sval_ptr = model0.get_rvalue (addr_of_a, NULL);
!     model0.set_value (q_in_first_frame, sval_ptr, NULL);
  
      /* Verify that it's pointing at the newer frame.  */
      const region *reg_pointee = sval_ptr->maybe_get_region ();
--- 9142,9160 ----
       frame points to a local in a more recent stack frame.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 		       nullptr, nullptr, nullptr);
!     const region *q_in_first_frame = model0.get_lvalue (q, nullptr);
  
      /* Push a second frame.  */
      const region *reg_2nd_frame
!       = model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 			   nullptr, nullptr, nullptr);
  
      /* Have a pointer in the older frame point to a local in the
         more recent frame.  */
!     const svalue *sval_ptr = model0.get_rvalue (addr_of_a, nullptr);
!     model0.set_value (q_in_first_frame, sval_ptr, nullptr);
  
      /* Verify that it's pointing at the newer frame.  */
      const region *reg_pointee = sval_ptr->maybe_get_region ();
*************** test_state_merging ()
*** 9051,9059 ****
    /* Verify that we can merge a model in which a local points to a global.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl), NULL, NULL);
!     model0.set_value (model0.get_lvalue (q, NULL),
! 		      model0.get_rvalue (addr_of_y, NULL), NULL);
  
      region_model model1 (model0);
      ASSERT_EQ (model0, model1);
--- 9176,9185 ----
    /* Verify that we can merge a model in which a local points to a global.  */
    {
      region_model model0 (&mgr);
!     model0.push_frame (*DECL_STRUCT_FUNCTION (test_fndecl),
! 		       nullptr, nullptr, nullptr);
!     model0.set_value (model0.get_lvalue (q, nullptr),
! 		      model0.get_rvalue (addr_of_y, nullptr), nullptr);
  
      region_model model1 (model0);
      ASSERT_EQ (model0, model1);
*************** test_constraint_merging ()
*** 9085,9098 ****
    /* model0: 0 <= (x == y) < n.  */
    region_model model0 (&mgr);
    model0.add_constraint (x, EQ_EXPR, y, &ctxt);
!   model0.add_constraint (x, GE_EXPR, int_0, NULL);
!   model0.add_constraint (x, LT_EXPR, n, NULL);
  
    /* model1: z != 5 && (0 <= x < n).  */
    region_model model1 (&mgr);
!   model1.add_constraint (z, NE_EXPR, int_5, NULL);
!   model1.add_constraint (x, GE_EXPR, int_0, NULL);
!   model1.add_constraint (x, LT_EXPR, n, NULL);
  
    /* They should be mergeable; the merged constraints should
       be: (0 <= x < n).  */
--- 9211,9224 ----
    /* model0: 0 <= (x == y) < n.  */
    region_model model0 (&mgr);
    model0.add_constraint (x, EQ_EXPR, y, &ctxt);
!   model0.add_constraint (x, GE_EXPR, int_0, nullptr);
!   model0.add_constraint (x, LT_EXPR, n, nullptr);
  
    /* model1: z != 5 && (0 <= x < n).  */
    region_model model1 (&mgr);
!   model1.add_constraint (z, NE_EXPR, int_5, nullptr);
!   model1.add_constraint (x, GE_EXPR, int_0, nullptr);
!   model1.add_constraint (x, LT_EXPR, n, nullptr);
  
    /* They should be mergeable; the merged constraints should
       be: (0 <= x < n).  */
*************** static void
*** 9118,9124 ****
  test_widening_constraints ()
  {
    region_model_manager mgr;
!   function_point point (program_point::origin (mgr).get_function_point ());
    tree int_0 = integer_zero_node;
    tree int_m1 = build_int_cst (integer_type_node, -1);
    tree int_1 = integer_one_node;
--- 9244,9250 ----
  test_widening_constraints ()
  {
    region_model_manager mgr;
!   const supernode *snode = nullptr;
    tree int_0 = integer_zero_node;
    tree int_m1 = build_int_cst (integer_type_node, -1);
    tree int_1 = integer_one_node;
*************** test_widening_constraints ()
*** 9127,9133 ****
    const svalue *int_0_sval = mgr.get_or_create_constant_svalue (int_0);
    const svalue *int_1_sval = mgr.get_or_create_constant_svalue (int_1);
    const svalue *w_zero_then_one_sval
!     = mgr.get_or_create_widening_svalue (integer_type_node, point,
  					  int_0_sval, int_1_sval);
    const widening_svalue *w_zero_then_one
      = w_zero_then_one_sval->dyn_cast_widening_svalue ();
--- 9253,9259 ----
    const svalue *int_0_sval = mgr.get_or_create_constant_svalue (int_0);
    const svalue *int_1_sval = mgr.get_or_create_constant_svalue (int_1);
    const svalue *w_zero_then_one_sval
!     = mgr.get_or_create_widening_svalue (integer_type_node, snode,
  					  int_0_sval, int_1_sval);
    const widening_svalue *w_zero_then_one
      = w_zero_then_one_sval->dyn_cast_widening_svalue ();
*************** test_malloc_constraints ()
*** 9317,9333 ****
    const svalue *size_in_bytes
      = mgr.get_or_create_unknown_svalue (size_type_node);
    const region *reg
!     = model.get_or_create_region_for_heap_alloc (size_in_bytes, NULL);
    const svalue *sval = mgr.get_ptr_svalue (ptr_type_node, reg);
!   model.set_value (model.get_lvalue (p, NULL), sval, NULL);
!   model.set_value (q, p, NULL);
  
    ASSERT_CONDITION_UNKNOWN (model, p, NE_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, p, EQ_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, q, NE_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, q, EQ_EXPR, null_ptr);
  
!   model.add_constraint (p, NE_EXPR, null_ptr, NULL);
  
    ASSERT_CONDITION_TRUE (model, p, NE_EXPR, null_ptr);
    ASSERT_CONDITION_FALSE (model, p, EQ_EXPR, null_ptr);
--- 9443,9459 ----
    const svalue *size_in_bytes
      = mgr.get_or_create_unknown_svalue (size_type_node);
    const region *reg
!     = model.get_or_create_region_for_heap_alloc (size_in_bytes, nullptr);
    const svalue *sval = mgr.get_ptr_svalue (ptr_type_node, reg);
!   model.set_value (model.get_lvalue (p, nullptr), sval, nullptr);
!   model.set_value (q, p, nullptr);
  
    ASSERT_CONDITION_UNKNOWN (model, p, NE_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, p, EQ_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, q, NE_EXPR, null_ptr);
    ASSERT_CONDITION_UNKNOWN (model, q, EQ_EXPR, null_ptr);
  
!   model.add_constraint (p, NE_EXPR, null_ptr, nullptr);
  
    ASSERT_CONDITION_TRUE (model, p, NE_EXPR, null_ptr);
    ASSERT_CONDITION_FALSE (model, p, EQ_EXPR, null_ptr);
*************** test_var ()
*** 9349,9373 ****
    region_model_manager mgr;
    region_model model (&mgr);
  
!   const region *i_reg = model.get_lvalue (i, NULL);
    ASSERT_EQ (i_reg->get_kind (), RK_DECL);
  
    /* Reading "i" should give a symbolic "initial value".  */
!   const svalue *sval_init = model.get_rvalue (i, NULL);
    ASSERT_EQ (sval_init->get_kind (), SK_INITIAL);
    ASSERT_EQ (sval_init->dyn_cast_initial_svalue ()->get_region (), i_reg);
    /* ..and doing it again should give the same "initial value".  */
!   ASSERT_EQ (model.get_rvalue (i, NULL), sval_init);
  
    /* "i = 17;".  */
!   model.set_value (i, int_17, NULL);
!   ASSERT_EQ (model.get_rvalue (i, NULL),
! 	     model.get_rvalue (int_17, NULL));
  
    /* "i = -3;".  */
!   model.set_value (i, int_m3, NULL);
!   ASSERT_EQ (model.get_rvalue (i, NULL),
! 	     model.get_rvalue (int_m3, NULL));
  
    /* Verify get_offset for "i".  */
    {
--- 9475,9499 ----
    region_model_manager mgr;
    region_model model (&mgr);
  
!   const region *i_reg = model.get_lvalue (i, nullptr);
    ASSERT_EQ (i_reg->get_kind (), RK_DECL);
  
    /* Reading "i" should give a symbolic "initial value".  */
!   const svalue *sval_init = model.get_rvalue (i, nullptr);
    ASSERT_EQ (sval_init->get_kind (), SK_INITIAL);
    ASSERT_EQ (sval_init->dyn_cast_initial_svalue ()->get_region (), i_reg);
    /* ..and doing it again should give the same "initial value".  */
!   ASSERT_EQ (model.get_rvalue (i, nullptr), sval_init);
  
    /* "i = 17;".  */
!   model.set_value (i, int_17, nullptr);
!   ASSERT_EQ (model.get_rvalue (i, nullptr),
! 	     model.get_rvalue (int_17, nullptr));
  
    /* "i = -3;".  */
!   model.set_value (i, int_m3, nullptr);
!   ASSERT_EQ (model.get_rvalue (i, nullptr),
! 	     model.get_rvalue (int_m3, nullptr));
  
    /* Verify get_offset for "i".  */
    {
*************** test_array_2 ()
*** 9406,9443 ****
    region_model_manager mgr;
    region_model model (&mgr);
    /* "arr[0] = 17;".  */
!   model.set_value (arr_0, int_17, NULL);
    /* "arr[1] = -3;".  */
!   model.set_value (arr_1, int_m3, NULL);
  
!   ASSERT_EQ (model.get_rvalue (arr_0, NULL), model.get_rvalue (int_17, NULL));
!   ASSERT_EQ (model.get_rvalue (arr_1, NULL), model.get_rvalue (int_m3, NULL));
  
    /* Overwrite a pre-existing binding: "arr[1] = 42;".  */
!   model.set_value (arr_1, int_42, NULL);
!   ASSERT_EQ (model.get_rvalue (arr_1, NULL), model.get_rvalue (int_42, NULL));
  
    /* Verify get_offset for "arr[0]".  */
    {
!     const region *arr_0_reg = model.get_lvalue (arr_0, NULL);
      region_offset offset = arr_0_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, NULL));
      ASSERT_EQ (offset.get_bit_offset (), 0);
    }
  
    /* Verify get_offset for "arr[1]".  */
    {
!     const region *arr_1_reg = model.get_lvalue (arr_1, NULL);
      region_offset offset = arr_1_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, NULL));
      ASSERT_EQ (offset.get_bit_offset (), INT_TYPE_SIZE);
    }
  
    /* Verify get_offset for "arr[i]".  */
    {
!     const region *arr_i_reg = model.get_lvalue (arr_i, NULL);
      region_offset offset = arr_i_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, NULL));
      const svalue *offset_sval = offset.get_symbolic_byte_offset ();
      if (const svalue *cast = offset_sval->maybe_undo_cast ())
        offset_sval = cast;
--- 9532,9572 ----
    region_model_manager mgr;
    region_model model (&mgr);
    /* "arr[0] = 17;".  */
!   model.set_value (arr_0, int_17, nullptr);
    /* "arr[1] = -3;".  */
!   model.set_value (arr_1, int_m3, nullptr);
  
!   ASSERT_EQ (model.get_rvalue (arr_0, nullptr),
! 	     model.get_rvalue (int_17, nullptr));
!   ASSERT_EQ (model.get_rvalue (arr_1, nullptr),
! 	     model.get_rvalue (int_m3, nullptr));
  
    /* Overwrite a pre-existing binding: "arr[1] = 42;".  */
!   model.set_value (arr_1, int_42, nullptr);
!   ASSERT_EQ (model.get_rvalue (arr_1, nullptr),
! 	     model.get_rvalue (int_42, nullptr));
  
    /* Verify get_offset for "arr[0]".  */
    {
!     const region *arr_0_reg = model.get_lvalue (arr_0, nullptr);
      region_offset offset = arr_0_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, nullptr));
      ASSERT_EQ (offset.get_bit_offset (), 0);
    }
  
    /* Verify get_offset for "arr[1]".  */
    {
!     const region *arr_1_reg = model.get_lvalue (arr_1, nullptr);
      region_offset offset = arr_1_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, nullptr));
      ASSERT_EQ (offset.get_bit_offset (), INT_TYPE_SIZE);
    }
  
    /* Verify get_offset for "arr[i]".  */
    {
!     const region *arr_i_reg = model.get_lvalue (arr_i, nullptr);
      region_offset offset = arr_i_reg->get_offset (&mgr);
!     ASSERT_EQ (offset.get_base_region (), model.get_lvalue (arr, nullptr));
      const svalue *offset_sval = offset.get_symbolic_byte_offset ();
      if (const svalue *cast = offset_sval->maybe_undo_cast ())
        offset_sval = cast;
*************** test_array_2 ()
*** 9445,9458 ****
    }
  
    /* "arr[i] = i;" - this should remove the earlier bindings.  */
!   model.set_value (arr_i, i, NULL);
!   ASSERT_EQ (model.get_rvalue (arr_i, NULL), model.get_rvalue (i, NULL));
!   ASSERT_EQ (model.get_rvalue (arr_0, NULL)->get_kind (), SK_UNKNOWN);
  
    /* "arr[0] = 17;" - this should remove the arr[i] binding.  */
!   model.set_value (arr_0, int_17, NULL);
!   ASSERT_EQ (model.get_rvalue (arr_0, NULL), model.get_rvalue (int_17, NULL));
!   ASSERT_EQ (model.get_rvalue (arr_i, NULL)->get_kind (), SK_UNKNOWN);
  }
  
  /* Smoketest of dereferencing a pointer via MEM_REF.  */
--- 9574,9588 ----
    }
  
    /* "arr[i] = i;" - this should remove the earlier bindings.  */
!   model.set_value (arr_i, i, nullptr);
!   ASSERT_EQ (model.get_rvalue (arr_i, nullptr), model.get_rvalue (i, nullptr));
!   ASSERT_EQ (model.get_rvalue (arr_0, nullptr)->get_kind (), SK_UNKNOWN);
  
    /* "arr[0] = 17;" - this should remove the arr[i] binding.  */
!   model.set_value (arr_0, int_17, nullptr);
!   ASSERT_EQ (model.get_rvalue (arr_0, nullptr),
! 	     model.get_rvalue (int_17, nullptr));
!   ASSERT_EQ (model.get_rvalue (arr_i, nullptr)->get_kind (), SK_UNKNOWN);
  }
  
  /* Smoketest of dereferencing a pointer via MEM_REF.  */
*************** test_mem_ref ()
*** 9479,9490 ****
    region_model model (&mgr);
  
    /* "x = 17;".  */
!   model.set_value (x, int_17, NULL);
  
    /* "p = &x;".  */
!   model.set_value (p, addr_of_x, NULL);
  
!   const svalue *sval = model.get_rvalue (star_p, NULL);
    ASSERT_EQ (sval->maybe_get_constant (), int_17);
  }
  
--- 9609,9620 ----
    region_model model (&mgr);
  
    /* "x = 17;".  */
!   model.set_value (x, int_17, nullptr);
  
    /* "p = &x;".  */
!   model.set_value (p, addr_of_x, nullptr);
  
!   const svalue *sval = model.get_rvalue (star_p, nullptr);
    ASSERT_EQ (sval->maybe_get_constant (), int_17);
  }
  
*************** test_POINTER_PLUS_EXPR_then_MEM_REF ()
*** 9530,9537 ****
    region_model m (&mgr);
  
    tree int_42 = build_int_cst (integer_type_node, 42);
!   m.set_value (mem_ref, int_42, NULL);
!   ASSERT_EQ (m.get_rvalue (mem_ref, NULL)->maybe_get_constant (), int_42);
  }
  
  /* Verify that malloc works.  */
--- 9660,9667 ----
    region_model m (&mgr);
  
    tree int_42 = build_int_cst (integer_type_node, 42);
!   m.set_value (mem_ref, int_42, nullptr);
!   ASSERT_EQ (m.get_rvalue (mem_ref, nullptr)->maybe_get_constant (), int_42);
  }
  
  /* Verify that malloc works.  */
*************** test_alloca ()
*** 9583,9589 ****
    /* Push stack frame.  */
    const region *frame_reg
      = model.push_frame (*DECL_STRUCT_FUNCTION (fndecl),
! 			NULL, &ctxt);
    /* "p = alloca (n * 4);".  */
    const svalue *size_sval = model.get_rvalue (n_times_4, &ctxt);
    const region *reg = model.create_region_for_alloca (size_sval, &ctxt);
--- 9713,9719 ----
    /* Push stack frame.  */
    const region *frame_reg
      = model.push_frame (*DECL_STRUCT_FUNCTION (fndecl),
! 			nullptr, nullptr, &ctxt);
    /* "p = alloca (n * 4);".  */
    const svalue *size_sval = model.get_rvalue (n_times_4, &ctxt);
    const region *reg = model.create_region_for_alloca (size_sval, &ctxt);
*************** test_alloca ()
*** 9594,9601 ****
  
    /* 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);
  }
  
  /* Verify that svalue::involves_p works.  */
--- 9724,9731 ----
  
    /* Verify that the pointers to the alloca region are replaced by
       poisoned values when the frame is popped.  */
!   model.pop_frame (nullptr, nullptr, &ctxt, nullptr);
!   ASSERT_EQ (model.get_rvalue (p, nullptr)->get_kind (), SK_POISONED);
  }
  
  /* Verify that svalue::involves_p works.  */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region-model.h gcc-16.1.0-RC-20260423/gcc/analyzer/region-model.h
*** gcc-15.2.0/gcc/analyzer/region-model.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region-model.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2019-2026 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,41 ----
  #include "analyzer/known-function-manager.h"
  #include "analyzer/region-model-manager.h"
  #include "analyzer/pending-diagnostic.h"
+ #include "analyzer/diagnostic-manager.h"
  #include "text-art/widget.h"
  #include "text-art/dump.h"
  
*************** public:
*** 245,254 ****
  
  struct append_regions_cb_data;
  
! typedef void (*pop_frame_callback) (const region_model *model,
! 				    const region_model *prev_model,
! 				    const svalue *retval,
! 				    region_model_context *ctxt);
  
  /* A region_model encapsulates a representation of the state of memory, with
     a tree of regions, along with their associated values.
--- 246,285 ----
  
  struct append_regions_cb_data;
  
! /* Roughly equivalent to a struct __cxa_exception, except we store a std::vector
!    rather than a linked list.    */
! 
! struct exception_node
! {
!   exception_node (const svalue *exception_sval,
! 		  const svalue *typeinfo_sval,
! 		  const svalue *destructor_sval)
!   : m_exception_sval (exception_sval),
!     m_typeinfo_sval (typeinfo_sval),
!     m_destructor_sval (destructor_sval)
!   {
!   }
! 
!   bool operator== (const exception_node &other) const;
! 
!   void dump_to_pp (pretty_printer *pp, bool simple) const;
!   void dump (FILE *fp, bool simple) const;
!   void dump (bool simple) 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;
! 
!   tree maybe_get_type () const;
! 
!   void add_to_reachable_regions (reachable_regions &) const;
! 
!   const svalue *m_exception_sval;
!   const svalue *m_typeinfo_sval;
!   const svalue *m_destructor_sval;
! };
  
  /* A region_model encapsulates a representation of the state of memory, with
     a tree of regions, along with their associated values.
*************** class region_model
*** 305,312 ****
    const svalue *get_gassign_result (const gassign *assign,
  				    region_model_context *ctxt);
    void on_asm_stmt (const gasm *asm_stmt, region_model_context *ctxt);
!   bool on_call_pre (const gcall *stmt, region_model_context *ctxt);
!   void on_call_post (const gcall *stmt,
  		     bool unknown_side_effects,
  		     region_model_context *ctxt);
  
--- 336,343 ----
    const svalue *get_gassign_result (const gassign *assign,
  				    region_model_context *ctxt);
    void on_asm_stmt (const gasm *asm_stmt, region_model_context *ctxt);
!   bool on_call_pre (const gcall &stmt, region_model_context *ctxt);
!   void on_call_post (const gcall &stmt,
  		     bool unknown_side_effects,
  		     region_model_context *ctxt);
  
*************** class region_model
*** 323,362 ****
  			       bool unmergeable);
    void update_for_nonzero_return (const call_details &cd);
  
!   void handle_unrecognized_call (const gcall *call,
  				 region_model_context *ctxt);
    void get_reachable_svalues (svalue_set *out,
  			      const svalue *extra_sval,
  			      const uncertainty_t *uncertainty);
  
    void on_return (const greturn *stmt, region_model_context *ctxt);
!   void on_setjmp (const gcall *stmt, const exploded_node *enode,
  		  region_model_context *ctxt);
!   void on_longjmp (const gcall *longjmp_call, const gcall *setjmp_call,
  		   int setjmp_stack_depth, region_model_context *ctxt);
  
!   void update_for_phis (const supernode *snode,
! 			const cfg_superedge *last_cfg_superedge,
! 			region_model_context *ctxt);
! 
!   void handle_phi (const gphi *phi, tree lhs, tree rhs,
! 		   const region_model &old_state,
! 		   hash_set<const svalue *> &svals_changing_meaning,
! 		   region_model_context *ctxt);
! 
!   bool maybe_update_for_edge (const superedge &edge,
! 			      const gimple *last_stmt,
! 			      region_model_context *ctxt,
! 			      std::unique_ptr<rejected_constraint> *out);
! 
!   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);
  
!   const region *push_frame (const function &fun, const vec<const svalue *> *arg_sids,
  			    region_model_context *ctxt);
    const frame_region *get_current_frame () const { return m_current_frame; }
    const function *get_current_function () const;
--- 354,383 ----
  			       bool unmergeable);
    void update_for_nonzero_return (const call_details &cd);
  
!   void handle_unrecognized_call (const gcall &call,
  				 region_model_context *ctxt);
    void get_reachable_svalues (svalue_set *out,
  			      const svalue *extra_sval,
  			      const uncertainty_t *uncertainty);
  
    void on_return (const greturn *stmt, region_model_context *ctxt);
!   void on_setjmp (const gcall &stmt,
! 		  const exploded_node &enode,
! 		  const superedge &sedge,
  		  region_model_context *ctxt);
!   void on_longjmp (const gcall &longjmp_call, const gcall &setjmp_call,
  		   int setjmp_stack_depth, region_model_context *ctxt);
  
!   void update_for_gcall (const gcall &call_stmt,
! 			 region_model_context *ctxt,
! 			 function *callee = nullptr);
  
!   void update_for_return_gcall (const gcall &call_stmt,
! 				region_model_context *ctxt);
  
!   const region *push_frame (const function &fun,
! 			    const gcall *call_stmt,
! 			    const vec<const svalue *> *arg_sids,
  			    region_model_context *ctxt);
    const frame_region *get_current_frame () const { return m_current_frame; }
    const function *get_current_function () const;
*************** class region_model
*** 480,490 ****
    bool can_merge_with_p (const region_model &other_model,
  			 const program_point &point,
  			 region_model *out_model,
! 			 const extrinsic_state *ext_state = NULL,
! 			 const program_state *state_a = NULL,
! 			 const program_state *state_b = NULL) const;
  
!   tree get_fndecl_for_call (const gcall *call,
  			    region_model_context *ctxt);
  
    void get_regions_for_current_frame (auto_vec<const decl_region *> *out) const;
--- 501,511 ----
    bool can_merge_with_p (const region_model &other_model,
  			 const program_point &point,
  			 region_model *out_model,
! 			 const extrinsic_state *ext_state = nullptr,
! 			 const program_state *state_a = nullptr,
! 			 const program_state *state_b = nullptr) const;
  
!   tree get_fndecl_for_call (const gcall &call,
  			    region_model_context *ctxt);
  
    void get_regions_for_current_frame (auto_vec<const decl_region *> *out) const;
*************** class region_model
*** 562,587 ****
  					const svalue **out_sval) const;
  
    const builtin_known_function *
!   get_builtin_kf (const gcall *call,
! 		  region_model_context *ctxt = NULL) const;
  
!   static void
!   register_pop_frame_callback (const pop_frame_callback &callback)
    {
!     pop_frame_callbacks.safe_push (callback);
    }
! 
!   static void
!   notify_on_pop_frame (const region_model *model,
! 		       const region_model *prev_model,
! 		       const svalue *retval,
! 		       region_model_context *ctxt)
    {
!     for (auto &callback : pop_frame_callbacks)
! 	callback (model, prev_model, retval, ctxt);
    }
  
!   bool called_from_main_p () const;
  
  private:
    const region *get_lvalue_1 (path_var pv, region_model_context *ctxt) const;
--- 583,628 ----
  					const svalue **out_sval) const;
  
    const builtin_known_function *
!   get_builtin_kf (const gcall &call,
! 		  region_model_context *ctxt = nullptr) const;
  
!   bool called_from_main_p () const;
! 
!   void push_thrown_exception (const exception_node &node)
    {
!     m_thrown_exceptions_stack.push_back (node);
    }
!   const exception_node *get_current_thrown_exception () const
    {
!     if (m_thrown_exceptions_stack.empty ())
!       return nullptr;
!     return &m_thrown_exceptions_stack.back ();
!   }
!   exception_node pop_thrown_exception ()
!   {
!     gcc_assert (!m_thrown_exceptions_stack.empty ());
!     const exception_node retval = m_thrown_exceptions_stack.back ();
!     m_thrown_exceptions_stack.pop_back ();
!     return retval;
    }
  
!   void push_caught_exception (const exception_node &node)
!   {
!     m_caught_exceptions_stack.push_back (node);
!   }
!   const exception_node *get_current_caught_exception () const
!   {
!     if (m_caught_exceptions_stack.empty ())
!       return nullptr;
!     return &m_caught_exceptions_stack.back ();
!   }
!   exception_node pop_caught_exception ()
!   {
!     gcc_assert (!m_caught_exceptions_stack.empty ());
!     const exception_node retval = m_caught_exceptions_stack.back ();
!     m_caught_exceptions_stack.pop_back ();
!     return retval;
!   }
  
  private:
    const region *get_lvalue_1 (path_var pv, region_model_context *ctxt) const;
*************** private:
*** 606,632 ****
  				   bool *out,
  				   region_model_context *ctxt);
  
!   void update_for_call_superedge (const call_superedge &call_edge,
! 				  region_model_context *ctxt);
!   void update_for_return_superedge (const return_superedge &return_edge,
! 				    region_model_context *ctxt);
!   bool apply_constraints_for_gcond (const cfg_superedge &edge,
! 				    const gcond *cond_stmt,
! 				    region_model_context *ctxt,
! 				    std::unique_ptr<rejected_constraint> *out);
!   bool apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
! 				      const gswitch *switch_stmt,
! 				      region_model_context *ctxt,
! 				      std::unique_ptr<rejected_constraint> *out);
!   bool apply_constraints_for_ggoto (const cfg_superedge &edge,
! 				    const ggoto *goto_stmt,
! 				    region_model_context *ctxt);
!   bool apply_constraints_for_exception (const gimple *last_stmt,
! 					region_model_context *ctxt,
! 					std::unique_ptr<rejected_constraint> *out);
! 
!   int poison_any_pointers_to_descendents (const region *reg,
! 					  enum poison_kind pkind);
  
    void on_top_level_param (tree param,
  			   bool nonnull,
--- 647,654 ----
  				   bool *out,
  				   region_model_context *ctxt);
  
!   void poison_any_pointers_to_descendents (const region *reg,
! 					   enum poison_kind pkind);
  
    void on_top_level_param (tree param,
  			   bool nonnull,
*************** private:
*** 672,695 ****
    void check_call_args (const call_details &cd) const;
    void check_call_format_attr (const call_details &cd,
  			       tree format_attr) const;
!   void check_function_attr_access (const gcall *call,
  				   tree callee_fndecl,
  				   region_model_context *ctxt,
  				   rdwr_map &rdwr_idx) const;
!   void check_function_attr_null_terminated_string_arg (const gcall *call,
  						       tree callee_fndecl,
  						       region_model_context *ctxt,
  						       rdwr_map &rdwr_idx);
!   void check_one_function_attr_null_terminated_string_arg (const gcall *call,
  							   tree callee_fndecl,
  							   region_model_context *ctxt,
  							   rdwr_map &rdwr_idx,
  							   tree attr);
!   void check_function_attrs (const gcall *call,
  			     tree callee_fndecl,
  			     region_model_context *ctxt);
  
!   static auto_vec<pop_frame_callback> pop_frame_callbacks;
    /* Storing this here to avoid passing it around everywhere.  */
    region_model_manager *const m_mgr;
  
--- 694,720 ----
    void check_call_args (const call_details &cd) const;
    void check_call_format_attr (const call_details &cd,
  			       tree format_attr) const;
!   void check_function_attr_access (const gcall &call,
  				   tree callee_fndecl,
  				   region_model_context *ctxt,
  				   rdwr_map &rdwr_idx) const;
!   void check_function_attr_null_terminated_string_arg (const gcall &call,
  						       tree callee_fndecl,
  						       region_model_context *ctxt,
  						       rdwr_map &rdwr_idx);
!   void check_one_function_attr_null_terminated_string_arg (const gcall &call,
  							   tree callee_fndecl,
  							   region_model_context *ctxt,
  							   rdwr_map &rdwr_idx,
  							   tree attr);
!   void check_function_attrs (const gcall &call,
  			     tree callee_fndecl,
  			     region_model_context *ctxt);
  
!   void check_for_throw_inside_call (const gcall &call,
! 				    tree fndecl,
! 				    region_model_context *ctxt);
! 
    /* Storing this here to avoid passing it around everywhere.  */
    region_model_manager *const m_mgr;
  
*************** private:
*** 699,704 ****
--- 724,732 ----
  
    const frame_region *m_current_frame;
  
+   std::vector<exception_node> m_thrown_exceptions_stack;
+   std::vector<exception_node> m_caught_exceptions_stack;
+ 
    /* Map from base region to size in bytes, for tracking the sizes of
       dynamically-allocated regions.
       This is part of the region_model rather than the region to allow for
*************** private:
*** 717,727 ****
  class region_model_context
  {
   public:
    /* Hook for clients to store pending diagnostics.
!      Return true if the diagnostic was stored, or false if it was deleted.
!      Optionally provide a custom stmt_finder.  */
!   virtual bool warn (std::unique_ptr<pending_diagnostic> d,
! 		     const stmt_finder *custom_finder = NULL) = 0;
  
    /* Hook for clients to add a note to the last previously stored
       pending diagnostic.  */
--- 745,763 ----
  class region_model_context
  {
   public:
+   bool
+   warn (std::unique_ptr<pending_diagnostic> d,
+ 	std::unique_ptr<pending_location::fixer_for_epath> ploc_fixer = nullptr);
+ 
+   /* Hook for determining where diagnostics are to currently be emitted.  */
+   virtual pending_location
+   get_pending_location_for_diag () const = 0;
+ 
    /* Hook for clients to store pending diagnostics.
!      Return true if the diagnostic was stored, or false if it was deleted.  */
!   virtual bool
!   warn_at (std::unique_ptr<pending_diagnostic> d,
! 	   pending_location &&ploc) = 0;
  
    /* Hook for clients to add a note to the last previously stored
       pending diagnostic.  */
*************** class region_model_context
*** 815,827 ****
  		       const state_machine **out_sm,
  		       unsigned *out_sm_idx)
    {
!     return get_state_map_by_name ("malloc", out_smap, out_sm, out_sm_idx, NULL);
    }
    bool get_taint_map (sm_state_map **out_smap,
  		      const state_machine **out_sm,
  		      unsigned *out_sm_idx)
    {
!     return get_state_map_by_name ("taint", out_smap, out_sm, out_sm_idx, NULL);
    }
  
    bool possibly_tainted_p (const svalue *sval);
--- 851,865 ----
  		       const state_machine **out_sm,
  		       unsigned *out_sm_idx)
    {
!     return get_state_map_by_name ("malloc", out_smap, out_sm, out_sm_idx,
! 				  nullptr);
    }
    bool get_taint_map (sm_state_map **out_smap,
  		      const state_machine **out_sm,
  		      unsigned *out_sm_idx)
    {
!     return get_state_map_by_name ("taint", out_smap, out_sm, out_sm_idx,
! 				  nullptr);
    }
  
    bool possibly_tainted_p (const svalue *sval);
*************** class region_model_context
*** 831,836 ****
--- 869,876 ----
  
    virtual const exploded_graph *get_eg () const = 0;
  
+   virtual const program_state *get_state () const = 0;
+ 
    /* Hooks for detecting infinite loops.  */
    virtual void maybe_did_work () = 0;
    virtual bool checking_for_infinite_loop_p () const = 0;
*************** class region_model_context
*** 842,855 ****
  class noop_region_model_context : public region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic>,
! 	     const stmt_finder *) override { return false; }
    void add_note (std::unique_ptr<pending_note>) override;
    void add_event (std::unique_ptr<checker_event>) override;
    void on_svalue_leak (const svalue *) override {}
    void on_liveness_change (const svalue_set &,
  			   const region_model *) override {}
!   logger *get_logger () override { return NULL; }
    void on_condition (const svalue *lhs ATTRIBUTE_UNUSED,
  		     enum tree_code op ATTRIBUTE_UNUSED,
  		     const svalue *rhs ATTRIBUTE_UNUSED) override
--- 882,904 ----
  class noop_region_model_context : public region_model_context
  {
  public:
!   pending_location
!   get_pending_location_for_diag () const override
!   {
!     return pending_location ();
!   }
!   bool
!   warn_at (std::unique_ptr<pending_diagnostic>,
! 	   pending_location &&) override
!   {
!     return false;
!   }
    void add_note (std::unique_ptr<pending_note>) override;
    void add_event (std::unique_ptr<checker_event>) override;
    void on_svalue_leak (const svalue *) override {}
    void on_liveness_change (const svalue_set &,
  			   const region_model *) override {}
!   logger *get_logger () override { return nullptr; }
    void on_condition (const svalue *lhs ATTRIBUTE_UNUSED,
  		     enum tree_code op ATTRIBUTE_UNUSED,
  		     const svalue *rhs ATTRIBUTE_UNUSED) override
*************** public:
*** 872,885 ****
  
    void on_escaped_function (tree) override {}
  
!   uncertainty_t *get_uncertainty () override { return NULL; }
  
    void purge_state_involving (const svalue *sval ATTRIBUTE_UNUSED) override {}
  
    void bifurcate (std::unique_ptr<custom_edge_info> info) override;
    void terminate_path () override;
  
!   const extrinsic_state *get_ext_state () const override { return NULL; }
  
    bool get_state_map_by_name (const char *,
  			      sm_state_map **,
--- 921,934 ----
  
    void on_escaped_function (tree) override {}
  
!   uncertainty_t *get_uncertainty () override { return nullptr; }
  
    void purge_state_involving (const svalue *sval ATTRIBUTE_UNUSED) override {}
  
    void bifurcate (std::unique_ptr<custom_edge_info> info) override;
    void terminate_path () override;
  
!   const extrinsic_state *get_ext_state () const override { return nullptr; }
  
    bool get_state_map_by_name (const char *,
  			      sm_state_map **,
*************** public:
*** 890,897 ****
      return false;
    }
  
!   const gimple *get_stmt () const override { return NULL; }
!   const exploded_graph *get_eg () const override { return NULL; }
    void maybe_did_work () override {}
    bool checking_for_infinite_loop_p () const override { return false; }
    void on_unusable_in_infinite_loop () override {}
--- 939,948 ----
      return false;
    }
  
!   const gimple *get_stmt () const override { return nullptr; }
!   const exploded_graph *get_eg () const override { return nullptr; }
!   const program_state *get_state () const override { return nullptr; }
! 
    void maybe_did_work () override {}
    bool checking_for_infinite_loop_p () const override { return false; }
    void on_unusable_in_infinite_loop () override {}
*************** private:
*** 923,933 ****
  class region_model_context_decorator : public region_model_context
  {
   public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder) override
    {
      if (m_inner)
!       return m_inner->warn (std::move (d), custom_finder);
      else
        return false;
    }
--- 974,994 ----
  class region_model_context_decorator : public region_model_context
  {
   public:
!   pending_location
!   get_pending_location_for_diag () const override
    {
      if (m_inner)
!       return m_inner->get_pending_location_for_diag ();
!     else
!       return pending_location ();
!   }
! 
!   bool
!   warn_at (std::unique_ptr<pending_diagnostic> d,
! 	   pending_location &&ploc) override
!   {
!     if (m_inner)
!       return m_inner->warn_at (std::move (d), std::move (ploc));
      else
        return false;
    }
*************** class region_model_context_decorator : p
*** 1070,1075 ****
--- 1131,1144 ----
  	return nullptr;
    }
  
+   const program_state *get_state () const override
+   {
+     if (m_inner)
+       return m_inner->get_state ();
+     else
+       return nullptr;
+   }
+ 
    void maybe_did_work () override
    {
      if (m_inner)
*************** protected:
*** 1103,1113 ****
  class annotating_context : public region_model_context_decorator
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *custom_finder) override
    {
      if (m_inner)
!       if (m_inner->warn (std::move (d), custom_finder))
  	{
  	  add_annotations ();
  	  return true;
--- 1172,1183 ----
  class annotating_context : public region_model_context_decorator
  {
  public:
!   bool
!   warn_at (std::unique_ptr<pending_diagnostic> d,
! 	   pending_location &&ploc) override
    {
      if (m_inner)
!       if (m_inner->warn_at (std::move (d), std::move (ploc)))
  	{
  	  add_annotations ();
  	  return true;
*************** struct model_merger
*** 1155,1163 ****
    }
  
    bool mergeable_svalue_p (const svalue *) const;
!   const function_point &get_function_point () const
    {
!     return m_point.get_function_point ();
    }
  
    void on_widening_reuse (const widening_svalue *widening_sval);
--- 1225,1234 ----
    }
  
    bool mergeable_svalue_p (const svalue *) const;
! 
!   const supernode *get_supernode () const
    {
!     return m_point.get_supernode ();
    }
  
    void on_widening_reuse (const widening_svalue *widening_sval);
*************** class rejected_op_constraint : public re
*** 1197,1212 ****
  {
  public:
    rejected_op_constraint (const region_model &model,
! 			  tree lhs, enum tree_code op, tree rhs)
    : rejected_constraint (model),
      m_lhs (lhs), m_op (op), m_rhs (rhs)
    {}
  
    void dump_to_pp (pretty_printer *pp) const final override;
  
!   tree m_lhs;
    enum tree_code m_op;
!   tree m_rhs;
  };
  
  class rejected_default_case : public rejected_constraint
--- 1268,1283 ----
  {
  public:
    rejected_op_constraint (const region_model &model,
! 			  const svalue *lhs, enum tree_code op, const svalue *rhs)
    : rejected_constraint (model),
      m_lhs (lhs), m_op (op), m_rhs (rhs)
    {}
  
    void dump_to_pp (pretty_printer *pp) const final override;
  
!   const svalue *m_lhs;
    enum tree_code m_op;
!   const svalue *m_rhs;
  };
  
  class rejected_default_case : public rejected_constraint
*************** private:
*** 1240,1246 ****
  class engine
  {
  public:
!   engine (const supergraph *sg = NULL, logger *logger = NULL);
    const supergraph *get_supergraph () { return m_sg; }
    region_model_manager *get_model_manager () { return &m_mgr; }
    known_function_manager *get_known_function_manager ()
--- 1311,1318 ----
  class engine
  {
  public:
!   engine (region_model_manager &mgr,
! 	  const supergraph *sg = nullptr);
    const supergraph *get_supergraph () { return m_sg; }
    region_model_manager *get_model_manager () { return &m_mgr; }
    known_function_manager *get_known_function_manager ()
*************** public:
*** 1251,1258 ****
    void log_stats (logger *logger) const;
  
  private:
    const supergraph *m_sg;
-   region_model_manager m_mgr;
  };
  
  } // namespace ana
--- 1323,1330 ----
    void log_stats (logger *logger) const;
  
  private:
+   region_model_manager &m_mgr;
    const supergraph *m_sg;
  };
  
  } // namespace ana
*************** using namespace ::selftest;
*** 1273,1280 ****
  class test_region_model_context : public noop_region_model_context
  {
  public:
!   bool warn (std::unique_ptr<pending_diagnostic> d,
! 	     const stmt_finder *) final override
    {
      m_diagnostics.safe_push (d.release ());
      return true;
--- 1345,1353 ----
  class test_region_model_context : public noop_region_model_context
  {
  public:
!   bool
!   warn_at (std::unique_ptr<pending_diagnostic> d,
! 	   pending_location &&) final override
    {
      m_diagnostics.safe_push (d.release ());
      return true;
*************** private:
*** 1299,1305 ****
  
  #define ADD_SAT_CONSTRAINT(MODEL, LHS, OP, RHS)	\
    SELFTEST_BEGIN_STMT					\
!     bool sat = (MODEL).add_constraint (LHS, OP, RHS, NULL);	\
      ASSERT_TRUE (sat);					\
    SELFTEST_END_STMT
  
--- 1372,1378 ----
  
  #define ADD_SAT_CONSTRAINT(MODEL, LHS, OP, RHS)	\
    SELFTEST_BEGIN_STMT					\
!     bool sat = (MODEL).add_constraint (LHS, OP, RHS, nullptr);	\
      ASSERT_TRUE (sat);					\
    SELFTEST_END_STMT
  
*************** private:
*** 1308,1314 ****
  
  #define ADD_UNSAT_CONSTRAINT(MODEL, LHS, OP, RHS)	\
    SELFTEST_BEGIN_STMT					\
!     bool sat = (MODEL).add_constraint (LHS, OP, RHS, NULL);	\
      ASSERT_FALSE (sat);				\
    SELFTEST_END_STMT
  
--- 1381,1387 ----
  
  #define ADD_UNSAT_CONSTRAINT(MODEL, LHS, OP, RHS)	\
    SELFTEST_BEGIN_STMT					\
!     bool sat = (MODEL).add_constraint (LHS, OP, RHS, nullptr);	\
      ASSERT_FALSE (sat);				\
    SELFTEST_END_STMT
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region.cc gcc-16.1.0-RC-20260423/gcc/analyzer/region.cc
*** gcc-15.2.0/gcc/analyzer/region.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,55 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
! #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "diagnostic-color.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
- #include "analyzer/supergraph.h"
  #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
--- 18,36 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "sbitmap.h"
+ #include "fold-const.h"
+ #include "tree-ssa.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
*************** along with GCC; see the file COPYING3.
*** 58,64 ****
  #include "analyzer/sm.h"
  #include "analyzer/program-state.h"
  #include "text-art/dump.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 39,44 ----
*************** region_offset::dump (bool simple) const
*** 144,150 ****
  }
  
  /* An svalue that matches the pattern (BASE * FACTOR) + OFFSET
!    where FACTOR or OFFSET could be the identity (represented as NULL).  */
  
  struct linear_op
  {
--- 124,130 ----
  }
  
  /* An svalue that matches the pattern (BASE * FACTOR) + OFFSET
!    where FACTOR or OFFSET could be the identity (represented as nullptr).  */
  
  struct linear_op
  {
*************** struct linear_op
*** 251,257 ****
  	    {
  	      *out = linear_op (binop_sval.get_arg0 (),
  				binop_sval.get_arg1 (),
! 				NULL);
  	      return true;
  	    }
  	  else if (binop_sval.get_op () == PLUS_EXPR)
--- 231,237 ----
  	    {
  	      *out = linear_op (binop_sval.get_arg0 (),
  				binop_sval.get_arg1 (),
! 				nullptr);
  	      return true;
  	    }
  	  else if (binop_sval.get_op () == PLUS_EXPR)
*************** struct linear_op
*** 270,276 ****
  		}
  
  	      *out = linear_op (binop_sval.get_arg0 (),
! 				NULL,
  				binop_sval.get_arg1 ());
  	      return true;
  	    }
--- 250,256 ----
  		}
  
  	      *out = linear_op (binop_sval.get_arg0 (),
! 				nullptr,
  				binop_sval.get_arg1 ());
  	      return true;
  	    }
*************** operator< (const region_offset &a, const
*** 296,303 ****
  	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
  	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
  
! 	  linear_op op_a (NULL, NULL, NULL);
! 	  linear_op op_b (NULL, NULL, NULL);
  	  if (linear_op::from_svalue (a_sval, &op_a)
  	      && linear_op::from_svalue (b_sval, &op_b))
  	    {
--- 276,283 ----
  	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
  	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
  
! 	  linear_op op_a (nullptr, nullptr, nullptr);
! 	  linear_op op_b (nullptr, nullptr, nullptr);
  	  if (linear_op::from_svalue (a_sval, &op_a)
  	      && linear_op::from_svalue (b_sval, &op_b))
  	    {
*************** operator<= (const region_offset &a, cons
*** 338,345 ****
  	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
  	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
  
! 	  linear_op op_a (NULL, NULL, NULL);
! 	  linear_op op_b (NULL, NULL, NULL);
  	  if (linear_op::from_svalue (a_sval, &op_a)
  	      && linear_op::from_svalue (b_sval, &op_b))
  	    {
--- 318,325 ----
  	  const svalue &a_sval = *a.get_symbolic_byte_offset ();
  	  const svalue &b_sval = *b.get_symbolic_byte_offset ();
  
! 	  linear_op op_a (nullptr, nullptr, nullptr);
! 	  linear_op op_b (nullptr, nullptr, nullptr);
  	  if (linear_op::from_svalue (a_sval, &op_a)
  	      && linear_op::from_svalue (b_sval, &op_b))
  	    {
*************** region::descendent_of_p (const region *e
*** 468,474 ****
  }
  
  /* If this region is a frame_region, or a descendent of one, return it.
!    Otherwise return NULL.  */
  
  const frame_region *
  region::maybe_get_frame_region () const
--- 448,454 ----
  }
  
  /* If this region is a frame_region, or a descendent of one, return it.
!    Otherwise return nullptr.  */
  
  const frame_region *
  region::maybe_get_frame_region () const
*************** region::maybe_get_frame_region () const
*** 480,486 ****
  	return frame_reg;
        iter = iter->get_parent_region ();
      }
!   return NULL;
  }
  
  /* Get the memory space of this region.  */
--- 460,466 ----
  	return frame_reg;
        iter = iter->get_parent_region ();
      }
!   return nullptr;
  }
  
  /* Get the memory space of this region.  */
*************** region::can_have_initial_svalue_p () con
*** 567,581 ****
  
  	    case SSA_NAME:
  	      {
  		tree ssa_name = decl;
! 		/* SSA names that are the default defn of a PARM_DECL
! 		   have initial_svalues; other SSA names don't.  */
! 		if (SSA_NAME_IS_DEFAULT_DEF (ssa_name)
! 		    && SSA_NAME_VAR (ssa_name)
! 		    && TREE_CODE (SSA_NAME_VAR (ssa_name)) == PARM_DECL)
! 		  return true;
! 		else
! 		  return false;
  	      }
  	    }
  	}
--- 547,558 ----
  
  	    case SSA_NAME:
  	      {
+ 		/* Some SSA names have an implicit default defined value.  */
  		tree ssa_name = decl;
! 		if (SSA_NAME_IS_DEFAULT_DEF (ssa_name))
! 		  return ssa_defined_default_def_p (ssa_name);
! 		/* Others don't.  */
! 		return false;
  	      }
  	    }
  	}
*************** region::calc_initial_value_at_main (regi
*** 614,620 ****
        else
  	{
  	  /* Get the value for REG within base_reg_init.  */
! 	  binding_cluster c (base_reg);
  	  c.bind (mgr->get_store_manager (), base_reg, base_reg_init);
  	  const svalue *sval
  	    = c.get_any_binding (mgr->get_store_manager (), this);
--- 591,597 ----
        else
  	{
  	  /* Get the value for REG within base_reg_init.  */
! 	  binding_cluster c (*mgr->get_store_manager (), base_reg);
  	  c.bind (mgr->get_store_manager (), base_reg, base_reg_init);
  	  const svalue *sval
  	    = c.get_any_binding (mgr->get_store_manager (), this);
*************** region::calc_initial_value_at_main (regi
*** 632,638 ****
  }
  
  /* If this region is a decl_region, return the decl.
!    Otherwise return NULL.  */
  
  tree
  region::maybe_get_decl () const
--- 609,615 ----
  }
  
  /* If this region is a decl_region, return the decl.
!    Otherwise return NULL_TREE.  */
  
  tree
  region::maybe_get_decl () const
*************** get_field_at_bit_offset (tree record_typ
*** 792,798 ****
  {
    gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
    if (bit_offset < 0)
!     return NULL;
  
    /* Find the first field that has an offset > BIT_OFFSET,
       then return the one preceding it.
--- 769,775 ----
  {
    gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
    if (bit_offset < 0)
!     return nullptr;
  
    /* Find the first field that has an offset > BIT_OFFSET,
       then return the one preceding it.
*************** region::calc_offset (region_model_manage
*** 902,908 ****
  {
    const region *iter_region = this;
    bit_offset_t accum_bit_offset = 0;
!   const svalue *accum_byte_sval = NULL;
  
    while (iter_region)
      {
--- 879,885 ----
  {
    const region *iter_region = this;
    bit_offset_t accum_bit_offset = 0;
!   const svalue *accum_byte_sval = nullptr;
  
    while (iter_region)
      {
*************** std::unique_ptr<json::value>
*** 1039,1045 ****
  region::to_json () const
  {
    label_text desc = get_desc (true);
!   auto reg_js = ::make_unique<json::string> (desc.get ());
    return reg_js;
  }
  
--- 1016,1022 ----
  region::to_json () const
  {
    label_text desc = get_desc (true);
!   auto reg_js = std::make_unique<json::string> (desc.get ());
    return reg_js;
  }
  
*************** region::is_named_decl_p (const char *dec
*** 1178,1184 ****
  region::region (complexity c, symbol::id_t id, const region *parent, tree type)
  : symbol (c, id),
    m_parent (parent), m_type (type),
!   m_cached_offset (NULL), m_cached_init_sval_at_main (NULL)
  {
    gcc_assert (type == NULL_TREE || TYPE_P (type));
  }
--- 1155,1161 ----
  region::region (complexity c, symbol::id_t id, const region *parent, tree type)
  : symbol (c, id),
    m_parent (parent), m_type (type),
!   m_cached_offset (nullptr), m_cached_init_sval_at_main (nullptr)
  {
    gcc_assert (type == NULL_TREE || TYPE_P (type));
  }
*************** frame_region::get_region_for_local (regi
*** 1416,1424 ****
  		    = ext_state->get_engine ()->get_supergraph ())
  		  {
  		    const gimple *def_stmt = SSA_NAME_DEF_STMT (expr);
! 		    const supernode *snode
! 		      = sg->get_supernode_for_stmt (def_stmt);
! 		    gcc_assert (snode->get_function () == &m_fun);
  		  }
  	  }
  	  break;
--- 1393,1404 ----
  		    = ext_state->get_engine ()->get_supergraph ())
  		  {
  		    const gimple *def_stmt = SSA_NAME_DEF_STMT (expr);
! 		    if (gimple_code (def_stmt) != GIMPLE_PHI)
! 		      {
! 			const supernode *snode
! 			  = sg->get_supernode_for_stmt (def_stmt);
! 			gcc_assert (snode->get_function () == &m_fun);
! 		      }
  		  }
  	  }
  	  break;
*************** heap_region::print_dump_widget_label (pr
*** 1571,1577 ****
  /* root_region's ctor.  */
  
  root_region::root_region (symbol::id_t id)
! : region (complexity (1, 1), id, NULL, NULL_TREE)
  {
  }
  
--- 1551,1557 ----
  /* root_region's ctor.  */
  
  root_region::root_region (symbol::id_t id)
! : region (complexity (1, 1), id, nullptr, NULL_TREE)
  {
  }
  
*************** decl_region::print_dump_widget_label (pr
*** 1703,1709 ****
  int
  decl_region::get_stack_depth () const
  {
!   if (get_parent_region () == NULL)
      return 0;
    if (const frame_region *frame_reg
  	= get_parent_region ()->dyn_cast_frame_region ())
--- 1683,1689 ----
  int
  decl_region::get_stack_depth () const
  {
!   if (get_parent_region () == nullptr)
      return 0;
    if (const frame_region *frame_reg
  	= get_parent_region ()->dyn_cast_frame_region ())
*************** decl_region::get_stack_depth () const
*** 1713,1719 ****
  
  /* If the underlying decl is in the global constant pool,
     return an svalue representing the constant value.
!    Otherwise return NULL.  */
  
  const svalue *
  decl_region::maybe_get_constant_value (region_model_manager *mgr) const
--- 1693,1699 ----
  
  /* If the underlying decl is in the global constant pool,
     return an svalue representing the constant value.
!    Otherwise return nullptr.  */
  
  const svalue *
  decl_region::maybe_get_constant_value (region_model_manager *mgr) const
*************** decl_region::maybe_get_constant_value (r
*** 1723,1729 ****
        && DECL_INITIAL (m_decl)
        && TREE_CODE (DECL_INITIAL (m_decl)) == CONSTRUCTOR)
      return get_svalue_for_constructor (DECL_INITIAL (m_decl), mgr);
!   return NULL;
  }
  
  /* Implementation of decl_region::get_svalue_for_constructor
--- 1703,1709 ----
        && DECL_INITIAL (m_decl)
        && TREE_CODE (DECL_INITIAL (m_decl)) == CONSTRUCTOR)
      return get_svalue_for_constructor (DECL_INITIAL (m_decl), mgr);
!   return nullptr;
  }
  
  /* Implementation of decl_region::get_svalue_for_constructor
*************** decl_region::calc_svalue_for_constructor
*** 1736,1742 ****
    /* Create a binding map, applying ctor to it, using this
       decl_region as the base region when building child regions
       for offset calculations.  */
!   binding_map map;
    if (!map.apply_ctor_to_region (this, ctor, mgr))
      return mgr->get_or_create_unknown_svalue (get_type ());
  
--- 1716,1722 ----
    /* Create a binding map, applying ctor to it, using this
       decl_region as the base region when building child regions
       for offset calculations.  */
!   binding_map map (*mgr->get_store_manager ());
    if (!map.apply_ctor_to_region (this, ctor, mgr))
      return mgr->get_or_create_unknown_svalue (get_type ());
  
*************** decl_region::get_svalue_for_constructor
*** 1765,1771 ****
     "main" (either based on DECL_INITIAL, or implicit initialization to
     zero.
  
!    Return NULL if there is a problem.  */
  
  const svalue *
  decl_region::get_svalue_for_initializer (region_model_manager *mgr) const
--- 1745,1751 ----
     "main" (either based on DECL_INITIAL, or implicit initialization to
     zero.
  
!    Return nullptr if there is a problem.  */
  
  const svalue *
  decl_region::get_svalue_for_initializer (region_model_manager *mgr) const
*************** decl_region::get_svalue_for_initializer
*** 1776,1785 ****
        /* If we have an "extern" decl then there may be an initializer in
  	 another TU.  */
        if (DECL_EXTERNAL (m_decl))
! 	return NULL;
  
        if (empty_p ())
! 	return NULL;
  
        /* Implicit initialization to zero; use a compound_svalue for it.
  	 Doing so requires that we have a concrete binding for this region,
--- 1756,1765 ----
        /* If we have an "extern" decl then there may be an initializer in
  	 another TU.  */
        if (DECL_EXTERNAL (m_decl))
! 	return nullptr;
  
        if (empty_p ())
! 	return nullptr;
  
        /* Implicit initialization to zero; use a compound_svalue for it.
  	 Doing so requires that we have a concrete binding for this region,
*************** decl_region::get_svalue_for_initializer
*** 1788,1801 ****
        const binding_key *binding
  	= binding_key::make (mgr->get_store_manager (), this);
        if (binding->symbolic_p ())
! 	return NULL;
  
        /* If we don't care about tracking the content of this region, then
  	 it's unused, and the value doesn't matter.  */
        if (!tracked_p ())
! 	return NULL;
  
!       binding_cluster c (this);
        c.zero_fill_region (mgr->get_store_manager (), this);
        return mgr->get_or_create_compound_svalue (TREE_TYPE (m_decl),
  						 c.get_map ());
--- 1768,1781 ----
        const binding_key *binding
  	= binding_key::make (mgr->get_store_manager (), this);
        if (binding->symbolic_p ())
! 	return nullptr;
  
        /* If we don't care about tracking the content of this region, then
  	 it's unused, and the value doesn't matter.  */
        if (!tracked_p ())
! 	return nullptr;
  
!       binding_cluster c (*mgr->get_store_manager (), this);
        c.zero_fill_region (mgr->get_store_manager (), this);
        return mgr->get_or_create_compound_svalue (TREE_TYPE (m_decl),
  						 c.get_map ());
*************** decl_region::get_svalue_for_initializer
*** 1804,1817 ****
    /* LTO can write out error_mark_node as the DECL_INITIAL for simple scalar
       values (to avoid writing out an extra section).  */
    if (init == error_mark_node)
!     return NULL;
  
    if (TREE_CODE (init) == CONSTRUCTOR)
      return get_svalue_for_constructor (init, mgr);
  
    /* Reuse the get_rvalue logic from region_model.  */
    region_model m (mgr);
!   return m.get_rvalue (path_var (init, 0), NULL);
  }
  
  /* Subroutine of symnode_requires_tracking_p; return true if REF
--- 1784,1797 ----
    /* LTO can write out error_mark_node as the DECL_INITIAL for simple scalar
       values (to avoid writing out an extra section).  */
    if (init == error_mark_node)
!     return nullptr;
  
    if (TREE_CODE (init) == CONSTRUCTOR)
      return get_svalue_for_constructor (init, mgr);
  
    /* Reuse the get_rvalue logic from region_model.  */
    region_model m (mgr);
!   return m.get_rvalue (path_var (init, 0), nullptr);
  }
  
  /* Subroutine of symnode_requires_tracking_p; return true if REF
*************** ipa_ref_requires_tracking (ipa_ref *ref)
*** 1825,1831 ****
    if (ref->use != IPA_REF_ADDR)
      return true;
  
!   if (ref->stmt == NULL)
      return true;
  
    switch (ref->stmt->code)
--- 1805,1811 ----
    if (ref->use != IPA_REF_ADDR)
      return true;
  
!   if (ref->stmt == nullptr)
      return true;
  
    switch (ref->stmt->code)
*************** ipa_ref_requires_tracking (ipa_ref *ref)
*** 1835,1846 ****
      case GIMPLE_CALL:
        {
  	cgraph_node *caller_cnode = dyn_cast <cgraph_node *> (ref->referring);
! 	if (caller_cnode == NULL)
  	  return true;
  	cgraph_edge *edge = caller_cnode->get_edge (ref->stmt);
  	if (!edge)
  	  return true;
! 	if (edge->callee == NULL)
  	  return true; /* e.g. call through function ptr.  */
  	if (edge->callee->definition)
  	  return true;
--- 1815,1826 ----
      case GIMPLE_CALL:
        {
  	cgraph_node *caller_cnode = dyn_cast <cgraph_node *> (ref->referring);
! 	if (caller_cnode == nullptr)
  	  return true;
  	cgraph_edge *edge = caller_cnode->get_edge (ref->stmt);
  	if (!edge)
  	  return true;
! 	if (edge->callee == nullptr)
  	  return true; /* e.g. call through function ptr.  */
  	if (edge->callee->definition)
  	  return true;
*************** symnode_requires_tracking_p (symtab_node
*** 1875,1881 ****
    if (symnode->externally_visible)
      return true;
    tree context_fndecl = DECL_CONTEXT (symnode->decl);
!   if (context_fndecl == NULL)
      return true;
    if (TREE_CODE (context_fndecl) != FUNCTION_DECL)
      return true;
--- 1855,1861 ----
    if (symnode->externally_visible)
      return true;
    tree context_fndecl = DECL_CONTEXT (symnode->decl);
!   if (context_fndecl == nullptr)
      return true;
    if (TREE_CODE (context_fndecl) != FUNCTION_DECL)
      return true;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/region.h gcc-16.1.0-RC-20260423/gcc/analyzer/region.h
*** gcc-15.2.0/gcc/analyzer/region.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/region.h	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Regions of memory.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 129,157 ****
  
    virtual enum region_kind get_kind () const = 0;
    virtual const frame_region *
!   dyn_cast_frame_region () const { return NULL; }
    virtual const function_region *
!   dyn_cast_function_region () const { return NULL; }
    virtual const symbolic_region *
!   dyn_cast_symbolic_region () const { return NULL; }
    virtual const decl_region *
!   dyn_cast_decl_region () const { return NULL; }
    virtual const field_region *
!   dyn_cast_field_region () const { return NULL; }
    virtual const element_region *
!   dyn_cast_element_region () const { return NULL; }
    virtual const offset_region *
!   dyn_cast_offset_region () const { return NULL; }
    virtual const sized_region *
!   dyn_cast_sized_region () const { return NULL; }
    virtual const cast_region *
!   dyn_cast_cast_region () const { return NULL; }
    virtual const string_region *
!   dyn_cast_string_region () const { return NULL; }
    virtual const bit_range_region *
!   dyn_cast_bit_range_region () const { return NULL; }
    virtual const var_arg_region *
!   dyn_cast_var_arg_region () const { return NULL; }
  
    virtual void accept (visitor *v) const;
  
--- 129,157 ----
  
    virtual enum region_kind get_kind () const = 0;
    virtual const frame_region *
!   dyn_cast_frame_region () const { return nullptr; }
    virtual const function_region *
!   dyn_cast_function_region () const { return nullptr; }
    virtual const symbolic_region *
!   dyn_cast_symbolic_region () const { return nullptr; }
    virtual const decl_region *
!   dyn_cast_decl_region () const { return nullptr; }
    virtual const field_region *
!   dyn_cast_field_region () const { return nullptr; }
    virtual const element_region *
!   dyn_cast_element_region () const { return nullptr; }
    virtual const offset_region *
!   dyn_cast_offset_region () const { return nullptr; }
    virtual const sized_region *
!   dyn_cast_sized_region () const { return nullptr; }
    virtual const cast_region *
!   dyn_cast_cast_region () const { return nullptr; }
    virtual const string_region *
!   dyn_cast_string_region () const { return nullptr; }
    virtual const bit_range_region *
!   dyn_cast_bit_range_region () const { return nullptr; }
    virtual const var_arg_region *
!   dyn_cast_var_arg_region () const { return nullptr; }
  
    virtual void accept (visitor *v) const;
  
*************** public:
*** 324,330 ****
      key_t (const frame_region *calling_frame, const function &fun)
      : m_calling_frame (calling_frame), m_fun (&fun)
      {
!       /* calling_frame can be NULL.  */
      }
  
      hashval_t hash () const
--- 324,330 ----
      key_t (const frame_region *calling_frame, const function &fun)
      : m_calling_frame (calling_frame), m_fun (&fun)
      {
!       /* calling_frame can be nullptr.  */
      }
  
      hashval_t hash () const
*************** public:
*** 342,353 ****
      }
  
      void mark_deleted () { m_fun = reinterpret_cast<function *> (1); }
!     void mark_empty () { m_fun = NULL; }
      bool is_deleted () const
      {
        return m_fun == reinterpret_cast<function *> (1);
      }
!     bool is_empty () const { return m_fun == NULL; }
  
      const frame_region *m_calling_frame;
      const function *m_fun;
--- 342,353 ----
      }
  
      void mark_deleted () { m_fun = reinterpret_cast<function *> (1); }
!     void mark_empty () { m_fun = nullptr; }
      bool is_deleted () const
      {
        return m_fun == reinterpret_cast<function *> (1);
      }
!     bool is_empty () const { return m_fun == nullptr; }
  
      const frame_region *m_calling_frame;
      const function *m_fun;
*************** public:
*** 685,696 ****
      }
  
      void mark_deleted () { m_sval_ptr = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_sval_ptr = NULL; }
      bool is_deleted () const
      {
        return m_sval_ptr == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_sval_ptr == NULL; }
  
      const region *m_parent;
      const svalue *m_sval_ptr;
--- 685,696 ----
      }
  
      void mark_deleted () { m_sval_ptr = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_sval_ptr = nullptr; }
      bool is_deleted () const
      {
        return m_sval_ptr == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_sval_ptr == nullptr; }
  
      const region *m_parent;
      const svalue *m_sval_ptr;
*************** public:
*** 744,750 ****
    decl_region (symbol::id_t id, const region *parent, tree decl)
    : region (complexity (parent), id, parent, TREE_TYPE (decl)), m_decl (decl),
      m_tracked (calc_tracked_p (decl)),
!     m_ctor_svalue (NULL)
    {}
  
    enum region_kind get_kind () const final override { return RK_DECL; }
--- 744,750 ----
    decl_region (symbol::id_t id, const region *parent, tree decl)
    : region (complexity (parent), id, parent, TREE_TYPE (decl)), m_decl (decl),
      m_tracked (calc_tracked_p (decl)),
!     m_ctor_svalue (nullptr)
    {}
  
    enum region_kind get_kind () const final override { return RK_DECL; }
*************** public:
*** 904,915 ****
      }
  
      void mark_deleted () { m_index = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_index = NULL; }
      bool is_deleted () const
      {
        return m_index == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_index == NULL; }
  
      const region *m_parent;
      tree m_element_type;
--- 904,915 ----
      }
  
      void mark_deleted () { m_index = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_index = nullptr; }
      bool is_deleted () const
      {
        return m_index == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_index == nullptr; }
  
      const region *m_parent;
      tree m_element_type;
*************** public:
*** 998,1009 ****
      }
  
      void mark_deleted () { m_byte_offset = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_byte_offset = NULL; }
      bool is_deleted () const
      {
        return m_byte_offset == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_byte_offset == NULL; }
  
      const region *m_parent;
      tree m_element_type;
--- 998,1009 ----
      }
  
      void mark_deleted () { m_byte_offset = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_byte_offset = nullptr; }
      bool is_deleted () const
      {
        return m_byte_offset == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_byte_offset == nullptr; }
  
      const region *m_parent;
      tree m_element_type;
*************** public:
*** 1094,1105 ****
      }
  
      void mark_deleted () { m_byte_size_sval = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_byte_size_sval = NULL; }
      bool is_deleted () const
      {
        return m_byte_size_sval == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_byte_size_sval == NULL; }
  
      const region *m_parent;
      tree m_element_type;
--- 1094,1105 ----
      }
  
      void mark_deleted () { m_byte_size_sval = reinterpret_cast<const svalue *> (1); }
!     void mark_empty () { m_byte_size_sval = nullptr; }
      bool is_deleted () const
      {
        return m_byte_size_sval == reinterpret_cast<const svalue *> (1);
      }
!     bool is_empty () const { return m_byte_size_sval == nullptr; }
  
      const region *m_parent;
      tree m_element_type;
*************** public:
*** 1342,1353 ****
      }
  
      void mark_deleted () { m_parent = reinterpret_cast<const region *> (1); }
!     void mark_empty () { m_parent = NULL; }
      bool is_deleted () const
      {
        return m_parent == reinterpret_cast<const region *> (1);
      }
!     bool is_empty () const { return m_parent == NULL; }
  
      const region *m_parent;
      tree m_type;
--- 1342,1353 ----
      }
  
      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;
*************** public:
*** 1432,1443 ****
      {
        m_parent = reinterpret_cast<const frame_region *> (1);
      }
!     void mark_empty () { m_parent = NULL; }
      bool is_deleted () const
      {
        return m_parent == reinterpret_cast<const frame_region *> (1);
      }
!     bool is_empty () const { return m_parent == NULL; }
  
      const frame_region *m_parent;
      unsigned m_idx;
--- 1432,1443 ----
      {
        m_parent = reinterpret_cast<const frame_region *> (1);
      }
!     void mark_empty () { m_parent = nullptr; }
      bool is_deleted () const
      {
        return m_parent == reinterpret_cast<const frame_region *> (1);
      }
!     bool is_empty () const { return m_parent == nullptr; }
  
      const frame_region *m_parent;
      unsigned m_idx;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-fd.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-fd.cc
*** gcc-15.2.0/gcc/analyzer/sm-fd.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-fd.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A state machine for detecting misuses of POSIX file descriptor APIs.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by Immad Mir <mir@sourceware.org>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,49 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #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"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
- #include "stringpool.h"
- #include "attribs.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
- #include "bitmap.h"
  #include "analyzer/program-state.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-language.h"
--- 18,38 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
! #include "stringpool.h"
! #include "attribs.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-language.h"
*************** public:
*** 119,133 ****
      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;
  
    bool can_purge_p (state_t s) const final override;
!   std::unique_ptr<pending_diagnostic> on_leak (tree var) const final override;
  
    bool is_unchecked_fd_p (state_t s) const;
    bool is_valid_fd_p (state_t s) const;
--- 108,126 ----
      return m_start;
    }
  
!   bool on_stmt (sm_context &sm_ctxt,
  		const gimple *stmt) const final override;
  
!   void on_condition (sm_context &sm_ctxt,
! 		     const svalue *lhs, const tree_code op,
  		     const svalue *rhs) const final override;
  
    bool can_purge_p (state_t s) const final override;
! 
!   std::unique_ptr<pending_diagnostic>
!   on_leak (tree var,
! 	   const program_state *old_state,
! 	   const program_state *new_state) const final override;
  
    bool is_unchecked_fd_p (state_t s) const;
    bool is_valid_fd_p (state_t s) const;
*************** public:
*** 221,227 ****
    /* State for a file descriptor that we do not want to track anymore . */
    state_t m_stop;
  
!   /* Stashed constant values from the frontend.  These could be NULL.  */
    tree m_O_ACCMODE;
    tree m_O_RDONLY;
    tree m_O_WRONLY;
--- 214,220 ----
    /* State for a file descriptor that we do not want to track anymore . */
    state_t m_stop;
  
!   /* Stashed constant values from the frontend.  These could be NULL_TREE.  */
    tree m_O_ACCMODE;
    tree m_O_RDONLY;
    tree m_O_WRONLY;
*************** public:
*** 229,264 ****
    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;
  
    state_t get_state_for_socket_type (const svalue *socket_type_sval) const;
  
--- 222,255 ----
    tree m_SOCK_DGRAM;
  
  private:
!   void on_open (sm_context &sm_ctxt,
! 		const gcall &call) const;
!   void on_creat (sm_context &sm_ctxt,
! 		const gcall &call) const;
!   void on_close (sm_context &sm_ctxt,
! 		 const gcall &call) const;
!   void on_read (sm_context &sm_ctxt,
! 		const gcall &call, const tree callee_fndecl) const;
!   void on_write (sm_context &sm_ctxt,
! 		 const gcall &call, const tree callee_fndecl) const;
!   void check_for_open_fd (sm_context &sm_ctxt,
! 			  const gcall &call,
  			  const tree callee_fndecl,
  			  enum access_directions access_fn) const;
  
    void make_valid_transitions_on_condition (sm_context &sm_ctxt,
  					    const svalue *lhs) const;
    void make_invalid_transitions_on_condition (sm_context &sm_ctxt,
  					      const svalue *lhs) const;
!   void check_for_fd_attrs (sm_context &sm_ctxt,
! 			   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 gcall &call,
! 		      const tree callee_fndecl,
! 		      enum dup kind) const;
  
    state_t get_state_for_socket_type (const svalue *socket_type_sval) const;
  
*************** private:
*** 266,279 ****
  			    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,
  				enum expected_phase expected_phase) const;
  };
--- 257,268 ----
  			    bool successful,
  			    sm_context &sm_ctxt,
  			    const svalue *fd_sval,
  			    state_t old_state,
! 			    bool *complained = nullptr) const;
    bool check_for_new_socket_fd (const call_details &cd,
  				bool successful,
  				sm_context &sm_ctxt,
  				const svalue *fd_sval,
  				state_t old_state,
  				enum expected_phase expected_phase) const;
  };
*************** public:
*** 399,419 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (
        const evdesc::state_change &change) const final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& (m_sm.is_unchecked_fd_p (change.m_new_state)
  	    || change.m_new_state == m_sm.m_new_datagram_socket
  	    || change.m_new_state == m_sm.m_new_stream_socket
  	    || change.m_new_state == m_sm.m_new_unknown_socket))
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 			 diagnostic_event::NOUN_resource);
      if (change.m_new_state == m_sm.m_closed)
!       return diagnostic_event::meaning (diagnostic_event::VERB_release,
! 			 diagnostic_event::NOUN_resource);
!     return diagnostic_event::meaning ();
    }
  
  protected:
--- 388,409 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (
        const evdesc::state_change &change) const final override
    {
+     using event = diagnostics::paths::event;
      if (change.m_old_state == m_sm.get_start_state ()
  	&& (m_sm.is_unchecked_fd_p (change.m_new_state)
  	    || change.m_new_state == m_sm.m_new_datagram_socket
  	    || change.m_new_state == m_sm.m_new_stream_socket
  	    || change.m_new_state == m_sm.m_new_unknown_socket))
!       return event::meaning (event::verb::acquire,
! 			     event::noun::resource);
      if (change.m_new_state == m_sm.m_closed)
!       return event::meaning (event::verb::release,
! 			     event::noun::resource);
!     return event::meaning ();
    }
  
  protected:
*************** public:
*** 433,439 ****
  
    fd_param_diagnostic (const fd_state_machine &sm, tree arg, tree callee_fndecl)
        : fd_diagnostic (sm, arg), m_callee_fndecl (callee_fndecl),
! 	m_attr_name (NULL), m_arg_idx (-1)
    {
    }
  
--- 423,429 ----
  
    fd_param_diagnostic (const fd_state_machine &sm, tree arg, tree callee_fndecl)
        : fd_diagnostic (sm, arg), m_callee_fndecl (callee_fndecl),
! 	m_attr_name (nullptr), m_arg_idx (-1)
    {
    }
  
*************** protected:
*** 488,494 ****
  class fd_leak : public fd_diagnostic
  {
  public:
!   fd_leak (const fd_state_machine &sm, tree arg) : fd_diagnostic (sm, arg) {}
  
    const char *
    get_kind () const final override
--- 478,491 ----
  class fd_leak : public fd_diagnostic
  {
  public:
!   fd_leak (const fd_state_machine &sm, tree arg,
! 	   const program_state *final_state)
!   : fd_diagnostic (sm, arg),
!     m_final_state ()
!   {
!     if (final_state)
!       m_final_state = std::make_unique<program_state> (*final_state);
!   }
  
    const char *
    get_kind () const final override
*************** public:
*** 554,561 ****
      return true;
    }
  
  private:
!   diagnostic_event_id_t m_open_event;
  };
  
  class fd_access_mode_mismatch : public fd_param_diagnostic
--- 551,565 ----
      return true;
    }
  
+   const program_state *
+   get_final_state () const final override
+   {
+     return m_final_state.get ();
+   }
+ 
  private:
!   diagnostics::paths::event_id_t m_open_event;
!   std::unique_ptr<program_state> m_final_state;
  };
  
  class fd_access_mode_mismatch : public fd_param_diagnostic
*************** public:
*** 698,704 ****
    }
  
  private:
!   diagnostic_event_id_t m_first_close_event;
  };
  
  class fd_use_after_close : public fd_param_diagnostic
--- 702,708 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_first_close_event;
  };
  
  class fd_use_after_close : public fd_param_diagnostic
*************** public:
*** 777,783 ****
    }
  
  private:
!   diagnostic_event_id_t m_first_close_event;
  };
  
  class fd_use_without_check : public fd_param_diagnostic
--- 781,787 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_first_close_event;
  };
  
  class fd_use_without_check : public fd_param_diagnostic
*************** public:
*** 847,853 ****
    }
  
  private:
!   diagnostic_event_id_t m_first_open_event;
  };
  
  /* Concrete pending_diagnostic subclass for -Wanalyzer-fd-phase-mismatch.  */
--- 851,857 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_first_open_event;
  };
  
  /* Concrete pending_diagnostic subclass for -Wanalyzer-fd-phase-mismatch.  */
*************** fd_state_machine::valid_to_unchecked_sta
*** 1307,1313 ****
      return m_unchecked_read_only;
    else
      gcc_unreachable ();
!   return NULL;
  }
  
  void
--- 1311,1317 ----
      return m_unchecked_read_only;
    else
      gcc_unreachable ();
!   return nullptr;
  }
  
  void
*************** fd_state_machine::mark_as_valid_fd (regi
*** 1316,1393 ****
  				    const svalue *fd_sval,
  				    const extrinsic_state &ext_state) const
  {
!   smap->set_state (model, fd_sval, m_valid_read_write, NULL, ext_state);
  }
  
  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))
  	  {
! 	    on_open (sm_ctxt, node, stmt, call);
  	    return true;
  	  } //  "open"
  
! 	if (is_named_call_p (callee_fndecl, "creat", call, 2))
  	  {
! 	    on_creat (sm_ctxt, node, stmt, call);
  	    return true;
  	  } // "creat"
  
! 	if (is_named_call_p (callee_fndecl, "close", call, 1))
  	  {
! 	    on_close (sm_ctxt, node, stmt, call);
  	    return true;
  	  } //  "close"
  
! 	if (is_named_call_p (callee_fndecl, "write", call, 3))
  	  {
! 	    on_write (sm_ctxt, node, stmt, call, callee_fndecl);
  	    return true;
  	  } // "write"
  
! 	if (is_named_call_p (callee_fndecl, "read", call, 3))
  	  {
! 	    on_read (sm_ctxt, node, stmt, call, callee_fndecl);
  	    return true;
  	  } // "read"
  
! 	if (is_named_call_p (callee_fndecl, "dup", call, 1))
  	  {
! 	    check_for_dup (sm_ctxt, node, stmt, call, callee_fndecl, DUP_1);
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "dup2", call, 2))
  	  {
! 	    check_for_dup (sm_ctxt, node, stmt, call, callee_fndecl, DUP_2);
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "dup3", call, 3))
  	  {
! 	    check_for_dup (sm_ctxt, node, stmt, call, callee_fndecl, DUP_3);
  	    return true;
  	  }
  
  	{
  	  // Handle __attribute__((fd_arg))
  
! 	  check_for_fd_attrs (sm_ctxt, node, stmt, call, callee_fndecl,
  			      "fd_arg", DIRS_READ_WRITE);
  
  	  // Handle __attribute__((fd_arg_read))
  
! 	  check_for_fd_attrs (sm_ctxt, node, stmt, call, callee_fndecl,
  			      "fd_arg_read", DIRS_READ);
  
  	  // Handle __attribute__((fd_arg_write))
  
! 	  check_for_fd_attrs (sm_ctxt, node, stmt, call, callee_fndecl,
  			      "fd_arg_write", DIRS_WRITE);
  	}
        }
--- 1320,1397 ----
  				    const svalue *fd_sval,
  				    const extrinsic_state &ext_state) const
  {
!   smap->set_state (model, fd_sval, m_valid_read_write, nullptr, ext_state);
  }
  
  bool
! fd_state_machine::on_stmt (sm_context &sm_ctxt,
  			   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))
  	  {
! 	    on_open (sm_ctxt, *call);
  	    return true;
  	  } //  "open"
  
! 	if (is_named_call_p (callee_fndecl, "creat", *call, 2))
  	  {
! 	    on_creat (sm_ctxt, *call);
  	    return true;
  	  } // "creat"
  
! 	if (is_named_call_p (callee_fndecl, "close", *call, 1))
  	  {
! 	    on_close (sm_ctxt, *call);
  	    return true;
  	  } //  "close"
  
! 	if (is_named_call_p (callee_fndecl, "write", *call, 3))
  	  {
! 	    on_write (sm_ctxt, *call, callee_fndecl);
  	    return true;
  	  } // "write"
  
! 	if (is_named_call_p (callee_fndecl, "read", *call, 3))
  	  {
! 	    on_read (sm_ctxt, *call, callee_fndecl);
  	    return true;
  	  } // "read"
  
! 	if (is_named_call_p (callee_fndecl, "dup", *call, 1))
  	  {
! 	    check_for_dup (sm_ctxt, *call, callee_fndecl, DUP_1);
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "dup2", *call, 2))
  	  {
! 	    check_for_dup (sm_ctxt, *call, callee_fndecl, DUP_2);
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "dup3", *call, 3))
  	  {
! 	    check_for_dup (sm_ctxt, *call, callee_fndecl, DUP_3);
  	    return true;
  	  }
  
  	{
  	  // Handle __attribute__((fd_arg))
  
! 	  check_for_fd_attrs (sm_ctxt, *call, callee_fndecl,
  			      "fd_arg", DIRS_READ_WRITE);
  
  	  // Handle __attribute__((fd_arg_read))
  
! 	  check_for_fd_attrs (sm_ctxt, *call, callee_fndecl,
  			      "fd_arg_read", DIRS_READ);
  
  	  // Handle __attribute__((fd_arg_write))
  
! 	  check_for_fd_attrs (sm_ctxt, *call, callee_fndecl,
  			      "fd_arg_write", DIRS_WRITE);
  	}
        }
*************** fd_state_machine::on_stmt (sm_context &s
*** 1397,1404 ****
  
  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
  {
    /* Handle interesting fd attributes of the callee_fndecl,
--- 1401,1408 ----
  
  void
  fd_state_machine::check_for_fd_attrs (
!     sm_context &sm_ctxt,
!     const gcall &call, const tree callee_fndecl, const char *attr_name,
      access_directions fd_attr_access_dir) const
  {
    /* Handle interesting fd attributes of the callee_fndecl,
*************** fd_state_machine::check_for_fd_attrs (
*** 1431,1441 ****
    if (bitmap_empty_p (argmap))
      return;
  
!   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;
--- 1435,1445 ----
    if (bitmap_empty_p (argmap))
      return;
  
!   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 (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 (
*** 1448,1455 ****
  	  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));
--- 1452,1459 ----
  	  if (is_closed_fd_p (state))
  	    {
  
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<fd_use_after_close>
  			    (*this, diag_arg,
  			     fndecl, attr_name,
  			     arg_idx));
*************** fd_state_machine::check_for_fd_attrs (
*** 1460,1467 ****
  	    {
  	      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));
--- 1464,1471 ----
  	    {
  	      if (!is_constant_fd_p (state))
  		{
! 		  sm_ctxt.warn (arg,
! 				std::make_unique<fd_use_without_check>
  				(*this, diag_arg,
  				 fndecl, attr_name,
  				 arg_idx));
*************** fd_state_machine::check_for_fd_attrs (
*** 1477,1489 ****
  
  	      if (is_writeonly_fd_p (state))
  		{
! 		  sm_ctxt.warn (
! 		      node, stmt, arg,
! 		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
! 							    DIRS_WRITE,
! 							    fndecl,
! 							    attr_name,
! 							    arg_idx));
  		}
  
  	      break;
--- 1481,1493 ----
  
  	      if (is_writeonly_fd_p (state))
  		{
! 		  sm_ctxt.warn
! 		    (arg,
! 		     std::make_unique<fd_access_mode_mismatch> (*this, diag_arg,
! 								DIRS_WRITE,
! 								fndecl,
! 								attr_name,
! 								arg_idx));
  		}
  
  	      break;
*************** fd_state_machine::check_for_fd_attrs (
*** 1491,1503 ****
  
  	      if (is_readonly_fd_p (state))
  		{
! 		  sm_ctxt.warn (
! 		      node, stmt, arg,
! 		      make_unique<fd_access_mode_mismatch> (*this, diag_arg,
! 							    DIRS_READ,
! 							    fndecl,
! 							    attr_name,
! 							    arg_idx));
  		}
  
  	      break;
--- 1495,1507 ----
  
  	      if (is_readonly_fd_p (state))
  		{
! 		  sm_ctxt.warn
! 		    (arg,
! 		     std::make_unique<fd_access_mode_mismatch> (*this, diag_arg,
! 								DIRS_READ,
! 								fndecl,
! 								attr_name,
! 								arg_idx));
  		}
  
  	      break;
*************** fd_state_machine::check_for_fd_attrs (
*** 1508,1520 ****
  
  
  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);
    if (lhs)
      {
!       tree arg = gimple_call_arg (call, 1);
        enum access_mode mode = READ_WRITE;
        if (TREE_CODE (arg) == INTEGER_CST)
  	{
--- 1512,1523 ----
  
  
  void
! fd_state_machine::on_open (sm_context &sm_ctxt, const gcall &call) const
  {
!   tree lhs = gimple_call_lhs (&call);
    if (lhs)
      {
!       tree arg = gimple_call_arg (&call, 1);
        enum access_mode mode = READ_WRITE;
        if (TREE_CODE (arg) == INTEGER_CST)
  	{
*************** fd_state_machine::on_open (sm_context &s
*** 1524,1575 ****
        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)
  	|| state_arg_1 == m_start))
      {
!       check_for_open_fd (sm_ctxt, node, stmt, call, callee_fndecl,
! 			 DIRS_READ_WRITE);
        return;
      }
    switch (kind)
--- 1527,1575 ----
        switch (mode)
  	{
  	case READ_ONLY:
! 	  sm_ctxt.on_transition (lhs, m_start,
  				 m_unchecked_read_only);
  	  break;
  	case WRITE_ONLY:
! 	  sm_ctxt.on_transition (lhs, m_start,
  				 m_unchecked_write_only);
  	  break;
  	default:
! 	  sm_ctxt.on_transition (lhs, m_start,
  				 m_unchecked_read_write);
  	}
      }
    else
      {
!       sm_ctxt.warn (NULL_TREE,
! 		    std::make_unique<fd_leak> (*this, NULL_TREE, nullptr));
      }
  }
  
  void
! fd_state_machine::on_creat (sm_context &sm_ctxt, const gcall &call) const
  {
!   tree lhs = gimple_call_lhs (&call);
    if (lhs)
!     sm_ctxt.on_transition (lhs, m_start, m_unchecked_write_only);
    else
!     sm_ctxt.warn (NULL_TREE,
! 		  std::make_unique<fd_leak> (*this, NULL_TREE, nullptr));
  }
  
  void
! fd_state_machine::check_for_dup (sm_context &sm_ctxt, 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 (arg_1);
    if (state_arg_1 == m_stop)
      return;
    if (!(is_constant_fd_p (state_arg_1) || is_valid_fd_p (state_arg_1)
  	|| state_arg_1 == m_start))
      {
!       check_for_open_fd (sm_ctxt, call, callee_fndecl, DIRS_READ_WRITE);
        return;
      }
    switch (kind)
*************** fd_state_machine::check_for_dup (sm_cont
*** 1578,1594 ****
        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;
--- 1578,1594 ----
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt.set_next_state (lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt.set_next_state (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 (arg_2);
        tree diag_arg_2 = sm_ctxt.get_diagnostic_tree (arg_2);
        if (state_arg_2 == m_stop)
  	return;
*************** fd_state_machine::check_for_dup (sm_cont
*** 1596,1605 ****
        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));
  	  return;
  	}
        /* dup2 returns value of its second argument on success.But, the
--- 1596,1605 ----
        if (!(is_constant_fd_p (state_arg_2) || is_valid_fd_p (state_arg_2)
  	    || state_arg_2 == m_start))
  	{
! 	  sm_ctxt.warn
! 	    (arg_2,
! 	     std::make_unique<fd_use_without_check> (*this, diag_arg_2,
! 						     callee_fndecl));
  	  return;
  	}
        /* dup2 returns value of its second argument on success.But, the
*************** fd_state_machine::check_for_dup (sm_cont
*** 1608,1616 ****
        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));
  	}
  
--- 1608,1616 ----
        if (lhs)
  	{
  	  if (is_constant_fd_p (state_arg_1) || state_arg_1 == m_start)
! 	    sm_ctxt.set_next_state (lhs, m_unchecked_read_write);
  	  else
! 	    sm_ctxt.set_next_state (lhs,
  				    valid_to_unchecked_state (state_arg_1));
  	}
  
*************** fd_state_machine::check_for_dup (sm_cont
*** 1619,1685 ****
  }
  
  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
  {
!   check_for_open_fd (sm_ctxt, node, stmt, call, callee_fndecl, DIRS_WRITE);
  }
  
  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
--- 1619,1682 ----
  }
  
  void
! fd_state_machine::on_close (sm_context &sm_ctxt, const gcall &call) const
  {
!   tree arg = gimple_call_arg (&call, 0);
!   state_t state = sm_ctxt.get_state (arg);
    tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
  
!   sm_ctxt.on_transition (arg, m_start, m_closed);
!   sm_ctxt.on_transition (arg, m_unchecked_read_write, m_closed);
!   sm_ctxt.on_transition (arg, m_unchecked_read_only, m_closed);
!   sm_ctxt.on_transition (arg, m_unchecked_write_only, m_closed);
!   sm_ctxt.on_transition (arg, m_valid_read_write, m_closed);
!   sm_ctxt.on_transition (arg, m_valid_read_only, m_closed);
!   sm_ctxt.on_transition (arg, m_valid_write_only, m_closed);
!   sm_ctxt.on_transition (arg, m_constant_fd, m_closed);
!   sm_ctxt.on_transition (arg, m_new_datagram_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_new_stream_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_new_unknown_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_bound_datagram_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_bound_stream_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_bound_unknown_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_listening_stream_socket, m_closed);
!   sm_ctxt.on_transition (arg, m_connected_stream_socket, m_closed);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt.warn (arg,
! 		    std::make_unique<fd_double_close> (*this, diag_arg));
!       sm_ctxt.set_next_state (arg, m_stop);
      }
  }
  void
! fd_state_machine::on_read (sm_context &sm_ctxt, const gcall &call,
  			   const tree callee_fndecl) const
  {
!   check_for_open_fd (sm_ctxt,call, callee_fndecl, DIRS_READ);
  }
  void
! fd_state_machine::on_write (sm_context &sm_ctxt, const gcall &call,
  			    const tree callee_fndecl) const
  {
!   check_for_open_fd (sm_ctxt,call, callee_fndecl, DIRS_WRITE);
  }
  
  void
  fd_state_machine::check_for_open_fd (
!     sm_context &sm_ctxt,
!     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 (arg);
  
    if (is_closed_fd_p (state))
      {
!       sm_ctxt.warn (arg,
! 		    std::make_unique<fd_use_after_close> (*this, diag_arg,
! 							  callee_fndecl));
      }
  
    else
*************** fd_state_machine::check_for_open_fd (
*** 1689,1699 ****
  	  || 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,
! 					   state,
! 					   EXPECTED_PHASE_CAN_TRANSFER));
        else if (!(is_valid_fd_p (state)
  		 || state == m_new_datagram_socket
  		 || state == m_bound_unknown_socket
--- 1686,1696 ----
  	  || state == m_listening_stream_socket)
  	/* Complain about fncall on socket in wrong phase.  */
  	sm_ctxt.warn
! 	  (arg,
! 	   std::make_unique<fd_phase_mismatch> (*this, diag_arg,
! 						callee_fndecl,
! 						state,
! 						EXPECTED_PHASE_CAN_TRANSFER));
        else if (!(is_valid_fd_p (state)
  		 || state == m_new_datagram_socket
  		 || state == m_bound_unknown_socket
*************** fd_state_machine::check_for_open_fd (
*** 1702,1711 ****
  		 || 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));
  	}
        switch (callee_fndecl_dir)
  	{
--- 1699,1708 ----
  		 || state == m_stop))
  	{
  	  if (!is_constant_fd_p (state))
! 	    sm_ctxt.warn
! 	      (arg,
! 	       std::make_unique<fd_use_without_check> (*this, diag_arg,
! 						       callee_fndecl));
  	}
        switch (callee_fndecl_dir)
  	{
*************** fd_state_machine::check_for_open_fd (
*** 1715,1723 ****
  	  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;
--- 1712,1720 ----
  	  if (is_writeonly_fd_p (state))
  	    {
  	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<fd_access_mode_mismatch>
! 			      (*this, diag_arg, DIRS_WRITE, callee_fndecl));
  	    }
  
  	  break;
*************** fd_state_machine::check_for_open_fd (
*** 1726,1734 ****
  	  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));
  	    }
  	  break;
  	}
--- 1723,1731 ----
  	  if (is_readonly_fd_p (state))
  	    {
  	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<fd_access_mode_mismatch>
! 			      (*this, diag_arg, DIRS_READ, callee_fndecl));
  	    }
  	  break;
  	}
*************** bool
*** 1773,1795 ****
  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 ();
!   engine *eng = ext_state.get_engine ();
!   const supergraph *sg = eng->get_supergraph ();
!   const supernode *node = sg->get_supernode_for_stmt (stmt);
    region_model *model = cd.get_model ();
  
    if (successful)
      {
!       if (gimple_call_lhs (stmt))
  	{
  	  conjured_purge p (model, cd.get_ctxt ());
  	  region_model_manager *mgr = model->get_manager ();
  	  const svalue *new_fd
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  stmt,
  						  cd.get_lhs_region (),
  						  p);
  	  if (!add_constraint_ge_zero (model, new_fd, cd.get_ctxt ()))
--- 1770,1789 ----
  fd_state_machine::on_socket (const call_details &cd,
  			     bool successful,
  			     sm_context &sm_ctxt,
! 			     const extrinsic_state &) const
  {
!   const gcall &call = cd.get_call_stmt ();
    region_model *model = cd.get_model ();
  
    if (successful)
      {
!       if (gimple_call_lhs (&call))
  	{
  	  conjured_purge p (model, cd.get_ctxt ());
  	  region_model_manager *mgr = model->get_manager ();
  	  const svalue *new_fd
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  &call,
  						  cd.get_lhs_region (),
  						  p);
  	  if (!add_constraint_ge_zero (model, new_fd, cd.get_ctxt ()))
*************** fd_state_machine::on_socket (const call_
*** 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
      {
--- 1792,1803 ----
  	  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 (new_fd, m_start, new_state);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt.warn (NULL_TREE,
! 		      std::make_unique<fd_leak> (*this, NULL_TREE, nullptr));
      }
    else
      {
*************** fd_state_machine::check_for_socket_fd (c
*** 1829,1847 ****
  				       bool successful,
  				       sm_context &sm_ctxt,
  				       const svalue *fd_sval,
- 				       const supernode *node,
  				       state_t old_state,
  				       bool *complained) const
  {
-   const gcall *stmt = cd.get_call_stmt ();
- 
    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 ()));
        if (complained)
  	*complained = true;
        if (successful)
--- 1823,1838 ----
  				       bool successful,
  				       sm_context &sm_ctxt,
  				       const svalue *fd_sval,
  				       state_t old_state,
  				       bool *complained) const
  {
    if (is_closed_fd_p (old_state))
      {
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        sm_ctxt.warn
! 	(fd_sval,
! 	 std::make_unique<fd_use_after_close> (*this, diag_arg,
! 					       cd.get_fndecl_for_call ()));
        if (complained)
  	*complained = true;
        if (successful)
*************** fd_state_machine::check_for_socket_fd (c
*** 1852,1862 ****
        /* 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 (),
! 					old_state,
! 					EXPECTED_TYPE_SOCKET));
        if (complained)
  	*complained = true;
        if (successful)
--- 1843,1853 ----
        /* Complain about non-socket.  */
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        sm_ctxt.warn
! 	(fd_sval,
! 	 std::make_unique<fd_type_mismatch> (*this, diag_arg,
! 					     cd.get_fndecl_for_call (),
! 					     old_state,
! 					     EXPECTED_TYPE_SOCKET));
        if (complained)
  	*complained = true;
        if (successful)
*************** fd_state_machine::check_for_socket_fd (c
*** 1866,1874 ****
      {
        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 ()));
        if (complained)
  	*complained = true;
        if (successful)
--- 1857,1865 ----
      {
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        sm_ctxt.warn
! 	(fd_sval,
! 	 std::make_unique<fd_use_without_check> (*this, diag_arg,
! 						 cd.get_fndecl_for_call ()));
        if (complained)
  	*complained = true;
        if (successful)
*************** fd_state_machine::check_for_new_socket_f
*** 1892,1898 ****
  					   bool successful,
  					   sm_context &sm_ctxt,
  					   const svalue *fd_sval,
- 					   const supernode *node,
  					   state_t old_state,
  					   enum expected_phase expected_phase)
    const
--- 1883,1888 ----
*************** fd_state_machine::check_for_new_socket_f
*** 1916,1922 ****
    model->get_store_value (sized_address_reg, cd.get_ctxt ());
  
    if (!check_for_socket_fd (cd, successful, sm_ctxt,
! 			    fd_sval, node, old_state, &complained))
      return false;
    else if (!complained
  	   && !(old_state == m_new_stream_socket
--- 1906,1912 ----
    model->get_store_value (sized_address_reg, cd.get_ctxt ());
  
    if (!check_for_socket_fd (cd, successful, sm_ctxt,
! 			    fd_sval, old_state, &complained))
      return false;
    else if (!complained
  	   && !(old_state == m_new_stream_socket
*************** fd_state_machine::check_for_new_socket_f
*** 1929,1939 ****
        /* 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 (),
! 					 old_state,
! 					 expected_phase));
        if (successful)
  	return false;
      }
--- 1919,1929 ----
        /* Complain about "bind" or "connect" in wrong phase.  */
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        sm_ctxt.warn
! 	(fd_sval,
! 	 std::make_unique<fd_phase_mismatch> (*this, diag_arg,
! 					      cd.get_fndecl_for_call (),
! 					      old_state,
! 					      expected_phase));
        if (successful)
  	return false;
      }
*************** fd_state_machine::check_for_new_socket_f
*** 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.  */
--- 1931,1937 ----
      {
        /* If we were in the start state, assume we had a new socket.  */
        if (old_state == m_start)
! 	sm_ctxt.set_next_state (fd_sval, m_new_unknown_socket);
      }
  
    /* Passing NULL as the address will lead to failure.  */
*************** bool
*** 1961,1984 ****
  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 ();
-   engine *eng = ext_state.get_engine ();
-   const supergraph *sg = eng->get_supergraph ();
-   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,
  				EXPECTED_PHASE_CAN_BIND))
      return false;
  
    if (successful)
      {
!       state_t next_state = NULL;
        if (old_state == m_new_stream_socket)
  	next_state = m_bound_stream_socket;
        else if (old_state == m_new_datagram_socket)
--- 1950,1969 ----
  fd_state_machine::on_bind (const call_details &cd,
  			   bool successful,
  			   sm_context &sm_ctxt,
! 			   const extrinsic_state &) const
  {
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
! 				fd_sval, old_state,
  				EXPECTED_PHASE_CAN_BIND))
      return false;
  
    if (successful)
      {
!       state_t next_state = nullptr;
        if (old_state == m_new_stream_socket)
  	next_state = m_bound_stream_socket;
        else if (old_state == m_new_datagram_socket)
*************** fd_state_machine::on_bind (const call_de
*** 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
--- 1977,1983 ----
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt.set_next_state (fd_sval, next_state);
        model->update_for_zero_return (cd, true);
      }
    else
*************** bool
*** 2013,2030 ****
  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 ();
-   engine *eng = ext_state.get_engine ();
-   const supergraph *sg = eng->get_supergraph ();
-   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))
      return false;
    if (!(old_state == m_start
  	|| old_state == m_constant_fd
--- 1998,2011 ----
  fd_state_machine::on_listen (const call_details &cd,
  			     bool successful,
  			     sm_context &sm_ctxt,
! 			     const extrinsic_state &) const
  {
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (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, old_state))
      return false;
    if (!(old_state == m_start
  	|| old_state == m_constant_fd
*************** fd_state_machine::on_listen (const call_
*** 2039,2056 ****
        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 (),
! 					  old_state,
! 					  EXPECTED_TYPE_STREAM_SOCKET));
        if (successful)
  	return false;
      }
--- 2020,2037 ----
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
  	sm_ctxt.warn
! 	  (fd_sval,
! 	   std::make_unique<fd_phase_mismatch> (*this, diag_arg,
! 						cd.get_fndecl_for_call (),
! 						old_state,
! 						EXPECTED_PHASE_CAN_LISTEN));
        else
  	sm_ctxt.warn
! 	  (fd_sval,
! 	   std::make_unique<fd_type_mismatch> (*this, diag_arg,
! 					       cd.get_fndecl_for_call (),
! 					       old_state,
! 					       EXPECTED_TYPE_STREAM_SOCKET));
        if (successful)
  	return false;
      }
*************** fd_state_machine::on_listen (const call_
*** 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
      {
--- 2039,2045 ----
    if (successful)
      {
        model->update_for_zero_return (cd, true);
!       sm_ctxt.set_next_state (fd_sval, m_listening_stream_socket);
      }
    else
      {
*************** fd_state_machine::on_listen (const call_
*** 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;
--- 2047,2053 ----
        model->update_for_int_cst_return (cd, -1, true);
        model->set_errno (cd);
        if (old_state == m_start)
! 	sm_ctxt.set_next_state (fd_sval, m_bound_stream_socket);
      }
  
    return true;
*************** bool
*** 2082,2098 ****
  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 ();
!   engine *eng = ext_state.get_engine ();
!   const supergraph *sg = eng->get_supergraph ();
!   const supernode *node = sg->get_supernode_for_stmt (stmt);
    const svalue *fd_sval = cd.get_arg_svalue (0);
    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 ())
      {
--- 2061,2074 ----
  fd_state_machine::on_accept (const call_details &cd,
  			     bool successful,
  			     sm_context &sm_ctxt,
! 			     const extrinsic_state &) const
  {
!   const gcall &call = cd.get_call_stmt ();
    const svalue *fd_sval = cd.get_arg_svalue (0);
    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 (fd_sval);
  
    if (!address_sval->all_zeroes_p ())
      {
*************** fd_state_machine::on_accept (const call_
*** 2127,2140 ****
  				     old_len_sval);
  	  const svalue *new_addr_sval
  	    = mgr->get_or_create_conjured_svalue (NULL_TREE,
! 						  stmt,
  						  old_sized_address_reg,
  						  p);
  	  model->set_value (old_sized_address_reg, new_addr_sval,
  			    cd.get_ctxt ());
  	  const svalue *new_addr_len
  	    = mgr->get_or_create_conjured_svalue (NULL_TREE,
! 						  stmt,
  						  len_reg,
  						  p);
  	  model->set_value (len_reg, new_addr_len, cd.get_ctxt ());
--- 2103,2116 ----
  				     old_len_sval);
  	  const svalue *new_addr_sval
  	    = mgr->get_or_create_conjured_svalue (NULL_TREE,
! 						  &call,
  						  old_sized_address_reg,
  						  p);
  	  model->set_value (old_sized_address_reg, new_addr_sval,
  			    cd.get_ctxt ());
  	  const svalue *new_addr_len
  	    = mgr->get_or_create_conjured_svalue (NULL_TREE,
! 						  &call,
  						  len_reg,
  						  p);
  	  model->set_value (len_reg, new_addr_len, cd.get_ctxt ());
*************** fd_state_machine::on_accept (const call_
*** 2142,2155 ****
      }
  
    /* We expect a stream socket in the "listening" state.  */
!   if (!check_for_socket_fd (cd, successful, sm_ctxt, fd_sval, node, old_state))
      return false;
  
    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.  */
--- 2118,2130 ----
      }
  
    /* We expect a stream socket in the "listening" state.  */
!   if (!check_for_socket_fd (cd, successful, sm_ctxt, fd_sval, old_state))
      return false;
  
    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 (fd_sval, m_listening_stream_socket);
    else if (old_state == m_stop)
      {
        /* No further complaints.  */
*************** fd_state_machine::on_accept (const call_
*** 2160,2177 ****
        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 (),
! 					  old_state,
! 					  EXPECTED_TYPE_STREAM_SOCKET));
        if (successful)
  	return false;
      }
--- 2135,2152 ----
        tree diag_arg = sm_ctxt.get_diagnostic_tree (fd_sval);
        if (is_stream_socket_fd_p (old_state))
  	sm_ctxt.warn
! 	  (fd_sval,
! 	   std::make_unique<fd_phase_mismatch> (*this, diag_arg,
! 						cd.get_fndecl_for_call (),
! 						old_state,
! 						EXPECTED_PHASE_CAN_ACCEPT));
        else
  	sm_ctxt.warn
! 	  (fd_sval,
! 	   std::make_unique<fd_type_mismatch> (*this, diag_arg,
! 					       cd.get_fndecl_for_call (),
! 					       old_state,
! 					       EXPECTED_TYPE_STREAM_SOCKET));
        if (successful)
  	return false;
      }
*************** fd_state_machine::on_accept (const call_
*** 2179,2202 ****
    if (successful)
      {
        /* Return new conjured FD in "connected" state.  */
!       if (gimple_call_lhs (stmt))
  	{
  	  conjured_purge p (model, cd.get_ctxt ());
  	  region_model_manager *mgr = model->get_manager ();
  	  const svalue *new_fd
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  stmt,
  						  cd.get_lhs_region (),
  						  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
      {
--- 2154,2176 ----
    if (successful)
      {
        /* Return new conjured FD in "connected" state.  */
!       if (gimple_call_lhs (&call))
  	{
  	  conjured_purge p (model, cd.get_ctxt ());
  	  region_model_manager *mgr = model->get_manager ();
  	  const svalue *new_fd
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  &call,
  						  cd.get_lhs_region (),
  						  p);
  	  if (!add_constraint_ge_zero (model, new_fd, cd.get_ctxt ()))
  	    return false;
! 	  sm_ctxt.on_transition (new_fd, m_start, m_connected_stream_socket);
  	  model->set_value (cd.get_lhs_region (), new_fd, cd.get_ctxt ());
  	}
        else
! 	sm_ctxt.warn (NULL_TREE,
! 		      std::make_unique<fd_leak> (*this, NULL_TREE, nullptr));
      }
    else
      {
*************** bool
*** 2216,2240 ****
  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 ();
-   engine *eng = ext_state.get_engine ();
-   const supergraph *sg = eng->get_supergraph ();
-   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,
  				EXPECTED_PHASE_CAN_CONNECT))
      return false;
  
    if (successful)
      {
        model->update_for_zero_return (cd, true);
!       state_t next_state = NULL;
        if (old_state == m_new_stream_socket)
  	next_state = m_connected_stream_socket;
        else if (old_state == m_new_datagram_socket)
--- 2190,2210 ----
  fd_state_machine::on_connect (const call_details &cd,
  			      bool successful,
  			      sm_context &sm_ctxt,
! 			      const extrinsic_state &) const
  {
    const svalue *fd_sval = cd.get_arg_svalue (0);
    region_model *model = cd.get_model ();
!   state_t old_state = sm_ctxt.get_state (fd_sval);
  
    if (!check_for_new_socket_fd (cd, successful, sm_ctxt,
! 				fd_sval, old_state,
  				EXPECTED_PHASE_CAN_CONNECT))
      return false;
  
    if (successful)
      {
        model->update_for_zero_return (cd, true);
!       state_t next_state = nullptr;
        if (old_state == m_new_stream_socket)
  	next_state = m_connected_stream_socket;
        else if (old_state == m_new_datagram_socket)
*************** fd_state_machine::on_connect (const call
*** 2250,2256 ****
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt.set_next_state (cd.get_call_stmt (), fd_sval, next_state);
      }
    else
      {
--- 2220,2226 ----
  	next_state = m_stop;
        else
  	gcc_unreachable ();
!       sm_ctxt.set_next_state (fd_sval, next_state);
      }
    else
      {
*************** fd_state_machine::on_connect (const call
*** 2266,2274 ****
  }
  
  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
  {
    if (tree cst = rhs->maybe_get_constant ())
      {
--- 2236,2245 ----
  }
  
  void
! fd_state_machine::on_condition (sm_context &sm_ctxt,
! 				const svalue *lhs,
! 				enum tree_code op,
! 				const svalue *rhs) const
  {
    if (tree cst = rhs->maybe_get_constant ())
      {
*************** fd_state_machine::on_condition (sm_conte
*** 2278,2288 ****
  	  if (val == -1)
  	    {
  	      if (op == NE_EXPR)
! 		make_valid_transitions_on_condition (sm_ctxt, node, stmt, lhs);
  
  	      else if (op == EQ_EXPR)
! 		make_invalid_transitions_on_condition (sm_ctxt, node, stmt,
! 						       lhs);
  	    }
  	}
      }
--- 2249,2258 ----
  	  if (val == -1)
  	    {
  	      if (op == NE_EXPR)
! 		make_valid_transitions_on_condition (sm_ctxt, lhs);
  
  	      else if (op == EQ_EXPR)
! 		make_invalid_transitions_on_condition (sm_ctxt, lhs);
  	    }
  	}
      }
*************** fd_state_machine::on_condition (sm_conte
*** 2290,2323 ****
    if (rhs->all_zeroes_p ())
      {
        if (op == GE_EXPR)
! 	make_valid_transitions_on_condition (sm_ctxt, node, stmt, lhs);
        else if (op == LT_EXPR)
! 	make_invalid_transitions_on_condition (sm_ctxt, node, stmt, lhs);
      }
  }
  
  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
--- 2260,2291 ----
    if (rhs->all_zeroes_p ())
      {
        if (op == GE_EXPR)
! 	make_valid_transitions_on_condition (sm_ctxt, lhs);
        else if (op == LT_EXPR)
! 	make_invalid_transitions_on_condition (sm_ctxt, lhs);
      }
  }
  
  void
  fd_state_machine::make_valid_transitions_on_condition (sm_context &sm_ctxt,
  						       const svalue *lhs) const
  {
!   sm_ctxt.on_transition (lhs, m_unchecked_read_write,
  			 m_valid_read_write);
!   sm_ctxt.on_transition (lhs, m_unchecked_read_only,
  			 m_valid_read_only);
!   sm_ctxt.on_transition (lhs, m_unchecked_write_only,
  			 m_valid_write_only);
  }
  
  void
! fd_state_machine::
! make_invalid_transitions_on_condition (sm_context &sm_ctxt,
! 				       const svalue *lhs) const
  {
!   sm_ctxt.on_transition (lhs, m_unchecked_read_write, m_invalid);
!   sm_ctxt.on_transition (lhs, m_unchecked_read_only, m_invalid);
!   sm_ctxt.on_transition (lhs, m_unchecked_write_only, m_invalid);
  }
  
  bool
*************** fd_state_machine::can_purge_p (state_t s
*** 2332,2347 ****
  }
  
  std::unique_ptr<pending_diagnostic>
! fd_state_machine::on_leak (tree var) const
  {
!   return make_unique<fd_leak> (*this, var);
  }
  } // namespace
  
! state_machine *
  make_fd_state_machine (logger *logger)
  {
!   return new fd_state_machine (logger);
  }
  
  static bool
--- 2300,2317 ----
  }
  
  std::unique_ptr<pending_diagnostic>
! fd_state_machine::on_leak (tree var,
! 			   const program_state *,
! 			   const program_state *new_state) const
  {
!   return std::make_unique<fd_leak> (*this, var, new_state);
  }
  } // namespace
  
! std::unique_ptr<state_machine>
  make_fd_state_machine (logger *logger)
  {
!   return std::make_unique<fd_state_machine> (logger);
  }
  
  static bool
*************** region_model::mark_as_valid_fd (const sv
*** 2372,2378 ****
  {
    sm_state_map *smap;
    const fd_state_machine *fd_sm;
!   if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, NULL))
      return;
    const extrinsic_state *ext_state = ctxt->get_ext_state ();
    if (!ext_state)
--- 2342,2348 ----
  {
    sm_state_map *smap;
    const fd_state_machine *fd_sm;
!   if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, nullptr))
      return;
    const extrinsic_state *ext_state = ctxt->get_ext_state ();
    if (!ext_state)
*************** public:
*** 2401,2407 ****
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
--- 2371,2377 ----
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
*************** public:
*** 2426,2433 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_socket> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_socket> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2396,2405 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_socket> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_socket> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** public:
*** 2454,2460 ****
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
--- 2426,2432 ----
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
*************** public:
*** 2478,2485 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_bind> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_bind> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2450,2459 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_bind> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_bind> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** class kf_listen : public known_function
*** 2505,2511 ****
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
--- 2479,2485 ----
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
*************** class kf_listen : public known_function
*** 2530,2537 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_listen> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_listen> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2504,2513 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_listen> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_listen> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** class kf_accept : public known_function
*** 2557,2563 ****
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
--- 2533,2539 ----
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
*************** class kf_accept : public known_function
*** 2584,2591 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_accept> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_accept> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2560,2569 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_accept> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_accept> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** public:
*** 2612,2618 ****
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
--- 2590,2596 ----
        sm_state_map *smap;
        const fd_state_machine *fd_sm;
        std::unique_ptr<sm_context> sm_ctxt;
!       if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	{
  	  cd.set_any_lhs_with_defaults ();
  	  return true;
*************** public:
*** 2638,2645 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_connect> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_connect> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2616,2625 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_connect> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_connect> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** class kf_isatty : public known_function
*** 2688,2702 ****
  	  sm_state_map *smap;
  	  const fd_state_machine *fd_sm;
  	  std::unique_ptr<sm_context> sm_ctxt;
! 	  if (!get_fd_state (ctxt, &smap, &fd_sm, NULL, &sm_ctxt))
  	    return true;
  	  const extrinsic_state *ext_state = ctxt->get_ext_state ();
  	  if (!ext_state)
  	    return true;
  
  	  const svalue *fd_sval = cd.get_arg_svalue (0);
! 	  state_machine::state_t old_state
! 	    = sm_ctxt->get_state (cd.get_call_stmt (), fd_sval);
  
  	  if (fd_sm->is_closed_fd_p (old_state)
  	      || old_state == fd_sm->m_invalid)
--- 2668,2681 ----
  	  sm_state_map *smap;
  	  const fd_state_machine *fd_sm;
  	  std::unique_ptr<sm_context> sm_ctxt;
! 	  if (!get_fd_state (ctxt, &smap, &fd_sm, nullptr, &sm_ctxt))
  	    return true;
  	  const extrinsic_state *ext_state = ctxt->get_ext_state ();
  	  if (!ext_state)
  	    return true;
  
  	  const svalue *fd_sval = cd.get_arg_svalue (0);
! 	  state_machine::state_t old_state = sm_ctxt->get_state (fd_sval);
  
  	  if (fd_sm->is_closed_fd_p (old_state)
  	      || old_state == fd_sm->m_invalid)
*************** public:
*** 2716,2723 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_isatty> (cd, false));
! 	cd.get_ctxt ()->bifurcate (make_unique<outcome_of_isatty> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2695,2704 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_isatty> (cd, false));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<outcome_of_isatty> (cd, true));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** class kf_pipe : public known_function
*** 2773,2779 ****
  	  conjured_purge p (model, cd.get_ctxt ());
  	  const svalue *fd_sval
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  cd.get_call_stmt (),
  						  element_reg,
  						  p);
  	  model->set_value (element_reg, fd_sval, cd.get_ctxt ());
--- 2754,2760 ----
  	  conjured_purge p (model, cd.get_ctxt ());
  	  const svalue *fd_sval
  	    = mgr->get_or_create_conjured_svalue (integer_type_node,
! 						  &cd.get_call_stmt (),
  						  element_reg,
  						  p);
  	  model->set_value (element_reg, fd_sval, cd.get_ctxt ());
*************** public:
*** 2799,2806 ****
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate (make_unique<failure> (cd));
! 	cd.get_ctxt ()->bifurcate (make_unique<success> (cd));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
--- 2780,2789 ----
    {
      if (cd.get_ctxt ())
        {
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<failure> (cd));
! 	cd.get_ctxt ()->bifurcate
! 	  (std::make_unique<success> (cd));
  	cd.get_ctxt ()->terminate_path ();
        }
    }
*************** public:
*** 2848,2862 ****
  void
  register_known_fd_functions (known_function_manager &kfm)
  {
!   kfm.add ("accept", make_unique<kf_accept> ());
!   kfm.add ("bind", make_unique<kf_bind> ());
!   kfm.add ("connect", make_unique<kf_connect> ());
!   kfm.add ("isatty", make_unique<kf_isatty> ());
!   kfm.add ("listen", make_unique<kf_listen> ());
!   kfm.add ("pipe", make_unique<kf_pipe> (1));
!   kfm.add ("pipe2", make_unique<kf_pipe> (2));
!   kfm.add ("read", make_unique<kf_read> ());
!   kfm.add ("socket", make_unique<kf_socket> ());
  }
  
  } // namespace ana
--- 2831,2845 ----
  void
  register_known_fd_functions (known_function_manager &kfm)
  {
!   kfm.add ("accept", std::make_unique<kf_accept> ());
!   kfm.add ("bind", std::make_unique<kf_bind> ());
!   kfm.add ("connect", std::make_unique<kf_connect> ());
!   kfm.add ("isatty", std::make_unique<kf_isatty> ());
!   kfm.add ("listen", std::make_unique<kf_listen> ());
!   kfm.add ("pipe", std::make_unique<kf_pipe> (1));
!   kfm.add ("pipe2", std::make_unique<kf_pipe> (2));
!   kfm.add ("read", std::make_unique<kf_read> ());
!   kfm.add ("socket", std::make_unique<kf_socket> ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-fd.dot gcc-16.1.0-RC-20260423/gcc/analyzer/sm-fd.dot
*** gcc-15.2.0/gcc/analyzer/sm-fd.dot	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-fd.dot	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* An overview of the state machine from sm-fd.cc.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-file.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-file.cc
*** gcc-15.2.0/gcc/analyzer/sm-file.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-file.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A state machine for detecting misuses of <stdio.h>'s FILE * API.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,45 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #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"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
- #include "selftest.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
--- 18,36 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
! #include "selftest.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
+ #include "analyzer/program-state.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
*************** public:
*** 71,88 ****
    }
  
    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;
  
    bool can_purge_p (state_t s) const final override;
!   std::unique_ptr<pending_diagnostic> on_leak (tree var) const final override;
  
    /* State for a FILE * returned from fopen that hasn't been checked for
       NULL.
--- 62,80 ----
    }
  
    bool on_stmt (sm_context &sm_ctxt,
  		const gimple *stmt) const final override;
  
    void on_condition (sm_context &sm_ctxt,
  		     const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
  
    bool can_purge_p (state_t s) const final override;
! 
!   std::unique_ptr<pending_diagnostic>
!   on_leak (tree var,
! 	   const program_state *old_state,
! 	   const program_state *new_state) const final override;
  
    /* State for a FILE * returned from fopen that hasn't been checked for
       NULL.
*************** public:
*** 160,177 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& change.m_new_state == m_sm.m_unchecked)
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 					diagnostic_event::NOUN_resource);
      if (change.m_new_state == m_sm.m_closed)
!       return diagnostic_event::meaning (diagnostic_event::VERB_release,
! 					diagnostic_event::NOUN_resource);
!     return diagnostic_event::meaning ();
    }
  
  protected:
--- 152,171 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
+     using event = diagnostics::paths::event;
+ 
      if (change.m_old_state == m_sm.get_start_state ()
  	&& change.m_new_state == m_sm.m_unchecked)
!       return event::meaning (event::verb::acquire,
! 			     event::noun::resource);
      if (change.m_new_state == m_sm.m_closed)
!       return event::meaning (event::verb::release,
! 			     event::noun::resource);
!     return event::meaning ();
    }
  
  protected:
*************** public:
*** 230,244 ****
    }
  
  private:
!   diagnostic_event_id_t m_first_fclose_event;
  };
  
  class file_leak : public file_diagnostic
  {
  public:
!   file_leak (const fileptr_state_machine &sm, tree arg)
!     : file_diagnostic (sm, arg)
!   {}
  
    const char *get_kind () const final override { return "file_leak"; }
  
--- 224,243 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_first_fclose_event;
  };
  
  class file_leak : public file_diagnostic
  {
  public:
!   file_leak (const fileptr_state_machine &sm, tree arg,
! 	     const program_state *final_state)
!   : file_diagnostic (sm, arg),
!     m_final_state ()
!   {
!     if (final_state)
!       m_final_state = std::make_unique<program_state> (*final_state);
!   }
  
    const char *get_kind () const final override { return "file_leak"; }
  
*************** public:
*** 296,303 ****
      return true;
    }
  
  private:
!   diagnostic_event_id_t m_fopen_event;
  };
  
  /* fileptr_state_machine's ctor.  */
--- 295,309 ----
      return true;
    }
  
+   const program_state *
+   get_final_state () const final override
+   {
+     return m_final_state.get ();
+   }
+ 
  private:
!   diagnostics::paths::event_id_t m_fopen_event;
!   std::unique_ptr<program_state> m_final_state;
  };
  
  /* fileptr_state_machine's ctor.  */
*************** is_file_using_fn_p (tree fndecl)
*** 399,415 ****
  
  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.  */
--- 405,420 ----
  
  bool
  fileptr_state_machine::on_stmt (sm_context &sm_ctxt,
  				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 (lhs, m_start, m_unchecked);
  	    else
  	      {
  		/* TODO: report leak.  */
*************** fileptr_state_machine::on_stmt (sm_conte
*** 417,440 ****
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "fclose", call, 1))
  	  {
  	    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;
  	  }
--- 422,446 ----
  	    return true;
  	  }
  
! 	if (is_named_call_p (callee_fndecl, "fclose", *call, 1))
  	  {
  	    tree arg = gimple_call_arg (call, 0);
  
! 	    sm_ctxt.on_transition (arg, m_start, m_closed);
  
  	    // TODO: is it safe to call fclose (NULL) ?
! 	    sm_ctxt.on_transition (arg, m_unchecked, m_closed);
! 	    sm_ctxt.on_transition (arg, m_null, m_closed);
  
! 	    sm_ctxt.on_transition (arg, m_nonnull, m_closed);
  
! 	    if (sm_ctxt.get_state (arg) == m_closed)
  	      {
  		tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		sm_ctxt.warn (arg,
! 			      std::make_unique<double_fclose> (*this,
! 							       diag_arg));
! 		sm_ctxt.set_next_state (arg, m_stop);
  	      }
  	    return true;
  	  }
*************** fileptr_state_machine::on_stmt (sm_conte
*** 456,463 ****
  
  void
  fileptr_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
--- 462,467 ----
*************** fileptr_state_machine::on_condition (sm_
*** 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);
      }
  }
  
--- 479,490 ----
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       sm_ctxt.on_transition (lhs, m_unchecked, m_nonnull);
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       sm_ctxt.on_transition (lhs, m_unchecked, m_null);
      }
  }
  
*************** fileptr_state_machine::can_purge_p (stat
*** 501,519 ****
     state 'unchecked' and 'nonnull'.  */
  
  std::unique_ptr<pending_diagnostic>
! fileptr_state_machine::on_leak (tree var) const
  {
!   return make_unique<file_leak> (*this, var);
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! state_machine *
  make_fileptr_state_machine (logger *logger)
  {
!   return new fileptr_state_machine (logger);
  }
  
  /* Handler for various stdio-related builtins that merely have external
--- 503,523 ----
     state 'unchecked' and 'nonnull'.  */
  
  std::unique_ptr<pending_diagnostic>
! fileptr_state_machine::on_leak (tree var,
! 				const program_state *,
! 				const program_state *new_state) const
  {
!   return std::make_unique<file_leak> (*this, var, new_state);
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_fileptr_state_machine (logger *logger)
  {
!   return std::make_unique<fileptr_state_machine> (logger);
  }
  
  /* Handler for various stdio-related builtins that merely have external
*************** public:
*** 655,694 ****
  void
  register_known_file_functions (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_FPRINTF, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPRINTF_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTC, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTC_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTS, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTS_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FWRITE, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FWRITE_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PRINTF, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PRINTF_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTC, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTCHAR, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTCHAR_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTC_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTS, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTS_UNLOCKED, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_VFPRINTF, make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_VPRINTF, make_unique<kf_stdio_output_fn> ());
  
!   kfm.add ("ferror", make_unique<kf_ferror> ());
!   kfm.add ("fgets", make_unique<kf_fgets> ());
!   kfm.add ("fgets_unlocked", make_unique<kf_fgets> ()); // non-standard
!   kfm.add ("fileno", make_unique<kf_fileno> ());
!   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
--- 659,703 ----
  void
  register_known_file_functions (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_FPRINTF, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPRINTF_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTC, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTC_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTS, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FPUTS_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FWRITE, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_FWRITE_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PRINTF, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PRINTF_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTC, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTCHAR, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTCHAR_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTC_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTS, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_PUTS_UNLOCKED, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_VFPRINTF, std::make_unique<kf_stdio_output_fn> ());
!   kfm.add (BUILT_IN_VPRINTF, std::make_unique<kf_stdio_output_fn> ());
  
!   kfm.add ("ferror", std::make_unique<kf_ferror> ());
!   kfm.add ("ferror_unlocked", std::make_unique<kf_ferror> ());
!   kfm.add ("fgets", std::make_unique<kf_fgets> ());
!   kfm.add ("fgets_unlocked", std::make_unique<kf_fgets> ()); // non-standard
!   kfm.add ("fileno", std::make_unique<kf_fileno> ());
!   kfm.add ("fileno_unlocked", std::make_unique<kf_fileno> ());
!   kfm.add ("fread", std::make_unique<kf_fread> ());
!   kfm.add ("fread_unlocked", std::make_unique<kf_fread> ());
!   kfm.add ("getc", std::make_unique<kf_getc> ());
!   kfm.add ("getc_unlocked", std::make_unique<kf_getc> ());
!   kfm.add ("getchar", std::make_unique<kf_getchar> ());
!   kfm.add ("getchar_unlocked", std::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", std::make_unique<kf_ferror> ());
!   kfm.add_std_ns ("fgets", std::make_unique<kf_fgets> ());
!   kfm.add_std_ns ("fread", std::make_unique<kf_fread> ());
!   kfm.add_std_ns ("getc", std::make_unique<kf_getc> ());
!   kfm.add_std_ns ("getchar", std::make_unique<kf_getchar> ());
  }
  
  #if CHECKING_P
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-file.dot gcc-16.1.0-RC-20260423/gcc/analyzer/sm-file.dot
*** gcc-15.2.0/gcc/analyzer/sm-file.dot	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-file.dot	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* An overview of the state machine from sm-file.cc.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-malloc.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-malloc.cc
*** gcc-15.2.0/gcc/analyzer/sm-malloc.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-malloc.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* A state machine for detecting misuses of the malloc/free API.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,38 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #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"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 18,31 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
! #include "stringpool.h"
! #include "attribs.h"
! #include "xml-printer.h"
! #include "target.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** along with GCC; see the file COPYING3.
*** 41,53 ****
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
- #include "stringpool.h"
- #include "attribs.h"
  #include "analyzer/function-set.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/inlining-iterator.h"
  
  #if ENABLE_ANALYZER
  
--- 34,45 ----
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-details.h"
  #include "analyzer/function-set.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-event.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/inlining-iterator.h"
+ #include "analyzer/ana-state-to-diagnostic-state.h"
  
  #if ENABLE_ANALYZER
  
*************** struct assumed_non_null_state : public a
*** 150,156 ****
    assumed_non_null_state (const char *name, unsigned id,
  			  const frame_region *frame)
    : allocation_state (name, id, RS_ASSUMED_NON_NULL,
! 		      NULL, NULL),
      m_frame (frame)
    {
      gcc_assert (m_frame);
--- 142,148 ----
    assumed_non_null_state (const char *name, unsigned id,
  			  const frame_region *frame)
    : allocation_state (name, id, RS_ASSUMED_NON_NULL,
! 		      nullptr, nullptr),
      m_frame (frame)
    {
      gcc_assert (m_frame);
*************** struct deallocator_set_map_traits
*** 301,307 ****
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != NULL);
      gcc_assert (k != reinterpret_cast<key_type> (1));
  
      hashval_t result = 0;
--- 293,299 ----
  
    static inline hashval_t hash (const key_type &k)
    {
!     gcc_assert (k != nullptr);
      gcc_assert (k != reinterpret_cast<key_type> (1));
  
      hashval_t result = 0;
*************** struct deallocator_set_map_traits
*** 335,341 ****
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = NULL;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
--- 327,333 ----
    template <typename T>
    static inline void mark_empty (T &entry)
    {
!     entry.m_key = nullptr;
    }
    template <typename T>
    static inline bool is_deleted (const T &entry)
*************** struct deallocator_set_map_traits
*** 345,351 ****
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == NULL;
    }
    static const bool empty_zero_p = false;
  };
--- 337,343 ----
    template <typename T>
    static inline bool is_empty (const T &entry)
    {
!     return entry.m_key == nullptr;
    }
    static const bool empty_zero_p = false;
  };
*************** public:
*** 395,411 ****
    }
  
    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,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
--- 387,403 ----
    }
  
    bool on_stmt (sm_context &sm_ctxt,
  		const gimple *stmt) const final override;
  
    void on_phi (sm_context &sm_ctxt,
  	       const gphi *phi,
  	       tree rhs) const final override;
  
+   void
+   check_call_preconditions (sm_context &sm_ctxt,
+ 			    const call_details &cd) const final override;
+ 
    void on_condition (sm_context &sm_ctxt,
  		     const svalue *lhs,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
*************** public:
*** 414,420 ****
  		     const frame_region *) const final override;
  
    bool can_purge_p (state_t s) const final override;
!   std::unique_ptr<pending_diagnostic> on_leak (tree var) const final override;
  
    bool reset_when_passed_to_unknown_fn_p (state_t s,
  					  bool is_mutable) const final override;
--- 406,416 ----
  		     const frame_region *) const final override;
  
    bool can_purge_p (state_t s) const final override;
! 
!   std::unique_ptr<pending_diagnostic>
!   on_leak (tree var,
! 	   const program_state *old_state,
! 	   const program_state *new_state) const final override;
  
    bool reset_when_passed_to_unknown_fn_p (state_t s,
  					  bool is_mutable) const final override;
*************** public:
*** 426,433 ****
    static bool unaffected_by_call_p (tree fndecl);
  
    void maybe_assume_non_null (sm_context &sm_ctxt,
! 			      tree ptr,
! 			      const gimple *stmt) const;
  
    void on_realloc_with_move (region_model *model,
  			     sm_state_map *smap,
--- 422,428 ----
    static bool unaffected_by_call_p (tree fndecl);
  
    void maybe_assume_non_null (sm_context &sm_ctxt,
! 			      tree ptr) const;
  
    void on_realloc_with_move (region_model *model,
  			     sm_state_map *smap,
*************** public:
*** 440,445 ****
--- 435,445 ----
        const svalue *new_ptr_sval,
        const extrinsic_state &ext_state) const;
  
+   void
+   add_state_to_state_graph (analyzer_state_graph &out_state_graph,
+ 			    const svalue &sval,
+ 			    state_machine::state_t state) const final override;
+ 
    standard_deallocator_set m_free;
    standard_deallocator_set m_scalar_delete;
    standard_deallocator_set m_vector_delete;
*************** private:
*** 476,509 ****
  
    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;
--- 476,501 ----
  
    void
    maybe_complain_about_deref_before_check (sm_context &sm_ctxt,
  					   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 gcall &call,
  				tree arg,
  				const deallocator *d) const;
    void on_deallocator_call (sm_context &sm_ctxt,
! 			    const gcall &call,
  			    const deallocator *d,
  			    unsigned argno) const;
    void on_realloc_call (sm_context &sm_ctxt,
! 			const gcall &call) const;
    void on_zero_assignment (sm_context &sm_ctxt,
  			   tree lhs) const;
    void handle_nonnull (sm_context &sm_ctx,
  		       tree fndecl,
  		       tree arg,
  		       unsigned i) const;
*************** deallocator::deallocator (malloc_state_m
*** 535,541 ****
  			  enum wording wording)
  : m_name (name),
    m_wording (wording),
!   m_freed (sm->add_state ("freed", RS_FREED, NULL, this))
  {
  }
  
--- 527,533 ----
  			  enum wording wording)
  : m_name (name),
    m_wording (wording),
!   m_freed (sm->add_state ("freed", RS_FREED, nullptr, this))
  {
  }
  
*************** standard_deallocator::standard_deallocat
*** 579,586 ****
  deallocator_set::deallocator_set (malloc_state_machine *sm,
  				  enum wording wording)
  : m_wording (wording),
!   m_unchecked (sm->add_state ("unchecked", RS_UNCHECKED, this, NULL)),
!   m_nonnull (sm->add_state ("nonnull", RS_NONNULL, this, NULL))
  {
  }
  
--- 571,578 ----
  deallocator_set::deallocator_set (malloc_state_machine *sm,
  				  enum wording wording)
  : m_wording (wording),
!   m_unchecked (sm->add_state ("unchecked", RS_UNCHECKED, this, nullptr)),
!   m_nonnull (sm->add_state ("nonnull", RS_NONNULL, this, nullptr))
  {
  }
  
*************** custom_deallocator_set::maybe_get_single
*** 625,631 ****
  {
    if (m_deallocator_vec.length () == 1)
      return m_deallocator_vec[0];
!   return NULL;
  }
  
  void
--- 617,623 ----
  {
    if (m_deallocator_vec.length () == 1)
      return m_deallocator_vec[0];
!   return nullptr;
  }
  
  void
*************** standard_deallocator_set::dump_to_pp (pr
*** 673,686 ****
    pp_character (pp, '}');
  }
  
! /* Return STATE cast to the custom state subclass, or NULL for the start state.
     Everything should be an allocation_state apart from the start state.  */
  
  static const allocation_state *
  dyn_cast_allocation_state (state_machine::state_t state)
  {
    if (state->get_id () == 0)
!     return NULL;
    return static_cast <const allocation_state *> (state);
  }
  
--- 665,679 ----
    pp_character (pp, '}');
  }
  
! /* Return STATE cast to the custom state subclass, or nullptr for the
!    start state.
     Everything should be an allocation_state apart from the start state.  */
  
  static const allocation_state *
  dyn_cast_allocation_state (state_machine::state_t state)
  {
    if (state->get_id () == 0)
!     return nullptr;
    return static_cast <const allocation_state *> (state);
  }
  
*************** public:
*** 796,803 ****
  	else
  	  {
  	    if (change.m_expr)
! 	      pp_printf (&pp, "%qE is NULL",
! 			 change.m_expr);
  	    else
  	      pp_printf (&pp, "%qs is NULL",
  			 "<unknown>");
--- 789,801 ----
  	else
  	  {
  	    if (change.m_expr)
! 	      {
! 		if (zerop (change.m_expr))
! 		  pp_printf (&pp, "using NULL here");
! 		else
! 		  pp_printf (&pp, "%qE is NULL",
! 			     change.m_expr);
! 	      }
  	    else
  	      pp_printf (&pp, "%qs is NULL",
  			 "<unknown>");
*************** public:
*** 808,825 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& unchecked_p (change.m_new_state))
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 					diagnostic_event::NOUN_memory);
      if (freed_p (change.m_new_state))
!       return diagnostic_event::meaning (diagnostic_event::VERB_release,
! 					diagnostic_event::NOUN_memory);
!     return diagnostic_event::meaning ();
    }
  
  protected:
--- 806,823 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_old_state == m_sm.get_start_state ()
  	&& unchecked_p (change.m_new_state))
!       return diagnostics::paths::event::meaning (diagnostics::paths::event::verb::acquire,
! 					diagnostics::paths::event::noun::memory);
      if (freed_p (change.m_new_state))
!       return diagnostics::paths::event::meaning (diagnostics::paths::event::verb::release,
! 					diagnostics::paths::event::noun::memory);
!     return diagnostics::paths::event::meaning ();
    }
  
  protected:
*************** public:
*** 912,918 ****
    }
  
  private:
!   diagnostic_event_id_t m_alloc_event;
    const deallocator_set *m_expected_deallocators;
    const deallocator *m_actual_dealloc;
  };
--- 910,916 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_alloc_event;
    const deallocator_set *m_expected_deallocators;
    const deallocator *m_actual_dealloc;
  };
*************** public:
*** 982,988 ****
    }
  
  private:
!   diagnostic_event_id_t m_first_free_event;
    const char *m_funcname;
  };
  
--- 980,986 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_first_free_event;
    const char *m_funcname;
  };
  
*************** public:
*** 1025,1031 ****
    }
  
  protected:
!   diagnostic_event_id_t m_origin_of_unchecked_event;
  };
  
  /* Concrete subclass for describing dereference of a possible NULL
--- 1023,1029 ----
    }
  
  protected:
!   diagnostics::paths::event_id_t m_origin_of_unchecked_event;
  };
  
  /* Concrete subclass for describing dereference of a possible NULL
*************** public:
*** 1413,1427 ****
    }
  
  private:
!   diagnostic_event_id_t m_free_event;
    const deallocator *m_deallocator;
  };
  
  class malloc_leak : public malloc_diagnostic
  {
  public:
!   malloc_leak (const malloc_state_machine &sm, tree arg)
!   : malloc_diagnostic (sm, arg) {}
  
    const char *get_kind () const final override { return "malloc_leak"; }
  
--- 1411,1431 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_free_event;
    const deallocator *m_deallocator;
  };
  
  class malloc_leak : public malloc_diagnostic
  {
  public:
!   malloc_leak (const malloc_state_machine &sm, tree arg,
! 	       const program_state *final_state)
!   : malloc_diagnostic (sm, arg),
!     m_final_state ()
!   {
!     if (final_state)
!       m_final_state = std::make_unique<program_state> (*final_state);
!   }
  
    const char *get_kind () const final override { return "malloc_leak"; }
  
*************** public:
*** 1481,1488 ****
      return true;
    }
  
  private:
!   diagnostic_event_id_t m_alloc_event;
  };
  
  class free_of_non_heap : public malloc_diagnostic
--- 1485,1499 ----
      return true;
    }
  
+   const program_state *
+   get_final_state () const final override
+   {
+     return m_final_state.get ();
+   }
+ 
  private:
!   diagnostics::paths::event_id_t m_alloc_event;
!   std::unique_ptr<program_state> m_final_state;
  };
  
  class free_of_non_heap : public malloc_diagnostic
*************** class deref_before_check : public malloc
*** 1577,1585 ****
  public:
    deref_before_check (const malloc_state_machine &sm, tree arg)
    : malloc_diagnostic (sm, arg),
!     m_deref_enode (NULL),
!     m_deref_expr (NULL),
!     m_check_enode (NULL)
    {
      gcc_assert (arg);
    }
--- 1588,1596 ----
  public:
    deref_before_check (const malloc_state_machine &sm, tree arg)
    : malloc_diagnostic (sm, arg),
!     m_deref_enode (nullptr),
!     m_deref_expr (nullptr),
!     m_check_enode (nullptr)
    {
      gcc_assert (arg);
    }
*************** public:
*** 1593,1611 ****
  
    bool emit (diagnostic_emission_context &ctxt) final override
    {
      /* Don't emit the warning if we can't show where the deref
         and the check occur.  */
      if (!m_deref_enode)
!       return false;
      if (!m_check_enode)
!       return false;
      /* Only emit the warning for intraprocedural cases.  */
      const program_point &deref_point = m_deref_enode->get_point ();
      const program_point &check_point = m_check_enode->get_point ();
  
      if (!program_point::effectively_intraprocedural_p (deref_point,
  						       check_point))
!       return false;
  
      /* Reject the warning if the check occurs within a macro defintion.
         This avoids false positives for such code as:
--- 1604,1637 ----
  
    bool emit (diagnostic_emission_context &ctxt) final override
    {
+     LOG_SCOPE (ctxt.get_logger ());
+     logger *logger = ctxt.get_logger ();
+ 
      /* Don't emit the warning if we can't show where the deref
         and the check occur.  */
      if (!m_deref_enode)
!       {
! 	if (logger)
! 	  logger->log ("rejecting: no deref enode");
! 	return false;
!       }
      if (!m_check_enode)
!       {
! 	if (logger)
! 	  logger->log ("rejecting: no check enode");
! 	return false;
!       }
      /* Only emit the warning for intraprocedural cases.  */
      const program_point &deref_point = m_deref_enode->get_point ();
      const program_point &check_point = m_check_enode->get_point ();
  
      if (!program_point::effectively_intraprocedural_p (deref_point,
  						       check_point))
!       {
! 	if (logger)
! 	  logger->log ("rejecting: not effectively intraprocedural");
! 	return false;
!       }
  
      /* Reject the warning if the check occurs within a macro defintion.
         This avoids false positives for such code as:
*************** public:
*** 1642,1648 ****
         a source of real bugs; see e.g. PR 77425.  */
      location_t check_loc = m_check_enode->get_point ().get_location ();
      if (linemap_location_from_macro_definition_p (line_table, check_loc))
!       return false;
  
      /* Reject warning if the check is in a loop header within a
         macro expansion.  This rejects cases like:
--- 1668,1678 ----
         a source of real bugs; see e.g. PR 77425.  */
      location_t check_loc = m_check_enode->get_point ().get_location ();
      if (linemap_location_from_macro_definition_p (line_table, check_loc))
!       {
! 	if (logger)
! 	  logger->log ("rejecting: check occurs within macro definition");
! 	return false;
!       }
  
      /* Reject warning if the check is in a loop header within a
         macro expansion.  This rejects cases like:
*************** public:
*** 1657,1672 ****
         would just be noise if we reported it.  */
      if (loop_header_p (m_check_enode->get_point ())
  	&& linemap_location_from_macro_expansion_p (line_table, check_loc))
!       return false;
  
      /* Reject if m_deref_expr is sufficiently different from m_arg
         for cases where the dereference is spelled differently from
         the check, which is probably two different ways to get the
         same svalue, and thus not worth reporting.  */
      if (!m_deref_expr)
!       return false;
      if (!sufficiently_similar_p (m_deref_expr, m_arg))
!       return false;
  
      /* Reject the warning if the deref's BB doesn't dominate that
         of the check, so that we don't warn e.g. for shared cleanup
--- 1687,1715 ----
         would just be noise if we reported it.  */
      if (loop_header_p (m_check_enode->get_point ())
  	&& linemap_location_from_macro_expansion_p (line_table, check_loc))
!       {
! 	if (logger)
! 	  logger->log
! 	    ("rejecting: check occurs in loop header macro expansion");
! 	return false;
!       }
  
      /* Reject if m_deref_expr is sufficiently different from m_arg
         for cases where the dereference is spelled differently from
         the check, which is probably two different ways to get the
         same svalue, and thus not worth reporting.  */
      if (!m_deref_expr)
!       {
! 	if (logger)
! 	  logger->log ("rejecting: no deref_expr");
! 	return false;
!       }
      if (!sufficiently_similar_p (m_deref_expr, m_arg))
!       {
! 	if (logger)
! 	  logger->log ("rejecting: not sufficiently similar to arg");
! 	return false;
!       }
  
      /* Reject the warning if the deref's BB doesn't dominate that
         of the check, so that we don't warn e.g. for shared cleanup
*************** public:
*** 1678,1684 ****
      if (!dominated_by_p (CDI_DOMINATORS,
  			 m_check_enode->get_supernode ()->m_bb,
  			 m_deref_enode->get_supernode ()->m_bb))
!       return false;
  
      return ctxt.warn ("check of %qE for NULL after already"
  		      " dereferencing it",
--- 1721,1731 ----
      if (!dominated_by_p (CDI_DOMINATORS,
  			 m_check_enode->get_supernode ()->m_bb,
  			 m_deref_enode->get_supernode ()->m_bb))
!       {
! 	if (logger)
! 	  logger->log ("rejecting: deref doesn't dominate the check");
! 	return false;
!       }
  
      return ctxt.warn ("check of %qE for NULL after already"
  		      " dereferencing it",
*************** private:
*** 1727,1739 ****
      const supernode *snode = point.get_supernode ();
      if (!snode)
        return false;
!     for (auto &in_edge : snode->m_preds)
!       {
! 	if (const cfg_superedge *cfg_in_edge
! 	      = in_edge->dyn_cast_cfg_superedge ())
! 	  if (cfg_in_edge->back_edge_p ())
! 	    return true;
!       }
      return false;
    }
  
--- 1774,1782 ----
      const supernode *snode = point.get_supernode ();
      if (!snode)
        return false;
!     for (auto in_edge : snode->m_bb->preds)
!       if (in_edge->flags & EDGE_DFS_BACK)
! 	return true;
      return false;
    }
  
*************** private:
*** 1749,1755 ****
      return result;
    }
  
!   diagnostic_event_id_t m_first_deref_event;
    const exploded_node *m_deref_enode;
    tree m_deref_expr;
    const exploded_node *m_check_enode;
--- 1792,1798 ----
      return result;
    }
  
!   diagnostics::paths::event_id_t m_first_deref_event;
    const exploded_node *m_deref_enode;
    tree m_deref_expr;
    const exploded_node *m_check_enode;
*************** malloc_state_machine::malloc_state_machi
*** 1804,1812 ****
    m_realloc (this, "realloc", WORDING_REALLOCATED)
  {
    gcc_assert (m_start->get_id () == 0);
!   m_null = add_state ("null", RS_FREED, NULL, NULL);
!   m_non_heap = add_state ("non-heap", RS_NON_HEAP, NULL, NULL);
!   m_stop = add_state ("stop", RS_STOP, NULL, NULL);
  }
  
  malloc_state_machine::~malloc_state_machine ()
--- 1847,1855 ----
    m_realloc (this, "realloc", WORDING_REALLOCATED)
  {
    gcc_assert (m_start->get_id () == 0);
!   m_null = add_state ("null", RS_FREED, nullptr, nullptr);
!   m_non_heap = add_state ("non-heap", RS_NON_HEAP, nullptr, nullptr);
!   m_stop = add_state ("stop", RS_STOP, nullptr, nullptr);
  }
  
  malloc_state_machine::~malloc_state_machine ()
*************** malloc_state_machine::add_state (const c
*** 1834,1840 ****
     return a custom_deallocator_set for them, consolidating them
     to ensure uniqueness of the sets.
  
!    Return NULL if it has no such attributes.  */
  
  const custom_deallocator_set *
  malloc_state_machine::
--- 1877,1883 ----
     return a custom_deallocator_set for them, consolidating them
     to ensure uniqueness of the sets.
  
!    Return nullptr if it has no such attributes.  */
  
  const custom_deallocator_set *
  malloc_state_machine::
*************** get_or_create_custom_deallocator_set (tr
*** 1843,1849 ****
    /* Early rejection of decls without attributes.  */
    tree attrs = DECL_ATTRIBUTES (allocator_fndecl);
    if (!attrs)
!     return NULL;
  
    /* Otherwise, call maybe_create_custom_deallocator_set,
       memoizing the result.  */
--- 1886,1892 ----
    /* Early rejection of decls without attributes.  */
    tree attrs = DECL_ATTRIBUTES (allocator_fndecl);
    if (!attrs)
!     return nullptr;
  
    /* Otherwise, call maybe_create_custom_deallocator_set,
       memoizing the result.  */
*************** get_or_create_custom_deallocator_set (tr
*** 1861,1867 ****
     custom_deallocator_set for them, consolidating them
     to ensure uniqueness of the sets.
  
!    Return NULL if it has no such attributes.
  
     Subroutine of get_or_create_custom_deallocator_set which
     memoizes the result.  */
--- 1904,1910 ----
     custom_deallocator_set for them, consolidating them
     to ensure uniqueness of the sets.
  
!    Return nullptr if it has no such attributes.
  
     Subroutine of get_or_create_custom_deallocator_set which
     memoizes the result.  */
*************** maybe_create_custom_deallocator_set (tre
*** 1892,1898 ****
  
    /* If there weren't any deallocators, bail.  */
    if (deallocator_vec.length () == 0)
!     return NULL;
  
    /* Consolidate, so that we reuse existing deallocator_set
       instances.  */
--- 1935,1941 ----
  
    /* If there weren't any deallocators, bail.  */
    if (deallocator_vec.length () == 0)
!     return nullptr;
  
    /* Consolidate, so that we reuse existing deallocator_set
       instances.  */
*************** get_or_create_assumed_non_null_state_for
*** 1955,1961 ****
     builtin.  */
  
  static bool
! known_allocator_p (const_tree fndecl, const gcall *call)
  {
    /* Either it is a function we know by name and number of arguments... */
    if (is_named_call_p (fndecl, "malloc", call, 1)
--- 1998,2004 ----
     builtin.  */
  
  static bool
! known_allocator_p (const_tree fndecl, const gcall &call)
  {
    /* Either it is a function we know by name and number of arguments... */
    if (is_named_call_p (fndecl, "malloc", call, 1)
*************** known_allocator_p (const_tree fndecl, co
*** 1988,1995 ****
  
  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)
--- 2031,2037 ----
  
  void
  malloc_state_machine::maybe_assume_non_null (sm_context &sm_ctxt,
! 					     tree ptr) const
  {
    const region_model *old_model = sm_ctxt.get_old_region_model ();
    if (!old_model)
*************** malloc_state_machine::maybe_assume_non_n
*** 1997,2003 ****
  
    tree null_ptr_cst = build_int_cst (TREE_TYPE (ptr), 0);
    tristate known_non_null
!     = old_model->eval_condition (ptr, NE_EXPR, null_ptr_cst, NULL);
    if (known_non_null.is_unknown ())
      {
        /* Cast away const-ness for cache-like operations.  */
--- 2039,2045 ----
  
    tree null_ptr_cst = build_int_cst (TREE_TYPE (ptr), 0);
    tristate known_non_null
!     = old_model->eval_condition (ptr, NE_EXPR, null_ptr_cst, nullptr);
    if (known_non_null.is_unknown ())
      {
        /* Cast away const-ness for cache-like operations.  */
*************** malloc_state_machine::maybe_assume_non_n
*** 2006,2012 ****
        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);
      }
  }
  
--- 2048,2054 ----
        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 (ptr, next_state);
      }
  }
  
*************** malloc_state_machine::maybe_assume_non_n
*** 2016,2062 ****
  
  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))
  	  {
  	    on_allocator_call (sm_ctxt, call, &m_free);
--- 2058,2123 ----
  
  void
  malloc_state_machine::handle_nonnull (sm_context &sm_ctxt,
  				      tree fndecl,
  				      tree arg,
  				      unsigned i) const
  {
!   state_t state = sm_ctxt.get_state (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
! 	(arg,
! 	 std::make_unique<possible_null_arg> (*this, diag_arg, fndecl,
! 					      i));
        const allocation_state *astate
  	= as_a_allocation_state (state);
!       sm_ctxt.set_next_state (arg, astate->get_nonnull ());
      }
    else if (state == m_null)
      {
        tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (arg,
! 		    std::make_unique<null_arg> (*this, diag_arg, fndecl, i));
!       sm_ctxt.set_next_state (arg, m_stop);
      }
    else if (state == m_start)
!     maybe_assume_non_null (sm_ctxt, arg);
! }
! 
! /* Return true if it's valid to dereference the zero value of PTR_TYPE,
!    or false if we should warn on it.  */
! 
! static bool
! zero_address_valid_p (const_tree ptr_type)
! {
!   gcc_assert (POINTER_TYPE_P (ptr_type));
! 
!   /* Some targets have address spaces in which it's valid
!      to dereference zero.  */
!   addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (ptr_type));
!   if (!ADDR_SPACE_GENERIC_P (as)
!       && targetm.addr_space.zero_address_valid (as))
!     return true;
! 
!   /* Invalid.  */
!   return false;
  }
  
  /* Implementation of state_machine::on_stmt vfunc for malloc_state_machine.  */
  
  bool
  malloc_state_machine::on_stmt (sm_context &sm_ctxt,
  			       const gimple *stmt) const
  {
!   if (const gcall *call_stmt = dyn_cast <const gcall *> (stmt))
!     if (tree callee_fndecl = sm_ctxt.get_fndecl_for_call (*call_stmt))
        {
+ 	const gcall &call = *call_stmt;
+ 
  	if (known_allocator_p (callee_fndecl, call))
  	  {
  	    on_allocator_call (sm_ctxt, call, &m_free);
*************** malloc_state_machine::on_stmt (sm_contex
*** 2078,2090 ****
  	if (is_named_call_p (callee_fndecl, "operator delete", call, 1)
  	    || is_named_call_p (callee_fndecl, "operator delete", call, 2))
  	  {
! 	    on_deallocator_call (sm_ctxt, node, call,
  				 &m_scalar_delete.m_deallocator, 0);
  	    return true;
  	  }
  	else if (is_named_call_p (callee_fndecl, "operator delete []", call, 1))
  	  {
! 	    on_deallocator_call (sm_ctxt, node, call,
  				 &m_vector_delete.m_deallocator, 0);
  	    return true;
  	  }
--- 2139,2151 ----
  	if (is_named_call_p (callee_fndecl, "operator delete", call, 1)
  	    || is_named_call_p (callee_fndecl, "operator delete", call, 2))
  	  {
! 	    on_deallocator_call (sm_ctxt, call,
  				 &m_scalar_delete.m_deallocator, 0);
  	    return true;
  	  }
  	else if (is_named_call_p (callee_fndecl, "operator delete []", call, 1))
  	  {
! 	    on_deallocator_call (sm_ctxt, call,
  				 &m_vector_delete.m_deallocator, 0);
  	    return true;
  	  }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2092,2100 ****
  	if (is_named_call_p (callee_fndecl, "alloca", call, 1)
  	    || is_named_call_p (callee_fndecl, "__builtin_alloca", call, 1))
  	  {
! 	    tree lhs = gimple_call_lhs (call);
  	    if (lhs)
! 	      sm_ctxt.on_transition (node, stmt, lhs, m_start, m_non_heap);
  	    return true;
  	  }
  
--- 2153,2161 ----
  	if (is_named_call_p (callee_fndecl, "alloca", call, 1)
  	    || is_named_call_p (callee_fndecl, "__builtin_alloca", call, 1))
  	  {
! 	    tree lhs = gimple_call_lhs (&call);
  	    if (lhs)
! 	      sm_ctxt.on_transition (lhs, m_start, m_non_heap);
  	    return true;
  	  }
  
*************** malloc_state_machine::on_stmt (sm_contex
*** 2102,2108 ****
  	    || is_std_named_call_p (callee_fndecl, "free", call, 1)
  	    || is_named_call_p (callee_fndecl, "__builtin_free", call, 1))
  	  {
! 	    on_deallocator_call (sm_ctxt, node, call,
  				 &m_free.m_deallocator, 0);
  	    return true;
  	  }
--- 2163,2169 ----
  	    || is_std_named_call_p (callee_fndecl, "free", call, 1)
  	    || is_named_call_p (callee_fndecl, "__builtin_free", call, 1))
  	  {
! 	    on_deallocator_call (sm_ctxt, call,
  				 &m_free.m_deallocator, 0);
  	    return true;
  	  }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2111,2117 ****
  	    || 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);
  	    return true;
  	  }
  
--- 2172,2178 ----
  	    || 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, call);
  	    return true;
  	  }
  
*************** malloc_state_machine::on_stmt (sm_contex
*** 2146,2199 ****
  	      on_allocator_call (sm_ctxt, call, deallocators, returns_nonnull);
  	    }
  
- 	  {
- 	    /* Handle "__attribute__((nonnull))".   */
- 	    tree fntype = TREE_TYPE (fndecl);
- 	    bitmap nonnull_args = get_nonnull_args (fntype);
- 	    if (nonnull_args)
- 	      {
- 		for (unsigned i = 0; i < gimple_call_num_args (stmt); i++)
- 		  {
- 		    tree arg = gimple_call_arg (stmt, i);
- 		    if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE)
- 		      continue;
- 		    /* If we have a nonnull-args, and either all pointers, or
- 		       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
  	     then we transition to "freed", rather than "checked".  */
  	  unsigned dealloc_argno = fndecl_dealloc_argno (fndecl);
--- 2207,2212 ----
*************** malloc_state_machine::on_stmt (sm_contex
*** 2201,2207 ****
  	    {
  	      const deallocator *d
  		= mutable_this->get_or_create_deallocator (fndecl);
! 	      on_deallocator_call (sm_ctxt, node, call, d, dealloc_argno);
  	    }
  	}
        }
--- 2214,2220 ----
  	    {
  	      const deallocator *d
  		= mutable_this->get_or_create_deallocator (fndecl);
! 	      on_deallocator_call (sm_ctxt, call, d, dealloc_argno);
  	    }
  	}
        }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2225,2235 ****
  	      && 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,
! 		   stmt,
  		   (const assumed_non_null_state *)state,
  		   lhs);
  	    }
--- 2238,2247 ----
  	      && any_pointer_p (rhs)
  	      && zerop (rhs))
  	    {
! 	      state_t state = sm_ctxt.get_state (lhs);
  	      if (assumed_non_null_p (state))
  		maybe_complain_about_deref_before_check
! 		  (sm_ctxt,
  		   (const assumed_non_null_state *)state,
  		   lhs);
  	    }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2238,2244 ****
  
    if (tree lhs = sm_ctxt.is_zero_assignment (stmt))
      if (any_pointer_p (lhs))
!       on_zero_assignment (sm_ctxt, stmt,lhs);
  
    /* Handle dereferences.  */
    for (unsigned i = 0; i < gimple_num_ops (stmt); i++)
--- 2250,2256 ----
  
    if (tree lhs = sm_ctxt.is_zero_assignment (stmt))
      if (any_pointer_p (lhs))
!       on_zero_assignment (sm_ctxt, lhs);
  
    /* Handle dereferences.  */
    for (unsigned i = 0; i < gimple_num_ops (stmt); i++)
*************** malloc_state_machine::on_stmt (sm_contex
*** 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);
  	    }
  	}
      }
--- 2265,2303 ----
  	{
  	  tree arg = TREE_OPERAND (op, 0);
  
! 	  state_t state = sm_ctxt.get_state (arg);
  	  if (state == m_start)
! 	    maybe_assume_non_null (sm_ctxt, arg);
  	  else if (unchecked_p (state))
  	    {
! 	      if (!zero_address_valid_p (TREE_TYPE (arg)))
! 		{
! 		  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		  sm_ctxt.warn (arg,
! 				std::make_unique<possible_null_deref> (*this,
! 								       diag_arg));
! 		  const allocation_state *astate = as_a_allocation_state (state);
! 		  sm_ctxt.set_next_state (arg, astate->get_nonnull ());
! 		}
  	    }
  	  else if (state == m_null)
  	    {
! 	      if (!zero_address_valid_p (TREE_TYPE (arg)))
! 		{
! 		  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		  sm_ctxt.warn (arg,
! 				std::make_unique<null_deref> (*this, diag_arg));
! 		  sm_ctxt.set_next_state (arg, m_stop);
! 		}
  	    }
  	  else if (freed_p (state))
  	    {
  	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
  	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<use_after_free>
  			      (*this, diag_arg, astate->m_deallocator));
! 	      sm_ctxt.set_next_state (arg, m_stop);
  	    }
  	}
      }
*************** malloc_state_machine::on_stmt (sm_contex
*** 2292,2299 ****
  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
  {
--- 2310,2315 ----
*************** maybe_complain_about_deref_before_check
*** 2326,2336 ****
    if (checked_in_frame->get_index () > assumed_nonnull_in_frame->get_index ())
      return;
  
!   /* Don't complain if STMT was inlined from another function, to avoid
       similar false positives involving shared helper functions.  */
!   if (stmt->location)
      {
!       inlining_info info (stmt->location);
        if (info.get_extra_frames () > 0)
  	return;
      }
--- 2342,2352 ----
    if (checked_in_frame->get_index () > assumed_nonnull_in_frame->get_index ())
      return;
  
!   /* Don't complain if code was inlined from another function, to avoid
       similar false positives involving shared helper functions.  */
!   if (location_t loc = sm_ctxt.get_emission_location ())
      {
!       inlining_info info (loc);
        if (info.get_extra_frames () > 0)
  	return;
      }
*************** maybe_complain_about_deref_before_check
*** 2338,2346 ****
    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.
--- 2354,2362 ----
    tree diag_ptr = sm_ctxt.get_diagnostic_tree (ptr);
    if (diag_ptr)
      sm_ctxt.warn
!       (ptr,
!        std::make_unique<deref_before_check> (*this, diag_ptr));
!   sm_ctxt.set_next_state (ptr, m_stop);
  }
  
  /* Handle a call to an allocator.
*************** maybe_complain_about_deref_before_check
*** 2349,2363 ****
  
  void
  malloc_state_machine::on_allocator_call (sm_context &sm_ctxt,
! 					 const gcall *call,
  					 const deallocator_set *deallocators,
  					 bool returns_nonnull) const
  {
!   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));
--- 2365,2379 ----
  
  void
  malloc_state_machine::on_allocator_call (sm_context &sm_ctxt,
! 					 const gcall &call,
  					 const deallocator_set *deallocators,
  					 bool returns_nonnull) const
  {
!   tree lhs = gimple_call_lhs (&call);
    if (lhs)
      {
!       if (sm_ctxt.get_state (lhs) == m_start)
! 	sm_ctxt.set_next_state (lhs,
  				(returns_nonnull
  				 ? deallocators->m_nonnull
  				 : deallocators->m_unchecked));
*************** malloc_state_machine::on_allocator_call
*** 2373,2413 ****
  
  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,
  					   unsigned argno) const
  {
!   if (argno >= gimple_call_num_args (call))
      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);
--- 2389,2427 ----
  
  void
  malloc_state_machine::handle_free_of_non_heap (sm_context &sm_ctxt,
! 					       const gcall &,
  					       tree arg,
  					       const deallocator *d) const
  {
    tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!   const region *freed_reg = nullptr;
    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, nullptr);
!       freed_reg = old_model->deref_rvalue (ptr_sval, arg, nullptr);
      }
!   sm_ctxt.warn (arg,
! 		std::make_unique<free_of_non_heap>
  		  (*this, diag_arg, freed_reg, d->m_name));
!   sm_ctxt.set_next_state (arg, m_stop);
  }
  
  void
  malloc_state_machine::on_deallocator_call (sm_context &sm_ctxt,
! 					   const gcall &call,
  					   const deallocator *d,
  					   unsigned argno) const
  {
!   if (argno >= gimple_call_num_args (&call))
      return;
!   tree arg = gimple_call_arg (&call, argno);
  
!   state_t state = sm_ctxt.get_state (arg);
  
    /* start/assumed_non_null/unchecked/nonnull -> freed.  */
    if (state == m_start || assumed_non_null_p (state))
!     sm_ctxt.set_next_state (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
*** 2416,2428 ****
  	{
  	  /* 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";
--- 2430,2442 ----
  	{
  	  /* Wrong allocator.  */
  	  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	  sm_ctxt.warn (arg,
! 			std::make_unique<mismatching_deallocation>
  			  (*this, diag_arg,
  			   astate->m_deallocators,
  			   d));
  	}
!       sm_ctxt.set_next_state (arg, d->m_freed);
      }
  
    /* Keep state "null" as-is, rather than transitioning to "freed";
*************** malloc_state_machine::on_deallocator_cal
*** 2431,2444 ****
      {
        /* 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)
      {
        /* non-heap -> stop, with warning.  */
!       handle_free_of_non_heap (sm_ctxt, node, call, arg, d);
      }
  }
  
--- 2445,2458 ----
      {
        /* freed -> stop, with warning.  */
        tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (arg,
! 		    std::make_unique<double_free> (*this, diag_arg, d->m_name));
!       sm_ctxt.set_next_state (arg, m_stop);
      }
    else if (state == m_non_heap)
      {
        /* non-heap -> stop, with warning.  */
!       handle_free_of_non_heap (sm_ctxt, call, arg, d);
      }
  }
  
*************** malloc_state_machine::on_deallocator_cal
*** 2452,2466 ****
  
  void
  malloc_state_machine::on_realloc_call (sm_context &sm_ctxt,
! 				       const supernode *node,
! 				       const gcall *call) const
  {
    const unsigned argno = 0;
    const deallocator *d = &m_realloc;
  
!   tree arg = gimple_call_arg (call, argno);
  
!   state_t state = sm_ctxt.get_state (call, arg);
  
    if (unchecked_p (state) || nonnull_p (state))
      {
--- 2466,2479 ----
  
  void
  malloc_state_machine::on_realloc_call (sm_context &sm_ctxt,
! 				       const gcall &call) const
  {
    const unsigned argno = 0;
    const deallocator *d = &m_realloc;
  
!   tree arg = gimple_call_arg (&call, argno);
  
!   state_t state = sm_ctxt.get_state (arg);
  
    if (unchecked_p (state) || nonnull_p (state))
      {
*************** malloc_state_machine::on_realloc_call (s
*** 2470,2480 ****
  	{
  	  /* 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 ();
  	}
--- 2483,2493 ----
  	{
  	  /* Wrong allocator.  */
  	  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	  sm_ctxt.warn (arg,
! 			std::make_unique<mismatching_deallocation>
  			  (*this, diag_arg,
  			   astate->m_deallocators, d));
! 	  sm_ctxt.set_next_state (arg, m_stop);
  	  if (path_context *path_ctxt = sm_ctxt.get_path_context ())
  	    path_ctxt->terminate_path ();
  	}
*************** malloc_state_machine::on_realloc_call (s
*** 2483,2498 ****
      {
        /* 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 ();
      }
--- 2496,2511 ----
      {
        /* freed -> stop, with warning.  */
        tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (arg,
! 		    std::make_unique<double_free> (*this, diag_arg, "free"));
!       sm_ctxt.set_next_state (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, call, arg, d);
        if (path_context *path_ctxt = sm_ctxt.get_path_context ())
  	path_ctxt->terminate_path ();
      }
*************** malloc_state_machine::on_realloc_call (s
*** 2502,2525 ****
  
  void
  malloc_state_machine::on_phi (sm_context &sm_ctxt,
- 			      const supernode *node ATTRIBUTE_UNUSED,
  			      const gphi *phi,
  			      tree rhs) const
  {
    if (zerop (rhs))
      {
        tree lhs = gimple_phi_result (phi);
!       on_zero_assignment (sm_ctxt, phi, lhs);
      }
  }
  
  /* Implementation of state_machine::on_condition vfunc for malloc_state_machine.
     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,
  				    enum tree_code op,
  				    const svalue *rhs) const
--- 2515,2600 ----
  
  void
  malloc_state_machine::on_phi (sm_context &sm_ctxt,
  			      const gphi *phi,
  			      tree rhs) const
  {
    if (zerop (rhs))
      {
        tree lhs = gimple_phi_result (phi);
!       on_zero_assignment (sm_ctxt, lhs);
      }
  }
  
+ void
+ malloc_state_machine::check_call_preconditions (sm_context &sm_ctxt,
+ 						const call_details &cd) const
+ {
+   tree fndecl = cd.get_fndecl_for_call ();
+   if (!fndecl)
+     return;
+ 
+   const tree fntype = TREE_TYPE (fndecl);
+   const unsigned num_args = cd.num_args ();
+ 
+   /* Handle "__attribute__((nonnull))".   */
+   if (bitmap nonnull_args = get_nonnull_args (fntype))
+     {
+       for (unsigned i = 0; i < num_args; i++)
+ 	{
+ 	  tree arg = cd.get_arg_tree (i);
+ 	  if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE)
+ 	    continue;
+ 	  /* If we have a nonnull-args, and either all pointers, or
+ 	     just the specified pointers.  */
+ 	  if (bitmap_empty_p (nonnull_args)
+ 	      || bitmap_bit_p (nonnull_args, i))
+ 	    handle_nonnull (sm_ctxt, 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;
+ 	unsigned int idx3 = idx2;
+ 	if (tree chain2 = TREE_CHAIN (TREE_CHAIN (args)))
+ 	  idx3 = TREE_INT_CST_LOW (TREE_VALUE (chain2)) - 1;
+ 	if (idx < num_args
+ 	    && idx2 < num_args
+ 	    && idx3 < num_args)
+ 	  {
+ 	    tree arg = cd.get_arg_tree (idx);
+ 	    tree arg2 = cd.get_arg_tree (idx2);
+ 	    tree arg3 = cd.get_arg_tree (idx3);
+ 	    if (TREE_CODE (TREE_TYPE (arg)) != POINTER_TYPE
+ 		|| !INTEGRAL_TYPE_P (TREE_TYPE (arg2))
+ 		|| !INTEGRAL_TYPE_P (TREE_TYPE (arg3))
+ 		|| integer_zerop (arg2)
+ 		|| integer_zerop (arg3))
+ 	      continue;
+ 	    if (integer_nonzerop (arg2) && integer_nonzerop (arg3))
+ 	      ;
+ 	    else
+ 	      /* FIXME: Use ranger here to query arg2 and arg3
+ 		 ranges?  */
+ 	      continue;
+ 	    handle_nonnull (sm_ctxt, fndecl, arg, idx);
+ 	  }
+       }
+ }
+ 
  /* Implementation of state_machine::on_condition vfunc for malloc_state_machine.
     Potentially transition state 'unchecked' to 'nonnull' or to 'null'.  */
  
  void
  malloc_state_machine::on_condition (sm_context &sm_ctxt,
  				    const svalue *lhs,
  				    enum tree_code op,
  				    const svalue *rhs) const
*************** malloc_state_machine::on_condition (sm_c
*** 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);
      }
  }
  
--- 2610,2628 ----
    if (op == NE_EXPR)
      {
        log ("got 'ARG != 0' match");
!       state_t s = sm_ctxt.get_state (lhs);
        if (unchecked_p (s))
  	{
  	  const allocation_state *astate = as_a_allocation_state (s);
! 	  sm_ctxt.set_next_state (lhs, astate->get_nonnull ());
  	}
      }
    else if (op == EQ_EXPR)
      {
        log ("got 'ARG == 0' match");
!       state_t s = sm_ctxt.get_state (lhs);
        if (unchecked_p (s))
! 	sm_ctxt.set_next_state (lhs, m_null);
      }
  }
  
*************** malloc_state_machine::can_purge_p (state
*** 2592,2600 ****
     'nonnull').  */
  
  std::unique_ptr<pending_diagnostic>
! malloc_state_machine::on_leak (tree var) const
  {
!   return make_unique<malloc_leak> (*this, var);
  }
  
  /* Implementation of state_machine::reset_when_passed_to_unknown_fn_p vfunc
--- 2667,2677 ----
     'nonnull').  */
  
  std::unique_ptr<pending_diagnostic>
! malloc_state_machine::on_leak (tree var,
! 			       const program_state *,
! 			       const program_state *new_state) const
  {
!   return std::make_unique<malloc_leak> (*this, var, new_state);
  }
  
  /* Implementation of state_machine::reset_when_passed_to_unknown_fn_p vfunc
*************** malloc_state_machine::maybe_get_merged_s
*** 2627,2633 ****
      return m_start;
    if (state_a == m_start && assumed_non_null_p (state_b))
      return m_start;
!   return NULL;
  }
  
  /* Return true if calls to FNDECL are known to not affect this sm-state.  */
--- 2704,2710 ----
      return m_start;
    if (state_a == m_start && assumed_non_null_p (state_b))
      return m_start;
!   return nullptr;
  }
  
  /* Return true if calls to FNDECL are known to not affect this sm-state.  */
*************** malloc_state_machine::unaffected_by_call
*** 2656,2671 ****
  
  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
--- 2733,2747 ----
  
  void
  malloc_state_machine::on_zero_assignment (sm_context &sm_ctxt,
  					  tree lhs) const
  {
!   state_t s = sm_ctxt.get_state (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 (lhs, m_null);
  }
  
  /* Special-case hook for handling realloc, for the "success with move to
*************** on_realloc_with_move (region_model *mode
*** 2685,2695 ****
  {
    smap->set_state (model, old_ptr_sval,
  		   m_free.m_deallocator.m_freed,
! 		   NULL, ext_state);
  
    smap->set_state (model, new_ptr_sval,
  		   m_free.m_nonnull,
! 		   NULL, ext_state);
  }
  
  /*  Hook for get_or_create_region_for_heap_alloc for the case when we want
--- 2761,2771 ----
  {
    smap->set_state (model, old_ptr_sval,
  		   m_free.m_deallocator.m_freed,
! 		   nullptr, ext_state);
  
    smap->set_state (model, new_ptr_sval,
  		   m_free.m_nonnull,
! 		   nullptr, ext_state);
  }
  
  /*  Hook for get_or_create_region_for_heap_alloc for the case when we want
*************** malloc_state_machine::transition_ptr_sva
*** 2700,2716 ****
      const svalue *new_ptr_sval,
      const extrinsic_state &ext_state) const
  {
!   smap->set_state (model, new_ptr_sval, m_free.m_nonnull, NULL, ext_state);
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! state_machine *
  make_malloc_state_machine (logger *logger)
  {
!   return new malloc_state_machine (logger);
  }
  
  /* Specialcase hook for handling realloc, for use by
--- 2776,2845 ----
      const svalue *new_ptr_sval,
      const extrinsic_state &ext_state) const
  {
!   smap->set_state (model, new_ptr_sval, m_free.m_nonnull, nullptr, ext_state);
! }
! 
! static enum custom_sarif_properties::state_graphs::node::dynalloc_state_t
! get_dynalloc_state_for_state (enum resource_state rs)
! {
!   switch (rs)
!     {
!     default:
!       gcc_unreachable ();
!     case RS_START:
!     case RS_NULL:
!     case RS_NON_HEAP:
!     case RS_STOP:
!       return state_node_properties::dynalloc_state_t::unknown;
! 
!     case RS_ASSUMED_NON_NULL:
!       return state_node_properties::dynalloc_state_t::nonnull;
! 
!     case RS_UNCHECKED:
!       return state_node_properties::dynalloc_state_t::unchecked;
!     case RS_NONNULL:
!       return state_node_properties::dynalloc_state_t::nonnull;
!     case RS_FREED:
!       return state_node_properties::dynalloc_state_t::freed;
!     }
! }
! 
! void
! malloc_state_machine::
! add_state_to_state_graph (analyzer_state_graph &out_state_graph,
! 			  const svalue &sval,
! 			  state_machine::state_t state) const
! {
!   if (const region *reg = sval.maybe_get_region ())
!     {
!       auto &reg_node = out_state_graph.get_or_create_state_node (*reg);
!       auto alloc_state = as_a_allocation_state (state);
!       gcc_assert (alloc_state);
! 
!       reg_node.set_property (state_node_properties::dynalloc_state_prop,
! 			     get_dynalloc_state_for_state (alloc_state->m_rs));
! 
!       if (alloc_state->m_deallocators)
! 	{
! 	  pretty_printer pp;
! 	  alloc_state->m_deallocators->dump_to_pp (&pp);
! 	  reg_node.set_property (state_node_properties::expected_deallocators,
! 				 pp_formatted_text (&pp));
! 	}
!       if (alloc_state->m_deallocator)
! 	reg_node.set_property (state_node_properties::deallocator,
! 			       alloc_state->m_deallocator->m_name);
!     }
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_malloc_state_machine (logger *logger)
  {
!   return std::make_unique<malloc_state_machine> (logger);
  }
  
  /* Specialcase hook for handling realloc, for use by
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-malloc.dot gcc-16.1.0-RC-20260423/gcc/analyzer/sm-malloc.dot
*** gcc-15.2.0/gcc/analyzer/sm-malloc.dot	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-malloc.dot	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* An overview of the state machine from sm-malloc.cc.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-pattern-test.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-pattern-test.cc
*** gcc-15.2.0/gcc/analyzer/sm-pattern-test.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-pattern-test.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,7 ----
  /* A state machine for use in DejaGnu tests, to check that
     pattern-matching works as expected.
  
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 20,38 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
  #include "tree-pretty-print.h"
! #include "diagnostic-path.h"
! #include "analyzer/analyzer.h"
! #include "diagnostic-event-id.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 20,30 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "tree-pretty-print.h"
! #include "diagnostics/event-id.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** public:
*** 58,69 ****
    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,
  		     enum tree_code op,
  		     const svalue *rhs) const final override;
--- 50,58 ----
*************** pattern_test_state_machine::pattern_test
*** 110,116 ****
  
  bool
  pattern_test_state_machine::on_stmt (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
- 				     const supernode *node ATTRIBUTE_UNUSED,
  				     const gimple *stmt ATTRIBUTE_UNUSED) const
  {
    return false;
--- 99,104 ----
*************** pattern_test_state_machine::on_stmt (sm_
*** 124,146 ****
  
  void
  pattern_test_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
  {
-   if (stmt == NULL)
-     return;
- 
    tree rhs_cst = rhs->maybe_get_constant ();
    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));
      }
  }
  
--- 112,129 ----
  
  void
  pattern_test_state_machine::on_condition (sm_context &sm_ctxt,
  					  const svalue *lhs,
  					  enum tree_code op,
  					  const svalue *rhs) const
  {
    tree rhs_cst = rhs->maybe_get_constant ();
    if (!rhs_cst)
      return;
  
    if (tree lhs_expr = sm_ctxt.get_diagnostic_tree (lhs))
      {
!       sm_ctxt.warn (lhs_expr,
! 		    std::make_unique<pattern_match> (lhs_expr, op, rhs_cst));
      }
  }
  
*************** pattern_test_state_machine::can_purge_p
*** 154,163 ****
  
  /* Internal interface to this file. */
  
! state_machine *
  make_pattern_test_state_machine (logger *logger)
  {
!   return new pattern_test_state_machine (logger);
  }
  
  } // namespace ana
--- 137,146 ----
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_pattern_test_state_machine (logger *logger)
  {
!   return std::make_unique<pattern_test_state_machine> (logger);
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-sensitive.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-sensitive.cc
*** gcc-15.2.0/gcc/analyzer/sm-sensitive.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-sensitive.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,6 ----
  /* An experimental state machine, for tracking exposure of sensitive
     data (e.g. through logging).
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 19,37 ****
  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 "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #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"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 19,28 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** public:
*** 53,59 ****
    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;
  
    bool can_purge_p (state_t s) const final override;
--- 44,49 ----
*************** public:
*** 66,73 ****
  
  private:
    void warn_for_any_exposure (sm_context &sm_ctxt,
- 			      const supernode *node,
- 			      const gimple *stmt,
  			      tree arg) const;
  };
  
--- 56,61 ----
*************** public:
*** 115,128 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_new_state == m_sm.m_sensitive)
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 					diagnostic_event::NOUN_sensitive);
!     return diagnostic_event::meaning ();
    }
    bool
    describe_call_with_state (pretty_printer &pp,
--- 103,117 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
+     using event = diagnostics::paths::event;
+ 
      if (change.m_new_state == m_sm.m_sensitive)
!       return event::meaning (event::verb::acquire, event::noun::sensitive);
!     return event::meaning ();
    }
    bool
    describe_call_with_state (pretty_printer &pp,
*************** public:
*** 171,177 ****
  private:
    const sensitive_state_machine &m_sm;
    tree m_arg;
!   diagnostic_event_id_t m_first_sensitive_event;
  };
  
  /* sensitive_state_machine's ctor.  */
--- 160,166 ----
  private:
    const sensitive_state_machine &m_sm;
    tree m_arg;
!   diagnostics::paths::event_id_t m_first_sensitive_event;
  };
  
  /* sensitive_state_machine's ctor.  */
*************** sensitive_state_machine::sensitive_state
*** 188,203 ****
  
  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));
      }
  }
  
--- 177,190 ----
  
  void
  sensitive_state_machine::warn_for_any_exposure (sm_context &sm_ctxt,
  						tree arg) const
  {
!   if (sm_ctxt.get_state (arg) == m_sensitive)
      {
        tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
!       sm_ctxt.warn (arg,
! 		    std::make_unique<exposure_through_output_file> (*this,
! 								    diag_arg));
      }
  }
  
*************** sensitive_state_machine::warn_for_any_ex
*** 206,222 ****
  
  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")
--- 193,208 ----
  
  bool
  sensitive_state_machine::on_stmt (sm_context &sm_ctxt,
  				  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 (lhs, m_start, m_sensitive);
  	    return true;
  	  }
  	else if (is_named_call_p (callee_fndecl, "fprintf")
*************** sensitive_state_machine::on_stmt (sm_con
*** 226,239 ****
  	    for (unsigned idx = 1; idx < gimple_call_num_args (call); idx++)
  	      {
  		tree arg = gimple_call_arg (call, idx);
! 		warn_for_any_exposure (sm_ctxt, node, stmt, arg);
  	      }
  	    return true;
  	  }
! 	else if (is_named_call_p (callee_fndecl, "fwrite", call, 4))
  	  {
  	    tree arg = gimple_call_arg (call, 0);
! 	    warn_for_any_exposure (sm_ctxt, node, stmt, arg);
  	    return true;
  	  }
  	// TODO: ...etc.  This is just a proof-of-concept at this point.
--- 212,225 ----
  	    for (unsigned idx = 1; idx < gimple_call_num_args (call); idx++)
  	      {
  		tree arg = gimple_call_arg (call, idx);
! 		warn_for_any_exposure (sm_ctxt, arg);
  	      }
  	    return true;
  	  }
! 	else if (is_named_call_p (callee_fndecl, "fwrite", *call, 4))
  	  {
  	    tree arg = gimple_call_arg (call, 0);
! 	    warn_for_any_exposure (sm_ctxt, arg);
  	    return true;
  	  }
  	// TODO: ...etc.  This is just a proof-of-concept at this point.
*************** sensitive_state_machine::can_purge_p (st
*** 251,260 ****
  
  /* Internal interface to this file. */
  
! state_machine *
  make_sensitive_state_machine (logger *logger)
  {
!   return new sensitive_state_machine (logger);
  }
  
  } // namespace ana
--- 237,246 ----
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_sensitive_state_machine (logger *logger)
  {
!   return std::make_unique<sensitive_state_machine> (logger);
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-signal.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-signal.cc
*** gcc-15.2.0/gcc/analyzer/sm-signal.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-signal.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,7 ----
  /* An experimental state machine, for tracking bad calls from within
     signal handlers.
  
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 20,58 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #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"
! #include "analyzer/analyzer-logging.h"
! #include "analyzer/sm.h"
! #include "analyzer/pending-diagnostic.h"
  #include "sbitmap.h"
  #include "ordered-hash-map.h"
  #include "selftest.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
- #include "cfg.h"
- #include "gimple-iterator.h"
- #include "cgraph.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/diagnostic-manager.h"
- #include "shortest-paths.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
--- 20,47 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "diagnostics/event-id.h"
  #include "sbitmap.h"
  #include "ordered-hash-map.h"
  #include "selftest.h"
+ #include "cfg.h"
+ #include "gimple-iterator.h"
+ #include "cgraph.h"
+ #include "shortest-paths.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/sm.h"
+ #include "analyzer/pending-diagnostic.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/program-state.h"
  #include "analyzer/checker-path.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/diagnostic-manager.h"
  #include "analyzer/exploded-graph.h"
  #include "analyzer/function-set.h"
  #include "analyzer/analyzer-selftests.h"
*************** public:
*** 74,80 ****
    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;
  
    bool can_purge_p (state_t s) const final override;
--- 63,68 ----
*************** class signal_unsafe_call
*** 95,101 ****
    : public pending_diagnostic_subclass<signal_unsafe_call>
  {
  public:
!   signal_unsafe_call (const signal_state_machine &sm, const gcall *unsafe_call,
  		      tree unsafe_fndecl)
    : m_sm (sm), m_unsafe_call (unsafe_call), m_unsafe_fndecl (unsafe_fndecl)
    {
--- 83,89 ----
    : public pending_diagnostic_subclass<signal_unsafe_call>
  {
  public:
!   signal_unsafe_call (const signal_state_machine &sm, const gcall &unsafe_call,
  		      tree unsafe_fndecl)
    : m_sm (sm), m_unsafe_call (unsafe_call), m_unsafe_fndecl (unsafe_fndecl)
    {
*************** public:
*** 106,112 ****
  
    bool operator== (const signal_unsafe_call &other) const
    {
!     return m_unsafe_call == other.m_unsafe_call;
    }
  
    int get_controlling_option () const final override
--- 94,100 ----
  
    bool operator== (const signal_unsafe_call &other) const
    {
!     return &m_unsafe_call == &other.m_unsafe_call;
    }
  
    int get_controlling_option () const final override
*************** public:
*** 126,132 ****
  	   suggesting the replacement.  */
  	if (const char *replacement = get_replacement_fn ())
  	  {
! 	    location_t note_loc = gimple_location (m_unsafe_call);
  	    /* It would be nice to add a fixit, but the gimple call
  	       location covers the whole call expression.  It isn't
  	       currently possible to cut this down to just the call
--- 114,120 ----
  	   suggesting the replacement.  */
  	if (const char *replacement = get_replacement_fn ())
  	  {
! 	    location_t note_loc = gimple_location (&m_unsafe_call);
  	    /* It would be nice to add a fixit, but the gimple call
  	       location covers the whole call expression.  It isn't
  	       currently possible to cut this down to just the call
*************** public:
*** 170,176 ****
  
  private:
    const signal_state_machine &m_sm;
!   const gcall *m_unsafe_call;
    tree m_unsafe_fndecl;
  
    /* Returns a replacement function as text if it exists.  Currently
--- 158,164 ----
  
  private:
    const signal_state_machine &m_sm;
!   const gcall &m_unsafe_call;
    tree m_unsafe_fndecl;
  
    /* Returns a replacement function as text if it exists.  Currently
*************** private:
*** 184,190 ****
      if (id_equal ("exit", DECL_NAME (m_unsafe_fndecl)))
        return "_exit";
  
!     return NULL;
    }
  };
  
--- 172,178 ----
      if (id_equal ("exit", DECL_NAME (m_unsafe_fndecl)))
        return "_exit";
  
!     return nullptr;
    }
  };
  
*************** update_model_for_signal_handler (region_
*** 207,213 ****
    gcc_assert (model);
    /* Purge all state within MODEL.  */
    *model = region_model (model->get_manager ());
!   model->push_frame (handler_fun, NULL, NULL);
  }
  
  /* Custom exploded_edge info: entry into a signal-handler.  */
--- 195,201 ----
    gcc_assert (model);
    /* Purge all state within MODEL.  */
    *model = region_model (model->get_manager ());
!   model->push_frame (handler_fun, nullptr, nullptr, nullptr);
  }
  
  /* Custom exploded_edge info: entry into a signal-handler.  */
*************** public:
*** 232,245 ****
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge ATTRIBUTE_UNUSED)
      const final override
    {
      emission_path->add_event
!       (make_unique<precanned_custom_event>
!        (event_loc_info (UNKNOWN_LOCATION, NULL_TREE, 0),
! 	"later on,"
! 	" when the signal is delivered to the process"));
    }
  };
  
--- 220,234 ----
    }
  
    void add_events_to_path (checker_path *emission_path,
! 			   const exploded_edge &eedge ATTRIBUTE_UNUSED,
! 			   pending_diagnostic &)
      const final override
    {
      emission_path->add_event
!       (std::make_unique<precanned_custom_event>
!          (event_loc_info (UNKNOWN_LOCATION, NULL_TREE, 0),
! 	  "later on,"
! 	  " when the signal is delivered to the process"));
    }
  };
  
*************** public:
*** 269,275 ****
        = program_point::from_function_entry (*ext_state.get_model_manager (),
  					    eg->get_supergraph (),
  					    *handler_fun);
- 
      program_state state_entering_handler (ext_state);
      update_model_for_signal_handler (state_entering_handler.m_region_model,
  				     *handler_fun);
--- 258,263 ----
*************** public:
*** 280,288 ****
  						       state_entering_handler,
  						       src_enode);
      if (dst_enode)
!       eg->add_edge (src_enode, dst_enode, NULL, /*state_change (),*/
  		    true, /* assume does work  */
! 		    make_unique<signal_delivery_edge_info_t> ());
    }
  
    const signal_state_machine &m_sm;
--- 268,276 ----
  						       state_entering_handler,
  						       src_enode);
      if (dst_enode)
!       eg->add_edge (src_enode, dst_enode, nullptr, /*state_change (),*/
  		    true, /* assume does work  */
! 		    std::make_unique<signal_delivery_edge_info_t> ());
    }
  
    const signal_state_machine &m_sm;
*************** signal_unsafe_p (tree fndecl)
*** 335,350 ****
  
  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
--- 323,337 ----
  
  bool
  signal_state_machine::on_stmt (sm_context &sm_ctxt,
  			       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
*** 359,370 ****
    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;
--- 346,357 ----
    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 (NULL_TREE,
! 			    std::make_unique<signal_unsafe_call>
! 			     (*this, *call, callee_fndecl));
      }
  
    return false;
*************** signal_state_machine::can_purge_p (state
*** 380,389 ****
  
  /* Internal interface to this file. */
  
! state_machine *
  make_signal_state_machine (logger *logger)
  {
!   return new signal_state_machine (logger);
  }
  
  #if CHECKING_P
--- 367,376 ----
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_signal_state_machine (logger *logger)
  {
!   return std::make_unique<signal_state_machine> (logger);
  }
  
  #if CHECKING_P
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm-taint.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm-taint.cc
*** gcc-15.2.0/gcc/analyzer/sm-taint.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm-taint.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,7 ----
  /* A state machine for tracking "taint": unsanitized uses
     of data potentially under an attacker's control.
  
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 20,39 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #include "function.h"
! #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"
  #include "gimple-iterator.h"
  #include "ordered-hash-map.h"
  #include "cgraph.h"
--- 20,27 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "gimple-iterator.h"
  #include "ordered-hash-map.h"
  #include "cgraph.h"
*************** along with GCC; see the file COPYING3.
*** 42,47 ****
--- 30,39 ----
  #include "stringpool.h"
  #include "attribs.h"
  #include "fold-const.h"
+ #include "diagnostics/sarif-sink.h"
+ #include "gcc-urlifier.h"
+ 
+ #include "analyzer/analyzer-logging.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 51,58 ****
  #include "analyzer/program-state.h"
  #include "analyzer/pending-diagnostic.h"
  #include "analyzer/constraint-manager.h"
- #include "diagnostic-format-sarif.h"
- #include "gcc-urlifier.h"
  
  #if ENABLE_ANALYZER
  
--- 43,48 ----
*************** public:
*** 112,129 ****
    }
  
    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,
  			  const bounded_ranges &ranges) const final override;
  
--- 102,114 ----
*************** public:
*** 135,149 ****
  
  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:
--- 120,131 ----
  
  private:
    void check_control_flow_arg_for_taint (sm_context &sm_ctxt,
  					 tree expr) const;
  
    void check_for_tainted_size_arg (sm_context &sm_ctxt,
! 				   const gcall &call,
  				   tree callee_fndecl) const;
    void check_for_tainted_divisor (sm_context &sm_ctxt,
  				  const gassign *assign) const;
  
  public:
*************** public:
*** 219,238 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_new_state == m_sm.m_tainted)
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 					diagnostic_event::NOUN_taint);
!     return diagnostic_event::meaning ();
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const override
    {
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/taint_diagnostic/"
      props.set (PROPERTY_PREFIX "arg", tree_to_json (m_arg));
      props.set_string (PROPERTY_PREFIX "has_bounds",
--- 201,222 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
+     using event = diagnostics::paths::event;
      if (change.m_new_state == m_sm.m_tainted)
!       return event::meaning (event::verb::acquire,
! 			     event::noun::taint);
!     return event::meaning ();
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const override
    {
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/taint_diagnostic/"
      props.set (PROPERTY_PREFIX "arg", tree_to_json (m_arg));
      props.set_string (PROPERTY_PREFIX "has_bounds",
*************** public:
*** 505,515 ****
  	}
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const final override
    {
      taint_diagnostic::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/tainted_offset/"
      props.set (PROPERTY_PREFIX "offset", m_offset->to_json ());
  #undef PROPERTY_PREFIX
--- 489,500 ----
  	}
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
      taint_diagnostic::maybe_add_sarif_properties (result_obj);
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/tainted_offset/"
      props.set (PROPERTY_PREFIX "offset", m_offset->to_json ());
  #undef PROPERTY_PREFIX
*************** public:
*** 874,884 ****
  	}
    }
  
!   void maybe_add_sarif_properties (sarif_object &result_obj)
      const final override
    {
      taint_diagnostic::maybe_add_sarif_properties (result_obj);
!     sarif_property_bag &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/tainted_allocation_size/"
      props.set (PROPERTY_PREFIX "size_in_bytes", m_size_in_bytes->to_json ());
  #undef PROPERTY_PREFIX
--- 859,870 ----
  	}
    }
  
!   void
!   maybe_add_sarif_properties (diagnostics::sarif_object &result_obj)
      const final override
    {
      taint_diagnostic::maybe_add_sarif_properties (result_obj);
!     auto &props = result_obj.get_or_create_properties ();
  #define PROPERTY_PREFIX "gcc/analyzer/tainted_allocation_size/"
      props.set (PROPERTY_PREFIX "size_in_bytes", m_size_in_bytes->to_json ());
  #undef PROPERTY_PREFIX
*************** public:
*** 944,950 ****
  	 macro when we're describing them.  */
        return linemap_resolve_location (line_table, loc,
  				       LRK_SPELLING_LOCATION,
! 				       NULL);
      else
        return pending_diagnostic::fixup_location (loc, primary);
    }
--- 930,936 ----
  	 macro when we're describing them.  */
        return linemap_resolve_location (line_table, loc,
  				       LRK_SPELLING_LOCATION,
! 				       nullptr);
      else
        return pending_diagnostic::fixup_location (loc, primary);
    }
*************** taint_state_machine::alt_get_inherited_s
*** 1070,1081 ****
  
  	  case BIT_AND_EXPR:
  	  case RSHIFT_EXPR:
! 	    return NULL;
  	  }
        }
        break;
      }
!   return NULL;
  }
  
  /* Return true iff FNDECL should be considered to be an assertion failure
--- 1056,1067 ----
  
  	  case BIT_AND_EXPR:
  	  case RSHIFT_EXPR:
! 	    return nullptr;
  	  }
        }
        break;
      }
!   return nullptr;
  }
  
  /* Return true iff FNDECL should be considered to be an assertion failure
*************** is_assertion_failure_handler_p (tree fnd
*** 1095,1130 ****
  
  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
--- 1081,1115 ----
  
  bool
  taint_state_machine::on_stmt (sm_context &sm_ctxt,
  			       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 (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 (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, *call, callee_fndecl);
  
  	if (is_assertion_failure_handler_p (callee_fndecl)
  	    && sm_ctxt.get_global_state () == m_tainted_control_flow)
  	  {
! 	    sm_ctxt.warn (NULL_TREE,
! 			  std::make_unique<tainted_assertion> (*this, NULL_TREE,
! 							       callee_fndecl));
  	  }
        }
    // TODO: ...etc; many other sources of untrusted data
*************** taint_state_machine::on_stmt (sm_context
*** 1147,1153 ****
  	case ROUND_MOD_EXPR:
  	case RDIV_EXPR:
  	case EXACT_DIV_EXPR:
! 	  check_for_tainted_divisor (sm_ctxt, node, assign);
  	  break;
  	}
      }
--- 1132,1138 ----
  	case ROUND_MOD_EXPR:
  	case RDIV_EXPR:
  	case EXACT_DIV_EXPR:
! 	  check_for_tainted_divisor (sm_ctxt, assign);
  	  break;
  	}
      }
*************** taint_state_machine::on_stmt (sm_context
*** 1158,1165 ****
  	 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));
      }
  
    if (const gswitch *switch_ = dyn_cast <const gswitch *> (stmt))
--- 1143,1150 ----
  	 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, gimple_cond_lhs (cond));
!       check_control_flow_arg_for_taint (sm_ctxt, gimple_cond_rhs (cond));
      }
  
    if (const gswitch *switch_ = dyn_cast <const gswitch *> (stmt))
*************** taint_state_machine::on_stmt (sm_context
*** 1168,1174 ****
  	 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_));
      }
  
--- 1153,1159 ----
  	 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,
  					gimple_switch_index (switch_));
      }
  
*************** taint_state_machine::on_stmt (sm_context
*** 1181,1192 ****
  
  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);
--- 1166,1176 ----
  
  void
  taint_state_machine::check_control_flow_arg_for_taint (sm_context &sm_ctxt,
  						       tree expr) const
  {
    const region_model *old_model = sm_ctxt.get_old_region_model ();
!   const svalue *sval = old_model->get_rvalue (expr, nullptr);
!   state_t state = sm_ctxt.get_state (sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (expr), &b))
      sm_ctxt.set_global_state (m_tainted_control_flow);
*************** taint_state_machine::check_control_flow_
*** 1198,1212 ****
  
  void
  taint_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
  {
-   if (stmt == NULL)
-     return;
- 
    if (lhs->get_kind () == SK_UNKNOWN
        || rhs->get_kind () == SK_UNKNOWN)
      {
--- 1182,1191 ----
*************** taint_state_machine::on_condition (sm_co
*** 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:
--- 1219,1228 ----
  	/* (LHS >= RHS) or (LHS > RHS)
  	   LHS gains a lower bound
  	   RHS gains an upper bound.  */
! 	sm_ctxt.on_transition (lhs, m_tainted, m_has_lb);
! 	sm_ctxt.on_transition (lhs, m_has_ub, m_stop);
! 	sm_ctxt.on_transition (rhs, m_tainted, m_has_ub);
! 	sm_ctxt.on_transition (rhs, m_has_lb, m_stop);
        }
        break;
      case LE_EXPR:
*************** taint_state_machine::on_condition (sm_co
*** 1281,1292 ****
  		       both conditions simultaneously (we'd have a transition
  		       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;
  		  }
  	  }
--- 1260,1270 ----
  		       both conditions simultaneously (we'd have a transition
  		       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 (inner_lhs);
  		    if (old_state == m_tainted
  			|| old_state == m_has_lb
  			|| old_state == m_has_ub)
! 		      sm_ctxt.set_next_state (inner_lhs, m_stop);
  		    return;
  		  }
  	  }
*************** taint_state_machine::on_condition (sm_co
*** 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:
--- 1272,1281 ----
  	/* (LHS <= RHS) or (LHS < RHS)
  	   LHS gains an upper bound
  	   RHS gains a lower bound.  */
! 	sm_ctxt.on_transition (lhs, m_tainted, m_has_ub);
! 	sm_ctxt.on_transition (lhs, m_has_lb, m_stop);
! 	sm_ctxt.on_transition (rhs, m_tainted, m_has_lb);
! 	sm_ctxt.on_transition (rhs, m_has_ub, m_stop);
        }
        break;
      default:
*************** taint_state_machine::on_condition (sm_co
*** 1312,1319 ****
  
  void
  taint_state_machine::on_bounded_ranges (sm_context &sm_ctxt,
- 					const supernode *,
- 					const gimple *stmt,
  					const svalue &sval,
  					const bounded_ranges &ranges) const
  {
--- 1290,1295 ----
*************** taint_state_machine::on_bounded_ranges (
*** 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
--- 1317,1336 ----
  
    /* We have new bounds from the ranges; combine them with any
       existing bounds on SVAL.  */
!   state_t old_state = sm_ctxt.get_state (&sval);
    if (old_state == m_tainted)
      {
        if (ranges_have_lb && ranges_have_ub)
! 	sm_ctxt.set_next_state (&sval, m_stop);
        else if (ranges_have_lb)
! 	sm_ctxt.set_next_state (&sval, m_has_lb);
        else if (ranges_have_ub)
! 	sm_ctxt.set_next_state (&sval, m_has_ub);
      }
    else if (old_state == m_has_ub && ranges_have_lb)
!     sm_ctxt.set_next_state (&sval, m_stop);
    else if (old_state == m_has_lb && ranges_have_ub)
!     sm_ctxt.set_next_state (&sval, m_stop);
  }
  
  bool
*************** taint_state_machine::combine_states (sta
*** 1432,1439 ****
  
  void
  taint_state_machine::check_for_tainted_size_arg (sm_context &sm_ctxt,
! 						 const supernode *node,
! 						 const gcall *call,
  						 tree callee_fndecl) const
  {
    tree fntype = TREE_TYPE (callee_fndecl);
--- 1408,1414 ----
  
  void
  taint_state_machine::check_for_tainted_size_arg (sm_context &sm_ctxt,
! 						 const gcall &call,
  						 tree callee_fndecl) const
  {
    tree fntype = TREE_TYPE (callee_fndecl);
*************** taint_state_machine::check_for_tainted_s
*** 1464,1480 ****
        if (access->sizarg == UINT_MAX)
  	continue;
  
!       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,
--- 1439,1455 ----
        if (access->sizarg == UINT_MAX)
  	continue;
  
!       tree size_arg = gimple_call_arg (&call, access->sizarg);
  
!       state_t state = sm_ctxt.get_state (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 (size_arg,
! 			std::make_unique<tainted_access_attrib_size>
  			(*this, diag_size, b,
  			 callee_fndecl,
  			 access->sizarg,
*************** taint_state_machine::check_for_tainted_s
*** 1488,1494 ****
  
  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 ();
--- 1463,1468 ----
*************** taint_state_machine::check_for_tainted_d
*** 1502,1510 ****
    if (!INTEGRAL_TYPE_P (TREE_TYPE (divisor_expr)))
      return;
  
!   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))
      {
--- 1476,1484 ----
    if (!INTEGRAL_TYPE_P (TREE_TYPE (divisor_expr)))
      return;
  
!   const svalue *divisor_sval = old_model->get_rvalue (divisor_expr, nullptr);
  
!   state_t state = sm_ctxt.get_state (divisor_sval);
    enum bounds b;
    if (get_taint (state, TREE_TYPE (divisor_expr), &b))
      {
*************** taint_state_machine::check_for_tainted_d
*** 1518,1526 ****
  	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);
      }
  }
  
--- 1492,1501 ----
  	return;
  
        tree diag_divisor = sm_ctxt.get_diagnostic_tree (divisor_expr);
!       sm_ctxt.warn
! 	(divisor_expr,
! 	 std::make_unique <tainted_divisor> (*this, diag_divisor, b));
!       sm_ctxt.set_next_state (divisor_sval, m_stop);
      }
  }
  
*************** taint_state_machine::check_for_tainted_d
*** 1528,1537 ****
  
  /* Internal interface to this file. */
  
! state_machine *
  make_taint_state_machine (logger *logger)
  {
!   return new taint_state_machine (logger);
  }
  
  /* A closed concrete range.  */
--- 1503,1512 ----
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_taint_state_machine (logger *logger)
  {
!   return std::make_unique<taint_state_machine> (logger);
  }
  
  /* A closed concrete range.  */
*************** region_model::check_region_for_taint (co
*** 1682,1689 ****
  		if (index_can_be_out_of_bounds_p (element_reg))
  		  {
  		    tree arg = get_representative_tree (index);
! 		    ctxt->warn (make_unique<tainted_array_index> (taint_sm,
! 								  arg, b));
  		  }
  		else if (ctxt->get_logger ())
  		  ctxt->get_logger ()->log ("rejecting tainted_array_index as"
--- 1657,1664 ----
  		if (index_can_be_out_of_bounds_p (element_reg))
  		  {
  		    tree arg = get_representative_tree (index);
! 		    ctxt->warn (std::make_unique<tainted_array_index> (taint_sm,
! 								       arg, b));
  		  }
  		else if (ctxt->get_logger ())
  		  ctxt->get_logger ()->log ("rejecting tainted_array_index as"
*************** region_model::check_region_for_taint (co
*** 1709,1716 ****
  	    if (taint_sm.get_taint (state, effective_type, &b))
  	      {
  		tree arg = get_representative_tree (offset);
! 		ctxt->warn (make_unique<tainted_offset> (taint_sm, arg, b,
! 							 offset));
  	      }
  	  }
  	  break;
--- 1684,1691 ----
  	    if (taint_sm.get_taint (state, effective_type, &b))
  	      {
  		tree arg = get_representative_tree (offset);
! 		ctxt->warn (std::make_unique<tainted_offset> (taint_sm, arg, b,
! 							      offset));
  	      }
  	  }
  	  break;
*************** region_model::check_region_for_taint (co
*** 1727,1733 ****
  	    if (taint_sm.get_taint (state, size_sval->get_type (), &b))
  	      {
  		tree arg = get_representative_tree (size_sval);
! 		ctxt->warn (make_unique<tainted_size> (taint_sm, arg, b));
  	      }
  	  }
  	  break;
--- 1702,1708 ----
  	    if (taint_sm.get_taint (state, size_sval->get_type (), &b))
  	      {
  		tree arg = get_representative_tree (size_sval);
! 		ctxt->warn (std::make_unique<tainted_size> (taint_sm, arg, b));
  	      }
  	  }
  	  break;
*************** region_model::check_dynamic_size_for_tai
*** 1773,1779 ****
    if (taint_sm.get_taint (state, size_in_bytes->get_type (), &b))
      {
        tree arg = get_representative_tree (size_in_bytes);
!       ctxt->warn (make_unique<tainted_allocation_size>
  		    (taint_sm, arg, size_in_bytes, b, mem_space));
      }
  }
--- 1748,1754 ----
    if (taint_sm.get_taint (state, size_in_bytes->get_type (), &b))
      {
        tree arg = get_representative_tree (size_in_bytes);
!       ctxt->warn (std::make_unique<tainted_allocation_size>
  		    (taint_sm, arg, size_in_bytes, b, mem_space));
      }
  }
*************** region_model::mark_as_tainted (const sva
*** 1802,1808 ****
    if (!ext_state)
      return;
  
!   smap->set_state (this, sval, taint_sm.m_tainted, NULL, *ext_state);
  }
  
  /* Return true if SVAL could possibly be attacker-controlled.  */
--- 1777,1783 ----
    if (!ext_state)
      return;
  
!   smap->set_state (this, sval, taint_sm.m_tainted, nullptr, *ext_state);
  }
  
  /* Return true if SVAL could possibly be attacker-controlled.  */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm.cc gcc-16.1.0-RC-20260423/gcc/analyzer/sm.cc
*** gcc-15.2.0/gcc/analyzer/sm.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm.cc	Thu Apr 23 11:07:32 2026
***************
*** 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.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,38 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "options.h"
! #include "function.h"
! #include "diagnostic-core.h"
! #include "pretty-print.h"
! #include "diagnostic.h"
  #include "tree-diagnostic.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/call-string.h"
--- 18,28 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #define INCLUDE_LIST
! #include "analyzer/common.h"
! 
  #include "tree-diagnostic.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/call-string.h"
*************** along with GCC; see the file COPYING3.
*** 41,47 ****
  #include "analyzer/svalue.h"
  #include "analyzer/program-state.h"
  #include "analyzer/pending-diagnostic.h"
- #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 31,36 ----
*************** state_machine::state::to_json () const
*** 83,89 ****
    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.  */
--- 72,78 ----
    pretty_printer pp;
    pp_format_decoder (&pp) = default_tree_printer;
    dump_to_pp (&pp);
!   return std::make_unique<json::string> (pp_formatted_text (&pp));
  }
  
  /* class state_machine.  */
*************** state_machine::get_state_by_name (const
*** 127,135 ****
  /* Base implementation of state_machine::on_leak.  */
  
  std::unique_ptr<pending_diagnostic>
! state_machine::on_leak (tree var ATTRIBUTE_UNUSED) const
  {
!   return NULL;
  }
  
  /* Dump a multiline representation of this state machine to PP.  */
--- 116,126 ----
  /* Base implementation of state_machine::on_leak.  */
  
  std::unique_ptr<pending_diagnostic>
! state_machine::on_leak (tree var ATTRIBUTE_UNUSED,
! 			const program_state *old_state ATTRIBUTE_UNUSED,
! 			const program_state *new_state ATTRIBUTE_UNUSED) const
  {
!   return nullptr;
  }
  
  /* Dump a multiline representation of this state machine to PP.  */
*************** state_machine::dump_to_pp (pretty_printe
*** 154,164 ****
  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)
--- 145,155 ----
  std::unique_ptr<json::object>
  state_machine::to_json () const
  {
!   auto sm_obj = std::make_unique<json::object> ();
  
    sm_obj->set_string ("name", m_name);
    {
!     auto states_arr = std::make_unique<json::array> ();
      unsigned i;
      state *s;
      FOR_EACH_VEC_ELT (m_states, i, s)
*************** state_machine::to_json () const
*** 169,174 ****
--- 160,180 ----
    return sm_obj;
  }
  
+ void
+ state_machine::add_state_to_state_graph (analyzer_state_graph &/*out_state_graph*/,
+ 					 const svalue &/*sval*/,
+ 					 state_machine::state_t /*state*/) const
+ {
+   // no-op
+ }
+ 
+ void
+ state_machine::add_global_state_to_state_graph (analyzer_state_graph &/*out_state_graph*/,
+ 						state_machine::state_t /*state*/) const
+ {
+   // no-op
+ }
+ 
  /* class sm_context.  */
  
  const region_model *
*************** sm_context::get_old_region_model () cons
*** 177,215 ****
    if (const program_state *old_state = get_old_program_state ())
      return old_state->m_region_model;
    else
!     return NULL;
  }
  
  /* Create instances of the various state machines, each using LOGGER,
!    and populate OUT with them.  */
  
! void
! make_checkers (auto_delete_vec <state_machine> &out, logger *logger)
  {
!   out.safe_push (make_malloc_state_machine (logger));
!   out.safe_push (make_fileptr_state_machine (logger));
!   out.safe_push (make_fd_state_machine (logger));
!   out.safe_push (make_taint_state_machine (logger));
!   out.safe_push (make_sensitive_state_machine (logger));
!   out.safe_push (make_signal_state_machine (logger));
!   out.safe_push (make_va_list_state_machine (logger));
  
    /* We only attempt to run the pattern tests if it might have been manually
       enabled (for DejaGnu purposes).  */
    if (flag_analyzer_checker)
!     out.safe_push (make_pattern_test_state_machine (logger));
  
    if (flag_analyzer_checker)
      {
!       unsigned read_index, write_index;
!       state_machine **sm;
! 
!       /* TODO: this leaks the machines
! 	 Would be nice to log the things that were removed.  */
!       VEC_ORDERED_REMOVE_IF (out, read_index, write_index, sm,
! 			     0 != strcmp (flag_analyzer_checker,
! 					  (*sm)->get_name ()));
      }
  }
  
  } // namespace ana
--- 183,226 ----
    if (const program_state *old_state = get_old_program_state ())
      return old_state->m_region_model;
    else
!     return nullptr;
  }
  
  /* Create instances of the various state machines, each using LOGGER,
!    returning a vector of them.  */
  
! std::vector<std::unique_ptr<state_machine>>
! make_checkers (logger *logger)
  {
!   /* Start with a list so that we can filter it.  */
!   std::list<std::unique_ptr<state_machine>> out;
!   out.push_back (make_malloc_state_machine (logger));
!   out.push_back (make_fileptr_state_machine (logger));
!   out.push_back (make_fd_state_machine (logger));
!   out.push_back (make_taint_state_machine (logger));
!   out.push_back (make_sensitive_state_machine (logger));
!   out.push_back (make_signal_state_machine (logger));
!   out.push_back (make_va_list_state_machine (logger));
  
    /* We only attempt to run the pattern tests if it might have been manually
       enabled (for DejaGnu purposes).  */
    if (flag_analyzer_checker)
!     out.push_back (make_pattern_test_state_machine (logger));
  
    if (flag_analyzer_checker)
      {
!       out.remove_if ([] (auto &sm)
! 		     {
! 		       return 0 != strcmp (flag_analyzer_checker,
! 					   sm->get_name ());
! 		     });
      }
+ 
+   std::vector<std::unique_ptr<state_machine>> out_vec;
+   for (auto &iter: out)
+     out_vec.push_back (std::move (iter));
+ 
+   return out_vec;
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/sm.h gcc-16.1.0-RC-20260423/gcc/analyzer/sm.h
*** gcc-15.2.0/gcc/analyzer/sm.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/sm.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Modeling API uses and misuses via state machines.
!    Copyright (C) 2019-2026 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_SM_H
  #define GCC_ANALYZER_SM_H
  
+ #include "analyzer/analyzer-logging.h"
+ 
  /* Utility functions for use by state machines.  */
  
  namespace ana {
*************** namespace ana {
*** 28,33 ****
--- 30,36 ----
  class state_machine;
  class sm_context;
  class pending_diagnostic;
+ class analyzer_state_graph;
  
  extern bool any_pointer_p (tree expr);
  extern bool any_pointer_p (const svalue *sval);
*************** public:
*** 75,81 ****
  			   const svalue *,
  			   const extrinsic_state &) const
    {
!     return NULL;
    }
  
    virtual bool
--- 78,84 ----
  			   const svalue *,
  			   const extrinsic_state &) const
    {
!     return nullptr;
    }
  
    virtual bool
*************** public:
*** 95,113 ****
  
    /* 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,
  			     enum tree_code op ATTRIBUTE_UNUSED,
  			     const svalue *rhs ATTRIBUTE_UNUSED) const
--- 98,118 ----
  
    /* Return true if STMT is a function call recognized by this sm.  */
    virtual bool on_stmt (sm_context &sm_ctxt,
  			const gimple *stmt) const = 0;
  
    virtual void on_phi (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  		       const gphi *phi ATTRIBUTE_UNUSED,
  		       tree rhs ATTRIBUTE_UNUSED) const
    {
    }
  
+   virtual void
+   check_call_preconditions (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
+ 			    const call_details &cd ATTRIBUTE_UNUSED) const
+   {
+   }
+ 
    virtual void on_condition (sm_context &sm_ctxt ATTRIBUTE_UNUSED,
  			     const svalue *lhs ATTRIBUTE_UNUSED,
  			     enum tree_code op ATTRIBUTE_UNUSED,
  			     const svalue *rhs ATTRIBUTE_UNUSED) const
*************** public:
*** 116,123 ****
  
    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,
  		     const bounded_ranges &ranges ATTRIBUTE_UNUSED) const
    {
--- 121,126 ----
*************** public:
*** 136,142 ****
  
    /* Called when VAR leaks (and !can_purge_p).  */
    virtual std::unique_ptr<pending_diagnostic>
!   on_leak (tree var ATTRIBUTE_UNUSED) const;
  
    /* Return true if S should be reset to "start" for values passed (or reachable
       from) calls to unknown functions.  IS_MUTABLE is true for pointers as
--- 139,147 ----
  
    /* Called when VAR leaks (and !can_purge_p).  */
    virtual std::unique_ptr<pending_diagnostic>
!   on_leak (tree var ATTRIBUTE_UNUSED,
! 	   const program_state *old_state,
! 	   const program_state *new_state) const;
  
    /* Return true if S should be reset to "start" for values passed (or reachable
       from) calls to unknown functions.  IS_MUTABLE is true for pointers as
*************** public:
*** 152,158 ****
    }
  
    /* Attempt to get a state for the merger of STATE_A and STATE_B,
!      or return NULL if merging shouldn't occur, so that differences
       between sm-state will lead to separate exploded nodes.
  
       Most state machines will only merge equal states, but can
--- 157,163 ----
    }
  
    /* Attempt to get a state for the merger of STATE_A and STATE_B,
!      or return nullptr if merging shouldn't occur, so that differences
       between sm-state will lead to separate exploded nodes.
  
       Most state machines will only merge equal states, but can
*************** public:
*** 173,179 ****
  				    state_t state_b ATTRIBUTE_UNUSED) const
    {
      /* By default, non-equal sm states should inhibit merger of enodes.  */
!     return NULL;
    }
  
    void validate (state_t s) const;
--- 178,184 ----
  				    state_t state_b ATTRIBUTE_UNUSED) const
    {
      /* By default, non-equal sm states should inhibit merger of enodes.  */
!     return nullptr;
    }
  
    void validate (state_t s) const;
*************** public:
*** 184,189 ****
--- 189,203 ----
  
    state_t get_start_state () const { return m_start; }
  
+   virtual void
+   add_state_to_state_graph (analyzer_state_graph &out_state_graph,
+ 			    const svalue &sval,
+ 			    state_machine::state_t state) const;
+ 
+   virtual void
+   add_global_state_to_state_graph (analyzer_state_graph &out_state_graph,
+ 				   state_machine::state_t state) const;
+ 
  protected:
    state_t add_state (const char *name);
    state_t add_custom_state (state *s)
*************** public:
*** 224,230 ****
  };
  
  /* Abstract base class giving an interface for the state machine to call
!    the checker engine, at a particular stmt.  */
  
  class sm_context
  {
--- 238,244 ----
  };
  
  /* Abstract base class giving an interface for the state machine to call
!    the checker engine, at a particular code location.  */
  
  class sm_context
  {
*************** public:
*** 235,294 ****
       Use in preference to gimple_call_fndecl (and gimple_call_addr_fndecl),
       since it can look through function pointer assignments and
       other callback handling.  */
!   virtual tree get_fndecl_for_call (const gcall *call) = 0;
  
-   /* Get the old state of VAR at STMT.  */
-   virtual state_machine::state_t get_state (const gimple *stmt,
- 					    tree var) = 0;
-   virtual state_machine::state_t get_state (const gimple *stmt,
- 					    const svalue *) = 0;
    /* Set the next state of VAR to be TO, recording the "origin" of the
!      state as ORIGIN.
!      Use STMT for location information.  */
!   virtual void set_next_state (const gimple *stmt,
! 			       tree var,
  			       state_machine::state_t to,
  			       tree origin = NULL_TREE) = 0;
!   virtual void set_next_state (const gimple *stmt,
! 			       const svalue *var,
  			       state_machine::state_t to,
  			       tree origin = NULL_TREE) = 0;
  
    /* Called by state_machine in response to pattern matches:
       if VAR is in state FROM, transition it to state TO, potentially
!      recording the "origin" of the state as ORIGIN.
!      Use NODE and STMT for location information.  */
!   void on_transition (const supernode *node ATTRIBUTE_UNUSED,
! 		      const gimple *stmt,
! 		      tree var,
  		      state_machine::state_t from,
  		      state_machine::state_t to,
  		      tree origin = NULL_TREE)
    {
!     state_machine::state_t current = get_state (stmt, var);
      if (current == from)
!       set_next_state (stmt, var, to, origin);
    }
  
!   void on_transition (const supernode *node ATTRIBUTE_UNUSED,
! 		      const gimple *stmt,
! 		      const svalue *var,
  		      state_machine::state_t from,
  		      state_machine::state_t to,
  		      tree origin = NULL_TREE)
    {
!     state_machine::state_t current = get_state (stmt, var);
      if (current == from)
!       set_next_state (stmt, var, to, origin);
    }
  
    /* Called by state_machine in response to pattern matches:
!      issue a diagnostic D using NODE and STMT for location information.  */
!   virtual void warn (const supernode *node, const gimple *stmt,
! 		     tree var,
  		     std::unique_ptr<pending_diagnostic> d) = 0;
!   virtual void warn (const supernode *node, const gimple *stmt,
! 		     const svalue *var,
  		     std::unique_ptr<pending_diagnostic> d) = 0;
  
    /* For use when generating trees when creating pending_diagnostics, so that
--- 249,297 ----
       Use in preference to gimple_call_fndecl (and gimple_call_addr_fndecl),
       since it can look through function pointer assignments and
       other callback handling.  */
!   virtual tree get_fndecl_for_call (const gcall &call) = 0;
! 
!   /* Get the old state of VAR.  */
!   virtual state_machine::state_t get_state (tree var) = 0;
!   virtual state_machine::state_t get_state (const svalue *) = 0;
  
    /* Set the next state of VAR to be TO, recording the "origin" of the
!      state as ORIGIN.  */
!   virtual void set_next_state (tree var,
  			       state_machine::state_t to,
  			       tree origin = NULL_TREE) = 0;
!   virtual void set_next_state (const svalue *var,
  			       state_machine::state_t to,
  			       tree origin = NULL_TREE) = 0;
  
    /* Called by state_machine in response to pattern matches:
       if VAR is in state FROM, transition it to state TO, potentially
!      recording the "origin" of the state as ORIGIN.  */
!   void on_transition (tree var,
  		      state_machine::state_t from,
  		      state_machine::state_t to,
  		      tree origin = NULL_TREE)
    {
!     state_machine::state_t current = get_state (var);
      if (current == from)
!       set_next_state (var, to, origin);
    }
  
!   void on_transition (const svalue *var,
  		      state_machine::state_t from,
  		      state_machine::state_t to,
  		      tree origin = NULL_TREE)
    {
!     state_machine::state_t current = get_state (var);
      if (current == from)
!       set_next_state (var, to, origin);
    }
  
    /* Called by state_machine in response to pattern matches:
!      issue a diagnostic D about VAR.  */
!   virtual void warn (tree var,
  		     std::unique_ptr<pending_diagnostic> d) = 0;
!   virtual void warn (const svalue *var,
  		     std::unique_ptr<pending_diagnostic> d) = 0;
  
    /* For use when generating trees when creating pending_diagnostics, so that
*************** public:
*** 318,324 ****
  
    virtual path_context *get_path_context () const
    {
!     return NULL;
    }
  
    /* Are we handling an external function with unknown side effects?  */
--- 321,327 ----
  
    virtual path_context *get_path_context () const
    {
!     return nullptr;
    }
  
    /* Are we handling an external function with unknown side effects?  */
*************** public:
*** 329,334 ****
--- 332,340 ----
  
    const region_model *get_old_region_model () const;
  
+   /* Get the location a diagnostic would be emitted at.  */
+   virtual location_t get_emission_location () const = 0;
+ 
  protected:
    sm_context (int sm_idx, const state_machine &sm)
    : m_sm_idx (sm_idx), m_sm (sm) {}
*************** protected:
*** 341,357 ****
  /* The various state_machine subclasses are hidden in their respective
     implementation files.  */
  
! extern void make_checkers (auto_delete_vec <state_machine> &out,
! 			   logger *logger);
  
! extern state_machine *make_malloc_state_machine (logger *logger);
! extern state_machine *make_fileptr_state_machine (logger *logger);
! extern state_machine *make_taint_state_machine (logger *logger);
! extern state_machine *make_sensitive_state_machine (logger *logger);
! extern state_machine *make_signal_state_machine (logger *logger);
! extern state_machine *make_pattern_test_state_machine (logger *logger);
! extern state_machine *make_va_list_state_machine (logger *logger);
! extern state_machine *make_fd_state_machine (logger *logger);
  
  } // namespace ana
  
--- 347,363 ----
  /* The various state_machine subclasses are hidden in their respective
     implementation files.  */
  
! extern std::vector<std::unique_ptr<state_machine>>
! make_checkers (logger *logger);
  
! extern std::unique_ptr<state_machine> make_malloc_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_fileptr_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_taint_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_sensitive_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_signal_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_pattern_test_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_va_list_state_machine (logger *);
! extern std::unique_ptr<state_machine> make_fd_state_machine (logger *);
  
  } // namespace ana
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/state-purge.cc gcc-16.1.0-RC-20260423/gcc/analyzer/state-purge.cc
*** gcc-15.2.0/gcc/analyzer/state-purge.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/state-purge.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,43 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
  #include "timevar.h"
! #include "tree-ssa-alias.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "stringpool.h"
  #include "tree-vrp.h"
  #include "gimple-ssa.h"
  #include "tree-ssanames.h"
  #include "tree-phinodes.h"
  #include "options.h"
  #include "ssa-iterators.h"
! #include "diagnostic-core.h"
! #include "gimple-pretty-print.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-point.h"
--- 18,39 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #define INCLUDE_SET
! #include "analyzer/common.h"
! 
  #include "timevar.h"
! #include "gimple-pretty-print.h"
  #include "tree-vrp.h"
  #include "gimple-ssa.h"
+ #include "stringpool.h"
  #include "tree-ssanames.h"
  #include "tree-phinodes.h"
  #include "options.h"
  #include "ssa-iterators.h"
! #include "gimple-iterator.h"
! #include "gimple-walk.h"
! #include "cgraph.h"
! 
  #include "analyzer/call-string.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/program-point.h"
*************** along with GCC; see the file COPYING3.
*** 45,52 ****
  #include "analyzer/state-purge.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
- #include "gimple-walk.h"
- #include "cgraph.h"
  
  #if ENABLE_ANALYZER
  
--- 41,46 ----
*************** get_candidate_for_purging (tree node)
*** 82,100 ****
  }
  
  /* Class-based handler for walk_stmt_load_store_addr_ops at a particular
!    function_point, for populating the worklists within a state_purge_map.  */
  
  class gimple_op_visitor : public log_user
  {
  public:
    gimple_op_visitor (state_purge_map *map,
! 		     const function_point &point,
! 		     const function &fun)
    : log_user (map->get_logger ()),
      m_map (map),
!     m_point (point),
!     m_fun (fun)
!   {}
  
    bool on_load (gimple *stmt, tree base, tree op)
    {
--- 76,95 ----
  }
  
  /* Class-based handler for walk_stmt_load_store_addr_ops at a particular
!    ana::operation, for populating the worklists within a state_purge_map.  */
  
  class gimple_op_visitor : public log_user
  {
  public:
    gimple_op_visitor (state_purge_map *map,
! 		     const superedge &sedge)
    : log_user (map->get_logger ()),
      m_map (map),
!     m_sedge (sedge),
!     m_fun (sedge.m_src->get_function ())
!   {
!     gcc_assert (m_fun);
!   }
  
    bool on_load (gimple *stmt, tree base, tree op)
    {
*************** private:
*** 150,178 ****
      gcc_assert (get_candidate_for_purging (decl) == decl);
      state_purge_per_decl &data
        = get_or_create_data_for_decl (decl);
!     data.add_needed_at (m_point);
! 
!     /* Handle calls: if we're seeing a use at a call, then add a use at the
!        "after-supernode" point (in case of interprocedural call superedges).  */
!     if (m_point.final_stmt_p ())
!       data.add_needed_at (m_point.get_next ());
    }
  
    void add_pointed_to (tree decl)
    {
      gcc_assert (get_candidate_for_purging (decl) == decl);
!     get_or_create_data_for_decl (decl).add_pointed_to_at (m_point);
    }
  
    state_purge_per_decl &
    get_or_create_data_for_decl (tree decl)
    {
!     return m_map->get_or_create_data_for_decl (m_fun, decl);
    }
  
    state_purge_map *m_map;
!   const function_point &m_point;
!   const function &m_fun;
  };
  
  static bool
--- 145,168 ----
      gcc_assert (get_candidate_for_purging (decl) == decl);
      state_purge_per_decl &data
        = get_or_create_data_for_decl (decl);
!     data.add_needed_at (*m_sedge.m_src);
    }
  
    void add_pointed_to (tree decl)
    {
      gcc_assert (get_candidate_for_purging (decl) == decl);
!     get_or_create_data_for_decl (decl).add_pointed_to_at (*m_sedge.m_src);
    }
  
    state_purge_per_decl &
    get_or_create_data_for_decl (tree decl)
    {
!     return m_map->get_or_create_data_for_decl (*m_fun, decl);
    }
  
    state_purge_map *m_map;
!   const superedge &m_sedge;
!   const function *m_fun;
  };
  
  static bool
*************** state_purge_map::state_purge_map (const
*** 231,253 ****
    }
  
    /* Find all uses of local vars.
!      We iterate through all function points, finding loads, stores, and
       address-taken operations on locals, building a pair of worklists.  */
!   for (auto snode : sg.m_nodes)
      {
        if (logger)
! 	log ("SN: %i", snode->m_index);
!       /* We ignore m_returning_call and phi nodes.  */
!       gimple *stmt;
!       unsigned i;
!       FOR_EACH_VEC_ELT (snode->m_stmts, i, stmt)
  	{
! 	  function *fun = snode->get_function ();
! 	  gcc_assert (fun);
! 	  function_point point (function_point::before_stmt (snode, i));
! 	  gimple_op_visitor v (this, point, *fun);
! 	  walk_stmt_load_store_addr_ops (stmt, &v,
! 					 my_load_cb, my_store_cb, my_addr_cb);
  	}
      }
  
--- 221,239 ----
    }
  
    /* Find all uses of local vars.
!      We iterate through all operations, finding loads, stores, and
       address-taken operations on locals, building a pair of worklists.  */
!   for (auto sedge : sg.m_edges)
      {
        if (logger)
! 	log ("edge: SN %i -> SN %i",
! 	     sedge->m_src->m_id,
! 	     sedge->m_dest->m_id);
!       if (auto op = sedge->get_op ())
  	{
! 	  gimple_op_visitor v (this, *sedge);
! 	  op->walk_load_store_addr_ops (&v,
! 					my_load_cb, my_store_cb, my_addr_cb);
  	}
      }
  
*************** state_purge_map::get_or_create_data_for_
*** 285,290 ****
--- 271,286 ----
    return *result;
  }
  
+ void
+ state_purge_map::on_duplicated_node (const supernode &old_snode,
+ 				     const supernode &new_snode)
+ {
+   for (auto iter : m_ssa_map)
+     iter.second->on_duplicated_node (old_snode, new_snode);
+   for (auto iter : m_decl_map)
+     iter.second->on_duplicated_node (old_snode, new_snode);
+ }
+ 
  /* class state_purge_per_ssa_name : public state_purge_per_tree.  */
  
  /* state_purge_per_ssa_name's ctor.
*************** state_purge_map::get_or_create_data_for_
*** 299,305 ****
  state_purge_per_ssa_name::state_purge_per_ssa_name (const state_purge_map &map,
  						    tree name,
  						    const function &fun)
! : state_purge_per_tree (fun), m_points_needing_name (), m_name (name)
  {
    LOG_FUNC (map.get_logger ());
  
--- 295,301 ----
  state_purge_per_ssa_name::state_purge_per_ssa_name (const state_purge_map &map,
  						    tree name,
  						    const function &fun)
! : state_purge_per_tree (fun), m_snodes_needing_name (), m_name (name)
  {
    LOG_FUNC (map.get_logger ());
  
*************** state_purge_per_ssa_name::state_purge_pe
*** 314,320 ****
        map.log ("def stmt: %s", pp_formatted_text (&pp));
      }
  
!   auto_vec<function_point> worklist;
  
    /* Add all immediate uses of name to the worklist.
       Compare with debug_immediate_uses.  */
--- 310,316 ----
        map.log ("def stmt: %s", pp_formatted_text (&pp));
      }
  
!   auto_vec<const supernode *> worklist;
  
    /* Add all immediate uses of name to the worklist.
       Compare with debug_immediate_uses.  */
*************** state_purge_per_ssa_name::state_purge_pe
*** 341,402 ****
  	      continue;
  	    }
  
- 	  const supernode *snode
- 	    = map.get_sg ().get_supernode_for_stmt (use_stmt);
- 
  	  /* If it's a use within a phi node, then we care about
  	     which in-edge we came from.  */
  	  if (use_stmt->code == GIMPLE_PHI)
  	    {
! 	      for (gphi_iterator gpi
! 		     = const_cast<supernode *> (snode)->start_phis ();
! 		   !gsi_end_p (gpi); gsi_next (&gpi))
  		{
! 		  gphi *phi = gpi.phi ();
! 		  if (phi == use_stmt)
  		    {
! 		      /* Find arguments (and thus in-edges) which use NAME.  */
! 		      for (unsigned arg_idx = 0;
! 			   arg_idx < gimple_phi_num_args (phi);
! 			   ++arg_idx)
  			{
! 			  if (name == gimple_phi_arg (phi, arg_idx)->def)
! 			    {
! 			      edge in_edge = gimple_phi_arg_edge (phi, arg_idx);
! 			      const superedge *in_sedge
! 				= map.get_sg ().get_edge_for_cfg_edge (in_edge);
! 			      function_point point
! 				= function_point::before_supernode
! 				(snode, in_sedge);
! 			      add_to_worklist (point, &worklist,
! 					       map.get_logger ());
! 			      m_points_needing_name.add (point);
! 			    }
  			}
  		    }
  		}
  	    }
  	  else
  	    {
! 	      function_point point = before_use_stmt (map, use_stmt);
! 	      add_to_worklist (point, &worklist, map.get_logger ());
! 	      m_points_needing_name.add (point);
! 
! 	      /* We also need to add uses for conditionals and switches,
! 		 where the stmt "happens" at the after_supernode, for filtering
! 		 the out-edges.  */
! 	      if (use_stmt == snode->get_last_stmt ())
! 		{
! 		  if (map.get_logger ())
! 		    map.log ("last stmt in BB");
! 		  function_point point
! 		    = function_point::after_supernode (snode);
! 		  add_to_worklist (point, &worklist, map.get_logger ());
! 		  m_points_needing_name.add (point);
! 		}
! 	      else
! 		if (map.get_logger ())
! 		  map.log ("not last stmt in BB");
  	    }
  	}
      }
--- 337,379 ----
  	      continue;
  	    }
  
  	  /* If it's a use within a phi node, then we care about
  	     which in-edge we came from.  */
  	  if (use_stmt->code == GIMPLE_PHI)
  	    {
! 	      const gphi *phi = as_a <const gphi *> (use_stmt);
! 	      /* Find arguments (and thus CFG in-edges) which use NAME.  */
! 	      for (unsigned arg_idx = 0;
! 		   arg_idx < gimple_phi_num_args (phi);
! 		   ++arg_idx)
  		{
! 		  if (name == gimple_phi_arg (phi, arg_idx)->def)
  		    {
! 		      edge in_edge = gimple_phi_arg_edge (phi, arg_idx);
! 		      const superedge *in_sedge
! 			= map.get_sg ().get_superedge_for_phis (in_edge);
! 		      if (in_sedge)
  			{
! 			  add_to_worklist (*in_sedge->m_src,
! 					   &worklist,
! 					   map.get_logger ());
! 			  m_snodes_needing_name.add (in_sedge->m_src);
! 			}
! 		      else
! 			{
! 			  /* Should only happen for abnormal edges, which
! 			     get skipped in supergraph construction.  */
! 			  gcc_assert (in_edge->flags & EDGE_ABNORMAL);
  			}
  		    }
  		}
  	    }
  	  else
  	    {
! 	      const supernode *snode
! 		= map.get_sg ().get_supernode_for_stmt (use_stmt);
! 	      add_to_worklist (*snode, &worklist, map.get_logger ());
! 	      m_snodes_needing_name.add (snode);
  	    }
  	}
      }
*************** state_purge_per_ssa_name::state_purge_pe
*** 406,680 ****
      log_scope s (map.get_logger (), "processing worklist");
      while (worklist.length () > 0)
        {
! 	function_point point = worklist.pop ();
! 	process_point (point, &worklist, map);
      }
    }
  
    if (map.get_logger ())
      {
        map.log ("%qE in %qD is needed to process:", name, fun.decl);
!       /* Log m_points_needing_name, sorting it to avoid churn when comparing
  	 dumps.  */
!       auto_vec<function_point> points;
!       for (point_set_t::iterator iter = m_points_needing_name.begin ();
! 	   iter != m_points_needing_name.end ();
! 	   ++iter)
! 	points.safe_push (*iter);
!       points.qsort (function_point::cmp_ptr);
!       unsigned i;
!       function_point *point;
!       FOR_EACH_VEC_ELT (points, i, point)
! 	{
! 	  map.start_log_line ();
! 	  map.get_logger ()->log_partial ("  point: ");
! 	  point->print (map.get_logger ()->get_printer (), format (false));
! 	  map.end_log_line ();
! 	}
      }
  }
  
  /* Return true if the SSA name is needed at POINT.  */
  
  bool
! state_purge_per_ssa_name::needed_at_point_p (const function_point &point) const
! {
!   return const_cast <point_set_t &> (m_points_needing_name).contains (point);
! }
! 
! /* Get the function_point representing immediately before USE_STMT.
!    Subroutine of ctor.  */
! 
! function_point
! state_purge_per_ssa_name::before_use_stmt (const state_purge_map &map,
! 					   const gimple *use_stmt)
  {
!   gcc_assert (use_stmt->code != GIMPLE_PHI);
! 
!   const supernode *supernode
!     = map.get_sg ().get_supernode_for_stmt (use_stmt);
!   unsigned int stmt_idx = supernode->get_stmt_index (use_stmt);
!   return function_point::before_stmt (supernode, stmt_idx);
  }
  
! /* Add POINT to *WORKLIST if the point has not already been seen.
     Subroutine of ctor.  */
  
  void
! state_purge_per_ssa_name::add_to_worklist (const function_point &point,
! 					   auto_vec<function_point> *worklist,
  					   logger *logger)
  {
    LOG_FUNC (logger);
-   if (logger)
-     {
-       logger->start_log_line ();
-       logger->log_partial ("point: '");
-       point.print (logger->get_printer (), format (false));
-       logger->log_partial ("' for worklist for %qE", m_name);
-       logger->end_log_line ();
-     }
  
!   gcc_assert (point.get_function () == &get_function ());
!   if (point.get_from_edge ())
!     gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
!   if (m_points_needing_name.contains (point))
      {
        if (logger)
! 	logger->log ("already seen for %qE", m_name);
      }
    else
      {
        if (logger)
! 	logger->log ("not seen; adding to worklist for %qE", m_name);
!       m_points_needing_name.add (point);
!       worklist->safe_push (point);
!     }
! }
! 
! /* Return true iff NAME is used by any of the phi nodes in SNODE
!    when processing the in-edge with PHI_ARG_IDX.  */
! 
! static bool
! name_used_by_phis_p (tree name, const supernode *snode,
! 		     size_t phi_arg_idx)
! {
!   gcc_assert (TREE_CODE (name) == SSA_NAME);
! 
!   for (gphi_iterator gpi
! 	 = const_cast<supernode *> (snode)->start_phis ();
!        !gsi_end_p (gpi); gsi_next (&gpi))
!     {
!       gphi *phi = gpi.phi ();
!       if (gimple_phi_arg_def (phi, phi_arg_idx) == name)
! 	return true;
      }
-   return false;
  }
  
! /* Process POINT, popped from WORKLIST.
!    Iterate over predecessors of POINT, adding to WORKLIST.  */
  
  void
! state_purge_per_ssa_name::process_point (const function_point &point,
! 					 auto_vec<function_point> *worklist,
! 					 const state_purge_map &map)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     {
!       logger->start_log_line ();
!       logger->log_partial ("considering point: '");
!       point.print (logger->get_printer (), format (false));
!       logger->log_partial ("' for %qE", m_name);
!       logger->end_log_line ();
!     }
! 
!   gimple *def_stmt = SSA_NAME_DEF_STMT (m_name);
! 
!   const supernode *snode = point.get_supernode ();
  
!   switch (point.get_kind ())
      {
!     default:
!       gcc_unreachable ();
! 
!     case PK_ORIGIN:
!       break;
! 
!     case PK_BEFORE_SUPERNODE:
!       {
! 	for (gphi_iterator gpi
! 	       = const_cast<supernode *> (snode)->start_phis ();
! 	     !gsi_end_p (gpi); gsi_next (&gpi))
! 	  {
! 	    gcc_assert (point.get_from_edge ());
! 	    const cfg_superedge *cfg_sedge
! 	      = point.get_from_edge ()->dyn_cast_cfg_superedge ();
! 	    gcc_assert (cfg_sedge);
! 
! 	    gphi *phi = gpi.phi ();
! 	    /* Are we at the def-stmt for m_name?  */
! 	    if (phi == def_stmt)
! 	      {
! 		if (name_used_by_phis_p (m_name, snode,
! 					 cfg_sedge->get_phi_arg_idx ()))
! 		  {
! 		    if (logger)
! 		      logger->log ("name in def stmt used within phis;"
! 				   " continuing");
! 		  }
! 		else
! 		  {
! 		    if (logger)
! 		      logger->log ("name in def stmt not used within phis;"
! 				   " terminating");
! 		    return;
! 		  }
! 	      }
! 	  }
! 
! 	/* Add given pred to worklist.  */
! 	if (point.get_from_edge ())
! 	  {
! 	    gcc_assert (point.get_from_edge ()->m_src);
! 	    add_to_worklist
! 	      (function_point::after_supernode (point.get_from_edge ()->m_src),
! 	       worklist, logger);
! 	  }
! 	else
! 	  {
! 	    /* Add any intraprocedually edge for a call.  */
! 	    if (snode->m_returning_call)
! 	    {
! 	      gcall *returning_call = snode->m_returning_call;
! 	      cgraph_edge *cedge
! 		  = supergraph_call_edge (snode->m_fun,
! 					  returning_call);
! 	      if(cedge)
! 	        {
! 		  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);
! 	         }
! 	    }
! 	  }
!       }
!       break;
! 
!     case PK_BEFORE_STMT:
!       {
! 	if (def_stmt == point.get_stmt ())
! 	  {
! 	    if (logger)
! 	      logger->log ("def stmt; terminating");
! 	    return;
! 	  }
! 	if (point.get_stmt_idx () > 0)
! 	  add_to_worklist (function_point::before_stmt
! 			     (snode, point.get_stmt_idx () - 1),
! 			   worklist, logger);
! 	else
  	{
! 	  /* Add before_supernode to worklist.  This captures the in-edge,
! 	     so we have to do it once per in-edge.  */
! 	  unsigned i;
! 	  superedge *pred;
! 	  FOR_EACH_VEC_ELT (snode->m_preds, i, pred)
! 	    add_to_worklist (function_point::before_supernode (snode,
! 							       pred),
! 			     worklist, logger);
  	}
!       }
!       break;
! 
!     case PK_AFTER_SUPERNODE:
!       {
! 	if (snode->m_stmts.length ())
! 	  add_to_worklist
! 	    (function_point::before_stmt (snode,
! 					  snode->m_stmts.length () - 1),
! 	     worklist, logger);
! 	else
! 	  {
! 	    /* Add before_supernode to worklist.  This captures the in-edge,
! 	       so we have to do it once per in-edge.  */
! 	    unsigned i;
! 	    superedge *pred;
! 	    FOR_EACH_VEC_ELT (snode->m_preds, i, pred)
! 	      add_to_worklist (function_point::before_supernode (snode,
! 								 pred),
! 			       worklist, logger);
! 	    /* If it's the initial BB, add it, to ensure that we
! 	       have "before supernode" for the initial ENTRY block, and don't
! 	       erroneously purge SSA names for initial values of parameters.  */
! 	    if (snode->entry_p ())
! 	      {
! 		add_to_worklist
! 		  (function_point::before_supernode (snode, NULL),
! 		   worklist, logger);
! 	      }
! 	  }
!       }
!       break;
      }
  }
  
  /* class state_purge_per_decl : public state_purge_per_tree.  */
  
  /* state_purge_per_decl's ctor.  */
--- 383,482 ----
      log_scope s (map.get_logger (), "processing worklist");
      while (worklist.length () > 0)
        {
! 	const supernode *snode = worklist.pop ();
! 	gcc_assert (snode);
! 	process_supernode (*snode, &worklist, map);
      }
    }
  
    if (map.get_logger ())
      {
        map.log ("%qE in %qD is needed to process:", name, fun.decl);
!       /* Log m_snodes_needing_name, sorting it to avoid churn when comparing
  	 dumps.  */
!       std::set<int> indices;
!       auto_vec<const supernode *> snodes;
!       for (auto iter : m_snodes_needing_name)
! 	indices.insert (iter->m_id);
!       for (auto iter : indices)
! 	map.get_logger ()->log ("  SN %i", iter);
      }
  }
  
  /* Return true if the SSA name is needed at POINT.  */
  
  bool
! state_purge_per_ssa_name::needed_at_supernode_p (const supernode *snode) const
  {
!   return const_cast <point_set_t &> (m_snodes_needing_name).contains (snode);
  }
  
! /* Add SNODE to *WORKLIST if the supernode has not already been seen.
     Subroutine of ctor.  */
  
  void
! state_purge_per_ssa_name::add_to_worklist (const supernode &snode,
! 					   auto_vec<const supernode *> *worklist,
  					   logger *logger)
  {
    LOG_FUNC (logger);
  
!   gcc_assert (snode.get_function () == &get_function ());
  
!   if (m_snodes_needing_name.contains (&snode))
      {
        if (logger)
! 	logger->log ("SN %i already seen for %qE", snode.m_id, m_name);
      }
    else
      {
        if (logger)
! 	logger->log ("not seen; adding SN %i to worklist for %qE",
! 		     snode.m_id, m_name);
!       m_snodes_needing_name.add (&snode);
!       worklist->safe_push (&snode);
      }
  }
  
! /* Process SNODE, popped from WORKLIST.
!    Iterate over predecessors of SNODE, adding to WORKLIST.  */
  
  void
! state_purge_per_ssa_name::process_supernode (const supernode &snode,
! 					     auto_vec<const supernode *> *worklist,
! 					     const state_purge_map &map)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     logger->log ("considering SN %i for %qE", snode.m_id, m_name);
  
!   for (auto in_edge : snode.m_preds)
      {
!       if (logger)
! 	logger->log ("considering edge from SN %i", in_edge->m_src->m_id);
!       bool defines_ssa_name = false;
!       if (auto op = in_edge->get_op ())
! 	if (op->defines_ssa_name_p (m_name))
! 	  defines_ssa_name = true;
!       if (defines_ssa_name)
  	{
! 	  if (logger)
! 	    logger->log ("op defines %qE", m_name);
  	}
!       else
! 	add_to_worklist (*in_edge->m_src, worklist, logger);
      }
  }
  
+ void
+ state_purge_per_ssa_name::on_duplicated_node (const supernode &old_snode,
+ 					      const supernode &new_snode)
+ {
+   if (m_snodes_needing_name.contains (&old_snode))
+     m_snodes_needing_name.add (&new_snode);
+ }
+ 
  /* class state_purge_per_decl : public state_purge_per_tree.  */
  
  /* state_purge_per_decl's ctor.  */
*************** state_purge_per_decl::state_purge_per_de
*** 689,722 ****
    if (TREE_CODE (decl) == RESULT_DECL)
      {
        supernode *exit_snode = map.get_sg ().get_node_for_function_exit (fun);
!       add_needed_at (function_point::after_supernode (exit_snode));
      }
  }
  
  /* Mark the value of the decl (or a subvalue within it) as being needed
!    at POINT.  */
  
  void
! state_purge_per_decl::add_needed_at (const function_point &point)
  {
!   m_points_needing_decl.add (point);
  }
  
  /* Mark that a pointer to the decl (or a region within it) is taken
!    at POINT.  */
  
  void
! state_purge_per_decl::add_pointed_to_at (const function_point &point)
  {
!   m_points_taking_address.add (point);
  }
  
  /* Process the worklists for this decl:
!    (a) walk backwards from points where we know the value of the decl
!    is needed, marking points until we get to a stmt that fully overwrites
     the decl.
!    (b) walk forwards from points where the address of the decl is taken,
!    marking points as potentially needing the value of the decl.  */
  
  void
  state_purge_per_decl::process_worklists (const state_purge_map &map,
--- 491,524 ----
    if (TREE_CODE (decl) == RESULT_DECL)
      {
        supernode *exit_snode = map.get_sg ().get_node_for_function_exit (fun);
!       add_needed_at (*exit_snode);
      }
  }
  
  /* Mark the value of the decl (or a subvalue within it) as being needed
!    at SNODE.  */
  
  void
! state_purge_per_decl::add_needed_at (const supernode &snode)
  {
!   m_snodes_needing_decl.add (&snode);
  }
  
  /* Mark that a pointer to the decl (or a region within it) is taken
!    at SNODE.  */
  
  void
! state_purge_per_decl::add_pointed_to_at (const supernode &snode)
  {
!   m_snodes_taking_address.add (&snode);
  }
  
  /* Process the worklists for this decl:
!    (a) walk backwards from snodes where we know the value of the decl
!    is needed, marking snodes until we get to a stmt that fully overwrites
     the decl.
!    (b) walk forwards from snodes where the address of the decl is taken,
!    marking snodes as potentially needing the value of the decl.  */
  
  void
  state_purge_per_decl::process_worklists (const state_purge_map &map,
*************** state_purge_per_decl::process_worklists
*** 729,743 ****
  
    /* Worklist for walking backwards from uses.  */
    {
!     auto_vec<function_point> worklist;
      point_set_t seen;
  
      /* Add all uses of the decl to the worklist.  */
!     for (auto iter : m_points_needing_decl)
        worklist.safe_push (iter);
  
      region_model model (mgr);
!     model.push_frame (get_function (), NULL, NULL);
  
      /* Process worklist by walking backwards until we reach a stmt
         that fully overwrites the decl.  */
--- 531,545 ----
  
    /* Worklist for walking backwards from uses.  */
    {
!     auto_vec<const supernode *> worklist;
      point_set_t seen;
  
      /* Add all uses of the decl to the worklist.  */
!     for (auto iter : m_snodes_needing_decl)
        worklist.safe_push (iter);
  
      region_model model (mgr);
!     model.push_frame (get_function (), nullptr, nullptr, nullptr);
  
      /* Process worklist by walking backwards until we reach a stmt
         that fully overwrites the decl.  */
*************** state_purge_per_decl::process_worklists
*** 745,769 ****
        log_scope s (logger, "processing worklist");
        while (worklist.length () > 0)
  	{
! 	  function_point point = worklist.pop ();
! 	  process_point_backwards (point, &worklist, &seen, map, model);
  	}
      }
    }
  
!   /* Worklist for walking forwards from address-taken points.  */
    {
!     auto_vec<function_point> worklist;
      point_set_t seen;
  
      /* Add all uses of the decl to the worklist.  */
!     for (auto iter : m_points_taking_address)
        {
  	worklist.safe_push (iter);
  
! 	/* Add to m_points_needing_decl (now that we traversed
  	   it above for the backward worklist).  */
! 	m_points_needing_decl.add (iter);
        }
  
      /* Process worklist by walking forwards. */
--- 547,571 ----
        log_scope s (logger, "processing worklist");
        while (worklist.length () > 0)
  	{
! 	  const supernode *snode = worklist.pop ();
! 	  process_supernode_backwards (*snode, &worklist, &seen, map, model);
  	}
      }
    }
  
!   /* Worklist for walking forwards from address-taken snodes.  */
    {
!     auto_vec<const supernode *> worklist;
      point_set_t seen;
  
      /* Add all uses of the decl to the worklist.  */
!     for (auto iter : m_snodes_taking_address)
        {
  	worklist.safe_push (iter);
  
! 	/* Add to m_snodes_needing_decl (now that we traversed
  	   it above for the backward worklist).  */
! 	m_snodes_needing_decl.add (iter);
        }
  
      /* Process worklist by walking forwards. */
*************** state_purge_per_decl::process_worklists
*** 771,807 ****
        log_scope s (logger, "processing worklist");
        while (worklist.length () > 0)
  	{
! 	  function_point point = worklist.pop ();
! 	  process_point_forwards (point, &worklist, &seen, map);
  	}
      }
    }
  }
  
! /* Add POINT to *WORKLIST if the point is not already in *seen.
!    Add newly seen points to *SEEN and to m_points_needing_name.  */
  
  void
! state_purge_per_decl::add_to_worklist (const function_point &point,
! 				       auto_vec<function_point> *worklist,
  				       point_set_t *seen,
  				       logger *logger)
  {
    LOG_FUNC (logger);
    if (logger)
!     {
!       logger->start_log_line ();
!       logger->log_partial ("point: '");
!       point.print (logger->get_printer (), format (false));
!       logger->log_partial ("' for worklist for %qE", m_decl);
!       logger->end_log_line ();
!     }
  
!   gcc_assert (point.get_function () == &get_function ());
!   if (point.get_from_edge ())
!     gcc_assert (point.get_from_edge ()->get_kind () == SUPEREDGE_CFG_EDGE);
  
!   if (seen->contains (point))
      {
        if (logger)
  	logger->log ("already seen for %qE", m_decl);
--- 573,601 ----
        log_scope s (logger, "processing worklist");
        while (worklist.length () > 0)
  	{
! 	  const supernode *snode = worklist.pop ();
! 	  process_supernode_forwards (*snode, &worklist, &seen, map);
  	}
      }
    }
  }
  
! /* Add SNODE to *WORKLIST if the point is not already in *seen.
!    Add newly seen supernodes to *SEEN and to m_snodes_needing_name.  */
  
  void
! state_purge_per_decl::add_to_worklist (const supernode &snode,
! 				       auto_vec<const supernode *> *worklist,
  				       point_set_t *seen,
  				       logger *logger)
  {
    LOG_FUNC (logger);
    if (logger)
!     logger->log ("SN %i for worklist for %qE", snode.m_id, m_decl);
  
!   gcc_assert (snode.get_function () == &get_function ());
  
!   if (seen->contains (&snode))
      {
        if (logger)
  	logger->log ("already seen for %qE", m_decl);
*************** state_purge_per_decl::add_to_worklist (c
*** 810,818 ****
      {
        if (logger)
  	logger->log ("not seen; adding to worklist for %qE", m_decl);
!       m_points_needing_decl.add (point);
!       seen->add (point);
!       worklist->safe_push (point);
      }
  }
  
--- 604,612 ----
      {
        if (logger)
  	logger->log ("not seen; adding to worklist for %qE", m_decl);
!       m_snodes_needing_decl.add (&snode);
!       seen->add (&snode);
!       worklist->safe_push (&snode);
      }
  }
  
*************** fully_overwrites_p (const gimple *stmt,
*** 848,855 ****
  	 We can't just check for equality; consider the case of
  	 "s.field = EXPR;" where the stmt writes to the only field
  	 of "s", and there's no padding.  */
!       const region *lhs_reg = model.get_lvalue (lhs, NULL);
!       const region *decl_reg = model.get_lvalue (decl, NULL);
        if (same_binding_p (lhs_reg, decl_reg,
  			  model.get_manager ()->get_store_manager ()))
  	return true;
--- 642,649 ----
  	 We can't just check for equality; consider the case of
  	 "s.field = EXPR;" where the stmt writes to the only field
  	 of "s", and there's no padding.  */
!       const region *lhs_reg = model.get_lvalue (lhs, nullptr);
!       const region *decl_reg = model.get_lvalue (decl, nullptr);
        if (same_binding_p (lhs_reg, decl_reg,
  			  model.get_manager ()->get_store_manager ()))
  	return true;
*************** fully_overwrites_p (const gimple *stmt,
*** 857,1073 ****
    return false;
  }
  
! /* Process POINT, popped from *WORKLIST.
!    Iterate over predecessors of POINT, adding to *WORKLIST and *SEEN,
     until we get to a stmt that fully overwrites the decl.  */
  
  void
  state_purge_per_decl::
! process_point_backwards (const function_point &point,
! 			 auto_vec<function_point> *worklist,
! 			 point_set_t *seen,
! 			 const state_purge_map &map,
! 			 const region_model &model)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     {
!       logger->start_log_line ();
!       logger->log_partial ("considering point: '");
!       point.print (logger->get_printer (), format (false));
!       logger->log_partial ("' for %qE", m_decl);
!       logger->end_log_line ();
!     }
!   const supernode *snode = point.get_supernode ();
  
!   switch (point.get_kind ())
      {
!     default:
!       gcc_unreachable ();
! 
!     case PK_ORIGIN:
!       break;
! 
!     case PK_BEFORE_SUPERNODE:
!       {
! 	/* Add given pred to worklist.  */
! 	if (point.get_from_edge ())
! 	  {
! 	    gcc_assert (point.get_from_edge ()->m_src);
! 	    add_to_worklist
! 	      (function_point::after_supernode (point.get_from_edge ()->m_src),
! 	       worklist, seen, logger);
! 	  }
! 	else
! 	  {
! 	    /* Add any intraprocedually edge for a call.  */
! 	    if (snode->m_returning_call)
! 	    {
! 	      gcall *returning_call = snode->m_returning_call;
! 	      cgraph_edge *cedge
! 		  = supergraph_call_edge (snode->m_fun,
! 					  returning_call);
! 	      if(cedge)
! 		{
! 		  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, seen, 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, seen, logger);
! 		}
! 	    }
! 	  }
!       }
!       break;
  
!     case PK_BEFORE_STMT:
!       {
! 	/* This is somewhat equivalent to how the SSA case handles
! 	   def-stmts.  */
! 	if (fully_overwrites_p (point.get_stmt (), m_decl, model)
! 	    /* ...but we mustn't be at a point that also consumes the
! 	       current value of the decl when it's generating the new
! 	       value, for cases such as
! 		  struct st s;
! 		  s = foo ();
! 		  s = bar (s);
! 	       where we want to make sure that we don't stop at the:
! 		  s = bar (s);
! 	       since otherwise we would erroneously purge the state of "s"
! 	       after:
! 		  s = foo ();
! 	    */
! 	    && !m_points_needing_decl.contains (point))
! 	  {
! 	    if (logger)
! 	      logger->log ("stmt fully overwrites %qE; terminating", m_decl);
! 	    return;
! 	  }
! 	if (point.get_stmt_idx () > 0)
! 	  add_to_worklist (function_point::before_stmt
! 			     (snode, point.get_stmt_idx () - 1),
! 			   worklist, seen, logger);
! 	else
  	{
! 	  /* Add before_supernode to worklist.  This captures the in-edge,
! 	     so we have to do it once per in-edge.  */
! 	  unsigned i;
! 	  superedge *pred;
! 	  FOR_EACH_VEC_ELT (snode->m_preds, i, pred)
! 	    add_to_worklist (function_point::before_supernode (snode,
! 							       pred),
! 			     worklist, seen, logger);
  	}
!       }
!       break;
! 
!     case PK_AFTER_SUPERNODE:
!       {
! 	if (snode->m_stmts.length ())
! 	  add_to_worklist
! 	    (function_point::before_stmt (snode,
! 					  snode->m_stmts.length () - 1),
! 	     worklist, seen, logger);
! 	else
! 	  {
! 	    /* Add before_supernode to worklist.  This captures the in-edge,
! 	       so we have to do it once per in-edge.  */
! 	    unsigned i;
! 	    superedge *pred;
! 	    FOR_EACH_VEC_ELT (snode->m_preds, i, pred)
! 	      add_to_worklist (function_point::before_supernode (snode,
! 								 pred),
! 			       worklist, seen, logger);
! 	  }
!       }
!       break;
      }
- 
  }
  
! /* Process POINT, popped from *WORKLIST.
!    Iterate over successors of POINT, adding to *WORKLIST and *SEEN.  */
  
  void
  state_purge_per_decl::
! process_point_forwards (const function_point &point,
! 			auto_vec<function_point> *worklist,
! 			point_set_t *seen,
! 			const state_purge_map &map)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     {
!       logger->start_log_line ();
!       logger->log_partial ("considering point: '");
!       point.print (logger->get_printer (), format (false));
!       logger->log_partial ("' for %qE", m_decl);
!       logger->end_log_line ();
!     }
!   const supernode *snode = point.get_supernode ();
! 
!   switch (point.get_kind ())
!     {
!     default:
!     case PK_ORIGIN:
!       gcc_unreachable ();
! 
!     case PK_BEFORE_SUPERNODE:
!       {
! 	function_point next = point.get_next ();
! 	add_to_worklist (next, worklist, seen, logger);
!       }
!       break;
! 
!     case PK_BEFORE_STMT:
!       {
! 	/* Perhaps we should stop at a clobber of the decl,
! 	   but that ought to purge state for us explicitly.  */
! 	function_point next = point.get_next ();
! 	add_to_worklist (next, worklist, seen, logger);
!       }
!       break;
  
!     case PK_AFTER_SUPERNODE:
!       {
! 	/* Look at interprocedural out-edges.  */
! 	unsigned i;
! 	superedge *succ;
! 	FOR_EACH_VEC_ELT (snode->m_succs, i, succ)
! 	  {
! 	    enum edge_kind kind = succ->get_kind ();
! 	    if (kind == SUPEREDGE_CFG_EDGE
! 		|| kind == SUPEREDGE_INTRAPROCEDURAL_CALL)
! 	      add_to_worklist (function_point::before_supernode (succ->m_dest,
! 								 succ),
! 			       worklist, seen, logger);
! 	  }
!       }
!       break;
!     }
  }
  
! /* Return true if the decl is needed at POINT.  */
  
  bool
! state_purge_per_decl::needed_at_point_p (const function_point &point) const
  {
!   return const_cast <point_set_t &> (m_points_needing_decl).contains (point);
  }
  
  /* class state_purge_annotator : public dot_annotator.  */
  
  /* Implementation of dot_annotator::add_node_annotations vfunc for
--- 651,746 ----
    return false;
  }
  
! /* Process SNODE, popped from *WORKLIST.
!    Iterate over predecessors of SNODE, adding to *WORKLIST and *SEEN,
     until we get to a stmt that fully overwrites the decl.  */
  
  void
  state_purge_per_decl::
! process_supernode_backwards (const supernode &snode,
! 			     auto_vec<const supernode *> *worklist,
! 			     point_set_t *seen,
! 			     const state_purge_map &map,
! 			     const region_model &model)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     logger->log ("considering SN %i for %qE", snode.m_id, m_decl);
  
!   for (auto in_edge : snode.m_preds)
      {
!       if (logger)
! 	logger->log ("considering edge from SN %i", in_edge->m_src->m_id);
  
!       bool fully_overwrites_decl = false;
!       if (auto op = in_edge->get_op ())
  	{
! 	  /* This is somewhat equivalent to how the SSA case handles
! 	     def-stmts.  */
! 	  if (auto stmt = op->maybe_get_stmt ())
! 	    if (fully_overwrites_p (stmt, m_decl, model)
! 	      /* ...but we mustn't be at a point that also consumes the
! 		 current value of the decl when it's generating the new
! 		 value, for cases such as
! 		   struct st s;
! 		   s = foo ();
! 		   s = bar (s);
! 		 where we want to make sure that we don't stop at the:
! 		   s = bar (s);
! 		 since otherwise we would erroneously purge the state of "s"
! 		 after:
! 		   s = foo ();
! 	      */
! 	      && !m_snodes_needing_decl.contains (&snode))
! 	    fully_overwrites_decl = true;
  	}
!       if (fully_overwrites_decl)
! 	{
! 	  if (logger)
! 	    logger->log ("op fully overwrites %qE; terminating", m_decl);
! 	}
!       else
! 	add_to_worklist (*in_edge->m_src, worklist, seen, logger);
      }
  }
  
! /* Process SNODE, popped from *WORKLIST.
!    Iterate over successors of SNODE, adding to *WORKLIST and *SEEN.  */
  
  void
  state_purge_per_decl::
! process_supernode_forwards (const supernode &snode,
! 			    auto_vec<const supernode *> *worklist,
! 			    point_set_t *seen,
! 			    const state_purge_map &map)
  {
    logger *logger = map.get_logger ();
    LOG_FUNC (logger);
    if (logger)
!     logger->log ("considering SN %i for %qE", snode.m_id, m_decl);
  
!   for (auto out_edge : snode.m_succs)
!     add_to_worklist (*out_edge->m_dest, worklist, seen, logger);
  }
  
! /* Return true if the decl is needed at SNODE.  */
  
  bool
! state_purge_per_decl::needed_at_supernode_p (const supernode *snode) const
  {
!   return const_cast <point_set_t &> (m_snodes_needing_decl).contains (snode);
  }
  
+ void
+ state_purge_per_decl::on_duplicated_node (const supernode &old_snode,
+ 					      const supernode &new_snode)
+ {
+   if (m_snodes_needing_decl.contains (&old_snode))
+     m_snodes_needing_decl.add (&new_snode);
+   if (m_snodes_taking_address.contains (&old_snode))
+     m_snodes_taking_address.add (&new_snode);
+ }
  /* class state_purge_annotator : public dot_annotator.  */
  
  /* Implementation of dot_annotator::add_node_annotations vfunc for
*************** state_purge_per_decl::needed_at_point_p
*** 1076,1136 ****
     Add an additional record showing which names are purged on entry
     to the supernode N.  */
  
! bool
! state_purge_annotator::add_node_annotations (graphviz_out *gv,
! 					     const supernode &n,
! 					     bool within_table) const
! {
!   if (m_map == NULL)
!     return false;
! 
!   if (within_table)
!     return false;
! 
!   pretty_printer *pp = gv->get_pp ();
! 
!    pp_printf (pp, "annotation_for_node_%i", n.m_index);
!    pp_printf (pp, " [shape=none,margin=0,style=filled,fillcolor=%s,label=\"",
! 	      "lightblue");
!    pp_write_text_to_stream (pp);
! 
!    /* Different in-edges mean different names need purging.
!       Determine which points to dump.  */
!    auto_vec<function_point> points;
!    if (n.entry_p () || n.m_returning_call)
!      points.safe_push (function_point::before_supernode (&n, NULL));
!    else
!      for (auto inedge : n.m_preds)
!        points.safe_push (function_point::before_supernode (&n, inedge));
!    points.safe_push (function_point::after_supernode (&n));
! 
!    for (auto & point : points)
!      {
!        point.print (pp, format (true));
!        pp_newline (pp);
!        print_needed (gv, point, false);
!        pp_newline (pp);
!      }
! 
!    pp_string (pp, "\"];\n\n");
!    pp_flush (pp);
!    return false;
! }
! 
! /* Print V to GV as a comma-separated list in braces, titling it with TITLE.
!    If WITHIN_TABLE is true, print it within a <TR>
  
     Subroutine of state_purge_annotator::print_needed.  */
  
  static void
  print_vec_of_names (graphviz_out *gv, const char *title,
! 		    const auto_vec<tree> &v, bool within_table)
  {
    pretty_printer *pp = gv->get_pp ();
    tree name;
    unsigned i;
!   if (within_table)
!     gv->begin_trtd ();
    pp_printf (pp, "%s: {", title);
    FOR_EACH_VEC_ELT (v, i, name)
      {
--- 749,767 ----
     Add an additional record showing which names are purged on entry
     to the supernode N.  */
  
! /* Print V to GV as a comma-separated list in braces within a <TR>,
!    titling it with TITLE.
  
     Subroutine of state_purge_annotator::print_needed.  */
  
  static void
  print_vec_of_names (graphviz_out *gv, const char *title,
! 		    const auto_vec<tree> &v)
  {
    pretty_printer *pp = gv->get_pp ();
    tree name;
    unsigned i;
!   gv->begin_trtd ();
    pp_printf (pp, "%s: {", title);
    FOR_EACH_VEC_ELT (v, i, name)
      {
*************** print_vec_of_names (graphviz_out *gv, co
*** 1139,1192 ****
        pp_printf (pp, "%qE", name);
      }
    pp_printf (pp, "}");
!   if (within_table)
!     {
!       pp_write_text_as_html_like_dot_to_stream (pp);
!       gv->end_tdtr ();
!     }
    pp_newline (pp);
  }
  
- /* Implementation of dot_annotator::add_stmt_annotations for
-    state_purge_annotator.
- 
-    Add text showing which names are purged at STMT.  */
- 
  void
! state_purge_annotator::add_stmt_annotations (graphviz_out *gv,
! 					     const gimple *stmt,
! 					     bool within_row) const
  {
!   if (within_row)
!     return;
! 
!   if (m_map == NULL)
!     return;
! 
!   if (stmt->code == GIMPLE_PHI)
      return;
  
-   pretty_printer *pp = gv->get_pp ();
- 
-   pp_newline (pp);
- 
-   const supernode *supernode = m_map->get_sg ().get_supernode_for_stmt (stmt);
-   unsigned int stmt_idx = supernode->get_stmt_index (stmt);
-   function_point before_stmt
-     (function_point::before_stmt (supernode, stmt_idx));
- 
-   print_needed (gv, before_stmt, true);
- }
- 
- /* Get the decls and SSA names needed and not-needed at POINT, and
-    print them to GV.
-    If WITHIN_TABLE is true, print them within <TR> elements.  */
- 
- void
- state_purge_annotator::print_needed (graphviz_out *gv,
- 				     const function_point &point,
- 				     bool within_table) const
- {
    auto_vec<tree> needed;
    auto_vec<tree> not_needed;
    for (state_purge_map::ssa_iterator iter = m_map->begin_ssas ();
--- 770,787 ----
        pp_printf (pp, "%qE", name);
      }
    pp_printf (pp, "}");
!   pp_write_text_as_html_like_dot_to_stream (pp);
!   gv->end_tdtr ();
    pp_newline (pp);
  }
  
  void
! state_purge_annotator::add_node_annotations (graphviz_out *gv,
! 					     const supernode &snode) const
  {
!   if (m_map == nullptr)
      return;
  
    auto_vec<tree> needed;
    auto_vec<tree> not_needed;
    for (state_purge_map::ssa_iterator iter = m_map->begin_ssas ();
*************** state_purge_annotator::print_needed (gra
*** 1195,1203 ****
      {
        tree name = (*iter).first;
        state_purge_per_ssa_name *per_name_data = (*iter).second;
!       if (&per_name_data->get_function () == point.get_function ())
  	{
! 	  if (per_name_data->needed_at_point_p (point))
  	    needed.safe_push (name);
  	  else
  	    not_needed.safe_push (name);
--- 790,798 ----
      {
        tree name = (*iter).first;
        state_purge_per_ssa_name *per_name_data = (*iter).second;
!       if (&per_name_data->get_function () == snode.get_function ())
  	{
! 	  if (per_name_data->needed_at_supernode_p (&snode))
  	    needed.safe_push (name);
  	  else
  	    not_needed.safe_push (name);
*************** state_purge_annotator::print_needed (gra
*** 1209,1225 ****
      {
        tree decl = (*iter).first;
        state_purge_per_decl *per_decl_data = (*iter).second;
!       if (&per_decl_data->get_function () == point.get_function ())
  	{
! 	  if (per_decl_data->needed_at_point_p (point))
  	    needed.safe_push (decl);
  	  else
  	    not_needed.safe_push (decl);
  	}
      }
  
!   print_vec_of_names (gv, "needed here", needed, within_table);
!   print_vec_of_names (gv, "not needed here", not_needed, within_table);
  }
  
  #endif /* #if ENABLE_ANALYZER */
--- 804,820 ----
      {
        tree decl = (*iter).first;
        state_purge_per_decl *per_decl_data = (*iter).second;
!       if (&per_decl_data->get_function () == snode.get_function ())
  	{
! 	  if (per_decl_data->needed_at_supernode_p (&snode))
  	    needed.safe_push (decl);
  	  else
  	    not_needed.safe_push (decl);
  	}
      }
  
!   print_vec_of_names (gv, "needed here", needed);
!   print_vec_of_names (gv, "not needed here", not_needed);
  }
  
  #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/state-purge.h gcc-16.1.0-RC-20260423/gcc/analyzer/state-purge.h
*** gcc-15.2.0/gcc/analyzer/state-purge.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/state-purge.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for purging state at function_points.
!    Copyright (C) 2019-2026 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,73 ****
  #ifndef GCC_ANALYZER_STATE_PURGE_H
  #define GCC_ANALYZER_STATE_PURGE_H
  
- /* Hash traits for function_point.  */
- 
- template <> struct default_hash_traits<function_point>
- : public pod_hash_traits<function_point>
- {
-   static const bool empty_zero_p = false;
- };
- 
- template <>
- inline hashval_t
- pod_hash_traits<function_point>::hash (value_type v)
- {
-   return v.hash ();
- }
- 
- template <>
- inline bool
- pod_hash_traits<function_point>::equal (const value_type &existing,
-                                  const value_type &candidate)
- {
-   return existing == candidate;
- }
- template <>
- inline void
- pod_hash_traits<function_point>::mark_deleted (value_type &v)
- {
-   v = function_point::deleted ();
- }
- template <>
- inline void
- pod_hash_traits<function_point>::mark_empty (value_type &v)
- {
-   v = function_point::empty ();
- }
- template <>
- inline bool
- pod_hash_traits<function_point>::is_deleted (value_type v)
- {
-   return v.get_kind () == PK_DELETED;
- }
- template <>
- inline bool
- pod_hash_traits<function_point>::is_empty (value_type v)
- {
-   return v.get_kind () == PK_EMPTY;
- }
- 
  namespace ana {
  
  /* The result of analyzing which decls and SSA names can be purged from state at
--- 21,26 ----
*************** public:
*** 109,115 ****
  	= const_cast <decl_map_t&> (m_decl_map).get (decl))
        return *slot;
      else
!       return NULL;
    }
  
    state_purge_per_decl &
--- 62,68 ----
  	= const_cast <decl_map_t&> (m_decl_map).get (decl))
        return *slot;
      else
!       return nullptr;
    }
  
    state_purge_per_decl &
*************** public:
*** 123,128 ****
--- 76,85 ----
    decl_iterator begin_decls () const { return m_decl_map.begin (); }
    decl_iterator end_decls () const { return m_decl_map.end (); }
  
+   void
+   on_duplicated_node (const supernode &old_snode,
+ 		      const supernode &new_snode);
+ 
  private:
    DISABLE_COPY_AND_ASSIGN (state_purge_map);
  
*************** public:
*** 140,146 ****
    tree get_fndecl () const { return m_fun.decl; }
  
  protected:
!   typedef hash_set<function_point> point_set_t;
  
    state_purge_per_tree (const function &fun)
    : m_fun (fun)
--- 97,103 ----
    tree get_fndecl () const { return m_fun.decl; }
  
  protected:
!   typedef hash_set<const supernode *> point_set_t;
  
    state_purge_per_tree (const function &fun)
    : m_fun (fun)
*************** public:
*** 165,185 ****
  			    tree name,
  			    const function &fun);
  
!   bool needed_at_point_p (const function_point &point) const;
  
! private:
!   static function_point before_use_stmt (const state_purge_map &map,
! 					 const gimple *use_stmt);
  
!   void add_to_worklist (const function_point &point,
! 			auto_vec<function_point> *worklist,
  			logger *logger);
  
!   void process_point (const function_point &point,
! 		      auto_vec<function_point> *worklist,
! 		      const state_purge_map &map);
  
!   point_set_t m_points_needing_name;
    tree m_name;
  };
  
--- 122,143 ----
  			    tree name,
  			    const function &fun);
  
!   bool needed_at_supernode_p (const supernode *snode) const;
  
!   void
!   on_duplicated_node (const supernode &old_snode,
! 		      const supernode &new_snode);
  
! private:
!   void add_to_worklist (const supernode &node,
! 			auto_vec<const supernode *> *worklist,
  			logger *logger);
  
!   void process_supernode (const supernode &node,
! 			  auto_vec<const supernode *> *worklist,
! 			  const state_purge_map &map);
  
!   point_set_t m_snodes_needing_name;
    tree m_name;
  };
  
*************** public:
*** 197,230 ****
  			tree decl,
  			const function &fun);
  
!   bool needed_at_point_p (const function_point &point) const;
  
!   void add_needed_at (const function_point &point);
!   void add_pointed_to_at (const function_point &point);
    void process_worklists (const state_purge_map &map,
  			  region_model_manager *mgr);
  
  private:
!   static function_point before_use_stmt (const state_purge_map &map,
  					 const gimple *use_stmt);
  
!   void add_to_worklist (const function_point &point,
! 			auto_vec<function_point> *worklist,
  			point_set_t *seen,
  			logger *logger);
  
!   void process_point_backwards (const function_point &point,
! 				auto_vec<function_point> *worklist,
! 				point_set_t *seen,
! 				const state_purge_map &map,
! 				const region_model &model);
!   void process_point_forwards (const function_point &point,
! 			       auto_vec<function_point> *worklist,
! 			       point_set_t *seen,
! 			       const state_purge_map &map);
  
!   point_set_t m_points_needing_decl;
!   point_set_t m_points_taking_address;
    tree m_decl;
  };
  
--- 155,192 ----
  			tree decl,
  			const function &fun);
  
!   bool needed_at_supernode_p (const supernode *snode) const;
  
!   void add_needed_at (const supernode &snode);
!   void add_pointed_to_at (const supernode &snode);
    void process_worklists (const state_purge_map &map,
  			  region_model_manager *mgr);
  
+   void
+   on_duplicated_node (const supernode &old_snode,
+ 		      const supernode &new_snode);
+ 
  private:
!   static const supernode * before_use_stmt (const state_purge_map &map,
  					 const gimple *use_stmt);
  
!   void add_to_worklist (const supernode &node,
! 			auto_vec<const supernode *> *worklist,
  			point_set_t *seen,
  			logger *logger);
  
!   void process_supernode_backwards (const supernode &snode,
! 				    auto_vec<const supernode *> *worklist,
! 				    point_set_t *seen,
! 				    const state_purge_map &map,
! 				    const region_model &model);
!   void process_supernode_forwards (const supernode &snode,
! 				   auto_vec<const supernode *> *worklist,
! 				   point_set_t *seen,
! 				   const state_purge_map &map);
  
!   point_set_t m_snodes_needing_decl;
!   point_set_t m_snodes_taking_address;
    tree m_decl;
  };
  
*************** class state_purge_annotator : public dot
*** 236,253 ****
  public:
    state_purge_annotator (const state_purge_map *map) : m_map (map) {}
  
!   bool add_node_annotations (graphviz_out *gv, const supernode &n, bool)
!     const final override;
! 
!   void add_stmt_annotations (graphviz_out *gv, const gimple *stmt,
! 			     bool within_row)
!     const final override;
  
  private:
-   void print_needed (graphviz_out *gv,
- 		     const function_point &point,
- 		     bool within_table) const;
- 
    const state_purge_map *m_map;
  };
  
--- 198,208 ----
  public:
    state_purge_annotator (const state_purge_map *map) : m_map (map) {}
  
!   void
!   add_node_annotations (graphviz_out *gv,
! 			const supernode &n) const final override;
  
  private:
    const state_purge_map *m_map;
  };
  
diff -Nrcpad gcc-15.2.0/gcc/analyzer/store.cc gcc-16.1.0-RC-20260423/gcc/analyzer/store.cc
*** gcc-15.2.0/gcc/analyzer/store.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/store.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,61 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "function.h"
! #include "basic-block.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "diagnostic-core.h"
! #include "graphviz.h"
! #include "options.h"
! #include "cgraph.h"
! #include "tree-dfa.h"
! #include "stringpool.h"
! #include "convert.h"
! #include "target.h"
! #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "diagnostic-color.h"
! #include "bitmap.h"
! #include "selftest.h"
! #include "analyzer/analyzer.h"
! #include "analyzer/analyzer-logging.h"
  #include "ordered-hash-map.h"
- #include "options.h"
  #include "cfg.h"
- #include "analyzer/supergraph.h"
  #include "sbitmap.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #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
  
--- 18,40 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "ordered-hash-map.h"
  #include "cfg.h"
  #include "sbitmap.h"
+ #include "stor-layout.h"
+ 
+ #include "text-art/tree-widget.h"
+ 
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/supergraph.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/region-model.h"
  #include "analyzer/call-summary.h"
  #include "analyzer/analyzer-selftests.h"
  
  #if ENABLE_ANALYZER
  
*************** bit_range::dump () const
*** 234,240 ****
  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",
--- 213,219 ----
  std::unique_ptr<json::object>
  bit_range::to_json () const
  {
!   auto obj = std::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 () const
*** 508,514 ****
  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",
--- 487,493 ----
  std::unique_ptr<json::object>
  byte_range::to_json () const
  {
!   auto obj = std::make_unique<json::object> ();
    obj->set ("start_byte_offset",
  	    byte_offset_to_json (m_start_byte_offset));
    obj->set ("size_in_bytes",
*************** simplify_for_binding (const svalue *sval
*** 639,667 ****
    return sval;
  }
  
  /* class binding_map.  */
  
  /* binding_map's copy ctor.  */
  
  binding_map::binding_map (const binding_map &other)
! : m_map (other.m_map)
  {
  }
  
  /* binding_map's assignment operator.  */
  
  binding_map&
! binding_map::operator=(const binding_map &other)
  {
    /* For now, assume we only ever copy to an empty cluster.  */
!   gcc_assert (m_map.elements () == 0);
!   for (map_t::iterator iter = other.m_map.begin (); iter != other.m_map.end ();
!        ++iter)
!     {
!       const binding_key *key = (*iter).first;
!       const svalue *sval = (*iter).second;
!       m_map.put (key, sval);
!     }
    return *this;
  }
  
--- 618,749 ----
    return sval;
  }
  
+ /* class binding_map::const_iterator.  */
+ 
+ bool
+ binding_map::const_iterator::operator== (const binding_map::const_iterator &other) const
+ {
+   if (m_concrete != other.m_concrete)
+     return false;
+   if (m_symbolic != other.m_symbolic)
+     return false;
+   return true;
+ }
+ 
+ binding_map::const_iterator &
+ binding_map::const_iterator::operator++ ()
+ {
+   if (m_concrete != m_map.m_concrete.end ())
+     ++m_concrete;
+   else
+     ++m_symbolic;
+   return *this;
+ }
+ 
+ binding_map::binding_pair
+ binding_map::const_iterator::operator* ()
+ {
+   if (m_concrete != m_map.m_concrete.end ())
+     {
+       const bit_range &bits = m_concrete->first;
+       const svalue *sval = m_concrete->second;
+       return binding_pair (m_map.m_store_mgr.get_concrete_binding (bits), sval);
+     }
+   else
+     {
+       gcc_assert (m_symbolic != m_map.m_symbolic.end ());
+       const region *reg = m_symbolic->m_region;
+       const svalue *sval = m_symbolic->m_sval;
+       return binding_pair (m_map.m_store_mgr.get_symbolic_binding (reg), sval);
+     }
+ }
+ 
+ const svalue *
+ binding_map::const_iterator::get_svalue () const
+ {
+   if (m_concrete != m_map.m_concrete.end ())
+     return m_concrete->second;
+   else
+     {
+       gcc_assert (m_symbolic != m_map.m_symbolic.end ());
+       return m_symbolic->m_sval;
+     }
+ }
+ 
+ /* class binding_map::iterator.  */
+ 
+ bool
+ binding_map::iterator::operator== (const binding_map::iterator &other) const
+ {
+   if (m_concrete != other.m_concrete)
+     return false;
+   if (m_symbolic != other.m_symbolic)
+     return false;
+   return true;
+ }
+ 
+ binding_map::iterator &
+ binding_map::iterator::operator++ ()
+ {
+   if (m_concrete != m_map.m_concrete.end ())
+     ++m_concrete;
+   else
+     ++m_symbolic;
+   return *this;
+ }
+ 
+ binding_map::binding_pair
+ binding_map::iterator::operator* ()
+ {
+   if (m_concrete != m_map.m_concrete.end ())
+     {
+       const bit_range &bits = m_concrete->first;
+       const svalue *&sval = m_concrete->second;
+       return binding_pair (m_map.m_store_mgr.get_concrete_binding (bits), sval);
+     }
+   else
+     {
+       gcc_assert (m_symbolic != m_map.m_symbolic.end ());
+       const region *reg = m_symbolic->m_region;
+       const svalue *&sval = m_symbolic->m_sval;
+       return binding_pair (m_map.m_store_mgr.get_symbolic_binding (reg), sval);
+     }
+ }
+ 
  /* class binding_map.  */
  
+ // Construct an empty binding_map.
+ 
+ binding_map::binding_map (store_manager &store_mgr)
+ : m_store_mgr (store_mgr),
+   m_concrete (),
+   m_symbolic ()
+ {
+ }
+ 
  /* binding_map's copy ctor.  */
  
  binding_map::binding_map (const binding_map &other)
! : m_store_mgr (other.m_store_mgr),
!   m_concrete (other.m_concrete),
!   m_symbolic (other.m_symbolic)
  {
  }
  
  /* binding_map's assignment operator.  */
  
  binding_map&
! binding_map::operator= (const binding_map &other)
  {
+   gcc_assert (&m_store_mgr == &other.m_store_mgr);
+ 
    /* For now, assume we only ever copy to an empty cluster.  */
!   gcc_assert (m_concrete.size () == 0);
!   gcc_assert (m_symbolic.size () == 0);
! 
!   m_concrete = other.m_concrete;
!   m_symbolic = other.m_symbolic;
! 
    return *this;
  }
  
*************** binding_map::operator=(const binding_map
*** 670,690 ****
  bool
  binding_map::operator== (const binding_map &other) const
  {
!   if (m_map.elements () != other.m_map.elements ())
      return false;
  
-   for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
-     {
-       const binding_key *key = (*iter).first;
-       const svalue *sval = (*iter).second;
-       const svalue **other_slot
- 	= const_cast <map_t &> (other.m_map).get (key);
-       if (other_slot == NULL)
- 	return false;
-       if (sval != *other_slot)
- 	return false;
-     }
-   gcc_checking_assert (hash () == other.hash ());
    return true;
  }
  
--- 752,762 ----
  bool
  binding_map::operator== (const binding_map &other) const
  {
!   if (m_concrete != other.m_concrete)
!     return false;
!   if (m_symbolic != other.m_symbolic)
      return false;
  
    return true;
  }
  
*************** hashval_t
*** 694,711 ****
  binding_map::hash () const
  {
    hashval_t result = 0;
!   for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
      {
        /* Use a new hasher for each key to avoid depending on the ordering
  	 of keys when accumulating the result.  */
        inchash::hash hstate;
!       hstate.add_ptr ((*iter).first);
!       hstate.add_ptr ((*iter).second);
        result ^= hstate.end ();
      }
    return result;
  }
  
  /* Dump a representation of this binding_map to PP.
     SIMPLE controls how values and regions are to be printed.
     If MULTILINE, then split the dump over multiple lines and
--- 766,912 ----
  binding_map::hash () const
  {
    hashval_t result = 0;
!   for (auto iter : m_concrete)
!     {
!       result ^= iter.first.hash ();
!       inchash::hash hstate;
!       hstate.add_ptr (iter.second);
!       result ^= hstate.end ();
!     }
!   for (auto iter : m_symbolic)
      {
        /* Use a new hasher for each key to avoid depending on the ordering
  	 of keys when accumulating the result.  */
        inchash::hash hstate;
!       hstate.add_ptr (iter.m_region);
!       hstate.add_ptr (iter.m_sval);
        result ^= hstate.end ();
      }
    return result;
  }
  
+ const svalue *
+ binding_map::get (const binding_key *key) const
+ {
+   if (key->symbolic_p ())
+     {
+       const ana::symbolic_binding &sym_key
+ 	= *static_cast <const ana::symbolic_binding *> (key);
+       const region *reg = sym_key.get_region ();
+ 
+       for (auto iter : m_symbolic)
+ 	{
+ 	  if (iter.m_region == reg)
+ 	    return iter.m_sval;
+ 	}
+       return nullptr;
+     }
+   else
+     {
+       const concrete_binding &conc_key
+ 	= *static_cast <const concrete_binding *> (key);
+       const bit_range &bits = conc_key.get_bit_range ();
+ 
+       concrete_bindings_t::const_iterator iter (m_concrete.find (bits));
+       if (iter != m_concrete.end ())
+ 	return iter->second;
+       else
+ 	return nullptr;
+     }
+ }
+ 
+ void
+ binding_map::put (const binding_key *key, const svalue *sval)
+ {
+   if (key->symbolic_p ())
+     {
+       const ana::symbolic_binding &sym_key
+ 	= *static_cast <const ana::symbolic_binding *> (key);
+       const region *reg = sym_key.get_region ();
+ 
+       m_symbolic.clear ();
+ 
+       m_symbolic.push_back ({reg, sval});
+     }
+   else
+     {
+       const concrete_binding &conc_key
+ 	= *static_cast <const concrete_binding *> (key);
+       const bit_range &bits = conc_key.get_bit_range ();
+ 
+       concrete_bindings_t::iterator iter (m_concrete.find (bits));
+       if (iter != m_concrete.end ())
+ 	(*iter).second = sval;
+       else
+ 	m_concrete.insert ({bits, sval});
+     }
+ }
+ 
+ void
+ binding_map::overwrite (iterator_t &pos, const svalue *v)
+ {
+   gcc_assert (&pos.m_map == this);
+   if (pos.m_symbolic != m_symbolic.end ())
+     (*(pos.m_symbolic)).m_sval = v;
+   else
+     {
+       gcc_assert (pos.m_concrete != m_concrete.end ());
+       (*(pos.m_concrete)).second = v;
+     }
+ }
+ 
+ void
+ binding_map::remove (const binding_key *key)
+ {
+   if (key->symbolic_p ())
+     m_symbolic.clear ();
+   else
+     {
+       const concrete_binding &conc_key
+ 	= *static_cast <const concrete_binding *> (key);
+       const bit_range &bits = conc_key.get_bit_range ();
+       m_concrete.erase (bits);
+     }
+ }
+ 
+ binding_map::const_iterator_t
+ binding_map::begin () const
+ {
+   return binding_map::const_iterator_t (*this,
+ 					m_concrete.begin (),
+ 					m_symbolic.begin ());
+ }
+ 
+ binding_map::const_iterator_t
+ binding_map::end () const
+ {
+   return binding_map::const_iterator_t (*this,
+ 					m_concrete.end (),
+ 					m_symbolic.end ());
+ }
+ 
+ binding_map::iterator_t
+ binding_map::begin ()
+ {
+   return binding_map::iterator_t (*this,
+ 				  m_concrete.begin (),
+ 				  m_symbolic.begin ());
+ }
+ 
+ binding_map::iterator_t
+ binding_map::end ()
+ {
+   return binding_map::iterator_t (*this,
+ 				  m_concrete.end (),
+ 				  m_symbolic.end ());
+ }
+ 
+ size_t
+ binding_map::elements () const
+ {
+   return m_concrete.size () + m_symbolic.size ();
+ }
+ 
  /* Dump a representation of this binding_map to PP.
     SIMPLE controls how values and regions are to be printed.
     If MULTILINE, then split the dump over multiple lines and
*************** void
*** 715,734 ****
  binding_map::dump_to_pp (pretty_printer *pp, bool simple,
  			 bool multiline) 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 *value = *const_cast <map_t &> (m_map).get (key);
        if (multiline)
  	{
  	  pp_string (pp, "    key:   {");
--- 916,926 ----
  binding_map::dump_to_pp (pretty_printer *pp, bool simple,
  			 bool multiline) const
  {
!   bool first = true;
!   for (auto iter : *this)
      {
!       const binding_key *key = iter.m_key;
!       const svalue *value = iter.m_sval;
        if (multiline)
  	{
  	  pp_string (pp, "    key:   {");
*************** binding_map::dump_to_pp (pretty_printer
*** 745,751 ****
  	}
        else
  	{
! 	  if (i > 0)
  	    pp_string (pp, ", ");
  	  pp_string (pp, "binding key: {");
  	  key->dump_to_pp (pp, simple);
--- 937,945 ----
  	}
        else
  	{
! 	  if (first)
! 	    first = false;
! 	  else
  	    pp_string (pp, ", ");
  	  pp_string (pp, "binding key: {");
  	  key->dump_to_pp (pp, simple);
*************** binding_map::dump (bool simple) const
*** 766,771 ****
--- 960,999 ----
    pp_newline (&pp);
  }
  
+ /* Assert that this object is valid.  */
+ 
+ void
+ binding_map::validate () const
+ {
+   const size_t num_concrete = m_concrete.size ();
+   const size_t num_symbolic = m_symbolic.size ();
+ 
+   /* We shouldn't have more than one symbolic key per cluster
+      (or one would have clobbered the other).  */
+   gcc_assert (num_symbolic < 2);
+   /* We can't have both concrete and symbolic keys.  */
+   gcc_assert (num_concrete == 0 || num_symbolic == 0);
+ 
+   /* Check for overlapping concrete bindings.  */
+   for (auto iter = m_concrete.begin (); iter != m_concrete.end (); ++iter)
+     {
+       auto next (iter);
+       ++next;
+       if (next != m_concrete.end ())
+ 	{
+ 	  /* Verify they are in order, and do not overlap.  */
+ 	  const bit_range &iter_bits = iter->first;
+ 	  const bit_range &next_bits = next->first;
+ 	  gcc_assert (iter_bits.get_start_bit_offset ()
+ 		      < next_bits.get_start_bit_offset ());
+ 	  gcc_assert (iter_bits.get_last_bit_offset ()
+ 		      < next_bits.get_start_bit_offset ());
+ 	  gcc_assert (iter_bits.get_next_bit_offset ()
+ 		      <= next_bits.get_start_bit_offset ());
+ 	}
+     }
+ }
+ 
  /* Return a new json::object of the form
     {KEY_DESC : SVALUE_DESC,
      ...for the various key/value pairs in this binding_map}.  */
*************** binding_map::dump (bool simple) const
*** 773,795 ****
  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 ();
!        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 *value = *const_cast <map_t &> (m_map).get (key);
!       label_text key_desc = key->get_desc ();
        map_obj->set (key_desc.get (), value->to_json ());
      }
  
--- 1001,1012 ----
  std::unique_ptr<json::object>
  binding_map::to_json () const
  {
!   auto map_obj = std::make_unique<json::object> ();
  
!   for (auto iter : *this)
      {
!       const svalue *value = iter.m_sval;
!       label_text key_desc = iter.m_key->get_desc ();
        map_obj->set (key_desc.get (), value->to_json ());
      }
  
*************** void
*** 826,845 ****
  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);
      }
--- 1043,1052 ----
  binding_map::add_to_tree_widget (text_art::tree_widget &parent_widget,
  				 const text_art::dump_widget_info &dwi) const
  {
!   for (auto iter : *this)
      {
!       const binding_key *key = iter.m_key;
!       const svalue *sval = iter.m_sval;
        add_binding_to_tree_widget (parent_widget, dwi,
  				  key, sval);
      }
*************** binding_map::cmp (const binding_map &map
*** 855,869 ****
      return count_cmp;
  
    auto_vec <const binding_key *> keys1 (map1.elements ());
!   for (map_t::iterator iter = map1.begin ();
!        iter != map1.end (); ++iter)
!     keys1.quick_push ((*iter).first);
    keys1.qsort (binding_key::cmp_ptrs);
  
    auto_vec <const binding_key *> keys2 (map2.elements ());
!   for (map_t::iterator iter = map2.begin ();
!        iter != map2.end (); ++iter)
!     keys2.quick_push ((*iter).first);
    keys2.qsort (binding_key::cmp_ptrs);
  
    for (size_t i = 0; i < keys1.length (); i++)
--- 1062,1074 ----
      return count_cmp;
  
    auto_vec <const binding_key *> keys1 (map1.elements ());
!   for (auto iter : map1)
!     keys1.quick_push (iter.m_key);
    keys1.qsort (binding_key::cmp_ptrs);
  
    auto_vec <const binding_key *> keys2 (map2.elements ());
!   for (auto iter : map2)
!     keys2.quick_push (iter.m_key);
    keys2.qsort (binding_key::cmp_ptrs);
  
    for (size_t i = 0; i < keys1.length (); i++)
*************** get_svalue_for_ctor_val (tree val, regio
*** 943,949 ****
  {
    /* Reuse the get_rvalue logic from region_model.  */
    region_model m (mgr);
!   return m.get_rvalue (path_var (val, 0), NULL);
  }
  
  /* Bind values from CONSTRUCTOR to this map, relative to
--- 1148,1154 ----
  {
    /* Reuse the get_rvalue logic from region_model.  */
    region_model m (mgr);
!   return m.get_rvalue (path_var (val, 0), nullptr);
  }
  
  /* Bind values from CONSTRUCTOR to this map, relative to
*************** binding_map::get_overlapping_bindings (c
*** 1117,1123 ****
  {
    for (auto iter : *this)
      {
!       const binding_key *iter_key = iter.first;
        if (const concrete_binding *ckey
  	    = key->dyn_cast_concrete_binding ())
  	{
--- 1322,1328 ----
  {
    for (auto iter : *this)
      {
!       const binding_key *iter_key = iter.m_key;
        if (const concrete_binding *ckey
  	    = key->dyn_cast_concrete_binding ())
  	{
*************** binding_map::remove_overlapping_bindings
*** 1221,1227 ****
    auto_vec<const binding_key *> bindings;
    if (always_overlap)
      for (auto iter : *this)
!       bindings.safe_push (iter.first); /* Add all bindings.  */
    else
      /* Just add overlapping bindings.  */
      get_overlapping_bindings (drop_key, &bindings);
--- 1426,1432 ----
    auto_vec<const binding_key *> bindings;
    if (always_overlap)
      for (auto iter : *this)
!       bindings.safe_push (iter.m_key); /* Add all bindings.  */
    else
      /* Just add overlapping bindings.  */
      get_overlapping_bindings (drop_key, &bindings);
*************** binding_map::remove_overlapping_bindings
*** 1255,1261 ****
  	maybe_live_values->add (old_sval);
  
        /* Begin by removing the old binding. */
!       m_map.remove (iter_binding);
  
        /* Don't attempt to handle prefixes/suffixes for the
  	 "always_overlap" case; everything's being removed.  */
--- 1460,1466 ----
  	maybe_live_values->add (old_sval);
  
        /* Begin by removing the old binding. */
!       remove (iter_binding);
  
        /* Don't attempt to handle prefixes/suffixes for the
  	 "always_overlap" case; everything's being removed.  */
*************** binding_map::remove_overlapping_bindings
*** 1287,1293 ****
  		  = old_sval->extract_bit_range (NULL_TREE,
  						 rel_prefix,
  						 mgr->get_svalue_manager ());
! 		m_map.put (prefix_key, prefix_sval);
  	      }
  
  	    if (iter_bits.get_next_bit_offset ()
--- 1492,1498 ----
  		  = old_sval->extract_bit_range (NULL_TREE,
  						 rel_prefix,
  						 mgr->get_svalue_manager ());
! 		put (prefix_key, prefix_sval);
  	      }
  
  	    if (iter_bits.get_next_bit_offset ()
*************** binding_map::remove_overlapping_bindings
*** 1306,1312 ****
  		  = old_sval->extract_bit_range (NULL_TREE,
  						 rel_suffix,
  						 mgr->get_svalue_manager ());
! 		m_map.put (suffix_key, suffix_sval);
  	      }
  	  }
      }
--- 1511,1517 ----
  		  = old_sval->extract_bit_range (NULL_TREE,
  						 rel_suffix,
  						 mgr->get_svalue_manager ());
! 		put (suffix_key, suffix_sval);
  	      }
  	  }
      }
*************** binding_map::remove_overlapping_bindings
*** 1314,1321 ****
  
  /* class binding_cluster.  */
  
! binding_cluster::binding_cluster (const region *base_region)
! : m_base_region (base_region), m_map (),
    m_escaped (false), m_touched (false)
  {
  }
--- 1519,1527 ----
  
  /* class binding_cluster.  */
  
! binding_cluster::binding_cluster (store_manager &store_mgr,
! 				  const region *base_region)
! : m_base_region (base_region), m_map (store_mgr),
    m_escaped (false), m_touched (false)
  {
  }
*************** binding_cluster::dump (bool simple) cons
*** 1431,1450 ****
  void
  binding_cluster::validate () const
  {
!   int num_symbolic = 0;
!   int num_concrete = 0;
!   for (auto iter : m_map)
!     {
!       if (iter.first->symbolic_p ())
! 	num_symbolic++;
!       else
! 	num_concrete++;
!     }
!   /* We shouldn't have more than one symbolic key per cluster
!      (or one would have clobbered the other).  */
!   gcc_assert (num_symbolic < 2);
!   /* We can't have both concrete and symbolic keys.  */
!   gcc_assert (num_concrete == 0 || num_symbolic == 0);
  }
  
  /* Return a new json::object of the form
--- 1637,1643 ----
  void
  binding_cluster::validate () const
  {
!   m_map.validate ();
  }
  
  /* Return a new json::object of the form
*************** binding_cluster::validate () const
*** 1455,1461 ****
  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);
--- 1648,1654 ----
  std::unique_ptr<json::object>
  binding_cluster::to_json () const
  {
!   auto cluster_obj = std::make_unique<json::object> ();
  
    cluster_obj->set_bool ("escaped", m_escaped);
    cluster_obj->set_bool ("touched", m_touched);
*************** binding_cluster::bind_compound_sval (sto
*** 1558,1568 ****
        return;
      }
  
!   for (map_t::iterator iter = compound_sval->begin ();
!        iter != compound_sval->end (); ++iter)
      {
!       const binding_key *iter_key = (*iter).first;
!       const svalue *iter_sval = (*iter).second;
  
        if (const concrete_binding *concrete_key
  	  = iter_key->dyn_cast_concrete_binding ())
--- 1751,1760 ----
        return;
      }
  
!   for (auto iter : *compound_sval)
      {
!       const binding_key *iter_key = iter.m_key;
!       const svalue *iter_sval = iter.m_sval;
  
        if (const concrete_binding *concrete_key
  	  = iter_key->dyn_cast_concrete_binding ())
*************** binding_cluster::bind_compound_sval (sto
*** 1585,1591 ****
  void
  binding_cluster::clobber_region (store_manager *mgr, const region *reg)
  {
!   remove_overlapping_bindings (mgr, reg, NULL, NULL);
  }
  
  /* Remove any bindings for REG within this cluster.  */
--- 1777,1783 ----
  void
  binding_cluster::clobber_region (store_manager *mgr, const region *reg)
  {
!   remove_overlapping_bindings (mgr, reg, nullptr, nullptr);
  }
  
  /* Remove any bindings for REG within this cluster.  */
*************** binding_cluster::purge_state_involving (
*** 1671,1677 ****
    auto_vec<std::pair<const binding_key *, tree> > to_make_unknown;
    for (auto iter : m_map)
      {
!       const binding_key *iter_key = iter.first;
        if (const symbolic_binding *symbolic_key
  	    = iter_key->dyn_cast_symbolic_binding ())
  	{
--- 1863,1869 ----
    auto_vec<std::pair<const binding_key *, tree> > to_make_unknown;
    for (auto iter : m_map)
      {
!       const binding_key *iter_key = iter.m_key;
        if (const symbolic_binding *symbolic_key
  	    = iter_key->dyn_cast_symbolic_binding ())
  	{
*************** binding_cluster::purge_state_involving (
*** 1679,1685 ****
  	  if (reg->involves_p (sval))
  	    to_remove.safe_push (iter_key);
  	}
!       const svalue *iter_sval = iter.second;
        if (iter_sval->involves_p (sval))
  	to_make_unknown.safe_push (std::make_pair(iter_key,
  						  iter_sval->get_type ()));
--- 1871,1877 ----
  	  if (reg->involves_p (sval))
  	    to_remove.safe_push (iter_key);
  	}
!       const svalue *iter_sval = iter.m_sval;
        if (iter_sval->involves_p (sval))
  	to_make_unknown.safe_push (std::make_pair(iter_key,
  						  iter_sval->get_type ()));
*************** binding_cluster::get_binding (store_mana
*** 1705,1711 ****
  			      const region *reg) const
  {
    if (reg->empty_p ())
!     return NULL;
    const binding_key *reg_binding = binding_key::make (mgr, reg);
    const svalue *sval = m_map.get (reg_binding);
    if (sval)
--- 1897,1903 ----
  			      const region *reg) const
  {
    if (reg->empty_p ())
!     return nullptr;
    const binding_key *reg_binding = binding_key::make (mgr, reg);
    const svalue *sval = m_map.get (reg_binding);
    if (sval)
*************** binding_cluster::get_binding_recursive (
*** 1773,1779 ****
  	  return rmm_mgr->get_or_create_sub_svalue (reg->get_type (),
  						    parent_sval, reg);
  	}
!   return NULL;
  }
  
  /* Get any value bound for REG within this cluster.  */
--- 1965,1971 ----
  	  return rmm_mgr->get_or_create_sub_svalue (reg->get_type (),
  						    parent_sval, reg);
  	}
!   return nullptr;
  }
  
  /* Get any value bound for REG within this cluster.  */
*************** binding_cluster::get_any_binding (store_
*** 1821,1827 ****
      return compound_sval;
  
    /* Otherwise, the initial value, or uninitialized.  */
!   return NULL;
  }
  
  /* Attempt to get a compound_svalue for the bindings within the cluster
--- 2013,2019 ----
      return compound_sval;
  
    /* Otherwise, the initial value, or uninitialized.  */
!   return nullptr;
  }
  
  /* Attempt to get a compound_svalue for the bindings within the cluster
*************** binding_cluster::get_any_binding (store_
*** 1833,1839 ****
  
     For example, REG could be one element within an array of structs.
  
!    Return the resulting compound_svalue, or NULL if there's a problem.  */
  
  const svalue *
  binding_cluster::maybe_get_compound_binding (store_manager *mgr,
--- 2025,2031 ----
  
     For example, REG could be one element within an array of structs.
  
!    Return the resulting compound_svalue, or nullptr if there's a problem.  */
  
  const svalue *
  binding_cluster::maybe_get_compound_binding (store_manager *mgr,
*************** binding_cluster::maybe_get_compound_bind
*** 1842,1854 ****
    region_offset cluster_offset
      = m_base_region->get_offset (mgr->get_svalue_manager ());
    if (cluster_offset.symbolic_p ())
!     return NULL;
    region_offset reg_offset = reg->get_offset (mgr->get_svalue_manager ());
    if (reg_offset.symbolic_p ())
!     return NULL;
  
    if (reg->empty_p ())
!     return NULL;
  
    region_model_manager *sval_mgr = mgr->get_svalue_manager ();
  
--- 2034,2046 ----
    region_offset cluster_offset
      = m_base_region->get_offset (mgr->get_svalue_manager ());
    if (cluster_offset.symbolic_p ())
!     return nullptr;
    region_offset reg_offset = reg->get_offset (mgr->get_svalue_manager ());
    if (reg_offset.symbolic_p ())
!     return nullptr;
  
    if (reg->empty_p ())
!     return nullptr;
  
    region_model_manager *sval_mgr = mgr->get_svalue_manager ();
  
*************** binding_cluster::maybe_get_compound_bind
*** 1868,1875 ****
       perhaps we should have a spatial-organized data structure for
       concrete keys, though.  */
  
!   binding_map result_map;
!   binding_map default_map;
  
    /* Set up default values in default_map.  */
    const svalue *default_sval;
--- 2060,2067 ----
       perhaps we should have a spatial-organized data structure for
       concrete keys, though.  */
  
!   binding_map result_map (*mgr);
!   binding_map default_map (*mgr);
  
    /* Set up default values in default_map.  */
    const svalue *default_sval;
*************** binding_cluster::maybe_get_compound_bind
*** 1887,1898 ****
      return nullptr;
    const concrete_binding *default_key_relative_to_reg
       = mgr->get_concrete_binding (0, concrete_default_key->get_size_in_bits ());
    default_map.put (default_key_relative_to_reg, default_sval);
  
!   for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
      {
!       const binding_key *key = (*iter).first;
!       const svalue *sval = (*iter).second;
  
        if (const concrete_binding *concrete_key
  	  = key->dyn_cast_concrete_binding ())
--- 2079,2091 ----
      return nullptr;
    const concrete_binding *default_key_relative_to_reg
       = mgr->get_concrete_binding (0, concrete_default_key->get_size_in_bits ());
+ 
    default_map.put (default_key_relative_to_reg, default_sval);
  
!   for (auto iter : m_map)
      {
!       const binding_key *key = iter.m_key;
!       const svalue *sval = iter.m_sval;
  
        if (const concrete_binding *concrete_key
  	  = key->dyn_cast_concrete_binding ())
*************** binding_cluster::maybe_get_compound_bind
*** 1901,1907 ****
  
  	  bit_size_t reg_bit_size;
  	  if (!reg->get_bit_size (&reg_bit_size))
! 	    return NULL;
  
  	  bit_range reg_range (reg_offset.get_bit_offset (),
  			       reg_bit_size);
--- 2094,2100 ----
  
  	  bit_size_t reg_bit_size;
  	  if (!reg->get_bit_size (&reg_bit_size))
! 	    return nullptr;
  
  	  bit_range reg_range (reg_offset.get_bit_offset (),
  			       reg_bit_size);
*************** binding_cluster::maybe_get_compound_bind
*** 1930,1936 ****
  		 it overlaps with offset_concrete_key.  */
  	      default_map.remove_overlapping_bindings (mgr,
  						       offset_concrete_key,
! 						       NULL, NULL, false);
  	    }
  	  else if (bound_range.contains_p (reg_range, &subrange))
  	    {
--- 2123,2129 ----
  		 it overlaps with offset_concrete_key.  */
  	      default_map.remove_overlapping_bindings (mgr,
  						       offset_concrete_key,
! 						       nullptr, nullptr, false);
  	    }
  	  else if (bound_range.contains_p (reg_range, &subrange))
  	    {
*************** binding_cluster::maybe_get_compound_bind
*** 1964,1985 ****
  		 it overlaps with overlap_concrete_key.  */
  	      default_map.remove_overlapping_bindings (mgr,
  						       overlap_concrete_key,
! 						       NULL, NULL, false);
  	    }
  	}
        else
  	/* Can't handle symbolic bindings.  */
! 	return NULL;
      }
  
    if (result_map.elements () == 0)
!     return NULL;
  
    /* Merge any bindings from default_map into result_map.  */
    for (auto iter : default_map)
      {
!       const binding_key *key = iter.first;
!       const svalue *sval = iter.second;
        result_map.put (key, sval);
      }
  
--- 2157,2178 ----
  		 it overlaps with overlap_concrete_key.  */
  	      default_map.remove_overlapping_bindings (mgr,
  						       overlap_concrete_key,
! 						       nullptr, nullptr, false);
  	    }
  	}
        else
  	/* Can't handle symbolic bindings.  */
! 	return nullptr;
      }
  
    if (result_map.elements () == 0)
!     return nullptr;
  
    /* Merge any bindings from default_map into result_map.  */
    for (auto iter : default_map)
      {
!       const binding_key *key = iter.m_key;
!       const svalue *sval = iter.m_sval;
        result_map.put (key, sval);
      }
  
*************** binding_cluster::can_merge_p (const bind
*** 2051,2087 ****
  
    /* At least one of CLUSTER_A and CLUSTER_B are non-NULL, but either
       could be NULL.  Handle these cases.  */
!   if (cluster_a == NULL)
      {
!       gcc_assert (cluster_b != NULL);
        gcc_assert (cluster_b->m_base_region == out_cluster->m_base_region);
        out_cluster->make_unknown_relative_to (cluster_b, out_store, mgr);
        return true;
      }
!   if (cluster_b == NULL)
      {
!       gcc_assert (cluster_a != NULL);
        gcc_assert (cluster_a->m_base_region == out_cluster->m_base_region);
        out_cluster->make_unknown_relative_to (cluster_a, out_store, mgr);
        return true;
      }
  
    /* The "both inputs are non-NULL" case.  */
!   gcc_assert (cluster_a != NULL && cluster_b != NULL);
    gcc_assert (cluster_a->m_base_region == out_cluster->m_base_region);
    gcc_assert (cluster_b->m_base_region == out_cluster->m_base_region);
  
    hash_set<const binding_key *> keys;
!   for (map_t::iterator iter_a = cluster_a->m_map.begin ();
!        iter_a != cluster_a->m_map.end (); ++iter_a)
      {
!       const binding_key *key_a = (*iter_a).first;
        keys.add (key_a);
      }
!   for (map_t::iterator iter_b = cluster_b->m_map.begin ();
!        iter_b != cluster_b->m_map.end (); ++iter_b)
      {
!       const binding_key *key_b = (*iter_b).first;
        keys.add (key_b);
      }
    int num_symbolic_keys = 0;
--- 2244,2278 ----
  
    /* At least one of CLUSTER_A and CLUSTER_B are non-NULL, but either
       could be NULL.  Handle these cases.  */
!   if (cluster_a == nullptr)
      {
!       gcc_assert (cluster_b != nullptr);
        gcc_assert (cluster_b->m_base_region == out_cluster->m_base_region);
        out_cluster->make_unknown_relative_to (cluster_b, out_store, mgr);
        return true;
      }
!   if (cluster_b == nullptr)
      {
!       gcc_assert (cluster_a != nullptr);
        gcc_assert (cluster_a->m_base_region == out_cluster->m_base_region);
        out_cluster->make_unknown_relative_to (cluster_a, out_store, mgr);
        return true;
      }
  
    /* The "both inputs are non-NULL" case.  */
!   gcc_assert (cluster_a != nullptr && cluster_b != nullptr);
    gcc_assert (cluster_a->m_base_region == out_cluster->m_base_region);
    gcc_assert (cluster_b->m_base_region == out_cluster->m_base_region);
  
    hash_set<const binding_key *> keys;
!   for (auto iter_a  : cluster_a->m_map)
      {
!       const binding_key *key_a = iter_a.m_key;
        keys.add (key_a);
      }
!   for (auto iter_b : cluster_b->m_map)
      {
!       const binding_key *key_b = iter_b.m_key;
        keys.add (key_b);
      }
    int num_symbolic_keys = 0;
*************** binding_cluster::can_merge_p (const bind
*** 2136,2141 ****
--- 2327,2354 ----
        out_cluster->m_map.put (key, unknown_sval);
      }
  
+   /* We might now have overlapping concrete clusters in OUT_CLUSTER.
+      Reject such cases.  */
+   if (num_concrete_keys > 0)
+     {
+       /* Check for overlapping concrete bindings.  */
+       const auto &concrete_bindings
+ 	= out_cluster->get_map ().get_concrete_bindings ();
+       for (auto iter = concrete_bindings.begin ();
+ 	   iter != concrete_bindings.end (); ++iter)
+ 	{
+ 	  auto next (iter);
+ 	  ++next;
+ 	  if (next != concrete_bindings.end ())
+ 	    {
+ 	      const bit_range &iter_bits = iter->first;
+ 	      const bit_range &next_bits = next->first;
+ 	      if (iter_bits.intersects_p (next_bits))
+ 		return false;
+ 	    }
+ 	}
+     }
+ 
    /* We can only have at most one symbolic key per cluster,
       and if we do, we can't have any concrete keys.
       If this happens, mark the cluster as touched, with no keys.  */
*************** binding_cluster::can_merge_p (const bind
*** 2143,2149 ****
        || (num_concrete_keys > 0 && num_symbolic_keys > 0))
      {
        out_cluster->m_touched = true;
!       out_cluster->m_map.empty ();
      }
  
    /* We don't handle other kinds of overlaps yet.  */
--- 2356,2362 ----
        || (num_concrete_keys > 0 && num_symbolic_keys > 0))
      {
        out_cluster->m_touched = true;
!       out_cluster->m_map.clear ();
      }
  
    /* We don't handle other kinds of overlaps yet.  */
*************** binding_cluster::make_unknown_relative_t
*** 2162,2172 ****
  					   store *out_store,
  					   store_manager *mgr)
  {
!   for (map_t::iterator iter = other->m_map.begin ();
!        iter != other->m_map.end (); ++iter)
      {
!       const binding_key *iter_key = (*iter).first;
!       const svalue *iter_sval = (*iter).second;
        const svalue *unknown_sval
  	= mgr->get_svalue_manager ()->get_or_create_unknown_svalue
  	  (iter_sval->get_type ());
--- 2375,2384 ----
  					   store *out_store,
  					   store_manager *mgr)
  {
!   for (auto iter : *other)
      {
!       const binding_key *iter_key = iter.m_key;
!       const svalue *iter_sval = iter.m_sval;
        const svalue *unknown_sval
  	= mgr->get_svalue_manager ()->get_or_create_unknown_svalue
  	  (iter_sval->get_type ());
*************** binding_cluster::make_unknown_relative_t
*** 2186,2192 ****
  	  if (base_reg->tracked_p ()
  	      && !base_reg->symbolic_for_unknown_ptr_p ())
  	    {
! 	      binding_cluster *c = out_store->get_or_create_cluster (base_reg);
  	      c->mark_as_escaped ();
  	    }
  	}
--- 2398,2405 ----
  	  if (base_reg->tracked_p ()
  	      && !base_reg->symbolic_for_unknown_ptr_p ())
  	    {
! 	      binding_cluster *c
! 		= out_store->get_or_create_cluster (*mgr, base_reg);
  	      c->mark_as_escaped ();
  	    }
  	}
*************** binding_cluster::mark_as_escaped ()
*** 2208,2227 ****
     Use P to purge state involving conjured_svalues.  */
  
  void
! binding_cluster::on_unknown_fncall (const gcall *call,
  				    store_manager *mgr,
  				    const conjured_purge &p)
  {
    if (m_escaped)
      {
!       m_map.empty ();
  
        if (!m_base_region->empty_p ())
  	{
  	  /* Bind it to a new "conjured" value using CALL.  */
  	  const svalue *sval
  	    = mgr->get_svalue_manager ()->get_or_create_conjured_svalue
! 	    (m_base_region->get_type (), call, m_base_region, p);
  	  bind (mgr, m_base_region, sval);
  	}
  
--- 2421,2440 ----
     Use P to purge state involving conjured_svalues.  */
  
  void
! binding_cluster::on_unknown_fncall (const gcall &call,
  				    store_manager *mgr,
  				    const conjured_purge &p)
  {
    if (m_escaped)
      {
!       m_map.clear ();
  
        if (!m_base_region->empty_p ())
  	{
  	  /* Bind it to a new "conjured" value using CALL.  */
  	  const svalue *sval
  	    = mgr->get_svalue_manager ()->get_or_create_conjured_svalue
! 	    (m_base_region->get_type (), &call, m_base_region, p);
  	  bind (mgr, m_base_region, sval);
  	}
  
*************** binding_cluster::on_asm (const gasm *stm
*** 2237,2243 ****
  			 store_manager *mgr,
  			 const conjured_purge &p)
  {
!   m_map.empty ();
  
    /* Bind it to a new "conjured" value using CALL.  */
    const svalue *sval
--- 2450,2456 ----
  			 store_manager *mgr,
  			 const conjured_purge &p)
  {
!   m_map.clear ();
  
    /* Bind it to a new "conjured" value using CALL.  */
    const svalue *sval
*************** binding_cluster::get_representative_path
*** 2300,2309 ****
  {
    sval = simplify_for_binding (sval);
  
!   for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
      {
!       const binding_key *key = (*iter).first;
!       const svalue *bound_sval = (*iter).second;
        if (bound_sval == sval)
  	{
  	  if (const concrete_binding *ckey
--- 2513,2522 ----
  {
    sval = simplify_for_binding (sval);
  
!   for (auto iter : m_map)
      {
!       const binding_key *key = iter.m_key;
!       const svalue *bound_sval = iter.m_sval;
        if (bound_sval == sval)
  	{
  	  if (const concrete_binding *ckey
*************** binding_cluster::get_representative_path
*** 2340,2346 ****
      }
  }
  
! /* Get any svalue bound to KEY, or NULL.  */
  
  const svalue *
  binding_cluster::get_any_value (const binding_key *key) const
--- 2553,2559 ----
      }
  }
  
! /* Get any svalue bound to KEY, or nullptr.  */
  
  const svalue *
  binding_cluster::get_any_value (const binding_key *key) const
*************** binding_cluster::get_any_value (const bi
*** 2355,2370 ****
  const svalue *
  binding_cluster::maybe_get_simple_value (store_manager *mgr) const
  {
!   /* Fail gracefully if MGR is NULL to make it easier to dump store
       instances in the debugger.  */
!   if (mgr == NULL)
!     return NULL;
  
    if (m_map.elements () != 1)
!     return NULL;
  
    if (m_base_region->empty_p ())
!     return NULL;
  
    const binding_key *key = binding_key::make (mgr, m_base_region);
    return get_any_value (key);
--- 2568,2583 ----
  const svalue *
  binding_cluster::maybe_get_simple_value (store_manager *mgr) const
  {
!   /* Fail gracefully if MGR is nullptr to make it easier to dump store
       instances in the debugger.  */
!   if (mgr == nullptr)
!     return nullptr;
  
    if (m_map.elements () != 1)
!     return nullptr;
  
    if (m_base_region->empty_p ())
!     return nullptr;
  
    const binding_key *key = binding_key::make (mgr, m_base_region);
    return get_any_value (key);
*************** store::operator== (const store &other) c
*** 2488,2494 ****
        binding_cluster *c = (*iter).second;
        binding_cluster **other_slot
  	= const_cast <cluster_map_t &> (other.m_cluster_map).get (reg);
!       if (other_slot == NULL)
  	return false;
        if (*c != **other_slot)
  	return false;
--- 2701,2707 ----
        binding_cluster *c = (*iter).second;
        binding_cluster **other_slot
  	= const_cast <cluster_map_t &> (other.m_cluster_map).get (reg);
!       if (other_slot == nullptr)
  	return false;
        if (*c != **other_slot)
  	return false;
*************** get_sorted_parent_regions (auto_vec<cons
*** 2541,2547 ****
  
  /* Dump a representation of this store to PP, using SIMPLE to control how
     svalues and regions are printed.
!    MGR is used for simplifying dumps if non-NULL, but can also be NULL
     (to make it easier to use from the debugger).  */
  
  void
--- 2754,2760 ----
  
  /* Dump a representation of this store to PP, using SIMPLE to control how
     svalues and regions are printed.
!    MGR is used for simplifying dumps if non-NULL, but can also be nullptr
     (to make it easier to use from the debugger).  */
  
  void
*************** DEBUG_FUNCTION void
*** 2650,2656 ****
  store::dump (bool simple) const
  {
    tree_dump_pretty_printer pp (stderr);
!   dump_to_pp (&pp, simple, true, NULL);
    pp_newline (&pp);
  }
  
--- 2863,2869 ----
  store::dump (bool simple) const
  {
    tree_dump_pretty_printer pp (stderr);
!   dump_to_pp (&pp, simple, true, nullptr);
    pp_newline (&pp);
  }
  
*************** store::validate () const
*** 2672,2678 ****
  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;
--- 2885,2891 ----
  std::unique_ptr<json::object>
  store::to_json () const
  {
!   auto store_obj = std::make_unique<json::object> ();
  
    /* Sort into some deterministic order.  */
    auto_vec<const region *> base_regions;
*************** store::to_json () const
*** 2695,2701 ****
      {
        gcc_assert (parent_reg);
  
!       auto clusters_in_parent_reg_obj = ::make_unique<json::object> ();
  
        const region *base_reg;
        unsigned j;
--- 2908,2914 ----
      {
        gcc_assert (parent_reg);
  
!       auto clusters_in_parent_reg_obj = std::make_unique<json::object> ();
  
        const region *base_reg;
        unsigned j;
*************** store::make_dump_widget (const text_art:
*** 2782,2788 ****
    return store_widget;
  }
  
! /* Get any svalue bound to REG, or NULL.  */
  
  const svalue *
  store::get_any_binding (store_manager *mgr, const region *reg) const
--- 2995,3001 ----
    return store_widget;
  }
  
! /* Get any svalue bound to REG, or nullptr.  */
  
  const svalue *
  store::get_any_binding (store_manager *mgr, const region *reg) const
*************** store::get_any_binding (store_manager *m
*** 2791,2797 ****
    binding_cluster **cluster_slot
      = const_cast <cluster_map_t &> (m_cluster_map).get (base_reg);
    if (!cluster_slot)
!     return NULL;
    return (*cluster_slot)->get_any_binding (mgr, reg);
  }
  
--- 3004,3010 ----
    binding_cluster **cluster_slot
      = const_cast <cluster_map_t &> (m_cluster_map).get (base_reg);
    if (!cluster_slot)
!     return nullptr;
    return (*cluster_slot)->get_any_binding (mgr, reg);
  }
  
*************** store::set_value (store_manager *mgr, co
*** 2817,2823 ****
      {
        /* Reject attempting to bind values into a symbolic region
  	 for an unknown ptr; merely invalidate values below.  */
!       lhs_cluster = NULL;
  
        /* The LHS of the write is *UNKNOWN.  If the RHS is a pointer,
  	 then treat the region being pointed to as having escaped.  */
--- 3030,3036 ----
      {
        /* Reject attempting to bind values into a symbolic region
  	 for an unknown ptr; merely invalidate values below.  */
!       lhs_cluster = nullptr;
  
        /* The LHS of the write is *UNKNOWN.  If the RHS is a pointer,
  	 then treat the region being pointed to as having escaped.  */
*************** store::set_value (store_manager *mgr, co
*** 2825,2845 ****
  	{
  	  const region *ptr_dst = ptr_sval->get_pointee ();
  	  const region *ptr_base_reg = ptr_dst->get_base_region ();
! 	  mark_as_escaped (ptr_base_reg);
  	}
        if (uncertainty)
  	uncertainty->on_maybe_bound_sval (rhs_sval);
      }
    else if (lhs_base_reg->tracked_p ())
      {
!       lhs_cluster = get_or_create_cluster (lhs_base_reg);
        lhs_cluster->bind (mgr, lhs_reg, rhs_sval);
      }
    else
      {
        /* Reject attempting to bind values into an untracked region;
  	 merely invalidate values below.  */
!       lhs_cluster = NULL;
      }
  
    /* Bindings to a cluster can affect other clusters if a symbolic
--- 3038,3058 ----
  	{
  	  const region *ptr_dst = ptr_sval->get_pointee ();
  	  const region *ptr_base_reg = ptr_dst->get_base_region ();
! 	  mark_as_escaped (*mgr, ptr_base_reg);
  	}
        if (uncertainty)
  	uncertainty->on_maybe_bound_sval (rhs_sval);
      }
    else if (lhs_base_reg->tracked_p ())
      {
!       lhs_cluster = get_or_create_cluster (*mgr, lhs_base_reg);
        lhs_cluster->bind (mgr, lhs_reg, rhs_sval);
      }
    else
      {
        /* Reject attempting to bind values into an untracked region;
  	 merely invalidate values below.  */
!       lhs_cluster = nullptr;
      }
  
    /* Bindings to a cluster can affect other clusters if a symbolic
*************** store::set_value (store_manager *mgr, co
*** 2859,2865 ****
        const region *iter_base_reg = (*iter).first;
        binding_cluster *iter_cluster = (*iter).second;
        if (iter_base_reg != lhs_base_reg
! 	  && (lhs_cluster == NULL
  	      || lhs_cluster->symbolic_p ()
  	      || iter_cluster->symbolic_p ()))
  	{
--- 3072,3078 ----
        const region *iter_base_reg = (*iter).first;
        binding_cluster *iter_cluster = (*iter).second;
        if (iter_base_reg != lhs_base_reg
! 	  && (lhs_cluster == nullptr
  	      || lhs_cluster->symbolic_p ()
  	      || iter_cluster->symbolic_p ()))
  	{
*************** store::set_value (store_manager *mgr, co
*** 2908,2914 ****
       (e.g. marking regions as escaped).
       We do this after the iteration to avoid potentially changing
       m_cluster_map whilst iterating over it.  */
!   on_maybe_live_values (maybe_live_values);
  }
  
  /* Determine if BASE_REG_A could be an alias of BASE_REG_B.  */
--- 3121,3127 ----
       (e.g. marking regions as escaped).
       We do this after the iteration to avoid potentially changing
       m_cluster_map whilst iterating over it.  */
!   on_maybe_live_values (*mgr, maybe_live_values);
  }
  
  /* Determine if BASE_REG_A could be an alias of BASE_REG_B.  */
*************** store::eval_alias (const region *base_re
*** 2925,2930 ****
--- 3138,3147 ----
    if (decl_b && TREE_CODE (decl_b) == SSA_NAME)
      return tristate::TS_FALSE;
  
+   /* Different decls don't alias.  */
+   if (decl_a && decl_b && decl_a != decl_b)
+     return tristate::TS_FALSE;
+ 
    /* Try both ways, for symmetry.  */
    tristate ts_ab = eval_alias_1 (base_reg_a, base_reg_b);
    if (ts_ab.is_false ())
*************** store::eval_alias_1 (const region *base_
*** 3004,3017 ****
  /* Record all of the values in MAYBE_LIVE_VALUES as being possibly live.  */
  
  void
! store::on_maybe_live_values (const svalue_set &maybe_live_values)
  {
    for (auto sval : maybe_live_values)
      {
        if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
  	{
  	  const region *base_reg = ptr_sval->get_pointee ()->get_base_region ();
! 	  mark_as_escaped (base_reg);
  	}
      }
  }
--- 3221,3235 ----
  /* Record all of the values in MAYBE_LIVE_VALUES as being possibly live.  */
  
  void
! store::on_maybe_live_values (store_manager &mgr,
! 			     const svalue_set &maybe_live_values)
  {
    for (auto sval : maybe_live_values)
      {
        if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ())
  	{
  	  const region *base_reg = ptr_sval->get_pointee ()->get_base_region ();
! 	  mark_as_escaped (mgr, base_reg);
  	}
      }
  }
*************** store::fill_region (store_manager *mgr,
*** 3065,3071 ****
    if (base_reg->symbolic_for_unknown_ptr_p ()
        || !base_reg->tracked_p ())
      return;
!   binding_cluster *cluster = get_or_create_cluster (base_reg);
    cluster->fill_region (mgr, reg, sval);
  }
  
--- 3283,3289 ----
    if (base_reg->symbolic_for_unknown_ptr_p ()
        || !base_reg->tracked_p ())
      return;
!   binding_cluster *cluster = get_or_create_cluster (*mgr, base_reg);
    cluster->fill_region (mgr, reg, sval);
  }
  
*************** store::mark_region_as_unknown (store_man
*** 3090,3096 ****
    if (base_reg->symbolic_for_unknown_ptr_p ()
        || !base_reg->tracked_p ())
      return;
!   binding_cluster *cluster = get_or_create_cluster (base_reg);
    cluster->mark_region_as_unknown (mgr, reg, reg, uncertainty,
  				   maybe_live_values);
  }
--- 3308,3314 ----
    if (base_reg->symbolic_for_unknown_ptr_p ()
        || !base_reg->tracked_p ())
      return;
!   binding_cluster *cluster = get_or_create_cluster (*mgr, base_reg);
    cluster->mark_region_as_unknown (mgr, reg, reg, uncertainty,
  				   maybe_live_values);
  }
*************** store::purge_state_involving (const sval
*** 3118,3124 ****
      purge_cluster (iter);
  }
  
! /* Get the cluster for BASE_REG, or NULL (const version).  */
  
  const binding_cluster *
  store::get_cluster (const region *base_reg) const
--- 3336,3342 ----
      purge_cluster (iter);
  }
  
! /* Get the cluster for BASE_REG, or nullptr (const version).  */
  
  const binding_cluster *
  store::get_cluster (const region *base_reg) const
*************** store::get_cluster (const region *base_r
*** 3129,3138 ****
  	= const_cast <cluster_map_t &> (m_cluster_map).get (base_reg))
      return *slot;
    else
!     return NULL;
  }
  
! /* Get the cluster for BASE_REG, or NULL (non-const version).  */
  
  binding_cluster *
  store::get_cluster (const region *base_reg)
--- 3347,3356 ----
  	= const_cast <cluster_map_t &> (m_cluster_map).get (base_reg))
      return *slot;
    else
!     return nullptr;
  }
  
! /* Get the cluster for BASE_REG, or nullptr (non-const version).  */
  
  binding_cluster *
  store::get_cluster (const region *base_reg)
*************** store::get_cluster (const region *base_r
*** 3142,3154 ****
    if (binding_cluster **slot = m_cluster_map.get (base_reg))
      return *slot;
    else
!     return NULL;
  }
  
  /* Get the cluster for BASE_REG, creating it if doesn't already exist.  */
  
  binding_cluster *
! store::get_or_create_cluster (const region *base_reg)
  {
    gcc_assert (base_reg);
    gcc_assert (base_reg->get_base_region () == base_reg);
--- 3360,3373 ----
    if (binding_cluster **slot = m_cluster_map.get (base_reg))
      return *slot;
    else
!     return nullptr;
  }
  
  /* Get the cluster for BASE_REG, creating it if doesn't already exist.  */
  
  binding_cluster *
! store::get_or_create_cluster (store_manager &store_mgr,
! 			      const region *base_reg)
  {
    gcc_assert (base_reg);
    gcc_assert (base_reg->get_base_region () == base_reg);
*************** store::get_or_create_cluster (const regi
*** 3162,3168 ****
    if (binding_cluster **slot = m_cluster_map.get (base_reg))
      return *slot;
  
!   binding_cluster *cluster = new binding_cluster (base_reg);
    m_cluster_map.put (base_reg, cluster);
  
    return cluster;
--- 3381,3387 ----
    if (binding_cluster **slot = m_cluster_map.get (base_reg))
      return *slot;
  
!   binding_cluster *cluster = new binding_cluster (store_mgr, base_reg);
    m_cluster_map.put (base_reg, cluster);
  
    return cluster;
*************** store::can_merge_p (const store *store_a
*** 3227,3233 ****
        const binding_cluster *cluster_b = store_b->get_cluster (base_reg);
        /* At least one of cluster_a and cluster_b must be non-NULL.  */
        binding_cluster *out_cluster
! 	= out_store->get_or_create_cluster (base_reg);
        if (!binding_cluster::can_merge_p (cluster_a, cluster_b,
  					 out_cluster, out_store, mgr, merger))
  	return false;
--- 3446,3452 ----
        const binding_cluster *cluster_b = store_b->get_cluster (base_reg);
        /* At least one of cluster_a and cluster_b must be non-NULL.  */
        binding_cluster *out_cluster
! 	= out_store->get_or_create_cluster (*mgr, base_reg);
        if (!binding_cluster::can_merge_p (cluster_a, cluster_b,
  					 out_cluster, out_store, mgr, merger))
  	return false;
*************** store::can_merge_p (const store *store_a
*** 3242,3248 ****
     isn't reachable from args of those calls.  */
  
  void
! store::mark_as_escaped (const region *base_reg)
  {
    gcc_assert (base_reg);
    gcc_assert (base_reg->get_base_region () == base_reg);
--- 3461,3467 ----
     isn't reachable from args of those calls.  */
  
  void
! store::mark_as_escaped (store_manager &mgr, const region *base_reg)
  {
    gcc_assert (base_reg);
    gcc_assert (base_reg->get_base_region () == base_reg);
*************** store::mark_as_escaped (const region *ba
*** 3251,3257 ****
        || !base_reg->tracked_p ())
      return;
  
!   binding_cluster *cluster = get_or_create_cluster (base_reg);
    cluster->mark_as_escaped ();
  }
  
--- 3470,3476 ----
        || !base_reg->tracked_p ())
      return;
  
!   binding_cluster *cluster = get_or_create_cluster (mgr, base_reg);
    cluster->mark_as_escaped ();
  }
  
*************** store::mark_as_escaped (const region *ba
*** 3259,3265 ****
     (either in this fncall, or in a prior one).  */
  
  void
! store::on_unknown_fncall (const gcall *call, store_manager *mgr,
  			  const conjured_purge &p)
  {
    m_called_unknown_fn = true;
--- 3478,3484 ----
     (either in this fncall, or in a prior one).  */
  
  void
! store::on_unknown_fncall (const gcall &call, store_manager *mgr,
  			  const conjured_purge &p)
  {
    m_called_unknown_fn = true;
*************** store::remove_overlapping_bindings (stor
*** 3342,3350 ****
  	  delete cluster;
  	  return;
  	}
!       /* Pass NULL for the maybe_live_values here, as we don't want to
  	 record the old svalues as being maybe-bound.  */
!       cluster->remove_overlapping_bindings (mgr, reg, uncertainty, NULL);
      }
  }
  
--- 3561,3569 ----
  	  delete cluster;
  	  return;
  	}
!       /* Pass nullptr for the maybe_live_values here, as we don't want to
  	 record the old svalues as being maybe-bound.  */
!       cluster->remove_overlapping_bindings (mgr, reg, uncertainty, nullptr);
      }
  }
  
*************** store::canonicalize (store_manager *mgr)
*** 3382,3388 ****
        binding_cluster *cluster = (*iter).second;
        for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin ();
  	   bind_iter != cluster->m_map.end (); ++bind_iter)
! 	(*bind_iter).second->accept (&s);
      }
  
    /* Locate heap-allocated regions that have empty bindings that weren't
--- 3601,3607 ----
        binding_cluster *cluster = (*iter).second;
        for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin ();
  	   bind_iter != cluster->m_map.end (); ++bind_iter)
! 	(*bind_iter).m_sval->accept (&s);
      }
  
    /* Locate heap-allocated regions that have empty bindings that weren't
*************** store::canonicalize (store_manager *mgr)
*** 3425,3430 ****
--- 3644,3669 ----
      }
  }
  
+ static bool
+ needs_loop_replay_fixup_p (const svalue &sval)
+ {
+   struct my_visitor : public visitor
+   {
+     my_visitor () : m_found_widening (false) {}
+ 
+     void
+     visit_widening_svalue (const widening_svalue *) final override
+     {
+       m_found_widening = true;
+     }
+ 
+     bool m_found_widening;
+   } v;
+ 
+   sval.accept (&v);
+   return v.m_found_widening;
+ }
+ 
  /* Subroutine for use by exploded_path::feasible_p.
  
     We need to deal with state differences between:
*************** store::loop_replay_fixup (const store *o
*** 3463,3474 ****
        for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin ();
  	   bind_iter != cluster->m_map.end (); ++bind_iter)
  	{
! 	  const binding_key *key = (*bind_iter).first;
! 	  const svalue *sval = (*bind_iter).second;
! 	  if (sval->get_kind () == SK_WIDENING)
  	    {
  	      binding_cluster *this_cluster
! 		= get_or_create_cluster (base_reg);
  	      const svalue *unknown
  		= mgr->get_or_create_unknown_svalue (sval->get_type ());
  	      this_cluster->bind_key (key, unknown);
--- 3702,3714 ----
        for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin ();
  	   bind_iter != cluster->m_map.end (); ++bind_iter)
  	{
! 	  const binding_key *key = (*bind_iter).m_key;
! 	  const svalue *sval = (*bind_iter).m_sval;
! 	  if (needs_loop_replay_fixup_p (*sval))
  	    {
  	      binding_cluster *this_cluster
! 		= get_or_create_cluster (*mgr->get_store_manager (),
! 					 base_reg);
  	      const svalue *unknown
  		= mgr->get_or_create_unknown_svalue (sval->get_type ());
  	      this_cluster->bind_key (key, unknown);
*************** store::replay_call_summary_cluster (call
*** 3526,3532 ****
  	    && !caller_base_reg->symbolic_for_unknown_ptr_p ())
  	  {
  	    binding_cluster *caller_cluster
! 	      = get_or_create_cluster (caller_base_reg);
  	    if (summary_cluster->escaped_p ())
  	      caller_cluster->mark_as_escaped ();
  	    if (summary_cluster->touched_p ())
--- 3766,3772 ----
  	    && !caller_base_reg->symbolic_for_unknown_ptr_p ())
  	  {
  	    binding_cluster *caller_cluster
! 	      = get_or_create_cluster (*mgr, caller_base_reg);
  	    if (summary_cluster->escaped_p ())
  	      caller_cluster->mark_as_escaped ();
  	    if (summary_cluster->touched_p ())
*************** store::replay_call_summary_cluster (call
*** 3587,3593 ****
  	  caller_sval =
  	    reg_mgr->get_or_create_unknown_svalue (summary_sval->get_type ());
  	set_value (mgr, caller_dest_reg,
! 		   caller_sval, NULL /* uncertainty_t * */);
        }
        break;
  
--- 3827,3833 ----
  	  caller_sval =
  	    reg_mgr->get_or_create_unknown_svalue (summary_sval->get_type ());
  	set_value (mgr, caller_dest_reg,
! 		   caller_sval, nullptr /* uncertainty_t * */);
        }
        break;
  
*************** store::replay_call_summary_cluster (call
*** 3612,3618 ****
  	  caller_sval =
  	    reg_mgr->get_or_create_unknown_svalue (summary_sval->get_type ());
  	set_value (mgr, caller_dest_reg,
! 		   caller_sval, NULL /* uncertainty_t * */);
        }
        break;
  
--- 3852,3858 ----
  	  caller_sval =
  	    reg_mgr->get_or_create_unknown_svalue (summary_sval->get_type ());
  	set_value (mgr, caller_dest_reg,
! 		   caller_sval, nullptr /* uncertainty_t * */);
        }
        break;
  
*************** assert_disjoint (const location &loc,
*** 3807,3813 ****
  static void
  test_binding_key_overlap ()
  {
!   store_manager mgr (NULL);
  
    /* Various 8-bit bindings.  */
    const concrete_binding *cb_0_7 = mgr.get_concrete_binding (0, 8);
--- 4047,4053 ----
  static void
  test_binding_key_overlap ()
  {
!   store_manager mgr (nullptr);
  
    /* Various 8-bit bindings.  */
    const concrete_binding *cb_0_7 = mgr.get_concrete_binding (0, 8);
*************** test_binding_key_overlap ()
*** 3851,3856 ****
--- 4091,4112 ----
    ASSERT_DISJOINT (cb_8_23, cb_24_31);
  }
  
+ static void
+ test_binding_map_ops ()
+ {
+   region_model_manager region_mgr;
+   store_manager store_mgr (&region_mgr);
+ 
+   /* Assignment of empty.  */
+   {
+     binding_map src (store_mgr);
+     binding_map dst (store_mgr);
+     dst = src;
+ 
+     ASSERT_EQ (src, dst);
+  }
+ }
+ 
  /* Run all of the selftests within this file.  */
  
  void
*************** analyzer_store_cc_tests ()
*** 3859,3864 ****
--- 4115,4121 ----
    test_bit_range_intersects_p ();
    test_bit_range_from_mask ();
    test_binding_key_overlap ();
+   test_binding_map_ops ();
  }
  
  } // namespace selftest
diff -Nrcpad gcc-15.2.0/gcc/analyzer/store.h gcc-16.1.0-RC-20260423/gcc/analyzer/store.h
*** gcc-15.2.0/gcc/analyzer/store.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/store.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Classes for modeling the state of memory.
!    Copyright (C) 2020-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 222,230 ****
    static int cmp (const binding_key *, const binding_key *);
  
    virtual const concrete_binding *dyn_cast_concrete_binding () const
!   { return NULL; }
    virtual const symbolic_binding *dyn_cast_symbolic_binding () const
!   { return NULL; }
  };
  
  /* A concrete range of bits.  */
--- 222,230 ----
    static int cmp (const binding_key *, const binding_key *);
  
    virtual const concrete_binding *dyn_cast_concrete_binding () const
!   { return nullptr; }
    virtual const symbolic_binding *dyn_cast_symbolic_binding () const
!   { return nullptr; }
  };
  
  /* A concrete range of bits.  */
*************** struct bit_range
*** 299,304 ****
--- 299,322 ----
  
    bool as_byte_range (byte_range *out) const;
  
+   bool
+   operator< (const bit_range &other) const
+   {
+     if (m_start_bit_offset < other.m_start_bit_offset)
+       return true;
+     if (m_start_bit_offset > other.m_start_bit_offset)
+       return false;
+     return (m_size_in_bits < other.m_size_in_bits);
+   }
+ 
+   hashval_t hash () const
+   {
+     inchash::hash hstate;
+     hstate.add_wide_int (m_start_bit_offset);
+     hstate.add_wide_int (m_size_in_bits);
+     return hstate.end ();
+   }
+ 
    bit_offset_t m_start_bit_offset;
    bit_size_t m_size_in_bits;
  };
*************** public:
*** 386,398 ****
    }
    bool concrete_p () const final override { return true; }
  
!   hashval_t hash () const
!   {
!     inchash::hash hstate;
!     hstate.add_wide_int (m_bit_range.m_start_bit_offset);
!     hstate.add_wide_int (m_bit_range.m_size_in_bits);
!     return hstate.end ();
!   }
    bool operator== (const concrete_binding &other) const
    {
      return m_bit_range == other.m_bit_range;
--- 404,410 ----
    }
    bool concrete_p () const final override { return true; }
  
!   hashval_t hash () const { return m_bit_range.hash (); }
    bool operator== (const concrete_binding &other) const
    {
      return m_bit_range == other.m_bit_range;
*************** public:
*** 482,491 ****
    static int cmp_ptr_ptr (const void *, const void *);
  
    void mark_deleted () { m_region = reinterpret_cast<const region *> (1); }
!   void mark_empty () { m_region = NULL; }
    bool is_deleted () const
    { return m_region == reinterpret_cast<const region *> (1); }
!   bool is_empty () const { return m_region == NULL; }
  
  private:
    const region *m_region;
--- 494,503 ----
    static int cmp_ptr_ptr (const void *, const void *);
  
    void mark_deleted () { m_region = reinterpret_cast<const region *> (1); }
!   void mark_empty () { m_region = nullptr; }
    bool is_deleted () const
    { return m_region == reinterpret_cast<const region *> (1); }
!   bool is_empty () const { return m_region == nullptr; }
  
  private:
    const region *m_region;
*************** template <> struct default_hash_traits<a
*** 502,516 ****
  namespace ana {
  
  /* A mapping from binding_keys to svalues, for use by binding_cluster
!    and compound_svalue.  */
  
  class binding_map
  {
  public:
!   typedef hash_map <const binding_key *, const svalue *> map_t;
!   typedef map_t::iterator iterator_t;
  
!   binding_map () : m_map () {}
    binding_map (const binding_map &other);
    binding_map& operator=(const binding_map &other);
  
--- 514,613 ----
  namespace ana {
  
  /* A mapping from binding_keys to svalues, for use by binding_cluster
!    and compound_svalue.
!    We store a map from concrete keys to svalues, which is ordered by
!    the start offset.
!    We also store a vector of (symbolic key, svalue) pairs, but for now
!    this has maximum length of 1.  */
  
  class binding_map
  {
  public:
!   struct symbolic_binding
!   {
!     bool operator== (const symbolic_binding &other) const
!     {
!       return (m_region == other.m_region
! 	      && m_sval == other.m_sval);
!     }
  
!     const region *m_region;
!     const svalue *m_sval;
!   };
!   using concrete_bindings_t = std::map<bit_range, const svalue *>;
!   using symbolic_bindings_t = std::vector<symbolic_binding>;
! 
!   struct binding_pair
!   {
!     binding_pair (const binding_key *key,
! 		  const svalue *sval)
!     : m_key (key),
!       m_sval (sval)
!     {
!     }
! 
!     const binding_key *m_key;
!     const svalue *m_sval;
!   };
! 
!   typedef class const_iterator
!   {
!   public:
!     const_iterator (const binding_map &map,
! 		    concrete_bindings_t::const_iterator concrete_iter,
! 		    symbolic_bindings_t::const_iterator symbolic_iter)
!     : m_map (map),
!       m_concrete (concrete_iter),
!       m_symbolic (symbolic_iter)
!     {
!     }
!     bool operator== (const const_iterator &other) const;
!     bool operator!= (const const_iterator &other) const
!     {
!       return !(*this == other);
!     }
!     const_iterator &operator++ ();
! 
!     binding_pair operator* ();
!     const svalue *get_svalue () const;
! 
!   private:
!     const binding_map &m_map;
!     concrete_bindings_t::const_iterator m_concrete;
!     symbolic_bindings_t::const_iterator m_symbolic;
!   } const_iterator_t;
! 
!   typedef class iterator
!   {
!   public:
!     friend class binding_map;
! 
!     iterator (const binding_map &map,
! 	      concrete_bindings_t::iterator concrete_iter,
! 	      symbolic_bindings_t::iterator symbolic_iter)
!     : m_map (map),
!       m_concrete (concrete_iter),
!       m_symbolic (symbolic_iter)
!     {
!     }
!     bool operator== (const iterator &other) const;
!     bool operator!= (const iterator &other) const
!     {
!       return !(*this == other);
!     }
!     iterator &operator++ ();
! 
!     binding_pair operator* ();
! 
!     const binding_key *get_key () const;
! 
!   private:
!     const binding_map &m_map;
!     concrete_bindings_t::iterator m_concrete;
!     symbolic_bindings_t::iterator m_symbolic;
!   } iterator_t;
! 
!   binding_map (store_manager &store_mgr);
    binding_map (const binding_map &other);
    binding_map& operator=(const binding_map &other);
  
*************** public:
*** 522,551 ****
  
    hashval_t hash () const;
  
!   const svalue *get (const binding_key *key) const
    {
!     const svalue **slot = const_cast<map_t &> (m_map).get (key);
!     if (slot)
!       return *slot;
!     else
!       return NULL;
    }
!   bool put (const binding_key *k, const svalue *v)
    {
!     gcc_assert (v);
!     return m_map.put (k, v);
    }
  
!   void remove (const binding_key *k) { m_map.remove (k); }
!   void empty () { m_map.empty (); }
! 
!   iterator_t begin () const { return m_map.begin (); }
!   iterator_t end () const { return m_map.end (); }
!   size_t elements () const { return m_map.elements (); }
  
    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,
--- 619,651 ----
  
    hashval_t hash () const;
  
!   const svalue *get (const binding_key *key) const;
!   void put (const binding_key *k, const svalue *v);
!   void overwrite (iterator_t &pos, const svalue *v);
! 
!   void remove (const binding_key *k);
!   void clear ()
    {
!     m_concrete.clear ();
!     m_symbolic.clear ();
    }
! 
!   bool empty_p () const
    {
!     return m_concrete.empty () && m_symbolic.empty ();
    }
  
!   const_iterator_t begin () const;
!   const_iterator_t end () const;
!   iterator_t begin ();
!   iterator_t end ();
!   size_t elements () const;
  
    void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const;
    void dump (bool simple) const;
  
+   void validate () const;
+ 
    std::unique_ptr<json::object> to_json () const;
  
    void add_to_tree_widget (text_art::tree_widget &parent_widget,
*************** public:
*** 562,567 ****
--- 662,673 ----
  				    svalue_set *maybe_live_values,
  				    bool always_overlap);
  
+   const concrete_bindings_t &
+   get_concrete_bindings () const { return m_concrete; }
+ 
+   const symbolic_bindings_t &
+   get_symbolic_bindings () const { return m_symbolic; }
+ 
  private:
    void get_overlapping_bindings (const binding_key *key,
  				 auto_vec<const binding_key *> *out);
*************** private:
*** 573,588 ****
  					region_model_manager *mgr,
  					tree index, tree val);
  
!   map_t m_map;
  };
  
- /* Concept: BindingVisitor, for use by binding_cluster::for_each_binding
-    and store::for_each_binding.
- 
-    Should implement:
-      void on_binding (const binding_key *key, const svalue *&sval);
- */
- 
  /* All of the bindings within a store for regions that share the same
     base region.  */
  
--- 679,689 ----
  					region_model_manager *mgr,
  					tree index, tree val);
  
!   store_manager &m_store_mgr;
!   concrete_bindings_t m_concrete;
!   symbolic_bindings_t m_symbolic;
  };
  
  /* All of the bindings within a store for regions that share the same
     base region.  */
  
*************** class binding_cluster
*** 591,600 ****
  public:
    friend class store;
  
!   typedef hash_map <const binding_key *, const svalue *> map_t;
!   typedef map_t::iterator iterator_t;
  
!   binding_cluster (const region *base_region);
    binding_cluster (const binding_cluster &other);
    binding_cluster& operator=(const binding_cluster &other);
  
--- 692,701 ----
  public:
    friend class store;
  
!   typedef binding_map::const_iterator const_iterator_t;
!   typedef binding_map::iterator iterator_t;
  
!   binding_cluster (store_manager &store_mgr, const region *base_region);
    binding_cluster (const binding_cluster &other);
    binding_cluster& operator=(const binding_cluster &other);
  
*************** public:
*** 651,658 ****
    void for_each_value (void (*cb) (const svalue *sval, T user_data),
  		       T user_data) const
    {
!     for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
!       cb ((*iter).second, user_data);
    }
  
    static bool can_merge_p (const binding_cluster *cluster_a,
--- 752,759 ----
    void for_each_value (void (*cb) (const svalue *sval, T user_data),
  		       T user_data) const
    {
!     for (auto iter = m_map.begin (); iter != m_map.end (); ++iter)
!       cb (iter.get_svalue (), user_data);
    }
  
    static bool can_merge_p (const binding_cluster *cluster_a,
*************** public:
*** 666,672 ****
  				 store_manager *mgr);
  
    void mark_as_escaped ();
!   void on_unknown_fncall (const gcall *call, store_manager *mgr,
  			  const conjured_purge &p);
    void on_asm (const gasm *stmt, store_manager *mgr,
  	       const conjured_purge &p);
--- 767,773 ----
  				 store_manager *mgr);
  
    void mark_as_escaped ();
!   void on_unknown_fncall (const gcall &call, store_manager *mgr,
  			  const conjured_purge &p);
    void on_asm (const gasm *stmt, store_manager *mgr,
  	       const conjured_purge &p);
*************** public:
*** 675,681 ****
    bool touched_p () const { return m_touched; }
  
    bool redundant_p () const;
!   bool empty_p () const { return m_map.elements () == 0; }
  
    void get_representative_path_vars (const region_model *model,
  				     svalue_set *visited,
--- 776,782 ----
    bool touched_p () const { return m_touched; }
  
    bool redundant_p () const;
!   bool empty_p () const { return m_map.empty_p (); }
  
    void get_representative_path_vars (const region_model *model,
  				     svalue_set *visited,
*************** public:
*** 686,706 ****
  
    const svalue *maybe_get_simple_value (store_manager *mgr) const;
  
!   template <typename BindingVisitor>
!   void for_each_binding (BindingVisitor &v) const
!   {
!     for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter)
!       {
! 	const binding_key *key = (*iter).first;
! 	const svalue *&sval = (*iter).second;
! 	v.on_binding (key, sval);
!       }
!   }
  
!   iterator_t begin () const { return m_map.begin (); }
!   iterator_t end () const { return m_map.end (); }
  
    const binding_map &get_map () const { return m_map; }
  
  private:
    const svalue *get_any_value (const binding_key *key) const;
--- 787,800 ----
  
    const svalue *maybe_get_simple_value (store_manager *mgr) const;
  
!   const_iterator_t begin () const { return m_map.begin (); }
!   const_iterator_t end () const { return m_map.end (); }
  
!   iterator_t begin () { return m_map.begin (); }
!   iterator_t end () { return m_map.end (); }
  
    const binding_map &get_map () const { return m_map; }
+   binding_map &get_map () { return m_map; }
  
  private:
    const svalue *get_any_value (const binding_key *key) const;
*************** public:
*** 783,789 ****
  
    const binding_cluster *get_cluster (const region *base_reg) const;
    binding_cluster *get_cluster (const region *base_reg);
!   binding_cluster *get_or_create_cluster (const region *base_reg);
    void purge_cluster (const region *base_reg);
  
    template <typename T>
--- 877,884 ----
  
    const binding_cluster *get_cluster (const region *base_reg) const;
    binding_cluster *get_cluster (const region *base_reg);
!   binding_cluster *get_or_create_cluster (store_manager &store_mgr,
! 					  const region *base_reg);
    void purge_cluster (const region *base_reg);
  
    template <typename T>
*************** public:
*** 799,806 ****
  			   store *out_store, store_manager *mgr,
  			   model_merger *merger);
  
!   void mark_as_escaped (const region *base_reg);
!   void on_unknown_fncall (const gcall *call, store_manager *mgr,
  			  const conjured_purge &p);
    bool escaped_p (const region *reg) const;
  
--- 894,901 ----
  			   store *out_store, store_manager *mgr,
  			   model_merger *merger);
  
!   void mark_as_escaped (store_manager &mgr, const region *base_reg);
!   void on_unknown_fncall (const gcall &call, store_manager *mgr,
  			  const conjured_purge &p);
    bool escaped_p (const region *reg) const;
  
*************** public:
*** 816,829 ****
    tristate eval_alias (const region *base_reg_a,
  		       const region *base_reg_b) const;
  
-   template <typename BindingVisitor>
-   void for_each_binding (BindingVisitor &v)
-   {
-     for (cluster_map_t::iterator iter = m_cluster_map.begin ();
- 	 iter != m_cluster_map.end (); ++iter)
-       (*iter).second->for_each_binding (v);
-   }
- 
    void canonicalize (store_manager *mgr);
    void loop_replay_fixup (const store *other_store,
  			  region_model_manager *mgr);
--- 911,916 ----
*************** public:
*** 833,839 ****
    void replay_call_summary_cluster (call_summary_replay &r,
  				    const store &summary,
  				    const region *base_reg);
!   void on_maybe_live_values (const svalue_set &maybe_live_values);
  
  private:
    void remove_overlapping_bindings (store_manager *mgr, const region *reg,
--- 920,927 ----
    void replay_call_summary_cluster (call_summary_replay &r,
  				    const store &summary,
  				    const region *base_reg);
!   void on_maybe_live_values (store_manager &mgr,
! 			     const svalue_set &maybe_live_values);
  
  private:
    void remove_overlapping_bindings (store_manager *mgr, const region *reg,
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph-fixup-locations.cc gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-fixup-locations.cc
*** gcc-15.2.0/gcc/analyzer/supergraph-fixup-locations.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-fixup-locations.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,123 ----
+ /* Fixing up location_t values of supernodes.
+    Copyright (C) 2025-2026 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/>.  */
+ 
+ #define INCLUDE_DEQUE
+ #include "analyzer/common.h"
+ 
+ #include "timevar.h"
+ 
+ #include "analyzer/supergraph.h"
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/supergraph-manipulation.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ namespace {
+ 
+ class location_fixer
+ {
+ public:
+   location_fixer (supergraph &sg,
+ 		  ana::logger *logger)
+   : m_logger (logger),
+     m_stats ()
+   {
+     for (auto node : sg.m_nodes)
+       if (node->m_loc == UNKNOWN_LOCATION)
+ 	m_worklist.ensure_node_queued (node, logger);
+   }
+ 
+   /* High level ops.  */
+ 
+   supernode *
+   pop_next_node_in_queue ()
+   {
+     return m_worklist.pop ();
+   }
+ 
+   void
+   consider_node (supernode *node)
+   {
+     m_stats.m_num_iterations++;
+ 
+     log_nesting_level sentinel (m_logger, "considering SN: %i", node->m_id);
+ 
+     /* Already have a location for this node.  */
+     if (useful_location_p (node->m_loc))
+       return;
+ 
+     /* For snodes with UNKNOWN_LOCATION with a single in-edge, try to
+        propagate the location from it.  */
+     if (node->m_preds.length () == 1)
+       {
+ 	auto in_edge = node->m_preds[0];
+ 	if (useful_location_p (in_edge->m_src->m_loc))
+ 	  {
+ 	    node->m_loc = in_edge->m_src->m_loc;
+ 	    m_stats.m_num_copies++;
+ 	    if (m_logger)
+ 	      m_logger->log ("copying location 0x%lx from SN %i to SN %i",
+ 			     node->m_loc,
+ 			     in_edge->m_src->m_id, node->m_id);
+ 	    for (auto out_edge : node->m_succs)
+ 	      m_worklist.ensure_node_queued (out_edge->m_dest, m_logger);
+ 	  }
+       }
+   }
+ 
+ private:
+   supergraph_manipulation::worklist m_worklist;
+   ana::logger *m_logger;
+   struct stats
+   {
+     stats () = default;
+ 
+     void log (ana::logger &logger)
+     {
+       logger.log ("# iterations taken: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_iterations);
+       logger.log ("# locations copied: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_copies);
+     }
+ 
+     size_t m_num_iterations;
+     size_t m_num_copies;
+ 
+   } m_stats;
+ };
+ 
+ } // anonymous namespace
+ 
+ void
+ supergraph::fixup_locations (logger *logger)
+ {
+   auto_timevar tv (TV_ANALYZER_SUPERGRAPH_FIXUP_LOCATIONS);
+   LOG_SCOPE (logger);
+ 
+   location_fixer opt (*this, logger);
+   while (supernode *node = opt.pop_next_node_in_queue ())
+     opt.consider_node (node);
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph-manipulation.h gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-manipulation.h
*** gcc-15.2.0/gcc/analyzer/supergraph-manipulation.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-manipulation.h	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,73 ----
+ /* Classes for manipulating the supergraph.
+    Copyright (C) 2025-2026 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_SUPERGRAPH_MANIPULATION_H
+ #define GCC_ANALYZER_SUPERGRAPH_MANIPULATION_H
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ namespace supergraph_manipulation {
+ 
+ class worklist
+ {
+ public:
+   worklist ()
+   : m_indices ()
+   {
+     bitmap_clear (m_indices);
+   }
+ 
+   void ensure_node_queued (supernode *node, ana::logger *logger)
+   {
+     if (bitmap_bit_p (m_indices, node->m_id))
+       return; // already in queue
+     if (logger)
+       logger->log ("queued SN: %i", node->m_id);
+     m_queue.push_back (node);
+     bitmap_set_bit (m_indices, node->m_id);
+   }
+ 
+   supernode *pop ()
+   {
+     if (m_queue.empty ())
+       return nullptr;
+     supernode *node = m_queue.front ();
+     m_queue.pop_front ();
+     bitmap_clear_bit (m_indices, node->m_id);
+     return node;
+   }
+ 
+ private:
+   // The queue
+   std::deque<supernode *> m_queue;
+ 
+   /* Indices of all nodes in the queue, so
+      we can lazily add them in constant time.  */
+   auto_bitmap m_indices;
+ };
+ 
+ 
+ } // namespace ana::supergraph_manipulation
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
+ 
+ #endif /* GCC_ANALYZER_SUPERGRAPH_MANIPULATION_H */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph-simplify.cc gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-simplify.cc
*** gcc-15.2.0/gcc/analyzer/supergraph-simplify.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-simplify.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,319 ----
+ /* Simplifying the supergraph.
+    Copyright (C) 2025-2026 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/>.  */
+ 
+ #define INCLUDE_DEQUE
+ #define INCLUDE_SET
+ #include "analyzer/common.h"
+ 
+ #include "cgraph.h"
+ #include "timevar.h"
+ 
+ #include "analyzer/supergraph.h"
+ #include "analyzer/analyzer-logging.h"
+ #include "analyzer/supergraph-manipulation.h"
+ #include "analyzer/bar-chart.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ namespace {
+ 
+ /* A class for tracking a set of simplifications to a supergraph.
+    supergraph.m_nodes and supergraph.m_edges may contain deleted object
+    during the lifetime of this class; they are removed at the end.  */
+ 
+ class simplifier
+ {
+ public:
+   simplifier (supergraph &sg,
+ 	      ana::logger *logger)
+   : m_sg (sg),
+     m_nodes_to_remove (),
+     m_edges_to_remove (),
+     m_logger (logger),
+     m_stats ()
+   {
+     for (auto node : sg.m_nodes)
+       m_worklist.ensure_node_queued (node, logger);
+   }
+ 
+   ~simplifier ()
+   {
+     // Remove nodes from m_sg.m_nodes and delete them
+     m_sg.delete_nodes (m_nodes_to_remove);
+ 
+     // Remove edges from m_sg.m_edges and delete them
+     {
+       unsigned read_index, write_index;
+       superedge **elem_ptr;
+       VEC_ORDERED_REMOVE_IF (m_sg.m_edges, read_index, write_index, elem_ptr,
+ 			     edge_to_be_removed_p (*elem_ptr));
+       for (auto iter : m_edges_to_remove)
+ 	delete iter;
+     }
+ 
+     if (m_logger)
+       {
+ 	log_nesting_level sentinel (m_logger, "stats");
+ 	m_stats.log (*m_logger);
+       }
+   }
+ 
+   /* Manipulations: logged, and refreshing the worklist.  */
+ 
+   void
+   set_edge_dest (superedge *edge, supernode *new_dest)
+   {
+     if (edge->m_dest == new_dest)
+       return;
+     log_nesting_level sentinel
+       (m_logger, "updating edge dest: SN: %i -> SN: {%i, %i}",
+        edge->m_src->m_id,
+        edge->m_dest->m_id,
+        new_dest->m_id);
+     m_worklist.ensure_node_queued (edge->m_src, m_logger);
+     m_worklist.ensure_node_queued (edge->m_dest, m_logger);
+     m_worklist.ensure_node_queued (new_dest, m_logger);
+ 
+     edge->set_dest (new_dest);
+ 
+     m_stats.m_num_set_edge_dest++;
+   }
+ 
+   void
+   remove_node (supernode *node)
+   {
+     log_nesting_level sentinel
+       (m_logger, "removing node: SN: %i", node->m_id);
+     for (auto in_edge : node->m_preds)
+       remove_edge (in_edge);
+     for (auto out_edge : node->m_succs)
+       remove_edge (out_edge);
+     m_nodes_to_remove.insert (node);
+     m_stats.m_num_remove_node++;
+   }
+ 
+   void
+   remove_edge (superedge *edge)
+   {
+     log_nesting_level sentinel
+       (m_logger, "removing edge dest: SN: %i -> SN: %i",
+        edge->m_src->m_id,
+        edge->m_dest->m_id);
+     gcc_assert (!edge->preserve_p ());
+ 
+     m_worklist.ensure_node_queued (edge->m_src, m_logger);
+     m_worklist.ensure_node_queued (edge->m_dest, m_logger);
+ 
+     edge->m_src->remove_out_edge (edge);
+     edge->m_dest->remove_in_edge (edge);
+ 
+     m_edges_to_remove.insert (edge);
+ 
+     m_stats.m_num_remove_edge++;
+   }
+ 
+   /* High level ops.  */
+ 
+   supernode *
+   pop_next_node_in_queue ()
+   {
+     return m_worklist.pop ();
+   }
+ 
+   void
+   consider_node (supernode *node)
+   {
+     m_stats.m_num_iterations++;
+ 
+     log_nesting_level sentinel (m_logger, "considering SN: %i", node->m_id);
+ 
+     /* Eliminate nodes with no in-edges that aren't function entry nodes.  */
+     if (node->m_preds.length () == 0
+ 	&& !node->entry_p ())
+       {
+ 	log_nesting_level s2 (m_logger, "no in-edges");
+ 	remove_node (node);
+ 	return;
+       }
+ 
+     /* Handle nodes with a single out-edge.  */
+     if (node->m_succs.length () == 1)
+       if (consider_single_out_edge (node, node->m_succs[0]))
+ 	return;
+   }
+ 
+   bool
+   consider_single_out_edge (supernode *node,
+ 			    superedge *single_out_edge)
+   {
+     if (node->preserve_p ())
+       {
+ 	log_nesting_level s3
+ 	  (m_logger,
+ 	   "node has preserve_p flag; preserving");
+ 	return false;
+       }
+     if (single_out_edge->preserve_p ())
+       {
+ 	log_nesting_level s3
+ 	  (m_logger,
+ 	   "edge has preserve_p flag; preserving");
+ 	return false;
+       }
+ 
+     /* Is the single out-edge a no-op?  */
+     if (!single_out_edge->get_op ())
+       {
+ 	/* If the node doesn't add useful location information, we can
+ 	   redirect all in-edges to the node to point at the outedge's dst.  */
+ 	log_nesting_level s2 (m_logger,
+ 			      "single outedge is no-op (to SN: %i)",
+ 			      node->m_succs[0]->m_dest->m_id);
+ 	bool redirect = false;
+ 	if (node->m_loc == UNKNOWN_LOCATION)
+ 	  {
+ 	    log_nesting_level s3
+ 	      (m_logger,
+ 	       "node is at UNKNOWN_LOCATION; redirecting in-edges");
+ 	    redirect = true;
+ 	  }
+ 	else if (node->m_loc == single_out_edge->m_dest->m_loc)
+ 	  {
+ 	    log_nesting_level s3
+ 	      (m_logger,
+ 	       "node has same location as successor; redirecting in-edges");
+ 	    redirect = true;
+ 	  }
+ 
+ 	if (redirect)
+ 	  {
+ 	    for (auto in_edge : node->m_preds)
+ 	      set_edge_dest (in_edge, single_out_edge->m_dest);
+ 	    return true;
+ 	  }
+ 
+ 	return false;
+       }
+ 
+     gcc_assert (single_out_edge->get_op ());
+ 
+     return false;
+   }
+ 
+ private:
+   bool edge_to_be_removed_p (superedge *edge)
+   {
+     return m_edges_to_remove.find (edge) != m_edges_to_remove.end ();
+   }
+ 
+   supergraph &m_sg;
+   supergraph_manipulation::worklist m_worklist;
+   std::set<supernode *> m_nodes_to_remove;
+   std::set<superedge *> m_edges_to_remove;
+   ana::logger *m_logger;
+   struct stats
+   {
+     stats () = default;
+ 
+     void log (ana::logger &logger)
+     {
+       logger.log ("# iterations taken: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_iterations);
+       logger.log ("# nodes removed: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_remove_node);
+       logger.log ("# edges removed: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_remove_edge);
+       logger.log ("# set_edge_dest: " HOST_SIZE_T_PRINT_UNSIGNED,
+ 		  (fmt_size_t)m_num_set_edge_dest);
+     }
+ 
+     size_t m_num_iterations;
+     size_t m_num_remove_node;
+     size_t m_num_remove_edge;
+     size_t m_num_set_edge_dest;
+ 
+   } m_stats;
+ };
+ 
+ } // anonymous namespace
+ 
+ void
+ supergraph::log_stats (logger *logger) const
+ {
+   if (!logger)
+     return;
+ 
+   logger->log ("# nodes: %u", m_nodes.length ());
+   logger->log ("# edges: %u", m_edges.length ());
+ 
+   /* Show per-function bar charts of supernodes per function.  */
+   {
+     bar_chart snodes_per_function;
+     logger->log ("snodes per function:");
+ 
+     cgraph_node *cgnode;
+     FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cgnode)
+       {
+ 	function *fn = cgnode->get_fun ();
+ 
+ 	int snodes_for_this_function = 0;
+ 	for (auto node : m_nodes)
+ 	  if (node->get_function () == fn)
+ 	    ++snodes_for_this_function;
+ 
+ 	pretty_printer pp;
+ 	pp_format_decoder (&pp) = default_tree_printer;
+ 	pp_printf (&pp, "%qD", fn->decl);
+ 	snodes_per_function.add_item (pp_formatted_text (&pp),
+ 				      snodes_for_this_function);
+       }
+ 
+     snodes_per_function.print (logger->get_printer ());
+   }
+ }
+ 
+ void
+ supergraph::simplify (logger *logger)
+ {
+   auto_timevar tv (TV_ANALYZER_SUPERGRAPH_SIMPLIFY);
+   LOG_SCOPE (logger);
+ 
+   {
+     log_nesting_level sentinel (logger, "before simplification:");
+     log_stats (logger);
+   }
+ 
+   {
+     simplifier opt (*this, logger);
+     while (supernode *node = opt.pop_next_node_in_queue ())
+       opt.consider_node (node);
+   }
+ 
+   {
+     log_nesting_level sentinel (logger, "after simplification");
+     log_stats (logger);
+   }
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph-sorting.cc gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-sorting.cc
*** gcc-15.2.0/gcc/analyzer/supergraph-sorting.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph-sorting.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,267 ----
+ /* Sorting the nodes in the supergraph.
+    Copyright (C) 2025-2026 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/>.  */
+ 
+ #define INCLUDE_SET
+ #include "analyzer/common.h"
+ 
+ #include "cgraph.h"
+ #include "alloc-pool.h"
+ #include "fibonacci_heap.h"
+ #include "timevar.h"
+ 
+ #include "analyzer/supergraph.h"
+ #include "analyzer/analyzer-logging.h"
+ 
+ #if ENABLE_ANALYZER
+ 
+ namespace ana {
+ 
+ /* Update m_nodes to be ORDERING.
+    Update the m_id of all nodes to reflect the new orderding.
+    This assumes that all nodes are in ORDERING; does not delete
+    any underlying nodes.  */
+ 
+ void
+ supergraph::reorder_nodes_and_ids (const std::vector<supernode *> &ordering,
+ 				   logger *logger)
+ {
+   LOG_SCOPE (logger);
+ 
+   m_nodes.truncate (0);
+ 
+   for (size_t new_id = 0; new_id < ordering.size (); ++new_id)
+     {
+       supernode *snode = ordering[new_id];
+       if (logger)
+ 	{
+ 	  if ((size_t)snode->m_id == new_id)
+ 	    logger->log ("SN %i is unchanged", snode->m_id);
+ 	  else
+ 	    logger->log ("old SN %i is now SN %li", snode->m_id, new_id);
+ 	}
+       m_nodes.safe_push (snode);
+       snode->m_id = new_id;
+     }
+ 
+   m_next_snode_id = m_nodes.length ();
+ }
+ 
+ /* std::set::contains is C++20 onwards.  */
+ template <typename T>
+ static bool
+ set_contains_p (const std::set<T> &s, T v)
+ {
+   return s.find (v) != s.end ();
+ }
+ 
+ namespace {
+ 
+ class sorting_worklist
+ {
+ public:
+   sorting_worklist ()
+   : m_queue (key_t (nullptr))
+   {
+   }
+ 
+   void add_node (supernode *n);
+   supernode *take_next (logger *logger);
+   bool contains_p (supernode *n) const;
+ 
+ private:
+   class key_t
+   {
+   public:
+     key_t (supernode *snode)
+     : m_snode (snode)
+     {}
+ 
+     bool operator< (const key_t &other) const
+     {
+       return cmp (*this, other) < 0;
+     }
+ 
+     bool operator== (const key_t &other) const
+     {
+       return cmp (*this, other) == 0;
+     }
+ 
+     bool operator> (const key_t &other) const
+     {
+       return !(*this == other || *this < other);
+     }
+ 
+   private:
+     static int cmp (const key_t &ka, const key_t &kb);
+     supernode *m_snode;
+   };
+ 
+   bool
+   already_seen_all_predecessors_p (const supernode *n,
+ 				   logger *logger) const;
+ 
+   std::set<supernode *> m_set_of_ordered_nodes;
+   std::set<supernode *> m_set_of_queued_nodes;
+   typedef fibonacci_heap<key_t, supernode> queue_t;
+   queue_t m_queue;
+ };
+ 
+ void
+ sorting_worklist::add_node (supernode *n)
+ {
+   m_queue.insert ({n}, n);
+   m_set_of_queued_nodes.insert (n);
+ }
+ 
+ supernode *
+ sorting_worklist::take_next (logger *logger)
+ {
+   if (m_queue.empty ())
+     return nullptr;
+ 
+   std::vector<supernode *> rejected;
+ 
+   /* First, try to find a node for which all predecessors
+      have been ordered.  */
+   while (!m_queue.empty ())
+     {
+       supernode *candidate = m_queue.extract_min ();
+ 
+       // n shouldn't be already within the ordering
+       gcc_assert (!set_contains_p (m_set_of_ordered_nodes, candidate));
+ 
+       if (logger)
+ 	logger->log ("consider SN %i from worklist", candidate->m_id);
+ 
+       if (already_seen_all_predecessors_p (candidate, logger))
+ 	{
+ 	  if (logger)
+ 	    logger->log ("all predecessors of SN %i seen; using it",
+ 			 candidate->m_id);
+ 	  for (auto r : rejected)
+ 	    add_node (r);
+ 	  m_set_of_ordered_nodes.insert (candidate);
+ 	  m_set_of_queued_nodes.erase (candidate);
+ 	  return candidate;
+ 	}
+       else
+ 	rejected.push_back (candidate);
+     }
+ 
+   /* Otherwise, simply use the first node.  */
+   for (auto r : rejected)
+     add_node (r);
+   supernode *n = m_queue.extract_min ();
+   if (logger)
+     logger->log ("using first in queue: SN %i", n->m_id);
+   m_set_of_ordered_nodes.insert (n);
+   m_set_of_queued_nodes.erase (n);
+   return n;
+ }
+ 
+ bool
+ sorting_worklist::contains_p (supernode *n) const
+ {
+   return (m_set_of_queued_nodes.find (n) != m_set_of_queued_nodes.end ()
+ 	  || m_set_of_ordered_nodes.find (n) != m_set_of_ordered_nodes.end ());
+ }
+ 
+ int
+ sorting_worklist::key_t::cmp (const key_t &ka, const key_t &kb)
+ {
+   const supernode *snode_a = ka.m_snode;
+   const supernode *snode_b = kb.m_snode;
+ 
+   /* Sort by BB.  */
+   if (int bb_cmp = snode_a->m_bb->index - snode_b->m_bb->index)
+     return bb_cmp;
+ 
+   /* Sort by existing id.  */
+   return snode_a->m_id - snode_b->m_id;
+ }
+ 
+ bool
+ sorting_worklist::already_seen_all_predecessors_p (const supernode *n,
+ 						   logger *logger) const
+ {
+   for (auto e : n->m_preds)
+     if (!set_contains_p (m_set_of_ordered_nodes, e->m_src))
+       {
+ 	if (logger)
+ 	  logger->log ("not yet ordered predecessor SN %i", e->m_src->m_id);
+ 	return false;
+       }
+   return true;
+ }
+ 
+ static std::vector<supernode *>
+ get_node_ordering (const supergraph &sg,
+ 		   logger *logger)
+ {
+   LOG_SCOPE (logger);
+ 
+   std::vector<supernode *> ordering_vec;
+ 
+   cgraph_node *cgnode;
+   FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cgnode)
+     {
+       function *fun = cgnode->get_fun ();
+ 
+       sorting_worklist worklist;
+ 
+       supernode *start_node = sg.get_node_for_function_entry (*fun);
+       worklist.add_node (start_node);
+ 
+       // Find the best node to add next in the ordering
+       while (supernode *next = worklist.take_next (logger))
+ 	{
+ 	  gcc_assert (next);
+ 	  if (logger)
+ 	    logger->log ("next: SN: %i", next->m_id);
+ 
+ 	  ordering_vec.push_back (next);
+ 
+ 	  for (auto out_edge : next->m_succs)
+ 	    {
+ 	      supernode *dest_node = out_edge->m_dest;
+ 	      if (!worklist.contains_p (dest_node))
+ 		worklist.add_node (dest_node);
+ 	    }
+ 	}
+     }
+ 
+   return ordering_vec;
+ }
+ 
+ } // anonymous namespace
+ 
+ void
+ supergraph::sort_nodes (logger *logger)
+ {
+   auto_timevar tv (TV_ANALYZER_SUPERGRAPH_SORTING);
+   LOG_SCOPE (logger);
+ 
+   const std::vector<supernode *> ordering = get_node_ordering (*this, logger);
+   reorder_nodes_and_ids (ordering, logger);
+ }
+ 
+ } // namespace ana
+ 
+ #endif /* #if ENABLE_ANALYZER */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph.cc gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph.cc
*** gcc-15.2.0/gcc/analyzer/supergraph.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,59 ****
  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 "tree.h"
! #include "tm.h"
! #include "toplev.h"
! #include "hash-table.h"
! #include "vec.h"
! #include "ggc.h"
! #include "basic-block.h"
! #include "function.h"
! #include "gimple.h"
! #include "gimple-iterator.h"
! #include "gimple-fold.h"
! #include "tree-eh.h"
! #include "gimple-expr.h"
! #include "is-a.h"
  #include "timevar.h"
  #include "gimple-pretty-print.h"
- #include "tree-pretty-print.h"
- #include "graphviz.h"
- #include "cgraph.h"
- #include "tree-dfa.h"
- #include "bitmap.h"
- #include "cfganal.h"
- #include "function.h"
- #include "analyzer/analyzer.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "tree-cfg.h"
  #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-logging.h"
! #include "make-unique.h"
  
  #if ENABLE_ANALYZER
  
--- 18,43 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #define INCLUDE_DEQUE
! #include "analyzer/common.h"
! 
  #include "timevar.h"
  #include "gimple-pretty-print.h"
  #include "ordered-hash-map.h"
  #include "options.h"
  #include "cgraph.h"
  #include "cfg.h"
  #include "digraph.h"
  #include "tree-cfg.h"
+ #include "cfganal.h"
+ #include "except.h"
+ 
+ #include "diagnostics/file-cache.h"
+ 
  #include "analyzer/supergraph.h"
  #include "analyzer/analyzer-logging.h"
! #include "analyzer/region-model.h"
! #include "analyzer/exploded-graph.h"
  
  #if ENABLE_ANALYZER
  
*************** get_ultimate_function_for_cgraph_edge (c
*** 67,95 ****
  {
    cgraph_node *ultimate_node = edge->callee->ultimate_alias_target ();
    if (!ultimate_node)
!     return NULL;
    return ultimate_node->get_fun ();
  }
  
- /* Get the cgraph_edge, but only if there's an underlying function body.  */
- 
- cgraph_edge *
- supergraph_call_edge (function *fun, const gimple *stmt)
- {
-   const gcall *call = dyn_cast<const gcall *> (stmt);
-   if (!call)
-     return NULL;
-   cgraph_edge *edge
-     = cgraph_node::get (fun->decl)->get_edge (const_cast <gimple *> (stmt));
-   if (!edge)
-     return NULL;
-   if (!edge->callee)
-     return NULL; /* e.g. for a function pointer.  */
-   if (!get_ultimate_function_for_cgraph_edge (edge))
-     return NULL;
-   return edge;
- }
- 
  /* class saved_uids.
  
     In order to ensure consistent results without relying on the ordering
--- 51,60 ----
  {
    cgraph_node *ultimate_node = edge->callee->ultimate_alias_target ();
    if (!ultimate_node)
!     return nullptr;
    return ultimate_node->get_fun ();
  }
  
  /* class saved_uids.
  
     In order to ensure consistent results without relying on the ordering
*************** saved_uids::restore_uids () const
*** 134,240 ****
      pair->first->uid = pair->second;
  }
  
  /* supergraph's ctor.  Walk the callgraph, building supernodes for each
!    CFG basic block, splitting the basic blocks at callsites.  Join
!    together the supernodes with interprocedural and intraprocedural
!    superedges as appropriate.
     Assign UIDs to the gimple stmts.  */
  
! supergraph::supergraph (logger *logger)
  {
!   auto_timevar tv (TV_ANALYZER_SUPERGRAPH);
! 
    LOG_FUNC (logger);
  
    /* First pass: make supernodes (and assign UIDs to the gimple stmts).  */
    {
      /* Sort the cgraph_nodes?  */
      cgraph_node *node;
      FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
!     {
!       function *fun = node->get_fun ();
! 
!       /* Ensure that EDGE_DFS_BACK is correct for every CFG edge in
! 	 the supergraph (by doing it per-function).  */
!       auto_cfun sentinel (fun);
!       mark_dfs_back_edges ();
! 
!       const int start_idx = m_nodes.length ();
  
!       basic_block bb;
!       FOR_ALL_BB_FN (bb, fun)
! 	{
! 	  /* The initial supernode for the BB gets the phi nodes (if any).  */
! 	  supernode *node_for_stmts = add_node (fun, bb, NULL, phi_nodes (bb));
! 	  m_bb_to_initial_node.put (bb, node_for_stmts);
! 	  for (gphi_iterator gpi = gsi_start_phis (bb); !gsi_end_p (gpi);
! 	       gsi_next (&gpi))
! 	    {
! 	      gimple *stmt = gsi_stmt (gpi);
! 	      m_stmt_to_node_t.put (stmt, node_for_stmts);
! 	      m_stmt_uids.make_uid_unique (stmt);
! 	    }
  
! 	  /* Append statements from BB to the current supernode, splitting
! 	     them into a new supernode at each call site; such call statements
! 	     appear in both supernodes (representing call and return).  */
! 	  gimple_stmt_iterator gsi;
! 	  for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
! 	    {
! 	      gimple *stmt = gsi_stmt (gsi);
! 	      /* Discard debug stmts here, so we don't have to check for
! 		 them anywhere within the analyzer.  */
! 	      if (is_gimple_debug (stmt))
! 		continue;
! 	      node_for_stmts->m_stmts.safe_push (stmt);
! 	      m_stmt_to_node_t.put (stmt, node_for_stmts);
! 	      m_stmt_uids.make_uid_unique (stmt);
! 	      if (cgraph_edge *edge = supergraph_call_edge (fun, stmt))
!     		{
!     		  m_cgraph_edge_to_caller_prev_node.put(edge, node_for_stmts);
!     		  node_for_stmts = add_node (fun, bb, as_a <gcall *> (stmt),
!     		   			     NULL);
!     		  m_cgraph_edge_to_caller_next_node.put (edge, node_for_stmts);
!     		}
! 	       else
! 	        {
! 	          // 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,
! 	                  			   NULL);
! 	              add_edge (sedge);
! 	            }
! 	          }
! 	        }
! 	    }
  
! 	  m_bb_to_final_node.put (bb, node_for_stmts);
! 	}
  
!       const unsigned num_snodes = m_nodes.length () - start_idx;
!       m_function_to_num_snodes.put (fun, num_snodes);
  
!       if (logger)
! 	{
! 	  const int end_idx = m_nodes.length () - 1;
! 	  logger->log ("SN: %i...%i: function %qD",
! 		       start_idx, end_idx, fun->decl);
! 	}
!     }
    }
  
!   /* Second pass: make superedges.  */
    {
      /* Make superedges for CFG edges.  */
      for (bb_to_node_t::iterator iter = m_bb_to_final_node.begin ();
--- 99,190 ----
      pair->first->uid = pair->second;
  }
  
+ /* When building the supergraph, should STMT be handled
+    along each out-edge in the CFG, or as separate superedge
+    "within" the BB.  */
+ 
+ static bool
+ control_flow_stmt_p (const gimple &stmt)
+ {
+   switch (gimple_code (&stmt))
+     {
+     case GIMPLE_COND:
+     case GIMPLE_EH_DISPATCH:
+     case GIMPLE_GOTO:
+     case GIMPLE_SWITCH:
+       return true;
+ 
+     case GIMPLE_ASM:
+     case GIMPLE_ASSIGN:
+     case GIMPLE_CALL:
+     case GIMPLE_DEBUG:
+     case GIMPLE_LABEL:
+     case GIMPLE_NOP:
+     case GIMPLE_PREDICT:
+     case GIMPLE_RESX:
+     case GIMPLE_RETURN:
+       return false;
+ 
+     /* We don't expect to see any other statement kinds in the analyzer.  */
+     default:
+       internal_error ("unexpected gimple stmt code: %qs",
+ 		      gimple_code_name[gimple_code (&stmt)]);
+       break;
+     }
+ }
+ 
  /* supergraph's ctor.  Walk the callgraph, building supernodes for each
!    CFG basic block, splitting the basic blocks at statements.  Join
!    together the supernodes with interprocedural superedges as appropriate.
     Assign UIDs to the gimple stmts.  */
  
! supergraph::supergraph (region_model_manager &mgr,
! 			logger *logger)
! : m_next_snode_id (0)
  {
!   auto_timevar tv (TV_ANALYZER_SUPERGRAPH_CREATION);
    LOG_FUNC (logger);
  
+   /* For each BB, if present, the stmt that terminates it.  */
+   typedef ordered_hash_map<basic_block, gimple *> bb_to_stmt_t;
+   bb_to_stmt_t control_stmt_ending_bbs;
+ 
    /* First pass: make supernodes (and assign UIDs to the gimple stmts).  */
    {
      /* Sort the cgraph_nodes?  */
      cgraph_node *node;
      FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
!       {
! 	function *fun = node->get_fun ();
  
! 	log_nesting_level log_sentinel (logger, "function: %qD", fun->decl);
  
! 	/* Ensure that EDGE_DFS_BACK is correct for every CFG edge in
! 	   the supergraph (by doing it per-function).  */
! 	auto_cfun cfun_sentinel (fun);
! 	mark_dfs_back_edges ();
  
! 	const int start_id = m_nodes.length ();
  
! 	basic_block bb;
! 	FOR_ALL_BB_FN (bb, fun)
! 	  if (gimple *final_control_stmt
! 		= populate_for_basic_block (bb, fun, logger))
! 	    control_stmt_ending_bbs.put (bb, final_control_stmt);
  
! 	const unsigned num_snodes = m_nodes.length () - start_id;
! 	m_function_to_num_snodes.put (fun, num_snodes);
  
! 	if (logger)
! 	  {
! 	    const int end_id = m_nodes.length () - 1;
! 	    logger->log ("SN: %i...%i: function %qD",
! 			 start_id, end_id, fun->decl);
! 	  }
!       }
    }
  
!   /* Second pass: make superedges between basic blocks.  */
    {
      /* Make superedges for CFG edges.  */
      for (bb_to_node_t::iterator iter = m_bb_to_final_node.begin ();
*************** supergraph::supergraph (logger *logger)
*** 244,249 ****
--- 194,203 ----
  	basic_block bb = (*iter).first;
  	supernode *src_supernode = (*iter).second;
  
+ 	gimple *control_stmt_ending_bb = nullptr;
+ 	if (auto control_stmt_iter = control_stmt_ending_bbs.get (bb))
+ 	  control_stmt_ending_bb = *control_stmt_iter;
+ 
  	::edge cfg_edge;
  	int idx;
  	if (bb->succs)
*************** supergraph::supergraph (logger *logger)
*** 252,331 ****
  	      basic_block dest_cfg_block = cfg_edge->dest;
  	      supernode *dest_supernode
  		= *m_bb_to_initial_node.get (dest_cfg_block);
! 	      cfg_superedge *cfg_sedge
! 		= add_cfg_edge (src_supernode, dest_supernode, cfg_edge);
! 	      m_cfg_edge_to_cfg_superedge.put (cfg_edge, cfg_sedge);
  	    }
        }
  
!     /* Make interprocedural superedges for calls.  */
      {
!       for (cgraph_edge_to_node_t::iterator iter
! 	     = m_cgraph_edge_to_caller_prev_node.begin ();
! 	   iter != m_cgraph_edge_to_caller_prev_node.end ();
! 	   ++iter)
  	{
! 	  cgraph_edge *edge = (*iter).first;
! 	  supernode *caller_prev_supernode = (*iter).second;
! 	  function* callee_fn = get_ultimate_function_for_cgraph_edge (edge);
! 	  if (!callee_fn || !callee_fn->cfg)
! 	    continue;
! 	  basic_block callee_cfg_block = ENTRY_BLOCK_PTR_FOR_FN (callee_fn);
! 	  supernode *callee_supernode
! 	    = *m_bb_to_initial_node.get (callee_cfg_block);
! 	  call_superedge *sedge
! 	    = add_call_superedge (caller_prev_supernode,
! 				  callee_supernode,
! 				  edge);
! 	  m_cgraph_edge_to_call_superedge.put (edge, sedge);
  	}
      }
  
!     /* Make interprocedural superedges for returns.  */
      {
!       for (cgraph_edge_to_node_t::iterator iter
! 	     = m_cgraph_edge_to_caller_next_node.begin ();
! 	   iter != m_cgraph_edge_to_caller_next_node.end ();
! 	   ++iter)
  	{
! 	  cgraph_edge *edge = (*iter).first;
! 	  supernode *caller_next_supernode = (*iter).second;
! 	  function* callee_fn = get_ultimate_function_for_cgraph_edge (edge);
! 	  if (!callee_fn || !callee_fn->cfg)
  	    continue;
- 	  basic_block callee_cfg_block = EXIT_BLOCK_PTR_FOR_FN (callee_fn);
- 	  supernode *callee_supernode
- 	    = *m_bb_to_initial_node.get (callee_cfg_block);
- 	  return_superedge *sedge
- 	    = add_return_superedge (callee_supernode,
- 				    caller_next_supernode,
- 				    edge);
- 	  m_cgraph_edge_to_return_superedge.put (edge, sedge);
  	}
-     }
  
!     /* Make intraprocedural superedges linking the two halves of a call.  */
!     {
!       for (cgraph_edge_to_node_t::iterator iter
! 	     = m_cgraph_edge_to_caller_prev_node.begin ();
! 	   iter != m_cgraph_edge_to_caller_prev_node.end ();
! 	   ++iter)
  	{
! 	  cgraph_edge *edge = (*iter).first;
! 	  supernode *caller_prev_supernode = (*iter).second;
! 	  supernode *caller_next_supernode
! 	    = *m_cgraph_edge_to_caller_next_node.get (edge);
  	  superedge *sedge
! 	    = new callgraph_superedge (caller_prev_supernode,
! 				       caller_next_supernode,
! 				       SUPEREDGE_INTRAPROCEDURAL_CALL,
! 				       edge);
  	  add_edge (sedge);
- 	  m_cgraph_edge_to_intraproc_superedge.put (edge, sedge);
  	}
! 
      }
!   }
  }
  
  /* supergraph's dtor.  Reset stmt uids.  */
--- 206,359 ----
  	      basic_block dest_cfg_block = cfg_edge->dest;
  	      supernode *dest_supernode
  		= *m_bb_to_initial_node.get (dest_cfg_block);
! 	      add_sedges_for_cfg_edge (src_supernode,
! 				       dest_supernode,
! 				       cfg_edge,
! 				       control_stmt_ending_bb,
! 				       mgr,
! 				       logger);
  	    }
        }
+   }
+ }
  
! /* Create a run of supernodes and superedges for the BB within FUN
!    expressing all of the stmts apart from the final control flow stmt (if any).
!    Return the control stmt that ends this bb, if any.  */
! 
! gimple *
! supergraph::populate_for_basic_block (basic_block bb,
! 				      function *fun,
! 				      logger *logger)
! {
!   log_nesting_level sentinel (logger, "bb %i", bb->index);
! 
!   supernode *initial_snode_in_bb = add_node (fun, bb, logger);
!   m_bb_to_initial_node.put (bb, initial_snode_in_bb);
! 
!   if (bb->index == ENTRY_BLOCK)
!     /* Use the decl's location, rather than fun->function_start_locus,
!        which leads to more readable output.  */
!     initial_snode_in_bb->m_loc = DECL_SOURCE_LOCATION (fun->decl);
!   else if (bb->index == EXIT_BLOCK)
!     initial_snode_in_bb->m_loc = fun->function_end_locus;
!   else if (gsi_end_p (gsi_start_bb (bb)))
      {
!       /* BB has no stmts, and isn't the ENTRY or EXIT node.
! 	 Try to find a source location for it.  */
!       if (bb->succs->length () == 1)
  	{
! 	  auto outedge = (*bb->succs)[0];
! 	  if (useful_location_p (outedge->goto_locus))
! 	    {
! 	      /* We have an empty basic block with one out-edge,
! 		 perhaps part of an empty infinite loop.  */
! 	      if (logger)
! 		logger->log ("using location 0x%lx from outedge",
! 			     outedge->goto_locus);
! 	      initial_snode_in_bb->m_loc = outedge->goto_locus;
! 	    }
  	}
      }
  
!   initial_snode_in_bb->m_state_merger_node = true;
! 
!   gimple *final_control_flow_stmt = nullptr;
! 
!   /* Create a run of supernodes for the stmts in BB,
!      connected by stmt_superedge.  */
!   gimple_stmt_iterator gsi;
!   supernode *prev_snode_in_bb = initial_snode_in_bb;
!   for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
!       gimple *next_stmt = gsi_stmt (gsi);
! 
!       if (logger)
  	{
! 	  logger->start_log_line ();
! 	  logger->log_partial ("next_stmt: ");
! 	  pp_gimple_stmt_1 (logger->get_printer (), next_stmt,
! 			    0, (dump_flags_t)0);
! 	  logger->end_log_line ();
! 	}
!       prev_snode_in_bb->m_loc = get_stmt_location (next_stmt, fun);
!       prev_snode_in_bb->m_stmt_loc = next_stmt->location;
!       m_node_for_stmt.insert ({next_stmt, prev_snode_in_bb});
! 
!       m_stmt_uids.make_uid_unique (next_stmt);
! 
!       if (auto glabel_ = dyn_cast<const glabel *>(next_stmt))
! 	{
! 	  /* Associate the GIMPLE_LABEL with its snode.  */
! 	  prev_snode_in_bb->m_label = gimple_label_label (glabel_);
! 
! 	  /* Only create an snode for the label if it has location
! 	     information.  */
! 	  if (glabel_->location == UNKNOWN_LOCATION)
  	    continue;
  	}
  
!       // handle control flow stmts on the edges
!       if (control_flow_stmt_p (*next_stmt))
  	{
! 	  final_control_flow_stmt = next_stmt;
! 	  break;
! 	}
! 
!       supernode *snode_after_next_stmt = add_node (fun, bb, logger);
!       if (prev_snode_in_bb)
! 	{
! 	  std::unique_ptr<operation> op;
! 	  switch (gimple_code (next_stmt))
! 	    {
! 	    default:
! 	      gcc_unreachable ();
! 	      break;
! 	    case GIMPLE_ASM:
! 	      op = std::make_unique<gasm_op>
! 		(*as_a <const gasm *> (next_stmt));
! 	      break;
! 	    case GIMPLE_ASSIGN:
! 	      op = std::make_unique<gassign_op>
! 		(*as_a <const gassign *> (next_stmt));
! 	      break;
! 	    case GIMPLE_CALL:
! 	      op = call_and_return_op::make
! 		(*as_a <const gcall *> (next_stmt));
! 	      break;
! 	    case GIMPLE_PREDICT:
! 	      op = std::make_unique<predict_op> (*next_stmt);
! 	      break;
! 	    case GIMPLE_RESX:
! 	      op = std::make_unique<resx_op>
! 		(*as_a <const gresx *> (next_stmt));
! 	      break;
! 	    case GIMPLE_RETURN:
! 	      op = std::make_unique<greturn_op>
! 		(*as_a <const greturn *> (next_stmt));
! 	      break;
! 
! 	    case GIMPLE_DEBUG:
! 	    case GIMPLE_LABEL:
! 	    case GIMPLE_NOP:
! 	      /* Treat all of these as no-ops within analyzer; though
! 		 perhaps we care about their locations.  */
! 	      break;
! 	    }
! 
  	  superedge *sedge
! 	    = new superedge (prev_snode_in_bb,
! 			     snode_after_next_stmt,
! 			     std::move (op),
! 			     nullptr);
  	  add_edge (sedge);
  	}
!       prev_snode_in_bb = snode_after_next_stmt;
      }
! 
!   m_bb_to_final_node.put (bb, prev_snode_in_bb);
! 
!   return final_control_flow_stmt;
  }
  
  /* supergraph's dtor.  Reset stmt uids.  */
*************** supergraph::dump_dot_to_pp (pretty_print
*** 365,370 ****
--- 393,400 ----
      {
        function *fun = node->get_fun ();
        gcc_assert (fun);
+       auto_cfun sentinel (fun);
+ 
        const char *funcname = function_name (fun);
        gv.println ("subgraph \"cluster_%s\" {",
  		  funcname);
*************** supergraph::dump_dot_to_pp (pretty_print
*** 375,419 ****
  		  " label=\"%s\";\n"),
  		 funcname);
  
!       /* Break out the nodes into clusters by BB from original CFG.  */
!       {
! 	basic_block bb;
! 	FOR_ALL_BB_FN (bb, fun)
! 	  {
! 	    if (dump_args.m_flags & SUPERGRAPH_DOT_SHOW_BBS)
! 	      {
! 		gv.println ("subgraph \"cluster_%s_bb_%i\" {",
! 			    funcname, bb->index);
! 		gv.indent ();
! 		pp_printf (pp,
! 			   ("style=\"dashed\";"
! 			    " color=\"black\";"
! 			    " label=\"bb: %i\";\n"),
! 			   bb->index);
! 	      }
! 
! 	    // TODO: maybe keep an index per-function/per-bb to speed this up???
! 	    int i;
! 	    supernode *n;
! 	    FOR_EACH_VEC_ELT (m_nodes, i, n)
! 	      if (n->m_fun == fun && n->m_bb == bb)
! 		n->dump_dot (&gv, dump_args);
! 
! 	    if (dump_args.m_flags & SUPERGRAPH_DOT_SHOW_BBS)
! 	      {
! 		/* Terminate per-bb "subgraph" */
! 		gv.outdent ();
! 		gv.println ("}");
! 	      }
! 	  }
!       }
! 
!       /* Add an invisible edge from ENTRY to EXIT, to improve the graph layout.  */
!       pp_string (pp, "\t");
!       get_node_for_function_entry (*fun)->dump_dot_id (pp);
!       pp_string (pp, ":s -> ");
!       get_node_for_function_exit (*fun)->dump_dot_id (pp);
!       pp_string (pp, ":n [style=\"invis\",constraint=true];\n");
  
        /* Terminate per-function "subgraph" */
        gv.outdent ();
--- 405,418 ----
  		  " label=\"%s\";\n"),
  		 funcname);
  
!       if (loops_for_fn (fun))
! 	dump_dot_to_gv_for_loop (gv, dump_args, get_loop (fun, 0), fun);
!       else
! 	{
! 	  basic_block bb;
! 	  FOR_ALL_BB_FN (bb, fun)
! 	    dump_dot_to_gv_for_bb (gv, dump_args, bb, fun);
! 	}
  
        /* Terminate per-function "subgraph" */
        gv.outdent ();
*************** supergraph::dump_dot_to_pp (pretty_print
*** 427,437 ****
--- 426,533 ----
    FOR_EACH_VEC_ELT (m_edges, i, e)
      e->dump_dot (&gv, dump_args);
  
+   if (dump_args.m_node_annotator)
+     dump_args.m_node_annotator->add_extra_objects (&gv);
+ 
    /* Terminate "digraph" */
    gv.outdent ();
    gv.println ("}");
  }
  
+ /* Recursively dump all the snodes within LOOP and the loops
+    within it.  */
+ 
+ void
+ supergraph::dump_dot_to_gv_for_loop (graphviz_out &gv,
+ 				     const dump_args_t &dump_args,
+ 				     class loop *loop,
+ 				     function *fun) const
+ {
+   pretty_printer *pp = gv.get_pp ();
+ 
+   basic_block *body;
+   unsigned int i;
+   // Adapted from graph.cc:draw_cfg_nodes_for_loop
+   const char *fillcolors[3] = { "grey88", "grey77", "grey66" };
+ 
+   if (loop->header != NULL
+       && loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun))
+     pp_printf (pp,
+ 	       "\tsubgraph cluster_%d_%d {\n"
+ 	       "\tstyle=\"filled\";\n"
+ 	       "\tcolor=\"darkgreen\";\n"
+ 	       "\tfillcolor=\"%s\";\n"
+ 	       "\tlabel=\"loop %d\";\n"
+ 	       "\tlabeljust=l;\n"
+ 	       "\tpenwidth=2;\n",
+ 	       fun->funcdef_no, loop->num,
+ 	       fillcolors[(loop_depth (loop) - 1) % 3],
+ 	       loop->num);
+ 
+   // Recurse
+   for (class loop *inner = loop->inner; inner; inner = inner->next)
+     dump_dot_to_gv_for_loop (gv, dump_args, inner, fun);
+ 
+   if (loop->header == NULL)
+     return;
+ 
+   if (loop->latch == EXIT_BLOCK_PTR_FOR_FN (cfun))
+     body = get_loop_body (loop);
+   else
+     body = get_loop_body_in_bfs_order (loop);
+ 
+   for (i = 0; i < loop->num_nodes; i++)
+     {
+       basic_block bb = body[i];
+       if (bb->loop_father == loop)
+ 	dump_dot_to_gv_for_bb (gv, dump_args, bb, fun);
+     }
+ 
+   free (body);
+ 
+   if (loop->latch != EXIT_BLOCK_PTR_FOR_FN (cfun))
+     pp_printf (pp, "\t}\n");
+ }
+ 
+ /* Dump all the snodes from BB.  */
+ 
+ void
+ supergraph::dump_dot_to_gv_for_bb (graphviz_out &gv,
+ 				   const dump_args_t &dump_args,
+ 				   basic_block bb,
+ 				   function *fun) const
+ {
+   pretty_printer *pp = gv.get_pp ();
+ 
+   if (dump_args.m_flags & SUPERGRAPH_DOT_SHOW_BBS)
+     {
+       const char *funcname = function_name (fun);
+       gv.println ("subgraph \"cluster_%s_bb_%i\" {",
+ 		  funcname, bb->index);
+       gv.indent ();
+       pp_printf (pp,
+ 		 ("style=\"dashed\";"
+ 		  " color=\"black\";"
+ 		  " label=\"bb: %i\";\n"),
+ 		 bb->index);
+     }
+ 
+   // TODO: maybe keep an index per-function/per-bb to speed this up???
+   int i;
+   supernode *n;
+   FOR_EACH_VEC_ELT (m_nodes, i, n)
+     if (n->m_fun == fun && n->m_bb == bb)
+       n->dump_dot (&gv, dump_args);
+ 
+   if (dump_args.m_flags & SUPERGRAPH_DOT_SHOW_BBS)
+     {
+       /* Terminate per-bb "subgraph" */
+       gv.outdent ();
+       gv.println ("}");
+     }
+ }
+ 
+ 
  /* Dump this graph in .dot format to FP, using DUMP_ARGS.  */
  
  void
*************** supergraph::dump_dot (const char *path,
*** 465,475 ****
  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)
--- 561,571 ----
  std::unique_ptr<json::object>
  supergraph::to_json () const
  {
!   auto sgraph_obj = std::make_unique<json::object> ();
  
    /* Nodes.  */
    {
!     auto nodes_arr = std::make_unique<json::array> ();
      unsigned i;
      supernode *n;
      FOR_EACH_VEC_ELT (m_nodes, i, n)
*************** supergraph::to_json () const
*** 479,485 ****
  
    /* Edges.  */
    {
!     auto edges_arr = ::make_unique<json::array> ();
      unsigned i;
      superedge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
--- 575,581 ----
  
    /* Edges.  */
    {
!     auto edges_arr = std::make_unique<json::array> ();
      unsigned i;
      superedge *n;
      FOR_EACH_VEC_ELT (m_edges, i, n)
*************** supergraph::to_json () const
*** 490,557 ****
    return sgraph_obj;
  }
  
! /* Create a supernode for BB within FUN and add it to this supergraph.
! 
!    If RETURNING_CALL is non-NULL, the supernode represents the resumption
!    of the basic block after returning from that call.
! 
!    If PHI_NODES is non-NULL, this is the initial supernode for the basic
!    block, and is responsible for any handling of the phi nodes.  */
  
  supernode *
! supergraph::add_node (function *fun, basic_block bb, gcall *returning_call,
! 		      gimple_seq phi_nodes)
  {
!   supernode *n = new supernode (fun, bb, returning_call, phi_nodes,
! 				m_nodes.length ());
    m_nodes.safe_push (n);
    return n;
  }
  
! /* Create a new cfg_superedge from SRC to DEST for the underlying CFG edge E,
!    adding it to this supergraph.
! 
!    If the edge is for a switch statement, create a switch_cfg_superedge
!    subclass.  */
! 
! cfg_superedge *
! supergraph::add_cfg_edge (supernode *src, supernode *dest, ::edge e)
  {
!   /* Special-case switch edges.  */
!   gimple *stmt = src->get_last_stmt ();
!   cfg_superedge *new_edge;
!   if (stmt && stmt->code == GIMPLE_SWITCH)
!     new_edge = new switch_cfg_superedge (src, dest, e);
!   else
!     new_edge = new cfg_superedge (src, dest, e);
!   add_edge (new_edge);
!   return new_edge;
  }
  
! /* Create and add a call_superedge representing an interprocedural call
!    from SRC to DEST, using CEDGE.  */
  
! call_superedge *
! supergraph::add_call_superedge (supernode *src, supernode *dest,
! 				cgraph_edge *cedge)
! {
!   call_superedge *new_edge = new call_superedge (src, dest, cedge);
!   add_edge (new_edge);
!   return new_edge;
! }
  
! /* Create and add a return_superedge representing returning from an
!    interprocedural call, returning from SRC to DEST, using CEDGE.  */
  
! return_superedge *
! supergraph::add_return_superedge (supernode *src, supernode *dest,
! 				  cgraph_edge *cedge)
  {
!   return_superedge *new_edge = new return_superedge (src, dest, cedge);
!   add_edge (new_edge);
!   return new_edge;
  }
  
  /* Implementation of dnode::dump_dot vfunc for supernodes.
  
     Write a cluster for the node, and within it a .dot node showing
--- 586,770 ----
    return sgraph_obj;
  }
  
! /* Create a supernode within BB within FUN and add it to this supergraph.  */
  
  supernode *
! supergraph::add_node (function *fun, basic_block bb, logger *logger)
  {
!   supernode *n = new supernode (fun, bb, m_next_snode_id++);
!   m_snode_by_id.push_back (n);
    m_nodes.safe_push (n);
+   if (logger)
+     logger->log ("created SN %i", n->m_id);
    return n;
  }
  
! void
! supergraph::delete_nodes (const std::set<supernode *> &snodes_to_delete)
  {
!   /* Remove nodes from m_nodes.  */
!   unsigned read_index, write_index;
!   supernode **elem_ptr;
!   VEC_ORDERED_REMOVE_IF
!     (m_nodes, read_index, write_index, elem_ptr,
!      snodes_to_delete.find (*elem_ptr) != snodes_to_delete.end ()
!      );
! 
!   /* Remove nodes from m_snode_by_id, and delete them.  */
!   for (auto iter : snodes_to_delete)
!     {
!       gcc_assert (iter->m_preds.length () == 0);
!       gcc_assert (iter->m_succs.length () == 0);
!       m_snode_by_id[iter->m_id] = nullptr;
!       delete iter;
!     }
  }
  
! /* Create a chain of nodes and edges in this supergraph from SRC to DEST
!    to handle CFG_EDGE in the underlying CFG:
  
!     +---+
!     |SRC|
!     +---+
!       |
!       | optional edge for ctrlflow_stmt (if CTRLFLOW_STMT is non-null)
!       | (e.g. checking conditions on a GIMPLE_COND)
!       |
!       V
!    +------+
!    |(node)|
!    +------+
!       |
!       | optional edge for any phi nodes in the destination basic block
!       |
!       V
!    +------+
!    |(node)|
!    +------+
!       |
!       | optional edge for state merging at CFG join points
!       |
!       V
!    +----+
!    |DEST|
!    +----+
  
!    adding nodes where necessary between the edges, and adding a no-op edge
!    for the case where there is no CTRLFLOW_STMT, phi nodes, or
!    state merging.  */
  
! void
! supergraph::add_sedges_for_cfg_edge (supernode *src,
! 				     supernode *dest,
! 				     ::edge cfg_edge,
! 				     gimple *ctrlflow_stmt,
! 				     region_model_manager &mgr,
! 				     logger *logger)
  {
!   log_nesting_level sentinel (logger,
! 			      "edge: bb %i -> bb %i",
! 			      cfg_edge->src->index,
! 			      cfg_edge->dest->index);
!   std::unique_ptr<operation> ctrlflow_op;
!   if (ctrlflow_stmt)
!     switch (gimple_code (ctrlflow_stmt))
!       {
!       default:
! 	gcc_unreachable ();
! 	break;
!       case GIMPLE_COND:
! 	ctrlflow_op = std::make_unique<gcond_edge_op>
! 	  (cfg_edge,
! 	   *as_a <gcond *> (ctrlflow_stmt));
! 	break;
!       case GIMPLE_EH_DISPATCH:
! 	ctrlflow_op
! 	  = eh_dispatch_edge_op::make (src, dest,
! 				       cfg_edge,
! 				       *as_a <geh_dispatch *> (ctrlflow_stmt));
! 	break;
!       case GIMPLE_GOTO:
! 	{
! 	  ctrlflow_op = std::make_unique<ggoto_edge_op>
! 	    (cfg_edge,
! 	     *as_a <ggoto *> (ctrlflow_stmt),
! 	     dest->m_label);
! 	}
! 	break;
!       case GIMPLE_SWITCH:
! 	ctrlflow_op = std::make_unique<switch_case_op>
! 	  (*src->get_function (),
! 	   cfg_edge,
! 	   *as_a <gswitch *> (ctrlflow_stmt),
! 	   *mgr.get_range_manager ());
! 	break;
!       }
!   else
!     {
!       if (cfg_edge->flags & EDGE_ABNORMAL)
! 	/* Don't create superedges for such CFG edges (though
! 	   computed gotos are handled by the GIMPLE_GOTO clause above).  */
! 	return;
!     }
! 
!   /* Determine a location to use for any snodes within the CFG edge.  */
!   location_t dest_loc = dest->m_loc;
!   if (useful_location_p (cfg_edge->goto_locus))
!     dest_loc = cfg_edge->goto_locus;
! 
!   /* If the dest is a control flow join point, then for each CFG in-edge
!      add an extra snode/sedge before DEST and route to it.
!      We hope this will help state-merging keep the
!      different in-edges separately.  */
!   if (cfg_edge->dest->preds->length () > 1
!       && cfg_edge->dest->index != EXIT_BLOCK)
!     {
!       auto extra_snode = add_node (src->get_function (),
! 				   cfg_edge->dest,
! 				   logger);
!       extra_snode->m_loc = dest_loc;
!       extra_snode->m_preserve_p = true;
!       extra_snode->m_state_merger_node = true;
!       add_edge (new superedge (extra_snode, dest, nullptr, nullptr));
!       dest = extra_snode;
!     }
! 
!   std::unique_ptr<operation> phi_op;
!   if (phi_nodes (cfg_edge->dest))
!     phi_op = phis_for_edge_op::maybe_make (cfg_edge);
!   if (phi_op)
!     {
!       superedge *edge_for_phis_op;
!       if (ctrlflow_op)
! 	{
! 	  /* We have two ops; add an edge for each:
! 	     SRC --{ctrlflow_op}--> before_phi_nodes --{phi_op}--> DEST.  */
! 	  supernode *before_phi_nodes
! 	    = add_node (src->get_function (), cfg_edge->src, logger);
! 	  before_phi_nodes->m_loc = dest_loc;
! 	  add_edge (new superedge (src, before_phi_nodes,
! 				   std::move (ctrlflow_op),
! 				   cfg_edge));
! 	  edge_for_phis_op = new superedge (before_phi_nodes, dest,
! 					    std::move (phi_op),
! 					    cfg_edge);
! 	}
!       else
! 	/* We just have a phi_op; add: SRC --{phi_op}--> DEST.  */
! 	edge_for_phis_op
! 	  = new superedge (src, dest, std::move (phi_op), cfg_edge);
!       add_edge (edge_for_phis_op);
!       m_edges_for_phis.insert ({cfg_edge, edge_for_phis_op});
!     }
!   else
!     /* We don't have a phi op, create this edge:
!        SRC --{ctrlflow_op}--> DEST
!        where ctrlflow_op might be nullptr (for a no-op edge).  */
!     add_edge (new superedge (src, dest, std::move (ctrlflow_op), cfg_edge));
  }
  
+ // class supernode : public dnode<supergraph_traits>
+ 
  /* Implementation of dnode::dump_dot vfunc for supernodes.
  
     Write a cluster for the node, and within it a .dot node showing
*************** supergraph::add_return_superedge (supern
*** 561,704 ****
  void
  supernode::dump_dot (graphviz_out *gv, const dump_args_t &args) const
  {
-   gv->println ("subgraph cluster_node_%i {",
- 	       m_index);
-   gv->indent ();
- 
-   gv->println("style=\"solid\";");
-   gv->println("color=\"black\";");
-   gv->println("fillcolor=\"lightgrey\";");
-   gv->println("label=\"sn: %i (bb: %i)\";", m_index, m_bb->index);
- 
    pretty_printer *pp = gv->get_pp ();
  
-   if (args.m_node_annotator)
-     args.m_node_annotator->add_node_annotations (gv, *this, false);
- 
    gv->write_indent ();
    dump_dot_id (pp);
    pp_printf (pp,
! 	     " [shape=none,margin=0,style=filled,fillcolor=%s,label=<",
! 	     "lightgrey");
    pp_string (pp, "<TABLE BORDER=\"0\">");
    pp_write_text_to_stream (pp);
  
!   bool had_row = false;
! 
!   /* Give any annotator the chance to add its own per-node TR elements. */
!   if (args.m_node_annotator)
!     if (args.m_node_annotator->add_node_annotations (gv, *this, true))
!       had_row = true;
  
!   if (m_returning_call)
      {
!       gv->begin_trtd ();
!       pp_string (pp, "returning call: ");
!       gv->end_tdtr ();
! 
!       gv->begin_tr ();
!       gv->begin_td ();
!       pp_gimple_stmt_1 (pp, m_returning_call, 0, (dump_flags_t)0);
!       pp_write_text_as_html_like_dot_to_stream (pp);
!       gv->end_td ();
!       /* Give any annotator the chance to add per-stmt TD elements to
! 	 this row.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, m_returning_call,
! 						     true);
!       gv->end_tr ();
! 
!       /* Give any annotator the chance to add per-stmt TR elements.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, m_returning_call,
! 						     false);
        pp_newline (pp);
- 
-       had_row = true;
      }
- 
    if (entry_p ())
      {
        pp_string (pp, "<TR><TD>ENTRY</TD></TR>");
        pp_newline (pp);
-       had_row = true;
      }
! 
!   if (return_p ())
      {
        pp_string (pp, "<TR><TD>EXIT</TD></TR>");
        pp_newline (pp);
-       had_row = true;
      }
  
!   /* Phi nodes.  */
!   for (gphi_iterator gpi = const_cast<supernode *> (this)->start_phis ();
!        !gsi_end_p (gpi); gsi_next (&gpi))
      {
!       const gimple *stmt = gsi_stmt (gpi);
!       gv->begin_tr ();
!       gv->begin_td ();
!       pp_gimple_stmt_1 (pp, stmt, 0, (dump_flags_t)0);
!       pp_write_text_as_html_like_dot_to_stream (pp);
!       gv->end_td ();
!       /* Give any annotator the chance to add per-phi TD elements to
! 	 this row.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, stmt, true);
!       gv->end_tr ();
  
!       /* Give any annotator the chance to add per-phi TR elements.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, stmt, false);
  
!       pp_newline (pp);
!       had_row = true;
!     }
  
!   /* Statements.  */
!   int i;
!   gimple *stmt;
!   FOR_EACH_VEC_ELT (m_stmts, i, stmt)
!     {
!       gv->begin_tr ();
!       gv->begin_td ();
!       pp_gimple_stmt_1 (pp, stmt, 0, (dump_flags_t)0);
!       pp_write_text_as_html_like_dot_to_stream (pp);
!       gv->end_td ();
!       /* Give any annotator the chance to add per-stmt TD elements to
! 	 this row.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, stmt, true);
!       gv->end_tr ();
  
!       /* Give any annotator the chance to add per-stmt TR elements.  */
!       if (args.m_node_annotator)
! 	args.m_node_annotator->add_stmt_annotations (gv, stmt, false);
  
!       pp_newline (pp);
!       had_row = true;
      }
  
!   /* Give any annotator the chance to add additional per-node TR elements
!      to the end of the TABLE. */
    if (args.m_node_annotator)
!     if (args.m_node_annotator->add_after_node_annotations (gv, *this))
!       had_row = true;
  
!   /* Graphviz requires a TABLE element to have at least one TR
!      (and each TR to have at least one TD).  */
!   if (!had_row)
!     {
!       pp_string (pp, "<TR><TD>(empty)</TD></TR>");
!       pp_newline (pp);
!     }
  
    pp_string (pp, "</TABLE>>];\n\n");
    pp_flush (pp);
- 
-   /* Terminate "subgraph" */
-   gv->outdent ();
-   gv->println ("}");
  }
  
  /* Write an ID for this node to PP, for use in .dot output.  */
--- 774,896 ----
  void
  supernode::dump_dot (graphviz_out *gv, const dump_args_t &args) const
  {
    pretty_printer *pp = gv->get_pp ();
  
    gv->write_indent ();
    dump_dot_id (pp);
+ 
    pp_printf (pp,
! 	     " [shape=none,margin=0,style=filled,label=<");
    pp_string (pp, "<TABLE BORDER=\"0\">");
    pp_write_text_to_stream (pp);
  
!   pp_printf (pp, "<TR><TD>sn: %i (bb: %i)",
! 	     m_id, m_bb->index);
!   if (args.m_eg)
!     pp_printf (pp, "; scc: %i", args.m_eg->get_scc_id (*this));
!   pp_string (pp, "</TD></TR>");
!   pp_newline (pp);
  
!   if (m_preserve_p)
      {
!       pp_string (pp, "<TR><TD>(preserve)</TD></TR>");
!       pp_newline (pp);
!     }
!   if (m_state_merger_node)
!     {
!       pp_string (pp, "<TR><TD BGCOLOR=\"#ec7a08\">"
! 		 "<FONT COLOR=\"white\">STATE MERGER</FONT></TD></TR>");
        pp_newline (pp);
      }
    if (entry_p ())
      {
        pp_string (pp, "<TR><TD>ENTRY</TD></TR>");
        pp_newline (pp);
      }
!   else if (exit_p ())
      {
        pp_string (pp, "<TR><TD>EXIT</TD></TR>");
        pp_newline (pp);
      }
  
!   /* Source location.  */
!   /* Highlight nodes where we're missing source location information.
!      Ideally this all gets fixed up by supergraph::fixup_locations.  */
!   if (m_loc == UNKNOWN_LOCATION)
!     pp_string (pp, "<TR><TD>UNKNOWN_LOCATION</TD></TR>");
!   else if (get_pure_location (m_loc) == UNKNOWN_LOCATION)
      {
!       pp_printf (pp, "<TR><TD>location: 0x%lx</TD></TR>", m_loc);
!       pp_string (pp, "<TR><TD>UNKNOWN_LOCATION</TD></TR>");
!     }
!   else
!     {
!       /* Show the source location, but skip it for the case where it's
! 	 the same as all previous snodes (and there's a single in-edge).  */
!       bool show_location = true;
!       location_t prev_loc = UNKNOWN_LOCATION;
!       if (m_preds.length () == 1)
! 	{
! 	  prev_loc = m_preds[0]->m_src->m_loc;
! 	  if (prev_loc == m_loc)
! 	    show_location = false;
! 	}
!       if (show_location)
! 	{
! 	  pp_printf (pp, "<TR><TD>location: 0x%lx</TD></TR>", m_loc);
  
! 	  /* Print changes to the expanded location (or all of it if
! 	     we have multiple in-edges).  */
! 	  auto prev_exploc = expand_location (prev_loc);
! 	  auto exploc = expand_location (m_loc);
  
! 	  if ((exploc.file != prev_exploc.file)
! 	      && exploc.file)
! 	    {
! 	      pp_string (pp, "<TR><TD>");
! 	      pp_flush (pp);
! 	      pp_printf (pp, "%s", exploc.file);
! 	      /* Escape, to handle cases like "<built-in>".  */
! 	      pp_write_text_as_html_like_dot_to_stream (pp);
! 	      pp_printf (pp, ":%i:</TD></TR>", exploc.line);
! 	    }
! 	  if (exploc.line != prev_exploc.line)
! 	    if (const diagnostics::char_span line
! 		= global_dc->get_file_cache ().get_source_line (exploc.file,
! 								exploc.line))
! 	      {
! 		/* Print the source line.  */
! 		pp_string (pp, "<TR><TD>");
! 		pp_string (pp, "<TABLE BORDER=\"0\"><TR>");
  
! 		// Line number:
! 		pp_printf (pp, ("<TD ALIGN=\"RIGHT\" BGCOLOR=\"#0088ce\">"
! 				"<FONT COLOR=\"white\"> %i</FONT></TD>"),
! 			   exploc.line);
  
! 		// Line contents:
! 		pp_string (pp, "<TD ALIGN=\"LEFT\" BGCOLOR=\"white\">");
! 		pp_flush (pp);
! 		for (size_t i = 0; i < line.length (); ++i)
! 		  pp_character (pp, line[i]);
! 		pp_write_text_as_html_like_dot_to_stream (pp);
! 		pp_string (pp, "</TD>");
  
! 		pp_string (pp, "</TR></TABLE>");
! 		pp_string (pp, "</TD></TR>");
! 	      }
! 	}
      }
  
!   pp_flush (pp);
! 
    if (args.m_node_annotator)
!     args.m_node_annotator->add_node_annotations (gv, *this);
  
!   pp_printf (pp, "<TR><TD>m_stmt_loc: 0x%lx</TD></TR>", m_stmt_loc);
  
    pp_string (pp, "</TABLE>>];\n\n");
    pp_flush (pp);
  }
  
  /* Write an ID for this node to PP, for use in .dot output.  */
*************** supernode::dump_dot (graphviz_out *gv, c
*** 706,889 ****
  void
  supernode::dump_dot_id (pretty_printer *pp) const
  {
!   pp_printf (pp, "node_%i", m_index);
  }
  
  /* Return a new json::object of the form
!    {"idx": int,
      "fun": optional str
!     "bb_idx": int,
!     "returning_call": optional str,
!     "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))
-       {
- 	const gimple *stmt = gsi_stmt (gpi);
- 	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)
-       {
- 	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;
  }
  
- /* Get a location_t for the start of this supernode.  */
- 
- location_t
- supernode::get_start_location () const
- {
-   if (m_returning_call
-       && get_pure_location (m_returning_call->location) != UNKNOWN_LOCATION)
-     return m_returning_call->location;
- 
-   int i;
-   gimple *stmt;
-   FOR_EACH_VEC_ELT (m_stmts, i, stmt)
-     if (get_pure_location (stmt->location) != UNKNOWN_LOCATION)
-       return stmt->location;
- 
-   if (entry_p ())
-     {
-       // TWEAK: show the decl instead; this leads to more readable output:
-       return DECL_SOURCE_LOCATION (m_fun->decl);
- 
-       return m_fun->function_start_locus;
-     }
-   if (return_p ())
-     return m_fun->function_end_locus;
- 
-   /* We have no locations for stmts.  If we have a single out-edge that's
-      a CFG edge, the goto_locus of that edge is a better location for this
-      than UNKNOWN_LOCATION.  */
-   if (m_succs.length () == 1)
-     if (const cfg_superedge *cfg_sedge = m_succs[0]->dyn_cast_cfg_superedge ())
-       return cfg_sedge->get_goto_locus ();
- 
-   return UNKNOWN_LOCATION;
- }
- 
- /* Get a location_t for the end of this supernode.  */
- 
- location_t
- supernode::get_end_location () const
- {
-   int i;
-   gimple *stmt;
-   FOR_EACH_VEC_ELT_REVERSE (m_stmts, i, stmt)
-     if (get_pure_location (stmt->location) != UNKNOWN_LOCATION)
-       return stmt->location;
- 
-   if (m_returning_call
-       && get_pure_location (m_returning_call->location) != UNKNOWN_LOCATION)
-     return m_returning_call->location;
- 
-   if (entry_p ())
-     return m_fun->function_start_locus;
-   if (return_p ())
-     return m_fun->function_end_locus;
- 
-   /* If we have a single out-edge that's a CFG edge, use the goto_locus of
-      that edge.  */
-   if (m_succs.length () == 1)
-     if (const cfg_superedge *cfg_sedge = m_succs[0]->dyn_cast_cfg_superedge ())
-       return cfg_sedge->get_goto_locus ();
- 
-   return UNKNOWN_LOCATION;
- }
- 
- /* Given STMT within this supernode, return its index within m_stmts.  */
- 
- unsigned int
- supernode::get_stmt_index (const gimple *stmt) const
- {
-   unsigned i;
-   gimple *iter_stmt;
-   FOR_EACH_VEC_ELT (m_stmts, i, iter_stmt)
-     if (iter_stmt == stmt)
-       return i;
-   gcc_unreachable ();
- }
- 
- /* Get any label_decl for this supernode, or NULL_TREE if there isn't one.  */
- 
- tree
- supernode::get_label () const
- {
-   if (m_stmts.length () == 0)
-     return NULL_TREE;
-   const glabel *label_stmt = dyn_cast<const glabel *> (m_stmts[0]);
-   if (!label_stmt)
-     return NULL_TREE;
-   return gimple_label_label (label_stmt);
- }
- 
- /* Get a string for PK.  */
- 
- static const char *
- edge_kind_to_string (enum edge_kind kind)
- {
-   switch (kind)
-     {
-     default:
-       gcc_unreachable ();
-     case SUPEREDGE_CFG_EDGE:
-       return "SUPEREDGE_CFG_EDGE";
-     case SUPEREDGE_CALL:
-       return "SUPEREDGE_CALL";
-     case SUPEREDGE_RETURN:
-       return "SUPEREDGE_RETURN";
-     case SUPEREDGE_INTRAPROCEDURAL_CALL:
-       return "SUPEREDGE_INTRAPROCEDURAL_CALL";
-     }
- };
- 
  /* Dump this superedge to PP.  */
  
  void
  superedge::dump (pretty_printer *pp) const
  {
!   pp_printf (pp, "edge: SN: %i -> SN: %i", m_src->m_index, m_dest->m_index);
    label_text desc (get_description (false));
    if (strlen (desc.get ()) > 0)
      {
--- 898,930 ----
  void
  supernode::dump_dot_id (pretty_printer *pp) const
  {
!   pp_printf (pp, "node_%i", m_id);
  }
  
  /* Return a new json::object of the form
!    {"id": int,
      "fun": optional str
!     "bb_idx": int}.  */
  
  std::unique_ptr<json::object>
  supernode::to_json () const
  {
!   auto snode_obj = std::make_unique<json::object> ();
  
!   snode_obj->set_integer ("id", m_id);
    snode_obj->set_integer ("bb_idx", m_bb->index);
    if (function *fun = get_function ())
      snode_obj->set_string ("fun", function_name (fun));
  
    return snode_obj;
  }
  
  /* Dump this superedge to PP.  */
  
  void
  superedge::dump (pretty_printer *pp) const
  {
!   pp_printf (pp, "edge: SN: %i -> SN: %i", m_src->m_id, m_dest->m_id);
    label_text desc (get_description (false));
    if (strlen (desc.get ()) > 0)
      {
*************** superedge::dump_dot (graphviz_out *gv, c
*** 913,935 ****
    int weight = 10;
    const char *constraint = "true";
  
-   switch (m_kind)
-     {
-     default:
-       gcc_unreachable ();
-     case SUPEREDGE_CFG_EDGE:
-       break;
-     case SUPEREDGE_CALL:
-       color = "red";
-       break;
-     case SUPEREDGE_RETURN:
-       color = "green";
-       break;
-     case SUPEREDGE_INTRAPROCEDURAL_CALL:
-       style = "\"dotted\"";
-       break;
-     }
- 
    /* Adapted from graph.cc:draw_cfg_node_succ_edges.  */
    if (::edge cfg_edge = get_any_cfg_edge ())
      {
--- 954,959 ----
*************** superedge::dump_dot (graphviz_out *gv, c
*** 964,1023 ****
    m_dest->dump_dot_id (pp);
    pp_printf (pp,
  	     (" [style=%s, color=%s, weight=%d, constraint=%s,"
- 	      " ltail=\"cluster_node_%i\", lhead=\"cluster_node_%i\""
  	      " headlabel=\""),
! 	     style, color, weight, constraint,
! 	     m_src->m_index, m_dest->m_index);
  
    dump_label_to_pp (pp, false);
  
    pp_printf (pp, "\"];\n");
  }
  
  /* Return a new json::object of the form
!    {"kind"   : str,
!     "src_idx": int, the index of the source supernode,
!     "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;
  }
  
! /* If this is an intraprocedural superedge, return the associated
!    CFG edge.  Otherwise, return NULL.  */
! 
! ::edge
! superedge::get_any_cfg_edge () const
! {
!   if (const cfg_superedge *sub = dyn_cast_cfg_superedge ())
!     return sub->get_cfg_edge ();
!   return NULL;
! }
! 
! /* If this is an interprocedural superedge, return the associated
!    cgraph_edge *.  Otherwise, return NULL.  */
  
! cgraph_edge *
! superedge::get_any_callgraph_edge () const
  {
!   if (const callgraph_superedge *sub = dyn_cast_callgraph_superedge ())
!     return sub->m_cedge;
!   return NULL;
  }
  
  /* Build a description of this superedge (e.g. "true" for the true
--- 988,1029 ----
    m_dest->dump_dot_id (pp);
    pp_printf (pp,
  	     (" [style=%s, color=%s, weight=%d, constraint=%s,"
  	      " headlabel=\""),
! 	     style, color, weight, constraint);
!   pp_flush (pp);
  
    dump_label_to_pp (pp, false);
+   pp_write_text_as_dot_label_to_stream (pp, false);
  
    pp_printf (pp, "\"];\n");
  }
  
  /* Return a new json::object of the form
!    {"src_id": int, the index of the source supernode,
!     "dst_id": int, the index of the destination supernode} */
  
  std::unique_ptr<json::object>
  superedge::to_json () const
  {
!   auto sedge_obj = std::make_unique<json::object> ();
!   sedge_obj->set_integer ("src_id", m_src->m_id);
!   sedge_obj->set_integer ("dst_id", m_dest->m_id);
    return sedge_obj;
  }
  
! /* Return true iff this edge needs to be preserved during simplification.  */
  
! bool
! superedge::preserve_p () const
  {
!   if (m_cfg_edge)
!     if (m_cfg_edge->flags & (EDGE_EH | EDGE_DFS_BACK))
!       {
! 	/* We use EDGE_EH in get_eh_outedge, and EDGE_DFS_BACK
! 	   for detecting infinite loops.  */
! 	return true;
!       }
!   return false;
  }
  
  /* Build a description of this superedge (e.g. "true" for the true
*************** label_text
*** 1030,1397 ****
  superedge::get_description (bool user_facing) const
  {
    pretty_printer pp;
    dump_label_to_pp (&pp, user_facing);
    return label_text::take (xstrdup (pp_formatted_text (&pp)));
  }
  
- /* Implementation of superedge::dump_label_to_pp for non-switch CFG
-    superedges.
- 
-    For true/false edges, print "true" or "false" to PP.
- 
-    If USER_FACING is false, also print flags on the underlying CFG edge to
-    PP.  */
- 
  void
! cfg_superedge::dump_label_to_pp (pretty_printer *pp,
! 				 bool user_facing) const
  {
!   if (true_value_p ())
!     pp_printf (pp, "true");
!   else if (false_value_p ())
!     pp_printf (pp, "false");
  
    if (user_facing)
      return;
  
!   /* Express edge flags as a string with " | " separator.
!      e.g. " (flags FALLTHRU | DFS_BACK)".  */
!   if (get_flags ())
      {
!       pp_string (pp, " (flags ");
!       bool seen_flag = false;
  #define DEF_EDGE_FLAG(NAME,IDX)			\
!   do {						\
!     if (get_flags () & EDGE_##NAME)			\
!       {						\
! 	if (seen_flag)				\
! 	  pp_string (pp, " | ");			\
! 	pp_printf (pp, "%s", (#NAME));		\
! 	seen_flag = true;			\
!       }						\
!   } while (0);
  #include "cfg-flags.def"
  #undef DEF_EDGE_FLAG
!       pp_string (pp, ")");
!     }
! 
!   if (m_cfg_edge->goto_locus > BUILTINS_LOCATION)
!     pp_string (pp, " (has goto_locus)");
! 
!   /* Otherwise, no label.  */
! }
! 
! /* Get the index number for this edge for use in phi stmts
!    in its destination.  */
! 
! size_t
! cfg_superedge::get_phi_arg_idx () const
! {
!   return m_cfg_edge->dest_idx;
! }
! 
! /* Get the phi argument for PHI for this CFG edge.  */
! 
! tree
! cfg_superedge::get_phi_arg (const gphi *phi) const
! {
!   size_t index = get_phi_arg_idx ();
!   return gimple_phi_arg_def (phi, index);
! }
! 
! switch_cfg_superedge::switch_cfg_superedge (supernode *src,
! 					    supernode *dst,
! 					    ::edge e)
! : cfg_superedge (src, dst, e)
! {
!   /* Populate m_case_labels with all cases which go to DST.  */
!   const gswitch *gswitch = get_switch_stmt ();
!   for (unsigned i = 0; i < gimple_switch_num_labels (gswitch); i++)
!     {
!       tree case_ = gimple_switch_label (gswitch, i);
!       basic_block bb = label_to_block (src->get_function (),
! 				       CASE_LABEL (case_));
!       if (bb == dst->m_bb)
! 	m_case_labels.safe_push (case_);
!     }
! }
! 
! /* Implementation of superedge::dump_label_to_pp for CFG superedges for
!    "switch" statements.
! 
!    Print "case VAL:", "case LOWER ... UPPER:", or "default:" to PP.  */
! 
! void
! switch_cfg_superedge::dump_label_to_pp (pretty_printer *pp,
! 					bool user_facing ATTRIBUTE_UNUSED) const
! {
!   if (user_facing)
!     {
!       for (unsigned i = 0; i < m_case_labels.length (); ++i)
! 	{
! 	  if (i > 0)
! 	    pp_string (pp, ", ");
! 	  tree case_label = m_case_labels[i];
! 	  gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
! 	  tree lower_bound = CASE_LOW (case_label);
! 	  tree upper_bound = CASE_HIGH (case_label);
! 	  if (lower_bound)
! 	    {
! 	      pp_printf (pp, "case ");
! 	      dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0, false);
! 	      if (upper_bound)
! 		{
! 		  pp_printf (pp, " ... ");
! 		  dump_generic_node (pp, upper_bound, 0, (dump_flags_t)0,
! 				     false);
! 		}
! 	      pp_printf (pp, ":");
! 	    }
! 	  else
! 	    pp_printf (pp, "default:");
! 	}
!     }
!   else
!     {
!       pp_character (pp, '{');
!       for (unsigned i = 0; i < m_case_labels.length (); ++i)
! 	{
! 	  if (i > 0)
! 	    pp_string (pp, ", ");
! 	  tree case_label = m_case_labels[i];
! 	  gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
! 	  tree lower_bound = CASE_LOW (case_label);
! 	  tree upper_bound = CASE_HIGH (case_label);
! 	  if (lower_bound)
! 	    {
! 	      if (upper_bound)
! 		{
! 		  pp_character (pp, '[');
! 		  dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0,
! 				     false);
! 		  pp_string (pp, ", ");
! 		  dump_generic_node (pp, upper_bound, 0, (dump_flags_t)0,
! 				     false);
! 		  pp_character (pp, ']');
! 		}
! 	      else
! 		dump_generic_node (pp, lower_bound, 0, (dump_flags_t)0, false);
! 	    }
! 	  else
! 	    pp_printf (pp, "default");
! 	}
!       pp_character (pp, '}');
!       if (implicitly_created_default_p ())
! 	{
! 	  pp_string (pp, " IMPLICITLY CREATED");
  	}
      }
  }
  
- /* Return true iff this edge is purely for an implicitly-created "default".  */
- 
  bool
! switch_cfg_superedge::implicitly_created_default_p () const
! {
!   if (m_case_labels.length () != 1)
!     return false;
! 
!   tree case_label = m_case_labels[0];
!   gcc_assert (TREE_CODE (case_label) == CASE_LABEL_EXPR);
!   if (CASE_LOW (case_label))
!     return false;
! 
!   /* We have a single "default" case.
!      Assume that it was implicitly created if it has UNKNOWN_LOCATION.  */
!   return EXPR_LOCATION (case_label) == UNKNOWN_LOCATION;
! }
! 
! /* Implementation of superedge::dump_label_to_pp for interprocedural
!    superedges.  */
! 
! void
! callgraph_superedge::dump_label_to_pp (pretty_printer *pp,
! 				       bool user_facing ATTRIBUTE_UNUSED) const
! {
!   switch (m_kind)
!     {
!     default:
!     case SUPEREDGE_CFG_EDGE:
!       gcc_unreachable ();
! 
!     case SUPEREDGE_CALL:
!       pp_printf (pp, "call");
!       break;
! 
!     case SUPEREDGE_RETURN:
!       pp_printf (pp, "return");
!       break;
! 
!     case SUPEREDGE_INTRAPROCEDURAL_CALL:
!       pp_printf (pp, "intraproc link");
!       break;
!     }
! }
! 
! /* Get the function that was called at this interprocedural call/return
!    edge.  */
! 
! function *
! callgraph_superedge::get_callee_function () const
! {
!   return get_ultimate_function_for_cgraph_edge (m_cedge);
! }
! 
! /* Get the calling function at this interprocedural call/return edge.  */
! 
! function *
! callgraph_superedge::get_caller_function () const
! {
!   return m_cedge->caller->get_fun ();
! }
! 
! /* Get the fndecl that was called at this interprocedural call/return
!    edge.  */
! 
! tree
! callgraph_superedge::get_callee_decl () const
! {
!   return get_callee_function ()->decl;
! }
! 
! /* Get the gcall * of this interprocedural call/return edge.  */
! 
! gcall *
! callgraph_superedge::get_call_stmt () const
! {
!   if (m_cedge)
!     return m_cedge->call_stmt;
! 
!   return m_src->get_final_call ();
! }
! 
! /* Get the calling fndecl at this interprocedural call/return edge.  */
! 
! tree
! callgraph_superedge::get_caller_decl () const
! {
!   return get_caller_function ()->decl;
! }
! 
! /* Given PARM_TO_FIND, a PARM_DECL, identify its index (writing it
!    to *OUT if OUT is non-NULL), and return the corresponding argument
!    at the callsite.  */
! 
! tree
! callgraph_superedge::get_arg_for_parm (tree parm_to_find,
! 				       callsite_expr *out) const
! {
!   gcc_assert  (TREE_CODE (parm_to_find) == PARM_DECL);
! 
!   tree callee = get_callee_decl ();
!   const gcall *call_stmt = get_call_stmt ();
! 
!   unsigned i = 0;
!   for (tree iter_parm = DECL_ARGUMENTS (callee); iter_parm;
!        iter_parm = DECL_CHAIN (iter_parm), ++i)
!     {
!       if (i >= gimple_call_num_args (call_stmt))
! 	return NULL_TREE;
!       if (iter_parm == parm_to_find)
! 	{
! 	  if (out)
! 	    *out = callsite_expr::from_zero_based_param (i);
! 	  return gimple_call_arg (call_stmt, i);
! 	}
!     }
! 
!   /* Not found.  */
!   return NULL_TREE;
! }
! 
! /* Look for a use of ARG_TO_FIND as an argument at this callsite.
!    If found, return the default SSA def of the corresponding parm within
!    the callee, and if OUT is non-NULL, write the index to *OUT.
!    Only the first match is handled.  */
! 
! tree
! callgraph_superedge::get_parm_for_arg (tree arg_to_find,
! 				       callsite_expr *out) const
! {
!   tree callee = get_callee_decl ();
!   const gcall *call_stmt = get_call_stmt ();
! 
!   unsigned i = 0;
!   for (tree iter_parm = DECL_ARGUMENTS (callee); iter_parm;
!        iter_parm = DECL_CHAIN (iter_parm), ++i)
!     {
!       if (i >= gimple_call_num_args (call_stmt))
! 	return NULL_TREE;
!       tree param = gimple_call_arg (call_stmt, i);
!       if (arg_to_find == param)
! 	{
! 	  if (out)
! 	    *out = callsite_expr::from_zero_based_param (i);
! 	  return ssa_default_def (get_callee_function (), iter_parm);
! 	}
!     }
! 
!   /* Not found.  */
!   return NULL_TREE;
! }
! 
! /* Map caller_expr back to an expr within the callee, or return NULL_TREE.
!    If non-NULL is returned, populate OUT.  */
! 
! tree
! callgraph_superedge::map_expr_from_caller_to_callee (tree caller_expr,
! 						     callsite_expr *out) const
! {
!   /* Is it an argument (actual param)?  If so, convert to
!      parameter (formal param).  */
!   tree parm = get_parm_for_arg (caller_expr, out);
!   if (parm)
!     return parm;
!   /* Otherwise try return value.  */
!   if (caller_expr == gimple_call_lhs (get_call_stmt ()))
!     {
!       if (out)
! 	*out = callsite_expr::from_return_value ();
!       return DECL_RESULT (get_callee_decl ());
!     }
! 
!   return NULL_TREE;
! }
! 
! /* Map callee_expr back to an expr within the caller, or return NULL_TREE.
!    If non-NULL is returned, populate OUT.  */
! 
! tree
! callgraph_superedge::map_expr_from_callee_to_caller (tree callee_expr,
! 						     callsite_expr *out) const
  {
!   if (callee_expr == NULL_TREE)
!     return NULL_TREE;
! 
!   /* If it's a parameter (formal param), get the argument (actual param).  */
!   if (TREE_CODE (callee_expr) == PARM_DECL)
!     return get_arg_for_parm (callee_expr, out);
! 
!   /* Similar for the default SSA name of the PARM_DECL.  */
!   if (TREE_CODE (callee_expr) == SSA_NAME
!       && SSA_NAME_IS_DEFAULT_DEF (callee_expr)
!       && TREE_CODE (SSA_NAME_VAR (callee_expr)) == PARM_DECL)
!     return get_arg_for_parm (SSA_NAME_VAR (callee_expr), out);
! 
!   /* Otherwise try return value.  */
!   if (callee_expr == DECL_RESULT (get_callee_decl ()))
!     {
!       if (out)
! 	*out = callsite_expr::from_return_value ();
!       return gimple_call_lhs (get_call_stmt ());
!     }
! 
!   return NULL_TREE;
  }
  
  } // namespace ana
--- 1036,1088 ----
  superedge::get_description (bool user_facing) const
  {
    pretty_printer pp;
+   pp_format_decoder (&pp) = default_tree_printer;
    dump_label_to_pp (&pp, user_facing);
    return label_text::take (xstrdup (pp_formatted_text (&pp)));
  }
  
  void
! superedge::dump_label_to_pp (pretty_printer *pp, bool user_facing) const
  {
!   if (get_op ())
!     get_op ()->print_as_edge_label (pp, user_facing);
!   else
!     pp_printf (pp, "no-op");
  
    if (user_facing)
      return;
  
!   if (::edge cfg_edge = get_any_cfg_edge ())
      {
!       if (cfg_edge->flags)
! 	{
! 	  pp_string (pp, " (flags ");
! 	  bool seen_flag = false;
  #define DEF_EDGE_FLAG(NAME,IDX)			\
! 	  do {						\
! 	    if (cfg_edge->flags & EDGE_##NAME)		\
! 	      {						\
! 		if (seen_flag)					\
! 		  pp_string (pp, " | ");			\
! 		pp_printf (pp, "%s", (#NAME));			\
! 		seen_flag = true;				\
! 	      }						\
! 	  } while (0);
  #include "cfg-flags.def"
  #undef DEF_EDGE_FLAG
! 	  pp_string (pp, ")");
  	}
+       if (cfg_edge->goto_locus > BUILTINS_LOCATION)
+ 	pp_printf (pp, " (has goto_locus: 0x%lx)", cfg_edge->goto_locus);
      }
  }
  
  bool
! superedge::supports_bulk_merge_p () const
  {
!   if (!m_op)
!     return true;
!   return m_op->supports_bulk_merge_p ();
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/supergraph.h gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph.h
*** gcc-15.2.0/gcc/analyzer/supergraph.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/supergraph.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* "Supergraph" classes that combine CFGs and callgraph into one digraph.
!    Copyright (C) 2019-2026 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,32 ****
--- 24,36 ----
  #include "ordered-hash-map.h"
  #include "cfg.h"
  #include "basic-block.h"
+ #include "cfgloop.h"
  #include "gimple.h"
  #include "gimple-iterator.h"
  #include "digraph.h"
+ #include "except.h"
+ 
+ #include "analyzer/ops.h"
  
  using namespace ana;
  
*************** namespace ana {
*** 37,62 ****
  class supergraph;
  class supernode;
  class superedge;
-   class callgraph_superedge;
-     class call_superedge;
-     class return_superedge;
-   class cfg_superedge;
-     class switch_cfg_superedge;
  class supercluster;
  class dot_annotator;
  
  class logger;
  
- /* An enum for discriminating between superedge subclasses.  */
- 
- enum edge_kind
- {
-   SUPEREDGE_CFG_EDGE,
-   SUPEREDGE_CALL,
-   SUPEREDGE_RETURN,
-   SUPEREDGE_INTRAPROCEDURAL_CALL
- };
- 
  /* Flags for controlling the appearance of .dot dumps.  */
  
  enum supergraph_dot_flags
--- 41,51 ----
*************** struct supergraph_traits
*** 75,87 ****
    struct dump_args_t
    {
      dump_args_t (enum supergraph_dot_flags flags,
! 		 const dot_annotator *node_annotator)
      : m_flags (flags),
!       m_node_annotator (node_annotator)
      {}
  
      enum supergraph_dot_flags m_flags;
      const dot_annotator *m_node_annotator;
    };
    typedef supercluster cluster_t;
  };
--- 64,79 ----
    struct dump_args_t
    {
      dump_args_t (enum supergraph_dot_flags flags,
! 		 const dot_annotator *node_annotator,
! 		 const exploded_graph *eg)
      : m_flags (flags),
!       m_node_annotator (node_annotator),
!       m_eg (eg)
      {}
  
      enum supergraph_dot_flags m_flags;
      const dot_annotator *m_node_annotator;
+     const exploded_graph *m_eg;
    };
    typedef supercluster cluster_t;
  };
*************** private:
*** 98,167 ****
    auto_vec<std::pair<gimple *, unsigned> > m_old_stmt_uids;
  };
  
! /* A "supergraph" is a directed graph formed by joining together all CFGs,
!    linking them via interprocedural call and return edges.
  
!    Basic blocks are split at callsites, so that a call statement occurs
!    twice: once at the end of a supernode, and a second instance at the
!    start of the next supernode (to handle the return).  */
  
  class supergraph : public digraph<supergraph_traits>
  {
  public:
!   supergraph (logger *logger);
    ~supergraph ();
  
    supernode *get_node_for_function_entry (const function &fun) const
    {
!     return get_node_for_block (ENTRY_BLOCK_PTR_FOR_FN (&fun));
    }
  
    supernode *get_node_for_function_exit (const function &fun) const
    {
!     return get_node_for_block (EXIT_BLOCK_PTR_FOR_FN (&fun));
    }
  
!   supernode *get_node_for_block (basic_block bb) const
    {
      return *const_cast <bb_to_node_t &> (m_bb_to_initial_node).get (bb);
    }
  
!   /* Get the supernode containing the second half of the gcall *
!      at an interprocedural call, within the caller.  */
!   supernode *get_caller_next_node (cgraph_edge *edge) const
!   {
!     return (*const_cast <cgraph_edge_to_node_t &>
! 	      (m_cgraph_edge_to_caller_next_node).get (edge));
!   }
! 
!   call_superedge *get_edge_for_call (cgraph_edge *edge) const
!   {
!     return (*const_cast <cgraph_edge_to_call_superedge_t &>
! 	      (m_cgraph_edge_to_call_superedge).get (edge));
!   }
! 
!   return_superedge *get_edge_for_return (cgraph_edge *edge) const
!   {
!     return (*const_cast <cgraph_edge_to_return_superedge_t &>
! 	      (m_cgraph_edge_to_return_superedge).get (edge));
!   }
! 
!   superedge *get_intraprocedural_edge_for_call (cgraph_edge *edge) const
    {
!     return (*const_cast <cgraph_edge_to_intraproc_superedge_t &>
! 	      (m_cgraph_edge_to_intraproc_superedge).get (edge));
    }
  
!   cfg_superedge *get_edge_for_cfg_edge (edge e) const
    {
!     return (*const_cast <cfg_edge_to_cfg_superedge_t &>
! 	      (m_cfg_edge_to_cfg_superedge).get (e));
    }
  
!   supernode *get_supernode_for_stmt (const gimple *stmt) const
    {
!     return (*const_cast <stmt_to_node_t &>(m_stmt_to_node_t).get
! 	    (const_cast <gimple *> (stmt)));
    }
  
    void dump_dot_to_pp (pretty_printer *pp, const dump_args_t &) const;
--- 90,145 ----
    auto_vec<std::pair<gimple *, unsigned> > m_old_stmt_uids;
  };
  
! /* A directed graph class representing the users's code,
!    with nodes representing locations within functions, and
!    edges representing transitions between them.
  
!    For historical reasons we call this the "supergraph", although
!    this is now a misnomer as we no longer add callgraph edges to this
!    graph: the edges within the supergraph are purely intraprocedural:
!    either linking consecutive stmts in a basic block, or linking
!    basic blocks (corresponding to CFG edges).  However, all functions
!    are within the same graph.  */
  
  class supergraph : public digraph<supergraph_traits>
  {
  public:
!   supergraph (region_model_manager &mgr, logger *logger);
    ~supergraph ();
  
    supernode *get_node_for_function_entry (const function &fun) const
    {
!     return get_initial_node_for_block (ENTRY_BLOCK_PTR_FOR_FN (&fun));
    }
  
    supernode *get_node_for_function_exit (const function &fun) const
    {
!     return get_final_node_for_block (EXIT_BLOCK_PTR_FOR_FN (&fun));
    }
  
!   supernode *get_initial_node_for_block (basic_block bb) const
    {
      return *const_cast <bb_to_node_t &> (m_bb_to_initial_node).get (bb);
    }
  
!   supernode *get_final_node_for_block (basic_block bb) const
    {
!     return *const_cast <bb_to_node_t &> (m_bb_to_final_node).get (bb);
    }
  
!   supernode *get_supernode_for_stmt (const gimple *stmt) const
    {
!     auto iter = m_node_for_stmt.find (stmt);
!     gcc_assert (iter != m_node_for_stmt.end ());
!     return iter->second;
    }
  
!   superedge *get_superedge_for_phis (::edge cfg_edge) const
    {
!     auto iter = m_edges_for_phis.find (cfg_edge);
!     if (iter != m_edges_for_phis.end ())
!       return iter->second;
!     return nullptr;
    }
  
    void dump_dot_to_pp (pretty_printer *pp, const dump_args_t &) const;
*************** public:
*** 173,183 ****
    int num_nodes () const { return m_nodes.length (); }
    int num_edges () const { return m_edges.length (); }
  
-   supernode *get_node_by_index (int idx) const
-   {
-     return m_nodes[idx];
-   }
- 
    unsigned get_num_snodes (const function *fun) const
    {
      function_to_num_snodes_t &map
--- 151,156 ----
*************** public:
*** 185,232 ****
      return *map.get (fun);
    }
  
! private:
!   supernode *add_node (function *fun, basic_block bb, gcall *returning_call,
! 		       gimple_seq phi_nodes);
!   cfg_superedge *add_cfg_edge (supernode *src, supernode *dest, ::edge e);
!   call_superedge *add_call_superedge (supernode *src, supernode *dest,
! 				      cgraph_edge *cedge);
!   return_superedge *add_return_superedge (supernode *src, supernode *dest,
! 					  cgraph_edge *cedge);
  
!   /* Data.  */
  
!   typedef ordered_hash_map<basic_block, supernode *> bb_to_node_t;
!   bb_to_node_t m_bb_to_initial_node;
!   bb_to_node_t m_bb_to_final_node;
  
!   typedef ordered_hash_map<cgraph_edge *, supernode *> cgraph_edge_to_node_t;
!   cgraph_edge_to_node_t m_cgraph_edge_to_caller_prev_node;
!   cgraph_edge_to_node_t m_cgraph_edge_to_caller_next_node;
  
!   typedef ordered_hash_map< ::edge, cfg_superedge *>
!     cfg_edge_to_cfg_superedge_t;
!   cfg_edge_to_cfg_superedge_t m_cfg_edge_to_cfg_superedge;
  
!   typedef ordered_hash_map<cgraph_edge *, call_superedge *>
!     cgraph_edge_to_call_superedge_t;
!   cgraph_edge_to_call_superedge_t m_cgraph_edge_to_call_superedge;
  
!   typedef ordered_hash_map<cgraph_edge *, return_superedge *>
!     cgraph_edge_to_return_superedge_t;
!   cgraph_edge_to_return_superedge_t m_cgraph_edge_to_return_superedge;
  
!   typedef ordered_hash_map<cgraph_edge *, superedge *>
!     cgraph_edge_to_intraproc_superedge_t;
!   cgraph_edge_to_intraproc_superedge_t m_cgraph_edge_to_intraproc_superedge;
  
!   typedef ordered_hash_map<gimple *, supernode *> stmt_to_node_t;
!   stmt_to_node_t m_stmt_to_node_t;
  
    typedef hash_map<const function *, unsigned> function_to_num_snodes_t;
    function_to_num_snodes_t m_function_to_num_snodes;
  
    saved_uids m_stmt_uids;
  };
  
  /* A node within a supergraph.  */
--- 158,221 ----
      return *map.get (fun);
    }
  
!   void log_stats (logger *logger) const;
  
!   void delete_nodes (const std::set<supernode *> &snodes);
  
!   /* Implemented in supergraph-fixup-locations.cc.  */
!   void fixup_locations (logger *);
  
!   /* Implemented in supergraph-simplify.cc.  */
!   void simplify (logger *);
  
!   /* Implemented in supergraph-sorting.cc.  */
!   void sort_nodes (logger *logger);
  
!   supernode *add_node (function *fun, basic_block bb, logger *logger);
  
! private:
!   gimple *
!   populate_for_basic_block (basic_block bb,
! 			    function *fun,
! 			    logger *logger);
  
!   void
!   add_sedges_for_cfg_edge (supernode *src,
! 			   supernode *dest,
! 			   ::edge e,
! 			   gimple *control_stmt,
! 			   region_model_manager &mgr,
! 			   logger *logger);
  
!   void dump_dot_to_gv_for_loop (graphviz_out &gv, const dump_args_t &,
! 				class loop *, function *) const;
!   void dump_dot_to_gv_for_bb (graphviz_out &gv, const dump_args_t &,
! 			      basic_block, function *) const;
! 
!   /* Implemented in supergraph-sorting.cc.  */
!   void
!   reorder_nodes_and_ids (const std::vector<supernode *> &ordering,
! 			 logger *logger);
! 
!   /* Data.  */
! 
!   typedef ordered_hash_map<basic_block, supernode *> bb_to_node_t;
!   bb_to_node_t m_bb_to_initial_node;
!   bb_to_node_t m_bb_to_final_node;
! 
!   std::map<const gimple *, supernode *> m_node_for_stmt;
!   std::map<::edge, superedge *> m_edges_for_phis;
  
    typedef hash_map<const function *, unsigned> function_to_num_snodes_t;
    function_to_num_snodes_t m_function_to_num_snodes;
  
    saved_uids m_stmt_uids;
+ 
+   /* Hand out unique IDs to supernodes, to make it easier
+      to track them when deleting/splitting etc (they're easier to
+      think about when debugging than pointer values).  */
+   int m_next_snode_id;
+   std::vector<supernode *> m_snode_by_id;
  };
  
  /* A node within a supergraph.  */
*************** private:
*** 234,243 ****
  class supernode : public dnode<supergraph_traits>
  {
   public:
!   supernode (function *fun, basic_block bb, gcall *returning_call,
! 	     gimple_seq phi_nodes, int index)
!   : m_fun (fun), m_bb (bb), m_returning_call (returning_call),
!     m_phi_nodes (phi_nodes), m_index (index)
    {}
  
    function *get_function () const { return m_fun; }
--- 223,237 ----
  class supernode : public dnode<supergraph_traits>
  {
   public:
!   supernode (function *fun, basic_block bb, int id)
!   : m_fun (fun), m_bb (bb),
!     m_loc (UNKNOWN_LOCATION),
!     m_stmt_loc (UNKNOWN_LOCATION),
!     m_id (id),
!     m_original_id (id),
!     m_label (NULL_TREE),
!     m_preserve_p (false),
!     m_state_merger_node (false)
    {}
  
    function *get_function () const { return m_fun; }
*************** class supernode : public dnode<supergrap
*** 246,253 ****
    {
      return m_bb == ENTRY_BLOCK_PTR_FOR_FN (m_fun);
    }
! 
!   bool return_p () const
    {
      return m_bb == EXIT_BLOCK_PTR_FOR_FN (m_fun);
    }
--- 240,246 ----
    {
      return m_bb == ENTRY_BLOCK_PTR_FOR_FN (m_fun);
    }
!   bool exit_p () const
    {
      return m_bb == EXIT_BLOCK_PTR_FOR_FN (m_fun);
    }
*************** class supernode : public dnode<supergrap
*** 255,318 ****
    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;
! 
!   /* Returns iterator at the start of the list of phi nodes, if any.  */
!   gphi_iterator start_phis ()
!   {
!     gimple_seq *pseq = &m_phi_nodes;
! 
!     /* Adapted from gsi_start_1. */
!     gphi_iterator i;
! 
!     i.ptr = gimple_seq_first (*pseq);
!     i.seq = pseq;
!     i.bb = i.ptr ? gimple_bb (i.ptr) : NULL;
! 
!     return i;
!   }
! 
!   gcall *get_returning_call () const
    {
!     return m_returning_call;
    }
  
!   gimple *get_last_stmt () const
!   {
!     if (m_stmts.length () == 0)
!       return NULL;
!     return m_stmts[m_stmts.length () - 1];
!   }
  
!   gcall *get_final_call () const
!   {
!     gimple *stmt = get_last_stmt ();
!     if (stmt == NULL)
!       return NULL;
!     return dyn_cast<gcall *> (stmt);
!   }
  
!   unsigned int get_stmt_index (const gimple *stmt) const;
  
!   tree get_label () const;
  
!   function * const m_fun; // alternatively could be stored as runs of indices within the supergraph
    const basic_block m_bb;
!   gcall * const m_returning_call; // for handling the result of a returned call
!   gimple_seq m_phi_nodes; // ptr to that of the underlying BB, for the first supernode for the BB
!   auto_vec<gimple *> m_stmts;
!   const int m_index; /* unique within the supergraph as a whole.  */
  };
  
! /* An abstract base class encapsulating an edge within a supergraph.
!    Edges can be CFG edges, or calls/returns for callgraph edges.  */
  
  class superedge : public dedge<supergraph_traits>
  {
   public:
    virtual ~superedge () {}
  
    void dump (pretty_printer *pp) const;
--- 248,297 ----
    void dump_dot (graphviz_out *gv, const dump_args_t &args) const override;
    void dump_dot_id (pretty_printer *pp) const;
  
!   void print (pretty_printer *pp) const
    {
!     pp_printf (pp, "SN %i", m_id);
    }
  
!   std::unique_ptr<json::object> to_json () const;
  
!   location_t get_location () const { return m_loc; }
  
!   tree get_label () const { return m_label; }
  
!   bool preserve_p () const { return m_preserve_p; }
  
!   function * const m_fun;
    const basic_block m_bb;
!   location_t m_loc;
!   location_t m_stmt_loc; // for debugging
!   int m_id; /* unique within the supergraph as a whole.  */
!   const int m_original_id;
!   tree m_label;
!   bool m_preserve_p;
!   bool m_state_merger_node;
  };
  
! /* An edge within the supergraph, with an optional operation.
!    Edges can be CFG edges or edges between statements, or persist
!    in order to give more opportunities for state-merging when
!    building the exploded graph.  */
  
  class superedge : public dedge<supergraph_traits>
  {
   public:
+   superedge (supernode *src, supernode *dest,
+ 	     std::unique_ptr<operation> op,
+ 	     ::edge cfg_edge)
+   : dedge<supergraph_traits> (src, dest),
+     m_op (std::move (op)),
+     m_cfg_edge (cfg_edge)
+   {
+     /* All edges are intraprocedural.  */
+     gcc_assert (m_src->get_function ()
+ 		== m_dest->get_function ());
+   }
+ 
    virtual ~superedge () {}
  
    void dump (pretty_printer *pp) const;
*************** class superedge : public dedge<supergrap
*** 320,355 ****
    void dump_dot (graphviz_out *gv, const dump_args_t &args)
      const final override;
  
!   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; }
  
!   virtual cfg_superedge *dyn_cast_cfg_superedge () { return NULL; }
!   virtual const cfg_superedge *dyn_cast_cfg_superedge () const { return NULL; }
!   virtual const switch_cfg_superedge *dyn_cast_switch_cfg_superedge () const { return NULL; }
!   virtual callgraph_superedge *dyn_cast_callgraph_superedge () { return NULL; }
!   virtual const callgraph_superedge *dyn_cast_callgraph_superedge () const { return NULL; }
!   virtual call_superedge *dyn_cast_call_superedge () { return NULL; }
!   virtual const call_superedge *dyn_cast_call_superedge () const { return NULL; }
!   virtual return_superedge *dyn_cast_return_superedge () { return NULL; }
!   virtual const return_superedge *dyn_cast_return_superedge () const { return NULL; }
  
!   ::edge get_any_cfg_edge () const;
!   cgraph_edge *get_any_callgraph_edge () const;
  
    label_text get_description (bool user_facing) const;
  
!  protected:
!   superedge (supernode *src, supernode *dest, enum edge_kind kind)
!   : dedge<supergraph_traits> (src, dest),
!     m_kind (kind)
!   {}
  
!  public:
!   const enum edge_kind m_kind;
  };
  
  /* An ID representing an expression at a callsite:
--- 299,326 ----
    void dump_dot (graphviz_out *gv, const dump_args_t &args)
      const final override;
  
!   const operation *get_op () const { return m_op.get (); }
!   void set_op (std::unique_ptr<operation> op) { m_op = std::move (op); }
! 
!   void dump_label_to_pp (pretty_printer *pp,
! 				 bool user_facing) const;
  
    std::unique_ptr<json::object> to_json () const;
  
!   const supernode *get_dest_snode () const { return m_dest; }
  
!   ::edge get_any_cfg_edge () const { return m_cfg_edge; }
  
!   bool preserve_p () const;
  
    label_text get_description (bool user_facing) const;
  
!   bool
!   supports_bulk_merge_p () const;
  
! private:
!   std::unique_ptr<operation> m_op;
!   ::edge m_cfg_edge;
  };
  
  /* An ID representing an expression at a callsite:
*************** class callsite_expr
*** 386,626 ****
    int m_val; /* 1-based parm, 0 for return value, or -1 for "unknown".  */
  };
  
- /* A subclass of superedge with an associated callgraph edge (either a
-    call or a return).  */
- 
- class callgraph_superedge : public superedge
- {
-  public:
-   callgraph_superedge (supernode *src, supernode *dst, enum edge_kind kind,
- 		       cgraph_edge *cedge)
-   : superedge (src, dst, kind),
-     m_cedge (cedge)
-   {}
- 
-   void dump_label_to_pp (pretty_printer *pp, bool user_facing) const
-     final override;
- 
-   callgraph_superedge *dyn_cast_callgraph_superedge () final override
-   {
-     return this;
-   }
-   const callgraph_superedge *dyn_cast_callgraph_superedge () const
-     final override
-   {
-     return this;
-   }
- 
-   function *get_callee_function () const;
-   function *get_caller_function () const;
-   tree get_callee_decl () const;
-   tree get_caller_decl () const;
-   gcall *get_call_stmt () const;
-   tree get_arg_for_parm (tree parm, callsite_expr *out) const;
-   tree get_parm_for_arg (tree arg, callsite_expr *out) const;
-   tree map_expr_from_caller_to_callee (tree caller_expr,
- 				       callsite_expr *out) const;
-   tree map_expr_from_callee_to_caller (tree callee_expr,
- 				       callsite_expr *out) const;
- 
-   cgraph_edge *const m_cedge;
- };
- 
- } // namespace ana
- 
- template <>
- template <>
- inline bool
- is_a_helper <const callgraph_superedge *>::test (const superedge *sedge)
- {
-   return (sedge->get_kind () == SUPEREDGE_INTRAPROCEDURAL_CALL
- 	  || sedge->get_kind () == SUPEREDGE_CALL
- 	  || sedge->get_kind () == SUPEREDGE_RETURN);
- }
- 
- namespace ana {
- 
- /* A subclass of superedge representing an interprocedural call.  */
- 
- class call_superedge : public callgraph_superedge
- {
-  public:
-   call_superedge (supernode *src, supernode *dst, cgraph_edge *cedge)
-   : callgraph_superedge (src, dst, SUPEREDGE_CALL, cedge)
-   {}
- 
-   call_superedge *dyn_cast_call_superedge () final override
-   {
-     return this;
-   }
-   const call_superedge *dyn_cast_call_superedge () const final override
-   {
-     return this;
-   }
- 
-   return_superedge *get_edge_for_return (const supergraph &sg) const
-   {
-     return sg.get_edge_for_return (m_cedge);
-   }
- };
- 
- } // namespace ana
- 
- template <>
- template <>
- inline bool
- is_a_helper <const call_superedge *>::test (const superedge *sedge)
- {
-   return sedge->get_kind () == SUPEREDGE_CALL;
- }
- 
- namespace ana {
- 
- /* A subclass of superedge represesnting an interprocedural return.  */
- 
- class return_superedge : public callgraph_superedge
- {
-  public:
-   return_superedge (supernode *src, supernode *dst, cgraph_edge *cedge)
-   : callgraph_superedge (src, dst, SUPEREDGE_RETURN, cedge)
-   {}
- 
-   return_superedge *dyn_cast_return_superedge () final override { return this; }
-   const return_superedge *dyn_cast_return_superedge () const final override
-   {
-     return this;
-   }
- 
-   call_superedge *get_edge_for_call (const supergraph &sg) const
-   {
-     return sg.get_edge_for_call (m_cedge);
-   }
- };
- 
- } // namespace ana
- 
- template <>
- template <>
- inline bool
- is_a_helper <const return_superedge *>::test (const superedge *sedge)
- {
-   return sedge->get_kind () == SUPEREDGE_RETURN;
- }
- 
- namespace ana {
- 
- /* A subclass of superedge that corresponds to a CFG edge.  */
- 
- class cfg_superedge : public superedge
- {
-  public:
-   cfg_superedge (supernode *src, supernode *dst, ::edge e)
-   : superedge (src, dst, SUPEREDGE_CFG_EDGE),
-     m_cfg_edge (e)
-   {}
- 
-   void dump_label_to_pp (pretty_printer *pp, bool user_facing) const override;
-   cfg_superedge *dyn_cast_cfg_superedge () final override { return this; }
-   const cfg_superedge *dyn_cast_cfg_superedge () const final override { return this; }
- 
-   ::edge get_cfg_edge () const { return m_cfg_edge; }
-   int get_flags () const { return m_cfg_edge->flags; }
-   int true_value_p () const { return get_flags () & EDGE_TRUE_VALUE; }
-   int false_value_p () const { return get_flags () & EDGE_FALSE_VALUE; }
-   int back_edge_p () const { return get_flags () & EDGE_DFS_BACK; }
- 
-   size_t get_phi_arg_idx () const;
-   tree get_phi_arg (const gphi *phi) const;
- 
-   location_t get_goto_locus () const { return m_cfg_edge->goto_locus; }
- 
-  private:
-   const ::edge m_cfg_edge;
- };
- 
- } // namespace ana
- 
- template <>
- template <>
- inline bool
- is_a_helper <const cfg_superedge *>::test (const superedge *sedge)
- {
-   return sedge->get_kind () == SUPEREDGE_CFG_EDGE;
- }
- 
- namespace ana {
- 
- /* A subclass for edges from switch statements, retaining enough
-    information to identify the pertinent cases, and for adding labels
-    when rendering via graphviz.  */
- 
- class switch_cfg_superedge : public cfg_superedge {
-  public:
-   switch_cfg_superedge (supernode *src, supernode *dst, ::edge e);
- 
-   const switch_cfg_superedge *dyn_cast_switch_cfg_superedge () const
-     final override
-   {
-     return this;
-   }
- 
-   void dump_label_to_pp (pretty_printer *pp, bool user_facing) const
-     final override;
- 
-   gswitch *get_switch_stmt () const
-   {
-     return as_a <gswitch *> (m_src->get_last_stmt ());
-   }
- 
-   const vec<tree> &get_case_labels () const { return m_case_labels; }
- 
-   bool implicitly_created_default_p () const;
- 
- private:
-   auto_vec<tree> m_case_labels;
- };
- 
- } // namespace ana
- 
- template <>
- template <>
- inline bool
- is_a_helper <const switch_cfg_superedge *>::test (const superedge *sedge)
- {
-   return sedge->dyn_cast_switch_cfg_superedge () != NULL;
- }
- 
- namespace ana {
- 
  /* Base class for adding additional content to the .dot output
     for a supergraph.  */
  
  class dot_annotator
  {
   public:
!   virtual ~dot_annotator () {}
!   virtual bool add_node_annotations (graphviz_out *gv ATTRIBUTE_UNUSED,
! 				     const supernode &n ATTRIBUTE_UNUSED,
! 				     bool within_table ATTRIBUTE_UNUSED)
!     const
    {
!     return false;
    }
!   virtual void add_stmt_annotations (graphviz_out *gv ATTRIBUTE_UNUSED,
! 				     const gimple *stmt ATTRIBUTE_UNUSED,
! 				     bool within_row ATTRIBUTE_UNUSED)
!     const {}
!   virtual bool add_after_node_annotations (graphviz_out *gv ATTRIBUTE_UNUSED,
! 					   const supernode &n ATTRIBUTE_UNUSED)
!     const
    {
!     return false;
    }
  };
  
- extern cgraph_edge *supergraph_call_edge (function *fun, const gimple *stmt);
- extern function *get_ultimate_function_for_cgraph_edge (cgraph_edge *edge);
- 
  } // namespace ana
  
  #endif /* GCC_ANALYZER_SUPERGRAPH_H */
--- 357,384 ----
    int m_val; /* 1-based parm, 0 for return value, or -1 for "unknown".  */
  };
  
  /* Base class for adding additional content to the .dot output
     for a supergraph.  */
  
  class dot_annotator
  {
   public:
!   virtual ~dot_annotator () = default;
! 
!   virtual void
!   add_node_annotations (graphviz_out *gv ATTRIBUTE_UNUSED,
! 			const supernode &n ATTRIBUTE_UNUSED) const
    {
!     // no-op
    }
! 
!   virtual void
!   add_extra_objects (graphviz_out *gv ATTRIBUTE_UNUSED) const
    {
!     // no-op
    }
  };
  
  } // namespace ana
  
  #endif /* GCC_ANALYZER_SUPERGRAPH_H */
diff -Nrcpad gcc-15.2.0/gcc/analyzer/svalue.cc gcc-16.1.0-RC-20260423/gcc/analyzer/svalue.cc
*** gcc-15.2.0/gcc/analyzer/svalue.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/svalue.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,56 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "diagnostic-core.h"
  #include "gimple-pretty-print.h"
- #include "function.h"
- #include "basic-block.h"
- #include "gimple.h"
- #include "gimple-iterator.h"
- #include "diagnostic-core.h"
- #include "graphviz.h"
- #include "options.h"
- #include "cgraph.h"
- #include "tree-dfa.h"
- #include "stringpool.h"
- #include "convert.h"
- #include "target.h"
  #include "fold-const.h"
! #include "tree-pretty-print.h"
! #include "bitmap.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/svalue.h"
  #include "analyzer/region-model.h"
- #include "diagnostic.h"
- #include "tree-diagnostic.h"
- #include "make-unique.h"
- #include "text-art/dump.h"
  
  #if ENABLE_ANALYZER
  
--- 18,41 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
! #include "tree-pretty-print.h"
  #include "gimple-pretty-print.h"
  #include "fold-const.h"
! #include "diagnostic.h"
! #include "tree-diagnostic.h"
! #include "value-relation.h"
! #include "range-op.h"
! 
! #include "text-art/dump.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/call-string.h"
  #include "analyzer/program-point.h"
  #include "analyzer/store.h"
  #include "analyzer/svalue.h"
  #include "analyzer/region-model.h"
  
  #if ENABLE_ANALYZER
  
*************** std::unique_ptr<json::value>
*** 107,113 ****
  svalue::to_json () const
  {
    label_text desc = get_desc (true);
!   auto sval_js = ::make_unique<json::string> (desc.get ());
    return sval_js;
  }
  
--- 92,98 ----
  svalue::to_json () const
  {
    label_text desc = get_desc (true);
!   auto sval_js = std::make_unique<json::string> (desc.get ());
    return sval_js;
  }
  
*************** svalue::maybe_get_constant () const
*** 264,270 ****
  }
  
  /* If this svalue is a region_svalue, return the region it points to.
!    Otherwise return NULL.  */
  
  const region *
  svalue::maybe_get_region () const
--- 249,255 ----
  }
  
  /* If this svalue is a region_svalue, return the region it points to.
!    Otherwise return nullptr.  */
  
  const region *
  svalue::maybe_get_region () const
*************** svalue::maybe_get_region () const
*** 272,283 ****
    if (const region_svalue *region_sval = dyn_cast_region_svalue ())
      return region_sval->get_pointee ();
    else
!     return NULL;
  }
  
  /* If this svalue is a cast (i.e a unaryop NOP_EXPR or VIEW_CONVERT_EXPR),
     return the underlying svalue.
!    Otherwise return NULL.  */
  
  const svalue *
  svalue::maybe_undo_cast () const
--- 257,268 ----
    if (const region_svalue *region_sval = dyn_cast_region_svalue ())
      return region_sval->get_pointee ();
    else
!     return nullptr;
  }
  
  /* If this svalue is a cast (i.e a unaryop NOP_EXPR or VIEW_CONVERT_EXPR),
     return the underlying svalue.
!    Otherwise return nullptr.  */
  
  const svalue *
  svalue::maybe_undo_cast () const
*************** svalue::maybe_undo_cast () const
*** 288,294 ****
        if (op == NOP_EXPR || op == VIEW_CONVERT_EXPR)
  	return unaryop_sval->get_arg ();
      }
!   return NULL;
  }
  
  /* If this svalue is an unmergeable decorator around another svalue, return
--- 273,279 ----
        if (op == NOP_EXPR || op == VIEW_CONVERT_EXPR)
  	return unaryop_sval->get_arg ();
      }
!   return nullptr;
  }
  
  /* If this svalue is an unmergeable decorator around another svalue, return
*************** svalue::unwrap_any_unmergeable () const
*** 304,310 ****
  }
  
  /* Attempt to merge THIS with OTHER, returning the merged svalue.
!    Return NULL if not mergeable.  */
  
  const svalue *
  svalue::can_merge_p (const svalue *other,
--- 289,295 ----
  }
  
  /* Attempt to merge THIS with OTHER, returning the merged svalue.
!    Return nullptr if not mergeable.  */
  
  const svalue *
  svalue::can_merge_p (const svalue *other,
*************** svalue::can_merge_p (const svalue *other
*** 312,333 ****
  		     model_merger *merger) const
  {
    if (!(get_type () && other->get_type ()))
!     return NULL;
  
    if (!types_compatible_p (get_type (), other->get_type ()))
!     return NULL;
  
    /* Reject attempts to merge unmergeable svalues.  */
    if ((get_kind () == SK_UNMERGEABLE)
        || (other->get_kind () == SK_UNMERGEABLE))
!     return NULL;
  
    /* Reject attempts to merge poisoned svalues with other svalues
       (either non-poisoned, or other kinds of poison), so that e.g.
       we identify paths in which a variable is conditionally uninitialized.  */
    if (get_kind () == SK_POISONED
        || other->get_kind () == SK_POISONED)
!     return NULL;
  
    /* Reject attempts to merge NULL pointers with not-NULL-pointers.  */
    if (POINTER_TYPE_P (get_type ()))
--- 297,318 ----
  		     model_merger *merger) const
  {
    if (!(get_type () && other->get_type ()))
!     return nullptr;
  
    if (!types_compatible_p (get_type (), other->get_type ()))
!     return nullptr;
  
    /* Reject attempts to merge unmergeable svalues.  */
    if ((get_kind () == SK_UNMERGEABLE)
        || (other->get_kind () == SK_UNMERGEABLE))
!     return nullptr;
  
    /* Reject attempts to merge poisoned svalues with other svalues
       (either non-poisoned, or other kinds of poison), so that e.g.
       we identify paths in which a variable is conditionally uninitialized.  */
    if (get_kind () == SK_POISONED
        || other->get_kind () == SK_POISONED)
!     return nullptr;
  
    /* Reject attempts to merge NULL pointers with not-NULL-pointers.  */
    if (POINTER_TYPE_P (get_type ()))
*************** svalue::can_merge_p (const svalue *other
*** 341,365 ****
  	if (zerop (cst1))
  	  null1 = true;
        if (null0 != null1)
! 	return NULL;
      }
  
    /* Reject merging svalues that have non-purgable sm-state,
       to avoid falsely reporting memory leaks by merging them
       with something else.  */
    if (!merger->mergeable_svalue_p (this))
!     return NULL;
    if (!merger->mergeable_svalue_p (other))
!     return NULL;
  
    /* Widening.  */
    /* Merge: (new_cst, existing_cst) -> widen (existing, new).  */
    if (maybe_get_constant () && other->maybe_get_constant ())
!     {
!       return mgr->get_or_create_widening_svalue (other->get_type (),
! 						 merger->get_function_point (),
! 						 other, this);
!     }
  
    /* Merger of:
  	 this: BINOP (X, OP, CST)
--- 326,357 ----
  	if (zerop (cst1))
  	  null1 = true;
        if (null0 != null1)
! 	return nullptr;
      }
  
    /* Reject merging svalues that have non-purgable sm-state,
       to avoid falsely reporting memory leaks by merging them
       with something else.  */
    if (!merger->mergeable_svalue_p (this))
!     return nullptr;
    if (!merger->mergeable_svalue_p (other))
!     return nullptr;
! 
!   /* Reject attempts to merge pointers that point to different base regions,
!      except for the case where both are string literals.  */
!   if (auto this_region = maybe_get_region ())
!     if (auto other_region = other->maybe_get_region ())
!       if (this_region != other_region
! 	  && (this_region->get_kind () != RK_STRING
! 	      || other_region->get_kind () != RK_STRING))
! 	return nullptr;
  
    /* Widening.  */
    /* Merge: (new_cst, existing_cst) -> widen (existing, new).  */
    if (maybe_get_constant () && other->maybe_get_constant ())
!     return mgr->get_or_create_widening_svalue (other->get_type (),
! 					       merger->get_supernode (),
! 					       other, this);
  
    /* Merger of:
  	 this: BINOP (X, OP, CST)
*************** svalue::can_merge_p (const svalue *other
*** 370,376 ****
  	&& binop_sval->get_arg1 ()->get_kind () == SK_CONSTANT
  	&& other->get_kind () != SK_WIDENING)
        return mgr->get_or_create_widening_svalue (other->get_type (),
! 						 merger->get_function_point (),
  						 other, this);
  
    /* Merge: (Widen(existing_val, V), existing_val) -> Widen (existing_val, V)
--- 362,368 ----
  	&& binop_sval->get_arg1 ()->get_kind () == SK_CONSTANT
  	&& other->get_kind () != SK_WIDENING)
        return mgr->get_or_create_widening_svalue (other->get_type (),
! 						 merger->get_supernode (),
  						 other, this);
  
    /* Merge: (Widen(existing_val, V), existing_val) -> Widen (existing_val, V)
*************** svalue::can_merge_p (const svalue *other
*** 427,433 ****
  
  /* Determine if this svalue is either within LIVE_SVALUES, or is implicitly
     live with respect to LIVE_SVALUES and MODEL.
!    LIVE_SVALUES can be NULL, in which case determine if this svalue is
     intrinsically live.  */
  
  bool
--- 419,425 ----
  
  /* Determine if this svalue is either within LIVE_SVALUES, or is implicitly
     live with respect to LIVE_SVALUES and MODEL.
!    LIVE_SVALUES can be nullptr, in which case determine if this svalue is
     intrinsically live.  */
  
  bool
*************** svalue::cmp_ptr (const svalue *sval1, co
*** 572,579 ****
        {
  	const poisoned_svalue *poisoned_sval1 = (const poisoned_svalue *)sval1;
  	const poisoned_svalue *poisoned_sval2 = (const poisoned_svalue *)sval2;
! 	return (poisoned_sval1->get_poison_kind ()
! 		- poisoned_sval2->get_poison_kind ());
        }
        break;
      case SK_SETJMP:
--- 564,571 ----
        {
  	const poisoned_svalue *poisoned_sval1 = (const poisoned_svalue *)sval1;
  	const poisoned_svalue *poisoned_sval2 = (const poisoned_svalue *)sval2;
! 	return (static_cast<int> (poisoned_sval1->get_poison_kind ())
! 		- static_cast<int> (poisoned_sval2->get_poison_kind ()));
        }
        break;
      case SK_SETJMP:
*************** svalue::cmp_ptr (const svalue *sval1, co
*** 672,680 ****
        {
  	const widening_svalue *widening_sval1 = (const widening_svalue *)sval1;
  	const widening_svalue *widening_sval2 = (const widening_svalue *)sval2;
! 	if (int point_cmp = function_point::cmp (widening_sval1->get_point (),
! 						 widening_sval2->get_point ()))
! 	  return point_cmp;
  	if (int base_cmp = svalue::cmp_ptr (widening_sval1->get_base_svalue (),
  					    widening_sval2->get_base_svalue ()))
  	  return base_cmp;
--- 664,672 ----
        {
  	const widening_svalue *widening_sval1 = (const widening_svalue *)sval1;
  	const widening_svalue *widening_sval2 = (const widening_svalue *)sval2;
! 	if (int index_cmp = (widening_sval1->get_snode ()->m_id
! 			     - widening_sval2->get_snode ()->m_id))
! 	  return index_cmp;
  	if (int base_cmp = svalue::cmp_ptr (widening_sval1->get_base_svalue (),
  					    widening_sval2->get_base_svalue ()))
  	  return base_cmp;
*************** svalue::maybe_fold_bits_within (tree,
*** 823,829 ****
  				region_model_manager *) const
  {
    /* By default, don't fold.  */
!   return NULL;
  }
  
  /* Base implementation of svalue::all_zeroes_p.
--- 815,821 ----
  				region_model_manager *) const
  {
    /* By default, don't fold.  */
!   return nullptr;
  }
  
  /* Base implementation of svalue::all_zeroes_p.
*************** svalue::all_zeroes_p () const
*** 836,842 ****
  }
  
  /* If this svalue is a pointer, attempt to determine the base region it points
!    to.  Return NULL on any problems.  */
  
  const region *
  svalue::maybe_get_deref_base_region () const
--- 828,834 ----
  }
  
  /* If this svalue is a pointer, attempt to determine the base region it points
!    to.  Return nullptr on any problems.  */
  
  const region *
  svalue::maybe_get_deref_base_region () const
*************** svalue::maybe_get_deref_base_region () c
*** 847,853 ****
        switch (iter->get_kind ())
  	{
  	default:
! 	  return NULL;
  
  	case SK_REGION:
  	  {
--- 839,845 ----
        switch (iter->get_kind ())
  	{
  	default:
! 	  return nullptr;
  
  	case SK_REGION:
  	  {
*************** svalue::maybe_get_deref_base_region () c
*** 869,882 ****
  		continue;
  
  	      default:
! 		return NULL;
  	      }
! 	    return NULL;
  	  }
  	}
      }
  }
  
  /* class region_svalue : public svalue.  */
  
  /* Implementation of svalue::dump_to_pp vfunc for region_svalue.  */
--- 861,915 ----
  		continue;
  
  	      default:
! 		return nullptr;
  	      }
! 	    return nullptr;
  	  }
  	}
      }
  }
  
+ /* If this svalue is a pointer to the typeinfo instance for a particular
+    type, return that type.  Otherwise return NULL_TREE.  */
+ 
+ tree
+ svalue::maybe_get_type_from_typeinfo () const
+ {
+   if (const region *reg = maybe_get_region ())
+     if (const decl_region *decl_reg = reg->dyn_cast_decl_region ())
+       return TREE_TYPE (DECL_NAME (decl_reg->get_decl ()));
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Return true if we can get a value_range for TYPE (which could be
+    NULL_TREE); false otherwise.  */
+ 
+ static bool
+ type_can_have_value_range_p (tree type)
+ {
+   if (!type)
+     return false;
+   if (!irange::supports_p (type))
+     return false;
+   return true;
+ }
+ 
+ /* Base implementation of svalue::maybe_get_value_range_1 vfunc.
+    If there is a suitable underlying type, write a "varying" for it to OUT
+    (for "any value of that type") and return true; otherwise return false.  */
+ 
+ bool
+ svalue::maybe_get_value_range_1 (value_range &out) const
+ {
+   tree type = get_type ();
+   if (!type_can_have_value_range_p (type))
+     return false;
+ 
+   out.set_varying (type);
+   return true;
+ }
+ 
  /* class region_svalue : public svalue.  */
  
  /* Implementation of svalue::dump_to_pp vfunc for region_svalue.  */
*************** constant_svalue::maybe_fold_bits_within
*** 1151,1157 ****
      }
  
    /* Otherwise, don't fold.  */
!   return NULL;
  }
  
  /* Implementation of svalue::all_zeroes_p for constant_svalue.  */
--- 1184,1190 ----
      }
  
    /* Otherwise, don't fold.  */
!   return nullptr;
  }
  
  /* Implementation of svalue::all_zeroes_p for constant_svalue.  */
*************** constant_svalue::all_zeroes_p () const
*** 1162,1167 ****
--- 1195,1216 ----
    return zerop (m_cst_expr);
  }
  
+ 
+ /* Implementation of svalue::maybe_get_value_range_1 for constant_svalue.
+    If there is a suitable underlying type, write the value_range for the
+    single value of m_cst_expr to OUT and return true; otherwise return
+    false.  */
+ 
+ bool
+ constant_svalue::maybe_get_value_range_1 (value_range &out) const
+ {
+   if (!type_can_have_value_range_p (get_type ()))
+     return false;
+ 
+   out = value_range (m_cst_expr, m_cst_expr);
+   return true;
+ }
+ 
  /* class unknown_svalue : public svalue.  */
  
  /* Implementation of svalue::dump_to_pp vfunc for unknown_svalue.  */
*************** unknown_svalue::maybe_fold_bits_within (
*** 1225,1230 ****
--- 1274,1287 ----
    return mgr->get_or_create_unknown_svalue (type);
  }
  
+ bool
+ unknown_svalue::maybe_get_value_range_1 (value_range &) const
+ {
+   /* Don't attempt to participate in range ops.  */
+   return false;
+ }
+ 
+ 
  /* Get a string for KIND for use in debug dumps.  */
  
  const char *
*************** poison_kind_to_str (enum poison_kind kin
*** 1234,1246 ****
      {
      default:
        gcc_unreachable ();
!     case POISON_KIND_UNINIT:
        return "uninit";
!     case POISON_KIND_FREED:
        return "freed";
!     case POISON_KIND_DELETED:
        return "deleted";
!     case POISON_KIND_POPPED_STACK:
        return "popped stack";
      }
  }
--- 1291,1303 ----
      {
      default:
        gcc_unreachable ();
!     case poison_kind::uninit:
        return "uninit";
!     case poison_kind::freed:
        return "freed";
!     case poison_kind::deleted:
        return "deleted";
!     case poison_kind::popped_stack:
        return "popped stack";
      }
  }
*************** initial_svalue::implicitly_live_p (const
*** 1378,1384 ****
       a popped stack frame.  */
    if (model->region_exists_p (m_reg))
      {
!       const svalue *reg_sval = model->get_store_value (m_reg, NULL);
        if (reg_sval == this)
  	return true;
      }
--- 1435,1441 ----
       a popped stack frame.  */
    if (model->region_exists_p (m_reg))
      {
!       const svalue *reg_sval = model->get_store_value (m_reg, nullptr);
        if (reg_sval == this)
  	return true;
      }
*************** initial_svalue::implicitly_live_p (const
*** 1388,1394 ****
       live in the external caller.  */
    if (initial_value_of_param_p ())
      if (const frame_region *frame_reg = m_reg->maybe_get_frame_region ())
!       if (frame_reg->get_calling_frame () == NULL)
  	return true;
  
    return false;
--- 1445,1451 ----
       live in the external caller.  */
    if (initial_value_of_param_p ())
      if (const frame_region *frame_reg = m_reg->maybe_get_frame_region ())
!       if (frame_reg->get_calling_frame () == nullptr)
  	return true;
  
    return false;
*************** unaryop_svalue::maybe_fold_bits_within (
*** 1512,1518 ****
        break;
      }
    /* Otherwise, don't fold.  */
!   return NULL;
  }
  
  /* class binop_svalue : public svalue.  */
--- 1569,1603 ----
        break;
      }
    /* Otherwise, don't fold.  */
!   return nullptr;
! }
! 
! /* Implementation of svalue::maybe_get_value_range_1 for unaryop_svalue.  */
! 
! bool
! unaryop_svalue::maybe_get_value_range_1 (value_range &out) const
! {
!   tree type = get_type ();
!   if (!type_can_have_value_range_p (type))
!     return false;
! 
!   value_range arg_vr;
!   if (m_arg->maybe_get_value_range (arg_vr))
!     {
!       range_op_handler handler (m_op);
!       if (handler
! 	  && handler.operand_check_p (type, arg_vr.type (), type))
! 	{
! 	  /* For unary ops, range_op_hander::fold_range expects
! 	     a VARYING of the unknown value as the 2nd operand.  */
! 	  value_range varying (type);
! 	  varying.set_varying (type);
! 	  out.set_type (type);
! 	  if (handler.fold_range (out, type, arg_vr, varying))
! 	    return true;
! 	}
!     }
!   return false;
  }
  
  /* class binop_svalue : public svalue.  */
*************** sub_svalue::sub_svalue (symbol::id_t id,
*** 1631,1636 ****
--- 1716,1753 ----
    gcc_assert (parent_svalue->can_have_associated_state_p ());
  }
  
+ /* Implementation of svalue::maybe_get_value_range_1 for binop_svalue.  */
+ 
+ bool
+ binop_svalue::maybe_get_value_range_1 (value_range &out) const
+ {
+   tree type = get_type ();
+   if (!type_can_have_value_range_p (type))
+     return false;
+ 
+   /* Avoid cases where we have been sloppy about types.  */
+   if (!m_arg0->get_type ())
+     return false;
+   if (!m_arg1->get_type ())
+     return false;
+   if (!range_compatible_p (m_arg0->get_type (), m_arg1->get_type ()))
+     return false;
+ 
+   value_range lhs, rhs;
+   if (m_arg0->maybe_get_value_range (lhs))
+     if (m_arg1->maybe_get_value_range (rhs))
+       {
+ 	range_op_handler handler (m_op);
+ 	if (handler)
+ 	  {
+ 	    out.set_type (type);
+ 	    if (handler.fold_range (out, get_type (), lhs, rhs))
+ 	      return true;
+ 	  }
+       }
+   return false;
+ }
+ 
  /* Implementation of svalue::dump_to_pp vfunc for sub_svalue.  */
  
  void
*************** repeated_svalue::maybe_fold_bits_within
*** 1841,1847 ****
  	}
      }
  
!   return NULL;
  }
  
  /* class bits_within_svalue : public svalue.  */
--- 1958,1964 ----
  	}
      }
  
!   return nullptr;
  }
  
  /* class bits_within_svalue : public svalue.  */
*************** widening_svalue::dump_to_pp (pretty_prin
*** 1960,1966 ****
      {
        pp_string (pp, "WIDENING(");
        pp_character (pp, '{');
!       m_point.print (pp, format (false));
        pp_string (pp, "}, ");
        m_base_sval->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
--- 2077,2083 ----
      {
        pp_string (pp, "WIDENING(");
        pp_character (pp, '{');
!       m_snode->print (pp);
        pp_string (pp, "}, ");
        m_base_sval->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
*************** widening_svalue::dump_to_pp (pretty_prin
*** 1972,1978 ****
        pp_string (pp, "widening_svalue (");
        pp_string (pp, ", ");
        pp_character (pp, '{');
!       m_point.print (pp, format (false));
        pp_string (pp, "}, ");
        m_base_sval->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
--- 2089,2095 ----
        pp_string (pp, "widening_svalue (");
        pp_string (pp, ", ");
        pp_character (pp, '{');
!       m_snode->print (pp);
        pp_string (pp, "}, ");
        m_base_sval->dump_to_pp (pp, simple);
        pp_string (pp, ", ");
*************** void
*** 1988,1994 ****
  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
--- 2105,2111 ----
  widening_svalue::print_dump_widget_label (pretty_printer *pp) const
  {
    pp_printf (pp, "widening_svalue at ");
!   m_snode->print (pp);
  }
  
  /* Implementation of svalue::add_dump_widget_children vfunc for
*************** compound_svalue::compound_svalue (symbol
*** 2236,2250 ****
  : svalue (calc_complexity (map), id, type), m_map (map)
  {
  #if CHECKING_P
!   for (iterator_t iter = begin (); iter != end (); ++iter)
      {
        /* All keys within the underlying binding_map are required to be concrete,
  	 not symbolic.  */
!       const binding_key *key = (*iter).first;
        gcc_assert (key->concrete_p ());
  
        /* We don't nest compound svalues.  */
!       const svalue *sval = (*iter).second;
        gcc_assert (sval->get_kind () != SK_COMPOUND);
      }
  #endif
--- 2353,2367 ----
  : svalue (calc_complexity (map), id, type), m_map (map)
  {
  #if CHECKING_P
!   for (auto iter : *this)
      {
        /* All keys within the underlying binding_map are required to be concrete,
  	 not symbolic.  */
!       const binding_key *key = iter.m_key;
        gcc_assert (key->concrete_p ());
  
        /* We don't nest compound svalues.  */
!       const svalue *sval = iter.m_sval;
        gcc_assert (sval->get_kind () != SK_COMPOUND);
      }
  #endif
*************** add_dump_widget_children (text_art::tree
*** 2306,2316 ****
  void
  compound_svalue::accept (visitor *v) const
  {
!   for (binding_map::iterator_t iter = m_map.begin ();
!        iter != m_map.end (); ++iter)
      {
!       //(*iter).first.accept (v);
!       (*iter).second->accept (v);
      }
    v->visit_compound_svalue (this);
  }
--- 2423,2432 ----
  void
  compound_svalue::accept (visitor *v) const
  {
!   for (auto iter : m_map)
      {
!       //iter.first.accept (v);
!       iter.m_sval->accept (v);
      }
    v->visit_compound_svalue (this);
  }
*************** compound_svalue::calc_complexity (const
*** 2323,2332 ****
  {
    unsigned num_child_nodes = 0;
    unsigned max_child_depth = 0;
!   for (binding_map::iterator_t iter = map.begin ();
!        iter != map.end (); ++iter)
      {
!       const complexity &sval_c = (*iter).second->get_complexity ();
        num_child_nodes += sval_c.m_num_nodes;
        max_child_depth = MAX (max_child_depth, sval_c.m_max_depth);
      }
--- 2439,2447 ----
  {
    unsigned num_child_nodes = 0;
    unsigned max_child_depth = 0;
!   for (auto iter : map)
      {
!       const complexity &sval_c = iter.m_sval->get_complexity ();
        num_child_nodes += sval_c.m_num_nodes;
        max_child_depth = MAX (max_child_depth, sval_c.m_max_depth);
      }
*************** compound_svalue::maybe_fold_bits_within
*** 2341,2350 ****
  					 const bit_range &bits,
  					 region_model_manager *mgr) const
  {
!   binding_map result_map;
    for (auto iter : m_map)
      {
!       const binding_key *key = iter.first;
        if (const concrete_binding *conc_key
  	  = key->dyn_cast_concrete_binding ())
  	{
--- 2456,2465 ----
  					 const bit_range &bits,
  					 region_model_manager *mgr) const
  {
!   binding_map result_map (*mgr->get_store_manager ());
    for (auto iter : m_map)
      {
!       const binding_key *key = iter.m_key;
        if (const concrete_binding *conc_key
  	  = key->dyn_cast_concrete_binding ())
  	{
*************** compound_svalue::maybe_fold_bits_within
*** 2352,2358 ****
  	  if (!conc_key->get_bit_range ().intersects_p (bits))
  	    continue;
  
! 	  const svalue *sval = iter.second;
  	  /* Get the position of conc_key relative to BITS.  */
  	  bit_range result_location (conc_key->get_start_bit_offset ()
  				     - bits.get_start_bit_offset (),
--- 2467,2473 ----
  	  if (!conc_key->get_bit_range ().intersects_p (bits))
  	    continue;
  
! 	  const svalue *sval = iter.m_sval;
  	  /* Get the position of conc_key relative to BITS.  */
  	  bit_range result_location (conc_key->get_start_bit_offset ()
  				     - bits.get_start_bit_offset (),
*************** compound_svalue::maybe_fold_bits_within
*** 2397,2403 ****
  	}
        else
  	/* If we have any symbolic keys we can't get it as bits.  */
! 	return NULL;
      }
    return mgr->get_or_create_compound_svalue (type, result_map);
  }
--- 2512,2518 ----
  	}
        else
  	/* If we have any symbolic keys we can't get it as bits.  */
! 	return nullptr;
      }
    return mgr->get_or_create_compound_svalue (type, result_map);
  }
diff -Nrcpad gcc-15.2.0/gcc/analyzer/svalue.h gcc-16.1.0-RC-20260423/gcc/analyzer/svalue.h
*** gcc-15.2.0/gcc/analyzer/svalue.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/svalue.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Symbolic values.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** public:
*** 112,148 ****
  		    const char *prefix = nullptr) const;
  
    virtual const region_svalue *
!   dyn_cast_region_svalue () const { return NULL; }
    virtual const constant_svalue *
!   dyn_cast_constant_svalue () const { return NULL; }
    virtual const poisoned_svalue *
!   dyn_cast_poisoned_svalue () const { return NULL; }
    virtual const setjmp_svalue *
!   dyn_cast_setjmp_svalue () const { return NULL; }
    virtual const initial_svalue *
!   dyn_cast_initial_svalue () const { return NULL; }
    virtual const unaryop_svalue *
!   dyn_cast_unaryop_svalue () const { return NULL; }
    virtual const binop_svalue *
!   dyn_cast_binop_svalue () const { return NULL; }
    virtual const sub_svalue *
!   dyn_cast_sub_svalue () const { return NULL; }
    virtual const repeated_svalue *
!   dyn_cast_repeated_svalue () const { return NULL; }
    virtual const bits_within_svalue *
!   dyn_cast_bits_within_svalue () const { return NULL; }
    virtual const unmergeable_svalue *
!   dyn_cast_unmergeable_svalue () const { return NULL; }
    virtual const widening_svalue *
!   dyn_cast_widening_svalue () const { return NULL; }
    virtual const compound_svalue *
!   dyn_cast_compound_svalue () const { return NULL; }
    virtual const conjured_svalue *
!   dyn_cast_conjured_svalue () const { return NULL; }
    virtual const asm_output_svalue *
!   dyn_cast_asm_output_svalue () const { return NULL; }
    virtual const const_fn_result_svalue *
!   dyn_cast_const_fn_result_svalue () const { return NULL; }
  
    tree maybe_get_constant () const;
    const region *maybe_get_region () const;
--- 112,148 ----
  		    const char *prefix = nullptr) const;
  
    virtual const region_svalue *
!   dyn_cast_region_svalue () const { return nullptr; }
    virtual const constant_svalue *
!   dyn_cast_constant_svalue () const { return nullptr; }
    virtual const poisoned_svalue *
!   dyn_cast_poisoned_svalue () const { return nullptr; }
    virtual const setjmp_svalue *
!   dyn_cast_setjmp_svalue () const { return nullptr; }
    virtual const initial_svalue *
!   dyn_cast_initial_svalue () const { return nullptr; }
    virtual const unaryop_svalue *
!   dyn_cast_unaryop_svalue () const { return nullptr; }
    virtual const binop_svalue *
!   dyn_cast_binop_svalue () const { return nullptr; }
    virtual const sub_svalue *
!   dyn_cast_sub_svalue () const { return nullptr; }
    virtual const repeated_svalue *
!   dyn_cast_repeated_svalue () const { return nullptr; }
    virtual const bits_within_svalue *
!   dyn_cast_bits_within_svalue () const { return nullptr; }
    virtual const unmergeable_svalue *
!   dyn_cast_unmergeable_svalue () const { return nullptr; }
    virtual const widening_svalue *
!   dyn_cast_widening_svalue () const { return nullptr; }
    virtual const compound_svalue *
!   dyn_cast_compound_svalue () const { return nullptr; }
    virtual const conjured_svalue *
!   dyn_cast_conjured_svalue () const { return nullptr; }
    virtual const asm_output_svalue *
!   dyn_cast_asm_output_svalue () const { return nullptr; }
    virtual const const_fn_result_svalue *
!   dyn_cast_const_fn_result_svalue () const { return nullptr; }
  
    tree maybe_get_constant () const;
    const region *maybe_get_region () const;
*************** public:
*** 188,193 ****
--- 188,208 ----
  			     const region_model &model,
  			     const svalue *outer_sval = nullptr) const;
  
+   tree maybe_get_type_from_typeinfo () const;
+ 
+   /* If we can get a value_range for this svalue, write it to OUT
+      and return true.  Otherwise return false.  */
+   bool
+   maybe_get_value_range (value_range &out) const
+   {
+     if (maybe_get_value_range_1 (out))
+       {
+ 	gcc_assert (!out.undefined_p ());
+ 	return true;
+       }
+     return false;
+   }
+ 
   protected:
    svalue (complexity c, symbol::id_t id, tree type)
    : symbol (c, id), m_type (type)
*************** public:
*** 201,206 ****
--- 216,223 ----
    virtual void
    add_dump_widget_children (text_art::tree_widget &,
  			    const dump_widget_info &dwi) const = 0;
+   virtual bool
+   maybe_get_value_range_1 (value_range &out) const;
  
    tree m_type;
  };
*************** public:
*** 244,250 ****
    : svalue (complexity (reg), id, type),
      m_reg (reg)
    {
!     gcc_assert (m_reg != NULL);
    }
  
    enum svalue_kind get_kind () const final override { return SK_REGION; }
--- 261,267 ----
    : svalue (complexity (reg), id, type),
      m_reg (reg)
    {
!     gcc_assert (m_reg != nullptr);
    }
  
    enum svalue_kind get_kind () const final override { return SK_REGION; }
*************** public:
*** 364,369 ****
--- 381,388 ----
  
    bool all_zeroes_p () const final override;
  
+   bool maybe_get_value_range_1 (value_range &out) const final override;
+ 
   private:
    tree m_cst_expr;
  };
*************** public:
*** 415,439 ****
  			  const bit_range &subrange,
  			  region_model_manager *mgr) const final override;
  
    /* Unknown values are singletons per-type, so can't have state.  */
    bool can_have_associated_state_p () const final override { return false; }
  };
  
  /* An enum describing a particular kind of "poisoned" value.  */
  
! enum poison_kind
  {
    /* For use to describe uninitialized memory.  */
!   POISON_KIND_UNINIT,
  
    /* For use to describe freed memory.  */
!   POISON_KIND_FREED,
  
    /* For use to describe deleted memory.  */
!   POISON_KIND_DELETED,
  
    /* For use on pointers to regions within popped stack frames.  */
!   POISON_KIND_POPPED_STACK
  };
  
  extern const char *poison_kind_to_str (enum poison_kind);
--- 434,460 ----
  			  const bit_range &subrange,
  			  region_model_manager *mgr) const final override;
  
+   bool maybe_get_value_range_1 (value_range &out) const final override;
+ 
    /* Unknown values are singletons per-type, so can't have state.  */
    bool can_have_associated_state_p () const final override { return false; }
  };
  
  /* An enum describing a particular kind of "poisoned" value.  */
  
! enum class poison_kind
  {
    /* For use to describe uninitialized memory.  */
!   uninit,
  
    /* For use to describe freed memory.  */
!   freed,
  
    /* For use to describe deleted memory.  */
!   deleted,
  
    /* For use on pointers to regions within popped stack frames.  */
!   popped_stack
  };
  
  extern const char *poison_kind_to_str (enum poison_kind);
*************** public:
*** 454,460 ****
      hashval_t hash () const
      {
        inchash::hash hstate;
!       hstate.add_int (m_kind);
        hstate.add_ptr (m_type);
        return hstate.end ();
      }
--- 475,481 ----
      hashval_t hash () const
      {
        inchash::hash hstate;
!       hstate.add_int (static_cast<int> (m_kind));
        hstate.add_ptr (m_type);
        return hstate.end ();
      }
*************** namespace ana {
*** 528,554 ****
  struct setjmp_record
  {
    setjmp_record (const exploded_node *enode,
! 		 const gcall *setjmp_call)
!   : m_enode (enode), m_setjmp_call (setjmp_call)
    {
    }
  
    bool operator== (const setjmp_record &other) const
    {
      return (m_enode == other.m_enode
  	    && m_setjmp_call == other.m_setjmp_call);
    }
  
    void add_to_hash (inchash::hash *hstate) const
    {
      hstate->add_ptr (m_enode);
      hstate->add_ptr (m_setjmp_call);
    }
  
    static int cmp (const setjmp_record &rec1, const setjmp_record &rec2);
  
    const exploded_node *m_enode;
    const gcall *m_setjmp_call;
  };
  
  /* Concrete subclass of svalue representing buffers for setjmp/sigsetjmp,
--- 549,580 ----
  struct setjmp_record
  {
    setjmp_record (const exploded_node *enode,
! 		 const superedge *sedge,
! 		 const gcall &setjmp_call)
!   : m_enode (enode), m_sedge (sedge), m_setjmp_call (&setjmp_call)
    {
    }
  
    bool operator== (const setjmp_record &other) const
    {
      return (m_enode == other.m_enode
+ 	    && m_sedge == other.m_sedge
  	    && m_setjmp_call == other.m_setjmp_call);
    }
  
    void add_to_hash (inchash::hash *hstate) const
    {
      hstate->add_ptr (m_enode);
+     hstate->add_ptr (m_sedge);
      hstate->add_ptr (m_setjmp_call);
    }
  
    static int cmp (const setjmp_record &rec1, const setjmp_record &rec2);
  
    const exploded_node *m_enode;
+   const superedge *m_sedge;
    const gcall *m_setjmp_call;
+   // non-null, but we can't use a reference since we're putting these in a hash_map
  };
  
  /* Concrete subclass of svalue representing buffers for setjmp/sigsetjmp,
*************** public:
*** 647,653 ****
    initial_svalue (symbol::id_t id, tree type, const region *reg)
    : svalue (complexity (reg), id, type), m_reg (reg)
    {
!     gcc_assert (m_reg != NULL);
    }
  
    enum svalue_kind get_kind () const final override { return SK_INITIAL; }
--- 673,679 ----
    initial_svalue (symbol::id_t id, tree type, const region *reg)
    : svalue (complexity (reg), id, type), m_reg (reg)
    {
!     gcc_assert (m_reg != nullptr);
    }
  
    enum svalue_kind get_kind () const final override { return SK_INITIAL; }
*************** public:
*** 756,761 ****
--- 782,789 ----
  			  const bit_range &subrange,
  			  region_model_manager *mgr) const final override;
  
+   bool maybe_get_value_range_1 (value_range &out) const final override;
+ 
   private:
    enum tree_code m_op;
    const svalue *m_arg;
*************** public:
*** 852,857 ****
--- 880,887 ----
    bool implicitly_live_p (const svalue_set *,
  			  const region_model *) const final override;
  
+   bool maybe_get_value_range_1 (value_range &out) const final override;
+ 
    enum tree_code get_op () const { return m_op; }
    const svalue *get_arg0 () const { return m_arg0; }
    const svalue *get_arg1 () const { return m_arg1; }
*************** public:
*** 1269,1277 ****
    /* A support class for uniquifying instances of widening_svalue.  */
    struct key_t
    {
!     key_t (tree type, const function_point &point,
  	   const svalue *base_sval, const svalue *iter_sval)
!     : m_type (type), m_point (point),
        m_base_sval (base_sval), m_iter_sval (iter_sval)
      {}
  
--- 1299,1307 ----
    /* A support class for uniquifying instances of widening_svalue.  */
    struct key_t
    {
!     key_t (tree type, const supernode *snode,
  	   const svalue *base_sval, const svalue *iter_sval)
!     : m_type (type), m_snode (snode),
        m_base_sval (base_sval), m_iter_sval (iter_sval)
      {}
  
*************** public:
*** 1286,1292 ****
      bool operator== (const key_t &other) const
      {
        return (m_type == other.m_type
! 	      && m_point == other.m_point
  	      && m_base_sval == other.m_base_sval
  	      && m_iter_sval == other.m_iter_sval);
      }
--- 1316,1322 ----
      bool operator== (const key_t &other) const
      {
        return (m_type == other.m_type
! 	      && m_snode == other.m_snode
  	      && m_base_sval == other.m_base_sval
  	      && m_iter_sval == other.m_iter_sval);
      }
*************** public:
*** 1297,1303 ****
      bool is_empty () const { return m_type == reinterpret_cast<tree> (2); }
  
      tree m_type;
!     function_point m_point;
      const svalue *m_base_sval;
      const svalue *m_iter_sval;
    };
--- 1327,1333 ----
      bool is_empty () const { return m_type == reinterpret_cast<tree> (2); }
  
      tree m_type;
!     const supernode *m_snode;
      const svalue *m_base_sval;
      const svalue *m_iter_sval;
    };
*************** public:
*** 1309,1321 ****
       DIR_UNKNOWN
      };
  
!   widening_svalue (symbol::id_t id, tree type, const function_point &point,
  		   const svalue *base_sval, const svalue *iter_sval)
    : svalue (complexity::from_pair (base_sval->get_complexity (),
  				   iter_sval->get_complexity ()),
  	    id,
  	    type),
!     m_point (point),
      m_base_sval (base_sval), m_iter_sval (iter_sval)
    {
      gcc_assert (base_sval->can_have_associated_state_p ());
--- 1339,1351 ----
       DIR_UNKNOWN
      };
  
!   widening_svalue (symbol::id_t id, tree type, const supernode *snode,
  		   const svalue *base_sval, const svalue *iter_sval)
    : svalue (complexity::from_pair (base_sval->get_complexity (),
  				   iter_sval->get_complexity ()),
  	    id,
  	    type),
!     m_snode (snode),
      m_base_sval (base_sval), m_iter_sval (iter_sval)
    {
      gcc_assert (base_sval->can_have_associated_state_p ());
*************** public:
*** 1338,1344 ****
  
    void accept (visitor *v) const final override;
  
!   const function_point &get_point () const { return m_point; }
    const svalue *get_base_svalue () const { return m_base_sval; }
    const svalue *get_iter_svalue () const { return m_iter_sval; }
  
--- 1368,1374 ----
  
    void accept (visitor *v) const final override;
  
!   const supernode *get_snode () const { return m_snode; }
    const svalue *get_base_svalue () const { return m_base_sval; }
    const svalue *get_iter_svalue () const { return m_iter_sval; }
  
*************** public:
*** 1348,1354 ****
  				      tree rhs_cst) const;
  
   private:
!   function_point m_point;
    const svalue *m_base_sval;
    const svalue *m_iter_sval;
  };
--- 1378,1384 ----
  				      tree rhs_cst) const;
  
   private:
!   const supernode *m_snode;
    const svalue *m_base_sval;
    const svalue *m_iter_sval;
  };
*************** namespace ana {
*** 1388,1393 ****
--- 1418,1424 ----
  class compound_svalue : public svalue
  {
  public:
+   typedef binding_map::const_iterator_t const_iterator_t;
    typedef binding_map::iterator_t iterator_t;
  
    /* A support class for uniquifying instances of compound_svalue.
*************** public:
*** 1442,1449 ****
  
    const binding_map &get_map () const { return m_map; }
  
!   iterator_t begin () const { return m_map.begin (); }
!   iterator_t end () const { return m_map.end (); }
  
    struct key_t make_key () const
    {
--- 1473,1482 ----
  
    const binding_map &get_map () const { return m_map; }
  
!   const_iterator_t begin () const { return m_map.begin (); }
!   const_iterator_t end () const { return m_map.end (); }
!   iterator_t begin () { return m_map.begin (); }
!   iterator_t end () { return m_map.end (); }
  
    struct key_t make_key () const
    {
*************** public:
*** 1544,1558 ****
  	      && m_idx == other.m_idx);
      }
  
!     /* Use m_stmt to mark empty/deleted, as m_type can be NULL for
         legitimate instances.  */
      void mark_deleted () { m_stmt = reinterpret_cast<const gimple *> (1); }
!     void mark_empty () { m_stmt = NULL; }
      bool is_deleted () const
      {
        return m_stmt == reinterpret_cast<const gimple *> (1);
      }
!     bool is_empty () const { return m_stmt == NULL; }
  
      tree m_type;
      const gimple *m_stmt;
--- 1577,1591 ----
  	      && m_idx == other.m_idx);
      }
  
!     /* Use m_stmt to mark empty/deleted, as m_type can be NULL_TREE for
         legitimate instances.  */
      void mark_deleted () { m_stmt = reinterpret_cast<const gimple *> (1); }
!     void mark_empty () { m_stmt = nullptr; }
      bool is_deleted () const
      {
        return m_stmt == reinterpret_cast<const gimple *> (1);
      }
!     bool is_empty () const { return m_stmt == nullptr; }
  
      tree m_type;
      const gimple *m_stmt;
*************** public:
*** 1565,1571 ****
    : svalue (complexity (id_reg), id, type),
      m_stmt (stmt), m_id_reg (id_reg), m_idx (idx)
    {
!     gcc_assert (m_stmt != NULL);
    }
  
    enum svalue_kind get_kind () const final override { return SK_CONJURED; }
--- 1598,1604 ----
    : svalue (complexity (id_reg), id, type),
      m_stmt (stmt), m_id_reg (id_reg), m_idx (idx)
    {
!     gcc_assert (m_stmt != nullptr);
    }
  
    enum svalue_kind get_kind () const final override { return SK_CONJURED; }
*************** public:
*** 1665,1679 ****
        return true;
      }
  
!     /* Use m_asm_string to mark empty/deleted, as m_type can be NULL for
         legitimate instances.  */
      void mark_deleted () { m_asm_string = reinterpret_cast<const char *> (1); }
!     void mark_empty () { m_asm_string = NULL; }
      bool is_deleted () const
      {
        return m_asm_string == reinterpret_cast<const char *> (1);
      }
!     bool is_empty () const { return m_asm_string == NULL; }
  
      tree m_type;
      const char *m_asm_string;
--- 1698,1712 ----
        return true;
      }
  
!     /* Use m_asm_string to mark empty/deleted, as m_type can be NULL_TREE for
         legitimate instances.  */
      void mark_deleted () { m_asm_string = reinterpret_cast<const char *> (1); }
!     void mark_empty () { m_asm_string = nullptr; }
      bool is_deleted () const
      {
        return m_asm_string == reinterpret_cast<const char *> (1);
      }
!     bool is_empty () const { return m_asm_string == nullptr; }
  
      tree m_type;
      const char *m_asm_string;
*************** public:
*** 1810,1821 ****
  
      /* Use m_fndecl to mark empty/deleted.  */
      void mark_deleted () { m_fndecl = reinterpret_cast<tree> (1); }
!     void mark_empty () { m_fndecl = NULL; }
      bool is_deleted () const
      {
        return m_fndecl == reinterpret_cast<tree> (1);
      }
!     bool is_empty () const { return m_fndecl == NULL; }
  
      tree m_type;
      tree m_fndecl;
--- 1843,1854 ----
  
      /* Use m_fndecl to mark empty/deleted.  */
      void mark_deleted () { m_fndecl = reinterpret_cast<tree> (1); }
!     void mark_empty () { m_fndecl = NULL_TREE; }
      bool is_deleted () const
      {
        return m_fndecl == reinterpret_cast<tree> (1);
      }
!     bool is_empty () const { return m_fndecl == NULL_TREE; }
  
      tree m_type;
      tree m_fndecl;
diff -Nrcpad gcc-15.2.0/gcc/analyzer/symbol.cc gcc-16.1.0-RC-20260423/gcc/analyzer/symbol.cc
*** gcc-15.2.0/gcc/analyzer/symbol.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/symbol.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,28 ****
  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 "tree.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/symbol.h"
  
  #if ENABLE_ANALYZER
--- 18,25 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "analyzer/symbol.h"
  
  #if ENABLE_ANALYZER
diff -Nrcpad gcc-15.2.0/gcc/analyzer/symbol.h gcc-16.1.0-RC-20260423/gcc/analyzer/symbol.h
*** gcc-15.2.0/gcc/analyzer/symbol.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/symbol.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Base class for svalues and regions.
!    Copyright (C) 2023-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/trimmed-graph.cc gcc-16.1.0-RC-20260423/gcc/analyzer/trimmed-graph.cc
*** gcc-15.2.0/gcc/analyzer/trimmed-graph.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/trimmed-graph.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,38 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "tree.h"
! #include "pretty-print.h"
! #include "gcc-rich-location.h"
! #include "gimple-pretty-print.h"
! #include "function.h"
! #include "diagnostic-core.h"
! #include "diagnostic-event-id.h"
! #include "diagnostic-path.h"
! #include "bitmap.h"
! #include "ordered-hash-map.h"
! #include "analyzer/analyzer.h"
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 18,25 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
diff -Nrcpad gcc-15.2.0/gcc/analyzer/trimmed-graph.h gcc-16.1.0-RC-20260423/gcc/analyzer/trimmed-graph.h
*** gcc-15.2.0/gcc/analyzer/trimmed-graph.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/trimmed-graph.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Trimming an exploded graph to a subset of nodes and edges.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/analyzer/varargs.cc gcc-16.1.0-RC-20260423/gcc/analyzer/varargs.cc
*** gcc-15.2.0/gcc/analyzer/varargs.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/varargs.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Implementation of <stdarg.h> within analyzer.
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,35 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "config.h"
! #define INCLUDE_VECTOR
! #include "system.h"
! #include "coretypes.h"
! #include "make-unique.h"
! #include "tree.h"
! #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"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
--- 18,25 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! #include "analyzer/common.h"
! 
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
  #include "analyzer/pending-diagnostic.h"
*************** get_va_list_diag_arg (tree va_list_tree)
*** 167,176 ****
  static const svalue *
  get_va_copy_arg (const region_model *model,
  		 region_model_context *ctxt,
! 		 const gcall *call,
  		 unsigned arg_idx)
  {
!   tree arg = gimple_call_arg (call, arg_idx);
    const svalue *arg_sval = model->get_rvalue (arg, ctxt);
    if (const svalue *cast = arg_sval->maybe_undo_cast ())
      arg_sval = cast;
--- 157,166 ----
  static const svalue *
  get_va_copy_arg (const region_model *model,
  		 region_model_context *ctxt,
! 		 const gcall &call,
  		 unsigned arg_idx)
  {
!   tree arg = gimple_call_arg (&call, arg_idx);
    const svalue *arg_sval = model->get_rvalue (arg, ctxt);
    if (const svalue *cast = arg_sval->maybe_undo_cast ())
      arg_sval = cast;
*************** public:
*** 208,221 ****
    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;
  
    bool can_purge_p (state_t s) const final override
    {
      return s != m_started;
    }
!   std::unique_ptr<pending_diagnostic> on_leak (tree var) const final override;
  
    /* State for a va_list that is the result of a va_start or va_copy.  */
    state_t m_started;
--- 198,214 ----
    bool inherited_state_p () const final override { return false; }
  
    bool on_stmt (sm_context &sm_ctxt,
  		const gimple *stmt) const final override;
  
    bool can_purge_p (state_t s) const final override
    {
      return s != m_started;
    }
! 
!   std::unique_ptr<pending_diagnostic>
!   on_leak (tree var,
! 	   const program_state *old_state,
! 	   const program_state *new_state) const final override;
  
    /* State for a va_list that is the result of a va_start or va_copy.  */
    state_t m_started;
*************** public:
*** 224,240 ****
    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,
  				const char *usage_fnname) const;
  };
--- 217,227 ----
    state_t m_ended;
  
  private:
!   void on_va_start (sm_context &sm_ctxt, const gcall &call) const;
!   void on_va_copy (sm_context &sm_ctxt, const gcall &call) const;
!   void on_va_arg (sm_context &sm_ctxt, const gcall &call) const;
!   void on_va_end (sm_context &sm_ctxt, const gcall &call) const;
    void check_for_ended_va_list (sm_context &sm_ctxt,
  				const svalue *arg,
  				const char *usage_fnname) const;
  };
*************** va_list_state_machine::va_list_state_mac
*** 253,288 ****
  
  bool
  va_list_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 (gimple_call_internal_p (call)
! 	  && gimple_call_internal_fn (call) == IFN_VA_ARG)
  	{
! 	  on_va_arg (sm_ctxt, node, call);
  	  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))
  	    {
  	    default:
  	      break;
  
  	    case BUILT_IN_VA_START:
! 	      on_va_start (sm_ctxt, node, call);
  	      break;
  
  	    case BUILT_IN_VA_COPY:
! 	      on_va_copy (sm_ctxt, node, call);
  	      break;
  
  	    case BUILT_IN_VA_END:
! 	      on_va_end (sm_ctxt, node, call);
  	      break;
  	    }
      }
--- 240,276 ----
  
  bool
  va_list_state_machine::on_stmt (sm_context &sm_ctxt,
  				const gimple *stmt) const
  {
!   if (const gcall *call_stmt = dyn_cast <const gcall *> (stmt))
      {
!       const gcall &call = *call_stmt;
! 
!       if (gimple_call_internal_p (call_stmt)
! 	  && gimple_call_internal_fn (call_stmt) == IFN_VA_ARG)
  	{
! 	  on_va_arg (sm_ctxt, call);
  	  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))
  	    {
  	    default:
  	      break;
  
  	    case BUILT_IN_VA_START:
! 	      on_va_start (sm_ctxt, call);
  	      break;
  
  	    case BUILT_IN_VA_COPY:
! 	      on_va_copy (sm_ctxt, call);
  	      break;
  
  	    case BUILT_IN_VA_END:
! 	      on_va_end (sm_ctxt, call);
  	      break;
  	    }
      }
*************** va_list_state_machine::on_stmt (sm_conte
*** 293,316 ****
     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);
! 	  const region *reg = new_model->deref_rvalue (ptr_sval, ap, NULL);
! 	  const svalue *impl_sval = new_model->get_store_value (reg, NULL);
  	  if (const svalue *cast = impl_sval->maybe_undo_cast ())
  	    impl_sval = cast;
  	  return impl_sval;
  	}
      }
!   return NULL;
  }
  
  /* Abstract class for diagnostics relating to va_list_state_machine.  */
--- 281,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, nullptr);
! 	  const region *reg = new_model->deref_rvalue (ptr_sval, ap, nullptr);
! 	  const svalue *impl_sval = new_model->get_store_value (reg, nullptr);
  	  if (const svalue *cast = impl_sval->maybe_undo_cast ())
  	    impl_sval = cast;
  	  return impl_sval;
  	}
      }
!   return nullptr;
  }
  
  /* Abstract class for diagnostics relating to va_list_state_machine.  */
*************** public:
*** 338,354 ****
      return false;
    }
  
!   diagnostic_event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_new_state == m_sm.m_started)
!       return diagnostic_event::meaning (diagnostic_event::VERB_acquire,
! 					diagnostic_event::NOUN_resource);
      if (change.m_new_state == m_sm.m_ended)
!       return diagnostic_event::meaning (diagnostic_event::VERB_release,
! 					diagnostic_event::NOUN_resource);
!     return diagnostic_event::meaning ();
    }
  
  protected:
--- 326,342 ----
      return false;
    }
  
!   diagnostics::paths::event::meaning
    get_meaning_for_state_change (const evdesc::state_change &change)
      const final override
    {
      if (change.m_new_state == m_sm.m_started)
!       return diagnostics::paths::event::meaning (diagnostics::paths::event::verb::acquire,
! 					diagnostics::paths::event::noun::resource);
      if (change.m_new_state == m_sm.m_ended)
!       return diagnostics::paths::event::meaning (diagnostics::paths::event::verb::release,
! 					diagnostics::paths::event::noun::resource);
!     return diagnostics::paths::event::meaning ();
    }
  
  protected:
*************** protected:
*** 374,380 ****
  		  return "va_end";
  		}
  	  }
!     return NULL;
    }
  
    const va_list_state_machine &m_sm;
--- 362,368 ----
  		  return "va_end";
  		}
  	  }
!     return nullptr;
    }
  
    const va_list_state_machine &m_sm;
*************** public:
*** 456,462 ****
    }
  
  private:
!   diagnostic_event_id_t m_va_end_event;
    const char *m_usage_fnname;
  };
  
--- 444,450 ----
    }
  
  private:
!   diagnostics::paths::event_id_t m_va_end_event;
    const char *m_usage_fnname;
  };
  
*************** class va_list_leak : public va_list_sm_d
*** 468,477 ****
  {
  public:
    va_list_leak (const va_list_state_machine &sm,
! 		const svalue *ap_sval, tree ap_tree)
    : va_list_sm_diagnostic (sm, ap_sval, ap_tree),
!     m_start_event_fnname (NULL)
    {
    }
  
    int get_controlling_option () const final override
--- 456,469 ----
  {
  public:
    va_list_leak (const va_list_state_machine &sm,
! 		const svalue *ap_sval, tree ap_tree,
! 		const program_state *final_state)
    : va_list_sm_diagnostic (sm, ap_sval, ap_tree),
!     m_start_event_fnname (nullptr),
!     m_final_state ()
    {
+     if (final_state)
+       m_final_state = std::make_unique<program_state> (*final_state);
    }
  
    int get_controlling_option () const final override
*************** public:
*** 532,555 ****
      return true;
    }
  
  private:
!   diagnostic_event_id_t m_start_event;
    const char *m_start_event_fnname;
  };
  
  /* 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
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    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);
      }
  }
  
--- 524,553 ----
      return true;
    }
  
+   const program_state *
+   get_final_state () const final override
+   {
+     return m_final_state.get ();
+   }
+ 
  private:
!   diagnostics::paths::event_id_t m_start_event;
    const char *m_start_event_fnname;
+   std::unique_ptr<program_state> m_final_state;
  };
  
  /* Update state machine for a "va_start" call.  */
  
  void
  va_list_state_machine::on_va_start (sm_context &sm_ctxt,
! 				    const gcall &call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt.get_state (arg) == m_start)
! 	sm_ctxt.set_next_state (arg, m_started);
      }
  }
  
*************** va_list_state_machine::on_va_start (sm_c
*** 557,608 ****
  
  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
     ARG_IDX of CALL to va_copy, if SM_CTXT supports this,
!    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);
        return arg;
      }
!   return NULL;
  }
  
  /* 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
  {
    const svalue *src_arg = get_stateful_va_copy_arg (sm_ctxt, call, 1);
    if (src_arg)
!     check_for_ended_va_list (sm_ctxt, node, call, src_arg, "va_copy");
  
    const svalue *dst_arg = get_stateful_arg (sm_ctxt, call, 0);
    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);
      }
  }
  
--- 555,603 ----
  
  void
  va_list_state_machine::check_for_ended_va_list (sm_context &sm_ctxt,
  						const svalue *arg,
  						const char *usage_fnname) const
  {
!   if (sm_ctxt.get_state (arg) == m_ended)
!     sm_ctxt.warn (arg,
! 		  std::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
     ARG_IDX of CALL to va_copy, if SM_CTXT supports this,
!    or nullptr 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, nullptr, call, arg_idx);
        return arg;
      }
!   return nullptr;
  }
  
  /* Update state machine for a "va_copy" call.  */
  
  void
  va_list_state_machine::on_va_copy (sm_context &sm_ctxt,
! 				   const gcall &call) const
  {
    const svalue *src_arg = get_stateful_va_copy_arg (sm_ctxt, call, 1);
    if (src_arg)
!     check_for_ended_va_list (sm_ctxt, src_arg, "va_copy");
  
    const svalue *dst_arg = get_stateful_arg (sm_ctxt, call, 0);
    if (dst_arg)
      {
        /* Transition from start state to "started".  */
!       if (sm_ctxt.get_state (dst_arg) == m_start)
! 	sm_ctxt.set_next_state (dst_arg, m_started);
      }
  }
  
*************** va_list_state_machine::on_va_copy (sm_co
*** 610,639 ****
  
  void
  va_list_state_machine::on_va_arg (sm_context &sm_ctxt,
! 				  const supernode *node,
! 				  const gcall *call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
!     check_for_ended_va_list (sm_ctxt, node, call, arg, "va_arg");
  }
  
  /* 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");
      }
  }
  
--- 605,632 ----
  
  void
  va_list_state_machine::on_va_arg (sm_context &sm_ctxt,
! 				  const gcall &call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
!     check_for_ended_va_list (sm_ctxt, arg, "va_arg");
  }
  
  /* Update state machine for a "va_end" call.  */
  
  void
  va_list_state_machine::on_va_end (sm_context &sm_ctxt,
! 				  const gcall &call) const
  {
    const svalue *arg = get_stateful_arg (sm_ctxt, call, 0);
    if (arg)
      {
!       state_t s = sm_ctxt.get_state (arg);
        /* Transition from "started" to "ended".  */
        if (s == m_started)
! 	sm_ctxt.set_next_state (arg, m_ended);
        else if (s == m_ended)
! 	check_for_ended_va_list (sm_ctxt, arg, "va_end");
      }
  }
  
*************** va_list_state_machine::on_va_end (sm_con
*** 641,659 ****
     (for complaining about leaks of values in state 'started').  */
  
  std::unique_ptr<pending_diagnostic>
! va_list_state_machine::on_leak (tree var) const
  {
!   return make_unique<va_list_leak> (*this, nullptr, var);
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! state_machine *
  make_va_list_state_machine (logger *logger)
  {
!   return new va_list_state_machine (logger);
  }
  
  /* Handler for "__builtin_va_start".  */
--- 634,654 ----
     (for complaining about leaks of values in state 'started').  */
  
  std::unique_ptr<pending_diagnostic>
! va_list_state_machine::on_leak (tree var,
! 				const program_state *,
! 				const program_state *new_state) const
  {
!   return std::make_unique<va_list_leak> (*this, nullptr, var, new_state);
  }
  
  } // anonymous namespace
  
  /* Internal interface to this file. */
  
! std::unique_ptr<state_machine>
  make_va_list_state_machine (logger *logger)
  {
!   return std::make_unique<va_list_state_machine> (logger);
  }
  
  /* Handler for "__builtin_va_start".  */
*************** kf_va_copy::impl_call_pre (const call_de
*** 731,737 ****
    in_va_list
      = model->check_for_poison (in_va_list,
  			       get_va_list_diag_arg (cd.get_arg_tree (1)),
! 			       NULL,
  			       cd.get_ctxt ());
  
    const region *out_dst_reg
--- 726,732 ----
    in_va_list
      = model->check_for_poison (in_va_list,
  			       get_va_list_diag_arg (cd.get_arg_tree (1)),
! 			       nullptr,
  			       cd.get_ctxt ());
  
    const region *out_dst_reg
*************** kf_va_copy::impl_call_pre (const call_de
*** 757,769 ****
  
  static int
  get_num_variadic_arguments (tree callee_fndecl,
! 			    const gcall *call_stmt)
  {
    int num_positional = 0;
    for (tree iter_parm = DECL_ARGUMENTS (callee_fndecl); iter_parm;
         iter_parm = DECL_CHAIN (iter_parm))
      num_positional++;
!   return gimple_call_num_args (call_stmt) - num_positional;
  }
  
  /* An abstract subclass of pending_diagnostic for diagnostics relating
--- 752,764 ----
  
  static int
  get_num_variadic_arguments (tree callee_fndecl,
! 			    const gcall &call_stmt)
  {
    int num_positional = 0;
    for (tree iter_parm = DECL_ARGUMENTS (callee_fndecl); iter_parm;
         iter_parm = DECL_CHAIN (iter_parm))
      num_positional++;
!   return gimple_call_num_args (&call_stmt) - num_positional;
  }
  
  /* An abstract subclass of pending_diagnostic for diagnostics relating
*************** public:
*** 779,785 ****
    /* Override of pending_diagnostic::add_call_event,
       adding a custom call_event subclass.  */
    void add_call_event (const exploded_edge &eedge,
! 		       checker_path *emission_path) override
    {
      /* As per call_event, but show the number of variadic arguments
         in the call.  */
--- 774,781 ----
    /* Override of pending_diagnostic::add_call_event,
       adding a custom call_event subclass.  */
    void add_call_event (const exploded_edge &eedge,
! 		       const gcall &call_stmt,
! 		       checker_path &emission_path) override
    {
      /* As per call_event, but show the number of variadic arguments
         in the call.  */
*************** public:
*** 813,836 ****
      if (dst_node->get_state ().m_region_model->get_current_frame ()
  	== frame_reg)
        {
- 	const exploded_node *src_node = eedge.m_src;
- 	const program_point &src_point = src_node->get_point ();
- 	const int src_stack_depth = src_point.get_stack_depth ();
- 	const gimple *last_stmt = src_point.get_supernode ()->get_last_stmt ();
- 	const gcall *call_stmt = as_a <const gcall *> (last_stmt);
  	int num_variadic_arguments
  	  = get_num_variadic_arguments (dst_node->get_function ()->decl,
  					call_stmt);
! 	emission_path->add_event
! 	  (make_unique<va_arg_call_event>
  	   (eedge,
! 	    event_loc_info (last_stmt ? last_stmt->location : UNKNOWN_LOCATION,
! 			    src_point.get_fndecl (),
! 			    src_stack_depth),
  	    num_variadic_arguments));
        }
      else
!       pending_diagnostic::add_call_event (eedge, emission_path);
    }
  
  protected:
--- 809,825 ----
      if (dst_node->get_state ().m_region_model->get_current_frame ()
  	== frame_reg)
        {
  	int num_variadic_arguments
  	  = get_num_variadic_arguments (dst_node->get_function ()->decl,
  					call_stmt);
! 	emission_path.add_event
! 	  (std::make_unique<va_arg_call_event>
  	   (eedge,
! 	    event_loc_info (eedge.m_src),
  	    num_variadic_arguments));
        }
      else
!       pending_diagnostic::add_call_event (eedge, call_stmt, emission_path);
    }
  
  protected:
*************** va_arg_compatible_types_p (tree lhs_type
*** 1011,1024 ****
  }
  
  /* If AP_SVAL is a pointer to a var_arg_region, return that var_arg_region.
!    Otherwise return NULL.  */
  
  static const var_arg_region *
  maybe_get_var_arg_region (const svalue *ap_sval)
  {
    if (const region *reg = ap_sval->maybe_get_region ())
      return reg->dyn_cast_var_arg_region ();
!   return NULL;
  }
  
  /* Handler for "__builtin_va_arg".  */
--- 1000,1013 ----
  }
  
  /* If AP_SVAL is a pointer to a var_arg_region, return that var_arg_region.
!    Otherwise return nullptr.  */
  
  static const var_arg_region *
  maybe_get_var_arg_region (const svalue *ap_sval)
  {
    if (const region *reg = ap_sval->maybe_get_region ())
      return reg->dyn_cast_var_arg_region ();
!   return nullptr;
  }
  
  /* Handler for "__builtin_va_arg".  */
*************** kf_va_arg::impl_call_pre (const call_det
*** 1078,1084 ****
  		  else
  		    {
  		      if (ctxt)
! 			ctxt->warn (make_unique <va_arg_type_mismatch>
  				      (va_list_tree,
  				       arg_reg,
  				       lhs_type,
--- 1067,1073 ----
  		  else
  		    {
  		      if (ctxt)
! 			ctxt->warn (std::make_unique <va_arg_type_mismatch>
  				      (va_list_tree,
  				       arg_reg,
  				       lhs_type,
*************** kf_va_arg::impl_call_pre (const call_det
*** 1089,1096 ****
  	      else
  		{
  		  if (ctxt)
! 		    ctxt->warn (make_unique <va_list_exhausted> (va_list_tree,
! 								 arg_reg));
  		  saw_problem = true;
  		}
  	    }
--- 1078,1086 ----
  	      else
  		{
  		  if (ctxt)
! 		    ctxt->warn
! 		      (std::make_unique <va_list_exhausted> (va_list_tree,
! 							     arg_reg));
  		  saw_problem = true;
  		}
  	    }
*************** public:
*** 1139,1148 ****
  void
  register_varargs_builtins (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_VA_START, make_unique<kf_va_start> ());
!   kfm.add (BUILT_IN_VA_COPY, make_unique<kf_va_copy> ());
!   kfm.add (IFN_VA_ARG, make_unique<kf_va_arg> ());
!   kfm.add (BUILT_IN_VA_END, make_unique<kf_va_end> ());
  }
  
  } // namespace ana
--- 1129,1138 ----
  void
  register_varargs_builtins (known_function_manager &kfm)
  {
!   kfm.add (BUILT_IN_VA_START, std::make_unique<kf_va_start> ());
!   kfm.add (BUILT_IN_VA_COPY, std::make_unique<kf_va_copy> ());
!   kfm.add (IFN_VA_ARG, std::make_unique<kf_va_arg> ());
!   kfm.add (BUILT_IN_VA_END, std::make_unique<kf_va_end> ());
  }
  
  } // namespace ana
diff -Nrcpad gcc-15.2.0/gcc/analyzer/varargs.dot gcc-16.1.0-RC-20260423/gcc/analyzer/varargs.dot
*** gcc-15.2.0/gcc/analyzer/varargs.dot	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/analyzer/varargs.dot	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* An overview of the state machine from varargs.cc
!    Copyright (C) 2022-2026 Free Software Foundation, Inc.
     Contributed by David Malcolm <dmalcolm@redhat.com>.
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/array-traits.h gcc-16.1.0-RC-20260423/gcc/array-traits.h
*** gcc-15.2.0/gcc/array-traits.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/array-traits.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Descriptions of array-like objects.
!    Copyright (C) 2019-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/asan.cc gcc-16.1.0-RC-20260423/gcc/asan.cc
*** gcc-15.2.0/gcc/asan.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/asan.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2012-2026 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** static void
*** 762,775 ****
  handle_builtin_stack_restore (gcall *call, gimple_stmt_iterator *iter)
  {
    if (!iter
!       || !(asan_sanitize_allocas_p () || hwasan_sanitize_allocas_p ()))
      return;
  
    tree restored_stack = gimple_call_arg (call, 0);
  
    gimple *g;
  
!   if (hwasan_sanitize_allocas_p ())
      {
        enum internal_fn fn = IFN_HWASAN_ALLOCA_UNPOISON;
        /* There is only one piece of information `expand_HWASAN_ALLOCA_UNPOISON`
--- 762,776 ----
  handle_builtin_stack_restore (gcall *call, gimple_stmt_iterator *iter)
  {
    if (!iter
!       || !(asan_sanitize_allocas_p () || hwasan_sanitize_allocas_p ()
! 	   || memtag_sanitize_allocas_p ()))
      return;
  
    tree restored_stack = gimple_call_arg (call, 0);
  
    gimple *g;
  
!   if (hwasan_sanitize_allocas_p () || memtag_sanitize_allocas_p ())
      {
        enum internal_fn fn = IFN_HWASAN_ALLOCA_UNPOISON;
        /* There is only one piece of information `expand_HWASAN_ALLOCA_UNPOISON`
*************** static void
*** 818,824 ****
  handle_builtin_alloca (gcall *call, gimple_stmt_iterator *iter)
  {
    if (!iter
!       || !(asan_sanitize_allocas_p () || hwasan_sanitize_allocas_p ()))
      return;
  
    gassign *g;
--- 819,826 ----
  handle_builtin_alloca (gcall *call, gimple_stmt_iterator *iter)
  {
    if (!iter
!       || !(asan_sanitize_allocas_p () || hwasan_sanitize_allocas_p ()
! 	   || memtag_sanitize_allocas_p ()))
      return;
  
    gassign *g;
*************** handle_builtin_alloca (gcall *call, gimp
*** 842,864 ****
        e = find_fallthru_edge (gsi_bb (*iter)->succs);
      }
  
!   if (hwasan_sanitize_allocas_p ())
      {
        gimple_seq stmts = NULL;
        location_t loc = gimple_location (gsi_stmt (*iter));
!       /*
! 	 HWASAN needs a different expansion.
  
  	 addr = __builtin_alloca (size, align);
  
! 	 should be replaced by
  
  	 new_size = size rounded up to HWASAN_TAG_GRANULE_SIZE byte alignment;
  	 untagged_addr = __builtin_alloca (new_size, align);
  	 tag = __hwasan_choose_alloca_tag ();
  	 addr = ifn_HWASAN_SET_TAG (untagged_addr, tag);
  	 __hwasan_tag_memory (untagged_addr, tag, new_size);
! 	*/
        /* Ensure alignment at least HWASAN_TAG_GRANULE_SIZE bytes so we start on
  	 a tag granule.  */
        align = align > HWASAN_TAG_GRANULE_SIZE ? align : HWASAN_TAG_GRANULE_SIZE;
--- 844,874 ----
        e = find_fallthru_edge (gsi_bb (*iter)->succs);
      }
  
!   if (hwasan_sanitize_allocas_p () || memtag_sanitize_allocas_p ())
      {
        gimple_seq stmts = NULL;
        location_t loc = gimple_location (gsi_stmt (*iter));
!       /* HWASAN and MEMTAG need a different expansion.
  
  	 addr = __builtin_alloca (size, align);
  
! 	 in case of HWASAN, should be replaced by
  
  	 new_size = size rounded up to HWASAN_TAG_GRANULE_SIZE byte alignment;
  	 untagged_addr = __builtin_alloca (new_size, align);
  	 tag = __hwasan_choose_alloca_tag ();
  	 addr = ifn_HWASAN_SET_TAG (untagged_addr, tag);
  	 __hwasan_tag_memory (untagged_addr, tag, new_size);
! 
! 	 in case of MEMTAG, should be replaced by
! 
! 	 new_size = size rounded up to HWASAN_TAG_GRANULE_SIZE byte alignment;
! 	 untagged_addr = __builtin_alloca (new_size, align);
! 	 addr = ifn_HWASAN_ALLOCA_POISON (untagged_addr, new_size);
! 
! 	 where a new tag is chosen and set on untagged_addr when
! 	 HWASAN_ALLOCA_POISON is expanded.  */
! 
        /* Ensure alignment at least HWASAN_TAG_GRANULE_SIZE bytes so we start on
  	 a tag granule.  */
        align = align > HWASAN_TAG_GRANULE_SIZE ? align : HWASAN_TAG_GRANULE_SIZE;
*************** handle_builtin_alloca (gcall *call, gimp
*** 874,896 ****
  			as_combined_fn (BUILT_IN_ALLOCA_WITH_ALIGN), ptr_type,
  			new_size, build_int_cst (size_type_node, align));
  
!       /* Choose the tag.
! 	 Here we use an internal function so we can choose the tag at expand
! 	 time.  We need the decision to be made after stack variables have been
! 	 assigned their tag (i.e. once the hwasan_frame_tag_offset variable has
! 	 been set to one after the last stack variables tag).  */
!       tree tag = gimple_build (&stmts, loc, CFN_HWASAN_CHOOSE_TAG,
! 			       unsigned_char_type_node);
  
!       /* Add tag to pointer.  */
!       tree addr
! 	= gimple_build (&stmts, loc, CFN_HWASAN_SET_TAG, ptr_type,
! 			untagged_addr, tag);
  
!       /* Tag shadow memory.
! 	 NOTE: require using `untagged_addr` here for libhwasan API.  */
!       gimple_build (&stmts, loc, as_combined_fn (BUILT_IN_HWASAN_TAG_MEM),
! 		    void_type_node, untagged_addr, tag, new_size);
  
        /* Insert the built up code sequence into the original instruction stream
  	 the iterator points to.  */
--- 884,913 ----
  			as_combined_fn (BUILT_IN_ALLOCA_WITH_ALIGN), ptr_type,
  			new_size, build_int_cst (size_type_node, align));
  
!       tree addr;
  
!       if (memtag_sanitize_p ())
! 	addr = gimple_build (&stmts, loc, CFN_HWASAN_ALLOCA_POISON, ptr_type,
! 			     untagged_addr, new_size);
!       else
! 	{
! 	  /* Choose the tag.
! 	     Here we use an internal function so we can choose the tag at expand
! 	     time.  We need the decision to be made after stack variables have been
! 	     assigned their tag (i.e. once the hwasan_frame_tag_offset variable has
! 	     been set to one after the last stack variables tag).  */
! 	  tree tag = gimple_build (&stmts, loc, CFN_HWASAN_CHOOSE_TAG,
! 				   unsigned_char_type_node);
  
! 	  /* Add tag to pointer.  */
! 	  addr = gimple_build (&stmts, loc, CFN_HWASAN_SET_TAG, ptr_type,
! 			       untagged_addr, tag);
! 
! 	  /* Tag shadow memory.
! 	     NOTE: require using `untagged_addr` here for libhwasan API.  */
! 	  gimple_build (&stmts, loc, as_combined_fn (BUILT_IN_HWASAN_TAG_MEM),
! 			void_type_node, untagged_addr, tag, new_size);
! 	}
  
        /* Insert the built up code sequence into the original instruction stream
  	 the iterator points to.  */
*************** get_mem_refs_of_builtin_call (gcall *cal
*** 1104,1110 ****
  	 for now we choose to just ignore `strlen` calls.
  	 This decision was simply made because that means the special case is
  	 limited to this one case of this one function.  */
!       if (hwasan_sanitize_p ())
  	return false;
        source0 = gimple_call_arg (call, 0);
        len = gimple_call_lhs (call);
--- 1121,1127 ----
  	 for now we choose to just ignore `strlen` calls.
  	 This decision was simply made because that means the special case is
  	 limited to this one case of this one function.  */
!       if (hwassist_sanitize_p ())
  	return false;
        source0 = gimple_call_arg (call, 0);
        len = gimple_call_lhs (call);
*************** asan_clear_shadow (rtx shadow_mem, HOST_
*** 1509,1516 ****
    gcc_assert ((len & 3) == 0);
    start_sequence ();
    clear_storage (shadow_mem, GEN_INT (len), BLOCK_OP_NORMAL);
!   insns = get_insns ();
!   end_sequence ();
    for (insn = insns; insn; insn = NEXT_INSN (insn))
      if (CALL_P (insn))
        break;
--- 1526,1532 ----
    gcc_assert ((len & 3) == 0);
    start_sequence ();
    clear_storage (shadow_mem, GEN_INT (len), BLOCK_OP_NORMAL);
!   insns = end_sequence ();
    for (insn = insns; insn; insn = NEXT_INSN (insn))
      if (CALL_P (insn))
        break;
*************** hwasan_memintrin (void)
*** 1887,1892 ****
--- 1903,1985 ----
    return (hwasan_sanitize_p () && param_hwasan_instrument_mem_intrinsics);
  }
  
+ /* MEMoryTAGging sanitizer (MEMTAG) uses a hardware based capability known as
+    memory tagging to detect memory safety vulnerabilities.  Similar to HWASAN,
+    it is also a probabilistic method.
+ 
+    MEMTAG relies on the optional extension in armv8.5a known as MTE (Memory
+    Tagging Extension).  The extension is available in AArch64 only and
+    introduces two types of tags:
+      - Logical Address Tag - bits 56-59 (TARGET_MEMTAG_TAG_BITSIZE) of the
+        virtual address.
+      - Allocation Tag - 4 bits for each tag granule (TARGET_MEMTAG_GRANULE_SIZE
+        set to 16 bytes), stored separately.
+    Load / store instructions raise an exception if tags differ, thereby
+    providing a faster way (than HWASAN) to detect memory safety issues.
+    Further, new instructions are available in MTE to manipulate (generate,
+    update address with) tags.  Load / store instructions with SP base register
+    and immediate offset do not check tags.
+ 
+    PS: Currently, MEMTAG sanitizer is capable of stack (variable / memory)
+    tagging only.
+ 
+    In general, detecting stack-related memory bugs requires the compiler to:
+      - ensure that each tag granule is only used by one variable at a time.
+        This includes alloca.
+      - Tag/Color: put tags into each stack variable pointer.
+      - Untag: the function epilogue will retag the memory.
+ 
+    MEMTAG sanitizer is based off the HWASAN sanitizer implementation
+    internally.  Similar to HWASAN:
+      - Assigning an independently random tag to each variable is carried out by
+        keeping a tagged base pointer.  A tagged base pointer allows addressing
+        variables with (addr offset, tag offset).
+    */
+ 
+ /* Returns whether we are tagging pointers and checking those tags on memory
+    access.  */
+ bool
+ memtag_sanitize_p ()
+ {
+   return sanitize_flags_p (SANITIZE_MEMTAG);
+ }
+ 
+ /* Are we tagging the stack?  */
+ bool
+ memtag_sanitize_stack_p ()
+ {
+   return (sanitize_flags_p (SANITIZE_MEMTAG_STACK));
+ }
+ 
+ /* Are we tagging alloca objects?  */
+ bool
+ memtag_sanitize_allocas_p (void)
+ {
+   return (memtag_sanitize_stack_p () && param_memtag_instrument_allocas);
+ }
+ 
+ /* Are we taggin mem intrinsics?  */
+ bool
+ memtag_memintrin (void)
+ {
+   return (memtag_sanitize_p () && param_memtag_instrument_mem_intrinsics);
+ }
+ 
+ /* Returns whether we are tagging pointers and checking those tags on memory
+    access.  */
+ bool
+ hwassist_sanitize_p ()
+ {
+   return (hwasan_sanitize_p () || memtag_sanitize_p ());
+ }
+ 
+ /* Are we tagging stack objects for hwasan or memtag?  */
+ bool
+ hwassist_sanitize_stack_p ()
+ {
+   return (hwasan_sanitize_stack_p () || memtag_sanitize_stack_p ());
+ }
+ 
  /* Insert code to protect stack vars.  The prologue sequence should be emitted
     directly, epilogue sequence returned.  BASE is the register holding the
     stack base, against which OFFSETS array offsets are relative to, OFFSETS
*************** asan_emit_stack_protection (rtx base, rt
*** 2283,2290 ****
    if (lab)
      emit_label (lab);
  
!   insns = get_insns ();
!   end_sequence ();
    return insns;
  }
  
--- 2376,2382 ----
    if (lab)
      emit_label (lab);
  
!   insns = end_sequence ();
    return insns;
  }
  
*************** asan_emit_allocas_unpoison (rtx top, rtx
*** 2306,2314 ****
  		     top, ptr_mode, bot, ptr_mode);
  
    do_pending_stack_adjust ();
!   rtx_insn *insns = get_insns ();
!   end_sequence ();
!   return insns;
  }
  
  /* Return true if DECL, a global var, might be overridden and needs
--- 2398,2404 ----
  		     top, ptr_mode, bot, ptr_mode);
  
    do_pending_stack_adjust ();
!   return end_sequence ();
  }
  
  /* Return true if DECL, a global var, might be overridden and needs
*************** static tree
*** 2420,2426 ****
  report_error_func (bool is_store, bool recover_p, HOST_WIDE_INT size_in_bytes,
  		   int *nargs)
  {
!   gcc_assert (!hwasan_sanitize_p ());
  
    static enum built_in_function report[2][2][6]
      = { { { BUILT_IN_ASAN_REPORT_LOAD1, BUILT_IN_ASAN_REPORT_LOAD2,
--- 2510,2516 ----
  report_error_func (bool is_store, bool recover_p, HOST_WIDE_INT size_in_bytes,
  		   int *nargs)
  {
!   gcc_assert (!hwassist_sanitize_p ());
  
    static enum built_in_function report[2][2][6]
      = { { { BUILT_IN_ASAN_REPORT_LOAD1, BUILT_IN_ASAN_REPORT_LOAD2,
*************** build_check_stmt (location_t loc, tree b
*** 2759,2765 ****
    if (is_scalar_access)
      flags |= ASAN_CHECK_SCALAR_ACCESS;
  
!   enum internal_fn fn = hwasan_sanitize_p ()
      ? IFN_HWASAN_CHECK
      : IFN_ASAN_CHECK;
  
--- 2849,2855 ----
    if (is_scalar_access)
      flags |= ASAN_CHECK_SCALAR_ACCESS;
  
!   enum internal_fn fn = hwassist_sanitize_p ()
      ? IFN_HWASAN_CHECK
      : IFN_ASAN_CHECK;
  
*************** instrument_derefs (gimple_stmt_iterator
*** 2859,2865 ****
  	 access is inside a global variable, then there's no point adding
  	 instrumentation to check the access.  N.b. hwasan currently never
  	 sanitizes globals.  */
!       if ((hwasan_sanitize_p () || !param_asan_globals)
  	  && is_global_var (inner))
          return;
        if (!TREE_STATIC (inner))
--- 2949,2955 ----
  	 access is inside a global variable, then there's no point adding
  	 instrumentation to check the access.  N.b. hwasan currently never
  	 sanitizes globals.  */
!       if ((hwassist_sanitize_p () || !param_asan_globals)
  	  && is_global_var (inner))
          return;
        if (!TREE_STATIC (inner))
*************** instrument_mem_region_access (tree base,
*** 2958,2964 ****
  static bool
  instrument_builtin_call (gimple_stmt_iterator *iter)
  {
!   if (!(asan_memintrin () || hwasan_memintrin ()))
      return false;
  
    bool iter_advanced_p = false;
--- 3048,3055 ----
  static bool
  instrument_builtin_call (gimple_stmt_iterator *iter)
  {
!   if (!(asan_memintrin () || hwasan_memintrin ()
! 	|| memtag_memintrin ()))
      return false;
  
    bool iter_advanced_p = false;
*************** maybe_instrument_call (gimple_stmt_itera
*** 3112,3118 ****
  	 `longjmp`, thread exit, and exceptions in a different way.  These
  	 problems must be handled externally to the compiler, e.g. in the
  	 language runtime.  */
!       if (! hwasan_sanitize_p ())
  	{
  	  tree decl = builtin_decl_implicit (BUILT_IN_ASAN_HANDLE_NO_RETURN);
  	  gimple *g = gimple_build_call (decl, 0);
--- 3203,3209 ----
  	 `longjmp`, thread exit, and exceptions in a different way.  These
  	 problems must be handled externally to the compiler, e.g. in the
  	 language runtime.  */
!       if (! hwassist_sanitize_p ())
  	{
  	  tree decl = builtin_decl_implicit (BUILT_IN_ASAN_HANDLE_NO_RETURN);
  	  gimple *g = gimple_build_call (decl, 0);
*************** asan_expand_mark_ifn (gimple_stmt_iterat
*** 3865,3871 ****
  
    gcc_checking_assert (TREE_CODE (decl) == VAR_DECL);
  
!   if (hwasan_sanitize_p ())
      {
        gcc_assert (param_hwasan_instrument_stack);
        gimple_seq stmts = NULL;
--- 3956,3962 ----
  
    gcc_checking_assert (TREE_CODE (decl) == VAR_DECL);
  
!   if (hwassist_sanitize_p ())
      {
        gcc_assert (param_hwasan_instrument_stack);
        gimple_seq stmts = NULL;
*************** asan_expand_mark_ifn (gimple_stmt_iterat
*** 3963,3969 ****
  bool
  asan_expand_check_ifn (gimple_stmt_iterator *iter, bool use_calls)
  {
!   gcc_assert (!hwasan_sanitize_p ());
    gimple *g = gsi_stmt (*iter);
    location_t loc = gimple_location (g);
    bool recover_p;
--- 4054,4060 ----
  bool
  asan_expand_check_ifn (gimple_stmt_iterator *iter, bool use_calls)
  {
!   gcc_assert (!hwassist_sanitize_p ());
    gimple *g = gsi_stmt (*iter);
    location_t loc = gimple_location (g);
    bool recover_p;
*************** asan_expand_poison_ifn (gimple_stmt_iter
*** 4238,4244 ****
        int nargs;
        bool store_p = gimple_call_internal_p (use, IFN_ASAN_POISON_USE);
        gcall *call;
!       if (hwasan_sanitize_p ())
  	{
  	  tree fun = builtin_decl_implicit (BUILT_IN_HWASAN_TAG_MISMATCH4);
  	  /* NOTE: hwasan has no __hwasan_report_* functions like asan does.
--- 4329,4335 ----
        int nargs;
        bool store_p = gimple_call_internal_p (use, IFN_ASAN_POISON_USE);
        gcall *call;
!       if (hwassist_sanitize_p ())
  	{
  	  tree fun = builtin_decl_implicit (BUILT_IN_HWASAN_TAG_MISMATCH4);
  	  /* NOTE: hwasan has no __hwasan_report_* functions like asan does.
*************** asan_expand_poison_ifn (gimple_stmt_iter
*** 4339,4345 ****
  static unsigned int
  asan_instrument (void)
  {
!   if (hwasan_sanitize_p ())
      {
        initialize_sanitizer_builtins ();
        transform_statements ();
--- 4430,4436 ----
  static unsigned int
  asan_instrument (void)
  {
!   if (hwassist_sanitize_p ())
      {
        initialize_sanitizer_builtins ();
        transform_statements ();
*************** public:
*** 4385,4391 ****
    opt_pass * clone () final override { return new pass_asan (m_ctxt); }
    bool gate (function *) final override
    {
!     return gate_asan () || gate_hwasan ();
    }
    unsigned int execute (function *) final override
    {
--- 4476,4482 ----
    opt_pass * clone () final override { return new pass_asan (m_ctxt); }
    bool gate (function *) final override
    {
!     return gate_asan () || gate_hwasan () || gate_memtag ();
    }
    unsigned int execute (function *) final override
    {
*************** public:
*** 4427,4433 ****
    /* opt_pass methods: */
    bool gate (function *) final override
      {
!       return !optimize && (gate_asan () || gate_hwasan ());
      }
    unsigned int execute (function *) final override
    {
--- 4518,4524 ----
    /* opt_pass methods: */
    bool gate (function *) final override
      {
!       return !optimize && (gate_asan () || gate_hwasan () || gate_memtag ());
      }
    unsigned int execute (function *) final override
    {
*************** hwasan_frame_base ()
*** 4472,4479 ****
  	= force_reg (Pmode,
  		     targetm.memtag.insert_random_tag (virtual_stack_vars_rtx,
  						       NULL_RTX));
!       hwasan_frame_base_init_seq = get_insns ();
!       end_sequence ();
      }
  
    return hwasan_frame_base_ptr;
--- 4563,4569 ----
  	= force_reg (Pmode,
  		     targetm.memtag.insert_random_tag (virtual_stack_vars_rtx,
  						       NULL_RTX));
!       hwasan_frame_base_init_seq = end_sequence ();
      }
  
    return hwasan_frame_base_ptr;
*************** hwasan_emit_prologue ()
*** 4681,4699 ****
        gcc_assert (multiple_p (bot, HWASAN_TAG_GRANULE_SIZE));
        gcc_assert (multiple_p (size, HWASAN_TAG_GRANULE_SIZE));
  
-       rtx fn = init_one_libfunc ("__hwasan_tag_memory");
        rtx base_tag = targetm.memtag.extract_tag (cur.tagged_base, NULL_RTX);
-       rtx tag = plus_constant (QImode, base_tag, cur.tag_offset);
-       tag = hwasan_truncate_to_tag_size (tag, NULL_RTX);
  
        rtx bottom = convert_memory_address (ptr_mode,
  					   plus_constant (Pmode,
  							  cur.untagged_base,
  							  bot));
!       emit_library_call (fn, LCT_NORMAL, VOIDmode,
! 			 bottom, ptr_mode,
! 			 tag, QImode,
! 			 gen_int_mode (size, ptr_mode), ptr_mode);
      }
    /* Clear the stack vars, we've emitted the prologue for them all now.  */
    hwasan_tagged_stack_vars.truncate (0);
--- 4771,4811 ----
        gcc_assert (multiple_p (bot, HWASAN_TAG_GRANULE_SIZE));
        gcc_assert (multiple_p (size, HWASAN_TAG_GRANULE_SIZE));
  
        rtx base_tag = targetm.memtag.extract_tag (cur.tagged_base, NULL_RTX);
  
        rtx bottom = convert_memory_address (ptr_mode,
  					   plus_constant (Pmode,
  							  cur.untagged_base,
  							  bot));
!       if (memtag_sanitize_p ())
! 	{
! 	  expand_operand ops[3];
! 	  rtx tagged_addr = gen_reg_rtx (ptr_mode);
! 
! 	  /* Check if the required target instructions are present.  */
! 	  gcc_assert (targetm.have_compose_tag ());
! 	  gcc_assert (targetm.have_tag_memory ());
! 
! 	  /* The AArch64 has addg/subg instructions which are working directly
! 	     on a tagged pointer.  */
! 	  create_output_operand (&ops[0], tagged_addr, ptr_mode);
! 	  create_input_operand (&ops[1], base_tag, ptr_mode);
! 	  create_integer_operand (&ops[2], cur.tag_offset);
! 	  expand_insn (targetm.code_for_compose_tag, 3, ops);
! 
! 	  emit_insn (targetm.gen_tag_memory (bottom, tagged_addr,
! 					     gen_int_mode (size, ptr_mode)));
! 	}
!       else
! 	{
! 	  rtx fn = init_one_libfunc ("__hwasan_tag_memory");
! 	  rtx tag = plus_constant (QImode, base_tag, cur.tag_offset);
! 	  tag = hwasan_truncate_to_tag_size (tag, NULL_RTX);
! 	  emit_library_call (fn, LCT_NORMAL, VOIDmode,
! 			     bottom, ptr_mode,
! 			     tag, QImode,
! 			     gen_int_mode (size, ptr_mode), ptr_mode);
! 	}
      }
    /* Clear the stack vars, we've emitted the prologue for them all now.  */
    hwasan_tagged_stack_vars.truncate (0);
*************** hwasan_emit_untag_frame (rtx dynamic, rt
*** 4730,4749 ****
        bot_rtx = vars;
      }
  
!   rtx size_rtx = expand_simple_binop (ptr_mode, MINUS, top_rtx, bot_rtx,
! 				      NULL_RTX, /* unsignedp = */0,
! 				      OPTAB_DIRECT);
  
!   rtx fn = init_one_libfunc ("__hwasan_tag_memory");
!   emit_library_call (fn, LCT_NORMAL, VOIDmode,
! 		     bot_rtx, ptr_mode,
! 		     HWASAN_STACK_BACKGROUND, QImode,
! 		     size_rtx, ptr_mode);
  
    do_pending_stack_adjust ();
!   rtx_insn *insns = get_insns ();
!   end_sequence ();
!   return insns;
  }
  
  /* Needs to be GTY(()), because cgraph_build_static_cdtor may
--- 4842,4865 ----
        bot_rtx = vars;
      }
  
!   rtx size_rtx = simplify_gen_binary (MINUS, ptr_mode, top_rtx, bot_rtx);
!   if (!CONST_INT_P (size_rtx))
!     size_rtx = force_reg (ptr_mode, size_rtx);
  
!   if (memtag_sanitize_p ())
!     emit_insn (targetm.gen_tag_memory (bot_rtx, HWASAN_STACK_BACKGROUND,
! 				       size_rtx));
!   else
!     {
!       rtx fn = init_one_libfunc ("__hwasan_tag_memory");
!       emit_library_call (fn, LCT_NORMAL, VOIDmode,
! 			 bot_rtx, ptr_mode,
! 			 HWASAN_STACK_BACKGROUND, QImode,
! 			 size_rtx, ptr_mode);
!     }
  
    do_pending_stack_adjust ();
!   return end_sequence ();
  }
  
  /* Needs to be GTY(()), because cgraph_build_static_cdtor may
*************** gate_hwasan ()
*** 4926,4929 ****
--- 5042,5051 ----
    return hwasan_sanitize_p ();
  }
  
+ bool
+ gate_memtag ()
+ {
+   return memtag_sanitize_p ();
+ }
+ 
  #include "gt-asan.h"
diff -Nrcpad gcc-15.2.0/gcc/asan.h gcc-16.1.0-RC-20260423/gcc/asan.h
*** gcc-15.2.0/gcc/asan.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/asan.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* AddressSanitizer, a fast memory error detector.
!    Copyright (C) 2011-2026 Free Software Foundation, Inc.
     Contributed by Kostya Serebryany <kcc@google.com>
  
  This file is part of GCC.
*************** extern bool hwasan_expand_check_ifn (gim
*** 57,62 ****
--- 57,70 ----
  extern bool hwasan_expand_mark_ifn (gimple_stmt_iterator *);
  extern bool gate_hwasan (void);
  
+ extern bool memtag_sanitize_p (void);
+ extern bool memtag_sanitize_stack_p (void);
+ extern bool memtag_sanitize_allocas_p (void);
+ extern bool gate_memtag (void);
+ 
+ bool hwassist_sanitize_p (void);
+ bool hwassist_sanitize_stack_p (void);
+ 
  extern gimple_stmt_iterator create_cond_insert_point
       (gimple_stmt_iterator *, bool, bool, bool, basic_block *, basic_block *);
  
*************** extern hash_set <tree> *asan_used_labels
*** 103,109 ****
     independently here.  */
  /* How many bits are used to store a tag in a pointer.
     The default version uses the entire top byte of a pointer (i.e. 8 bits).  */
! #define HWASAN_TAG_SIZE targetm.memtag.tag_size ()
  /* Tag Granule of HWASAN shadow stack.
     This is the size in real memory that each byte in the shadow memory refers
     to.  I.e. if a variable is X bytes long in memory then its tag in shadow
--- 111,117 ----
     independently here.  */
  /* How many bits are used to store a tag in a pointer.
     The default version uses the entire top byte of a pointer (i.e. 8 bits).  */
! #define HWASAN_TAG_SIZE targetm.memtag.tag_bitsize ()
  /* Tag Granule of HWASAN shadow stack.
     This is the size in real memory that each byte in the shadow memory refers
     to.  I.e. if a variable is X bytes long in memory then its tag in shadow
*************** inline bool
*** 225,231 ****
  asan_sanitize_use_after_scope (void)
  {
    return (flag_sanitize_address_use_after_scope
! 	  && (asan_sanitize_stack_p () || hwasan_sanitize_stack_p ()));
  }
  
  /* Return true if DECL should be guarded on the stack.  */
--- 233,239 ----
  asan_sanitize_use_after_scope (void)
  {
    return (flag_sanitize_address_use_after_scope
! 	  && (asan_sanitize_stack_p () || hwassist_sanitize_stack_p ()));
  }
  
  /* Return true if DECL should be guarded on the stack.  */
*************** asan_protect_stack_decl (tree decl)
*** 242,250 ****
     remove all flags mentioned in "no_sanitize" of DECL_ATTRIBUTES.  */
  
  inline bool
! sanitize_flags_p (unsigned int flag, const_tree fn = current_function_decl)
  {
!   unsigned int result_flags = flag_sanitize & flag;
    if (result_flags == 0)
      return false;
  
--- 250,259 ----
     remove all flags mentioned in "no_sanitize" of DECL_ATTRIBUTES.  */
  
  inline bool
! sanitize_flags_p (sanitize_code_type flag,
! 		  const_tree fn = current_function_decl)
  {
!   sanitize_code_type result_flags = flag_sanitize & flag;
    if (result_flags == 0)
      return false;
  
diff -Nrcpad gcc-15.2.0/gcc/asm-toplevel.cc gcc-16.1.0-RC-20260423/gcc/asm-toplevel.cc
*** gcc-15.2.0/gcc/asm-toplevel.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/asm-toplevel.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,259 ----
+ /* Toplevel assembly.
+    Copyright (C) 2025-2026 Free Software Foundation, Inc.
+    Contributed by Michal Jires <mjires@suse.cz>
+ 
+ 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 "backend.h"
+ #include "tree.h"
+ #include "tree-pass.h"
+ #include "cgraph.h"
+ 
+ /* This symbol must be available and cannot be renamed.
+    Marks the symbol and symbols that reference it.  */
+ static void
+ mark_fragile_ref_by_asm (symtab_node* node, bool maybe_local = false)
+ {
+   node->ref_by_asm = true;
+   /* Local symbols must remain in the same partition with their callers.  */
+   if (!TREE_PUBLIC (node->decl) || maybe_local)
+     {
+       unsigned j;
+       ipa_ref *ref;
+       node->must_remain_in_tu_name = true;
+       for (j = 0; node->iterate_referring (j, ref); j++)
+ 	ref->referring->must_remain_in_tu_body = true;
+ 
+       if (cgraph_node* cnode = dyn_cast <cgraph_node *> (node))
+ 	for (cgraph_edge *e = cnode->callers; e ; e = e->next_caller)
+ 	  e->caller->must_remain_in_tu_body = true;
+     }
+ }
+ 
+ /* Helper struct for walk_through_constraints.  */
+ struct constraint_data {
+   asm_node *node;
+   unsigned asm_definition : 1;
+ };
+ 
+ /* Mark symbols in constraints.  */
+ static tree
+ walk_through_constraints (tree* t, int*, void* dat)
+ {
+   constraint_data* data = (constraint_data*) dat;
+   asm_node* anode = data->node;
+ 
+   if (VAR_OR_FUNCTION_DECL_P (*t))
+     {
+       symtab_node* node;
+       if (!flag_wpa && !flag_ltrans)
+ 	{
+ 	  node = symtab_node::get_create (*t);
+ 	  node->ref_by_asm = true;
+ 
+ 	  /* Disable implicit definition on static variables defined in asm.  */
+ 	  if (data->asm_definition && is_a<varpool_node*> (node)
+ 	      && !TREE_PUBLIC (node->decl))
+ 	    DECL_EXTERNAL (node->decl) = true;
+ 
+ 	  if (data->asm_definition && !TREE_PUBLIC (node->decl) && flag_lto)
+ 	    node->must_remain_in_tu_name = true;
+ 	}
+       else
+ 	{
+ 	  node = symtab_node::get (*t);
+ 	  gcc_assert (node);
+ 
+ 	  /* Local symbols defined in asm cannot be renamed.
+ 	     LGEN pass is too early to use node->callers.
+ 	     So we do it in WPA.  */
+ 	  if (data->asm_definition && flag_wpa)
+ 	    mark_fragile_ref_by_asm (node);
+ 	}
+       anode->symbols_referenced.safe_push (node);
+     }
+   return NULL;
+ }
+ 
+ /* Analyze constraints of toplevel extended assembly.  */
+ void
+ analyze_toplevel_extended_asm ()
+ {
+   asm_node *anode;
+   for (anode = symtab->first_asm_symbol (); anode;
+        anode = safe_as_a<asm_node*> (anode->next))
+     {
+       if (TREE_CODE (anode->asm_str) != ASM_EXPR)
+ 	continue;
+       struct constraint_data data {anode, false};
+ 
+       for (tree l = ASM_INPUTS (anode->asm_str); l; l = TREE_CHAIN (l))
+ 	{
+ 	  tree constraint = TREE_VALUE (TREE_PURPOSE (l));
+ 	  const char* c = TREE_STRING_POINTER (constraint);
+ 	  data.asm_definition = c[0] == ':' && c[1] == 0;
+ 	  walk_tree (&l, walk_through_constraints, (void*) &data, NULL);
+ 	}
+       data.asm_definition = false;
+       for (tree l = ASM_OUTPUTS (anode->asm_str); l; l = TREE_CHAIN (l))
+ 	walk_tree (&l, walk_through_constraints, (void*) &data, NULL);
+     }
+ }
+ 
+ 
+ /* Checks all toplevel assembly contents and compares them with known symbols.
+    Marks those symbols with relevant flags.
+    Heuristics: Detects anything in assembly that looks like an identifer.
+ 
+    This pass must be in WPA, otherwise we will not see all possibly referenced
+    symbols - if a symbol is only declared, it will not be in the callgraph if
+    it is only referenced from toplevel assembly.
+    However in WPA there may be multiple symbols with the same identifier.
+    The chosen solution is to handle local symbols in LGEN pass first.  */
+ 
+ void
+ ipa_asm_heuristics ()
+ {
+   hash_map<nofree_string_hash, symtab_node *> map;
+   asm_node *anode = symtab->first_asm_symbol ();
+   if (!anode)
+     return;
+ 
+   symtab_node* snode;
+   if (flag_wpa)
+     {
+       FOR_EACH_SYMBOL (snode)
+ 	if (TREE_PUBLIC (snode->decl))
+ 	    map.put (snode->asm_name (), snode);
+     }
+   else
+     {
+       FOR_EACH_SYMBOL (snode)
+ 	map.put (snode->asm_name (), snode);
+     }
+ 
+   auto_vec<char> ident;
+ 
+   for (; anode; anode = safe_as_a<asm_node*> (anode->next))
+     {
+       if (TREE_CODE (anode->asm_str) != STRING_CST)
+ 	continue;
+ 
+       const char *asm_str = TREE_STRING_POINTER (anode->asm_str);
+       int asm_len = TREE_STRING_LENGTH (anode->asm_str);
+ 
+       if (dump_file)
+ 	fprintf (dump_file, "Searching for symbols in toplevel asm:\n%s\n---\n",
+ 		 asm_str);
+ 
+       for (int i = 0; i < asm_len + 1; ++i)
+ 	{
+ 	  char c = 0;
+ 	  if (i < asm_len)
+ 	    c = asm_str[i];
+ 
+ 	  if ('0' <= c && c <= '9')
+ 	    {
+ 	      if (ident.length ())
+ 		ident.safe_push (c);
+ 	    }
+ 	  else if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '_')
+ 	    ident.safe_push (c);
+ 	  else if (ident.length ())
+ 	    {
+ 	      ident.safe_push ('\0');
+ 	      symtab_node **n_ = map.get (ident.begin ());
+ 
+ 	      if (n_)
+ 		{
+ 		  bool is_label = c == ':';
+ 
+ 		  if (dump_file)
+ 		    fprintf (dump_file, "Found symbol '%s' (is_label: %d)\n",
+ 			     ident.begin (), is_label);
+ 
+ 		  mark_fragile_ref_by_asm (*n_, is_label);
+ 		}
+ 
+ 	      ident.truncate (0);
+ 	    }
+ 	}
+     }
+ }
+ 
+ namespace {
+ 
+ const pass_data pass_data_ipa_asm =
+ {
+   IPA_PASS, /* type */
+   "ipa-asm", /* name */
+   OPTGROUP_NONE, /* optinfo_flags */
+   TV_IPA_LTO_ASM, /* tv_id */
+   0, /* properties_required */
+   0, /* properties_provided */
+   0, /* properties_destroyed */
+   0, /* todo_flags_start */
+   0, /* todo_flags_finish */
+ };
+ 
+ class pass_ipa_asm : public ipa_opt_pass_d
+ {
+ public:
+   pass_ipa_asm (gcc::context *ctxt)
+     : ipa_opt_pass_d (pass_data_ipa_asm, ctxt,
+ 		      NULL, /* generate_summary */
+ 		      NULL, /* write_summary */
+ 		      NULL, /* read_summary */
+ 		      NULL, /* write_optimization_summary */
+ 		      NULL, /* read_optimization_summary */
+ 		      NULL, /* stmt_fixup */
+ 		      0, /* function_transform_todo_flags_start */
+ 		      NULL, /* function_transform */
+ 		      NULL) /* variable_transform */
+   {}
+ 
+   /* opt_pass methods: */
+ 
+   bool gate (function *) final override
+     {
+       return (flag_lto || flag_wpa) && flag_toplevel_asm_heuristics;
+     }
+ 
+   unsigned int execute (function *) final override
+     {
+       ipa_asm_heuristics ();
+       return 0;
+     }
+ 
+ };
+ 
+ } // anon namespace
+ 
+ ipa_opt_pass_d *
+ make_pass_ipa_asm_lgen (gcc::context *ctxt)
+ {
+   return new pass_ipa_asm (ctxt);
+ }
+ 
+ ipa_opt_pass_d *
+ make_pass_ipa_asm_wpa (gcc::context *ctxt)
+ {
+   return new pass_ipa_asm (ctxt);
+ }
diff -Nrcpad gcc-15.2.0/gcc/attr-callback.cc gcc-16.1.0-RC-20260423/gcc/attr-callback.cc
*** gcc-15.2.0/gcc/attr-callback.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/attr-callback.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,384 ----
+ /* Callback attribute handling
+    Copyright (C) 2025-2026 Free Software Foundation, Inc.
+    Contributed by Josef Melcr <jmelcr@gcc.gnu.org>
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify
+    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.
+ 
+    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 "backend.h"
+ #include "tree.h"
+ #include "gimple.h"
+ #include "alloc-pool.h"
+ #include "cgraph.h"
+ #include "diagnostic.h"
+ #include "builtins.h"
+ #include "options.h"
+ #include "gimple-range.h"
+ #include "attribs.h"
+ #include "attr-callback.h"
+ 
+ /* Returns a callback attribute with callback index FN_IDX, and ARG_COUNT
+    arguments specified by VA_ARGS.  */
+ tree
+ callback_build_attr (unsigned fn_idx, unsigned arg_count...)
+ {
+   va_list args;
+   va_start (args, arg_count);
+ 
+   tree cblist = NULL_TREE;
+   tree *pp = &cblist;
+   unsigned i;
+   for (i = 0; i < arg_count; i++)
+     {
+       int num = va_arg (args, int);
+       tree tnum = build_int_cst (integer_type_node, num);
+       *pp = build_tree_list (NULL, tnum);
+       pp = &TREE_CHAIN (*pp);
+     }
+   cblist
+     = tree_cons (NULL_TREE, build_int_cst (integer_type_node, fn_idx), cblist);
+   tree attr
+     = tree_cons (get_identifier (CALLBACK_ATTR_IDENT), cblist, NULL_TREE);
+   return attr;
+ }
+ 
+ /* Returns TRUE if a function should be treated as if it had a callback
+    attribute despite the DECL not having it.  STMT can be passed NULL
+    if the call statement is not available at the time, for example WPA, but it
+    should be called with the statement itself whenever possible.  */
+ bool
+ callback_is_special_cased (tree decl, gcall *stmt)
+ {
+   if (fndecl_built_in_p (decl, BUILT_IN_GOMP_TASK))
+     {
+       if (stmt)
+ 	return gimple_call_arg (stmt, 2) == null_pointer_node;
+       return true;
+     }
+   return false;
+ }
+ 
+ /* Returns an attribute for a special cased function.  */
+ tree
+ callback_special_case_attr (tree decl)
+ {
+   if (fndecl_built_in_p (decl, BUILT_IN_GOMP_TASK))
+     return callback_build_attr (1, 1, 2);
+   gcc_unreachable ();
+ }
+ 
+ /* Returns TRUE if the callee of E has a callback attribute.  */
+ bool
+ callback_edge_callee_has_attr (cgraph_edge *e)
+ {
+   return lookup_attribute (CALLBACK_ATTR_IDENT,
+ 			   DECL_ATTRIBUTES (e->callee->decl))
+ 	 || callback_is_special_cased (e->callee->decl, e->call_stmt);
+ }
+ 
+ /* Given an instance of callback attribute, return the 0-based
+    index of the called function in question.  */
+ int
+ callback_get_fn_index (tree cb_attr)
+ {
+   tree args = TREE_VALUE (cb_attr);
+   int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
+   return idx;
+ }
+ 
+ /* For a given callback pair, retrieves the callback attribute used
+    to create E from the callee of CARRYING.  */
+ tree
+ callback_fetch_attr_by_edge (cgraph_edge *e, cgraph_edge *carrying)
+ {
+   gcc_checking_assert (e->call_stmt == carrying->call_stmt
+ 		       && e->lto_stmt_uid == carrying->lto_stmt_uid);
+ 
+   if (callback_is_special_cased (carrying->callee->decl, e->call_stmt))
+     return callback_special_case_attr (carrying->callee->decl);
+ 
+   tree cb_attr = lookup_attribute (CALLBACK_ATTR_IDENT,
+ 				   DECL_ATTRIBUTES (carrying->callee->decl));
+   gcc_checking_assert (cb_attr);
+   tree res = NULL_TREE;
+   for (; cb_attr;
+        cb_attr = lookup_attribute (CALLBACK_ATTR_IDENT, TREE_CHAIN (cb_attr)))
+     {
+       unsigned id = callback_get_fn_index (cb_attr);
+       if (id == e->callback_id)
+ 	{
+ 	  res = cb_attr;
+ 	  break;
+ 	}
+     }
+   gcc_checking_assert (res != NULL_TREE);
+   return res;
+ }
+ 
+ /* Given an instance of callback attribute, return the 0-base indices
+    of arguments passed to the callback.  For a callback function taking
+    n parameters, returns a vector of n indices of their values in the parameter
+    list of it's caller.  Indices with unknown positions contain -1.  */
+ auto_vec<int>
+ callback_get_arg_mapping (cgraph_edge *e, cgraph_edge *carrying)
+ {
+   tree attr = callback_fetch_attr_by_edge (e, carrying);
+   gcc_checking_assert (attr);
+   tree args = TREE_VALUE (attr);
+   auto_vec<int> res;
+   tree it;
+ 
+   /* Skip over the first argument, which denotes
+      which argument is the called function.  */
+   for (it = TREE_CHAIN (args); it != NULL_TREE; it = TREE_CHAIN (it))
+     {
+       int idx = TREE_INT_CST_LOW (TREE_VALUE (it));
+       /* Subtract 1 to account for 1-based indexing.  If the value is unknown,
+ 	 use constant -1 instead.  */
+       idx = idx == CB_UNKNOWN_POS ? -1 : idx - 1;
+       res.safe_push (idx);
+     }
+ 
+   return res;
+ }
+ 
+ /* For a callback pair, returns the 0-based index of the address of
+    E's callee in the argument list of CARRYING's callee decl.  */
+ int
+ callback_fetch_fn_position (cgraph_edge *e, cgraph_edge *carrying)
+ {
+   tree attr = callback_fetch_attr_by_edge (e, carrying);
+   return callback_get_fn_index (attr);
+ }
+ 
+ /* Returns the element at index idx in the list or NULL_TREE if
+    the list isn't long enough.  NULL_TREE is used as the endpoint.  */
+ static tree
+ get_nth_list_elem (tree list, unsigned idx)
+ {
+   tree res = NULL_TREE;
+   unsigned i = 0;
+   tree it;
+   for (it = list; it != NULL_TREE; it = TREE_CHAIN (it), i++)
+     {
+       if (i == idx)
+ 	{
+ 	  res = TREE_VALUE (it);
+ 	  break;
+ 	}
+     }
+   return res;
+ }
+ 
+ /* Handle a "callback" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ tree
+ handle_callback_attribute (tree *node, tree name, tree args,
+ 			   int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   tree decl = *node;
+   if (TREE_CODE (decl) != FUNCTION_DECL)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%qE attribute can only be used on functions", name);
+       *no_add_attrs = true;
+     }
+ 
+   tree cb_fn_idx_node = TREE_VALUE (args);
+   if (TREE_CODE (cb_fn_idx_node) != INTEGER_CST)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"argument specifying callback function position is not an "
+ 		"integer constant");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   /* We have to use the function type for validation, as
+      DECL_ARGUMENTS returns NULL at this point.  */
+   int callback_fn_idx = TREE_INT_CST_LOW (cb_fn_idx_node);
+   tree decl_type_args = TYPE_ARG_TYPES (TREE_TYPE (decl));
+   tree it;
+   int decl_nargs = list_length (decl_type_args);
+   for (it = decl_type_args; it != NULL_TREE; it = TREE_CHAIN (it))
+     if (it == void_list_node)
+       {
+ 	--decl_nargs;
+ 	break;
+       }
+   if (callback_fn_idx == CB_UNKNOWN_POS)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"callback function position cannot be marked as unknown");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   --callback_fn_idx;
+   if (callback_fn_idx >= decl_nargs)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"callback function position out of range");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   /* Search for the type of the callback function
+      in parameters of the original function.  */
+   tree cfn = get_nth_list_elem (decl_type_args, callback_fn_idx);
+   if (cfn == NULL_TREE)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"could not retrieve callback function from arguments");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   tree cfn_pointee_type = TREE_TYPE (cfn);
+   if (TREE_CODE (cfn) != POINTER_TYPE
+       || TREE_CODE (cfn_pointee_type) != FUNCTION_TYPE)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"argument no. %d is not an address of a function",
+ 		callback_fn_idx + 1);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   tree type_args = TYPE_ARG_TYPES (cfn_pointee_type);
+   /* Compare the length of the list of argument indices
+      and the real number of parameters the callback takes.  */
+   unsigned cfn_nargs = list_length (TREE_CHAIN (args));
+   unsigned type_nargs = list_length (type_args);
+   for (it = type_args; it != NULL_TREE; it = TREE_CHAIN (it))
+     if (it == void_list_node)
+       {
+ 	--type_nargs;
+ 	break;
+       }
+   if (cfn_nargs != type_nargs)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"argument number mismatch, %d expected, got %d", type_nargs,
+ 		cfn_nargs);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   unsigned curr = 0;
+   tree cfn_it;
+   /* Validate type compatibility of the arguments passed
+      from caller function to callback.  "it" is used to step
+      through the parameters of the caller, "cfn_it" is
+      stepping through the parameters of the callback.  */
+   for (it = type_args, cfn_it = TREE_CHAIN (args); curr < type_nargs;
+        it = TREE_CHAIN (it), cfn_it = TREE_CHAIN (cfn_it), curr++)
+     {
+       if (TREE_CODE (TREE_VALUE (cfn_it)) != INTEGER_CST)
+ 	{
+ 	  error_at (DECL_SOURCE_LOCATION (decl),
+ 		    "argument no. %d is not an integer constant", curr + 1);
+ 	  *no_add_attrs = true;
+ 	  continue;
+ 	}
+ 
+       int arg_idx = TREE_INT_CST_LOW (TREE_VALUE (cfn_it));
+ 
+       /* No need to check for type compatibility,
+ 	 if we don't know what we are passing.  */
+       if (arg_idx == CB_UNKNOWN_POS)
+ 	continue;
+ 
+       arg_idx -= 1;
+       /* Report an error if the position is out of bounds,
+ 	 but we can still check the rest of the arguments.  */
+       if (arg_idx >= decl_nargs)
+ 	{
+ 	  error_at (DECL_SOURCE_LOCATION (decl),
+ 		    "callback argument index %d is out of range", arg_idx + 1);
+ 	  *no_add_attrs = true;
+ 	  continue;
+ 	}
+ 
+       tree arg_type = get_nth_list_elem (decl_type_args, arg_idx);
+       tree expected_type = TREE_VALUE (it);
+       /* Check the type of the value we are about to pass ("arg_type")
+ 	 for compatibility with the actual type the callback function
+ 	 expects ("expected_type").  */
+       if (!types_compatible_p (expected_type, arg_type))
+ 	{
+ 	  error_at (DECL_SOURCE_LOCATION (decl),
+ 		    "argument type at index %d is not compatible with callback "
+ 		    "argument type at index %d",
+ 		    arg_idx + 1, curr + 1);
+ 	  *no_add_attrs = true;
+ 	  continue;
+ 	}
+     }
+ 
+   /* Check that the decl does not already have a callback attribute describing
+      the same argument.  */
+   it = lookup_attribute (CALLBACK_ATTR_IDENT, DECL_ATTRIBUTES (decl));
+   for (; it; it = lookup_attribute (CALLBACK_ATTR_IDENT, TREE_CHAIN (it)))
+     if (callback_get_fn_index (it) == callback_fn_idx)
+       {
+ 	error_at (DECL_SOURCE_LOCATION (decl),
+ 		  "function declaration has multiple callback attributes "
+ 		  "describing argument no. %d",
+ 		  callback_fn_idx + 1);
+ 	*no_add_attrs = true;
+ 	break;
+       }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Returns TRUE if E is considered useful in the callgraph, FALSE otherwise.  If
+    this predicate returns FALSE, then E wasn't used to optimize its callee and
+    can be safely removed from the callgraph.  */
+ bool
+ callback_edge_useful_p (cgraph_edge *e)
+ {
+   gcc_checking_assert (e->callback);
+   /* If the edge is pointing towards a clone, it is useful.  */
+   if (e->callee->clone_of)
+     return true;
+ 
+   /* If the callee has been produced by icf, the edge is useful, as it will be
+      used to for the redirection.  */
+   if (e->callee->icf_merged)
+     return true;
+ 
+   /* In case some future pass redirects edges, it should be added as a case
+      here.  */
+ 
+   return false;
+ }
+ 
+ /* Returns the number of arguments the callback function described by ATTR
+    takes.  */
+ 
+ size_t
+ callback_num_args (tree attr)
+ {
+   tree args = TREE_VALUE (attr);
+   size_t res = 0;
+   tree it;
+ 
+   for (it = TREE_CHAIN (args); it != NULL_TREE; it = TREE_CHAIN (it), ++res)
+     ;
+   return res;
+ }
diff -Nrcpad gcc-15.2.0/gcc/attr-callback.h gcc-16.1.0-RC-20260423/gcc/attr-callback.h
*** gcc-15.2.0/gcc/attr-callback.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/attr-callback.h	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,81 ----
+ /* Callback attribute handling
+    Copyright (C) 2025-2026 Free Software Foundation, Inc.
+    Contributed by Josef Melcr <jmelcr@gcc.gnu.org>
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify
+    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.
+ 
+    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 ATTR_CALLBACK_H
+ #define ATTR_CALLBACK_H
+ 
+ enum callback_position
+ {
+   /* Value used when an argument of a callback function
+      is unknown or when multiple values may be used. */
+   CB_UNKNOWN_POS = 0
+ };
+ 
+ #define CALLBACK_ATTR_IDENT " callback"
+ 
+ /* Returns a callback attribute with callback index FN_IDX, and ARG_COUNT
+    arguments specified by VA_ARGS.  */
+ tree callback_build_attr (unsigned fn_idx, unsigned arg_count...);
+ 
+ /* Returns TRUE if a function should be treated as if it had a callback
+    attribute despite the DECL not having it.  STMT can be passed NULL
+    if the call statement is not available at the time, for example WPA, but it
+    should be called with the statement itself whenever possible.  */
+ bool callback_is_special_cased (tree decl, gcall *stmt);
+ 
+ /* Returns an attribute for a special cased function.  */
+ tree callback_special_case_attr (tree decl);
+ 
+ /* Returns TRUE if the callee of E has a callback attribute.  */
+ bool callback_edge_callee_has_attr (cgraph_edge *e);
+ 
+ /* Given an instance of callback attribute, return the 0-based
+    index of the called function in question.  */
+ int callback_get_fn_index (tree cb_attr);
+ 
+ /* For a given callback pair, retrieves the callback attribute used
+    to create E from the callee of CARRYING.  */
+ tree callback_fetch_attr_by_edge (cgraph_edge *e, cgraph_edge *carrying);
+ 
+ /* Given an instance of callback attribute, return the 0-base indices
+    of arguments passed to the callback.  For a callback function taking
+    n parameters, returns a vector of n indices of their values in the parameter
+    list of it's caller.  Indices with unknown positions contain -1.  */
+ auto_vec<int> callback_get_arg_mapping (cgraph_edge *e, cgraph_edge *carrying);
+ 
+ /* For a callback pair, returns the 0-based index of the address of
+    E's callee in the argument list of CARRYING's callee decl.  */
+ int callback_fetch_fn_position (cgraph_edge *e, cgraph_edge *carrying);
+ 
+ /* Handle a "callback" attribute; arguments as in
+    struct attribute_spec.handler.  */
+ tree handle_callback_attribute (tree *node, tree name, tree args, int flags,
+ 				bool *no_add_attrs);
+ 
+ /* Returns TRUE if E is considered useful in the callgraph, FALSE otherwise.  If
+    this predicate returns FALSE, then E wasn't used to optimize its callee and
+    can be safely removed from the callgraph.  */
+ bool callback_edge_useful_p (cgraph_edge *e);
+ 
+ /* Returns the number of arguments the callback function described by ATTR
+    takes.  */
+ size_t callback_num_args (tree attr);
+ 
+ #endif /* ATTR_CALLBACK_H  */
diff -Nrcpad gcc-15.2.0/gcc/attr-fnspec.h gcc-16.1.0-RC-20260423/gcc/attr-fnspec.h
*** gcc-15.2.0/gcc/attr-fnspec.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/attr-fnspec.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Handling of fnspec attribute specifiers
!    Copyright (C) 2008-2026 Free Software Foundation, Inc.
     Contributed by Richard Guenther  <rguenther@suse.de>
  
     This file is part of GCC.
*************** private:
*** 74,80 ****
    const unsigned int arg_desc_size = 2;
  
    /* Return start of specifier of arg i.  */
!   unsigned int arg_idx (int i)
    {
      return return_desc_size + arg_desc_size * i;
    }
--- 74,80 ----
    const unsigned int arg_desc_size = 2;
  
    /* Return start of specifier of arg i.  */
!   unsigned int arg_idx (int i) const
    {
      return return_desc_size + arg_desc_size * i;
    }
*************** public:
*** 106,119 ****
  
    /* Return true if fn spec is known.  */
    bool
!   known_p ()
    {
      return len;
    }
  
    /* Return true if arg I is specified.  */
    bool
!   arg_specified_p (unsigned int i)
    {
      return len >= arg_idx (i + 1);
    }
--- 106,119 ----
  
    /* Return true if fn spec is known.  */
    bool
!   known_p () const
    {
      return len;
    }
  
    /* Return true if arg I is specified.  */
    bool
!   arg_specified_p (unsigned int i) const
    {
      return len >= arg_idx (i + 1);
    }
*************** public:
*** 121,127 ****
    /* True if the argument is not dereferenced recursively, thus only
       directly reachable memory is read or written.  */
    bool
!   arg_direct_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 121,127 ----
    /* True if the argument is not dereferenced recursively, thus only
       directly reachable memory is read or written.  */
    bool
!   arg_direct_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 131,137 ****
  
    /* True if argument is used.  */
    bool
!   arg_used_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 131,137 ----
  
    /* True if argument is used.  */
    bool
!   arg_used_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 140,146 ****
  
    /* True if memory reached by the argument is readonly (not clobbered).  */
    bool
!   arg_readonly_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 140,146 ----
  
    /* True if memory reached by the argument is readonly (not clobbered).  */
    bool
!   arg_readonly_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 149,155 ****
  
    /* True if memory reached by the argument is read (directly or indirectly)  */
    bool
!   arg_maybe_read_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 149,155 ----
  
    /* True if memory reached by the argument is read (directly or indirectly)  */
    bool
!   arg_maybe_read_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 160,166 ****
    /* True if memory reached by the argument is written.
       (directly or indirectly)  */
    bool
!   arg_maybe_written_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 160,166 ----
    /* True if memory reached by the argument is written.
       (directly or indirectly)  */
    bool
!   arg_maybe_written_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 172,178 ****
    /* Return true if load of memory pointed to by argument I is bound
       by another argument.  In this case set ARG.  */
    bool
!   arg_max_access_size_given_by_arg_p (unsigned int i, unsigned int *arg)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 172,178 ----
    /* Return true if load of memory pointed to by argument I is bound
       by another argument.  In this case set ARG.  */
    bool
!   arg_max_access_size_given_by_arg_p (unsigned int i, unsigned int *arg) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 188,194 ****
    /* Return true if the pointed-to type of the argument correspond to the
       size of the memory acccess.  */
    bool
!   arg_access_size_given_by_type_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 188,194 ----
    /* Return true if the pointed-to type of the argument correspond to the
       size of the memory acccess.  */
    bool
!   arg_access_size_given_by_type_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 199,205 ****
       pointed to by a different argument (as in memcpy).
       In this case set ARG.  */
    bool
!   arg_copied_to_arg_p (unsigned int i, unsigned int *arg)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 199,205 ----
       pointed to by a different argument (as in memcpy).
       In this case set ARG.  */
    bool
!   arg_copied_to_arg_p (unsigned int i, unsigned int *arg) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 212,218 ****
  
    /* True if the argument does not escape.  */
    bool
!   arg_noescape_p (unsigned int i)
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
--- 212,218 ----
  
    /* True if the argument does not escape.  */
    bool
!   arg_noescape_p (unsigned int i) const
    {
      unsigned int idx = arg_idx (i);
      gcc_checking_assert (arg_specified_p (i));
*************** public:
*** 224,230 ****
    /* Return true if function returns value of its parameter.  If ARG_NO is
       non-NULL return initialize it to the argument returned.  */
    bool
!   returns_arg (unsigned int *arg_no)
    {
      if (str[0] >= '1' && str[0] <= '4')
        {
--- 224,230 ----
    /* Return true if function returns value of its parameter.  If ARG_NO is
       non-NULL return initialize it to the argument returned.  */
    bool
!   returns_arg (unsigned int *arg_no) const
    {
      if (str[0] >= '1' && str[0] <= '4')
        {
*************** public:
*** 238,251 ****
    /* Nonzero if the return value does not alias with anything.  Functions
       with the malloc attribute have this set on their return value.  */
    bool
!   returns_noalias_p ()
    {
      return str[0] == 'm';
    }
  
    /* Return true if all memory read by the function is specified by fnspec.  */
    bool
!   global_memory_read_p ()
    {
      return str[1] != 'c' && str[1] != 'C';
    }
--- 238,251 ----
    /* Nonzero if the return value does not alias with anything.  Functions
       with the malloc attribute have this set on their return value.  */
    bool
!   returns_noalias_p () const
    {
      return str[0] == 'm';
    }
  
    /* Return true if all memory read by the function is specified by fnspec.  */
    bool
!   global_memory_read_p () const
    {
      return str[1] != 'c' && str[1] != 'C';
    }
*************** public:
*** 253,272 ****
    /* Return true if all memory written by the function
       is specified by fnspec.  */
    bool
!   global_memory_written_p ()
    {
      return str[1] != 'c' && str[1] != 'C' && str[1] != 'p' && str[1] != 'P';
    }
  
    bool
!   errno_maybe_written_p ()
    {
      return str[1] == 'C' || str[1] == 'P';
    }
  
    /* Return EAF flags for arg I.  */
    int
!   arg_eaf_flags (unsigned int i)
    {
      int flags = 0;
  
--- 253,272 ----
    /* Return true if all memory written by the function
       is specified by fnspec.  */
    bool
!   global_memory_written_p () const
    {
      return str[1] != 'c' && str[1] != 'C' && str[1] != 'p' && str[1] != 'P';
    }
  
    bool
!   errno_maybe_written_p () const
    {
      return str[1] == 'C' || str[1] == 'P';
    }
  
    /* Return EAF flags for arg I.  */
    int
!   arg_eaf_flags (unsigned int i) const
    {
      int flags = 0;
  
*************** public:
*** 292,298 ****
  
    /* Return the fnspec string.  */
    const char *
!   get_str ()
    {
      return str;
    }
--- 292,298 ----
  
    /* Return the fnspec string.  */
    const char *
!   get_str () const
    {
      return str;
    }
diff -Nrcpad gcc-15.2.0/gcc/attr-urls.def gcc-16.1.0-RC-20260423/gcc/attr-urls.def
*** gcc-15.2.0/gcc/attr-urls.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/attr-urls.def	Thu Apr 23 11:07:33 2026
***************
*** 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) },
  };
--- 1,295 ----
  /* Autogenerated by regenerate-attr-urls.py.  */
  
! const attr_url_entry all_attrs[] = {
!  { "OS_Task", "gcc/H8_002f300-Attributes.html#index-OS_005fTask_002c-H8_002f300", "H8/300", 7},
!  { "OS_main", "gcc/AVR-Attributes.html#index-OS_005fmain_002c-AVR", "AVR", 7},
!  { "OS_task", "gcc/AVR-Attributes.html#index-OS_005ftask_002c-AVR", "AVR", 7},
!  { "abi_tag", "gcc/C_002b_002b-Attributes.html#index-abi_005ftag", "", 7},
!  { "absdata", "gcc/AVR-Attributes.html#index-absdata_002c-AVR", "AVR", 7},
!  { "access", "gcc/Common-Attributes.html#index-access", "", 6},
!  { "address", "gcc/AVR-Attributes.html#index-address_002c-AVR", "AVR", 7},
!  { "alias", "gcc/Common-Attributes.html#index-alias", "", 5},
!  { "aligned", "gcc/Common-Attributes.html#index-aligned", "", 7},
!  { "alloc_align", "gcc/Common-Attributes.html#index-alloc_005falign", "", 11},
!  { "alloc_size", "gcc/Common-Attributes.html#index-alloc_005fsize", "", 10},
!  { "altivec", "gcc/PowerPC-Attributes.html#index-altivec_002c-PowerPC", "PowerPC", 7},
!  { "always_inline", "gcc/Common-Attributes.html#index-always_005finline", "", 13},
!  { "amdgpu_hsa_kernel", "gcc/AMD-GCN-Attributes.html#index-amdgpu_005fhsa_005fkernel_002c-AMD-GCN", "AMD GCN", 17},
!  { "arch=", "gcc/ARM-Attributes.html#index-arch_003d_002c-ARM", "ARM", 5},
!  { "artificial", "gcc/Common-Attributes.html#index-artificial", "", 10},
!  { "assume", "gcc/Common-Attributes.html#index-assume", "", 6},
!  { "assume_aligned", "gcc/Common-Attributes.html#index-assume_005faligned", "", 14},
!  { "aux", "gcc/ARC-Attributes.html#index-aux_002c-ARC", "ARC", 3},
!  { "bank_switch", "gcc/M32C-Attributes.html#index-bank_005fswitch_002c-M32C", "M32C", 11},
!  { "below100", "gcc/Xstormy16-Attributes.html#index-below100_002c-Xstormy16", "Xstormy16", 8},
!  { "break_handler", "gcc/MicroBlaze-Attributes.html#index-break_005fhandler_002c-MicroBlaze", "MicroBlaze", 13},
!  { "brk_interrupt", "gcc/RL78-Attributes.html#index-brk_005finterrupt_002c-RL78", "RL78", 13},
!  { "btf_decl_tag", "gcc/Common-Attributes.html#index-btf_005fdecl_005ftag", "", 12},
!  { "btf_type_tag", "gcc/Common-Attributes.html#index-btf_005ftype_005ftag", "", 12},
!  { "callee_pop_aggregate_return", "gcc/x86-Attributes.html#index-callee_005fpop_005faggregate_005freturn_002c-x86", "x86", 27},
!  { "cdecl", "gcc/x86-Attributes.html#index-cdecl_002c-x86-32", "x86-32", 5},
!  { "cf_check", "gcc/x86-Attributes.html#index-cf_005fcheck_002c-x86", "x86", 8},
!  { "cleanup", "gcc/Common-Attributes.html#index-cleanup", "", 7},
!  { "code_readable", "gcc/MIPS-Attributes.html#index-code_005freadable_002c-MIPS", "MIPS", 13},
!  { "cold", "gcc/C_002b_002b-Attributes.html#index-cold-1", "", 4},
!  { "cold", "gcc/Common-Attributes.html#index-cold", "", 4},
!  { "common", "gcc/Common-Attributes.html#index-common", "", 6},
!  { "const", "gcc/Common-Attributes.html#index-const", "", 5},
!  { "constructor", "gcc/Common-Attributes.html#index-constructor", "", 11},
!  { "copy", "gcc/Common-Attributes.html#index-copy", "", 4},
!  { "counted_by", "gcc/Common-Attributes.html#index-counted_005fby", "", 10},
!  { "critical", "gcc/MSP430-Attributes.html#index-critical_002c-MSP430", "MSP430", 8},
!  { "deprecated", "gcc/Common-Attributes.html#index-deprecated", "", 10},
!  { "designated_init", "gcc/Common-Attributes.html#index-designated_005finit", "", 15},
!  { "destructor", "gcc/Common-Attributes.html#index-destructor", "", 10},
!  { "disinterrupt", "gcc/Epiphany-Attributes.html#index-disinterrupt_002c-Epiphany", "Epiphany", 12},
!  { "dllexport", "gcc/Microsoft-Windows-Attributes.html#index-dllexport_002c-Microsoft-Windows", "Microsoft Windows", 9},
!  { "dllimport", "gcc/Microsoft-Windows-Attributes.html#index-dllimport_002c-Microsoft-Windows", "Microsoft Windows", 9},
!  { "eightbit_data", "gcc/H8_002f300-Attributes.html#index-eightbit_005fdata_002c-H8_002f300", "H8/300", 13},
!  { "either", "gcc/MSP430-Attributes.html#index-either_002c-MSP430", "MSP430", 6},
!  { "error", "gcc/Common-Attributes.html#index-error", "", 5},
!  { "exception", "gcc/NDS32-Attributes.html#index-exception_002c-NDS32", "NDS32", 9},
!  { "exception_handler", "gcc/Blackfin-Attributes.html#index-exception_005fhandler_002c-Blackfin", "Blackfin", 17},
!  { "expected_throw", "gcc/Common-Attributes.html#index-expected_005fthrow", "", 14},
!  { "externally_visible", "gcc/Common-Attributes.html#index-externally_005fvisible", "", 18},
!  { "fallthrough", "gcc/Common-Attributes.html#index-fallthrough", "", 11},
!  { "far", "gcc/MIPS-Attributes.html#index-far_002c-MIPS", "MIPS", 3},
!  { "fast_interrupt", "gcc/M32C-Attributes.html#index-fast_005finterrupt_002c-M32C", "M32C", 14},
!  { "fast_interrupt", "gcc/MicroBlaze-Attributes.html#index-fast_005finterrupt_002c-MicroBlaze", "MicroBlaze", 14},
!  { "fast_interrupt", "gcc/RX-Attributes.html#index-fast_005finterrupt_002c-RX", "RX", 14},
!  { "fastcall", "gcc/x86-Attributes.html#index-fastcall_002c-x86-32", "x86-32", 8},
!  { "fd_arg", "gcc/Common-Attributes.html#index-fd_005farg", "", 6},
!  { "fd_arg_read", "gcc/Common-Attributes.html#index-fd_005farg_005fread", "", 11},
!  { "fd_arg_write", "gcc/Common-Attributes.html#index-fd_005farg_005fwrite", "", 12},
!  { "fentry_name", "gcc/x86-Attributes.html#index-fentry_005fname_002c-x86", "x86", 11},
!  { "fentry_section", "gcc/x86-Attributes.html#index-fentry_005fsection_002c-x86", "x86", 14},
!  { "flatten", "gcc/Common-Attributes.html#index-flatten", "", 7},
!  { "force_align_arg_pointer", "gcc/x86-Attributes.html#index-force_005falign_005farg_005fpointer_002c-x86", "x86", 23},
!  { "format", "gcc/Common-Attributes.html#index-format", "", 6},
!  { "format_arg", "gcc/Common-Attributes.html#index-format_005farg", "", 10},
!  { "forwarder_section", "gcc/Epiphany-Attributes.html#index-forwarder_005fsection_002c-Epiphany", "Epiphany", 17},
!  { "function_return", "gcc/x86-Attributes.html#index-function_005freturn_002c-x86", "x86", 15},
!  { "function_vector", "gcc/H8_002f300-Attributes.html#index-function_005fvector_002c-H8_002f300", "H8/300", 15},
!  { "function_vector", "gcc/M32C-Attributes.html#index-function_005fvector_002c-M16C_002fM32C", "M16C/M32C", 15},
!  { "function_vector", "gcc/SH-Attributes.html#index-function_005fvector_002c-SH", "SH", 15},
!  { "gcc_struct", "gcc/PowerPC-Attributes.html#index-gcc_005fstruct_002c-PowerPC", "PowerPC", 10},
!  { "gcc_struct", "gcc/x86-Attributes.html#index-gcc_005fstruct_002c-x86", "x86", 10},
!  { "general-regs-only", "gcc/ARM-Attributes.html#index-general-regs-only_002c-ARM", "ARM", 17},
!  { "gnu_inline", "gcc/Common-Attributes.html#index-gnu_005finline", "", 10},
!  { "hardbool", "gcc/Common-Attributes.html#index-hardbool", "", 8},
!  { "hot", "gcc/C_002b_002b-Attributes.html#index-hot-1", "", 3},
!  { "hot", "gcc/Common-Attributes.html#index-hot", "", 3},
!  { "hotpatch", "gcc/S_002f390-Attributes.html#index-hotpatch_002c-S_002f390", "S/390", 8},
!  { "ifunc", "gcc/Common-Attributes.html#index-ifunc", "", 5},
!  { "indirect_branch", "gcc/x86-Attributes.html#index-indirect_005fbranch_002c-x86", "x86", 15},
!  { "indirect_return", "gcc/x86-Attributes.html#index-indirect_005freturn_002c-x86", "x86", 15},
!  { "init_priority", "gcc/C_002b_002b-Attributes.html#index-init_005fpriority", "", 13},
!  { "interrupt", "gcc/ARC-Attributes.html#index-interrupt_002c-ARC", "ARC", 9},
!  { "interrupt", "gcc/ARM-Attributes.html#index-interrupt_002c-ARM", "ARM", 9},
!  { "interrupt", "gcc/AVR-Attributes.html#index-interrupt_002c-AVR", "AVR", 9},
!  { "interrupt", "gcc/C-SKY-Attributes.html#index-interrupt_002c-C-SKY", "C-SKY", 9},
!  { "interrupt", "gcc/Common-Attributes.html#index-interrupt", "", 9},
!  { "interrupt", "gcc/Epiphany-Attributes.html#index-interrupt_002c-Epiphany", "Epiphany", 9},
!  { "interrupt", "gcc/M32C-Attributes.html#index-interrupt_002c-M32C", "M32C", 9},
!  { "interrupt", "gcc/M32R_002fD-Attributes.html#index-interrupt_002c-M32R_002fD", "M32R/D", 9},
!  { "interrupt", "gcc/MIPS-Attributes.html#index-interrupt_002c-MIPS", "MIPS", 9},
!  { "interrupt", "gcc/MSP430-Attributes.html#index-interrupt_002c-MSP430", "MSP430", 9},
!  { "interrupt", "gcc/NDS32-Attributes.html#index-interrupt_002c-NDS32", "NDS32", 9},
!  { "interrupt", "gcc/RISC-V-Attributes.html#index-interrupt_002c-RISC-V", "RISC-V", 9},
!  { "interrupt", "gcc/RL78-Attributes.html#index-interrupt_002c-RL78", "RL78", 9},
!  { "interrupt", "gcc/RX-Attributes.html#index-interrupt_002c-RX", "RX", 9},
!  { "interrupt", "gcc/V850-Attributes.html#index-interrupt_002c-V850", "V850", 9},
!  { "interrupt", "gcc/Visium-Attributes.html#index-interrupt_002c-Visium", "Visium", 9},
!  { "interrupt", "gcc/Xstormy16-Attributes.html#index-interrupt_002c-Xstormy16", "Xstormy16", 9},
!  { "interrupt", "gcc/m68k-Attributes.html#index-interrupt_002c-m68k", "m68k", 9},
!  { "interrupt", "gcc/x86-Attributes.html#index-interrupt_002c-x86", "x86", 9},
!  { "interrupt_handler", "gcc/Blackfin-Attributes.html#index-interrupt_005fhandler_002c-Blackfin", "Blackfin", 17},
!  { "interrupt_handler", "gcc/Common-Attributes.html#index-interrupt_005fhandler", "", 17},
!  { "interrupt_handler", "gcc/H8_002f300-Attributes.html#index-interrupt_005fhandler_002c-H8_002f300", "H8/300", 17},
!  { "interrupt_handler", "gcc/MicroBlaze-Attributes.html#index-interrupt_005fhandler_002c-MicroBlaze", "MicroBlaze", 17},
!  { "interrupt_handler", "gcc/SH-Attributes.html#index-interrupt_005fhandler_002c-SH", "SH", 17},
!  { "interrupt_handler", "gcc/V850-Attributes.html#index-interrupt_005fhandler_002c-V850", "V850", 17},
!  { "interrupt_handler", "gcc/m68k-Attributes.html#index-interrupt_005fhandler_002c-m68k", "m68k", 17},
!  { "interrupt_thread", "gcc/m68k-Attributes.html#index-interrupt_005fthread_002c-fido", "fido", 16},
!  { "io", "gcc/AVR-Attributes.html#index-io_002c-AVR", "AVR", 2},
!  { "io_low", "gcc/AVR-Attributes.html#index-io_005flow_002c-AVR", "AVR", 6},
!  { "isr", "gcc/ARM-Attributes.html#index-isr_002c-ARM", "ARM", 3},
!  { "isr", "gcc/C-SKY-Attributes.html#index-isr_002c-C-SKY", "C-SKY", 3},
!  { "jli_always", "gcc/ARC-Attributes.html#index-jli_005falways_002c-ARC", "ARC", 10},
!  { "jli_fixed", "gcc/ARC-Attributes.html#index-jli_005ffixed_002c-ARC", "ARC", 9},
!  { "keep_interrupts_masked", "gcc/MIPS-Attributes.html#index-keep_005finterrupts_005fmasked_002c-MIPS", "MIPS", 22},
!  { "kernel", "gcc/Nvidia-PTX-Attributes.html#index-kernel_002c-Nvidia-PTX", "Nvidia PTX", 6},
!  { "kspisusp", "gcc/Blackfin-Attributes.html#index-kspisusp_002c-Blackfin", "Blackfin", 8},
!  { "l1_data", "gcc/Blackfin-Attributes.html#index-l1_005fdata_002c-Blackfin", "Blackfin", 7},
!  { "l1_data_A", "gcc/Blackfin-Attributes.html#index-l1_005fdata_005fA_002c-Blackfin", "Blackfin", 9},
!  { "l1_data_B", "gcc/Blackfin-Attributes.html#index-l1_005fdata_005fB_002c-Blackfin", "Blackfin", 9},
!  { "l1_text", "gcc/Blackfin-Attributes.html#index-l1_005ftext_002c-Blackfin", "Blackfin", 7},
!  { "l2", "gcc/Blackfin-Attributes.html#index-l2_002c-Blackfin", "Blackfin", 2},
!  { "leaf", "gcc/Common-Attributes.html#index-leaf", "", 4},
!  { "long_call", "gcc/ARC-Attributes.html#index-long_005fcall_002c-ARC", "ARC", 9},
!  { "long_call", "gcc/ARM-Attributes.html#index-long_005fcall_002c-ARM", "ARM", 9},
!  { "long_call", "gcc/Epiphany-Attributes.html#index-long_005fcall_002c-Epiphany", "Epiphany", 9},
!  { "long_call", "gcc/MIPS-Attributes.html#index-long_005fcall_002c-MIPS", "MIPS", 9},
!  { "longcall", "gcc/Blackfin-Attributes.html#index-longcall_002c-Blackfin", "Blackfin", 8},
!  { "longcall", "gcc/PowerPC-Attributes.html#index-longcall_002c-PowerPC", "PowerPC", 8},
!  { "lower", "gcc/MSP430-Attributes.html#index-lower_002c-MSP430", "MSP430", 5},
!  { "malloc", "gcc/Common-Attributes.html#index-malloc", "", 6},
!  { "may_alias", "gcc/Common-Attributes.html#index-may_005falias", "", 9},
!  { "medium_call", "gcc/ARC-Attributes.html#index-medium_005fcall_002c-ARC", "ARC", 11},
!  { "micromips", "gcc/MIPS-Attributes.html#index-micromips_002c-MIPS", "MIPS", 9},
!  { "mips16", "gcc/MIPS-Attributes.html#index-mips16_002c-MIPS", "MIPS", 6},
!  { "mode", "gcc/Common-Attributes.html#index-mode", "", 4},
!  { "model", "gcc/IA-64-Attributes.html#index-model_002c-IA-64", "IA-64", 5},
!  { "model", "gcc/LoongArch-Attributes.html#index-model_002c-LoongArch", "LoongArch", 5},
!  { "model", "gcc/M32R_002fD-Attributes.html#index-model_002c-M32R_002fD", "M32R/D", 5},
!  { "monitor", "gcc/H8_002f300-Attributes.html#index-monitor_002c-H8_002f300", "H8/300", 7},
!  { "ms_abi", "gcc/x86-Attributes.html#index-ms_005fabi_002c-x86", "x86", 6},
!  { "ms_hook_prologue", "gcc/x86-Attributes.html#index-ms_005fhook_005fprologue_002c-x86", "x86", 16},
!  { "ms_struct", "gcc/PowerPC-Attributes.html#index-ms_005fstruct_002c-PowerPC", "PowerPC", 9},
!  { "ms_struct", "gcc/x86-Attributes.html#index-ms_005fstruct_002c-x86", "x86", 9},
!  { "musttail", "gcc/Common-Attributes.html#index-musttail", "", 8},
!  { "naked", "gcc/Common-Attributes.html#index-naked", "", 5},
!  { "near", "gcc/MIPS-Attributes.html#index-near_002c-MIPS", "MIPS", 4},
!  { "nested", "gcc/NDS32-Attributes.html#index-nested_002c-NDS32", "NDS32", 6},
!  { "nested_ready", "gcc/NDS32-Attributes.html#index-nested_005fready_002c-NDS32", "NDS32", 12},
!  { "nesting", "gcc/Blackfin-Attributes.html#index-nesting_002c-Blackfin", "Blackfin", 7},
!  { "nmi", "gcc/NDS32-Attributes.html#index-nmi_002c-NDS32", "NDS32", 3},
!  { "nmi_handler", "gcc/Blackfin-Attributes.html#index-nmi_005fhandler_002c-Blackfin", "Blackfin", 11},
!  { "no_callee_saved_registers", "gcc/x86-Attributes.html#index-no_005fcallee_005fsaved_005fregisters_002c-x86", "x86", 25},
!  { "no_caller_saved_registers", "gcc/x86-Attributes.html#index-no_005fcaller_005fsaved_005fregisters_002c-x86", "x86", 25},
!  { "no_dangling", "gcc/C_002b_002b-Attributes.html#index-no_005fdangling", "", 11},
!  { "no_gccisr", "gcc/AVR-Attributes.html#index-no_005fgccisr_002c-AVR", "AVR", 9},
!  { "no_icf", "gcc/Common-Attributes.html#index-no_005ficf", "", 6},
!  { "no_instrument_function", "gcc/Common-Attributes.html#index-no_005finstrument_005ffunction", "", 22},
!  { "no_reorder", "gcc/Common-Attributes.html#index-no_005freorder", "", 10},
!  { "no_sanitize_address", "gcc/Common-Attributes.html#index-no_005fsanitize_005faddress", "", 19},
!  { "no_sanitize_thread", "gcc/Common-Attributes.html#index-no_005fsanitize_005fthread", "", 18},
!  { "no_sanitize_undefined", "gcc/Common-Attributes.html#index-no_005fsanitize_005fundefined", "", 21},
!  { "no_split_stack", "gcc/Common-Attributes.html#index-no_005fsplit_005fstack", "", 14},
!  { "no_stack_limit", "gcc/Common-Attributes.html#index-no_005fstack_005flimit", "", 14},
!  { "no_stack_protector", "gcc/Common-Attributes.html#index-no_005fstack_005fprotector", "", 18},
!  { "noblock", "gcc/AVR-Attributes.html#index-noblock_002c-AVR", "AVR", 7},
!  { "nocf_check", "gcc/x86-Attributes.html#index-nocf_005fcheck_002c-x86", "x86", 10},
!  { "noclone", "gcc/Common-Attributes.html#index-noclone", "", 7},
!  { "nocommon", "gcc/Common-Attributes.html#index-nocommon", "", 8},
!  { "nocompression", "gcc/MIPS-Attributes.html#index-nocompression_002c-MIPS", "MIPS", 13},
!  { "nodirect_extern_access", "gcc/x86-Attributes.html#index-nodirect_005fextern_005faccess_002c-x86", "x86", 22},
!  { "noinit", "gcc/Common-Attributes.html#index-noinit", "", 6},
!  { "noinline", "gcc/Common-Attributes.html#index-noinline", "", 8},
!  { "noipa", "gcc/Common-Attributes.html#index-noipa", "", 5},
!  { "nomicromips", "gcc/MIPS-Attributes.html#index-nomicromips_002c-MIPS", "MIPS", 11},
!  { "nomips16", "gcc/MIPS-Attributes.html#index-nomips16_002c-MIPS", "MIPS", 8},
!  { "nonnull", "gcc/Common-Attributes.html#index-nonnull", "", 7},
!  { "nonnull_if_nonzero", "gcc/Common-Attributes.html#index-nonnull_005fif_005fnonzero", "", 18},
!  { "nonstring", "gcc/Common-Attributes.html#index-nonstring", "", 9},
!  { "noplt", "gcc/Common-Attributes.html#index-noplt", "", 5},
!  { "noreturn", "gcc/Common-Attributes.html#index-noreturn", "", 8},
!  { "nosave_low_regs", "gcc/SH-Attributes.html#index-nosave_005flow_005fregs_002c-SH", "SH", 15},
!  { "not_nested", "gcc/NDS32-Attributes.html#index-not_005fnested_002c-NDS32", "NDS32", 10},
!  { "nothrow", "gcc/Common-Attributes.html#index-nothrow", "", 7},
!  { "notshared", "gcc/ARM-Attributes.html#index-notshared_002c-ARM", "ARM", 9},
!  { "null_terminated_string_arg", "gcc/Common-Attributes.html#index-null_005fterminated_005fstring_005farg", "", 26},
!  { "objc_nullability", "gcc/Common-Attributes.html#index-objc_005fnullability", "", 16},
!  { "objc_root_class", "gcc/Common-Attributes.html#index-objc_005froot_005fclass", "", 15},
!  { "optimize", "gcc/Common-Attributes.html#index-optimize", "", 8},
!  { "packed", "gcc/Common-Attributes.html#index-packed", "", 6},
!  { "partial_save", "gcc/NDS32-Attributes.html#index-partial_005fsave_002c-NDS32", "NDS32", 12},
!  { "patchable_function_entry", "gcc/Common-Attributes.html#index-patchable_005ffunction_005fentry", "", 24},
!  { "pcs", "gcc/ARM-Attributes.html#index-pcs_002c-ARM", "ARM", 3},
!  { "persistent", "gcc/Common-Attributes.html#index-persistent", "", 10},
!  { "prefer-vector-width", "gcc/x86-Attributes.html#index-prefer-vector-width_002c-x86", "x86", 19},
!  { "preserve_access_index", "gcc/BPF-Attributes.html#index-preserve_005faccess_005findex_002c-BPF", "BPF", 21},
!  { "preserve_none", "gcc/x86-Attributes.html#index-preserve_005fnone_002c-x86", "x86", 13},
!  { "progmem", "gcc/AVR-Attributes.html#index-progmem_002c-AVR", "AVR", 7},
!  { "pure", "gcc/Common-Attributes.html#index-pure", "", 4},
!  { "reentrant", "gcc/MSP430-Attributes.html#index-reentrant_002c-MSP430", "MSP430", 9},
!  { "regparm", "gcc/x86-Attributes.html#index-regparm_002c-x86", "x86", 7},
!  { "renesas", "gcc/SH-Attributes.html#index-renesas_002c-SH", "SH", 7},
!  { "reproducible", "gcc/Common-Attributes.html#index-reproducible", "", 12},
!  { "resbank", "gcc/SH-Attributes.html#index-resbank_002c-SH", "SH", 7},
!  { "reset", "gcc/NDS32-Attributes.html#index-reset_002c-NDS32", "NDS32", 5},
!  { "retain", "gcc/Common-Attributes.html#index-retain", "", 6},
!  { "returns_nonnull", "gcc/Common-Attributes.html#index-returns_005fnonnull", "", 15},
!  { "returns_twice", "gcc/Common-Attributes.html#index-returns_005ftwice", "", 13},
!  { "riscv_vector_cc", "gcc/RISC-V-Attributes.html#index-riscv_005fvector_005fcc_002c-RISC-V", "RISC-V", 15},
!  { "saddr", "gcc/RL78-Attributes.html#index-saddr_002c-RL78", "RL78", 5},
!  { "save_all", "gcc/NDS32-Attributes.html#index-save_005fall_002c-NDS32", "NDS32", 8},
!  { "save_volatiles", "gcc/MicroBlaze-Attributes.html#index-save_005fvolatiles_002c-MicroBlaze", "MicroBlaze", 14},
!  { "saveall", "gcc/Blackfin-Attributes.html#index-saveall_002c-Blackfin", "Blackfin", 7},
!  { "saveall", "gcc/H8_002f300-Attributes.html#index-saveall_002c-H8_002f300", "H8/300", 7},
!  { "scalar_storage_order", "gcc/Common-Attributes.html#index-scalar_005fstorage_005forder", "", 20},
!  { "sda", "gcc/V850-Attributes.html#index-sda_002c-V850", "V850", 3},
!  { "section", "gcc/Common-Attributes.html#index-section", "", 7},
!  { "secure_call", "gcc/ARC-Attributes.html#index-secure_005fcall_002c-ARC", "ARC", 11},
!  { "selectany", "gcc/Microsoft-Windows-Attributes.html#index-selectany_002c-Microsoft-Windows", "Microsoft Windows", 9},
!  { "sentinel", "gcc/Common-Attributes.html#index-sentinel", "", 8},
!  { "shared", "gcc/Microsoft-Windows-Attributes.html#index-shared_002c-Microsoft-Windows", "Microsoft Windows", 6},
!  { "shared", "gcc/Nvidia-PTX-Attributes.html#index-shared_002c-Nvidia-PTX", "Nvidia PTX", 6},
!  { "short_call", "gcc/ARC-Attributes.html#index-short_005fcall_002c-ARC", "ARC", 10},
!  { "short_call", "gcc/ARM-Attributes.html#index-short_005fcall_002c-ARM", "ARM", 10},
!  { "short_call", "gcc/Epiphany-Attributes.html#index-short_005fcall_002c-Epiphany", "Epiphany", 10},
!  { "short_call", "gcc/MIPS-Attributes.html#index-short_005fcall_002c-MIPS", "MIPS", 10},
!  { "shortcall", "gcc/Blackfin-Attributes.html#index-shortcall_002c-Blackfin", "Blackfin", 9},
!  { "shortcall", "gcc/PowerPC-Attributes.html#index-shortcall_002c-PowerPC", "PowerPC", 9},
!  { "signal", "gcc/AVR-Attributes.html#index-signal_002c-AVR", "AVR", 6},
!  { "simd", "gcc/Common-Attributes.html#index-simd", "", 4},
!  { "sp_switch", "gcc/SH-Attributes.html#index-sp_005fswitch_002c-SH", "SH", 9},
!  { "sseregparm", "gcc/x86-Attributes.html#index-sseregparm_002c-x86", "x86", 10},
!  { "stack_protect", "gcc/Common-Attributes.html#index-stack_005fprotect", "", 13},
!  { "stdcall", "gcc/x86-Attributes.html#index-stdcall_002c-x86-32", "x86-32", 7},
!  { "strict_flex_array", "gcc/Common-Attributes.html#index-strict_005fflex_005farray", "", 17},
!  { "strub", "gcc/Common-Attributes.html#index-strub", "", 5},
!  { "symver", "gcc/Common-Attributes.html#index-symver", "", 6},
!  { "syscall_linkage", "gcc/IA-64-Attributes.html#index-syscall_005flinkage_002c-IA-64", "IA-64", 15},
!  { "sysv_abi", "gcc/x86-Attributes.html#index-sysv_005fabi_002c-x86", "x86", 8},
!  { "tainted_args", "gcc/Common-Attributes.html#index-tainted_005fargs", "", 12},
!  { "target", "gcc/AArch64-Attributes.html#index-target_002c-AArch64", "AArch64", 6},
!  { "target", "gcc/ARM-Attributes.html#index-target_002c-ARM", "ARM", 6},
!  { "target", "gcc/Common-Attributes.html#index-target", "", 6},
!  { "target", "gcc/LoongArch-Attributes.html#index-target_002c-LoongArch", "LoongArch", 6},
!  { "target", "gcc/PowerPC-Attributes.html#index-target_002c-PowerPC", "PowerPC", 6},
!  { "target", "gcc/RISC-V-Attributes.html#index-target_002c-RISC-V", "RISC-V", 6},
!  { "target", "gcc/S_002f390-Attributes.html#index-target_002c-S_002f390", "S/390", 6},
!  { "target", "gcc/x86-Attributes.html#index-target_002c-x86", "x86", 6},
!  { "target_clones", "gcc/Common-Attributes.html#index-target_005fclones", "", 13},
!  { "target_clones", "gcc/LoongArch-Attributes.html#index-target_005fclones_002c-LoongArch", "LoongArch", 13},
!  { "target_version", "gcc/Common-Attributes.html#index-target_005fversion", "", 14},
!  { "target_version", "gcc/LoongArch-Attributes.html#index-target_005fversion_002c-LoongArch", "LoongArch", 14},
!  { "tda", "gcc/V850-Attributes.html#index-tda_002c-V850", "V850", 3},
!  { "thiscall", "gcc/x86-Attributes.html#index-thiscall_002c-x86-32", "x86-32", 8},
!  { "tiny_data", "gcc/H8_002f300-Attributes.html#index-tiny_005fdata_002c-H8_002f300", "H8/300", 9},
!  { "tls_model", "gcc/Common-Attributes.html#index-tls_005fmodel", "", 9},
!  { "transparent_union", "gcc/Common-Attributes.html#index-transparent_005funion", "", 17},
!  { "trap_exit", "gcc/SH-Attributes.html#index-trap_005fexit_002c-SH", "SH", 9},
!  { "trapa_handler", "gcc/SH-Attributes.html#index-trapa_005fhandler_002c-SH", "SH", 13},
!  { "unavailable", "gcc/Common-Attributes.html#index-unavailable", "", 11},
!  { "uncached", "gcc/ARC-Attributes.html#index-uncached_002c-ARC", "ARC", 8},
!  { "uninitialized", "gcc/Common-Attributes.html#index-uninitialized", "", 13},
!  { "unsequenced", "gcc/Common-Attributes.html#index-unsequenced", "", 11},
!  { "unused", "gcc/Common-Attributes.html#index-unused", "", 6},
!  { "upper", "gcc/MSP430-Attributes.html#index-upper_002c-MSP430", "MSP430", 5},
!  { "use_debug_exception_return", "gcc/MIPS-Attributes.html#index-use_005fdebug_005fexception_005freturn_002c-MIPS", "MIPS", 26},
!  { "use_hazard_barrier_return", "gcc/MIPS-Attributes.html#index-use_005fhazard_005fbarrier_005freturn_002c-MIPS", "MIPS", 25},
!  { "use_shadow_register_set", "gcc/MIPS-Attributes.html#index-use_005fshadow_005fregister_005fset_002c-MIPS", "MIPS", 23},
!  { "used", "gcc/Common-Attributes.html#index-used", "", 4},
!  { "vector", "gcc/RX-Attributes.html#index-vector_002c-RX", "RX", 6},
!  { "vector_size", "gcc/Common-Attributes.html#index-vector_005fsize", "", 11},
!  { "version_id", "gcc/IA-64-Attributes.html#index-version_005fid_002c-IA-64", "IA-64", 10},
!  { "visibility", "gcc/Common-Attributes.html#index-visibility", "", 10},
!  { "wakeup", "gcc/MSP430-Attributes.html#index-wakeup_002c-MSP430", "MSP430", 6},
!  { "warm", "gcc/NDS32-Attributes.html#index-warm_002c-NDS32", "NDS32", 4},
!  { "warn_unused", "gcc/C_002b_002b-Attributes.html#index-warn_005funused", "", 11},
!  { "warn_unused_result", "gcc/Common-Attributes.html#index-warn_005funused_005fresult", "", 18},
!  { "warning", "gcc/Common-Attributes.html#index-warning", "", 7},
!  { "weak", "gcc/Common-Attributes.html#index-weak", "", 4},
!  { "weakref", "gcc/Common-Attributes.html#index-weakref", "", 7},
!  { "zda", "gcc/V850-Attributes.html#index-zda_002c-V850", "V850", 3},
!  { "zero_call_used_regs", "gcc/Common-Attributes.html#index-zero_005fcall_005fused_005fregs", "", 19},
  };
  
  static const struct attr_url_table {
    const attr_url_entry *m_table;
    const size_t m_table_sz;
  } attr_url_tables[] = {
!   { all_attrs, ARRAY_SIZE (all_attrs) },
  };
diff -Nrcpad gcc-15.2.0/gcc/attribs.cc gcc-16.1.0-RC-20260423/gcc/attribs.cc
*** gcc-15.2.0/gcc/attribs.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/attribs.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Functions dealing with attribute handling, used by most front ends.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 39,44 ****
--- 39,45 ----
  #include "tree-pretty-print.h"
  #include "intl.h"
  #include "gcc-urlifier.h"
+ #include "cgraph.h"
  
  /* Table of the tables of attributes (common, language, format, machine)
     searched.  */
*************** register_scoped_attribute (const struct
*** 370,376 ****
  	 ->find_slot_with_hash (&str, substring_hash (str.str, str.length),
  				INSERT);
    gcc_assert (!*slot || attr->name[0] == '*');
!   *slot = CONST_CAST (struct attribute_spec *, attr);
  }
  
  /* Return the spec for the scoped attribute with namespace NS and
--- 371,377 ----
  	 ->find_slot_with_hash (&str, substring_hash (str.str, str.length),
  				INSERT);
    gcc_assert (!*slot || attr->name[0] == '*');
!   *slot = const_cast<struct attribute_spec *> (attr);
  }
  
  /* Return the spec for the scoped attribute with namespace NS and
*************** decl_attributes (tree *node, tree attrib
*** 966,975 ****
  	  for (a = find_same_attribute (attr, old_attrs);
  	       a != NULL_TREE;
  	       a = find_same_attribute (attr, TREE_CHAIN (a)))
! 	    {
! 	      if (simple_cst_equal (TREE_VALUE (a), args) == 1)
! 		break;
! 	    }
  
  	  if (a == NULL_TREE)
  	    {
--- 967,974 ----
  	  for (a = find_same_attribute (attr, old_attrs);
  	       a != NULL_TREE;
  	       a = find_same_attribute (attr, TREE_CHAIN (a)))
! 	    if (attribute_value_equal (a, attr))
! 	      break;
  
  	  if (a == NULL_TREE)
  	    {
*************** apply_tm_attr (tree fndecl, tree attr)
*** 1076,1097 ****
     it to CHAIN.  */
  
  tree
! make_attribute (const char *name, const char *arg_name, tree chain)
  {
!   tree attr_name;
!   tree attr_arg_name;
!   tree attr_args;
!   tree attr;
! 
!   attr_name = get_identifier (name);
!   attr_arg_name = build_string (strlen (arg_name), arg_name);
!   attr_args = tree_cons (NULL_TREE, attr_arg_name, NULL_TREE);
!   attr = tree_cons (attr_name, attr_args, chain);
    return attr;
  }
  
! 
! /* Common functions used for target clone support.  */
  
  /* Comparator function to be used in qsort routine to sort attribute
     specification strings to "target".  */
--- 1075,1110 ----
     it to CHAIN.  */
  
  tree
! make_attribute (string_slice name, string_slice arg_name, tree chain)
  {
!   tree attr_name = get_identifier_with_length (name.begin (), name.size ());
!   tree attr_arg_name = build_string (arg_name.size (), arg_name.begin ());
!   tree attr_args = tree_cons (NULL_TREE, attr_arg_name, NULL_TREE);
!   tree attr = tree_cons (attr_name, attr_args, chain);
    return attr;
  }
  
! /* Default implementation of TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.
!    Used to check very basically if DECL_B is callable from DECL_A.
!    For now this checks if the version strings are the same.  */
! 
! bool
! functions_b_resolvable_from_a (tree decl_a, tree decl_b,
! 			       tree base ATTRIBUTE_UNUSED)
! {
!   const char *attr_name = TARGET_HAS_FMV_TARGET_ATTRIBUTE
! 			  ? "target"
! 			  : "target_version";
! 
!   tree attr_a = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_a));
!   tree attr_b = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_b));
! 
!   gcc_assert (attr_b);
!   if (!attr_a)
!     return false;
! 
!   return attribute_value_equal (attr_a, attr_b);
! }
  
  /* Comparator function to be used in qsort routine to sort attribute
     specification strings to "target".  */
*************** sorted_attr_string (tree arglist)
*** 1182,1252 ****
    return ret_str;
  }
  
- 
- /* This function returns true if FN1 and FN2 are versions of the same function,
-    that is, the target strings of the function decls are different.  This assumes
-    that FN1 and FN2 have the same signature.  */
- 
- bool
- common_function_versions (tree fn1, tree fn2)
- {
-   tree attr1, attr2;
-   char *target1, *target2;
-   bool result;
- 
-   if (TREE_CODE (fn1) != FUNCTION_DECL
-       || TREE_CODE (fn2) != FUNCTION_DECL)
-     return false;
- 
-   attr1 = lookup_attribute ("target", DECL_ATTRIBUTES (fn1));
-   attr2 = lookup_attribute ("target", DECL_ATTRIBUTES (fn2));
- 
-   /* At least one function decl should have the target attribute specified.  */
-   if (attr1 == NULL_TREE && attr2 == NULL_TREE)
-     return false;
- 
-   /* Diagnose missing target attribute if one of the decls is already
-      multi-versioned.  */
-   if (attr1 == NULL_TREE || attr2 == NULL_TREE)
-     {
-       if (DECL_FUNCTION_VERSIONED (fn1) || DECL_FUNCTION_VERSIONED (fn2))
- 	{
- 	  if (attr2 != NULL_TREE)
- 	    {
- 	      std::swap (fn1, fn2);
- 	      attr1 = attr2;
- 	    }
- 	  auto_diagnostic_group d;
- 	  error_at (DECL_SOURCE_LOCATION (fn2),
- 		    "missing %<target%> attribute for multi-versioned %qD",
- 		    fn2);
- 	  inform (DECL_SOURCE_LOCATION (fn1),
- 		  "previous declaration of %qD", fn1);
- 	  /* Prevent diagnosing of the same error multiple times.  */
- 	  DECL_ATTRIBUTES (fn2)
- 	    = tree_cons (get_identifier ("target"),
- 			 copy_node (TREE_VALUE (attr1)),
- 			 DECL_ATTRIBUTES (fn2));
- 	}
-       return false;
-     }
- 
-   target1 = sorted_attr_string (TREE_VALUE (attr1));
-   target2 = sorted_attr_string (TREE_VALUE (attr2));
- 
-   /* The sorted target strings must be different for fn1 and fn2
-      to be versions.  */
-   if (strcmp (target1, target2) == 0)
-     result = false;
-   else
-     result = true;
- 
-   XDELETEVEC (target1);
-   XDELETEVEC (target2);
- 
-   return result;
- }
- 
  /* Make a dispatcher declaration for the multi-versioned function DECL.
     Calls to DECL function will be replaced with calls to the dispatcher
     by the front-end.  Return the decl created.  */
--- 1195,1200 ----
*************** common_function_versions (tree fn1, tree
*** 1254,1271 ****
  tree
  make_dispatcher_decl (const tree decl)
  {
!   tree func_decl;
!   char *func_name;
!   tree fn_type, func_type;
! 
!   func_name = xstrdup (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
! 
!   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;
    DECL_CONTEXT (func_decl) = NULL_TREE;
    DECL_INITIAL (func_decl) = error_mark_node;
--- 1202,1213 ----
  tree
  make_dispatcher_decl (const tree decl)
  {
!   tree fn_type = TREE_TYPE (decl);
!   tree func_type = build_function_type (TREE_TYPE (fn_type),
! 					TYPE_ARG_TYPES (fn_type));
!   tree func_decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (decl)),
! 				  func_type);
  
    TREE_USED (func_decl) = 1;
    DECL_CONTEXT (func_decl) = NULL_TREE;
    DECL_INITIAL (func_decl) = error_mark_node;
*************** make_dispatcher_decl (const tree decl)
*** 1275,1296 ****
    DECL_EXTERNAL (func_decl) = 1;
    /* 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
!    is the default version.  This function can only be used for targets that do
!    not support the "target_version" attribute.  */
  
  bool
  is_function_default_version (const tree decl)
  {
!   if (TREE_CODE (decl) != FUNCTION_DECL
!       || !DECL_FUNCTION_VERSIONED (decl))
      return false;
!   tree attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl));
!   gcc_assert (attr);
    attr = TREE_VALUE (TREE_VALUE (attr));
    return (TREE_CODE (attr) == STRING_CST
  	  && strcmp (TREE_STRING_POINTER (attr), "default") == 0);
--- 1217,1291 ----
    DECL_EXTERNAL (func_decl) = 1;
    /* This will be of type IFUNCs have to be externally visible.  */
    TREE_PUBLIC (func_decl) = 1;
+   TREE_NOTHROW (func_decl) = TREE_NOTHROW (decl);
+ 
+   /* Set the decl name to avoid graph_node re-mangling it.  */
+   SET_DECL_ASSEMBLER_NAME (func_decl, DECL_ASSEMBLER_NAME (decl));
+ 
+   cgraph_node *node = cgraph_node::get (decl);
+   gcc_assert (node);
+   cgraph_function_version_info *node_v = node->function_version ();
+   gcc_assert (node_v);
+ 
+   /* Set flags on the cgraph_node for the new decl.  */
+   cgraph_node *func_node = cgraph_node::get_create (func_decl);
+   func_node->dispatcher_function = true;
+   /* For targets with TARGET_HAS_FMV_TARGET_ATTRIBUTE, the resolver is created
+      unconditionally if any versioned nodes are present.
+      For !TARGET_HAS_FMV_TARGET_ATTRIBUTE, the dispatcher is only defined when
+      the default node is defined.  */
+   func_node->definition = node->definition || TARGET_HAS_FMV_TARGET_ATTRIBUTE;
+ 
+   cgraph_function_version_info *func_v
+     = func_node->insert_new_function_version ();
+   func_v->next = node_v;
+   func_v->assembler_name = node_v->assembler_name;
+ 
+   /* If the default node is from a target_clone, mark the dispatcher as from
+      target_clone.  */
+   func_node->is_target_clone = node->is_target_clone;
+ 
+   /* Get the assembler name by mangling with the base assembler name.  */
+   tree id = targetm.mangle_decl_assembler_name
+     (func_decl, func_v->assembler_name);
+   symtab->change_decl_assembler_name (func_decl, id);
  
    return func_decl;
  }
  
! /* Returns true if DECL a multiversioned default.
!    With the target attribute semantics, returns true if the function is marked
!    as default with the target version.
!    With the target_version attribute semantics, returns true if the function
!    is either not annotated, annotated as default, or is a target_clone
!    containing the default declaration.  */
  
  bool
  is_function_default_version (const tree decl)
  {
!   tree attr;
!   if (TREE_CODE (decl) != FUNCTION_DECL)
      return false;
!   if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
!     {
!       if (!DECL_FUNCTION_VERSIONED (decl))
! 	return false;
!       attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl));
!       gcc_assert (attr);
!     }
!   else
!     {
!       if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl)))
! 	{
! 	  int num_defaults = 0;
! 	  get_clone_versions (decl, &num_defaults);
! 	  return num_defaults > 0;
! 	}
! 
!       attr = lookup_attribute ("target_version", DECL_ATTRIBUTES (decl));
!       if (!attr)
! 	return true;
!     }
    attr = TREE_VALUE (TREE_VALUE (attr));
    return (TREE_CODE (attr) == STRING_CST
  	  && strcmp (TREE_STRING_POINTER (attr), "default") == 0);
*************** attribute_value_equal (const_tree attr1,
*** 1467,1472 ****
--- 1462,1471 ----
        && TREE_VALUE (attr2) != NULL_TREE
        && TREE_CODE (TREE_VALUE (attr2)) == TREE_LIST)
      {
+       if (ATTR_UNIQUE_VALUE_P (TREE_VALUE (attr1))
+ 	  || ATTR_UNIQUE_VALUE_P (TREE_VALUE (attr2)))
+ 	return false;
+ 
        /* Handle attribute format.  */
        if (is_attribute_p ("format", get_attribute_name (attr1)))
  	{
*************** comp_type_attributes (const_tree type1,
*** 1514,1520 ****
        if (!as || as->affects_type_identity == false)
  	continue;
  
!       attr = find_same_attribute (a, CONST_CAST_TREE (a2));
        if (!attr || !attribute_value_equal (a, attr))
  	break;
      }
--- 1513,1519 ----
        if (!as || as->affects_type_identity == false)
  	continue;
  
!       attr = find_same_attribute (a, const_cast<tree> (a2));
        if (!attr || !attribute_value_equal (a, attr))
  	break;
      }
*************** comp_type_attributes (const_tree type1,
*** 1528,1534 ****
  	  if (!as || as->affects_type_identity == false)
  	    continue;
  
! 	  if (!find_same_attribute (a, CONST_CAST_TREE (a1)))
  	    break;
  	  /* We don't need to compare trees again, as we did this
  	     already in first loop.  */
--- 1527,1533 ----
  	  if (!as || as->affects_type_identity == false)
  	    continue;
  
! 	  if (!find_same_attribute (a, const_cast<tree> (a1)))
  	    break;
  	  /* We don't need to compare trees again, as we did this
  	     already in first loop.  */
*************** comp_type_attributes (const_tree type1,
*** 1538,1550 ****
        if (!a)
  	return 1;
      }
!   if (lookup_attribute ("transaction_safe", CONST_CAST_TREE (a)))
      return 0;
    if ((lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type1)) != NULL)
        ^ (lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type2)) != NULL))
      return 0;
!   int strub_ret = strub_comptypes (CONST_CAST_TREE (type1),
! 				   CONST_CAST_TREE (type2));
    if (strub_ret == 0)
      return strub_ret;
    /* As some type combinations - like default calling-convention - might
--- 1537,1549 ----
        if (!a)
  	return 1;
      }
!   if (lookup_attribute ("transaction_safe", const_cast<tree> (a)))
      return 0;
    if ((lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type1)) != NULL)
        ^ (lookup_attribute ("nocf_check", TYPE_ATTRIBUTES (type2)) != NULL))
      return 0;
!   int strub_ret = strub_comptypes (const_cast<tree> (type1),
! 				   const_cast<tree> (type2));
    if (strub_ret == 0)
      return strub_ret;
    /* As some type combinations - like default calling-convention - might
*************** merge_attributes (tree a1, tree a2)
*** 1748,1758 ****
  	attributes = a2;
        else
  	{
! 	  /* Pick the longest list, and hang on the other list.  */
  
! 	  if (list_length (a1) < list_length (a2))
! 	    attributes = a2, a2 = a1;
  
  	  for (; a2 != 0; a2 = TREE_CHAIN (a2))
  	    {
  	      tree a;
--- 1747,1780 ----
  	attributes = a2;
        else
  	{
! 	  /* Pick the longest list, and hang on the other list,
! 	     unless both lists contain ATTR_UNIQUE_VALUE_P values.
! 	     In that case a1 list needs to go after the a2 list
! 	     because attributes from a single declaration are stored
! 	     in reverse order of their declarations.  */
! 	  bool a1_unique_value_p = false, a2_unique_value_p = false;
! 	  tree aa1 = a1, aa2 = a2;
! 	  for (; aa1 && aa2; aa1 = TREE_CHAIN (aa1), aa2 = TREE_CHAIN (aa2))
! 	    {
! 	      if (!a1_unique_value_p
! 		  && TREE_VALUE (aa1)
! 		  && TREE_CODE (TREE_VALUE (aa1)) == TREE_LIST
! 		  && ATTR_UNIQUE_VALUE_P (TREE_VALUE (aa1)))
! 		a1_unique_value_p = true;
! 	      if (!a2_unique_value_p
! 		  && TREE_VALUE (aa2)
! 		  && TREE_CODE (TREE_VALUE (aa2)) == TREE_LIST
! 		  && ATTR_UNIQUE_VALUE_P (TREE_VALUE (aa2)))
! 		a2_unique_value_p = true;
! 	    }
  
! 	  if (aa2 && (!a1_unique_value_p || !a2_unique_value_p))
! 	    {
! 	      attributes = a2;
! 	      a2 = a1;
! 	    }
  
+ 	  tree a3 = NULL_TREE, *pa = &a3;
  	  for (; a2 != 0; a2 = TREE_CHAIN (a2))
  	    {
  	      tree a;
*************** merge_attributes (tree a1, tree a2)
*** 1765,1774 ****
  	      if (a == NULL_TREE)
  		{
  		  a1 = copy_node (a2);
! 		  TREE_CHAIN (a1) = attributes;
! 		  attributes = a1;
  		}
  	    }
  	}
      }
    return attributes;
--- 1787,1801 ----
  	      if (a == NULL_TREE)
  		{
  		  a1 = copy_node (a2);
! 		  *pa = a1;
! 		  pa = &TREE_CHAIN (a1);
  		}
  	    }
+ 	  if (a3)
+ 	    {
+ 	      *pa = attributes;
+ 	      attributes = a3;
+ 	    }
  	}
      }
    return attributes;
*************** handle_dll_attribute (tree * pnode, tree
*** 1984,1993 ****
  	{
  	  if (DECL_INITIAL (node))
  	    {
! 	      error ("variable %q+D definition is marked dllimport",
! 		     node);
  	      *no_add_attrs = true;
  	    }
  
  	  /* `extern' needn't be specified with dllimport.
  	     Specify `extern' now and hope for the best.  Sigh.  */
--- 2011,2026 ----
  	{
  	  if (DECL_INITIAL (node))
  	    {
! 	      error ("variable %q+D definition is marked dllimport", node);
  	      *no_add_attrs = true;
  	    }
+ #if TARGET_WIN32_TLS
+ 	  else if (DECL_THREAD_LOCAL_P (node))
+ 	    {
+ 	      error ("thread-local variable %q+D declared as dllimport", node);
+ 	      *no_add_attrs = true;
+ 	    }
+ #endif
  
  	  /* `extern' needn't be specified with dllimport.
  	     Specify `extern' now and hope for the best.  Sigh.  */
*************** handle_dll_attribute (tree * pnode, tree
*** 2011,2016 ****
--- 2044,2056 ----
  	   && flag_keep_inline_dllexport)
      /* An exported function, even if inline, must be emitted.  */
      DECL_EXTERNAL (node) = 0;
+ #if TARGET_WIN32_TLS
+   else if (VAR_P (node) && DECL_THREAD_LOCAL_P (node))
+     {
+       error ("thread-local variable %q+D declared as dllexport", node);
+       *no_add_attrs = true;
+     }
+ #endif
  
    /*  Report error if symbol is not accessible at global scope.  */
    if (!TREE_PUBLIC (node) && VAR_OR_FUNCTION_DECL_P (node))
*************** attribute_list_contained (const_tree l1,
*** 2090,2096 ****
  	 modify its argument and the return value is assigned to a
  	 const_tree.  */
        for (attr = lookup_ident_attribute (get_attribute_name (t2),
! 					  CONST_CAST_TREE (l1));
  	   attr != NULL_TREE && !attribute_value_equal (t2, attr);
  	   attr = lookup_ident_attribute (get_attribute_name (t2),
  					  TREE_CHAIN (attr)))
--- 2130,2136 ----
  	 modify its argument and the return value is assigned to a
  	 const_tree.  */
        for (attr = lookup_ident_attribute (get_attribute_name (t2),
! 					  const_cast<tree> (l1));
  	   attr != NULL_TREE && !attribute_value_equal (t2, attr);
  	   attr = lookup_ident_attribute (get_attribute_name (t2),
  					  TREE_CHAIN (attr)))
*************** attr_access::array_as_string (tree type)
*** 2669,2675 ****
  	     [*] is represented the same as [0] this hack only works for
  	     the most significant bound like static and the others are
  	     rendered as [0].  */
! 	  arat = build_tree_list (get_identifier ("array"), flag);
  	}
  
        const int quals = TYPE_QUALS (type);
--- 2709,2715 ----
  	     [*] is represented the same as [0] this hack only works for
  	     the most significant bound like static and the others are
  	     rendered as [0].  */
! 	  arat = build_tree_list (get_identifier ("array "), flag);
  	}
  
        const int quals = TYPE_QUALS (type);
diff -Nrcpad gcc-15.2.0/gcc/attribs.h gcc-16.1.0-RC-20260423/gcc/attribs.h
*** gcc-15.2.0/gcc/attribs.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/attribs.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations and definitions dealing with attribute handling.
!    Copyright (C) 2013-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern bool cxx11_attribute_p (const_tre
*** 45,51 ****
  extern tree get_attribute_name (const_tree);
  extern tree get_attribute_namespace (const_tree);
  extern void apply_tm_attr (tree, tree);
! extern tree make_attribute (const char *, const char *, tree);
  extern bool attribute_ignored_p (tree);
  extern bool attribute_ignored_p (const attribute_spec *const);
  extern bool any_nonignored_attribute_p (tree);
--- 45,51 ----
  extern tree get_attribute_name (const_tree);
  extern tree get_attribute_namespace (const_tree);
  extern void apply_tm_attr (tree, tree);
! extern tree make_attribute (string_slice, string_slice, tree);
  extern bool attribute_ignored_p (tree);
  extern bool attribute_ignored_p (const attribute_spec *const);
  extern bool any_nonignored_attribute_p (tree);
*************** extern struct scoped_attributes *
*** 54,62 ****
    register_scoped_attributes (const scoped_attribute_specs &, bool = false);
  
  extern char *sorted_attr_string (tree);
- extern bool common_function_versions (tree, tree);
  extern tree make_dispatcher_decl (const tree);
  extern bool is_function_default_version (const tree);
  extern void handle_ignored_attributes_option (vec<char *> *);
  
  /* Return a type like TTYPE except that its TYPE_ATTRIBUTES
--- 54,62 ----
    register_scoped_attributes (const scoped_attribute_specs &, bool = false);
  
  extern char *sorted_attr_string (tree);
  extern tree make_dispatcher_decl (const tree);
  extern bool is_function_default_version (const tree);
+ extern bool functions_b_resolvable_from_a (tree, tree, tree);
  extern void handle_ignored_attributes_option (vec<char *> *);
  
  /* Return a type like TTYPE except that its TYPE_ATTRIBUTES
diff -Nrcpad gcc-15.2.0/gcc/auto-inc-dec.cc gcc-16.1.0-RC-20260423/gcc/auto-inc-dec.cc
*** gcc-15.2.0/gcc/auto-inc-dec.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/auto-inc-dec.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Discovery of auto-inc and auto-dec instructions.
!    Copyright (C) 2006-2026 Free Software Foundation, Inc.
     Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>
  
  This file is part of GCC.
*************** attempt_change (rtx new_addr, rtx inc_re
*** 493,500 ****
      {
        start_sequence ();
        emit_move_insn (inc_insn.reg_res, inc_insn.reg0);
!       mov_insn = get_insns ();
!       end_sequence ();
        new_cost += seq_cost (mov_insn, speed);
      }
  
--- 493,499 ----
      {
        start_sequence ();
        emit_move_insn (inc_insn.reg_res, inc_insn.reg0);
!       mov_insn = end_sequence ();
        new_cost += seq_cost (mov_insn, speed);
      }
  
diff -Nrcpad gcc-15.2.0/gcc/auto-obstack.h gcc-16.1.0-RC-20260423/gcc/auto-obstack.h
*** gcc-15.2.0/gcc/auto-obstack.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/auto-obstack.h	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,58 ----
+ /* RAII wrapper around obstack.
+    Copyright (C) 2024-2026 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_AUTO_OBSTACK_H
+ #define GCC_AUTO_OBSTACK_H
+ 
+ /* RAII wrapper around obstack.  */
+ 
+ struct auto_obstack
+ {
+   auto_obstack ()
+   {
+     obstack_init (&m_obstack);
+   }
+ 
+   ~auto_obstack ()
+   {
+     obstack_free (&m_obstack, NULL);
+   }
+ 
+   operator obstack & () { return m_obstack; }
+ 
+   void grow (const void *src, size_t length)
+   {
+     obstack_grow (&m_obstack, src, length);
+   }
+ 
+   void *object_base () const
+   {
+     return m_obstack.object_base;
+   }
+ 
+   size_t object_size () const
+   {
+     return obstack_object_size (&m_obstack);
+   }
+ 
+   obstack m_obstack;
+ };
+ 
+ #endif /* GCC_AUTO_OBSTACK_H */
diff -Nrcpad gcc-15.2.0/gcc/auto-profile.cc gcc-16.1.0-RC-20260423/gcc/auto-profile.cc
*** gcc-15.2.0/gcc/auto-profile.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/auto-profile.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Read and annotate call graph profile from the auto profile data file.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,42 ----
  #include "diagnostic-core.h"
  #include "profile.h"
  #include "langhooks.h"
+ #include "context.h"
+ #include "pass_manager.h"
  #include "cfgloop.h"
  #include "tree-cfg.h"
  #include "tree-cfgcleanup.h"
*************** along with GCC; see the file COPYING3.
*** 51,65 ****
  #include "auto-profile.h"
  #include "tree-pretty-print.h"
  #include "gimple-pretty-print.h"
  
! /* The following routines implements AutoFDO optimization.
  
     This optimization uses sampling profiles to annotate basic block counts
     and uses heuristics to estimate branch probabilities.
  
     There are three phases in AutoFDO:
  
!    Phase 1: Read profile from the profile data file.
       The following info is read from the profile datafile:
          * string_table: a map between function name and its index.
          * autofdo_source_profile: a map from function_instance name to
--- 53,69 ----
  #include "auto-profile.h"
  #include "tree-pretty-print.h"
  #include "gimple-pretty-print.h"
+ #include "output.h"
  
! /* The following routines implement AutoFDO optimization.
  
     This optimization uses sampling profiles to annotate basic block counts
     and uses heuristics to estimate branch probabilities.
  
     There are three phases in AutoFDO:
  
!    Phase 1: At startup.
!      Read profile from the profile data file.
       The following info is read from the profile datafile:
          * string_table: a map between function name and its index.
          * autofdo_source_profile: a map from function_instance name to
*************** along with GCC; see the file COPYING3.
*** 74,103 ****
       standalone symbol, or a clone of a function that is inlined into another
       function.
  
!    Phase 2: Early inline + value profile transformation.
!      Early inline uses autofdo_source_profile to find if a callsite is:
          * inlined in the profiled binary.
          * callee body is hot in the profiling run.
       If both condition satisfies, early inline will inline the callsite
       regardless of the code growth.
-      Phase 2 is an iterative process. During each iteration, we also check
-      if an indirect callsite is promoted and inlined in the profiling run.
-      If yes, vpt will happen to force promote it and in the next iteration,
-      einline will inline the promoted callsite in the next iteration.
  
!    Phase 3: Annotate control flow graph.
!      AutoFDO uses a separate pass to:
          * Annotate basic block count
          * Estimate branch probability
  
!    After the above 3 phases, all profile is readily annotated on the GCC IR.
     AutoFDO tries to reuse all FDO infrastructure as much as possible to make
     use of the profile. E.g. it uses existing mechanism to calculate the basic
     block/edge frequency, as well as the cgraph node/edge count.
  */
  
  #define DEFAULT_AUTO_PROFILE_FILE "fbdata.afdo"
! #define AUTO_PROFILE_VERSION 2
  
  namespace autofdo
  {
--- 78,157 ----
       standalone symbol, or a clone of a function that is inlined into another
       function.
  
!    Phase 2: In afdo_offline pass.
!      Remove function instances from other translation units
!      and offline all cross-translation unit inlining done during train
!      run compilation.  This is necessary to not lose profiles with
!      LTO train run.
! 
!    Phase 3: During early optimization.
!      AFDO inline + value profile transformation.
!      This happens during early optimization.
!      During early inlining AFDO inliner is executed which
!      uses autofdo_source_profile to find if a callsite is:
          * inlined in the profiled binary.
          * callee body is hot in the profiling run.
       If both condition satisfies, early inline will inline the callsite
       regardless of the code growth.
  
!      Performing this early has benefit of doing early optimizations
!      before read IPA passes and getting more "context sensitivity" of
!      the profile read.  Profile of inlined functions may differ
!      significantly from one inline instance to another and from the
!      offline version.
! 
!      This is controlled by -fauto-profile-inlining and is independent
!      of -fearly-inlining.
! 
!    Phase 4: In AFDO pass.
!      Offline all functions that has been inlined in the
!      train run but were not inlined in early inlining nor AFDO
!      inline.
! 
!    Phase 5: In AFDO pass.
!      Annotate control flow graph.
          * Annotate basic block count
          * Estimate branch probability
+ 	* Use earlier static profile to fill in the gaps
+ 	  if AFDO profile is ambiguous
  
!    After the above 5 phases, all profile is readily annotated on the GCC IR.
     AutoFDO tries to reuse all FDO infrastructure as much as possible to make
     use of the profile. E.g. it uses existing mechanism to calculate the basic
     block/edge frequency, as well as the cgraph node/edge count.
  */
  
  #define DEFAULT_AUTO_PROFILE_FILE "fbdata.afdo"
! 
! /* profile counts determined by AFDO smaller than afdo_hot_bb_threshold are
!    considered cols.  */
! gcov_type afdo_hot_bb_threshold = -1;
! 
! /* Return true if COUNT is possibly hot.  */
! bool
! maybe_hot_afdo_count_p (profile_count count)
! {
!   gcc_checking_assert (count.ipa ().initialized_p ());
!   return count.ipa ().to_gcov_type () >= afdo_hot_bb_threshold;
! }
! 
! /* Return true if location of STMT may be expressed by debug info.  */
! 
! static bool
! stmt_loc_used_by_debug_info (gimple *stmt)
! {
!   /* Only inline_entry and gimple_bind's locations
!      are not output into debug output.  */
!   if (is_gimple_debug (stmt))
!     return gimple_debug_begin_stmt_p (stmt);
!   if (gimple_code (stmt) == GIMPLE_LABEL
!       || gimple_code (stmt) == GIMPLE_NOP
!       || gimple_code (stmt) == GIMPLE_PREDICT)
!     return false;
!   if (gimple_clobber_p (stmt))
!     return false;
!   return true;
! }
  
  namespace autofdo
  {
*************** private:
*** 120,132 ****
  };
  
  /* Represent a source location: (function_decl, lineno).  */
! typedef std::pair<tree, unsigned> decl_lineno;
  
  /* Represent an inline stack. vector[0] is the leaf node.  */
! typedef auto_vec<decl_lineno> inline_stack;
  
  /* String array that stores function names.  */
! typedef auto_vec<char *> string_vector;
  
  /* Map from function name's index in string_table to target's
     execution count.  */
--- 174,193 ----
  };
  
  /* Represent a source location: (function_decl, lineno).  */
! struct decl_lineno
! {
!   tree decl;
!   /* Relative locations stored in auto-profile.  */
!   unsigned int afdo_loc;
!   /* Actual location afdo_loc was computed from used to output diagnostics.  */
!   location_t location;
! };
  
  /* Represent an inline stack. vector[0] is the leaf node.  */
! typedef auto_vec<decl_lineno, 20> inline_stack;
  
  /* String array that stores function names.  */
! typedef auto_vec<const char *> string_vector;
  
  /* Map from function name's index in string_table to target's
     execution count.  */
*************** typedef std::map<unsigned, gcov_type> ic
*** 136,141 ****
--- 197,206 ----
     to direct call.  */
  typedef std::set<gimple *> stmt_set;
  
+ /* Set and map used to translate name indexes.  */
+ typedef hash_set<int_hash <int, -1, -2>> name_index_set;
+ typedef hash_map<int_hash <int, -1, -2>, int> name_index_map;
+ 
  /* Represent count info of an inline stack.  */
  class count_info
  {
*************** public:
*** 151,157 ****
       Each inline stack should only be used to annotate IR once.
       This will be enforced when instruction-level discriminator
       is supported.  */
-   bool annotated;
  };
  
  /* operator< for "const char *".  */
--- 216,221 ----
*************** struct string_compare
*** 163,172 ****
--- 227,277 ----
    }
  };
  
+ /* Store the summary information for the profile.  */
+ struct summary_info
+ {
+   /* There are currently 16 hard-coded percentiles in the GCOV format.  */
+   static constexpr unsigned NUM_PERCENTILES = 16;
+ 
+   /* The detailed summary is a histogram-based calculation of the minimum
+      execution count required to belong to a certain set of percentile of
+      counts.  */
+   struct detailed_summary
+   {
+     /* The percentile that this represents (multiplied by 1,000,000).  */
+     uint32_t cutoff;
+     /* The minimum execution count required to belong to this percentile.  */
+     uint64_t min_count;
+     /* The number of samples which belong to this percentile.  */
+     uint64_t num_counts;
+   };
+ 
+   /* The sum of execution counts of all samples.  */
+   uint64_t total_count;
+   /* The maximum individual count.  */
+   uint64_t max_count;
+   /* The maximum head count across all functions.  */
+   uint64_t max_function_count;
+   /* The number of lines that have samples.  */
+   uint64_t num_counts;
+   /* The number of functions that have samples.  */
+   uint64_t num_functions;
+   /* The percentile threshold information.  */
+   detailed_summary detailed_summaries[NUM_PERCENTILES];
+ 
+   /* Read profile.  Return TRUE on success.  */
+   bool read ();
+ 
+   /* Get the minimum count required for percentile CUTOFF.  */
+   uint64_t get_threshold_count (uint32_t cutoff);
+ };
+ 
  /* Store a string array, indexed by string position in the array.  */
  class string_table
  {
  public:
+   static const int unknown_filename = -1;
+ 
    string_table ()
    {}
  
*************** public:
*** 178,193 ****
    /* For a given decl, returns the index of the decl name.  */
    int get_index_by_decl (tree decl) const;
  
!   /* For a given index, returns the string.  */
!   const char *get_name (int index) const;
  
    /* Read profile, return TRUE on success.  */
    bool read ();
  
  private:
    typedef std::map<const char *, unsigned, string_compare> string_index_map;
!   string_vector vector_;
!   string_index_map map_;
  };
  
  /* Profile of a function instance:
--- 283,374 ----
    /* For a given decl, returns the index of the decl name.  */
    int get_index_by_decl (tree decl) const;
  
!   /* For a given index, returns the symbol name.  */
!   const char *get_symbol_name (int index) const;
! 
!   /* For a given index, returns the filename.  */
!   const char *get_filename (int index) const;
! 
!   /* For a given symbol name index, returns the filename index.  */
!   int get_filename_by_symbol (int index) const;
! 
!   /* For a given function name, returns the filename index.  */
!   int get_filename_by_symbol (const char *name) const;
! 
!   /* For a given filename, returns the index.  */
!   int get_filename_index (const char *name) const;
! 
!   /* Get the original name and file name index for a node.  This will return the
!      name from the current TU if there are multiple symbols that map to
!      NAME.  */
!   std::pair<const char *, int> get_original_name (const char *name) const;
  
    /* Read profile, return TRUE on success.  */
    bool read ();
  
+   /* Return number of entries.  */
+   size_t num_entries () { return symbol_names_.length (); }
+ 
+   /* Add new symbol name STRING (with an associated file name FILENAME_IDX) and
+      return its index.  */
+   int add_symbol_name (const char *string, int filename_idx);
+ 
+   /* Add new filename and return its index (returning the same if it already
+      exists).  */
+   int add_filename (const char *name);
+ 
+   /* Return cgraph node corresponding to given name index.  */
+   cgraph_node *get_cgraph_node (int);
+ 
+   const string_vector& filenames () { return filenames_; }
  private:
    typedef std::map<const char *, unsigned, string_compare> string_index_map;
!   typedef std::map<const char *, auto_vec<unsigned>, string_compare>
!     clashing_name_map;
!   typedef std::map<const char *, char *, string_compare> string_string_map;
! 
!   string_vector symbol_names_;
!   string_vector filenames_;
! 
!   string_index_map symbol_name_map_;
!   string_index_map filename_map_;
!   string_index_map symbol_to_filename_map_;
! 
!   string_string_map original_names_map_;
!   clashing_name_map clashing_names_map_;
! };
! 
! /* Descriptor for a function_instance which can be used to disambiguate it from
!    other instances.  This consists of the symbol name and the file name indices
!    from string_table.  */
! 
! class function_instance_descriptor
! {
!   /* The string_table index for the file name.  */
!   unsigned file_name_;
!   /* The string_table index for the function name.  */
!   unsigned symbol_name_;
! 
! public:
!   unsigned file_name () const { return file_name_; }
!   unsigned symbol_name () const { return symbol_name_; }
! 
!   function_instance_descriptor (unsigned file_name, unsigned symbol_name)
!     : file_name_ (file_name), symbol_name_ (symbol_name)
!   {}
! 
!   function_instance_descriptor (int file_name, int symbol_name)
!     : file_name_ (file_name), symbol_name_ (symbol_name)
!   {}
! 
!   void set_symbol_name (unsigned new_name) { symbol_name_ = new_name; }
! 
!   bool operator< (const function_instance_descriptor &other) const
!   {
!     return file_name_ < other.file_name_
! 	   || (file_name_ == other.file_name_
! 	       && symbol_name_ < other.symbol_name_);
!   }
  };
  
  /* Profile of a function instance:
*************** private:
*** 197,202 ****
--- 378,384 ----
          instead of the inlined copy).
       3. map from source location (decl_lineno) to profile (count_info).
       4. map from callsite to callee function_instance.  */
+ 
  class function_instance
  {
  public:
*************** public:
*** 206,253 ****
       HEAD_COUNT. Recursively read callsites to create nested function_instances
       too. STACK is used to track the recursive creation process.  */
    static function_instance *
!   read_function_instance (function_instance_stack *stack,
!                           gcov_type head_count);
  
    /* Recursively deallocate all callsites (nested function_instances).  */
    ~function_instance ();
  
    /* Accessors.  */
!   int
!   name () const
!   {
!     return name_;
!   }
    gcov_type
    total_count () const
    {
      return total_count_;
    }
    gcov_type
    head_count () const
    {
      return head_count_;
    }
  
    /* Traverse callsites of the current function_instance to find one at the
!      location of LINENO and callee name represented in DECL.  */
    function_instance *get_function_instance_by_decl (unsigned lineno,
!                                                     tree decl) const;
  
    /* Store the profile info for LOC in INFO. Return TRUE if profile info
       is found.  */
    bool get_count_info (location_t loc, count_info *info) const;
  
!   /* Read the inlined indirect call target profile for STMT and store it in
!      MAP, return the total count for all inlined indirect calls.  */
!   gcov_type find_icall_target_map (gcall *stmt, icall_target_map *map) const;
  
!   /* Sum of counts that is used during annotation.  */
!   gcov_type total_annotated_count () const;
  
    /* Mark LOC as annotated.  */
    void mark_annotated (location_t loc);
  
  private:
    /* Callsite, represented as (decl_lineno, callee_function_name_index).  */
    typedef std::pair<unsigned, unsigned> callsite;
--- 388,582 ----
       HEAD_COUNT. Recursively read callsites to create nested function_instances
       too. STACK is used to track the recursive creation process.  */
    static function_instance *
!   read_function_instance (function_instance_stack *stack, bool toplevel = true);
  
    /* Recursively deallocate all callsites (nested function_instances).  */
    ~function_instance ();
  
    /* Accessors.  */
!   int symbol_name () const { return descriptor_.symbol_name (); }
!   int file_name () const { return descriptor_.file_name (); }
!   void set_symbol_name (int index) { descriptor_.set_symbol_name (index); }
!   function_instance_descriptor get_descriptor () const { return descriptor_; }
! 
    gcov_type
    total_count () const
    {
      return total_count_;
    }
+ 
+   /* Return head count or -1 if unknown.  */
    gcov_type
    head_count () const
    {
      return head_count_;
    }
  
+   gcov_type
+   timestamp () const
+   {
+     return timestamp_;
+   }
+ 
+   void set_timestamp (gcov_type timestamp) { timestamp_ = timestamp; }
+ 
+   /* Propagate timestamp from top-level function_instance to
+      inlined instances.  */
+   void prop_timestamp ();
+ 
    /* Traverse callsites of the current function_instance to find one at the
!      location of LINENO and callee name represented in DECL.
!      LOCATION should match LINENO and is used to output diagnostics.  */
    function_instance *get_function_instance_by_decl (unsigned lineno,
! 						    tree decl,
! 						    location_t location) const;
! 
!   /* Merge profile of clones.  Note that cloning hasn't been performed when
!      we annotate the CFG (at this stage).  */
!   void merge (function_instance *other,
! 	      vec <function_instance *> &new_functions);
! 
!   /* Look for inline instances that was not realized and
!      remove them while possibly merging them to offline variants.  */
!   void offline_if_not_realized (vec <function_instance *> &new_functions);
! 
!   /* Match function instance with gimple body.  */
!   bool match (cgraph_node *node, vec <function_instance *> &new_functions,
! 	      name_index_map &to_symbol_name);
! 
!   /* Offline all inlined functions with name in SEEN.
!      If new toplevel functions are created, add them to NEW_FUNCTIONS.  */
!   void offline_if_in_set (name_index_set &seen,
! 			  vec <function_instance *> &new_functions);
! 
!   /* Walk inlined functions and if their name is not in SEEN
!      remove it.  */
! 
!   void remove_external_functions (name_index_set &seen,
! 				  name_index_map &to_symbol_name,
! 				  vec <function_instance *> &new_functions);
  
    /* Store the profile info for LOC in INFO. Return TRUE if profile info
       is found.  */
    bool get_count_info (location_t loc, count_info *info) const;
  
!   /* Read the inlined indirect call target profile for STMT in FN and store it
!      in MAP, return the total count for all inlined indirect calls.  */
!   gcov_type find_icall_target_map (tree fn, gcall *stmt,
! 				   icall_target_map *map) const;
  
!   /* Remove inlined indirect call target profile for STMT in FN.  */
!   void remove_icall_target (tree fn, gcall *stmt);
  
    /* Mark LOC as annotated.  */
    void mark_annotated (location_t loc);
  
+   void dump (FILE *f, int indent = 0, bool nested = false) const;
+ 
+   void dump_inline_stack (FILE *f) const;
+ 
+   DEBUG_FUNCTION void debug () const;
+ 
+   /* Mark function as removed from indir target list.  */
+   void
+   remove_icall_target ()
+   {
+     removed_icall_target_ = true;
+   }
+ 
+   /* Return true if function is removed from indir target list.  */
+   bool
+   removed_icall_target ()
+   {
+     return removed_icall_target_;
+   }
+ 
+   /* Set inlined_to pointer.  */
+   void
+   set_inlined_to (function_instance *inlined_to)
+   {
+     gcc_checking_assert (inlined_to != this);
+     inlined_to_ = inlined_to;
+   }
+ 
+   /* Return pointer to the function instance this function is inlined
+      to or NULL if it is outer instance.  */
+   function_instance *
+   inlined_to () const
+   {
+     return inlined_to_;
+   }
+ 
+   /* Mark function as realized.  */
+   void
+   set_realized ()
+   {
+     realized_ = true;
+   }
+ 
+   /* Return true if function is realized.  */
+   bool
+   realized_p ()
+   {
+     return realized_;
+   }
+ 
+   /* Mark function as in_worklist.  */
+   void
+   set_in_worklist ()
+   {
+     gcc_checking_assert (!inlined_to_ && !in_worklist_p ());
+     in_worklist_ = true;
+   }
+ 
+   void
+   clear_in_worklist ()
+   {
+     gcc_checking_assert (!inlined_to_ && in_worklist_p ());
+     in_worklist_ = false;
+   }
+ 
+ 
+   /* Return true if function is in_worklist.  */
+   bool
+   in_worklist_p ()
+   {
+     return in_worklist_;
+   }
+ 
+   /* Return corresponding cgraph node.  */
+   cgraph_node *get_cgraph_node ();
+ 
+   void
+   set_location (location_t l)
+   {
+     gcc_checking_assert (location_ == UNKNOWN_LOCATION);
+     location_= l;
+   }
+ 
+   location_t
+   get_location ()
+   {
+     return location_;
+   }
+ 
+   void
+   set_call_location (location_t l)
+   {
+     gcc_checking_assert (call_location_ == UNKNOWN_LOCATION
+ 			 && l != UNKNOWN_LOCATION);
+     call_location_= l;
+   }
+ 
+   location_t
+   get_call_location ()
+   {
+     return call_location_;
+   }
+ 
+   /* Lookup count and warn about duplicates.  */
+   count_info *lookup_count (location_t loc, inline_stack &stack,
+ 			    cgraph_node *node);
  private:
    /* Callsite, represented as (decl_lineno, callee_function_name_index).  */
    typedef std::pair<unsigned, unsigned> callsite;
*************** private:
*** 255,270 ****
    /* Map from callsite to callee function_instance.  */
    typedef std::map<callsite, function_instance *> callsite_map;
  
!   function_instance (unsigned name, gcov_type head_count)
!       : name_ (name), total_count_ (0), head_count_ (head_count)
    {
    }
  
    /* Map from source location (decl_lineno) to profile (count_info).  */
    typedef std::map<unsigned, count_info> position_count_map;
  
!   /* function_instance name index in the string_table.  */
!   unsigned name_;
  
    /* Total sample count.  */
    gcov_type total_count_;
--- 584,604 ----
    /* Map from callsite to callee function_instance.  */
    typedef std::map<callsite, function_instance *> callsite_map;
  
!   function_instance (unsigned symbol_name, unsigned file_name,
! 		     gcov_type head_count)
!     : descriptor_ (file_name, symbol_name), total_count_ (0),
!       head_count_ (head_count), timestamp_ (0),
!       removed_icall_target_ (false), realized_ (false), in_worklist_ (false),
!       inlined_to_ (NULL), location_ (UNKNOWN_LOCATION),
!       call_location_ (UNKNOWN_LOCATION)
    {
    }
  
    /* Map from source location (decl_lineno) to profile (count_info).  */
    typedef std::map<unsigned, count_info> position_count_map;
  
!   /* The indices into the string table identifying the function_instance.  */
!   function_instance_descriptor descriptor_;
  
    /* Total sample count.  */
    gcov_type total_count_;
*************** private:
*** 272,282 ****
--- 606,645 ----
    /* Entry BB's sample count.  */
    gcov_type head_count_;
  
+   /* perf timestamp associated with first execution of function, which is
+      used to compute node->tp_first_run.  */
+   gcov_type timestamp_;
+ 
    /* Map from callsite location to callee function_instance.  */
    callsite_map callsites;
  
    /* Map from source location to count_info.  */
    position_count_map pos_counts;
+ 
+   /* True if function was removed from indir target list.  */
+   bool removed_icall_target_;
+ 
+   /* True if function exists in IL.  I.e. for toplevel instance we
+      have corresponding symbol and for inline instance we inlined
+      to it.  */
+   bool realized_;
+ 
+   /* True if function is in worklist for merging/offlining.  */
+   bool in_worklist_;
+ 
+   /* Pointer to outer function instance or NULL if this
+      is a toplevel one.  */
+   function_instance *inlined_to_;
+ 
+   /* Location of function and its call (in case it is inlined).  */
+   location_t location_, call_location_;
+ 
+   /* Turn inline instance to offline.  */
+   static bool offline (function_instance *fn,
+ 		       vec <function_instance *> &new_functions);
+ 
+   /* Helper routine for prop_timestamp.  */
+   void prop_timestamp_1 (gcov_type timestamp);
  };
  
  /* Profile for all functions.  */
*************** public:
*** 297,322 ****
    ~autofdo_source_profile ();
  
    /* For a given DECL, returns the top-level function_instance.  */
!   function_instance *get_function_instance_by_decl (tree decl) const;
  
    /* Find count_info for a given gimple STMT. If found, store the count_info
!      in INFO and return true; otherwise return false.  */
!   bool get_count_info (gimple *stmt, count_info *info) const;
  
    /* Find total count of the callee of EDGE.  */
    gcov_type get_callsite_total_count (struct cgraph_edge *edge) const;
  
!   /* Update value profile INFO for STMT from the inlined indirect callsite.
!      Return true if INFO is updated.  */
!   bool update_inlined_ind_target (gcall *stmt, count_info *info);
  
!   /* Mark LOC as annotated.  */
!   void mark_annotated (location_t loc);
  
  private:
!   /* Map from function_instance name index (in string_table) to
!      function_instance.  */
!   typedef std::map<unsigned, function_instance *> name_function_instance_map;
  
    autofdo_source_profile () {}
  
--- 660,705 ----
    ~autofdo_source_profile ();
  
    /* For a given DECL, returns the top-level function_instance.  */
!   function_instance *get_function_instance_by_decl (tree decl, const char * = NULL) const;
! 
!   /* For a given DESCRIPTOR, return the matching instance if found.  */
!   function_instance *
!     get_function_instance_by_descriptor (function_instance_descriptor) const;
! 
!   void add_function_instance (function_instance *);
  
    /* Find count_info for a given gimple STMT. If found, store the count_info
!      in INFO and return true; otherwise return false.
!      NODE can be used to specify particular inline clone.  */
!   bool get_count_info (gimple *stmt, count_info *info,
! 		       cgraph_node *node = NULL) const;
! 
!   /* Find count_info for a given gimple location GIMPLE_LOC. If found,
!      store the count_info in INFO and return true; otherwise return false.
!      NODE can be used to specify particular inline clone.  */
!   bool get_count_info (location_t gimple_loc, count_info *info,
! 		       cgraph_node *node = NULL) const;
  
    /* Find total count of the callee of EDGE.  */
    gcov_type get_callsite_total_count (struct cgraph_edge *edge) const;
  
!   /* Update value profile INFO for STMT within NODE from the inlined indirect
!      callsite.  Return true if INFO is updated.  */
!   bool update_inlined_ind_target (gcall *stmt, count_info *info,
! 				  cgraph_node *node);
  
!   void remove_icall_target (cgraph_edge *e);
! 
!   /* Offline all functions not defined in the current translation unit.  */
!   void offline_external_functions ();
! 
!   void offline_unrealized_inlines ();
  
  private:
!   /* Map from pair of function_instance filename and symbol name (in
!      string_table) to function_instance.  */
!   typedef std::map<function_instance_descriptor, function_instance *>
!     name_function_instance_map;
  
    autofdo_source_profile () {}
  
*************** private:
*** 328,336 ****
--- 711,739 ----
    function_instance *
    get_function_instance_by_inline_stack (const inline_stack &stack) const;
  
+   /* Find the matching function instance which has DESCRIPTOR as its
+      descriptor.  If not found, also try checking if an instance exists with the
+      same name which has no associated filename.  */
+   name_function_instance_map::const_iterator find_iter_for_function_instance (
+     function_instance_descriptor descriptor) const;
+ 
+   /* Similar to the above, but return a pointer to the instance instead of an
+      iterator.  */
+   function_instance *
+   find_function_instance (function_instance_descriptor descriptor) const;
+ 
+   /* Remove a function instance from the map.  Returns true if the entry was
+      actually deleted.  */
+   bool remove_function_instance (function_instance *inst);
+ 
    name_function_instance_map map_;
+ 
+   auto_vec <function_instance *> duplicate_functions_;
  };
  
+ /* Store the summary information from the GCOV file.  */
+ static summary_info *afdo_summary_info;
+ 
  /* Store the strings read from the profile data file.  */
  static string_table *afdo_string_table;
  
*************** static autofdo_source_profile *afdo_sour
*** 340,357 ****
  /* gcov_summary structure to store the profile_info.  */
  static gcov_summary *afdo_profile_info;
  
  /* Helper functions.  */
  
  /* Return the original name of NAME: strip the suffix that starts
!    with '.' Caller is responsible for freeing RET.  */
  
  static char *
! get_original_name (const char *name)
  {
!   char *ret = xstrdup (name);
!   char *find = strchr (ret, '.');
!   if (find != NULL)
!     *find = 0;
    return ret;
  }
  
--- 743,809 ----
  /* gcov_summary structure to store the profile_info.  */
  static gcov_summary *afdo_profile_info;
  
+ /* Map from timestamp -> <name, tp_first_run>.
+ 
+    The purpose of this map is to map 64-bit timestamp values to (1..N) sorted
+    by ascending order of timestamps and assign that to node->tp_first_run,
+    since we don't need the full 64-bit range.  */
+ static std::map<gcov_type, int> timestamp_info_map;
+ 
+ /* Scaling factor for afdo data.  Compared to normal profile
+    AFDO profile counts are much lower, depending on sampling
+    frequency.  We scale data up to reduce effects of roundoff
+    errors.  */
+ 
+ static gcov_type afdo_count_scale = 1;
+ 
  /* Helper functions.  */
  
  /* Return the original name of NAME: strip the suffix that starts
!    with '.' for names that are generated after auto-profile pass.
!    This is to match profiled names with the names in the IR at this stage.
!    Note that we only have to strip suffix and not in the middle.
!    Caller is responsible for freeing RET.  */
  
  static char *
! get_original_name (const char *name, bool alloc = true)
  {
!   char *ret = alloc ? xstrdup (name) : const_cast<char *> (name);
!   char *last_dot = strrchr (ret, '.');
!   if (last_dot == NULL)
!     return ret;
!   bool only_digits = true;
!   char *ptr = last_dot;
!   while (*(++ptr) != 0)
!     if (*ptr < '0' || *ptr > '9')
!       {
! 	only_digits = false;
! 	break;
!       }
!   if (only_digits)
!     *last_dot = 0;
!   char *next_dot = strrchr (ret, '.');
!   /* if nested function such as foo.0, return foo.0  */
!   if (next_dot == NULL)
!     {
!       *last_dot = '.';
!       return ret;
!     }
!   /* Suffixes of clones that compiler generates after auto-profile.  */
!   const char *suffixes[] = {"isra", "constprop", "lto_priv", "part", "cold"};
!   for (unsigned i = 0; i < sizeof (suffixes) / sizeof (const char *); ++i)
!     {
!       int len = strlen (suffixes[i]);
!       if (len == last_dot - next_dot - 1
! 	  && strncmp (next_dot + 1, suffixes[i], strlen (suffixes[i])) == 0)
! 	{
! 	  *next_dot = 0;
! 	  return get_original_name (ret, false);
! 	}
!     }
!   /* Otherwise, it is for clones such as .omp_fn.N that was done before
!      auto-profile and should be kept as it is.  */
!   *last_dot = '.';
    return ret;
  }
  
*************** get_original_name (const char *name)
*** 362,371 ****
  static unsigned
  get_combined_location (location_t loc, tree decl)
  {
    /* TODO: allow more bits for line and less bits for discriminator.  */
!   if (LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl) >= (1<<16))
!     warning_at (loc, OPT_Woverflow, "offset exceeds 16 bytes");
!   return ((LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl)) << 16)
  	 | get_discriminator_from_loc (loc);
  }
  
--- 814,834 ----
  static unsigned
  get_combined_location (location_t loc, tree decl)
  {
+   bool warned = false;
    /* TODO: allow more bits for line and less bits for discriminator.  */
!   if ((LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl)) >= (1<<15)
!       || (LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl)) <= -(1<<15))
!     warned = warning_at (loc, OPT_Wauto_profile,
! 			 "auto-profile cannot encode offset %i "
! 			 "that exceeds 16 bytes",
! 			 LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl));
!   if (warned)
!     inform (DECL_SOURCE_LOCATION (decl), "location offset is related to");
!   if ((unsigned)get_discriminator_from_loc (loc) >= (1u << 16))
!     warning_at (loc, OPT_Wauto_profile,
! 		"auto-profile cannot encode discriminators "
! 		"that exceeds 16 bytes");
!   return ((unsigned)(LOCATION_LINE (loc) - DECL_SOURCE_LINE (decl)) << 16)
  	 | get_discriminator_from_loc (loc);
  }
  
*************** get_function_decl_from_block (tree block
*** 380,389 ****
    return BLOCK_ABSTRACT_ORIGIN (block);
  }
  
  /* Store inline stack for STMT in STACK.  */
  
  static void
! get_inline_stack (location_t locus, inline_stack *stack)
  {
    if (LOCATION_LOCUS (locus) == UNKNOWN_LOCATION)
      return;
--- 843,901 ----
    return BLOCK_ABSTRACT_ORIGIN (block);
  }
  
+ /* Dump LOC to F.  */
+ 
+ static void
+ dump_afdo_loc (FILE *f, unsigned loc)
+ {
+   if (loc & 65535)
+     fprintf (f, "%i.%i", loc >> 16, loc & 65535);
+   else
+     fprintf (f, "%i", loc >> 16);
+ }
+ 
+ /* Return assembler name as in symbol table and DW_AT_linkage_name.  */
+ 
+ static const char *
+ raw_symbol_name (const char *asmname)
+ {
+   /* If we start supporting user_label_prefixes, add_linkage_attr will also
+      need to be fixed.  */
+   if (strlen (user_label_prefix))
+     sorry ("auto-profile is not supported for targets with user label prefix");
+   return asmname + (asmname[0] == '*');
+ }
+ 
+ /* Convenience wrapper that looks up assembler name.  */
+ 
+ static const char *
+ raw_symbol_name (tree decl)
+ {
+   return raw_symbol_name (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
+ }
+ 
+ /* Dump STACK to F.  */
+ 
+ static void
+ dump_inline_stack (FILE *f, inline_stack *stack)
+ {
+   bool first = true;
+   for (decl_lineno &p : *stack)
+     {
+       fprintf (f, "%s%s:",
+ 	       first ? "" : "; ",
+ 	       raw_symbol_name (p.decl));
+       dump_afdo_loc (f, p.afdo_loc);
+       first = false;
+     }
+   fprintf (f, "\n");
+ }
+ 
  /* Store inline stack for STMT in STACK.  */
  
  static void
! get_inline_stack (location_t locus, inline_stack *stack,
! 		  tree fn = current_function_decl)
  {
    if (LOCATION_LOCUS (locus) == UNKNOWN_LOCATION)
      return;
*************** get_inline_stack (location_t locus, inli
*** 401,450 ****
  
            tree decl = get_function_decl_from_block (block);
            stack->safe_push (
!               std::make_pair (decl, get_combined_location (locus, decl)));
            locus = tmp_locus;
          }
      }
!   stack->safe_push (
!       std::make_pair (current_function_decl,
!                       get_combined_location (locus, current_function_decl)));
  }
  
! /* Return STMT's combined location, which is a 32bit integer in which
!    higher 16 bits stores the line offset of LOC to the start lineno
!    of DECL, The lower 16 bits stores the discriminator.  */
  
  static unsigned
! get_relative_location_for_stmt (gimple *stmt)
  {
-   location_t locus = gimple_location (stmt);
    if (LOCATION_LOCUS (locus) == UNKNOWN_LOCATION)
!     return UNKNOWN_LOCATION;
  
!   for (tree block = gimple_block (stmt); block && (TREE_CODE (block) == BLOCK);
         block = BLOCK_SUPERCONTEXT (block))
!     if (LOCATION_LOCUS (BLOCK_SOURCE_LOCATION (block)) != UNKNOWN_LOCATION)
        return get_combined_location (locus,
!                                     get_function_decl_from_block (block));
!   return get_combined_location (locus, current_function_decl);
  }
  
! /* Return true if BB contains indirect call.  */
  
! static bool
! has_indirect_call (basic_block bb)
  {
!   gimple_stmt_iterator gsi;
  
!   for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
!       gimple *stmt = gsi_stmt (gsi);
!       if (gimple_code (stmt) == GIMPLE_CALL && !gimple_call_internal_p (stmt)
!           && (gimple_call_fn (stmt) == NULL
!               || TREE_CODE (gimple_call_fn (stmt)) != FUNCTION_DECL))
!         return true;
      }
!   return false;
  }
  
  /* Member functions for string_table.  */
--- 913,1031 ----
  
            tree decl = get_function_decl_from_block (block);
            stack->safe_push (
! 	      {decl, get_combined_location (locus, decl), locus});
            locus = tmp_locus;
          }
      }
!   stack->safe_push ({fn, get_combined_location (locus, fn), locus});
  }
  
! /* Same as get_inline_stack for a given node which may be
!    an inline clone.  If NODE is NULL, assume current_function_decl.  */
! static void
! get_inline_stack_in_node (location_t locus, inline_stack *stack,
! 			  cgraph_node *node)
! {
!   if (!node)
!     return get_inline_stack (locus, stack);
!   do
!     {
!       get_inline_stack (locus, stack, node->decl);
!       /* If caller is inlined, continue building stack.  */
!       if (!node->inlined_to)
! 	node = NULL;
!       else
! 	{
! 	  locus = gimple_location (node->callers->call_stmt);
! 	  node = node->callers->caller;
! 	}
!     }
!   while (node);
! }
! 
! /* Return combined location of LOCUS within BLOCK that is in
!    function FN.
! 
!    This is a 32bit integer in which higher 16 bits stores the line offset of
!    LOC to the start lineno of DECL, The lower 16 bits stores the
!    discriminator.  */
  
  static unsigned
! get_relative_location_for_locus (tree fn, tree block, location_t locus)
  {
    if (LOCATION_LOCUS (locus) == UNKNOWN_LOCATION)
!     return -1;
  
!   for (; block && (TREE_CODE (block) == BLOCK);
         block = BLOCK_SUPERCONTEXT (block))
!     if (inlined_function_outer_scope_p (block))
        return get_combined_location (locus,
! 				    get_function_decl_from_block (block));
!   return get_combined_location (locus, fn);
  }
  
! /* Return combined location of STMT in function FN.  */
  
! static unsigned
! get_relative_location_for_stmt (tree fn, gimple *stmt)
  {
!   return get_relative_location_for_locus
! 	  (fn, LOCATION_BLOCK (gimple_location (stmt)),
! 	   gimple_location (stmt));
! }
  
! /* Return either the basename or the realpath for a given path based on
!    PARAM_PROFILE_FUNC_INTERNAL_ID.  */
! 
! static const char *
! get_normalized_path (const char *path, bool from_gcov = false)
! {
!   if (param_profile_func_internal_id == 1)
!     /* The GCOV will already contain the entire path.  It doesn't need to be
!        normalized with lrealpath ().  */
!     return from_gcov ? path : lrealpath (path);
!   return lbasename (path);
! }
! 
! /* Member functions for summary_info.  */
! 
! bool
! summary_info::read ()
! {
!   if (gcov_read_unsigned () != GCOV_TAG_AFDO_SUMMARY)
!     return false;
! 
!   total_count = gcov_read_counter ();
!   max_count = gcov_read_counter ();
!   max_function_count = gcov_read_counter ();
!   num_counts = gcov_read_counter ();
!   num_functions = gcov_read_counter ();
!   uint64_t num_detailed_summaries = gcov_read_counter ();
!   gcc_checking_assert (num_detailed_summaries == NUM_PERCENTILES);
!   for (uint64_t i = 0; i < num_detailed_summaries; i++)
      {
!       detailed_summaries[i].cutoff = gcov_read_unsigned ();
!       detailed_summaries[i].min_count = gcov_read_counter ();
!       detailed_summaries[i].num_counts = gcov_read_counter ();
      }
! 
!   return !gcov_is_error ();
! }
! 
! /* Get the minimum count required for percentile CUTOFF.  */
! 
! uint64_t
! summary_info::get_threshold_count (uint32_t cutoff)
! {
!   /* The cutoffs stored in the GCOV are fractions multiplied by 1,000,000.  */
!   gcc_checking_assert (cutoff <= 1'000'000);
!   unsigned idx = 0;
!   /* Find the first cutoff at least as high as CUTOFF.  */
!   for (; idx < NUM_PERCENTILES; idx++)
!     if (detailed_summaries[idx].cutoff >= cutoff)
!       break;
!   idx = std::min (NUM_PERCENTILES - 1, idx);
!   return detailed_summaries[idx].min_count;
  }
  
  /* Member functions for string_table.  */
*************** has_indirect_call (basic_block bb)
*** 453,460 ****
  
  string_table::~string_table ()
  {
!   for (unsigned i = 0; i < vector_.length (); i++)
!     free (vector_[i]);
  }
  
  
--- 1034,1046 ----
  
  string_table::~string_table ()
  {
!   for (unsigned i = 0; i < symbol_names_.length (); i++)
!     free (const_cast<char *> (symbol_names_[i]));
!   for (unsigned i = 0; i < filenames_.length (); i++)
!     free (const_cast<char *> (filenames_[i]));
!   for (auto it = original_names_map_.begin (); it != original_names_map_.end ();
!        it++)
!     free (it->second);
  }
  
  
*************** string_table::get_index (const char *nam
*** 466,473 ****
  {
    if (name == NULL)
      return -1;
!   string_index_map::const_iterator iter = map_.find (name);
!   if (iter == map_.end ())
      return -1;
  
    return iter->second;
--- 1052,1059 ----
  {
    if (name == NULL)
      return -1;
!   string_index_map::const_iterator iter = symbol_name_map_.find (name);
!   if (iter == symbol_name_map_.end ())
      return -1;
  
    return iter->second;
*************** string_table::get_index (const char *nam
*** 479,491 ****
  int
  string_table::get_index_by_decl (tree decl) const
  {
!   char *name
!       = get_original_name (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
    int ret = get_index (name);
-   free (name);
-   if (ret != -1)
-     return ret;
-   ret = get_index (lang_hooks.dwarf_name (decl, 0));
    if (ret != -1)
      return ret;
    if (DECL_FROM_INLINE (decl))
--- 1065,1072 ----
  int
  string_table::get_index_by_decl (tree decl) const
  {
!   const char *name = raw_symbol_name (decl);
    int ret = get_index (name);
    if (ret != -1)
      return ret;
    if (DECL_FROM_INLINE (decl))
*************** string_table::get_index_by_decl (tree de
*** 497,506 ****
  /* Return the function name of a given INDEX.  */
  
  const char *
! string_table::get_name (int index) const
  {
!   gcc_assert (index > 0 && index < (int)vector_.length ());
!   return vector_[index];
  }
  
  /* Read the string table. Return TRUE if reading is successful.  */
--- 1078,1207 ----
  /* Return the function name of a given INDEX.  */
  
  const char *
! string_table::get_symbol_name (int index) const
  {
!   if (index <= 0 || index >= (int) symbol_names_.length ())
!     fatal_error (UNKNOWN_LOCATION,
! 		 "auto-profile contains invalid symbol name index %d", index);
! 
!   return symbol_names_[index];
! }
! 
! /* For a given index, returns the string.  */
! 
! const char *
! string_table::get_filename (int index) const
! {
!   /* There may not be any file name for some functions, ignore them.  */
!   if (index == string_table::unknown_filename)
!     return "<unknown>";
! 
!   if (index < 0 || index >= (int) filenames_.length ())
!     fatal_error (UNKNOWN_LOCATION,
! 		 "auto-profile contains invalid filename index %d", index);
! 
!   return filenames_[index];
! }
! 
! /* For a given symbol name index, returns the filename index.  */
! 
! int
! string_table::get_filename_by_symbol (int index) const
! {
!   return get_filename_by_symbol (get_symbol_name (index));
! }
! 
! /* For a given function name, returns the filename index.  */
! 
! int
! string_table::get_filename_by_symbol (const char *name) const
! {
!   auto it = symbol_to_filename_map_.find (name);
!   if (it != symbol_to_filename_map_.end () && it->second < filenames_.length ())
!     return it->second;
!   return string_table::unknown_filename;
! }
! 
! /* For a given filename, returns the index.  */
! 
! int
! string_table::get_filename_index (const char *name) const
! {
!   auto iter = filename_map_.find (name);
!   return iter == filename_map_.end () ? string_table::unknown_filename
! 				      : iter->second;
! }
! 
! /* Get the original name and file name index for a node.  This will return the
!    name from the current TU if there are multiple symbols that map to
!    NAME.  */
! 
! std::pair<const char *, int>
! string_table::get_original_name (const char *name) const
! {
!   /* Check if the un-prefixed name differs from the actual name.  */
!   auto stripped = original_names_map_.find (name);
! 
!   /* The original name for the symbol is its name, i.e. there are no
!      suffixes.  */
!   if (stripped == original_names_map_.end ())
!     return {name, get_filename_by_symbol (name)};
! 
!   /* Figure out if a clash exists.  */
!   auto clash = clashing_names_map_.find (stripped->second);
!   gcc_checking_assert (clash != clashing_names_map_.end ());
! 
!   /* Try to find a function from the current TU.  */
!   gcc_checking_assert (clash->second.length () >= 1);
!   symtab_node *n
!     = cgraph_node::get_for_asmname (get_identifier (stripped->second));
!   if (n && is_a<cgraph_node *> (n))
!     for (cgraph_node *cn = dyn_cast<cgraph_node *> (n); cn;)
!       {
! 	/* Check if there is a symbol in the current TU that has the same name
! 	   as in the GCOV.  */
! 	for (auto name : clash->second)
! 	  {
! 	    int filename_idx = get_filename_by_symbol (name);
! 	    if (cn->definition && cn->has_gimple_body_p ()
! 		&& !strcmp (get_normalized_path (DECL_SOURCE_FILE (cn->decl)),
! 			    get_filename (filename_idx)))
! 	      return {stripped->second, filename_idx};
! 	  }
! 	cn = dyn_cast<cgraph_node *> (cn->next_sharing_asm_name);
!       }
! 
!   /* No match found.  Just stick to the current symbol and return the stripped
!      name.  */
!   return {stripped->second, get_filename_by_symbol (name)};
! }
! 
! /* Add new symbol name STRING (with an associated file name FILENAME_IDX) and
!    return its index.  */
! 
! int
! string_table::add_symbol_name (const char *string, int filename_idx)
! {
!   gcc_checking_assert (
!     filename_idx == string_table::unknown_filename
!     || (filename_idx >= 0 && filename_idx < (int) filenames_.length ()));
!   symbol_names_.safe_push (string);
!   symbol_name_map_[symbol_names_.last ()] = symbol_names_.length () - 1;
!   symbol_to_filename_map_[symbol_names_.last ()] = filename_idx;
!   return symbol_names_.length () - 1;
! }
! 
! /* Add new filename and return its index (returning the same if it already
!    exists).  */
! 
! int
! string_table::add_filename (const char *name)
! {
!   auto it = filename_map_.find (name);
!   if (it != filename_map_.end ())
!     return it->second;
!   filenames_.safe_push (xstrdup (name));
!   return filenames_.length () - 1;
  }
  
  /* Read the string table. Return TRUE if reading is successful.  */
*************** string_table::read ()
*** 513,542 ****
    /* Skip the length of the section.  */
    gcov_read_unsigned ();
    /* Read in the file name table.  */
    unsigned string_num = gcov_read_unsigned ();
    for (unsigned i = 0; i < string_num; i++)
      {
!       vector_.safe_push (get_original_name (gcov_read_string ()));
!       map_[vector_.last ()] = i;
      }
    return true;
  }
  
  /* Member functions for function_instance.  */
  
  function_instance::~function_instance ()
  {
    for (callsite_map::iterator iter = callsites.begin ();
         iter != callsites.end (); ++iter)
      delete iter->second;
  }
  
  /* Traverse callsites of the current function_instance to find one at the
     location of LINENO and callee name represented in DECL.  */
  
  function_instance *
  function_instance::get_function_instance_by_decl (unsigned lineno,
!                                                   tree decl) const
  {
    int func_name_idx = afdo_string_table->get_index_by_decl (decl);
    if (func_name_idx != -1)
--- 1214,1322 ----
    /* Skip the length of the section.  */
    gcov_read_unsigned ();
    /* Read in the file name table.  */
+   unsigned file_num = gcov_read_unsigned ();
+   filenames_.reserve (file_num);
+   for (unsigned i = 0; i < file_num; i++)
+     {
+       const char *filename = gcov_read_string ();
+       filenames_.quick_push (xstrdup (get_normalized_path (filename, true)));
+       filename_map_[filenames_.last ()] = i;
+       free (const_cast<char *> (filename));
+       if (gcov_is_error ())
+ 	return false;
+     }
+   /* Read in the function name -> file name table.  */
    unsigned string_num = gcov_read_unsigned ();
+   symbol_names_.reserve (string_num);
    for (unsigned i = 0; i < string_num; i++)
      {
!       symbol_names_.quick_push (const_cast<char *> (gcov_read_string ()));
!       symbol_name_map_[symbol_names_.last ()] = i;
!       unsigned filename_idx = gcov_read_unsigned ();
!       symbol_to_filename_map_[symbol_names_.last ()] = filename_idx;
!       char *original = const_cast<char *> (
! 	autofdo::get_original_name (symbol_names_.last ()));
!       if (strcmp (original, symbol_names_.last ()))
! 	{
! 	  /* Take ownership of ORIGINAL.  */
! 	  original_names_map_[symbol_names_.last ()] = original;
! 	  clashing_names_map_[original].safe_push (i);
! 	  /* It is possible that a public symbol with the stripped name exists.
! 	     If it does exist, add it as well.  */
! 	  auto publik = symbol_name_map_.find (original);
! 	  if (publik != symbol_name_map_.end ()
! 	      && clashing_names_map_.find (publik->first)
! 		   == clashing_names_map_.end ())
! 	    clashing_names_map_[publik->first].safe_push (publik->second);
! 	}
!       else
! 	/* There are no suffixes to remove.  */
! 	free (original);
! 
!       if (gcov_is_error ())
! 	return false;
      }
    return true;
  }
  
+ /* Return cgraph node corresponding to given NAME_INDEX,
+    NULL if unavailable.  */
+ cgraph_node *
+ string_table::get_cgraph_node (int name_index)
+ {
+   const char *sname = get_symbol_name (name_index);
+ 
+   symtab_node *n = cgraph_node::get_for_asmname (get_identifier (sname));
+   for (;n; n = n->next_sharing_asm_name)
+     if (cgraph_node *cn = dyn_cast <cgraph_node *> (n))
+       if (cn->definition && cn->has_gimple_body_p ())
+ 	return cn;
+   return NULL;
+ }
+ 
+ /* Return corresponding cgraph node.  */
+ 
+ cgraph_node *
+ function_instance::get_cgraph_node ()
+ {
+   return afdo_string_table->get_cgraph_node (symbol_name ());
+ }
+ 
  /* Member functions for function_instance.  */
  
  function_instance::~function_instance ()
  {
+   gcc_assert (!in_worklist_p ());
    for (callsite_map::iterator iter = callsites.begin ();
         iter != callsites.end (); ++iter)
      delete iter->second;
  }
  
+ /* Propagate timestamp TS of function_instance to inlined instances if it's
+    not already set.  */
+ 
+ void
+ function_instance::prop_timestamp_1 (gcov_type ts)
+ {
+   if (!timestamp () && total_count () > 0)
+     set_timestamp (ts);
+   for (auto it = callsites.begin (); it != callsites.end (); ++it)
+     it->second->prop_timestamp_1 (ts);
+ }
+ 
+ void
+ function_instance::prop_timestamp (void)
+ {
+   prop_timestamp_1 (timestamp ());
+ }
+ 
  /* Traverse callsites of the current function_instance to find one at the
     location of LINENO and callee name represented in DECL.  */
  
  function_instance *
  function_instance::get_function_instance_by_decl (unsigned lineno,
! 						  tree decl,
! 						  location_t location) const
  {
    int func_name_idx = afdo_string_table->get_index_by_decl (decl);
    if (func_name_idx != -1)
*************** function_instance::get_function_instance
*** 546,617 ****
        if (ret != callsites.end ())
          return ret->second;
      }
!   func_name_idx
!       = afdo_string_table->get_index (lang_hooks.dwarf_name (decl, 0));
!   if (func_name_idx != -1)
      {
!       callsite_map::const_iterator ret
!           = callsites.find (std::make_pair (lineno, func_name_idx));
!       if (ret != callsites.end ())
!         return ret->second;
      }
-   if (DECL_FROM_INLINE (decl))
-     return get_function_instance_by_decl (lineno, DECL_ABSTRACT_ORIGIN (decl));
  
    return NULL;
  }
  
! /* Store the profile info for LOC in INFO. Return TRUE if profile info
!    is found.  */
  
  bool
! function_instance::get_count_info (location_t loc, count_info *info) const
  {
!   position_count_map::const_iterator iter = pos_counts.find (loc);
!   if (iter == pos_counts.end ())
      return false;
!   *info = iter->second;
    return true;
  }
  
! /* Mark LOC as annotated.  */
  
  void
! function_instance::mark_annotated (location_t loc)
  {
!   position_count_map::iterator iter = pos_counts.find (loc);
    if (iter == pos_counts.end ())
!     return;
!   iter->second.annotated = true;
  }
  
  /* Read the inlined indirect call target profile for STMT and store it in
     MAP, return the total count for all inlined indirect calls.  */
  
  gcov_type
! function_instance::find_icall_target_map (gcall *stmt,
                                            icall_target_map *map) const
  {
    gcov_type ret = 0;
!   unsigned stmt_offset = get_relative_location_for_stmt (stmt);
  
    for (callsite_map::const_iterator iter = callsites.begin ();
         iter != callsites.end (); ++iter)
      {
!       unsigned callee = iter->second->name ();
        /* Check if callsite location match the stmt.  */
!       if (iter->first.first != stmt_offset)
!         continue;
        struct cgraph_node *node = cgraph_node::get_for_asmname (
!           get_identifier (afdo_string_table->get_name (callee)));
        if (node == NULL)
          continue;
!       (*map)[callee] = iter->second->total_count ();
!       ret += iter->second->total_count ();
      }
    return ret;
  }
  
  /* Read the profile and create a function_instance with head count as
     HEAD_COUNT. Recursively read callsites to create nested function_instances
     too. STACK is used to track the recursive creation process.  */
--- 1326,2714 ----
        if (ret != callsites.end ())
          return ret->second;
      }
!   if (DECL_FROM_INLINE (decl))
      {
!       function_instance
!        	*ret =  get_function_instance_by_decl (lineno,
! 						DECL_ABSTRACT_ORIGIN (decl),
! 						location);
!       return ret;
!     }
!   if (dump_enabled_p ())
!     {
!       for (auto const &iter : callsites)
! 	if (iter.first.first == lineno)
! 	  dump_printf_loc (MSG_NOTE | MSG_PRIORITY_INTERNALS,
! 			   dump_user_location_t::from_location_t (location),
! 			   "auto-profile has mismatched function name %s"
! 			   " instead of %s at loc %i:%i",
! 			   afdo_string_table->get_symbol_name (
! 			     iter.first.second),
! 			   raw_symbol_name (decl), lineno >> 16,
! 			   lineno & 65535);
      }
  
    return NULL;
  }
  
! /* Merge profile of OTHER to THIS.  Note that cloning hasn't been performed
!    when we annotate the CFG (at this stage).  */
! 
! void
! function_instance::merge (function_instance *other,
! 			  vec <function_instance *> &new_functions)
! {
!   /* Do not merge to itself and only merge functions of same name.  */
!   gcc_checking_assert (other != this
! 		       && other->symbol_name () == symbol_name ());
! 
!   if (file_name () != other->file_name ())
!     return;
! 
!   total_count_ += other->total_count_;
!   if (other->total_count () && total_count () && other->head_count () == -1)
!     head_count_ = -1;
!   else if (head_count_ != -1)
!     head_count_ += other->head_count_;
! 
!   /* While merging timestamps, set the one that occurs earlier.  */
!   if (timestamp () == 0
!       || (other->timestamp () > 0
! 	  && other->timestamp () < timestamp ()))
!     set_timestamp (other->timestamp ());
! 
!   bool changed = true;
! 
!   while (changed)
!     {
!       changed = false;
!       /* If both function instances agree on particular inlined function,
! 	 merge profiles. Otherwise offline the instance.  */
!       for (callsite_map::const_iterator iter = other->callsites.begin ();
! 	   iter != other->callsites.end ();)
! 	if (callsites.count (iter->first) == 0)
! 	  {
! 	    function_instance *f = iter->second;
! 	    if (dump_file)
! 	      {
! 		fprintf (dump_file, "  Mismatch in inlined functions;"
! 			 " offlining in merge source:");
! 		f->dump_inline_stack (dump_file);
! 		fprintf (dump_file, "\n");
! 	      }
! 	    /* We already merged outer part of the function accounting
! 	       the inlined call; compensate.  */
! 	    for (function_instance *s = this; s; s = s->inlined_to ())
! 	      {
! 		s->total_count_ -= f->total_count ();
! 		gcc_checking_assert (s->total_count_ >= 0);
! 	      }
! 	    other->callsites.erase (iter);
! 	    function_instance::offline (f, new_functions);
! 	    /* Start from beginning as merging might have offlined
! 	       some functions in the case of recursive inlining.  */
! 	    iter = other->callsites.begin ();
! 	  }
! 	else
! 	  ++iter;
!       for (callsite_map::const_iterator iter = callsites.begin ();
! 	   iter != callsites.end ();)
! 	if (other->callsites.count (iter->first) == 0)
! 	  {
! 	    function_instance *f = iter->second;
! 	    if (dump_file)
! 	      {
! 		fprintf (dump_file, "  Mismatch in inlined functions;"
! 			 " offlining in merge destination:");
! 		f->dump_inline_stack (dump_file);
! 		fprintf (dump_file, "\n");
! 	      }
! 	    callsites.erase (iter);
! 	    function_instance::offline (f, new_functions);
! 	    iter = callsites.begin ();
! 	    changed = true;
! 	  }
! 	else
! 	  ++iter;
!     }
!   for (callsite_map::const_iterator iter = other->callsites.begin ();
!        iter != other->callsites.end (); ++iter)
!     {
!       if (dump_file)
! 	{
! 	  fprintf (dump_file, "    Merging profile for inlined function\n"
! 		   "      from: ");
! 	  iter->second->dump_inline_stack (dump_file);
! 	  fprintf (dump_file, " total:%" PRIu64 "\n      to  : ",
! 		   (int64_t)iter->second->total_count ());
! 	  callsites[iter->first]->dump_inline_stack (dump_file);
! 	  fprintf (dump_file, " total:%" PRIu64 "\n",
! 		   (int64_t)callsites[iter->first]->total_count ());
! 	}
! 
!       callsites[iter->first]->merge (iter->second, new_functions);
!     }
! 
!   for (position_count_map::const_iterator iter = other->pos_counts.begin ();
!        iter != other->pos_counts.end (); ++iter)
!     if (pos_counts.count (iter->first) == 0)
!       pos_counts[iter->first] = iter->second;
!     else
!       {
!         pos_counts[iter->first].count += iter->second.count;
! 	for (icall_target_map::const_iterator titer
! 	       = iter->second.targets.begin ();
! 	     titer != iter->second.targets.end (); ++titer)
! 	  if (pos_counts[iter->first].targets.count (titer->first) == 0)
! 	    pos_counts[iter->first].targets[titer->first]
! 	      = titer->second;
! 	  else
! 	    pos_counts[iter->first].targets[titer->first]
! 	      += titer->second;
!       }
! }
! 
! /* Make inline function FN offline.
!    If toplevel function of same name already exists, then merge profiles.
!    Otherwise turn FN toplevel.  Return true if new toplevel function
!    was introduced.
!    If new toplevel functions are created and NEW_FUNCTIONS != NULL,
!    add them to NEW_FUNCTIONS.
! 
!    TODO: When offlining indirect call we lose information about the
!    call target.  It should be possible to add it into
!    targets histogram.  */
  
  bool
! function_instance::offline (function_instance *fn,
! 			    vec <function_instance *> &new_functions)
  {
!   gcc_checking_assert (fn->inlined_to ());
!   for (function_instance *s = fn->inlined_to (); s; s = s->inlined_to ())
!     {
!       s->total_count_ -= fn->total_count ();
!       gcc_checking_assert (s->total_count_ >= 0);
!     }
!   function_instance *to
!     = afdo_source_profile->get_function_instance_by_descriptor (
!       fn->get_descriptor ());
!   fn->set_inlined_to (NULL);
!   /* If there is offline function of same name, we need to merge profile.
!      Delay this by adding function to a worklist so we do not run into
!      problem with recursive inlining.  */
!   if (to)
!     {
!       if (fn->in_worklist_p ())
! 	return false;
!       fn->set_in_worklist ();
!       new_functions.safe_push (fn);
!       if (dump_file)
! 	{
! 	  fprintf (dump_file, "  Recoding duplicate: ");
! 	  to->dump_inline_stack (dump_file);
! 	  fprintf (dump_file, "\n");
! 	}
!       return true;
!     }
!   if (dump_file)
!     {
!       fprintf (dump_file, "  Added as offline instance: ");
!       fn->dump_inline_stack (dump_file);
!       fprintf (dump_file, "\n");
!     }
!   if (fn->total_count ())
!     fn->head_count_ = -1;
!   afdo_source_profile->add_function_instance (fn);
!   fn->set_in_worklist ();
!   new_functions.safe_push (fn);
!   return true;
! }
! 
! /* Offline all inlined functions with name in SEEN.
!    If new toplevel functions are created, add them to NEW_FUNCTIONS.  */
! 
! void
! function_instance::offline_if_in_set (name_index_set &seen,
! 				      vec <function_instance *> &new_functions)
! {
!   for (callsite_map::const_iterator iter = callsites.begin ();
!        iter != callsites.end ();)
!     if (seen.contains (iter->first.second))
!       {
! 	function_instance *f = iter->second;
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "Offlining function inlined to other module: ");
! 	    f->dump_inline_stack (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	iter = callsites.erase (iter);
! 	function_instance::offline (f, new_functions);
! 	/* Start from beginning as merging might have offlined
! 	   some functions in the case of recursive inlining.  */
! 	iter = callsites.begin ();
!       }
!     else
!       {
! 	iter->second->offline_if_in_set (seen, new_functions);
! 	++iter;
!       }
! }
! 
! /* Try to check if inlined_fn can correspond to a call of function N.
!    Return non-zero if it corresponds and 2 if renaming was done.  */
! 
! static int
! match_with_target (cgraph_node *n,
! 		   gimple *stmt,
! 		   function_instance *inlined_fn,
! 		   cgraph_node *orig_callee)
! {
!   cgraph_node *callee = orig_callee->ultimate_alias_target ();
!   const char *symbol_name = raw_symbol_name (callee->decl);
!   const char *name
!     = afdo_string_table->get_symbol_name (inlined_fn->symbol_name ());
!   if (strcmp (name, symbol_name))
!     {
!       int i;
!       bool in_suffix = false;
!       for (i = 0; i; i++)
! 	{
! 	  if (name[i] != symbol_name[i])
! 	    break;
! 	  if (name[i] == '.')
! 	    in_suffix = true;
! 	}
!       /* Accept dwarf names and stripped suffixes.  */
!       if (!strcmp (lang_hooks.dwarf_name (callee->decl, 0),
! 		   afdo_string_table->get_symbol_name (
! 		     inlined_fn->symbol_name ()))
! 	  || (!name[i] && symbol_name[i] == '.') || in_suffix)
! 	{
! 	  int index = afdo_string_table->get_index (symbol_name);
! 	  if (index == -1)
! 	    index = afdo_string_table->add_symbol_name (
! 	      xstrdup (symbol_name),
! 	      afdo_string_table->add_filename (
! 		get_normalized_path (DECL_SOURCE_FILE (callee->decl))));
! 	  if (dump_file)
! 	    fprintf (dump_file,
! 		     "  Renaming inlined call target %s to %s\n",
! 		     name, symbol_name);
! 	  inlined_fn->set_symbol_name (index);
! 	  return 2;
! 	}
!       /* Only warn about declarations.  It is possible that the function
! 	 is declared as alias in other module and we inlined cross-module.  */
!       if (callee->definition
! 	  && warning (OPT_Wauto_profile,
! 		      "auto-profile of %q+F contains inlined "
! 		      "function with symbol name %s instead of symbol name %s",
! 		      n->decl, name, symbol_name))
! 	inform (gimple_location (stmt), "corresponding call");
!       return 0;
!     }
!   return 1;
! }
! 
! static void
! dump_stmt (gimple *stmt, count_info *info, function_instance *inlined_fn,
! 	   inline_stack &stack)
! {
!   if (dump_file)
!     {
!       fprintf (dump_file, "  ");
!       if (!stack.length ())
! 	fprintf (dump_file, "                     ");
!       else
! 	{
! 	  gcc_checking_assert (stack.length () == 1);
! 	  fprintf (dump_file, "%5i", stack[0].afdo_loc >> 16);
! 	  if (stack[0].afdo_loc & 65535)
! 	    fprintf (dump_file, ".%-5i", stack[0].afdo_loc & 65535);
! 	  else
! 	    fprintf (dump_file, "      ");
! 	  if (info)
! 	    fprintf (dump_file, "%9" PRIu64 " ", (int64_t)info->count);
! 	  else if (inlined_fn)
! 	    fprintf (dump_file, " inlined  ");
! 	  else
! 	    fprintf (dump_file, " no info  ");
! 	}
!       print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
!     }
! }
! 
! /* Lookup count and warn about duplicates.  */
! count_info *
! function_instance::lookup_count (location_t loc, inline_stack &stack,
! 				 cgraph_node *node)
! {
!   gcc_checking_assert (stack.length () < 2);
!   if (stack.length ())
!     {
!       int c = pos_counts.count (stack[0].afdo_loc);
!       if (c > 1
! 	  && warning (OPT_Wauto_profile,
! 		      "duplicated count information"
! 		      " in auto-profile of %q+F"
! 		      " with relative location %i discriminator %i",
! 		      node->decl, stack[0].afdo_loc >> 16,
! 		      stack[0].afdo_loc & 65535))
! 	  inform (loc, "corresponding source location");
!       if (c)
! 	return &pos_counts[stack[0].afdo_loc];
!     }
!   return NULL;
! }
! 
! /* Mark expr locations as used.  */
! void
! mark_expr_locations (function_instance *f, tree t, cgraph_node *node,
! 		     hash_set<const count_info *> &counts)
! {
!   inline_stack stack;
!   return;
!   if (!t)
!     return;
!   do
!     {
!       get_inline_stack_in_node (EXPR_LOCATION (t), &stack, node);
!       /* FIXME: EXPR_LOCATION does not always originate from current
! 	 function.  */
!       if (stack.length () > 1)
! 	break;
!       count_info *info = f->lookup_count (EXPR_LOCATION (t), stack, node);
!       if (info)
! 	counts.add (info);
!       if (handled_component_p (t))
! 	t = TREE_OPERAND (t, 0);
!       else
! 	break;
!     }
!   while (true);
! }
! 
! /* Match function instance with gimple body.
!    Report mismatches, attempt to fix them if possible and remove data we will
!    not use.
! 
!    Set location and call_location so we can output diagnostics and know what
!    functions was already matched.  */
! 
! bool
! function_instance::match (cgraph_node *node,
! 			  vec <function_instance *> &new_functions,
! 			  name_index_map &to_symbol_name)
! {
!   if (get_location () != UNKNOWN_LOCATION)
      return false;
!   set_location (DECL_SOURCE_LOCATION (node->decl));
!   if (dump_file)
!     {
!       fprintf (dump_file,
! 	       "\nMatching gimple function %s with auto profile: ",
! 	       node->dump_name ());
!       dump_inline_stack (dump_file);
!       fprintf (dump_file, "\n");
!     }
!   basic_block bb;
!   /* Sets used to track if entires in auto-profile are useful.  */
!   hash_set<const count_info *> counts;
!   hash_set<const count_info *> targets;
!   hash_set<const function_instance *> functions;
!   hash_set<const function_instance *> functions_to_offline;
! 
!   /* We try to fill in lost disciminator if there is unique call
!      with given line number.  This map is used to record them.  */
!   hash_map<int_hash <int, -1, -2>,auto_vec <gcall *>> lineno_to_call;
!   bool lineno_to_call_computed = false;
! 
!   for (tree arg = DECL_ARGUMENTS (node->decl); arg; arg = DECL_CHAIN (arg))
!     {
!       inline_stack stack;
! 
!       get_inline_stack_in_node (DECL_SOURCE_LOCATION (arg), &stack, node);
!       count_info *info = lookup_count (DECL_SOURCE_LOCATION (arg), stack, node);
!       if (stack.length () && dump_file)
! 	{
! 	  gcc_checking_assert (stack.length () == 1);
! 	  fprintf (dump_file, "%5i", stack[0].afdo_loc >> 16);
! 	  if (stack[0].afdo_loc & 65535)
! 	    fprintf (dump_file, "  .%-5i arg", stack[0].afdo_loc & 65535);
! 	  else
! 	    fprintf (dump_file, "        arg ");
! 	  print_generic_expr (dump_file, arg);
! 	  fprintf (dump_file, "\n");
! 	}
!       if (info)
! 	counts.add (info);
!     }
!   FOR_EACH_BB_FN (bb, DECL_STRUCT_FUNCTION (node->decl))
!     {
!       if (dump_file)
! 	fprintf (dump_file, " basic block %i\n", bb->index);
!       for (gphi_iterator gpi = gsi_start_phis (bb);
! 	   !gsi_end_p (gpi);
! 	   gsi_next (&gpi))
! 	{
! 	  gphi *phi = gpi.phi ();
! 	  inline_stack stack;
! 
! 	  /* We do not assign discriminators to PHI nodes.
! 	     In case we every start using them, we wil need to
! 	     update tree-cfg.cc::assign_discriminators.  */
! 	  gcc_assert (gimple_location (phi) == UNKNOWN_LOCATION);
! 	  get_inline_stack_in_node (gimple_location (phi), &stack, node);
! 	  count_info *info = lookup_count (gimple_location (phi), stack, node);
! 	  gcc_assert (!info);
! 	  dump_stmt (phi, info, NULL, stack);
! 	  counts.add (info);
! 	  for (edge e : bb->succs)
! 	    {
! 	      location_t phi_loc
! 		= gimple_phi_arg_location_from_edge (phi, e);
! 	      inline_stack stack;
! 	      get_inline_stack_in_node (phi_loc, &stack, node);
! 	      count_info *info = lookup_count (phi_loc, stack, node);
! 	      if (info)
! 		counts.add (info);
! 	      gcc_checking_assert (stack.length () < 2);
! 	      mark_expr_locations (this,
! 				   gimple_phi_arg_def_from_edge (phi, e),
! 				   node, counts);
! 	    }
! 	}
!       /* TODO: goto locuses are not used for BB annotation.  */
!       for (edge e : bb->succs)
! 	{
! 	  inline_stack stack;
! 	  get_inline_stack_in_node (e->goto_locus, &stack, node);
! 	  count_info *info = lookup_count (e->goto_locus, stack, node);
! 	  if (info)
! 	    counts.add (info);
! 	}
!       for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
! 	   !gsi_end_p (gsi); gsi_next (&gsi))
! 	{
! 	  inline_stack stack;
! 	  gimple *stmt = gsi_stmt (gsi);
! 	  get_inline_stack_in_node (gimple_location (stmt), &stack, node);
! 
! 	  count_info *info = lookup_count (gimple_location (stmt), stack, node);
! 	  if (info)
! 	    counts.add (info);
! 	  for (unsigned int op = 0; op < gimple_num_ops (stmt); op++)
! 	    mark_expr_locations (this, gimple_op (stmt, op), node, counts);
! 	  if (gimple_code (stmt) == GIMPLE_CALL)
! 	    {
! 	      function_instance *inlined_fn = NULL;
! 	      function_instance *inlined_fn_nodisc = NULL;
! 	      /* Lookup callsite.  */
! 	      if (stack.length ())
! 		{
! 		  int c = 0;
! 		  int cnodis = 0;
! 		  for (auto const &iter : callsites)
! 		    if (iter.first.first == stack[0].afdo_loc)
! 		      {
! 			if (!c)
! 			  inlined_fn = iter.second;
! 			c++;
! 		      }
! 		    /* Discriminators are sometimes lost; try to find the
! 		       call without discriminator info.  */
! 		    else if (iter.first.first == (stack[0].afdo_loc & ~65535))
! 		      {
! 			if (!cnodis)
! 			  inlined_fn_nodisc = iter.second;
! 			cnodis++;
! 		      }
! 		  if ((c > 1 || (!c && cnodis > 1))
! 		      && warning (OPT_Wauto_profile,
! 				  "duplicated callsite in auto-profile of %q+F"
! 				  " with relative location %i,"
! 				  " discriminator %i",
! 				  node->decl, stack[0].afdo_loc >> 16,
! 				  stack[0].afdo_loc & 65535))
! 		    inform (gimple_location (stmt), "corresponding call");
! 		  if (inlined_fn && info && info->targets.size ()
! 		      && warning (OPT_Wauto_profile,
! 				  "both call targets and inline callsite"
! 				  " information is present in auto-profile"
! 				  " of function %q+F with relative location"
! 				  " %i, discriminator %i",
! 				  node->decl, stack[0].afdo_loc >> 16,
! 				  stack[0].afdo_loc & 65535))
! 		    inform (gimple_location (stmt), "corresponding call");
! 		  tree callee = gimple_call_fndecl (stmt);
! 		  cgraph_node *callee_node;
! 		  unsigned int loc = stack[0].afdo_loc;
! 		  bool lost_discriminator = false;
! 		  if (!inlined_fn && inlined_fn_nodisc)
! 		    {
! 		      if (!lineno_to_call_computed)
! 			{
! 			  basic_block bb2;
! 			  FOR_EACH_BB_FN (bb2,
! 					  DECL_STRUCT_FUNCTION (node->decl))
! 			  for (gimple_stmt_iterator gsi2
! 					  = gsi_start_bb (bb2);
! 			       !gsi_end_p (gsi2); gsi_next (&gsi2))
! 			    if (gcall *call
! 				    = dyn_cast <gcall *> (gsi_stmt (gsi2)))
! 			      {
! 				inline_stack stack2;
! 				get_inline_stack_in_node
! 				       	(gimple_location (call),
! 					 &stack2, node);
! 				if (stack2.length ())
! 				  lineno_to_call.get_or_insert
! 				    (stack2[0].afdo_loc >> 16).safe_push (call);
! 			      }
! 			  lineno_to_call_computed = true;
! 			}
! 		      /* If we can determine lost discriminator uniquely,
! 			 use it.  */
! 		      if (lineno_to_call.get
! 			      (stack[0].afdo_loc >> 16)->length () == 1)
! 			{
! 			  if (warning (OPT_Wauto_profile,
! 				       "auto-profile of %q+F seem to contain"
! 				       " lost discriminator %i for"
! 				       " call of %s at relative location %i",
! 				       node->decl, loc & 65535,
! 				       afdo_string_table->get_symbol_name (
! 					 inlined_fn_nodisc->symbol_name ()),
! 				       loc >> 16))
! 			    inform (gimple_location (stmt),
! 				    "corresponding call");
! 			  inlined_fn = inlined_fn_nodisc;
! 			  if (dump_file)
! 			    fprintf (dump_file, "   Lost discriminator %i\n",
! 				     loc & 65535);
! 			  loc = loc & ~65535;
! 			}
! 		      lost_discriminator = true;
! 		    }
! 		  if (callee && (callee_node = cgraph_node::get (callee)))
! 		    {
! 		      if (inlined_fn)
! 			{
! 			  int old_name = inlined_fn->symbol_name ();
! 			  int r = match_with_target (node, stmt, inlined_fn,
! 						     callee_node);
! 			  if (r == 2)
! 			    {
! 			      auto iter = callsites.find ({loc, old_name});
! 			      gcc_checking_assert (
! 				old_name != inlined_fn->symbol_name ()
! 				&& iter != callsites.end ()
! 				&& iter->second == inlined_fn);
! 			      callsite key2 = {stack[0].afdo_loc,
! 					       inlined_fn->symbol_name ()};
! 			      callsites.erase (iter);
! 			      callsites[key2] = inlined_fn;
! 			    }
! 			  if (r)
! 			    functions.add (inlined_fn);
! 			  else
! 			    functions_to_offline.add (inlined_fn);
! 			}
! 
! 		      if (info && info->targets.size () > 1)
! 			warning_at (gimple_location (stmt), OPT_Wauto_profile,
! 				    "auto-profile of %q+F contains multiple"
! 				    " targets for a direct call with relative"
! 				    " location %i, discriminator %i",
! 				    node->decl, stack[0].afdo_loc >> 16,
! 				    stack[0].afdo_loc & 65535);
! 		      /* We do not need target profile for direct calls.  */
! 		      if (info)
! 			info->targets.clear ();
! 		    }
! 		  else
! 		    {
! 		      if (inlined_fn
! 			  && inlined_fn->get_call_location ()
! 				  != UNKNOWN_LOCATION)
! 			{
! 			  if (warning (OPT_Wauto_profile,
! 				       "function contains two calls of the same"
! 				       " relative location +%i,"
! 				       " discriminator %i,"
! 				       " that leads to lost auto-profile",
! 				       loc >> 16,
! 				       loc & 65535))
! 			    {
! 			      inform (gimple_location (stmt),
! 				      "location of the first call");
! 			      inform (inlined_fn->get_call_location (),
! 				      "location of the second call");
! 			    }
! 			  if (dump_file)
! 			    fprintf (dump_file,
! 				     "   Duplicated call location\n");
! 			  inlined_fn = NULL;
! 			}
! 		      if (inlined_fn)
! 			{
! 			  inlined_fn->set_call_location
! 			    (gimple_location (stmt));
! 			  /* Do renaming if needed so we can look up
! 			     cgraph node and recurse into inlined function.  */
! 			  int *newn
! 			    = to_symbol_name.get (inlined_fn->symbol_name ());
! 			  gcc_checking_assert (
! 			    !newn || *newn != inlined_fn->symbol_name ());
! 			  if (newn || lost_discriminator)
! 			    {
! 			      auto iter = callsites.find (
! 				{loc, inlined_fn->symbol_name ()});
! 			      gcc_checking_assert (iter != callsites.end ()
! 						   && iter->second
! 						      == inlined_fn);
! 			      callsite key2
! 				= {stack[0].afdo_loc,
! 				   newn ? *newn : inlined_fn->symbol_name ()};
! 			      callsites.erase (iter);
! 			      callsites[key2] = inlined_fn;
! 			      inlined_fn->set_symbol_name (
! 				newn ? *newn : inlined_fn->symbol_name ());
! 			    }
! 			  functions.add (inlined_fn);
! 			}
! 		      if (info)
! 			targets.add (info);
! 		    }
! 		}
! 	      dump_stmt (stmt, info, inlined_fn, stack);
! 	    }
! 	  else
! 	    dump_stmt (stmt, info, NULL, stack);
! 	}
!     }
!   bool warned = false;
!   for (auto &iter : pos_counts)
!     if (iter.second.targets.size ()
! 	&& counts.contains (&iter.second)
!        	&& !targets.contains (&iter.second))
!       {
! 	if (!warned)
! 	  warned = warning_at
! 		       (DECL_SOURCE_LOCATION (node->decl),
! 			OPT_Wauto_profile,
! 			"auto-profile of %q+F contains indirect call targets"
! 			" not associated with an indirect call statement",
! 			node->decl);
! 	if (warned)
! 	  inform (DECL_SOURCE_LOCATION (node->decl),
! 		  "count %" PRIu64
! 		  " with relative location +%i, discriminator %i",
! 		  iter.second.count, iter.first >> 16, iter.first & 65535);
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "Removing targets of ");
! 	    dump_afdo_loc (dump_file, iter.first);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	iter.second.targets.clear ();
!       }
!   warned = false;
!   /* Profile sometimes contains extra location for start or end of function
!      (prologue, epilogue).
!      TODO: If present, perhaps it can be used to determine entry block
!      and exit block counts.  */
!   unsigned int end_location = get_combined_location
!     (DECL_STRUCT_FUNCTION (node->decl)->function_end_locus, node->decl);
!   unsigned int start_location = get_combined_location
!     (DECL_STRUCT_FUNCTION (node->decl)->function_start_locus, node->decl);
!   /* When outputting code to builtins location we use line number 0.
!      create_gcov is stupid and happily computes offsets across files.
!      Silently ignore it.  */
!   unsigned int zero_location
! 	  = ((unsigned)(1-DECL_SOURCE_LINE (node->decl))) << 16;
!   for (position_count_map::const_iterator iter = pos_counts.begin ();
!        iter != pos_counts.end ();)
!     if (!counts.contains (&iter->second))
!       {
! 	if (iter->first != end_location
! 	    && iter->first != start_location
! 	    && (iter->first & 65535) != zero_location
! 	    && iter->first
! 	    /* FIXME: dwarf5 does not represent inline stack of debug
! 	       statements and consequently create_gcov is sometimes
! 	       mixing up statements from other functions.  Do not warn
! 	       user about this until this problem is solved.
! 	       We still write info into dump file.  */
! 	    && 0)
! 	  {
! 	    if (!warned)
! 	      warned = warning_at (DECL_SOURCE_LOCATION (node->decl),
! 			    OPT_Wauto_profile,
! 			    "auto-profile of %q+F contains extra statements",
! 			    node->decl);
! 	    if (warned)
! 	      inform (DECL_SOURCE_LOCATION (node->decl),
! 		      "count %" PRIu64 " with relative location +%i,"
! 		      " discriminator %i",
! 		      iter->second.count, iter->first >> 16,
! 		      iter->first & 65535);
! 	    if ((iter->first >> 16) > (end_location >> 16) && warned)
! 	      inform (DECL_SOURCE_LOCATION (node->decl),
! 		      "location is after end of function");
! 	  }
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "Removing unmatched count ");
! 	    dump_afdo_loc (dump_file, iter->first);
! 	    fprintf (dump_file, ":%" PRIu64, iter->second.count);
! 	    for (auto &titer : iter->second.targets)
! 	      fprintf (dump_file, " %s:%" PRIu64,
! 		       afdo_string_table->get_symbol_name (titer.first),
! 		       (int64_t) titer.second);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	iter = pos_counts.erase (iter);
!       }
!     else
!       iter++;
!   warned = false;
!   for (callsite_map::const_iterator iter = callsites.begin ();
!        iter != callsites.end ();)
!     if (!functions.contains (iter->second))
!       {
! 	function_instance *f = iter->second;
! 	/* If we did not see the corresponding statement, warn.  */
! 	if (!functions_to_offline.contains (iter->second))
! 	  {
! 	    if (!warned)
! 	      warned = warning_at (DECL_SOURCE_LOCATION (node->decl),
! 				   OPT_Wauto_profile,
! 				   "auto-profile of %q+F contains"
! 				   " extra callsites",
! 				   node->decl);
! 	    if (warned)
! 	      inform (DECL_SOURCE_LOCATION (node->decl),
! 		      "call of %s with total count %" PRId64
! 		      ", relative location +%i, discriminator %i",
! 		      afdo_string_table->get_symbol_name (iter->first.second),
! 		      iter->second->total_count (), iter->first.first >> 16,
! 		      iter->first.first & 65535);
! 	    if ((iter->first.first >> 16) > (end_location >> 16) && warned)
! 	      inform (DECL_SOURCE_LOCATION (node->decl),
! 		      "location is after end of function");
! 	    if (dump_file)
! 	      {
! 		fprintf (dump_file,
! 			 "Offlining inline with no corresponding gimple stmt ");
! 		f->dump_inline_stack (dump_file);
! 		fprintf (dump_file, "\n");
! 	      }
! 	  }
! 	else if (dump_file)
! 	  {
! 	    fprintf (dump_file,
! 		     "Offlining mismatched inline ");
! 	    f->dump_inline_stack (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	callsites.erase (iter);
! 	offline (f, new_functions);
! 	iter = callsites.begin ();
!       }
!     else
!       iter++;
!   for (auto &iter : callsites)
!     if (cgraph_node *n = iter.second->get_cgraph_node ())
!       iter.second->match (n, new_functions, to_symbol_name);
    return true;
  }
  
! /* Walk inlined functions and if their name is not in SEEN
!    remove it.  Also rename function names as given by
!    to_symbol_name map.  */
  
  void
! function_instance::remove_external_functions
! 	(name_index_set &seen,
!          name_index_map &to_symbol_name,
!          vec <function_instance *> &new_functions)
  {
!   auto_vec <callsite, 20> to_rename;
! 
!   for (callsite_map::const_iterator iter = callsites.begin ();
!        iter != callsites.end ();)
!     if (!seen.contains (iter->first.second))
!       {
! 	function_instance *f = iter->second;
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "  Removing external inline: ");
! 	    f->dump_inline_stack (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	iter = callsites.erase (iter);
! 	f->set_inlined_to (NULL);
! 	f->offline_if_in_set (seen, new_functions);
! 	delete f;
!       }
!     else
!       {
! 	gcc_checking_assert ((int) iter->first.second
! 			     == iter->second->symbol_name ());
! 	int *newn = iter->second->get_call_location () == UNKNOWN_LOCATION
! 		    ? to_symbol_name.get (iter->first.second)
! 		    : NULL;
! 	if (newn)
! 	  {
! 	    gcc_checking_assert (iter->second->inlined_to ());
! 	    to_rename.safe_push (iter->first);
! 	  }
! 	iter->second->remove_external_functions
! 	  (seen, to_symbol_name, new_functions);
! 	++iter;
!       }
!   for (auto &key : to_rename)
!     {
!       auto iter = callsites.find (key);
!       callsite key2 = key;
!       key2.second = *to_symbol_name.get (key.second);
!       iter->second->set_symbol_name (key2.second);
!       callsites.erase (iter);
!       callsites[key2] = iter->second;
!     }
!   auto_vec <int, 20> target_to_rename;
!   for (auto &iter : pos_counts)
!     {
!       for (auto const &titer : iter.second.targets)
! 	{
! 	  int *ren = to_symbol_name.get (titer.first);
! 	  if (ren)
! 	    target_to_rename.safe_push (titer.first);
! 	}
!       while (target_to_rename.length ())
! 	{
! 	  int key = target_to_rename.pop ();
! 	  int key2 = *to_symbol_name.get (key);
! 	  auto i = iter.second.targets.find (key);
! 	  if (iter.second.targets.count (key2) == 0)
! 	    iter.second.targets[key2] = i->second;
! 	  else
! 	    iter.second.targets[key2] += i->second;
! 	  iter.second.targets.erase (i);
! 	}
!     }
! }
! 
! /* Look for inline instances that was not realized and
!    remove them while possibly merging them to offline variants.  */
! 
! void
! function_instance::offline_if_not_realized
! 	(vec <function_instance *> &new_functions)
! {
!   for (callsite_map::const_iterator iter = callsites.begin ();
!        iter != callsites.end ();)
!     if (!iter->second->realized_p ())
!       {
! 	function_instance *f = iter->second;
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "Offlining unrealized inline ");
! 	    f->dump_inline_stack (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
! 	iter = callsites.erase (iter);
! 	offline (f, new_functions);
!       }
!     else
!       {
! 	iter->second->offline_if_not_realized (new_functions);
! 	++iter;
!       }
! }
! 
! /* Dump instance to F indented by INDENT.  */
! 
! void
! function_instance::dump (FILE *f, int indent, bool nested) const
! {
!   if (!nested)
!     fprintf (f, "%*s%s total:%" PRIu64 " head:%" PRId64 "\n", indent, "",
! 	     afdo_string_table->get_symbol_name (symbol_name ()),
! 	     (int64_t) total_count (), (int64_t) head_count ());
!   else
!     fprintf (f, " total:%" PRIu64 "\n", (int64_t)total_count ());
!   for (auto const &iter : pos_counts)
!     {
!       fprintf (f, "%*s", indent + 2, "");
!       dump_afdo_loc (f, iter.first);
!       fprintf (f, ": %" PRIu64, (int64_t)iter.second.count);
! 
!       for (auto const &titer : iter.second.targets)
! 	fprintf (f, "  %s:%" PRIu64,
! 		 afdo_string_table->get_symbol_name (titer.first),
! 		 (int64_t) titer.second);
!       fprintf (f,"\n");
!     }
!   for (auto const &iter : callsites)
!     {
!       fprintf (f, "%*s", indent + 2, "");
!       dump_afdo_loc (f, iter.first.first);
!       fprintf (f, ": %s",
! 	       afdo_string_table->get_symbol_name (iter.first.second));
!       iter.second->dump (f, indent + 2, true);
!       gcc_checking_assert ((int) iter.first.second
! 			   == iter.second->symbol_name ());
!     }
! }
! 
! /* Dump inline path.  */
! 
! void
! function_instance::dump_inline_stack (FILE *f) const
! {
!   auto_vec <callsite, 20> stack;
!   const function_instance *p = this, *s = inlined_to ();
!   while (s)
!     {
!       bool found = false;
!       for (callsite_map::const_iterator iter = s->callsites.begin ();
! 	   iter != s->callsites.end (); ++iter)
! 	if (iter->second == p)
! 	  {
! 	    gcc_checking_assert (
! 	      !found && (int) iter->first.second == p->symbol_name ());
! 	    stack.safe_push ({iter->first.first, s->symbol_name ()});
! 	    found = true;
! 	  }
!       gcc_checking_assert (found);
!       p = s;
!       s = s->inlined_to ();
!     }
!   for (callsite &s: stack)
!     {
!       fprintf (f, "%s:", afdo_string_table->get_symbol_name (s.second));
!       dump_afdo_loc (f, s.first);
!       fprintf (f, " ");
!     }
!   fprintf (f, "%s", afdo_string_table->get_symbol_name (symbol_name ()));
! }
! 
! /* Dump instance to stderr.  */
! 
! void
! function_instance::debug () const
! {
!   dump (stderr);
! }
! 
! /* Return profile info for LOC in INFO.  */
! 
! bool
! function_instance::get_count_info (location_t loc, count_info *info) const
! {
!   position_count_map::const_iterator iter = pos_counts.find (loc);
    if (iter == pos_counts.end ())
!     return false;
!   *info = iter->second;
!   return true;
  }
  
  /* Read the inlined indirect call target profile for STMT and store it in
     MAP, return the total count for all inlined indirect calls.  */
  
  gcov_type
! function_instance::find_icall_target_map (tree fn, gcall *stmt,
                                            icall_target_map *map) const
  {
    gcov_type ret = 0;
!   unsigned stmt_offset = get_relative_location_for_stmt (fn, stmt);
  
    for (callsite_map::const_iterator iter = callsites.begin ();
         iter != callsites.end (); ++iter)
      {
!       unsigned callee = iter->second->symbol_name ();
        /* Check if callsite location match the stmt.  */
!       if (iter->first.first != stmt_offset
! 	  || iter->second->removed_icall_target ())
! 	continue;
        struct cgraph_node *node = cgraph_node::get_for_asmname (
! 	get_identifier (afdo_string_table->get_symbol_name (callee)));
        if (node == NULL)
          continue;
!       (*map)[callee] = iter->second->total_count () * afdo_count_scale;
!       ret += iter->second->total_count () * afdo_count_scale;
      }
    return ret;
  }
  
+ /* Remove the inlined indirect call target profile for STMT.  */
+ 
+ void
+ function_instance::remove_icall_target (tree fn, gcall *stmt)
+ {
+   unsigned stmt_offset = get_relative_location_for_stmt (fn, stmt);
+   int n = 0;
+ 
+   for (auto iter : callsites)
+     if (iter.first.first == stmt_offset)
+       {
+ 	iter.second->remove_icall_target ();
+ 	n++;
+       }
+   /* TODO: If we add support for multiple targets, we may want to
+      remove only those we succesfully inlined.  */
+   gcc_assert (n);
+ }
+ 
+ /* Offline all functions not defined in the current unit.
+    We will not be able to early inline them.
+    Doing so early will get VPT decisions more realistic.  */
+ 
+ void
+ autofdo_source_profile::offline_external_functions ()
+ {
+   /* First check all available definitions and mark their names as
+      visible.  */
+   cgraph_node *node;
+   name_index_set seen;
+   name_index_map to_symbol_name;
+   size_t last_name;
+ 
+   /* Add renames erasing suffixes produced by late clones, such as
+      .isra, .ipcp.  */
+   for (size_t i = 1; i < afdo_string_table->num_entries (); i++)
+     {
+       const char *n1 = afdo_string_table->get_symbol_name (i);
+       std::pair<const char *, int> name_filename
+ 	= afdo_string_table->get_original_name (n1);
+       const char *n2 = name_filename.first;
+       if (!strcmp (n1, n2))
+ 	{
+ 	  /* Watch for duplicate entries.
+ 	     This seems to happen in practice and may be useful to distinguish
+ 	     multiple static symbols of the same name, but we do not realy
+ 	     have a way to differentiate them in get_symbol_name lookup.  */
+ 	  int index = afdo_string_table->get_index (n1);
+ 	  if (index != (int)i)
+ 	    {
+ 	      if (dump_file)
+ 		fprintf (dump_file,
+ 			 "string table in auto-profile contains"
+ 			 " duplicated name %s\n", n1);
+ 	      to_symbol_name.put (i, index);
+ 	    }
+ 	  continue;
+ 	}
+       if (dump_file)
+ 	fprintf (dump_file, "Adding rename removing clone suffixes %s -> %s\n",
+ 		 n1, n2);
+       int index = afdo_string_table->get_index (n2);
+       if (index == -1)
+ 	index = afdo_string_table->add_symbol_name (xstrdup (n2),
+ 						    name_filename.second);
+       to_symbol_name.put (i, index);
+     }
+   last_name = afdo_string_table->num_entries ();
+   FOR_EACH_DEFINED_FUNCTION (node)
+     {
+       const char *name = raw_symbol_name (node->decl);
+       const char *dwarf_name = lang_hooks.dwarf_name (node->decl, 0);
+       int index = afdo_string_table->get_index (name);
+ 
+       /* Inline function may be identified by its dwarf names;
+ 	 rename them to symbol names.  With LTO dwarf names are
+ 	 lost in free_lange_data.  */
+       if (strcmp (name, dwarf_name))
+ 	{
+ 	  int index2 = afdo_string_table->get_index (dwarf_name);
+ 	  if (index2 != -1)
+ 	    {
+ 	      if (index == -1)
+ 		index = afdo_string_table->add_symbol_name (
+ 		  xstrdup (name),
+ 		  afdo_string_table->add_filename (
+ 		    get_normalized_path (DECL_SOURCE_FILE (node->decl))));
+ 	      if (dump_file)
+ 		{
+ 		  fprintf (dump_file, "Adding dwarf->symbol rename %s -> %s\n",
+ 			   afdo_string_table->get_symbol_name (index2), name);
+ 		  if (to_symbol_name.get (index2))
+ 		    fprintf (dump_file, "Dwarf name is not unique");
+ 		}
+ 	      to_symbol_name.put (index2, index);
+ 	      seen.add (index2);
+ 	    }
+ 	}
+       if (index != -1)
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "%s is defined in node %s\n",
+ 		     afdo_string_table->get_symbol_name (index),
+ 		     node->dump_name ());
+ 	  seen.add (index);
+ 	}
+       else
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      if (dwarf_name && strcmp (dwarf_name, name))
+ 		fprintf (dump_file,
+ 			 "Node %s not in auto profile (%s neither %s)\n",
+ 			 node->dump_name (),
+ 			 name,
+ 			 dwarf_name);
+ 	      else
+ 		fprintf (dump_file,
+ 			 "Node %s (symbol %s) not in auto profile\n",
+ 			 node->dump_name (),
+ 			 name);
+ 	    }
+ 	}
+     }
+ 
+   for (auto iter : to_symbol_name)
+     {
+       /* In case dwarf name was duplicated and later renamed,
+ 	 handle both.  No more than one hop should be needed.  */
+       int *newn = to_symbol_name.get (iter.second);
+       if (newn)
+ 	iter.second = *newn;
+       gcc_checking_assert (!to_symbol_name.get (iter.second));
+       if (seen.contains (iter.second))
+ 	seen.add (iter.first);
+     }
+ 
+   /* Now process all toplevel (offline) function instances.
+ 
+      If instance has no definition in this translation unit,
+      first offline all inlined functions which are defined here
+      (so we do not lose profile due to cross-module inlining
+      done by link-time optimizers).
+ 
+      If instance has a definition, look into all inlined functions
+      and remove external ones (result of cross-module inlining).
+ 
+      TODO: after early-inlining we ought to offline all functions
+      that were not inlined.  */
+   vec <function_instance *>&fns = duplicate_functions_;
+   auto_vec <function_instance *, 20>fns2;
+   /* Populate worklist with all functions to process.  Processing
+      may introduce new functions by offlining.  */
+   for (auto &function : map_)
+     {
+       function.second->set_in_worklist ();
+       fns.safe_push (function.second);
+     }
+ 
+   /* There are two worklists.  First all functions needs to be matched
+      with gimple body and only then we want to do merging, since matching
+      should be done on unmodified profile and merging works better if
+      mismatches are already resolved both in source and destination.  */
+   while (fns.length () || fns2.length ())
+     {
+       /* In case renaming introduced new name, keep seen up to date.  */
+       for (; last_name < afdo_string_table->num_entries (); last_name++)
+ 	{
+ 	  const char *name = afdo_string_table->get_symbol_name (last_name);
+ 	  symtab_node *n
+ 	    = afdo_string_table->get_cgraph_node (last_name);
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "New name %s %s\n", name,
+ 		     n ? "wth corresponding definition"
+ 		     : "with no corresponding definition");
+ 	  if (n)
+ 	    seen.add (last_name);
+ 	}
+       if (fns.length ())
+ 	{
+ 	  function_instance *f = fns.pop ();
+ 	  if (f->get_location () == UNKNOWN_LOCATION)
+ 	    {
+ 	      int index = f->symbol_name ();
+ 	      int *newn = to_symbol_name.get (index);
+ 	      if (newn)
+ 		{
+ 		  if (find_function_instance (f->get_descriptor ()) == f)
+ 		    remove_function_instance (f);
+ 		  f->set_symbol_name (*newn);
+ 		  if (!find_function_instance (f->get_descriptor ()))
+ 		    add_function_instance (f);
+ 		}
+ 	      if (cgraph_node *n = f->get_cgraph_node ())
+ 		{
+ 		  gcc_checking_assert (seen.contains (f->symbol_name ()));
+ 		  f->match (n, fns, to_symbol_name);
+ 		}
+ 	    }
+ 	  fns2.safe_push (f);
+ 	}
+       else
+ 	{
+ 	  function_instance *f = fns2.pop ();
+ 	  int index = f->symbol_name ();
+ 	  gcc_checking_assert (f->in_worklist_p ());
+ 
+ 	  /* If map has different function_instance of same name, then
+ 	     this is a duplicated entry which needs to be merged.  */
+ 	  function_instance *index_inst
+ 	    = find_function_instance (f->get_descriptor ());
+ 	  if (index_inst && index_inst != f)
+ 	    {
+ 	      if (dump_file)
+ 		{
+ 		  fprintf (dump_file, "Merging duplicate instance: ");
+ 		  f->dump_inline_stack (dump_file);
+ 		  fprintf (dump_file, "\n");
+ 		}
+ 	      index_inst->merge (f, fns);
+ 	      gcc_checking_assert (!f->inlined_to ());
+ 	      f->clear_in_worklist ();
+ 	      delete f;
+ 	    }
+ 	  /* If name was not seen in the symbol table, remove it.  */
+ 	  else if (!seen.contains (index))
+ 	    {
+ 	      f->offline_if_in_set (seen, fns);
+ 	      f->clear_in_worklist ();
+ 	      if (dump_file)
+ 		fprintf (dump_file, "Removing external %s\n",
+ 			 afdo_string_table->get_symbol_name (
+ 			   f->symbol_name ()));
+ 	      if (index_inst == f)
+ 		remove_function_instance (f);
+ 	      delete f;
+ 	    }
+ 	  /* If this is offline function instance seen in this
+ 	     translation unit offline external inlines and possibly
+ 	     rename from dwarf name.  */
+ 	  else
+ 	    {
+ 	      f->remove_external_functions (seen, to_symbol_name, fns);
+ 	      f->clear_in_worklist ();
+ 	    }
+ 	}
+     }
+   if (dump_file)
+     for (auto const &function : map_)
+       {
+ 	seen.contains (function.second->symbol_name ());
+ 	function.second->dump (dump_file);
+       }
+ }
+ 
+ /* Walk scope block BLOCK and mark all inlined functions as realized.  */
+ 
+ static void
+ walk_block (tree fn, function_instance *s, tree block)
+ {
+   if (inlined_function_outer_scope_p (block))
+     {
+       unsigned loc = get_relative_location_for_locus
+ 		      (fn, BLOCK_SUPERCONTEXT (block),
+ 		       BLOCK_SOURCE_LOCATION (block));
+       function_instance *ns
+ 	= s->get_function_instance_by_decl
+ 		  (loc, BLOCK_ABSTRACT_ORIGIN (block),
+ 		   BLOCK_SOURCE_LOCATION (block));
+       if (!ns)
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      fprintf (dump_file, " Failed to find inlined instance:");
+ 	      s->dump_inline_stack (dump_file);
+ 	      fprintf (dump_file, ":");
+ 	      dump_afdo_loc (dump_file, loc);
+ 	      fprintf (dump_file, " %s\n",
+ 		       raw_symbol_name (BLOCK_ABSTRACT_ORIGIN (block)));
+ 	    }
+ 	  return;
+ 	}
+       s = ns;
+       if (dump_file)
+ 	{
+ 	  fprintf (dump_file, " Marking realized inline: ");
+ 	  s->dump_inline_stack (dump_file);
+ 	  fprintf (dump_file, "\n");
+ 	}
+       s->set_realized ();
+     }
+   for (tree t = BLOCK_SUBBLOCKS (block); t ; t = BLOCK_CHAIN (t))
+     walk_block (fn, s, t);
+ }
+ 
+ /* Offline all inline functions that are not marked as realized.
+    This will merge their profile into offline versions where available.
+    Also remove all functions we will no longer use.  */
+ 
+ void
+ autofdo_source_profile::offline_unrealized_inlines ()
+ {
+   auto_vec <function_instance *>fns;
+   /* Populate worklist with all functions to process.  Processing
+      may introduce new functions by offlining.  */
+   for (auto const &function : map_)
+     {
+       fns.safe_push (function.second);
+       function.second->set_in_worklist ();
+     }
+   while (fns.length ())
+     {
+       function_instance *f = fns.pop ();
+       int index = f->symbol_name ();
+       function_instance *index_inst
+ 	= find_function_instance (f->get_descriptor ());
+       bool in_map = index_inst != nullptr;
+       if (in_map)
+ 	if (cgraph_node *n = f->get_cgraph_node ())
+ 	  {
+ 	    if (dump_file)
+ 	      fprintf (dump_file, "Marking realized %s\n",
+ 		       afdo_string_table->get_symbol_name (index));
+ 	    f->set_realized ();
+ 	    if (DECL_INITIAL (n->decl)
+ 		&& DECL_INITIAL (n->decl) != error_mark_node)
+ 	      walk_block (n->decl, f, DECL_INITIAL (n->decl));
+ 	  }
+       f->offline_if_not_realized (fns);
+       gcc_checking_assert ((in_map || !f->realized_p ())
+ 			   && f->in_worklist_p ());
+ 
+       /* If this is duplicated instance, merge it into one in map.  */
+       if (in_map && index_inst != f)
+ 	{
+ 	  if (dump_file)
+ 	    {
+ 	      fprintf (dump_file, "Merging duplicate instance: ");
+ 	      f->dump_inline_stack (dump_file);
+ 	      fprintf (dump_file, "\n");
+ 	    }
+ 	  index_inst->merge (f, fns);
+ 	  f->clear_in_worklist ();
+ 	  gcc_checking_assert (!f->inlined_to ());
+ 	  delete f;
+ 	}
+       /* If function is not in symbol table, remove it.  */
+       else if (!f->realized_p ())
+ 	{
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "Removing optimized out function %s\n",
+ 		     afdo_string_table->get_symbol_name (f->symbol_name ()));
+ 	  if (in_map)
+ 	    remove_function_instance (index_inst);
+ 	  f->clear_in_worklist ();
+ 	  delete f;
+ 	}
+       else
+ 	f->clear_in_worklist ();
+     }
+   if (dump_file)
+     for (auto const &function : map_)
+       function.second->dump (dump_file);
+ }
+ 
  /* Read the profile and create a function_instance with head count as
     HEAD_COUNT. Recursively read callsites to create nested function_instances
     too. STACK is used to track the recursive creation process.  */
*************** function_instance::find_icall_target_map
*** 619,624 ****
--- 2716,2722 ----
  /* function instance profile format:
  
     ENTRY_COUNT: 8 bytes
+    TIMESTAMP: 8 bytes (only for toplevel symbols)
     NAME_INDEX: 4 bytes
     NUM_POS_COUNTS: 4 bytes
     NUM_CALLSITES: 4 byte
*************** function_instance::find_icall_target_map
*** 645,656 ****
  
  function_instance *
  function_instance::read_function_instance (function_instance_stack *stack,
!                                            gcov_type head_count)
  {
    unsigned name = gcov_read_unsigned ();
    unsigned num_pos_counts = gcov_read_unsigned ();
    unsigned num_callsites = gcov_read_unsigned ();
!   function_instance *s = new function_instance (name, head_count);
    stack->safe_push (s);
  
    for (unsigned i = 0; i < num_pos_counts; i++)
--- 2743,2768 ----
  
  function_instance *
  function_instance::read_function_instance (function_instance_stack *stack,
! 					   bool toplevel)
  {
+   gcov_type_unsigned timestamp = 0;
+   gcov_type head_count = -1;
+   if (toplevel)
+     {
+       head_count = gcov_read_counter ();
+       timestamp = (gcov_type_unsigned) gcov_read_counter ();
+     }
    unsigned name = gcov_read_unsigned ();
    unsigned num_pos_counts = gcov_read_unsigned ();
    unsigned num_callsites = gcov_read_unsigned ();
!   function_instance *s
!     = new function_instance (name,
! 			     afdo_string_table->get_filename_by_symbol (name),
! 			     head_count);
!   if (timestamp > 0)
!     s->set_timestamp (timestamp);
!   if (!stack->is_empty ())
!     s->set_inlined_to (stack->last ());
    stack->safe_push (s);
  
    for (unsigned i = 0; i < num_pos_counts; i++)
*************** function_instance::read_function_instanc
*** 659,702 ****
        unsigned num_targets = gcov_read_unsigned ();
        gcov_type count = gcov_read_counter ();
        s->pos_counts[offset].count = count;
        for (unsigned j = 0; j < stack->length (); j++)
          (*stack)[j]->total_count_ += count;
        for (unsigned j = 0; j < num_targets; j++)
          {
!           /* Only indirect call target histogram is supported now.  */
!           gcov_read_unsigned ();
!           gcov_type target_idx = gcov_read_counter ();
!           s->pos_counts[offset].targets[target_idx] = gcov_read_counter ();
          }
      }
    for (unsigned i = 0; i < num_callsites; i++)
      {
        unsigned offset = gcov_read_unsigned ();
        function_instance *callee_function_instance
!           = read_function_instance (stack, 0);
!       s->callsites[std::make_pair (offset, callee_function_instance->name ())]
!           = callee_function_instance;
      }
    stack->pop ();
    return s;
  }
  
- /* Sum of counts that is used during annotation.  */
- 
- gcov_type
- function_instance::total_annotated_count () const
- {
-   gcov_type ret = 0;
-   for (callsite_map::const_iterator iter = callsites.begin ();
-        iter != callsites.end (); ++iter)
-     ret += iter->second->total_annotated_count ();
-   for (position_count_map::const_iterator iter = pos_counts.begin ();
-        iter != pos_counts.end (); ++iter)
-     if (iter->second.annotated)
-       ret += iter->second.count;
-   return ret;
- }
- 
  /* Member functions for autofdo_source_profile.  */
  
  autofdo_source_profile::~autofdo_source_profile ()
--- 2771,2800 ----
        unsigned num_targets = gcov_read_unsigned ();
        gcov_type count = gcov_read_counter ();
        s->pos_counts[offset].count = count;
+ 
        for (unsigned j = 0; j < stack->length (); j++)
          (*stack)[j]->total_count_ += count;
        for (unsigned j = 0; j < num_targets; j++)
          {
! 	  /* Only indirect call target histogram is supported now.  */
! 	  gcov_read_unsigned ();
! 	  gcov_type target_idx = gcov_read_counter ();
! 	  s->pos_counts[offset].targets[target_idx] = gcov_read_counter ();
          }
      }
    for (unsigned i = 0; i < num_callsites; i++)
      {
        unsigned offset = gcov_read_unsigned ();
        function_instance *callee_function_instance
! 	= read_function_instance (stack, false);
!       s->callsites[std::make_pair (offset,
! 				   callee_function_instance->symbol_name ())]
! 	= callee_function_instance;
      }
    stack->pop ();
    return s;
  }
  
  /* Member functions for autofdo_source_profile.  */
  
  autofdo_source_profile::~autofdo_source_profile ()
*************** autofdo_source_profile::~autofdo_source_
*** 709,755 ****
  /* For a given DECL, returns the top-level function_instance.  */
  
  function_instance *
! autofdo_source_profile::get_function_instance_by_decl (tree decl) const
  {
    int index = afdo_string_table->get_index_by_decl (decl);
    if (index == -1)
      return NULL;
!   name_function_instance_map::const_iterator ret = map_.find (index);
!   return ret == map_.end () ? NULL : ret->second;
  }
  
  /* Find count_info for a given gimple STMT. If found, store the count_info
     in INFO and return true; otherwise return false.  */
  
  bool
! autofdo_source_profile::get_count_info (gimple *stmt, count_info *info) const
  {
!   if (LOCATION_LOCUS (gimple_location (stmt)) == cfun->function_end_locus)
      return false;
  
    inline_stack stack;
!   get_inline_stack (gimple_location (stmt), &stack);
    if (stack.length () == 0)
      return false;
    function_instance *s = get_function_instance_by_inline_stack (stack);
    if (s == NULL)
      return false;
!   return s->get_count_info (stack[0].second, info);
! }
! 
! /* Mark LOC as annotated.  */
! 
! void
! autofdo_source_profile::mark_annotated (location_t loc)
! {
!   inline_stack stack;
!   get_inline_stack (loc, &stack);
!   if (stack.length () == 0)
!     return;
!   function_instance *s = get_function_instance_by_inline_stack (stack);
!   if (s == NULL)
!     return;
!   s->mark_annotated (stack[0].second);
  }
  
  /* Update value profile INFO for STMT from the inlined indirect callsite.
--- 2807,2870 ----
  /* For a given DECL, returns the top-level function_instance.  */
  
  function_instance *
! autofdo_source_profile::get_function_instance_by_decl (tree decl, const char *filename) const
  {
+   if (!filename)
+     filename = get_normalized_path (DECL_SOURCE_FILE (decl));
    int index = afdo_string_table->get_index_by_decl (decl);
    if (index == -1)
      return NULL;
! 
!   function_instance_descriptor descriptor (
!     afdo_string_table->get_filename_index (filename), index);
!   return find_function_instance (descriptor);
! }
! 
! /* For a given DESCRIPTOR, return the matching instance if found.  */
! 
! function_instance *
! autofdo_source_profile::get_function_instance_by_descriptor (
!   function_instance_descriptor descriptor) const
! {
!   return find_function_instance (descriptor);
! }
! 
! /* Add function instance FN.  */
! 
! void
! autofdo_source_profile::add_function_instance (function_instance *fn)
! {
!   gcc_checking_assert (map_.find (fn->get_descriptor ()) == map_.end ());
!   map_[fn->get_descriptor ()] = fn;
  }
  
  /* Find count_info for a given gimple STMT. If found, store the count_info
     in INFO and return true; otherwise return false.  */
  
  bool
! autofdo_source_profile::get_count_info (gimple *stmt, count_info *info,
! 					cgraph_node *node) const
  {
!   gcc_checking_assert (stmt_loc_used_by_debug_info (stmt));
!   return get_count_info (gimple_location (stmt), info, node);
! }
! 
! bool
! autofdo_source_profile::get_count_info (location_t gimple_loc,
! 					count_info *info,
! 					cgraph_node *node) const
! {
!   if (LOCATION_LOCUS (gimple_loc) == cfun->function_end_locus)
      return false;
  
    inline_stack stack;
!   get_inline_stack_in_node (gimple_loc, &stack, node);
    if (stack.length () == 0)
      return false;
    function_instance *s = get_function_instance_by_inline_stack (stack);
    if (s == NULL)
      return false;
!   return s->get_count_info (stack[0].afdo_loc, info);
  }
  
  /* Update value profile INFO for STMT from the inlined indirect callsite.
*************** autofdo_source_profile::mark_annotated (
*** 757,763 ****
  
  bool
  autofdo_source_profile::update_inlined_ind_target (gcall *stmt,
!                                                    count_info *info)
  {
    if (dump_file)
      {
--- 2872,2879 ----
  
  bool
  autofdo_source_profile::update_inlined_ind_target (gcall *stmt,
! 						   count_info *info,
! 						   cgraph_node *node)
  {
    if (dump_file)
      {
*************** autofdo_source_profile::update_inlined_i
*** 768,783 ****
    if (LOCATION_LOCUS (gimple_location (stmt)) == cfun->function_end_locus)
      {
        if (dump_file)
! 	fprintf (dump_file, " good locus\n");
        return false;
      }
  
    count_info old_info;
!   get_count_info (stmt, &old_info);
    gcov_type total = 0;
    for (icall_target_map::const_iterator iter = old_info.targets.begin ();
         iter != old_info.targets.end (); ++iter)
      total += iter->second;
  
    /* Program behavior changed, original promoted (and inlined) target is not
       hot any more. Will avoid promote the original target.
--- 2884,2900 ----
    if (LOCATION_LOCUS (gimple_location (stmt)) == cfun->function_end_locus)
      {
        if (dump_file)
! 	fprintf (dump_file, " bad locus (function end)\n");
        return false;
      }
  
    count_info old_info;
!   get_count_info (stmt, &old_info, node);
    gcov_type total = 0;
    for (icall_target_map::const_iterator iter = old_info.targets.begin ();
         iter != old_info.targets.end (); ++iter)
      total += iter->second;
+   total *= afdo_count_scale;
  
    /* Program behavior changed, original promoted (and inlined) target is not
       hot any more. Will avoid promote the original target.
*************** autofdo_source_profile::update_inlined_i
*** 796,802 ****
      }
  
    inline_stack stack;
!   get_inline_stack (gimple_location (stmt), &stack);
    if (stack.length () == 0)
      {
        if (dump_file)
--- 2913,2919 ----
      }
  
    inline_stack stack;
!   get_inline_stack_in_node (gimple_location (stmt), &stack, node);
    if (stack.length () == 0)
      {
        if (dump_file)
*************** autofdo_source_profile::update_inlined_i
*** 807,830 ****
    if (s == NULL)
      {
        if (dump_file)
! 	fprintf (dump_file, " function not found in inline stack\n");
        return false;
      }
    icall_target_map map;
!   if (s->find_icall_target_map (stmt, &map) == 0)
      {
        if (dump_file)
! 	fprintf (dump_file, " no target map\n");
        return false;
      }
    for (icall_target_map::const_iterator iter = map.begin ();
         iter != map.end (); ++iter)
      info->targets[iter->first] = iter->second;
    if (dump_file)
!     fprintf (dump_file, " looks good\n");
    return true;
  }
  
  /* Find total count of the callee of EDGE.  */
  
  gcov_type
--- 2924,2969 ----
    if (s == NULL)
      {
        if (dump_file)
! 	{
! 	  fprintf (dump_file, " function not found in inline stack:");
! 	  dump_inline_stack (dump_file, &stack);
! 	}
        return false;
      }
    icall_target_map map;
!   if (s->find_icall_target_map (node ? node->decl
! 				: current_function_decl,
! 				stmt, &map) == 0)
      {
        if (dump_file)
! 	{
! 	  fprintf (dump_file, " no target map for stack: ");
! 	  dump_inline_stack (dump_file, &stack);
! 	}
        return false;
      }
    for (icall_target_map::const_iterator iter = map.begin ();
         iter != map.end (); ++iter)
      info->targets[iter->first] = iter->second;
    if (dump_file)
!     {
!       fprintf (dump_file, " looks good; stack:");
!       dump_inline_stack (dump_file, &stack);
!     }
    return true;
  }
  
+ void
+ autofdo_source_profile::remove_icall_target (cgraph_edge *e)
+ {
+   autofdo::inline_stack stack;
+   autofdo::get_inline_stack_in_node (gimple_location (e->call_stmt),
+ 				     &stack, e->caller);
+   autofdo::function_instance *s
+ 	  = get_function_instance_by_inline_stack (stack);
+   s->remove_icall_target (e->caller->decl, e->call_stmt);
+ }
+ 
  /* Find total count of the callee of EDGE.  */
  
  gcov_type
*************** autofdo_source_profile::get_callsite_tot
*** 832,847 ****
      struct cgraph_edge *edge) const
  {
    inline_stack stack;
!   stack.safe_push (std::make_pair (edge->callee->decl, 0));
!   get_inline_stack (gimple_location (edge->call_stmt), &stack);
  
    function_instance *s = get_function_instance_by_inline_stack (stack);
!   if (s == NULL
!       || afdo_string_table->get_index (IDENTIFIER_POINTER (
!              DECL_ASSEMBLER_NAME (edge->callee->decl))) != s->name ())
!     return 0;
  
!   return s->total_count ();
  }
  
  /* Read AutoFDO profile and returns TRUE on success.  */
--- 2971,3010 ----
      struct cgraph_edge *edge) const
  {
    inline_stack stack;
!   stack.safe_push ({edge->callee->decl, 0, UNKNOWN_LOCATION});
! 
!   get_inline_stack_in_node (gimple_location (edge->call_stmt), &stack,
! 			    edge->caller);
!   if (dump_file)
!     {
!       if (!edge->caller->inlined_to)
! 	fprintf (dump_file, "Looking up afdo profile for call %s -> %s stack:",
! 		 edge->caller->dump_name (), edge->callee->dump_name ());
!       else
! 	fprintf (dump_file, "Looking up afdo profile for call %s -> %s transitively %s stack:",
! 		 edge->caller->dump_name (), edge->callee->dump_name (),
! 		 edge->caller->inlined_to->dump_name ());
!       dump_inline_stack (dump_file, &stack);
!     }
  
    function_instance *s = get_function_instance_by_inline_stack (stack);
!   if (s == NULL)
!     {
!       if (dump_file)
! 	fprintf (dump_file, "No function instance found\n");
!       return 0;
!     }
!   if (afdo_string_table->get_index_by_decl (edge->callee->decl)
!       != s->symbol_name ())
!     {
!       if (dump_file)
! 	fprintf (dump_file, "Mismatched name of callee %s and profile %s\n",
! 		 raw_symbol_name (edge->callee->decl),
! 		 afdo_string_table->get_symbol_name (s->symbol_name ()));
!       return 0;
!     }
  
!   return s->total_count () * afdo_count_scale;
  }
  
  /* Read AutoFDO profile and returns TRUE on success.  */
*************** autofdo_source_profile::read ()
*** 865,870 ****
--- 3028,3036 ----
        return false;
      }
  
+   gcc_checking_assert (!afdo_source_profile);
+   afdo_source_profile = this;
+ 
    /* Skip the length of the section.  */
    gcov_read_unsigned ();
  
*************** autofdo_source_profile::read ()
*** 874,883 ****
    for (unsigned i = 0; i < function_num; i++)
      {
        function_instance::function_instance_stack stack;
!       function_instance *s = function_instance::read_function_instance (
!           &stack, gcov_read_counter ());
!       map_[s->name ()] = s;
      }
    return true;
  }
  
--- 3040,3096 ----
    for (unsigned i = 0; i < function_num; i++)
      {
        function_instance::function_instance_stack stack;
!       function_instance *s
! 	= function_instance::read_function_instance (&stack);
! 
!       if (find_function_instance (s->get_descriptor ()) == nullptr)
! 	add_function_instance (s);
!       else
! 	fatal_error (UNKNOWN_LOCATION,
! 		     "auto-profile contains duplicated function instance %s",
! 		     afdo_string_table->get_symbol_name (s->symbol_name ()));
!       s->prop_timestamp ();
!       timestamp_info_map.insert({s->timestamp (), 0});
      }
+ 
+   /* timestamp_info_map is std::map with timestamp as key,
+      so it's already sorted in ascending order wrt timestamps.
+      This loop maps function with lowest timestamp to 1, and so on.
+      In afdo_annotate_cfg, node->tp_first_run is then set to corresponding
+      tp_first_run value.  */
+ 
+   int tp_first_run = 1;
+   for (auto &p : timestamp_info_map)
+     p.second = tp_first_run++;
+ 
+   afdo_profile_info->sum_max = afdo_summary_info->max_count;
+   /* Scale up the profile, but leave some bits in case some counts gets
+      bigger than sum_max eventually.  */
+   if (afdo_profile_info->sum_max)
+     afdo_count_scale
+       = MAX (((gcov_type)1 << (profile_count::n_bits - 10))
+ 	     / afdo_profile_info->sum_max, 1);
+   afdo_profile_info->cutoff *= afdo_count_scale;
+   /* Derive the hot count threshold from the profile summary.  */
+   afdo_hot_bb_threshold = afdo_summary_info->get_threshold_count (
+ 			    param_hot_bb_count_ws_permille * 1000)
+ 			  * afdo_count_scale;
+   set_hot_bb_threshold (afdo_hot_bb_threshold);
+   if (dump_file)
+     fprintf (dump_file,
+ 	     "Max count in profile %" PRIu64 "\n"
+ 	     "Setting scale %" PRIu64 "\n"
+ 	     "Scaled max count %" PRIu64 "\n"
+ 	     "Cutoff %" PRIu64 "\n"
+ 	     "Unscaled hot count threshold %" PRIu64 "\n"
+ 	     "Hot count threshold %" PRIu64 "\n\n",
+ 	     (int64_t) afdo_profile_info->sum_max, (int64_t) afdo_count_scale,
+ 	     (int64_t) (afdo_profile_info->sum_max * afdo_count_scale),
+ 	     (int64_t) afdo_profile_info->cutoff,
+ 	     (int64_t) afdo_summary_info->get_threshold_count (
+ 	       param_hot_bb_count_ws_permille * 1000),
+ 	     (int64_t) afdo_hot_bb_threshold);
+   afdo_profile_info->sum_max *= afdo_count_scale;
    return true;
  }
  
*************** function_instance *
*** 888,908 ****
  autofdo_source_profile::get_function_instance_by_inline_stack (
      const inline_stack &stack) const
  {
!   name_function_instance_map::const_iterator iter = map_.find (
!       afdo_string_table->get_index_by_decl (stack[stack.length () - 1].first));
!   if (iter == map_.end())
!     return NULL;
!   function_instance *s = iter->second;
!   for (unsigned i = stack.length() - 1; i > 0; i--)
      {
!       s = s->get_function_instance_by_decl (
!           stack[i].second, stack[i - 1].first);
        if (s == NULL)
!         return NULL;
      }
    return s;
  }
  
  /* Module profile is only used by LIPO. Here we simply ignore it.  */
  
  static void
--- 3101,3191 ----
  autofdo_source_profile::get_function_instance_by_inline_stack (
      const inline_stack &stack) const
  {
!   function_instance_descriptor descriptor (
!     afdo_string_table->get_filename_index (
!       get_normalized_path (DECL_SOURCE_FILE (stack[stack.length () - 1].decl))),
!     afdo_string_table->get_index_by_decl (stack[stack.length () - 1].decl));
!   function_instance *s = find_function_instance (descriptor);
! 
!   if (s == NULL)
      {
!       if (dump_file)
! 	fprintf (dump_file, "No offline instance for %s\n",
! 		 raw_symbol_name (stack[stack.length () - 1].decl));
!       return NULL;
!     }
! 
!   for (unsigned i = stack.length () - 1; i > 0; i--)
!     {
!       s = s->get_function_instance_by_decl (stack[i].afdo_loc,
! 					    stack[i - 1].decl,
! 					    stack[i].location);
        if (s == NULL)
! 	{
! 	  /* afdo inliner extends the stack by last entry with unknown
! 	     location while checking if function was inlined during train run.
! 	     We do not want to print diagnostics about every function
! 	     which is not inlined.  */
! 	  if (s && dump_enabled_p () && stack[i].location != UNKNOWN_LOCATION)
! 	    dump_printf_loc (MSG_NOTE | MSG_PRIORITY_INTERNALS,
! 			     dump_user_location_t::from_location_t
! 			       (stack[i].location),
! 			      "auto-profile has no inlined function instance "
! 			      "for inlined call of %s at relative "
! 			      " location +%i, discriminator %i\n",
! 			     raw_symbol_name (stack[i - 1].decl),
! 			     stack[i].afdo_loc >> 16,
! 			     stack[i].afdo_loc & 65535);
! 	  return NULL;
! 	}
      }
    return s;
  }
  
+ /* Find the matching function instance which has DESCRIPTOR as its
+    descriptor.  If not found, also try checking if an instance exists with the
+    same name which has no associated filename.  */
+ 
+ autofdo_source_profile::name_function_instance_map::const_iterator
+ autofdo_source_profile::find_iter_for_function_instance (
+   function_instance_descriptor descriptor) const
+ {
+   auto it = map_.find (descriptor);
+ 
+   /* Try searching for the symbol not having a filename if it isn't found.  */
+   if (it == map_.end ())
+     it = map_.find (
+       function_instance_descriptor (string_table::unknown_filename,
+ 				    (int) descriptor.symbol_name ()));
+   return it;
+ }
+ 
+ /* Similar to the above, but return a pointer to the instance instead of an
+    iterator.  */
+ 
+ function_instance *
+ autofdo_source_profile::find_function_instance (
+   function_instance_descriptor descriptor) const
+ {
+   auto it = find_iter_for_function_instance (descriptor);
+   return it == map_.end () ? NULL : it->second;
+ }
+ 
+ /* Remove a function instance from the map.  Returns true if the entry was
+    actually deleted.  */
+ 
+ bool
+ autofdo_source_profile::remove_function_instance (function_instance *inst)
+ {
+   auto iter = find_iter_for_function_instance (inst->get_descriptor ());
+   if (iter != map_.end ())
+     {
+       map_.erase (iter);
+       return true;
+     }
+   return false;
+ }
+ 
  /* Module profile is only used by LIPO. Here we simply ignore it.  */
  
  static void
*************** read_profile (void)
*** 948,956 ****
    /* Skip the empty integer.  */
    gcov_read_unsigned ();
  
    /* string_table.  */
    afdo_string_table = new string_table ();
!   if (!afdo_string_table->read())
      {
        error ("cannot read string table from %s", auto_profile_file);
        return;
--- 3231,3247 ----
    /* Skip the empty integer.  */
    gcov_read_unsigned ();
  
+   /* summary_info.  */
+   afdo_summary_info = new summary_info ();
+   if (!afdo_summary_info->read ())
+     {
+       error ("cannot read summary information from %s", auto_profile_file);
+       return;
+     }
+ 
    /* string_table.  */
    afdo_string_table = new string_table ();
!   if (!afdo_string_table->read ())
      {
        error ("cannot read string table from %s", auto_profile_file);
        return;
*************** read_profile (void)
*** 958,971 ****
  
    /* autofdo_source_profile.  */
    afdo_source_profile = autofdo_source_profile::create ();
!   if (afdo_source_profile == NULL)
      {
        error ("cannot read function profile from %s", auto_profile_file);
        return;
      }
  
    /* autofdo_module_profile.  */
    fake_read_autofdo_module_profile ();
  }
  
  /* From AutoFDO profiles, find values inside STMT for that we want to measure
--- 3249,3270 ----
  
    /* autofdo_source_profile.  */
    afdo_source_profile = autofdo_source_profile::create ();
!   if (afdo_source_profile == NULL
!       || gcov_is_error ())
      {
        error ("cannot read function profile from %s", auto_profile_file);
+       delete afdo_source_profile;
+       afdo_source_profile = NULL;
        return;
      }
  
    /* autofdo_module_profile.  */
    fake_read_autofdo_module_profile ();
+   if (gcov_is_error ())
+     {
+       error ("cannot read module profile from %s", auto_profile_file);
+       return;
+     }
  }
  
  /* From AutoFDO profiles, find values inside STMT for that we want to measure
*************** read_profile (void)
*** 977,995 ****
         decide if it needs to promote and inline.  */
  
  static bool
! afdo_indirect_call (gimple_stmt_iterator *gsi, const icall_target_map &map,
!                     bool transform)
  {
-   gimple *gs = gsi_stmt (*gsi);
    tree callee;
  
    if (map.size () == 0)
!     return false;
!   gcall *stmt = dyn_cast <gcall *> (gs);
!   if (!stmt
!       || gimple_call_internal_p (stmt)
!       || gimple_call_fndecl (stmt) != NULL_TREE)
!     return false;
  
    gcov_type total = 0;
    icall_target_map::const_iterator max_iter = map.end ();
--- 3276,3310 ----
         decide if it needs to promote and inline.  */
  
  static bool
! afdo_indirect_call (gcall *stmt, const icall_target_map &map,
! 		    bool transform, cgraph_edge *indirect_edge)
  {
    tree callee;
  
    if (map.size () == 0)
!     {
!       if (dump_file)
! 	fprintf (dump_file, "No targets found\n");
!       return false;
!     }
!   if (!stmt)
!     {
!       if (dump_file)
! 	fprintf (dump_file, "No call statement\n");
!       return false;
!     }
!   if (gimple_call_internal_p (stmt))
!     {
!       if (dump_file)
! 	fprintf (dump_file, "Internal call\n");
!       return false;
!     }
!   if (gimple_call_fndecl (stmt) != NULL_TREE)
!     {
!       if (dump_file)
! 	fprintf (dump_file, "Call is already direct\n");
!       return false;
!     }
  
    gcov_type total = 0;
    icall_target_map::const_iterator max_iter = map.end ();
*************** afdo_indirect_call (gimple_stmt_iterator
*** 1001,1040 ****
        if (max_iter == map.end () || max_iter->second < iter->second)
          max_iter = iter;
      }
    struct cgraph_node *direct_call = cgraph_node::get_for_asmname (
!       get_identifier (afdo_string_table->get_name (max_iter->first)));
!   if (direct_call == NULL || !direct_call->profile_id)
!     return false;
  
    callee = gimple_call_fn (stmt);
  
-   histogram_value hist = gimple_alloc_histogram_value (
-       cfun, HIST_TYPE_INDIR_CALL, stmt, callee);
-   hist->n_counters = 4;
-   hist->hvalue.counters = XNEWVEC (gcov_type, hist->n_counters);
-   gimple_add_histogram_value (cfun, stmt, hist);
- 
-   /* Total counter */
-   hist->hvalue.counters[0] = total;
-   /* Number of value/counter pairs */
-   hist->hvalue.counters[1] = 1;
-   /* Value */
-   hist->hvalue.counters[2] = direct_call->profile_id;
-   /* Counter */
-   hist->hvalue.counters[3] = max_iter->second;
- 
    if (!transform)
!     return false;
! 
!   cgraph_node* current_function_node = cgraph_node::get (current_function_decl);
  
!   /* If the direct call is a recursive call, don't promote it since
!      we are not set up to inline recursive calls at this stage. */
!   if (direct_call == current_function_node)
!     return false;
  
!   struct cgraph_edge *indirect_edge
!       = current_function_node->get_edge (stmt);
  
    if (dump_file)
      {
--- 3316,3365 ----
        if (max_iter == map.end () || max_iter->second < iter->second)
          max_iter = iter;
      }
+   total *= afdo_count_scale;
    struct cgraph_node *direct_call = cgraph_node::get_for_asmname (
!     get_identifier (afdo_string_table->get_symbol_name (max_iter->first)));
!   if (direct_call == NULL)
!     {
!       if (dump_file)
! 	fprintf (dump_file, "Failed to find cgraph node for %s\n",
! 		 afdo_string_table->get_symbol_name (max_iter->first));
!       return false;
!     }
  
    callee = gimple_call_fn (stmt);
  
    if (!transform)
!     {
!       if (!direct_call->profile_id)
! 	{
! 	  if (dump_file)
! 	    fprintf (dump_file, "No profile id\n");
! 	  return false;
! 	}
!       histogram_value hist = gimple_alloc_histogram_value (
! 	  cfun, HIST_TYPE_INDIR_CALL, stmt, callee);
!       hist->n_counters = 4;
!       hist->hvalue.counters = XNEWVEC (gcov_type, hist->n_counters);
!       gimple_add_histogram_value (cfun, stmt, hist);
  
!       /* Total counter */
!       hist->hvalue.counters[0] = total;
!       /* Number of value/counter pairs */
!       hist->hvalue.counters[1] = 1;
!       /* Value */
!       hist->hvalue.counters[2] = direct_call->profile_id;
!       /* Counter */
!       hist->hvalue.counters[3] = max_iter->second * afdo_count_scale;
  
!       if (!direct_call->profile_id)
! 	{
! 	  if (dump_file)
! 	    fprintf (dump_file, "Histogram attached\n");
! 	  return false;
! 	}
!       return false;
!     }
  
    if (dump_file)
      {
*************** afdo_indirect_call (gimple_stmt_iterator
*** 1044,1059 ****
        print_generic_expr (dump_file, direct_call->decl, TDF_SLIM);
      }
  
!   if (direct_call == NULL)
!     {
!       if (dump_file)
!         fprintf (dump_file, " not transforming\n");
!       return false;
!     }
!   if (DECL_STRUCT_FUNCTION (direct_call->decl) == NULL)
      {
        if (dump_file)
!         fprintf (dump_file, " no declaration\n");
        return false;
      }
  
--- 3369,3378 ----
        print_generic_expr (dump_file, direct_call->decl, TDF_SLIM);
      }
  
!   if (!direct_call->definition)
      {
        if (dump_file)
! 	fprintf (dump_file, " no definition available\n");
        return false;
      }
  
*************** afdo_indirect_call (gimple_stmt_iterator
*** 1064,1076 ****
        fprintf (dump_file, "\n");
      }
  
!   /* FIXME: Count should be initialized.  */
!   struct cgraph_edge *new_edge
!       = indirect_edge->make_speculative (direct_call,
! 					 profile_count::uninitialized ());
!   cgraph_edge::redirect_call_stmt_to_callee (new_edge);
!   gimple_remove_histogram_value (cfun, stmt, hist);
!   inline_call (new_edge, true, NULL, NULL, false);
    return true;
  }
  
--- 3383,3391 ----
        fprintf (dump_file, "\n");
      }
  
!   indirect_edge->make_speculative
! 		(direct_call,
! 		 gimple_bb (stmt)->count.apply_scale (99, 100));
    return true;
  }
  
*************** afdo_indirect_call (gimple_stmt_iterator
*** 1078,1153 ****
     histograms and adds them to list VALUES.  */
  
  static bool
! afdo_vpt (gimple_stmt_iterator *gsi, const icall_target_map &map,
!           bool transform)
  {
!   return afdo_indirect_call (gsi, map, transform);
  }
  
  typedef std::set<basic_block> bb_set;
- typedef std::set<edge> edge_set;
  
  static bool
  is_bb_annotated (const basic_block bb, const bb_set &annotated)
  {
!   return annotated.find (bb) != annotated.end ();
  }
  
  static void
  set_bb_annotated (basic_block bb, bb_set *annotated)
  {
    annotated->insert (bb);
  }
  
  /* For a given BB, set its execution count. Attach value profile if a stmt
     is not in PROMOTED, because we only want to promote an indirect call once.
     Return TRUE if BB is annotated.  */
  
  static bool
! afdo_set_bb_count (basic_block bb, const stmt_set &promoted)
  {
    gimple_stmt_iterator gsi;
!   edge e;
!   edge_iterator ei;
!   gcov_type max_count = 0;
!   bool has_annotated = false;
  
    for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
        count_info info;
        gimple *stmt = gsi_stmt (gsi);
!       if (gimple_clobber_p (stmt) || is_gimple_debug (stmt))
!         continue;
        if (afdo_source_profile->get_count_info (stmt, &info))
!         {
!           if (info.count > max_count)
!             max_count = info.count;
!           has_annotated = true;
!           if (info.targets.size () > 0
!               && promoted.find (stmt) == promoted.end ())
!             afdo_vpt (&gsi, info.targets, false);
!         }
      }
  
!   if (!has_annotated)
      return false;
  
!   for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
!     afdo_source_profile->mark_annotated (gimple_location (gsi_stmt (gsi)));
!   for (gphi_iterator gpi = gsi_start_phis (bb);
!        !gsi_end_p (gpi);
!        gsi_next (&gpi))
      {
!       gphi *phi = gpi.phi ();
!       size_t i;
!       for (i = 0; i < gimple_phi_num_args (phi); i++)
!         afdo_source_profile->mark_annotated (gimple_phi_arg_location (phi, i));
      }
!   FOR_EACH_EDGE (e, ei, bb->succs)
!   afdo_source_profile->mark_annotated (e->goto_locus);
! 
!   bb->count = profile_count::from_gcov_type (max_count).afdo ();
!   return true;
  }
  
  /* BB1 and BB2 are in an equivalent class iff:
--- 3393,3560 ----
     histograms and adds them to list VALUES.  */
  
  static bool
! afdo_vpt (gcall *gs, const icall_target_map &map,
! 	  bool transform, cgraph_edge *indirect_edge)
  {
!   return afdo_indirect_call (gs, map, transform, indirect_edge);
  }
  
  typedef std::set<basic_block> bb_set;
  
  static bool
  is_bb_annotated (const basic_block bb, const bb_set &annotated)
  {
!   if (annotated.find (bb) != annotated.end ())
!     {
!       gcc_checking_assert (bb->count.quality () == AFDO
! 			   || !bb->count.nonzero_p ());
!       return true;
!     }
!   gcc_checking_assert (bb->count.quality () != AFDO
! 		       || !bb->count.nonzero_p ());
!   return false;
  }
  
  static void
  set_bb_annotated (basic_block bb, bb_set *annotated)
  {
+   gcc_checking_assert (bb->count.quality () == AFDO
+ 		       || !bb->count.nonzero_p ());
    annotated->insert (bb);
  }
  
+ /* Update COUNT by known autofdo count C.  */
+ static void
+ update_count_by_afdo_count (profile_count *count, gcov_type c)
+ {
+   if (c)
+     *count = profile_count::from_gcov_type (c).afdo ();
+   /* In case we have guessed profile which is already zero, preserve
+      quality info.  */
+   else if (count->nonzero_p ()
+ 	   || count->quality () == GUESSED
+ 	   || count->quality () == GUESSED_LOCAL)
+     *count = profile_count::zero ().afdo ();
+ }
+ 
+ /* Update COUNT by known autofdo count C.  */
+ static void
+ update_count_by_afdo_count (profile_count *count, profile_count c)
+ {
+   if (c.nonzero_p ())
+     *count = c;
+   /* In case we have guessed profile which is already zero, preserve
+      quality info.  */
+   else if (count->nonzero_p ()
+ 	   || count->quality () < c.quality ())
+     *count = c;
+ }
+ 
+ /* Try to determine unscaled count of edge E.
+    Return -1 if nothing is known.  */
+ 
+ static gcov_type
+ afdo_unscaled_edge_count (edge e)
+ {
+   gcov_type max_count = -1;
+   basic_block bb_succ = e->dest;
+   count_info info;
+   if (afdo_source_profile->get_count_info (e->goto_locus, &info))
+     {
+       if (info.count > max_count)
+ 	max_count = info.count;
+       if (dump_file && info.count)
+ 	{
+ 	  fprintf (dump_file,
+ 		   "  goto location of edge %i->%i with count %" PRIu64"\n",
+ 		   e->src->index, e->dest->index, (int64_t)info.count);
+ 	}
+     }
+   for (gphi_iterator gpi = gsi_start_phis (bb_succ);
+        !gsi_end_p (gpi); gsi_next (&gpi))
+     {
+       gphi *phi = gpi.phi ();
+       location_t phi_loc
+ 	= gimple_phi_arg_location_from_edge (phi, e);
+       if (afdo_source_profile->get_count_info (phi_loc, &info))
+ 	{
+ 	  if (info.count > max_count)
+ 	    max_count = info.count;
+ 	  if (dump_file && info.count)
+ 	    {
+ 	      fprintf (dump_file,
+ 		       "  phi op of edge %i->%i with count %" PRIu64": ",
+ 		       e->src->index, e->dest->index, (int64_t)info.count);
+ 	      print_gimple_stmt (dump_file, phi, 0, TDF_SLIM);
+ 	    }
+ 	}
+     }
+   return max_count;
+ }
+ 
  /* For a given BB, set its execution count. Attach value profile if a stmt
     is not in PROMOTED, because we only want to promote an indirect call once.
     Return TRUE if BB is annotated.  */
  
  static bool
! afdo_set_bb_count (basic_block bb, hash_set <basic_block> &zero_bbs)
  {
    gimple_stmt_iterator gsi;
!   gcov_type max_count = -1;
!   if (dump_file)
!     fprintf (dump_file, " Looking up AFDO count of bb %i\n", bb->index);
  
    for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
      {
        count_info info;
        gimple *stmt = gsi_stmt (gsi);
!       if (!stmt_loc_used_by_debug_info (stmt))
! 	continue;
        if (afdo_source_profile->get_count_info (stmt, &info))
! 	{
! 	  if (info.count > max_count)
! 	    max_count = info.count;
! 	  if (dump_file)
! 	    {
! 	      fprintf (dump_file, "  count %" PRIu64 " in stmt: ",
! 		       (int64_t)info.count);
! 	      print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
! 	    }
! 	  gcall *call = dyn_cast <gcall *> (gsi_stmt (gsi));
! 	  /* TODO; if inlined early and indirect call was not optimized out,
! 	     we will end up speculating again.  Early inliner should remove
! 	     all targets for edges it speculated into safely.  */
! 	  if (call
! 	      && info.targets.size () > 0)
! 	    afdo_vpt (call, info.targets, false, NULL);
! 	}
      }
  
!   if (max_count == -1 && single_succ_p (bb))
!     max_count = afdo_unscaled_edge_count (single_succ_edge (bb));
! 
!   if (max_count == -1)
      return false;
  
!   if (max_count)
      {
!       update_count_by_afdo_count (&bb->count, max_count * afdo_count_scale);
!       if (dump_file)
! 	fprintf (dump_file,
! 		 " Annotated bb %i with count %" PRId64
! 		 ", scaled to %" PRId64 "\n",
! 		 bb->index, (int64_t)max_count,
! 		 (int64_t)(max_count * afdo_count_scale));
!       return true;
      }
!   else
!     {
!       if (dump_file)
! 	fprintf (dump_file,
! 		 " bb %i has statements with 0 count\n", bb->index);
!       zero_bbs.add (bb);
!     }
!   return false;
  }
  
  /* BB1 and BB2 are in an equivalent class iff:
*************** afdo_find_equiv_class (bb_set *annotated
*** 1165,1171 ****
    basic_block bb;
  
    FOR_ALL_BB_FN (bb, cfun)
!   bb->aux = NULL;
  
    FOR_ALL_BB_FN (bb, cfun)
    {
--- 3572,3578 ----
    basic_block bb;
  
    FOR_ALL_BB_FN (bb, cfun)
!     bb->aux = NULL;
  
    FOR_ALL_BB_FN (bb, cfun)
    {
*************** afdo_find_equiv_class (bb_set *annotated
*** 1177,1185 ****
  	  && bb1->loop_father == bb->loop_father)
  	{
  	  bb1->aux = bb;
! 	  if (bb1->count > bb->count && is_bb_annotated (bb1, *annotated_bb))
  	    {
! 	      bb->count = bb1->count;
  	      set_bb_annotated (bb, annotated_bb);
  	    }
  	}
--- 3584,3603 ----
  	  && bb1->loop_father == bb->loop_father)
  	{
  	  bb1->aux = bb;
! 	  if (is_bb_annotated (bb1, *annotated_bb)
! 	      && (!is_bb_annotated (bb, *annotated_bb)
! 		  || bb1->count > bb->count))
  	    {
! 	      if (dump_file)
! 		{
! 		  fprintf (dump_file,
! 			   "  Copying count of bb %i to bb %i; count is:",
! 			   bb1->index,
! 			   bb->index);
! 		  bb1->count.dump (dump_file);
! 		  fprintf (dump_file, "\n");
! 		}
! 	      update_count_by_afdo_count (&bb->count, bb1->count);
  	      set_bb_annotated (bb, annotated_bb);
  	    }
  	}
*************** afdo_find_equiv_class (bb_set *annotated
*** 1189,1197 ****
  	  && bb1->loop_father == bb->loop_father)
  	{
  	  bb1->aux = bb;
! 	  if (bb1->count > bb->count && is_bb_annotated (bb1, *annotated_bb))
  	    {
! 	      bb->count = bb1->count;
  	      set_bb_annotated (bb, annotated_bb);
  	    }
  	}
--- 3607,3626 ----
  	  && bb1->loop_father == bb->loop_father)
  	{
  	  bb1->aux = bb;
! 	  if (is_bb_annotated (bb1, *annotated_bb)
! 	      && (!is_bb_annotated (bb, *annotated_bb)
! 		  || bb1->count > bb->count))
  	    {
! 	      if (dump_file)
! 		{
! 		  fprintf (dump_file,
! 			   "  Copying count of bb %i to bb %i; count is:",
! 			   bb1->index,
! 			   bb->index);
! 		  bb1->count.dump (dump_file);
! 		  fprintf (dump_file, "\n");
! 		}
! 	      update_count_by_afdo_count (&bb->count, bb1->count);
  	      set_bb_annotated (bb, annotated_bb);
  	    }
  	}
*************** afdo_propagate_edge (bool is_succ, bb_se
*** 1217,1266 ****
    {
      edge e, unknown_edge = NULL;
      edge_iterator ei;
!     int num_unknown_edge = 0;
!     int num_edge = 0;
      profile_count total_known_count = profile_count::zero ().afdo ();
  
      FOR_EACH_EDGE (e, ei, is_succ ? bb->succs : bb->preds)
        {
  	gcc_assert (AFDO_EINFO (e) != NULL);
  	if (! AFDO_EINFO (e)->is_annotated ())
! 	  num_unknown_edge++, unknown_edge = e;
  	else
  	  total_known_count += AFDO_EINFO (e)->get_count ();
! 	num_edge++;
        }
  
      /* Be careful not to annotate block with no successor in special cases.  */
!     if (num_unknown_edge == 0 && total_known_count > bb->count)
        {
  	bb->count = total_known_count;
- 	if (!is_bb_annotated (bb, *annotated_bb))
- 	  set_bb_annotated (bb, annotated_bb);
  	changed = true;
        }
!     else if (num_unknown_edge == 1 && is_bb_annotated (bb, *annotated_bb))
        {
  	if (bb->count > total_known_count)
  	  {
! 	      profile_count new_count = bb->count - total_known_count;
! 	      AFDO_EINFO(unknown_edge)->set_count(new_count);
! 	      if (num_edge == 1)
! 		{
! 		  basic_block succ_or_pred_bb = is_succ ? unknown_edge->dest : unknown_edge->src;
! 		  if (new_count > succ_or_pred_bb->count)
! 		    {
! 		      succ_or_pred_bb->count = new_count;
! 		      if (!is_bb_annotated (succ_or_pred_bb, *annotated_bb))
! 			set_bb_annotated (succ_or_pred_bb, annotated_bb);
! 		    }
! 		}
! 	   }
  	else
! 	  AFDO_EINFO (unknown_edge)->set_count (profile_count::zero().afdo ());
  	AFDO_EINFO (unknown_edge)->set_annotated ();
  	changed = true;
        }
    }
    return changed;
  }
--- 3646,3772 ----
    {
      edge e, unknown_edge = NULL;
      edge_iterator ei;
!     int num_unknown_edges = 0;
!     int num_edges = 0;
      profile_count total_known_count = profile_count::zero ().afdo ();
  
      FOR_EACH_EDGE (e, ei, is_succ ? bb->succs : bb->preds)
        {
  	gcc_assert (AFDO_EINFO (e) != NULL);
  	if (! AFDO_EINFO (e)->is_annotated ())
! 	  num_unknown_edges++, unknown_edge = e;
  	else
  	  total_known_count += AFDO_EINFO (e)->get_count ();
! 	num_edges++;
!       }
!     if (dump_file)
!       {
! 	fprintf (dump_file, "bb %i %s propagating %s edges %i, "
! 		 "unknown edges %i, known count ",
! 		 bb->index,
! 		 is_bb_annotated (bb, *annotated_bb) ? "(annotated)" : "",
! 		 is_succ ? "successors" : "predecessors", num_edges,
! 		 num_unknown_edges);
! 	total_known_count.dump (dump_file);
! 	fprintf (dump_file, " bb count ");
! 	bb->count.dump (dump_file);
! 	fprintf (dump_file, "\n");
        }
  
      /* Be careful not to annotate block with no successor in special cases.  */
!     if (num_unknown_edges == 0 && num_edges
! 	&& !is_bb_annotated (bb, *annotated_bb))
        {
+ 	if (dump_file)
+ 	  {
+ 	    fprintf (dump_file, "  Annotating bb %i with count ", bb->index);
+ 	    total_known_count.dump (dump_file);
+ 	    fprintf (dump_file, "\n");
+ 	  }
+ 	update_count_by_afdo_count (&bb->count, total_known_count);
+ 	set_bb_annotated (bb, annotated_bb);
+ 	changed = true;
+       }
+     else if (is_bb_annotated (bb, *annotated_bb)
+ 	     /* We do not want to consider 0 (afdo) > 0 (precise)  */
+ 	     && total_known_count.nonzero_p ()
+ 	     && bb->count < total_known_count)
+       {
+ 	if (dump_file)
+ 	  {
+ 	    fprintf (dump_file, "  Increasing bb %i count from ",
+ 		     bb->index);
+ 	    bb->count.dump (dump_file);
+ 	    fprintf (dump_file, " to ");
+ 	    total_known_count.dump (dump_file);
+ 	    fprintf (dump_file, " hoping to mitigate afdo inconsistency\n");
+ 	  }
  	bb->count = total_known_count;
  	changed = true;
        }
!     else if (num_unknown_edges == 1 && is_bb_annotated (bb, *annotated_bb))
        {
  	if (bb->count > total_known_count)
  	  {
! 	    profile_count new_count = bb->count - total_known_count;
! 	    AFDO_EINFO (unknown_edge)->set_count (new_count);
! 	  }
  	else
! 	  AFDO_EINFO (unknown_edge)->set_count
! 		  (profile_count::zero ().afdo ());
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "  Annotated edge %i->%i with count ",
! 		     unknown_edge->src->index, unknown_edge->dest->index);
! 	    AFDO_EINFO (unknown_edge)->get_count ().dump (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
  	AFDO_EINFO (unknown_edge)->set_annotated ();
  	changed = true;
        }
+     else if (num_unknown_edges > 1
+ 	     && is_bb_annotated (bb, *annotated_bb)
+ 	     && (total_known_count >= bb->count || !bb->count.nonzero_p ()))
+       {
+ 	FOR_EACH_EDGE (e, ei, is_succ ? bb->succs : bb->preds)
+ 	  {
+ 	    gcc_assert (AFDO_EINFO (e) != NULL);
+ 	    if (! AFDO_EINFO (e)->is_annotated ())
+ 	      {
+ 		AFDO_EINFO (e)->set_count
+ 		       	(profile_count::zero ().afdo ());
+ 		AFDO_EINFO (e)->set_annotated ();
+ 		if (dump_file)
+ 		  {
+ 		    fprintf (dump_file, "  Annotated edge %i->%i with count ",
+ 			     e->src->index, e->dest->index);
+ 		    AFDO_EINFO (unknown_edge)->get_count ().dump (dump_file);
+ 		    fprintf (dump_file, "\n");
+ 		  }
+ 	      }
+ 	  }
+       }
+     else if (num_unknown_edges == 0
+ 	     && is_bb_annotated (bb, *annotated_bb)
+ 	     && (is_succ ? single_succ_p (bb) : single_pred_p (bb)))
+       {
+ 	edge e = is_succ ? single_succ_edge (bb) : single_pred_edge (bb);
+ 	if (AFDO_EINFO (e)->is_annotated ()
+ 	    && AFDO_EINFO (e)->get_count () < bb->count)
+ 	  {
+ 	    if (dump_file)
+ 	      {
+ 		fprintf (dump_file, "  Increasing edge %i->%i count from ",
+ 			 e->src->index, e->dest->index);
+ 		AFDO_EINFO (e)->get_count ().dump (dump_file);
+ 		fprintf (dump_file, " to ");
+ 		bb->count.dump (dump_file);
+ 		fprintf (dump_file, " hoping to mitigate afdo inconsistency\n");
+ 	      }
+ 	    AFDO_EINFO (e)->set_count (bb->count);
+ 	    changed = true;
+ 	  }
+       }
    }
    return changed;
  }
*************** afdo_propagate_circuit (const bb_set &an
*** 1368,1390 ****
  }
  
  /* Propagate the basic block count and edge count on the control flow
!    graph. We do the propagation iteratively until stablize.  */
  
  static void
  afdo_propagate (bb_set *annotated_bb)
  {
-   basic_block bb;
    bool changed = true;
    int i = 0;
  
    FOR_ALL_BB_FN (bb, cfun)
!   {
!     bb->count = ((basic_block)bb->aux)->count;
!     if (is_bb_annotated ((basic_block)bb->aux, *annotated_bb))
!       set_bb_annotated (bb, annotated_bb);
!   }
  
!   while (changed && i++ < 10)
      {
        changed = false;
  
--- 3874,3906 ----
  }
  
  /* Propagate the basic block count and edge count on the control flow
!    graph.  We do the propagation iteratively until stabilize.  */
  
  static void
  afdo_propagate (bb_set *annotated_bb)
  {
    bool changed = true;
    int i = 0;
  
+   basic_block bb;
    FOR_ALL_BB_FN (bb, cfun)
!     if (!is_bb_annotated (bb, *annotated_bb)
! 	&& is_bb_annotated ((basic_block)bb->aux, *annotated_bb))
!       {
! 	update_count_by_afdo_count (&bb->count, ((basic_block)bb->aux)->count);
! 	set_bb_annotated (bb, annotated_bb);
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file,
! 		     "  Copying count of bb %i to bb %i; count is:",
! 		     ((basic_block)bb->aux)->index,
! 		     bb->index);
! 	    bb->count.dump (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
!       }
  
!   while (changed && i++ < 100)
      {
        changed = false;
  
*************** afdo_propagate (bb_set *annotated_bb)
*** 1394,1399 ****
--- 3910,4314 ----
          changed = true;
        afdo_propagate_circuit (*annotated_bb);
      }
+   if (dump_file)
+     fprintf (dump_file, "Propagation took %i iterations %s\n",
+ 	     i, changed ? "; iteration limit reached\n" : "");
+ }
+ 
+ /* qsort comparator of sreals.  */
+ static int
+ cmp (const void *a, const void *b)
+ {
+   if (*(const sreal *)a < *(const sreal *)b)
+     return 1;
+   if (*(const sreal *)a > *(const sreal *)b)
+     return -1;
+   return 0;
+ }
+ 
+ /* To scale a connected component of graph we collect desired scales of
+    basic blocks on the boundary and then compute a robust average.  */
+ 
+ struct scale
+ {
+   /* Scale desired.  */
+   sreal scale;
+   /* Weight for averaging computed from execution count of the edge
+      scale originates from.  */
+   uint64_t weight;
+ };
+ 
+ /* Add scale ORIG/ANNOTATED to SCALES.  */
+ 
+ static void
+ add_scale (vec <scale> *scales, profile_count annotated, profile_count orig)
+ {
+   if (dump_file)
+     {
+       orig.dump (dump_file);
+       fprintf (dump_file, " should be ");
+       annotated.dump (dump_file);
+       fprintf (dump_file, "\n");
+     }
+   if (orig.nonzero_p ())
+     {
+       sreal scale
+ 	= annotated.guessed_local ()
+ 		.to_sreal_scale (orig);
+       if (dump_file)
+ 	fprintf (dump_file, "    adding scale %.16f, weight %" PRId64 "\n",
+ 		 scale.to_double (), annotated.value () + 1);
+       scales->safe_push ({scale, annotated.value () + 1});
+     }
+ }
+ 
+ /* Scale counts of all basic blocks in BBS by SCALE and convert them to
+    IPA quality.  */
+ 
+ static void
+ scale_bbs (const vec <basic_block> &bbs, sreal scale)
+ {
+   if (dump_file)
+     fprintf (dump_file, "  Scaling by %.16f\n", scale.to_double ());
+   for (basic_block b : bbs)
+     if (!(b->count == profile_count::zero ())
+ 	&& b->count.initialized_p ())
+       {
+ 	profile_count o = b->count;
+ 	b->count = b->count.force_guessed () * scale;
+ 
+ 	/* If we scaled to 0, make it auto-fdo since that is treated
+ 	   less agressively.  */
+ 	if (!b->count.nonzero_p () && o.nonzero_p ())
+ 	  b->count = profile_count::zero ().afdo ();
+ 	if (dump_file)
+ 	  {
+ 	    fprintf (dump_file, "    bb %i count updated ", b->index);
+ 	    o.dump (dump_file);
+ 	    fprintf (dump_file, " -> ");
+ 	    b->count.dump (dump_file);
+ 	    fprintf (dump_file, "\n");
+ 	  }
+       }
+ }
+ 
+ /* Determine scaling factor by taking robust average of SCALES
+    and taking into account limits.
+    MAX_COUNT is maximal guessed count to be scaled while MAC_COUNT_IN_FN
+    is maximal count in function determined by auto-fdo.  */
+ 
+ sreal
+ determine_scale (vec <scale> *scales, profile_count max_count,
+ 		 profile_count max_count_in_fn)
+ {
+   scales->qsort (cmp);
+ 
+   uint64_t overall_weight = 0;
+   for (scale &e : *scales)
+     overall_weight += e.weight;
+ 
+   uint64_t cummulated = 0, weight_sum = 0;
+   sreal scale_sum = 0;
+   for (scale &e : *scales)
+     {
+       uint64_t prev = cummulated;
+       cummulated += e.weight;
+       if (cummulated >= overall_weight / 4
+ 	  && prev <= 3 * overall_weight / 4)
+ 	{
+ 	  scale_sum += e.scale * e.weight;
+ 	  weight_sum += e.weight;
+ 	  if (dump_file)
+ 	    fprintf (dump_file, "    accounting scale %.16f, weight %" PRId64 "\n",
+ 		     e.scale.to_double (), e.weight);
+ 	}
+       else if (dump_file)
+ 	fprintf (dump_file, "    ignoring scale %.16f, weight %" PRId64 "\n",
+ 		 e.scale.to_double (), e.weight);
+      }
+   sreal scale = scale_sum / (sreal)weight_sum;
+ 
+   /* Avoid scaled regions to have very large counts.
+      Otherwise they may dominate ipa-profile's histogram computing cutoff
+      of hot basic blocks.  */
+   if (max_count * scale > max_count_in_fn.guessed_local ().apply_scale (128, 1))
+     {
+       if (dump_file)
+ 	{
+ 	  fprintf (dump_file, "Scaling by %.16f produces max count ",
+ 		   scale.to_double ());
+ 	  (max_count * scale).dump (dump_file);
+ 	  fprintf (dump_file, " that exceeds max count in fn ");
+ 	  max_count_in_fn.dump (dump_file);
+ 	  fprintf (dump_file, "; capping\n");
+ 	}
+       scale = max_count_in_fn.guessed_local ().to_sreal_scale (max_count);
+     }
+   return scale;
+ }
+ 
+ /* Scale profile of the whole function to approximately match auto-profile.  */
+ 
+ bool
+ scale_bb_profile ()
+ {
+   const function_instance *s
+       = afdo_source_profile->get_function_instance_by_decl
+ 	  (current_function_decl);
+ 
+   /* In the first pass only store non-zero counts.  */
+   gcov_type head_count = s->head_count () * autofdo::afdo_count_scale;
+   hash_set <basic_block> zero_bbs;
+   auto_vec <basic_block, 20> bbs (n_basic_blocks_for_fn (cfun));
+   auto_vec <scale, 20> scales;
+   basic_block bb;
+   profile_count max_count = profile_count::zero ();
+   profile_count max_count_in_fn = profile_count::zero ();
+   bbs.quick_push (ENTRY_BLOCK_PTR_FOR_FN (cfun));
+   bbs.quick_push (EXIT_BLOCK_PTR_FOR_FN (cfun));
+   if (head_count > 0)
+     {
+       profile_count entry_count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
+       max_count = entry_count;
+       update_count_by_afdo_count (&entry_count, head_count);
+       max_count_in_fn = entry_count;
+       add_scale (&scales, entry_count, ENTRY_BLOCK_PTR_FOR_FN (cfun)->count);
+     }
+   FOR_EACH_BB_FN (bb, cfun)
+     {
+       profile_count cnt = bb->count;
+       bbs.safe_push (bb);
+       max_count = profile_count::max_prefer_initialized (max_count, cnt);
+       if (afdo_set_bb_count (bb, zero_bbs))
+ 	{
+ 	  std::swap (cnt, bb->count);
+ 	  max_count_in_fn
+ 	    = profile_count::max_prefer_initialized (max_count_in_fn, cnt);
+ 	  add_scale (&scales, cnt, bb->count);
+ 	}
+     }
+   if (scales.length ())
+     {
+       sreal scale = determine_scale (&scales, max_count, max_count_in_fn);
+       scale_bbs (bbs, scale);
+       return true;
+     }
+   return false;
+ }
+ 
+ /* In case given basic block was fully optimized out, AutoFDO
+    will have no data about it.  In this case try to preserve static profile.
+    Identify connected components (in undirected form of CFG) which has
+    no annotations at all.  Look at thir boundaries and try to determine
+    scaling factor and scale.  */
+ 
+ void
+ afdo_adjust_guessed_profile (bb_set *annotated_bb)
+ {
+   /* Basic blocks of connected component currently processed.  */
+   auto_vec <basic_block, 20> bbs (n_basic_blocks_for_fn (cfun));
+   /* Scale factors found.  */
+   auto_vec <scale, 20> scales;
+   auto_vec <basic_block, 20> stack (n_basic_blocks_for_fn (cfun));
+ 
+   basic_block seed_bb;
+   unsigned int component_id = 1;
+ 
+   /* Map from basic block to its component.
+      0   is used for univisited BBs,
+      1   means that BB is annotated,
+      >=2 is an id of the component BB belongs to.  */
+   auto_vec <unsigned int, 20> component;
+   component.safe_grow (last_basic_block_for_fn (cfun));
+   profile_count max_count_in_fn = profile_count::zero ();
+   FOR_ALL_BB_FN (seed_bb, cfun)
+     if (is_bb_annotated (seed_bb, *annotated_bb))
+       {
+ 	component[seed_bb->index] = 1;
+ 	max_count_in_fn
+ 	  = profile_count::max_prefer_initialized (max_count_in_fn, seed_bb->count);
+       }
+     else
+       component[seed_bb->index] = 0;
+   FOR_ALL_BB_FN (seed_bb, cfun)
+    if (!component[seed_bb->index])
+      {
+        stack.quick_push (seed_bb);
+        component_id++;
+        bbs.truncate (0);
+        scales.truncate (0);
+        component[seed_bb->index] = component_id;
+        profile_count max_count = profile_count::zero ();
+ 
+        /* Identify connected component starting in BB.  */
+        if (dump_file)
+ 	 fprintf (dump_file, "Starting connected component in bb %i\n",
+ 		  seed_bb->index);
+        do
+ 	 {
+ 	   basic_block b = stack.pop ();
+ 
+ 	   bbs.quick_push (b);
+ 	   max_count = profile_count::max_prefer_initialized (max_count, b->count);
+ 
+ 	   for (edge e: b->preds)
+ 	     if (!component[e->src->index])
+ 	       {
+ 		  stack.quick_push (e->src);
+ 		  component[e->src->index] = component_id;
+ 	       }
+ 	   for (edge e: b->succs)
+ 	     if (!component[e->dest->index])
+ 	       {
+ 		  stack.quick_push (e->dest);
+ 		  component[e->dest->index] = component_id;
+ 	       }
+ 	 }
+        while (!stack.is_empty ());
+ 
+        /* If all blocks in components has 0 count, we do not need
+ 	  to scale, only we must convert to IPA quality.  */
+        if (!max_count.nonzero_p ())
+ 	 {
+ 	   if (dump_file)
+ 	     fprintf (dump_file, "  All counts are 0; scale = 1\n");
+ 	   scale_bbs (bbs, 1);
+ 	   continue;
+ 	 }
+ 
+        /* Now visit the component and try to figure out its desired
+ 	  frequency.  */
+        for (basic_block b : bbs)
+ 	 {
+ 	   if (dump_file)
+ 	     {
+ 	       fprintf (dump_file, "  visiting bb %i with count ", b->index);
+ 	       b->count.dump (dump_file);
+ 	       fprintf (dump_file, "\n");
+ 	     }
+ 	   if (!b->count.nonzero_p ())
+ 	     continue;
+ 	   /* Sum of counts of annotated edges into B.  */
+ 	   profile_count annotated_count = profile_count::zero ();
+ 	   /* Sum of counts of edges into B with source in current
+ 	      component.  */
+ 	   profile_count current_component_count = profile_count::zero ();
+ 	   bool boundary = false;
+ 
+ 	   for (edge e: b->preds)
+ 	     if (AFDO_EINFO (e)->is_annotated ())
+ 	       {
+ 		 if (dump_file)
+ 		   {
+ 		     fprintf (dump_file, "    Annotated pred edge to %i "
+ 			      "with count ", e->src->index);
+ 		     AFDO_EINFO (e)->get_count ().dump (dump_file);
+ 		     fprintf (dump_file, "\n");
+ 		   }
+ 		 boundary = true;
+ 		 annotated_count += AFDO_EINFO (e)->get_count ();
+ 	       }
+ 	     /* If source is anotated, combine with static
+ 		probability prediction.
+ 		TODO: We can do better in case some of edges out are
+ 		annotated and distribute only remaining count out of BB.  */
+ 	     else if (is_bb_annotated (e->src, *annotated_bb))
+ 	       {
+ 		 boundary = true;
+ 		 if (dump_file)
+ 		   {
+ 		     fprintf (dump_file, "    Annotated predecessor %i "
+ 			      "with count ", e->src->index);
+ 		     e->src->count.dump (dump_file);
+ 		     fprintf (dump_file, " edge count using static profile ");
+ 		     e->count ().dump (dump_file);
+ 		     fprintf (dump_file, "\n");
+ 		   }
+ 		 annotated_count += e->count ();
+ 	       }
+ 	     else
+ 	       {
+ 		 current_component_count += e->count ();
+ 		 gcc_checking_assert (component[e->src->index] == component_id);
+ 	       }
+ 	   if (boundary && current_component_count.initialized_p ())
+ 	     {
+ 	       if (dump_file)
+ 		 fprintf (dump_file, "    bb %i in count ", b->index);
+ 	       add_scale (&scales,
+ 			  annotated_count,
+ 			  b->count - current_component_count);
+ 	     }
+ 	   for (edge e: b->succs)
+ 	     if (AFDO_EINFO (e)->is_annotated ())
+ 	       {
+ 		 if (dump_file)
+ 		   fprintf (dump_file, "    edge %i->%i count ",
+ 			    b->index, e->dest->index);
+ 		 add_scale (&scales, AFDO_EINFO (e)->get_count (), e->count ());
+ 	       }
+ 	     else if (is_bb_annotated (e->dest, *annotated_bb))
+ 	       {
+ 		 profile_count annotated_count = e->dest->count;
+ 		 profile_count out_count = profile_count::zero ();
+ 		 bool ok = true;
+ 
+ 		 for (edge e2: e->dest->preds)
+ 		   if (AFDO_EINFO (e2)->is_annotated ())
+ 		     annotated_count -= AFDO_EINFO (e2)->get_count ();
+ 		   else if (component[e2->src->index] == component_id)
+ 		     out_count += e2->count ();
+ 		   else if (is_bb_annotated (e2->src, *annotated_bb))
+ 		     annotated_count -= e2->count ();
+ 		   else if (e2->probability.nonzero_p ())
+ 		     {
+ 		       ok = false;
+ 		       break;
+ 		     }
+ 		 if (!ok)
+ 		   continue;
+ 		 if (dump_file)
+ 		   fprintf (dump_file,
+ 			    "    edge %i->%i has annotated successor; count ",
+ 			    b->index, e->dest->index);
+ 		 add_scale (&scales, annotated_count, e->count ());
+ 	       }
+ 
+ 	 }
+ 
+        /* If we failed to find annotated entry or exit edge,
+ 	  look for exit edges and scale profile so the dest
+ 	  BB get all flow it needs.  This is imprecise because
+ 	  the edge is not annotated and thus BB has more than
+ 	  one such predecessor.  */
+        if (!scales.length ())
+ 	 for (basic_block b : bbs)
+ 	   if (b->count.nonzero_p ())
+ 	     for (edge e: b->succs)
+ 	       if (is_bb_annotated (e->dest, *annotated_bb))
+ 		 {
+ 		   profile_count annotated_count = e->dest->count;
+ 		   for (edge e2: e->dest->preds)
+ 		     if (AFDO_EINFO (e2)->is_annotated ())
+ 		       annotated_count -= AFDO_EINFO (e2)->get_count ();
+ 		   if (dump_file)
+ 		     fprintf (dump_file,
+ 			      "    edge %i->%i has annotated successor;"
+ 			      " upper bound count ",
+ 			      b->index, e->dest->index);
+ 		   add_scale (&scales, annotated_count, e->count ());
+ 		 }
+        if (!scales.length ())
+ 	 {
+ 	   if (dump_file)
+ 	     fprintf (dump_file,
+ 		      "  Can not determine count from the boundary; giving up\n");
+ 	   continue;
+ 	 }
+        gcc_checking_assert (scales.length ());
+        sreal scale = determine_scale (&scales, max_count, max_count_in_fn);
+        scale_bbs (bbs, scale);
+      }
  }
  
  /* Propagate counts on control flow graph and calculate branch
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1406,1415 ****
    edge_iterator ei;
    basic_block bb;
  
-   calculate_dominance_info (CDI_POST_DOMINATORS);
-   calculate_dominance_info (CDI_DOMINATORS);
-   loop_optimizer_init (0);
- 
    FOR_ALL_BB_FN (bb, cfun)
      {
        gcc_assert (bb->aux == NULL);
--- 4321,4326 ----
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1417,1422 ****
--- 4328,4357 ----
  	{
  	  gcc_assert (e->aux == NULL);
  	  e->aux = new edge_info ();
+ 	  gcov_type c = afdo_unscaled_edge_count (e);
+ 	  if (c == 0 && e->count () == profile_count::zero ())
+ 	    {
+ 	      AFDO_EINFO (e)->set_count (profile_count::zero ());
+ 	      if (dump_file)
+ 		fprintf (dump_file,
+ 			 "  Annotating edge %i->%i with count 0;"
+ 			 " static profile aggress",
+ 			 e->src->index, e->dest->index);
+ 	    }
+ 	  else if (c > 0)
+ 	    {
+ 	      AFDO_EINFO (e)->set_count
+ 	       	(profile_count::from_gcov_type
+ 		   (c * autofdo::afdo_count_scale).afdo ());
+ 	      if (dump_file)
+ 		{
+ 		  fprintf (dump_file,
+ 			   "  Annotating edge %i->%i with count ",
+ 			   e->src->index, e->dest->index);
+ 		  AFDO_EINFO (e)->get_count ().dump (dump_file);
+ 		  fprintf (dump_file, "\n");
+ 		}
+ 	    }
  	}
      }
  
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1424,1448 ****
    afdo_propagate (annotated_bb);
  
    FOR_EACH_BB_FN (bb, cfun)
!   {
!     int num_unknown_succ = 0;
!     profile_count total_count = profile_count::zero ().afdo ();
! 
!     FOR_EACH_EDGE (e, ei, bb->succs)
!     {
!       gcc_assert (AFDO_EINFO (e) != NULL);
!       if (! AFDO_EINFO (e)->is_annotated ())
!         num_unknown_succ++;
!       else
!         total_count += AFDO_EINFO (e)->get_count ();
!     }
!     if (num_unknown_succ == 0 && total_count.nonzero_p())
        {
  	FOR_EACH_EDGE (e, ei, bb->succs)
! 	  e->probability
! 	    = AFDO_EINFO (e)->get_count ().probability_in (total_count);
        }
!   }
    FOR_ALL_BB_FN (bb, cfun)
      {
        bb->aux = NULL;
--- 4359,4425 ----
    afdo_propagate (annotated_bb);
  
    FOR_EACH_BB_FN (bb, cfun)
!     if (is_bb_annotated (bb, *annotated_bb))
        {
+ 	bool all_known = true;
+ 	profile_count total_count = profile_count::zero ().afdo ();
+ 
  	FOR_EACH_EDGE (e, ei, bb->succs)
! 	  {
! 	    gcc_assert (AFDO_EINFO (e) != NULL);
! 	    if (! AFDO_EINFO (e)->is_annotated ())
! 	      {
! 		/* If by static profile this edge never happens,
! 		   still propagate the rest.  */
! 		if (e->probability.nonzero_p ())
! 		  {
! 		    all_known = false;
! 		    break;
! 		  }
! 	      }
! 	    else
! 	      total_count += AFDO_EINFO (e)->get_count ();
! 	  }
! 	if (!all_known || !total_count.nonzero_p ())
! 	  continue;
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "Total count of bb %i is ", bb->index);
! 	    total_count.dump (dump_file);
! 	    fprintf (dump_file, "\n");
! 	  }
! 
! 	FOR_EACH_EDGE (e, ei, bb->succs)
! 	  if (AFDO_EINFO (e)->is_annotated ())
! 	    {
! 	      profile_count cnt = AFDO_EINFO (e)->get_count ();
! 	      /* If probability is 1, preserve reliable static prediction
! 		 (This is, for example the case of single fallthru edge
! 		  or single fallthru plus unlikely EH edge.)  */
! 	      if (cnt == total_count
! 		  && e->probability == profile_probability::always ())
! 		;
! 	      else if (cnt.nonzero_p ())
! 		e->probability
! 		  = cnt.probability_in (total_count);
! 	      /* If probability is zero, preserve reliable static
! 		 prediction.  */
! 	      else if (e->probability.nonzero_p ()
! 		       || e->probability.quality () == GUESSED)
! 		e->probability = profile_probability::never ().afdo ();
! 	      if (dump_file)
! 		{
! 		  fprintf (dump_file, "  probability of edge %i->%i"
! 			   " with count ",
! 			   e->src->index, e->dest->index);
! 		  cnt.dump (dump_file);
! 		  fprintf (dump_file, " set to ");
! 		  e->probability.dump (dump_file);
! 		  fprintf (dump_file, "\n");
! 		}
! 	    }
        }
!   afdo_adjust_guessed_profile (annotated_bb);
    FOR_ALL_BB_FN (bb, cfun)
      {
        bb->aux = NULL;
*************** afdo_calculate_branch_prob (bb_set *anno
*** 1453,1583 ****
  	    e->aux = NULL;
  	  }
      }
- 
-   loop_optimizer_finalize ();
-   free_dominance_info (CDI_DOMINATORS);
-   free_dominance_info (CDI_POST_DOMINATORS);
  }
  
! /* Perform value profile transformation using AutoFDO profile. Add the
!    promoted stmts to PROMOTED_STMTS. Return TRUE if there is any
!    indirect call promoted.  */
  
! static bool
! afdo_vpt_for_early_inline (stmt_set *promoted_stmts)
  {
    basic_block bb;
!   if (afdo_source_profile->get_function_instance_by_decl (
!           current_function_decl) == NULL)
!     return false;
! 
!   compute_fn_summary (cgraph_node::get (current_function_decl), true);
! 
!   bool has_vpt = false;
!   FOR_EACH_BB_FN (bb, cfun)
!   {
!     if (!has_indirect_call (bb))
!       continue;
!     gimple_stmt_iterator gsi;
! 
!     gcov_type bb_count = 0;
!     for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
!       {
!         count_info info;
! 	gimple *stmt = gsi_stmt (gsi);
!         if (afdo_source_profile->get_count_info (stmt, &info))
!           bb_count = MAX (bb_count, info.count);
!       }
  
!     for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
        {
!         gcall *stmt = dyn_cast <gcall *> (gsi_stmt (gsi));
!         /* IC_promotion and early_inline_2 is done in multiple iterations.
!            No need to promoted the stmt if its in promoted_stmts (means
!            it is already been promoted in the previous iterations).  */
!         if ((!stmt) || gimple_call_fn (stmt) == NULL
!             || TREE_CODE (gimple_call_fn (stmt)) == FUNCTION_DECL
!             || promoted_stmts->find (stmt) != promoted_stmts->end ())
!           continue;
! 
!         count_info info;
!         afdo_source_profile->get_count_info (stmt, &info);
!         info.count = bb_count;
!         if (afdo_source_profile->update_inlined_ind_target (stmt, &info))
!           {
!             /* Promote the indirect call and update the promoted_stmts.  */
!             promoted_stmts->insert (stmt);
!             if (afdo_vpt (&gsi, info.targets, true))
!               has_vpt = true;
!           }
        }
-   }
  
!   if (has_vpt)
      {
!       unsigned todo = optimize_inline_calls (current_function_decl);
!       if (todo & TODO_update_ssa_any)
!        update_ssa (TODO_update_ssa);
!       return true;
      }
  
!   return false;
! }
! 
! /* Annotate auto profile to the control flow graph. Do not annotate value
!    profile for stmts in PROMOTED_STMTS.  */
  
! static void
! afdo_annotate_cfg (const stmt_set &promoted_stmts)
! {
!   basic_block bb;
!   bb_set annotated_bb;
!   const function_instance *s
!       = afdo_source_profile->get_function_instance_by_decl (
!           current_function_decl);
  
!   if (s == NULL)
      return;
-   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 ();
-   profile_count max_count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
  
!   FOR_EACH_BB_FN (bb, cfun)
      {
!       /* As autoFDO uses sampling approach, we have to assume that all
! 	 counters are zero when not seen by autoFDO.  */
!       bb->count = profile_count::zero ().afdo ();
!       if (afdo_set_bb_count (bb, promoted_stmts))
! 	set_bb_annotated (bb, &annotated_bb);
!       if (bb->count > max_count)
! 	max_count = bb->count;
      }
!   if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
!       > ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->count)
      {
!       ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->count
!           = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
!       set_bb_annotated (ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb, &annotated_bb);
      }
!   if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
!       > EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb->count)
      {
!       EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb->count
!           = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
!       set_bb_annotated (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb, &annotated_bb);
      }
!   afdo_source_profile->mark_annotated (
!       DECL_SOURCE_LOCATION (current_function_decl));
!   afdo_source_profile->mark_annotated (cfun->function_start_locus);
!   afdo_source_profile->mark_annotated (cfun->function_end_locus);
!   if (max_count.nonzero_p())
      {
!       /* 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)
--- 4430,4632 ----
  	    e->aux = NULL;
  	  }
      }
  }
  
! /* Annotate auto profile to the control flow graph.  */
  
! static void
! afdo_annotate_cfg (void)
  {
    basic_block bb;
!   bb_set annotated_bb;
!   const function_instance *s
!       = afdo_source_profile->get_function_instance_by_decl (
!           current_function_decl);
  
!   /* FIXME: This is a workaround for sourcefile tracking, if afdo_string_table
!      ends up with empty filename or incorrect filename for the function and
!      should be removed once issues with sourcefile tracking get fixed.  */
!   if (s == NULL)
!     for (unsigned i = 0; i < afdo_string_table->filenames ().length (); i++)
        {
! 	s = afdo_source_profile->get_function_instance_by_decl (current_function_decl, afdo_string_table->filenames()[i]);
! 	if (s)
! 	  break;
        }
  
!   if (s == NULL)
      {
!       if (dump_file)
! 	fprintf (dump_file, "No afdo profile for %s\n",
! 		 cgraph_node::get (current_function_decl)->dump_name ());
!       /* create_gcov only dumps symbols with some samples in them.
! 	 This means that we get nonempty zero_bbs only if some
! 	 nonzero counts in profile were not matched with statements.  */
!       if (!flag_profile_partial_training
! 	  && !param_auto_profile_reorder_only)
! 	{
! 	  FOR_ALL_BB_FN (bb, cfun)
! 	    if (bb->count.quality () == GUESSED_LOCAL)
! 	      bb->count = bb->count.global0afdo ();
! 	  update_max_bb_count ();
! 	}
!       return;
      }
  
!   auto ts_it = timestamp_info_map.find (s->timestamp ());
!   if (ts_it != timestamp_info_map.end ())
!     {
!       cgraph_node *node = cgraph_node::get (current_function_decl);
!       node->tp_first_run = ts_it->second;
  
!       if (dump_file)
! 	fprintf (dump_file, "Setting %s->tp_first_run to %d\n",
! 		 node->asm_name (), node->tp_first_run);
!     }
  
!   if (param_auto_profile_reorder_only)
      return;
  
!   calculate_dominance_info (CDI_POST_DOMINATORS);
!   calculate_dominance_info (CDI_DOMINATORS);
!   loop_optimizer_init (0);
! 
!   if (dump_file)
      {
!       fprintf (dump_file, "\n\nAnnotating BB profile of %s\n",
! 	       cgraph_node::get (current_function_decl)->dump_name ());
!       fprintf (dump_file, "\n");
!       s->dump (dump_file);
!       fprintf (dump_file, "\n");
      }
!   bool profile_found = false;
!   hash_set <basic_block> zero_bbs;
!   gcov_type head_count = s->head_count () * autofdo::afdo_count_scale;
! 
!   if (!param_auto_profile_bbs)
      {
!       if (scale_bb_profile ())
! 	return;
      }
!   else
      {
!       /* In the first pass only store non-zero counts.  */
!       profile_found = head_count > 0;
!       FOR_EACH_BB_FN (bb, cfun)
! 	{
! 	  if (afdo_set_bb_count (bb, zero_bbs))
! 	    {
! 	      if (bb->count.quality () == AFDO)
! 		{
! 		  gcc_assert (bb->count.nonzero_p ());
! 		  profile_found = true;
! 		}
! 	      set_bb_annotated (bb, &annotated_bb);
! 	    }
! 	}
      }
!   /* Exit without clobbering static profile if there was no
!      non-zero count.  */
!   if (!profile_found)
      {
!       /* create_gcov only dumps symbols with some samples in them.
! 	 This means that we get nonempty zero_bbs only if some
! 	 nonzero counts in profile were not matched with statements.
! 	 ??? We can adjust create_gcov to also recordinfo
! 	 about function with no samples.  Then we can distinguish
! 	 between lost profiles which should be kept local and
! 	 real functions with 0 samples during train run.  */
!       if (zero_bbs.is_empty ())
! 	{
! 	  if (dump_file)
! 	    fprintf (dump_file, "No afdo samples found"
! 		     "; Setting global count to afdo0\n");
! 	}
!       else
! 	{
! 	  if (dump_file)
! 	    fprintf (dump_file, "Setting global count to afdo0\n");
! 	}
!       if (!flag_profile_partial_training)
! 	{
! 	  FOR_ALL_BB_FN (bb, cfun)
! 	    if (bb->count.quality () == GUESSED_LOCAL)
! 	      bb->count = bb->count.global0afdo ();
! 	  update_max_bb_count ();
! 	}
! 
!       loop_optimizer_finalize ();
!       free_dominance_info (CDI_DOMINATORS);
!       free_dominance_info (CDI_POST_DOMINATORS);
!       return;
      }
!   /* We try to preserve static profile for BBs with 0
!      afdo samples, but if even static profile agrees with 0,
!      consider it final so propagation works better.  */
!   for (basic_block bb : zero_bbs)
!     if (!bb->count.nonzero_p ())
!       {
! 	update_count_by_afdo_count (&bb->count, 0);
! 	set_bb_annotated (bb, &annotated_bb);
! 	if (dump_file)
! 	  {
! 	    fprintf (dump_file, "  Annotating bb %i with count ", bb->index);
! 	    bb->count.dump (dump_file);
! 	    fprintf (dump_file,
! 		     " (has 0 count in both static and afdo profile)\n");
! 	  }
!       }
! 
!   /* Update profile.  */
!   if (head_count > 0)
!     {
!       update_count_by_afdo_count (&ENTRY_BLOCK_PTR_FOR_FN (cfun)->count,
! 				  head_count);
!       set_bb_annotated (ENTRY_BLOCK_PTR_FOR_FN (cfun), &annotated_bb);
!       if (!is_bb_annotated (ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb, annotated_bb)
! 	  || ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
! 	     > ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->count)
! 	{
! 	  ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->count
! 	      = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
! 	  set_bb_annotated (ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb,
! 			    &annotated_bb);
! 	}
!       if (!is_bb_annotated (EXIT_BLOCK_PTR_FOR_FN (cfun), annotated_bb)
! 	  || ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
! 	     > EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb->count)
! 	{
! 	  EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb->count
! 	      = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
! 	  set_bb_annotated (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb, &annotated_bb);
! 	}
!     }
! 
!   /* Calculate, propagate count and probability information on CFG.  */
!   afdo_calculate_branch_prob (&annotated_bb);
! 
!  /* If we failed to turn some of original guessed profile to global,
!      set basic blocks uninitialized.  */
!   FOR_ALL_BB_FN (bb, cfun)
!     if (!bb->count.ipa_p ())
!       {
! 	/* We skip annotating entry profile if it is 0
! 	   in hope to be able to determine it better from the
! 	   static profile.
! 
! 	   Now we know we can not derive it from other info,
! 	   so set it since it is better than UNKNOWN.  */
! 	if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun))
! 	  bb->count = profile_count::zero ().afdo ();
! 	else
! 	  bb->count = profile_count::uninitialized ();
! 	if (dump_file)
! 	  fprintf (dump_file, "  Unknown count of bb %i\n", bb->index);
! 	cfun->cfg->full_profile = false;
!       }
! 
!   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)
*************** afdo_annotate_cfg (const stmt_set &promo
*** 1587,1607 ****
        free_dominance_info (CDI_POST_DOMINATORS);
        update_ssa (TODO_update_ssa);
      }
- }
- 
- /* Wrapper function to invoke early inliner.  */
  
! static unsigned int
! early_inline ()
! {
!   compute_fn_summary (cgraph_node::get (current_function_decl), true);
!   unsigned int todo = early_inliner (cfun);
!   if (todo & TODO_update_ssa_any)
!     update_ssa (TODO_update_ssa);
!   return todo;
  }
  
! /* Use AutoFDO profile to annoate the control flow graph.
     Return the todo flag.  */
  
  static unsigned int
--- 4636,4648 ----
        free_dominance_info (CDI_POST_DOMINATORS);
        update_ssa (TODO_update_ssa);
      }
  
!   loop_optimizer_finalize ();
!   free_dominance_info (CDI_DOMINATORS);
!   free_dominance_info (CDI_POST_DOMINATORS);
  }
  
! /* Use AutoFDO profile to annotate the control flow graph.
     Return the todo flag.  */
  
  static unsigned int
*************** auto_profile (void)
*** 1609,1619 ****
  {
    struct cgraph_node *node;
  
!   if (symtab->state == FINISHED)
      return 0;
  
    init_node_map (true);
    profile_info = autofdo::afdo_profile_info;
  
    FOR_EACH_FUNCTION (node)
    {
--- 4650,4661 ----
  {
    struct cgraph_node *node;
  
!   if (symtab->state == FINISHED || !afdo_source_profile)
      return 0;
  
    init_node_map (true);
    profile_info = autofdo::afdo_profile_info;
+   afdo_source_profile->offline_unrealized_inlines ();
  
    FOR_EACH_FUNCTION (node)
    {
*************** auto_profile (void)
*** 1626,1681 ****
  
      push_cfun (DECL_STRUCT_FUNCTION (node->decl));
  
!     /* First do indirect call promotion and early inline to make the
!        IR match the profiled binary before actual annotation.
! 
!        This is needed because an indirect call might have been promoted
!        and inlined in the profiled binary. If we do not promote and
!        inline these indirect calls before annotation, the profile for
!        these promoted functions will be lost.
! 
!        e.g. foo() --indirect_call--> bar()
!        In profiled binary, the callsite is promoted and inlined, making
!        the profile look like:
! 
!        foo: {
!          loc_foo_1: count_1
!          bar@loc_foo_2: {
!            loc_bar_1: count_2
!            loc_bar_2: count_3
!          }
!        }
! 
!        Before AutoFDO pass, loc_foo_2 is not promoted thus not inlined.
!        If we perform annotation on it, the profile inside bar@loc_foo2
!        will be wasted.
! 
!        To avoid this, we promote loc_foo_2 and inline the promoted bar
!        function before annotation, so the profile inside bar@loc_foo2
!        will be useful.  */
!     autofdo::stmt_set promoted_stmts;
!     unsigned int todo = 0;
!     for (int i = 0; i < 10; i++)
!       {
! 	if (!flag_value_profile_transformations
! 	    || !autofdo::afdo_vpt_for_early_inline (&promoted_stmts))
! 	  break;
! 	todo |= early_inline ();
!       }
  
!     todo |= early_inline ();
!     autofdo::afdo_annotate_cfg (promoted_stmts);
      compute_function_frequency ();
  
-     /* Local pure-const may imply need to fixup the cfg.  */
-     todo |= execute_fixup_cfg ();
-     if (todo & TODO_cleanup_cfg)
-       cleanup_tree_cfg ();
- 
      free_dominance_info (CDI_DOMINATORS);
      free_dominance_info (CDI_POST_DOMINATORS);
      cgraph_edge::rebuild_edges ();
-     compute_fn_summary (cgraph_node::get (current_function_decl), true);
      pop_cfun ();
    }
  
--- 4668,4684 ----
  
      push_cfun (DECL_STRUCT_FUNCTION (node->decl));
  
!     /* Local pure-const may imply need to fixup the cfg.
!        This is similar to what is done in tree-profile.cc.  */
!     if ((execute_fixup_cfg () & TODO_cleanup_cfg))
!       cleanup_tree_cfg ();
  
!     autofdo::afdo_annotate_cfg ();
      compute_function_frequency ();
  
      free_dominance_info (CDI_DOMINATORS);
      free_dominance_info (CDI_POST_DOMINATORS);
      cgraph_edge::rebuild_edges ();
      pop_cfun ();
    }
  
*************** read_autofdo_file (void)
*** 1694,1699 ****
--- 4697,4703 ----
    autofdo::afdo_profile_info = XNEW (gcov_summary);
    autofdo::afdo_profile_info->runs = 1;
    autofdo::afdo_profile_info->sum_max = 0;
+   autofdo::afdo_profile_info->cutoff = 1;
  
    /* Read the profile from the profile file.  */
    autofdo::read_profile ();
*************** end_auto_profile (void)
*** 1706,1711 ****
--- 4710,4716 ----
  {
    delete autofdo::afdo_source_profile;
    delete autofdo::afdo_string_table;
+   delete autofdo::afdo_summary_info;
    profile_info = NULL;
  }
  
*************** afdo_callsite_hot_enough_for_early_inlin
*** 1721,1738 ****
      {
        bool is_hot;
        profile_count pcount = profile_count::from_gcov_type (count).afdo ();
!       gcov_summary *saved_profile_info = profile_info;
!       /* At early inline stage, profile_info is not set yet. We need to
!          temporarily set it to afdo_profile_info to calculate hotness.  */
!       profile_info = autofdo::afdo_profile_info;
!       is_hot = maybe_hot_count_p (NULL, pcount);
!       profile_info = saved_profile_info;
        return is_hot;
      }
  
    return false;
  }
  
  namespace
  {
  
--- 4726,4820 ----
      {
        bool is_hot;
        profile_count pcount = profile_count::from_gcov_type (count).afdo ();
!       is_hot = maybe_hot_afdo_count_p (pcount);
!       if (dump_file)
! 	{
! 	  fprintf (dump_file, "Call %s -> %s has %s afdo profile count ",
! 		   edge->caller->dump_name (), edge->callee->dump_name (),
! 		   is_hot ? "hot" : "cold");
! 	  pcount.dump (dump_file);
! 	  fprintf (dump_file, "\n");
! 	}
        return is_hot;
      }
  
    return false;
  }
  
+ /* Do indirect call promotion during early inlining to make the
+    IR match the profiled binary before actual annotation.
+ 
+    This is needed because an indirect call might have been promoted
+    and inlined in the profiled binary.  If we do not promote and
+    inline these indirect calls before annotation, the profile for
+    these promoted functions will be lost.
+ 
+    e.g. foo() --indirect_call--> bar()
+    In profiled binary, the callsite is promoted and inlined, making
+    the profile look like:
+ 
+    foo: {
+      loc_foo_1: count_1
+      bar@loc_foo_2: {
+        loc_bar_1: count_2
+        loc_bar_2: count_3
+      }
+    }
+ 
+    Before AutoFDO pass, loc_foo_2 is not promoted thus not inlined.
+    If we perform annotation on it, the profile inside bar@loc_foo2
+    will be wasted.
+ 
+    To avoid this, we promote loc_foo_2 and inline the promoted bar
+    function before annotation, so the profile inside bar@loc_foo2
+    will be useful.  */
+ 
+ bool
+ afdo_vpt_for_early_inline (cgraph_node *node)
+ {
+   if (!node->indirect_calls)
+     return false;
+   bool changed = false;
+   cgraph_node *outer = node->inlined_to ? node->inlined_to : node;
+   if (autofdo::afdo_source_profile->get_function_instance_by_decl
+ 	  (outer->decl) == NULL)
+     return false;
+   for (cgraph_edge *e = node->indirect_calls; e; e = e->next_callee)
+     {
+       gcov_type bb_count = 0;
+       autofdo::count_info info;
+       basic_block bb = gimple_bb (e->call_stmt);
+ 
+       /* TODO: This is quadratic; cache the value.  */
+       for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
+ 	   !gsi_end_p (gsi); gsi_next (&gsi))
+ 	{
+ 	  gimple *stmt = gsi_stmt (gsi);
+ 	  if (!stmt_loc_used_by_debug_info (stmt))
+ 	    continue;
+ 	  autofdo::count_info info;
+ 	  if (autofdo::afdo_source_profile->get_count_info (stmt, &info, node))
+ 	    bb_count = MAX (bb_count, info.count);
+ 	}
+       autofdo::afdo_source_profile->get_count_info (e->call_stmt, &info, node);
+       info.count = bb_count;
+       if (!autofdo::afdo_source_profile->update_inlined_ind_target
+ 		      (e->call_stmt, &info, node))
+ 	continue;
+       changed |= autofdo::afdo_vpt (e->call_stmt, info.targets, true, e);
+     }
+   return changed;
+ }
+ 
+ /* If speculation used during early inline, remove the target
+    so we do not speculate the indirect edge again during afdo pass.  */
+ 
+ void
+ remove_afdo_speculative_target (cgraph_edge *e)
+ {
+   autofdo::afdo_source_profile->remove_icall_target (e);
+ }
+ 
  namespace
  {
  
*************** make_pass_ipa_auto_profile (gcc::context
*** 1775,1777 ****
--- 4857,4905 ----
  {
    return new pass_ipa_auto_profile (ctxt);
  }
+ 
+ namespace
+ {
+ 
+ const pass_data pass_data_ipa_auto_profile_offline = {
+   SIMPLE_IPA_PASS, "afdo_offline", /* name */
+   OPTGROUP_NONE,           /* optinfo_flags */
+   TV_IPA_AUTOFDO_OFFLINE,  /* tv_id */
+   0,                       /* properties_required */
+   0,                       /* properties_provided */
+   0,                       /* properties_destroyed */
+   0,                       /* todo_flags_start */
+   0,                       /* todo_flags_finish */
+ };
+ 
+ class pass_ipa_auto_profile_offline : public simple_ipa_opt_pass
+ {
+ public:
+   pass_ipa_auto_profile_offline (gcc::context *ctxt)
+       : simple_ipa_opt_pass (pass_data_ipa_auto_profile_offline, ctxt)
+   {
+   }
+ 
+   /* opt_pass methods: */
+   bool
+   gate (function *) final override
+   {
+     return flag_auto_profile;
+   }
+   unsigned int
+   execute (function *) final override
+   {
+     read_autofdo_file ();
+     if (autofdo::afdo_source_profile)
+       autofdo::afdo_source_profile->offline_external_functions ();
+     return 0;
+   }
+ }; // class pass_ipa_auto_profile
+ 
+ } // anon namespace
+ 
+ simple_ipa_opt_pass *
+ make_pass_ipa_auto_profile_offline (gcc::context *ctxt)
+ {
+   return new pass_ipa_auto_profile_offline (ctxt);
+ }
diff -Nrcpad gcc-15.2.0/gcc/auto-profile.h gcc-16.1.0-RC-20260423/gcc/auto-profile.h
*** gcc-15.2.0/gcc/auto-profile.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/auto-profile.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* auto-profile.h - Defines data exported from auto-profile.cc
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
     Contributed by Dehao Chen (dehao@google.com)
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 21,26 ****
--- 21,28 ----
  #ifndef AUTO_PROFILE_H
  #define AUTO_PROFILE_H
  
+ #define AUTO_PROFILE_VERSION 3
+ 
  /* Read, process, finalize AutoFDO data structures.  */
  extern void read_autofdo_file (void);
  extern void end_auto_profile (void);
*************** extern void end_auto_profile (void);
*** 28,31 ****
--- 30,47 ----
  /* Returns TRUE if EDGE is hot enough to be inlined early.  */
  extern bool afdo_callsite_hot_enough_for_early_inline (struct cgraph_edge *);
  
+ /* Try to turn indirect calls into speculative calls for early inlining.  */
+ extern bool afdo_vpt_for_early_inline (cgraph_node *node);
+ 
+ /* If speculation was early inlined, remove it from profile data so we
+    do not repeat it later.  */
+ extern void remove_afdo_speculative_target (cgraph_edge *);
+ 
+ /* profile counts determined by AFDO smaller than afdo_hot_bb_threshold are
+    considered cols.  */
+ extern gcov_type afdo_hot_bb_threshold;
+ 
+ /* Return true if COUNT is possibly hot.  */
+ extern bool maybe_hot_afdo_count_p (profile_count count);
+ 
  #endif /* AUTO_PROFILE_H */
diff -Nrcpad gcc-15.2.0/gcc/avoid-store-forwarding.cc gcc-16.1.0-RC-20260423/gcc/avoid-store-forwarding.cc
*** gcc-15.2.0/gcc/avoid-store-forwarding.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/avoid-store-forwarding.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Avoid store forwarding optimization pass.
!    Copyright (C) 2024-2025 Free Software Foundation, Inc.
     Contributed by VRULL GmbH.
  
     This file is part of GCC.
--- 1,5 ----
  /* Avoid store forwarding optimization pass.
!    Copyright (C) 2024-2026 Free Software Foundation, Inc.
     Contributed by VRULL GmbH.
  
     This file is part of GCC.
***************
*** 18,35 ****
     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"
--- 18,34 ----
     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 "backend.h"
  #include "target.h"
  #include "rtl.h"
+ #include "avoid-store-forwarding.h"
  #include "alias.h"
  #include "rtlanal.h"
  #include "cfgrtl.h"
  #include "tree-pass.h"
  #include "predict.h"
  #include "insn-config.h"
  #include "expmed.h"
*************** public:
*** 80,91 ****
    {}
  
    /* 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.  */
--- 79,90 ----
    {}
  
    /* opt_pass methods: */
!   virtual bool gate (function *) final override
      {
        return flag_avoid_store_forwarding && optimize >= 1;
      }
  
!   virtual unsigned int execute (function *) final override;
  }; // class pass_rtl_avoid_store_forwarding
  
  /* Handler for finding and avoiding store forwardings.  */
*************** generate_bit_insert_sequence (store_fwd_
*** 119,135 ****
    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);
--- 118,123 ----
*************** is_store_forwarding (rtx store_mem, rtx
*** 156,166 ****
    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
--- 144,161 ----
    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);
+   poly_int64 off_diff = store_offset - load_offset;
+ 
+   HOST_WIDE_INT off_val_tmp = 0;
+   bool is_off_diff_constant = off_diff.is_constant (&off_val_tmp);
+   if (off_val)
+     *off_val = off_val_tmp;
+ 
    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))
! 	  && is_off_diff_constant);
  }
  
  /* Given a list of small stores that are forwarded to LOAD_INSN, try to
*************** process_store_forwarding (vec<store_fwd_
*** 177,185 ****
    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;
--- 172,183 ----
    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.
!      Bail out when partially overlapping stores are detected, as the pass
!      cannot correctly handle "last writer wins" semantics for the
!      overlapping byte ranges (see PR124476).  */
  
!   auto_sbitmap forwarded_bytes (load_size);
    bitmap_clear (forwarded_bytes);
  
    unsigned int i;
*************** process_store_forwarding (vec<store_fwd_
*** 187,195 ****
    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);
      }
  
--- 185,193 ----
    FOR_EACH_VEC_ELT (stores, i, it)
      {
        HOST_WIDE_INT store_size = MEM_SIZE (it->store_mem).to_constant ();
!       if (bitmap_any_bit_in_range_p (forwarded_bytes, it->offset,
  				 it->offset + store_size - 1))
! 	return false;
        bitmap_set_range (forwarded_bytes, it->offset, store_size);
      }
  
*************** process_store_forwarding (vec<store_fwd_
*** 225,230 ****
--- 223,250 ----
  
    int move_to_front = -1;
    int total_cost = 0;
+   int base_offset_index = -1;
+ 
+   /* Find the last store that has the same offset the load, in the case that
+      we're eliminating the load.  We will try to use it as a base register
+      to avoid bit inserts (see second loop below).  We want the last one, as
+      it will be wider and we don't want to overwrite the base register if
+      there are many of them.  */
+   if (load_elim)
+     {
+       FOR_EACH_VEC_ELT_REVERSE (stores, i, it)
+ 	{
+ 	  const bool has_base_offset
+ 	    = known_eq (poly_uint64 (it->offset),
+ 			subreg_size_lowpart_offset (MEM_SIZE (it->store_mem),
+ 						    load_size));
+ 	  if (has_base_offset)
+ 	    {
+ 	      base_offset_index = i;
+ 	      break;
+ 	    }
+ 	}
+     }
  
    /* Check if we can emit bit insert instructions for all forwarded stores.  */
    FOR_EACH_VEC_ELT (stores, i, it)
*************** process_store_forwarding (vec<store_fwd_
*** 232,247 ****
        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 ();
--- 252,270 ----
        it->mov_reg = gen_reg_rtx (GET_MODE (it->store_mem));
        rtx_insn *insns = NULL;
  
!       /* Check if this is a store with base offset, if we're eliminating the
! 	 load, and use it as the base register to avoid a bit insert if
! 	 possible.  Load elimination is implied by base_offset_index != -1.  */
!       if (i == (unsigned) base_offset_index)
  	{
  	  start_sequence ();
  
! 	  rtx base_reg = lowpart_subreg (GET_MODE (dest), it->mov_reg,
! 					 GET_MODE (it->mov_reg));
! 
! 	  if (base_reg)
  	    {
! 	      rtx_insn *move0 = emit_move_insn (dest, base_reg);
  	      if (recog_memoized (move0) >= 0)
  		{
  		  insns = get_insns ();
*************** process_store_forwarding (vec<store_fwd_
*** 346,353 ****
  
        start_sequence ();
        rtx_insn *insn = emit_insn (load_move);
!       rtx_insn *seq = get_insns ();
!       end_sequence ();
  
        if (recog_memoized (insn) < 0)
  	return false;
--- 369,375 ----
  
        start_sequence ();
        rtx_insn *insn = emit_insn (load_move);
!       rtx_insn *seq = end_sequence ();
  
        if (recog_memoized (insn) < 0)
  	return false;
*************** process_store_forwarding (vec<store_fwd_
*** 376,381 ****
--- 398,404 ----
  	      print_rtl_single (dump_file, insn);
  	    }
  	}
+ 
      }
  
    stats_sf_avoided++;
*************** store_forwarding_analyzer::avoid_store_f
*** 412,420 ****
--- 435,456 ----
      return;
  
    auto_vec<store_fwd_info, 8> store_exprs;
+   auto_vec<rtx> store_exprs_del;
    rtx_insn *insn;
    unsigned int insn_cnt = 0;
  
+   /* We are iterating over the basic block's instructions detecting store
+      instructions.  Upon reaching a load instruction, we check if any of the
+      previously detected stores could result in store forwarding.  In that
+      case, we try to reorder the load and store instructions.
+      We skip this transformation when we encounter complex memory operations,
+      instructions that might throw an exception, instruction dependencies,
+      etc.  This is done by clearing the vector of detected stores, while
+      keeping the removed stores in another vector.  By doing so, we can check
+      if any of the removed stores operated on the load's address range, when
+      reaching a subsequent store that operates on the same address range,
+      as this would lead to incorrect values on the register that keeps the
+      loaded value.  */
    FOR_BB_INSNS (bb, insn)
      {
        if (!NONDEBUG_INSN_P (insn))
*************** store_forwarding_analyzer::avoid_store_f
*** 427,432 ****
--- 463,472 ----
  
        if (!set || insn_could_throw_p (insn))
  	{
+ 	  unsigned int i;
+ 	  store_fwd_info *it;
+ 	  FOR_EACH_VEC_ELT (store_exprs, i, it)
+ 	    store_exprs_del.safe_push (it->store_mem);
  	  store_exprs.truncate (0);
  	  continue;
  	}
*************** store_forwarding_analyzer::avoid_store_f
*** 450,455 ****
--- 490,499 ----
  	  || (load_mem && (!MEM_SIZE_KNOWN_P (load_mem)
  			   || !MEM_SIZE (load_mem).is_constant ())))
  	{
+ 	  unsigned int i;
+ 	  store_fwd_info *it;
+ 	  FOR_EACH_VEC_ELT (store_exprs, i, it)
+ 	    store_exprs_del.safe_push (it->store_mem);
  	  store_exprs.truncate (0);
  	  continue;
  	}
*************** store_forwarding_analyzer::avoid_store_f
*** 501,506 ****
--- 545,551 ----
  		    it->remove = true;
  		    removed_count++;
  		    remove_rest = true;
+ 		    store_exprs_del.safe_push (it->store_mem);
  		  }
  	      }
  	  }
*************** store_forwarding_analyzer::avoid_store_f
*** 540,562 ****
  		  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;
--- 585,630 ----
  		  it->remove = true;
  		  removed_count++;
  		  remove_rest = true;
+ 		  forwardings.truncate (0);
  		}
  	      else if (is_store_forwarding (store_mem, load_mem, &off_val))
  		{
+ 		  unsigned int j;
+ 		  rtx *del_it;
+ 		  bool same_range_as_removed = false;
+ 
+ 		  /* Check if another store in the load's address range has
+ 		     been deleted due to a constraint violation.  In this case
+ 		     we can't forward any other stores that operate in this
+ 		     range, as it would lead to partial update of the register
+ 		     that holds the loaded value.  */
+ 		  FOR_EACH_VEC_ELT (store_exprs_del, j, del_it)
+ 		    {
+ 		      rtx del_store_mem = *del_it;
+ 		      same_range_as_removed
+ 			= is_store_forwarding (del_store_mem, load_mem, NULL);
+ 		      if (same_range_as_removed)
+ 			break;
+ 		    }
+ 
  		  /* Check if moving this store after the load is legal.  */
  		  bool write_dep = false;
! 		  if (!same_range_as_removed)
  		    {
! 		      unsigned int j = store_exprs.length () - 1;
! 		      for (; j != i; j--)
  			{
! 			  if (!store_exprs[j].forwarded
! 			      && output_dependence (store_mem,
! 						    store_exprs[j].store_mem))
! 			    {
! 			      write_dep = true;
! 			      break;
! 			    }
  			}
  		    }
  
! 		  if (!same_range_as_removed && !write_dep)
  		    {
  		      it->forwarded = true;
  		      it->offset = off_val;
*************** store_forwarding_analyzer::avoid_store_f
*** 576,581 ****
--- 644,650 ----
  		  it->remove = true;
  		  removed_count++;
  		  remove_rest = true;
+ 		  forwardings.truncate (0);
  		}
  	    }
  
*************** store_forwarding_analyzer::avoid_store_f
*** 583,591 ****
  	    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)
  	{
--- 652,663 ----
  	    process_store_forwarding (forwardings, insn, load_mem);
  	}
  
+ 	/* Abort in case that we encounter a memory read/write that is not a
+ 	   simple store/load, as we can't make safe assumptions about the
+ 	   side-effects of this.  */
  	if ((writes_mem && !is_simple_store)
  	     || (reads_mem && !is_simple_load))
! 	  return;
  
  	if (removed_count)
  	{
*************** store_forwarding_analyzer::update_stats
*** 615,621 ****
    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
--- 687,693 ----
    statistics_counter_event (fn, "Cases of store forwarding detected: ",
  			    stats_sf_detected);
    statistics_counter_event (fn, "Cases of store forwarding avoided: ",
! 			    stats_sf_avoided);
  }
  
  unsigned int
diff -Nrcpad gcc-15.2.0/gcc/avoid-store-forwarding.h gcc-16.1.0-RC-20260423/gcc/avoid-store-forwarding.h
*** gcc-15.2.0/gcc/avoid-store-forwarding.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/avoid-store-forwarding.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Avoid store forwarding optimization pass.
!    Copyright (C) 2024-2025 Free Software Foundation, Inc.
     Contributed by VRULL GmbH.
  
     This file is part of GCC.
--- 1,5 ----
  /* Avoid store forwarding optimization pass.
!    Copyright (C) 2024-2026 Free Software Foundation, Inc.
     Contributed by VRULL GmbH.
  
     This file is part of GCC.
***************
*** 21,32 ****
  #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.  */
--- 21,26 ----
diff -Nrcpad gcc-15.2.0/gcc/backend.h gcc-16.1.0-RC-20260423/gcc/backend.h
*** gcc-15.2.0/gcc/backend.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/backend.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,6 ----
  /* Common Backend requirements.
  
!    Copyright (C) 2015-2026 Free Software Foundation, Inc.
     Contributed by Andrew MacLeod <amacleod@redhat.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/basic-block.h gcc-16.1.0-RC-20260423/gcc/basic-block.h
*** gcc-15.2.0/gcc/basic-block.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/basic-block.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define control flow data structures for the CFG.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum cfg_bb_flags
*** 293,303 ****
  /* Return expected execution frequency of the edge E.  */
  #define EDGE_FREQUENCY(e)		e->count ().to_frequency (cfun)
  
- /* Compute a scale factor (or probability) suitable for scaling of
-    gcov_type values via apply_probability() and apply_scale().  */
- #define GCOV_COMPUTE_SCALE(num,den) \
-   ((den) ? RDIV ((num) * REG_BR_PROB_BASE, (den)) : REG_BR_PROB_BASE)
- 
  /* Return nonzero if edge is critical.  */
  #define EDGE_CRITICAL_P(e)		(EDGE_COUNT ((e)->src->succs) >= 2 \
  					 && EDGE_COUNT ((e)->dest->preds) >= 2)
--- 293,298 ----
diff -Nrcpad gcc-15.2.0/gcc/bb-reorder.cc gcc-16.1.0-RC-20260423/gcc/bb-reorder.cc
*** gcc-15.2.0/gcc/bb-reorder.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/bb-reorder.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
*************** fix_crossing_unconditional_branches (voi
*** 2287,2294 ****
  	      start_sequence ();
  	      emit_move_insn (new_reg, label_addr);
  	      emit_indirect_jump (new_reg);
! 	      indirect_jump_sequence = get_insns ();
! 	      end_sequence ();
  
  	      /* Make sure every instruction in the new jump sequence has
  		 its basic block set to be cur_bb.  */
--- 2287,2293 ----
  	      start_sequence ();
  	      emit_move_insn (new_reg, label_addr);
  	      emit_indirect_jump (new_reg);
! 	      indirect_jump_sequence = end_sequence ();
  
  	      /* Make sure every instruction in the new jump sequence has
  		 its basic block set to be cur_bb.  */
*************** reorder_basic_blocks_software_trace_cach
*** 2378,2384 ****
    FREE (bbd);
  }
  
! /* Order edges by execution frequency, higher first.  */
  
  static int
  edge_order (const void *ve1, const void *ve2)
--- 2377,2387 ----
    FREE (bbd);
  }
  
! /* Order edges by execution frequency, higher first.
!    Return:
!        1 iff frequency (VE1) < frequency (VE2)
!        0 iff frequency (VE1) == frequency (VE2)
!        -1 iff frequency (VE1) > frequency (VE2)  */
  
  static int
  edge_order (const void *ve1, const void *ve2)
*************** edge_order (const void *ve1, const void
*** 2390,2397 ****
    /* Since profile_count::operator< does not establish a strict weak order
       in presence of uninitialized counts, use 'max': this makes them appear
       as if having execution frequency less than any initialized count.  */
!   profile_count m = c1.max (c2);
!   return (m == c2) - (m == c1);
  }
  
  /* Reorder basic blocks using the "simple" algorithm.  This tries to
--- 2393,2407 ----
    /* Since profile_count::operator< does not establish a strict weak order
       in presence of uninitialized counts, use 'max': this makes them appear
       as if having execution frequency less than any initialized count.  */
!   gcov_type gc1 = c1.initialized_p () ? c1.to_gcov_type () : 0;
!   gcov_type gc2 = c2.initialized_p () ? c2.to_gcov_type () : 0;
!   gcov_type m = MAX (gc1, gc2);
!   int low_to_high_cmp = (m == gc1) - (m == gc2);
!   /* gcc_stablesort sorts values in low-to-high order.  But edges should
!      be sorted in the opposite order - with highest execution frequency first.
!      So return an inverted comparison to trick gcc_stablesort into
!      performing a reversed sorting order.  */
!   return -1 * low_to_high_cmp;
  }
  
  /* Reorder basic blocks using the "simple" algorithm.  This tries to
diff -Nrcpad gcc-15.2.0/gcc/bb-reorder.h gcc-16.1.0-RC-20260423/gcc/bb-reorder.h
*** gcc-15.2.0/gcc/bb-reorder.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/bb-reorder.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
--- 1,5 ----
  /* Basic block reordering routines for the GNU compiler.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
  
     This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/bbitmap.h gcc-16.1.0-RC-20260423/gcc/bbitmap.h
*** gcc-15.2.0/gcc/bbitmap.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/bbitmap.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Functions to support fixed-length bitmaps.
!    Copyright (C) 2024-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support fixed-length bitmaps.
!    Copyright (C) 2024-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/bitmap.cc gcc-16.1.0-RC-20260423/gcc/bitmap.cc
*** gcc-15.2.0/gcc/bitmap.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/bitmap.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/bitmap.h gcc-16.1.0-RC-20260423/gcc/bitmap.h
*** gcc-15.2.0/gcc/bitmap.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/bitmap.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Functions to support general ended bitmaps.
!    Copyright (C) 1997-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/btfout.cc gcc-16.1.0-RC-20260423/gcc/btfout.cc
*** gcc-15.2.0/gcc/btfout.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/btfout.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Output BTF format from GCC.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** get_btf_kind (uint32_t ctf_kind)
*** 141,146 ****
--- 141,148 ----
      case CTF_K_VOLATILE: return BTF_KIND_VOLATILE;
      case CTF_K_CONST:    return BTF_KIND_CONST;
      case CTF_K_RESTRICT: return BTF_KIND_RESTRICT;
+     case CTF_K_DECL_TAG: return BTF_KIND_DECL_TAG;
+     case CTF_K_TYPE_TAG: return BTF_KIND_TYPE_TAG;
      default:;
      }
    return BTF_KIND_UNKN;
*************** btf_calc_num_vbytes (ctf_dtdef_ref dtd)
*** 217,222 ****
--- 219,225 ----
      case BTF_KIND_CONST:
      case BTF_KIND_RESTRICT:
      case BTF_KIND_FUNC:
+     case BTF_KIND_TYPE_TAG:
      /* These kinds have no vlen data.  */
        break;
  
*************** btf_calc_num_vbytes (ctf_dtdef_ref dtd)
*** 256,261 ****
--- 259,268 ----
        vlen_bytes += vlen * sizeof (struct btf_var_secinfo);
        break;
  
+     case BTF_KIND_DECL_TAG:
+       vlen_bytes += sizeof (struct btf_decl_tag);
+       break;
+ 
      default:
        break;
      }
*************** btf_asm_type (ctf_dtdef_ref dtd)
*** 452,457 ****
--- 459,478 ----
  	 and should write 0.  */
        dw2_asm_output_data (4, 0, "(unused)");
        return;
+     case BTF_KIND_DECL_TAG:
+       {
+ 	if (dtd->ref_type)
+ 	  break;
+ 	else if (dtd->dtd_u.dtu_tag.ref_var)
+ 	  {
+ 	    /* ref_type is NULL for decl tag attached to a variable.  */
+ 	    ctf_dvdef_ref dvd = dtd->dtd_u.dtu_tag.ref_var;
+ 	    dw2_asm_output_data (4, dvd->dvd_id,
+ 				 "btt_type: (BTF_KIND_VAR '%s')",
+ 				 dvd->dvd_name);
+ 	    return;
+ 	  }
+       }
      default:
        break;
      }
*************** output_asm_btf_vlen_bytes (ctf_container
*** 801,806 ****
--- 822,833 ----
  	 at this point.  */
        gcc_unreachable ();
  
+     case BTF_KIND_DECL_TAG:
+       dw2_asm_output_data (4, dtd->dtd_u.dtu_tag.component_idx,
+ 			   "component_idx=%d",
+ 			   dtd->dtd_u.dtu_tag.component_idx);
+       break;
+ 
      default:
        /* All other BTF type kinds have no variable length data.  */
        break;
*************** output_btf_func_types (void)
*** 851,856 ****
--- 878,897 ----
      btf_asm_func_type (ref);
  }
  
+ static void
+ output_btf_tags (ctf_container_ref ctfc)
+ {
+   /* If pruning, tags which are not pruned have already been added to
+      the used list and output by output_btf_types.  */
+   if (debug_prune_btf)
+     return;
+ 
+   ctf_dtdef_ref dtd;
+   unsigned i;
+   FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd)
+     output_asm_btf_type (ctfc, dtd);
+ }
+ 
  /* Output all BTF_KIND_DATASEC records.  */
  
  static void
*************** btf_output (ctf_container_ref ctfc)
*** 869,874 ****
--- 910,916 ----
    output_btf_types (ctfc);
    output_btf_vars (ctfc);
    output_btf_func_types ();
+   output_btf_tags (ctfc);
    output_btf_datasec_types ();
    output_btf_strs (ctfc);
  }
*************** static vec<struct btf_fixup> fixups;
*** 985,991 ****
     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
--- 1027,1034 ----
     is created and emitted.  This vector stores them.  */
  static GTY (()) vec<ctf_dtdef_ref, va_gc> *forwards;
  
! /* Implementation of btf_add_used_type.
!    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
*************** static GTY (()) vec<ctf_dtdef_ref, va_gc
*** 996,1003 ****
     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;
--- 1039,1046 ----
     CREATE_FIXUPS is false.  */
  
  static ctf_dtdef_ref
! btf_add_used_type_1 (ctf_container_ref ctfc, ctf_dtdef_ref dtd,
! 		     bool check_ptr, bool seen_ptr, bool create_fixups)
  {
    if (dtd == NULL)
      return NULL;
*************** btf_add_used_type (ctf_container_ref ctf
*** 1029,1036 ****
  		  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:
--- 1072,1080 ----
  		  fixups.unordered_remove (i);
  
  	      /* Add the concrete base type.  */
! 	      dtd->ref_type = btf_add_used_type_1 (ctfc, dtd->ref_type,
! 						   check_ptr, seen_ptr,
! 						   create_fixups);
  	      return dtd;
  	    }
  	default:
*************** btf_add_used_type (ctf_container_ref ctf
*** 1044,1051 ****
  	 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;
      }
  
--- 1088,1095 ----
  	 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_1 (ctfc, dtd->dtd_u.dtu_slice.cts_type,
! 			   check_ptr, seen_ptr, create_fixups);
        return dtd;
      }
  
*************** btf_add_used_type (ctf_container_ref ctf
*** 1069,1075 ****
      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:
--- 1113,1123 ----
      case BTF_KIND_INT:
      case BTF_KIND_FLOAT:
      case BTF_KIND_FWD:
!     case BTF_KIND_DECL_TAG:
!       /* Leaf kinds which do not refer to any other types.
! 	 BTF_KIND_DECL_TAG is a special case: we treat it as though it does not
! 	 refer to any other types, since we only want the DECL_TAG to be added
! 	 if the type to which it refers has already been added.  */
        break;
  
      case BTF_KIND_FUNC:
*************** btf_add_used_type (ctf_container_ref ctf
*** 1082,1087 ****
--- 1130,1136 ----
      case BTF_KIND_CONST:
      case BTF_KIND_VOLATILE:
      case BTF_KIND_RESTRICT:
+     case BTF_KIND_TYPE_TAG:
        {
  	/* These type kinds refer to exactly one other type.  */
  	if (check_ptr && !seen_ptr)
*************** btf_add_used_type (ctf_container_ref ctf
*** 1089,1095 ****
  
  	/* 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);
--- 1138,1145 ----
  
  	/* Try to avoid chasing pointers to struct/union types if the
  	   underlying type isn't used.  */
! 	if (check_ptr && seen_ptr && create_fixups
! 	    && kind != BTF_KIND_TYPEDEF)
  	  {
  	    ctf_dtdef_ref ref = dtd->ref_type;
  	    uint32_t ref_kind = btf_dtd_kind (ref);
*************** btf_add_used_type (ctf_container_ref ctf
*** 1106,1123 ****
  	  }
  
  	/* 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:
--- 1156,1173 ----
  	  }
  
  	/* Add the type to which this type refers.  */
! 	dtd->ref_type = btf_add_used_type_1 (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_1 (ctfc, arr->ctr_contents,
! 						 false, false, create_fixups);
! 	arr->ctr_index = btf_add_used_type_1 (ctfc, arr->ctr_index, false,
! 					      false, create_fixups);
  	break;
        }
      case BTF_KIND_STRUCT:
*************** btf_add_used_type (ctf_container_ref ctf
*** 1133,1140 ****
  	    /* 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);
  	  }
--- 1183,1190 ----
  	    /* 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_1 (ctfc, dmd->dmd_type, true,
! 						   false, create_fixups);
  	    ctf_add_string (ctfc, dmd->dmd_name, &(dmd->dmd_name_offset),
  			    CTF_STRTAB);
  	  }
*************** btf_add_used_type (ctf_container_ref ctf
*** 1143,1158 ****
      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.  */
--- 1193,1209 ----
      case BTF_KIND_FUNC_PROTO:
        {
  	/* Add return type.  */
! 	dtd->ref_type = btf_add_used_type_1 (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_1 (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.  */
*************** btf_add_used_type (ctf_container_ref ctf
*** 1166,1171 ****
--- 1217,1232 ----
    return dtd;
  }
  
+ /* 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.  */
+ 
+ static ctf_dtdef_ref
+ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
+ {
+   return btf_add_used_type_1 (ctfc, dtd, false, false, true);
+ }
+ 
  /* 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_add_vars (ctf_container_ref ctfc)
*** 1402,1408 ****
  	      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);
  	    }
  	}
      }
--- 1463,1469 ----
  	      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);
  	    }
  	}
      }
*************** btf_assign_var_ids (ctf_container_ref ct
*** 1488,1493 ****
--- 1549,1587 ----
      }
  }
  
+ /* Assign BTF IDs for type and decl tags and account for their size.  */
+ 
+ static void
+ btf_assign_tag_ids (ctf_container_ref ctfc)
+ {
+   size_t num_tags = vec_safe_length (ctfc->ctfc_tags);
+   if (num_tags == 0)
+     return;
+ 
+   unsigned int i;
+   ctf_dtdef_ref dtd;
+   FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd)
+     {
+       /* Assign BTF id.  */
+       ctf_id_t id = ctfc->ctfc_nextid++;
+       gcc_assert (id <= BTF_MAX_TYPE);
+       dtd->dtd_type = id;
+ 
+       /* Tags on functions will have a ref_type pointing to the
+ 	 FUNC_PROTO, we want them to point the FUNC record instead.  */
+       ctf_dtdef_ref *pdtd = NULL;
+       if (dtd->ref_type && (pdtd = func_map->get (dtd->ref_type)) != NULL)
+ 	dtd->ref_type = *pdtd;
+ 
+       /* Strings for tags are stored in the auxiliary strtab, which is
+ 	 concatenated after the regular strtab.  ctti_name only accounts
+ 	 for offset in the auxiliary strtab until this point.  */
+       dtd->dtd_data.ctti_name += ctfc_get_strtab_len (ctfc, CTF_STRTAB);
+       ctfc->ctfc_num_types++;
+       ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (dtd);
+     }
+ }
+ 
  /* Assign BTF IDs for datasec records and account for their size.  */
  
  static void
*************** btf_mark_type_used (tree t)
*** 1522,1528 ****
    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
--- 1616,1622 ----
    if (!dtd)
      return;
  
!   btf_add_used_type (ctfc, dtd);
  }
  
  /* Callback used for assembling the only-used-types list.  Note that this is
*************** btf_collect_pruned_types (ctf_container_
*** 1549,1555 ****
    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);
      }
--- 1643,1649 ----
    size_t i;
    FOR_EACH_VEC_ELT (*funcs, i, dtd)
      {
!       btf_add_used_type (ctfc, dtd->ref_type);
        ctf_add_string (ctfc, dtd->dtd_name, &(dtd->dtd_data.ctti_name),
  		      CTF_STRTAB);
      }
*************** btf_collect_pruned_types (ctf_container_
*** 1558,1567 ****
    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.  */
--- 1652,1684 ----
    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);
        ctf_add_string (ctfc, dvd->dvd_name, &(dvd->dvd_name_offset), CTF_STRTAB);
      }
  
+   /* Used type tags will be added by recursive btf_add_used_type calls above.
+      For decl tags, scan the list and only add those decl tags whose referent
+      types are marked as used.  We may have pruned a struct type with members
+      annotated by a decl tag.  */
+   FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd)
+     {
+       /* Only add decl tags whose referent types have not been pruned.
+ 	 Variables are never pruned, so decl tags on variables are always
+ 	 used.  */
+       if (btf_dtd_kind (dtd) == BTF_KIND_DECL_TAG
+ 	  && ((dtd->ref_type && btf_used_types->contains (dtd->ref_type))
+ 	      || (dtd->dtd_u.dtu_tag.ref_var)))
+ 	btf_add_used_type (ctfc, dtd);
+ 
+       /* Tags on functions or function args will have a ref_type pointing to the
+ 	 FUNC_PROTO, we want them to point the FUNC record instead.  */
+       ctf_dtdef_ref *pdtd = NULL;
+       if (dtd->ref_type
+ 	  && btf_used_types->contains (dtd->ref_type)
+ 	  && (pdtd = func_map->get (dtd->ref_type)) != NULL)
+ 	dtd->ref_type = *pdtd;
+     }
+ 
    /* 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.  */
*************** btf_finish (void)
*** 1634,1639 ****
--- 1751,1763 ----
  
    btf_assign_var_ids (tu_ctfc);
    btf_assign_func_ids (tu_ctfc);
+ 
+   /* Both decl and type tags may be pruned if the types/decls to which they
+      refer are pruned.  This is handled in btf_collect_pruned_types, and
+      through that process they have also been assigned ids already.  */
+   if (!debug_prune_btf)
+     btf_assign_tag_ids (tu_ctfc);
+ 
    btf_assign_datasec_ids (tu_ctfc);
  
    /* Finally, write out the complete .BTF section.  */
diff -Nrcpad gcc-15.2.0/gcc/builtin-attrs.def gcc-16.1.0-RC-20260423/gcc/builtin-attrs.def
*** gcc-15.2.0/gcc/builtin-attrs.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/builtin-attrs.def	Thu Apr 23 11:07:33 2026
***************
*** 1,4 ****
! /* Copyright (C) 2001-2025 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
--- 1,4 ----
! /* Copyright (C) 2001-2026 Free Software Foundation, Inc.
     Contributed by Joseph Myers <jsm28@cam.ac.uk>.
  
  This file is part of GCC.
*************** DEF_LIST_INT_INT (5,0)
*** 90,95 ****
--- 90,103 ----
  DEF_LIST_INT_INT (5,6)
  #undef DEF_LIST_INT_INT
  
+ /* Construct a tree for a list of three integers.  */
+ #define DEF_LIST_INT_INT_INT(VALUE1, VALUE2, VALUE3)			 \
+   DEF_ATTR_TREE_LIST (ATTR_LIST_##VALUE1##_##VALUE2##_##VALUE3,		 \
+ 		      ATTR_NULL, ATTR_##VALUE1,				 \
+ 		      ATTR_LIST_##VALUE2##_##VALUE3)
+ DEF_LIST_INT_INT_INT (1,2,3)
+ #undef DEF_LIST_INT_INT_INT
+ 
  /* Construct trees for identifiers used in built-in function attributes.
     The construction contributes to startup costs so only attributes that
     are used to define built-ins should be defined here.  */
*************** DEF_ATTR_IDENT (ATTR_TM_TMPURE, "transac
*** 122,127 ****
--- 130,136 ----
  DEF_ATTR_IDENT (ATTR_RETURNS_TWICE, "returns_twice")
  DEF_ATTR_IDENT (ATTR_RETURNS_NONNULL, "returns_nonnull")
  DEF_ATTR_IDENT (ATTR_WARN_UNUSED_RESULT, "warn_unused_result")
+ DEF_ATTR_IDENT (ATTR_CALLBACK, " callback")
  
  DEF_ATTR_TREE_LIST (ATTR_NOVOPS_LIST, ATTR_NOVOPS, ATTR_NULL, ATTR_NULL)
  
*************** DEF_ATTR_TREE_LIST (ATTR_NONNULL_1, ATTR
*** 209,214 ****
--- 218,229 ----
  DEF_ATTR_TREE_LIST (ATTR_NONNULL_2, ATTR_NONNULL, ATTR_LIST_2, ATTR_NULL)
  /* Functions whose third parameter is a nonnull pointer.  */
  DEF_ATTR_TREE_LIST (ATTR_NONNULL_3, ATTR_NONNULL, ATTR_LIST_3, ATTR_NULL)
+ /* Functions whose selected pointer parameter(s) are conditionally
+    nonnull.  */
+ DEF_ATTR_TREE_LIST (ATTR_NONNULL_IF123_LIST, ATTR_NONNULL_IF_NONZERO, \
+ 			ATTR_LIST_1_2_3, ATTR_NULL)
+ DEF_ATTR_TREE_LIST (ATTR_NONNULL_4_IF123_LIST, ATTR_NONNULL, \
+ 			ATTR_LIST_4, ATTR_NONNULL_IF123_LIST)
  /* Nothrow functions with the sentinel(1) attribute. */
  DEF_ATTR_TREE_LIST (ATTR_NOTHROW_SENTINEL_1, ATTR_SENTINEL, ATTR_LIST_1, \
  			ATTR_NOTHROW_LIST)
*************** DEF_FORMAT_ATTRIBUTE_NOTHROW(STRFMON,3,3
*** 416,421 ****
--- 431,446 ----
  #undef DEF_FORMAT_ATTRIBUTE_NOTHROW
  #undef DEF_FORMAT_ATTRIBUTE_BOTH
  
+ /* Construct callback attributes for GOMP builtins.  */
+ #define DEF_CALLBACK_ATTRIBUTE(TYPE, CA, VALUES)			 \
+   DEF_ATTR_TREE_LIST (ATTR_CALLBACK_##TYPE##_##CA##_##VALUES, ATTR_CALLBACK,\
+ 		      ATTR_##CA, ATTR_LIST_##VALUES)
+ 
+ DEF_CALLBACK_ATTRIBUTE(GOMP, 1, 2)
+ DEF_ATTR_TREE_LIST(ATTR_CALLBACK_GOMP_LIST, ATTR_CALLBACK,
+                    ATTR_CALLBACK_GOMP_1_2, ATTR_NOTHROW_LIST)
+ #undef DEF_CALLBACK_ATTRIBUTE
+ 
  /* Transactional memory variants of the above.  */
  
  DEF_ATTR_TREE_LIST (ATTR_TM_NOTHROW_LIST,
diff -Nrcpad gcc-15.2.0/gcc/builtin-types.def gcc-16.1.0-RC-20260423/gcc/builtin-types.def
*** gcc-15.2.0/gcc/builtin-types.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/builtin-types.def	Thu Apr 23 11:07:33 2026
***************
*** 1,4 ****
! /* Copyright (C) 2001-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,4 ----
! /* Copyright (C) 2001-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/builtins.cc gcc-16.1.0-RC-20260423/gcc/builtins.cc
*** gcc-15.2.0/gcc/builtins.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/builtins.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** static rtx expand_builtin_stack_address
*** 156,162 ****
  static tree stabilize_va_list_loc (location_t, tree, int);
  static rtx expand_builtin_expect (tree, rtx);
  static rtx expand_builtin_expect_with_probability (tree, rtx);
- static tree fold_builtin_constant_p (tree);
  static tree fold_builtin_classify_type (tree);
  static tree fold_builtin_strlen (location_t, tree, tree, tree);
  static tree fold_builtin_inf (location_t, tree, int);
--- 156,161 ----
*************** get_object_alignment_2 (tree exp, unsign
*** 289,295 ****
        unsigned HOST_WIDE_INT ptr_bitpos;
        unsigned HOST_WIDE_INT ptr_bitmask = ~0;
  
!       /* If the address is explicitely aligned, handle that.  */
        if (TREE_CODE (addr) == BIT_AND_EXPR
  	  && TREE_CODE (TREE_OPERAND (addr, 1)) == INTEGER_CST)
  	{
--- 288,294 ----
        unsigned HOST_WIDE_INT ptr_bitpos;
        unsigned HOST_WIDE_INT ptr_bitmask = ~0;
  
!       /* If the address is explicitly aligned, handle that.  */
        if (TREE_CODE (addr) == BIT_AND_EXPR
  	  && TREE_CODE (TREE_OPERAND (addr, 1)) == INTEGER_CST)
  	{
*************** validate_arglist (const_tree callexpr, .
*** 1158,1169 ****
  	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;
        }
  
--- 1157,1174 ----
  	unsigned int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
  	unsigned int idx2
  	  = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (args))) - 1;
+ 	unsigned int idx3 = idx2;
+ 	if (tree chain2 = TREE_CHAIN (TREE_CHAIN (args)))
+ 	  idx3 = TREE_INT_CST_LOW (TREE_VALUE (chain2)) - 1;
  	if (idx < (unsigned) call_expr_nargs (callexpr)
  	    && idx2 < (unsigned) call_expr_nargs (callexpr)
+ 	    && idx3 < (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))
! 	    && INTEGRAL_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (callexpr, idx3)))
! 	    && integer_nonzerop (CALL_EXPR_ARG (callexpr, idx3)))
  	  return false;
        }
  
*************** expand_builtin_apply_args (void)
*** 1640,1647 ****
  
      start_sequence ();
      temp = expand_builtin_apply_args_1 ();
!     rtx_insn *seq = get_insns ();
!     end_sequence ();
  
      apply_args_value = temp;
  
--- 1645,1651 ----
  
      start_sequence ();
      temp = expand_builtin_apply_args_1 ();
!     rtx_insn *seq = end_sequence ();
  
      apply_args_value = temp;
  
*************** expand_builtin_return (rtx result)
*** 1863,1870 ****
  
  	push_to_sequence (call_fusage);
  	emit_use (reg);
! 	call_fusage = get_insns ();
! 	end_sequence ();
  	size += GET_MODE_SIZE (mode);
        }
  
--- 1867,1873 ----
  
  	push_to_sequence (call_fusage);
  	emit_use (reg);
! 	call_fusage = end_sequence ();
  	size += GET_MODE_SIZE (mode);
        }
  
*************** expand_builtin_mathfn_ternary (tree exp,
*** 2373,2380 ****
      }
  
    /* Output the entire sequence.  */
!   insns = get_insns ();
!   end_sequence ();
    emit_insn (insns);
  
    return result;
--- 2376,2382 ----
      }
  
    /* Output the entire sequence.  */
!   insns = end_sequence ();
    emit_insn (insns);
  
    return result;
*************** expand_builtin_mathfn_3 (tree exp, rtx t
*** 2466,2473 ****
        if (result != 0)
  	{
  	  /* Output the entire sequence.  */
! 	  insns = get_insns ();
! 	  end_sequence ();
  	  emit_insn (insns);
  	  return result;
  	}
--- 2468,2474 ----
        if (result != 0)
  	{
  	  /* Output the entire sequence.  */
! 	  insns = end_sequence ();
  	  emit_insn (insns);
  	  return result;
  	}
*************** interclass_mathfn_icode (tree arg, tree
*** 2495,2509 ****
    switch (DECL_FUNCTION_CODE (fndecl))
      {
      CASE_FLT_FN (BUILT_IN_ILOGB):
!       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:
--- 2496,2516 ----
    switch (DECL_FUNCTION_CODE (fndecl))
      {
      CASE_FLT_FN (BUILT_IN_ILOGB):
!       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_ISNAN):
+       builtin_optab = isnan_optab;
+       break;
      CASE_FLT_FN (BUILT_IN_FINITE):
      case BUILT_IN_FINITED32:
      case BUILT_IN_FINITED64:
*************** interclass_mathfn_icode (tree arg, tree
*** 2511,2516 ****
--- 2518,2526 ----
      case BUILT_IN_ISINFD32:
      case BUILT_IN_ISINFD64:
      case BUILT_IN_ISINFD128:
+     case BUILT_IN_ISNAND32:
+     case BUILT_IN_ISNAND64:
+     case BUILT_IN_ISNAND128:
        /* These builtins have no optabs (yet).  */
        break;
      default:
*************** expand_builtin_int_roundingfn (tree exp,
*** 3164,3171 ****
    if (expand_sfix_optab (target, op0, builtin_optab))
      {
        /* Output the entire sequence.  */
!       insns = get_insns ();
!       end_sequence ();
        emit_insn (insns);
        return target;
      }
--- 3174,3180 ----
    if (expand_sfix_optab (target, op0, builtin_optab))
      {
        /* Output the entire sequence.  */
!       insns = end_sequence ();
        emit_insn (insns);
        return target;
      }
*************** expand_builtin_int_roundingfn_2 (tree ex
*** 3308,3315 ****
        if (expand_sfix_optab (result, op0, builtin_optab))
  	{
  	  /* Output the entire sequence.  */
! 	  insns = get_insns ();
! 	  end_sequence ();
  	  emit_insn (insns);
  	  return result;
  	}
--- 3317,3323 ----
        if (expand_sfix_optab (result, op0, builtin_optab))
  	{
  	  /* Output the entire sequence.  */
! 	  insns = end_sequence ();
  	  emit_insn (insns);
  	  return result;
  	}
*************** expand_builtin_strlen (tree exp, rtx tar
*** 3477,3484 ****
  #endif
        emit_move_insn (src_reg, pat);
      }
!   pat = get_insns ();
!   end_sequence ();
  
    if (before_strlen)
      emit_insn_after (pat, before_strlen);
--- 3485,3491 ----
  #endif
        emit_move_insn (src_reg, pat);
      }
!   pat = end_sequence ();
  
    if (before_strlen)
      emit_insn_after (pat, before_strlen);
*************** expand_builtin_strnlen (tree exp, rtx ta
*** 3536,3542 ****
  
    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;
    min = r.lower_bound ();
--- 3543,3550 ----
  
    wide_int min, max;
    int_range_max r;
!   get_range_query (cfun)->range_of_expr (r, bound,
! 					 currently_expanding_gimple_stmt);
    if (r.varying_p () || r.undefined_p ())
      return NULL_RTX;
    min = r.lower_bound ();
*************** determine_block_size (tree len, rtx len_
*** 3611,3617 ****
  	{
  	  int_range_max r;
  	  tree tmin, tmax;
! 	  get_global_range_query ()->range_of_expr (r, len);
  	  range_type = get_legacy_range (r, tmin, tmax);
  	  if (range_type != VR_UNDEFINED)
  	    {
--- 3619,3626 ----
  	{
  	  int_range_max r;
  	  tree tmin, tmax;
! 	  gimple *cg = currently_expanding_gimple_stmt;
! 	  get_range_query (cfun)->range_of_expr (r, len, cg);
  	  range_type = get_legacy_range (r, tmin, tmax);
  	  if (range_type != VR_UNDEFINED)
  	    {
*************** expand_builtin_memory_copy_args (tree de
*** 3779,3790 ****
        && CONST_INT_P (len_rtx)
        && (unsigned HOST_WIDE_INT) INTVAL (len_rtx) <= nbytes
        && can_store_by_pieces (INTVAL (len_rtx), builtin_memcpy_read_str,
! 			      CONST_CAST (char *, rep),
  			      dest_align, false))
      {
        dest_mem = store_by_pieces (dest_mem, INTVAL (len_rtx),
  				  builtin_memcpy_read_str,
! 				  CONST_CAST (char *, rep),
  				  dest_align, false, retmode);
        dest_mem = force_operand (XEXP (dest_mem, 0), target);
        dest_mem = convert_memory_address (ptr_mode, dest_mem);
--- 3788,3799 ----
        && CONST_INT_P (len_rtx)
        && (unsigned HOST_WIDE_INT) INTVAL (len_rtx) <= nbytes
        && can_store_by_pieces (INTVAL (len_rtx), builtin_memcpy_read_str,
! 			      const_cast<char *> (rep),
  			      dest_align, false))
      {
        dest_mem = store_by_pieces (dest_mem, INTVAL (len_rtx),
  				  builtin_memcpy_read_str,
! 				  const_cast<char *> (rep),
  				  dest_align, false, retmode);
        dest_mem = force_operand (XEXP (dest_mem, 0), target);
        dest_mem = convert_memory_address (ptr_mode, dest_mem);
*************** expand_builtin_strncpy (tree exp, rtx ta
*** 4133,4146 ****
        if (!p || dest_align == 0 || !tree_fits_uhwi_p (len)
  	  || !can_store_by_pieces (tree_to_uhwi (len),
  				   builtin_strncpy_read_str,
! 				   CONST_CAST (char *, p),
  				   dest_align, false))
  	return NULL_RTX;
  
        dest_mem = get_memory_rtx (dest, len);
        store_by_pieces (dest_mem, tree_to_uhwi (len),
  		       builtin_strncpy_read_str,
! 		       CONST_CAST (char *, p), dest_align, false,
  		       RETURN_BEGIN);
        dest_mem = force_operand (XEXP (dest_mem, 0), target);
        dest_mem = convert_memory_address (ptr_mode, dest_mem);
--- 4142,4155 ----
        if (!p || dest_align == 0 || !tree_fits_uhwi_p (len)
  	  || !can_store_by_pieces (tree_to_uhwi (len),
  				   builtin_strncpy_read_str,
! 				   const_cast<char *> (p),
  				   dest_align, false))
  	return NULL_RTX;
  
        dest_mem = get_memory_rtx (dest, len);
        store_by_pieces (dest_mem, tree_to_uhwi (len),
  		       builtin_strncpy_read_str,
! 		       const_cast<char *> (p), dest_align, false,
  		       RETURN_BEGIN);
        dest_mem = force_operand (XEXP (dest_mem, 0), target);
        dest_mem = convert_memory_address (ptr_mode, dest_mem);
*************** expand_builtin_memcmp (tree exp, rtx tar
*** 4918,4924 ****
    result = emit_block_cmp_hints (arg1_rtx, arg2_rtx, len_rtx,
  				 TREE_TYPE (len), target,
  				 result_eq, constfn,
! 				 CONST_CAST (char *, rep),
  				 tree_ctz (len));
  
    if (result)
--- 4927,4933 ----
    result = emit_block_cmp_hints (arg1_rtx, arg2_rtx, len_rtx,
  				 TREE_TYPE (len), target,
  				 result_eq, constfn,
! 				 const_cast<char *> (rep),
  				 tree_ctz (len));
  
    if (result)
*************** expand_builtin_saveregs (void)
*** 5183,5190 ****
    /* Do whatever the machine needs done in this case.  */
    val = targetm.calls.expand_builtin_saveregs ();
  
!   seq = get_insns ();
!   end_sequence ();
  
    saveregs_value = val;
  
--- 5192,5198 ----
    /* Do whatever the machine needs done in this case.  */
    val = targetm.calls.expand_builtin_saveregs ();
  
!   seq = end_sequence ();
  
    saveregs_value = val;
  
*************** expand_ifn_atomic_bit_test_and (gcall *c
*** 7068,7078 ****
        tree tcall = gimple_call_arg (call, 3 + is_atomic);
        tree fndecl = gimple_call_addr_fndecl (tcall);
        tree type = TREE_TYPE (TREE_TYPE (fndecl));
!       tree exp = build_call_nary (type, tcall, 2 + is_atomic, ptr,
! 				  make_tree (type, val),
! 				  is_atomic
! 				  ? gimple_call_arg (call, 3)
! 				  : integer_zero_node);
        result = expand_builtin (exp, gen_reg_rtx (mode), NULL_RTX,
  			       mode, !lhs);
      }
--- 7076,7088 ----
        tree tcall = gimple_call_arg (call, 3 + is_atomic);
        tree fndecl = gimple_call_addr_fndecl (tcall);
        tree type = TREE_TYPE (TREE_TYPE (fndecl));
!       tree exp;
!       if (is_atomic)
! 	exp = build_call_nary (type, tcall, 3,
! 			       ptr, make_tree (type, val),
! 			       gimple_call_arg (call, 3));
!       else
! 	exp = build_call_nary (type, tcall, 2, ptr, make_tree (type, val));
        result = expand_builtin (exp, gen_reg_rtx (mode), NULL_RTX,
  			       mode, !lhs);
      }
*************** expand_ifn_atomic_op_fetch_cmp_0 (gcall
*** 7176,7186 ****
        tree tcall = gimple_call_arg (call, 3 + is_atomic);
        tree fndecl = gimple_call_addr_fndecl (tcall);
        tree type = TREE_TYPE (TREE_TYPE (fndecl));
!       tree exp = build_call_nary (type, tcall,
! 				  2 + is_atomic, ptr, arg,
! 				  is_atomic
! 				  ? gimple_call_arg (call, 3)
! 				  : integer_zero_node);
        result = expand_builtin (exp, gen_reg_rtx (mode), NULL_RTX,
  			       mode, !lhs);
      }
--- 7186,7198 ----
        tree tcall = gimple_call_arg (call, 3 + is_atomic);
        tree fndecl = gimple_call_addr_fndecl (tcall);
        tree type = TREE_TYPE (TREE_TYPE (fndecl));
!       tree exp;
!       if (is_atomic)
! 	exp = build_call_nary (type, tcall, 3,
! 			       ptr, arg,
! 			       gimple_call_arg (call, 3));
!       else
! 	exp = build_call_nary (type, tcall, 2, ptr, arg);
        result = expand_builtin (exp, gen_reg_rtx (mode), NULL_RTX,
  			       mode, !lhs);
      }
*************** inline_string_cmp (rtx target, tree var_
*** 7624,7631 ****
      }
  
    emit_label (ne_label);
!   rtx_insn *insns = get_insns ();
!   end_sequence ();
    emit_insn (insns);
  
    return result;
--- 7636,7642 ----
      }
  
    emit_label (ne_label);
!   rtx_insn *insns = end_sequence ();
    emit_insn (insns);
  
    return result;
*************** expand_builtin (tree exp, rtx target, rt
*** 7960,7965 ****
--- 7971,7977 ----
        gcc_fallthrough ();
      CASE_FLT_FN (BUILT_IN_ISINF):
      CASE_FLT_FN (BUILT_IN_FINITE):
+     CASE_FLT_FN (BUILT_IN_ISNAN):
      case BUILT_IN_ISFINITE:
      case BUILT_IN_ISNORMAL:
        target = expand_builtin_interclass_mathfn (exp, target);
*************** expand_builtin (tree exp, rtx target, rt
*** 8419,8424 ****
--- 8431,8440 ----
        expand_builtin_unreachable ();
        return const0_rtx;
  
+     case BUILT_IN_OBSERVABLE_CHKPT:
+       /* Generate no code.  */
+       return const0_rtx;
+ 
      CASE_FLT_FN (BUILT_IN_SIGNBIT):
      case BUILT_IN_SIGNBITD32:
      case BUILT_IN_SIGNBITD64:
*************** builtin_mathfn_code (const_tree t)
*** 9141,9147 ****
  /* Fold a call to __builtin_constant_p, if we know its argument ARG will
     evaluate to a constant.  */
  
! static tree
  fold_builtin_constant_p (tree arg)
  {
    /* We return 1 for a numeric type that's known to be a constant
--- 9157,9163 ----
  /* Fold a call to __builtin_constant_p, if we know its argument ARG will
     evaluate to a constant.  */
  
! tree
  fold_builtin_constant_p (tree arg)
  {
    /* We return 1 for a numeric type that's known to be a constant
*************** fold_builtin_fabs (location_t loc, tree
*** 9522,9528 ****
  static tree
  fold_builtin_abs (location_t loc, tree arg, tree type)
  {
!   if (!validate_arg (arg, INTEGER_TYPE))
      return NULL_TREE;
  
    if (TYPE_UNSIGNED (type))
--- 9538,9544 ----
  static tree
  fold_builtin_abs (location_t loc, tree arg, tree type)
  {
!   if (!validate_arg (arg, INTEGER_TYPE) || !INTEGRAL_TYPE_P (type))
      return NULL_TREE;
  
    if (TYPE_UNSIGNED (type))
*************** fold_builtin_interclass_mathfn (location
*** 9833,9838 ****
--- 9849,9867 ----
  			      max_exp, min_exp);
  	return result;
        }
+     CASE_FLT_FN (BUILT_IN_ISNAN):
+     case BUILT_IN_ISNAND32:
+     case BUILT_IN_ISNAND64:
+     case BUILT_IN_ISNAND128:
+       {
+ 	/* In IBM extended NaN and Inf are encoded in the high-order double
+ 	   value only.  The low-order value is not significant.  */
+ 	if (is_ibm_extended)
+ 	  arg = fold_build1_loc (loc, NOP_EXPR, double_type_node, arg);
+ 	arg = builtin_save_expr (arg);
+ 	tree type = TREE_TYPE (TREE_TYPE (fndecl));
+ 	return fold_build2_loc (loc, UNORDERED_EXPR, type, arg, arg);
+       }
      default:
        break;
      }
*************** fold_builtin_classify (location_t loc, t
*** 9904,9921 ****
  	return omit_one_operand_loc (loc, type, integer_one_node, arg);
        if (!tree_expr_maybe_nan_p (arg))
  	return omit_one_operand_loc (loc, type, integer_zero_node, arg);
! 
!       {
! 	bool is_ibm_extended = MODE_COMPOSITE_P (TYPE_MODE (TREE_TYPE (arg)));
! 	if (is_ibm_extended)
! 	  {
! 	    /* NaN and Inf are encoded in the high-order double value
! 	       only.  The low-order value is not significant.  */
! 	    arg = fold_build1_loc (loc, NOP_EXPR, double_type_node, arg);
! 	  }
!       }
!       arg = builtin_save_expr (arg);
!       return fold_build2_loc (loc, UNORDERED_EXPR, type, arg, arg);
  
      case BUILT_IN_ISSIGNALING:
        /* Folding to true for REAL_CST is done in fold_const_call_ss.
--- 9933,9939 ----
  	return omit_one_operand_loc (loc, type, integer_one_node, arg);
        if (!tree_expr_maybe_nan_p (arg))
  	return omit_one_operand_loc (loc, type, integer_zero_node, arg);
!       return NULL_TREE;
  
      case BUILT_IN_ISSIGNALING:
        /* Folding to true for REAL_CST is done in fold_const_call_ss.
*************** fold_builtin_1 (location_t loc, tree exp
*** 10680,10686 ****
      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):
--- 10698,10704 ----
      case BUILT_IN_UABS:
      case BUILT_IN_ULABS:
      case BUILT_IN_ULLABS:
!     case BUILT_IN_UMAXABS:
        return fold_builtin_abs (loc, arg0, type);
  
      CASE_FLT_FN (BUILT_IN_CONJ):
*************** fold_builtin_1 (location_t loc, tree exp
*** 10747,10753 ****
      case BUILT_IN_ISNAND32:
      case BUILT_IN_ISNAND64:
      case BUILT_IN_ISNAND128:
!       return fold_builtin_classify (loc, fndecl, arg0, BUILT_IN_ISNAN);
  
      case BUILT_IN_ISSIGNALING:
        return fold_builtin_classify (loc, fndecl, arg0, BUILT_IN_ISSIGNALING);
--- 10765,10776 ----
      case BUILT_IN_ISNAND32:
      case BUILT_IN_ISNAND64:
      case BUILT_IN_ISNAND128:
!       {
! 	tree ret = fold_builtin_classify (loc, fndecl, arg0, BUILT_IN_ISNAN);
! 	if (ret)
! 	  return ret;
! 	return fold_builtin_interclass_mathfn (loc, fndecl, arg0);
!       }
  
      case BUILT_IN_ISSIGNALING:
        return fold_builtin_classify (loc, fndecl, arg0, BUILT_IN_ISSIGNALING);
diff -Nrcpad gcc-15.2.0/gcc/builtins.def gcc-16.1.0-RC-20260423/gcc/builtins.def
*** gcc-15.2.0/gcc/builtins.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/builtins.def	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,6 ----
  /* This file contains the definitions and documentation for the
     builtins used in the GNU compiler.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 217,222 ****
--- 217,224 ----
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
  	       false, true, true, ATTRS, false, \
  	       flag_openacc)
+ /* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+    esp. as -std=c++../c.. imply that flag and -fopenacc should be othogonal.  */
  #undef DEF_GOACC_BUILTIN_COMPILER
  #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \
    DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE,    \
*************** along with GCC; see the file COPYING3.
*** 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. */
--- 234,245 ----
  	       (flag_openacc \
  		|| flag_openmp \
  		|| flag_tree_parallelize_loops > 1))
+ /* Set NONANSI_P = false to enable the builtins also with -fno-nonansi-builtins,
+    esp. as -std=c++../c.. imply that flag and -fopenmp should be othogonal.  */
  #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, false, 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.
*** 253,258 ****
--- 257,263 ----
  	       true, true, true, ATTRS, true, \
  	      (flag_sanitize & (SANITIZE_ADDRESS | SANITIZE_THREAD \
  				| SANITIZE_HWADDRESS \
+ 				| SANITIZE_MEMTAG_STACK \
  				| SANITIZE_UNDEFINED \
  				| SANITIZE_UNDEFINED_NONDEFAULT) \
  	       || flag_sanitize_coverage))
*************** DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN
*** 844,849 ****
--- 849,886 ----
  DEF_C99_COMPL_BUILTIN        (BUILT_IN_CTANL, "ctanl", BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, ATTR_MATHFN_FPROUNDING)
  DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_CTAN, "ctan", CPROJ_TYPE, ATTR_MATHFN_FPROUNDING)
  #undef CPROJ_TYPE
+ #define TRIG_TYPE(F) BT_FN_##F##_##F
+ DEF_C23_BUILTIN (BUILT_IN_ACOSPI, "acospi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ACOSPIF, "acospif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ACOSPIL, "acospil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ACOSPI, "acospi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ASINPI, "asinpi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ASINPIF, "asinpif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ASINPIL, "asinpil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ASINPI, "asinpi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ATANPI, "atanpi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ATANPIF, "atanpif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_ATANPIL, "atanpil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ATANPI, "atanpi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_COSPI, "cospi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_COSPIF, "cospif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_COSPIL, "cospil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_COSPI, "cospi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_SINPI, "sinpi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_SINPIF, "sinpif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_SINPIL, "sinpil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_SINPI, "sinpi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_TANPI, "tanpi", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_TANPIF, "tanpif", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_C23_BUILTIN (BUILT_IN_TANPIL, "tanpil", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_TANPI, "tanpi", TRIG_TYPE, ATTR_MATHFN_FPROUNDING_ERRNO)
+ #undef TRIG_TYPE
+ #define TRIG2_TYPE(F) BT_FN_##F##_##F##_##F
+ DEF_C23_BUILTIN (BUILT_IN_ATAN2PI, "atan2pi", BT_FN_DOUBLE_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C23_BUILTIN (BUILT_IN_ATAN2PIF, "atan2pif", BT_FN_FLOAT_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_C23_BUILTIN (BUILT_IN_ATAN2PIL, "atan2pil", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_EXT_LIB_FLOATN_NX_BUILTINS (BUILT_IN_ATAN2PI, "atan2pi", TRIG2_TYPE, ATTR_CONST_NOTHROW_LEAF_LIST)
+ #undef TRIG2_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_FPUTC_U
*** 888,895 ****
  DEF_LIB_BUILTIN        (BUILT_IN_FPUTS, "fputs", BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_FPUTS_UNLOCKED, "fputs_unlocked", BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST)
  DEF_LIB_BUILTIN        (BUILT_IN_FSCANF, "fscanf", BT_FN_INT_FILEPTR_CONST_STRING_VAR, ATTR_FORMAT_SCANF_2_3)
! DEF_LIB_BUILTIN        (BUILT_IN_FWRITE, "fwrite", BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_LIST)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_FWRITE_UNLOCKED, "fwrite_unlocked", BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_LIST)
  DEF_LIB_BUILTIN        (BUILT_IN_PRINTF, "printf", BT_FN_INT_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_1_2)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_PRINTF_UNLOCKED, "printf_unlocked", BT_FN_INT_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_1_2)
  DEF_LIB_BUILTIN        (BUILT_IN_PUTCHAR, "putchar", BT_FN_INT_INT, ATTR_NULL)
--- 925,932 ----
  DEF_LIB_BUILTIN        (BUILT_IN_FPUTS, "fputs", BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_FPUTS_UNLOCKED, "fputs_unlocked", BT_FN_INT_CONST_STRING_FILEPTR, ATTR_NONNULL_LIST)
  DEF_LIB_BUILTIN        (BUILT_IN_FSCANF, "fscanf", BT_FN_INT_FILEPTR_CONST_STRING_VAR, ATTR_FORMAT_SCANF_2_3)
! DEF_LIB_BUILTIN        (BUILT_IN_FWRITE, "fwrite", BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_4_IF123_LIST)
! DEF_EXT_LIB_BUILTIN    (BUILT_IN_FWRITE_UNLOCKED, "fwrite_unlocked", BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, ATTR_NONNULL_4_IF123_LIST)
  DEF_LIB_BUILTIN        (BUILT_IN_PRINTF, "printf", BT_FN_INT_CONST_STRING_VAR, ATTR_FORMAT_PRINTF_1_2)
  DEF_EXT_LIB_BUILTIN    (BUILT_IN_PRINTF_UNLOCKED, "printf_unlocked", BT_FN_INT_CONST_STRING_VAR, ATTR_NONNULL_1_FORMAT_PRINTF_1_2)
  DEF_LIB_BUILTIN        (BUILT_IN_PUTCHAR, "putchar", BT_FN_INT_INT, ATTR_NULL)
*************** DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRFMON
*** 1101,1111 ****
  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_GCC_BUILTIN        (BUILT_IN_UPDATE_SETJMP_BUF, "update_setjmp_buf", BT_FN_VOID_PTR, ATTR_NULL)
  DEF_GCC_BUILTIN        (BUILT_IN_VA_COPY, "va_copy", BT_FN_VOID_VALIST_REF_VALIST_ARG, ATTR_NOTHROW_LEAF_LIST)
--- 1138,1149 ----
  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_UMAXABS, "umaxabs", 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_OBSERVABLE_CHKPT, "observable_checkpoint", BT_FN_VOID, ATTR_NOTHROW_LEAF_LIST)
  DEF_GCC_BUILTIN        (BUILT_IN_UNWIND_INIT, "unwind_init", BT_FN_VOID, ATTR_NULL)
  DEF_GCC_BUILTIN        (BUILT_IN_UPDATE_SETJMP_BUF, "update_setjmp_buf", BT_FN_VOID_PTR, ATTR_NULL)
  DEF_GCC_BUILTIN        (BUILT_IN_VA_COPY, "va_copy", BT_FN_VOID_VALIST_REF_VALIST_ARG, ATTR_NOTHROW_LEAF_LIST)
diff -Nrcpad gcc-15.2.0/gcc/builtins.h gcc-16.1.0-RC-20260423/gcc/builtins.h
*** gcc-15.2.0/gcc/builtins.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/builtins.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Expand builtin functions.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Expand builtin functions.
!    Copyright (C) 1988-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern rtx expand_builtin_crc_table_base
*** 139,144 ****
--- 139,145 ----
  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);
+ extern tree fold_builtin_constant_p (tree);
  extern bool avoid_folding_inline_builtin (tree);
  extern tree fold_call_expr (location_t, tree, bool);
  extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *);
diff -Nrcpad gcc-15.2.0/gcc/c/ChangeLog gcc-16.1.0-RC-20260423/gcc/c/ChangeLog
*** gcc-15.2.0/gcc/c/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/c/ChangeLog	Thu Apr 23 11:07:33 2026
***************
*** 1,46 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-08-01  Florian Weimer  <fweimer@redhat.com>
  
! 	Backported from master:
! 	2025-05-02  Florian Weimer  <fweimer@redhat.com>
  
! 	PR c/120055
! 	* c-typeck.cc (convert_arguments): Check if fundecl is null
! 	before checking for builtin function declaration.
  
! 2025-08-01  Florian Weimer  <fweimer@redhat.com>
  
! 	Backported from master:
! 	2025-05-01  Florian Weimer  <fweimer@redhat.com>
  
! 	PR c/119950
! 	* c-typeck.cc (convert_arguments): Check for built-in
! 	function declaration before warning.
  
! 2025-07-30  Qing Zhao  <qing.zhao@oracle.com>
  
! 	Backported from master:
! 	2025-05-30  Qing Zhao  <qing.zhao@oracle.com>
  
  	PR c/120354
  	* c-decl.cc (finish_struct): Or the results for TYPE_INCLUDES_FLEXARRAY.
  
! 2025-07-30  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	Backported from master:
! 	2025-05-30  Qing Zhao  <qing.zhao@oracle.com>
  
  	PR c/120353
  	* c-decl.cc (finish_struct): Copy TYPE_INCLUDES_FLEXARRAY marking
  	to all the variant types of the current structure type.
  
! 2025-05-30  Sandra Loosemore  <sloosemore@baylibre.com>
  
! 	Backported from master:
! 	2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	* c-parser.cc (c_parser_skip_to_closing_brace): New, copied from
  	the equivalent function in the C++ front end.
--- 1,959 ----
! 2026-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR sanitizer/124969
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Use
! 	size_one_node instead of build_one_cst (size_type_node).  Punt
! 	if element_size is NULL_TREE.
  
! 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* Make-lang.in (create_fdas_for_cc1): Use $(AFDO_PROFILER) when passing
! 	--profiler to create_gcov. Ensure that perf.data contains profile for
! 	cc1. Make the console output more useful.
  
! 2026-04-01  Martin Uecker  <uecker@tugraz.at>
  
! 	PR c/124635
! 	* c-typeck.cc (c_reconstruct_complex_type): Copy
! 	TYPE_REVERSE_STORAGE_ORDER.
  
! 2026-03-24  Martin Uecker  <uecker@tugraz.at>
  
! 	PR c/123424
! 	* c-decl.cc (c_update_variably_modified): New function.
! 	(finish_struct): Call c_update_variably_modified.
! 	* c-tree.h (c_variably_modified_p): Recurse if necessary.
! 	* c-typeck.cc (c_verify_type): Update.
! 	(c_set_type_bits): Use c_variably_modified_p.
! 	(mark_decl_used): Dito.
! 	(build_function_call_vec): Dito.
! 	(c_build_qualified_type): Dito.
! 	* c-objc-common.cc (c_var_p): Dito.
  
! 2026-03-18  Dhruv Chawla  <dhruvc@nvidia.com>
  
! 	* Make-lang.in (cc1.fda): Add `--print-autofdo-gcov-version` to
! 	profile_merger invocation.
! 	(create_fdas_for_cc1): Add `--print-autofdo-gcov-version` to
! 	create_gcov invocations.
! 
! 2026-03-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c/123461
! 	* c-decl.cc (declspecs_add_type): Move mark_decl_used
! 	call after the check for error mark node.
! 
! 2026-03-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c/97991
! 	* c-parser.cc (c_parser_consume_token): Allow
! 	CPP_PRAGMA if inside a pragma.
! 
! 2026-03-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/122572
! 	* c-decl.cc (finish_struct): Add distinct canonical type.
! 	* c-tree.h (c_type_canonical): Prototype for new function.
! 	* c-typeck.cc (c_type_canonical): New function.
! 	(ptr_to_tagged_member): New function.
! 
! 2026-03-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/122572
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Fix check.
! 
! 2026-02-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/123365
! 	* c-decl.cc (build_compound_literal): Call relayout_decl
! 	after completing the type.
! 
! 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
! 
! 	* Make-lang.in (cc1.fda): Likewise.
! 
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	PR middle-end/123892
! 	* c-decl.cc: Replace CONST_CAST with const_cast<>.
! 	* c-parser.cc: Likewise.
! 
! 2026-02-05  Michal Jires  <mjires@suse.cz>
! 
! 	PR testsuite/123559
! 	* c-decl.cc (c_write_global_declarations_1): Check and suppress
! 	OPT_Wunused.
! 	* c-typeck.cc (build_asm_expr): Suppress OPT_Wunused.
! 
! 2026-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Revert:
! 	2026-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/101312
! 	* c-tree.h (c_build_lang_qualified_type): Declare.
! 	* c-objc-common.h (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
! 	* c-objc-common.cc (c_build_lang_qualified_type): New function.
! 
! 2026-01-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c++/102846
! 	PR c/102846
! 	* c-decl.cc (lookup_name_fuzzy): Lookup function-like macro and
! 	notify of misuse there.
! 
! 2026-01-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>
! 
! 	PR c/123583
! 	* c-parser.cc (c_parser_maybe_reclassify_token): Reclassify only
! 	C_ID_ID and C_ID_TYPENAME tokens.
! 
! 2026-01-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/101312
! 	* c-tree.h (c_build_lang_qualified_type): Declare.
! 	* c-objc-common.h (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Define.
! 	* c-objc-common.cc (c_build_lang_qualified_type): New function.
! 
! 2026-01-27  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/123500
! 	* c-typeck.cc (build_c_cast): Exclude call to .ACCESS_WITH_SIZE from
! 	-Wbad-function-cast warnings.
! 
! 2026-01-16  Jakub Jelinek  <jakub@redhat.com>
! 	    Peter Damianov  <peter0x44@disroot.org>
! 
! 	PR c/123437
! 	* c-typeck.cc (build_binary_op): Don't use RDIV_EXPR
! 	resultcode if both types are integral, _BitInt or
! 	newly VECTOR_TYPE of ENUMERAL_TYPE.
! 
! 2026-01-14  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (grokfield): Call verify_counted_by_for_top_anonymous_type
! 	for named field.
! 	(verify_counted_by_attribute): Change the prototype to a recursive
! 	routine.
! 	(verify_counted_by_for_top_anonymous_type): New routine.
! 	(finish_struct): Set C_TYPE_FIELDS_HAS_COUNTED_BY and call the routine
! 	verify_counted_by_attribute only for named structure.
! 	* c-parser.cc (c_parser_declaration_or_fndef): Call
! 	verify_counted_by_for_top_anonymous_type for the decl.
! 	(c_parser_parameter_declaration): Call
! 	verify_counted_by_for_top_anonymous_type for the parameter.
! 	(c_parser_type_name): Call verify_counted_by_for_top_anonymous_type
! 	for the type.
! 	* c-tree.h (C_TYPE_FIELDS_HAS_COUNTED_BY): New flag.
! 	(verify_counted_by_for_top_anonymous_type): New routine.
! 	* c-typeck.cc (build_counted_by_ref): Locate the root named structure,
! 	build a chain of component_ref starting from the root structure.
! 
! 2026-01-13  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/123309
! 	* c-typeck.cc (transparent_union_replacement): New function.
! 	(composite_type_internal): Rewrite logic.
! 	(type_lists_compatible_p): Remove dead code for NULL arguments.
! 
! 2026-01-10  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/123435
! 	PR c/123463
! 	* c-typeck.cc (comptypes_internal): Test for qualifiers first.
! 
! 2026-01-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/123475
! 	* c-typeck.cc (c_find_var_r): New function.
! 	(convert_lvalue_to_rvalue): If c_build_function_call_vec
! 	folded __atomic_load (&expr, &tmp, SEQ_CST); into
! 	(void) (tmp = __atomic_load_<N> (&expr, SEQ_CST)), drop
! 	TREE_ADDRESSABLE flag from tmp and set TARGET_EXPR
! 	initializer just to the rhs of the MODIFY_EXPR.
! 
! 2026-01-08  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-parser.cc (has_counted_by_object): Support pointers.
! 	(get_counted_by_ref): Support pointers.
! 	(c_parser_postfix_expression): Support pointers.
! 
! 2026-01-07  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (OMP_GROUPPRIVATE_CLAUSE_MASK,
! 	c_parser_omp_groupprivate): New.
! 	(c_parser_pragma): Call it.
! 	(c_maybe_parse_omp_decl): Uncomment PRAGMA_OMP_GROUPPRIVATE
! 	check.
! 
! 2026-01-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/121507
! 	* c-decl.cc (start_function): Adapt condition.
! 
! 2026-01-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/121081
! 	* c-typeck.cc (composite_type_internal): Properly copy
! 	atomic qualifier.
! 
! 2026-01-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117687
! 	* c-typeck.cc (parser_build_binary_op,build_conditional_expr,
! 	convert_for_assignment): Adapt conditions.
! 
! 2025-12-23  Dhruv Chawla  <dhruvc@nvidia.com>
! 
! 	* Make-lang.in: Bump GCOV version to 3.
! 
! 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gimple-parser.cc (c_parser_gimple_switch_stmt): Fix comment typo,
! 	statment -> statement.
! 
! 2025-12-19  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_uses_allocators): Accept
! 	multiple clause-argument-specifications separated by ';'.
! 
! 2025-12-18  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_assumption_clauses): Add
! 	no_openmp_constructs clause.
! 
! 2025-12-18  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (OMP_TARGET_CLAUSE_MASK): Add
! 	device_type clause.
! 
! 2025-12-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_reduction): Provide fixit hints
! 	for -Wdeprecated-openmp diagnostics.
! 	(c_parser_omp_clause_linear): Likewise.
! 	(c_parser_omp_clause_depend): Likewise.  Add HERE argument.
! 	(c_parser_omp_clause_map): Provide fixit hints for -Wdeprecated-openmp
! 	diagnostics.  Reset num_commas after the diagnostics.
! 	(c_parser_omp_clause_proc_bind): Provide fixit hints for
! 	-Wdeprecated-openmp diagnostics.
! 	(c_parser_omp_all_clauses): Move -Wdeprecated-openmp diagnostics
! 	for to vs. enter here, add fixit hints for it.  Adjust
! 	c_parser_omp_clause_depend caller.
! 	(c_parser_omp_depobj): Adjust c_parser_omp_clause_depend caller.
! 	(c_parser_omp_master): Add MASTER_LOC argument.  Provide fixit hints
! 	for -Wdeprecated-openmp diagnostics.
! 	(c_parser_omp_parallel): Adjust c_parser_omp_master caller.
! 	(c_parser_omp_declare_target): Don't emit -Wdeprecated-openmp
! 	warning for to vs. enter here.
! 	(c_parser_omp_metadirective): Provide fixit hints for
! 	-Wdeprecated-openmp diagnostics.
! 	(c_parser_omp_construct): Adjust c_parser_omp_master caller.
! 
! 2025-12-12  Chung-Lin Tang  <cltang@baylibre.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
! 	    Andrew Stubbs  <ams@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_uses_allocators): New function.
! 	(c_parser_omp_clause_name, c_parser_omp_all_clauses,
! 	OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
! 	* c-typeck.cc (c_finish_omp_clauses): Likewise.
! 
! 2025-12-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR testsuite/123098
! 	* c-parser.cc (c_parser_omp_clause_reduction): Only emit
! 	-Wdeprecated-openmp warning for CPP_MINUS if is_omp.
! 
! 2025-12-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_reduction,
! 	c_parser_omp_clause_linear, c_parser_omp_clause_depend,
! 	c_parser_omp_clause_map, c_parser_omp_clause_proc_bind,
! 	c_parser_omp_master, c_parser_omp_declare_target,
! 	c_parser_omp_metadirective): Formatting fixes.
! 
! 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_reduction): Deprecate '-'
! 	operator for reductions.
! 	(c_parser_omp_clause_linear): Deprecate modifiers with parens.
! 	(c_parser_omp_clause_depend): Deprecate 'sink' and 'source'
! 	modifiers for 'depend' clause.
! 	(c_parser_omp_clause_map): Map clause modifiers comma-separated.
! 	(c_parser_omp_declare_target): Deprecate synonymous omp declare
! 	target for omp begin declare target. Deprecate 'to' clause.
! 	(c_parser_omp_metadirective): Deprecate default clause on
! 	metadirectives.
! 
! 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_proc_bind): Deprecate master
! 	affinity.
! 	(c_parser_omp_master): Deprecate master construct.
! 	(c_parser_transaction): Whitespace.
! 
! 2025-12-09  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/122982
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Call
! 	c_fully_fold on the first parameter.
! 
! 2025-12-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/123018
! 	* c-decl.cc (finish_struct): Diagnose bit-fields with vector type.
! 
! 2025-12-05  Richard Biener  <rguenther@suse.de>
! 
! 	* gimple-parser.cc (c_parser_gimple_postfix_expression):
! 	Parse optional clique : base specifier on __MEM.
! 
! 2025-12-05  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_dyn_groupprivate): New.
! 	(OMP_TARGET_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE;
! 	sort clauses alphabetically.
! 	(c_parser_omp_clause_name, c_parser_omp_all_clauses):
! 	Handle 'dyn_groupprivate' clause.
! 	* c-typeck.cc (c_finish_omp_clauses): Likewise.
! 
! 2025-11-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/121506
! 	* c-typeck.cc (c_type_tag): If TYPE_NAME is TYPE_DECL
! 	with non-NULL DECL_NAME, return that.
! 
! 2025-11-26  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-parser.cc (c_parser_maxof_or_minof_expression): New func.
! 	(c_parser_unary_expression): Add RID_MAXOF & RID_MINOF cases.
! 	* c-tree.h (c_expr_maxof_type): New prototype.
! 	(c_expr_minof_type): New prototype.
! 	* c-typeck.cc (c_expr_maxof_type): New function.
! 	(c_expr_minof_type): New function.
! 
! 2025-11-22  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Julian Brown  <julian@codesourcery.com>
! 
! 	* c-decl.cc (current_omp_declare_variant_attribute): Define.
! 	* c-lang.h (struct c_omp_declare_variant_attr): Declare.
! 	(current_omp_declare_variant_attribute): Declare.
! 	* c-parser.cc (struct omp_begin_declare_variant_map_entry): New.
! 	(omp_begin_declare_variant_map): New.
! 	(c_parser_skip_to_pragma_omp_end_declare_variant): New.
! 	(c_parser_translation_unit): Check for "omp begin declare variant"
! 	with no matching "end".  Record base functions for variants.
! 	(c_parser_declaration_or_fndef): Handle functions in "omp begin
! 	declare variant" block.
! 	(c_finish_omp_declare_variant): Merge context selectors with
! 	surrounding "omp begin declare variant".
! 	(JOIN_STR): Define.
! 	(omp_start_variant_function): New.
! 	(omp_finish_variant_function): New.
! 	(c_parser_omp_begin): Handle "omp begin declare variant".
! 	(c_parser_omp_end): Likewise.
! 
! 2025-11-10  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-parser.cc (c_parser_sizeof_expression): Remove function.
! 	(c_parser_countof_expression): Remove function.
! 	(c_parser_unary_expression): Store the 'rid', and pass it
! 	directly to the function calls, without calling wrappers.
! 
! 2025-11-10  Tejas Belagod  <tejas.belagod@arm.com>
! 
! 	* c-typeck.cc (build_binary_op): Support vector boolean types.
! 
! 2025-11-04  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-decl.cc (start_function):
! 	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.
! 	* c-parser.cc (c_parser_declaration_or_fndef):
! 	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.
! 
! 2025-11-01  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (build_compound_literal): Add error.
! 	* c-parser.cc (c_parser_braced_init): Take bool argument for
! 	variable size instead of DECL.
! 	(c_parser_initializer,c_parser_initval): Adapt.
! 	(c_parser_postfix_expression_after_paren_type): Change
! 	error to pedwarn.
! 	* c-typeck.cc (process_init_element): Add error for
! 	variable-size compound literal with static or constexpr.
! 
! 2025-11-01  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/97986
! 	* c-parser.cc (c_parser_postfix_expression): Adapt.
! 	* c-tree.h (c_build_va_arg): Adapt prototype.
! 	* c-typeck.cc (c_build_va_arg): Handle UB.
! 
! 2025-10-30  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-typeck.cc (build_access_with_size_for_counted_by): When the element
! 	type is void, assign size one as the element_size.
! 
! 2025-10-27  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR c/122427
! 	* c-decl.cc (diagnose_mismatched_decls): For FUNCTION_DECL, if
! 	OLDDECL has TYPE_ATTRIBUTES and NEWDECL doesn't, try the type
! 	with the OLDDECL attributes.
! 
! 2025-10-24  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-parser.cc (c_parser_next_tokens_start_typename)
! 	(c_parser_next_tokens_start_declaration): Add argument for token
! 	to start from
! 	(c_parser_next_tokens_start_declaration): Check for whether static
! 	assertion followed by semicolon.
! 	(c_parser_check_balanced_raw_token_sequence): Declare earlier.
! 	(c_parser_compound_statement_nostart, c_parser_for_statement): Use
! 	c_parser_next_tokens_start_declaration not
! 	c_token_starts_declaration on second token.
! 	(c_parser_unary_expression): Handle static assertions.
! 	* c-parser.h (c_parser_next_tokens_start_declaration): Add
! 	argument.
! 
! 2025-10-21  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (build_array_declarator): Remove error.
! 	(grokgenassoc): New function.
! 	(grokdeclarator): Add error.
! 	* c-parser.cc (c_parser_generic_selection): Use grokgenassoc.
! 	* c-tree.h (grokgenassoc): Add prototype.
! 
! 2025-10-21  Paul-Antoine Arras  <parras@baylibre.com>
! 
! 	PR c/120180
! 	PR fortran/122306
! 	* c-parser.cc (c_parser_pragma): Accept a subset of non-executable
! 	OpenMP directives in intervening code.
! 	(c_parser_omp_error): Reject 'error at(execution)' in intervening code.
! 	(c_parser_omp_metadirective): Return early if only one selector matches
! 	and it resolves to 'omp nothing'.
! 
! 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_assumption_clauses): Switch to
! 	'unknown' not 'invalid' directive name for end directives.
! 
! 2025-10-08  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-typeck.cc (in_generic, save_maybe_used, restore_maybe_used):
! 	New.
! 	(mark_decl_used, record_maybe_used_decl, pop_maybe_used): Use
! 	in_generic.
! 	(struct maybe_used_decl): Move to c-tree.h.
! 	* c-tree.h (struct maybe_used_decl): Move from c-typeck.cc.
! 	(in_generic, save_maybe_used, restore_maybe_used): Declare.
! 	* c-parser.cc (c_parser_generic_selection): Increment and
! 	decrement in_generic.  Use pop_maybe_used, save_maybe_used and
! 	restore_maybe_used.
! 
! 2025-10-08  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-parser.cc (c_parser_generic_selection): Change
! 	error_at to pedwarn_c23.
! 
! 2025-10-08  Alfie Richards  <alfie.richards@arm.com>
! 
! 	PR target/122180
! 	* c-decl.cc (pushdecl): Add TARGET_HAS_FMV_TARGET_ATTRIBUTE check.
! 
! 2025-10-07  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/26581
! 	* c-decl.cc (c_finish_incomplete_decl): Give error for tentative
! 	definition of incomplete array for C2y with internal linkage.
! 	(finish_decl): Do not set DO_DEFAULT based on -pedantic.  Use
! 	pedwarn_c23 for missing array sizes for internal linkage.
! 
! 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-decl.cc (maybe_mark_function_versioned): Add diagnostic.
! 	* c-parser.cc (c_finish_omp_declare_simd): Add diagnostic.
! 
! 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-decl.cc (maybe_mark_function_versioned): New function.
! 	(merge_decls): Preserve DECL_FUNCTION_VERSIONED in merging.
! 	(duplicate_decls): Add check and diagnostic for unmergable version decls.
! 	(pushdecl): Add FMV target_version logic.
! 	(lookup_name): Don't resolve non-default versions.
! 	(start_decl): Mark and mangle versioned functions.
! 	(start_function): Mark and mangle versioned functions.
! 	(c_parse_final_cleanups): Add call to process_same_body_aliases.
! 
! 2025-10-01  Jan Hubicka  <hubicka@ucw.cz>
! 
! 	* Make-lang.in: Add c_FDAS
! 	(create_fdas_for_cc1): Be sure that build fails if create_gcov fails.
! 
! 2025-09-30  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR target/121933
! 	* c-typeck.cc (mark_decl_used): Set DECL_NONLOCAL
! 	only for VAR_DECL, FUNC_DECL, PARM_DECL.
! 
! 2025-09-26  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-decl.cc (c_scope): Rename {warned > had}_forward_parm_decls.
! 	(mark_forward_parm_decls): Add
! 	-Wmultiple-parameter-fwd-decl-lists.
! 
! 2025-09-26  Joseph Myers  <josmyers@redhat.com>
! 
! 	PR c/88642
! 	* c-typeck.cc (constructor_braced_scalar): New variable.
! 	(struct constructor_stack): Add braced_scalar field.
! 	(really_start_incremental_init): Handle constructor_braced_scalar
! 	and braced_scalar field.
! 	(push_init_level): Handle constructor_braced_scalar and
! 	braced_scalar field.  Give permerror rather than warning for
! 	nested braces around scalar initializer.
! 	(pop_init_level): Handle constructor_braced_scalar and
! 	braced_scalar field.
! 
! 2025-09-24  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-typeck.cc (really_atomic_lvalue): For a COMPOUND_LITERAL_EXPR,
! 	check C_DECL_REGISTER on the COMPOUND_LITERAL_EXPR_DECL.
! 
! 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-objc-common.cc (c_tree_printer): Add printing of target_clone and
! 	target_version in decl diagnostics.
! 
! 2025-09-20  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-typeck.cc (really_atomic_lvalue): Return false for incomplete
! 	types.
! 	(convert_lvalue_to_rvalue): Call require_complete_type for
! 	qualified void for C2y.
! 
! 2025-09-17  Richard Biener  <rguenther@suse.de>
! 
! 	* gimple-parser.cc (c_parser_parse_gimple_body): Initialize
! 	SSA operands for each stmt.
! 	(c_parser_gimple_compound_statement): Append stmts without
! 	updating SSA operands.
! 
! 2025-09-16  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c/121421
! 	* c-parser.cc (c_parser_declaration_or_fndef): Error out for gimple
! 	and rtl functions as nested functions.
! 
! 2025-09-13  Joseph Myers  <josmyers@redhat.com>
! 
! 	* c-typeck.cc (c_mark_addressable): New parameter
! 	override_register.
! 	(build_array_ref): Update calls to c_mark_addressable.  Give error
! 	in C2Y mode for negative array indices when array expression is an
! 	array not a pointer.  Use pedwarn_c23 for subscripting register
! 	array; diagnose that also for register compound literal.
! 	* c-tree.h (c_mark_addressable): Update prototype.
! 
! 2025-09-10  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-tree.h: Add new macro C_DECL_NONLOCAL_CONTEXT and prototype
! 	for mark_decl_used.
! 	* c-typeck.cc (mark_decl_used): New function.
! 	(function_to_pointer_conversion): Mark exempt functions.
! 	(record_maybe_used_decl): Add `address' parameter.
! 	(build_external_ref): Change to mark_decl_used.
! 	(pop_maybe_used): Call mark_decl_used.
! 	(c_mark_addressable): Ditto.
! 	(c_finish_goto_label): Ditto.
! 	(c_finish_return): Add warning.
! 	* c-decl.cc (declspecs_add_type): Ditto.
! 	(grokdeclarator): Don't set C_DECL_REGISTER on function
! 	declarators.
! 
! 2025-09-08  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR c/107419
! 	* c-decl.cc (c_decl_attributes): Update TLS model with the
! 	default TLS access model if the default TLS access model is
! 	stronger.
! 	(grokdeclarator): Set a tentative TLS model which will be
! 	updated by c_decl_attributes later.
! 
! 2025-09-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-decl.cc (pushtag): Remove ()s around string literal
! 	in call to diagnostic function.
! 	(diagnose_mismatched_decls): Likewise.
! 	(c_check_switch_jump_warnings): Likewise.
! 	(grokdeclarator): Likewise.
! 	(warn_cxx_compat_finish_struct): Likewise.
! 	(build_enumerator): Formatting fix.
! 	(declspecs_add_type): Remove ()s around string literal
! 	in call to diagnostic function, simplify
! 	"both %<something%> and %<something%>" starting format
! 	strings to "both %qs and %qs" with appropriate arguments.
! 	Formatting fixes.
! 	* c-typeck.cc (build_external_ref): Remove ()s around string
! 	literal in call to diagnostic function.
! 	(build_conditional_expr): Likewise.
! 	* c-parser.cc (c_parser_transaction): Use G_() around string
! 	literals.  Formatting fix.
! 	(c_parser_transaction_expression): Likewise.
! 
! 2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR middle-end/118839
! 	* c-parser.cc (c_finish_omp_declare_variant): Error if variant
! 	is the same as base.
! 
! 2025-08-26  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-parser.cc (c_finish_omp_declare_variant): Rework diagnostic
! 	code.  Do not record variant if there are errors.  Make check for
! 	a missing "match" clause unconditional.
! 
! 2025-08-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c/121478
! 	* c-fold.cc (c_fully_fold_internal): Fold nullptr_t ==/!= nullptr_t.
! 	* c-typeck.cc (convert_arguments): Handle conversion from nullptr_t
! 	for varargs.
! 	(convert_for_assignment): Handle conversions from nullptr_t to
! 	pointer type specially.
! 
! 2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>
! 
! 	* c-parser.cc (c_parser_declaration_or_fndef): Use
! 	'sanitize_code_type' instead of 'unsigned int'.
! 
! 2025-08-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/120778
! 	PR target/121520
! 	* c-decl.cc (c_init_decl_processing): Use cpp_warn instead of
! 	cpp_lookup and NODE_WARN bit setting.
! 
! 2025-08-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-tree.h (handle_counted_by_for_component_ref): New prototype of
! 	build_component_ref and handle_counted_by_for_component_ref.
! 	* c-parser.cc (c_parser_postfix_expression): Call the new prototypes
! 	of build_component_ref and handle_counted_by_for_component_ref,
! 	update comments.
! 	* c-typeck.cc (default_function_array_read_conversion): Likewise.
! 	(convert_lvalue_to_rvalue): Likewise.
! 	(default_conversion): Likewise.
! 	(handle_counted_by_p): Update comments.
! 	(handle_counted_by_for_component_ref): Delete one argument.
! 	(build_component_ref): Delete one argument. Delete the call to
! 	handle_counted_by_for_component_ref completely.
! 	(build_array_ref): Generate call to .ACCESS_WITH_SIZE for array.
! 
! 2025-08-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
! 	to a vector of fields with counted_by attribute. Verify all fields
! 	in this vector.
! 	(finish_struct): Collect all the fields with counted_by attribute
! 	to a vector and pass this vector to verify_counted_by_attribute.
! 	* c-tree.h (handle_counted_by_for_component_ref): New prototype of
! 	handle_counted_by_form_component_ref.
! 	* c-parser.cc (c_parser_postfix_expression): Call the new prototype
! 	of handle_counted_by_for_component_ref.
! 	* c-typeck.cc (default_function_array_read_conversion): Only generate
! 	call to .ACCESS_WITH_SIZE for a pointer field when it's a read.
! 	(convert_lvalue_to_rvalue): Likewise.
! 	(default_conversion): Likewise.
! 	(handle_counted_by_p): New routine.
! 	(check_counted_by_attribute): New routine.
! 	(build_counted_by_ref): Handle pointers with counted_by.
! 	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
! 	(handle_counted_by_for_component_ref): Add one more argument.
! 	(build_component_ref): Call the new prototype of
! 	handle_counted_by_for_component_ref.
! 
! 2025-08-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/120778
! 	* c-decl.cc (c_init_decl_processing): Mark cpp nodes corresponding
! 	to keywords as NODE_WARN if warn_keyword_macro.
! 
! 2025-08-06  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-tree.h (C_BOOLEAN_TYPE_P): Cover hardbools as well.
! 	* c-typeck.cc (convert_lvalue_to_rvalue): New overload and
! 	wrapper.
! 	(build_atomic_assign, build_modify_expr): Use it.
! 	(build_asm_expr, handle_omp-array_sections_1): Simplify with
! 	it.
! 	(build_unary_op): Handle hardbools.
! 
! 2025-08-06  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/108931
! 	* c-typeck.cc (composite_type_cond): Renamed from
! 	composite_type with argument for condition
! 	(composite_type): New function.
! 	(composite_type_internal): Implement new logic.
! 	(build_conditional_expr): Pass condition.
! 	(common_pointer_type): Adapt.
! 	(pointer_diff): Adapt.
! 	(build_binary_op): Adapt.
! 
! 2025-08-06  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/121217
! 	* c-typeck.cc (tagged_types_tu_compatible_p): Add check.
! 
! 2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_clause_from_to): Parse 'iterator' modifier.
! 	* c-typeck.cc (c_finish_omp_clauses): Finish iterators for to/from
! 	clauses.
! 
! 2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 	    Andrew Stubbs  <ams@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_variable_list): Use location of the
! 	map expression as the clause location.
! 	(c_parser_omp_clause_map): Parse 'iterator' modifier.
! 	* c-typeck.cc (c_finish_omp_clauses): Finish iterators.  Apply
! 	iterators to generated clauses.
! 
! 2025-08-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-decl.cc (get_parm_array_spec): Remove.
! 	(push_parm_decl): Do not add `arg spec` attribute.
! 	(build_arg_spec_attribute): New function.
! 	(grokdeklarator): Add `arg spec` attribute.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-errors.cc: Update usage of "diagnostic_info" to explicitly
! 	refer to "diagnostics::diagnostic_info".
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-errors.cc: Update for diagnostic_t becoming
! 	enum class diagnostics::kind.
! 	* c-parser.cc: Likewise.
! 	* c-typeck.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-decl.cc: Update for renaming of diagnostic_option_id to
! 	diagnostics::option_id.
! 	* c-errors.cc: Likewise.
! 	* c-tree.h: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-objc-common.cc: Update for diagnostic_context becoming
! 	diagnostics::context.
! 	* c-tree.h: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-errors.cc: Update to add "m_" prefix to fields of
! 	diagnostic_info throughout.
! 
! 2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
! 
! 	* c-typeck.cc (build_asm_expr): Pass null pointer to
! 	parse_{input,output}_constraint().
! 
! 2025-07-16  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 
! 	* c-typeck.cc (handle_omp_array_sections): Use OMP_ITERATOR_DECL_P.
! 	(c_finish_omp_clauses): Likewise.
! 
! 2025-07-15  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
! 
! 	PR c/44677
! 	* c-parser.cc (c_parser_unary_expression): Clear DECL_READ_P
! 	after default_function_array_read_conversion for
! 	-Wunused-but-set-{parameter,variable}={2,3} on
! 	PRE{IN,DE}CREMENT_EXPR argument.
! 	(c_parser_postfix_expression_after_primary): Similarly for
! 	POST{IN,DE}CREMENT_EXPR.
! 	* c-decl.cc (pop_scope): Use OPT_Wunused_but_set_variable_
! 	instead of OPT_Wunused_but_set_variable.
! 	(finish_function): Use OPT_Wunused_but_set_parameter_
! 	instead of OPT_Wunused_but_set_parameter.
! 	* c-typeck.cc (mark_exp_read): Handle {PRE,POST}{IN,DE}CREMENT_EXPR
! 	and don't handle it when cast to void.
! 	(build_modify_expr): Clear DECL_READ_P after build_binary_op
! 	for -Wunused-but-set-{parameter,variable}=3.
! 
! 2025-07-10  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
! 	Adjust the arguments per the new design.
! 
! 2025-07-10  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR middle-end/121000
! 	* c-typeck.cc (build_access_with_size_for_counted_by): Update comments.
! 	Pass TYPE_SIZE_UNIT of the element as the 6th argument.
! 
! 2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	Revert:
! 	2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
! 	to a vector of fields with counted_by attribute. Verify all fields
! 	in this vector.
! 	(finish_struct): Collect all the fields with counted_by attribute
! 	to a vector and pass this vector to verify_counted_by_attribute.
! 	* c-typeck.cc (build_counted_by_ref): Handle pointers with counted_by.
! 	Add one more argument, issue error when the pointee type is a structure
! 	or union including a flexible array member.
! 	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
! 	(handle_counted_by_for_component_ref): Call build_counted_by_ref
! 	with the new prototype.
! 
! 2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-decl.cc (verify_counted_by_attribute): Change the 2nd argument
! 	to a vector of fields with counted_by attribute. Verify all fields
! 	in this vector.
! 	(finish_struct): Collect all the fields with counted_by attribute
! 	to a vector and pass this vector to verify_counted_by_attribute.
! 	* c-typeck.cc (build_counted_by_ref): Handle pointers with counted_by.
! 	Add one more argument, issue error when the pointee type is a structure
! 	or union including a flexible array member.
! 	(build_access_with_size_for_counted_by): Handle pointers with counted_by.
! 	(handle_counted_by_for_component_ref): Call build_counted_by_ref
! 	with the new prototype.
! 
! 2025-06-23  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-parser.cc (OACC_WAIT_CLAUSE_MASK): Add if clause.
! 
! 2025-06-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-lang.h (union lang_type::maybe_objc_info): New type.
! 	(struct lang_type): Use union maybe_objc_info info member
! 	instead of tree objc_info.
! 	* c-decl.cc (finish_struct): Allocate struct lang_type using
! 	ggc_internal_cleared_alloc instead of ggc_cleared_alloc,
! 	and use sizeof (struct lang_type) for ObjC and otherwise
! 	offsetof (struct lang_type, info) as size.
! 	(finish_enum): Likewise.
! 
! 2025-06-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120510
! 	* c-typeck.cc (composite_type_internal): Activate checking
! 	assertions for all types and also inputs.
! 	(comptypes_for_composite_check): New helper function.
! 	(function_types_compatible_p): Add exception.
! 
! 2025-06-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (function_types_compatible_p): Remove unused
! 	variables and return true/false instead of 1/0.
! 	(type_lists_compatible_p): Return false instead of 0.
! 
! 2025-06-11  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120303
! 	* c-parser.cc (c_parser_generic_selection): Handle error
! 	condition.
! 
! 2025-06-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120510
! 	* c-typeck.cc (remove_qualifiers): New function.
! 	(composite_type_internal): Use it.
! 	(comp_target_types): Use it.
! 	(type_lists_compatible_p): Use it.
! 	(find_anonymous_field_with_type): Use it.
! 	(convert_to_anonymous_field): Use it.
! 	(convert_for_assignment): Use it.
! 
! 2025-06-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120510
! 	* c-typeck.cc (composite_type_internal): Activate checking
! 	assertion for arrays.
! 	(common_pointer_type): Remove qualifiers also from arrays.
! 
! 2025-06-09  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120510
! 	* c-typeck.cc (composite_types_internal): Handle arrays
! 	declared with atomic for function arguments.
! 
! 2025-06-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-typeck.cc (composite_type_internal,composite_type): Move
! 	checking assertions.
! 
! 2025-06-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/116892
! 	* c-decl.cc (finish_enum): Propagate TYPE_PACKED.
! 
! 2025-06-02  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c-parser.cc (c_parser_omp_context_selector): Call
! 	convert_lvalue_to_rvalue and c_objc_common_truthvalue_conversion
! 	on the expression for OMP_TRAIT_PROPERTY_BOOL_EXPR.
! 
! 2025-06-01  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120380
! 	* c-objc-common.cc (get_aka_type): Ignore attributes for tagged types.
! 
! 2025-05-30  Qing Zhao  <qing.zhao@oracle.com>
  
  	PR c/120354
  	* c-decl.cc (finish_struct): Or the results for TYPE_INCLUDES_FLEXARRAY.
  
! 2025-05-30  Qing Zhao  <qing.zhao@oracle.com>
  
  	PR c/120353
  	* c-decl.cc (finish_struct): Copy TYPE_INCLUDES_FLEXARRAY marking
  	to all the variant types of the current structure type.
  
! 2025-05-30  Julian Brown  <julian@codesourcery.com>
  
! 	* c-decl.cc (c_omp_mapper_id, c_omp_mapper_decl, c_omp_mapper_lookup,
! 	c_omp_extract_mapper_directive, c_omp_map_array_section,
! 	c_omp_scan_mapper_bindings_r, c_omp_scan_mapper_bindings): New
! 	functions.
! 	* c-objc-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES,
! 	LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE,
! 	LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks for C.
! 	* c-parser.cc (c_parser_omp_clause_map): Add declare_mapper_p
! 	parameter; handle mapper modifier.
! 	(c_parser_omp_all_clauses): Update call to c_parser_omp_clause_map.
! 	(c_parser_omp_target): Instantiate explicit mappers and record bindings
! 	for implicit mappers.
! 	(c_parser_omp_declare_mapper): Parse "declare mapper" directives.
! 	(c_parser_omp_declare): Support "declare mapper".
! 	(c_parser_omp_declare_reduction): Use inform not error_at.
! 	* c-tree.h (c_omp_finish_mapper_clauses, c_omp_mapper_lookup,
! 	c_omp_extract_mapper_directive, c_omp_map_array_section,
! 	c_omp_mapper_id, c_omp_mapper_decl, c_omp_scan_mapper_bindings,
! 	c_omp_instantiate_mappers): Add prototypes.
! 	* c-typeck.cc (c_finish_omp_clauses): Handle GOMP_MAP_PUSH_MAPPER_NAME
! 	and GOMP_MAP_POP_MAPPER_NAME.
! 	(c_omp_finish_mapper_clauses): New function (langhook).
! 
! 2025-05-30  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120381
! 	* c-typeck.cc (composite_type_internal): Stop recursion for
! 	swapped pairs.
! 
! 2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	* c-parser.cc (c_parser_skip_to_closing_brace): New, copied from
  	the equivalent function in the C++ front end.
***************
*** 54,79 ****
  	(c_parser_omp_metadirective): Do not call
  	c_parser_skip_to_end_of_block_or_statement after an error.
  
! 2025-05-30  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	Backported from master:
! 	2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	PR c/120180
  	* c-parser.cc (c_parser_omp_metadirective): Only consume the
  	token if it is the expected close paren.
  
! 2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/120057
  	* c-typeck.cc (check_constexpr_init): Handle RAW_DATA_CST.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2025-04-15  Qing Zhao  <qing.zhao@oracle.com>
  
--- 967,1076 ----
  	(c_parser_omp_metadirective): Do not call
  	c_parser_skip_to_end_of_block_or_statement after an error.
  
! 2025-05-29  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	PR c/120180
  	* c-parser.cc (c_parser_omp_metadirective): Only consume the
  	token if it is the expected close paren.
  
! 2025-05-27  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c/117025
! 	* c-parser.cc (c_parser_sizeof_or_countof_expression): Use
! 	C2Y rather than C23 in pedwarn_c23.
! 
! 2025-05-27  Alejandro Colomar  <alx@kernel.org>
! 
! 	PR c/117025
! 	* c-parser.cc (c_parser_sizeof_or_countof_expression):
! 	Add -Wpedantic diagnostic for _Countof in <= C23 mode.
! 
! 2025-05-27  Alejandro Colomar  <alx@kernel.org>
! 	    Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117025
! 	* c-tree.h (in_countof): Add global variable declaration.
! 	(c_expr_countof_expr): Add function prototype.
! 	(c_expr_countof_type): Add function prototype.
! 	* c-decl.cc (start_struct, finish_struct): Add support for
! 	_Countof.
! 	(start_enum, finish_enum): Add support for _Countof.
! 	* c-parser.cc (c_parser_sizeof_expression): New macro.
! 	(c_parser_countof_expression): New macro.
! 	(c_parser_sizeof_or_countof_expression): Rename function and add
! 	support for _Countof.
! 	(c_parser_unary_expression): Add RID_COUNTOF entry.
! 	* c-typeck.cc (in_countof): Add global variable.
! 	(build_external_ref): Add support for _Countof.
! 	(record_maybe_used_decl): Add support for _Countof.
! 	(pop_maybe_used): Add support for _Countof.
! 	(is_top_array_vla): New function.
! 	(c_expr_countof_expr, c_expr_countof_type): New functions.
! 
! 2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/120057
  	* c-typeck.cc (check_constexpr_init): Handle RAW_DATA_CST.
  
! 2025-05-02  Florian Weimer  <fweimer@redhat.com>
  
! 	PR c/120055
! 	* c-typeck.cc (convert_arguments): Check if fundecl is null
! 	before checking for builtin function declaration.
! 
! 2025-05-01  Christopher Bazley  <chris.bazley@arm.com>
! 
! 	PR c/119317
! 	* c-decl.cc (c_get_loop_names): Do not prematurely
! 	end the search for a label that names a loop or
! 	switch statement upon encountering a DEBUG_BEGIN_STMT.
! 	Instead, ignore any instances of DEBUG_BEGIN_STMT.
! 
! 2025-05-01  Florian Weimer  <fweimer@redhat.com>
! 
! 	PR c/119950
! 	* c-typeck.cc (convert_arguments): Check for built-in
! 	function declaration before warning.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-decl.cc: Drop include of "make-unique.h".
! 	Replace uses of ::make_unique with std::make_unique.
! 	* c-objc-common.cc: Likewise.
! 	* c-parser.cc: Likewise.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-decl.cc: Include "make-unique.h".
! 	(lookup_name_fuzzy): Use ::make_unique rather than "new" when
! 	making suggest_missing_header and suggest_missing_option.
! 	* c-parser.cc: Include "make-unique.h"
! 	(c_parser_error_richloc): Use ::make_unique rather than "new" when
! 	making suggest_missing_header.
! 
! 2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c/119432
! 	* gimple-parser.cc (gimple_binary_identifier_code): Add
! 	__ROTATE_LEFT and __ROTATE_RIGHT.
! 
! 2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	* gimple-parser.cc (gimple_binary_identifier_code): New variable.
! 	(c_parser_gimple_binary_expression): Use gimple_binary_identifier_code
! 	instead of doing if statements on the strings.
! 
! 2025-04-27  H.J. Lu  <hjl.tools@gmail.com>
! 
! 	PR c/48274
! 	PR middle-end/112877
! 	PR middle-end/118288
! 	* c-decl.cc (start_decl): Remove the
! 	targetm.calls.promote_prototypes call.
! 	(store_parm_decls_oldstyle): Likewise.
! 	(finish_function): Likewise.
! 	* c-typeck.cc (convert_argument): Likewise.
! 	(c_safe_arg_type_equiv_p): Likewise.
  
  2025-04-15  Qing Zhao  <qing.zhao@oracle.com>
  
***************
*** 11506,11512 ****
  	* 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
--- 12503,12509 ----
  	* 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-2026 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-15.2.0/gcc/c/Make-lang.in gcc-16.1.0-RC-20260423/gcc/c/Make-lang.in
*** gcc-15.2.0/gcc/c/Make-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/Make-lang.in	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for GNU C - C language.
! # Copyright (C) 1994-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
*************** C_AND_OBJC_OBJS = attribs.o c/c-errors.o
*** 58,63 ****
--- 58,64 ----
  # Language-specific object files for C.
  C_OBJS = c/c-lang.o c-family/stub-objc.o $(C_AND_OBJC_OBJS)
  c_OBJS = $(C_OBJS) cc1-checksum.o c/gccspec.o
+ c_FDAS = cc1.fda
  
  # Use strict warnings for this front end.
  c-warn = $(STRICT_WARN)
*************** components_in_prev = "bfd opcodes binuti
*** 92,117 ****
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1.fda: create_fdas_for_cc1
! 	$(PROFILE_MERGER) $(shell ls -ha cc1_*.fda) --output_file cc1.fda -gcov_version 2
  
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \
  	  fi; \
  	done;
  
--- 93,124 ----
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1.fda: create_fdas_for_cc1
! 	$(PROFILE_MERGER) $(shell ls -ha cc1_*.fda) --output_file cc1.fda -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version`
  
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing cc1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing cc1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-15.2.0/gcc/c/c-aux-info.cc gcc-16.1.0-RC-20260423/gcc/c/c-aux-info.cc
*** gcc-15.2.0/gcc/c/c-aux-info.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-aux-info.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 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-2026 Free Software Foundation, Inc.
     Contributed by Ron Guilmette (rfg@segfault.us.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/c/c-convert.cc gcc-16.1.0-RC-20260423/gcc/c/c-convert.cc
*** gcc-15.2.0/gcc/c/c-convert.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-convert.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-level data type conversion for GNU C.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c/c-decl.cc gcc-16.1.0-RC-20260423/gcc/c/c-decl.cc
*** gcc-15.2.0/gcc/c/c-decl.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-decl.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Process declarations and variables for C compiler.
!    Copyright (C) 1988-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum decl_context
*** 71,77 ****
    FUNCDEF,			/* Function definition */
    PARM,				/* Declaration of parm before function body */
    FIELD,			/* Declaration inside struct or union */
!   TYPENAME};			/* Typename (inside cast or sizeof)  */
  
  /* States indicating how grokdeclarator() should handle declspecs marked
     with __attribute__((deprecated)) or __attribute__((unavailable)).
--- 71,78 ----
    FUNCDEF,			/* Function definition */
    PARM,				/* Declaration of parm before function body */
    FIELD,			/* Declaration inside struct or union */
!   TYPENAME,			/* Typename (inside cast or sizeof)  */
!   GENERIC_ASSOC };		/* Typename in generic association  */
  
  /* States indicating how grokdeclarator() should handle declspecs marked
     with __attribute__((deprecated)) or __attribute__((unavailable)).
*************** vec<c_omp_declare_target_attr, va_gc> *c
*** 163,168 ****
--- 164,172 ----
     we are in.  */
  vec<c_omp_begin_assumes_data, va_gc> *current_omp_begin_assumes;
  
+ /* Vector of "omp begin/end declare variant" blocks we are in.  */
+ vec<c_omp_declare_variant_attr, va_gc> *current_omp_declare_variant_attribute;
+ 
  /* 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;
*************** struct GTY((chain_next ("%h.outer"))) c_
*** 504,513 ****
       if these appears in a function definition.  */
    BOOL_BITFIELD had_vla_unspec : 1;
  
!   /* True if we already complained about forward parameter decls
!      in this scope.  This prevents double warnings on
!      foo (int a; int b; ...)  */
!   BOOL_BITFIELD warned_forward_parm_decls : 1;
  
    /* True if this is the outermost block scope of a function body.
       This scope contains the parameters, the local variables declared
--- 508,515 ----
       if these appears in a function definition.  */
    BOOL_BITFIELD had_vla_unspec : 1;
  
!   /* True if we parsed a list of forward parameter decls in this scope.  */
!   BOOL_BITFIELD had_forward_parm_decls : 1;
  
    /* True if this is the outermost block scope of a function body.
       This scope contains the parameters, the local variables declared
*************** c_finish_incomplete_decl (tree decl)
*** 910,917 ****
  	  && !DECL_EXTERNAL (decl)
  	  && TYPE_DOMAIN (type) == NULL_TREE)
  	{
! 	  warning_at (DECL_SOURCE_LOCATION (decl),
! 		      0, "array %q+D assumed to have one element", decl);
  
  	  complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
  
--- 912,923 ----
  	  && !DECL_EXTERNAL (decl)
  	  && TYPE_DOMAIN (type) == NULL_TREE)
  	{
! 	  if (flag_isoc2y && !TREE_PUBLIC (decl))
! 	    error_at (DECL_SOURCE_LOCATION (decl),
! 		      "array size missing in %q+D", decl);
! 	  else
! 	    warning_at (DECL_SOURCE_LOCATION (decl),
! 			0, "array %q+D assumed to have one element", decl);
  
  	  complete_array_type (&TREE_TYPE (decl), NULL_TREE, true);
  
*************** pop_scope (void)
*** 1363,1369 ****
  	case VAR_DECL:
  	  /* Warnings for unused variables.  */
  	  if ((!TREE_USED (p) || !DECL_READ_P (p))
! 	      && !warning_suppressed_p (p, OPT_Wunused_but_set_variable)
  	      && !DECL_IN_SYSTEM_HEADER (p)
  	      && DECL_NAME (p)
  	      && !DECL_ARTIFICIAL (p)
--- 1369,1375 ----
  	case VAR_DECL:
  	  /* Warnings for unused variables.  */
  	  if ((!TREE_USED (p) || !DECL_READ_P (p))
! 	      && !warning_suppressed_p (p, OPT_Wunused_but_set_variable_)
  	      && !DECL_IN_SYSTEM_HEADER (p)
  	      && DECL_NAME (p)
  	      && !DECL_ARTIFICIAL (p)
*************** pop_scope (void)
*** 1377,1383 ****
  		}
  	      else if (DECL_CONTEXT (p) == current_function_decl)
  		warning_at (DECL_SOURCE_LOCATION (p),
! 			    OPT_Wunused_but_set_variable,
  			    "variable %qD set but not used", p);
  	    }
  
--- 1383,1389 ----
  		}
  	      else if (DECL_CONTEXT (p) == current_function_decl)
  		warning_at (DECL_SOURCE_LOCATION (p),
! 			    OPT_Wunused_but_set_variable_,
  			    "variable %qD set but not used", p);
  	    }
  
*************** pushtag (location_t loc, tree name, tree
*** 1726,1733 ****
  	{
  	  auto_diagnostic_group d;
  	  if (warning_at (loc, OPT_Wc___compat,
! 			  ("using %qD as both a typedef and a tag is "
! 			   "invalid in C++"), b->decl)
  	      && b->locus != UNKNOWN_LOCATION)
  	    inform (b->locus, "originally defined here");
  	}
--- 1732,1739 ----
  	{
  	  auto_diagnostic_group d;
  	  if (warning_at (loc, OPT_Wc___compat,
! 			  "using %qD as both a typedef and a tag is "
! 			  "invalid in C++", b->decl)
  	      && b->locus != UNKNOWN_LOCATION)
  	    inform (b->locus, "originally defined here");
  	}
*************** previous_tag (tree type)
*** 2088,2093 ****
--- 2094,2128 ----
    return NULL_TREE;
  }
  
+ /* Subroutine to mark functions as versioned when using the attribute
+    'target_version'.  */
+ 
+ static void
+ maybe_mark_function_versioned (tree decl)
+ {
+   if (!DECL_FUNCTION_VERSIONED (decl))
+     {
+       /* Check if the name of the function has been overridden.  */
+       if (DECL_ASSEMBLER_NAME_SET_P (decl)
+ 	  && IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))[0] == '*')
+ 	error_at (DECL_SOURCE_LOCATION (decl),
+ 		  "cannot use function multiversioning on a renamed function");
+ 
+       /* We need to insert function version now to make sure the correct
+ 	 pre-mangled assembler name is recorded.  */
+       cgraph_node *node = cgraph_node::get_create (decl);
+ 
+       if (!node->function_version ())
+ 	node->insert_new_function_version ();
+ 
+       DECL_FUNCTION_VERSIONED (decl) = 1;
+ 
+       tree mangled_name
+ 	= targetm.mangle_decl_assembler_name (decl, DECL_NAME (decl));
+       SET_DECL_ASSEMBLER_NAME (decl, mangled_name);
+     }
+ }
+ 
  /* Subroutine of duplicate_decls.  Compare NEWDECL to OLDDECL.
     Returns true if the caller should proceed to merge the two, false
     if OLDDECL should simply be discarded.  As a side effect, issues
*************** diagnose_mismatched_decls (tree newdecl,
*** 2305,2314 ****
  		error ("conflicting type qualifiers for %q+D", newdecl);
  	    }
  	  else
! 	    error ("conflicting types for %q+D; have %qT", newdecl, newtype);
! 	  diagnose_arglist_conflict (newdecl, olddecl, newtype, oldtype);
! 	  locate_old_decl (olddecl);
! 	  return false;
  	}
      }
    /* Warn about enum/integer type mismatches.  They are compatible types
--- 2340,2379 ----
  		error ("conflicting type qualifiers for %q+D", newdecl);
  	    }
  	  else
! 	    {
! 	      if (TREE_CODE (olddecl) == FUNCTION_DECL)
! 		{
! 		  tree attrs = TYPE_ATTRIBUTES (TREE_TYPE (olddecl));
! 		  if (attrs && !TYPE_ATTRIBUTES (TREE_TYPE (newdecl)))
! 		    {
! 		      /* Similar to the C++ front-end, for FUNCTION_DECL,
! 			 if OLDDECL has attributes and NEWDECL doesn't,
! 			 try the type with OLDDECL attributes.  */
! 		      tree rettype = TREE_TYPE (newtype);
! 		      tree tryargs = TYPE_ARG_TYPES (newtype);
! 		      tree trytype = c_build_function_type (rettype,
! 							    tryargs);
! 		      trytype = c_build_type_attribute_variant (trytype,
! 								attrs);
! 		      if (comptypes (oldtype, trytype))
! 			{
! 			  *newtypep = newtype = trytype;
! 			  comptypes_result = 1;
! 			}
! 		    }
! 		}
! 
! 	      if (!comptypes_result)
! 		error ("conflicting types for %q+D; have %qT", newdecl,
! 		       newtype);
! 	    }
! 	  if (!comptypes_result)
! 	    {
! 	      diagnose_arglist_conflict (newdecl, olddecl, newtype,
! 					 oldtype);
! 	      locate_old_decl (olddecl);
! 	      return false;
! 	    }
  	}
      }
    /* Warn about enum/integer type mismatches.  They are compatible types
*************** diagnose_mismatched_decls (tree newdecl,
*** 2507,2512 ****
--- 2572,2581 ----
  			"but not here");
  	    }
  	}
+       /* Check if these are unmergable overlapping FMV declarations.  */
+       if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE
+ 	  && diagnose_versioned_decls (olddecl, newdecl))
+ 	return false;
      }
    else if (VAR_P (newdecl))
      {
*************** diagnose_mismatched_decls (tree newdecl,
*** 2630,2638 ****
  	  && !DECL_EXTERNAL (olddecl))
  	warned |= warning_at (DECL_SOURCE_LOCATION (newdecl),
  			      OPT_Wc___compat,
! 			      ("duplicate declaration of %qD is "
! 			       "invalid in C++"),
! 			      newdecl);
      }
  
    /* warnings */
--- 2699,2706 ----
  	  && !DECL_EXTERNAL (olddecl))
  	warned |= warning_at (DECL_SOURCE_LOCATION (newdecl),
  			      OPT_Wc___compat,
! 			      "duplicate declaration of %qD is "
! 			      "invalid in C++", newdecl);
      }
  
    /* warnings */
*************** merge_decls (tree newdecl, tree olddecl,
*** 2974,2979 ****
--- 3042,3053 ----
  
    if (TREE_CODE (newdecl) == FUNCTION_DECL)
      {
+       if (DECL_FUNCTION_VERSIONED (olddecl)
+ 	  || DECL_FUNCTION_VERSIONED (newdecl))
+ 	{
+ 	  maybe_mark_function_versioned (olddecl);
+ 	  maybe_mark_function_versioned (newdecl);
+ 	}
        /* If we're redefining a function previously defined as extern
  	 inline, make sure we emit debug info for the inline before we
  	 throw it away, in case it was inlined into a function that
*************** pushdecl (tree x)
*** 3373,3378 ****
--- 3447,3502 ----
  		TREE_TYPE (b_use->decl) = b_use->u.type;
  	    }
  	}
+ 
+       /* Check if x is part of a FMV set with b_use.
+ 	 FMV is only supported in c for targets with target_version
+ 	 attributes.  */
+       if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE
+ 	  && b_use && TREE_CODE (b_use->decl) == FUNCTION_DECL
+ 	  && TREE_CODE (x) == FUNCTION_DECL && DECL_FILE_SCOPE_P (b_use->decl)
+ 	  && DECL_FILE_SCOPE_P (x)
+ 	  && disjoint_version_decls (x, b_use->decl)
+ 	  && comptypes (vistype, type) != 0)
+ 	{
+ 	  maybe_mark_function_versioned (b_use->decl);
+ 	  maybe_mark_function_versioned (b->decl);
+ 	  maybe_mark_function_versioned (x);
+ 
+ 	  cgraph_node *b_node = cgraph_node::get_create (b_use->decl);
+ 	  cgraph_function_version_info *b_v = b_node->function_version ();
+ 	  if (!b_v)
+ 	    b_v = b_node->insert_new_function_version ();
+ 
+ 	  /* Check if this new node conflicts with any previous functions
+ 	     in the set.  */
+ 	  cgraph_function_version_info *version = b_v;
+ 	  for (; version; version = version->next)
+ 	    if (!disjoint_version_decls (version->this_node->decl, x))
+ 	      {
+ 		/* The decls define overlapping version, so attempt to merge
+ 		   or diagnose the conflict.  */
+ 		if (duplicate_decls (x, version->this_node->decl))
+ 		  return version->this_node->decl;
+ 		else
+ 		  return error_mark_node;
+ 	      }
+ 
+ 	  /* This is a new version to be added to FMV structure.  */
+ 	  cgraph_node::add_function_version (b_v, x);
+ 
+ 	  /* Get the first node from the structure.  */
+ 	  cgraph_function_version_info *default_v = b_v;
+ 	  while (default_v->prev)
+ 	    default_v = default_v->prev;
+ 	  /* Always use the default node for the bindings.  */
+ 	  b_use->decl = default_v->this_node->decl;
+ 	  b->decl = default_v->this_node->decl;
+ 
+ 	  /* Node is not a duplicate, so no need to do the rest of the
+ 	     checks.  */
+ 	  return x;
+ 	}
+ 
        if (duplicate_decls (x, b_use->decl))
  	{
  	  if (b_use != b)
*************** c_check_switch_jump_warnings (struct c_s
*** 4368,4375 ****
  		{
  		  saw_error = true;
  		  error_at (case_loc,
! 			    ("switch jumps into scope of identifier with "
! 			     "variably modified type"));
  		  emitted = true;
  		}
  	      else if (flag_openmp
--- 4492,4499 ----
  		{
  		  saw_error = true;
  		  error_at (case_loc,
! 			    "switch jumps into scope of identifier with "
! 			    "variably modified type");
  		  emitted = true;
  		}
  	      else if (flag_openmp
*************** tree
*** 4497,4502 ****
--- 4621,4632 ----
  lookup_name (tree name)
  {
    struct c_binding *b = I_SYMBOL_BINDING (name);
+   /* Do not resolve non-default function versions.  */
+   if (b
+       && TREE_CODE (b->decl) == FUNCTION_DECL
+       && DECL_FUNCTION_VERSIONED (b->decl)
+       && !is_function_default_version (b->decl))
+     return NULL_TREE;
    if (b && !b->invisible)
      {
        maybe_record_typedef_use (b->decl);
*************** lookup_name_fuzzy (tree name, enum looku
*** 4541,4567 ****
  {
    gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
  
!   /* First, try some well-known names in the C standard library, in case
       the user forgot a #include.  */
    const char *header_hint
      = get_c_stdlib_header_for_name (IDENTIFIER_POINTER (name));
  
    if (header_hint)
!     return name_hint (NULL,
! 		      new suggest_missing_header (loc,
! 						  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.  */
--- 4671,4709 ----
  {
    gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
  
!   /* Look up function-like macros first; maybe misusing them. */
!   auto cpp_node = cpp_lookup (parse_in,
! 			      (const unsigned char*)IDENTIFIER_POINTER (name),
! 			      IDENTIFIER_LENGTH (name));
!   if (cpp_node && cpp_fun_like_macro_p (cpp_node))
!     return name_hint
!       (nullptr,
!        std::make_unique<macro_like_function_used> (loc,
! 						   IDENTIFIER_POINTER (name)));
! 
!   /* Next, try some well-known names in the C standard library, in case
       the user forgot a #include.  */
    const char *header_hint
      = get_c_stdlib_header_for_name (IDENTIFIER_POINTER (name));
  
    if (header_hint)
!     return name_hint
!       (nullptr,
!        std::make_unique<suggest_missing_header> (loc,
! 						 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").  */
!   diagnostics::option_id option_id
      = get_option_for_builtin_define (IDENTIFIER_POINTER (name));
    if (option_id.m_idx > 0)
!     return name_hint
!       (nullptr,
!        std::make_unique<suggest_missing_option> (loc,
! 						 IDENTIFIER_POINTER (name),
! 						 option_id));
  
    /* Only suggest names reserved for the implementation if NAME begins
       with an underscore.  */
*************** c_init_decl_processing (void)
*** 4823,4828 ****
--- 4965,4992 ----
  
    make_fname_decl = c_make_fname_decl;
    start_fname_decls ();
+ 
+   if (warn_keyword_macro)
+     {
+       for (unsigned int i = 0; i < num_c_common_reswords; ++i)
+ 	/* For C register keywords which don't start with underscore
+ 	   or start with just single underscore.  Don't complain about
+ 	   ObjC or Transactional Memory keywords.  */
+ 	if (c_common_reswords[i].word[0] == '_'
+ 	    && c_common_reswords[i].word[1] == '_')
+ 	  continue;
+ 	else if (c_common_reswords[i].disable
+ 		 & (D_TRANSMEM | D_OBJC | D_CXX_OBJC))
+ 	  continue;
+ 	else
+ 	  {
+ 	    tree id = get_identifier (c_common_reswords[i].word);
+ 	    if (C_IS_RESERVED_WORD (id)
+ 		&& C_RID_CODE (id) != RID_CXX_COMPAT_WARN)
+ 	      cpp_warn (parse_in, IDENTIFIER_POINTER (id),
+ 			IDENTIFIER_LENGTH (id));
+ 	  }
+     }
  }
  
  /* Create the VAR_DECL at LOC for __FUNCTION__ etc. ID is the name to
*************** c_make_fname_decl (location_t loc, tree
*** 4851,4857 ****
    DECL_ARTIFICIAL (decl) = 1;
  
    init = build_string (length + 1, name);
!   free (CONST_CAST (char *, name));
    TREE_TYPE (init) = type;
    DECL_INITIAL (decl) = init;
  
--- 5015,5021 ----
    DECL_ARTIFICIAL (decl) = 1;
  
    init = build_string (length + 1, name);
!   free (const_cast<char *> (name));
    TREE_TYPE (init) = type;
    DECL_INITIAL (decl) = init;
  
*************** build_array_declarator (location_t loc,
*** 5336,5354 ****
  		 "ISO C90 does not support %<static%> or type "
  		 "qualifiers in parameter array declarators");
    if (vla_unspec_p)
-     pedwarn_c90 (loc, OPT_Wpedantic,
- 		 "ISO C90 does not support %<[*]%> array declarators");
-   if (vla_unspec_p)
      {
!       if (!current_scope->parm_flag)
! 	{
! 	  /* C99 6.7.5.2p4 */
! 	  error_at (loc, "%<[*]%> not allowed in other than "
! 		    "function prototype scope");
! 	  declarator->u.array.vla_unspec_p = false;
! 	  return NULL;
! 	}
!       current_scope->had_vla_unspec = true;
      }
    return declarator;
  }
--- 5500,5510 ----
  		 "ISO C90 does not support %<static%> or type "
  		 "qualifiers in parameter array declarators");
    if (vla_unspec_p)
      {
!       pedwarn_c90 (loc, OPT_Wpedantic,
! 		   "ISO C90 does not support %<[*]%> array declarators");
!       if (current_scope->parm_flag)
! 	current_scope->had_vla_unspec = true;
      }
    return declarator;
  }
*************** groktypename (struct c_type_name *type_n
*** 5454,5459 ****
--- 5610,5638 ----
    return type;
  }
  
+ 
+ /* Decode a "typename", such as "int **", returning a ..._TYPE node,
+    as for groktypename but setting the context to GENERIC_ASSOC.  */
+ 
+ tree
+ grokgenassoc (struct c_type_name *type_name)
+ {
+   tree type;
+   tree attrs = type_name->specs->attrs;
+ 
+   type_name->specs->attrs = NULL_TREE;
+ 
+   type = grokdeclarator (type_name->declarator, type_name->specs, GENERIC_ASSOC,
+ 			 false, NULL, &attrs, NULL, NULL, DEPRECATED_NORMAL);
+ 
+   /* Apply attributes.  */
+   attrs = c_warn_type_attributes (type, attrs);
+   decl_attributes (&type, attrs, 0);
+ 
+   return type;
+ }
+ 
+ 
  /* Looks up the most recent pushed declaration corresponding to DECL.  */
  
  static tree
*************** c_decl_attributes (tree *node, tree attr
*** 5559,5565 ****
    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);
  }
  
  
--- 5738,5753 ----
    tree last_decl = lookup_last_decl (*node);
    if (last_decl == error_mark_node)
      last_decl = NULL_TREE;
!   tree attr = decl_attributes (node, attributes, flags, last_decl);
!   if (VAR_P (*node) && DECL_THREAD_LOCAL_P (*node))
!     {
!       // tls_model attribute can set a stronger TLS access model.
!       tls_model model = DECL_TLS_MODEL (*node);
!       tls_model default_model = decl_default_tls_model (*node);
!       if (default_model > model)
! 	set_decl_tls_model (*node, default_model);
!     }
!   return attr;
  }
  
  
*************** start_decl (struct c_declarator *declara
*** 5721,5746 ****
      }
  
    if (TREE_CODE (decl) == FUNCTION_DECL
-       && targetm.calls.promote_prototypes (TREE_TYPE (decl)))
-     {
-       struct c_declarator *ce = declarator;
- 
-       if (ce->kind == cdk_pointer)
- 	ce = declarator->declarator;
-       if (ce->kind == cdk_function)
- 	{
- 	  tree args = ce->u.arg_info->parms;
- 	  for (; args; args = DECL_CHAIN (args))
- 	    {
- 	      tree type = TREE_TYPE (args);
- 	      if (type && INTEGRAL_TYPE_P (type)
- 		  && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
- 		DECL_ARG_TYPE (args) = c_type_promotes_to (type);
- 	    }
- 	}
-     }
- 
-   if (TREE_CODE (decl) == FUNCTION_DECL
        && DECL_DECLARED_INLINE_P (decl)
        && DECL_UNINLINABLE (decl)
        && lookup_attribute ("noinline", DECL_ATTRIBUTES (decl)))
--- 5909,5914 ----
*************** start_decl (struct c_declarator *declara
*** 5766,5771 ****
--- 5934,5950 ----
        && VAR_OR_FUNCTION_DECL_P (decl))
        objc_check_global_decl (decl);
  
+   /* To enable versions to be created across TU's we mark and mangle all
+      non-default versioned functions.  */
+   if (TREE_CODE (decl) == FUNCTION_DECL
+       && !TARGET_HAS_FMV_TARGET_ATTRIBUTE
+       && get_target_version (decl).is_valid ())
+     {
+       maybe_mark_function_versioned (decl);
+       if (current_scope != file_scope)
+ 	error ("versioned declarations are only allowed at file scope");
+     }
+ 
    /* Add this decl to the current scope.
       TEM may equal DECL or it may be a previous decl of the same name.  */
    if (do_push)
*************** finish_decl (tree decl, location_t init_
*** 5871,5881 ****
        && !(TREE_PUBLIC (decl) && current_scope != file_scope))
      {
        bool do_default
! 	= (TREE_STATIC (decl)
! 	   /* Even if pedantic, an external linkage array
! 	      may have incomplete type at first.  */
! 	   ? pedantic && !TREE_PUBLIC (decl)
! 	   : !DECL_EXTERNAL (decl));
        int failure
  	= complete_array_type (&TREE_TYPE (decl), DECL_INITIAL (decl),
  			       do_default);
--- 6050,6056 ----
        && !(TREE_PUBLIC (decl) && current_scope != file_scope))
      {
        bool do_default
! 	= !TREE_STATIC (decl) && !DECL_EXTERNAL (decl);
        int failure
  	= complete_array_type (&TREE_TYPE (decl), DECL_INITIAL (decl),
  			       do_default);
*************** finish_decl (tree decl, location_t init_
*** 5892,5897 ****
--- 6067,6075 ----
  	case 2:
  	  if (do_default)
  	    error ("array size missing in %q+D", decl);
+ 	  else if (!TREE_PUBLIC (decl))
+ 	    pedwarn_c23 (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic,
+ 			 "array size missing in %q+D", decl);
  	  break;
  
  	case 3:
*************** grokparm (const struct c_parm *parm, tre
*** 6226,6409 ****
    return decl;
  }
  
- /* Return attribute "arg spec" corresponding to an array/VLA parameter
-    described by PARM, concatenated onto attributes ATTRS.
-    The spec consists of one dollar symbol for each specified variable
-    bound, one asterisk for each unspecified variable bound, followed
-    by at most one specification of the most significant bound of
-    an ordinary array parameter.  For ordinary arrays the specification
-    is either the constant bound itself, or the space character for
-    an array with an unspecified bound (the [] form).  Finally, a chain
-    of specified variable bounds is appended to the spec, starting with
-    the most significant bound.  For example, the PARM T a[2][m][3][n]
-    will produce __attribute__((arg spec ("[$$2]", m, n)).
-    For T a typedef for an array with variable bounds, the bounds are
-    included in the specification in the expected order.
-    No "arg spec"  is created for parameters of pointer types, making
-    a distinction between T(*)[N] (or, equivalently, T[][N]) and
-    the T[M][N] form, all of which have the same type and are represented
-    the same, but only the last of which gets an "arg spec" describing
-    the most significant bound M.  */
- 
- static tree
- get_parm_array_spec (const struct c_parm *parm, tree attrs)
- {
-   /* The attribute specification string, minor bound first.  */
-   std::string spec;
- 
-   /* A list of VLA variable bounds, major first, or null if unspecified
-      or not a VLA.  */
-   tree vbchain = NULL_TREE;
-   /* True for a pointer parameter.  */
-   bool pointer = false;
-   /* True for an ordinary array with an unpecified bound.  */
-   bool nobound = false;
- 
-   /* Create a string representation for the bounds of the array/VLA.  */
-   for (c_declarator *pd = parm->declarator, *next; pd; pd = next)
-     {
-       next = pd->declarator;
-       while (next && next->kind == cdk_attrs)
- 	next = next->declarator;
- 
-       /* Remember if a pointer has been seen to avoid storing the constant
- 	 bound.  */
-       if (pd->kind == cdk_pointer)
- 	pointer = true;
- 
-       if ((pd->kind == cdk_pointer || pd->kind == cdk_function)
- 	  && (!next || next->kind == cdk_id))
- 	{
- 	  /* Do nothing for the common case of a pointer.  The fact that
- 	     the parameter is one can be deduced from the absence of
- 	     an arg spec for it.  */
- 	  return attrs;
- 	}
- 
-       if (pd->kind == cdk_id)
- 	{
- 	  if (pointer
- 	      || !parm->specs->type
- 	      || TREE_CODE (parm->specs->type) != ARRAY_TYPE
- 	      || !TYPE_DOMAIN (parm->specs->type)
- 	      || !TYPE_MAX_VALUE (TYPE_DOMAIN (parm->specs->type)))
- 	    continue;
- 
- 	  tree max = TYPE_MAX_VALUE (TYPE_DOMAIN (parm->specs->type));
- 	  if (!vbchain
- 	      && TREE_CODE (max) == INTEGER_CST)
- 	    {
- 	      /* Extract the upper bound from a parameter of an array type
- 		 unless the parameter is an ordinary array of unspecified
- 		 bound in which case a next iteration of the loop will
- 		 exit.  */
- 	      if (spec.empty () || spec.end ()[-1] != ' ')
- 		{
- 		  if (!tree_fits_shwi_p (max))
- 		    continue;
  
- 		  /* The upper bound is the value of the largest valid
- 		     index.  */
- 		  HOST_WIDE_INT n = tree_to_shwi (max) + 1;
- 		  char buf[40];
- 		  sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, n);
- 		  spec += buf;
- 		}
- 	      continue;
- 	    }
- 
- 	  /* For a VLA typedef, create a list of its variable bounds and
- 	     append it in the expected order to VBCHAIN.  */
- 	  tree tpbnds = NULL_TREE;
- 	  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);
- 	  vbchain = chainon (vbchain, tpbnds);
- 	  continue;
- 	}
- 
-       if (pd->kind != cdk_array)
- 	continue;
- 
-       if (pd->u.array.vla_unspec_p)
- 	{
- 	  /* Each unspecified bound is represented by a star.  There
- 	     can be any number of these in a declaration (but none in
- 	     a definition).  */
- 	  spec += '*';
- 	  continue;
- 	}
- 
-       tree nelts = pd->u.array.dimen;
-       if (!nelts)
- 	{
- 	  /* Ordinary array of unspecified size.  There can be at most
- 	     one for the most significant bound.  Exit on the next
- 	     iteration which determines whether or not PARM is declared
- 	     as a pointer or an array.  */
- 	  nobound = true;
- 	  continue;
- 	}
- 
-       if (pd->u.array.static_p)
- 	spec += 's';
- 
-       if (!INTEGRAL_TYPE_P (TREE_TYPE (nelts)))
- 	/* Avoid invalid NELTS.  */
- 	return attrs;
- 
-       STRIP_NOPS (nelts);
-       nelts = c_fully_fold (nelts, false, nullptr);
-       if (TREE_CODE (nelts) == INTEGER_CST)
- 	{
- 	  /* Skip all constant bounds except the most significant one.
- 	     The interior ones are included in the array type.  */
- 	  if (next && (next->kind == cdk_array || next->kind == cdk_pointer))
- 	    continue;
- 
- 	  if (!tree_fits_uhwi_p (nelts))
- 	    /* Bail completely on invalid bounds.  */
- 	    return attrs;
- 
- 	  char buf[40];
- 	  unsigned HOST_WIDE_INT n = tree_to_uhwi (nelts);
- 	  sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, n);
- 	  spec += buf;
- 	  break;
- 	}
- 
-       /* Each variable VLA bound is represented by a dollar sign.  */
-       spec += "$";
-       vbchain = tree_cons (NULL_TREE, nelts, vbchain);
-     }
- 
-   if (spec.empty () && !nobound)
-     return attrs;
- 
-   spec.insert (0, "[");
-   if (nobound)
-     /* Ordinary array of unspecified bound is represented by a space.
-        It must be last in the spec.  */
-     spec += ' ';
-   spec += ']';
- 
-   tree acsstr = build_string (spec.length () + 1, spec.c_str ());
-   tree args = tree_cons (NULL_TREE, acsstr, vbchain);
-   tree name = get_identifier ("arg spec");
-   return tree_cons (name, args, attrs);
- }
  
  /* Given a parsed parameter declaration, decode it into a PARM_DECL
     and push that on the current scope.  EXPR is a pointer to an
--- 6404,6410 ----
*************** push_parm_decl (const struct c_parm *par
*** 6419,6425 ****
    if (decl && DECL_P (decl))
      DECL_SOURCE_LOCATION (decl) = parm->loc;
  
-   attrs = get_parm_array_spec (parm, attrs);
    decl_attributes (&decl, attrs, 0);
  
    decl = pushdecl (decl);
--- 6420,6425 ----
*************** mark_forward_parm_decls (void)
*** 6435,6446 ****
  {
    struct c_binding *b;
  
!   if (pedantic && !current_scope->warned_forward_parm_decls)
!     {
!       pedwarn (input_location, OPT_Wpedantic,
! 	       "ISO C forbids forward parameter declarations");
!       current_scope->warned_forward_parm_decls = true;
!     }
  
    for (b = current_scope->bindings; b; b = b->prev)
      if (TREE_CODE (b->decl) == PARM_DECL)
--- 6435,6448 ----
  {
    struct c_binding *b;
  
!   if (current_scope->had_forward_parm_decls)
!     warning_at (input_location, OPT_Wmultiple_parameter_fwd_decl_lists,
! 		"more than one list of forward declarations of parameters");
!   if (pedantic && !current_scope->had_forward_parm_decls)
!     pedwarn (input_location, OPT_Wpedantic,
! 	     "ISO C forbids forward parameter declarations");
! 
!   current_scope->had_forward_parm_decls = true;
  
    for (b = current_scope->bindings; b; b = b->prev)
      if (TREE_CODE (b->decl) == PARM_DECL)
*************** build_compound_literal (location_t loc,
*** 6539,6544 ****
--- 6541,6547 ----
  
        type = TREE_TYPE (decl);
        TREE_TYPE (DECL_INITIAL (decl)) = type;
+       relayout_decl (decl);
      }
  
    if (type == error_mark_node || !COMPLETE_TYPE_P (type))
*************** build_compound_literal (location_t loc,
*** 6547,6552 ****
--- 6550,6559 ----
        return error_mark_node;
      }
  
+   if ((TREE_STATIC (decl) || C_DECL_DECLARED_CONSTEXPR (decl))
+       && C_TYPE_VARIABLE_SIZE (type))
+     error_at (loc, "storage size isn%'t constant");
+ 
    if (TREE_STATIC (decl)
        && !verify_type_context (loc, TCTX_STATIC_STORAGE, type))
      return error_mark_node;
*************** add_decl_expr (location_t loc, tree type
*** 6793,6798 ****
--- 6800,6824 ----
      }
  }
  
+ 
+ /* Add attribute "arg spec" to ATTRS corresponding to an array/VLA parameter
+    declared with type TYPE.  The attribute has two arguments.  The first is
+    a string that encodes the presence of the static keyword.  The second is
+    the declared type of the array before adjustment, i.e. as an array type
+    including the outermost bound.  */
+ 
+ static tree
+ build_arg_spec_attribute (tree type, bool static_p, tree attrs)
+ {
+   tree vbchain = tree_cons (NULL_TREE, type, NULL_TREE);
+   tree acsstr = static_p ? build_string (7, "static") :
+ 			   build_string (1, "");
+   tree args = tree_cons (NULL_TREE, acsstr, vbchain);
+   tree name = get_identifier ("arg spec");
+   return tree_cons (name, args, attrs);
+ }
+ 
+ 
  /* Given declspecs and a declarator,
     determine the name and type of the object declared
     and construct a ..._DECL node for it.
*************** add_decl_expr (location_t loc, tree type
*** 6810,6815 ****
--- 6836,6842 ----
        or before a function body).  Make a PARM_DECL, or return void_type_node.
       TYPENAME if for a typename (in a cast or sizeof).
        Don't make a DECL node; just return the ..._TYPE node.
+      GENERIC_ASSOC for typenames in a generic association.
       FIELD for a struct or union field; make a FIELD_DECL.
     INITIALIZED is true if the decl has an initializer.
     WIDTH is non-NULL for bit-fields, and is a pointer to an INTEGER_CST node
*************** grokdeclarator (const struct c_declarato
*** 6852,6857 ****
--- 6879,6885 ----
    bool funcdef_flag = false;
    bool funcdef_syntax = false;
    bool size_varies = false;
+   bool size_error = false;
    tree decl_attr = declspecs->decl_attr;
    int array_ptr_quals = TYPE_UNQUALIFIED;
    tree array_ptr_attrs = NULL_TREE;
*************** grokdeclarator (const struct c_declarato
*** 6945,6950 ****
--- 6973,6979 ----
        {
  	gcc_assert (decl_context == PARM
  		    || decl_context == TYPENAME
+ 		    || decl_context == GENERIC_ASSOC
  		    || (decl_context == FIELD
  			&& declarator->kind == cdk_id));
  	gcc_assert (!initialized);
*************** grokdeclarator (const struct c_declarato
*** 7344,7349 ****
--- 7373,7379 ----
  				"size of unnamed array has non-integer type");
  		    size = integer_one_node;
  		    size_int_const = true;
+ 		    size_error = true;
  		  }
  		/* This can happen with enum forward declaration.  */
  		else if (!COMPLETE_TYPE_P (TREE_TYPE (size)))
*************** grokdeclarator (const struct c_declarato
*** 7356,7361 ****
--- 7386,7392 ----
  				"type");
  		    size = integer_one_node;
  		    size_int_const = true;
+ 		    size_error = true;
  		  }
  
  		size = c_fully_fold (size, false, &size_maybe_const);
*************** grokdeclarator (const struct c_declarato
*** 7381,7386 ****
--- 7412,7418 ----
  			  error_at (loc, "size of unnamed array is negative");
  			size = integer_one_node;
  			size_int_const = true;
+ 			size_error = true;
  		      }
  		    /* Handle a size folded to an integer constant but
  		       not an integer constant expression.  */
*************** grokdeclarator (const struct c_declarato
*** 7515,7528 ****
  		  itype = build_index_type (NULL_TREE);
  	      }
  
- 	    if (array_parm_vla_unspec_p)
- 	      {
- 		/* C99 6.7.5.2p4 */
- 		if (decl_context == TYPENAME)
- 		  warning (0, "%<[*]%> not in a declaration");
- 		size_varies = true;
- 	      }
- 
  	    /* Complain about arrays of incomplete types.  */
  	    if (!COMPLETE_TYPE_P (type))
  	      {
--- 7547,7552 ----
*************** grokdeclarator (const struct c_declarato
*** 7561,7566 ****
--- 7585,7606 ----
  		  type = c_build_array_type (type, itype);
  	      }
  
+ 	    if (array_parm_vla_unspec_p)
+ 	      {
+ 		/* C99 6.7.5.2p4 */
+ 		if (decl_context == TYPENAME)
+ 		  warning (0, "%<[*]%> not in a declaration");
+ 		else if (decl_context != GENERIC_ASSOC
+ 			 && decl_context != PARM
+ 			 && decl_context != FIELD)
+ 		  {
+ 		    error ("%<[*]%> not allowed in other than function prototype scope "
+ 			   "or generic association");
+ 		    type = error_mark_node;
+ 		  }
+ 		size_varies = true;
+ 	      }
+ 
  	    if (type != error_mark_node)
  	      {
  		/* The GCC extension for zero-length arrays differs from
*************** grokdeclarator (const struct c_declarato
*** 7919,7926 ****
  	    {
  	      auto_diagnostic_group d;
  	      if (warning_at (declarator->id_loc, OPT_Wc___compat,
! 			      ("using %qD as both a typedef and a tag is "
! 			       "invalid in C++"), decl)
  		  && b->locus != UNKNOWN_LOCATION)
  		inform (b->locus, "originally defined here");
  	    }
--- 7959,7966 ----
  	    {
  	      auto_diagnostic_group d;
  	      if (warning_at (declarator->id_loc, OPT_Wc___compat,
! 			      "using %qD as both a typedef and a tag is "
! 			      "invalid in C++", decl)
  		  && b->locus != UNKNOWN_LOCATION)
  		inform (b->locus, "originally defined here");
  	    }
*************** grokdeclarator (const struct c_declarato
*** 7932,7938 ****
    /* If this is a type name (such as, in a cast or sizeof),
       compute the type and return it now.  */
  
!   if (decl_context == TYPENAME)
      {
        /* Note that the grammar rejects storage classes in typenames
  	 and fields.  */
--- 7972,7978 ----
    /* If this is a type name (such as, in a cast or sizeof),
       compute the type and return it now.  */
  
!   if (decl_context == TYPENAME || decl_context == GENERIC_ASSOC)
      {
        /* Note that the grammar rejects storage classes in typenames
  	 and fields.  */
*************** grokdeclarator (const struct c_declarato
*** 7996,8001 ****
--- 8036,8045 ----
  
  	if (TREE_CODE (type) == ARRAY_TYPE)
  	  {
+ 	    if (!size_error)
+ 	      *decl_attrs = build_arg_spec_attribute (type, array_parm_static,
+ 						      *decl_attrs);
+ 
  	    /* Transfer const-ness of array into that of type pointed to.  */
  	    type = TREE_TYPE (type);
  	    if (orig_qual_type != NULL_TREE)
*************** grokdeclarator (const struct c_declarato
*** 8329,8336 ****
  	    TREE_PUBLIC (decl) = extern_ref;
  	  }
  
  	if (threadp)
! 	  set_decl_tls_model (decl, decl_default_tls_model (decl));
        }
  
      if ((storage_class == csc_extern
--- 8373,8383 ----
  	    TREE_PUBLIC (decl) = extern_ref;
  	  }
  
+ 	// NB: Set a tentative TLS model to avoid tls_model attribute
+ 	// warnings due to lack of thread storage duration.  It will
+ 	// be updated by c_decl_attributes later.
  	if (threadp)
! 	  set_decl_tls_model (decl, TLS_MODEL_REAL);
        }
  
      if ((storage_class == csc_extern
*************** grokdeclarator (const struct c_declarato
*** 8367,8373 ****
      /* Record `register' declaration for warnings on &
         and in case doing stupid register allocation.  */
  
!     if (storage_class == csc_register)
        {
  	C_DECL_REGISTER (decl) = 1;
  	DECL_REGISTER (decl) = 1;
--- 8414,8421 ----
      /* Record `register' declaration for warnings on &
         and in case doing stupid register allocation.  */
  
!     if (storage_class == csc_register
! 	&& TREE_CODE (type) != FUNCTION_TYPE)
        {
  	C_DECL_REGISTER (decl) = 1;
  	DECL_REGISTER (decl) = 1;
*************** grokdeclarator (const struct c_declarato
*** 8414,8422 ****
  	    || TREE_CODE (TREE_TYPE (decl)) == ENUMERAL_TYPE)
  	&& TYPE_NAME (TREE_TYPE (decl)) == NULL_TREE)
        warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat,
! 		  ("non-local variable %qD with anonymous type is "
! 		   "questionable in C++"),
! 		  decl);
  
      return decl;
    }
--- 8462,8469 ----
  	    || TREE_CODE (TREE_TYPE (decl)) == ENUMERAL_TYPE)
  	&& TYPE_NAME (TREE_TYPE (decl)) == NULL_TREE)
        warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc___compat,
! 		  "non-local variable %qD with anonymous type is "
! 		  "questionable in C++", decl);
  
      return decl;
    }
*************** start_struct (location_t loc, enum tree_
*** 8961,8972 ****
       within a statement expr used within sizeof, et. al.  This is not
       terribly serious as C++ doesn't permit statement exprs within
       sizeof anyhow.  */
!   if (warn_cxx_compat && (in_sizeof || in_typeof || in_alignof))
      warning_at (loc, OPT_Wc___compat,
  		"defining type in %qs expression is invalid in C++",
! 		(in_sizeof
! 		 ? "sizeof"
! 		 : (in_typeof ? "typeof" : "alignof")));
  
    if (in_underspecified_init)
      error_at (loc, "%qT defined in underspecified object initializer", ref);
--- 9008,9021 ----
       within a statement expr used within sizeof, et. al.  This is not
       terribly serious as C++ doesn't permit statement exprs within
       sizeof anyhow.  */
!   if (warn_cxx_compat
!       && (in_sizeof || in_typeof || in_alignof || in_countof))
      warning_at (loc, OPT_Wc___compat,
  		"defining type in %qs expression is invalid in C++",
! 		(in_sizeof ? "sizeof"
! 		 : in_typeof ? "typeof"
! 		 : in_alignof ? "alignof"
! 		 : "_Countof"));
  
    if (in_underspecified_init)
      error_at (loc, "%qT defined in underspecified object initializer", ref);
*************** grokfield (location_t loc,
*** 9048,9053 ****
--- 9097,9108 ----
  			  width ? &width : NULL, decl_attrs, expr, NULL,
  			  DEPRECATED_NORMAL);
  
+   /* When this field has name, its type is a top level type, we should
+      call verify_counted_by_for_top_anonymous_type.  */
+   if (DECL_NAME (value) != NULL_TREE
+       && declspecs->typespec_kind == ctsk_tagdef)
+     verify_counted_by_for_top_anonymous_type (declspecs->type);
+ 
    finish_decl (value, loc, NULL_TREE, NULL_TREE, NULL_TREE);
    DECL_INITIAL (value) = width;
    if (width)
*************** warn_cxx_compat_finish_struct (tree fiel
*** 9275,9283 ****
  	      && tset.contains (DECL_NAME (x)))
  	    {
  	      warning_at (DECL_SOURCE_LOCATION (x), OPT_Wc___compat,
! 			  ("using %qD as both field and typedef name is "
! 			   "invalid in C++"),
! 			  x);
  	      /* FIXME: It would be nice to report the location where
  		 the typedef name is used.  */
  	    }
--- 9330,9337 ----
  	      && tset.contains (DECL_NAME (x)))
  	    {
  	      warning_at (DECL_SOURCE_LOCATION (x), OPT_Wc___compat,
! 			  "using %qD as both field and typedef name is "
! 			  "invalid in C++", x);
  	      /* FIXME: It would be nice to report the location where
  		 the typedef name is used.  */
  	    }
*************** c_update_type_canonical (tree t)
*** 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.  */
  
--- 9502,9611 ----
      }
  }
  
! 
! /* We set C_TYPE_VARIABLY_MODIFIED for derived types.  We will not update
!    array types, pointers to array types, function types and other derived
!    types created while the type was still incomplete.  We need to update
!    at least all types for which TYPE_CANONICAL will bet set, because for
!    those we later assume (in c_variably_modified_p) that the bit is
!    up-to-date.  */
  
  static void
! c_update_variably_modified (tree t)
  {
!   for (tree x = t; x; x = TYPE_NEXT_VARIANT (x))
!     {
!       C_TYPE_VARIABLY_MODIFIED (x) = 1;
!       for (tree p = TYPE_POINTER_TO (x); p; p = TYPE_NEXT_PTR_TO (p))
! 	c_update_variably_modified (p);
!     }
! }
  
  
! /* Verify the argument of the counted_by attribute of each field of
!    the containing structure, OUTMOST_STRUCT_TYPE, including its inner
!    anonymous struct/union, Report error and remove the corresponding
!    attribute when it's not.  */
  
! static void
! verify_counted_by_attribute (tree outmost_struct_type,
! 			     tree cur_struct_type)
! {
!   for (tree field = TYPE_FIELDS (cur_struct_type); field;
!        field = TREE_CHAIN (field))
!     {
!       if (c_flexible_array_member_type_p (TREE_TYPE (field))
! 	   || TREE_CODE (TREE_TYPE (field)) == POINTER_TYPE)
! 	{
! 	  tree attr_counted_by = lookup_attribute ("counted_by",
! 						   DECL_ATTRIBUTES (field));
  
! 	  if (!attr_counted_by)
! 	    continue;
  
! 	  /* 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 (outmost_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),
  		    "argument %qE to the %<counted_by%> attribute"
! 		    " is not a field declaration in the same structure"
! 		    " as %qD", fieldname, field);
! 	      DECL_ATTRIBUTES (field)
! 		= remove_attribute ("counted_by", DECL_ATTRIBUTES (field));
! 	    }
! 	  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),
! 			"argument %qE to the %<counted_by%> attribute"
! 			" is not a field declaration with an integer type",
! 			fieldname);
! 		  DECL_ATTRIBUTES (field)
! 		    = remove_attribute ("counted_by",
! 				    DECL_ATTRIBUTES (field));
! 		}
! 	    }
  	}
+       else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (field))
+ 	       && (DECL_NAME (field) == NULL_TREE))
+ 	verify_counted_by_attribute (outmost_struct_type, TREE_TYPE (field));
      }
  }
  
+ /* Caller should make sure the TYPE is a top-level type (i.e. not being
+    nested in other structure/uniona). For such type, verify its counted_by
+    if it is an anonymous structure/union.  */
+ 
+ void
+ verify_counted_by_for_top_anonymous_type (tree type)
+ {
+   if (!RECORD_OR_UNION_TYPE_P (type))
+     return;
+ 
+   if (C_TYPE_FIELDS_HAS_COUNTED_BY (type)
+       && c_type_tag (type) == NULL_TREE)
+     verify_counted_by_attribute (type, type);
+ }
+ 
  /* 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
*** 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.
--- 9677,9682 ----
*************** finish_struct (location_t loc, tree t, t
*** 9617,9623 ****
  	C_TYPE_VARIABLE_SIZE (t) = 1;
  
        /* If any field is variably modified, record this fact. */
!       if (C_TYPE_VARIABLY_MODIFIED (TREE_TYPE (x)))
  	C_TYPE_VARIABLY_MODIFIED (t) = 1;
  
        if (DECL_C_BIT_FIELD (x))
--- 9721,9727 ----
  	C_TYPE_VARIABLE_SIZE (t) = 1;
  
        /* If any field is variably modified, record this fact. */
!       if (c_type_variably_modified_p (TREE_TYPE (x)))
  	C_TYPE_VARIABLY_MODIFIED (t) = 1;
  
        if (DECL_C_BIT_FIELD (x))
*************** finish_struct (location_t loc, tree t, t
*** 9648,9661 ****
  	    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
  	  && flexible_array_type_p (TREE_TYPE (x)))
  	pedwarn (DECL_SOURCE_LOCATION (x), OPT_Wpedantic,
--- 9752,9774 ----
  	    pedwarn (DECL_SOURCE_LOCATION (x), OPT_Wpedantic,
  		     "flexible array member in a struct with no named "
  		     "members is a GCC extension");
  	  if (lookup_attribute ("counted_by", DECL_ATTRIBUTES (x)))
! 	    C_TYPE_FIELDS_HAS_COUNTED_BY (t) = 1;
  	}
  
+       if (TREE_CODE (TREE_TYPE (x)) == POINTER_TYPE
+ 	  && lookup_attribute ("counted_by", DECL_ATTRIBUTES (x)))
+ 	C_TYPE_FIELDS_HAS_COUNTED_BY (t) = 1;
+ 
+       /* If the field is an anonymous structure that includes a field
+ 	 with counted_by attribute, this structure should also be marked
+ 	 too.  */
+       if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (x))
+ 	  && C_TYPE_FIELDS_HAS_COUNTED_BY (TREE_TYPE (x))
+ 	  && DECL_NAME (x) == NULL_TREE
+ 	  && c_type_tag (TREE_TYPE (x)) == NULL_TREE)
+ 	C_TYPE_FIELDS_HAS_COUNTED_BY (t) = 1;
+ 
        if (pedantic && TREE_CODE (t) == RECORD_TYPE
  	  && flexible_array_type_p (TREE_TYPE (x)))
  	pedwarn (DECL_SOURCE_LOCATION (x), OPT_Wpedantic,
*************** finish_struct (location_t loc, tree t, t
*** 9724,9729 ****
--- 9837,9849 ----
  	  unsigned HOST_WIDE_INT width
  	    = tree_to_uhwi (DECL_INITIAL (field));
  	  tree type = TREE_TYPE (field);
+ 	  if (VECTOR_TYPE_P (type))
+ 	    {
+ 	      error_at (DECL_SOURCE_LOCATION (field),
+ 			"bit-field %qD has invalid type", field);
+ 	      type = TREE_TYPE (type);
+ 	      TREE_TYPE (field) = type;
+ 	    }
  	  if (width != TYPE_PRECISION (type))
  	    {
  	      if (TREE_CODE (type) == BITINT_TYPE
*************** finish_struct (location_t loc, tree t, t
*** 9806,9817 ****
  	len += list_length (x);
  
  	/* Use the same allocation policy here that make_node uses, to
! 	  ensure that this lives as long as the rest of the struct decl.
! 	  All decls in an inline function need to be saved.  */
  
! 	space = ggc_cleared_alloc<struct lang_type> ();
! 	space2 = (sorted_fields_type *) ggc_internal_alloc
! 	  (sizeof (struct sorted_fields_type) + len * sizeof (tree));
  
  	len = 0;
  	space->s = space2;
--- 9926,9942 ----
  	len += list_length (x);
  
  	/* Use the same allocation policy here that make_node uses, to
! 	   ensure that this lives as long as the rest of the struct decl.
! 	   All decls in an inline function need to be saved.  */
  
! 	space = ((struct lang_type *)
! 		 ggc_internal_cleared_alloc (c_dialect_objc ()
! 					     ? sizeof (struct lang_type)
! 					     : offsetof (struct lang_type,
! 							 info)));
! 	space2 = ((sorted_fields_type *)
! 		  ggc_internal_alloc (sizeof (struct sorted_fields_type)
! 				      + len * sizeof (tree)));
  
  	len = 0;
  	space->s = space2;
*************** finish_struct (location_t loc, tree t, t
*** 9890,9899 ****
  
        tree *e = c_struct_htab->find_slot_with_hash (t, hash, INSERT);
        if (*e)
! 	TYPE_CANONICAL (t) = *e;
        else
  	{
! 	  TYPE_CANONICAL (t) = t;
  	  *e = t;
  	}
        c_update_type_canonical (t);
--- 10015,10024 ----
  
        tree *e = c_struct_htab->find_slot_with_hash (t, hash, INSERT);
        if (*e)
! 	TYPE_CANONICAL (t) = TYPE_CANONICAL (*e);
        else
  	{
! 	  TYPE_CANONICAL (t) = c_type_canonical (t);
  	  *e = t;
  	}
        c_update_type_canonical (t);
*************** finish_struct (location_t loc, tree t, t
*** 9909,9914 ****
--- 10034,10040 ----
        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);
+       C_TYPE_FIELDS_HAS_COUNTED_BY (x) = C_TYPE_FIELDS_HAS_COUNTED_BY (t);
        C_TYPE_VARIABLE_SIZE (x) = C_TYPE_VARIABLE_SIZE (t);
        C_TYPE_VARIABLY_MODIFIED (x) = C_TYPE_VARIABLY_MODIFIED (t);
        C_TYPE_INCOMPLETE_VARS (x) = NULL_TREE;
*************** finish_struct (location_t loc, tree t, t
*** 9925,9936 ****
  
    finish_incomplete_vars (incomplete_vars, toplevel);
  
!   /* Make sure a DECL_EXPR is created for structs with VLA members.
!      Because we do not know the context, we always pass expr
!      to force creation of a BIND_EXPR which is required in some
!      contexts.  */
    if (c_type_variably_modified_p (t))
!     add_decl_expr (loc, t, expr, false);
  
    if (warn_cxx_compat)
      warn_cxx_compat_finish_struct (fieldlist, TREE_CODE (t), loc);
--- 10051,10066 ----
  
    finish_incomplete_vars (incomplete_vars, toplevel);
  
! 
    if (c_type_variably_modified_p (t))
!     {
!       c_update_variably_modified (t);
!       /* Make sure a DECL_EXPR is created for structs with VLA members.
! 	 Because we do not know the context, we always pass expr
! 	 to force creation of a BIND_EXPR which is required in some
! 	 contexts.  */
!       add_decl_expr (loc, t, expr, false);
!     }
  
    if (warn_cxx_compat)
      warn_cxx_compat_finish_struct (fieldlist, TREE_CODE (t), loc);
*************** finish_struct (location_t loc, tree t, t
*** 9945,9956 ****
  	 struct_types.  */
        if (warn_cxx_compat
  	  && struct_parse_info != NULL
! 	  && !in_sizeof && !in_typeof && !in_alignof)
  	struct_parse_info->struct_types.safe_push (t);
       }
  
!   if (counted_by_fam_field)
!     verify_counted_by_attribute (t, counted_by_fam_field);
  
    return t;
  }
--- 10075,10088 ----
  	 struct_types.  */
        if (warn_cxx_compat
  	  && struct_parse_info != NULL
! 	  && !in_sizeof && !in_typeof && !in_alignof && !in_countof)
  	struct_parse_info->struct_types.safe_push (t);
       }
  
!   /* Only when the enclosing struct/union type is not anonymous, do more
!      verification on the fields with counted_by attributes.  */
!   if (C_TYPE_FIELDS_HAS_COUNTED_BY (t) && c_type_tag (t) != NULL_TREE)
!     verify_counted_by_attribute (t, t);
  
    return t;
  }
*************** start_enum (location_t loc, struct c_enu
*** 10119,10130 ****
    /* FIXME: This will issue a warning for a use of a type defined
       within sizeof in a statement expr.  This is not terribly serious
       as C++ doesn't permit statement exprs within sizeof anyhow.  */
!   if (warn_cxx_compat && (in_sizeof || in_typeof || in_alignof))
      warning_at (loc, OPT_Wc___compat,
  		"defining type in %qs expression is invalid in C++",
! 		(in_sizeof
! 		 ? "sizeof"
! 		 : (in_typeof ? "typeof" : "alignof")));
  
    if (in_underspecified_init)
      error_at (loc, "%qT defined in underspecified object initializer",
--- 10251,10264 ----
    /* FIXME: This will issue a warning for a use of a type defined
       within sizeof in a statement expr.  This is not terribly serious
       as C++ doesn't permit statement exprs within sizeof anyhow.  */
!   if (warn_cxx_compat
!       && (in_sizeof || in_typeof || in_alignof || in_countof))
      warning_at (loc, OPT_Wc___compat,
  		"defining type in %qs expression is invalid in C++",
! 		(in_sizeof ? "sizeof"
! 		 : in_typeof ? "typeof"
! 		 : in_alignof ? "alignof"
! 		 : "_Countof"));
  
    if (in_underspecified_init)
      error_at (loc, "%qT defined in underspecified object initializer",
*************** finish_enum (tree enumtype, tree values,
*** 10283,10289 ****
  
    /* Record the min/max values so that we can warn about bit-field
       enumerations that are too small for the values.  */
!   lt = ggc_cleared_alloc<struct lang_type> ();
    lt->enum_min = minnode;
    lt->enum_max = maxnode;
    TYPE_LANG_SPECIFIC (enumtype) = lt;
--- 10417,10426 ----
  
    /* Record the min/max values so that we can warn about bit-field
       enumerations that are too small for the values.  */
!   lt = ((struct lang_type *)
! 	ggc_internal_cleared_alloc (c_dialect_objc ()
! 				    ? sizeof (struct lang_type)
! 				    : offsetof (struct lang_type, info)));
    lt->enum_min = minnode;
    lt->enum_max = maxnode;
    TYPE_LANG_SPECIFIC (enumtype) = lt;
*************** finish_enum (tree enumtype, tree values,
*** 10307,10312 ****
--- 10444,10450 ----
        TYPE_UNSIGNED (tem) = TYPE_UNSIGNED (enumtype);
        TYPE_LANG_SPECIFIC (tem) = TYPE_LANG_SPECIFIC (enumtype);
        ENUM_UNDERLYING_TYPE (tem) = ENUM_UNDERLYING_TYPE (enumtype);
+       TYPE_PACKED (tem) = TYPE_PACKED (enumtype);
      }
  
    /* Finish debugging output for this type.  */
*************** finish_enum (tree enumtype, tree values,
*** 10318,10324 ****
       struct_types.  */
    if (warn_cxx_compat
        && struct_parse_info != NULL
!       && !in_sizeof && !in_typeof && !in_alignof)
      struct_parse_info->struct_types.safe_push (enumtype);
  
    /* Check for consistency with previous definition */
--- 10456,10462 ----
       struct_types.  */
    if (warn_cxx_compat
        && struct_parse_info != NULL
!       && !in_sizeof && !in_typeof && !in_alignof && !in_countof)
      struct_parse_info->struct_types.safe_push (enumtype);
  
    /* Check for consistency with previous definition */
*************** build_enumerator (location_t decl_loc, l
*** 10452,10460 ****
  	   overflows.)  */
  	warned_range = pedwarn (loc, OPT_Wpedantic,
  				"enumerator value outside the range of %qs",
! 				(TYPE_UNSIGNED (TREE_TYPE (value))
! 				 ? "uintmax_t"
! 				 : "intmax_t"));
        if (!warned_range && !int_fits_type_p (value, integer_type_node))
  	pedwarn_c11 (loc, OPT_Wpedantic,
  		     "ISO C restricts enumerator values to range of %<int%> "
--- 10590,10598 ----
  	   overflows.)  */
  	warned_range = pedwarn (loc, OPT_Wpedantic,
  				"enumerator value outside the range of %qs",
! 				TYPE_UNSIGNED (TREE_TYPE (value))
! 				? "uintmax_t"
! 				: "intmax_t");
        if (!warned_range && !int_fits_type_p (value, integer_type_node))
  	pedwarn_c11 (loc, OPT_Wpedantic,
  		     "ISO C restricts enumerator values to range of %<int%> "
*************** start_function (struct c_declspecs *decl
*** 10719,10725 ****
        tree newrt = TREE_TYPE (newtype);
        if (old_decl != NULL_TREE
  	  && TREE_CODE (oldtype) == FUNCTION_TYPE
! 	  && comptypes (oldrt, newrt))
  	{
  	  if (stdarg_p (oldtype))
  	    {
--- 10857,10864 ----
        tree newrt = TREE_TYPE (newtype);
        if (old_decl != NULL_TREE
  	  && TREE_CODE (oldtype) == FUNCTION_TYPE
! 	  && comptypes (oldrt, newrt)
! 	  && !TYPE_NO_NAMED_ARGS_STDARG_P (oldtype))
  	{
  	  if (stdarg_p (oldtype))
  	    {
*************** start_function (struct c_declspecs *decl
*** 10862,10868 ****
    if (old_decl)
      {
        location_t origloc = DECL_SOURCE_LOCATION (old_decl);
!       warn_parm_array_mismatch (origloc, old_decl, parms);
      }
  
    /* Record the decl so that the function name is defined.
--- 11001,11018 ----
    if (old_decl)
      {
        location_t origloc = DECL_SOURCE_LOCATION (old_decl);
!       warn_parms_array_mismatch (origloc, old_decl, parms);
!     }
! 
!   /* To enable versions to be created across TU's we mark and mangle all
!      non-default versioned functions.  */
!   if (TREE_CODE (decl1) == FUNCTION_DECL
!       && !TARGET_HAS_FMV_TARGET_ATTRIBUTE
!       && get_target_version (decl1).is_valid ())
!     {
!       maybe_mark_function_versioned (decl1);
!       if (current_scope != file_scope)
! 	error ("versioned definitions are only allowed at file scope");
      }
  
    /* Record the decl so that the function name is defined.
*************** store_parm_decls_oldstyle (tree fndecl,
*** 11183,11195 ****
  		     useful for argument types like uid_t.  */
  		  DECL_ARG_TYPE (parm) = TREE_TYPE (parm);
  
- 		  if (targetm.calls.promote_prototypes (TREE_TYPE (current_function_decl))
- 		      && INTEGRAL_TYPE_P (TREE_TYPE (parm))
- 		      && (TYPE_PRECISION (TREE_TYPE (parm))
- 			  < TYPE_PRECISION (integer_type_node)))
- 		    DECL_ARG_TYPE (parm)
- 		      = c_type_promotes_to (TREE_TYPE (parm));
- 
  		  /* ??? Is it possible to get here with a
  		     built-in prototype or will it always have
  		     been diagnosed as conflicting with an
--- 11333,11338 ----
*************** finish_function (location_t end_loc)
*** 11417,11435 ****
    if (c_dialect_objc ())
      objc_finish_function ();
  
-   if (TREE_CODE (fndecl) == FUNCTION_DECL
-       && targetm.calls.promote_prototypes (TREE_TYPE (fndecl)))
-     {
-       tree args = DECL_ARGUMENTS (fndecl);
-       for (; args; args = DECL_CHAIN (args))
- 	{
- 	  tree type = TREE_TYPE (args);
- 	  if (INTEGRAL_TYPE_P (type)
- 	      && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
- 	    DECL_ARG_TYPE (args) = c_type_promotes_to (type);
- 	}
-     }
- 
    if (DECL_INITIAL (fndecl) && DECL_INITIAL (fndecl) != error_mark_node)
      BLOCK_SUPERCONTEXT (DECL_INITIAL (fndecl)) = fndecl;
  
--- 11560,11565 ----
*************** finish_function (location_t end_loc)
*** 11490,11498 ****
  	    && !DECL_READ_P (decl)
  	    && DECL_NAME (decl)
  	    && !DECL_ARTIFICIAL (decl)
! 	    && !warning_suppressed_p (decl, OPT_Wunused_but_set_parameter))
  	  warning_at (DECL_SOURCE_LOCATION (decl),
! 		      OPT_Wunused_but_set_parameter,
  		      "parameter %qD set but not used", decl);
      }
  
--- 11620,11628 ----
  	    && !DECL_READ_P (decl)
  	    && DECL_NAME (decl)
  	    && !DECL_ARTIFICIAL (decl)
! 	    && !warning_suppressed_p (decl, OPT_Wunused_but_set_parameter_))
  	  warning_at (DECL_SOURCE_LOCATION (decl),
! 		      OPT_Wunused_but_set_parameter_,
  		      "parameter %qD set but not used", decl);
      }
  
*************** declspecs_add_type (location_t loc, stru
*** 12096,12103 ****
  		  if (specs->typespec_word == cts_double)
  		    {
  		      error_at (loc,
! 				("both %<long long%> and %<double%> in "
! 				 "declaration specifiers"));
  		      break;
  		    }
  		  pedwarn_c90 (loc, OPT_Wlong_long,
--- 12226,12233 ----
  		  if (specs->typespec_word == cts_double)
  		    {
  		      error_at (loc,
! 				"both %qs and %qs in declaration specifiers",
! 				"long long", "double");
  		      break;
  		    }
  		  pedwarn_c90 (loc, OPT_Wlong_long,
*************** declspecs_add_type (location_t loc, stru
*** 12108,12168 ****
  		}
  	      if (specs->short_p)
  		error_at (loc,
! 			  ("both %<long%> and %<short%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<long%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<long%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_int_n)
  		error_at (loc,
! 			  ("both %<long%> and %<__int%d%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<long%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  ("both %<long%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  ("both %<long%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  ("both %<long%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  ("both %<long%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  ("both %<long%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<long%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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;
--- 12238,12297 ----
  		}
  	      if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "short");
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "void");
  	      else if (specs->typespec_word == cts_int_n)
  		error_at (loc,
! 			  "both %qs and %<__int%d%> in declaration specifiers",
! 			  "long", int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Bool");
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_BitInt");
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "char");
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "float");
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "long",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Decimal64x");
  	      else
  		{
  		  specs->long_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12173,12237 ****
  	      dupe = specs->short_p;
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<short%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<short%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<short%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_int_n)
  		error_at (loc,
! 			  ("both %<short%> and %<__int%d%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<short%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  ("both %<short%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  ("both %<short%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  ("both %<short%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  ("both %<short%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  ("both %<short%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
                  error_at (loc,
! 			  ("both %<short%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<short%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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;
--- 12302,12365 ----
  	      dupe = specs->short_p;
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "short");
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "void");
  	      else if (specs->typespec_word == cts_int_n)
  		error_at (loc,
! 			  "both %qs and %<__int%d%> in declaration specifiers",
! 			  "short", int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Bool");
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_BitInt");
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "char");
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "float");
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "double");
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "short",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->typespec_word == cts_dfloat32)
                  error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Decimal64x");
  	      else
  		{
  		  specs->short_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12242,12293 ****
  	      dupe = specs->signed_p;
  	      if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<unsigned%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<signed%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<signed%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  ("both %<signed%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  ("both %<signed%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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;
--- 12370,12421 ----
  	      dupe = specs->signed_p;
  	      if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "unsigned");
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "void");
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Bool");
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "float");
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "double");
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "signed",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Decimal64x");
  	      else
  		{
  		  specs->signed_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12298,12349 ****
  	      dupe = specs->unsigned_p;
  	      if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<unsigned%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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;
--- 12426,12477 ----
  	      dupe = specs->unsigned_p;
  	      if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "unsigned");
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "void");
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Bool");
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "float");
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "double");
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "unsigned",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Decimal64x");
  	      else
  		{
  		  specs->unsigned_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12357,12404 ****
  			     "ISO C90 does not support complex types");
  	      if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<complex%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<complex%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  ("both %<complex%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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 "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_accum)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Accum%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Sat%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->complex_p = true;
--- 12485,12532 ----
  			     "ISO C90 does not support complex types");
  	      if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "void");
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Bool");
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_BitInt");
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Decimal64x");
  	      else if (specs->typespec_word == cts_fract)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Fract");
  	      else if (specs->typespec_word == cts_accum)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Accum");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Sat");
  	      else
  		{
  		  specs->complex_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12410,12481 ****
  	      pedwarn (loc, OPT_Wpedantic,
  		       "ISO C does not support saturating types");
  	      if (specs->typespec_word == cts_int_n)
! 	        {
! 		  error_at (loc,
! 			    ("both %<_Sat%> and %<__int%d%> in "
! 			     "declaration specifiers"),
! 			    int_n_data[specs->u.int_n_idx].bitsize);
! 	        }
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_int)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<int%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Decimal32%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Decimal64%> in "
! 			   "declaration specifiers"));
  	      else if (specs->typespec_word == cts_dfloat128)
  		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 "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->saturating_p = true;
--- 12538,12606 ----
  	      pedwarn (loc, OPT_Wpedantic,
  		       "ISO C does not support saturating types");
  	      if (specs->typespec_word == cts_int_n)
! 		error_at (loc,
! 			  "both %qs and %<__int%d%> in declaration specifiers",
! 			  "_Sat", int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->typespec_word == cts_auto_type)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "__auto_type");
  	      else if (specs->typespec_word == cts_void)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "void");
  	      else if (specs->typespec_word == cts_bool)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Bool");
  	      else if (specs->typespec_word == cts_bitint)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_BitInt");
  	      else if (specs->typespec_word == cts_char)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "char");
  	      else if (specs->typespec_word == cts_int)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "int");
  	      else if (specs->typespec_word == cts_float)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "float");
  	      else if (specs->typespec_word == cts_double)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "double");
  	      else if (specs->typespec_word == cts_floatn_nx)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "_Sat",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
                else if (specs->typespec_word == cts_dfloat32)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Decimal32");
  	      else if (specs->typespec_word == cts_dfloat64)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Decimal64");
  	      else if (specs->typespec_word == cts_dfloat128)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Decimal128");
  	      else if (specs->typespec_word == cts_dfloat64x)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Decimal64x");
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "complex");
  	      else
  		{
  		  specs->saturating_p = true;
*************** declspecs_add_type (location_t loc, stru
*** 12522,12549 ****
  	    case RID_AUTO_TYPE:
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  ("both %<complex%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<__auto_type%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_auto_type;
--- 12647,12674 ----
  	    case RID_AUTO_TYPE:
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "__auto_type");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "__auto_type");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "__auto_type");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "__auto_type");
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "__auto_type");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "__auto_type");
  	      else
  		{
  		  specs->typespec_word = cts_auto_type;
*************** declspecs_add_type (location_t loc, stru
*** 12566,12584 ****
  
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<__int%d%> and %<long%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<__int%d%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<__int%d%> and %<short%> in "
! 			   "declaration specifiers"),
! 			  int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (! int_n_enabled_p[specs->u.int_n_idx])
  		{
  		  specs->typespec_word = cts_int_n;
--- 12691,12706 ----
  
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %<__int%d%> and %qs in declaration specifiers",
! 			  int_n_data[specs->u.int_n_idx].bitsize, "long");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %<__int%d%> in declaration specifiers",
! 			  "_Sat", int_n_data[specs->u.int_n_idx].bitsize);
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %<__int%d%> and %qs in declaration specifiers",
! 			  int_n_data[specs->u.int_n_idx].bitsize, "short");
  	      else if (! int_n_enabled_p[specs->u.int_n_idx])
  		{
  		  specs->typespec_word = cts_int_n;
*************** declspecs_add_type (location_t loc, stru
*** 12595,12622 ****
  	    case RID_VOID:
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  ("both %<complex%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<void%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_void;
--- 12717,12744 ----
  	    case RID_VOID:
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "void");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "void");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "void");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "void");
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "void");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "void");
  	      else
  		{
  		  specs->typespec_word = cts_void;
*************** declspecs_add_type (location_t loc, stru
*** 12629,12656 ****
  			     "ISO C90 does not support boolean types");
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  ("both %<complex%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Bool%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_bool;
--- 12751,12778 ----
  			     "ISO C90 does not support boolean types");
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_Bool");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_Bool");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "_Bool");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "_Bool");
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_Bool");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_Bool");
  	      else
  		{
  		  specs->typespec_word = cts_bool;
*************** declspecs_add_type (location_t loc, stru
*** 12660,12675 ****
  	    case RID_CHAR:
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<char%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_char;
--- 12782,12797 ----
  	    case RID_CHAR:
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "char");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "char");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "char");
  	      else
  		{
  		  specs->typespec_word = cts_char;
*************** declspecs_add_type (location_t loc, stru
*** 12679,12686 ****
  	    case RID_INT:
  	      if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<int%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_int;
--- 12801,12808 ----
  	    case RID_INT:
  	      if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "int");
  	      else
  		{
  		  specs->typespec_word = cts_int;
*************** declspecs_add_type (location_t loc, stru
*** 12690,12713 ****
  	    case RID_FLOAT:
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<float%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_float;
--- 12812,12835 ----
  	    case RID_FLOAT:
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "float");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "float");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "float");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "float");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "float");
  	      else
  		{
  		  specs->typespec_word = cts_float;
*************** declspecs_add_type (location_t loc, stru
*** 12717,12740 ****
  	    case RID_DOUBLE:
  	      if (specs->long_long_p)
  		error_at (loc,
! 			  ("both %<long long%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<double%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_double;
--- 12839,12862 ----
  	    case RID_DOUBLE:
  	      if (specs->long_long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long long", "double");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "double");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "signed", "double");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "unsigned", "double");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "double");
  	      else
  		{
  		  specs->typespec_word = cts_double;
*************** declspecs_add_type (location_t loc, stru
*** 12748,12806 ****
  			     "ISO C does not support the %<_Float%d%s%> type"
  			     " before C23",
  			     floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			     (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			      ? "x"
! 			      : ""));
  
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  ("both %<signed%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  ("both %<unsigned%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_Float%d%s%> in "
! 			   "declaration specifiers"),
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			   ? "x"
! 			   : ""));
  	      else if (FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx) == NULL_TREE)
  		{
  		  specs->typespec_word = cts_floatn_nx;
  		  error_at (loc,
  			    "%<_Float%d%s%> is not supported on this target",
  			    floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			    (floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			     ? "x"
! 			     : ""));
  		}
  	      else
  		{
--- 12870,12928 ----
  			     "ISO C does not support the %<_Float%d%s%> type"
  			     " before C23",
  			     floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			     floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			     ? "x"
! 			     : "");
  
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "long",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "short",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->signed_p)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "signed",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->unsigned_p)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "unsigned",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %<_Float%d%s%> in declaration "
! 			  "specifiers", "_Sat",
  			  floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			  floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			  ? "x"
! 			  : "");
  	      else if (FLOATN_NX_TYPE_NODE (specs->u.floatn_nx_idx) == NULL_TREE)
  		{
  		  specs->typespec_word = cts_floatn_nx;
  		  error_at (loc,
  			    "%<_Float%d%s%> is not supported on this target",
  			    floatn_nx_types[specs->u.floatn_nx_idx].n,
! 			    floatn_nx_types[specs->u.floatn_nx_idx].extended
! 			    ? "x"
! 			    : "");
  		}
  	      else
  		{
*************** declspecs_add_type (location_t loc, stru
*** 12824,12862 ****
  		  str = "_Decimal64x";
  		if (specs->long_long_p)
  		  error_at (loc,
! 			    ("both %<long long%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		if (specs->long_p)
  		  error_at (loc,
! 			    ("both %<long%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		else if (specs->short_p)
  		  error_at (loc,
! 			    ("both %<short%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		else if (specs->signed_p)
  		  error_at (loc,
! 			    ("both %<signed%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		else if (specs->unsigned_p)
  		  error_at (loc,
! 			    ("both %<unsigned%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
                  else if (specs->complex_p)
                    error_at (loc,
! 			    ("both %<complex%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
                  else if (specs->saturating_p)
                    error_at (loc,
! 			    ("both %<_Sat%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		else if (i == RID_DFLOAT32)
  		  specs->typespec_word = cts_dfloat32;
  		else if (i == RID_DFLOAT64)
--- 12946,12977 ----
  		  str = "_Decimal64x";
  		if (specs->long_long_p)
  		  error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "long long", str);
  		if (specs->long_p)
  		  error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "long", str);
  		else if (specs->short_p)
  		  error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "short", str);
  		else if (specs->signed_p)
  		  error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "signed", str);
  		else if (specs->unsigned_p)
  		  error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "unsigned", str);
                  else if (specs->complex_p)
                    error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "complex", str);
                  else if (specs->saturating_p)
                    error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "_Sat", str);
  		else if (i == RID_DFLOAT32)
  		  specs->typespec_word = cts_dfloat32;
  		else if (i == RID_DFLOAT64)
*************** declspecs_add_type (location_t loc, stru
*** 12869,12876 ****
  	      }
  	      if (!targetm.decimal_float_supported_p ())
  		error_at (loc,
! 			  ("decimal floating-point not supported "
! 			   "for this target"));
  	      pedwarn_c11 (loc, OPT_Wpedantic,
  			   "ISO C does not support decimal floating-point "
  			   "before C23");
--- 12984,12991 ----
  	      }
  	      if (!targetm.decimal_float_supported_p ())
  		error_at (loc,
! 			  "decimal floating-point not supported "
! 			  "for this target");
  	      pedwarn_c11 (loc, OPT_Wpedantic,
  			   "ISO C does not support decimal floating-point "
  			   "before C23");
*************** declspecs_add_type (location_t loc, stru
*** 12885,12893 ****
  		  str = "_Accum";
                  if (specs->complex_p)
                    error_at (loc,
! 			    ("both %<complex%> and %qs in "
! 			     "declaration specifiers"),
! 			    str);
  		else if (i == RID_FRACT)
  		    specs->typespec_word = cts_fract;
  		else
--- 13000,13007 ----
  		  str = "_Accum";
                  if (specs->complex_p)
                    error_at (loc,
! 			    "both %qs and %qs in declaration specifiers",
! 			    "complex", str);
  		else if (i == RID_FRACT)
  		    specs->typespec_word = cts_fract;
  		else
*************** declspecs_add_type (location_t loc, stru
*** 12903,12922 ****
  	    case RID_BITINT:
  	      if (specs->long_p)
  		error_at (loc,
! 			  ("both %<long%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->short_p)
  		error_at (loc,
! 			  ("both %<short%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  ("both %<complex%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  ("both %<_Sat%> and %<_BitInt%> in "
! 			   "declaration specifiers"));
  	      else
  		{
  		  specs->typespec_word = cts_bitint;
--- 13017,13036 ----
  	    case RID_BITINT:
  	      if (specs->long_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "long", "_BitInt");
  	      else if (specs->short_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "short", "_BitInt");
  	      else if (specs->complex_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "complex", "_BitInt");
  	      else if (specs->saturating_p)
  		error_at (loc,
! 			  "both %qs and %qs in declaration specifiers",
! 			  "_Sat", "_BitInt");
  	      else
  		{
  		  specs->typespec_word = cts_bitint;
*************** declspecs_add_type (location_t loc, stru
*** 12978,12983 ****
--- 13092,13098 ----
        specs->type = TREE_TYPE (type);
        if (TREE_TYPE (type) != error_mark_node)
  	{
+ 	  mark_decl_used (type, false);
  	  specs->decl_attr = DECL_ATTRIBUTES (type);
  	  specs->typedef_p = true;
  	  specs->explicit_signed_p = C_TYPEDEF_EXPLICITLY_SIGNED (type);
*************** c_write_global_declarations_1 (tree glob
*** 13589,13613 ****
        if (TREE_CODE (decl) == FUNCTION_DECL
  	  && DECL_INITIAL (decl) == NULL_TREE
  	  && DECL_EXTERNAL (decl)
! 	  && !TREE_PUBLIC (decl))
  	{
  	  if (C_DECL_USED (decl))
  	    {
- 	      /* TODO: Add OPT_Wundefined-inline.  */
  	      if (pedwarn (input_location, 0, "%q+F used but never defined",
  			   decl))
! 		suppress_warning (decl /* OPT_Wundefined-inline.  */);
  	    }
  	  /* For -Wunused-function warn about unused static prototypes.  */
  	  else if (warn_unused_function
  		   && ! DECL_ARTIFICIAL (decl)
! 		   && ! warning_suppressed_p (decl, OPT_Wunused_function))
! 	    {
! 	      if (warning (OPT_Wunused_function,
! 			   "%q+F declared %<static%> but never defined",
! 			   decl))
! 		suppress_warning (decl, OPT_Wunused_function);
! 	    }
  	}
  
        wrapup_global_declaration_1 (decl);
--- 13704,13725 ----
        if (TREE_CODE (decl) == FUNCTION_DECL
  	  && DECL_INITIAL (decl) == NULL_TREE
  	  && DECL_EXTERNAL (decl)
! 	  && !TREE_PUBLIC (decl)
! 	  && !warning_suppressed_p (decl, OPT_Wunused))
  	{
  	  if (C_DECL_USED (decl))
  	    {
  	      if (pedwarn (input_location, 0, "%q+F used but never defined",
  			   decl))
! 		suppress_warning (decl, OPT_Wunused);
  	    }
  	  /* For -Wunused-function warn about unused static prototypes.  */
  	  else if (warn_unused_function
  		   && ! DECL_ARTIFICIAL (decl)
! 		   && warning (OPT_Wunused_function,
! 			       "%q+F declared %<static%> but never defined",
! 			       decl))
! 	    suppress_warning (decl, OPT_Wunused);
  	}
  
        wrapup_global_declaration_1 (decl);
*************** c_parse_final_cleanups (void)
*** 13731,13736 ****
--- 13843,13852 ----
      c_write_global_declarations_1 (BLOCK_VARS (DECL_INITIAL (t)));
    c_write_global_declarations_1 (BLOCK_VARS (ext_block));
  
+   /* Call this to set cpp_implicit_aliases_done on all nodes.  This is
+      important for function multiversioning aliases to get resolved.  */
+   symtab->process_same_body_aliases ();
+ 
    if (!in_lto_p)
      free_attr_access_data ();
  
*************** c_check_omp_declare_reduction_r (tree *t
*** 13861,13866 ****
--- 13977,14150 ----
    return NULL_TREE;
  }
  
+ /* Return identifier to look up for omp declare mapper.  */
+ 
+ tree
+ c_omp_mapper_id (tree mapper_id)
+ {
+   const char *p = NULL;
+ 
+   const char prefix[] = "omp declare mapper ";
+ 
+   if (mapper_id == NULL_TREE)
+     p = "<default>";
+   else if (TREE_CODE (mapper_id) == IDENTIFIER_NODE)
+     p = IDENTIFIER_POINTER (mapper_id);
+   else
+     return error_mark_node;
+ 
+   size_t lenp = sizeof (prefix);
+   size_t len = strlen (p);
+   char *name = XALLOCAVEC (char, lenp + len);
+   memcpy (name, prefix, lenp - 1);
+   memcpy (name + lenp - 1, p, len + 1);
+   return get_identifier (name);
+ }
+ 
+ /* Lookup MAPPER_ID in the current scope, or create an artificial
+    VAR_DECL, bind it into the current scope and return it.  */
+ 
+ tree
+ c_omp_mapper_decl (tree mapper_id)
+ {
+   struct c_binding *b = I_SYMBOL_BINDING (mapper_id);
+   if (b != NULL && B_IN_CURRENT_SCOPE (b))
+     return b->decl;
+ 
+   tree decl = build_decl (BUILTINS_LOCATION, VAR_DECL,
+ 			  mapper_id, integer_type_node);
+   DECL_ARTIFICIAL (decl) = 1;
+   DECL_EXTERNAL (decl) = 1;
+   TREE_STATIC (decl) = 1;
+   TREE_PUBLIC (decl) = 0;
+   bind (mapper_id, decl, current_scope, true, false, BUILTINS_LOCATION);
+   return decl;
+ }
+ 
+ /* Lookup MAPPER_ID in the first scope where it has entry for TYPE.  */
+ 
+ tree
+ c_omp_mapper_lookup (tree mapper_id, tree type)
+ {
+   if (!RECORD_OR_UNION_TYPE_P (type))
+     return NULL_TREE;
+ 
+   mapper_id = c_omp_mapper_id (mapper_id);
+ 
+   struct c_binding *b = I_SYMBOL_BINDING (mapper_id);
+   while (b)
+     {
+       tree t;
+       for (t = DECL_INITIAL (b->decl); t; t = TREE_CHAIN (t))
+ 	if (comptypes (TREE_PURPOSE (t), type))
+ 	  return TREE_VALUE (t);
+       b = b->shadowed;
+     }
+   return NULL_TREE;
+ }
+ 
+ /* For C, we record a pointer to the mapper itself without wrapping it in an
+    artificial function or similar.  So, just return it.  */
+ 
+ tree
+ c_omp_extract_mapper_directive (tree mapper)
+ {
+   return mapper;
+ }
+ 
+ /* For now we can handle singleton OMP_ARRAY_SECTIONs with custom mappers, but
+    nothing more complicated.  */
+ 
+ tree
+ c_omp_map_array_section (location_t loc, tree t)
+ {
+   tree low = TREE_OPERAND (t, 1);
+   tree len = TREE_OPERAND (t, 2);
+ 
+   if (len && integer_onep (len))
+     {
+       t = TREE_OPERAND (t, 0);
+ 
+       if (!low)
+ 	low = integer_zero_node;
+ 
+       t = build_array_ref (loc, t, low);
+     }
+ 
+   return t;
+ }
+ 
+ /* Helper function for below function.  */
+ 
+ static tree
+ c_omp_scan_mapper_bindings_r (tree *tp, int *walk_subtrees, void *ptr)
+ {
+   tree t = *tp;
+   omp_mapper_list<tree> *mlist = (omp_mapper_list<tree> *) ptr;
+   tree aggr_type = NULL_TREE;
+ 
+   if (TREE_CODE (t) == SIZEOF_EXPR
+       || TREE_CODE (t) == ALIGNOF_EXPR)
+     {
+       *walk_subtrees = 0;
+       return NULL_TREE;
+     }
+ 
+   if (TREE_CODE (t) == OMP_CLAUSE)
+     return NULL_TREE;
+ 
+   if (TREE_CODE (t) == COMPONENT_REF
+       && RECORD_OR_UNION_TYPE_P (TREE_TYPE (TREE_OPERAND (t, 0))))
+     aggr_type = TREE_TYPE (TREE_OPERAND (t, 0));
+   else if ((TREE_CODE (t) == VAR_DECL
+ 	    || TREE_CODE (t) == PARM_DECL
+ 	    || TREE_CODE (t) == RESULT_DECL)
+ 	   && RECORD_OR_UNION_TYPE_P (TREE_TYPE (t)))
+     aggr_type = TREE_TYPE (t);
+ 
+   if (aggr_type)
+     {
+       tree mapper_fn = c_omp_mapper_lookup (NULL_TREE, aggr_type);
+       if (mapper_fn)
+ 	mlist->add_mapper (NULL_TREE, aggr_type, mapper_fn);
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Scan an offload region's body, and record uses of struct- or union-typed
+    variables.  Add _mapper_binding_ fake clauses to *CLAUSES_PTR.  */
+ 
+ void
+ c_omp_scan_mapper_bindings (location_t loc, tree *clauses_ptr, tree body)
+ {
+   hash_set<omp_name_type<tree>> seen_types;
+   auto_vec<tree> mappers;
+   omp_mapper_list<tree> mlist (&seen_types, &mappers);
+ 
+   walk_tree_without_duplicates (&body, c_omp_scan_mapper_bindings_r, &mlist);
+ 
+   unsigned int i;
+   tree mapper;
+   FOR_EACH_VEC_ELT (mappers, i, mapper)
+     c_omp_find_nested_mappers (&mlist, mapper);
+ 
+   FOR_EACH_VEC_ELT (mappers, i, mapper)
+     {
+       if (mapper == error_mark_node)
+ 	continue;
+       tree mapper_name = OMP_DECLARE_MAPPER_ID (mapper);
+       tree decl = OMP_DECLARE_MAPPER_DECL (mapper);
+ 
+       tree c = build_omp_clause (loc, OMP_CLAUSE__MAPPER_BINDING_);
+       OMP_CLAUSE__MAPPER_BINDING__ID (c) = mapper_name;
+       OMP_CLAUSE__MAPPER_BINDING__DECL (c) = decl;
+       OMP_CLAUSE__MAPPER_BINDING__MAPPER (c) = mapper;
+ 
+       OMP_CLAUSE_CHAIN (c) = *clauses_ptr;
+       *clauses_ptr = c;
+     }
+ }
  
  bool
  c_check_in_current_scope (tree decl)
*************** c_get_loop_names (tree before_labels, bo
*** 13903,13909 ****
  	      ++ret;
  	    }
  	}
!       else if (TREE_CODE (stmt) != CASE_LABEL_EXPR)
  	break;
      }
    if (last)
--- 14187,14194 ----
  	      ++ret;
  	    }
  	}
!       else if (TREE_CODE (stmt) != CASE_LABEL_EXPR
! 	       && TREE_CODE (stmt) != DEBUG_BEGIN_STMT)
  	break;
      }
    if (last)
diff -Nrcpad gcc-15.2.0/gcc/c/c-errors.cc gcc-16.1.0-RC-20260423/gcc/c/c-errors.cc
*** gcc-15.2.0/gcc/c/c-errors.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-errors.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Various diagnostic subroutines for the GNU C language.
!    Copyright (C) 2000-2026 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.
*** 33,42 ****
  
  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);
--- 33,42 ----
  
  bool
  pedwarn_c23 (location_t location,
! 	     diagnostics::option_id option_id,
  	     const char *gmsgid, ...)
  {
!   diagnostics::diagnostic_info diagnostic;
    va_list ap;
    bool warned = false;
    rich_location richloc (line_table, location);
*************** pedwarn_c23 (location_t location,
*** 48,55 ****
      {
        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.  */
--- 48,56 ----
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc2y)
! 			   ? diagnostics::kind::pedwarn
! 			   : diagnostics::kind::warning);
!       diagnostic.m_option_id = OPT_Wc23_c2y_compat;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c23-c2y-compat suppresses even the pedwarns.  */
*************** pedwarn_c23 (location_t location,
*** 58,65 ****
    /* 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);
--- 59,67 ----
    /* For -pedantic outside C2Y, issue a pedwarn.  */
    else if (pedantic && !flag_isoc2y)
      {
!       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   diagnostics::kind::pedwarn);
!       diagnostic.m_option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
*************** pedwarn_c23 (location_t location,
*** 77,86 ****
  
  bool
  pedwarn_c11 (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);
--- 79,88 ----
  
  bool
  pedwarn_c11 (location_t location,
! 	     diagnostics::option_id option_id,
  	     const char *gmsgid, ...)
  {
!   diagnostics::diagnostic_info diagnostic;
    va_list ap;
    bool warned = false;
    rich_location richloc (line_table, location);
*************** pedwarn_c11 (location_t location,
*** 93,103 ****
      {
        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.  */
--- 95,106 ----
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc23)
! 			   ? diagnostics::kind::pedwarn
! 			   : diagnostics::kind::warning);
        if (option_id == OPT_Wpedantic)
! 	diagnostic.m_option_id = OPT_Wc11_c23_compat;
        else
! 	diagnostic.m_option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c11-c23-compat suppresses even the pedwarns.  */
*************** pedwarn_c11 (location_t location,
*** 106,113 ****
    /* For -pedantic outside C23, issue a pedwarn.  */
    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);
--- 109,117 ----
    /* For -pedantic outside C23, issue a pedwarn.  */
    else if (pedantic && !flag_isoc23)
      {
!       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   diagnostics::kind::pedwarn);
!       diagnostic.m_option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
*************** pedwarn_c11 (location_t location,
*** 122,131 ****
  
  bool
  pedwarn_c99 (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);
--- 126,135 ----
  
  bool
  pedwarn_c99 (location_t location,
! 	     diagnostics::option_id option_id,
  	     const char *gmsgid, ...)
  {
!   diagnostics::diagnostic_info diagnostic;
    va_list ap;
    bool warned = false;
    rich_location richloc (line_table, location);
*************** pedwarn_c99 (location_t location,
*** 137,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.  */
--- 141,149 ----
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc11)
! 			   ? diagnostics::kind::pedwarn
! 			   : diagnostics::kind::warning);
!       diagnostic.m_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,
*** 147,154 ****
    /* For -pedantic outside C11, issue a pedwarn.  */
    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);
--- 152,160 ----
    /* For -pedantic outside C11, issue a pedwarn.  */
    else if (pedantic && !flag_isoc11)
      {
!       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   diagnostics::kind::pedwarn);
!       diagnostic.m_option_id = option_id;
        warned = diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    va_end (ap);
*************** pedwarn_c99 (location_t location,
*** 164,173 ****
  
  bool
  pedwarn_c90 (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);
--- 170,179 ----
  
  bool
  pedwarn_c90 (location_t location,
! 	     diagnostics::option_id option_id,
  	     const char *gmsgid, ...)
  {
!   diagnostics::diagnostic_info diagnostic;
    va_list ap;
    bool warned = false;
    rich_location richloc (line_table, location);
*************** pedwarn_c90 (location_t location,
*** 183,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;
--- 189,197 ----
  	{
  	  diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			       (pedantic && !flag_isoc99)
! 			       ? diagnostics::kind::pedwarn
! 			       : diagnostics::kind::warning);
! 	  diagnostic.m_option_id = option_id;
  	  diagnostic_report_diagnostic (global_dc, &diagnostic);
  	  warned = true;
  	  goto out;
*************** pedwarn_c90 (location_t location,
*** 196,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.  */
--- 203,211 ----
      {
        diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
  			   (pedantic && !flag_isoc99)
! 			   ? diagnostics::kind::pedwarn
! 			   : diagnostics::kind::warning);
!       diagnostic.m_option_id = OPT_Wc90_c99_compat;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
      }
    /* -Wno-c90-c99-compat suppresses the pedwarns.  */
*************** pedwarn_c90 (location_t location,
*** 206,213 ****
    /* For -pedantic outside C99, issue a pedwarn.  */
    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;
      }
--- 214,222 ----
    /* For -pedantic outside C99, issue a pedwarn.  */
    else if (pedantic && !flag_isoc99)
      {
!       diagnostic_set_info (&diagnostic, gmsgid, &ap, &richloc,
! 			   diagnostics::kind::pedwarn);
!       diagnostic.m_option_id = option_id;
        diagnostic_report_diagnostic (global_dc, &diagnostic);
        warned = true;
      }
diff -Nrcpad gcc-15.2.0/gcc/c/c-fold.cc gcc-16.1.0-RC-20260423/gcc/c/c-fold.cc
*** gcc-15.2.0/gcc/c/c-fold.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-fold.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Support for fully folding sub-trees of an expression for C compiler.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_fully_fold_internal (tree expr, bool i
*** 369,375 ****
  			    || TREE_CODE (op1) != INTEGER_CST))
  	goto out;
  
!       if (op0 != orig_op0 || op1 != orig_op1 || in_init)
  	ret = in_init
  	  ? fold_build2_initializer_loc (loc, code, TREE_TYPE (expr), op0, op1)
  	  : fold_build2_loc (loc, code, TREE_TYPE (expr), op0, op1);
--- 369,393 ----
  			    || TREE_CODE (op1) != INTEGER_CST))
  	goto out;
  
!       if (TREE_CODE_CLASS (code) == tcc_comparison
! 	  && TREE_CODE (TREE_TYPE (op0)) == NULLPTR_TYPE
! 	  && TREE_CODE (TREE_TYPE (op1)) == NULLPTR_TYPE)
! 	{
! 	  switch (code)
! 	    {
! 	    case EQ_EXPR:
! 	      ret = constant_boolean_node (true, TREE_TYPE (expr));
! 	      break;
! 	    case NE_EXPR:
! 	      ret = constant_boolean_node (false, TREE_TYPE (expr));
! 	      break;
! 	    default:
! 	      gcc_unreachable ();
! 	    }
! 	  ret = omit_two_operands_loc (loc, TREE_TYPE (expr), ret,
! 				       op0, op1);
! 	}
!       else if (op0 != orig_op0 || op1 != orig_op1 || in_init)
  	ret = in_init
  	  ? fold_build2_initializer_loc (loc, code, TREE_TYPE (expr), op0, op1)
  	  : fold_build2_loc (loc, code, TREE_TYPE (expr), op0, op1);
diff -Nrcpad gcc-15.2.0/gcc/c/c-lang.cc gcc-16.1.0-RC-20260423/gcc/c/c-lang.cc
*** gcc-15.2.0/gcc/c/c-lang.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-lang.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Language-specific hook definitions for C front end.
!    Copyright (C) 1991-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c/c-lang.h gcc-16.1.0-RC-20260423/gcc/c/c-lang.h
*** gcc-15.2.0/gcc/c/c-lang.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-lang.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C language specific types.
!    Copyright (C) 2009-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** struct GTY(()) lang_type {
*** 35,44 ****
    /* In an ENUMERAL_TYPE, the min and max values.  */
    tree enum_min;
    tree enum_max;
!   /* In a RECORD_TYPE, information specific to Objective-C, such
!      as a list of adopted protocols or a pointer to a corresponding
!      @interface.  See objc/objc-act.h for details.  */
!   tree objc_info;
  };
  
  struct GTY(()) lang_decl {
--- 35,48 ----
    /* In an ENUMERAL_TYPE, the min and max values.  */
    tree enum_min;
    tree enum_max;
!   union maybe_objc_info {
!     /* If not c_dialect_objc, this part is not even allocated.  */
!     char GTY((tag ("0"))) non_objc;
!     /* In a RECORD_TYPE, information specific to Objective-C, such
!        as a list of adopted protocols or a pointer to a corresponding
!        @interface.  See objc/objc-act.h for details.  */
!     tree GTY((tag ("1"))) objc_info;
!   } GTY ((desc ("c_dialect_objc ()"))) info;
  };
  
  struct GTY(()) lang_decl {
*************** struct GTY(()) c_omp_begin_assumes_data
*** 72,77 ****
--- 76,86 ----
    bool attr_syntax;
  };
  
+ struct GTY(()) c_omp_declare_variant_attr {
+   bool attr_syntax;
+   tree selector;
+ };
+ 
  /* If non-empty, implicit "omp declare target" attribute is added into the
     attribute lists.  */
  extern GTY(()) vec<c_omp_declare_target_attr, va_gc>
*************** extern GTY(()) vec<c_omp_declare_target_
*** 80,84 ****
--- 89,96 ----
     #pragma omp end assumes (and how many times when nested).  */
  extern GTY(()) vec<c_omp_begin_assumes_data, va_gc>
    *current_omp_begin_assumes;
+ /* And similarly for #pragma omp begin/end declare variant.  */
+ extern GTY(()) vec<c_omp_declare_variant_attr, va_gc>
+   *current_omp_declare_variant_attribute;
  
  #endif /* ! GCC_C_LANG_H */
diff -Nrcpad gcc-15.2.0/gcc/c/c-objc-common.cc gcc-16.1.0-RC-20260423/gcc/c/c-objc-common.cc
*** gcc-15.2.0/gcc/c/c-objc-common.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-objc-common.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Some code common to C and ObjC front ends.
!    Copyright (C) 2001-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 23,28 ****
--- 23,29 ----
  #include "c-tree.h"
  #include "intl.h"
  #include "c-family/c-pretty-print.h"
+ #include "tree-core.h"
  #include "tree-pretty-print.h"
  #include "tree-pretty-print-markup.h"
  #include "gimple-pretty-print.h"
*************** along with GCC; see the file COPYING3.
*** 32,38 ****
  #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 &);
--- 33,38 ----
*************** get_aka_type (tree type)
*** 217,222 ****
--- 217,227 ----
  	  return canonical ? canonical : type;
  	}
      }
+   /* For tagged types ignore attributes because they will otherwise
+      be ignored later causing a warning inside diagnostics which leads
+      to an ICE.  */
+   if (RECORD_OR_UNION_TYPE_P (type) || TREE_CODE (type) == ENUMERAL_TYPE)
+     return build_qualified_type (result, TYPE_QUALS (type));
    return build_type_attribute_qual_variant (result, TYPE_ATTRIBUTES (type),
  					    TYPE_QUALS (type));
  }
*************** c_tree_printer (pretty_printer *pp, text
*** 355,360 ****
--- 360,370 ----
        if (DECL_NAME (t))
  	{
  	  pp_identifier (cpp, lang_hooks.decl_printable_name (t, 2));
+ 	  if (TREE_CODE (t) == FUNCTION_DECL)
+ 	    {
+ 	      pp_c_function_target_version (cpp, t);
+ 	      pp_c_function_target_clones (cpp, t);
+ 	    }
  	  return true;
  	}
        break;
*************** has_c_linkage (const_tree decl ATTRIBUTE
*** 410,418 ****
  }
  
  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);
  }
--- 420,428 ----
  }
  
  void
! c_initialize_diagnostics (diagnostics::context *context)
  {
!   context->set_pretty_printer (std::make_unique<c_pretty_printer> ());
    c_common_diagnostics_set_defaults (context);
    context->set_format_decoder (&c_tree_printer);
  }
*************** c_types_compatible_p (tree x, tree y)
*** 428,434 ****
  bool
  c_var_mod_p (tree x, tree fn ATTRIBUTE_UNUSED)
  {
!   return C_TYPE_VARIABLY_MODIFIED (x);
  }
  
  /* Special routine to get the alias set of T for C.  */
--- 438,444 ----
  bool
  c_var_mod_p (tree x, tree fn ATTRIBUTE_UNUSED)
  {
!   return c_type_variably_modified_p (x);
  }
  
  /* Special routine to get the alias set of T for C.  */
diff -Nrcpad gcc-15.2.0/gcc/c/c-objc-common.h gcc-16.1.0-RC-20260423/gcc/c/c-objc-common.h
*** gcc-15.2.0/gcc/c/c-objc-common.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-objc-common.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Language hooks common to C and ObjC front ends.
!    Copyright (C) 2004-2026 Free Software Foundation, Inc.
     Contributed by Ziemowit Laski  <zlaski@apple.com>
  
  This file is part of GCC.
*************** static const scoped_attribute_specs *con
*** 137,142 ****
--- 137,154 ----
  #undef LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP
  #define LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP c_omp_clause_copy_ctor
  
+ #undef LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES
+ #define LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES c_omp_finish_mapper_clauses
+ 
+ #undef LANG_HOOKS_OMP_MAPPER_LOOKUP
+ #define LANG_HOOKS_OMP_MAPPER_LOOKUP c_omp_mapper_lookup
+ 
+ #undef LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE
+ #define LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE c_omp_extract_mapper_directive
+ 
+ #undef LANG_HOOKS_OMP_MAP_ARRAY_SECTION
+ #define LANG_HOOKS_OMP_MAP_ARRAY_SECTION c_omp_map_array_section
+ 
  #undef LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P
  #define LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P c_var_mod_p
  #endif /* GCC_C_OBJC_COMMON */
diff -Nrcpad gcc-15.2.0/gcc/c/c-parser.cc gcc-16.1.0-RC-20260423/gcc/c/c-parser.cc
*** gcc-15.2.0/gcc/c/c-parser.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-parser.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Parser for C and Objective-C.
!    Copyright (C) 1987-2026 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.
*** 77,83 ****
  #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
--- 77,83 ----
  #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 GTY(()) omp_attribute_pragma_stat
*** 286,291 ****
--- 286,304 ----
    unsigned int save_tokens_avail;
  };
  
+ /* Holds data for deferred lookup of base functions for OpenMP
+    "begin declare variant", which are permitted to be declared after
+    the variant.  */
+ struct GTY(()) omp_begin_declare_variant_map_entry {
+   tree variant;		/* The variant decl.  */
+   tree id;		/* Name of base function.  */
+   tree ctx;		/* The context selector associated with the variant.  */
+ };
+ vec<omp_begin_declare_variant_map_entry, va_gc> *omp_begin_declare_variant_map;
+ 
+ static tree omp_start_variant_function (c_declarator *, tree);
+ static void omp_finish_variant_function (tree, tree, tree);
+ 
  /* Return a pointer to the Nth token in PARSERs tokens_buf.  */
  
  c_token *
*************** c_token_starts_typename (c_token *token)
*** 675,688 ****
      }
  }
  
! /* Return true if the next token from PARSER can start a type name,
!    false otherwise.  LA specifies how to do lookahead in order to
     detect unknown type names.  If unsure, pick CLA_PREFER_ID.  */
  
  static inline bool
! c_parser_next_tokens_start_typename (c_parser *parser, enum c_lookahead_kind la)
  {
!   c_token *token = c_parser_peek_token (parser);
    if (c_token_starts_typename (token))
      return true;
  
--- 688,702 ----
      }
  }
  
! /* Return true if the next token from PARSER, starting from token N, can start
!    a type name, false otherwise.  LA specifies how to do lookahead in order to
     detect unknown type names.  If unsure, pick CLA_PREFER_ID.  */
  
  static inline bool
! c_parser_next_tokens_start_typename (c_parser *parser, enum c_lookahead_kind la,
! 				     unsigned int n = 1)
  {
!   c_token *token = c_parser_peek_nth_token (parser, n);
    if (c_token_starts_typename (token))
      return true;
  
*************** c_parser_next_tokens_start_typename (c_p
*** 695,702 ****
        && !parser->objc_could_be_foreach_context
  
        && (la == cla_prefer_type
! 	  || c_parser_peek_2nd_token (parser)->type == CPP_NAME
! 	  || c_parser_peek_2nd_token (parser)->type == CPP_MULT)
  
        /* Only unknown identifiers.  */
        && !lookup_name (token->value))
--- 709,716 ----
        && !parser->objc_could_be_foreach_context
  
        && (la == cla_prefer_type
! 	  || c_parser_peek_nth_token (parser, n + 1)->type == CPP_NAME
! 	  || c_parser_peek_nth_token (parser, n + 1)->type == CPP_MULT)
  
        /* Only unknown identifiers.  */
        && !lookup_name (token->value))
*************** c_parser_next_token_starts_declspecs (c_
*** 892,921 ****
    return c_token_starts_declspecs (token);
  }
  
! /* Return true if the next tokens from PARSER can start declaration
!    specifiers (not including standard attributes) or a static
!    assertion, false otherwise.  */
  bool
! c_parser_next_tokens_start_declaration (c_parser *parser)
  {
!   c_token *token = c_parser_peek_token (parser);
  
    /* Same as above.  */
    if (c_dialect_objc ()
        && token->type == CPP_NAME
        && token->id_kind == C_ID_CLASSNAME
!       && c_parser_peek_2nd_token (parser)->type == CPP_DOT)
      return false;
  
    /* Labels do not start declarations.  */
    if (token->type == CPP_NAME
!       && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
      return false;
  
    if (c_token_starts_declaration (token))
      return true;
  
!   if (c_parser_next_tokens_start_typename (parser, cla_nonabstract_decl))
      return true;
  
    return false;
--- 906,952 ----
    return c_token_starts_declspecs (token);
  }
  
! static bool c_parser_check_balanced_raw_token_sequence (c_parser *,
! 							unsigned int *);
! 
! /* Return true if the next tokens from PARSER (starting with token N, 1-based)
!    can start declaration specifiers (not including standard attributes) or a
!    static assertion, false otherwise.  */
  bool
! c_parser_next_tokens_start_declaration (c_parser *parser, unsigned int n)
  {
!   c_token *token = c_parser_peek_nth_token (parser, n);
  
    /* Same as above.  */
    if (c_dialect_objc ()
        && token->type == CPP_NAME
        && token->id_kind == C_ID_CLASSNAME
!       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_DOT)
      return false;
  
    /* Labels do not start declarations.  */
    if (token->type == CPP_NAME
!       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_COLON)
      return false;
  
+   /* A static assertion is only a declaration if followed by a semicolon;
+      otherwise, it may be an expression in C2Y.  */
+   if (token->keyword == RID_STATIC_ASSERT
+       && c_parser_peek_nth_token (parser, n + 1)->type == CPP_OPEN_PAREN)
+     {
+       n += 2;
+       if (!c_parser_check_balanced_raw_token_sequence (parser, &n)
+ 	  || c_parser_peek_nth_token_raw (parser, n)->type != CPP_CLOSE_PAREN)
+ 	/* Invalid static assertion syntax; treat as a declaration and report a
+ 	   syntax error there.  */
+ 	return true;
+       return c_parser_peek_nth_token_raw (parser, n + 1)->type == CPP_SEMICOLON;
+     }
+ 
    if (c_token_starts_declaration (token))
      return true;
  
!   if (c_parser_next_tokens_start_typename (parser, cla_nonabstract_decl, n))
      return true;
  
    return false;
*************** c_parser_consume_token (c_parser *parser
*** 929,935 ****
    gcc_assert (parser->tokens_avail >= 1);
    gcc_assert (parser->tokens[0].type != CPP_EOF);
    gcc_assert (!parser->in_pragma || parser->tokens[0].type != CPP_PRAGMA_EOL);
!   gcc_assert (parser->error || parser->tokens[0].type != CPP_PRAGMA);
    parser->last_token_location = parser->tokens[0].location;
    if (parser->tokens != &parser->tokens_buf[0])
      parser->tokens++;
--- 960,970 ----
    gcc_assert (parser->tokens_avail >= 1);
    gcc_assert (parser->tokens[0].type != CPP_EOF);
    gcc_assert (!parser->in_pragma || parser->tokens[0].type != CPP_PRAGMA_EOL);
!   /* CPP_PRAGMA should not show up here except if there was an error or inside
!      another pragma.  */
!   gcc_assert (parser->in_pragma
! 	      || parser->error
! 	      || parser->tokens[0].type != CPP_PRAGMA);
    parser->last_token_location = parser->tokens[0].location;
    if (parser->tokens != &parser->tokens_buf[0])
      parser->tokens++;
*************** c_parser_error_richloc (c_parser *parser
*** 1072,1080 ****
        const char *header_hint
  	= get_c_stdlib_header_for_string_macro_name (token_name);
        if (header_hint != NULL)
! 	h = name_hint (NULL, new suggest_missing_header (token->location,
! 							 token_name,
! 							 header_hint));
      }
  
    c_parse_error (gmsgid,
--- 1107,1117 ----
        const char *header_hint
  	= get_c_stdlib_header_for_string_macro_name (token_name);
        if (header_hint != NULL)
! 	h = name_hint (nullptr,
! 		       std::make_unique<suggest_missing_header>
! 			 (token->location,
! 			  token_name,
! 			  header_hint));
      }
  
    c_parse_error (gmsgid,
*************** c_parser_skip_to_pragma_eol (c_parser *p
*** 1501,1506 ****
--- 1538,1592 ----
    parser->error = false;
  }
  
+ /* Skip tokens up to and including "#pragma omp end declare variant".
+    Properly handle nested "#pragma omp begin declare variant" pragmas.  */
+ static void
+ c_parser_skip_to_pragma_omp_end_declare_variant (c_parser *parser)
+ {
+   for (int depth = 0; depth >= 0; )
+     {
+       c_token *token = c_parser_peek_token (parser);
+ 
+       switch (token->type)
+ 	{
+ 	case CPP_PRAGMA_EOL:
+ 	  if (!parser->in_pragma)
+ 	    break;
+ 	  /* FALLTHRU */
+ 	case CPP_EOF:
+ 	  /* If we've run out of tokens, stop.  */
+ 	  return;
+ 
+ 	case CPP_PRAGMA:
+ 	  if ((token->pragma_kind == PRAGMA_OMP_BEGIN
+ 	       || token->pragma_kind == PRAGMA_OMP_END)
+ 	      && c_parser_peek_nth_token (parser, 2)->type == CPP_NAME
+ 	      && c_parser_peek_nth_token (parser, 3)->type == CPP_NAME)
+ 	    {
+ 	      tree id1 = c_parser_peek_nth_token (parser, 2)->value;
+ 	      tree id2 = c_parser_peek_nth_token (parser, 3)->value;
+ 	      if (strcmp (IDENTIFIER_POINTER (id1), "declare") == 0
+ 		  && strcmp (IDENTIFIER_POINTER (id2), "variant") == 0)
+ 		{
+ 		  if (token->pragma_kind == PRAGMA_OMP_BEGIN)
+ 		    depth++;
+ 		  else
+ 		    depth--;
+ 		}
+ 	    }
+ 	  c_parser_consume_pragma (parser);
+ 	  c_parser_skip_to_pragma_eol (parser, false);
+ 	  continue;
+ 
+ 	default:
+ 	  break;
+ 	}
+ 
+       /* Consume the token.  */
+       c_parser_consume_token (parser);
+     }
+ }
+ 
  /* Skip tokens until we have consumed an entire block, or until we
     have consumed a non-nested ';'.  */
  
*************** static tree c_parser_simple_asm_expr (c_
*** 1747,1753 ****
  static tree c_parser_gnu_attributes (c_parser *);
  static struct c_expr c_parser_initializer (c_parser *, tree);
  static struct c_expr c_parser_braced_init (c_parser *, tree, bool,
! 					   struct obstack *, tree);
  static void c_parser_initelt (c_parser *, struct obstack *);
  static void c_parser_initval (c_parser *, struct c_expr *,
  			      struct obstack *);
--- 1833,1839 ----
  static tree c_parser_gnu_attributes (c_parser *);
  static struct c_expr c_parser_initializer (c_parser *, tree);
  static struct c_expr c_parser_braced_init (c_parser *, tree, bool,
! 					   struct obstack *, bool);
  static void c_parser_initelt (c_parser *, struct obstack *);
  static void c_parser_initval (c_parser *, struct c_expr *,
  			      struct obstack *);
*************** static struct c_expr c_parser_binary_exp
*** 1780,1787 ****
  						 tree);
  static struct c_expr c_parser_cast_expression (c_parser *, struct c_expr *);
  static struct c_expr c_parser_unary_expression (c_parser *);
! static struct c_expr c_parser_sizeof_expression (c_parser *);
  static struct c_expr c_parser_alignof_expression (c_parser *);
  static struct c_expr c_parser_postfix_expression (c_parser *);
  static struct c_expr c_parser_postfix_expression_after_paren_type (c_parser *,
  								   struct c_declspecs *,
--- 1866,1875 ----
  						 tree);
  static struct c_expr c_parser_cast_expression (c_parser *, struct c_expr *);
  static struct c_expr c_parser_unary_expression (c_parser *);
! static struct c_expr c_parser_sizeof_or_countof_expression (c_parser *,
! 							    enum rid);
  static struct c_expr c_parser_alignof_expression (c_parser *);
+ static struct c_expr c_parser_maxof_or_minof_expression (c_parser *, enum rid);
  static struct c_expr c_parser_postfix_expression (c_parser *);
  static struct c_expr c_parser_postfix_expression_after_paren_type (c_parser *,
  								   struct c_declspecs *,
*************** static void c_parser_oacc_declare (c_par
*** 1805,1810 ****
--- 1893,1899 ----
  static void c_parser_oacc_enter_exit_data (c_parser *, bool);
  static void c_parser_oacc_update (c_parser *);
  static void c_parser_omp_construct (c_parser *, bool *);
+ static void c_parser_omp_groupprivate (c_parser *);
  static void c_parser_omp_threadprivate (c_parser *);
  static void c_parser_omp_barrier (c_parser *);
  static void c_parser_omp_depobj (c_parser *);
*************** c_parser_translation_unit (c_parser *par
*** 2031,2036 ****
--- 2120,2140 ----
  	       "#pragma omp begin assumes", "#pragma omp end assumes");
        vec_safe_truncate (current_omp_begin_assumes, 0);
      }
+   if (vec_safe_length (current_omp_declare_variant_attribute))
+     {
+       if (!errorcount)
+ 	error ("%<omp begin declare variant%> without corresponding "
+ 	       "%<omp end declare variant%>");
+       vec_safe_truncate (current_omp_declare_variant_attribute, 0);
+     }
+   if (vec_safe_length (omp_begin_declare_variant_map))
+     {
+       unsigned int i;
+       omp_begin_declare_variant_map_entry *e;
+       FOR_EACH_VEC_ELT (*omp_begin_declare_variant_map, i, e)
+ 	omp_finish_variant_function (e->variant, e->id, e->ctx);
+       vec_safe_truncate (omp_begin_declare_variant_map, 0);
+     }
  
  #if ENABLE_ANALYZER
    if (flag_analyzer)
*************** c_parser_maybe_reclassify_token (c_parse
*** 2223,2229 ****
      {
        c_token *token = c_parser_peek_token (parser);
  
!       if (token->id_kind != C_ID_CLASSNAME)
  	{
  	  tree decl = lookup_name (token->value);
  
--- 2327,2333 ----
      {
        c_token *token = c_parser_peek_token (parser);
  
!       if (token->id_kind == C_ID_ID || token->id_kind == C_ID_TYPENAME)
  	{
  	  tree decl = lookup_name (token->value);
  
*************** c_parser_declaration_or_fndef (c_parser
*** 2472,2477 ****
--- 2576,2586 ----
      }
  
    finish_declspecs (specs);
+   /* When the decl is declared, its type is a top level type, we should
+      call verify_counted_by_for_top_anonymous_type.  */
+   if (specs->typespec_kind == ctsk_tagdef)
+     verify_counted_by_for_top_anonymous_type (specs->type);
+ 
    bool gnu_auto_type_p = specs->typespec_word == cts_auto_type;
    bool std_auto_type_p = specs->c23_auto_p;
    bool any_auto_type_p = gnu_auto_type_p || std_auto_type_p;
*************** c_parser_declaration_or_fndef (c_parser
*** 2817,2823 ****
  			      specs->constexpr_p, &richloc);
  		  /* A parameter is initialized, which is invalid.  Don't
  		     attempt to instrument the initializer.  */
! 		  int flag_sanitize_save = flag_sanitize;
  		  if (nested && !empty_ok)
  		    flag_sanitize = 0;
  		  init = c_parser_expr_no_commas (parser, NULL);
--- 2926,2932 ----
  			      specs->constexpr_p, &richloc);
  		  /* A parameter is initialized, which is invalid.  Don't
  		     attempt to instrument the initializer.  */
! 		  sanitize_code_type flag_sanitize_save = flag_sanitize;
  		  if (nested && !empty_ok)
  		    flag_sanitize = 0;
  		  init = c_parser_expr_no_commas (parser, NULL);
*************** c_parser_declaration_or_fndef (c_parser
*** 2906,2912 ****
  			      specs->constexpr_p, &richloc);
  		  /* A parameter is initialized, which is invalid.  Don't
  		     attempt to instrument the initializer.  */
! 		  int flag_sanitize_save = flag_sanitize;
  		  if (TREE_CODE (d) == PARM_DECL)
  		    flag_sanitize = 0;
  		  init = c_parser_initializer (parser, d);
--- 3015,3021 ----
  			      specs->constexpr_p, &richloc);
  		  /* A parameter is initialized, which is invalid.  Don't
  		     attempt to instrument the initializer.  */
! 		  sanitize_code_type flag_sanitize_save = flag_sanitize;
  		  if (TREE_CODE (d) == PARM_DECL)
  		    flag_sanitize = 0;
  		  init = c_parser_initializer (parser, d);
*************** c_parser_declaration_or_fndef (c_parser
*** 2990,2996 ****
  			  && DECL_INITIAL (d) == NULL_TREE)
  			DECL_ARGUMENTS (d) = parms;
  
! 		      warn_parm_array_mismatch (lastloc, d, parms);
  		    }
  		}
  	      if (omp_declare_simd_clauses
--- 3099,3105 ----
  			  && DECL_INITIAL (d) == NULL_TREE)
  			DECL_ARGUMENTS (d) = parms;
  
! 		      warn_parms_array_mismatch (lastloc, d, parms);
  		    }
  		}
  	      if (omp_declare_simd_clauses
*************** c_parser_declaration_or_fndef (c_parser
*** 3109,3114 ****
--- 3218,3238 ----
  	  pedwarn (here, OPT_Wpedantic, "ISO C forbids nested functions");
  	  c_push_function_context ();
  	}
+ 
+       /* If we're in an OpenMP "begin declare variant" block, the
+ 	 name in the declarator refers to the base function.  We need
+ 	 to save that and modify the declarator to have the mangled
+ 	 name for the variant function instead.  */
+       tree dv_base = NULL_TREE;
+       tree dv_ctx = NULL_TREE;
+       if (!vec_safe_is_empty (current_omp_declare_variant_attribute))
+ 	{
+ 	  c_omp_declare_variant_attr a
+ 	    = current_omp_declare_variant_attribute->last ();
+ 	  dv_ctx = copy_list (a.selector);
+ 	  dv_base = omp_start_variant_function (declarator, dv_ctx);
+ 	}
+ 
        if (!start_function (specs, declarator, all_prefix_attrs))
  	{
  	  /* At this point we've consumed:
*************** c_parser_declaration_or_fndef (c_parser
*** 3186,3191 ****
--- 3310,3325 ----
        DECL_STRUCT_FUNCTION (current_function_decl)->function_start_locus
  	= startloc;
        location_t endloc = startloc;
+       /* If this function was in a "begin declare variant" block,
+ 	 remember it.  We will associate it with the base function at
+ 	 the end of processing the translation unit, since it is permitted
+ 	 for the variant definition to appear before the base declaration.  */
+       if (dv_base && current_function_decl != error_mark_node)
+ 	{
+ 	  omp_begin_declare_variant_map_entry e
+ 	    = { current_function_decl, dv_base, dv_ctx };
+ 	  vec_safe_push (omp_begin_declare_variant_map, e);
+ 	}
  
        /* If the definition was marked with __RTL, use the RTL parser now,
  	 consuming the function body.  */
*************** c_parser_declaration_or_fndef (c_parser
*** 3217,3223 ****
        else
  	fnbody = c_parser_compound_statement (parser, &endloc);
        tree fndecl = current_function_decl;
!       if (nested)
  	{
  	  tree decl = current_function_decl;
  	  /* Mark nested functions as needing static-chain initially.
--- 3351,3357 ----
        else
  	fnbody = c_parser_compound_statement (parser, &endloc);
        tree fndecl = current_function_decl;
!       if (nested && specs->declspec_il == cdil_none)
  	{
  	  tree decl = current_function_decl;
  	  /* Mark nested functions as needing static-chain initially.
*************** c_parser_declaration_or_fndef (c_parser
*** 3230,3235 ****
--- 3364,3378 ----
  	  c_pop_function_context ();
  	  add_stmt (build_stmt (DECL_SOURCE_LOCATION (decl), DECL_EXPR, decl));
  	}
+       else if (nested)
+ 	{
+ 	  if (specs->declspec_il == cdil_rtl)
+ 	    error ("%<__RTL%> function cannot be a nested function");
+ 	  else
+ 	    error ("%<__GIMPLE%> function cannot be a nested function");
+ 	  finish_function (endloc);
+ 	  c_pop_function_context ();
+ 	}
        else
  	{
  	  if (fnbody)
*************** c_parser_parameter_declaration (c_parser
*** 5364,5369 ****
--- 5507,5517 ----
    c_parser_declspecs (parser, specs, true, true, true, true, false,
  		      !have_gnu_attrs, true, cla_nonabstract_decl);
    finish_declspecs (specs);
+   /* When the param is declared, its type is a top level type, we should
+      call verify_counted_by_for_top_anonymous_type.  */
+   if (specs->typespec_kind == ctsk_tagdef)
+     verify_counted_by_for_top_anonymous_type (specs->type);
+ 
    pending_xref_error ();
    prefix_attrs = specs->attrs;
    specs->attrs = NULL_TREE;
*************** c_parser_balanced_token_sequence (c_pars
*** 5841,5849 ****
      }
  }
  
- static bool c_parser_check_balanced_raw_token_sequence (c_parser *,
- 							unsigned int *);
- 
  /* Parse arguments of omp::directive or omp::decl attribute.
  
     directive-name ,[opt] clause-list[opt]
--- 5989,5994 ----
*************** c_parser_type_name (c_parser *parser, bo
*** 6369,6374 ****
--- 6514,6523 ----
      {
        pending_xref_error ();
        finish_declspecs (specs);
+       /* When the typename is declared, its type is a top level type, we should
+ 	 call verify_counted_by_for_top_anonymous_type.  */
+       if (specs->typespec_kind == ctsk_tagdef)
+ 	verify_counted_by_for_top_anonymous_type (specs->type);
      }
    declarator = c_parser_declarator (parser,
  				    specs->typespec_kind != ctsk_none,
*************** static struct c_expr
*** 6430,6436 ****
  c_parser_initializer (c_parser *parser, tree decl)
  {
    if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
!     return c_parser_braced_init (parser, NULL_TREE, false, NULL, decl);
    else
      {
        struct c_expr ret;
--- 6579,6587 ----
  c_parser_initializer (c_parser *parser, tree decl)
  {
    if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
!     return c_parser_braced_init (parser, NULL_TREE, false, NULL,
! 				 decl != error_mark_node
! 				 && C_DECL_VARIABLE_SIZE (decl));
    else
      {
        struct c_expr ret;
*************** location_t last_init_list_comma;
*** 6470,6481 ****
     compound literal, and NULL_TREE for other initializers and for
     nested braced lists.  NESTED_P is true for nested braced lists,
     false for the list of a compound literal or the list that is the
!    top-level initializer in a declaration.  DECL is the declaration for
!    the top-level initializer for a declaration, otherwise NULL_TREE.  */
  
  static struct c_expr
  c_parser_braced_init (c_parser *parser, tree type, bool nested_p,
! 		      struct obstack *outer_obstack, tree decl)
  {
    struct c_expr ret;
    struct obstack braced_init_obstack;
--- 6621,6632 ----
     compound literal, and NULL_TREE for other initializers and for
     nested braced lists.  NESTED_P is true for nested braced lists,
     false for the list of a compound literal or the list that is the
!    top-level initializer in a declaration.  VARSIZE_P indicates
!    wether the object to be initialized has a variable size.  */
  
  static struct c_expr
  c_parser_braced_init (c_parser *parser, tree type, bool nested_p,
! 		      struct obstack *outer_obstack, bool varsize_p)
  {
    struct c_expr ret;
    struct obstack braced_init_obstack;
*************** c_parser_braced_init (c_parser *parser,
*** 6503,6509 ****
      }
    else
      {
!       if (decl && decl != error_mark_node && C_DECL_VARIABLE_SIZE (decl))
  	error_at (brace_loc,
  		  "variable-sized object may not be initialized except "
  		  "with an empty initializer");
--- 6654,6660 ----
      }
    else
      {
!       if (varsize_p)
  	error_at (brace_loc,
  		  "variable-sized object may not be initialized except "
  		  "with an empty initializer");
*************** c_parser_initval (c_parser *parser, stru
*** 6797,6803 ****
  
    if (c_parser_next_token_is (parser, CPP_OPEN_BRACE) && !after)
      init = c_parser_braced_init (parser, NULL_TREE, true,
! 				 braced_init_obstack, NULL_TREE);
    else
      {
        init = c_parser_expr_no_commas (parser, after);
--- 6948,6954 ----
  
    if (c_parser_next_token_is (parser, CPP_OPEN_BRACE) && !after)
      init = c_parser_braced_init (parser, NULL_TREE, true,
! 				 braced_init_obstack, false);
    else
      {
        init = c_parser_expr_no_commas (parser, after);
*************** c_parser_compound_statement_nostart (c_p
*** 7710,7716 ****
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
  	  if (!have_std_attrs
! 	      && (c_token_starts_declaration (c_parser_peek_2nd_token (parser))
  		  || c_parser_nth_token_starts_std_attributes (parser, 2)))
  	    {
  	      int ext;
--- 7861,7867 ----
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
  	  if (!have_std_attrs
! 	      && (c_parser_next_tokens_start_declaration (parser, 2)
  		  || c_parser_nth_token_starts_std_attributes (parser, 2)))
  	    {
  	      int ext;
*************** c_parser_for_statement (c_parser *parser
*** 9118,9124 ****
  		 && (c_parser_peek_2nd_token (parser)->keyword
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
! 	  if (c_token_starts_declaration (c_parser_peek_2nd_token (parser))
  	      || c_parser_nth_token_starts_std_attributes (parser, 2))
  	    {
  	      int ext;
--- 9269,9275 ----
  		 && (c_parser_peek_2nd_token (parser)->keyword
  		     == RID_EXTENSION))
  	    c_parser_consume_token (parser);
! 	  if (c_parser_next_tokens_start_declaration (parser, 2)
  	      || c_parser_nth_token_starts_std_attributes (parser, 2))
  	    {
  	      int ext;
*************** c_parser_string_literal (c_parser *parse
*** 9746,9752 ****
  	  (parse_in, strs, count, &istr, type)))
      {
        value = build_string (istr.len, (const char *) istr.text);
!       free (CONST_CAST (unsigned char *, istr.text));
        if (count > 1)
  	{
  	  location_t *locs = (location_t *) obstack_finish (&loc_ob);
--- 9897,9903 ----
  	  (parse_in, strs, count, &istr, type)))
      {
        value = build_string (istr.len, (const char *) istr.text);
!       free (const_cast<unsigned char *> (istr.text));
        if (count > 1)
  	{
  	  location_t *locs = (location_t *) obstack_finish (&loc_ob);
*************** c_parser_cast_expression (c_parser *pars
*** 10495,10502 ****
--- 10646,10658 ----
       ++ unary-expression
       -- unary-expression
       unary-operator cast-expression
+      _Countof unary-expression
+      _Countof ( type-name )
       sizeof unary-expression
       sizeof ( type-name )
+      static-assert-declaration-no-semi
+ 
+    (_Countof and the use of static assertions in expressions are new in C2y.)
  
     unary-operator: one of
       & * + - ~ !
*************** c_parser_cast_expression (c_parser *pars
*** 10506,10511 ****
--- 10662,10669 ----
     unary-expression:
       __alignof__ unary-expression
       __alignof__ ( type-name )
+      _Maxof ( type-name )
+      _Minof ( type-name )
       && identifier
  
     (C11 permits _Alignof with type names only.)
*************** c_parser_unary_expression (c_parser *par
*** 10538,10552 ****
        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, PREINCREMENT_EXPR, op);
      case CPP_MINUS_MINUS:
        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_consume_token (parser);
--- 10696,10726 ----
        c_parser_consume_token (parser);
        exp_loc = c_parser_peek_token (parser)->location;
        op = c_parser_cast_expression (parser, NULL);
!       if ((VAR_P (op.value) || TREE_CODE (op.value) == PARM_DECL)
! 	  && !DECL_READ_P (op.value)
! 	  && (VAR_P (op.value) ? warn_unused_but_set_variable
! 			       : warn_unused_but_set_parameter) > 1)
! 	{
! 	  op = default_function_array_read_conversion (exp_loc, op);
! 	  DECL_READ_P (op.value) = 0;
! 	}
!       else
! 	op = default_function_array_read_conversion (exp_loc, op);
        return parser_build_unary_op (op_loc, PREINCREMENT_EXPR, op);
      case CPP_MINUS_MINUS:
        c_parser_consume_token (parser);
        exp_loc = c_parser_peek_token (parser)->location;
        op = c_parser_cast_expression (parser, NULL);
!       if ((VAR_P (op.value) || TREE_CODE (op.value) == PARM_DECL)
! 	  && !DECL_READ_P (op.value)
! 	  && (VAR_P (op.value) ? warn_unused_but_set_variable
! 			       : warn_unused_but_set_parameter) > 1)
! 	{
! 	  op = default_function_array_read_conversion (exp_loc, op);
! 	  DECL_READ_P (op.value) = 0;
! 	}
!       else
! 	op = default_function_array_read_conversion (exp_loc, op);
        return parser_build_unary_op (op_loc, PREDECREMENT_EXPR, op);
      case CPP_AND:
        c_parser_consume_token (parser);
*************** c_parser_unary_expression (c_parser *par
*** 10613,10674 ****
  	}
        return ret;
      case CPP_KEYWORD:
!       switch (c_parser_peek_token (parser)->keyword)
! 	{
! 	case RID_SIZEOF:
! 	  return c_parser_sizeof_expression (parser);
! 	case RID_ALIGNOF:
! 	  return c_parser_alignof_expression (parser);
! 	case RID_BUILTIN_HAS_ATTRIBUTE:
! 	  return c_parser_has_attribute_expression (parser);
! 	case RID_EXTENSION:
! 	  c_parser_consume_token (parser);
! 	  ext = disable_extension_diagnostics ();
! 	  ret = c_parser_cast_expression (parser, NULL);
! 	  restore_extension_diagnostics (ext);
! 	  return ret;
! 	case RID_REALPART:
! 	  c_parser_consume_token (parser);
! 	  exp_loc = c_parser_peek_token (parser)->location;
! 	  op = c_parser_cast_expression (parser, NULL);
! 	  op = default_function_array_conversion (exp_loc, op);
! 	  return parser_build_unary_op (op_loc, REALPART_EXPR, op);
! 	case RID_IMAGPART:
! 	  c_parser_consume_token (parser);
! 	  exp_loc = c_parser_peek_token (parser)->location;
! 	  op = c_parser_cast_expression (parser, NULL);
! 	  op = default_function_array_conversion (exp_loc, op);
! 	  return parser_build_unary_op (op_loc, IMAGPART_EXPR, op);
! 	case RID_TRANSACTION_ATOMIC:
! 	case RID_TRANSACTION_RELAXED:
! 	  return c_parser_transaction_expression (parser,
! 	      c_parser_peek_token (parser)->keyword);
! 	default:
! 	  return c_parser_postfix_expression (parser);
! 	}
      default:
        return c_parser_postfix_expression (parser);
      }
  }
  
! /* Parse a sizeof expression.  */
  
  static struct c_expr
! c_parser_sizeof_expression (c_parser *parser)
  {
    struct c_expr expr;
    struct c_expr result;
    location_t expr_loc;
!   gcc_assert (c_parser_next_token_is_keyword (parser, RID_SIZEOF));
  
    location_t start;
    location_t finish = UNKNOWN_LOCATION;
  
    start = c_parser_peek_token (parser)->location;
  
    c_parser_consume_token (parser);
    c_inhibit_evaluation_warnings++;
!   in_sizeof++;
    if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
        && c_token_starts_compound_literal (c_parser_peek_2nd_token (parser)))
      {
--- 10787,10871 ----
  	}
        return ret;
      case CPP_KEYWORD:
!       {
! 	enum rid rid = c_parser_peek_token (parser)->keyword;
! 	switch (rid)
! 	  {
! 	  case RID_COUNTOF:
! 	  case RID_SIZEOF:
! 	    return c_parser_sizeof_or_countof_expression (parser, rid);
! 	  case RID_ALIGNOF:
! 	    return c_parser_alignof_expression (parser);
! 	  case RID_MAXOF:
! 	  case RID_MINOF:
! 	    return c_parser_maxof_or_minof_expression (parser, rid);
! 	  case RID_BUILTIN_HAS_ATTRIBUTE:
! 	    return c_parser_has_attribute_expression (parser);
! 	  case RID_EXTENSION:
! 	    c_parser_consume_token (parser);
! 	    ext = disable_extension_diagnostics ();
! 	    ret = c_parser_cast_expression (parser, NULL);
! 	    restore_extension_diagnostics (ext);
! 	    return ret;
! 	  case RID_REALPART:
! 	    c_parser_consume_token (parser);
! 	    exp_loc = c_parser_peek_token (parser)->location;
! 	    op = c_parser_cast_expression (parser, NULL);
! 	    op = default_function_array_conversion (exp_loc, op);
! 	    return parser_build_unary_op (op_loc, REALPART_EXPR, op);
! 	  case RID_IMAGPART:
! 	    c_parser_consume_token (parser);
! 	    exp_loc = c_parser_peek_token (parser)->location;
! 	    op = c_parser_cast_expression (parser, NULL);
! 	    op = default_function_array_conversion (exp_loc, op);
! 	    return parser_build_unary_op (op_loc, IMAGPART_EXPR, op);
! 	  case RID_TRANSACTION_ATOMIC:
! 	  case RID_TRANSACTION_RELAXED:
! 	    return c_parser_transaction_expression (parser, rid);
! 	  case RID_STATIC_ASSERT:
! 	    c_parser_static_assert_declaration_no_semi (parser);
! 	    pedwarn_c23 (op_loc, OPT_Wpedantic,
! 			 "ISO C does not support static assertions in "
! 			 "expressions before C2Y");
! 	    ret.value = void_node;
! 	    set_c_expr_source_range (&ret, op_loc, op_loc);
! 	    ret.m_decimal = 0;
! 	    return ret;
! 	  default:
! 	    return c_parser_postfix_expression (parser);
! 	  }
!       }
      default:
        return c_parser_postfix_expression (parser);
      }
  }
  
! /* Parse a sizeof or _Countof expression.  */
  
  static struct c_expr
! c_parser_sizeof_or_countof_expression (c_parser *parser, enum rid rid)
  {
+   const char *op_name = (rid == RID_COUNTOF) ? "_Countof" : "sizeof";
    struct c_expr expr;
    struct c_expr result;
    location_t expr_loc;
!   gcc_assert (c_parser_next_token_is_keyword (parser, rid));
  
    location_t start;
    location_t finish = UNKNOWN_LOCATION;
  
    start = c_parser_peek_token (parser)->location;
  
+   if (rid == RID_COUNTOF)
+     pedwarn_c23 (start, OPT_Wpedantic,
+ 		 "ISO C does not support %qs before C2Y", op_name);
+ 
    c_parser_consume_token (parser);
    c_inhibit_evaluation_warnings++;
!   if (rid == RID_COUNTOF)
!     in_countof++;
!   else
!     in_sizeof++;
    if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
        && c_token_starts_compound_literal (c_parser_peek_2nd_token (parser)))
      {
*************** c_parser_sizeof_expression (c_parser *pa
*** 10689,10695 ****
  	     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))
  	{
--- 10886,10892 ----
  	     for parsing error; the parsing of the expression could have
  	     called record_maybe_used_decl.  */
  	  expr.set_error ();
! 	  goto Xof_expr;
  	}
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	{
*************** c_parser_sizeof_expression (c_parser *pa
*** 10697,10727 ****
  							       type_name,
  							       expr_loc);
  	  finish = expr.get_finish ();
! 	  goto sizeof_expr;
  	}
        /* sizeof ( type-name ).  */
        if (scspecs)
! 	error_at (expr_loc, "storage class specifier in %<sizeof%>");
        if (type_name->specs->alignas_p)
  	error_at (type_name->specs->locations[cdw_alignas],
! 		  "alignment specified for type name in %<sizeof%>");
        c_inhibit_evaluation_warnings--;
!       in_sizeof--;
!       result = c_expr_sizeof_type (expr_loc, type_name);
      }
    else
      {
        expr_loc = c_parser_peek_token (parser)->location;
        expr = c_parser_unary_expression (parser);
        finish = expr.get_finish ();
!     sizeof_expr:
        c_inhibit_evaluation_warnings--;
!       in_sizeof--;
        mark_exp_read (expr.value);
        if (TREE_CODE (expr.value) == COMPONENT_REF
  	  && DECL_C_BIT_FIELD (TREE_OPERAND (expr.value, 1)))
! 	error_at (expr_loc, "%<sizeof%> applied to a bit-field");
!       result = c_expr_sizeof_expr (expr_loc, expr);
      }
    if (finish == UNKNOWN_LOCATION)
      finish = start;
--- 10894,10938 ----
  							       type_name,
  							       expr_loc);
  	  finish = expr.get_finish ();
! 	  goto Xof_expr;
  	}
        /* sizeof ( type-name ).  */
        if (scspecs)
! 	error_at (expr_loc, "storage class specifier in %qs", op_name);
        if (type_name->specs->alignas_p)
  	error_at (type_name->specs->locations[cdw_alignas],
! 		  "alignment specified for type name in %qs", op_name);
        c_inhibit_evaluation_warnings--;
!       if (rid == RID_COUNTOF)
! 	{
! 	  in_countof--;
! 	  result = c_expr_countof_type (expr_loc, type_name);
! 	}
!       else
! 	{
! 	  in_sizeof--;
! 	  result = c_expr_sizeof_type (expr_loc, type_name);
! 	}
      }
    else
      {
        expr_loc = c_parser_peek_token (parser)->location;
        expr = c_parser_unary_expression (parser);
        finish = expr.get_finish ();
!     Xof_expr:
        c_inhibit_evaluation_warnings--;
!       if (rid == RID_COUNTOF)
! 	in_countof--;
!       else
! 	in_sizeof--;
        mark_exp_read (expr.value);
        if (TREE_CODE (expr.value) == COMPONENT_REF
  	  && DECL_C_BIT_FIELD (TREE_OPERAND (expr.value, 1)))
! 	error_at (expr_loc, "%qs applied to a bit-field", op_name);
!       if (rid == RID_COUNTOF)
! 	result = c_expr_countof_expr (expr_loc, expr);
!       else
! 	result = c_expr_sizeof_expr (expr_loc, expr);
      }
    if (finish == UNKNOWN_LOCATION)
      finish = start;
*************** c_parser_alignof_expression (c_parser *p
*** 10831,10836 ****
--- 11042,11108 ----
      }
  }
  
+ /* Parse a _Maxof or _Minof expression.  */
+ 
+ static struct c_expr
+ c_parser_maxof_or_minof_expression (c_parser *parser, enum rid rid)
+ {
+   const char *op_name = (rid == RID_MAXOF) ? "_Maxof" : "_Minof";
+   struct c_expr result;
+   location_t expr_loc;
+   struct c_type_name *type_name;
+   matching_parens parens;
+   gcc_assert (c_parser_next_token_is_keyword (parser, rid));
+ 
+   location_t start;
+   location_t finish = UNKNOWN_LOCATION;
+ 
+   start = c_parser_peek_token (parser)->location;
+ 
+   pedwarn (start, OPT_Wpedantic, "ISO C does not support %qs", op_name);
+ 
+   c_parser_consume_token (parser);
+   c_inhibit_evaluation_warnings++;
+   if (!c_parser_next_token_is (parser, CPP_OPEN_PAREN))
+     {
+       c_parser_error (parser, "expected %<(%>");
+       goto fail;
+     }
+   parens.consume_open (parser);
+   expr_loc = c_parser_peek_token (parser)->location;
+   if (!c_token_starts_typename (c_parser_peek_token (parser)))
+     {
+       error_at (expr_loc, "invalid application of %qs to something not a type", op_name);
+       parens.skip_until_found_close (parser);
+       goto fail;
+     }
+   type_name = c_parser_type_name (parser, true);
+   if (type_name == NULL)
+     {
+       // c_parser_type_name() has already diagnosed the error.
+       parens.skip_until_found_close (parser);
+       goto fail;
+     }
+   parens.skip_until_found_close (parser);
+   finish = parser->tokens_buf[0].location;
+   if (type_name->specs->alignas_p)
+     error_at (type_name->specs->locations[cdw_alignas],
+ 	      "alignment specified for type name in %qs", op_name);
+   c_inhibit_evaluation_warnings--;
+   if (rid == RID_MAXOF)
+     result = c_expr_maxof_type (expr_loc, type_name);
+   else
+     result = c_expr_minof_type (expr_loc, type_name);
+   set_c_expr_source_range (&result, start, finish);
+   return result;
+ fail:
+   c_inhibit_evaluation_warnings--;
+   result.set_error ();
+   result.original_code = ERROR_MARK;
+   result.original_type = NULL;
+   return result;
+ }
+ 
  /* Parse the __builtin_has_attribute ([expr|type], attribute-spec)
     expression.  */
  
*************** c_parser_generic_selection (c_parser *pa
*** 11097,11111 ****
  		   "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)
  	{
--- 11369,11392 ----
  		   "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);
!       if (type)
! 	selector_type = groktypename (type, NULL, NULL);
        c_inhibit_evaluation_warnings--;
+       if (!type)
+ 	{
+ 	  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
+ 	  return error_expr;
+ 	}
      }
    else
      {
        c_inhibit_evaluation_warnings++;
+       in_generic++;
        selector = c_parser_expr_no_commas (parser, NULL);
        selector = default_function_array_conversion (selector_loc, selector);
        c_inhibit_evaluation_warnings--;
+       in_generic--;
+       pop_maybe_used (!flag_isoc23);
  
        if (selector.value == error_mark_node)
  	{
*************** c_parser_generic_selection (c_parser *pa
*** 11134,11139 ****
--- 11415,11421 ----
      }
  
    auto_vec<c_generic_association> associations;
+   struct maybe_used_decl *maybe_used_default = NULL;
    while (1)
      {
        struct c_generic_association assoc, *iter;
*************** c_parser_generic_selection (c_parser *pa
*** 11156,11162 ****
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
  	      return error_expr;
  	    }
! 	  assoc.type = groktypename (type_name, NULL, NULL);
  	  if (assoc.type == error_mark_node)
  	    {
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
--- 11438,11444 ----
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
  	      return error_expr;
  	    }
! 	  assoc.type = grokgenassoc (type_name);
  	  if (assoc.type == error_mark_node)
  	    {
  	      c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, NULL);
*************** c_parser_generic_selection (c_parser *pa
*** 11173,11181 ****
  			 "incomplete type before C2Y");
  
  	  if (c_type_variably_modified_p (assoc.type))
! 	    error_at (assoc.type_location,
! 		      "%<_Generic%> association has "
! 		      "variable length type");
  	}
  
        if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
--- 11455,11463 ----
  			 "incomplete type before C2Y");
  
  	  if (c_type_variably_modified_p (assoc.type))
! 	    pedwarn_c23 (assoc.type_location, OPT_Wpedantic,
! 			 "ISO C does not support %<_Generic%> association with "
! 			 "variably-modified type before C2Y");
  	}
  
        if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
*************** c_parser_generic_selection (c_parser *pa
*** 11189,11199 ****
--- 11471,11489 ----
  
        if (!match)
  	c_inhibit_evaluation_warnings++;
+       in_generic++;
  
        assoc.expression = c_parser_expr_no_commas (parser, NULL);
  
        if (!match)
  	  c_inhibit_evaluation_warnings--;
+       in_generic--;
+       if (!match)
+ 	pop_maybe_used (!flag_isoc23);
+       else if (assoc.type == NULL_TREE)
+ 	maybe_used_default = save_maybe_used ();
+       else
+ 	pop_maybe_used (true);
  
        if (assoc.expression.value == error_mark_node)
  	{
*************** c_parser_generic_selection (c_parser *pa
*** 11254,11259 ****
--- 11544,11563 ----
        c_parser_consume_token (parser);
      }
  
+   if (match_found >= 0 && matched_assoc.type == NULL_TREE)
+     {
+       /* Declarations referenced in the default association are used.  */
+       restore_maybe_used (maybe_used_default);
+       pop_maybe_used (true);
+     }
+   else if (maybe_used_default)
+     {
+       /* Declarations referenced in the default association are not used, but
+ 	 are treated as used before C23.  */
+       restore_maybe_used (maybe_used_default);
+       pop_maybe_used (!flag_isoc23);
+     }
+ 
    unsigned int ix;
    struct c_generic_association *iter;
    FOR_EACH_VEC_ELT (associations, ix, iter)
*************** c_parser_predefined_identifier (c_parser
*** 11368,11401 ****
    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;
  }
  
--- 11672,11715 ----
    return expr;
  }
  
! /* Check whether the REF has an counted-by object associated with it
     through the "counted_by" attribute.  */
  
  static bool
! has_counted_by_object (tree ref)
  {
!   /* Currently, there are two cases are valid:
!      A. when the ref is an indirect_ref to a call to the
! 	.ACCESS_WITH_SIZE, return true. (this is for FAM)
!      B. when the ref is a call to .ACCESS_WITH_SIZE, return true.
! 	(this is for pointer field inside a structure)
       More cases can be included later when the counted_by attribute is
       extended to other situations.  */
!   if ((TREE_CODE (ref) == INDIRECT_REF
!        && is_access_with_size_p (TREE_OPERAND (ref, 0)))
!       || is_access_with_size_p (ref))
      return true;
    return false;
  }
  
! /* Get the reference to the counted-by object associated with the REF.  */
  
  static tree
! get_counted_by_ref (tree ref)
  {
!   /* Currently, there are two cases are valid:
!      A. when the ref is an indirect_ref to a call to the
! 	.ACCESS_WITH_SIZE, return true. (this is for FAM)
!      B. when the ref is a call to .ACCESS_WITH_SIZE, return true.
! 	(this is for pointer field inside a structure)
       More cases can be included later when the counted_by attribute is
       extended to other situations.  */
!   if (TREE_CODE (ref) == INDIRECT_REF
!       && is_access_with_size_p (TREE_OPERAND (ref, 0)))
!     return CALL_EXPR_ARG (TREE_OPERAND (ref, 0), 1);
!   else if (is_access_with_size_p (ref))
!     return CALL_EXPR_ARG (ref, 1);
! 
    return NULL_TREE;
  }
  
*************** c_parser_postfix_expression (c_parser *p
*** 11662,11676 ****
  	    else
  	      {
  		tree type_expr = NULL_TREE;
  		expr.value = c_build_va_arg (start_loc, e1.value, loc,
! 					     groktypename (t1, &type_expr, NULL));
! 		if (type_expr)
! 		  {
! 		    expr.value = build2 (C_MAYBE_CONST_EXPR,
! 					 TREE_TYPE (expr.value), type_expr,
! 					 expr.value);
! 		    C_MAYBE_CONST_EXPR_NON_CONST (expr.value) = true;
! 		  }
  		set_c_expr_source_range (&expr, start_loc, end_loc);
  	      }
  	  }
--- 11976,11984 ----
  	    else
  	      {
  		tree type_expr = NULL_TREE;
+ 		tree type = groktypename (t1, &type_expr, NULL);
  		expr.value = c_build_va_arg (start_loc, e1.value, loc,
! 					     type, type_expr);
  		set_c_expr_source_range (&expr, start_loc, end_loc);
  	      }
  	  }
*************** c_parser_postfix_expression (c_parser *p
*** 11805,11816 ****
  	    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,
--- 12113,12121 ----
  	    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,
*************** c_parser_postfix_expression (c_parser *p
*** 11837,11850 ****
  			    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
--- 12142,12152 ----
  			    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
*************** c_parser_postfix_expression (c_parser *p
*** 12619,12636 ****
  	    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))
--- 12921,12947 ----
  	    e_p = &(*cexpr_list)[0];
  	    tree ref = e_p->value;
  
! 	    if (TREE_CODE (TREE_TYPE (ref)) != ARRAY_TYPE
! 		 && TREE_CODE (TREE_TYPE (ref)) != POINTER_TYPE)
  	      {
  		error_at (loc, "the argument to %<__builtin_counted_by_ref%>"
! 				" must be an array or pointer");
  		expr.set_error ();
  		break;
  	      }
  
! 	    if (TREE_CODE (ref) != COMPONENT_REF)
! 	      {
! 		error_at (loc, "the argument to %<__builtin_counted_by_ref%>"
! 				" must be a field of a structure");
! 		expr.set_error ();
! 		break;
! 	      }
! 
! 	    /* If the 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 (TREE_CODE (ref) == COMPONENT_REF)
  	      ref = handle_counted_by_for_component_ref (loc, ref);
  
  	    if (has_counted_by_object (ref))
*************** c_parser_postfix_expression_after_paren_
*** 13391,13400 ****
  	       || (scspecs && scspecs->storage_class == csc_static)
  	       || constexpr_p), constexpr_p, &richloc);
    type = groktypename (type_name, &type_expr, &type_expr_const);
    if (type != error_mark_node && C_TYPE_VARIABLE_SIZE (type))
      {
!       error_at (type_loc, "compound literal has variable size");
!       type = error_mark_node;
      }
    else if (TREE_CODE (type) == FUNCTION_TYPE)
      {
--- 13702,13712 ----
  	       || (scspecs && scspecs->storage_class == csc_static)
  	       || constexpr_p), constexpr_p, &richloc);
    type = groktypename (type_name, &type_expr, &type_expr_const);
+   bool varsize_p = false;
    if (type != error_mark_node && C_TYPE_VARIABLE_SIZE (type))
      {
!       pedwarn (type_loc, OPT_Wpedantic, "compound literal has variable size");
!       varsize_p = true;
      }
    else if (TREE_CODE (type) == FUNCTION_TYPE)
      {
*************** c_parser_postfix_expression_after_paren_
*** 13419,13425 ****
  				     (TYPE_QUALS (type_no_array)
  				      | TYPE_QUAL_CONST));
      }
!   init = c_parser_braced_init (parser, type, false, NULL, NULL_TREE);
    if (constexpr_p)
      finish_underspecified_init (NULL_TREE, underspec_state);
    finish_init ();
--- 13731,13737 ----
  				     (TYPE_QUALS (type_no_array)
  				      | TYPE_QUAL_CONST));
      }
!   init = c_parser_braced_init (parser, type, false, NULL, varsize_p);
    if (constexpr_p)
      finish_underspecified_init (NULL_TREE, underspec_state);
    finish_init ();
*************** c_parser_postfix_expression_after_primar
*** 13878,13884 ****
  	  start = expr.get_start ();
  	  finish = c_parser_peek_token (parser)->get_finish ();
  	  c_parser_consume_token (parser);
! 	  expr = default_function_array_read_conversion (expr_loc, expr);
  	  expr.value = build_unary_op (op_loc, POSTINCREMENT_EXPR,
  				       expr.value, false);
  	  set_c_expr_source_range (&expr, start, finish);
--- 14190,14206 ----
  	  start = expr.get_start ();
  	  finish = c_parser_peek_token (parser)->get_finish ();
  	  c_parser_consume_token (parser);
! 	  if ((VAR_P (expr.value) || TREE_CODE (expr.value) == PARM_DECL)
! 	      && !DECL_READ_P (expr.value)
! 	      && (VAR_P (expr.value) ? warn_unused_but_set_variable
! 				     : warn_unused_but_set_parameter) > 1
! 	      && TREE_CODE (TREE_TYPE (expr.value)) != ARRAY_TYPE)
! 	    {
! 	      expr = default_function_array_read_conversion (expr_loc, expr);
! 	      DECL_READ_P (expr.value) = 0;
! 	    }
! 	  else
! 	    expr = default_function_array_read_conversion (expr_loc, expr);
  	  expr.value = build_unary_op (op_loc, POSTINCREMENT_EXPR,
  				       expr.value, false);
  	  set_c_expr_source_range (&expr, start, finish);
*************** c_parser_postfix_expression_after_primar
*** 13890,13896 ****
  	  start = expr.get_start ();
  	  finish = c_parser_peek_token (parser)->get_finish ();
  	  c_parser_consume_token (parser);
! 	  expr = default_function_array_read_conversion (expr_loc, expr);
  	  expr.value = build_unary_op (op_loc, POSTDECREMENT_EXPR,
  				       expr.value, false);
  	  set_c_expr_source_range (&expr, start, finish);
--- 14212,14228 ----
  	  start = expr.get_start ();
  	  finish = c_parser_peek_token (parser)->get_finish ();
  	  c_parser_consume_token (parser);
! 	  if ((VAR_P (expr.value) || TREE_CODE (expr.value) == PARM_DECL)
! 	      && !DECL_READ_P (expr.value)
! 	      && (VAR_P (expr.value) ? warn_unused_but_set_variable
! 				     : warn_unused_but_set_parameter) > 1
! 	      && TREE_CODE (TREE_TYPE (expr.value)) != ARRAY_TYPE)
! 	    {
! 	      expr = default_function_array_read_conversion (expr_loc, expr);
! 	      DECL_READ_P (expr.value) = 0;
! 	    }
! 	  else
! 	    expr = default_function_array_read_conversion (expr_loc, expr);
  	  expr.value = build_unary_op (op_loc, POSTDECREMENT_EXPR,
  				       expr.value, false);
  	  set_c_expr_source_range (&expr, start, finish);
*************** c_parser_pragma (c_parser *parser, enum
*** 15667,15677 ****
    gcc_assert (id != PRAGMA_NONE);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_
!       && id <= PRAGMA_OMP__LAST_)
      {
!       error_at (input_location,
! 		"intervening code must not contain OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL);
        return false;
--- 15999,16013 ----
    gcc_assert (id != PRAGMA_NONE);
    if (parser->omp_for_parse_state
        && parser->omp_for_parse_state->in_intervening_code
!       && id >= PRAGMA_OMP__START_ && id <= PRAGMA_OMP__LAST_
!       /* Allow a safe subset of non-executable directives. See classification in
! 	 array c_omp_directives.  */
!       && id != PRAGMA_OMP_METADIRECTIVE && id != PRAGMA_OMP_NOTHING
!       && id != PRAGMA_OMP_ASSUME && id != PRAGMA_OMP_ERROR)
      {
!       error_at (
! 	input_location,
! 	"intervening code must not contain executable OpenMP directives");
        parser->omp_for_parse_state->fail = true;
        c_parser_skip_until_found (parser, CPP_PRAGMA_EOL, NULL);
        return false;
*************** c_parser_pragma (c_parser *parser, enum
*** 15796,15801 ****
--- 16132,16141 ----
      case PRAGMA_OMP_CANCELLATION_POINT:
        return c_parser_omp_cancellation_point (parser, context);
  
+     case PRAGMA_OMP_GROUPPRIVATE:
+       c_parser_omp_groupprivate (parser);
+       return false;
+ 
      case PRAGMA_OMP_THREADPRIVATE:
        c_parser_omp_threadprivate (parser);
        return false;
*************** c_parser_omp_clause_name (c_parser *pars
*** 16113,16118 ****
--- 16453,16460 ----
  	    result = PRAGMA_OMP_CLAUSE_DIST_SCHEDULE;
  	  else if (!strcmp ("doacross", p))
  	    result = PRAGMA_OMP_CLAUSE_DOACROSS;
+ 	  else if (!strcmp ("dyn_groupprivate", p))
+ 	    result = PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE;
  	  break;
  	case 'e':
  	  if (!strcmp ("enter", p))
*************** c_parser_omp_clause_name (c_parser *pars
*** 16289,16294 ****
--- 16631,16638 ----
  	    result = PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR;
  	  else if (!strcmp ("use_device_ptr", p))
  	    result = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR;
+ 	  else if (!strcmp ("uses_allocators", p))
+ 	    result = PRAGMA_OMP_CLAUSE_USES_ALLOCATORS;
  	  break;
  	case 'v':
  	  if (!strcmp ("vector", p))
*************** c_parser_omp_variable_list (c_parser *pa
*** 16568,16574 ****
  		   || CONVERT_EXPR_P (decl))
  	    decl = TREE_OPERAND (decl, 0);
  
! 	  tree u = build_omp_clause (clause_loc, kind);
  	  OMP_CLAUSE_DECL (u) = decl;
  	  OMP_CLAUSE_CHAIN (u) = list;
  	  list = u;
--- 16912,16918 ----
  		   || CONVERT_EXPR_P (decl))
  	    decl = TREE_OPERAND (decl, 0);
  
! 	  tree u = build_omp_clause (loc, kind);
  	  OMP_CLAUSE_DECL (u) = decl;
  	  OMP_CLAUSE_CHAIN (u) = list;
  	  list = u;
*************** c_parser_omp_clause_reduction (c_parser
*** 18549,18554 ****
--- 18893,18907 ----
  	  code = MULT_EXPR;
  	  break;
  	case CPP_MINUS:
+ 	  if (is_omp)
+ 	    {
+ 	      location_t loc = c_parser_peek_token (parser)->location;
+ 	      gcc_rich_location richloc (loc);
+ 	      richloc.add_fixit_replace ("+");
+ 	      warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 			  "%<-%> operator for reductions deprecated in "
+ 			  "OpenMP 5.2");
+ 	    }
  	  code = MINUS_EXPR;
  	  break;
  	case CPP_AND:
*************** c_parser_omp_clause_allocate (c_parser *
*** 19257,19262 ****
--- 19610,19855 ----
    return nl;
  }
  
+ /* OpenMP 5.0:
+    uses_allocators ( allocator-list )
+ 
+    allocator-list:
+    allocator
+    allocator , allocator-list
+    allocator ( traits-array )
+    allocator ( traits-array ) , allocator-list
+ 
+    Deprecated in 5.2, removed in 6.0: 'allocator(trait-array)' syntax.
+ 
+    OpenMP 5.2:
+ 
+    uses_allocators ( modifier : allocator-list )
+    uses_allocators ( modifier , modifier : allocator-list )
+ 
+    OpenMP 6.0:
+    uses_allocators ( [modifier-list :] allocator-list [; ...] )
+ 
+    modifier:
+    traits ( traits-array )
+    memspace ( mem-space-handle )  */
+ 
+ static tree
+ c_parser_omp_clause_uses_allocators (c_parser *parser, tree list)
+ {
+   location_t clause_loc = c_parser_peek_token (parser)->location;
+   tree nl = list;
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return list;
+ 
+ parse_next:
+ 
+   bool has_modifiers = false;
+   bool seen_allocators = false;
+   tree memspace_expr = NULL_TREE;
+   tree traits_var = NULL_TREE;
+ 
+   if (c_parser_next_token_is (parser, CPP_NAME)
+       && c_parser_peek_2nd_token (parser)->type == CPP_OPEN_PAREN)
+     {
+       unsigned int n = 3;
+       const char *p
+ 	= IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       if ((strcmp (p, "traits") == 0 || strcmp (p, "memspace") == 0)
+ 	  && c_parser_check_balanced_raw_token_sequence (parser, &n)
+ 	  && (c_parser_peek_nth_token_raw (parser, n)->type
+ 	      == CPP_CLOSE_PAREN))
+ 	{
+ 	  if (c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 	      == CPP_COLON)
+ 	    has_modifiers = true;
+ 	  else if (c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 		   == CPP_COMMA
+ 		   && (c_parser_peek_nth_token_raw (parser, n + 2)->type
+ 		       == CPP_NAME)
+ 		   && (c_parser_peek_nth_token_raw (parser, n + 3)->type
+ 		       == CPP_OPEN_PAREN))
+ 	    {
+ 	      c_token *tok = c_parser_peek_nth_token_raw (parser, n + 2);
+ 	      const char *q = IDENTIFIER_POINTER (tok->value);
+ 	      n += 4;
+ 	      if ((strcmp (q, "traits") == 0
+ 		   || strcmp (q, "memspace") == 0)
+ 		  && c_parser_check_balanced_raw_token_sequence (parser, &n)
+ 		  && (c_parser_peek_nth_token_raw (parser, n)->type
+ 		      == CPP_CLOSE_PAREN))
+ 		{
+ 		  if (c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 		      == CPP_COLON)
+ 		    has_modifiers = true;
+ 		  if ((c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 		       == CPP_COMMA)
+ 		      && (c_parser_peek_nth_token_raw (parser, n + 2)->type
+ 			  == CPP_NAME))
+ 		    {
+ 		      c_token *tok
+ 			= c_parser_peek_nth_token_raw (parser, n + 2);
+ 		      const char *m = IDENTIFIER_POINTER (tok->value);
+ 		      if (strcmp (p, m) == 0 || strcmp (q, m) == 0)
+ 			{
+ 			  error_at (tok->location, "duplicate %qs modifier", m);
+ 			  goto end;
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+       if (has_modifiers)
+ 	{
+ 	  c_parser_consume_token (parser);
+ 	  matching_parens parens2;
+ 	  parens2.require_open (parser);
+ 	  c_expr expr = c_parser_expr_no_commas (parser, NULL);
+ 	  if (expr.value == error_mark_node)
+ 	    ;
+ 	  else if (strcmp (p, "traits") == 0)
+ 	    {
+ 	      traits_var = expr.value;
+ 	      traits_var = c_fully_fold (traits_var, false, NULL);
+ 	    }
+ 	  else
+ 	    {
+ 	      memspace_expr = expr.value;
+ 	      memspace_expr = c_fully_fold (memspace_expr, false, NULL);
+ 	    }
+ 	  parens2.skip_until_found_close (parser);
+ 	  if (c_parser_next_token_is (parser, CPP_COMMA))
+ 	    {
+ 	      c_parser_consume_token (parser);
+ 	      c_token *tok = c_parser_peek_token (parser);
+ 	      const char *q = "";
+ 	      if (c_parser_next_token_is (parser, CPP_NAME))
+ 		q = IDENTIFIER_POINTER (tok->value);
+ 	      if (strcmp (q, "traits") != 0 && strcmp (q, "memspace") != 0)
+ 		{
+ 		  c_parser_error (parser, "expected %<traits%> or "
+ 				  "%<memspace%>");
+ 		  parens.skip_until_found_close (parser);
+ 		  return list;
+ 		}
+ 	      else if (strcmp (p, q) == 0)
+ 		{
+ 		  error_at (tok->location, "duplicate %qs modifier", p);
+ 		  parens.skip_until_found_close (parser);
+ 		  return list;
+ 		}
+ 	      c_parser_consume_token (parser);
+ 	      if (!parens2.require_open (parser))
+ 		{
+ 		  parens.skip_until_found_close (parser);
+ 		  return list;
+ 		}
+ 	      expr = c_parser_expr_no_commas (parser, NULL);
+ 	      if (strcmp (q, "traits") == 0)
+ 		{
+ 		  traits_var = expr.value;
+ 		  traits_var = c_fully_fold (traits_var, false, NULL);
+ 		}
+ 	      else
+ 		{
+ 		  memspace_expr = expr.value;
+ 		  memspace_expr = c_fully_fold (memspace_expr, false, NULL);
+ 		}
+ 	      parens2.skip_until_found_close (parser);
+ 	    }
+ 	  if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
+ 	    goto end;
+ 	}
+     }
+ 
+   while (c_parser_next_token_is (parser, CPP_NAME))
+     {
+       location_t alloc_loc = c_parser_peek_token (parser)->location;
+       c_token *tok = c_parser_peek_token (parser);
+       const char *tok_s = IDENTIFIER_POINTER (tok->value);
+       tree t = lookup_name (tok->value);
+       if (t == NULL_TREE)
+ 	{
+ 	  undeclared_variable (tok->location, tok->value);
+ 	  t = error_mark_node;
+ 	}
+       c_parser_consume_token (parser);
+ 
+       /* Legacy traits syntax.  */
+       tree legacy_traits = NULL_TREE;
+       if (c_parser_next_token_is (parser, CPP_OPEN_PAREN)
+ 	  && c_parser_peek_2nd_token (parser)->type == CPP_NAME
+ 	  && c_parser_peek_nth_token_raw (parser, 3)->type == CPP_CLOSE_PAREN)
+ 	{
+ 	  matching_parens parens2;
+ 	  parens2.require_open (parser);
+ 	  const char *tok_a
+ 	    = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+ 	  c_expr expr = c_parser_expr_no_commas (parser, NULL);
+ 	  location_t close_loc = c_parser_peek_token (parser)->location;
+ 	  parens2.skip_until_found_close (parser);
+ 
+ 	  if (has_modifiers)
+ 	    {
+ 	      error_at (make_location (alloc_loc, alloc_loc, close_loc),
+ 			"legacy %<%s(%s)%> traits syntax not allowed in "
+ 			"%<uses_allocators%> clause when using modifiers",
+ 			tok_s, tok_a);
+ 	      goto end;
+ 	    }
+ 	  legacy_traits = c_fully_fold (expr.value, false, NULL);
+ 	  if (legacy_traits == error_mark_node)
+ 	    goto end;
+ 
+ 	  gcc_rich_location richloc (make_location (alloc_loc, alloc_loc, close_loc));
+ 	  if (nl == list)
+ 	    {
+ 	      /* Fixit only works well if it is the only first item.  */
+ 	      richloc.add_fixit_replace (alloc_loc, "traits");
+ 	      richloc.add_fixit_insert_after (close_loc, ": ");
+ 	      richloc.add_fixit_insert_after (close_loc, tok_s);
+ 	    }
+ 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 		      "the specification of arguments to %<uses_allocators%> "
+ 		      "where each item is of the form %<allocator(traits)%> is "
+ 		      "deprecated since OpenMP 5.2");
+ 	}
+ 
+       if (seen_allocators && has_modifiers)
+ 	{
+ 	  error_at (c_parser_peek_token (parser)->location,
+ 		    "%<uses_allocators%> clause only accepts a single "
+ 		    "allocator when using modifiers");
+ 	  goto end;
+ 	}
+       seen_allocators = true;
+ 
+       tree c = build_omp_clause (clause_loc,
+ 				 OMP_CLAUSE_USES_ALLOCATORS);
+       OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR (c) = t;
+       OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE (c) = memspace_expr;
+       OMP_CLAUSE_USES_ALLOCATORS_TRAITS (c) = (legacy_traits
+ 					       ? legacy_traits : traits_var);
+       OMP_CLAUSE_CHAIN (c) = nl;
+       nl = c;
+ 
+       if (c_parser_next_token_is (parser, CPP_COMMA))
+ 	c_parser_consume_token (parser);
+       else
+ 	break;
+     }
+ 
+   if (c_parser_next_token_is (parser, CPP_SEMICOLON))
+     {
+       c_parser_consume_token (parser);
+       goto parse_next;
+     }
+ 
+  end:
+   parens.skip_until_found_close (parser);
+   return nl;
+ }
+ 
  /* OpenMP 4.0:
     linear ( variable-list )
     linear ( variable-list : expression )
*************** static tree
*** 19279,19284 ****
--- 19872,19879 ----
  c_parser_omp_clause_linear (c_parser *parser, tree list)
  {
    location_t clause_loc = c_parser_peek_token (parser)->location;
+   location_t rm1_loc = UNKNOWN_LOCATION, rm2_loc = UNKNOWN_LOCATION;
+   location_t after_colon_loc = UNKNOWN_LOCATION;
    tree nl, c, step;
    enum omp_clause_linear_kind kind = OMP_CLAUSE_LINEAR_DEFAULT;
    bool old_linear_modifier = false;
*************** c_parser_omp_clause_linear (c_parser *pa
*** 19298,19303 ****
--- 19893,19900 ----
        if (kind != OMP_CLAUSE_LINEAR_DEFAULT)
  	{
  	  old_linear_modifier = true;
+ 	  rm1_loc = make_location (tok->location, tok->location,
+ 				   c_parser_peek_2nd_token (parser)->location);
  	  c_parser_consume_token (parser);
  	  c_parser_consume_token (parser);
  	}
*************** c_parser_omp_clause_linear (c_parser *pa
*** 19307,19318 ****
  				   OMP_CLAUSE_LINEAR, list);
  
    if (kind != OMP_CLAUSE_LINEAR_DEFAULT)
!     parens.skip_until_found_close (parser);
  
    if (c_parser_next_token_is (parser, CPP_COLON))
      {
        c_parser_consume_token (parser);
        location_t expr_loc = c_parser_peek_token (parser)->location;
        bool has_modifiers = false;
        if (kind == OMP_CLAUSE_LINEAR_DEFAULT
  	  && c_parser_next_token_is (parser, CPP_NAME))
--- 19904,19920 ----
  				   OMP_CLAUSE_LINEAR, list);
  
    if (kind != OMP_CLAUSE_LINEAR_DEFAULT)
!     {
!       if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN))
! 	rm2_loc = c_parser_peek_token (parser)->location;
!       parens.skip_until_found_close (parser);
!     }
  
    if (c_parser_next_token_is (parser, CPP_COLON))
      {
        c_parser_consume_token (parser);
        location_t expr_loc = c_parser_peek_token (parser)->location;
+       after_colon_loc = expr_loc;
        bool has_modifiers = false;
        if (kind == OMP_CLAUSE_LINEAR_DEFAULT
  	  && c_parser_next_token_is (parser, CPP_NAME))
*************** c_parser_omp_clause_linear (c_parser *pa
*** 19415,19420 ****
--- 20017,20043 ----
        OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER (c) = old_linear_modifier;
      }
  
+   if (old_linear_modifier)
+     {
+       gcc_rich_location richloc (clause_loc);
+       if (rm2_loc != UNKNOWN_LOCATION)
+ 	{
+ 	  richloc.add_fixit_remove (rm1_loc);
+ 	  if (after_colon_loc != UNKNOWN_LOCATION)
+ 	    {
+ 	      richloc.add_fixit_remove (rm2_loc);
+ 	      richloc.add_fixit_insert_before (after_colon_loc, "val, step (");
+ 	      location_t close_loc = c_parser_peek_token (parser)->location;
+ 	      richloc.add_fixit_insert_before (close_loc, ")");
+ 	    }
+ 	  else
+ 	    richloc.add_fixit_replace (rm2_loc, " : val");
+ 	}
+       warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 		  "specifying the list items as arguments to the "
+ 		  "modifiers is deprecated since OpenMP 5.2");
+     }
+ 
    parens.skip_until_found_close (parser);
    return nl;
  }
*************** c_parser_omp_clause_affinity (c_parser *
*** 19797,19803 ****
       iterator ( iterators-definition )  */
  
  static tree
! c_parser_omp_clause_depend (c_parser *parser, tree list)
  {
    location_t clause_loc = c_parser_peek_token (parser)->location;
    enum omp_clause_depend_kind kind = OMP_CLAUSE_DEPEND_LAST;
--- 20420,20426 ----
       iterator ( iterators-definition )  */
  
  static tree
! c_parser_omp_clause_depend (c_parser *parser, tree list, location_t here)
  {
    location_t clause_loc = c_parser_peek_token (parser)->location;
    enum omp_clause_depend_kind kind = OMP_CLAUSE_DEPEND_LAST;
*************** c_parser_omp_clause_depend (c_parser *pa
*** 19833,19841 ****
        else if (strcmp ("depobj", p) == 0)
  	kind = OMP_CLAUSE_DEPEND_DEPOBJ;
        else if (strcmp ("sink", p) == 0)
! 	dkind = OMP_CLAUSE_DOACROSS_SINK;
        else if (strcmp ("source", p) == 0)
! 	dkind = OMP_CLAUSE_DOACROSS_SOURCE;
        else
  	goto invalid_kind;
        break;
--- 20456,20478 ----
        else if (strcmp ("depobj", p) == 0)
  	kind = OMP_CLAUSE_DEPEND_DEPOBJ;
        else if (strcmp ("sink", p) == 0)
! 	{
! 	  gcc_rich_location richloc (clause_loc);
! 	  richloc.add_fixit_replace (here, "doacross");
! 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
! 		      "%<sink%> modifier with %<depend%> clause deprecated "
! 		      "since OpenMP 5.2, use with %<doacross%>");
! 	  dkind = OMP_CLAUSE_DOACROSS_SINK;
! 	}
        else if (strcmp ("source", p) == 0)
! 	{
! 	  gcc_rich_location richloc (clause_loc);
! 	  richloc.add_fixit_replace (here, "doacross");
! 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
! 		      "%<source%> modifier with %<depend%> clause deprecated "
! 		      "since OpenMP 5.2, use with %<doacross%>");
! 	  dkind = OMP_CLAUSE_DOACROSS_SOURCE;
! 	}
        else
  	goto invalid_kind;
        break;
*************** c_parser_omp_clause_doacross (c_parser *
*** 19964,19969 ****
--- 20601,20696 ----
    return list;
  }
  
+ /* OpenMP 6.1:
+    dyn_groupprivate ( [fallback-modifier : ] integer-expression )
+ 
+    fallback-modifier
+       fallback( abort | default_mem | null )  */
+ 
+ static tree
+ c_parser_omp_clause_dyn_groupprivate (c_parser *parser, tree list)
+ {
+   location_t clause_loc = c_parser_peek_token (parser)->location;
+   matching_parens parens;
+   if (!parens.require_open (parser))
+     return list;
+ 
+   enum omp_clause_fallback_kind kind = OMP_CLAUSE_FALLBACK_UNSPECIFIED;
+ 
+   unsigned n = 3;
+   if (c_parser_next_token_is (parser, CPP_NAME)
+       && (c_parser_peek_2nd_token (parser)->type == CPP_COLON
+ 	  || (c_parser_peek_2nd_token (parser)->type == CPP_OPEN_PAREN
+ 	      && c_parser_check_balanced_raw_token_sequence (parser, &n)
+ 	      && (c_parser_peek_nth_token_raw (parser, n)->type
+ 		  == CPP_CLOSE_PAREN)
+ 	      && (c_parser_peek_nth_token_raw (parser, n + 1)->type
+ 		  == CPP_COLON))))
+     {
+       const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       if (strcmp (p, "fallback") != 0)
+ 	{
+ 	  c_parser_error (parser, "expected %<fallback%> modifier");
+ 	  return list;
+ 	}
+       c_parser_consume_token (parser);
+       if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
+ 	return list;
+       p = "";
+       if (c_parser_next_token_is (parser, CPP_NAME))
+ 	p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       if (strcmp (p, "abort") == 0)
+ 	kind = OMP_CLAUSE_FALLBACK_ABORT;
+       else if (strcmp (p, "default_mem") == 0)
+ 	kind = OMP_CLAUSE_FALLBACK_DEFAULT_MEM;
+       else if (strcmp (p, "null") == 0)
+ 	kind = OMP_CLAUSE_FALLBACK_NULL;
+       else
+ 	{
+ 	  c_parser_error (parser, "expected %<abort%>, %<default_mem%>, or "
+ 				  "%<null%> as fallback mode");
+ 	  return list;
+ 	}
+       c_parser_consume_token (parser);
+       if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>"))
+ 	return list;
+       if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
+ 	return list;
+     }
+   location_t expr_loc = c_parser_peek_token (parser)->location;
+   c_expr expr = c_parser_expr_no_commas (parser, NULL);
+   expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
+   tree size = c_fully_fold (expr.value, false, NULL);
+   parens.skip_until_found_close (parser);
+ 
+   if (!INTEGRAL_TYPE_P (TREE_TYPE (size)))
+     {
+       error_at (expr_loc, "expected integer expression");
+       return list;
+     }
+ 
+   /* Attempt to statically determine when the number is negative.  */
+   tree c = fold_build2_loc (expr_loc, LT_EXPR, boolean_type_node, size,
+ 			    build_int_cst (TREE_TYPE (size), 0));
+   protected_set_expr_location (c, expr_loc);
+   if (c == boolean_true_node)
+     {
+       warning_at (expr_loc, OPT_Wopenmp,
+ 		  "%<dyn_groupprivate%> value must be non-negative");
+       size = integer_zero_node;
+     }
+   check_no_duplicate_clause (list, OMP_CLAUSE_DYN_GROUPPRIVATE,
+ 			     "dyn_groupprivate");
+ 
+   c = build_omp_clause (clause_loc, OMP_CLAUSE_DYN_GROUPPRIVATE);
+   OMP_CLAUSE_DYN_GROUPPRIVATE_KIND (c) = kind;
+   OMP_CLAUSE_DYN_GROUPPRIVATE_EXPR (c) = size;
+   OMP_CLAUSE_CHAIN (c) = list;
+   list = c;
+ 
+   return list;
+ }
+ 
  /* OpenMP 4.0:
     map ( map-kind: variable-list )
     map ( variable-list )
*************** c_parser_omp_clause_doacross (c_parser *
*** 19981,19994 ****
     map ( [map-type-modifier[,] ...] map-kind: variable-list )
  
     map-type-modifier:
!      always | close */
  
  static tree
! c_parser_omp_clause_map (c_parser *parser, tree list)
  {
    location_t clause_loc = c_parser_peek_token (parser)->location;
-   enum gomp_map_kind kind = GOMP_MAP_TOFROM;
    tree nl, c;
  
    matching_parens parens;
    if (!parens.require_open (parser))
--- 20708,20721 ----
     map ( [map-type-modifier[,] ...] map-kind: variable-list )
  
     map-type-modifier:
!      always | close | present | iterator (iterators-definition)  */
  
  static tree
! c_parser_omp_clause_map (c_parser *parser, tree list, bool declare_mapper_p)
  {
    location_t clause_loc = c_parser_peek_token (parser)->location;
    tree nl, c;
+   enum gomp_map_kind kind = declare_mapper_p ? GOMP_MAP_UNSET : GOMP_MAP_TOFROM;
  
    matching_parens parens;
    if (!parens.require_open (parser))
*************** c_parser_omp_clause_map (c_parser *parse
*** 19996,20023 ****
  
    int pos = 1;
    int map_kind_pos = 0;
!   while (c_parser_peek_nth_token_raw (parser, pos)->type == CPP_NAME)
      {
!       if (c_parser_peek_nth_token_raw (parser, pos + 1)->type == CPP_COLON)
  	{
  	  map_kind_pos = pos;
  	  break;
  	}
  
!       if (c_parser_peek_nth_token_raw (parser, pos + 1)->type == CPP_COMMA)
  	pos++;
        pos++;
      }
  
    int always_modifier = 0;
    int close_modifier = 0;
    int present_modifier = 0;
    for (int pos = 1; pos < map_kind_pos; ++pos)
      {
        c_token *tok = c_parser_peek_token (parser);
  
        if (tok->type == CPP_COMMA)
  	{
  	  c_parser_consume_token (parser);
  	  continue;
  	}
--- 20723,20790 ----
  
    int pos = 1;
    int map_kind_pos = 0;
!   int iterator_length = 0;
!   for (;;)
      {
!       c_token *tok = c_parser_peek_nth_token_raw (parser, pos);
!       if (tok->type != CPP_NAME)
! 	break;
! 
!       const char *p = IDENTIFIER_POINTER (tok->value);
!       c_token *next_tok = c_parser_peek_nth_token_raw (parser, pos + 1);
!       if (strcmp (p, "iterator") == 0 && next_tok->type == CPP_OPEN_PAREN)
! 	{
! 	  unsigned n = pos + 2;
! 	  if (c_parser_check_balanced_raw_token_sequence (parser, &n)
! 	      && c_parser_peek_nth_token_raw (parser, n)->type
! 		 == CPP_CLOSE_PAREN)
! 	    {
! 	      iterator_length = n - pos + 1;
! 	      pos = n;
! 	      next_tok = c_parser_peek_nth_token_raw (parser, pos + 1);
! 	    }
! 	}
! 
!       if (next_tok->type == CPP_COLON)
  	{
  	  map_kind_pos = pos;
  	  break;
  	}
  
!       if (next_tok->type == CPP_COMMA)
  	pos++;
+       else if (c_parser_peek_nth_token_raw (parser, pos + 1)->type
+ 	       == CPP_OPEN_PAREN)
+ 	{
+ 	  unsigned int npos = pos + 2;
+ 	  if (c_parser_check_balanced_raw_token_sequence (parser, &npos)
+ 	      && (c_parser_peek_nth_token_raw (parser, npos)->type
+ 		  == CPP_CLOSE_PAREN)
+ 	      && (c_parser_peek_nth_token_raw (parser, npos + 1)->type
+ 		  == CPP_COMMA))
+ 	    pos = npos + 1;
+ 	}
+ 
        pos++;
      }
  
    int always_modifier = 0;
    int close_modifier = 0;
    int present_modifier = 0;
+   int mapper_modifier = 0;
+   int num_commas = 0;
+   int num_identifiers = 0;
+   tree mapper_name = NULL_TREE;
+   tree iterators = NULL_TREE;
    for (int pos = 1; pos < map_kind_pos; ++pos)
      {
        c_token *tok = c_parser_peek_token (parser);
  
        if (tok->type == CPP_COMMA)
  	{
+ 	  ++num_commas;
+ 	  if (num_commas > num_identifiers)
+ 	    c_parser_error (parser, "illegal comma");
  	  c_parser_consume_token (parser);
  	  continue;
  	}
*************** c_parser_omp_clause_map (c_parser *parse
*** 20032,20037 ****
--- 20799,20805 ----
  	      return list;
  	    }
  	  always_modifier++;
+ 	  c_parser_consume_token (parser);
  	}
        else if (strcmp ("close", p) == 0)
  	{
*************** c_parser_omp_clause_map (c_parser *parse
*** 20042,20047 ****
--- 20810,20886 ----
  	      return list;
  	    }
  	  close_modifier++;
+ 	  c_parser_consume_token (parser);
+ 	}
+       else if (strcmp ("iterator", p) == 0)
+ 	{
+ 	  if (iterators)
+ 	    {
+ 	      c_parser_error (parser, "too many %<iterator%> modifiers");
+ 	      parens.skip_until_found_close (parser);
+ 	      return list;
+ 	    }
+ 	  iterators = c_parser_omp_iterators (parser);
+ 	  pos += iterator_length - 1;
+ 	}
+       else if (strcmp ("mapper", p) == 0)
+ 	{
+ 	  c_parser_consume_token (parser);
+ 
+ 	  matching_parens mparens;
+ 	  if (mparens.require_open (parser))
+ 	    {
+ 	      if (mapper_modifier)
+ 		{
+ 		  c_parser_error (parser, "too many %<mapper%> modifiers");
+ 		  /* Assume it's a well-formed mapper modifier, even if it
+ 		     seems to be in the wrong place.  */
+ 		  c_parser_consume_token (parser);
+ 		  mparens.require_close (parser);
+ 		  parens.skip_until_found_close (parser);
+ 		  return list;
+ 		}
+ 
+ 	      tok = c_parser_peek_token (parser);
+ 
+ 	      switch (tok->type)
+ 		{
+ 		case CPP_NAME:
+ 		  {
+ 		    mapper_name = tok->value;
+ 		    c_parser_consume_token (parser);
+ 		    if (declare_mapper_p)
+ 		      {
+ 			error_at (tok->location,
+ 				  "in %<declare mapper%> directives, parameter "
+ 				  "to %<mapper%> modifier must be %<default%>");
+ 		      }
+ 		  }
+ 		  break;
+ 
+ 		case CPP_KEYWORD:
+ 		  if (tok->keyword == RID_DEFAULT)
+ 		    {
+ 		      c_parser_consume_token (parser);
+ 		      break;
+ 		    }
+ 		  /* Fallthrough.  */
+ 
+ 		default:
+ 		  error_at (tok->location,
+ 			    "expected identifier or %<default%>");
+ 		  return list;
+ 		}
+ 
+ 	      if (!mparens.require_close (parser))
+ 		{
+ 		  parens.skip_until_found_close (parser);
+ 		  return list;
+ 		}
+ 
+ 	      mapper_modifier++;
+ 	      pos += 3;
+ 	    }
  	}
        else if (strcmp ("present", p) == 0)
  	{
*************** c_parser_omp_clause_map (c_parser *parse
*** 20052,20067 ****
  	      return list;
  	    }
  	  present_modifier++;
  	}
        else
  	{
  	  c_parser_error (parser, "%<map%> clause with map-type modifier other "
! 				  "than %<always%>, %<close%> or %<present%>");
  	  parens.skip_until_found_close (parser);
  	  return list;
  	}
! 
! 	c_parser_consume_token (parser);
      }
  
    if (c_parser_next_token_is (parser, CPP_NAME)
--- 20891,20916 ----
  	      return list;
  	    }
  	  present_modifier++;
+ 	  c_parser_consume_token (parser);
  	}
        else
  	{
  	  c_parser_error (parser, "%<map%> clause with map-type modifier other "
! 				  "than %<always%>, %<close%>, %<iterator%>, "
! 				  "%<mapper%> or %<present%>");
  	  parens.skip_until_found_close (parser);
  	  return list;
  	}
!       ++num_identifiers;
!       if (num_identifiers - 1 > num_commas)
! 	{
! 	  gcc_rich_location richloc (clause_loc);
! 	  richloc.add_fixit_insert_before (tok->location, ",");
! 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
! 		      "%<map%> clause modifiers without comma separation is "
! 		      "deprecated since OpenMP 5.2");
! 	}
!       num_commas = num_identifiers - 1;
      }
  
    if (c_parser_next_token_is (parser, CPP_NAME)
*************** c_parser_omp_clause_map (c_parser *parse
*** 20105,20112 ****
    nl = c_parser_omp_variable_list (parser, clause_loc, OMP_CLAUSE_MAP, list,
  				   true);
  
    for (c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
!     OMP_CLAUSE_SET_MAP_KIND (c, kind);
  
    parens.skip_until_found_close (parser);
    return nl;
--- 20954,20993 ----
    nl = c_parser_omp_variable_list (parser, clause_loc, OMP_CLAUSE_MAP, list,
  				   true);
  
+   tree last_new = NULL_TREE;
+ 
+   if (iterators)
+     {
+       tree block = pop_scope ();
+       if (iterators == error_mark_node)
+ 	iterators = NULL_TREE;
+       else
+ 	TREE_VEC_ELT (iterators, 5) = block;
+     }
+ 
    for (c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
!     {
!       OMP_CLAUSE_SET_MAP_KIND (c, kind);
!       OMP_CLAUSE_ITERATORS (c) = iterators;
!       last_new = c;
!     }
! 
!   if (mapper_name)
!     {
!       tree name = build_omp_clause (input_location, OMP_CLAUSE_MAP);
!       OMP_CLAUSE_SET_MAP_KIND (name, GOMP_MAP_PUSH_MAPPER_NAME);
!       OMP_CLAUSE_DECL (name) = mapper_name;
!       OMP_CLAUSE_CHAIN (name) = nl;
!       nl = name;
! 
!       gcc_assert (last_new);
! 
!       name = build_omp_clause (input_location, OMP_CLAUSE_MAP);
!       OMP_CLAUSE_SET_MAP_KIND (name, GOMP_MAP_POP_MAPPER_NAME);
!       OMP_CLAUSE_DECL (name) = null_pointer_node;
!       OMP_CLAUSE_CHAIN (name) = OMP_CLAUSE_CHAIN (last_new);
!       OMP_CLAUSE_CHAIN (last_new) = name;
!     }
  
    parens.skip_until_found_close (parser);
    return nl;
*************** c_parser_omp_clause_proc_bind (c_parser
*** 20272,20278 ****
        if (strcmp ("primary", p) == 0)
  	kind = OMP_CLAUSE_PROC_BIND_PRIMARY;
        else if (strcmp ("master", p) == 0)
! 	kind = OMP_CLAUSE_PROC_BIND_MASTER;
        else if (strcmp ("close", p) == 0)
  	kind = OMP_CLAUSE_PROC_BIND_CLOSE;
        else if (strcmp ("spread", p) == 0)
--- 21153,21167 ----
        if (strcmp ("primary", p) == 0)
  	kind = OMP_CLAUSE_PROC_BIND_PRIMARY;
        else if (strcmp ("master", p) == 0)
! 	{
! 	  gcc_rich_location richloc (clause_loc);
! 	  richloc.add_fixit_replace (c_parser_peek_token (parser)->location,
! 				     "primary");
! 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
! 		      "%<master%> affinity deprecated since OpenMP 5.1, "
! 		      "use %<primary%>");
! 	  kind = OMP_CLAUSE_PROC_BIND_MASTER;
! 	}
        else if (strcmp ("close", p) == 0)
  	kind = OMP_CLAUSE_PROC_BIND_CLOSE;
        else if (strcmp ("spread", p) == 0)
*************** c_parser_omp_clause_device_type (c_parse
*** 20346,20353 ****
     to ( variable-list )
  
     OpenMP 5.1:
!    from ( [present :] variable-list )
!    to ( [present :] variable-list ) */
  
  static tree
  c_parser_omp_clause_from_to (c_parser *parser, enum omp_clause_code kind,
--- 21235,21245 ----
     to ( variable-list )
  
     OpenMP 5.1:
!    from ( [motion-modifier[,] [motion-modifier[,]...]:] variable-list )
!    to ( [motion-modifier[,] [motion-modifier[,]...]:] variable-list )
! 
!    motion-modifier:
!      present | iterator (iterators-definition)  */
  
  static tree
  c_parser_omp_clause_from_to (c_parser *parser, enum omp_clause_code kind,
*************** c_parser_omp_clause_from_to (c_parser *p
*** 20358,20375 ****
    if (!parens.require_open (parser))
      return list;
  
    bool present = false;
!   c_token *token = c_parser_peek_token (parser);
  
!   if (token->type == CPP_NAME
!       && strcmp (IDENTIFIER_POINTER (token->value), "present") == 0
!       && c_parser_peek_2nd_token (parser)->type == CPP_COLON)
      {
!       present = true;
!       c_parser_consume_token (parser);
!       c_parser_consume_token (parser);
      }
  
    tree nl = c_parser_omp_variable_list (parser, loc, kind, list);
    parens.skip_until_found_close (parser);
  
--- 21250,21334 ----
    if (!parens.require_open (parser))
      return list;
  
+   int pos = 1, colon_pos = 0;
+   int iterator_length = 0;
+ 
+   while (c_parser_peek_nth_token_raw (parser, pos)->type == CPP_NAME)
+     {
+       const char *identifier =
+ 	IDENTIFIER_POINTER (c_parser_peek_nth_token_raw (parser, pos)->value);
+       if (c_parser_peek_nth_token_raw (parser, pos + 1)->type
+ 	  == CPP_OPEN_PAREN)
+ 	{
+ 	  unsigned int npos = pos + 2;
+ 	  if (c_parser_check_balanced_raw_token_sequence (parser, &npos)
+ 	      && (c_parser_peek_nth_token_raw (parser, npos)->type
+ 		  == CPP_CLOSE_PAREN))
+ 	    {
+ 	      if (strcmp (identifier, "iterator") == 0)
+ 		iterator_length = npos - pos + 1;
+ 	      pos = npos;
+ 	    }
+ 	}
+       if (c_parser_peek_nth_token_raw (parser, pos + 1)->type == CPP_COMMA)
+ 	pos += 2;
+       else
+ 	pos++;
+       if (c_parser_peek_nth_token_raw (parser, pos)->type == CPP_COLON)
+ 	{
+ 	  colon_pos = pos;
+ 	  break;
+ 	}
+     }
+ 
    bool present = false;
!   tree iterators = NULL_TREE;
  
!   for (int pos = 1; pos < colon_pos; ++pos)
      {
!       c_token *token = c_parser_peek_token (parser);
!       if (token->type == CPP_COMMA)
! 	{
! 	  c_parser_consume_token (parser);
! 	  continue;
! 	}
!       const char *p = IDENTIFIER_POINTER (token->value);
!       if (strcmp ("present", p) == 0)
! 	{
! 	  if (present)
! 	    {
! 	      c_parser_error (parser, "too many %<present%> modifiers");
! 	      parens.skip_until_found_close (parser);
! 	      return list;
! 	    }
! 	  present = true;
! 	  c_parser_consume_token (parser);
! 	}
!       else if (strcmp ("iterator", p) == 0)
! 	{
! 	  if (iterators)
! 	    {
! 	      c_parser_error (parser, "too many %<iterator%> modifiers");
! 	      parens.skip_until_found_close (parser);
! 	      return list;
! 	    }
! 	  iterators = c_parser_omp_iterators (parser);
! 	  pos += iterator_length - 1;
! 	}
!       else
! 	{
! 	  error_at (token->location,
! 		    "%qs clause with modifier other than %<iterator%> or "
! 		    "%<present%>",
! 		    kind == OMP_CLAUSE_TO ? "to" : "from");
! 	  parens.skip_until_found_close (parser);
! 	  return list;
! 	}
      }
  
+   if (colon_pos)
+     c_parser_require (parser, CPP_COLON, "expected %<:%>");
+ 
    tree nl = c_parser_omp_variable_list (parser, loc, kind, list);
    parens.skip_until_found_close (parser);
  
*************** c_parser_omp_clause_from_to (c_parser *p
*** 20377,20382 ****
--- 21336,21354 ----
      for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
        OMP_CLAUSE_MOTION_PRESENT (c) = 1;
  
+   if (iterators)
+     {
+       tree block = pop_scope ();
+       if (iterators == error_mark_node)
+ 	iterators = NULL_TREE;
+       else
+ 	TREE_VEC_ELT (iterators, 5) = block;
+     }
+ 
+   if (iterators)
+     for (tree c = nl; c != list; c = OMP_CLAUSE_CHAIN (c))
+       OMP_CLAUSE_ITERATORS (c) = iterators;
+ 
    return nl;
  }
  
*************** c_parser_omp_all_clauses (c_parser *pars
*** 21406,21411 ****
--- 22378,22388 ----
  	case PRAGMA_OMP_CLAUSE_TO:
  	  if ((mask & (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_LINK)) != 0)
  	    {
+ 	      gcc_rich_location richloc (here);
+ 	      richloc.add_fixit_replace ("enter");
+ 	      warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 			  "%<to%> clause with %<declare target%> deprecated "
+ 			  "since OpenMP 5.2, use %<enter%>");
  	      tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ENTER,
  						      clauses);
  	      for (tree c = nl; c != clauses; c = OMP_CLAUSE_CHAIN (c))
*************** c_parser_omp_all_clauses (c_parser *pars
*** 21446,21457 ****
  	  clauses = c_parser_omp_clause_linear (parser, clauses);
  	  c_name = "linear";
  	  break;
  	case PRAGMA_OMP_CLAUSE_AFFINITY:
  	  clauses = c_parser_omp_clause_affinity (parser, clauses);
  	  c_name = "affinity";
  	  break;
  	case PRAGMA_OMP_CLAUSE_DEPEND:
! 	  clauses = c_parser_omp_clause_depend (parser, clauses);
  	  c_name = "depend";
  	  break;
  	case PRAGMA_OMP_CLAUSE_DOACROSS:
--- 22423,22438 ----
  	  clauses = c_parser_omp_clause_linear (parser, clauses);
  	  c_name = "linear";
  	  break;
+ 	case PRAGMA_OMP_CLAUSE_USES_ALLOCATORS:
+ 	  clauses = c_parser_omp_clause_uses_allocators (parser, clauses);
+ 	  c_name = "uses_allocators";
+ 	  break;
  	case PRAGMA_OMP_CLAUSE_AFFINITY:
  	  clauses = c_parser_omp_clause_affinity (parser, clauses);
  	  c_name = "affinity";
  	  break;
  	case PRAGMA_OMP_CLAUSE_DEPEND:
! 	  clauses = c_parser_omp_clause_depend (parser, clauses, here);
  	  c_name = "depend";
  	  break;
  	case PRAGMA_OMP_CLAUSE_DOACROSS:
*************** c_parser_omp_all_clauses (c_parser *pars
*** 21462,21467 ****
--- 22443,22452 ----
  	  clauses = c_parser_omp_clause_destroy (parser, clauses);
  	  c_name = "destroy";
  	  break;
+ 	case PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE:
+ 	  clauses = c_parser_omp_clause_dyn_groupprivate (parser, clauses);
+ 	  c_name = "dyn_groupprivate";
+ 	  break;
  	case PRAGMA_OMP_CLAUSE_INIT:
  	  clauses = c_parser_omp_clause_init (parser, clauses);
  	  c_name = "init";
*************** c_parser_omp_all_clauses (c_parser *pars
*** 21475,21481 ****
  	  c_name = "interop";
  	  break;
  	case PRAGMA_OMP_CLAUSE_MAP:
! 	  clauses = c_parser_omp_clause_map (parser, clauses);
  	  c_name = "map";
  	  break;
  	case PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR:
--- 22460,22466 ----
  	  c_name = "interop";
  	  break;
  	case PRAGMA_OMP_CLAUSE_MAP:
! 	  clauses = c_parser_omp_clause_map (parser, clauses, false);
  	  c_name = "map";
  	  break;
  	case PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR:
*************** c_parser_oacc_update (c_parser *parser)
*** 22349,22355 ****
  */
  
  #define OACC_WAIT_CLAUSE_MASK						\
! 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_ASYNC) )
  
  static tree
  c_parser_oacc_wait (location_t loc, c_parser *parser, char *p_name)
--- 23334,23341 ----
  */
  
  #define OACC_WAIT_CLAUSE_MASK						\
! 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_ASYNC)		\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OACC_CLAUSE_IF) )
  
  static tree
  c_parser_oacc_wait (location_t loc, c_parser *parser, char *p_name)
*************** c_parser_omp_depobj (c_parser *parser)
*** 23657,23663 ****
        c_parser_consume_token (parser);
        if (!strcmp ("depend", p))
  	{
! 	  clause = c_parser_omp_clause_depend (parser, NULL_TREE);
  	  clause = c_finish_omp_clauses (clause, C_ORT_OMP);
  	  if (!clause)
  	    clause = error_mark_node;
--- 24643,24649 ----
        c_parser_consume_token (parser);
        if (!strcmp ("depend", p))
  	{
! 	  clause = c_parser_omp_clause_depend (parser, NULL_TREE, c_loc);
  	  clause = c_finish_omp_clauses (clause, C_ORT_OMP);
  	  if (!clause)
  	    clause = error_mark_node;
*************** static tree c_parser_omp_taskloop (locat
*** 24800,24808 ****
  static tree
  c_parser_omp_master (location_t loc, c_parser *parser,
  		     char *p_name, omp_clause_mask mask, tree *cclauses,
! 		     bool *if_p)
  {
    tree block, clauses, ret;
  
    strcat (p_name, " master");
  
--- 25786,25800 ----
  static tree
  c_parser_omp_master (location_t loc, c_parser *parser,
  		     char *p_name, omp_clause_mask mask, tree *cclauses,
! 		     bool *if_p, location_t master_loc)
  {
    tree block, clauses, ret;
+   gcc_rich_location richloc (loc);
+   if (master_loc != UNKNOWN_LOCATION)
+     richloc.add_fixit_replace (master_loc, "masked");
+   warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 	      "%<master%> construct deprecated since OpenMP 5.1, use "
+ 	      "%<masked%>");
  
    strcat (p_name, " master");
  
*************** c_parser_omp_parallel (location_t loc, c
*** 25216,25221 ****
--- 26208,26214 ----
    else if (c_parser_next_token_is (parser, CPP_NAME))
      {
        const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       location_t ploc = c_parser_peek_token (parser)->location;
        if (cclauses == NULL && strcmp (p, "masked") == 0)
  	{
  	  tree cclauses_buf[C_OMP_CLAUSE_SPLIT_COUNT];
*************** c_parser_omp_parallel (location_t loc, c
*** 25253,25262 ****
  	  c_parser_consume_token (parser);
  	  if (!flag_openmp)  /* flag_openmp_simd  */
  	    return c_parser_omp_master (loc, parser, p_name, mask, cclauses,
! 					if_p);
  	  block = c_begin_omp_parallel ();
  	  tree ret = c_parser_omp_master (loc, parser, p_name, mask, cclauses,
! 					  if_p);
  	  stmt = c_finish_omp_parallel (loc,
  					cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL],
  					block);
--- 26246,26255 ----
  	  c_parser_consume_token (parser);
  	  if (!flag_openmp)  /* flag_openmp_simd  */
  	    return c_parser_omp_master (loc, parser, p_name, mask, cclauses,
! 					if_p, ploc);
  	  block = c_begin_omp_parallel ();
  	  tree ret = c_parser_omp_master (loc, parser, p_name, mask, cclauses,
! 					  if_p, ploc);
  	  stmt = c_finish_omp_parallel (loc,
  					cclauses[C_OMP_CLAUSE_SPLIT_PARALLEL],
  					block);
*************** c_parser_omp_target_exit_data (location_
*** 26275,26300 ****
       structured-block  */
  
  #define OMP_TARGET_CLAUSE_MASK					\
! 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_MAP)		\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEPEND)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOWAIT)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_PRIVATE)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_ALLOCATE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEFAULTMAP)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IN_REDUCTION)	\
- 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_THREAD_LIMIT)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR)\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR))
  
  static bool
  c_parser_omp_target (c_parser *parser, enum pragma_context context, bool *if_p)
  {
    location_t loc = c_parser_peek_token (parser)->location;
    c_parser_consume_pragma (parser);
!   tree *pc = NULL, stmt, block;
  
    if (context != pragma_stmt && context != pragma_compound)
      {
--- 27268,27296 ----
       structured-block  */
  
  #define OMP_TARGET_CLAUSE_MASK					\
! 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_ALLOCATE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEFAULTMAP)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEPEND)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE) \
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_FIRSTPRIVATE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR) \
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IF)		\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IN_REDUCTION)	\
  	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR)\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_MAP)		\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_NOWAIT)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_PRIVATE)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_THREAD_LIMIT)	\
! 	| (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_USES_ALLOCATORS))
  
  static bool
  c_parser_omp_target (c_parser *parser, enum pragma_context context, bool *if_p)
  {
    location_t loc = c_parser_peek_token (parser)->location;
    c_parser_consume_pragma (parser);
!   tree *pc = NULL, stmt, block, body, clauses;
  
    if (context != pragma_stmt && context != pragma_compound)
      {
*************** c_parser_omp_target (c_parser *parser, e
*** 26449,26458 ****
    stmt = make_node (OMP_TARGET);
    TREE_TYPE (stmt) = void_type_node;
  
!   OMP_TARGET_CLAUSES (stmt)
!     = c_parser_omp_all_clauses (parser, OMP_TARGET_CLAUSE_MASK,
! 				"#pragma omp target", false);
!   for (tree c = OMP_TARGET_CLAUSES (stmt); c; c = OMP_CLAUSE_CHAIN (c))
      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_IN_REDUCTION)
        {
  	tree nc = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP);
--- 27445,27453 ----
    stmt = make_node (OMP_TARGET);
    TREE_TYPE (stmt) = void_type_node;
  
!   clauses = c_parser_omp_all_clauses (parser, OMP_TARGET_CLAUSE_MASK,
! 				      "#pragma omp target", false);
!   for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
      if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_IN_REDUCTION)
        {
  	tree nc = build_omp_clause (OMP_CLAUSE_LOCATION (c), OMP_CLAUSE_MAP);
*************** c_parser_omp_target (c_parser *parser, e
*** 26461,26474 ****
  	OMP_CLAUSE_CHAIN (nc) = OMP_CLAUSE_CHAIN (c);
  	OMP_CLAUSE_CHAIN (c) = nc;
        }
!   OMP_TARGET_CLAUSES (stmt)
!     = c_finish_omp_clauses (OMP_TARGET_CLAUSES (stmt), C_ORT_OMP_TARGET);
!   c_omp_adjust_map_clauses (OMP_TARGET_CLAUSES (stmt), true);
  
-   pc = &OMP_TARGET_CLAUSES (stmt);
    keep_next_level ();
    block = c_begin_compound_stmt (true);
!   add_stmt (c_parser_omp_structured_block (parser, if_p));
    OMP_TARGET_BODY (stmt) = c_end_compound_stmt (loc, block, true);
  
    SET_EXPR_LOCATION (stmt, loc);
--- 27456,27474 ----
  	OMP_CLAUSE_CHAIN (nc) = OMP_CLAUSE_CHAIN (c);
  	OMP_CLAUSE_CHAIN (c) = nc;
        }
!   clauses = c_omp_instantiate_mappers (clauses);
!   clauses  = c_finish_omp_clauses (clauses, C_ORT_OMP_TARGET);
!   c_omp_adjust_map_clauses (clauses, true);
  
    keep_next_level ();
    block = c_begin_compound_stmt (true);
!   body = c_parser_omp_structured_block (parser, if_p);
! 
!   c_omp_scan_mapper_bindings (loc, &clauses, body);
! 
!   add_stmt (body);
!   OMP_TARGET_CLAUSES (stmt) = clauses;
!   pc = &OMP_TARGET_CLAUSES (stmt);
    OMP_TARGET_BODY (stmt) = c_end_compound_stmt (loc, block, true);
  
    SET_EXPR_LOCATION (stmt, loc);
*************** c_parser_omp_context_selector (c_parser
*** 26816,26832 ****
  	      break;
  	    case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	    case OMP_TRAIT_PROPERTY_BOOL_EXPR:
! 	      t = c_parser_expr_no_commas (parser, NULL).value;
  	      if (t == error_mark_node)
  		return error_mark_node;
  	      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");
  		  return error_mark_node;
  		}
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
  	    case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
--- 27816,27845 ----
  	      break;
  	    case OMP_TRAIT_PROPERTY_DEV_NUM_EXPR:
  	    case OMP_TRAIT_PROPERTY_BOOL_EXPR:
! 	      {
! 		c_expr texpr = c_parser_expr_no_commas (parser, NULL);
! 		texpr = convert_lvalue_to_rvalue (token->location, texpr,
! 						  true, true);
! 		t = texpr.value;
! 	      }
  	      if (t == error_mark_node)
  		return error_mark_node;
  	      mark_exp_read (t);
! 	      if (property_kind == OMP_TRAIT_PROPERTY_BOOL_EXPR)
! 		{
! 		  t = c_objc_common_truthvalue_conversion (token->location,
! 							   t,
! 							   boolean_type_node);
! 		  if (t == error_mark_node)
! 		    return error_mark_node;
! 		}
! 	      else if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
  		{
  		  error_at (token->location,
  			    "property must be integer expression");
  		  return error_mark_node;
  		}
+ 	      t = c_fully_fold (t, false, NULL);
  	      properties = make_trait_property (NULL_TREE, t, properties);
  	      break;
  	    case OMP_TRAIT_PROPERTY_CLAUSE_LIST:
*************** c_finish_omp_declare_variant (c_parser *
*** 26979,26984 ****
--- 27992,28021 ----
        undeclared_variable (token->location, token->value);
        variant = error_mark_node;
      }
+   else 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 (variant == fndecl)
+     {
+       error_at (token->location, "variant %qD is the same as base function",
+ 		variant);
+       variant = error_mark_node;
+     }
  
    c_parser_consume_token (parser);
  
*************** c_finish_omp_declare_variant (c_parser *
*** 27052,27080 ****
  	    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)
--- 28089,28107 ----
  	    goto fail;
  	  ctx = omp_check_context_selector (match_loc, ctx,
  					    OMP_CTX_DECLARE_VARIANT);
! 
! 	  /* The OpenMP spec says the merging rules for enclosing
! 	     "begin declare variant" contexts apply to "declare variant
! 	     directives" -- the term it uses to refer to both directive
! 	     forms.  */
! 	  if (ctx != error_mark_node
! 	      && !vec_safe_is_empty (current_omp_declare_variant_attribute))
  	    {
! 	      c_omp_declare_variant_attr a
! 		= current_omp_declare_variant_attribute->last ();
! 	      tree outer_ctx = a.selector;
! 	      ctx = omp_merge_context_selectors (match_loc, outer_ctx, ctx,
! 						 OMP_CTX_DECLARE_VARIANT);
  	    }
  	}
        else if (ccode == adjust_args)
*************** c_finish_omp_declare_variant (c_parser *
*** 27217,27234 ****
  
        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))
--- 28244,28307 ----
  
        parens.require_close (parser);
    } while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL));
+   if (variant != error_mark_node && !has_match)
+     {
+       c_parser_error (parser, "expected %<match%> clause");
+       variant = error_mark_node;
+     }
    c_parser_skip_to_pragma_eol (parser);
  
!   /* At this point, we have completed parsing of the pragma, now it's
!      on to error checking.  */
!   if (variant == error_mark_node || ctx == error_mark_node)
!     /* Previously diagnosed error.  */
!     return;
! 
!   if ((has_adjust_args || append_args_tree)
        && !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");
!       return;
!     }
! 
!   if (!omp_get_context_selector (ctx, OMP_TRAIT_SET_CONSTRUCT,
! 				 OMP_TRAIT_CONSTRUCT_SIMD))
!     /* Check that the base and variant have compatible types.  */
!     {
!       tree base_type = TREE_TYPE (fndecl);
!       tree variant_type = TREE_TYPE (variant);
!       bool unprototyped_variant
! 	= (TYPE_ARG_TYPES (variant_type) == NULL_TREE
! 	   && !TYPE_NO_NAMED_ARGS_STDARG_P (variant_type));
! 
!       if (append_args_tree
! 	  && TYPE_ARG_TYPES (base_type) == NULL_TREE
! 	  && !TYPE_NO_NAMED_ARGS_STDARG_P (base_type))
! 	{
! 	  /* The base function is a pre-C23 unprototyped function.  Without
! 	     a prototype, we don't know the offset where the append_args go.
! 	     That offset needs to be stored with the append_args in the
! 	     variant function attributes, so we cannot presently handle
! 	     this case.  */
! 	  sorry_at (append_args_loc,
! 		    "%<append_args%> with unprototyped base function "
! 		    "is not supported yet");
! 	  inform (DECL_SOURCE_LOCATION (fndecl),
! 		  "base function %qD declared here", fndecl);
! 	  return;
! 	}
!       else if (append_args_tree)
  	{
+ 	  /* Find nbase_args, the number of fixed arguments in the base
+ 	     function.  */
  	  int nappend_args = 0;
  	  int nbase_args = 0;
! 	  for (tree t = TYPE_ARG_TYPES (base_type);
  	       t && TREE_VALUE (t) != void_type_node; t = TREE_CHAIN (t))
  	    nbase_args++;
  	  for (tree t = append_args_tree; t; t = TREE_CHAIN (t))
*************** c_finish_omp_declare_variant (c_parser *
*** 27239,27373 ****
  	  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,
--- 28312,28428 ----
  	  append_args_tree = build_tree_list (build_int_cst (integer_type_node,
  							     nbase_args),
  					      append_args_tree);
! 
! 	  /* Give a specific diagnostic if the append_args parameters
! 	     of the variant are of the wrong type, or missing.  The
! 	     compatible types test below could fail to detect this if
! 	     the variant is a varargs function.  */
! 	  if (!unprototyped_variant)
  	    {
! 	      tree args = TYPE_ARG_TYPES (variant_type);
! 	      for (int i = 0; args && i < nbase_args;
! 		   i++, args = TREE_CHAIN (args))
! 		;
! 	      for (int i = 0; i < nappend_args; i++, args = TREE_CHAIN (args))
! 		if (!args || !c_omp_interop_t_p (TREE_VALUE (args)))
! 		  {
! 		    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");
! 		    return;
! 		  }
  	    }
! 
! 	  /* Perform the "implementation defined transformation" on the type
! 	     of the base function to add the append_args before checking it
! 	     for compatibility with the function variant's type.  */
! 	  tree args = TYPE_ARG_TYPES (base_type);
! 	  tree newargs = NULL_TREE;
! 	  tree lastarg = NULL_TREE;
! 	  for (int j = 0; j < nbase_args; j++, args = TREE_CHAIN (args))
  	    {
! 	      tree t = tree_cons (TREE_PURPOSE (args),
! 				  TREE_VALUE (args), NULL_TREE);
! 	      if (lastarg)
! 		TREE_CHAIN (lastarg) = t;
! 	      else
! 		newargs = t;
! 	      lastarg = t;
  	    }
! 	  tree type = lookup_name (get_identifier ("omp_interop_t"));
! 	  type = type ? TREE_TYPE (type) : pointer_sized_int_node;
! 	  for (int j = 0; j < nappend_args; j++)
  	    {
! 	      tree t = tree_cons (NULL_TREE, type, NULL_TREE);
! 	      if (lastarg)
! 		TREE_CHAIN (lastarg) = t;
! 	      else
! 		newargs = t;
! 	      lastarg = t;
  	    }
! 	  TREE_CHAIN (lastarg) = args;
! 
! 	  /* Temporarily stuff newargs into the original base_type.  */
! 	  tree saveargs = TYPE_ARG_TYPES (base_type);
! 	  TYPE_ARG_TYPES (base_type) = newargs;
! 	  bool fail = !comptypes (base_type, variant_type);
! 	  TYPE_ARG_TYPES (base_type) = saveargs;
! 
! 	  if (fail)
  	    {
! 	      error_at (token->location,
! 			"variant %qD and base %qD have incompatible types "
! 			"after %<append_args%> adjustment",
! 			variant, fndecl);
! 	      inform (DECL_SOURCE_LOCATION (variant),
! 		      "%<declare variant%> candidate %qD declared here",
! 		      variant);
! 	      return;
  	    }
! 	  else if (unprototyped_variant)
! 	    /* If we've got an unprototyped variant, copy the transformed
! 	       base arg types to the variant.  This is needed later by
! 	       modify_call_for_omp_dispatch.  */
! 	    TYPE_ARG_TYPES (variant_type) = newargs;
  	}
!       else  /* No append_args present.  */
  	{
! 	  if (!comptypes (base_type, variant_type))
! 	    {
! 	      error_at (token->location,
! 			"variant %qD and base %qD have incompatible types",
! 			variant, fndecl);
! 	      inform (DECL_SOURCE_LOCATION (variant),
! 		      "%<declare variant%> candidate %qD declared here",
! 		      variant);
! 	      return;
! 	    }
! 	  else if (TYPE_ARG_TYPES (variant_type) == NULL_TREE
! 		   && !TYPE_NO_NAMED_ARGS_STDARG_P (variant_type)
! 		   && TYPE_ARG_TYPES (base_type) != NULL_TREE)
! 	    /* If we've got an unprototyped variant but the base has
! 	       a prototype, copy the base arg types to the variant.  */
! 	    TYPE_ARG_TYPES (variant_type) = TYPE_ARG_TYPES (base_type);
  	}
      }
  
!   /* If we made it here, store the parsed information.  */
!   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 (need_device_ptr_list || append_args_tree)
      {
        tree variant_decl = tree_strip_nop_conversions (variant);
        tree t = build_tree_list (need_device_ptr_list,
*************** c_finish_omp_declare_simd (c_parser *par
*** 27414,27419 ****
--- 28469,28481 ----
        clauses[0].type = CPP_EOF;
        return;
      }
+   if (DECL_FUNCTION_VERSIONED (fndecl))
+     {
+       error_at (DECL_SOURCE_LOCATION (fndecl),
+ 		"%<#pragma omp declare %s%> cannot be used with function "
+ 		"multi-versioning", kind);
+       return;
+     }
  
    if (parms == NULL_TREE)
      parms = DECL_ARGUMENTS (fndecl);
*************** c_finish_omp_declare_simd (c_parser *par
*** 27458,27463 ****
--- 28520,28609 ----
      clauses[0].type = CPP_PRAGMA;
  }
  
+ /* This is consistent with the C++ front end.  */
+ 
+ #if !defined (NO_DOT_IN_LABEL)
+ #define JOIN_STR "."
+ #elif !defined (NO_DOLLAR_IN_LABEL)
+ #define JOIN_STR "$"
+ #else
+ #define JOIN_STR "_"
+ #endif
+ 
+ /* Helper function for OpenMP "begin declare variant" directives.
+    Function definitions inside the construct need to have their names
+    mangled according to the context selector CTX.  The DECLARATOR is
+    modified in place to point to a new identifier; the original name of
+    the function is returned.  */
+ static tree
+ omp_start_variant_function (c_declarator *declarator, tree ctx)
+ {
+   c_declarator *id = declarator;
+   while (id->kind != cdk_id)
+     {
+       id = id->declarator;
+       gcc_assert (id);
+     }
+   tree name = id->u.id.id;
+   id->u.id.id = omp_mangle_variant_name (name, ctx, JOIN_STR);
+   return name;
+ }
+ 
+ /* Helper function for OpenMP "begin declare variant" directives.  Now
+    that we have a DECL for the variant function, and BASE_NAME for the
+    base function, add an "omp declare variant base" attribute pointing
+    at CTX to the base decl, and an "omp declare variant variant"
+    attribute to the variant DECL.  */
+ static void
+ omp_finish_variant_function (tree decl, tree base_name, tree ctx)
+ {
+   /* First look up BASE_NAME and ensure it matches DECL.  */
+   tree base_decl = lookup_name (base_name);
+   if (base_decl == error_mark_node)
+     base_decl = NULL_TREE;
+   if (!base_decl)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"no declaration of base function %qs",
+ 		IDENTIFIER_POINTER (base_name));
+       return;
+     }
+ 
+   if (!comptypes (TREE_TYPE (decl), TREE_TYPE (base_decl)))
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"variant function definition does not match "
+ 		"declaration of %qE", base_decl);
+       inform (DECL_SOURCE_LOCATION (base_decl),
+ 	      "%qE declared here", base_decl);
+       return;
+     }
+ 
+   /* Now set the attributes on the base and variant decls for the middle
+      end.  */
+   omp_check_for_duplicate_variant (DECL_SOURCE_LOCATION (decl),
+ 				   base_decl, ctx);
+   tree construct
+     = omp_get_context_selector_list (ctx, OMP_TRAIT_SET_CONSTRUCT);
+   omp_mark_declare_variant (DECL_SOURCE_LOCATION (decl), decl, construct);
+   tree attrs = DECL_ATTRIBUTES (base_decl);
+   tree match_loc_node
+     = maybe_wrap_with_location (integer_zero_node,
+ 				DECL_SOURCE_LOCATION (base_decl));
+   tree loc_node = tree_cons (match_loc_node, integer_zero_node,
+ 			     build_tree_list (match_loc_node,
+ 					      integer_zero_node));
+   attrs = tree_cons (get_identifier ("omp declare variant base"),
+ 		     tree_cons (decl, ctx, loc_node), attrs);
+   DECL_ATTRIBUTES (base_decl) = attrs;
+ 
+   /* Variant functions are essentially anonymous and cannot be referenced
+      outside the compilation unit.  */
+   TREE_PUBLIC (decl) = 0;
+   DECL_COMDAT (decl) = 0;
+ }
+ 
+ 
  /* D should be C_TOKEN_VEC from omp::decl attribute.  If it contains
     a threadprivate, groupprivate, allocate or declare target directive,
     return true and parse it for DECL.  */
*************** c_maybe_parse_omp_decl (tree decl, tree
*** 27495,27501 ****
        return false;
      }
    if (dir->id != PRAGMA_OMP_THREADPRIVATE
!       /* && dir->id != PRAGMA_OMP_GROUPPRIVATE */
        && dir->id != PRAGMA_OMP_ALLOCATE
        && (dir->id != PRAGMA_OMP_DECLARE
  	  || strcmp (directive[1], "target") != 0))
--- 28641,28647 ----
        return false;
      }
    if (dir->id != PRAGMA_OMP_THREADPRIVATE
!       && dir->id != PRAGMA_OMP_GROUPPRIVATE
        && dir->id != PRAGMA_OMP_ALLOCATE
        && (dir->id != PRAGMA_OMP_DECLARE
  	  || strcmp (directive[1], "target") != 0))
*************** c_parser_omp_declare_target (c_parser *p
*** 27582,27587 ****
--- 28728,28738 ----
      }
    else
      {
+       warning_at (c_parser_peek_token (parser)->location,
+ 		  OPT_Wdeprecated_openmp,
+ 		  "use of %<omp declare target%> as a synonym for "
+ 		  "%<omp begin declare target%> has been deprecated since "
+ 		  "OpenMP 5.2");
        bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
        c_parser_skip_to_pragma_eol (parser);
        c_omp_declare_target_attr attr = { attr_syntax, -1, 0 };
*************** c_parser_omp_declare_target (c_parser *p
*** 27690,27696 ****
  /* OpenMP 5.1
     #pragma omp begin assumes clauses[optseq] new-line
  
!    #pragma omp begin declare target clauses[optseq] new-line  */
  
  #define OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK			\
  	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)	\
--- 28841,28849 ----
  /* OpenMP 5.1
     #pragma omp begin assumes clauses[optseq] new-line
  
!    #pragma omp begin declare target clauses[optseq] new-line
! 
!    #pragma omp begin declare variant match (context-selector) new-line  */
  
  #define OMP_BEGIN_DECLARE_TARGET_CLAUSE_MASK			\
  	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE)	\
*************** c_parser_omp_begin (c_parser *parser)
*** 27730,27740 ****
  					     indirect };
  	  vec_safe_push (current_omp_declare_target_attribute, attr);
  	}
!       else
  	{
! 	  c_parser_error (parser, "expected %<target%>");
  	  c_parser_skip_to_pragma_eol (parser);
  	}
      }
    else if (strcmp (p, "assumes") == 0)
      {
--- 28883,28959 ----
  					     indirect };
  	  vec_safe_push (current_omp_declare_target_attribute, attr);
  	}
!       else if (strcmp (p, "variant") == 0)
  	{
! 	  c_parser_consume_token (parser);
! 	  const char *clause = "";
! 	  matching_parens parens;
! 	  location_t match_loc = c_parser_peek_token (parser)->location;
! 	  if (c_parser_next_token_is (parser, CPP_COMMA))
! 	    c_parser_consume_token (parser);
! 	  if (c_parser_next_token_is (parser, CPP_NAME))
! 	    {
! 	      tree id = c_parser_peek_token (parser)->value;
! 	      clause = IDENTIFIER_POINTER (id);
! 	    }
! 	  if (strcmp (clause, "match") != 0)
! 	    {
! 	      c_parser_error (parser, "expected %<match%>");
! 	      c_parser_skip_to_pragma_eol (parser);
! 	      return;
! 	    }
! 
! 	  c_parser_consume_token (parser);
! 
! 	  if (!parens.require_open (parser))
! 	    {
! 	      c_parser_skip_to_pragma_eol (parser, false);
! 	      return;
! 	    }
! 
! 	  tree ctx =
! 	    c_parser_omp_context_selector_specification (parser, NULL_TREE);
! 	  if (ctx != error_mark_node)
! 	    ctx = omp_check_context_selector (match_loc, ctx,
! 					      OMP_CTX_BEGIN_DECLARE_VARIANT);
! 
! 	  if (ctx != error_mark_node
! 	      && !vec_safe_is_empty (current_omp_declare_variant_attribute))
! 	    {
! 	      c_omp_declare_variant_attr a
! 		= current_omp_declare_variant_attribute->last ();
! 	      tree outer_ctx = a.selector;
! 	      ctx = omp_merge_context_selectors (match_loc, outer_ctx, ctx,
! 						 OMP_CTX_BEGIN_DECLARE_VARIANT);
! 	    }
! 
! 	  if (ctx == error_mark_node
! 	      || !omp_context_selector_matches (ctx, NULL_TREE, false, true))
! 	    {
! 	      /* The context is either invalid or cannot possibly match.
! 		 In the latter case the spec says all code in the begin/end
! 		 sequence will be elided.  In the former case we'll get bogus
! 		 errors from trying to parse it without a valid context to
! 		 use for name-mangling, so elide that too.  */
! 	      c_parser_skip_to_pragma_eol (parser, false);
! 	      c_parser_skip_to_pragma_omp_end_declare_variant (parser);
! 	      return;
! 	    }
! 	  else
! 	    {
! 	      bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
! 	      c_omp_declare_variant_attr a = { attr_syntax, ctx };
! 	      vec_safe_push (current_omp_declare_variant_attribute, a);
! 	    }
! 
! 	  parens.require_close (parser);
  	  c_parser_skip_to_pragma_eol (parser);
  	}
+       else
+ 	{
+ 	  c_parser_error (parser, "expected %<target%> or %<variant%>");
+ 	  c_parser_skip_to_pragma_eol (parser, false);
+ 	}
      }
    else if (strcmp (p, "assumes") == 0)
      {
*************** c_parser_omp_begin (c_parser *parser)
*** 27746,27752 ****
      }
    else
      {
!       c_parser_error (parser, "expected %<declare target%> or %<assumes%>");
        c_parser_skip_to_pragma_eol (parser);
      }
  }
--- 28965,28972 ----
      }
    else
      {
!       c_parser_error (parser, "expected %<declare target%>, "
! 		      "%<declare variant%>, or %<assumes%>");
        c_parser_skip_to_pragma_eol (parser);
      }
  }
*************** c_parser_omp_begin (c_parser *parser)
*** 27755,27761 ****
     #pragma omp end declare target
  
     OpenMP 5.1
!    #pragma omp end assumes  */
  
  static void
  c_parser_omp_end (c_parser *parser)
--- 28975,28982 ----
     #pragma omp end declare target
  
     OpenMP 5.1
!    #pragma omp end assumes
!    #pragma omp end declare variant  */
  
  static void
  c_parser_omp_end (c_parser *parser)
*************** c_parser_omp_end (c_parser *parser)
*** 27768,27811 ****
    if (strcmp (p, "declare") == 0)
      {
        c_parser_consume_token (parser);
!       if (c_parser_next_token_is (parser, CPP_NAME)
! 	  && strcmp (IDENTIFIER_POINTER (c_parser_peek_token (parser)->value),
! 		     "target") == 0)
! 	c_parser_consume_token (parser);
!       else
  	{
! 	  c_parser_error (parser, "expected %<target%>");
  	  c_parser_skip_to_pragma_eol (parser);
! 	  return;
  	}
!       bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
!       c_parser_skip_to_pragma_eol (parser);
!       if (!vec_safe_length (current_omp_declare_target_attribute))
! 	error_at (loc, "%<#pragma omp end declare target%> without "
! 		       "corresponding %<#pragma omp declare target%> or "
! 		       "%<#pragma omp begin declare target%>");
!       else
  	{
! 	  c_omp_declare_target_attr
! 	    a = current_omp_declare_target_attribute->pop ();
! 	  if (a.attr_syntax != attr_syntax)
  	    {
! 	      if (a.attr_syntax)
! 		error_at (loc,
! 			  "%qs in attribute syntax terminated "
! 			  "with %qs in pragma syntax",
! 			  a.device_type >= 0 ? "begin declare target"
! 					     : "declare target",
! 			  "end declare target");
! 	      else
! 		error_at (loc,
! 			  "%qs in pragma syntax terminated "
! 			  "with %qs in attribute syntax",
! 			  a.device_type >= 0 ? "begin declare target"
! 					     : "declare target",
! 			  "end declare target");
  	    }
  	}
      }
    else if (strcmp (p, "assumes") == 0)
      {
--- 28989,29062 ----
    if (strcmp (p, "declare") == 0)
      {
        c_parser_consume_token (parser);
!       p = "";
!       if (c_parser_next_token_is (parser, CPP_NAME))
! 	p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
!       if (strcmp (p, "target") == 0)
  	{
! 	  c_parser_consume_token (parser);
! 	  bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
  	  c_parser_skip_to_pragma_eol (parser);
! 	  if (!vec_safe_length (current_omp_declare_target_attribute))
! 	    error_at (loc, "%<#pragma omp end declare target%> without "
! 		      "corresponding %<#pragma omp declare target%> or "
! 		      "%<#pragma omp begin declare target%>");
! 	  else
! 	    {
! 	      c_omp_declare_target_attr
! 		a = current_omp_declare_target_attribute->pop ();
! 	      if (a.attr_syntax != attr_syntax)
! 		{
! 		  if (a.attr_syntax)
! 		    error_at (loc,
! 			      "%qs in attribute syntax terminated "
! 			      "with %qs in pragma syntax",
! 			      a.device_type >= 0 ? "begin declare target"
! 						 : "declare target",
! 			      "end declare target");
! 		  else
! 		    error_at (loc,
! 			      "%qs in pragma syntax terminated "
! 			      "with %qs in attribute syntax",
! 			      a.device_type >= 0 ? "begin declare target"
! 						 : "declare target",
! 			      "end declare target");
! 		}
! 	    }
  	}
!       else if (strcmp (p, "variant") == 0)
  	{
! 	  c_parser_consume_token (parser);
! 	  bool attr_syntax = parser->in_omp_attribute_pragma != NULL;
! 	  c_parser_skip_to_pragma_eol (parser);
! 	  if (!vec_safe_length (current_omp_declare_variant_attribute))
! 	    error_at (loc, "%<#pragma omp end declare variant%> without "
! 		      "corresponding %<#pragma omp begin declare variant%>");
! 	  else
  	    {
! 	      c_omp_declare_variant_attr
! 		a = current_omp_declare_variant_attribute->pop ();
! 	      if (a.attr_syntax != attr_syntax)
! 		{
! 		  if (a.attr_syntax)
! 		    error_at (loc,
! 			      "%<begin declare variant%> in attribute syntax "
! 			      "terminated with "
! 			      "%<end declare variant%> in pragma syntax");
! 		  else
! 		    error_at (loc,
! 			      "%<begin declare variant%> in pragma syntax "
! 			      "terminated with "
! 			      "%<end declare variant%> in attribute syntax");
! 		}
  	    }
  	}
+       else
+ 	{
+ 	  c_parser_error (parser, "expected %<target%> or %<variant%>");
+ 	  c_parser_skip_to_pragma_eol (parser);
+ 	  return;
+ 	}
      }
    else if (strcmp (p, "assumes") == 0)
      {
*************** c_parser_omp_end (c_parser *parser)
*** 27841,27846 ****
--- 29092,29242 ----
      }
  }
  
+ /* OpenMP 5.0
+    #pragma omp declare mapper ([mapper-identifier :] type var) \
+ 			      [clause [ [,] clause ] ... ] new-line  */
+ 
+ static void
+ c_parser_omp_declare_mapper (c_parser *parser, enum pragma_context context)
+ {
+   tree type, mapper_name = NULL_TREE, var = NULL_TREE, stmt, stmtlist;
+   tree maplist = NULL_TREE, mapper_id, mapper_decl, t;
+   c_token *token;
+ 
+   if (context == pragma_struct || context == pragma_param)
+     {
+       error ("%<#pragma omp declare mapper%> not at file or block scope");
+       goto fail;
+     }
+ 
+   if (!c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
+     goto fail;
+ 
+   token = c_parser_peek_token (parser);
+ 
+   if (c_parser_peek_2nd_token (parser)->type == CPP_COLON)
+     {
+       switch (token->type)
+ 	{
+ 	case CPP_NAME:
+ 	  mapper_name = token->value;
+ 	  c_parser_consume_token (parser);
+ 	  break;
+ 	case CPP_KEYWORD:
+ 	  if (token->keyword == RID_DEFAULT)
+ 	    {
+ 	      mapper_name = NULL_TREE;
+ 	      c_parser_consume_token (parser);
+ 	      break;
+ 	    }
+ 	  /* Fallthrough.  */
+ 	default:
+ 	  error_at (token->location, "expected identifier or %<default%>");
+ 	  c_parser_skip_to_pragma_eol (parser, false);
+ 	  return;
+ 	}
+ 
+       if (!c_parser_require (parser, CPP_COLON, "expected %<:%>"))
+ 	goto fail;
+     }
+ 
+   mapper_id = c_omp_mapper_id (mapper_name);
+   mapper_decl = c_omp_mapper_decl (mapper_id);
+ 
+   {
+     location_t loc = c_parser_peek_token (parser)->location;
+     struct c_type_name *ctype = c_parser_type_name (parser);
+     type = groktypename (ctype, NULL, NULL);
+     if (type == error_mark_node)
+       goto fail;
+     if (!RECORD_OR_UNION_TYPE_P (type))
+       {
+ 	error_at (loc, "%qT is not a struct or union type in "
+ 		  "%<#pragma omp declare mapper%>", type);
+ 	c_parser_skip_to_pragma_eol (parser, false);
+ 	return;
+       }
+     for (tree t = DECL_INITIAL (mapper_decl); t; t = TREE_CHAIN (t))
+       if (comptypes (TREE_PURPOSE (t), type))
+ 	{
+ 	  error_at (loc, "redeclaration of %qs %<#pragma omp declare "
+ 		    "mapper%> for type %qT", IDENTIFIER_POINTER (mapper_id)
+ 		      + sizeof ("omp declare mapper ") - 1,
+ 		    type);
+ 	  tree prevmapper = TREE_VALUE (t);
+ 	  /* Hmm, this location might not be very accurate.  */
+ 	  location_t ploc
+ 	    = DECL_SOURCE_LOCATION (OMP_DECLARE_MAPPER_DECL (prevmapper));
+ 	  inform (ploc, "%<#pragma omp declare mapper%> "
+ 			"previously declared here");
+ 	  c_parser_skip_to_pragma_eol (parser, false);
+ 	  return;
+ 	}
+   }
+ 
+   token = c_parser_peek_token (parser);
+   if (token->type == CPP_NAME)
+     {
+       var = build_decl (token->location, VAR_DECL, token->value, type);
+       c_parser_consume_token (parser);
+       DECL_ARTIFICIAL (var) = 1;
+     }
+   else
+     {
+       error_at (token->location, "expected identifier");
+       goto fail;
+     }
+ 
+   if (!c_parser_require (parser, CPP_CLOSE_PAREN, "expected %<)%>"))
+     goto fail;
+ 
+   push_scope ();
+   stmtlist = push_stmt_list ();
+   pushdecl (var);
+   DECL_CONTEXT (var) = current_function_decl;
+ 
+   while (c_parser_next_token_is_not (parser, CPP_PRAGMA_EOL))
+     {
+       location_t here;
+       pragma_omp_clause c_kind;
+       here = c_parser_peek_token (parser)->location;
+       c_kind = c_parser_omp_clause_name (parser);
+       if (c_kind != PRAGMA_OMP_CLAUSE_MAP)
+ 	{
+ 	  error_at (here, "unexpected clause");
+ 	  goto fail;
+ 	}
+       maplist = c_parser_omp_clause_map (parser, maplist, true);
+     }
+ 
+   if (maplist == NULL_TREE)
+     {
+       error_at (input_location, "missing %<map%> clause");
+       goto fail;
+     }
+ 
+   stmt = make_node (OMP_DECLARE_MAPPER);
+   TREE_TYPE (stmt) = type;
+   OMP_DECLARE_MAPPER_ID (stmt) = mapper_name;
+   OMP_DECLARE_MAPPER_DECL (stmt) = var;
+   OMP_DECLARE_MAPPER_CLAUSES (stmt) = maplist;
+ 
+   add_stmt (stmt);
+ 
+   pop_stmt_list (stmtlist);
+   pop_scope ();
+ 
+   c_parser_skip_to_pragma_eol (parser);
+ 
+   t = tree_cons (type, stmt, DECL_INITIAL (mapper_decl));
+   DECL_INITIAL (mapper_decl) = t;
+ 
+   return;
+ 
+  fail:
+   c_parser_skip_to_pragma_eol (parser);
+ }
+ 
  /* OpenMP 4.0
     #pragma omp declare reduction (reduction-id : typename-list : expression) \
        initializer-clause[opt] new-line
*************** c_parser_omp_declare_reduction (c_parser
*** 27967,27974 ****
  		    location_t ploc
  		      = DECL_SOURCE_LOCATION (TREE_VEC_ELT (TREE_VALUE (t),
  							    0));
! 		    error_at (ploc, "previous %<#pragma omp declare "
! 				    "reduction%>");
  		    break;
  		  }
  	      if (t == NULL_TREE)
--- 29363,29370 ----
  		    location_t ploc
  		      = DECL_SOURCE_LOCATION (TREE_VEC_ELT (TREE_VALUE (t),
  							    0));
! 		    inform (ploc, "%<#pragma omp declare reduction%> "
! 				  "previously declared here");
  		    break;
  		  }
  	      if (t == NULL_TREE)
*************** c_parser_omp_declare (c_parser *parser,
*** 28232,28237 ****
--- 29628,29639 ----
  	  c_parser_omp_declare_reduction (parser, context);
  	  return false;
  	}
+       if (strcmp (p, "mapper") == 0)
+ 	{
+ 	  c_parser_consume_token (parser);
+ 	  c_parser_omp_declare_mapper (parser, context);
+ 	  return false;
+ 	}
        if (!flag_openmp)  /* flag_openmp_simd  */
  	{
  	  c_parser_skip_to_pragma_eol (parser, false);
*************** c_parser_omp_error (c_parser *parser, en
*** 28788,28793 ****
--- 30190,30203 ----
  			 "may only be used in compound statements");
  	  return true;
  	}
+       if (parser->omp_for_parse_state
+ 	  && parser->omp_for_parse_state->in_intervening_code)
+ 	{
+ 	  error_at (loc, "%<#pragma omp error%> with %<at(execution)%> clause "
+ 			 "may not be used in intervening code");
+ 	  parser->omp_for_parse_state->fail = true;
+ 	  return true;
+ 	}
        tree fndecl
  	= builtin_decl_explicit (severity_fatal ? BUILT_IN_GOMP_ERROR
  						: BUILT_IN_GOMP_WARNING);
*************** c_parser_omp_error (c_parser *parser, en
*** 28805,28832 ****
        if (msg == NULL)
  	msg = _("<message unknown at compile time>");
      }
    if (msg)
!     emit_diagnostic (severity_fatal ? DK_ERROR : DK_WARNING, loc, 0,
  		     "%<pragma omp error%> encountered: %s", msg);
    else
!     emit_diagnostic (severity_fatal ? DK_ERROR : DK_WARNING, loc, 0,
  		     "%<pragma omp error%> encountered");
    return false;
  }
  
! /* Assumption clauses:
!    OpenMP 5.1
     absent (directive-name-list)
     contains (directive-name-list)
     holds (expression)
     no_openmp
     no_openmp_routines
!    no_parallelism  */
  
  static void
  c_parser_omp_assumption_clauses (c_parser *parser, bool is_assume)
  {
    bool no_openmp = false;
    bool no_openmp_routines = false;
    bool no_parallelism = false;
    bitmap_head absent_head, contains_head;
--- 30215,30249 ----
        if (msg == NULL)
  	msg = _("<message unknown at compile time>");
      }
+   const enum diagnostics::kind diag_kind = (severity_fatal
+ 					    ? diagnostics::kind::error
+ 					    : diagnostics::kind::warning);
    if (msg)
!     emit_diagnostic (diag_kind, loc, 0,
  		     "%<pragma omp error%> encountered: %s", msg);
    else
!     emit_diagnostic (diag_kind, loc, 0,
  		     "%<pragma omp error%> encountered");
    return false;
  }
  
! /* Assumption clauses
!    OpenMP 5.1:
     absent (directive-name-list)
     contains (directive-name-list)
     holds (expression)
     no_openmp
     no_openmp_routines
!    no_parallelism
! 
!    OpenMP 6.0:
!    no_openmp_constructs  */
  
  static void
  c_parser_omp_assumption_clauses (c_parser *parser, bool is_assume)
  {
    bool no_openmp = false;
+   bool no_openmp_constructs = false;
    bool no_openmp_routines = false;
    bool no_parallelism = false;
    bitmap_head absent_head, contains_head;
*************** c_parser_omp_assumption_clauses (c_parse
*** 28859,28864 ****
--- 30276,30288 ----
  	    error_at (cloc, "too many %qs clauses", "no_openmp");
  	  no_openmp = true;
  	}
+       else if (!strcmp (p, "no_openmp_constructs"))
+ 	{
+ 	  c_parser_consume_token (parser);
+ 	  if (no_openmp_constructs)
+ 	    error_at (cloc, "too many %qs clauses", "no_openmp_constructs");
+ 	  no_openmp_constructs = true;
+ 	}
        else if (!strcmp (p, "no_openmp_routines"))
  	{
  	  c_parser_consume_token (parser);
*************** c_parser_omp_assumption_clauses (c_parse
*** 28931,28936 ****
--- 30355,30361 ----
  						      directive[1],
  						      directive[2]);
  		      if (dir
+ 			  && dir->id != PRAGMA_OMP_END
  			  && (dir->kind == C_OMP_DIR_DECLARATIVE
  			      || dir->kind == C_OMP_DIR_INFORMATIONAL
  			      || dir->kind == C_OMP_DIR_META))
*************** c_parser_omp_metadirective (c_parser *pa
*** 29132,29137 ****
--- 30557,30570 ----
  
        location_t match_loc = c_parser_peek_token (parser)->location;
        const char *p = IDENTIFIER_POINTER (c_parser_peek_token (parser)->value);
+       if (strcmp (p, "default") == 0)
+ 	{
+ 	  gcc_rich_location richloc (pragma_loc);
+ 	  richloc.add_fixit_replace (match_loc, "otherwise");
+ 	  warning_at (&richloc, OPT_Wdeprecated_openmp,
+ 		      "%<default%> clause on metadirectives deprecated since "
+ 		      "OpenMP 5.2, use %<otherwise%>");
+ 	}
        c_parser_consume_token (parser);
        bool default_p
  	= strcmp (p, "default") == 0 || strcmp (p, "otherwise") == 0;
*************** c_parser_omp_metadirective (c_parser *pa
*** 29314,29319 ****
--- 30747,30763 ----
      }
    c_parser_skip_to_pragma_eol (parser);
  
+   /* If only one selector matches and it evaluates to 'omp nothing', no need to
+      proceed.  */
+   if (ctxs.length () == 1)
+     {
+       tree ctx = ctxs[0];
+       if (ctx == NULL_TREE
+ 	  || (omp_context_selector_matches (ctx, NULL_TREE, false) == 1
+ 	      && directive_tokens[0].pragma_kind == PRAGMA_OMP_NOTHING))
+ 	return;
+     }
+ 
    if (!default_seen)
      {
        /* Add a default clause that evaluates to 'omp nothing'.  */
*************** c_parser_omp_metadirective (c_parser *pa
*** 29394,29400 ****
  	  if (standalone_body == NULL_TREE)
  	    {
  	      standalone_body = push_stmt_list ();
! 	      c_parser_statement (parser, if_p);
  	      standalone_body = pop_stmt_list (standalone_body);
  	    }
  	  else
--- 30838,30844 ----
  	  if (standalone_body == NULL_TREE)
  	    {
  	      standalone_body = push_stmt_list ();
! 	      c_parser_statement (parser, if_p); // TODO skip this
  	      standalone_body = pop_stmt_list (standalone_body);
  	    }
  	  else
*************** c_parser_omp_construct (c_parser *parser
*** 29503,29509 ****
        break;
      case PRAGMA_OMP_MASTER:
        strcpy (p_name, "#pragma omp");
!       stmt = c_parser_omp_master (loc, parser, p_name, mask, NULL, if_p);
        break;
      case PRAGMA_OMP_PARALLEL:
        strcpy (p_name, "#pragma omp");
--- 30947,30954 ----
        break;
      case PRAGMA_OMP_MASTER:
        strcpy (p_name, "#pragma omp");
!       stmt = c_parser_omp_master (loc, parser, p_name, mask, NULL, if_p,
! 				  UNKNOWN_LOCATION);
        break;
      case PRAGMA_OMP_PARALLEL:
        strcpy (p_name, "#pragma omp");
*************** c_parser_omp_construct (c_parser *parser
*** 29557,29562 ****
--- 31002,31027 ----
      gcc_assert (EXPR_LOCATION (stmt) != UNKNOWN_LOCATION);
  }
  
+ /* OpenMP 6.0:
+    # pragma omp groupprivate (variable-list) [device_type(...)]  */
+ 
+ #define OMP_GROUPPRIVATE_CLAUSE_MASK					\
+ 	( (OMP_CLAUSE_MASK_1 << PRAGMA_OMP_CLAUSE_DEVICE_TYPE) )
+ 
+ static void
+ c_parser_omp_groupprivate (c_parser *parser)
+ {
+   location_t loc = c_parser_peek_token (parser)->location;
+   c_parser_consume_pragma (parser);
+   tree vars = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ERROR, NULL);
+   tree clauses = c_parser_omp_all_clauses (parser, OMP_GROUPPRIVATE_CLAUSE_MASK,
+ 					   "#pragma omp groupprivate");
+   /* TODO: Implies 'declare target local' with specified device_type, check for
+      conflicts.  Check for other restrictions.  */
+   (void) vars;
+   (void) clauses;
+   sorry_at (loc, "%<omp groupprivate%>");
+ }
  
  /* OpenMP 2.5:
     # pragma omp threadprivate (variable-list) */
*************** c_parser_transaction (c_parser *parser,
*** 29666,29675 ****
    if (flag_tm)
      stmt = c_finish_transaction (loc, stmt, this_in);
    else
!     error_at (loc, (keyword == RID_TRANSACTION_ATOMIC ?
! 	"%<__transaction_atomic%> without transactional memory support enabled"
! 	: "%<__transaction_relaxed %> "
! 	"without transactional memory support enabled"));
  
    return stmt;
  }
--- 31131,31142 ----
    if (flag_tm)
      stmt = c_finish_transaction (loc, stmt, this_in);
    else
!     error_at (loc,
! 	      keyword == RID_TRANSACTION_ATOMIC
! 	      ? G_("%<__transaction_atomic%> without transactional memory "
! 		   "support enabled")
! 	      : G_("%<__transaction_relaxed%> without transactional memory "
! 		   "support enabled"));
  
    return stmt;
  }
*************** c_parser_transaction_expression (c_parse
*** 29733,29742 ****
    parser->in_transaction = old_in;
  
    if (!flag_tm)
!     error_at (loc, (keyword == RID_TRANSACTION_ATOMIC ?
! 	"%<__transaction_atomic%> without transactional memory support enabled"
! 	: "%<__transaction_relaxed %> "
! 	"without transactional memory support enabled"));
  
    set_c_expr_source_range (&ret, loc, loc);
  
--- 31200,31211 ----
    parser->in_transaction = old_in;
  
    if (!flag_tm)
!     error_at (loc,
! 	      keyword == RID_TRANSACTION_ATOMIC
! 	      ? G_("%<__transaction_atomic%> without transactional memory "
! 		   "support enabled")
! 	      : G_("%<__transaction_relaxed%> without transactional memory "
! 		   "support enabled"));
  
    set_c_expr_source_range (&ret, loc, loc);
  
diff -Nrcpad gcc-15.2.0/gcc/c/c-parser.h gcc-16.1.0-RC-20260423/gcc/c/c-parser.h
*** gcc-15.2.0/gcc/c/c-parser.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-parser.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Declarations for the parser for C and Objective-C.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
     Parser actions based on the old Bison parser; structure somewhat
     influenced by and fragments based on the C++ parser.
*************** extern void c_parser_skip_until_found (c
*** 156,162 ****
  				       const char *msgid,
  				       location_t = UNKNOWN_LOCATION);
  extern bool c_parser_next_token_starts_declspecs (c_parser *parser);
! bool c_parser_next_tokens_start_declaration (c_parser *parser);
  bool c_token_starts_typename (c_token *token);
  
  /* Abstraction to avoid defining c_parser here which messes up gengtype
--- 156,163 ----
  				       const char *msgid,
  				       location_t = UNKNOWN_LOCATION);
  extern bool c_parser_next_token_starts_declspecs (c_parser *parser);
! bool c_parser_next_tokens_start_declaration (c_parser *parser,
! 					     unsigned int n = 1);
  bool c_token_starts_typename (c_token *token);
  
  /* Abstraction to avoid defining c_parser here which messes up gengtype
diff -Nrcpad gcc-15.2.0/gcc/c/c-tree.def gcc-16.1.0-RC-20260423/gcc/c/c-tree.def
*** gcc-15.2.0/gcc/c/c-tree.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-tree.def	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 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-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c/c-tree.h gcc-16.1.0-RC-20260423/gcc/c/c-tree.h
*** gcc-15.2.0/gcc/c/c-tree.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-tree.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for C parsing and type checking.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 39,44 ****
--- 39,48 ----
     permitted for a constexpr object.  */
  #define C_TYPE_FIELDS_NON_CONSTEXPR(TYPE) TREE_LANG_FLAG_4 (TYPE)
  
+ /* In a RECORD_TYPE or UNION_TYPE, nonzero if any component has a
+    counted_by attribute.  */
+ #define C_TYPE_FIELDS_HAS_COUNTED_BY(TYPE) TYPE_LANG_FLAG_3 (TYPE)
+ 
  /* In a RECORD_TYPE or UNION_TYPE or ENUMERAL_TYPE
     nonzero if the definition of the type has already started.  */
  #define C_TYPE_BEING_DEFINED(TYPE) TYPE_LANG_FLAG_0 (TYPE)
*************** along with GCC; see the file COPYING3.
*** 80,85 ****
--- 84,94 ----
  /* For a PARM_DECL, nonzero if it was declared as an array.  */
  #define C_ARRAY_PARAMETER(NODE) DECL_LANG_FLAG_0 (NODE)
  
+ /* For FUNCTION_DECLs, evaluates true if the decl is a nested
+    function that requires a non-local context.  */
+ #define C_FUNC_NONLOCAL_CONTEXT(EXP)		\
+   DECL_LANG_FLAG_4 (FUNCTION_DECL_CHECK (EXP))
+ 
  /* For FUNCTION_DECLs, evaluates true if the decl is built-in but has
     been declared.  */
  #define C_DECL_DECLARED_BUILTIN(EXP)		\
*************** along with GCC; see the file COPYING3.
*** 111,117 ****
  /* 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.  */
! #define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4 (EXP)
  
  /* Record whether a decl was used in an expression anywhere except an
     unevaluated operand of sizeof / typeof / alignof.  This is only
--- 120,127 ----
  /* 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.  */
! #define C_DECL_REGISTER(EXP) \
!   DECL_LANG_FLAG_4 (TREE_NOT_CHECK (EXP, FUNCTION_DECL))
  
  /* Record whether a decl was used in an expression anywhere except an
     unevaluated operand of sizeof / typeof / alignof.  This is only
*************** along with GCC; see the file COPYING3.
*** 163,169 ****
    (TREE_CODE (TYPE) == BOOLEAN_TYPE					\
     || (TREE_CODE (TYPE) == ENUMERAL_TYPE				\
         && ENUM_UNDERLYING_TYPE (TYPE) != NULL_TREE			\
!        && TREE_CODE (ENUM_UNDERLYING_TYPE (TYPE)) == BOOLEAN_TYPE))
  
  /* Record parser information about an expression that is irrelevant
     for code generation alongside a tree representing its value.  */
--- 173,180 ----
    (TREE_CODE (TYPE) == BOOLEAN_TYPE					\
     || (TREE_CODE (TYPE) == ENUMERAL_TYPE				\
         && ENUM_UNDERLYING_TYPE (TYPE) != NULL_TREE			\
!        && (TREE_CODE (ENUM_UNDERLYING_TYPE (TYPE)) == BOOLEAN_TYPE	\
! 	   || c_hardbool_type_attr (TYPE))))
  
  /* Record parser information about an expression that is irrelevant
     for code generation alongside a tree representing its value.  */
*************** enum c_inline_static_type {
*** 617,622 ****
--- 628,646 ----
    csi_modifiable
  };
  
+ /* Record details of decls possibly used inside sizeof or typeof.  */
+ struct maybe_used_decl
+ {
+   /* The decl.  */
+   tree decl;
+   /* The level seen at (in_sizeof + in_typeof + in_countof + in_generic).  */
+   int level;
+   /* Seen in address-of.  */
+   bool address;
+   /* The next one at this level or above, or NULL.  */
+   struct maybe_used_decl *next;
+ };
+ 
  
  /* in c-parser.cc */
  struct c_tree_token_vec;
*************** extern struct c_arg_info *get_parm_info
*** 693,698 ****
--- 717,723 ----
  extern tree grokfield (location_t, struct c_declarator *,
  		       struct c_declspecs *, tree, tree *, tree *);
  extern tree groktypename (struct c_type_name *, tree *, bool *);
+ extern tree grokgenassoc (struct c_type_name *);
  extern tree grokparm (const struct c_parm *, tree *);
  extern tree implicitly_declare (location_t, tree);
  extern void keep_next_level (void);
*************** extern tree c_finish_bc_name (location_t
*** 757,763 ****
  extern bool c_objc_common_init (void);
  extern bool c_missing_noreturn_ok_p (tree);
  extern bool c_warn_unused_global_decl (const_tree);
! extern void c_initialize_diagnostics (diagnostic_context *);
  extern bool c_var_mod_p (tree x, tree fn);
  extern alias_set_type c_get_alias_set (tree);
  extern int c_type_dwarf_attribute (const_tree, int);
--- 782,788 ----
  extern bool c_objc_common_init (void);
  extern bool c_missing_noreturn_ok_p (tree);
  extern bool c_warn_unused_global_decl (const_tree);
! extern void c_initialize_diagnostics (diagnostics::context *);
  extern bool c_var_mod_p (tree x, tree fn);
  extern alias_set_type c_get_alias_set (tree);
  extern int c_type_dwarf_attribute (const_tree, int);
*************** extern int c_type_dwarf_attribute (const
*** 765,771 ****
--- 790,798 ----
  /* in c-typeck.cc */
  extern int in_alignof;
  extern int in_sizeof;
+ extern int in_countof;
  extern int in_typeof;
+ extern int in_generic;
  extern bool c_in_omp_for;
  extern bool c_omp_array_section_p;
  
*************** extern bool null_pointer_constant_p (con
*** 780,786 ****
  inline bool
  c_type_variably_modified_p (tree t)
  {
!   return error_mark_node != t && C_TYPE_VARIABLY_MODIFIED (t);
  }
  
  inline bool
--- 807,837 ----
  inline bool
  c_type_variably_modified_p (tree t)
  {
!   if (error_mark_node == t)
!     return false;
!   if (C_TYPE_VARIABLY_MODIFIED (t))
!     return true;
!   if (TYPE_STRUCTURAL_EQUALITY_P (t))
!     {
!       /* The flag may not have been set yet because of incomplete
! 	 structure or union types completed later.  */
!       switch (TREE_CODE (t))
! 	{
! 	case ARRAY_TYPE:
! 	case FUNCTION_TYPE:
! 	case POINTER_TYPE:
! 	  /* Recurse.  */
! 	  if (c_type_variably_modified_p (TREE_TYPE (t)))
! 	    {
! 	      C_TYPE_VARIABLY_MODIFIED (t) = 1;
! 	      return true;
! 	    }
! 	  break;
! 	default:
! 	  break;
! 	}
!     }
!   return false;
  }
  
  inline bool
*************** extern bool comptypes_same_p (tree, tree
*** 805,811 ****
  extern bool comptypes_equiv_p (tree, tree);
  extern int comptypes_check_different_types (tree, tree, bool *);
  extern int comptypes_check_enum_int (tree, tree, bool *);
! extern bool c_mark_addressable (tree, bool = false);
  extern void c_incomplete_type_error (location_t, const_tree, const_tree);
  extern tree c_type_promotes_to (tree);
  extern struct c_expr default_function_array_conversion (location_t,
--- 856,862 ----
  extern bool comptypes_equiv_p (tree, tree);
  extern int comptypes_check_different_types (tree, tree, bool *);
  extern int comptypes_check_enum_int (tree, tree, bool *);
! extern bool c_mark_addressable (tree, bool = false, bool = false);
  extern void c_incomplete_type_error (location_t, const_tree, const_tree);
  extern tree c_type_promotes_to (tree);
  extern struct c_expr default_function_array_conversion (location_t,
*************** extern void mark_exp_read (tree);
*** 819,832 ****
  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 void pop_maybe_used (bool);
  extern struct c_expr c_expr_sizeof_expr (location_t, struct c_expr);
  extern struct c_expr c_expr_sizeof_type (location_t, struct c_type_name *);
  extern struct c_expr parser_build_unary_op (location_t, enum tree_code,
      					    struct c_expr);
  extern struct c_expr parser_build_binary_op (location_t,
--- 870,891 ----
  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);
  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 void pop_maybe_used (bool);
+ extern struct maybe_used_decl *save_maybe_used ();
+ extern void restore_maybe_used (struct maybe_used_decl *);
+ extern void mark_decl_used (tree, bool);
  extern struct c_expr c_expr_sizeof_expr (location_t, struct c_expr);
  extern struct c_expr c_expr_sizeof_type (location_t, struct c_type_name *);
+ extern struct c_expr c_expr_countof_expr (location_t, struct c_expr);
+ extern struct c_expr c_expr_countof_type (location_t loc,
+ 					  struct c_type_name *);
+ extern struct c_expr c_expr_maxof_type (location_t loc, struct c_type_name *);
+ extern struct c_expr c_expr_minof_type (location_t loc, struct c_type_name *);
  extern struct c_expr parser_build_unary_op (location_t, enum tree_code,
      					    struct c_expr);
  extern struct c_expr parser_build_binary_op (location_t,
*************** extern tree c_finish_omp_task (location_
*** 884,890 ****
  extern void c_finish_omp_cancel (location_t, tree);
  extern void c_finish_omp_cancellation_point (location_t, tree);
  extern tree c_finish_omp_clauses (tree, enum c_omp_region_type);
! extern tree c_build_va_arg (location_t, tree, location_t, tree);
  extern tree c_finish_transaction (location_t, tree, int);
  extern bool c_tree_equal (tree, tree);
  extern tree c_build_function_call_vec (location_t, const vec<location_t>&,
--- 943,953 ----
  extern void c_finish_omp_cancel (location_t, tree);
  extern void c_finish_omp_cancellation_point (location_t, tree);
  extern tree c_finish_omp_clauses (tree, enum c_omp_region_type);
! extern tree c_omp_finish_mapper_clauses (tree);
! extern tree c_omp_mapper_lookup (tree, tree);
! extern tree c_omp_extract_mapper_directive (tree);
! extern tree c_omp_map_array_section (location_t, tree);
! extern tree c_build_va_arg (location_t, tree, location_t, tree, tree);
  extern tree c_finish_transaction (location_t, tree, int);
  extern bool c_tree_equal (tree, tree);
  extern tree c_build_function_call_vec (location_t, const vec<location_t>&,
*************** extern tree c_build_function_call_vec (l
*** 892,897 ****
--- 955,961 ----
  				       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_type_canonical (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_omp_reduction_id (enum tre
*** 942,960 ****
  extern tree c_omp_reduction_decl (tree);
  extern tree c_omp_reduction_lookup (tree, tree);
  extern tree c_check_omp_declare_reduction_r (tree *, int *, void *);
  extern bool c_check_in_current_scope (tree);
  extern void c_pushtag (location_t, tree, tree);
  extern void c_bind (location_t, tree, bool);
  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);
--- 1006,1030 ----
  extern tree c_omp_reduction_decl (tree);
  extern tree c_omp_reduction_lookup (tree, tree);
  extern tree c_check_omp_declare_reduction_r (tree *, int *, void *);
+ extern tree c_omp_mapper_id (tree);
+ extern tree c_omp_mapper_decl (tree);
+ extern void c_omp_scan_mapper_bindings (location_t, tree *, tree);
+ extern tree c_omp_instantiate_mappers (tree);
  extern bool c_check_in_current_scope (tree);
  extern void c_pushtag (location_t, tree, tree);
  extern void c_bind (location_t, tree, bool);
  extern bool tag_exists_p (enum tree_code, tree);
  
+ extern void verify_counted_by_for_top_anonymous_type (tree);
+ 
  /* In c-errors.cc */
! extern bool pedwarn_c90 (location_t, diagnostics::option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c99 (location_t, diagnostics::option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c11 (location_t, diagnostics::option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
! extern bool pedwarn_c23 (location_t, diagnostics::option_id, const char *, ...)
      ATTRIBUTE_GCC_DIAG(3,4);
  extern void add_note_about_new_keyword (location_t loc,
  					tree keyword_id);
diff -Nrcpad gcc-15.2.0/gcc/c/c-typeck.cc gcc-16.1.0-RC-20260423/gcc/c/c-typeck.cc
*** gcc-15.2.0/gcc/c/c-typeck.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/c-typeck.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Build expressions with type checking for C compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** int in_alignof;
*** 72,80 ****
--- 72,86 ----
  /* The level of nesting inside "sizeof".  */
  int in_sizeof;
  
+ /* The level of nesting inside "countof".  */
+ int in_countof;
+ 
  /* The level of nesting inside "typeof".  */
  int in_typeof;
  
+ /* The level of nesting inside "_Generic".  */
+ int in_generic;
+ 
  /* True when parsing OpenMP loop expressions.  */
  bool c_in_omp_for;
  
*************** static void set_nonincremental_init_from
*** 130,138 ****
  static tree find_init_member (tree, struct obstack *);
  static void readonly_warning (tree, enum lvalue_use);
  static int lvalue_or_else (location_t, const_tree, enum lvalue_use);
! static void record_maybe_used_decl (tree);
  static bool comptypes_internal (const_tree, const_tree,
  				struct comptypes_data *data);
  
  /* Return true if EXP is a null pointer constant, false otherwise.  */
  
--- 136,146 ----
  static tree find_init_member (tree, struct obstack *);
  static void readonly_warning (tree, enum lvalue_use);
  static int lvalue_or_else (location_t, const_tree, enum lvalue_use);
! static void record_maybe_used_decl (tree, bool address);
  static bool comptypes_internal (const_tree, const_tree,
  				struct comptypes_data *data);
+ static bool comptypes_check_for_composite (tree t1, tree t2);
+ static bool handle_counted_by_p (tree);
  
  /* Return true if EXP is a null pointer constant, false otherwise.  */
  
*************** c_verify_type (tree type)
*** 371,383 ****
      {
      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:
--- 379,406 ----
      {
      case POINTER_TYPE:
      case FUNCTION_TYPE:
!     case ARRAY_TYPE:
!       /* Pointer, array, functions are variably modified if and only if the
! 	 target, element, return type is variably modified.  */
!       if (!TYPE_STRUCTURAL_EQUALITY_P (type)
! 	  && (C_TYPE_VARIABLY_MODIFIED (type)
! 	      != C_TYPE_VARIABLY_MODIFIED (TREE_TYPE (type))))
  	return false;
!       /* If the target type is structural equality, the type should also. */
!       if (!TYPE_STRUCTURAL_EQUALITY_P (type)
! 	  && TYPE_STRUCTURAL_EQUALITY_P (TREE_TYPE (type)))
! 	return false;
! 
!      default:
!        break;
!     }
! 
!   switch (TREE_CODE (type))
!     {
!     case POINTER_TYPE:
!     case FUNCTION_TYPE:
!       /* Pointer and functions can not have variable size.  */
!       if (C_TYPE_VARIABLE_SIZE (type))
  	return false;
        break;
      case ARRAY_TYPE:
*************** c_verify_type (tree type)
*** 399,409 ****
  	  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;
      }
--- 422,427 ----
*************** c_set_type_bits (tree new_type, tree old
*** 418,424 ****
  {
    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))
--- 436,442 ----
  {
    gcc_checking_assert (c_verify_type (old_type));
  
!   if (c_type_variably_modified_p (old_type))
      C_TYPE_VARIABLY_MODIFIED (new_type) = true;
  
    if (TREE_CODE (new_type) == ARRAY_TYPE && C_TYPE_VARIABLE_SIZE (old_type))
*************** c_reconstruct_complex_type (tree type, t
*** 530,542 ****
      }
    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)
      {
--- 548,564 ----
      }
    else if (TREE_CODE (type) == ARRAY_TYPE)
      {
+       bool rso = TYPE_REVERSE_STORAGE_ORDER (type);
        inner = c_reconstruct_complex_type (TREE_TYPE (type), bottom);
        outer = c_build_array_type (inner, TYPE_DOMAIN (type));
+       if (rso)
+ 	{
+ 	  outer = build_distinct_type_copy (outer);
+ 	  TYPE_REVERSE_STORAGE_ORDER (outer) = 1;
+ 	}
  
        gcc_checking_assert (C_TYPE_VARIABLE_SIZE (type)
  			   == C_TYPE_VARIABLE_SIZE (outer));
      }
    else if (TREE_CODE (type) == FUNCTION_TYPE)
      {
*************** c_reconstruct_complex_type (tree type, t
*** 554,559 ****
--- 576,651 ----
  					      TYPE_QUALS (type));
  }
  
+ 
+ /* Helper function for c_canonical_type.  Check whether FIELD
+    contains a pointer to a structure or union with tag,
+    possibly nested in other type derivations.  */
+ static bool
+ ptr_to_tagged_member (tree field)
+ {
+   gcc_assert (FIELD_DECL == TREE_CODE (field));
+   tree type = TREE_TYPE (field);
+   bool ptr_seen = false;
+   while (TREE_CODE (type) == ARRAY_TYPE
+ 	 || TREE_CODE (type) == FUNCTION_TYPE
+ 	 || TREE_CODE (type) == POINTER_TYPE)
+     {
+       if (TREE_CODE (type) == POINTER_TYPE)
+ 	ptr_seen = true;
+       type = TREE_TYPE (type);
+     }
+ 
+   if (ptr_seen
+       && RECORD_OR_UNION_TYPE_P (type)
+       && NULL_TREE != c_type_tag (type))
+     return true;
+ 
+   return false;
+ }
+ 
+ /* For a record or union type, make necessary adaptations so that the
+    type can be used as TYPE_CANONICAL.
+ 
+    If the TYPE contains a pointer (possibly nested in other type
+    derivations) to a structure or union as a member, create a copy
+    and change such pointers to void pointers.  Otherwise, the middle-end
+    gets confused when recording component aliases in the case where we
+    have formed equivalency classes that include types for which these
+    member pointers end up pointing to other structure or unions types
+    which have the same tag but are not compatible.  */
+ tree
+ c_type_canonical (tree type)
+ {
+   gcc_assert (RECORD_OR_UNION_TYPE_P (type));
+ 
+   bool needs_mod = false;
+   for (tree x = TYPE_FIELDS (type); x; x = DECL_CHAIN (x))
+     {
+       if (!ptr_to_tagged_member (x))
+ 	continue;
+       needs_mod = true;
+       break;
+     }
+   if (!needs_mod)
+     return type;
+ 
+   /* Construct new version with such members replaced.  */
+   tree n = build_distinct_type_copy (type);
+   tree *fields = &TYPE_FIELDS (n);
+   for (tree x = TYPE_FIELDS (type); x; x = DECL_CHAIN (x))
+     {
+       tree f = copy_node (x);
+       if (ptr_to_tagged_member (x))
+ 	TREE_TYPE (f) = c_reconstruct_complex_type (TREE_TYPE (x),
+ 						    ptr_type_node);
+       *fields = f;
+       fields = &DECL_CHAIN (f);
+     }
+   TYPE_CANONICAL (n) = n;
+   return n;
+ }
+ 
+ 
  /* 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
     contains attribute format, diagnosess and removes it from ATTRS.
*************** c_type_tag (const_tree t)
*** 602,615 ****
      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.
--- 694,746 ----
      return NULL_TREE;
    if (TREE_CODE (name) == TYPE_DECL)
      {
!       if (!DECL_NAME (name))
! 	return NULL_TREE;
!       name = DECL_NAME (name);
      }
    gcc_checking_assert (TREE_CODE (name) == IDENTIFIER_NODE);
    return name;
  }
  
+ /* Remove qualifiers but not atomic.  For arrays remove qualifiers
+    on the element type but also do not remove atomic.  */
+ static tree
+ remove_qualifiers (tree t)
+ {
+   if (!t || t == error_mark_node)
+     return t;
+   return TYPE_ATOMIC (strip_array_types (t))
+ 	 ? c_build_qualified_type (TYPE_MAIN_VARIANT (t), TYPE_QUAL_ATOMIC)
+ 	 : TYPE_MAIN_VARIANT (t);
+ }
+ 
+ 
+ /* Helper function for composite_type_internal.  Find a compatible type
+    in a (transparent) union U compatible to T.  If found, return the
+    type of the corresponding member.  Otherwise, return the union type U.  */
+ static tree
+ transparent_union_replacement (tree u, tree t)
+ {
+   if (u == error_mark_node || t == error_mark_node
+       || TREE_CODE (u) != UNION_TYPE
+       || !(TYPE_TRANSPARENT_AGGR (u) || TYPE_NAME (u) == NULL_TREE)
+       || comptypes (u, t))
+     return u;
+ 
+   for (tree memb = TYPE_FIELDS (u); memb; memb = DECL_CHAIN (memb))
+     {
+       tree m = remove_qualifiers (TREE_TYPE (memb));
+       if (comptypes (m, t))
+ 	{
+ 	  pedwarn (input_location, OPT_Wpedantic,
+ 		    "function types not truly compatible in ISO C");
+ 	  return m;
+ 	}
+     }
+ 
+   return u;
+ }
+ 
  
  
  /* Return the composite type of two compatible types.
*************** struct composite_cache {
*** 626,632 ****
  };
  
  tree
! composite_type_internal (tree t1, tree t2, struct composite_cache* cache)
  {
    enum tree_code code1;
    enum tree_code code2;
--- 757,764 ----
  };
  
  tree
! composite_type_internal (tree t1, tree t2, tree cond,
! 			 struct composite_cache* cache)
  {
    enum tree_code code1;
    enum tree_code code2;
*************** composite_type_internal (tree t1, tree t
*** 669,704 ****
      case POINTER_TYPE:
        /* For two pointers, do this recursively on the target type.  */
        {
! 	tree pointed_to_1 = TREE_TYPE (t1);
! 	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);
        }
  
      case ARRAY_TYPE:
        {
- 	tree elt = composite_type_internal (TREE_TYPE (t1), TREE_TYPE (t2),
- 					    cache);
- 	int quals;
- 	tree unqual_elt;
  	tree d1 = TYPE_DOMAIN (t1);
  	tree d2 = TYPE_DOMAIN (t2);
- 	bool d1_variable, d2_variable;
- 	bool d1_zero, d2_zero;
- 	bool t1_complete, t2_complete;
  
  	/* We should not have any type quals on arrays at all.  */
  	gcc_assert (!TYPE_QUALS_NO_ADDR_SPACE (t1)
  		    && !TYPE_QUALS_NO_ADDR_SPACE (t2));
  
! 	t1_complete = COMPLETE_TYPE_P (t1);
! 	t2_complete = COMPLETE_TYPE_P (t2);
  
! 	d1_zero = d1 == NULL_TREE || !TYPE_MAX_VALUE (d1);
! 	d2_zero = d2 == NULL_TREE || !TYPE_MAX_VALUE (d2);
  
  	d1_variable = (!d1_zero
  		       && (TREE_CODE (TYPE_MIN_VALUE (d1)) != INTEGER_CST
--- 801,830 ----
      case POINTER_TYPE:
        /* For two pointers, do this recursively on the target type.  */
        {
! 	gcc_checking_assert (TYPE_QUALS (t1) == TYPE_QUALS (t2));
! 	tree target = composite_type_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 					       cond, cache);
! 	tree n = c_build_pointer_type_for_mode (target, TYPE_MODE (t1), false);
! 	return c_build_type_attribute_qual_variant (n, attributes,
! 						    TYPE_QUALS (t2));
        }
  
      case ARRAY_TYPE:
        {
  	tree d1 = TYPE_DOMAIN (t1);
  	tree d2 = TYPE_DOMAIN (t2);
  
  	/* We should not have any type quals on arrays at all.  */
  	gcc_assert (!TYPE_QUALS_NO_ADDR_SPACE (t1)
  		    && !TYPE_QUALS_NO_ADDR_SPACE (t2));
  
! 	bool t1_complete = COMPLETE_TYPE_P (t1);
! 	bool t2_complete = COMPLETE_TYPE_P (t2);
  
! 	bool d1_zero = d1 == NULL_TREE || !TYPE_MAX_VALUE (d1);
! 	bool d2_zero = d2 == NULL_TREE || !TYPE_MAX_VALUE (d2);
! 
! 	bool d1_variable, d2_variable;
  
  	d1_variable = (!d1_zero
  		       && (TREE_CODE (TYPE_MIN_VALUE (d1)) != INTEGER_CST
*************** composite_type_internal (tree t1, tree t
*** 707,716 ****
  		       && (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))
--- 833,840 ----
  		       && (TREE_CODE (TYPE_MIN_VALUE (d2)) != INTEGER_CST
  			   || TREE_CODE (TYPE_MAX_VALUE (d2)) != INTEGER_CST));
  
! 	bool use1 = d1 && (d2_variable || d2_zero || !d1_variable);
! 	bool use2 = d2 && (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))
*************** composite_type_internal (tree t1, tree t
*** 719,743 ****
  	    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
  	   up TYPE_MAIN_VARIANT correctly, we need to form the
  	   composite of the unqualified types and add the qualifiers
  	   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.  */
--- 843,895 ----
  	    use1 = false;
  	  }
  
! 	/* If both are VLAs but not unspecified and we are in the
! 	   conditional operator, we create a conditional to select
! 	   the size of the active branch.  */
! 	bool use0 = cond && d1_variable && !c_type_unspecified_p (t1)
! 			 && d2_variable && !c_type_unspecified_p (t2);
  
! 	tree td;
! 	tree elt = composite_type_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 					    cond, cache);
! 
! 	if (!use0)
! 	  {
! 	    /* 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);
! 
! 	    td = TYPE_DOMAIN (use1 ? t1 : t2);
! 	  }
! 	else
! 	  {
! 	    /* Not used in C.  */
! 	    gcc_assert (size_zero_node == TYPE_MIN_VALUE (d1));
! 	    gcc_assert (size_zero_node == TYPE_MIN_VALUE (d2));
! 
! 	    tree d = fold_build3_loc (UNKNOWN_LOCATION, COND_EXPR, sizetype,
! 				      cond, TYPE_MAX_VALUE (d1),
! 				      TYPE_MAX_VALUE (d2));
! 
! 	    td = build_index_type (d);
! 	  }
  
  	/* Merge the element types, and have a size if either arg has
  	   one.  We may have qualifiers on the element types.  To set
  	   up TYPE_MAIN_VARIANT correctly, we need to form the
  	   composite of the unqualified types and add the qualifiers
  	   back at the end.  */
! 	int quals = TYPE_QUALS (strip_array_types (elt));
! 	tree unqual_elt = c_build_qualified_type (elt, TYPE_UNQUALIFIED);
! 
! 	t1 = c_build_array_type (unqual_elt, td);
  
  	/* Check that a type which has a varying outermost dimension
  	   got marked has having a variable size.  */
*************** composite_type_internal (tree t1, tree t
*** 773,779 ****
  	     construction, return it.  */
  
  	  for (struct composite_cache *c = cache; c != NULL; c = c->next)
! 	    if (c->t1 == t1 && c->t2 == t2)
  	       return c->composite;
  
  	  /* Otherwise, create a new type node and link it into the cache.  */
--- 925,931 ----
  	     construction, return it.  */
  
  	  for (struct composite_cache *c = cache; c != NULL; c = c->next)
! 	    if ((c->t1 == t1 && c->t2 == t2) || (c->t1 == t2 && c->t2 == t1))
  	       return c->composite;
  
  	  /* Otherwise, create a new type node and link it into the cache.  */
*************** composite_type_internal (tree t1, tree t
*** 804,810 ****
  	      gcc_assert (DECL_NAME (a) == DECL_NAME (b));
  	      gcc_checking_assert (!DECL_NAME (a) || comptypes (ta, tb));
  
! 	      tree t = composite_type_internal (ta, tb, cache);
  	      tree f = build_decl (input_location, FIELD_DECL, DECL_NAME (a), t);
  
  	      DECL_PACKED (f) = DECL_PACKED (a);
--- 956,962 ----
  	      gcc_assert (DECL_NAME (a) == DECL_NAME (b));
  	      gcc_checking_assert (!DECL_NAME (a) || comptypes (ta, tb));
  
! 	      tree t = composite_type_internal (ta, tb, cond, cache);
  	      tree f = build_decl (input_location, FIELD_DECL, DECL_NAME (a), t);
  
  	      DECL_PACKED (f) = DECL_PACKED (a);
*************** composite_type_internal (tree t1, tree t
*** 843,854 ****
  	  n = finish_struct (input_location, n, fields, attributes, NULL,
  			     &expr);
  
! 	  n = qualify_type (n, t1);
! 
! 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t1));
! 	  gcc_checking_assert (!TYPE_NAME (n) || comptypes (n, t2));
! 
! 	  return n;
  	}
        /* FALLTHRU */
      case ENUMERAL_TYPE:
--- 995,1001 ----
  	  n = finish_struct (input_location, n, fields, attributes, NULL,
  			     &expr);
  
! 	  return qualify_type (n, t1);
  	}
        /* FALLTHRU */
      case ENUMERAL_TYPE:
*************** composite_type_internal (tree t1, tree t
*** 866,878 ****
        /* Function types: prefer the one that specified arg types.
  	 If both do, merge the arg types.  Also merge the return types.  */
        {
! 	tree valtype = composite_type_internal (TREE_TYPE (t1),
! 						TREE_TYPE (t2), cache);
  	tree p1 = TYPE_ARG_TYPES (t1);
  	tree p2 = TYPE_ARG_TYPES (t2);
- 	int len;
- 	tree newargs, n;
- 	int i;
  
  	/* Save space: see if the result is identical to one of the args.  */
  	if (valtype == TREE_TYPE (t1) && !TYPE_ARG_TYPES (t2))
--- 1013,1022 ----
        /* Function types: prefer the one that specified arg types.
  	 If both do, merge the arg types.  Also merge the return types.  */
        {
! 	tree valtype = composite_type_internal (TREE_TYPE (t1), TREE_TYPE (t2),
! 						cond, cache);
  	tree p1 = TYPE_ARG_TYPES (t1);
  	tree p2 = TYPE_ARG_TYPES (t2);
  
  	/* Save space: see if the result is identical to one of the args.  */
  	if (valtype == TREE_TYPE (t1) && !TYPE_ARG_TYPES (t2))
*************** composite_type_internal (tree t1, tree t
*** 898,990 ****
  
  	/* If both args specify argument types, we must merge the two
  	   lists, argument by argument.  */
  
! 	for (len = 0, newargs = p1;
! 	     newargs && newargs != void_list_node;
! 	     len++, newargs = TREE_CHAIN (newargs))
! 	  ;
! 
! 	for (i = 0; i < len; i++)
! 	  newargs = tree_cons (NULL_TREE, NULL_TREE, newargs);
! 
! 	n = newargs;
! 
! 	for (; p1 && p1 != void_list_node;
! 	     p1 = TREE_CHAIN (p1), p2 = TREE_CHAIN (p2), n = TREE_CHAIN (n))
  	  {
! 	     tree mv1 = TREE_VALUE (p1);
! 	     if (mv1 && mv1 != error_mark_node
! 		 && TREE_CODE (mv1) != ARRAY_TYPE)
! 	       mv1 = TYPE_MAIN_VARIANT (mv1);
! 
! 	     tree mv2 = TREE_VALUE (p2);
! 	     if (mv2 && mv2 != error_mark_node
! 		 && TREE_CODE (mv2) != ARRAY_TYPE)
! 	       mv2 = TYPE_MAIN_VARIANT (mv2);
! 
! 	    /* A null type means arg type is not specified.
! 	       Take whatever the other function type has.  */
! 	    if (TREE_VALUE (p1) == NULL_TREE)
! 	      {
! 		TREE_VALUE (n) = TREE_VALUE (p2);
! 		goto parm_done;
! 	      }
! 	    if (TREE_VALUE (p2) == NULL_TREE)
  	      {
! 		TREE_VALUE (n) = TREE_VALUE (p1);
! 		goto parm_done;
  	      }
  
! 	    /* Given  wait (union {union wait *u; int *i} *)
! 	       and  wait (union wait *),
! 	       prefer  union wait *  as type of parm.  */
! 	    if (TREE_CODE (TREE_VALUE (p1)) == UNION_TYPE
! 		&& TREE_VALUE (p1) != TREE_VALUE (p2))
! 	      {
! 		tree memb;
! 		for (memb = TYPE_FIELDS (TREE_VALUE (p1));
! 		     memb; memb = DECL_CHAIN (memb))
! 		  {
! 		    tree mv3 = TREE_TYPE (memb);
! 		    if (mv3 && mv3 != error_mark_node
! 			&& TREE_CODE (mv3) != ARRAY_TYPE)
! 		      mv3 = TYPE_MAIN_VARIANT (mv3);
! 		    if (comptypes (mv3, mv2))
! 		      {
! 			TREE_VALUE (n) = composite_type_internal (TREE_TYPE (memb),
! 								  TREE_VALUE (p2),
! 								  cache);
! 			pedwarn (input_location, OPT_Wpedantic,
! 				 "function types not truly compatible in ISO C");
! 			goto parm_done;
! 		      }
! 		  }
! 	      }
! 	    if (TREE_CODE (TREE_VALUE (p2)) == UNION_TYPE
! 		&& TREE_VALUE (p2) != TREE_VALUE (p1))
! 	      {
! 		tree memb;
! 		for (memb = TYPE_FIELDS (TREE_VALUE (p2));
! 		     memb; memb = DECL_CHAIN (memb))
! 		  {
! 		    tree mv3 = TREE_TYPE (memb);
! 		    if (mv3 && mv3 != error_mark_node
! 			&& TREE_CODE (mv3) != ARRAY_TYPE)
! 		      mv3 = TYPE_MAIN_VARIANT (mv3);
! 		    if (comptypes (mv3, mv1))
! 		      {
! 			TREE_VALUE (n)
! 				= composite_type_internal (TREE_TYPE (memb),
! 							   TREE_VALUE (p1),
! 							   cache);
! 			pedwarn (input_location, OPT_Wpedantic,
! 				 "function types not truly compatible in ISO C");
! 			goto parm_done;
! 		      }
! 		  }
! 	      }
! 	    TREE_VALUE (n) = composite_type_internal (mv1, mv2, cache);
! 	  parm_done: ;
  	  }
  
  	t1 = c_build_function_type (valtype, newargs);
--- 1042,1071 ----
  
  	/* If both args specify argument types, we must merge the two
  	   lists, argument by argument.  */
+ 	tree newargs = NULL_TREE;
+ 	tree *endp = &newargs;
  
! 	for (; p1; p1 = TREE_CHAIN (p1), p2 = TREE_CHAIN (p2))
  	  {
! 	    if (p1 == void_list_node)
  	      {
! 		*endp = void_list_node;
! 		break;
  	      }
+ 	    tree mv1 = remove_qualifiers (TREE_VALUE (p1));
+ 	    tree mv2 = remove_qualifiers (TREE_VALUE (p2));
  
! 	    gcc_assert (mv1);
! 	    gcc_assert (mv2);
! 
! 	    mv1 = transparent_union_replacement (mv1, mv2);
! 	    mv2 = transparent_union_replacement (mv2, mv1);
! 
! 	    *endp = tree_cons (NULL_TREE,
! 			       composite_type_internal (mv1, mv2, cond, cache),
! 			       NULL_TREE);
! 
! 	    endp = &TREE_CHAIN (*endp);
  	  }
  
  	t1 = c_build_function_type (valtype, newargs);
*************** composite_type_internal (tree t1, tree t
*** 998,1007 ****
  }
  
  tree
! composite_type (tree t1, tree t2)
  {
    struct composite_cache cache = { };
!   return composite_type_internal (t1, t2, &cache);
  }
  
  /* Return the type of a conditional expression between pointers to
--- 1079,1101 ----
  }
  
  tree
! composite_type_cond (tree t1, tree t2, tree cond)
  {
+   gcc_checking_assert (comptypes_check_for_composite (t1, t2));
+ 
    struct composite_cache cache = { };
!   tree n = composite_type_internal (t1, t2, cond, &cache);
! 
!   gcc_checking_assert (comptypes_check_for_composite (n, t1));
!   gcc_checking_assert (comptypes_check_for_composite (n, t2));
!   return n;
! }
! 
! 
! tree
! composite_type (tree t1, tree t2)
! {
!   return composite_type_cond (t1, t2, NULL_TREE);
  }
  
  /* Return the type of a conditional expression between pointers to
*************** composite_type (tree t1, tree t2)
*** 1011,1022 ****
     true; if that isn't so, this may crash.  */
  
  static tree
! common_pointer_type (tree t1, tree t2)
  {
    tree attributes;
-   tree pointed_to_1, mv1;
-   tree pointed_to_2, mv2;
-   tree target;
    unsigned target_quals;
    addr_space_t as1, as2, as_common;
    int quals1, quals2;
--- 1105,1113 ----
     true; if that isn't so, this may crash.  */
  
  static tree
! common_pointer_type (tree t1, tree t2, tree cond)
  {
    tree attributes;
    unsigned target_quals;
    addr_space_t as1, as2, as_common;
    int quals1, quals2;
*************** common_pointer_type (tree t1, tree t2)
*** 1038,1052 ****
    attributes = targetm.merge_type_attributes (t1, t2);
  
    /* Find the composite type of the target types, and combine the
!      qualifiers of the two types' targets.  Do not lose qualifiers on
!      array element types by taking the TYPE_MAIN_VARIANT.  */
!   mv1 = pointed_to_1 = TREE_TYPE (t1);
!   mv2 = pointed_to_2 = TREE_TYPE (t2);
!   if (TREE_CODE (mv1) != ARRAY_TYPE)
!     mv1 = TYPE_MAIN_VARIANT (pointed_to_1);
!   if (TREE_CODE (mv2) != ARRAY_TYPE)
!     mv2 = TYPE_MAIN_VARIANT (pointed_to_2);
!   target = composite_type (mv1, mv2);
  
    /* Strip array types to get correct qualifier for pointers to arrays */
    quals1 = TYPE_QUALS_NO_ADDR_SPACE (strip_array_types (pointed_to_1));
--- 1129,1139 ----
    attributes = targetm.merge_type_attributes (t1, t2);
  
    /* Find the composite type of the target types, and combine the
!      qualifiers of the two types' targets.  */
!   tree pointed_to_1 = TREE_TYPE (t1);
!   tree pointed_to_2 = TREE_TYPE (t2);
!   tree target = composite_type_cond (TYPE_MAIN_VARIANT (pointed_to_1),
! 				     TYPE_MAIN_VARIANT (pointed_to_2), cond);
  
    /* Strip array types to get correct qualifier for pointers to arrays */
    quals1 = TYPE_QUALS_NO_ADDR_SPACE (strip_array_types (pointed_to_1));
*************** comptypes_verify (tree type1, tree type2
*** 1451,1466 ****
--- 1538,1576 ----
  }
  
  struct comptypes_data {
+ 
+   /* output */
    bool enum_and_int_p;
    bool different_types_p;
    bool warning_needed;
+ 
+   /* context */
    bool anon_field;
    bool pointedto;
+ 
+   /* configuration */
    bool equiv;
+   bool ignore_promoting_args;
  
    const struct tagged_tu_seen_cache* cache;
  };
  
+ 
+ /* Helper function for composite_type.  This function ignores when the
+    function type of an old-style declaration is incompatible with a type
+    of a declaration with prototype because some are arguments are not
+    self-promoting.  This is ignored only for function types but not
+    ignored in a nested context.  */
+ 
+ static bool
+ comptypes_check_for_composite (tree t1, tree t2)
+ {
+   struct comptypes_data data = { };
+   data.ignore_promoting_args = FUNCTION_TYPE == TREE_CODE (t1);
+   return comptypes_internal (t1, t2, &data);
+ }
+ 
+ 
  /* C implementation of compatible_types_for_indirection_note_p.  */
  
  bool
*************** comptypes_equiv_p (tree type1, tree type
*** 1590,1595 ****
--- 1700,1709 ----
     permitted in C11 typedef redeclarations, then this sets
     'different_types_p' in DATA to true; it is never set to
     false, but may or may not be set if the types are incompatible.
+    If two functions types are not compatible only because one is
+    an old-style definition that does not have self-promoting arguments,
+    then this can be ignored by setting 'ignore_promoting_args_p'.
+    For 'equiv' we can compute equivalency classes (see above).
     This differs from comptypes, in that we don't free the seen
     types.  */
  
*************** comptypes_internal (const_tree type1, co
*** 1606,1611 ****
--- 1720,1730 ----
        || TREE_CODE (t1) == ERROR_MARK || TREE_CODE (t2) == ERROR_MARK)
      return true;
  
+   /* Qualifiers must match. C99 6.7.3p9 */
+ 
+   if (TYPE_QUALS (t1) != TYPE_QUALS (t2))
+     return false;
+ 
    /* Enumerated types are compatible with integer types, but this is
       not transitive: two enumerated types in the same translation unit
       are compatible with each other only if they are the same type.  */
*************** comptypes_internal (const_tree type1, co
*** 1641,1651 ****
    if (TREE_CODE (t1) != TREE_CODE (t2))
      return false;
  
-   /* Qualifiers must match. C99 6.7.3p9 */
- 
-   if (TYPE_QUALS (t1) != TYPE_QUALS (t2))
-     return false;
- 
    /* Allow for two different type nodes which have essentially the same
       definition.  Note that we already checked for equality of the type
       qualifiers (just above).  */
--- 1760,1765 ----
*************** comptypes_internal (const_tree type1, co
*** 1658,1664 ****
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
    if (!(attrval = comp_type_attributes (t1, t2)))
!      return false;
  
    if (2 == attrval)
      data->warning_needed = true;
--- 1772,1778 ----
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
    if (!(attrval = comp_type_attributes (t1, t2)))
!     return false;
  
    if (2 == attrval)
      data->warning_needed = true;
*************** comp_target_types (location_t location,
*** 1788,1802 ****
      val_ped = comptypes (mvl, mvr);
  
    /* Qualifiers on element types of array types that are
!      pointer targets are lost by taking their TYPE_MAIN_VARIANT.  */
! 
!   mvl = (TYPE_ATOMIC (strip_array_types (mvl))
! 	 ? c_build_qualified_type (TYPE_MAIN_VARIANT (mvl), TYPE_QUAL_ATOMIC)
! 	 : TYPE_MAIN_VARIANT (mvl));
! 
!   mvr = (TYPE_ATOMIC (strip_array_types (mvr))
! 	 ? c_build_qualified_type (TYPE_MAIN_VARIANT (mvr), TYPE_QUAL_ATOMIC)
! 	 : TYPE_MAIN_VARIANT (mvr));
  
    enum_and_int_p = false;
    val = comptypes_check_enum_int (mvl, mvr, &enum_and_int_p);
--- 1902,1910 ----
      val_ped = comptypes (mvl, mvr);
  
    /* Qualifiers on element types of array types that are
!      pointer targets are also removed.  */
!   mvl = remove_qualifiers (mvl);
!   mvr = remove_qualifiers (mvr);
  
    enum_and_int_p = false;
    val = comptypes_check_enum_int (mvl, mvr, &enum_and_int_p);
*************** tagged_types_tu_compatible_p (const_tree
*** 1833,1839 ****
    /* 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
--- 1941,1947 ----
    /* 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 && NULL_TREE != c_type_tag (t1))
      return true;
  
    /* Different types without tag are incompatible except as an anonymous
*************** tagged_types_tu_compatible_p (const_tree
*** 1947,1952 ****
--- 2055,2063 ----
  		ft2 = DECL_BIT_FIELD_TYPE (s2);
  	      }
  
+ 	    if (!ft1 || !ft2)
+ 	      return false;
+ 
  	    if (TREE_CODE (ft1) == ERROR_MARK || TREE_CODE (ft2) == ERROR_MARK)
  	      return false;
  
*************** static bool
*** 2019,2032 ****
  function_types_compatible_p (const_tree f1, const_tree f2,
  			     struct comptypes_data *data)
  {
!   tree args1, args2;
!   /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   int val = 1;
!   int val1;
!   tree ret1, ret2;
! 
!   ret1 = TREE_TYPE (f1);
!   ret2 = TREE_TYPE (f2);
  
    /* 'volatile' qualifiers on a function's return type used to mean
       the function is noreturn.  */
--- 2130,2137 ----
  function_types_compatible_p (const_tree f1, const_tree f2,
  			     struct comptypes_data *data)
  {
!   tree ret1 = TREE_TYPE (f1);
!   tree ret2 = TREE_TYPE (f2);
  
    /* 'volatile' qualifiers on a function's return type used to mean
       the function is noreturn.  */
*************** function_types_compatible_p (const_tree
*** 2038,2049 ****
    if (TYPE_VOLATILE (ret2))
      ret2 = build_qualified_type (TYPE_MAIN_VARIANT (ret2),
  				 TYPE_QUALS (ret2) & ~TYPE_QUAL_VOLATILE);
-   val = comptypes_internal (ret1, ret2, data);
-   if (val == 0)
-     return 0;
  
!   args1 = TYPE_ARG_TYPES (f1);
!   args2 = TYPE_ARG_TYPES (f2);
  
    if ((args1 == NULL_TREE) != (args2 == NULL_TREE))
      data->different_types_p = true;
--- 2143,2159 ----
    if (TYPE_VOLATILE (ret2))
      ret2 = build_qualified_type (TYPE_MAIN_VARIANT (ret2),
  				 TYPE_QUALS (ret2) & ~TYPE_QUAL_VOLATILE);
  
!   bool ignore_pargs = data->ignore_promoting_args;
!   data->ignore_promoting_args = false;
! 
!   if (!comptypes_internal (ret1, ret2, data))
!     return false;
! 
!   data->ignore_promoting_args = ignore_pargs;
! 
!   tree args1 = TYPE_ARG_TYPES (f1);
!   tree args2 = TYPE_ARG_TYPES (f2);
  
    if ((args1 == NULL_TREE) != (args2 == NULL_TREE))
      data->different_types_p = true;
*************** function_types_compatible_p (const_tree
*** 2054,2093 ****
    if (args1 == NULL_TREE)
      {
        if (TYPE_NO_NAMED_ARGS_STDARG_P (f1) != TYPE_NO_NAMED_ARGS_STDARG_P (f2))
! 	return 0;
!       if (!self_promoting_args_p (args2))
! 	return 0;
        /* If one of these types comes from a non-prototype fn definition,
  	 compare that with the other type's arglist.
  	 If they don't match, ask for a warning (but no error).  */
        if (TYPE_ACTUAL_ARG_TYPES (f1)
! 	  && type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1),
! 				      data) != 1)
! 	{
! 	  val = 1;
! 	  data->warning_needed = true;
! 	}
!       return val;
      }
    if (args2 == NULL_TREE)
      {
        if (TYPE_NO_NAMED_ARGS_STDARG_P (f1) != TYPE_NO_NAMED_ARGS_STDARG_P (f2))
! 	return 0;
!       if (!self_promoting_args_p (args1))
! 	return 0;
        if (TYPE_ACTUAL_ARG_TYPES (f2)
! 	  && type_lists_compatible_p (args1, TYPE_ACTUAL_ARG_TYPES (f2),
! 				      data) != 1)
! 	{
! 	  val = 1;
! 	  data->warning_needed = true;
! 	}
!       return val;
      }
  
    /* Both types have argument lists: compare them and propagate results.  */
!   val1 = type_lists_compatible_p (args1, args2, data);
!   return val1;
  }
  
  /* Check two lists of types for compatibility, returning false for
--- 2164,2196 ----
    if (args1 == NULL_TREE)
      {
        if (TYPE_NO_NAMED_ARGS_STDARG_P (f1) != TYPE_NO_NAMED_ARGS_STDARG_P (f2))
! 	return false;
!       if (!(data->ignore_promoting_args || self_promoting_args_p (args2)))
! 	return false;
!       data->ignore_promoting_args = false;
        /* If one of these types comes from a non-prototype fn definition,
  	 compare that with the other type's arglist.
  	 If they don't match, ask for a warning (but no error).  */
        if (TYPE_ACTUAL_ARG_TYPES (f1)
! 	  && !type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1), data))
! 	 data->warning_needed = true;
!       return true;
      }
    if (args2 == NULL_TREE)
      {
        if (TYPE_NO_NAMED_ARGS_STDARG_P (f1) != TYPE_NO_NAMED_ARGS_STDARG_P (f2))
! 	return false;
!       if (!(data->ignore_promoting_args || self_promoting_args_p (args1)))
! 	return false;
!       data->ignore_promoting_args = false;
        if (TYPE_ACTUAL_ARG_TYPES (f2)
! 	  && !type_lists_compatible_p (args1, TYPE_ACTUAL_ARG_TYPES (f2), data))
! 	data->warning_needed = true;
!       return true;
      }
  
    /* Both types have argument lists: compare them and propagate results.  */
!   return type_lists_compatible_p (args1, args2, data);
  }
  
  /* Check two lists of types for compatibility, returning false for
*************** type_lists_compatible_p (const_tree args
*** 2099,2141 ****
  {
    while (1)
      {
-       tree a1, mv1, a2, mv2;
        if (args1 == NULL_TREE && args2 == NULL_TREE)
  	return true;
        /* If one list is shorter than the other,
  	 they fail to match.  */
        if (args1 == NULL_TREE || args2 == NULL_TREE)
! 	return 0;
!       mv1 = a1 = TREE_VALUE (args1);
!       mv2 = a2 = TREE_VALUE (args2);
!       if (mv1 && mv1 != error_mark_node && TREE_CODE (mv1) != ARRAY_TYPE)
! 	mv1 = (TYPE_ATOMIC (mv1)
! 	       ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv1),
! 					 TYPE_QUAL_ATOMIC)
! 	       : TYPE_MAIN_VARIANT (mv1));
!       if (mv2 && mv2 != error_mark_node && TREE_CODE (mv2) != ARRAY_TYPE)
! 	mv2 = (TYPE_ATOMIC (mv2)
! 	       ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv2),
! 					 TYPE_QUAL_ATOMIC)
! 	       : TYPE_MAIN_VARIANT (mv2));
!       /* A null pointer instead of a type
! 	 means there is supposed to be an argument
! 	 but nothing is specified about what type it has.
! 	 So match anything that self-promotes.  */
!       if ((a1 == NULL_TREE) != (a2 == NULL_TREE))
! 	data->different_types_p = true;
!       if (a1 == NULL_TREE)
! 	{
! 	  if (c_type_promotes_to (a2) != a2)
! 	    return 0;
! 	}
!       else if (a2 == NULL_TREE)
! 	{
! 	  if (c_type_promotes_to (a1) != a1)
! 	    return 0;
! 	}
        /* If one of the lists has an error marker, ignore this arg.  */
!       else if (TREE_CODE (a1) == ERROR_MARK
  	       || TREE_CODE (a2) == ERROR_MARK)
  	;
        else if (!comptypes_internal (mv1, mv2, data))
--- 2202,2223 ----
  {
    while (1)
      {
        if (args1 == NULL_TREE && args2 == NULL_TREE)
  	return true;
        /* If one list is shorter than the other,
  	 they fail to match.  */
        if (args1 == NULL_TREE || args2 == NULL_TREE)
! 	return false;
!       tree a1 = TREE_VALUE (args1);
!       tree a2 = TREE_VALUE (args2);
!       tree mv1 = remove_qualifiers (a1);
!       tree mv2 = remove_qualifiers (a2);
! 
!       gcc_assert (mv2);
!       gcc_assert (mv2);
! 
        /* If one of the lists has an error marker, ignore this arg.  */
!       if (TREE_CODE (a1) == ERROR_MARK
  	       || TREE_CODE (a2) == ERROR_MARK)
  	;
        else if (!comptypes_internal (mv1, mv2, data))
*************** type_lists_compatible_p (const_tree args
*** 2154,2171 ****
  	      for (memb = TYPE_FIELDS (a1);
  		   memb; memb = DECL_CHAIN (memb))
  		{
! 		  tree mv3 = TREE_TYPE (memb);
! 		  if (mv3 && mv3 != error_mark_node
! 		      && TREE_CODE (mv3) != ARRAY_TYPE)
! 		    mv3 = (TYPE_ATOMIC (mv3)
! 			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
! 						     TYPE_QUAL_ATOMIC)
! 			   : TYPE_MAIN_VARIANT (mv3));
  		  if (comptypes_internal (mv3, mv2, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
! 		return 0;
  	    }
  	  else if (TREE_CODE (a2) == UNION_TYPE
  		   && (TYPE_NAME (a2) == NULL_TREE
--- 2236,2247 ----
  	      for (memb = TYPE_FIELDS (a1);
  		   memb; memb = DECL_CHAIN (memb))
  		{
! 		  tree mv3 = remove_qualifiers (TREE_TYPE (memb));
  		  if (comptypes_internal (mv3, mv2, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
! 		return false;
  	    }
  	  else if (TREE_CODE (a2) == UNION_TYPE
  		   && (TYPE_NAME (a2) == NULL_TREE
*************** type_lists_compatible_p (const_tree args
*** 2178,2198 ****
  	      for (memb = TYPE_FIELDS (a2);
  		   memb; memb = DECL_CHAIN (memb))
  		{
! 		  tree mv3 = TREE_TYPE (memb);
! 		  if (mv3 && mv3 != error_mark_node
! 		      && TREE_CODE (mv3) != ARRAY_TYPE)
! 		    mv3 = (TYPE_ATOMIC (mv3)
! 			   ? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
! 						     TYPE_QUAL_ATOMIC)
! 			   : TYPE_MAIN_VARIANT (mv3));
  		  if (comptypes_internal (mv3, mv1, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
! 		return 0;
  	    }
  	  else
! 	    return 0;
  	}
  
        args1 = TREE_CHAIN (args1);
--- 2254,2268 ----
  	      for (memb = TYPE_FIELDS (a2);
  		   memb; memb = DECL_CHAIN (memb))
  		{
! 		  tree mv3 = remove_qualifiers (TREE_TYPE (memb));
  		  if (comptypes_internal (mv3, mv1, data))
  		    break;
  		}
  	      if (memb == NULL_TREE)
! 		return false;
  	    }
  	  else
! 	    return false;
  	}
  
        args1 = TREE_CHAIN (args1);
*************** function_to_pointer_conversion (location
*** 2301,2307 ****
  
    copy_warning (exp, orig_exp);
  
!   return build_unary_op (loc, ADDR_EXPR, exp, false);
  }
  
  /* Mark EXP as read, not just set, for set but not used -Wunused
--- 2371,2385 ----
  
    copy_warning (exp, orig_exp);
  
!   tree exp2 = build_unary_op (loc, ADDR_EXPR, exp, false);
! 
!   /* If the function is defined and known to not to require a non-local
!      context, make sure no trampoline is generated.  */
!   if (TREE_CODE (exp) == FUNCTION_DECL
!       && DECL_INITIAL (exp) && !C_FUNC_NONLOCAL_CONTEXT (exp))
!    TREE_NO_TRAMPOLINE (exp2) = 1;
! 
!   return exp2;
  }
  
  /* Mark EXP as read, not just set, for set but not used -Wunused
*************** mark_exp_read (tree exp)
*** 2316,2329 ****
      case PARM_DECL:
        DECL_READ_P (exp) = 1;
        break;
      case ARRAY_REF:
      case COMPONENT_REF:
      case MODIFY_EXPR:
      case REALPART_EXPR:
      case IMAGPART_EXPR:
-     CASE_CONVERT:
      case ADDR_EXPR:
      case VIEW_CONVERT_EXPR:
        mark_exp_read (TREE_OPERAND (exp, 0));
        break;
      case COMPOUND_EXPR:
--- 2394,2423 ----
      case PARM_DECL:
        DECL_READ_P (exp) = 1;
        break;
+     CASE_CONVERT:
+       if (VOID_TYPE_P (TREE_TYPE (exp)))
+ 	switch (TREE_CODE (TREE_OPERAND (exp, 0)))
+ 	  {
+ 	  case PREINCREMENT_EXPR:
+ 	  case PREDECREMENT_EXPR:
+ 	  case POSTINCREMENT_EXPR:
+ 	  case POSTDECREMENT_EXPR:
+ 	    return;
+ 	  default:
+ 	    break;
+ 	  }
+       /* FALLTHRU */
      case ARRAY_REF:
      case COMPONENT_REF:
      case MODIFY_EXPR:
      case REALPART_EXPR:
      case IMAGPART_EXPR:
      case ADDR_EXPR:
      case VIEW_CONVERT_EXPR:
+     case PREINCREMENT_EXPR:
+     case PREDECREMENT_EXPR:
+     case POSTINCREMENT_EXPR:
+     case POSTDECREMENT_EXPR:
        mark_exp_read (TREE_OPERAND (exp, 0));
        break;
      case COMPOUND_EXPR:
*************** struct c_expr
*** 2444,2449 ****
--- 2538,2547 ----
  default_function_array_read_conversion (location_t loc, struct c_expr exp)
  {
    mark_exp_read (exp.value);
+   /* We only generate a call to .ACCESS_WITH_SIZE when it is a read.  */
+   if (TREE_CODE (exp.value) == COMPONENT_REF
+       && handle_counted_by_p (exp.value))
+     exp.value = handle_counted_by_for_component_ref (loc, exp.value);
    return default_function_array_conversion (loc, exp);
  }
  
*************** really_atomic_lvalue (tree expr)
*** 2457,2462 ****
--- 2555,2562 ----
      return false;
    if (!TYPE_ATOMIC (TREE_TYPE (expr)))
      return false;
+   if (!COMPLETE_TYPE_P (TREE_TYPE (expr)))
+     return false;
    if (!lvalue_p (expr))
      return false;
  
*************** really_atomic_lvalue (tree expr)
*** 2474,2479 ****
--- 2574,2581 ----
  	return false;
        expr = TREE_OPERAND (expr, 0);
      }
+   if (TREE_CODE (expr) == COMPOUND_LITERAL_EXPR)
+     expr = COMPOUND_LITERAL_EXPR_DECL (expr);
    if (DECL_P (expr) && C_DECL_REGISTER (expr))
      return false;
    return true;
*************** maybe_get_constexpr_init (tree expr)
*** 2530,2535 ****
--- 2632,2650 ----
    return build_zero_cst (TREE_TYPE (expr));
  }
  
+ /* Helper function for convert_lvalue_to_rvalue called via
+    walk_tree_without_duplicates.  Find DATA inside of the expression.  */
+ 
+ static tree
+ c_find_var_r (tree *tp, int *walk_subtrees, void *data)
+ {
+   if (TYPE_P (*tp))
+     *walk_subtrees = 0;
+   else if (*tp == (tree) data)
+     return *tp;
+   return NULL_TREE;
+ }
+ 
  /* Convert expression EXP (location LOC) from lvalue to rvalue,
     including converting functions and arrays to pointers if CONVERT_P.
     If READ_P, also mark the expression as having been read.  If
*************** convert_lvalue_to_rvalue (location_t loc
*** 2545,2553 ****
    bool force_non_npc = false;
    if (read_p)
      mark_exp_read (exp.value);
    if (convert_p)
      exp = default_function_array_conversion (loc, exp);
!   if (!VOID_TYPE_P (TREE_TYPE (exp.value)))
      exp.value = require_complete_type (loc, exp.value);
    if (for_init || !RECORD_OR_UNION_TYPE_P (TREE_TYPE (exp.value)))
      {
--- 2660,2675 ----
    bool force_non_npc = false;
    if (read_p)
      mark_exp_read (exp.value);
+   /* We only generate a call to .ACCESS_WITH_SIZE when it is a read.  */
+   if (read_p && TREE_CODE (exp.value) == COMPONENT_REF
+       && handle_counted_by_p (exp.value))
+     exp.value = handle_counted_by_for_component_ref (loc, exp.value);
+ 
    if (convert_p)
      exp = default_function_array_conversion (loc, exp);
!   if (!VOID_TYPE_P (TREE_TYPE (exp.value))
!       || (flag_isoc2y
! 	  && TYPE_QUALS (TREE_TYPE (exp.value)) != TYPE_UNQUALIFIED))
      exp.value = require_complete_type (loc, exp.value);
    if (for_init || !RECORD_OR_UNION_TYPE_P (TREE_TYPE (exp.value)))
      {
*************** convert_lvalue_to_rvalue (location_t loc
*** 2597,2602 ****
--- 2719,2743 ----
        /* EXPR is always read.  */
        mark_exp_read (exp.value);
  
+       /* Optimize the common case where c_build_function_call_vec
+ 	 immediately folds __atomic_load (&expr, &tmp, SEQ_CST); into
+ 	 tmp = __atomic_load_<N> (&expr, SEQ_CST);
+ 	 In that case tmp is not addressable and can be initialized
+ 	 fully by the rhs of the MODIFY_EXPR.  */
+       tree tem = func_call;
+       if (CONVERT_EXPR_P (tem) && VOID_TYPE_P (TREE_TYPE (tem)))
+ 	{
+ 	  tem = TREE_OPERAND (tem, 0);
+ 	  if (TREE_CODE (tem) == MODIFY_EXPR
+ 	      && TREE_OPERAND (tem, 0) == tmp
+ 	      && !walk_tree_without_duplicates (&TREE_OPERAND (tem, 1),
+ 						c_find_var_r, tmp))
+ 	    {
+ 	      TREE_ADDRESSABLE (tmp) = 0;
+ 	      func_call = TREE_OPERAND (tem, 1);
+ 	    }
+ 	}
+ 
        /* Return tmp which contains the value loaded.  */
        exp.value = build4 (TARGET_EXPR, nonatomic_type, tmp, func_call,
  			  NULL_TREE, NULL_TREE);
*************** convert_lvalue_to_rvalue (location_t loc
*** 2638,2643 ****
--- 2779,2798 ----
    return exp;
  }
  
+ /* Wrapper for the overload above, same arguments but for tree rather than
+    c_expr.  This is important for hardbools to decay to bools.  */
+ 
+ static inline tree
+ convert_lvalue_to_rvalue (location_t loc, tree val,
+ 			  bool convert_p, bool read_p, bool for_init = false)
+ {
+   struct c_expr expr;
+   memset (&expr, 0, sizeof (expr));
+   expr.value = val;
+   expr = convert_lvalue_to_rvalue (loc, expr, convert_p, read_p, for_init);
+   return expr.value;
+ }
+ 
  /* EXP is an expression of integer type.  Apply the integer promotions
     to it and return the promoted value.  */
  
*************** default_conversion (tree exp)
*** 2708,2713 ****
--- 2863,2872 ----
    tree promoted_type;
  
    mark_exp_read (exp);
+   /* We only generate a call to .ACCESS_WITH_SIZE when it is a read.  */
+   if (TREE_CODE (exp) == COMPONENT_REF
+       && handle_counted_by_p (exp))
+     exp = handle_counted_by_for_component_ref (EXPR_LOCATION (exp), exp);
  
    /* Functions and arrays have been converted during parsing.  */
    gcc_assert (code != FUNCTION_TYPE);
*************** should_suggest_deref_p (tree datum_type)
*** 2926,2935 ****
      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:
  
--- 3085,3147 ----
      return false;
  }
  
! /* Give a component ref REF, decide whether we should handle its counted_by
!    attribute based on its context:
!    Do not handle counted_by when in offsetof, typeof and alignof operator.  */
! 
! static bool
! handle_counted_by_p (tree ref)
! {
!   gcc_assert (TREE_CODE (ref) == COMPONENT_REF);
!   tree datum = TREE_OPERAND (ref, 0);
!   /* If the component_ref is build for a offsetof, i.e., the datum
!      of the component_ref is a indirect_ref of null_pointer_node,
!      we should not generate call to .ACCESS_WITH_SIZE.  */
!   if (TREE_CODE (datum) == INDIRECT_REF
!       && TREE_OPERAND (datum, 0) == null_pointer_node)
!     return false;
!   if (in_typeof || in_alignof)
!     return false;
!   return true;
! }
! 
! /* Given a component ref REF, if there is a counted_by attribute attached,
!    issue error when the element_type is a structure or union including a
!    flexible array member.  */
! 
! static void
! check_counted_by_attribute (location_t loc, tree ref)
! {
!   tree subdatum = TREE_OPERAND (ref, 1);
!   tree sub_type = TREE_TYPE (subdatum);
! 
!   if (!c_flexible_array_member_type_p (sub_type)
!       && TREE_CODE (sub_type) != POINTER_TYPE)
!     return;
! 
!   tree element_type = TREE_TYPE (sub_type);
! 
!   tree attr_counted_by = lookup_attribute ("counted_by",
! 					   DECL_ATTRIBUTES (subdatum));
!   if (attr_counted_by)
!     {
!       /* Issue error when the element_type is a structure or
! 	union including a flexible array member.  */
!       if (RECORD_OR_UNION_TYPE_P (element_type)
! 	  && TYPE_INCLUDES_FLEXARRAY (element_type))
! 	{
! 	  error_at (loc,
! 		    "%<counted_by%> attribute is not allowed for a pointer to"
! 		    " structure or union with flexible array member");
! 	  return;
! 	}
!     }
! }
! 
! /* 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
!    or a pointer field, otherwise return NULL_TREE.
     Set COUNTED_BY_TYPE to the TYPE of the counted_by field.
     For example, if:
  
*************** should_suggest_deref_p (tree datum_type)
*** 2944,3008 ****
      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
--- 3156,3256 ----
      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 sub_type = TREE_TYPE (subdatum);
!   if (!c_flexible_array_member_type_p (sub_type)
!       && TREE_CODE (sub_type) != POINTER_TYPE)
      return NULL_TREE;
  
    tree attr_counted_by = lookup_attribute ("counted_by",
  					   DECL_ATTRIBUTES (subdatum));
+   if (!attr_counted_by)
+     return NULL_TREE;
+ 
    tree counted_by_ref = NULL_TREE;
    *counted_by_type = NULL_TREE;
! 
!   tree type = TREE_TYPE (datum);
! 
!   /* If the type of the containing structure is an anonymous struct/union,
!      and this anonymous struct/union is not a root type, get the first
!      outer named structure/union type.  */
!   while (TREE_CODE (datum) == COMPONENT_REF
! 	 && c_type_tag (type) == NULL_TREE
! 	 && DECL_NAME (TREE_OPERAND (datum, 1)) == NULL_TREE)
      {
!       datum = TREE_OPERAND (datum, 0);
!       type = TREE_TYPE (datum);
!     }
  
+   tree field_id = TREE_VALUE (TREE_VALUE (attr_counted_by));
+   tree counted_by_field = lookup_field (type, field_id);
+   gcc_assert (counted_by_field);
+ 
+   tree counted_by_subdatum;
+   do
+     {
+       counted_by_subdatum = TREE_VALUE (counted_by_field);
        /* Get the TYPE of the counted_by field.  */
!       *counted_by_type = TREE_TYPE (counted_by_subdatum);
  
!       counted_by_ref
! 	= build3 (COMPONENT_REF, TREE_TYPE (counted_by_subdatum),
! 		  datum, counted_by_subdatum, NULL_TREE);
! 
!       datum = counted_by_ref;
!       counted_by_field = TREE_CHAIN (counted_by_field);
      }
+   while (counted_by_field);
+ 
+   counted_by_ref = build_fold_addr_expr (counted_by_ref);
    return counted_by_ref;
  }
  
  /* Given a COMPONENT_REF REF with the location LOC, the corresponding
!    COUNTED_BY_REF, and the COUNTED_BY_TYPE, generate the corresponding
!    call to the internal function .ACCESS_WITH_SIZE.
! 
!    A: For the Flexible Array Member, Generate an INDIRECT_REF to a call to
!    the internal function .ACCESS_WITH_SIZE.
  
     REF
  
     to:
  
!    (*.ACCESS_WITH_SIZE (REF, COUNTED_BY_REF, (* TYPE_OF_SIZE)0,
! 			TYPE_SIZE_UNIT for element)
  
     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.
  
!    B: For pointers with counted_by, generate a call to the internal function
!    .ACCESS_WITH_SIZE.
  
!     REF
! 
!     to:
! 
!     .ACCESS_WITH_SIZE (REF, COUNTED_BY_REF, (* TYPE_OF_SIZE)0,
! 		       TYPE_SIZE_UNIT for element)
! 
!    NOTE: The return type of this function is the original pointer type.
!    The type of the first argument of this function is the original
!    pointer type.
! 
!    The 3rd argument of the call is a constant 0 with the pointer TYPE whose
!    pointee type is the TYPE of the object pointed by COUNTED_BY_REF.
! 
!    The 4th argument of the call is the TYPE_SIZE_UNIT of the element TYPE
!    of the array.
  
    */
  static tree
*************** build_access_with_size_for_counted_by (l
*** 3010,3034 ****
  				       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;
  }
--- 3258,3299 ----
  				       tree counted_by_ref,
  				       tree counted_by_type)
  {
!   gcc_assert (c_flexible_array_member_type_p (TREE_TYPE (ref))
! 	      || TREE_CODE (TREE_TYPE (ref)) == POINTER_TYPE);
! 
!   bool is_fam = c_flexible_array_member_type_p (TREE_TYPE (ref));
! 
!   /* The result type of the call is a pointer to the flexible array type;
!      or is the original ponter type to the pointer field with counted_by.  */
!   tree result_type = is_fam ? c_build_pointer_type (TREE_TYPE (ref))
! 		     : TREE_TYPE (ref);
! 
!   tree element_type = TREE_TYPE (TREE_TYPE (ref));
!   tree element_size = VOID_TYPE_P (element_type)
! 		      ? size_one_node
! 		      : TYPE_SIZE_UNIT (element_type);
!   if (element_size == NULL_TREE)
!     return ref;
! 
!   tree first_param = is_fam
! 		     ? c_fully_fold (array_to_pointer_conversion (loc, ref),
! 				     false, NULL)
! 		     : c_fully_fold (ref, false, NULL);
    tree second_param
      = c_fully_fold (counted_by_ref, false, NULL);
+   tree third_param = build_int_cst (c_build_pointer_type (counted_by_type), 0);
  
    tree call
      = build_call_expr_internal_loc (loc, IFN_ACCESS_WITH_SIZE,
! 				    result_type, 4,
  				    first_param,
  				    second_param,
! 				    third_param,
! 				    element_size);
! 
    /* Wrap the call with an INDIRECT_REF with the flexible array type.  */
!   if (is_fam)
!     call = build1 (INDIRECT_REF, TREE_TYPE (ref), call);
    SET_EXPR_LOCATION (call, loc);
    return call;
  }
*************** handle_counted_by_for_component_ref (loc
*** 3045,3050 ****
--- 3310,3320 ----
    tree datum = TREE_OPERAND (ref, 0);
    tree subdatum = TREE_OPERAND (ref, 1);
    tree counted_by_type = NULL_TREE;
+ 
+   if (!(c_flexible_array_member_type_p (TREE_TYPE (ref))
+ 	|| TREE_CODE (TREE_TYPE (ref)) == POINTER_TYPE))
+     return ref;
+ 
    tree counted_by_ref = build_counted_by_ref (datum, subdatum,
  					      &counted_by_type);
    if (counted_by_ref)
*************** handle_counted_by_for_component_ref (loc
*** 3064,3071 ****
  
  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);
--- 3334,3340 ----
  
  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);
*************** build_component_ref (location_t loc, tre
*** 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;
--- 3406,3411 ----
*************** build_component_ref (location_t loc, tre
*** 3159,3166 ****
  			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)))
--- 3426,3432 ----
  			NULL_TREE);
  	  SET_EXPR_LOCATION (ref, loc);
  
! 	  check_counted_by_attribute (loc, ref);
  
  	  if (TREE_READONLY (subdatum)
  	      || (use_datum_quals && TREE_READONLY (datum)))
*************** build_array_ref (location_t loc, tree ar
*** 3347,3352 ****
--- 3613,3623 ----
    bool was_vector = VECTOR_TYPE_P (TREE_TYPE (array));
    bool non_lvalue = convert_vector_to_array_for_subscript (loc, &array, index);
  
+   /* We only generate a call to .ACCESS_WITH_SIZE when it is a read.  */
+   if (TREE_CODE (array) == COMPONENT_REF
+       && handle_counted_by_p (array))
+     array = handle_counted_by_for_component_ref (loc, array);
+ 
    if (TREE_CODE (TREE_TYPE (array)) == ARRAY_TYPE)
      {
        tree rval, type;
*************** build_array_ref (location_t loc, tree ar
*** 3359,3365 ****
  	  || (COMPLETE_TYPE_P (TREE_TYPE (TREE_TYPE (array)))
  	      && TREE_CODE (TYPE_SIZE (TREE_TYPE (TREE_TYPE (array)))) != INTEGER_CST))
  	{
! 	  if (!c_mark_addressable (array, true))
  	    return error_mark_node;
  	}
        /* An array that is indexed by a constant value which is not within
--- 3630,3636 ----
  	  || (COMPLETE_TYPE_P (TREE_TYPE (TREE_TYPE (array)))
  	      && TREE_CODE (TYPE_SIZE (TREE_TYPE (TREE_TYPE (array)))) != INTEGER_CST))
  	{
! 	  if (!c_mark_addressable (array, true, true))
  	    return error_mark_node;
  	}
        /* An array that is indexed by a constant value which is not within
*************** build_array_ref (location_t loc, tree ar
*** 3370,3388 ****
  	  && TYPE_DOMAIN (TREE_TYPE (array))
  	  && !int_fits_type_p (index, TYPE_DOMAIN (TREE_TYPE (array))))
  	{
! 	  if (!c_mark_addressable (array))
  	    return error_mark_node;
  	}
  
!       if ((pedantic || warn_c90_c99_compat)
  	  && ! was_vector)
  	{
  	  tree foo = array;
  	  while (TREE_CODE (foo) == COMPONENT_REF)
  	    foo = TREE_OPERAND (foo, 0);
! 	  if (VAR_P (foo) && C_DECL_REGISTER (foo))
! 	    pedwarn (loc, OPT_Wpedantic,
! 		     "ISO C forbids subscripting %<register%> array");
  	  else if (!lvalue_p (foo))
  	    pedwarn_c90 (loc, OPT_Wpedantic,
  			 "ISO C90 forbids subscripting non-lvalue "
--- 3641,3668 ----
  	  && TYPE_DOMAIN (TREE_TYPE (array))
  	  && !int_fits_type_p (index, TYPE_DOMAIN (TREE_TYPE (array))))
  	{
! 	  if (!c_mark_addressable (array, false, true))
  	    return error_mark_node;
+ 	  /* ISO C2Y disallows a negative integer constant expression index
+ 	     when array subscripting has an operand of array type.  */
+ 	  if (flag_isoc2y
+ 	      && !TREE_OVERFLOW (index)
+ 	      && tree_int_cst_sgn (index) < 0)
+ 	    error_at (loc, "array subscript is negative");
  	}
  
!       if ((pedantic || warn_c90_c99_compat || warn_c23_c2y_compat)
  	  && ! was_vector)
  	{
  	  tree foo = array;
  	  while (TREE_CODE (foo) == COMPONENT_REF)
  	    foo = TREE_OPERAND (foo, 0);
! 	  if ((VAR_P (foo) && C_DECL_REGISTER (foo))
! 	      || (TREE_CODE (foo) == COMPOUND_LITERAL_EXPR
! 		  && C_DECL_REGISTER (COMPOUND_LITERAL_EXPR_DECL (foo))))
! 	    pedwarn_c23 (loc, OPT_Wpedantic,
! 			 "ISO C forbids subscripting %<register%> array "
! 			 "before C2Y");
  	  else if (!lvalue_p (foo))
  	    pedwarn_c90 (loc, OPT_Wpedantic,
  			 "ISO C90 forbids subscripting non-lvalue "
*************** build_omp_array_section (location_t loc,
*** 3481,3486 ****
--- 3761,3852 ----
    return build3_loc (loc, OMP_ARRAY_SECTION, sectype, array, index, length);
  }
  
+ 
+ /* Record that REF is used.  This is relevant for undeclared static
+    function and declarations referenced from a non-local context.
+    ADDRESS indicates whether the address is taken.  */
+ 
+ void
+ mark_decl_used (tree ref, bool address)
+ {
+   if (!ref || !DECL_P (ref) || in_alignof)
+     return;
+ 
+   /* Non-file-scope and non-local reference in nested function.  */
+   bool nonloc_p = current_function_decl && DECL_CONTEXT (ref)
+ 		  && DECL_CONTEXT (current_function_decl)
+ 		  && DECL_CONTEXT (ref) != current_function_decl;
+ 
+   /* An undeclared static function.  */
+   bool static_p = TREE_CODE (ref) == FUNCTION_DECL
+ 		  && DECL_INITIAL (ref) == NULL_TREE
+ 		  && DECL_EXTERNAL (ref)
+ 		  && !TREE_PUBLIC (ref);
+ 
+   if (!static_p && !nonloc_p)
+     return;
+ 
+   /* If we may be in an unevaluated context, delay the decision.  */
+   if (in_sizeof || in_typeof || in_countof || in_generic)
+     return record_maybe_used_decl (ref, address);
+ 
+   if (static_p)
+     C_DECL_USED (ref) = 1;
+ 
+   if (nonloc_p && (VAR_OR_FUNCTION_DECL_P (ref)
+ 		   || TREE_CODE (ref) == PARM_DECL))
+     DECL_NONLOCAL (ref) = 1;
+ 
+   /* Nothing to do anymore.  */
+   if (!nonloc_p || C_FUNC_NONLOCAL_CONTEXT (current_function_decl))
+     return;
+ 
+   /* Filter out the cases where referencing a non-local variable does not
+      require a non-local context passed via the static chain.  */
+   if (!c_type_variably_modified_p (TREE_TYPE (ref)))
+     switch (TREE_CODE (ref))
+       {
+       case FUNCTION_DECL:
+ 	/* Use of another local function that requires no context is ok.  */
+ 	if (!C_FUNC_NONLOCAL_CONTEXT (ref) && DECL_INITIAL (ref))
+ 	  return;
+ 	break;
+       case VAR_DECL:
+ 	/* Static variables and constexpr are ok, but for the later only
+ 	   when the address is not taken.  */
+ 	if (TREE_STATIC (ref) || (C_DECL_DECLARED_CONSTEXPR (ref) && !address))
+ 	  return;
+ 	break;
+       case TYPE_DECL:
+ 	/* A typedef is ok when not for a variably-modified type. */
+ 	return;
+       case CONST_DECL:
+ 	/* An enumeration constant is ok. */
+ 	return;
+       case PARM_DECL:
+ 	break;
+       case LABEL_DECL:
+ 	break;
+       default:
+ 	gcc_unreachable ();
+     }
+ 
+   /* Mark all parent functions up to the nesting level of the variable as
+      as needing the non-local context.  */
+   for (tree cont = current_function_decl; cont; cont = DECL_CONTEXT (cont))
+     {
+       if (cont == DECL_CONTEXT (ref))
+ 	break;
+ 
+       /* There should not be any other type of context used for function
+ 	 except TRANSLATION_UNIT_DECL which we should be able to reach.  */
+       gcc_checking_assert (TREE_CODE (cont) == FUNCTION_DECL);
+ 
+       if (TREE_CODE (cont) == FUNCTION_DECL)
+ 	C_FUNC_NONLOCAL_CONTEXT (cont) = 1;
+     }
+ }
+ 
  
  /* Build an external reference to identifier ID.  FUN indicates
     whether this will be used for a function call.  LOC is the source
*************** build_external_ref (location_t loc, tree
*** 3538,3552 ****
        TREE_USED (ref) = 1;
      }
  
!   if (TREE_CODE (ref) == FUNCTION_DECL && !in_alignof)
!     {
!       if (!in_sizeof && !in_typeof)
! 	C_DECL_USED (ref) = 1;
!       else if (DECL_INITIAL (ref) == NULL_TREE
! 	       && DECL_EXTERNAL (ref)
! 	       && !TREE_PUBLIC (ref))
! 	record_maybe_used_decl (ref);
!     }
  
    if (TREE_CODE (ref) == CONST_DECL)
      {
--- 3904,3910 ----
        TREE_USED (ref) = 1;
      }
  
!   mark_decl_used (ref, false);
  
    if (TREE_CODE (ref) == CONST_DECL)
      {
*************** build_external_ref (location_t loc, tree
*** 3557,3580 ****
  	  && C_TYPE_DEFINED_IN_STRUCT (TREE_TYPE (ref)))
  	{
  	  warning_at (loc, OPT_Wc___compat,
! 		      ("enum constant defined in struct or union "
! 		       "is not visible in C++"));
  	  inform (DECL_SOURCE_LOCATION (ref), "enum constant defined here");
  	}
  
        ref = DECL_INITIAL (ref);
        TREE_CONSTANT (ref) = 1;
      }
-   else if (current_function_decl != NULL_TREE
- 	   && !DECL_FILE_SCOPE_P (current_function_decl)
- 	   && (VAR_OR_FUNCTION_DECL_P (ref)
- 	       || TREE_CODE (ref) == PARM_DECL))
-     {
-       tree context = decl_function_context (ref);
- 
-       if (context != NULL_TREE && context != current_function_decl)
- 	DECL_NONLOCAL (ref) = 1;
-     }
    /* C99 6.7.4p3: An inline definition of a function with external
       linkage ... shall not contain a reference to an identifier with
       internal linkage.  */
--- 3915,3928 ----
  	  && C_TYPE_DEFINED_IN_STRUCT (TREE_TYPE (ref)))
  	{
  	  warning_at (loc, OPT_Wc___compat,
! 		      "enum constant defined in struct or union "
! 		      "is not visible in C++");
  	  inform (DECL_SOURCE_LOCATION (ref), "enum constant defined here");
  	}
  
        ref = DECL_INITIAL (ref);
        TREE_CONSTANT (ref) = 1;
      }
    /* C99 6.7.4p3: An inline definition of a function with external
       linkage ... shall not contain a reference to an identifier with
       internal linkage.  */
*************** build_external_ref (location_t loc, tree
*** 3591,3640 ****
    return ref;
  }
  
- /* Record details of decls possibly used inside sizeof or typeof.  */
- struct maybe_used_decl
- {
-   /* The decl.  */
-   tree decl;
-   /* The level seen at (in_sizeof + in_typeof).  */
-   int level;
-   /* The next one at this level or above, or NULL.  */
-   struct maybe_used_decl *next;
- };
- 
  static struct maybe_used_decl *maybe_used_decls;
  
! /* Record that DECL, an undefined static function reference seen
!    inside sizeof or typeof, might be used if the operand of sizeof is
!    a VLA type or the operand of typeof is a variably modified
!    type.  */
  
  static void
! record_maybe_used_decl (tree decl)
  {
    struct maybe_used_decl *t = XOBNEW (&parser_obstack, struct maybe_used_decl);
    t->decl = decl;
!   t->level = in_sizeof + in_typeof;
    t->next = maybe_used_decls;
    maybe_used_decls = t;
  }
  
! /* Pop the stack of decls possibly used inside sizeof or typeof.  If
!    USED is false, just discard them.  If it is true, mark them used
!    (if no longer inside sizeof or typeof) or move them to the next
!    level up (if still inside sizeof or typeof).  */
  
  void
  pop_maybe_used (bool used)
  {
    struct maybe_used_decl *p = maybe_used_decls;
!   int cur_level = in_sizeof + in_typeof;
    while (p && p->level > cur_level)
      {
        if (used)
  	{
  	  if (cur_level == 0)
! 	    C_DECL_USED (p->decl) = 1;
  	  else
  	    p->level = cur_level;
  	}
--- 3939,3980 ----
    return ref;
  }
  
  static struct maybe_used_decl *maybe_used_decls;
  
! /* Record that DECL, a reference seen inside sizeof or typeof or _Countof or
!    _Generic, might be used if the operand of sizeof is a VLA type or the
!    operand of typeof is a variably modified type or the operand of _Countof has
!    a variable number of elements or the operand of _Generic is the one selected
!    as the result.  */
  
  static void
! record_maybe_used_decl (tree decl, bool address)
  {
    struct maybe_used_decl *t = XOBNEW (&parser_obstack, struct maybe_used_decl);
    t->decl = decl;
!   t->level = in_sizeof + in_typeof + in_countof + in_generic;
!   t->address = address;
    t->next = maybe_used_decls;
    maybe_used_decls = t;
  }
  
! /* Pop the stack of decls possibly used inside sizeof or typeof or _Countof or
!    _Generic.  If USED is false, just discard them.  If it is true, mark them
!    used (if no longer inside sizeof or typeof or _Countof or _Generic) or move
!    them to the next level up (if still inside sizeof or typeof or _Countof or
!    _Generic).  */
  
  void
  pop_maybe_used (bool used)
  {
    struct maybe_used_decl *p = maybe_used_decls;
!   int cur_level = in_sizeof + in_typeof + in_countof + in_generic;
    while (p && p->level > cur_level)
      {
        if (used)
  	{
  	  if (cur_level == 0)
! 	    mark_decl_used (p->decl, p->address);
  	  else
  	    p->level = cur_level;
  	}
*************** pop_maybe_used (bool used)
*** 3644,3649 ****
--- 3984,4018 ----
      maybe_used_decls = p;
  }
  
+ /* Pop the stack of decls possibly used inside sizeof or typeof or _Countof or
+    _Generic, without acting on them, and return the pointer to the previous top
+    of the stack.  This for use at the end of a default generic association when
+    it is not yet known whether the expression is used.  If it later turns out
+    the expression is used (or treated as used before C23), restore_maybe_used
+    should be called on the return value followed by pop_maybe_used (true);
+    otherwise, the return value can be discarded.  */
+ 
+ struct maybe_used_decl *
+ save_maybe_used ()
+ {
+   struct maybe_used_decl *p = maybe_used_decls, *orig = p;
+   int cur_level = in_sizeof + in_typeof + in_countof + in_generic;
+   while (p && p->level > cur_level)
+     p = p->next;
+   maybe_used_decls = p;
+   return orig;
+ }
+ 
+ /* Restore the stack of decls possibly used inside sizeof or typeof or _Countof
+    or _Generic returned by save_maybe_used.  It is required that the stack is
+    at exactly the point where it was left by save_maybe_used.  */
+ 
+ void
+ restore_maybe_used (struct maybe_used_decl *stack)
+ {
+   maybe_used_decls = stack;
+ }
+ 
  /* Return the result of sizeof applied to EXPR.  */
  
  struct c_expr
*************** c_expr_sizeof_type (location_t loc, stru
*** 3738,3743 ****
--- 4107,4270 ----
    return ret;
  }
  
+ static bool
+ is_top_array_vla (tree type)
+ {
+   bool zero, var;
+   tree d;
+ 
+   if (TREE_CODE (type) != ARRAY_TYPE)
+     return false;
+   if (!COMPLETE_TYPE_P (type))
+     return false;
+ 
+   d = TYPE_DOMAIN (type);
+   zero = !TYPE_MAX_VALUE (d);
+   if (zero)
+     return false;
+ 
+   var = (TREE_CODE (TYPE_MIN_VALUE (d)) != INTEGER_CST
+ 	 || TREE_CODE (TYPE_MAX_VALUE (d)) != INTEGER_CST);
+   return var;
+ }
+ 
+ /* Return the result of countof applied to EXPR.  */
+ 
+ struct c_expr
+ c_expr_countof_expr (location_t loc, struct c_expr expr)
+ {
+   struct c_expr ret;
+   if (expr.value == error_mark_node)
+     {
+       ret.value = error_mark_node;
+       ret.original_code = ERROR_MARK;
+       ret.original_type = NULL;
+       ret.m_decimal = 0;
+       pop_maybe_used (false);
+     }
+   else
+     {
+       bool expr_const_operands = true;
+ 
+       tree folded_expr = c_fully_fold (expr.value, require_constant_value,
+ 				       &expr_const_operands);
+       ret.value = c_countof_type (loc, TREE_TYPE (folded_expr));
+       c_last_sizeof_arg = expr.value;
+       c_last_sizeof_loc = loc;
+       ret.original_code = COUNTOF_EXPR;
+       ret.original_type = NULL;
+       ret.m_decimal = 0;
+       if (is_top_array_vla (TREE_TYPE (folded_expr)))
+ 	{
+ 	  /* countof is evaluated when given a vla.  */
+ 	  ret.value = build2 (C_MAYBE_CONST_EXPR, TREE_TYPE (ret.value),
+ 			      folded_expr, ret.value);
+ 	  C_MAYBE_CONST_EXPR_NON_CONST (ret.value) = !expr_const_operands;
+ 	  SET_EXPR_LOCATION (ret.value, loc);
+ 	}
+       pop_maybe_used (is_top_array_vla (TREE_TYPE (folded_expr)));
+     }
+   return ret;
+ }
+ 
+ /* Return the result of countof applied to T, a structure for the type
+    name passed to countof (rather than the type itself).  LOC is the
+    location of the original expression.  */
+ 
+ struct c_expr
+ c_expr_countof_type (location_t loc, struct c_type_name *t)
+ {
+   tree type;
+   struct c_expr ret;
+   tree type_expr = NULL_TREE;
+   bool type_expr_const = true;
+   type = groktypename (t, &type_expr, &type_expr_const);
+   ret.value = c_countof_type (loc, type);
+   c_last_sizeof_arg = type;
+   c_last_sizeof_loc = loc;
+   ret.original_code = COUNTOF_EXPR;
+   ret.original_type = NULL;
+   ret.m_decimal = 0;
+   if (type == error_mark_node)
+     {
+       ret.value = error_mark_node;
+       ret.original_code = ERROR_MARK;
+     }
+   else
+   if ((type_expr || TREE_CODE (ret.value) == INTEGER_CST)
+       && is_top_array_vla (type))
+     {
+       /* If the type is a [*] array, it is a VLA but is represented as
+ 	 having a size of zero.  In such a case we must ensure that
+ 	 the result of countof does not get folded to a constant by
+ 	 c_fully_fold, because if the number of elements is evaluated
+ 	 the result is not constant and so
+ 	 constraints on zero or negative size arrays must not be applied
+ 	 when this countof call is inside another array declarator.  */
+       if (!type_expr)
+ 	type_expr = integer_zero_node;
+       ret.value = build2 (C_MAYBE_CONST_EXPR, TREE_TYPE (ret.value),
+ 			  type_expr, ret.value);
+       C_MAYBE_CONST_EXPR_NON_CONST (ret.value) = !type_expr_const;
+     }
+   pop_maybe_used (type != error_mark_node ? is_top_array_vla (type) : false);
+   return ret;
+ }
+ 
+ /* Return the result of maxof applied to T, a structure for the type
+    name passed to maxof (rather than the type itself).  LOC is the
+    location of the original expression.  */
+ 
+ struct c_expr
+ c_expr_maxof_type (location_t loc, struct c_type_name *t)
+ {
+   tree type;
+   struct c_expr ret;
+   tree type_expr = NULL_TREE;
+   bool type_expr_const = true;
+   type = groktypename (t, &type_expr, &type_expr_const);
+   ret.value = c_maxof_type (loc, type);
+   c_last_sizeof_arg = type;
+   c_last_sizeof_loc = loc;
+   ret.original_code = MAXOF_EXPR;
+   ret.original_type = NULL;
+   ret.m_decimal = 0;
+   if (type == error_mark_node)
+     {
+       ret.value = error_mark_node;
+       ret.original_code = ERROR_MARK;
+     }
+   pop_maybe_used (type != error_mark_node);
+   return ret;
+ }
+ 
+ /* Return the result of minof applied to T, a structure for the type
+    name passed to minof (rather than the type itself).  LOC is the
+    location of the original expression.  */
+ 
+ struct c_expr
+ c_expr_minof_type (location_t loc, struct c_type_name *t)
+ {
+   tree type;
+   struct c_expr ret;
+   tree type_expr = NULL_TREE;
+   bool type_expr_const = true;
+   type = groktypename (t, &type_expr, &type_expr_const);
+   ret.value = c_minof_type (loc, type);
+   c_last_sizeof_arg = type;
+   c_last_sizeof_loc = loc;
+   ret.original_code = MINOF_EXPR;
+   ret.original_type = NULL;
+   ret.m_decimal = 0;
+   if (type == error_mark_node)
+     {
+       ret.value = error_mark_node;
+       ret.original_code = ERROR_MARK;
+     }
+   pop_maybe_used (type != error_mark_node);
+   return ret;
+ }
+ 
  /* Build a function call to function FUNCTION with parameters PARAMS.
     The function call is at LOC.
     PARAMS is a list--a chain of TREE_LIST nodes--in which the
*************** build_function_call_vec (location_t loc,
*** 3943,3949 ****
    /* In this improbable scenario, a nested function returns a VM type.
       Create a TARGET_EXPR so that the call always has a LHS, much as
       what the C++ FE does for functions returning non-PODs.  */
!   if (C_TYPE_VARIABLY_MODIFIED (TREE_TYPE (fntype)))
      {
        tree tmp = create_tmp_var_raw (TREE_TYPE (fntype));
        result = build4 (TARGET_EXPR, TREE_TYPE (fntype), tmp, result,
--- 4470,4476 ----
    /* In this improbable scenario, a nested function returns a VM type.
       Create a TARGET_EXPR so that the call always has a LHS, much as
       what the C++ FE does for functions returning non-PODs.  */
!   if (c_type_variably_modified_p (TREE_TYPE (fntype)))
      {
        tree tmp = create_tmp_var_raw (TREE_TYPE (fntype));
        result = build4 (TARGET_EXPR, TREE_TYPE (fntype), tmp, result,
*************** convert_argument (location_t ploc, tree
*** 4163,4174 ****
  					 val, origtype, ic_argpass,
  					 npc, fundecl, function,
  					 parmnum + 1, warnopt);
- 
-   if (targetm.calls.promote_prototypes (fundecl ? TREE_TYPE (fundecl) : 0)
-       && INTEGRAL_TYPE_P (type)
-       && (TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node)))
-     parmval = default_conversion (parmval);
- 
    return parmval;
  }
  
--- 4690,4695 ----
*************** convert_arguments (location_t loc, vec<l
*** 4421,4426 ****
--- 4942,4950 ----
  				      val, valtype, npc, rname, parmnum, argnum,
  				      excess_precision, 0);
  	}
+       /* A NULLPTR type is just a nullptr always.  */
+       else if (TREE_CODE (TREE_TYPE (val)) == NULLPTR_TYPE)
+ 	parmval = omit_one_operand_loc (ploc, TREE_TYPE (val), nullptr_node, val);
        else if (promote_float_arg)
          {
  	  if (type_generic)
*************** parser_build_binary_op (location_t locat
*** 4741,4754 ****
      {
        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");
--- 5265,5278 ----
      {
        if ((TREE_CODE (type1) == POINTER_TYPE
  	   || TREE_CODE (type1) == NULLPTR_TYPE)
! 	  && INTEGRAL_TYPE_P (type2)
  	  && 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)
! 	  && INTEGRAL_TYPE_P (type1)
  	  && null_pointer_constant_p (arg1.value))
  	warning_at (arg1.get_location(), OPT_Wzero_as_null_pointer_constant,
  		    "zero as null pointer constant");
*************** pointer_diff (location_t loc, tree op0,
*** 4816,4822 ****
        if (!addr_space_superset (as0, as1, &as_common))
  	gcc_unreachable ();
  
!       common_type = common_pointer_type (TREE_TYPE (op0), TREE_TYPE (op1));
        op0 = convert (common_type, op0);
        op1 = convert (common_type, op1);
      }
--- 5340,5346 ----
        if (!addr_space_superset (as0, as1, &as_common))
  	gcc_unreachable ();
  
!       common_type = common_pointer_type (TREE_TYPE (op0), TREE_TYPE (op1), NULL_TREE);
        op0 = convert (common_type, op0);
        op1 = convert (common_type, op1);
      }
*************** cas_loop:
*** 5161,5167 ****
    /* newval = old + val;  */
    if (rhs_type != rhs_semantic_type)
      val = build1 (EXCESS_PRECISION_EXPR, nonatomic_rhs_semantic_type, val);
!   rhs = build_binary_op (loc, modifycode, old, val, true);
    if (TREE_CODE (rhs) == EXCESS_PRECISION_EXPR)
      {
        tree eptype = TREE_TYPE (rhs);
--- 5685,5693 ----
    /* newval = old + val;  */
    if (rhs_type != rhs_semantic_type)
      val = build1 (EXCESS_PRECISION_EXPR, nonatomic_rhs_semantic_type, val);
!   rhs = build_binary_op (loc, modifycode,
! 			 convert_lvalue_to_rvalue (loc, old, true, true),
! 			 val, true);
    if (TREE_CODE (rhs) == EXCESS_PRECISION_EXPR)
      {
        tree eptype = TREE_TYPE (rhs);
*************** build_unary_op (location_t location, enu
*** 5617,5623 ****
  	    goto return_build_unary_op;
  	  }
  
! 	if (C_BOOLEAN_TYPE_P (TREE_TYPE (arg)))
  	  val = boolean_increment (code, arg);
  	else
  	  val = build2 (code, TREE_TYPE (arg), arg, inc);
--- 6143,6190 ----
  	    goto return_build_unary_op;
  	  }
  
! 	tree true_res;
! 	if (c_hardbool_type_attr (TREE_TYPE (arg), NULL, &true_res))
! 	  {
! 	    tree larg = stabilize_reference (arg);
! 	    tree sarg = save_expr (larg);
! 	    switch (code)
! 	      {
! 	      case PREINCREMENT_EXPR:
! 		val = build2 (MODIFY_EXPR, TREE_TYPE (larg), larg, true_res);
! 		val = build2 (COMPOUND_EXPR, TREE_TYPE (larg), sarg, val);
! 		break;
! 	      case POSTINCREMENT_EXPR:
! 		val = build2 (MODIFY_EXPR, TREE_TYPE (larg), larg, true_res);
! 		val = build2 (COMPOUND_EXPR, TREE_TYPE (larg), val, sarg);
! 		val = build2 (COMPOUND_EXPR, TREE_TYPE (larg), sarg, val);
! 		break;
! 	      case PREDECREMENT_EXPR:
! 		{
! 		  tree rarg = convert_lvalue_to_rvalue (location, sarg,
! 							true, true);
! 		  rarg = invert_truthvalue_loc (location, rarg);
! 		  rarg = convert (TREE_TYPE (sarg), rarg);
! 		  val = build2 (MODIFY_EXPR, TREE_TYPE (larg), larg, rarg);
! 		}
! 		break;
! 	      case POSTDECREMENT_EXPR:
! 		{
! 		  tree rarg = convert_lvalue_to_rvalue (location, sarg,
! 							true, true);
! 		  rarg = invert_truthvalue_loc (location, rarg);
! 		  tree iarg = convert (TREE_TYPE (larg), rarg);
! 		  val = build2 (MODIFY_EXPR, TREE_TYPE (larg), larg, iarg);
! 		  val = build2 (COMPOUND_EXPR, TREE_TYPE (larg), val, sarg);
! 		  val = build2 (COMPOUND_EXPR, TREE_TYPE (larg), sarg, val);
! 		}
! 		break;
! 	      default:
! 		gcc_unreachable ();
! 	      }
! 	    TREE_SIDE_EFFECTS (val) = 1;
! 	  }
! 	else if (C_BOOLEAN_TYPE_P (TREE_TYPE (arg)))
  	  val = boolean_increment (code, arg);
  	else
  	  val = build2 (code, TREE_TYPE (arg), arg, inc);
*************** lvalue_or_else (location_t loc, const_tr
*** 5876,5885 ****
     is for ARRAY_REF construction - in that case we don't want
     to look through VIEW_CONVERT_EXPR from VECTOR_TYPE to ARRAY_TYPE,
     it is fine to use ARRAY_REFs for vector subscripts on vector
!    register variables.  */
  
  bool
! c_mark_addressable (tree exp, bool array_ref_p)
  {
    tree x = exp;
  
--- 6443,6453 ----
     is for ARRAY_REF construction - in that case we don't want
     to look through VIEW_CONVERT_EXPR from VECTOR_TYPE to ARRAY_TYPE,
     it is fine to use ARRAY_REFs for vector subscripts on vector
!    register variables.  If OVERRIDE_REGISTER, clear DECL_REGISTER rather
!    than producing an error for taking the address of a register.  */
  
  bool
! c_mark_addressable (tree exp, bool array_ref_p, bool override_register)
  {
    tree x = exp;
  
*************** c_mark_addressable (tree exp, bool array
*** 5912,5919 ****
        case COMPOUND_LITERAL_EXPR:
  	if (C_DECL_REGISTER (COMPOUND_LITERAL_EXPR_DECL (x)))
  	  {
! 	    error ("address of register compound literal requested");
! 	    return false;
  	  }
  	TREE_ADDRESSABLE (x) = 1;
  	TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (x)) = 1;
--- 6480,6492 ----
        case COMPOUND_LITERAL_EXPR:
  	if (C_DECL_REGISTER (COMPOUND_LITERAL_EXPR_DECL (x)))
  	  {
! 	    if (override_register)
! 	      DECL_REGISTER (COMPOUND_LITERAL_EXPR_DECL (x)) = 0;
! 	    else
! 	      {
! 		error ("address of register compound literal requested");
! 		return false;
! 	      }
  	  }
  	TREE_ADDRESSABLE (x) = 1;
  	TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (x)) = 1;
*************** c_mark_addressable (tree exp, bool array
*** 5942,5947 ****
--- 6515,6527 ----
  	  {
  	    if (TREE_PUBLIC (x) || is_global_var (x))
  	      error ("address of global register variable %qD requested", x);
+ 	    else if (override_register && !DECL_HARD_REGISTER (x))
+ 	      {
+ 		DECL_REGISTER (x) = 0;
+ 		TREE_ADDRESSABLE (x) = 1;
+ 		mark_decl_used (x, true);
+ 		return true;
+ 	      }
  	    else
  	      error ("address of register variable %qD requested", x);
  	    return false;
*************** c_mark_addressable (tree exp, bool array
*** 5950,5955 ****
--- 6530,6536 ----
  	/* FALLTHRU */
        case FUNCTION_DECL:
  	TREE_ADDRESSABLE (x) = 1;
+ 	mark_decl_used (x, true);
  	/* FALLTHRU */
        default:
  	return true;
*************** build_conditional_expr (location_t colon
*** 6034,6041 ****
  {
    tree type1;
    tree type2;
-   enum tree_code code1;
-   enum tree_code code2;
    tree result_type = NULL;
    tree semantic_result_type = NULL;
    tree orig_op1 = op1, orig_op2 = op2;
--- 6615,6620 ----
*************** build_conditional_expr (location_t colon
*** 6068,6076 ****
    tree bltin1 = NULL_TREE;
    tree bltin2 = NULL_TREE;
    type1 = type_or_builtin_type (op1, &bltin1);
!   code1 = TREE_CODE (type1);
    type2 = type_or_builtin_type (op2, &bltin2);
!   code2 = TREE_CODE (type2);
  
    if (code1 == POINTER_TYPE && reject_gcc_builtin (op1))
      return error_mark_node;
--- 6647,6655 ----
    tree bltin1 = NULL_TREE;
    tree bltin2 = NULL_TREE;
    type1 = type_or_builtin_type (op1, &bltin1);
!   const enum tree_code code1 = TREE_CODE (type1);
    type2 = type_or_builtin_type (op2, &bltin2);
!   const enum tree_code code2 = TREE_CODE (type2);
  
    if (code1 == POINTER_TYPE && reject_gcc_builtin (op1))
      return error_mark_node;
*************** build_conditional_expr (location_t colon
*** 6117,6137 ****
  	  && TREE_CODE (t2) == ENUMERAL_TYPE
  	  && TYPE_MAIN_VARIANT (t1) != TYPE_MAIN_VARIANT (t2))
  	warning_at (colon_loc, OPT_Wc___compat,
! 		    ("different enum types in conditional is "
! 		     "invalid in C++: %qT vs %qT"),
! 		    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");
      }
--- 6696,6715 ----
  	  && TREE_CODE (t2) == ENUMERAL_TYPE
  	  && TYPE_MAIN_VARIANT (t1) != TYPE_MAIN_VARIANT (t2))
  	warning_at (colon_loc, OPT_Wc___compat,
! 		    "different enum types in conditional is "
! 		    "invalid in C++: %qT vs %qT", t1, t2);
      }
  
    if (warn_zero_as_null_pointer_constant
        && c_inhibit_evaluation_warnings == 0)
      {
        if ((code1 == POINTER_TYPE || code1 == NULLPTR_TYPE)
! 	  && INTEGRAL_TYPE_P (type2) && 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)
! 	  && INTEGRAL_TYPE_P (type1) && null_pointer_constant_p (orig_op1))
  	warning_at (op1_loc, OPT_Wzero_as_null_pointer_constant,
  		    "zero as null pointer constant");
      }
*************** build_conditional_expr (location_t colon
*** 6270,6276 ****
        addr_space_t as_common;
  
        if (comp_target_types (colon_loc, type1, type2))
! 	result_type = common_pointer_type (type1, type2);
        else if (null_pointer_constant_p (orig_op1))
  	result_type = type2;
        else if (null_pointer_constant_p (orig_op2))
--- 6848,6857 ----
        addr_space_t as_common;
  
        if (comp_target_types (colon_loc, type1, type2))
! 	{
! 	  ifexp = save_expr (ifexp);
! 	  result_type = common_pointer_type (type1, type2, ifexp);
! 	}
        else if (null_pointer_constant_p (orig_op1))
  	result_type = type2;
        else if (null_pointer_constant_p (orig_op2))
*************** build_conditional_expr (location_t colon
*** 6323,6336 ****
        else
  	{
  	  int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	  diagnostic_t kind = DK_PERMERROR;
  	  if (!flag_isoc99)
  	    /* This downgrade to a warning ensures that -std=gnu89
  	       -pedantic-errors does not flag these mismatches between
! 	       builtins as errors (as DK_PERMERROR would).  ISO C99
! 	       and later do not have implicit function declarations,
  	       so the mismatch cannot occur naturally there.  */
! 	    kind = bltin1 && bltin2 ? DK_WARNING : DK_PEDWARN;
  	  if (emit_diagnostic (kind, colon_loc, OPT_Wincompatible_pointer_types,
  			       "pointer type mismatch "
  			       "in conditional expression"))
--- 6904,6919 ----
        else
  	{
  	  int qual = ENCODE_QUAL_ADDR_SPACE (as_common);
! 	  enum diagnostics::kind kind = diagnostics::kind::permerror;
  	  if (!flag_isoc99)
  	    /* This downgrade to a warning ensures that -std=gnu89
  	       -pedantic-errors does not flag these mismatches between
! 	       builtins as errors (as diagnostics::kind::permerror would)
! 	       ISO C99 and later do not have implicit function declarations,
  	       so the mismatch cannot occur naturally there.  */
! 	    kind = (bltin1 && bltin2
! 		    ? diagnostics::kind::warning
! 		    : diagnostics::kind::pedwarn);
  	  if (emit_diagnostic (kind, colon_loc, OPT_Wincompatible_pointer_types,
  			       "pointer type mismatch "
  			       "in conditional expression"))
*************** c_safe_arg_type_equiv_p (tree t1, tree t
*** 6745,6761 ****
        && TREE_CODE (t2) == POINTER_TYPE)
      return true;
  
!   /* The signedness of the parameter matters only when an integral
!      type smaller than int is promoted to int, otherwise only the
!      precision of the parameter matters.
!      This check should make sure that the callee does not see
!      undefined values in argument registers.  */
    if (INTEGRAL_TYPE_P (t1)
        && INTEGRAL_TYPE_P (t2)
!       && TYPE_PRECISION (t1) == TYPE_PRECISION (t2)
!       && (TYPE_UNSIGNED (t1) == TYPE_UNSIGNED (t2)
! 	  || !targetm.calls.promote_prototypes (NULL_TREE)
! 	  || TYPE_PRECISION (t1) >= TYPE_PRECISION (integer_type_node)))
      return true;
  
    return comptypes (t1, t2);
--- 7328,7339 ----
        && TREE_CODE (t2) == POINTER_TYPE)
      return true;
  
!   /* Only the precision of the parameter matters.  This check should
!      make sure that the callee does not see undefined values in argument
!      registers.  */
    if (INTEGRAL_TYPE_P (t1)
        && INTEGRAL_TYPE_P (t2)
!       && TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
      return true;
  
    return comptypes (t1, t2);
*************** build_c_cast (location_t loc, tree type,
*** 6963,6969 ****
  	warning_at (loc, OPT_Wpointer_to_int_cast,
  		    "cast from pointer to integer of different size");
  
!       if (TREE_CODE (value) == CALL_EXPR
  	  && TREE_CODE (type) != TREE_CODE (otype))
  	warning_at (loc, OPT_Wbad_function_cast,
  		    "cast from function call of type %qT "
--- 7541,7548 ----
  	warning_at (loc, OPT_Wpointer_to_int_cast,
  		    "cast from pointer to integer of different size");
  
!       if ((TREE_CODE (value) == CALL_EXPR
! 	   && !is_access_with_size_p (value))
  	  && TREE_CODE (type) != TREE_CODE (otype))
  	warning_at (loc, OPT_Wbad_function_cast,
  		    "cast from function call of type %qT "
*************** build_modify_expr (location_t location,
*** 7219,7226 ****
  		newrhs = build1 (EXCESS_PRECISION_EXPR, TREE_TYPE (rhs),
  				 newrhs);
  	    }
! 	  newrhs = build_binary_op (location,
! 				    modifycode, lhs, newrhs, true);
  
  	  /* The original type of the right hand side is no longer
  	     meaningful.  */
--- 7798,7820 ----
  		newrhs = build1 (EXCESS_PRECISION_EXPR, TREE_TYPE (rhs),
  				 newrhs);
  	    }
! 	  bool clear_decl_read = false;
! 	  if ((VAR_P (lhs) || TREE_CODE (lhs) == PARM_DECL)
! 	      && !DECL_READ_P (lhs)
! 	      && (VAR_P (lhs) ? warn_unused_but_set_variable
! 			      : warn_unused_but_set_parameter) > 2)
! 	    {
! 	      mark_exp_read (newrhs);
! 	      if (!DECL_READ_P (lhs))
! 		clear_decl_read = true;
! 	    }
! 
! 	  newrhs = build_binary_op (location, modifycode,
! 				    convert_lvalue_to_rvalue (location, lhs,
! 							      true, true),
! 				    newrhs, true);
! 	  if (clear_decl_read)
! 	    DECL_READ_P (lhs) = 0;
  
  	  /* The original type of the right hand side is no longer
  	     meaningful.  */
*************** find_anonymous_field_with_type (tree str
*** 7383,7392 ****
         field != NULL_TREE;
         field = TREE_CHAIN (field))
      {
!       tree fieldtype = (TYPE_ATOMIC (TREE_TYPE (field))
! 			? c_build_qualified_type (TREE_TYPE (field),
! 						  TYPE_QUAL_ATOMIC)
! 			: TYPE_MAIN_VARIANT (TREE_TYPE (field)));
        if (DECL_NAME (field) == NULL
  	  && comptypes (type, fieldtype))
  	{
--- 7977,7983 ----
         field != NULL_TREE;
         field = TREE_CHAIN (field))
      {
!       tree fieldtype = remove_qualifiers (TREE_TYPE (field));
        if (DECL_NAME (field) == NULL
  	  && comptypes (type, fieldtype))
  	{
*************** convert_to_anonymous_field (location_t l
*** 7424,7433 ****
    gcc_assert (RECORD_OR_UNION_TYPE_P (rhs_struct_type));
  
    gcc_assert (POINTER_TYPE_P (type));
!   lhs_main_type = (TYPE_ATOMIC (TREE_TYPE (type))
! 		   ? c_build_qualified_type (TREE_TYPE (type),
! 					     TYPE_QUAL_ATOMIC)
! 		   : TYPE_MAIN_VARIANT (TREE_TYPE (type)));
  
    found_field = NULL_TREE;
    found_sub_field = false;
--- 8015,8021 ----
    gcc_assert (RECORD_OR_UNION_TYPE_P (rhs_struct_type));
  
    gcc_assert (POINTER_TYPE_P (type));
!   lhs_main_type = remove_qualifiers (TREE_TYPE (type));
  
    found_field = NULL_TREE;
    found_sub_field = false;
*************** convert_to_anonymous_field (location_t l
*** 7438,7447 ****
        if (DECL_NAME (field) != NULL_TREE
  	  || !RECORD_OR_UNION_TYPE_P (TREE_TYPE (field)))
  	continue;
!       tree fieldtype = (TYPE_ATOMIC (TREE_TYPE (field))
! 			? c_build_qualified_type (TREE_TYPE (field),
! 						  TYPE_QUAL_ATOMIC)
! 			: TYPE_MAIN_VARIANT (TREE_TYPE (field)));
        if (comptypes (lhs_main_type, fieldtype))
  	{
  	  if (found_field != NULL_TREE)
--- 8026,8032 ----
        if (DECL_NAME (field) != NULL_TREE
  	  || !RECORD_OR_UNION_TYPE_P (TREE_TYPE (field)))
  	continue;
!       tree fieldtype = remove_qualifiers (TREE_TYPE (field));
        if (comptypes (lhs_main_type, fieldtype))
  	{
  	  if (found_field != NULL_TREE)
*************** error_init (location_t loc, const char *
*** 7489,7495 ****
    /* The gmsgid may be a format string with %< and %>. */
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = emit_diagnostic_valist (DK_ERROR, loc, -1, gmsgid, &ap);
    va_end (ap);
  
    ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
--- 8074,8081 ----
    /* The gmsgid may be a format string with %< and %>. */
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = emit_diagnostic_valist (diagnostics::kind::error,
! 					loc, -1, gmsgid, &ap);
    va_end (ap);
  
    ofwhat = print_spelling ((char *) alloca (spelling_length () + 1));
*************** error_init (location_t loc, const char *
*** 7501,7507 ****
  
  static bool ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_permerror_init (location_t loc, int opt, const char *gmsgid,
! 			va_list *ap, diagnostic_t kind)
  {
    /* Use the location where a macro was expanded rather than where
       it was defined to make sure macros defined in system headers
--- 8087,8093 ----
  
  static bool ATTRIBUTE_GCC_DIAG (3,0)
  pedwarn_permerror_init (location_t loc, int opt, const char *gmsgid,
! 			va_list *ap, enum diagnostics::kind kind)
  {
    /* Use the location where a macro was expanded rather than where
       it was defined to make sure macros defined in system headers
*************** pedwarn_init (location_t loc, int opt, c
*** 7528,7534 ****
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PEDWARN);
    va_end (ap);
    return warned;
  }
--- 8114,8121 ----
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap,
! 					diagnostics::kind::pedwarn);
    va_end (ap);
    return warned;
  }
*************** permerror_init (location_t loc, int opt,
*** 7540,7546 ****
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap, DK_PERMERROR);
    va_end (ap);
    return warned;
  }
--- 8127,8134 ----
  {
    va_list ap;
    va_start (ap, gmsgid);
!   bool warned = pedwarn_permerror_init (loc, opt, gmsgid, &ap,
! 					diagnostics::kind::permerror);
    va_end (ap);
    return warned;
  }
*************** convert_for_assignment (location_t locat
*** 8198,8220 ****
  
        tree ttl = TREE_TYPE (type);
        tree ttr = TREE_TYPE (rhstype);
-       tree mvl = ttl;
-       tree mvr = ttr;
        bool is_opaque_pointer;
        bool target_cmp = false;   /* Cache comp_target_types () result.  */
        addr_space_t asl;
        addr_space_t asr;
  
!       if (TREE_CODE (mvl) != ARRAY_TYPE)
! 	mvl = (TYPE_ATOMIC (mvl)
! 	       ? c_build_qualified_type (TYPE_MAIN_VARIANT (mvl),
! 					 TYPE_QUAL_ATOMIC)
! 	       : TYPE_MAIN_VARIANT (mvl));
!       if (TREE_CODE (mvr) != ARRAY_TYPE)
! 	mvr = (TYPE_ATOMIC (mvr)
! 	       ? c_build_qualified_type (TYPE_MAIN_VARIANT (mvr),
! 					 TYPE_QUAL_ATOMIC)
! 	       : TYPE_MAIN_VARIANT (mvr));
        /* Opaque pointers are treated like void pointers.  */
        is_opaque_pointer = vector_targets_convertible_p (ttl, ttr);
  
--- 8786,8799 ----
  
        tree ttl = TREE_TYPE (type);
        tree ttr = TREE_TYPE (rhstype);
        bool is_opaque_pointer;
        bool target_cmp = false;   /* Cache comp_target_types () result.  */
        addr_space_t asl;
        addr_space_t asr;
  
!       tree mvl = remove_qualifiers (ttl);
!       tree mvr = remove_qualifiers (ttr);
! 
        /* Opaque pointers are treated like void pointers.  */
        is_opaque_pointer = vector_targets_convertible_p (ttl, ttr);
  
*************** convert_for_assignment (location_t locat
*** 8679,8692 ****
  	       || 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.  */
!       if (!null_pointer_constant && coder != NULLPTR_TYPE)
  	switch (errtype)
  	  {
  	  case ic_argpass:
--- 9258,9273 ----
  	       || coder == BITINT_TYPE))
      {
        if (null_pointer_constant && c_inhibit_evaluation_warnings == 0
! 	  && coder != NULLPTR_TYPE)
  	warning_at (location, OPT_Wzero_as_null_pointer_constant,
  		    "zero as null pointer constant");
!       /* A NULLPTR type is just a nullptr always.  */
!       if (coder == NULLPTR_TYPE)
! 	return omit_one_operand_loc (expr_loc, type, nullptr_node, rhs);
        /* 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.  */
!       else if (!null_pointer_constant)
  	switch (errtype)
  	  {
  	  case ic_argpass:
*************** static int constructor_zeroinit;
*** 9721,9726 ****
--- 10302,10311 ----
  /* 1 if this constructor should have padding bits zeroed (C23 {}.  */
  static bool constructor_zero_padding_bits;
  
+ /* 1 if this constructor is a braced scalar initializer (further nested levels
+    of braces are an error).  */
+ static bool constructor_braced_scalar;
+ 
  /* Structure for managing pending initializer elements, organized as an
     AVL tree.  */
  
*************** struct constructor_stack
*** 9792,9797 ****
--- 10377,10383 ----
    char incremental;
    char designated;
    bool zero_padding_bits;
+   bool braced_scalar;
    int designator_depth;
  };
  
*************** really_start_incremental_init (tree type
*** 9968,9973 ****
--- 10554,10560 ----
    p->incremental = constructor_incremental;
    p->designated = constructor_designated;
    p->zero_padding_bits = constructor_zero_padding_bits;
+   p->braced_scalar = constructor_braced_scalar;
    p->designator_depth = designator_depth;
    p->next = 0;
    constructor_stack = p;
*************** really_start_incremental_init (tree type
*** 9983,9988 ****
--- 10570,10576 ----
    constructor_designated = 0;
    constructor_zero_padding_bits = false;
    constructor_zeroinit = 1;
+   constructor_braced_scalar = false;
    designator_depth = 0;
    designator_erroneous = 0;
  
*************** really_start_incremental_init (tree type
*** 10042,10047 ****
--- 10630,10636 ----
        /* Handle the case of int x = {5}; */
        constructor_fields = constructor_type;
        constructor_unfilled_fields = constructor_type;
+       constructor_braced_scalar = true;
      }
  }
  
*************** push_init_level (location_t loc, int imp
*** 10118,10123 ****
--- 10707,10713 ----
    p->incremental = constructor_incremental;
    p->designated = constructor_designated;
    p->zero_padding_bits = constructor_zero_padding_bits;
+   p->braced_scalar = constructor_braced_scalar;
    p->designator_depth = designator_depth;
    p->next = constructor_stack;
    p->range_stack = 0;
*************** push_init_level (location_t loc, int imp
*** 10135,10140 ****
--- 10725,10731 ----
    /* If the upper initializer has padding bits zeroed, that includes
       all nested initializers as well.  */
    constructor_zero_padding_bits = p->zero_padding_bits;
+   constructor_braced_scalar = false;
    constructor_pending_elts = 0;
    if (!implicit)
      {
*************** push_init_level (location_t loc, int imp
*** 10253,10259 ****
    else
      {
        if (constructor_type != error_mark_node)
! 	warning_init (input_location, 0, "braces around scalar initializer");
        constructor_fields = constructor_type;
        constructor_unfilled_fields = constructor_type;
      }
--- 10844,10858 ----
    else
      {
        if (constructor_type != error_mark_node)
! 	{
! 	  if (p->braced_scalar)
! 	    permerror_init (input_location, 0,
! 			    "braces around scalar initializer");
! 	  else
! 	    warning_init (input_location, 0,
! 			  "braces around scalar initializer");
! 	  constructor_braced_scalar = true;
! 	}
        constructor_fields = constructor_type;
        constructor_unfilled_fields = constructor_type;
      }
*************** pop_init_level (location_t loc, int impl
*** 10475,10480 ****
--- 11074,11080 ----
    constructor_incremental = p->incremental;
    constructor_designated = p->designated;
    constructor_zero_padding_bits = p->zero_padding_bits;
+   constructor_braced_scalar = p->braced_scalar;
    designator_depth = p->designator_depth;
    constructor_pending_elts = p->pending_elts;
    constructor_depth = p->depth;
*************** retry:
*** 12278,12284 ****
  
  	  if (constructor_max_index != NULL_TREE
  	      && (tree_int_cst_lt (constructor_max_index, constructor_index)
! 		  || integer_all_onesp (constructor_max_index)))
  	    {
  	      pedwarn_init (loc, 0,
  			    "excess elements in array initializer");
--- 12878,12886 ----
  
  	  if (constructor_max_index != NULL_TREE
  	      && (tree_int_cst_lt (constructor_max_index, constructor_index)
! 		  || integer_all_onesp (constructor_max_index))
! 	      /* For VLA we got an error already.  */
! 	      && !C_TYPE_VARIABLE_SIZE (constructor_type))
  	    {
  	      pedwarn_init (loc, 0,
  			    "excess elements in array initializer");
*************** build_asm_expr (location_t loc, tree str
*** 12546,12552 ****
        oconstraints[i] = constraint;
  
        if (parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				   &allows_mem, &allows_reg, &is_inout))
  	{
  	  /* If the operand is going to end up in memory,
  	     mark it addressable.  */
--- 13148,13155 ----
        oconstraints[i] = constraint;
  
        if (parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				   &allows_mem, &allows_reg, &is_inout,
! 				   nullptr))
  	{
  	  /* If the operand is going to end up in memory,
  	     mark it addressable.  */
*************** build_asm_expr (location_t loc, tree str
*** 12607,12613 ****
        input = TREE_VALUE (tail);
  
        if (parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				  oconstraints, &allows_mem, &allows_reg))
  	{
  	  /* If the operand is going to end up in memory,
  	     mark it addressable.  */
--- 13210,13217 ----
        input = TREE_VALUE (tail);
  
        if (parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				  oconstraints, &allows_mem, &allows_reg,
! 				  nullptr))
  	{
  	  /* If the operand is going to end up in memory,
  	     mark it addressable.  */
*************** build_asm_expr (location_t loc, tree str
*** 12623,12633 ****
  	    }
  	  else
  	    {
! 	      struct c_expr expr;
! 	      memset (&expr, 0, sizeof (expr));
! 	      expr.value = input;
! 	      expr = convert_lvalue_to_rvalue (loc, expr, true, false);
! 	      input = c_fully_fold (expr.value, false, NULL);
  
  	      if (input != error_mark_node && VOID_TYPE_P (TREE_TYPE (input)))
  		{
--- 13227,13235 ----
  	    }
  	  else
  	    {
! 	      input = c_fully_fold (convert_lvalue_to_rvalue (loc, input,
! 							      true, false),
! 				    false, NULL);
  
  	      if (input != error_mark_node && VOID_TYPE_P (TREE_TYPE (input)))
  		{
*************** build_asm_expr (location_t loc, tree str
*** 12654,12659 ****
--- 13256,13263 ----
  				 "of a function or non-automatic variable");
  		  input = error_mark_node;
  		}
+ 	      else if (TREE_CODE (TREE_OPERAND (t, 0)) == FUNCTION_DECL)
+ 		suppress_warning (TREE_OPERAND (t, 0), OPT_Wunused);
  	    }
  	}
        else
*************** c_finish_goto_label (location_t loc, tre
*** 12710,12715 ****
--- 13314,13320 ----
    if (!decl)
      return NULL_TREE;
    TREE_USED (decl) = 1;
+   mark_decl_used (decl, false);
    {
      add_stmt (build_predict_expr (PRED_GOTO, NOT_TAKEN));
      tree t = build1 (GOTO_EXPR, void_type_node, decl);
*************** c_finish_return (location_t loc, tree re
*** 12789,12795 ****
  	  && valtype != NULL_TREE && TREE_CODE (valtype) != VOID_TYPE)
  	{
  	  no_warning = true;
! 	  if (emit_diagnostic (flag_isoc99 ? DK_PERMERROR : DK_WARNING,
  			       loc, OPT_Wreturn_mismatch,
  			       "%<return%> with no value,"
  			       " in function returning non-void"))
--- 13394,13402 ----
  	  && valtype != NULL_TREE && TREE_CODE (valtype) != VOID_TYPE)
  	{
  	  no_warning = true;
! 	  if (emit_diagnostic (flag_isoc99
! 			       ? diagnostics::kind::permerror
! 			       : diagnostics::kind::warning,
  			       loc, OPT_Wreturn_mismatch,
  			       "%<return%> with no value,"
  			       " in function returning non-void"))
*************** c_finish_return (location_t loc, tree re
*** 12883,12896 ****
  
  	      if (DECL_P (inner)
  		  && !DECL_EXTERNAL (inner)
- 		  && !TREE_STATIC (inner)
  		  && DECL_CONTEXT (inner) == current_function_decl
  		  && POINTER_TYPE_P (TREE_TYPE (TREE_TYPE (current_function_decl))))
  		{
  		  if (TREE_CODE (inner) == LABEL_DECL)
  		    warning_at (loc, OPT_Wreturn_local_addr,
  				"function returns address of label");
! 		  else
  		    {
  		      warning_at (loc, OPT_Wreturn_local_addr,
  				  "function returns address of local variable");
--- 13490,13509 ----
  
  	      if (DECL_P (inner)
  		  && !DECL_EXTERNAL (inner)
  		  && DECL_CONTEXT (inner) == current_function_decl
  		  && POINTER_TYPE_P (TREE_TYPE (TREE_TYPE (current_function_decl))))
  		{
  		  if (TREE_CODE (inner) == LABEL_DECL)
  		    warning_at (loc, OPT_Wreturn_local_addr,
  				"function returns address of label");
! 		  else if (TREE_CODE (inner) == FUNCTION_DECL
! 			   && (C_FUNC_NONLOCAL_CONTEXT (inner)
! 			       || !DECL_INITIAL (inner)))
! 		    warning_at (loc, OPT_Wreturn_local_addr,
! 				"function returns address of nested function "
! 				"referencing local context");
! 		  else if (TREE_CODE (inner) != FUNCTION_DECL
! 			   && !TREE_STATIC (inner))
  		    {
  		      warning_at (loc, OPT_Wreturn_local_addr,
  				  "function returns address of local variable");
*************** build_binary_op (location_t location, en
*** 13945,13952 ****
  	  if (code1 == COMPLEX_TYPE || code1 == VECTOR_TYPE)
  	    tcode1 = TREE_CODE (TREE_TYPE (TREE_TYPE (op1)));
  
! 	  if (!(((tcode0 == INTEGER_TYPE || tcode0 == BITINT_TYPE)
! 		 && (tcode1 == INTEGER_TYPE || tcode1 == BITINT_TYPE))
  		|| (tcode0 == FIXED_POINT_TYPE && tcode1 == FIXED_POINT_TYPE)))
  	    resultcode = RDIV_EXPR;
  	  else
--- 14558,14567 ----
  	  if (code1 == COMPLEX_TYPE || code1 == VECTOR_TYPE)
  	    tcode1 = TREE_CODE (TREE_TYPE (TREE_TYPE (op1)));
  
! 	  if (!(((tcode0 == INTEGER_TYPE || tcode0 == BITINT_TYPE
! 		  || (tcode0 == ENUMERAL_TYPE && code0 == VECTOR_TYPE))
! 		 && (tcode1 == INTEGER_TYPE || tcode1 == BITINT_TYPE
! 		     || (tcode1 == ENUMERAL_TYPE && code1 == VECTOR_TYPE)))
  		|| (tcode0 == FIXED_POINT_TYPE && tcode1 == FIXED_POINT_TYPE)))
  	    resultcode = RDIV_EXPR;
  	  else
*************** build_binary_op (location_t location, en
*** 14226,14243 ****
  	    }
  
            /* Always construct signed integer vector type.  */
!           intt = c_common_type_for_size (GET_MODE_BITSIZE
! 					 (SCALAR_TYPE_MODE
! 					  (TREE_TYPE (type0))), 0);
! 	  if (!intt)
  	    {
! 	      error_at (location, "could not find an integer type "
! 				  "of the same size as %qT",
! 			TREE_TYPE (type0));
! 	      return error_mark_node;
  	    }
-           result_type = build_opaque_vector_type (intt,
- 						  TYPE_VECTOR_SUBPARTS (type0));
            converted = 1;
  	  ret = build_vec_cmp (resultcode, result_type, op0, op1);
  	  goto return_build_binary_op;
--- 14841,14864 ----
  	    }
  
            /* Always construct signed integer vector type.  */
! 	  if (VECTOR_BOOLEAN_TYPE_P (type0) && VECTOR_BOOLEAN_TYPE_P (type1))
! 	    result_type = type0;
! 	  else
  	    {
! 	      auto nelts = TYPE_VECTOR_SUBPARTS (type0);
! 
! 	      intt = c_common_type_for_size (GET_MODE_BITSIZE
! 					     (SCALAR_TYPE_MODE
! 						(TREE_TYPE (type0))), 0);
! 	      if (!intt)
! 		{
! 		  error_at (location, "could not find an integer type "
! 				      "of the same size as %qT",
! 			    TREE_TYPE (type0));
! 		  return error_mark_node;
! 		}
! 	      result_type = build_opaque_vector_type (intt, nelts);
  	    }
            converted = 1;
  	  ret = build_vec_cmp (resultcode, result_type, op0, op1);
  	  goto return_build_binary_op;
*************** build_binary_op (location_t location, en
*** 14281,14287 ****
  	     Otherwise, the targets must be compatible
  	     and both must be object or both incomplete.  */
  	  if (comp_target_types (location, type0, type1))
! 	    result_type = common_pointer_type (type0, type1);
  	  else if (!addr_space_superset (as0, as1, &as_common))
  	    {
  	      error_at (location, "comparison of pointers to "
--- 14902,14908 ----
  	     Otherwise, the targets must be compatible
  	     and both must be object or both incomplete.  */
  	  if (comp_target_types (location, type0, type1))
! 	    result_type = common_pointer_type (type0, type1, NULL_TREE);
  	  else if (!addr_space_superset (as0, as1, &as_common))
  	    {
  	      error_at (location, "comparison of pointers to "
*************** build_binary_op (location_t location, en
*** 14420,14426 ****
  
  	  if (comp_target_types (location, type0, type1))
  	    {
! 	      result_type = common_pointer_type (type0, type1);
  	      if (!COMPLETE_TYPE_P (TREE_TYPE (type0))
  		  != !COMPLETE_TYPE_P (TREE_TYPE (type1)))
  		pedwarn_c99 (location, OPT_Wpedantic,
--- 15041,15047 ----
  
  	  if (comp_target_types (location, type0, type1))
  	    {
! 	      result_type = common_pointer_type (type0, type1, NULL_TREE);
  	      if (!COMPLETE_TYPE_P (TREE_TYPE (type0))
  		  != !COMPLETE_TYPE_P (TREE_TYPE (type1)))
  		pedwarn_c99 (location, OPT_Wpedantic,
*************** handle_omp_array_sections_1 (tree c, tre
*** 15247,15258 ****
  	  /* If the array section is pointer based and the pointer
  	     itself is _Atomic qualified, we need to atomically load
  	     the pointer.  */
! 	  c_expr expr;
! 	  memset (&expr, 0, sizeof (expr));
! 	  expr.value = ret;
! 	  expr = convert_lvalue_to_rvalue (OMP_CLAUSE_LOCATION (c),
! 					   expr, false, false);
! 	  ret = expr.value;
  	}
        return ret;
      }
--- 15868,15875 ----
  	  /* If the array section is pointer based and the pointer
  	     itself is _Atomic qualified, we need to atomically load
  	     the pointer.  */
! 	  ret = convert_lvalue_to_rvalue (OMP_CLAUSE_LOCATION (c),
! 					  ret, false, false);
  	}
        return ret;
      }
*************** handle_omp_array_sections (tree &c, enum
*** 15537,15545 ****
    tree *tp = &OMP_CLAUSE_DECL (c);
    if ((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEPEND
         || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_AFFINITY)
!       && TREE_CODE (*tp) == TREE_LIST
!       && TREE_PURPOSE (*tp)
!       && TREE_CODE (TREE_PURPOSE (*tp)) == TREE_VEC)
      tp = &TREE_VALUE (*tp);
    tree first = handle_omp_array_sections_1 (c, *tp, types,
  					    maybe_zero_len, first_non_one,
--- 16154,16160 ----
    tree *tp = &OMP_CLAUSE_DECL (c);
    if ((OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEPEND
         || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_AFFINITY)
!       && OMP_ITERATOR_DECL_P (*tp))
      tp = &TREE_VALUE (*tp);
    tree first = handle_omp_array_sections_1 (c, *tp, types,
  					    maybe_zero_len, first_non_one,
*************** c_finish_omp_clauses (tree clauses, enum
*** 16097,16103 ****
        /* We've reached the end of a list of expanded nodes.  Reset the group
  	 start pointer.  */
        if (c == grp_sentinel)
! 	grp_start_p = NULL;
  
        switch (OMP_CLAUSE_CODE (c))
  	{
--- 16712,16725 ----
        /* We've reached the end of a list of expanded nodes.  Reset the group
  	 start pointer.  */
        if (c == grp_sentinel)
! 	{
! 	  if (grp_start_p
! 	      && OMP_CLAUSE_HAS_ITERATORS (*grp_start_p))
! 	    for (tree gc = *grp_start_p; gc != grp_sentinel;
! 		 gc = OMP_CLAUSE_CHAIN (gc))
! 	      OMP_CLAUSE_ITERATORS (gc) = OMP_CLAUSE_ITERATORS (*grp_start_p);
! 	  grp_start_p = NULL;
! 	}
  
        switch (OMP_CLAUSE_CODE (c))
  	{
*************** c_finish_omp_clauses (tree clauses, enum
*** 16731,16744 ****
  	      break;
  	    }
  	  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
! 	      && TREE_PURPOSE (t)
! 	      && TREE_CODE (TREE_PURPOSE (t)) == TREE_VEC)
  	    {
  	      if (TREE_PURPOSE (t) != last_iterators)
  		last_iterators_remove
--- 17353,17503 ----
  	      break;
  	    }
  	  gcc_unreachable ();
+ 
+ 	case OMP_CLAUSE_USES_ALLOCATORS:
+ 	  t = OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR (c);
+ 	  if (t == error_mark_node)
+ 	    {
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  if ((VAR_P (t) || TREE_CODE (t) == PARM_DECL)
+ 	      && (bitmap_bit_p (&generic_head, DECL_UID (t))
+ 		  || bitmap_bit_p (&map_head, DECL_UID (t))
+ 		  || bitmap_bit_p (&firstprivate_head, DECL_UID (t))
+ 		  || bitmap_bit_p (&lastprivate_head, DECL_UID (t))))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 			"%qE appears more than once in data clauses", t);
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  else
+ 	    bitmap_set_bit (&generic_head, DECL_UID (t));
+ 	  if (TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE
+ 	      || strcmp (IDENTIFIER_POINTER (TYPE_IDENTIFIER (TREE_TYPE (t))),
+ 			 "omp_allocator_handle_t") != 0)
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 			"allocator %qE must be of %<omp_allocator_handle_t%> "
+ 			"type", t);
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  tree init;
+ 	  if (!DECL_P (t)
+ 	      || (TREE_CODE (t) == CONST_DECL
+ 		  && ((init = DECL_INITIAL(t)) == nullptr
+ 		      || TREE_CODE (init) != INTEGER_CST
+ 		      || ((wi::to_widest (init) < 0
+ 			   || wi::to_widest (init) > GOMP_OMP_PREDEF_ALLOC_MAX)
+ 			  && (wi::to_widest (init) < GOMP_OMPX_PREDEF_ALLOC_MIN
+ 			      || (wi::to_widest (init)
+ 				  > GOMP_OMPX_PREDEF_ALLOC_MAX))))))
+ 	    {
+ 	      remove = true;
+ 	      error_at (OMP_CLAUSE_LOCATION (c),
+ 			"allocator %qE must be either a variable or a "
+ 			"predefined allocator", t);
+ 	      break;
+ 	    }
+ 	  else if (TREE_CODE (t) == CONST_DECL)
+ 	    {
+ 	      /* omp_null_allocator is ignored and for predefined allocators,
+ 		 not special handling is required; thus, remove them removed. */
+ 	      remove = true;
+ 
+ 	      if (OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE (c)
+ 		  || OMP_CLAUSE_USES_ALLOCATORS_TRAITS (c))
+ 		{
+ 		  error_at (OMP_CLAUSE_LOCATION (c),
+ 			    "modifiers cannot be used with predefined "
+ 			    "allocator %qE", t);
+ 		  break;
+ 		}
+ 	    }
+ 	  t = OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE (c);
+ 	  if (t == error_mark_node)
+ 	    {
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  if (t != NULL_TREE
+ 	      && ((TREE_CODE (t) != CONST_DECL && TREE_CODE (t) != INTEGER_CST)
+ 		  || TREE_CODE (TREE_TYPE (t)) != ENUMERAL_TYPE
+ 		  || strcmp (IDENTIFIER_POINTER (TYPE_IDENTIFIER (TREE_TYPE (t))),
+ 			     "omp_memspace_handle_t") != 0))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c), "memspace modifier %qE must be"
+ 			" constant enum of %<omp_memspace_handle_t%> type", t);
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  t = OMP_CLAUSE_USES_ALLOCATORS_TRAITS (c);
+ 	  if (t == error_mark_node)
+ 	    {
+ 	      remove = true;
+ 	      break;
+ 	    }
+ 	  if (t != NULL_TREE
+ 	      && t != error_mark_node
+ 	      && (DECL_EXTERNAL (t)
+ 		  || TREE_CODE (t) == PARM_DECL))
+ 	    {
+ 	      error_at (OMP_CLAUSE_LOCATION (c), "traits array %qE must be "
+ 			"defined in same scope as the construct on which the "
+ 			"clause appears", t);
+ 	      remove = true;
+ 	    }
+ 	  if (t != NULL_TREE)
+ 	    {
+ 	      bool type_err = false;
+ 
+ 	      if (TREE_CODE (TREE_TYPE (t)) != ARRAY_TYPE
+ 		  || DECL_SIZE (t) == NULL_TREE
+ 		  || !COMPLETE_TYPE_P (TREE_TYPE (t)))
+ 		type_err = true;
+ 	      else
+ 		{
+ 		  tree elem_t = TREE_TYPE (TREE_TYPE (t));
+ 		  if (TREE_CODE (elem_t) != RECORD_TYPE
+ 		      || strcmp (IDENTIFIER_POINTER (TYPE_IDENTIFIER (elem_t)),
+ 				 "omp_alloctrait_t") != 0
+ 		      || !TYPE_READONLY (elem_t))
+ 		    type_err = true;
+ 		}
+ 	      if (type_err)
+ 		{
+ 		  if (t != error_mark_node)
+ 		    error_at (OMP_CLAUSE_LOCATION (c), "traits array %qE must "
+ 			      "be of %<const omp_alloctrait_t []%> type", t);
+ 		  else
+ 		    error_at (OMP_CLAUSE_LOCATION (c), "traits array must "
+ 			      "be of %<const omp_alloctrait_t []%> type");
+ 		  remove = true;
+ 		}
+ 	      else
+ 		{
+ 		  tree cst_val = decl_constant_value_1 (t, true);
+ 		  if (cst_val == t)
+ 		    {
+ 		      error_at (OMP_CLAUSE_LOCATION (c), "traits array must be "
+ 				"initialized with constants");
+ 
+ 		      remove = true;
+ 		    }
+ 		}
+ 	    }
+ 	  if (remove)
+ 	    break;
+ 	  pc = &OMP_CLAUSE_CHAIN (c);
+ 	  continue;
  	case OMP_CLAUSE_DEPEND:
  	  depend_clause = c;
  	  /* FALLTHRU */
  	case OMP_CLAUSE_AFFINITY:
  	  t = OMP_CLAUSE_DECL (c);
! 	  if (OMP_ITERATOR_DECL_P (t))
  	    {
  	      if (TREE_PURPOSE (t) != last_iterators)
  		last_iterators_remove
*************** c_finish_omp_clauses (tree clauses, enum
*** 16838,16847 ****
  		      break;
  		    }
  		}
! 	      if (TREE_CODE (OMP_CLAUSE_DECL (c)) == TREE_LIST
! 		  && TREE_PURPOSE (OMP_CLAUSE_DECL (c))
! 		  && (TREE_CODE (TREE_PURPOSE (OMP_CLAUSE_DECL (c)))
! 		      == TREE_VEC))
  		TREE_VALUE (OMP_CLAUSE_DECL (c)) = t;
  	      else
  		OMP_CLAUSE_DECL (c) = t;
--- 17597,17603 ----
  		      break;
  		    }
  		}
! 	      if (OMP_ITERATOR_DECL_P (OMP_CLAUSE_DECL (c)))
  		TREE_VALUE (OMP_CLAUSE_DECL (c)) = t;
  	      else
  		OMP_CLAUSE_DECL (c) = t;
*************** c_finish_omp_clauses (tree clauses, enum
*** 16851,16859 ****
--- 17607,17628 ----
  	case OMP_CLAUSE_MAP:
  	  if (OMP_CLAUSE_MAP_IMPLICIT (c) && !implicit_moved)
  	    goto move_implicit;
+ 	  if (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_PUSH_MAPPER_NAME
+ 	      || OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_POP_MAPPER_NAME)
+ 	    {
+ 	      remove = true;
+ 	      break;
+ 	    }
  	  /* FALLTHRU */
  	case OMP_CLAUSE_TO:
  	case OMP_CLAUSE_FROM:
+ 	  if (OMP_CLAUSE_ITERATORS (c)
+ 	      && c_omp_finish_iterators (OMP_CLAUSE_ITERATORS (c)))
+ 	    {
+ 	      t = error_mark_node;
+ 	      break;
+ 	    }
+ 	  /* FALLTHRU */
  	case OMP_CLAUSE__CACHE_:
  	  {
  	    using namespace omp_addr_tokenizer;
*************** c_finish_omp_clauses (tree clauses, enum
*** 17343,17348 ****
--- 18112,18118 ----
  	case OMP_CLAUSE_FINAL:
  	case OMP_CLAUSE_DEVICE:
  	case OMP_CLAUSE_DIST_SCHEDULE:
+ 	case OMP_CLAUSE_DYN_GROUPPRIVATE:
  	case OMP_CLAUSE_PARALLEL:
  	case OMP_CLAUSE_FOR:
  	case OMP_CLAUSE_SECTIONS:
*************** c_finish_omp_clauses (tree clauses, enum
*** 17582,17587 ****
--- 18352,18362 ----
  	pc = &OMP_CLAUSE_CHAIN (c);
      }
  
+   if (grp_start_p
+       && OMP_CLAUSE_HAS_ITERATORS (*grp_start_p))
+     for (tree gc = *grp_start_p; gc; gc = OMP_CLAUSE_CHAIN (gc))
+       OMP_CLAUSE_ITERATORS (gc) = OMP_CLAUSE_ITERATORS (*grp_start_p);
+ 
    if (simdlen
        && safelen
        && tree_int_cst_lt (OMP_CLAUSE_SAFELEN_EXPR (safelen),
*************** c_finish_omp_clauses (tree clauses, enum
*** 17791,17796 ****
--- 18566,18580 ----
    return clauses;
  }
  
+ /* Do processing necessary to make CLAUSES well-formed, where CLAUSES result
+    from implicit instantiation of user-defined mappers (in gimplify.cc).  */
+ 
+ tree
+ c_omp_finish_mapper_clauses (tree clauses)
+ {
+   return c_finish_omp_clauses (clauses, C_ORT_OMP);
+ }
+ 
  /* Return code to initialize DST with a copy constructor from SRC.
     C doesn't have copy constructors nor assignment operators, only for
     _Atomic vars we need to perform __atomic_load from src into a temporary
*************** c_build_qualified_type (tree type, int t
*** 17932,17939 ****
  
    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.  */
--- 18716,18723 ----
  
    gcc_checking_assert (C_TYPE_VARIABLE_SIZE (var_type)
  		       == C_TYPE_VARIABLE_SIZE (type));
!   gcc_checking_assert (c_type_variably_modified_p (var_type)
! 		       == c_type_variably_modified_p (type));
  
    /* A variant type does not inherit the list of incomplete vars from the
       type main variant.  */
*************** c_build_qualified_type (tree type, int t
*** 17947,17953 ****
  /* Build a VA_ARG_EXPR for the C parser.  */
  
  tree
! c_build_va_arg (location_t loc1, tree expr, location_t loc2, tree type)
  {
    if (error_operand_p (type))
      return error_mark_node;
--- 18731,18738 ----
  /* Build a VA_ARG_EXPR for the C parser.  */
  
  tree
! c_build_va_arg (location_t loc1, tree expr, location_t loc2, tree type,
! 		tree type_expr)
  {
    if (error_operand_p (type))
      return error_mark_node;
*************** c_build_va_arg (location_t loc1, tree ex
*** 17971,17980 ****
  		type);
        return error_mark_node;
      }
    else if (warn_cxx_compat && TREE_CODE (type) == ENUMERAL_TYPE)
      warning_at (loc2, OPT_Wc___compat,
  		"C++ requires promoted type, not enum type, in %<va_arg%>");
!   return build_va_arg (loc2, expr, type);
  }
  
  /* Return truthvalue of whether T1 is the same tree structure as T2.
--- 18756,18791 ----
  		type);
        return error_mark_node;
      }
+   else if (TREE_CODE (type) == ARRAY_TYPE && C_TYPE_VARIABLE_SIZE (type)
+ 	   && !flag_isoc99)
+     {
+       error_at (loc2, "second argument to %<va_arg%> is an array type %qT",
+ 		type);
+       return error_mark_node;
+     }
    else if (warn_cxx_compat && TREE_CODE (type) == ENUMERAL_TYPE)
      warning_at (loc2, OPT_Wc___compat,
  		"C++ requires promoted type, not enum type, in %<va_arg%>");
! 
!   if (flag_isoc99 && TREE_CODE (type) == ARRAY_TYPE)
!     {
!       warning_at (loc2, 0, "second argument to %<va_arg%> is an array type %qT",
! 		  type);
!       /* We create a trap but evaluate side effects first.  */
!       tree trapfn = builtin_decl_explicit (BUILT_IN_TRAP);
!       trapfn = build_call_expr_loc (loc2, trapfn, 0);
!       tree e2 = build2 (COMPOUND_EXPR, void_type_node, expr, trapfn);
!       /* Return a compound literal of the right type.  */
!       tree e1 = build_compound_literal (loc2, type, NULL, true, 0, NULL);
!       expr = build2 (COMPOUND_EXPR, type, e2, e1);
!     }
!   else
!     expr = build_va_arg (loc2, expr, type);
! 
!   if (type_expr)
!     expr = build2 (COMPOUND_EXPR, TREE_TYPE (expr), type_expr, expr);
! 
!   return expr;
  }
  
  /* Return truthvalue of whether T1 is the same tree structure as T2.
diff -Nrcpad gcc-15.2.0/gcc/c/config-lang.in gcc-16.1.0-RC-20260423/gcc/c/config-lang.in
*** gcc-15.2.0/gcc/c/config-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/config-lang.in	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  # Top level configure fragment for GNU C - C language.
! # Copyright (C) 1994-2026 Free Software Foundation, Inc.
  
  #This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c/gccspec.cc gcc-16.1.0-RC-20260423/gcc/c/gccspec.cc
*** gcc-15.2.0/gcc/c/gccspec.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/gccspec.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Specific flags and argument handling of the C front-end.
!    Copyright (C) 1999-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c/gimple-parser.cc gcc-16.1.0-RC-20260423/gcc/c/gimple-parser.cc
*** gcc-15.2.0/gcc/c/gimple-parser.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/gimple-parser.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Parser for GIMPLE.
!    Copyright (C) 2016-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_parser_parse_gimple_body (c_parser *cp
*** 356,383 ****
  	 update stmts.  */
        if (cdil == cdil_gimple_ssa)
  	{
! 	  /* Create PHI nodes, they are parsed into __PHI internal calls.  */
  	  FOR_EACH_BB_FN (bb, cfun)
! 	    for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
! 		 !gsi_end_p (gsi);)
! 	      {
! 		gimple *stmt = gsi_stmt (gsi);
! 		if (!gimple_call_internal_p (stmt, IFN_PHI))
! 		  break;
  
! 		gphi *phi = create_phi_node (gimple_call_lhs (stmt), bb);
! 		for (unsigned i = 0; i < gimple_call_num_args (stmt); i += 2)
! 		  {
! 		    int srcidx = TREE_INT_CST_LOW (gimple_call_arg (stmt, i));
! 		    edge e = find_edge (BASIC_BLOCK_FOR_FN (cfun, srcidx), bb);
! 		    if (!e)
! 		      c_parser_error (parser, "edge not found");
! 		    else
! 		      add_phi_arg (phi, gimple_call_arg (stmt, i + 1), e,
! 				   UNKNOWN_LOCATION);
! 		  }
! 		gsi_remove (&gsi, true);
! 	      }
  	  /* Fill SSA name gaps, putting them on the freelist and diagnose
  	     SSA names without definition.  */
  	  for (unsigned i = 1; i < num_ssa_names; ++i)
--- 356,388 ----
  	 update stmts.  */
        if (cdil == cdil_gimple_ssa)
  	{
! 	  /* Create PHI nodes, they are parsed into __PHI internal calls
! 	     and update SSA operands.  */
  	  FOR_EACH_BB_FN (bb, cfun)
! 	    {
! 	      gimple_stmt_iterator gsi;
! 	      for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi);)
! 		{
! 		  gimple *stmt = gsi_stmt (gsi);
! 		  if (!gimple_call_internal_p (stmt, IFN_PHI))
! 		    break;
  
! 		  gphi *phi = create_phi_node (gimple_call_lhs (stmt), bb);
! 		  for (unsigned i = 0; i < gimple_call_num_args (stmt); i += 2)
! 		    {
! 		      int srcidx = TREE_INT_CST_LOW (gimple_call_arg (stmt, i));
! 		      edge e = find_edge (BASIC_BLOCK_FOR_FN (cfun, srcidx), bb);
! 		      if (!e)
! 			c_parser_error (parser, "edge not found");
! 		      else
! 			add_phi_arg (phi, gimple_call_arg (stmt, i + 1), e,
! 				     UNKNOWN_LOCATION);
! 		    }
! 		  gsi_remove (&gsi, true);
! 		}
! 	      for (; !gsi_end_p (gsi); gsi_next (&gsi))
! 		update_stmt (gsi_stmt (gsi));
! 	    }
  	  /* Fill SSA name gaps, putting them on the freelist and diagnose
  	     SSA names without definition.  */
  	  for (unsigned i = 1; i < num_ssa_names; ++i)
*************** c_parser_gimple_compound_statement (gimp
*** 639,645 ****
  		    {
  		      gimple_stmt_iterator gsi
  			= gsi_start_bb (parser.current_bb);
! 		      gsi_insert_seq_after (&gsi, *seq, GSI_CONTINUE_LINKING);
  		    }
  		  *seq = NULL;
  		}
--- 644,651 ----
  		    {
  		      gimple_stmt_iterator gsi
  			= gsi_start_bb (parser.current_bb);
! 		      gsi_insert_seq_after_without_update (&gsi, *seq,
! 							   GSI_CONTINUE_LINKING);
  		    }
  		  *seq = NULL;
  		}
*************** expr_stmt:
*** 735,741 ****
        else
  	{
  	  gimple_stmt_iterator gsi = gsi_start_bb (parser.current_bb);
! 	  gsi_insert_seq_after (&gsi, *seq, GSI_CONTINUE_LINKING);
  	}
        *seq = NULL;
      }
--- 741,748 ----
        else
  	{
  	  gimple_stmt_iterator gsi = gsi_start_bb (parser.current_bb);
! 	  gsi_insert_seq_after_without_update (&gsi, *seq,
! 					       GSI_CONTINUE_LINKING);
  	}
        *seq = NULL;
      }
*************** c_parser_gimple_statement (gimple_parser
*** 963,968 ****
--- 970,998 ----
    return;
  }
  
+ /* A mapping between an identifier to a tree code for binary operations. */
+ static const std::pair<const char *, tree_code> gimple_binary_identifier_code[] =
+   {
+     {"__MULT_HIGHPART", MULT_HIGHPART_EXPR},
+     {"__UNLT", UNLT_EXPR},
+     {"__UNLE", UNLE_EXPR},
+     {"__UNGT", UNGT_EXPR},
+     {"__UNGE", UNGE_EXPR},
+     {"__UNEQ", UNEQ_EXPR},
+     {"__UNORDERED", UNORDERED_EXPR},
+     {"__ORDERED", ORDERED_EXPR},
+     {"__LTGT", LTGT_EXPR},
+     {"__FLOOR_DIV", FLOOR_DIV_EXPR},
+     {"__ROUND_DIV", ROUND_DIV_EXPR},
+     {"__EXACT_DIV", EXACT_DIV_EXPR},
+     {"__CEIL_DIV", CEIL_DIV_EXPR},
+     {"__FLOOR_MOD", FLOOR_MOD_EXPR},
+     {"__ROUND_MOD", ROUND_MOD_EXPR},
+     {"__CEIL_MOD", CEIL_MOD_EXPR},
+     {"__ROTATE_LEFT", LROTATE_EXPR},
+     {"__ROTATE_RIGHT", RROTATE_EXPR},
+   };
+ 
  /* Parse gimple binary expr.
  
     gimple-binary-expression:
*************** c_parser_gimple_binary_expression (gimpl
*** 1061,1146 ****
      case CPP_NAME:
        {
  	tree id = c_parser_peek_token (parser)->value;
! 	if (strcmp (IDENTIFIER_POINTER (id), "__MULT_HIGHPART") == 0)
! 	  {
! 	    code = MULT_HIGHPART_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNLT") == 0)
! 	  {
! 	    code = UNLT_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNLE") == 0)
! 	  {
! 	    code = UNLE_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNGT") == 0)
! 	  {
! 	    code = UNGT_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNGE") == 0)
! 	  {
! 	    code = UNGE_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNEQ") == 0)
! 	  {
! 	    code = UNEQ_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__UNORDERED") == 0)
! 	  {
! 	    code = UNORDERED_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__ORDERED") == 0)
! 	  {
! 	    code = ORDERED_EXPR;
! 	    break;
! 	  }
! 	else if (strcmp (IDENTIFIER_POINTER (id), "__LTGT") == 0)
! 	  {
! 	    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:
--- 1091,1106 ----
      case CPP_NAME:
        {
  	tree id = c_parser_peek_token (parser)->value;
! 	for (auto &p : gimple_binary_identifier_code)
  	  {
! 	    if (strcmp (IDENTIFIER_POINTER (id), p.first) == 0)
! 	      {
! 		code = p.second;
! 		break;
! 	      }
  	  }
+ 	if (code != ERROR_MARK)
+ 	  break;
        }
        /* Fallthru.  */
      default:
*************** c_parser_gimple_postfix_expression (gimp
*** 1569,1575 ****
  	    {
  	      /* __MEM '<' type-name [ ',' number ] '>'
  	               '(' [ '(' type-name ')' ] unary-expression
! 		           [ '+' number ] ')'  */
  	      location_t loc = c_parser_peek_token (parser)->location;
  	      c_parser_consume_token (parser);
  	      tree type = c_parser_gimple_typespec (parser);
--- 1529,1536 ----
  	    {
  	      /* __MEM '<' type-name [ ',' number ] '>'
  	               '(' [ '(' type-name ')' ] unary-expression
! 			   [ '+' number ]
! 			   [ ',' number ':' number ] ')'  */
  	      location_t loc = c_parser_peek_token (parser)->location;
  	      c_parser_consume_token (parser);
  	      tree type = c_parser_gimple_typespec (parser);
*************** c_parser_gimple_postfix_expression (gimp
*** 1579,1584 ****
--- 1540,1547 ----
  	      step.value = NULL_TREE;
  	      index.value = NULL_TREE;
  	      index2.value = NULL_TREE;
+ 	      unsigned short clique = 0;
+ 	      unsigned short base = 0;
  	      if (c_parser_require (parser, CPP_OPEN_PAREN, "expected %<(%>"))
  		{
  		  tree alias_type = NULL_TREE;
*************** c_parser_gimple_postfix_expression (gimp
*** 1660,1665 ****
--- 1623,1649 ----
  				  "expected constant step for %<__MEM%> "
  				  "operand");
  		    }
+ 		  if (c_parser_next_token_is (parser, CPP_COMMA))
+ 		    {
+ 		      struct c_expr cl, ba;
+ 		      c_parser_consume_token (parser);
+ 		      cl = c_parser_gimple_postfix_expression (parser);
+ 		      if (c_parser_require (parser,
+ 					    CPP_COLON, "expected %<:%>"))
+ 			{
+ 			  ba = c_parser_gimple_postfix_expression (parser);
+ 			  if (!tree_fits_uhwi_p (cl.value)
+ 			      || !tree_fits_uhwi_p (ba.value)
+ 			      || compare_tree_int (cl.value,
+ 						   (clique = tree_to_uhwi
+ 								(cl.value)))
+ 			      || compare_tree_int (ba.value,
+ 						   (base = tree_to_uhwi
+ 								 (ba.value))))
+ 			    error_at (cl.get_start (),
+ 				      "invalid clique/base pair");
+ 			}
+ 		    }
  		  c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
  					     "expected %<)%>");
  		}
*************** c_parser_gimple_postfix_expression (gimp
*** 1675,1680 ****
--- 1659,1670 ----
  	      else
  		expr.value = build2_loc (loc, MEM_REF,
  					 type, ptr.value, alias_off.value);
+ 	      if (clique != 0)
+ 		{
+ 		  cfun->last_clique = MAX (cfun->last_clique, clique);
+ 		  MR_DEPENDENCE_CLIQUE (expr.value) = clique;
+ 		  MR_DEPENDENCE_BASE (expr.value) = base;
+ 		}
  	      break;
  	    }
  	  else if (strcmp (IDENTIFIER_POINTER (id), "__VIEW_CONVERT") == 0)
*************** c_parser_gimple_if_stmt (gimple_parser &
*** 2492,2498 ****
  
     gimple-case-statement:
       gimple-case-statement
!      gimple-label-statement : gimple-goto-statment
  */
  
  static void
--- 2482,2488 ----
  
     gimple-case-statement:
       gimple-case-statement
!      gimple-label-statement : gimple-goto-statement
  */
  
  static void
diff -Nrcpad gcc-15.2.0/gcc/c/gimple-parser.h gcc-16.1.0-RC-20260423/gcc/c/gimple-parser.h
*** gcc-15.2.0/gcc/c/gimple-parser.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c/gimple-parser.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations for the parser for GIMPLE.
!    Copyright (C) 2016-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/ChangeLog gcc-16.1.0-RC-20260423/gcc/c-family/ChangeLog
*** gcc-15.2.0/gcc/c-family/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/ChangeLog	Thu Apr 23 11:07:33 2026
***************
*** 1,11 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
  2025-07-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backported from master:
! 	2025-07-04  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/120837
  	* c-common.cc (pointer_int_sum): Rewrite the intop PLUS_EXPR or
--- 1,762 ----
! 2026-04-22  Jakub Jelinek  <jakub@redhat.com>
  
! 	* c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_impl_reflection value
! 	from 202506L to 202603L.
! 
! 2026-04-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR sanitizer/124969
! 	* c-ubsan.cc (get_index_from_pointer_addr_expr): For
! 	VOID_TYPE_P (pointee_type) use size_one_node instead of
! 	TYPE_SIZE_UNIT (pointee_type) as pointee_size.  Punt for
! 	!COMPLETE_OR_VOID_TYPE_P (pointee_type).  Formatting fix.  Use
! 	CONVERT_EXPR_P (x) instead of CONVERT_EXPR_CODE_P (TREE_CODE (x)).
! 
! 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/124784
! 	* c.opt.urls: Regenerated.
! 
! 2026-03-19  Jason Merrill  <jason@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Enable -fcontracts
! 	in C++26 mode unless -fno-contracts was specified.
! 
! 2026-03-12  Marek Polacek  <polacek@redhat.com>
! 
! 	PR c++/124447
! 	* c-opts.cc (c_common_post_options): Error if -freflection is used
! 	without -std=c++26 or -std=gnu++26.
! 
! 2026-03-07  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/123856
! 	* c-attribs.cc (handle_hardbool_attribute): Fix TYPE_NAME.
! 
! 2026-03-06  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	PR c/124230
! 	* c-ubsan.cc (get_index_from_offset): Handle the special case when
! 	the offset is an integer constant.
! 
! 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c/105555
! 	* c-common.cc (fold_offsetof): Handle REALPART_EXPR
! 	and IMAGPART_EXPR.
! 
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	PR middle-end/123892
! 	* c-common.cc: Replace CONST_CAST with const_cast<>.
! 	* c-lex.cc: Likewise.
! 
! 2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
! 
! 	PR middle-end/123892
! 	* c-gimplify.cc: Replace CONST_CAST_TREE with const_cast<tree>.
! 
! 2026-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Revert:
! 	2026-02-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/101312
! 	* c-pretty-print.cc (c_pretty_printer::direct_abstract_declarator):
! 	Look up "array " attribute instead of "array".
! 
! 2026-02-02  Patrick Palka  <ppalka@redhat.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_deduction_guides to
! 	202207L for C++23 and later.
! 
! 2026-01-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	PR c++/102846
! 	PR c/102846
! 	* known-headers.cc (macro_like_function_used::macro_like_function_used): New.
! 	(macro_like_function_used::~macro_like_function_used): New.
! 	* known-headers.h (class macro_like_function_used): New class.
! 
! 2026-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* c.opt: Append a period to the message for
! 	-fcontracts-client-check=.
! 
! 2026-01-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/101312
! 	* c-pretty-print.cc (c_pretty_printer::direct_abstract_declarator):
! 	Look up "array " attribute instead of "array".
! 
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
! 
! 	* c.opt (fcontracts-definition-check=,
! 	fcontracts-client-check=): New.
! 	* c.opt.urls: Regenerate.
! 
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
! 
! 	* c.opt (fcontract-checks-outlined,
! 	fcontract-disable-optimized-checks): New.
! 	* c.opt.urls: Regenerate.
! 
! 2026-01-28  Nina Ranns  <dinka.ranns@gmail.com>
! 	    Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* c.opt (fcontracts-conservative-ipa): New.
! 
! 2026-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Nina Ranns  <dinka.ranns@gmail.com>
! 	    Ville Voutilainen  <ville.voutilainen@gmail.com>
! 
! 	* c-common.cc: Add contract_assert keyword.
! 	* c-common.h (enum rid): Likewise.
! 	* c-cppbuiltin.cc (c_cpp_builtins): Add C++26 contracts feature test
! 	macro.
! 	* c.opt: Add a flag to control the TU-wide evaluation semantic. Add
! 	a flag to control whether P1494 observable_checkpoints are inserted
! 	to separate contract checks.
! 	* c.opt.urls: Regenerate.
! 
! 2026-01-28  Iain Sandoe  <iain@sandoe.co.uk>
! 	    Nina Ranns  <dinka.ranns@gmail.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Remove C++2a-specific
! 	feature macros.
! 	* c.opt: Remove C++2a-specific flags.
! 
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	* c.opt.urls: Regenerated.
! 
! 2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* c.opt (-output-pch): Mark as Undocumented, as it seems to be
! 	an internal option that has never been documented anyway.
! 	(Werror-implicit-function-declaration): Mark deprecated option
! 	that is not currently documented as Undocumented.
! 	(fconstant-string-class=): Add RejectNegative property.
! 
! 2026-01-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/123694
! 	* c-indentation.cc (guard_tinfo_to_string): Handle RID_TEMPLATE
! 	for C++11 or later.
! 
! 2026-01-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2026-01-15  Marek Polacek  <polacek@redhat.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/120775
! 	PR c++/123081
! 	PR c++/122634
! 	* c-attribs.cc (attribute_takes_identifier_p): Return false for C++
! 	annotations.  Handle "old parm name".
! 	* c-cppbuiltin.cc (c_cpp_builtins): Define __cpp_impl_reflection.
! 	* c.opt (freflection): New.
! 
! 2026-01-07  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_omp_directives): Uncomment 'groupprivate'.
! 	* c-pragma.cc (omp_pragmas): Add PRAGMA_OMP_GROUPPRIVATE.
! 	* c-pragma.h (enum pragma_kind): Likewise.
! 
! 2025-12-26  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
! 
! 	PR c++/121864
! 	* c-opts.cc (c_common_finish): Use out_fname as fallback when
! 	fdeps_file is NULL in error message.
! 
! 2025-12-23  Yuao Ma  <c8ef@outlook.com>
! 
! 	* c-common.cc: Mention c_common_init_options.
! 
! 2025-12-21  Yuao Ma  <c8ef@outlook.com>
! 
! 	* c-common.h (enum cxx_dialect): c++17 to c++20.
! 
! 2025-12-18  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_omp_split_clauses): Handle target's
! 	device_type clause.
! 
! 2025-12-18  Richard Biener  <rguenther@suse.de>
! 
! 	PR c/123156
! 	* c-common.cc (c_build_shufflevector): Use ssizetype for the
! 	permute vector element type.
! 
! 2025-12-12  Chung-Lin Tang  <cltang@baylibre.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
! 	    Andrew Stubbs  <ams@baylibre.com>
! 
! 	* c-omp.cc (c_omp_split_clauses): Hande uses_allocators.
! 	* c-pragma.h (enum pragma_omp_clause): Add
! 	PRAGMA_OMP_CLAUSE_USES_ALLOCATORS.
! 
! 2025-12-11  supers1ngular  <supers1ngular@baylibre.com>
! 
! 	* c-cppbuiltin.cc (c_cpp_builtins): Bump _OPENMP version.
! 	* c.opt (Wdeprecated-openmp): Add warning.
! 	* c.opt.urls: Regenerated.
! 
! 2025-12-05  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_omp_split_clauses): Handle
! 	OMP_CLAUSE_DYN_GROUPPRIVATE, sort target clauses
! 	alphabetically.
! 	* c-pragma.h (enum pragma_omp_clause): Add
! 	PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE.
! 
! 2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* c.opt.urls: Regenerate.
! 
! 2025-11-26  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-common.cc (c_common_reswords): Add _Maxof & _Minof keywords.
! 	(c_maxof_type, c_minof_type): New functions.
! 	* c-common.def (MAXOF_EXPR, MINOF_EXPR): New trees.
! 	* c-common.h (enum rid): Add RID_MAXOF & RID_MINOF constants.
! 	(c_maxof_type, c_minof_type): New prototypes.
! 
! 2025-11-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-opts.cc (c_common_init_options): Call set_std_cxx20 rather than
! 	set_std_cxx17.
! 	* c.opt (std=c++2a): Change description to deprecated option wording.
! 	(std=c++20): Remove experimental support part.
! 	(std=c++2b): Change description to deprecated option wording.
! 	(std=gnu++2a): Likewise.
! 	(std=gnu++20): Remove experimental support part.
! 	(std=gnu++2b): Change description to deprecated option wording.
! 
! 2025-11-25  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add --compile-std-module.
! 
! 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/120052
! 	* c-ubsan.cc (ubsan_instrument_bounds): For VLAs use
! 	1 instead of 0 as first IFN_UBSAN_BOUNDS argument and only
! 	use the addend without TYPE_MAX_VALUE (TYPE_DOMAIN (type))
! 	in the 3rd argument.
! 
! 2025-11-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/122624
! 	* c-common.cc (c_common_get_alias_set): Fix up handling of BITINT_TYPE
! 	and non-standard INTEGER_TYPEs.  For unsigned _BitInt(1) always return
! 	-1.  For other unsigned types set TYPE_ALIAS_SET to get_alias_set of
! 	corresponding signed type and return that.  For signed types check if
! 	corresponding unsigned type has TYPE_ALIAS_SET_KNOWN_P and if so copy
! 	its TYPE_ALIAS_SET and return that.
! 
! 2025-11-25  Kito Cheng  <kito.cheng@sifive.com>
! 
! 	* c-opts.cc (c_common_post_options): Skip register_include_chains
! 	when cpp_opts->preprocessed is set.
! 
! 2025-11-22  Sandra Loosemore  <sloosemore@baylibre.com>
! 	    Julian Brown  <julian@codesourcery.com>
! 	    waffl3x  <waffl3x@baylibre.com>
! 
! 	* c-omp.cc (c_omp_directives): Uncomment "begin declare variant"
! 	and "end declare variant".
! 
! 2025-11-11  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-warn.cc (warn_parms_array_mismatch): Split out body of
! 	per-pair in parameter lists iteration into...
! 	(warn_parm_array_mismatch): ...this new function.
! 
! 2025-11-11  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-warn.cc (warn_parms_array_mismatch): Reduce scope of local
! 	variable.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* c.opt.urls: Regenerated.
! 
! 2025-11-10  Alejandro Colomar  <alx@kernel.org>
! 
! 	PR c/122591
! 	* c-common.cc (c_countof_type): Convert return value to size_t.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* c.opt (fmodule-version-ignore): Mark as "Undocumented".
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* c.opt: (fdeps-format=): Add RejectNegative.
! 	(fdeps-file=): Likewise.
! 	(fdeps-target=): Likewise.
! 	(Walloc-size-larger-than=): Likewise.
! 	(Wno-alloc-size-larger-than): Likewise.
! 	(Walloca-larger-than=): Likewise.
! 	(Wno-alloca-larger-than): Likewise.
! 	(Woverloaded-virtual=): Likewise.
! 	(Wvla-larger-than=): Likewise.
! 	(Wno-vla-larger-than): Likewise.
! 	(fopenacc-dim=): Likewise.
! 	(femit-struct-debug-baseonly): Likewise.
! 	(femit-struct-debug-reduced): Likewise.
! 	(femit-struct-debug-detailed=): Likewise.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* c.opt (Wsynth): Mark as "Ignore".
! 
! 2025-11-10  Tejas Belagod  <tejas.belagod@arm.com>
! 
! 	* c-common.cc (c_build_vec_convert): Support vector boolean
! 	types for __builtin_convertvector ().
! 
! 2025-11-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/119064
! 	* c-cppbuiltin.cc (c_cpp_builtins): Revert 2025-07-11
! 	changes.
! 
! 2025-11-10  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR preprocessor/105608
! 	* c-opts.cc (c_finish_options): Set new member
! 	line_table->cmdline_location.
! 	* c-pch.cc (c_common_read_pch): Adapt linemap usage to changes in
! 	libcpp pch.cc; it is now possible that the linemap is in a different
! 	file after returning from cpp_read_state().
! 
! 2025-11-05  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	PR c++/121574
! 	* c.opt: New warning '-Wexpose-global-module-tu-local'.
! 	* c.opt.urls: Regenerate.
! 
! 2025-11-04  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-warn.cc (warn_parms_array_mismatch): Fix typos in comment.
! 
! 2025-11-04  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c-common.h (warn_parm_array_mismatch):
! 	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.
! 	* c-warn.cc (warn_parm_array_mismatch):
! 	Rename warn_parm_array_mismatch => warn_parms_array_mismatch.
! 
! 2025-10-30  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): Allow counted_by for
! 	void pointer. Issue warnings when -Wpointer-arith is present.
! 
! 2025-10-27  Richard Biener  <rguenther@suse.de>
! 
! 	PR middle-end/122325
! 	* c-opts.cc (c_common_init_options_struct): Remove set of
! 	flag_default_complex_method.
! 
! 2025-10-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/122302
! 	* c-common.cc (braced_list_to_string): Call copy_node on RAW_DATA_CST
! 	before changing RAW_DATA_POINTER and RAW_DATA_LENGTH on it.
! 
! 2025-10-21  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_omp_directives): Uncomment 'declare mapper',
! 	add comment to 'begin metadirective', add 6.x unimplemented
! 	directives as comment-out entries.
! 
! 2025-10-17  Josef Melcr  <jmelcr02@gmail.com>
! 
! 	* c-attribs.cc: Define callback attr.
! 
! 2025-10-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c.opt (Wflex-array-member-not-at-end, Wignored-qualifiers,
! 	Wopenacc-parallelism, Wstrict-flex-arrays, Wsync-nand,
! 	fstrict-flex-arrays, fstrict-flex-arrays=): Enable also for ObjC and
! 	ObjC++ next to C and C++.
! 	(Wmisleading-indentation, Wopenmp-simd): Likewise.  Also change
! 	LangEnabledBy from just C C++ to C ObjC C++ ObjC++.
! 	(Wplacement-new, Wplacement-new=, fcontract-assumption-mode=,
! 	fcontract-build-level=, fcontract-strict-declarations=,
! 	fcontract-mode=, fcontract-continuation-mode=, fcontract-role=,
! 	fcontract-semantic=, fcoroutines, flang-info-include-translate,
! 	flang-info-include-translate-not, flang-info-include-translate=,
! 	flang-info-module-cmi, flang-info-module-cmi=): Enable also
! 	for ObjC++ next to C++.
! 
! 2025-10-13  Iain Sandoe  <iain@sandoe.co.uk>
! 
! 	* c.opt: Enable Wignored-attributes for Objective-C and
! 	Objective-C++.
! 
! 2025-10-09  David Faust  <david.faust@oracle.com>
! 
! 	* c-attribs.cc (c_common_attribute_table): Add btf_decl_tag and
! 	btf_type_tag attributes.
! 	(handle_btf_decl_tag_attribute): New handler for btf_decl_tag.
! 	(hanlde_btf_type_tag_attribute): New handler for btf_type_tag.
! 	(btf_tag_args_ok): Helper for new attribute handlers.
! 
! 2025-10-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* c-common.h (D_CXX26): Define.
! 	* c-common.cc (c_common_resword): Add D_CXX26 to
! 	__builtin_c23_va_start flags, mention D_CXX26 in comment.
! 
! 2025-10-09  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/122188
! 	* c-gimplify.cc (c_gimplify_expr): Also gimplify the second operand
! 	before the COND_EXPR and use in COND_EXPR result of gimplification.
! 
! 2025-10-09  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc: Define INCLUDE_VECTOR.
! 
! 2025-10-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/122188
! 	* c-gimplify.cc (c_gimplify_expr): Gimplify CALL_EXPR_ARG (*expr_p, 0)
! 	instead of calling save_expr on it.
! 
! 2025-10-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/114457
! 	* c-opts.cc (c_common_post_options): For C++26 set
! 	flag_auto_var_init to AUTO_INIT_CXX26 if not specified explicitly.
! 	For C++ disable warn_trivial_auto_var_init.
! 
! 2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>
! 
! 	PR c++/117658
! 	* c.opt: New flag '-Wexternal-tu-local'.
! 	* c.opt.urls: Regenerate.
! 
! 2025-10-02  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-attribs.cc (attr_target_clones_exclusions): Add simd and omp
! 	exclusions.
! 	(attr_target_version_exclusions): New definition with simd and omp
! 	exclusions.
! 	(attr_omp_declare_simd_exclusions): New definition with target_version
! 	and clones exclusions.
! 	(attr_simd_exclusions): Ditto.
! 	(c_common_gnu_attributes): Add new target_version, simd, and omp
! 	declare simd variables.
! 
! 2025-10-01  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c.opt.urls: Regenerate
! 
! 2025-09-26  Alejandro Colomar  <alx@kernel.org>
! 
! 	* c.opt: Add -Wmultiple-parameter-fwd-decl-lists
! 
! 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-attribs.cc: Add support for target_version and target_clone mixing.
! 
! 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-pretty-print.cc (pp_c_function_target_version): New function.
! 	(pp_c_function_target_clones): New function.
! 	(pp_c_maybe_whitespace): Move to c-pretty-print.h.
! 	* c-pretty-print.h (pp_c_function_target_version): New function.
! 	(pp_c_function_target_clones): New function.
! 	(pp_c_maybe_whitespace): Moved here from c-pretty-print.cc.
! 
! 2025-09-23  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-attribs.cc (handle_target_clones_attribute): Update to use new hook.
! 
! 2025-09-08  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/121544
! 	* c-ada-spec.cc (dump_ada_node) <POINTER_TYPE>: Dump the name of
! 	anonymous tagged pointed-to types specially.
! 	(dump_nested_type) <POINTER_TYPE>: Recurse on anonymous pointed-to
! 	types declared in the same file.
! 	Set TREE_VISITED on the underlying DECL of the field type, if any.
! 
! 2025-08-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/121520
! 	* c-cppbuiltin.cc (c_cpp_builtins): Properly call cpp_warn
! 	for __STDCPP_FLOAT<NN>_T__ if FLOATN_NX_TYPE_NODE (i) is NULL
! 	for C++23 for non-extended types and don't call cpp_warn for
! 	extended types.
! 
! 2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>
! 
! 	* c-attribs.cc (add_no_sanitize_value): Use 'sanitize_code_type'
! 	instead of 'unsigned int'.
! 	(handle_no_sanitize_attribute): Likewise.
! 	(handle_no_sanitize_address_attribute): Likewise.
! 	(handle_no_sanitize_thread_attribute): Likewise.
! 	(handle_no_address_safety_analysis_attribute): Likewise.
! 	* c-common.h (add_no_sanitize_value): Likewise.
! 
! 2025-08-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/121552
! 	* c.opt (Wnon-c-typedef-for-linkage): New option.
! 	* c.opt.urls: Regenerate.
! 
! 2025-08-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/120778
! 	PR target/121520
! 	* c-cppbuiltin.cc (c_cpp_builtins): Implement C++26 DR 2581.  Add
! 	cpp_define_warn lambda and use it as well as cpp_warn where needed.
! 	In the if (c_dialect_cxx ()) block with __cpp_* predefinitions add
! 	cpp_define lambda.  Formatting fixes.
! 
! 2025-08-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-gimplify.cc (is_address_with_access_with_size): New function.
! 	(ubsan_walk_array_refs_r): Instrument an INDIRECT_REF whose base
! 	address is .ACCESS_WITH_SIZE or an address computation whose base
! 	address is .ACCESS_WITH_SIZE.
! 	* c-ubsan.cc (ubsan_instrument_bounds_pointer_address): New function.
! 	(struct factor_t): New structure.
! 	(get_factors_from_mul_expr): New function.
! 	(get_index_from_offset): New function.
! 	(get_index_from_pointer_addr_expr): New function.
! 	(is_instrumentable_pointer_array_address): New function.
! 	(ubsan_array_ref_instrumented_p): Change prototype.
! 	Handle MEM_REF in addtional to ARRAY_REF.
! 	(ubsan_maybe_instrument_array_ref): Handle MEM_REF in addtional
! 	to ARRAY_REF.
! 
! 2025-08-15  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): Accept counted_by
! 	attribute for pointer fields.
! 
! 2025-08-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/120776
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_expansion_statements=202506L for C++26.
! 
! 2025-08-08  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-indentation.cc (should_warn_for_misleading_indentation):
! 	Update for moving diagnostics::context::m_tabstop into
! 	diagnostics::column_options.
! 	* c-opts.cc (c_common_post_options): Likewise.
! 
! 2025-08-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/117783
! 	* c-cppbuiltin.cc (c_cpp_builtins): Change __cpp_structured_bindings
! 	predefined value for C++26 from 202403L to 202411L.
! 
! 2025-08-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR preprocessor/120778
! 	* c.opt (Wkeyword-macro): New option.
! 	* c.opt.urls: Regenerate.
! 	* c-common.h (cxx_dialect): Comment formatting fix.
! 	* c-opts.cc (c_common_post_options): Default to
! 	-Wkeyword-macro for C++26 if pedantic.
! 
! 2025-08-06  Alexandre Oliva  <oliva@adacore.com>
! 
! 	* c-attribs.cc (handle_hardbool_attribute): Create distinct
! 	enumeration types, with structural equality.  Handle
! 	base type qualifiers.
! 
! 2025-08-02  Martin Uecker  <uecker@tugraz.at>
! 
! 	* c-attribs.cc (handle_argspec_attribute): Update.
! 	(build_arg_spec): New function.
! 	(build_attr_access_from_parms): Rewrite `arg spec' handling.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Make diagnostics::context::m_source_printing
! 	private.
! 	* c-format.cc: Likewise.
! 	* c-opts.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Update usage of "diagnostic_info" to explicitly
! 	refer to "diagnostics::diagnostic_info".
! 	* c-opts.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-format.cc: Update for file_cache and char_span moving from
! 	input.h to diagnostics/file-cache.h and into the "diagnostics::"
! 	namespace.
! 	* c-indentation.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc (c_family_tests): Add include of
! 	"diagnostics/diagnostics-selftests.h".  Replace
! 	c_diagnostic_cc_tests with
! 	diagnostics::selftest::context_cc_tests.
! 	* c-common.h: Drop c_diagnostic_cc_tests decl.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Update for diagnostic_t becoming
! 	enum class diagnostics::kind.
! 	* c-format.cc: Likewise.
! 	* c-lex.cc: Likewise.
! 	* c-opts.cc: Likewise.
! 	* c-pragma.cc: Likewise.
! 	* c-warn.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Update for renaming of diagnostic_option_id to
! 	diagnostics::option_id.
! 	* c-common.h: Likewise.
! 	* c-cppbuiltin.cc: Likewise.
! 	* known-headers.cc: Likewise.
! 	* known-headers.h: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.cc: Update comment for renaming of edit_context.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-format.cc (test_type_mismatch_range_labels): Update for
! 	move of selftest::test_diagnostic_context to
! 	diagnostics::selftest::test_context.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-format.cc: Update for move of selftest-diagnostic.h to
! 	diagnostics/selftest-context.h.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-common.h: Update for diagnostic_context becoming
! 	diagnostics::context.
! 	* c-opts.cc: Likewise.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc (c_diagnostic_text_finalizer): Add "m_" prefix to
! 	fields of diagnostic_info.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc: Update for move of "diagnostic-macro-unwinding.h"
! 	to "diagnostics/macro-unwinding.h".
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc: Update for move of diagnostics output formats into
! 	namespace "diagnostics" as "sinks".
! 
! 2025-07-16  Kwok Cheung Yeung  <kcyeung@baylibre.com>
! 
! 	* c-omp.cc (c_finish_omp_depobj): Use OMP_ITERATOR_DECL_P.
! 
! 2025-07-16  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-attribs.cc (handle_target_clones_attribute): Change to use
! 	get_clone_versions.
! 
! 2025-07-16  Alfie Richards  <alfie.richards@arm.com>
! 
! 	* c-format.cc (local_string_slice_node): New node type.
! 	(asm_fprintf_char_table): New entry.
! 	(init_dynamic_diag_info): Add support for string_slice.
! 	* c-format.h (T_STRING_SLICE): New node type.
! 
! 2025-07-15  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
! 
! 	PR c/44677
! 	* c-opts.cc (c_common_post_options): Change
! 	warn_unused_but_set_parameter and warn_unused_but_set_variable
! 	from 1 to 3 if they were set only implicitly.
! 	* c-attribs.cc (build_attr_access_from_parms): Remove unused
! 	but set variable nelts.
  
  2025-07-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR c++/119064
! 	* c.opt (Wc++26-compat): New option.
! 	* c.opt.urls: Regenerate.
! 	* c-opts.cc (c_common_post_options): Clear warn_cxx26_compat for
! 	C++26 or later.
! 	* c-cppbuiltin.cc (c_cpp_builtins): For C++26 predefine
! 	__cpp_trivial_relocatability=202502L.
! 
! 2025-07-10  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/117785
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_constexpr_exceptions=202411L for C++26.
! 
! 2025-07-10  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-ubsan.cc (get_bound_from_access_with_size): Adjust the position
! 	of the arguments per the new design.
! 
! 2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	Revert:
! 	2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): Accept counted_by
! 	attribute for pointer fields.
! 
! 2025-07-07  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	Revert:
! 	2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-gimplify.cc (is_address_with_access_with_size): New function.
! 	(ubsan_walk_array_refs_r): Instrument an INDIRECT_REF whose base
! 	address is .ACCESS_WITH_SIZE or an address computation whose base
! 	address is .ACCESS_WITH_SIZE.
! 	* c-ubsan.cc (ubsan_instrument_bounds_pointer_address): New function.
! 	(struct factor_t): New structure.
! 	(get_factors_from_mul_expr): New function.
! 	(get_index_from_offset): New function.
! 	(get_index_from_pointer_addr_expr): New function.
! 	(is_instrumentable_pointer_array_address): New function.
! 	(ubsan_array_ref_instrumented_p): Change prototype.
! 	Handle MEM_REF in addtional to ARRAY_REF.
! 	(ubsan_maybe_instrument_array_ref): Handle MEM_REF in addtional
! 	to ARRAY_REF.
! 
! 2025-07-07  Jason Merrill  <jason@redhat.com>
! 
! 	PR c++/120917
! 	* c.opt: Add -Wno-abbreviated-auto-in-template-arg.
! 	* c.opt.urls: Regenerate.
! 
! 2025-07-04  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/120837
  	* c-common.cc (pointer_int_sum): Rewrite the intop PLUS_EXPR or
***************
*** 13,29 ****
  	their separate multiplication and then addition/subtraction followed
  	by rest of pointer_int_sum handling after the multiplication.
  
! 2025-05-07  Jason Merrill  <jason@redhat.com>
  
! 	Backported from master:
! 	2025-05-03  Jason Merrill  <jason@redhat.com>
  
  	* c-opts.cc (c_common_post_options): Let plain -Wabi warn
  	about changes in a future version.
  
! 2025-04-25  Release Manager
  
! 	* GCC 15.1.0 released.
  
  2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
  
--- 764,899 ----
  	their separate multiplication and then addition/subtraction followed
  	by rest of pointer_int_sum handling after the multiplication.
  
! 2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
  
! 	* c-gimplify.cc (is_address_with_access_with_size): New function.
! 	(ubsan_walk_array_refs_r): Instrument an INDIRECT_REF whose base
! 	address is .ACCESS_WITH_SIZE or an address computation whose base
! 	address is .ACCESS_WITH_SIZE.
! 	* c-ubsan.cc (ubsan_instrument_bounds_pointer_address): New function.
! 	(struct factor_t): New structure.
! 	(get_factors_from_mul_expr): New function.
! 	(get_index_from_offset): New function.
! 	(get_index_from_pointer_addr_expr): New function.
! 	(is_instrumentable_pointer_array_address): New function.
! 	(ubsan_array_ref_instrumented_p): Change prototype.
! 	Handle MEM_REF in addtional to ARRAY_REF.
! 	(ubsan_maybe_instrument_array_ref): Handle MEM_REF in addtional
! 	to ARRAY_REF.
! 
! 2025-07-01  Qing Zhao  <qing.zhao@oracle.com>
! 
! 	* c-attribs.cc (handle_counted_by_attribute): Accept counted_by
! 	attribute for pointer fields.
! 
! 2025-06-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/120520
! 	PR c/117023
! 	* c-attribs.cc (c_common_gnu_attributes): Allow 2 or 3 arguments for
! 	nonnull_if_nonzero attribute instead of only 2.
! 	(handle_nonnull_if_nonzero_attribute): Handle 3 argument
! 	nonnull_if_nonzero.
! 	* c-common.cc (struct nonnull_arg_ctx): Rename other member to other1,
! 	add other2 member.
! 	(check_function_nonnull): Clear a if nonnull attribute has an
! 	argument.  Adjust for nonnull_arg_ctx changes.  Handle 3 argument
! 	nonnull_if_nonzero attribute.
! 	(check_nonnull_arg): Adjust for nonnull_arg_ctx changes, emit different
! 	diagnostics for 3 argument nonnull_if_nonzero attributes.
! 	(check_function_arguments): Adjust ctx var initialization.
! 
! 2025-06-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/120777
! 	* c-cppbuiltin.cc (c_cpp_builtins): Predefine
! 	__cpp_constexpr_virtual_inheritance=202506L for C++26.
! 
! 2025-06-26  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* c-opts.cc (c_common_diagnostics_set_defaults): Use
! 	diagnostic_context::set_permissive_option.
! 
! 2025-06-23  Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-omp.cc (c_finish_oacc_wait): Handle if clause.
! 
! 2025-06-16  Jason Merrill  <jason@redhat.com>
! 
! 	* c.opt: Add -Wsfinae-incomplete.
! 	* c.opt.urls: Regenerate.
! 
! 2025-06-12  Gwenole Beauchesne  <gb.devel@gmail.com>
! 	    Andrew Pinski  <quic_apinski@quicinc.com>
! 
! 	PR c++/41201
! 	PR c++/48026
! 	* c-pragma.cc (init_pragma): Use c_register_pragma_with_early_handler
! 	instead of c_register_pragma for `#pragma GCC optimize`.
! 
! 2025-06-03  Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/120078
! 	* c.opt (Wjump-misses-init): Fix typo.
! 
! 2025-05-30  Julian Brown  <julian@codesourcery.com>
! 	    Tobias Burnus  <tburnus@baylibre.com>
! 
! 	* c-common.h (c_omp_region_type): Add C_ORT_DECLARE_MAPPER and
! 	C_ORT_OMP_DECLARE_MAPPER codes.
! 	(omp_mapper_list): Add forward declaration.
! 	(c_omp_find_nested_mappers, c_omp_instantiate_mappers): Add prototypes.
! 	* c-omp.cc (c_omp_find_nested_mappers): New function.
! 	(remap_mapper_decl_info): New struct.
! 	(remap_mapper_decl_1, omp_instantiate_mapper,
! 	c_omp_instantiate_mappers): New functions.
! 
! 2025-05-27  Alejandro Colomar  <alx@kernel.org>
! 	    Martin Uecker  <uecker@tugraz.at>
! 
! 	PR c/117025
! 	* c-common.h (enum rid): Add RID_COUNTOF.
! 	(c_countof_type): New function prototype.
! 	* c-common.def (COUNTOF_EXPR): New tree.
! 	* c-common.cc (c_common_reswords): Add RID_COUNTOF entry.
! 	(c_countof_type): New function.
! 
! 2025-05-23  Jason Merrill  <jason@redhat.com>
! 
! 	* c-format.cc (flag_chars_t::validate): Control quoting warnings
! 	with -Wformat-diag.
! 
! 2025-05-15  Jason Merrill  <jason@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Set flag_coroutines.
! 	(set_std_cxx20, set_std_cxx23, set_std_cxx26): Not here.
! 
! 2025-05-03  Jason Merrill  <jason@redhat.com>
  
  	* c-opts.cc (c_common_post_options): Let plain -Wabi warn
  	about changes in a future version.
  
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
  
! 	* c-pretty-print.cc: Drop include of "make-unique.h".
! 	Replace uses of ::make_unique with std::make_unique.
! 
! 2025-04-28  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* name-hint.h (name_hint::name_hint): Use std::unique_ptr for
! 	param.
! 
! 2025-04-28  Lewis Hyatt  <lhyatt@gmail.com>
! 
! 	PR c/118838
! 	* c-lex.cc (cb_def_pragma): Call cpp_get_diagnostic_override_loc()
! 	to get a valid location at which to issue -Wunknown-pragmas, in case
! 	it was triggered from a _Pragma.
! 
! 2025-04-25  Jason Merrill  <jason@redhat.com>
! 
! 	* c-opts.cc (c_common_post_options): Bump default ABI to 21
! 	and compat ABI to 18.
  
  2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>
  
***************
*** 16128,16134 ****
  	* 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
--- 16998,17004 ----
  	* c-common.c: Include gt-c-family-c-common.h.
  	* c-pragma.c: Include gt-c-family-c-pragma.h.
  
! Copyright (C) 2010-2026 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-15.2.0/gcc/c-family/c-ada-spec.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-ada-spec.cc
*** gcc-15.2.0/gcc/c-family/c-ada-spec.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-ada-spec.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 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-2026 Free Software Foundation, Inc.
     Adapted from tree-pretty-print.cc by Arnaud Charlet  <charlet@adacore.com>
  
  This file is part of GCC.
*************** dump_ada_node (pretty_printer *pp, tree
*** 2442,2449 ****
  			  break;
  		      }
  
! 		  dump_ada_node (pp, ref_type, ref_type, spc, is_access,
! 				 true);
  		}
  	    }
  	}
--- 2442,2455 ----
  			  break;
  		      }
  
! 		  /* Dump anonymous tagged types specially.  */
! 		  if (TYPE_NAME (ref_type)
! 		      || (!RECORD_OR_UNION_TYPE_P (ref_type)
! 			  && TREE_CODE (ref_type) != ENUMERAL_TYPE))
! 		    dump_ada_node (pp, ref_type, ref_type, spc, is_access,
! 				   true);
! 		  else
! 		    dump_anonymous_type_name (pp, ref_type);
  		}
  	    }
  	}
*************** dump_nested_type (pretty_printer *pp, tr
*** 2699,2705 ****
      {
      case POINTER_TYPE:
        tmp = TREE_TYPE (field_type);
!       dump_forward_type (pp, tmp, t, spc);
        break;
  
      case ARRAY_TYPE:
--- 2705,2720 ----
      {
      case POINTER_TYPE:
        tmp = TREE_TYPE (field_type);
!       decl = get_underlying_decl (tmp);
!       if (TYPE_NAME (tmp) || !decl || DECL_NAME (decl))
! 	dump_forward_type (pp, tmp, t, spc);
!       else if (DECL_SOURCE_FILE (decl) == DECL_SOURCE_FILE (t)
! 	       && !TREE_VISITED (decl))
! 	{
! 	  /* Generate full declaration.  */
! 	  dump_nested_type (pp, decl, t, spc);
! 	  TREE_VISITED (decl) = 1;
! 	}
        break;
  
      case ARRAY_TYPE:
*************** dump_nested_type (pretty_printer *pp, tr
*** 2773,2778 ****
--- 2788,2798 ----
      default:
        break;
      }
+ 
+   /* Make sure not to output the nested type twice in C++.  */
+   decl = get_underlying_decl (field_type);
+   if (decl)
+     TREE_VISITED (decl) = 1;
  }
  
  /* Hash table of overloaded names that we cannot support.  It is needed even
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-ada-spec.h gcc-16.1.0-RC-20260423/gcc/c-family/c-ada-spec.h
*** gcc-15.2.0/gcc/c-family/c-ada-spec.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-ada-spec.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Interface for -fdump-ada-spec capability.
!    Copyright (C) 2010-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-attribs.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-attribs.cc
*** gcc-15.2.0/gcc/c-family/c-attribs.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-attribs.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* C-family attributes handling.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* C-family attributes handling.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 49,54 ****
--- 49,55 ----
  #include "tree-pretty-print.h"
  #include "gcc-rich-location.h"
  #include "gcc-urlifier.h"
+ #include "attr-callback.h"
  
  static tree handle_packed_attribute (tree *, tree, tree, int, bool *);
  static tree handle_nocommon_attribute (tree *, tree, tree, int, bool *);
*************** static tree handle_fd_arg_attribute (tre
*** 189,194 ****
--- 190,198 ----
  static tree handle_flag_enum_attribute (tree *, tree, tree, int, bool *);
  static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree, int, bool *);
  
+ static tree handle_btf_decl_tag_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_btf_type_tag_attribute (tree *, tree, tree, int, bool *);
+ 
  /* Helper to define attribute exclusions.  */
  #define ATTR_EXCL(name, function, type, variable)	\
    { name, function, type, variable }
*************** static const struct attribute_spec::excl
*** 249,260 ****
    ATTR_EXCL ("always_inline", true, true, true),
    ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
  	     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE),
!   ATTR_EXCL ("target_version", true, true, true),
    ATTR_EXCL (NULL, false, false, false),
  };
  
  static const struct attribute_spec::exclusions attr_target_version_exclusions[] =
  {
    ATTR_EXCL ("target_clones", true, true, true),
    ATTR_EXCL (NULL, false, false, false),
  };
--- 253,280 ----
    ATTR_EXCL ("always_inline", true, true, true),
    ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE,
  	     TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE),
!   ATTR_EXCL ("omp declare simd", true, true, true),
!   ATTR_EXCL ("simd", true, true, true),
    ATTR_EXCL (NULL, false, false, false),
  };
  
  static const struct attribute_spec::exclusions attr_target_version_exclusions[] =
  {
+   ATTR_EXCL ("omp declare simd", true, true, true),
+   ATTR_EXCL ("simd", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_omp_declare_simd_exclusions[] =
+ {
+   ATTR_EXCL ("target_version", true, true, true),
+   ATTR_EXCL ("target_clones", true, true, true),
+   ATTR_EXCL (NULL, false, false, false),
+ };
+ 
+ static const struct attribute_spec::exclusions attr_simd_exclusions[] =
+ {
+   ATTR_EXCL ("target_version", true, true, true),
    ATTR_EXCL ("target_clones", true, true, true),
    ATTR_EXCL (NULL, false, false, false),
  };
*************** const struct attribute_spec c_common_gnu
*** 465,470 ****
--- 485,492 ----
  			      handle_tm_attribute, NULL },
    { "transaction_may_cancel_outer", 0, 0, false, true, false, false,
  			      handle_tm_attribute, NULL },
+   { CALLBACK_ATTR_IDENT,      1, -1, true, false, false, false,
+ 			      handle_callback_attribute, NULL },
    /* ??? These two attributes didn't make the transition from the
       Intel language document to the multi-vendor language document.  */
    { "transaction_pure",       0, 0, false, true,  false, false,
*************** const struct attribute_spec c_common_gnu
*** 489,495 ****
  			      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 },
--- 511,517 ----
  			      handle_tls_model_attribute, NULL },
    { "nonnull",                0, -1, false, true, true, false,
  			      handle_nonnull_attribute, NULL },
!   { "nonnull_if_nonzero",     2, 3, false, true, true, false,
  			      handle_nonnull_if_nonzero_attribute, NULL },
    { "nonstring",              0, 0, true, false, false, false,
  			      handle_nonstring_attribute, NULL },
*************** const struct attribute_spec c_common_gnu
*** 543,549 ****
  			      attr_target_exclusions },
    { "target_version",         1, 1, true, false, false, false,
  			      handle_target_version_attribute,
! 			      attr_target_version_exclusions },
    { "target_clones",          1, -1, true, false, false, false,
  			      handle_target_clones_attribute,
  			      attr_target_clones_exclusions },
--- 565,571 ----
  			      attr_target_exclusions },
    { "target_version",         1, 1, true, false, false, false,
  			      handle_target_version_attribute,
! 			      attr_target_version_exclusions},
    { "target_clones",          1, -1, true, false, false, false,
  			      handle_target_clones_attribute,
  			      attr_target_clones_exclusions },
*************** const struct attribute_spec c_common_gnu
*** 570,576 ****
    { "returns_nonnull",        0, 0, false, true, true, false,
  			      handle_returns_nonnull_attribute, NULL },
    { "omp declare simd",       0, -1, true,  false, false, false,
! 			      handle_omp_declare_simd_attribute, NULL },
    { "omp declare variant base", 0, -1, true,  false, false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "omp declare variant variant", 0, -1, true,  false, false, false,
--- 592,599 ----
    { "returns_nonnull",        0, 0, false, true, true, false,
  			      handle_returns_nonnull_attribute, NULL },
    { "omp declare simd",       0, -1, true,  false, false, false,
! 			      handle_omp_declare_simd_attribute,
! 			      attr_omp_declare_simd_exclusions },
    { "omp declare variant base", 0, -1, true,  false, false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "omp declare variant variant", 0, -1, true,  false, false, false,
*************** const struct attribute_spec c_common_gnu
*** 579,585 ****
  			      false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "simd",		      0, 1, true,  false, false, false,
! 			      handle_simd_attribute, NULL },
    { "omp declare target",     0, -1, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target link", 0, 0, true, false, false, false,
--- 602,608 ----
  			      false, false,
  			      handle_omp_declare_variant_attribute, NULL },
    { "simd",		      0, 1, true,  false, false, false,
! 			      handle_simd_attribute, attr_simd_exclusions },
    { "omp declare target",     0, -1, true, false, false, false,
  			      handle_omp_declare_target_attribute, NULL },
    { "omp declare target link", 0, 0, true, false, false, false,
*************** const struct attribute_spec c_common_gnu
*** 640,646 ****
    { "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_common_gnu_attribute_table =
--- 663,673 ----
    { "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},
!   { "btf_type_tag",	      1, 1, false, true, false, false,
! 			      handle_btf_type_tag_attribute, NULL},
!   { "btf_decl_tag",	      1, 1, true, false, false, false,
! 			      handle_btf_decl_tag_attribute, NULL}
  };
  
  const struct scoped_attribute_specs c_common_gnu_attribute_table =
*************** attribute_takes_identifier_p (const_tree
*** 688,701 ****
  {
    const struct attribute_spec *spec = lookup_attribute_spec (attr_id);
    if (spec == NULL)
!     /* Unknown attribute that we'll end up ignoring, return true so we
!        don't complain about an identifier argument.  */
!     return true;
    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);
--- 715,734 ----
  {
    const struct attribute_spec *spec = lookup_attribute_spec (attr_id);
    if (spec == NULL)
!     {
!       /* Unknown attribute that we'll end up ignoring, return true so we
! 	 don't complain about an identifier argument.  Except C++
! 	 annotations.  */
!       if (c_dialect_cxx () && id_equal (attr_id, "annotation "))
! 	return false;
!       return true;
!     }
    else if (!strcmp ("mode", spec->name)
  	   || !strcmp ("format", spec->name)
  	   || !strcmp ("cleanup", spec->name)
  	   || !strcmp ("access", spec->name)
! 	   || !strcmp ("counted_by", spec->name)
! 	   || !strcmp ("old parm name", spec->name))
      return true;
    else
      return targetm.attribute_takes_identifier_p (attr_id);
*************** handle_hardbool_attribute (tree *node, t
*** 1128,1138 ****
      }
  
    tree orig = *node;
!   *node = build_duplicate_type (orig);
  
    TREE_SET_CODE (*node, ENUMERAL_TYPE);
!   ENUM_UNDERLYING_TYPE (*node) = orig;
!   TYPE_CANONICAL (*node) = TYPE_CANONICAL (orig);
  
    tree false_value;
    if (args)
--- 1161,1176 ----
      }
  
    tree orig = *node;
!   /* Drop qualifiers from the base type.  Keep attributes, so that, in the odd
!      chance attributes are applicable and relevant to the base type, if they
!      are specified first, or through a typedef, they wouldn't be dropped on the
!      floor here.  */
!   tree unqual = build_qualified_type (orig, TYPE_UNQUALIFIED);
!   *node = build_distinct_type_copy (unqual);
  
    TREE_SET_CODE (*node, ENUMERAL_TYPE);
!   ENUM_UNDERLYING_TYPE (*node) = unqual;
!   SET_TYPE_STRUCTURAL_EQUALITY (*node);
  
    tree false_value;
    if (args)
*************** handle_hardbool_attribute (tree *node, t
*** 1191,1197 ****
  
    gcc_checking_assert (!TYPE_CACHED_VALUES_P (*node));
    TYPE_VALUES (*node) = values;
!   TYPE_NAME (*node) = orig;
  
    return NULL_TREE;
  }
--- 1229,1242 ----
  
    gcc_checking_assert (!TYPE_CACHED_VALUES_P (*node));
    TYPE_VALUES (*node) = values;
! 
!   if (TYPE_QUALS (orig) != TYPE_QUALS (*node))
!     *node = build_qualified_type (*node, TYPE_QUALS (orig));
! 
!   if (TREE_CODE (orig) == TYPE_DECL)
!     TYPE_NAME (*node) = TYPE_NAME (orig);
!   else
!     TYPE_NAME (*node) = NULL_TREE;
  
    return NULL_TREE;
  }
*************** handle_cold_attribute (tree *node, tree
*** 1409,1431 ****
  /* Add FLAGS for a function NODE to no_sanitize_flags in DECL_ATTRIBUTES.  */
  
  void
! add_no_sanitize_value (tree node, unsigned int flags)
  {
    tree attr = lookup_attribute ("no_sanitize", DECL_ATTRIBUTES (node));
    if (attr)
      {
!       unsigned int old_value = tree_to_uhwi (TREE_VALUE (attr));
        flags |= old_value;
  
        if (flags == old_value)
  	return;
  
!       TREE_VALUE (attr) = build_int_cst (unsigned_type_node, flags);
      }
    else
      DECL_ATTRIBUTES (node)
        = tree_cons (get_identifier ("no_sanitize"),
! 		   build_int_cst (unsigned_type_node, flags),
  		   DECL_ATTRIBUTES (node));
  }
  
--- 1454,1477 ----
  /* Add FLAGS for a function NODE to no_sanitize_flags in DECL_ATTRIBUTES.  */
  
  void
! add_no_sanitize_value (tree node, sanitize_code_type flags)
  {
    tree attr = lookup_attribute ("no_sanitize", DECL_ATTRIBUTES (node));
    if (attr)
      {
!       sanitize_code_type old_value =
! 	tree_to_sanitize_code_type (TREE_VALUE (attr));
        flags |= old_value;
  
        if (flags == old_value)
  	return;
  
!       TREE_VALUE (attr) = build_int_cst (uint64_type_node, flags);
      }
    else
      DECL_ATTRIBUTES (node)
        = tree_cons (get_identifier ("no_sanitize"),
! 		   build_int_cst (uint64_type_node, flags),
  		   DECL_ATTRIBUTES (node));
  }
  
*************** static tree
*** 1436,1442 ****
  handle_no_sanitize_attribute (tree *node, tree name, tree args, int,
  			      bool *no_add_attrs)
  {
!   unsigned int flags = 0;
    *no_add_attrs = true;
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
--- 1482,1488 ----
  handle_no_sanitize_attribute (tree *node, tree name, tree args, int,
  			      bool *no_add_attrs)
  {
!   sanitize_code_type flags = 0;
    *no_add_attrs = true;
    if (TREE_CODE (*node) != FUNCTION_DECL)
      {
*************** handle_no_sanitize_address_attribute (tr
*** 1473,1479 ****
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, SANITIZE_ADDRESS);
  
    return NULL_TREE;
  }
--- 1519,1525 ----
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, (sanitize_code_type) SANITIZE_ADDRESS);
  
    return NULL_TREE;
  }
*************** handle_no_sanitize_thread_attribute (tre
*** 1489,1495 ****
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, SANITIZE_THREAD);
  
    return NULL_TREE;
  }
--- 1535,1541 ----
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, (sanitize_code_type) SANITIZE_THREAD);
  
    return NULL_TREE;
  }
*************** handle_no_address_safety_analysis_attrib
*** 1506,1512 ****
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, SANITIZE_ADDRESS);
  
    return NULL_TREE;
  }
--- 1552,1558 ----
    if (TREE_CODE (*node) != FUNCTION_DECL)
      warning (OPT_Wattributes, "%qE attribute ignored", name);
    else
!     add_no_sanitize_value (*node, (sanitize_code_type) SANITIZE_ADDRESS);
  
    return NULL_TREE;
  }
*************** handle_counted_by_attribute (tree *node,
*** 2906,2927 ****
  		" 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)
      {
--- 2952,3006 ----
  		" declaration %q+D", name, decl);
        *no_add_attrs = true;
      }
!   /* This attribute only applies to a field with array type or pointer type.  */
!   else if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE
! 	   && TREE_CODE (TREE_TYPE (decl)) != POINTER_TYPE)
      {
        error_at (DECL_SOURCE_LOCATION (decl),
! 		"%qE attribute is not allowed for a non-array"
! 		" or non-pointer field", name);
        *no_add_attrs = true;
      }
    /* This attribute only applies to a C99 flexible array member type.  */
!   else if (TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE
! 	   && !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;
      }
+   /* This attribute can be applied to a pointer to void type, but issue
+      warning when -Wpointer-arith is presenting.  */
+   else if (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
+ 	   && TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) == VOID_TYPE)
+     {
+       if (warn_pointer_arith)
+ 	warning_at (DECL_SOURCE_LOCATION (decl),
+ 		    OPT_Wpointer_arith,
+ 		    "%qE attribute is used for a pointer to void",
+ 		    name);
+     }
+   /* This attribute cannot be applied to a pointer to function type.  */
+   else if (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
+ 	   && TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) == FUNCTION_TYPE)
+     {
+       error_at (DECL_SOURCE_LOCATION (decl),
+ 		"%qE attribute is not allowed for a pointer to"
+ 		" function", name);
+       *no_add_attrs = true;
+     }
+   /* This attribute cannot be applied to a pointer to structure or union
+      with flexible array member.  */
+   else if (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE
+ 	   && RECORD_OR_UNION_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))
+ 	   && TYPE_INCLUDES_FLEXARRAY (TREE_TYPE (TREE_TYPE (decl))))
+     {
+ 	error_at (DECL_SOURCE_LOCATION (decl),
+ 		  "%qE attribute is not allowed for a pointer to"
+ 		  " structure or union with flexible array member", name);
+ 	*no_add_attrs = true;
+     }
    /* The argument should be an identifier.  */
    else if (TREE_CODE (argval) != IDENTIFIER_NODE)
      {
*************** handle_counted_by_attribute (tree *node,
*** 2930,2936 ****
        *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));
--- 3009,3016 ----
        *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 or
!      pointer field.  */
    else if (old_counted_by != NULL_TREE)
      {
        tree old_fieldname = TREE_VALUE (TREE_VALUE (old_counted_by));
*************** handle_argspec_attribute (tree *, tree,
*** 4120,4129 ****
  {
    /* Verify the attribute has one or two arguments and their kind.  */
    gcc_assert (args && TREE_CODE (TREE_VALUE (args)) == STRING_CST);
!   for (tree next = TREE_CHAIN (args); next; next = TREE_CHAIN (next))
      {
!       tree val = TREE_VALUE (next);
!       gcc_assert (DECL_P (val) || EXPR_P (val));
      }
    return NULL_TREE;
  }
--- 4200,4210 ----
  {
    /* Verify the attribute has one or two arguments and their kind.  */
    gcc_assert (args && TREE_CODE (TREE_VALUE (args)) == STRING_CST);
!   if (TREE_CHAIN (args))
      {
!       tree val = TREE_VALUE (TREE_CHAIN (args));
!       gcc_assert (!TREE_CHAIN (TREE_CHAIN (args)));
!       gcc_assert (TYPE_P (val));
      }
    return NULL_TREE;
  }
*************** handle_nonnull_if_nonzero_attribute (tre
*** 5034,5045 ****
    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;
--- 5115,5135 ----
    tree type = *node;
    tree pos = TREE_VALUE (args);
    tree pos2 = TREE_VALUE (TREE_CHAIN (args));
+   tree chain2 = TREE_CHAIN (TREE_CHAIN (args));
+   tree pos3 = NULL_TREE;
+   if (chain2)
+     pos3 = TREE_VALUE (chain2);
    tree val = positional_argument (type, name, pos, POINTER_TYPE, 1);
    tree val2 = positional_argument (type, name, pos2, INTEGER_TYPE, 2);
!   tree val3 = NULL_TREE;
!   if (chain2)
!     val3 = positional_argument (type, name, pos3, INTEGER_TYPE, 3);
!   if (val && val2 && (!chain2 || val3))
      {
        TREE_VALUE (args) = val;
        TREE_VALUE (TREE_CHAIN (args)) = val2;
+       if (chain2)
+ 	TREE_VALUE (chain2) = val3;
      }
    else
      *no_add_attrs = true;
*************** handle_null_terminated_string_arg_attrib
*** 5101,5106 ****
--- 5191,5297 ----
    return NULL_TREE;
  }
  
+ /* Common argument checking for btf_type_tag and btf_decl_tag.
+    Return true if the ARGS are valid, otherwise emit an error and
+    return false.  */
+ 
+ static bool
+ btf_tag_args_ok (tree name, tree args)
+ {
+   if (!args) /* Correct number of args (1) is checked for us.  */
+     return false;
+   else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST)
+     {
+       error ("%qE attribute requires a string argument", name);
+       return false;
+     }
+ 
+   /* Only narrow character strings are accepted.  */
+   tree argtype = TREE_TYPE (TREE_TYPE (TREE_VALUE (args)));
+   if (!(argtype == char_type_node
+ 	|| argtype == char8_type_node
+ 	|| argtype == signed_char_type_node
+ 	|| argtype == unsigned_char_type_node))
+     {
+       error ("unsupported wide string type argument in %qE attribute", name);
+       return false;
+     }
+ 
+   return true;
+ }
+ 
+ /* Handle the "btf_decl_tag" attribute.  */
+ 
+ static tree
+ handle_btf_decl_tag_attribute (tree * ARG_UNUSED (node), tree name, tree args,
+ 			       int ARG_UNUSED (flags), bool *no_add_attrs)
+ {
+   if (!btf_tag_args_ok (name, args))
+     *no_add_attrs = true;
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Handle the "btf_type_tag" attribute.  */
+ 
+ static tree
+ handle_btf_type_tag_attribute (tree *node, tree name, tree args,
+ 			       int flags, bool *no_add_attrs)
+ {
+   if (!btf_tag_args_ok (name, args))
+     {
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE)
+     {
+       warning (OPT_Wattributes,
+ 	       "%qE attribute does not apply to functions", name);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+ 
+   /* Ensure a variant type is always created to hold the type_tag,
+      unless ATTR_FLAG_IN_PLACE is set.  Same logic as in
+      common_handle_aligned_attribute.  */
+   tree decl = NULL_TREE;
+   tree *type = NULL;
+   bool is_type = false;
+ 
+   if (DECL_P (*node))
+     {
+       decl = *node;
+       type = &TREE_TYPE (decl);
+       is_type = TREE_CODE (*node) == TYPE_DECL;
+     }
+   else if (TYPE_P (*node))
+     type = node, is_type = true;
+ 
+   if (is_type)
+     {
+       if ((flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
+ 	/* OK, modify the type in place.  */;
+ 
+       /* If we have a TYPE_DECL, then copy the type, so that we
+ 	 don't accidentally modify a builtin type.  See pushdecl.  */
+       else if (decl && TREE_TYPE (decl) != error_mark_node
+ 	       && DECL_ORIGINAL_TYPE (decl) == NULL_TREE)
+ 	{
+ 	  tree tt = TREE_TYPE (decl);
+ 	  *type = build_variant_type_copy (*type);
+ 	  DECL_ORIGINAL_TYPE (decl) = tt;
+ 	  TYPE_NAME (*type) = decl;
+ 	  TREE_USED (*type) = TREE_USED (decl);
+ 	  TREE_TYPE (decl) = *type;
+ 	}
+       else
+ 	*type = build_variant_type_copy (*type);
+     }
+ 
+   return NULL_TREE;
+ }
+ 
  /* Handle the "nonstring" variable attribute.  */
  
  static tree
*************** handle_access_attribute (tree node[3], t
*** 5727,5732 ****
--- 5918,5988 ----
    return NULL_TREE;
  }
  
+ 
+ /* This function builds a string which is concatenated to SPEC and returns
+    list of variably bounds corresponding to an array/VLA parameter with
+    type TYPE.  The string consists of one dollar symbol for each specified
+    variable bound, one asterisk for each unspecified variable bound,
+    a space for an array of unknown size (only possibly for the outermost),
+    and a zero for a zero-sized array.
+ 
+    The chainof variable bounds starts with the most significant bound.
+    For example, the TYPE T[2][m][3][n] will produce "$$" and (m, (n, nil)).  */
+ 
+ static tree
+ build_arg_spec (tree type, std::string *spec)
+ {
+   while (POINTER_TYPE_P (type))
+     type = TREE_TYPE (type);
+ 
+   if (TREE_CODE (type) != ARRAY_TYPE)
+     return NULL_TREE;
+ 
+   tree list = build_arg_spec (TREE_TYPE (type), spec);
+ 
+   if (!COMPLETE_TYPE_P (type))
+     {
+       (*spec) += ' ';
+       return list;
+     }
+ 
+   tree mval = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
+ 
+   if (!mval)
+     {
+      (*spec) += '0';
+      return list;
+     }
+ 
+   if (TREE_CODE (mval) == COMPOUND_EXPR
+       && integer_zerop (TREE_OPERAND (mval, 0))
+       && integer_zerop (TREE_OPERAND (mval, 1)))
+     {
+       (*spec) += '*';
+       return list;
+     }
+ 
+   if (TREE_CODE (mval) == INTEGER_CST)
+     return list;
+ 
+   /* A variable bound.  */
+   (*spec) += '$';
+ 
+   mval = array_type_nelts_top (type);
+ 
+   /* Remove NOP_EXPR and SAVE_EXPR to uncover possible PARM_DECLS.  */
+   if (TREE_CODE (mval) == NOP_EXPR)
+     mval = TREE_OPERAND (mval, 0);
+    if (TREE_CODE (mval) == SAVE_EXPR)
+     {
+       mval = TREE_OPERAND (mval, 0);
+       if (TREE_CODE (mval) == NOP_EXPR)
+ 	mval = TREE_OPERAND (mval, 0);
+     }
+ 
+   return tree_cons (NULL_TREE, mval, list);
+ }
+ 
  /* Extract attribute "arg spec" from each FNDECL argument that has it,
     build a single attribute access corresponding to all the arguments,
     and return the result.  SKIP_VOIDPTR set to ignore void* parameters
*************** build_attr_access_from_parms (tree parms
*** 5803,5817 ****
        argspec = TREE_VALUE (argspec);
  
        /* The attribute arg spec string.  */
!       tree str = TREE_VALUE (argspec);
!       const char *s = TREE_STRING_POINTER (str);
  
        /* Collect the list of nonnull arguments which use "[static ..]".  */
!       if (s != NULL && s[0] == '[' && s[1] == 's')
  	nnlist = tree_cons (NULL_TREE, build_int_cst (integer_type_node,
  						      argpos + 1), nnlist);
  
!       /* Create the attribute access string from the arg spec string,
  	 optionally followed by position of the VLA bound argument if
  	 it is one.  */
        {
--- 6059,6074 ----
        argspec = TREE_VALUE (argspec);
  
        /* The attribute arg spec string.  */
!       const char *s = TREE_STRING_POINTER (TREE_VALUE (argspec));
!       bool static_p = s && (0 == strcmp("static", s));
  
        /* Collect the list of nonnull arguments which use "[static ..]".  */
!       if (static_p)
  	nnlist = tree_cons (NULL_TREE, build_int_cst (integer_type_node,
  						      argpos + 1), nnlist);
  
!       tree argvbs;
!       /* Create the attribute access string from the arg spec data,
  	 optionally followed by position of the VLA bound argument if
  	 it is one.  */
        {
*************** build_attr_access_from_parms (tree parms
*** 5822,5842 ****
  	    specend = 1;
  	  }
  
! 	/* Format the access string in place.  */
! 	int len = snprintf (NULL, 0, "%c%u%s",
! 			    attr_access::mode_chars[access_deferred],
! 			    argpos, s);
! 	spec.resize (specend + len + 1);
! 	sprintf (&spec[specend], "%c%u%s",
! 		 attr_access::mode_chars[access_deferred],
! 		 argpos, s);
  	/* Trim the trailing NUL.  */
! 	spec.resize (specend + len);
        }
  
        /* The (optional) list of expressions denoting the VLA bounds
  	 N in ARGTYPE <arg>[Ni]...[Nj]...[Nk].  */
-       tree argvbs = TREE_CHAIN (argspec);
        if (argvbs)
  	{
  	  spec += ',';
--- 6079,6130 ----
  	    specend = 1;
  	  }
  
! 	spec += attr_access::mode_chars[access_deferred];
! 	spec += std::to_string (argpos);
! 	spec += '[';
! 	tree type = TREE_VALUE (TREE_CHAIN (argspec));
! 	argvbs = build_arg_spec (type, &spec);
! 
! 	/* Postprocess the string to bring it in the format expected
! 	   by the code handling the access attribute.  First, we
! 	   add 's' if the array was declared as [static ...].  */
! 	if (static_p)
! 	  {
! 	    size_t send = spec.length();
! 
! 	    if (spec[send - 1] == '[')
! 	      {
! 		spec += 's';
! 	      }
! 	    else
! 	      {
! 		/* If there is a symbol, we need to swap the order.  */
! 		spec += spec[send - 1];
! 		spec[send - 1] = 's';
! 	      }
! 	  }
! 
! 	/* If the outermost bound is an integer constant, we need to write
! 	   the size  if it is constant.  */
! 	if (type && TYPE_DOMAIN (type))
! 	  {
! 	    tree mval = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
! 	    if (mval && TREE_CODE (mval) == INTEGER_CST)
! 	      {
! 		char buf[40];
! 		unsigned HOST_WIDE_INT n = tree_to_uhwi (mval) + 1;
! 		sprintf (buf, HOST_WIDE_INT_PRINT_UNSIGNED, n);
! 		spec += buf;
! 	      }
! 	  }
! 	spec += ']';
! 
  	/* Trim the trailing NUL.  */
! 	spec.resize (spec.length ());
        }
  
        /* The (optional) list of expressions denoting the VLA bounds
  	 N in ARGTYPE <arg>[Ni]...[Nj]...[Nk].  */
        if (argvbs)
  	{
  	  spec += ',';
*************** build_attr_access_from_parms (tree parms
*** 5849,5856 ****
  	     order.  */
  	  vblist = tree_cons (NULL_TREE, argvbs, vblist);
  
! 	  unsigned nelts = 0;
! 	  for (tree vb = argvbs; vb; vb = TREE_CHAIN (vb), ++nelts)
  	    {
  	      tree bound = TREE_VALUE (vb);
  	      if (const unsigned *psizpos = arg2pos.get (bound))
--- 6137,6143 ----
  	     order.  */
  	  vblist = tree_cons (NULL_TREE, argvbs, vblist);
  
! 	  for (tree vb = argvbs; vb; vb = TREE_CHAIN (vb))
  	    {
  	      tree bound = TREE_VALUE (vb);
  	      if (const unsigned *psizpos = arg2pos.get (bound))
*************** handle_target_clones_attribute (tree *no
*** 6132,6141 ****
  	    }
  	}
  
!       if (get_target_clone_attr_len (args) == -1)
  	{
! 	  warning (OPT_Wattributes,
! 		   "single %<target_clones%> attribute is ignored");
  	  *no_add_attrs = true;
  	}
        else
--- 6419,6443 ----
  	    }
  	}
  
!       int num_defaults = 0;
!       auto_vec<string_slice> versions = get_clone_attr_versions
! 					  (args,
! 					   &num_defaults,
! 					   false);
! 
!       for (auto v : versions)
! 	targetm.check_target_clone_version
! 	  (v, &DECL_SOURCE_LOCATION (*node));
! 
!       /* Lone target_clones version is always ignored for target attr semantics.
! 	 Only ignore under target_version semantics if it is a default
! 	 version.  */
!       if (versions.length () == 1
! 	  && (TARGET_HAS_FMV_TARGET_ATTRIBUTE || num_defaults == 1))
  	{
! 	  if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
! 	    warning (OPT_Wattributes,
! 		     "single %<target_clones%> attribute is ignored");
  	  *no_add_attrs = true;
  	}
        else
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-common.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-common.cc
*** gcc-15.2.0/gcc/c-family/c-common.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-common.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Subroutines shared by all languages that are variants of C.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 56,61 ****
--- 56,62 ----
  #include "tree-pretty-print-markup.h"
  #include "gcc-rich-location.h"
  #include "gcc-urlifier.h"
+ #include "diagnostics/diagnostics-selftests.h"
  
  cpp_reader *parse_in;		/* Declared in c-pragma.h.  */
  
*************** machine_mode c_default_pointer_mode = VO
*** 102,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;
--- 103,109 ----
  	tree dfloat32_type_node;
  	tree dfloat64_type_node;
  	tree dfloat128_type_node;
! 	tree dfloat64x_type_node;
  
  	tree intQI_type_node;
  	tree intHI_type_node;
*************** const char *constant_string_class_name;
*** 261,267 ****
  
  int warn_abi_version = -1;
  
! /* The C++ dialect being used.  Default set in c_common_post_options.  */
  
  enum cxx_dialect cxx_dialect = cxx_unset;
  
--- 262,268 ----
  
  int warn_abi_version = -1;
  
! /* The C++ dialect being used.  Default set in c_common_init_options.  */
  
  enum cxx_dialect cxx_dialect = cxx_unset;
  
*************** static bool nonnull_check_p (tree, unsig
*** 375,383 ****
     C --std=c17: D_C23 | D_CXXONLY | D_OBJC
     C --std=c23: D_CXXONLY | D_OBJC
     ObjC is like C except that D_OBJC and D_CXX_OBJC are not set
!    C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_OBJC
!    C++ --std=c++11: D_CONLY | D_CXX20 | D_OBJC
!    C++ --std=c++20: D_CONLY | D_OBJC
     ObjC++ is like C++ except that D_OBJC is not set
  
     If -fno-asm is used, D_ASM is added to the mask.  If
--- 376,385 ----
     C --std=c17: D_C23 | D_CXXONLY | D_OBJC
     C --std=c23: D_CXXONLY | D_OBJC
     ObjC is like C except that D_OBJC and D_CXX_OBJC are not set
!    C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_CXX26 | D_OBJC
!    C++ --std=c++11: D_CONLY | D_CXX20 | D_CXX26 | D_OBJC
!    C++ --std=c++20: D_CONLY | D_CXX26 | D_OBJC
!    C++ --std=c++26: D_CONLY | D_OBJC
     ObjC++ is like C++ except that D_OBJC is not set
  
     If -fno-asm is used, D_ASM is added to the mask.  If
*************** const struct c_common_resword c_common_r
*** 394,399 ****
--- 396,404 ----
  {
    { "_Alignas",		RID_ALIGNAS,   D_CONLY },
    { "_Alignof",		RID_ALIGNOF,   D_CONLY },
+   { "_Countof",		RID_COUNTOF,   D_CONLY },
+   { "_Maxof",		RID_MAXOF,     D_CONLY },
+   { "_Minof",		RID_MINOF,     D_CONLY },
    { "_Atomic",		RID_ATOMIC,    D_CONLY },
    { "_BitInt",		RID_BITINT,    D_CONLY },
    { "_Bool",		RID_BOOL,      D_CONLY },
*************** const struct c_common_resword c_common_r
*** 460,472 ****
    { "__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 },
    { "__const",		RID_CONST,	0 },
    { "__const__",	RID_CONST,	0 },
    { "__constinit",	RID_CONSTINIT,	D_CXXONLY },
    { "__decltype",       RID_DECLTYPE,   D_CXXONLY },
    { "__extension__",	RID_EXTENSION,	0 },
    { "__func__",		RID_C99_FUNCTION_NAME, 0 },
--- 465,478 ----
    { "__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 | D_CXX26 },
    { "__builtin_va_arg",	RID_VA_ARG,	0 },
    { "__complex",	RID_COMPLEX,	0 },
    { "__complex__",	RID_COMPLEX,	0 },
    { "__const",		RID_CONST,	0 },
    { "__const__",	RID_CONST,	0 },
    { "__constinit",	RID_CONSTINIT,	D_CXXONLY },
+   { "__contract_assert", RID_CONTASSERT, D_CXXONLY | D_CXXWARN  },
    { "__decltype",       RID_DECLTYPE,   D_CXXONLY },
    { "__extension__",	RID_EXTENSION,	0 },
    { "__func__",		RID_C99_FUNCTION_NAME, 0 },
*************** const struct c_common_resword c_common_r
*** 514,519 ****
--- 520,526 ----
    { "constinit",	RID_CONSTINIT,	D_CXXONLY | D_CXX20 | D_CXXWARN },
    { "const_cast",	RID_CONSTCAST,	D_CXXONLY | D_CXXWARN },
    { "continue",		RID_CONTINUE,	0 },
+   { "contract_assert",	RID_CONTASSERT,	D_CXXONLY | D_CXXWARN | D_CXX26 },
    { "decltype",         RID_DECLTYPE,   D_CXXONLY | D_CXX11 | D_CXXWARN },
    { "default",		RID_DEFAULT,	0 },
    { "delete",		RID_DELETE,	D_CXXONLY | D_CXXWARN },
*************** fix_string_type (tree value)
*** 846,852 ****
      {
        error ("size of string literal is too large");
        length = tree_to_shwi (TYPE_MAX_VALUE (ssizetype)) / charsz * charsz;
!       char *str = CONST_CAST (char *, TREE_STRING_POINTER (value));
        memset (str + length, '\0',
  	      MIN (TREE_STRING_LENGTH (value) - length, charsz));
        TREE_STRING_LENGTH (value) = length;
--- 853,859 ----
      {
        error ("size of string literal is too large");
        length = tree_to_shwi (TYPE_MAX_VALUE (ssizetype)) / charsz * charsz;
!       char *str = const_cast<char *> (TREE_STRING_POINTER (value));
        memset (str + length, '\0',
  	      MIN (TREE_STRING_LENGTH (value) - length, charsz));
        TREE_STRING_LENGTH (value) = length;
*************** c_build_shufflevector (location_t loc, t
*** 1255,1263 ****
    vec_perm_indices indices (sel, 2, maskl);
  
    tree ret_type = build_vector_type (TREE_TYPE (TREE_TYPE (v0)), maskl);
!   tree mask_type = build_vector_type (build_nonstandard_integer_type
! 		(TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (ret_type))), 1),
! 		maskl);
    /* Pad out arguments to the common vector size.  */
    if (v0n < maskl)
      {
--- 1262,1268 ----
    vec_perm_indices indices (sel, 2, maskl);
  
    tree ret_type = build_vector_type (TREE_TYPE (TREE_TYPE (v0)), maskl);
!   tree mask_type = build_vector_type (ssizetype, maskl);
    /* Pad out arguments to the common vector size.  */
    if (v0n < maskl)
      {
*************** c_build_vec_convert (location_t loc1, tr
*** 1309,1314 ****
--- 1314,1320 ----
  
    if (!gnu_vector_type_p (TREE_TYPE (expr))
        || (!VECTOR_INTEGER_TYPE_P (TREE_TYPE (expr))
+ 	  && !VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (expr))
  	  && !VECTOR_FLOAT_TYPE_P (TREE_TYPE (expr))))
      {
        if (complain)
*************** c_build_vec_convert (location_t loc1, tr
*** 1318,1324 ****
      }
  
    if (!gnu_vector_type_p (type)
!       || (!VECTOR_INTEGER_TYPE_P (type) && !VECTOR_FLOAT_TYPE_P (type)))
      {
        if (complain)
  	error_at (loc2, "%<__builtin_convertvector%> second argument must "
--- 1324,1331 ----
      }
  
    if (!gnu_vector_type_p (type)
!       || (!VECTOR_INTEGER_TYPE_P (type) && !VECTOR_FLOAT_TYPE_P (type)
! 	  && !VECTOR_BOOLEAN_TYPE_P (type)))
      {
        if (complain)
  	error_at (loc2, "%<__builtin_convertvector%> second argument must "
*************** c_common_get_alias_set (tree t)
*** 3938,3951 ****
    /* The C standard specifically allows aliasing between signed and
       unsigned variants of the same type.  We treat the signed
       variant as canonical.  */
!   if ((TREE_CODE (t) == INTEGER_TYPE || TREE_CODE (t) == BITINT_TYPE)
!       && TYPE_UNSIGNED (t))
      {
!       tree t1 = c_common_signed_type (t);
! 
!       /* t1 == t can happen for boolean nodes which are always unsigned.  */
!       if (t1 != t)
! 	return get_alias_set (t1);
      }
  
    return -1;
--- 3945,3984 ----
    /* The C standard specifically allows aliasing between signed and
       unsigned variants of the same type.  We treat the signed
       variant as canonical.  */
!   if (TREE_CODE (t) == INTEGER_TYPE || TREE_CODE (t) == BITINT_TYPE)
      {
!       /* For normal INTEGER_TYPEs (except ones built by
! 	 build_nonstandard_integer_type), both signed and unsigned variants
! 	 of the type are always reachable from GTY roots, so just calling
! 	 get_alias_set on the signed type is ok.  For BITINT_TYPE and
! 	 non-standard INTEGER_TYPEs, only unsigned could be used and the
! 	 corresponding signed type could be created on demand and garbage
! 	 collected as unused, so the alias set of unsigned type could keep
! 	 changing.
! 	 Avoid that by remembering the signed type alias set in
! 	 TYPE_ALIAS_SET and also when being asked about !TYPE_UNSIGNED
! 	 check if there isn't a corresponding unsigned type with
! 	 TYPE_ALIAS_SET_KNOWN_P.  */
!       if (TYPE_UNSIGNED (t))
! 	{
! 	  /* There is no signed _BitInt(1).  */
! 	  if (TREE_CODE (t) == BITINT_TYPE && TYPE_PRECISION (t) == 1)
! 	    return -1;
! 	  tree t1 = c_common_signed_type (t);
! 	  gcc_checking_assert (t != t1);
! 	  TYPE_ALIAS_SET (t) = get_alias_set (t1);
! 	  return TYPE_ALIAS_SET (t);
! 	}
!       else
! 	{
! 	  tree t1 = c_common_unsigned_type (t);
! 	  gcc_checking_assert (t != t1);
! 	  if (TYPE_ALIAS_SET_KNOWN_P (t1))
! 	    {
! 	      TYPE_ALIAS_SET (t) = TYPE_ALIAS_SET (t1);
! 	      return TYPE_ALIAS_SET (t);
! 	    }
! 	}
      }
  
    return -1;
*************** c_alignof_expr (location_t loc, tree exp
*** 4101,4106 ****
--- 4134,4212 ----
  
    return fold_convert_loc (loc, size_type_node, t);
  }
+ 
+ /* Implement the _Countof keyword:
+    Return the number of elements of an array.  */
+ 
+ tree
+ c_countof_type (location_t loc, tree type)
+ {
+   enum tree_code type_code;
+   tree value;
+ 
+   type_code = TREE_CODE (type);
+   if (type_code != ARRAY_TYPE)
+     {
+       error_at (loc, "invalid application of %<_Countof%> to type %qT", type);
+       return error_mark_node;
+     }
+   if (!COMPLETE_TYPE_P (type))
+     {
+       error_at (loc,
+ 		"invalid application of %<_Countof%> to incomplete type %qT",
+ 		type);
+       return error_mark_node;
+     }
+ 
+   value = array_type_nelts_top (type);
+   /* VALUE will have the middle-end integer type sizetype.
+      However, we should really return a value of type `size_t',
+      which is just a typedef for an ordinary integer type.  */
+   value = fold_convert_loc (loc, size_type_node, value);
+   return value;
+ }
+ 
+ /* Implement the _Maxof operator:
+    Return the maximum representable value of an integer type.  */
+ 
+ tree
+ c_maxof_type (location_t loc, tree type)
+ {
+   if (!INTEGRAL_TYPE_P (type))
+     {
+       error_at (loc, "invalid application of %<_Maxof%> to type %qT", type);
+       return error_mark_node;
+     }
+   if (!COMPLETE_TYPE_P (type))
+     {
+       error_at (loc, "invalid application of %<_Maxof%> to incomplete type %qT",
+ 		type);
+       return error_mark_node;
+     }
+ 
+   return TYPE_MAX_VALUE (type);
+ }
+ 
+ /* Implement the _Minof operator:
+    Return the minimum representable value of an integer type.  */
+ 
+ tree
+ c_minof_type (location_t loc, tree type)
+ {
+   if (!INTEGRAL_TYPE_P (type))
+     {
+       error_at (loc, "invalid application of %<_Minof%> to type %qT", type);
+       return error_mark_node;
+     }
+   if (!COMPLETE_TYPE_P (type))
+     {
+       error_at (loc, "invalid application of %<_Minof%> to incomplete type %qT",
+ 		type);
+       return error_mark_node;
+     }
+ 
+   return TYPE_MIN_VALUE (type);
+ }
  
  /* Handle C and C++ default attributes.  */
  
*************** struct nonnull_arg_ctx
*** 5744,5751 ****
    /* 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;
  };
--- 5850,5857 ----
    /* 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 arguments.  */
!   unsigned HOST_WIDE_INT other1, other2;
    /* True if a warning has been issued.  */
    bool warned_p;
  };
*************** check_function_nonnull (nonnull_arg_ctx
*** 5813,5818 ****
--- 5919,5925 ----
  	    check_function_arguments_recurse (check_nonnull_arg, &ctx,
  					      argarray[i], i + 1,
  					      OPT_Wnonnull);
+ 	  a = NULL_TREE;
  	}
      }
    if (a == NULL_TREE)
*************** check_function_nonnull (nonnull_arg_ctx
*** 5824,5840 ****
  	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;
--- 5931,5955 ----
  	unsigned int idx = TREE_INT_CST_LOW (TREE_VALUE (args)) - 1;
  	unsigned int idx2
  	  = TREE_INT_CST_LOW (TREE_VALUE (TREE_CHAIN (args))) - 1;
+ 	unsigned int idx3 = idx2;
+ 	if (tree chain2 = TREE_CHAIN (TREE_CHAIN (args)))
+ 	  idx3 = TREE_INT_CST_LOW (TREE_VALUE (chain2)) - 1;
  	if (idx < (unsigned) nargs - firstarg
  	    && idx2 < (unsigned) nargs - firstarg
+ 	    && idx3 < (unsigned) nargs - firstarg
  	    && INTEGRAL_TYPE_P (TREE_TYPE (argarray[firstarg + idx2]))
! 	    && integer_nonzerop (argarray[firstarg + idx2])
! 	    && INTEGRAL_TYPE_P (TREE_TYPE (argarray[firstarg + idx3]))
! 	    && integer_nonzerop (argarray[firstarg + idx3]))
  	  {
! 	    ctx.other1 = firstarg + idx2 + 1;
! 	    ctx.other2 = firstarg + idx3 + 1;
  	    check_function_arguments_recurse (check_nonnull_arg, &ctx,
  					      argarray[firstarg + idx],
  					      firstarg + idx + 1,
  					      OPT_Wnonnull);
! 	    ctx.other1 = 0;
! 	    ctx.other2 = 0;
  	  }
        }
    return ctx.warned_p;
*************** check_nonnull_arg (void *ctx, tree param
*** 6018,6031 ****
      }
    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",
--- 6133,6157 ----
      }
    else
      {
!       if (pctx->other1 && pctx->other2 != pctx->other1)
! 	warned = warning_at (loc, OPT_Wnonnull,
! 			     "argument %u null where non-null expected "
! 			     "because arguments %u and %u are nonzero",
! 			     (unsigned) param_num,
! 			     TREE_CODE (pctx->fntype) == METHOD_TYPE
! 			     ? (unsigned) pctx->other1 - 1
! 			     : (unsigned) pctx->other1,
! 			     TREE_CODE (pctx->fntype) == METHOD_TYPE
! 			     ? (unsigned) pctx->other2 - 1
! 			     : (unsigned) pctx->other2);
!       else if (pctx->other1)
  	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->other1 - 1
! 			     : (unsigned) pctx->other1);
        else
  	warned = warning_at (loc, OPT_Wnonnull,
  			     "argument %u null where non-null expected",
*************** check_nonnull_arg (void *ctx, tree param
*** 6034,6040 ****
  	inform (DECL_SOURCE_LOCATION (pctx->fndecl),
  		"in a call to function %qD declared %qs",
  		pctx->fndecl,
! 		pctx->other ? "nonnull_if_nonzero" : "nonnull");
      }
  
    if (warned)
--- 6160,6166 ----
  	inform (DECL_SOURCE_LOCATION (pctx->fndecl),
  		"in a call to function %qD declared %qs",
  		pctx->fndecl,
! 		pctx->other1 ? "nonnull_if_nonzero" : "nonnull");
      }
  
    if (warned)
*************** check_function_arguments (location_t loc
*** 6290,6296 ****
       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);
      }
  
--- 6416,6422 ----
       to do this if format checking is enabled.  */
    if (warn_nonnull)
      {
!       nonnull_arg_ctx ctx = { loc, fndecl, fntype, 0, 0, false };
        warned_p = check_function_nonnull (ctx, nargs, argarray);
      }
  
*************** c_parse_error (const char *gmsgid, enum
*** 6979,6985 ****
  /* 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;
--- 7105,7111 ----
  /* Return the gcc option code associated with the reason for a cpp
     message, or 0 if none.  */
  
! static diagnostics::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
*** 7021,7028 ****
  		  rich_location *richloc,
  		  const char *msg, va_list *ap)
  {
!   diagnostic_info diagnostic;
!   diagnostic_t dlevel;
    bool save_warn_system_headers = global_dc->m_warn_system_headers;
    bool ret;
  
--- 7147,7154 ----
  		  rich_location *richloc,
  		  const char *msg, va_list *ap)
  {
!   diagnostics::diagnostic_info diagnostic;
!   enum diagnostics::kind dlevel;
    bool save_warn_system_headers = global_dc->m_warn_system_headers;
    bool ret;
  
*************** c_cpp_diagnostic (cpp_reader *pfile ATTR
*** 7036,7059 ****
      case CPP_DL_WARNING:
        if (flag_no_output)
  	return false;
!       dlevel = DK_WARNING;
        break;
      case CPP_DL_PEDWARN:
        if (flag_no_output && !flag_pedantic_errors)
  	return false;
!       dlevel = DK_PEDWARN;
        break;
      case CPP_DL_ERROR:
!       dlevel = DK_ERROR;
        break;
      case CPP_DL_ICE:
!       dlevel = DK_ICE;
        break;
      case CPP_DL_NOTE:
!       dlevel = DK_NOTE;
        break;
      case CPP_DL_FATAL:
!       dlevel = DK_FATAL;
        break;
      default:
        gcc_unreachable ();
--- 7162,7185 ----
      case CPP_DL_WARNING:
        if (flag_no_output)
  	return false;
!       dlevel = diagnostics::kind::warning;
        break;
      case CPP_DL_PEDWARN:
        if (flag_no_output && !flag_pedantic_errors)
  	return false;
!       dlevel = diagnostics::kind::pedwarn;
        break;
      case CPP_DL_ERROR:
!       dlevel = diagnostics::kind::error;
        break;
      case CPP_DL_ICE:
!       dlevel = diagnostics::kind::ice;
        break;
      case CPP_DL_NOTE:
!       dlevel = diagnostics::kind::note;
        break;
      case CPP_DL_FATAL:
!       dlevel = diagnostics::kind::fatal;
        break;
      default:
        gcc_unreachable ();
*************** fold_offsetof (tree expr, tree type, enu
*** 7106,7111 ****
--- 7232,7247 ----
      case ERROR_MARK:
        return expr;
  
+     case REALPART_EXPR:
+      return fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+ 
+     case IMAGPART_EXPR:
+      base = fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+      if (base == error_mark_node)
+ 	return base;
+      off = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (TREE_OPERAND (expr, 0))));
+      break;
+ 
      case VAR_DECL:
        error ("cannot apply %<offsetof%> to static data member %qD", expr);
        return error_mark_node;
*************** c_family_tests (void)
*** 9917,9924 ****
    c_indentation_cc_tests ();
    c_pretty_print_cc_tests ();
    c_spellcheck_cc_tests ();
-   c_diagnostic_cc_tests ();
    c_opt_problem_cc_tests ();
  }
  
  } // namespace selftest
--- 10053,10063 ----
    c_indentation_cc_tests ();
    c_pretty_print_cc_tests ();
    c_spellcheck_cc_tests ();
    c_opt_problem_cc_tests ();
+ 
+   /* According to https://gcc.gnu.org/pipermail/gcc/2021-November/237703.html
+      this has some language-specific assumptions, so we run it here.  */
+   diagnostics::selftest::context_cc_tests ();
  }
  
  } // namespace selftest
*************** try_to_locate_new_include_insertion_poin
*** 10000,10006 ****
      return UNKNOWN_LOCATION;
  
    /* The "start_location" is column 0, meaning "the whole line".
!      rich_location and edit_context can't cope with this, so use
       column 1 instead.  */
    location_t col_0 = ord_map_for_insertion->start_location;
    return linemap_position_for_loc_and_offset (line_table, col_0, 1);
--- 10139,10145 ----
      return UNKNOWN_LOCATION;
  
    /* The "start_location" is column 0, meaning "the whole line".
!      rich_location and diagnostics::changes can't cope with this, so use
       column 1 instead.  */
    location_t col_0 = ord_map_for_insertion->start_location;
    return linemap_position_for_loc_and_offset (line_table, col_0, 1);
*************** maybe_add_include_fixit (rich_location *
*** 10064,10070 ****
    richloc->add_fixit_insert_before (include_insert_loc, text);
    free (text);
  
!   if (override_location && global_dc->m_source_printing.enabled)
      {
        /* Replace the primary location with that of the insertion point for the
  	 fix-it hint.
--- 10203,10209 ----
    richloc->add_fixit_insert_before (include_insert_loc, text);
    free (text);
  
!   if (override_location && global_dc->get_source_printing_options ().enabled)
      {
        /* Replace the primary location with that of the insertion point for the
  	 fix-it hint.
*************** braced_list_to_string (tree type, tree c
*** 10245,10250 ****
--- 10384,10390 ----
  		    j = i - start;
  		  else
  		    j -= start;
+ 		  value = copy_node (value);
  		  RAW_DATA_POINTER (value) -= start;
  		  RAW_DATA_LENGTH (value) += start + end;
  		  i += end;
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-common.def gcc-16.1.0-RC-20260423/gcc/c-family/c-common.def
*** gcc-15.2.0/gcc/c-family/c-common.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-common.def	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 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-2026 Free Software Foundation, Inc.
     Written by Benjamin Chelf <chelf@codesourcery.com>
  
  This file is part of GCC.
*************** DEFTREECODE (EXCESS_PRECISION_EXPR, "exc
*** 50,55 ****
--- 50,64 ----
     number.  */
  DEFTREECODE (USERDEF_LITERAL, "userdef_literal", tcc_exceptional, 3)
  
+ /* Represents a 'countof' expression.  */
+ DEFTREECODE (COUNTOF_EXPR, "countof_expr", tcc_expression, 1)
+ 
+ /* Represents a 'maxof' expression.  */
+ DEFTREECODE (MAXOF_EXPR, "maxof_expr", tcc_expression, 1)
+ 
+ /* Represents a 'minof' expression.  */
+ DEFTREECODE (MINOF_EXPR, "minof_expr", tcc_expression, 1)
+ 
  /* Represents a 'sizeof' expression during C++ template expansion,
     or for the purpose of -Wsizeof-pointer-memaccess warning.  */
  DEFTREECODE (SIZEOF_EXPR, "sizeof_expr", tcc_expression, 1)
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-common.h gcc-16.1.0-RC-20260423/gcc/c-family/c-common.h
*** gcc-15.2.0/gcc/c-family/c-common.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-common.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-common.cc.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum rid
*** 105,110 ****
--- 105,111 ----
  
    /* C extensions */
    RID_ASM,       RID_TYPEOF,   RID_TYPEOF_UNQUAL, RID_ALIGNOF,  RID_ATTRIBUTE,
+   RID_COUNTOF,   RID_MAXOF,    RID_MINOF,
    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,
*************** enum rid
*** 188,193 ****
--- 189,197 ----
    /* C++ coroutines */
    RID_CO_AWAIT, RID_CO_YIELD, RID_CO_RETURN,
  
+   /* C++26 */
+   RID_CONTASSERT,
+ 
    /* C++ transactional memory.  */
    RID_ATOMIC_NOEXCEPT, RID_ATOMIC_CANCEL, RID_SYNCHRONIZED,
  
*************** enum rid
*** 257,262 ****
--- 261,268 ----
    RID_LAST_CXX11 = RID_STATIC_ASSERT,
    RID_FIRST_CXX20 = RID_CONSTINIT,
    RID_LAST_CXX20 = RID_CO_RETURN,
+   RID_FIRST_CXX26 = RID_CONTASSERT,
+   RID_LAST_CXX26 = RID_CONTASSERT,
    RID_FIRST_AT = RID_AT_ENCODE,
    RID_LAST_AT = RID_AT_IMPLEMENTATION,
    RID_FIRST_PQ = RID_IN,
*************** extern machine_mode c_default_pointer_mo
*** 447,452 ****
--- 453,459 ----
  #define D_CXX20		0x8000  /* In C++, C++20 only.  */
  #define D_CXX_COROUTINES 0x10000  /* In C++, only with coroutines.  */
  #define D_CXX_MODULES	0x20000  /* In C++, only with modules.  */
+ #define D_CXX26         0x40000	/* In C++, C++26 only.  */
  
  #define D_CXX_CONCEPTS_FLAGS D_CXXONLY | D_CXX_CONCEPTS
  #define D_CXX_CHAR8_T_FLAGS D_CXXONLY | D_CXX_CHAR8_T
*************** enum cxx_dialect {
*** 746,752 ****
    cxx26
  };
  
! /* The C++ dialect being used. C++98 is the default.  */
  extern enum cxx_dialect cxx_dialect;
  
  /* Maximum template instantiation depth.  This limit is rather
--- 753,759 ----
    cxx26
  };
  
! /* The C++ dialect being used.  C++20 is the default.  */
  extern enum cxx_dialect cxx_dialect;
  
  /* Maximum template instantiation depth.  This limit is rather
*************** extern tree c_common_truthvalue_conversi
*** 890,895 ****
--- 897,905 ----
  extern void c_apply_type_quals_to_decl (int, tree);
  extern tree c_sizeof_or_alignof_type (location_t, tree, bool, bool, int);
  extern tree c_alignof_expr (location_t, tree);
+ extern tree c_countof_type (location_t, tree);
+ extern tree c_maxof_type (location_t, tree);
+ extern tree c_minof_type (location_t, tree);
  /* Print an error message for invalid operands to arith operation CODE.
     NOP_EXPR is used as a special case (see truthvalue_conversion).  */
  extern void binary_op_error (rich_location *, enum tree_code, tree, tree);
*************** extern tree build_va_arg (location_t, tr
*** 977,983 ****
  
  extern const unsigned int c_family_lang_mask;
  extern unsigned int c_common_option_lang_mask (void);
! extern void c_common_diagnostics_set_defaults (diagnostic_context *);
  extern bool c_common_complain_wrong_lang_p (const struct cl_option *);
  extern void c_common_init_options_struct (struct gcc_options *);
  extern void c_common_init_options (unsigned int, struct cl_decoded_option *);
--- 987,993 ----
  
  extern const unsigned int c_family_lang_mask;
  extern unsigned int c_common_option_lang_mask (void);
! extern void c_common_diagnostics_set_defaults (diagnostics::context *);
  extern bool c_common_complain_wrong_lang_p (const struct cl_option *);
  extern void c_common_init_options_struct (struct gcc_options *);
  extern void c_common_init_options (unsigned int, struct cl_decoded_option *);
*************** extern void c_stddef_cpp_builtins (void)
*** 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 *);
--- 1273,1279 ----
  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 diagnostics::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
*** 1301,1310 ****
--- 1311,1322 ----
    C_ORT_TARGET			= 1 << 3,
    C_ORT_EXIT_DATA		= 1 << 4,
    C_ORT_INTEROP			= 1 << 5,
+   C_ORT_DECLARE_MAPPER		= 1 << 6,
    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_OMP_DECLARE_MAPPER	= C_ORT_OMP | C_ORT_DECLARE_MAPPER,
    C_ORT_ACC_TARGET		= C_ORT_ACC | C_ORT_TARGET
  };
  
*************** extern enum omp_clause_defaultmap_kind c
*** 1343,1348 ****
--- 1355,1363 ----
  extern tree c_omp_check_context_selector (location_t, tree);
  extern void c_omp_mark_declare_variant (location_t, tree, tree);
  extern void c_omp_adjust_map_clauses (tree, bool);
+ template<typename T> struct omp_mapper_list;
+ extern void c_omp_find_nested_mappers (struct omp_mapper_list<tree> *, tree);
+ extern tree c_omp_instantiate_mappers (tree);
  
  namespace omp_addr_tokenizer { struct omp_addr_token; }
  typedef omp_addr_tokenizer::omp_addr_token omp_addr_token;
*************** extern void c_do_switch_warnings (splay_
*** 1616,1622 ****
  extern void warn_for_omitted_condop (location_t, tree);
  extern bool warn_for_restrict (unsigned, tree *, unsigned);
  extern void warn_for_address_of_packed_member (tree, tree);
! extern void warn_parm_array_mismatch (location_t, tree, tree);
  extern void maybe_warn_sizeof_array_div (location_t, tree, tree, tree, tree);
  extern void do_warn_array_compare (location_t, tree_code, tree, tree);
  
--- 1631,1637 ----
  extern void warn_for_omitted_condop (location_t, tree);
  extern bool warn_for_restrict (unsigned, tree *, unsigned);
  extern void warn_for_address_of_packed_member (tree, tree);
! extern void warn_parms_array_mismatch (location_t, tree, tree);
  extern void maybe_warn_sizeof_array_div (location_t, tree, tree, tree, tree);
  extern void do_warn_array_compare (location_t, tree_code, tree, tree);
  
*************** extern enum flt_eval_method
*** 1706,1712 ****
  excess_precision_mode_join (enum flt_eval_method, enum flt_eval_method);
  
  extern int c_flt_eval_method (bool ts18661_p);
! extern void add_no_sanitize_value (tree node, unsigned int flags);
  
  extern void maybe_add_include_fixit (rich_location *, const char *, bool);
  extern void maybe_suggest_missing_token_insertion (rich_location *richloc,
--- 1721,1727 ----
  excess_precision_mode_join (enum flt_eval_method, enum flt_eval_method);
  
  extern int c_flt_eval_method (bool ts18661_p);
! extern void add_no_sanitize_value (tree node, sanitize_code_type flags);
  
  extern void maybe_add_include_fixit (rich_location *, const char *, bool);
  extern void maybe_suggest_missing_token_insertion (rich_location *richloc,
*************** extern tree braced_lists_to_strings (tre
*** 1722,1728 ****
  namespace selftest {
    /* Declarations for specific families of tests within c-family,
       by source file, in alphabetical order.  */
-   extern void c_diagnostic_cc_tests (void);
    extern void c_format_cc_tests (void);
    extern void c_indentation_cc_tests (void);
    extern void c_opt_problem_cc_tests (void);
--- 1737,1742 ----
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-cppbuiltin.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-cppbuiltin.cc
*** gcc-15.2.0/gcc/c-family/c-cppbuiltin.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-cppbuiltin.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Define builtin-in macros for the C family front ends.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_cpp_builtins (cpp_reader *pfile)
*** 913,935 ****
  
    /* encoding definitions used by users and libraries  */
    builtin_define_with_value ("__GNUC_EXECUTION_CHARSET_NAME",
!     cpp_get_narrow_charset_name (pfile), 1);
    builtin_define_with_value ("__GNUC_WIDE_EXECUTION_CHARSET_NAME",
!     cpp_get_wide_charset_name (pfile), 1);
! 
  
    if (c_dialect_cxx ())
!   {
!     int major;
!     parse_basever (&major, NULL, NULL);
!     cpp_define_formatted (pfile, "__GNUG__=%d", major);
!   }
  
    /* For stddef.h.  They require macros defined in c-common.cc.  */
    c_stddef_cpp_builtins ();
  
    if (c_dialect_cxx ())
      {
        if (flag_weak && SUPPORTS_ONE_ONLY)
  	cpp_define (pfile, "__GXX_WEAK__=1");
        else
--- 913,954 ----
  
    /* encoding definitions used by users and libraries  */
    builtin_define_with_value ("__GNUC_EXECUTION_CHARSET_NAME",
! 			     cpp_get_narrow_charset_name (pfile), 1);
    builtin_define_with_value ("__GNUC_WIDE_EXECUTION_CHARSET_NAME",
! 			     cpp_get_wide_charset_name (pfile), 1);
  
    if (c_dialect_cxx ())
!     {
!       int major;
!       parse_basever (&major, NULL, NULL);
!       cpp_define_formatted (pfile, "__GNUG__=%d", major);
!     }
  
    /* For stddef.h.  They require macros defined in c-common.cc.  */
    c_stddef_cpp_builtins ();
  
+   /* Variant of cpp_define which arranges for diagnostics on user #define
+      or #undef of the macros.  */
+   auto cpp_define_warn = [] (cpp_reader *pfile, const char *def)
+     {
+       const char *end = strchr (def, '=');
+       cpp_define (pfile, def);
+       cpp_warn (pfile, def, end ? end - def : strlen (def));
+     };
+ 
    if (c_dialect_cxx ())
      {
+       /* Treat all cpp_define calls in this block for macros starting
+ 	 with __cpp_ (for C++20 and later) or __STDCPP_ as cpp_define_warn.  */
+       auto cpp_define = [=] (cpp_reader *pfile, const char *def)
+ 	{
+ 	  if ((cxx_dialect >= cxx20 && startswith (def, "__cpp_"))
+ 	      || startswith (def, "__STDCPP_"))
+ 	    cpp_define_warn (pfile, def);
+ 	  else
+ 	    ::cpp_define (pfile, def);
+ 	};
+ 
        if (flag_weak && SUPPORTS_ONE_ONLY)
  	cpp_define (pfile, "__GXX_WEAK__=1");
        else
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1060,1066 ****
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
  	  cpp_define (pfile, "__cpp_consteval=202211L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
! 	  cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_class=201806L");
  	  cpp_define (pfile, "__cpp_impl_destroying_delete=201806L");
--- 1079,1086 ----
  	  cpp_define (pfile, "__cpp_conditional_explicit=201806L");
  	  cpp_define (pfile, "__cpp_consteval=202211L");
  	  cpp_define (pfile, "__cpp_constinit=201907L");
! 	  if (cxx_dialect <= cxx20)
! 	    cpp_define (pfile, "__cpp_deduction_guides=201907L");
  	  cpp_define (pfile, "__cpp_nontype_template_args=201911L");
  	  cpp_define (pfile, "__cpp_nontype_template_parameter_class=201806L");
  	  cpp_define (pfile, "__cpp_impl_destroying_delete=201806L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1077,1082 ****
--- 1097,1103 ----
  	  cpp_define (pfile, "__cpp_auto_cast=202110L");
  	  if (cxx_dialect <= cxx23)
  	    cpp_define (pfile, "__cpp_constexpr=202211L");
+ 	  cpp_define (pfile, "__cpp_deduction_guides=202207L");
  	  cpp_define (pfile, "__cpp_multidimensional_subscript=202211L");
  	  cpp_define (pfile, "__cpp_named_character_escapes=202207L");
  	  cpp_define (pfile, "__cpp_static_call_operator=202207L");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1087,1138 ****
  	{
  	  /* 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");
! 	  cpp_define (pfile, "__cpp_contracts_literal_semantics=201906L");
! 	  cpp_define (pfile, "__cpp_contracts_roles=201906L");
! 	}
        if (flag_modules)
  	/* The std-defined value is 201907L, but I don't think we can
  	   claim victory yet.  201810 is the p1103 date. */
  	cpp_define (pfile, "__cpp_modules=201810L");
        if (flag_coroutines)
  	cpp_define (pfile, "__cpp_impl_coroutine=201902L"); /* n4861, DIS */
        if (flag_tm)
  	/* Use a value smaller than the 201505 specified in
  	   the TS, since we don't yet support atomic_cancel.  */
  	cpp_define (pfile, "__cpp_transactional_memory=201500L");
        if (flag_sized_deallocation)
  	cpp_define (pfile, "__cpp_sized_deallocation=201309L");
        if (aligned_new_threshold)
  	{
  	  cpp_define (pfile, "__cpp_aligned_new=201606L");
  	  cpp_define_formatted (pfile, "__STDCPP_DEFAULT_NEW_ALIGNMENT__=%d",
  				aligned_new_threshold);
  	}
        if (flag_new_ttp)
  	cpp_define (pfile, "__cpp_template_template_args=201611L");
        if (flag_threadsafe_statics)
  	cpp_define (pfile, "__cpp_threadsafe_static_init=200806L");
        if (flag_char8_t)
  	cpp_define (pfile, "__cpp_char8_t=202207L");
  #ifndef THREAD_MODEL_SPEC
        /* Targets that define THREAD_MODEL_SPEC need to define
  	 __STDCPP_THREADS__ in their config/XXX/XXX-c.c themselves.  */
        if (cxx_dialect >= cxx11 && strcmp (thread_model, "single") != 0)
  	cpp_define (pfile, "__STDCPP_THREADS__=1");
  #endif
        if (flag_implicit_constexpr)
  	cpp_define (pfile, "__cpp_implicit_constexpr=20211111L");
      }
--- 1108,1185 ----
  	{
  	  /* Set feature test macros for C++26.  */
  	  cpp_define (pfile, "__cpp_constexpr=202406L");
+ 	  cpp_define (pfile, "__cpp_constexpr_exceptions=202411L");
  	  cpp_define (pfile, "__cpp_static_assert=202306L");
  	  cpp_define (pfile, "__cpp_placeholder_variables=202306L");
! 	  cpp_define (pfile, "__cpp_structured_bindings=202411L");
  	  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");
+ 	  cpp_define (pfile, "__cpp_constexpr_virtual_inheritance=202506L");
+ 	  cpp_define (pfile, "__cpp_expansion_statements=202506L");
+ 	  if (flag_reflection)
+ 	    cpp_define (pfile, "__cpp_impl_reflection=202603L");
+ 	  else
+ 	    cpp_warn (pfile, "__cpp_impl_reflection");
  	}
        if (flag_concepts && cxx_dialect > cxx14)
  	cpp_define (pfile, "__cpp_concepts=202002L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_concepts");
        if (flag_contracts)
! 	cpp_define (pfile, "__cpp_contracts=202502L");
!       else if (cxx_dialect >= cxx26)
! 	cpp_warn (pfile, "__cpp_contracts");
        if (flag_modules)
  	/* The std-defined value is 201907L, but I don't think we can
  	   claim victory yet.  201810 is the p1103 date. */
  	cpp_define (pfile, "__cpp_modules=201810L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_modules");
        if (flag_coroutines)
  	cpp_define (pfile, "__cpp_impl_coroutine=201902L"); /* n4861, DIS */
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_impl_coroutine");
        if (flag_tm)
  	/* Use a value smaller than the 201505 specified in
  	   the TS, since we don't yet support atomic_cancel.  */
  	cpp_define (pfile, "__cpp_transactional_memory=201500L");
        if (flag_sized_deallocation)
  	cpp_define (pfile, "__cpp_sized_deallocation=201309L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_sized_deallocation");
        if (aligned_new_threshold)
  	{
  	  cpp_define (pfile, "__cpp_aligned_new=201606L");
  	  cpp_define_formatted (pfile, "__STDCPP_DEFAULT_NEW_ALIGNMENT__=%d",
  				aligned_new_threshold);
  	}
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_aligned_new");
+       if (cxx_dialect >= cxx17)
+ 	cpp_warn (pfile, "__STDCPP_DEFAULT_NEW_ALIGNMENT__");
        if (flag_new_ttp)
  	cpp_define (pfile, "__cpp_template_template_args=201611L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_template_template_args");
        if (flag_threadsafe_statics)
  	cpp_define (pfile, "__cpp_threadsafe_static_init=200806L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_threadsafe_static_init");
        if (flag_char8_t)
  	cpp_define (pfile, "__cpp_char8_t=202207L");
+       else if (cxx_dialect >= cxx20)
+ 	cpp_warn (pfile, "__cpp_char8_t");
  #ifndef THREAD_MODEL_SPEC
        /* Targets that define THREAD_MODEL_SPEC need to define
  	 __STDCPP_THREADS__ in their config/XXX/XXX-c.c themselves.  */
        if (cxx_dialect >= cxx11 && strcmp (thread_model, "single") != 0)
  	cpp_define (pfile, "__STDCPP_THREADS__=1");
+       else
  #endif
+ 	if (cxx_dialect >= cxx11)
+ 	  cpp_warn (pfile, "__STDCPP_THREADS__");
        if (flag_implicit_constexpr)
  	cpp_define (pfile, "__cpp_implicit_constexpr=20211111L");
      }
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1281,1296 ****
  
    for (int i = 0; i < NUM_FLOATN_NX_TYPES; i++)
      {
-       if (FLOATN_NX_TYPE_NODE (i) == NULL_TREE)
- 	continue;
        if (c_dialect_cxx ()
  	  && cxx_dialect > cxx20
  	  && !floatn_nx_types[i].extended)
  	{
  	  char name[sizeof ("__STDCPP_FLOAT128_T__=1")];
  	  sprintf (name, "__STDCPP_FLOAT%d_T__=1", floatn_nx_types[i].n);
! 	  cpp_define (pfile, name);
  	}
        char prefix[20], csuffix[20];
        sprintf (prefix, "FLT%d%s", floatn_nx_types[i].n,
  	       floatn_nx_types[i].extended ? "X" : "");
--- 1328,1349 ----
  
    for (int i = 0; i < NUM_FLOATN_NX_TYPES; i++)
      {
        if (c_dialect_cxx ()
  	  && cxx_dialect > cxx20
  	  && !floatn_nx_types[i].extended)
  	{
  	  char name[sizeof ("__STDCPP_FLOAT128_T__=1")];
+ 	  if (FLOATN_NX_TYPE_NODE (i) == NULL_TREE)
+ 	    {
+ 	      sprintf (name, "__STDCPP_FLOAT%d_T__", floatn_nx_types[i].n);
+ 	      cpp_warn (pfile, name);
+ 	      continue;
+ 	    }
  	  sprintf (name, "__STDCPP_FLOAT%d_T__=1", floatn_nx_types[i].n);
! 	  cpp_define_warn (pfile, name);
  	}
+       else if (FLOATN_NX_TYPE_NODE (i) == NULL_TREE)
+ 	continue;
        char prefix[20], csuffix[20];
        sprintf (prefix, "FLT%d%s", floatn_nx_types[i].n,
  	       floatn_nx_types[i].extended ? "X" : "");
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1302,1311 ****
    if (bfloat16_type_node)
      {
        if (c_dialect_cxx () && cxx_dialect > cxx20)
! 	cpp_define (pfile, "__STDCPP_BFLOAT16_T__=1");
        builtin_define_float_constants ("BFLT16", "BF16", "%s",
  				      "BF16", bfloat16_type_node);
      }
  
    /* For float.h.  */
    if (targetm.decimal_float_supported_p ())
--- 1355,1366 ----
    if (bfloat16_type_node)
      {
        if (c_dialect_cxx () && cxx_dialect > cxx20)
! 	cpp_define_warn (pfile, "__STDCPP_BFLOAT16_T__=1");
        builtin_define_float_constants ("BFLT16", "BF16", "%s",
  				      "BF16", bfloat16_type_node);
      }
+   else if (cxx_dialect >= cxx23)
+     cpp_warn (pfile, "__STDCPP_BFLOAT16_T__");
  
    /* For float.h.  */
    if (targetm.decimal_float_supported_p ())
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1634,1640 ****
      cpp_define (pfile, "_OPENACC=201711");
  
    if (flag_openmp)
!     cpp_define (pfile, "_OPENMP=201511");
  
    for (i = 0; i < NUM_INT_N_ENTS; i ++)
      if (int_n_enabled_p[i])
--- 1689,1695 ----
      cpp_define (pfile, "_OPENACC=201711");
  
    if (flag_openmp)
!     cpp_define (pfile, "_OPENMP=202111");
  
    for (i = 0; i < NUM_INT_N_ENTS; i ++)
      if (int_n_enabled_p[i])
*************** c_cpp_builtins (cpp_reader *pfile)
*** 1678,1684 ****
  /* 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"))
--- 1733,1739 ----
  /* Given NAME, return the command-line option that would make it be
     a builtin define, or 0 if unrecognized.  */
  
! diagnostics::option_id
  get_option_for_builtin_define (const char *name)
  {
    if (!strcmp (name, "_OPENACC"))
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-dump.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-dump.cc
*** gcc-15.2.0/gcc/c-family/c-dump.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-dump.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Tree-dumping functionality for C-family languages.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
     Written by Mark Mitchell <mark@codesourcery.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-format.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-format.cc
*** gcc-15.2.0/gcc/c-family/c-format.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-format.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 32,38 ****
  #include "diagnostic.h"
  #include "substring-locations.h"
  #include "selftest.h"
! #include "selftest-diagnostic.h"
  #include "builtins.h"
  #include "attribs.h"
  #include "c-family/c-type-mismatch.h"
--- 32,39 ----
  #include "diagnostic.h"
  #include "substring-locations.h"
  #include "selftest.h"
! #include "diagnostics/selftest-context.h"
! #include "diagnostics/file-cache.h"
  #include "builtins.h"
  #include "attribs.h"
  #include "c-family/c-type-mismatch.h"
*************** static GTY(()) tree local_event_ptr_node
*** 70,75 ****
--- 71,77 ----
  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 local_string_slice_node;
  static GTY(()) tree locus;
  
  static bool decode_format_attr (const_tree, tree, tree, function_format_info *,
*************** static const format_char_info asm_fprint
*** 770,775 ****
--- 772,778 ----
    { "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 }, \
+   { "B",   1, STD_C89, { T_STRING_SLICE,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "q", "",   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 }, \
*************** flag_chars_t::validate (const format_kin
*** 2124,2130 ****
  	{
  	  format_warning_at_char (format_string_loc, format_string_cst,
  				  format_chars - orig_format_chars - 1,
! 				  OPT_Wformat_,
  				  "%s used within a quoted sequence",
  				  _(s->name));
  	}
--- 2127,2133 ----
  	{
  	  format_warning_at_char (format_string_loc, format_string_cst,
  				  format_chars - orig_format_chars - 1,
! 				  OPT_Wformat_diag,
  				  "%s used within a quoted sequence",
  				  _(s->name));
  	}
*************** flag_chars_t::validate (const format_kin
*** 2137,2143 ****
      {
        format_warning_at_char (format_string_loc, format_string_cst,
  			      format_chars - orig_format_chars,
! 			      OPT_Wformat_,
  			      "%qc conversion used unquoted",
  			      format_char);
      }
--- 2140,2146 ----
      {
        format_warning_at_char (format_string_loc, format_string_cst,
  			      format_chars - orig_format_chars,
! 			      OPT_Wformat_diag,
  			      "%qc conversion used unquoted",
  			      format_char);
      }
*************** get_corrected_substring (const substring
*** 4632,4638 ****
    if (caret.column > finish.column)
      return NULL;
  
!   char_span line
      = global_dc->get_file_cache ().get_source_line (start.file, start.line);
    if (!line)
      return NULL;
--- 4635,4641 ----
    if (caret.column > finish.column)
      return NULL;
  
!   diagnostics::char_span line
      = global_dc->get_file_cache ().get_source_line (start.file, start.line);
    if (!line)
      return NULL;
*************** get_corrected_substring (const substring
*** 4644,4650 ****
       specification, up to the (but not including) the length modifier.
       In the above example, this would be "%-+*.*".  */
    int length_up_to_type = caret.column - start.column;
!   char_span prefix_span = line.subspan (start.column - 1, length_up_to_type);
    char *prefix = prefix_span.xstrdup ();
  
    /* Now attempt to generate a suggestion for the rest of the specification
--- 4647,4654 ----
       specification, up to the (but not including) the length modifier.
       In the above example, this would be "%-+*.*".  */
    int length_up_to_type = caret.column - start.column;
!   diagnostics::char_span prefix_span
!     = line.subspan (start.column - 1, length_up_to_type);
    char *prefix = prefix_span.xstrdup ();
  
    /* Now attempt to generate a suggestion for the rest of the specification
*************** init_dynamic_diag_info (void)
*** 5211,5216 ****
--- 5215,5225 ----
        || local_cgraph_node_ptr_node == void_type_node)
      local_cgraph_node_ptr_node = get_named_type ("cgraph_node");
  
+   /* Similar to the above but for string_slice*.  */
+   if (!local_string_slice_node
+       || local_string_slice_node == void_type_node)
+     local_string_slice_node = get_named_type ("string_slice");
+ 
    /* Similar to the above but for diagnostic_event_id_t*.  */
    if (!local_event_ptr_node
        || local_event_ptr_node == void_type_node)
*************** test_type_mismatch_range_labels ()
*** 5577,5586 ****
    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"
--- 5586,5597 ----
    gcc_rich_location richloc (fmt, &fmt_label, nullptr);
    richloc.add_range (param, SHOW_RANGE_WITHOUT_CARET, &param_label);
  
!   diagnostics::selftest::test_context dc;
    diagnostic_show_locus (&dc,
! 			 dc.get_source_printing_options (),
! 			 &richloc,
! 			 diagnostics::kind::error,
! 			 dc.get_reference_printer ());
    if (c_dialect_cxx ())
      /* "char*", without a space.  */
      ASSERT_STREQ ("   printf (\"msg: %i\\n\", msg);\n"
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-format.h gcc-16.1.0-RC-20260423/gcc/c-family/c-format.h
*** gcc-15.2.0/gcc/c-family/c-format.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-format.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Check calls to formatted I/O functions (-Wformat).
!    Copyright (C) 1992-2026 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_STRING_SLICE    { STD_C89, NULL, &local_string_slice_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 }
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-gimplify.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-gimplify.cc
*** gcc-15.2.0/gcc/c-family/c-gimplify.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-gimplify.cc	Thu Apr 23 11:07:33 2026
***************
*** 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>
--- 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-2026 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.
*** 66,71 ****
--- 66,84 ----
      walk back up, we check that they fit our constraints, and copy them
      into temporaries if not.  */
  
+ 
+ /* Check whether TP is an address computation whose base is a call to
+    .ACCESS_WITH_SIZE.  */
+ 
+ static bool
+ is_address_with_access_with_size (tree tp)
+ {
+   if (TREE_CODE (tp) == POINTER_PLUS_EXPR
+       && is_access_with_size_p (TREE_OPERAND (tp, 0)))
+ 	return true;
+   return false;
+ }
+ 
  /* Callback for c_genericize.  */
  
  static tree
*************** ubsan_walk_array_refs_r (tree *tp, int *
*** 121,126 ****
--- 134,153 ----
        walk_tree (&TREE_OPERAND (*tp, 1), ubsan_walk_array_refs_r, pset, pset);
        walk_tree (&TREE_OPERAND (*tp, 0), ubsan_walk_array_refs_r, pset, pset);
      }
+   else if (TREE_CODE (*tp) == INDIRECT_REF
+ 	   && is_address_with_access_with_size (TREE_OPERAND (*tp, 0)))
+     {
+       ubsan_maybe_instrument_array_ref (&TREE_OPERAND (*tp, 0), false);
+       /* Make sure ubsan_maybe_instrument_array_ref is not called again on
+ 	 the POINTER_PLUS_EXPR, so ensure it is not walked again and walk
+ 	 its subtrees manually.  */
+       tree aref = TREE_OPERAND (*tp, 0);
+       pset->add (aref);
+       *walk_subtrees = 0;
+       walk_tree (&TREE_OPERAND (aref, 0), ubsan_walk_array_refs_r, pset, pset);
+     }
+   else if (is_address_with_access_with_size (*tp))
+     ubsan_maybe_instrument_array_ref (tp, true);
    return NULL_TREE;
  }
  
*************** get_bc_label (enum bc_t bc)
*** 240,246 ****
  location_t
  expr_loc_or_loc (const_tree expr, location_t or_loc)
  {
!   tree t = CONST_CAST_TREE (expr);
    location_t loc = UNKNOWN_LOCATION;
    if (t)
      loc = EXPR_LOCATION (t);
--- 267,273 ----
  location_t
  expr_loc_or_loc (const_tree expr, location_t or_loc)
  {
!   tree t = const_cast<tree> (expr);
    location_t loc = UNKNOWN_LOCATION;
    if (t)
      loc = EXPR_LOCATION (t);
*************** c_gimplify_expr (tree *expr_p, gimple_se
*** 1009,1015 ****
  	    && call_expr_nargs (*expr_p) == 2
  	    && TREE_CODE (CALL_EXPR_ARG (*expr_p, 1)) != INTEGER_CST)
  	  {
! 	    tree a = save_expr (CALL_EXPR_ARG (*expr_p, 0));
  	    tree c = build_call_expr_loc (EXPR_LOCATION (*expr_p),
  					  fndecl, 1, a);
  	    *expr_p = build3_loc (EXPR_LOCATION (*expr_p), COND_EXPR,
--- 1036,1049 ----
  	    && call_expr_nargs (*expr_p) == 2
  	    && TREE_CODE (CALL_EXPR_ARG (*expr_p, 1)) != INTEGER_CST)
  	  {
! 	    tree a = CALL_EXPR_ARG (*expr_p, 0);
! 	    if (gimplify_expr (&a, pre_p, post_p, is_gimple_val, fb_rvalue)
! 		== GS_ERROR)
! 	      return GS_ERROR;
! 	    tree b = CALL_EXPR_ARG (*expr_p, 1);
! 	    if (gimplify_expr (&b, pre_p, post_p, is_gimple_val, fb_rvalue)
! 		== GS_ERROR)
! 	      return GS_ERROR;
  	    tree c = build_call_expr_loc (EXPR_LOCATION (*expr_p),
  					  fndecl, 1, a);
  	    *expr_p = build3_loc (EXPR_LOCATION (*expr_p), COND_EXPR,
*************** c_gimplify_expr (tree *expr_p, gimple_se
*** 1017,1023 ****
  				  build2_loc (EXPR_LOCATION (*expr_p),
  					      NE_EXPR, boolean_type_node, a,
  					      build_zero_cst (TREE_TYPE (a))),
! 				  c, CALL_EXPR_ARG (*expr_p, 1));
  	    return GS_OK;
  	  }
  	break;
--- 1051,1057 ----
  				  build2_loc (EXPR_LOCATION (*expr_p),
  					      NE_EXPR, boolean_type_node, a,
  					      build_zero_cst (TREE_TYPE (a))),
! 				  c, b);
  	    return GS_OK;
  	  }
  	break;
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-indentation.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-indentation.cc
*** gcc-15.2.0/gcc/c-family/c-indentation.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-indentation.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Implementation of -Wmisleading-indentation
!    Copyright (C) 2015-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 25,30 ****
--- 25,31 ----
  #include "c-indentation.h"
  #include "selftest.h"
  #include "diagnostic.h"
+ #include "diagnostics/file-cache.h"
  
  /* Round up VIS_COLUMN to nearest tab stop. */
  
*************** next_tab_stop (unsigned int vis_column,
*** 45,57 ****
     on the line (up to or before EXPLOC).  */
  
  static bool
! get_visual_column (file_cache &fc,
  		   expanded_location exploc,
  		   unsigned int *out,
  		   unsigned int *first_nws,
  		   unsigned int tab_width)
  {
!   char_span line = fc.get_source_line (exploc.file, exploc.line);
    if (!line)
      return false;
    if ((size_t)exploc.column > line.length ())
--- 46,58 ----
     on the line (up to or before EXPLOC).  */
  
  static bool
! get_visual_column (diagnostics::file_cache &fc,
  		   expanded_location exploc,
  		   unsigned int *out,
  		   unsigned int *first_nws,
  		   unsigned int tab_width)
  {
!   diagnostics::char_span line = fc.get_source_line (exploc.file, exploc.line);
    if (!line)
      return false;
    if ((size_t)exploc.column > line.length ())
*************** get_visual_column (file_cache &fc,
*** 88,101 ****
     Otherwise, return false, leaving *FIRST_NWS untouched.  */
  
  static bool
! get_first_nws_vis_column (file_cache &fc,
  			  const char *file, int line_num,
  			  unsigned int *first_nws,
  			  unsigned int tab_width)
  {
    gcc_assert (first_nws);
  
!   char_span line = fc.get_source_line (file, line_num);
    if (!line)
      return false;
    unsigned int vis_column = 0;
--- 89,102 ----
     Otherwise, return false, leaving *FIRST_NWS untouched.  */
  
  static bool
! get_first_nws_vis_column (diagnostics::file_cache &fc,
  			  const char *file, int line_num,
  			  unsigned int *first_nws,
  			  unsigned int tab_width)
  {
    gcc_assert (first_nws);
  
!   diagnostics::char_span line = fc.get_source_line (file, line_num);
    if (!line)
      return false;
    unsigned int vis_column = 0;
*************** get_first_nws_vis_column (file_cache &fc
*** 160,166 ****
     Return true if such an unindent/outdent is detected.  */
  
  static bool
! detect_intervening_unindent (file_cache &fc,
  			     const char *file,
  			     int body_line,
  			     int next_stmt_line,
--- 161,167 ----
     Return true if such an unindent/outdent is detected.  */
  
  static bool
! detect_intervening_unindent (diagnostics::file_cache &fc,
  			     const char *file,
  			     int body_line,
  			     int next_stmt_line,
*************** should_warn_for_misleading_indentation (
*** 329,341 ****
    if (guard_loc == body_loc || body_loc == next_stmt_loc)
      return false;
  
!   const unsigned int tab_width = global_dc->m_tabstop;
  
    /* They must be in the same file.  */
    if (next_stmt_exploc.file != body_exploc.file)
      return false;
  
!   file_cache &fc = global_dc->get_file_cache ();
  
    /* If NEXT_STMT_LOC and BODY_LOC are on the same line, consider
       the location of the guard.
--- 330,342 ----
    if (guard_loc == body_loc || body_loc == next_stmt_loc)
      return false;
  
!   const unsigned int tab_width = global_dc->get_column_options ().m_tabstop;
  
    /* They must be in the same file.  */
    if (next_stmt_exploc.file != body_exploc.file)
      return false;
  
!   diagnostics::file_cache &fc = global_dc->get_file_cache ();
  
    /* If NEXT_STMT_LOC and BODY_LOC are on the same line, consider
       the location of the guard.
*************** guard_tinfo_to_string (enum rid keyword)
*** 605,610 ****
--- 606,614 ----
        return "do";
      case RID_SWITCH:
        return "switch";
+     case RID_TEMPLATE:
+       gcc_assert (cxx_dialect >= cxx11);
+       return "template for";
      default:
        gcc_unreachable ();
      }
*************** test_next_tab_stop ()
*** 691,697 ****
  
  static void
  assert_get_visual_column_succeeds (const location &loc,
! 				   file_cache &fc,
  				   const char *file, int line, int column,
  				   const unsigned int tab_width,
  				   unsigned int expected_visual_column,
--- 695,701 ----
  
  static void
  assert_get_visual_column_succeeds (const location &loc,
! 				   diagnostics::file_cache &fc,
  				   const char *file, int line, int column,
  				   const unsigned int tab_width,
  				   unsigned int expected_visual_column,
*************** assert_get_visual_column_succeeds (const
*** 735,741 ****
  
  static void
  assert_get_visual_column_fails (const location &loc,
! 				file_cache &fc,
  				const char *file, int line, int column,
  				const unsigned int tab_width)
  {
--- 739,745 ----
  
  static void
  assert_get_visual_column_fails (const location &loc,
! 				diagnostics::file_cache &fc,
  				const char *file, int line, int column,
  				const unsigned int tab_width)
  {
*************** test_get_visual_column ()
*** 783,789 ****
  			 "\t line 2\n");
    line_table_test ltt;
    temp_source_file tmp (SELFTEST_LOCATION, ".txt", content);
!   file_cache fc;
  
    const unsigned int tab_width = 8;
    const char *file = tmp.get_filename ();
--- 787,793 ----
  			 "\t line 2\n");
    line_table_test ltt;
    temp_source_file tmp (SELFTEST_LOCATION, ".txt", content);
!   diagnostics::file_cache fc;
  
    const unsigned int tab_width = 8;
    const char *file = tmp.get_filename ();
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-indentation.h gcc-16.1.0-RC-20260423/gcc/c-family/c-indentation.h
*** gcc-15.2.0/gcc/c-family/c-indentation.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-indentation.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Definitions for c-indentation.cc.
!    Copyright (C) 2015-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-lex.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-lex.cc
*** gcc-15.2.0/gcc/c-family/c-lex.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-lex.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Mainly the interface between cpplib and the C front ends.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** cb_ident (cpp_reader * ARG_UNUSED (pfile
*** 174,180 ****
        if (cpp_interpret_string (pfile, str, 1, &cstr, CPP_STRING))
  	{
  	  targetm.asm_out.output_ident ((const char *) cstr.text);
! 	  free (CONST_CAST (unsigned char *, cstr.text));
  	}
      }
  }
--- 174,180 ----
        if (cpp_interpret_string (pfile, str, 1, &cstr, CPP_STRING))
  	{
  	  targetm.asm_out.output_ident ((const char *) cstr.text);
! 	  free (const_cast<unsigned char *> (cstr.text));
  	}
      }
  }
*************** cb_def_pragma (cpp_reader *pfile, locati
*** 248,254 ****
      {
        const unsigned char *space, *name;
        const cpp_token *s;
!       location_t fe_loc = loc;
  
        space = name = (const unsigned char *) "";
  
--- 248,259 ----
      {
        const unsigned char *space, *name;
        const cpp_token *s;
! 
!       /* If we are processing a _Pragma, LOC is not a valid location, but libcpp
! 	 will provide a good location via this function instead.  */
!       location_t fe_loc = cpp_get_diagnostic_override_loc (pfile);
!       if (fe_loc == UNKNOWN_LOCATION)
! 	fe_loc = loc;
  
        space = name = (const unsigned char *) "";
  
*************** c_lex_with_flags (tree *value, location_
*** 628,634 ****
  					    (const char *) tok->val.str.text);
  	    TREE_TYPE (num_string) = char_array_type_node;
  	    num_string = fix_string_type (num_string);
! 	    str = CONST_CAST (char *, TREE_STRING_POINTER (num_string));
  	    str[len] = '\0';
  	    literal = build_userdef_literal (suffix_id, *value, overflow,
  					     num_string);
--- 633,639 ----
  					    (const char *) tok->val.str.text);
  	    TREE_TYPE (num_string) = char_array_type_node;
  	    num_string = fix_string_type (num_string);
! 	    str = const_cast<char *> (TREE_STRING_POINTER (num_string));
  	    str[len] = '\0';
  	    literal = build_userdef_literal (suffix_id, *value, overflow,
  					     num_string);
*************** interpret_integer (const cpp_token *toke
*** 1171,1177 ****
  	  && (flags & CPP_N_WIDTH) != CPP_N_LARGE)
  	emit_diagnostic
  	  ((c_dialect_cxx () ? cxx_dialect == cxx98 : !flag_isoc99)
! 	   ? DK_PEDWARN : DK_WARNING,
  	   input_location, OPT_Wlong_long,
  	   (flags & CPP_N_UNSIGNED)
  	   ? "integer constant is too large for %<unsigned long%> type"
--- 1176,1182 ----
  	  && (flags & CPP_N_WIDTH) != CPP_N_LARGE)
  	emit_diagnostic
  	  ((c_dialect_cxx () ? cxx_dialect == cxx98 : !flag_isoc99)
! 	   ? diagnostics::kind::pedwarn : diagnostics::kind::warning,
  	   input_location, OPT_Wlong_long,
  	   (flags & CPP_N_UNSIGNED)
  	   ? "integer constant is too large for %<unsigned long%> type"
*************** lex_string (const cpp_token *tok, tree *
*** 1695,1701 ****
        (parse_in, strs, concats + 1, &istr, type))
      {
        value = build_string (istr.len, (const char *) istr.text);
!       free (CONST_CAST (unsigned char *, istr.text));
        if (concats)
  	{
  	  gcc_assert (locs);
--- 1700,1706 ----
        (parse_in, strs, concats + 1, &istr, type))
      {
        value = build_string (istr.len, (const char *) istr.text);
!       free (const_cast<unsigned char *> (istr.text));
        if (concats)
  	{
  	  gcc_assert (locs);
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-objc.h gcc-16.1.0-RC-20260423/gcc/c-family/c-objc.h
*** gcc-15.2.0/gcc/c-family/c-objc.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-objc.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Definitions of Objective-C front-end entry points used for C and C++.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-omp.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-omp.cc
*** gcc-15.2.0/gcc/c-family/c-omp.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-omp.cc	Thu Apr 23 11:07:33 2026
***************
*** 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>.
  
--- 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-2026 Free Software Foundation, Inc.
     Contributed by Richard Henderson <rth@redhat.com>,
  		  Diego Novillo <dnovillo@redhat.com>.
  
*************** c_finish_oacc_wait (location_t loc, tree
*** 52,59 ****
    vec_alloc (args, nparms + 2);
    stmt = builtin_decl_explicit (BUILT_IN_GOACC_WAIT);
  
!   if (omp_find_clause (clauses, OMP_CLAUSE_ASYNC))
!     t = OMP_CLAUSE_ASYNC_EXPR (clauses);
    else
      t = build_int_cst (integer_type_node, GOMP_ASYNC_SYNC);
  
--- 52,59 ----
    vec_alloc (args, nparms + 2);
    stmt = builtin_decl_explicit (BUILT_IN_GOACC_WAIT);
  
!   if ((t = omp_find_clause (clauses, OMP_CLAUSE_ASYNC)))
!     t = OMP_CLAUSE_ASYNC_EXPR (t);
    else
      t = build_int_cst (integer_type_node, GOMP_ASYNC_SYNC);
  
*************** c_finish_oacc_wait (location_t loc, tree
*** 71,76 ****
--- 71,81 ----
  
    stmt = build_call_expr_loc_vec (loc, stmt, args);
  
+   t = omp_find_clause (clauses, OMP_CLAUSE_IF);
+   if (t)
+     stmt = build3_loc (input_location, COND_EXPR, void_type_node,
+ 		       OMP_CLAUSE_IF_EXPR (t), stmt, NULL_TREE);
+ 
    vec_free (args);
  
    return stmt;
*************** c_finish_omp_depobj (location_t loc, tre
*** 764,772 ****
  	  kind = OMP_CLAUSE_DEPEND_KIND (clause);
  	  t = OMP_CLAUSE_DECL (clause);
  	  gcc_assert (t);
! 	  if (TREE_CODE (t) == TREE_LIST
! 	      && TREE_PURPOSE (t)
! 	      && TREE_CODE (TREE_PURPOSE (t)) == TREE_VEC)
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (clause),
  			"%<iterator%> modifier may not be specified on "
--- 769,775 ----
  	  kind = OMP_CLAUSE_DEPEND_KIND (clause);
  	  t = OMP_CLAUSE_DECL (clause);
  	  gcc_assert (t);
! 	  if (OMP_ITERATOR_DECL_P (t))
  	    {
  	      error_at (OMP_CLAUSE_LOCATION (clause),
  			"%<iterator%> modifier may not be specified on "
*************** c_omp_split_clauses (location_t loc, enu
*** 2173,2183 ****
  	{
  	/* First the clauses that are unique to some constructs.  */
  	case OMP_CLAUSE_DEVICE:
! 	case OMP_CLAUSE_MAP:
! 	case OMP_CLAUSE_IS_DEVICE_PTR:
! 	case OMP_CLAUSE_HAS_DEVICE_ADDR:
  	case OMP_CLAUSE_DEFAULTMAP:
  	case OMP_CLAUSE_DEPEND:
  	  s = C_OMP_CLAUSE_SPLIT_TARGET;
  	  break;
  	case OMP_CLAUSE_DOACROSS:
--- 2176,2189 ----
  	{
  	/* First the clauses that are unique to some constructs.  */
  	case OMP_CLAUSE_DEVICE:
! 	case OMP_CLAUSE_DEVICE_TYPE:
  	case OMP_CLAUSE_DEFAULTMAP:
  	case OMP_CLAUSE_DEPEND:
+ 	case OMP_CLAUSE_DYN_GROUPPRIVATE:
+ 	case OMP_CLAUSE_IS_DEVICE_PTR:
+ 	case OMP_CLAUSE_HAS_DEVICE_ADDR:
+ 	case OMP_CLAUSE_MAP:
+ 	case OMP_CLAUSE_USES_ALLOCATORS:
  	  s = C_OMP_CLAUSE_SPLIT_TARGET;
  	  break;
  	case OMP_CLAUSE_DOACROSS:
*************** c_omp_address_inspector::expand_map_clau
*** 4282,4287 ****
--- 4288,4593 ----
    return error_mark_node;
  }
  
+ /* Given a mapper function MAPPER_FN, recursively scan through the map clauses
+    for that mapper, and if any of those should use a (named or unnamed) mapper
+    themselves, add it to MLIST.  */
+ 
+ void
+ c_omp_find_nested_mappers (omp_mapper_list<tree> *mlist, tree mapper_fn)
+ {
+   tree mapper = lang_hooks.decls.omp_extract_mapper_directive (mapper_fn);
+   tree mapper_name = NULL_TREE;
+ 
+   if (mapper == error_mark_node)
+     return;
+ 
+   gcc_assert (TREE_CODE (mapper) == OMP_DECLARE_MAPPER);
+ 
+   for (tree clause = OMP_DECLARE_MAPPER_CLAUSES (mapper);
+        clause;
+        clause = OMP_CLAUSE_CHAIN (clause))
+     {
+       tree expr = OMP_CLAUSE_DECL (clause);
+       enum gomp_map_kind clause_kind = OMP_CLAUSE_MAP_KIND (clause);
+       tree elem_type;
+ 
+       if (clause_kind == GOMP_MAP_PUSH_MAPPER_NAME)
+ 	{
+ 	  mapper_name = expr;
+ 	  continue;
+ 	}
+       else if (clause_kind == GOMP_MAP_POP_MAPPER_NAME)
+ 	{
+ 	  mapper_name = NULL_TREE;
+ 	  continue;
+ 	}
+ 
+       gcc_assert (TREE_CODE (expr) != TREE_LIST);
+       if (TREE_CODE (expr) == OMP_ARRAY_SECTION)
+ 	{
+ 	  while (TREE_CODE (expr) == OMP_ARRAY_SECTION)
+ 	    expr = TREE_OPERAND (expr, 0);
+ 
+ 	  elem_type = TREE_TYPE (expr);
+ 	}
+       else
+ 	elem_type = TREE_TYPE (expr);
+ 
+       /* This might be too much... or not enough?  */
+       while (TREE_CODE (elem_type) == ARRAY_TYPE
+ 	     || TREE_CODE (elem_type) == POINTER_TYPE
+ 	     || TREE_CODE (elem_type) == REFERENCE_TYPE)
+ 	elem_type = TREE_TYPE (elem_type);
+ 
+       elem_type = TYPE_MAIN_VARIANT (elem_type);
+ 
+       if (RECORD_OR_UNION_TYPE_P (elem_type)
+ 	  && !mlist->contains (mapper_name, elem_type))
+ 	{
+ 	  tree nested_mapper_fn
+ 	    = lang_hooks.decls.omp_mapper_lookup (mapper_name, elem_type);
+ 
+ 	  if (nested_mapper_fn)
+ 	    {
+ 	      mlist->add_mapper (mapper_name, elem_type, nested_mapper_fn);
+ 	      c_omp_find_nested_mappers (mlist, nested_mapper_fn);
+ 	    }
+ 	  else if (mapper_name)
+ 	    {
+ 	      error ("mapper %qE not found for type %qT", mapper_name,
+ 		     elem_type);
+ 	      continue;
+ 	    }
+ 	}
+     }
+ }
+ 
+ struct remap_mapper_decl_info
+ {
+   tree dummy_var;
+   tree expr;
+ };
+ 
+ /* Helper for rewriting DUMMY_VAR into EXPR in a map clause decl.  */
+ 
+ static tree
+ remap_mapper_decl_1 (tree *tp, int *walk_subtrees, void *data)
+ {
+   remap_mapper_decl_info *map_info = (remap_mapper_decl_info *) data;
+ 
+   if (operand_equal_p (*tp, map_info->dummy_var))
+     {
+       *tp = map_info->expr;
+       *walk_subtrees = 0;
+     }
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Instantiate a mapper MAPPER for expression EXPR, adding new clauses to
+    OUTLIST.  OUTER_KIND is the mapping kind to use if not already specified in
+    the mapper declaration.  */
+ 
+ static tree *
+ omp_instantiate_mapper (tree *outlist, tree mapper, tree expr,
+ 			enum gomp_map_kind outer_kind)
+ {
+   tree clauses = OMP_DECLARE_MAPPER_CLAUSES (mapper);
+   tree dummy_var = OMP_DECLARE_MAPPER_DECL (mapper);
+   tree mapper_name = NULL_TREE;
+ 
+   remap_mapper_decl_info map_info;
+   map_info.dummy_var = dummy_var;
+   map_info.expr = expr;
+ 
+   for (tree c = clauses; c; c = OMP_CLAUSE_CHAIN (c))
+     {
+       tree unshared = unshare_expr (c);
+       enum gomp_map_kind clause_kind = OMP_CLAUSE_MAP_KIND (c);
+       tree t = OMP_CLAUSE_DECL (unshared);
+       tree type = NULL_TREE;
+       bool nonunit_array_with_mapper = false;
+ 
+       if (clause_kind == GOMP_MAP_PUSH_MAPPER_NAME)
+ 	{
+ 	  mapper_name = t;
+ 	  continue;
+ 	}
+       else if (clause_kind == GOMP_MAP_POP_MAPPER_NAME)
+ 	{
+ 	  mapper_name = NULL_TREE;
+ 	  continue;
+ 	}
+ 
+       if (TREE_CODE (t) == OMP_ARRAY_SECTION)
+ 	{
+ 	  location_t loc = OMP_CLAUSE_LOCATION (c);
+ 	  tree t2 = lang_hooks.decls.omp_map_array_section (loc, t);
+ 
+ 	  if (t2 == t)
+ 	    {
+ 	      nonunit_array_with_mapper = true;
+ 	      /* We'd want use the mapper for the element type if this worked:
+ 		 look that one up.  */
+ 	      type = TREE_TYPE (TREE_TYPE (t));
+ 	    }
+ 	  else
+ 	    {
+ 	      t = t2;
+ 	      type = TREE_TYPE (t);
+ 	    }
+ 	}
+       else
+ 	type = TREE_TYPE (t);
+ 
+       gcc_assert (type);
+ 
+       if (type == error_mark_node)
+ 	continue;
+ 
+       walk_tree (&unshared, remap_mapper_decl_1, &map_info, NULL);
+ 
+       if (OMP_CLAUSE_MAP_KIND (unshared) == GOMP_MAP_UNSET)
+ 	OMP_CLAUSE_SET_MAP_KIND (unshared, outer_kind);
+ 
+       type = TYPE_MAIN_VARIANT (type);
+ 
+       tree mapper_fn = lang_hooks.decls.omp_mapper_lookup (mapper_name, type);
+ 
+       if (mapper_fn && nonunit_array_with_mapper)
+ 	{
+ 	  sorry ("user-defined mapper with non-unit length array section");
+ 	  continue;
+ 	}
+       else if (mapper_fn)
+ 	{
+ 	  tree nested_mapper
+ 	    = lang_hooks.decls.omp_extract_mapper_directive (mapper_fn);
+ 	  if (nested_mapper != mapper)
+ 	    {
+ 	      if (clause_kind == GOMP_MAP_UNSET)
+ 		clause_kind = outer_kind;
+ 
+ 	      outlist = omp_instantiate_mapper (outlist, nested_mapper,
+ 						t, clause_kind);
+ 	      continue;
+ 	    }
+ 	}
+       else if (mapper_name)
+ 	{
+ 	  error ("mapper %qE not found for type %qT", mapper_name, type);
+ 	  continue;
+ 	}
+ 
+       *outlist = unshared;
+       outlist = &OMP_CLAUSE_CHAIN (unshared);
+     }
+ 
+   return outlist;
+ }
+ 
+ /* Given a list of CLAUSES, scan each clause and invoke a user-defined mapper
+    appropriate to the type of the data in that clause, if such a mapper is
+    visible in the current parsing context.  */
+ 
+ tree
+ c_omp_instantiate_mappers (tree clauses)
+ {
+   tree c, *pc, mapper_name = NULL_TREE;
+ 
+   for (pc = &clauses, c = clauses; c; c = *pc)
+     {
+       bool using_mapper = false;
+ 
+       switch (OMP_CLAUSE_CODE (c))
+ 	{
+ 	case OMP_CLAUSE_MAP:
+ 	  {
+ 	    tree t = OMP_CLAUSE_DECL (c);
+ 	    tree type = NULL_TREE;
+ 	    bool nonunit_array_with_mapper = false;
+ 
+ 	    if (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_PUSH_MAPPER_NAME
+ 		|| OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_POP_MAPPER_NAME)
+ 	      {
+ 		if (OMP_CLAUSE_MAP_KIND (c) == GOMP_MAP_PUSH_MAPPER_NAME)
+ 		  mapper_name = OMP_CLAUSE_DECL (c);
+ 		else
+ 		  mapper_name = NULL_TREE;
+ 		pc = &OMP_CLAUSE_CHAIN (c);
+ 		continue;
+ 	      }
+ 
+ 	    if (TREE_CODE (t) == OMP_ARRAY_SECTION)
+ 	      {
+ 		location_t loc = OMP_CLAUSE_LOCATION (c);
+ 		tree t2 = lang_hooks.decls.omp_map_array_section (loc, t);
+ 
+ 		if (t2 == t)
+ 		  {
+ 		    /* !!! Array sections of size >1 with mappers for elements
+ 		       are hard to support.  Do something here.  */
+ 		    nonunit_array_with_mapper = true;
+ 		    type = TREE_TYPE (TREE_TYPE (t));
+ 		  }
+ 		else
+ 		  {
+ 		    t = t2;
+ 		    type = TREE_TYPE (t);
+ 		  }
+ 	      }
+ 	    else
+ 	      type = TREE_TYPE (t);
+ 
+ 	    if (type == NULL_TREE || type == error_mark_node)
+ 	      {
+ 		pc = &OMP_CLAUSE_CHAIN (c);
+ 		continue;
+ 	      }
+ 
+ 	    enum gomp_map_kind kind = OMP_CLAUSE_MAP_KIND (c);
+ 	    if (kind == GOMP_MAP_UNSET)
+ 	      kind = GOMP_MAP_TOFROM;
+ 
+ 	    type = TYPE_MAIN_VARIANT (type);
+ 
+ 	    tree mapper_fn
+ 	      = lang_hooks.decls.omp_mapper_lookup (mapper_name, type);
+ 
+ 	    if (mapper_fn && nonunit_array_with_mapper)
+ 	      {
+ 		sorry ("user-defined mapper with non-unit length "
+ 		       "array section");
+ 		using_mapper = true;
+ 	      }
+ 	    else if (mapper_fn)
+ 	      {
+ 		tree mapper
+ 		  = lang_hooks.decls.omp_extract_mapper_directive (mapper_fn);
+ 		pc = omp_instantiate_mapper (pc, mapper, t, kind);
+ 		using_mapper = true;
+ 	      }
+ 	    else if (mapper_name)
+ 	      {
+ 		error ("mapper %qE not found for type %qT", mapper_name, type);
+ 		using_mapper = true;
+ 	      }
+ 	  }
+ 	  break;
+ 
+ 	default:
+ 	  ;
+ 	}
+ 
+       if (using_mapper)
+ 	*pc = OMP_CLAUSE_CHAIN (c);
+       else
+ 	pc = &OMP_CLAUSE_CHAIN (c);
+     }
+ 
+   return clauses;
+ }
+ 
  const struct c_omp_directive c_omp_directives[] = {
    /* Keep this alphabetically sorted by the first word.  Non-null second/third
       if any should precede null ones.  */
*************** const struct c_omp_directive c_omp_direc
*** 4299,4306 ****
      C_OMP_DIR_INFORMATIONAL, false },
    { "begin", "declare", "target", PRAGMA_OMP_BEGIN,
      C_OMP_DIR_DECLARATIVE, false },
!   /* { "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,
--- 4605,4615 ----
      C_OMP_DIR_INFORMATIONAL, false },
    { "begin", "declare", "target", PRAGMA_OMP_BEGIN,
      C_OMP_DIR_DECLARATIVE, false },
!   { "begin", "declare", "variant", PRAGMA_OMP_BEGIN,
!     C_OMP_DIR_DECLARATIVE, false },
!   /* 'begin metadirective' is not yet implemented; however,
!      it is only applicable if an end-directive exists, but
!      metadirectives are of limited use for declarative directives.  */
    /* { "begin", "metadirective", nullptr, PRAGMA_OMP_BEGIN,
      C_OMP_DIR_META, false },  */
    { "cancel", nullptr, nullptr, PRAGMA_OMP_CANCEL,
*************** const struct c_omp_directive c_omp_direc
*** 4309,4316 ****
      C_OMP_DIR_STANDALONE, false },
    { "critical", nullptr, nullptr, PRAGMA_OMP_CRITICAL,
      C_OMP_DIR_CONSTRUCT, false },
!   /* { "declare", "mapper", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, false },  */
    { "declare", "reduction", nullptr, PRAGMA_OMP_DECLARE,
      C_OMP_DIR_DECLARATIVE, true },
    { "declare", "simd", nullptr, PRAGMA_OMP_DECLARE,
--- 4618,4627 ----
      C_OMP_DIR_STANDALONE, false },
    { "critical", nullptr, nullptr, PRAGMA_OMP_CRITICAL,
      C_OMP_DIR_CONSTRUCT, false },
!   /* { "declare", "induction", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, true }, */
!   { "declare", "mapper", nullptr, PRAGMA_OMP_DECLARE,
!     C_OMP_DIR_DECLARATIVE, false },
    { "declare", "reduction", nullptr, PRAGMA_OMP_DECLARE,
      C_OMP_DIR_DECLARATIVE, true },
    { "declare", "simd", nullptr, PRAGMA_OMP_DECLARE,
*************** const struct c_omp_directive c_omp_direc
*** 4329,4347 ****
      C_OMP_DIR_INFORMATIONAL, false },
    { "end", "declare", "target", PRAGMA_OMP_END,
      C_OMP_DIR_DECLARATIVE, false },
!   /* { "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 },
    { "flush", nullptr, nullptr, PRAGMA_OMP_FLUSH,
      C_OMP_DIR_STANDALONE, false },
    { "for", nullptr, nullptr, PRAGMA_OMP_FOR,
      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,
--- 4640,4664 ----
      C_OMP_DIR_INFORMATIONAL, false },
    { "end", "declare", "target", PRAGMA_OMP_END,
      C_OMP_DIR_DECLARATIVE, false },
!   { "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 },
+   /* { "flatten", nullptr, nullptr, PRAGMA_OMP_FLATTEN,
+     C_OMP_DIR_CONSTRUCT, true },  */
    { "flush", nullptr, nullptr, PRAGMA_OMP_FLUSH,
      C_OMP_DIR_STANDALONE, false },
    { "for", nullptr, nullptr, PRAGMA_OMP_FOR,
      C_OMP_DIR_CONSTRUCT, true },
!   /* { "fuse", nullptr, nullptr, PRAGMA_OMP_FUSE,
!     C_OMP_DIR_CONSTRUCT, true },  */
!   { "groupprivate", nullptr, nullptr, PRAGMA_OMP_GROUPPRIVATE,
!     C_OMP_DIR_DECLARATIVE, false },
!   /* { "interchange", nullptr, nullptr, PRAGMA_OMP_INTERCHANGE,
!     C_OMP_DIR_CONSTRUCT, true },  */
    { "interop", nullptr, nullptr, PRAGMA_OMP_INTEROP,
      C_OMP_DIR_STANDALONE, false },
    { "loop", nullptr, nullptr, PRAGMA_OMP_LOOP,
*************** const struct c_omp_directive c_omp_direc
*** 4373,4378 ****
--- 4690,4699 ----
      C_OMP_DIR_CONSTRUCT, true },
    { "single", nullptr, nullptr, PRAGMA_OMP_SINGLE,
      C_OMP_DIR_CONSTRUCT, false },
+   /* { "split", nullptr, nullptr, PRAGMA_OMP_SPLIT,
+     C_OMP_DIR_CONSTRUCT, true },  */
+   /* { "stripe", nullptr, nullptr, PRAGMA_OMP_STRIPE,
+     C_OMP_DIR_CONSTRUCT, true },  */
    { "target", "data", nullptr, PRAGMA_OMP_TARGET,
      C_OMP_DIR_CONSTRUCT, false },
    { "target", "enter", "data", PRAGMA_OMP_TARGET,
*************** const struct c_omp_directive c_omp_direc
*** 4385,4390 ****
--- 4706,4715 ----
      C_OMP_DIR_CONSTRUCT, true },
    { "task", nullptr, nullptr, PRAGMA_OMP_TASK,
      C_OMP_DIR_CONSTRUCT, false },
+   /* { "task", "iteration", nullptr, PRAGMA_OMP_TASK_ITERATION,
+     C_OMP_DIR_STANDALONE, false },  */
+   /* { "taskgraph", nullptr, nullptr, PRAGMA_OMP_TASKGRAPH,
+     C_OMP_DIR_CONSTRUCT, false },  */
    { "taskgroup", nullptr, nullptr, PRAGMA_OMP_TASKGROUP,
      C_OMP_DIR_CONSTRUCT, false },
    { "taskloop", nullptr, nullptr, PRAGMA_OMP_TASKLOOP,
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-opts.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-opts.cc
*** gcc-15.2.0/gcc/c-family/c-opts.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-opts.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* C/ObjC/C++ command line option handling.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
     Contributed by Neil Booth.
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,23 ****
--- 18,24 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
+ #define INCLUDE_VECTOR
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
*************** along with GCC; see the file COPYING3.
*** 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"
--- 33,39 ----
  #include "flags.h"
  #include "toplev.h"
  #include "langhooks.h"
! #include "diagnostics/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,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
--- 44,50 ----
  #include "dumpfile.h"
  #include "file-prefix-map.h"    /* add_*_prefix_map()  */
  #include "context.h"
! #include "diagnostics/text-sink.h"
  
  #ifndef DOLLARS_IN_IDENTIFIERS
  # define DOLLARS_IN_IDENTIFIERS true
*************** c_common_option_lang_mask (void)
*** 169,177 ****
  
  /* 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);
--- 170,178 ----
  
  /* Diagnostic finalizer for C/C++/Objective-C/Objective-C++.  */
  static void
! c_diagnostic_text_finalizer (diagnostics::text_sink &text_output,
! 			     const diagnostics::diagnostic_info *diagnostic,
! 			     enum diagnostics::kind)
  {
    pretty_printer *const pp = text_output.get_printer ();
    char *saved_prefix = pp_take_prefix (pp);
*************** c_diagnostic_text_finalizer (diagnostic_
*** 179,198 ****
    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;
  }
  
  /* Input charset configuration for diagnostics.  */
--- 180,199 ----
    pp_newline (pp);
    diagnostic_show_locus (&text_output.get_context (),
  			 text_output.get_source_printing_options (),
! 			 diagnostic->m_richloc, diagnostic->m_kind, pp);
    /* By default print macro expansion contexts in the diagnostic
       finalizer -- for tokens resulting from macro expansion.  */
!   diagnostics::virt_loc_aware_text_finalizer (text_output, diagnostic);
    pp_set_prefix (pp, saved_prefix);
    pp_flush (pp);
  }
  
  /* Common default settings for diagnostics.  */
  void
! c_common_diagnostics_set_defaults (diagnostics::context *context)
  {
!   diagnostics::text_finalizer (context) = c_diagnostic_text_finalizer;
!   context->set_permissive_option (OPT_fpermissive);
  }
  
  /* Input charset configuration for diagnostics.  */
*************** c_common_init_options_struct (struct gcc
*** 229,235 ****
  
    /* By default, C99-like requirements for complex multiply and divide.  */
    opts->x_flag_complex_method = 2;
-   opts->x_flag_default_complex_method = opts->x_flag_complex_method;
  }
  
  /* Common initialization before calling option handlers.  */
--- 230,235 ----
*************** c_common_init_options (unsigned int deco
*** 274,284 ****
  	  }
      }
  
!   /* Set C++ standard to C++17 if not specified on the command line.  */
    if (c_dialect_cxx ())
!     set_std_cxx17 (/*ISO*/false);
  
!   global_dc->m_source_printing.colorize_source_p = true;
  }
  
  /* Handle switch SCODE with argument ARG.  VALUE is true, unless no-
--- 274,284 ----
  	  }
      }
  
!   /* Set C++ standard to C++20 if not specified on the command line.  */
    if (c_dialect_cxx ())
!     set_std_cxx20 (/*ISO*/false);
  
!   global_dc->get_source_printing_options ().colorize_source_p = true;
  }
  
  /* Handle switch SCODE with argument ARG.  VALUE is true, unless no-
*************** c_common_post_options (const char **pfil
*** 864,871 ****
  
    sanitize_cpp_opts ();
  
!   register_include_chains (parse_in, sysroot, iprefix, imultilib,
! 			   std_inc, std_cxx_inc && c_dialect_cxx (), verbose);
  
  #ifdef C_COMMON_OVERRIDE_OPTIONS
    /* Some machines may reject certain combinations of C
--- 864,875 ----
  
    sanitize_cpp_opts ();
  
!   /* Don't register include chains if under -fpreprocessed since we might not
!      have correct sysroot this mode, and this may cause file permssion
!      issue.  */
!   if (!cpp_opts->preprocessed)
!     register_include_chains (parse_in, sysroot, iprefix, imultilib,
! 			     std_inc, std_cxx_inc && c_dialect_cxx (), verbose);
  
  #ifdef C_COMMON_OVERRIDE_OPTIONS
    /* Some machines may reject certain combinations of C
*************** c_common_post_options (const char **pfil
*** 913,918 ****
--- 917,932 ----
    else
      flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_C11;
  
+   if (cxx_dialect >= cxx26)
+     SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 			 flag_auto_var_init, AUTO_INIT_CXX26);
+ 
+   /* The -Wtrivial-auto-var-init warning is useless for C++, where we always
+      add .DEFERRED_INIT calls when some (vacuous) initializers are bypassed
+      through jumps from switch condition to case/default label.  */
+   if (c_dialect_cxx ())
+     warn_trivial_auto_var_init = 0;
+ 
    /* C23 Annex F does not permit certain built-in functions to raise
       "inexact".  */
    if (flag_isoc23)
*************** c_common_post_options (const char **pfil
*** 959,964 ****
--- 973,987 ----
    if (warn_enum_compare == -1)
      warn_enum_compare = c_dialect_cxx () ? 1 : 0;
  
+   /* For C++26 default to -Wkeyword-macro if -Wpedantic.  */
+   if (cxx_dialect >= cxx26 && pedantic)
+     {
+       SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 			   warn_keyword_macro, 1);
+       if (warn_keyword_macro)
+ 	cpp_opts->cpp_warn_keyword_macro = warn_keyword_macro;
+     }
+ 
    /* -Wpacked-bitfield-compat is on by default for the C languages.  The
       warning is issued in stor-layout.cc which is not part of the front-end so
       we need to selectively turn it on here.  */
*************** c_common_post_options (const char **pfil
*** 1084,1094 ****
  
    /* 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;
    /* Possibly different for non-default ABI fixes within a release.  */
    const int default_abi_version = latest_abi_version;
!   /* Generate compatibility aliases for ABI v13 (8.2) by default.  */
!   const int abi_compat_default = 13;
  
    if (flag_abi_version > latest_abi_version)
      warning (0, "%<-fabi-version=%d%> is not supported, using =%d",
--- 1107,1117 ----
  
    /* 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 = 21;
    /* Possibly different for non-default ABI fixes within a release.  */
    const int default_abi_version = latest_abi_version;
!   /* Generate compatibility aliases for ABI v18 (GCC 13) by default.  */
!   const int abi_compat_default = 18;
  
    if (flag_abi_version > latest_abi_version)
      warning (0, "%<-fabi-version=%d%> is not supported, using =%d",
*************** c_common_post_options (const char **pfil
*** 1165,1170 ****
--- 1188,1196 ----
        warn_cxx20_compat = 0;
        cpp_opts->cpp_warn_cxx20_compat = 0;
      }
+   if (cxx_dialect >= cxx26)
+     /* Don't warn about C++26 compatibility changes in C++26 or later.  */
+     warn_cxx26_compat = 0;
  
    /* C++17 has stricter evaluation order requirements; let's use some of them
       for earlier C++ as well, so chaining works as expected.  */
*************** c_common_post_options (const char **pfil
*** 1188,1194 ****
      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)
      {
--- 1214,1220 ----
      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->get_column_options ().m_tabstop;
  
    if (flag_extern_tls_init)
      {
*************** c_common_post_options (const char **pfil
*** 1215,1229 ****
--- 1241,1278 ----
    if (cxx_dialect >= cxx20)
      flag_concepts = 1;
  
+   /* Coroutines are also a C++20 feature.  */
+   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 		       flag_coroutines, cxx_dialect >= cxx20);
+ 
    /* 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);
  
+   /* Contracts are in C++26.  */
+   SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 		       flag_contracts, cxx_dialect >= cxx26);
+ 
+   /* EnabledBy unfortunately can't specify value to use if set and
+      LangEnabledBy can't specify multiple options with &&.  For -Wunused
+      or -Wunused -Wextra we want these to default to 3 unless user specified
+      some other level explicitly.  */
+   if (warn_unused_but_set_parameter == 1)
+     SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 			 warn_unused_but_set_parameter, 3);
+   if (warn_unused_but_set_variable == 1)
+     SET_OPTION_IF_UNSET (&global_options, &global_options_set,
+ 			 warn_unused_but_set_variable, 3);
+ 
    /* -fimmediate-escalation has no effect when immediate functions are not
       supported.  */
    if (flag_immediate_escalation && cxx_dialect < cxx20)
      flag_immediate_escalation = 0;
  
+   if (flag_reflection && cxx_dialect < cxx26)
+     error ("%<-freflection%> only supported with %<-std=c++26%> or "
+ 	   "%<-std=gnu++26%>");
+ 
    if (num_in_fnames > 1)
      error ("too many filenames given; type %<%s %s%> for usage",
  	   progname, "--help");
*************** c_common_finish (void)
*** 1449,1455 ****
  	}
        if (fdeps_stream == deps_stream && fdeps_stream != stdout)
  	fatal_error (input_location, "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m",
! 		     fdeps_file);
      }
  
    /* For performance, avoid tearing down cpplib's internal structures
--- 1498,1504 ----
  	}
        if (fdeps_stream == deps_stream && fdeps_stream != stdout)
  	fatal_error (input_location, "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m",
! 		     fdeps_file ? fdeps_file : out_fname);
      }
  
    /* For performance, avoid tearing down cpplib's internal structures
*************** c_finish_options (void)
*** 1663,1668 ****
--- 1712,1718 ----
        bool cxx_assert_seen_p = false;
  
        /* All command line defines must have the same location.  */
+       line_table->cmdline_location = line_table->highest_line;
        cpp_force_token_locations (parse_in, line_table->highest_line);
        for (size_t i = 0; i < deferred_count; i++)
  	{
*************** set_std_cxx20 (int iso)
*** 2009,2016 ****
    flag_isoc94 = 1;
    flag_isoc99 = 1;
    flag_isoc11 = 1;
-   /* C++20 includes coroutines. */
-   flag_coroutines = true;
    cxx_dialect = cxx20;
    lang_hooks.name = "GNU C++20";
  }
--- 2059,2064 ----
*************** set_std_cxx23 (int iso)
*** 2027,2034 ****
    flag_isoc94 = 1;
    flag_isoc99 = 1;
    flag_isoc11 = 1;
-   /* C++23 includes coroutines.  */
-   flag_coroutines = true;
    cxx_dialect = cxx23;
    lang_hooks.name = "GNU C++23";
  }
--- 2075,2080 ----
*************** set_std_cxx26 (int iso)
*** 2045,2052 ****
    flag_isoc94 = 1;
    flag_isoc99 = 1;
    flag_isoc11 = 1;
-   /* C++26 includes coroutines.  */
-   flag_coroutines = true;
    cxx_dialect = cxx26;
    lang_hooks.name = "GNU C++26";
  }
--- 2091,2096 ----
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-pch.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-pch.cc
*** gcc-15.2.0/gcc/c-family/c-pch.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-pch.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Precompiled header implementation for the C languages.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** c_common_read_pch (cpp_reader *pfile, co
*** 347,364 ****
    rebuild_location_adhoc_htab (line_table);
    line_table->trace_includes = saved_trace_includes;
  
!   /* Set the current location to the line containing the #include (or the
!      #pragma GCC pch_preprocess) for the purpose of assigning locations to any
!      macros that are about to be restored.  */
!   linemap_add (line_table, LC_ENTER, 0, saved_loc.file,
! 	       saved_loc.line > 1 ? saved_loc.line - 1 : saved_loc.line);
  
    timevar_push (TV_PCH_CPP_RESTORE);
    cpp_result = cpp_read_state (pfile, name, f, smd);
  
    /* Set the current location to the line following the #include, where we
       were prior to processing the PCH.  */
!   linemap_line_start (line_table, saved_loc.line, 0);
  
    timevar_pop (TV_PCH_CPP_RESTORE);
  
--- 347,364 ----
    rebuild_location_adhoc_htab (line_table);
    line_table->trace_includes = saved_trace_includes;
  
!   /* Set the line_map current location to the start of the file, so that things
!      remain in order after cpp_read_state() re-adds any macros that were defined
!      prior to calling gt_pch_restore().  */
!   linemap_add (line_table, LC_ENTER, saved_loc.sysp, saved_loc.file, 0);
  
    timevar_push (TV_PCH_CPP_RESTORE);
    cpp_result = cpp_read_state (pfile, name, f, smd);
  
    /* Set the current location to the line following the #include, where we
       were prior to processing the PCH.  */
!   linemap_add (line_table, LC_RENAME, saved_loc.sysp, saved_loc.file,
! 	       saved_loc.line);
  
    timevar_pop (TV_PCH_CPP_RESTORE);
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-ppoutput.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-ppoutput.cc
*** gcc-15.2.0/gcc/c-family/c-ppoutput.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-ppoutput.cc	Thu Apr 23 11:07:33 2026
***************
*** 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
--- 1,5 ----
  /* Preprocess only, using cpplib.
!    Copyright (C) 1995-2026 Free Software Foundation, Inc.
     Written by Per Bothner, 1994-95.
  
     This program is free software; you can redistribute it and/or modify it
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-pragma.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-pragma.cc
*** gcc-15.2.0/gcc/c-family/c-pragma.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-pragma.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
  
--- 1,5 ----
  /* Handle #pragma, system V.4 style.  Supports #pragma weak and #pragma pack.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** public:
*** 781,787 ****
        PK_IGNORED_ATTRIBUTES,
        PK_DIAGNOSTIC,
      } pd_kind;
!   diagnostic_t diagnostic_kind;
    const char *kind_str;
    const char *option_str;
    bool own_option_str;
--- 781,787 ----
        PK_IGNORED_ATTRIBUTES,
        PK_DIAGNOSTIC,
      } pd_kind;
!   enum diagnostics::kind diagnostic_kind;
    const char *kind_str;
    const char *option_str;
    bool own_option_str;
*************** public:
*** 792,798 ****
      valid = false;
      loc_kind = loc_option = UNKNOWN_LOCATION;
      pd_kind = PK_INVALID;
!     diagnostic_kind = DK_UNSPECIFIED;
      kind_str = option_str = nullptr;
      own_option_str = false;
    }
--- 792,798 ----
      valid = false;
      loc_kind = loc_option = UNKNOWN_LOCATION;
      pd_kind = PK_INVALID;
!     diagnostic_kind = diagnostics::kind::unspecified;
      kind_str = option_str = nullptr;
      own_option_str = false;
    }
*************** public:
*** 808,814 ****
      kind_str = kind_string;
  
      pd_kind = PK_INVALID;
!     diagnostic_kind = DK_UNSPECIFIED;
      if (strcmp (kind_str, "push") == 0)
        pd_kind = PK_PUSH;
      else if (strcmp (kind_str, "pop") == 0)
--- 808,814 ----
      kind_str = kind_string;
  
      pd_kind = PK_INVALID;
!     diagnostic_kind = diagnostics::kind::unspecified;
      if (strcmp (kind_str, "push") == 0)
        pd_kind = PK_PUSH;
      else if (strcmp (kind_str, "pop") == 0)
*************** public:
*** 818,834 ****
      else if (strcmp (kind_str, "error") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = DK_ERROR;
        }
      else if (strcmp (kind_str, "warning") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = DK_WARNING;
        }
      else if (strcmp (kind_str, "ignored") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = DK_IGNORED;
        }
    }
  
--- 818,834 ----
      else if (strcmp (kind_str, "error") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = diagnostics::kind::error;
        }
      else if (strcmp (kind_str, "warning") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = diagnostics::kind::warning;
        }
      else if (strcmp (kind_str, "ignored") == 0)
        {
  	pd_kind = PK_DIAGNOSTIC;
! 	diagnostic_kind = diagnostics::kind::ignored;
        }
    }
  
*************** handle_pragma_diagnostic_impl ()
*** 1016,1022 ****
       what we used to do here before and changing it breaks e.g.
       PR69543 and PR69558.  */
    control_warning_option (option_index, (int) data.diagnostic_kind,
! 			  arg, data.diagnostic_kind != DK_IGNORED,
  			  input_location, lang_mask, &handlers,
  			  &global_options, &global_options_set,
  			  global_dc);
--- 1016,1023 ----
       what we used to do here before and changing it breaks e.g.
       PR69543 and PR69558.  */
    control_warning_option (option_index, (int) data.diagnostic_kind,
! 			  arg,
! 			  data.diagnostic_kind != diagnostics::kind::ignored,
  			  input_location, lang_mask, &handlers,
  			  &global_options, &global_options_set,
  			  global_dc);
*************** static const struct omp_pragma_def omp_p
*** 1528,1533 ****
--- 1529,1535 ----
    { "error", PRAGMA_OMP_ERROR },
    { "end", PRAGMA_OMP_END },
    { "flush", PRAGMA_OMP_FLUSH },
+   { "groupprivate", PRAGMA_OMP_GROUPPRIVATE },
    { "interop", PRAGMA_OMP_INTEROP },
    { "metadirective", PRAGMA_OMP_METADIRECTIVE },
    { "nothing", PRAGMA_OMP_NOTHING },
*************** init_pragma (void)
*** 1847,1853 ****
    c_register_pragma_with_early_handler ("GCC", "target",
  					handle_pragma_target,
  					handle_pragma_target);
!   c_register_pragma ("GCC", "optimize", handle_pragma_optimize);
    c_register_pragma_with_early_handler ("GCC", "push_options",
  					handle_pragma_push_options,
  					handle_pragma_push_options);
--- 1849,1857 ----
    c_register_pragma_with_early_handler ("GCC", "target",
  					handle_pragma_target,
  					handle_pragma_target);
!   c_register_pragma_with_early_handler ("GCC", "optimize",
! 					handle_pragma_optimize,
! 					handle_pragma_optimize);
    c_register_pragma_with_early_handler ("GCC", "push_options",
  					handle_pragma_push_options,
  					handle_pragma_push_options);
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-pragma.h gcc-16.1.0-RC-20260423/gcc/c-family/c-pragma.h
*** gcc-15.2.0/gcc/c-family/c-pragma.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-pragma.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Pragma related interfaces.
!    Copyright (C) 1995-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Pragma related interfaces.
!    Copyright (C) 1995-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum pragma_kind {
*** 61,66 ****
--- 61,67 ----
    PRAGMA_OMP_END,
    PRAGMA_OMP_FLUSH,
    PRAGMA_OMP_FOR,
+   PRAGMA_OMP_GROUPPRIVATE,
    PRAGMA_OMP_INTEROP,
    PRAGMA_OMP_LOOP,
    PRAGMA_OMP_NOTHING,
*************** enum pragma_omp_clause {
*** 119,124 ****
--- 120,126 ----
    PRAGMA_OMP_CLAUSE_DEVICE_TYPE,
    PRAGMA_OMP_CLAUSE_DIST_SCHEDULE,
    PRAGMA_OMP_CLAUSE_DOACROSS,
+   PRAGMA_OMP_CLAUSE_DYN_GROUPPRIVATE,
    PRAGMA_OMP_CLAUSE_ENTER,
    PRAGMA_OMP_CLAUSE_FILTER,
    PRAGMA_OMP_CLAUSE_FINAL,
*************** enum pragma_omp_clause {
*** 174,179 ****
--- 176,182 ----
    PRAGMA_OMP_CLAUSE_USE,
    PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR,
    PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR,
+   PRAGMA_OMP_CLAUSE_USES_ALLOCATORS,
  
    /* Clauses for OpenACC.  */
    PRAGMA_OACC_CLAUSE_ASYNC,
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-pretty-print.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-pretty-print.cc
*** gcc-15.2.0/gcc/c-family/c-pretty-print.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-pretty-print.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Subroutines common to both C and C++ pretty-printers.
!    Copyright (C) 2002-2026 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,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
--- 36,42 ----
  #include "function.h"
  #include "basic-block.h"
  #include "gimple.h"
! #include "tm.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.
*** 46,57 ****
     takes expression or declaration contexts into account.  */
  
  
- #define pp_c_maybe_whitespace(PP)            \
-    do {                                      \
-      if ((PP)->get_padding () == pp_before)  \
-        pp_c_whitespace (PP);                 \
-    } while (0)
- 
  /* literal  */
  static void pp_c_char (c_pretty_printer *, int);
  
--- 46,51 ----
*************** c_pretty_printer::direct_abstract_declar
*** 640,646 ****
  	  add_space = true;
  	}
  
!       if (tree arr = lookup_attribute ("array", TYPE_ATTRIBUTES (t)))
  	{
  	  if (TREE_VALUE (arr))
  	    {
--- 634,640 ----
  	  add_space = true;
  	}
  
!       if (tree arr = lookup_attribute ("array ", TYPE_ATTRIBUTES (t)))
  	{
  	  if (TREE_VALUE (arr))
  	    {
*************** c_pretty_printer::c_pretty_printer (dump
*** 2994,3000 ****
  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.  */
--- 2988,2994 ----
  std::unique_ptr<pretty_printer>
  c_pretty_printer::clone () const
  {
!   return std::make_unique<c_pretty_printer> (*this);
  }
  
  /* Print the tree T in full, on file FILE.  */
*************** pp_c_tree_decl_identifier (c_pretty_prin
*** 3055,3060 ****
--- 3049,3124 ----
    pp_c_identifier (pp, name);
  }
  
+ /* Prints "[version: VERSION]" for a versioned function decl.
+    This will only print for targets with target_version semantics.  */
+ void
+ pp_c_function_target_version (c_pretty_printer *pp, tree t)
+ {
+   if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
+     return;
+ 
+   string_slice version = get_target_version (t);
+   if (!version.is_valid ())
+     return;
+ 
+   pp_c_whitespace (pp);
+ 
+   pp_c_left_bracket (pp);
+   pp_c_left_bracket (pp);
+   pp_string (pp, "target_version");
+   pp_c_left_paren (pp);
+   pp_doublequote (pp);
+   pp_string_n (pp, version.begin (), version.size ());
+   pp_doublequote (pp);
+   pp_c_right_paren (pp);
+   pp_c_right_bracket (pp);
+   pp_c_right_bracket (pp);
+ 
+   pp->set_padding (pp_before);
+ }
+ 
+ /* Prints "[clones: VERSION, +]" for a versioned function decl.
+    This only works for targets with target_version semantics.  */
+ void
+ pp_c_function_target_clones (c_pretty_printer *pp, tree t)
+ {
+   /* Only print for target_version semantics.
+      This is because for target FMV semantics a target_clone always defines
+      the entire FMV set.  target_version semantics can mix target_clone and
+      target_version decls in the definition of a FMV set and so the
+      target_clone becomes a part of the identity of the declaration.  */
+   if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
+     return;
+ 
+   auto_vec<string_slice> versions = get_clone_versions (t, NULL, false);
+   if (versions.is_empty ())
+     return;
+ 
+   pp_c_whitespace (pp);
+ 
+   string_slice final_version = versions.pop ();
+   pp_c_left_bracket (pp);
+   pp_c_left_bracket (pp);
+   pp_string (pp, "target_clones");
+   pp_c_left_paren (pp);
+   for (string_slice version : versions)
+     {
+       pp_doublequote (pp);
+       pp_string_n (pp, version.begin (), version.size ());
+       pp_doublequote (pp);
+       pp_string (pp, ",");
+       pp_c_whitespace (pp);
+     }
+   pp_doublequote (pp);
+   pp_string_n (pp, final_version.begin (), final_version.size ());
+   pp_doublequote (pp);
+   pp_c_right_paren (pp);
+   pp_c_right_bracket (pp);
+   pp_c_right_bracket (pp);
+ 
+   pp->set_padding (pp_before);
+ }
+ 
  #if CHECKING_P
  
  namespace selftest {
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-pretty-print.h gcc-16.1.0-RC-20260423/gcc/c-family/c-pretty-print.h
*** gcc-15.2.0/gcc/c-family/c-pretty-print.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-pretty-print.h	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* Various declarations for the C and C++ pretty-printers.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
     Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
  
  This file is part of GCC.
*************** public:
*** 102,107 ****
--- 102,113 ----
  #define pp_ptr_operator(PP, D)          (PP)->ptr_operator (PP, D)
  #define pp_parameter_list(PP, T)        (PP)->parameter_list (PP, T)
  
+ #define pp_c_maybe_whitespace(PP)            \
+    do {                                      \
+      if ((PP)->get_padding () == pp_before)  \
+        pp_c_whitespace (PP);                 \
+    } while (0)
+ 
  void pp_c_whitespace (c_pretty_printer *);
  void pp_c_left_paren (c_pretty_printer *);
  void pp_c_right_paren (c_pretty_printer *);
*************** void pp_c_ws_string (c_pretty_printer *,
*** 138,143 ****
--- 144,151 ----
  void pp_c_identifier (c_pretty_printer *, const char *);
  void pp_c_string_literal (c_pretty_printer *, tree);
  void pp_c_integer_constant (c_pretty_printer *, tree);
+ void pp_c_function_target_version (c_pretty_printer *, tree);
+ void pp_c_function_target_clones (c_pretty_printer *, tree);
  
  void print_c_tree (FILE *file, tree t, dump_flags_t);
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-semantics.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-semantics.cc
*** gcc-15.2.0/gcc/c-family/c-semantics.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-semantics.cc	Thu Apr 23 11:07:33 2026
***************
*** 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.
--- 1,5 ----
  /* This file contains subroutine used by the C front-end to construct GENERIC.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
     Written by Benjamin Chelf (chelf@codesourcery.com).
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-spellcheck.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-spellcheck.cc
*** gcc-15.2.0/gcc/c-family/c-spellcheck.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-spellcheck.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-spellcheck.h gcc-16.1.0-RC-20260423/gcc/c-family/c-spellcheck.h
*** gcc-15.2.0/gcc/c-family/c-spellcheck.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-spellcheck.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Find near-matches for macros.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Find near-matches for macros.
!    Copyright (C) 2016-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-target-def.h gcc-16.1.0-RC-20260423/gcc/c-family/c-target-def.h
*** gcc-15.2.0/gcc/c-family/c-target-def.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-target-def.h	Thu Apr 23 11:07:33 2026
***************
*** 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
--- 1,5 ----
  /* Default initializers for C-family target hooks.
!    Copyright (C) 2011-2026 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-target.def gcc-16.1.0-RC-20260423/gcc/c-family/c-target.def
*** gcc-15.2.0/gcc/c-family/c-target.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-target.def	Thu Apr 23 11:07:33 2026
***************
*** 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
--- 1,5 ----
  /* Target hook definitions for C-family front ends.
!    Copyright (C) 2001-2026 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-target.h gcc-16.1.0-RC-20260423/gcc/c-family/c-target.h
*** gcc-15.2.0/gcc/c-family/c-target.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-target.h	Thu Apr 23 11:07:33 2026
***************
*** 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
--- 1,5 ----
  /* Data structure definitions for target-specific C-family behavior.
!    Copyright (C) 2001-2026 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
     under the terms of the GNU General Public License as published by the
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-type-mismatch.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-type-mismatch.cc
*** gcc-15.2.0/gcc/c-family/c-type-mismatch.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-type-mismatch.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Implementations of classes for reporting type mismatches.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Implementations of classes for reporting type mismatches.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-type-mismatch.h gcc-16.1.0-RC-20260423/gcc/c-family/c-type-mismatch.h
*** gcc-15.2.0/gcc/c-family/c-type-mismatch.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-type-mismatch.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Declarations relating to classes for reporting type mismatches.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations relating to classes for reporting type mismatches.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-ubsan.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-ubsan.cc
*** gcc-15.2.0/gcc/c-family/c-ubsan.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-ubsan.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2026 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
*************** get_bound_from_access_with_size (tree ca
*** 397,404 ****
      return NULL_TREE;
  
    tree ref_to_size = CALL_EXPR_ARG (call, 1);
!   unsigned int class_of_size = TREE_INT_CST_LOW (CALL_EXPR_ARG (call, 2));
!   tree type = TREE_TYPE (CALL_EXPR_ARG (call, 3));
    tree size = fold_build2 (MEM_REF, type, unshare_expr (ref_to_size),
  			   build_int_cst (ptr_type_node, 0));
    /* If size is negative value, treat it as zero.  */
--- 397,403 ----
      return NULL_TREE;
  
    tree ref_to_size = CALL_EXPR_ARG (call, 1);
!   tree type = TREE_TYPE (TREE_TYPE (CALL_EXPR_ARG (call, 2)));
    tree size = fold_build2 (MEM_REF, type, unshare_expr (ref_to_size),
  			   build_int_cst (ptr_type_node, 0));
    /* If size is negative value, treat it as zero.  */
*************** get_bound_from_access_with_size (tree ca
*** 410,421 ****
  			build_zero_cst (type), size);
    }
  
!   /* Only when class_of_size is 1, i.e, the number of the elements of
!      the object type, return the size.  */
!   if (class_of_size != 1)
!     return NULL_TREE;
!   else
!     size = fold_convert (sizetype, size);
  
    return size;
  }
--- 409,415 ----
  			build_zero_cst (type), size);
    }
  
!   size = fold_convert (sizetype, size);
  
    return size;
  }
*************** ubsan_instrument_bounds (location_t loc,
*** 460,466 ****
  
    bound = fold_build2 (PLUS_EXPR, TREE_TYPE (bound), bound,
  		       build_int_cst (TREE_TYPE (bound),
! 		       1 + ignore_off_by_one));
  
    /* Detect flexible array members and suchlike, unless
       -fsanitize=bounds-strict.  */
--- 454,460 ----
  
    bound = fold_build2 (PLUS_EXPR, TREE_TYPE (bound), bound,
  		       build_int_cst (TREE_TYPE (bound),
! 				      1 + ignore_off_by_one));
  
    /* Detect flexible array members and suchlike, unless
       -fsanitize=bounds-strict.  */
*************** ubsan_instrument_bounds (location_t loc,
*** 547,591 ****
      return NULL_TREE;
  
    *index = save_expr (*index);
    /* Create a "(T *) 0" tree node to describe the array type.  */
!   tree zero_with_type = build_int_cst (build_pointer_type (type), 0);
    return build_call_expr_internal_loc (loc, IFN_UBSAN_BOUNDS,
  				       void_type_node, 3, zero_with_type,
  				       *index, bound);
  }
  
! /* Return true iff T is an array that was instrumented by SANITIZE_BOUNDS.  */
  
  bool
! ubsan_array_ref_instrumented_p (const_tree t)
  {
!   if (TREE_CODE (t) != ARRAY_REF)
      return false;
  
!   tree op1 = TREE_OPERAND (t, 1);
!   return TREE_CODE (op1) == COMPOUND_EXPR
! 	 && TREE_CODE (TREE_OPERAND (op1, 0)) == CALL_EXPR
! 	 && CALL_EXPR_FN (TREE_OPERAND (op1, 0)) == NULL_TREE
! 	 && CALL_EXPR_IFN (TREE_OPERAND (op1, 0)) == IFN_UBSAN_BOUNDS;
  }
  
! /* Instrument an ARRAY_REF, if it hasn't already been instrumented.
!    IGNORE_OFF_BY_ONE is true if the ARRAY_REF is inside a ADDR_EXPR.  */
  
  void
  ubsan_maybe_instrument_array_ref (tree *expr_p, bool ignore_off_by_one)
  {
    if (!ubsan_array_ref_instrumented_p (*expr_p)
        && sanitize_flags_p (SANITIZE_BOUNDS | SANITIZE_BOUNDS_STRICT)
        && current_function_decl != NULL_TREE)
      {
!       tree op0 = TREE_OPERAND (*expr_p, 0);
!       tree op1 = TREE_OPERAND (*expr_p, 1);
!       tree e = ubsan_instrument_bounds (EXPR_LOCATION (*expr_p), op0, &op1,
! 					ignore_off_by_one);
        if (e != NULL_TREE)
! 	TREE_OPERAND (*expr_p, 1) = build2 (COMPOUND_EXPR, TREE_TYPE (op1),
! 					    e, op1);
      }
  }
  
--- 541,889 ----
      return NULL_TREE;
  
    *index = save_expr (*index);
+   /* If TYPE is a VLA, use 1 instead of 0 as the first argument and
+      use just the addend to TYPE_MAX_VALUE (domain) as the third argument
+      temporarily, so that gimplification can use TYPE_MAX_VALUE (domain)
+      after gimplify_type_sizes.  See PR120052.  */
+   bool is_vla = (TYPE_MAX_VALUE (domain)
+ 		 && TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST);
+   if (is_vla)
+     bound = build_int_cst (TREE_TYPE (bound), 1 + ignore_off_by_one);
+   /* Create a "(T *) 0" (or 1) tree node to describe the array type.  */
+   tree zero_with_type = build_int_cst (build_pointer_type (type), is_vla);
+   return build_call_expr_internal_loc (loc, IFN_UBSAN_BOUNDS,
+ 				       void_type_node, 3, zero_with_type,
+ 				       *index, bound);
+ }
+ 
+ 
+ /* Instrument array bounds for the pointer array address which is
+    a call to .ACCESS_WITH_SIZE.  We create special
+    builtin, that gets expanded in the sanopt pass, and make an array
+    dimention of it.  POINTER_ADDR is the pointer array's base address.
+    *INDEX is an index to the array.
+    IGNORE_OFF_BY_ONE is true if the POINTER_ADDR is not inside an
+    INDIRECT_REF.
+    Return NULL_TREE if no instrumentation is emitted.  */
+ 
+ tree
+ ubsan_instrument_bounds_pointer_address (location_t loc, tree pointer_addr,
+ 					 tree *index,
+ 					 bool ignore_off_by_one)
+ {
+   tree call = pointer_addr;
+   if (!is_access_with_size_p (call))
+     return NULL_TREE;
+   tree bound = get_bound_from_access_with_size (call);
+ 
+   if (ignore_off_by_one)
+     bound = fold_build2 (PLUS_EXPR, TREE_TYPE (bound), bound,
+ 			 build_int_cst (TREE_TYPE (bound),
+ 			 1));
+ 
+   /* Don't emit instrumentation in the most common cases.  */
+   tree idx = NULL_TREE;
+   if (TREE_CODE (*index) == INTEGER_CST)
+     idx = *index;
+   else if (TREE_CODE (*index) == BIT_AND_EXPR
+ 	   && TREE_CODE (TREE_OPERAND (*index, 1)) == INTEGER_CST)
+     idx = TREE_OPERAND (*index, 1);
+   if (idx
+       && TREE_CODE (bound) == INTEGER_CST
+       && tree_int_cst_sgn (idx) >= 0
+       && tree_int_cst_lt (idx, bound))
+     return NULL_TREE;
+ 
+   *index = save_expr (*index);
+ 
+   /* Create an array_type for the corresponding pointer array.  */
+   tree itype = build_range_type (sizetype, size_zero_node, NULL_TREE);
+   /* The array's element type can be get from the return type of the call to
+      .ACCESS_WITH_SIZE.  */
+   tree element_type = TREE_TYPE (TREE_TYPE (call));
+   tree array_type = build_array_type (element_type, itype);
    /* Create a "(T *) 0" tree node to describe the array type.  */
!   tree zero_with_type = build_int_cst (build_pointer_type (array_type), 0);
    return build_call_expr_internal_loc (loc, IFN_UBSAN_BOUNDS,
  				       void_type_node, 3, zero_with_type,
  				       *index, bound);
  }
  
! /* This structure is to combine a factor with its parent and its position
!  * in its parent tree.  */
! struct factor_t
! {
!   tree factor;
!   tree parent; /* the parent tree of this factor.  */
!   int pos;     /* the position of this factor in its parent tree.  */
! };
! 
! /* for a multiply expression like:
!     ((long unsigned int) m * (long unsigned int) SAVE_EXPR <n>) * 4
! 
!    locate all the factors, the parents of the factor and the position of
!    the factor in its parent, and put them to VEC_FACTORS.  */
! 
! static void
! get_factors_from_mul_expr (tree mult_expr, tree parent,
! 			   int pos, auto_vec<factor_t> *vec_factors)
! {
!   struct factor_t mult_factor = {0, 0, -1};
!   mult_factor.factor = mult_expr;
!   mult_factor.parent = parent;
!   mult_factor.pos = pos;
! 
!   while (CONVERT_EXPR_CODE_P (TREE_CODE (mult_expr)))
!     {
!       mult_factor.parent = mult_expr;
!       mult_factor.pos = 0;
!       mult_expr = TREE_OPERAND (mult_expr, 0);
!       mult_factor.factor = mult_expr;
!     }
!   if (TREE_CODE (mult_expr) != MULT_EXPR)
!     vec_factors->safe_push (mult_factor);
!   else
!     {
!       get_factors_from_mul_expr (TREE_OPERAND (mult_expr, 0), mult_expr,
! 				 0, vec_factors);
!       get_factors_from_mul_expr (TREE_OPERAND (mult_expr, 1), mult_expr,
! 				 1, vec_factors);
!     }
! }
! 
! /* Given an OFFSET expression, and the ELEMENT_SIZE,
!    get the index expression from OFFSET and return it.
!    For example:
!    OFFSET:
!     ((long unsigned int) m * (long unsigned int) SAVE_EXPR <n>) * 4
!    ELEMENT_SIZE:
!     (sizetype) SAVE_EXPR <n> * 4
!    get the index as (long unsigned int) m, and return it.
!    One special case is when the OFFSET is an integer constant, and the
!    element_size is also an integer constant, we should get the index
!    as OFFSET/element_size.
!    The INDEX_P holds the pointer to the parent tree of the index,
!    INDEX_N holds the position of the index in its parent.  */
! 
! static tree
! get_index_from_offset (tree offset, tree *index_p,
! 		       int *index_n, tree element_size)
! {
!   if (TREE_CODE (offset) != MULT_EXPR
!       && TREE_CODE (offset) != INTEGER_CST)
!     return NULL_TREE;
! 
!   if (TREE_CODE (offset) == INTEGER_CST
!       && TREE_CODE (element_size) != INTEGER_CST)
!     return NULL_TREE;
! 
!   if (TREE_CODE (offset) == INTEGER_CST
!       && TREE_CODE (element_size) == INTEGER_CST)
!     return fold_build2 (EXACT_DIV_EXPR, TREE_TYPE (offset),
! 			offset, element_size);
! 
!   auto_vec<factor_t> e_factors, o_factors;
!   get_factors_from_mul_expr (element_size, NULL, -1, &e_factors);
!   get_factors_from_mul_expr (offset, *index_p, *index_n, &o_factors);
! 
!   if (e_factors.is_empty () || o_factors.is_empty ())
!     return NULL_TREE;
! 
!   bool all_found = true;
!   for (unsigned i = 0; i < e_factors.length (); i++)
!     {
!       factor_t e_size_factor = e_factors[i];
!       bool found = false;
!       for (unsigned j = 0; j < o_factors.length ();)
! 	{
! 	  factor_t o_exp_factor = o_factors[j];
! 	  if (operand_equal_p (e_size_factor.factor, o_exp_factor.factor))
! 	    {
! 	      o_factors.unordered_remove (j);
! 	      found = true;
! 	      break;
! 	    }
! 	  else
! 	    j++;
! 	}
!       if (!found)
! 	all_found = false;
!     }
! 
!   if (!all_found)
!     return NULL_TREE;
! 
!   if (o_factors.length () != 1)
!     return NULL_TREE;
! 
!   *index_p = o_factors[0].parent;
!   *index_n = o_factors[0].pos;
!   return o_factors[0].factor;
! }
! 
! /* For an pointer + offset computation expression, such as,
!    .ACCESS_WITH_SIZE (p->c, &p->b, 1, 0, -1, 0B)
!     + (sizetype) ((long unsigned int) index * 4
!    Return the index of this pointer array reference,
!    set the parent tree of INDEX to *INDEX_P.
!    set the operand position of the INDEX in the parent tree to *INDEX_N.
!    If failed, return NULL_TREE.  */
! 
! static tree
! get_index_from_pointer_addr_expr (tree pointer, tree *index_p, int *index_n)
! {
!   *index_p = NULL_TREE;
!   *index_n = -1;
!   tree call = TREE_OPERAND (pointer, 0);
!   if (!is_access_with_size_p (call))
!     return NULL_TREE;
! 
!   /* Get the pointee type of the call to .ACCESS_WITH_SIZE.
!      This should be the element type of the pointer array.  */
!   tree pointee_type = TREE_TYPE (TREE_TYPE (call));
!   if (!COMPLETE_OR_VOID_TYPE_P (pointee_type))
!     return NULL_TREE;
!   tree pointee_size
!     = (VOID_TYPE_P (pointee_type)
!        ? size_one_node : TYPE_SIZE_UNIT (pointee_type));
! 
!   tree index_exp = TREE_OPERAND (pointer, 1);
!   *index_p = pointer;
!   *index_n = 1;
! 
!   if (!(TREE_CODE (index_exp) != MULT_EXPR
! 	&& tree_int_cst_equal (pointee_size, integer_one_node)))
!     {
!       while (CONVERT_EXPR_P (index_exp))
! 	{
! 	  *index_p = index_exp;
! 	  *index_n = 0;
! 	  index_exp = TREE_OPERAND (index_exp, 0);
! 	}
!       index_exp = get_index_from_offset (index_exp, index_p,
! 					 index_n, pointee_size);
! 
!       if (!index_exp)
! 	return NULL_TREE;
!     }
! 
!   while (CONVERT_EXPR_P (index_exp))
!     {
!       *index_p = index_exp;
!       *index_n = 0;
!       index_exp = TREE_OPERAND (index_exp, 0);
!     }
! 
!   return index_exp;
! }
! 
! /* Return TRUE when the EXPR is a pointer array address that could be
!    instrumented.
!    We only instrument an address computation similar as the following:
!       .ACCESS_WITH_SIZE (p->c, &p->b, 1, 0, -1, 0B)
! 	+ (sizetype) ((long unsigned int) index * 4)
!    if the EXPR is instrumentable, return TRUE and
!    set the index to *INDEX.
!    set the .ACCESS_WITH_SIZE to *BASE.
!    set the parent tree of INDEX to *INDEX_P.
!    set the operand position of the INDEX in the parent tree to INDEX_N.  */
! 
! static bool
! is_instrumentable_pointer_array_address (tree expr, tree *base,
! 					 tree *index, tree *index_p,
! 					 int *index_n)
! {
!   /* For a pointer array address as:
! 	.ACCESS_WITH_SIZE (p->c, &p->b, 1, 0, -1, 0B)
! 	  + (sizetype) ((long unsigned int) index * 4)
!      op0 is the call to .ACCESS_WITH_SIZE;
!      op1 is the index.  */
!   if (TREE_CODE (expr) != POINTER_PLUS_EXPR)
!     return false;
! 
!   tree op0 = TREE_OPERAND (expr, 0);
!   if (!is_access_with_size_p (op0))
!     return false;
!   tree op1 = get_index_from_pointer_addr_expr (expr, index_p, index_n);
!   if (op1 != NULL_TREE)
!     {
!       *base = op0;
!       *index = op1;
!       return true;
!     }
!   return false;
! }
! 
! /* Return true iff T is an array or an indirect reference that was
!    instrumented by SANITIZE_BOUNDS.  */
  
  bool
! ubsan_array_ref_instrumented_p (tree t)
  {
!   if (TREE_CODE (t) != ARRAY_REF
!       && TREE_CODE (t) != MEM_REF)
      return false;
  
!   bool is_array = (TREE_CODE (t) == ARRAY_REF);
!   tree op0 = NULL_TREE;
!   tree op1 = NULL_TREE;
!   tree index_p = NULL_TREE;
!   int index_n = 0;
!   if (is_array)
!     {
!       op1 = TREE_OPERAND (t, 1);
!       return TREE_CODE (op1) == COMPOUND_EXPR
! 	     && TREE_CODE (TREE_OPERAND (op1, 0)) == CALL_EXPR
! 	     && CALL_EXPR_FN (TREE_OPERAND (op1, 0)) == NULL_TREE
! 	     && CALL_EXPR_IFN (TREE_OPERAND (op1, 0)) == IFN_UBSAN_BOUNDS;
!     }
!   else if (is_instrumentable_pointer_array_address (t, &op0, &op1,
! 						    &index_p, &index_n))
!     return TREE_CODE (op1) == COMPOUND_EXPR
! 	   && TREE_CODE (TREE_OPERAND (op1, 0)) == CALL_EXPR
! 	   && CALL_EXPR_FN (TREE_OPERAND (op1, 0)) == NULL_TREE
! 	   && CALL_EXPR_IFN (TREE_OPERAND (op1, 0)) == IFN_UBSAN_BOUNDS;
! 
!   return false;
  }
  
! /* Instrument an ARRAY_REF or an address computation whose base address is
!    a call to .ACCESS_WITH_SIZE, if it hasn't already been instrumented.
!    IGNORE_OFF_BY_ONE is true if the ARRAY_REF is inside a ADDR_EXPR, or the
!    address computation is not inside a INDIRECT_REF.  */
  
  void
  ubsan_maybe_instrument_array_ref (tree *expr_p, bool ignore_off_by_one)
  {
+   tree e = NULL_TREE;
+   tree op0 = NULL_TREE;
+   tree op1 = NULL_TREE;
+   tree index_p = NULL_TREE;  /* the parent tree of INDEX.  */
+   int index_n = 0;  /* the operand position of INDEX in the parent tree.  */
+ 
    if (!ubsan_array_ref_instrumented_p (*expr_p)
        && sanitize_flags_p (SANITIZE_BOUNDS | SANITIZE_BOUNDS_STRICT)
        && current_function_decl != NULL_TREE)
      {
!       if (TREE_CODE (*expr_p) == ARRAY_REF)
! 	{
! 	  op0 = TREE_OPERAND (*expr_p, 0);
! 	  op1 = TREE_OPERAND (*expr_p, 1);
! 	  index_p = *expr_p;
! 	  index_n = 1;
! 	  e = ubsan_instrument_bounds (EXPR_LOCATION (*expr_p), op0,
! 				       &op1, ignore_off_by_one);
! 	}
!       else if (is_instrumentable_pointer_array_address (*expr_p, &op0, &op1,
! 							&index_p, &index_n))
! 	e = ubsan_instrument_bounds_pointer_address (EXPR_LOCATION (*expr_p),
! 						     op0, &op1,
! 						     ignore_off_by_one);
! 
!       /* Replace the original INDEX with the instrumented INDEX.  */
        if (e != NULL_TREE)
! 	TREE_OPERAND (index_p, index_n)
! 	  = build2 (COMPOUND_EXPR, TREE_TYPE (op1), e, op1);
      }
  }
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-ubsan.h gcc-16.1.0-RC-20260423/gcc/c-family/c-ubsan.h
*** gcc-15.2.0/gcc/c-family/c-ubsan.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-ubsan.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
--- 1,5 ----
  /* UndefinedBehaviorSanitizer, undefined behavior detector.
!    Copyright (C) 2013-2026 Free Software Foundation, Inc.
     Contributed by Marek Polacek <polacek@redhat.com>
  
  This file is part of GCC.
diff -Nrcpad gcc-15.2.0/gcc/c-family/c-warn.cc gcc-16.1.0-RC-20260423/gcc/c-family/c-warn.cc
*** gcc-15.2.0/gcc/c-family/c-warn.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c-warn.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Diagnostic routines shared by all languages that are variants of C.
!    Copyright (C) 1992-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Diagnostic routines shared by all languages that are variants of C.
!    Copyright (C) 1992-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** expr_to_str (pretty_printer &pp, tree ex
*** 3425,3773 ****
    return pp_formatted_text (&pp);
  }
  
! /* Detect and diagnose a mismatch between an attribute access specification
!    on the original declaration of FNDECL and that on the parameters NEWPARMS
!    from its redeclaration.  ORIGLOC is the location of the first declaration
!    (FNDECL's is set to the location of the redeclaration).  */
  
! void
! warn_parm_array_mismatch (location_t origloc, tree fndecl, tree newparms)
  {
!   /* The original parameter list (copied from the original declaration
!      into the current [re]declaration, FNDECL)).  The two are equal if
!      and only if FNDECL is the first declaration.  */
!   tree curparms = DECL_ARGUMENTS (fndecl);
!   if (!curparms || !newparms || curparms == newparms)
      return;
  
!   if (TREE_CODE (curparms) != PARM_DECL
!       || TREE_CODE (newparms) != PARM_DECL)
      return;
-   /* Extract the (possibly empty) attribute access specification from
-      the declaration and its type (it doesn't yet reflect those created
-      in response to NEWPARMS).  */
-   rdwr_map cur_idx;
-   tree fntype = TREE_TYPE (fndecl);
-   init_attr_rdwr_indices (&cur_idx, TYPE_ATTRIBUTES (fntype));
  
!   /* Build a (possibly null) chain of access attributes corresponding
!      to NEWPARMS.  */
!   const bool builtin = fndecl_built_in_p (fndecl);
!   tree newattrs = build_attr_access_from_parms (newparms, builtin);
  
!   /* Extract the (possibly empty) attribute access specification from
!      NEWATTRS.  */
!   rdwr_map new_idx;
!   init_attr_rdwr_indices (&new_idx, newattrs);
  
!   if (cur_idx.is_empty () && new_idx.is_empty ())
      {
!       /* If both specs are empty check pointers to VLAs for mismatches. */
!       warn_parm_ptrarray_mismatch (origloc, curparms, newparms);
!       return;
      }
-   /* ...otherwise, if at least one spec isn't empty there may be mismatches,
-      such as between f(T*) and f(T[1]), where the former mapping would be
-      empty.  */
  
!   /* Create an empty access specification and use it for pointers with
!      no spec of their own.  */
!   attr_access ptr_spec = { };
! 
!   /* Iterate over the two lists of function parameters, comparing their
!      respective mappings and diagnosing mismatches.  */
!   unsigned parmpos = 0;
!   for (tree curp = curparms, newp = newparms; curp;
!        curp = TREE_CHAIN (curp), newp = TREE_CHAIN (newp), ++parmpos)
!     {
!       if (!newp)
! 	/* Bail on invalid redeclarations with fewer arguments.  */
! 	return;
  
!       /* Only check pointers and C++ references.  */
!       tree curptype = TREE_TYPE (curp);
!       tree newptype = TREE_TYPE (newp);
!       if (!POINTER_TYPE_P (curptype) || !POINTER_TYPE_P (newptype))
! 	continue;
  
!       /* Skip mismatches in __builtin_va_list that is commonly
! 	 an array but that in declarations of built-ins decays
! 	 to a pointer.  */
!       if (builtin && TREE_TYPE (newptype) == TREE_TYPE (va_list_type_node))
! 	continue;
  
!       /* Access specs for the argument on the current (previous) and
! 	 new (to replace the current) declarations.  Either may be null,
! 	 indicating the parameter is an ordinary pointer with no size
! 	 associated with it.  */
!       attr_access *cura = cur_idx.get (parmpos);
!       attr_access *newa = new_idx.get (parmpos);
  
!       if (!newa)
  	{
! 	  /* Continue of both parameters are pointers with no size
! 	     associated with it.  */
! 	  if (!cura)
! 	    continue;
! 
! 	  /* Otherwise point at PTR_SPEC and set its parameter pointer
! 	     and number.  */
! 	  newa = &ptr_spec;
! 	  newa->ptr = newp;
! 	  newa->ptrarg = parmpos;
  	}
!       else if (!cura)
  	{
! 	  cura = &ptr_spec;
! 	  cura->ptr = curp;
! 	  cura->ptrarg = parmpos;
  	}
  
!       /* Set if the parameter is [re]declared as a VLA.  */
!       const bool cur_vla_p = cura->size || cura->minsize == HOST_WIDE_INT_M1U;
!       const bool new_vla_p = newa->size || newa->minsize == HOST_WIDE_INT_M1U;
  
!       if (DECL_P (curp))
! 	origloc = DECL_SOURCE_LOCATION (curp);
!       else if (EXPR_P (curp) && EXPR_HAS_LOCATION (curp))
! 	origloc = EXPR_LOCATION (curp);
  
!       /* The location of the parameter in the current redeclaration.  */
!       location_t newloc = DECL_SOURCE_LOCATION (newp);
!       if (origloc == UNKNOWN_LOCATION)
! 	origloc = newloc;
  
!       const std::string newparmstr = newa->array_as_string (newptype);
!       const std::string curparmstr = cura->array_as_string (curptype);
!       if (new_vla_p && !cur_vla_p)
  	{
! 	  if (warning_at (newloc, OPT_Wvla_parameter,
! 			  "argument %u of type %s declared as "
! 			  "a variable length array",
! 			  parmpos + 1, newparmstr.c_str ()))
! 	    inform (origloc,
! 		    (cura == &ptr_spec
! 		     ? G_("previously declared as a pointer %s")
! 		     : G_("previously declared as an ordinary array %s")),
! 		    curparmstr.c_str ());
! 	  continue;
  	}
  
!       if (newa == &ptr_spec)
  	{
! 	  /* The new declaration uses the pointer form.  Detect mismatches
! 	     between the pointer and a previous array or VLA forms.  */
! 	  if (cura->minsize == HOST_WIDE_INT_M1U)
! 	    {
! 	      /* Diagnose a pointer/VLA mismatch.  */
! 	      if (warning_at (newloc, OPT_Wvla_parameter,
! 			      "argument %u of type %s declared "
! 			      "as a pointer",
! 			      parmpos + 1, newparmstr.c_str ()))
! 		inform (origloc,
! 			"previously declared as a variable length array %s",
! 			curparmstr.c_str ());
! 	      continue;
! 	    }
  
! 	  if (cura->minsize && cura->minsize != HOST_WIDE_INT_M1U)
  	    {
! 	      /* Diagnose mismatches between arrays with a constant
! 		 bound and pointers.  */
! 	      if (warning_at (newloc, OPT_Warray_parameter_,
! 			      "argument %u of type %s declared "
! 			      "as a pointer",
! 			      parmpos + 1, newparmstr.c_str ()))
! 		inform (origloc, "previously declared as an array %s",
! 			curparmstr.c_str ());
! 	      continue;
  	    }
  	}
  
!       if (!new_vla_p && cur_vla_p)
! 	{
! 	  if (warning_at (newloc, OPT_Wvla_parameter,
! 			  "argument %u of type %s declared "
! 			  "as an ordinary array",
! 			  parmpos + 1, newparmstr.c_str ()))
! 	    inform (origloc,
! 		    "previously declared as a variable length array %s",
! 		    curparmstr.c_str ());
! 	  continue;
! 	}
  
!       /* Move on to the next pair of parameters if both of the current
! 	 pair are VLAs with a single variable bound that refers to
! 	 a parameter at the same position.  */
!       if (newa->size && cura->size
! 	  && newa->sizarg != UINT_MAX
! 	  && newa->sizarg == cura->sizarg
! 	  && newa->minsize == cura->minsize
! 	  && !TREE_PURPOSE (newa->size) && !TREE_PURPOSE (cura->size))
  	continue;
  
!       if (newa->size || cura->size)
  	{
! 	  unsigned newunspec, curunspec;
! 	  unsigned newbnds = newa->vla_bounds (&newunspec) + newunspec;
! 	  unsigned curbnds = cura->vla_bounds (&curunspec) + curunspec;
  
! 	  if (newbnds != curbnds)
  	    {
! 	      if (warning_n (newloc, OPT_Wvla_parameter, newbnds,
! 			     "argument %u of type %s declared with "
! 			     "%u variable bound",
! 			     "argument %u of type %s declared with "
! 			     "%u variable bounds",
! 			     parmpos + 1, newparmstr.c_str (),
! 			     newbnds))
! 		inform_n (origloc, curbnds,
! 			  "previously declared as %s with %u variable bound",
! 			  "previously declared as %s with %u variable bounds",
! 			  curparmstr.c_str (), curbnds);
! 	      continue;
  	    }
  
! 	  if (newunspec > curunspec)
  	    {
! 	      location_t warnloc = newloc, noteloc = origloc;
! 	      const char *warnparmstr = newparmstr.c_str ();
! 	      const char *noteparmstr = curparmstr.c_str ();
! 	      unsigned warnunspec = newunspec, noteunspec = curunspec;
! 
! 	      if (warning_n (warnloc, OPT_Wvla_parameter, warnunspec,
! 			     "argument %u of type %s declared with "
! 			     "%u unspecified variable bound",
! 			     "argument %u of type %s declared with "
! 			     "%u unspecified variable bounds",
! 			     parmpos + 1, warnparmstr, warnunspec))
  		{
! 		  if (warnloc == newloc)
! 		    inform_n (noteloc, noteunspec,
! 			      "previously declared as %s with %u unspecified "
! 			      "variable bound",
! 			      "previously declared as %s with %u unspecified "
! 			      "variable bounds",
! 			      noteparmstr, noteunspec);
! 		  else
! 		    inform_n (noteloc, noteunspec,
! 			      "subsequently declared as %s with %u unspecified "
! 			      "variable bound",
! 			      "subsequently declared as %s with %u unspecified "
! 			      "variable bounds",
! 			      noteparmstr, noteunspec);
  		}
  	      continue;
  	    }
  	}
  
!       /* Iterate over the lists of VLA variable bounds, comparing each
! 	 pair for equality, and diagnosing mismatches.  */
!       for (tree newvbl = newa->size, curvbl = cura->size; newvbl && curvbl;
! 	   newvbl = TREE_CHAIN (newvbl), curvbl = TREE_CHAIN (curvbl))
  	{
! 	  tree newpos = TREE_PURPOSE (newvbl);
! 	  tree curpos = TREE_PURPOSE (curvbl);
! 
! 	  tree newbnd = vla_bound_parm_decl (TREE_VALUE (newvbl));
! 	  tree curbnd = vla_bound_parm_decl (TREE_VALUE (curvbl));
! 
! 	  if (newpos == curpos && newbnd == curbnd)
! 	    /* In the expected case when both bounds either refer to
! 	       the same positional parameter or when neither does,
! 	       and both are the same expression they are necessarily
! 	       the same.  */
  	    continue;
  
! 	  pretty_printer pp1, pp2;
! 	  const char* const newbndstr = expr_to_str (pp1, newbnd, "*");
! 	  const char* const curbndstr = expr_to_str (pp2, curbnd, "*");
  
! 	  if (!newpos != !curpos
! 	      || (newpos && !tree_int_cst_equal (newpos, curpos)))
! 	    {
! 	      /* Diagnose a mismatch between a specified VLA bound and
! 		 an unspecified one.  This can only happen in the most
! 		 significant bound.
  
! 		 Distinguish between the common case of bounds that are
! 		 other function parameters such as in
! 		   f (int n, int[n]);
! 		 and others.  */
  
! 	      gcc_rich_location richloc (newloc);
! 	      bool warned;
! 	      if (newpos)
! 		{
! 		  /* Also underline the VLA bound argument.  */
! 		  richloc.add_range (DECL_SOURCE_LOCATION (newbnd));
! 		  warned = warning_at (&richloc, OPT_Wvla_parameter,
! 				       "argument %u of type %s declared "
! 				       "with mismatched bound argument %E",
! 				       parmpos + 1, newparmstr.c_str (),
! 				       plus_one (newpos));
! 		}
! 	      else
! 		warned = warning_at (&richloc, OPT_Wvla_parameter,
! 				     "argument %u of type %s declared "
! 				     "with mismatched bound %qs",
! 				     parmpos + 1, newparmstr.c_str (),
! 				     newbndstr);
  
! 	      if (warned)
! 		{
! 		  gcc_rich_location richloc (origloc);
! 		  if (curpos)
! 		    {
! 		      /* Also underline the VLA bound argument.  */
! 		      richloc.add_range (DECL_SOURCE_LOCATION (curbnd));
! 		      inform (&richloc, "previously declared as %s with "
! 			      "bound argument %E",
! 			      curparmstr.c_str (), plus_one (curpos));
! 		    }
! 		  else
! 		    inform (&richloc, "previously declared as %s with bound "
! 			    "%qs", curparmstr.c_str (), curbndstr);
  
! 		  continue;
! 		}
! 	    }
  
! 	  if (!newpos && newbnd && curbnd)
! 	    {
! 	      /* The VLA bounds don't refer to other function parameters.
! 		 Compare them lexicographically to detect gross mismatches
! 		 such as between T[foo()] and T[bar()].  */
! 	      if (operand_equal_p (newbnd, curbnd,
! 				   OEP_DECL_NAME | OEP_LEXICOGRAPHIC))
! 		continue;
  
! 	      if (warning_at (newloc, OPT_Wvla_parameter,
! 			      "argument %u of type %s declared with "
! 			      "mismatched bound %qs",
! 			      parmpos + 1, newparmstr.c_str (), newbndstr))
! 		inform (origloc, "previously declared as %s with bound %qs",
! 			curparmstr.c_str (), curbndstr);
! 	      continue;
! 	    }
! 	}
  
!       if (newa->minsize == cura->minsize
! 	  || (((newa->minsize == 0 && newa->mode != access_deferred)
! 	       || (cura->minsize == 0 && cura->mode != access_deferred))
! 	      && newa != &ptr_spec
! 	      && cura != &ptr_spec))
! 	continue;
  
!       if (!newa->static_p && !cura->static_p && warn_array_parameter < 2)
! 	/* Avoid warning about mismatches in ordinary (non-static) arrays
! 	   at levels below 2.  */
! 	continue;
  
!       if (warning_at (newloc, OPT_Warray_parameter_,
! 		      "argument %u of type %s with mismatched bound",
! 		      parmpos + 1, newparmstr.c_str ()))
! 	inform (origloc, "previously declared as %s", curparmstr.c_str ());
      }
  }
  
--- 3425,3787 ----
    return pp_formatted_text (&pp);
  }
  
! /* Helper for warn_parms_array_mismatch.  Compare the mappings of
!    two function parameters and diagnose mismatches.  ORIGLOC is the
!    location of the first function declaration.  CURP and NEWP are the
!    parameters in the first and second function declarators,
!    respectively.  PARMPOS is the position of the parameters within the
!    list of parameter declarations.  BUILTIN is true if the function is
!    a builtin.  */
  
! static void
! warn_parm_array_mismatch (location_t origloc, rdwr_map *cur_idx,
! 			  rdwr_map *new_idx, tree curp, tree newp,
! 			  unsigned parmpos, bool builtin)
  {
!   /* Create an empty access specification and use it for pointers with
!      no spec of their own.  */
!   attr_access ptr_spec = { };
! 
!   /* Only check pointers and C++ references.  */
!   tree curptype = TREE_TYPE (curp);
!   tree newptype = TREE_TYPE (newp);
!   if (!POINTER_TYPE_P (curptype) || !POINTER_TYPE_P (newptype))
      return;
  
!   /* Skip mismatches in __builtin_va_list that is commonly
!      an array but that in declarations of built-ins decays
!      to a pointer.  */
!   if (builtin && TREE_TYPE (newptype) == TREE_TYPE (va_list_type_node))
      return;
  
!   /* Access specs for the argument on the current (previous) and
!      new (to replace the current) declarations.  Either may be null,
!      indicating the parameter is an ordinary pointer with no size
!      associated with it.  */
!   attr_access *cura = cur_idx->get (parmpos);
!   attr_access *newa = new_idx->get (parmpos);
  
!   if (!newa)
!     {
!       /* Continue if both parameters are pointers with no size
! 	 associated with them.  */
!       if (!cura)
! 	return;
  
!       /* Otherwise point at PTR_SPEC and set its parameter pointer
! 	 and number.  */
!       newa = &ptr_spec;
!       newa->ptr = newp;
!       newa->ptrarg = parmpos;
!     }
!   else if (!cura)
      {
!       cura = &ptr_spec;
!       cura->ptr = curp;
!       cura->ptrarg = parmpos;
      }
  
!   /* Set if the parameter is [re]declared as a VLA.  */
!   const bool cur_vla_p = cura->size || cura->minsize == HOST_WIDE_INT_M1U;
!   const bool new_vla_p = newa->size || newa->minsize == HOST_WIDE_INT_M1U;
  
!   if (DECL_P (curp))
!     origloc = DECL_SOURCE_LOCATION (curp);
!   else if (EXPR_P (curp) && EXPR_HAS_LOCATION (curp))
!     origloc = EXPR_LOCATION (curp);
  
!   /* The location of the parameter in the current redeclaration.  */
!   location_t newloc = DECL_SOURCE_LOCATION (newp);
!   if (origloc == UNKNOWN_LOCATION)
!     origloc = newloc;
  
!   const std::string newparmstr = newa->array_as_string (newptype);
!   const std::string curparmstr = cura->array_as_string (curptype);
!   if (new_vla_p && !cur_vla_p)
!     {
!       if (warning_at (newloc, OPT_Wvla_parameter,
! 		      "argument %u of type %s "
! 		      "declared as a variable length array",
! 		      parmpos + 1, newparmstr.c_str ()))
! 	inform (origloc,
! 		(cura == &ptr_spec
! 		 ? G_("previously declared as a pointer %s")
! 		 : G_("previously declared as an ordinary array %s")),
! 		curparmstr.c_str ());
!       return;
!     }
  
!   if (newa == &ptr_spec)
!     {
!       /* The new declaration uses the pointer form.  Detect mismatches
! 	 between the pointer and a previous array or VLA forms.  */
!       if (cura->minsize == HOST_WIDE_INT_M1U)
  	{
! 	  /* Diagnose a pointer/VLA mismatch.  */
! 	  if (warning_at (newloc, OPT_Wvla_parameter,
! 			  "argument %u of type %s declared as a pointer",
! 			  parmpos + 1, newparmstr.c_str ()))
! 	    inform (origloc,
! 		    "previously declared as a variable length array %s",
! 		    curparmstr.c_str ());
! 	  return;
  	}
! 
!       if (cura->minsize && cura->minsize != HOST_WIDE_INT_M1U)
  	{
! 	  /* Diagnose mismatches between arrays with a constant
! 	     bound and pointers.  */
! 	  if (warning_at (newloc, OPT_Warray_parameter_,
! 			  "argument %u of type %s declared as a pointer",
! 			  parmpos + 1, newparmstr.c_str ()))
! 	    inform (origloc, "previously declared as an array %s",
! 		    curparmstr.c_str ());
! 	  return;
  	}
+     }
  
!   if (!new_vla_p && cur_vla_p)
!     {
!       if (warning_at (newloc, OPT_Wvla_parameter,
! 		      "argument %u of type %s declared as an ordinary array",
! 		      parmpos + 1, newparmstr.c_str ()))
! 	inform (origloc, "previously declared as a variable length array %s",
! 		curparmstr.c_str ());
!       return;
!     }
  
!   /* Move on to the next pair of parameters if both of the current
!      pair are VLAs with a single variable bound that refers to
!      a parameter at the same position.  */
!   if (newa->size && cura->size
!       && newa->sizarg != UINT_MAX
!       && newa->sizarg == cura->sizarg
!       && newa->minsize == cura->minsize
!       && !TREE_PURPOSE (newa->size) && !TREE_PURPOSE (cura->size))
!     return;
  
!   if (newa->size || cura->size)
!     {
!       unsigned newunspec, curunspec;
!       unsigned newbnds = newa->vla_bounds (&newunspec) + newunspec;
!       unsigned curbnds = cura->vla_bounds (&curunspec) + curunspec;
  
!       if (newbnds != curbnds)
  	{
! 	  if (warning_n (newloc, OPT_Wvla_parameter, newbnds,
! 			 "argument %u of type %s declared with "
! 			 "%u variable bound",
! 			 "argument %u of type %s declared with "
! 			 "%u variable bounds",
! 			 parmpos + 1, newparmstr.c_str (),
! 			 newbnds))
! 	    inform_n (origloc, curbnds,
! 		      "previously declared as %s with %u variable bound",
! 		      "previously declared as %s with %u variable bounds",
! 		      curparmstr.c_str (), curbnds);
! 	  return;
  	}
  
!       if (newunspec > curunspec)
  	{
! 	  location_t warnloc = newloc, noteloc = origloc;
! 	  const char *warnparmstr = newparmstr.c_str ();
! 	  const char *noteparmstr = curparmstr.c_str ();
! 	  unsigned warnunspec = newunspec, noteunspec = curunspec;
  
! 	  if (warning_n (warnloc, OPT_Wvla_parameter, warnunspec,
! 			 "argument %u of type %s declared with "
! 			 "%u unspecified variable bound",
! 			 "argument %u of type %s declared with "
! 			 "%u unspecified variable bounds",
! 			 parmpos + 1, warnparmstr, warnunspec))
  	    {
! 	      if (warnloc == newloc)
! 		inform_n (noteloc, noteunspec,
! 			  "previously declared as %s with "
! 			  "%u unspecified variable bound",
! 			  "previously declared as %s with "
! 			  "%u unspecified variable bounds",
! 			  noteparmstr, noteunspec);
! 	      else
! 		inform_n (noteloc, noteunspec,
! 			  "subsequently declared as %s with "
! 			  "%u unspecified variable bound",
! 			  "subsequently declared as %s with "
! 			  "%u unspecified variable bounds",
! 			  noteparmstr, noteunspec);
  	    }
+ 	  return;
  	}
+     }
  
!   /* Iterate over the lists of VLA variable bounds, comparing each
!      pair for equality, and diagnosing mismatches.  */
!   for (tree newvbl = newa->size, curvbl = cura->size; newvbl && curvbl;
!        newvbl = TREE_CHAIN (newvbl), curvbl = TREE_CHAIN (curvbl))
!     {
!       tree newpos = TREE_PURPOSE (newvbl);
!       tree curpos = TREE_PURPOSE (curvbl);
  
!       tree newbnd = vla_bound_parm_decl (TREE_VALUE (newvbl));
!       tree curbnd = vla_bound_parm_decl (TREE_VALUE (curvbl));
! 
!       if (newpos == curpos && newbnd == curbnd)
! 	/* In the expected case when both bounds either refer to
! 	   the same positional parameter or when neither does,
! 	   and both are the same expression they are necessarily
! 	   the same.  */
  	continue;
  
!       pretty_printer pp1, pp2;
!       const char* const newbndstr = expr_to_str (pp1, newbnd, "*");
!       const char* const curbndstr = expr_to_str (pp2, curbnd, "*");
! 
!       if (!newpos != !curpos
! 	  || (newpos && !tree_int_cst_equal (newpos, curpos)))
  	{
! 	  /* Diagnose a mismatch between a specified VLA bound and
! 	     an unspecified one.  This can only happen in the most
! 	     significant bound.
  
! 	     Distinguish between the common case of bounds that are
! 	     other function parameters such as in
! 	       f (int n, int[n]);
! 	     and others.  */
! 
! 	  gcc_rich_location richloc (newloc);
! 	  bool warned;
! 	  if (newpos)
  	    {
! 	      /* Also underline the VLA bound argument.  */
! 	      richloc.add_range (DECL_SOURCE_LOCATION (newbnd));
! 	      warned = warning_at (&richloc, OPT_Wvla_parameter,
! 				   "argument %u of type %s "
! 				   "declared with mismatched bound argument %E",
! 				   parmpos + 1, newparmstr.c_str (),
! 				   plus_one (newpos));
  	    }
+ 	  else
+ 	    warned = warning_at (&richloc, OPT_Wvla_parameter,
+ 				 "argument %u of type %s "
+ 				 "declared with mismatched bound %qs",
+ 				 parmpos + 1, newparmstr.c_str (),
+ 				 newbndstr);
  
! 	  if (warned)
  	    {
! 	      gcc_rich_location richloc (origloc);
! 	      if (curpos)
  		{
! 		  /* Also underline the VLA bound argument.  */
! 		  richloc.add_range (DECL_SOURCE_LOCATION (curbnd));
! 		  inform (&richloc,
! 			  "previously declared as %s with bound argument %E",
! 			  curparmstr.c_str (), plus_one (curpos));
  		}
+ 	      else
+ 		inform (&richloc,
+ 			"previously declared as %s with bound %qs",
+ 			curparmstr.c_str (), curbndstr);
+ 
  	      continue;
  	    }
  	}
  
!       if (!newpos && newbnd && curbnd)
  	{
! 	  /* The VLA bounds don't refer to other function parameters.
! 	     Compare them lexicographically to detect gross mismatches
! 	     such as between T[foo()] and T[bar()].  */
! 	  if (operand_equal_p (newbnd, curbnd,
! 			       OEP_DECL_NAME | OEP_LEXICOGRAPHIC))
  	    continue;
  
! 	  if (warning_at (newloc, OPT_Wvla_parameter,
! 			  "argument %u of type %s "
! 			  "declared with mismatched bound %qs",
! 			  parmpos + 1, newparmstr.c_str (), newbndstr))
! 	    inform (origloc, "previously declared as %s with bound %qs",
! 		    curparmstr.c_str (), curbndstr);
! 	  continue;
! 	}
!     }
  
!   if (newa->minsize == cura->minsize
!       || (((newa->minsize == 0 && newa->mode != access_deferred)
! 	   || (cura->minsize == 0 && cura->mode != access_deferred))
! 	  && newa != &ptr_spec
! 	  && cura != &ptr_spec))
!     return;
  
!   if (!newa->static_p && !cura->static_p && warn_array_parameter < 2)
!     /* Avoid warning about mismatches in ordinary (non-static) arrays
!        at levels below 2.  */
!     return;
  
!   if (warning_at (newloc, OPT_Warray_parameter_,
! 		  "argument %u of type %s with mismatched bound",
! 		  parmpos + 1, newparmstr.c_str ()))
!     inform (origloc, "previously declared as %s", curparmstr.c_str ());
! }
  
! /* Detect and diagnose a mismatch between an attribute access specification
!    on the original declaration of FNDECL and that on the parameters NEWPARMS
!    from its redeclaration.  ORIGLOC is the location of the first declaration
!    (FNDECL's is set to the location of the redeclaration).  */
  
! void
! warn_parms_array_mismatch (location_t origloc, tree fndecl, tree newparms)
! {
!   /* The original parameter list (copied from the original declaration
!      into the current [re]declaration, FNDECL)).  The two are equal if
!      and only if FNDECL is the first declaration.  */
!   tree curparms = DECL_ARGUMENTS (fndecl);
!   if (!curparms || !newparms || curparms == newparms)
!     return;
  
!   if (TREE_CODE (curparms) != PARM_DECL
!       || TREE_CODE (newparms) != PARM_DECL)
!     return;
!   /* Extract the (possibly empty) attribute access specification from
!      the declaration and its type (it doesn't yet reflect those created
!      in response to NEWPARMS).  */
!   rdwr_map cur_idx;
!   tree fntype = TREE_TYPE (fndecl);
!   init_attr_rdwr_indices (&cur_idx, TYPE_ATTRIBUTES (fntype));
  
!   /* Build a (possibly null) chain of access attributes corresponding
!      to NEWPARMS.  */
!   const bool builtin = fndecl_built_in_p (fndecl);
!   tree newattrs = build_attr_access_from_parms (newparms, builtin);
  
!   /* Extract the (possibly empty) attribute access specification from
!      NEWATTRS.  */
!   rdwr_map new_idx;
!   init_attr_rdwr_indices (&new_idx, newattrs);
  
!   if (cur_idx.is_empty () && new_idx.is_empty ())
!     {
!       /* If both specs are empty check pointers to VLAs for mismatches. */
!       warn_parm_ptrarray_mismatch (origloc, curparms, newparms);
!       return;
!     }
!   /* ...otherwise, if at least one spec isn't empty there may be mismatches,
!      such as between f(T*) and f(T[1]), where the former mapping would be
!      empty.  */
  
!   /* Iterate over the two lists of function parameters, comparing their
!      respective mappings and diagnosing mismatches.  */
!   unsigned parmpos = 0;
!   for (tree curp = curparms, newp = newparms; curp;
!        curp = TREE_CHAIN (curp), newp = TREE_CHAIN (newp), ++parmpos)
!     {
!       if (!newp)
! 	/* Bail on invalid redeclarations with fewer arguments.  */
! 	return;
! 
!       warn_parm_array_mismatch (origloc, &cur_idx, &new_idx, curp, newp, parmpos,
! 				builtin);
      }
  }
  
*************** do_warn_array_compare (location_t locati
*** 3835,3841 ****
      op1 = TREE_OPERAND (op1, 0);
  
    auto_diagnostic_group d;
!   diagnostic_t kind = DK_WARNING;
    const char *msg;
    if (c_dialect_cxx () && cxx_dialect >= cxx20)
      {
--- 3849,3855 ----
      op1 = TREE_OPERAND (op1, 0);
  
    auto_diagnostic_group d;
!   enum diagnostics::kind kind = diagnostics::kind::warning;
    const char *msg;
    if (c_dialect_cxx () && cxx_dialect >= cxx20)
      {
*************** do_warn_array_compare (location_t locati
*** 3843,3849 ****
        if (cxx_dialect >= cxx26)
  	{
  	  msg = G_("comparison between two arrays is not allowed in C++26");
! 	  kind = DK_PERMERROR;
  	}
        else
  	msg = G_("comparison between two arrays is deprecated in C++20");
--- 3857,3863 ----
        if (cxx_dialect >= cxx26)
  	{
  	  msg = G_("comparison between two arrays is not allowed in C++26");
! 	  kind = diagnostics::kind::permerror;
  	}
        else
  	msg = G_("comparison between two arrays is deprecated in C++20");
diff -Nrcpad gcc-15.2.0/gcc/c-family/c.opt gcc-16.1.0-RC-20260423/gcc/c-family/c.opt
*** gcc-15.2.0/gcc/c-family/c.opt	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c.opt	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  ; Options for the C, ObjC, C++ and ObjC++ front ends.
! ; Copyright (C) 2003-2025 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,5 ----
  ; Options for the C, ObjC, C++ and ObjC++ front ends.
! ; Copyright (C) 2003-2026 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** C ObjC C++ ObjC++ Separate Alias(A) Miss
*** 45,50 ****
--- 45,54 ----
  -assert=
  C ObjC C++ ObjC++ Joined Alias(A) MissingArgError(assertion missing after %qs)
  
+ -compile-std-module
+ C++ ObjC++ Driver
+ --compile-std-module	Compile module units for <bits/stdc++.h>, std, and std.compat.
+ 
  -comments
  C ObjC C++ ObjC++ Alias(C)
  
*************** C ObjC C++ ObjC++ Separate Alias(o)
*** 145,152 ****
  -output=
  C ObjC C++ ObjC++ Joined Alias(o)
  
  -output-pch
! C ObjC C++ ObjC++ Separate
  
  -pedantic
  C ObjC C++ ObjC++ Alias(pedantic)
--- 149,158 ----
  -output=
  C ObjC C++ ObjC++ Joined Alias(o)
  
+ ; The documented user option for PCH output is -o.  The driver converts that
+ ; to -output-pch when invoking the front ends to produce a PCH file.
  -output-pch
! C ObjC C++ ObjC++ Separate Undocumented
  
  -pedantic
  C ObjC C++ ObjC++ Alias(pedantic)
*************** C ObjC C++ ObjC++ Joined Separate Missin
*** 267,281 ****
  -MT <target>	Add a target that does not require quoting.
  
  fdeps-format=
! C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing format after %qs)
  Structured format for output dependency information.  Supported (\"p1689r5\").
  
  fdeps-file=
! C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing output path after %qs)
  File for output dependency information.
  
  fdeps-target=
! C ObjC C++ ObjC++ NoDriverArg Joined MissingArgError(missing path after %qs)
  -fdeps-target=obj.o Output file for the compile step.
  
  P
--- 273,287 ----
  -MT <target>	Add a target that does not require quoting.
  
  fdeps-format=
! C ObjC C++ ObjC++ RejectNegative Joined MissingArgError(missing format after %qs)
  Structured format for output dependency information.  Supported (\"p1689r5\").
  
  fdeps-file=
! C ObjC C++ ObjC++ RejectNegative Joined MissingArgError(missing output path after %qs)
  File for output dependency information.
  
  fdeps-target=
! C ObjC C++ ObjC++ RejectNegative Joined MissingArgError(missing path after %qs)
  -fdeps-target=obj.o Output file for the compile step.
  
  P
*************** C ObjC C++ ObjC++ Var(warn_alloc_size) W
*** 351,362 ****
  Warn when allocating insufficient storage for the target type of the assigned pointer.
  
  Walloc-size-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX)
  -Walloc-size-larger-than=<bytes>	Warn for calls to allocation functions that
  attempt to allocate objects larger than the specified number of bytes.
  
  Wno-alloc-size-larger-than
! C ObjC C++ LTO ObjC++ Alias(Walloc-size-larger-than=,18446744073709551615EiB,none) Warning
  Disable Walloc-size-larger-than= warning.  Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger.
  
  Walloc-zero
--- 357,368 ----
  Warn when allocating insufficient storage for the target type of the assigned pointer.
  
  Walloc-size-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_alloc_size_limit) Joined RejectNegative Host_Wide_Int ByteSize Warning Init(HOST_WIDE_INT_MAX)
  -Walloc-size-larger-than=<bytes>	Warn for calls to allocation functions that
  attempt to allocate objects larger than the specified number of bytes.
  
  Wno-alloc-size-larger-than
! C ObjC C++ LTO ObjC++ RejectNegative Alias(Walloc-size-larger-than=,18446744073709551615EiB,none) Warning
  Disable Walloc-size-larger-than= warning.  Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger.
  
  Walloc-zero
*************** C ObjC C++ ObjC++ Var(warn_alloc_zero) W
*** 364,376 ****
  Warn for calls to allocation functions that specify zero bytes.
  
  Walloca-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
  -Walloca-larger-than=<number>	Warn on unbounded uses of
  alloca, and on bounded uses of alloca whose bound can be larger than
  <number> bytes.
  
  Wno-alloca-larger-than
! C ObjC C++ LTO ObjC++ Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning
  Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.
  
  Warith-conversion
--- 370,382 ----
  Warn for calls to allocation functions that specify zero bytes.
  
  Walloca-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_alloca_limit) Warning Joined RejectNegative Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
  -Walloca-larger-than=<number>	Warn on unbounded uses of
  alloca, and on bounded uses of alloca whose bound can be larger than
  <number> bytes.
  
  Wno-alloca-larger-than
! C ObjC C++ LTO ObjC++ RejectNegative Alias(Walloca-larger-than=,18446744073709551615EiB,none) Warning
  Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger.
  
  Warith-conversion
*************** Wassign-intercept
*** 397,402 ****
--- 403,412 ----
  ObjC ObjC++ Var(warn_assign_intercept) Warning
  Warn whenever an Objective-C assignment is being intercepted by the garbage collector.
  
+ Wabbreviated-auto-in-template-arg
+ C++ ObjC++ Warning Var(warn_abbev_auto_targ) Init(1)
+ Diagnose a placeholder type in a template argument in a function parameter type.
+ 
  Wbad-function-cast
  C ObjC Var(warn_bad_function_cast) Warning
  Warn about casting functions to incompatible types.
*************** Wc++20-compat
*** 493,498 ****
--- 503,512 ----
  C++ ObjC++ Var(warn_cxx20_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0) CPP(cpp_warn_cxx20_compat) CppReason(CPP_W_CXX20_COMPAT)
  Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020.
  
+ Wc++26-compat
+ C++ ObjC++ Var(warn_cxx26_compat) Warning LangEnabledBy(C++ ObjC++,Wall) Init(0)
+ Warn about C++ constructs whose meaning differs between ISO C++ 2023 and ISO C++ 2026.
+ 
  Wc++11-extensions
  C++ ObjC++ Var(warn_cxx11_extensions) Warning Init(1)
  Warn about C++11 constructs in code compiled with an older standard.
*************** Wdeprecated-non-prototype
*** 673,678 ****
--- 687,696 ----
  C ObjC Var(warn_deprecated_non_prototype) Init(-1) Warning
  Warn about calls with arguments to functions declared without parameters.
  
+ Wdeprecated-openmp
+ C ObjC C++ ObjC++ Warning Var(warn_deprecated_openmp) Init(1)
+ Warn about deprecated OpenMP code.
+ 
  Wdeprecated-variadic-comma-omission
  C++ ObjC++ Var(warn_deprecated_variadic_comma_omission) Warning
  Warn about deprecated omission of comma before ... in varargs function declaration.
*************** C ObjC C++ ObjC++
*** 742,748 ****
  ; Documented in common.opt
  
  Werror-implicit-function-declaration
! C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
  This switch is deprecated; use -Werror=implicit-function-declaration instead.
  
  Wexceptions
--- 760,766 ----
  ; Documented in common.opt
  
  Werror-implicit-function-declaration
! C ObjC RejectNegative Undocumented Warning Alias(Werror=, implicit-function-declaration)
  This switch is deprecated; use -Werror=implicit-function-declaration instead.
  
  Wexceptions
*************** Wexpansion-to-defined
*** 753,758 ****
--- 771,784 ----
  C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
  Warn if \"defined\" is used outside #if.
  
+ Wexternal-tu-local
+ C++ ObjC++ Var(warn_tu_local) Warning Init(1)
+ Warn about naming a TU-local entity declared in another translation unit.
+ 
+ Wexpose-global-module-tu-local
+ C++ ObjC++ Var(warn_expose_global_module_tu_local) Init(1) Warning
+ Warn when a module exposes a TU-local entity from the global module fragment.
+ 
  Wextra
  C ObjC C++ ObjC++ Warning
  ; in common.opt
*************** C++ ObjC++ Var(warn_extra_semi) Init(-1)
*** 762,768 ****
  Warn about semicolon after in-class function definition.
  
  Wflex-array-member-not-at-end
! C C++ Var(warn_flex_array_member_not_at_end) Warning
  Warn when a structure containing a C99 flexible array member as the last
  field is not at the end of another structure.
  
--- 788,794 ----
  Warn about semicolon after in-class function definition.
  
  Wflex-array-member-not-at-end
! C ObjC C++ ObjC++ Var(warn_flex_array_member_not_at_end) Warning
  Warn when a structure containing a C99 flexible array member as the last
  field is not at the end of another structure.
  
*************** C ObjC C++ ObjC++ Var(warn_if_not_aligne
*** 854,864 ****
  Warn when the field in a struct is not aligned.
  
  Wignored-qualifiers
! C C++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
  Warn whenever type qualifiers are ignored.
  
  Wignored-attributes
! C C++ Var(warn_ignored_attributes) Init(1) Warning
  Warn whenever attributes are ignored.
  
  Wimplicit
--- 880,890 ----
  Warn when the field in a struct is not aligned.
  
  Wignored-qualifiers
! C ObjC C++ ObjC++ Var(warn_ignored_qualifiers) Warning EnabledBy(Wextra)
  Warn whenever type qualifiers are ignored.
  
  Wignored-attributes
! C ObjC C++ ObjC++ Var(warn_ignored_attributes) Init(1) Warning
  Warn whenever attributes are ignored.
  
  Wimplicit
*************** C ObjC C++ ObjC++ CPP(cpp_warn_invalid_u
*** 938,944 ****
  Warn about invalid UTF-8 characters.
  
  Wjump-misses-init
! C ObjC Var(warn_jump_misses_init) Warning LangEnabledby(C ObjC,Wc++-compat)
  Warn when a jump misses a variable initialization.
  
  Enum
--- 964,970 ----
  Warn about invalid UTF-8 characters.
  
  Wjump-misses-init
! C ObjC Var(warn_jump_misses_init) Warning LangEnabledBy(C ObjC,Wc++-compat)
  Warn when a jump misses a variable initialization.
  
  Enum
*************** Enum(warn_leading_whitespace_kind) Strin
*** 956,961 ****
--- 982,991 ----
  EnumValue
  Enum(warn_leading_whitespace_kind) String(blanks) Value(3)
  
+ Wkeyword-macro
+ C ObjC C++ ObjC++ CPP(cpp_warn_keyword_macro) CppReason(CPP_W_KEYWORD_MACRO) Var(warn_keyword_macro) Init(0) Warning
+ Warn about defining or undefining macros with identifiers equal to keywords (or for C++ conditional keywords or standard attribute names).
+ 
  Wleading-whitespace=
  C ObjC C++ ObjC++ CPP(cpp_warn_leading_whitespace) CppReason(CPP_W_LEADING_WHITESPACE) Enum(warn_leading_whitespace_kind) Joined RejectNegative Var(warn_leading_whitespace) Init(0) Warning
  Warn about leading whitespace style issues on lines except when in raw string literals.
*************** C ObjC C++ ObjC++ Var(warn_memset_transp
*** 997,1003 ****
  Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
  
  Wmisleading-indentation
! C C++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C C++,Wall)
  Warn when the indentation of the code does not reflect the block structure.
  
  Wmismatched-dealloc
--- 1027,1033 ----
  Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not.
  
  Wmisleading-indentation
! C ObjC C++ ObjC++ Common Var(warn_misleading_indentation) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn when the indentation of the code does not reflect the block structure.
  
  Wmismatched-dealloc
*************** Wmultiple-inheritance
*** 1074,1079 ****
--- 1104,1113 ----
  C++ ObjC++ Var(warn_multiple_inheritance) Warning
  Warn on direct multiple inheritance.
  
+ Wmultiple-parameter-fwd-decl-lists
+ C ObjC Var(warn_multiple_parameter_fwd_decl_lists) Warning EnabledBy(Wextra)
+ Warn for multiple lists of forward declarations of function parameters.
+ 
  Wmultistatement-macros
  C ObjC C++ ObjC++ Var(warn_multistatement_macros) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for.
*************** Wnoexcept-type
*** 1098,1103 ****
--- 1132,1141 ----
  C++ ObjC++ Warning Var(warn_noexcept_type) LangEnabledBy(C++ ObjC++,Wabi || Wc++17-compat)
  Warn if C++17 noexcept function type will change the mangled name of a symbol.
  
+ Wnon-c-typedef-for-linkage
+ C++ ObjC++ Var(warn_non_c_typedef_for_linkage) Init(1) Warning
+ Warn for non-C compatible unnamed classes with a typedef name for linkage purposes.
+ 
  Wnon-template-friend
  C++ ObjC++ Var(warn_nontemplate_friend) Init(1) Warning
  Warn when non-templatized friend functions are declared within a template.
*************** C ObjC Var(warn_old_style_definition) In
*** 1163,1169 ****
  Warn if an old-style parameter definition is used.
  
  Wopenacc-parallelism
! C C++ Var(warn_openacc_parallelism) Warning
  Warn about potentially suboptimal choices related to OpenACC parallelism.
  
  Wopenmp
--- 1201,1207 ----
  Warn if an old-style parameter definition is used.
  
  Wopenacc-parallelism
! C ObjC C++ ObjC++ Var(warn_openacc_parallelism) Warning
  Warn about potentially suboptimal choices related to OpenACC parallelism.
  
  Wopenmp
*************** C ObjC C++ ObjC++ Warning Var(warn_openm
*** 1171,1177 ****
  Warn about suspicious OpenMP code.
  
  Wopenmp-simd
! C C++ Var(warn_openmp_simd) Warning LangEnabledBy(C C++,Wall)
  Warn if a simd directive is overridden by the vectorizer cost model.
  
  Woverlength-strings
--- 1209,1215 ----
  Warn about suspicious OpenMP code.
  
  Wopenmp-simd
! C ObjC C++ ObjC++ Var(warn_openmp_simd) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn if a simd directive is overridden by the vectorizer cost model.
  
  Woverlength-strings
*************** C++ ObjC++ Warning Alias(Woverloaded-vir
*** 1183,1189 ****
  Warn about overloaded virtual function names.
  
  Woverloaded-virtual=
! C++ ObjC++ Joined UInteger IntegerRange(0,2) Var(warn_overloaded_virtual) Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
  Warn about overloaded virtual function names.
  
  Woverride-init
--- 1221,1227 ----
  Warn about overloaded virtual function names.
  
  Woverloaded-virtual=
! C++ ObjC++ Joined RejectNegative UInteger IntegerRange(0,2) Var(warn_overloaded_virtual) Warning LangEnabledBy(C++ ObjC++,Wall,1,0)
  Warn about overloaded virtual function names.
  
  Woverride-init
*************** C++ ObjC++ Var(warn_pessimizing_move) Wa
*** 1219,1229 ****
  Warn about calling std::move on a local object in a return statement preventing copy elision.
  
  Wplacement-new
! C++ Warning Alias(Wplacement-new=, 1, 0)
  Warn for placement new expressions with undefined behavior.
  
  Wplacement-new=
! C++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
  Warn for placement new expressions with undefined behavior.
  
  Wpmf-conversions
--- 1257,1267 ----
  Warn about calling std::move on a local object in a return statement preventing copy elision.
  
  Wplacement-new
! C++ ObjC++ Warning Alias(Wplacement-new=, 1, 0)
  Warn for placement new expressions with undefined behavior.
  
  Wplacement-new=
! C++ ObjC++ Joined RejectNegative UInteger Var(warn_placement_new) Init(-1) Warning IntegerRange(0, 2)
  Warn for placement new expressions with undefined behavior.
  
  Wpmf-conversions
*************** Wsequence-point
*** 1319,1324 ****
--- 1357,1370 ----
  C ObjC C++ ObjC++ Var(warn_sequence_point) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall)
  Warn about possible violations of sequence point rules.
  
+ Wsfinae-incomplete=
+ C++ ObjC++ Var(warn_sfinae_incomplete) Warning Init(1) Joined RejectNegative UInteger IntegerRange(0, 2)
+ Warn about an incomplete type affecting semantics in a non-error context.
+ 
+ Wsfinae-incomplete
+ C++ ObjC++ Warning Alias(Wsfinae-incomplete=, 1, 0)
+ Warn about an incomplete type affecting semantics in a non-error context.
+ 
  Wshadow-ivar
  ObjC ObjC++ Var(warn_shadow_ivar) EnabledBy(Wshadow) Init(1) Warning
  Warn if a local declaration hides an instance variable.
*************** C ObjC C++ ObjC++ LangEnabledBy(C ObjC C
*** 1385,1391 ****
  ;
  
  Wstrict-flex-arrays
! C C++ Var(warn_strict_flex_arrays) Warning
  Warn about improper usages of flexible array members
  according to the level of -fstrict-flex-arrays.
  
--- 1431,1437 ----
  ;
  
  Wstrict-flex-arrays
! C ObjC C++ ObjC++ Var(warn_strict_flex_arrays) Warning
  Warn about improper usages of flexible array members
  according to the level of -fstrict-flex-arrays.
  
*************** C ObjC C++ ObjC++ Var(warn_switch_outsid
*** 1463,1474 ****
  Warn about switch values that are outside of the switch's type range.
  
  Wsync-nand
! C C++ Var(warn_sync_nand) Init(1) Warning
  Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
  
  Wsynth
! C++ ObjC++ Var(warn_synth) Warning
! Deprecated.  This switch has no effect.
  
  Wsystem-headers
  C ObjC C++ ObjC++ Warning
--- 1509,1520 ----
  Warn about switch values that are outside of the switch's type range.
  
  Wsync-nand
! C ObjC C++ ObjC++ Var(warn_sync_nand) Init(1) Warning
  Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used.
  
  Wsynth
! C++ ObjC++ Warning Ignore
! Does nothing. Preserved for backward compatibility.
  
  Wsystem-headers
  C ObjC C++ ObjC++ Warning
*************** C ObjC C++ ObjC++ Var(warn_vla) Init(-1)
*** 1615,1627 ****
  Warn if a variable length array is used.
  
  Wvla-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_vla_limit) Warning Joined Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
  -Wvla-larger-than=<number>	Warn on unbounded uses of variable-length
  arrays, and on bounded uses of variable-length arrays whose bound can be
  larger than <number> bytes.
  
  Wno-vla-larger-than
! C ObjC C++ LTO ObjC++ Alias(Wvla-larger-than=,18446744073709551615EiB,none) Warning
  Disable Wvla-larger-than= warning.  Equivalent to Wvla-larger-than=<SIZE_MAX> or larger.
  
  Wvla-parameter
--- 1661,1673 ----
  Warn if a variable length array is used.
  
  Wvla-larger-than=
! C ObjC C++ LTO ObjC++ Var(warn_vla_limit) Warning Joined RejectNegative Host_Wide_Int ByteSize Init(HOST_WIDE_INT_MAX)
  -Wvla-larger-than=<number>	Warn on unbounded uses of variable-length
  arrays, and on bounded uses of variable-length arrays whose bound can be
  larger than <number> bytes.
  
  Wno-vla-larger-than
! C ObjC C++ LTO ObjC++ RejectNegative Alias(Wvla-larger-than=,18446744073709551615EiB,none) Warning
  Disable Wvla-larger-than= warning.  Equivalent to Wvla-larger-than=<SIZE_MAX> or larger.
  
  Wvla-parameter
*************** C++ ObjC++ Ignore
*** 1831,1837 ****
  Does nothing.  Preserved for backward compatibility.
  
  fconstant-string-class=
! ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
  -fconst-string-class=<name>	Use class <name> for constant strings.
  
  fconstexpr-depth=
--- 1877,1883 ----
  Does nothing.  Preserved for backward compatibility.
  
  fconstant-string-class=
! ObjC ObjC++ Joined RejectNegative MissingArgError(no class name specified with %qs)
  -fconst-string-class=<name>	Use class <name> for constant strings.
  
  fconstexpr-depth=
*************** C++ ObjC++ Joined RejectNegative Host_Wi
*** 1856,1902 ****
  
  fcontracts
  C++ ObjC++ Var(flag_contracts) Init(0)
! Enable certain features present in drafts of C++ Contracts.
  
  Enum
! Name(on_off) Type(int) UnknownError(argument %qs must be either %<on%> or %<off%>)
  
  EnumValue
! Enum(on_off) String(off) Value(0)
  
  EnumValue
! Enum(on_off) String(on) Value(1)
  
! fcontract-assumption-mode=
! C++ Joined RejectNegative
! -fcontract-assumption-mode=[on|off]	Enable or disable treating axiom level contracts as assumptions (default on).
  
! fcontract-build-level=
! C++ Joined RejectNegative
! -fcontract-build-level=[off|default|audit]	Specify max contract level to generate runtime checks for.
  
! fcontract-strict-declarations=
! C++ Var(flag_contract_strict_declarations) Enum(on_off) Joined Init(0) RejectNegative
! -fcontract-strict-declarations=[on|off]	Enable or disable warnings on generalized redeclaration of functions with contracts (default off).
  
! fcontract-mode=
! C++ Var(flag_contract_mode) Enum(on_off) Joined Init(1) RejectNegative
! -fcontract-mode=[on|off]	Enable or disable all contract facilities (default on).
  
! fcontract-continuation-mode=
! C++ Joined RejectNegative
! -fcontract-continuation-mode=[on|off]	Enable or disable contract continuation mode (default off).
  
! fcontract-role=
! C++ Joined RejectNegative
! -fcontract-role=<name>:<semantics>	Specify the semantics for all levels in a role (default, review), or a custom contract role with given semantics (ex: opt:assume,assume,assume).
  
! fcontract-semantic=
! C++ Joined RejectNegative
! -fcontract-semantic=<level>:<semantic>	Specify the concrete semantics for level.
  
  fcoroutines
! C++ LTO Var(flag_coroutines)
  Enable C++ coroutines (experimental).
  
  fdebug-cpp
--- 1902,1974 ----
  
  fcontracts
  C++ ObjC++ Var(flag_contracts) Init(0)
! Enable features proposed for C++26 Contracts.
! 
! ; Keep these in step with the values in cp/contracts.h
  
  Enum
! Name(contract_semantic) Type(int)  UnknownError(unrecognized contract evaluation semantic %qs)
  
  EnumValue
! Enum(contract_semantic) String(ignore) Value(1)
  
  EnumValue
! Enum(contract_semantic) String(observe) Value(2)
  
! EnumValue
! Enum(contract_semantic) String(enforce) Value(3)
  
! EnumValue
! Enum(contract_semantic) String(quick_enforce) Value(4)
  
! fcontract-evaluation-semantic=
! C++ ObjC++ Joined RejectNegative Enum(contract_semantic) Var(flag_contract_evaluation_semantic) Init(3)
! -fcontract-evaluation-semantic=[ignore|observe|enforce|quick_enforce]	Select the contract evaluation semantic (defaults to enforce).
  
! fcontracts-conservative-ipa
! C++ ObjC++ Var(flag_contracts_conservative_ipa) Init(1)
! -fcontracts-conservative-ipa	Do not allow certain optimisations between
! functions in contract assertions.
  
! fcontract-checks-outlined
! C++ ObjC++ Var(flag_contract_checks_outlined) Init(0)
! -fcontract-checks-outlined	Build contract checks using outlined functions.
  
! fcontract-disable-optimized-checks
! C++ ObjC++ Var(flag_contract_disable_optimized_checks) Init(0)
! -fcontract-disable-optimized-checks	Disable optimisation of contract checks.
  
! Enum
! Name(client_contract_check) Type(int)  UnknownError(unrecognized client contract check option %qs)
! 
! EnumValue
! Enum(client_contract_check) String(none) Value(0)
! 
! EnumValue
! Enum(client_contract_check) String(pre) Value(1)
! 
! EnumValue
! Enum(client_contract_check) String(all) Value(2)
! 
! fcontracts-client-check=
! C++ ObjC++ Joined RejectNegative Enum(client_contract_check) Var(flag_contract_client_check) Init (0)
! -fcontracts-client-check=[none|pre|all] Select which contracts will be checked on the client side for non virtual functions.
! 
! Enum
! Name(on_off) Type(int) UnknownError(argument %qs must be either %<on%> or %<off%>)
! 
! EnumValue
! Enum(on_off) String(off) Value(0)
! 
! EnumValue
! Enum(on_off) String(on) Value(1)
! 
! fcontracts-definition-check=
! C++ ObjC++ Joined RejectNegative Enum(on_off) Var(flag_contracts_definition_check) Init(1)
! -fcontracts-definition-check=[on|off]	Enable or disable contract checks on the definition side for all functions (default on).
  
  fcoroutines
! C++ ObjC++ LTO Var(flag_coroutines)
  Enable C++ coroutines (experimental).
  
  fdebug-cpp
*************** C++ ObjC++ Var(flag_module_lazy) Init(1)
*** 2086,2092 ****
  Enable lazy module importing.
  
  fmodule-version-ignore
! C++ ObjC Var(flag_module_version_ignore) Integer
  ; undocumented, Very dangerous, but occasionally useful
  
  Winvalid-imported-macros
--- 2158,2164 ----
  Enable lazy module importing.
  
  fmodule-version-ignore
! C++ ObjC Var(flag_module_version_ignore) Integer Undocumented
  ; undocumented, Very dangerous, but occasionally useful
  
  Winvalid-imported-macros
*************** C ObjC Var(warn_compare_distinct_pointer
*** 2098,2120 ****
  Warn if pointers of distinct types are compared without a cast.
  
  flang-info-include-translate
! C++ Var(note_include_translate_yes)
  Note #include directives translated to import declarations.
  
  flang-info-include-translate-not
! C++ Var(note_include_translate_no)
  Note #include directives not translated to import declarations, and not known to be textual.
  
  flang-info-include-translate=
! C++ Joined RejectNegative MissingArgError(missing header name)
  Note a #include translation of a specific header.
  
  flang-info-module-cmi
! C++ Var(note_module_cmi_yes)
  Note Compiled Module Interface pathnames.
  
  flang-info-module-cmi=
! C++ Joined RejectNegative MissingArgError(missing module name)
  Note Compiled Module Interface pathname of a specific module or header-unit.
  
  fmax-include-depth=
--- 2170,2192 ----
  Warn if pointers of distinct types are compared without a cast.
  
  flang-info-include-translate
! C++ ObjC++ Var(note_include_translate_yes)
  Note #include directives translated to import declarations.
  
  flang-info-include-translate-not
! C++ ObjC++ Var(note_include_translate_no)
  Note #include directives not translated to import declarations, and not known to be textual.
  
  flang-info-include-translate=
! C++ ObjC++ Joined RejectNegative MissingArgError(missing header name)
  Note a #include translation of a specific header.
  
  flang-info-module-cmi
! C++ ObjC++ Var(note_module_cmi_yes)
  Note Compiled Module Interface pathnames.
  
  flang-info-module-cmi=
! C++ ObjC++ Joined RejectNegative MissingArgError(missing module name)
  Note Compiled Module Interface pathname of a specific module or header-unit.
  
  fmax-include-depth=
*************** C ObjC C++ ObjC++ LTO Var(flag_openacc)
*** 2227,2233 ****
  Enable OpenACC.
  
  fopenacc-dim=
! C ObjC C++ ObjC++ LTO Joined Var(flag_openacc_dims)
  Specify default OpenACC compute dimensions.
  
  fopenmp
--- 2299,2305 ----
  Enable OpenACC.
  
  fopenacc-dim=
! C ObjC C++ ObjC++ LTO Joined RejectNegative Var(flag_openacc_dims)
  Specify default OpenACC compute dimensions.
  
  fopenmp
*************** frange-for-ext-temps
*** 2285,2290 ****
--- 2357,2366 ----
  C++ ObjC++ Var(flag_range_for_ext_temps)
  Enable lifetime extension of range based for temporaries.
  
+ freflection
+ C++ ObjC++ Var(flag_reflection) Init(0)
+ Enable experimental C++26 Reflection.
+ 
  freplace-objc-classes
  ObjC ObjC++ LTO Var(flag_replace_objc_classes)
  Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime.
*************** C++ ObjC++ Var(flag_sized_deallocation)
*** 2325,2334 ****
  Enable C++14 sized deallocation support.
  
  fstrict-flex-arrays
! C C++ Common Alias(fstrict-flex-arrays=,3,0)
  
  fstrict-flex-arrays=
! C C++ Common Joined RejectNegative UInteger Var(flag_strict_flex_arrays) Init(0) IntegerRange(0,3)
  -fstrict-flex-arrays=<level>    Control when to treat the trailing array of a structure as a flexible array member for the purposes of accessing the elements of such an array. The default is treating all trailing arrays of structures as flexible array members.
  
  fsquangle
--- 2401,2410 ----
  Enable C++14 sized deallocation support.
  
  fstrict-flex-arrays
! C ObjC C++ ObjC++ Common Alias(fstrict-flex-arrays=,3,0)
  
  fstrict-flex-arrays=
! C ObjC C++ ObjC++ Common Joined RejectNegative UInteger Var(flag_strict_flex_arrays) Init(0) IntegerRange(0,3)
  -fstrict-flex-arrays=<level>    Control when to treat the trailing array of a structure as a flexible array member for the purposes of accessing the elements of such an array. The default is treating all trailing arrays of structures as flexible array members.
  
  fsquangle
*************** ObjC ObjC++ Driver Var(flag_gen_declarat
*** 2458,2472 ****
  Dump declarations to a .decl file.
  
  femit-struct-debug-baseonly
! C ObjC C++ ObjC++
  -femit-struct-debug-baseonly	Aggressive reduced debug info for structs.
  
  femit-struct-debug-reduced
! C ObjC C++ ObjC++
  -femit-struct-debug-reduced	Conservative reduced debug info for structs.
  
  femit-struct-debug-detailed=
! C ObjC C++ ObjC++ Joined
  -femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs.
  
  fext-numeric-literals
--- 2534,2548 ----
  Dump declarations to a .decl file.
  
  femit-struct-debug-baseonly
! C ObjC C++ ObjC++  RejectNegative
  -femit-struct-debug-baseonly	Aggressive reduced debug info for structs.
  
  femit-struct-debug-reduced
! C ObjC C++ ObjC++ RejectNegative
  -femit-struct-debug-reduced	Conservative reduced debug info for structs.
  
  femit-struct-debug-detailed=
! C ObjC C++ ObjC++ Joined RejectNegative
  -femit-struct-debug-detailed=<spec-list>	Detailed reduced debug info for structs.
  
  fext-numeric-literals
*************** Conform to the ISO 2017 C++ standard.
*** 2578,2592 ****
  
  std=c++2a
  C++ ObjC++ Alias(std=c++20) Undocumented
! Conform to the ISO 2020 C++ standard (experimental and incomplete support).
  
  std=c++20
  C++ ObjC++
! Conform to the ISO 2020 C++ standard (experimental and incomplete support).
  
  std=c++2b
  C++ ObjC++ Alias(std=c++23) Undocumented
! Conform to the ISO 2023 C++ standard (published in 2024; experimental and incomplete support).
  
  std=c++23
  C++ ObjC++
--- 2654,2668 ----
  
  std=c++2a
  C++ ObjC++ Alias(std=c++20) Undocumented
! Deprecated in favor of -std=c++20.
  
  std=c++20
  C++ ObjC++
! Conform to the ISO 2020 C++ standard.
  
  std=c++2b
  C++ ObjC++ Alias(std=c++23) Undocumented
! Deprecated in favor of -std=c++23.
  
  std=c++23
  C++ ObjC++
*************** Conform to the ISO 2017 C++ standard wit
*** 2680,2694 ****
  
  std=gnu++2a
  C++ ObjC++ Alias(std=gnu++20) Undocumented
! Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++20
  C++ ObjC++
! Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support).
  
  std=gnu++2b
  C++ ObjC++ Alias(std=gnu++23) Undocumented
! Conform to the ISO 2023 C++ standard with GNU extensions (published in 2024; experimental and incomplete support).
  
  std=gnu++23
  C++ ObjC++
--- 2756,2770 ----
  
  std=gnu++2a
  C++ ObjC++ Alias(std=gnu++20) Undocumented
! Deprecated in favor of -std=gnu++20.
  
  std=gnu++20
  C++ ObjC++
! Conform to the ISO 2020 C++ standard with GNU extensions.
  
  std=gnu++2b
  C++ ObjC++ Alias(std=gnu++23) Undocumented
! Deprecated in favor of -std=gnu++23.
  
  std=gnu++23
  C++ ObjC++
diff -Nrcpad gcc-15.2.0/gcc/c-family/c.opt.urls gcc-16.1.0-RC-20260423/gcc/c-family/c.opt.urls
*** gcc-15.2.0/gcc/c-family/c.opt.urls	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/c.opt.urls	Thu Apr 23 11:07:33 2026
***************
*** 1,7 ****
  ; Autogenerated by regenerate-opt-urls.py from gcc/c-family/c.opt and generated HTML
  
! A
! UrlSuffix(gcc/Preprocessor-Options.html#index-A)
  
  C
  UrlSuffix(gcc/Preprocessor-Options.html#index-C) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-C)
--- 1,163 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/c-family/c.opt and generated HTML
  
! -all-warnings
! UrlSuffix(gcc/Warning-Options.html#index-all-warnings)
! 
! ; skipping UrlSuffix for '-ansi' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
! ;   duplicate: 'gcc/Library-Builtins.html#index-ansi-2'
! ;   duplicate: 'gcc/Non-bugs.html#index-ansi-3'
! ;   duplicate: 'gcc/Standards.html#index-ansi'
! 
! -compile-std-module
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-compile-std-module)
! 
! -comments
! UrlSuffix(gcc/Preprocessor-Options.html#index-comments)
! 
! -comments-in-macros
! UrlSuffix(gcc/Preprocessor-Options.html#index-comments-in-macros)
! 
! -define-macro
! UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
! 
! -define-macro=
! UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
! 
! -dependencies
! UrlSuffix(gcc/Preprocessor-Options.html#index-dependencies)
! 
! ; skipping UrlSuffix for '-dump' due to multiple URLs:
! ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
! ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
! 
! ; skipping UrlSuffix for '-dump=' due to multiple URLs:
! ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
! ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
! 
! -embed-dir=
! UrlSuffix(gcc/Directory-Options.html#index-embed-dir)
! 
! -embed-directory
! UrlSuffix(gcc/Directory-Options.html#index-embed-directory)
! 
! -embed-directory=
! UrlSuffix(gcc/Directory-Options.html#index-embed-directory)
! 
! -imacros
! UrlSuffix(gcc/Preprocessor-Options.html#index-imacros)
! 
! -imacros=
! UrlSuffix(gcc/Preprocessor-Options.html#index-imacros)
! 
! -include
! UrlSuffix(gcc/Preprocessor-Options.html#index-include)
! 
! -include=
! UrlSuffix(gcc/Preprocessor-Options.html#index-include)
! 
! -include-barrier
! UrlSuffix(gcc/Directory-Options.html#index-include-barrier)
! 
! -include-directory
! UrlSuffix(gcc/Directory-Options.html#index-include-directory)
! 
! -include-directory=
! UrlSuffix(gcc/Directory-Options.html#index-include-directory)
! 
! -include-directory-after
! UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
! 
! -include-directory-after=
! UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
! 
! -include-prefix
! UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
! 
! -include-prefix=
! UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
! 
! -include-with-prefix
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix)
! 
! -include-with-prefix=
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix)
! 
! -include-with-prefix-after
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-after)
! 
! -include-with-prefix-after=
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-after)
! 
! -include-with-prefix-before
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-before)
! 
! -include-with-prefix-before=
! UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-before)
! 
! -no-integrated-cpp
! UrlSuffix(gcc/Preprocessor-Options.html#index-no-integrated-cpp)
! 
! -no-line-commands
! UrlSuffix(gcc/Preprocessor-Options.html#index-no-line-commands)
! 
! -no-standard-includes
! UrlSuffix(gcc/Directory-Options.html#index-no-standard-includes)
! 
! -no-warnings
! UrlSuffix(gcc/Warning-Options.html#index-no-warnings)
! 
! -output
! UrlSuffix(gcc/Overall-Options.html#index-output)
! 
! -output=
! UrlSuffix(gcc/Overall-Options.html#index-output)
! 
! ; skipping UrlSuffix for '-pedantic' due to multiple URLs:
! ;   duplicate: 'gcc/Alternate-Keywords.html#index-pedantic-3'
! ;   duplicate: 'gcc/C-Extensions.html#index-pedantic-2'
! ;   duplicate: 'gcc/Standards.html#index-pedantic'
! ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-1'
! ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-4'
! -pedantic
! LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-pedantic)
! 
! -preprocess
! UrlSuffix(gcc/Overall-Options.html#index-preprocess)
! 
! -print-missing-file-dependencies
! UrlSuffix(gcc/Preprocessor-Options.html#index-print-missing-file-dependencies)
! 
! -trace-includes
! UrlSuffix(gcc/Preprocessor-Options.html#index-trace-includes)
! 
! ; skipping UrlSuffix for '-traditional' due to multiple URLs:
! ;   duplicate: 'gcc/Incompatibilities.html#index-traditional-1'
! ;   duplicate: 'gcc/Preprocessor-Options.html#index-traditional'
! 
! -traditional-cpp
! UrlSuffix(gcc/Preprocessor-Options.html#index-traditional-cpp)
! 
! -trigraphs
! UrlSuffix(gcc/Preprocessor-Options.html#index-trigraphs)
! 
! -undefine-macro
! UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
! 
! -undefine-macro=
! UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
! 
! -user-dependencies
! UrlSuffix(gcc/Preprocessor-Options.html#index-user-dependencies)
! 
! -verbose
! UrlSuffix(gcc/Overall-Options.html#index-verbose)
! 
! -write-dependencies
! UrlSuffix(gcc/Preprocessor-Options.html#index-write-dependencies)
! 
! -write-user-dependencies
! UrlSuffix(gcc/Preprocessor-Options.html#index-write-user-dependencies)
  
  C
  UrlSuffix(gcc/Preprocessor-Options.html#index-C) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-C)
*************** H
*** 26,32 ****
  UrlSuffix(gcc/Preprocessor-Options.html#index-H) LangUrlSuffix_D(gdc/Code-Generation.html#index-H) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-H)
  
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
  
  M
  UrlSuffix(gcc/Preprocessor-Options.html#index-M) LangUrlSuffix_D(gdc/Code-Generation.html#index-M)
--- 182,188 ----
  UrlSuffix(gcc/Preprocessor-Options.html#index-H) LangUrlSuffix_D(gdc/Code-Generation.html#index-H) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-H)
  
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-I)
  
  M
  UrlSuffix(gcc/Preprocessor-Options.html#index-M) LangUrlSuffix_D(gdc/Code-Generation.html#index-M)
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 139,144 ****
--- 295,303 ----
  Wassign-intercept
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wassign-intercept)
  
+ Wabbreviated-auto-in-template-arg
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wabbreviated-auto-in-template-arg)
+ 
  Wbad-function-cast
  UrlSuffix(gcc/Warning-Options.html#index-Wbad-function-cast)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 163,168 ****
--- 322,330 ----
  Wc11-c23-compat
  UrlSuffix(gcc/Warning-Options.html#index-Wc11-c23-compat)
  
+ Wc11-c2x-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc11-c2x-compat)
+ 
  Wc23-c2y-compat
  UrlSuffix(gcc/Warning-Options.html#index-Wc23-c2y-compat)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 187,192 ****
--- 349,357 ----
  Wc++20-compat
  UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b20-compat)
  
+ Wc++26-compat
+ UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b26-compat)
+ 
  Wc++11-extensions
  UrlSuffix(gcc/Warning-Options.html#index-Wc_002b_002b11-extensions)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 301,306 ****
--- 466,474 ----
  Wdeprecated-copy
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-copy)
  
+ Wdeprecated-copy-dtor
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-copy-dtor)
+ 
  Wdeprecated-enum-enum-conversion
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-enum-enum-conversion)
  
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 313,318 ****
--- 481,489 ----
  Wdeprecated-non-prototype
  UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-non-prototype)
  
+ Wdeprecated-openmp
+ UrlSuffix(gcc/Warning-Options.html#index-Wdeprecated-openmp) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wdeprecated-openmp)
+ 
  Wdeprecated-variadic-comma-omission
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wdeprecated-variadic-comma-omission)
  
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 370,375 ****
--- 541,552 ----
  Wexpansion-to-defined
  UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined)
  
+ Wexternal-tu-local
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexternal-tu-local)
+ 
+ Wexpose-global-module-tu-local
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexpose-global-module-tu-local)
+ 
  Wextra
  UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wextra)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 391,396 ****
--- 568,576 ----
  Wformat-contains-nul
  UrlSuffix(gcc/Warning-Options.html#index-Wformat-contains-nul)
  
+ Wformat-diag
+ UrlSuffix(gcc/Warning-Options.html#index-Wformat-diag)
+ 
  Wformat-extra-args
  UrlSuffix(gcc/Warning-Options.html#index-Wformat-extra-args)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 502,507 ****
--- 682,690 ----
  Wjump-misses-init
  UrlSuffix(gcc/Warning-Options.html#index-Wjump-misses-init)
  
+ Wkeyword-macro
+ UrlSuffix(gcc/Warning-Options.html#index-Wkeyword-macro)
+ 
  Wleading-whitespace=
  UrlSuffix(gcc/Warning-Options.html#index-Wleading-whitespace_003d)
  
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 586,591 ****
--- 769,777 ----
  Wmultiple-inheritance
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance)
  
+ Wmultiple-parameter-fwd-decl-lists
+ UrlSuffix(gcc/Warning-Options.html#index-Wmultiple-parameter-fwd-decl-lists)
+ 
  Wmultistatement-macros
  UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros)
  
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 604,609 ****
--- 790,798 ----
  Wnoexcept-type
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-noexcept-type)
  
+ Wnon-c-typedef-for-linkage
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-c-typedef-for-linkage)
+ 
  Wnon-template-friend
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-non-template-friend)
  
*************** Wnormalized=
*** 626,632 ****
  UrlSuffix(gcc/Warning-Options.html#index-Wno-normalized)
  
  Wobjc-root-class
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wobjc-root-class)
  
  Wold-style-cast
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-old-style-cast)
--- 815,821 ----
  UrlSuffix(gcc/Warning-Options.html#index-Wno-normalized)
  
  Wobjc-root-class
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-objc-root-class)
  
  Wold-style-cast
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-old-style-cast)
*************** UrlSuffix(gcc/Warning-Options.html#index
*** 756,761 ****
--- 945,956 ----
  Wsequence-point
  UrlSuffix(gcc/Warning-Options.html#index-Wno-sequence-point)
  
+ Wsfinae-incomplete=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sfinae-incomplete)
+ 
+ Wsfinae-incomplete
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wno-sfinae-incomplete)
+ 
  Wshadow-ivar
  UrlSuffix(gcc/Warning-Options.html#index-Wno-shadow-ivar)
  
*************** Wtrailing-whitespace
*** 892,898 ****
  UrlSuffix(gcc/Warning-Options.html#index-Wno-trailing-whitespace)
  
  Wtrigraphs
! UrlSuffix(gcc/Warning-Options.html#index-Wtrigraphs)
  
  Wundeclared-selector
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-undeclared-selector)
--- 1087,1093 ----
  UrlSuffix(gcc/Warning-Options.html#index-Wno-trailing-whitespace)
  
  Wtrigraphs
! UrlSuffix(gcc/Warning-Options.html#index-Wno-trigraphs)
  
  Wundeclared-selector
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-Wno-undeclared-selector)
*************** Wunused-local-typedefs
*** 928,934 ****
  UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-local-typedefs)
  
  Wunused-macros
! UrlSuffix(gcc/Warning-Options.html#index-Wunused-macros)
  
  Wunused-result
  UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
--- 1123,1129 ----
  UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-local-typedefs)
  
  Wunused-macros
! UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-macros)
  
  Wunused-result
  UrlSuffix(gcc/Warning-Options.html#index-Wno-unused-result)
*************** Wzero-as-null-pointer-constant
*** 982,988 ****
  UrlSuffix(gcc/Warning-Options.html#index-Wno-zero-as-null-pointer-constant)
  
  Wzero-length-bounds
! UrlSuffix(gcc/Warning-Options.html#index-Wzero-length-bounds)
  
  ; skipping UrlSuffix for 'ansi' due to multiple URLs:
  ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
--- 1177,1183 ----
  UrlSuffix(gcc/Warning-Options.html#index-Wno-zero-as-null-pointer-constant)
  
  Wzero-length-bounds
! UrlSuffix(gcc/Warning-Options.html#index-Wno-zero-length-bounds)
  
  ; skipping UrlSuffix for 'ansi' due to multiple URLs:
  ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 1024,1030 ****
  ;   duplicate: 'gdc/Runtime-Options.html#index-fbuiltin'
  
  fcanonical-system-headers
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-canonical-system-headers)
  
  fchar8_t
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fchar8_005ft)
--- 1219,1225 ----
  ;   duplicate: 'gdc/Runtime-Options.html#index-fbuiltin'
  
  fcanonical-system-headers
! UrlSuffix(gcc/Preprocessor-Options.html#index-fcanonical-system-headers)
  
  fchar8_t
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fchar8_005ft)
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 1032,1037 ****
--- 1227,1235 ----
  fconcepts
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconcepts)
  
+ fconcepts-diagnostics-depth=
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fconcepts-diagnostics-depth)
+ 
  fcond-mismatch
  UrlSuffix(gcc/C-Dialect-Options.html#index-fcond-mismatch)
  
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 1056,1078 ****
  fcontracts
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts)
  
! fcontract-assumption-mode=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-assumption-mode)
  
! fcontract-build-level=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-build-level)
  
! fcontract-strict-declarations=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-strict-declarations)
  
! fcontract-mode=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-mode)
  
! fcontract-continuation-mode=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-continuation-mode)
  
! fcontract-role=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-role)
  
  fcoroutines
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcoroutines)
--- 1254,1276 ----
  fcontracts
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts)
  
! fcontract-evaluation-semantic=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-evaluation-semantic)
  
! fcontracts-conservative-ipa
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts-conservative-ipa)
  
! fcontract-checks-outlined
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-checks-outlined)
  
! fcontract-disable-optimized-checks
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontract-disable-optimized-checks)
  
! fcontracts-client-check=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts-client-check)
  
! fcontracts-definition-check=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcontracts-definition-check)
  
  fcoroutines
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fcoroutines)
*************** UrlSuffix(gcc/Preprocessor-Options.html#
*** 1105,1110 ****
--- 1303,1311 ----
  fdump-ada-spec
  UrlSuffix(gcc/Overall-Options.html#index-fdump-ada-spec)
  
+ fdump-ada-spec-slim
+ UrlSuffix(gcc/Overall-Options.html#index-fdump-ada-spec-slim)
+ 
  felide-constructors
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-felide-constructors)
  
*************** fnonansi-builtins
*** 1241,1277 ****
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-nonansi-builtins)
  
  fnothrow-opt
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fnothrow-opt)
  
  fobjc-abi-version=
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-abi-version)
  
  fobjc-call-cxx-cdtors
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-call-cxx-cdtors)
  
  fobjc-direct-dispatch
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-direct-dispatch)
  
  fobjc-exceptions
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-exceptions)
  
  fobjc-gc
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-gc)
  
  fobjc-nilcheck
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-nilcheck)
  
  fopenacc
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fopenacc) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenacc)
  
  fopenacc-dim=
  UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fopenacc-dim)
  
  fopenmp
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fopenmp) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp)
  
  fopenmp-simd
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fopenmp-simd) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp-simd)
  
  foperator-names
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-operator-names)
--- 1442,1478 ----
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-nonansi-builtins)
  
  fnothrow-opt
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-nothrow-opt)
  
  fobjc-abi-version=
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fobjc-abi-version)
  
  fobjc-call-cxx-cdtors
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-objc-call-cxx-cdtors)
  
  fobjc-direct-dispatch
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-objc-direct-dispatch)
  
  fobjc-exceptions
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-objc-exceptions)
  
  fobjc-gc
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-objc-gc)
  
  fobjc-nilcheck
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-objc-nilcheck)
  
  fopenacc
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fno-openacc) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenacc)
  
  fopenacc-dim=
  UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fopenacc-dim)
  
  fopenmp
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fno-openmp) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp)
  
  fopenmp-simd
! UrlSuffix(gcc/OpenMP-and-OpenACC-Options.html#index-fno-openmp-simd) LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-fopenmp-simd)
  
  foperator-names
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-operator-names)
*************** foptional-diags
*** 1280,1299 ****
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-optional-diags)
  
  fpch-deps
! UrlSuffix(gcc/Preprocessor-Options.html#index-fpch-deps)
  
  fpch-preprocess
! UrlSuffix(gcc/Preprocessor-Options.html#index-fpch-preprocess)
  
  fpermissive
! UrlSuffix(gcc/Warning-Options.html#index-fpermissive)
  
  ; skipping UrlSuffix for 'fplan9-extensions' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fplan9-extensions'
  ;   duplicate: 'gcc/Unnamed-Fields.html#index-fplan9-extensions-1'
  
  fpreprocessed
! UrlSuffix(gcc/Preprocessor-Options.html#index-fpreprocessed)
  
  ftrack-macro-expansion
  UrlSuffix(gcc/Preprocessor-Options.html#index-ftrack-macro-expansion)
--- 1481,1500 ----
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-optional-diags)
  
  fpch-deps
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-pch-deps)
  
  fpch-preprocess
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-pch-preprocess)
  
  fpermissive
! UrlSuffix(gcc/Warning-Options.html#index-fno-permissive)
  
  ; skipping UrlSuffix for 'fplan9-extensions' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-plan9-extensions'
  ;   duplicate: 'gcc/Unnamed-Fields.html#index-fplan9-extensions-1'
  
  fpreprocessed
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-preprocessed)
  
  ftrack-macro-expansion
  UrlSuffix(gcc/Preprocessor-Options.html#index-ftrack-macro-expansion)
*************** fprintf-return-value
*** 1308,1347 ****
  UrlSuffix(gcc/Optimize-Options.html#index-fno-printf-return-value)
  
  frange-for-ext-temps
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-frange-for-ext-temps)
  
  freplace-objc-classes
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-freplace-objc-classes)
  
  frtti
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-rtti) LangUrlSuffix_D(gdc/Runtime-Options.html#index-fno-rtti)
  
  fsearch-include-path
! UrlSuffix(gcc/Preprocessor-Options.html#index-fsearch-include-path)
  
  fsearch-include-path=
! UrlSuffix(gcc/Preprocessor-Options.html#index-fsearch-include-path)
  
  ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
! ;   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)
  
  fshort-wchar
! UrlSuffix(gcc/Code-Gen-Options.html#index-fshort-wchar)
  
  ; skipping UrlSuffix for 'fsigned-bitfields' due to multiple URLs:
  ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-signed-bitfields'
  ;   duplicate: 'gcc/Non-bugs.html#index-fsigned-bitfields-1'
  
  ; skipping UrlSuffix for 'fsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fsigned-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
  
  fsized-deallocation
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fsized-deallocation)
  
  fstrict-flex-arrays
  UrlSuffix(gcc/C-Dialect-Options.html#index-fno-strict-flex-arrays)
--- 1509,1551 ----
  UrlSuffix(gcc/Optimize-Options.html#index-fno-printf-return-value)
  
  frange-for-ext-temps
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-range-for-ext-temps)
! 
! freflection
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-freflection)
  
  freplace-objc-classes
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-replace-objc-classes)
  
  frtti
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-rtti) LangUrlSuffix_D(gdc/Runtime-Options.html#index-fno-rtti)
  
  fsearch-include-path
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-search-include-path)
  
  fsearch-include-path=
! UrlSuffix(gcc/Preprocessor-Options.html#index-fno-search-include-path)
  
  ; skipping UrlSuffix for 'fshort-enums' due to multiple URLs:
! ;   duplicate: 'gcc/Code-Gen-Options.html#index-fno-short-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)
  
  fshort-wchar
! UrlSuffix(gcc/Code-Gen-Options.html#index-fno-short-wchar)
  
  ; skipping UrlSuffix for 'fsigned-bitfields' due to multiple URLs:
  ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-signed-bitfields'
  ;   duplicate: 'gcc/Non-bugs.html#index-fsigned-bitfields-1'
  
  ; skipping UrlSuffix for 'fsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-signed-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-fsigned-char-1'
  
  fsized-deallocation
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-sized-deallocation)
  
  fstrict-flex-arrays
  UrlSuffix(gcc/C-Dialect-Options.html#index-fno-strict-flex-arrays)
*************** fsso-struct=
*** 1353,1368 ****
  UrlSuffix(gcc/C-Dialect-Options.html#index-fsso-struct)
  
  fstats
! UrlSuffix(gcc/Developer-Options.html#index-fstats)
  
  fstrict-enums
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrict-enums)
  
  fstrong-eval-order
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrong-eval-order)
  
  fstrong-eval-order=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fstrong-eval-order)
  
  ftemplate-backtrace-limit=
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-ftemplate-backtrace-limit)
--- 1557,1572 ----
  UrlSuffix(gcc/C-Dialect-Options.html#index-fsso-struct)
  
  fstats
! UrlSuffix(gcc/Developer-Options.html#index-fno-stats)
  
  fstrict-enums
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-strict-enums)
  
  fstrong-eval-order
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-strong-eval-order)
  
  fstrong-eval-order=
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-strong-eval-order)
  
  ftemplate-backtrace-limit=
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-ftemplate-backtrace-limit)
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 1379,1398 ****
  ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-funsigned-bitfields-1'
  
  ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-funsigned-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
  
  fuse-cxa-atexit
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fuse-cxa-atexit)
  
  fuse-cxa-get-exception-ptr
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-use-cxa-get-exception-ptr)
  
  fvisibility-inlines-hidden
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fvisibility-inlines-hidden)
  
  fvisibility-ms-compat
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fvisibility-ms-compat)
  
  fweak
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-weak)
--- 1583,1602 ----
  ;   duplicate: 'gcc/Structures-unions-enumerations-and-bit-fields-implementation.html#index-funsigned-bitfields-1'
  
  ; skipping UrlSuffix for 'funsigned-char' due to multiple URLs:
! ;   duplicate: 'gcc/C-Dialect-Options.html#index-fno-unsigned-char'
  ;   duplicate: 'gcc/Characters-implementation.html#index-funsigned-char-1'
  
  fuse-cxa-atexit
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-use-cxa-atexit)
  
  fuse-cxa-get-exception-ptr
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-use-cxa-get-exception-ptr)
  
  fvisibility-inlines-hidden
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-visibility-inlines-hidden)
  
  fvisibility-ms-compat
! UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-visibility-ms-compat)
  
  fweak
  UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-fno-weak)
*************** fworking-directory
*** 1404,1410 ****
  UrlSuffix(gcc/Preprocessor-Options.html#index-fno-working-directory) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-fworking-directory)
  
  fzero-link
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fzero-link)
  
  gen-decls
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-gen-decls)
--- 1608,1614 ----
  UrlSuffix(gcc/Preprocessor-Options.html#index-fno-working-directory) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-fworking-directory)
  
  fzero-link
! UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-fno-zero-link)
  
  gen-decls
  UrlSuffix(gcc/Objective-C-and-Objective-C_002b_002b-Dialect-Options.html#index-gen-decls)
diff -Nrcpad gcc-15.2.0/gcc/c-family/cppspec.cc gcc-16.1.0-RC-20260423/gcc/c-family/cppspec.cc
*** gcc-15.2.0/gcc/c-family/cppspec.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/cppspec.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Specific flags and argument handling of the C preprocessor.
!    Copyright (C) 1999-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Specific flags and argument handling of the C preprocessor.
!    Copyright (C) 1999-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/known-headers.cc gcc-16.1.0-RC-20260423/gcc/c-family/known-headers.cc
*** gcc-15.2.0/gcc/c-family/known-headers.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/known-headers.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** suggest_missing_header::~suggest_missing
*** 329,337 ****
  
  /* suggest_missing_option's ctor.  */
  
! suggest_missing_option::suggest_missing_option (location_t loc,
! 						const char *macro_name,
! 						diagnostic_option_id option_id)
  : deferred_diagnostic (loc), m_name_str (macro_name), m_option_id (option_id)
  {
    gcc_assert (macro_name);
--- 329,338 ----
  
  /* suggest_missing_option's ctor.  */
  
! suggest_missing_option::
! suggest_missing_option (location_t loc,
! 			const char *macro_name,
! 			diagnostics::option_id option_id)
  : deferred_diagnostic (loc), m_name_str (macro_name), m_option_id (option_id)
  {
    gcc_assert (macro_name);
*************** suggest_missing_option::~suggest_missing
*** 351,353 ****
--- 352,374 ----
  	  " this is probably fixable by adding %qs to the command-line options",
  	  m_name_str, option_name, option_name);
  }
+ 
+ /* macro_like_function_used's ctor.  */
+ 
+ macro_like_function_used::macro_like_function_used (location_t loc, const char *name)
+ : deferred_diagnostic (loc), m_name_str (name)
+ {
+   gcc_assert (name);
+ }
+ 
+ /* macro_like_function_used's dtor.  */
+ 
+ macro_like_function_used::~macro_like_function_used ()
+ {
+   if (is_suppressed_p ())
+     return;
+ 
+   inform (get_location (),
+ 	  "%qs is a function-like macro and might be used incorrectly",
+ 	  m_name_str);
+ }
diff -Nrcpad gcc-15.2.0/gcc/c-family/known-headers.h gcc-16.1.0-RC-20260423/gcc/c-family/known-headers.h
*** gcc-15.2.0/gcc/c-family/known-headers.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/known-headers.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for suggestions about missing #include directives.
!    Copyright (C) 2017-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** class suggest_missing_option : public de
*** 48,59 ****
  {
   public:
    suggest_missing_option (location_t loc, const char *name,
! 			  diagnostic_option_id option_id);
    ~suggest_missing_option ();
  
   private:
    const char *m_name_str;
!   diagnostic_option_id m_option_id;
  };
  
  #endif /* GCC_KNOWN_HEADERS_H */
--- 48,72 ----
  {
   public:
    suggest_missing_option (location_t loc, const char *name,
! 			  diagnostics::option_id option_id);
    ~suggest_missing_option ();
  
   private:
    const char *m_name_str;
!   diagnostics::option_id m_option_id;
! };
! 
! /* Subclass of deferred_diagnostic for suggesting to the user
!    that they have misused a function like macro.  */
! class macro_like_function_used : public deferred_diagnostic
! {
!  public:
!   macro_like_function_used (location_t loc, const char *name);
! 
!   ~macro_like_function_used ();
! 
!  private:
!   const char *m_name_str;
  };
  
  #endif /* GCC_KNOWN_HEADERS_H */
diff -Nrcpad gcc-15.2.0/gcc/c-family/name-hint.h gcc-16.1.0-RC-20260423/gcc/c-family/name-hint.h
*** gcc-15.2.0/gcc/c-family/name-hint.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/name-hint.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Support for offering suggestions for handling unrecognized names.
!    Copyright (C) 2016-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Support for offering suggestions for handling unrecognized names.
!    Copyright (C) 2016-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** class name_hint
*** 85,92 ****
  public:
    name_hint () : m_suggestion (NULL), m_deferred () {}
  
!   name_hint (const char *suggestion, deferred_diagnostic *deferred)
!   : m_suggestion (suggestion), m_deferred (deferred)
    {
    }
  
--- 85,94 ----
  public:
    name_hint () : m_suggestion (NULL), m_deferred () {}
  
!   name_hint (const char *suggestion,
! 	     std::unique_ptr<deferred_diagnostic> deferred)
!   : m_suggestion (suggestion),
!     m_deferred (std::move (deferred))
    {
    }
  
diff -Nrcpad gcc-15.2.0/gcc/c-family/stub-objc.cc gcc-16.1.0-RC-20260423/gcc/c-family/stub-objc.cc
*** gcc-15.2.0/gcc/c-family/stub-objc.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/c-family/stub-objc.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,7 ****
  /* Stub functions for Objective-C and Objective-C++ routines
     that are called from within the C and C++ front-ends,
     respectively.
!    Copyright (C) 1991-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,7 ----
  /* Stub functions for Objective-C and Objective-C++ routines
     that are called from within the C and C++ front-ends,
     respectively.
!    Copyright (C) 1991-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/caller-save.cc gcc-16.1.0-RC-20260423/gcc/caller-save.cc
*** gcc-15.2.0/gcc/caller-save.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/caller-save.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Save and restore call-clobbered registers which are live across a call.
!    Copyright (C) 1989-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Save and restore call-clobbered registers which are live across a call.
!    Copyright (C) 1989-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/calls.cc gcc-16.1.0-RC-20260423/gcc/calls.cc
*** gcc-15.2.0/gcc/calls.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/calls.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Convert function calls to rtl insns, for GNU C compiler.
!    Copyright (C) 1989-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Convert function calls to rtl insns, for GNU C compiler.
!    Copyright (C) 1989-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** initialize_argument_information (int num
*** 1382,1387 ****
--- 1382,1392 ----
        }
    }
  
+   bool promote_p
+     = targetm.calls.promote_prototypes (fndecl
+ 					? TREE_TYPE (fndecl)
+ 					: fntype);
+ 
    /* I counts args in order (to be) pushed; ARGPOS counts in order written.  */
    for (argpos = 0; argpos < num_actuals; i--, argpos++)
      {
*************** initialize_argument_information (int num
*** 1532,1537 ****
--- 1537,1547 ----
  	}
  
        unsignedp = TYPE_UNSIGNED (type);
+       if (promote_p
+ 	  && INTEGRAL_TYPE_P (type)
+ 	  && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node))
+ 	type = integer_type_node;
+ 
        arg.type = type;
        arg.mode
  	= promote_function_mode (type, TYPE_MODE (type), &unsignedp,
*************** expand_call (tree exp, rtx target, int i
*** 3226,3236 ****
        if (pass)
  	precompute_arguments (num_actuals, args);
  
-       /* Now we are about to start emitting insns that can be deleted
- 	 if a libcall is deleted.  */
-       if (pass && (flags & ECF_MALLOC))
- 	start_sequence ();
- 
        /* Check the canary value for sibcall or function which doesn't
  	 return and could throw.  */
        if ((pass == 0
--- 3236,3241 ----
*************** expand_call (tree exp, rtx target, int i
*** 3575,3581 ****
  		      && check_sibcall_argument_overlap (before_arg,
  							 &args[i], true)))
  		sibcall_failure = true;
! 	      }
  
  	  if (args[i].stack)
  	    call_fusage
--- 3580,3587 ----
  		      && check_sibcall_argument_overlap (before_arg,
  							 &args[i], true)))
  		sibcall_failure = true;
! 	      gcc_checking_assert (!args[i].stack || argblock);
! 	    }
  
  	  if (args[i].stack)
  	    call_fusage
*************** expand_call (tree exp, rtx target, int i
*** 3672,3677 ****
--- 3678,3709 ----
  	  && !must_preallocate && reg_parm_stack_space > 0)
  	anti_adjust_stack (GEN_INT (reg_parm_stack_space));
  
+       /* Cover pushed arguments with call usage, so that cselib knows to
+ 	 invalidate the stores in them at the call insn.  */
+       if (pass == 1 && !argblock
+ 	  && (maybe_ne (adjusted_args_size.constant, 0)
+ 	      || adjusted_args_size.var))
+ 	{
+ 	  rtx addr = virtual_outgoing_args_rtx;
+ 	  poly_int64 size = adjusted_args_size.constant;
+ 	  if (!STACK_GROWS_DOWNWARD)
+ 	    {
+ 	      if (adjusted_args_size.var)
+ 		/* ??? We can't compute the exact base address.  */
+ 		addr = gen_rtx_PLUS (GET_MODE (addr), addr,
+ 				     gen_rtx_SCRATCH (GET_MODE (addr)));
+ 	      else
+ 		addr = plus_constant (GET_MODE (addr), addr, -size);
+ 	    }
+ 	  rtx fu = gen_rtx_MEM (BLKmode, addr);
+ 	  if (adjusted_args_size.var == 0)
+ 	    set_mem_size (fu, size);
+ 	  call_fusage
+ 	    = gen_rtx_EXPR_LIST (BLKmode,
+ 				 gen_rtx_USE (VOIDmode, fu),
+ 				 call_fusage);
+ 	}
+ 
        /* Pass the function the address in which to return a
  	 structure value.  */
        if (pass != 0 && structure_value_addr && ! structure_value_addr_parm)
*************** expand_call (tree exp, rtx target, int i
*** 3728,3746 ****
  		   next_arg_reg, valreg, old_inhibit_defer_pop, call_fusage,
  		   flags, args_so_far);
  
!       if (flag_ipa_ra)
  	{
! 	  rtx_call_insn *last;
! 	  rtx datum = NULL_RTX;
! 	  if (fndecl != NULL_TREE)
! 	    {
! 	      datum = XEXP (DECL_RTL (fndecl), 0);
! 	      gcc_assert (datum != NULL_RTX
! 			  && GET_CODE (datum) == SYMBOL_REF);
! 	    }
! 	  last = last_call_insn ();
! 	  add_reg_note (last, REG_CALL_DECL, datum);
  	}
  
        /* If the call setup or the call itself overlaps with anything
  	 of the argument setup we probably clobbered our call address.
--- 3760,3775 ----
  		   next_arg_reg, valreg, old_inhibit_defer_pop, call_fusage,
  		   flags, args_so_far);
  
!       rtx_call_insn *last;
!       rtx datum = NULL_RTX;
!       if (fndecl != NULL_TREE)
  	{
! 	  datum = XEXP (DECL_RTL (fndecl), 0);
! 	  gcc_assert (datum != NULL_RTX
! 		      && GET_CODE (datum) == SYMBOL_REF);
  	}
+       last = last_call_insn ();
+       add_reg_note (last, REG_CALL_DECL, datum);
  
        /* If the call setup or the call itself overlaps with anything
  	 of the argument setup we probably clobbered our call address.
*************** expand_call (tree exp, rtx target, int i
*** 3765,3790 ****
  	  valreg = gen_rtx_REG (TYPE_MODE (rettype), REGNO (valreg));
  	}
  
!       if (pass && (flags & ECF_MALLOC))
  	{
  	  rtx temp = gen_reg_rtx (GET_MODE (valreg));
! 	  rtx_insn *last, *insns;
  
  	  /* The return value from a malloc-like function is a pointer.  */
  	  if (TREE_CODE (rettype) == POINTER_TYPE)
  	    mark_reg_pointer (temp, MALLOC_ABI_ALIGNMENT);
  
! 	  emit_move_insn (temp, valreg);
  
  	  /* The return value from a malloc-like function cannot alias
  	     anything else.  */
- 	  last = get_last_insn ();
  	  add_reg_note (last, REG_NOALIAS, temp);
- 
- 	  /* Write out the sequence.  */
- 	  insns = get_insns ();
- 	  end_sequence ();
- 	  emit_insn (insns);
  	  valreg = temp;
  	}
  
--- 3794,3816 ----
  	  valreg = gen_rtx_REG (TYPE_MODE (rettype), REGNO (valreg));
  	}
  
!       /* If the return register exists, for malloc like
! 	 function calls, mark the return register with the
! 	 alignment and noalias reg note.  */
!       if (pass && (flags & ECF_MALLOC) && valreg)
  	{
  	  rtx temp = gen_reg_rtx (GET_MODE (valreg));
! 	  rtx_insn *last;
  
  	  /* The return value from a malloc-like function is a pointer.  */
  	  if (TREE_CODE (rettype) == POINTER_TYPE)
  	    mark_reg_pointer (temp, MALLOC_ABI_ALIGNMENT);
  
! 	  last = emit_move_insn (temp, valreg);
  
  	  /* The return value from a malloc-like function cannot alias
  	     anything else.  */
  	  add_reg_note (last, REG_NOALIAS, temp);
  	  valreg = temp;
  	}
  
*************** expand_call (tree exp, rtx target, int i
*** 3999,4006 ****
  
        targetm.calls.end_call_args (args_so_far);
  
!       insns = get_insns ();
!       end_sequence ();
  
        if (pass == 0)
  	{
--- 4025,4031 ----
  
        targetm.calls.end_call_args (args_so_far);
  
!       insns = end_sequence ();
  
        if (pass == 0)
  	{
*************** emit_library_call_value_1 (int retval, r
*** 4798,4810 ****
  	       struct_value_size, call_cookie, valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
!   if (flag_ipa_ra)
!     {
!       rtx datum = orgfun;
!       gcc_assert (GET_CODE (datum) == SYMBOL_REF);
!       rtx_call_insn *last = last_call_insn ();
!       add_reg_note (last, REG_CALL_DECL, datum);
!     }
  
    /* Right-shift returned value if necessary.  */
    if (!pcc_struct_value
--- 4823,4832 ----
  	       struct_value_size, call_cookie, valreg,
  	       old_inhibit_defer_pop + 1, call_fusage, flags, args_so_far);
  
!   rtx datum = orgfun;
!   gcc_assert (GET_CODE (datum) == SYMBOL_REF);
!   rtx_call_insn *last = last_call_insn ();
!   add_reg_note (last, REG_CALL_DECL, datum);
  
    /* Right-shift returned value if necessary.  */
    if (!pcc_struct_value
diff -Nrcpad gcc-15.2.0/gcc/calls.h gcc-16.1.0-RC-20260423/gcc/calls.h
*** gcc-15.2.0/gcc/calls.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/calls.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Declarations and data types for RTL call insn generation.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Declarations and data types for RTL call insn generation.
!    Copyright (C) 2013-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/ccmp.cc gcc-16.1.0-RC-20260423/gcc/ccmp.cc
*** gcc-15.2.0/gcc/ccmp.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ccmp.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Conditional compare related functions
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Conditional compare related functions
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** ccmp_candidate_p (gimple *g, bool outer
*** 133,155 ****
  
  /* Extract the comparison we want to do from the tree.  */
  void
! get_compare_parts (tree t, int *up, rtx_code *rcode,
  		   tree *rhs1, tree *rhs2)
  {
    tree_code code;
    gimple *g = get_gimple_for_ssa_name (t);
    if (g && is_gimple_assign (g))
      {
!       *up = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g)));
        code = gimple_assign_rhs_code (g);
!       *rcode = get_rtx_code (code, *up);
        *rhs1 = gimple_assign_rhs1 (g);
        *rhs2 = gimple_assign_rhs2 (g);
      }
    else
      {
        /* If g is not a comparison operator create a compare to zero.  */
-       *up = 1;
        *rcode = NE;
        *rhs1 = t;
        *rhs2 = build_zero_cst (TREE_TYPE (t));
--- 133,154 ----
  
  /* Extract the comparison we want to do from the tree.  */
  void
! get_compare_parts (tree t, rtx_code *rcode,
  		   tree *rhs1, tree *rhs2)
  {
    tree_code code;
    gimple *g = get_gimple_for_ssa_name (t);
    if (g && is_gimple_assign (g))
      {
!       int up = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g)));
        code = gimple_assign_rhs_code (g);
!       *rcode = get_rtx_code (code, up);
        *rhs1 = gimple_assign_rhs1 (g);
        *rhs2 = gimple_assign_rhs2 (g);
      }
    else
      {
        /* If g is not a comparison operator create a compare to zero.  */
        *rcode = NE;
        *rhs1 = t;
        *rhs2 = build_zero_cst (TREE_TYPE (t));
*************** expand_ccmp_next (tree op, tree_code cod
*** 167,176 ****
  		  rtx_insn **prep_seq, rtx_insn **gen_seq)
  {
    rtx_code rcode;
-   int unsignedp;
    tree rhs1, rhs2;
  
!   get_compare_parts(op, &unsignedp, &rcode, &rhs1, &rhs2);
    return targetm.gen_ccmp_next (prep_seq, gen_seq, prev, rcode,
  				rhs1, rhs2, get_rtx_code (code, 0));
  }
--- 166,174 ----
  		  rtx_insn **prep_seq, rtx_insn **gen_seq)
  {
    rtx_code rcode;
    tree rhs1, rhs2;
  
!   get_compare_parts (op, &rcode, &rhs1, &rhs2);
    return targetm.gen_ccmp_next (prep_seq, gen_seq, prev, rcode,
  				rhs1, rhs2, get_rtx_code (code, 0));
  }
*************** expand_ccmp_expr_1 (gimple *g, rtx_insn
*** 204,210 ****
      {
        if (ccmp_tree_comparison_p (op1, bb))
  	{
- 	  int unsignedp0, unsignedp1;
  	  rtx_code rcode0, rcode1;
  	  tree logical_op0_rhs1, logical_op0_rhs2;
  	  tree logical_op1_rhs1, logical_op1_rhs2;
--- 202,207 ----
*************** expand_ccmp_expr_1 (gimple *g, rtx_insn
*** 214,223 ****
  	  unsigned cost1 = MAX_COST;
  	  unsigned cost2 = MAX_COST;
  
! 	  get_compare_parts (op0, &unsignedp0, &rcode0,
  			     &logical_op0_rhs1, &logical_op0_rhs2);
  
! 	  get_compare_parts (op1, &unsignedp1, &rcode1,
  			     &logical_op1_rhs1, &logical_op1_rhs2);
  
  	  rtx_insn *prep_seq_1, *gen_seq_1;
--- 211,220 ----
  	  unsigned cost1 = MAX_COST;
  	  unsigned cost2 = MAX_COST;
  
! 	  get_compare_parts (op0, &rcode0,
  			     &logical_op0_rhs1, &logical_op0_rhs2);
  
! 	  get_compare_parts (op1, &rcode1,
  			     &logical_op1_rhs1, &logical_op1_rhs2);
  
  	  rtx_insn *prep_seq_1, *gen_seq_1;
diff -Nrcpad gcc-15.2.0/gcc/ccmp.h gcc-16.1.0-RC-20260423/gcc/ccmp.h
*** gcc-15.2.0/gcc/ccmp.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/ccmp.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Conditional comapre related functions.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Conditional comapre related functions.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfg-flags.def gcc-16.1.0-RC-20260423/gcc/cfg-flags.def
*** gcc-15.2.0/gcc/cfg-flags.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfg-flags.def	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Flags on basic blocks and edges.
!    Copyright (C) 2012-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Flags on basic blocks and edges.
!    Copyright (C) 2012-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfg.cc gcc-16.1.0-RC-20260423/gcc/cfg.cc
*** gcc-15.2.0/gcc/cfg.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfg.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfg.h gcc-16.1.0-RC-20260423/gcc/cfg.h
*** gcc-15.2.0/gcc/cfg.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfg.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph manipulation code header file.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code header file.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfganal.cc gcc-16.1.0-RC-20260423/gcc/cfganal.cc
*** gcc-15.2.0/gcc/cfganal.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfganal.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph analysis code for GNU compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph analysis code for GNU compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** compute_dominance_frontiers (bitmap_head
*** 1679,1708 ****
  bitmap
  compute_idf (bitmap def_blocks, bitmap_head *dfs)
  {
!   bitmap_iterator bi;
    unsigned bb_index, i;
    bitmap phi_insertion_points;
  
    phi_insertion_points = BITMAP_ALLOC (NULL);
  
!   /* Seed the work set with all the blocks in DEF_BLOCKS.  */
!   auto_bitmap work_set;
!   bitmap_copy (work_set, def_blocks);
!   bitmap_tree_view (work_set);
! 
!   /* Pop a block off the workset, add every block that appears in
!      the original block's DF that we have not already processed to
!      the workset.  Iterate until the workset is empty.   Blocks
!      which are added to the workset are potential sites for
!      PHI nodes.  */
!   while (!bitmap_empty_p (work_set))
      {
-       /* The dominance frontier of a block is blocks after it so iterating
-          on earlier blocks first is better.
- 	 ???  Basic blocks are by no means guaranteed to be ordered in
- 	 optimal order for this iteration.  */
-       bb_index = bitmap_clear_first_set_bit (work_set);
- 
        /* Since the registration of NEW -> OLD name mappings is done
  	 separately from the call to update_ssa, when updating the SSA
  	 form, the basic blocks where new and/or old names are defined
--- 1679,1695 ----
  bitmap
  compute_idf (bitmap def_blocks, bitmap_head *dfs)
  {
!   bitmap_iterator bi, bi2;
    unsigned bb_index, i;
    bitmap phi_insertion_points;
  
    phi_insertion_points = BITMAP_ALLOC (NULL);
  
!   /* The initial workset is the DEF_BLOCKs, process that first,
!      seeding phi_insertion_points as the start of the worklist
!      for the iteration which then also serves as a visited set.  */
!   EXECUTE_IF_SET_IN_BITMAP (def_blocks, 0, bb_index, bi2)
      {
        /* Since the registration of NEW -> OLD name mappings is done
  	 separately from the call to update_ssa, when updating the SSA
  	 form, the basic blocks where new and/or old names are defined
*************** compute_idf (bitmap def_blocks, bitmap_h
*** 1717,1724 ****
  	 as well.  That makes iterating over the DFS bitmap preferential
  	 to whole bitmap operations involving also phi_insertion_points.  */
        EXECUTE_IF_SET_IN_BITMAP (&dfs[bb_index], 0, i, bi)
  	if (bitmap_set_bit (phi_insertion_points, i))
! 	  bitmap_set_bit (work_set, i);
      }
  
    return phi_insertion_points;
--- 1704,1730 ----
  	 as well.  That makes iterating over the DFS bitmap preferential
  	 to whole bitmap operations involving also phi_insertion_points.  */
        EXECUTE_IF_SET_IN_BITMAP (&dfs[bb_index], 0, i, bi)
+ 	bitmap_set_bit (phi_insertion_points, i);
+     }
+ 
+   /* Seed the work set with the initial phi_insertion_points.  */
+   auto_vec<int, 64> work_set (n_basic_blocks_for_fn (cfun));
+   EXECUTE_IF_SET_IN_BITMAP (phi_insertion_points, 0, i, bi)
+     work_set.quick_push (i);
+ 
+   /* Pop a block off the workset, add every block that appears in
+      the original block's DF that we have not already processed to
+      the workset.  Iterate until the workset is empty.   Blocks
+      which are added to the workset are potential sites for
+      PHI nodes.  */
+   while (!work_set.is_empty ())
+     {
+       bb_index = work_set.pop ();
+       gcc_checking_assert (bb_index
+ 			   < (unsigned) last_basic_block_for_fn (cfun));
+       EXECUTE_IF_SET_IN_BITMAP (&dfs[bb_index], 0, i, bi)
  	if (bitmap_set_bit (phi_insertion_points, i))
! 	  work_set.quick_push (i);
      }
  
    return phi_insertion_points;
diff -Nrcpad gcc-15.2.0/gcc/cfganal.h gcc-16.1.0-RC-20260423/gcc/cfganal.h
*** gcc-15.2.0/gcc/cfganal.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfganal.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph analysis header file.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph analysis header file.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfgbuild.cc gcc-16.1.0-RC-20260423/gcc/cfgbuild.cc
*** gcc-15.2.0/gcc/cfgbuild.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgbuild.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph building code for GNU compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph building code for GNU compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfgbuild.h gcc-16.1.0-RC-20260423/gcc/cfgbuild.h
*** gcc-15.2.0/gcc/cfgbuild.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgbuild.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph building header file.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph building header file.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfgcleanup.cc gcc-16.1.0-RC-20260423/gcc/cfgcleanup.cc
*** gcc-15.2.0/gcc/cfgcleanup.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgcleanup.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow optimization code for GNU compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow optimization code for GNU compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfgcleanup.h gcc-16.1.0-RC-20260423/gcc/cfgcleanup.h
*** gcc-15.2.0/gcc/cfgcleanup.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgcleanup.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow optimization header file.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow optimization header file.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
diff -Nrcpad gcc-15.2.0/gcc/cfgexpand.cc gcc-16.1.0-RC-20260423/gcc/cfgexpand.cc
*** gcc-15.2.0/gcc/cfgexpand.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgexpand.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* A pass for lowering trees to RTL.
!    Copyright (C) 2004-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* A pass for lowering trees to RTL.
!    Copyright (C) 2004-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 74,79 ****
--- 74,80 ----
  #include "output.h"
  #include "builtins.h"
  #include "opts.h"
+ #include "gimple-range.h"
  #include "rtl-iter.h"
  
  /* Some systems use __main in a way incompatible with its use in gcc, in these
*************** along with GCC; see the file COPYING3.
*** 89,95 ****
  struct ssaexpand SA;
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of comminucating the profile info to the builtin expanders.  */
  gimple *currently_expanding_gimple_stmt;
  
  static rtx expand_debug_expr (tree);
--- 90,96 ----
  struct ssaexpand SA;
  
  /* This variable holds the currently expanded gimple statement for purposes
!    of communicating the profile info to the builtin expanders.  */
  gimple *currently_expanding_gimple_stmt;
  
  static rtx expand_debug_expr (tree);
*************** align_local_variable (tree decl, bool re
*** 382,388 ****
    else
      align = LOCAL_DECL_ALIGNMENT (decl);
  
!   if (hwasan_sanitize_stack_p ())
      align = MAX (align, (unsigned) HWASAN_TAG_GRANULE_SIZE * BITS_PER_UNIT);
  
    if (TREE_CODE (decl) != SSA_NAME && really_expand)
--- 383,389 ----
    else
      align = LOCAL_DECL_ALIGNMENT (decl);
  
!   if (hwassist_sanitize_stack_p ())
      align = MAX (align, (unsigned) HWASAN_TAG_GRANULE_SIZE * BITS_PER_UNIT);
  
    if (TREE_CODE (decl) != SSA_NAME && really_expand)
*************** vars_ssa_cache::operator() (tree name)
*** 767,773 ****
  
        /* If the cache exists for the use, don't try to recreate it. */
        if (exists (use))
! 	continue;
  
        /* Create the cache bitmap for the use and also
  	 so we don't go into an infinite loop for some phi nodes with loops.  */
--- 768,779 ----
  
        /* If the cache exists for the use, don't try to recreate it. */
        if (exists (use))
! 	{
! 	  /* Update the cache here, this can reduce the number of
! 	     times through the update loop below.  */
! 	  update (old_name, use);
! 	  continue;
! 	}
  
        /* Create the cache bitmap for the use and also
  	 so we don't go into an infinite loop for some phi nodes with loops.  */
*************** vars_ssa_cache::operator() (tree name)
*** 805,813 ****
    bool changed;
    do {
      changed = false;
!     for (auto &e : update_cache_list)
        {
! 	if (update (e.second, e.first))
  	  changed = true;
        }
    } while (changed);
--- 811,821 ----
    bool changed;
    do {
      changed = false;
!     unsigned int i;
!     std::pair<tree,tree> *e;
!     FOR_EACH_VEC_ELT_REVERSE (update_cache_list, i, e)
        {
! 	if (update (e->second, e->first))
  	  changed = true;
        }
    } while (changed);
*************** add_scope_conflicts_2 (vars_ssa_cache &c
*** 826,833 ****
  {
    gcc_assert (TREE_CODE (name) == SSA_NAME);
  
!   /* Querry the cache for the mapping of addresses that are referendd by
!      ssa name NAME. Querrying it will fill in it.  */
    bitmap_iterator bi;
    unsigned i;
    const_bitmap bmap = cache (name);
--- 834,841 ----
  {
    gcc_assert (TREE_CODE (name) == SSA_NAME);
  
!   /* Query the cache for the mapping of addresses that are referenced by
!      ssa name NAME.  Querying it will fill in it.  */
    bitmap_iterator bi;
    unsigned i;
    const_bitmap bmap = cache (name);
*************** expand_one_stack_var_at (tree decl, rtx
*** 1329,1335 ****
    /* If this fails, we've overflowed the stack frame.  Error nicely?  */
    gcc_assert (known_eq (offset, trunc_int_for_mode (offset, Pmode)));
  
!   if (hwasan_sanitize_stack_p ())
      x = targetm.memtag.add_tag (base, offset,
  				hwasan_current_frame_tag ());
    else
--- 1337,1343 ----
    /* If this fails, we've overflowed the stack frame.  Error nicely?  */
    gcc_assert (known_eq (offset, trunc_int_for_mode (offset, Pmode)));
  
!   if (hwassist_sanitize_stack_p ())
      x = targetm.memtag.add_tag (base, offset,
  				hwasan_current_frame_tag ());
    else
*************** expand_stack_vars (bool (*pred) (unsigne
*** 1464,1477 ****
        if (pred && !pred (i))
  	continue;
  
!       base = (hwasan_sanitize_stack_p ()
  	      ? hwasan_frame_base ()
  	      : virtual_stack_vars_rtx);
        alignb = stack_vars[i].alignb;
        if (alignb * BITS_PER_UNIT <= MAX_SUPPORTED_STACK_ALIGNMENT)
  	{
  	  poly_int64 hwasan_orig_offset;
! 	  if (hwasan_sanitize_stack_p ())
  	    {
  	      /* There must be no tag granule "shared" between different
  		 objects.  This means that no HWASAN_TAG_GRANULE_SIZE byte
--- 1472,1485 ----
        if (pred && !pred (i))
  	continue;
  
!       base = (hwassist_sanitize_stack_p ()
  	      ? hwasan_frame_base ()
  	      : virtual_stack_vars_rtx);
        alignb = stack_vars[i].alignb;
        if (alignb * BITS_PER_UNIT <= MAX_SUPPORTED_STACK_ALIGNMENT)
  	{
  	  poly_int64 hwasan_orig_offset;
! 	  if (hwassist_sanitize_stack_p ())
  	    {
  	      /* There must be no tag granule "shared" between different
  		 objects.  This means that no HWASAN_TAG_GRANULE_SIZE byte
*************** expand_stack_vars (bool (*pred) (unsigne
*** 1570,1576 ****
  	      offset = alloc_stack_frame_space (stack_vars[i].size, alignb);
  	      base_align = crtl->max_used_stack_slot_alignment;
  
! 	      if (hwasan_sanitize_stack_p ())
  		{
  		  /* Align again since the point of this alignment is to handle
  		     the "end" of the object (i.e. smallest address after the
--- 1578,1584 ----
  	      offset = alloc_stack_frame_space (stack_vars[i].size, alignb);
  	      base_align = crtl->max_used_stack_slot_alignment;
  
! 	      if (hwassist_sanitize_stack_p ())
  		{
  		  /* Align again since the point of this alignment is to handle
  		     the "end" of the object (i.e. smallest address after the
*************** expand_stack_vars (bool (*pred) (unsigne
*** 1615,1621 ****
  	  large_alloc = aligned_upper_bound (large_alloc, alignb);
  	  offset = large_alloc;
  	  large_alloc += stack_vars[i].size;
! 	  if (hwasan_sanitize_stack_p ())
  	    {
  	      /* An object with a large alignment requirement means that the
  		 alignment requirement is greater than the required alignment
--- 1623,1629 ----
  	  large_alloc = aligned_upper_bound (large_alloc, alignb);
  	  offset = large_alloc;
  	  large_alloc += stack_vars[i].size;
! 	  if (hwassist_sanitize_stack_p ())
  	    {
  	      /* An object with a large alignment requirement means that the
  		 alignment requirement is greater than the required alignment
*************** expand_stack_vars (bool (*pred) (unsigne
*** 1646,1652 ****
  	  expand_one_stack_var_at (stack_vars[j].decl,
  				   base, base_align, offset);
  	}
!       if (hwasan_sanitize_stack_p ())
  	hwasan_increment_frame_tag ();
      }
  
--- 1654,1660 ----
  	  expand_one_stack_var_at (stack_vars[j].decl,
  				   base, base_align, offset);
  	}
!       if (hwassist_sanitize_stack_p ())
  	hwasan_increment_frame_tag ();
      }
  
*************** expand_one_stack_var_1 (tree var)
*** 1739,1745 ****
    gcc_assert (byte_align * BITS_PER_UNIT <= MAX_SUPPORTED_STACK_ALIGNMENT);
  
    rtx base;
!   if (hwasan_sanitize_stack_p ())
      {
        /* Allocate zero bytes to align the stack.  */
        poly_int64 hwasan_orig_offset
--- 1747,1753 ----
    gcc_assert (byte_align * BITS_PER_UNIT <= MAX_SUPPORTED_STACK_ALIGNMENT);
  
    rtx base;
!   if (hwassist_sanitize_stack_p ())
      {
        /* Allocate zero bytes to align the stack.  */
        poly_int64 hwasan_orig_offset
*************** expand_one_stack_var_1 (tree var)
*** 1767,1773 ****
    expand_one_stack_var_at (var, base,
  			   crtl->max_used_stack_slot_alignment, offset);
  
!   if (hwasan_sanitize_stack_p ())
      hwasan_increment_frame_tag ();
  }
  
--- 1775,1781 ----
    expand_one_stack_var_at (var, base,
  			   crtl->max_used_stack_slot_alignment, offset);
  
!   if (hwassist_sanitize_stack_p ())
      hwasan_increment_frame_tag ();
  }
  
*************** init_vars_expansion (void)
*** 2371,2377 ****
    /* Initialize local stack smashing state.  */
    has_protected_decls = false;
    has_short_buffer = false;
!   if (hwasan_sanitize_stack_p ())
      hwasan_record_frame_init ();
  }
  
--- 2379,2385 ----
    /* Initialize local stack smashing state.  */
    has_protected_decls = false;
    has_short_buffer = false;
!   if (hwassist_sanitize_stack_p ())
      hwasan_record_frame_init ();
  }
  
*************** expand_used_vars (bitmap forced_stack_va
*** 2697,2709 ****
        expand_stack_vars (NULL, &data);
      }
  
!   if (hwasan_sanitize_stack_p ())
      hwasan_emit_prologue ();
    if (asan_sanitize_allocas_p () && cfun->calls_alloca)
      var_end_seq = asan_emit_allocas_unpoison (virtual_stack_dynamic_rtx,
  					      virtual_stack_vars_rtx,
  					      var_end_seq);
!   else if (hwasan_sanitize_allocas_p () && cfun->calls_alloca)
      /* When using out-of-line instrumentation we only want to emit one function
         call for clearing the tags in a region of shadow stack.  When there are
         alloca calls in this frame we want to emit a call using the
--- 2705,2718 ----
        expand_stack_vars (NULL, &data);
      }
  
!   if (hwassist_sanitize_stack_p ())
      hwasan_emit_prologue ();
    if (asan_sanitize_allocas_p () && cfun->calls_alloca)
      var_end_seq = asan_emit_allocas_unpoison (virtual_stack_dynamic_rtx,
  					      virtual_stack_vars_rtx,
  					      var_end_seq);
!   else if ((hwasan_sanitize_allocas_p () || memtag_sanitize_p ())
! 	   && cfun->calls_alloca)
      /* When using out-of-line instrumentation we only want to emit one function
         call for clearing the tags in a region of shadow stack.  When there are
         alloca calls in this frame we want to emit a call using the
*************** expand_used_vars (bitmap forced_stack_va
*** 2711,2717 ****
         rtx we created in expand_stack_vars.  */
      var_end_seq = hwasan_emit_untag_frame (virtual_stack_dynamic_rtx,
  					   virtual_stack_vars_rtx);
!   else if (hwasan_sanitize_stack_p ())
      /* If no variables were stored on the stack, `hwasan_get_frame_extent`
         will return NULL_RTX and hence `hwasan_emit_untag_frame` will return
         NULL (i.e. an empty sequence).  */
--- 2720,2726 ----
         rtx we created in expand_stack_vars.  */
      var_end_seq = hwasan_emit_untag_frame (virtual_stack_dynamic_rtx,
  					   virtual_stack_vars_rtx);
!   else if (hwassist_sanitize_stack_p ())
      /* If no variables were stored on the stack, `hwasan_get_frame_extent`
         will return NULL_RTX and hence `hwasan_emit_untag_frame` will return
         NULL (i.e. an empty sequence).  */
*************** maybe_dump_rtl_for_gimple_stmt (gimple *
*** 2765,2770 ****
--- 2774,2783 ----
      }
  }
  
+ /* Temporary storage for BB_HEAD and BB_END of bbs until they are converted
+    to BB_RTL.  */
+ static vec<std::pair <rtx_insn *, rtx_insn *>> head_end_for_bb;
+ 
  /* Maps the blocks that do not contain tree labels to rtx labels.  */
  
  static hash_map<basic_block, rtx_code_label *> *lab_rtx_for_bb;
*************** static hash_map<basic_block, rtx_code_la
*** 2772,2782 ****
  /* Returns the label_rtx expression for a label starting basic block BB.  */
  
  static rtx_code_label *
! label_rtx_for_bb (basic_block bb ATTRIBUTE_UNUSED)
  {
    if (bb->flags & BB_RTL)
      return block_label (bb);
  
    rtx_code_label **elt = lab_rtx_for_bb->get (bb);
    if (elt)
      return *elt;
--- 2785,2807 ----
  /* Returns the label_rtx expression for a label starting basic block BB.  */
  
  static rtx_code_label *
! label_rtx_for_bb (basic_block bb)
  {
    if (bb->flags & BB_RTL)
      return block_label (bb);
  
+   if ((unsigned) bb->index < head_end_for_bb.length ()
+       && head_end_for_bb[bb->index].first)
+     {
+       if (!LABEL_P (head_end_for_bb[bb->index].first))
+ 	{
+ 	  head_end_for_bb[bb->index].first
+ 	    = emit_label_before (gen_label_rtx (),
+ 				 head_end_for_bb[bb->index].first);
+ 	}
+       return as_a <rtx_code_label *> (head_end_for_bb[bb->index].first);
+     }
+ 
    rtx_code_label **elt = lab_rtx_for_bb->get (bb);
    if (elt)
      return *elt;
*************** label_rtx_for_bb (basic_block bb ATTRIBU
*** 2795,2800 ****
--- 2820,2863 ----
  }
  
  
+ /* Wrapper around remove_edge during expansion.  */
+ 
+ void
+ expand_remove_edge (edge e)
+ {
+   if (current_ir_type () != IR_GIMPLE
+       && (e->dest->flags & BB_RTL) == 0
+       && !gimple_seq_empty_p (phi_nodes (e->dest)))
+     remove_phi_args (e);
+   remove_edge (e);
+ }
+ 
+ /* Split edge E during expansion and instead of creating a new
+    bb on that edge, add there BB.  FLAGS should be flags on the
+    new edge from BB to former E->dest.  */
+ 
+ static void
+ expand_split_edge (edge e, basic_block bb, int flags)
+ {
+   unsigned int dest_idx = e->dest_idx;
+   basic_block dest = e->dest;
+   redirect_edge_succ (e, bb);
+   e = make_single_succ_edge (bb, dest, flags);
+   if ((dest->flags & BB_RTL) == 0
+       && phi_nodes (dest)
+       && e->dest_idx != dest_idx)
+     {
+       /* If there are any PHI nodes on dest, swap the new succ edge
+ 	 with the one moved into false_edge's former position, so that
+ 	 PHI arguments don't need adjustment.  */
+       edge e2 = EDGE_PRED (dest, dest_idx);
+       std::swap (e->dest_idx, e2->dest_idx);
+       std::swap (EDGE_PRED (dest, e->dest_idx),
+ 		 EDGE_PRED (dest, e2->dest_idx));
+     }
+ }
+ 
+ 
  /* A subroutine of expand_gimple_cond.  Given E, a fallthrough edge
     of a basic block where we just expanded the conditional at the end,
     possibly clean up the CFG and instruction sequence.  LAST is the
*************** maybe_cleanup_end_of_block (edge e, rtx_
*** 2817,2823 ****
    if (BARRIER_P (get_last_insn ()))
      {
        rtx_insn *insn;
!       remove_edge (e);
        /* Now, we have a single successor block, if we have insns to
  	 insert on the remaining edge we potentially will insert
  	 it at the end of this block (if the dest block isn't feasible)
--- 2880,2886 ----
    if (BARRIER_P (get_last_insn ()))
      {
        rtx_insn *insn;
!       expand_remove_edge (e);
        /* Now, we have a single successor block, if we have insns to
  	 insert on the remaining edge we potentially will insert
  	 it at the end of this block (if the dest block isn't feasible)
*************** expand_gimple_cond (basic_block bb, gcon
*** 2936,2945 ****
    extract_true_false_edges_from_block (bb, &true_edge, &false_edge);
    set_curr_insn_location (gimple_location (stmt));
  
-   /* These flags have no purpose in RTL land.  */
-   true_edge->flags &= ~EDGE_TRUE_VALUE;
-   false_edge->flags &= ~EDGE_FALSE_VALUE;
- 
    /* We can either have a pure conditional jump with one fallthru edge or
       two-way jump that needs to be decomposed into two basic blocks.  */
    if (false_edge->dest == bb->next_bb)
--- 2999,3004 ----
*************** expand_gimple_cond (basic_block bb, gcon
*** 2972,2985 ****
      set_curr_insn_location (false_edge->goto_locus);
    emit_jump (label_rtx_for_bb (false_edge->dest));
  
!   BB_END (bb) = last;
!   if (BARRIER_P (BB_END (bb)))
!     BB_END (bb) = PREV_INSN (BB_END (bb));
!   update_bb_for_insn (bb);
  
    new_bb = create_basic_block (NEXT_INSN (last), get_last_insn (), bb);
    dest = false_edge->dest;
!   redirect_edge_succ (false_edge, new_bb);
    false_edge->flags |= EDGE_FALLTHRU;
    new_bb->count = false_edge->count ();
    loop_p loop = find_common_loop (bb->loop_father, dest->loop_father);
--- 3031,3046 ----
      set_curr_insn_location (false_edge->goto_locus);
    emit_jump (label_rtx_for_bb (false_edge->dest));
  
!   head_end_for_bb[bb->index].second = last;
!   if (BARRIER_P (head_end_for_bb[bb->index].second))
!     head_end_for_bb[bb->index].second
!       = PREV_INSN (head_end_for_bb[bb->index].second);
!   update_bb_for_insn_chain (head_end_for_bb[bb->index].first,
! 			    head_end_for_bb[bb->index].second, bb);
  
    new_bb = create_basic_block (NEXT_INSN (last), get_last_insn (), bb);
    dest = false_edge->dest;
!   expand_split_edge (false_edge, new_bb, 0);
    false_edge->flags |= EDGE_FALLTHRU;
    new_bb->count = false_edge->count ();
    loop_p loop = find_common_loop (bb->loop_father, dest->loop_father);
*************** expand_gimple_cond (basic_block bb, gcon
*** 2987,2993 ****
    if (loop->latch == bb
        && loop->header == dest)
      loop->latch = new_bb;
-   make_single_succ_edge (new_bb, dest, 0);
    if (BARRIER_P (BB_END (new_bb)))
      BB_END (new_bb) = PREV_INSN (BB_END (new_bb));
    update_bb_for_insn (new_bb);
--- 3048,3053 ----
*************** expand_asm_loc (tree string, int vol, lo
*** 3216,3259 ****
    emit_insn (body);
  }
  
- /* Return the number of times character C occurs in string S.  */
- static int
- n_occurrences (int c, const char *s)
- {
-   int n = 0;
-   while (*s)
-     n += (*s++ == c);
-   return n;
- }
- 
- /* A subroutine of expand_asm_operands.  Check that all operands have
-    the same number of alternatives.  Return true if so.  */
- 
- static bool
- check_operand_nalternatives (const vec<const char *> &constraints)
- {
-   unsigned len = constraints.length();
-   if (len > 0)
-     {
-       int nalternatives = n_occurrences (',', constraints[0]);
- 
-       if (nalternatives + 1 > MAX_RECOG_ALTERNATIVES)
- 	{
- 	  error ("too many alternatives in %<asm%>");
- 	  return false;
- 	}
- 
-       for (unsigned i = 1; i < len; ++i)
- 	if (n_occurrences (',', constraints[i]) != nalternatives)
- 	  {
- 	    error ("operand constraints for %<asm%> differ "
- 		   "in number of alternatives");
- 	    return false;
- 	  }
-     }
-   return true;
- }
- 
  /* Check for overlap between registers marked in CLOBBERED_REGS and
     anything inappropriate in T.  Emit error and return the register
     variable definition for error, NULL_TREE for ok.  */
--- 3276,3281 ----
*************** expand_asm_stmt (gasm *stmt)
*** 3419,3428 ****
  	= TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (t)));
      }
  
-   /* ??? Diagnose during gimplification?  */
-   if (! check_operand_nalternatives (constraints))
-     return;
- 
    /* Count the number of meaningful clobbered registers, ignoring what
       we would ignore later.  */
    auto_vec<rtx> clobber_rvec;
--- 3441,3446 ----
*************** expand_asm_stmt (gasm *stmt)
*** 3496,3502 ****
  	 no point in going further.  */
        constraint = constraints[i];
        if (!parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				    &allows_mem, &allows_reg, &is_inout))
  	return;
  
        /* If the output is a hard register, verify it doesn't conflict with
--- 3514,3521 ----
  	 no point in going further.  */
        constraint = constraints[i];
        if (!parse_output_constraint (&constraint, i, ninputs, noutputs,
! 				    &allows_mem, &allows_reg, &is_inout,
! 				    nullptr))
  	return;
  
        /* If the output is a hard register, verify it doesn't conflict with
*************** expand_asm_stmt (gasm *stmt)
*** 3574,3581 ****
  
        constraint = constraints[i + noutputs];
        if (! parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				    constraints.address (),
! 				    &allows_mem, &allows_reg))
  	return;
  
        if (! allows_reg && allows_mem)
--- 3593,3600 ----
  
        constraint = constraints[i + noutputs];
        if (! parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
! 				    constraints.address (), &allows_mem,
! 				    &allows_reg, nullptr))
  	return;
  
        if (! allows_reg && allows_mem)
*************** expand_asm_stmt (gasm *stmt)
*** 3605,3611 ****
  
        ok = parse_output_constraint (&constraints[i], i, ninputs,
  				    noutputs, &allows_mem, &allows_reg,
! 				    &is_inout);
        gcc_assert (ok);
  
        /* If an output operand is not a decl or indirect ref and our constraint
--- 3624,3630 ----
  
        ok = parse_output_constraint (&constraints[i], i, ninputs,
  				    noutputs, &allows_mem, &allows_reg,
! 				    &is_inout, nullptr);
        gcc_assert (ok);
  
        /* If an output operand is not a decl or indirect ref and our constraint
*************** expand_asm_stmt (gasm *stmt)
*** 3710,3716 ****
        constraint = constraints[i + noutputs];
        ok = parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
  				   constraints.address (),
! 				   &allows_mem, &allows_reg);
        gcc_assert (ok);
  
        /* EXPAND_INITIALIZER will not generate code for valid initializer
--- 3729,3735 ----
        constraint = constraints[i + noutputs];
        ok = parse_input_constraint (&constraint, i, ninputs, noutputs, 0,
  				   constraints.address (),
! 				   &allows_mem, &allows_reg, nullptr);
        gcc_assert (ok);
  
        /* EXPAND_INITIALIZER will not generate code for valid initializer
*************** expand_asm_stmt (gasm *stmt)
*** 3767,3779 ****
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
-   rtx_insn *after_md_seq = NULL;
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
--- 3786,3807 ----
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     {
!       rtx_insn *after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
+       if (after_md_seq)
+ 	{
+ 	  push_to_sequence (after_md_seq);
+ 	  emit_insn (after_rtl_seq);
+ 	  after_rtl_seq = get_insns ();
+ 	  after_rtl_end = get_last_insn ();
+ 	  end_sequence ();
+ 	}
+     }
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
*************** expand_asm_stmt (gasm *stmt)
*** 3948,3955 ****
    if (fallthru_label)
      emit_label (fallthru_label);
  
-   if (after_md_seq)
-     emit_insn (after_md_seq);
    if (after_rtl_seq)
      {
        if (nlabels == 0)
--- 3976,3981 ----
*************** expand_asm_stmt (gasm *stmt)
*** 3970,3977 ****
  		  start_sequence ();
  		  duplicate_insn_chain (after_rtl_seq, after_rtl_end,
  					NULL, NULL);
! 		  copy = get_insns ();
! 		  end_sequence ();
  		}
  	      prepend_insn_to_edge (copy, e);
  	    }
--- 3996,4002 ----
  		  start_sequence ();
  		  duplicate_insn_chain (after_rtl_seq, after_rtl_end,
  					NULL, NULL);
! 		  copy = end_sequence ();
  		}
  	      prepend_insn_to_edge (copy, e);
  	    }
*************** expand_gimple_tailcall (basic_block bb,
*** 4493,4499 ****
  	  if (e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
  	    e->dest->count -= e->count ();
  	  probability += e->probability;
! 	  remove_edge (e);
  	}
        else
  	ei_next (&ei);
--- 4518,4524 ----
  	  if (e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun))
  	    e->dest->count -= e->count ();
  	  probability += e->probability;
! 	  expand_remove_edge (e);
  	}
        else
  	ei_next (&ei);
*************** expand_gimple_tailcall (basic_block bb,
*** 4521,4528 ****
    e = make_edge (bb, EXIT_BLOCK_PTR_FOR_FN (cfun), EDGE_ABNORMAL
  		 | EDGE_SIBCALL);
    e->probability = probability;
!   BB_END (bb) = last;
!   update_bb_for_insn (bb);
  
    if (NEXT_INSN (last))
      {
--- 4546,4554 ----
    e = make_edge (bb, EXIT_BLOCK_PTR_FOR_FN (cfun), EDGE_ABNORMAL
  		 | EDGE_SIBCALL);
    e->probability = probability;
!   head_end_for_bb[bb->index].second = last;
!   update_bb_for_insn_chain (head_end_for_bb[bb->index].first,
! 			    head_end_for_bb[bb->index].second, bb);
  
    if (NEXT_INSN (last))
      {
*************** expand_debug_expr (tree exp)
*** 5299,5304 ****
--- 5325,5333 ----
        return simplify_gen_binary (MULT, mode, op0, op1);
  
      case RDIV_EXPR:
+       gcc_assert (FLOAT_MODE_P (mode)
+ 		  || ALL_FIXED_POINT_MODE_P (mode));
+       /* Fall through.  */
      case TRUNC_DIV_EXPR:
      case EXACT_DIV_EXPR:
        if (unsignedp)
*************** expand_debug_expr (tree exp)
*** 5635,5646 ****
        else if (TREE_CODE (TREE_TYPE (exp)) == VECTOR_TYPE)
  	{
  	  unsigned i;
! 	  unsigned HOST_WIDE_INT nelts;
  	  tree val;
  
- 	  if (!TYPE_VECTOR_SUBPARTS (TREE_TYPE (exp)).is_constant (&nelts))
- 	    goto flag_unsupported;
- 
  	  op0 = gen_rtx_CONCATN (mode, rtvec_alloc (nelts));
  
  	  FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (exp), i, val)
--- 5664,5673 ----
        else if (TREE_CODE (TREE_TYPE (exp)) == VECTOR_TYPE)
  	{
  	  unsigned i;
! 	  poly_uint64 elts = TYPE_VECTOR_SUBPARTS (TREE_TYPE (exp));
! 	  unsigned HOST_WIDE_INT nelts = constant_lower_bound (elts);
  	  tree val;
  
  	  op0 = gen_rtx_CONCATN (mode, rtvec_alloc (nelts));
  
  	  FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (exp), i, val)
*************** static basic_block
*** 6140,6146 ****
  expand_gimple_basic_block (basic_block bb, rtx_insn *asan_epilog_seq)
  {
    gimple_stmt_iterator gsi;
-   gimple_seq stmts;
    gimple *stmt = NULL;
    rtx_note *note = NULL;
    rtx_insn *last;
--- 6167,6172 ----
*************** expand_gimple_basic_block (basic_block b
*** 6158,6175 ****
       access the BB sequence directly.  */
    if (optimize)
      reorder_operands (bb);
-   stmts = bb_seq (bb);
-   bb->il.gimple.seq = NULL;
-   bb->il.gimple.phi_nodes = NULL;
    rtl_profile_for_bb (bb);
-   init_rtl_bb_info (bb);
-   bb->flags |= BB_RTL;
  
    /* Remove the RETURN_EXPR if we may fall though to the exit
       instead.  */
!   gsi = gsi_last (stmts);
!   if (!gsi_end_p (gsi)
!       && gimple_code (gsi_stmt (gsi)) == GIMPLE_RETURN)
      {
        greturn *ret_stmt = as_a <greturn *> (gsi_stmt (gsi));
  
--- 6184,6195 ----
       access the BB sequence directly.  */
    if (optimize)
      reorder_operands (bb);
    rtl_profile_for_bb (bb);
  
    /* Remove the RETURN_EXPR if we may fall though to the exit
       instead.  */
!   gsi = gsi_last_bb (bb);
!   if (!gsi_end_p (gsi) && gimple_code (gsi_stmt (gsi)) == GIMPLE_RETURN)
      {
        greturn *ret_stmt = as_a <greturn *> (gsi_stmt (gsi));
  
*************** expand_gimple_basic_block (basic_block b
*** 6184,6190 ****
  	}
      }
  
!   gsi = gsi_start (stmts);
    if (!gsi_end_p (gsi))
      {
        stmt = gsi_stmt (gsi);
--- 6204,6210 ----
  	}
      }
  
!   gsi = gsi_start_bb (bb);
    if (!gsi_end_p (gsi))
      {
        stmt = gsi_stmt (gsi);
*************** expand_gimple_basic_block (basic_block b
*** 6193,6198 ****
--- 6213,6220 ----
      }
  
    rtx_code_label **elt = lab_rtx_for_bb->get (bb);
+   if ((unsigned) bb->index >= head_end_for_bb.length ())
+     head_end_for_bb.safe_grow_cleared (bb->index + 1);
  
    if (stmt || elt)
      {
*************** expand_gimple_basic_block (basic_block b
*** 6208,6223 ****
        if (elt)
  	emit_label (*elt);
  
!       BB_HEAD (bb) = NEXT_INSN (last);
!       if (NOTE_P (BB_HEAD (bb)))
! 	BB_HEAD (bb) = NEXT_INSN (BB_HEAD (bb));
!       gcc_assert (LABEL_P (BB_HEAD (bb)));
!       note = emit_note_after (NOTE_INSN_BASIC_BLOCK, BB_HEAD (bb));
  
        maybe_dump_rtl_for_gimple_stmt (stmt, last);
      }
    else
!     BB_HEAD (bb) = note = emit_note (NOTE_INSN_BASIC_BLOCK);
  
    if (note)
      NOTE_BASIC_BLOCK (note) = bb;
--- 6230,6247 ----
        if (elt)
  	emit_label (*elt);
  
!       head_end_for_bb[bb->index].first = NEXT_INSN (last);
!       if (NOTE_P (head_end_for_bb[bb->index].first))
! 	head_end_for_bb[bb->index].first
! 	  = NEXT_INSN (head_end_for_bb[bb->index].first);
!       gcc_assert (LABEL_P (head_end_for_bb[bb->index].first));
!       note = emit_note_after (NOTE_INSN_BASIC_BLOCK,
! 			      head_end_for_bb[bb->index].first);
  
        maybe_dump_rtl_for_gimple_stmt (stmt, last);
      }
    else
!     head_end_for_bb[bb->index].first = note = emit_note (NOTE_INSN_BASIC_BLOCK);
  
    if (note)
      NOTE_BASIC_BLOCK (note) = bb;
*************** expand_gimple_basic_block (basic_block b
*** 6535,6543 ****
      last = PREV_INSN (PREV_INSN (last));
    if (BARRIER_P (last))
      last = PREV_INSN (last);
!   BB_END (bb) = last;
  
!   update_bb_for_insn (bb);
  
    return bb;
  }
--- 6559,6568 ----
      last = PREV_INSN (PREV_INSN (last));
    if (BARRIER_P (last))
      last = PREV_INSN (last);
!   head_end_for_bb[bb->index].second = last;
  
!   update_bb_for_insn_chain (head_end_for_bb[bb->index].first,
! 			    head_end_for_bb[bb->index].second, bb);
  
    return bb;
  }
*************** expand_gimple_basic_block (basic_block b
*** 6548,6554 ****
  static basic_block
  construct_init_block (void)
  {
!   basic_block init_block, first_block;
    edge e = NULL;
    int flags;
  
--- 6573,6579 ----
  static basic_block
  construct_init_block (void)
  {
!   basic_block init_block;
    edge e = NULL;
    int flags;
  
*************** construct_init_block (void)
*** 6579,6589 ****
    init_block->count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
    add_bb_to_loop (init_block, ENTRY_BLOCK_PTR_FOR_FN (cfun)->loop_father);
    if (e)
!     {
!       first_block = e->dest;
!       redirect_edge_succ (e, init_block);
!       make_single_succ_edge (init_block, first_block, flags);
!     }
    else
      make_single_succ_edge (init_block, EXIT_BLOCK_PTR_FOR_FN (cfun),
  			   EDGE_FALLTHRU);
--- 6604,6610 ----
    init_block->count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
    add_bb_to_loop (init_block, ENTRY_BLOCK_PTR_FOR_FN (cfun)->loop_father);
    if (e)
!     expand_split_edge (e, init_block, flags);
    else
      make_single_succ_edge (init_block, EXIT_BLOCK_PTR_FOR_FN (cfun),
  			   EDGE_FALLTHRU);
*************** pass_expand::execute (function *fun)
*** 7073,7080 ****
  
    var_ret_seq = expand_used_vars (forced_stack_vars);
  
!   var_seq = get_insns ();
!   end_sequence ();
    timevar_pop (TV_VAR_EXPAND);
  
    /* Honor stack protection warnings.  */
--- 7094,7100 ----
  
    var_ret_seq = expand_used_vars (forced_stack_vars);
  
!   var_seq = end_sequence ();
    timevar_pop (TV_VAR_EXPAND);
  
    /* Honor stack protection warnings.  */
*************** pass_expand::execute (function *fun)
*** 7226,7235 ****
--- 7246,7280 ----
        >= param_max_debug_marker_count)
      cfun->debug_nonbind_markers = false;
  
+   enable_ranger (fun);
    lab_rtx_for_bb = new hash_map<basic_block, rtx_code_label *>;
+   head_end_for_bb.create (last_basic_block_for_fn (fun));
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
      bb = expand_gimple_basic_block (bb, var_ret_seq);
+   disable_ranger (fun);
+   FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
+ 		  next_bb)
+     {
+       if ((bb->flags & BB_RTL) == 0)
+ 	{
+ 	  bb->il.gimple.seq = NULL;
+ 	  bb->il.gimple.phi_nodes = NULL;
+ 	  init_rtl_bb_info (bb);
+ 	  bb->flags |= BB_RTL;
+ 	  BB_HEAD (bb) = head_end_for_bb[bb->index].first;
+ 	  BB_END (bb) = head_end_for_bb[bb->index].second;
+ 	}
+       /* These flags have no purpose in RTL land.  */
+       if (EDGE_COUNT (bb->succs) == 2)
+ 	{
+ 	  EDGE_SUCC (bb, 0)->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
+ 	  EDGE_SUCC (bb, 1)->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
+ 	}
+       else if (single_succ_p (bb))
+ 	single_succ_edge (bb)->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
+     }
+   head_end_for_bb.release ();
  
    if (MAY_HAVE_DEBUG_BIND_INSNS)
      expand_debug_locations ();
*************** pass_expand::execute (function *fun)
*** 7271,7277 ****
        emit_insn_after (var_ret_seq, after);
      }
  
!   if (hwasan_sanitize_stack_p ())
      hwasan_maybe_emit_frame_base_init ();
  
    /* Zap the tree EH table.  */
--- 7316,7322 ----
        emit_insn_after (var_ret_seq, after);
      }
  
!   if (hwassist_sanitize_stack_p ())
      hwasan_maybe_emit_frame_base_init ();
  
    /* Zap the tree EH table.  */
diff -Nrcpad gcc-15.2.0/gcc/cfgexpand.h gcc-16.1.0-RC-20260423/gcc/cfgexpand.h
*** gcc-15.2.0/gcc/cfgexpand.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgexpand.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Header file for lowering trees to RTL.
!    Copyright (C) 2013-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Header file for lowering trees to RTL.
!    Copyright (C) 2013-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 22,27 ****
--- 22,28 ----
  
  extern tree gimple_assign_rhs_to_tree (gimple *);
  extern HOST_WIDE_INT estimated_stack_frame_size (struct cgraph_node *);
+ extern void expand_remove_edge (edge);
  extern void set_parm_rtl (tree, rtx);
  
  
diff -Nrcpad gcc-15.2.0/gcc/cfghooks.cc gcc-16.1.0-RC-20260423/gcc/cfghooks.cc
*** gcc-15.2.0/gcc/cfghooks.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfghooks.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
*************** You should have received a copy of the G
*** 18,23 ****
--- 18,24 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
+ #define INCLUDE_VECTOR
  #include "config.h"
  #include "system.h"
  #include "coretypes.h"
*************** along with GCC; see the file COPYING3.
*** 34,39 ****
--- 35,42 ----
  #include "cfgloop.h"
  #include "sreal.h"
  #include "profile.h"
+ #include "diagnostics/sarif-sink.h"
+ #include "custom-sarif-properties/cfg.h"
  
  /* Disable warnings about missing quoting in GCC diagnostics.  */
  #if __GNUC__ >= 10
*************** dump_bb_for_graph (pretty_printer *pp, b
*** 352,357 ****
--- 355,387 ----
      cfg_hooks->dump_bb_for_graph (pp, bb);
  }
  
+ void
+ dump_bb_as_sarif_properties (diagnostics::sarif_builder *builder,
+ 			     json::object &output_bag,
+ 			     basic_block bb)
+ {
+   if (!cfg_hooks->dump_bb_for_graph)
+     internal_error ("%s does not support dump_bb_as_sarif_properties",
+ 		    cfg_hooks->name);
+   namespace bb_property_names = custom_sarif_properties::cfg::basic_block;
+   if (bb->index == ENTRY_BLOCK)
+     output_bag.set_string (bb_property_names::kind, "entry");
+   else if (bb->index == EXIT_BLOCK)
+     output_bag.set_string (bb_property_names::kind, "exit");
+   else if (BB_PARTITION (bb) == BB_HOT_PARTITION)
+     output_bag.set_string (bb_property_names::kind, "hot");
+   else if (BB_PARTITION (bb) == BB_COLD_PARTITION)
+     output_bag.set_string (bb_property_names::kind, "cold");
+   if (bb->count.initialized_p ())
+     {
+       pretty_printer pp;
+       pp_printf (&pp, "%" PRId64, bb->count.to_gcov_type ());
+       output_bag.set_string (bb_property_names::count,
+ 			     pp_formatted_text (&pp));
+     }
+   cfg_hooks->dump_bb_as_sarif_properties (builder, output_bag, bb);
+ }
+ 
  /* Dump the complete CFG to FILE.  FLAGS are the TDF_* flags in dumpfile.h.  */
  void
  dump_flow_info (FILE *file, dump_flags_t flags)
*************** merge_blocks (basic_block a, basic_block
*** 817,822 ****
--- 847,861 ----
    if (!cfg_hooks->merge_blocks)
      internal_error ("%s does not support merge_blocks", cfg_hooks->name);
  
+   /* Pick the more reliable count.  If both qualities agrees, pick the larger
+      one since turning mistakely hot code to cold is more harmful.  */
+   if (!a->count.initialized_p ())
+     a->count = b->count;
+   else if (a->count.quality () < b->count.quality ())
+     a->count = b->count;
+   else if (a->count.quality () == b->count.quality ())
+     a->count = profile_count::max_prefer_initialized (a->count, b->count);
+ 
    cfg_hooks->merge_blocks (a, b);
  
    if (current_loops != NULL)
diff -Nrcpad gcc-15.2.0/gcc/cfghooks.h gcc-16.1.0-RC-20260423/gcc/cfghooks.h
*** gcc-15.2.0/gcc/cfghooks.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfghooks.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
--- 1,5 ----
  /* Hooks for cfg representation specific functions.
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Sebastian Pop <s.pop@laposte.net>
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 23,28 ****
--- 23,31 ----
  
  #include "predict.h"
  
+ namespace diagnostics { class sarif_builder; }
+ namespace json { class object; }
+ 
  /* Structure to gather statistic about profile consistency, per pass.
     An array of this structure, indexed by pass static number, is allocated
     in passes.cc.  The structure is defined here so that different CFG modes
*************** struct cfg_hooks
*** 81,86 ****
--- 84,93 ----
    bool (*verify_flow_info) (void);
    void (*dump_bb) (FILE *, basic_block, int, dump_flags_t);
    void (*dump_bb_for_graph) (pretty_printer *, basic_block);
+   void
+   (*dump_bb_as_sarif_properties) (diagnostics::sarif_builder *,
+ 				  json::object &,
+ 				  basic_block);
  
    /* Basic CFG manipulation.  */
  
*************** checking_verify_flow_info (void)
*** 216,221 ****
--- 223,231 ----
  
  extern void dump_bb (FILE *, basic_block, int, dump_flags_t);
  extern void dump_bb_for_graph (pretty_printer *, basic_block);
+ extern void dump_bb_as_sarif_properties (diagnostics::sarif_builder *,
+ 					 json::object &,
+ 					 basic_block);
  extern void dump_flow_info (FILE *, dump_flags_t);
  
  extern edge redirect_edge_and_branch (edge, basic_block);
diff -Nrcpad gcc-15.2.0/gcc/cfgloop.cc gcc-16.1.0-RC-20260423/gcc/cfgloop.cc
*** gcc-15.2.0/gcc/cfgloop.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgloop.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Natural loop discovery code for GNU compiler.
!    Copyright (C) 2000-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop discovery code for GNU compiler.
!    Copyright (C) 2000-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** single_exit (const class loop *loop)
*** 1805,1813 ****
      return NULL;
  }
  
! /* Returns true when BB has an incoming edge exiting LOOP.  */
  
! bool
  loop_exits_to_bb_p (class loop *loop, basic_block bb)
  {
    edge e;
--- 1805,1814 ----
      return NULL;
  }
  
! /* Returns incoming edge when BB has an incoming edge exiting LOOP, else return
!    NULL.  */
  
! edge
  loop_exits_to_bb_p (class loop *loop, basic_block bb)
  {
    edge e;
*************** loop_exits_to_bb_p (class loop *loop, ba
*** 1815,1828 ****
  
    FOR_EACH_EDGE (e, ei, bb->preds)
      if (loop_exit_edge_p (loop, e))
!       return true;
  
!   return false;
  }
  
! /* Returns true when BB has an outgoing edge exiting LOOP.  */
  
! bool
  loop_exits_from_bb_p (class loop *loop, basic_block bb)
  {
    edge e;
--- 1816,1830 ----
  
    FOR_EACH_EDGE (e, ei, bb->preds)
      if (loop_exit_edge_p (loop, e))
!       return e;
  
!   return NULL;
  }
  
! /* Returns outgoing edge when BB has an outgoing edge exiting LOOP, else return
!    NULL.  */
  
! edge
  loop_exits_from_bb_p (class loop *loop, basic_block bb)
  {
    edge e;
*************** loop_exits_from_bb_p (class loop *loop,
*** 1830,1838 ****
  
    FOR_EACH_EDGE (e, ei, bb->succs)
      if (loop_exit_edge_p (loop, e))
!       return true;
  
!   return false;
  }
  
  /* Return location corresponding to the loop control condition if possible.  */
--- 1832,1840 ----
  
    FOR_EACH_EDGE (e, ei, bb->succs)
      if (loop_exit_edge_p (loop, e))
!       return e;
  
!   return NULL;
  }
  
  /* Return location corresponding to the loop control condition if possible.  */
diff -Nrcpad gcc-15.2.0/gcc/cfgloop.h gcc-16.1.0-RC-20260423/gcc/cfgloop.h
*** gcc-15.2.0/gcc/cfgloop.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgloop.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Natural loop functions
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop functions
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern int num_loop_insns (const class l
*** 370,377 ****
  extern int average_num_loop_insns (const class loop *);
  extern unsigned get_loop_level (const class loop *);
  extern bool loop_exit_edge_p (const class loop *, const_edge);
! extern bool loop_exits_to_bb_p (class loop *, basic_block);
! extern bool loop_exits_from_bb_p (class loop *, basic_block);
  extern void mark_loop_exit_edges (void);
  extern dump_user_location_t get_loop_location (class loop *loop);
  
--- 370,377 ----
  extern int average_num_loop_insns (const class loop *);
  extern unsigned get_loop_level (const class loop *);
  extern bool loop_exit_edge_p (const class loop *, const_edge);
! extern edge loop_exits_to_bb_p (class loop *, basic_block);
! extern edge loop_exits_from_bb_p (class loop *, basic_block);
  extern void mark_loop_exit_edges (void);
  extern dump_user_location_t get_loop_location (class loop *loop);
  
diff -Nrcpad gcc-15.2.0/gcc/cfgloopanal.cc gcc-16.1.0-RC-20260423/gcc/cfgloopanal.cc
*** gcc-15.2.0/gcc/cfgloopanal.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgloopanal.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Natural loop analysis code for GNU compiler.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Natural loop analysis code for GNU compiler.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** init_set_costs (void)
*** 471,485 ****
  
        start_sequence ();
        emit_move_insn (reg1, reg2);
!       seq = get_insns ();
!       end_sequence ();
        target_reg_cost [speed] = seq_cost (seq, speed);
  
        start_sequence ();
        emit_move_insn (mem, reg1);
        emit_move_insn (reg2, mem);
!       seq = get_insns ();
!       end_sequence ();
        target_spill_cost [speed] = seq_cost (seq, speed);
      }
    default_rtl_profile ();
--- 471,483 ----
  
        start_sequence ();
        emit_move_insn (reg1, reg2);
!       seq = end_sequence ();
        target_reg_cost [speed] = seq_cost (seq, speed);
  
        start_sequence ();
        emit_move_insn (mem, reg1);
        emit_move_insn (reg2, mem);
!       seq = end_sequence ();
        target_spill_cost [speed] = seq_cost (seq, speed);
      }
    default_rtl_profile ();
diff -Nrcpad gcc-15.2.0/gcc/cfgloopmanip.cc gcc-16.1.0-RC-20260423/gcc/cfgloopmanip.cc
*** gcc-15.2.0/gcc/cfgloopmanip.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgloopmanip.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Loop manipulation code for GNU compiler.
!    Copyright (C) 2002-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Loop manipulation code for GNU compiler.
!    Copyright (C) 2002-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** along with GCC; see the file COPYING3.
*** 32,37 ****
--- 32,40 ----
  #include "tree-ssa-loop-manip.h"
  #include "dumpfile.h"
  #include "sreal.h"
+ #include "tree-cfg.h"
+ #include "tree-pass.h"
+ #include "hierarchical_discriminator.h"
  
  static void copy_loops_to (class loop **, int,
  			   class loop *);
*************** static void
*** 1058,1080 ****
  fix_loop_placements (class loop *loop, bool *irred_invalidated,
  		     bitmap loop_closed_ssa_invalidated)
  {
!   class loop *outer;
  
    while (loop_outer (loop))
      {
        outer = loop_outer (loop);
!       if (!fix_loop_placement (loop, irred_invalidated,
! 			       loop_closed_ssa_invalidated))
! 	break;
! 
!       /* Changing the placement of a loop in the loop tree may alter the
! 	 validity of condition 2) of the description of fix_bb_placement
! 	 for its preheader, because the successor is the header and belongs
! 	 to the loop.  So call fix_bb_placements to fix up the placement
! 	 of the preheader and (possibly) of its predecessors.  */
!       fix_bb_placements (loop_preheader_edge (loop)->src,
! 			 irred_invalidated, loop_closed_ssa_invalidated);
        loop = outer;
      }
  }
  
--- 1061,1096 ----
  fix_loop_placements (class loop *loop, bool *irred_invalidated,
  		     bitmap loop_closed_ssa_invalidated)
  {
!   if (!loop_outer (loop))
!     return;
  
+   auto_vec<edge> exits = get_loop_exit_edges (loop);
+   unsigned i;
+   edge e;
+ 
+   /* We might need to only re-parent an outer loop, but as the constraint
+      is that we removed an exit from LOOP, we have a limit for what level
+      of outer loop we eventually have to re-parent to.  */
+   class loop *outermost = loop;
+   FOR_EACH_VEC_ELT (exits, i, e)
+     outermost = find_common_loop (outermost, e->dest->loop_father);
+ 
+   class loop *outer;
    while (loop_outer (loop))
      {
        outer = loop_outer (loop);
!       if (fix_loop_placement (loop, irred_invalidated,
! 			      loop_closed_ssa_invalidated))
! 	/* Changing the placement of a loop in the loop tree may alter the
! 	   validity of condition 2) of the description of fix_bb_placement
! 	   for its preheader, because the successor is the header and belongs
! 	   to the loop.  So call fix_bb_placements to fix up the placement
! 	   of the preheader and (possibly) of its predecessors.  */
! 	fix_bb_placements (loop_preheader_edge (loop)->src,
! 			   irred_invalidated, loop_closed_ssa_invalidated);
        loop = outer;
+       if (outer == outermost)
+ 	break;
      }
  }
  
*************** duplicate_loop_body_to_header_edge (clas
*** 1403,1408 ****
--- 1419,1458 ----
    spec_edges[SE_LATCH] = latch_edge;
  
    place_after = e->src;
+   location_t loop_loc = UNKNOWN_LOCATION;
+   unsigned int loop_copyid_base = 0;
+ 
+   /* Find a location from the loop header - works for both GIMPLE and RTL.  */
+   if (current_ir_type () == IR_GIMPLE)
+     {
+       gimple *last = last_nondebug_stmt (loop->header);
+       loop_loc = last ? gimple_location (last) : UNKNOWN_LOCATION;
+     }
+   else
+     {
+       /* For RTL, try to find an instruction with a valid location.  */
+       rtx_insn *insn = BB_END (loop->header);
+       while (insn && insn != BB_HEAD (loop->header))
+ 	{
+ 	  /* Only check location if this is a valid insn.  */
+ 	  if (INSN_P (insn))
+ 	    {
+ 	      location_t loc = INSN_LOCATION (insn);
+ 	      if (loc != UNKNOWN_LOCATION)
+ 		{
+ 		  loop_loc = get_pure_location (loc);
+ 		  break;
+ 		}
+ 	    }
+ 	  insn = PREV_INSN (insn);
+ 	}
+     }
+ 
+   /* Allocate copyid base for this loop duplication - works for both
+      GIMPLE and RTL since allocator is per-function.  */
+   if (loop_loc != UNKNOWN_LOCATION)
+     loop_copyid_base = allocate_copyid_base (loop_loc, ndupl);
+ 
    for (j = 0; j < ndupl; j++)
      {
        /* Copy loops.  */
*************** duplicate_loop_body_to_header_edge (clas
*** 1420,1425 ****
--- 1470,1518 ----
  	    new_bbs[i]->aux = (void *)(size_t)(j + 1);
  	  }
  
+       /* Assign hierarchical discriminators to distinguish loop iterations.  */
+       if (flags & DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR
+ 	  && loop_copyid_base > 0)
+ 	{
+ 	  /* Calculate copyid for this iteration.  */
+ 	  unsigned int copyid = loop_copyid_base + j;
+ 	  if (copyid > DISCR_COPYID_MAX)
+ 	    copyid = DISCR_COPYID_MAX;
+ 
+ 	  if (current_ir_type () == IR_GIMPLE)
+ 	    {
+ 	      /* Update all basic blocks created in this iteration.  */
+ 	      for (i = 0; i < n; i++)
+ 		assign_discriminators_to_bb (new_bbs[i], 0, copyid);
+ 	    }
+ 	  else
+ 	    {
+ 	      /* For RTL, manually update instruction locations.  */
+ 	      for (i = 0; i < n; i++)
+ 		{
+ 		  basic_block bb = new_bbs[i];
+ 		  rtx_insn *insn;
+ 
+ 		  /* Iterate through all instructions in the block.  */
+ 		  FOR_BB_INSNS (bb, insn)
+ 		    {
+ 		      if (INSN_HAS_LOCATION (insn))
+ 			{
+ 			  location_t loc = INSN_LOCATION (insn);
+ 			  /* Get existing discriminator components.  */
+ 			  discriminator_components comp
+ 			    = get_discriminator_components_from_loc (loc);
+ 			  comp.copyid = copyid;
+ 
+ 			  /* Apply hierarchical discriminator format.  */
+ 			  INSN_LOCATION (insn)
+ 			    = location_with_discriminator_components (loc, comp);
+ 			}
+ 		    }
+ 		}
+ 	    }
+ 	}
+ 
        /* Note whether the blocks and edges belong to an irreducible loop.  */
        if (add_irreducible_flag)
  	{
*************** create_preheader (class loop *loop, int
*** 1615,1621 ****
  	     just a single successor and a normal edge.  */
            if ((flags & CP_SIMPLE_PREHEADERS)
  	      && ((single_entry->flags & EDGE_COMPLEX)
! 		  || !single_succ_p (single_entry->src)))
              need_forwarder_block = true;
            /* If we want fallthru preheaders, also create forwarder block when
               preheader ends with a jump or has predecessors from loop.  */
--- 1708,1722 ----
  	     just a single successor and a normal edge.  */
            if ((flags & CP_SIMPLE_PREHEADERS)
  	      && ((single_entry->flags & EDGE_COMPLEX)
! 		  || !single_succ_p (single_entry->src)
! 		  /* We document LOOPS_HAVE_PREHEADERS as to forming a
! 		     natural place to move code outside of the loop, so it
! 		     should not end with a control instruction.  */
! 		  /* ???  This, and below JUMP_P check needs to be a new
! 		     CFG hook.  */
! 		  || (cfun->curr_properties & PROP_gimple
! 		      && !gsi_end_p (gsi_last_bb (single_entry->src))
! 		      && stmt_ends_bb_p (*gsi_last_bb (single_entry->src)))))
              need_forwarder_block = true;
            /* If we want fallthru preheaders, also create forwarder block when
               preheader ends with a jump or has predecessors from loop.  */
diff -Nrcpad gcc-15.2.0/gcc/cfgloopmanip.h gcc-16.1.0-RC-20260423/gcc/cfgloopmanip.h
*** gcc-15.2.0/gcc/cfgloopmanip.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgloopmanip.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Loop manipulation header.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Loop manipulation header.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** enum
*** 34,39 ****
--- 34,43 ----
  					   a complete peeling.  */
  #define DLTHE_FLAG_FLAT_PROFILE 8	/* Profile is flat; do not reduce
  					   count by unroll factor.  */
+ #define DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR 16 /* Assign hierarchical
+ 						      discriminators to
+ 						      distinguish loop
+ 						      iterations.  */
  extern edge mfb_kj_edge;
  
  extern bool remove_path (edge, bool * = NULL, bitmap = NULL);
diff -Nrcpad gcc-15.2.0/gcc/cfgrtl.cc gcc-16.1.0-RC-20260423/gcc/cfgrtl.cc
*** gcc-15.2.0/gcc/cfgrtl.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgrtl.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Control flow graph manipulation code for GNU compiler.
!    Copyright (C) 1987-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** emit_insn_at_entry (rtx insn)
*** 538,544 ****
     The insn chain range is inclusive
     (i.e. both BEGIN and END will be updated. */
  
! static void
  update_bb_for_insn_chain (rtx_insn *begin, rtx_insn *end, basic_block bb)
  {
    rtx_insn *insn;
--- 538,544 ----
     The insn chain range is inclusive
     (i.e. both BEGIN and END will be updated. */
  
! void
  update_bb_for_insn_chain (rtx_insn *begin, rtx_insn *end, basic_block bb)
  {
    rtx_insn *insn;
*************** force_nonfallthru_and_redirect (edge e,
*** 1594,1647 ****
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the target or fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
!       bool adjust_jump_target = false;
  
!       for (i = 0; i < n; ++i)
! 	{
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	    {
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 	      XEXP (ASM_OPERANDS_LABEL (note, i), 0) = block_label (target);
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      adjust_jump_target = true;
! 	    }
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
  	    asm_goto_edge = true;
! 	}
!       if (adjust_jump_target)
! 	{
! 	  rtx_insn *insn = BB_END (e->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (target);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
! 	}
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
--- 1594,1613 ----
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int n = ASM_OPERANDS_LABEL_LENGTH (note);
  
!       for (int i = 0; i < n; ++i)
! 	if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	  {
  	    asm_goto_edge = true;
! 	    break;
! 	  }
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
*************** force_nonfallthru_and_redirect (edge e,
*** 1680,1694 ****
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to target's label,
! 	 add also edge from asm goto bb to target.  */
        if (asm_goto_edge)
  	{
! 	  new_edge->probability /= 2;
! 	  jump_block->count /= 2;
! 	  edge new_edge2 = make_edge (new_edge->src, target,
! 				      e->flags & ~EDGE_FALLTHRU);
! 	  new_edge2->probability = probability - new_edge->probability;
  	}
  
        new_bb = jump_block;
--- 1646,1690 ----
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to e->dest, change them to point
! 	 to jump_block instead.  */
        if (asm_goto_edge)
  	{
! 	  int n = ASM_OPERANDS_LABEL_LENGTH (note);
! 
! 	  for (int i = 0; i < n; ++i)
! 	    if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	      {
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 		XEXP (ASM_OPERANDS_LABEL (note, i), 0)
! 		  = block_label (jump_block);
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      }
! 
! 	  rtx_insn *insn = BB_END (new_edge->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (jump_block);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
  	}
  
        new_bb = jump_block;
*************** insert_insn_on_edge (rtx pattern, edge e
*** 1982,1989 ****
  
    emit_insn (pattern);
  
!   e->insns.r = get_insns ();
!   end_sequence ();
  }
  
  /* Like insert_insn_on_edge, but if there are already queued instructions
--- 1978,1984 ----
  
    emit_insn (pattern);
  
!   e->insns.r = end_sequence ();
  }
  
  /* Like insert_insn_on_edge, but if there are already queued instructions
*************** prepend_insn_to_edge (rtx pattern, edge
*** 2001,2008 ****
    emit_insn (pattern);
    emit_insn (e->insns.r);
  
!   e->insns.r = get_insns ();
!   end_sequence ();
  }
  
  /* Update the CFG for the instructions queued on edge E.  */
--- 1996,2002 ----
    emit_insn (pattern);
    emit_insn (e->insns.r);
  
!   e->insns.r = end_sequence ();
  }
  
  /* Update the CFG for the instructions queued on edge E.  */
*************** rtl_lv_add_condition_to_bb (basic_block
*** 5278,5285 ****
    jump = get_last_insn ();
    JUMP_LABEL (jump) = label;
    LABEL_NUSES (label)++;
!   seq = get_insns ();
!   end_sequence ();
  
    /* Add the new cond, in the new head.  */
    emit_insn_after (seq, BB_END (cond_bb));
--- 5272,5278 ----
    jump = get_last_insn ();
    JUMP_LABEL (jump) = label;
    LABEL_NUSES (label)++;
!   seq = end_sequence ();
  
    /* Add the new cond, in the new head.  */
    emit_insn_after (seq, BB_END (cond_bb));
*************** struct cfg_hooks rtl_cfg_hooks = {
*** 5396,5401 ****
--- 5389,5395 ----
    rtl_verify_flow_info,
    rtl_dump_bb,
    rtl_dump_bb_for_graph,
+   rtl_dump_bb_as_sarif_properties,
    rtl_create_basic_block,
    rtl_redirect_edge_and_branch,
    rtl_redirect_edge_and_branch_force,
*************** struct cfg_hooks cfg_layout_rtl_cfg_hook
*** 5438,5443 ****
--- 5432,5438 ----
    rtl_verify_flow_info_1,
    rtl_dump_bb,
    rtl_dump_bb_for_graph,
+   rtl_dump_bb_as_sarif_properties,
    cfg_layout_create_basic_block,
    cfg_layout_redirect_edge_and_branch,
    cfg_layout_redirect_edge_and_branch_force,
diff -Nrcpad gcc-15.2.0/gcc/cfgrtl.h gcc-16.1.0-RC-20260423/gcc/cfgrtl.h
*** gcc-15.2.0/gcc/cfgrtl.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cfgrtl.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Define control flow data structures for the CFG.
!    Copyright (C) 2014-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Define control flow data structures for the CFG.
!    Copyright (C) 2014-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** extern basic_block create_basic_block_st
*** 28,33 ****
--- 28,34 ----
  extern void compute_bb_for_insn (void);
  extern void free_bb_for_insn (void);
  extern rtx_insn *entry_of_function (void);
+ extern void update_bb_for_insn_chain (rtx_insn *, rtx_insn *, basic_block);
  extern void update_bb_for_insn (basic_block);
  extern bool contains_no_active_insn_p (const_basic_block);
  extern bool forwarder_block_p (const_basic_block);
diff -Nrcpad gcc-15.2.0/gcc/cgraph.cc gcc-16.1.0-RC-20260423/gcc/cgraph.cc
*** gcc-15.2.0/gcc/cgraph.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cgraph.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Callgraph handling code.
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph handling code.
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 69,74 ****
--- 69,75 ----
  #include "tree-nested.h"
  #include "symtab-thunks.h"
  #include "symtab-clones.h"
+ #include "attr-callback.h"
  
  /* FIXME: Only for PROP_loops, but cgraph shouldn't have to know about this.  */
  #include "tree-pass.h"
*************** cgraph_node::function_version (void)
*** 179,184 ****
--- 180,320 ----
    return cgraph_fnver_htab->find (&key);
  }
  
+ /* If profile is IPA, turn it into local one.  */
+ void
+ cgraph_node::make_profile_local ()
+ {
+   if (!count.ipa ().initialized_p ())
+     return;
+   if (!(count == profile_count::zero ()))
+     count = count.guessed_local ();
+   for (cgraph_edge *e = callees; e; e = e->next_callee)
+     {
+       if (!e->inline_failed)
+ 	e->callee->make_profile_local ();
+       if (!(e->count == profile_count::zero ()))
+ 	e->count = e->count.guessed_local ();
+     }
+   for (cgraph_edge *e = indirect_calls; e; e = e->next_callee)
+     if (!(e->count == profile_count::zero ()))
+       e->count = e->count.guessed_local ();
+ }
+ 
+ /* Turn profile to global0.  Walk into inlined functions.
+    QUALITY must be GUESSED_GLOBAL0, GUESSED_GLOBAL0_ADJUSTED
+    or GUESSED_GLOBAL0_AFDO  */
+ void
+ cgraph_node::make_profile_global0 (profile_quality quality)
+ {
+   if (count == profile_count::zero ())
+     ;
+   else if (quality == GUESSED_GLOBAL0)
+     {
+       if (count.quality () == GUESSED_GLOBAL0)
+ 	return;
+       count = count.global0 ();
+     }
+   else if (quality == GUESSED_GLOBAL0_ADJUSTED)
+     {
+       if (count.quality () == GUESSED_GLOBAL0
+ 	  || count.quality () == GUESSED_GLOBAL0_ADJUSTED)
+ 	return;
+       count = count.global0adjusted ();
+     }
+   else if (quality == GUESSED_GLOBAL0_AFDO)
+     {
+       if (count.quality () == GUESSED_GLOBAL0
+ 	  || count.quality () == GUESSED_GLOBAL0_ADJUSTED
+ 	  || count.quality () == GUESSED_GLOBAL0_AFDO)
+ 	return;
+       count = count.global0afdo ();
+     }
+   else
+     gcc_unreachable ();
+   for (cgraph_edge *e = callees; e; e = e->next_callee)
+     {
+       if (!e->inline_failed)
+ 	e->callee->make_profile_global0 (quality);
+       if (e->count == profile_count::zero ())
+ 	;
+       else if (quality == GUESSED_GLOBAL0)
+ 	e->count = e->count.global0 ();
+       else if (quality == GUESSED_GLOBAL0_ADJUSTED)
+ 	e->count = e->count.global0adjusted ();
+       else if (quality == GUESSED_GLOBAL0_AFDO)
+ 	e->count = e->count.global0afdo ();
+       else
+ 	gcc_unreachable ();
+     }
+   for (cgraph_edge *e = indirect_calls; e; e = e->next_callee)
+     if (e->count == profile_count::zero ())
+       ;
+     else if (quality == GUESSED_GLOBAL0)
+       e->count = e->count.global0 ();
+     else if (quality == GUESSED_GLOBAL0_ADJUSTED)
+       e->count = e->count.global0adjusted ();
+     else if (quality == GUESSED_GLOBAL0_AFDO)
+       e->count = e->count.global0afdo ();
+     else
+       gcc_unreachable ();
+ }
+ 
+ /* Scale profile by NUM/DEN.  Walk into inlined functions.  */
+ 
+ void
+ cgraph_node::apply_scale (profile_count num, profile_count den)
+ {
+   if (num == den && !(num == profile_count::zero ()))
+     return;
+ 
+   for (cgraph_edge *e = callees; e; e = e->next_callee)
+     {
+       if (!e->inline_failed)
+ 	e->callee->apply_scale (num, den);
+       e->count = e->count.apply_scale (num, den);
+     }
+   for (cgraph_edge *e = indirect_calls; e; e = e->next_callee)
+     e->count = e->count.apply_scale (num, den);
+   count = count.apply_scale (num, den);
+ }
+ 
+ /* Scale profile to given IPA_COUNT.
+    IPA_COUNT should pass ipa_p () with a single exception.
+    It can be also GUESSED_LOCAL in case we want to
+    drop any IPA info about the profile.  */
+ 
+ void
+ cgraph_node::scale_profile_to (profile_count ipa_count)
+ {
+   /* If we do not know the adjustment, it is better to keep profile
+      as it is.  */
+   if (!ipa_count.initialized_p ()
+       || ipa_count == count)
+     return;
+   /* ipa-cp converts value to guessed-local in case it believes
+      that we lost track of IPA profile.  */
+   if (ipa_count.quality () == GUESSED_LOCAL)
+     {
+       make_profile_local ();
+       return;
+     }
+   if (ipa_count == profile_count::zero ())
+     {
+       make_profile_global0 (GUESSED_GLOBAL0);
+       return;
+     }
+   if (ipa_count == profile_count::adjusted_zero ())
+     {
+       make_profile_global0 (GUESSED_GLOBAL0_ADJUSTED);
+       return;
+     }
+   gcc_assert (ipa_count.ipa () == ipa_count
+ 	      && !inlined_to);
+   profile_count num = count.combine_with_ipa_count (ipa_count);
+   profile_count den = count;
+   profile_count::adjust_for_ipa_scaling (&num, &den);
+ }
+ 
  /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab
     corresponding to cgraph_node NODE.  */
  cgraph_function_version_info *
*************** cgraph_node::insert_new_function_version
*** 187,192 ****
--- 323,329 ----
    version_info_node = NULL;
    version_info_node = ggc_cleared_alloc<cgraph_function_version_info> ();
    version_info_node->this_node = this;
+   version_info_node->assembler_name = DECL_ASSEMBLER_NAME (this->decl);
  
    if (cgraph_fnver_htab == NULL)
      cgraph_fnver_htab = hash_table<function_version_hasher>::create_ggc (2);
*************** cgraph_node::insert_new_function_version
*** 197,204 ****
  }
  
  /* Remove the cgraph_function_version_info node given by DECL_V.  */
! static void
! delete_function_version (cgraph_function_version_info *decl_v)
  {
    if (decl_v == NULL)
      return;
--- 334,341 ----
  }
  
  /* Remove the cgraph_function_version_info node given by DECL_V.  */
! void
! cgraph_node::delete_function_version (cgraph_function_version_info *decl_v)
  {
    if (decl_v == NULL)
      return;
*************** cgraph_node::delete_function_version_by_
*** 231,275 ****
    decl_node->remove ();
  }
  
! /* Record that DECL1 and DECL2 are semantically identical function
     versions.  */
  void
! cgraph_node::record_function_versions (tree decl1, tree decl2)
  {
!   cgraph_node *decl1_node = cgraph_node::get_create (decl1);
!   cgraph_node *decl2_node = cgraph_node::get_create (decl2);
!   cgraph_function_version_info *decl1_v = NULL;
!   cgraph_function_version_info *decl2_v = NULL;
!   cgraph_function_version_info *before;
!   cgraph_function_version_info *after;
  
!   gcc_assert (decl1_node != NULL && decl2_node != NULL);
!   decl1_v = decl1_node->function_version ();
!   decl2_v = decl2_node->function_version ();
  
!   if (decl1_v != NULL && decl2_v != NULL)
      return;
  
!   if (decl1_v == NULL)
!     decl1_v = decl1_node->insert_new_function_version ();
  
!   if (decl2_v == NULL)
!     decl2_v = decl2_node->insert_new_function_version ();
  
!   /* Chain decl2_v and decl1_v.  All semantically identical versions
!      will be chained together.  */
  
!   before = decl1_v;
!   after = decl2_v;
  
!   while (before->next != NULL)
!     before = before->next;
  
!   while (after->prev != NULL)
!     after= after->prev;
  
!   before->next = after;
!   after->prev = before;
  }
  
  /* Initialize callgraph dump file.  */
--- 368,427 ----
    decl_node->remove ();
  }
  
! /* Add decl to the structure of semantically identical function versions.
!    The node is inserted at the point maintaining the priority ordering on the
     versions.  */
  void
! cgraph_node::add_function_version (cgraph_function_version_info *fn_v,
! 				   tree decl)
  {
!   cgraph_node *decl_node = cgraph_node::get_create (decl);
!   cgraph_function_version_info *decl_v = NULL;
  
!   gcc_assert (decl_node != NULL);
  
!   decl_v = decl_node->function_version ();
! 
!   /* If the nodes are already linked, skip.  */
!   if (decl_v != NULL && (decl_v->next || decl_v->prev))
      return;
  
!   if (decl_v == NULL)
!     decl_v = decl_node->insert_new_function_version ();
  
!   gcc_assert (decl_v);
!   gcc_assert (fn_v);
  
!   /* Go to start of the FMV structure.  */
!   while (fn_v->prev)
!     fn_v = fn_v->prev;
  
!   cgraph_function_version_info *insert_point_before = NULL;
!   cgraph_function_version_info *insert_point_after = fn_v;
  
!   /* Find the insertion point for the new version to maintain ordering.
!      The default node must always go at the beginning.  */
!   if (!is_function_default_version (decl))
!     while (insert_point_after
! 	   && (targetm.compare_version_priority
! 		 (decl, insert_point_after->this_node->decl) > 0
! 	       || is_function_default_version
! 		    (insert_point_after->this_node->decl)
! 	       || lookup_attribute
! 		    ("target_clones",
! 		     DECL_ATTRIBUTES (insert_point_after->this_node->decl))))
!       {
! 	insert_point_before = insert_point_after;
! 	insert_point_after = insert_point_after->next;
!       }
  
!   decl_v->prev = insert_point_before;
!   decl_v->next= insert_point_after;
  
!   if (insert_point_before)
!     insert_point_before->next = decl_v;
!   if (insert_point_after)
!     insert_point_after->prev = decl_v;
  }
  
  /* Initialize callgraph dump file.  */
*************** cgraph_add_edge_to_call_site_hash (cgrap
*** 720,730 ****
       one indirect); always hash the direct one.  */
    if (e->speculative && e->indirect_unknown_callee)
      return;
    cgraph_edge **slot = e->caller->call_site_hash->find_slot_with_hash
        (e->call_stmt, cgraph_edge_hasher::hash (e->call_stmt), INSERT);
    if (*slot)
      {
!       gcc_assert (((cgraph_edge *)*slot)->speculative);
        if (e->callee && (!e->prev_callee
  			|| !e->prev_callee->speculative
  			|| e->prev_callee->call_stmt != e->call_stmt))
--- 872,894 ----
       one indirect); always hash the direct one.  */
    if (e->speculative && e->indirect_unknown_callee)
      return;
+   /* We always want to hash the carrying edge of a callback, not the edges
+      pointing to the callbacks themselves, as their call statement doesn't
+      exist.  */
+   if (e->callback)
+     return;
    cgraph_edge **slot = e->caller->call_site_hash->find_slot_with_hash
        (e->call_stmt, cgraph_edge_hasher::hash (e->call_stmt), INSERT);
    if (*slot)
      {
!       cgraph_edge *edge = (cgraph_edge *) *slot;
!       gcc_assert (edge->speculative || edge->has_callback);
!       if (edge->has_callback)
! 	/* If the slot is already occupied, then the hashed edge is the
! 	   callback-carrying edge, which is desired behavior.  In some cases,
! 	   the callback flag of E is not set yet and so the early exit above is
! 	   not taken.  */
! 	return;
        if (e->callee && (!e->prev_callee
  			|| !e->prev_callee->speculative
  			|| e->prev_callee->call_stmt != e->call_stmt))
*************** cgraph_node::get_edge (gimple *call_stmt
*** 768,773 ****
--- 932,944 ----
  	n++;
        }
  
+   /* We want to work with the callback-carrying edge whenever possible.  When it
+      comes to callback edges, a call statement might have multiple callback
+      edges attached to it.  These can be easily obtained from the carrying edge
+      instead.  */
+   if (e && e->callback)
+     e = e->get_callback_carrying_edge ();
+ 
    if (n > 100)
      {
        call_site_hash = hash_table<cgraph_edge_hasher>::create_ggc (120);
*************** cgraph_node::get_edge (gimple *call_stmt
*** 780,794 ****
    return e;
  }
  
! 
! /* Change field call_stmt of edge E to NEW_STMT.  If UPDATE_SPECULATIVE and E
     is any component of speculative edge, then update all components.
!    Speculations can be resolved in the process and EDGE can be removed and
!    deallocated.  Return the edge that now represents the call.  */
  
  cgraph_edge *
  cgraph_edge::set_call_stmt (cgraph_edge *e, gcall *new_stmt,
! 			    bool update_speculative)
  {
    tree decl;
  
--- 951,966 ----
    return e;
  }
  
! /* Change field call_stmt of edge E to NEW_STMT.  If UPDATE_DERIVED_EDGES and E
     is any component of speculative edge, then update all components.
!    speculations can be resolved in the process and edge can be removed and
!    deallocated.  if update_derived_edges and e is a part of a callback pair,
!    update all associated edges and return their carrying edge.  return the edge
!    that now represents the call.  */
  
  cgraph_edge *
  cgraph_edge::set_call_stmt (cgraph_edge *e, gcall *new_stmt,
! 			    bool update_derived_edges)
  {
    tree decl;
  
*************** cgraph_edge::set_call_stmt (cgraph_edge
*** 804,810 ****
  
    /* Speculative edges has three component, update all of them
       when asked to.  */
!   if (update_speculative && e->speculative
        /* If we are about to resolve the speculation by calling make_direct
  	 below, do not bother going over all the speculative edges now.  */
        && !new_direct_callee)
--- 976,982 ----
  
    /* Speculative edges has three component, update all of them
       when asked to.  */
!   if (update_derived_edges && e->speculative
        /* If we are about to resolve the speculation by calling make_direct
  	 below, do not bother going over all the speculative edges now.  */
        && !new_direct_callee)
*************** cgraph_edge::set_call_stmt (cgraph_edge
*** 840,845 ****
--- 1012,1038 ----
    if (new_direct_callee)
      e = make_direct (e, new_direct_callee);
  
+   /* When updating a callback or a callback-carrying edge, update every edge
+      involved.  */
+   if (update_derived_edges && (e->callback || e->has_callback))
+     {
+       cgraph_edge *current, *next, *carrying;
+       carrying = e->has_callback ? e : e->get_callback_carrying_edge ();
+ 
+       current = e->first_callback_edge ();
+       if (current)
+ 	{
+ 	  for (cgraph_edge *d = current; d; d = next)
+ 	    {
+ 	      next = d->next_callback_edge ();
+ 	      cgraph_edge *d2 = set_call_stmt (d, new_stmt, false);
+ 	      gcc_assert (d2 == d);
+ 	    }
+ 	}
+       carrying = set_call_stmt (carrying, new_stmt, false);
+       return carrying;
+     }
+ 
    /* Only direct speculative edges go to call_site_hash.  */
    if (e->caller->call_site_hash
        && (!e->speculative || !e->indirect_unknown_callee)
*************** symbol_table::create_edge (cgraph_node *
*** 885,891 ****
  	 construction of call stmt hashtable.  */
        cgraph_edge *e;
        gcc_checking_assert (!(e = caller->get_edge (call_stmt))
! 			   || e->speculative);
  
        gcc_assert (is_gimple_call (call_stmt));
      }
--- 1078,1084 ----
  	 construction of call stmt hashtable.  */
        cgraph_edge *e;
        gcc_checking_assert (!(e = caller->get_edge (call_stmt))
! 			   || e->speculative || e->has_callback || e->callback);
  
        gcc_assert (is_gimple_call (call_stmt));
      }
*************** symbol_table::create_edge (cgraph_node *
*** 912,917 ****
--- 1105,1113 ----
    edge->indirect_info = NULL;
    edge->indirect_inlining_edge = 0;
    edge->speculative = false;
+   edge->has_callback = false;
+   edge->callback = false;
+   edge->callback_id = 0;
    edge->indirect_unknown_callee = indir_unknown_callee;
    if (call_stmt && caller->call_site_hash)
      cgraph_add_edge_to_call_site_hash (edge);
*************** cgraph_node::create_edge (cgraph_node *c
*** 966,1021 ****
    return edge;
  }
  
! /* Allocate cgraph_indirect_call_info and set its fields to default values. */
! 
! cgraph_indirect_call_info *
! cgraph_allocate_init_indirect_info (void)
! {
!   cgraph_indirect_call_info *ii;
! 
!   ii = ggc_cleared_alloc<cgraph_indirect_call_info> ();
!   ii->param_index = -1;
!   return ii;
! }
! 
! /* Create an indirect edge with a yet-undetermined callee where the call
!    statement destination is a formal parameter of the caller with index
!    PARAM_INDEX. CLONING_P should be set if properties that are copied from an
!    original edge should not be calculated and indirect_info structure should
!    not be calculated.  */
  
  cgraph_edge *
  cgraph_node::create_indirect_edge (gcall *call_stmt, int ecf_flags,
! 				   profile_count count,
! 				   bool cloning_p)
  {
    cgraph_edge *edge = symtab->create_edge (this, NULL, call_stmt, count, true,
  					   cloning_p);
-   tree target;
  
    if (!cloning_p)
-     initialize_inline_failed (edge);
- 
-   edge->indirect_info = cgraph_allocate_init_indirect_info ();
-   edge->indirect_info->ecf_flags = ecf_flags;
-   edge->indirect_info->vptr_changed = true;
- 
-   /* Record polymorphic call info.  */
-   if (!cloning_p
-       && call_stmt
-       && (target = gimple_call_fn (call_stmt))
-       && virtual_method_call_p (target))
      {
!       ipa_polymorphic_call_context context (decl, target, call_stmt);
  
!       /* Only record types can have virtual calls.  */
!       edge->indirect_info->polymorphic = true;
!       edge->indirect_info->param_index = -1;
!       edge->indirect_info->otr_token
! 	 = tree_to_uhwi (OBJ_TYPE_REF_TOKEN (target));
!       edge->indirect_info->otr_type = obj_type_ref_class (target);
!       gcc_assert (TREE_CODE (edge->indirect_info->otr_type) == RECORD_TYPE);
!       edge->indirect_info->context = context;
      }
  
    edge->next_callee = indirect_calls;
--- 1162,1205 ----
    return edge;
  }
  
! /* Create an indirect edge to a (yet-)undetermined callee.  CALL_STMT is the
!    corresponding statement, if available, ECF_FLAGS and COUNT are corresponding
!    gimple call flags and profiling count respectively.  CLONING_P should be set
!    if properties that are copied from an original edge should not be
!    calculated.  */
  
  cgraph_edge *
  cgraph_node::create_indirect_edge (gcall *call_stmt, int ecf_flags,
! 				   profile_count count, bool cloning_p)
  {
    cgraph_edge *edge = symtab->create_edge (this, NULL, call_stmt, count, true,
  					   cloning_p);
  
    if (!cloning_p)
      {
!       initialize_inline_failed (edge);
  
!       tree target = NULL_TREE;
!       if (call_stmt)
! 	target = gimple_call_fn (call_stmt);
!       if (target && virtual_method_call_p (target))
! 	{
! 	  ipa_polymorphic_call_context context (decl, target, call_stmt);
! 	  HOST_WIDE_INT token = tree_to_shwi (OBJ_TYPE_REF_TOKEN (target));
! 	  tree type = obj_type_ref_class (target);
! 	  edge->indirect_info
! 	    = (new (ggc_alloc<cgraph_polymorphic_indirect_info> ())
! 	       cgraph_polymorphic_indirect_info (ecf_flags, context, token,
! 						 type));
! 	}
!       else if (target && TREE_CODE (target) == SSA_NAME)
! 	edge->indirect_info
! 	  = (new (ggc_alloc<cgraph_simple_indirect_info> ())
! 	     cgraph_simple_indirect_info (ecf_flags));
!       else
! 	edge->indirect_info
! 	  = (new (ggc_alloc<cgraph_indirect_call_info> ())
! 	     cgraph_indirect_call_info(CIIK_UNSPECIFIED, ecf_flags));
      }
  
    edge->next_callee = indirect_calls;
*************** cgraph_edge::remove (cgraph_edge *edge)
*** 1081,1086 ****
--- 1265,1297 ----
    symtab->free_edge (edge);
  }
  
+ /* Returns the next speculative_id based on currently in use
+    for the given statement for the edge.
+    Returns 0 if no speculative edges exist for this statement. */
+ 
+ int
+ cgraph_edge::get_next_speculative_id ()
+ {
+   int max_id = -1;
+ 
+   /* If this edge is not yet speculative, there are no existing speculative
+      edges for this call site, so return 0.  */
+   if (!speculative)
+     return 0;
+ 
+   /* Iterate only through speculative edges for this specific call site.  */
+   for (cgraph_edge *e = first_speculative_call_target ();
+        e;
+        e = e->next_speculative_call_target ())
+     {
+       if (e->speculative_id > max_id)
+ 	max_id = e->speculative_id;
+     }
+ 
+   return max_id + 1;
+ }
+ 
+ 
  /* Turn edge into speculative call calling N2. Update
     the profile so the direct call is taken COUNT times
     with FREQUENCY.
*************** cgraph_edge::make_speculative (cgraph_no
*** 1135,1140 ****
--- 1346,1464 ----
    return e2;
  }
  
+ /* Create a callback edge calling N2.  Callback edges
+    never get turned into actual calls, they are just used
+    as clues and allow for optimizing functions which do not
+    have any callsites during compile time, e.g. functions
+    passed to standard library functions.
+ 
+    The edge will be attached to the same call statement as
+    the callback-carrying edge, which is the instance this method
+    is called on.
+ 
+    callback_id is used to pair the returned edge with the attribute that
+    originated it.
+ 
+    Return the resulting callback edge.  */
+ 
+ cgraph_edge *
+ cgraph_edge::make_callback (cgraph_node *n2, unsigned int callback_id)
+ {
+   cgraph_node *n = caller;
+   cgraph_edge *e2;
+ 
+   has_callback = true;
+   e2 = n->create_edge (n2, call_stmt, count);
+   if (dump_file)
+     fprintf (
+       dump_file,
+       "Created callback edge %s -> %s belonging to carrying edge %s -> %s\n",
+       e2->caller->dump_name (), e2->callee->dump_name (), caller->dump_name (),
+       callee->dump_name ());
+   e2->inline_failed = CIF_CALLBACK_EDGE;
+   e2->callback = true;
+   e2->callback_id = callback_id;
+   if (TREE_NOTHROW (n2->decl))
+     e2->can_throw_external = false;
+   else
+     e2->can_throw_external = can_throw_external;
+   e2->lto_stmt_uid = lto_stmt_uid;
+   n2->mark_address_taken ();
+   return e2;
+ }
+ 
+ /* Returns the callback_carrying edge of a callback edge on which
+    it is called on or NULL when no such edge can be found.
+ 
+    An edge is taken to be the callback-carrying if it has it's has_callback
+    flag set and the edges share their call statements.  */
+ 
+ cgraph_edge *
+ cgraph_edge::get_callback_carrying_edge ()
+ {
+   gcc_checking_assert (callback);
+   cgraph_edge *e;
+   for (e = caller->callees; e; e = e->next_callee)
+     {
+       if (e->has_callback && e->call_stmt == call_stmt
+ 	  && e->lto_stmt_uid == lto_stmt_uid)
+ 	break;
+     }
+   return e;
+ }
+ 
+ /* Returns the first callback edge in the list of callees of the caller node.
+    Note that the edges might be in arbitrary order.  Must be called on a
+    callback or callback-carrying edge.  */
+ 
+ cgraph_edge *
+ cgraph_edge::first_callback_edge ()
+ {
+   gcc_checking_assert (has_callback || callback);
+   cgraph_edge *e = NULL;
+   for (e = caller->callees; e; e = e->next_callee)
+     {
+       if (e->callback && e->call_stmt == call_stmt
+ 	  && e->lto_stmt_uid == lto_stmt_uid)
+ 	break;
+     }
+   return e;
+ }
+ 
+ /* Given a callback edge, returns the next callback edge belonging to the same
+    carrying edge.  Must be called on a callback edge, not the callback-carrying
+    edge.  */
+ 
+ cgraph_edge *
+ cgraph_edge::next_callback_edge ()
+ {
+   gcc_checking_assert (callback);
+   cgraph_edge *e = NULL;
+   for (e = next_callee; e; e = e->next_callee)
+     {
+       if (e->callback && e->call_stmt == call_stmt
+ 	  && e->lto_stmt_uid == lto_stmt_uid)
+ 	break;
+     }
+   return e;
+ }
+ 
+ /* When called on a callback-carrying edge, removes all of its attached callback
+    edges and sets has_callback to FALSE.  */
+ 
+ void
+ cgraph_edge::purge_callback_edges ()
+ {
+   gcc_checking_assert (has_callback);
+   cgraph_edge *e, *next;
+   for (e = first_callback_edge (); e; e = next)
+     {
+       next = e->next_callback_edge ();
+       cgraph_edge::remove (e);
+     }
+   has_callback = false;
+ }
+ 
  /* Speculative call consists of an indirect edge and one or more
     direct edge+ref pairs.
  
*************** cgraph_edge::resolve_speculation (cgraph
*** 1218,1226 ****
      e2 = edge;
    ref = e2->speculative_call_target_ref ();
    edge = edge->speculative_call_indirect_edge ();
    if (!callee_decl
!       || !ref->referred->semantically_equivalent_p
! 	   (symtab_node::get (callee_decl)))
      {
        if (dump_file)
  	{
--- 1542,1551 ----
      e2 = edge;
    ref = e2->speculative_call_target_ref ();
    edge = edge->speculative_call_indirect_edge ();
+   symtab_node *callee;
    if (!callee_decl
!       || !(callee = symtab_node::get (callee_decl))
!       || !ref->referred->semantically_equivalent_p (callee))
      {
        if (dump_file)
  	{
*************** cgraph_edge::make_direct (cgraph_edge *e
*** 1316,1328 ****
  	  /* Compare ref not direct->callee.  Direct edge is possibly
  	     inlined or redirected.  */
  	  if (!direct->speculative_call_target_ref ()
! 	       ->referred->semantically_equivalent_p (callee))
  	    edge = direct->resolve_speculation (direct, NULL);
  	  else
! 	    {
! 	      gcc_checking_assert (!found);
! 	      found = direct;
! 	    }
  	}
  
        /* On successful speculation just remove the indirect edge and
--- 1641,1651 ----
  	  /* Compare ref not direct->callee.  Direct edge is possibly
  	     inlined or redirected.  */
  	  if (!direct->speculative_call_target_ref ()
! 	       ->referred->semantically_equivalent_p (callee)
! 	      || found)
  	    edge = direct->resolve_speculation (direct, NULL);
  	  else
! 	    found = direct;
  	}
  
        /* On successful speculation just remove the indirect edge and
*************** void
*** 1372,1383 ****
--- 1695,1725 ----
  cgraph_edge::redirect_callee (cgraph_node *n)
  {
    bool loc = callee->comdat_local_p ();
+   cgraph_node *old_callee = callee;
+ 
    /* Remove from callers list of the current callee.  */
    remove_callee ();
  
    /* Insert to callers list of the new callee.  */
    set_callee (n);
  
+   if (callback)
+     {
+       /* When redirecting a callback callee, redirect its ref as well.  */
+       ipa_ref *old_ref = caller->find_reference (old_callee, call_stmt,
+ 						 lto_stmt_uid, IPA_REF_ADDR);
+       gcc_checking_assert(old_ref);
+       old_ref->remove_reference ();
+       ipa_ref *new_ref = caller->create_reference (n, IPA_REF_ADDR, call_stmt);
+       new_ref->lto_stmt_uid = lto_stmt_uid;
+       /* If the last reference to OLD_CALLEE has been redirected, unset
+ 	 address_taken.  old_ref is only used as a placeholder when looking for
+ 	 a different reference.  */
+       if (!old_callee->iterate_referring (0, old_ref))
+ 	old_callee->address_taken = 0;
+       n->mark_address_taken ();
+     }
+ 
    if (!inline_failed)
      return;
    if (!loc && n->comdat_local_p ())
*************** cgraph_edge::redirect_call_stmt_to_calle
*** 1494,1499 ****
--- 1836,1862 ----
        || decl == e->callee->decl)
      return e->call_stmt;
  
+   /* When redirecting a callback edge, all we need to do is replace
+      the original address with the address of the function we are
+      redirecting to.  */
+   if (e->callback)
+     {
+       cgraph_edge *carrying = e->get_callback_carrying_edge ();
+       if (!callback_is_special_cased (carrying->callee->decl, e->call_stmt)
+ 	  && !lookup_attribute (CALLBACK_ATTR_IDENT,
+ 				DECL_ATTRIBUTES (carrying->callee->decl)))
+ 	/* Callback attribute is removed if the dispatching function changes
+ 	   signature, as the indices wouldn't be correct anymore.  These edges
+ 	   will get cleaned up later, ignore their redirection for now.  */
+ 	return e->call_stmt;
+       int fn_idx = callback_fetch_fn_position (e, carrying);
+       tree previous_arg = gimple_call_arg (e->call_stmt, fn_idx);
+       location_t loc = EXPR_LOCATION (previous_arg);
+       tree new_addr = build_fold_addr_expr_loc (loc, e->callee->decl);
+       gimple_call_set_arg (e->call_stmt, fn_idx, new_addr);
+       return e->call_stmt;
+     }
+ 
    if (decl && ipa_saved_clone_sources)
      {
        tree *p = ipa_saved_clone_sources->get (e->callee);
*************** cgraph_edge::redirect_call_stmt_to_calle
*** 1603,1609 ****
    maybe_remove_unused_call_args (DECL_STRUCT_FUNCTION (e->caller->decl),
  				 new_stmt);
  
!   e->caller->set_call_stmt_including_clones (e->call_stmt, new_stmt, false);
  
    if (symtab->dump_file)
      {
--- 1966,1974 ----
    maybe_remove_unused_call_args (DECL_STRUCT_FUNCTION (e->caller->decl),
  				 new_stmt);
  
!   /* Update callback edges if setting the carrying edge's statement, or else
!      their pairing would fall apart.  */
!   e->caller->set_call_stmt_including_clones (e->call_stmt, new_stmt, e->has_callback);
  
    if (symtab->dump_file)
      {
*************** cgraph_update_edges_for_call_stmt_node (
*** 1648,1657 ****
  		{
  		  tree decl = gimple_call_fndecl (new_stmt);
  		  if (decl)
! 		    e = cgraph_edge::resolve_speculation (e, decl);
  		}
  	      else
! 		e = cgraph_edge::resolve_speculation (e, NULL);
  	    }
  	  /* Keep calls marked as dead dead.  */
  	  if (new_stmt && is_gimple_call (new_stmt) && e->callee
--- 2013,2023 ----
  		{
  		  tree decl = gimple_call_fndecl (new_stmt);
  		  if (decl)
! 		    e = cgraph_edge::make_direct
! 			    (e, cgraph_node::get_create (decl));
  		}
  	      else
! 		gcc_unreachable ();
  	    }
  	  /* Keep calls marked as dead dead.  */
  	  if (new_stmt && is_gimple_call (new_stmt) && e->callee
*************** cgraph_node::remove_callers (void)
*** 1795,1800 ****
--- 2161,2177 ----
    for (e = callers; e; e = f)
      {
        f = e->next_caller;
+       /* When removing a callback-carrying edge, remove all its attached edges
+ 	 as well.  */
+       if (e->has_callback)
+ 	{
+ 	  cgraph_edge *cbe, *next_cbe = NULL;
+ 	  for (cbe = e->first_callback_edge (); cbe; cbe = next_cbe)
+ 	    {
+ 	      next_cbe = cbe->next_callback_edge ();
+ 	      cgraph_edge::remove (cbe);
+ 	    }
+ 	}
        symtab->call_edge_removal_hooks (e);
        e->remove_caller ();
        symtab->free_edge (e);
*************** cgraph_node::release_body (bool keep_arg
*** 1865,1875 ****
    if (!used_as_abstract_origin && DECL_INITIAL (decl))
      DECL_INITIAL (decl) = error_mark_node;
    release_function_body (decl);
!   if (lto_file_data)
!     {
!       lto_free_function_in_decl_state_for_node (this);
!       lto_file_data = NULL;
!     }
    if (flag_checking && clones)
      {
        /* It is invalid to release body before materializing clones except
--- 2242,2248 ----
    if (!used_as_abstract_origin && DECL_INITIAL (decl))
      DECL_INITIAL (decl) = error_mark_node;
    release_function_body (decl);
!   lto_free_function_in_decl_state_for_node (this);
    if (flag_checking && clones)
      {
        /* It is invalid to release body before materializing clones except
*************** cgraph_node::remove (void)
*** 1981,1990 ****
  	release_body ();
      }
    else
!     {
!       lto_free_function_in_decl_state_for_node (this);
!       lto_file_data = NULL;
!     }
  
    decl = NULL;
    if (call_site_hash)
--- 2354,2360 ----
  	release_body ();
      }
    else
!     lto_free_function_in_decl_state_for_node (this);
  
    decl = NULL;
    if (call_site_hash)
*************** cgraph_edge::dump_edge_flags (FILE *f)
*** 2104,2109 ****
--- 2474,2483 ----
  {
    if (speculative)
      fprintf (f, "(speculative) ");
+   if (callback)
+     fprintf (f, "(callback) ");
+   if (has_callback)
+     fprintf (f, "(has_callback) ");
    if (!inline_failed)
      fprintf (f, "(inlined) ");
    if (call_stmt_cannot_inline_p)
*************** cgraph_node::dump (FILE *f)
*** 2309,2338 ****
  
    for (edge = indirect_calls; edge; edge = edge->next_callee)
      {
!       if (edge->indirect_info->polymorphic)
! 	{
! 	  fprintf (f, "   Polymorphic indirect call of type ");
! 	  print_generic_expr (f, edge->indirect_info->otr_type, TDF_SLIM);
! 	  fprintf (f, " token:%i", (int) edge->indirect_info->otr_token);
! 	}
!       else
! 	fprintf (f, "   Indirect call");
!       edge->dump_edge_flags (f);
!       if (edge->indirect_info->param_index != -1)
! 	{
! 	  fprintf (f, "of param:%i ", edge->indirect_info->param_index);
! 	  if (edge->indirect_info->agg_contents)
! 	   fprintf (f, "loaded from %s %s at offset %i ",
! 		    edge->indirect_info->member_ptr ? "member ptr" : "aggregate",
! 		    edge->indirect_info->by_ref ? "passed by reference" : "",
! 		    (int)edge->indirect_info->offset);
! 	  if (edge->indirect_info->vptr_changed)
! 	    fprintf (f, "(vptr maybe changed) ");
! 	}
!       fprintf (f, "num speculative call targets: %i\n",
! 	       edge->indirect_info->num_speculative_call_targets);
!       if (edge->indirect_info->polymorphic)
! 	edge->indirect_info->context.dump (f);
      }
  }
  
--- 2683,2690 ----
  
    for (edge = indirect_calls; edge; edge = edge->next_callee)
      {
!       fprintf (f, "   ");
!       edge->indirect_info->dump (f);
      }
  }
  
*************** cgraph_node::dump_cgraph (FILE *f)
*** 2372,2377 ****
--- 2724,2780 ----
      node->dump (f);
  }
  
+ /* Dump human readable information about the indirect call to F.  If NEWLINE
+    is true, it will be terminated by a newline.  */
+ 
+ void
+ cgraph_indirect_call_info::dump (FILE *f, bool newline) const
+ {
+   if (const cgraph_polymorphic_indirect_info *pii
+       = dyn_cast <const cgraph_polymorphic_indirect_info *> (this))
+     {
+       fprintf (f, "    indirect polymorphic callsite, %s, "
+ 	       "calling param %i, offset " HOST_WIDE_INT_PRINT_DEC
+ 	       "otr_token " HOST_WIDE_INT_PRINT_DEC ", otr_type ",
+ 	       pii->vptr_changed ? "vptr_changed" : "vptr not changed",
+ 	       pii->param_index, pii->offset, pii->otr_token);
+       print_generic_expr (f, pii->otr_type);
+       fprintf (f, ", context ");
+       pii->context.dump (f, false);
+     }
+   else if (const cgraph_simple_indirect_info *sii
+ 	   = dyn_cast <const cgraph_simple_indirect_info *> (this))
+     {
+       if (sii->agg_contents)
+ 	fprintf (f, "    indirect %s callsite, calling param %i, "
+ 		 "offset " HOST_WIDE_INT_PRINT_DEC ", %s",
+ 		 sii->member_ptr ? "member ptr" : "aggregate",
+ 		 sii->param_index, sii->offset,
+ 		 sii->by_ref ? "by reference" : "by_value");
+       else if (sii->param_index >= 0)
+ 	fprintf (f, "    indirect simple callsite, calling param %i",
+ 		 sii->param_index);
+       else
+ 	fprintf (f, "    indirect simple callsite, not calling a known "
+ 		 "parameter");
+     }
+   else
+     fprintf (f, "    indirect callsite");
+ 
+   fprintf (f, ", flags %i, num speculative call targets: %i", ecf_flags,
+ 	   num_speculative_call_targets);
+   if (newline)
+     fprintf (f, "\n");
+ }
+ 
+ /* Dump human readable information about the indirect call to stderr.  */
+ 
+ void
+ cgraph_indirect_call_info::debug () const
+ {
+   dump (stderr);
+ }
+ 
  /* Return true when the DECL can possibly be inlined.  */
  
  bool
*************** static bool
*** 2441,2446 ****
--- 2844,2850 ----
  cgraph_node_cannot_be_local_p_1 (cgraph_node *node, void *)
  {
    return !(!node->force_output
+ 	   && !node->ref_by_asm
  	   && !node->ifunc_resolver
  	   /* Limitation of gas requires us to output targets of symver aliases
  	      as global symbols.  This is binutils PR 25295.  */
*************** cgraph_edge::cannot_lead_to_return_p (vo
*** 2997,3009 ****
      return callee->cannot_return_p ();
  }
  
! /* Return true if the edge may be considered hot.  */
  
  bool
! cgraph_edge::maybe_hot_p (void)
  {
!   if (!maybe_hot_count_p (NULL, count.ipa ()))
      return false;
    if (caller->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED
        || (callee
  	  && callee->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED))
--- 3401,3430 ----
      return callee->cannot_return_p ();
  }
  
! /* Return true if the edge after scaling it profile by SCALE
!    may be considered hot.  */
  
  bool
! cgraph_edge::maybe_hot_p (sreal scale)
  {
!   /* Never consider calls in functions optimized for size hot.  */
!   if (opt_for_fn (caller->decl, optimize_size))
      return false;
+ 
+   /* If reliable IPA count is available, just use it.  */
+   profile_count c = count.ipa ();
+   if (c.reliable_p ()
+       || (c.quality () == AFDO && c.nonzero_p ()))
+     return maybe_hot_count_p (NULL, c * scale);
+ 
+   /* In auto-FDO, count 0 may lead to hot code in case the
+      call is simply not called often enough to receive some samples.  */
+   if ((c.quality () == AFDO
+        || count.quality () == GUESSED_GLOBAL0_ADJUSTED)
+       && callee && callee->count.quality () == AFDO)
+     return maybe_hot_count_p (NULL, c.force_nonzero () * scale);
+ 
+   /* See if we can determine hotness using caller frequency.  */
    if (caller->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED
        || (callee
  	  && callee->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED))
*************** cgraph_edge::maybe_hot_p (void)
*** 3012,3036 ****
        && (callee
  	  && callee->frequency <= NODE_FREQUENCY_EXECUTED_ONCE))
      return false;
!   if (opt_for_fn (caller->decl, optimize_size))
!     return false;
    if (caller->frequency == NODE_FREQUENCY_HOT)
      return true;
    if (!count.initialized_p ())
      return true;
    cgraph_node *where = caller->inlined_to ? caller->inlined_to : caller;
    if (!where->count.initialized_p ())
!     return false;
    if (caller->frequency == NODE_FREQUENCY_EXECUTED_ONCE)
      {
!       if (count * 2 < where->count * 3)
  	return false;
      }
!   else if (count * param_hot_bb_frequency_fraction < where->count)
      return false;
    return true;
  }
  
  /* Worker for cgraph_can_remove_if_no_direct_calls_p.  */
  
  static bool
--- 3433,3481 ----
        && (callee
  	  && callee->frequency <= NODE_FREQUENCY_EXECUTED_ONCE))
      return false;
!   /* ??? This may make sense for hot functions determined by
!      user attribute, but if function is hot by profile, it may
!      contains non-hot calls.  In most practical cases this case
!      is handled by the reliable ipa count above, but i.e. after
!      inlining function with no profile to function with profile
!      we get here.. */
    if (caller->frequency == NODE_FREQUENCY_HOT)
      return true;
+ 
+   /* Use IPA count and if it s not available appy local heuristics.  */
+   if (c.initialized_p ())
+     {
+       /* A special case; AFDO zero means that function may quite possibly
+ 	 be executed few times per execution.  If scale is large, we still
+ 	 want to consider the call hot.  */
+       if (c.quality () == AFDO)
+ 	c = c.force_nonzero ();
+       return maybe_hot_count_p (NULL, c * scale);
+     }
    if (!count.initialized_p ())
      return true;
    cgraph_node *where = caller->inlined_to ? caller->inlined_to : caller;
    if (!where->count.initialized_p ())
!     return true;
!   c = count * scale;
    if (caller->frequency == NODE_FREQUENCY_EXECUTED_ONCE)
      {
!       if (c * 2 < where->count * 3)
  	return false;
      }
!   else if (c * param_hot_bb_frequency_fraction < where->count)
      return false;
    return true;
  }
  
+ /* Return true if the edge may be considered hot.  */
+ 
+ bool
+ cgraph_edge::maybe_hot_p ()
+ {
+   return maybe_hot_p (1);
+ }
+ 
  /* Worker for cgraph_can_remove_if_no_direct_calls_p.  */
  
  static bool
*************** cgraph_node::only_called_directly_p (voi
*** 3181,3186 ****
--- 3626,3641 ----
  				       NULL, true);
  }
  
+ /* Returns TRUE iff THIS is a descendant of N in the clone tree.  */
+ 
+ bool
+ cgraph_node::is_clone_of (cgraph_node *n) const
+ {
+   for (cgraph_node *walker = clone_of; walker; walker = walker->clone_of)
+     if (walker == n)
+       return true;
+   return false;
+ }
  
  /* Collect all callers of NODE.  Worker for collect_callers_of_node.  */
  
*************** cgraph_node::verify_node (void)
*** 3560,3565 ****
--- 4015,4025 ----
        error ("inline clone is forced to output");
        error_found = true;
      }
+   if (inlined_to && ref_by_asm)
+     {
+       error ("inline clone is referenced by assembly");
+       error_found = true;
+     }
    if (symtab->state != LTO_STREAMING)
      {
        if (calls_comdat_local && !same_comdat_group)
*************** cgraph_node::verify_node (void)
*** 3606,3611 ****
--- 4066,4078 ----
  	  count.debug ();
  	  error_found = true;
  	}
+       if (inlined_to && !e->count.compatible_p (inlined_to->count))
+ 	{
+ 	  error ("edge count is not compatible with inlined to function count");
+ 	  e->count.debug ();
+ 	  count.debug ();
+ 	  error_found = true;
+ 	}
        if (!e->indirect_unknown_callee
  	  || !e->indirect_info)
  	{
*************** cgraph_node::verify_node (void)
*** 3669,3674 ****
--- 4136,4143 ----
        if (gimple_has_body_p (e->caller->decl)
  	  && !e->caller->inlined_to
  	  && !e->speculative
+ 	  && !e->callback
+ 	  && !e->has_callback
  	  /* Optimized out calls are redirected to __builtin_unreachable.  */
  	  && (e->count.nonzero_p ()
  	      || ! e->callee->decl
*************** cgraph_node::verify_node (void)
*** 3874,3880 ****
  			    }
  			  if (!e->indirect_unknown_callee)
  			    {
! 			      if (e->verify_corresponds_to_fndecl (decl))
  				{
  				  error ("edge points to wrong declaration:");
  				  debug_tree (e->callee->decl);
--- 4343,4354 ----
  			    }
  			  if (!e->indirect_unknown_callee)
  			    {
! 			      /* Callback edges violate this assertion
! 				 because their call statement doesn't exist,
! 				 their associated statement belongs to the
! 				 callback-dispatching function.  */
! 			      if (!e->callback
! 				  && e->verify_corresponds_to_fndecl (decl))
  				{
  				  error ("edge points to wrong declaration:");
  				  debug_tree (e->callee->decl);
*************** cgraph_node::verify_node (void)
*** 3916,3922 ****
  
        for (e = callees; e; e = e->next_callee)
  	{
! 	  if (!e->aux && !e->speculative)
  	    {
  	      error ("edge %s->%s has no corresponding call_stmt",
  		     identifier_to_locale (e->caller->name ()),
--- 4390,4458 ----
  
        for (e = callees; e; e = e->next_callee)
  	{
! 	  if (!e->callback && e->callback_id)
! 	    {
! 	      error ("non-callback edge has callback_id set");
! 	      error_found = true;
! 	    }
! 
! 	  if (e->callback && e->has_callback)
! 	    {
! 	      error ("edge has both callback and has_callback set");
! 	      error_found = true;
! 	    }
! 
! 	  if (e->callback)
! 	    {
! 	      if (!e->get_callback_carrying_edge ())
! 		{
! 		  error ("callback edge %s->%s has no callback-carrying",
! 			 identifier_to_locale (e->caller->name ()),
! 			 identifier_to_locale (e->callee->name ()));
! 		  error_found = true;
! 		}
! 	    }
! 
! 	  if (e->has_callback
! 	      && !callback_is_special_cased (e->callee->decl, e->call_stmt)
! 	      && !fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE))
! 	    {
! 	      int ncallbacks = 0;
! 	      int nfound_edges = 0;
! 	      for (tree cb = lookup_attribute (CALLBACK_ATTR_IDENT, DECL_ATTRIBUTES (
! 							     e->callee->decl));
! 		   cb; cb = lookup_attribute (CALLBACK_ATTR_IDENT, TREE_CHAIN (cb)),
! 			ncallbacks++)
! 		;
! 	      for (cgraph_edge *cbe = callees; cbe; cbe = cbe->next_callee)
! 		{
! 		  if (cbe->callback && cbe->call_stmt == e->call_stmt
! 		      && cbe->lto_stmt_uid == e->lto_stmt_uid)
! 		    {
! 		      nfound_edges++;
! 		    }
! 		}
! 	      if (ncallbacks < nfound_edges)
! 		{
! 		  error ("callback edge %s->%s callback edge count mismatch, "
! 			 "expected at most %d, found %d",
! 			 identifier_to_locale (e->caller->name ()),
! 			 identifier_to_locale (e->callee->name ()), ncallbacks,
! 			 nfound_edges);
! 		}
! 	    }
! 
! 	  if (e->has_callback
! 	      && fndecl_built_in_p (e->callee->decl, BUILT_IN_UNREACHABLE))
! 	    for (cgraph_edge *cbe = e->first_callback_edge (); cbe;
! 		 cbe = cbe->next_callback_edge ())
! 	      if (!fndecl_built_in_p (cbe->callee->decl, BUILT_IN_UNREACHABLE))
! 		error ("callback-carrying edge is pointing towards "
! 		       "__builtin_unreachable, but its callback edge %s -> %s "
! 		       "is not",
! 		       cbe->caller->name (), cbe->callee->name ());
! 
! 	  if (!e->aux && !e->speculative && !e->callback && !e->has_callback)
  	    {
  	      error ("edge %s->%s has no corresponding call_stmt",
  		     identifier_to_locale (e->caller->name ()),
*************** cgraph_edge::sreal_frequency ()
*** 4232,4237 ****
--- 4768,4792 ----
  			       : caller->count);
  }
  
+ /* Expected frequency of executions within the function.
+    If edge is speculative, sum all its indirect targets.  */
+ 
+ sreal
+ cgraph_edge::combined_sreal_frequency ()
+ {
+   if (!speculative)
+     return sreal_frequency ();
+   cgraph_edge *e = this;
+   if (e->callee)
+     e = e->speculative_call_indirect_edge ();
+   sreal sum = e->sreal_frequency ();
+   for (e = e->first_speculative_call_target ();
+        e;
+        e = e->next_speculative_call_target ())
+     sum += e->sreal_frequency ();
+   return sum;
+ }
+ 
  
  /* During LTO stream in this can be used to check whether call can possibly
     be internal to the current translation unit.  */
diff -Nrcpad gcc-15.2.0/gcc/cgraph.h gcc-16.1.0-RC-20260423/gcc/cgraph.h
*** gcc-15.2.0/gcc/cgraph.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cgraph.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Callgraph handling code.
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph handling code.
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** extern void debuginfo_early_stop (void);
*** 37,49 ****
  class ipa_opt_pass_d;
  typedef ipa_opt_pass_d *ipa_opt_pass;
  
! /* Symbol table consists of functions and variables.
     TODO: add labels and CONST_DECLs.  */
! enum symtab_type
  {
    SYMTAB_SYMBOL,
    SYMTAB_FUNCTION,
!   SYMTAB_VARIABLE
  };
  
  /* Section names are stored as reference counted strings in GGC safe hashtable
--- 37,54 ----
  class ipa_opt_pass_d;
  typedef ipa_opt_pass_d *ipa_opt_pass;
  
! /* Toplevel consists of functions, variables and assembly.
!    Make sure toplevel_type_names in symtab.cc is kept in sync
!    with this.
     TODO: add labels and CONST_DECLs.  */
! enum toplevel_type
  {
+   TOPLEVEL_BASE,
+   TOPLEVEL_ASM,
    SYMTAB_SYMBOL,
    SYMTAB_FUNCTION,
!   SYMTAB_VARIABLE,
!   TOPLEVEL_MAX
  };
  
  /* Section names are stored as reference counted strings in GGC safe hashtable
*************** enum symbol_partitioning_class
*** 100,129 ****
     SYMBOL_DUPLICATE
  };
  
  /* Base of all entries in the symbol table.
     The symtab_node is inherited by cgraph and varpol nodes.  */
! struct GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"),
! 	    chain_next ("%h.next"), chain_prev ("%h.previous")))
!   symtab_node
  {
  public:
    friend class symbol_table;
  
    /* Constructor.  */
!   explicit symtab_node (symtab_type t)
!     : type (t), resolution (LDPR_UNKNOWN), definition (false), alias (false),
        transparent_alias (false), weakref (false), cpp_implicit_alias (false),
        symver (false), analyzed (false), writeonly (false),
        refuse_visibility_changes (false), externally_visible (false),
        no_reorder (false), force_output (false), forced_by_abi (false),
        unique_name (false), implicit_section (false), body_removed (false),
        semantic_interposition (flag_semantic_interposition),
        used_from_other_partition (false), in_other_partition (false),
        address_taken (false), in_init_priority_hash (false),
        need_lto_streaming (false), offloadable (false), ifunc_resolver (false),
!       order (-1), next_sharing_asm_name (NULL),
        previous_sharing_asm_name (NULL), same_comdat_group (NULL), ref_list (),
!       alias_target (NULL), lto_file_data (NULL), aux (NULL),
        x_comdat_group (NULL_TREE), x_section (NULL), m_uid (-1)
    {}
  
--- 105,160 ----
     SYMBOL_DUPLICATE
  };
  
+ /* Base of all toplevel entries.
+    Inherited by symtab_node and asm_node.  */
+ struct GTY ((desc ("%h.type"), tag ("TOPLEVEL_BASE"),
+ 	    chain_next("%h.next"),
+ 	    chain_prev("%h.previous"))) toplevel_node {
+   /* Constructor.  */
+   explicit toplevel_node (toplevel_type t)
+     : lto_file_data (NULL), order (-1), type (t)
+   {}
+ 
+   /* File stream where this node is being written to.  */
+   struct lto_file_decl_data * lto_file_data;
+ 
+   /* Linked list of toplevel entries.  */
+   toplevel_node *next = nullptr;
+   toplevel_node *previous = nullptr;
+ 
+   /* Ordering of all cgraph nodes.  */
+   int order;
+ 
+   /* Type of the node.  */
+   ENUM_BITFIELD (toplevel_type) type : 8;
+ };
+ 
  /* Base of all entries in the symbol table.
     The symtab_node is inherited by cgraph and varpol nodes.  */
! struct GTY ((tag ("SYMTAB_SYMBOL")))
!   symtab_node: public toplevel_node
  {
  public:
    friend class symbol_table;
  
    /* Constructor.  */
!   explicit symtab_node (toplevel_type t)
!     : toplevel_node (t),
!       resolution (LDPR_UNKNOWN), definition (false), alias (false),
        transparent_alias (false), weakref (false), cpp_implicit_alias (false),
        symver (false), analyzed (false), writeonly (false),
        refuse_visibility_changes (false), externally_visible (false),
        no_reorder (false), force_output (false), forced_by_abi (false),
+       ref_by_asm (false),
+       must_remain_in_tu_name (false), must_remain_in_tu_body (false),
        unique_name (false), implicit_section (false), body_removed (false),
        semantic_interposition (flag_semantic_interposition),
        used_from_other_partition (false), in_other_partition (false),
        address_taken (false), in_init_priority_hash (false),
        need_lto_streaming (false), offloadable (false), ifunc_resolver (false),
!       next_sharing_asm_name (NULL),
        previous_sharing_asm_name (NULL), same_comdat_group (NULL), ref_list (),
!       alias_target (NULL), aux (NULL),
        x_comdat_group (NULL_TREE), x_section (NULL), m_uid (-1)
    {}
  
*************** public:
*** 498,506 ****
      return m_uid;
    }
  
-   /* Type of the symbol.  */
-   ENUM_BITFIELD (symtab_type) type : 8;
- 
    /* The symbols resolution.  */
    ENUM_BITFIELD (ld_plugin_symbol_resolution) resolution : 8;
  
--- 529,534 ----
*************** public:
*** 567,572 ****
--- 595,610 ----
       exported.  Unlike FORCE_OUTPUT this flag gets cleared to symbols promoted
       to static and it does not inhibit optimization.  */
    unsigned forced_by_abi : 1;
+   /* Referenced from toplevel assembly.  Must not be removed.
+      Static symbol may be renamed.  Global symbol should not be renamed.
+      Unlike force_output, can be on declarations.  */
+   unsigned ref_by_asm : 1;
+   /* Set when asm_name must remain in TU partition.
+      Used to guarantee not renaming of static ref_by_asm symbols.  */
+   unsigned must_remain_in_tu_name : 1;
+   /* Set when body (or any references) must remain in TU partition.
+      Used on symbols referring/calling must_remain_in_tu_name.  */
+   unsigned must_remain_in_tu_body : 1;
    /* True when the name is known to be unique and thus it does not need mangling.  */
    unsigned unique_name : 1;
    /* Specify whether the section was set by user or by
*************** public:
*** 609,624 ****
    unsigned ifunc_resolver : 1;
  
  
-   /* Ordering of all symtab entries.  */
-   int order;
- 
    /* Declaration representing the symbol.  */
    tree decl;
  
-   /* Linked list of symbol table entries starting with symtab_nodes.  */
-   symtab_node *next;
-   symtab_node *previous;
- 
    /* Linked list of symbols with the same asm name.  There may be multiple
       entries for single symbol name during LTO, because symbols are renamed
       only after partitioning.
--- 647,655 ----
*************** public:
*** 642,650 ****
       Once alias is resolved, this pointer become NULL.  */
    tree alias_target;
  
-   /* File stream where this node is being written to.  */
-   struct lto_file_decl_data * lto_file_data;
- 
    void *GTY ((skip)) aux;
  
    /* Comdat group the symbol is in.  Can be private if GGC allowed that.  */
--- 673,678 ----
*************** struct GTY(()) cgraph_simd_clone_arg {
*** 790,796 ****
    /* For arg_type SIMD_CLONE_ARG_TYPE_LINEAR_*CONSTANT_STEP this is
       the constant linear step, if arg_type is
       SIMD_CLONE_ARG_TYPE_LINEAR_*VARIABLE_STEP, this is index of
!      the uniform argument holding the step, otherwise 0.  */
    HOST_WIDE_INT linear_step;
  };
  
--- 818,826 ----
    /* For arg_type SIMD_CLONE_ARG_TYPE_LINEAR_*CONSTANT_STEP this is
       the constant linear step, if arg_type is
       SIMD_CLONE_ARG_TYPE_LINEAR_*VARIABLE_STEP, this is index of
!      the uniform argument holding the step, otherwise 0.
!      For arg_type SIMD_CLONE_ARG_TYPE_MASK and a mask_mode that is
!      not VOIDmode, this is the number of mask arguments.  */
    HOST_WIDE_INT linear_step;
  };
  
*************** struct GTY((for_user)) cgraph_function_v
*** 856,861 ****
--- 886,894 ----
       dispatcher. The dispatcher decl is an alias to the resolver
       function decl.  */
    tree dispatcher_resolver;
+ 
+   /* The assmbly name of the function set before version mangling.  */
+   tree assembler_name;
  };
  
  #define DEFCIFCODE(code, type, string)	CIF_ ## code,
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 904,910 ****
        used_as_abstract_origin (false),
        lowered (false), process (false), frequency (NODE_FREQUENCY_NORMAL),
        only_called_at_startup (false), only_called_at_exit (false),
!       tm_clone (false), dispatcher_function (false), calls_comdat_local (false),
        icf_merged (false), nonfreeing_fn (false), merged_comdat (false),
        merged_extern_inline (false), parallelized_function (false),
        split_part (false), indirect_call_target (false), local (false),
--- 937,945 ----
        used_as_abstract_origin (false),
        lowered (false), process (false), frequency (NODE_FREQUENCY_NORMAL),
        only_called_at_startup (false), only_called_at_exit (false),
!       tm_clone (false), dispatcher_function (false),
!       dispatcher_resolver_function (false), is_target_clone (false),
!       calls_comdat_local (false),
        icf_merged (false), nonfreeing_fn (false), merged_comdat (false),
        merged_extern_inline (false), parallelized_function (false),
        split_part (false), indirect_call_target (false), local (false),
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 965,979 ****
       If the new node is being inlined into another one, NEW_INLINED_TO should be
       the outline function the new one is (even indirectly) inlined to.
       All hooks will see this in node's inlined_to, when invoked.
!      Can be NULL if the node is not inlined.  SUFFIX is string that is appended
!      to the original name.  */
    cgraph_node *create_clone (tree decl, profile_count count,
  			     bool update_original,
  			     vec<cgraph_edge *> redirect_callers,
  			     bool call_duplication_hook,
  			     cgraph_node *new_inlined_to,
  			     ipa_param_adjustments *param_adjustments,
! 			     const char *suffix = NULL);
  
    /* Create callgraph node clone with new declaration.  The actual body will be
       copied later at compilation stage.  The name of the new clone will be
--- 1000,1018 ----
       If the new node is being inlined into another one, NEW_INLINED_TO should be
       the outline function the new one is (even indirectly) inlined to.
       All hooks will see this in node's inlined_to, when invoked.
!      Should be NULL if the node is not inlined.
! 
!      SUFFIX is string that is appended to the original name, it should only be
!      NULL if NEW_INLINED_TO is not NULL or if the clone being created is
!      temporary and a record about it should not be added into the ipa-clones
!      dump file.  */
    cgraph_node *create_clone (tree decl, profile_count count,
  			     bool update_original,
  			     vec<cgraph_edge *> redirect_callers,
  			     bool call_duplication_hook,
  			     cgraph_node *new_inlined_to,
  			     ipa_param_adjustments *param_adjustments,
! 			     const char *suffix);
  
    /* Create callgraph node clone with new declaration.  The actual body will be
       copied later at compilation stage.  The name of the new clone will be
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1020,1030 ****
       TREE_MAP is a mapping of tree nodes we want to replace with
       new ones (according to results of prior analysis).
  
!      If non-NULL ARGS_TO_SKIP determine function parameters to remove
!      from new version.
!      If SKIP_RETURN is true, the new version will return void.
       If non-NULL BLOCK_TO_COPY determine what basic blocks to copy.
       If non_NULL NEW_ENTRY determine new entry BB of the clone.
  
       If TARGET_ATTRIBUTES is non-null, when creating a new declaration,
       add the attributes to DECL_ATTRIBUTES.  And call valid_attribute_p
--- 1059,1070 ----
       TREE_MAP is a mapping of tree nodes we want to replace with
       new ones (according to results of prior analysis).
  
!      If non-NULL PARAM_ADJUSTMENTS determine how function formal parameters
!      should be modified in the new version and if it should return void.
       If non-NULL BLOCK_TO_COPY determine what basic blocks to copy.
       If non_NULL NEW_ENTRY determine new entry BB of the clone.
+      SUFFIX is a string that will be used to create a new name for the new
+      function.
  
       If TARGET_ATTRIBUTES is non-null, when creating a new declaration,
       add the attributes to DECL_ATTRIBUTES.  And call valid_attribute_p
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1039,1045 ****
      (vec<cgraph_edge *> redirect_callers,
       vec<ipa_replace_map *, va_gc> *tree_map,
       ipa_param_adjustments *param_adjustments,
!      bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name,
       tree target_attributes = NULL_TREE, bool version_decl = true);
  
    /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab
--- 1079,1085 ----
      (vec<cgraph_edge *> redirect_callers,
       vec<ipa_replace_map *, va_gc> *tree_map,
       ipa_param_adjustments *param_adjustments,
!      bitmap bbs_to_copy, basic_block new_entry_block, const char *suffix,
       tree target_attributes = NULL_TREE, bool version_decl = true);
  
    /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1142,1150 ****
  			    gcall *call_stmt, profile_count count,
  			    bool cloning_p = false);
  
!   /* Create an indirect edge with a yet-undetermined callee where the call
!      statement destination is a formal parameter of the caller with index
!      PARAM_INDEX. */
    cgraph_edge *create_indirect_edge (gcall *call_stmt, int ecf_flags,
  				     profile_count count,
  				     bool cloning_p = false);
--- 1182,1193 ----
  			    gcall *call_stmt, profile_count count,
  			    bool cloning_p = false);
  
!   /* Create an indirect edge to a (yet-)undetermined callee.  CALL_STMT is the
!      corresponding statement, if available, ECF_FLAGS and COUNT are
!      corresponding gimple call flags and profiling count respectively.
!      CLONING_P should be set if properties that are copied from an original
!      edge should not be calculated.  */
! 
    cgraph_edge *create_indirect_edge (gcall *call_stmt, int ecf_flags,
  				     profile_count count,
  				     bool cloning_p = false);
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1251,1256 ****
--- 1294,1317 ----
       it is not used in any other non-standard way.  */
    bool only_called_directly_p (void);
  
+   /* Returns TRUE iff THIS is a descendant of N in the clone tree.  */
+   bool is_clone_of (cgraph_node *n) const;
+ 
+   /* Turn profile to global0.  Walk into inlined functions.  */
+   void make_profile_local ();
+ 
+   /* Turn profile to global0.  Walk into inlined functions.  */
+   void make_profile_global0 (profile_quality quality);
+ 
+   /* Scale profile by NUM/DEN.  Walk into inlined funtion.  */
+   void apply_scale (profile_count num, profile_count den);
+ 
+   /* Scale profile to given IPA_COUNT.
+      IPA_COUNT should pass ipa_p () with a single exception.
+      It can be also GUESSED_LOCAL in case we want to
+      drop any IPA info about the profile.  */
+   void scale_profile_to (profile_count ipa_count);
+ 
    /* Return true when function is only called directly or it has alias.
       i.e. it is not externally visible, address was not taken and
       it is not used in any other non-standard way.  */
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1319,1332 ****
      return m_summary_id;
    }
  
!   /* Record that DECL1 and DECL2 are semantically identical function
!      versions.  */
!   static void record_function_versions (tree decl1, tree decl2);
  
    /* Remove the cgraph_function_version_info and cgraph_node for DECL.  This
       DECL is a duplicate declaration.  */
    static void delete_function_version_by_decl (tree decl);
  
    /* Add the function FNDECL to the call graph.
       Unlike finalize_function, this function is intended to be used
       by middle end and allows insertion of new function at arbitrary point
--- 1380,1395 ----
      return m_summary_id;
    }
  
!   /* Adds DECL to the FN_V structure of semantically identical functions.  */
!   static void add_function_version (cgraph_function_version_info *fn_v,
! 				    tree decl);
  
    /* Remove the cgraph_function_version_info and cgraph_node for DECL.  This
       DECL is a duplicate declaration.  */
    static void delete_function_version_by_decl (tree decl);
  
+   static void delete_function_version (cgraph_function_version_info *);
+ 
    /* Add the function FNDECL to the call graph.
       Unlike finalize_function, this function is intended to be used
       by middle end and allows insertion of new function at arbitrary point
*************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg
*** 1462,1467 ****
--- 1525,1536 ----
    unsigned tm_clone : 1;
    /* True if this decl is a dispatcher for function versions.  */
    unsigned dispatcher_function : 1;
+   /* True if this decl is a resolver for function versions.  */
+   unsigned dispatcher_resolver_function : 1;
+   /* True this is part of a multiversioned set and this version comes from a
+      target_clone attribute.  Or if this is a dispatched symbol or resolver
+      and the default version comes from a target_clones.  */
+   unsigned is_target_clone : 1;
    /* True if this decl calls a COMDAT-local function.  This is set up in
       compute_fn_summary and inline_call.  */
    unsigned calls_comdat_local : 1;
*************** private:
*** 1652,1687 ****
    void make_speculative (tree otr_type = NULL);
  };
  
! /* Structure containing additional information about an indirect call.  */
  
! class GTY(()) cgraph_indirect_call_info
  {
  public:
!   /* When agg_content is set, an offset where the call pointer is located
!      within the aggregate.  */
!   HOST_WIDE_INT offset;
!   /* Context of the polymorphic call; use only when POLYMORPHIC flag is set.  */
!   ipa_polymorphic_call_context context;
!   /* OBJ_TYPE_REF_TOKEN of a polymorphic call (if polymorphic is set).  */
!   HOST_WIDE_INT otr_token;
!   /* Type of the object from OBJ_TYPE_REF_OBJECT. */
!   tree otr_type;
!   /* Index of the parameter that is called.  */
!   int param_index;
    /* ECF flags determined from the caller.  */
    int ecf_flags;
  
!   /* Number of speculative call targets, it's less than GCOV_TOPN_VALUES.  */
    unsigned num_speculative_call_targets : 16;
  
-   /* Set when the call is a virtual call with the parameter being the
-      associated object pointer rather than a simple direct call.  */
-   unsigned polymorphic : 1;
    /* Set when the call is a call of a pointer loaded from contents of an
       aggregate at offset.  */
    unsigned agg_contents : 1;
    /* Set when this is a call through a member pointer.  */
    unsigned member_ptr : 1;
    /* When the agg_contents bit is set, this one determines whether the
       destination is loaded from a parameter passed by reference. */
    unsigned by_ref : 1;
--- 1721,1808 ----
    void make_speculative (tree otr_type = NULL);
  };
  
! /* Denotes the kind of call that a particular cgraph_indirect_call_info
!    instance describes.  */
  
! enum cgraph_indirect_info_kind {
!   /* Unspecified kind.  Only to be used when no information about the call
!      statement is available or it does not fall into any of the other
!      categories.  */
!   CIIK_UNSPECIFIED,
!   /* A normal indirect call when the target is an SSA_NAME.  */
!   CIIK_SIMPLE,
!   /* Call of a virtual method when the target is an OBJ_TYPE_REF which conforms
!      to virtual_method_call_p.  */
!   CIIK_POLYMORPHIC,
!   /* Must be last */
!   CIIK_N_KINDS
! };
! 
! /* The base class containing additional information about all kinds of indirect
!    calls.  It can also be used when no information about the call statement is
!    available or it does not fall into any of the other categories.  */
! 
! class GTY((desc ("%h.kind"), tag ("CIIK_UNSPECIFIED")))
! 	  cgraph_indirect_call_info
  {
  public:
!   cgraph_indirect_call_info (int flags)
!     : ecf_flags (flags), param_index (-1), kind (CIIK_UNSPECIFIED),
!     num_speculative_call_targets (0) {}
!   cgraph_indirect_call_info (enum cgraph_indirect_info_kind k, int flags)
!     : ecf_flags (flags), param_index (-1), kind (k),
!     num_speculative_call_targets (0) {}
! 
!   /* Dump human readable information about the indirect call to F.  If NEWLINE
!      is true, it will be terminated by a newline.  */
!   void dump (FILE *f, bool newline = true) const;
!   void DEBUG_FUNCTION debug () const;
! 
    /* ECF flags determined from the caller.  */
    int ecf_flags;
+   /* If we can relate this call target to a specific formal parameter of the
+      caller, then this is its index.  Otherwise set to -1.  */
+   int param_index;
  
!   /* Identifier of the specific type of indirect info this actually is.  */
!   enum cgraph_indirect_info_kind kind : 2;
!   /* Number of speculative call targets.  */
    unsigned num_speculative_call_targets : 16;
+ };
+ 
+ /* Structure containing additional information about non-virtual indirect calls
+    where the target is an SSA_NAME.  */
+ 
+ class GTY((tag ("CIIK_SIMPLE")))
+ 	  cgraph_simple_indirect_info : public cgraph_indirect_call_info
+ {
+ public:
+   cgraph_simple_indirect_info (int flags)
+     : cgraph_indirect_call_info (CIIK_SIMPLE, flags), offset (0),
+     rec_type (NULL_TREE), fld_offset (0), agg_contents (false),
+     member_ptr (false), fnptr_loaded_from_record (false), by_ref (false),
+     guaranteed_unmodified (false)
+     {}
+ 
+   /* When agg_content is set, an offset where the call pointer is located
+      within the aggregate.  */
+   HOST_WIDE_INT offset;
+   /* Only meaningful if fnptr_loaded_from_record is set.  Then it contains the
+      type of the record from which the target of the call was loaded. */
+   tree rec_type;
+   /* Only meaningful if fnptr_loaded_from_record is set.  Then it contains the
+      offset in bytes within the type above from which the target of the call
+      was loaded.  */
+   unsigned fld_offset;
  
    /* Set when the call is a call of a pointer loaded from contents of an
       aggregate at offset.  */
    unsigned agg_contents : 1;
    /* Set when this is a call through a member pointer.  */
    unsigned member_ptr : 1;
+   /* Set if the function is a call of a pointer loaded from a record type
+      stored in otr_type at offset offset. */
+   unsigned fnptr_loaded_from_record : 1;
    /* When the agg_contents bit is set, this one determines whether the
       destination is loaded from a parameter passed by reference. */
    unsigned by_ref : 1;
*************** public:
*** 1690,1700 ****
--- 1811,1879 ----
       never modified between the invocation of the function and the load
       point.  */
    unsigned guaranteed_unmodified : 1;
+ };
+ 
+ /* Structure containing additional information about non-virtual indirect calls
+    when the target is an OBJ_TYPE_REF which conforms to
+    virtual_method_call_p.  */
+ 
+ class GTY((tag ("CIIK_POLYMORPHIC")))
+ 	  cgraph_polymorphic_indirect_info : public cgraph_indirect_call_info
+ {
+ public:
+   cgraph_polymorphic_indirect_info (int flags)
+     : cgraph_indirect_call_info (CIIK_POLYMORPHIC, flags), context (),
+     otr_token (0), otr_type (nullptr), offset (0), vptr_changed (true)
+     {}
+   cgraph_polymorphic_indirect_info (int flags,
+ 				    const ipa_polymorphic_call_context &ctx,
+ 				    HOST_WIDE_INT token, tree type)
+     : cgraph_indirect_call_info (CIIK_POLYMORPHIC, flags), context (ctx),
+     otr_token (token), otr_type (type), offset (0), vptr_changed (true)
+     {}
+ 
+   /* Return true if the information is usable for devirtualization.  This can
+      happen if part of the required information is not streamed in yet and for
+      some cases we determine it is no longer useful to attempt to use the
+      information too.  */
+   bool usable_p () const
+   {
+     return !!otr_type;
+   }
+   /* Mark this information as not useful for devirtualization.  Return true if
+      it was considered useful until now.  */
+   bool mark_unusable ()
+   {
+     bool r = !!otr_type;
+     otr_type = NULL_TREE;
+     return r;
+   }
+ 
+   /* Context of the polymorphic call; use only when POLYMORPHIC flag is set.  */
+   ipa_polymorphic_call_context context;
+   /* OBJ_TYPE_REF_TOKEN of a polymorphic call (if polymorphic is set).  */
+   HOST_WIDE_INT otr_token;
+   /* Type of the object from OBJ_TYPE_REF_OBJECT. */
+   tree otr_type;
+   /* The offset from the point where the parameter identified by param_index to
+      the point where the corresponding object appears.  */
+   HOST_WIDE_INT offset;
+ 
    /* For polymorphic calls this specify whether the virtual table pointer
       may have changed in between function entry and the call.  */
    unsigned vptr_changed : 1;
  };
  
+ /* Return true if ii is a cgraph_polymorphic_indirect_info that is usable_p.  */
+ 
+ inline bool
+ usable_polymorphic_info_p (cgraph_indirect_call_info *ii)
+ {
+   cgraph_polymorphic_indirect_info *pii
+     = dyn_cast <cgraph_polymorphic_indirect_info *> (ii);
+   return pii && pii->usable_p ();
+ }
+ 
  class GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"),
  	   for_user)) cgraph_edge
  {
*************** public:
*** 1705,1716 ****
    /* Remove EDGE from the cgraph.  */
    static void remove (cgraph_edge *edge);
  
!   /* Change field call_stmt of edge E to NEW_STMT.  If UPDATE_SPECULATIVE and E
!      is any component of speculative edge, then update all components.
       Speculations can be resolved in the process and EDGE can be removed and
!      deallocated.  Return the edge that now represents the call.  */
    static cgraph_edge *set_call_stmt (cgraph_edge *e, gcall *new_stmt,
! 				     bool update_speculative = true);
  
    /* Redirect callee of the edge to N.  The function does not update underlying
       call expression.  */
--- 1884,1897 ----
    /* Remove EDGE from the cgraph.  */
    static void remove (cgraph_edge *edge);
  
!   /* Change field call_stmt of edge E to NEW_STMT.  If UPDATE_DERIVED_EDGES and
!      E is any component of speculative edge, then update all components.
       Speculations can be resolved in the process and EDGE can be removed and
!      deallocated.  Return the edge that now represents the call.  If
!      UPDATE_DERIVED_EDGES and E is a part of a callback edge, update all
!      associated edges and return the callback-carrying edge.  */
    static cgraph_edge *set_call_stmt (cgraph_edge *e, gcall *new_stmt,
! 				     bool update_derived_edges = true);
  
    /* Redirect callee of the edge to N.  The function does not update underlying
       call expression.  */
*************** public:
*** 1728,1733 ****
--- 1909,1919 ----
       call.  */
    static cgraph_edge *make_direct (cgraph_edge *edge, cgraph_node *callee);
  
+   /* Returns the next speculative_id based on currently in use
+      for the given statement for the edge.
+      Returns 0 if no speculative edges exist for this statement. */
+   int get_next_speculative_id ();
+ 
    /* Turn edge into speculative call calling N2. Update
       the profile so the direct call is taken COUNT times
       with FREQUENCY.  speculative_id is used to link direct calls with their
*************** public:
*** 1736,1741 ****
--- 1922,1953 ----
    cgraph_edge *make_speculative (cgraph_node *n2, profile_count direct_count,
  				 unsigned int speculative_id = 0);
  
+   /* Create a callback edge, representing an indirect call to n2
+      passed to a function by argument.  Sets has_callback flag of the original
+      edge. Both edges are attached to the same call statement.  Returns created
+      callback edge.  */
+   cgraph_edge *make_callback (cgraph_node *n2, unsigned int callback_hash);
+ 
+   /* Returns the callback-carrying edge of a callback edge or NULL, if such edge
+      cannot be found.  An edge is considered callback-carrying, if it has it's
+      has_callback flag set and shares it's call statement with the edge
+      this method is caled on.  */
+   cgraph_edge *get_callback_carrying_edge ();
+ 
+   /* Returns the first callback edge in the list of callees of the caller node.
+      Note that the edges might be in arbitrary order.  Must be called on a
+      callback or callback-carrying edge.  */
+   cgraph_edge *first_callback_edge ();
+ 
+   /* Given a callback edge, returns the next callback edge belonging to the same
+      callback-carrying edge.  Must be called on a callback edge, not the
+      callback-carrying edge.  */
+   cgraph_edge *next_callback_edge ();
+ 
+   /* When called on a callback-carrying edge, removes all of its attached
+      callback edges and sets has_callback to FALSE.  */
+   void purge_callback_edges ();
+ 
    /* Speculative call consists of an indirect edge and one or more
       direct edge+ref pairs.  Speculative will expand to the following sequence:
  
*************** public:
*** 1872,1879 ****
    /* Return true when the edge represents a direct recursion.  */
    bool recursive_p (void);
  
!   /* Return true if the edge may be considered hot.  */
!   bool maybe_hot_p (void);
  
    /* Get unique identifier of the edge.  */
    inline int get_uid ()
--- 2084,2096 ----
    /* Return true when the edge represents a direct recursion.  */
    bool recursive_p (void);
  
!   /* Return true if the edge may be considered hot after scalling its count.  */
!   bool maybe_hot_p ();
! 
!   /* Return true if the edge may be considered hot after scalling its count
!      (i.e. assume that optimization would reduce runtime for callee,
!       possibly significantly).  */
!   bool maybe_hot_p (sreal scale);
  
    /* Get unique identifier of the edge.  */
    inline int get_uid ()
*************** public:
*** 1952,1957 ****
--- 2169,2191 ----
       Optimizers may later redirect direct call to clone, so 1) and 3)
       do not need to necessarily agree with destination.  */
    unsigned int speculative : 1;
+   /* Edges with CALLBACK flag represent indirect calls to functions passed
+      to their callers by argument.  This is useful in cases, where the body
+      of these caller functions is not known, e. g. qsort in glibc or
+      GOMP_parallel in libgomp.  These edges are never made into real calls,
+      but are used instead to optimize these callback functions and later replace
+      their addresses with their optimized versions.  Edges with this flag set
+      share their call statement with their callback-carrying edge.  */
+   unsigned int callback : 1;
+   /* Edges with this flag set have one or more callback edges attached.  They
+      share their call statements with this edge.  This flag represents the fact
+      that the callee of this edge takes a function and it's parameters by
+      argument and calls it at a later time.  */
+   unsigned int has_callback : 1;
+   /* Used to pair callback edges and the attributes that originated them
+      together.  Currently the index of the callback argument, retrieved
+      from the attribute.  */
+   unsigned int callback_id : 16;
    /* Set to true when caller is a constructor or destructor of polymorphic
       type.  */
    unsigned in_polymorphic_cdtor : 1;
*************** public:
*** 1966,1971 ****
--- 2200,2209 ----
  
    /* Expected frequency of executions within the function.  */
    sreal sreal_frequency ();
+ 
+   /* Expected frequency of executions within the function.
+      If edge is speculative, sum all its indirect targets.  */
+   sreal combined_sreal_frequency ();
  private:
    /* Unique id of the edge.  */
    int m_uid;
*************** private:
*** 2137,2150 ****
  
  /* Every top level asm statement is put into a asm_node.  */
  
! struct GTY(()) asm_node {
!   /* Next asm node.  */
!   asm_node *next;
    /* String for this asm node.  */
    tree asm_str;
!   /* Ordering of all cgraph nodes.  */
!   int order;
  };
  
  /* Report whether or not THIS symtab node is a function, aka cgraph_node.  */
  
--- 2375,2391 ----
  
  /* Every top level asm statement is put into a asm_node.  */
  
! struct GTY ((tag ("TOPLEVEL_ASM"))) asm_node: public toplevel_node {
!   explicit asm_node (tree asm_str)
!     : toplevel_node (TOPLEVEL_ASM), asm_str (asm_str), symbols_referenced ()
!   {}
    /* String for this asm node.  */
    tree asm_str;
!   /* Vector of referenced symbols used for LTO partitioning.
!      Not populated in flag_ltrans.  */
!   vec<symtab_node*> GTY ((skip)) symbols_referenced;
  };
+ void analyze_toplevel_extended_asm (void);
  
  /* Report whether or not THIS symtab node is a function, aka cgraph_node.  */
  
*************** is_a_helper <varpool_node *>::test (symt
*** 2166,2171 ****
--- 2407,2496 ----
    return p && p->type == SYMTAB_VARIABLE;
  }
  
+ /* Report whether or not THIS toplevel node is a function, aka cgraph_node.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <cgraph_node *>::test (toplevel_node *p)
+ {
+   return p && p->type == SYMTAB_FUNCTION;
+ }
+ 
+ /* Report whether or not THIS toplevel node is a variable, aka varpool_node.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <varpool_node *>::test (toplevel_node *p)
+ {
+   return p && p->type == SYMTAB_VARIABLE;
+ }
+ 
+ /* Report whether or not THIS toplevel node is a symtab_node.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <symtab_node *>::test (toplevel_node *p)
+ {
+   return p && p->type >= SYMTAB_SYMBOL;
+ }
+ 
+ /* Report whether or not THIS toplevel node is a toplevel assembly, aka
+    asm_node.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <asm_node *>::test (toplevel_node *p)
+ {
+   return p && p->type == TOPLEVEL_ASM;
+ }
+ 
+ /* Report whether or not THIS indirect info is a known simple one.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <cgraph_simple_indirect_info *>::test (cgraph_indirect_call_info *p)
+ {
+   return p && p->kind == CIIK_SIMPLE;
+ }
+ 
+ /* Likewise, but const qualified.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <const cgraph_simple_indirect_info *>
+ ::test (const cgraph_indirect_call_info *p)
+ {
+   return p && p->kind == CIIK_SIMPLE;
+ }
+ 
+ /* Report whether or not THIS indirect info is a known polymorphic one.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <cgraph_polymorphic_indirect_info *>
+ ::test (cgraph_indirect_call_info *p)
+ {
+   return p && p->kind == CIIK_POLYMORPHIC;
+ }
+ 
+ /* Likewise, but const qualified.  */
+ 
+ template <>
+ template <>
+ inline bool
+ is_a_helper <const cgraph_polymorphic_indirect_info *>
+ ::test (const cgraph_indirect_call_info *p)
+ {
+   return p && p->kind == CIIK_POLYMORPHIC;
+ }
+ 
  typedef void (*cgraph_edge_hook)(cgraph_edge *, void *);
  typedef void (*cgraph_node_hook)(cgraph_node *, void *);
  typedef void (*varpool_node_hook)(varpool_node *, void *);
*************** asmname_hasher::equal (symtab_node *n, c
*** 2589,2595 ****
  /* In cgraph.cc  */
  void cgraph_cc_finalize (void);
  void release_function_body (tree);
- cgraph_indirect_call_info *cgraph_allocate_init_indirect_info (void);
  
  void cgraph_update_edges_for_call_stmt (gimple *, tree, gimple *);
  bool cgraph_function_possibly_inlined_p (tree);
--- 2914,2919 ----
*************** tree clone_function_name (const char *na
*** 2619,2624 ****
--- 2943,2950 ----
  tree clone_function_name (tree decl, const char *suffix,
  			  unsigned long number);
  tree clone_function_name (tree decl, const char *suffix);
+ tree clone_identifier (tree decl, const char *suffix,
+ 		       bool filter_suffix = false);
  
  void tree_function_versioning (tree, tree, vec<ipa_replace_map *, va_gc> *,
  			       ipa_param_adjustments *,
*************** symtab_node::get_alias_target_tree ()
*** 2719,2727 ****
  inline symtab_node *
  symtab_node::next_defined_symbol (void)
  {
!   symtab_node *node1 = next;
  
!   for (; node1; node1 = node1->next)
      if (node1->definition)
        return node1;
  
--- 3045,3053 ----
  inline symtab_node *
  symtab_node::next_defined_symbol (void)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(next);
  
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      if (node1->definition)
        return node1;
  
*************** symbol_table::finalize_toplevel_asm (tre
*** 2830,2839 ****
  {
    asm_node *node;
  
!   node = ggc_cleared_alloc<asm_node> ();
!   node->asm_str = asm_str;
    node->order = order++;
-   node->next = NULL;
  
    if (asmnodes == NULL)
      asmnodes = node;
--- 3156,3163 ----
  {
    asm_node *node;
  
!   node = new (ggc_cleared_alloc<asm_node> ()) asm_node (asm_str);
    node->order = order++;
  
    if (asmnodes == NULL)
      asmnodes = node;
*************** symbol_table::unregister (symtab_node *n
*** 2851,2857 ****
    if (node->previous)
      node->previous->next = node->next;
    else
!     nodes = node->next;
  
    if (node->next)
      node->next->previous = node->previous;
--- 3175,3181 ----
    if (node->previous)
      node->previous->next = node->next;
    else
!     nodes = safe_as_a<symtab_node *>(node->next);
  
    if (node->next)
      node->next->previous = node->previous;
*************** symbol_table::first_symbol (void)
*** 2880,2886 ****
  
  /* Walk all symbols.  */
  #define FOR_EACH_SYMBOL(node) \
!    for ((node) = symtab->first_symbol (); (node); (node) = (node)->next)
  
  /* Return first static symbol with definition.  */
  inline symtab_node *
--- 3204,3211 ----
  
  /* Walk all symbols.  */
  #define FOR_EACH_SYMBOL(node) \
!    for ((node) = symtab->first_symbol (); (node); \
! 	(node) = safe_as_a<symtab_node *>((node)->next))
  
  /* Return first static symbol with definition.  */
  inline symtab_node *
*************** symbol_table::first_defined_symbol (void
*** 2888,2894 ****
  {
    symtab_node *node;
  
!   for (node = nodes; node; node = node->next)
      if (node->definition)
        return node;
  
--- 3213,3220 ----
  {
    symtab_node *node;
  
!   for (node = nodes; node;
!        node = safe_as_a<symtab_node *>(node->next))
      if (node->definition)
        return node;
  
*************** inline varpool_node *
*** 2905,2911 ****
  symbol_table::first_variable (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      if (varpool_node *vnode = dyn_cast <varpool_node *> (node))
        return vnode;
    return NULL;
--- 3231,3237 ----
  symbol_table::first_variable (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      if (varpool_node *vnode = dyn_cast <varpool_node *> (node))
        return vnode;
    return NULL;
*************** symbol_table::first_variable (void)
*** 2915,2922 ****
  inline varpool_node *
  symbol_table::next_variable (varpool_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      if (varpool_node *vnode1 = dyn_cast <varpool_node *> (node1))
        return vnode1;
    return NULL;
--- 3241,3248 ----
  inline varpool_node *
  symbol_table::next_variable (varpool_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      if (varpool_node *vnode1 = dyn_cast <varpool_node *> (node1))
        return vnode1;
    return NULL;
*************** inline varpool_node *
*** 2932,2938 ****
  symbol_table::first_static_initializer (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      {
        varpool_node *vnode = dyn_cast <varpool_node *> (node);
        if (vnode && DECL_INITIAL (node->decl))
--- 3258,3264 ----
  symbol_table::first_static_initializer (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      {
        varpool_node *vnode = dyn_cast <varpool_node *> (node);
        if (vnode && DECL_INITIAL (node->decl))
*************** symbol_table::first_static_initializer (
*** 2945,2952 ****
  inline varpool_node *
  symbol_table::next_static_initializer (varpool_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      {
        varpool_node *vnode1 = dyn_cast <varpool_node *> (node1);
        if (vnode1 && DECL_INITIAL (node1->decl))
--- 3271,3278 ----
  inline varpool_node *
  symbol_table::next_static_initializer (varpool_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      {
        varpool_node *vnode1 = dyn_cast <varpool_node *> (node1);
        if (vnode1 && DECL_INITIAL (node1->decl))
*************** inline varpool_node *
*** 2965,2971 ****
  symbol_table::first_defined_variable (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      {
        varpool_node *vnode = dyn_cast <varpool_node *> (node);
        if (vnode && vnode->definition)
--- 3291,3297 ----
  symbol_table::first_defined_variable (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      {
        varpool_node *vnode = dyn_cast <varpool_node *> (node);
        if (vnode && vnode->definition)
*************** symbol_table::first_defined_variable (vo
*** 2978,2985 ****
  inline varpool_node *
  symbol_table::next_defined_variable (varpool_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      {
        varpool_node *vnode1 = dyn_cast <varpool_node *> (node1);
        if (vnode1 && vnode1->definition)
--- 3304,3311 ----
  inline varpool_node *
  symbol_table::next_defined_variable (varpool_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      {
        varpool_node *vnode1 = dyn_cast <varpool_node *> (node1);
        if (vnode1 && vnode1->definition)
*************** inline cgraph_node *
*** 2997,3003 ****
  symbol_table::first_defined_function (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      {
        cgraph_node *cn = dyn_cast <cgraph_node *> (node);
        if (cn && cn->definition)
--- 3323,3329 ----
  symbol_table::first_defined_function (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      {
        cgraph_node *cn = dyn_cast <cgraph_node *> (node);
        if (cn && cn->definition)
*************** symbol_table::first_defined_function (vo
*** 3010,3017 ****
  inline cgraph_node *
  symbol_table::next_defined_function (cgraph_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      {
        cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1);
        if (cn1 && cn1->definition)
--- 3336,3343 ----
  inline cgraph_node *
  symbol_table::next_defined_function (cgraph_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      {
        cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1);
        if (cn1 && cn1->definition)
*************** inline cgraph_node *
*** 3030,3036 ****
  symbol_table::first_function (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      if (cgraph_node *cn = dyn_cast <cgraph_node *> (node))
        return cn;
    return NULL;
--- 3356,3362 ----
  symbol_table::first_function (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      if (cgraph_node *cn = dyn_cast <cgraph_node *> (node))
        return cn;
    return NULL;
*************** symbol_table::first_function (void)
*** 3040,3047 ****
  inline cgraph_node *
  symbol_table::next_function (cgraph_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      if (cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1))
        return cn1;
    return NULL;
--- 3366,3373 ----
  inline cgraph_node *
  symbol_table::next_function (cgraph_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      if (cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1))
        return cn1;
    return NULL;
*************** inline cgraph_node *
*** 3052,3058 ****
  symbol_table::first_function_with_gimple_body (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = node->next)
      {
        cgraph_node *cn = dyn_cast <cgraph_node *> (node);
        if (cn && cn->has_gimple_body_p ())
--- 3378,3384 ----
  symbol_table::first_function_with_gimple_body (void)
  {
    symtab_node *node;
!   for (node = nodes; node; node = safe_as_a<symtab_node *>(node->next))
      {
        cgraph_node *cn = dyn_cast <cgraph_node *> (node);
        if (cn && cn->has_gimple_body_p ())
*************** symbol_table::first_function_with_gimple
*** 3065,3072 ****
  inline cgraph_node *
  symbol_table::next_function_with_gimple_body (cgraph_node *node)
  {
!   symtab_node *node1 = node->next;
!   for (; node1; node1 = node1->next)
      {
        cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1);
        if (cn1 && cn1->has_gimple_body_p ())
--- 3391,3398 ----
  inline cgraph_node *
  symbol_table::next_function_with_gimple_body (cgraph_node *node)
  {
!   symtab_node *node1 = safe_as_a<symtab_node *>(node->next);
!   for (; node1; node1 = safe_as_a<symtab_node *>(node1->next))
      {
        cgraph_node *cn1 = dyn_cast <cgraph_node *> (node1);
        if (cn1 && cn1->has_gimple_body_p ())
*************** symbol_table::next_function_with_gimple_
*** 3080,3085 ****
--- 3406,3418 ----
     for ((node) = symtab->first_function (); (node); \
  	(node) = symtab->next_function ((node)))
  
+ /* Walk all functions but precompute so a node can be deleted if needed.  */
+ #define FOR_EACH_FUNCTION_REMOVABLE(node) \
+    cgraph_node *next; \
+    for ((node) = symtab->first_function (), \
+ 	next = (node) ? symtab->next_function ((node)) : NULL; (node); \
+ 	(node) = next, next = (node) ? symtab->next_function ((node)) : NULL)
+ 
  /* Return true when callgraph node is a function with Gimple body defined
     in current unit.  Functions can also be define externally or they
     can be thunks with no Gimple representation.
*************** cgraph_node::only_called_directly_or_ali
*** 3123,3128 ****
--- 3456,3462 ----
  {
    gcc_assert (!inlined_to);
    return (!force_output && !address_taken
+ 	  && !ref_by_asm
  	  && !ifunc_resolver
  	  && !used_from_other_partition
  	  && !DECL_VIRTUAL_P (decl)
*************** cgraph_node::can_remove_if_no_direct_cal
*** 3143,3149 ****
    if (DECL_EXTERNAL (decl))
      return true;
    /* When function is needed, we cannot remove it.  */
!   if (force_output || used_from_other_partition)
      return false;
    if (DECL_STATIC_CONSTRUCTOR (decl)
        || DECL_STATIC_DESTRUCTOR (decl))
--- 3477,3483 ----
    if (DECL_EXTERNAL (decl))
      return true;
    /* When function is needed, we cannot remove it.  */
!   if (force_output || used_from_other_partition || ref_by_asm)
      return false;
    if (DECL_STATIC_CONSTRUCTOR (decl)
        || DECL_STATIC_DESTRUCTOR (decl))
*************** varpool_node::can_remove_if_no_refs_p (v
*** 3175,3180 ****
--- 3509,3515 ----
    if (DECL_EXTERNAL (decl))
      return true;
    return (!force_output && !used_from_other_partition
+ 	  && !ref_by_asm
  	  && ((DECL_COMDAT (decl)
  	       && !forced_by_abi
  	       && !used_from_object_file_p ())
*************** varpool_node::all_refs_explicit_p ()
*** 3193,3198 ****
--- 3528,3534 ----
    return (definition
  	  && !externally_visible
  	  && !used_from_other_partition
+ 	  && !ref_by_asm
  	  && !force_output);
  }
  
*************** ipa_ref::address_matters_p ()
*** 3479,3486 ****
  inline
  ipa_polymorphic_call_context::ipa_polymorphic_call_context (cgraph_edge *e)
  {
!   gcc_checking_assert (e->indirect_info->polymorphic);
!   *this = e->indirect_info->context;
  }
  
  /* Build empty "I know nothing" context.  */
--- 3815,3823 ----
  inline
  ipa_polymorphic_call_context::ipa_polymorphic_call_context (cgraph_edge *e)
  {
!   cgraph_polymorphic_indirect_info *pii
!     = as_a <cgraph_polymorphic_indirect_info *> (e->indirect_info);
!   *this = pii->context;
  }
  
  /* Build empty "I know nothing" context.  */
diff -Nrcpad gcc-15.2.0/gcc/cgraphbuild.cc gcc-16.1.0-RC-20260423/gcc/cgraphbuild.cc
*** gcc-15.2.0/gcc/cgraphbuild.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cgraphbuild.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Callgraph construction.
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph construction.
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** mark_address (gimple *stmt, tree addr, t
*** 214,222 ****
    addr = get_base_address (addr);
    if (TREE_CODE (addr) == FUNCTION_DECL)
      {
        cgraph_node *node = cgraph_node::get_create (addr);
        node->mark_address_taken ();
!       ((symtab_node *)data)->create_reference (node, IPA_REF_ADDR, stmt);
      }
    else if (addr && VAR_P (addr)
  	   && (TREE_STATIC (addr) || DECL_EXTERNAL (addr)))
--- 214,240 ----
    addr = get_base_address (addr);
    if (TREE_CODE (addr) == FUNCTION_DECL)
      {
+       cgraph_node *caller = (cgraph_node *) data;
        cgraph_node *node = cgraph_node::get_create (addr);
+       /* If NODE was cloned and the caller is a callback-dispatching function,
+ 	 the gimple call might not be updated yet.  Check whether that's the
+ 	 case and if so, replace NODE with the correct callee.  */
+       cgraph_edge *e = caller->get_edge (stmt);
+       if (e && e->has_callback)
+ 	{
+ 	  for (cgraph_edge *cbe = e->first_callback_edge ();
+ 	       cbe;
+ 	       cbe = cbe->next_callback_edge ())
+ 	    {
+ 	      if (cbe->callee->is_clone_of (node))
+ 		{
+ 		  node = cbe->callee;
+ 		  break;
+ 		}
+ 	    }
+ 	}
        node->mark_address_taken ();
!       caller->create_reference (node, IPA_REF_ADDR, stmt);
      }
    else if (addr && VAR_P (addr)
  	   && (TREE_STATIC (addr) || DECL_EXTERNAL (addr)))
diff -Nrcpad gcc-15.2.0/gcc/cgraphclones.cc gcc-16.1.0-RC-20260423/gcc/cgraphclones.cc
*** gcc-15.2.0/gcc/cgraphclones.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cgraphclones.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Callgraph clones
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Callgraph clones
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** cgraph_edge::clone (cgraph_node *n, gcal
*** 121,127 ****
  	  new_edge = n->create_indirect_edge (call_stmt,
  					      indirect_info->ecf_flags,
  					      prof_count, true);
! 	  *new_edge->indirect_info = *indirect_info;
  	}
      }
    else
--- 121,142 ----
  	  new_edge = n->create_indirect_edge (call_stmt,
  					      indirect_info->ecf_flags,
  					      prof_count, true);
! 
! 	  if (indirect_info->kind == CIIK_POLYMORPHIC)
! 	    new_edge->indirect_info
! 	      = (new (ggc_alloc<cgraph_polymorphic_indirect_info> ())
! 		 cgraph_polymorphic_indirect_info (
! 		     *(const cgraph_polymorphic_indirect_info *) indirect_info));
! 	  else if (indirect_info->kind == CIIK_SIMPLE)
! 	    new_edge->indirect_info
! 	      = (new (ggc_alloc<cgraph_simple_indirect_info> ())
! 		 cgraph_simple_indirect_info (
! 		     *(const cgraph_simple_indirect_info *) indirect_info));
! 	  else
! 	    new_edge->indirect_info
! 	      = (new (ggc_alloc<cgraph_indirect_call_info> ())
! 		 cgraph_indirect_call_info(
! 		     *(const cgraph_indirect_call_info *) indirect_info));
  	}
      }
    else
*************** cgraph_edge::clone (cgraph_node *n, gcal
*** 144,149 ****
--- 159,167 ----
    new_edge->can_throw_external = can_throw_external;
    new_edge->call_stmt_cannot_inline_p = call_stmt_cannot_inline_p;
    new_edge->speculative = speculative;
+   new_edge->callback = callback;
+   new_edge->has_callback = has_callback;
+   new_edge->callback_id = callback_id;
    new_edge->in_polymorphic_cdtor = in_polymorphic_cdtor;
  
    /* Update IPA profile.  Local profiles need no updating in original.  */
*************** set_new_clone_decl_and_node_flags (cgrap
*** 173,179 ****
    DECL_IS_REPLACEABLE_OPERATOR (new_node->decl) = 0;
  
    new_node->externally_visible = 0;
!   new_node->local = 1;
    new_node->lowered = true;
    new_node->semantic_interposition = 0;
  }
--- 191,199 ----
    DECL_IS_REPLACEABLE_OPERATOR (new_node->decl) = 0;
  
    new_node->externally_visible = 0;
!   /* Clones of callbacks might have their address taken, and thus cannot be
!      local.  */
!   new_node->local = !new_node->address_taken;
    new_node->lowered = true;
    new_node->semantic_interposition = 0;
  }
*************** localize_profile (cgraph_node *n)
*** 366,374 ****
  
     If the new node is being inlined into another one, NEW_INLINED_TO should be
     the outline function the new one is (even indirectly) inlined to.  All hooks
!    will see this in node's inlined_to, when invoked.  Can be NULL if the
     node is not inlined.
  
     If PARAM_ADJUSTMENTS is non-NULL, the parameter manipulation information
     will be overwritten by the new structure.  Otherwise the new node will
     share parameter manipulation information with the original node.  */
--- 386,399 ----
  
     If the new node is being inlined into another one, NEW_INLINED_TO should be
     the outline function the new one is (even indirectly) inlined to.  All hooks
!    will see this in node's inlined_to, when invoked.  Should be NULL if the
     node is not inlined.
  
+    SUFFIX is string that is appended to the original name, it should only be
+    NULL if NEW_INLINED_TO is not NULL or if the clone being created is
+    temporary and a record about it should not be added into the ipa-clones dump
+    file.
+ 
     If PARAM_ADJUSTMENTS is non-NULL, the parameter manipulation information
     will be overwritten by the new structure.  Otherwise the new node will
     share parameter manipulation information with the original node.  */
*************** cgraph_node::create_clone (tree new_decl
*** 432,437 ****
--- 457,463 ----
    new_node->unit_id = unit_id;
    new_node->merged_comdat = merged_comdat;
    new_node->merged_extern_inline = merged_extern_inline;
+   new_node->must_remain_in_tu_body = must_remain_in_tu_body;
    clone_info *info = clone_info::get (this);
  
    if (param_adjustments)
*************** clone_function_name (tree decl, const ch
*** 565,570 ****
--- 591,622 ----
    /* For consistency this needs to behave the same way as
       ASM_FORMAT_PRIVATE_NAME does, but without the final number
       suffix.  */
+   return clone_identifier (identifier, suffix);
+ }
+ 
+ /*  Return true if symbol is valid in assembler name.  */
+ 
+ static bool
+ is_valid_asm_symbol (char c)
+ {
+   if ('a' <= c && c <= 'z')
+     return true;
+   if ('A' <= c && c <= 'Z')
+     return true;
+   if ('0' <= c && c <= '9')
+     return true;
+   if (c == '_')
+     return true;
+   return false;
+ }
+ 
+ /* Return a new clone of ID ending with the string SUFFIX.
+    If FILTER_SUFFIX is true, any illegal asm characters in the SUFFIX are
+    replaced with _.  */
+ 
+ tree
+ clone_identifier (tree id, const char *suffix, bool filter_suffix)
+ {
    char *separator = XALLOCAVEC (char, 2);
    separator[0] = symbol_table::symbol_suffix_separator ();
    separator[1] = 0;
*************** clone_function_name (tree decl, const ch
*** 573,586 ****
  #else
    const char *prefix = "";
  #endif
!   char *result = ACONCAT ((prefix,
! 			   IDENTIFIER_POINTER (identifier),
! 			   separator,
! 			   suffix,
! 			   (char*)0));
!   return get_identifier (result);
! }
  
  
  /* Create callgraph node clone with new declaration.  The actual body will be
     copied later at compilation stage.  The name of the new clone will be
--- 625,656 ----
  #else
    const char *prefix = "";
  #endif
!   if (!suffix)
!     suffix = "";
! 
!   if (!filter_suffix)
!     {
!       char *result = ACONCAT (
! 	(prefix, IDENTIFIER_POINTER (id), separator, suffix, (char *) 0));
!       return get_identifier (result);
!     }
!   else
!     {
!       /* Replace any illegal chars with _.  */
!       int suffix_len = strlen (suffix);
!       char *converted_suffix = XALLOCAVEC (char, suffix_len + 1);
!       for (int i = 0; i < suffix_len; i++)
! 	if (!is_valid_asm_symbol (suffix[i]))
! 	  converted_suffix[i] = '_';
! 	else
! 	  converted_suffix[i] = suffix[i];
!       converted_suffix[suffix_len] = '\0';
  
+       char *result = ACONCAT ((prefix, IDENTIFIER_POINTER (id), separator,
+ 			       converted_suffix, (char *) 0));
+       return get_identifier (result);
+     }
+ }
  
  /* Create callgraph node clone with new declaration.  The actual body will be
     copied later at compilation stage.  The name of the new clone will be
*************** cgraph_node::create_version_clone (tree
*** 985,990 ****
--- 1055,1061 ----
  	  version.  */
         e->redirect_callee (new_version);
       }
+    new_version->calls_comdat_local = new_version->check_calls_comdat_local_p ();
  
     dump_callgraph_transformation (this, new_version, suffix);
  
*************** cgraph_node::create_version_clone (tree
*** 1002,1012 ****
     TREE_MAP is a mapping of tree nodes we want to replace with
     new ones (according to results of prior analysis).
  
!    If non-NULL ARGS_TO_SKIP determine function parameters to remove
!    from new version.
!    If SKIP_RETURN is true, the new version will return void.
     If non-NULL BLOCK_TO_COPY determine what basic blocks to copy.
     If non_NULL NEW_ENTRY determine new entry BB of the clone.
  
     If TARGET_ATTRIBUTES is non-null, when creating a new declaration,
     add the attributes to DECL_ATTRIBUTES.  And call valid_attribute_p
--- 1073,1084 ----
     TREE_MAP is a mapping of tree nodes we want to replace with
     new ones (according to results of prior analysis).
  
!    If non-NULL PARAM_ADJUSTMENTS determine how function formal parameters
!    should be modified in the new version and if it should return void.
     If non-NULL BLOCK_TO_COPY determine what basic blocks to copy.
     If non_NULL NEW_ENTRY determine new entry BB of the clone.
+    SUFFIX is a string that will be used to create a new name for the new
+    function.
  
     If TARGET_ATTRIBUTES is non-null, when creating a new declaration,
     add the attributes to DECL_ATTRIBUTES.  And call valid_attribute_p
diff -Nrcpad gcc-15.2.0/gcc/cgraphunit.cc gcc-16.1.0-RC-20260423/gcc/cgraphunit.cc
*** gcc-15.2.0/gcc/cgraphunit.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cgraphunit.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Driver of optimization process
!    Copyright (C) 2003-2025 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
--- 1,5 ----
  /* Driver of optimization process
!    Copyright (C) 2003-2026 Free Software Foundation, Inc.
     Contributed by Jan Hubicka
  
  This file is part of GCC.
*************** along with GCC; see the file COPYING3.
*** 63,69 ****
        final assembler is generated.  This is done in the following way. Note
        that with link time optimization the process is split into three
        stages (compile time, linktime analysis and parallel linktime as
!       indicated bellow).
  
        Compile time:
  
--- 63,69 ----
        final assembler is generated.  This is done in the following way. Note
        that with link time optimization the process is split into three
        stages (compile time, linktime analysis and parallel linktime as
!       indicated below).
  
        Compile time:
  
*************** symtab_node::needed_p (void)
*** 255,260 ****
--- 255,262 ----
    /* If the user told us it is used, then it must be so.  */
    if (force_output)
      return true;
+   if (ref_by_asm)
+     return true;
  
    /* ABI forced symbols are needed when they are external.  */
    if (forced_by_abi && TREE_PUBLIC (decl))
*************** process_symver_attribute (symtab_node *n
*** 737,743 ****
  
    for (; value != NULL; value = TREE_CHAIN (value))
      {
!       /* Starting from bintuils 2.35 gas supports:
  	  # Assign foo to bar@V1 and baz@V2.
  	  .symver foo, bar@V1
  	  .symver foo, baz@V2
--- 739,745 ----
  
    for (; value != NULL; value = TREE_CHAIN (value))
      {
!       /* Starting from binutils 2.35 gas supports:
  	  # Assign foo to bar@V1 and baz@V2.
  	  .symver foo, bar@V1
  	  .symver foo, baz@V2
*************** check_global_declaration (symtab_node *s
*** 1109,1118 ****
        if (warning_suppressed_p (decl, OPT_Wunused))
  	;
        else if (snode->referred_to_p (/*include_self=*/false))
! 	pedwarn (input_location, 0, "%q+F used but never defined", decl);
!       else
! 	warning (OPT_Wunused_function, "%q+F declared %<static%> but never "
! 				       "defined", decl);
      }
  
    /* Warn about static fns or vars defined but not used.  */
--- 1111,1123 ----
        if (warning_suppressed_p (decl, OPT_Wunused))
  	;
        else if (snode->referred_to_p (/*include_self=*/false))
! 	{
! 	  if (pedwarn (input_location, 0, "%q+F used but never defined", decl))
! 	    suppress_warning (decl, OPT_Wunused);
! 	}
!       else if (warning (OPT_Wunused_function,
! 			"%q+F declared %<static%> but never defined", decl))
! 	suppress_warning (decl, OPT_Wunused);
      }
  
    /* Warn about static fns or vars defined but not used.  */
*************** analyze_functions (bool first_time)
*** 1210,1217 ****
  
        /* First identify the trivially needed symbols.  */
        for (node = symtab->first_symbol ();
! 	   node != first_analyzed
! 	   && node != first_analyzed_var; node = node->next)
  	{
  	  /* Convert COMDAT group designators to IDENTIFIER_NODEs.  */
  	  node->get_comdat_group_id ();
--- 1215,1222 ----
  
        /* First identify the trivially needed symbols.  */
        for (node = symtab->first_symbol ();
! 	   node != first_analyzed && node != first_analyzed_var;
! 	   node = safe_as_a<symtab_node *>(node->next))
  	{
  	  /* Convert COMDAT group designators to IDENTIFIER_NODEs.  */
  	  node->get_comdat_group_id ();
*************** analyze_functions (bool first_time)
*** 1264,1269 ****
--- 1269,1283 ----
  	      if (!cnode->analyzed)
  		cnode->analyze ();
  
+ 	      /* A reference to a default node in a function set implies a
+ 		 reference to all versions in the set.  */
+ 	      cgraph_function_version_info *node_v = cnode->function_version ();
+ 	      if (node_v && is_function_default_version (node->decl))
+ 		for (cgraph_function_version_info *fvi = node_v->next;
+ 		     fvi;
+ 		     fvi = fvi->next)
+ 		  enqueue_node (fvi->this_node);
+ 
  	      for (edge = cnode->callees; edge; edge = edge->next_callee)
  		if (edge->callee->definition
  		    && (!DECL_EXTERNAL (edge->callee->decl)
*************** analyze_functions (bool first_time)
*** 1288,1294 ****
  		  for (edge = cnode->indirect_calls; edge; edge = next)
  		    {
  		      next = edge->next_callee;
! 		      if (edge->indirect_info->polymorphic)
  			walk_polymorphic_call_targets (&reachable_call_targets,
  						       edge);
  		    }
--- 1302,1309 ----
  		  for (edge = cnode->indirect_calls; edge; edge = next)
  		    {
  		      next = edge->next_callee;
! 		      if (is_a <cgraph_polymorphic_indirect_info *>
! 			  (edge->indirect_info))
  			walk_polymorphic_call_targets (&reachable_call_targets,
  						       edge);
  		    }
*************** analyze_functions (bool first_time)
*** 1364,1370 ****
         node != first_handled
         && node != first_handled_var; node = next)
      {
!       next = node->next;
        /* For symbols declared locally we clear TREE_READONLY when emitting
  	 the constructor (if one is needed).  For external declarations we can
  	 not safely assume that the type is readonly because we may be called
--- 1379,1385 ----
         node != first_handled
         && node != first_handled_var; node = next)
      {
!       next = safe_as_a<symtab_node *>(node->next);
        /* For symbols declared locally we clear TREE_READONLY when emitting
  	 the constructor (if one is needed).  For external declarations we can
  	 not safely assume that the type is readonly because we may be called
*************** analyze_functions (bool first_time)
*** 1374,1380 ****
  	  && TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (node->decl))
  	  && DECL_EXTERNAL (node->decl))
  	TREE_READONLY (node->decl) = 0;
!       if (!node->aux && !node->referred_to_p ())
  	{
  	  if (symtab->dump_file)
  	    fprintf (symtab->dump_file, " %s", node->dump_name ());
--- 1389,1395 ----
  	  && TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (node->decl))
  	  && DECL_EXTERNAL (node->decl))
  	TREE_READONLY (node->decl) = 0;
!       if (!node->aux && !node->referred_to_p () && !node->ref_by_asm)
  	{
  	  if (symtab->dump_file)
  	    fprintf (symtab->dump_file, " %s", node->dump_name ());
*************** analyze_functions (bool first_time)
*** 1419,1425 ****
  	}
        node->aux = NULL;
      }
!   for (;node; node = node->next)
      node->aux = NULL;
    first_analyzed = symtab->first_function ();
    first_analyzed_var = symtab->first_variable ();
--- 1434,1440 ----
  	}
        node->aux = NULL;
      }
!   for (;node; node = safe_as_a<symtab_node *>(node->next))
      node->aux = NULL;
    first_analyzed = symtab->first_function ();
    first_analyzed_var = symtab->first_variable ();
*************** output_in_order (void)
*** 2194,2200 ****
  	&& !DECL_HAS_VALUE_EXPR_P (vnode->decl))
        nodes.safe_push (cgraph_order_sort (vnode));
  
!   for (anode = symtab->first_asm_symbol (); anode; anode = anode->next)
      nodes.safe_push (cgraph_order_sort (anode));
  
    /* Sort nodes by order.  */
--- 2209,2216 ----
  	&& !DECL_HAS_VALUE_EXPR_P (vnode->decl))
        nodes.safe_push (cgraph_order_sort (vnode));
  
!   for (anode = symtab->first_asm_symbol (); anode;
!        anode = safe_as_a<asm_node*>(anode->next))
      nodes.safe_push (cgraph_order_sort (anode));
  
    /* Sort nodes by order.  */
*************** symbol_table::compile (void)
*** 2400,2408 ****
      if (node->alias
  	&& lookup_attribute ("weakref", DECL_ATTRIBUTES (node->decl)))
        {
! 	IDENTIFIER_TRANSPARENT_ALIAS
! 	   (DECL_ASSEMBLER_NAME (node->decl)) = 1;
! 	TREE_CHAIN (DECL_ASSEMBLER_NAME (node->decl))
  	   = (node->alias_target ? node->alias_target
  	      : DECL_ASSEMBLER_NAME (node->get_alias_target ()->decl));
        }
--- 2416,2425 ----
      if (node->alias
  	&& lookup_attribute ("weakref", DECL_ATTRIBUTES (node->decl)))
        {
! 	tree id = DECL_ASSEMBLER_NAME (node->decl);
! 	gcc_assert (!IDENTIFIER_INTERNAL_P (id));
! 	IDENTIFIER_TRANSPARENT_ALIAS (id) = 1;
! 	TREE_CHAIN (id)
  	   = (node->alias_target ? node->alias_target
  	      : DECL_ASSEMBLER_NAME (node->get_alias_target ()->decl));
        }
*************** symbol_table::finalize_compilation_unit
*** 2569,2574 ****
--- 2586,2593 ----
    if (flag_dump_passes)
      dump_passes ();
  
+   analyze_toplevel_extended_asm ();
+ 
    /* Gimplify and lower all functions, compute reachability and
       remove unreachable nodes.  */
    analyze_functions (/*first_time=*/true);
diff -Nrcpad gcc-15.2.0/gcc/channels.h gcc-16.1.0-RC-20260423/gcc/channels.h
*** gcc-15.2.0/gcc/channels.h	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/channels.h	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,45 ----
+ /* channels.h - Publish/Subscribe channels on compiler-specific topics.
+    Copyright (C) 2025-2026 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_CHANNELS_H
+ #define GCC_CHANNELS_H
+ 
+ #include "pub-sub.h"
+ 
+ namespace gcc {
+ 
+ /* Forward decls of subscribers for the various topics we have
+    publish/subscribe channels for.  */
+ namespace topics {
+   namespace analyzer_events { struct subscriber; }
+   namespace pass_events { struct subscriber; }
+ } // namespace gcc::topics
+ 
+ /* Publish/subscribe channels on various compiler-specific topics.  */
+ 
+ struct compiler_channels
+ {
+   pub_sub::channel<topics::analyzer_events::subscriber> analyzer_events_channel;
+   pub_sub::channel<topics::pass_events::subscriber> pass_events_channel;
+ };
+ 
+ } // namespace gcc
+ 
+ #endif /* ! GCC_CHANNELS_H */
diff -Nrcpad gcc-15.2.0/gcc/cif-code.def gcc-16.1.0-RC-20260423/gcc/cif-code.def
*** gcc-15.2.0/gcc/cif-code.def	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cif-code.def	Thu Apr 23 11:07:33 2026
***************
*** 1,7 ****
  /* This file contains the definitions of the cgraph_inline_failed_t
     enums used in GCC.
  
!    Copyright (C) 2008-2025 Free Software Foundation, Inc.
     Contributed by Doug Kwan <dougkwan@google.com>
  
  This file is part of GCC.
--- 1,7 ----
  /* This file contains the definitions of the cgraph_inline_failed_t
     enums used in GCC.
  
!    Copyright (C) 2008-2026 Free Software Foundation, Inc.
     Contributed by Doug Kwan <dougkwan@google.com>
  
  This file is part of GCC.
*************** DEFCIFCODE(EXTERN_LIVE_ONLY_STATIC, CIF_
*** 139,144 ****
--- 139,154 ----
  	   N_("function has external linkage when the user requests only"
  	      " inlining static for live patching"))
  
+ /* We can't inline because callee must remain in translation unit
+    and caller is in another.  */
+ DEFCIFCODE(MUST_REMAIN_IN_TU, CIF_FINAL_ERROR,
+ 	   N_("callee must remain in translation unit"))
+ 
  /* We proved that the call is unreachable.  */
  DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR,
  	   N_("unreachable"))
+ 
+ /* Callback edges cannot be inlined, as the corresponding call
+    statement does not exist.  */
+ DEFCIFCODE(CALLBACK_EDGE, CIF_FINAL_ERROR,
+ 	   N_("callback edges cannot be inlined"))
diff -Nrcpad gcc-15.2.0/gcc/cobol/ChangeLog gcc-16.1.0-RC-20260423/gcc/cobol/ChangeLog
*** gcc-15.2.0/gcc/cobol/ChangeLog	Fri Aug  8 06:52:35 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/ChangeLog	Thu Apr 23 11:07:33 2026
***************
*** 1,20 ****
! 2025-08-08  Release Manager
  
! 	* GCC 15.2.0 released.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
  
! 	Backported from master:
! 	2025-07-24  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119231
  	* gcobolspec.cc: (lang_specific_driver): Pass OPT_static through.
  	Handle -static and -static-libgcobol properly.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-07-23  Robert Dubner  <rdubner@symas.com>
  
  	* genapi.cc (leave_procedure): Adjust location_t for PERFORM.
  	(parser_perform_times): Likewise.
--- 1,1139 ----
! 2026-04-02  Robert Dubner  <rdubner@symas.com>
  
! 	* cobol1.cc (cobol_langhook_handle_option): Handle OPT_Wrecording_mode.
! 	* gcobol.1: Documentation of pre-program registers.
! 	* genapi.cc (hijacker): Define new function hijacked code generation.
! 	(RETURN_WHEN_HIJACKED): Macro for wrapping if(hijacked)return;
! 	(hijacked): Either a boolean or false depending on ENABLE_HIJACKING.
! 	(set_exception_environment): Use gg_pointer_to_array instead of
! 	gg_get_address_of.
! 	(parser_statement_end): Formatting.
! 	(section_label): Change ALTER STATEMENT processing.
! 	(pseudo_return_push): Expand TRACE1 message.
! 	(pseudo_return_pop): Expand TRACE1 message; improved PERFORM processing.
! 	(find_procedure): Change how cbl_proc_t is allocated; improved PERFORM
! 	processing.
! 	(parser_enter_section): Changed ALTER statement processing.
! 	(parser_enter_paragraph): Likewise.
! 	(parser_goto): Use SWITCH_EXPR instead of indirect jump.
! 	(parser_perform): Likewise.
! 	(internal_perform_through): Likewise.
! 	(parser_enter_file): Use SWITCH_EXPR for implementing ENTRY statement.
! 	(parser_leave_file): Build table of values for the SWITCH_EXPR.
! 	(enter_program_common): Remove unused JMP *ptr.
! 	(parser_enter_program): Code to hijack code generation for a function
! 	"dubner" when ENABLE_HIJACKING is defined.
! 	(build_dispatch_switch): Generalize builder of SWITCH_EXPR.
! 	(build_alter_switch): Uses build_dispatch_switch.
! 	(build_entry_switch): Likewise.
! 	(build_perform_dispatcher): Likewise.
! 	(parser_end_program): Wrap build_perform_dispatcher() in if(!hijacked).
! 	(parser_init_list): Use RETURN_WHEN_HIJACKED; use gg_pointer_to_array()
! 	instead of gg_get_address_of().
! 	(psa_FldLiteralN): Set TREE_READONLY(var_decl) = 1.
! 	(parser_alphabet): use gg_pointer_to_array() instead of
! 	gg_get_address_of().
! 	(parser_assign): Formatting.
! 	(program_end_stuff): Call hijacking() when ENABLE_HIJACKING and the
! 	program-id is "hijack"; use gg_pointer_to_array().
! 	(parser_exit): Handle if(hijacked);
! 	(register_find): New static function to find XML-* COBOL variables.
! 	(parser_xml_parse): Updated XML PARSE statement handling.
! 	(initialize_the_data): Use RETURN_WHEN_HIJACKED.
! 	(establish_using): Change first-time-through processing.
! 	(parser_division): Change ENTRY statement processing.
! 	(parser_see_stop_run): Changed RETURN-CODE per-function variable
! 	processing.
! 	(parser_label_label): Use RETURN_WHEN_HIJACKED.
! 	(parser_label_goto): Likewise.
! 	(parser_perform_inline_times): Honor cbl_field_t offset for the count
! 	parameter.
! 	(inspect_tally): Use __gg__inspect_format_1_sbc() for SBC characters.
! 	(create_and_call): Use per-function RETURN-CODE.
! 	(parser_entry_activate): Eliminate static tree variables.
! 	(parser_entry): Use automatic tree variables.
! 	(parser_program_hierarchy): Use RETURN_WHEN_HIJACKED and
! 	gg_pointer_to_array().
! 	(build_temporaryN): New function compiled when ENABLE_HIJACKING.
! 	(hijack_for_development): Changed to generate minimal GENERIC.
! 	(actually_create_the_static_field): Use gg_structure_type_constructor
! 	to create the constructor for the static cblc_field_t VAR_DECL.
! 	(psa_FldLiteralA): Move where TREE attributes are established.
! 	(parser_local_add): Use gg_pointer_to_array().
! 	(parser_symbol_add): Use RETURN_WHEN_HIJACKED(); use gg_pointer_to_array().
! 	* gengen.cc (gg_append_statement): #if 0 around some debugging code.
! 	(gg_show_type): Expanded to display "static" and "readonly".
! 	(gg_find_field_in_struct): Moved and rewritten.
! 	(gg_get_structure_type_decl): New function.
! 	(gg_start_building_a_union): Eliminated.
! 	(gg_start_building_a_struct): Eliminated.
! 	(gg_add_field_to_structure): Eliminated.
! 	(gg_structure_type_constructor): New function.
! 	(gg_get_struct_type_decl): Eliminated.
! 	(gg_get_union_type_decl): Eliminated.
! 	(gg_get_local_struct_type_decl): Eliminated.
! 	(gg_get_filelevel_struct_type_decl): Eliminated.
! 	(gg_get_filelevel_union_type_decl): Eliminated.
! 	(gg_define_local_struct): Eliminated.
! 	(gg_assign_to_structure): Eliminated.
! 	(gg_define_array): Formatting.
! 	(gg_pointer_to_array): Returns ADDR_EXPR for &array[0];
! 	(gg_goto): Comment reflecting why we aren't using it.
! 	* gengen.h (SHORT_P): Alias for build_pointer_type(short_integer_type_node);
! 	(struct gg_function_t): Changes mostly in support of SWITCH_EXPR.
! 	(gg_get_local_struct_type_decl): Eliminated declaration.
! 	(gg_get_filelevel_struct_type_decl): Likewise.
! 	(gg_get_filelevel_union_type_decl): Likewise.
! 	(gg_define_local_struct): Likewise.
! 	(gg_get_structure_type_decl): New declaration.
! 	(gg_structure_type_constructor): New declaration.
! 	(gg_assign_to_structure): Eliminated declaration.
! 	(gg_define_uchar_star): Changed declaration.
! 	(gg_pointer_to_array): New declaration.
! 	* genutil.cc: Removed unused globals; added var_decl_entry_index.
! 	* genutil.h: Likewise.
! 	* parse.y: Change program-id and REDEFINES handling.
! 	* parse_ante.h: Likewise.
! 	* scan_ante.h (is_refmod): Rewrite.
! 	* structs.cc (create_cblc_field_t): Use gg_get_structure_type_decl().
! 	* symbols.cc (return_code_register): Use per-program COBOL registers.
! 	(symbol_redefines_root): New function.
! 	(symbols_update): Use per-program COBOL registers.
! 	(symbol_table_init): Implement per-program registers.
! 	(symbol_registers_add): Likewise.
! 	(cbl_field_t::encode): Loosen COBOL level requirement.
! 	* symbols.h (struct cbl_proc_t): SWITCH_EXPR-based PERFORM returns.
! 	(symbol_redefines_root): New declaration.
! 	(symbol_registers_add): New declaration.
! 	(new_alphanumeric): New comment.
! 	* util.cc (FOR_JIM): Remove some unused demonstration code.
! 	(cbl_field_t::encode_numeric): Likewise.
  
! 2026-03-02  Robert Dubner  <rdubner@symas.com>
  
! 	PR cobol/119456
! 	* genapi.cc (mh_source_is_literalA): Don't set refmod_e attribute
! 	unless it is necessary.
! 	(have_common_parent): Helper routine that determines whether two
! 	COBOL variables are members of the same data description.
! 	(mh_alpha_to_alpha): Modified for greater efficiency when table
! 	subscripts and reference modification parameters are numeric
! 	literals.
! 	* genutil.cc (get_data_offset): Recognizes when table subscripts
! 	and refmod offsets are numeric literals.
! 	(refer_size): Recognizes when refmod offsets are numeric literals.
! 	(refer_size_source): Recognizes when table subscripts are numeric
! 	literals.
! 
! 2026-02-27  Richard Biener  <rguenther@suse.de>
! 
! 	PR cobol/123238
! 	* lexio.cc: Remove <iostream> include.
! 	(cdftext::process_file): Remove if (false) gated use of
! 	iostream code.
! 
! 2026-02-26  Robert Dubner  <rdubner@symas.com>
! 
! 	* parse.y: BASECONVERT and TRIM take their type from their first
! 	parameter.
! 	* parse_util.h (intrinsic_return_field): The function_descrs[] is
! 	adjusted so that a number of functions take their return type from
! 	their first calling parameter.  intrinsic_return_field() has been
! 	refined.
! 	* symbols.cc (new_alphanumeric):  Use set_explicit() instead of
! 	set() in support of refined intrinsic function return type.
! 
! 2026-02-24  Robert Dubner  <rdubner@symas.com>
! 
! 	* gcobc: Adjust how -fPIC is applied, and other refinements.
! 	* gcobol.1: Documentation.
! 	* genapi.cc (parser_statement_end): New function.  Deallocates
! 	temp char strings from the heap.
! 	(initialize_variable_internal): Ignore temp char strings.
! 	(compare_binary_binary): Formatting.
! 	(parser_end_program): Formatting.
! 	(parser_init_list): Formatting.
! 	(parser_exit_program): Formatting.
! 	(program_end_stuff): Formatting.
! 	(parser_exit): Formatting.
! 	(parser_perform_conditional): Formatting.
! 	(perform_outofline_before_until): Formatting.
! 	(parser_file_add): Formatting.
! 	(mh_source_is_literalA): Formatting.
! 	(psa_new_var_decl): Make cblc_field_t for intermediate_e
! 	alphanumerics program-static.
! 	(parser_symbol_add): Eliminate unnecessary code when
! 	type!=FldConditional; change handling of intermediate_e for
! 	FldAlphanumerics.
! 	* genapi.h (parser_end_program): New declaration.
! 	(parser_exit): Formatting.
! 	(parser_exit_program): Formatting.
! 	(parser_statement_end): New declaration.
! 	* lexio.cc (parse_replace_pairs): Change CDF handling.
! 	(cdftext::lex_open): Likewise.
! 	(cdftext::process_file): Likewise.
! 	* parse.y: Changes to MAXIMUM_ALPHA_LENGTH; refine return value
! 	types for various intrinsic functions; some CDF handling.
! 	* parse_ante.h (MAXLENGTH_FORMATTED_DATE): Eliminate constant.
! 	(MAXLENGTH_FORMATTED_TIME): Likewise.
! 	(MAXLENGTH_CALENDAR_DATE): Likewise.
! 	(MAXLENGTH_FORMATTED_DATETIME): Likewise.
! 	(new_alphanumeric): No longer takes a capacity.
! 	(intrinsic_return_field): New declaration.
! 	(struct ffi_args_t): Changed debug message.
! 	(is_among): New declaration.
! 	* parse_util.h (intrinsic_return_field): New function. Works with
! 	the modified function_descrs[] table.
! 	* scan.l: Modified scanning.
! 	* scan_ante.h (class input_file_status_t): Likewise.
! 	(verify_ws):  Likewise.
! 	(is_refmod): Likewise.
! 	* symbols.cc (symbols_update): Improved comment about a debug
! 	message.
! 	(symbol_temporaries): New function for temporaries on the heap that
! 	will have to be deallocated.
! 	(symbol_temporary_alphanumerics): Likewise.
! 	(new_temporary_impl): Eliminate MAXIMUM_ALPHA_LENGTH from template.
! 	(new_alphanumeric): Eliminate capacity as a parameter.
! 	* symbols.h (cbl_dialect_str): Formatting.
! 	(MAXIMUM_ALPHA_LENGTH): Change comment and value.
! 	(IBM_MAXIMUM_ALPHA_LENGTH): Put parentheses around "size_t(1)<<31".
! 	(symbol_temporaries): New declaration.
! 	(symbol_temporary_alphanumerics): New declaration.
! 	(struct function_descr_t): New comment on ret_type.
! 	(new_alphanumeric): New declaration.
! 	* util.cc (class cdf_directives_t): CDF processing.
! 	(cobol_set_indicator_column): Likewise.
! 	(cdf_push_source_format): Likewise.
! 	(cdf_pop_source_format): Likewise.
! 	(parent_names): Likewise.
! 	(cobol_filename): Likewise.
! 	(cobol_lineno): Likewise.
! 	(cobol_filename_restore): Likewise.
! 
! 2026-02-19  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (tree_type_from_field_type): Move static code.
! 	(compare_binary_binary): Identify little-endian compares.
! 	(psa_FldLiteralN): Eliminate obsolete development code; make the
! 	initialized variables TREE_CONSTANT.
! 	(parser_symbol_add): Adjust for modified FldLiteralN.
! 	* genmath.cc (all_results_binary): Renamed. Modified for fastness.
! 	(all_results_integer): Likewise.
! 	(all_refers_integer): Likewise.
! 	(largest_binary_term): Likewise.
! 	(fast_add): Expand conditions.  Use get_binary_value_tree.
! 	(fast_subtract): Likewise.
! 	(fast_multiply): Expand conditions.
! 	(fast_divide): Expand conditions.
! 	(parser_add): Avoid fast_add when error or not-error are specified.
! 	(parser_multiply): Likewise.
! 	(parser_divide): Likewise.
! 	(parser_subtract): Likewise.
! 	* genutil.cc (tree_type_from_field): Disable; flagged for removal.
! 	(get_binary_value): Use get_binary_value_tree.
! 	(get_binary_value_tree): Avoid intermediate variables when possible.
! 	(refer_is_clean): Formatting.
! 	(is_pure_integer): Refine test for little-endian binary.
! 	* genutil.h (get_binary_value_tree): New declaration.
! 	(is_pure_integer): New declaration.
! 	* symbols.cc (symbol_table_init): Explanatory ZEROS comment.
! 
! 2026-02-13  Robert Dubner  <rdubner@symas.com>
! 
! 	PR cobol/119455
! 	* genapi.cc (mh_source_is_group): Formatting.
! 	(mh_source_is_literalA): Implement accelerated move.
! 	(mh_alpha_to_alpha): New function; implements accelerated move.
! 	(move_helper): Calls new mh_alpha_to_alpha.
! 
! 2026-02-12  Robert Dubner  <rdubner@symas.com>
! 
! 	* cbldiag.h: Copyright updated to 2026.
! 	* cdf-copy.cc: Likewise.
! 	* cdf.y: Likewise.
! 	* cdfval.h: Likewise.
! 	* cobol-system.h: Likewise.
! 	* convert.cc: Likewise.
! 	* copybook.h: Likewise.
! 	* except.cc: Likewise.
! 	* exceptg.h: Likewise.
! 	* genapi.cc: Likewise.
! 	* genapi.h: Likewise.
! 	* gengen.cc: Likewise.
! 	* gengen.h: Likewise.
! 	* genmath.cc: Likewise.
! 	* genmath.h: Likewise.
! 	* genutil.cc: Likewise.
! 	* genutil.h: Likewise.
! 	* inspect.h: Likewise.
! 	* lang-specs.h: Likewise.
! 	* lexio.cc: Likewise.
! 	* lexio.h: Likewise.
! 	* messages.cc: Likewise.
! 	* parse.y: Likewise.
! 	* parse_ante.h: Likewise.
! 	* parse_util.h: Likewise.
! 	* scan.l: Likewise.
! 	* scan_ante.h: Likewise.
! 	* scan_post.h: Likewise.
! 	* show_parse.h: Likewise.
! 	* structs.cc: Likewise.
! 	* structs.h: Likewise.
! 	* symbols.cc: Likewise.
! 	* symbols.h: Likewise.
! 	* symfind.cc: Likewise.
! 	* util.cc: Likewise.
! 	* util.h: Likewise.
! 
! 2026-02-12  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (establish_using): Use a 128-bit type for
! 	float-extended; handle numeric-edited values of different sizes
! 	and signs correctly.
! 	(create_and_call):  Use a 128-bit type for float-extended.
! 
! 2026-02-06  Robert Dubner  <rdubner@symas.com>
! 
! 	PR cobol/119332
! 	* gcobolspec.cc (lang_specific_driver): Add -dumpspecs,
! 	-dumpversion, -dumpmachine to the no_files_error=false cases.
! 
! 2026-02-05  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (DEFAULT_LINE_NUMBER): Remove unused #define.
! 	(parser_statement_begin): Implement perform_is_armed logic.
! 	(initialize_variable_internal): Handle both real and int types in
! 	SHOW_PARSE tracing.
! 	(section_label): Comment a renumbered insert_nop() for gdb-cobol
! 	logic.
! 	(paragraph_label): Likewise.
! 	(leave_procedure): Eliminate call to gg_insert_into_assembler().
! 	(parser_enter_section): Renumber insert_nop().
! 	(parser_perform): Eliminate call to gg_insert_into_assembler().
! 	(parser_perform_times): Likewise.
! 	(internal_perform_through): Likewise.
! 	(internal_perform_through_times): Likewise.
! 	(parser_leave_file): Create the static _perform_line_pairs table.
! 	(parser_sleep): Renumber insert_nop().
! 	(parser_division): Remove calls to initialize_the_data().
! 	(parser_perform_start): New call to insert_nop().
! 	(parser_perform_conditional): Likewise.
! 	(perform_outofline_before_until): Expanded comment.
! 	(perform_outofline_after_until): Eliminate call to
! 	gg_insert_into_assembler().
! 	(perform_outofline_testafter_varying): Likewise.
! 	(perform_outofline_before_varying): Likewise.
! 	(perform_inline_testbefore_varying):  New call to insert_nop().
! 	(create_and_call): Change a comment.
! 	* gengen.cc (gg_create_goto_pair): Change characteristics of a
! 	label.
! 	* parse.y: Change how data are initialized.
! 	* parse_ante.h (field_type_update): Likewise.
! 	* symbols.cc (cbl_field_t::set_signable): Likewise.
! 	(cbl_field_t::encode): Likewise.
! 	* symbols.h (struct cbl_field_t): Likewise.
! 	* util.cc (symbol_field_type_update): Likewise.
! 	(cbl_field_t::encode_numeric): Likewise.
! 
! 2026-01-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lang.opt (fexec-national-charset=): Add dot at the end of the
! 	description.
! 
! 2026-01-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lang.opt (Wmove-index): Add missing dot at the end of description.
! 
! 2026-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lang.opt.urls: Regenerate.
! 
! 2026-01-17  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
! 
! 	* cbldiag.h (struct cbl_loc_t): Diagnostics.
! 	(enum cbl_diag_id_t): Diagnostics.
! 	* cdf.y: Includes.
! 	* cobol1.cc (cobol_warning_suppress): Diagnostics.
! 	(cobol_langhook_handle_option): Implement -fexec-charset.  Expand
! 	the use of diagnostics.
! 	* gcobc: Expand options and warnings.
! 	* gcobol.1: Documentation.
! 	* genapi.cc (level_88_helper): Charsets.
! 	(get_level_88_domain): Charsets.
! 	(get_class_condition_string): Charsets.
! 	(function_pointer_from_name): Charsets.
! 	(initialize_variable_internal):  Charsets.
! 	(parser_initialize): Charsets.
! 	(get_binary_value_from_float): Charsets.
! 	(get_bytes_needed): Charsets.
! 	(cobol_compare): Charsets.
! 	(move_tree): Eliminate function.
! 	(move_tree_to_field): Eliminate function.
! 	(get_string_from): Eliminate function.
! 	(parser_init_list): Charsets.
! 	(psa_FldLiteralN): Charsets.
! 	(parser_accept_date_yymmdd): Charsets.
! 	(parser_accept_date_yyyymmdd): Charsets.
! 	(parser_accept_date_yyddd): Charsets.
! 	(parser_accept_date_yyyyddd): Charsets.
! 	(parser_accept_date_dow): Charsets.
! 	(parser_accept_date_hhmmssff): Charsets.
! 	(parser_alphabet): Charsets.
! 	(parser_alphabet_use): Charsets.
! 	(parser_display_internal): Charsets.
! 	(get_literalN_value): Charsets.
! 	(tree_type_from_field_type): Charsets.
! 	(program_end_stuff): Charsets.
! 	(walk_initialization): Charsets.
! 	(parser_xml_parse): Charsets.
! 	(initialize_the_data): Charsets.
! 	(establish_using): Charsets.
! 	(parser_setop): Charsets.
! 	(parser_set_conditional88): Charsets.
! 	(parser_file_add): Charsets.
! 	(get_the_filename): Eliminate function.
! 	(parser_file_open): Charsets.
! 	(parser_file_delete_file): Charsets.
! 	(parser_file_start): Charsets.
! 	(parser_module_name): Charsets.
! 	(parser_intrinsic_find_string): New function.
! 	(parser_intrinsic_numval_c): Charsets.
! 	(parser_intrinsic_convert): New function.
! 	(parser_intrinsic_call_1): Charsets.
! 	(create_and_call): Charsets.
! 	(mh_identical): Charsets.
! 	(mh_source_is_literalN): Charsets.
! 	(float_type_of): Charsets.
! 	(mh_dest_is_float): Charsets.
! 	(mh_numeric_display): Charsets.
! 	(mh_little_endian): Charsets.
! 	(mh_source_is_group): Charsets.
! 	(mh_source_is_literalA): Charsets.
! 	(move_helper): Charsets.
! 	(binary_initial): Eliminate function.
! 	(digits_from_int128): Eliminate function.
! 	(digits_from_float128): Eliminate function.
! 	(initial_from_initial):  Eliminate function.
! 	(convert_data_initial): New function.
! 	(actually_create_the_static_field): Charsets.
! 	(psa_new_var_decl): Charsets.
! 	(psa_FldLiteralA): Charsets.
! 	(parser_local_add): Charsets.
! 	(parser_symbol_add): Charsets.
! 	* genapi.h (parser_intrinsic_convert): New function.
! 	(parser_intrinsic_find_string): New function.
! 	* genmath.cc (arithmetic_operation): Charsets.
! 	(largest_binary_term): Charsets.
! 	(fast_add): Charsets.
! 	(fast_subtract): Charsets.
! 	(fast_multiply): Charsets.
! 	(fast_divide): Charsets.
! 	(parser_subtract): Fix subtract float from float.
! 	* genutil.cc (get_any_capacity): Charsets.
! 	(get_and_check_refstart_and_reflen): Charsets.
! 	(get_data_offset): Charsets.
! 	(get_binary_value): Charsets.
! 	(tree_type_from_field): Charsets.
! 	(copy_little_endian_into_place): Charsets.
! 	(get_literal_string): Charsets.
! 	(refer_is_clean): Charsets.
! 	(refer_fill_depends): Charsets.
! 	(refer_size_source): Comment.
! 	* lang-specs.h: Charsets.
! 	* lang.opt: Charsets.
! 	* lexio.cc (parse_copy_directive): Diagnostics.
! 	* messages.cc (cbl_diagnostic_kind): Diagnostics.
! 	(cobol_warning_suppress): Diagnostics.
! 	* parse.y: Many changes for charsets and diagnostics.
! 	* parse_ante.h (MAXLENGTH_FORMATTED_DATE): Charsets.
! 	(MAXLENGTH_FORMATTED_TIME): Charsets.
! 	(MAXLENGTH_CALENDAR_DATE): Charsets.
! 	(MAXLENGTH_FORMATTED_DATETIME): Charsets.
! 	(consistent_encoding_check): Charsets.
! 	(enum data_clause_t): Charsets.
! 	(new_alphanumeric): Charsets.
! 	(name_of): Charsets.
! 	(class eval_subject_t): Charsets.
! 	(struct domain_t): Charsets.
! 	(struct file_list_t): Charsets.
! 	(current_encoding): Charsets.
! 	(new_tempnumeric): Charsets.
! 	(is_integer_literal): Charsets.
! 	(new_literal): Charsets.
! 	(new_constant): Charsets.
! 	(conditional_set): Charsets.
! 	(field_find): Charsets.
! 	(valid_redefine): Charsets.
! 	(field_value_all): Charsets.
! 	(parent_has_picture): Charsets.
! 	(parent_has_value): Charsets.
! 	(blank_pad_initial): Charsets.
! 	(blankit): Charsets.
! 	(cbl_field_t::blank_initial): Charsets.
! 	(value_encoding_check): Charsets.
! 	(cbl_field_t::set_initial): Charsets.
! 	(field_alloc): Charsets.
! 	(parser_move_carefully): Charsets.
! 	(data_division_ready): Charsets.
! 	(anybody_redefines): Charsets.
! 	(procedure_division_ready): Charsets.
! 	(file_section_parent_set): Charsets.
! 	(field_binary_usage): Charsets.
! 	(goodnight_gracie): Formatting.
! 	* scan.l: Charsets.
! 	* scan_ante.h (numstr_of): Charsets.
! 	(typed_name): Charsets.
! 	* show_parse.h: Charsets.
! 	* structs.cc (create_cblc_file_t): Charsets.
! 	* symbols.cc (symbol_table_extend): Charsets.
! 	(WARNING_FIELD): Diagnostics.
! 	(constq): Charsets.
! 	(elementize): Charsets.
! 	(field_size): Charsets.
! 	(cbl_field_t::set_attr): Eliminate run-time component.
! 	(cbl_field_t::clear_attr): Eliminate run-time component.
! 	(field_memsize): Charsets.
! 	(cbl_encoding_str): Charsets.
! 	(symbols_dump): Charsets.
! 	(is_variable_length): Formatting.
! 	(field_str): Charsets.
! 	(extend_66_capacity): Charsets.
! 	(operator<<): Charsets.
! 	(symbols_update): Charsets.
! 	(symbol_field_parent_set): Charsets.
! 	(symbol_table_init): Charsets.
! 	(numeric_group_attrs): Charsets.
! 	(symbol_field_add): Charsets.
! 	(symbol_field_alias): Charsets.
! 	(fd_record_size_cmp): Charsets.
! 	(symbol_file_record_sizes): Charsets.
! 	(cbl_alphabet_t::reencode): Charsets.
! 	(symbol_temporary_location): Charsets.
! 	(new_literal_2): Charsets.
! 	(new_alphanumeric): Charsets.
! 	(standard_internal): Charsets.
! 	(cbl_field_t::codeset_t::stride): Charsets.
! 	(cobol_alpha_encoding): Charsets.
! 	(cobol_national_encoding): Charsets.
! 	(new_temporary): Charsets.
! 	(new_literal_float): Charsets.
! 	(cbl_field_t::is_ascii): Charsets.
! 	(cbl_field_t::internalize): Eliminate function.
! 	(cbl_field_t::source_code_check): Charsets.
! 	(iconv_cd): Charsets.
! 	(cbl_field_t::encode): New function for charsets.
! 	(cbl_field_t::set_capacity): Charsets.
! 	(cbl_field_t::add_capacity): Charsets.
! 	(cbl_field_t::char_capacity): Charsets.
! 	(symbol_label_section_exists): Charsets.
! 	(size): Charsets.
! 	(validate_numeric_edited): Charsets.
! 	* symbols.h (cobol_alpha_encoding): Charsets.
! 	(cobol_national_encoding): Charsets.
! 	(consistent_encoding_check): Charsets.
! 	(class cbl_domain_elem_t): Charsets.
! 	(struct cbl_domain_t): Charsets.
! 	(struct cbl_field_data_t): Charsets.
! 	(class cbl_field_data_t): Charsets.
! 	(struct cbl_subtable_t): Charsets.
! 	(struct cbl_field_t): Charsets.
! 	(new_literal_float): Charsets.
! 	(new_temporary): Charsets.
! 	(new_literal_2): Charsets.
! 	(symbol_temporary_location): Charsets.
! 	(class temporaries_t): Charsets.
! 	(struct symbol_elem_t): Charsets.
! 	(symbol_elem_of): Charsets.
! 	(symbol_unique_index): Charsets.
! 	(cbl_field_type_name): Charsets.
! 	(validate_numeric_edited): Charsets.
! 	* token_names.h: Charsets.
! 	* util.cc (cdf_literalize): Charsets.
! 	(cbl_field_type_name): Charsets.
! 	(determine_intermediate_type): Charsets.
! 	(is_alpha_edited): Charsets.
! 	(cbl_field_data_t::is_alpha_edited): Charsets.
! 	(symbol_field_type_update): Charsets.
! 	(redefine_field): Charsets.
! 	(FIXED_WIDE_INT): Charsets.
! 	(dirty_to_binary): Charsets.
! 	(digits_from_int128): Charsets.
! 	(binary_initial): Charsets.
! 	(cbl_field_t::encode_numeric): Charsets.
! 	(FOR_JIM): Temporary conditional demonstration code.
! 	(parse_error_inc): Diagnostics.
! 	(parse_error_count): Diagnostics.
! 	(cbl_field_t::report_invalid_initial_value): Diagnostics.
! 	(valid_move): Diagnostics.
! 	(type_capacity): Charsets.
! 	(symbol_unique_index): New function.
! 	(cbl_unimplementedw): Formatting.
! 
! 2025-12-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lexio.cc (parse_replace_pairs): Fix comment typo, statment
! 	-> statement.
! 	(cdftext::free_form_reference_format): Likewise.
! 
! 2025-12-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* util.cc (class temp_loc_t): Fix comment typo, paramters
! 	-> parameters.
! 	* lexio.cc (valid_sequence_area): Fix comment typo, begining
! 	-> beginning.
! 
! 2025-12-03  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* lang.opt: Make sure all option descriptions are terminated with
! 	a dot.
! 	(preprocess): Capitalize first letter of option description.
! 
! 2025-12-01  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	PR cobol/119329
! 	PR cobol/119331
! 	PR cobol/120786
! 	* Make-lang.in: Add cobol/messages.o to cobol1 sources.
! 	* cbldiag.h (yywarn): Remove function.
! 	(struct cbl_loc_t): Introduce new location type independent of Bison.
! 	(enum cbl_diag_id_t): Enumerate diagnostic messages.
! 	(cbl_message): New function.
! 	(dialect_ok): Test for dialect, emit standard message.
! 	(dialect_not_ok): Emit standard message if syntax excluded by dialect.
! 	(dialect_error): Remove function.
! 	(cbl_unimplementedw): Use cbl_diag_id_t.
! 	(cbl_unimplemented): Whitespace.
! 	* cdf.y: Update token values.
! 	* cobol1.cc (enable_exceptions): Use cbl_message.
! 	(cobol_warning): Declare function.
! 	(cobol_langhook_handle_option): Add 44 new warning options.
! 	(cobol_langhook_type_for_mode): Remove function.
! 	* except.cc (cbl_enabled_exception_t::dump): Remove function.
! 	* exceptg.h (class exception_turn_t): Use cbl_diag_id_t.
! 	* gcobol.1: Document dialect syntax and new warning options.
! 	* genapi.cc (parser_label_label): Remove unused warning.
! 	* gengen.cc (gg_find_field_in_struct): Use cbl_internal_error.
! 	(gg_printf): Same.
! 	(gg_fprintf): Same.
! 	(gg_define_function): Same.
! 	(gg_get_function_decl): Same.
! 	(gg_call_expr): Same.
! 	(gg_call): Same.
! 	* lang-specs.h: Add warning options.
! 	* lang.opt: Add ISO dialect and options.
! 	* lexio.cc (parse_replacing_term): Use cbl_message.
! 	(parse_replacing_pair): Same.
! 	(preprocess_filter_add): Same.
! 	(cdftext::echo_input): Same.
! 	(cdftext::lex_open): Same.
! 	(cdftext::open_input): Same.
! 	* messages.cc: New file implements cbl_message.
! 	* parse.y: Use cbl_message.
! 	* parse_ante.h (dialect_proscribed): Remove function.
! 	(parser_move_carefully): Use dialect_ok.
! 	(goodnight_gracie): Convert warning to debug message.
! 	* scan.l: Use dialect_ok.
! 	* scan_ante.h (scanner_parsing): Use cbl_diag_id_t.
! 	(scanner_parsing_toggle): Same.
! 	(scanner_parsing_pop): Same.
! 	(verify_ws): Same.
! 	(level_of): Same.
! 	(typed_name): Same.
! 	(integer_of): Same.
! 	* scan_post.h (datetime_format_of): Use cbl_internal_error.
! 	(prelex): Emit only debug messages.
! 	* show_parse.h: Use cbl_internal_error.
! 	* symbols.cc (symbols_update): Remove dialect test because parser's problem.
! 	(cbl_field_t::internalize): Use cbl_message.
! 	* symbols.h (enum cbl_dialect_t): Add ISO to cbl_dialect_t.
! 	(cbl_dialect_str): Recognize ISO dialect.
! 	(dialect_has): New function.
! 	(cbl_diagnostic_kind): New function.
! 	(cbl_dialect_kind): New function.
! 	(struct cbl_alphabet_t): Emit only debug message.
! 	* token_names.h: Regenerate.
! 	* util.cc (gb4): Emit only debug message.
! 	(current_token_location): Add overload to set token_location.
! 	(yywarn): Remove function.
! 	(cobol_fileline_set): Use cbl_message.
! 	(cobol_parse_files): Same.
! 	(cbl_message): New diagnostic message function uses cbl_diag_id_t.
! 	(cbl_diagnostic_kind): New function.
! 	(cbl_diagnostic_option): New function.
! 	(cbl_unimplementedw): Use cbl_diag_id_t.
! 	(dialect_error): Remove function.
! 	* util.h (cbl_message): Remove obsolete prototype for cbl_message.
! 
! 2025-11-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
! 
! 	* lang.opt.urls: Regenerate.
! 
! 2025-11-17  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	PR cobol/122702
! 	* Make-lang.in: Move stored-char-length.cbl to libgcobol.
! 
! 2025-11-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* symbols.cc (symbol_table_init): Avoid arithmetics or
! 	bitwise operations between enumerators from different enums.
! 
! 2025-11-15  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR cobol/122691
! 	* lexio.cc (parse_replace_pairs): Replace parsed.stmt.p with
! 	parsed.stmt.size() ? parsed.stmt.p : "" in the last argument to
! 	dbgmsg.
! 
! 2025-11-13  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	* cdf.y: Install literals in symbol table.
! 	* genapi.cc (parser_alphabet): Use std::string for currency.
! 	(initialize_the_data): Rely on constructor.
! 	(parser_file_add): Better #pragma message.
! 	(parser_exception_file): Return early if not generating code.
! 	* parse.y: Allow library programs to act as functions.
! 	* parse_ante.h (dialect_proscribed): Standardize message.
! 	(intrinsic_call_2): Correct s/fund/func/ misspelling.
! 	* scan.l: Comment.
! 	* symbols.cc (symbols_update): Add unreachable assertion.
! 	(symbol_field_parent_set): Reduce error to debug message.
! 	(cdf_literalize): Declare.
! 	(symbol_table_init): Insert CDF constants as literals.
! 	* symbols.h (cbl_dialect_str): Provide string values for enum.
! 	(is_working_storage): Remove function.
! 	(struct cbl_field_data_t): Add manhandle_initial for Numeric Edited.
! 	(struct cbl_field_t): Initialize name to zeros.
! 	(struct cbl_section_t): Delete unused attr() function.
! 	(symbol_unique_index): Declare.
! 	* token_names.h: Regenerate.
! 	* util.cc (cdf_literalize): Construct a cbl_field_t from a CDF literal.
! 	(symbol_unique_index): Supply "globally" unique number for a program.
! 
! 2025-11-10  Sandra Loosemore  <sloosemore@baylibre.com>
! 
! 	PR other/122243
! 	* lang.opt.urls: Regenerated.
! 
! 2025-11-06  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
! 
! 	* Make-lang.in: Repair documentation generation.
! 	* cdf.y: Changes to tokens.
! 	* cobol1.cc (cobol_langhook_handle_option): Add comment.
! 	* genapi.cc (function_pointer_from_name): Use data.original() for
! 	function name.
! 	(parser_initialize_programs): Likewise.
! 	(cobol_compare): Make sure encodings of comparands are the same.
! 	(move_tree): Change name of DEFAULT_SOURCE_ENCODING macro.
! 	(parser_enter_program): Typo.
! 	(psa_FldLiteralN): Break out dirty_to_binary() support routine.
! 	(dirty_to_binary): Likewise.
! 	(parser_alphabet): Rename 'alphabet' to 'collation_sequence'.
! 	(parser_allocate): Change wsclear() to be uint32_t instead of char.
! 	(parser_label_label): Formatting.
! 	(parser_label_goto): Likewise.
! 	(get_the_filename): Breakout get_the_filename(), which handles
! 	encoding.
! 	(parser_file_open): Likewise.
! 	(set_up_delete_file_label): Implement DELETE FILE (Format 2).
! 	(parser_file_delete_file): Likewise.
! 	(parser_file_delete_on_exception): Likewise.
! 	(parser_file_delete_not_exception): Likewise.
! 	(parser_file_delete_end): Likewise.
! 	(parser_call): Use data.original().
! 	(parser_entry): Use data.original().
! 	(mh_source_is_literalN): Convert from
! 	sourceref.field->codeset.encoding.
! 	(binary_initial_from_float128): Change to "binary_initial".
! 	(binary_initial): Calculate in FIXED_WIDE_INT(128) instead of
! 	REAL_VALUE_TYPE.
! 	(digits_from_int128): New routine uses binary_initial.
! 	(digits_from_float128): Removed.  Kept as comment for reference.
! 	(initial_from_initial): Use binary_initial.
! 	(actually_create_the_static_field): Use correct encoding.
! 	(parser_symbol_add): Likewise.
! 	* genapi.h (parser_file_delete_file): Implement FILE DELETE.
! 	(parser_file_delete_on_exception): Implement FILE DELETE.
! 	(parser_file_delete_not_exception): Implement FILE DELETE.
! 	(parser_file_delete_end): Implement FILE DELETE.
! 	* genmath.cc: Include charmaps.h.
! 	* genutil.cc (get_literal_string):  Change name of
! 	DEFAULT_SOURCE_ENCODING macro.
! 	* parse.y: Token changes; numerous changes in support of encoding;
! 	support for DELETE FILE.
! 	* parse_ante.h (name_of): Use data.original().
! 	(class prog_descr_t): Support of locales.
! 	(current_options): Formatting.
! 	(current_encoding):  Formatting.
! 	(current_program_index): Formatting.
! 	(current_section): Formatting.
! 	(current_paragraph): Formatting.
! 	(is_integer_literal): Use correct encoding.
! 	(value_encoding_check): Handle encoding changes.
! 	(alphabet_add): Likewise.
! 	(data_division_ready): Likewise.
! 	* scan.l: Use data.original().
! 	* show_parse.h: Use correct encoding.
! 	* symbols.cc (elementize): Likewise.
! 	(symbol_elem_cmp): Handle locale.
! 	(struct symbol_elem_t): Likewise.
! 	(symbol_locale): Likewise.
! 	(field_str): Change DEFAULT_SOURCE_ENCODING macro name.
! 	(symbols_alphabet_set): Formatting.
! 	(symbols_update): Modify consistency checks.
! 	(symbol_locale_add): Locale support.
! 	(cbl_locale_t::cbl_locale_t): Locale support.
! 	(cbl_alphabet_t::cbl_alphabet_t): New structure.
! 	(cbl_alphabet_t::reencode): Formatting.
! 	(cbl_alphabet_t::assign): Change name of collation_sequence.
! 	(cbl_alphabet_t::also): Likewise.
! 	(new_literal_add): Anticipate the need for four-byte characters.
! 	(guess_encoding): Eliminate.
! 	(cbl_field_t::internalize): Refine conversion of data.initial to
! 	specified encoding.
! 	* symbols.h (enum symbol_type_t): Add SymLocale.
! 	(struct cbl_field_data_t): Incorporate data.orig.
! 	(struct cbl_field_t): Likewise.
! 	(struct cbl_delete_file_t): New structure.
! 	(struct cbl_label_t): Incorporate cbl_delete_file_t.
! 	(struct cbl_locale_t): Support for locale.
! 	(hex_decode): Comment.
! 	(struct cbl_alphabet_t): Incorporate locale; change variable name
! 	to collation_sequence.
! 	(struct symbol_elem_t): Incorporate locale.
! 	(cbl_locale_of): Likewise.
! 	(cbl_alphabet_of): Likewise.
! 	(symbol_locale_add): Likewise.
! 	(wsclear): Type is now uint32_t instead of char.
! 	* util.cc (symbol_type_str):  Incorporate locale.
! 	(cbl_field_t::report_invalid_initial_value): Change test so that
! 	pure PIC A() variables are limited to [a-zA-Z] and space.
! 	(valid_move): Use DEFAULT_SOURCE_ENCODING macro.
! 	(cobol_filename): Formatting.
! 
! 2025-10-26  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* Make-lang.in ($(srcdir)/cobol/token_names.h): Silence recipe.
! 
! 2025-10-23  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (parser_alphabet): Alphabet encoding.
! 	(parser_alphabet_use): Likewise.
! 	(parser_xml_parse): Use correct debugging macro; encoding.
! 	(parser_xml_on_exception): Likewise.
! 	(parser_xml_not_exception): Likewise.
! 	(parser_xml_end): Likewise.
! 	(initialize_the_data): Encoding.
! 	(parser_label_label): Debugging macros.
! 	(parser_label_goto): Likewise.
! 	(parser_file_add): Encoding.
! 	(parser_intrinsic_call_1): Special handling for __gg__char.
! 	(parser_intrinsic_call_2): Formatting.
! 	* parse.y: Response from FUNCTION ORD is flagged "unsigned".
! 	* symbols.cc (cbl_alphabet_t::reencode): Establish
! 	low_char & high_char.
! 	* symbols.h (struct cbl_alphabet_t): Likewise.
! 
! 2025-10-23  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
! 
! 	* Make-lang.in: Incorporate new token_names.h file.
! 	* cdf.y: Modify tokens.
! 	* gcobol.1: Document XML PARSE statement
! 	* genapi.cc (parser_enter_program): Verify that every goto has a
! 	matching label.
! 	(parser_end_program): Likewise.
! 	(parser_alphabet): Refine handling codeset encodings.
! 	(parser_alphabet_use): Likewise.
! 	(label_fetch): Moved from later in the source code.
! 	(parser_xml_parse): New routine for XML PARSE.
! 	(parser_xml_on_exception): Likewise.
! 	(parser_xml_not_exception): Likewise.
! 	(parser_xml_end): Likewise.
! 	(parser_label_label): Verify goto/label matching.
! 	(parser_label_goto): Likewise.
! 	(parser_entry): Minor change to SHOW_PARSE report.
! 	* genapi.h (parser_alphabet): Set parameter to const.
! 	(parser_xml_parse): Declare new function.
! 	(parser_xml_on_exception): Likewise.
! 	(parser_xml_not_exception): Likewise.
! 	(parser_xml_end): Likewise.
! 	(parser_label_addr): Likewise.
! 	* parse.y: label_pair_t structure; locale processing; new token
! 	processing for alphabets and XML PARSE.
! 	* parse_ante.h (name_of): Return field->name when initial is NULL.
! 	(new_tempnumeric): Make signable_e optional.
! 	(ast_save_locale): New function.
! 	(data_division_ready): Warning for "no alphabet".
! 	* scan.l: Repair interpretation of BINARY, COMP, COMP-4, and
! 	COMP-5.
! 	* scan_ante.h (struct bint_t): Likewise.
! 	* scan_post.h (current_tokens_t::tokenset_t::tokenset_t):
! 	Include token_names.h.
! 	* symbols.cc (symbols_alphabet_set): Revert to prior alphabet
! 	determination.
! 	(symbol_table_init): New XML special registers.
! 	(new_temporary): Make signable_e controllable, not fixed.
! 	* symbols.h (__gg__encoding_iconv_valid): New declaration.
! 	(enum cbl_label_type_t): New LblXml label type.
! 	(struct cbl_xml_parse_t):
! 	(struct cbl_label_t): Implement XML PARSE.
! 	(new_temporary): Incorporate boolean for signable_e.
! 	(symbol_elem_of): Change label field type handling.
! 	(cbl_section_of): Likewise.
! 	(cbl_field_of): Likewise.
! 	(cbl_label_of): Likewise.
! 	(cbl_special_name_of):  Likewise.
! 	(cbl_alphabet_of):  Likewise.
! 	(cbl_file_of):  Likewise.
! 	* token_names.h: New file.
! 	* util.cc (gcc_location_set_impl): Improve location_t calculations
! 	when entering and leaving COPYBOOKs.
! 
! 2025-10-19  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (move_tree): Formatting.
! 	(parser_enter_file): Incorporate global __gg__entry_label.
! 	(enter_program_common): Remove calls to alphabet overrides.
! 	(parser_alphabet): Change cbl_alphabet_e handling.
! 	(parser_alphabet_use): Likewise.
! 	(initialize_the_data): Likewise.
! 	(establish_using): Process passed parameters in a subroutine.
! 	(parser_division): Remove in-line parameter processing;
! 	call establish_using() instead. Check for __gg__entry_label.
! 	(parser_file_add): Temporary workaround for charset encoding.
! 	(parser_file_open): Likewise.
! 	(create_and_call): Push/pop program state around call to external.
! 	(parser_entry): Implement new ENTRY statement feature.
! 	(mh_source_is_literalN): Formatting.
! 	* genapi.h (parser_entry): New ENTRY statement.
! 	* gengen.cc (gg_create_goto_pair): Formatting.
! 	(gg_goto_label_decl): Remove.
! 	* gengen.h (gg_goto_label_decl): Remove.
! 	* genutil.cc (internal_codeset_is_ebcdic): Remove.
! 	* genutil.h (internal_codeset_is_ebcdic): Remove.
! 	* symbols.cc (symbols_alphabet_set): Restrict alphabet scan to
! 	program.
! 	* symbols.h (is_elementary): Use defined constants instead of
! 	explicit 'A'and 'N'
! 
! 2025-10-10  Robert Dubner  <rdubner@symas.com>
! 
! 	* cdf.y: In support of the described changes.
! 	* gcobol.1: Likewise.
! 	* genapi.cc (level_88_helper): Likewise.
! 	(get_level_88_domain): Likewise.
! 	(get_class_condition_string): Likewise.
! 	(initialize_variable_internal): Likewise.
! 	(gg_default_qualification): Likewise.
! 	(cobol_compare): Likewise.
! 	(move_tree): Likewise.
! 	(move_tree_to_field): Likewise.
! 	(psa_FldBlob): Likewise.
! 	(parser_accept_date_yymmdd): Likewise.
! 	(parser_accept_date_yyyymmdd): Likewise.
! 	(parser_accept_date_yyddd): Likewise.
! 	(parser_accept_date_yyyyddd): Likewise.
! 	(parser_accept_date_dow): Likewise.
! 	(parser_accept_date_hhmmssff): Likewise.
! 	(parser_alphabet): Likewise.
! 	(parser_alphabet_use): Likewise.
! 	(parser_display_internal): Likewise.
! 	(parser_display): Likewise.
! 	(is_valuable): Likewise.
! 	(parser_division): Likewise.
! 	(parser_relop_long): Likewise.
! 	(parser_setop): Likewise.
! 	(parser_set_conditional88): Likewise.
! 	(parser_file_add): Likewise.
! 	(parser_file_open): Likewise.
! 	(create_and_call): Likewise.
! 	(parser_call): Likewise.
! 	(mh_identical): Likewise.
! 	(mh_source_is_literalN): Likewise.
! 	(picky_memcpy): Likewise.
! 	(mh_numeric_display): Likewise.
! 	(mh_source_is_group): Likewise.
! 	(mh_source_is_literalA): Likewise.
! 	(move_helper): Likewise.
! 	(initial_from_initial): Likewise.
! 	(actually_create_the_static_field): Likewise.
! 	(psa_FldLiteralA): Likewise.
! 	(parser_symbol_add): Likewise.
! 	* genmath.cc (arithmetic_operation): Likewise.
! 	* genutil.cc (get_binary_value): Likewise.
! 	(get_literal_string): Likewise.
! 	* genutil.h (EBCDIC_MINUS): Likewise.
! 	(EBCDIC_PLUS): Likewise.
! 	(EBCDIC_ZERO): Likewise.
! 	(EBCDIC_NINE): Likewise.
! 	* parse.y: Likewise.
! 	* parse_ante.h (name_of): Likewise.
! 	(class prog_descr_t): Likewise.
! 	(current_encoding): Likewise.
! 	(needs_picture): Likewise.
! 	(is_callable): Likewise.
! 	(field_attr_str): Likewise.
! 	(value_encoding_check): Likewise.
! 	(field_alloc): Likewise.
! 	(file_add): Likewise.
! 	* scan.l: Likewise.
! 	* structs.cc (create_cblc_field_t): Likewise.
! 	* symbols.cc (elementize): Likewise.
! 	(cbl_field_attr_str): Likewise.
! 	(is_variable_length): Likewise.
! 	(field_str): Likewise.
! 	(extend_66_capacity): Likewise.
! 	(assert): Likewise.
! 	(symbols_update): Likewise.
! 	(symbol_field_parent_set): Likewise.
! 	(add_token): Likewise.
! 	(symbol_table_init): Likewise.
! 	(symbol_field_add): Likewise.
! 	(symbol_field_forward_add): Likewise.
! 	(symbol_field_same_as): Likewise.
! 	(cbl_alphabet_t::reencode): Likewise.
! 	(new_temporary_impl): Likewise.
! 	(parser_symbol_add2): Likewise.
! 	(new_literal_add): Likewise.
! 	(temporaries_t::literal): Likewise.
! 	(new_literal): Likewise.
! 	(standard_internal): Likewise.
! 	(new_temporary): Likewise.
! 	(cbl_field_t::holds_ascii): Likewise.
! 	(cbl_field_t::is_ascii): Likewise.
! 	(cbl_field_t::internalize): Likewise.
! 	(symbol_label_add): Likewise.
! 	(symbol_label_section_exists): Likewise.
! 	(cbl_occurs_t::subscript_ok): Likewise.
! 	(cbl_file_t::deforward): Likewise.
! 	(has_value): Likewise.
! 	* symbols.h (is_numeric): Likewise.
! 	(__gg__encoding_iconv_name): Likewise.
! 	(current_encoding): Likewise.
! 	(struct cbl_field_t): Likewise.
! 	(new_literal): Likewise.
! 	(class temporaries_t): Likewise.
! 	(struct function_descr_t): Likewise.
! 	(hex_decode): Likewise.
! 	(struct cbl_alphabet_t): Likewise.
! 	(struct cbl_file_t): Likewise.
! 	* symfind.cc (field_structure): Likewise.
! 	(erase_symbol_map_fwds): Likewise.
! 	(symbol_find): Likewise.
! 	* token_names.h: Likewise.
! 	* util.cc (cbl_field_type_str): Likewise.
! 	(is_elementary): Likewise.
! 	(symbol_field_type_update): Likewise.
! 	(cbl_field_t::report_invalid_initial_value): Likewise.
! 	(valid_move): Likewise.
! 	(valid_picture): Likewise.
! 	(type_capacity): Likewise.
! 	(gcc_location_set_impl): Likewise.
! 	(cbl_unimplementedw): Likewise.
! 
! 2025-09-05  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (trace1_init): Prepend two internal variables with
! 	underscore.
! 	(initialize_variable_internal): Use new register_e attribute.
! 	(psa_global): Use "__ggsr__" prefix to identify special registers
! 	(parser_symbol_add): Use new register_e attribute.
! 	* symbols.cc (cbl_field_attr_str): Likewise.
! 	(symbol_table_init): Likewise.
! 	(is_register_field): Eliminated in favor of (attr & register_e).
! 	* symbols.h (is_register_field): Likewise.
! 
! 2025-08-20  Robert Dubner  <rdubner@symas.com>
! 
! 	* genutil.cc (get_binary_value): Fix a comment.
! 	* parse.y: udf_args_valid(): Fix loc calculation.
! 	* symbols.cc (assert): extend_66_capacity(): Avoid assert(e < e2) in
! 	-O0 build until symbol_table expansion is fixed.
! 
! 2025-08-15  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.h (parser_call_exception_end): Remove obsolete comment.
! 	* structs.cc (create_cbl_enabled_exception_t):
! 	Remove cbl_enabled_exception_type_node;
! 	remove create_cbl_enabled_exception_t().
! 	(create_our_type_nodes): Likewise.
! 	* structs.h (GTY): Likewise.
! 
! 2025-08-13  Robert Dubner  <rdubner@symas.com>
! 
! 	* genutil.cc (get_binary_value): Use the new routine.
! 
! 2025-08-13  Robert Dubner  <rdubner@symas.com>
! 
! 	* genutil.cc (get_binary_value): Use the new routine.
! 
! 2025-08-12  Robert Dubner  <rdubner@symas.com>
! 
! 	* genapi.cc (compare_binary_binary): Formatting.
! 	(cobol_compare): Formatting.
! 	(mh_numeric_display): Rewrite "move ND to ND" algorithm.
! 	(initial_from_initial): Proper initialization of EBCDIC ND variables.
! 	* genmath.cc (fast_add): Delete comment.
! 	* genutil.cc (get_binary_value): Modify for updated EBCDIC.
! 
! 2025-08-07  Robert Dubner  <rdubner@symas.com>
! 
! 	* cbldiag.h (location_dump): Source code formatting.
! 	* parse.y: error_msg formatting.
! 	* scan.l: Remove UTF-8 character from regex pattern.
! 	* scan_ante.h (numstr_of): error_msg formatting.
! 	* show_parse.h (class ANALYZE): Suppress cppcheck error.
! 	* util.cc (cbl_field_t::report_invalid_initial_value):
! 	error_msg formatting.
! 
! 2025-08-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* parse.y (intrinsic): Use %td format specifier with no cast on
! 	argument instead of %ld with cast to long.
! 	* scan_ante.h (numstr_of): Likewise.
! 	* util.cc (cbl_field_t::report_invalid_initial_value): Likewise.
! 
! 2025-08-01  Robert Dubner  <rdubner@symas.com>
! 
! 	PR cobol/119324
! 	* cbldiag.h (location_dump): Inline suppression of knownConditionTrueFalse.
! 	* genapi.cc (parser_statement_begin): Combine two if() statements.
! 	* genutil.cc (get_binary_value): File-level suppression of duplicateBreak.
! 	* symbols.cc (symbol_elem_cmp): File-level suppression of duplicateBreak.
! 
! 2025-07-31  Robert Dubner  <rdubner@symas.com>
! 
! 	PR cobol/120244
! 	* genapi.cc (get_level_88_domain): Increase array size for final byte.
! 	(psa_FldLiteralA): Use correct length in build_string_literal call.
! 	* scan.l: Use a loop instead of std:transform to avoid EOF overrun.
! 	* scan_ante.h (binary_integer_usage): Use a variable-length buffer.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* util.cc: Update for diagnostic_t becoming
! 	enum class diagnostics::kind.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* util.cc: Update for renaming of diagnostic_option_id to
! 	diagnostics::option_id.
! 
! 2025-07-25  David Malcolm  <dmalcolm@redhat.com>
! 
! 	* util.cc: Remove redundant #includes
! 
! 2025-07-24  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119231
  	* gcobolspec.cc: (lang_specific_driver): Pass OPT_static through.
  	Handle -static and -static-libgcobol properly.
  
! 2025-07-23  Robert Dubner  <rdubner@symas.com>
  
  	* genapi.cc (leave_procedure): Adjust location_t for PERFORM.
  	(parser_perform_times): Likewise.
***************
*** 24,34 ****
  	(perform_outofline_testafter_varying): Likewise.
  	(perform_outofline_before_varying): Likewise.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-07-21  Robert Dubner  <rdubner@symas.com>
! 		    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120402
  	* Make-lang.in: Elminate commented-out scripting.
--- 1143,1150 ----
  	(perform_outofline_testafter_varying): Likewise.
  	(perform_outofline_before_varying): Likewise.
  
! 2025-07-21  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120402
  	* Make-lang.in: Elminate commented-out scripting.
***************
*** 162,171 ****
  	(warn_msg): Improved linemap handling.
  	* util.h (cobol_lineno): Improved linemap handling.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
  
! 	Backported from master:
! 	2025-07-14  Robert Dubner  <rdubner@symas.com>
  
  	* cobol1.cc (cobol_langhook_handle_option): Eliminate cppcheck warnings.
  	* dts.h: Likewise.
--- 1278,1291 ----
  	(warn_msg): Improved linemap handling.
  	* util.h (cobol_lineno): Improved linemap handling.
  
! 2025-07-15  Jakub Jelinek  <jakub@redhat.com>
! 	    Jason Merrill  <jason@redhat.com>
  
! 	PR c/44677
! 	* gcobolspec.cc (lang_specific_driver): Remove unused but set variable
! 	n_cobol_files.
! 
! 2025-07-14  Robert Dubner  <rdubner@symas.com>
  
  	* cobol1.cc (cobol_langhook_handle_option): Eliminate cppcheck warnings.
  	* dts.h: Likewise.
***************
*** 234,243 ****
  	(yyerror): Likewise.
  	(cbl_unimplemented_at): Likewise.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-07-13  Robert Dubner  <rdubner@symas.com>
  
  	* Make-lang.in: Eliminate the .cc.o override.
  	* genapi.cc (level_88_helper): Eliminate cppcheck warning.
--- 1354,1360 ----
  	(yyerror): Likewise.
  	(cbl_unimplemented_at): Likewise.
  
! 2025-07-13  Robert Dubner  <rdubner@symas.com>
  
  	* Make-lang.in: Eliminate the .cc.o override.
  	* genapi.cc (level_88_helper): Eliminate cppcheck warning.
***************
*** 307,316 ****
  	* util.cc (cbl_internal_error): Apply [[noreturn]] attribute.
  	* util.h (cbl_internal_error): Likewise.
  
! 2025-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	Backported from master:
! 	2025-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/120621
  	* lexio.cc (parse_replace_pairs): Cast mfile.lineno() to fmt_size_t.
--- 1424,1430 ----
  	* util.cc (cbl_internal_error): Apply [[noreturn]] attribute.
  	* util.h (cbl_internal_error): Likewise.
  
! 2025-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/120621
  	* lexio.cc (parse_replace_pairs): Cast mfile.lineno() to fmt_size_t.
***************
*** 319,328 ****
  	* util.cc (cbl_field_t::report_invalid_initial_value): Print
  	ptrdiff_t using %ld, cast arg to long.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-07-10  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120765
  	* cdf.y: Extend grammar for new CDF syntax, relocate dictionary.
--- 1433,1439 ----
  	* util.cc (cbl_field_t::report_invalid_initial_value): Print
  	ptrdiff_t using %ld, cast arg to long.
  
! 2025-07-10  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120765
  	* cdf.y: Extend grammar for new CDF syntax, relocate dictionary.
***************
*** 381,391 ****
  	(cdf_pop_source_format): Same.
  	(cdf_pop_enabled_exceptions): Same.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-07-09  Robert Dubner  <rdubner@symas.com>
! 		    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120765
  	PR cobol/119337
--- 1492,1499 ----
  	(cdf_pop_source_format): Same.
  	(cdf_pop_enabled_exceptions): Same.
  
! 2025-07-09  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120765
  	PR cobol/119337
***************
*** 462,485 ****
  	(error_msg_direct): New function.
  	* util.h (class source_format_t): New class.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-07-01  James K. Lowden  <jklowden@cobolworx.com>
  
  	* Make-lang.in: Use && instead of semicolon between commands.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-07-01  Robert Dubner  <rdubner@symas.com>
  
  	* parse.y: printf() of size_t is %zu, not %ld.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-06-30  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120772
  	PR cobol/120779
--- 1570,1584 ----
  	(error_msg_direct): New function.
  	* util.h (class source_format_t): New class.
  
! 2025-07-01  James K. Lowden  <jklowden@cobolworx.com>
  
  	* Make-lang.in: Use && instead of semicolon between commands.
  
! 2025-07-01  Robert Dubner  <rdubner@symas.com>
  
  	* parse.y: printf() of size_t is %zu, not %ld.
  
! 2025-06-30  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120772
  	PR cobol/120779
***************
*** 527,536 ****
  	(cobol_lineno_save): Remove declaration.
  	(cobol_lineno): Declare.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-06-29  Robert Dubner  <rdubner@symas.com>
  
  	* Make-lang.in: Incorporate gcobol.clean.
  	* except.cc (cbl_enabled_exceptions_t::dump): Update debug message.
--- 1626,1632 ----
  	(cobol_lineno_save): Remove declaration.
  	(cobol_lineno): Declare.
  
! 2025-06-29  Robert Dubner  <rdubner@symas.com>
  
  	* Make-lang.in: Incorporate gcobol.clean.
  	* except.cc (cbl_enabled_exceptions_t::dump): Update debug message.
***************
*** 598,607 ****
  	* parse.y: Format debugging message.
  	* parse_ante.h: Normalize function_decl use.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-06-20  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* genapi.cc (parser_compile_ecs): Cast argument to unsigned long.
--- 1694,1700 ----
  	* parse.y: Format debugging message.
  	* parse_ante.h: Normalize function_decl use.
  
! 2025-06-20  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* genapi.cc (parser_compile_ecs): Cast argument to unsigned long.
***************
*** 612,621 ****
  	* parse.y: hard-code values for old versions of Bison, and message format.
  	* scan_ante.h (wait_for_the_child): Cast pid_t to long.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-06-18  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* cbldiag.h (yyerror): Add diagnostic attributes.
--- 1705,1711 ----
  	* parse.y: hard-code values for old versions of Bison, and message format.
  	* scan_ante.h (wait_for_the_child): Cast pid_t to long.
  
! 2025-06-18  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* cbldiag.h (yyerror): Add diagnostic attributes.
***************
*** 715,724 ****
  	(cbl_err): Same.
  	(cbl_errx): Same.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-06-16  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* Make-lang.in: Use STRICT_WARN.
--- 1805,1811 ----
  	(cbl_err): Same.
  	(cbl_errx): Same.
  
! 2025-06-16  James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120621
  	* Make-lang.in: Use STRICT_WARN.
***************
*** 970,979 ****
  	(cobol_parse_files): Const pointer.
  	* util.h (as_voidp): Define convenient converter.
  
! 2025-07-29  James K. Lowden  <jklowden@cobolworx.com>
! 
! 	Backported from master:
! 	2025-06-10  James K. Lowden  <jklowden@cobolworx.com>
  
  	* Make-lang.in: cobol.clean does not remove libgcobol files.
  	* cdf.y: Suppress 1 cppcheck false positive.
--- 2057,2063 ----
  	(cobol_parse_files): Const pointer.
  	* util.h (as_voidp): Define convenient converter.
  
! 2025-06-10  James K. Lowden  <jklowden@cobolworx.com>
  
  	* Make-lang.in: cobol.clean does not remove libgcobol files.
  	* cdf.y: Suppress 1 cppcheck false positive.
***************
*** 982,992 ****
  	* gcobolspec.cc (append_arg): Const parameter.
  	* parse_ante.h (intrinsic_call_2): Avoid NULL dereference.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-06-06  Robert Dubner  <rdubner@symas.com>
! 		    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120328
  	PR cobol/119695
--- 2066,2073 ----
  	* gcobolspec.cc (append_arg): Const parameter.
  	* parse_ante.h (intrinsic_call_2): Avoid NULL dereference.
  
! 2025-06-06  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/120328
  	PR cobol/119695
***************
*** 1050,1059 ****
  	* util.h (gb4): New function.
  	* TODO: New file.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-06-05  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119975
  	* genapi.cc (parser_intrinsic_call_0): Use get_time_nanoseconds().
--- 2131,2137 ----
  	* util.h (gb4): New function.
  	* TODO: New file.
  
! 2025-06-05  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119975
  	* genapi.cc (parser_intrinsic_call_0): Use get_time_nanoseconds().
***************
*** 1066,1095 ****
  	(operator-): Likewise.
  	(parse_file): Likewise.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-06-02  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119975
  	* genapi.cc (parser_intrinsic_call_0): Use get_time_64() function.
  	* genutil.cc (get_time_64): Definition created.
  	* genutil.h (get_time_64): Declaration created.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-06-01  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119524
  	* gengen.cc (gg_printf): Use the new __gg__fprintf_stderr() function
  	instead of generating a call to fprintf().
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-05-20  Robert Dubner  <rdubner@symas.com>
! 		    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/119770
  	PR cobol/119772
--- 2144,2164 ----
  	(operator-): Likewise.
  	(parse_file): Likewise.
  
! 2025-06-02  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119975
  	* genapi.cc (parser_intrinsic_call_0): Use get_time_64() function.
  	* genutil.cc (get_time_64): Definition created.
  	* genutil.h (get_time_64): Declaration created.
  
! 2025-06-01  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119524
  	* gengen.cc (gg_printf): Use the new __gg__fprintf_stderr() function
  	instead of generating a call to fprintf().
  
! 2025-05-20  Robert Dubner  <rdubner@symas.com>
! 	    James K. Lowden  <jklowden@cobolworx.com>
  
  	PR cobol/119770
  	PR cobol/119772
***************
*** 1127,1143 ****
  	* symfind.cc (symbol_match2): Change declaration.
  	(symbol_match): Change declaration.
  
! 2025-07-29  Mark Wielaard  <mark@klomp.org>
! 
! 	Backported from master:
! 	2025-05-18  Mark Wielaard  <mark@klomp.org>
  
  	* lang.opt.urls: Regenerated.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-05-16  Robert Dubner  <rdubner@symas.com>
  
  	* cobol1.cc (cobol_langhook_handle_option): Eliminate OPT_M.
  	* except.cc (cbl_enabled_exception_t::dump): Formatting.
--- 2196,2206 ----
  	* symfind.cc (symbol_match2): Change declaration.
  	(symbol_match): Change declaration.
  
! 2025-05-18  Mark Wielaard  <mark@klomp.org>
  
  	* lang.opt.urls: Regenerated.
  
! 2025-05-16  Robert Dubner  <rdubner@symas.com>
  
  	* cobol1.cc (cobol_langhook_handle_option): Eliminate OPT_M.
  	* except.cc (cbl_enabled_exception_t::dump): Formatting.
***************
*** 1209,1218 ****
  	(parse_file): Likewise.
  	* util.h (cobol_set_pp_option): Likewise.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-05-10  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119337
  	* Make-lang.in: Change how $(FLEX) is invoked.
--- 2272,2278 ----
  	(parse_file): Likewise.
  	* util.h (cobol_set_pp_option): Likewise.
  
! 2025-05-10  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119337
  	* Make-lang.in: Change how $(FLEX) is invoked.
***************
*** 1265,1299 ****
  	* token_names.h: Change list of tokens.
  	* util.cc (iso_cobol_word): Change list of COBOL reserved words.
  
! 2025-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	Backported from master:
! 	2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* symbols.h (NAME_MAX): Define fallback.
  
! 2025-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	Backported from master:
! 	2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* dts.h (csub_match): Initialize rm_so, rm_eo fields explicitly.
  
! 2025-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
! 
! 	Backported from master:
! 	2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* cdf-copy.cc (GLOB_BRACE): Define fallback.
  	(GLOB_TILDE): Likewise.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-05-05  Robert Dubner  <rdubner@symas.com>
  
  	* cdf.y: Exceptions.
  	* except.cc (cbl_enabled_exception_t::dump): Likewise.
--- 2325,2347 ----
  	* token_names.h: Change list of tokens.
  	* util.cc (iso_cobol_word): Change list of COBOL reserved words.
  
! 2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* symbols.h (NAME_MAX): Define fallback.
  
! 2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* dts.h (csub_match): Initialize rm_so, rm_eo fields explicitly.
  
! 2025-05-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	PR cobol/119217
  	* cdf-copy.cc (GLOB_BRACE): Define fallback.
  	(GLOB_TILDE): Likewise.
  
! 2025-05-05  Robert Dubner  <rdubner@symas.com>
  
  	* cdf.y: Exceptions.
  	* except.cc (cbl_enabled_exception_t::dump): Likewise.
***************
*** 1426,1435 ****
  	(iso_cobol_word): Add list of ISO reserved words.
  	* util.h (ftoupper): Added.
  
! 2025-07-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR cobol/119364
  	* structs.h (cbl_enabled_exception_type_node): New variable
--- 2474,2480 ----
  	(iso_cobol_word): Add list of ISO reserved words.
  	* util.h (ftoupper): Added.
  
! 2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR cobol/119364
  	* structs.h (cbl_enabled_exception_type_node): New variable
***************
*** 1443,1452 ****
  	cbl_enabled_exception_type_node for target size and field offsets
  	and native_encode_expr to write each field into byte sequence.
  
! 2025-07-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	Backported from master:
! 	2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR cobol/119364
  	* util.cc (is_numeric_edited): Use HOST_SIZE_T_PRINT_UNSIGNED
--- 2488,2494 ----
  	cbl_enabled_exception_type_node for target size and field offsets
  	and native_encode_expr to write each field into byte sequence.
  
! 2025-05-02  Jakub Jelinek  <jakub@redhat.com>
  
  	PR cobol/119364
  	* util.cc (is_numeric_edited): Use HOST_SIZE_T_PRINT_UNSIGNED
***************
*** 1611,1620 ****
  	(cbl_perform_tgt_t::dump): Likewise.
  	(numeric_group_attrs): Change return type from size_t to uint64_t.
  
! 2025-07-29  Robert Dubner  <rdubner@symas.com>
! 
! 	Backported from master:
! 	2025-04-24  Robert Dubner  <rdubner@symas.com>
  
  	* genapi.cc: (initialize_variable_internal): Change TRACE1 formatting.
  	(create_and_call): Repair RETURN-CODE processing.
--- 2653,2659 ----
  	(cbl_perform_tgt_t::dump): Likewise.
  	(numeric_group_attrs): Change return type from size_t to uint64_t.
  
! 2025-04-24  Robert Dubner  <rdubner@symas.com>
  
  	* genapi.cc: (initialize_variable_internal): Change TRACE1 formatting.
  	(create_and_call): Repair RETURN-CODE processing.
***************
*** 1631,1640 ****
  	(refer_size_dest): Likewise.
  	(refer_offset_source): Likewise.
  
- 2025-04-25  Release Manager
- 
- 	* GCC 15.1.0 released.
- 
  2025-04-16  Bob Dubner  <rdubner@symas.com>
  
  	PR cobol/119759
--- 2670,2675 ----
***************
*** 2210,2218 ****
  	* gcobol.3: New file.
  	* help.gen: New file.
  	* udf/stored-char-length.cbl: New file.
- 
  
! 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
--- 3245,3252 ----
  	* gcobol.3: New file.
  	* help.gen: New file.
  	* udf/stored-char-length.cbl: New file.
  
! Copyright (C) 2025-2026 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-15.2.0/gcc/cobol/Make-lang.in gcc-16.1.0-RC-20260423/gcc/cobol/Make-lang.in
*** gcc-15.2.0/gcc/cobol/Make-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/Make-lang.in	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  # Top level -*- makefile -*- fragment for Cobol
! #   Copyright (C) 2021-2025 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
--- 1,5 ----
  # Top level -*- makefile -*- fragment for Cobol
! #   Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  # This file is part of GCC.
  
*************** cobol1_OBJS =    \
*** 71,76 ****
--- 71,77 ----
   cobol/genmath.o    \
   cobol/gengen.o     \
   cobol/lexio.o      \
+  cobol/messages.o   \
   cobol/parse.o      \
   cobol/scan.o       \
   cobol/structs.o    \
*************** cobol/scan.o: cobol/scan.cc			\
*** 225,230 ****
--- 226,232 ----
  	$(srcdir)/cobol/scan_post.h		\
  	$(srcdir)/cobol/symbols.h		\
  	$(srcdir)/cobol/util.h			\
+ 	$(srcdir)/cobol/token_names.h		\
  	$(srcdir)/hwint.h			\
  	$(srcdir)/system.h			\
  	$(srcdir)/../include/ansidecl.h		\
*************** cobol/scan.o: cobol/scan.cc			\
*** 241,246 ****
--- 243,257 ----
  	cobol/cdf.cc				\
  	cobol/parse.cc
  
+ # Update token names if the generator script is installed
+ # (by a developer) and there's been a change. 
+ $(srcdir)/cobol/token_names.h: cobol/parse.cc
+ 	@if [ -f $@.gen ]; then			\
+ 		$@.gen $(subst .cc,.h,$^)	\
+ 		| diff -u $@ -			\
+ 		| patch -t --set-time $@ ;	\
+ 	fi
+ 
  #
  # The src<foo> targets are executed if
  # ‘--enable-generated-files-in-srcdir’ was specified as a configure
*************** cobol.install-common: installdirs
*** 291,298 ****
  	      $(LN) $(GCOBC_INSTALL_NAME)$(exeext) $(GCOBC_TARGET_INSTALL_NAME)$(exeext) ); \
  	  fi; \
  	fi
- 	mkdir -p $(DESTDIR)$(datadir)/gcobol/udf
- 	$(INSTALL_DATA) $(srcdir)/cobol/udf/*   $(DESTDIR)$(datadir)/gcobol/udf/
  
  cobol.install-man: installdirs
  	$(INSTALL_DATA) $(srcdir)/cobol/gcobol.1 $(DESTDIR)$(man1dir)/$(GCOBOL_INSTALL_NAME)$(man1ext)
--- 302,307 ----
*************** cobol.srcpdf: gcobol.pdf gcobol-io.pdf
*** 320,326 ****
  	ln $^ $(srcdir)/cobol/
  
  gcobol.pdf: $(srcdir)/cobol/gcobol.1
! 	groff -mdoc -T pdf  $^ > $@~
  	@mv $@~ $@
  gcobol-io.pdf: $(srcdir)/cobol/gcobol.3
  	groff -mdoc -T pdf  $^ > $@~
--- 329,335 ----
  	ln $^ $(srcdir)/cobol/
  
  gcobol.pdf: $(srcdir)/cobol/gcobol.1
! 	groff -mdoc -t -T pdf  $^ > $@~
  	@mv $@~ $@
  gcobol-io.pdf: $(srcdir)/cobol/gcobol.3
  	groff -mdoc -T pdf  $^ > $@~
diff -Nrcpad gcc-15.2.0/gcc/cobol/cbldiag.h gcc-16.1.0-RC-20260423/gcc/cobol/cbldiag.h
*** gcc-15.2.0/gcc/cobol/cbldiag.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cbldiag.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
*************** const char * cobol_filename();
*** 46,52 ****
   *  diagnostic framework and use text that can be localized.
   */
  void yyerror( const char fmt[], ... ) ATTRIBUTE_GCOBOL_DIAG(1, 2);
- bool yywarn( const char fmt[], ... ) ATTRIBUTE_GCOBOL_DIAG(1, 2);
  
  /* Location type.  Borrowed from parse.h as generated by Bison. */
  #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
--- 46,51 ----
*************** struct YDFLTYPE
*** 78,83 ****
--- 77,195 ----
  
  #endif
  
+ struct cbl_loc_t {
+   int first_line;
+   int first_column;
+   int last_line;
+   int last_column;
+ 
+   cbl_loc_t() 
+     : first_line(0)
+     , first_column(0)
+     , last_line(0)
+     , last_column(0)
+   {}
+   cbl_loc_t( const YYLTYPE& loc ) 
+     : first_line(loc.first_line)
+     , first_column(loc.first_column)
+     , last_line(loc.last_line)
+     , last_column(loc.last_column)
+   {}
+ 
+   operator YYLTYPE() const {  //  cppcheck-suppress syntaxError
+     return { first_line, first_column, last_line, last_column };
+   } 
+ };
+ 
+ /*
+  * Naming Convention: Names end with a letter that indicates 
+  * their kind:
+  * F  fatal, "fatal error: "
+  * I  ice, "internal compiler error: "
+  * E  error, "error: "
+  * S  sorry, "sorry, unimplemented: "
+  * W  warning, "warning: "
+  * A  anachronism, "anachronism: "
+  * N  note, "note: "
+  * D  debug, "debug: "
+  */
+ enum cbl_diag_id_t : uint64_t {
+   CdfNotFoundW, 
+   CdfParameterW,
+   
+   EcUnknownW, 
+ 
+   LexIncludeE,
+   LexIncludeOkN,
+   LexIndicatorE,
+   LexInputN,
+   LexLineE,
+   LexPreprocessE,
+   LexReplaceE,
+   LexSeparatorE,
+ 
+   IbmEjectE,
+   IbmEqualAssignE,
+   IbmLengthOf, 
+   IbmProcedurePointer, 
+   IbmSectionNegE,
+   IbmSectionRangeE,
+   IbmSectionSegmentW,
+   IbmStopNumber,
+   IbmVolatileE,  
+   IbmVolatileW,  // dialect warning for ignored syntax
+ 
+   IsoResume,
+ 
+   MfBinaryLongLong,
+   MfCallGiving,
+   MfCallLiteral,
+   MfCdfDollar, 
+   MfComp6,
+   MfCompX,
+   MfLevel_1_Occurs, 
+   MfLevel78,
+   MfAnyLength, 
+   MfMoveIndex, 
+   MfMovePointer, 
+   MfReturningNum,
+   MfUsageTypename,
+   MfTrailing,
+   
+   Par78CdfDefinedW,
+   ParIconvE, 
+   ParInfoI,
+   ParLangInfoW,
+   ParLiteral2W, 
+   ParLocaleW,
+   ParNoCorrespondingW,
+   ParNumstrW, 
+   ParUnresolvedProcE, 
+ 
+   SynApplyCommit,
+   SynFileCodeSet,
+   SynHighOrderBit,
+   SynRecordingMode,
+   SynSetLocaleTo,
+   SynSetToLocale,
+ 
+   DiagDiagDiag // always last
+ };
+ 
+ bool cbl_message( cbl_diag_id_t id, const char msg[], ... )
+   ATTRIBUTE_GCOBOL_DIAG(2, 3);
+ 
+ bool cbl_message( cbl_loc_t loc, cbl_diag_id_t id, const char msg[], ... )
+   ATTRIBUTE_GCOBOL_DIAG(3, 4);
+ 
+ bool
+ dialect_ok( const cbl_loc_t& loc, cbl_diag_id_t id, const char term[], bool ok = true );
+ 
+ static inline bool
+ dialect_not_ok( const cbl_loc_t& loc, cbl_diag_id_t id, const char term[] ) {
+   return dialect_ok(loc, id, term, false);
+ }
+ 
  // Diagnostic format specifiers are documented in gcc/pretty-print.cc
  // an error at a location, called from the parser for semantic errors
  void error_msg( const YYLTYPE& loc, const char gmsgid[], ... )
*************** warn_msg( const YYLTYPE& loc, const char
*** 91,106 ****
  void error_msg_direct( const char gmsgid[], ... )
    ATTRIBUTE_GCOBOL_DIAG(1, 2);
  
- void dialect_error( const YYLTYPE& loc, const char term[], const char dialect[] );
- 
- 
  // for CDF and other warnings that refer back to an earlier line
  // (not in diagnostic framework yet)
  void yyerrorvl( int line, const char *filename, const char fmt[], ... )
    ATTRIBUTE_PRINTF_3;
  
! void cbl_unimplementedw(const char *gmsgid, ...) ATTRIBUTE_GCOBOL_DIAG(1, 2); // warning
! void cbl_unimplemented(const char *gmsgid, ...) ATTRIBUTE_GCOBOL_DIAG(1, 2);  // error
  void cbl_unimplemented_at( const  YYLTYPE& loc, const char *gmsgid, ... )
    ATTRIBUTE_GCOBOL_DIAG(2, 3);
  
--- 203,217 ----
  void error_msg_direct( const char gmsgid[], ... )
    ATTRIBUTE_GCOBOL_DIAG(1, 2);
  
  // for CDF and other warnings that refer back to an earlier line
  // (not in diagnostic framework yet)
  void yyerrorvl( int line, const char *filename, const char fmt[], ... )
    ATTRIBUTE_PRINTF_3;
  
! void cbl_unimplementedw(cbl_diag_id_t id, const char *gmsgid, ...)
!   ATTRIBUTE_GCOBOL_DIAG(2, 3); // warning
! void cbl_unimplemented(const char *gmsgid, ...)
!   ATTRIBUTE_GCOBOL_DIAG(1, 2);  // error
  void cbl_unimplemented_at( const  YYLTYPE& loc, const char *gmsgid, ... )
    ATTRIBUTE_GCOBOL_DIAG(2, 3);
  
*************** location_dump( const char func[], int li
*** 123,129 ****
    extern int yy_flex_debug; // cppcheck-suppress shadowVariable
    if( yy_flex_debug ) {
      const char *detail = gcobol_getenv("update_location");
!     if( detail ) {
        fprintf(stderr, "%s:%d: %s location (%d,%d) to (%d,%d)\n",
                func, line, tag,
                loc.first_line, loc.first_column, loc.last_line, loc.last_column);
--- 234,240 ----
    extern int yy_flex_debug; // cppcheck-suppress shadowVariable
    if( yy_flex_debug ) {
      const char *detail = gcobol_getenv("update_location");
!     if( detail ) { // cppcheck-suppress knownConditionTrueFalse
        fprintf(stderr, "%s:%d: %s location (%d,%d) to (%d,%d)\n",
                func, line, tag,
                loc.first_line, loc.first_column, loc.last_line, loc.last_column);
diff -Nrcpad gcc-15.2.0/gcc/cobol/cdf-copy.cc gcc-16.1.0-RC-20260423/gcc/cobol/cdf-copy.cc
*** gcc-15.2.0/gcc/cobol/cdf-copy.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cdf-copy.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/cdf.cc gcc-16.1.0-RC-20260423/gcc/cobol/cdf.cc
*** gcc-15.2.0/gcc/cobol/cdf.cc	Fri Aug  8 07:17:53 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cdf.cc	Thu Apr 23 11:40:07 2026
***************
*** 81,89 ****
  
  
  #include "cobol-system.h"
! #include "coretypes.h"
! #include "tree.h"
  #undef yy_flex_debug
  #include "../../libgcobol/ec.h"
  #include "../../libgcobol/common-defs.h"
  #include "util.h"
--- 81,91 ----
  
  
  #include "cobol-system.h"
! #include <coretypes.h>
! #include <tree.h>
! 
  #undef yy_flex_debug
+ 
  #include "../../libgcobol/ec.h"
  #include "../../libgcobol/common-defs.h"
  #include "util.h"
*************** void input_file_status_notify();
*** 149,155 ****
        location_set(Current);                                            \
    } while (0)
  
! #line 156 "cdf.y"
  
  static char *display_msg;
  const char * keyword_str( int token );
--- 151,157 ----
        location_set(Current);                                            \
    } while (0)
  
! #line 161 "cdf.y"
  
  static char *display_msg;
  const char * keyword_str( int token );
*************** apply_cdf_turn( const exception_turn_t&
*** 170,176 ****
    return true;
  }
  
! #line 174 "cdf.cc"
  
  # ifndef YY_CAST
  #  ifdef __cplusplus
--- 172,178 ----
    return true;
  }
  
! #line 176 "cdf.cc"
  
  # ifndef YY_CAST
  #  ifdef __cplusplus
*************** enum yysymbol_kind_t
*** 253,319 ****
    YYSYMBOL_NOT = 52,                       /* NOT  */
    YYSYMBOL_53_ = 53,                       /* '<'  */
    YYSYMBOL_54_ = 54,                       /* '>'  */
!   YYSYMBOL_55_ = 55,                       /* '='  */
!   YYSYMBOL_NE = 56,                        /* NE  */
!   YYSYMBOL_LE = 57,                        /* LE  */
!   YYSYMBOL_GE = 58,                        /* GE  */
!   YYSYMBOL_59_ = 59,                       /* '-'  */
!   YYSYMBOL_60_ = 60,                       /* '+'  */
!   YYSYMBOL_61_ = 61,                       /* '*'  */
!   YYSYMBOL_62_ = 62,                       /* '/'  */
!   YYSYMBOL_NEG = 63,                       /* NEG  */
!   YYSYMBOL_64_ = 64,                       /* '.'  */
!   YYSYMBOL_65_ = 65,                       /* '('  */
!   YYSYMBOL_66_ = 66,                       /* ')'  */
!   YYSYMBOL_YYACCEPT = 67,                  /* $accept  */
!   YYSYMBOL_top = 68,                       /* top  */
!   YYSYMBOL_completes = 69,                 /* completes  */
!   YYSYMBOL_complete = 70,                  /* complete  */
!   YYSYMBOL_cdf_display = 71,               /* cdf_display  */
!   YYSYMBOL_strings = 72,                   /* strings  */
!   YYSYMBOL_partials = 73,                  /* partials  */
!   YYSYMBOL_partial = 74,                   /* partial  */
!   YYSYMBOL_cdf_define = 75,                /* cdf_define  */
!   YYSYMBOL_cdf_constant = 76,              /* cdf_constant  */
!   YYSYMBOL_override = 77,                  /* override  */
!   YYSYMBOL_cdf_turn = 78,                  /* cdf_turn  */
!   YYSYMBOL_cdf_call_convention = 79,       /* cdf_call_convention  */
!   YYSYMBOL_cdf_push = 80,                  /* cdf_push  */
!   YYSYMBOL_cdf_pop = 81,                   /* cdf_pop  */
!   YYSYMBOL_cdf_stackable = 82,             /* cdf_stackable  */
!   YYSYMBOL_except_names = 83,              /* except_names  */
!   YYSYMBOL_except_name = 84,               /* except_name  */
!   YYSYMBOL_except_check = 85,              /* except_check  */
!   YYSYMBOL_filenames = 86,                 /* filenames  */
!   YYSYMBOL_filename = 87,                  /* filename  */
!   YYSYMBOL_cdf_if = 88,                    /* cdf_if  */
!   YYSYMBOL_89_1 = 89,                      /* $@1  */
!   YYSYMBOL_cdf_evaluate = 90,              /* cdf_evaluate  */
!   YYSYMBOL_cdf_eval_when = 91,             /* cdf_eval_when  */
!   YYSYMBOL_cdf_eval_obj = 92,              /* cdf_eval_obj  */
!   YYSYMBOL_cdf_cond_expr = 93,             /* cdf_cond_expr  */
!   YYSYMBOL_cdf_bool_expr = 94,             /* cdf_bool_expr  */
!   YYSYMBOL_cdf_and = 95,                   /* cdf_and  */
!   YYSYMBOL_cdf_reloper = 96,               /* cdf_reloper  */
!   YYSYMBOL_cdf_relexpr = 97,               /* cdf_relexpr  */
!   YYSYMBOL_cdf_expr = 98,                  /* cdf_expr  */
!   YYSYMBOL_cdf_factor = 99,                /* cdf_factor  */
!   YYSYMBOL_copy = 100,                     /* copy  */
!   YYSYMBOL_copy_impl = 101,                /* copy_impl  */
!   YYSYMBOL_copybook_name = 102,            /* copybook_name  */
!   YYSYMBOL_replace_bys = 103,              /* replace_bys  */
!   YYSYMBOL_replace_by = 104,               /* replace_by  */
!   YYSYMBOL_suppress = 105,                 /* suppress  */
!   YYSYMBOL_name_any = 106,                 /* name_any  */
!   YYSYMBOL_name_one = 107,                 /* name_one  */
!   YYSYMBOL_namelit = 108,                  /* namelit  */
!   YYSYMBOL_name = 109,                     /* name  */
!   YYSYMBOL_inof = 110,                     /* inof  */
!   YYSYMBOL_subscripts = 111,               /* subscripts  */
!   YYSYMBOL_subscript = 112,                /* subscript  */
!   YYSYMBOL_as = 113,                       /* as  */
!   YYSYMBOL_on = 114,                       /* on  */
!   YYSYMBOL_with = 115                      /* with  */
  };
  typedef enum yysymbol_kind_t yysymbol_kind_t;
  
--- 255,322 ----
    YYSYMBOL_NOT = 52,                       /* NOT  */
    YYSYMBOL_53_ = 53,                       /* '<'  */
    YYSYMBOL_54_ = 54,                       /* '>'  */
!   YYSYMBOL_EQ = 55,                        /* EQ  */
!   YYSYMBOL_56_EQUAL_ = 56,                 /* "EQUAL"  */
!   YYSYMBOL_NE = 57,                        /* NE  */
!   YYSYMBOL_LE = 58,                        /* LE  */
!   YYSYMBOL_GE = 59,                        /* GE  */
!   YYSYMBOL_60_ = 60,                       /* '-'  */
!   YYSYMBOL_61_ = 61,                       /* '+'  */
!   YYSYMBOL_62_ = 62,                       /* '*'  */
!   YYSYMBOL_63_ = 63,                       /* '/'  */
!   YYSYMBOL_NEG = 64,                       /* NEG  */
!   YYSYMBOL_65_ = 65,                       /* '.'  */
!   YYSYMBOL_66_ = 66,                       /* '('  */
!   YYSYMBOL_67_ = 67,                       /* ')'  */
!   YYSYMBOL_YYACCEPT = 68,                  /* $accept  */
!   YYSYMBOL_top = 69,                       /* top  */
!   YYSYMBOL_completes = 70,                 /* completes  */
!   YYSYMBOL_complete = 71,                  /* complete  */
!   YYSYMBOL_cdf_display = 72,               /* cdf_display  */
!   YYSYMBOL_strings = 73,                   /* strings  */
!   YYSYMBOL_partials = 74,                  /* partials  */
!   YYSYMBOL_partial = 75,                   /* partial  */
!   YYSYMBOL_cdf_define = 76,                /* cdf_define  */
!   YYSYMBOL_cdf_constant = 77,              /* cdf_constant  */
!   YYSYMBOL_override = 78,                  /* override  */
!   YYSYMBOL_cdf_turn = 79,                  /* cdf_turn  */
!   YYSYMBOL_cdf_call_convention = 80,       /* cdf_call_convention  */
!   YYSYMBOL_cdf_push = 81,                  /* cdf_push  */
!   YYSYMBOL_cdf_pop = 82,                   /* cdf_pop  */
!   YYSYMBOL_cdf_stackable = 83,             /* cdf_stackable  */
!   YYSYMBOL_except_names = 84,              /* except_names  */
!   YYSYMBOL_except_name = 85,               /* except_name  */
!   YYSYMBOL_except_check = 86,              /* except_check  */
!   YYSYMBOL_filenames = 87,                 /* filenames  */
!   YYSYMBOL_filename = 88,                  /* filename  */
!   YYSYMBOL_cdf_if = 89,                    /* cdf_if  */
!   YYSYMBOL_90_1 = 90,                      /* $@1  */
!   YYSYMBOL_cdf_evaluate = 91,              /* cdf_evaluate  */
!   YYSYMBOL_cdf_eval_when = 92,             /* cdf_eval_when  */
!   YYSYMBOL_cdf_eval_obj = 93,              /* cdf_eval_obj  */
!   YYSYMBOL_cdf_cond_expr = 94,             /* cdf_cond_expr  */
!   YYSYMBOL_cdf_bool_expr = 95,             /* cdf_bool_expr  */
!   YYSYMBOL_cdf_and = 96,                   /* cdf_and  */
!   YYSYMBOL_cdf_reloper = 97,               /* cdf_reloper  */
!   YYSYMBOL_cdf_relexpr = 98,               /* cdf_relexpr  */
!   YYSYMBOL_cdf_expr = 99,                  /* cdf_expr  */
!   YYSYMBOL_cdf_factor = 100,               /* cdf_factor  */
!   YYSYMBOL_copy = 101,                     /* copy  */
!   YYSYMBOL_copy_impl = 102,                /* copy_impl  */
!   YYSYMBOL_copybook_name = 103,            /* copybook_name  */
!   YYSYMBOL_replace_bys = 104,              /* replace_bys  */
!   YYSYMBOL_replace_by = 105,               /* replace_by  */
!   YYSYMBOL_suppress = 106,                 /* suppress  */
!   YYSYMBOL_name_any = 107,                 /* name_any  */
!   YYSYMBOL_name_one = 108,                 /* name_one  */
!   YYSYMBOL_namelit = 109,                  /* namelit  */
!   YYSYMBOL_name = 110,                     /* name  */
!   YYSYMBOL_inof = 111,                     /* inof  */
!   YYSYMBOL_subscripts = 112,               /* subscripts  */
!   YYSYMBOL_subscript = 113,                /* subscript  */
!   YYSYMBOL_as = 114,                       /* as  */
!   YYSYMBOL_on = 115,                       /* on  */
!   YYSYMBOL_with = 116                      /* with  */
  };
  typedef enum yysymbol_kind_t yysymbol_kind_t;
  
*************** union yyalloc
*** 644,653 ****
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  76
  /* YYLAST -- Last index in YYTABLE.  */
! #define YYLAST   199
  
  /* YYNTOKENS -- Number of terminals.  */
! #define YYNTOKENS  67
  /* YYNNTS -- Number of nonterminals.  */
  #define YYNNTS  49
  /* YYNRULES -- Number of rules.  */
--- 647,656 ----
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  76
  /* YYLAST -- Last index in YYTABLE.  */
! #define YYLAST   198
  
  /* YYNTOKENS -- Number of terminals.  */
! #define YYNTOKENS  68
  /* YYNNTS -- Number of nonterminals.  */
  #define YYNNTS  49
  /* YYNRULES -- Number of rules.  */
*************** union yyalloc
*** 656,662 ****
  #define YYNSTATES  174
  
  /* YYMAXUTOK -- Last valid token kind.  */
! #define YYMAXUTOK   949
  
  
  /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
--- 659,665 ----
  #define YYNSTATES  174
  
  /* YYMAXUTOK -- Last valid token kind.  */
! #define YYMAXUTOK   961
  
  
  /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
*************** static const yytype_int8 yytranslate[] =
*** 674,682 ****
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       65,    66,    61,    60,     2,    59,    64,    62,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       53,    55,    54,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--- 677,685 ----
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       66,    67,    62,    61,     2,    60,    65,    63,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       53,     2,    54,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
*************** static const yytype_int8 yytranslate[] =
*** 699,725 ****
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         6,     2,     2,     2,     2,     2,    11,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,    16,     2,
!        2,     2,     2,     5,     2,    12,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,    35,     8,    36,     2,     4,     2,    18,    38,    40,
!        2,     2,    20,     2,     2,    19,    17,     2,     2,     2,
!       30,     2,     2,    21,     9,    22,    23,    24,    25,    26,
!       27,    29,    43,    44,    31,    32,    33,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       28,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,    34,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     7,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,    46,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--- 702,728 ----
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         6,     2,     2,     2,     2,     2,    11,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,    55,    16,
!        2,     2,     2,     2,     5,     2,    12,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,    35,     8,    36,     2,     4,     2,    18,
!       38,    40,     2,     2,    20,     2,     2,    19,    17,     2,
!        2,     2,    30,     2,     2,    21,     9,    22,    23,    24,
!       25,    26,    27,    29,    43,    44,    31,    32,    33,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,    28,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       34,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,     7,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,    46,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
*************** static const yytype_int8 yytranslate[] =
*** 730,760 ****
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,    10,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-        2,     2,     2,     2,     2,     2,     2,     2,     2,    47,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,    13,    39,     2,    48,
!        2,     2,     2,     2,     2,     2,     2,     2,    37,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,    14,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,    15,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,    42,     2,    45,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,    49,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--- 733,763 ----
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,    10,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       47,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,    13,    39,     2,
!       48,     2,     2,     2,     2,     2,     2,     2,     2,    37,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,    14,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,    15,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,    42,     2,    45,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,    49,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
*************** static const yytype_int8 yytranslate[] =
*** 763,789 ****
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,     2,    41,
!       50,    51,    52,    56,    57,    58,     2,    63,     2,     3
  };
  
  #if YDFDEBUG
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_int16 yyrline[] =
  {
!        0,   269,   269,   270,   278,   282,   285,   286,   287,   289,
!      290,   291,   292,   293,   294,   303,   311,   314,   321,   325,
!      330,   331,   332,   333,   334,   335,   338,   357,   363,   367,
!      381,   388,   396,   397,   399,   400,   403,   411,   414,   419,
!      430,   442,   443,   444,   445,   446,   449,   450,   452,   456,
!      463,   464,   465,   471,   475,   484,   495,   498,   498,   504,
!      505,   508,   511,   512,   513,   516,   517,   532,   533,   544,
!      545,   548,   549,   552,   553,   556,   557,   558,   571,   585,
!      586,   587,   590,   591,   592,   593,   594,   595,   596,   597,
!      600,   614,   615,   616,   627,   629,   630,   632,   640,   651,
!      652,   655,   686,   687,   693,   694,   699,   710,   711,   714,
!      725,   734,   735,   738,   739,   748,   749,   752,   753,   762,
!      763,   773,   774,   777,   778,   781,   782
  };
  #endif
  
--- 766,794 ----
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!       41,    50,    51,    52,    57,    58,    59,     2,    64,     2,
!        3,    56
  };
  
  #if YDFDEBUG
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_int16 yyrline[] =
  {
!        0,   274,   274,   275,   283,   287,   290,   291,   292,   294,
!      295,   296,   297,   298,   299,   308,   316,   319,   326,   330,
!      335,   336,   337,   338,   339,   340,   343,   367,   373,   377,
!      392,   399,   407,   408,   410,   411,   414,   422,   425,   430,
!      441,   453,   454,   455,   456,   457,   460,   461,   463,   467,
!      474,   475,   476,   482,   486,   495,   506,   509,   509,   515,
!      516,   519,   522,   523,   524,   527,   528,   543,   544,   555,
!      556,   559,   560,   563,   564,   567,   568,   569,   582,   596,
!      597,   598,   601,   602,   603,   604,   605,   606,   607,   608,
!      611,   626,   627,   628,   639,   641,   642,   644,   652,   663,
!      664,   667,   698,   699,   705,   706,   711,   722,   723,   726,
!      737,   746,   747,   750,   751,   760,   761,   764,   765,   774,
!      775,   785,   786,   789,   790,   793,   794
  };
  #endif
  
*************** static const char *const yytname[] =
*** 808,818 ****
    "\">>COBOL-WORDS\"", "\">>PUSH\"", "\">>POP\"", "\">>SOURCE FORMAT\"",
    "AS", "CONSTANT", "DEFINED", "OTHER", "\"PARAMETER\"", "OFF", "OVERRIDE",
    "THRU", "\"True\"", "\"CALL\"", "\"CALL (as C)\"", "TURN", "CHECKING",
!   "LOCATION", "ON", "WITH", "OR", "AND", "NOT", "'<'", "'>'", "'='", "NE",
!   "LE", "GE", "'-'", "'+'", "'*'", "'/'", "NEG", "'.'", "'('", "')'",
!   "$accept", "top", "completes", "complete", "cdf_display", "strings",
!   "partials", "partial", "cdf_define", "cdf_constant", "override",
!   "cdf_turn", "cdf_call_convention", "cdf_push", "cdf_pop",
    "cdf_stackable", "except_names", "except_name", "except_check",
    "filenames", "filename", "cdf_if", "$@1", "cdf_evaluate",
    "cdf_eval_when", "cdf_eval_obj", "cdf_cond_expr", "cdf_bool_expr",
--- 813,823 ----
    "\">>COBOL-WORDS\"", "\">>PUSH\"", "\">>POP\"", "\">>SOURCE FORMAT\"",
    "AS", "CONSTANT", "DEFINED", "OTHER", "\"PARAMETER\"", "OFF", "OVERRIDE",
    "THRU", "\"True\"", "\"CALL\"", "\"CALL (as C)\"", "TURN", "CHECKING",
!   "LOCATION", "ON", "WITH", "OR", "AND", "NOT", "'<'", "'>'", "EQ",
!   "\"EQUAL\"", "NE", "LE", "GE", "'-'", "'+'", "'*'", "'/'", "NEG", "'.'",
!   "'('", "')'", "$accept", "top", "completes", "complete", "cdf_display",
!   "strings", "partials", "partial", "cdf_define", "cdf_constant",
!   "override", "cdf_turn", "cdf_call_convention", "cdf_push", "cdf_pop",
    "cdf_stackable", "except_names", "except_name", "except_check",
    "filenames", "filename", "cdf_if", "$@1", "cdf_evaluate",
    "cdf_eval_when", "cdf_eval_obj", "cdf_cond_expr", "cdf_bool_expr",
*************** yysymbol_name (yysymbol_kind_t yysymbol)
*** 829,835 ****
  }
  #endif
  
! #define YYPACT_NINF (-109)
  
  #define yypact_value_is_default(Yyn) \
    ((Yyn) == YYPACT_NINF)
--- 834,840 ----
  }
  #endif
  
! #define YYPACT_NINF (-113)
  
  #define yypact_value_is_default(Yyn) \
    ((Yyn) == YYPACT_NINF)
*************** yysymbol_name (yysymbol_kind_t yysymbol)
*** 843,866 ****
     STATE-NUM.  */
  static const yytype_int16 yypact[] =
  {
!      112,   103,     0,    11,     1,  -109,  -109,    17,    15,  -109,
!      119,   119,  -109,  -109,    18,    40,   137,  -109,  -109,    80,
!     -109,  -109,  -109,  -109,  -109,  -109,  -109,  -109,  -109,     6,
!     -109,    47,  -109,  -109,  -109,    61,  -109,    65,    55,  -109,
!       97,  -109,  -109,    75,  -109,    82,  -109,  -109,    67,    67,
!       67,    57,  -109,    91,    74,  -109,   117,   130,  -109,  -109,
!     -109,   130,  -109,  -109,  -109,    69,  -109,  -109,  -109,  -109,
!     -109,  -109,  -109,   131,     2,  -109,  -109,  -109,  -109,  -109,
!     -109,  -109,  -109,   135,   103,  -109,  -109,   -18,   -23,   121,
!     -109,  -109,   117,  -109,  -109,   -27,    57,    57,    67,    67,
!       67,    67,    67,    67,    67,    67,    67,    67,    67,  -109,
!      131,  -109,   -14,  -109,  -109,   172,  -109,  -109,  -109,    67,
!       -2,  -109,  -109,    74,  -109,   130,   130,   130,   130,   130,
!      130,    -6,    -6,  -109,  -109,   130,  -109,  -109,  -109,    41,
!     -109,  -109,  -109,  -109,   172,  -109,   144,  -109,    31,    25,
!      113,  -109,    25,  -109,   107,  -109,   172,  -109,  -109,   105,
!     -109,   154,   105,  -109,  -109,  -109,  -109,  -109,  -109,  -109,
!      146,  -109,  -109,  -109
  };
  
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
--- 848,871 ----
     STATE-NUM.  */
  static const yytype_int16 yypact[] =
  {
!      122,    95,     0,    11,     1,  -113,  -113,    14,    17,  -113,
!       87,    87,  -113,  -113,    39,    23,   147,  -113,  -113,   171,
!     -113,  -113,  -113,  -113,  -113,  -113,  -113,  -113,  -113,     6,
!     -113,    32,  -113,  -113,  -113,    42,  -113,    15,    55,  -113,
!       44,  -113,  -113,    37,  -113,    40,  -113,  -113,    98,    98,
!       98,    74,  -113,    31,    67,  -113,   127,   100,  -113,  -113,
!     -113,   100,  -113,  -113,  -113,    61,  -113,  -113,  -113,  -113,
!     -113,  -113,  -113,   108,     2,  -113,  -113,  -113,  -113,  -113,
!     -113,  -113,  -113,   110,    95,  -113,  -113,    -4,   -23,   103,
!     -113,  -113,   127,  -113,  -113,   -16,    74,    74,    98,    98,
!       98,    98,    98,    98,    98,    98,    98,    98,    98,  -113,
!      108,  -113,    24,  -113,  -113,   125,  -113,  -113,  -113,    98,
!       -2,  -113,  -113,    67,  -113,   100,   100,   100,   100,   100,
!      100,    25,    25,  -113,  -113,   100,  -113,  -113,  -113,    21,
!     -113,  -113,  -113,  -113,   125,  -113,   121,  -113,    47,   -22,
!       89,  -113,   -22,  -113,    85,  -113,   125,  -113,  -113,    86,
!     -113,   131,    86,  -113,  -113,  -113,  -113,  -113,  -113,  -113,
!      113,  -113,  -113,  -113
  };
  
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
*************** static const yytype_int8 yydefact[] =
*** 891,901 ****
  /* YYPGOTO[NTERM-NUM].  */
  static const yytype_int16 yypgoto[] =
  {
!     -109,  -109,  -109,   151,  -109,  -109,  -109,    19,  -109,  -109,
!     -105,  -109,  -109,  -109,  -109,   165,  -109,   104,  -109,  -109,
!       77,  -109,  -109,  -109,  -109,  -109,   169,   128,    89,    96,
!      147,    -7,  -109,  -109,  -109,  -109,  -109,    50,  -109,    42,
!      115,  -109,  -109,  -109,  -109,  -108,   108,  -109,  -109
  };
  
  /* YYDEFGOTO[NTERM-NUM].  */
--- 896,906 ----
  /* YYPGOTO[NTERM-NUM].  */
  static const yytype_int16 yypgoto[] =
  {
!     -113,  -113,  -113,   134,  -113,  -113,  -113,     8,  -113,  -113,
!      -68,  -113,  -113,  -113,  -113,   140,  -113,    64,  -113,  -113,
!       45,  -113,  -113,  -113,  -113,  -113,   144,   106,    79,    80,
!      128,    -7,  -113,  -113,  -113,  -113,  -113,    43,  -113,    27,
!      104,  -113,  -113,  -113,  -113,  -112,   101,  -113,  -113
  };
  
  /* YYDEFGOTO[NTERM-NUM].  */
*************** static const yytype_uint8 yydefgoto[] =
*** 914,962 ****
  static const yytype_int16 yytable[] =
  {
        61,    65,    41,    44,    42,    43,    44,    80,    73,    59,
!       46,    86,    45,    46,    47,    38,    36,    47,    42,    43,
!       44,   117,    44,    96,    73,   137,    45,    46,    59,    46,
!      118,    47,   119,    47,   138,    78,   150,   151,    79,   122,
!       76,   157,    93,    94,   158,   166,    39,   167,   112,   159,
!      160,   170,    62,    48,   172,   106,   107,    49,    50,    60,
!       49,    50,    44,    51,    82,   164,    51,    48,    59,    46,
!       81,    84,    44,    47,    49,    50,    49,    50,    59,    46,
!       51,    85,    51,    47,   104,   105,   106,   107,  -125,    86,
!      153,   125,   126,   127,   128,   129,   130,   131,   132,   133,
!      134,   135,     4,     5,     6,     7,     8,     9,    88,    48,
!      108,    90,   149,   152,    32,    33,    49,    50,    91,    34,
!        1,     2,    51,   159,   160,    97,    49,    50,   104,   105,
!      106,   107,    51,     3,     4,     5,     6,     7,     8,     9,
!       66,    96,   109,    10,    11,   121,     2,    67,    68,    69,
!      115,   156,    70,   164,   168,    12,    13,    14,     3,     4,
!        5,     6,     7,     8,     9,   171,   173,    77,    10,    11,
!       98,    99,   100,   101,   102,   103,    72,    64,   113,    95,
!       12,    13,    14,   140,   141,   123,   142,   136,   143,   104,
!      105,   106,   107,   124,   155,    92,   120,     0,   169,   116
  };
  
! static const yytype_int16 yycheck[] =
  {
         7,     8,     1,     5,     3,     4,     5,     1,     6,    11,
!       12,    34,    11,    12,    16,     4,    16,    16,     3,     4,
!        5,    39,     5,    50,     6,    39,    11,    12,    11,    12,
!       48,    16,    55,    16,    48,    16,    38,    39,    19,    66,
!        0,    10,    49,    50,    13,   150,    35,   152,    46,    18,
!       19,   159,    37,    52,   162,    61,    62,    59,    60,    42,
!       59,    60,     5,    65,    17,    40,    65,    52,    11,    12,
!       64,    10,     5,    16,    59,    60,    59,    60,    11,    12,
!       65,    16,    65,    16,    59,    60,    61,    62,    47,    34,
!       49,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,    22,    23,    24,    25,    26,    27,    11,    52,
!       41,    36,   119,   120,    11,    12,    59,    60,    36,    16,
!        8,     9,    65,    18,    19,    51,    59,    60,    59,    60,
!       61,    62,    65,    21,    22,    23,    24,    25,    26,    27,
!       21,    50,    11,    31,    32,    24,     9,    28,    29,    30,
!       15,     7,    33,    40,    47,    43,    44,    45,    21,    22,
!       23,    24,    25,    26,    27,    11,    20,    16,    31,    32,
!       53,    54,    55,    56,    57,    58,    11,     8,    74,    51,
!       43,    44,    45,    11,    12,    96,    14,   110,    16,    59,
!       60,    61,    62,    97,   144,    48,    88,    -1,   156,    84
  };
  
  /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
--- 919,967 ----
  static const yytype_int16 yytable[] =
  {
        61,    65,    41,    44,    42,    43,    44,    80,    73,    59,
!       46,    86,    45,    46,    47,    38,    36,    47,   164,    44,
!       42,    43,    44,    76,    78,    59,    46,    79,    45,    46,
!       47,    85,   119,    47,    96,   117,   150,   151,   104,   105,
!      106,   107,    93,    94,   118,    73,    39,   170,   112,    82,
!      172,   122,    84,    48,    62,    88,    60,   157,    49,    50,
!      158,    49,    50,   137,    51,   159,   160,    51,  -125,    48,
!      153,    81,   138,    90,    49,    50,    91,    49,    50,    44,
!       51,    96,   166,    51,   167,    59,    46,   106,   107,    86,
!       47,   125,   126,   127,   128,   129,   130,   131,   132,   133,
!      134,   135,   108,    44,   159,   160,    32,    33,    66,    59,
!       46,    34,   149,   152,    47,    67,    68,    69,    97,   109,
!       70,   104,   105,   106,   107,   115,    48,   121,   156,   164,
!        1,     2,   168,   173,    49,    50,   140,   141,   113,   142,
!       51,   143,   171,     3,     4,     5,     6,     7,     8,     9,
!       77,    72,    64,    10,    11,   136,     2,    95,    49,    50,
!      104,   105,   106,   107,    51,    12,    13,    14,     3,     4,
!        5,     6,     7,     8,     9,   123,    92,   124,    10,    11,
!       98,    99,   100,   169,   101,   102,   103,   155,   116,   120,
!       12,    13,    14,     4,     5,     6,     7,     8,     9
  };
  
! static const yytype_uint8 yycheck[] =
  {
         7,     8,     1,     5,     3,     4,     5,     1,     6,    11,
!       12,    34,    11,    12,    16,     4,    16,    16,    40,     5,
!        3,     4,     5,     0,    16,    11,    12,    19,    11,    12,
!       16,    16,    55,    16,    50,    39,    38,    39,    60,    61,
!       62,    63,    49,    50,    48,     6,    35,   159,    46,    17,
!      162,    67,    10,    52,    37,    11,    42,    10,    60,    61,
!       13,    60,    61,    39,    66,    18,    19,    66,    47,    52,
!       49,    65,    48,    36,    60,    61,    36,    60,    61,     5,
!       66,    50,   150,    66,   152,    11,    12,    62,    63,    34,
!       16,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,    41,     5,    18,    19,    11,    12,    21,    11,
!       12,    16,   119,   120,    16,    28,    29,    30,    51,    11,
!       33,    60,    61,    62,    63,    15,    52,    24,     7,    40,
!        8,     9,    47,    20,    60,    61,    11,    12,    74,    14,
!       66,    16,    11,    21,    22,    23,    24,    25,    26,    27,
!       16,    11,     8,    31,    32,   110,     9,    51,    60,    61,
!       60,    61,    62,    63,    66,    43,    44,    45,    21,    22,
!       23,    24,    25,    26,    27,    96,    48,    97,    31,    32,
!       53,    54,    55,   156,    57,    58,    59,   144,    84,    88,
!       43,    44,    45,    22,    23,    24,    25,    26,    27
  };
  
  /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
*************** static const yytype_int16 yycheck[] =
*** 964,1004 ****
  static const yytype_int8 yystos[] =
  {
         0,     8,     9,    21,    22,    23,    24,    25,    26,    27,
!       31,    32,    43,    44,    45,    68,    69,    70,    71,    73,
!       74,    75,    78,    79,    80,    81,    88,    90,    91,   100,
!      101,   102,    11,    12,    16,   107,    16,    72,     4,    35,
!       76,     1,     3,     4,     5,    11,    12,    16,    52,    59,
!       60,    65,    93,    94,    95,    96,    97,    98,    99,    11,
!       42,    98,    37,    92,    93,    98,    21,    28,    29,    30,
!       33,    82,    82,     6,    83,    84,     0,    70,    74,    74,
!        1,    64,    17,   105,    10,    16,    34,   113,    11,    89,
!       36,    36,    97,    98,    98,    94,    50,    51,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    41,    11,
!       86,    87,    46,    84,    85,    15,   107,    39,    48,    55,
!      113,    24,    66,    95,    96,    98,    98,    98,    98,    98,
!       98,    98,    98,    98,    98,    98,    87,    39,    48,   114,
!       11,    12,    14,    16,   103,   104,   106,   108,   109,    98,
!       38,    39,    98,    49,   115,   104,     7,    10,    13,    18,
!       19,   110,   111,   112,    40,    77,    77,    77,    47,   106,
!      112,    11,   112,    20
  };
  
  /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
  static const yytype_int8 yyr1[] =
  {
!        0,    67,    68,    68,    68,    68,    69,    69,    69,    70,
!       70,    70,    70,    70,    70,    71,    72,    72,    73,    73,
!       74,    74,    74,    74,    74,    74,    75,    75,    75,    75,
!       75,    75,    76,    76,    77,    77,    78,    79,    79,    80,
!       81,    82,    82,    82,    82,    82,    83,    83,    84,    84,
!       85,    85,    85,    86,    86,    87,    88,    89,    88,    90,
!       90,    91,    92,    92,    92,    93,    93,    93,    93,    94,
!       94,    95,    95,    96,    96,    97,    97,    97,    97,    97,
!       97,    97,    98,    98,    98,    98,    98,    98,    98,    98,
!       99,    99,    99,    99,   100,   101,   101,   102,   102,   103,
!      103,   104,   105,   105,   106,   106,   107,   107,   107,   108,
!      108,   108,   108,   109,   109,   110,   110,   111,   111,   112,
!      112,   113,   113,   114,   114,   115,   115
  };
  
  /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
--- 969,1009 ----
  static const yytype_int8 yystos[] =
  {
         0,     8,     9,    21,    22,    23,    24,    25,    26,    27,
!       31,    32,    43,    44,    45,    69,    70,    71,    72,    74,
!       75,    76,    79,    80,    81,    82,    89,    91,    92,   101,
!      102,   103,    11,    12,    16,   108,    16,    73,     4,    35,
!       77,     1,     3,     4,     5,    11,    12,    16,    52,    60,
!       61,    66,    94,    95,    96,    97,    98,    99,   100,    11,
!       42,    99,    37,    93,    94,    99,    21,    28,    29,    30,
!       33,    83,    83,     6,    84,    85,     0,    71,    75,    75,
!        1,    65,    17,   106,    10,    16,    34,   114,    11,    90,
!       36,    36,    98,    99,    99,    95,    50,    51,    53,    54,
!       55,    57,    58,    59,    60,    61,    62,    63,    41,    11,
!       87,    88,    46,    85,    86,    15,   108,    39,    48,    55,
!      114,    24,    67,    96,    97,    99,    99,    99,    99,    99,
!       99,    99,    99,    99,    99,    99,    88,    39,    48,   115,
!       11,    12,    14,    16,   104,   105,   107,   109,   110,    99,
!       38,    39,    99,    49,   116,   105,     7,    10,    13,    18,
!       19,   111,   112,   113,    40,    78,    78,    78,    47,   107,
!      113,    11,   113,    20
  };
  
  /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
  static const yytype_int8 yyr1[] =
  {
!        0,    68,    69,    69,    69,    69,    70,    70,    70,    71,
!       71,    71,    71,    71,    71,    72,    73,    73,    74,    74,
!       75,    75,    75,    75,    75,    75,    76,    76,    76,    76,
!       76,    76,    77,    77,    78,    78,    79,    80,    80,    81,
!       82,    83,    83,    83,    83,    83,    84,    84,    85,    85,
!       86,    86,    86,    87,    87,    88,    89,    90,    89,    91,
!       91,    92,    93,    93,    93,    94,    94,    94,    94,    95,
!       95,    96,    96,    97,    97,    98,    98,    98,    98,    98,
!       98,    98,    99,    99,    99,    99,    99,    99,    99,    99,
!      100,   100,   100,   100,   101,   102,   102,   103,   103,   104,
!      104,   105,   106,   106,   107,   107,   108,   108,   108,   109,
!      109,   109,   109,   110,   110,   111,   111,   112,   112,   113,
!      113,   114,   114,   115,   115,   116,   116
  };
  
  /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
*************** yy_symbol_value_print (FILE *yyo,
*** 1184,1348 ****
    switch (yykind)
      {
      case YYSYMBOL_BOOL: /* BOOL  */
! #line 187 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1190 "cdf.cc"
          break;
  
      case YYSYMBOL_NAME: /* NAME  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1196 "cdf.cc"
          break;
  
      case YYSYMBOL_NUMSTR: /* "numeric literal"  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1202 "cdf.cc"
          break;
  
      case YYSYMBOL_PSEUDOTEXT: /* PSEUDOTEXT  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1208 "cdf.cc"
          break;
  
      case YYSYMBOL_LITERAL: /* LITERAL  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1214 "cdf.cc"
          break;
  
      case YYSYMBOL_LSUB: /* "("  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1220 "cdf.cc"
          break;
  
      case YYSYMBOL_SUBSCRIPT: /* SUBSCRIPT  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1226 "cdf.cc"
          break;
  
      case YYSYMBOL_RSUB: /* ")"  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1232 "cdf.cc"
          break;
  
      case YYSYMBOL_DEFINED: /* DEFINED  */
! #line 187 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1238 "cdf.cc"
          break;
  
      case YYSYMBOL_override: /* override  */
! #line 187 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1244 "cdf.cc"
          break;
  
      case YYSYMBOL_except_check: /* except_check  */
! #line 187 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1250 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_cond_expr: /* cdf_cond_expr  */
! #line 187 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1256 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_bool_expr: /* cdf_bool_expr  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1263 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_and: /* cdf_and  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1270 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_reloper: /* cdf_reloper  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1277 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_relexpr: /* cdf_relexpr  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1284 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_expr: /* cdf_expr  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1291 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_factor: /* cdf_factor  */
! #line 193 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1298 "cdf.cc"
          break;
  
      case YYSYMBOL_name_any: /* name_any  */
! #line 189 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1306 "cdf.cc"
          break;
  
      case YYSYMBOL_name_one: /* name_one  */
! #line 189 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1314 "cdf.cc"
          break;
  
      case YYSYMBOL_namelit: /* namelit  */
! #line 189 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1322 "cdf.cc"
          break;
  
      case YYSYMBOL_name: /* name  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1328 "cdf.cc"
          break;
  
      case YYSYMBOL_inof: /* inof  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1334 "cdf.cc"
          break;
  
      case YYSYMBOL_subscripts: /* subscripts  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1340 "cdf.cc"
          break;
  
      case YYSYMBOL_subscript: /* subscript  */
! #line 188 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1346 "cdf.cc"
          break;
  
        default:
--- 1189,1353 ----
    switch (yykind)
      {
      case YYSYMBOL_BOOL: /* BOOL  */
! #line 192 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1195 "cdf.cc"
          break;
  
      case YYSYMBOL_NAME: /* NAME  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1201 "cdf.cc"
          break;
  
      case YYSYMBOL_NUMSTR: /* "numeric literal"  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1207 "cdf.cc"
          break;
  
      case YYSYMBOL_PSEUDOTEXT: /* PSEUDOTEXT  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1213 "cdf.cc"
          break;
  
      case YYSYMBOL_LITERAL: /* LITERAL  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1219 "cdf.cc"
          break;
  
      case YYSYMBOL_LSUB: /* "("  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1225 "cdf.cc"
          break;
  
      case YYSYMBOL_SUBSCRIPT: /* SUBSCRIPT  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1231 "cdf.cc"
          break;
  
      case YYSYMBOL_RSUB: /* ")"  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1237 "cdf.cc"
          break;
  
      case YYSYMBOL_DEFINED: /* DEFINED  */
! #line 192 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1243 "cdf.cc"
          break;
  
      case YYSYMBOL_override: /* override  */
! #line 192 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1249 "cdf.cc"
          break;
  
      case YYSYMBOL_except_check: /* except_check  */
! #line 192 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1255 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_cond_expr: /* cdf_cond_expr  */
! #line 192 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).boolean)? "true" : "false" ); }
! #line 1261 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_bool_expr: /* cdf_bool_expr  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1268 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_and: /* cdf_and  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1275 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_reloper: /* cdf_reloper  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1282 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_relexpr: /* cdf_relexpr  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1289 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_expr: /* cdf_expr  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1296 "cdf.cc"
          break;
  
      case YYSYMBOL_cdf_factor: /* cdf_factor  */
! #line 198 "cdf.y"
           { fprintf(yyo, HOST_SIZE_T_PRINT_DEC " '%s'",
  		   (fmt_size_t)((*yyvaluep).cdfval).number, ((*yyvaluep).cdfval).string? ((*yyvaluep).cdfval).string : "" ); }
! #line 1303 "cdf.cc"
          break;
  
      case YYSYMBOL_name_any: /* name_any  */
! #line 194 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1311 "cdf.cc"
          break;
  
      case YYSYMBOL_name_one: /* name_one  */
! #line 194 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1319 "cdf.cc"
          break;
  
      case YYSYMBOL_namelit: /* namelit  */
! #line 194 "cdf.y"
           { fprintf(yyo, "%s '%s'",
  		   keyword_str(((*yyvaluep).cdfarg).token),
  		   ((*yyvaluep).cdfarg).string? ((*yyvaluep).cdfarg).string : "<nil>" ); }
! #line 1327 "cdf.cc"
          break;
  
      case YYSYMBOL_name: /* name  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1333 "cdf.cc"
          break;
  
      case YYSYMBOL_inof: /* inof  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1339 "cdf.cc"
          break;
  
      case YYSYMBOL_subscripts: /* subscripts  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1345 "cdf.cc"
          break;
  
      case YYSYMBOL_subscript: /* subscript  */
! #line 193 "cdf.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string) ); }
! #line 1351 "cdf.cc"
          break;
  
        default:
*************** yyreduce:
*** 2030,2042 ****
    switch (yyn)
      {
    case 2: /* top: partials  */
! #line 269 "cdf.y"
                           { YYACCEPT; }
! #line 2036 "cdf.cc"
      break;
  
    case 3: /* top: copy '.'  */
! #line 271 "cdf.y"
                  {
  		  const char *library = copybook.library();
  		  if( !library ) library = "SYSLIB";
--- 2035,2047 ----
    switch (yyn)
      {
    case 2: /* top: partials  */
! #line 274 "cdf.y"
                           { YYACCEPT; }
! #line 2041 "cdf.cc"
      break;
  
    case 3: /* top: copy '.'  */
! #line 276 "cdf.y"
                  {
  		  const char *library = copybook.library();
  		  if( !library ) library = "SYSLIB";
*************** yyreduce:
*** 2044,2069 ****
  		  dbgmsg("COPY %s from %s", source, library);
  		  YYACCEPT;
  		}
! #line 2048 "cdf.cc"
      break;
  
    case 4: /* top: copy error  */
! #line 278 "cdf.y"
                             {
  		  error_msg((yylsp[0]), "COPY directive must end in a %<.%>");
  		  YYABORT;
  		}
! #line 2057 "cdf.cc"
      break;
  
    case 5: /* top: completes  */
! #line 282 "cdf.y"
                            { YYACCEPT; }
! #line 2063 "cdf.cc"
      break;
  
    case 15: /* cdf_display: ">>DISPLAY" strings  */
! #line 303 "cdf.y"
                                      {
  		  if( scanner_parsing() ) {
  		    fprintf(stderr, "%s\n", display_msg);
--- 2049,2074 ----
  		  dbgmsg("COPY %s from %s", source, library);
  		  YYACCEPT;
  		}
! #line 2053 "cdf.cc"
      break;
  
    case 4: /* top: copy error  */
! #line 283 "cdf.y"
                             {
  		  error_msg((yylsp[0]), "COPY directive must end in a %<.%>");
  		  YYABORT;
  		}
! #line 2062 "cdf.cc"
      break;
  
    case 5: /* top: completes  */
! #line 287 "cdf.y"
                            { YYACCEPT; }
! #line 2068 "cdf.cc"
      break;
  
    case 15: /* cdf_display: ">>DISPLAY" strings  */
! #line 308 "cdf.y"
                                      {
  		  if( scanner_parsing() ) {
  		    fprintf(stderr, "%s\n", display_msg);
*************** yyreduce:
*** 2071,2133 ****
  		    display_msg = NULL;
  		  }
  		}
! #line 2075 "cdf.cc"
      break;
  
    case 16: /* strings: LITERAL  */
! #line 311 "cdf.y"
                          {
  		  display_msg = xstrdup((yyvsp[0].string));
  		}
! #line 2083 "cdf.cc"
      break;
  
    case 17: /* strings: strings LITERAL  */
! #line 314 "cdf.y"
                                  {
  		  char *p = display_msg;
  		  display_msg = xasprintf("%s %s", p, (yyvsp[0].string));
  		  free(p);
  		}
! #line 2093 "cdf.cc"
      break;
  
    case 18: /* partials: partial  */
! #line 322 "cdf.y"
                  {
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2101 "cdf.cc"
      break;
  
    case 19: /* partials: partials partial  */
! #line 326 "cdf.y"
                  {
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2109 "cdf.cc"
      break;
  
    case 21: /* partial: ">>ELSE"  */
! #line 331 "cdf.y"
                                    { scanner_parsing_toggle(); }
! #line 2115 "cdf.cc"
      break;
  
    case 22: /* partial: ">>END-IF"  */
! #line 332 "cdf.y"
                                    { scanner_parsing_pop(); }
! #line 2121 "cdf.cc"
      break;
  
    case 25: /* partial: ">>END-EVALUATE"  */
! #line 335 "cdf.y"
                                    { scanner_parsing_pop(); }
! #line 2127 "cdf.cc"
      break;
  
    case 26: /* cdf_define: ">>DEFINE" cdf_constant NAME as cdf_expr override  */
! #line 339 "cdf.y"
                  {
  		  if( keyword_tok((yyvsp[-3].string)) ) {
  		    error_msg((yylsp[-3]), "%s is a COBOL keyword", (yyvsp[-3].string));
--- 2076,2138 ----
  		    display_msg = NULL;
  		  }
  		}
! #line 2080 "cdf.cc"
      break;
  
    case 16: /* strings: LITERAL  */
! #line 316 "cdf.y"
                          {
  		  display_msg = xstrdup((yyvsp[0].string));
  		}
! #line 2088 "cdf.cc"
      break;
  
    case 17: /* strings: strings LITERAL  */
! #line 319 "cdf.y"
                                  {
  		  char *p = display_msg;
  		  display_msg = xasprintf("%s %s", p, (yyvsp[0].string));
  		  free(p);
  		}
! #line 2098 "cdf.cc"
      break;
  
    case 18: /* partials: partial  */
! #line 327 "cdf.y"
                  {
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2106 "cdf.cc"
      break;
  
    case 19: /* partials: partials partial  */
! #line 331 "cdf.y"
                  {
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2114 "cdf.cc"
      break;
  
    case 21: /* partial: ">>ELSE"  */
! #line 336 "cdf.y"
                                    { scanner_parsing_toggle(); }
! #line 2120 "cdf.cc"
      break;
  
    case 22: /* partial: ">>END-IF"  */
! #line 337 "cdf.y"
                                    { scanner_parsing_pop(); }
! #line 2126 "cdf.cc"
      break;
  
    case 25: /* partial: ">>END-EVALUATE"  */
! #line 340 "cdf.y"
                                    { scanner_parsing_pop(); }
! #line 2132 "cdf.cc"
      break;
  
    case 26: /* cdf_define: ">>DEFINE" cdf_constant NAME as cdf_expr override  */
! #line 344 "cdf.y"
                  {
  		  if( keyword_tok((yyvsp[-3].string)) ) {
  		    error_msg((yylsp[-3]), "%s is a COBOL keyword", (yyvsp[-3].string));
*************** yyreduce:
*** 2145,2185 ****
  		    }
  		    YYERROR;
  		  }
  		}
! #line 2150 "cdf.cc"
      break;
  
!   case 27: /* cdf_define: ">>DEFINE" cdf_constant NAME '=' cdf_expr override  */
! #line 358 "cdf.y"
                  {  /* accept, but as error */
  		  if( scanner_parsing() ) {
  		    error_msg((yylsp[-3]), "CDF error: %s = value invalid", (yyvsp[-3].string));
  		  }
  		}
! #line 2160 "cdf.cc"
      break;
  
    case 28: /* cdf_define: ">>DEFINE" cdf_constant NAME as OFF  */
! #line 364 "cdf.y"
                  {
  		  cdfval_off( (yyvsp[-2].string));
  		}
! #line 2168 "cdf.cc"
      break;
  
    case 29: /* cdf_define: ">>DEFINE" cdf_constant NAME as "PARAMETER" override  */
! #line 375 "cdf.y"
                  {
  		  if( 0 == cdf_dictionary().count((yyvsp[-3].string)) ) {
! 		    yywarn("CDF: '%s' is defined AS PARAMETER "
! 			    "but was not defined", (yyvsp[-3].string));
  		  }
  		}
! #line 2179 "cdf.cc"
      break;
  
    case 30: /* cdf_define: ">>DEFINE" FEATURE as ON  */
! #line 381 "cdf.y"
                                           {
  		  auto feature = cbl_gcobol_feature_t((yyvsp[-2].number));
  		  if( ! cobol_gcobol_feature_set(feature, true) ) {
--- 2150,2196 ----
  		    }
  		    YYERROR;
  		  }
+                   if( symbols_begin() < symbols_end() ) {
+                     cbl_field_t field = cdf_literalize((yyvsp[-3].string), (yyvsp[-1].cdfval));
+                     symbol_field_add(current_program_index(), &field);                    
+                   }
+ 
  		}
! #line 2160 "cdf.cc"
      break;
  
!   case 27: /* cdf_define: ">>DEFINE" cdf_constant NAME EQ cdf_expr override  */
! #line 368 "cdf.y"
                  {  /* accept, but as error */
  		  if( scanner_parsing() ) {
  		    error_msg((yylsp[-3]), "CDF error: %s = value invalid", (yyvsp[-3].string));
  		  }
  		}
! #line 2170 "cdf.cc"
      break;
  
    case 28: /* cdf_define: ">>DEFINE" cdf_constant NAME as OFF  */
! #line 374 "cdf.y"
                  {
  		  cdfval_off( (yyvsp[-2].string));
  		}
! #line 2178 "cdf.cc"
      break;
  
    case 29: /* cdf_define: ">>DEFINE" cdf_constant NAME as "PARAMETER" override  */
! #line 385 "cdf.y"
                  {
  		  if( 0 == cdf_dictionary().count((yyvsp[-3].string)) ) {
!                     cbl_message((yylsp[-3]), CdfParameterW,
!                                 "CDF: '%s' is defined AS PARAMETER "
!                                 "but was not defined", (yyvsp[-3].string));
  		  }
  		}
! #line 2190 "cdf.cc"
      break;
  
    case 30: /* cdf_define: ">>DEFINE" FEATURE as ON  */
! #line 392 "cdf.y"
                                           {
  		  auto feature = cbl_gcobol_feature_t((yyvsp[-2].number));
  		  if( ! cobol_gcobol_feature_set(feature, true) ) {
*************** yyreduce:
*** 2187,2197 ****
                                "%<>>DEFINE %%EBCDIC-MODE%> is invalid within program body");
  		  }
  		}
! #line 2191 "cdf.cc"
      break;
  
    case 31: /* cdf_define: ">>DEFINE" FEATURE as OFF  */
! #line 388 "cdf.y"
                                            {
  		  auto feature = cbl_gcobol_feature_t((yyvsp[-2].number));
  		  if( ! cobol_gcobol_feature_set(feature, false) ) {
--- 2198,2208 ----
                                "%<>>DEFINE %%EBCDIC-MODE%> is invalid within program body");
  		  }
  		}
! #line 2202 "cdf.cc"
      break;
  
    case 31: /* cdf_define: ">>DEFINE" FEATURE as OFF  */
! #line 399 "cdf.y"
                                            {
  		  auto feature = cbl_gcobol_feature_t((yyvsp[-2].number));
  		  if( ! cobol_gcobol_feature_set(feature, false) ) {
*************** yyreduce:
*** 2199,2246 ****
                                "%<>>DEFINE %%EBCDIC-MODE%> is invalid within program body");
  		  }
  		}
! #line 2203 "cdf.cc"
      break;
  
    case 34: /* override: %empty  */
! #line 399 "cdf.y"
                           { (yyval.boolean) = false; }
! #line 2209 "cdf.cc"
      break;
  
    case 35: /* override: OVERRIDE  */
! #line 400 "cdf.y"
                           { (yyval.boolean) = true; }
! #line 2215 "cdf.cc"
      break;
  
    case 36: /* cdf_turn: TURN except_names except_check  */
! #line 404 "cdf.y"
                  {
  		  apply_cdf_turn(exception_turn);
  		  exception_turn.clear();
  		}
! #line 2224 "cdf.cc"
      break;
  
    case 37: /* cdf_call_convention: "CALL"  */
! #line 411 "cdf.y"
                             {
                    current_call_convention(cbl_call_cobol_e);
                  }
! #line 2232 "cdf.cc"
      break;
  
    case 38: /* cdf_call_convention: "CALL (as C)"  */
! #line 414 "cdf.y"
                                {
                    current_call_convention(cbl_call_verbatim_e);
                  }
! #line 2240 "cdf.cc"
      break;
  
    case 39: /* cdf_push: ">>PUSH" cdf_stackable  */
! #line 419 "cdf.y"
                                         {
  		  switch( (yyvsp[0].number) ) {
                    case YDF_ALL: 		cdf_push(); break;
--- 2210,2257 ----
                                "%<>>DEFINE %%EBCDIC-MODE%> is invalid within program body");
  		  }
  		}
! #line 2214 "cdf.cc"
      break;
  
    case 34: /* override: %empty  */
! #line 410 "cdf.y"
                           { (yyval.boolean) = false; }
! #line 2220 "cdf.cc"
      break;
  
    case 35: /* override: OVERRIDE  */
! #line 411 "cdf.y"
                           { (yyval.boolean) = true; }
! #line 2226 "cdf.cc"
      break;
  
    case 36: /* cdf_turn: TURN except_names except_check  */
! #line 415 "cdf.y"
                  {
  		  apply_cdf_turn(exception_turn);
  		  exception_turn.clear();
  		}
! #line 2235 "cdf.cc"
      break;
  
    case 37: /* cdf_call_convention: "CALL"  */
! #line 422 "cdf.y"
                             {
                    current_call_convention(cbl_call_cobol_e);
                  }
! #line 2243 "cdf.cc"
      break;
  
    case 38: /* cdf_call_convention: "CALL (as C)"  */
! #line 425 "cdf.y"
                                {
                    current_call_convention(cbl_call_verbatim_e);
                  }
! #line 2251 "cdf.cc"
      break;
  
    case 39: /* cdf_push: ">>PUSH" cdf_stackable  */
! #line 430 "cdf.y"
                                         {
  		  switch( (yyvsp[0].number) ) {
                    case YDF_ALL: 		cdf_push(); break;
*************** yyreduce:
*** 2251,2261 ****
                    default: gcc_unreachable(); 
                    }
                  }
! #line 2255 "cdf.cc"
      break;
  
    case 40: /* cdf_pop: ">>POP" cdf_stackable  */
! #line 430 "cdf.y"
                                        {
  		  switch( (yyvsp[0].number) ) {
                    case YDF_ALL: 		cdf_pop(); break;
--- 2262,2272 ----
                    default: gcc_unreachable(); 
                    }
                  }
! #line 2266 "cdf.cc"
      break;
  
    case 40: /* cdf_pop: ">>POP" cdf_stackable  */
! #line 441 "cdf.y"
                                        {
  		  switch( (yyvsp[0].number) ) {
                    case YDF_ALL: 		cdf_pop(); break;
*************** yyreduce:
*** 2266,2354 ****
                    default: gcc_unreachable(); 
                    }
                  }
! #line 2270 "cdf.cc"
      break;
  
    case 41: /* cdf_stackable: ALL  */
! #line 442 "cdf.y"
                                  { (yyval.number) = YDF_ALL; }
! #line 2276 "cdf.cc"
      break;
  
    case 42: /* cdf_stackable: ">>CALL-CONVENTION"  */
! #line 443 "cdf.y"
                                  { (yyval.number) = YDF_CALL_CONVENTION; }
! #line 2282 "cdf.cc"
      break;
  
    case 43: /* cdf_stackable: ">>COBOL-WORDS"  */
! #line 444 "cdf.y"
                                  { (yyval.number) = YDF_COBOL_WORDS; }
! #line 2288 "cdf.cc"
      break;
  
    case 44: /* cdf_stackable: ">>DEFINE"  */
! #line 445 "cdf.y"
                                  { (yyval.number) = YDF_CDF_DEFINE; }
! #line 2294 "cdf.cc"
      break;
  
    case 45: /* cdf_stackable: ">>SOURCE FORMAT"  */
! #line 446 "cdf.y"
                                  { (yyval.number) = YDF_SOURCE_FORMAT; }
! #line 2300 "cdf.cc"
      break;
  
    case 48: /* except_name: "EXCEPTION NAME"  */
! #line 452 "cdf.y"
                                     {
  		  assert((yyvsp[0].number) != ec_none_e);
  		  exception_turn.add_exception(ec_type_t((yyvsp[0].number)));
  		}
! #line 2309 "cdf.cc"
      break;
  
    case 49: /* except_name: "EXCEPTION NAME" filenames  */
! #line 456 "cdf.y"
                                               {
  		  assert((yyvsp[-1].number) != ec_none_e);
  		  std::list<size_t> files((yyvsp[0].files)->begin(), (yyvsp[0].files)->end());
  		  exception_turn.add_exception(ec_type_t((yyvsp[-1].number)), files);
  		}
! #line 2319 "cdf.cc"
      break;
  
    case 50: /* except_check: CHECKING on  */
! #line 463 "cdf.y"
                               { (yyval.boolean) = exception_turn.enable(true); }
! #line 2325 "cdf.cc"
      break;
  
    case 51: /* except_check: CHECKING OFF  */
! #line 464 "cdf.y"
                               { (yyval.boolean) = exception_turn.enable(false); }
! #line 2331 "cdf.cc"
      break;
  
    case 52: /* except_check: CHECKING on with LOCATION  */
! #line 466 "cdf.y"
                  {
  		  (yyval.boolean) = exception_turn.enable(true, true);
  		}
! #line 2339 "cdf.cc"
      break;
  
    case 53: /* filenames: filename  */
! #line 471 "cdf.y"
                           {
  		  (yyval.files) = new std::set<size_t>;
  		  (yyval.files)->insert(symbol_index(symbol_elem_of((yyvsp[0].file))));
  		}
! #line 2348 "cdf.cc"
      break;
  
    case 54: /* filenames: filenames filename  */
! #line 475 "cdf.y"
                                     {
  		  (yyval.files) = (yyvsp[-1].files);
  		  auto inserted = (yyval.files)->insert(symbol_index(symbol_elem_of((yyvsp[0].file))));
--- 2277,2365 ----
                    default: gcc_unreachable(); 
                    }
                  }
! #line 2281 "cdf.cc"
      break;
  
    case 41: /* cdf_stackable: ALL  */
! #line 453 "cdf.y"
                                  { (yyval.number) = YDF_ALL; }
! #line 2287 "cdf.cc"
      break;
  
    case 42: /* cdf_stackable: ">>CALL-CONVENTION"  */
! #line 454 "cdf.y"
                                  { (yyval.number) = YDF_CALL_CONVENTION; }
! #line 2293 "cdf.cc"
      break;
  
    case 43: /* cdf_stackable: ">>COBOL-WORDS"  */
! #line 455 "cdf.y"
                                  { (yyval.number) = YDF_COBOL_WORDS; }
! #line 2299 "cdf.cc"
      break;
  
    case 44: /* cdf_stackable: ">>DEFINE"  */
! #line 456 "cdf.y"
                                  { (yyval.number) = YDF_CDF_DEFINE; }
! #line 2305 "cdf.cc"
      break;
  
    case 45: /* cdf_stackable: ">>SOURCE FORMAT"  */
! #line 457 "cdf.y"
                                  { (yyval.number) = YDF_SOURCE_FORMAT; }
! #line 2311 "cdf.cc"
      break;
  
    case 48: /* except_name: "EXCEPTION NAME"  */
! #line 463 "cdf.y"
                                     {
  		  assert((yyvsp[0].number) != ec_none_e);
  		  exception_turn.add_exception(ec_type_t((yyvsp[0].number)));
  		}
! #line 2320 "cdf.cc"
      break;
  
    case 49: /* except_name: "EXCEPTION NAME" filenames  */
! #line 467 "cdf.y"
                                               {
  		  assert((yyvsp[-1].number) != ec_none_e);
  		  std::list<size_t> files((yyvsp[0].files)->begin(), (yyvsp[0].files)->end());
  		  exception_turn.add_exception(ec_type_t((yyvsp[-1].number)), files);
  		}
! #line 2330 "cdf.cc"
      break;
  
    case 50: /* except_check: CHECKING on  */
! #line 474 "cdf.y"
                               { (yyval.boolean) = exception_turn.enable(true); }
! #line 2336 "cdf.cc"
      break;
  
    case 51: /* except_check: CHECKING OFF  */
! #line 475 "cdf.y"
                               { (yyval.boolean) = exception_turn.enable(false); }
! #line 2342 "cdf.cc"
      break;
  
    case 52: /* except_check: CHECKING on with LOCATION  */
! #line 477 "cdf.y"
                  {
  		  (yyval.boolean) = exception_turn.enable(true, true);
  		}
! #line 2350 "cdf.cc"
      break;
  
    case 53: /* filenames: filename  */
! #line 482 "cdf.y"
                           {
  		  (yyval.files) = new std::set<size_t>;
  		  (yyval.files)->insert(symbol_index(symbol_elem_of((yyvsp[0].file))));
  		}
! #line 2359 "cdf.cc"
      break;
  
    case 54: /* filenames: filenames filename  */
! #line 486 "cdf.y"
                                     {
  		  (yyval.files) = (yyvsp[-1].files);
  		  auto inserted = (yyval.files)->insert(symbol_index(symbol_elem_of((yyvsp[0].file))));
*************** yyreduce:
*** 2357,2367 ****
  			      "once for one exception condition", (yyvsp[0].file)->name);
  		  }
  		}
! #line 2361 "cdf.cc"
      break;
  
    case 55: /* filename: NAME  */
! #line 485 "cdf.y"
                  {
                    struct symbol_elem_t *e = symbol_file(PROGRAM, (yyvsp[0].string));
                    if( !(e && e->type == SymFile) ) {
--- 2368,2378 ----
  			      "once for one exception condition", (yyvsp[0].file)->name);
  		  }
  		}
! #line 2372 "cdf.cc"
      break;
  
    case 55: /* filename: NAME  */
! #line 496 "cdf.y"
                  {
                    struct symbol_elem_t *e = symbol_file(PROGRAM, (yyvsp[0].string));
                    if( !(e && e->type == SymFile) ) {
*************** yyreduce:
*** 2370,2403 ****
                    }
                    (yyval.file) = cbl_file_of(e);
                  }
! #line 2374 "cdf.cc"
      break;
  
    case 56: /* cdf_if: ">>IF" cdf_cond_expr  */
! #line 495 "cdf.y"
                                       {
  		  scanner_parsing(YDF_CDF_IF, (yyvsp[0].boolean));
  		}
! #line 2382 "cdf.cc"
      break;
  
    case 57: /* $@1: %empty  */
! #line 498 "cdf.y"
                               {
  		}
! #line 2389 "cdf.cc"
      break;
  
    case 58: /* cdf_if: ">>IF" error $@1 ">>END-IF"  */
! #line 499 "cdf.y"
                               { // not pushed, don't pop
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2397 "cdf.cc"
      break;
  
    case 66: /* cdf_cond_expr: NAME DEFINED  */
! #line 518 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  auto p = dictionary.find((yyvsp[-1].string));
--- 2381,2414 ----
                    }
                    (yyval.file) = cbl_file_of(e);
                  }
! #line 2385 "cdf.cc"
      break;
  
    case 56: /* cdf_if: ">>IF" cdf_cond_expr  */
! #line 506 "cdf.y"
                                       {
  		  scanner_parsing(YDF_CDF_IF, (yyvsp[0].boolean));
  		}
! #line 2393 "cdf.cc"
      break;
  
    case 57: /* $@1: %empty  */
! #line 509 "cdf.y"
                               {
  		}
! #line 2400 "cdf.cc"
      break;
  
    case 58: /* cdf_if: ">>IF" error $@1 ">>END-IF"  */
! #line 510 "cdf.y"
                               { // not pushed, don't pop
  		  if( ! scanner_parsing() ) YYACCEPT;
  		}
! #line 2408 "cdf.cc"
      break;
  
    case 66: /* cdf_cond_expr: NAME DEFINED  */
! #line 529 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  auto p = dictionary.find((yyvsp[-1].string));
*************** yyreduce:
*** 2412,2469 ****
  			   (yyvsp[-1].string), (yyval.boolean)? "true" : "false");
  		  }
  		}
! #line 2416 "cdf.cc"
      break;
  
    case 67: /* cdf_cond_expr: cdf_bool_expr  */
! #line 532 "cdf.y"
                                { (yyval.boolean) = (yyvsp[0].cdfval)((yylsp[0])) == 0? false : true; }
! #line 2422 "cdf.cc"
      break;
  
    case 68: /* cdf_cond_expr: FEATURE DEFINED  */
! #line 533 "cdf.y"
                                  {
  		  const auto& feature((yyvsp[-1].number));
  		  (yyval.boolean) = (feature == int(feature & cbl_gcobol_features));
  		  dbgmsg("CDF: feature 0x%02x is %s", (yyvsp[-1].number), (yyval.boolean)? "ON" : "OFF");
  		}
! #line 2432 "cdf.cc"
      break;
  
    case 69: /* cdf_bool_expr: cdf_bool_expr OR cdf_and  */
! #line 544 "cdf.y"
                                           { (yyval.cdfval) = cdfval_t((yyvsp[-2].cdfval)((yylsp[-2])) || (yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2438 "cdf.cc"
      break;
  
    case 71: /* cdf_and: cdf_and AND cdf_reloper  */
! #line 548 "cdf.y"
                                          { (yyval.cdfval) = cdfval_t((yyvsp[-2].cdfval)((yylsp[-2])) && (yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2444 "cdf.cc"
      break;
  
    case 74: /* cdf_reloper: NOT cdf_relexpr  */
! #line 553 "cdf.y"
                                  { (yyval.cdfval) = cdfval_t((yyvsp[0].cdfval).number? 1 : 0); }
! #line 2450 "cdf.cc"
      break;
  
    case 75: /* cdf_relexpr: cdf_relexpr '<' cdf_expr  */
! #line 556 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) <  (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2456 "cdf.cc"
      break;
  
    case 76: /* cdf_relexpr: cdf_relexpr LE cdf_expr  */
! #line 557 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) <= (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2462 "cdf.cc"
      break;
  
!   case 77: /* cdf_relexpr: cdf_relexpr '=' cdf_expr  */
! #line 558 "cdf.y"
!                                          {
  		  (yyval.cdfval) = cdfval_t(false);
  		  if( ( (yyvsp[-2].cdfval).string &&  (yyvsp[0].cdfval).string) ||
  		      (!(yyvsp[-2].cdfval).string && !(yyvsp[0].cdfval).string) )
--- 2423,2480 ----
  			   (yyvsp[-1].string), (yyval.boolean)? "true" : "false");
  		  }
  		}
! #line 2427 "cdf.cc"
      break;
  
    case 67: /* cdf_cond_expr: cdf_bool_expr  */
! #line 543 "cdf.y"
                                { (yyval.boolean) = (yyvsp[0].cdfval)((yylsp[0])) == 0? false : true; }
! #line 2433 "cdf.cc"
      break;
  
    case 68: /* cdf_cond_expr: FEATURE DEFINED  */
! #line 544 "cdf.y"
                                  {
  		  const auto& feature((yyvsp[-1].number));
  		  (yyval.boolean) = (feature == int(feature & cbl_gcobol_features));
  		  dbgmsg("CDF: feature 0x%02x is %s", (yyvsp[-1].number), (yyval.boolean)? "ON" : "OFF");
  		}
! #line 2443 "cdf.cc"
      break;
  
    case 69: /* cdf_bool_expr: cdf_bool_expr OR cdf_and  */
! #line 555 "cdf.y"
                                           { (yyval.cdfval) = cdfval_t((yyvsp[-2].cdfval)((yylsp[-2])) || (yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2449 "cdf.cc"
      break;
  
    case 71: /* cdf_and: cdf_and AND cdf_reloper  */
! #line 559 "cdf.y"
                                          { (yyval.cdfval) = cdfval_t((yyvsp[-2].cdfval)((yylsp[-2])) && (yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2455 "cdf.cc"
      break;
  
    case 74: /* cdf_reloper: NOT cdf_relexpr  */
! #line 564 "cdf.y"
                                  { (yyval.cdfval) = cdfval_t((yyvsp[0].cdfval).number? 1 : 0); }
! #line 2461 "cdf.cc"
      break;
  
    case 75: /* cdf_relexpr: cdf_relexpr '<' cdf_expr  */
! #line 567 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) <  (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2467 "cdf.cc"
      break;
  
    case 76: /* cdf_relexpr: cdf_relexpr LE cdf_expr  */
! #line 568 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) <= (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2473 "cdf.cc"
      break;
  
!   case 77: /* cdf_relexpr: cdf_relexpr EQ cdf_expr  */
! #line 569 "cdf.y"
!                                         {
  		  (yyval.cdfval) = cdfval_t(false);
  		  if( ( (yyvsp[-2].cdfval).string &&  (yyvsp[0].cdfval).string) ||
  		      (!(yyvsp[-2].cdfval).string && !(yyvsp[0].cdfval).string) )
*************** yyreduce:
*** 2476,2486 ****
  		    error_msg((yylsp[-2]), "%s", msg);
  		  }
  		}
! #line 2480 "cdf.cc"
      break;
  
    case 78: /* cdf_relexpr: cdf_relexpr NE cdf_expr  */
! #line 572 "cdf.y"
                  {
  		  (yyval.cdfval) = cdfval_t(false);
  		  if( ( (yyvsp[-2].cdfval).string &&  (yyvsp[0].cdfval).string) ||
--- 2487,2497 ----
  		    error_msg((yylsp[-2]), "%s", msg);
  		  }
  		}
! #line 2491 "cdf.cc"
      break;
  
    case 78: /* cdf_relexpr: cdf_relexpr NE cdf_expr  */
! #line 583 "cdf.y"
                  {
  		  (yyval.cdfval) = cdfval_t(false);
  		  if( ( (yyvsp[-2].cdfval).string &&  (yyvsp[0].cdfval).string) ||
*************** yyreduce:
*** 2494,2558 ****
  		    error_msg((yylsp[-2]), "%s", msg);
  		  }
  		}
! #line 2498 "cdf.cc"
      break;
  
    case 79: /* cdf_relexpr: cdf_relexpr GE cdf_expr  */
! #line 585 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) >= (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2504 "cdf.cc"
      break;
  
    case 80: /* cdf_relexpr: cdf_relexpr '>' cdf_expr  */
! #line 586 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) >  (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2510 "cdf.cc"
      break;
  
    case 82: /* cdf_expr: cdf_expr '+' cdf_expr  */
! #line 590 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) + (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2516 "cdf.cc"
      break;
  
    case 83: /* cdf_expr: cdf_expr '-' cdf_expr  */
! #line 591 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) - (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2522 "cdf.cc"
      break;
  
    case 84: /* cdf_expr: cdf_expr '*' cdf_expr  */
! #line 592 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) * (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2528 "cdf.cc"
      break;
  
    case 85: /* cdf_expr: cdf_expr '/' cdf_expr  */
! #line 593 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) / (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2534 "cdf.cc"
      break;
  
    case 86: /* cdf_expr: '+' cdf_expr  */
! #line 594 "cdf.y"
                                                  { (yyval.cdfval) = (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2540 "cdf.cc"
      break;
  
    case 87: /* cdf_expr: '-' cdf_expr  */
! #line 595 "cdf.y"
                                                  { (yyval.cdfval) = negate((yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2546 "cdf.cc"
      break;
  
    case 88: /* cdf_expr: '(' cdf_bool_expr ')'  */
! #line 596 "cdf.y"
                                                  { (yyval.cdfval) = (yyvsp[-1].cdfval)((yylsp[-1])); }
! #line 2552 "cdf.cc"
      break;
  
    case 90: /* cdf_factor: NAME  */
! #line 600 "cdf.y"
                       {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  auto that = dictionary.find((yyvsp[0].string));
--- 2505,2569 ----
  		    error_msg((yylsp[-2]), "%s", msg);
  		  }
  		}
! #line 2509 "cdf.cc"
      break;
  
    case 79: /* cdf_relexpr: cdf_relexpr GE cdf_expr  */
! #line 596 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) >= (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2515 "cdf.cc"
      break;
  
    case 80: /* cdf_relexpr: cdf_relexpr '>' cdf_expr  */
! #line 597 "cdf.y"
                                           { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) >  (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2521 "cdf.cc"
      break;
  
    case 82: /* cdf_expr: cdf_expr '+' cdf_expr  */
! #line 601 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) + (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2527 "cdf.cc"
      break;
  
    case 83: /* cdf_expr: cdf_expr '-' cdf_expr  */
! #line 602 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) - (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2533 "cdf.cc"
      break;
  
    case 84: /* cdf_expr: cdf_expr '*' cdf_expr  */
! #line 603 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) * (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2539 "cdf.cc"
      break;
  
    case 85: /* cdf_expr: cdf_expr '/' cdf_expr  */
! #line 604 "cdf.y"
                                        { (yyval.cdfval) = (yyvsp[-2].cdfval)((yylsp[-2])) / (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2545 "cdf.cc"
      break;
  
    case 86: /* cdf_expr: '+' cdf_expr  */
! #line 605 "cdf.y"
                                                  { (yyval.cdfval) = (yyvsp[0].cdfval)((yylsp[0])); }
! #line 2551 "cdf.cc"
      break;
  
    case 87: /* cdf_expr: '-' cdf_expr  */
! #line 606 "cdf.y"
                                                  { (yyval.cdfval) = negate((yyvsp[0].cdfval)((yylsp[0]))); }
! #line 2557 "cdf.cc"
      break;
  
    case 88: /* cdf_expr: '(' cdf_bool_expr ')'  */
! #line 607 "cdf.y"
                                                  { (yyval.cdfval) = (yyvsp[-1].cdfval)((yylsp[-1])); }
! #line 2563 "cdf.cc"
      break;
  
    case 90: /* cdf_factor: NAME  */
! #line 611 "cdf.y"
                       {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  auto that = dictionary.find((yyvsp[0].string));
*************** yyreduce:
*** 2560,2589 ****
  		    (yyval.cdfval) = that->second;
  		  } else {
  		    if( ! scanner_parsing() ) {
! 		      yywarn("CDF skipping: no such variable '%s' (ignored)", (yyvsp[0].string));
  		    } else {
  		      error_msg((yylsp[0]), "CDF error: no such variable '%s'", (yyvsp[0].string));
  		    }
  		    (yyval.cdfval) = cdfval_t();
  		  }
  		}
! #line 2571 "cdf.cc"
      break;
  
    case 91: /* cdf_factor: NUMBER  */
! #line 614 "cdf.y"
                         { (yyval.cdfval) = cdfval_t((yyvsp[0].number)); }
! #line 2577 "cdf.cc"
      break;
  
    case 92: /* cdf_factor: LITERAL  */
! #line 615 "cdf.y"
                          { (yyval.cdfval) = cdfval_t((yyvsp[0].string)); }
! #line 2583 "cdf.cc"
      break;
  
    case 93: /* cdf_factor: "numeric literal"  */
! #line 616 "cdf.y"
                         {
  		  auto value = integer_literal((yyvsp[0].string));
  		  if( !value.second ) {
--- 2571,2601 ----
  		    (yyval.cdfval) = that->second;
  		  } else {
  		    if( ! scanner_parsing() ) {
! 		      cbl_message(CdfNotFoundW,
!                                   "CDF skipping: no such variable '%s'", (yyvsp[0].string));
  		    } else {
  		      error_msg((yylsp[0]), "CDF error: no such variable '%s'", (yyvsp[0].string));
  		    }
  		    (yyval.cdfval) = cdfval_t();
  		  }
  		}
! #line 2583 "cdf.cc"
      break;
  
    case 91: /* cdf_factor: NUMBER  */
! #line 626 "cdf.y"
                         { (yyval.cdfval) = cdfval_t((yyvsp[0].number)); }
! #line 2589 "cdf.cc"
      break;
  
    case 92: /* cdf_factor: LITERAL  */
! #line 627 "cdf.y"
                          { (yyval.cdfval) = cdfval_t((yyvsp[0].string)); }
! #line 2595 "cdf.cc"
      break;
  
    case 93: /* cdf_factor: "numeric literal"  */
! #line 628 "cdf.y"
                         {
  		  auto value = integer_literal((yyvsp[0].string));
  		  if( !value.second ) {
*************** yyreduce:
*** 2593,2603 ****
  		  }
  		  (yyval.cdfval) = cdfval_t(value.first);
  		}
! #line 2597 "cdf.cc"
      break;
  
    case 97: /* copybook_name: COPY name_one  */
! #line 633 "cdf.y"
                  {
  		  if( -1 == copybook.open((yylsp[0]), (yyvsp[0].cdfarg).string) ) {
  		    error_msg((yylsp[0]), "could not open copybook file "
--- 2605,2615 ----
  		  }
  		  (yyval.cdfval) = cdfval_t(value.first);
  		}
! #line 2609 "cdf.cc"
      break;
  
    case 97: /* copybook_name: COPY name_one  */
! #line 645 "cdf.y"
                  {
  		  if( -1 == copybook.open((yylsp[0]), (yyvsp[0].cdfarg).string) ) {
  		    error_msg((yylsp[0]), "could not open copybook file "
*************** yyreduce:
*** 2605,2615 ****
  		    YYABORT;
  		  }
  		}
! #line 2609 "cdf.cc"
      break;
  
    case 98: /* copybook_name: COPY name_one IN name_one  */
! #line 641 "cdf.y"
                  {
  		  copybook.library((yylsp[0]), (yyvsp[0].cdfarg).string);
  		  if( -1 == copybook.open((yylsp[-2]), (yyvsp[-2].cdfarg).string) ) {
--- 2617,2627 ----
  		    YYABORT;
  		  }
  		}
! #line 2621 "cdf.cc"
      break;
  
    case 98: /* copybook_name: COPY name_one IN name_one  */
! #line 653 "cdf.y"
                  {
  		  copybook.library((yylsp[0]), (yyvsp[0].cdfarg).string);
  		  if( -1 == copybook.open((yylsp[-2]), (yyvsp[-2].cdfarg).string) ) {
*************** yyreduce:
*** 2618,2628 ****
  		    YYABORT;
  		  }
  		}
! #line 2622 "cdf.cc"
      break;
  
    case 101: /* replace_by: name_any BY name_any  */
! #line 656 "cdf.y"
                  {
  		  bool add_whitespace = false;
  		  replace_type_t type = {};
--- 2630,2640 ----
  		    YYABORT;
  		  }
  		}
! #line 2634 "cdf.cc"
      break;
  
    case 101: /* replace_by: name_any BY name_any  */
! #line 668 "cdf.y"
                  {
  		  bool add_whitespace = false;
  		  replace_type_t type = {};
*************** yyreduce:
*** 2651,2677 ****
  		  }
  		  copybook.replacement( type, (yyvsp[-2].cdfarg).string, replacement );
  		}
! #line 2655 "cdf.cc"
      break;
  
    case 103: /* suppress: SUPPRESS  */
! #line 688 "cdf.y"
                  {
  		  copybook.suppress();
  		}
! #line 2663 "cdf.cc"
      break;
  
    case 105: /* name_any: PSEUDOTEXT  */
! #line 694 "cdf.y"
                             {
  		  (yyval.cdfarg) = cdf_arg_t{YDF_PSEUDOTEXT, (yyvsp[0].string)};
  		}
! #line 2671 "cdf.cc"
      break;
  
    case 106: /* name_one: NAME  */
! #line 700 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  cdf_arg_t arg = { YDF_NAME, (yyvsp[0].string) };
--- 2663,2689 ----
  		  }
  		  copybook.replacement( type, (yyvsp[-2].cdfarg).string, replacement );
  		}
! #line 2667 "cdf.cc"
      break;
  
    case 103: /* suppress: SUPPRESS  */
! #line 700 "cdf.y"
                  {
  		  copybook.suppress();
  		}
! #line 2675 "cdf.cc"
      break;
  
    case 105: /* name_any: PSEUDOTEXT  */
! #line 706 "cdf.y"
                             {
  		  (yyval.cdfarg) = cdf_arg_t{YDF_PSEUDOTEXT, (yyvsp[0].string)};
  		}
! #line 2683 "cdf.cc"
      break;
  
    case 106: /* name_one: NAME  */
! #line 712 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  cdf_arg_t arg = { YDF_NAME, (yyvsp[0].string) };
*************** yyreduce:
*** 2682,2704 ****
  		  }
  		  (yyval.cdfarg) = arg;
  		}
! #line 2686 "cdf.cc"
      break;
  
    case 107: /* name_one: "numeric literal"  */
! #line 710 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_NUMSTR, (yyvsp[0].string)}; }
! #line 2692 "cdf.cc"
      break;
  
    case 108: /* name_one: LITERAL  */
! #line 711 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_LITERAL, (yyvsp[0].string)}; }
! #line 2698 "cdf.cc"
      break;
  
    case 109: /* namelit: name  */
! #line 715 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  cdf_arg_t arg = { YDF_NAME, (yyvsp[0].string) };
--- 2694,2716 ----
  		  }
  		  (yyval.cdfarg) = arg;
  		}
! #line 2698 "cdf.cc"
      break;
  
    case 107: /* name_one: "numeric literal"  */
! #line 722 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_NUMSTR, (yyvsp[0].string)}; }
! #line 2704 "cdf.cc"
      break;
  
    case 108: /* name_one: LITERAL  */
! #line 723 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_LITERAL, (yyvsp[0].string)}; }
! #line 2710 "cdf.cc"
      break;
  
    case 109: /* namelit: name  */
! #line 727 "cdf.y"
                  {
                    cdf_values_t& dictionary( cdf_dictionary() );
  		  cdf_arg_t arg = { YDF_NAME, (yyvsp[0].string) };
*************** yyreduce:
*** 2709,2719 ****
  		  }
  		  (yyval.cdfarg) = arg;
  		}
! #line 2713 "cdf.cc"
      break;
  
    case 110: /* namelit: name subscripts  */
! #line 726 "cdf.y"
                  {
  		  char *s = xasprintf( "%s%s", (yyvsp[-1].string), (yyvsp[0].string) );
  		  free(const_cast<char*>((yyvsp[-1].string)));
--- 2721,2731 ----
  		  }
  		  (yyval.cdfarg) = arg;
  		}
! #line 2725 "cdf.cc"
      break;
  
    case 110: /* namelit: name subscripts  */
! #line 738 "cdf.y"
                  {
  		  char *s = xasprintf( "%s%s", (yyvsp[-1].string), (yyvsp[0].string) );
  		  free(const_cast<char*>((yyvsp[-1].string)));
*************** yyreduce:
*** 2722,2744 ****
  		  cdf_arg_t arg = { YDF_NAME, s };
  		  (yyval.cdfarg) = arg;
  		}
! #line 2726 "cdf.cc"
      break;
  
    case 111: /* namelit: "numeric literal"  */
! #line 734 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_NUMSTR, (yyvsp[0].string)}; }
! #line 2732 "cdf.cc"
      break;
  
    case 112: /* namelit: LITERAL  */
! #line 735 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_LITERAL, (yyvsp[0].string)}; }
! #line 2738 "cdf.cc"
      break;
  
    case 114: /* name: name inof NAME  */
! #line 740 "cdf.y"
                  {
  		  char *s = xasprintf( "%s %s %s", (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string) );
  		  assert((yyval.string) == (yyvsp[-2].string));
--- 2734,2756 ----
  		  cdf_arg_t arg = { YDF_NAME, s };
  		  (yyval.cdfarg) = arg;
  		}
! #line 2738 "cdf.cc"
      break;
  
    case 111: /* namelit: "numeric literal"  */
! #line 746 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_NUMSTR, (yyvsp[0].string)}; }
! #line 2744 "cdf.cc"
      break;
  
    case 112: /* namelit: LITERAL  */
! #line 747 "cdf.y"
                          { (yyval.cdfarg) = cdf_arg_t{YDF_LITERAL, (yyvsp[0].string)}; }
! #line 2750 "cdf.cc"
      break;
  
    case 114: /* name: name inof NAME  */
! #line 752 "cdf.y"
                  {
  		  char *s = xasprintf( "%s %s %s", (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string) );
  		  assert((yyval.string) == (yyvsp[-2].string));
*************** yyreduce:
*** 2746,2768 ****
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2750 "cdf.cc"
      break;
  
    case 115: /* inof: IN  */
! #line 748 "cdf.y"
                     { static const char in[] = "IN"; (yyval.string) = in; }
! #line 2756 "cdf.cc"
      break;
  
    case 116: /* inof: OF  */
! #line 749 "cdf.y"
                     { static const char of[] = "OF"; (yyval.string) = of; }
! #line 2762 "cdf.cc"
      break;
  
    case 118: /* subscripts: subscripts subscript  */
! #line 754 "cdf.y"
                  {
  		  char *s = xasprintf("%s%s", (yyvsp[-1].string), (yyvsp[0].string) );
  		  if( (yyval.string) != (yyvsp[-1].string) ) free(const_cast<char*>((yyval.string)));
--- 2758,2780 ----
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2762 "cdf.cc"
      break;
  
    case 115: /* inof: IN  */
! #line 760 "cdf.y"
                     { static const char in[] = "IN"; (yyval.string) = in; }
! #line 2768 "cdf.cc"
      break;
  
    case 116: /* inof: OF  */
! #line 761 "cdf.y"
                     { static const char of[] = "OF"; (yyval.string) = of; }
! #line 2774 "cdf.cc"
      break;
  
    case 118: /* subscripts: subscripts subscript  */
! #line 766 "cdf.y"
                  {
  		  char *s = xasprintf("%s%s", (yyvsp[-1].string), (yyvsp[0].string) );
  		  if( (yyval.string) != (yyvsp[-1].string) ) free(const_cast<char*>((yyval.string)));
*************** yyreduce:
*** 2770,2780 ****
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2774 "cdf.cc"
      break;
  
    case 120: /* subscript: "(" subscript ")"  */
! #line 764 "cdf.y"
                  {
  		  char *s = xasprintf( "%s%s%s", (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string) );
  		  free(const_cast<char*>((yyvsp[-2].string)));
--- 2782,2792 ----
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2786 "cdf.cc"
      break;
  
    case 120: /* subscript: "(" subscript ")"  */
! #line 776 "cdf.y"
                  {
  		  char *s = xasprintf( "%s%s%s", (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string) );
  		  free(const_cast<char*>((yyvsp[-2].string)));
*************** yyreduce:
*** 2782,2792 ****
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2786 "cdf.cc"
      break;
  
  
! #line 2790 "cdf.cc"
  
        default: break;
      }
--- 2794,2804 ----
  		  free(const_cast<char*>((yyvsp[0].string)));
  		  (yyval.string) = s;
  		}
! #line 2798 "cdf.cc"
      break;
  
  
! #line 2802 "cdf.cc"
  
        default: break;
      }
*************** yyreturnlab:
*** 3015,3021 ****
    return yyresult;
  }
  
! #line 785 "cdf.y"
  
  
  static YYLTYPE cdf_location;
--- 3027,3033 ----
    return yyresult;
  }
  
! #line 797 "cdf.y"
  
  
  static YYLTYPE cdf_location;
*************** cdfval_base_t::operator()( const YDFLTYP
*** 3186,3188 ****
--- 3198,3202 ----
    // cppcheck-suppress returnTempReference
    return verify_integer(loc, *this) ? *this : zero;
  }
+ 
+   
diff -Nrcpad gcc-15.2.0/gcc/cobol/cdf.h gcc-16.1.0-RC-20260423/gcc/cobol/cdf.h
*** gcc-15.2.0/gcc/cobol/cdf.h	Fri Aug  8 07:17:53 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cdf.h	Thu Apr 23 11:40:07 2026
***************
*** 53,59 ****
  extern int ydfdebug;
  #endif
  /* "%code requires" blocks.  */
! #line 103 "cdf.y"
  
    #include "cdfval.h"
  
--- 53,59 ----
  extern int ydfdebug;
  #endif
  /* "%code requires" blocks.  */
! #line 105 "cdf.y"
  
    #include "cdfval.h"
  
*************** extern int ydfdebug;
*** 105,112 ****
    cdfval_t operator/( const cdfval_base_t& lhs, const cdfval_base_t& rhs );
    cdfval_t negate( cdfval_base_t lhs );
  
  
! #line 110 "cdf.h"
  
  /* Token kinds.  */
  #ifndef YDFTOKENTYPE
--- 105,115 ----
    cdfval_t operator/( const cdfval_base_t& lhs, const cdfval_base_t& rhs );
    cdfval_t negate( cdfval_base_t lhs );
  
+   cbl_field_t
+   cdf_literalize( const std::string& name, const cdfval_t& value );
+ 
  
! #line 113 "cdf.h"
  
  /* Token kinds.  */
  #ifndef YDFTOKENTYPE
*************** extern int ydfdebug;
*** 116,176 ****
      YDF_YDFEMPTY = -2,
      YDF_YYEOF = 0,                 /* "end of file"  */
      YDF_YDFerror = 256,            /* error  */
!     YDF_YDFUNDEF = 948,            /* "invalid token"  */
!     YDF_BOOL = 949,                /* BOOL  */
!     YDF_FEATURE = 365,             /* FEATURE  */
!     YDF_NUMBER = 303,              /* NUMBER  */
      YDF_EXCEPTION_NAME = 280,      /* "EXCEPTION NAME"  */
!     YDF_BY = 486,                  /* BY  */
!     YDF_COPY = 362,                /* COPY  */
!     YDF_CDF_DISPLAY = 384,         /* ">>DISPLAY"  */
!     YDF_IN = 605,                  /* IN  */
      YDF_NAME = 286,                /* NAME  */
!     YDF_NUMSTR = 305,              /* "numeric literal"  */
!     YDF_OF = 686,                  /* OF  */
!     YDF_PSEUDOTEXT = 721,          /* PSEUDOTEXT  */
!     YDF_REPLACING = 743,           /* REPLACING  */
!     YDF_LITERAL = 298,             /* LITERAL  */
!     YDF_SUPPRESS = 376,            /* SUPPRESS  */
!     YDF_LSUB = 367,                /* "("  */
!     YDF_SUBSCRIPT = 375,           /* SUBSCRIPT  */
!     YDF_RSUB = 372,                /* ")"  */
!     YDF_CDF_DEFINE = 383,          /* ">>DEFINE"  */
!     YDF_CDF_IF = 385,              /* ">>IF"  */
!     YDF_CDF_ELSE = 386,            /* ">>ELSE"  */
!     YDF_CDF_END_IF = 387,          /* ">>END-IF"  */
!     YDF_CDF_EVALUATE = 388,        /* ">>EVALUATE"  */
!     YDF_CDF_WHEN = 389,            /* ">>WHEN"  */
!     YDF_CDF_END_EVALUATE = 390,    /* ">>END-EVALUATE"  */
!     YDF_ALL = 450,                 /* ALL  */
!     YDF_CALL_CONVENTION = 391,     /* ">>CALL-CONVENTION"  */
!     YDF_COBOL_WORDS = 380,         /* ">>COBOL-WORDS"  */
!     YDF_CDF_PUSH = 394,            /* ">>PUSH"  */
!     YDF_CDF_POP = 395,             /* ">>POP"  */
!     YDF_SOURCE_FORMAT = 396,       /* ">>SOURCE FORMAT"  */
!     YDF_AS = 468,                  /* AS  */
!     YDF_CONSTANT = 361,            /* CONSTANT  */
!     YDF_DEFINED = 363,             /* DEFINED  */
!     YDF_OTHER = 698,               /* OTHER  */
!     YDF_PARAMETER_kw = 368,        /* "PARAMETER"  */
!     YDF_OFF = 687,                 /* OFF  */
!     YDF_OVERRIDE = 369,            /* OVERRIDE  */
!     YDF_THRU = 939,                /* THRU  */
!     YDF_TRUE_kw = 813,             /* "True"  */
!     YDF_CALL_COBOL = 392,          /* "CALL"  */
!     YDF_CALL_VERBATIM = 393,       /* "CALL (as C)"  */
!     YDF_TURN = 815,                /* TURN  */
!     YDF_CHECKING = 496,            /* CHECKING  */
!     YDF_LOCATION = 649,            /* LOCATION  */
!     YDF_ON = 689,                  /* ON  */
!     YDF_WITH = 841,                /* WITH  */
!     YDF_OR = 940,                  /* OR  */
!     YDF_AND = 941,                 /* AND  */
!     YDF_NOT = 942,                 /* NOT  */
!     YDF_NE = 943,                  /* NE  */
!     YDF_LE = 944,                  /* LE  */
!     YDF_GE = 945,                  /* GE  */
!     YDF_NEG = 947                  /* NEG  */
    };
    typedef enum ydftokentype ydftoken_kind_t;
  #endif
--- 119,180 ----
      YDF_YDFEMPTY = -2,
      YDF_YYEOF = 0,                 /* "end of file"  */
      YDF_YDFerror = 256,            /* error  */
!     YDF_YDFUNDEF = 959,            /* "invalid token"  */
!     YDF_BOOL = 960,                /* BOOL  */
!     YDF_FEATURE = 367,             /* FEATURE  */
!     YDF_NUMBER = 304,              /* NUMBER  */
      YDF_EXCEPTION_NAME = 280,      /* "EXCEPTION NAME"  */
!     YDF_BY = 488,                  /* BY  */
!     YDF_COPY = 364,                /* COPY  */
!     YDF_CDF_DISPLAY = 386,         /* ">>DISPLAY"  */
!     YDF_IN = 606,                  /* IN  */
      YDF_NAME = 286,                /* NAME  */
!     YDF_NUMSTR = 306,              /* "numeric literal"  */
!     YDF_OF = 687,                  /* OF  */
!     YDF_PSEUDOTEXT = 723,          /* PSEUDOTEXT  */
!     YDF_REPLACING = 745,           /* REPLACING  */
!     YDF_LITERAL = 299,             /* LITERAL  */
!     YDF_SUPPRESS = 378,            /* SUPPRESS  */
!     YDF_LSUB = 369,                /* "("  */
!     YDF_SUBSCRIPT = 377,           /* SUBSCRIPT  */
!     YDF_RSUB = 374,                /* ")"  */
!     YDF_CDF_DEFINE = 385,          /* ">>DEFINE"  */
!     YDF_CDF_IF = 387,              /* ">>IF"  */
!     YDF_CDF_ELSE = 388,            /* ">>ELSE"  */
!     YDF_CDF_END_IF = 389,          /* ">>END-IF"  */
!     YDF_CDF_EVALUATE = 390,        /* ">>EVALUATE"  */
!     YDF_CDF_WHEN = 391,            /* ">>WHEN"  */
!     YDF_CDF_END_EVALUATE = 392,    /* ">>END-EVALUATE"  */
!     YDF_ALL = 452,                 /* ALL  */
!     YDF_CALL_CONVENTION = 393,     /* ">>CALL-CONVENTION"  */
!     YDF_COBOL_WORDS = 382,         /* ">>COBOL-WORDS"  */
!     YDF_CDF_PUSH = 396,            /* ">>PUSH"  */
!     YDF_CDF_POP = 397,             /* ">>POP"  */
!     YDF_SOURCE_FORMAT = 398,       /* ">>SOURCE FORMAT"  */
!     YDF_AS = 470,                  /* AS  */
!     YDF_CONSTANT = 363,            /* CONSTANT  */
!     YDF_DEFINED = 365,             /* DEFINED  */
!     YDF_OTHER = 699,               /* OTHER  */
!     YDF_PARAMETER_kw = 370,        /* "PARAMETER"  */
!     YDF_OFF = 688,                 /* OFF  */
!     YDF_OVERRIDE = 371,            /* OVERRIDE  */
!     YDF_THRU = 950,                /* THRU  */
!     YDF_TRUE_kw = 815,             /* "True"  */
!     YDF_CALL_COBOL = 394,          /* "CALL"  */
!     YDF_CALL_VERBATIM = 395,       /* "CALL (as C)"  */
!     YDF_TURN = 817,                /* TURN  */
!     YDF_CHECKING = 498,            /* CHECKING  */
!     YDF_LOCATION = 650,            /* LOCATION  */
!     YDF_ON = 690,                  /* ON  */
!     YDF_WITH = 844,                /* WITH  */
!     YDF_OR = 951,                  /* OR  */
!     YDF_AND = 952,                 /* AND  */
!     YDF_NOT = 953,                 /* NOT  */
!     YDF_EQ = 298,                  /* EQ  */
!     YDF_NE = 954,                  /* NE  */
!     YDF_LE = 955,                  /* LE  */
!     YDF_GE = 956,                  /* GE  */
!     YDF_NEG = 958                  /* NEG  */
    };
    typedef enum ydftokentype ydftoken_kind_t;
  #endif
*************** extern int ydfdebug;
*** 179,185 ****
  #if ! defined YDFSTYPE && ! defined YDFSTYPE_IS_DECLARED
  union YDFSTYPE
  {
! #line 177 "cdf.y"
  
      bool boolean;
      int number;
--- 183,189 ----
  #if ! defined YDFSTYPE && ! defined YDFSTYPE_IS_DECLARED
  union YDFSTYPE
  {
! #line 182 "cdf.y"
  
      bool boolean;
      int number;
*************** union YDFSTYPE
*** 189,195 ****
      cbl_file_t *file;
      std::set<size_t> *files;
  
! #line 193 "cdf.h"
  
  };
  typedef union YDFSTYPE YDFSTYPE;
--- 193,199 ----
      cbl_file_t *file;
      std::set<size_t> *files;
  
! #line 197 "cdf.h"
  
  };
  typedef union YDFSTYPE YDFSTYPE;
diff -Nrcpad gcc-15.2.0/gcc/cobol/cdf.y gcc-16.1.0-RC-20260423/gcc/cobol/cdf.y
*** gcc-15.2.0/gcc/cobol/cdf.y	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cdf.y	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 30,38 ****
  %{
  
  #include "cobol-system.h"
! #include "coretypes.h"
! #include "tree.h"
  #undef yy_flex_debug
  #include "../../libgcobol/ec.h"
  #include "../../libgcobol/common-defs.h"
  #include "util.h"
--- 30,40 ----
  %{
  
  #include "cobol-system.h"
! #include <coretypes.h>
! #include <tree.h>
! 
  #undef yy_flex_debug
+ 
  #include "../../libgcobol/ec.h"
  #include "../../libgcobol/common-defs.h"
  #include "util.h"
*************** void input_file_status_notify();
*** 151,156 ****
--- 153,161 ----
    cdfval_t operator/( const cdfval_base_t& lhs, const cdfval_base_t& rhs );
    cdfval_t negate( cdfval_base_t lhs );
  
+   cbl_field_t
+   cdf_literalize( const std::string& name, const cdfval_t& value );
+ 
  }
  
  %{
*************** apply_cdf_turn( const exception_turn_t&
*** 198,204 ****
  %type	<cdfarg>	namelit name_any name_one
  %type	<string>	name subscript subscripts inof
  %token <boolean>  BOOL
! %token <number>  FEATURE 365  NUMBER 303  EXCEPTION_NAME 280    "EXCEPTION NAME"
  
  %type	<cdfval>	cdf_expr
  %type	<cdfval>	cdf_relexpr cdf_reloper cdf_and cdf_bool_expr
--- 203,209 ----
  %type	<cdfarg>	namelit name_any name_one
  %type	<string>	name subscript subscripts inof
  %token <boolean>  BOOL
! %token <number>  FEATURE 367  NUMBER 304  EXCEPTION_NAME 280    "EXCEPTION NAME"
  
  %type	<cdfval>	cdf_expr
  %type	<cdfval>	cdf_relexpr cdf_reloper cdf_and cdf_bool_expr
*************** apply_cdf_turn( const exception_turn_t&
*** 210,264 ****
  
  %type   <number>        cdf_stackable
  
! %token BY 486
! %token COPY 362
! %token CDF_DISPLAY 384    ">>DISPLAY"
! %token IN 605
  %token NAME 286
! %token NUMSTR 305    "numeric literal"
! %token OF 686
! %token PSEUDOTEXT 721
! %token REPLACING 743
! %token LITERAL 298
! %token SUPPRESS 376
  
! %token LSUB 367    "("
! %token SUBSCRIPT 375  RSUB 372    ")"
  
! %token CDF_DEFINE 383    ">>DEFINE"
! %token CDF_IF 385    ">>IF"
! %token CDF_ELSE 386    ">>ELSE"
! %token CDF_END_IF 387    ">>END-IF"
! %token CDF_EVALUATE 388    ">>EVALUATE"
! %token CDF_WHEN 389    ">>WHEN"
! %token CDF_END_EVALUATE 390    ">>END-EVALUATE"
  
! %token ALL 450
! %token CALL_CONVENTION 391    ">>CALL-CONVENTION"
! %token COBOL_WORDS 380    ">>COBOL-WORDS"
! %token CDF_PUSH 394    ">>PUSH"
! %token CDF_POP 395    ">>POP"
! %token SOURCE_FORMAT 396    ">>SOURCE FORMAT"
  
! %token AS 468  CONSTANT 361  DEFINED 363
  %type	<boolean>	     DEFINED
! %token OTHER 698  PARAMETER_kw 368    "PARAMETER"
! %token OFF 687  OVERRIDE 369
! %token THRU 939
! %token TRUE_kw 813    "True"
  
! %token CALL_COBOL 392    "CALL"
! %token CALL_VERBATIM 393    "CALL (as C)"
  
! %token TURN 815  CHECKING 496  LOCATION 649  ON 689  WITH 841
  
! %left OR 940
! %left AND 941
! %right NOT 942
! %left '<'  '>'  '='  NE 943  LE 944  GE 945
  %left '-'  '+'
  %left '*'  '/'
! %right NEG 947
  
  %define api.prefix {ydf}
  %define api.token.prefix{YDF_}
--- 215,269 ----
  
  %type   <number>        cdf_stackable
  
! %token BY 488
! %token COPY 364
! %token CDF_DISPLAY 386    ">>DISPLAY"
! %token IN 606
  %token NAME 286
! %token NUMSTR 306    "numeric literal"
! %token OF 687
! %token PSEUDOTEXT 723
! %token REPLACING 745
! %token LITERAL 299
! %token SUPPRESS 378
  
! %token LSUB 369    "("
! %token SUBSCRIPT 377  RSUB 374    ")"
  
! %token CDF_DEFINE 385    ">>DEFINE"
! %token CDF_IF 387    ">>IF"
! %token CDF_ELSE 388    ">>ELSE"
! %token CDF_END_IF 389    ">>END-IF"
! %token CDF_EVALUATE 390    ">>EVALUATE"
! %token CDF_WHEN 391    ">>WHEN"
! %token CDF_END_EVALUATE 392    ">>END-EVALUATE"
  
! %token ALL 452
! %token CALL_CONVENTION 393    ">>CALL-CONVENTION"
! %token COBOL_WORDS 382    ">>COBOL-WORDS"
! %token CDF_PUSH 396    ">>PUSH"
! %token CDF_POP 397    ">>POP"
! %token SOURCE_FORMAT 398    ">>SOURCE FORMAT"
  
! %token AS 470  CONSTANT 363  DEFINED 365
  %type	<boolean>	     DEFINED
! %token OTHER 699  PARAMETER_kw 370    "PARAMETER"
! %token OFF 688  OVERRIDE 371
! %token THRU 950
! %token TRUE_kw 815    "True"
  
! %token CALL_COBOL 394    "CALL"
! %token CALL_VERBATIM 395    "CALL (as C)"
  
! %token TURN 817  CHECKING 498  LOCATION 650  ON 690  WITH 844
  
! %left OR 951
! %left AND 952
! %right NOT 953
! %left '<'  '>'  EQ 298    "EQUAL"  NE 954  LE 955  GE 956
  %left '-'  '+'
  %left '*'  '/'
! %right NEG 958
  
  %define api.prefix {ydf}
  %define api.token.prefix{YDF_}
*************** cdf_define:	CDF_DEFINE cdf_constant NAME
*** 353,360 ****
  		    }
  		    YYERROR;
  		  }
  		}
! 	|	CDF_DEFINE cdf_constant NAME '=' cdf_expr[value] override
  		{  /* accept, but as error */
  		  if( scanner_parsing() ) {
  		    error_msg(@NAME, "CDF error: %s = value invalid", $NAME);
--- 358,370 ----
  		    }
  		    YYERROR;
  		  }
+                   if( symbols_begin() < symbols_end() ) {
+                     cbl_field_t field = cdf_literalize($NAME, $value);
+                     symbol_field_add(current_program_index(), &field);                    
+                   }
+ 
  		}
! 	|	CDF_DEFINE cdf_constant NAME EQ cdf_expr[value] override
  		{  /* accept, but as error */
  		  if( scanner_parsing() ) {
  		    error_msg(@NAME, "CDF error: %s = value invalid", $NAME);
*************** cdf_define:	CDF_DEFINE cdf_constant NAME
*** 374,381 ****
  		 */
  		{
  		  if( 0 == cdf_dictionary().count($NAME) ) {
! 		    yywarn("CDF: '%s' is defined AS PARAMETER "
! 			    "but was not defined", $NAME);
  		  }
  		}
  	|	CDF_DEFINE FEATURE as ON {
--- 384,392 ----
  		 */
  		{
  		  if( 0 == cdf_dictionary().count($NAME) ) {
!                     cbl_message(@NAME, CdfParameterW,
!                                 "CDF: '%s' is defined AS PARAMETER "
!                                 "but was not defined", $NAME);
  		  }
  		}
  	|	CDF_DEFINE FEATURE as ON {
*************** cdf_reloper:	    cdf_relexpr
*** 555,561 ****
  
  cdf_relexpr:	cdf_relexpr '<' cdf_expr { $$ = $1(@1) <  $3(@3); }
  	|	cdf_relexpr LE  cdf_expr { $$ = $1(@1) <= $3(@3); }
! 	|	cdf_relexpr '=' cdf_expr {
  		  $$ = cdfval_t(false);
  		  if( ( $1.string &&  $3.string) ||
  		      (!$1.string && !$3.string) )
--- 566,572 ----
  
  cdf_relexpr:	cdf_relexpr '<' cdf_expr { $$ = $1(@1) <  $3(@3); }
  	|	cdf_relexpr LE  cdf_expr { $$ = $1(@1) <= $3(@3); }
! 	|	cdf_relexpr EQ cdf_expr {
  		  $$ = cdfval_t(false);
  		  if( ( $1.string &&  $3.string) ||
  		      (!$1.string && !$3.string) )
*************** cdf_factor:     NAME {
*** 604,610 ****
  		    $$ = that->second;
  		  } else {
  		    if( ! scanner_parsing() ) {
! 		      yywarn("CDF skipping: no such variable '%s' (ignored)", $1);
  		    } else {
  		      error_msg(@NAME, "CDF error: no such variable '%s'", $1);
  		    }
--- 615,622 ----
  		    $$ = that->second;
  		  } else {
  		    if( ! scanner_parsing() ) {
! 		      cbl_message(CdfNotFoundW,
!                                   "CDF skipping: no such variable '%s'", $1);
  		    } else {
  		      error_msg(@NAME, "CDF error: no such variable '%s'", $1);
  		    }
*************** cdfval_base_t::operator()( const YDFLTYP
*** 952,954 ****
--- 964,968 ----
    // cppcheck-suppress returnTempReference
    return verify_integer(loc, *this) ? *this : zero;
  }
+ 
+   
diff -Nrcpad gcc-15.2.0/gcc/cobol/cdfval.h gcc-16.1.0-RC-20260423/gcc/cobol/cdfval.h
*** gcc-15.2.0/gcc/cobol/cdfval.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cdfval.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-15.2.0/gcc/cobol/cobol-system.h gcc-16.1.0-RC-20260423/gcc/cobol/cobol-system.h
*** gcc-15.2.0/gcc/cobol/cobol-system.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cobol-system.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/cobol1.cc gcc-16.1.0-RC-20260423/gcc/cobol/cobol1.cc
*** gcc-15.2.0/gcc/cobol/cobol1.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/cobol1.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* gcobol backend interface
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
     Contributed by Robert J. Dubner and James K. Lowden
  
  This file is part of GCC.
--- 1,5 ----
  /* gcobol backend interface
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
     Contributed by Robert J. Dubner and James K. Lowden
  
  This file is part of GCC.
*************** enable_exceptions( bool enable ) {
*** 317,323 ****
         NULL != (name = strtok(name, ",")); name = NULL ) {
      ec_type_t type = ec_type_of(name);
      if( type == ec_none_e ) {
!       yywarn("unrecognized exception '%s' was ignored", name);
        continue;
      }
      ec_disposition_t disposition = ec_type_disposition(type);
--- 317,323 ----
         NULL != (name = strtok(name, ",")); name = NULL ) {
      ec_type_t type = ec_type_of(name);
      if( type == ec_none_e ) {
!       cbl_message(EcUnknownW, "unrecognized exception '%s'", name);
        continue;
      }
      ec_disposition_t disposition = ec_type_disposition(type);
*************** enable_exceptions( bool enable ) {
*** 328,344 ****
    }
  }
  
  static bool
  cobol_langhook_handle_option (size_t scode,
!                               const char *arg ATTRIBUTE_UNUSED,
                                HOST_WIDE_INT value,
!                               int kind ATTRIBUTE_UNUSED,
                                location_t loc ATTRIBUTE_UNUSED,
                                const struct
                                cl_option_handlers *handlers ATTRIBUTE_UNUSED)
      {
      // process_command (decoded_options_count, decoded_options);
      enum opt_code code = (enum opt_code) scode;
  
      switch(code)
          {
--- 328,349 ----
    }
  }
  
+ void cobol_warning( cbl_diag_id_t id, int yn, bool );
+ void cobol_warning_suppress( cbl_dialect_t dialect );
+ 
  static bool
  cobol_langhook_handle_option (size_t scode,
!                               const char *arg,
                                HOST_WIDE_INT value,
!                               int kind,
                                location_t loc ATTRIBUTE_UNUSED,
                                const struct
                                cl_option_handlers *handlers ATTRIBUTE_UNUSED)
      {
      // process_command (decoded_options_count, decoded_options);
      enum opt_code code = (enum opt_code) scode;
+     auto super_kind = diagnostics::kind(kind);
+     bool warning_as_error = super_kind == diagnostics::kind::error;
  
      switch(code)
          {
*************** cobol_langhook_handle_option (size_t sco
*** 356,361 ****
--- 361,378 ----
              copybook_extension_add(cobol_copyext);
              return true;
  
+         case OPT_fexec_charset_:
+             if( ! cobol_alpha_encoding( arg ) ) {
+               cbl_errx( "no such charset %qs", arg);
+             }
+             return true;
+ 
+         case OPT_fexec_national_charset_:
+           if( ! cobol_national_encoding( arg ) ) {
+               cbl_errx( "no such national charset %qs", arg);
+             }
+             return true;
+ 
          case OPT_M:
              cobol_set_pp_option('M');
              return true;
*************** cobol_langhook_handle_option (size_t sco
*** 365,370 ****
--- 382,388 ----
              return true;
  
          case OPT_fdefaultbyte:
+             // cobol_default_byte is an unsigned int
              wsclear(cobol_default_byte);
              return true;
  
*************** cobol_langhook_handle_option (size_t sco
*** 402,408 ****
--- 420,429 ----
              return true;
  
          case OPT_dialect:
+             // gcc disallows 0 as an enumerated value, so we used 0x10 for iso.
+             if( cobol_dialect == 0x100 ) cobol_dialect = 0; 
              cobol_dialect_set(cbl_dialect_t(cobol_dialect));
+             cobol_warning_suppress(cbl_dialect_t(cobol_dialect));
              return true;
  
          case OPT_fsyntax_only:
*************** cobol_langhook_handle_option (size_t sco
*** 434,442 ****
          case OPT_nomain:
              return true;
  
!         case OPT_finternal_ebcdic:
!             cobol_gcobol_feature_set(feature_internal_ebcdic_e);
!             return true;
  
          default:
              break;
--- 455,663 ----
          case OPT_nomain:
              return true;
  
!         // Warnings and errors
! 
!         case OPT_Wbinary_long_long:
!           cobol_warning(MfBinaryLongLong, binary_long_long, warning_as_error);
!           return true;
! 
!         case OPT_Wcall_giving:
!           cobol_warning(MfCallGiving, call_giving, warning_as_error);
!           return true;
! 
!         case OPT_Wcall_literal:
!           cobol_warning(MfCallLiteral, call_literal, warning_as_error);
!           return true;
! 
!         case OPT_Wcdf_dollar:
!           cobol_warning(MfCdfDollar, cdf_dollar, warning_as_error);
!           return true;
! 
!         case OPT_Wcomp_6:
!           cobol_warning(MfComp6, comp_6, warning_as_error);
!           return true;
! 
!         case OPT_Wcomp_x:
!           cobol_warning(MfCompX, comp_x, warning_as_error);
!           return true;
! 
!         case OPT_Winspect_trailing:
!           cobol_warning(MfTrailing, inspect_trailing, warning_as_error);
!           return true;
! 
!         case OPT_Wlevel_1_occurs:
!           cobol_warning(MfLevel_1_Occurs, level_1_occurs, warning_as_error);
!           return true;
! 
!         case OPT_Wlevel_78_defined:
!           cobol_warning(Par78CdfDefinedW, level_78_defined, warning_as_error);
!           return true;
! 
!         case OPT_Wmove_index:
!           cobol_warning(MfMoveIndex, move_index, warning_as_error);
!           return true;
! 
!         case OPT_Wmove_pointer:
!           cobol_warning(MfMovePointer, move_pointer, warning_as_error);
!           return true;
! 
!         case OPT_Wlevel_78:
!           cobol_warning(MfLevel78, level_78, warning_as_error);
!           return true;
! 
!         case OPT_Wany_length:
!           cobol_warning(MfAnyLength, cobol_any_length, warning_as_error);
!           return true;
! 
!         case OPT_Wreturning_number:
!           cobol_warning(MfReturningNum, returning_number, warning_as_error);
!           return true;
! 
!         case OPT_Wusage_typename:
!           cobol_warning(MfUsageTypename, usage_typename, warning_as_error);
!           return true;
! 
!         case OPT_Wbad_line_directive:
!           cobol_warning(LexLineE, bad_line_directive, warning_as_error);
!           return true;
! 
!         case OPT_Wequal_assign:
!           cobol_warning(IbmEqualAssignE, equal_assign, warning_as_error);
!           return true;
! 
!         case OPT_Wbad_numeric:
!           cobol_warning(ParNumstrW, bad_numeric, warning_as_error);
!           return true;
! 
!         case OPT_Wcdf_invalid_parameter:
!           cobol_warning(CdfParameterW, cdf_invalid_parameter, warning_as_error);
!           return true;
! 
!         case OPT_Wcdf_name_not_found:
!           cobol_warning(CdfNotFoundW, cdf_name_not_found, warning_as_error);
!           return true;
! 
!         case OPT_Wcopybook_found:
!           cobol_warning(LexInputN, copybook_found, warning_as_error);
!           return true;
! 
!         case OPT_Wec_unknown:
!           cobol_warning(EcUnknownW, ec_unknown, warning_as_error);
!           return true;
! 
!         case OPT_Wentry_convention:
!           cobol_warning(ParInfoI, entry_convention, warning_as_error);
!           return true;
! 
!         case OPT_Wiconv_error:
!           cobol_warning(ParIconvE, iconv_error, warning_as_error);
!           return true;
! 
!         case OPT_Winclude_file_found:
!           cobol_warning(LexIncludeOkN, include_file_found, warning_as_error);
!           return true;
! 
!         case OPT_Winclude_file_not_found:
!           cobol_warning(LexIncludeE, include_file_not_found, warning_as_error);
!           return true;
! 
!         case OPT_Wliteral_concat:
!           cobol_warning(ParLiteral2W, literal_concat, warning_as_error);
!           return true;
! 
!         case OPT_Wlocale_error:
!           cobol_warning(ParLocaleW, locale_error, warning_as_error);
!           return true;
! 
!         case OPT_Wmove_corresponding:
!           cobol_warning(ParNoCorrespondingW, warn_corresponding, warning_as_error);
!           return true;
! 
!         case OPT_Wnllanginfo_error:
!           cobol_warning(ParLangInfoW, nllanginfo_error, warning_as_error);
!           return true;
! 
!         case OPT_Wlength_of:
!           cobol_warning(IbmLengthOf, cobol_length_of, warning_as_error);
!           return true;
! 
!         case OPT_Wpreprocessor_error:
!           cobol_warning(ParLangInfoW, preprocessor_error, warning_as_error);
!           return true;
! 
!         case OPT_Wprocedure_pointer:
!           cobol_warning(IbmProcedurePointer, procedure_pointer, warning_as_error);
!           return true;
! 
!         case OPT_Wprocedure_not_found:
!           cobol_warning(ParUnresolvedProcE, procedure_not_found, warning_as_error);
!           return true;
! 
!         case OPT_Wreplace_error:
!           cobol_warning(LexReplaceE, replace_error, warning_as_error);
!           return true;
! 
!         case OPT_Wsegment_error:
!           cobol_warning(IbmSectionRangeE, segment_error, warning_as_error);
!           return true;
! 
!         case OPT_Wsegment_negative:
!           cobol_warning(IbmSectionNegE, segment_negative, warning_as_error);
!           return true;
! 
!         case OPT_Wsegment:
!           cobol_warning(IbmSectionSegmentW, cobol_segment, warning_as_error);
!           return true;
! 
!         case OPT_Wcobol_eject:
!           cobol_warning(IbmEjectE, cobol_eject, warning_as_error);
!           return true;
! 
!         case OPT_Woperator_space:
!           cobol_warning(LexSeparatorE, operator_space, warning_as_error);
!           return true;
! 
!         case OPT_Wstop_number:
!           cobol_warning(IbmStopNumber, stop_number, warning_as_error);
!           return true;
! 
!         case OPT_Wstray_indicator:
!           cobol_warning(LexIndicatorE, stray_indicator, warning_as_error);
!           return true;
! 
!         case OPT_Wcobol_volatile:
!           // If arg is true, the error becoomes a warning
!           cobol_warning(IbmVolatileE, cobol_volatile, warning_as_error);
!           cobol_warning(IbmVolatileW, cobol_volatile, warning_as_error);
!           return true;
! 
!         case OPT_Wcobol_resume:
!           cobol_warning(IsoResume, cobol_resume, warning_as_error);
!           return true;
! 
!         case OPT_Wapply_commit:
!           cobol_warning(SynApplyCommit, apply_commit, warning_as_error);
!           return true;
! 
!         case OPT_Whigh_order_bit:
!           cobol_warning(SynHighOrderBit, high_order_bit, warning_as_error);
!           return true;
! 
!         case OPT_Wfile_code_set:
!           cobol_warning(SynFileCodeSet, file_code_set, warning_as_error);
!           return true;
! 
!         case OPT_Wrecording_mode:
!           cobol_warning(SynRecordingMode, recording_mode, warning_as_error);
!           return true;
! 
!         case OPT_Wset_locale_to:
!           cobol_warning(SynSetLocaleTo, set_locale_to, warning_as_error);
!           return true;
! 
!         case OPT_Wset_to_locale:
!           cobol_warning(SynSetToLocale, set_to_locale, warning_as_error);
!           return true;
  
          default:
              break;
*************** cobol_langhook_type_for_mode (enum machi
*** 513,526 ****
      return NULL;
      }
  
- ////static tree
- ////cobol_langhook_type_for_size (unsigned int bits ATTRIBUTE_UNUSED,
- ////                              int unsignedp ATTRIBUTE_UNUSED)
- ////    {
- ////    gcc_unreachable ();
- ////    return NULL;
- ////    }
- 
  /* Record a builtin function.  We just ignore builtin functions.  */
  
  static tree
--- 734,739 ----
diff -Nrcpad gcc-15.2.0/gcc/cobol/config-lang.in gcc-16.1.0-RC-20260423/gcc/cobol/config-lang.in
*** gcc-15.2.0/gcc/cobol/config-lang.in	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/config-lang.in	Thu Apr 23 11:07:33 2026
***************
*** 1,4 ****
! # Copyright (C) 2004-2025 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
--- 1,4 ----
! # Copyright (C) 2004-2026 Free Software Foundation, Inc.
  #
  # This file is part of GCC.
  #
diff -Nrcpad gcc-15.2.0/gcc/cobol/convert.cc gcc-16.1.0-RC-20260423/gcc/cobol/convert.cc
*** gcc-15.2.0/gcc/cobol/convert.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/convert.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/copybook.h gcc-16.1.0-RC-20260423/gcc/cobol/copybook.h
*** gcc-15.2.0/gcc/cobol/copybook.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/copybook.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/except.cc gcc-16.1.0-RC-20260423/gcc/cobol/except.cc
*** gcc-15.2.0/gcc/cobol/except.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/except.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
*************** ec_level( ec_type_t ec ) {
*** 76,90 ****
  }
  
  void
- cbl_enabled_exception_t::dump( int i ) const {
-   cbl_message(2, "cbl_enabled_exception_t: %2d  {%s, %s, %zu}",
-               i,
-               location? "location" : "    none",
-               ec_type_str(ec),
-               file );
- }
- 
- void
  cbl_enabled_exceptions_t::dump() const {
    extern int yydebug;
    int debug = 1;
--- 76,81 ----
diff -Nrcpad gcc-15.2.0/gcc/cobol/exceptg.h gcc-16.1.0-RC-20260423/gcc/cobol/exceptg.h
*** gcc-15.2.0/gcc/cobol/exceptg.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/exceptg.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
   /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
   /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
*************** class exception_turn_t {
*** 77,83 ****
    bool add_exception( ec_type_t type, const filelist_t& files = filelist_t() ) {
      ec_disposition_t disposition = ec_type_disposition(type);
      if( disposition != ec_implemented(disposition) ) {
! 	cbl_unimplementedw("CDF: exception '%s'", ec_type_str(type));
      }
      auto elem = exceptions.find(type);
      if( elem != exceptions.end() ) return false; // cannot add twice
--- 77,83 ----
    bool add_exception( ec_type_t type, const filelist_t& files = filelist_t() ) {
      ec_disposition_t disposition = ec_type_disposition(type);
      if( disposition != ec_implemented(disposition) ) {
!       cbl_unimplementedw(EcUnknownW, "exception %qs", ec_type_str(type));
      }
      auto elem = exceptions.find(type);
      if( elem != exceptions.end() ) return false; // cannot add twice
diff -Nrcpad gcc-15.2.0/gcc/cobol/gcobc gcc-16.1.0-RC-20260423/gcc/cobol/gcobc
*** gcc-15.2.0/gcc/cobol/gcobc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/gcobc	Thu Apr 23 11:07:33 2026
***************
*** 35,44 ****
  ##    output set the mode variable.  Everything else is appended to the
  ##    opts variable.
  ##
! ##  - -fPIC is added to the command line if $mode is "-shared".  That
! ##    option applies only to "certain machines", per the gcc info
! ##    manual. For this script to be portable across machines, -fPIC
! ##    would have to be set more judiciously.
  
  if [ "$COBCPY" ]
  then
--- 35,54 ----
  ##    output set the mode variable.  Everything else is appended to the
  ##    opts variable.
  ##
! ##  - -fPIC is added to the command line unless we're producing an
! ##    executable.  That option applies only to "certain machines", per
! ##    the gcc info manual. For this script to be portable across
! ##    machines, -fPIC would have to be set more judiciously.
! 
! # To override the default gcobol, set the "gcobol" environment variable.
! gcobol="${gcobol:-${0%/*}/gcobol}"
! 
! # If invoked as "gcobcx", execute with tracing enabled. 
! if [ gcobcx = ${0##*/} ]
! then
!     #cho "parsing args: $@" >&2
!     set -x
! fi
  
  if [ "$COBCPY" ]
  then
*************** fi
*** 78,83 ****
--- 88,94 ----
  exit_status=0
  skip_arg=
  opts="$copydir $includes"
+ cflags=-fPIC
  mode=-shared
  
  incomparable="has no comparable gcobol option"
*************** do
*** 163,168 ****
--- 174,181 ----
          continue
      fi
  
+     #cho "next arg: $opt" >&2
+ 
      case $opt in
  
          # pass next parameter to GCC
*************** do
*** 184,198 ****
           -C) error "$opt $incomparable"
               ;;
          -d | -debug | --debug) opts="$opts -fcobol-exceptions=EC-ALL"
-                        warn "$opt implies -fstack-check:"
                         ;;
          # define for preprocessor, note: -D* is directly passed
          -D)
              pending_arg=$opt
              ;;
!          -E) opts="$opts $opt -fsyntax-only"
!              ;;
!          -echo) echo="echo"
                 ;;
  
          -fec=* | -fno-ec=*)
--- 197,210 ----
           -C) error "$opt $incomparable"
               ;;
          -d | -debug | --debug) opts="$opts -fcobol-exceptions=EC-ALL"
                         ;;
          # define for preprocessor, note: -D* is directly passed
          -D)
              pending_arg=$opt
              ;;
!         -E) opts="$opts $opt -fsyntax-only"
!             ;;
!         -echo) echo="echo"
                 ;;
  
          -fec=* | -fno-ec=*)
*************** do
*** 200,206 ****
               opts="$opts $opt"
               ;;
           -ext)
!             pending_arg="$opt "
               ;;
           -ext=*) opts="$opts $(echo "$opt" | sed 's/-ext=/-copyext ./')"
                   ;;
--- 212,218 ----
               opts="$opts $opt"
               ;;
           -ext)
!             pending_arg="-copyext "
               ;;
           -ext=*) opts="$opts $(echo "$opt" | sed 's/-ext=/-copyext ./')"
                   ;;
*************** do
*** 230,236 ****
          -fwrite-after) warn "$opt" ;;
          -fmfcomment) warn "$opt" ;;
          -facucomment) warn "$opt" ;;
!         -fno-trunc) no_warn "$opt" ;;
          -fsingle-quote) warn "$opt" ;;
          -foptional-file) warn "$opt" ;;
          -fstatic-call | -fno-static-call)
--- 242,248 ----
          -fwrite-after) warn "$opt" ;;
          -fmfcomment) warn "$opt" ;;
          -facucomment) warn "$opt" ;;
!         -ftrunc | -fno-trunc | -fnotrunc) no_warn "$opt" ;;
          -fsingle-quote) warn "$opt" ;;
          -foptional-file) warn "$opt" ;;
          -fstatic-call | -fno-static-call)
*************** do
*** 384,391 ****
          -fformat=auto) ;; # gcobol and gnucobol default
  
          -fixed | --fixed | -fformat=fixed | -fformat=variable | -fformat=xcard)
!                     # note: variable + xcard are only _more similar_ to fixed than free,
!                     # (with changing right-column to 250/255, which isn't supported in gcobol, yet)
                       opts="$opts -ffixed-form"
                       ;;
  
--- 396,404 ----
          -fformat=auto) ;; # gcobol and gnucobol default
  
          -fixed | --fixed | -fformat=fixed | -fformat=variable | -fformat=xcard)
!                     # note: variable + xcard are only _more similar_
!                     # to fixed than free, (with changing right-column
!                     # to 250/255, which isn't supported in gcobol
                       opts="$opts -ffixed-form"
                       ;;
  
*************** do
*** 400,407 ****
                 ;;
          -i | --info) warn "$opt"
                       ;;
! 
!         # -I
          -fimplicit-init) warn "$opt"
                           ;;
          -j | -job)  warn "$opt"
--- 413,436 ----
                 ;;
          -i | --info) warn "$opt"
                       ;;
!         -include )
!             pending_arg=$opt
!             ;;
!         # no-space version: just concatenate
!         -include* )
!             opts="$opts $opt"
!             ;;
!         #
!         # Options that may have a space  before the argument, or not
!         #
!         -I | -L | -MF | -MT )
!             pending_arg=$opt
!             ;;
!         # no-space version: just concatenate
!         -I* | -L* | -MF* | -MT* )
!             opts="$opts $opt"
!             ;;
!         
          -fimplicit-init) warn "$opt"
                           ;;
          -j | -job)  warn "$opt"
*************** do
*** 411,417 ****
          -K*) warn "$opt"
              ;;
          # -l
-         # -L
          --list*) warn "$opt"
                   ;;
          -m) mode="-shared"
--- 440,445 ----
*************** do
*** 425,433 ****
               opts="$opts $opt"
              ;;
  
-         # -O0, -Ox
-         -O | -O2 | -Os) warn "$opt"
-                         ;;
          -S) mode="$opt"
              ;;
          -save-temps=*) opt="$(echo "$opt" | sed -E 's/^.+=//')"
--- 453,458 ----
*************** do
*** 463,469 ****
           -v | --verbose) opts="$opts -V"
                           ;;
           # note: we want -dumpversion to be passed to gcc
!          -V | --version | -version) opts="$opts --version"
              ;;
          # pass through, strangely -Wall is not supported
          -w | -W | -Wextra) opts="$opts $opt"
--- 488,500 ----
           -v | --verbose) opts="$opts -V"
                           ;;
           # note: we want -dumpversion to be passed to gcc
!          -V | --version | -version)
!              $gcobol --version |
!                  awk '1 == NR { ver = $3; 
!                                 $3 = "3.1"
!                                 $5 = "(GnuCOBOL emulation using " ver ")" } 1'
!              exit
!              # opts="$opts --version"
              ;;
          # pass through, strangely -Wall is not supported
          -w | -W | -Wextra) opts="$opts $opt"
*************** do
*** 471,480 ****
          -Wno-*) no_warn "$opt"
               ;;
  
!         -W*) ignore_arg "$opt"
               ;;
  
          -x) mode=
              ;;
  
          -) output_name=a.out # nonnull to prevent overriding gcc default
--- 502,512 ----
          -Wno-*) no_warn "$opt"
               ;;
  
!         -W*) warn "$opt"
               ;;
  
          -x) mode=
+             cflags=
              ;;
  
          -) output_name=a.out # nonnull to prevent overriding gcc default
*************** do
*** 490,499 ****
                         ;;
                     -shared)
                         output_name="$output_name".so
-                        opts="$opts -fPIC"
                         ;;
                 esac
!                opts="$opts -o $output_name"
             fi    
             opts="$opts $opt" # pass through
             ;;
--- 522,530 ----
                         ;;
                     -shared)
                         output_name="$output_name".so
                         ;;
                 esac
!                opts="$opts $cflags -o $output_name"
             fi    
             opts="$opts $opt" # pass through
             ;;
*************** done
*** 503,509 ****
  # cobc default:
  if [ "$static_used" = "" ]
  then
!     opts="$opts -fno-static-call";
  fi
  
  if [ "$exit_status" -gt 0 ]
--- 534,540 ----
  # cobc default:
  if [ "$static_used" = "" ]
  then
!     opts="-fno-static-call $opts";
  fi
  
  if [ "$exit_status" -gt 0 ]
*************** then
*** 511,519 ****
      exit $exit_status
  fi
  
- # To override the default gcobol, set the "gcobol" environment variable.
- gcobol="${gcobol:-${0%/*}/gcobol}"
- 
  if [ "$dialect" ]
  then
      dialect=$(echo $dialect | sed -E 's/[[:alnum:]]+/-dialect &/g')
--- 542,547 ----
diff -Nrcpad gcc-15.2.0/gcc/cobol/gcobol.1 gcc-16.1.0-RC-20260423/gcc/cobol/gcobol.1
*** gcc-15.2.0/gcc/cobol/gcobol.1	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/gcobol.1	Thu Apr 23 11:07:33 2026
***************
*** 25,42 ****
  .Op Fl copyext Ar ext
  .Op Fl ffixed-form | Fl ffree-form
  .Op Fl findicator-column
! .Op Fl finternal-ebcdic
  .Op Fl dialect Ar dialect-name
  .Op Fl include Ar filename
  .Op Fl preprocess Ar preprocess-filter
  .Op Fl fflex-debug
  .Op Fl fyacc-debug
  .Ar filename Op ...
  .
  .Sh DESCRIPTION
  .Nm
! compiles \*[lang] source code to object code, and optionally produces an
! executable binary or shared object.  As a GCC component, it accepts
  all options that affect code-generation and linking.  Options specific
  to \*[lang] are listed below.
  .Bl -tag -width "\0\0debug"
--- 25,94 ----
  .Op Fl copyext Ar ext
  .Op Fl ffixed-form | Fl ffree-form
  .Op Fl findicator-column
! .Op Fl fexec-charset= Ns Ar encoding
! .Op Fl fexec-national-charset= Ns Ar encoding
! .ig
! .Op Fl collseq Ar encoding Ns \/, Fl ncolseq Ar encoding
! ..
  .Op Fl dialect Ar dialect-name
  .Op Fl include Ar filename
  .Op Fl preprocess Ar preprocess-filter
  .Op Fl fflex-debug
  .Op Fl fyacc-debug
+ .\" warnings
+ .Op Fl Wno-apply-commit
+ .Op Fl Wno-file-code-set
+ .Op Fl Wno-high-order-bit
+ .Op Fl Wno-bad-line-directive
+ .Op Fl Wno-bad-numeric
+ .Op Fl Wno-binary-long-long
+ .Op Fl Wno-call-giving
+ .Op Fl Wno-call-literal
+ .Op Fl Wno-cdf-dollar
+ .Op Fl Wno-cdf-invalid-parameter
+ .Op Fl Wno-cdf-name-not-found
+ .Op Fl Wno-cobol-eject
+ .Op Fl Wno-cobol-resume
+ .Op Fl Wno-cobol-volatile
+ .Op Fl Wno-comp-6
+ .Op Fl Wno-comp-x
+ .Op Fl Wno-copybook-found
+ .Op Fl Wno-ec-unknown
+ .Op Fl Wno-entry-convention
+ .Op Fl Wno-iconv-error
+ .Op Fl Wno-include-file-found
+ .Op Fl Wno-include-file-not-found
+ .Op Fl Wno-inspect-trailing
+ .Op Fl Wno-length-of
+ .Op Fl Wno-level-1-occurs
+ .Op Fl Wno-level-78
+ .Op Fl Wno-level-78-defined
+ .Op Fl Wno-literal-concat
+ .Op Fl Wno-locale-error
+ .Op Fl Wno-move-corresponding
+ .Op Fl Wno-move-index
+ .Op Fl Wno-move-pointer
+ .Op Fl Wno-nllanginfo-error
+ .Op Fl Wno-operator-space
+ .Op Fl Wno-preprocessor-error
+ .Op Fl Wno-procedure-not-found
+ .Op Fl Wno-procedure-pointer
+ .Op Fl Wno-replace-error
+ .Op Fl Wno-returning-number
+ .Op Fl Wno-segment-error
+ .Op Fl Wno-segment-negative
+ .Op Fl Wno-stop-number
+ .Op Fl Wno-stray-indicator
+ .Op Fl Wno-usage-typename
+ .Op Fl Wno-recording-mode
+ .Op Fl Wno-set-locale-to
+ .Op Fl Wno-set-to-locale
  .Ar filename Op ...
  .
  .Sh DESCRIPTION
  .Nm
! compiles \*[lang] source code to object code, and optionally produces
! an executable binary or shared object.  As a GCC component, it accepts
  all options that affect code-generation and linking.  Options specific
  to \*[lang] are listed below.
  .Bl -tag -width "\0\0debug"
*************** is a non-constant data item, it is alway
*** 279,312 ****
  linking, with
  .Xr dlsym 3 Ns Li ,
  because its value is determined at run time.
  .It Fl dialect Ar dialect-name
  By default,
  .Nm
  accepts \*[lang] syntax as defined by \*[isostd], with some
! extensions for backward compatibility with COBOL-85.  To make the
! compiler more generally useful, some additional syntax is supported by
! this option.
! .Pp
! The value of
  .Ar dialect-name
  may be
! .Bl -tag -compact
  .It ibm
! to indicate IBM COBOL 6.3 syntax, specifically
! .D1 STOP <number>.
  .It gnu
! to indicate GnuCOBOL syntax
  .It mf
! to indicate MicroFocus syntax, specifically
  .Sy LEVEL 78
! constants.
  .El
- .Pp
- Only a few such non-standard constructs are accepted, and
- .Nm
- makes no claim to emulate other compilers.  But to the extent that a
- feature is popular but nonstandard, this option provides a way to
- support it, or add it.
  .
  .It Fl include Ar filename
  Process
--- 331,473 ----
  linking, with
  .Xr dlsym 3 Ns Li ,
  because its value is determined at run time.
+ .
+ .It Fl fexec-charset= Ns Ar encoding
+ Set the default execution character set for alphanumeric data items
+ and literals in the absence of
+ .Sy "CHARACTER CLASSIFICATION"
+ in
+ .Sy "CONFIGURATION SECTION" .
+ .Ar encoding
+ is an encoding name as defined by
+ .Xr iconv 3 .
+ Unless otherwise specified, the runtime encoding for both alphanumeric
+ and NATIONAL is
+ .Sy CP1252
+ as defined by
+ .Xr iconv 3 .
+ .
+ .It Fl fexec-national-charset= Ns Ar encoding
+ Set the default execution character set for NATIONAL data items
+ and literals in the absence of
+ .Sy "CHARACTER CLASSIFICATION"
+ in
+ .Sy "CONFIGURATION SECTION" .
+ .Ar encoding
+ is an encoding name as defined by
+ .Xr iconv 3 .
+ To use an EBCDIC encoding for data items, one might use
+ .D1 Fl fexec-national-charset= Ns Li CP1140
+ for example. 
+ .
  .It Fl dialect Ar dialect-name
  By default,
  .Nm
  accepts \*[lang] syntax as defined by \*[isostd], with some
! extensions for backward compatibility with COBOL-85.  Additional syntax is supported with this option. The value of
  .Ar dialect-name
  may be
! .Bl -tag
  .It ibm
! to indicate IBM COBOL 6.4 syntax:
! .Bl -bullet -compact
! .It
! .Sy EJECT
! .It
! .Sy EQUAL
! as assignment operator
! .It
! .Sy "LENGTH OF"
! .It
! .Sy "PROCEDURE POINTER"
! .It
! .Sy SECTION
! segment
! .It
! .Sy STOP
! <number>
! .It
! .Sy VOLATILE
! .It
! Per-program Registers
! .Bl -tag -compact -width XML-NNAMESPACE-PREFIX
! .\" .It Sy JSON-CODE
! .\" S9(9)
! .\" .It Sy JSON-STATUS
! .\" S9(9)
! .It Sy RETURN-CODE
! S9(4)
! .It Sy SORT-CONTROL
! X(160)
! .It Sy SORT-CORE-SIZE
! S9(8)
! .It Sy SORT-FILE-SIZE
! S9(8)
! .It Sy SORT-MESSAGE
! X(8)
! .It Sy SORT-MODE-SIZE
! S9(5)
! .It Sy SORT-RETURN
! S9(4)
! .It Sy TALLY
! 9(5)
! .It Sy WHEN-COMPILED
! X(16)
! .It Sy XML-CODE
! S9(9)
! .It Sy XML-EVENT
! X(30)
! .It Sy XML-INFORMATION
! S9(9)
! .It Sy XML-NAMESPACE
! X(0) to X(32,768)
! .It Sy XML-NNAMESPACE
! N(0) to N(16,384)
! .It Sy XML-NAMESPACE-PREFIX
! X(0) to X(4,096)
! .It Sy XML-NNAMESPACE-PREFIX
! N(0) to N(2,048)
! .It Sy XML-NTEXT
! N(0) to N(2,000,000)
! .It Sy XML-TEXT
! X(0) to X(2,147,483,646)
! .El
! .El
  .It gnu
! to indicate GnuCOBOL syntax, generally compatible with MicroFocus.
  .It mf
! to indicate MicroFocus syntax:
! .Bl -bullet -compact
! .It
! .Sy BINARY-LONG-LONG
! .It
! .Sy CALL ... GIVING
! .It
! .Sy CDF \[Do]IF
! .It
! .Sy COMPUTATIONAL-6
! .It
! .Sy COMPUTATIONAL
! used with
! .Sy PICTURE X
! .It
! .Sy INSPECT ... TRAILING
! .It
! .Sy OCCURS
! at
! .Sy "LEVEL 01"
! .It
  .Sy LEVEL 78
! constants
! .It
! .Sy MOVE POINTER
! .It
! .Sy RETURNING
! <number>
! .It
! .Sy USAGE IS TYPENAME
! .El
  .El
  .
  .It Fl include Ar filename
  Process
*************** The
*** 371,377 ****
  should return a zero exit status, indicating success.  If it returns a
  nonzero exit status, an error is reported and the compiler is not
  invoked.
- .
  .It Fl fflex-debug Ns Li , Fl fyacc-debug
  produce messages useful for compiler development.  The
  .Fl fflex-debug
--- 532,537 ----
*************** option prints the tokenized input stream
*** 379,384 ****
--- 539,655 ----
  .Fl fyacc-debug
  option shows the shift and reduce actions taken by the parser.
  .El
+ .Ss Diagnostic Messages
+ .Pp
+ Many warning options can be used to convert error messages to
+ warnings, or to suppress messages related to \*[lang] dialects. The
+ user may mix and match. A group of features may be enabled by
+ indicating a dialect (or more than one dialect) and individual
+ features may be enabled as a warning, or error, or suppressed.
+ .Bl -tag -width Wno-cdf-name-not-found\0\0 -compact
+ .It Fl Wno-apply-commit
+ Warn if APPLY COMMIT is used.
+ .It Fl Wno-bad-line-directive
+ Warn if malformed
+ .Ql #line
+ directive is encountered.
+ .It Fl Wno-binary-long-long
+ Warn if BINARY-LONG-LONG is used.
+ .It Fl Wno-call_giving
+ Warn if CALL ... GIVING is used.
+ .It Fl Wno-call_literal
+ Warn if CALL is used is used with a literal parameter by reference.
+ .It Fl Wno-cdf-dollar
+ Warn if CDF \[Do]IF is used.
+ .It Fl Wno-comp-6
+ Warn if COMPUTATIONAL-6 is used.
+ .It Fl Wno-comp-x
+ Warn if COMPUTATIONAL is used with PICTURE X.
+ .It Fl Wno-file-code-set
+ Warn if FILE CODE SET is used.
+ .It Fl Wno-inspect-trailing
+ Warn if INSPECT ... TRAILING is used.
+ .It Fl Wno-level-1-occurs
+ Warn if Level 01 is used with OCCURS.
+ .It Fl Wno-level-78-defined
+ Warn if CDF defines Level 78 constant.
+ .It Fl Wno-move-index
+ Warn if MOVE INDEX is used.
+ .It Fl Wno-move-pointer
+ Warn if MOVE POINTER is used.
+ .It Fl Wno-returning-number
+ Warn if RETURNING <number> is used.
+ .It Fl Wno-usage-typename
+ Warn if USAGE IS TYPENAME is used.
+ .It Fl Wno-bad-numeric
+ Warn if numeric string is invalid.
+ .It Fl Wno-cdf-invalid-parameter
+ Warn if referenced CDF PARAMETER is not defined.
+ .It Fl Wno-cdf-name-not-found
+ Warn if referenced CDF name is not defined.
+ .It Fl Wno-cobol-eject
+ Warn if IBM-style EJECT is used (instead of error).
+ .It Fl Wno-cobol-resume
+ Warn if ISO RESUME is used with \-dialect ibm (instead of error).
+ .It Fl Wno-cobol-volatile
+ Warn if VOLATILE is used (instead of error if -dialect ibm).
+ .It Fl Wno-copybook-found
+ Print message when copybook is processed.
+ .It Fl Wno-ec-unknown
+ Warn if unimplemented/unknown exception condition is referenced.
+ .It Fl Wno-entry-convention
+ Print message when ENTRY CONVENTION is specified.
+ .It Fl Wno-high-order-bit
+ Warn if HIGH-ORDER-LEFT HIGH-ORDER-RIGHT is used.
+ .It Fl Wno-include-file-found
+ Print message when include file is processed.
+ .It Fl Wno-length-of
+ Warn if LENGTH OF is used.
+ .It Fl Wno-level-78
+ Warn if Level 78 is used.
+ .It Fl Wno-literal-concat
+ Warn if concatenated literals use different encodings.
+ .It Fl Wno-locale-error
+ Warn if locale(3) fails.
+ .It Fl Wno-move-corresponding
+ Warn if COBOL MOVE has no corresponding fields.
+ .It Fl Wno-nllanginfo-error
+ Warn if nlanglanginfo(3) fails.
+ .It Fl Wno-recording-mode
+ Warn if RECORDING MODE is used.
+ .It Fl Wno-segment
+ Warn if SECTION segments are used.
+ .It Fl Wno-set-locale-to
+ Warn if SET LOCALE ... TO is used.
+ .It Fl Wno-set-to-locale
+ Warn if SET ... TO LOCALE is used.
+ .
+ `.\" convert errors to warnings
+ Warn if a line directive is malformed (instead of error).
+ .It Fl Wno-iconv-error
+ Warn if iconv(3) cannot convert between encodings (instead of error).
+ .It Fl Wno-include-file-not-found
+ Warn if include file is not found (instead of error).
+ .It Fl Wno-operator-space
+ Warn if relational operator not followed by space (instead of error).
+ .It Fl Wno-preprocessor-error
+ Warn if a preprocessor fails  (instead of error).
+ .It Fl Wno-procedure-pointer
+ Warn if PROCEDURE POINTER is used.
+ .It Fl Wno-procedure-not-found
+ Warn if a referenced procedure is not found (instead of error).
+ .It Fl Wno-replace-error
+ Warn if REPLACE cannot be processed (instead of error).
+ .It Fl Wno-segment-error
+ Warn if a SEGMENT section is invalid (instead of error).
+ .It Fl Wno-segment-negative
+ Warn if a SEGMENT range is negative (instead of error).
+ .It Fl Wno-stop-number
+ Warn if IBM-style STOP <number> is used (instead of error).
+ .It Fl Wno-stray-indicator
+ Warn if indicator column has no recognized meaning (instead of error).
+ 
+ .El
  .
  .Sh COMPILATION SCENARIOS
  .D1 gcobol Ar xyz.cob
*************** The fourth links the three .o files into
*** 447,453 ****
  .
  .Sh EBCDIC
  The
! .Fl finternal-ebcdic
  option is useful when working with mainframe \*[lang] programs intended
  for EBCDIC-encoded files.  With this option, while the \*[lang] text
  remains in ASCII, the character literals and field initial values
--- 718,724 ----
  .
  .Sh EBCDIC
  The
! .Fl fexec-charset=cp1140
  option is useful when working with mainframe \*[lang] programs intended
  for EBCDIC-encoded files.  With this option, while the \*[lang] text
  remains in ASCII, the character literals and field initial values
*************** produce EBCDIC strings in the compiled b
*** 455,464 ****
  read from a file are interpreted as EBCDIC data.  The file data are
  not
  .Em converted ;
! rather, the file is assumed to use EBCDIC representation. String
  literals in the \*[lang] text
  .Em are
! converted, so that they can be compared meaningfully with data in the file.
  .Pp
  Only file data and character literals are affected.  Data read from
  and written to the environment, or taken from the command line, are
--- 726,738 ----
  read from a file are interpreted as EBCDIC data.  The file data are
  not
  .Em converted ;
! rather, the file is assumed to use EBCDIC representation.  String
  literals in the \*[lang] text
  .Em are
! converted, so that they can be compared meaningfully with data in the
! file.  Code Page 1140 is one of a number of EBCDIC code pages; it is
! often useful because it closely parallels the commonly-used Code Page
! 1252 that provides many Western European characters.
  .Pp
  Only file data and character literals are affected.  Data read from
  and written to the environment, or taken from the command line, are
*************** resolution of
*** 778,783 ****
--- 1052,1081 ----
  .Ar filename
  is deferred until runtime, when the name must appear in the program's
  environment.
+ .Ss XML PARSE
+ .Nm
+ emulates the IBM
+ .Sy "XML PARSE"
+ statement.  The following values for
+ .Sy XML-EVENT
+ are defined:
+ .Bl -tag -compact
+ .It Sy COMMENT
+ Text of a comment between "<!--" and "-->"
+ .It Sy CONTENT-CHARACTERS
+ Some or all of the character content of the element between start and end tags.
+ .It Sy END-OF-ELEMENT
+ End-element tag, with name if present in the input.
+ .It Sy PROCESSING-INSTRUCTION-DATA
+ Processing instruction (after the target name), excluding "?>".
+ .It Sy PROCESSING-INSTRUCTION-TARGET
+ The processing instruction target name appears in 
+ .Sy XML-TEXT
+ or
+ .Sy XML-NTEXT .
+ .It Sy START-OF-ELEMENT
+ Name of the start element tag or empty element tag.
+ .El
  .
  .Sh ISO \*[lang] Implementation Status
  .Ss USAGE Data Types
*************** in the name, which is otherwise invalid
*** 1177,1183 ****
  .Bl -tag -compact
  .It Sy %EBCDIC-MODE
  is set by
! .Fl finternal-ebcdic .
  .It Sy %64-BIT-POINTER
  is implied by
  .Fl "dialect ibm" .
--- 1475,1482 ----
  .Bl -tag -compact
  .It Sy %EBCDIC-MODE
  is set by
! .Fl fexec-charset= Ns Ar <encoding>
! for all EBCDIC encodings.
  .It Sy %64-BIT-POINTER
  is implied by
  .Fl "dialect ibm" .
*************** others. They are listed alphabetically b
*** 1203,1256 ****
  .It
  ABS ACOS ANNUITY ASIN ATAN
  .It
! BASECONVERT BIT-OF BIT-TO-CHAR BOOLEAN-OF-INTEGER BYTE-LENGTH
  .It
! CHAR CHAR-NATIONAL COMBINED-DATETIME CONCAT CONVERT COS CURRENT-DATE
  .It
! DATE-OF-INTEGER DATE-TO-YYYYMMDD DAY-OF-INTEGER DAY-TO-YYYYDDD DISPLAY-OF
  .It
! E EXCEPTION-FILE
! EXCEPTION-FILE-N EXCEPTION-LOCATION EXCEPTION-LOCATION-N
! EXCEPTION-STATEMENT EXCEPTION-STATUS EXP EXP10
  .It
! FACTORIAL FIND-STRING
! FORMATTED-CURRENT-DATE FORMATTED-DATE FORMATTED-DATETIME
! FORMATTED-TIME FRACTION-PART
  .It
! HEX-OF HEX-TO-CHAR HIGHEST-ALGEBRAIC
  .It
! INTEGER INTEGER-OF-BOOLEAN INTEGER-OF-DATE INTEGER-OF-DAY
! INTEGER-OF-FORMATTED-DATE INTEGER-PART
  .It
! LENGTH LOCALE-COMPARE
! LOCALE-DATE LOCALE-TIME LOCALE-TIME-FROM-SECONDS LOG LOG10 LOWER-CASE
! LOWEST-ALGEBRAIC
  .It
! MAX MEAN MEDIAN MIDRANGE MIN MOD MODULE-NAME
  .It
! NATIONAL-OF NUMVAL NUMVAL-C NUMVAL-F ORD
  .It
! ORD-MAX ORD-MIN
  .It
! PI PRESENT-VALUE
  .It
  RANDOM RANGE REM REVERSE
  .It
! SECONDS-FROM-FORMATTED-TIME
! SECONDS-PAST-MIDNIGHT SIGN SIN SMALLEST-ALGEBRAIC SQRT
! STANDARD-COMPARE STANDARD-DEVIATION SUBSTITUTE SUM
  .It
! TAN TEST-DATE-YYYYMMDD TEST-DAY-YYYYDDD TEST-FORMATTED-DATETIME
! TEST-NUMVAL TEST-NUMVAL-C TEST-NUMVAL-F TRIM
  .It
! ULENGTH UPOS UPPER-CASE
  USUBSTR USUPPLEMENTARY UUID4 UVALID UWIDTH
  .It
  VARIANCE
  .It
! WHEN-COMPILED
  .It
! YEAR-TO-YYYY
  .El
  .
  .Ss Binary floating point DISPLAY
--- 1502,1555 ----
  .It
  ABS ACOS ANNUITY ASIN ATAN
  .It
! BASECONVERT \%BIT-OF \%BIT-TO-CHAR \%BOOLEAN-OF-INTEGER \%BYTE-LENGTH
  .It
! CHAR \%CHAR-NATIONAL \%COMBINED-DATETIME CONCAT CONVERT COS \%CURRENT-DATE
  .It
! \%DATE-OF-INTEGER \%DATE-TO-YYYYMMDD \%DAY-OF-INTEGER \%DAY-TO-YYYYDDD \%DISPLAY-OF
  .It
! E \%EXCEPTION-FILE
! \%EXCEPTION-FILE-N \%EXCEPTION-LOCATION \%EXCEPTION-LOCATION-N
! \%EXCEPTION-STATEMENT \%EXCEPTION-STATUS EXP EXP10
  .It
! FACTORIAL \%FIND-STRING
! \%FORMATTED-CURRENT-DATE \%FORMATTED-DATE \%FORMATTED-DATETIME
! \%FORMATTED-TIME \%FRACTION-PART
  .It
! \%HEX-OF \%HEX-TO-CHAR \%HIGHEST-ALGEBRAIC
  .It
! INTEGER \%INTEGER-OF-BOOLEAN \%INTEGER-OF-DATE \%INTEGER-OF-DAY
! \%INTEGER-OF-FORMATTED-DATE \%INTEGER-PART
  .It
! LENGTH \%LOCALE-COMPARE
! \%LOCALE-DATE \%LOCALE-TIME \%LOCALE-TIME-FROM-SECONDS LOG LOG10 \%LOWER-CASE
! \%LOWEST-ALGEBRAIC
  .It
! MAX MEAN MEDIAN MIDRANGE MIN MOD \%MODULE-NAME
  .It
! \%NATIONAL-OF NUMVAL \%NUMVAL-C \%NUMVAL-F ORD
  .It
! \%ORD-MAX \%ORD-MIN
  .It
! PI \%PRESENT-VALUE
  .It
  RANDOM RANGE REM REVERSE
  .It
! \%SECONDS-FROM-FORMATTED-TIME
! \%SECONDS-PAST-MIDNIGHT SIGN SIN \%SMALLEST-ALGEBRAIC SQRT
! \%STANDARD-COMPARE \%STANDARD-DEVIATION SUBSTITUTE SUM
  .It
! TAN \%TEST-DATE-YYYYMMDD \%TEST-DAY-YYYYDDD \%TEST-FORMATTED-DATETIME
! \%TEST-NUMVAL \%TEST-NUMVAL-C \%TEST-NUMVAL-F TRIM
  .It
! ULENGTH UPOS \%UPPER-CASE
  USUBSTR USUPPLEMENTARY UUID4 UVALID UWIDTH
  .It
  VARIANCE
  .It
! \%WHEN-COMPILED
  .It
! \%YEAR-TO-YYYY
  .El
  .
  .Ss Binary floating point DISPLAY
*************** it may contain several directory names s
*** 1417,1422 ****
--- 1716,1730 ----
  .Ev COBPATH
  is searched first, followed by
  .Ev LD_LIBRARY_PATH .
+ Note that
+ .Ev COBPATH does not change where the runtime linker looks for
+ .Pa libgcobol.so
+ itself.
+ How the runtime linker searches for
+ .Pa libgcobol.so
+ when the executable loads is controlled by 
+ .Xr ld.so 8 ,
+ not libgcobol.
  .Pp
  Each directory is searched for files whose name ends in
  .Ql ".so" .
*************** error.  This feature is meant to help di
*** 1471,1476 ****
--- 1779,1796 ----
  errors.
  .El
  .
+ .Ss Variables for Developers
+ .Bl -tag -compact
+ .It Ev GCOBOL_SHOW
+ produces a trace of the internal calls made by the parser to prepare
+ the GENERIC tree.
+ .It Ev GCOBOL_TRACE
+ used at compile time, produces an executable that traces the
+ execution, mapping it back the same code-creation functions as
+ .Ev GCOBOL_SHOW ,
+ as well as the values of data items and branch conditions.
+ .El
+ .
  .Sh FILES
  Executables produced by
  .Nm
diff -Nrcpad gcc-15.2.0/gcc/cobol/gcobolspec.cc gcc-16.1.0-RC-20260423/gcc/cobol/gcobolspec.cc
*** gcc-15.2.0/gcc/cobol/gcobolspec.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/gcobolspec.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /* Specific flags and argument handling of the Cobol front-end.
!    Copyright (C) 2021-2025 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
--- 1,5 ----
  /* Specific flags and argument handling of the Cobol front-end.
!    Copyright (C) 2021-2026 Free Software Foundation, Inc.
  
  This file is part of GCC.
  
*************** lang_specific_driver (struct cl_decoded_
*** 142,150 ****
    int n_infiles = 0;
    int n_outfiles = 0;
  
-   // The number of input files when the language is "none" or "cobol"
-   int n_cobol_files = 0;
- 
    // saw_OPT_no_main means "don't expect -main"
    bool saw_OPT_no_main = false;
  
--- 142,147 ----
*************** lang_specific_driver (struct cl_decoded_
*** 234,244 ****
        case OPT_SPECIAL_input_file:
          no_files_error = false;
          n_infiles += 1;
-         if(    strcmp(language, "none")  == 0
-             || strcmp(language, "cobol") == 0 )
-           {
-           n_cobol_files += 1;
-           }
          if( strstr(decoded_options[i].orig_option_with_args_text, "libgcobol.a") )
            {
            // We have been given an explicit libgcobol.a.  We need to note that.
--- 231,236 ----
*************** lang_specific_driver (struct cl_decoded_
*** 309,314 ****
--- 301,309 ----
        case OPT_print_multi_os_directory:
        case OPT_print_multiarch:
        case OPT_print_sysroot_headers_suffix:
+       case OPT_dumpmachine:
+       case OPT_dumpversion:
+       case OPT_dumpspecs:
          no_files_error = false;
          break;
  
diff -Nrcpad gcc-15.2.0/gcc/cobol/genapi.cc gcc-16.1.0-RC-20260423/gcc/cobol/genapi.cc
*** gcc-15.2.0/gcc/cobol/genapi.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genapi.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
*************** static tree label_list_out_label;
*** 69,79 ****
  static tree label_list_back_goto;
  static tree label_list_back_label;
  
  static void hijack_for_development(const char *funcname);
  
  static size_t sv_data_name_counter = 1;
- static int call_counter = 1;
- static int pseudo_label = 1;
  
  static bool suppress_cobol_entry_point = false;
  static char ach_cobol_entry_point[256] = "";
--- 69,86 ----
  static tree label_list_back_goto;
  static tree label_list_back_label;
  
+ #ifdef ENABLE_HIJACKING
+ #pragma message "HIJACKING IS ENABLED - It should be disabled for release"
+ static bool hijacked = false;  // Indicates a DUBNER hijacking is in progress.
  static void hijack_for_development(const char *funcname);
+ static void hijacker();
+ #define RETURN_WHEN_HIJACKED do{if(hijacked){return;}}while(0);
+ #else
+ #define RETURN_WHEN_HIJACKED
+ #define hijacked (false)
+ #endif
  
  static size_t sv_data_name_counter = 1;
  
  static bool suppress_cobol_entry_point = false;
  static char ach_cobol_entry_point[256] = "";
*************** int  show_parse_indent = 0;
*** 84,90 ****
  
  static bool sv_is_i_o = false;
  
! #define DEFAULT_LINE_NUMBER 2
  
  #ifdef LINE_TICK
  /*  This code is used from time to time when sorting out why compilation
--- 91,98 ----
  
  static bool sv_is_i_o = false;
  
! static int perform_is_armed = 0;
! static std::map<int, int> perform_line_pairs;
  
  #ifdef LINE_TICK
  /*  This code is used from time to time when sorting out why compilation
*************** trace1_init()
*** 203,210 ****
    if( first_time )
      {
      first_time = false;
!     trace_handle = gg_define_variable(INT, "trace_handle", vs_static);
!     trace_indent = gg_define_variable(INT, "trace_indent", vs_static);
  
      bTRACE1 = getenv("GCOBOL_TRACE") ? getenv("GCOBOL_TRACE") :gv_trace_switch;
  
--- 211,218 ----
    if( first_time )
      {
      first_time = false;
!     trace_handle = gg_define_variable(INT, "_trace_handle", vs_static);
!     trace_indent = gg_define_variable(INT, "_trace_indent", vs_static);
  
      bTRACE1 = getenv("GCOBOL_TRACE") ? getenv("GCOBOL_TRACE") :gv_trace_switch;
  
*************** level_88_helper(size_t parent_capacity,
*** 384,390 ****
      switch(figconst)
        {
        case normal_value_e :
!         // This really should never happend
          abort();
          break;
        case low_value_e    :
--- 392,398 ----
      switch(figconst)
        {
        case normal_value_e :
!         // This really should never happen
          abort();
          break;
        case low_value_e    :
*************** level_88_helper(size_t parent_capacity,
*** 419,430 ****
      memcpy(first_name, elem.name(), first_name_length);
      first_name[first_name_length] = '\0';
  
-     // Convert it to EBCDIC, when necessary; leave it alone when not necessary.
-     for(size_t i=0; i<first_name_length; i++)
-       {
-       first_name[i] = ascii_to_internal(first_name[i]);
-       }
- 
      if( parent_capacity == 0 )
        {
        // Special case:  parent_capacity is zero when this routine has been
--- 427,432 ----
*************** get_level_88_domain(size_t parent_capaci
*** 505,511 ****
      char *stream;
  
      // Do the first element of the domain
!     stream = level_88_helper(parent_capacity, domain->first, stream_len);
      if( output_index + stream_len > retval_capacity )
        {
        retval_capacity *= 2;
--- 507,515 ----
      char *stream;
  
      // Do the first element of the domain
!     stream = level_88_helper( parent_capacity,
!                               domain->first,
!                               stream_len);
      if( output_index + stream_len > retval_capacity )
        {
        retval_capacity *= 2;
*************** get_level_88_domain(size_t parent_capaci
*** 518,524 ****
      free(stream);
  
      // Do the second element of the domain
!     stream = level_88_helper(parent_capacity, domain->last, stream_len);
      if( output_index + stream_len > retval_capacity )
        {
        retval_capacity *= 2;
--- 522,530 ----
      free(stream);
  
      // Do the second element of the domain
!     stream = level_88_helper( parent_capacity,
!                               domain->last,
!                               stream_len);
      if( output_index + stream_len > retval_capacity )
        {
        retval_capacity *= 2;
*************** get_level_88_domain(size_t parent_capaci
*** 531,536 ****
--- 537,550 ----
      free(stream);
      domain += 1;
      }
+ 
+   if( returned_size >= retval_capacity)
+     {
+     retval_capacity *= 2;
+     retval = static_cast<char *>(xrealloc(retval, retval_capacity));
+     }
+ 
+   gcc_assert(returned_size < retval_capacity);
    retval[returned_size++] = '\0';
    return retval;
    }
*************** static
*** 539,544 ****
--- 553,560 ----
  char *
  get_class_condition_string(cbl_field_t *var)
    {
+   // This routine returns a malloced pointer.
+ 
    // We know at this point that var is FldClass
    // The LEVEL is not 88, so this is a CLASS SPECIAL-NAME
  
*************** get_class_condition_string(cbl_field_t *
*** 555,575 ****
        "ABCJ12"        // This is the same as "A" "B" "C" ...
  
        Expressly presented numbers are the ordinal positions in the run-time
!       character set.  So, an ASCII "A" would be given as 66, which is one
!       greater than 65, which is the ASCII codepoint for "A".  An EBCDIC "A"
!       would be presented as 194, which is one greater than 193, which is the
!       decimal representation of an EBCDIC "A", whose hex code is 0xC2.
  
!       We need to account for EBCDIC as well as ASCII.  In EBCDIC,
!       "A" THROUGH "Z" doesn't mean what it looks like it means, because EBCIDC
!       encoding has gaps between I and J, and between R and S.  That isn't true
!       in ASCII.  We don't want to deal with these issues at compile time, so we
!       are encoding numeric ordinals with their negated values, while other
!       characters are given as the numeric forms of their ASCII encoding.
!       Conversion to EBCDIC occurs at runtime.
  
!       In support of this strategy, character strings like "ABCD" are broken up
!       into "A" "B" "C" "D" and converted to their hexadecimal representations.
        */
  
    char ach[8192];
--- 571,587 ----
        "ABCJ12"        // This is the same as "A" "B" "C" ...
  
        Expressly presented numbers are the ordinal positions in the run-time
!       character set. We encode those values with a leading ascii_hyphen to
!       distinguish them from characters.
  
!       Characters are converted to UTF32 values, and then encoded as big-endian
!       hexadecimal characters.
  
!       A range of values is encoded as a pair of hexadecimal values with an
!       ascii_slash between them.  The second value ends with a space
! 
!       A list of characters is encoded simply as a stream of hexadecimal values
!       separated by spaces.
        */
  
    char ach[8192];
*************** get_class_condition_string(cbl_field_t *
*** 578,659 ****
  
    while( domain->first.is_numeric || domain->first.name() )
      {
-     // *What* were they smoking back then?
- 
-     uint8_t value1;
-     uint8_t value2;
- 
-     char achFirstName[256];
-     char achLastName[256];
- 
      size_t first_name_length = domain->first.size()
                                ? domain->first.size()
                                : strlen(domain->first.name());
!     size_t last_name_length = domain->last.size()
!                               ? domain->last.size()
!                               : strlen(domain->last.name());
  
      if( domain->first.is_numeric )
        {
        if( strlen(ach) > sizeof(ach) - 1000  )
          {
!         cbl_internal_error("Nice try, but you cannot fire me.");
          }
  
!       // We are working with unquoted strings that contain the values 1 through
!       // 256:
!       value1 = (uint8_t)atoi(domain->first.name());
!       value2 = (uint8_t)atoi(domain->last.name());
        if( value2 < value1 )
          {
          std::swap(value1, value2);
          }
        if( value1 != value2  )
          {
!         p += sprintf(p, "-%2.2X/-%2.2X ", value1-1, value2-1);
          }
        else
          {
!         p += sprintf(p, "-%2.2X ", value1-1);
          }
        }
      else if( first_name_length == 1 )
        {
        // Since the first.name is a single character, we can do this as
        // a single-character pair.
  
!       uint8_t ch1;
!       uint8_t ch2;
! 
!       char *p2;
!       size_t one;
!       p2 = achFirstName;
!       one = 8;
!       raw_to_internal(&p2, &one, domain->last.name(), last_name_length);
!       ch2 = achFirstName[0];
! 
!       p2 = achLastName;
!       one = 8;
!       raw_to_internal(&p2, &one, domain->first.name(), first_name_length);
!       ch1 = achLastName[0];
! 
!       if( ch1 < ch2 )
!         {
!         value1 = ch1;
!         value2 = ch2;
!         }
!       else
          {
!         value2 = ch1;
!         value1 = ch2;
          }
!       if( value1 != value2  )
          {
!         p += sprintf(p, "%2.2X/%2.2X ", value1, value2);
          }
        else
          {
!         p += sprintf(p, "%2.2X ", value1);
          }
        }
      else
--- 590,655 ----
  
    while( domain->first.is_numeric || domain->first.name() )
      {
      size_t first_name_length = domain->first.size()
                                ? domain->first.size()
                                : strlen(domain->first.name());
! 
!     cbl_encoding_t from = var->codeset.default_encodings.source->type;
!     cbl_encoding_t to = DEFAULT_32_ENCODING;
!     size_t nbytes;
!     const char *converted;
  
      if( domain->first.is_numeric )
        {
        if( strlen(ach) > sizeof(ach) - 1000  )
          {
!         cbl_internal_error("That string should not be that long.");
          }
  
!       // We are working with unquoted strings that contain the values
!       uint32_t value1 = atoll(domain->first.name());
!       uint32_t value2 = atoll(domain->last.name());
        if( value2 < value1 )
          {
          std::swap(value1, value2);
          }
        if( value1 != value2  )
          {
!         p += sprintf(p, "-%X/-%X ", value1, value2);
          }
        else
          {
!         p += sprintf(p, "-%X ", value1);
          }
        }
      else if( first_name_length == 1 )
        {
        // Since the first.name is a single character, we can do this as
        // a single-character pair.
+       converted = __gg__iconverter(from,
+                                    to,
+                                    domain->first.name(),
+                                    1,
+                                    &nbytes);
+       cbl_char_t ch1 = *reinterpret_cast<const cbl_char_t *>(converted);
+       converted = __gg__iconverter(from,
+                                    to,
+                                    domain->last.name(),
+                                    1,
+                                    &nbytes);
+       cbl_char_t ch2 = *reinterpret_cast<const cbl_char_t *>(converted);
  
!       if( ch1 > ch2 )
          {
!         std::swap(ch1, ch2);
          }
!       if( ch1 != ch2  )
          {
!         p += sprintf(p, "%X/%X ", ch1, ch2);
          }
        else
          {
!         p += sprintf(p, "%X ", ch1);
          }
        }
      else
*************** get_class_condition_string(cbl_field_t *
*** 662,676 ****
  
        // We are working with a string larger than 1 character.  The COBOL
        // spec says there can't be a THROUGH, so we ignore the last.name:
!       char *p2;
!       size_t one;
!       p2 = achFirstName;
!       one = 8;
!       raw_to_internal(&p2, &one, domain->last.name(), last_name_length);
! 
        for(size_t i=0; i<first_name_length; i++)
          {
!         p += sprintf(p, "%2.2X ", (unsigned char)achFirstName[i]);
          }
        }
      domain += 1;
--- 658,675 ----
  
        // We are working with a string larger than 1 character.  The COBOL
        // spec says there can't be a THROUGH, so we ignore the last.name:
!       // size_t first_name_length = domain->first.size()
!                                 // ? domain->first.size()
!                                 // : strlen(domain->first.name());
        for(size_t i=0; i<first_name_length; i++)
          {
!         converted = __gg__iconverter(from,
!                                      to,
!                                      domain->first.name()+i,
!                                      1,
!                                      &nbytes);
!         cbl_char_t ch1 = *reinterpret_cast<const cbl_char_t *>(converted);
!         p += sprintf(p, "%X ", ch1);
          }
        }
      domain += 1;
*************** function_pointer_from_name(const cbl_ref
*** 858,865 ****
                         NULL); // And, hence, no types
  
      // Fetch the FUNCTION_DECL for that FUNCTION_TYPE
!     tree function_decl = gg_build_fn_decl(name.field->data.initial,
                                            fndecl_type);
      // Take the address of the function decl:
      tree address_of_function = gg_get_address_of(function_decl);
      gg_assign(function_pointer, address_of_function);
--- 857,868 ----
                         NULL); // And, hence, no types
  
      // Fetch the FUNCTION_DECL for that FUNCTION_TYPE
!     char *tname = static_cast<char *>(xmalloc(name.field->data.capacity()+1));
!     memcpy(tname, name.field->data.original(), name.field->data.capacity());
!     tname[name.field->data.capacity()] = '\0';
!     tree function_decl = gg_build_fn_decl(tname,
                                            fndecl_type);
+     free(tname);
      // Take the address of the function decl:
      tree address_of_function = gg_get_address_of(function_decl);
      gg_assign(function_pointer, address_of_function);
*************** function_pointer_from_name(const cbl_ref
*** 872,882 ****
        gg_assign(function_pointer,
                  gg_cast(build_pointer_type(function_type),
                          gg_call_expr( VOID_P,
!                                   "__gg__function_handle_from_literal",
!                                   build_int_cst_type(INT,
!                                     current_function->our_symbol_table_index),
!                                   gg_string_literal(name.field->data.initial),
!                                   NULL_TREE)));
        }
      else
        {
--- 875,885 ----
        gg_assign(function_pointer,
                  gg_cast(build_pointer_type(function_type),
                          gg_call_expr( VOID_P,
!                               "__gg__function_handle_from_literal",
!                               build_int_cst_type(INT,
!                                 current_function->our_symbol_table_index),
!                               gg_string_literal(name.field->data.original()),
!                               NULL_TREE)));
        }
      else
        {
*************** parser_initialize_programs( size_t nprog
*** 914,920 ****
        if( progs[i].field->type == FldLiteralA )
          {
          SHOW_PARSE_TEXT("\"")
!         SHOW_PARSE_TEXT(progs[i].field->data.initial)
          SHOW_PARSE_TEXT("\"")
          }
        else
--- 917,923 ----
        if( progs[i].field->type == FldLiteralA )
          {
          SHOW_PARSE_TEXT("\"")
!         SHOW_PARSE_TEXT(progs[i].field->data.original())
          SHOW_PARSE_TEXT("\"")
          }
        else
*************** set_exception_environment( tree ecs, tre
*** 1116,1123 ****
    {
    gg_call(VOID,
            "__gg__set_exception_environment",
!           ecs  ? gg_get_address_of(ecs) : null_pointer_node,
!           dcls ? gg_get_address_of(dcls) : null_pointer_node,
            NULL_TREE);
    }
  
--- 1119,1126 ----
    {
    gg_call(VOID,
            "__gg__set_exception_environment",
!           ecs  ? gg_pointer_to_array(ecs) : null_pointer_node,
!           dcls ? gg_pointer_to_array(dcls) : null_pointer_node,
            NULL_TREE);
    }
  
*************** parser_statement_begin( const cbl_name_t
*** 1156,1161 ****
--- 1159,1176 ----
  
    gcc_assert( gg_trans_unit.function_stack.size() );
  
+   // If a PERFORM is armed, that's the line that the PERFORM is on.  The
+   // cobol_location().first_line here is the major statement following the
+   // the PERFORM statement.  (We don't use .loc information in GDB because of
+   // the difficulty in teasing out which is the "primary" .loc from the
+   // 'is_stmt' and 'discriminator'.  If that's possible, I haven't yet figured
+   // how.)
+   if( perform_is_armed )
+     {
+     perform_line_pairs[perform_is_armed] = cobol_location().first_line;
+     perform_is_armed = 0;
+     }
+ 
    // In the cases where enabled_exceptions.size() is non-zero, or when
    // there is a possibility of an EC-I-O exception because this is a file
    // operation, we need to store the location information and do the exception
*************** parser_statement_begin( const cbl_name_t
*** 1190,1202 ****
    if( exception_processing )
      {
      store_location_stuff(statement_name);
      }
  
!   if( exception_processing )
      {
!     set_exception_environment(ecs, dcls);
      }
-   sv_is_i_o = false;
    }
  
  static void
--- 1205,1264 ----
    if( exception_processing )
      {
      store_location_stuff(statement_name);
+     set_exception_environment(ecs, dcls);
      }
  
!   sv_is_i_o = false;
!   }
! 
! void
! parser_statement_end( const std::list<cbl_field_t*>&flist)
!   {
!   SHOW_PARSE
      {
!     SHOW_PARSE_HEADER
!     char *psz = xasprintf(" List has %ld elements", flist.size());
!     SHOW_PARSE_TEXT(psz);
!     free(psz);
!     SHOW_PARSE_END
!     }
!   TRACE1
!     {
!     TRACE1_HEADER
!     char *psz = xasprintf(" List has %ld elements", flist.size());
!     TRACE1_TEXT(psz);
!     free(psz);
!     TRACE1_END
!     }
!   if( flist.size() )
!     {
!     for( auto field : flist )
!       {
!       SHOW_PARSE
!         {
!         SHOW_PARSE_INDENT
!         char *psz = xasprintf("Deallocating %s", field->name);
!         SHOW_PARSE_TEXT(psz);
!         free(psz);
!         }
!       TRACE1
!         {
!         TRACE1_INDENT
!         char *psz = xasprintf(" Deallocating %s", field->name);
!         TRACE1_TEXT(psz);
!         free(psz);
!         }
! 
!       gg_free(member(field->var_decl_node, "data"));
!       // Flag this guy as free:
!       gg_assign(member(field->var_decl_node, "data"), gg_cast(UCHAR_P, null_pointer_node));
!       gg_assign(member(field->var_decl_node, "allocated"), gg_cast(SIZE_T, integer_zero_node));
!       }
!     TRACE1
!       {
!       TRACE1_END
!       }
      }
    }
  
  static void
*************** initialize_variable_internal( cbl_refer_
*** 1204,1213 ****
                                bool explicitly=false,
                                bool just_once=false)
    {
-   // fprintf(stderr, "initialize_variable_internal for %s\n", refer.field->name);
-   // gg_printf("initialize_variable_internal for %s\n",
-             // gg_string_literal(refer.field->name),
-             // NULL_TREE);
    cbl_field_t *parsed_var = refer.field;
    if( !parsed_var )
      {
--- 1266,1271 ----
*************** initialize_variable_internal( cbl_refer_
*** 1222,1233 ****
      return;
      }
  
!   if( is_register_field( parsed_var) )
!     {
!     return;
!     }
! 
!   if( parsed_var->type == FldBlob )
      {
      return;
      }
--- 1280,1288 ----
      return;
      }
  
!   if(     parsed_var->attr & register_e
!       || (   parsed_var->attr & intermediate_e
!           && parsed_var->type == FldAlphanumeric) )
      {
      return;
      }
*************** initialize_variable_internal( cbl_refer_
*** 1244,1250 ****
        }
      while(0);
      SHOW_PARSE_REF(" ", refer);
!     if( parsed_var->data.initial )
        {
        SHOW_PARSE_TEXT(" >>")
        if( parsed_var->level == 88)
--- 1299,1305 ----
        }
      while(0);
      SHOW_PARSE_REF(" ", refer);
!     if( parsed_var->data.original() )
        {
        SHOW_PARSE_TEXT(" >>")
        if( parsed_var->level == 88)
*************** initialize_variable_internal( cbl_refer_
*** 1326,1344 ****
            case FldNumericEdited:
            case FldAlphaEdited:
            case FldLiteralA:
!             SHOW_PARSE_TEXT(parsed_var->data.initial);
              break;
            default:
              {
              char ach[128];
!             real_to_decimal (ach,
!                              TREE_REAL_CST_PTR (parsed_var->data.value_of()),
!                              sizeof(ach), 16, 0);
              SHOW_PARSE_TEXT(ach);
              break;
              }
            }
- 
          }
        SHOW_PARSE_TEXT("<<")
        }
--- 1381,1407 ----
            case FldNumericEdited:
            case FldAlphaEdited:
            case FldLiteralA:
!             SHOW_PARSE_TEXT(parsed_var->data.original());
              break;
            default:
              {
              char ach[128];
!             if( TREE_CODE(TREE_TYPE(parsed_var->data.value_of())) == REAL_TYPE)
!               {
!               real_to_decimal (ach,
!                                TREE_REAL_CST_PTR (parsed_var->data.value_of()),
!                                sizeof(ach), 16, 0);
!               }
!             else
!               {
!               wi::tree_to_wide_ref iii =
!                                     wi::to_wide( parsed_var->data.value_of() );
!               print_dec(iii, ach, SIGNED);
!               }
              SHOW_PARSE_TEXT(ach);
              break;
              }
            }
          }
        SHOW_PARSE_TEXT("<<")
        }
*************** initialize_variable_internal( cbl_refer_
*** 1369,1375 ****
      is_redefined = true;
      }
  
!   if( parsed_var->data.initial )
      {
      bool a_parent_initialized = false;
      const cbl_field_t *parent = parent_of(parsed_var);
--- 1432,1438 ----
      is_redefined = true;
      }
  
!   if( parsed_var->data.original() )
      {
      bool a_parent_initialized = false;
      const cbl_field_t *parent = parent_of(parsed_var);
*************** initialize_variable_internal( cbl_refer_
*** 1406,1412 ****
    flag_bits     |= just_once ? JUST_ONCE_BIT : 0 ;
  
    suppress_dest_depends = false;  // Set this to false so that refer_is_clean is valid
-   //fprintf(stderr, "refer_is_clean %2.2d %s %d 0x%lx\n", refer.field->level, refer.field->name, refer_is_clean(refer), refer.field->attr);
  
    if( !refer_is_clean(refer) )
      {
--- 1469,1474 ----
*************** initialize_variable_internal( cbl_refer_
*** 1523,1529 ****
           || parsed_var->type == FldLiteralA )
          {
          gg_assign(spaces, integer_one_node);
!         tree counter = gg_define_int(parsed_var->data.capacity);
          WHILE(counter, gt_op, integer_zero_node)
            {
            gg_decrement(counter);
--- 1585,1591 ----
           || parsed_var->type == FldLiteralA )
          {
          gg_assign(spaces, integer_one_node);
!         tree counter = gg_define_int(parsed_var->data.capacity());
          WHILE(counter, gt_op, integer_zero_node)
            {
            gg_decrement(counter);
*************** initialize_variable_internal( cbl_refer_
*** 1555,1571 ****
    suppress_dest_depends = false;
    }
  
- //static void
- //initialize_variable_internal( cbl_field_t *field,
- //                              bool explicitly=false,
- //                              bool just_once=false)
- //  {
- //  cbl_refer_t wrapper(field);
- //  initialize_variable_internal( wrapper,
- //                                explicitly,
- //                                just_once);
- //  }
- 
  void
  parser_initialize(const cbl_refer_t& refer, bool like_parser_symbol_add)
    {
--- 1617,1622 ----
*************** parser_initialize(const cbl_refer_t& ref
*** 1576,1582 ****
      }
    else
      {
!     gcc_assert(refer.field->data.initial);
      static const bool explicitly = true;
      initialize_variable_internal(refer, explicitly);
      }
--- 1627,1633 ----
      }
    else
      {
!     gcc_assert(refer.field->data.original());
      static const bool explicitly = true;
      initialize_variable_internal(refer, explicitly);
      }
*************** get_binary_value_from_float(tree
*** 1591,1597 ****
    {
    // The destination is something with rdigits; the source is FldFloat
    tree ftype;
!   switch( source->data.capacity )
      {
      case 4:
        ftype = FLOAT;
--- 1642,1648 ----
    {
    // The destination is something with rdigits; the source is FldFloat
    tree ftype;
!   switch( source->data.capacity() )
      {
      case 4:
        ftype = FLOAT;
*************** gg_attribute_bit_set(struct cbl_field_t
*** 1658,1669 ****
    }
  #pragma GCC diagnostic pop
  
- static void
- gg_default_qualification(struct cbl_field_t * /*var*/)
-   {
- //  gg_attribute_bit_clear(var, refmod_e);
-   }
- 
  static
  void
  depending_on_value(tree depending_on, cbl_field_t *current_sizer)
--- 1709,1714 ----
*************** get_bytes_needed(cbl_field_t *field)
*** 1727,1733 ****
      case FldPointer:
      case FldFloat:
      case FldLiteralN:
!       retval = field->data.capacity;
        break;
  
      case FldNumericDisplay:
--- 1772,1778 ----
      case FldPointer:
      case FldFloat:
      case FldLiteralN:
!       retval = field->data.capacity();
        break;
  
      case FldNumericDisplay:
*************** get_bytes_needed(cbl_field_t *field)
*** 1783,1789 ****
          }
        else
          {
!         retval = field->data.capacity;
          }
        break;
        }
--- 1828,1834 ----
          }
        else
          {
!         retval = field->data.capacity();
          }
        break;
        }
*************** normal_normal_compare(bool debugging,
*** 2044,2049 ****
--- 2089,2190 ----
      }
    }
  
+ static
+ tree
+ tree_type_from_field_type(cbl_field_t *field, size_t &nbytes)
+   {
+   /*  This routine is used to determine what action is taken with type of a
+       CALL ... USING <var> and the matching PROCEDURE DIVISION USING <var> of
+       a PROGRAM-ID or FUNCTION-ID
+       */
+   tree retval = COBOL_FUNCTION_RETURN_TYPE;
+   nbytes = 8;
+   if( field )
+     {
+     // This maps a Fldxxx to a C-style variable type:
+     switch(field->type)
+       {
+       case FldGroup:
+       case FldAlphanumeric:
+       case FldAlphaEdited:
+       case FldNumericEdited:
+         retval = CHAR_P;
+         nbytes = field->data.capacity();
+         break;
+ 
+       case FldNumericDisplay:
+       case FldNumericBinary:
+       case FldPacked:
+       if( field->data.digits > 18 )
+           {
+           retval = UINT128;
+           nbytes = 16;
+           }
+         else
+           {
+           retval = SIZE_T;
+           nbytes = 8;
+           }
+         break;
+ 
+       case FldNumericBin5:
+       case FldIndex:
+       case FldPointer:
+         if( field->data.capacity() > 8 )
+           {
+           retval = UINT128;
+           nbytes = 16;
+           }
+         else
+           {
+           retval = SIZE_T;
+           nbytes = 8;
+           }
+         break;
+ 
+       case FldFloat:
+         if( field->data.capacity() == 8 )
+           {
+           retval = DOUBLE;
+           nbytes = 8;
+           }
+         else if( field->data.capacity() == 4 )
+           {
+           retval = FLOAT;
+           nbytes = 4;
+           }
+         else
+           {
+           retval = FLOAT128;
+           nbytes = 16;
+           }
+         break;
+ 
+       case FldLiteralN:
+         // Assume a 64-bit signed integer.  This happens for GOBACK STATUS 101,
+         // the like
+         retval = LONG;
+         nbytes = 8;
+         break;
+ 
+       default:
+         cbl_internal_error(  "%s: Invalid field type %s:",
+                 __func__,
+                 cbl_field_type_str(field->type));
+         break;
+       }
+     if( retval == SIZE_T && field->attr & signable_e )
+       {
+       retval = SSIZE_T;
+       }
+     if( retval == UINT128 && field->attr & signable_e )
+       {
+       retval = INT128;
+       }
+     }
+   return retval;
+   }
+ 
  static void
  compare_binary_binary(tree return_int,
                        cbl_refer_t *left_side_ref,
*************** compare_binary_binary(tree return_int,
*** 2056,2061 ****
--- 2197,2250 ----
    tree left_side;
    tree right_side;
  
+   // Let's check for the simplified case where both left and right sides are
+   // little-endian binary values:
+ 
+   if(   is_pure_integer(left_side_ref->field)
+      && is_pure_integer(right_side_ref->field) )
+     {
+     size_t left_bytes;
+     tree left_type = tree_type_from_field_type(left_side_ref->field,
+                                                left_bytes);
+     size_t right_bytes;
+     tree right_type = tree_type_from_field_type(right_side_ref->field,
+                                                 right_bytes);
+     tree larger;
+     if(    TREE_INT_CST_LOW(TYPE_SIZE(left_type))
+          > TREE_INT_CST_LOW(TYPE_SIZE(right_type)) )
+       {
+       larger = left_type;
+       }
+     else
+       {
+       larger = right_type;
+       }
+     left_side  = get_binary_value_tree(larger,
+                                        NULL,
+                                        *left_side_ref);
+     right_side = get_binary_value_tree(larger,
+                                        NULL,
+                                        *right_side_ref);
+     IF( left_side, eq_op, right_side )
+       {
+       gg_assign(return_int, integer_zero_node);
+       }
+     ELSE
+       {
+       IF( left_side, lt_op, right_side )
+         {
+         gg_assign(return_int, integer_minusone_node);
+         }
+       ELSE
+         {
+         gg_assign(return_int, integer_one_node);
+         }
+       ENDIF
+       }
+     ENDIF
+     return;
+     }
+ 
    // Use SIZE128 when we need two 64-bit registers to hold the value.  All
    // others fit into 64-bit LONG with pretty much the same efficiency.
  
*************** compare_binary_binary(tree return_int,
*** 2097,2102 ****
--- 2286,2292 ----
                     right_side_ref->field,
                     refer_offset(*right_side_ref),
                     hilo_right);
+ 
    IF( hilo_left, eq_op, integer_one_node )
      {
      // left side is hi-value
*************** cobol_compare(  tree return_int,
*** 2199,2205 ****
            // gg_string_literal(left_side_ref.field->name),
            // gg_string_literal(right_side_ref.field->name),
            // member(left_side_ref.field, "data"),
!           // gg_string_literal(right_side_ref.field->data.initial),
            // NULL_TREE);
  
    CHECK_FIELD(left_side_ref.field);
--- 2389,2395 ----
            // gg_string_literal(left_side_ref.field->name),
            // gg_string_literal(right_side_ref.field->name),
            // member(left_side_ref.field, "data"),
!           // gg_string_literal(right_side_ref.field->data.original()),
            // NULL_TREE);
  
    CHECK_FIELD(left_side_ref.field);
*************** cobol_compare(  tree return_int,
*** 2250,2273 ****
  
              case FldGroup:
              case FldAlphanumeric:
-             case FldLiteralA:
                {
!               // Comparing a FldLiteralN to an alphanumeric
!               // It is the case that data.initial is in the original form seen
!               // in the source code, which means that even in EBCDIC mode the
!               // characters are in the "ASCII" state.
! 
!               static size_t buffer_size = 0;
!               static char *buffer = NULL;
!               raw_to_internal(&buffer,
!                               &buffer_size,
!                               lefty->field->data.initial,
!                               strlen(lefty->field->data.initial));
! 
                gg_assign(  return_int, gg_call_expr(
                            INT,
                            "__gg__literaln_alpha_compare",
!                           gg_string_literal(buffer),
                            gg_get_address_of(righty->field->var_decl_node),
                            refer_offset(*righty),
                            refer_size_source(  *righty),
--- 2440,2464 ----
  
              case FldGroup:
              case FldAlphanumeric:
                {
!               // Comparing a FldLiteralN to an alphanumeric.  The alphanumeric
!               // is encoded in its codeset.encoding, but the FldLiteralN is,
!               // in accordance with the rules in cbl_field_t::internalize,
!               // encoded in the source-code encoding.  The routine we are about
!               // to call assumes that the literal string is encoded the same
!               // as the alphanumeric, so we have to make it match.
!               size_t outlength;
!               cbl_encoding_t enc_right = righty->field->codeset.encoding;
!               char *converted = __gg__iconverter(
!                                          DEFAULT_SOURCE_ENCODING,
!                                          enc_right,
!                                          lefty->field->data.original(),
!                                          strlen(lefty->field->data.original()),
!                                          &outlength );
                gg_assign(  return_int, gg_call_expr(
                            INT,
                            "__gg__literaln_alpha_compare",
!                           gg_string_literal(converted),
                            gg_get_address_of(righty->field->var_decl_node),
                            refer_offset(*righty),
                            refer_size_source(  *righty),
*************** cobol_compare(  tree return_int,
*** 2278,2283 ****
--- 2469,2488 ----
                break;
                }
  
+             case FldLiteralA:
+               {
+               // Comparing a FldLiteralN to an FldLiteralA.
+               // lefty->field->data.original() is the numeric string in ASCII.
+               // righty->field->data.original() is original alphanumeric
+               // string in ASCII.
+               int icmp = strcmp(lefty->field->data.original(),
+                                 righty->field->data.original());
+               gg_assign(return_int, build_int_cst_type(INT, icmp));
+               compared = true;
+               break;
+               }
+ 
+ 
              default:
                break;
              }
*************** cobol_compare(  tree return_int,
*** 2338,2343 ****
--- 2543,2549 ----
      int rightflags =   (right_side_ref.all         ? REFER_T_MOVE_ALL   : 0)
                      +  (right_side_ref.addr_of     ? REFER_T_ADDRESS_OF : 0)
                      +  (right_side_ref.refmod.from ? REFER_T_REFMOD     : 0);
+ 
      gg_assign(  return_int, gg_call_expr(
                  INT,
                  "__gg__compare",
*************** cobol_compare(  tree return_int,
*** 2353,2561 ****
                  NULL_TREE));
      // compared = true;  // Commented out to quiet cppcheck
      }
- 
- //  gg_printf("   result is %d\n", return_int, NULL_TREE);
-   }
- 
- static void
- move_tree(  cbl_field_t  *dest,
-             tree          offset,
-             tree          psz_source,
-             tree length_bump=integer_zero_node)   // psz_source is a null-terminated string
-   {
-   Analyze();
-   SHOW_PARSE
-     {
-     SHOW_PARSE_HEADER
-     SHOW_PARSE_FIELD(" ", dest);
-     SHOW_PARSE_END
-     }
- 
-   CHECK_FIELD(dest);
- 
-   bool moved = true;
- 
-   tree source_length = gg_define_size_t();
-   gg_assign(source_length, gg_strlen(psz_source));
-   gg_assign(source_length, gg_add(source_length, gg_cast(SIZE_T, length_bump)));
- 
-   tree min_length = gg_define_size_t();
- 
-   tree location = gg_define_uchar_star();
-   tree length   = gg_define_size_t();
- 
-   gg_assign(location,
-             gg_add(member(dest->var_decl_node, "data"),
-                    offset));
-   gg_assign(length,
-             member(dest->var_decl_node, "capacity"));
- 
-   IF(source_length, lt_op, length)
-     {
-     gg_assign(min_length, source_length);
-     }
-   ELSE
-     {
-     gg_assign(min_length, length);
-     }
-   ENDIF
- 
-   tree value;
-   tree rdigits;
- 
-   switch( dest->type )
-     {
-     case FldGroup:
-     case FldAlphanumeric:
-       // Space out the alphanumeric destination:
-       gg_memset(  location,
-                   build_int_cst_type(INT, internal_space),
-                   length );
-       // Copy the alphanumeric result over.
-       gg_memcpy(  location,
-                   psz_source,
-                   min_length );
-       break;
- 
-     case FldNumericDisplay:
-     case FldNumericEdited:
-     case FldNumericBinary:
-     case FldNumericBin5:
-     case FldPacked:
-     case FldIndex:
-       {
-       value   = gg_define_int128();
-       rdigits = gg_define_int();
- 
-       gg_assign(value,
-                 gg_call_expr( INT128,
-                               "__gg__dirty_to_binary_internal",
-                               psz_source,
-                               source_length,
-                               gg_get_address_of(rdigits),
-                               NULL_TREE));
- 
-       gg_call(VOID,
-               "__gg__int128_to_qualified_field",
-               gg_get_address_of(dest->var_decl_node),
-               offset,
-               build_int_cst_type(SIZE_T, dest->data.capacity),
-               value,
-               rdigits,
-               build_int_cst_type(INT, truncation_e),
-               null_pointer_node,
-               NULL_TREE);
-       }
-     break;
- 
-     case FldAlphaEdited:
-       {
-       gg_call(VOID,
-               "__gg__string_to_alpha_edited_ascii",
-               location,
-               psz_source,
-               min_length,
-               member(dest->var_decl_node, "picture"),
-               NULL_TREE);
-       break;
-       }
- 
-     default:
-       moved = false;
-       break;
-     }
- 
-   TRACE1
-     {
-     TRACE1_HEADER
-     gg_fprintf(trace_handle, 1, "source: \"%s\"", psz_source);
-     TRACE1_END
-     TRACE1_INDENT
-     TRACE1_FIELD(               "dest  : ", dest, "")
-     TRACE1_END
-     }
- 
-   if( !moved )
-     {
-     dbgmsg("%10s in %s:%d", __func__, __FILE__, __LINE__ );
-     cbl_internal_error( "I don%'t know how to MOVE an alphabetical string to %s(%s)",
-                         cbl_field_type_str(dest->type),
-                         dest->name
-          );
-     return;
-     }
-   }
- 
- static void
- move_tree_to_field(cbl_field_t *field, tree psz)
-   {
-   move_tree(field, integer_zero_node, psz);
-   }
- 
- static tree
- get_string_from(cbl_field_t *field)
-   {
-   // This returns a malloced copy of either a literal string or a
-   // an alphanumeric field.  The idea is that eventually free() will be
-   // called in the runtime space:
- 
-   tree psz = gg_define_char_star();
- 
-   if( field )
-     {
-     switch( field->type )
-       {
-       case FldLiteralA:
-         {
-         gg_assign(psz,
-                   gg_cast(CHAR_P,
-                           gg_malloc(build_int_cst_type(SIZE_T,
-                                                      field->data.capacity+1))));
-         const char *litstring = get_literal_string(field);
-         gg_memcpy(psz,
-                   gg_string_literal(litstring),
-                   build_int_cst_type(SIZE_T, field->data.capacity+1));
-         break;
-         }
- 
-       case FldGroup:
-       case FldAlphanumeric:
-         // make a copy of .data:
-         gg_assign(psz,
-                   gg_cast(CHAR_P,
-                           gg_malloc(build_int_cst_type(SIZE_T,
-                                                     field->data.capacity+1))));
-         gg_memcpy(  psz,
-                     member(field, "data"),
-                     member(field, "capacity"));
-         // null-terminate it:
-         gg_assign(  gg_array_value(psz, member(field, "capacity")),
-                     char_nodes[0]);
-         break;
- 
-       case FldForward:
-         {
-         // At the present time, we are assuming this happens when somebody
-         // specifies an unquoted file name in an ASSIGN statement:
-         //    SELECT file3 ASSIGN DISK.
-         //
-         // In that case, we just return DISK, which is field->name:
-         psz = gg_strdup(gg_string_literal(field->name));
-         break;
-         }
- 
-       default:
-         cbl_internal_error(
-                 "%s: %<field->type%> %s must be literal or alphanumeric",
-                 __func__, cbl_field_type_str(field->type));
-       break;
-       }
-     }
-   else
-     {
-     gg_assign(psz, gg_cast(CHAR_P, null_pointer_node));
-     }
-   return psz;
    }
  
  static char *
--- 2559,2564 ----
*************** section_label(struct cbl_proc_t *procedu
*** 2685,2691 ****
      }
    assembler_label(psz2);
    free(psz2);
!   insert_nop(108);
    }
  
  static void
--- 2688,2700 ----
      }
    assembler_label(psz2);
    free(psz2);
!   // Needed so that GDB-COBOL can trap at a section name.
!   insert_nop(101);
! 
!   // Go see if there was an ALTER statement targeting this procedure
!   gg_append_statement(procedure->alter_switch_goto);
!   // Lay down the label we will return to if there is no ALTER in play
!   gg_append_statement(procedure->no_alter_label);
    }
  
  static void
*************** paragraph_label(struct cbl_proc_t *proce
*** 2758,2768 ****
    //
    // Yes, trying to understand this causes headaches for many people who read
    // this.  Take an aspirin.
!   insert_nop(109);
    }
  
  static void
! pseudo_return_push(cbl_proc_t *procedure, tree return_addr)
    {
    // Put the return address onto the stack:
    //gg_suppress_location(true);
--- 2767,2782 ----
    //
    // Yes, trying to understand this causes headaches for many people who read
    // this.  Take an aspirin.
!   insert_nop(102);
! 
!   // Go see if there was an ALTER statement targeting this procedure
!   gg_append_statement(procedure->alter_switch_goto);
!   // Lay down the label we will return to if there is no ALTER in play
!   gg_append_statement(procedure->no_alter_label);
    }
  
  static void
! pseudo_return_push(cbl_proc_t *procedure, size_t index)
    {
    // Put the return address onto the stack:
    //gg_suppress_location(true);
*************** pseudo_return_push(cbl_proc_t *procedure
*** 2770,2779 ****
    TRACE1
      {
      TRACE1_HEADER
!     gg_printf("%s %p %p",
                gg_string_literal(procedure->label->name),
                gg_cast(SIZE_T, procedure->exit.addr),
!               return_addr,
                NULL_TREE);
      TRACE1_END
      }
--- 2784,2793 ----
    TRACE1
      {
      TRACE1_HEADER
!     gg_printf("%s %p %ld",
                gg_string_literal(procedure->label->name),
                gg_cast(SIZE_T, procedure->exit.addr),
!               build_int_cst_type(SIZE_T, index),
                NULL_TREE);
      TRACE1_END
      }
*************** pseudo_return_push(cbl_proc_t *procedure
*** 2781,2797 ****
    gg_call(VOID,
            "__gg__pseudo_return_push",
            procedure->exit.addr,
!           return_addr,
            NULL_TREE);
- 
-   //gg_suppress_location(false);
    }
  
  static void
  pseudo_return_pop(cbl_proc_t *procedure)
    {
-   //gg_suppress_location(true);
- 
    TRACE1
      {
      TRACE1_HEADER
--- 2795,2807 ----
    gg_call(VOID,
            "__gg__pseudo_return_push",
            procedure->exit.addr,
!           build_int_cst_type(SIZE_T, index),
            NULL_TREE);
    }
  
  static void
  pseudo_return_pop(cbl_proc_t *procedure)
    {
    TRACE1
      {
      TRACE1_HEADER
*************** pseudo_return_pop(cbl_proc_t *procedure)
*** 2808,2825 ****
      TRACE1
        {
        TRACE1_TEXT("Returning")
        }
      // The top of the stack is us!
  
!     // Pick up the return address from the pseudo_return stack:
      token_location_override(current_location_minus_one());
!     gg_assign(current_function->void_star_temp,
!               gg_call_expr( VOID_P,
!                             "__gg__pseudo_return_pop",
!                             NULL_TREE));
      // And do the return:
      token_location_override(current_location_minus_one());
!     gg_goto(current_function->void_star_temp);
      }
    ELSE
      {
--- 2818,2833 ----
      TRACE1
        {
        TRACE1_TEXT("Returning")
+       TRACE1_END
        }
      // The top of the stack is us!
  
!     // Pick up the return index from the pseudo_return stack:
      token_location_override(current_location_minus_one());
! 
      // And do the return:
      token_location_override(current_location_minus_one());
!     gg_append_statement(procedure->dispatch_switch_goto);
      }
    ELSE
      {
*************** pseudo_return_pop(cbl_proc_t *procedure)
*** 2833,2839 ****
      {
      TRACE1_END
      }
-   //gg_suppress_location(false);
    }
  
  static void
--- 2841,2846 ----
*************** leave_procedure(struct cbl_proc_t *proce
*** 2852,2866 ****
      // procedure->bottom.label);
      // Procedure can be null, for example at the beginning of a
      // new program, or after somebody else has cleared it out.
- 
      gg_append_statement(procedure->exit.label);
- 
-     char *psz;
-     psz = xasprintf("_procret." HOST_SIZE_T_PRINT_DEC ":",
-                     (fmt_size_t)symbol_label_id(procedure->label));
-     token_location_override(current_location_minus_one());
-     gg_insert_into_assembler(psz);
-     free(psz);
      pseudo_return_pop(procedure);
      gg_append_statement(procedure->bottom.label);
      }
--- 2859,2865 ----
*************** find_procedure(cbl_label_t *label)
*** 2968,2978 ****
  
    if( !retval )
      {
-     static int counter=1;
- 
      // This is a new section or paragraph; we need to create its values:
!     retval = static_cast<struct cbl_proc_t *>
!                                           (xmalloc(sizeof(struct cbl_proc_t)));
      gcc_assert(retval);
      retval->label = label;
  
--- 2967,2975 ----
  
    if( !retval )
      {
      // This is a new section or paragraph; we need to create its values:
!     //retval = static_cast<struct cbl_proc_t *>(xmalloc(sizeof(struct cbl_proc_t)));
!     retval = new struct cbl_proc_t;
      gcc_assert(retval);
      retval->label = label;
  
*************** find_procedure(cbl_label_t *label)
*** 2982,3012 ****
                          &retval->top.decl);
      gg_create_goto_pair(&retval->exit.go_to,
                          &retval->exit.label,
!                         &retval->exit.addr
!                         );
      gg_create_goto_pair(&retval->bottom.go_to,
                          &retval->bottom.label,
!                         &retval->bottom.addr
!                         );
  
!     // fprintf(stderr, "NewProcedure: (%p) %s %p %p %p %p %p %p\n",
!     // retval,
!     // retval->name,
!     // retval->top.go_to,
!     // retval->top.label,
!     // retval->exit.go_to,
!     // retval->exit.label,
!     // retval->bottom.go_to,
!     // retval->bottom.label);
  
!     // If this procedure is a paragraph, and it becomes the target of
!     // an ALTER statement, alter_location will be used to make that change
!     char *psz = xasprintf("_%s_alter_loc_%d", label->name, counter);
!     retval->alter_location = gg_define_void_star(psz, vs_static);
!     free(psz);
!     DECL_INITIAL(retval->alter_location) = null_pointer_node;
  
!     counter +=1 ;
  
      label->structs.proc = retval;
      }
--- 2979,3008 ----
                          &retval->top.decl);
      gg_create_goto_pair(&retval->exit.go_to,
                          &retval->exit.label,
!                         &retval->exit.addr);
      gg_create_goto_pair(&retval->bottom.go_to,
                          &retval->bottom.label,
!                         &retval->bottom.addr);
  
!     // We need a goto/label pair for the location of the dispatch switch for
!     // this paragraph:
!     gg_create_goto_pair(&retval->dispatch_switch_goto,
!                         &retval->dispatch_switch_label);
  
!     // We need goto/label pairs for the location of the dispatch switch for
!     // any potential ALTER to this paragraph
!     gg_create_goto_pair(&retval->alter_switch_goto,
!                         &retval->alter_switch_label);
!     gg_create_goto_pair(&retval->no_alter_goto,
!                         &retval->no_alter_label);
  
!     // We can now add this procedure to the of paragraphs that might be
!     // performed:
!     current_function->list_of_procedures.push_back(retval);
! 
!     // When this paragraph becomes the target of an ALTER statement, the index
!     // that will be used in the switch() statement goes here:
!     retval->alter_index = gg_define_variable(SIZE_T, NULL, vs_static, 0);
  
      label->structs.proc = retval;
      }
*************** void
*** 3018,3023 ****
--- 3014,3022 ----
  parser_enter_section(cbl_label_t *label)
    {
    Analyze();
+ 
+   RETURN_WHEN_HIJACKED;
+ 
    // Do the leaving before the SHOW_PARSE; it makes the output more sensible
    // A new section ends the current paragraph:
    leave_paragraph_internal();
*************** parser_enter_section(cbl_label_t *label)
*** 3038,3044 ****
  
    // This NOP is needed to give GDB a line number for the entry point of
    // paragraphs
!   insert_nop(101);
  
    struct cbl_proc_t *procedure = find_procedure(label);
    gg_append_statement(procedure->top.label);
--- 3037,3043 ----
  
    // This NOP is needed to give GDB a line number for the entry point of
    // paragraphs
!   insert_nop(103);
  
    struct cbl_proc_t *procedure = find_procedure(label);
    gg_append_statement(procedure->top.label);
*************** void
*** 3057,3062 ****
--- 3056,3064 ----
  parser_enter_paragraph(cbl_label_t *label)
    {
    Analyze();
+ 
+   RETURN_WHEN_HIJACKED;
+ 
    // Do the leaving before the SHOW_PARSE; the output makes more sense that way
    // A new paragraph ends the current paragraph:
    leave_paragraph_internal();
*************** parser_enter_paragraph(cbl_label_t *labe
*** 3073,3078 ****
--- 3075,3081 ----
    CHECK_LABEL(label);
  
    struct cbl_proc_t *procedure = find_procedure(label);
+ 
    gg_append_statement(procedure->top.label);
    paragraph_label(procedure);
    current_function->current_paragraph = procedure;
*************** parser_alter( cbl_perform_tgt_t *tgt )
*** 3165,3177 ****
    struct cbl_proc_t *altered_proc = find_procedure(altered);
    struct cbl_proc_t *proceed_to_proc = find_procedure(proceed_to);
  
!   gg_assign(  altered_proc->alter_location,
!               proceed_to_proc->top.addr);
    }
  
  void
  parser_goto( cbl_refer_t value_ref, size_t narg, cbl_label_t * const labels[] )
!   {
    // This is part of the Terrible Trio of parser_perform, parser_goto and
    // parser_enter_[procedure].  parser_goto has an easier time of it than
    // the other two, because it just has to jump from here to the entry point
--- 3168,3185 ----
    struct cbl_proc_t *altered_proc = find_procedure(altered);
    struct cbl_proc_t *proceed_to_proc = find_procedure(proceed_to);
  
!   // We add one to the size of the alter_decls list, because we use zero to
!   // indicate that alter_index hasn't been changed.
!   gg_assign(altered_proc->alter_index,
!             build_int_cst_type(SIZE_T,
!                                altered_proc->alter_decls.size()+1));
!   altered_proc->alter_decls.push_back(proceed_to_proc->top.addr);
    }
  
  void
  parser_goto( cbl_refer_t value_ref, size_t narg, cbl_label_t * const labels[] )
!   // This routine takes
! {
    // This is part of the Terrible Trio of parser_perform, parser_goto and
    // parser_enter_[procedure].  parser_goto has an easier time of it than
    // the other two, because it just has to jump from here to the entry point
*************** parser_goto( cbl_refer_t value_ref, size
*** 3201,3398 ****
  
    gcc_assert(narg >= 1);
  
!   // This is a computed GOTO.  It might have only one element, which is
!   // an ordinary GOTO without a DEPENDING ON clause.  We create that table
!   // anyway, because in the case of an ALTER statement, we will be replacing
!   // that sole element with the PROCEED TO element.
! 
!   // We need to create a static array of pointers to locations:
!   static int comp_gotos = 1;
!   char *psz = xasprintf("_comp_goto_%d", comp_gotos++);
!   tree array_of_pointers_type = build_array_type_nelts(VOID_P, narg);
!   tree array_of_pointers = gg_define_variable(array_of_pointers_type, psz, vs_static);
!   free(psz);
! 
!   // We have the array.  Now we need to build the constructor for it
!   tree constr = make_node(CONSTRUCTOR);
!   TREE_TYPE(constr) = array_of_pointers_type;
!   TREE_STATIC(constr)    = 1;
!   TREE_CONSTANT(constr)  = 1;
! 
!   for(size_t i=0; i<narg; i++)
      {
!     CHECK_LABEL(labels[i]);
!     struct cbl_proc_t *procedure = find_procedure(labels[i]);
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             build_int_cst_type(SIZE_T, i),
!                             procedure->top.addr );
      }
!   DECL_INITIAL(array_of_pointers) = constr;
! 
!   // We need to pick up the value argument as an INT:
!   tree value   = gg_define_int();
! 
!   if( value_ref.field )
      {
      get_binary_value( value,
                        NULL,
                        value_ref.field,
                        refer_offset(value_ref));
-     // Convert it from one-based to zero-based:
-     gg_decrement(value);
-     // Check to see if the value is in the range 0...narg-1:
-     IF( value, ge_op, integer_zero_node)
-       {
-       IF( value, lt_op, build_int_cst_type(INT, narg) )
-         {
-         // It is in the valid range, so we can do the goto:
-         Analyzer.ExitMessage();
-         gg_goto(gg_array_value(array_of_pointers, value));
-         }
-       ELSE
-         {
-         // Otherwise, just fall through
-         }
-         ENDIF
-       }
-     ELSE
-       ENDIF
-     }
-   else
-     {
-     // This is a simple GOTO.  Because it is a simple GO TO, there is the
-     // possibility that this paragraph was the target of an ALTER statement.
-     IF( current_function->current_paragraph->alter_location, ne_op, null_pointer_node )
-       {
-       // Somebody did an ALTER statement before we got here
-       gg_assign(current_function->void_star_temp, current_function->current_paragraph->alter_location);
-       }
-     ELSE
-       {
-       // This paragraph wasn't the target of an ALTER:
-       gg_assign(current_function->void_star_temp, gg_array_value(array_of_pointers, 0));
-       }
-       ENDIF
-     Analyzer.ExitMessage();
-     gg_goto(current_function->void_star_temp);
-     }
-   return;
-   }
- 
- void
- parser_perform(cbl_label_t *label, bool suppress_nexting)
-   {
-   Analyze();
-   SHOW_PARSE
-     {
-     SHOW_PARSE_HEADER
-     SHOW_PARSE_LABEL(" ", label)
-     char ach[32];
-     sprintf(ach, " label is at %p", static_cast<void*>(label));
-     SHOW_PARSE_TEXT(ach)
-     if( label )
-       {
-       sprintf(ach,
-               " label->proc is %p",
-               static_cast<void*>(label->structs.proc));
-       }
-     SHOW_PARSE_TEXT(ach)
-     SHOW_PARSE_END
-     }
- 
-   TRACE1
-     {
-     TRACE1_HEADER
-     TRACE1_LABEL("", label, "")
-     TRACE1_END
-     }
- 
-   CHECK_LABEL(label);
-   label->used = yylineno;
- 
-   struct cbl_proc_t *procedure = find_procedure(label);
- 
-   // We need to create the unnamed return address that we
-   // will instantiate right after the goto:
-   tree return_address_decl = build_decl(  UNKNOWN_LOCATION,
-                                           LABEL_DECL,
-                                           NULL_TREE,
-                                           void_type_node);
-   DECL_CONTEXT(return_address_decl) = current_function->function_decl;
-   TREE_USED(return_address_decl) = 1;
  
!   tree return_label_expr = build1(LABEL_EXPR,
!                                   void_type_node,
!                                   return_address_decl);
!   tree return_addr = gg_get_address_of(return_address_decl);
! 
! //  cbl_parser_mod *parser_mod = new cbl_parser_mod;
  
!   // Put the return address onto the pseudo-return stack
!   pseudo_return_push(procedure, return_addr);
  
!   // Create the code that will launch the paragraph
!   // The following comment is, believe it or not, necessary.  The insertion
!   // includes a line number insertion that's needed because when the goto/label
!   // pairs were created, the locations of the goto instruction and the label
!   // were not known.
  
!   const char *para_name     = nullptr;
!   const char *sect_name     = nullptr;
!   const char *program_name  = current_function->our_unmangled_name;
!   size_t deconflictor = symbol_label_id(label);
  
!   char ach[256];
!   if( label->type == LblParagraph )
!     {
!     const cbl_label_t *sec_label = cbl_label_of(symbol_at(label->parent));
!     para_name = label->name;
!     sect_name = sec_label->name;
!     sprintf(ach,
!             "%s PERFORM %s of %s of %s (" HOST_SIZE_T_PRINT_DEC ")",
!             ASM_COMMENT_START,
!             para_name,
!             sect_name,
!             program_name,
!             (fmt_size_t)deconflictor);
  
!     gg_insert_into_assembler(ach);
!     }
!   else
!     {
!     sect_name = label->name;
!     sprintf(ach,
!             "%s PERFORM %s of %s (" HOST_SIZE_T_PRINT_DEC ")",
!             ASM_COMMENT_START,
!             sect_name,
!             program_name,
!             (fmt_size_t)deconflictor);
!     gg_insert_into_assembler(ach);
!     }
  
!   if( !suppress_nexting )
!     {
!     sprintf(ach,
!             "_proccall." HOST_SIZE_T_PRINT_DEC ".%d:",
!             (fmt_size_t)symbol_label_id(label),
!             call_counter++);
!     gg_insert_into_assembler( ach );
!     }
  
!   // We do the indirect jump in order to prevent the compiler from complaining
!   // in the case where we are performing a USE GLOBAL DECLARATIVE.  Without the
!   // indirection, the compiler isn't able to handle the case where we are
!   // jumping to a location in our parent program-id; it can't find a matching
!   // local symbol, and crashes.
!   gg_goto(procedure->top.addr);
  
!   // And create the return address label:
!   gg_append_statement(return_label_expr);
!   TRACE1
!     {
!     TRACE1_HEADER
!     TRACE1_LABEL("back_from_performing ", label, "")
!     TRACE1_END
      }
    }
  
--- 3209,3269 ----
  
    gcc_assert(narg >= 1);
  
!   if( narg == 1 )
      {
!     // This is the simplest possible case -- no DEPENDING ON clause.
!     struct cbl_proc_t *procedure = find_procedure(labels[0]);
!     gg_append_statement(procedure->top.go_to);
      }
!   else
      {
+     // We will implement the two or more fanout with a switch statement.
+ 
+     tree value = gg_define_int();
      get_binary_value( value,
                        NULL,
                        value_ref.field,
                        refer_offset(value_ref));
  
!     // value is properly 1 through nargs
  
!     tree switch_statement_list = make_node(STATEMENT_LIST);
!     TREE_TYPE(switch_statement_list) = void_type_node;
  
!     tree switchexpr = build2(SWITCH_EXPR,
!                              integer_type_node,
!                              value,
!                              switch_statement_list);
!     gg_append_statement(switchexpr);
!     current_function->statement_list_stack.push_back(switch_statement_list);
  
!     tree caselabel;
!     tree labeldecl;
  
!     for(size_t i = 0; i < narg; ++i)
!       {
!       tree val = build_int_cst(INT, i+1);
!       labeldecl = create_artificial_label(UNKNOWN_LOCATION);
!       DECL_CONTEXT(labeldecl) = current_function->function_decl;
!       caselabel = build_case_label(val,
!                                    NULL_TREE,
!                                    labeldecl);
!       gg_append_statement(caselabel);
  
!       struct cbl_proc_t *procedure = find_procedure(labels[i]);
!       gg_append_statement(procedure->top.go_to);
!       }
  
!     // Finish with a default case that just falls through
!     labeldecl = create_artificial_label(UNKNOWN_LOCATION);
!     DECL_CONTEXT(labeldecl) = current_function->function_decl;
  
!     caselabel = build_case_label(NULL_TREE,
!                                  NULL_TREE,
!                                  labeldecl);
!     gg_append_statement(caselabel);
  
!     current_function->statement_list_stack.pop_back();
      }
    }
  
*************** parser_perform_times( cbl_label_t *proc_
*** 3419,3430 ****
      TRACE1_END
      }
  
!   char ach[256];
!   size_t our_pseudo_label = pseudo_label++;
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    tree counter       = gg_define_variable(LONG);
  
--- 3290,3296 ----
      TRACE1_END
      }
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    tree counter       = gg_define_variable(LONG);
  
*************** parser_perform_times( cbl_label_t *proc_
*** 3442,3453 ****
      gg_decrement(counter);
      }
      WEND
- 
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler(ach);
    }
  
  static void
--- 3308,3313 ----
*************** internal_perform_through( cbl_label_t *p
*** 3491,3503 ****
  
    if( !proc_2 )
      {
!     parser_perform(proc_1, suppress_nexting);
!     return;
      }
  
    struct cbl_proc_t *proc1 = find_procedure(proc_1);
    struct cbl_proc_t *proc2 = find_procedure(proc_2);
  
    // We need to create the unnamed return address that we
    // will instantiate right after the goto:
    tree return_address_decl = build_decl(  UNKNOWN_LOCATION,
--- 3351,3364 ----
  
    if( !proc_2 )
      {
!     proc_2 = proc_1;
      }
  
    struct cbl_proc_t *proc1 = find_procedure(proc_1);
    struct cbl_proc_t *proc2 = find_procedure(proc_2);
  
+   size_t dispatch_index = proc2->pseudo_return_decls.size();
+ 
    // We need to create the unnamed return address that we
    // will instantiate right after the goto:
    tree return_address_decl = build_decl(  UNKNOWN_LOCATION,
*************** internal_perform_through( cbl_label_t *p
*** 3510,3541 ****
    tree return_label_expr = build1(LABEL_EXPR,
                                    void_type_node,
                                    return_address_decl);
-   tree return_addr = gg_get_address_of(return_address_decl);
  
!   //cbl_parser_mod *parser_mod_proc1 = new cbl_parser_mod;
!   //cbl_parser_mod *parser_mod_proc2 = new cbl_parser_mod;
! 
!   // Put the return address of the second procedure onto the stack:
!   pseudo_return_push(proc2, return_addr);
  
    // Create the code that will launch the first procedure
!   gg_insert_into_assemblerf("%s PERFORM %s THROUGH %s",
!                         ASM_COMMENT_START, proc_1->name, proc_2->name);
  
    if( !suppress_nexting )
      {
!     char ach[256];
!     sprintf(ach,
!             "_proccall." HOST_SIZE_T_PRINT_DEC ".%d:",
!             (fmt_size_t)symbol_label_id(proc_2),
!             call_counter++);
!     gg_insert_into_assembler(ach);
      }
  
    gg_append_statement(proc1->top.go_to);
  
    // And create the return address label:
    gg_append_statement(return_label_expr);
    }
  
  static void
--- 3371,3411 ----
    tree return_label_expr = build1(LABEL_EXPR,
                                    void_type_node,
                                    return_address_decl);
  
!   // Put the dispatch_index for this PERFORM onto the stack
!   pseudo_return_push(proc2, dispatch_index);
  
    // Create the code that will launch the first procedure
!   if( proc_1 != proc_2 )
!     {
!     gg_insert_into_assemblerf("%s PERFORM %s THROUGH %s",
!                           ASM_COMMENT_START, proc_1->name, proc_2->name);
!     }
!   else
!     {
!     gg_insert_into_assemblerf("%s PERFORM %s",
!                           ASM_COMMENT_START, proc_1->name);
!     }
  
    if( !suppress_nexting )
      {
!     perform_is_armed = CURRENT_LINE_NUMBER ;
      }
  
    gg_append_statement(proc1->top.go_to);
  
    // And create the return address label:
    gg_append_statement(return_label_expr);
+ 
+   // Now we add the return location for the PERFORM to the vector of such
+   // locations for proc2:
+   proc2->pseudo_return_decls.push_back(return_address_decl);
+   }
+ 
+ void
+ parser_perform(cbl_label_t *label, bool suppress_nexting)
+   {
+   return internal_perform_through(label, NULL, suppress_nexting);
    }
  
  static void
*************** internal_perform_through_times(   cbl_la
*** 3577,3589 ****
      TRACE1_END
      }
  
!   size_t our_pseudo_label = pseudo_label++;
! 
!   char ach[256];
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    tree counter       = gg_define_variable(LONG);
    get_binary_value( counter,
--- 3447,3453 ----
      TRACE1_END
      }
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    tree counter       = gg_define_variable(LONG);
    get_binary_value( counter,
*************** internal_perform_through_times(   cbl_la
*** 3596,3607 ****
      gg_decrement(counter);
      }
      WEND
- 
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler( ach );
    }
  
  void
--- 3460,3465 ----
*************** parser_enter_file(const char *filename)
*** 3739,3752 ****
      SET_VAR_DECL(var_decl_rdigits                , INT    , "__gg__rdigits");
      SET_VAR_DECL(var_decl_unique_prog_id         , SIZE_T , "__gg__unique_prog_id");
  
-     SET_VAR_DECL(var_decl_entry_location         , VOID_P , "__gg__entry_pointer");
      SET_VAR_DECL(var_decl_exit_address           , VOID_P , "__gg__exit_address");
  
      SET_VAR_DECL(var_decl_call_parameter_signature , CHAR_P   , "__gg__call_parameter_signature");
      SET_VAR_DECL(var_decl_call_parameter_count     , INT      , "__gg__call_parameter_count");
      SET_VAR_DECL(var_decl_call_parameter_lengths   , build_array_type(SIZE_T, NULL),
                                                              "__gg__call_parameter_lengths");
-     SET_VAR_DECL(var_decl_return_code             , SHORT      , "__gg__data_return_code");
  
      SET_VAR_DECL(var_decl_arithmetic_rounds_size  , SIZE_T , "__gg__arithmetic_rounds_size");
      SET_VAR_DECL(var_decl_arithmetic_rounds       , INT_P  , "__gg__arithmetic_rounds");
--- 3597,3608 ----
*************** parser_enter_file(const char *filename)
*** 3767,3772 ****
--- 3623,3629 ----
      SET_VAR_DECL(var_decl_treeplet_4s             , SIZE_T_P                , "__gg__treeplet_4s"     );
      SET_VAR_DECL(var_decl_nop                     , INT                     , "__gg__nop"             );
      SET_VAR_DECL(var_decl_main_called             , INT                     , "__gg__main_called"     );
+     SET_VAR_DECL(var_decl_entry_index             , SIZE_T                  , "__gg__entry_index"     );
      }
    }
  
*************** parser_leave_file()
*** 3793,3811 ****
      // We are leaving the top-level file, which means this compilation is
      // done, done, done.
  
!     // There is, however, one thing left to do.  If the command line says
!     // that this module needs a main entry point, then this is where
!     // we create a main() function.  We build it at the end, so that all of
!     // the .loc directives associated with it appear at the end of the
!     // source code.  We used to create the main() entry point at the beginning,
!     // but that created confusion for GDB when trying to debug the generated
!     // executable.
!     if( main_entry_point )
        {
!       next_program_is_main = false;
!       build_main_that_calls_something(main_entry_point);
!       free(main_entry_point);
!       main_entry_point = NULL;
        }
  
      gg_leaving_the_source_code_file();
--- 3650,3706 ----
      // We are leaving the top-level file, which means this compilation is
      // done, done, done.
  
!     if( !hijacked )
        {
!       // This is where we create the file-static table of PERFORM/FOLLOWING line
!       // number pairs so that the GDB-COBOL debugger can know where to "return"
!       // to after a NEXT is issued on a PERFORM statement.
! 
!       // We need to create a file-static static array of 32-bit integers.  The
!       // array is terminated with a {0,0} pair:
!       tree array_of_int_type = build_array_type_nelts(INT, (perform_line_pairs.size()+1)*2);
!       tree array_of_int = gg_define_variable( array_of_int_type,
!                                               "_perform_line_pairs",
!                                               vs_file_static);
!       // We have the array.  Now we need to build the constructor for it
!       tree constr = make_node(CONSTRUCTOR);
!       TREE_TYPE(constr) = array_of_int_type;
!       TREE_STATIC(constr)    = 1;
!       TREE_CONSTANT(constr)  = 1;
! 
!       // The first element of the array contains the number of elements to follow
!       size_t i = 0;
!       for(auto it : perform_line_pairs)
!         {
!         CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                                 build_int_cst_type(SIZE_T, i++),
!                                 build_int_cst_type(INT, it.first) );
!         CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                                 build_int_cst_type(SIZE_T, i++),
!                                 build_int_cst_type(INT, it.second) );
!         }
!       CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                               build_int_cst_type(SIZE_T, i++),
!                               integer_zero_node );
!       CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                               build_int_cst_type(SIZE_T, i++),
!                               integer_zero_node );
!       DECL_INITIAL(array_of_int) = constr;
! 
!       // There is, however, one thing left to do.  If the command line says
!       // that this module needs a main entry point, then this is where
!       // we create a main() function.  We build it at the end, so that all of
!       // the .loc directives associated with it appear at the end of the
!       // source code.  We used to create the main() entry point at the beginning,
!       // but that created confusion for GDB when trying to debug the generated
!       // executable.
!       if( main_entry_point )
!         {
!         next_program_is_main = false;
!         build_main_that_calls_something(main_entry_point);
!         free(main_entry_point);
!         main_entry_point = NULL;
!         }
        }
  
      gg_leaving_the_source_code_file();
*************** enter_program_common(const char *funcnam
*** 3845,3853 ****
  
    gg_assign(current_function->first_time_through, integer_zero_node);
  
-   // Establish variables that are function-wide in scope:
-   current_function->void_star_temp = gg_define_void_star("_void_star_temp");
- 
    current_function->perform_exit_address
      = gg_define_void_star("_perform_exit_address");
  
--- 3740,3745 ----
*************** enter_program_common(const char *funcnam
*** 3858,3882 ****
    current_function->current_section = NULL;
    current_function->current_paragraph = NULL;
  
-   // Text conversion must be initialized before the code generated by
-   // parser_symbol_add runs.
- 
-   // The text_conversion_override exists both in the library and in the compiler
- 
-   __gg__set_internal_codeset(internal_codeset_is_ebcdic());
-   gg_call(VOID,
-           "__gg__set_internal_codeset",
-           internal_codeset_is_ebcdic()
-           ? integer_one_node : integer_zero_node,
-           NULL_TREE);
- 
-   __gg__text_conversion_override(td_default_e, cs_default_e);
-   gg_call(VOID,
-           "__gg__text_conversion_override",
-           build_int_cst_type(INT, td_default_e),
-           build_int_cst_type(INT, cs_default_e),
-           NULL_TREE);
- 
    gg_call(VOID,
            "__gg__codeset_figurative_constants",
            NULL_TREE);
--- 3750,3755 ----
*************** parser_enter_program( const char *funcna
*** 3967,3973 ****
  
    if( strcmp(funcname_, "main") == 0 && this_module_has_main )
      {
!     // setting 'retval' to 1 let's the caller know that we are being told
      // both to synthesize a main() entry point to duplicate GCC's default
      // behavior, and to create an explicit entry point named "main".  This will
      // eventually result in a link error (because of the duplicated entry
--- 3840,3846 ----
  
    if( strcmp(funcname_, "main") == 0 && this_module_has_main )
      {
!     // Setting 'retval' to 1 lets the caller know that we are being told
      // both to synthesize a main() entry point to duplicate GCC's default
      // behavior, and to create an explicit entry point named "main".  This will
      // eventually result in a link error (because of the duplicated entry
*************** parser_enter_program( const char *funcna
*** 3976,3989 ****
      *pretval = 1;
      }
  
    if( strcmp(funcname, "dubner") == 0)
      {
!     // This should be enabled by an environment variable.
!     // But for now I am being cutesy
      hijack_for_development(funcname);
      return;
      }
  
    enter_program_common(funcname, funcname_);
    current_function->is_function = is_function;
  
--- 3849,3864 ----
      *pretval = 1;
      }
  
+ #ifdef ENABLE_HIJACKING
    if( strcmp(funcname, "dubner") == 0)
      {
!     fprintf(stderr, "This is a DUBNER hijacking\n");
      hijack_for_development(funcname);
      return;
      }
  
+ #endif
+ 
    enter_program_common(funcname, funcname_);
    current_function->is_function = is_function;
  
*************** parser_enter_program( const char *funcna
*** 3999,4006 ****
    free(funcname);
    }
  
  void
! parser_end_program(const char *prog_name  )
    {
    if( gg_trans_unit.function_stack.size() )
      {
--- 3874,4180 ----
    free(funcname);
    }
  
+ static class label_verify_t {
+   std::set<size_t> lain, dangling;
+   static inline size_t index_of( const cbl_label_t *label ) {
+     return symbol_index(symbol_elem_of(label));
+   }
+ public:
+   void go_to( const cbl_label_t *label ) {
+     auto p = lain.find(index_of(label));
+     if( p == lain.end() ) {
+       dangling.insert(index_of(label));
+     }
+   }
+   void lay( const cbl_label_t *label ) {
+     auto ok = lain.insert(index_of(label));
+     if( ok.second ) {
+       dangling.erase(index_of(label));
+     }
+   }
+   bool vet() const { // be always agreeable, for now.
+     return dangling.empty();
+   }
+   void dump() const {
+     fprintf(stderr, "%u nonexistent labels called\n", unsigned(dangling.size()) );
+     for( auto sym : dangling ) {
+       const cbl_label_t *label = cbl_label_of(symbol_at(sym));
+       fprintf(stderr, "\t %s\n", label->name);
+     }
+   }
+ } label_verify;
+ 
+ static void
+ build_dispatch_switch(const std::vector<tree> &label_decls)
+   {
+   // This routine accepts vector of LABEL_DECLs.  It creates a
+   // switch statement that's equivalent to
+   //      switch(N)
+   //         {
+   //         default:
+   //         case 0:
+   //             goto label[0];
+   //         case 1:
+   //             goto label[1];
+   //         ...
+   //         case N-1:
+   //             goto label[N-1];
+   //         }
+ 
+   // If the vector of label_decls is empty, there is no need to create the
+   // switch statement.
+ 
+   if( !label_decls.empty() )
+     {
+     tree switch_statement_list = make_node(STATEMENT_LIST);
+     TREE_TYPE(switch_statement_list) = void_type_node;
+ 
+     tree switchexpr = build2(SWITCH_EXPR,
+                              integer_type_node,
+                              gg_call_expr( SIZE_T,
+                                           "__gg__pseudo_return_pop",
+                                           NULL_TREE),
+                              switch_statement_list);
+ 
+ 
+     gg_append_statement(switchexpr);
+     current_function->statement_list_stack.push_back(switch_statement_list);
+ 
+     // Start off with a "default:" case
+     tree labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+     DECL_CONTEXT(labeldecl) = current_function->function_decl;
+     TREE_USED(labeldecl) = 1;
+ 
+     tree caselabel;
+     caselabel = build_case_label(NULL_TREE,
+                                  NULL_TREE,
+                                  labeldecl);
+     gg_append_statement(caselabel);
+ 
+     for(size_t i = 0; i < label_decls.size(); ++i)
+       {
+       // Start with the case label for the pseudo-return location.
+       tree val = build_int_cst(SIZE_T, i);
+ 
+       labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+       DECL_CONTEXT(labeldecl) = current_function->function_decl;
+ 
+       caselabel = build_case_label(val,
+                                    NULL_TREE,
+                                    labeldecl);
+       gg_append_statement(caselabel);
+ 
+       // And follow up with a goto expression for the pseudo-return location.
+       tree goto_expr  = build1( GOTO_EXPR,
+                                 void_type_node,
+                                 label_decls[i]);
+       gg_append_statement(goto_expr);
+       }
+ 
+     current_function->statement_list_stack.pop_back();
+     }
+   }
+ 
+ static void
+ build_alter_switch(cbl_proc_t *proc, const std::vector<tree> &label_decls)
+   {
+   // This routine accepts a vector of LABEL_DECLs.  It lays down code
+   // equivalent to
+   //    if( label_decls.size() )
+   //      {
+   //      switch(N)
+   //         {
+   //         case 0:
+   //             goto proc->no_alter_label;
+   //         case 1:
+   //             goto label[0];
+   //         ...
+   //         case N:
+   //             goto label[N-1];
+   //         default:
+   //         }
+   //       }
+   //     goto proc->no_alter_label;
+ 
+   if( !label_decls.empty() )
+     {
+     tree switch_statement_list = make_node(STATEMENT_LIST);
+     TREE_TYPE(switch_statement_list) = void_type_node;
+ 
+     tree switchexpr = build2(SWITCH_EXPR,
+                              integer_type_node,
+                              proc->alter_index,
+                              switch_statement_list);
+     gg_append_statement(switchexpr);
+     current_function->statement_list_stack.push_back(switch_statement_list);
+ 
+     tree caselabel;
+     tree labeldecl;
+ 
+     for(size_t i = 0; i < label_decls.size()+1; ++i)
+       {
+       // Start with the case label for the pseudo-return location.
+       tree val =
+             build_int_cst(TREE_TYPE(proc->alter_index), i);
+ 
+       labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+       DECL_CONTEXT(labeldecl) = current_function->function_decl;
+ 
+       caselabel = build_case_label(val,
+                                    NULL_TREE,
+                                    labeldecl);
+       gg_append_statement(caselabel);
+ 
+       // And follow up with a goto expression for the pseudo-return location.
+       if( i == 0 )
+         {
+         gg_append_statement(proc->no_alter_goto);
+         }
+       else
+         {
+         tree goto_expr  = build1( GOTO_EXPR,
+                                   void_type_node,
+                                   label_decls[i-1]);
+         gg_append_statement(goto_expr);
+         }
+       }
+ 
+     // End with a fall-through with "default:" case
+     labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+     DECL_CONTEXT(labeldecl) = current_function->function_decl;
+     caselabel = build_case_label(NULL_TREE,
+                                  NULL_TREE,
+                                  labeldecl);
+     gg_append_statement(caselabel);
+ 
+     current_function->statement_list_stack.pop_back();
+     }
+   gg_append_statement(proc->no_alter_goto);
+ 
+   }
+ 
+ static void
+ build_entry_switch(const std::vector<tree> &goto_expr)
+   {
+   // This routine accepts a vector of GOTO_EXPRs.  It lays down code
+   // equivalent to
+   //    if( goto_expr.size() )
+   //      {
+   //      switch(var_decl_entry_index)
+   //         {
+   //         case 1:
+   //            var_decl_entry_index = 0
+   //            goto goto_expr[0]
+   //         ...
+   //         case N:
+   //            var_decl_entry_index = 0
+   //            goto goto_expr[N-1];
+   //         default:
+   //            abort();
+   //         }
+   //       }
+ 
+   if( !goto_expr.empty() )
+     {
+     tree switch_statement_list = make_node(STATEMENT_LIST);
+     TREE_TYPE(switch_statement_list) = void_type_node;
+ 
+     tree switchexpr = build2(SWITCH_EXPR,
+                              integer_type_node,
+                              var_decl_entry_index,
+                              switch_statement_list);
+     gg_append_statement(switchexpr);
+     current_function->statement_list_stack.push_back(switch_statement_list);
+ 
+     tree caselabel;
+     tree labeldecl;
+ 
+     for(size_t i = 0; i < goto_expr.size(); ++i)
+       {
+       // Start with the case label for the pseudo-return location.
+       tree val = build_int_cst(SIZE_T, i+1);
+ 
+       labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+       DECL_CONTEXT(labeldecl) = current_function->function_decl;
+ 
+       caselabel = build_case_label(val,
+                                    NULL_TREE,
+                                    labeldecl);
+       gg_append_statement(caselabel);
+ 
+       // Each case starts out by zeroing the global index:
+       gg_assign(var_decl_entry_index, size_t_zero_node);
+       // Followed by the goto
+       gg_append_statement(goto_expr[i]);
+       }
+ 
+     // End with a default: case specifying an abort();
+     labeldecl = create_artificial_label(UNKNOWN_LOCATION);
+     DECL_CONTEXT(labeldecl) = current_function->function_decl;
+     caselabel = build_case_label(NULL_TREE,
+                                  NULL_TREE,
+                                  labeldecl);
+     gg_append_statement(caselabel);
+     gg_abort();
+ 
+     current_function->statement_list_stack.pop_back();
+     }
+   }
+ 
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wunused-function"
+ static void
+ build_perform_dispatcher()
+   {
+   // This routine lays down the dispatcher that handles the return from
+   // PERFORM <proc>
+ 
+   // We need to create an execution island.  The switch() statement will
+   // live on it.
+ 
+   // Create the GOTO and the LABEL for this island
+   tree island_goto;
+   tree island_label;
+   gg_create_goto_pair(&island_goto, &island_label);
+   // GOTO the far side of the island.
+   gg_append_statement(island_goto);
+ 
+   // We need to build N switch statements, one for each paragraph that was
+   // the target of a perform:
+ 
+   // The list is a vector<void *>
+   for( auto it : current_function->list_of_procedures )
+     {
+     cbl_proc_t *proc = static_cast<cbl_proc_t *>(it);
+     // Each switch statement is the target of a GOTO at the end of a
+     // paragraph.  In the case of a paragraph that was never called, the
+     // code targeting the label will never be executed; the GOTO will always
+     // be skipped by the end-of-paragraph code checking the top of the pseudo-
+     // return stack.  But we need the label anyway, because otherwise the
+     // middle-end Control Flow Graph CFG processing crashes.
+     gg_append_statement(proc->dispatch_switch_label);
+ 
+     // And after each such label, the switch statement:
+     build_dispatch_switch(proc->pseudo_return_decls);
+ 
+     // Do something similar for ALTER
+     gg_append_statement(proc->alter_switch_label);
+     // And after each such label, the switch statement:
+     build_alter_switch(proc, proc->alter_decls);
+     }
+   // Do something similar for ENTER
+   tree label = current_function->entry_switch_label;
+   gg_append_statement(label);
+   // And after each such label, the switch statement:
+   build_entry_switch(current_function->entry_goto_expressions);
+ 
+   // Lay down the label for jumping over the island.
+   gg_append_statement(island_label);
+   }
+ #pragma GCC diagnostic pop
+ 
  void
! parser_end_program(const char *prog_name )
    {
    if( gg_trans_unit.function_stack.size() )
      {
*************** parser_end_program(const char *prog_name
*** 4025,4030 ****
--- 4199,4215 ----
      TRACE1_END
      }
  
+   if( ! label_verify.vet() )
+     {
+     label_verify.dump();
+     gcc_unreachable();
+     }
+ 
+   if( !hijacked )
+     {
+     build_perform_dispatcher();
+     }
+ 
    if( gg_trans_unit.function_stack.size() )
      {
      // The body has been created by various parser calls.  It's time
*************** parser_init_list()
*** 4129,4134 ****
--- 4314,4321 ----
    {
    if( mode_syntax_only() ) return;
  
+   RETURN_WHEN_HIJACKED;
+ 
    char ach[48];
    sprintf(ach,
            "..variables_to_init_" HOST_SIZE_T_PRINT_DEC,
*************** parser_init_list()
*** 4136,4314 ****
    tree array = gg_trans_unit_var_decl(ach);
    gg_call(VOID,
            "__gg__variables_to_init",
!           gg_get_address_of(array),
!           wsclear() ? gg_string_literal(wsclear()) : null_pointer_node,
            NULL_TREE);
    }
  
! static void
! psa_FldLiteralN(struct cbl_field_t *field )
    {
!   Analyze();
!   SHOW_PARSE
!     {
!     SHOW_PARSE_HEADER
!     SHOW_PARSE_FIELD(" ", field)
!     SHOW_PARSE_END
!     }
!   // We are constructing a completely static constant structure, based on the
!   // text string in .initial
! 
!   CHECK_FIELD(field);
  
    FIXED_WIDE_INT(128) value = 0;
  
!   do
      {
!     // This is a false do{}while, to isolate the variables:
  
!     // We need to convert data.initial to an FIXED_WIDE_INT(128) value
!     char *p = const_cast<char *>(field->data.initial);
!     int sign = 1;
!     if( *p == '-' )
!       {
!       field->attr |= signable_e;
!       sign = -1;
!       p += 1;
!       }
!     else if( *p == '+' )
!       {
!       // We set it signable so that the instruction DISPLAY +1
!       // actually outputs "+1"
!       field->attr |= signable_e;
!       p += 1;
!       }
  
!     //  We need to be able to handle
!     //  123
!     //  123.456
!     //  123E<exp>
!     //  123.456E<exp>
!     //  where <exp> can be N, +N and -N
!     //
!     //  Oh, yeah, and we're talking handling up to 32 digits, or more, so using
!     //  library routines is off the table.
  
!     int digits = 0;
!     int rdigits = 0;
!     int rdigit_delta = 0;
!     int exponent = 0;
  
!     const char *exp = strchr(p, 'E');
!     if( !exp )
        {
!       exp = strchr(p, 'e');
        }
!     if(exp)
        {
!       exponent = atoi(exp+1);
        }
  
!     // We can now calculate the value, and the number of digits and rdigits.
! 
!     // We count up leading zeroes as part of the attr->digits calculation.
!     // It turns out that certain comparisons need to know the number of digits,
!     // because "IF "2" EQUAL 002" is false, while "IF "2" EQUAL 2" is true.  So,
!     // we need to count up leading zeroes.
! 
!     for(;;)
        {
!       char ch = *p++;
!       if( ch == symbol_decimal_point() )
          {
!         rdigit_delta = 1;
!         continue;
          }
!       if( ch < '0' || ch > '9' )
          {
!         break;
          }
-       digits += 1;
-       rdigits += rdigit_delta;
-       value *= 10;
-       value += ch - '0';
        }
  
!     if( exponent < 0 )
!       {
!       rdigits += -exponent;
!       }
!     else
!       {
!       while(exponent--)
!         {
!         if(rdigits)
!           {
!           rdigits -= 1;
!           }
!         else
!           {
!           digits += 1;
!           value *= 10;
!           }
!         }
!       }
  
!     if(digits < rdigits)
!       {
!       digits = rdigits;
!       }
!     field->data.digits = digits;
!     field->data.rdigits = rdigits;
  
!     // We now need to calculate the capacity.
  
!     unsigned int min_prec = wi::min_precision(value, UNSIGNED);
!     int capacity;
!     if( min_prec > 64 )
!       {
!       // Bytes 15 through 8 are non-zero
!       capacity = 16;
!       }
!     else if( min_prec > 32 )
!       {
!       // Bytes 7 through 4 are non-zero
!       capacity = 8;
!       }
!     else if( min_prec > 16 )
!       {
!       // Bytes 3 and 2
!       capacity = 4;
!       }
!     else if( min_prec > 8 )
        {
!       // Byte 1 is non-zero
!       capacity = 2;
        }
!     else
        {
!       // The value is zero through 0xFF
!       capacity = 1;
        }
  
!     value *= sign;
  
!     // One last adjustment.  The number is signable, so the binary value
!     // is going to be treated as twos complement.  That means that the highest
!     // bit has to be 1 for negative signable numbers, and 0 for positive.  If
!     // necessary, adjust capacity up by one byte so that the variable fits:
  
!     if( capacity < 16 && (field->attr & signable_e) )
!       {
!       FIXED_WIDE_INT(128) mask
!         = wi::set_bit_in_zero<FIXED_WIDE_INT(128)>(capacity * 8 - 1);
!       if( wi::neg_p (value) && (value & mask) == 0 )
!         {
!         capacity *= 2;
!         }
!       else if( !wi::neg_p (value) && (value & mask) != 0 )
!         {
!         capacity *= 2;
!         }
!       }
!     field->data.capacity = capacity;
  
!     }while(0);
  
    char base_name[257];
    char id_string[32] = "";
--- 4323,4522 ----
    tree array = gg_trans_unit_var_decl(ach);
    gg_call(VOID,
            "__gg__variables_to_init",
!           gg_pointer_to_array(array),
!           wsclear() ? build_string_literal(
!                                     1,
!                                     reinterpret_cast<const char *>(wsclear()))
!                     : null_pointer_node,
            NULL_TREE);
    }
  
! static
! FIXED_WIDE_INT(128)
! dirty_to_binary(const char  *instring,
!                 uint32_t    &capacity,
!                 uint32_t    &digits,
!                 int32_t     &rdigits,
!                 uint64_t    &attr)
    {
!   digits = 0;
!   rdigits = 0;
!   attr = 0;
  
    FIXED_WIDE_INT(128) value = 0;
  
!   // We need to convert data.initial to an FIXED_WIDE_INT(128) value
!   const char *p = instring;
!   int sign = 1;
!   if( *p == '-' )
      {
!     attr |= signable_e;
!     sign = -1;
!     p += 1;
!     }
!   else if( *p == '+' )
!     {
!     // We set it signable so that the instruction DISPLAY +1
!     // actually outputs "+1"
!     attr |= signable_e;
!     p += 1;
!     }
  
!   //  We need to be able to handle
!   //  123
!   //  123.456
!   //  123E<exp>
!   //  123.456E<exp>
!   //  where <exp> can be N, +N and -N
!   //
!   //  Oh, yeah, and we're talking handling up to 32 digits, or more, so using
!   //  library routines is off the table.
  
!   int rdigit_delta = 0;
!   int exponent = 0;
!   const char *exp = strchr(p, 'E');
!   if( !exp )
!     {
!     exp = strchr(p, 'e');
!     }
!   if(exp)
!     {
!     exponent = atoi(exp+1);
!     }
  
!   // We can now calculate the value, and the number of digits and rdigits.
  
!   // We count up leading zeroes as part of the attr->digits calculation.
!   // It turns out that certain comparisons need to know the number of digits,
!   // because "IF "2" EQUAL 002" is false, while "IF "2" EQUAL 2" is true.  So,
!   // we need to count up leading zeroes.
! 
!   for(;;)
!     {
!     char ch = *p++;
!     if( ch == symbol_decimal_point() )
        {
!       rdigit_delta = 1;
!       continue;
        }
!     if( ch < '0' || ch > '9' )
        {
!       break;
        }
+     digits += 1;
+     rdigits += rdigit_delta;
+     value *= 10;
+     value += ch - '0';
+     }
  
!   if( exponent < 0 )
!     {
!     rdigits += -exponent;
!     }
!   else
!     {
!     while(exponent--)
        {
!       if(rdigits)
          {
!         rdigits -= 1;
          }
!       else
          {
!         digits += 1;
!         value *= 10;
          }
        }
+     }
  
!   if( (int32_t)digits < rdigits )
!     {
!     digits = rdigits;
!     }
  
!   // We now need to calculate the capacity.
  
!   unsigned int min_prec = wi::min_precision(value, UNSIGNED);
!   if( min_prec > 64 )
!     {
!     // Bytes 15 through 8 are non-zero
!     capacity = 16;
!     }
!   else if( min_prec > 32 )
!     {
!     // Bytes 7 through 4 are non-zero
!     capacity = 8;
!     }
!   else if( min_prec > 16 )
!     {
!     // Bytes 3 and 2
!     capacity = 4;
!     }
!   else if( min_prec > 8 )
!     {
!     // Byte 1 is non-zero
!     capacity = 2;
!     }
!   else
!     {
!     // The value is zero through 0xFF
!     capacity = 1;
!     }
  
!   value *= sign;
! 
!   // One last adjustment.  The number is signable, so the binary value
!   // is going to be treated as twos complement.  That means that the highest
!   // bit has to be 1 for negative signable numbers, and 0 for positive.  If
!   // necessary, adjust capacity up by one byte so that the variable fits:
! 
!   if( capacity < 16 && (attr & signable_e) )
!     {
!     FIXED_WIDE_INT(128) mask
!       = wi::set_bit_in_zero<FIXED_WIDE_INT(128)>(capacity * 8 - 1);
!     if( wi::neg_p (value) && (value & mask) == 0 )
        {
!       capacity *= 2;
        }
!     else if( !wi::neg_p (value) && (value & mask) != 0 )
        {
!       capacity *= 2;
        }
+     }
  
!   return value;
!   }
  
! static void
! psa_FldLiteralN(struct cbl_field_t *field )
!   {
!   Analyze();
!   SHOW_PARSE
!     {
!     SHOW_PARSE_HEADER
!     SHOW_PARSE_FIELD(" ", field)
!     SHOW_PARSE_END
!     }
!   // We are constructing a completely static constant structure, based on the
!   // text string in .initial
  
!   CHECK_FIELD(field);
  
!   uint32_t capacity;
!   uint32_t digits;
!   int32_t  rdigits;
!   uint64_t attr;
!   FIXED_WIDE_INT(128) value = dirty_to_binary(field->data.original(),
!                                               capacity,
!                                               digits,
!                                               rdigits,
!                                               attr);
!   // This is a rare occurrence of a parser_xxx call changing the entry
!   // in the symbol table.
!   field->data.capacity(  capacity );
!   field->data.digits   = digits;
!   field->data.rdigits  = rdigits;
!   field->attr         |= attr;
  
    char base_name[257];
    char id_string[32] = "";
*************** psa_FldLiteralN(struct cbl_field_t *fiel
*** 4323,4334 ****
  
    // The value is 1, 2, 4, 8 or 16 bytes, so an ordinary constructor can be
    // used.
!   var_type = tree_type_from_size( field->data.capacity,
                                    field->attr & signable_e);
    tree new_var_decl = gg_define_variable( var_type,
                                            base_name,
                                            vs_static);
!   DECL_INITIAL(new_var_decl) = wide_int_to_tree(var_type, value);
    field->data_decl_node = new_var_decl;
  
    // Note that during compilation, the integer value, assuming it can be
--- 4531,4545 ----
  
    // The value is 1, 2, 4, 8 or 16 bytes, so an ordinary constructor can be
    // used.
!   var_type = tree_type_from_size( field->data.capacity(),
                                    field->attr & signable_e);
    tree new_var_decl = gg_define_variable( var_type,
                                            base_name,
                                            vs_static);
!   DECL_INITIAL(new_var_decl)  = wide_int_to_tree(var_type, value);
!   TREE_CONSTANT(new_var_decl) = 1;
!   TREE_READONLY(new_var_decl) = 1;
! 
    field->data_decl_node = new_var_decl;
  
    // Note that during compilation, the integer value, assuming it can be
*************** psa_FldLiteralN(struct cbl_field_t *fiel
*** 4337,4391 ****
    //  wi::to_wide( DECL_INITIAL(new_var_decl) )
    }
  
- static void
- psa_FldBlob(struct cbl_field_t *var )
-   {
-   Analyze();
-   SHOW_PARSE
-     {
-     SHOW_PARSE_HEADER
-     SHOW_PARSE_FIELD(" ", var)
-     SHOW_PARSE_END
-     }
- 
-   CHECK_FIELD(var);
- 
-   // We are constructing a completely static constant structure.  We know the
-   // capacity.  We'll create it from the data.initial.  The var_decl_node will
-   // be a pointer to the data
- 
-   char base_name[257];
-   char id_string[32] = "";
- 
-   static size_t our_index = 0;
- 
-   sprintf(id_string, "." HOST_SIZE_T_PRINT_DEC, (fmt_size_t)++our_index);
-   strcpy(base_name, var->name);
-   strcat(base_name, id_string);
- 
-   // Build the constructor for the array of bytes
- 
-   tree array_type                  = build_array_type_nelts(UCHAR, var->data.capacity);
-   tree array_constructor           = make_node(CONSTRUCTOR);
-   TREE_TYPE(array_constructor)     = array_type;
-   TREE_STATIC(array_constructor)   = 1;
-   TREE_CONSTANT(array_constructor) = 1;
- 
-   for(size_t i=0; i<var->data.capacity; i++)
-     {
-     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(array_constructor),
-                             build_int_cst_type(INT, i),
-                             build_int_cst_type(UCHAR, var->data.initial[i]));
-     }
- 
-   // The array constructor is ready to be used
-   tree var_decl_node = gg_define_variable( array_type,
-                                           base_name,
-                                           vs_static);
-   DECL_INITIAL(var_decl_node) = array_constructor;
-   var->var_decl_node = gg_get_address_of(var_decl_node);
-   }
- 
  void
  parser_accept(const struct cbl_refer_t &tgt,
                special_name_t special_e,
--- 4548,4553 ----
*************** parser_accept_date_yymmdd( struct cbl_fi
*** 4916,4931 ****
  
    CHECK_FIELD(target);
  
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_date_yymmdd",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5078,5087 ----
  
    CHECK_FIELD(target);
  
!   gg_call(VOID,
!           "__gg__get_date_yymmdd",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_yyyymmdd( struct cbl_
*** 4943,4961 ****
      SHOW_PARSE_HEADER
      SHOW_PARSE_END
      }
! 
!   CHECK_FIELD(target);
! 
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_date_yyyymmdd",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5099,5108 ----
      SHOW_PARSE_HEADER
      SHOW_PARSE_END
      }
!   gg_call(VOID,
!           "__gg__get_date_yyyymmdd",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_yyddd( struct cbl_fie
*** 4976,4991 ****
  
    CHECK_FIELD(target);
  
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_date_yyddd",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5123,5132 ----
  
    CHECK_FIELD(target);
  
!   gg_call(VOID,
!           "__gg__get_date_yyddd",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_yyyyddd( struct cbl_f
*** 5006,5021 ****
  
    CHECK_FIELD(target);
  
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_yyyyddd",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5147,5156 ----
  
    CHECK_FIELD(target);
  
!   gg_call(VOID,
!           "__gg__get_yyyyddd",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_dow( struct cbl_field
*** 5036,5051 ****
  
    CHECK_FIELD(target);
  
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_date_dow",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5171,5180 ----
  
    CHECK_FIELD(target);
  
!   gg_call(VOID,
!           "__gg__get_date_dow",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_hhmmssff( struct cbl_
*** 5066,5081 ****
  
    CHECK_FIELD(target);
  
!   tree pointer = gg_define_char_star();
!   gg_assign(pointer, gg_call_expr(CHAR_P,
!                                   "__gg__get_date_hhmmssff",
!                                   NULL_TREE));
!   gg_default_qualification(target);
!   move_tree_to_field( target,
!                       pointer);
! 
!   gg_free(pointer);
! 
    TRACE1
      {
      TRACE1_HEADER
--- 5195,5204 ----
  
    CHECK_FIELD(target);
  
!   gg_call(VOID,
!           "__gg__get_date_hhmmssff",
!           gg_get_address_of(target->var_decl_node),
!           NULL_TREE);
    TRACE1
      {
      TRACE1_HEADER
*************** parser_accept_date_hhmmssff( struct cbl_
*** 5093,5135 ****
   *
   * The parameter is always a reference to an element in the symbol table.
   */
  void
! parser_alphabet( cbl_alphabet_t& alphabet )
    {
    Analyze();
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
!     fprintf(stderr, "%s\n", alphabet.name);
      switch(alphabet.encoding)
        {
        case ASCII_e:
!         fprintf(stderr, "ASCII\n");
          break;
        case iso646_e:
!         fprintf(stderr, "ISO646\n");
          break;
        case EBCDIC_e:
!         fprintf(stderr, "EBCDIC\n");
          break;
        case custom_encoding_e:
!         fprintf(stderr, "%s\n", alphabet.name);
          break;
        }
      SHOW_PARSE_END
      }
  
-   size_t alphabet_index = symbol_index(symbol_elem_of(&alphabet));
- 
    switch(alphabet.encoding)
      {
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
        break;
  
      case custom_encoding_e:
        {
        unsigned char ach[256];
  
        tree table_type = build_array_type_nelts(UCHAR, 256);
--- 5216,5276 ----
   *
   * The parameter is always a reference to an element in the symbol table.
   */
+ 
  void
! parser_alphabet( const cbl_alphabet_t& alphabet )
    {
    Analyze();
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
!     char *psz = xasprintf(" %s ", alphabet.name);
!     SHOW_PARSE_TEXT(psz);
!     free(psz);
      switch(alphabet.encoding)
        {
+       case iconv_CP1252_e:
+         psz = xasprintf("CP1252");
+         break;
        case ASCII_e:
!         psz = xasprintf("ASCII");
          break;
        case iso646_e:
!         psz = xasprintf("ISO646");
          break;
        case EBCDIC_e:
!         psz = xasprintf("EBCDIC");
!         break;
!       case UTF8_e:
!         psz = xasprintf("UTF8");
          break;
        case custom_encoding_e:
!         psz = xasprintf("%s", alphabet.name);
          break;
+       default:
+         { const char * p = __gg__encoding_iconv_name( alphabet.encoding );
+           psz = xasprintf("%s", p? p : "[unknown]");
+         }
        }
+     SHOW_PARSE_TEXT(" ");
+     SHOW_PARSE_TEXT(psz);
+     free(psz);
      SHOW_PARSE_END
      }
  
    switch(alphabet.encoding)
      {
+     case iconv_CP1252_e:
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
+     case UTF8_e:
        break;
  
      case custom_encoding_e:
        {
+       uint64_t alphabet_index = symbol_unique_index(symbol_elem_of(&alphabet));
+ 
        unsigned char ach[256];
  
        tree table_type = build_array_type_nelts(UCHAR, 256);
*************** parser_alphabet( cbl_alphabet_t& alphabe
*** 5137,5163 ****
        for( int i=0; i<256; i++ )
          {
          // character i has the ordinal alphabet[i]
!         unsigned char ch = ascii_to_internal(i);
  
!         ach[ch] = (alphabet.alphabet[i]);
          gg_assign(  gg_array_value(table256, ch),
!                     build_int_cst_type(UCHAR, (alphabet.alphabet[i])) );
          }
        __gg__alphabet_create(alphabet.encoding,
                              alphabet_index,
                              ach,
!                             alphabet.low_index,
!                             alphabet.high_index);
        gg_call(VOID,
                "__gg__alphabet_create",
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
!               gg_get_address_of(table256),
!               build_int_cst_type(INT, alphabet.low_index),
!               build_int_cst_type(INT, alphabet.high_index),
                NULL_TREE );
        break;
        }
      }
    }
  
--- 5278,5312 ----
        for( int i=0; i<256; i++ )
          {
          // character i has the ordinal alphabet[i]
!         unsigned char ch = i;
  
!         ach[ch] = (alphabet.collation_sequence[i]);
          gg_assign(  gg_array_value(table256, ch),
!                     build_int_cst_type(UCHAR, (alphabet.collation_sequence[i])) );
          }
+ 
+       unsigned int low_char  = alphabet.low_char;
+       unsigned int high_char = alphabet.high_char;
        __gg__alphabet_create(alphabet.encoding,
                              alphabet_index,
                              ach,
!                             low_char,
!                             high_char);
        gg_call(VOID,
                "__gg__alphabet_create",
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
!               gg_pointer_to_array(table256),
!               build_int_cst_type(INT, low_char),
!               build_int_cst_type(INT, high_char),
                NULL_TREE );
        break;
        }
+     default:
+       fprintf(stderr, "%s: Program ID %s:\n",
+               cobol_filename(),
+               cbl_label_of(symbol_at(current_program_index()))->name);
+       gcc_unreachable();
      }
    }
  
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5168,5202 ****
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
      switch(alphabet.encoding)
        {
        case ASCII_e:
!         fprintf(stderr, "ASCII\n");
          break;
        case iso646_e:
!         fprintf(stderr, "ISO646\n");
          break;
        case EBCDIC_e:
!         fprintf(stderr, "EBCDIC\n");
          break;
        case custom_encoding_e:
!         fprintf(stderr, "%s\n", alphabet.name);
          break;
        }
      SHOW_PARSE_END
      }
  
!   size_t alphabet_index = symbol_index(symbol_elem_of(&alphabet));
  
    switch(alphabet.encoding)
      {
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
        __gg__low_value_character  = DEGENERATE_LOW_VALUE;
        __gg__high_value_character = DEGENERATE_HIGH_VALUE;
        gg_call(VOID,
                "__gg__alphabet_use",
                build_int_cst_type(INT, alphabet.encoding),
                null_pointer_node,
                NULL_TREE);
--- 5317,5370 ----
    SHOW_PARSE
      {
      SHOW_PARSE_HEADER
+     char *psz = xasprintf(" %s ", alphabet.name);
+     SHOW_PARSE_TEXT(psz);
+     free(psz);
      switch(alphabet.encoding)
        {
+       case iconv_CP1252_e:
+         psz = xasprintf("CP1252");
+         break;
        case ASCII_e:
!         psz = xasprintf("ASCII");
          break;
        case iso646_e:
!         psz = xasprintf("ISO646");
          break;
        case EBCDIC_e:
!         psz = xasprintf("EBCDIC");
!         break;
!       case UTF8_e:
!         psz = xasprintf("UTF8");
          break;
        case custom_encoding_e:
!         psz = xasprintf("%s", alphabet.name);
          break;
+       default:
+         gcc_unreachable();
        }
+     SHOW_PARSE_TEXT(psz);
+     free(psz);
      SHOW_PARSE_END
      }
  
!   uint64_t alphabet_index = symbol_unique_index(symbol_elem_of(&alphabet));
  
    switch(alphabet.encoding)
      {
+     default:
+       gcc_unreachable();
+     case iconv_CP1252_e:
      case ASCII_e:
      case iso646_e:
      case EBCDIC_e:
+     case UTF8_e:
        __gg__low_value_character  = DEGENERATE_LOW_VALUE;
        __gg__high_value_character = DEGENERATE_HIGH_VALUE;
        gg_call(VOID,
                "__gg__alphabet_use",
+               build_int_cst_type(INT, current_encoding(display_encoding_e)),
+               build_int_cst_type(INT, current_encoding(national_encoding_e)),
                build_int_cst_type(INT, alphabet.encoding),
                null_pointer_node,
                NULL_TREE);
*************** parser_alphabet_use( cbl_alphabet_t& alp
*** 5212,5217 ****
--- 5380,5387 ----
  
        gg_call(VOID,
                "__gg__alphabet_use",
+               build_int_cst_type(INT, current_encoding(display_encoding_e)),
+               build_int_cst_type(INT, current_encoding(national_encoding_e)),
                build_int_cst_type(INT, alphabet.encoding),
                build_int_cst_type(SIZE_T, alphabet_index),
                NULL_TREE);
*************** parser_display_internal(tree file_descri
*** 5270,5286 ****
        ENDIF
        }
      }
-   else if( refer.field->type == FldLiteralA )
-     {
-     gg_call(VOID,
-             "__gg__display_string",
-             file_descriptor,
-             build_string_literal(refer.field->data.capacity,
-                                  refer.field->data.initial),
-             build_int_cst_type(SIZE_T, refer.field->data.capacity),
-             advance ? integer_one_node : integer_zero_node,
-             NULL_TREE );
-     }
    else if( refer.field->type == FldLiteralN )
      {
      // The parser found the string of digits from the source code and converted
--- 5440,5445 ----
*************** parser_display_internal(tree file_descri
*** 5374,5379 ****
--- 5533,5566 ----
                   integer_one_node);
        }
      }
+   else if(    refer.field->type == FldFloat
+            && refer.field->attr & constant_e
+            && !(refer.field->attr & intermediate_e) )
+     {
+     // We are going to output what we think the user typed in the first place
+     char * const to_print = xstrdup(refer.field->data.original());
+     char *p = to_print;
+     if( *p == ascii_plus )
+       {
+       p += 1;
+       }
+     size_t len = strlen(p);
+     if(len > 2 && p[len-2] == ascii_E && p[len-1] == ascii_0 )
+       {
+       len -= 2;
+       }
+     gg_write(  file_descriptor,
+                build_string_literal(len, p),
+                build_int_cst_type(SIZE_T, len));
+     free(to_print);
+ 
+     if( advance )
+       {
+       gg_write(  file_descriptor,
+                  gg_string_literal("\n"),
+                  integer_one_node);
+       }
+     }
    else
      {
      if( refer_is_clean(refer) )
*************** parser_display( const struct cbl_special
*** 5578,5584 ****
      }
    else
      {
!     gg_assign(file_descriptor,integer_one_node);   // stdout is file descriptor 1.
      }
  
    for(size_t i=0; i<n-1; i++)
--- 5765,5772 ----
      }
    else
      {
!     // stdout is file descriptor 1.
!     gg_assign(file_descriptor, integer_one_node);
      }
  
    for(size_t i=0; i<n-1; i++)
*************** parser_display( const struct cbl_special
*** 5587,5593 ****
      parser_display_internal(file_descriptor, refs[i], DISPLAY_NO_ADVANCE);
      }
    CHECK_FIELD(refs[n-1].field);
!   parser_display_internal(file_descriptor, refs[n-1], advance ? DISPLAY_ADVANCE : DISPLAY_NO_ADVANCE);
    if( needs_closing )
      {
      gg_close(file_descriptor);
--- 5775,5783 ----
      parser_display_internal(file_descriptor, refs[i], DISPLAY_NO_ADVANCE);
      }
    CHECK_FIELD(refs[n-1].field);
!   parser_display_internal(file_descriptor,
!                           refs[n-1],
!                           advance ? DISPLAY_ADVANCE : DISPLAY_NO_ADVANCE);
    if( needs_closing )
      {
      gg_close(file_descriptor);
*************** get_literalN_value(cbl_field_t *var)
*** 5701,5707 ****
    {
    // Get the literal N value from the integer var_decl
    tree retval = NULL_TREE;
!   tree var_type = tree_type_from_size(var->data.capacity,
                                        var->attr & signable_e);
    retval = gg_cast(var_type, var->data_decl_node);
    return retval;
--- 5891,5897 ----
    {
    // Get the literal N value from the integer var_decl
    tree retval = NULL_TREE;
!   tree var_type = tree_type_from_size(var->data.capacity(),
                                        var->attr & signable_e);
    retval = gg_cast(var_type, var->data_decl_node);
    return retval;
*************** parser_assign( size_t nC, cbl_num_result
*** 5862,5868 ****
                      rounded,
                      check_for_error,
                      true);
- 
          gg_assign(error_flag, gg_bitwise_or(error_flag, erf));
          IF(error_flag, ne_op, integer_zero_node)
            {
--- 6052,6057 ----
*************** vs_file_static);
*** 6330,6431 ****
    gg_free(ttbls);
    }
  
- static
- tree
- tree_type_from_field_type(cbl_field_t *field, size_t &nbytes)
-   {
-   /*  This routine is used to determine what action is taken with type of a
-       CALL ... USING <var> and the matching PROCEDURE DIVISION USING <var> of
-       a PROGRAM-ID or FUNCTION-ID
-       */
-   tree retval = COBOL_FUNCTION_RETURN_TYPE;
-   nbytes = 8;
-   if( field )
-     {
-     // This maps a Fldxxx to a C-style variable type:
-     switch(field->type)
-       {
-       case FldGroup:
-       case FldAlphanumeric:
-       case FldAlphaEdited:
-       case FldNumericEdited:
-         retval = CHAR_P;
-         nbytes = field->data.capacity;
-         break;
- 
-       case FldNumericDisplay:
-       case FldNumericBinary:
-       case FldPacked:
-       if( field->data.digits > 18 )
-           {
-           retval = UINT128;
-           nbytes = 16;
-           }
-         else
-           {
-           retval = SIZE_T;
-           nbytes = 8;
-           }
-         break;
- 
-       case FldNumericBin5:
-       case FldIndex:
-       case FldPointer:
-         if( field->data.capacity > 8 )
-           {
-           retval = UINT128;
-           nbytes = 16;
-           }
-         else
-           {
-           retval = SIZE_T;
-           nbytes = 8;
-           }
-         break;
- 
-       case FldFloat:
-         if( field->data.capacity == 8 )
-           {
-           retval = DOUBLE;
-           nbytes = 8;
-           }
-         else if( field->data.capacity == 4 )
-           {
-           retval = FLOAT;
-           nbytes = 4;
-           }
-         else
-           {
-           retval = FLOAT128;
-           nbytes = 16;
-           }
-         break;
- 
-       case FldLiteralN:
-         // Assume a 64-bit signed integer.  This happens for GOBACK STATUS 101,
-         // the like
-         retval = LONG;
-         nbytes = 8;
-         break;
- 
-       default:
-         cbl_internal_error(  "%s: Invalid field type %s:",
-                 __func__,
-                 cbl_field_type_str(field->type));
-         break;
-       }
-     if( retval == SIZE_T && field->attr & signable_e )
-       {
-       retval = SSIZE_T;
-       }
-     if( retval == UINT128 && field->attr & signable_e )
-       {
-       retval = INT128;
-       }
-     }
-   return retval;
-   }
- 
  static void
  restore_local_variables()
    {
--- 6519,6524 ----
*************** is_valuable( cbl_field_type_t type ) {
*** 6450,6456 ****
    case FldForward:
    case FldSwitch:
    case FldDisplay:
-   case FldBlob:
      return false;
    // These are variable types that have to be converted from their
    // COBOL form to a little-endian binary representation so that they
--- 6543,6548 ----
*************** void parser_sleep(const cbl_refer_t &sec
*** 6491,6503 ****
      // This is a naked place-holding CONTINUE.  Generate some do-nothing
      // code that will stick some .LOC information into the assembly language,
      // so that GDB-COBOL can display the CONTINUE statement.
!     insert_nop(103);
      }
    }
  
  void
! parser_exit_program(void)  // exits back to COBOL only, else continue
!   {
    static cbl_label_t this_program = {};
    static cbl_refer_t magic_refer(&this_program, false);
    parser_exit( magic_refer );
--- 6583,6595 ----
      // This is a naked place-holding CONTINUE.  Generate some do-nothing
      // code that will stick some .LOC information into the assembly language,
      // so that GDB-COBOL can display the CONTINUE statement.
!     insert_nop(104);
      }
    }
  
  void
! parser_exit_program()
!   { // exits back to COBOL only, else continue
    static cbl_label_t this_program = {};
    static cbl_refer_t magic_refer(&this_program, false);
    parser_exit( magic_refer );
*************** parser_exit_program(void)  // exits back
*** 6511,6518 ****
  
  static
  void
! program_end_stuff(cbl_refer_t refer, ec_type_t ec)
    {
    // This is the moral equivalent of a C "return xyz;".
  
    // There cannot be both a non-zero exit status and an exception condition.
--- 6603,6626 ----
  
  static
  void
! program_end_stuff(cbl_refer_t refer,
!                   ec_type_t ec)
    {
+   // Looking for hijack here puts the hijacked code just before the
+   // exit sequence
+ #ifdef ENABLE_HIJACKING
+   static bool just_once = true;
+   // We need the just_once state because this routine can be called more than
+   // once.  Usually the parser handles it, but we have a "just-in-case" call
+   // in parser_end_program() that sometimes is necessary.
+   if(just_once && strcmp(current_function->our_name, "hijack") == 0)
+     {
+     just_once = false;
+     fprintf(stderr, "This is a HIJACK BEFORE EXIT scenario.\n");
+     hijacker();
+     }
+ #endif
+ 
    // This is the moral equivalent of a C "return xyz;".
  
    // There cannot be both a non-zero exit status and an exception condition.
*************** program_end_stuff(cbl_refer_t refer, ec_
*** 6546,6552 ****
          gg_memcpy(gg_get_address_of(retval),
                    member(returner, "data"),
                    build_int_cst_type( SIZE_T,
!                                       std::min(nbytes, (size_t)returner->data.capacity)));
          }
        else
          {
--- 6654,6660 ----
          gg_memcpy(gg_get_address_of(retval),
                    member(returner, "data"),
                    build_int_cst_type( SIZE_T,
!                                       std::min(nbytes, (size_t)returner->data.capacity())));
          }
        else
          {
*************** program_end_stuff(cbl_refer_t refer, ec_
*** 6573,6585 ****
        // error of returning a pointer to data on the stack.
  
        tree array_type = build_array_type_nelts(UCHAR,
!                                     returner->data.capacity);
        tree array     =  gg_define_variable(array_type, vs_static);
!       gg_memcpy(gg_get_address_of(array),
                  member(returner->var_decl_node, "data"),
                  member(returner->var_decl_node, "capacity"));
  
!       tree actual = gg_cast(COBOL_FUNCTION_RETURN_TYPE, gg_get_address_of(array));
  
        restore_local_variables();
        gg_return(actual);
--- 6681,6694 ----
        // error of returning a pointer to data on the stack.
  
        tree array_type = build_array_type_nelts(UCHAR,
!                                     returner->data.capacity());
        tree array     =  gg_define_variable(array_type, vs_static);
!       gg_memcpy(gg_pointer_to_array(array),
                  member(returner->var_decl_node, "data"),
                  member(returner->var_decl_node, "capacity"));
  
!       tree actual = gg_cast(COBOL_FUNCTION_RETURN_TYPE,
!                             gg_pointer_to_array(array));
  
        restore_local_variables();
        gg_return(actual);
*************** program_end_stuff(cbl_refer_t refer, ec_
*** 6587,6605 ****
      }
    else
      {
!     // There is no explicit value.  This means, by default (according to)
!     // IBM), we return the value found in RETURN-CODE:
      tree value = gg_define_variable(COBOL_FUNCTION_RETURN_TYPE);
!     gg_assign(value,
!               gg_cast(COBOL_FUNCTION_RETURN_TYPE,
!                       var_decl_return_code));
      restore_local_variables();
      gg_return(gg_cast(COBOL_FUNCTION_RETURN_TYPE, value));
      }
    }
  
  void
! parser_exit( const cbl_refer_t& refer, ec_type_t ec )
    {
    Analyze();
    SHOW_PARSE
--- 6696,6722 ----
      }
    else
      {
!     // There is no explicit value.  This means, by default (according to IBM),
!     // we return the value found in RETURN-CODE:
      tree value = gg_define_variable(COBOL_FUNCTION_RETURN_TYPE);
!     if( !hijacked )
!       {
!       gg_assign(value,
!                 gg_cast(COBOL_FUNCTION_RETURN_TYPE,
!                         current_function->var_decl_return));
!       }
!     else
!       {
!       gg_assign(value, gg_cast(COBOL_FUNCTION_RETURN_TYPE, integer_zero_node));
!       }
      restore_local_variables();
      gg_return(gg_cast(COBOL_FUNCTION_RETURN_TYPE, value));
      }
    }
  
  void
! parser_exit( const cbl_refer_t& refer,
!              ec_type_t ec )
    {
    Analyze();
    SHOW_PARSE
*************** parser_exit( const cbl_refer_t& refer, e
*** 6629,6634 ****
--- 6746,6775 ----
      TRACE1_END
      }
  
+   if( hijacked )
+     {
+     // We need just_once because parser_exit gets called an extra time at the
+     // end of file, just in case. That should be tracked down and handled so
+     // that it gets called only once.
+     static bool just_once = true;
+     if( just_once )
+       {
+       just_once = false;
+       tree function_type =
+                      TREE_TYPE(DECL_RESULT(current_function->function_decl));
+       tree operand = gg_define_variable(function_type);
+       gg_assign(operand, build_int_cst_type(function_type, 0));
+       tree modify = build2(   MODIFY_EXPR,
+                               function_type,
+                               DECL_RESULT(current_function->function_decl),
+                               gg_cast(function_type, operand));
+       tree stmt = build1(RETURN_EXPR, void_type_node, modify);
+       gg_append_statement(stmt);
+       }
+ 
+     return;
+     }
+ 
    if( refer.prog_func )
      {
      // We are processing EXIT PROGRAM.  If main() called us, we need to do
*************** walk_initialization(cbl_field_t *field,
*** 6729,6735 ****
              {
              gg_memset(member(this_one->var_decl_node, "data"),
                     integer_zero_node,
!                    build_int_cst_type(SIZE_T, this_one->data.capacity));
              }
            }
          }
--- 6870,6876 ----
              {
              gg_memset(member(this_one->var_decl_node, "data"),
                     integer_zero_node,
!                    build_int_cst_type(SIZE_T, this_one->data.capacity()));
              }
            }
          }
*************** parser_allocate(cbl_refer_t size_or_base
*** 6782,6788 ****
    cbl_field_t *f_working = current_options().initial_working();
    cbl_field_t *f_local   = current_options().initial_local();
  
!   int default_byte = wsclear() ? *wsclear() : -1;
  
    gg_call(VOID,
            "__gg__allocate",
--- 6923,6929 ----
    cbl_field_t *f_working = current_options().initial_working();
    cbl_field_t *f_local   = current_options().initial_local();
  
!   unsigned int default_byte = wsclear() ? *wsclear() : (uint32_t)(-1);
  
    gg_call(VOID,
            "__gg__allocate",
*************** parser_free( size_t n, cbl_refer_t refer
*** 6827,6832 ****
--- 6968,7142 ----
      }
    }
  
+ static
+ cbl_label_addresses_t *
+ label_fetch(struct cbl_label_t *label)
+   {
+   if( !label->structs.goto_trees )
+     {
+     label->structs.goto_trees
+       = static_cast<cbl_label_addresses_t *>
+         (xmalloc(sizeof(struct cbl_label_addresses_t)));
+     gcc_assert(label->structs.goto_trees);
+ 
+     gg_create_goto_pair(&label->structs.goto_trees->go_to,
+                         &label->structs.goto_trees->label);
+     }
+   return label->structs.goto_trees;
+   }
+ 
+ // This routine cloned from parse_ante.h
+ static inline cbl_field_t *
+ register_find( const char *name ) {
+   size_t iprog = current_program_index();
+   auto found = symbol_find( iprog, std::list<const char*>(1, name) );
+   gcc_assert(found.second);
+   return cbl_field_of(found.first);
+ }
+ 
+ void
+ parser_xml_parse( cbl_label_t *instance,
+                   cbl_refer_t input,
+                   cbl_field_t *encoding,
+                   cbl_field_t *validating,
+                   bool returns_national,
+                   cbl_label_t *from_proc,
+                   cbl_label_t *to_proc )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK("", instance)
+     SHOW_PARSE_REF(" ", input)
+     SHOW_PARSE_END
+     }
+ 
+   TRACE1
+     {
+     TRACE1_HEADER
+     TRACE1_END
+     }
+ 
+   // We know that this routine comes first in the sequence, so we can
+   // create the goto/label pairs here:
+ 
+   instance->structs.xml_parse = static_cast<struct cbl_xml_parse_t *>
+                                   (xmalloc(sizeof(struct cbl_xml_parse_t)));
+   gcc_assert(instance->structs.xml_parse);
+ 
+   gg_create_goto_pair(&instance->structs.xml_parse->over.go_to,
+                       &instance->structs.xml_parse->over.label);
+   gg_create_goto_pair(&instance->structs.xml_parse->exception.go_to,
+                       &instance->structs.xml_parse->exception.label);
+   gg_create_goto_pair(&instance->structs.xml_parse->no_exception.go_to,
+                       &instance->structs.xml_parse->no_exception.label);
+ 
+   // We need to create a COBOL ENTRY point into this function.  That entry
+   // point will be used by __gg__xml_parse to perform from_proc through to_proc
+   // as part of processing the libxml2 callbacks.
+ 
+   char ach[64];
+   static int instance_counter = 1;
+   sprintf(ach,
+           "_%s_xml_callback_%d",
+           current_function->our_name,
+           instance_counter++);
+ 
+   cbl_field_data_t data( 0, strlen(ach), 0,0, ach );
+   cbl_field_t for_entry(FldAlphanumeric, 0, data, 0);
+   for_entry.codeset.set(iconv_CP1252_e);
+ 
+   // build an island for the callback:
+   tree island_goto;
+   tree island_label;
+   gg_create_goto_pair(&island_goto,
+                       &island_label);
+ 
+   gg_append_statement(island_goto);
+   // This creates the separate _xml_callback function
+   parser_entry(&for_entry, 0, nullptr);
+   // When invoked, the callback performs the processing procedures
+   parser_perform(from_proc, to_proc);
+   // And then returns back to the caller
+   gg_return(0);
+   gg_append_statement(island_label);
+ 
+   // We need the three xml special registers:
+   cbl_field_t *xml_event = register_find("XML-EVENT");
+   cbl_field_t *xml_code  = register_find("XML-CODE");
+   cbl_field_t *xml_text  = register_find("XML-TEXT");
+ 
+   // With the callback in place, we are ready to call the library:
+   tree pcallback = gg_get_function_address(VOID, ach);
+ 
+   tree erc = gg_define_int();
+   gg_assign(erc, gg_call_expr(INT,
+                               "__gg__xml_parse",
+                               gg_get_address_of(input.field->var_decl_node),
+                               refer_offset(input),
+                               refer_size_source(input),
+                               encoding ?
+                                   gg_get_address_of(encoding->var_decl_node)
+                                 : null_pointer_node,
+                               validating ?
+                                   gg_get_address_of(validating->var_decl_node)
+                                 : null_pointer_node,
+                               build_int_cst_type(INT, returns_national),
+                               pcallback,
+                               gg_get_address_of(xml_event->var_decl_node),
+                               gg_get_address_of(xml_code ->var_decl_node),
+                               gg_get_address_of(xml_text ->var_decl_node),
+                               NULL_TREE));
+   IF( erc, ne_op, integer_zero_node )
+     {
+     //gg_printf("__gg__xml_parse() failed with erc %d\n", erc, NULL_TREE);
+     gg_append_statement(instance->structs.xml_parse->exception.go_to);
+     }
+   ELSE
+     {
+     //gg_printf("__gg__xml_parse() apparently succeeded\n", NULL_TREE);
+     gg_append_statement(instance->structs.xml_parse->no_exception.go_to);
+     }
+   ENDIF
+   }
+ 
+ void
+ parser_xml_on_exception( cbl_label_t *instance )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.go_to);
+   gg_append_statement(instance->structs.xml_parse->exception.label);
+   }
+ 
+ void
+ parser_xml_not_exception( cbl_label_t *instance )
+ {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.go_to);
+   gg_append_statement(instance->structs.xml_parse->no_exception.label);
+   }
+ 
+ void parser_xml_end( cbl_label_t *instance )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_LABEL_OK(" ", instance)
+     SHOW_PARSE_END
+     }
+   gg_append_statement(instance->structs.xml_parse->over.label);
+   }
+ 
  void
  parser_arith_error(cbl_label_t *arithmetic_label)
    {
*************** static bool initialized_data = false;
*** 6947,6952 ****
--- 7257,7264 ----
  static void
  initialize_the_data()
    {
+   RETURN_WHEN_HIJACKED;
+ 
    if( initialized_data )
      {
      return;
*************** initialize_the_data()
*** 6958,6966 ****
    // This is one-time initialization of the libgcobol program state stack
    gg_call(VOID,
            "__gg__init_program_state",
            NULL_TREE);
  
-   __gg__currency_signs = __gg__ct_currency_signs;
    // We initialize currency both at compile time and run time
    __gg__currency_sign_init();
    gg_call(VOID,
--- 7270,7279 ----
    // This is one-time initialization of the libgcobol program state stack
    gg_call(VOID,
            "__gg__init_program_state",
+           build_int_cst_type(INT, current_encoding(display_encoding_e)),
+           build_int_cst_type(INT, current_encoding(national_encoding_e)),
            NULL_TREE);
  
    // We initialize currency both at compile time and run time
    __gg__currency_sign_init();
    gg_call(VOID,
*************** initialize_the_data()
*** 7007,7012 ****
--- 7320,7673 ----
              "__gg__decimal_point_is_comma",
              NULL_TREE);
      }
+ 
+   // This is where we tell the library about this program's initialization
+   // values:
+   cbl_field_t *init_working = current_options().initial_working();
+   cbl_field_t *init_local   = current_options().initial_local();
+   gg_call(VOID,
+           "__gg__initialization_values",
+           build_int_cst_type(UINT, wsclear() ? *wsclear()
+                                     : static_cast<uint32_t>(NOT_A_CHARACTER)),
+           init_working ? gg_get_address_of(init_working->var_decl_node)
+                        : null_pointer_node,
+           init_local   ? gg_get_address_of(init_local->var_decl_node)
+                        : null_pointer_node,
+           NULL_TREE);
+   }
+ 
+ static
+ void
+ establish_using(size_t nusing,
+                 cbl_ffi_arg_t args[] )
+   {
+   if( nusing )
+     {
+     for(size_t i=0; i<nusing; i++)
+       {
+       // This code is relevant at compile time.  It takes each
+       // expected formal parameter and tacks it onto the end of the
+       // function's arguments chain.
+ 
+       char *ach = xasprintf("_p_%s", args[i].refer.field->name);
+ 
+       size_t nbytes = 0;
+       tree par_type = tree_type_from_field_type(args[i].refer.field, nbytes);
+       if( par_type == FLOAT )
+         {
+         if( nbytes == 16 )
+           {
+           par_type = INT128;
+           }
+         else
+           {
+           par_type = SSIZE_T;
+           }
+         }
+       if( par_type == DOUBLE )
+         {
+         par_type = SSIZE_T;
+         }
+       if( par_type == FLOAT128 )
+         {
+         par_type = INT128;
+         }
+       chain_parameter_to_function(current_function->function_decl, par_type, ach);
+       free(ach);
+       }
+ 
+     // During the call, we saved the parameter_count and an array of variable
+     // lengths.  We need to look at those values if, and only if, one or more
+     // of our USING arguments has an OPTIONAL flag or if one of our targets is
+     // marked as VARYING.
+     bool check_for_parameter_count = false;
+     for(size_t i=0; i<nusing; i++)
+       {
+       if( args[i].optional )
+         {
+         check_for_parameter_count = true;
+         break;
+         }
+       if( args[i].refer.field->attr & any_length_e )
+         {
+         check_for_parameter_count = true;
+         break;
+         }
+       }
+ 
+     if( check_for_parameter_count )
+       {
+       IF( var_decl_call_parameter_signature,
+           eq_op,
+           gg_cast(CHAR_P, current_function->function_address) )
+         {
+         // We know to use var_decl_call_parameter_count, so unflag this
+         // pointer to avoid problems in the ridiculous possibility of
+         // COBOL-A calls C_B calls COBOL_A
+         gg_assign(var_decl_call_parameter_signature,
+                   gg_cast(CHAR_P, null_pointer_node));
+         }
+       ELSE
+         {
+         // We were apparently called by a C routine, not a COBOL routine, so
+         // make sure we don't get shortchanged by a count left behind from an
+         // earlier COBOL call.
+         gg_assign(var_decl_call_parameter_count,
+                   build_int_cst_type(INT, A_ZILLION));
+         }
+       ENDIF
+       }
+     else
+       {
+       // None of our parameters require a count, so make sure we don't get
+       // bamboozled by a count left behind from an earlier COBOL call.
+       gg_assign(var_decl_call_parameter_count,
+                 build_int_cst_type(INT, A_ZILLION));
+       }
+ 
+     // There are 'nusing' elements in the PROCEDURE DIVISION USING list.
+ 
+     tree parameter = NULL_TREE;
+     tree rt_i = gg_define_int();
+     for(size_t i=0; i<nusing; i++)
+       {
+       // And this compiler code generates run-time execution code. The
+       // generated code picks up, at run time, the variable we just
+       // established in the chain at compile time.
+ 
+       // It makes more sense if you don't think about it too hard.
+ 
+       // Arriving here means that we are processing an instruction like
+       // this:
+       // PROCEDURE DIVISION USING using[0] using[1] ... using using[nusing-1]
+ 
+       // When __gg__call_parameter_count is equal to A_ZILLION, then this is
+       // an OTHER-TO-COBOL call and the var_decl_call_parameter_lengths array
+       // is not valid
+ 
+       // Sort out the USING BY; it can be BY REFERENCE or BY VALUE:
+       cbl_ffi_crv_t crv = args[i].crv;
+       cbl_field_t *new_var = args[i].refer.field;
+ 
+       if( crv == by_value_e )
+         {
+         switch(new_var->type)
+           {
+           case FldGroup:
+           case FldAlphanumeric:
+           case FldAlphaEdited:
+           case FldNumericEdited:
+             crv = by_reference_e;
+             break;
+           default:
+             break;
+           }
+         }
+ 
+       // We need to be able to restore prior arguments when doing recursive
+       // calls:
+       IF( member(args[i].refer.field->var_decl_node, "data"),
+           ne_op,
+           gg_cast(UCHAR_P, null_pointer_node) )
+         {
+         gg_call(VOID,
+                 "__gg__push_local_variable",
+                 gg_get_address_of(args[i].refer.field->var_decl_node),
+                 NULL_TREE);
+         }
+       ELSE
+         ENDIF
+ 
+       if( crv == by_reference_e )
+         {
+         // The passed parameter, if it exists, is a pointer to a COBOL
+         // variable's data area
+         tree reference = gg_define_variable(UCHAR_P);
+         gg_assign(rt_i, build_int_cst_type(INT, i));
+         IF( rt_i, lt_op , var_decl_call_parameter_count )
+           {
+           if( i == 0 )
+             {
+             // This is the first parameter.
+             parameter = DECL_ARGUMENTS(current_function->function_decl);
+             }
+           else
+             {
+             // These are subsequent parameters
+             parameter = TREE_CHAIN(parameter);
+             }
+           gg_assign(reference, gg_cast(UCHAR_P, parameter));
+ 
+           if( args[i].refer.field->attr & any_length_e )
+             {
+             // gg_printf("side channel: Length of \"%s\" is %ld\n",
+                       // member(args[i].refer.field->var_decl_node, "name"),
+                       // gg_array_value(var_decl_call_parameter_lengths, rt_i),
+                       // NULL_TREE);
+ 
+             // Get the length from the global lengths[] side channel.  Don't
+             // forget to use the length mask on the table value.
+             gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
+                       gg_array_value(var_decl_call_parameter_lengths, rt_i));
+             }
+           }
+         ELSE
+           {
+           gg_assign(reference, gg_cast(UCHAR_P, null_pointer_node));
+           }
+         ENDIF
+         // 'parameter' is a reference, so it it becomes the data member of
+         // the cblc_field_t COBOL variable.
+         gg_assign(member(args[i].field()->var_decl_node, "data"), reference);
+ 
+         // We need to apply reference + offset to the LINKAGE variable
+         // and all of its children
+         propogate_linkage_offsets( args[i].field(), reference );
+         }
+ 
+       if( crv == by_value_e )
+         {
+         size_t nbytes;
+         tree_type_from_field_type(new_var, nbytes);
+         tree parm = gg_define_variable(INT128);
+ 
+         tree value_type;
+         if( nbytes == 16 )
+           {
+           value_type = INT128;
+           }
+         else
+           {
+           value_type = SSIZE_T;
+           }
+ 
+         // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
+         tree value = gg_define_variable(value_type);
+ 
+         gg_assign(rt_i, build_int_cst_type(INT, i));
+         IF( rt_i, lt_op , var_decl_call_parameter_count )
+           {
+           if( i == 0 )
+             {
+             // This is the first parameter.
+             parameter = DECL_ARGUMENTS(current_function->function_decl);
+             }
+           else
+             {
+             // These are subsequent parameters
+             parameter = TREE_CHAIN(parameter);
+             }
+           gg_assign(value, gg_cast(value_type, parameter));
+           gg_memcpy(gg_get_address_of(value),
+                     gg_get_address_of(parameter),
+                     build_int_cst_type(SIZE_T, nbytes));
+ 
+           if( args[i].refer.field->attr & any_length_e )
+             {
+             // gg_printf("side channel: Length of \"%s\" is %ld\n",
+                       // member(args[i].refer.field->var_decl_node, "name"),
+                       // gg_array_value(var_decl_call_parameter_lengths, rt_i),
+                       // NULL_TREE);
+ 
+             // Get the length from the global lengths[] side channel.  Don't
+             // forget to use the length mask on the table value.
+             gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
+                       gg_array_value(var_decl_call_parameter_lengths, rt_i));
+             }
+           }
+         ELSE
+           {
+           gg_assign(value, gg_cast(value_type, integer_zero_node));
+           }
+         ENDIF
+ 
+         if( nbytes <= 8 )
+           {
+           // Our input is a 64-bit number
+           if( new_var->attr & signable_e )
+             {
+             IF( gg_bitwise_and( gg_cast(SIZE_T, value),
+                                 build_int_cst_type(SIZE_T, 0x8000000000000000ULL)),
+                 ne_op,
+                 gg_cast(SIZE_T, integer_zero_node) )
+               {
+               // Our input is a negative number.  Set it to -1, so that the
+               // eight high-order bytes are 0xFF
+               gg_assign(parm, gg_cast(INT128, integer_minus_one_node));
+               }
+             ELSE
+               {
+               // Our input is a positive number, so set it to zero, so that
+               // the eight high-order bytes are 0x00
+               gg_assign(parm, gg_cast(INT128, integer_zero_node));
+               }
+             ENDIF
+             }
+           else
+             {
+             // This is a 64-bit positive number: so set it to zero, so that
+               // the eight high-order bytes are 0x00
+             gg_assign(parm, gg_cast(INT128, integer_zero_node));
+             }
+           }
+ 
+         // Now copy over the little-endian binary bytes, either 8 or 16 as
+         // necessary
+         gg_memcpy(gg_get_address_of(parm),
+                   gg_get_address_of(value),
+                   build_int_cst_type(SIZE_T, nbytes));
+         tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
+         tree data_decl_node = gg_define_variable( array_type,
+                                                   NULL,
+                                                   vs_static);
+         gg_assign( member(new_var->var_decl_node, "data"),
+                           gg_pointer_to_array(data_decl_node) );
+ 
+         // And then move it into place
+         gg_call(VOID,
+                 "__gg__assign_value_from_stack",
+                 gg_get_address_of(new_var->var_decl_node),
+                 parm,
+                 NULL_TREE);
+         // We now have to handle an oddball situation.  It's possible we are
+         // dealing with
+         //
+         //    linkage section.
+         //    01 var1
+         //    01 var2 redefines var1
+         //
+         // If so, we have to give var2::data_pointer the same value as
+         // var1::data_pointer
+         //
+         size_t our_index = symbol_index(symbol_elem_of(new_var));
+         size_t next_index  = our_index + 1;
+         // Look ahead in the symbol table for the next LEVEL01/77
+         for(;;)
+           {
+           symbol_elem_t *e = symbol_at(next_index);
+           if( e->type != SymField )
+             {
+             break;
+             }
+           cbl_field_t *next_var = cbl_field_of(e);
+           if( !next_var )
+             {
+             break;
+             }
+           if( next_var->level == LEVEL01 || next_var->level == LEVEL77 )
+             {
+             if( next_var->parent == our_index )
+               {
+               gg_assign(member(next_var->var_decl_node, "data"),
+                         member(new_var->var_decl_node, "data"));
+               }
+             break;
+             }
+           next_index += 1;
+           }
+         }
+       }
+     }
    }
  
  void
*************** parser_division(cbl_division_t division,
*** 7070,7153 ****
    if( division == environment_div_e )
      {
      Analyze();
-     initialize_the_data();
      }
    else if( division == procedure_div_e )
      {
      Analyze();
-     initialize_the_data();
  
!     // Do some symbol table index bookkeeping.  current_program_index() is valid
!     // at this point in time:
      current_function->our_symbol_table_index = current_program_index();
  
      // We have some housekeeping to do to keep track of the list of functions
!     // accessible by us:
  
      // For every procedure, we need a variable that points to the list of
      // available program names.
  
      // We need a pointer to the array of program names
      char ach[2*sizeof(cbl_name_t)];
!     sprintf(ach,
!             "..accessible_program_list_" HOST_SIZE_T_PRINT_DEC,
!             (fmt_size_t)current_function->our_symbol_table_index);
!     tree prog_list = gg_define_variable(build_pointer_type(CHAR_P),
!                                         ach, vs_file_static);
  
!     // Likewise, we need a pointer to the array of pointers to functions:
!     tree function_type =
!       build_varargs_function_type_array( SIZE_T,
!                                          0,     // No parameters yet
!                                          NULL); // And, hence, no types
!     tree pointer_type = build_pointer_type(function_type);
!     tree constructed_array_type = build_array_type_nelts(pointer_type, 1);
!     sprintf(ach,
!             "..accessible_program_pointers_" HOST_SIZE_T_PRINT_DEC,
!             (fmt_size_t)current_function->our_symbol_table_index);
!     tree prog_pointers = gg_define_variable(
!                                     build_pointer_type(constructed_array_type),
!                                     ach,
!                                     vs_file_static);
!     gg_call(VOID,
!             "__gg__set_program_list",
!             build_int_cst_type(INT, current_function->our_symbol_table_index),
!             gg_get_address_of(prog_list),
!             gg_get_address_of(prog_pointers),
!             NULL_TREE);
  
!     if( gg_trans_unit.function_stack.size() == 1 )
!       {
!       gg_create_goto_pair(&label_list_out_goto,
!                           &label_list_out_label);
!       gg_create_goto_pair(&label_list_back_goto,
!                           &label_list_back_label);
!       gg_append_statement(label_list_out_goto);
!       gg_append_statement(label_list_back_label);
!       }
  
!     tree globals_are_initialized = gg_declare_variable( INT,
!                                                         "__gg__globals_are_initialized",
!                                                         NULL,
!                                                         vs_external_reference);
!     IF( globals_are_initialized, eq_op, integer_zero_node )
!       {
!       // one-time initialization happens here
  
!       // We need to establish the initial value of the UPSI-1 switch register
!       // We are using IBM's conventions:
!       // https://www.ibm.com/docs/en/zvse/6.2?topic=SSB27H_6.2.0/fa2sf_communicate_appl_progs_via_job_control.html
!       // UPSI 10000110 means that bits 0, 5, and 6 are on, which means that
!       // SW-0, SW-5, and SW-6 are on.
        gg_call(VOID,
!               "__gg__set_initial_switch_value",
                NULL_TREE);
  
!       // And then flag one-time initialization as having been done.
!       gg_assign(globals_are_initialized, integer_one_node);
        }
-     ELSE
-       ENDIF
  
      gg_append_statement(current_function->skip_init_label);
      // This is where we check to see if somebody tried to cancel us
--- 7731,7834 ----
    if( division == environment_div_e )
      {
      Analyze();
      }
    else if( division == procedure_div_e )
      {
      Analyze();
  
!     RETURN_WHEN_HIJACKED;
! 
!     // Do some symbol table index bookkeeping.  current_program_index() is
!     // valid at this point in time:
      current_function->our_symbol_table_index = current_program_index();
+     const cbl_label_t *prog = cbl_label_of(symbol_at(current_program_index()));
+     current_function->has_initial   = prog->initial;
+     current_function->has_recursive = prog->recursive;
  
      // We have some housekeeping to do to keep track of the list of functions
!     // accessible by us.
  
      // For every procedure, we need a variable that points to the list of
      // available program names.
  
      // We need a pointer to the array of program names
      char ach[2*sizeof(cbl_name_t)];
!     if( !current_function->initialized )
!       {
!       // Do some symbol table index bookkeeping.  current_program_index() is valid
!       // at this point in time:
!       current_function->our_symbol_table_index = current_program_index();
  
!       gg_create_goto_pair(&current_function->entry_switch_goto,
!                           &current_function->entry_switch_label);
  
!       // We have some housekeeping to do to keep track of the list of functions
!       // accessible by us:
  
!       // For every procedure, we need a variable that points to the list of
!       // available program names.
  
!       // We need a pointer to the array of program names
!       sprintf(ach,
!               "..accessible_program_list_" HOST_SIZE_T_PRINT_DEC,
!               (fmt_size_t)current_function->our_symbol_table_index);
!       tree prog_list = gg_define_variable(build_pointer_type(CHAR_P),
!                                           ach, vs_file_static);
! 
!       // Likewise, we need a pointer to the array of pointers to functions:
!       tree function_type =
!         build_varargs_function_type_array( SIZE_T,
!                                            0,     // No parameters yet
!                                            NULL); // And, hence, no types
!       tree pointer_type = build_pointer_type(function_type);
!       tree constructed_array_type = build_array_type_nelts(pointer_type, 1);
!       sprintf(ach,
!               "..accessible_program_pointers_" HOST_SIZE_T_PRINT_DEC,
!               (fmt_size_t)current_function->our_symbol_table_index);
!       tree prog_pointers = gg_define_variable(
!                                       build_pointer_type(constructed_array_type),
!                                       ach,
!                                       vs_file_static);
        gg_call(VOID,
!               "__gg__set_program_list",
!               build_int_cst_type(INT, current_function->our_symbol_table_index),
!               gg_get_address_of(prog_list),
!               gg_get_address_of(prog_pointers),
                NULL_TREE);
  
!       if( gg_trans_unit.function_stack.size() == 1 )
!         {
!         gg_create_goto_pair(&label_list_out_goto,
!                             &label_list_out_label);
!         gg_create_goto_pair(&label_list_back_goto,
!                             &label_list_back_label);
!         gg_append_statement(label_list_out_goto);
!         gg_append_statement(label_list_back_label);
!         }
! 
!       tree globals_are_initialized = gg_declare_variable( INT,
!                                                           "__gg__globals_are_initialized",
!                                                           NULL,
!                                                           vs_external_reference);
!       IF( globals_are_initialized, eq_op, integer_zero_node )
!         {
!         // one-time initialization happens here
! 
!         // We need to establish the initial value of the UPSI-1 switch register
!         // We are using IBM's conventions:
!         // https://www.ibm.com/docs/en/zvse/6.2?topic=SSB27H_6.2.0/fa2sf_communicate_appl_progs_via_job_control.html
!         // UPSI 10000110 means that bits 0, 5, and 6 are on, which means that
!         // SW-0, SW-5, and SW-6 are on.
!         gg_call(VOID,
!                 "__gg__onetime_initialization",
!                 NULL_TREE);
! 
!         // And then flag one-time initialization as having been done.
!         gg_assign(globals_are_initialized, integer_one_node);
!         }
!       ELSE
!         ENDIF
        }
  
      gg_append_statement(current_function->skip_init_label);
      // This is where we check to see if somebody tried to cancel us
*************** parser_division(cbl_division_t division,
*** 7166,7172 ****
        // gg_printf("Somebody wants to cancel %s\n",
                  // gg_string_literal(current_function->our_unmangled_name),
                  // NULL_TREE);
-       const cbl_label_t *prog = cbl_label_of(symbol_at(current_program_index()));
        size_t initializer_index = prog->initial_section;
        cbl_label_t *initializer = cbl_label_of(symbol_at(initializer_index));
        parser_perform(initializer, true);  // true means suppress nexting
--- 7847,7852 ----
*************** parser_division(cbl_division_t division,
*** 7196,7478 ****
      // Stash the returning variables for use during parser_return()
      current_function->returning = returning;
  
!     if( gg_trans_unit.function_stack.size() == 1 )
!       {
!       // We are entering a new top-level program, so we need to set
!       // RETURN-CODE to zero
!       gg_assign(var_decl_return_code, build_int_cst_type(SHORT, 0));
!       }
! 
!     // The parameters passed to this program might be 64 bits or 128 bits in
!     // length.  We establish those lengths based on the types of the target
!     // for each USING.
  
!     for(size_t i=0; i<nusing; i++)
        {
!       // This code is relevant at compile time.  It takes each
!       // expected formal parameter and tacks it onto the end of the
!       // function's arguments chain.
! 
!       sprintf(ach, "_p_%s", args[i].refer.field->name);
  
!       size_t nbytes = 0;
!       tree par_type = tree_type_from_field_type(args[i].refer.field, nbytes);
!       if( par_type == FLOAT )
!         {
!         par_type = SSIZE_T;
!         }
!       if( par_type == DOUBLE )
!         {
!         par_type = SSIZE_T;
!         }
!       if( par_type == FLOAT128 )
          {
!         par_type = INT128;
          }
-       chain_parameter_to_function(current_function->function_decl, par_type, ach);
        }
  
!     if( nusing )
!       {
!       // During the call, we saved the parameter_count and an array of variable
!       // lengths.  We need to look at those values if, and only if, one or more
!       // of our USING arguments has an OPTIONAL flag or if one of our targets is
!       // marked as VARYING.
!       bool check_for_parameter_count = false;
!       for(size_t i=0; i<nusing; i++)
!         {
!         if( args[i].optional )
!           {
!           check_for_parameter_count = true;
!           break;
!           }
!         if( args[i].refer.field->attr & any_length_e )
!           {
!           check_for_parameter_count = true;
!           break;
!           }
!         }
! 
!       if( check_for_parameter_count )
!         {
!         IF( var_decl_call_parameter_signature,
!             eq_op,
!             gg_cast(CHAR_P, current_function->function_address) )
!           {
!           // We know to use var_decl_call_parameter_count, so unflag this
!           // pointer to avoid problems in the ridiculous possibility of
!           // COBOL-A calls C_B calls COBOL_A
!           gg_assign(var_decl_call_parameter_signature,
!                     gg_cast(CHAR_P, null_pointer_node));
!           }
!         ELSE
!           {
!           // We were apparently called by a C routine, not a COBOL routine, so
!           // make sure we don't get shortchanged by a count left behind from an
!           // earlier COBOL call.
!           gg_assign(var_decl_call_parameter_count,
!                     build_int_cst_type(INT, A_ZILLION));
!           }
!         ENDIF
!         }
!       else
!         {
!         // None of our parameters require a count, so make sure we don't get
!         // bamboozled by a count left behind from an earlier COBOL call.
!         gg_assign(var_decl_call_parameter_count,
!                   build_int_cst_type(INT, A_ZILLION));
!         }
! 
!       // There are 'nusing' elements in the PROCEDURE DIVISION USING list.
! 
!       tree parameter = NULL_TREE;
!       tree rt_i = gg_define_int();
!       for(size_t i=0; i<nusing; i++)
!         {
!         // And this compiler code generates run-time execution code. The
!         // generated code picks up, at run time, the variable we just
!         // established in the chain at compile time.
! 
!         // It makes more sense if you don't think about it too hard.
! 
!         // We need to be able to restore prior arguments when doing recursive
!         // calls:
!         IF( member(args[i].refer.field->var_decl_node, "data"),
!             ne_op,
!             gg_cast(UCHAR_P, null_pointer_node) )
!           {
!           gg_call(VOID,
!                   "__gg__push_local_variable",
!                   gg_get_address_of(args[i].refer.field->var_decl_node),
!                   NULL_TREE);
!           }
!         ELSE
!           ENDIF
! 
!         tree base = gg_define_variable(UCHAR_P);
!         gg_assign(rt_i, build_int_cst_type(INT, i));
!         //gg_printf("The rt_i counter is %d\n", rt_i, NULL_TREE);
!         IF( rt_i, lt_op , var_decl_call_parameter_count )
!           {
!           if( i == 0 )
!             {
!             // This is the first parameter.
!             parameter = DECL_ARGUMENTS(current_function->function_decl);
!             }
!           else
!             {
!             // These are subsequent parameters
!             parameter = TREE_CHAIN(parameter);
!             }
!           gg_assign(base, gg_cast(UCHAR_P, parameter));
! 
!           if( args[i].refer.field->attr & any_length_e )
!             {
!             // gg_printf("side channel: Length of \"%s\" is %ld\n",
!                       // member(args[i].refer.field->var_decl_node, "name"),
!                       // gg_array_value(var_decl_call_parameter_lengths, rt_i),
!                       // NULL_TREE);
! 
!             // Get the length from the global lengths[] side channel.  Don't
!             // forget to use the length mask on the table value.
!             gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
!                       gg_array_value(var_decl_call_parameter_lengths, rt_i));
!             }
!           }
!         ELSE
!           {
!           gg_assign(base, gg_cast(UCHAR_P, null_pointer_node));
!           }
!           ENDIF
! 
!         // Arriving here means that we are processing an instruction like
!         // this:
!         // PROCEDURE DIVISION USING using[0] using[1] ... using using[nusing-1]
! 
!         // When __gg__call_parameter_count is equal to A_ZILLION, then this is
!         // an OTHER-TO-COBOL call and the var_decl_call_parameter_lengths array
!         // is not valid
! 
!         cbl_ffi_crv_t crv = args[i].crv;
!         cbl_field_t *new_var = args[i].refer.field;
! 
!         if( crv == by_value_e )
!           {
!           switch(new_var->type)
!             {
!             case FldGroup:
!             case FldAlphanumeric:
!             case FldAlphaEdited:
!             case FldNumericEdited:
!               crv = by_reference_e;
!               break;
!             default:
!               break;
!             }
!           }
! 
!         if( crv == by_value_e )
!           {
!           // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
! 
!           size_t nbytes;
!           tree_type_from_field_type(new_var, nbytes);
!           tree parm = gg_define_variable(INT128);
! 
!           if( nbytes <= 8 )
!             {
!             // Our input is a 64-bit number
!             if( new_var->attr & signable_e )
!               {
!               IF( gg_bitwise_and( gg_cast(SIZE_T, base),
!                                   build_int_cst_type(SIZE_T, 0x8000000000000000ULL)),
!                   ne_op,
!                   gg_cast(SIZE_T, integer_zero_node) )
!                 {
!                 // Our input is a negative number
!                 gg_assign(parm, gg_cast(INT128, integer_minus_one_node));
!                 }
!               ELSE
!                 {
!                 // Our input is a positive number
!                 gg_assign(parm, gg_cast(INT128, integer_zero_node));
!                 }
!               ENDIF
!               }
!             else
!               {
!               // This is a 64-bit positive number:
!               gg_assign(parm, gg_cast(INT128, integer_zero_node));
!               }
!             }
!           // At this point, parm has been set to 0 or -1
! 
!           gg_memcpy(gg_get_address_of(parm),
!                     gg_get_address_of(base),
!                     build_int_cst_type(SIZE_T, nbytes));
! 
!           tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity);
!           tree data_decl_node = gg_define_variable( array_type,
!                                                     NULL,
!                                                     vs_static);
!           gg_assign( member(new_var->var_decl_node, "data"),
!                             gg_get_address_of(data_decl_node) );
! 
!           // And then move it into place
!           gg_call(VOID,
!                   "__gg__assign_value_from_stack",
!                   gg_get_address_of(new_var->var_decl_node),
!                   parm,
!                   NULL_TREE);
!           // We now have to handle an oddball situation.  It's possible we are
!           // dealing with
!           //
!           //    linkage section.
!           //    01 var1
!           //    01 var2 redefines var1
!           //
!           // If so, we have to give var2::data_pointer the same value as
!           // var1::data_pointer
!           //
!           size_t our_index = symbol_index(symbol_elem_of(new_var));
!           size_t next_index  = our_index + 1;
!           // Look ahead in the symbol table for the next LEVEL01/77
!           for(;;)
!             {
!             symbol_elem_t *e = symbol_at(next_index);
!             if( e->type != SymField )
!               {
!               break;
!               }
!             cbl_field_t *next_var = cbl_field_of(e);
!             if( !next_var )
!               {
!               break;
!               }
!             if( next_var->level == LEVEL01 || next_var->level == LEVEL77 )
!               {
!               if( next_var->parent == our_index )
!                 {
!                 gg_assign(member(next_var->var_decl_node, "data"),
!                           member(new_var->var_decl_node, "data"));
!                 }
!               break;
!               }
!             next_index += 1;
!             }
!           }
!         else
!           {
!           // 'parameter' is a reference, so it it becomes the data member of
!           // the cblc_field_t COBOL variable.
!           gg_assign(member(args[i].field()->var_decl_node, "data"), base);
! 
!           // We need to apply base + offset to the LINKAGE variable
!           // and all of its children
!           propogate_linkage_offsets( args[i].field(), base );
!           }
!         }
!       }
  
      gg_call(VOID,
              "__gg__pseudo_return_bookmark",
--- 7876,7903 ----
      // Stash the returning variables for use during parser_return()
      current_function->returning = returning;
  
!     current_function->var_decl_return =
!     gg_indirect(gg_cast(SHORT_P,
!         member(cbl_field_of(symbol_at(return_code_register()))->var_decl_node,
!                "data")));
  
!     if( gg_trans_unit.function_stack.size() == 1 )
        {
!       // We are entering a new top-level program.
  
!       if( current_function->has_initial || current_function->has_recursive )
          {
!         // According to the IBM COBOL Language Specification, there is a list
!         // of special registers that get cleared to zero or spaces when a
!         // program has the INITIAL or RECURSIVE attribute.
!         gg_assign(current_function->var_decl_return,
!                   build_int_cst_type(SHORT, 0));
          }
        }
  
!     // The parameters passed to this program might be 64 bits or 128 bits in
!     // length.  We establish those lengths based on the types of the target
!     // for each USING.
  
      gg_call(VOID,
              "__gg__pseudo_return_bookmark",
*************** parser_division(cbl_division_t division,
*** 7524,7529 ****
--- 7949,7976 ----
      // logic for backing up one line, which is needed to correctly step through
      // COBOL code with GDB-COBOL.  So, we clear it here.
      current_location_minus_one_clear();
+ 
+     // It is at this point that we check to see if the call to this function
+     // is a re-entry because of an ENTRY statement:
+ 
+     IF(var_decl_entry_index, ne_op, size_t_zero_node)
+       {
+       // This is an ENTRY re-entry.  The processing of USING variables was
+       // done in parser_entry, so now we jump to the switch statement
+       gg_append_statement(current_function->entry_switch_goto);
+       }
+     ELSE
+       {
+       }
+     ENDIF
+ 
+     current_function->pseudo_return_index =
+                 gg_define_variable(SIZE_T, "_pseudo_return_index", vs_static);
+ 
+     // Establish the formal parameters from the USING clause.
+     establish_using(nusing, args);
+ 
+     current_function->initialized = true;
      }
    }
  
*************** parser_relop_long(cbl_field_t *tgt,
*** 7813,7819 ****
                      NULL,
                      bref.field,
                      refer_offset(bref) );
- 
    static tree comp_res = gg_define_variable(LONG, "..prl_comp_res", vs_file_static);
    gg_assign(comp_res, gg_subtract(tree_a, tree_b));
  
--- 8260,8265 ----
*************** parser_see_stop_run(struct cbl_refer_t e
*** 7942,7948 ****
      }
    else
      {
!     gg_assign(returned_value, gg_cast(INT, var_decl_return_code));
      TRACE1
        {
        gg_fprintf( trace_handle,
--- 8388,8394 ----
      }
    else
      {
!     gg_assign(returned_value, gg_cast(INT, current_function->var_decl_return));
      TRACE1
        {
        gg_fprintf( trace_handle,
*************** parser_see_stop_run(struct cbl_refer_t e
*** 7961,7983 ****
    gg_exit(returned_value);
    }
  
- static
- cbl_label_addresses_t *
- label_fetch(struct cbl_label_t *label)
-   {
-   if( !label->structs.goto_trees )
-     {
-     label->structs.goto_trees
-       = static_cast<cbl_label_addresses_t *>
-         (xmalloc(sizeof(struct cbl_label_addresses_t)));
-     gcc_assert(label->structs.goto_trees);
- 
-     gg_create_goto_pair(&label->structs.goto_trees->go_to,
-                         &label->structs.goto_trees->label);
-     }
-   return label->structs.goto_trees;
-   }
- 
  void
  parser_label_label(struct cbl_label_t *label)
    {
--- 8407,8412 ----
*************** parser_label_label(struct cbl_label_t *l
*** 8007,8014 ****
--- 8436,8447 ----
      TRACE1_END
      }
  
+   RETURN_WHEN_HIJACKED;
+ 
    CHECK_LABEL(label);
  
+   label_verify.lay(label);
+ 
    if(strcmp(label->name, "_end_declaratives") == 0 )
      {
      suppress_cobol_entry_point = false;
*************** parser_label_goto(struct cbl_label_t *la
*** 8046,8053 ****
--- 8479,8492 ----
      TRACE1_END
      }
  
+   RETURN_WHEN_HIJACKED;
+ 
    CHECK_LABEL(label);
  
+   label_verify.go_to(label);
+ 
+   label_verify.go_to(label);
+ 
    if( strcmp(label->name, "_end_declaratives") == 0 )
      {
      suppress_cobol_entry_point = true;
*************** parser_setop( struct cbl_field_t *tgt,
*** 8091,8098 ****
      }
  
    gcc_assert(tgt->type == FldConditional);
-   gcc_assert(domain->data.initial);
-   gcc_assert(strlen(domain->data.initial));
  
    switch(op)
      {
--- 8530,8535 ----
*************** parser_setop( struct cbl_field_t *tgt,
*** 8104,8111 ****
            gg_assign(tgt->var_decl_node, gg_build_relational_expression(
                        gg_call_expr(INT,
                                     "__gg__setop_compare",
!                                    member(candidate, "data"),
!                                    member(candidate, "capacity"),
                                     member(domain, "initial"),
                                     NULL_TREE),
                        ne_op,
--- 8541,8547 ----
            gg_assign(tgt->var_decl_node, gg_build_relational_expression(
                        gg_call_expr(INT,
                                     "__gg__setop_compare",
!                                    gg_get_address_of(candidate->var_decl_node),
                                     member(domain, "initial"),
                                     NULL_TREE),
                        ne_op,
*************** parser_perform_start( struct cbl_perform
*** 8291,8297 ****
    // Give GDB-COBOL something to chew on when NEXTing.  This instruction will
    // get the line number of the PERFORM N TIMES code.
    gg_append_statement(tgt->addresses.top.label);
!   insert_nop(104);
    }
  
  void
--- 8727,8734 ----
    // Give GDB-COBOL something to chew on when NEXTing.  This instruction will
    // get the line number of the PERFORM N TIMES code.
    gg_append_statement(tgt->addresses.top.label);
!   // Necessary for GDB-COBOL PERFORM <inline> processing.
!   insert_nop(105);
    }
  
  void
*************** parser_perform_conditional( struct cbl_p
*** 8335,8340 ****
--- 8772,8780 ----
  
    // The next instructions that the parser will give us are the conditional
    // calculation, so the first thing that goes down is the condover:
+   /* The following NOP is needed to make NEXT OVER PERFORM BEFORE/AFTER UNTIL
+      behaves properly.  */
+   insert_nop(106);
    gg_append_statement(tgt->addresses.condover[i].go_to);
  
    // And then, of course, we need to be able to jump back here to actually
*************** perform_outofline_before_until(struct cb
*** 8394,8410 ****
  
    /*
        TOP:
!                   IF CONDITION 0
!                       GOTO EXIT
!                   ELSE
!                       EXECUTE BODY
!                       GOTO TOP
        EXIT:
    */
  
    create_iline_address_pairs(tgt);
  
    // Tag the top of the perform
    gg_append_statement(tgt->addresses.top.label);
  
    // Go do the conditional calculation:
--- 8834,8859 ----
  
    /*
        TOP:
!          GOTO condinto
!          condback:
!             IF CONDITION 0
!                 GOTO EXIT
!             ELSE
!                 EXECUTE BODY
!                 GOTO TOP
        EXIT:
+ 
+       GOTO jumpover
+          condinto:
+          <conditional calculation>
+          GOTO condback
+       jumpover:
    */
  
    create_iline_address_pairs(tgt);
  
    // Tag the top of the perform
+ 
    gg_append_statement(tgt->addresses.top.label);
  
    // Go do the conditional calculation:
*************** perform_outofline_before_until(struct cb
*** 8415,8426 ****
    // where to return:
    gg_append_statement(tgt->addresses.condback[0].label);
  
!   char ach[256];
!   size_t our_pseudo_label = pseudo_label++;
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    parser_if(varys[0].until);
      {
--- 8864,8870 ----
    // where to return:
    gg_append_statement(tgt->addresses.condback[0].label);
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    parser_if(varys[0].until);
      {
*************** perform_outofline_before_until(struct cb
*** 8440,8450 ****
  
    // Label the bottom of the PERFORM
    gg_append_statement(  tgt->addresses.exit.label );
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler( ach );
    }
  
  static void
--- 8884,8889 ----
*************** perform_outofline_after_until(struct cbl
*** 8462,8482 ****
  
    /*
        TOP:
!                   EXECUTE BODY
!                   IF CONDITION 0
!                       GOTO EXIT
!                   ELSE
!                       ADD BY_0 to VARYING_0
!                       GOTO TOP
        EXIT:
    */
  
!   char ach[256];
!   size_t our_pseudo_label = pseudo_label++;
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    create_iline_address_pairs(tgt);
  
--- 8901,8923 ----
  
    /*
        TOP:
!           EXECUTE BODY
!           GOTO condinto
!           condback:
!           IF CONDITION 0
!               GOTO EXIT
!           ELSE
!               GOTO TOP
        EXIT:
+ 
+       GOTO jumpover
+          condinto:
+          <conditional calculation>
+          GOTO condback
+       jumpover:
    */
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    create_iline_address_pairs(tgt);
  
*************** perform_outofline_after_until(struct cbl
*** 8504,8514 ****
    parser_fi();
    // Label the bottom of the PERFORM
    gg_append_statement(  tgt->addresses.exit.label );
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler( ach );
    }
  
  static void
--- 8945,8950 ----
*************** perform_outofline_testafter_varying(stru
*** 8568,8579 ****
    // only need N-1; we don't use the zeroth pair.  But the code
    // is cleaner if we just build all N of them.
  
!   char ach[256];
!   size_t our_pseudo_label = pseudo_label++;
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    create_iline_address_pairs(tgt);
  
--- 9004,9010 ----
    // only need N-1; we don't use the zeroth pair.  But the code
    // is cleaner if we just build all N of them.
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    create_iline_address_pairs(tgt);
  
*************** perform_outofline_testafter_varying(stru
*** 8625,8635 ****
      }
    // Arriving here means that we all of the conditions were
    // true.  So, we're done.
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler( ach );
    }
  
  static void
--- 9056,9061 ----
*************** perform_outofline_before_varying(   stru
*** 8686,8697 ****
    tree label[MAX_AFTERS];
    build_N_pairs(go_to, label, N);
  
!   char ach[256];
!   size_t our_pseudo_label = pseudo_label++;
!   sprintf(ach,
!           "_proccallb." HOST_SIZE_T_PRINT_DEC ":",
!           (fmt_size_t)our_pseudo_label);
!   gg_insert_into_assembler( ach );
  
    // Initialize all varying:
  
--- 9112,9118 ----
    tree label[MAX_AFTERS];
    build_N_pairs(go_to, label, N);
  
!   perform_is_armed = CURRENT_LINE_NUMBER ;
  
    // Initialize all varying:
  
*************** perform_outofline_before_varying(   stru
*** 8769,8779 ****
    // the EXIT: label.
    // We have, you see, reached the egress:
    gg_append_statement(  tgt->addresses.exit.label );
-   sprintf(ach,
-           "_procretb." HOST_SIZE_T_PRINT_DEC ":",
-           (fmt_size_t)our_pseudo_label);
-   token_location_override(current_location_minus_one());
-   gg_insert_into_assembler( ach );
    }
  
  static void
--- 9190,9195 ----
*************** perform_inline_testbefore_varying(  stru
*** 9004,9009 ****
--- 9420,9428 ----
        SHOW_PARSE_END
        }
      gg_append_statement(tgt->addresses.condback[i].label);
+     // Needed to make GDB NEXT over PERFORM in-line VARYING UNTIL work
+     // predictably.
+     insert_nop(107);
  
      // Test that conditional
      parser_if(varys[i].until);
*************** parser_perform_inline_times(struct cbl_p
*** 9319,9328 ****
  
    gcc_assert(tgt);
    cbl_field_t *count = how_many.field;
-   if( how_many.is_reference() )
-     {
-     cbl_internal_error("%s:%d: ignoring subscripts", __func__, __LINE__);
-     }
    CHECK_FIELD(count);
  
    // This has to be on the stack, because performs can be nested
--- 9738,9743 ----
*************** parser_perform_inline_times(struct cbl_p
*** 9397,9403 ****
    get_binary_value( counter,
                      NULL,
                      count,
!                     size_t_zero_node);
  
    SHOW_PARSE
      {
--- 9812,9818 ----
    get_binary_value( counter,
                      NULL,
                      count,
!                     refer_offset(how_many));
  
    SHOW_PARSE
      {
*************** parser_set_conditional88( const cbl_refe
*** 9468,9479 ****
    if( !figconst )
      {
      // We are dealing with an ordinary string.
!     static size_t buffer_size = 0;
!     static char *buffer = NULL;
!     size_t length = src->first.size();
!     raw_to_internal(&buffer, &buffer_size, src->first.name(), length);
!     move_tree_to_field( parent,
!                         gg_string_literal(buffer));
      }
    else
      {
--- 9883,9903 ----
    if( !figconst )
      {
      // We are dealing with an ordinary string.
! 
!     size_t converted_bytes;
!     const char *converted =
!                   __gg__iconverter(parent->codeset.default_encodings.source->type,
!                                    parent->codeset.encoding,
!                                    src->first.name(),
!                                    strlen(src->first.name())+1,
!                                    &converted_bytes);
!     gg_call(VOID,
!             "__gg__refer_from_string",
!             gg_get_address_of(parent->var_decl_node),
!             size_t_zero_node,
!             build_int_cst_type(SIZE_T, parent->data.capacity()),
!             build_string_literal(converted_bytes, converted),
!             NULL_TREE);
      }
    else
      {
*************** parser_file_add(struct cbl_file_t *file)
*** 9667,9679 ****
            __func__);
      }
  
!   size_t symbol_table_index = symbol_index(symbol_elem_of(file));
  
    gg_call(VOID,
            "__gg__file_init",
            gg_get_address_of(new_var_decl),
            gg_string_literal(file->name),
!           build_int_cst_type(SIZE_T, symbol_table_index),
            array_of_keys,
            key_numbers,
            unique_flags,
--- 10091,10127 ----
            __func__);
      }
  
!   // This code is a hack needed until the parser sets the varies.min/max
!   // properly when they are not equal:
!   if(    varies.min != varies.max
!       && current_encoding(display_encoding_e) == iconv_UTF16LE_e
!       && varies.max == symbol_file_record(file)->data.capacity() )
!     {
!     fprintf(stderr,
!         "There is a hack in genapi.cc to take into account a parser error,\n"
!         "namely the fact that when there is a RECORD VARYING clause, the\n"
!         "min/max values reflect the values in the source code, while when\n"
!         "there is no VARYING clause the min/max values are the same as the\n"
!         "default_record's data.capacity().  If you are seeing this message,\n"
!         "it would appear the parser has been updated to supply the stride-\n"
!         "corrected min/max, and the hack should be removed.\n");
!     gcc_assert(false);
!     }
!   if( varies.max < symbol_file_record(file)->data.capacity())
!     {
!     const charmap_t *charmap =
!                      __gg__get_charmap(current_encoding(display_encoding_e));
!     varies.min *= charmap->stride();
!     varies.max *= charmap->stride();
!     }
! 
!   uint64_t symbol_table_index = symbol_unique_index(symbol_elem_of(file));
  
    gg_call(VOID,
            "__gg__file_init",
            gg_get_address_of(new_var_decl),
            gg_string_literal(file->name),
!           build_int_cst_type(ULONGLONG, symbol_table_index),
            array_of_keys,
            key_numbers,
            unique_flags,
*************** parser_file_add(struct cbl_file_t *file)
*** 9690,9695 ****
--- 10138,10152 ----
            build_int_cst_type(INT, (int)file->optional),
            build_int_cst_type(SIZE_T, varies.min),
            build_int_cst_type(SIZE_T, varies.max),
+ /*  Right now, file->codeset.encoding is not being set properly.  For example,
+     when the exec-charset is EBCDIC, file->codeset is coming through as CP1252.
+     However, when exec-charset is UTF32LE, file->codeset is arriving here as
+     UTF32LE.  Go figure.
+ 
+     Remove this comment and fix the following code when that's repaired.  */
+ //          build_int_cst_type(INT, (int)file->codeset.encoding),
+           build_int_cst_type(INT, current_encoding(display_encoding_e)),
+           build_int_cst_type(INT, (int)file->codeset.alphabet),
            NULL_TREE);
    file->var_decl_node = new_var_decl;
    }
*************** parser_file_open( struct cbl_file_t *fil
*** 9756,9784 ****
      TRACE1_END
      }
  
!   // The cbl_file_t has a cbl_field_t *filename.  This can be a FldAlphanumeric.
!   // The runtime has a (char *)filename, so we need to
!   // do a runtime conversion.
! 
!   tree psz;   // This is going to be either the name of the file, or the
!   // possible run-time environment variable that will contain
!   // the name of the file.
! 
    cbl_field_t *field_of_name = symbol_field_forward(file->filename);
-   bool quoted_name = false;
    if( field_of_name->type == FldForward )
      {
      // The target of ASSIGN TO was unquoted, but didn't resolve to a
      // cbl_field_t.  This means that the name of the field is an
      // environment variable that will hold the file name
!     psz = gg_define_char_star();
!     gg_assign(psz, gg_strdup(gg_string_literal(field_of_name->name)));
      }
    else
      {
!     // The name is coming from a presumably FldAlphaNumeric variable
!     psz = get_string_from(field_of_name);
!     quoted_name = true;
      }
  
    sv_is_i_o = true;
--- 10213,10230 ----
      TRACE1_END
      }
  
!   tree pszFilename = gg_define_char_star();
    cbl_field_t *field_of_name = symbol_field_forward(file->filename);
    if( field_of_name->type == FldForward )
      {
      // The target of ASSIGN TO was unquoted, but didn't resolve to a
      // cbl_field_t.  This means that the name of the field is an
      // environment variable that will hold the file name
!     gg_assign(pszFilename, gg_strdup(gg_string_literal(field_of_name->name)));
      }
    else
      {
!     gg_assign(pszFilename, gg_cast(CHAR_P, null_pointer_node));
      }
  
    sv_is_i_o = true;
*************** parser_file_open( struct cbl_file_t *fil
*** 9786,9794 ****
    gg_call(VOID,
            "__gg__file_open",
            gg_get_address_of(file->var_decl_node),
!           psz,
            build_int_cst_type(INT, mode_char),
-           quoted_name ? integer_one_node : integer_zero_node,
            NULL_TREE);
    set_user_status(file);
    }
--- 10232,10242 ----
    gg_call(VOID,
            "__gg__file_open",
            gg_get_address_of(file->var_decl_node),
!           field_of_name->var_decl_node
!                   ? gg_get_address_of(field_of_name->var_decl_node)
!                   : null_pointer_node,
!           pszFilename,
            build_int_cst_type(INT, mode_char),
            NULL_TREE);
    set_user_status(file);
    }
*************** parser_file_delete( struct cbl_file_t *f
*** 10147,10152 ****
--- 10595,10729 ----
      }
    }
  
+ static void
+ set_up_delete_file_label(cbl_label_t *delete_file_label)
+   {
+   if( delete_file_label )
+     {
+     if( !delete_file_label->structs.delete_file )
+       {
+       delete_file_label->structs.delete_file
+         = static_cast<cbl_delete_file_t *>
+                                   (xmalloc(sizeof(struct cbl_delete_file_t)));
+       // Set up the address pairs for this clause
+       gg_create_goto_pair(
+                   &delete_file_label->structs.delete_file->over.go_to,
+                   &delete_file_label->structs.delete_file->over.label);
+       gg_create_goto_pair(
+                   &delete_file_label->structs.delete_file->exception.go_to,
+                   &delete_file_label->structs.delete_file->exception.label);
+       gg_create_goto_pair(
+                   &delete_file_label->structs.delete_file->no_exception.go_to,
+                   &delete_file_label->structs.delete_file->no_exception.label);
+       gg_create_goto_pair(
+                   &delete_file_label->structs.delete_file->bottom.go_to,
+                   &delete_file_label->structs.delete_file->bottom.label);
+       }
+     }
+   }
+ 
+ void
+ parser_file_delete_file( cbl_label_t *name,
+                          std::vector<cbl_file_t*> filenames )
+   {
+   // This removes a file from the file system.  It is distinct from the
+   // FILE DELETE statement, which deletes a record from a file.
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_TEXT(" ");
+     SHOW_PARSE_TEXT(name->name);
+     for(size_t i=0; i<filenames.size(); i++)
+       {
+       SHOW_PARSE_INDENT
+       SHOW_PARSE_TEXT(filenames[i]->name)
+       }
+     SHOW_PARSE_END
+     }
+   set_up_delete_file_label(name);
+   tree there_was_an_error = gg_define_int(0);
+   for(size_t i=0; i<filenames.size(); i++)
+     {
+     tree pszFilename = gg_define_char_star();
+     cbl_field_t *field_of_name = symbol_field_forward(filenames[i]->filename);
+     if( field_of_name->type == FldForward )
+       {
+       // The target of ASSIGN TO was unquoted, but didn't resolve to a
+       // cbl_field_t.  This means that the name of the field is an
+       // environment variable that will hold the file name
+       gg_assign(pszFilename,
+                 gg_strdup(gg_string_literal(field_of_name->name)));
+       }
+     else
+       {
+       gg_assign(pszFilename, gg_cast(CHAR_P, null_pointer_node));
+       }
+     gg_assign(there_was_an_error,
+               gg_bitwise_or(there_was_an_error,
+                             gg_call_expr(
+                             INT,
+                             "__gg__file_remove",
+                             gg_get_address_of(filenames[i]->var_decl_node),
+                             field_of_name->var_decl_node
+                               ? gg_get_address_of(field_of_name->var_decl_node)
+                               : null_pointer_node,
+                             pszFilename,
+                             NULL_TREE)));
+     set_user_status(filenames[i]);
+     }
+   IF( there_was_an_error, eq_op, integer_zero_node )
+     {
+     // There was no error detected.
+     gg_append_statement(name->structs.delete_file->no_exception.go_to);
+     }
+   ELSE
+     {
+     // There was an error detected.
+     gg_append_statement(name->structs.delete_file->exception.go_to);
+     }
+   }
+ 
+ void
+ parser_file_delete_on_exception( cbl_label_t *name )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_TEXT(" ");
+     SHOW_PARSE_TEXT(name->name);
+     SHOW_PARSE_END
+     }
+   gg_append_statement(name->structs.delete_file->bottom.go_to);
+   gg_append_statement(name->structs.delete_file->exception.label);
+   }
+ 
+ void
+ parser_file_delete_not_exception( cbl_label_t *name )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_TEXT(" ");
+     SHOW_PARSE_TEXT(name->name);
+     SHOW_PARSE_END
+     }
+   gg_append_statement(name->structs.delete_file->bottom.go_to);
+   gg_append_statement(name->structs.delete_file->no_exception.label);
+   }
+ 
+ void
+ parser_file_delete_end( cbl_label_t *name )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_TEXT(" ");
+     SHOW_PARSE_TEXT(name->name);
+     SHOW_PARSE_END
+     }
+   gg_append_statement(name->structs.delete_file->bottom.label);
+   }
+ 
  void
  parser_file_rewrite(cbl_file_t *file,
                      cbl_field_t *record_area,
*************** parser_file_start(struct cbl_file_t *fil
*** 10284,10290 ****
        {
        size_t nfield = file->keys[key_number].fields[ifield];
        cbl_field_t *field = cbl_field_of(symbol_at(nfield));
!       combined_length += field->data.capacity;
        }
      gg_assign(length, build_int_cst_type(SIZE_T, combined_length));
      }
--- 10861,10867 ----
        {
        size_t nfield = file->keys[key_number].fields[ifield];
        cbl_field_t *field = cbl_field_of(symbol_at(nfield));
!       combined_length += field->data.capacity();
        }
      gg_assign(length, build_int_cst_type(SIZE_T, combined_length));
      }
*************** inspect_tally(bool backward,
*** 10501,10511 ****
    build_array_of_treeplets(1, pcbl_index, pcbl_refers.data());
  
    // Do the actual call:
!   gg_call(VOID,
!           "__gg__inspect_format_1",
!           backward ? integer_one_node : integer_zero_node,
!           integers,
!           NULL_TREE);
    }
  
  static void
--- 11078,11101 ----
    build_array_of_treeplets(1, pcbl_index, pcbl_refers.data());
  
    // Do the actual call:
!   charmap_t *charmap = __gg__get_charmap(identifier_1.field->codeset.encoding);
!   if( charmap->stride() == 1 && !charmap->is_like_utf8() )
!     {
!     // The variables are ASCII or EBCDIC
!     gg_call(VOID,
!             "__gg__inspect_format_1_sbc",
!             backward ? integer_one_node : integer_zero_node,
!             integers,
!             NULL_TREE);
!     }
!   else
!     {
!     gg_call(VOID,
!             "__gg__inspect_format_1",
!             backward ? integer_one_node : integer_zero_node,
!             integers,
!             NULL_TREE);
!     }
    }
  
  static void
*************** parser_inspect_conv(cbl_refer_t input,
*** 10782,10787 ****
--- 11372,11431 ----
    }
  
  void
+ parser_intrinsic_find_string(cbl_field_t *tgt,
+                              const cbl_refer_t& haystack,
+                              const cbl_refer_t& needle,
+                              const cbl_refer_t *after,
+                              bool last,
+                              bool anycase)
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_END
+     }
+   gg_call(VOID,
+           "__gg__find_string",
+           gg_get_address_of( tgt->var_decl_node),
+           gg_get_address_of( haystack.field->var_decl_node),
+           refer_offset(      haystack),
+           refer_size_source( haystack),
+           gg_get_address_of( needle.field->var_decl_node),
+           refer_offset(      needle),
+           refer_size_source( needle),
+           after ? gg_get_address_of( after->field->var_decl_node)
+                 : null_pointer_node,
+           after ? refer_offset(*after) : size_t_zero_node,
+           after ? refer_size_source(*after) : size_t_zero_node,
+           last   ?integer_one_node:integer_zero_node,
+           anycase?integer_one_node:integer_zero_node,
+           NULL_TREE
+           );
+   }
+ 
+ void
+ parser_intrinsic_convert(cbl_field_t *tgt,
+                          const cbl_refer_t& input,
+                          convert_type_t src_fmt,
+                          unsigned int   dst_fmt )
+   {
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_END
+     }
+   gg_call(VOID,
+           "__gg__convert",
+           gg_get_address_of(tgt->var_decl_node),
+           gg_get_address_of(input.field->var_decl_node),
+           refer_offset(input),
+           refer_size_source(input),
+           build_int_cst_type(INT, src_fmt),
+           build_int_cst_type(INT, dst_fmt),
+           NULL_TREE);
+   }
+ 
+ void
  parser_module_name( cbl_field_t *tgt, module_type_t type )
    {
    SHOW_PARSE
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11059,11064 ****
--- 11703,11745 ----
        TRACE1_INDENT
        TRACE1_REFER("parameter: ", ref1, "")
        }
+ 
+     const charmap_t *charmap = __gg__get_charmap(ref1.field->codeset.encoding);
+     tree stride = gg_cast(LONG, integer_one_node);
+ 
+     switch(ref1.field->type)
+       {
+       case FldInvalid:
+       case FldGroup:
+       case FldAlphanumeric:
+       case FldNumericDisplay:
+       case FldNumericEdited:
+       case FldAlphaEdited:
+       case FldLiteralA:
+         stride = build_int_cst_type(LONG, charmap->stride());
+         break;
+ 
+       case FldNumericBinary:
+       case FldFloat:
+       case FldPacked:
+       case FldNumericBin5:
+       case FldLiteralN:
+       case FldClass:
+       case FldConditional:
+       case FldForward:
+       case FldIndex:
+       case FldSwitch:
+       case FldDisplay:
+       case FldPointer:
+         stride = gg_cast(LONG, integer_one_node);
+         break;
+       }
+ 
+     if( ref1.field->attr & hex_encoded_e )
+       {
+       stride = gg_cast(LONG, integer_one_node);
+       }
+ 
      size_t upper = ref1.field->occurs.bounds.upper
                                      ? ref1.field->occurs.bounds.upper : 1;
      if( ref1.nsubscript() )
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11074,11081 ****
                "__gg__int128_to_field",
                gg_get_address_of(tgt->var_decl_node),
                gg_cast(INT128,
!                       gg_multiply(refer_size_source(ref1),
!                                   depending_on)),
                integer_zero_node,
                build_int_cst_type(INT, truncation_e),
                null_pointer_node,
--- 11755,11763 ----
                "__gg__int128_to_field",
                gg_get_address_of(tgt->var_decl_node),
                gg_cast(INT128,
!                       gg_divide(gg_multiply(refer_size_source(ref1),
!                                             depending_on),
!                                 stride)),
                integer_zero_node,
                build_int_cst_type(INT, truncation_e),
                null_pointer_node,
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11089,11095 ****
                  "__gg__int128_to_field",
                  gg_get_address_of(tgt->var_decl_node),
                  gg_cast(INT128,
!                         refer_size_source(ref1)),
                  integer_zero_node,
                  build_int_cst_type(INT, truncation_e),
                  null_pointer_node,
--- 11771,11778 ----
                  "__gg__int128_to_field",
                  gg_get_address_of(tgt->var_decl_node),
                  gg_cast(INT128,
!                         gg_divide(refer_size_source(ref1),
!                                   stride)),
                  integer_zero_node,
                  build_int_cst_type(INT, truncation_e),
                  null_pointer_node,
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11101,11108 ****
                  "__gg__int128_to_field",
                  gg_get_address_of(tgt->var_decl_node),
                  gg_cast(INT128,
!                         gg_multiply(refer_size_source(ref1),
!                                     build_int_cst_type(SIZE_T, upper))),
                  integer_zero_node,
                  build_int_cst_type(INT, truncation_e),
                  null_pointer_node,
--- 11784,11792 ----
                  "__gg__int128_to_field",
                  gg_get_address_of(tgt->var_decl_node),
                  gg_cast(INT128,
!                         gg_divide(gg_multiply(refer_size_source(ref1),
!                                             build_int_cst_type(LONG, upper)),
!                                   stride)),
                  integer_zero_node,
                  build_int_cst_type(INT, truncation_e),
                  null_pointer_node,
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11110,11115 ****
--- 11794,11809 ----
          }
        }
      }
+   else if( strcmp(function_name, "__gg__char") == 0 )
+     {
+     gg_call(VOID,
+             function_name,
+             gg_get_address_of(tgt->var_decl_node),
+             gg_get_address_of(ref1.field->var_decl_node),
+             refer_offset(ref1),
+             refer_size_source(ref1),
+             NULL_TREE);
+     }
    else
      {
      TRACE1
*************** parser_intrinsic_call_1( cbl_field_t *tg
*** 11121,11126 ****
--- 11815,11825 ----
        TRACE1_INDENT
        TRACE1_REFER("parameter: ", ref1, "")
        }
+             gg_get_address_of(tgt->var_decl_node);
+             gg_get_address_of(ref1.field->var_decl_node);
+             refer_offset(ref1);
+             refer_size_source(ref1);
+ 
      gg_call(VOID,
              function_name,
              gg_get_address_of(tgt->var_decl_node),
*************** parser_intrinsic_call_2( cbl_field_t *tg
*** 11164,11176 ****
      TRACE1_REFER("parameter 2: ", ref2, "")
      }
    store_location_stuff(function_name);
    gg_call(VOID,
            function_name,
            gg_get_address_of(tgt->var_decl_node),
            gg_get_address_of(ref1.field->var_decl_node),
            refer_offset(ref1),
            refer_size_source(ref1),
!           ref2.field ? gg_get_address_of(ref2.field->var_decl_node) : null_pointer_node,
            refer_offset(ref2),
            refer_size_source(ref2),
            NULL_TREE);
--- 11863,11877 ----
      TRACE1_REFER("parameter 2: ", ref2, "")
      }
    store_location_stuff(function_name);
+ 
    gg_call(VOID,
            function_name,
            gg_get_address_of(tgt->var_decl_node),
            gg_get_address_of(ref1.field->var_decl_node),
            refer_offset(ref1),
            refer_size_source(ref1),
!           ref2.field ? gg_get_address_of(ref2.field->var_decl_node)
!                      : null_pointer_node,
            refer_offset(ref2),
            refer_size_source(ref2),
            NULL_TREE);
*************** create_and_call(size_t narg,
*** 12928,12938 ****
          {
          crv = by_content_e;
          gg_assign(location,
!                   gg_cast(UCHAR_P, build_string_literal(args[i].refer.field->data.capacity,
!                                        args[i].refer.field->data.initial)));
          gg_assign(length,
                    build_int_cst_type( SIZE_T,
!                                       args[i].refer.field->data.capacity));
          }
        else
          {
--- 13629,13639 ----
          {
          crv = by_content_e;
          gg_assign(location,
!                   gg_cast(UCHAR_P, build_string_literal(args[i].refer.field->data.capacity(),
!                                        args[i].refer.field->data.original())));
          gg_assign(length,
                    build_int_cst_type( SIZE_T,
!                                       args[i].refer.field->data.capacity()));
          }
        else
          {
*************** create_and_call(size_t narg,
*** 13048,13061 ****
              if( !(args[i].refer.field->attr & intermediate_e) )
                {
                // All temporaries are SIZE_T
!               if( args[i].refer.field->type == FldFloat
!                   && args[i].refer.field->data.capacity == 16 )
                  {
                  as_int128 = true;
                  }
                else if(   args[i].refer.field->type == FldNumericBin5
                        && args[i].refer.field->data.digits   == 0
!                       && args[i].refer.field->data.capacity == 16 )
                  {
                  as_int128 = true;
                  }
--- 13749,13761 ----
              if( !(args[i].refer.field->attr & intermediate_e) )
                {
                // All temporaries are SIZE_T
!               if( args[i].refer.field->type == FldFloat )
                  {
                  as_int128 = true;
                  }
                else if(   args[i].refer.field->type == FldNumericBin5
                        && args[i].refer.field->data.digits   == 0
!                       && args[i].refer.field->data.capacity() == 16 )
                  {
                  as_int128 = true;
                  }
*************** create_and_call(size_t narg,
*** 13155,13205 ****
  
    if( returned.field )
      {
-     // Because the CALL had a RETURNING clause, RETURN-CODE doesn't return a
-     // value.  So, we make sure it is zero
-     //// gg_assign(var_decl_return_code, build_int_cst_type(SHORT, 0));
- 
      // We expect the return value to be a 64-bit or 128-bit integer.  How
      // we treat that returned value depends on the target.
  
!     // Pick up that value:
      returned_value = gg_define_variable(returned_value_type);
      push_program_state();
      gg_assign(returned_value, gg_cast(returned_value_type, call_expr));
      pop_program_state();
  
      if( returned_value_type == CHAR_P )
        {
!       tree returned_location = gg_define_uchar_star();
!       tree returned_length   = gg_define_size_t();
!       // we were given a returned::field, so find its location and length:
!       gg_assign(returned_location,
!                 gg_add( member(returned.field->var_decl_node, "data"),
!                         refer_offset(returned)));
!       gg_assign(returned_length,
!                 gg_cast(TREE_TYPE(returned_length), refer_size_dest(returned)));
! 
!       // The returned value is a string of nbytes, which by specification
!       // has to be at least as long as the returned_length of the target:
!       IF( returned_value,
!           eq_op,
!           gg_cast(returned_value_type, null_pointer_node ) )
!         {
!         // Somebody was discourteous enough to return a NULL pointer
!         // We'll jam in spaces:
!         gg_memset(  returned_location,
!                     char_nodes[(unsigned char)internal_space],
!                     returned_length );
!         }
!       ELSE
!         {
!         // There is a valid pointer.  Do the assignment.
!         move_tree(returned.field,
!                   refer_offset(returned),
!                   returned_value,
!                   integer_one_node);
!         }
!       ENDIF
        TRACE1
          {
          TRACE1_HEADER
--- 13855,13884 ----
  
    if( returned.field )
      {
      // We expect the return value to be a 64-bit or 128-bit integer.  How
      // we treat that returned value depends on the target.
  
!     // Create a variable of the type expected from the called function
      returned_value = gg_define_variable(returned_value_type);
+ 
+     // Actually call the function, assigning the returned value to that
+     // variable:
      push_program_state();
      gg_assign(returned_value, gg_cast(returned_value_type, call_expr));
      pop_program_state();
  
+     // Now we decided what to do with the returned value, based on its type.
      if( returned_value_type == CHAR_P )
        {
!       // Let the library do the assignment of the 'char *returned_value' to the
!       // target 'refer returned'
!       gg_call(VOID,
!               "__gg__refer_from_psz",
!               gg_get_address_of(returned.field->var_decl_node),
!               refer_offset(returned),
!               refer_size_dest(returned),
!               returned_value,
!               NULL_TREE);
        TRACE1
          {
          TRACE1_HEADER
*************** create_and_call(size_t narg,
*** 13260,13265 ****
--- 13939,13946 ----
        }
      else
        {
+       // Getting here should be impossible; it means we didn't anticipate
+       // the type of the returned value:
        cbl_internal_error(
              "%s: What in the name of Nero are we doing here?",
              __func__);
*************** create_and_call(size_t narg,
*** 13267,13275 ****
      }
    else
      {
!     // Because no explicit returning value is expected, we just call it.  We
!     // expect COBOL routines to set RETURN-CODE when they think it necessary.
!     gg_append_statement(call_expr);
      }
  
    for( size_t i=0; i<narg; i++ )
--- 13948,13958 ----
      }
    else
      {
!     // Because no explicit returning value is expected, we call the designated
!     // function and assign the return value to our RETURN-CODE
!     push_program_state();
!     gg_assign(current_function->var_decl_return, gg_cast(SHORT, call_expr));
!     pop_program_state();
      }
  
    for( size_t i=0; i<narg; i++ )
*************** parser_call(   cbl_refer_t name,
*** 13386,13392 ****
      create_and_call(narg,
                      args,
                      NULL_TREE,
!                     name.field->data.initial,
                      returned_value_type,
                      returned,
                      not_except);
--- 14069,14075 ----
      create_and_call(narg,
                      args,
                      NULL_TREE,
!                     name.field->data.original(),
                      returned_value_type,
                      returned,
                      not_except);
*************** parser_call(   cbl_refer_t name,
*** 13413,13425 ****
          ne_op,
          gg_cast(TREE_TYPE(function_pointer), null_pointer_node) )
        {
!     create_and_call(narg,
!                     args,
!                     function_pointer,
!                     nullptr,
!                     returned_value_type,
!                     returned,
!                     not_except);
        }
      ELSE
        {
--- 14096,14108 ----
          ne_op,
          gg_cast(TREE_TYPE(function_pointer), null_pointer_node) )
        {
!       create_and_call(narg,
!                       args,
!                       function_pointer,
!                       nullptr,
!                       returned_value_type,
!                       returned,
!                       not_except);
        }
      ELSE
        {
*************** parser_call(   cbl_refer_t name,
*** 13446,13452 ****
                  NULL_TREE);
  
          gg_printf("WARNING: %s:%d \"CALL %s\" not found"
!                   " with no \"CALL ON EXCEPTION\" phrase\n",
                    gg_string_literal(current_filename.back().c_str()),
                    build_int_cst_type(INT, CURRENT_LINE_NUMBER),
                    mangled_name,
--- 14129,14136 ----
                  NULL_TREE);
  
          gg_printf("WARNING: %s:%d \"CALL %s\" not found"
!                   " with no \"CALL ON EXCEPTION\" phrase.\n"
!                   "(You might need -rdynamic or --export-dynamic for symbols in the executable.)\n",
                    gg_string_literal(current_filename.back().c_str()),
                    build_int_cst_type(INT, CURRENT_LINE_NUMBER),
                    mangled_name,
*************** parser_entry_activate( size_t iprog, con
*** 13476,13485 ****
    assert(iprog == symbol_elem_of(declarative)->program);
    }
  
- // Define ENTRY point with alternative LINKAGE
  void
! parser_entry( cbl_field_t */*name*/, size_t /*narg*/, cbl_ffi_arg_t */*args*/ )
    {
    }
  
  void
--- 14160,14240 ----
    assert(iprog == symbol_elem_of(declarative)->program);
    }
  
  void
! parser_entry( const cbl_field_t *name, size_t nusing, cbl_ffi_arg_t *args )
    {
+   // We are implementing the ENTRY statement, which creates an alternative
+   // entry point into the current program-id.  There is no actual way to do
+   // that literally.  So, we are going to create a separate routine that sets
+   // things up and then calls the current routine with the information it needs
+   // to transfer processing to the ENTRY point.
+ 
+   SHOW_PARSE
+     {
+     SHOW_PARSE_HEADER
+     SHOW_PARSE_TEXT(" ")
+     SHOW_PARSE_TEXT(name->data.original())
+     SHOW_PARSE_END
+     }
+ 
+   // Get the name of the program that contains the ENTRY statement.
+   char *name_of_parent = xstrdup(current_function->our_name);
+ 
+   // Get the name of the ENTRY point.
+   // cppcheck-suppress nullPointerRedundantCheck
+   char *psz = cobol_name_mangler(name->data.original());
+ 
+   // Create a goto/label pair.  The label will be set up here; the goto will
+   // be used when we re-enter the containing function:
+ 
+   tree entry_goto;
+   tree entry_label;
+ 
+   gg_create_goto_pair(&entry_goto,
+                       &entry_label);
+ 
+   size_t entry_index = current_function->entry_goto_expressions.size()+1;
+   current_function->entry_goto_expressions.push_back(entry_goto);
+ 
+   // Start creating the ENTRY function.
+   tree function_decl = gg_define_function( VOID,
+                                            psz,
+                                            psz,
+                                            NULL_TREE);
+   free(psz);
+ 
+   // Modify the default settings for this entry point
+     TREE_ADDRESSABLE(function_decl) = 0;
+     TREE_USED(function_decl) = 0;
+     TREE_NOTHROW(function_decl) = 0;
+     TREE_STATIC(function_decl) = 1;
+     DECL_EXTERNAL (function_decl) = 0;
+     TREE_PUBLIC (function_decl) = 1;
+     DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(function_decl) = 1;
+ 
+   // When the ENTRY function point is called, we process its "using"
+   // parameters:
+   establish_using(nusing, args);
+ 
+   // Put the entry_label into the global variable that will be picked up
+   // when the containing program-id is re-entered:
+   gg_assign(var_decl_entry_index, build_int_cst_type(SIZE_T, entry_index));
+ 
+   // Get the function address of the containing function.
+   tree gfa = gg_get_function_address(VOID, name_of_parent);
+   free(name_of_parent);
+ 
+   // Call the containing function
+   gg_append_statement(gg_call_expr_list(VOID,
+                                         gfa,
+                                         0,
+                                         NULL));
+   // We are done with the ENTRY function:
+   gg_finalize_function();
+ 
+   // Lay down the address of the label that matches var_decl_entry_index;
+   // the containing program-id will jump to this point.
+   gg_append_statement(entry_label);
    }
  
  void
*************** parser_program_hierarchy( const cbl_prog
*** 13800,13805 ****
--- 14555,14562 ----
      SHOW_PARSE_END
      }
  
+   RETURN_WHEN_HIJACKED;
+ 
    // This needs to be an island that doesn't execute in-line.  This is necessary
    // when there isn't a GOBACK or GOTO or STOP RUN at the point where a
    // [possibly implicit] PROGRAM END is encountered
*************** parser_program_hierarchy( const cbl_prog
*** 13978,13989 ****
          sprintf(ach, "..accessible_program_list_" HOST_SIZE_T_PRINT_DEC,
                  (fmt_size_t)caller);
          tree accessible_list_var_decl = gg_trans_unit_var_decl(ach);
!         gg_assign( accessible_list_var_decl, gg_get_address_of(the_names_table) );
  
          sprintf(ach, "..accessible_program_pointers_" HOST_SIZE_T_PRINT_DEC,
                  (fmt_size_t)caller);
          tree accessible_programs_decl = gg_trans_unit_var_decl(ach);
!         gg_assign( accessible_programs_decl, gg_get_address_of(the_constructed_table) );
  
          callers.insert(caller);
          }
--- 14735,14746 ----
          sprintf(ach, "..accessible_program_list_" HOST_SIZE_T_PRINT_DEC,
                  (fmt_size_t)caller);
          tree accessible_list_var_decl = gg_trans_unit_var_decl(ach);
!         gg_assign( accessible_list_var_decl, gg_pointer_to_array(the_names_table) );
  
          sprintf(ach, "..accessible_program_pointers_" HOST_SIZE_T_PRINT_DEC,
                  (fmt_size_t)caller);
          tree accessible_programs_decl = gg_trans_unit_var_decl(ach);
!         gg_assign( accessible_programs_decl, gg_pointer_to_array(the_constructed_table) );
  
          callers.insert(caller);
          }
*************** void
*** 14140,14145 ****
--- 14897,14903 ----
  parser_exception_file( cbl_field_t *tgt, cbl_file_t *file)
    {
    Analyze();
+   RETURN_IF_PARSE_ONLY;
    gg_call(VOID,
            "__gg__func_exception_file",
            gg_get_address_of(tgt->var_decl_node),
*************** parser_file_stash( struct cbl_file_t *fi
*** 14197,14244 ****
      }
    }
  
! static void
! hijack_for_development(const char *funcname)
    {
!   /*
  
!   To make sure that things like global symbols and whatnot get initialized, you
!   should probably create a source file that looks like this:
  
!         identification division.
!         program-id. prog.
!         procedure division.
!         call "dubner".
!         end program prog.
!         identification division.
!         program-id. dubner.
!         procedure division.
!         goback.
!         end program dubner.
  
!   The first program will cause all of the parser_enter_program() and
!   parser_division(procedure_div_e) stuff to be initialized.  The second program,
!   named "dubner", will be hijacked and bring you here.  */
  
    // Assume that funcname is lowercase with no hyphens
!   enter_program_common(funcname, funcname);
    parser_display_literal("You have been hijacked by a program named \"dubner\"");
!   gg_insert_into_assemblerf("%s HIJACKED DUBNER CODE START", ASM_COMMENT_START);
  
!   for(int i=0; i<10; i++)
      {
!     char ach[64];
!     sprintf(ach, "Hello, world - %d", i+1);
  
!     gg_call(VOID,
!             "puts",
!             build_string_literal(strlen(ach)+1, ach),
!             NULL_TREE);
      }
  
!   gg_insert_into_assemblerf("%s HIJACKED DUBNER CODE END", ASM_COMMENT_START);
!   gg_return(0);
    }
  
  static void
  conditional_abs(tree source, const cbl_field_t *field)
--- 14955,15126 ----
      }
    }
  
! #ifdef ENABLE_HIJACKING
! #pragma GCC diagnostic push
! #pragma GCC diagnostic ignored "-Wunused-function"
! static tree
! build_temporaryN(int N)
    {
!   //  Creates a typical FldNumericBin5 intermediate.
!   char achName[32];
!   sprintf(achName,"_funky_%d", N);
!   char *pszdata = xasprintf("_funky%d_data", N);
!   size_t bytes_to_allocate = 16;
!   gg_variable_scope_t vs_scope = vs_stack;
!   tree array_type = build_array_type_nelts(UCHAR, bytes_to_allocate);
!   tree data_decl_node = gg_define_variable(
!                       array_type,
!                       pszdata,
!                       vs_scope);
! ////  data_decl_node = null_pointer_node;
!   free(pszdata);
  
!   // This is the holy grail.  With the initializer set to gg_pointer_to_array,
!   // we get N-squared behavior.  Set to null_pointer_node, linear.
!   tree data_area = null_pointer_node;
!   if( data_decl_node != null_pointer_node )
!     {
!     data_area = gg_pointer_to_array(data_decl_node);
!     }
  
!   char *psz = xasprintf("_funky%d", N);
!   tree cobfield = gg_define_variable(cblc_field_type_node, psz, vs_stack);
!   free(psz);
  
!   tree data = null_pointer_node;        //  UCHAR_P, "data",
!   tree capacity = build_int_cst_type(SIZE_T, 16);     //  SIZE_T,  "capacity",
!   tree allocated = build_int_cst_type(SIZE_T, 16);    //  SIZE_T,  "allocated",
!   tree offset = build_int_cst_type(SIZE_T, 0);       //  SIZE_T,  "offset",
!   tree name = gg_string_literal(achName);         //  CHAR_P,  "name",
!   tree picture = gg_string_literal("");      //  CHAR_P,  "picture",
!   tree initial = null_pointer_node;      //  CHAR_P,  "initial",
!   tree parent = null_pointer_node;       //  CHAR_P,  "parent",
!   tree occurs_lower = build_int_cst_type(SIZE_T, 0); //  SIZE_T,  "occurs_lower",
!   tree occurs_upper = build_int_cst_type(SIZE_T, 0); //  SIZE_T,  "occurs_upper");
!   tree attr = build_int_cst_type(SIZE_T, intermediate_e);         //  SIZE_T,  "attr",
!   tree type = build_int_cst_type(SCHAR, FldNumericBin5);         //  SCHAR,   "type",
!   tree level = build_int_cst_type(SCHAR, 0);        //  SCHAR,   "level",
!   tree digits = build_int_cst_type(SCHAR, 0);       //  SCHAR,   "digits",
!   tree rdigits = build_int_cst_type(SCHAR, 0);      //  SCHAR,   "rdigits",
!   tree tencoding = build_int_cst_type(INT, 111);    //  INT,     "encoding",
!   tree alphabet = build_int_cst_type(INT, 0);    //  INT,     "alphabet",
  
+   gg_structure_type_constructor(
+       cobfield,
+       data ,        //  UCHAR_P, "data",
+       capacity,     //  SIZE_T,  "capacity",
+       allocated,    //  SIZE_T,  "allocated",
+       offset,       //  SIZE_T,  "offset",
+       name,         //  CHAR_P,  "name",
+       picture,      //  CHAR_P,  "picture",
+       initial,      //  CHAR_P,  "initial",
+       parent,       //  CHAR_P,  "parent",
+       occurs_lower, //  SIZE_T,  "occurs_lower",
+       occurs_upper, //  SIZE_T,  "occurs_upper");
+       attr,         //  SIZE_T,  "attr",
+       type,         //  SCHAR,   "type",
+       level,        //  SCHAR,   "level",
+       digits,       //  SCHAR,   "digits",
+       rdigits,      //  SCHAR,   "rdigits",
+       tencoding,    //  INT,     "encoding",
+       alphabet);    //  INT,     "alphabet",
+ 
+   if( data_decl_node != null_pointer_node )
+     {
+     gg_call(VOID,
+             "__gg__set_data_member",
+             gg_get_address_of(cobfield),
+             data_area,
+             NULL_TREE);
+     }
+ 
+   return cobfield;
+   }
+ #pragma GCC diagnostic pop
+ 
+ static void
+ hijack_for_development(const char *funcname)
+   {
+   static const int N = 10000;
+   /* This routine is designed to allow the creation of a program-id program
+      without requiring the parser to supply parser_xxx calls.
+ 
+      When your source code is a "program-id. dubner.", this routine gets
+      generated instead of the one in the source.
+      */
+ 
+   hijacked = true;
+   funcname = "main";
    // Assume that funcname is lowercase with no hyphens
!   gg_define_function(COBOL_FUNCTION_RETURN_TYPE,
!                      funcname,
!                      funcname,
!                      NULL_TREE);
! 
    parser_display_literal("You have been hijacked by a program named \"dubner\"");
!   gg_insert_into_assemblerf("%s HIJACKED CODE START", ASM_COMMENT_START);
  
! 
!   tree xxx = gg_define_int("xxx");
!   tree yyy = gg_define_int("yyy");
!   tree zzz = gg_define_int("zzz");
! 
!   fprintf(stderr, "N is %d\n", N);
!   for(int i=0; i<N; i++)
      {
!     IF( gg_bitwise_and(xxx, integer_one_node), ne_op, integer_zero_node )
!       {
!       gg_assign(yyy, xxx);
!       }
!     ELSE
!       {
!       gg_assign(zzz, xxx);
!       }
!     ENDIF
!     }
  
!   gg_insert_into_assemblerf("%s HIJACKED CODE END", ASM_COMMENT_START);
!   }
! 
! static void
! hijacker()
!   {
!   /* The code here is activated when the program-id is "hijack".  It's not
!      really a hijacking; all of the code in the "hijack" program gets laid
!      down.  The code here is injected just prior to the parser_exit() stuff
!      in the COBOL source code. */
! 
!   parser_display_literal("You have been hijacked by a program named \"hijack\"");
!   gg_insert_into_assemblerf("%s HIJACKED CODE START", ASM_COMMENT_START);
! 
! #if 0
! 
!   cbl_field_t *faaa = register_find("aaa");
!   cbl_field_t *fbbb = register_find("bbb");
!   cbl_field_t *fddd = register_find("ddd");
!   cbl_field_t *fxxx = register_find("xxx");
! 
!   cbl_refer_t aaa(faaa);
!   cbl_refer_t bbb(fbbb);
!   cbl_refer_t ddd(fddd);
! 
!   fxxx->var_decl_node = build_temporaryN(0);
! 
!   static const int N = 1000;
!   fprintf(stderr, "N is %d\n", N);
!   for(int i=0; i<N; i++)
!     {
!     parser_op(ddd,
!               aaa,
!               '+',
!               bbb,
!               NULL);
      }
+ #endif
  
!   gg_insert_into_assemblerf("%s HIJACKED CODE END", ASM_COMMENT_START);
    }
+ #endif
  
  static void
  conditional_abs(tree source, const cbl_field_t *field)
*************** mh_identical(const cbl_refer_t &destref,
*** 14259,14269 ****
    // for a simple byte-for-byte copy of the data areas:
    bool moved = false;
    if(     destref.field->type          == sourceref.field->type
!       &&  destref.field->data.capacity == sourceref.field->data.capacity
        &&  destref.field->data.digits   == sourceref.field->data.digits
        &&  destref.field->data.rdigits  == sourceref.field->data.rdigits
        &&       (destref.field->attr   & (signable_e|separate_e|leading_e))
              == (sourceref.field->attr & (signable_e|separate_e|leading_e))
        &&  !destref.field->occurs.depending_on
        &&  !sourceref.field->occurs.depending_on
        &&  !destref.refmod.from
--- 15141,15152 ----
    // for a simple byte-for-byte copy of the data areas:
    bool moved = false;
    if(     destref.field->type          == sourceref.field->type
!       &&  destref.field->data.capacity() == sourceref.field->data.capacity()
        &&  destref.field->data.digits   == sourceref.field->data.digits
        &&  destref.field->data.rdigits  == sourceref.field->data.rdigits
        &&       (destref.field->attr   & (signable_e|separate_e|leading_e))
              == (sourceref.field->attr & (signable_e|separate_e|leading_e))
+       &&  destref.field->codeset.encoding == sourceref.field->codeset.encoding
        &&  !destref.field->occurs.depending_on
        &&  !sourceref.field->occurs.depending_on
        &&  !destref.refmod.from
*************** mh_identical(const cbl_refer_t &destref,
*** 14288,14294 ****
                         refer_offset(destref)),
                  gg_add(member(sourceref.field->var_decl_node, "data"),
                         tsource.offset),
!                 build_int_cst_type(SIZE_T, sourceref.field->data.capacity));
        moved = true;
        }
      }
--- 15171,15177 ----
                         refer_offset(destref)),
                  gg_add(member(sourceref.field->var_decl_node, "data"),
                         tsource.offset),
!                 build_int_cst_type(SIZE_T, sourceref.field->data.capacity()));
        moved = true;
        }
      }
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14317,14335 ****
            SHOW_PARSE_TEXT("mh_source_is_literalN: __gg__psz_to_alpha_move")
            }
  
!         static  char *buffer = NULL;
!         static size_t buffer_size = 0;
!         raw_to_internal(&buffer,
!                         &buffer_size,
!                         sourceref.field->data.initial,
!                         strlen(sourceref.field->data.initial));
          gg_call(VOID,
                  "__gg__psz_to_alpha_move",
                  gg_get_address_of(destref.field->var_decl_node),
                  refer_offset(destref),
                  refer_size_dest(destref),
!                 gg_string_literal(buffer),
!                 build_int_cst_type(SIZE_T, strlen(sourceref.field->data.initial)),
                  NULL_TREE);
          moved = true;
          break;
--- 15200,15224 ----
            SHOW_PARSE_TEXT("mh_source_is_literalN: __gg__psz_to_alpha_move")
            }
  
!         // We need the data sent to __gg__psz_to_alpha_move to be in the
!         // encoding of the destination.  In accordance with the rules of
!         // cbl_field_t::internalize, the FldLiteralN is in source-code
!         // encoding, so we have to convert.
! 
!         size_t charsout;
!         const char *converted = __gg__iconverter(
!                                          DEFAULT_SOURCE_ENCODING,
!                                          destref.field->codeset.encoding,
!                                          sourceref.field->data.original(),
!                                          strlen(sourceref.field->data.original()),
!                                          &charsout);
          gg_call(VOID,
                  "__gg__psz_to_alpha_move",
                  gg_get_address_of(destref.field->var_decl_node),
                  refer_offset(destref),
                  refer_size_dest(destref),
!                 build_string_literal(charsout, converted),
!                 build_int_cst_type(SIZE_T, charsout),
                  NULL_TREE);
          moved = true;
          break;
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14345,14351 ****
            SHOW_PARSE_TEXT("mh_source_is_literalN: pointer/index")
            }
  
!         if( sourceref.field->data.capacity < 8 )
            {
            // There are too few bytes in sourceref
            if( sourceref.field->attr & signable_e )
--- 15234,15240 ----
            SHOW_PARSE_TEXT("mh_source_is_literalN: pointer/index")
            }
  
!         if( sourceref.field->data.capacity() < 8 )
            {
            // There are too few bytes in sourceref
            if( sourceref.field->attr & signable_e )
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14356,14362 ****
                        gg_get_indirect_reference(gg_add(member(sourceref.field->var_decl_node,
                                                                "data"),
                                                  build_int_cst_type(SIZE_T,
!                                                                    sourceref.field->data.capacity-1)),
                        integer_zero_node));
              IF( gg_bitwise_and(highbyte, build_int_cst_type(UCHAR, 0x80)),
                  eq_op,
--- 15245,15251 ----
                        gg_get_indirect_reference(gg_add(member(sourceref.field->var_decl_node,
                                                                "data"),
                                                  build_int_cst_type(SIZE_T,
!                                                                    sourceref.field->data.capacity()-1)),
                        integer_zero_node));
              IF( gg_bitwise_and(highbyte, build_int_cst_type(UCHAR, 0x80)),
                  eq_op,
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14390,14396 ****
          gg_memcpy(gg_add(member(destref.field->var_decl_node, "data"),
                                 refer_offset(destref)),
                    gg_get_address_of(literalN_value),
!                   build_int_cst_type(SIZE_T, sourceref.field->data.capacity));
          moved = true;
  
          break;
--- 15279,15285 ----
          gg_memcpy(gg_add(member(destref.field->var_decl_node, "data"),
                                 refer_offset(destref)),
                    gg_get_address_of(literalN_value),
!                   build_int_cst_type(SIZE_T, sourceref.field->data.capacity()));
          moved = true;
  
          break;
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14410,14420 ****
          // For now, we are ignoring intermediates:
          assert( !(destref.field->attr & intermediate_e) );
  
!         int bytes_needed = std::max(destref.field->data.capacity,
!                                     sourceref.field->data.capacity);
          tree calc_type = tree_type_from_size(bytes_needed,
                                              sourceref.field->attr & signable_e);
!         tree dest_type = tree_type_from_size( destref.field->data.capacity,
                                                destref.field->attr & signable_e);
  
          // Pick up the source data.
--- 15299,15309 ----
          // For now, we are ignoring intermediates:
          assert( !(destref.field->attr & intermediate_e) );
  
!         int bytes_needed = std::max(destref.field->data.capacity(),
!                                     sourceref.field->data.capacity());
          tree calc_type = tree_type_from_size(bytes_needed,
                                              sourceref.field->attr & signable_e);
!         tree dest_type = tree_type_from_size( destref.field->data.capacity(),
                                                destref.field->attr & signable_e);
  
          // Pick up the source data.
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14506,14520 ****
            SHOW_PARSE_INDENT
            SHOW_PARSE_TEXT(" FldAlphaEdited")
            }
          gg_call(VOID,
!                 "__gg__string_to_alpha_edited_ascii",
                  gg_add( member(destref.field->var_decl_node, "data"),
                          refer_offset(destref) ),
!                 gg_string_literal(sourceref.field->data.initial),
!                 build_int_cst_type(INT, strlen(sourceref.field->data.initial)),
                  gg_string_literal(destref.field->data.picture),
                  NULL_TREE);
          moved = true;
          break;
          }
  
--- 15395,15427 ----
            SHOW_PARSE_INDENT
            SHOW_PARSE_TEXT(" FldAlphaEdited")
            }
+ 
+         // __gg__string_to_alpha_edited expects the source string to be in
+         // the same encoding as the target.  The rule in internalize is that
+         // a FldLiteralN::data.initial is left in source-code space, so it
+         // needs to be converted to the destination encoding.
+         size_t charsout;
+         const char *converted_ = __gg__iconverter(
+                                             DEFAULT_SOURCE_ENCODING,
+                                             destref.field->codeset.encoding,
+                                             sourceref.field->data.original(),
+                                             strlen(sourceref.field->data.original()),
+                                             &charsout);
+         // Copy converted, because __gg__string_to_alpha_edited might have its
+         // own reasons to use charmap_t, which could mess up the static buffer
+         // used by __gg__iconverter:
+         char *converted = xstrdup(converted_);
          gg_call(VOID,
!                 "__gg__string_to_alpha_edited",
                  gg_add( member(destref.field->var_decl_node, "data"),
                          refer_offset(destref) ),
!                 build_int_cst_type(INT, destref.field->codeset.encoding),
!                 gg_string_literal(converted),
!                 build_int_cst_type(INT, strlen(converted)),
                  gg_string_literal(destref.field->data.picture),
                  NULL_TREE);
          moved = true;
+         free(converted);
          break;
          }
  
*************** mh_source_is_literalN(cbl_refer_t &destr
*** 14522,14534 ****
          {
          tree tdest = gg_add(member(destref.field->var_decl_node, "data"),
                              refer_offset(destref) );
!         switch( destref.field->data.capacity )
            {
-           // For some reason, using FLOAT128 in the build_pointer_type causes
-           // a SEGFAULT.  So, we'll use other types with equivalent sizes. I
-           // am speculating that the use of floating-point types causes the -O0
-           // compilation to move things using the mmx registers.  So, I am using
-           // intxx types in the hope that they are simpler.
            case 4:
              {
              // The following generated code is the exact equivalent
--- 15429,15436 ----
          {
          tree tdest = gg_add(member(destref.field->var_decl_node, "data"),
                              refer_offset(destref) );
!         switch( destref.field->data.capacity() )
            {
            case 4:
              {
              // The following generated code is the exact equivalent
*************** static tree
*** 14589,14595 ****
  float_type_of(const cbl_field_t *field)
    {
    gcc_assert(field->type == FldFloat);
!   return float_type_of(field->data.capacity);
    }
  
  static tree
--- 15491,15497 ----
  float_type_of(const cbl_field_t *field)
    {
    gcc_assert(field->type == FldFloat);
!   return float_type_of(field->data.capacity());
    }
  
  static tree
*************** mh_dest_is_float( cbl_refer_t &destref,
*** 14619,14625 ****
        case FldNumericEdited:
        case FldPacked:
          {
!         switch( destref.field->data.capacity )
            {
            case 4:
              gg_call(VOID,
--- 15521,15527 ----
        case FldNumericEdited:
        case FldPacked:
          {
!         switch( destref.field->data.capacity() )
            {
            case 4:
              gg_call(VOID,
*************** mh_dest_is_float( cbl_refer_t &destref,
*** 14683,14689 ****
            // If the destination is bigger than the source, then we can
            // do an untested move:
  
!           if( destref.field->data.capacity >= sourceref.field->data.capacity )
              {
              tree dtype = float_type_of(&destref);
              tree stype = float_type_of(&sourceref);
--- 15585,15591 ----
            // If the destination is bigger than the source, then we can
            // do an untested move:
  
!           if( destref.field->data.capacity() >= sourceref.field->data.capacity() )
              {
              tree dtype = float_type_of(&destref);
              tree stype = float_type_of(&sourceref);
*************** mh_dest_is_float( cbl_refer_t &destref,
*** 14700,14706 ****
            else
              {
              // There are only three possible moves left:
!             if(destref.field->data.capacity == 8 )
                {
                if( size_error )
                  {
--- 15602,15608 ----
            else
              {
              // There are only three possible moves left:
!             if(destref.field->data.capacity() == 8 )
                {
                if( size_error )
                  {
*************** mh_dest_is_float( cbl_refer_t &destref,
*** 14727,14733 ****
              else
                {
                // The destination has to be float32
!               if( sourceref.field->data.capacity == 8 )
                  {
                  if( size_error )
                    {
--- 15629,15635 ----
              else
                {
                // The destination has to be float32
!               if( sourceref.field->data.capacity() == 8 )
                  {
                  if( size_error )
                    {
*************** mh_dest_is_float( cbl_refer_t &destref,
*** 14787,14792 ****
--- 15689,15695 ----
  
        case FldLiteralA:
        case FldAlphanumeric:
+       case FldGroup:
          {
          // Alphanumeric to float is inherently slow.  Send it off to the library
          break;
*************** picky_memset(tree &dest_p, unsigned char
*** 14825,14832 ****
    }
  
  static void
! picky_memcpy(tree &dest_p, const tree &source_p, size_t length)
    {
    if( length )
      {
      tree dest_ep = gg_define_variable(TREE_TYPE(dest_p));
--- 15728,15738 ----
    }
  
  static void
! picky_memcpy(tree &dest_p, const tree &source_p, size_t length, tree zero)
    {
+   // This is the routine that copies digits for NumericDisplay.  In addition
+   // to just moving digits from source to destination, it has to handle
+   // clearing up embedded sign information.
    if( length )
      {
      tree dest_ep = gg_define_variable(TREE_TYPE(dest_p));
*************** picky_memcpy(tree &dest_p, const tree &s
*** 14835,14841 ****
                        build_int_cst_type(SIZE_T, length)));
      WHILE( dest_p, lt_op, dest_ep )
        {
!       gg_assign(gg_indirect(dest_p), gg_indirect(source_p));
        gg_increment(dest_p);
        gg_increment(source_p);
        }
--- 15741,15750 ----
                        build_int_cst_type(SIZE_T, length)));
      WHILE( dest_p, lt_op, dest_ep )
        {
!       gg_assign(gg_indirect(dest_p),
!                 gg_bitwise_or(zero,
!                       gg_bitwise_and(gg_indirect(source_p),
!                              build_int_cst_type(UCHAR, 0x0F))));
        gg_increment(dest_p);
        gg_increment(source_p);
        }
*************** static bool
*** 14847,15045 ****
  mh_numeric_display( const cbl_refer_t &destref,
                      const cbl_refer_t &sourceref,
                      const TREEPLET    &tsource,
!                           tree size_error)
    {
    bool moved = false;
  
    if(     destref.field->type   == FldNumericDisplay
        &&  sourceref.field->type == FldNumericDisplay
        &&  !(destref.field->attr   & scaled_e)
!       &&  !(sourceref.field->attr & scaled_e) )
      {
      Analyze();
!     // I believe that there are 225 pathways through the following code.  That's
!     // because there are five different valid combination of signable_e,
      // separate_e, and leading_e.  There are three possibilities for
!     // sender/receiver rdigits (too many, too few, and just right), and the same
!     // for ldigits.  5 * 5 * 3 * 3 = 225.
  
      // Fasten your seat belts.
  
!     // In order to simplify processing of a signable internal sender, we are
!     // going to pick up the sign byte and temporarily turn off the sign bit in
!     // the source data.  At the end, we will restore that value.  This
!     // reflexively makes me a bit nervous (it isn't, for example, thread-safe),
!     // but it makes life easier.
  
!     static tree source_sign_loc  = gg_define_variable(UCHAR_P, "..mhnd_sign_loc", vs_file_static);
!     static tree source_sign_byte = gg_define_variable(UCHAR,   "..mhnd_sign_byte", vs_file_static);
!     static tree dest_p    = gg_define_variable(UCHAR_P, "..mhnd_dest", vs_file_static); // The destination data pointer
!     static tree source_p  = gg_define_variable(UCHAR_P, "..mhnd_source", vs_file_static); // The source data pointer
!     static tree source_ep = gg_define_variable(UCHAR_P, "..mhnd_source_e", vs_file_static); // When we need an end pointer
  
!     gg_assign(dest_p,   qualified_data_location(destref));
      gg_assign(source_p, gg_add(member(sourceref.field, "data"),
                                 tsource.offset));
  
!     if( sourceref.field->attr & signable_e )
        {
!       // The source is signable
  
!       if( !(sourceref.field->attr & leading_e) )
          {
!         // The sign location is trailing.  Whether separate or not, the location
!         // is the final byte of the data:
!         gg_assign(source_sign_loc, gg_add(member( sourceref.field->var_decl_node, "data"),
!                                           tsource.offset)),
!         gg_assign(source_sign_loc,
!                   gg_add(source_sign_loc,
!                          build_int_cst_type(SIZE_T,
!                                             sourceref.field->data.capacity-1)));
!         if( (sourceref.field->attr & separate_e) )
!           {
!           // We have trailing separate
!           }
!         else
!           {
!           // We have trailing internal
!           }
          }
!       else
          {
!         // The source sign location is in the leading position.
!         gg_assign(source_sign_loc,
!                   gg_add(member(sourceref.field->var_decl_node, "data"),
!                          tsource.offset));
!         if( (sourceref.field->attr & separate_e) )
!           {
!           // We have leading separate, so the first actual digit is at
!           // source_p+1.
!           gg_increment(source_p);
!           }
!         else
!           {
!           // We have leading internal
!           }
          }
!       // Pick up the byte that contains the sign data, whether internal or
!       // external:
!       gg_assign(source_sign_byte, gg_indirect(source_sign_loc));
! 
!       if( !(sourceref.field->attr & separate_e) )
          {
!         // This is signable and internal, so we want to turn off the sign bit
!         // in the original source data
!         if( internal_codeset_is_ebcdic() )
            {
!           gg_assign(gg_indirect(source_sign_loc),
!                     gg_bitwise_or(source_sign_byte,
!                                   build_int_cst_type( UCHAR,
!                                                       NUMERIC_DISPLAY_SIGN_BIT)));
            }
!         else
            {
!           gg_assign(gg_indirect(source_sign_loc),
!                     gg_bitwise_and( source_sign_byte,
!                                     build_int_cst_type( UCHAR,
!                                                        ~NUMERIC_DISPLAY_SIGN_BIT)));
            }
          }
!       }
!     else
!       {
!       // The number is unsigned, so do nothing.
        }
  
!     // Let the shenanigans begin.
  
!     // We are now ready to output the very first byte.
  
!     // The first thing to do is see if we need to output a leading sign
!     // character
!     if(    (destref.field->attr & signable_e)
!         && (destref.field->attr & leading_e)
!         && (destref.field->attr & separate_e) )
        {
!       // The output is signed, separate, and leading, so the first character
!       // needs to be either '+' or '-'
!       if( (sourceref.field->attr & separate_e) )
!         {
!         // The source is signable/separate
!         // Oooh.  Shiny.  We already have that character.
!         gg_assign(gg_indirect(dest_p), source_sign_byte);
!         }
!       else
!         {
!         // The source is internal.  Not that up above we set source_sign_byte
!         // even for source values that aren't signable
!         if( internal_codeset_is_ebcdic() )
!           {
!           // We are working in EBCDIC
!           if( sourceref.field->attr & signable_e )
!             {
!             IF( gg_bitwise_and( source_sign_byte,
!                                 build_int_cst_type( UCHAR,
!                                                     NUMERIC_DISPLAY_SIGN_BIT)),
!                 eq_op,
!                 build_int_cst_type( UCHAR, 0) )
!               {
!               // The source was negative
!               gg_assign(gg_indirect(dest_p),
!                         build_int_cst_type( UCHAR, EBCDIC_MINUS));
! 
!               }
!             ELSE
!               {
!               // The source was positive
!               gg_assign(gg_indirect(dest_p),
!                         build_int_cst_type( UCHAR, EBCDIC_PLUS));
!               }
!               ENDIF
!             }
!           else
!             {
!             // The source is not signable, so the result is positive
!             gg_assign(gg_indirect(dest_p),
!                       build_int_cst_type( UCHAR, EBCDIC_PLUS));
!             }
!           }
!         else
!           {
!           // We are working in ASCII
!           if( sourceref.field->attr & signable_e )
!             {
!             IF( gg_bitwise_and( source_sign_byte,
!                                 build_int_cst_type( UCHAR,
!                                                     NUMERIC_DISPLAY_SIGN_BIT)),
!                 ne_op,
!                 build_int_cst_type( UCHAR, 0) )
!               {
!               // The source was negative
!               gg_assign(gg_indirect(dest_p),
!                         build_int_cst_type( UCHAR, '-'));
! 
!               }
!             ELSE
!               {
!               // The source was positive
!               gg_assign(gg_indirect(dest_p),
!                         build_int_cst_type( UCHAR, '+'));
!               }
!               ENDIF
!             }
!           else
!             {
!             // The source is not signable, so the result is positive
!             gg_assign(gg_indirect(dest_p),
!                       build_int_cst_type( UCHAR, '+'));
!             }
!           }
!         }
!       gg_increment(dest_p);
        }
  
!     // We have the leading '+' or '-', assuming one is needed.  We can
!     // now start outputting the digits to the left of the decimal place
  
      int dest_ldigits   = (int)destref.field->data.digits
                                - destref.field->data.rdigits;
--- 15756,15987 ----
  mh_numeric_display( const cbl_refer_t &destref,
                      const cbl_refer_t &sourceref,
                      const TREEPLET    &tsource,
!                           tree         size_error)
    {
    bool moved = false;
  
+   charmap_t *charmap_source =
+                        __gg__get_charmap(sourceref.field->codeset.encoding);
    if(     destref.field->type   == FldNumericDisplay
        &&  sourceref.field->type == FldNumericDisplay
        &&  !(destref.field->attr   & scaled_e)
!       &&  !(sourceref.field->attr & scaled_e)
!       &&  charmap_source->stride() == 1
!       &&  sourceref.field->codeset.encoding == destref.field->codeset.encoding
!       )
      {
+     // We can do simple moves of single-byte same-encoding numeric display.
+     // More complex ones get sent to __gg__move
+ 
      Analyze();
!     // I believe that there are 450 pathways through the following code.
!     // That's because there are five different valid combination of signable_e,
      // separate_e, and leading_e.  There are three possibilities for
!     // sender/receiver rdigits (too many, too few, and just right), and the
!     // same for ldigits.  5 * 5 * 3 * 3 * 2 = 450.
  
      // Fasten your seat belts.
  
!     // This routine is complicated by the fact that although I had several
!     // false starts of putting this into libgcobol, I keep coming back to the
!     // fact that assignment of zoned values is common.  And, so, there are all
!     // kinds of things that are known at compile time that would turn into
!     // execution-time decisions if I moved them to the library.  So, complex
!     // or not, I am doing all this code here at compile time because it will
!     // minimize the code at execution time.
  
!     // One thing to keep in mind is the problem caused by a source value being
!     // internally signed.  That turns an ASCII "123" into "12t", and we
!     // very probably don't want that "t" to find its way into the destination
!     // value.  The internal sign characteristic of ASCII is that the high
!     // nybble of the sign location is 0x30 or 0x70.  For EBCDIC, the high
!     // nybble is 0xC0 for positive values, and 0xD0 for negative; all other
!     // digits are 0x70.
  
!     charmap_t *charmap_dest   =
!                        __gg__get_charmap(  destref.field->codeset.encoding);
! 
!     static tree source_sign_loc  = gg_define_variable(UCHAR_P,
!                                                       "..mhnd_sign_loc",
!                                                       vs_file_static);
!     static tree dest_sign_loc = gg_define_variable(UCHAR_P,
!                                                       "..mhnd_dest_sign_loc",
!                                                       vs_file_static);
!     static tree source_sign      = gg_define_variable(INT,
!                                                       "..mhnd_sign",
!                                                       vs_file_static);
!     // The destination data pointer
!     static tree dest_p    = gg_define_variable( UCHAR_P,
!                                                 "..mhnd_dest",
!                                                 vs_file_static);
!     // The source data pointer
!     static tree source_p  = gg_define_variable( UCHAR_P,
!                                                 "..mhnd_source",
!                                                 vs_file_static);
!     // When we need an end pointer
!     static tree source_ep = gg_define_variable( UCHAR_P,
!                                                 "..mhnd_source_e",
!                                                 vs_file_static);
! 
!     bool source_is_signable = sourceref.field->attr & signable_e;
!     bool source_is_leading  = sourceref.field->attr & leading_e;
!     bool source_is_separate = sourceref.field->attr & separate_e;
! 
!     bool dest_is_signable = destref.field->attr & signable_e;
!     bool dest_is_leading  = destref.field->attr & leading_e;
!     bool dest_is_separate = destref.field->attr & separate_e;
! 
!     int switch_source =   (source_is_signable ? 4 : 0 )
!                         + (source_is_leading  ? 2 : 0 )
!                         + (source_is_separate ? 1 : 0 ) ;
! 
!     int switch_dest   =   (dest_is_signable ? 4 : 0 )
!                         + (dest_is_leading  ? 2 : 0 )
!                         + (dest_is_separate ? 1 : 0 ) ;
! 
!     // Calculate the start of the source data:
      gg_assign(source_p, gg_add(member(sourceref.field, "data"),
                                 tsource.offset));
  
!     // Calculate the start of the destination data
!     gg_assign(dest_p,   qualified_data_location(destref));
! 
!     // Figure out exactly where the sign is, if any, and where the input
!     // digits are.
! 
!     switch( switch_source )
        {
!       case 0:
!       case 1:
!       case 2:
!       case 3:
!         // not signable
!         gg_assign(source_sign, integer_zero_node);
!         break;
!       case 4:
!         //     signable, not leading, not separate
!         // Calculate location of the sign byte; it's the last byte of the data
!         gg_assign(source_sign_loc,
!                   gg_add(source_p,
!                         build_int_cst_type(SIZE_T,
!                                           sourceref.field->data.capacity()-1)));
!         break;
!       case 5:
!         //     signable, not leading,     separate
!         // Calculate location of the sign byte; it's the last byte of the data
!         gg_assign(source_sign_loc,
!                   gg_add(source_p,
!                         build_int_cst_type(SIZE_T,
!                                           sourceref.field->data.capacity()-1)));
!         break;
!       case 6:
!         //     signable,     leading, not separate
!         // Calculate location of the sign byte; it's the first byte of the data
!         gg_assign(source_sign_loc, source_p);
!         break;
!       case 7:
!         //     signable,     leading,     separate
!         // Calculate location of the sign byte; it's the first byte of the data
!         gg_assign(source_sign_loc, source_p);
!         gg_increment(source_p);
!         break;
!       }
!     // At this point, the source sign is at source_sign_loc, and the digits
!     // start at source_p
  
!     // Let's learn what the source sign is
!     if( source_is_signable && source_is_separate )
!       {
!       IF( gg_indirect(source_sign_loc),
!           eq_op,
!           build_int_cst_type(UCHAR,
!                              charmap_source->mapped_character(ascii_minus)) )
          {
!         // Flag the source as negative
!         gg_assign(source_sign, integer_one_node);
          }
!       ELSE
          {
!         // Flag the source as positive
!         gg_assign(source_sign, integer_zero_node);
          }
!       ENDIF
!       }
!     if( source_is_signable && !source_is_separate )
!       {
!       // We need to look for an indication that we are internally signed. We
!       // can tell that by checking to see if the digit is between '0' and '9'
!       IF( gg_indirect(source_sign_loc),
!           lt_op,
!           build_int_cst_type(UCHAR,
!                              charmap_source->mapped_character(ascii_0)) )
          {
!         // The sign byte is less than '0', so we are negative
!         gg_assign(source_sign, integer_one_node);
!         }
!       ELSE
!         {
!         IF( gg_indirect(source_sign_loc),
!             gt_op,
!             build_int_cst_type(UCHAR,
!                                charmap_source->mapped_character(ascii_9)) )
            {
!           // The sign byte is greater than '9', so we are negative
!           gg_assign(source_sign, integer_one_node);
            }
!         ELSE
            {
!           // The sign byte is betwixt '0' and '9', so we are positive
!           gg_assign(source_sign, integer_zero_node);
            }
+         ENDIF
          }
!       ENDIF
        }
  
!     // We now know the source's sign, and where its digits are.
  
!     // The first order of business is to move the digits into place.  To do
!     // that, we need to know where things go in the destination:
  
!     switch( switch_dest )
        {
!       case 0:
!       case 1:
!       case 2:
!       case 3:
!         // not signable
!         break;
!       case 4:
!         //     signable, not leading, not separate
!         // Calculate location of the sign byte; it's the last byte of the data
!         gg_assign(dest_sign_loc,
!                   gg_add(dest_p,
!                         build_int_cst_type(SIZE_T,
!                                           destref.field->data.capacity()-1)));
!         break;
!       case 5:
!         //     signable, not leading,     separate
!         // Calculate location of the sign byte; it's the last byte of the data
!         gg_assign(dest_sign_loc,
!                   gg_add(dest_p,
!                         build_int_cst_type(SIZE_T,
!                                           destref.field->data.capacity()-1)));
!         break;
!       case 6:
!         //     signable,     leading, not separate
!         // Calculate location of the sign byte; it's the first byte of the data
!         gg_assign(dest_sign_loc, dest_p);
!         break;
!       case 7:
!         //     signable,     leading,     separate
!         // Calculate location of the sign byte; it's the first byte of the data
!         gg_assign(dest_sign_loc, dest_p);
!         gg_increment(dest_p);
!         break;
        }
  
!     // We can now start copying the digits to the left of the decimal place
  
      int dest_ldigits   = (int)destref.field->data.digits
                                - destref.field->data.rdigits;
*************** mh_numeric_display( const cbl_refer_t &d
*** 15053,15062 ****
        // The destination has more ldigits than the source, and needs some
        // leading zeroes:
        picky_memset( dest_p,
!                     internal_codeset_is_ebcdic() ?
!                                 EBCDIC_ZERO : '0' ,
                      dest_ldigits - source_ldigits);
!       // With the leading zeros set, copy over the ldigits:
        digit_count = source_ldigits;
        }
      else if( dest_ldigits == source_ldigits )
--- 15995,16003 ----
        // The destination has more ldigits than the source, and needs some
        // leading zeroes:
        picky_memset( dest_p,
!                     charmap_dest->mapped_character(ascii_0) ,
                      dest_ldigits - source_ldigits);
!       // With the leading zeros set, set the number of ldigits to copy:
        digit_count = source_ldigits;
        }
      else if( dest_ldigits == source_ldigits )
*************** mh_numeric_display( const cbl_refer_t &d
*** 15064,15070 ****
        // This is the Goldilocks zone.  Everything is *just* right.
        digit_count = dest_ldigits;
        }
!     else
        {
        // The destination is smaller than the source.  We have to throw away the
        // the high-order digits of the source.  If any of them are non-zero, then
--- 16005,16011 ----
        // This is the Goldilocks zone.  Everything is *just* right.
        digit_count = dest_ldigits;
        }
!     else // dest_ldigits < source_ldigits
        {
        // The destination is smaller than the source.  We have to throw away the
        // the high-order digits of the source.  If any of them are non-zero, then
*************** mh_numeric_display( const cbl_refer_t &d
*** 15080,15087 ****
            IF( gg_indirect(source_p),
                ne_op,
                build_int_cst_type( UCHAR,
!                                   internal_codeset_is_ebcdic() ?
!                                               EBCDIC_ZERO : '0') )
              {
              set_exception_code(ec_size_truncation_e);
              gg_assign(size_error, integer_one_node);
--- 16021,16027 ----
            IF( gg_indirect(source_p),
                ne_op,
                build_int_cst_type( UCHAR,
!                                   charmap_source->mapped_character(ascii_0)) )
              {
              set_exception_code(ec_size_truncation_e);
              gg_assign(size_error, integer_one_node);
*************** mh_numeric_display( const cbl_refer_t &d
*** 15097,15105 ****
        // remaining digits
        digit_count = dest_ldigits;
        }
! 
!     // The ldigits are in place.  We now go the very similar exercise for the
!     // rdigits:
  
      int dest_rdigits   = destref.field->data.rdigits;
      int source_rdigits = sourceref.field->data.rdigits;
--- 16037,16044 ----
        // remaining digits
        digit_count = dest_ldigits;
        }
!     // We now have digit_count, which will cover the ldigits.  Augment it by
!     // the number of rdigits:
  
      int dest_rdigits   = destref.field->data.rdigits;
      int source_rdigits = sourceref.field->data.rdigits;
*************** mh_numeric_display( const cbl_refer_t &d
*** 15127,15336 ****
        // over only the necessary rdigits, discarding the ones to the right.
        digit_count += dest_rdigits;
        }
! 
!     picky_memcpy(dest_p, source_p, digit_count);
      picky_memset( dest_p,
!                   internal_codeset_is_ebcdic() ?
!                               EBCDIC_ZERO : '0' ,
                    trailing_zeros);
  
!     // With the digits in place, we need to sort out what to do if the target
!     // is signable:
!     if( destref.field->attr & signable_e )
        {
!       if(     (destref.field->attr & separate_e)
!           && !(destref.field->attr & leading_e) )
!         {
!         // The target is separate/trailing, so we need to tack a '+'
!         // or '-' character
!         if( sourceref.field->attr & separate_e )
!           {
!           // The source was separate, so we already have what we need in t
!           // source_sign_byte:
!           gg_assign(gg_indirect(dest_p), source_sign_byte);
!           gg_increment(dest_p);
!           }
!         else
            {
!           // The source is either internal, or unsigned
!           if( sourceref.field->attr & signable_e )
              {
!             // The source is signable/internal, so we need to extract the
!             // sign bit from source_sign_byte
!             if( internal_codeset_is_ebcdic() )
!               {
!               IF( gg_bitwise_and( source_sign_byte,
!                                   build_int_cst_type( UCHAR,
!                                                       NUMERIC_DISPLAY_SIGN_BIT)),
!                   eq_op,
!                   build_int_cst_type( UCHAR, 0) )
!                 {
!                 // The source was negative
!                 gg_assign(gg_indirect(dest_p),
!                           build_int_cst_type( UCHAR, EBCDIC_MINUS));
! 
!                 }
!               ELSE
!                 {
!                 // The source was positive
!                 gg_assign(gg_indirect(dest_p),
!                           build_int_cst_type( UCHAR, EBCDIC_PLUS));
!                 }
!                 ENDIF
!               }
!             else
!               {
!               IF( gg_bitwise_and( source_sign_byte,
!                                   build_int_cst_type( UCHAR,
!                                                       NUMERIC_DISPLAY_SIGN_BIT)),
!                   ne_op,
!                   build_int_cst_type( UCHAR, 0) )
!                 {
!                 // The source was negative
!                 gg_assign(gg_indirect(dest_p),
!                           build_int_cst_type( UCHAR, '-'));
! 
!                 }
!               ELSE
!                 {
!                 // The source was positive
!                 gg_assign(gg_indirect(dest_p),
!                           build_int_cst_type( UCHAR, '+'));
!                 }
!                 ENDIF
!               }
              }
!           else
              {
-             // The source is unsigned, so dest is positive
-             gg_assign(gg_indirect(dest_p),
-                       build_int_cst_type( UCHAR,
-                                           internal_codeset_is_ebcdic() ?
-                                           EBCDIC_PLUS : '+' ));
              }
!           }
!         gg_increment(dest_p);
!         }
!       else if( !(destref.field->attr & separate_e) )
!         {
!         // The destination is signed/internal
!         if( destref.field->attr & leading_e )
!           {
!           // The sign bit goes into the first byte:
!           gg_assign(dest_p, qualified_data_location(destref));
            }
          else
            {
!           // The sign bit goes into the last byte:
!           gg_decrement(dest_p);
!           }
!         if( sourceref.field->attr & signable_e )
!           {
!           if( sourceref.field->attr & separate_e )
              {
!             // The source is separate, so source_sign_byte is '+' or '-'
!             IF( source_sign_byte,
!                 eq_op,
!                 build_int_cst_type(UCHAR,
!                                    internal_codeset_is_ebcdic() ?
!                                         EBCDIC_MINUS : '-') )
!               {
!               // The source is negative, so turn the ASCII bit on
!               if( !internal_codeset_is_ebcdic() )
!                 {
!                 gg_assign(gg_indirect(dest_p),
!                           gg_bitwise_or(gg_indirect(dest_p),
!                                         build_int_cst_type(
!                                                   UCHAR,
!                                                   NUMERIC_DISPLAY_SIGN_BIT)));
! 
!                 }
!               else
!                 {
!                 // It's ebcdic, so turn the sign bit OFF
!                 gg_assign(gg_indirect(dest_p),
!                           gg_bitwise_and(gg_indirect(dest_p),
!                                         build_int_cst_type(
!                                                   UCHAR,
!                                                   ~NUMERIC_DISPLAY_SIGN_BIT)));
!                 }
!               }
!             ELSE
!               {
!               // The source is positive, so turn the EBCDIC bit ON:
!               if( internal_codeset_is_ebcdic() )
!                 {
!                 gg_assign(gg_indirect(dest_p),
!                           gg_bitwise_or(gg_indirect(dest_p),
!                                         build_int_cst_type(
!                                                   UCHAR,
!                                                   NUMERIC_DISPLAY_SIGN_BIT)));
!                 }
!               }
!               ENDIF
              }
!           else
              {
-             // The source is signable/internal, so the sign bit is in
-             // source_sign_byte. Whatever it is, it has to go into dest_p:
-             if( internal_codeset_is_ebcdic()  )
-               {
-               // This is EBCDIC, so if the source_sign_byte bit is LOW, we
-               // clear that bit in dest_p high.
-               IF( gg_bitwise_and( source_sign_byte,
-                                   build_int_cst_type(
-                                                UCHAR,
-                                                NUMERIC_DISPLAY_SIGN_BIT)),
-                   eq_op,
-                   build_int_cst_type(UCHAR, 0) )
-                 {
-                 // The source was negative, so make the dest negative
-                 gg_assign(gg_indirect(dest_p),
-                           gg_bitwise_and(gg_indirect(dest_p),
-                                          build_int_cst_type(
-                                                   UCHAR,
-                                                   ~NUMERIC_DISPLAY_SIGN_BIT)));
-                 }
-               ELSE
-                 ENDIF
-               }
-             else
-               {
-               // This is ASCII, so if the source_sign_byte bit is high, we
-               // set that bit in dest_p high.
-               IF( gg_bitwise_and( source_sign_byte,
-                                   build_int_cst_type(
-                                                UCHAR,
-                                                NUMERIC_DISPLAY_SIGN_BIT)),
-                   ne_op,
-                   build_int_cst_type(UCHAR, 0) )
-                 {
-                 // The source was negative, so make the dest negative
-                 gg_assign(gg_indirect(dest_p),
-                           gg_bitwise_or(gg_indirect(dest_p),
-                                         build_int_cst_type(
-                                                   UCHAR,
-                                                   NUMERIC_DISPLAY_SIGN_BIT)));
-                 }
-               ELSE
-                 ENDIF
-               }
              }
            }
!         }
!       }
  
!     if(     (sourceref.field->attr & signable_e)
!         && !(sourceref.field->attr & separate_e))
!       {
!       // The source is signable internal, so we need to restore the original
!       // sign byte in the original source data:
!       gg_assign(gg_indirect(source_sign_loc), source_sign_byte);
        }
      moved = true;
      }
    return moved;
!   }
  
  static bool
  mh_little_endian( const cbl_refer_t &destref,
--- 16066,16149 ----
        // over only the necessary rdigits, discarding the ones to the right.
        digit_count += dest_rdigits;
        }
!     picky_memcpy(dest_p,
!                  source_p,
!                  digit_count,
!                  build_int_cst_type(UCHAR,
!                                     charmap_dest->mapped_character(ascii_0)));
      picky_memset( dest_p,
!                   charmap_dest->mapped_character(ascii_0),
                    trailing_zeros);
  
!     // With the digits in place, the only thing left is to establish the sign
! 
!     switch( switch_dest )
        {
!       case 0:
!       case 1:
!       case 2:
!       case 3:
!         // not signable, so there is nothing to do.
!         break;
!       case 4:
!       case 6:
!         //     signable, not leading, not separate
!         if( charmap_dest->is_like_ebcdic() )
            {
!           IF( source_sign, ne_op, integer_zero_node )
              {
!             // It's negative ebcdic, so we have to turn the bit off.
!             gg_assign(gg_indirect(dest_sign_loc),
!                       gg_bitwise_and(gg_indirect(dest_sign_loc),
!                              build_int_cst_type(UCHAR,
!                                          ~NUMERIC_DISPLAY_SIGN_BIT_EBCDIC)));
              }
!           ELSE
              {
              }
!           ENDIF
            }
          else
            {
!           IF( source_sign, ne_op, integer_zero_node )
              {
!             // It's negative ascii, so we have to turn the bit on.
!             gg_assign(gg_indirect(dest_sign_loc),
!                       gg_bitwise_or(gg_indirect(dest_sign_loc),
!                             build_int_cst_type(UCHAR,
!                                          NUMERIC_DISPLAY_SIGN_BIT_ASCII)));
              }
!           ELSE
              {
              }
+           ENDIF
            }
!         break;
!       case 5:
!       case 7:
!         //     signable, not leading,     separate
!         //     signable,     leading,     separate
!         // Calculate location of the sign byte; it's the last byte of the data
  
!         IF( source_sign, eq_op, integer_zero_node )
!           {
!           gg_assign(gg_indirect(dest_sign_loc),
!                     build_int_cst_type(UCHAR,
!                                   charmap_dest->mapped_character(ascii_plus)));
!           }
!         ELSE
!           {
!           gg_assign(gg_indirect(dest_sign_loc),
!                     build_int_cst_type(UCHAR,
!                                  charmap_dest->mapped_character(ascii_minus)));
!           }
!         ENDIF
!         break;
        }
      moved = true;
      }
    return moved;
!   } //NUMERIC_DISPLAY_SIGN
  
  static bool
  mh_little_endian( const cbl_refer_t &destref,
*************** mh_little_endian( const cbl_refer_t &des
*** 15341,15352 ****
    {
    bool moved = false;
  
!   cbl_figconst_t figconst = cbl_figconst_of( sourceref.field->data.initial);
  
    if(     !figconst
        &&  !(destref.field->attr    & scaled_e)
        &&  !(destref.field->attr    & (intermediate_e  ))
        &&  !(sourceref.field->attr  & (intermediate_e  ))
        &&  sourceref.field->type     != FldLiteralA
        &&  sourceref.field->type     != FldAlphanumeric
        &&  sourceref.field->type     != FldNumericEdited
--- 16154,16166 ----
    {
    bool moved = false;
  
!   cbl_figconst_t figconst = cbl_figconst_of( sourceref.field->data.original());
  
    if(     !figconst
        &&  !(destref.field->attr    & scaled_e)
        &&  !(destref.field->attr    & (intermediate_e  ))
        &&  !(sourceref.field->attr  & (intermediate_e  ))
+       &&  sourceref.field->type     != FldGroup
        &&  sourceref.field->type     != FldLiteralA
        &&  sourceref.field->type     != FldAlphanumeric
        &&  sourceref.field->type     != FldNumericEdited
*************** mh_source_is_group( const cbl_refer_t &d
*** 15410,15416 ****
                      const TREEPLET    &tsrc)
    {
    bool retval = false;
!   if( sourceref.field->type == FldGroup && !(destref.field->attr & rjust_e) )
      {
      Analyze();
      // We are moving a group to a something.  The rule here is just move as
--- 16224,16233 ----
                      const TREEPLET    &tsrc)
    {
    bool retval = false;
!   charmap_t *charmap = __gg__get_charmap(destref.field->codeset.encoding);
!   if(   sourceref.field->type == FldGroup && !(destref.field->attr & rjust_e)
!      && sourceref.field->codeset.encoding == destref.field->codeset.encoding
!      && charmap->stride() == 1)
      {
      Analyze();
      // We are moving a group to a something.  The rule here is just move as
*************** mh_source_is_group( const cbl_refer_t &d
*** 15429,15436 ****
        }
      ELSE
        {
!       // There are too-few source bytes:
!       gg_memset(tdest, build_int_cst_type(INT, internal_space), dbytes);
        gg_memcpy(tdest, tsource, sbytes);
        }
      ENDIF
--- 16246,16254 ----
        }
      ELSE
        {
!       // There are too few source bytes:
!       int dest_space = charmap->mapped_character(ascii_space);
!       gg_memset(tdest, build_int_cst_type(INT, dest_space), dbytes);
        gg_memcpy(tdest, tsource, sbytes);
        }
      ENDIF
*************** mh_source_is_group( const cbl_refer_t &d
*** 15439,15444 ****
--- 16257,16742 ----
    return retval;
    }
  
+ static bool
+ mh_source_is_literalA(const cbl_refer_t &destref,
+                       const cbl_refer_t &sourceref,
+                             cbl_round_t rounded,
+                             tree        size_error)
+   {
+   bool moved = false;
+   if( sourceref.field->type == FldLiteralA )
+     {
+     // We are moving a literal somewhere.  Because a program-id can take
+     // variables of ANY LENGTH, we don't know the length of the target
+     // variable.  We do, however, know its encoding.  So, we are going to
+     // construct a string with the same number of characters as the source, but
+     // in the target variable's encoding.
+ 
+     // We will then call a library routine that will be in charge of run-time
+     // trimming or space filling, as necessary.
+ 
+     cbl_encoding_t encoding_dest =   destref.field->codeset.encoding;
+     charmap_t *charmap_dest = __gg__get_charmap(encoding_dest);
+ 
+     static char *buffer = NULL;
+     static size_t buffer_size = 0;
+     size_t source_length;
+     size_t dest_length;
+     if( sourceref.field->attr & hex_encoded_e )
+       {
+       // Hex-encoded data is moved as-is
+       source_length = sourceref.field->data.capacity();
+       dest_length   = std::min(source_length,
+                           static_cast<size_t>(destref.field->data.capacity()));
+       }
+     else
+       {
+       // Otherwise, data.initial prevails:
+       size_t source_based_on_strlen = strlen(sourceref.field->data.original());
+       size_t source_based_on_capacity = sourceref.field->data.capacity() /
+                                         sourceref.field->codeset.stride() ;
+       source_length = std::max( source_based_on_strlen ,
+                                 source_based_on_capacity );
+       dest_length   = source_length * charmap_dest->stride();
+       }
+ 
+     if( buffer_size < dest_length )
+       {
+       buffer_size = dest_length;
+       buffer = static_cast<char *>(xrealloc(buffer, buffer_size));
+       }
+     gcc_assert(buffer);
+ 
+     cbl_figconst_t figconst = cbl_figconst_of( sourceref.field->data.original());
+     size_t outlength;
+     if( figconst )
+       {
+       // We are going to fill 'buffer' with a solid run of the figurative
+       // constant in the destination codeset.
+       char const_char = 0x7F;  // Head off a compiler warning about
+       //                       // uninitialized variables
+       switch(figconst)
+         {
+         case normal_value_e :
+           // This is not possible, it says here in the fine print.
+           gcc_unreachable();
+           break;
+         case low_value_e    :
+           const_char = charmap_dest->low_value_character();
+           break;
+         case zero_value_e   :
+           const_char = charmap_dest->mapped_character(ascii_zero);
+           break;
+         case space_value_e  :
+           const_char = charmap_dest->mapped_character(ascii_space);
+           break;
+         case quote_value_e  :
+           const_char = charmap_dest->quote_character();
+           break;
+         case high_value_e   :
+           const_char = charmap_dest->high_value_character();
+           break;
+         case null_value_e:
+           const_char = 0x00;
+           break;
+         }
+       memset(buffer, const_char, source_length);
+       }
+      else
+       {
+       if( sourceref.field->attr & hex_encoded_e )
+         {
+         // hex_encoded data goes as is:
+         memcpy(buffer, sourceref.field->data.original(), dest_length);
+         outlength = dest_length;
+         }
+       else
+         {
+         // We are going to convert the source string to the destination
+         // codeset, and then copy it to 'buffer', trimming if necessary, and
+         // space-filling to the right if necessary:
+         const char *source_string =
+         __gg__iconverter(
+                        sourceref.field->codeset.default_encodings.source->type,
+                        encoding_dest,
+                        sourceref.field->data.original(),
+                        source_length,
+                        &outlength );
+         if( outlength > dest_length )
+           {
+           outlength = dest_length;
+           }
+         // Copy over the converted string
+         memcpy( buffer,
+                 source_string,
+                 outlength );
+         }
+       }
+ 
+     // Check to see if we can do a simple alphanumeric-to-alphanumeric move
+     if( (   destref.field->type == FldAlphanumeric
+          || destref.field->type == FldGroup )
+        && !(destref.field->attr & any_length_e)
+        && !sourceref.all
+        && !size_error)
+       {
+       // A simple alpha-to-alpha move is possible
+       size_t dest_bytes = destref.field->data.capacity();
+       // We have 'outlength' bytes in 'buffer' that need to go to
+       // destref.field->data.capacity() bytes at destref.field->data.
+       char *src = static_cast<char *>(xmalloc(dest_bytes));
+       size_t src_bytes = std::min(outlength, dest_bytes);
+       charmap_t *charmap = __gg__get_charmap(destref.field->codeset.encoding);
+       charmap->memset(src, charmap->mapped_character(ascii_space), dest_bytes);
+ 
+       if( destref.field->attr & rjust_e )
+         {
+         size_t fill = 0;
+         if( src_bytes < dest_bytes )
+           {
+           fill = dest_bytes - src_bytes;
+           }
+         memcpy(src+fill, buffer+outlength-src_bytes, src_bytes);
+         }
+       else
+         {
+         memcpy(src, buffer, src_bytes);
+         }
+       // src is now the desired string, space-filled if necessary on the right,
+       // (or on the left, for rjust_e destinations).
+ 
+       if( refer_is_clean(destref) )
+         {
+         gg_memcpy(member(destref.field->var_decl_node, "data"),
+                   build_string_literal(dest_bytes, src),
+                   build_int_cst_type(SIZE_T, dest_bytes));
+         }
+       else
+         {
+         // The refer has some information in it.
+         gg_memcpy(gg_add(member(destref.field->var_decl_node, "data"),
+                          refer_offset(destref)),
+                   build_string_literal(dest_bytes, src),
+                   refer_size_dest(destref));
+         }
+       free(src);
+       }
+     else
+       {
+       // This is more complicated than a simple alpha-to-alpha move
+       if(    destref.refmod.from
+           || destref.refmod.len )
+         {
+         // Let the move routine know to treat the destination as alphanumeric
+         gg_attribute_bit_set(destref.field, refmod_e);
+         }
+       // If the source is flagged ALL, or if we are setting the destination to
+       // a figurative constant, pass along the ALL bit:
+       int rounded_parameter = rounded
+                              | ((sourceref.all || figconst ) ? REFER_ALL_BIT : 0);
+ 
+       if( size_error )
+         {
+         gg_assign(size_error,
+                   gg_call_expr( INT,
+                                 "__gg__move_literala",
+                                 gg_get_address_of(destref.field->var_decl_node),
+                                 refer_offset(destref),
+                                 refer_size_dest(destref),
+                                 build_int_cst_type(INT, rounded_parameter),
+                                 build_string_literal(outlength,
+                                                      buffer),
+                                 build_int_cst_type( SIZE_T, outlength),
+                                 NULL_TREE));
+         }
+       else
+         {
+                   gg_call     ( INT,
+                                 "__gg__move_literala",
+                                 gg_get_address_of(destref.field->var_decl_node),
+                                 refer_offset(destref),
+                                 refer_size_dest(destref),
+                                 build_int_cst_type(INT, rounded_parameter),
+                                 build_string_literal(outlength,
+                                                      buffer),
+                                 build_int_cst_type( SIZE_T, outlength),
+                                 NULL_TREE);
+         }
+       if(    destref.refmod.from
+           || destref.refmod.len )
+         {
+         // Return that value to its original form
+         gg_attribute_bit_clear(destref.field, refmod_e);
+         }
+       }
+ 
+     moved = true;
+     }
+   return moved;
+   }
+ 
+ static bool
+ have_common_parent(const cbl_refer_t &destref,
+                    const cbl_refer_t &sourceref)
+   {
+   /* We are trying to lay down fast code when possible.  But sometimes we have
+      to go slower in order to be accurate. The COBOL specification explicitly
+      says that when the storage areas of sending and receiving operands
+      overlap:
+       1) When the data items are not described by the same data description
+          entry, the result of the statement is undefined.
+       2)  When the data items are described by the same data description entry,
+           the result of the statement is the same as if the data items shared
+           no part of their respective storage areas.
+ 
+      There is an additional paragraph:
+       In the case of reference modification, the unique data item produced by
+       reference modification is not considered to be the same data description
+       entry as any other data description entry. Therefore, if an overlapping
+       situation exists, the results of the operation are undefined.
+ 
+       This routine will return TRUE when neither reference is a refmod, and
+       both operands ultimately have the same parent (indicating that they are
+       part of the same data description.
+ 
+       The point is that when we return True, then the two are not refmods, and
+       they have a common parent, so we have to use a memmove.  When we return
+       False, then we can use a faster memcpy.
+       */
+   bool retval = true;
+   if( destref.is_refmod_reference() )
+     {
+     retval = false;
+     }
+   else if( sourceref.is_refmod_reference() )
+     {
+     retval = false;
+     }
+   else
+     {
+     // Neither is a refmod.  Check for common parentage:
+     const cbl_field_t *poppa = destref.field;
+     const cbl_field_t *momma = sourceref.field;
+     while( parent_of(poppa) )
+       {
+       // Follow the first family_tree up as far as we can.
+       poppa = parent_of(poppa);
+       }
+     while( parent_of(momma) )
+       {
+       // Follow the second family_tree up as far as we can.
+       momma = parent_of(momma);
+       }
+     if( poppa != momma )
+       {
+       /* Okay, so the analogy breaks down.  Think of momma and poppa as
+          bacteria, or something.  */
+       retval = false;
+       }
+     }
+ 
+   return retval;
+   }
+ 
+ static bool
+ mh_alpha_to_alpha(const cbl_refer_t &destref,
+                   const cbl_refer_t &sourceref,
+                         cbl_round_t /*rounded*/,
+                         tree        size_error)
+   {
+   bool moved = false;
+   // If a bunch of conditions are met, we can do a move without resorting to
+   // the library.
+   if(   sourceref.field->type == FldAlphanumeric
+      && destref.field->type   == FldAlphanumeric
+      && !size_error
+      && sourceref.field->codeset.encoding == destref.field->codeset.encoding
+      && !(destref.field->attr   & rjust_e)
+      && !(sourceref.field->attr & any_length_e)
+      && !(destref.field->attr   & any_length_e)
+      && !(sourceref.field->attr & intermediate_e)
+      && !sourceref.all
+      )
+     {
+     void (*mover)(tree, tree, tree); // dest, source, count
+     mover = have_common_parent(destref, sourceref) ? gg_memmove : gg_memcpy;
+ 
+     // We are in a position to simply move bytes from the source to the dest.
+     if( refer_is_clean(sourceref) && refer_is_clean(destref) )
+       {
+       // Source and destination are both clean
+       if( destref.field->data.capacity() <= sourceref.field->data.capacity() )
+         {
+         // This is the simplest case of all
+         mover(member(  destref.field->var_decl_node, "data"),
+                   member(sourceref.field->var_decl_node, "data"),
+                   build_int_cst_type(SIZE_T, destref.field->data.capacity()));
+         moved = true;
+         }
+       else
+         {
+         // This is a tad more complicated.  The source is too short, so we need
+         // to copy over what we can...
+         mover(member(  destref.field->var_decl_node, "data"),
+                  member(sourceref.field->var_decl_node, "data"),
+                  build_int_cst_type(SIZE_T, sourceref.field->data.capacity()));
+         // And then space-fill the rest:
+         size_t fill_bytes =
+             destref.field->data.capacity() - sourceref.field->data.capacity();
+ 
+         // ...and then create a memory area with the fill spaces...
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // ...and then copy those spaces into place.
+         mover(
+           gg_add(member(destref.field->var_decl_node, "data"),
+                  build_int_cst_type(SIZE_T, sourceref.field->data.capacity())),
+           build_string_literal(fill_bytes, spaces),
+           build_int_cst_type(SIZE_T, fill_bytes));
+         free(spaces);
+         moved = true;
+         }
+       }
+ 
+     if( !refer_is_clean(sourceref) && refer_is_clean(destref) )
+       {
+       // The source is dirty, but the destination is clean:
+       tree source_data;
+       tree source_len;
+ 
+       tree dest_data;
+       tree dest_len;
+ 
+       source_data = gg_add(member(sourceref.field->var_decl_node, "data"),
+                            refer_offset(sourceref));
+       source_len = refer_size_source(sourceref);
+ 
+       dest_data = member(destref.field->var_decl_node, "data");
+ 
+       dest_len = build_int_cst_type(SIZE_T, destref.field->data.capacity());
+       IF( source_len, ge_op, dest_len )
+         {
+         // The source has enough (or more) bytes to fill the destination:
+         mover(dest_data, source_data, dest_len);
+         }
+       ELSE
+         {
+         // The source data is too short.  We need to copy over what we have...
+         mover(dest_data, source_data, source_len);
+ 
+         // And then right-fill the remainder with spaces. Create a buffer with
+         // more than enough spaces for our purposes:
+         size_t fill_bytes = destref.field->data.capacity();
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // And then copy enough of those spaces into place.
+         mover(gg_add(dest_data, source_len),
+                   build_string_literal(fill_bytes, spaces),
+                   gg_subtract(dest_len, source_len));
+         free(spaces);
+         }
+       ENDIF
+       moved = true;
+       }
+     if( refer_is_clean(sourceref) && !refer_is_clean(destref) )
+       {
+       // The source is clean but the destination is dirty:
+       tree source_data;
+       tree source_len;
+ 
+       tree dest_data;
+       tree dest_len ;
+ 
+       source_data = member(sourceref.field->var_decl_node, "data");
+       source_len  = build_int_cst_type(SIZE_T,
+                                        sourceref.field->data.capacity());
+       dest_data = gg_add(member(destref.field->var_decl_node, "data"),
+                          refer_offset(destref));
+       dest_len = refer_size_dest(destref);
+       IF( source_len, ge_op, dest_len )
+         {
+         // The source has enough (or more) bytes to fill the destination:
+         mover(dest_data, source_data, dest_len);
+         }
+       ELSE
+         {
+         // The source data is too short.  We need to copy over what we have...
+         mover(dest_data, source_data, source_len);
+ 
+         // And then right-fill the remainder with spaces. Create a buffer with
+         // more than enough spaces for our purposes:
+         size_t fill_bytes = destref.field->data.capacity();
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // And then copy enough of those spaces into place.
+         mover(gg_add(dest_data, source_len),
+                   build_string_literal(fill_bytes, spaces),
+                   gg_subtract(dest_len, source_len));
+         free(spaces);
+         }
+       ENDIF
+ 
+       moved = true;
+       }
+     if( !refer_is_clean(sourceref) && !refer_is_clean(destref) )
+       {
+       // Both the source and the dest are "dirty"
+       tree source_data = gg_define_variable(UCHAR_P);
+       tree source_len  = gg_define_variable(SIZE_T);
+ 
+       tree dest_data = gg_define_variable(UCHAR_P);
+       tree dest_len  = gg_define_variable(SIZE_T);
+ 
+       gg_assign(source_data,
+                 gg_add(member(sourceref.field->var_decl_node, "data"),
+                        refer_offset(sourceref)));
+       gg_assign(source_len, refer_size_source(sourceref));
+ 
+       gg_assign(dest_data,
+                 gg_add(member(destref.field->var_decl_node, "data"),
+                        refer_offset(destref)));
+       gg_assign(dest_len, refer_size_dest(destref));
+       IF( source_len, ge_op, dest_len )
+         {
+         // The source has enough (or more) bytes to fill the destination:
+         mover(dest_data, source_data, dest_len);
+         }
+       ELSE
+         {
+         // The source data is too short.  We need to copy over what we have...
+         mover(dest_data, source_data, source_len);
+ 
+         // And then right-fill the remainder with spaces. Create a buffer with
+         // more than enough spaces for our purposes:
+         size_t fill_bytes = destref.field->data.capacity();
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // And then copy enough of those spaces into place.
+         mover(gg_add(dest_data, source_len),
+                   build_string_literal(fill_bytes, spaces),
+                   gg_subtract(dest_len, source_len));
+         free(spaces);
+         }
+       ENDIF
+ 
+       moved = true;
+       }
+     }
+   return moved;
+   }
+ 
  static void
  move_helper(tree size_error,        // This is an INT
              cbl_refer_t destref,
*************** move_helper(tree size_error,        // T
*** 15467,15473 ****
  
    tree st_data = NULL_TREE;
    tree st_size = NULL_TREE;
- 
    if( restore_on_error )
      {
      // We are creating a copy of the original destination in case we clobber it
--- 16765,16770 ----
*************** move_helper(tree size_error,        // T
*** 15479,15487 ****
        first_time = false;
        gg_assign(stash, gg_cast(UCHAR_P, gg_malloc(stash_size)));
        }
!     if( stash_size < destref.field->data.capacity )
        {
!       stash_size = destref.field->data.capacity;
        gg_assign(stash, gg_cast(UCHAR_P, gg_realloc(stash, stash_size)));
        }
      st_data = qualified_data_location(destref);
--- 16776,16784 ----
        first_time = false;
        gg_assign(stash, gg_cast(UCHAR_P, gg_malloc(stash_size)));
        }
!     if( stash_size < destref.field->data.capacity() )
        {
!       stash_size = destref.field->data.capacity();
        gg_assign(stash, gg_cast(UCHAR_P, gg_realloc(stash, stash_size)));
        }
      st_data = qualified_data_location(destref);
*************** move_helper(tree size_error,        // T
*** 15491,15502 ****
                st_size);
      }
  
-   if(     (sourceref.field->attr & (linkage_e | based_e))
-       ||  (  destref.field->attr & (linkage_e | based_e)) )
-     {
-     //goto dont_be_clever; this will go through to the default.
-     }
- 
    // if( !moved ) // commented out to quiet cppcheck
      {
      moved = mh_source_is_group(destref, sourceref, tsource);
--- 16788,16793 ----
*************** move_helper(tree size_error,        // T
*** 15542,15655 ****
                                size_error);
      }
  
!   if( !moved && sourceref.field->type == FldLiteralA)
      {
!     SHOW_PARSE1
!       {
!       SHOW_PARSE_INDENT
!       SHOW_PARSE_TEXT("__gg__move_literala")
!       }
! 
!     cbl_figconst_t figconst = cbl_figconst_of( sourceref.field->data.initial);
! 
!     if(    destref.refmod.from
!         || destref.refmod.len )
!       {
!       // Let the move routine know to treat the destination as alphanumeric
!       gg_attribute_bit_set(destref.field, refmod_e);
!       }
! 
!     static char *buffer = NULL;
!     static size_t buffer_size = 0;
!     size_t source_length = sourceref.field->data.capacity;
! 
!     if( buffer_size < source_length )
!       {
!       buffer_size = source_length;
!       buffer = static_cast<char *>(xrealloc(buffer, buffer_size));
!       }
!     gcc_assert(buffer);
! 
!     if( figconst )
!       {
!       char const_char = 0x7F;  // Head off a compiler warning about
!       //                       // uninitialized variables
!       switch(figconst)
!         {
!         case normal_value_e :
!           // This is not possible, it says here in the fine print.
!           abort();
!           break;
!         case low_value_e    :
!           const_char = ascii_to_internal(__gg__low_value_character);
!           break;
!         case zero_value_e   :
!           const_char = internal_zero;
!           break;
!         case space_value_e  :
!           const_char = internal_space;
!           break;
!         case quote_value_e  :
!           const_char = ascii_to_internal(__gg__quote_character);
!           break;
!         case high_value_e   :
!           const_char = ascii_to_internal(__gg__high_value_character);
!           break;
!         case null_value_e:
!           const_char = 0x00;
!           break;
!         }
!       memset(buffer, const_char, source_length);
!       }
!      else
!       {
!       memset( buffer, ascii_space, source_length);
!       memcpy( buffer,
!               sourceref.field->data.initial,
!               std::min(source_length, (size_t)sourceref.field->data.capacity) );
!       for( size_t i=0; i<source_length; i++)
!         {
!         buffer[i] = ascii_to_internal(buffer[i]);
!         }
!       }
! 
!     int rounded_parameter = rounded
!                             | ((sourceref.all || figconst ) ? REFER_ALL_BIT : 0);
  
!     if( size_error )
!       {
!       gg_assign(size_error,
!                 gg_call_expr( INT,
!                               "__gg__move_literala",
!                               gg_get_address_of(destref.field->var_decl_node),
!                               refer_offset(destref),
!                               refer_size_dest(destref),
!                               build_int_cst_type(INT, rounded_parameter),
!                               build_string_literal(source_length,
!                                                    buffer),
!                               build_int_cst_type( SIZE_T, source_length),
!                               NULL_TREE));
!       }
!     else
!       {
!                 gg_call     ( INT,
!                               "__gg__move_literala",
!                               gg_get_address_of(destref.field->var_decl_node),
!                               refer_offset(destref),
!                               refer_size_dest(destref),
!                               build_int_cst_type(INT, rounded_parameter),
!                               build_string_literal(source_length,
!                                                    buffer),
!                               build_int_cst_type( SIZE_T, source_length),
!                               NULL_TREE);
!       }
!     if(    destref.refmod.from
!         || destref.refmod.len )
!       {
!       // Return that value to its original form
!       gg_attribute_bit_clear(destref.field, refmod_e);
!       }
!     moved = true;
      }
  
    if( !moved )
--- 16833,16852 ----
                                size_error);
      }
  
!   if( !moved )
      {
!     moved = mh_source_is_literalA(destref,
!                                   sourceref,
!                                   rounded,
!                                   size_error);
!     }
  
!   if( !moved )
!     {
!     moved = mh_alpha_to_alpha(destref,
!                               sourceref,
!                               rounded,
!                               size_error);
      }
  
    if( !moved )
*************** real_powi10 (uint32_t x)
*** 15799,16483 ****
    return pow10;
  }
  
! char *
! binary_initial_from_float128(cbl_field_t *field, int rdigits,
!                              REAL_VALUE_TYPE value)
    {
!   // This routine returns an xmalloced buffer designed to replace the
!   // data.initial member of the incoming field
!   char *retval = NULL;
! 
!   // We need to adjust value so that it has no decimal places
!   if( rdigits )
!     {
!       REAL_VALUE_TYPE pow10 = real_powi10 (rdigits);
!       real_arithmetic (&value, MULT_EXPR, &value, &pow10);
!       real_convert (&value, TYPE_MODE (float128_type_node), &value);
!     }
!   // We need to make sure that the resulting string will fit into
!   // a number with 'digits' digits
! 
!   // Keep in mind that pure binary types, like BINARY-CHAR, have no digits
!   if( field->data.digits )
!     {
!       REAL_VALUE_TYPE pow10 = real_powi10 (field->data.digits);
!       mpfr_t m0, m1;
  
!       mpfr_inits2 (REAL_MODE_FORMAT (TYPE_MODE (float128_type_node))->p,
!                    m0, m1, NULL);
!       mpfr_from_real (m0, &value, MPFR_RNDN);
!       mpfr_from_real (m1, &pow10, MPFR_RNDN);
!       mpfr_clear_flags ();
!       mpfr_fmod (m0, m0, m1, MPFR_RNDN);
!       real_from_mpfr (&value, m0,
!                       REAL_MODE_FORMAT (TYPE_MODE (float128_type_node)),
!                       MPFR_RNDN);
!       real_convert (&value, TYPE_MODE (float128_type_node), &value);
!       mpfr_clears (m0, m1, NULL);
!     }
  
!   real_roundeven (&value, TYPE_MODE (float128_type_node), &value);
  
!   bool fail = false;
!   FIXED_WIDE_INT(128) i
!     = FIXED_WIDE_INT(128)::from (real_to_integer (&value, &fail, 128), SIGNED);
  
!   retval = static_cast<char *>(xmalloc(field->data.capacity));
!   gcc_assert(retval);
!   switch(field->data.capacity)
!     {
!       tree type;
!     case 1:
!     case 2:
!     case 4:
!     case 8:
!     case 16:
!       type = build_nonstandard_integer_type ( field->data.capacity
!                                               * BITS_PER_UNIT, 0);
!       native_encode_wide_int (type, i, PTRCAST(unsigned char, retval),
!                               field->data.capacity);
!       break;
!     default:
!       fprintf(stderr,
!               "Trouble in binary_initial_from_float128 at %s() %s:%d\n",
!               __func__,
!               __FILE__,
!               __LINE__);
!       abort();
!       break;
!     }
  
    return retval;
    }
  
- 
  static void
! digits_from_float128(char *retval, cbl_field_t *field, size_t width, int rdigits, REAL_VALUE_TYPE value)
    {
!   char ach[128];
  
!   // We need to adjust value so that it has no decimal places
!   if( rdigits )
      {
!       REAL_VALUE_TYPE pow10 = real_powi10 (rdigits);
!       real_arithmetic (&value, MULT_EXPR, &value, &pow10);
      }
-   // We need to make sure that the resulting string will fit into
-   // a number with 'digits' digits
-   REAL_VALUE_TYPE pow10 = real_powi10 (field->data.digits);
-   mpfr_t m0, m1;
- 
-   mpfr_inits2 (FLOAT_MODE_FORMAT (TYPE_MODE (float128_type_node))->p, m0, m1,
-                NULL);
-   mpfr_from_real (m0, &value, MPFR_RNDN);
-   mpfr_from_real (m1, &pow10, MPFR_RNDN);
-   mpfr_clear_flags ();
-   mpfr_fmod (m0, m0, m1, MPFR_RNDN);
-   real_from_mpfr (&value, m0,
-                   REAL_MODE_FORMAT (TYPE_MODE (float128_type_node)),
-                   MPFR_RNDN);
-   real_convert (&value, TYPE_MODE (float128_type_node), &value);
-   mpfr_clears (m0, m1, NULL);
-   real_roundeven (&value, TYPE_MODE (float128_type_node), &value);
  
!   bool fail = false;
!   FIXED_WIDE_INT(128) i
!     = FIXED_WIDE_INT(128)::from (real_to_integer (&value, &fail, 128), SIGNED);
! 
!   // We convert it to a integer string of digits:
!   print_dec (i, ach, SIGNED);
! 
!   //fprintf(stderr, "digits_from_float128() %s %f %s ", field->name, (double)value, ach);
! 
!   gcc_assert( strlen(ach) <= field->data.digits );
!   if( strlen(ach) < width )
      {
!     memset(retval, '0', width-strlen(ach) );
      }
-   strcpy(retval + (width-strlen(ach)), ach);
-   }
- 
- static char *
- initial_from_initial(cbl_field_t *field)
-   {
-   Analyze();
-   // This routine returns an xmalloced buffer that is intended to replace the
-   // data.initial member of the incoming field.
- 
-   //fprintf(stderr, "initial_from_initial %s\n", field->name);
  
!   char *retval = NULL;
!   int rdigits;
! 
!   // Let's handle the possibility of a figurative constant
!   cbl_figconst_t figconst = cbl_figconst_of( field->data.initial);
!   //cbl_figconst_t figconst = (cbl_figconst_t)(field->attr & FIGCONST_MASK);
!   if( figconst )
      {
!     int const_char = 0xFF;  // Head off a compiler warning about uninitialized
!     //                      // variables
!     switch(figconst)
!       {
!       case normal_value_e :
!         // This really should never happen because normal_value_e is zero
!         abort();
!         break;
!       case low_value_e    :
!         const_char = ascii_to_internal(__gg__low_value_character);
!         break;
!       case zero_value_e   :
!         const_char = internal_zero;
!         break;
!       case space_value_e  :
!         const_char = internal_space;
!         break;
!       case quote_value_e  :
!         const_char = ascii_to_internal(__gg__quote_character);
!         break;
!       case high_value_e   :
!         if( __gg__high_value_character == DEGENERATE_HIGH_VALUE )
!           {
!           const_char = __gg__high_value_character;
!           }
!         else
!           {
!           const_char = ascii_to_internal(__gg__high_value_character);
!           }
!         break;
!       case null_value_e:
!         break;
!       }
!     bool set_return = figconst != zero_value_e;
!     if( !set_return )
!       {
!       // The figconst is zero
!       switch(field->type)
!         {
!         case FldGroup:
!         case FldAlphanumeric:
!           set_return = true;
!           break;
! 
!         default:
!           break;
!         }
!       }
!     if( set_return )
!       {
!       retval = static_cast<char *>(xmalloc(field->data.capacity+1));
!       gcc_assert(retval);
!       memset(retval, const_char, field->data.capacity);
!       retval[field->data.capacity] = '\0';
!       return retval;
!       }
      }
  
!   // ???  Refactoring the cases below that do not need 'value' would
!   // make this less ugly
!   REAL_VALUE_TYPE value;
!   if( field->data.etc_type == cbl_field_data_t::value_e )
!     value = TREE_REAL_CST (field->data.value_of ());
! 
!   // There is always the infuriating possibility of a P-scaled number
!   if( field->attr & scaled_e )
      {
!     rdigits = 0;
!     if( field->data.rdigits >= 0 )
!       {
!       // Suppose our PIC is PPPPPP999, meaning that field->digits
!       // is 3, and field->rdigits is 6.
! 
!       // Our result has no decimal places, and we have to multiply the value
!       // by 10**9 to get the significant bdigits where they belong.
! 
!       REAL_VALUE_TYPE pow10
!         = real_powi10 (field->data.digits + field->data.rdigits);
!       real_arithmetic (&value, MULT_EXPR, &value, &pow10);
!       }
!     else
!       {
!       // Suppose our target is 999PPPPPP, so there is a ->digits
!       // of 3 and field->rdigits of -6.
! 
!       // If our caller gave us 123000000, we need to divide
!       // it by 1000000 to line up the 123 with where we want it to go:
! 
!       REAL_VALUE_TYPE pow10 = real_powi10 (-field->data.rdigits);
!       real_arithmetic (&value, RDIV_EXPR, &value, &pow10);
!       }
!     // Either way, we now have everything aligned for the remainder of the
!     // processing to work:
      }
!   else
      {
!     // Not P-scaled
!     rdigits = field->data.rdigits;
      }
! 
!   switch(field->type)
      {
!     case FldNumericBin5:
!     case FldIndex:
!       retval = binary_initial_from_float128(field, rdigits, value);
!       break;
! 
!     case FldNumericBinary:
!       {
!       retval = binary_initial_from_float128(field, rdigits, value);
!       size_t left = 0;
!       size_t right = field->data.capacity - 1;
!       while(left < right)
!         {
!         std::swap(retval[left++], retval[right--]);
!         }
!       break;
!       }
! 
!     case FldNumericDisplay:
!       {
!       retval = static_cast<char *>(xmalloc(field->data.capacity));
!       gcc_assert(retval);
!       char *pretval = retval;
!       char ach[128];
! 
!       bool negative;
!       if( real_isneg (&value) )
!         {
!           negative = true;
!           value = real_value_negate (&value);
!         }
!       else
!         {
!           negative = false;
!         }
! 
!       digits_from_float128(ach, field, field->data.digits, rdigits, value);
! 
!       const char *digits = ach;
!       if(    (field->attr & signable_e)
!           && (field->attr & separate_e)
!           && (field->attr & leading_e ) )
!         {
!         if( negative )
!           {
!           *pretval++ = internal_minus;
!           }
!         else
!           {
!           *pretval++ = internal_plus;
!           }
!         }
!       for(size_t i=0; i<field->data.digits; i++)
!         {
!         *pretval++ = internal_zero + ((*digits++) & 0x0F);
!         }
!       if(     (field->attr & signable_e)
!           &&  (field->attr & separate_e)
!           && !(field->attr & leading_e ) )
!         {
!         if( negative )
!           {
!           *pretval++ = internal_minus;
!           }
!         else
!           {
!           *pretval++ = internal_plus;
!           }
!         }
!       if(     (field->attr & signable_e)
!           && !(field->attr & separate_e)
!           &&  negative)
!         {
!         if( field->attr & leading_e )
!           {
!           if( internal_is_ebcdic )
!             {
!             retval[0] &= ~NUMERIC_DISPLAY_SIGN_BIT;
!             }
!           else
!             {
!             retval[0] |=  NUMERIC_DISPLAY_SIGN_BIT;
!             }
!           }
!         else
!           {
!           if( internal_is_ebcdic )
!             {
!             pretval[-1] &= ~NUMERIC_DISPLAY_SIGN_BIT;
!             }
!           else
!             {
!             pretval[-1] |=  NUMERIC_DISPLAY_SIGN_BIT;
!             }
!           }
!         }
!       break;
!       }
! 
!     case FldPacked:
!       {
!       retval = static_cast<char *>(xmalloc(field->data.capacity));
!       gcc_assert(retval);
!       char *pretval = retval;
!       char ach[128];
! 
!       bool negative;
!       if( real_isneg (&value) )
!         {
!           negative = true;
!           value = real_value_negate (&value);
!         }
!       else
!         {
!           negative = false;
!         }
! 
!       // For COMP-6 (flagged by separate_e), the number of required digits is
!       // twice the capacity.
! 
!       // For COMP-3, the number of digits is 2*capacity minus 1, because the
!       // the final "digit" is a sign nybble.
! 
!       size_t ndigits =   (field->attr & separate_e)
!                        ? field->data.capacity * 2
!                        : field->data.capacity * 2 - 1;
!       digits_from_float128(ach, field, ndigits, rdigits, value);
! 
!       const char *digits = ach;
!       for(size_t i=0; i<ndigits; i++)
!         {
!         if( !(i & 0x01) )
!           {
!           *pretval    = ((*digits++) & 0x0F)<<4;;
!           }
!         else
!           {
!           *pretval++ += (*digits++) & 0x0F;
!           }
!         }
!       if( !(field->attr & separate_e) )
!         {
!         // This is COMP-3, so put in a sign nybble
!         if( (field->attr & signable_e) )
!           {
!           if( negative )
!             {
!             *pretval++ += 0x0D;   // Means signable and negative
!             }
!           else
!             {
!             *pretval++ += 0x0C;   // Means signable and non-negative
!             }
!           }
!         else
!           {
!           *pretval++ += 0x0F;     // Means not signable
!           }
!         }
!       break;
!       }
! 
!     case FldGroup:
!     case FldAlphanumeric:
!     case FldLiteralA:
!     case FldAlphaEdited:
!       {
!       if( field->data.initial )
!         {
!         retval = static_cast<char *>(xmalloc(field->data.capacity+1));
!         gcc_assert(retval);
!         if( field->attr & hex_encoded_e)
!           {
!           memcpy(retval, field->data.initial, field->data.capacity);
!           }
!         else
!           {
!           size_t buffer_size = 0;
!           size_t length = field->data.capacity;
!           memset(retval, internal_space, length);
!           raw_to_internal(&retval, &buffer_size, field->data.initial, length);
!           if( strlen(field->data.initial) < length )
!             {
!             // If this is true, then the initial string must've been Z'xyz'
!             retval[strlen(field->data.initial)] = '\0';
!             }
!           }
!         retval[field->data.capacity] = '\0';
!         }
!       break;
!       }
! 
!     case FldNumericEdited:
!       {
!       retval = static_cast<char *>(xmalloc(field->data.capacity+1));
!       gcc_assert(retval);
!       if( field->data.initial && field->attr & quoted_e )
!         {
!         // What the programmer says the value is, the value becomes, no
!         // matter how wrong it might be.
!         size_t length = std::min( (size_t)field->data.capacity,
!                                   strlen(field->data.initial));
!         for(size_t i=0; i<length; i++)
!           {
!           retval[i] = ascii_to_internal(field->data.initial[i]);
!           }
!         if( length < (size_t)field->data.capacity )
!           {
!           memset( retval+length,
!                   internal_space,
!                   (size_t)field->data.capacity - length);
!           }
!         }
!       else
!         {
!         // It's not a quoted string, so we use data.value:
!         bool negative;
!         if( real_isneg (&value) )
!           {
!           negative = true;
!           value = real_value_negate (&value);
!           }
!         else
!           {
!           negative = false;
!           }
! 
!         char ach[128];
!         memset(ach, 0, sizeof(ach));
!         memset(retval, 0, field->data.capacity);
! 
!         if( (field->attr & blank_zero_e) && real_iszero (&value) )
!           {
!           memset(retval, internal_space, field->data.capacity);
!           }
!         else
!           {
!           size_t ndigits = field->data.capacity;
!           digits_from_float128(ach, field, ndigits, rdigits, value);
!           /* ???  This resides in libgcobol valconv.cc.  */
!           __gg__string_to_numeric_edited( retval,
!                                           ach,
!                                           field->data.rdigits,
!                                           negative,
!                                           field->data.picture);
!           }
!         }
!       break;
!       }
! 
!     case FldFloat:
!       {
!       retval = static_cast<char *>(xmalloc(field->data.capacity));
!       gcc_assert(retval);
!       switch( field->data.capacity )
!         {
!         case 4:
!           value = real_value_truncate (TYPE_MODE (FLOAT), value);
!           native_encode_real (SCALAR_FLOAT_TYPE_MODE (FLOAT), &value,
!                               PTRCAST(unsigned char, retval), 4, 0);
!           break;
!         case 8:
!           value = real_value_truncate (TYPE_MODE (DOUBLE), value);
!           native_encode_real (SCALAR_FLOAT_TYPE_MODE (DOUBLE), &value,
!                               PTRCAST(unsigned char, retval), 8, 0);
!           break;
!         case 16:
!           value = real_value_truncate (TYPE_MODE (FLOAT128), value);
!           native_encode_real (SCALAR_FLOAT_TYPE_MODE (FLOAT128), &value,
!                               PTRCAST(unsigned char, retval), 16, 0);
!           break;
!         }
!       break;
!       }
! 
!     case FldLiteralN:
!       {
!       break;
!       }
! 
!     default:
!       break;
      }
-   return retval;
-   }
- 
- static void
- actually_create_the_static_field( cbl_field_t *new_var,
-                                   tree data_area,
-                                   size_t length_of_initial_string,
-                                   const char *new_initial,
-                                   tree immediate_parent,
-                                   tree new_var_decl)
-   {
-   tree constr = make_node(CONSTRUCTOR);
-   TREE_TYPE(constr) = cblc_field_type_node;
-   TREE_STATIC(constr)    = 1;
-   TREE_CONSTANT(constr)  = 1;
  
!   tree next_field = TYPE_FIELDS(cblc_field_type_node);
!   // We are going to create the constructors by walking the linked
!   // list of FIELD_DECLs.  We must do it in the same order as the
!   // structure creation code in create_cblc_field_t()
! 
!   //  UCHAR_P, "data",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           data_area );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SIZE_T,  "capacity",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type( SIZE_T,
!                                               new_var->data.capacity) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SIZE_T,  "allocated",
    if( data_area != null_pointer_node )
      {
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             build_int_cst_type( SIZE_T,
!                                                 new_var->data.capacity) );
      }
    else
      {
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             build_int_cst_type( SIZE_T,
!                                                 0) );
      }
! 
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SIZE_T,  "offset",
! 
!   if( new_var->type == FldAlphanumeric &&
!       new_var->attr & intermediate_e )
      {
!     // This is in support of FUNCTION TRIM.  That function can make the capacity
!     // of the intermediate target smaller so that TRIM("abc   ") returns
!     // "abc".  By putting the capacity here for such variables, we have a
!     // mechanism for restoring it the capacity to the original.
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             build_int_cst_type(SIZE_T, new_var->data.capacity));
      }
    else
      {
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             build_int_cst_type(SIZE_T, new_var->offset) );
      }
  
!   next_field = TREE_CHAIN(next_field);
! 
!   //  CHAR_P,  "name",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           gg_string_literal(new_var->name) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  CHAR_P,  "picture",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           gg_string_literal(new_var->data.picture) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  CHAR_P,  "initial",
!   if( length_of_initial_string == 0 )
!     {
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             null_pointer_node );
!     }
!   else
      {
!     CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                             next_field,
!                             build_string_literal(length_of_initial_string, new_initial) );
      }
-     next_field = TREE_CHAIN(next_field);
- 
-   //  CHAR_P,  "parent",
-   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
-                           next_field,
-                           immediate_parent ? gg_get_address_of(immediate_parent) : null_pointer_node );
-   next_field = TREE_CHAIN(next_field);
  
!   //  SIZE_T,     "occurs_lower",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SIZE_T, new_var->occurs.bounds.lower) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SIZE_T,     "occurs_upper");
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SIZE_T, new_var->occurs.bounds.upper) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SIZE_T,     "attr",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SIZE_T, new_var->attr) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SCHAR,     "type",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SCHAR, new_var->type) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SCHAR,     "level",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SCHAR, new_var->level) );
!   next_field = TREE_CHAIN(next_field);
! 
!   //  SCHAR,     "digits",
!   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
!                           next_field,
!                           build_int_cst_type(SCHAR, new_var->data.digits) );
!   next_field = TREE_CHAIN(next_field);
  
-   //  SCHAR,     "rdigits",
-   CONSTRUCTOR_APPEND_ELT( CONSTRUCTOR_ELTS(constr),
-                           next_field,
-                           build_int_cst_type(SCHAR, new_var->data.rdigits) );
-   next_field = TREE_CHAIN(next_field);
  
!   DECL_INITIAL(new_var_decl) = constr;
    }
  
  static void
  psa_global(cbl_field_t *new_var)
    {
-   char *mname = cobol_name_mangler(new_var->name);
-   char ach[2*sizeof(cbl_name_t)];
-   sprintf(ach, "__gg__%s", mname);
-   free(mname);
- 
    if( strcmp(new_var->name, "_VERY_TRUE") == 0 )
      {
      new_var->var_decl_node = boolean_true_node;
--- 16996,17155 ----
    return pow10;
  }
  
! static tree
! convert_data_initial(cbl_field_t * field)
    {
!   // This routine returns a tree from field->data.initial, extended with
!   // a NUL on the end.
!   size_t buffer_size = field->data.capacity() + field->codeset.stride();
!   char *buffer = static_cast<char *>(xmalloc(buffer_size));
!   gcc_assert(buffer);
  
!   size_t nbytes = field->data.capacity();
  
!   const char *converted = field->data.initial;
  
!   // Copy the converted bytes
!   gcc_assert(nbytes < buffer_size);
!   memcpy(buffer, converted, nbytes);
!   charmap_t *charmap = __gg__get_charmap(field->codeset.encoding);
  
!   // Tack on a final NUL
!   charmap->putch(0, buffer, nbytes);
  
+   tree retval = build_string_literal( buffer_size,
+                                       buffer);
+   free(buffer);
    return retval;
    }
  
  static void
! actually_create_the_static_field( cbl_field_t *new_var,
!                                   tree data_area,
!                                   size_t length_of_initial_string,
!                                   const char *new_initial,
!                                   tree immediate_parent,
!                                   tree new_var_decl)
    {
!   // There is a bug in the GCC compiler. For some optimizations and some
!   // settings of -fpie, pathological N-squared time in the middle end can
!   // happen when a structure on the stack has an initialized member pointing
!   // to another memory area on the stack.  In those cases, we are going to
!   // initialize the pointer to zero, and then call a function to initialize
!   // the data member.  That hides things from the compiler's optimization
!   // phases.
  
!   bool read_only = !!TREE_READONLY(new_var_decl);
!   if( new_var->type == FldLiteralN )
      {
!     // For a FldLiteralN the new_var_decl is a number, not a
!     // a cblc_field_t.
!     read_only = true;
      }
  
!   if( new_var->type == FldAlphanumeric && new_var->attr & intermediate_e )
      {
!     // We need not to mess with the intermediate malloc() logic.
!     read_only = true;
      }
  
!   if( new_var->attr & external_e )
      {
!     // We need not to mess with the intermediate malloc() logic.
!     read_only = true;
      }
  
!   //  For FldLiteralN we force the encoding to be ASCII.
!   //  See initial_from_initial() for an explanation.
!   //  For FldClass, we force the encoding to be UTF32; see
!   cbl_encoding_t encoding;
!   if( new_var->type == FldLiteralN )
      {
!     encoding = new_var->codeset.default_encodings.source->type;
      }
!   else if( new_var->type == FldClass )
      {
!     encoding = DEFAULT_32_ENCODING;
      }
!   else
      {
!     encoding = new_var->codeset.encoding;
      }
  
!   tree data = data_area ;
!   tree capacity = build_int_cst_type( SIZE_T, new_var->data.capacity());
!   tree allocated;
    if( data_area != null_pointer_node )
      {
!     allocated = build_int_cst_type(SIZE_T, new_var->data.capacity());
      }
    else
      {
!     allocated = build_int_cst_type(SIZE_T, 0) ;
      }
!   tree offset = build_int_cst_type(SIZE_T, new_var->offset);
!   tree name = gg_string_literal(new_var->name);
!   tree picture = gg_string_literal(new_var->data.picture);
!   tree initial;
!   if( length_of_initial_string == 0 || !new_var->data.has_initial_value() )
      {
!     initial = null_pointer_node;
      }
    else
      {
!     initial = build_string_literal(length_of_initial_string, new_initial);
      }
+   tree parent = immediate_parent ? gg_get_address_of(immediate_parent)
+                                  : null_pointer_node ;
+   tree occurs_lower = build_int_cst_type(SIZE_T, new_var->occurs.bounds.lower);
+   tree occurs_upper = build_int_cst_type(SIZE_T, new_var->occurs.bounds.upper);
+   tree attr = build_int_cst_type(SIZE_T, new_var->attr) ;
+   tree type = build_int_cst_type(SCHAR, new_var->type) ;
+   tree level = build_int_cst_type(SCHAR, new_var->level) ;
+   tree digits = build_int_cst_type(SCHAR, new_var->data.digits) ;
+   tree rdigits = build_int_cst_type(SCHAR, new_var->data.rdigits) ;
+   tree tencoding = build_int_cst_type(INT, encoding);
+   tree alphabet = build_int_cst_type(INT, new_var->codeset.alphabet);
  
!   if( !read_only )
      {
!     data = null_pointer_node;
      }
  
!   gg_structure_type_constructor(
!       new_var_decl,
!       data ,        //  UCHAR_P, "data",
!       capacity,     //  SIZE_T,  "capacity",
!       allocated,    //  SIZE_T,  "allocated",
!       offset,       //  SIZE_T,  "offset",
!       name,         //  CHAR_P,  "name",
!       picture,      //  CHAR_P,  "picture",
!       initial,      //  CHAR_P,  "initial",
!       parent,       //  CHAR_P,  "parent",
!       occurs_lower, //  SIZE_T,  "occurs_lower",
!       occurs_upper, //  SIZE_T,  "occurs_upper");
!       attr,         //  SIZE_T,  "attr",
!       type,         //  SCHAR,   "type",
!       level,        //  SCHAR,   "level",
!       digits,       //  SCHAR,   "digits",
!       rdigits,      //  SCHAR,   "rdigits",
!       tencoding,    //  INT,     "encoding",
!       alphabet);    //  INT,     "alphabet",
  
  
!   if( !read_only && data_area != null_pointer_node )
!     {
!     gg_call(VOID,
!             "__gg__set_data_member",
!             gg_get_address_of(new_var_decl),
!             data_area,
!             NULL_TREE);
!     }
    }
  
  static void
  psa_global(cbl_field_t *new_var)
    {
    if( strcmp(new_var->name, "_VERY_TRUE") == 0 )
      {
      new_var->var_decl_node = boolean_true_node;
*************** psa_global(cbl_field_t *new_var)
*** 16489,16498 ****
      return;
      }
  
!   // global variables already have a cblc_field_t defined in constants.cc
  
!   strcpy(ach, "__gg__");
!   strcat(ach, new_var->name);
    for(size_t i=0; i<strlen(ach); i++)
      {
      ach[i] = _tolower(ach[i]);
--- 17161,17180 ----
      return;
      }
  
!   // global variables already have a cblc_field_t defined in constants.cc.
  
!   // Finding their name is done by converting to lowercase, dashes become
!   // underscores, and "__ggsr__" is prepended.  "filler" gets ignored.
! 
!   // To feed GDB-COBOL's requirements, we tack on this variable's index and
!   // this program's index number:
! 
!   char ach[2*sizeof(cbl_name_t)];
! 
!   snprintf( ach,
!             sizeof(ach),
!             "__ggsr__%s",
!             new_var->name);
    for(size_t i=0; i<strlen(ach); i++)
      {
      ach[i] = _tolower(ach[i]);
*************** psa_global(cbl_field_t *new_var)
*** 16502,16517 ****
        }
      }
  
-   if( strcmp(new_var->name, "RETURN-CODE") == 0 )
-     {
-     strcpy(ach, "__gg__return_code");
-     }
- 
-   if( strcmp(new_var->name, "UPSI-0") == 0 )
-     {
-     strcpy(ach, "__gg__upsi");
-     }
- 
    new_var->var_decl_node = gg_declare_variable(cblc_field_type_node, ach, NULL, vs_external_reference);
  
    // global variables already have a .data area defined.  We can find that
--- 17184,17189 ----
*************** psa_new_var_decl(cbl_field_t *new_var, c
*** 16561,16567 ****
      // to do a linear search of the symbol table for each symbol
  
      if(   !our_index
!           && new_var->type != FldLiteralN
            && !(new_var->attr & intermediate_e))
        {
        our_index = field_index(new_var);
--- 17233,17239 ----
      // to do a linear search of the symbol table for each symbol
  
      if(   !our_index
!           && ! new_var->is_numeric_constant()
            && !(new_var->attr & intermediate_e))
        {
        our_index = field_index(new_var);
*************** psa_new_var_decl(cbl_field_t *new_var, c
*** 16643,16654 ****
                && new_var->type != FldLiteralA
                && new_var->type != FldLiteralN )
        {
! //      new_var_decl = gg_define_variable(  cblc_field_type_node,
! //                                          base_name,
! //                                          vs_static);
        new_var_decl = gg_define_variable(  cblc_field_type_node,
                                            base_name,
!                                           vs_stack);
        SET_DECL_MODE(new_var_decl, BLKmode);
        }
      else
--- 17315,17334 ----
                && new_var->type != FldLiteralA
                && new_var->type != FldLiteralN )
        {
!       gg_variable_scope_t scope = vs_stack;
!       if( new_var->type == FldAlphanumeric )
!         {
!         // This has to be static, because we are putting the actual memory
!         // on the heap.  But if we put the cblc_field_t on the stack inside
!         // of a condition, or in a loop, we just keep recreating the field
!         // without getting freeing the memory.  Eventually, with perhaps a
!         // two-pass compiler, we'll be able to create the stack cblc_field_t
!         // once per program-id.
!         scope = vs_static;
!         }
        new_var_decl = gg_define_variable(  cblc_field_type_node,
                                            base_name,
!                                           scope);
        SET_DECL_MODE(new_var_decl, BLKmode);
        }
      else
*************** psa_new_var_decl(cbl_field_t *new_var, c
*** 16662,16668 ****
    return new_var_decl;
    }
  
- #if 1
  static void
  psa_FldLiteralA(struct cbl_field_t *field )
    {
--- 17342,17347 ----
*************** psa_FldLiteralA(struct cbl_field_t *fiel
*** 16681,16789 ****
      }
  
    // We are constructing a completely static constant structure.  We know the
!   // capacity.  We'll create it from the data.initial.  The cblc_field_t:data
!   // will be an ASCII/EBCDIC copy of the .initial data. The .initial will be
!   // left as ASCII.  The var_decl_node will be an ordinary cblc_field_t, which
!   // means that at this point in time, a FldLiteralA can be used anywhere a
!   // FldGroup or FldAlphanumeric can be used.  We are counting on the parser
!   // not allowing a FldLiteralA to be a left-hand-side variable.
! 
!   // First make room
!   static size_t buffer_size = 1024;
!   static char *buffer = static_cast<char *>(xmalloc(buffer_size));
!   if( buffer_size < field->data.capacity+1 )
!     {
!     buffer_size = field->data.capacity+1;
!     buffer = static_cast<char *>(xrealloc(buffer, buffer_size));
!     }
!   gcc_assert(buffer);
! 
!   cbl_figconst_t figconst = cbl_figconst_of( field->data.initial );
!   gcc_assert(figconst == normal_value_e);
! 
!   if( internal_codeset_is_ebcdic() )
!     {
!     for( size_t i=0; i<field->data.capacity; i++ )
!       {
!       buffer[i] = ascii_to_internal(field->data.initial[i]);
!       }
!     }
!   else
!     {
!     memcpy(buffer, field->data.initial, field->data.capacity);
!     }
!   buffer[field->data.capacity] = '\0';
  
!   // We have the original nul-terminated text at data.initial.  We have a
!   // copy of it in buffer[] in the internal codeset.
  
    static const char name_base[] = "_literal_a_";
  
!   // We will reuse a single static structure for each string
!   static std::unordered_map<std::string, int> seen_before;
! 
!   std::string field_string(buffer);
! 
! #if 0
!   /*  This code is suppoed to re-use literals, and seems to work just fine in
!       x86_64-linux and on an Apple aarch64 M1 Macbook Pro.  But on an M1
!       mini, using -Os optimization, attempts were made in the generated
!       assembly language to define _literal_a_1 more than once.
! 
!       I didn't know how to try to track this one down, so I decided simply to
!       punt by removing the code.
! 
!       I am leaving the code here because of a conviction that it someday should
!       be tracked down. */
! 
!   std::unordered_map<std::string, int>::const_iterator it =
!               seen_before.find(field_string);
  
!   if( it != seen_before.end() )
!     {
!     // We've seen that string before.
!     int nvar = it->second;
!     char ach[32];
!     sprintf(ach, "%s%d", name_base, nvar);
!     field->var_decl_node = gg_declare_variable(cblc_field_type_node,
!                                                   ach,
!                                                   NULL,
!                                                   vs_file_static);
!     }
!   else
! #endif
!     {
!     // We have not seen that string before
!     static int nvar = 0;
!     nvar += 1;
!     seen_before[field_string] = nvar;
  
!     char ach[32];
!     sprintf(ach, "%s%d", name_base, nvar);
!     field->var_decl_node  = gg_define_variable( cblc_field_type_node,
!                                                 ach,
!                                                 vs_file_static);
!     actually_create_the_static_field(
!                 field,
!                 build_string_literal(field->data.capacity+1,
!                                      buffer),
!                 field->data.capacity+1,
!                 field->data.initial,
!                 NULL_TREE,
!                 field->var_decl_node);
!     TREE_READONLY(field->var_decl_node) = 1;
!     TREE_USED(field->var_decl_node) = 1;
!     TREE_STATIC(field->var_decl_node) = 1;
!     DECL_PRESERVE_P (field->var_decl_node) = 1;
!     }
! //  TRACE1
! //    {
! //    TRACE1_INDENT
! //    TRACE1_TEXT("Finished")
! //    TRACE1_END
! //    }
    }
- #endif
  
  void
  parser_local_add(struct cbl_field_t *new_var )
--- 17360,17392 ----
      }
  
    // We are constructing a completely static constant structure.  We know the
!   // capacity.  We'll create it from the data.initial.
  
!   tree converted = convert_data_initial(field);
  
    static const char name_base[] = "_literal_a_";
  
!   static int nvar = 0;
!   nvar += 1;
  
!   char ach[32];
!   sprintf(ach, "%s%d", name_base, nvar);
!   field->var_decl_node  = gg_define_variable( cblc_field_type_node,
!                                               ach,
!                                               vs_file_static);
!   TREE_READONLY(field->var_decl_node) = 1;
!   TREE_USED(field->var_decl_node) = 1;
!   TREE_STATIC(field->var_decl_node) = 1;
!   DECL_PRESERVE_P (field->var_decl_node) = 1;
  
!   actually_create_the_static_field(
!               field,
!               converted,
!               strlen(field->data.original())+1,
!               field->data.original(),
!               NULL_TREE,
!               field->var_decl_node);
    }
  
  void
  parser_local_add(struct cbl_field_t *new_var )
*************** parser_local_add(struct cbl_field_t *new
*** 16812,16823 ****
    if( new_var->level == LEVEL01 || new_var->level == LEVEL77)
      {
      // We need to allocate memory on the stack for this variable
!     tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity);
      tree data_decl_node = gg_define_variable( array_type,
                                                      NULL,
                                                      vs_stack);
      gg_assign( member(new_var->var_decl_node, "data"),
!                       gg_get_address_of(data_decl_node) );
      }
    cbl_refer_t wrapper;
    wrapper.field = new_var;
--- 17415,17426 ----
    if( new_var->level == LEVEL01 || new_var->level == LEVEL77)
      {
      // We need to allocate memory on the stack for this variable
!     tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
      tree data_decl_node = gg_define_variable( array_type,
                                                      NULL,
                                                      vs_stack);
      gg_assign( member(new_var->var_decl_node, "data"),
!                       gg_pointer_to_array(data_decl_node) );
      }
    cbl_refer_t wrapper;
    wrapper.field = new_var;
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16847,16883 ****
    Analyze();
    SHOW_PARSE
      {
!     do
!       {
!       fprintf(stderr, "( %d ) %s:", CURRENT_LINE_NUMBER, __func__);
!       }
!     while(0);
  
!     fprintf(stderr, " %2.2u %s<%s> off:" HOST_SIZE_T_PRINT_UNSIGNED " "
                      "msiz:%u cap:%u dig:%u rdig:%d attr:0x" HOST_SIZE_T_PRINT_HEX_PURE " loc:%p",
              new_var->level,
              new_var->name,
              cbl_field_type_str(new_var->type),
              (fmt_size_t)new_var->offset,
              new_var->data.memsize,
!             new_var->data.capacity,
              new_var->data.digits,
              new_var->data.rdigits,
              (fmt_size_t)new_var->attr,
              static_cast<void*>(new_var));
  
      if( is_table(new_var) )
        {
!       fprintf(stderr," OCCURS:" HOST_SIZE_T_PRINT_DEC,
                (fmt_size_t)new_var->occurs.ntimes());
        }
      const cbl_field_t *parent = parent_of(new_var);
      if( parent )
        {
!       fprintf(stderr,
                " parent:(" HOST_SIZE_T_PRINT_DEC ")%s",
                (fmt_size_t)new_var->parent,
                parent->name);
        }
      else
        {
--- 17450,17486 ----
    Analyze();
    SHOW_PARSE
      {
!     char ach[1024];
!     SHOW_PARSE_HEADER
  
!     sprintf(ach, " %2.2u %s<%s> off:" HOST_SIZE_T_PRINT_UNSIGNED " "
                      "msiz:%u cap:%u dig:%u rdig:%d attr:0x" HOST_SIZE_T_PRINT_HEX_PURE " loc:%p",
              new_var->level,
              new_var->name,
              cbl_field_type_str(new_var->type),
              (fmt_size_t)new_var->offset,
              new_var->data.memsize,
!             new_var->data.capacity(),
              new_var->data.digits,
              new_var->data.rdigits,
              (fmt_size_t)new_var->attr,
              static_cast<void*>(new_var));
+     SHOW_PARSE_TEXT(ach)
  
      if( is_table(new_var) )
        {
!       sprintf(ach, " OCCURS:" HOST_SIZE_T_PRINT_DEC,
                (fmt_size_t)new_var->occurs.ntimes());
+       SHOW_PARSE_TEXT(ach)
        }
      const cbl_field_t *parent = parent_of(new_var);
      if( parent )
        {
!       sprintf(ach,
                " parent:(" HOST_SIZE_T_PRINT_DEC ")%s",
                (fmt_size_t)new_var->parent,
                parent->name);
+       SHOW_PARSE_TEXT(ach)
        }
      else
        {
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16888,16900 ****
          const symbol_elem_t *e = symbol_at(parent_index);
          if( e->type == SymFile )
            {
!           fprintf(stderr,
                    " parent_file:(" HOST_SIZE_T_PRINT_DEC ")%s",
                    (fmt_size_t)new_var->parent,
                    e->elem.file.name);
            if( e->elem.file.attr & external_e )
              {
!             fprintf(stderr, " (flagged external)");
              }
            }
          }
--- 17491,17505 ----
          const symbol_elem_t *e = symbol_at(parent_index);
          if( e->type == SymFile )
            {
!           sprintf(ach,
                    " parent_file:(" HOST_SIZE_T_PRINT_DEC ")%s",
                    (fmt_size_t)new_var->parent,
                    e->elem.file.name);
+           SHOW_PARSE_TEXT(ach)
            if( e->elem.file.attr & external_e )
              {
!             sprintf(ach, " (flagged external)");
!             SHOW_PARSE_TEXT(ach)
              }
            }
          }
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16902,16919 ****
  
      if( symbol_redefines(new_var) )
        {
!       fprintf(stderr,
                " redefines:(%p)%s",
                static_cast<void*>(symbol_redefines(new_var)),
                symbol_redefines(new_var)->name);
        }
  
      SHOW_PARSE_END
      }
  
    if( new_var->level == 1  && new_var->occurs.bounds.upper )
      {
!     if( new_var->data.memsize < new_var->data.capacity * new_var->occurs.bounds.upper )
        {
        cbl_internal_error("LEVEL 01 (%s) OCCURS "
                           "has insufficient data.memsize", new_var->name);
--- 17507,17554 ----
  
      if( symbol_redefines(new_var) )
        {
!       sprintf(ach,
                " redefines:(%p)%s",
                static_cast<void*>(symbol_redefines(new_var)),
                symbol_redefines(new_var)->name);
+       SHOW_PARSE_TEXT(ach)
        }
  
+     if(    new_var->type == FldGroup
+         || new_var->type == FldAlphanumeric
+         || new_var->type == FldNumericEdited
+         || new_var->type == FldAlphaEdited
+         || new_var->type == FldLiteralA
+         )
+       {
+       if(    new_var->data.initial
+           && new_var->data.capacity()
+           && !(new_var->attr & intermediate_e) )
+         {
+         SHOW_PARSE_INDENT
+         for(size_t i=0; i<new_var->data.capacity(); i++)
+           {
+           fprintf(stderr, "%2.2X ", static_cast<unsigned char>(new_var->data.initial[i]));
+           }
+         }
+       }
+     if( new_var->data.original() && strlen(new_var->data.original()) )
+       {
+       SHOW_PARSE_INDENT
+       sprintf(ach,
+               "\"%s\" (%d)",
+               new_var->data.original(),
+               static_cast<int>(strlen(new_var->data.original())));
+       SHOW_PARSE_TEXT(ach);
+       }
      SHOW_PARSE_END
      }
  
+   RETURN_WHEN_HIJACKED;
+ 
    if( new_var->level == 1  && new_var->occurs.bounds.upper )
      {
!     if( new_var->data.memsize < new_var->data.capacity() * new_var->occurs.bounds.upper )
        {
        cbl_internal_error("LEVEL 01 (%s) OCCURS "
                           "has insufficient data.memsize", new_var->name);
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16922,16950 ****
  
    if( new_var->var_decl_node )
      {
!     if( new_var->type != FldConditional )
!       {
!       // There is a possibility when re-using variables that a temporary that
!       // was created at compile time might not have a data pointer at run time.
!       if( new_var->attr & (intermediate_e) )
!         {
!         IF( member(new_var->var_decl_node, "allocated"),
!             lt_op,
!             member(new_var->var_decl_node, "capacity") )
!           {
!           gg_free(member(new_var, "data"));
!           gg_assign(member(new_var, "data"),
!                     gg_cast(UCHAR_P, gg_malloc(new_var->data.capacity)));
!           gg_assign(member(new_var, "allocated"),
!                     build_int_cst_type(SIZE_T, new_var->data.capacity));
!           }
!         ELSE
!           {
!           }
!         ENDIF
!         }
!       }
!     else
        {
        gg_assign(new_var->var_decl_node, boolean_false_node);
        }
--- 17557,17563 ----
  
    if( new_var->var_decl_node )
      {
!     if( new_var->type == FldConditional )
        {
        gg_assign(new_var->var_decl_node, boolean_false_node);
        }
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16956,16973 ****
      {
      cbl_field_type_t incoming_type = new_var->type;
  
!     if( is_register_field(new_var) )
        {
        psa_global(new_var);
        goto done;
        }
  
-     if( new_var->type == FldBlob )
-       {
-       psa_FldBlob(new_var);
-       goto done;
-       }
- 
      if( new_var->type == FldLiteralA )
        {
        new_var->data.picture = "";
--- 17569,17580 ----
      {
      cbl_field_type_t incoming_type = new_var->type;
  
!     if( new_var->attr & register_e )
        {
        psa_global(new_var);
        goto done;
        }
  
      if( new_var->type == FldLiteralA )
        {
        new_var->data.picture = "";
*************** parser_symbol_add(struct cbl_field_t *ne
*** 16978,16989 ****
      size_t length_of_initial_string = 0;
      const char *new_initial = NULL;
  
-     // gg_printf("parser_symbol_add %s\n", build_string_literal( strlen(new_var->name)+1, new_var->name), NULL_TREE);
- 
-     // If we are dealing with an alphanumeric, and it is not hex_encoded, we
-     // want to convert to single-byte-encoding (if it happens to be UTF-8) and
-     // to EBCDIC, if EBCDIC is in force:
- 
      //  Make sure we have a new variable to work with.
      if( !new_var )
        {
--- 17585,17590 ----
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17014,17020 ****
        TRACE1_END
        }
  
!     if( is_table(new_var) && new_var->data.capacity == 0)
        {
        cbl_internal_error(
            "%s: %d %s is a table, but it improperly has a capacity of zero",
--- 17615,17621 ----
        TRACE1_END
        }
  
!     if( is_table(new_var) && new_var->data.capacity() == 0)
        {
        cbl_internal_error(
            "%s: %d %s is a table, but it improperly has a capacity of zero",
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17073,17079 ****
                            "%<var_decl_node%>", __func__, new_var->name);
        }
  
!     switch( new_var->type )
        {
        static int counter=1;
        char ach[2*sizeof(cbl_name_t)];
--- 17674,17680 ----
                            "%<var_decl_node%>", __func__, new_var->name);
        }
  
!     switch( new_var->type ) // Trap_here for ordinary variables.
        {
        static int counter=1;
        char ach[2*sizeof(cbl_name_t)];
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17093,17099 ****
      if(    new_var->type == FldNumericBinary
          || new_var->type == FldNumericBin5 )
        {
!       switch( new_var->data.capacity )
          {
          case 1:
          case 2:
--- 17694,17700 ----
      if(    new_var->type == FldNumericBinary
          || new_var->type == FldNumericBin5 )
        {
!       switch( new_var->data.capacity() )
          {
          case 1:
          case 2:
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17106,17112 ****
                    "%s is type %s and has capacity %u\n",
                    new_var->name,
                    cbl_field_type_str(new_var->type),
!                   new_var->data.capacity);
            gcc_unreachable();
            break;
          }
--- 17707,17713 ----
                    "%s is type %s and has capacity %u\n",
                    new_var->name,
                    cbl_field_type_str(new_var->type),
!                   new_var->data.capacity());
            gcc_unreachable();
            break;
          }
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17114,17122 ****
  
      size_t level_88_string_size = 0;
      char *level_88_string = NULL;
      if( ancestor )
        {
!       level_88_string = get_level_88_domain(ancestor->data.capacity, new_var, level_88_string_size);
        }
  
      if( !new_var->data.picture )
--- 17715,17747 ----
  
      size_t level_88_string_size = 0;
      char *level_88_string = NULL;
+     char *class_string = NULL;
      if( ancestor )
        {
!       level_88_string = get_level_88_domain(ancestor->data.capacity(),
!                                             new_var,
!                                             level_88_string_size);
!       if( level_88_string )
!         {
!         // At this point, the string is in source_code encoding, no matter what
!         // the variable's encoding might be.  In the run-time, we will be doing
!         // any comparisons of text strings using UTF32 (because that's how we
!         // handle somebody specifying a UTF-8 exec-charset.)  Rather than
!         // convert this string at run-time, we convert it here:
!         size_t converted_length;
!         const char *converted = __gg__iconverter(
!                                  new_var->codeset.default_encodings.source->type,
!                                  DEFAULT_32_ENCODING,
!                                  level_88_string,
!                                  level_88_string_size,  // Convert the NUL
!                                  &converted_length);
!         level_88_string_size = converted_length;
!         level_88_string = static_cast<char *>(xrealloc(level_88_string,
!                                                        level_88_string_size));
!         memcpy(level_88_string, converted, level_88_string_size);
!         // level_88_string is now a UTF32 string with a terminating four-byte
!         // NUL.
!         }
        }
  
      if( !new_var->data.picture )
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17136,17165 ****
  
      if( new_var->type == FldClass && new_var->level != 88 )
        {
!       new_var->data.initial = get_class_condition_string(new_var);
        }
! 
!     if( new_var->type == FldLiteralA )
        {
!       length_of_initial_string = new_var->data.capacity;
        }
!     else if( new_var->data.initial && new_var->data.initial[0] != '\0' )
        {
        if( new_var->type == FldClass )
          {
!         length_of_initial_string = strlen(new_var->data.initial)+1;
          }
        else if( new_var->type == FldNumericDisplay )
          {
!         length_of_initial_string = strlen(new_var->data.initial)+1;
          }
        else
          {
!         // This is an ordinary string
!         // fprintf(stderr, ">>>>>>> parser_symbol_add %s %s \n", cbl_field_type_str(new_var->type), new_var->name);
!         // fprintf(stderr, "        %d %d\n", (int)strlen(new_var->data.initial), (int)new_var->data.capacity);
!         //length_of_initial_string = strlen(new_var->data.initial) + 1;
!         length_of_initial_string = new_var->data.capacity + 1;
          }
        }
      else
--- 17761,17787 ----
  
      if( new_var->type == FldClass && new_var->level != 88 )
        {
!       class_string = get_class_condition_string(new_var);
!       length_of_initial_string = strlen(class_string)+1;
!       new_initial = class_string;
        }
!     else if( new_var->type == FldLiteralA )
        {
!       length_of_initial_string = new_var->data.capacity();
        }
!     else if( new_var->data.original() && new_var->data.original()[0] != '\0' )
        {
        if( new_var->type == FldClass )
          {
!         length_of_initial_string = strlen(new_var->data.original())+1;
          }
        else if( new_var->type == FldNumericDisplay )
          {
!         length_of_initial_string = strlen(new_var->data.original())+1;
          }
        else
          {
!         length_of_initial_string = new_var->data.capacity() + 1;
          }
        }
      else
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17177,17187 ****
            && new_var->type != FldLiteralN
            && !(new_var->attr & intermediate_e))
        {
!       // During the early stages of implementing cbl_field_t::our_index, there
!       // were execution paths in parse.y and parser.cc that resulted in
!       // our_index not being set.  Those should be gone.
!       fprintf(stderr, "our_index is NULL under unanticipated circumstances");
!       gcc_assert(false);
        }
  
      // When we create the cblc_field_t structure, we need a data pointer
--- 17799,17812 ----
            && new_var->type != FldLiteralN
            && !(new_var->attr & intermediate_e))
        {
!       if( ! (new_var->type == FldFloat && new_var->has_attr(constant_e)) )
!         {
!         // N.B. If level is 0 then we're not participating in a hierarchy.
!         // During the early stages of implementing cbl_field_t::our_index, there
!         // were execution paths in parse.y and parser.cc that resulted in
!         // our_index not being set.  Those should be gone.
!         cbl_errx("%<our_index%> is NULL under unanticipated circumstances");
!         }
        }
  
      // When we create the cblc_field_t structure, we need a data pointer
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17254,17264 ****
       * As of Tue Apr  4 10:29:35 2023, we support 01 CONSTANT numeric values as follows:
       * 1.  FldNumericBin5
       * 2.  always constant_e, also potentially global_e
!      * 3.  compile-time value in cbl_field_data_t::value
       * 4.  cbl_field_data_t::capacity is 0 because it requires no working storage
       */
  
!     if( new_var->data.capacity == 0
          && new_var->level != 88
          && new_var->type  != FldClass
          && new_var->type  != FldLiteralN
--- 17879,17891 ----
       * As of Tue Apr  4 10:29:35 2023, we support 01 CONSTANT numeric values as follows:
       * 1.  FldNumericBin5
       * 2.  always constant_e, also potentially global_e
!      * 3.  compile-time value in cbl_field_data_t::valuer
       * 4.  cbl_field_data_t::capacity is 0 because it requires no working storage
       */
  
!     if(    new_var->data.capacity() == 0
!         && !(   new_var->type == FldAlphanumeric
!              && new_var->attr & intermediate_e)
          && new_var->level != 88
          && new_var->type  != FldClass
          && new_var->type  != FldLiteralN
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17275,17281 ****
  
      if( level_88_string )
        {
!       new_var->data.initial = level_88_string;
        length_of_initial_string = level_88_string_size;
        }
  
--- 17902,17909 ----
  
      if( level_88_string )
        {
!       new_var->data.original(level_88_string);
!       new_initial = level_88_string;
        length_of_initial_string = level_88_string_size;
        }
  
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17285,17296 ****
        {
        char achDataName[256];
        sprintf(achDataName, "__%s_vardata", external_record_base);
!       tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity);
        new_var->data_decl_node = gg_define_variable(
                            array_type,
                            achDataName,
                            vs_external);
!       data_area = gg_get_address_of(new_var->data_decl_node);
        goto actual_allocate;
        }
  
--- 17913,17924 ----
        {
        char achDataName[256];
        sprintf(achDataName, "__%s_vardata", external_record_base);
!       tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
        new_var->data_decl_node = gg_define_variable(
                            array_type,
                            achDataName,
                            vs_external);
!       data_area = gg_pointer_to_array(new_var->data_decl_node);
        goto actual_allocate;
        }
  
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17316,17324 ****
          {
          // Create a static array of UCHAR, and make that the data_decl_node
          // size_t bytes_to_allocate = new_var->data.memsize ?
!                                 // new_var->data.memsize : new_var->data.capacity;
          size_t bytes_to_allocate = std::max(new_var->data.memsize,
!                                             new_var->data.capacity);
  
          // A FldClass actually doesn't need any bytes, because the only important
          // thing about it is the .initial field.  We will allocate a single byte,
--- 17944,17952 ----
          {
          // Create a static array of UCHAR, and make that the data_decl_node
          // size_t bytes_to_allocate = new_var->data.memsize ?
!                                 // new_var->data.memsize : new_var->data.capacity();
          size_t bytes_to_allocate = std::max(new_var->data.memsize,
!                                             new_var->data.capacity());
  
          // A FldClass actually doesn't need any bytes, because the only important
          // thing about it is the .initial field.  We will allocate a single byte,
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17329,17335 ****
            bytes_to_allocate = 1;
            }
  
!         if( !bytes_to_allocate )
            {
            cbl_internal_error( "%<bytes_to_allocate%> is zero for %s (symbol number "
                                HOST_SIZE_T_PRINT_DEC ")",
--- 17957,17963 ----
            bytes_to_allocate = 1;
            }
  
!         if( !bytes_to_allocate && !(new_var->attr & intermediate_e) )
            {
            cbl_internal_error( "%<bytes_to_allocate%> is zero for %s (symbol number "
                                HOST_SIZE_T_PRINT_DEC ")",
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17355,17430 ****
              }
            }
  
!         if( bytes_to_allocate )
            {
!           // We need a unique name for the allocated data for this COBOL variable:
!           char achDataName[256];
!           if( new_var->attr & external_e )
!             {
!             sprintf(achDataName, "%s", new_var->name);
!             }
!           else if( new_var->name[0] == '_' )
!             {
!             // Avoid doubling up on leading underscore
!             sprintf(achDataName,
!                     "%s_data_" HOST_SIZE_T_PRINT_UNSIGNED,
!                     new_var->name,
!                     (fmt_size_t)sv_data_name_counter++);
!             }
!           else
              {
!             sprintf(achDataName,
!                     "_%s_data_" HOST_SIZE_T_PRINT_UNSIGNED,
!                     new_var->name,
!                     (fmt_size_t)sv_data_name_counter++);
!             }
  
!           if( new_var->attr & external_e )
!             {
!             tree array_type = build_array_type_nelts(UCHAR, bytes_to_allocate);
!             new_var->data_decl_node = gg_define_variable(
!                                 array_type,
!                                 achDataName,
!                                 vs_external);
!             data_area = gg_get_address_of(new_var->data_decl_node);
!             }
!           else
!             {
!             gg_variable_scope_t vs_scope = (new_var->attr & intermediate_e)
!                                             ? vs_stack : vs_static ;
!             tree array_type = build_array_type_nelts(UCHAR, bytes_to_allocate);
!             new_var->data_decl_node = gg_define_variable(
!                                 array_type,
!                                 achDataName,
!                                 vs_scope);
!             data_area = gg_get_address_of(new_var->data_decl_node);
              }
            }
          }
        }
  
!     if( new_var->data.initial )
!       {
!       new_initial = initial_from_initial(new_var);
!       }
!     if( new_initial )
!       {
!       switch(new_var->type)
!         {
!         case FldGroup:
!         case FldAlphanumeric:
!         case FldLiteralA:
!           length_of_initial_string = new_var->data.capacity+1;
!           break;
! 
!         default:
!           length_of_initial_string = new_var->data.capacity;
!           break;
!         }
!       }
!     else
        {
!       new_initial = new_var->data.initial;
        }
  
      actual_allocate:
--- 17983,18053 ----
              }
            }
  
!         if(   new_var->attr & intermediate_e
!            && new_var->type == FldAlphanumeric )
            {
!           // We don't allocate here for intermediates.  We instead use
!           // malloc() in the library when a run-time value is assigned to this
!           // variable
!           data_area = null_pointer_node;
!           }
!         else
!           {
!           if( bytes_to_allocate )
              {
!             // We need a unique name for the allocated data for this COBOL variable:
!             char achDataName[256];
!             if( new_var->attr & external_e )
!               {
!               sprintf(achDataName, "%s", new_var->name);
!               }
!             else if( new_var->name[0] == '_' )
!               {
!               // Avoid doubling up on leading underscore
!               sprintf(achDataName,
!                       "%s_data_" HOST_SIZE_T_PRINT_UNSIGNED,
!                       new_var->name,
!                       (fmt_size_t)sv_data_name_counter++);
!               }
!             else
!               {
!               sprintf(achDataName,
!                       "_%s_data_" HOST_SIZE_T_PRINT_UNSIGNED,
!                       new_var->name,
!                       (fmt_size_t)sv_data_name_counter++);
!               }
  
!             if( new_var->attr & external_e )
!               {
!               tree array_type = build_array_type_nelts(UCHAR, bytes_to_allocate);
!               new_var->data_decl_node = gg_define_variable(
!                                   array_type,
!                                   achDataName,
!                                   vs_external);
!               data_area = gg_pointer_to_array(new_var->data_decl_node);
!               }
!             else
!               {
!               gg_variable_scope_t vs_scope = (new_var->attr & intermediate_e)
!                                               ? vs_stack : vs_static ;
!               tree array_type = build_array_type_nelts(UCHAR, bytes_to_allocate);
!               new_var->data_decl_node = gg_define_variable(
!                                   array_type,
!                                   achDataName,
!                                   vs_scope);
!               data_area = gg_pointer_to_array(new_var->data_decl_node);
!               }
              }
            }
          }
        }
  
!     // At this point, new_initial might have been set by
!     // get_class_condition_string.  If not, we set it another way:
!     if( !level_88_string && !class_string)
        {
!       new_initial = const_cast<char *>(new_var->data.initial);
!       length_of_initial_string = new_var->data.capacity();
        }
  
      actual_allocate:
*************** parser_symbol_add(struct cbl_field_t *ne
*** 17434,17446 ****
                                        new_initial,
                                        immediate_parent,
                                        new_var_decl);
  
!     if( level_88_string )
!       {
!       free(level_88_string);
!       }
! 
!     if(  !(new_var->attr & ( linkage_e | based_e)) )
        {
        static const bool explicitly = false;
        static const bool just_once = true;
--- 18057,18067 ----
                                        new_initial,
                                        immediate_parent,
                                        new_var_decl);
+     free(level_88_string);
+     free(class_string);
  
!     if(    !(new_var->attr & ( linkage_e | based_e))
!         && !(new_var->type == FldLiteralN) )
        {
        static const bool explicitly = false;
        static const bool just_once = true;
diff -Nrcpad gcc-15.2.0/gcc/cobol/genapi.h gcc-16.1.0-RC-20260423/gcc/cobol/genapi.h
*** gcc-15.2.0/gcc/cobol/genapi.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genapi.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
*************** void parser_accept_date_dow( cbl_field_t
*** 81,87 ****
  void parser_accept_date_hhmmssff( cbl_field_t *tgt );
  
  void
! parser_alphabet( cbl_alphabet_t& alphabet );
  void
  parser_alphabet_use( cbl_alphabet_t& alphabet );
  
--- 81,87 ----
  void parser_accept_date_hhmmssff( cbl_field_t *tgt );
  
  void
! parser_alphabet( const cbl_alphabet_t& alphabet );
  void
  parser_alphabet_use( cbl_alphabet_t& alphabet );
  
*************** parser_allocate( cbl_refer_t size_or_bas
*** 90,95 ****
--- 90,107 ----
  void
  parser_free( size_t n, cbl_refer_t refers[] );
  
+ void parser_xml_parse( cbl_label_t *stmt,
+                        cbl_refer_t input,
+                        cbl_field_t *encoding,
+                        cbl_field_t *validating,
+                        bool returns_national,
+                        cbl_label_t *from_proc,
+                        cbl_label_t *to_proc );
+ 
+ void parser_xml_on_exception( cbl_label_t *name );
+ void parser_xml_not_exception( cbl_label_t *name );
+ void parser_xml_end( cbl_label_t *name );
+ 
  void
  parser_add( size_t nC, cbl_num_result_t *C,
              size_t nA, cbl_refer_t *A,
*************** parser_see_stop_run( struct cbl_refer_t
*** 260,274 ****
  void
  parser_program_hierarchy( const struct cbl_prog_hier_t& hier );
  void
! parser_end_program(const char *name=NULL);
  
  void parser_sleep(const cbl_refer_t &seconds);
  
! void parser_exit( const cbl_refer_t& refer, ec_type_t = ec_none_e );
  void parser_exit_section(void);
  void parser_exit_paragraph(void);
  void parser_exit_perform( struct cbl_perform_tgt_t *tgt, bool cycle );
! void parser_exit_program(void); // exits back to COBOL only, else continue
  
  void
  parser_exhibit( bool changed, bool named,
--- 272,287 ----
  void
  parser_program_hierarchy( const struct cbl_prog_hier_t& hier );
  void
! parser_end_program(const char *name);
  
  void parser_sleep(const cbl_refer_t &seconds);
  
! void parser_exit( const cbl_refer_t& refer,
!                   ec_type_t = ec_none_e );
  void parser_exit_section(void);
  void parser_exit_paragraph(void);
  void parser_exit_perform( struct cbl_perform_tgt_t *tgt, bool cycle );
! void parser_exit_program(); // exits back to COBOL only, else continue
  
  void
  parser_exhibit( bool changed, bool named,
*************** parser_label_label( struct cbl_label_t *
*** 322,327 ****
--- 335,343 ----
  void
  parser_label_goto( struct cbl_label_t *label );
  
+ callback_t *
+ parser_label_addr( struct cbl_label_t *label );
+ 
  void
  parser_goto( cbl_refer_t value, size_t narg, cbl_label_t * const labels[] );
  
*************** parser_file_rewrite( cbl_file_t *file, c
*** 385,390 ****
--- 401,412 ----
  void
  parser_file_delete( cbl_file_t *file, bool sequentially );
  
+ void parser_file_delete_file( cbl_label_t *name,
+                               std::vector<cbl_file_t*> filenames );
+ void parser_file_delete_on_exception( cbl_label_t *name );
+ void parser_file_delete_not_exception( cbl_label_t *name );
+ void parser_file_delete_end( cbl_label_t *name );
+ 
  #if condition_lists
  struct cbl_conditional_t {
    cbl_field_t *tgt;
*************** void
*** 449,454 ****
--- 471,490 ----
  parser_exception_file( cbl_field_t *tgt, cbl_file_t* file = NULL );
  
  void
+ parser_intrinsic_convert(cbl_field_t *tgt,
+                          const cbl_refer_t& input,                           
+                          convert_type_t src_fmt, 
+                          unsigned int   dst_fmt );
+ 
+ void
+ parser_intrinsic_find_string(cbl_field_t *tgt,
+                              const cbl_refer_t& haystack,
+                              const cbl_refer_t& needle,
+                              const cbl_refer_t *after,
+                              bool last,
+                              bool anycase);
+ 
+ void
  parser_module_name( cbl_field_t *tgt, module_type_t type );
  
  void
*************** void parser_exception_raise(ec_type_t ec
*** 536,543 ****
  void parser_call_exception( cbl_label_t *name );
  void parser_call_exception_end( cbl_label_t *name );
  
- //void parser_stash_exceptions(const cbl_enabled_exceptions_array_t *enabled);
- 
  void parser_match_exception(cbl_field_t *index);
  void parser_check_fatal_exception();
  void parser_clear_exception();
--- 572,577 ----
*************** void parser_call( cbl_refer_t name,
*** 560,567 ****
  
  void parser_entry_activate( size_t iprog, const cbl_label_t *declarative );
  
! void parser_entry( cbl_field_t *name,
!                    size_t narg = 0, cbl_ffi_arg_t args[] = NULL);
  
  bool is_ascending_key(const cbl_refer_t& key);
  
--- 594,602 ----
  
  void parser_entry_activate( size_t iprog, const cbl_label_t *declarative );
  
! void parser_entry( const cbl_field_t *name,
!                    size_t narg = 0,
!                    cbl_ffi_arg_t args[] = NULL);
  
  bool is_ascending_key(const cbl_refer_t& key);
  
*************** void parser_init_list();
*** 584,589 ****
--- 619,625 ----
  tree file_static_variable(tree type, const char *name);
  
  void parser_statement_begin( const cbl_name_t name, tree ecs, tree dcls );
+ void parser_statement_end( const std::list<cbl_field_t*>& );
  
  tree parser_compile_ecs( const std::vector<uint64_t>& ecs );
  tree parser_compile_dcls( const std::vector<uint64_t>& dcls );
diff -Nrcpad gcc-15.2.0/gcc/cobol/gengen.cc gcc-16.1.0-RC-20260423/gcc/cobol/gengen.cc
*** gcc-15.2.0/gcc/cobol/gengen.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/gengen.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 89,97 ****
--- 89,99 ----
  #include "cobol-system.h"
  #include "coretypes.h"
  #include "tree.h"
+ #include "langhooks.h"
  #include "tree-iterator.h"
  #include "stringpool.h"
  #include "cgraph.h"
+ #include "stor-layout.h"
  #include "toplev.h"
  #include "function.h"
  #include "fold-const.h"
*************** gg_append_statement(tree stmt)
*** 293,298 ****
--- 295,307 ----
    // ./libcpp/include/line-map.h
    // ./libcpp/location-example.txt
  
+ #if 0
+   if( TREE_CODE(stmt) == GOTO_EXPR )
+     {
+     fprintf(stderr, "Laying down a GOTO\n");
+     }
+ #endif
+ 
    gcc_assert(  gg_trans_unit.function_stack.size() );
  
    TREE_SIDE_EFFECTS(stmt) = 1;    // If an expression has no side effects,
*************** adjust_for_type(tree type)
*** 355,360 ****
--- 364,370 ----
  char *
  gg_show_type(tree type)
    {
+   tree original_type = type;
    if( !type )
      {
      cbl_internal_error("The given type is NULL, and that is just not fair");
*************** gg_show_type(tree type)
*** 413,418 ****
--- 423,438 ----
        cbl_internal_error("Unknown type %d", TREE_CODE(type));
      }
  
+   if( DECL_P(original_type) && TREE_STATIC(original_type) )
+     {
+     strcat(ach, " static");
+     }
+ 
+   if( DECL_P(original_type) && TREE_READONLY(original_type) )
+     {
+     strcat(ach, " readonly");
+     }
+ 
    return ach;
    }
  
*************** gg_assign(tree dest, const tree source)
*** 485,832 ****
    }
  
  tree
! gg_find_field_in_struct(const tree base, const char *field_name)
    {
!   // Finds and returns the field_decl for the named member.  'base' can be
!   // a structure or a pointer to a structure.
!   tree type = TREE_TYPE(base);
!   tree rectype;
!   if( POINTER_TYPE_P (type) )
!     {
!     tree pointer_type = TREE_TYPE(base);
!     rectype = TREE_TYPE(pointer_type);
!     }
!   else
!     {
!     // Assuming a struct (or union), pick up the record_type
!     rectype = TREE_TYPE(base);
!     }
  
!   tree id_of_field = get_identifier(field_name);
  
!   tree field_decl = NULL_TREE;
  
!   tree next_value = TYPE_FIELDS(rectype);
  
!   // Look through the chain of fields for a match to ours.  This is, in the
!   // limit, an O(N^2) computational burden.  But structures usually small, so we
!   // probably don't have to figure out how to make it faster.
!   while( next_value )
      {
!     if( DECL_NAME(next_value) == id_of_field )
        {
-       field_decl = next_value;
        break;
        }
-     next_value = TREE_CHAIN(next_value);
-     }
- 
-   if( !field_decl )
-     {
-     yywarn("Somebody asked for the field %s.%s, which does not exist",
-           IDENTIFIER_POINTER(DECL_NAME(base)),
-           field_name);
-     gcc_unreachable();
-     }
- 
-   return field_decl;
-   }
- 
- static tree
- gg_start_building_a_union(const char *type_name, tree type_context)
-   {
-   // type_context is current_function->function_decl for union local
-   // to a function.
- 
-   // It is translation_unit_decl for unions common to all functions
- 
-   // We want to return the type_decl for an empty union
- 
-   // First, create the record_type whose values will eventually
-   // be the chain of of the struct's fields:
- 
-   tree uniontype = make_node(UNION_TYPE);
-   TYPE_CONTEXT(uniontype) = type_context;
-   TYPE_SIZE_UNIT(uniontype) = integer_zero_node;
-   TYPE_SIZE(uniontype) = integer_zero_node;
-   TYPE_NAME(uniontype) = get_identifier(type_name);
- 
-   TYPE_MODE_RAW(uniontype) = TYPE_MODE (intTI_type_node);
- 
-   // We need a type_decl for the record_type:
-   tree typedecl = make_node(TYPE_DECL);
- 
-   // The type of the type_decl is the record_type:
-   TREE_TYPE(typedecl) = uniontype;
- 
-   SET_TYPE_ALIGN(uniontype, 16);
- 
-   // The chain element of the record_type points back to the type_decl:
-   TREE_CHAIN(uniontype) = typedecl;
- 
-   return typedecl;
-   }
- 
- static tree
- gg_start_building_a_struct(const char *type_name, tree type_context)
-   {
-   // type_context is current_function->function_decl for structures local
-   // to a function.
- 
-   // It is translation_unit_decl for structures common to all functions
- 
-   // We want to return the type_decl for an empty struct
- 
-   // First, create the record_type whose values will eventually
-   // be the chain of of the struct's fields:
  
!   tree recordtype = make_node(RECORD_TYPE);
!   TYPE_CONTEXT(recordtype) = type_context;
!   TYPE_SIZE_UNIT(recordtype) = integer_zero_node;
!   TYPE_SIZE(recordtype) = integer_zero_node;
!   TYPE_NAME(recordtype) = get_identifier(type_name);
  
!   TYPE_MODE_RAW(recordtype) = BLKmode;
  
!   // We need a type_decl for the record_type:
!   tree typedecl = make_node(TYPE_DECL);
  
!   // The type of the type_decl is the record_type:
!   TREE_TYPE(typedecl) = recordtype;
  
!   SET_TYPE_ALIGN(recordtype, 8);
  
!   // The chain element of the record_type points back to the type_decl:
!   TREE_CHAIN(recordtype) = typedecl;
  
!   return typedecl;
    }
  
! static void
! gg_add_field_to_structure(const tree type_of_field, const char *name_of_field, tree struct_type_decl)
    {
!   // We're given the struct_type_decl.
!   // Append the new field to that type_decl's record_type's chain:
!   tree struct_record_type = TREE_TYPE(struct_type_decl);
! 
!   bool is_union = TREE_CODE((struct_record_type)) == UNION_TYPE;
! 
!   tree id_of_field = get_identifier (name_of_field);
! 
!   // Create the new field:
!   tree new_field_decl = build_decl(   gg_token_location(),
!                                       FIELD_DECL,
!                                       id_of_field,
!                                       type_of_field);
! 
!   // Establish the machine mode for the field_decl:
!   SET_DECL_MODE(new_field_decl, TYPE_MODE(type_of_field));
! 
!   // Establish the context of the new field as being the record_type
!   DECL_CONTEXT (new_field_decl) = struct_record_type;
! 
!   // Establish the size of the new field as being the same as its prototype:
!   DECL_SIZE(new_field_decl) = TYPE_SIZE(type_of_field);            // This is in bits
!   DECL_SIZE_UNIT(new_field_decl) = TYPE_SIZE_UNIT(type_of_field);  // This is in bytes
! 
!   // We need to establish the offset and bit offset of the new node.
!   // Empirically, this seems to be done on 16-bit boundaries, with DECL_FIELD_OFFSET
!   // in units of N*16 bytes, and FIELD_BIT_OFFSET being offsets in bits from the DECL_FIELD_OFFSET
! 
!   // We calculate our desired offset in bits:
! 
!   // Pick up the current size, in bytes, of the record_type:
!   long offset_in_bytes = TREE_INT_CST_LOW(TYPE_SIZE_UNIT(struct_record_type));
! 
!   static const int MAGIC_NUMBER_SIXTEEN = 16 ;
!   static const int BITS_IN_A_BYTE = 8 ;
  
!   // We know the offset_in_bytes, which is the size, of the structure with
!   // its current members.
  
!   //long type_size  =  TREE_INT_CST_LOW(TYPE_SIZE_UNIT(type_of_field));
!   long type_align_in_bits  =  TYPE_ALIGN(type_of_field);
!   long type_align_in_bytes = type_align_in_bits/BITS_IN_A_BYTE;
  
!   // As per the Amd64 ABI, we need to set the structure's type alignment to be
!   // that of most strictly aligned component:
!   // This is the current restriction:
!   long struct_align_in_bits  =  TYPE_ALIGN(TREE_TYPE(struct_type_decl));
!   if( type_align_in_bits > struct_align_in_bits )
      {
!     // The new one is the new champion
!     SET_TYPE_ALIGN(TREE_TYPE(struct_type_decl), type_align_in_bits );
      }
  
!   // We know struct_type_decl is a record_type, so we can sneak through this comparison
!   if( type_of_field == TREE_TYPE(struct_type_decl) )
!     {
!     printf("   It is a record_type\n");
!     }
  
!   // Bump up the offset until we are aligned:
!   while( offset_in_bytes % type_align_in_bytes)
!     {
!     offset_in_bytes += 1;
!     }
  
!   if( is_union )
!     {
!     // Turn that into the bytes/bits offsets of the new field:
!     DECL_FIELD_OFFSET(new_field_decl) = build_int_cst_type (SIZE_T, 0);
!     DECL_FIELD_BIT_OFFSET(new_field_decl) = build_int_cst_type (bitsizetype, 0);
  
!     // The size of a union is the size of its largest member:
!     offset_in_bytes = std::max(offset_in_bytes, (long)TREE_INT_CST_LOW(DECL_SIZE_UNIT(new_field_decl)));
!     }
!   else
      {
!     // Turn that into the bytes/bits offsets of the new field:
!     long field_offset = (offset_in_bytes/MAGIC_NUMBER_SIXTEEN)*MAGIC_NUMBER_SIXTEEN;
!     long field_bit_offset = (offset_in_bytes - field_offset) * BITS_IN_A_BYTE;
!     DECL_FIELD_OFFSET(new_field_decl) = build_int_cst_type (SIZE_T, field_offset);;
!     DECL_FIELD_BIT_OFFSET(new_field_decl) = build_int_cst_type (bitsizetype, field_bit_offset);
! 
!     // This was done empirically to make our generated code match that of a C program
!     SET_DECL_OFFSET_ALIGN(new_field_decl, 128);
  
!     // And now we need to update the size of the record type:
!     offset_in_bytes += TREE_INT_CST_LOW(DECL_SIZE_UNIT(new_field_decl));
      }
  
!   TYPE_SIZE_UNIT(struct_record_type) = build_int_cst_type (SIZE_T, offset_in_bytes);           // In bytes
!   TYPE_SIZE(struct_record_type) = build_int_cst_type (bitsizetype, offset_in_bytes*BITS_IN_A_BYTE); // In bits
! 
!   if( !TYPE_FIELDS(struct_record_type) )
!     {
!     // This is the first variable of the chain:
!     TYPE_FIELDS(struct_record_type) = new_field_decl;
!     }
!   else
!     {
!     // We need to tack the new one onto an already existing chain:
!     chainon(TYPE_FIELDS(struct_record_type), new_field_decl);
!     }
    }
  
! void
! gg_get_struct_type_decl(tree struct_type_decl, int count, va_list params)
    {
!   while( count-- )
      {
!     tree field_type = va_arg(params, tree);
!     const char *name = va_arg(params, const char *);
!     gg_add_field_to_structure(field_type, name, struct_type_decl);
      }
!   // Note:  On 2022-02-18 I removed the call to gg_append_var_decl, which
!   // chains the type_decl on the function block.  I don't remember why I
!   // thought it was necessary.  It makes no difference for COBOL compilations.
!   //
!   // But I must have copied it from a C compilation example.
!   //
!   // I removed it so that I could create type_decls outside of a function.
!   // I know not what the long-term implications might be.
!   //
!   // You have been served notice.
!   //
!   // struct_type_decl is the type_decl for our structure.  We need to
!   // append it to the list of variables in order to use it:
!   // The following function call is misnamed.  It can take struct type_decls
!   //gg_append_var_decl(struct_type_decl);
!   }
! 
! void
! gg_get_union_type_decl(tree union_type_decl, int count, va_list params)
!   {
!   while( count-- )
      {
!     tree field_type = va_arg(params, tree);
!     const char *name = va_arg(params, const char *);
!     gg_add_field_to_structure(field_type, name, union_type_decl);
      }
-   }
  
! tree
! gg_get_local_struct_type_decl(const char *type_name, int count, ...)
!   {
!   tree struct_type_decl = gg_start_building_a_struct(type_name, current_function->function_decl);
! 
!   va_list params;
!   va_start(params, count);
! 
!   gg_get_struct_type_decl(struct_type_decl, count, params);
! 
!   va_end(params);
! 
!   // To use the struct_type_decl, you'll need to execute
!   // the following to turn it into a var_decl:
!   //    tree var_decl = gg_define_variable( TREE_TYPE(struct_type_decl),
!   //                                        var_name,
!   //                                        vs_static);
!   return struct_type_decl;
!   }
! 
! tree
! gg_get_filelevel_struct_type_decl(const char *type_name, int count, ...)
!   {
!   tree struct_type_decl = gg_start_building_a_struct(type_name, gg_trans_unit.trans_unit_decl);
! 
!   va_list params;
!   va_start(params, count);
! 
!   gg_get_struct_type_decl(struct_type_decl, count, params);
! 
!   va_end(params);
! 
!   // To use the struct_type_decl, you'll need to execute
!   // the following to turn it into a var_decl:
!   //    tree var_decl = gg_define_variable( TREE_TYPE(struct_type_decl),
!   //                                        var_name,
!   //                                        vs_static);
!   return struct_type_decl;
!   }
! 
! tree
! gg_get_filelevel_union_type_decl(const char *type_name, int count, ...)
!   {
!   tree struct_type_decl = gg_start_building_a_union(type_name, gg_trans_unit.trans_unit_decl);
! 
!   va_list params;
!   va_start(params, count);
! 
!   gg_get_union_type_decl(struct_type_decl, count, params);
! 
!   va_end(params);
! 
!   // To use the struct_type_decl, you'll need to execute
!   // the following to turn it into a var_decl:
!   //    tree var_decl = gg_define_variable( TREE_TYPE(struct_type_decl),
!   //                                        var_name,
!   //                                        vs_static);
!   return struct_type_decl;
!   }
  
! tree
! gg_define_local_struct(const char *type_name, const char * var_name, int count, ...)
!   {
!   // Builds a structure, declares it as a static variable in the current function,
!   // and returns the var_decl for it.
!   tree struct_type_decl = gg_start_building_a_struct(type_name, current_function->function_decl);
  
!   va_list params;
!   va_start(params, count);
  
!   gg_get_struct_type_decl(struct_type_decl, count, params);
  
!   va_end(params);
!   // We now have a complete struct_type_decl, whose TREE_TYPE is the
!   // the type we need when declaring it.
  
!   // And with that done, we can actually define the storage:
!   tree var_decl = gg_define_variable( TREE_TYPE(struct_type_decl),
!                                       var_name,
!                                       vs_static);
!   return var_decl;
    }
  
  tree
--- 505,659 ----
    }
  
  tree
! gg_get_structure_type_decl(const char *type_name, ...)
    {
!   tree record_type = make_node (RECORD_TYPE);
  
!   tree type_decl = build_decl(UNKNOWN_LOCATION,
!                               TYPE_DECL,
!                               get_identifier (type_name),
!                               record_type);
!   TYPE_NAME (record_type) = type_decl;
!   TYPE_STUB_DECL (record_type) = type_decl;
!   DECL_ARTIFICIAL (type_decl) = 1;
  
!   va_list ap;
!   va_start (ap, type_name);
  
!   tree first = NULL_TREE;
!   tree *link = &first;
  
!   for (;;)
      {
!     tree arg_type = va_arg (ap, tree);
!     if (!arg_type)
        {
        break;
        }
  
!     const char *member_name = va_arg (ap, const char *);
  
!     tree member_decl = build_decl (UNKNOWN_LOCATION,
!                                    FIELD_DECL,
!                                    get_identifier (member_name),
!                                    arg_type);
  
!     DECL_CONTEXT (member_decl) = record_type;
!     *link = member_decl;
!     link = &DECL_CHAIN (member_decl);
!     }
!   va_end (ap);
  
!   TYPE_FIELDS (record_type) = first;
  
!   layout_type (record_type);
! //  lang_hooks.decls.pushdecl (type_decl);
  
!   gcc_assert (TREE_CODE (record_type) == RECORD_TYPE);
!   gcc_assert (TYPE_NAME (record_type));
!   gcc_assert (TREE_CODE (TYPE_NAME (record_type)) == TYPE_DECL);
!   gcc_assert (TREE_TYPE (TYPE_NAME (record_type)) == record_type);
  
!   return record_type;
    }
  
! void
! gg_structure_type_constructor(tree record_decl, ...)
    {
!   // Given a record_decl and a NULL_TREE-terminated list of initial values, one
!   // for each member of the record_decl's type, this routine constructs and
!   // applies the constructor for it.
  
!   // Note that the NULL_TREE terminator is not actually accessed if the list
!   // of values equal to (or greater than) the number of elements in the
!   // record_type.  But it's there to allow an early termination.
  
!   // If the list is too short and is not terminated, then the behavior is
!   // unpredictable.
!   tree record_type = TREE_TYPE(record_decl);
  
!   int top_level_members = 0;
!   for(tree f = TYPE_FIELDS(record_type); f; f = TREE_CHAIN(f))
      {
!     top_level_members += 1;
      }
  
!   vec<constructor_elt, va_gc> *elts = NULL;
!   tree next_field = TYPE_FIELDS(record_type);
  
!   va_list ap;
!   va_start (ap, record_decl);
  
!   // We are going to create the constructors by walking the linked
!   // list of FIELD_DECLs.  We must do it in the same order as the
!   // structure creation code in create_cblc_field_t()
  
!   int index = 0;
!   while(index < top_level_members)
      {
!     tree value = va_arg (ap, tree);
!     if( !value )
!       {
!       break;
!       }
  
!     CONSTRUCTOR_APPEND_ELT( elts,
!                             next_field,
!                             value );
!     next_field = DECL_CHAIN(next_field);
!     index += 1;
      }
+   va_end (ap);
  
!   tree constr = build_constructor (record_type, elts);
!   DECL_INITIAL(record_decl) = constr;
    }
  
! tree
! gg_find_field_in_struct(const tree base, const char *field_name)
    {
!   // Finds and returns the field_decl for the named member.  'base' can be
!   // a structure or a pointer to a structure.
!   tree type = TREE_TYPE(base);
!   tree rectype;
!   if( POINTER_TYPE_P (type) )
      {
!     tree pointer_type = TREE_TYPE(base);
!     rectype = TREE_TYPE(pointer_type);
      }
!   else
      {
!     // Assuming a struct (or union), pick up the record_type
!     rectype = TREE_TYPE(base);
      }
  
!   tree id_of_field = get_identifier(field_name);
  
!   tree field_decl = NULL_TREE;
  
!   tree next_value = TYPE_FIELDS(rectype);
  
!   // Look through the chain of fields for a match to ours.  This is, in the
!   // limit, an O(N^2) computational burden.  But structures usually small, so we
!   // probably don't have to figure out how to make it faster.
!   while( next_value )
!     {
!     if( DECL_NAME(next_value) == id_of_field )
!       {
!       field_decl = next_value;
!       break;
!       }
!     next_value = TREE_CHAIN(next_value);
!     }
  
!   if( !field_decl )
!     {
!     cbl_internal_error("Somebody asked for the field %s.%s, which does not exist",
!           IDENTIFIER_POINTER(DECL_NAME(base)),
!           field_name);
!     }
  
!   return field_decl;
    }
  
  tree
*************** gg_struct_field_ref(const tree base, con
*** 861,884 ****
    return retval;
    }
  
- tree
- gg_assign_to_structure(tree var_decl_struct, const char *field, const tree source)
-   {
-   // The C equivalent:  "struct.field = source"
-   tree component_ref = gg_struct_field_ref(var_decl_struct,field);
-   gg_assign(component_ref,source);
-   return component_ref;
-   }
- 
- tree
- gg_assign_to_structure(tree var_decl_struct, const char *field, int N)
-   {
-   // The C equivalent:  "struct.field = N"
-   tree component_ref = gg_struct_field_ref(var_decl_struct,field);
-   gg_assign(component_ref,build_int_cst(integer_type_node, N));
-   return component_ref;
-   }
- 
  static tree
  gg_create_assembler_name(const char *cobol_name)
    {
--- 688,693 ----
*************** gg_define_array(tree type_decl, size_t s
*** 1441,1447 ****
    }
  
  extern tree
! gg_define_array(tree type_decl, const char *name, size_t size, gg_variable_scope_t scope)
    {
    tree array_type = build_array_type_nelts(type_decl, size);
    return gg_define_variable(array_type, name, scope);
--- 1250,1259 ----
    }
  
  extern tree
! gg_define_array(tree type_decl,
!                 const char *name,
!                 size_t size,
!                 gg_variable_scope_t scope)
    {
    tree array_type = build_array_type_nelts(type_decl, size);
    return gg_define_variable(array_type, name, scope);
*************** gg_get_address_of(const tree var_decl)
*** 1456,1470 ****
  
    // In order to do that, this fellow's "addressable" bit has to be on, otherwise
    // the GIMPLE reducer creates a temporary variable, sets its value to var_decl's,
!   // and returns the pointer to the temp.  I suppose this has something to do with
!   // pass by reference and pass by value, but it makes my head hurt, and, frankly,
!   // I'll take the dangerous road.
  
    TREE_ADDRESSABLE(var_decl) = 1;
    TREE_USED(var_decl) = 1;
!   return build1(  ADDR_EXPR,
!                   build_pointer_type (TREE_TYPE(var_decl)),
!                   var_decl);
    }
  
  tree
--- 1268,1319 ----
  
    // In order to do that, this fellow's "addressable" bit has to be on, otherwise
    // the GIMPLE reducer creates a temporary variable, sets its value to var_decl's,
!   // and returns the pointer to the temp.
! 
!   tree type = TREE_TYPE (var_decl);
!   if( TREE_CODE (type) == ARRAY_TYPE )
!     {
!     cbl_internal_error("%s:%d: Must not call here with %s",
!                         __func__,
!                         __LINE__,
!                         "ARRAY_TYPE");
!     }
  
    TREE_ADDRESSABLE(var_decl) = 1;
    TREE_USED(var_decl) = 1;
!   return build_fold_addr_expr(var_decl);
!   }
! 
! tree
! gg_pointer_to_array(tree expr)
!   {
!   tree type = TREE_TYPE (expr);
! 
!   if (TREE_CODE (type) != ARRAY_TYPE)
!     {
!     cbl_internal_error("%s:%d: Must not call here with non-%s",
!                         __func__,
!                         __LINE__,
!                         "ARRAY_TYPE");
!     }
! 
!   /* Arrays: produce &(expr[lower_bound]), i.e. pointer to first element,
!      not &expr, which would be pointer-to-array.  */
!   tree domain = TYPE_DOMAIN (type);
!   tree idx_type = domain ? TREE_TYPE (domain) : integer_type_node;
!   tree first_idx =
!       (domain && TYPE_MIN_VALUE (domain))
!           ? TYPE_MIN_VALUE (domain)
!           : build_int_cst (idx_type, 0);
! 
!   tree elem_ref = build4 (ARRAY_REF,
!                           TREE_TYPE (type),   /* element type */
!                           expr,
!                           first_idx,
!                           NULL_TREE,
!                           NULL_TREE);
! 
!   return build_fold_addr_expr (elem_ref);
    }
  
  tree
*************** gg_build_logical_expression(tree operand
*** 1830,1836 ****
    }
  
  void
! gg_create_goto_pair(tree *goto_expr, tree *label_expr, tree *label_addr, const char *name)
    {
    // We are going to create a pair of expressions for our
    // caller.  They are a matched set of goto/label expressions,
--- 1679,1688 ----
    }
  
  void
! gg_create_goto_pair(tree *goto_expr,
!                     tree *label_expr,
!                     tree *label_addr,
!                     const char *name)
    {
    // We are going to create a pair of expressions for our
    // caller.  They are a matched set of goto/label expressions,
*************** gg_create_goto_pair(tree *goto_expr, tre
*** 1841,1846 ****
--- 1693,1702 ----
                                    void_type_node);
    DECL_CONTEXT(label_decl) = current_function->function_decl;
    TREE_USED(label_decl) = 1;
+   DECL_EXTERNAL(label_decl) = 1;
+   TREE_PUBLIC(label_decl) = 1;
+   TREE_ADDRESSABLE(label_decl) = 1;
+   TREE_STATIC(label_decl) = 1;
  
    *goto_expr  = build1(GOTO_EXPR, void_type_node, label_decl);
    *label_expr = build1(LABEL_EXPR, void_type_node, label_decl);
*************** gg_create_goto_pair(tree *goto_expr,
*** 1887,1902 ****
    }
  
  void
- gg_goto_label_decl(tree label_decl)
-   {
-   tree goto_expr  = build1_loc( gg_token_location(),
-                                 GOTO_EXPR,
-                                 void_type_node,
-                                 label_decl);
-   gg_append_statement(goto_expr);
-   }
- 
- void
  gg_create_goto_pair(tree *goto_expr, tree *label_expr)
    {
    // We are going to create a pair of expressions for our
--- 1743,1748 ----
*************** gg_create_goto_pair(tree *goto_expr, tre
*** 1930,1941 ****
    *label_expr = build1(LABEL_EXPR, void_type_node, label_decl);
    }
  
- // Used for implementing SECTIONS and PARAGRAPHS.  When you have a
- // void *pointer = &&label, gg_goto is the same as
- //  goto *pointer
  void
  gg_goto(tree var_decl_pointer)
    {
    tree go_to = build1_loc(gg_token_location(),
                            GOTO_EXPR,
                            void_type_node,
--- 1776,1795 ----
    *label_expr = build1(LABEL_EXPR, void_type_node, label_decl);
    }
  
  void
  gg_goto(tree var_decl_pointer)
    {
+   // This routine takes a label_decl_node, and creates a GOTO expression to it.
+   // Currently it is unused, and one should be very wary of using it.  I used
+   // to use it for implementing things like computed gotos, and pseudo-returns
+   // from PERFORMs.  The trouble is that it leads to explosions in the Control
+   // Flow Graph, because the middle end basically has to assume that a
+   // JMP *PTR could reference any of all the symbols in the program.  So, when
+   // I did that, when any PERFORM returned through a JMP *PTR, it led to
+   // O(M*N) behavior, where M was the number of performs and N was the number
+   // of paragraph and section procedures.
+ 
+   // To speed things up, I learned how to create switch statements.
    tree go_to = build1_loc(gg_token_location(),
                            GOTO_EXPR,
                            void_type_node,
*************** gg_printf(const char *format_string, ...
*** 2160,2176 ****
      {
      if(nargs >= ARG_LIMIT)
        {
!       yywarn("You *must* be joking");
!       gcc_unreachable();
        }
  
      if( TREE_CODE(arg) >= NUM_TREE_CODES)
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       yywarn("You forgot to put a %<NULL_TREE%> at the end of a "
!                   "%<gg_printf()%> again");
!       gcc_unreachable();
        }
  
      args[nargs++] = arg;
--- 2014,2028 ----
      {
      if(nargs >= ARG_LIMIT)
        {
!       cbl_internal_error("You *must* be joking");
        }
  
      if( TREE_CODE(arg) >= NUM_TREE_CODES)
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       cbl_internal_error("You forgot to put a %<NULL_TREE%> at the end of a "
!                          "%<gg_printf()%> again");
        }
  
      args[nargs++] = arg;
*************** gg_fprintf(tree fd, int nargs, const cha
*** 2215,2222 ****
      {
      if(argc >= ARG_LIMIT)
        {
!       yywarn("You *must* be joking");
!       gcc_unreachable();
        }
  
      args[argc++] = arg;
--- 2067,2073 ----
      {
      if(argc >= ARG_LIMIT)
        {
!       cbl_internal_error("You *must* be joking");
        }
  
      args[argc++] = arg;
*************** gg_define_function( tree return_type,
*** 2594,2602 ****
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       yywarn("You forgot to put a %<NULL_TREE%> at the end of a "
                    "%<gg_define_function()%> again");
-       gcc_unreachable();
        }
  
      const char *name = va_arg(params, const char *);
--- 2445,2452 ----
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       cbl_internal_error("You forgot to put a %<NULL_TREE%> at the end of a "
                    "%<gg_define_function()%> again");
        }
  
      const char *name = va_arg(params, const char *);
*************** gg_define_function( tree return_type,
*** 2606,2613 ****
      nparams += 1;
      if(nparams > ARG_LIMIT)
        {
!       yywarn("%d parameters? Really? Are you insane?", ARG_LIMIT+1);
!       gcc_unreachable();
        }
      }
    va_end(params);
--- 2456,2462 ----
      nparams += 1;
      if(nparams > ARG_LIMIT)
        {
!       cbl_internal_error("%d parameters? Really? Are you insane?", ARG_LIMIT+1);
        }
      }
    va_end(params);
*************** gg_get_function_decl(tree return_type, c
*** 2755,2763 ****
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       yywarn("You forgot to put a %<NULL_TREE%> at the end of a "
              "%<gg_define_function()%> again");
-       gcc_unreachable();
        }
  
      const char *name = va_arg(params, const char *);
--- 2604,2611 ----
        {
        // Warning:  This test is not completely reliable, because a garbage
        // byte could have a valid TREE_CODE.  But it does help.
!       cbl_internal_error("You forgot to put a %<NULL_TREE%> at the end of a "
              "%<gg_define_function()%> again");
        }
  
      const char *name = va_arg(params, const char *);
*************** gg_get_function_decl(tree return_type, c
*** 2767,2775 ****
      nparams += 1;
      if(nparams > ARG_LIMIT)
        {
!       yywarn("%d parameters? Really? Are you insane?",
                    ARG_LIMIT+1);
-       gcc_unreachable();
        }
      }
    va_end(params);
--- 2615,2622 ----
      nparams += 1;
      if(nparams > ARG_LIMIT)
        {
!       cbl_internal_error("%d parameters? Really? Are you insane?",
                    ARG_LIMIT+1);
        }
      }
    va_end(params);
*************** gg_call_expr(tree return_type, const cha
*** 3047,3054 ****
      {
      if(nargs >= ARG_LIMIT)
        {
!       yywarn("You *must* be joking");
!       gcc_unreachable();
        }
  
      tree arg = va_arg(ap, tree);
--- 2894,2900 ----
      {
      if(nargs >= ARG_LIMIT)
        {
!       cbl_internal_error("You *must* be joking");
        }
  
      tree arg = va_arg(ap, tree);
*************** gg_call(tree return_type, const char *fu
*** 3103,3110 ****
      {
      if(nargs >= ARG_LIMIT)
        {
!       yywarn("You *must* be joking");
!       gcc_unreachable();
        }
  
      tree arg = va_arg(ap, tree);
--- 2949,2955 ----
      {
      if(nargs >= ARG_LIMIT)
        {
!       cbl_internal_error("You *must* be joking");
        }
  
      tree arg = va_arg(ap, tree);
diff -Nrcpad gcc-15.2.0/gcc/cobol/gengen.h gcc-16.1.0-RC-20260423/gcc/cobol/gengen.h
*** gcc-15.2.0/gcc/cobol/gengen.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/gengen.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 50,55 ****
--- 50,56 ----
  #define SCHAR      signed_char_type_node
  #define UCHAR      unsigned_char_type_node
  #define SHORT      short_integer_type_node
+ #define SHORT_P    build_pointer_type(short_integer_type_node)
  #define USHORT     short_unsigned_type_node
  #define WCHAR      short_unsigned_type_node
  #define INT        integer_type_node
*************** struct gg_function_t
*** 126,135 ****
--- 127,140 ----
  
      // This structure contains state variables for a single function.
  
+     bool initialized; // Starts off false; used for one-time initialization
+ 
      const char *our_unmangled_name;   // This is the original name
      const char *our_name;             // This is our mangled name
      tree        function_address;
      size_t our_symbol_table_index;
+     bool has_initial;     // The program-id has the INITIAL clause.
+     bool has_recursive;   // The program-id has the RECURSIVE clause.
  
      // The function_decl is fundamental to many, many things
      tree function_decl;
*************** struct gg_function_t
*** 173,183 ****
      struct cbl_proc_t *current_section;
      struct cbl_proc_t *current_paragraph;
  
!     tree void_star_temp;    // At the end of every paragraph and section, we
!     //                      // we need a variable "void *temp" to hold a
!     //                      // label for one instruction.  Rather than clutter
!     //                      // up the code with temporaries, we use this one
!     //                      // instance instead.
  
      tree first_time_through;
  
--- 178,185 ----
      struct cbl_proc_t *current_section;
      struct cbl_proc_t *current_paragraph;
  
!     // This carries an indirect pointer reference to RETURN-CODE
!     tree var_decl_return;
  
      tree first_time_through;
  
*************** struct gg_function_t
*** 227,232 ****
--- 229,271 ----
      // decremented and a return is created.  When the counter is 1, the
      // EXIT program is treated as a CONTINUE.
      tree called_by_main_counter;
+ 
+     // We used to use indirect jumps to implement "pseudo-return" from PERFORM
+     // <proc> statements.  But that led to N-squared complexity in the Control
+     // Flow Graph, because the middle-end can't make assumptions about the
+     // target of the JMP *%rax; as far as the middle-end is concerned *any*
+     // label in the program could be a target.
+     //
+     // We are now reducing the complexity to linear by using a switch()
+     // statement on an identifier.  The following map collects the indexes
+     // used for the switch statement.
+ 
+     // In order to reduce the complexity of the Control Flow Graph, we build a
+     // an array of all paragraphs. For each such paragraph, we also build a
+     // vector of of the return locations of PERFORM statements that target it.
+     // Those tables are used to create one dispatching switch statement per
+     // paragraph.  Each switch statements has exactly one CASE for each PERFORM
+     // of the paragraph, each CASE contains a GOTO the return location of that
+     // PERFORM.
+     //
+     // The map uses the paragraph's proc_t * as a key.  The payload is the
+     // index into the vector of vectors.
+ 
+     std::vector<void *> list_of_procedures;
+ 
+     // The following is an SIZE_T variable node.  It is set by every PERFORM
+     // statement to establish where the end-of-paragraph dispatch switch picks
+     // a GOTO statement for the return.
+     tree pseudo_return_index;
+ 
+     // The ENTRY statement creates alternative entry point to a program-id. We
+     // implement that as a SWITCH_EXPR.  At the main entry point for a
+     // program-id, we check to see if an alternative entry point has been
+     // established.  If so, we jump to the SWITCH statement which dispatches
+     // execution to the alternate location.
+     tree entry_switch_goto;
+     tree entry_switch_label;
+     std::vector<tree> entry_goto_expressions;
      };
  
  struct cbl_translation_unit_t
*************** extern tree gg_assign(tree dest, const t
*** 299,314 ****
  
  // struct creation and field access
  // Create struct, and access a field in a struct
! extern tree gg_get_local_struct_type_decl(const char *type_name, int count, ...);
! extern tree gg_get_filelevel_struct_type_decl(const char *type_name, int count, ...);
! extern tree gg_get_filelevel_union_type_decl(const char *type_name, int count, ...);
! extern tree gg_define_local_struct(const char *type_name, const char * var_name, int count ,...);
  extern tree gg_find_field_in_struct(const tree var_decl, const char *field_name);
  extern tree gg_struct_field_ref(const tree struct_decl, const char *field);
- extern tree gg_assign_to_structure(tree var_decl_struct, const char *field, const tree source);
- extern tree gg_assign_to_structure(tree var_decl_struct, const char *field, int N);
  
! // Generalized variable declareres.  This don't create storage
  extern tree gg_declare_variable(tree type_decl,
                                  const char *name=NULL,
                                  tree initial_value=NULL_TREE,
--- 338,350 ----
  
  // struct creation and field access
  // Create struct, and access a field in a struct
! extern tree gg_get_structure_type_decl(const char *type_name, ...);
! extern void gg_structure_type_constructor(tree record_decl, ...);
! 
  extern tree gg_find_field_in_struct(const tree var_decl, const char *field_name);
  extern tree gg_struct_field_ref(const tree struct_decl, const char *field);
  
! // Generalized variable declarer.  This doesn't create storage
  extern tree gg_declare_variable(tree type_decl,
                                  const char *name=NULL,
                                  tree initial_value=NULL_TREE,
*************** extern tree gg_define_uchar_star(const c
*** 377,384 ****
  extern tree gg_define_uchar_star(tree var);
  extern tree gg_define_uchar_star(const char *variable_name, tree var);
  
! // address_of operator; equivalent of C "&buffer"
  extern tree gg_get_address_of(const tree var_decl);
  
  // Array creation and access:
  extern tree gg_define_array(tree type_decl, size_t size);
--- 413,423 ----
  extern tree gg_define_uchar_star(tree var);
  extern tree gg_define_uchar_star(const char *variable_name, tree var);
  
! // address_of operator; equivalent of C "&var_decl"
  extern tree gg_get_address_of(const tree var_decl);
+ // equivalent of C "&array[0]"
+ extern tree gg_pointer_to_array(tree array);
+ 
  
  // Array creation and access:
  extern tree gg_define_array(tree type_decl, size_t size);
*************** void gg_create_goto_pair( tree *goto_exp
*** 495,501 ****
                            tree *label_expr,
                            tree *label_addr,
                            tree *label_decl);
- void gg_goto_label_decl(tree label_decl);
  
  // Used for implementing SECTIONS and PARAGRAPHS.  When you have a
  // void *pointer = &&label, gg_goto is the same as
--- 534,539 ----
diff -Nrcpad gcc-15.2.0/gcc/cobol/genmath.cc gcc-16.1.0-RC-20260423/gcc/cobol/genmath.cc
*** gcc-15.2.0/gcc/cobol/genmath.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genmath.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 42,47 ****
--- 42,48 ----
  #include "gengen.h"
  #include "structs.h"
  #include "../../libgcobol/gcobolio.h"
+ #include "../../libgcobol/charmaps.h"
  #include "show_parse.h"
  
  void
*************** arithmetic_operation(size_t nC, cbl_num_
*** 172,183 ****
      temp_field.type = remainder->field->type;
      temp_field.attr = (remainder->field->attr | intermediate_e) & ~initialized_e;
      temp_field.level = 1;
!     temp_field.data.memsize   = remainder->field->data.memsize ;
!     temp_field.data.capacity  = remainder->field->data.capacity;
!     temp_field.data.digits    = remainder->field->data.digits  ;
!     temp_field.data.rdigits   = remainder->field->data.rdigits ;
!     temp_field.data.initial   = remainder->field->data.initial ;
!     temp_field.data.picture   = remainder->field->data.picture ;
      parser_symbol_add(&temp_field);
      temp_remainder.field = &temp_field;
  
--- 173,180 ----
      temp_field.type = remainder->field->type;
      temp_field.attr = (remainder->field->attr | intermediate_e) & ~initialized_e;
      temp_field.level = 1;
!     temp_field.data = remainder->field->data;
!     temp_field.codeset = remainder->field->codeset ;
      parser_symbol_add(&temp_field);
      temp_remainder.field = &temp_field;
  
*************** is_somebody_float(size_t nC, const cbl_n
*** 332,344 ****
    }
  
  static bool
! all_results_binary(size_t nC, const cbl_num_result_t *C)
    {
    bool retval = true;
  
    for(size_t i=0; i<nC; i++)
      {
!     if(C[i].refer.field->data.digits != 0 || C[i].refer.field->type == FldFloat )
        {
        retval = false;
        break;
--- 329,357 ----
    }
  
  static bool
! all_results_integer(size_t nC, const cbl_num_result_t *C)
    {
    bool retval = true;
  
    for(size_t i=0; i<nC; i++)
      {
!     if( !is_pure_integer(C[i].refer.field) )
!       {
!       retval = false;
!       break;
!       }
!     }
!   return retval;
!   }
! 
! static bool
! all_refers_integer(size_t nC, const cbl_refer_t *C)
!   {
!   bool retval = true;
! 
!   for(size_t i=0; i<nC; i++)
!     {
!     if( !is_pure_integer(C[i].field) )
        {
        retval = false;
        break;
*************** largest_binary_term(size_t nA, cbl_refer
*** 356,377 ****
  
    for(size_t i=0; i<nA; i++)
      {
!     if( A[i].field->data.rdigits || A[i].field->type == FldFloat )
        {
!       // We are prepared to work only with integers
        retval = NULL_TREE;
        break;
        }
      if(    A[i].field->type == FldLiteralN
- //        || A[i].field->type == FldNumericDisplay
          || A[i].field->type == FldNumericBinary
          || A[i].field->type == FldNumericBin5
          || A[i].field->type == FldIndex
!         || A[i].field->type == FldPointer  )
        {
        // This is an integer type that can be worked with quickly
        is_negative |= ( A[i].field->attr & signable_e );
!       max_capacity = std::max(max_capacity, A[i].field->data.capacity);
        retval = tree_type_from_size(max_capacity, is_negative);
        }
      else
--- 369,392 ----
  
    for(size_t i=0; i<nA; i++)
      {
!     if( !is_pure_integer(A[i].field) || A[i].field->type == FldFloat )
        {
!       // We are prepared to work only with binary integers
        retval = NULL_TREE;
        break;
        }
      if(    A[i].field->type == FldLiteralN
          || A[i].field->type == FldNumericBinary
          || A[i].field->type == FldNumericBin5
          || A[i].field->type == FldIndex
!         || A[i].field->type == FldPointer
!         || (   A[i].field->type == FldAlphanumeric
!             && strcmp(A[i].field->name, "ZEROS") == 0 )
!         )
        {
        // This is an integer type that can be worked with quickly
        is_negative |= ( A[i].field->attr & signable_e );
!       max_capacity = std::max(max_capacity, A[i].field->data.capacity());
        retval = tree_type_from_size(max_capacity, is_negative);
        }
      else
*************** fast_add( size_t nC, cbl_num_result_t *C
*** 389,451 ****
            size_t nA, cbl_refer_t *A,
            cbl_arith_format_t format )
    {
    bool retval = false;
!   if( all_results_binary(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
-     //gg_insert_into_assembler("# DUBNER addition START");
      tree term_type = largest_binary_term(nA, A);
      if( term_type )
        {
!       // All the terms are things we can work with.
! 
!       // We need to calculate the sum of all the A[] terms using term_type as
!       // the intermediate type:
! 
!       tree sum     = gg_define_variable(term_type);
!       tree addend  = gg_define_variable(term_type);
!       get_binary_value( sum,
!                         NULL,
!                         A[0].field,
!                         refer_offset(A[0]));
! 
!       // Add in the rest of them:
!       for(size_t i=1; i<nA; i++)
          {
!         get_binary_value( addend,
!                           NULL,
!                           A[i].field,
!                           refer_offset(A[i]));
!         gg_assign(sum, gg_add(sum, addend));
!         }
!       //gg_printf("The intermediate sum is %ld\n", gg_cast(LONG, sum), NULL_TREE);
  
!       // We now either accumulate into C[n] or assign to C[n]:
!       for(size_t i=0; i<nC; i++ )
!         {
!         tree dest_type = tree_type_from_size(C[i].refer.field->data.capacity, 0);
!         tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node, "data"),
!                                 refer_offset(C[i].refer));
!         tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!         if( format == giving_e )
            {
!           // We are assigning
            gg_assign(  gg_indirect(ptr),
!                       gg_cast(dest_type, sum));
            }
          else
            {
!           // We are accumulating
            gg_assign(  gg_indirect(ptr),
                        gg_add( gg_indirect(ptr),
!                               gg_cast(dest_type, sum)));
            }
          }
        retval = true;
        }
- 
-     //gg_insert_into_assembler("# DUBNER addition END ");
      }
    return retval;
    }
--- 404,576 ----
            size_t nA, cbl_refer_t *A,
            cbl_arith_format_t format )
    {
+   /*  ADD A     TO D:           nC==1, nA==1,  D += A.
+       ADD A B C TO D:           nC==1, nA==3,  D = (A + B + C)
+       ADD A B C TO D E          nC==2, nA==3
+       ADD A     TO B GIVING D   nC==1, nA==2, format==giving_e
+       ADD A B C TO D GIVING X Y nC==2, nA==3, format==giving_e   */
    bool retval = false;
!   if(    all_results_integer(nC, C)
!       && all_refers_integer(nA, A) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
      tree term_type = largest_binary_term(nA, A);
      if( term_type )
        {
!       tree dest_type = tree_type_from_size(
!                                         C[0].refer.field->data.capacity(),
!                                         0);
!       // All the numbers are integers without rdigits
!       if(    nC == 1
!           && nA == 1
!           && format != giving_e
!           )
          {
!         // This is the simplest case of all.  Just add A to C.  We can't
!         // naively add A to multiple C, because of the possibility of
!         // ADD A TO A B C.  That would change A before A gets added to B and
!         // C, which is not how COBOL works.
  
!         tree A_value;
!         if( refer_is_clean(A[0]) )
            {
!           A_value = get_binary_value_tree(dest_type,
!                                           NULL, // No rdigits
!                                           A[0].field,
!                                           integer_zero_node);
!           }
!         else
!           {
!           A_value = get_binary_value_tree(dest_type,
!                                           NULL, // No rdigits
!                                           A[0].field,
!                                           refer_offset(A[0]));
!           }
!         if( refer_is_clean(C[0].refer) )
!           {
!           tree dest_addr = member(C[0].refer.field->var_decl_node,
!                                   "data");
!           tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!           // We are accumulating into memory
            gg_assign(  gg_indirect(ptr),
!                       gg_add( gg_indirect(ptr),
!                               A_value));
            }
          else
            {
!           tree dest_addr = gg_add(member(C[0].refer.field->var_decl_node,
!                                         "data"),
!                                   refer_offset(C[0].refer));
!           tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!           // We are accumulating into memory
            gg_assign(  gg_indirect(ptr),
                        gg_add( gg_indirect(ptr),
!                               A_value));
!           }
!         }
!       else if(   nC == 1
!               && nA == 2
!               && format == giving_e )
!         {
!         // This is the very common ADD A TO B GIVING C
!           {
!           // Make C = A[0] + A[1]
!           tree dest_addr;
!           if( refer_is_clean(C[0].refer) )
!             {
!             dest_addr = member(C[0].refer.field->var_decl_node, "data");
!             }
!           else
!             {
!             dest_addr = gg_add(member(C[0].refer.field->var_decl_node, "data"),
!                                refer_offset(C[0].refer));
!             }
!           dest_addr = gg_cast(build_pointer_type(dest_type), dest_addr);
! 
!           tree A_value;
!           if( refer_is_clean(A[0]) )
!             {
!             A_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             A[0].field,
!                                             integer_zero_node);
!             }
!           else
!             {
!             A_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             A[0].field,
!                                             refer_offset(A[0]));
!             }
! 
!           tree B_value;
!           if( refer_is_clean(A[1]) )
!             {
!             B_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             A[1].field,
!                                             integer_zero_node);
!             }
!           else
!             {
!             B_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             A[1].field,
!                                             refer_offset(A[1]));
!             }
! 
!           gg_assign(  gg_indirect(dest_addr),
!                       gg_add( A_value,
!                               B_value));
!           }
!         }
!       else
!         {
!         // We need to calculate the sum of all the A[] terms using term_type as
!         // the intermediate type:
! 
!         tree sum     = gg_define_variable(term_type);
!         tree addend  = gg_define_variable(term_type);
!         get_binary_value( sum,
!                           NULL,
!                           A[0].field,
!                           refer_offset(A[0]));
! 
!         // Add in the rest of them:
!         for(size_t i=1; i<nA; i++)
!           {
!           get_binary_value( addend,
!                             NULL,
!                             A[i].field,
!                             refer_offset(A[i]));
!           gg_assign(sum, gg_add(sum, addend));
!           }
! 
!         // We now either accumulate into C[n] or assign to C[n]:
!         for(size_t i=0; i<nC; i++ )
!           {
!           tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node,
!                                         "data"),
!                                   refer_offset(C[i].refer));
!           tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!           if( format == giving_e )
!             {
!             // We are assigning
!             gg_assign(  gg_indirect(ptr),
!                         gg_cast(dest_type, sum));
!             }
!           else
!             {
!             // We are accumulating
!             gg_assign(  gg_indirect(ptr),
!                         gg_add( gg_indirect(ptr),
!                                 gg_cast(dest_type, sum)));
!             }
            }
          }
        retval = true;
        }
      }
    return retval;
    }
*************** fast_subtract(size_t nC, cbl_num_result_
*** 456,463 ****
                size_t nB, cbl_refer_t *B,
                cbl_arith_format_t format)
    {
    bool retval = false;
!   if( all_results_binary(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
--- 581,595 ----
                size_t nB, cbl_refer_t *B,
                cbl_arith_format_t format)
    {
+   /*  SUBTRACT A FROM D:       nC==1, nA==1, nB==0:  D -= A.
+       SUBTRACT A B C FROM D:   nC==1, nA==3, nB==0:  D -= (A + B + C)
+       SUBTRACT A B C FROM D E  nC==2, nA==3
+       SUBTRACT A B C FROM D GIVING X Y
+                                nC==2, nA==3, nB==1  */
    bool retval = false;
!   if(    all_refers_integer(nA, A)
!       && all_refers_integer(nB, B)
!       && all_results_integer(nC, C)  )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
*************** fast_subtract(size_t nC, cbl_num_result_
*** 484,531 ****
      if( term_type )
        {
        // All the terms are things we can work with.
  
!       // We need to calculate the sum of all the A[] terms using term_type as
!       // the intermediate type:
! 
!       tree sum     = gg_define_variable(term_type);
!       tree addend  = gg_define_variable(term_type);
!       get_binary_value(sum, NULL, A[0].field, refer_offset(A[0]));
  
!       // Add in the rest of them:
!       for(size_t i=1; i<nA; i++)
!         {
!         get_binary_value(sum, NULL, A[i].field, refer_offset(A[i]));
!         gg_assign(sum, gg_add(sum, addend));
          }
!       //gg_printf("The intermediate sum is %ld\n", gg_cast(LONG, sum), NULL_TREE);
! 
!       if( format == giving_e )
          {
!         // We now subtract the sum from B[0]
!         get_binary_value(addend, NULL, B[0].field, refer_offset(B[0]));
!         gg_assign(sum, gg_subtract(addend, sum));
!         }
  
-       // We now either accumulate into C[n] or assign to C[n]:
-       for(size_t i=0; i<nC; i++ )
-         {
-         tree dest_type = tree_type_from_size(C[i].refer.field->data.capacity, 0);
-         tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node, "data"),
-                                 refer_offset(C[i].refer));
-         tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
          if( format == giving_e )
            {
!           // We are assigning
!           gg_assign(  gg_indirect(ptr),
!                       gg_cast(dest_type, sum));
            }
!         else
            {
!           // We are subtracting the sum from C[i]
!           gg_assign(  gg_indirect(ptr),
!                       gg_subtract(gg_indirect(ptr),
!                                   gg_cast(dest_type, sum)));
            }
          }
        retval = true;
--- 616,751 ----
      if( term_type )
        {
        // All the terms are things we can work with.
+       // All the numbers are integers without rdigits
+       if(    nC == 1
+           && nA == 1
+           && nB <= 1
+           )
+         {
+         // This is the simplest case of all.  Just subtract A from C.
+         tree dest_type = tree_type_from_size(
+                                           C[0].refer.field->data.capacity(),
+                                           0);
+         tree A_value;
+         if( refer_is_clean(A[0]) )
+           {
+           A_value = get_binary_value_tree(dest_type,
+                                           NULL, // No rdigits
+                                           A[0].field,
+                                           integer_zero_node);
+           }
+         else
+           {
+           A_value = get_binary_value_tree(dest_type,
+                                           NULL, // No rdigits
+                                           A[0].field,
+                                           refer_offset(A[0]));
+           }
+         if( format == giving_e )
+           {
+           // Make C = B - A
+           tree dest_addr;
+           if( refer_is_clean(C[0].refer) )
+             {
+             dest_addr = member(C[0].refer.field->var_decl_node, "data");
+             }
+           else
+             {
+             dest_addr = gg_add(member(C[0].refer.field->var_decl_node, "data"),
+                                refer_offset(C[0].refer));
+             }
+           dest_addr = gg_cast(build_pointer_type(dest_type), dest_addr);
  
!           tree B_value;
!           if( refer_is_clean(B[0]) )
!             {
!             B_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             B[0].field,
!                                             integer_zero_node);
!             }
!           else
!             {
!             B_value = get_binary_value_tree(dest_type,
!                                             NULL, // No rdigits
!                                             B[0].field,
!                                             refer_offset(B[0]));
!             }
  
!           gg_assign(  gg_indirect(dest_addr),
!                       gg_cast(dest_type, gg_subtract( B_value,
!                                                       A_value)));
!           }
!         else
!           {
!           // Make C = C - A
!           if( refer_is_clean(C[0].refer) )
!             {
!             tree dest_addr = member(C[0].refer.field->var_decl_node,
!                                     "data");
!             tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!             // We are subtracting from memory
!             gg_assign(  gg_indirect(ptr),
!                         gg_subtract( gg_indirect(ptr),
!                                 A_value));
!             }
!           else
!             {
!             tree dest_addr = gg_add(member(C[0].refer.field->var_decl_node,
!                                           "data"),
!                                     refer_offset(C[0].refer));
!             tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!             // We are subtracting from memory
!             gg_assign(  gg_indirect(ptr),
!                         gg_subtract( gg_indirect(ptr),
!                                 A_value));
!             }
!           }
          }
!       else
          {
!         // We need to calculate the sum of all the A[] terms using term_type as
!         // the intermediate type:
! 
!         tree sum     = gg_define_variable(term_type);
!         tree addend  = gg_define_variable(term_type);
!         get_binary_value(sum, NULL, A[0].field, refer_offset(A[0]));
! 
!         // Add in the rest of them:
!         for(size_t i=1; i<nA; i++)
!           {
!           get_binary_value(addend, NULL, A[i].field, refer_offset(A[i]));
!           gg_assign(sum, gg_add(sum, addend));
!           }
!         //gg_printf("The intermediate sum is %ld\n", gg_cast(LONG, sum), NULL_TREE);
  
          if( format == giving_e )
            {
!           // We now subtract the sum from B[0]
!           get_binary_value(addend, NULL, B[0].field, refer_offset(B[0]));
!           gg_assign(sum, gg_subtract(addend, sum));
            }
! 
!         // We now either accumulate into C[n] or assign to C[n]:
!         for(size_t i=0; i<nC; i++ )
            {
!           tree dest_type = tree_type_from_size(C[i].refer.field->data.capacity(), 0);
!           tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node, "data"),
!                                   refer_offset(C[i].refer));
!           tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
!           if( format == giving_e )
!             {
!             // We are assigning
!             gg_assign(  gg_indirect(ptr),
!                         gg_cast(dest_type, sum));
!             }
!           else
!             {
!             // We are subtracting the sum from C[i]
!             gg_assign(  gg_indirect(ptr),
!                         gg_subtract(gg_indirect(ptr),
!                                     gg_cast(dest_type, sum)));
!             }
            }
          }
        retval = true;
*************** fast_multiply(size_t nC, cbl_num_result_
*** 540,546 ****
                size_t nB, cbl_refer_t *B)
    {
    bool retval = false;
!   if( all_results_binary(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
--- 760,766 ----
                size_t nB, cbl_refer_t *B)
    {
    bool retval = false;
!   if( all_results_integer(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
*************** fast_multiply(size_t nC, cbl_num_result_
*** 582,588 ****
        // We now either multiply into C[n] or assign A * B to C[n]:
        for(size_t i=0; i<nC; i++ )
          {
!         tree dest_type = tree_type_from_size(C[i].refer.field->data.capacity, 0);
          tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node, "data"),
                                  refer_offset(C[i].refer));
          tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
--- 802,808 ----
        // We now either multiply into C[n] or assign A * B to C[n]:
        for(size_t i=0; i<nC; i++ )
          {
!         tree dest_type = tree_type_from_size(C[i].refer.field->data.capacity(), 0);
          tree dest_addr = gg_add(member(C[i].refer.field->var_decl_node, "data"),
                                  refer_offset(C[i].refer));
          tree ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
*************** fast_divide(size_t nC, cbl_num_result_t
*** 613,619 ****
        const cbl_refer_t             &remainder)
    {
    bool retval = false;
!   if( all_results_binary(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
--- 833,839 ----
        const cbl_refer_t             &remainder)
    {
    bool retval = false;
!   if( all_results_integer(nC, C) )
      {
      Analyze();
      // All targets are non-PICTURE binaries:
*************** fast_divide(size_t nC, cbl_num_result_t
*** 662,668 ****
        for(size_t i=0; i<nC; i++ )
          {
          tree dest_type =
!                        tree_type_from_size(C[i].refer.field->data.capacity, 0);
          tree dest_addr = gg_add(member( C[i].refer.field->var_decl_node,
                                          "data"),
                                  refer_offset(C[i].refer));
--- 882,888 ----
        for(size_t i=0; i<nC; i++ )
          {
          tree dest_type =
!                        tree_type_from_size(C[i].refer.field->data.capacity(), 0);
          tree dest_addr = gg_add(member( C[i].refer.field->var_decl_node,
                                          "data"),
                                  refer_offset(C[i].refer));
*************** fast_divide(size_t nC, cbl_num_result_t
*** 689,695 ****
            {
            dest_addr = gg_add( member(remainder.field->var_decl_node, "data"),
                                refer_offset(remainder));
!           dest_type = tree_type_from_size(remainder.field->data.capacity, 0);
            ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
  
            gg_assign(gg_indirect(ptr),
--- 909,915 ----
            {
            dest_addr = gg_add( member(remainder.field->var_decl_node, "data"),
                                refer_offset(remainder));
!           dest_type = tree_type_from_size(remainder.field->data.capacity(), 0);
            ptr = gg_cast(build_pointer_type(dest_type), dest_addr);
  
            gg_assign(gg_indirect(ptr),
*************** parser_add( size_t nC, cbl_num_result_t
*** 750,758 ****
  
    bool handled = false;
  
!   if( fast_add( nC, C,
!                 nA, A,
!                 format) )
      {
      handled = true;
      }
--- 970,978 ----
  
    bool handled = false;
  
!   if( !error && !not_error && fast_add(nC, C,
!                                        nA, A,
!                                        format) )
      {
      handled = true;
      }
*************** parser_multiply(size_t nC, cbl_num_resul
*** 1021,1029 ****
      SHOW_PARSE_END
      }
  
!   if( fast_multiply(nC, C,
!                     nA, A,
!                     nB, B) )
      {
  
      }
--- 1241,1249 ----
      SHOW_PARSE_END
      }
  
!   if( !error && !not_error && fast_multiply(nC, C,
!                                             nA, A,
!                                             nB, B) )
      {
  
      }
*************** parser_divide(  size_t nC, cbl_num_resul
*** 1112,1121 ****
      SHOW_PARSE_END
      }
  
!   if( fast_divide(nC, C,
!                   nA, A,
!                   nB, B,
!                   remainder) )
      {
  
      }
--- 1332,1341 ----
      SHOW_PARSE_END
      }
  
!   if( !error && !not_error && fast_divide(nC, C,
!                                           nA, A,
!                                           nB, B,
!                                           remainder) )
      {
  
      }
*************** parser_subtract(size_t nC, cbl_num_resul
*** 1445,1454 ****
  
    bool handled = false;
  
!   if( fast_subtract(nC, C,
!                     nA, A,
!                     nB, B,
!                     format) )
      {
      handled = true;
      }
--- 1665,1674 ----
  
    bool handled = false;
  
!   if( !error && !not_error && fast_subtract(nC, C,
!                                             nA, A,
!                                             nB, B,
!                                             format) )
      {
      handled = true;
      }
*************** parser_subtract(size_t nC, cbl_num_resul
*** 1535,1541 ****
                                    error,
                                    not_error,
                                    compute_error,
!                                   "__gg__fixed_phase2_assign_to_c");
              }
            arithmetic_error_handler( error,
                                      not_error,
--- 1755,1761 ----
                                    error,
                                    not_error,
                                    compute_error,
!                                   "__gg__float_phase2_assign_to_c");
              }
            arithmetic_error_handler( error,
                                      not_error,
diff -Nrcpad gcc-15.2.0/gcc/cobol/genmath.h gcc-16.1.0-RC-20260423/gcc/cobol/genmath.h
*** gcc-15.2.0/gcc/cobol/genmath.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genmath.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/genutil.cc gcc-16.1.0-RC-20260423/gcc/cobol/genutil.cc
*** gcc-15.2.0/gcc/cobol/genutil.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genutil.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 27,32 ****
--- 27,35 ----
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   */
+ 
+ // cppcheck-suppress-file duplicateBreak
+ 
  #include "cobol-system.h"
  #include "coretypes.h"
  #include "tree.h"
***************
*** 47,54 ****
  #include "../../libgcobol/exceptl.h"
  #include "exceptg.h"
  
- bool internal_codeset_is_ebcdic() { return gcobol_feature_internal_ebcdic(); }
- 
  bool exception_location_active = true;
  bool skip_exception_processing = true;
  
--- 50,55 ----
*************** tree var_decl_default_compute_error;  //
*** 70,84 ****
  tree var_decl_rdigits;                // int         __gg__rdigits;
  tree var_decl_unique_prog_id;         // size_t      __gg__unique_prog_id;
  
- tree var_decl_entry_location;         // This is for managing ENTRY statements
  tree var_decl_exit_address;           // This is for implementing pseudo_return_pop
  
  tree var_decl_call_parameter_signature; // char   *__gg__call_parameter_signature
  tree var_decl_call_parameter_count;     // int __gg__call_parameter_count
  tree var_decl_call_parameter_lengths;   // size_t *__gg__call_parameter_count
  
- tree var_decl_return_code;             // short __gg__data_return_code
- 
  tree var_decl_arithmetic_rounds_size;  // size_t __gg__arithmetic_rounds_size;
  tree var_decl_arithmetic_rounds;       // int*   __gg__arithmetic_rounds;
  tree var_decl_fourplet_flags_size;     // size_t __gg__fourplet_flags_size;
--- 71,82 ----
*************** tree var_decl_treeplet_4s; // SIZE_T_P
*** 104,111 ****
--- 102,114 ----
  // wasn't successful figuring out how to create an actual NOP assembly language
  // instruction, I instead gg_assign(var_decl_nop, integer_zero_node)
  tree var_decl_nop;                // int         __gg__nop;
+ 
+ // Indicates which routine main() called
  tree var_decl_main_called;        // int         __gg__main_called;
  
+ // Indicates the target index of an ENTRY statement
+ tree var_decl_entry_index; // void* __gg__entry_index
+ 
  #if 0
  #define REFER(a)
  #else
*************** get_any_capacity(cbl_field_t *field)
*** 289,295 ****
      }
    else
      {
!     return build_int_cst_type(SIZE_T, field->data.capacity);
      }
    }
  
--- 292,298 ----
      }
    else
      {
!     return build_int_cst_type(SIZE_T, field->data.capacity());
      }
    }
  
*************** get_and_check_refstart_and_reflen(  tree
*** 310,315 ****
--- 313,323 ----
    const cbl_enabled_exceptions_t&
                                  enabled_exceptions( cdf_enabled_exceptions() );
  
+   // These calculations are based on position within the field, so offset and
+   // length have to be multiplied by the stride of the encoding:
+   const charmap_t *charmap = __gg__get_charmap(refer.field->codeset.encoding);
+   tree stride = build_int_cst_type(LONG, charmap->stride());
+ 
    if( !enabled_exceptions.match(ec_bound_ref_mod_e) )
      {
      // This is normal operation -- no exception checking.  Thus, we won't
*************** get_and_check_refstart_and_reflen(  tree
*** 321,326 ****
--- 329,335 ----
                        refer.refmod.from->field,
                        refer_offset(*refer.refmod.from));
      gg_decrement(refstart);
+     gg_assign(refstart, gg_multiply(refstart, stride));
  
      if( refer.refmod.len )
        {
*************** get_and_check_refstart_and_reflen(  tree
*** 328,339 ****
        get_integer_value(reflen,
                          refer.refmod.len->field,
                          refer_offset(*refer.refmod.len));
        }
      else
        {
        // The length was not specified, so we need to return the distance
        // between refmod.from and the end of the field:
!       gg_assign(reflen, gg_subtract( get_any_capacity(refer.field), refstart) );
        }
      return;
      }
--- 337,352 ----
        get_integer_value(reflen,
                          refer.refmod.len->field,
                          refer_offset(*refer.refmod.len));
+       // Modify refer.length by stride:
+       gg_assign(reflen, gg_multiply(reflen, stride));
        }
      else
        {
        // The length was not specified, so we need to return the distance
        // between refmod.from and the end of the field:
!       gg_assign(reflen,
!                 gg_subtract( get_any_capacity(refer.field),
!                                      refstart) );
        }
      return;
      }
*************** get_and_check_refstart_and_reflen(  tree
*** 360,365 ****
--- 373,379 ----
  
    // Make refstart zero-based:
    gg_decrement(refstart);
+   gg_assign(refstart, gg_multiply(refstart, stride));
  
    IF( refstart, lt_op, build_int_cst_type(LONG, 0 ) )
      {
*************** get_and_check_refstart_and_reflen(  tree
*** 368,383 ****
      gg_assign(refstart, gg_cast(LONG, integer_zero_node));
      // Set reflen to one here, because otherwise it won't be established.
      gg_assign(reflen, gg_cast(TREE_TYPE(reflen), integer_one_node));
      }
    ELSE
      {
      IF( refstart, gt_op, gg_cast(TREE_TYPE(refstart), get_any_capacity(refer.field)) )
        {
!       // refstart greater than zero is an error condition:
        set_exception_code(ec_bound_ref_mod_e);
        gg_assign(refstart, gg_cast(LONG, integer_zero_node));
        // Set reflen to one here, because otherwise it won't be established.
        gg_assign(reflen, gg_cast(TREE_TYPE(reflen), integer_one_node));
        }
      ELSE
        {
--- 382,399 ----
      gg_assign(refstart, gg_cast(LONG, integer_zero_node));
      // Set reflen to one here, because otherwise it won't be established.
      gg_assign(reflen, gg_cast(TREE_TYPE(reflen), integer_one_node));
+     gg_assign(reflen, gg_multiply(reflen, stride));
      }
    ELSE
      {
      IF( refstart, gt_op, gg_cast(TREE_TYPE(refstart), get_any_capacity(refer.field)) )
        {
!       // refstart greater than capacity is an error condition:
        set_exception_code(ec_bound_ref_mod_e);
        gg_assign(refstart, gg_cast(LONG, integer_zero_node));
        // Set reflen to one here, because otherwise it won't be established.
        gg_assign(reflen, gg_cast(TREE_TYPE(reflen), integer_one_node));
+       gg_assign(reflen, gg_multiply(reflen, stride));
        }
      ELSE
        {
*************** get_and_check_refstart_and_reflen(  tree
*** 387,392 ****
--- 403,409 ----
                            refer.refmod.len->field,
                            refer_offset(*refer.refmod.len),
                            CHECK_FOR_FRACTIONAL_DIGITS);
+         gg_assign(reflen, gg_multiply(reflen, stride));
          IF( var_decl_rdigits,
              ne_op,
              integer_zero_node )
*************** get_and_check_refstart_and_reflen(  tree
*** 394,399 ****
--- 411,417 ----
            // length is not an integer, which is an error condition
            set_exception_code(ec_bound_ref_mod_e);
            gg_assign(reflen, gg_cast(LONG, integer_one_node));
+           gg_assign(reflen, gg_multiply(reflen, stride));
            gg_assign(var_decl_rdigits, integer_zero_node);
            }
          ELSE
*************** get_and_check_refstart_and_reflen(  tree
*** 404,409 ****
--- 422,428 ----
              // length is too small, which is an error condition.
              set_exception_code(ec_bound_ref_mod_e);
              gg_assign(reflen, gg_cast(LONG, integer_one_node));
+             gg_assign(reflen, gg_multiply(reflen, stride));
              }
            ELSE
              {
*************** get_and_check_refstart_and_reflen(  tree
*** 425,430 ****
--- 444,450 ----
                // as the TODO item.
                gg_assign(refstart, gg_cast(LONG, integer_zero_node));
                gg_assign(reflen, gg_cast(LONG, integer_one_node));
+               gg_assign(reflen, gg_multiply(reflen, stride));
                }
              ELSE
                {
*************** get_and_check_refstart_and_reflen(  tree
*** 436,441 ****
--- 456,463 ----
              ENDIF
            }
            ENDIF
+         // Modify the length calculation for stride:
+         //gg_assign(reflen, gg_multiply(reflen, stride));
          }
        else
          {
*************** tree
*** 545,554 ****
  get_data_offset(const cbl_refer_t &refer,
                        int *pflags = NULL)
    {
-   Analyze();
    // This routine returns a tree which is the size_t offset to the data in the
    // refer/field
  
    // Because this is for source / sending variables, checks are made for
    // OCCURS DEPENDING ON violations (when those exceptions are enabled)
  
--- 567,665 ----
  get_data_offset(const cbl_refer_t &refer,
                        int *pflags = NULL)
    {
    // This routine returns a tree which is the size_t offset to the data in the
    // refer/field
  
+   /* Let's first attempt to handle commonly-occurring situations that can
+      be handled efficiently.  */
+ 
+   const cbl_enabled_exceptions_t &enabled_exceptions(cdf_enabled_exceptions());
+   if(    !enabled_exceptions.match(ec_bound_subscript_e) 
+       && !enabled_exceptions.match(ec_bound_odo_e)
+       && !enabled_exceptions.match(ec_bound_ref_mod_e) )
+     {
+     // There is no subscript bounds checking
+     bool all_literals = true;
+     for( size_t i=0; i<refer.nsubscript(); i++ )
+       {
+       if( (refer.subscripts[i].field->attr & FIGCONST_MASK) == zero_value_e )
+         {
+         // This refer is a figconst ZERO; we treat it as an ALL ZERO
+         // This is our internal representation for ALL, as in TABLE(ALL)
+         all_literals = false;
+         break;
+         }
+       if( !is_literal(refer.subscripts[i].field) )
+         {
+         // A subscript is not a literal.  Too bad.
+         all_literals = false;
+         break;
+         }
+       }
+     if( refer.refmod.from && !is_literal(refer.refmod.from->field) )
+       {
+       all_literals = false;
+       }
+     if( all_literals )
+       {
+       // We are dealing with foo(x)(y:z) where x and y are integer constants.
+       size_t offset = 0;
+ 
+       if( refer.nsubscript() )
+         {
+         // We have at least one subscript:
+ 
+         // Figure we have three subscripts, so nsubscript is 3
+         // Figure that the subscripts are {5, 4, 3}
+ 
+         // We expect that starting from refer.field, that three of our ancestors --
+         // call them A1, A2, and A3 -- have occurs clauses.
+ 
+         // We need to start with the rightmost subscript, and work our way up through
+         // our parents.  As we find each parent with an OCCURS, we increment qual_data
+         // by (subscript-1)*An->data.capacity()
+ 
+         // Establish the field_t pointer for walking up through our ancestors:
+         cbl_field_t *parent = refer.field;
+ 
+         // Note the backwards test, because refer->nsubscript is an unsigned value
+         for(size_t i=refer.nsubscript()-1; i<refer.nsubscript(); i-- )
+           {
+           // We need to search upward for an ancestor with occurs_max:
+           while(parent)
+             {
+             if( parent->occurs.ntimes() )
+               {
+               break;
+               }
+             parent = parent_of(parent);
+             }
+           // we might have an error condition at this point:
+           if( !parent )
+             {
+             cbl_internal_error("Too many subscripts");
+             }
+           // Pick up the integer value of the subscript.
+           long subscript = atol(refer.subscripts[i].field->data.original());
+ 
+           // Subscript is one-based integer
+           // Make it zero-based:
+           subscript = subscript - 1;
+           offset += subscript * parent->data.capacity();
+           parent = parent_of(parent);
+           }
+         }
+ 
+       if( refer.refmod.from )
+         {
+         // We know the refmod is a literal
+         offset +=   (atol(refer.refmod.from->field->data.original()) - 1)
+                   * refer.field->codeset.stride();
+         return build_int_cst_type(SIZE_T, offset);
+         }
+       }
+     }
+ 
    // Because this is for source / sending variables, checks are made for
    // OCCURS DEPENDING ON violations (when those exceptions are enabled)
  
*************** get_data_offset(const cbl_refer_t &refer
*** 572,578 ****
  
      // We need to start with the rightmost subscript, and work our way up through
      // our parents.  As we find each parent with an OCCURS, we increment qual_data
!     // by (subscript-1)*An->data.capacity
  
      // Establish the field_t pointer for walking up through our ancestors:
      cbl_field_t *parent = refer.field;
--- 683,689 ----
  
      // We need to start with the rightmost subscript, and work our way up through
      // our parents.  As we find each parent with an OCCURS, we increment qual_data
!     // by (subscript-1)*An->data.capacity()
  
      // Establish the field_t pointer for walking up through our ancestors:
      cbl_field_t *parent = refer.field;
*************** get_data_offset(const cbl_refer_t &refer
*** 611,618 ****
          }
        else
          {
-         const cbl_enabled_exceptions_t&
-                                 enabled_exceptions( cdf_enabled_exceptions() );
          if( !enabled_exceptions.match(ec_bound_subscript_e) )
            {
            // With no exception testing, just pick up the value
--- 722,727 ----
*************** get_data_offset(const cbl_refer_t &refer
*** 673,681 ****
        // Although we strictly don't need to look at the ODO value at this
        // point, we do want it checked for the purposes of ec-bound-odo
  
-       const cbl_enabled_exceptions_t&
-                                 enabled_exceptions( cdf_enabled_exceptions() );
- 
        if( enabled_exceptions.match(ec_bound_odo_e) )
          {
          if( parent->occurs.depending_on )
--- 782,787 ----
*************** get_data_offset(const cbl_refer_t &refer
*** 719,735 ****
    return retval;
    }
  
! static tree tree_type_from_field(const cbl_field_t *field);
  
! void
! get_binary_value( tree value,
!                   tree rdigits,
!                   cbl_field_t *field,
!                   tree         field_offset,
!                   tree         hilo
!                   )
    {
!   Analyze();
    if( hilo )
      {
      gg_assign(hilo, integer_zero_node);
--- 825,842 ----
    return retval;
    }
  
! //static tree tree_type_from_field(const cbl_field_t *field);
  
! tree
! get_binary_value_tree(tree return_type,
!                       tree rdigits,
!                       cbl_field_t *field,
!                       tree         field_offset,
!                       tree         hilo
!                       )
    {
!   tree retval;
! 
    if( hilo )
      {
      gg_assign(hilo, integer_zero_node);
*************** get_binary_value( tree value,
*** 741,762 ****
    // Very special case:
    if( strcmp(field->name, "ZEROS") == 0 )
      {
!     gg_assign(value, gg_cast(TREE_TYPE(value), integer_zero_node));
      if( rdigits )
        {
        gg_assign(rdigits, gg_cast(TREE_TYPE(rdigits), integer_zero_node));
        }
!     return;
      }
  
!   static tree pointer = gg_define_variable(UCHAR_P, "..gbv_pointer", vs_file_static);
!   static tree pend = gg_define_variable(UCHAR_P, "..gbv_pend", vs_file_static);
! 
    switch(field->type)
      {
      case FldLiteralN:
        {
!       if( SCALAR_FLOAT_TYPE_P(value) )
          {
          cbl_internal_error("cannot get %<float%> value from %s", field->name);
          }
--- 848,869 ----
    // Very special case:
    if( strcmp(field->name, "ZEROS") == 0 )
      {
!     retval = gg_cast(return_type, integer_zero_node);
      if( rdigits )
        {
        gg_assign(rdigits, gg_cast(TREE_TYPE(rdigits), integer_zero_node));
        }
!     return retval;
      }
  
!   static tree pointer = gg_define_variable( UCHAR_P,
!                                             "..gbv_pointer",
!                                             vs_file_static);
    switch(field->type)
      {
      case FldLiteralN:
        {
!       if( return_type == FLOAT )
          {
          cbl_internal_error("cannot get %<float%> value from %s", field->name);
          }
*************** get_binary_value( tree value,
*** 767,795 ****
            gg_assign(rdigits, build_int_cst_type(TREE_TYPE(rdigits),
                                                  field->data.rdigits));
            }
!         tree dest_type   = TREE_TYPE(value);
!         tree source_type = tree_type_from_field(field);
! 
!         gg_assign(value,
!                   gg_cast(dest_type,
!                           gg_indirect( gg_cast(build_pointer_type(source_type),
!                               gg_get_address_of(field->data_decl_node)))));
          }
- 
        break;
        }
  
      case FldNumericDisplay:
        {
!       Analyzer.Message("FldNumericDisplay");
        // Establish the source
        tree source_address = get_data_address(field, field_offset);
  
        // We need to check early on for HIGH-VALUE and LOW-VALUE
        // Pick up the byte
        tree digit = gg_get_indirect_reference(source_address, NULL_TREE);
!       IF( digit, eq_op, build_int_cst(UCHAR, 0xFF) )
          {
          if( hilo )
            {
            gg_assign(hilo, integer_one_node);
--- 874,902 ----
            gg_assign(rdigits, build_int_cst_type(TREE_TYPE(rdigits),
                                                  field->data.rdigits));
            }
!         // tree source_type = tree_type_from_field(field);
!         // retval = gg_cast(return_type,
!                          // gg_indirect( gg_cast(build_pointer_type(source_type),
!                                    // gg_get_address_of(field->data_decl_node))));
!         retval = gg_cast(return_type, field->data_decl_node);
          }
        break;
        }
  
      case FldNumericDisplay:
        {
!       const charmap_t *charmap = __gg__get_charmap(field->codeset.encoding);
!       int stride = charmap->stride();
! 
        // Establish the source
        tree source_address = get_data_address(field, field_offset);
  
        // We need to check early on for HIGH-VALUE and LOW-VALUE
        // Pick up the byte
        tree digit = gg_get_indirect_reference(source_address, NULL_TREE);
!       IF( digit, eq_op, build_int_cst(UCHAR, DEGENERATE_HIGH_VALUE) )
          {
+         // We are dealing with HIGH-VALUE
          if( hilo )
            {
            gg_assign(hilo, integer_one_node);
*************** get_binary_value( tree value,
*** 800,811 ****
                      build_int_cst_type( TREE_TYPE(rdigits),
                                          get_scaled_rdigits(field)));
            }
!         gg_assign(value, build_int_cst_type(TREE_TYPE(value), 0xFFFFFFFFFFFFFFFUL));
          }
        ELSE
          {
!         IF( digit, eq_op, build_int_cst(UCHAR, 0x00) )
            {
            if( hilo )
              {
              gg_assign(hilo, integer_minus_one_node);
--- 907,919 ----
                      build_int_cst_type( TREE_TYPE(rdigits),
                                          get_scaled_rdigits(field)));
            }
!         retval = build_int_cst_type(return_type, 0x7FFFFFFFFFFFFFFFUL);
          }
        ELSE
          {
!         IF( digit, eq_op, build_int_cst(UCHAR, DEGENERATE_LOW_VALUE) )
            {
+           // We are dealing with LOW-VALUE
            if( hilo )
              {
              gg_assign(hilo, integer_minus_one_node);
*************** get_binary_value( tree value,
*** 813,838 ****
            }
          ELSE
            {
!           // Establish rdigits:
            if( rdigits )
              {
              gg_assign(rdigits,
!                     build_int_cst_type( TREE_TYPE(rdigits),
!                                         get_scaled_rdigits(field)));
              }
!           // Zero out the destination
!           gg_assign(value, gg_cast(TREE_TYPE(value), integer_zero_node));
!           // Pick up a pointer to the source bytes:
! 
!           gg_assign(pointer, source_address);
! 
!           // This is the we-are-done pointer
!           gg_assign(pend, gg_add( pointer,
!                                   get_any_capacity(field)));
! 
!           static tree signbyte = gg_define_variable(UCHAR, "..gbv_signbyte", vs_file_static);
! 
!           // The big decision is whether or not the variable is signed:
            if( field->attr & signable_e )
              {
              // The variable is signed
--- 921,945 ----
            }
          ELSE
            {
!           // We are dealing with an ordinary NumericDisplay value
!           gg_assign(pointer, source_address);
! 
            if( rdigits )
              {
              gg_assign(rdigits,
!                       build_int_cst_type(TREE_TYPE(rdigits),
!                                          get_scaled_rdigits(field)));
              }
!           // This will be the 128-bit value of the character sequence
!           static tree val128 = gg_define_variable(INT128,
!                                                   "..gbv_val128",
!                                                   vs_file_static);
!           // This is a pointer to the sign byte
!           static tree signp = gg_define_variable(UCHAR_P,
!                                                   "..gbv_signp",
!                                                   vs_file_static);
!           // We need to figure out where the sign information, if any is to be
!           // found:
            if( field->attr & signable_e )
              {
              // The variable is signed
*************** get_binary_value( tree value,
*** 842,853 ****
                if( field->attr & leading_e)
                  {
                  // The first byte is '+' or '-'
                  gg_increment(pointer);
                  }
                else
                  {
                  // The final byte is '+' or '-'
!                 gg_decrement(pend);
                  }
                }
              else
--- 949,965 ----
                if( field->attr & leading_e)
                  {
                  // The first byte is '+' or '-'
+                 gg_assign(signp, source_address);
+                 // Increment pointer to point to the first actual digit
                  gg_increment(pointer);
                  }
                else
                  {
                  // The final byte is '+' or '-'
!                 gg_assign(signp,
!                           gg_add(source_address,
!                                 build_int_cst_type(SIZE_T,
!                                                   field->data.digits*stride)));
                  }
                }
              else
*************** get_binary_value( tree value,
*** 855,1073 ****
                // The sign byte is internal
                if( field->attr & leading_e)
                  {
!                 // The first byte has the sign bit:
!                 gg_assign(signbyte,
!                           gg_get_indirect_reference(source_address, NULL_TREE));
!                 if( internal_codeset_is_ebcdic() )
!                   {
!                   // We need to make sure the EBCDIC sign bit is ON, for positive
!                   gg_assign(gg_get_indirect_reference(source_address, NULL_TREE),
!                             gg_bitwise_or(signbyte,
!                                           build_int_cst_type( UCHAR,
!                                                               NUMERIC_DISPLAY_SIGN_BIT)));
!                   }
!                 else
!                   {
!                   // We need to make sure the ascii sign bit is Off, for positive
!                   gg_assign(gg_get_indirect_reference(source_address, NULL_TREE),
!                             gg_bitwise_and( signbyte,
!                                             build_int_cst_type( UCHAR,
!                                                                 ~NUMERIC_DISPLAY_SIGN_BIT)));
!                   }
                  }
                else
                  {
!                 // The final byte has the sign bit:
!                 gg_assign(signbyte,
!                           gg_get_indirect_reference(source_address,
!                                                     build_int_cst_type(SIZE_T,
!                                                     field->data.capacity-1)));
!                 if( internal_codeset_is_ebcdic() )
!                   {
!                   // We need to make sure the EBCDIC sign bit is ON, for positive
!                   gg_assign(gg_get_indirect_reference(source_address,
!                                                       build_int_cst_type( SIZE_T,
!                                                                           field->data.capacity-1)),
!                             gg_bitwise_or(signbyte,
!                                           build_int_cst_type( UCHAR,
!                                                               NUMERIC_DISPLAY_SIGN_BIT)));
!                   }
!                 else
!                   {
!                   // We need to make sure the ASCII sign bit is Off, for positive
!                   gg_assign(gg_get_indirect_reference(source_address,
!                                                       build_int_cst_type( SIZE_T,
!                                                                           field->data.capacity-1)),
!                             gg_bitwise_and( signbyte,
!                                             build_int_cst_type( UCHAR,
!                                                                 ~NUMERIC_DISPLAY_SIGN_BIT)));
!                   }
!                 }
!               }
!             }
!           // We can now set up the byte-by-byte processing loop:
!           if( internal_codeset_is_ebcdic() )
!             {
!             // We are working in EBCDIC
!             WHILE( pointer, lt_op, pend )
!               {
!               // Pick up the byte
!               digit = gg_get_indirect_reference(pointer, NULL_TREE);
!               IF( digit, lt_op, build_int_cst_type(UCHAR, EBCDIC_ZERO) )
!                 {
!                 // break on a non-digit
!                 gg_assign(pointer, pend);
!                 }
!               ELSE
!                 {
!                 IF( digit, gt_op, build_int_cst_type(UCHAR, EBCDIC_NINE) )
!                   {
!                   // break on a non-digit
!                   gg_assign(pointer, pend);
!                   }
!                 ELSE
!                   {
!                   // Whether ASCII or EBCDIC, the bottom four bits tell the tale:
!                   // Multiply our accumulator by ten:
!                   gg_assign(value, gg_multiply(value, build_int_cst_type(TREE_TYPE(value), 10)));
!                   // And add in the current digit
!                   gg_assign(value,
!                             gg_add(value, gg_cast(TREE_TYPE(value), gg_bitwise_and( digit,
!                                                                                     build_int_cst_type(UCHAR, 0x0F) ))));
!                   gg_increment(pointer);
!                   }
!                   ENDIF
                  }
-                 ENDIF
                }
-               WEND
              }
            else
              {
!             // We are working in ASCII:
!             WHILE( pointer, lt_op, pend )
!               {
!               // Pick up the byte
!               digit = gg_get_indirect_reference(pointer, NULL_TREE);
!               // Whether ASCII or EBCDIC, the bottom four bits tell the tale:
!               // Multiply our accumulator by ten:
!               gg_assign(value, gg_multiply(value, build_int_cst_type(TREE_TYPE(value), 10)));
!               // And add in the current digit
!               gg_assign(value, gg_add(value, gg_cast(TREE_TYPE(value), gg_bitwise_and(digit, build_int_cst_type(UCHAR, 0x0F)))));
!               gg_increment(pointer);
!               }
!               WEND
              }
  
!           // Value contains the binary value.  The last thing is to apply -- and
!           // undo -- the signable logic:
! 
!           if( field->attr & signable_e )
!             {
!             // The variable is signed
!             if( field->attr & separate_e )
!               {
!               // The sign byte is separate
!               if( field->attr & leading_e)
!                 {
!                 // The first byte is '+' or '-'
!                 if( internal_codeset_is_ebcdic() )
!                   {
!                   // We are operating in EBCDIC, so we look for a 96 (is minus sign)
!                   IF( gg_get_indirect_reference(source_address, NULL_TREE),
!                                                 eq_op,
!                                                 build_int_cst_type(UCHAR, 96) )
!                     {
!                     gg_assign(value, gg_negate(value));
!                     }
!                   ELSE
!                     ENDIF
!                   }
!                 else
!                   {
!                   // We are operating in ASCII
!                   IF( gg_get_indirect_reference(source_address, NULL_TREE),
!                                                 eq_op,
!                                                 build_int_cst_type(UCHAR, '-') )
!                     {
!                     gg_assign(value, gg_negate(value));
!                     }
!                   ELSE
!                     ENDIF
!                   }
!                 }
!               else
!                 {
!                 // The final byte is '+' or '-'
!                 if( internal_codeset_is_ebcdic() )
!                   {
!                   // We are operating in EBCDIC, so we look for a 96 (is minus sign)
!                   IF( gg_get_indirect_reference(source_address, build_int_cst_type(SIZE_T, field->data.capacity-1)),
!                                                 eq_op,
!                                                 build_int_cst_type(UCHAR, 96) )
!                     {
!                     gg_assign(value, gg_negate(value));
!                     }
!                   ELSE
!                     ENDIF
!                   }
!                 else
!                   {
!                   // We are operating in ASCII
!                   IF( gg_get_indirect_reference(source_address, build_int_cst_type(SIZE_T, field->data.capacity-1)),
!                                                 eq_op,
!                                                 build_int_cst_type(UCHAR, '-') )
!                     {
!                     gg_assign(value, gg_negate(value));
!                     }
!                   ELSE
!                     ENDIF
!                   }
!                 }
!               }
!             else
!               {
!               // The sign byte is internal.  Check the sign bit
!               if(internal_codeset_is_ebcdic())
!                 {
!                 IF( gg_bitwise_and( signbyte,
!                                           build_int_cst_type( UCHAR,
!                                                               NUMERIC_DISPLAY_SIGN_BIT)), eq_op, build_int_cst_type(UCHAR, 0) )
!                   {
!                   // The EBCDIC sign bit was OFF, so negate the result
!                   gg_assign(value, gg_negate(value));
!                   }
!                 ELSE
!                   ENDIF
!                 }
!               else
!                 {
!                 IF( gg_bitwise_and( signbyte,
!                                           build_int_cst_type( UCHAR,
!                                                               NUMERIC_DISPLAY_SIGN_BIT)), ne_op, build_int_cst_type(UCHAR, 0) )
!                   {
!                   // The ASCII sign bit was on, so negate the result
!                   gg_assign(value, gg_negate(value));
!                   }
!                 ELSE
!                   ENDIF
!                 }
!               // It's time to put back the original data:
!               if( field->attr & leading_e)
!                 {
!                 // The first byte has the sign bit:
!                 gg_assign(gg_get_indirect_reference(source_address, NULL_TREE),
!                           signbyte);
!                 }
!               else
!                 {
!                 // The final byte has the sign bit:
!                 gg_assign(gg_get_indirect_reference(source_address,
!                                                     build_int_cst_type(SIZE_T, field->data.capacity-1)),
!                           signbyte);
!                 }
!               }
!             }
            }
          ENDIF
          }
--- 967,1004 ----
                // The sign byte is internal
                if( field->attr & leading_e)
                  {
!                 // The first byte has the sign bit.
!                 gg_assign(signp, source_address);
                  }
                else
                  {
!                 // The final byte has the sign bit.
!                 gg_assign(signp,
!                           gg_add(source_address,
!                                 build_int_cst_type( SIZE_T,
!                                               (field->data.digits-1)*stride)));
                  }
                }
              }
            else
              {
!             // This value is unsigned, so just use the first location:
!             gg_assign(signp, source_address);
              }
  
!           gg_assign(val128,
!                     gg_call_expr( INT128,
!                                   "__gg__numeric_display_to_binary",
!                                   signp,
!                                   pointer,
!                                   build_int_cst_type(INT, field->data.digits),
!                               build_int_cst_type(INT, field->codeset.encoding),
!                               NULL_TREE));
!           // Assign the value we got from the string to our "return" value:
!           
!           // Note that cppcheck can't understand the run-time IF()
!           // cppcheck-suppress redundantAssignment
!           retval = gg_cast(return_type, val128);
            }
          ENDIF
          }
*************** get_binary_value( tree value,
*** 1080,1090 ****
        {
        // As of this writing, the source value is big-endian
        // We have to convert it to a little-endian destination.
        tree dest   = gg_cast(build_pointer_type(UCHAR), gg_get_address_of(value));
        tree source = get_data_address(field, field_offset);
  
!       size_t dest_nbytes   = gg_sizeof(value);
!       size_t source_nbytes = field->data.capacity;
  
        if( debugging )
          {
--- 1011,1022 ----
        {
        // As of this writing, the source value is big-endian
        // We have to convert it to a little-endian destination.
+       tree value = gg_define_variable(return_type);
        tree dest   = gg_cast(build_pointer_type(UCHAR), gg_get_address_of(value));
        tree source = get_data_address(field, field_offset);
  
!       size_t dest_nbytes   =  TREE_INT_CST_LOW(TYPE_SIZE_UNIT(return_type));
!       size_t source_nbytes = field->data.capacity();
  
        if( debugging )
          {
*************** get_binary_value( tree value,
*** 1116,1122 ****
                                                      vs_file_static);
          if( field->attr & signable_e )
            {
!           IF( gg_array_value(gg_cast(build_pointer_type(SCHAR), source)), lt_op, gg_cast(SCHAR, integer_zero_node) )
              {
              gg_assign(extension, build_int_cst_type(UCHAR, 0xFF));
              }
--- 1048,1056 ----
                                                      vs_file_static);
          if( field->attr & signable_e )
            {
!           IF( gg_array_value(gg_cast(build_pointer_type(SCHAR), source)),
!               lt_op,
!               gg_cast(SCHAR, integer_zero_node) )
              {
              gg_assign(extension, build_int_cst_type(UCHAR, 0xFF));
              }
*************** get_binary_value( tree value,
*** 1154,1159 ****
--- 1088,1094 ----
          hex_dump(dest, dest_nbytes);
          gg_printf("\n", NULL_TREE);
          }
+       retval = value;
        break;
        }
  
*************** get_binary_value( tree value,
*** 1182,1243 ****
            }
          }
        tree source_address = get_data_address(field, field_offset);
!       tree dest_type = TREE_TYPE(value);
!       tree source_type = tree_type_from_size( field->data.capacity,
                                                field->attr & signable_e);
        if( debugging && rdigits)
          {
          gg_printf("get_binary_value bin5 rdigits: %d\n", rdigits, NULL_TREE);
          }
  
!       gg_assign(value,
!                 gg_cast(dest_type,
!                         gg_indirect(gg_cast( build_pointer_type(source_type),
!                                              source_address ))));
        break;
        }
  
      case FldPacked:
        {
!       // Zero out the destination:
!       gg_assign(value, gg_cast(TREE_TYPE(value), integer_zero_node));
!       gg_assign(pointer, get_data_address(field, field_offset));
!       gg_assign(pend,
!                 gg_add(pointer,
!                        build_int_cst_type(SIZE_T, field->data.capacity-1)));
! 
!       // Convert all but the last byte of the packed decimal sequence
!       WHILE( pointer, lt_op, pend )
!         {
!         // Convert the first nybble
!         gg_assign(value, gg_multiply(value, build_int_cst_type(TREE_TYPE(value), 10)));
!         gg_assign(value, gg_add(value, gg_cast(TREE_TYPE(value), gg_rshift(gg_get_indirect_reference(pointer, NULL_TREE), build_int_cst(UINT, 4)))));
! 
!         // Convert the second nybble
!         gg_assign(value, gg_multiply(value, build_int_cst_type(TREE_TYPE(value), 10)));
!         gg_assign(value, gg_add(value, gg_cast(TREE_TYPE(value), gg_bitwise_and(gg_get_indirect_reference(pointer, NULL_TREE), build_int_cst_type(UCHAR, 0xF)))));
!         gg_increment(pointer);
!         }
!         WEND
! 
!       // This is the final byte:
!       gg_assign(value, gg_multiply(value, build_int_cst_type(TREE_TYPE(value), 10)));
!       gg_assign(value, gg_add(value, gg_cast(TREE_TYPE(value), gg_rshift(gg_get_indirect_reference(pointer, NULL_TREE), build_int_cst(UINT, 4)))));
! 
!       IF( gg_bitwise_and(gg_get_indirect_reference(pointer, NULL_TREE), build_int_cst_type(UCHAR, 0xF)), eq_op, build_int_cst_type(UCHAR, 0x0D) )
!         {
!         gg_assign(value, gg_negate(value));
!         }
!       ELSE
          {
!         IF( gg_bitwise_and(gg_get_indirect_reference(pointer, NULL_TREE), build_int_cst_type(UCHAR, 0xF)), eq_op, build_int_cst_type(UCHAR, 0x0B) )
!           {
!           gg_assign(value, gg_negate(value));
!           }
!         ELSE
!           ENDIF
          }
!         ENDIF
        break;
        }
  
--- 1117,1153 ----
            }
          }
        tree source_address = get_data_address(field, field_offset);
!       tree source_type = tree_type_from_size( field->data.capacity(),
                                                field->attr & signable_e);
        if( debugging && rdigits)
          {
          gg_printf("get_binary_value bin5 rdigits: %d\n", rdigits, NULL_TREE);
          }
  
!       retval = gg_cast(return_type,
!                        gg_indirect(gg_cast( build_pointer_type(source_type),
!                                             source_address )));
        break;
        }
  
      case FldPacked:
        {
!       if( rdigits )
          {
!         gg_assign(rdigits,
!                   build_int_cst_type( TREE_TYPE(rdigits),
!                                       get_scaled_rdigits(field)));
          }
!       tree value = gg_define_variable(return_type);
!       gg_assign(value, gg_cast(return_type,
!                                     gg_call_expr(INT128,
!                                     "__gg__packed_to_binary",
!                                     get_data_address( field,
!                                                       field_offset),
!                                     build_int_cst_type(INT,
!                                                       field->data.capacity()),
!                                     NULL_TREE)));
!       retval = value;
        break;
        }
  
*************** get_binary_value( tree value,
*** 1249,1261 ****
          gg_assign(rdigits,
                    gg_cast( TREE_TYPE(rdigits), integer_zero_node));
          }
!       gg_assign(value,
!                 gg_cast(TREE_TYPE(value),
!                         gg_call_expr( INT128,
!                                       "__gg__integer_from_float128",
!                                       gg_get_address_of(field->var_decl_node),
!                                       NULL_TREE)));
        needs_scaling = false;
        break;
        }
  
--- 1159,1172 ----
          gg_assign(rdigits,
                    gg_cast( TREE_TYPE(rdigits), integer_zero_node));
          }
!       tree value = gg_define_variable(return_type);
!       gg_assign(value, gg_cast(return_type,
!                                gg_call_expr( INT128,
!                                      "__gg__integer_from_float128",
!                                      gg_get_address_of(field->var_decl_node),
!                                      NULL_TREE)));
        needs_scaling = false;
+       retval = value;
        break;
        }
  
*************** get_binary_value( tree value,
*** 1267,1273 ****
                              cbl_field_type_str(field->type) );
        cbl_internal_error("%s", err);
        abort();
!       // break; // break not needed after abort();
        }
      }
  
--- 1178,1184 ----
                              cbl_field_type_str(field->type) );
        cbl_internal_error("%s", err);
        abort();
!       break;
        }
      }
  
*************** get_binary_value( tree value,
*** 1277,1294 ****
        {
        if( field->data.rdigits < 0 )
          {
          scale_by_power_of_ten_N(value, -field->data.rdigits);
          }
        }
      }
    }
  
  static tree
  tree_type_from_field(const cbl_field_t *field)
    {
    gcc_assert(field);
!   return tree_type_from_size(field->data.capacity, field->attr & signable_e);
    }
  
  tree
  get_data_address( cbl_field_t *field,
--- 1188,1257 ----
        {
        if( field->data.rdigits < 0 )
          {
+         // Hey, Dubner!
+         // Should that test be != 0 rather than < 0?  Maybe not; this routine
+         // is supposed to be for integers.
+         tree value = gg_define_variable(return_type);
+         gg_assign(value, retval);
          scale_by_power_of_ten_N(value, -field->data.rdigits);
+         retval = value;
          }
        }
      }
+   return retval;
    }
  
+ tree
+ get_binary_value_tree(tree return_type,
+                       tree rdigits,
+                 const cbl_refer_t &refer,
+                       tree         hilo
+                       )
+   {
+   tree retval;
+   if( refer_is_clean(refer) )
+     {
+     retval = get_binary_value_tree(return_type,
+                                    rdigits,
+                                    refer.field,
+                                    integer_zero_node,
+                                    hilo);
+     }
+   else
+     {
+     retval = get_binary_value_tree(return_type,
+                                    rdigits,
+                                    refer.field,
+                                    refer_offset(refer),
+                                    hilo);
+     }
+   return retval;
+   }
+ 
+ void
+ get_binary_value( tree value,
+                   tree rdigits,
+                   cbl_field_t *field,
+                   tree         field_offset,
+                   tree         hilo
+                   )
+   {
+   tree return_type = TREE_TYPE(value);
+   gg_assign(value, get_binary_value_tree( return_type,
+                                           rdigits,
+                                           field,
+                                           field_offset,
+                                           hilo ));
+   }
+ 
+ #if 0
  static tree
  tree_type_from_field(const cbl_field_t *field)
    {
    gcc_assert(field);
!   return tree_type_from_size(field->data.capacity(), field->attr & signable_e);
    }
+ #endif
  
  tree
  get_data_address( cbl_field_t *field,
*************** copy_little_endian_into_place(cbl_field_
*** 1757,1763 ****
      }
    scale_by_power_of_ten_N(value, dest->data.rdigits - rhs_rdigits);
  
!   tree dest_type = tree_type_from_size( dest->data.capacity,
                                          dest->attr & signable_e);
    tree dest_pointer = gg_add(member(dest->var_decl_node, "data"),
                               dest_offset);
--- 1720,1726 ----
      }
    scale_by_power_of_ten_N(value, dest->data.rdigits - rhs_rdigits);
  
!   tree dest_type = tree_type_from_size( dest->data.capacity(),
                                          dest->attr & signable_e);
    tree dest_pointer = gg_add(member(dest->var_decl_node, "data"),
                               dest_offset);
*************** char *
*** 1931,1951 ****
  get_literal_string(cbl_field_t *field)
    {
    assert(field->type == FldLiteralA);
!   size_t buffer_length = field->data.capacity+1;
    char *buffer = static_cast<char *>(xcalloc(1, buffer_length));
  
!   for(size_t i=0; i<field->data.capacity; i++)
!     {
!     buffer[i] = ascii_to_internal(field->data.initial[i]);
!     }
! 
    return buffer;
    }
  
  bool
  refer_is_clean(const cbl_refer_t &refer)
    {
!   if( !refer.field || refer.field->type == FldLiteralN )
      {
      // It is routine for a refer to have no field.  It happens when the parser
      // passes us a refer for an optional parameter that has been omitted, for
--- 1894,1916 ----
  get_literal_string(cbl_field_t *field)
    {
    assert(field->type == FldLiteralA);
!   size_t buffer_length = field->data.capacity()+1;
    char *buffer = static_cast<char *>(xcalloc(1, buffer_length));
  
!   size_t charsout;
!   const char *converted = __gg__iconverter(DEFAULT_SOURCE_ENCODING,
!                                      field->codeset.encoding,
!                                      field->data.original(),
!                                      field->data.capacity(),
!                                      &charsout);
!   memcpy(buffer, converted, field->data.capacity()+1);
    return buffer;
    }
  
  bool
  refer_is_clean(const cbl_refer_t &refer)
    {
!     if( !refer.field || refer.field->is_numeric_constant() )
      {
      // It is routine for a refer to have no field.  It happens when the parser
      // passes us a refer for an optional parameter that has been omitted, for
*************** refer_fill_depends(const cbl_refer_t &re
*** 2007,2013 ****
    // We multiply the ODO value by the size of the data capacity to get the
    // shortened length:
  
!   tree mult_expr = gg_multiply( build_int_cst_type(TREE_TYPE(value64), odo->data.capacity),
                                  value64 );
  
    // And we add that to the distance from the requested variable to the odo
--- 1972,1979 ----
    // We multiply the ODO value by the size of the data capacity to get the
    // shortened length:
  
!   tree mult_expr = gg_multiply( build_int_cst_type(TREE_TYPE(value64),
!                                                    odo->data.capacity()),
                                  value64 );
  
    // And we add that to the distance from the requested variable to the odo
*************** tree   // size_t
*** 2048,2088 ****
  refer_size(const cbl_refer_t &refer, refer_type_t refer_type)
    {
    Analyze();
!   static tree retval = gg_define_variable(SIZE_T, "..rs_retval", vs_file_static);
! 
!   if( !refer.field )
      {
!     return size_t_zero_node;
      }
! 
!   if( refer_is_clean(refer) )
      {
!     return get_any_capacity(refer.field);
!     }
  
!   // Step the first:  Get the actual full length:
  
!   if( refer_has_depends(refer, refer_type) )
!     {
!     // Because there is a depends, we might have to change the length:
!     gg_assign(retval, refer_fill_depends(refer));
!     }
!   else
!     {
!     gg_assign(retval, get_any_capacity(refer.field));
!     }
  
!   if( refer.refmod.from || refer.refmod.len )
!     {
!     tree refmod = refer_refmod_length(refer);
!     // retval is the ODO based total length.
!     // refmod is the length resulting from refmod(from:len)
!     // We have to reduce retval by the effect of refmod:
!     tree diff = gg_subtract(get_any_capacity(refer.field),
!                             refmod);
!     gg_assign(retval, gg_subtract(retval, diff));
      }
-   return retval;
    }
  
  tree  // size_t
--- 2014,2063 ----
  refer_size(const cbl_refer_t &refer, refer_type_t refer_type)
    {
    Analyze();
!   if( refer.refmod.len && refer.refmod.len->field->type == FldLiteralN )
      {
!     return build_int_cst_type(SIZE_T,
!                               atol(  refer.refmod.len->field->data.original())
!                                    * refer.field->codeset.stride());
      }
!   else
      {
!     static tree retval = gg_define_variable(SIZE_T, "..rs_retval", vs_file_static);
  
!     if( !refer.field )
!       {
!       return size_t_zero_node;
!       }
  
!     if( refer_is_clean(refer) )
!       {
!       return get_any_capacity(refer.field);
!       }
  
!     // Step the first:  Get the actual full length:
! 
!     if( refer_has_depends(refer, refer_type) )
!       {
!       // Because there is a depends, we might have to change the length:
!       gg_assign(retval, refer_fill_depends(refer));
!       }
!     else
!       {
!       gg_assign(retval, get_any_capacity(refer.field));
!       }
! 
!     if( refer.refmod.from || refer.refmod.len )
!       {
!       tree refmod = refer_refmod_length(refer);
!       // retval is the ODO based total length.
!       // refmod is the length resulting from refmod(from:len)
!       // We have to reduce retval by the effect of refmod:
!       tree diff = gg_subtract(get_any_capacity(refer.field),
!                               refmod);
!       gg_assign(retval, gg_subtract(retval, diff));
!       }
!     return retval;
      }
    }
  
  tree  // size_t
*************** refer_size_source(const cbl_refer_t &ref
*** 2104,2114 ****
        other.  But there conceivably might be others,.
  
        You have been warned.
- 
        */
  
-   // This test has to be here, otherwise there are failures in regression
-   // testing.
    if( !refer.field )
      {
      return size_t_zero_node;
--- 2079,2086 ----
*************** refer_size_source(const cbl_refer_t &ref
*** 2121,2126 ****
--- 2093,2112 ----
      return get_any_capacity(refer.field);
      }
  
+   // We are dealing with a refer
+   const cbl_enabled_exceptions_t&
+                                 enabled_exceptions( cdf_enabled_exceptions() );
+   if( !enabled_exceptions.match(ec_bound_ref_mod_e) )
+     {
+     // ref_mod bounds checking is off
+     if( refer.refmod.len && refer.refmod.len->field->type == FldLiteralN )
+       {
+       // And the refmod.len is a literal.
+       return build_int_cst_type(SIZE_T,
+                               atol(  refer.refmod.len->field->data.original())
+                                    * refer.field->codeset.stride());      }
+     }
+ 
    // This assignment has to be here. Simply returning refer_size() results
    // in regression testing errors.
    static tree retval = gg_define_variable(SIZE_T, "..rss_retval", vs_file_static);
*************** get_time_nanoseconds()
*** 2157,2159 ****
--- 2143,2203 ----
  #endif
    return retval;
  }
+ 
+ bool
+ is_pure_integer(const cbl_field_t *field)
+   {
+   // Check to see if field is suitable for fast arithmetic.  That is, it is
+   // a native binary integer with no fixed-point decimal places:
+   bool retval = false;
+   switch( field->type )
+     {
+     case FldIndex:
+     case FldPointer:
+     case FldLiteralN:
+       retval = true;
+       break;
+ 
+     case FldNumericBin5:
+       if( !(field->attr & intermediate_e) && field->data.rdigits == 0 )
+         {
+         // This is a pure integer, with no rdigits
+         switch(field->data.capacity())
+           {
+           case 1:
+           case 2:
+           case 4:
+           case 8:
+           case 16:
+             // These are the sizes we know how to handle
+             retval = true;
+             break;
+           }
+         }
+       break;
+ 
+     case FldAlphanumeric:
+       if( strcmp(field->name, "ZEROS") == 0 )
+         {
+         retval = true;
+         }
+       break;
+ 
+     case FldInvalid:
+     case FldGroup:
+     case FldNumericBinary:
+     case FldFloat:
+     case FldPacked:
+     case FldNumericDisplay:
+     case FldNumericEdited:
+     case FldAlphaEdited:
+     case FldLiteralA:
+     case FldClass:
+     case FldConditional:
+     case FldForward:
+     case FldSwitch:
+     case FldDisplay:
+       break;
+     }
+   return retval;
+   }
diff -Nrcpad gcc-15.2.0/gcc/cobol/genutil.h gcc-16.1.0-RC-20260423/gcc/cobol/genutil.h
*** gcc-15.2.0/gcc/cobol/genutil.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/genutil.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 30,42 ****
  #ifndef _GENUTIL_H_
  #define _GENUTIL_H_
  
- #define EBCDIC_MINUS (0x60)
- #define EBCDIC_PLUS  (0x4E)
- #define EBCDIC_ZERO  (0xF0)
- #define EBCDIC_NINE  (0xF9)
- 
- bool internal_codeset_is_ebcdic();
- 
  extern bool exception_location_active;
  extern bool skip_exception_processing;
  
--- 30,35 ----
*************** extern tree var_decl_default_compute_err
*** 58,72 ****
  extern tree var_decl_rdigits;                // int         __gg__rdigits;
  extern tree var_decl_unique_prog_id;         // size_t      __gg__unique_prog_id;
  
- extern tree var_decl_entry_location;         // This is for managing ENTRY statements
  extern tree var_decl_exit_address;           // This is for implementing pseudo_return_pop
  
  extern tree var_decl_call_parameter_signature; // char   *__gg__call_parameter_signature
  extern tree var_decl_call_parameter_count;     // int __gg__call_parameter_count
  extern tree var_decl_call_parameter_lengths;   // size_t *var_decl_call_parameter_lengths
  
- extern tree var_decl_return_code;            // short __gg__data_return_code
- 
  extern tree var_decl_arithmetic_rounds_size;  // size_t __gg__arithmetic_rounds_size;
  extern tree var_decl_arithmetic_rounds;       // int*   __gg__arithmetic_rounds;
  extern tree var_decl_fourplet_flags_size;     // size_t __gg__fourplet_flags_size;
--- 51,62 ----
*************** extern tree var_decl_treeplet_3s; // SIZ
*** 84,92 ****
  extern tree var_decl_treeplet_4f; // cblc_field_pp_type_node , "__gg__treeplet_4f"
  extern tree var_decl_treeplet_4o; // SIZE_T_P                , "__gg__treeplet_4o"
  extern tree var_decl_treeplet_4s; // SIZE_T_P                , "__gg__treeplet_4s"
- 
  extern tree var_decl_nop;         // int __gg__nop
  extern tree var_decl_main_called; // int __gg__main_called
  
  int       get_scaled_rdigits(cbl_field_t *field);
  int       get_scaled_digits(cbl_field_t *field);
--- 74,82 ----
  extern tree var_decl_treeplet_4f; // cblc_field_pp_type_node , "__gg__treeplet_4f"
  extern tree var_decl_treeplet_4o; // SIZE_T_P                , "__gg__treeplet_4o"
  extern tree var_decl_treeplet_4s; // SIZE_T_P                , "__gg__treeplet_4s"
  extern tree var_decl_nop;         // int __gg__nop
  extern tree var_decl_main_called; // int __gg__main_called
+ extern tree var_decl_entry_index; // void* __gg__entry_index
  
  int       get_scaled_rdigits(cbl_field_t *field);
  int       get_scaled_digits(cbl_field_t *field);
*************** void      get_binary_value( tree value,
*** 98,103 ****
--- 88,102 ----
                              cbl_field_t *field,
                              tree         field_offset,
                              tree         hilo = NULL);
+ tree      get_binary_value_tree(tree return_type,
+                                 tree rdigits,
+                                 cbl_field_t *field,
+                                 tree         field_offset,
+                                 tree         hilo = NULL);
+ tree      get_binary_value_tree(tree return_type,
+                                 tree rdigits,
+                                 const cbl_refer_t &refer,
+                                 tree         hilo = NULL);
  tree      get_data_address( cbl_field_t *field,
                              tree         offset);
  
*************** void      build_array_of_fourplets( int
*** 157,161 ****
--- 156,161 ----
  void      get_depending_on_value_from_odo(tree retval, cbl_field_t *odo);
  uint64_t  get_time_nanoseconds();
  
+ bool      is_pure_integer(const cbl_field_t *field);
  
  #endif
diff -Nrcpad gcc-15.2.0/gcc/cobol/inspect.h gcc-16.1.0-RC-20260423/gcc/cobol/inspect.h
*** gcc-15.2.0/gcc/cobol/inspect.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/inspect.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
diff -Nrcpad gcc-15.2.0/gcc/cobol/lang-specs.h gcc-16.1.0-RC-20260423/gcc/cobol/lang-specs.h
*** gcc-15.2.0/gcc/cobol/lang-specs.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/lang-specs.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
***************
*** 37,47 ****
--- 37,98 ----
          "%{D*} %{E} %{I*} %{M} %{fmax-errors*} %{fsyntax-only*} "
          "%{fcobol-exceptions*} "
          "%{copyext} "
+         "%{fexec-charset*} "
+         "%{fexec-national-charset*} "
          "%{fstatic-call} %{fdefaultbyte} "
          "%{ffixed-form} %{ffree-form} %{indicator-column*} "
          "%{preprocess} "
          "%{dialect} "
          "%{include} "
+ 	"%{Wno-apply-commit} "
+ 	"%{Wno-any-length} "
+ 	"%{Wno-file-code-set} "
+ 	"%{Wno-high-order-bit} "
+ 	"%{Wno-bad-line-directive} "
+ 	"%{Wno-bad-numeric} "
+ 	"%{Wno-binary-long-long} "
+ 	"%{Wno-call-giving} "
+ 	"%{Wno-call-literal} "
+ 	"%{Wno-cdf-dollar} "
+ 	"%{Wno-cdf-invalid-parameter} "
+ 	"%{Wno-cdf-name-not-found} "
+ 	"%{Wno-cobol-eject} "
+ 	"%{Wno-cobol-resume} "
+ 	"%{Wno-cobol-volatile} "
+ 	"%{Wno-comp-6} "
+ 	"%{Wno-comp-x} "
+ 	"%{Wno-copybook-found} "
+ 	"%{Wno-ec-unknown} "
+ 	"%{Wno-entry-convention} "
+ 	"%{Wno-iconv-error} "
+ 	"%{Wno-include-file-found} "
+ 	"%{Wno-include-file-not-found} "
+ 	"%{Wno-inspect-trailing} "
+ 	"%{Wno-length-of} "
+ 	"%{Wno-level-1-occurs} "
+ 	"%{Wno-level-78} "
+ 	"%{Wno-level-78-defined} "
+ 	"%{Wno-literal-concat} "
+ 	"%{Wno-locale-error} "
+ 	"%{Wno-move-corresponding} "
+ 	"%{Wno-move-index} "
+ 	"%{Wno-move-pointer} "
+ 	"%{Wno-nllanginfo-error} "
+ 	"%{Wno-operator-space} "
+ 	"%{Wno-preprocessor-error} "
+ 	"%{Wno-procedure-not-found} "
+ 	"%{Wno-procedure-pointer} "
+ 	"%{Wno-replace-error} "
+ 	"%{Wno-returning-number} "
+ 	"%{Wno-segment-error} "
+ 	"%{Wno-segment-negative} "
+ 	"%{Wno-stop-number} "
+ 	"%{Wno-stray-indicator} "
+ 	"%{Wno-usage-typename} "
+ 	"%{Wno-recording-mode} "
+ 	"%{Wno-set-locale-to} "
+ 	"%{Wno-set-to-locale} "
          "%{nomain} "
          "%{!fsyntax-only:%(invoke_as)} "
          , 0, 0, 0},
+       
diff -Nrcpad gcc-15.2.0/gcc/cobol/lang.opt gcc-16.1.0-RC-20260423/gcc/cobol/lang.opt
*** gcc-15.2.0/gcc/cobol/lang.opt	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/lang.opt	Thu Apr 23 11:07:33 2026
***************
*** 1,6 ****
  ; lang.opt -- Options for the gcc Cobol front end.
  
! ; Copyright (C) 2021-2025 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
--- 1,6 ----
  ; lang.opt -- Options for the gcc Cobol front end.
  
! ; Copyright (C) 2021-2026 Free Software Foundation, Inc.
  ;
  ; This file is part of GCC.
  ;
*************** Cobol
*** 45,82 ****
  
  dialect
  Cobol Joined Separate Enum(dialect_type) EnumBitSet Var(cobol_dialect)
! Accept COBOL constructs used by non-ISO compilers
  
  Enum
  Name(dialect_type) Type(int) UnknownError(Unrecognized COBOL dialect name: %qs)
  
  EnumValue
! Enum(dialect_type) String(gcc) Value(0x04) Canonical
  
  EnumValue
! Enum(dialect_type) String(ibm) Value(0x01)
  
  EnumValue
! Enum(dialect_type) String(mf)  Value(0x02)
  
  EnumValue
! Enum(dialect_type) String(gnu) Value(0x04)
  
  fcobol-exceptions
  Cobol Joined Separate Var(cobol_exceptions)
! -fcobol-exceptions=<n>	Enable some exceptions by default
  
  copyext
  Cobol Joined Separate Var(cobol_copyext) Init(0)
! Define alternative implicit copybook filename extension
  
  fdefaultbyte
  Cobol RejectNegative Joined Separate UInteger Var(cobol_default_byte)
! Set Working-Storage data items to the supplied value
  
  fflex-debug
  Cobol Var(yy_flex_debug, 1) Init(0)
! Enable Cobol lex debugging
  
  ffixed-form
  Cobol RejectNegative
--- 45,351 ----
  
  dialect
  Cobol Joined Separate Enum(dialect_type) EnumBitSet Var(cobol_dialect)
! Accept COBOL constructs used by non-ISO compilers.
  
  Enum
  Name(dialect_type) Type(int) UnknownError(Unrecognized COBOL dialect name: %qs)
  
  EnumValue
! Enum(dialect_type) String(iso) Value(0x100)
  
  EnumValue
! Enum(dialect_type) String(gcc) Value(0x01) Canonical
  
  EnumValue
! Enum(dialect_type) String(ibm) Value(0x02)
  
  EnumValue
! Enum(dialect_type) String(mf)  Value(0x04)
! 
! EnumValue
! Enum(dialect_type) String(gnu) Value(0x08)
  
  fcobol-exceptions
  Cobol Joined Separate Var(cobol_exceptions)
! -fcobol-exceptions=<n>	Enable some exceptions by default.
  
  copyext
  Cobol Joined Separate Var(cobol_copyext) Init(0)
! Define alternative implicit copybook filename extension.
! 
! fexec-charset=
! Cobol Joined Var(cobol_charset) RejectNegative
! ; Documented in c.opt
! 
! fexec-national-charset=
! Cobol Joined Var(cobol_national_charset) RejectNegative
! Set the default execution character set for NATIONAL data items.
! 
! ;; warnings
! 
! ; Par78CdfDefinedW
! Wlevel-78-defined
! Cobol Warning Var(level_78_defined, 1) Init(1)
! Warn if CDF defines Level 78 constant.
! 
! ; MfBinaryLongLong
! Wbinary-long-long
! Cobol Warning Var(binary_long_long, 1) Init(1)
! Warn if BINARY-LONG-LONG is used.
! 
! ; MfCallGiving
! Wcall-giving
! Cobol Warning Var(call_giving, 1) Init(1)
! Warn if CALL ... GIVING is used.
! 
! ; MfCallLiteral
! Wcall-literal
! Cobol Warning Var(call_literal, 1) Init(1)
! Warn if CALL is used is used with a literal parameter by reference.
! 
! ; MfCdfDollar
! Wcdf-dollar
! Cobol Warning Var(cdf_dollar, 1) Init(1)
! Warn if CDF %<$IF%> is used.
! 
! ; MfComp6
! Wcomp-6
! Cobol Warning Var(comp_6, 1) Init(1)
! Warn if COMPUTATIONAL-6 is used.
! 
! ; MfCompX
! Wcomp-x
! Cobol Warning Var(comp_x, 1) Init(1)
! Warn if COMPUTATIONAL is used with PICTURE X.
! 
! ; MfTrailing
! Winspect-trailing
! Cobol Warning Var(inspect_trailing, 1) Init(1)
! Warn if INSPECT ... TRAILING is used.
! 
! ; MfLevel_1_Occurs
! Wlevel-1-occurs
! Cobol Warning Var(level_1_occurs, 1) Init(1)
! Warn if Level 01 is used with OCCURS.
! 
! ; MfLevel78
! Wlevel-78
! Cobol Warning Var(level_78, 1) Init(1)
! Warn if Level 78 is used.
! 
! ; MfAnyLengthContained
! Wany-length
! Cobol Warning Var(cobol_any_length, 1) Init(1)
! Warn if ANY LENGTH is used in outermost program.
! 
! ; MfMoveIndex
! Wmove-index
! Cobol Warning Var(move_index, 1) Init(1)
! Warn if MOVE INDEX is used.
! 
! ; MfMovePointer
! Wmove-pointer
! Cobol Warning Var(move_pointer, 1) Init(1)
! Warn if MOVE POINTER is used.
! 
! ; MfReturningNum
! Wreturning-number
! Cobol Warning Var(returning_number, 1) Init(1)
! Warn if RETURNING <number> is used.
! 
! ; MfUsageTypename
! Wusage-typename
! Cobol Warning Var(usage_typename, 1) Init(1)
! Warn if USAGE IS TYPENAME is used.
! 
! ; ParNumstrW
! Wbad-numeric
! Cobol Warning Var(bad_numeric, 1) Init(1)
! Warn if numeric string is invalid.
! 
! ; CdfParameterW
! Wcdf-invalid-parameter
! Cobol Warning Var(cdf_invalid_parameter, 1) Init(1)
! Warn if referenced CDF PARAMETER is not defined.
! 
! ; CdfNotFoundW
! Wcdf-name-not-found
! Cobol Warning Var(cdf_name_not_found, 1) Init(1)
! Warn if referenced CDF name is not defined.
! 
! ; LexInputN
! Wcopybook-found
! Cobol Warning Var(copybook_found, 1) Init(1)
! Print message when copybook is processed.
! 
! ; EcUnknownW
! Wec-unknown
! Cobol Warning Var(ec_unknown, 1) Init(1)
! Warn if unimplemented/unknown exception condition is referenced.
! 
! ; ParInfoI
! Wentry-convention
! Cobol Warning Var(entry_convention, 1) Init(1)
! Print message when ENTRY CONVENTION is specified.
! 
! ; LexIncludeOkN
! Winclude-file-found
! Cobol Warning Var(include_file_found, 1) Init(1)
! Print message when include file is processed.
! 
! ; ParLiteral2W
! Wliteral-concat
! Cobol Warning Var(literal_concat, 1) Init(1)
! Warn if concatenated literals use different encodings.
! 
! ; ParLocaleW
! Wlocale-error
! Cobol Warning Var(locale_error, 1) Init(1)
! Warn if locale(3) fails.
! 
! ; ParNoCorrespondingW
! Wmove-corresponding
! Cobol Warning Var(warn_corresponding, 1) Init(1) 
! Warn if COBOL MOVE has no corresponding fields.
! 
! ; ParLangInfoW
! Wnllanginfo-error
! Cobol Warning Var(nllanginfo_error, 1) Init(1)
! Warn if nlanglanginfo(3) fails.
! 
! ; IbmLengthOf
! Wlength-of
! Cobol Warning Var(cobol_length_of, 1) Init(1)
! Warn if LENGTH OF is used.
! 
! ; IbmProcedurePointer
! Wprocedure-pointer
! Cobol Warning Var(procedure_pointer, 1) Init(1)
! Warn if PROCEDURE POINTER is used.
! 
! ; IbmSectionSegmentW
! Wsegment
! Cobol Warning Var(cobol_segment, 1) Init(1)
! Warn if SECTION segments are used.
! 
! ; IsoResume
! Wcobol-resume
! Cobol Warning Var(cobol_resume, 1) Init(1)
! Warn if resume is used (instead of error for IBM).
! 
! ;; unimplemented syntax
! 
! ; SynApplyCommit
! Wapply-commit
! Cobol Warning Var(apply_commit, 1) Init(1)
! Warn if APPLY COMMIT is used.
! 
! ; SynHighOrderBit
! Whigh-order-bit
! Cobol Warning Var(high_order_bit, 1) Init(1)
! Warn if HIGH-ORDER-LEFT HIGH-ORDER-RIGHT is used.
! 
! ; SynFileCodeSet  
! Wfile-code-set
! Cobol Warning Var(file_code_set, 1) Init(1)
! Warn if FILE CODE SET is used.
! 
! ; SynRecordingMode
! Wrecording-mode
! Cobol Warning Var(recording_mode, 1) Init(1)
! Warn if RECORDING MODE is used.
! 
! ; SynSetLocaleTo
! Wset-locale-to
! Cobol Warning Var(set_locale_to, 1) Init(1)
! Warn if SET LOCALE ... TO is used.
! 
! ; SynSetToLocale
! Wset-to-locale
! Cobol Warning Var(set_to_locale, 1) Init(1)
! Warn if SET ... TO LOCALE is used.
! 
! ;; errors to warnings
! 
! ; LexLineE
! Wbad-line-directive
! Cobol Warning Var(bad_line_directive, 1) Init(1)
! Warn if a line directive is malformed (instead of error).
! 
! ; IbmEqualAssignE
! Wequal-assign
! Cobol Warning Var(equal_assign, 1) Init(1)
! Warn if EQUAL used as assignment operator (instead of error).
! 
! ; ParIconvE
! Wiconv-error
! Cobol Warning Var(iconv_error, 1) Init(1)
! Warn if iconv(3) cannot convert between encodings (instead of error).
! 
! ; LexIncludeE
! Winclude-file-not-found
! Cobol Warning Var(include_file_not_found, 1) Init(1)
! Warn if include file is not found (instead of error).
! 
! ; LexPreprocessE
! Wpreprocessor-error
! Cobol Warning Var(preprocessor_error, 1) Init(1)
! Warn if a preprocessor fails (instead of error).
! 
! ; ParUnresolvedProcE
! Wprocedure-not-found
! Cobol Warning Var(procedure_not_found, 1) Init(1)
! Warn if a referenced procedure is not found (instead of error).
! 
! ; LexReplaceE
! Wreplace-error
! Cobol Warning Var(replace_error, 1) Init(1)
! Warn if REPLACE cannot be processed (instead of error).
! 
! ; IbmSectionRangeE
! Wsegment-error
! Cobol Warning Var(segment_error, 1) Init(1)
! Warn if a SEGMENT section is invalid (instead of error).
! 
! ; IbmSectionNegE
! Wsegment-negative
! Cobol Warning Var(segment_negative, 1) Init(1)
! Warn if a SEGMENT range is negative (instead of error).
! 
! ; LexIndicatorE
! Wstray-indicator
! Cobol Warning Var(stray_indicator, 1) Init(1)
! Warn if indicator column has no recognized meaning (instead of error).
! 
! ; LexSeparatorE
! Woperator-space
! Cobol Warning Var(operator_space, 1) Init(1)
! Warn if relational operator not followed by space (instead of error).
! 
! ; IbmEjectE
! Wcobol-eject
! Cobol Warning Var(cobol_eject, 1) Init(1)
! Warn if IBM-style EJECT is used (instead of error).
! 
! ; IbmStopNumber
! Wstop-number
! Cobol Warning Var(stop_number, 1) Init(1)
! Warn if IBM-style STOP <number> is used (instead of error).
! 
! ; IbmVolatileE
! Wcobol-volatile
! Cobol Warning Var(cobol_volatile, 1) Init(1)
! Warn if VOLATILE is used (instead of error if -dialect ibm).
! 
! ;; end error-suppression options
  
  fdefaultbyte
  Cobol RejectNegative Joined Separate UInteger Var(cobol_default_byte)
! Set Working-Storage data items to the supplied value.
  
  fflex-debug
  Cobol Var(yy_flex_debug, 1) Init(0)
! Enable Cobol lex debugging.
  
  ffixed-form
  Cobol RejectNegative
*************** Assume that the source file is free form
*** 88,114 ****
  
  findicator-column
  Cobol RejectNegative Joined Separate UInteger Var(indicator_column) Init(0) IntegerRange(0, 8)
! -findicator-column=<n>	Column after which Region A begins
! 
! finternal-ebcdic
! Cobol Var(cobol_ebcdic, 1) Init(0)
! -finternal-ebcdic	Internal processing is in EBCDIC Code Page 1140
  
  fstatic-call
  Cobol Var(cobol_static_call, 1) Init(1)
! Enable/disable static linkage for CALL literals
  
  ftrace-debug
  Cobol Var(cobol_trace_debug, 1) Init(0)
! Enable Cobol parser debugging
  
  fyacc-debug
  Cobol Var(yy_debug, 1) Init(0)
! Enable Cobol yacc debugging
  
  preprocess
  Cobol Joined Separate Var(cobol_preprocess)
! preprocess <source_filter> before compiling
  
  iprefix
  Cobol Joined Separate
--- 357,379 ----
  
  findicator-column
  Cobol RejectNegative Joined Separate UInteger Var(indicator_column) Init(0) IntegerRange(0, 8)
! -findicator-column=<n>	Column after which Region A begins.
  
  fstatic-call
  Cobol Var(cobol_static_call, 1) Init(1)
! Enable/disable static linkage for CALL literals.
  
  ftrace-debug
  Cobol Var(cobol_trace_debug, 1) Init(0)
! Enable Cobol parser debugging.
  
  fyacc-debug
  Cobol Var(yy_debug, 1) Init(0)
! Enable Cobol yacc debugging.
  
  preprocess
  Cobol Joined Separate Var(cobol_preprocess)
! Preprocess <source_filter> before compiling.
  
  iprefix
  Cobol Joined Separate
*************** Cobol Joined Separate
*** 128,141 ****
  
  main
  Cobol
! -main	The first program-id in the next source file is called by a generated main() entry point
  
  main=
  Cobol Joined Var(cobol_main_string)
! -main=<source_file> source_file/PROGRAM-ID is called by the generated main()
  
  nomain
  Cobol
! -nomain	No main() function is created from COBOL source files
  
  ; This comment is to ensure we retain the blank line above.
--- 393,406 ----
  
  main
  Cobol
! -main	The first program-id in the next source file is called by a generated main() entry point.
  
  main=
  Cobol Joined Var(cobol_main_string)
! -main=<source_file> source_file/PROGRAM-ID is called by the generated main().
  
  nomain
  Cobol
! -nomain	No main() function is created from COBOL source files.
  
  ; This comment is to ensure we retain the blank line above.
diff -Nrcpad gcc-15.2.0/gcc/cobol/lang.opt.urls gcc-16.1.0-RC-20260423/gcc/cobol/lang.opt.urls
*** gcc-15.2.0/gcc/cobol/lang.opt.urls	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/lang.opt.urls	Thu Apr 23 11:07:33 2026
*************** UrlSuffix(gcc/Preprocessor-Options.html#
*** 8,24 ****
  ;   duplicate: 'gcc/Overall-Options.html#index-E'
  
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I)
  
  M
  UrlSuffix(gcc/Preprocessor-Options.html#index-M) LangUrlSuffix_D(gdc/Code-Generation.html#index-M)
  
  ffixed-form
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-ffixed-form)
  
  ffree-form
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-ffree-form)
  
  iprefix
  UrlSuffix(gcc/Directory-Options.html#index-iprefix) LangUrlSuffix_D(gdc/Directory-Options.html#index-iprefix) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-iprefix)
  
--- 8,30 ----
  ;   duplicate: 'gcc/Overall-Options.html#index-E'
  
  I
! UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-I)
  
  M
  UrlSuffix(gcc/Preprocessor-Options.html#index-M) LangUrlSuffix_D(gdc/Code-Generation.html#index-M)
  
+ fexec-charset=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-fexec-charset)
+ 
  ffixed-form
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-ffixed-form)
  
  ffree-form
  LangUrlSuffix_Fortran(gfortran/Fortran-Dialect-Options.html#index-ffree-form)
  
+ preprocess
+ UrlSuffix(gcc/Overall-Options.html#index-preprocess)
+ 
  iprefix
  UrlSuffix(gcc/Directory-Options.html#index-iprefix) LangUrlSuffix_D(gdc/Directory-Options.html#index-iprefix) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-iprefix)
  
diff -Nrcpad gcc-15.2.0/gcc/cobol/lexio.cc gcc-16.1.0-RC-20260423/gcc/cobol/lexio.cc
*** gcc-15.2.0/gcc/cobol/lexio.cc	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/lexio.cc	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
*************** parse_replacing_term( const char *stmt,
*** 681,687 ****
      }
      if( extraneous_replacing ) {
        update_yylloc( cm[0], cm[8] );
!       yywarn("syntax error: invalid '%.*s'", cm[8].length(), cm[8].first);
        output.matched = false;
        return output;
      }
--- 681,688 ----
      }
      if( extraneous_replacing ) {
        update_yylloc( cm[0], cm[8] );
!       cbl_message(LexReplaceE, "syntax error: invalid '%.*s'",
!                   cm[8].length(), cm[8].first);
        output.matched = false;
        return output;
      }
*************** parse_replacing_pair( const char *stmt,
*** 797,807 ****
        }
      }
      if( pair.stmt.p ) {
!       yywarn("CDF syntax error '%.*s'", (int)pair.stmt.size(), pair.stmt.p);
      }
      else {
        // This eliminated a compiler warning about "format-overflow"
!       yywarn("CDF syntax error");
      }
      pair.stmt = span_t(size_t(0), stmt);
      pair.replace = replace_t();
--- 798,808 ----
        }
      }
      if( pair.stmt.p ) {
!       cbl_message(LexReplaceE, "LEX syntax error '%.*s'", (int)pair.stmt.size(), pair.stmt.p);
      }
      else {
        // This eliminated a compiler warning about "format-overflow"
!       cbl_message(LexReplaceE, "LEX syntax error");
      }
      pair.stmt = span_t(size_t(0), stmt);
      pair.replace = replace_t();
*************** static std::pair<std::list<replace_t>, c
*** 813,820 ****
  parse_replace_pairs( const char *stmt, const char *estmt, bool is_copy_stmt ) {
    std::list<replace_t> pairs ;
  
!   static const char     any_ch[] = ".";
!   static const char    word_ch[] = "[[:alnum:]$_-]";
    static const char nonword_ch[] = "[^[:alnum:]\"'$_-]";
  
    // Pattern to find one REPLACE pseudo-text pair
--- 814,821 ----
  parse_replace_pairs( const char *stmt, const char *estmt, bool is_copy_stmt ) {
    std::list<replace_t> pairs ;
  
!   static const char     any_ch[] = "";
!   ////   const char    word_ch[] = "[[:alnum:]$_-]";
    static const char nonword_ch[] = "[^[:alnum:]\"'$_-]";
  
    // Pattern to find one REPLACE pseudo-text pair
*************** parse_replace_pairs( const char *stmt, c
*** 877,886 ****
      if( parsed.leading_trailing.size() > 0 ) {
        switch( TOUPPER(parsed.leading_trailing.p[0]) ) {
        case 'L': // leading
!         befter[1] = word_ch;
          break;
        case 'T': // trailing
!         befter[0] = word_ch;
          break;
        default:
          gcc_unreachable();
--- 878,887 ----
      if( parsed.leading_trailing.size() > 0 ) {
        switch( TOUPPER(parsed.leading_trailing.p[0]) ) {
        case 'L': // leading
!         befter[1] = any_ch;
          break;
        case 'T': // trailing
!         befter[0] = any_ch;
          break;
        default:
          gcc_unreachable();
*************** parse_replace_pairs( const char *stmt, c
*** 898,904 ****
      gcc_assert(!before.has_nul());
      pairs.push_back( replace_t( output.before, output.after ) );
  
!     // COPY REPLACING matches end-of-statment here
      // REPLACE matched end-of-statement in caller, and estmt[-1] == '.'
      if( is_copy_stmt && parsed.stmt.pend[-1] == '.' ) break;
    }
--- 899,905 ----
      gcc_assert(!before.has_nul());
      pairs.push_back( replace_t( output.before, output.after ) );
  
!     // COPY REPLACING matches end-of-statement here
      // REPLACE matched end-of-statement in caller, and estmt[-1] == '.'
      if( is_copy_stmt && parsed.stmt.pend[-1] == '.' ) break;
    }
*************** parse_replace_pairs( const char *stmt, c
*** 907,913 ****
      dbgmsg( "%s:%d: %s: " HOST_SIZE_T_PRINT_UNSIGNED " pairs parsed from  '%.*s'",
              __func__, __LINE__,
              parsed.done() ? "done" : "not done",
!             (fmt_size_t)pairs.size(), parsed.stmt.size(), parsed.stmt.p );
      int i = 0;
      for( const auto& replace : pairs ) {
        dbgmsg("%s:%d:%4d: '%s' => '%s'", __func__, __LINE__,
--- 908,915 ----
      dbgmsg( "%s:%d: %s: " HOST_SIZE_T_PRINT_UNSIGNED " pairs parsed from  '%.*s'",
              __func__, __LINE__,
              parsed.done() ? "done" : "not done",
!             (fmt_size_t)pairs.size(), parsed.stmt.size(),
!             parsed.stmt.size() ? parsed.stmt.p : "" );
      int i = 0;
      for( const auto& replace : pairs ) {
        dbgmsg("%s:%d:%4d: '%s' => '%s'", __func__, __LINE__,
*************** parse_copy_directive( filespan_t& mfile
*** 989,997 ****
        if( yy_flex_debug ) {
          size_t nnl = 1 + count_newlines(mfile.data, copy_stmt.p);
          size_t nst = 1 + count_newlines(copy_stmt.p, copy_stmt.pend);
!         dbgmsg("%s:%d: line " HOST_SIZE_T_PRINT_UNSIGNED
                 ": COPY directive is " HOST_SIZE_T_PRINT_UNSIGNED " lines '%.*s'",
!                __func__, __LINE__,
                 (fmt_size_t)nnl, (fmt_size_t)nst, copy_stmt.size(), copy_stmt.p);
        }
      }
--- 991,999 ----
        if( yy_flex_debug ) {
          size_t nnl = 1 + count_newlines(mfile.data, copy_stmt.p);
          size_t nst = 1 + count_newlines(copy_stmt.p, copy_stmt.pend);
!         dbgmsg("%s:%d: %s:" HOST_SIZE_T_PRINT_UNSIGNED
                 ": COPY directive is " HOST_SIZE_T_PRINT_UNSIGNED " lines '%.*s'",
!                __func__, __LINE__, cobol_filename(), 
                 (fmt_size_t)nnl, (fmt_size_t)nst, copy_stmt.size(), copy_stmt.p);
        }
      }
*************** preprocess_filter_add( const char input[
*** 1465,1471 ****
  
    auto filename = find_filter(filter.c_str());
    if( !filename ) {
!     yywarn("preprocessor '%s/%s' not found", getcwd(NULL, 0), filter.c_str());
      return false;
    }
    preprocessor_filters.push_back( std::make_pair(xstrdup(filename), options) );
--- 1467,1474 ----
  
    auto filename = find_filter(filter.c_str());
    if( !filename ) {
!     cbl_message(LexPreprocessE, "preprocessor '%s/%s' not found",
!                 getcwd(NULL, 0), filter.c_str());
      return false;
    }
    preprocessor_filters.push_back( std::make_pair(xstrdup(filename), options) );
*************** void
*** 1476,1497 ****
  cdftext::echo_input( int input, const char filename[] ) {
    int fd;
    if( -1 == (fd = dup(input)) ) {
!       yywarn( "could not open preprocessed file %s to echo to standard output",
!                filename );
        return;
    }
  
    auto mfile = map_file(fd);
  
    if( -1 == write(STDOUT_FILENO, mfile.data, mfile.size()) ) {
!     yywarn( "could not write preprocessed file %s to standard output",
            filename );
    }
    if( -1 == munmap(mfile.data, mfile.size()) ) {
!     yywarn( "could not release mapped file" );
    }
    if( -1 == close(fd) ) {
!     yywarn( "could not close mapped file" );
    }
  }
  
--- 1479,1500 ----
  cdftext::echo_input( int input, const char filename[] ) {
    int fd;
    if( -1 == (fd = dup(input)) ) {
!       cbl_message(LexPreprocessE, "could not open preprocessed file "
!                                  "%s to echo to standard output", filename );
        return;
    }
  
    auto mfile = map_file(fd);
  
    if( -1 == write(STDOUT_FILENO, mfile.data, mfile.size()) ) {
!     cbl_message(LexPreprocessE, "could not write preprocessed file %s to standard output",
            filename );
    }
    if( -1 == munmap(mfile.data, mfile.size()) ) {
!     cbl_message(LexPreprocessE, "could not release mapped file" );
    }
    if( -1 == close(fd) ) {
!     cbl_message(LexPreprocessE, "could not close mapped file" );
    }
  }
  
*************** cdftext::lex_open( const char filename[]
*** 1510,1530 ****
    if( input == -1 ) return NULL;
  
    int output = open_output();
! 
    // Process any files supplied by the -include command-line option.
    for( auto name : included_files ) {
      if( -1 == (input = open(name, O_RDONLY)) ) {
!       yyerrorvl(1, "", "cannot open -include file %s", name);
        continue;
      }
      cobol_filename(name, inode_of(input));
      filespan_t mfile( free_form_reference_format( input ) );
  
      process_file( mfile, output );
  
      cobol_filename_restore(); // process_file restores only for COPY
    }
    included_files.clear();
  
    cobol_filename(filename, inode_of(input));
    filespan_t mfile( free_form_reference_format( input ) );
--- 1513,1538 ----
    if( input == -1 ) return NULL;
  
    int output = open_output();
!   size_t n =0;
!   
    // Process any files supplied by the -include command-line option.
    for( auto name : included_files ) {
+     int input; // cppcheck-suppress shadowVariable
      if( -1 == (input = open(name, O_RDONLY)) ) {
!       cbl_message(LexIncludeE, "cannot open %<-include%> file %qs", name);
        continue;
      }
+     dbgmsg("lex_open: including %zu of %zu: '%s'", ++n, included_files.size(), name);
      cobol_filename(name, inode_of(input));
      filespan_t mfile( free_form_reference_format( input ) );
  
      process_file( mfile, output );
  
+     dbgmsg("lex_open: processed %zu of %zu: '%s'", n, included_files.size(), name);
      cobol_filename_restore(); // process_file restores only for COPY
    }
    included_files.clear();
+   dbgmsg("lex_open: '%s'", filename);
  
    cobol_filename(filename, inode_of(input));
    filespan_t mfile( free_form_reference_format( input ) );
*************** cdftext::lex_open( const char filename[]
*** 1568,1574 ****
        }
        int erc;
        if( -1 == (erc = execv(filter, argv.data())) ) {
!         yywarn("could not execute %s", filter);
        }
        _exit(erc);
      }
--- 1576,1582 ----
        }
        int erc;
        if( -1 == (erc = execv(filter, argv.data())) ) {
!         cbl_message(LexPreprocessE, "could not execute %s", filter);
        }
        _exit(erc);
      }
*************** cdftext::lex_open( const char filename[]
*** 1587,1593 ****
               filter, status);
        }
      }
!     yywarn( "applied %s", filter );
    }
  
    return fdopen( output, "r");
--- 1595,1601 ----
               filter, status);
        }
      }
!     cbl_message(LexIncludeOkN, "applied %s", filter );
    }
  
    return fdopen( output, "r");
*************** cdftext::open_input( const char filename
*** 1603,1609 ****
    verbose_file_reader = NULL != getenv("GCOBOL_TEMPDIR");
  
    if( verbose_file_reader ) {
!     yywarn("verbose: opening %s for input", filename);
    }
    return fd;
  }
--- 1611,1617 ----
    verbose_file_reader = NULL != getenv("GCOBOL_TEMPDIR");
  
    if( verbose_file_reader ) {
!     cbl_message(LexInputN, "verbose: opening %s for input", filename);
    }
    return fd;
  }
*************** cdftext::map_file( int fd ) {
*** 1679,1687 ****
  bool lexio_dialect_mf();
  
  /*
!  * A valid sequence area is 6 digits or blanks at the begining of the line that
!  * contains PROGRAM-ID. Return NULL if no valid sequence area, else return
!  * pointer to BOL.
   */
  static const char *
  valid_sequence_area( const char *data, const char *eodata ) {
--- 1687,1695 ----
  bool lexio_dialect_mf();
  
  /*
!  * A valid sequence area is 6 digits or blanks at the beginning of the line
!  * that contains PROGRAM-ID. Return NULL if no valid sequence area, else
!  * return pointer to BOL.
   */
  static const char *
  valid_sequence_area( const char *data, const char *eodata ) {
*************** cdftext::free_form_reference_format( int
*** 1861,1867 ****
   * denoting the source filename.  As far as the lexer is concerned,
   * there's only ever one file: the name passed to lex_open() when we
   * kicked things off.  But messages and the debugger need to know
!  * which file and line each statment appeared in.
   *
   * The lexer uses the input stack to keep track of names and
   * numbers. The top of the input file stack is the current file
--- 1869,1875 ----
   * denoting the source filename.  As far as the lexer is concerned,
   * there's only ever one file: the name passed to lex_open() when we
   * kicked things off.  But messages and the debugger need to know
!  * which file and line each statement appeared in.
   *
   * The lexer uses the input stack to keep track of names and
   * numbers. The top of the input file stack is the current file
diff -Nrcpad gcc-15.2.0/gcc/cobol/lexio.h gcc-16.1.0-RC-20260423/gcc/cobol/lexio.h
*** gcc-15.2.0/gcc/cobol/lexio.h	Fri Aug  8 06:51:40 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/lexio.h	Thu Apr 23 11:07:33 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-15.2.0/gcc/cobol/messages.cc gcc-16.1.0-RC-20260423/gcc/cobol/messages.cc
*** gcc-15.2.0/gcc/cobol/messages.cc	Thu Jan  1 00:00:00 1970
--- gcc-16.1.0-RC-20260423/gcc/cobol/messages.cc	Thu Apr 23 11:07:33 2026
***************
*** 0 ****
--- 1,407 ----
+ /*
+  * Copyright (c) 2021-2026 Symas Corporation
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions are
+  * met:
+  *
+  * * Redistributions of source code must retain the above copyright
+  *   notice, this list of conditions and the following disclaimer.
+  * * Redistributions in binary form must reproduce the above
+  *   copyright notice, this list of conditions and the following disclaimer
+  *   in the documentation and/or other materials provided with the
+  *   distribution.
+  * * Neither the name of the Symas Corporation nor the names of its
+  *   contributors may be used to endorse or promote products derived from
+  *   this software without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
+ /*
+  * Define a table of diagnositic messages, each uniquely identified and 
+  * grouped into dialects. The user can select on the command line which 
+  * ones are in effect.  
+  */
+ 
+ #include <cobol-system.h>
+ #include <coretypes.h>
+ #include <tree.h>
+ #undef yy_flex_debug
+ 
+ #include <langinfo.h>
+ 
+ #include <coretypes.h>
+ #include <version.h>
+ #include <demangle.h>
+ #include <intl.h>
+ #include <backtrace.h>
+ #include <diagnostic.h>
+ #include <opts.h>
+ #include "util.h"
+ 
+ #include "cbldiag.h"
+ #include "cdfval.h"
+ #include "lexio.h"
+ 
+ #include "../../libgcobol/ec.h"
+ #include "../../libgcobol/common-defs.h"
+ #include "symbols.h"
+ #include "inspect.h"
+ #include "../../libgcobol/io.h"
+ #include "genapi.h"
+ #include "genutil.h"
+ #include "../../libgcobol/charmaps.h"
+ 
+ 
+ 
+ /*
+  * As of now, every diagnositc has one id, one message, one kind, and is
+  * associated with "one" dialect. The dialect could be ORed. If it is, that
+  * means among the dialects it belongs to, it is always of the same kind.
+  *
+  * The diagnositic mask in force during compilation may include/exclude
+  * features based on their associated dialect and/or by id.  It may stipulate
+  * that a warning is treated as an error, too, but that's up the diagnostic
+  * framework.  If a feature requires a dialect and is not specifically enabled,
+  * gcobol emits of message of the associated kind, and names the dialect
+  * required.
+  */
+ struct cbl_diag_t {
+   cbl_diag_id_t id;
+   cbl_name_t option;
+   diagnostics::kind kind;
+   cbl_dialect_t dialect;
+   
+   explicit cbl_diag_t( cbl_diag_id_t id )
+     : id(id), option(""), kind(diagnostics::kind::ignored), dialect(dialect_gcc_e)
+   {}
+ 
+   cbl_diag_t( cbl_diag_id_t id,
+               const char option[],
+               diagnostics::kind kind,
+               cbl_dialect_t dialect = dialect_iso_e )
+     : id(id), option(""), kind(kind), dialect(dialect)
+   {
+     gcc_assert(strlen(option) < sizeof(this->option));
+     strcpy(this->option, option);
+   }
+ 
+   bool operator<( const cbl_diag_t& that ) const {
+     return id < that.id;
+   }
+ };
+ 
+ /*
+  * Initially, errors and warnings are set per the default, dialect gcc.  If the
+  * user chooses dialect iso, all dialect-enabled features are turned into
+  * errors.  If the user selects a more generous dialect, features associated
+  * with it are set to be ignored.
+  * 
+  * Individual features may also be suppressed, and all warnings may be elevated
+  * to errors.
+  */
+ const static auto dialect_mf_gnu = cbl_dialect_t(dialect_mf_e | dialect_gnu_e);
+ const static auto dialect_ibm_mf_gnu = cbl_dialect_t(dialect_ibm_e |
+                                                      dialect_mf_e  |
+                                                      dialect_gnu_e);
+ 
+ std::set<cbl_diag_t> cbl_diagnostics {
+   { CdfNotFoundW, "-Wcdf-name-not-found", diagnostics::kind::warning },
+   { CdfParameterW, "-Wcdf-invalid-parameter", diagnostics::kind::warning },
+ 
+   { EcUnknownW, "-Wec-unknown", diagnostics::kind::warning },
+ 
+   { IbmEjectE, "-Wcobol-eject", diagnostics::kind::error, dialect_ibm_e },
+   { IbmLengthOf, "-Wlength-of", diagnostics::kind::error, dialect_ibm_mf_gnu },
+   { IbmEqualAssignE, "-Wequal-assign", diagnostics::kind::error, dialect_ibm_e },
+   { IbmProcedurePointer, "-Wprocedure-pointer", diagnostics::kind::error, dialect_ibm_mf_gnu },
+   { IbmSectionNegE, "-Wsegment-negative", diagnostics::kind::error, dialect_ibm_e },
+   { IbmSectionRangeE, "-Wsegment-error", diagnostics::kind::error, dialect_ibm_e },
+   { IbmSectionSegmentW, "-Wsegment", diagnostics::kind::warning, dialect_ibm_e },
+   { IbmStopNumber, "-Wstop-number", diagnostics::kind::error, dialect_ibm_e },
+   { IbmVolatileE, "-Wcobol-volatile", diagnostics::kind::error, dialect_ibm_e },
+   { IbmVolatileW, "-Wcobol-volatile", diagnostics::kind::warning, dialect_ibm_e },
+ 
+   // RESUME not supported by IBM
+   { IsoResume, "-Wcobol-resume", diagnostics::kind::error, dialect_ibm_e },
+ 
+   { MfBinaryLongLong, "-Wbinary-long-long", diagnostics::kind::error, dialect_mf_gnu },
+   { MfCallGiving, "-Wcall-giving", diagnostics::kind::error, dialect_mf_gnu },
+   { MfCallLiteral, "-Wcall-literal", diagnostics::kind::error, dialect_mf_e },
+   { MfCdfDollar, "-Wcdf-dollar", diagnostics::kind::error, dialect_mf_gnu },
+   { MfComp6, "-Wcomp-6", diagnostics::kind::error, dialect_mf_gnu },
+   { MfCompX, "-Wcomp-x", diagnostics::kind::error, dialect_mf_gnu },
+   { MfLevel_1_Occurs, "-Wlevel-1-occurs", diagnostics::kind::error, dialect_mf_gnu },
+   { MfLevel78, "-Wlevel-78", diagnostics::kind::error, dialect_mf_gnu },
+   { MfAnyLength, "-Wany-length", diagnostics::kind::error, dialect_mf_gnu },
+   { MfMoveIndex, "-Wmove-index", diagnostics::kind::error, dialect_gnu_e },
+   { MfMovePointer, "-Wmove-pointer", diagnostics::kind::error, dialect_mf_gnu },
+   { MfReturningNum, "-Wreturning-number", diagnostics::kind::error, dialect_mf_gnu },
+   { MfUsageTypename, "-Wusage-typename", diagnostics::kind::error, dialect_mf_gnu },
+   { MfTrailing, "-Winspect-trailing", diagnostics::kind::error, dialect_mf_gnu },
+ 
+   { LexIncludeE, "-Winclude-file-not-found", diagnostics::kind::error }, 
+   { LexIncludeOkN, "-Winclude-file-found", diagnostics::kind::note }, 
+   { LexIndicatorE, "-Wstray-indicator", diagnostics::kind::error }, 
+   { LexInputN, "-Wcopybook-found", diagnostics::kind::note }, 
+   { LexLineE, "-Wbad-line-directive", diagnostics::kind::error }, 
+   { LexPreprocessE, "-Wpreprocessor-error", diagnostics::kind::error }, 
+   { LexReplaceE, "-Wreplace-error", diagnostics::kind::error },
+   // mf and gnu do not require whitespace after relational operators
+   { LexSeparatorE, "-Woperator-space", diagnostics::kind::error, dialect_mf_gnu }, 
+ 
+   { Par78CdfDefinedW, "-Wlevel-78-defined", diagnostics::kind::warning },
+   { ParIconvE, "-Wiconv-error", diagnostics::kind::note }, 
+   { ParInfoI, "-Wentry-convention", diagnostics::kind::note }, 
+   { ParLangInfoW, "-Wnllanginfo-error", diagnostics::kind::warning },
+   { ParLiteral2W, "-Wliteral-concat", diagnostics::kind::warning },
+   { ParLocaleW, "-Wlocale-error", diagnostics::kind::warning },
+   { ParNoCorrespondingW, "-Wmove-corresponding", diagnostics::kind::warning },
+   { ParNumstrW, "-Wbad-numeric", diagnostics::kind::warning },
+   { ParUnresolvedProcE, "-Wprocedure-not-found", diagnostics::kind::error },
+ 
+   // unimplmeneted syntax warnings
+   { SynApplyCommit, "-Wapply-commit", diagnostics::kind::warning },
+   { SynFileCodeSet, "-Wfile-code-set", diagnostics::kind::warning },
+   { SynHighOrderBit, "-Whigh-order-bit", diagnostics::kind::warning },
+   { SynRecordingMode, "-Wrecording-mode", diagnostics::kind::warning },
+   { SynSetLocaleTo, "-Wset-locale-to", diagnostics::kind::warning },
+   { SynSetToLocale, "-Wset-to-locale", diagnostics::kind::warning },
+ 
+ };
+ 
+ static struct set_verify {
+   set_verify() {
+     gcc_assert(cbl_diagnostics.size() == DiagDiagDiag);
+     auto p = std::find_if(cbl_diagnostics.begin(), cbl_diagnostics.end(),
+                              []( const auto& diag ) {
+                                return '?' == cbl_dialect_str(diag.dialect)[0];
+                              } );
+     if( p != cbl_diagnostics.end() ) {
+       fprintf(stderr, "unregconized dialect '%04x (~%04x)'", p->dialect, ~p->dialect);
+     }
+     gcc_assert( std::none_of(cbl_diagnostics.begin(), cbl_diagnostics.end(),
+                              []( const auto& diag ) {
+                                return '?' == cbl_dialect_str(diag.dialect)[0];
+                              } ) );
+   }
+ } verify_consistent_message_count;
+ 
+ static inline diagnostics::kind
+ kind_of( cbl_diag_id_t id ) {
+   auto diag = cbl_diagnostics.find(cbl_diag_t(id));
+   if( diag != cbl_diagnostics.end() ) {
+     return diag->kind;
+   }
+   return diagnostics::kind::ice;
+ }  
+ 
+ diagnostics::kind
+ cbl_diagnostic_kind( cbl_diag_id_t id ) {
+   return kind_of(id);
+ }
+ 
+ bool
+ cbl_diagnostic_kind( cbl_diag_id_t id, diagnostics::kind kind ) {
+   auto p = cbl_diagnostics.find( cbl_diag_t{id} );
+   if( p != cbl_diagnostics.end() ) {
+     auto diag(*p);
+     diag.kind = kind;
+     cbl_diagnostics.erase(p);
+     return cbl_diagnostics.insert(diag).second;
+   }
+   return false;
+ }
+ 
+ void
+ cobol_warning( cbl_diag_id_t id, int yn, bool warning_as_error ) {
+   gcc_assert( 0 <= yn && yn <= 1 );
+ 
+   diagnostics::kind kind = yn?
+     diagnostics::kind::warning : diagnostics::kind::ignored;
+   
+   if( warning_as_error ) {
+     kind = diagnostics::kind::error;
+   }
+   
+   cbl_diagnostic_kind(id, kind);
+ }
+ 
+ /*
+  * Set diagnostics associated with a dialog to be ignored, because the
+  * constructs are valid for that dialog.  We cannot use cbl_diagnostic_kind()
+  * for this purpose because it modified the std::set that we're iterating over.
+  */
+ void
+ cobol_warning_suppress( cbl_dialect_t dialect ) {
+   std::set<cbl_diag_t> modified;
+ 
+   for( auto diag : cbl_diagnostics ) {
+     if( diag.dialect & dialect ) {
+       switch(diag.id) {
+       case IbmSectionNegE:
+       case IbmSectionRangeE:
+       case IbmSectionSegmentW:
+         break; // do not suppress
+       default:
+         diag.kind = diagnostics::kind::ignored;
+         break;
+       }
+     }
+     modified.insert(diag);
+   }
+   cbl_diagnostics.clear();
+   cbl_diagnostics.insert(modified.begin(), modified.end());
+ }
+ 
+ static inline const char *
+ option_of( cbl_diag_id_t id ) {
+   auto diag = cbl_diagnostics.find(cbl_diag_t(id));
+   if( diag != cbl_diagnostics.end() && diag->option[0] ) {
+     return diag->option;
+   }
+   return nullptr;
+ }  
+ 
+ const char *
+ cbl_diagnostic_option( cbl_diag_id_t id ) {
+   return option_of(id);
+ }
+ 
+ /*
+  * This is the general message looker-upper.  It determines whether the
+  * diagnositic is in force, at what level, and the message text, and invokes
+  * the framework.
+  */
+ extern int yychar;
+ extern YYLTYPE yylloc;
+ 
+ static const diagnostics::option_id option_zero;
+ 
+ location_t current_token_location();
+ location_t current_token_location(const location_t& loc);
+ 
+ bool
+ cbl_message( cbl_diag_id_t id, const char gmsgid[], ... ) {
+   auto_diagnostic_group d;
+   const char *option;
+   char *msg = nullptr;
+ 
+   diagnostics::kind kind = kind_of(id);
+   if( kind == diagnostics::kind::ignored ) return false;
+ 
+   if( (option = option_of(id)) != nullptr ) {
+     msg = xasprintf("%s [%s]", gmsgid, option);
+     gmsgid = msg;
+   }
+  
+   va_list ap;
+ 
+   va_start (ap, gmsgid);
+   auto ret = emit_diagnostic_valist( kind, current_token_location(),
+                                      option_zero, gmsgid, &ap );
+   va_end (ap);
+   free(msg);
+   
+   return ret;
+ }
+ 
+ bool cbl_message( cbl_loc_t loc, cbl_diag_id_t id, const char gmsgid[], ... ) {
+   class temp_loc_t { // copied from util.cc
+     location_t orig;
+   public:
+     temp_loc_t() : orig(current_token_location()) {
+       if( yychar < 3 ) return;
+ 
+       gcc_location_set(yylloc); // use lookahead location
+     }
+     explicit temp_loc_t( const YYLTYPE& loc) : orig(current_token_location()) {
+       gcc_location_set(loc);
+     }
+     explicit temp_loc_t( const YDFLTYPE& loc) : orig(current_token_location()) {
+       gcc_location_set(loc);
+     }
+     ~temp_loc_t() {
+       if( orig != current_token_location() ) {
+         current_token_location(orig);
+       }
+     }
+   };
+ 
+   auto_diagnostic_group d;
+   const char *option;
+   char *msg = nullptr;
+ 
+   diagnostics::kind kind = kind_of(id);
+   if( kind == diagnostics::kind::ignored ) return false;
+ 
+   if( (option = option_of(id)) != nullptr ) {
+     msg = xasprintf("%s [%s]", gmsgid, option);
+     gmsgid = msg;
+   }
+ 
+   temp_loc_t looker(loc);
+   va_list ap;
+   
+   va_start (ap, gmsgid);
+   rich_location richloc (line_table, current_token_location());
+   auto ret = emit_diagnostic_valist( kind, 
+                                      current_token_location(),
+                                      option_zero, gmsgid, &ap );
+   va_end (ap);
+   free(msg);
+ 
+   return ret;
+ }
+ 
+ /*
+  * Verify the dialect associated with the id (and thus term) is covered by the
+  * dialects currently in effect.  If not, issue a standard message of the kind
+  * defined by the id. Possible combinations:
+  *   dialect required:  ok, dialect matches feature dialect
+  *   dialect prohibits  not_ok, dialect matches feature ~dialect
+  *
+  * If ok is false, then a match means the dialect prohibits the feature. 
+  */
+ bool
+ dialect_ok( const cbl_loc_t& loc, cbl_diag_id_t id, const char term[], bool ok ) {
+   auto diag = cbl_diagnostics.find(cbl_diag_t(id));
+ 
+   const char *verb = "requires";
+   
+   if( diag == cbl_diagnostics.end() ) {
+     gcc_unreachable();
+   }
+ 
+   if( diag->kind == diagnostics::kind::ignored ) return true;
+   
+   if( dialect_has(diag->dialect) ) {
+     if( ok ) {
+       return true;
+     } else {
+       verb = "prohibits";
+     }
+   } else {
+     if( !ok ) return true; // current dialect correctly does not match the feature
+   }
+ 
+   cbl_message(loc, id, "%qs %s %<-dialect %s%>",
+               term, verb, cbl_dialect_str(diag->dialect));
+   return false;
+ }
+ 
+ 
+ 
+ 
+   
diff -Nrcpad gcc-15.2.0/gcc/cobol/parse.cc gcc-16.1.0-RC-20260423/gcc/cobol/parse.cc
*** gcc-15.2.0/gcc/cobol/parse.cc	Fri Aug  8 07:17:53 2025
--- gcc-16.1.0-RC-20260423/gcc/cobol/parse.cc	Thu Apr 23 11:40:07 2026
***************
*** 67,73 ****
  
  
  /* First part of user prologue.  */
! #line 283 "parse.y"
  
  #include "config.h"
  #include <fstream>  // Before cobol-system because it uses poisoned functions
--- 67,73 ----
  
  
  /* First part of user prologue.  */
! #line 324 "parse.y"
  
  #include "config.h"
  #include <fstream>  // Before cobol-system because it uses poisoned functions
***************
*** 88,96 ****
  #include "genapi.h"
  #include "../../libgcobol/exceptl.h"
  #include "exceptg.h"
  #include "parse_ante.h"
  
! #line 94 "parse.cc"
  
  # ifndef YY_CAST
  #  ifdef __cplusplus
--- 88,97 ----
  #include "genapi.h"
  #include "../../libgcobol/exceptl.h"
  #include "exceptg.h"
+ #include "../../libgcobol/charmaps.h"
  #include "parse_ante.h"
  
! #line 95 "parse.cc"
  
  # ifndef YY_CAST
  #  ifdef __cplusplus
*************** enum yysymbol_kind_t
*** 161,714 ****
    YYSYMBOL_PIC_P = 40,                     /* PIC_P  */
    YYSYMBOL_ONES = 41,                      /* ONES  */
    YYSYMBOL_SPACES = 42,                    /* SPACES  */
!   YYSYMBOL_LITERAL = 43,                   /* LITERAL  */
!   YYSYMBOL_END = 44,                       /* END  */
!   YYSYMBOL_EOP = 45,                       /* EOP  */
!   YYSYMBOL_FILENAME = 46,                  /* FILENAME  */
!   YYSYMBOL_INVALID = 47,                   /* INVALID  */
!   YYSYMBOL_NUMBER = 48,                    /* NUMBER  */
!   YYSYMBOL_NEGATIVE = 49,                  /* NEGATIVE  */
!   YYSYMBOL_NUMSTR = 50,                    /* "numeric literal"  */
!   YYSYMBOL_OVERFLOW_kw = 51,               /* "OVERFLOW"  */
!   YYSYMBOL_BINARY_INTEGER = 52,            /* BINARY_INTEGER  */
!   YYSYMBOL_COMPUTATIONAL = 53,             /* COMPUTATIONAL  */
!   YYSYMBOL_PERFORM = 54,                   /* PERFORM  */
!   YYSYMBOL_BACKWARD = 55,                  /* BACKWARD  */
!   YYSYMBOL_POSITIVE = 56,                  /* POSITIVE  */
!   YYSYMBOL_POINTER = 57,                   /* POINTER  */
!   YYSYMBOL_SECTION = 58,                   /* SECTION  */
!   YYSYMBOL_STANDARD_ALPHABET = 59,         /* "STANDARD ALPHABET"  */
!   YYSYMBOL_SWITCH = 60,                    /* SWITCH  */
!   YYSYMBOL_UPSI = 61,                      /* UPSI  */
!   YYSYMBOL_ZERO = 62,                      /* ZERO  */
!   YYSYMBOL_SYSIN = 63,                     /* SYSIN  */
!   YYSYMBOL_SYSIPT = 64,                    /* SYSIPT  */
!   YYSYMBOL_SYSOUT = 65,                    /* SYSOUT  */
!   YYSYMBOL_SYSLIST = 66,                   /* SYSLIST  */
!   YYSYMBOL_SYSLST = 67,                    /* SYSLST  */
!   YYSYMBOL_SYSPUNCH = 68,                  /* SYSPUNCH  */
!   YYSYMBOL_SYSPCH = 69,                    /* SYSPCH  */
!   YYSYMBOL_CONSOLE = 70,                   /* CONSOLE  */
!   YYSYMBOL_C01 = 71,                       /* C01  */
!   YYSYMBOL_C02 = 72,                       /* C02  */
!   YYSYMBOL_C03 = 73,                       /* C03  */
!   YYSYMBOL_C04 = 74,                       /* C04  */
!   YYSYMBOL_C05 = 75,                       /* C05  */
!   YYSYMBOL_C06 = 76,                       /* C06  */
!   YYSYMBOL_C07 = 77,                       /* C07  */
!   YYSYMBOL_C08 = 78,                       /* C08  */
!   YYSYMBOL_C09 = 79,                       /* C09  */
!   YYSYMBOL_C10 = 80,                       /* C10  */
!   YYSYMBOL_C11 = 81,                       /* C11  */
!   YYSYMBOL_C12 = 82,                       /* C12  */
!   YYSYMBOL_CSP = 83,                       /* CSP  */
!   YYSYMBOL_S01 = 84,                       /* S01  */
!   YYSYMBOL_S02 = 85,                       /* S02  */
!   YYSYMBOL_S03 = 86,                       /* S03  */
!   YYSYMBOL_S04 = 87,                       /* S04  */
!   YYSYMBOL_S05 = 88,                       /* S05  */
!   YYSYMBOL_AFP_5A = 89,                    /* "AFP 5A"  */
!   YYSYMBOL_STDIN = 90,                     /* STDIN  */
!   YYSYMBOL_STDOUT = 91,                    /* STDOUT  */
!   YYSYMBOL_STDERR = 92,                    /* STDERR  */
!   YYSYMBOL_LIST = 93,                      /* LIST  */
!   YYSYMBOL_MAP = 94,                       /* MAP  */
!   YYSYMBOL_NOLIST = 95,                    /* NOLIST  */
!   YYSYMBOL_NOMAP = 96,                     /* NOMAP  */
!   YYSYMBOL_NOSOURCE = 97,                  /* NOSOURCE  */
!   YYSYMBOL_MIGHT_BE = 98,                  /* "IS or IS NOT"  */
!   YYSYMBOL_FUNCTION_UDF = 99,              /* "UDF name"  */
!   YYSYMBOL_FUNCTION_UDF_0 = 100,           /* "UDF"  */
!   YYSYMBOL_DATE_FMT = 101,                 /* "date format"  */
!   YYSYMBOL_TIME_FMT = 102,                 /* "time format"  */
!   YYSYMBOL_DATETIME_FMT = 103,             /* "datetime format"  */
!   YYSYMBOL_BASIS = 104,                    /* BASIS  */
!   YYSYMBOL_CBL = 105,                      /* CBL  */
!   YYSYMBOL_CONSTANT = 106,                 /* CONSTANT  */
!   YYSYMBOL_COPY = 107,                     /* COPY  */
!   YYSYMBOL_DEFINED = 108,                  /* DEFINED  */
!   YYSYMBOL_ENTER = 109,                    /* ENTER  */
!   YYSYMBOL_FEATURE = 110,                  /* FEATURE  */
!   YYSYMBOL_INSERTT = 111,                  /* INSERTT  */
!   YYSYMBOL_LSUB = 112,                     /* "("  */
!   YYSYMBOL_PARAMETER_kw = 113,             /* "PARAMETER"  */
!   YYSYMBOL_OVERRIDE = 114,                 /* OVERRIDE  */
!   YYSYMBOL_READY = 115,                    /* READY  */
!   YYSYMBOL_RESET = 116,                    /* RESET  */
!   YYSYMBOL_RSUB = 117,                     /* ")"  */
!   YYSYMBOL_SERVICE_RELOAD = 118,           /* "SERVICE RELOAD"  */
!   YYSYMBOL_STAR_CBL = 119,                 /* "*CBL"  */
!   YYSYMBOL_SUBSCRIPT = 120,                /* SUBSCRIPT  */
!   YYSYMBOL_SUPPRESS = 121,                 /* SUPPRESS  */
!   YYSYMBOL_TITLE = 122,                    /* TITLE  */
!   YYSYMBOL_TRACE = 123,                    /* TRACE  */
!   YYSYMBOL_USE = 124,                      /* USE  */
!   YYSYMBOL_COBOL_WORDS = 125,              /* ">>COBOL-WORDS"  */
!   YYSYMBOL_EQUATE = 126,                   /* EQUATE  */
!   YYSYMBOL_UNDEFINE = 127,                 /* UNDEFINE  */
!   YYSYMBOL_CDF_DEFINE = 128,               /* ">>DEFINE"  */
!   YYSYMBOL_CDF_DISPLAY = 129,              /* ">>DISPLAY"  */
!   YYSYMBOL_CDF_IF = 130,                   /* ">>IF"  */
!   YYSYMBOL_CDF_ELSE = 131,                 /* ">>ELSE"  */
!   YYSYMBOL_CDF_END_IF = 132,               /* ">>END-IF"  */
!   YYSYMBOL_CDF_EVALUATE = 133,             /* ">>EVALUATE"  */
!   YYSYMBOL_CDF_WHEN = 134,                 /* ">>WHEN"  */
!   YYSYMBOL_CDF_END_EVALUATE = 135,         /* ">>END-EVALUATE"  */
!   YYSYMBOL_CALL_CONVENTION = 136,          /* ">>CALL-CONVENTION"  */
!   YYSYMBOL_CALL_COBOL = 137,               /* "CALL"  */
!   YYSYMBOL_CALL_VERBATIM = 138,            /* "CALL (as C)"  */
!   YYSYMBOL_CDF_PUSH = 139,                 /* ">>PUSH"  */
!   YYSYMBOL_CDF_POP = 140,                  /* ">>POP"  */
!   YYSYMBOL_SOURCE_FORMAT = 141,            /* ">>SOURCE FORMAT"  */
!   YYSYMBOL_IF = 142,                       /* IF  */
!   YYSYMBOL_THEN = 143,                     /* THEN  */
!   YYSYMBOL_ELSE = 144,                     /* ELSE  */
!   YYSYMBOL_SENTENCE = 145,                 /* SENTENCE  */
!   YYSYMBOL_ACCEPT = 146,                   /* ACCEPT  */
!   YYSYMBOL_ADD = 147,                      /* ADD  */
!   YYSYMBOL_ALTER = 148,                    /* ALTER  */
!   YYSYMBOL_CALL = 149,                     /* CALL  */
!   YYSYMBOL_CANCEL = 150,                   /* CANCEL  */
!   YYSYMBOL_CLOSE = 151,                    /* CLOSE  */
!   YYSYMBOL_COMPUTE = 152,                  /* COMPUTE  */
!   YYSYMBOL_CONTINUE = 153,                 /* CONTINUE  */
!   YYSYMBOL_DELETE = 154,                   /* DELETE  */
!   YYSYMBOL_DISPLAY = 155,                  /* DISPLAY  */
!   YYSYMBOL_DIVIDE = 156,                   /* DIVIDE  */
!   YYSYMBOL_EVALUATE = 157,                 /* EVALUATE  */
!   YYSYMBOL_EXIT = 158,                     /* EXIT  */
!   YYSYMBOL_FILLER_kw = 159,                /* "FILLER"  */
!   YYSYMBOL_GOBACK = 160,                   /* GOBACK  */
!   YYSYMBOL_GOTO = 161,                     /* GOTO  */
!   YYSYMBOL_INITIALIZE = 162,               /* INITIALIZE  */
!   YYSYMBOL_INSPECT = 163,                  /* INSPECT  */
!   YYSYMBOL_MERGE = 164,                    /* MERGE  */
!   YYSYMBOL_MOVE = 165,                     /* MOVE  */
!   YYSYMBOL_MULTIPLY = 166,                 /* MULTIPLY  */
!   YYSYMBOL_OPEN = 167,                     /* OPEN  */
!   YYSYMBOL_PARAGRAPH = 168,                /* PARAGRAPH  */
!   YYSYMBOL_READ = 169,                     /* READ  */
!   YYSYMBOL_RELEASE = 170,                  /* RELEASE  */
!   YYSYMBOL_RETURN = 171,                   /* RETURN  */
!   YYSYMBOL_REWRITE = 172,                  /* REWRITE  */
!   YYSYMBOL_SEARCH = 173,                   /* SEARCH  */
!   YYSYMBOL_SET = 174,                      /* SET  */
!   YYSYMBOL_SELECT = 175,                   /* SELECT  */
!   YYSYMBOL_SORT = 176,                     /* SORT  */
!   YYSYMBOL_SORT_MERGE = 177,               /* "SORT-MERGE"  */
!   YYSYMBOL_STRING_kw = 178,                /* "STRING"  */
!   YYSYMBOL_STOP = 179,                     /* STOP  */
!   YYSYMBOL_SUBTRACT = 180,                 /* SUBTRACT  */
!   YYSYMBOL_START = 181,                    /* START  */
!   YYSYMBOL_UNSTRING = 182,                 /* UNSTRING  */
!   YYSYMBOL_WRITE = 183,                    /* WRITE  */
!   YYSYMBOL_WHEN = 184,                     /* WHEN  */
!   YYSYMBOL_ARGUMENT_NUMBER = 185,          /* ARGUMENT_NUMBER  */
!   YYSYMBOL_ARGUMENT_VALUE = 186,           /* ARGUMENT_VALUE  */
!   YYSYMBOL_ENVIRONMENT_NAME = 187,         /* ENVIRONMENT_NAME  */
!   YYSYMBOL_ENVIRONMENT_VALUE = 188,        /* ENVIRONMENT_VALUE  */
!   YYSYMBOL_ABS = 189,                      /* ABS  */
!   YYSYMBOL_ACCESS = 190,                   /* ACCESS  */
!   YYSYMBOL_ACOS = 191,                     /* ACOS  */
!   YYSYMBOL_ACTUAL = 192,                   /* ACTUAL  */
!   YYSYMBOL_ADVANCING = 193,                /* ADVANCING  */
!   YYSYMBOL_AFTER = 194,                    /* AFTER  */
!   YYSYMBOL_ALL = 195,                      /* ALL  */
!   YYSYMBOL_ALLOCATE = 196,                 /* ALLOCATE  */
!   YYSYMBOL_ALPHABET = 197,                 /* ALPHABET  */
!   YYSYMBOL_ALPHABETIC = 198,               /* ALPHABETIC  */
!   YYSYMBOL_ALPHABETIC_LOWER = 199,         /* "ALPHABETIC-LOWER"  */
!   YYSYMBOL_ALPHABETIC_UPPER = 200,         /* "ALPHABETIC-UPPER"  */
!   YYSYMBOL_ALPHANUMERIC = 201,             /* ALPHANUMERIC  */
!   YYSYMBOL_ALPHANUMERIC_EDITED = 202,      /* "ALPHANUMERIC-EDITED"  */
!   YYSYMBOL_ALSO = 203,                     /* ALSO  */
!   YYSYMBOL_ALTERNATE = 204,                /* ALTERNATE  */
!   YYSYMBOL_ANNUITY = 205,                  /* ANNUITY  */
!   YYSYMBOL_ANUM = 206,                     /* ANUM  */
!   YYSYMBOL_ANY = 207,                      /* ANY  */
!   YYSYMBOL_ANYCASE = 208,                  /* ANYCASE  */
!   YYSYMBOL_APPLY = 209,                    /* APPLY  */
!   YYSYMBOL_ARE = 210,                      /* ARE  */
!   YYSYMBOL_AREA = 211,                     /* AREA  */
!   YYSYMBOL_AREAS = 212,                    /* AREAS  */
!   YYSYMBOL_AS = 213,                       /* AS  */
!   YYSYMBOL_ASCENDING = 214,                /* ASCENDING  */
!   YYSYMBOL_ACTIVATING = 215,               /* ACTIVATING  */
!   YYSYMBOL_ASIN = 216,                     /* ASIN  */
!   YYSYMBOL_ASSIGN = 217,                   /* ASSIGN  */
!   YYSYMBOL_AT = 218,                       /* AT  */
!   YYSYMBOL_ATAN = 219,                     /* ATAN  */
!   YYSYMBOL_BASED = 220,                    /* BASED  */
!   YYSYMBOL_BASECONVERT = 221,              /* BASECONVERT  */
!   YYSYMBOL_BEFORE = 222,                   /* BEFORE  */
!   YYSYMBOL_BINARY = 223,                   /* BINARY  */
!   YYSYMBOL_BIT = 224,                      /* BIT  */
!   YYSYMBOL_BIT_OF = 225,                   /* "BIT-OF"  */
!   YYSYMBOL_BIT_TO_CHAR = 226,              /* "BIT-TO-CHAR"  */
!   YYSYMBOL_BLANK = 227,                    /* BLANK  */
!   YYSYMBOL_BLOCK_kw = 228,                 /* BLOCK_kw  */
!   YYSYMBOL_BOOLEAN_OF_INTEGER = 229,       /* "BOOLEAN-OF-INTEGER"  */
!   YYSYMBOL_BOTTOM = 230,                   /* BOTTOM  */
!   YYSYMBOL_BY = 231,                       /* BY  */
!   YYSYMBOL_BYTE = 232,                     /* BYTE  */
!   YYSYMBOL_BYTE_LENGTH = 233,              /* "BYTE-LENGTH"  */
!   YYSYMBOL_CF = 234,                       /* CF  */
!   YYSYMBOL_CH = 235,                       /* CH  */
!   YYSYMBOL_CHANGED = 236,                  /* CHANGED  */
!   YYSYMBOL_CHAR = 237,                     /* CHAR  */
!   YYSYMBOL_CHAR_NATIONAL = 238,            /* "CHAR-NATIONAL"  */
!   YYSYMBOL_CHARACTER = 239,                /* CHARACTER  */
!   YYSYMBOL_CHARACTERS = 240,               /* CHARACTERS  */
!   YYSYMBOL_CHECKING = 241,                 /* CHECKING  */
!   YYSYMBOL_CLASS = 242,                    /* CLASS  */
!   YYSYMBOL_COBOL = 243,                    /* COBOL  */
!   YYSYMBOL_CODE = 244,                     /* CODE  */
!   YYSYMBOL_CODESET = 245,                  /* CODESET  */
!   YYSYMBOL_COLLATING = 246,                /* COLLATING  */
!   YYSYMBOL_COLUMN = 247,                   /* COLUMN  */
!   YYSYMBOL_COMBINED_DATETIME = 248,        /* "COMBINED-DATETIME"  */
!   YYSYMBOL_COMMA = 249,                    /* COMMA  */
!   YYSYMBOL_COMMAND_LINE = 250,             /* "COMMAND-LINE"  */
!   YYSYMBOL_COMMAND_LINE_COUNT = 251,       /* "COMMAND-LINE-COUNT"  */
!   YYSYMBOL_COMMIT = 252,                   /* COMMIT  */
!   YYSYMBOL_COMMON = 253,                   /* COMMON  */
!   YYSYMBOL_CONCAT = 254,                   /* CONCAT  */
!   YYSYMBOL_CONDITION = 255,                /* CONDITION  */
!   YYSYMBOL_CONFIGURATION_SECT = 256,       /* "CONFIGURATION SECTION"  */
!   YYSYMBOL_CONTAINS = 257,                 /* CONTAINS  */
!   YYSYMBOL_CONTENT = 258,                  /* CONTENT  */
!   YYSYMBOL_CONTROL = 259,                  /* CONTROL  */
!   YYSYMBOL_CONTROLS = 260,                 /* CONTROLS  */
!   YYSYMBOL_CONVERT = 261,                  /* CONVERT  */
!   YYSYMBOL_CONVERTING = 262,               /* CONVERTING  */
!   YYSYMBOL_CORRESPONDING = 263,            /* CORRESPONDING  */
!   YYSYMBOL_COS = 264,                      /* COS  */
!   YYSYMBOL_COUNT = 265,                    /* COUNT  */
!   YYSYMBOL_CURRENCY = 266,                 /* CURRENCY  */
!   YYSYMBOL_CURRENT = 267,                  /* CURRENT  */
!   YYSYMBOL_CURRENT_DATE = 268,             /* CURRENT_DATE  */
!   YYSYMBOL_DATA = 269,                     /* DATA  */
!   YYSYMBOL_DATE = 270,                     /* DATE  */
!   YYSYMBOL_DATE_COMPILED = 271,            /* DATE_COMPILED  */
!   YYSYMBOL_DATE_OF_INTEGER = 272,          /* "DATE-OF-INTEGER"  */
!   YYSYMBOL_DATE_TO_YYYYMMDD = 273,         /* "DATE-TO-YYYYMMDD"  */
!   YYSYMBOL_DATE_WRITTEN = 274,             /* "DATE-WRITTEN"  */
!   YYSYMBOL_DAY = 275,                      /* DAY  */
!   YYSYMBOL_DAY_OF_INTEGER = 276,           /* "DAY-OF-INTEGER"  */
!   YYSYMBOL_DAY_OF_WEEK = 277,              /* "DAY-OF-WEEK"  */
!   YYSYMBOL_DAY_TO_YYYYDDD = 278,           /* "DAY-TO-YYYYDDD"  */
!   YYSYMBOL_DBCS = 279,                     /* DBCS  */
!   YYSYMBOL_DE = 280,                       /* DE  */
!   YYSYMBOL_DEBUGGING = 281,                /* DEBUGGING  */
!   YYSYMBOL_DECIMAL_POINT = 282,            /* DECIMAL_POINT  */
!   YYSYMBOL_DECLARATIVES = 283,             /* DECLARATIVES  */
!   YYSYMBOL_DEFAULT = 284,                  /* DEFAULT  */
!   YYSYMBOL_DELIMITED = 285,                /* DELIMITED  */
!   YYSYMBOL_DELIMITER = 286,                /* DELIMITER  */
!   YYSYMBOL_DEPENDING = 287,                /* DEPENDING  */
!   YYSYMBOL_DESCENDING = 288,               /* DESCENDING  */
!   YYSYMBOL_DETAIL = 289,                   /* DETAIL  */
!   YYSYMBOL_DIRECT = 290,                   /* DIRECT  */
!   YYSYMBOL_DIRECT_ACCESS = 291,            /* "DIRECT-ACCESS"  */
!   YYSYMBOL_DOWN = 292,                     /* DOWN  */
!   YYSYMBOL_DUPLICATES = 293,               /* DUPLICATES  */
!   YYSYMBOL_DYNAMIC = 294,                  /* DYNAMIC  */
!   YYSYMBOL_E = 295,                        /* E  */
!   YYSYMBOL_EBCDIC = 296,                   /* EBCDIC  */
!   YYSYMBOL_EC = 297,                       /* EC  */
!   YYSYMBOL_EGCS = 298,                     /* EGCS  */
!   YYSYMBOL_ENTRY = 299,                    /* ENTRY  */
!   YYSYMBOL_ENVIRONMENT = 300,              /* ENVIRONMENT  */
!   YYSYMBOL_EQUAL = 301,                    /* EQUAL  */
!   YYSYMBOL_EVERY = 302,                    /* EVERY  */
!   YYSYMBOL_EXAMINE = 303,                  /* EXAMINE  */
!   YYSYMBOL_EXHIBIT = 304,                  /* EXHIBIT  */
!   YYSYMBOL_EXP = 305,                      /* EXP  */
!   YYSYMBOL_EXP10 = 306,                    /* EXP10  */
!   YYSYMBOL_EXTEND = 307,                   /* EXTEND  */
!   YYSYMBOL_EXTERNAL = 308,                 /* EXTERNAL  */
!   YYSYMBOL_EXCEPTION_FILE = 309,           /* "EXCEPTION-FILE"  */
!   YYSYMBOL_EXCEPTION_FILE_N = 310,         /* "EXCEPTION-FILE-N"  */
!   YYSYMBOL_EXCEPTION_LOCATION = 311,       /* "EXCEPTION-LOCATION"  */
!   YYSYMBOL_EXCEPTION_LOCATION_N = 312,     /* "EXCEPTION-LOCATION-N"  */
!   YYSYMBOL_EXCEPTION_STATEMENT = 313,      /* "EXCEPTION-STATEMENT"  */
!   YYSYMBOL_EXCEPTION_STATUS = 314,         /* "EXCEPTION-STATUS"  */
!   YYSYMBOL_FACTORIAL = 315,                /* FACTORIAL  */
!   YYSYMBOL_FALSE_kw = 316,                 /* "False"  */
!   YYSYMBOL_FD = 317,                       /* FD  */
!   YYSYMBOL_FILE_CONTROL = 318,             /* "FILE-CONTROL"  */
!   YYSYMBOL_FILE_KW = 319,                  /* "File"  */
!   YYSYMBOL_FILE_LIMIT = 320,               /* "FILE-LIMIT"  */
!   YYSYMBOL_FINAL = 321,                    /* FINAL  */
!   YYSYMBOL_FINALLY = 322,                  /* FINALLY  */
!   YYSYMBOL_FIND_STRING = 323,              /* "FIND-STRING"  */
!   YYSYMBOL_FIRST = 324,                    /* FIRST  */
!   YYSYMBOL_FIXED = 325,                    /* FIXED  */
!   YYSYMBOL_FOOTING = 326,                  /* FOOTING  */
!   YYSYMBOL_FOR = 327,                      /* FOR  */
!   YYSYMBOL_FORMATTED_CURRENT_DATE = 328,   /* "FORMATTED-CURRENT-DATE"  */
!   YYSYMBOL_FORMATTED_DATE = 329,           /* "FORMATTED-DATE"  */
!   YYSYMBOL_FORMATTED_DATETIME = 330,       /* "FORMATTED-DATETIME"  */
!   YYSYMBOL_FORMATTED_TIME = 331,           /* "FORMATTED-TIME"  */
!   YYSYMBOL_FORM_OVERFLOW = 332,            /* "FORM-OVERFLOW"  */
!   YYSYMBOL_FREE = 333,                     /* FREE  */
!   YYSYMBOL_FRACTION_PART = 334,            /* "FRACTION-PART"  */
!   YYSYMBOL_FROM = 335,                     /* FROM  */
!   YYSYMBOL_FUNCTION = 336,                 /* FUNCTION  */
!   YYSYMBOL_GENERATE = 337,                 /* GENERATE  */
!   YYSYMBOL_GIVING = 338,                   /* GIVING  */
!   YYSYMBOL_GLOBAL = 339,                   /* GLOBAL  */
!   YYSYMBOL_GO = 340,                       /* GO  */
!   YYSYMBOL_GROUP = 341,                    /* GROUP  */
!   YYSYMBOL_HEADING = 342,                  /* HEADING  */
!   YYSYMBOL_HEX = 343,                      /* HEX  */
!   YYSYMBOL_HEX_OF = 344,                   /* "HEX-OF"  */
!   YYSYMBOL_HEX_TO_CHAR = 345,              /* "HEX-TO-CHAR"  */
!   YYSYMBOL_HIGH_VALUES = 346,              /* "HIGH-VALUES"  */
!   YYSYMBOL_HIGHEST_ALGEBRAIC = 347,        /* "HIGHEST-ALGEBRAIC"  */
!   YYSYMBOL_HOLD = 348,                     /* HOLD  */
!   YYSYMBOL_IBM_360 = 349,                  /* IBM_360  */
!   YYSYMBOL_IN = 350,                       /* IN  */
!   YYSYMBOL_INCLUDE = 351,                  /* INCLUDE  */
!   YYSYMBOL_INDEX = 352,                    /* INDEX  */
!   YYSYMBOL_INDEXED = 353,                  /* INDEXED  */
!   YYSYMBOL_INDICATE = 354,                 /* INDICATE  */
!   YYSYMBOL_INITIAL_kw = 355,               /* "INITIAL"  */
!   YYSYMBOL_INITIATE = 356,                 /* INITIATE  */
!   YYSYMBOL_INPUT = 357,                    /* INPUT  */
!   YYSYMBOL_INSTALLATION = 358,             /* INSTALLATION  */
!   YYSYMBOL_INTERFACE = 359,                /* INTERFACE  */
!   YYSYMBOL_INTEGER = 360,                  /* INTEGER  */
!   YYSYMBOL_INTEGER_OF_BOOLEAN = 361,       /* "INTEGER-OF-BOOLEAN"  */
!   YYSYMBOL_INTEGER_OF_DATE = 362,          /* "INTEGER-OF-DATE"  */
!   YYSYMBOL_INTEGER_OF_DAY = 363,           /* "INTEGER-OF-DAY"  */
!   YYSYMBOL_INTEGER_OF_FORMATTED_DATE = 364, /* "INTEGER-OF-FORMATTED-DATE"  */
!   YYSYMBOL_INTEGER_PART = 365,             /* "INTEGER-PART"  */
!   YYSYMBOL_INTO = 366,                     /* INTO  */
!   YYSYMBOL_INTRINSIC = 367,                /* INTRINSIC  */
!   YYSYMBOL_INVOKE = 368,                   /* INVOKE  */
!   YYSYMBOL_IO = 369,                       /* IO  */
!   YYSYMBOL_IO_CONTROL = 370,               /* "IO-CONTROL"  */
!   YYSYMBOL_IS = 371,                       /* IS  */
!   YYSYMBOL_ISNT = 372,                     /* "IS NOT"  */
!   YYSYMBOL_KANJI = 373,                    /* KANJI  */
!   YYSYMBOL_KEY = 374,                      /* KEY  */
!   YYSYMBOL_LABEL = 375,                    /* LABEL  */
!   YYSYMBOL_LAST = 376,                     /* LAST  */
!   YYSYMBOL_LEADING = 377,                  /* LEADING  */
!   YYSYMBOL_LEFT = 378,                     /* LEFT  */
!   YYSYMBOL_LENGTH = 379,                   /* LENGTH  */
!   YYSYMBOL_LENGTH_OF = 380,                /* "LENGTH-OF"  */
!   YYSYMBOL_LIMIT = 381,                    /* LIMIT  */
!   YYSYMBOL_LIMITS = 382,                   /* LIMITS  */
!   YYSYMBOL_LINE = 383,                     /* LINE  */
!   YYSYMBOL_LINES = 384,                    /* LINES  */
!   YYSYMBOL_LINE_COUNTER = 385,             /* "LINE-COUNTER"  */
!   YYSYMBOL_LINAGE = 386,                   /* LINAGE  */
!   YYSYMBOL_LINKAGE = 387,                  /* LINKAGE  */
!   YYSYMBOL_LOCALE = 388,                   /* LOCALE  */
!   YYSYMBOL_LOCALE_COMPARE = 389,           /* "LOCALE-COMPARE"  */
!   YYSYMBOL_LOCALE_DATE = 390,              /* "LOCALE-DATE"  */
!   YYSYMBOL_LOCALE_TIME = 391,              /* "LOCALE-TIME"  */
!   YYSYMBOL_LOCALE_TIME_FROM_SECONDS = 392, /* "LOCALE-TIME-FROM-SECONDS"  */
!   YYSYMBOL_LOCAL_STORAGE = 393,            /* "LOCAL-STORAGE"  */
!   YYSYMBOL_LOCATION = 394,                 /* LOCATION  */
!   YYSYMBOL_LOCK = 395,                     /* LOCK  */
!   YYSYMBOL_LOCK_ON = 396,                  /* LOCK_ON  */
!   YYSYMBOL_LOG = 397,                      /* LOG  */
!   YYSYMBOL_LOG10 = 398,                    /* LOG10  */
!   YYSYMBOL_LOWER_CASE = 399,               /* "LOWER-CASE"  */
!   YYSYMBOL_LOW_VALUES = 400,               /* "LOW-VALUES"  */
!   YYSYMBOL_LOWEST_ALGEBRAIC = 401,         /* "LOWEST-ALGEBRAIC"  */
!   YYSYMBOL_LPAREN = 402,                   /* " )"  */
!   YYSYMBOL_MANUAL = 403,                   /* MANUAL  */
!   YYSYMBOL_MAXX = 404,                     /* "Max"  */
!   YYSYMBOL_MEAN = 405,                     /* MEAN  */
!   YYSYMBOL_MEDIAN = 406,                   /* MEDIAN  */
!   YYSYMBOL_MIDRANGE = 407,                 /* MIDRANGE  */
!   YYSYMBOL_MINN = 408,                     /* "Min"  */
!   YYSYMBOL_MULTIPLE = 409,                 /* MULTIPLE  */
!   YYSYMBOL_MOD = 410,                      /* MOD  */
!   YYSYMBOL_MODE = 411,                     /* MODE  */
!   YYSYMBOL_MODULE_NAME = 412,              /* "MODULE-NAME "  */
!   YYSYMBOL_NAMED = 413,                    /* NAMED  */
!   YYSYMBOL_NAT = 414,                      /* NAT  */
!   YYSYMBOL_NATIONAL = 415,                 /* NATIONAL  */
!   YYSYMBOL_NATIONAL_EDITED = 416,          /* "NATIONAL-EDITED"  */
!   YYSYMBOL_NATIONAL_OF = 417,              /* "NATIONAL-OF"  */
!   YYSYMBOL_NATIVE = 418,                   /* NATIVE  */
!   YYSYMBOL_NESTED = 419,                   /* NESTED  */
!   YYSYMBOL_NEXT = 420,                     /* NEXT  */
!   YYSYMBOL_NO = 421,                       /* NO  */
!   YYSYMBOL_NOTE = 422,                     /* NOTE  */
!   YYSYMBOL_NULLS = 423,                    /* NULLS  */
!   YYSYMBOL_NULLPTR = 424,                  /* NULLPTR  */
!   YYSYMBOL_NUMERIC = 425,                  /* NUMERIC  */
!   YYSYMBOL_NUMERIC_EDITED = 426,           /* NUMERIC_EDITED  */
!   YYSYMBOL_NUMVAL = 427,                   /* NUMVAL  */
!   YYSYMBOL_NUMVAL_C = 428,                 /* "NUMVAL-C"  */
!   YYSYMBOL_NUMVAL_F = 429,                 /* "NUMVAL-F"  */
!   YYSYMBOL_OCCURS = 430,                   /* OCCURS  */
!   YYSYMBOL_OF = 431,                       /* OF  */
!   YYSYMBOL_OFF = 432,                      /* OFF  */
!   YYSYMBOL_OMITTED = 433,                  /* OMITTED  */
!   YYSYMBOL_ON = 434,                       /* ON  */
!   YYSYMBOL_ONLY = 435,                     /* ONLY  */
!   YYSYMBOL_OPTIONAL = 436,                 /* OPTIONAL  */
!   YYSYMBOL_OPTIONS = 437,                  /* OPTIONS  */
!   YYSYMBOL_ORD = 438,                      /* ORD  */
!   YYSYMBOL_ORDER = 439,                    /* ORDER  */
!   YYSYMBOL_ORD_MAX = 440,                  /* "ORD-MAX"  */
!   YYSYMBOL_ORD_MIN = 441,                  /* "ORD-MIN"  */
!   YYSYMBOL_ORGANIZATION = 442,             /* ORGANIZATION  */
!   YYSYMBOL_OTHER = 443,                    /* OTHER  */
!   YYSYMBOL_OTHERWISE = 444,                /* OTHERWISE  */
!   YYSYMBOL_OUTPUT = 445,                   /* OUTPUT  */
!   YYSYMBOL_PACKED_DECIMAL = 446,           /* PACKED_DECIMAL  */
!   YYSYMBOL_PADDING = 447,                  /* PADDING  */
!   YYSYMBOL_PAGE = 448,                     /* PAGE  */
!   YYSYMBOL_PAGE_COUNTER = 449,             /* "PAGE-COUNTER"  */
!   YYSYMBOL_PF = 450,                       /* PF  */
!   YYSYMBOL_PH = 451,                       /* PH  */
!   YYSYMBOL_PI = 452,                       /* PI  */
!   YYSYMBOL_PIC = 453,                      /* PIC  */
!   YYSYMBOL_PICTURE = 454,                  /* PICTURE  */
!   YYSYMBOL_PLUS = 455,                     /* PLUS  */
!   YYSYMBOL_PRESENT_VALUE = 456,            /* PRESENT_VALUE  */
!   YYSYMBOL_PRINT_SWITCH = 457,             /* PRINT_SWITCH  */
!   YYSYMBOL_PROCEDURE = 458,                /* PROCEDURE  */
!   YYSYMBOL_PROCEDURES = 459,               /* PROCEDURES  */
!   YYSYMBOL_PROCEED = 460,                  /* PROCEED  */
!   YYSYMBOL_PROCESS = 461,                  /* PROCESS  */
!   YYSYMBOL_PROGRAM_ID = 462,               /* "PROGRAM-ID"  */
!   YYSYMBOL_PROGRAM_kw = 463,               /* "Program"  */
!   YYSYMBOL_PROPERTY = 464,                 /* PROPERTY  */
!   YYSYMBOL_PROTOTYPE = 465,                /* PROTOTYPE  */
!   YYSYMBOL_PSEUDOTEXT = 466,               /* PSEUDOTEXT  */
!   YYSYMBOL_QUOTES = 467,                   /* "QUOTE"  */
!   YYSYMBOL_RANDOM = 468,                   /* RANDOM  */
!   YYSYMBOL_RANDOM_SEED = 469,              /* RANDOM_SEED  */
!   YYSYMBOL_RANGE = 470,                    /* RANGE  */
!   YYSYMBOL_RAISE = 471,                    /* RAISE  */
!   YYSYMBOL_RAISING = 472,                  /* RAISING  */
!   YYSYMBOL_RD = 473,                       /* RD  */
!   YYSYMBOL_RECORD = 474,                   /* RECORD  */
!   YYSYMBOL_RECORDING = 475,                /* RECORDING  */
!   YYSYMBOL_RECORDS = 476,                  /* RECORDS  */
!   YYSYMBOL_RECURSIVE = 477,                /* RECURSIVE  */
!   YYSYMBOL_REDEFINES = 478,                /* REDEFINES  */
!   YYSYMBOL_REEL = 479,                     /* REEL  */
!   YYSYMBOL_REFERENCE = 480,                /* REFERENCE  */
!   YYSYMBOL_RELATIVE = 481,                 /* RELATIVE  */
!   YYSYMBOL_REM = 482,                      /* REM  */
!   YYSYMBOL_REMAINDER = 483,                /* REMAINDER  */
!   YYSYMBOL_REMARKS = 484,                  /* REMARKS  */
!   YYSYMBOL_REMOVAL = 485,                  /* REMOVAL  */
!   YYSYMBOL_RENAMES = 486,                  /* RENAMES  */
!   YYSYMBOL_REPLACE = 487,                  /* REPLACE  */
!   YYSYMBOL_REPLACING = 488,                /* REPLACING  */
!   YYSYMBOL_REPORT = 489,                   /* REPORT  */
!   YYSYMBOL_REPORTING = 490,                /* REPORTING  */
!   YYSYMBOL_REPORTS = 491,                  /* REPORTS  */
!   YYSYMBOL_REPOSITORY = 492,               /* REPOSITORY  */
!   YYSYMBOL_RERUN = 493,                    /* RERUN  */
!   YYSYMBOL_RESERVE = 494,                  /* RESERVE  */
!   YYSYMBOL_RESTRICTED = 495,               /* RESTRICTED  */
!   YYSYMBOL_RESUME = 496,                   /* RESUME  */
!   YYSYMBOL_REVERSE = 497,                  /* REVERSE  */
!   YYSYMBOL_REVERSED = 498,                 /* REVERSED  */
!   YYSYMBOL_REWIND = 499,                   /* REWIND  */
!   YYSYMBOL_RF = 500,                       /* RF  */
!   YYSYMBOL_RH = 501,                       /* RH  */
!   YYSYMBOL_RIGHT = 502,                    /* RIGHT  */
!   YYSYMBOL_ROUNDED = 503,                  /* ROUNDED  */
!   YYSYMBOL_RUN = 504,                      /* RUN  */
!   YYSYMBOL_SAME = 505,                     /* SAME  */
!   YYSYMBOL_SCREEN = 506,                   /* SCREEN  */
!   YYSYMBOL_SD = 507,                       /* SD  */
!   YYSYMBOL_SECONDS_FROM_FORMATTED_TIME = 508, /* "SECONDS-FROM-FORMATTED-TIME"  */
!   YYSYMBOL_SECONDS_PAST_MIDNIGHT = 509,    /* "SECONDS-PAST-MIDNIGHT"  */
!   YYSYMBOL_SECURITY = 510,                 /* SECURITY  */
!   YYSYMBOL_SEPARATE = 511,                 /* SEPARATE  */
!   YYSYMBOL_SEQUENCE = 512,                 /* SEQUENCE  */
!   YYSYMBOL_SEQUENTIAL = 513,               /* SEQUENTIAL  */
!   YYSYMBOL_SHARING = 514,                  /* SHARING  */
!   YYSYMBOL_SIMPLE_EXIT = 515,              /* "(simple) EXIT"  */
!   YYSYMBOL_SIGN = 516,                     /* SIGN  */
!   YYSYMBOL_SIN = 517,                      /* SIN  */
!   YYSYMBOL_SIZE = 518,                     /* SIZE  */
!   YYSYMBOL_SMALLEST_ALGEBRAIC = 519,       /* "SMALLEST-ALGEBRAIC"  */
!   YYSYMBOL_SOURCE = 520,                   /* SOURCE  */
!   YYSYMBOL_SOURCE_COMPUTER = 521,          /* "SOURCE-COMPUTER"  */
!   YYSYMBOL_SPECIAL_NAMES = 522,            /* SPECIAL_NAMES  */
!   YYSYMBOL_SQRT = 523,                     /* SQRT  */
!   YYSYMBOL_STACK = 524,                    /* STACK  */
!   YYSYMBOL_STANDARD = 525,                 /* STANDARD  */
!   YYSYMBOL_STANDARD_1 = 526,               /* "STANDARD-1"  */
!   YYSYMBOL_STANDARD_DEVIATION = 527,       /* "STANDARD-DEVIATION "  */
!   YYSYMBOL_STANDARD_COMPARE = 528,         /* "STANDARD-COMPARE"  */
!   YYSYMBOL_STATUS = 529,                   /* STATUS  */
!   YYSYMBOL_STRONG = 530,                   /* STRONG  */
!   YYSYMBOL_SUBSTITUTE = 531,               /* SUBSTITUTE  */
!   YYSYMBOL_SUM = 532,                      /* SUM  */
!   YYSYMBOL_SYMBOL = 533,                   /* SYMBOL  */
!   YYSYMBOL_SYMBOLIC = 534,                 /* SYMBOLIC  */
!   YYSYMBOL_SYNCHRONIZED = 535,             /* SYNCHRONIZED  */
!   YYSYMBOL_TALLY = 536,                    /* TALLY  */
!   YYSYMBOL_TALLYING = 537,                 /* TALLYING  */
!   YYSYMBOL_TAN = 538,                      /* TAN  */
!   YYSYMBOL_TERMINATE = 539,                /* TERMINATE  */
!   YYSYMBOL_TEST = 540,                     /* TEST  */
!   YYSYMBOL_TEST_DATE_YYYYMMDD = 541,       /* "TEST-DATE-YYYYMMDD"  */
!   YYSYMBOL_TEST_DAY_YYYYDDD = 542,         /* "TEST-DAY-YYYYDDD"  */
!   YYSYMBOL_TEST_FORMATTED_DATETIME = 543,  /* "TEST-FORMATTED-DATETIME"  */
!   YYSYMBOL_TEST_NUMVAL = 544,              /* "TEST-NUMVAL"  */
!   YYSYMBOL_TEST_NUMVAL_C = 545,            /* "TEST-NUMVAL-C"  */
!   YYSYMBOL_TEST_NUMVAL_F = 546,            /* "TEST-NUMVAL-F"  */
!   YYSYMBOL_THAN = 547,                     /* THAN  */
!   YYSYMBOL_TIME = 548,                     /* TIME  */
!   YYSYMBOL_TIMES = 549,                    /* TIMES  */
!   YYSYMBOL_TO = 550,                       /* TO  */
!   YYSYMBOL_TOP = 551,                      /* TOP  */
!   YYSYMBOL_TOP_LEVEL = 552,                /* TOP_LEVEL  */
!   YYSYMBOL_TRACKS = 553,                   /* TRACKS  */
!   YYSYMBOL_TRACK_AREA = 554,               /* TRACK_AREA  */
!   YYSYMBOL_TRAILING = 555,                 /* TRAILING  */
!   YYSYMBOL_TRANSFORM = 556,                /* TRANSFORM  */
!   YYSYMBOL_TRIM = 557,                     /* TRIM  */
!   YYSYMBOL_TRUE_kw = 558,                  /* "True"  */
!   YYSYMBOL_TRY = 559,                      /* TRY  */
!   YYSYMBOL_TURN = 560,                     /* TURN  */
!   YYSYMBOL_TYPE = 561,                     /* TYPE  */
!   YYSYMBOL_TYPEDEF = 562,                  /* TYPEDEF  */
!   YYSYMBOL_ULENGTH = 563,                  /* ULENGTH  */
!   YYSYMBOL_UNBOUNDED = 564,                /* UNBOUNDED  */
!   YYSYMBOL_UNIT = 565,                     /* UNIT  */
!   YYSYMBOL_UNITS = 566,                    /* UNITS  */
!   YYSYMBOL_UNIT_RECORD = 567,              /* UNIT_RECORD  */
!   YYSYMBOL_UNTIL = 568,                    /* UNTIL  */
!   YYSYMBOL_UP = 569,                       /* UP  */
!   YYSYMBOL_UPON = 570,                     /* UPON  */
!   YYSYMBOL_UPOS = 571,                     /* UPOS  */
!   YYSYMBOL_UPPER_CASE = 572,               /* UPPER_CASE  */
!   YYSYMBOL_USAGE = 573,                    /* USAGE  */
!   YYSYMBOL_USING = 574,                    /* USING  */
!   YYSYMBOL_USUBSTR = 575,                  /* USUBSTR  */
!   YYSYMBOL_USUPPLEMENTARY = 576,           /* USUPPLEMENTARY  */
!   YYSYMBOL_UTILITY = 577,                  /* UTILITY  */
!   YYSYMBOL_UUID4 = 578,                    /* UUID4  */
!   YYSYMBOL_UVALID = 579,                   /* UVALID  */
!   YYSYMBOL_UWIDTH = 580,                   /* UWIDTH  */
!   YYSYMBOL_VALUE = 581,                    /* VALUE  */
!   YYSYMBOL_VARIANCE = 582,                 /* VARIANCE  */
!   YYSYMBOL_VARYING = 583,                  /* VARYING  */
!   YYSYMBOL_VOLATILE = 584,                 /* VOLATILE  */
!   YYSYMBOL_WHEN_COMPILED = 585,            /* WHEN_COMPILED  */
!   YYSYMBOL_WITH = 586,                     /* WITH  */
!   YYSYMBOL_WORKING_STORAGE = 587,          /* WORKING_STORAGE  */
!   YYSYMBOL_XML = 588,                      /* XML  */
!   YYSYMBOL_XMLGENERATE = 589,              /* XMLGENERATE  */
!   YYSYMBOL_XMLPARSE = 590,                 /* XMLPARSE  */
    YYSYMBOL_YEAR_TO_YYYY = 591,             /* YEAR_TO_YYYY  */
    YYSYMBOL_YYYYDDD = 592,                  /* YYYYDDD  */
    YYSYMBOL_YYYYMMDD = 593,                 /* YYYYMMDD  */
--- 162,715 ----
    YYSYMBOL_PIC_P = 40,                     /* PIC_P  */
    YYSYMBOL_ONES = 41,                      /* ONES  */
    YYSYMBOL_SPACES = 42,                    /* SPACES  */
!   YYSYMBOL_EQ = 43,                        /* "EQUAL"  */
!   YYSYMBOL_LITERAL = 44,                   /* LITERAL  */
!   YYSYMBOL_END = 45,                       /* END  */
!   YYSYMBOL_EOP = 46,                       /* EOP  */
!   YYSYMBOL_FILENAME = 47,                  /* FILENAME  */
!   YYSYMBOL_INVALID = 48,                   /* INVALID  */
!   YYSYMBOL_NUMBER = 49,                    /* NUMBER  */
!   YYSYMBOL_NEGATIVE = 50,                  /* NEGATIVE  */
!   YYSYMBOL_NUMSTR = 51,                    /* "numeric literal"  */
!   YYSYMBOL_OVERFLOW_kw = 52,               /* "OVERFLOW"  */
!   YYSYMBOL_BINARY_INTEGER = 53,            /* BINARY_INTEGER  */
!   YYSYMBOL_COMPUTATIONAL = 54,             /* COMPUTATIONAL  */
!   YYSYMBOL_PERFORM = 55,                   /* PERFORM  */
!   YYSYMBOL_BACKWARD = 56,                  /* BACKWARD  */
!   YYSYMBOL_POSITIVE = 57,                  /* POSITIVE  */
!   YYSYMBOL_POINTER = 58,                   /* POINTER  */
!   YYSYMBOL_SECTION = 59,                   /* SECTION  */
!   YYSYMBOL_STANDARD_ALPHABET = 60,         /* "STANDARD ALPHABET"  */
!   YYSYMBOL_SWITCH = 61,                    /* SWITCH  */
!   YYSYMBOL_UPSI = 62,                      /* UPSI  */
!   YYSYMBOL_ZERO = 63,                      /* ZERO  */
!   YYSYMBOL_SYSIN = 64,                     /* SYSIN  */
!   YYSYMBOL_SYSIPT = 65,                    /* SYSIPT  */
!   YYSYMBOL_SYSOUT = 66,                    /* SYSOUT  */
!   YYSYMBOL_SYSLIST = 67,                   /* SYSLIST  */
!   YYSYMBOL_SYSLST = 68,                    /* SYSLST  */
!   YYSYMBOL_SYSPUNCH = 69,                  /* SYSPUNCH  */
!   YYSYMBOL_SYSPCH = 70,                    /* SYSPCH  */
!   YYSYMBOL_CONSOLE = 71,                   /* CONSOLE  */
!   YYSYMBOL_C01 = 72,                       /* C01  */
!   YYSYMBOL_C02 = 73,                       /* C02  */
!   YYSYMBOL_C03 = 74,                       /* C03  */
!   YYSYMBOL_C04 = 75,                       /* C04  */
!   YYSYMBOL_C05 = 76,                       /* C05  */
!   YYSYMBOL_C06 = 77,                       /* C06  */
!   YYSYMBOL_C07 = 78,                       /* C07  */
!   YYSYMBOL_C08 = 79,                       /* C08  */
!   YYSYMBOL_C09 = 80,                       /* C09  */
!   YYSYMBOL_C10 = 81,                       /* C10  */
!   YYSYMBOL_C11 = 82,                       /* C11  */
!   YYSYMBOL_C12 = 83,                       /* C12  */
!   YYSYMBOL_CSP = 84,                       /* CSP  */
!   YYSYMBOL_S01 = 85,                       /* S01  */
!   YYSYMBOL_S02 = 86,                       /* S02  */
!   YYSYMBOL_S03 = 87,                       /* S03  */
!   YYSYMBOL_S04 = 88,                       /* S04  */
!   YYSYMBOL_S05 = 89,                       /* S05  */
!   YYSYMBOL_AFP_5A = 90,                    /* "AFP 5A"  */
!   YYSYMBOL_STDIN = 91,                     /* STDIN  */
!   YYSYMBOL_STDOUT = 92,                    /* STDOUT  */
!   YYSYMBOL_STDERR = 93,                    /* STDERR  */
!   YYSYMBOL_LIST = 94,                      /* LIST  */
!   YYSYMBOL_MAP = 95,                       /* MAP  */
!   YYSYMBOL_NOLIST = 96,                    /* NOLIST  */
!   YYSYMBOL_NOMAP = 97,                     /* NOMAP  */
!   YYSYMBOL_NOSOURCE = 98,                  /* NOSOURCE  */
!   YYSYMBOL_MIGHT_BE = 99,                  /* "IS or IS NOT"  */
!   YYSYMBOL_FUNCTION_UDF = 100,             /* "UDF name"  */
!   YYSYMBOL_FUNCTION_UDF_0 = 101,           /* "UDF"  */
!   YYSYMBOL_DEFAULT = 102,                  /* DEFAULT  */
!   YYSYMBOL_DATE_FMT = 103,                 /* "date format"  */
!   YYSYMBOL_TIME_FMT = 104,                 /* "time format"  */
!   YYSYMBOL_DATETIME_FMT = 105,             /* "datetime format"  */
!   YYSYMBOL_BASIS = 106,                    /* BASIS  */
!   YYSYMBOL_CBL = 107,                      /* CBL  */
!   YYSYMBOL_CONSTANT = 108,                 /* CONSTANT  */
!   YYSYMBOL_COPY = 109,                     /* COPY  */
!   YYSYMBOL_DEFINED = 110,                  /* DEFINED  */
!   YYSYMBOL_ENTER = 111,                    /* ENTER  */
!   YYSYMBOL_FEATURE = 112,                  /* FEATURE  */
!   YYSYMBOL_INSERTT = 113,                  /* INSERTT  */
!   YYSYMBOL_LSUB = 114,                     /* "("  */
!   YYSYMBOL_PARAMETER_kw = 115,             /* "PARAMETER"  */
!   YYSYMBOL_OVERRIDE = 116,                 /* OVERRIDE  */
!   YYSYMBOL_READY = 117,                    /* READY  */
!   YYSYMBOL_RESET = 118,                    /* RESET  */
!   YYSYMBOL_RSUB = 119,                     /* ")"  */
!   YYSYMBOL_SERVICE_RELOAD = 120,           /* "SERVICE RELOAD"  */
!   YYSYMBOL_STAR_CBL = 121,                 /* "*CBL"  */
!   YYSYMBOL_SUBSCRIPT = 122,                /* SUBSCRIPT  */
!   YYSYMBOL_SUPPRESS = 123,                 /* SUPPRESS  */
!   YYSYMBOL_TITLE = 124,                    /* TITLE  */
!   YYSYMBOL_TRACE = 125,                    /* TRACE  */
!   YYSYMBOL_USE = 126,                      /* USE  */
!   YYSYMBOL_COBOL_WORDS = 127,              /* ">>COBOL-WORDS"  */
!   YYSYMBOL_EQUATE = 128,                   /* EQUATE  */
!   YYSYMBOL_UNDEFINE = 129,                 /* UNDEFINE  */
!   YYSYMBOL_CDF_DEFINE = 130,               /* ">>DEFINE"  */
!   YYSYMBOL_CDF_DISPLAY = 131,              /* ">>DISPLAY"  */
!   YYSYMBOL_CDF_IF = 132,                   /* ">>IF"  */
!   YYSYMBOL_CDF_ELSE = 133,                 /* ">>ELSE"  */
!   YYSYMBOL_CDF_END_IF = 134,               /* ">>END-IF"  */
!   YYSYMBOL_CDF_EVALUATE = 135,             /* ">>EVALUATE"  */
!   YYSYMBOL_CDF_WHEN = 136,                 /* ">>WHEN"  */
!   YYSYMBOL_CDF_END_EVALUATE = 137,         /* ">>END-EVALUATE"  */
!   YYSYMBOL_CALL_CONVENTION = 138,          /* ">>CALL-CONVENTION"  */
!   YYSYMBOL_CALL_COBOL = 139,               /* "CALL"  */
!   YYSYMBOL_CALL_VERBATIM = 140,            /* "CALL (as C)"  */
!   YYSYMBOL_CDF_PUSH = 141,                 /* ">>PUSH"  */
!   YYSYMBOL_CDF_POP = 142,                  /* ">>POP"  */
!   YYSYMBOL_SOURCE_FORMAT = 143,            /* ">>SOURCE FORMAT"  */
!   YYSYMBOL_IF = 144,                       /* IF  */
!   YYSYMBOL_THEN = 145,                     /* THEN  */
!   YYSYMBOL_ELSE = 146,                     /* ELSE  */
!   YYSYMBOL_SENTENCE = 147,                 /* SENTENCE  */
!   YYSYMBOL_ACCEPT = 148,                   /* ACCEPT  */
!   YYSYMBOL_ADD = 149,                      /* ADD  */
!   YYSYMBOL_ALTER = 150,                    /* ALTER  */
!   YYSYMBOL_CALL = 151,                     /* CALL  */
!   YYSYMBOL_CANCEL = 152,                   /* CANCEL  */
!   YYSYMBOL_CLOSE = 153,                    /* CLOSE  */
!   YYSYMBOL_COMPUTE = 154,                  /* COMPUTE  */
!   YYSYMBOL_CONTINUE = 155,                 /* CONTINUE  */
!   YYSYMBOL_DELETE = 156,                   /* DELETE  */
!   YYSYMBOL_DISPLAY = 157,                  /* DISPLAY  */
!   YYSYMBOL_DIVIDE = 158,                   /* DIVIDE  */
!   YYSYMBOL_EVALUATE = 159,                 /* EVALUATE  */
!   YYSYMBOL_EXIT = 160,                     /* EXIT  */
!   YYSYMBOL_FILLER_kw = 161,                /* "FILLER"  */
!   YYSYMBOL_GOBACK = 162,                   /* GOBACK  */
!   YYSYMBOL_GOTO = 163,                     /* GOTO  */
!   YYSYMBOL_INITIALIZE = 164,               /* INITIALIZE  */
!   YYSYMBOL_INSPECT = 165,                  /* INSPECT  */
!   YYSYMBOL_MERGE = 166,                    /* MERGE  */
!   YYSYMBOL_MOVE = 167,                     /* MOVE  */
!   YYSYMBOL_MULTIPLY = 168,                 /* MULTIPLY  */
!   YYSYMBOL_OPEN = 169,                     /* OPEN  */
!   YYSYMBOL_PARAGRAPH = 170,                /* PARAGRAPH  */
!   YYSYMBOL_READ = 171,                     /* READ  */
!   YYSYMBOL_RELEASE = 172,                  /* RELEASE  */
!   YYSYMBOL_RETURN = 173,                   /* RETURN  */
!   YYSYMBOL_REWRITE = 174,                  /* REWRITE  */
!   YYSYMBOL_SEARCH = 175,                   /* SEARCH  */
!   YYSYMBOL_SET = 176,                      /* SET  */
!   YYSYMBOL_SELECT = 177,                   /* SELECT  */
!   YYSYMBOL_SORT = 178,                     /* SORT  */
!   YYSYMBOL_SORT_MERGE = 179,               /* "SORT-MERGE"  */
!   YYSYMBOL_STRING_kw = 180,                /* "STRING"  */
!   YYSYMBOL_STOP = 181,                     /* STOP  */
!   YYSYMBOL_SUBTRACT = 182,                 /* SUBTRACT  */
!   YYSYMBOL_START = 183,                    /* START  */
!   YYSYMBOL_UNSTRING = 184,                 /* UNSTRING  */
!   YYSYMBOL_WRITE = 185,                    /* WRITE  */
!   YYSYMBOL_WHEN = 186,                     /* WHEN  */
!   YYSYMBOL_ARGUMENT_NUMBER = 187,          /* ARGUMENT_NUMBER  */
!   YYSYMBOL_ARGUMENT_VALUE = 188,           /* ARGUMENT_VALUE  */
!   YYSYMBOL_ENVIRONMENT_NAME = 189,         /* ENVIRONMENT_NAME  */
!   YYSYMBOL_ENVIRONMENT_VALUE = 190,        /* ENVIRONMENT_VALUE  */
!   YYSYMBOL_ABS = 191,                      /* ABS  */
!   YYSYMBOL_ACCESS = 192,                   /* ACCESS  */
!   YYSYMBOL_ACOS = 193,                     /* ACOS  */
!   YYSYMBOL_ACTUAL = 194,                   /* ACTUAL  */
!   YYSYMBOL_ADVANCING = 195,                /* ADVANCING  */
!   YYSYMBOL_AFTER = 196,                    /* AFTER  */
!   YYSYMBOL_ALL = 197,                      /* ALL  */
!   YYSYMBOL_ALLOCATE = 198,                 /* ALLOCATE  */
!   YYSYMBOL_ALPHABET = 199,                 /* ALPHABET  */
!   YYSYMBOL_ALPHABETIC = 200,               /* ALPHABETIC  */
!   YYSYMBOL_ALPHABETIC_LOWER = 201,         /* "ALPHABETIC-LOWER"  */
!   YYSYMBOL_ALPHABETIC_UPPER = 202,         /* "ALPHABETIC-UPPER"  */
!   YYSYMBOL_ALPHANUMERIC = 203,             /* ALPHANUMERIC  */
!   YYSYMBOL_ALPHANUMERIC_EDITED = 204,      /* "ALPHANUMERIC-EDITED"  */
!   YYSYMBOL_ALSO = 205,                     /* ALSO  */
!   YYSYMBOL_ALTERNATE = 206,                /* ALTERNATE  */
!   YYSYMBOL_ANNUITY = 207,                  /* ANNUITY  */
!   YYSYMBOL_ANUM = 208,                     /* ANUM  */
!   YYSYMBOL_ANY = 209,                      /* ANY  */
!   YYSYMBOL_ANYCASE = 210,                  /* ANYCASE  */
!   YYSYMBOL_APPLY = 211,                    /* APPLY  */
!   YYSYMBOL_ARE = 212,                      /* ARE  */
!   YYSYMBOL_AREA = 213,                     /* AREA  */
!   YYSYMBOL_AREAS = 214,                    /* AREAS  */
!   YYSYMBOL_AS = 215,                       /* AS  */
!   YYSYMBOL_ASCENDING = 216,                /* ASCENDING  */
!   YYSYMBOL_ACTIVATING = 217,               /* ACTIVATING  */
!   YYSYMBOL_ASIN = 218,                     /* ASIN  */
!   YYSYMBOL_ASSIGN = 219,                   /* ASSIGN  */
!   YYSYMBOL_AT = 220,                       /* AT  */
!   YYSYMBOL_ATAN = 221,                     /* ATAN  */
!   YYSYMBOL_BASED = 222,                    /* BASED  */
!   YYSYMBOL_BASECONVERT = 223,              /* BASECONVERT  */
!   YYSYMBOL_BEFORE = 224,                   /* BEFORE  */
!   YYSYMBOL_BINARY = 225,                   /* BINARY  */
!   YYSYMBOL_BIT = 226,                      /* BIT  */
!   YYSYMBOL_BIT_OF = 227,                   /* "BIT-OF"  */
!   YYSYMBOL_BIT_TO_CHAR = 228,              /* "BIT-TO-CHAR"  */
!   YYSYMBOL_BLANK = 229,                    /* BLANK  */
!   YYSYMBOL_BLOCK_kw = 230,                 /* BLOCK_kw  */
!   YYSYMBOL_BOOLEAN_OF_INTEGER = 231,       /* "BOOLEAN-OF-INTEGER"  */
!   YYSYMBOL_BOTTOM = 232,                   /* BOTTOM  */
!   YYSYMBOL_BY = 233,                       /* BY  */
!   YYSYMBOL_BYTE = 234,                     /* BYTE  */
!   YYSYMBOL_BYTE_LENGTH = 235,              /* "BYTE-LENGTH"  */
!   YYSYMBOL_CF = 236,                       /* CF  */
!   YYSYMBOL_CH = 237,                       /* CH  */
!   YYSYMBOL_CHANGED = 238,                  /* CHANGED  */
!   YYSYMBOL_CHAR = 239,                     /* CHAR  */
!   YYSYMBOL_CHAR_NATIONAL = 240,            /* "CHAR-NATIONAL"  */
!   YYSYMBOL_CHARACTER = 241,                /* CHARACTER  */
!   YYSYMBOL_CHARACTERS = 242,               /* CHARACTERS  */
!   YYSYMBOL_CHECKING = 243,                 /* CHECKING  */
!   YYSYMBOL_CLASS = 244,                    /* CLASS  */
!   YYSYMBOL_COBOL = 245,                    /* COBOL  */
!   YYSYMBOL_CODE = 246,                     /* CODE  */
!   YYSYMBOL_CODESET = 247,                  /* "CODE-SET"  */
!   YYSYMBOL_COLLATING = 248,                /* COLLATING  */
!   YYSYMBOL_COLUMN = 249,                   /* COLUMN  */
!   YYSYMBOL_COMBINED_DATETIME = 250,        /* "COMBINED-DATETIME"  */
!   YYSYMBOL_COMMA = 251,                    /* COMMA  */
!   YYSYMBOL_COMMAND_LINE = 252,             /* "COMMAND-LINE"  */
!   YYSYMBOL_COMMAND_LINE_COUNT = 253,       /* "COMMAND-LINE-COUNT"  */
!   YYSYMBOL_COMMIT = 254,                   /* COMMIT  */
!   YYSYMBOL_COMMON = 255,                   /* COMMON  */
!   YYSYMBOL_CONCAT = 256,                   /* CONCAT  */
!   YYSYMBOL_CONDITION = 257,                /* CONDITION  */
!   YYSYMBOL_CONFIGURATION_SECT = 258,       /* "CONFIGURATION SECTION"  */
!   YYSYMBOL_CONTAINS = 259,                 /* CONTAINS  */
!   YYSYMBOL_CONTENT = 260,                  /* CONTENT  */
!   YYSYMBOL_CONTROL = 261,                  /* CONTROL  */
!   YYSYMBOL_CONTROLS = 262,                 /* CONTROLS  */
!   YYSYMBOL_CONVERT = 263,                  /* CONVERT  */
!   YYSYMBOL_CONVERTING = 264,               /* CONVERTING  */
!   YYSYMBOL_CORRESPONDING = 265,            /* CORRESPONDING  */
!   YYSYMBOL_COS = 266,                      /* COS  */
!   YYSYMBOL_COUNT = 267,                    /* COUNT  */
!   YYSYMBOL_CURRENCY = 268,                 /* CURRENCY  */
!   YYSYMBOL_CURRENT = 269,                  /* CURRENT  */
!   YYSYMBOL_CURRENT_DATE = 270,             /* CURRENT_DATE  */
!   YYSYMBOL_DATA = 271,                     /* DATA  */
!   YYSYMBOL_DATE = 272,                     /* DATE  */
!   YYSYMBOL_DATE_COMPILED = 273,            /* DATE_COMPILED  */
!   YYSYMBOL_DATE_OF_INTEGER = 274,          /* "DATE-OF-INTEGER"  */
!   YYSYMBOL_DATE_TO_YYYYMMDD = 275,         /* "DATE-TO-YYYYMMDD"  */
!   YYSYMBOL_DATE_WRITTEN = 276,             /* "DATE-WRITTEN"  */
!   YYSYMBOL_DAY = 277,                      /* DAY  */
!   YYSYMBOL_DAY_OF_INTEGER = 278,           /* "DAY-OF-INTEGER"  */
!   YYSYMBOL_DAY_OF_WEEK = 279,              /* "DAY-OF-WEEK"  */
!   YYSYMBOL_DAY_TO_YYYYDDD = 280,           /* "DAY-TO-YYYYDDD"  */
!   YYSYMBOL_DBCS = 281,                     /* DBCS  */
!   YYSYMBOL_DE = 282,                       /* DE  */
!   YYSYMBOL_DEBUGGING = 283,                /* DEBUGGING  */
!   YYSYMBOL_DECIMAL_POINT = 284,            /* DECIMAL_POINT  */
!   YYSYMBOL_DECLARATIVES = 285,             /* DECLARATIVES  */
!   YYSYMBOL_DELIMITED = 286,                /* DELIMITED  */
!   YYSYMBOL_DELIMITER = 287,                /* DELIMITER  */
!   YYSYMBOL_DEPENDING = 288,                /* DEPENDING  */
!   YYSYMBOL_DESCENDING = 289,               /* DESCENDING  */
!   YYSYMBOL_DETAIL = 290,                   /* DETAIL  */
!   YYSYMBOL_DIRECT = 291,                   /* DIRECT  */
!   YYSYMBOL_DIRECT_ACCESS = 292,            /* "DIRECT-ACCESS"  */
!   YYSYMBOL_DOWN = 293,                     /* DOWN  */
!   YYSYMBOL_DUPLICATES = 294,               /* DUPLICATES  */
!   YYSYMBOL_DYNAMIC = 295,                  /* DYNAMIC  */
!   YYSYMBOL_E = 296,                        /* E  */
!   YYSYMBOL_EBCDIC = 297,                   /* EBCDIC  */
!   YYSYMBOL_EC = 298,                       /* EC  */
!   YYSYMBOL_EGCS = 299,                     /* EGCS  */
!   YYSYMBOL_ENCODING = 300,                 /* ENCODING  */
!   YYSYMBOL_ENTRY = 301,                    /* ENTRY  */
!   YYSYMBOL_ENVIRONMENT = 302,              /* ENVIRONMENT  */
!   YYSYMBOL_EVERY = 303,                    /* EVERY  */
!   YYSYMBOL_EXAMINE = 304,                  /* EXAMINE  */
!   YYSYMBOL_EXHIBIT = 305,                  /* EXHIBIT  */
!   YYSYMBOL_EXP = 306,                      /* EXP  */
!   YYSYMBOL_EXP10 = 307,                    /* EXP10  */
!   YYSYMBOL_EXTEND = 308,                   /* EXTEND  */
!   YYSYMBOL_EXTERNAL = 309,                 /* EXTERNAL  */
!   YYSYMBOL_EXCEPTION_FILE = 310,           /* "EXCEPTION-FILE"  */
!   YYSYMBOL_EXCEPTION_FILE_N = 311,         /* "EXCEPTION-FILE-N"  */
!   YYSYMBOL_EXCEPTION_LOCATION = 312,       /* "EXCEPTION-LOCATION"  */
!   YYSYMBOL_EXCEPTION_LOCATION_N = 313,     /* "EXCEPTION-LOCATION-N"  */
!   YYSYMBOL_EXCEPTION_STATEMENT = 314,      /* "EXCEPTION-STATEMENT"  */
!   YYSYMBOL_EXCEPTION_STATUS = 315,         /* "EXCEPTION-STATUS"  */
!   YYSYMBOL_FACTORIAL = 316,                /* FACTORIAL  */
!   YYSYMBOL_FALSE_kw = 317,                 /* "False"  */
!   YYSYMBOL_FD = 318,                       /* FD  */
!   YYSYMBOL_FILE_CONTROL = 319,             /* "FILE-CONTROL"  */
!   YYSYMBOL_FILE_KW = 320,                  /* "File"  */
!   YYSYMBOL_FILE_LIMIT = 321,               /* "FILE-LIMIT"  */
!   YYSYMBOL_FINAL = 322,                    /* FINAL  */
!   YYSYMBOL_FINALLY = 323,                  /* FINALLY  */
!   YYSYMBOL_FIND_STRING = 324,              /* "FIND-STRING"  */
!   YYSYMBOL_FIRST = 325,                    /* FIRST  */
!   YYSYMBOL_FIXED = 326,                    /* FIXED  */
!   YYSYMBOL_FOOTING = 327,                  /* FOOTING  */
!   YYSYMBOL_FOR = 328,                      /* FOR  */
!   YYSYMBOL_FORMATTED_CURRENT_DATE = 329,   /* "FORMATTED-CURRENT-DATE"  */
!   YYSYMBOL_FORMATTED_DATE = 330,           /* "FORMATTED-DATE"  */
!   YYSYMBOL_FORMATTED_DATETIME = 331,       /* "FORMATTED-DATETIME"  */
!   YYSYMBOL_FORMATTED_TIME = 332,           /* "FORMATTED-TIME"  */
!   YYSYMBOL_FORM_OVERFLOW = 333,            /* "FORM-OVERFLOW"  */
!   YYSYMBOL_FREE = 334,                     /* FREE  */
!   YYSYMBOL_FRACTION_PART = 335,            /* "FRACTION-PART"  */
!   YYSYMBOL_FROM = 336,                     /* FROM  */
!   YYSYMBOL_FUNCTION = 337,                 /* FUNCTION  */
!   YYSYMBOL_GENERATE = 338,                 /* GENERATE  */
!   YYSYMBOL_GIVING = 339,                   /* GIVING  */
!   YYSYMBOL_GLOBAL = 340,                   /* GLOBAL  */
!   YYSYMBOL_GO = 341,                       /* GO  */
!   YYSYMBOL_GROUP = 342,                    /* GROUP  */
!   YYSYMBOL_HEADING = 343,                  /* HEADING  */
!   YYSYMBOL_HEX = 344,                      /* HEX  */
!   YYSYMBOL_HEX_OF = 345,                   /* "HEX-OF"  */
!   YYSYMBOL_HEX_TO_CHAR = 346,              /* "HEX-TO-CHAR"  */
!   YYSYMBOL_HIGH_VALUES = 347,              /* "HIGH-VALUES"  */
!   YYSYMBOL_HIGHEST_ALGEBRAIC = 348,        /* "HIGHEST-ALGEBRAIC"  */
!   YYSYMBOL_HOLD = 349,                     /* HOLD  */
!   YYSYMBOL_IBM_360 = 350,                  /* IBM_360  */
!   YYSYMBOL_IN = 351,                       /* IN  */
!   YYSYMBOL_INCLUDE = 352,                  /* INCLUDE  */
!   YYSYMBOL_INDEX = 353,                    /* INDEX  */
!   YYSYMBOL_INDEXED = 354,                  /* INDEXED  */
!   YYSYMBOL_INDICATE = 355,                 /* INDICATE  */
!   YYSYMBOL_INITIAL_kw = 356,               /* "INITIAL"  */
!   YYSYMBOL_INITIATE = 357,                 /* INITIATE  */
!   YYSYMBOL_INPUT = 358,                    /* INPUT  */
!   YYSYMBOL_INSTALLATION = 359,             /* INSTALLATION  */
!   YYSYMBOL_INTERFACE = 360,                /* INTERFACE  */
!   YYSYMBOL_INTEGER = 361,                  /* INTEGER  */
!   YYSYMBOL_INTEGER_OF_BOOLEAN = 362,       /* "INTEGER-OF-BOOLEAN"  */
!   YYSYMBOL_INTEGER_OF_DATE = 363,          /* "INTEGER-OF-DATE"  */
!   YYSYMBOL_INTEGER_OF_DAY = 364,           /* "INTEGER-OF-DAY"  */
!   YYSYMBOL_INTEGER_OF_FORMATTED_DATE = 365, /* "INTEGER-OF-FORMATTED-DATE"  */
!   YYSYMBOL_INTEGER_PART = 366,             /* "INTEGER-PART"  */
!   YYSYMBOL_INTO = 367,                     /* INTO  */
!   YYSYMBOL_INTRINSIC = 368,                /* INTRINSIC  */
!   YYSYMBOL_INVOKE = 369,                   /* INVOKE  */
!   YYSYMBOL_IO = 370,                       /* "I-O"  */
!   YYSYMBOL_IO_CONTROL = 371,               /* "I-O-CONTROL"  */
!   YYSYMBOL_IS = 372,                       /* IS  */
!   YYSYMBOL_ISNT = 373,                     /* "IS NOT"  */
!   YYSYMBOL_KANJI = 374,                    /* KANJI  */
!   YYSYMBOL_KEY = 375,                      /* KEY  */
!   YYSYMBOL_LABEL = 376,                    /* LABEL  */
!   YYSYMBOL_LAST = 377,                     /* LAST  */
!   YYSYMBOL_LEADING = 378,                  /* LEADING  */
!   YYSYMBOL_LEFT = 379,                     /* LEFT  */
!   YYSYMBOL_LENGTH = 380,                   /* LENGTH  */
!   YYSYMBOL_LENGTH_OF = 381,                /* "LENGTH-OF"  */
!   YYSYMBOL_LIMIT = 382,                    /* LIMIT  */
!   YYSYMBOL_LIMITS = 383,                   /* LIMITS  */
!   YYSYMBOL_LINE = 384,                     /* LINE  */
!   YYSYMBOL_LINES = 385,                    /* LINES  */
!   YYSYMBOL_LINE_COUNTER = 386,             /* "LINE-COUNTER"  */
!   YYSYMBOL_LINAGE = 387,                   /* LINAGE  */
!   YYSYMBOL_LINKAGE = 388,                  /* LINKAGE  */
!   YYSYMBOL_LOCALE = 389,                   /* LOCALE  */
!   YYSYMBOL_LOCALE_COMPARE = 390,           /* "LOCALE-COMPARE"  */
!   YYSYMBOL_LOCALE_DATE = 391,              /* "LOCALE-DATE"  */
!   YYSYMBOL_LOCALE_TIME = 392,              /* "LOCALE-TIME"  */
!   YYSYMBOL_LOCALE_TIME_FROM_SECONDS = 393, /* "LOCALE-TIME-FROM-SECONDS"  */
!   YYSYMBOL_LOCAL_STORAGE = 394,            /* "LOCAL-STORAGE"  */
!   YYSYMBOL_LOCATION = 395,                 /* LOCATION  */
!   YYSYMBOL_LOCK = 396,                     /* LOCK  */
!   YYSYMBOL_LOCK_ON = 397,                  /* LOCK_ON  */
!   YYSYMBOL_LOG = 398,                      /* LOG  */
!   YYSYMBOL_LOG10 = 399,                    /* LOG10  */
!   YYSYMBOL_LOWER_CASE = 400,               /* "LOWER-CASE"  */
!   YYSYMBOL_LOW_VALUES = 401,               /* "LOW-VALUES"  */
!   YYSYMBOL_LOWEST_ALGEBRAIC = 402,         /* "LOWEST-ALGEBRAIC"  */
!   YYSYMBOL_LPAREN = 403,                   /* " )"  */
!   YYSYMBOL_MANUAL = 404,                   /* MANUAL  */
!   YYSYMBOL_MAXX = 405,                     /* "Max"  */
!   YYSYMBOL_MEAN = 406,                     /* MEAN  */
!   YYSYMBOL_MEDIAN = 407,                   /* MEDIAN  */
!   YYSYMBOL_MIDRANGE = 408,                 /* MIDRANGE  */
!   YYSYMBOL_MINN = 409,                     /* "Min"  */
!   YYSYMBOL_MULTIPLE = 410,                 /* MULTIPLE  */
!   YYSYMBOL_MOD = 411,                      /* MOD  */
!   YYSYMBOL_MODE = 412,                     /* MODE  */
!   YYSYMBOL_MODULE_NAME = 413,              /* "MODULE-NAME "  */
!   YYSYMBOL_NAMED = 414,                    /* NAMED  */
!   YYSYMBOL_NAT = 415,                      /* NAT  */
!   YYSYMBOL_NATIONAL = 416,                 /* NATIONAL  */
!   YYSYMBOL_NATIONAL_EDITED = 417,          /* "NATIONAL-EDITED"  */
!   YYSYMBOL_NATIONAL_OF = 418,              /* "NATIONAL-OF"  */
!   YYSYMBOL_NATIVE = 419,                   /* NATIVE  */
!   YYSYMBOL_NESTED = 420,                   /* NESTED  */
!   YYSYMBOL_NEXT = 421,                     /* NEXT  */
!   YYSYMBOL_NO = 422,                       /* NO  */
!   YYSYMBOL_NOTE = 423,                     /* NOTE  */
!   YYSYMBOL_NULLS = 424,                    /* NULLS  */
!   YYSYMBOL_NULLPTR = 425,                  /* NULLPTR  */
!   YYSYMBOL_NUMERIC = 426,                  /* NUMERIC  */
!   YYSYMBOL_NUMERIC_EDITED = 427,           /* NUMERIC_EDITED  */
!   YYSYMBOL_NUMVAL = 428,                   /* NUMVAL  */
!   YYSYMBOL_NUMVAL_C = 429,                 /* "NUMVAL-C"  */
!   YYSYMBOL_NUMVAL_F = 430,                 /* "NUMVAL-F"  */
!   YYSYMBOL_OCCURS = 431,                   /* OCCURS  */
!   YYSYMBOL_OF = 432,                       /* OF  */
!   YYSYMBOL_OFF = 433,                      /* OFF  */
!   YYSYMBOL_OMITTED = 434,                  /* OMITTED  */
!   YYSYMBOL_ON = 435,                       /* ON  */
!   YYSYMBOL_ONLY = 436,                     /* ONLY  */
!   YYSYMBOL_OPTIONAL = 437,                 /* OPTIONAL  */
!   YYSYMBOL_OPTIONS = 438,                  /* OPTIONS  */
!   YYSYMBOL_ORD = 439,                      /* ORD  */
!   YYSYMBOL_ORDER = 440,                    /* ORDER  */
!   YYSYMBOL_ORD_MAX = 441,                  /* "ORD-MAX"  */
!   YYSYMBOL_ORD_MIN = 442,                  /* "ORD-MIN"  */
!   YYSYMBOL_ORGANIZATION = 443,             /* ORGANIZATION  */
!   YYSYMBOL_OTHER = 444,                    /* OTHER  */
!   YYSYMBOL_OTHERWISE = 445,                /* OTHERWISE  */
!   YYSYMBOL_OUTPUT = 446,                   /* OUTPUT  */
!   YYSYMBOL_PACKED_DECIMAL = 447,           /* PACKED_DECIMAL  */
!   YYSYMBOL_PADDING = 448,                  /* PADDING  */
!   YYSYMBOL_PAGE = 449,                     /* PAGE  */
!   YYSYMBOL_PAGE_COUNTER = 450,             /* "PAGE-COUNTER"  */
!   YYSYMBOL_PF = 451,                       /* PF  */
!   YYSYMBOL_PH = 452,                       /* PH  */
!   YYSYMBOL_PI = 453,                       /* PI  */
!   YYSYMBOL_PIC = 454,                      /* PIC  */
!   YYSYMBOL_PICTURE = 455,                  /* PICTURE  */
!   YYSYMBOL_PLUS = 456,                     /* PLUS  */
!   YYSYMBOL_PRESENT_VALUE = 457,            /* PRESENT_VALUE  */
!   YYSYMBOL_PRINT_SWITCH = 458,             /* PRINT_SWITCH  */
!   YYSYMBOL_PROCEDURE = 459,                /* PROCEDURE  */
!   YYSYMBOL_PROCEDURES = 460,               /* PROCEDURES  */
!   YYSYMBOL_PROCEED = 461,                  /* PROCEED  */
!   YYSYMBOL_PROCESS = 462,                  /* PROCESS  */
!   YYSYMBOL_PROCESSING = 463,               /* PROCESSING  */
!   YYSYMBOL_PROGRAM_ID = 464,               /* "PROGRAM-ID"  */
!   YYSYMBOL_PROGRAM_kw = 465,               /* "Program"  */
!   YYSYMBOL_PROPERTY = 466,                 /* PROPERTY  */
!   YYSYMBOL_PROTOTYPE = 467,                /* PROTOTYPE  */
!   YYSYMBOL_PSEUDOTEXT = 468,               /* PSEUDOTEXT  */
!   YYSYMBOL_QUOTES = 469,                   /* "QUOTE"  */
!   YYSYMBOL_RANDOM = 470,                   /* RANDOM  */
!   YYSYMBOL_RANDOM_SEED = 471,              /* RANDOM_SEED  */
!   YYSYMBOL_RANGE = 472,                    /* RANGE  */
!   YYSYMBOL_RAISE = 473,                    /* RAISE  */
!   YYSYMBOL_RAISING = 474,                  /* RAISING  */
!   YYSYMBOL_RD = 475,                       /* RD  */
!   YYSYMBOL_RECORD = 476,                   /* RECORD  */
!   YYSYMBOL_RECORDING = 477,                /* RECORDING  */
!   YYSYMBOL_RECORDS = 478,                  /* RECORDS  */
!   YYSYMBOL_RECURSIVE = 479,                /* RECURSIVE  */
!   YYSYMBOL_REDEFINES = 480,                /* REDEFINES  */
!   YYSYMBOL_REEL = 481,                     /* REEL  */
!   YYSYMBOL_REFERENCE = 482,                /* REFERENCE  */
!   YYSYMBOL_RELATIVE = 483,                 /* RELATIVE  */
!   YYSYMBOL_REM = 484,                      /* REM  */
!   YYSYMBOL_REMAINDER = 485,                /* REMAINDER  */
!   YYSYMBOL_REMARKS = 486,                  /* REMARKS  */
!   YYSYMBOL_REMOVAL = 487,                  /* REMOVAL  */
!   YYSYMBOL_RENAMES = 488,                  /* RENAMES  */
!   YYSYMBOL_REPLACE = 489,                  /* REPLACE  */
!   YYSYMBOL_REPLACING = 490,                /* REPLACING  */
!   YYSYMBOL_REPORT = 491,                   /* REPORT  */
!   YYSYMBOL_REPORTING = 492,                /* REPORTING  */
!   YYSYMBOL_REPORTS = 493,                  /* REPORTS  */
!   YYSYMBOL_REPOSITORY = 494,               /* REPOSITORY  */
!   YYSYMBOL_RERUN = 495,                    /* RERUN  */
!   YYSYMBOL_RESERVE = 496,                  /* RESERVE  */
!   YYSYMBOL_RESTRICTED = 497,               /* RESTRICTED  */
!   YYSYMBOL_RESUME = 498,                   /* RESUME  */
!   YYSYMBOL_RETRY = 499,                    /* RETRY  */
!   YYSYMBOL_REVERSE = 500,                  /* REVERSE  */
!   YYSYMBOL_REVERSED = 501,                 /* REVERSED  */
!   YYSYMBOL_REWIND = 502,                   /* REWIND  */
!   YYSYMBOL_RF = 503,                       /* RF  */
!   YYSYMBOL_RH = 504,                       /* RH  */
!   YYSYMBOL_RIGHT = 505,                    /* RIGHT  */
!   YYSYMBOL_ROUNDED = 506,                  /* ROUNDED  */
!   YYSYMBOL_RUN = 507,                      /* RUN  */
!   YYSYMBOL_SAME = 508,                     /* SAME  */
!   YYSYMBOL_SCREEN = 509,                   /* SCREEN  */
!   YYSYMBOL_SD = 510,                       /* SD  */
!   YYSYMBOL_SECONDS_FROM_FORMATTED_TIME = 511, /* "SECONDS-FROM-FORMATTED-TIME"  */
!   YYSYMBOL_SECONDS_PAST_MIDNIGHT = 512,    /* "SECONDS-PAST-MIDNIGHT"  */
!   YYSYMBOL_SECURITY = 513,                 /* SECURITY  */
!   YYSYMBOL_SEPARATE = 514,                 /* SEPARATE  */
!   YYSYMBOL_SEQUENCE = 515,                 /* SEQUENCE  */
!   YYSYMBOL_SEQUENTIAL = 516,               /* SEQUENTIAL  */
!   YYSYMBOL_SHARING = 517,                  /* SHARING  */
!   YYSYMBOL_SIMPLE_EXIT = 518,              /* "(simple) EXIT"  */
!   YYSYMBOL_SIGN = 519,                     /* SIGN  */
!   YYSYMBOL_SIN = 520,                      /* SIN  */
!   YYSYMBOL_SIZE = 521,                     /* SIZE  */
!   YYSYMBOL_SMALLEST_ALGEBRAIC = 522,       /* "SMALLEST-ALGEBRAIC"  */
!   YYSYMBOL_SOURCE = 523,                   /* SOURCE  */
!   YYSYMBOL_SOURCE_COMPUTER = 524,          /* "SOURCE-COMPUTER"  */
!   YYSYMBOL_SPECIAL_NAMES = 525,            /* SPECIAL_NAMES  */
!   YYSYMBOL_SQRT = 526,                     /* SQRT  */
!   YYSYMBOL_STACK = 527,                    /* STACK  */
!   YYSYMBOL_STANDARD = 528,                 /* STANDARD  */
!   YYSYMBOL_STANDARD_1 = 529,               /* "STANDARD-1"  */
!   YYSYMBOL_STANDARD_DEVIATION = 530,       /* "STANDARD-DEVIATION "  */
!   YYSYMBOL_STANDARD_COMPARE = 531,         /* "STANDARD-COMPARE"  */
!   YYSYMBOL_STATUS = 532,                   /* STATUS  */
!   YYSYMBOL_STRONG = 533,                   /* STRONG  */
!   YYSYMBOL_SUBSTITUTE = 534,               /* SUBSTITUTE  */
!   YYSYMBOL_SUM = 535,                      /* SUM  */
!   YYSYMBOL_SYMBOL = 536,                   /* SYMBOL  */
!   YYSYMBOL_SYMBOLIC = 537,                 /* SYMBOLIC  */
!   YYSYMBOL_SYNCHRONIZED = 538,             /* SYNCHRONIZED  */
!   YYSYMBOL_TALLYING = 539,                 /* TALLYING  */
!   YYSYMBOL_TAN = 540,                      /* TAN  */
!   YYSYMBOL_TERMINATE = 541,                /* TERMINATE  */
!   YYSYMBOL_TEST = 542,                     /* TEST  */
!   YYSYMBOL_TEST_DATE_YYYYMMDD = 543,       /* "TEST-DATE-YYYYMMDD"  */
!   YYSYMBOL_TEST_DAY_YYYYDDD = 544,         /* "TEST-DAY-YYYYDDD"  */
!   YYSYMBOL_TEST_FORMATTED_DATETIME = 545,  /* "TEST-FORMATTED-DATETIME"  */
!   YYSYMBOL_TEST_NUMVAL = 546,              /* "TEST-NUMVAL"  */
!   YYSYMBOL_TEST_NUMVAL_C = 547,            /* "TEST-NUMVAL-C"  */
!   YYSYMBOL_TEST_NUMVAL_F = 548,            /* "TEST-NUMVAL-F"  */
!   YYSYMBOL_THAN = 549,                     /* THAN  */
!   YYSYMBOL_TIME = 550,                     /* TIME  */
!   YYSYMBOL_TIMES = 551,                    /* TIMES  */
!   YYSYMBOL_TO = 552,                       /* TO  */
!   YYSYMBOL_TOP = 553,                      /* TOP  */
!   YYSYMBOL_TOP_LEVEL = 554,                /* TOP_LEVEL  */
!   YYSYMBOL_TRACKS = 555,                   /* TRACKS  */
!   YYSYMBOL_TRACK_AREA = 556,               /* TRACK_AREA  */
!   YYSYMBOL_TRAILING = 557,                 /* TRAILING  */
!   YYSYMBOL_TRANSFORM = 558,                /* TRANSFORM  */
!   YYSYMBOL_TRIM = 559,                     /* TRIM  */
!   YYSYMBOL_TRUE_kw = 560,                  /* "True"  */
!   YYSYMBOL_TRY = 561,                      /* TRY  */
!   YYSYMBOL_TURN = 562,                     /* TURN  */
!   YYSYMBOL_TYPE = 563,                     /* TYPE  */
!   YYSYMBOL_TYPEDEF = 564,                  /* TYPEDEF  */
!   YYSYMBOL_ULENGTH = 565,                  /* ULENGTH  */
!   YYSYMBOL_UNBOUNDED = 566,                /* UNBOUNDED  */
!   YYSYMBOL_UNIT = 567,                     /* UNIT  */
!   YYSYMBOL_UNITS = 568,                    /* UNITS  */
!   YYSYMBOL_UNIT_RECORD = 569,              /* UNIT_RECORD  */
!   YYSYMBOL_UNTIL = 570,                    /* UNTIL  */
!   YYSYMBOL_UP = 571,                       /* UP  */
!   YYSYMBOL_UPON = 572,                     /* UPON  */
!   YYSYMBOL_UPOS = 573,                     /* UPOS  */
!   YYSYMBOL_UPPER_CASE = 574,               /* UPPER_CASE  */
!   YYSYMBOL_USAGE = 575,                    /* USAGE  */
!   YYSYMBOL_USING = 576,                    /* USING  */
!   YYSYMBOL_USUBSTR = 577,                  /* USUBSTR  */
!   YYSYMBOL_USUPPLEMENTARY = 578,           /* USUPPLEMENTARY  */
!   YYSYMBOL_UTILITY = 579,                  /* UTILITY  */
!   YYSYMBOL_UUID4 = 580,                    /* UUID4  */
!   YYSYMBOL_UVALID = 581,                   /* UVALID  */
!   YYSYMBOL_UWIDTH = 582,                   /* UWIDTH  */
!   YYSYMBOL_VALIDATING = 583,               /* VALIDATING  */
!   YYSYMBOL_VALUE = 584,                    /* VALUE  */
!   YYSYMBOL_VARIANCE = 585,                 /* VARIANCE  */
!   YYSYMBOL_VARYING = 586,                  /* VARYING  */
!   YYSYMBOL_VOLATILE = 587,                 /* VOLATILE  */
!   YYSYMBOL_WHEN_COMPILED = 588,            /* WHEN_COMPILED  */
!   YYSYMBOL_WITH = 589,                     /* WITH  */
!   YYSYMBOL_WORKING_STORAGE = 590,          /* WORKING_STORAGE  */
    YYSYMBOL_YEAR_TO_YYYY = 591,             /* YEAR_TO_YYYY  */
    YYSYMBOL_YYYYDDD = 592,                  /* YYYYDDD  */
    YYSYMBOL_YYYYMMDD = 593,                 /* YYYYMMDD  */
*************** enum yysymbol_kind_t
*** 781,1509 ****
    YYSYMBOL_UNSIGNED_kw = 660,              /* UNSIGNED_kw  */
    YYSYMBOL_UTF_16 = 661,                   /* "UTF-16"  */
    YYSYMBOL_UTF_8 = 662,                    /* "UTF-8"  */
!   YYSYMBOL_ADDRESS = 663,                  /* ADDRESS  */
!   YYSYMBOL_END_ACCEPT = 664,               /* "END-ACCEPT"  */
!   YYSYMBOL_END_ADD = 665,                  /* "END-ADD"  */
!   YYSYMBOL_END_CALL = 666,                 /* "END-CALL"  */
!   YYSYMBOL_END_COMPUTE = 667,              /* "END-COMPUTE"  */
!   YYSYMBOL_END_DELETE = 668,               /* "END-DELETE"  */
!   YYSYMBOL_END_DISPLAY = 669,              /* "END-DISPLAY"  */
!   YYSYMBOL_END_DIVIDE = 670,               /* "END-DIVIDE"  */
!   YYSYMBOL_END_EVALUATE = 671,             /* "END-EVALUATE"  */
!   YYSYMBOL_END_MULTIPLY = 672,             /* "END-MULTIPLY"  */
!   YYSYMBOL_END_PERFORM = 673,              /* "END-PERFORM"  */
!   YYSYMBOL_END_READ = 674,                 /* "END-READ"  */
!   YYSYMBOL_END_RETURN = 675,               /* "END-RETURN"  */
!   YYSYMBOL_END_REWRITE = 676,              /* "END-REWRITE"  */
!   YYSYMBOL_END_SEARCH = 677,               /* "END-SEARCH"  */
!   YYSYMBOL_END_START = 678,                /* "END-START"  */
!   YYSYMBOL_END_STRING = 679,               /* "END-STRING"  */
!   YYSYMBOL_END_SUBTRACT = 680,             /* "END-SUBTRACT"  */
!   YYSYMBOL_END_UNSTRING = 681,             /* "END-UNSTRING"  */
!   YYSYMBOL_END_WRITE = 682,                /* "END-WRITE"  */
!   YYSYMBOL_END_IF = 683,                   /* "END-IF"  */
!   YYSYMBOL_THRU = 684,                     /* THRU  */
!   YYSYMBOL_OR = 685,                       /* OR  */
!   YYSYMBOL_AND = 686,                      /* AND  */
!   YYSYMBOL_NOT = 687,                      /* NOT  */
!   YYSYMBOL_688_ = 688,                     /* '<'  */
!   YYSYMBOL_689_ = 689,                     /* '>'  */
!   YYSYMBOL_690_ = 690,                     /* '='  */
!   YYSYMBOL_NE = 691,                       /* NE  */
!   YYSYMBOL_LE = 692,                       /* LE  */
!   YYSYMBOL_GE = 693,                       /* GE  */
!   YYSYMBOL_694_ = 694,                     /* '-'  */
!   YYSYMBOL_695_ = 695,                     /* '+'  */
!   YYSYMBOL_696_ = 696,                     /* '*'  */
!   YYSYMBOL_697_ = 697,                     /* '/'  */
!   YYSYMBOL_POW = 698,                      /* POW  */
!   YYSYMBOL_NEG = 699,                      /* NEG  */
!   YYSYMBOL_700_ = 700,                     /* '.'  */
!   YYSYMBOL_701_ = 701,                     /* '&'  */
!   YYSYMBOL_702_S_ = 702,                   /* 'S'  */
!   YYSYMBOL_703_ = 703,                     /* '('  */
!   YYSYMBOL_704_ = 704,                     /* ')'  */
!   YYSYMBOL_705_ = 705,                     /* ':'  */
!   YYSYMBOL_YYACCEPT = 706,                 /* $accept  */
!   YYSYMBOL_top = 707,                      /* top  */
!   YYSYMBOL_programs = 708,                 /* programs  */
!   YYSYMBOL_program = 709,                  /* program  */
!   YYSYMBOL_710_1 = 710,                    /* $@1  */
!   YYSYMBOL_id_div = 711,                   /* id_div  */
!   YYSYMBOL_cdf_words = 712,                /* cdf_words  */
!   YYSYMBOL_cobol_words = 713,              /* cobol_words  */
!   YYSYMBOL_cobol_words1 = 714,             /* cobol_words1  */
!   YYSYMBOL_program_id = 715,               /* program_id  */
!   YYSYMBOL_dot = 716,                      /* dot  */
!   YYSYMBOL_program_as = 717,               /* program_as  */
!   YYSYMBOL_function_id = 718,              /* function_id  */
!   YYSYMBOL_options_para = 719,             /* options_para  */
!   YYSYMBOL_opt_clauses = 720,              /* opt_clauses  */
!   YYSYMBOL_opt_clause = 721,               /* opt_clause  */
!   YYSYMBOL_opt_arith = 722,                /* opt_arith  */
!   YYSYMBOL_opt_arith_type = 723,           /* opt_arith_type  */
!   YYSYMBOL_opt_round = 724,                /* opt_round  */
!   YYSYMBOL_opt_entry = 725,                /* opt_entry  */
!   YYSYMBOL_opt_binary = 726,               /* opt_binary  */
!   YYSYMBOL_default_kw = 727,               /* default_kw  */
!   YYSYMBOL_opt_decimal = 728,              /* opt_decimal  */
!   YYSYMBOL_opt_intermediate = 729,         /* opt_intermediate  */
!   YYSYMBOL_opt_init = 730,                 /* opt_init  */
!   YYSYMBOL_opt_section = 731,              /* opt_section  */
!   YYSYMBOL_opt_init_sects = 732,           /* opt_init_sects  */
!   YYSYMBOL_opt_init_sect = 733,            /* opt_init_sect  */
!   YYSYMBOL_opt_init_value = 734,           /* opt_init_value  */
!   YYSYMBOL_namestr = 735,                  /* namestr  */
!   YYSYMBOL_program_attrs = 736,            /* program_attrs  */
!   YYSYMBOL_comminits = 737,                /* comminits  */
!   YYSYMBOL_comminit = 738,                 /* comminit  */
!   YYSYMBOL_env_div = 739,                  /* env_div  */
!   YYSYMBOL_740_2 = 740,                    /* $@2  */
!   YYSYMBOL_env_sections = 741,             /* env_sections  */
!   YYSYMBOL_env_section = 742,              /* env_section  */
!   YYSYMBOL_io_sections = 743,              /* io_sections  */
!   YYSYMBOL_io_section = 744,               /* io_section  */
!   YYSYMBOL_io_control_clauses = 745,       /* io_control_clauses  */
!   YYSYMBOL_io_control_clause = 746,        /* io_control_clause  */
!   YYSYMBOL_area = 747,                     /* area  */
!   YYSYMBOL_smerge = 748,                   /* smerge  */
!   YYSYMBOL_selects = 749,                  /* selects  */
!   YYSYMBOL_select = 750,                   /* select  */
!   YYSYMBOL_selected_name = 751,            /* selected_name  */
!   YYSYMBOL_external = 752,                 /* external  */
!   YYSYMBOL_select_clauses = 753,           /* select_clauses  */
!   YYSYMBOL_select_clause = 754,            /* select_clause  */
!   YYSYMBOL_access_clause = 755,            /* access_clause  */
!   YYSYMBOL_access_mode = 756,              /* access_mode  */
!   YYSYMBOL_alt_key_clause = 757,           /* alt_key_clause  */
!   YYSYMBOL_key_source = 758,               /* key_source  */
!   YYSYMBOL_key_sources = 759,              /* key_sources  */
!   YYSYMBOL_unique_key = 760,               /* unique_key  */
!   YYSYMBOL_assign_clause = 761,            /* assign_clause  */
!   YYSYMBOL_collate_clause = 762,           /* collate_clause  */
!   YYSYMBOL_collate_claus1 = 763,           /* collate_claus1  */
!   YYSYMBOL_status_clause = 764,            /* status_clause  */
!   YYSYMBOL_lock_mode_clause = 765,         /* lock_mode_clause  */
!   YYSYMBOL_lock_how = 766,                 /* lock_how  */
!   YYSYMBOL_lock_mode = 767,                /* lock_mode  */
!   YYSYMBOL_multiple = 768,                 /* multiple  */
!   YYSYMBOL_records = 769,                  /* records  */
!   YYSYMBOL_org_clause = 770,               /* org_clause  */
!   YYSYMBOL_org_is = 771,                   /* org_is  */
!   YYSYMBOL_org_clause1 = 772,              /* org_clause1  */
!   YYSYMBOL_padding_clause = 773,           /* padding_clause  */
!   YYSYMBOL_character = 774,                /* character  */
!   YYSYMBOL_padding_char = 775,             /* padding_char  */
!   YYSYMBOL_record_delim_clause = 776,      /* record_delim_clause  */
!   YYSYMBOL_record_key_clause = 777,        /* record_key_clause  */
!   YYSYMBOL_relative_key_clause = 778,      /* relative_key_clause  */
!   YYSYMBOL_reserve_clause = 779,           /* reserve_clause  */
!   YYSYMBOL_reserve_area = 780,             /* reserve_area  */
!   YYSYMBOL_sharing_clause = 781,           /* sharing_clause  */
!   YYSYMBOL_sharing_who = 782,              /* sharing_who  */
!   YYSYMBOL_other = 783,                    /* other  */
!   YYSYMBOL_config_paragraphs = 784,        /* config_paragraphs  */
!   YYSYMBOL_config_paragraph = 785,         /* config_paragraph  */
!   YYSYMBOL_repo_members = 786,             /* repo_members  */
!   YYSYMBOL_repo_member = 787,              /* repo_member  */
!   YYSYMBOL_repo_class = 788,               /* repo_class  */
!   YYSYMBOL_repo_as = 789,                  /* repo_as  */
!   YYSYMBOL_repo_expands = 790,             /* repo_expands  */
!   YYSYMBOL_repo_interface = 791,           /* repo_interface  */
!   YYSYMBOL_repo_func = 792,                /* repo_func  */
!   YYSYMBOL_repo_func_names = 793,          /* repo_func_names  */
!   YYSYMBOL_repo_func_name = 794,           /* repo_func_name  */
!   YYSYMBOL_repo_program = 795,             /* repo_program  */
!   YYSYMBOL_repo_property = 796,            /* repo_property  */
!   YYSYMBOL_with_debug = 797,               /* with_debug  */
!   YYSYMBOL_collating_sequence = 798,       /* collating_sequence  */
!   YYSYMBOL_specials = 799,                 /* specials  */
!   YYSYMBOL_special_names = 800,            /* special_names  */
!   YYSYMBOL_special_name = 801,             /* special_name  */
!   YYSYMBOL_locale_spec = 802,              /* locale_spec  */
!   YYSYMBOL_symbolic = 803,                 /* symbolic  */
!   YYSYMBOL_is_alphabet = 804,              /* is_alphabet  */
!   YYSYMBOL_dev_mnemonic = 805,             /* dev_mnemonic  */
!   YYSYMBOL_device_name = 806,              /* device_name  */
!   YYSYMBOL_alphabet_name = 807,            /* alphabet_name  */
!   YYSYMBOL_alphabet_seqs = 808,            /* alphabet_seqs  */
!   YYSYMBOL_alphabet_seq = 809,             /* alphabet_seq  */
!   YYSYMBOL_alphabet_etc = 810,             /* alphabet_etc  */
!   YYSYMBOL_alphabet_lit = 811,             /* alphabet_lit  */
!   YYSYMBOL_upsi = 812,                     /* upsi  */
!   YYSYMBOL_upsi_entry = 813,               /* upsi_entry  */
!   YYSYMBOL_picture_sym = 814,              /* picture_sym  */
!   YYSYMBOL_domains = 815,                  /* domains  */
!   YYSYMBOL_domain = 816,                   /* domain  */
!   YYSYMBOL_when_set_to = 817,              /* when_set_to  */
!   YYSYMBOL_data_div = 818,                 /* data_div  */
!   YYSYMBOL_819_3 = 819,                    /* $@3  */
!   YYSYMBOL_data_sections = 820,            /* data_sections  */
!   YYSYMBOL_data_section = 821,             /* data_section  */
!   YYSYMBOL_822_4 = 822,                    /* $@4  */
!   YYSYMBOL_823_5 = 823,                    /* $@5  */
!   YYSYMBOL_824_6 = 824,                    /* $@6  */
!   YYSYMBOL_825_7 = 825,                    /* $@7  */
!   YYSYMBOL_file_descrs = 826,              /* file_descrs  */
!   YYSYMBOL_file_descr = 827,               /* file_descr  */
!   YYSYMBOL_828_8 = 828,                    /* $@8  */
!   YYSYMBOL_829_9 = 829,                    /* $@9  */
!   YYSYMBOL_fd_name = 830,                  /* fd_name  */
!   YYSYMBOL_fd_clauses = 831,               /* fd_clauses  */
!   YYSYMBOL_fd_clause = 832,                /* fd_clause  */
!   YYSYMBOL_block_desc = 833,               /* block_desc  */
!   YYSYMBOL_rec_contains = 834,             /* rec_contains  */
!   YYSYMBOL_chars_recs = 835,               /* chars_recs  */
!   YYSYMBOL_label_desc = 836,               /* label_desc  */
!   YYSYMBOL_record_is = 837,                /* record_is  */
!   YYSYMBOL_fd_values = 838,                /* fd_values  */
!   YYSYMBOL_fd_value = 839,                 /* fd_value  */
!   YYSYMBOL_alpha_val = 840,                /* alpha_val  */
!   YYSYMBOL_fd_labels = 841,                /* fd_labels  */
!   YYSYMBOL_fd_label = 842,                 /* fd_label  */
!   YYSYMBOL_record_desc = 843,              /* record_desc  */
!   YYSYMBOL_record_vary = 844,              /* record_vary  */
!   YYSYMBOL_in_size = 845,                  /* in_size  */
!   YYSYMBOL_from_to = 846,                  /* from_to  */
!   YYSYMBOL_depending = 847,                /* depending  */
!   YYSYMBOL_fd_linage = 848,                /* fd_linage  */
!   YYSYMBOL_with_footings = 849,            /* with_footings  */
!   YYSYMBOL_with_footing = 850,             /* with_footing  */
!   YYSYMBOL_top_bot = 851,                  /* top_bot  */
!   YYSYMBOL_fd_report = 852,                /* fd_report  */
!   YYSYMBOL_fields_maybe = 853,             /* fields_maybe  */
!   YYSYMBOL_fields = 854,                   /* fields  */
!   YYSYMBOL_field = 855,                    /* field  */
!   YYSYMBOL_occurs_clause = 856,            /* occurs_clause  */
!   YYSYMBOL_cardinal_lb = 857,              /* cardinal_lb  */
!   YYSYMBOL_cardinal = 858,                 /* cardinal  */
!   YYSYMBOL_depending_on = 859,             /* depending_on  */
!   YYSYMBOL_bound = 860,                    /* bound  */
!   YYSYMBOL_key_descrs = 861,               /* key_descrs  */
!   YYSYMBOL_key_descr = 862,                /* key_descr  */
!   YYSYMBOL_ordering = 863,                 /* ordering  */
!   YYSYMBOL_key_fields = 864,               /* key_fields  */
!   YYSYMBOL_key_field1 = 865,               /* key_field1  */
!   YYSYMBOL_indexed = 866,                  /* indexed  */
!   YYSYMBOL_index_fields = 867,             /* index_fields  */
!   YYSYMBOL_index_field1 = 868,             /* index_field1  */
!   YYSYMBOL_level_name = 869,               /* level_name  */
!   YYSYMBOL_data_descr = 870,               /* data_descr  */
!   YYSYMBOL_const_value = 871,              /* const_value  */
!   YYSYMBOL_value78 = 872,                  /* value78  */
!   YYSYMBOL_data_descr1 = 873,              /* data_descr1  */
!   YYSYMBOL_literalism = 874,               /* literalism  */
!   YYSYMBOL_name66 = 875,                   /* name66  */
!   YYSYMBOL_data_clauses = 876,             /* data_clauses  */
!   YYSYMBOL_data_clause = 877,              /* data_clause  */
!   YYSYMBOL_picture_clause = 878,           /* picture_clause  */
!   YYSYMBOL_ones = 879,                     /* ones  */
!   YYSYMBOL_alphanum_pic = 880,             /* alphanum_pic  */
!   YYSYMBOL_alphanum_part = 881,            /* alphanum_part  */
!   YYSYMBOL_signed = 882,                   /* signed  */
!   YYSYMBOL_nps = 883,                      /* nps  */
!   YYSYMBOL_nine = 884,                     /* nine  */
!   YYSYMBOL_nines = 885,                    /* nines  */
!   YYSYMBOL_count = 886,                    /* count  */
!   YYSYMBOL_numed = 887,                    /* numed  */
!   YYSYMBOL_usage_clause = 888,             /* usage_clause  */
!   YYSYMBOL_usage_clause1 = 889,            /* usage_clause1  */
!   YYSYMBOL_value_clause = 890,             /* value_clause  */
!   YYSYMBOL_global_clause = 891,            /* global_clause  */
!   YYSYMBOL_external_clause = 892,          /* external_clause  */
!   YYSYMBOL_justified_clause = 893,         /* justified_clause  */
!   YYSYMBOL_redefines_clause = 894,         /* redefines_clause  */
!   YYSYMBOL_any_length = 895,               /* any_length  */
!   YYSYMBOL_based_clause = 896,             /* based_clause  */
!   YYSYMBOL_blank_zero_clause = 897,        /* blank_zero_clause  */
!   YYSYMBOL_blank_when_zero = 898,          /* blank_when_zero  */
!   YYSYMBOL_synched_clause = 899,           /* synched_clause  */
!   YYSYMBOL_same_clause = 900,              /* same_clause  */
!   YYSYMBOL_sign_clause = 901,              /* sign_clause  */
!   YYSYMBOL_sign_is = 902,                  /* sign_is  */
!   YYSYMBOL_sign_leading = 903,             /* sign_leading  */
!   YYSYMBOL_sign_separate = 904,            /* sign_separate  */
!   YYSYMBOL_type_clause = 905,              /* type_clause  */
!   YYSYMBOL_typedef_clause = 906,           /* typedef_clause  */
!   YYSYMBOL_volatile_clause = 907,          /* volatile_clause  */
!   YYSYMBOL_procedure_div = 908,            /* procedure_div  */
!   YYSYMBOL_909_10 = 909,                   /* $@10  */
!   YYSYMBOL_procedure_args = 910,           /* procedure_args  */
!   YYSYMBOL_procedure_uses = 911,           /* procedure_uses  */
!   YYSYMBOL_procedure_use = 912,            /* procedure_use  */
!   YYSYMBOL_by_value_arg = 913,             /* by_value_arg  */
!   YYSYMBOL_declaratives = 914,             /* declaratives  */
!   YYSYMBOL_915_11 = 915,                   /* @11  */
!   YYSYMBOL_sentences = 916,                /* sentences  */
!   YYSYMBOL_paragraph_name = 917,           /* paragraph_name  */
!   YYSYMBOL_sentence = 918,                 /* sentence  */
!   YYSYMBOL_statements = 919,               /* statements  */
!   YYSYMBOL_statement = 920,                /* statement  */
!   YYSYMBOL_accept = 921,                   /* accept  */
!   YYSYMBOL_end_accept = 922,               /* end_accept  */
!   YYSYMBOL_accept_body = 923,              /* accept_body  */
!   YYSYMBOL_accept_refer = 924,             /* accept_refer  */
!   YYSYMBOL_accept_excepts = 925,           /* accept_excepts  */
!   YYSYMBOL_accept_except = 926,            /* accept_except  */
!   YYSYMBOL_envar = 927,                    /* envar  */
!   YYSYMBOL_acceptable = 928,               /* acceptable  */
!   YYSYMBOL_add = 929,                      /* add  */
!   YYSYMBOL_add_impl = 930,                 /* add_impl  */
!   YYSYMBOL_add_cond = 931,                 /* add_cond  */
!   YYSYMBOL_end_add = 932,                  /* end_add  */
!   YYSYMBOL_add_body = 933,                 /* add_body  */
!   YYSYMBOL_rounded = 934,                  /* rounded  */
!   YYSYMBOL_rounded_mode = 935,             /* rounded_mode  */
!   YYSYMBOL_rounded_type = 936,             /* rounded_type  */
!   YYSYMBOL_round_between = 937,            /* round_between  */
!   YYSYMBOL_might_be = 938,                 /* might_be  */
!   YYSYMBOL_posneg = 939,                   /* posneg  */
!   YYSYMBOL_scalar88s = 940,                /* scalar88s  */
!   YYSYMBOL_name88 = 941,                   /* name88  */
!   YYSYMBOL_scalar88 = 942,                 /* scalar88  */
!   YYSYMBOL_allocate = 943,                 /* allocate  */
!   YYSYMBOL_initialized = 944,              /* initialized  */
!   YYSYMBOL_alloc_ret = 945,                /* alloc_ret  */
!   YYSYMBOL_compute = 946,                  /* compute  */
!   YYSYMBOL_compute_impl = 947,             /* compute_impl  */
!   YYSYMBOL_compute_cond = 948,             /* compute_cond  */
!   YYSYMBOL_end_compute = 949,              /* end_compute  */
!   YYSYMBOL_compute_body = 950,             /* compute_body  */
!   YYSYMBOL_951_12 = 951,                   /* $@12  */
!   YYSYMBOL_compute_expr = 952,             /* compute_expr  */
!   YYSYMBOL_953_13 = 953,                   /* $@13  */
!   YYSYMBOL_954_14 = 954,                   /* $@14  */
!   YYSYMBOL_display = 955,                  /* display  */
!   YYSYMBOL_end_display = 956,              /* end_display  */
!   YYSYMBOL_disp_body = 957,                /* disp_body  */
!   YYSYMBOL_disp_vargs = 958,               /* disp_vargs  */
!   YYSYMBOL_disp_upon = 959,                /* disp_upon  */
!   YYSYMBOL_exhibit_stmt = 960,             /* exhibit_stmt  */
!   YYSYMBOL_exh_changed = 961,              /* exh_changed  */
!   YYSYMBOL_exh_named = 962,                /* exh_named  */
!   YYSYMBOL_divide = 963,                   /* divide  */
!   YYSYMBOL_divide_impl = 964,              /* divide_impl  */
!   YYSYMBOL_divide_cond = 965,              /* divide_cond  */
!   YYSYMBOL_end_divide = 966,               /* end_divide  */
!   YYSYMBOL_divide_body = 967,              /* divide_body  */
!   YYSYMBOL_divide_into = 968,              /* divide_into  */
!   YYSYMBOL_divide_by = 969,                /* divide_by  */
!   YYSYMBOL_end_program = 970,              /* end_program  */
!   YYSYMBOL_end_program1 = 971,             /* end_program1  */
!   YYSYMBOL_continue_stmt = 972,            /* continue_stmt  */
!   YYSYMBOL_exit = 973,                     /* exit  */
!   YYSYMBOL_974_15 = 974,                   /* $@15  */
!   YYSYMBOL_exit_with = 975,                /* exit_with  */
!   YYSYMBOL_exit_what = 976,                /* exit_what  */
!   YYSYMBOL_exit_raising = 977,             /* exit_raising  */
!   YYSYMBOL_free = 978,                     /* free  */
!   YYSYMBOL_free_tgts = 979,                /* free_tgts  */
!   YYSYMBOL_free_tgt = 980,                 /* free_tgt  */
!   YYSYMBOL_simple_cond = 981,              /* simple_cond  */
!   YYSYMBOL_kind_of_name = 982,             /* kind_of_name  */
!   YYSYMBOL_bool_expr = 983,                /* bool_expr  */
!   YYSYMBOL_log_expr = 984,                 /* log_expr  */
!   YYSYMBOL_log_term = 985,                 /* log_term  */
!   YYSYMBOL_rel_expr = 986,                 /* rel_expr  */
!   YYSYMBOL_rel_abbrs = 987,                /* rel_abbrs  */
!   YYSYMBOL_rel_lhs = 988,                  /* rel_lhs  */
!   YYSYMBOL_rel_abbr = 989,                 /* rel_abbr  */
!   YYSYMBOL_rel_term = 990,                 /* rel_term  */
!   YYSYMBOL_rel_term1 = 991,                /* rel_term1  */
!   YYSYMBOL_expr = 992,                     /* expr  */
!   YYSYMBOL_expr_term = 993,                /* expr_term  */
!   YYSYMBOL_num_term = 994,                 /* num_term  */
!   YYSYMBOL_value = 995,                    /* value  */
!   YYSYMBOL_factor = 996,                   /* factor  */
!   YYSYMBOL_if_stmt = 997,                  /* if_stmt  */
!   YYSYMBOL_if_impl = 998,                  /* if_impl  */
!   YYSYMBOL_if_verb = 999,                  /* if_verb  */
!   YYSYMBOL_if_test = 1000,                 /* if_test  */
!   YYSYMBOL_if_body = 1001,                 /* if_body  */
!   YYSYMBOL_1002_16 = 1002,                 /* $@16  */
!   YYSYMBOL_next_statements = 1003,         /* next_statements  */
!   YYSYMBOL_end_if = 1004,                  /* end_if  */
!   YYSYMBOL_evaluate = 1005,                /* evaluate  */
!   YYSYMBOL_eval_verb = 1006,               /* eval_verb  */
!   YYSYMBOL_eval_subjects = 1007,           /* eval_subjects  */
!   YYSYMBOL_eval_subject = 1008,            /* eval_subject  */
!   YYSYMBOL_eval_subject1 = 1009,           /* eval_subject1  */
!   YYSYMBOL_eval_switch = 1010,             /* eval_switch  */
!   YYSYMBOL_1011_17 = 1011,                 /* $@17  */
!   YYSYMBOL_eval_cases = 1012,              /* eval_cases  */
!   YYSYMBOL_eval_case = 1013,               /* eval_case  */
!   YYSYMBOL_eval_objects = 1014,            /* eval_objects  */
!   YYSYMBOL_eval_whens = 1015,              /* eval_whens  */
!   YYSYMBOL_eval_when = 1016,               /* eval_when  */
!   YYSYMBOL_1017_18 = 1017,                 /* $@18  */
!   YYSYMBOL_eval_obj_cols = 1018,           /* eval_obj_cols  */
!   YYSYMBOL_eval_obj_col = 1019,            /* eval_obj_col  */
!   YYSYMBOL_eval_posneg = 1020,             /* eval_posneg  */
!   YYSYMBOL_eval_abbrs = 1021,              /* eval_abbrs  */
!   YYSYMBOL_eval_abbr = 1022,               /* eval_abbr  */
!   YYSYMBOL_end_evaluate = 1023,            /* end_evaluate  */
!   YYSYMBOL_true_false = 1024,              /* true_false  */
!   YYSYMBOL_scalar = 1025,                  /* scalar  */
!   YYSYMBOL_tableref = 1026,                /* tableref  */
!   YYSYMBOL_tableish = 1027,                /* tableish  */
!   YYSYMBOL_refmod = 1028,                  /* refmod  */
!   YYSYMBOL_typename = 1029,                /* typename  */
!   YYSYMBOL_name = 1030,                    /* name  */
!   YYSYMBOL_qname = 1031,                   /* qname  */
!   YYSYMBOL_inof = 1032,                    /* inof  */
!   YYSYMBOL_ctx_name = 1033,                /* ctx_name  */
!   YYSYMBOL_context_word = 1034,            /* context_word  */
!   YYSYMBOL_move = 1035,                    /* move  */
!   YYSYMBOL_move_tgts = 1036,               /* move_tgts  */
!   YYSYMBOL_move_tgt = 1037,                /* move_tgt  */
!   YYSYMBOL_multiply = 1038,                /* multiply  */
!   YYSYMBOL_multiply_impl = 1039,           /* multiply_impl  */
!   YYSYMBOL_multiply_cond = 1040,           /* multiply_cond  */
!   YYSYMBOL_end_multiply = 1041,            /* end_multiply  */
!   YYSYMBOL_multiply_body = 1042,           /* multiply_body  */
!   YYSYMBOL_arith_errs = 1043,              /* arith_errs  */
!   YYSYMBOL_arith_err = 1044,               /* arith_err  */
!   YYSYMBOL_relop = 1045,                   /* relop  */
!   YYSYMBOL_rnames = 1046,                  /* rnames  */
!   YYSYMBOL_sum = 1047,                     /* sum  */
!   YYSYMBOL_num_operand = 1048,             /* num_operand  */
!   YYSYMBOL_num_value = 1049,               /* num_value  */
!   YYSYMBOL_cce_expr = 1050,                /* cce_expr  */
!   YYSYMBOL_cce_factor = 1051,              /* cce_factor  */
!   YYSYMBOL_section_name = 1052,            /* section_name  */
!   YYSYMBOL_1053_19 = 1053,                 /* @19  */
!   YYSYMBOL_section_kw = 1054,              /* section_kw  */
!   YYSYMBOL_stop = 1055,                    /* stop  */
!   YYSYMBOL_stop_status = 1056,             /* stop_status  */
!   YYSYMBOL_subscripts = 1057,              /* subscripts  */
!   YYSYMBOL_subscript_exprs = 1058,         /* subscript_exprs  */
!   YYSYMBOL_arg_list = 1059,                /* arg_list  */
!   YYSYMBOL_any_arg = 1060,                 /* any_arg  */
!   YYSYMBOL_signed_literal = 1061,          /* signed_literal  */
!   YYSYMBOL_num_literal = 1062,             /* num_literal  */
!   YYSYMBOL_open = 1063,                    /* open  */
!   YYSYMBOL_1064_20 = 1064,                 /* $@20  */
!   YYSYMBOL_open_files = 1065,              /* open_files  */
!   YYSYMBOL_open_file = 1066,               /* open_file  */
!   YYSYMBOL_open_io = 1067,                 /* open_io  */
!   YYSYMBOL_close = 1068,                   /* close  */
!   YYSYMBOL_1069_21 = 1069,                 /* $@21  */
!   YYSYMBOL_close_files = 1070,             /* close_files  */
!   YYSYMBOL_close_file = 1071,              /* close_file  */
!   YYSYMBOL_close_how = 1072,               /* close_how  */
!   YYSYMBOL_reel_unit = 1073,               /* reel_unit  */
!   YYSYMBOL_for_kw = 1074,                  /* for_kw  */
!   YYSYMBOL_perform = 1075,                 /* perform  */
!   YYSYMBOL_perform_stmts = 1076,           /* perform_stmts  */
!   YYSYMBOL_perform_proc = 1077,            /* perform_proc  */
!   YYSYMBOL_perform_names = 1078,           /* perform_names  */
!   YYSYMBOL_perform_times = 1079,           /* perform_times  */
!   YYSYMBOL_perform_vary = 1080,            /* perform_vary  */
!   YYSYMBOL_perform_verb = 1081,            /* perform_verb  */
!   YYSYMBOL_perform_until = 1082,           /* perform_until  */
!   YYSYMBOL_perform_cond = 1083,            /* perform_cond  */
!   YYSYMBOL_1084_22 = 1084,                 /* $@22  */
!   YYSYMBOL_perform_inline = 1085,          /* perform_inline  */
!   YYSYMBOL_perform_start = 1086,           /* perform_start  */
!   YYSYMBOL_perform_except = 1087,          /* perform_except  */
!   YYSYMBOL_1088_23 = 1088,                 /* $@23  */
!   YYSYMBOL_1089_24 = 1089,                 /* $@24  */
!   YYSYMBOL_perform_when = 1090,            /* perform_when  */
!   YYSYMBOL_perform_when1 = 1091,           /* perform_when1  */
!   YYSYMBOL_1092_25 = 1092,                 /* $@25  */
!   YYSYMBOL_perform_ec = 1093,              /* perform_ec  */
!   YYSYMBOL_except_names = 1094,            /* except_names  */
!   YYSYMBOL_except_name = 1095,             /* except_name  */
!   YYSYMBOL_except_files = 1096,            /* except_files  */
!   YYSYMBOL_perform_ec_other = 1097,        /* perform_ec_other  */
!   YYSYMBOL_1098_26 = 1098,                 /* $@26  */
!   YYSYMBOL_perform_ec_common = 1099,       /* perform_ec_common  */
!   YYSYMBOL_1100_27 = 1100,                 /* $@27  */
!   YYSYMBOL_perform_ec_finally = 1101,      /* perform_ec_finally  */
!   YYSYMBOL_1102_28 = 1102,                 /* $@28  */
!   YYSYMBOL_test_before = 1103,             /* test_before  */
!   YYSYMBOL_varying = 1104,                 /* varying  */
!   YYSYMBOL_vary_afters = 1105,             /* vary_afters  */
!   YYSYMBOL_vary_after = 1106,              /* vary_after  */
!   YYSYMBOL_vary_by = 1107,                 /* vary_by  */
!   YYSYMBOL_reserved_value = 1108,          /* reserved_value  */
!   YYSYMBOL_spaces_etc = 1109,              /* spaces_etc  */
!   YYSYMBOL_variable_type = 1110,           /* variable_type  */
!   YYSYMBOL_subtract = 1111,                /* subtract  */
!   YYSYMBOL_subtract_impl = 1112,           /* subtract_impl  */
!   YYSYMBOL_subtract_cond = 1113,           /* subtract_cond  */
!   YYSYMBOL_end_subtract = 1114,            /* end_subtract  */
!   YYSYMBOL_subtract_body = 1115,           /* subtract_body  */
!   YYSYMBOL_vargs = 1116,                   /* vargs  */
!   YYSYMBOL_varg = 1117,                    /* varg  */
!   YYSYMBOL_varg1 = 1118,                   /* varg1  */
!   YYSYMBOL_varg1a = 1119,                  /* varg1a  */
!   YYSYMBOL_binary_type = 1120,             /* binary_type  */
!   YYSYMBOL_literal = 1121,                 /* literal  */
!   YYSYMBOL_raise = 1122,                   /* raise  */
!   YYSYMBOL_read = 1123,                    /* read  */
!   YYSYMBOL_read_file = 1124,               /* read_file  */
!   YYSYMBOL_read_body = 1125,               /* read_body  */
!   YYSYMBOL_read_next = 1126,               /* read_next  */
!   YYSYMBOL_read_into = 1127,               /* read_into  */
!   YYSYMBOL_read_eofs = 1128,               /* read_eofs  */
!   YYSYMBOL_read_eof = 1129,                /* read_eof  */
!   YYSYMBOL_1130_29 = 1130,                 /* $@29  */
!   YYSYMBOL_write_eops = 1131,              /* write_eops  */
!   YYSYMBOL_write_eop = 1132,               /* write_eop  */
!   YYSYMBOL_1133_30 = 1133,                 /* $@30  */
!   YYSYMBOL_read_key = 1134,                /* read_key  */
!   YYSYMBOL_write = 1135,                   /* write  */
!   YYSYMBOL_write_file = 1136,              /* write_file  */
!   YYSYMBOL_write_body = 1137,              /* write_body  */
!   YYSYMBOL_write_what = 1138,              /* write_what  */
!   YYSYMBOL_file_record = 1139,             /* file_record  */
!   YYSYMBOL_advance_when = 1140,            /* advance_when  */
!   YYSYMBOL_advancing = 1141,               /* advancing  */
!   YYSYMBOL_advance_by = 1142,              /* advance_by  */
!   YYSYMBOL_io_invalids = 1143,             /* io_invalids  */
!   YYSYMBOL_io_invalid = 1144,              /* io_invalid  */
!   YYSYMBOL_1145_31 = 1145,                 /* $@31  */
!   YYSYMBOL_delete = 1146,                  /* delete  */
!   YYSYMBOL_delete_impl = 1147,             /* delete_impl  */
!   YYSYMBOL_delete_cond = 1148,             /* delete_cond  */
!   YYSYMBOL_delete_body = 1149,             /* delete_body  */
!   YYSYMBOL_end_delete = 1150,              /* end_delete  */
!   YYSYMBOL_rewrite = 1151,                 /* rewrite  */
!   YYSYMBOL_rewrite1 = 1152,                /* rewrite1  */
!   YYSYMBOL_rewrite_body = 1153,            /* rewrite_body  */
!   YYSYMBOL_end_rewrite = 1154,             /* end_rewrite  */
!   YYSYMBOL_start = 1155,                   /* start  */
!   YYSYMBOL_start_impl = 1156,              /* start_impl  */
!   YYSYMBOL_start_cond = 1157,              /* start_cond  */
!   YYSYMBOL_end_start = 1158,               /* end_start  */
!   YYSYMBOL_start_body = 1159,              /* start_body  */
!   YYSYMBOL_merge = 1160,                   /* merge  */
!   YYSYMBOL_1161_32 = 1161,                 /* $@32  */
!   YYSYMBOL_set_tgts = 1162,                /* set_tgts  */
!   YYSYMBOL_set_operand = 1163,             /* set_operand  */
!   YYSYMBOL_set_tgt = 1164,                 /* set_tgt  */
!   YYSYMBOL_set = 1165,                     /* set  */
!   YYSYMBOL_1166_33 = 1166,                 /* $@33  */
!   YYSYMBOL_many_switches = 1167,           /* many_switches  */
!   YYSYMBOL_set_switches = 1168,            /* set_switches  */
!   YYSYMBOL_switches = 1169,                /* switches  */
!   YYSYMBOL_one_switch = 1170,              /* one_switch  */
!   YYSYMBOL_on_off = 1171,                  /* on_off  */
!   YYSYMBOL_search = 1172,                  /* search  */
!   YYSYMBOL_search_linear = 1173,           /* search_linear  */
!   YYSYMBOL_end_search = 1174,              /* end_search  */
!   YYSYMBOL_search_1_place = 1175,          /* search_1_place  */
!   YYSYMBOL_search_1_body = 1176,           /* search_1_body  */
!   YYSYMBOL_search_varying = 1177,          /* search_varying  */
!   YYSYMBOL_search_1_cases = 1178,          /* search_1_cases  */
!   YYSYMBOL_search_1_case = 1179,           /* search_1_case  */
!   YYSYMBOL_search_1_when = 1180,           /* search_1_when  */
!   YYSYMBOL_search_1_test = 1181,           /* search_1_test  */
!   YYSYMBOL_search_binary = 1182,           /* search_binary  */
!   YYSYMBOL_search_2_body = 1183,           /* search_2_body  */
!   YYSYMBOL_search_2_cases = 1184,          /* search_2_cases  */
!   YYSYMBOL_search_2_case = 1185,           /* search_2_case  */
!   YYSYMBOL_1186_34 = 1186,                 /* $@34  */
!   YYSYMBOL_search_stmts = 1187,            /* search_stmts  */
!   YYSYMBOL_search_terms = 1188,            /* search_terms  */
!   YYSYMBOL_search_term = 1189,             /* search_term  */
!   YYSYMBOL_search_expr = 1190,             /* search_expr  */
!   YYSYMBOL_sort = 1191,                    /* sort  */
!   YYSYMBOL_sort_table = 1192,              /* sort_table  */
!   YYSYMBOL_sort_file = 1193,               /* sort_file  */
!   YYSYMBOL_sort_keys = 1194,               /* sort_keys  */
!   YYSYMBOL_sort_key = 1195,                /* sort_key  */
!   YYSYMBOL_forward_order = 1196,           /* forward_order  */
!   YYSYMBOL_field_list = 1197,              /* field_list  */
!   YYSYMBOL_sort_dup = 1198,                /* sort_dup  */
!   YYSYMBOL_sort_seq = 1199,                /* sort_seq  */
!   YYSYMBOL_sort_input = 1200,              /* sort_input  */
!   YYSYMBOL_sort_output = 1201,             /* sort_output  */
!   YYSYMBOL_sort_target = 1202,             /* sort_target  */
!   YYSYMBOL_release = 1203,                 /* release  */
!   YYSYMBOL_return_stmt = 1204,             /* return_stmt  */
!   YYSYMBOL_return_impl = 1205,             /* return_impl  */
!   YYSYMBOL_return_cond = 1206,             /* return_cond  */
!   YYSYMBOL_return_end = 1207,              /* return_end  */
!   YYSYMBOL_return_body = 1208,             /* return_body  */
!   YYSYMBOL_return_file = 1209,             /* return_file  */
!   YYSYMBOL_return_outputs = 1210,          /* return_outputs  */
!   YYSYMBOL_return_output = 1211,           /* return_output  */
!   YYSYMBOL_output_atend = 1212,            /* output_atend  */
!   YYSYMBOL_filenames = 1213,               /* filenames  */
!   YYSYMBOL_filename = 1214,                /* filename  */
!   YYSYMBOL_label_name = 1215,              /* label_name  */
!   YYSYMBOL_inspected = 1216,               /* inspected  */
!   YYSYMBOL_backward = 1217,                /* backward  */
!   YYSYMBOL_inspect = 1218,                 /* inspect  */
!   YYSYMBOL_tallies = 1219,                 /* tallies  */
!   YYSYMBOL_1220_35 = 1220,                 /* $@35  */
!   YYSYMBOL_1221_36 = 1221,                 /* $@36  */
!   YYSYMBOL_tally = 1222,                   /* tally  */
!   YYSYMBOL_tally_fors = 1223,              /* tally_fors  */
!   YYSYMBOL_tally_forth = 1224,             /* tally_forth  */
!   YYSYMBOL_tally_matches = 1225,           /* tally_matches  */
!   YYSYMBOL_tally_match = 1226,             /* tally_match  */
!   YYSYMBOL_numeref = 1227,                 /* numeref  */
!   YYSYMBOL_nume = 1228,                    /* nume  */
!   YYSYMBOL_qnume = 1229,                   /* qnume  */
!   YYSYMBOL_replacements = 1230,            /* replacements  */
!   YYSYMBOL_replacement = 1231,             /* replacement  */
!   YYSYMBOL_replace_oper = 1232,            /* replace_oper  */
!   YYSYMBOL_x_by_ys = 1233,                 /* x_by_ys  */
!   YYSYMBOL_x_by_y = 1234,                  /* x_by_y  */
!   YYSYMBOL_insp_mtqual = 1235,             /* insp_mtqual  */
!   YYSYMBOL_insp_quals = 1236,              /* insp_quals  */
!   YYSYMBOL_insp_qual = 1237,               /* insp_qual  */
!   YYSYMBOL_first_leading = 1238,           /* first_leading  */
!   YYSYMBOL_alphaval = 1239,                /* alphaval  */
!   YYSYMBOL_befter = 1240,                  /* befter  */
!   YYSYMBOL_initialize = 1241,              /* initialize  */
!   YYSYMBOL_init_clause = 1242,             /* init_clause  */
!   YYSYMBOL_init_value = 1243,              /* init_value  */
!   YYSYMBOL_init_categora = 1244,           /* init_categora  */
!   YYSYMBOL_init_category = 1245,           /* init_category  */
!   YYSYMBOL_init_replace = 1246,            /* init_replace  */
!   YYSYMBOL_init_bys = 1247,                /* init_bys  */
!   YYSYMBOL_init_by = 1248,                 /* init_by  */
!   YYSYMBOL_init_data = 1249,               /* init_data  */
!   YYSYMBOL_call = 1250,                    /* call  */
!   YYSYMBOL_call_impl = 1251,               /* call_impl  */
!   YYSYMBOL_call_cond = 1252,               /* call_cond  */
!   YYSYMBOL_end_call = 1253,                /* end_call  */
!   YYSYMBOL_call_body = 1254,               /* call_body  */
!   YYSYMBOL_call_returning = 1255,          /* call_returning  */
!   YYSYMBOL_entry = 1256,                   /* entry  */
!   YYSYMBOL_ffi_name = 1257,                /* ffi_name  */
!   YYSYMBOL_parameters = 1258,              /* parameters  */
!   YYSYMBOL_parameter = 1259,               /* parameter  */
!   YYSYMBOL_ffi_by_ref = 1260,              /* ffi_by_ref  */
!   YYSYMBOL_ffi_by_con = 1261,              /* ffi_by_con  */
!   YYSYMBOL_ffi_by_val = 1262,              /* ffi_by_val  */
!   YYSYMBOL_scalar_arg = 1263,              /* scalar_arg  */
!   YYSYMBOL_call_excepts = 1264,            /* call_excepts  */
!   YYSYMBOL_call_except = 1265,             /* call_except  */
!   YYSYMBOL_cancel = 1266,                  /* cancel  */
!   YYSYMBOL_ffi_names = 1267,               /* ffi_names  */
!   YYSYMBOL_alter = 1268,                   /* alter  */
!   YYSYMBOL_1269_37 = 1269,                 /* $@37  */
!   YYSYMBOL_alter_tgts = 1270,              /* alter_tgts  */
!   YYSYMBOL_alter_tgt = 1271,               /* alter_tgt  */
!   YYSYMBOL_alter_to = 1272,                /* alter_to  */
!   YYSYMBOL_go_to = 1273,                   /* go_to  */
!   YYSYMBOL_resume = 1274,                  /* resume  */
!   YYSYMBOL_labels = 1275,                  /* labels  */
!   YYSYMBOL_label_1 = 1276,                 /* label_1  */
!   YYSYMBOL_string = 1277,                  /* string  */
!   YYSYMBOL_string_impl = 1278,             /* string_impl  */
!   YYSYMBOL_string_cond = 1279,             /* string_cond  */
!   YYSYMBOL_end_string = 1280,              /* end_string  */
!   YYSYMBOL_string_body = 1281,             /* string_body  */
!   YYSYMBOL_str_delimiteds = 1282,          /* str_delimiteds  */
!   YYSYMBOL_str_delimited = 1283,           /* str_delimited  */
!   YYSYMBOL_str_input = 1284,               /* str_input  */
!   YYSYMBOL_str_size = 1285,                /* str_size  */
!   YYSYMBOL_str_into = 1286,                /* str_into  */
!   YYSYMBOL_on_overflows = 1287,            /* on_overflows  */
!   YYSYMBOL_on_overflow = 1288,             /* on_overflow  */
!   YYSYMBOL_unstring = 1289,                /* unstring  */
!   YYSYMBOL_end_unstring = 1290,            /* end_unstring  */
!   YYSYMBOL_unstring_impl = 1291,           /* unstring_impl  */
!   YYSYMBOL_unstring_cond = 1292,           /* unstring_cond  */
!   YYSYMBOL_unstring_body = 1293,           /* unstring_body  */
!   YYSYMBOL_unstring_src = 1294,            /* unstring_src  */
!   YYSYMBOL_uns_delimited = 1295,           /* uns_delimited  */
!   YYSYMBOL_uns_delimiters = 1296,          /* uns_delimiters  */
!   YYSYMBOL_uns_delimiter = 1297,           /* uns_delimiter  */
!   YYSYMBOL_uns_into = 1298,                /* uns_into  */
!   YYSYMBOL_uns_tgts = 1299,                /* uns_tgts  */
!   YYSYMBOL_uns_tgt = 1300,                 /* uns_tgt  */
!   YYSYMBOL_intrinsic_call = 1301,          /* intrinsic_call  */
!   YYSYMBOL_function = 1302,                /* function  */
!   YYSYMBOL_function_udf = 1303,            /* function_udf  */
!   YYSYMBOL_intrinsic = 1304,               /* intrinsic  */
!   YYSYMBOL_module_type = 1305,             /* module_type  */
!   YYSYMBOL_convert_src = 1306,             /* convert_src  */
!   YYSYMBOL_convert_dst = 1307,             /* convert_dst  */
!   YYSYMBOL_convert_fmt = 1308,             /* convert_fmt  */
!   YYSYMBOL_numval_locale = 1309,           /* numval_locale  */
!   YYSYMBOL_subst_inputs = 1310,            /* subst_inputs  */
!   YYSYMBOL_subst_input = 1311,             /* subst_input  */
!   YYSYMBOL_intrinsic_locale = 1312,        /* intrinsic_locale  */
!   YYSYMBOL_lopper_case = 1313,             /* lopper_case  */
!   YYSYMBOL_trim_trailing = 1314,           /* trim_trailing  */
!   YYSYMBOL_intrinsic0 = 1315,              /* intrinsic0  */
!   YYSYMBOL_intrinsic_I = 1316,             /* intrinsic_I  */
!   YYSYMBOL_intrinsic_I2 = 1317,            /* intrinsic_I2  */
!   YYSYMBOL_intrinsic_N = 1318,             /* intrinsic_N  */
!   YYSYMBOL_intrinsic_N2 = 1319,            /* intrinsic_N2  */
!   YYSYMBOL_intrinsic_X = 1320,             /* intrinsic_X  */
!   YYSYMBOL_intrinsic_X2 = 1321,            /* intrinsic_X2  */
!   YYSYMBOL_intrinsic_v = 1322,             /* intrinsic_v  */
!   YYSYMBOL_all = 1323,                     /* all  */
!   YYSYMBOL_anycase = 1324,                 /* anycase  */
!   YYSYMBOL_as = 1325,                      /* as  */
!   YYSYMBOL_at = 1326,                      /* at  */
!   YYSYMBOL_by = 1327,                      /* by  */
!   YYSYMBOL_characters = 1328,              /* characters  */
!   YYSYMBOL_collating = 1329,               /* collating  */
!   YYSYMBOL_contains = 1330,                /* contains  */
!   YYSYMBOL_in = 1331,                      /* in  */
!   YYSYMBOL_data = 1332,                    /* data  */
!   YYSYMBOL_exception = 1333,               /* exception  */
!   YYSYMBOL_file = 1334,                    /* file  */
!   YYSYMBOL_first_last = 1335,              /* first_last  */
!   YYSYMBOL_is_global = 1336,               /* is_global  */
!   YYSYMBOL_global = 1337,                  /* global  */
!   YYSYMBOL_initial = 1338,                 /* initial  */
!   YYSYMBOL_is = 1339,                      /* is  */
!   YYSYMBOL_key = 1340,                     /* key  */
!   YYSYMBOL_last = 1341,                    /* last  */
!   YYSYMBOL_lines = 1342,                   /* lines  */
!   YYSYMBOL_mode = 1343,                    /* mode  */
!   YYSYMBOL_native = 1344,                  /* native  */
!   YYSYMBOL_of = 1345,                      /* of  */
!   YYSYMBOL_on = 1346,                      /* on  */
!   YYSYMBOL_optional = 1347,                /* optional  */
!   YYSYMBOL_program_kw = 1348,              /* program_kw  */
!   YYSYMBOL_order = 1349,                   /* order  */
!   YYSYMBOL_record = 1350,                  /* record  */
!   YYSYMBOL_sign = 1351,                    /* sign  */
!   YYSYMBOL_is_signed = 1352,               /* is_signed  */
!   YYSYMBOL_start_after = 1353,             /* start_after  */
!   YYSYMBOL_status = 1354,                  /* status  */
!   YYSYMBOL_strong = 1355,                  /* strong  */
!   YYSYMBOL_times = 1356,                   /* times  */
!   YYSYMBOL_then = 1357,                    /* then  */
!   YYSYMBOL_to = 1358,                      /* to  */
!   YYSYMBOL_usage = 1359,                   /* usage  */
!   YYSYMBOL_with = 1360,                    /* with  */
!   YYSYMBOL_cdf = 1361,                     /* cdf  */
!   YYSYMBOL_cdf_library = 1362,             /* cdf_library  */
!   YYSYMBOL_cdf_basis = 1363,               /* cdf_basis  */
!   YYSYMBOL_cdf_use = 1364,                 /* cdf_use  */
!   YYSYMBOL_cdf_use_when = 1365,            /* cdf_use_when  */
!   YYSYMBOL_cdf_use_excepts = 1366,         /* cdf_use_excepts  */
!   YYSYMBOL_cdf_use_except = 1367,          /* cdf_use_except  */
!   YYSYMBOL_cdf_use_files = 1368,           /* cdf_use_files  */
!   YYSYMBOL_io_mode = 1369,                 /* io_mode  */
!   YYSYMBOL_globally = 1370,                /* globally  */
!   YYSYMBOL_mistake = 1371,                 /* mistake  */
!   YYSYMBOL_procedure = 1372,               /* procedure  */
!   YYSYMBOL_cdf_listing = 1373,             /* cdf_listing  */
!   YYSYMBOL_star_cbl_opts = 1374,           /* star_cbl_opts  */
!   YYSYMBOL_star_cbl_opt = 1375,            /* star_cbl_opt  */
!   YYSYMBOL_cdf_option = 1376,              /* cdf_option  */
!   YYSYMBOL_cbl_options = 1377,             /* cbl_options  */
!   YYSYMBOL_cbl_option = 1378,              /* cbl_option  */
!   YYSYMBOL_cdf_none = 1379                 /* cdf_none  */
  };
  typedef enum yysymbol_kind_t yysymbol_kind_t;
  
  
  /* Second part of user prologue.  */
! #line 1288 "parse.y"
  
    static cbl_field_type_t
    set_operand_type(const cbl_refer_t& refer) {
--- 782,1577 ----
    YYSYMBOL_UNSIGNED_kw = 660,              /* UNSIGNED_kw  */
    YYSYMBOL_UTF_16 = 661,                   /* "UTF-16"  */
    YYSYMBOL_UTF_8 = 662,                    /* "UTF-8"  */
!   YYSYMBOL_XMLGENERATE = 663,              /* "XML GENERATE"  */
!   YYSYMBOL_XMLPARSE = 664,                 /* "XML PARSE"  */
!   YYSYMBOL_ADDRESS = 665,                  /* ADDRESS  */
!   YYSYMBOL_END_ACCEPT = 666,               /* "END-ACCEPT"  */
!   YYSYMBOL_END_ADD = 667,                  /* "END-ADD"  */
!   YYSYMBOL_END_CALL = 668,                 /* "END-CALL"  */
!   YYSYMBOL_END_COMPUTE = 669,              /* "END-COMPUTE"  */
!   YYSYMBOL_END_DELETE = 670,               /* "END-DELETE"  */
!   YYSYMBOL_END_DISPLAY = 671,              /* "END-DISPLAY"  */
!   YYSYMBOL_END_DIVIDE = 672,               /* "END-DIVIDE"  */
!   YYSYMBOL_END_EVALUATE = 673,             /* "END-EVALUATE"  */
!   YYSYMBOL_END_MULTIPLY = 674,             /* "END-MULTIPLY"  */
!   YYSYMBOL_END_PERFORM = 675,              /* "END-PERFORM"  */
!   YYSYMBOL_END_READ = 676,                 /* "END-READ"  */
!   YYSYMBOL_END_RETURN = 677,               /* "END-RETURN"  */
!   YYSYMBOL_END_REWRITE = 678,              /* "END-REWRITE"  */
!   YYSYMBOL_END_SEARCH = 679,               /* "END-SEARCH"  */
!   YYSYMBOL_END_START = 680,                /* "END-START"  */
!   YYSYMBOL_END_STRING = 681,               /* "END-STRING"  */
!   YYSYMBOL_END_SUBTRACT = 682,             /* "END-SUBTRACT"  */
!   YYSYMBOL_END_UNSTRING = 683,             /* "END-UNSTRING"  */
!   YYSYMBOL_END_WRITE = 684,                /* "END-WRITE"  */
!   YYSYMBOL_END_XML = 685,                  /* "END-XML"  */
!   YYSYMBOL_END_IF = 686,                   /* "END-IF"  */
!   YYSYMBOL_ATTRIBUTES = 687,               /* ATTRIBUTES  */
!   YYSYMBOL_ELEMENT = 688,                  /* ELEMENT  */
!   YYSYMBOL_NAMESPACE = 689,                /* NAMESPACE  */
!   YYSYMBOL_NAMESPACE_PREFIX = 690,         /* NAMESPACE_PREFIX  */
!   YYSYMBOL_691_NAMESPACE_PREFIX_ = 691,    /* "NAMESPACE-PREFIX"  */
!   YYSYMBOL_NONNUMERIC = 692,               /* NONNUMERIC  */
!   YYSYMBOL_XML_DECLARATION = 693,          /* XML_DECLARATION  */
!   YYSYMBOL_694_XML_DECLARATION_ = 694,     /* "XML-DECLARATION"  */
!   YYSYMBOL_THRU = 695,                     /* THRU  */
!   YYSYMBOL_OR = 696,                       /* OR  */
!   YYSYMBOL_AND = 697,                      /* AND  */
!   YYSYMBOL_NOT = 698,                      /* NOT  */
!   YYSYMBOL_699_ = 699,                     /* '<'  */
!   YYSYMBOL_700_ = 700,                     /* '>'  */
!   YYSYMBOL_NE = 701,                       /* NE  */
!   YYSYMBOL_LE = 702,                       /* LE  */
!   YYSYMBOL_GE = 703,                       /* GE  */
!   YYSYMBOL_704_ = 704,                     /* '-'  */
!   YYSYMBOL_705_ = 705,                     /* '+'  */
!   YYSYMBOL_706_ = 706,                     /* '*'  */
!   YYSYMBOL_707_ = 707,                     /* '/'  */
!   YYSYMBOL_POW = 708,                      /* POW  */
!   YYSYMBOL_NEG = 709,                      /* NEG  */
!   YYSYMBOL_710_ = 710,                     /* '.'  */
!   YYSYMBOL_711_ = 711,                     /* '&'  */
!   YYSYMBOL_712_S_ = 712,                   /* 'S'  */
!   YYSYMBOL_713_ = 713,                     /* '('  */
!   YYSYMBOL_714_ = 714,                     /* ')'  */
!   YYSYMBOL_715_ = 715,                     /* ':'  */
!   YYSYMBOL_YYACCEPT = 716,                 /* $accept  */
!   YYSYMBOL_top = 717,                      /* top  */
!   YYSYMBOL_programs = 718,                 /* programs  */
!   YYSYMBOL_program = 719,                  /* program  */
!   YYSYMBOL_720_1 = 720,                    /* $@1  */
!   YYSYMBOL_id_div = 721,                   /* id_div  */
!   YYSYMBOL_cdf_words = 722,                /* cdf_words  */
!   YYSYMBOL_cobol_words = 723,              /* cobol_words  */
!   YYSYMBOL_cobol_words1 = 724,             /* cobol_words1  */
!   YYSYMBOL_program_id = 725,               /* program_id  */
!   YYSYMBOL_dot = 726,                      /* dot  */
!   YYSYMBOL_program_as = 727,               /* program_as  */
!   YYSYMBOL_function_id = 728,              /* function_id  */
!   YYSYMBOL_options_para = 729,             /* options_para  */
!   YYSYMBOL_opt_clauses = 730,              /* opt_clauses  */
!   YYSYMBOL_opt_clause = 731,               /* opt_clause  */
!   YYSYMBOL_opt_arith = 732,                /* opt_arith  */
!   YYSYMBOL_opt_arith_type = 733,           /* opt_arith_type  */
!   YYSYMBOL_opt_round = 734,                /* opt_round  */
!   YYSYMBOL_opt_entry = 735,                /* opt_entry  */
!   YYSYMBOL_opt_binary = 736,               /* opt_binary  */
!   YYSYMBOL_default_kw = 737,               /* default_kw  */
!   YYSYMBOL_opt_decimal = 738,              /* opt_decimal  */
!   YYSYMBOL_opt_intermediate = 739,         /* opt_intermediate  */
!   YYSYMBOL_opt_init = 740,                 /* opt_init  */
!   YYSYMBOL_opt_section = 741,              /* opt_section  */
!   YYSYMBOL_opt_init_sects = 742,           /* opt_init_sects  */
!   YYSYMBOL_opt_init_sect = 743,            /* opt_init_sect  */
!   YYSYMBOL_opt_init_value = 744,           /* opt_init_value  */
!   YYSYMBOL_namestr = 745,                  /* namestr  */
!   YYSYMBOL_program_attrs = 746,            /* program_attrs  */
!   YYSYMBOL_comminits = 747,                /* comminits  */
!   YYSYMBOL_comminit = 748,                 /* comminit  */
!   YYSYMBOL_env_div = 749,                  /* env_div  */
!   YYSYMBOL_750_2 = 750,                    /* $@2  */
!   YYSYMBOL_env_sections = 751,             /* env_sections  */
!   YYSYMBOL_env_section = 752,              /* env_section  */
!   YYSYMBOL_io_sections = 753,              /* io_sections  */
!   YYSYMBOL_io_section = 754,               /* io_section  */
!   YYSYMBOL_io_control_clauses = 755,       /* io_control_clauses  */
!   YYSYMBOL_io_control_clause = 756,        /* io_control_clause  */
!   YYSYMBOL_area = 757,                     /* area  */
!   YYSYMBOL_smerge = 758,                   /* smerge  */
!   YYSYMBOL_selects = 759,                  /* selects  */
!   YYSYMBOL_select = 760,                   /* select  */
!   YYSYMBOL_selected_name = 761,            /* selected_name  */
!   YYSYMBOL_external = 762,                 /* external  */
!   YYSYMBOL_select_clauses = 763,           /* select_clauses  */
!   YYSYMBOL_select_clause = 764,            /* select_clause  */
!   YYSYMBOL_access_clause = 765,            /* access_clause  */
!   YYSYMBOL_access_mode = 766,              /* access_mode  */
!   YYSYMBOL_alt_key_clause = 767,           /* alt_key_clause  */
!   YYSYMBOL_key_source = 768,               /* key_source  */
!   YYSYMBOL_key_sources = 769,              /* key_sources  */
!   YYSYMBOL_unique_key = 770,               /* unique_key  */
!   YYSYMBOL_assign_clause = 771,            /* assign_clause  */
!   YYSYMBOL_collate_clause = 772,           /* collate_clause  */
!   YYSYMBOL_collate_claus1 = 773,           /* collate_claus1  */
!   YYSYMBOL_status_clause = 774,            /* status_clause  */
!   YYSYMBOL_lock_mode_clause = 775,         /* lock_mode_clause  */
!   YYSYMBOL_lock_how = 776,                 /* lock_how  */
!   YYSYMBOL_lock_mode = 777,                /* lock_mode  */
!   YYSYMBOL_multiple = 778,                 /* multiple  */
!   YYSYMBOL_records = 779,                  /* records  */
!   YYSYMBOL_org_clause = 780,               /* org_clause  */
!   YYSYMBOL_org_is = 781,                   /* org_is  */
!   YYSYMBOL_org_clause1 = 782,              /* org_clause1  */
!   YYSYMBOL_padding_clause = 783,           /* padding_clause  */
!   YYSYMBOL_character = 784,                /* character  */
!   YYSYMBOL_padding_char = 785,             /* padding_char  */
!   YYSYMBOL_record_delim_clause = 786,      /* record_delim_clause  */
!   YYSYMBOL_record_key_clause = 787,        /* record_key_clause  */
!   YYSYMBOL_relative_key_clause = 788,      /* relative_key_clause  */
!   YYSYMBOL_reserve_clause = 789,           /* reserve_clause  */
!   YYSYMBOL_reserve_area = 790,             /* reserve_area  */
!   YYSYMBOL_sharing_clause = 791,           /* sharing_clause  */
!   YYSYMBOL_sharing_who = 792,              /* sharing_who  */
!   YYSYMBOL_other = 793,                    /* other  */
!   YYSYMBOL_config_paragraphs = 794,        /* config_paragraphs  */
!   YYSYMBOL_config_paragraph = 795,         /* config_paragraph  */
!   YYSYMBOL_repo_members = 796,             /* repo_members  */
!   YYSYMBOL_repo_member = 797,              /* repo_member  */
!   YYSYMBOL_repo_class = 798,               /* repo_class  */
!   YYSYMBOL_repo_as = 799,                  /* repo_as  */
!   YYSYMBOL_repo_expands = 800,             /* repo_expands  */
!   YYSYMBOL_repo_interface = 801,           /* repo_interface  */
!   YYSYMBOL_repo_func = 802,                /* repo_func  */
!   YYSYMBOL_repo_func_names = 803,          /* repo_func_names  */
!   YYSYMBOL_repo_func_name = 804,           /* repo_func_name  */
!   YYSYMBOL_repo_program = 805,             /* repo_program  */
!   YYSYMBOL_repo_property = 806,            /* repo_property  */
!   YYSYMBOL_with_debug = 807,               /* with_debug  */
!   YYSYMBOL_object_computer = 808,          /* object_computer  */
!   YYSYMBOL_char_classification = 809,      /* char_classification  */
!   YYSYMBOL_collating_sequence = 810,       /* collating_sequence  */
!   YYSYMBOL_char_class_locales = 811,       /* char_class_locales  */
!   YYSYMBOL_coll_alphanats = 812,           /* coll_alphanats  */
!   YYSYMBOL_coll_alphanat = 813,            /* coll_alphanat  */
!   YYSYMBOL_locale_phrase = 814,            /* locale_phrase  */
!   YYSYMBOL_special_names = 815,            /* special_names  */
!   YYSYMBOL_special_name = 816,             /* special_name  */
!   YYSYMBOL_locale_spec = 817,              /* locale_spec  */
!   YYSYMBOL_symbolic = 818,                 /* symbolic  */
!   YYSYMBOL_is_alphabet = 819,              /* is_alphabet  */
!   YYSYMBOL_dev_mnemonic = 820,             /* dev_mnemonic  */
!   YYSYMBOL_device_name = 821,              /* device_name  */
!   YYSYMBOL_alphabet_name = 822,            /* alphabet_name  */
!   YYSYMBOL_alphabet_seqs = 823,            /* alphabet_seqs  */
!   YYSYMBOL_alphabet_seq = 824,             /* alphabet_seq  */
!   YYSYMBOL_alphabet_etc = 825,             /* alphabet_etc  */
!   YYSYMBOL_alphabet_lit = 826,             /* alphabet_lit  */
!   YYSYMBOL_upsi = 827,                     /* upsi  */
!   YYSYMBOL_upsi_entry = 828,               /* upsi_entry  */
!   YYSYMBOL_picture_sym = 829,              /* picture_sym  */
!   YYSYMBOL_domains = 830,                  /* domains  */
!   YYSYMBOL_domain = 831,                   /* domain  */
!   YYSYMBOL_when_set_to = 832,              /* when_set_to  */
!   YYSYMBOL_data_div = 833,                 /* data_div  */
!   YYSYMBOL_834_3 = 834,                    /* $@3  */
!   YYSYMBOL_data_sections = 835,            /* data_sections  */
!   YYSYMBOL_data_section = 836,             /* data_section  */
!   YYSYMBOL_837_4 = 837,                    /* $@4  */
!   YYSYMBOL_838_5 = 838,                    /* $@5  */
!   YYSYMBOL_839_6 = 839,                    /* $@6  */
!   YYSYMBOL_840_7 = 840,                    /* $@7  */
!   YYSYMBOL_file_descrs = 841,              /* file_descrs  */
!   YYSYMBOL_file_descr = 842,               /* file_descr  */
!   YYSYMBOL_843_8 = 843,                    /* $@8  */
!   YYSYMBOL_844_9 = 844,                    /* $@9  */
!   YYSYMBOL_fd_name = 845,                  /* fd_name  */
!   YYSYMBOL_fd_clauses = 846,               /* fd_clauses  */
!   YYSYMBOL_fd_clause = 847,                /* fd_clause  */
!   YYSYMBOL_alphanational = 848,            /* alphanational  */
!   YYSYMBOL_codeset_name = 849,             /* codeset_name  */
!   YYSYMBOL_block_desc = 850,               /* block_desc  */
!   YYSYMBOL_rec_contains = 851,             /* rec_contains  */
!   YYSYMBOL_chars_recs = 852,               /* chars_recs  */
!   YYSYMBOL_label_desc = 853,               /* label_desc  */
!   YYSYMBOL_record_is = 854,                /* record_is  */
!   YYSYMBOL_fd_values = 855,                /* fd_values  */
!   YYSYMBOL_fd_value = 856,                 /* fd_value  */
!   YYSYMBOL_alpha_val = 857,                /* alpha_val  */
!   YYSYMBOL_fd_labels = 858,                /* fd_labels  */
!   YYSYMBOL_fd_label = 859,                 /* fd_label  */
!   YYSYMBOL_record_desc = 860,              /* record_desc  */
!   YYSYMBOL_record_vary = 861,              /* record_vary  */
!   YYSYMBOL_in_size = 862,                  /* in_size  */
!   YYSYMBOL_from_to = 863,                  /* from_to  */
!   YYSYMBOL_depending = 864,                /* depending  */
!   YYSYMBOL_fd_linage = 865,                /* fd_linage  */
!   YYSYMBOL_with_footings = 866,            /* with_footings  */
!   YYSYMBOL_with_footing = 867,             /* with_footing  */
!   YYSYMBOL_top_bot = 868,                  /* top_bot  */
!   YYSYMBOL_fd_report = 869,                /* fd_report  */
!   YYSYMBOL_fields_maybe = 870,             /* fields_maybe  */
!   YYSYMBOL_fields = 871,                   /* fields  */
!   YYSYMBOL_field = 872,                    /* field  */
!   YYSYMBOL_occurs_clause = 873,            /* occurs_clause  */
!   YYSYMBOL_cardinal_lb = 874,              /* cardinal_lb  */
!   YYSYMBOL_cardinal = 875,                 /* cardinal  */
!   YYSYMBOL_depending_on = 876,             /* depending_on  */
!   YYSYMBOL_bound = 877,                    /* bound  */
!   YYSYMBOL_key_descrs = 878,               /* key_descrs  */
!   YYSYMBOL_key_descr = 879,                /* key_descr  */
!   YYSYMBOL_ordering = 880,                 /* ordering  */
!   YYSYMBOL_key_fields = 881,               /* key_fields  */
!   YYSYMBOL_key_field1 = 882,               /* key_field1  */
!   YYSYMBOL_indexed = 883,                  /* indexed  */
!   YYSYMBOL_index_fields = 884,             /* index_fields  */
!   YYSYMBOL_index_field1 = 885,             /* index_field1  */
!   YYSYMBOL_level_name = 886,               /* level_name  */
!   YYSYMBOL_data_descr = 887,               /* data_descr  */
!   YYSYMBOL_const_value = 888,              /* const_value  */
!   YYSYMBOL_value78 = 889,                  /* value78  */
!   YYSYMBOL_data_descr1 = 890,              /* data_descr1  */
!   YYSYMBOL_literalism = 891,               /* literalism  */
!   YYSYMBOL_name66 = 892,                   /* name66  */
!   YYSYMBOL_data_clauses = 893,             /* data_clauses  */
!   YYSYMBOL_data_clause = 894,              /* data_clause  */
!   YYSYMBOL_picture_clause = 895,           /* picture_clause  */
!   YYSYMBOL_ones = 896,                     /* ones  */
!   YYSYMBOL_alphanum_pic = 897,             /* alphanum_pic  */
!   YYSYMBOL_alphanum_part = 898,            /* alphanum_part  */
!   YYSYMBOL_signed = 899,                   /* signed  */
!   YYSYMBOL_nps = 900,                      /* nps  */
!   YYSYMBOL_nine = 901,                     /* nine  */
!   YYSYMBOL_nines = 902,                    /* nines  */
!   YYSYMBOL_count = 903,                    /* count  */
!   YYSYMBOL_numed = 904,                    /* numed  */
!   YYSYMBOL_usage_clause = 905,             /* usage_clause  */
!   YYSYMBOL_usage_clause1 = 906,            /* usage_clause1  */
!   YYSYMBOL_value_clause = 907,             /* value_clause  */
!   YYSYMBOL_global_clause = 908,            /* global_clause  */
!   YYSYMBOL_external_clause = 909,          /* external_clause  */
!   YYSYMBOL_justified_clause = 910,         /* justified_clause  */
!   YYSYMBOL_redefines_clause = 911,         /* redefines_clause  */
!   YYSYMBOL_any_length = 912,               /* any_length  */
!   YYSYMBOL_based_clause = 913,             /* based_clause  */
!   YYSYMBOL_blank_zero_clause = 914,        /* blank_zero_clause  */
!   YYSYMBOL_synched_clause = 915,           /* synched_clause  */
!   YYSYMBOL_same_clause = 916,              /* same_clause  */
!   YYSYMBOL_sign_clause = 917,              /* sign_clause  */
!   YYSYMBOL_sign_is = 918,                  /* sign_is  */
!   YYSYMBOL_sign_leading = 919,             /* sign_leading  */
!   YYSYMBOL_sign_separate = 920,            /* sign_separate  */
!   YYSYMBOL_type_clause = 921,              /* type_clause  */
!   YYSYMBOL_typedef_clause = 922,           /* typedef_clause  */
!   YYSYMBOL_volatile_clause = 923,          /* volatile_clause  */
!   YYSYMBOL_procedure_div = 924,            /* procedure_div  */
!   YYSYMBOL_procedure_args = 925,           /* procedure_args  */
!   YYSYMBOL_procedure_uses = 926,           /* procedure_uses  */
!   YYSYMBOL_procedure_use = 927,            /* procedure_use  */
!   YYSYMBOL_by_value_arg = 928,             /* by_value_arg  */
!   YYSYMBOL_declaratives = 929,             /* declaratives  */
!   YYSYMBOL_930_10 = 930,                   /* @10  */
!   YYSYMBOL_sentences = 931,                /* sentences  */
!   YYSYMBOL_paragraph_name = 932,           /* paragraph_name  */
!   YYSYMBOL_sentence = 933,                 /* sentence  */
!   YYSYMBOL_statements = 934,               /* statements  */
!   YYSYMBOL_statement = 935,                /* statement  */
!   YYSYMBOL_accept = 936,                   /* accept  */
!   YYSYMBOL_end_accept = 937,               /* end_accept  */
!   YYSYMBOL_accept_body = 938,              /* accept_body  */
!   YYSYMBOL_accept_refer = 939,             /* accept_refer  */
!   YYSYMBOL_accept_excepts = 940,           /* accept_excepts  */
!   YYSYMBOL_accept_except = 941,            /* accept_except  */
!   YYSYMBOL_envar = 942,                    /* envar  */
!   YYSYMBOL_acceptable = 943,               /* acceptable  */
!   YYSYMBOL_add = 944,                      /* add  */
!   YYSYMBOL_add_impl = 945,                 /* add_impl  */
!   YYSYMBOL_add_cond = 946,                 /* add_cond  */
!   YYSYMBOL_end_add = 947,                  /* end_add  */
!   YYSYMBOL_add_body = 948,                 /* add_body  */
!   YYSYMBOL_rounded = 949,                  /* rounded  */
!   YYSYMBOL_rounded_mode = 950,             /* rounded_mode  */
!   YYSYMBOL_rounded_type = 951,             /* rounded_type  */
!   YYSYMBOL_round_between = 952,            /* round_between  */
!   YYSYMBOL_might_be = 953,                 /* might_be  */
!   YYSYMBOL_posneg = 954,                   /* posneg  */
!   YYSYMBOL_scalar88s = 955,                /* scalar88s  */
!   YYSYMBOL_name88 = 956,                   /* name88  */
!   YYSYMBOL_scalar88 = 957,                 /* scalar88  */
!   YYSYMBOL_allocate = 958,                 /* allocate  */
!   YYSYMBOL_initialized = 959,              /* initialized  */
!   YYSYMBOL_alloc_ret = 960,                /* alloc_ret  */
!   YYSYMBOL_compute = 961,                  /* compute  */
!   YYSYMBOL_compute_impl = 962,             /* compute_impl  */
!   YYSYMBOL_compute_cond = 963,             /* compute_cond  */
!   YYSYMBOL_end_compute = 964,              /* end_compute  */
!   YYSYMBOL_compute_body = 965,             /* compute_body  */
!   YYSYMBOL_966_11 = 966,                   /* $@11  */
!   YYSYMBOL_compute_expr = 967,             /* compute_expr  */
!   YYSYMBOL_968_12 = 968,                   /* $@12  */
!   YYSYMBOL_display = 969,                  /* display  */
!   YYSYMBOL_end_display = 970,              /* end_display  */
!   YYSYMBOL_disp_body = 971,                /* disp_body  */
!   YYSYMBOL_disp_vargs = 972,               /* disp_vargs  */
!   YYSYMBOL_disp_upon = 973,                /* disp_upon  */
!   YYSYMBOL_exhibit_stmt = 974,             /* exhibit_stmt  */
!   YYSYMBOL_exh_changed = 975,              /* exh_changed  */
!   YYSYMBOL_exh_named = 976,                /* exh_named  */
!   YYSYMBOL_divide = 977,                   /* divide  */
!   YYSYMBOL_divide_impl = 978,              /* divide_impl  */
!   YYSYMBOL_divide_cond = 979,              /* divide_cond  */
!   YYSYMBOL_end_divide = 980,               /* end_divide  */
!   YYSYMBOL_divide_body = 981,              /* divide_body  */
!   YYSYMBOL_divide_into = 982,              /* divide_into  */
!   YYSYMBOL_divide_by = 983,                /* divide_by  */
!   YYSYMBOL_end_program = 984,              /* end_program  */
!   YYSYMBOL_end_program1 = 985,             /* end_program1  */
!   YYSYMBOL_continue_stmt = 986,            /* continue_stmt  */
!   YYSYMBOL_exit = 987,                     /* exit  */
!   YYSYMBOL_988_13 = 988,                   /* $@13  */
!   YYSYMBOL_exit_with = 989,                /* exit_with  */
!   YYSYMBOL_exit_what = 990,                /* exit_what  */
!   YYSYMBOL_exit_raising = 991,             /* exit_raising  */
!   YYSYMBOL_free = 992,                     /* free  */
!   YYSYMBOL_free_tgts = 993,                /* free_tgts  */
!   YYSYMBOL_free_tgt = 994,                 /* free_tgt  */
!   YYSYMBOL_simple_cond = 995,              /* simple_cond  */
!   YYSYMBOL_kind_of_name = 996,             /* kind_of_name  */
!   YYSYMBOL_until_expr = 997,               /* until_expr  */
!   YYSYMBOL_bool_expr = 998,                /* bool_expr  */
!   YYSYMBOL_log_expr = 999,                 /* log_expr  */
!   YYSYMBOL_log_term = 1000,                /* log_term  */
!   YYSYMBOL_rel_expr = 1001,                /* rel_expr  */
!   YYSYMBOL_rel_abbrs = 1002,               /* rel_abbrs  */
!   YYSYMBOL_rel_lhs = 1003,                 /* rel_lhs  */
!   YYSYMBOL_rel_abbr = 1004,                /* rel_abbr  */
!   YYSYMBOL_rel_term = 1005,                /* rel_term  */
!   YYSYMBOL_rel_term1 = 1006,               /* rel_term1  */
!   YYSYMBOL_expr = 1007,                    /* expr  */
!   YYSYMBOL_expr_term = 1008,               /* expr_term  */
!   YYSYMBOL_num_term = 1009,                /* num_term  */
!   YYSYMBOL_value = 1010,                   /* value  */
!   YYSYMBOL_factor = 1011,                  /* factor  */
!   YYSYMBOL_if_stmt = 1012,                 /* if_stmt  */
!   YYSYMBOL_if_impl = 1013,                 /* if_impl  */
!   YYSYMBOL_if_verb = 1014,                 /* if_verb  */
!   YYSYMBOL_if_test = 1015,                 /* if_test  */
!   YYSYMBOL_if_body = 1016,                 /* if_body  */
!   YYSYMBOL_1017_14 = 1017,                 /* $@14  */
!   YYSYMBOL_next_statements = 1018,         /* next_statements  */
!   YYSYMBOL_end_if = 1019,                  /* end_if  */
!   YYSYMBOL_evaluate = 1020,                /* evaluate  */
!   YYSYMBOL_eval_verb = 1021,               /* eval_verb  */
!   YYSYMBOL_eval_subjects = 1022,           /* eval_subjects  */
!   YYSYMBOL_eval_subject = 1023,            /* eval_subject  */
!   YYSYMBOL_eval_subject1 = 1024,           /* eval_subject1  */
!   YYSYMBOL_eval_switch = 1025,             /* eval_switch  */
!   YYSYMBOL_1026_15 = 1026,                 /* $@15  */
!   YYSYMBOL_eval_cases = 1027,              /* eval_cases  */
!   YYSYMBOL_eval_case = 1028,               /* eval_case  */
!   YYSYMBOL_eval_objects = 1029,            /* eval_objects  */
!   YYSYMBOL_eval_whens = 1030,              /* eval_whens  */
!   YYSYMBOL_eval_when = 1031,               /* eval_when  */
!   YYSYMBOL_1032_16 = 1032,                 /* $@16  */
!   YYSYMBOL_eval_obj_cols = 1033,           /* eval_obj_cols  */
!   YYSYMBOL_eval_obj_col = 1034,            /* eval_obj_col  */
!   YYSYMBOL_eval_posneg = 1035,             /* eval_posneg  */
!   YYSYMBOL_eval_abbrs = 1036,              /* eval_abbrs  */
!   YYSYMBOL_eval_abbr = 1037,               /* eval_abbr  */
!   YYSYMBOL_end_evaluate = 1038,            /* end_evaluate  */
!   YYSYMBOL_true_false = 1039,              /* true_false  */
!   YYSYMBOL_scalar = 1040,                  /* scalar  */
!   YYSYMBOL_tableref = 1041,                /* tableref  */
!   YYSYMBOL_tableish = 1042,                /* tableish  */
!   YYSYMBOL_refmod = 1043,                  /* refmod  */
!   YYSYMBOL_typename = 1044,                /* typename  */
!   YYSYMBOL_name = 1045,                    /* name  */
!   YYSYMBOL_qname = 1046,                   /* qname  */
!   YYSYMBOL_inof = 1047,                    /* inof  */
!   YYSYMBOL_ctx_name = 1048,                /* ctx_name  */
!   YYSYMBOL_context_word = 1049,            /* context_word  */
!   YYSYMBOL_move = 1050,                    /* move  */
!   YYSYMBOL_move_tgts = 1051,               /* move_tgts  */
!   YYSYMBOL_move_tgt = 1052,                /* move_tgt  */
!   YYSYMBOL_multiply = 1053,                /* multiply  */
!   YYSYMBOL_multiply_impl = 1054,           /* multiply_impl  */
!   YYSYMBOL_multiply_cond = 1055,           /* multiply_cond  */
!   YYSYMBOL_end_multiply = 1056,            /* end_multiply  */
!   YYSYMBOL_multiply_body = 1057,           /* multiply_body  */
!   YYSYMBOL_arith_errs = 1058,              /* arith_errs  */
!   YYSYMBOL_arith_err = 1059,               /* arith_err  */
!   YYSYMBOL_relop = 1060,                   /* relop  */
!   YYSYMBOL_rnames = 1061,                  /* rnames  */
!   YYSYMBOL_sum = 1062,                     /* sum  */
!   YYSYMBOL_num_operand = 1063,             /* num_operand  */
!   YYSYMBOL_num_value = 1064,               /* num_value  */
!   YYSYMBOL_cce_expr = 1065,                /* cce_expr  */
!   YYSYMBOL_cce_factor = 1066,              /* cce_factor  */
!   YYSYMBOL_section_name = 1067,            /* section_name  */
!   YYSYMBOL_1068_17 = 1068,                 /* @17  */
!   YYSYMBOL_section_kw = 1069,              /* section_kw  */
!   YYSYMBOL_stop = 1070,                    /* stop  */
!   YYSYMBOL_stop_status = 1071,             /* stop_status  */
!   YYSYMBOL_subscripts = 1072,              /* subscripts  */
!   YYSYMBOL_subscript_exprs = 1073,         /* subscript_exprs  */
!   YYSYMBOL_arg_list = 1074,                /* arg_list  */
!   YYSYMBOL_any_arg = 1075,                 /* any_arg  */
!   YYSYMBOL_signed_literal = 1076,          /* signed_literal  */
!   YYSYMBOL_num_constant = 1077,            /* num_constant  */
!   YYSYMBOL_num_literal = 1078,             /* num_literal  */
!   YYSYMBOL_open = 1079,                    /* open  */
!   YYSYMBOL_1080_18 = 1080,                 /* $@18  */
!   YYSYMBOL_open_files = 1081,              /* open_files  */
!   YYSYMBOL_open_file = 1082,               /* open_file  */
!   YYSYMBOL_open_io = 1083,                 /* open_io  */
!   YYSYMBOL_close = 1084,                   /* close  */
!   YYSYMBOL_1085_19 = 1085,                 /* $@19  */
!   YYSYMBOL_close_files = 1086,             /* close_files  */
!   YYSYMBOL_close_file = 1087,              /* close_file  */
!   YYSYMBOL_close_how = 1088,               /* close_how  */
!   YYSYMBOL_reel_unit = 1089,               /* reel_unit  */
!   YYSYMBOL_for_kw = 1090,                  /* for_kw  */
!   YYSYMBOL_perform = 1091,                 /* perform  */
!   YYSYMBOL_perform_stmts = 1092,           /* perform_stmts  */
!   YYSYMBOL_perform_proc = 1093,            /* perform_proc  */
!   YYSYMBOL_perform_names = 1094,           /* perform_names  */
!   YYSYMBOL_perform_times = 1095,           /* perform_times  */
!   YYSYMBOL_perform_vary = 1096,            /* perform_vary  */
!   YYSYMBOL_perform_verb = 1097,            /* perform_verb  */
!   YYSYMBOL_perform_until = 1098,           /* perform_until  */
!   YYSYMBOL_perform_cond = 1099,            /* perform_cond  */
!   YYSYMBOL_1100_20 = 1100,                 /* $@20  */
!   YYSYMBOL_perform_inline = 1101,          /* perform_inline  */
!   YYSYMBOL_perform_start = 1102,           /* perform_start  */
!   YYSYMBOL_perform_except = 1103,          /* perform_except  */
!   YYSYMBOL_1104_21 = 1104,                 /* $@21  */
!   YYSYMBOL_1105_22 = 1105,                 /* $@22  */
!   YYSYMBOL_perform_when = 1106,            /* perform_when  */
!   YYSYMBOL_perform_when1 = 1107,           /* perform_when1  */
!   YYSYMBOL_1108_23 = 1108,                 /* $@23  */
!   YYSYMBOL_perform_ec = 1109,              /* perform_ec  */
!   YYSYMBOL_except_names = 1110,            /* except_names  */
!   YYSYMBOL_except_name = 1111,             /* except_name  */
!   YYSYMBOL_except_files = 1112,            /* except_files  */
!   YYSYMBOL_perform_ec_other = 1113,        /* perform_ec_other  */
!   YYSYMBOL_1114_24 = 1114,                 /* $@24  */
!   YYSYMBOL_perform_ec_common = 1115,       /* perform_ec_common  */
!   YYSYMBOL_1116_25 = 1116,                 /* $@25  */
!   YYSYMBOL_perform_ec_finally = 1117,      /* perform_ec_finally  */
!   YYSYMBOL_1118_26 = 1118,                 /* $@26  */
!   YYSYMBOL_test_before = 1119,             /* test_before  */
!   YYSYMBOL_varying = 1120,                 /* varying  */
!   YYSYMBOL_vary_afters = 1121,             /* vary_afters  */
!   YYSYMBOL_vary_after = 1122,              /* vary_after  */
!   YYSYMBOL_vary_by = 1123,                 /* vary_by  */
!   YYSYMBOL_reserved_value = 1124,          /* reserved_value  */
!   YYSYMBOL_spaces_etc = 1125,              /* spaces_etc  */
!   YYSYMBOL_variable_type = 1126,           /* variable_type  */
!   YYSYMBOL_subtract = 1127,                /* subtract  */
!   YYSYMBOL_subtract_impl = 1128,           /* subtract_impl  */
!   YYSYMBOL_subtract_cond = 1129,           /* subtract_cond  */
!   YYSYMBOL_end_subtract = 1130,            /* end_subtract  */
!   YYSYMBOL_subtract_body = 1131,           /* subtract_body  */
!   YYSYMBOL_vargs = 1132,                   /* vargs  */
!   YYSYMBOL_varg = 1133,                    /* varg  */
!   YYSYMBOL_varg1 = 1134,                   /* varg1  */
!   YYSYMBOL_varg1a = 1135,                  /* varg1a  */
!   YYSYMBOL_binary_type = 1136,             /* binary_type  */
!   YYSYMBOL_literal = 1137,                 /* literal  */
!   YYSYMBOL_raise = 1138,                   /* raise  */
!   YYSYMBOL_read = 1139,                    /* read  */
!   YYSYMBOL_read_file = 1140,               /* read_file  */
!   YYSYMBOL_read_body = 1141,               /* read_body  */
!   YYSYMBOL_read_next = 1142,               /* read_next  */
!   YYSYMBOL_read_into = 1143,               /* read_into  */
!   YYSYMBOL_read_eofs = 1144,               /* read_eofs  */
!   YYSYMBOL_read_eof = 1145,                /* read_eof  */
!   YYSYMBOL_1146_27 = 1146,                 /* $@27  */
!   YYSYMBOL_write_eops = 1147,              /* write_eops  */
!   YYSYMBOL_write_eop = 1148,               /* write_eop  */
!   YYSYMBOL_1149_28 = 1149,                 /* $@28  */
!   YYSYMBOL_read_key = 1150,                /* read_key  */
!   YYSYMBOL_write = 1151,                   /* write  */
!   YYSYMBOL_write_file = 1152,              /* write_file  */
!   YYSYMBOL_write_body = 1153,              /* write_body  */
!   YYSYMBOL_write_what = 1154,              /* write_what  */
!   YYSYMBOL_file_record = 1155,             /* file_record  */
!   YYSYMBOL_advance_when = 1156,            /* advance_when  */
!   YYSYMBOL_advancing = 1157,               /* advancing  */
!   YYSYMBOL_advance_by = 1158,              /* advance_by  */
!   YYSYMBOL_io_invalids = 1159,             /* io_invalids  */
!   YYSYMBOL_io_invalid = 1160,              /* io_invalid  */
!   YYSYMBOL_1161_29 = 1161,                 /* $@29  */
!   YYSYMBOL_delete = 1162,                  /* delete  */
!   YYSYMBOL_delete_file = 1163,             /* delete_file  */
!   YYSYMBOL_delete_file_body = 1164,        /* delete_file_body  */
!   YYSYMBOL_retry_phrase = 1165,            /* retry_phrase  */
!   YYSYMBOL_delete_impl = 1166,             /* delete_impl  */
!   YYSYMBOL_delete_cond = 1167,             /* delete_cond  */
!   YYSYMBOL_delete_body = 1168,             /* delete_body  */
!   YYSYMBOL_delete_error = 1169,            /* delete_error  */
!   YYSYMBOL_delete_excepts = 1170,          /* delete_excepts  */
!   YYSYMBOL_delete_except = 1171,           /* delete_except  */
!   YYSYMBOL_end_delete = 1172,              /* end_delete  */
!   YYSYMBOL_rewrite = 1173,                 /* rewrite  */
!   YYSYMBOL_rewrite1 = 1174,                /* rewrite1  */
!   YYSYMBOL_rewrite_body = 1175,            /* rewrite_body  */
!   YYSYMBOL_end_rewrite = 1176,             /* end_rewrite  */
!   YYSYMBOL_start = 1177,                   /* start  */
!   YYSYMBOL_start_impl = 1178,              /* start_impl  */
!   YYSYMBOL_start_cond = 1179,              /* start_cond  */
!   YYSYMBOL_end_start = 1180,               /* end_start  */
!   YYSYMBOL_start_body = 1181,              /* start_body  */
!   YYSYMBOL_merge = 1182,                   /* merge  */
!   YYSYMBOL_1183_30 = 1183,                 /* $@30  */
!   YYSYMBOL_set_tgts = 1184,                /* set_tgts  */
!   YYSYMBOL_set_operand = 1185,             /* set_operand  */
!   YYSYMBOL_set_tgt = 1186,                 /* set_tgt  */
!   YYSYMBOL_set = 1187,                     /* set  */
!   YYSYMBOL_1188_31 = 1188,                 /* $@31  */
!   YYSYMBOL_locale_tgt = 1189,              /* locale_tgt  */
!   YYSYMBOL_loc_categories = 1190,          /* loc_categories  */
!   YYSYMBOL_loc_category = 1191,            /* loc_category  */
!   YYSYMBOL_locale_src = 1192,              /* locale_src  */
!   YYSYMBOL_locale_current = 1193,          /* locale_current  */
!   YYSYMBOL_many_switches = 1194,           /* many_switches  */
!   YYSYMBOL_set_switches = 1195,            /* set_switches  */
!   YYSYMBOL_switches = 1196,                /* switches  */
!   YYSYMBOL_one_switch = 1197,              /* one_switch  */
!   YYSYMBOL_on_off = 1198,                  /* on_off  */
!   YYSYMBOL_search = 1199,                  /* search  */
!   YYSYMBOL_search_linear = 1200,           /* search_linear  */
!   YYSYMBOL_end_search = 1201,              /* end_search  */
!   YYSYMBOL_search_1_place = 1202,          /* search_1_place  */
!   YYSYMBOL_search_1_body = 1203,           /* search_1_body  */
!   YYSYMBOL_search_varying = 1204,          /* search_varying  */
!   YYSYMBOL_search_1_cases = 1205,          /* search_1_cases  */
!   YYSYMBOL_search_1_case = 1206,           /* search_1_case  */
!   YYSYMBOL_search_1_when = 1207,           /* search_1_when  */
!   YYSYMBOL_search_1_test = 1208,           /* search_1_test  */
!   YYSYMBOL_search_binary = 1209,           /* search_binary  */
!   YYSYMBOL_search_2_body = 1210,           /* search_2_body  */
!   YYSYMBOL_search_2_cases = 1211,          /* search_2_cases  */
!   YYSYMBOL_search_2_case = 1212,           /* search_2_case  */
!   YYSYMBOL_1213_32 = 1213,                 /* $@32  */
!   YYSYMBOL_search_stmts = 1214,            /* search_stmts  */
!   YYSYMBOL_search_terms = 1215,            /* search_terms  */
!   YYSYMBOL_search_term = 1216,             /* search_term  */
!   YYSYMBOL_search_expr = 1217,             /* search_expr  */
!   YYSYMBOL_sort = 1218,                    /* sort  */
!   YYSYMBOL_sort_table = 1219,              /* sort_table  */
!   YYSYMBOL_sort_file = 1220,               /* sort_file  */
!   YYSYMBOL_sort_keys = 1221,               /* sort_keys  */
!   YYSYMBOL_sort_key = 1222,                /* sort_key  */
!   YYSYMBOL_forward_order = 1223,           /* forward_order  */
!   YYSYMBOL_field_list = 1224,              /* field_list  */
!   YYSYMBOL_sort_dup = 1225,                /* sort_dup  */
!   YYSYMBOL_sort_seq = 1226,                /* sort_seq  */
!   YYSYMBOL_sort_input = 1227,              /* sort_input  */
!   YYSYMBOL_sort_output = 1228,             /* sort_output  */
!   YYSYMBOL_sort_target = 1229,             /* sort_target  */
!   YYSYMBOL_release = 1230,                 /* release  */
!   YYSYMBOL_return_stmt = 1231,             /* return_stmt  */
!   YYSYMBOL_return_impl = 1232,             /* return_impl  */
!   YYSYMBOL_return_cond = 1233,             /* return_cond  */
!   YYSYMBOL_return_end = 1234,              /* return_end  */
!   YYSYMBOL_return_body = 1235,             /* return_body  */
!   YYSYMBOL_return_file = 1236,             /* return_file  */
!   YYSYMBOL_return_outputs = 1237,          /* return_outputs  */
!   YYSYMBOL_return_output = 1238,           /* return_output  */
!   YYSYMBOL_output_atend = 1239,            /* output_atend  */
!   YYSYMBOL_filenames = 1240,               /* filenames  */
!   YYSYMBOL_filename = 1241,                /* filename  */
!   YYSYMBOL_label_name = 1242,              /* label_name  */
!   YYSYMBOL_inspected = 1243,               /* inspected  */
!   YYSYMBOL_backward = 1244,                /* backward  */
!   YYSYMBOL_inspect = 1245,                 /* inspect  */
!   YYSYMBOL_tallies = 1246,                 /* tallies  */
!   YYSYMBOL_1247_33 = 1247,                 /* $@33  */
!   YYSYMBOL_1248_34 = 1248,                 /* $@34  */
!   YYSYMBOL_tally = 1249,                   /* tally  */
!   YYSYMBOL_tally_fors = 1250,              /* tally_fors  */
!   YYSYMBOL_tally_forth = 1251,             /* tally_forth  */
!   YYSYMBOL_tally_matches = 1252,           /* tally_matches  */
!   YYSYMBOL_tally_match = 1253,             /* tally_match  */
!   YYSYMBOL_numeref = 1254,                 /* numeref  */
!   YYSYMBOL_nume = 1255,                    /* nume  */
!   YYSYMBOL_qnume = 1256,                   /* qnume  */
!   YYSYMBOL_replacements = 1257,            /* replacements  */
!   YYSYMBOL_replacement = 1258,             /* replacement  */
!   YYSYMBOL_replace_oper = 1259,            /* replace_oper  */
!   YYSYMBOL_x_by_ys = 1260,                 /* x_by_ys  */
!   YYSYMBOL_x_by_y = 1261,                  /* x_by_y  */
!   YYSYMBOL_insp_mtqual = 1262,             /* insp_mtqual  */
!   YYSYMBOL_insp_quals = 1263,              /* insp_quals  */
!   YYSYMBOL_insp_qual = 1264,               /* insp_qual  */
!   YYSYMBOL_first_leading = 1265,           /* first_leading  */
!   YYSYMBOL_alphaval = 1266,                /* alphaval  */
!   YYSYMBOL_befter = 1267,                  /* befter  */
!   YYSYMBOL_initialize = 1268,              /* initialize  */
!   YYSYMBOL_init_clause = 1269,             /* init_clause  */
!   YYSYMBOL_init_value = 1270,              /* init_value  */
!   YYSYMBOL_init_categora = 1271,           /* init_categora  */
!   YYSYMBOL_init_category = 1272,           /* init_category  */
!   YYSYMBOL_init_replace = 1273,            /* init_replace  */
!   YYSYMBOL_init_bys = 1274,                /* init_bys  */
!   YYSYMBOL_init_by = 1275,                 /* init_by  */
!   YYSYMBOL_init_data = 1276,               /* init_data  */
!   YYSYMBOL_call = 1277,                    /* call  */
!   YYSYMBOL_call_impl = 1278,               /* call_impl  */
!   YYSYMBOL_call_cond = 1279,               /* call_cond  */
!   YYSYMBOL_end_call = 1280,                /* end_call  */
!   YYSYMBOL_call_body = 1281,               /* call_body  */
!   YYSYMBOL_call_returning = 1282,          /* call_returning  */
!   YYSYMBOL_entry = 1283,                   /* entry  */
!   YYSYMBOL_ffi_name = 1284,                /* ffi_name  */
!   YYSYMBOL_parameters = 1285,              /* parameters  */
!   YYSYMBOL_parameter = 1286,               /* parameter  */
!   YYSYMBOL_ffi_by_ref = 1287,              /* ffi_by_ref  */
!   YYSYMBOL_ffi_by_con = 1288,              /* ffi_by_con  */
!   YYSYMBOL_ffi_by_val = 1289,              /* ffi_by_val  */
!   YYSYMBOL_scalar_arg = 1290,              /* scalar_arg  */
!   YYSYMBOL_call_excepts = 1291,            /* call_excepts  */
!   YYSYMBOL_call_except = 1292,             /* call_except  */
!   YYSYMBOL_cancel = 1293,                  /* cancel  */
!   YYSYMBOL_ffi_names = 1294,               /* ffi_names  */
!   YYSYMBOL_alter = 1295,                   /* alter  */
!   YYSYMBOL_1296_35 = 1296,                 /* $@35  */
!   YYSYMBOL_alter_tgts = 1297,              /* alter_tgts  */
!   YYSYMBOL_alter_tgt = 1298,               /* alter_tgt  */
!   YYSYMBOL_alter_to = 1299,                /* alter_to  */
!   YYSYMBOL_go_to = 1300,                   /* go_to  */
!   YYSYMBOL_resume = 1301,                  /* resume  */
!   YYSYMBOL_labels = 1302,                  /* labels  */
!   YYSYMBOL_label_1 = 1303,                 /* label_1  */
!   YYSYMBOL_string = 1304,                  /* string  */
!   YYSYMBOL_string_impl = 1305,             /* string_impl  */
!   YYSYMBOL_string_cond = 1306,             /* string_cond  */
!   YYSYMBOL_end_string = 1307,              /* end_string  */
!   YYSYMBOL_string_body = 1308,             /* string_body  */
!   YYSYMBOL_str_delimiteds = 1309,          /* str_delimiteds  */
!   YYSYMBOL_str_delimited = 1310,           /* str_delimited  */
!   YYSYMBOL_str_input = 1311,               /* str_input  */
!   YYSYMBOL_str_size = 1312,                /* str_size  */
!   YYSYMBOL_str_into = 1313,                /* str_into  */
!   YYSYMBOL_on_overflows = 1314,            /* on_overflows  */
!   YYSYMBOL_on_overflow = 1315,             /* on_overflow  */
!   YYSYMBOL_unstring = 1316,                /* unstring  */
!   YYSYMBOL_end_unstring = 1317,            /* end_unstring  */
!   YYSYMBOL_unstring_impl = 1318,           /* unstring_impl  */
!   YYSYMBOL_unstring_cond = 1319,           /* unstring_cond  */
!   YYSYMBOL_unstring_body = 1320,           /* unstring_body  */
!   YYSYMBOL_unstring_src = 1321,            /* unstring_src  */
!   YYSYMBOL_uns_delimited = 1322,           /* uns_delimited  */
!   YYSYMBOL_uns_delimiters = 1323,          /* uns_delimiters  */
!   YYSYMBOL_uns_delimiter = 1324,           /* uns_delimiter  */
!   YYSYMBOL_uns_into = 1325,                /* uns_into  */
!   YYSYMBOL_uns_tgts = 1326,                /* uns_tgts  */
!   YYSYMBOL_uns_tgt = 1327,                 /* uns_tgt  */
!   YYSYMBOL_intrinsic_call = 1328,          /* intrinsic_call  */
!   YYSYMBOL_function = 1329,                /* function  */
!   YYSYMBOL_function_udf = 1330,            /* function_udf  */
!   YYSYMBOL_intrinsic = 1331,               /* intrinsic  */
!   YYSYMBOL_module_type = 1332,             /* module_type  */
!   YYSYMBOL_convert_alpha = 1333,           /* convert_alpha  */
!   YYSYMBOL_convert_nat = 1334,             /* convert_nat  */
!   YYSYMBOL_convert_hex = 1335,             /* convert_hex  */
!   YYSYMBOL_numval_locale = 1336,           /* numval_locale  */
!   YYSYMBOL_subst_inputs = 1337,            /* subst_inputs  */
!   YYSYMBOL_subst_input = 1338,             /* subst_input  */
!   YYSYMBOL_locale_name = 1339,             /* locale_name  */
!   YYSYMBOL_intrinsic_locale = 1340,        /* intrinsic_locale  */
!   YYSYMBOL_lopper_case = 1341,             /* lopper_case  */
!   YYSYMBOL_trim_trailing = 1342,           /* trim_trailing  */
!   YYSYMBOL_intrinsic0 = 1343,              /* intrinsic0  */
!   YYSYMBOL_intrinsic_I = 1344,             /* intrinsic_I  */
!   YYSYMBOL_intrinsic_I2 = 1345,            /* intrinsic_I2  */
!   YYSYMBOL_intrinsic_N = 1346,             /* intrinsic_N  */
!   YYSYMBOL_intrinsic_N2 = 1347,            /* intrinsic_N2  */
!   YYSYMBOL_intrinsic_X = 1348,             /* intrinsic_X  */
!   YYSYMBOL_intrinsic_X2 = 1349,            /* intrinsic_X2  */
!   YYSYMBOL_intrinsic_v = 1350,             /* intrinsic_v  */
!   YYSYMBOL_all = 1351,                     /* all  */
!   YYSYMBOL_anycase = 1352,                 /* anycase  */
!   YYSYMBOL_as = 1353,                      /* as  */
!   YYSYMBOL_at = 1354,                      /* at  */
!   YYSYMBOL_by = 1355,                      /* by  */
!   YYSYMBOL_characters = 1356,              /* characters  */
!   YYSYMBOL_collating = 1357,               /* collating  */
!   YYSYMBOL_contains = 1358,                /* contains  */
!   YYSYMBOL_in = 1359,                      /* in  */
!   YYSYMBOL_data = 1360,                    /* data  */
!   YYSYMBOL_exception = 1361,               /* exception  */
!   YYSYMBOL_file = 1362,                    /* file  */
!   YYSYMBOL_first_last = 1363,              /* first_last  */
!   YYSYMBOL_for = 1364,                     /* for  */
!   YYSYMBOL_is_global = 1365,               /* is_global  */
!   YYSYMBOL_global = 1366,                  /* global  */
!   YYSYMBOL_initial = 1367,                 /* initial  */
!   YYSYMBOL_is = 1368,                      /* is  */
!   YYSYMBOL_key = 1369,                     /* key  */
!   YYSYMBOL_last = 1370,                    /* last  */
!   YYSYMBOL_lines = 1371,                   /* lines  */
!   YYSYMBOL_mode = 1372,                    /* mode  */
!   YYSYMBOL_native = 1373,                  /* native  */
!   YYSYMBOL_of = 1374,                      /* of  */
!   YYSYMBOL_on = 1375,                      /* on  */
!   YYSYMBOL_optional = 1376,                /* optional  */
!   YYSYMBOL_override = 1377,                /* override  */
!   YYSYMBOL_program_kw = 1378,              /* program_kw  */
!   YYSYMBOL_order = 1379,                   /* order  */
!   YYSYMBOL_record = 1380,                  /* record  */
!   YYSYMBOL_sign = 1381,                    /* sign  */
!   YYSYMBOL_is_signed = 1382,               /* is_signed  */
!   YYSYMBOL_start_after = 1383,             /* start_after  */
!   YYSYMBOL_start_pos = 1384,               /* start_pos  */
!   YYSYMBOL_status = 1385,                  /* status  */
!   YYSYMBOL_strong = 1386,                  /* strong  */
!   YYSYMBOL_times = 1387,                   /* times  */
!   YYSYMBOL_then = 1388,                    /* then  */
!   YYSYMBOL_to = 1389,                      /* to  */
!   YYSYMBOL_usage = 1390,                   /* usage  */
!   YYSYMBOL_user_default = 1391,            /* user_default  */
!   YYSYMBOL_when = 1392,                    /* when  */
!   YYSYMBOL_with = 1393,                    /* with  */
!   YYSYMBOL_cdf = 1394,                     /* cdf  */
!   YYSYMBOL_cdf_library = 1395,             /* cdf_library  */
!   YYSYMBOL_cdf_basis = 1396,               /* cdf_basis  */
!   YYSYMBOL_cdf_use = 1397,                 /* cdf_use  */
!   YYSYMBOL_cdf_use_when = 1398,            /* cdf_use_when  */
!   YYSYMBOL_cdf_use_excepts = 1399,         /* cdf_use_excepts  */
!   YYSYMBOL_cdf_use_except = 1400,          /* cdf_use_except  */
!   YYSYMBOL_cdf_use_files = 1401,           /* cdf_use_files  */
!   YYSYMBOL_io_mode = 1402,                 /* io_mode  */
!   YYSYMBOL_globally = 1403,                /* globally  */
!   YYSYMBOL_mistake = 1404,                 /* mistake  */
!   YYSYMBOL_procedure = 1405,               /* procedure  */
!   YYSYMBOL_cdf_listing = 1406,             /* cdf_listing  */
!   YYSYMBOL_star_cbl_opts = 1407,           /* star_cbl_opts  */
!   YYSYMBOL_star_cbl_opt = 1408,            /* star_cbl_opt  */
!   YYSYMBOL_cdf_option = 1409,              /* cdf_option  */
!   YYSYMBOL_cbl_options = 1410,             /* cbl_options  */
!   YYSYMBOL_cbl_option = 1411,              /* cbl_option  */
!   YYSYMBOL_cdf_none = 1412,                /* cdf_none  */
!   YYSYMBOL_xmlgenerate = 1413,             /* xmlgenerate  */
!   YYSYMBOL_xmlgen_impl = 1414,             /* xmlgen_impl  */
!   YYSYMBOL_xmlgen_cond = 1415,             /* xmlgen_cond  */
!   YYSYMBOL_xmlgen_body = 1416,             /* xmlgen_body  */
!   YYSYMBOL_xmlgen_count = 1417,            /* xmlgen_count  */
!   YYSYMBOL_xmlgen_decl = 1418,             /* xmlgen_decl  */
!   YYSYMBOL_xmlgen_namespace = 1419,        /* xmlgen_namespace  */
!   YYSYMBOL_namespace_prefix = 1420,        /* namespace_prefix  */
!   YYSYMBOL_xmlgen_nameof = 1421,           /* xmlgen_nameof  */
!   YYSYMBOL_xmlgen_ids = 1422,              /* xmlgen_ids  */
!   YYSYMBOL_xmlgen_id = 1423,               /* xmlgen_id  */
!   YYSYMBOL_xmlgen_typeof = 1424,           /* xmlgen_typeof  */
!   YYSYMBOL_xmlgen_types = 1425,            /* xmlgen_types  */
!   YYSYMBOL_xmlgen_type = 1426,             /* xmlgen_type  */
!   YYSYMBOL_xmlgen_eltype = 1427,           /* xmlgen_eltype  */
!   YYSYMBOL_xmlgen_suppress = 1428,         /* xmlgen_suppress  */
!   YYSYMBOL_xml_suppressions = 1429,        /* xml_suppressions  */
!   YYSYMBOL_xml_suppression = 1430,         /* xml_suppression  */
!   YYSYMBOL_xml_when_phrase = 1431,         /* xml_when_phrase  */
!   YYSYMBOL_xml_when_figs = 1432,           /* xml_when_figs  */
!   YYSYMBOL_xml_when_fig = 1433,            /* xml_when_fig  */
!   YYSYMBOL_xml_generic_suppression = 1434, /* xml_generic_suppression  */
!   YYSYMBOL_xml_generic_numeric = 1435,     /* xml_generic_numeric  */
!   YYSYMBOL_xmlparse = 1436,                /* xmlparse  */
!   YYSYMBOL_xmlparse_impl = 1437,           /* xmlparse_impl  */
!   YYSYMBOL_xmlparse_cond = 1438,           /* xmlparse_cond  */
!   YYSYMBOL_xmlparse_body = 1439,           /* xmlparse_body  */
!   YYSYMBOL_xmlencoding = 1440,             /* xmlencoding  */
!   YYSYMBOL_xmlreturning = 1441,            /* xmlreturning  */
!   YYSYMBOL_xmlvalidating = 1442,           /* xmlvalidating  */
!   YYSYMBOL_xmlprocs = 1443,                /* xmlprocs  */
!   YYSYMBOL_xmlexcepts = 1444,              /* xmlexcepts  */
!   YYSYMBOL_xmlexcept = 1445,               /* xmlexcept  */
!   YYSYMBOL_end_xml = 1446                  /* end_xml  */
  };
  typedef enum yysymbol_kind_t yysymbol_kind_t;
  
  
  /* Second part of user prologue.  */
! #line 1378 "parse.y"
  
    static cbl_field_type_t
    set_operand_type(const cbl_refer_t& refer) {
*************** typedef enum yysymbol_kind_t yysymbol_ki
*** 1636,1651 ****
        return xstrdup(output);
    }
  
!   static inline char * string_of( tree cce ) {
!       return string_of (TREE_REAL_CST (cce));
    }
  
    cbl_field_t *
!   new_literal( const literal_t& lit, enum cbl_field_attr_t attr );
  
    static YYLTYPE first_line_of( YYLTYPE loc );
  
! #line 1649 "parse.cc"
  
  
  #ifdef short
--- 1704,1723 ----
        return xstrdup(output);
    }
  
!   static inline const char * string_of( tree cce ) {
!     tree_node *node = TREE_TYPE(cce);
!     if( INTEGRAL_TYPE_P(node) ) {
!                         return "integer";
!     } 
!     return string_of (TREE_REAL_CST (cce));
    }
  
    cbl_field_t *
!   new_literal( const cbl_loc_t loc, const literal_t& lit, enum cbl_field_attr_t attr );
  
    static YYLTYPE first_line_of( YYLTYPE loc );
  
! #line 1721 "parse.cc"
  
  
  #ifdef short
*************** union yyalloc
*** 1972,1990 ****
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  13
  /* YYLAST -- Last index in YYTABLE.  */
! #define YYLAST   52293
  
  /* YYNTOKENS -- Number of terminals.  */
! #define YYNTOKENS  706
  /* YYNNTS -- Number of nonterminals.  */
! #define YYNNTS  674
  /* YYNRULES -- Number of rules.  */
! #define YYNRULES  1837
  /* YYNSTATES -- Number of states.  */
! #define YYNSTATES  2787
  
  /* YYMAXUTOK -- Last valid token kind.  */
! #define YYMAXUTOK   947
  
  
  /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
--- 2044,2062 ----
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  13
  /* YYLAST -- Last index in YYTABLE.  */
! #define YYLAST   65115
  
  /* YYNTOKENS -- Number of terminals.  */
! #define YYNTOKENS  716
  /* YYNNTS -- Number of nonterminals.  */
! #define YYNNTS  731
  /* YYNRULES -- Number of rules.  */
! #define YYNRULES  1975
  /* YYNSTATES -- Number of states.  */
! #define YYNSTATES  2991
  
  /* YYMAXUTOK -- Last valid token kind.  */
! #define YYMAXUTOK   958
  
  
  /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
*************** static const yytype_int16 yytranslate[]
*** 2001,2012 ****
         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,   701,     2,
!      703,   704,   696,   695,     2,   694,   700,   697,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,   705,     2,
!      688,   690,   689,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,   702,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
--- 2073,2084 ----
         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,   711,     2,
!      713,   714,   706,   705,     2,   704,   710,   707,     2,     2,
!        2,     2,     2,     2,     2,     2,     2,     2,   715,     2,
!      699,     2,   700,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
!        2,     2,     2,   712,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
*************** static const yytype_int16 yytranslate[]
*** 2092,2288 ****
       655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
       665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
       675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
!      685,   686,   687,   691,   692,   693,   698,   699
  };
  
  #if YYDEBUG
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_int16 yyrline[] =
  {
!        0,  1437,  1437,  1444,  1449,  1450,  1453,  1452,  1465,  1466,
!     1467,  1470,  1471,  1474,  1475,  1477,  1480,  1483,  1486,  1491,
!     1520,  1521,  1523,  1524,  1527,  1561,  1567,  1568,  1569,  1572,
!     1573,  1575,  1576,  1577,  1578,  1579,  1582,  1583,  1586,  1592,
!     1593,  1594,  1595,  1597,  1601,  1605,  1612,  1620,  1621,  1623,
!     1630,  1637,  1644,  1653,  1658,  1668,  1669,  1671,  1672,  1682,
!     1699,  1700,  1701,  1703,  1704,  1705,  1720,  1721,  1724,  1731,
!     1744,  1745,  1747,  1748,  1775,  1782,  1783,  1789,  1790,  1791,
!     1791,  1796,  1797,  1800,  1801,  1802,  1803,  1804,  1805,  1808,
!     1809,  1812,  1813,  1814,  1815,  1818,  1819,  1822,  1826,  1830,
!     1835,  1836,  1838,  1839,  1842,  1843,  1846,  1920,  1931,  1932,
!     1948,  1949,  1952,  1953,  2077,  2078,  2079,  2080,  2081,  2082,
!     2083,  2084,  2085,  2086,  2087,  2088,  2089,  2092,  2099,  2100,
!     2101,  2104,  2123,  2124,  2126,  2127,  2129,  2130,  2133,  2138,
!     2143,  2148,  2155,  2160,  2161,  2162,  2165,  2171,  2181,  2191,
!     2192,  2194,  2195,  2196,  2198,  2199,  2201,  2202,  2205,  2212,
!     2213,  2214,  2215,  2218,  2221,  2226,  2230,  2240,  2246,  2247,
!     2249,  2250,  2251,  2254,  2261,  2278,  2287,  2293,  2294,  2295,
!     2298,  2304,  2305,  2306,  2308,  2309,  2312,  2313,  2317,  2318,
!     2319,  2320,  2321,  2322,  2332,  2333,  2336,  2337,  2339,  2341,
!     2343,  2344,  2345,  2349,  2351,  2352,  2354,  2355,  2358,  2361,
!     2372,  2376,  2399,  2403,  2409,  2417,  2452,  2455,  2456,  2463,
!     2464,  2465,  2466,  2467,  2470,  2472,  2473,  2476,  2477,  2484,
!     2506,  2519,  2523,  2529,  2530,  2535,  2536,  2539,  2540,  2542,
!     2543,  2546,  2573,  2588,  2589,  2590,  2591,  2592,  2593,  2594,
!     2595,  2596,  2597,  2598,  2599,  2600,  2601,  2602,  2603,  2604,
!     2605,  2606,  2607,  2608,  2609,  2610,  2611,  2612,  2613,  2614,
!     2615,  2616,  2617,  2624,  2625,  2626,  2627,  2631,  2638,  2659,
!     2673,  2686,  2702,  2704,  2712,  2723,  2724,  2730,  2739,  2762,
!     2780,  2786,  2792,  2798,  2806,  2807,  2822,  2823,  2826,  2836,
!     2849,  2855,  2862,  2869,  2880,  2888,  2896,  2902,  2907,  2908,
!     2909,  2910,  2911,  2912,  2913,  2914,  2917,  2918,  2919,  2919,
!     2926,  2927,  2930,  2931,  2931,  2934,  2934,  2937,  2937,  2940,
!     2940,  2943,  2948,  2949,  2951,  2951,  2952,  2952,  2955,  2956,
!     2959,  2960,  2962,  2979,  2980,  2981,  2982,  2996,  2997,  2998,
!     3003,  3008,  3014,  3015,  3021,  3023,  3032,  3055,  3056,  3057,
!     3060,  3061,  3062,  3065,  3066,  3069,  3070,  3074,  3076,  3077,
!     3080,  3081,  3083,  3086,  3087,  3090,  3091,  3092,  3093,  3096,
!     3097,  3098,  3101,  3117,  3134,  3145,  3155,  3166,  3169,  3170,
!     3193,  3194,  3196,  3197,  3199,  3200,  3202,  3203,  3206,  3207,
!     3210,  3211,  3213,  3214,  3217,  3218,  3266,  3267,  3268,  3269,
!     3270,  3281,  3287,  3294,  3301,  3309,  3310,  3313,  3314,  3316,
!     3318,  3322,  3327,  3328,  3330,  3336,  3337,  3339,  3340,  3342,
!     3368,  3393,  3418,  3422,  3425,  3426,  3427,  3428,  3429,  3433,
!     3440,  3446,  3452,  3459,  3467,  3486,  3500,  3518,  3537,  3565,
!     3591,  3614,  3647,  3710,  3826,  3827,  3846,  3857,  3874,  3981,
!     3982,  3983,  3984,  3985,  3986,  3987,  4002,  4003,  4004,  4005,
!     4006,  4007,  4008,  4009,  4010,  4032,  4035,  4065,  4087,  4107,
!     4143,  4161,  4193,  4195,  4201,  4205,  4220,  4236,  4237,  4240,
!     4241,  4244,  4245,  4253,  4254,  4257,  4258,  4266,  4294,  4295,
!     4296,  4299,  4308,  4312,  4397,  4478,  4479,  4480,  4498,  4502,
!     4529,  4536,  4560,  4584,  4591,  4596,  4602,  4608,  4615,  4622,
!     4679,  4696,  4705,  4715,  4716,  4719,  4720,  4721,  4724,  4765,
!     4777,  4778,  4780,  4781,  4783,  4784,  4785,  4805,  4813,  4827,
!     4850,  4860,  4863,  4863,  4866,  4867,  4870,  4874,  4882,  4891,
!     4892,  4894,  4899,  4904,  4908,  4913,  4914,  4915,  4921,  4923,
!     4922,  4951,  4955,  4956,  4967,  4972,  4973,  4985,  4986,  4989,
!     4990,  4998,  5020,  5030,  5031,  5034,  5044,  5045,  5046,  5047,
!     5048,  5049,  5050,  5051,  5052,  5053,  5054,  5055,  5056,  5057,
!     5058,  5059,  5060,  5061,  5062,  5063,  5064,  5065,  5066,  5067,
!     5068,  5069,  5070,  5071,  5072,  5073,  5074,  5075,  5076,  5077,
!     5078,  5079,  5080,  5081,  5082,  5083,  5084,  5100,  5124,  5158,
!     5159,  5162,  5167,  5176,  5185,  5194,  5203,  5213,  5222,  5228,
!     5234,  5239,  5245,  5251,  5254,  5282,  5292,  5307,  5308,  5314,
!     5322,  5358,  5365,  5372,  5381,  5382,  5384,  5390,  5398,  5399,
!     5402,  5409,  5417,  5424,  5446,  5447,  5448,  5450,  5452,  5453,
!     5454,  5455,  5456,  5458,  5459,  5460,  5461,  5464,  5465,  5468,
!     5469,  5470,  5473,  5474,  5477,  5492,  5502,  5512,  5519,  5525,
!     5539,  5556,  5557,  5559,  5560,  5563,  5564,  5566,  5573,  5581,
!     5582,  5585,  5585,  5592,  5592,  5598,  5598,  5608,  5616,  5617,
!     5618,  5619,  5621,  5626,  5632,  5638,  5641,  5671,  5678,  5685,
!     5694,  5701,  5702,  5704,  5705,  5708,  5709,  5712,  5718,  5726,
!     5727,  5730,  5738,  5739,  5749,  5750,  5762,  5772,  5783,  5824,
!     5841,  5847,  5853,  5858,  5865,  5869,  5875,  5880,  5885,  5885,
!     5886,  5900,  5920,  5924,  5928,  5936,  5937,  5938,  5939,  5940,
!     5950,  5954,  5958,  5964,  5972,  5973,  5975,  5979,  5990,  5994,
!     6005,  6012,  6019,  6027,  6035,  6041,  6055,  6068,  6071,  6072,
!     6077,  6083,  6088,  6096,  6100,  6105,  6106,  6110,  6117,  6133,
!     6138,  6139,  6144,  6148,  6152,  6156,  6162,  6170,  6185,  6206,
!     6209,  6215,  6221,  6227,  6233,  6237,  6243,  6245,  6249,  6253,
!     6256,  6260,  6264,  6267,  6271,  6272,  6273,  6276,  6277,  6280,
!     6283,  6288,  6290,  6301,  6305,  6305,  6311,  6312,  6319,  6320,
!     6323,  6330,  6336,  6337,  6339,  6344,  6345,  6346,  6355,  6356,
!     6356,  6363,  6364,  6367,  6372,  6381,  6387,  6388,  6391,  6391,
!     6405,  6408,  6409,  6412,  6420,  6435,  6447,  6463,  6467,  6485,
!     6491,  6492,  6495,  6518,  6551,  6555,  6559,  6563,  6567,  6573,
!     6583,  6594,  6595,  6598,  6599,  6602,  6610,  6621,  6631,  6638,
!     6644,  6650,  6657,  6665,  6676,  6707,  6711,  6716,  6717,  6720,
!     6721,  6724,  6726,  6728,  6730,  6732,  6734,  6736,  6738,  6740,
!     6742,  6744,  6746,  6748,  6750,  6752,  6754,  6756,  6758,  6760,
!     6762,  6764,  6766,  6768,  6770,  6772,  6774,  6776,  6778,  6780,
!     6782,  6784,  6786,  6788,  6790,  6792,  6794,  6796,  6798,  6800,
!     6802,  6804,  6806,  6808,  6810,  6812,  6814,  6816,  6818,  6820,
!     6822,  6824,  6826,  6828,  6830,  6832,  6834,  6836,  6838,  6840,
!     6842,  6844,  6846,  6848,  6850,  6852,  6854,  6856,  6858,  6860,
!     6862,  6864,  6866,  6868,  6870,  6872,  6874,  6876,  6878,  6880,
!     6882,  6884,  6886,  6888,  6890,  6892,  6896,  6906,  6914,  6937,
!     6944,  6950,  6969,  6973,  6978,  6984,  7005,  7016,  7017,  7019,
!     7025,  7033,  7034,  7037,  7045,  7050,  7059,  7064,  7071,  7078,
!     7108,  7139,  7140,  7141,  7142,  7143,  7144,  7147,  7151,  7159,
!     7160,  7163,  7164,  7165,  7168,  7169,  7170,  7171,  7172,  7173,
!     7182,  7191,  7231,  7232,  7236,  7240,  7244,  7248,  7249,  7250,
!     7253,  7268,  7276,  7275,  7288,  7310,  7316,  7321,  7331,  7342,
!     7343,  7344,  7349,  7369,  7374,  7383,  7389,  7390,  7392,  7393,
!     7400,  7401,  7402,  7408,  7417,  7426,  7441,  7442,  7445,  7445,
!     7447,  7448,  7450,  7457,  7458,  7459,  7460,  7463,  7463,  7465,
!     7466,  7468,  7502,  7503,  7504,  7507,  7510,  7511,  7513,  7514,
!     7516,  7517,  7520,  7521,  7525,  7531,  7539,  7548,  7552,  7558,
!     7564,  7570,  7577,  7589,  7593,  7599,  7605,  7609,  7610,  7614,
!     7617,  7623,  7632,  7641,  7641,  7654,  7663,  7674,  7678,  7686,
!     7693,  7684,  7704,  7705,  7707,  7707,  7728,  7746,  7750,  7762,
!     7779,  7780,  7784,  7790,  7807,  7812,  7812,  7821,  7826,  7826,
!     7835,  7841,  7841,  7852,  7853,  7856,  7864,  7865,  7867,  7874,
!     7875,  7878,  7879,  7880,  7882,  7883,  7884,  7885,  7888,  7889,
!     7890,  7891,  7892,  7893,  7896,  7897,  7899,  7905,  7913,  7914,
!     7917,  7924,  7932,  7954,  7955,  7958,  7959,  7962,  7963,  7965,
!     7969,  7970,  7974,  7978,  7987,  7996,  8011,  8012,  8015,  8022,
!     8026,  8030,  8034,  8040,  8050,  8063,  8069,  8073,  8077,  8088,
!     8097,  8102,  8109,  8148,  8149,  8150,  8151,  8152,  8153,  8156,
!     8157,  8166,  8167,  8183,  8182,  8205,  8206,  8221,  8220,  8242,
!     8243,  8246,  8252,  8258,  8264,  8268,  8272,  8277,  8284,  8295,
!     8318,  8323,  8325,  8336,  8347,  8352,  8353,  8356,  8357,  8359,
!     8360,  8361,  8370,  8373,  8374,  8389,  8389,  8423,  8424,  8426,
!     8432,  8451,  8458,  8459,  8462,  8468,  8472,  8491,  8500,  8501,
!     8504,  8508,  8513,  8517,  8522,  8523,  8526,  8532,  8546,  8553,
!     8559,  8567,  8567,  8599,  8603,  8608,  8609,  8610,  8626,  8642,
!     8648,  8649,  8652,  8691,  8699,  8703,  8707,  8715,  8725,  8735,
!     8740,  8746,  8752,  8772,  8772,  8775,  8776,  8779,  8797,  8798,
!     8800,  8805,  8806,  8809,  8810,  8813,  8819,  8820,  8823,  8824,
!     8827,  8851,  8852,  8855,  8870,  8872,  8874,  8876,  8881,  8886,
!     8893,  8904,  8905,  8907,  8907,  8911,  8912,  8918,  8919,  8921,
!     8939,  8945,  8946,  8949,  8950,  8953,  8971,  8986,  9028,  9034,
!     9038,  9041,  9045,  9052,  9053,  9055,  9056,  9059,  9060,  9062,
!     9063,  9074,  9079,  9085,  9089,  9095,  9099,  9105,  9112,  9120,
!     9121,  9124,  9132,  9139,  9140,  9143,  9147,  9153,  9160,  9168,
!     9169,  9171,  9174,  9181,  9182,  9184,  9195,  9206,  9207,  9209,
!     9210,  9212,  9217,  9230,  9241,  9287,  9287,  9291,  9291,  9326,
!     9336,  9337,  9340,  9349,  9353,  9357,  9361,  9370,  9371,  9376,
!     9383,  9384,  9388,  9391,  9410,  9411,  9414,  9420,  9425,  9430,
!     9437,  9444,  9448,  9453,  9461,  9462,  9464,  9473,  9484,  9493,
!     9494,  9495,  9496,  9503,  9504,  9508,  9511,  9512,  9515,  9520,
!     9525,  9531,  9537,  9545,  9546,  9551,  9556,  9563,  9567,  9571,
!     9577,  9578,  9580,  9581,  9582,  9583,  9584,  9585,  9586,  9587,
!     9588,  9591,  9593,  9599,  9606,  9612,  9613,  9618,  9619,  9622,
!     9639,  9657,  9658,  9661,  9668,  9674,  9680,  9687,  9688,  9695,
!     9700,  9716,  9731,  9734,  9735,  9741,  9742,  9743,  9744,  9746,
!     9750,  9754,  9761,  9766,  9771,  9778,  9782,  9787,  9791,  9797,
!     9798,  9801,  9829,  9839,  9852,  9867,  9876,  9877,  9880,  9880,
!     9883,  9884,  9886,  9898,  9899,  9902,  9917,  9928,  9935,  9940,
!     9949,  9950,  9952,  9977,  9988,  9989,  9991,  9997, 10004, 10005,
!    10008, 10016, 10021, 10034, 10039, 10046, 10047, 10048, 10052, 10055,
!    10056, 10057, 10058, 10064, 10069, 10076, 10084, 10115, 10130, 10131,
!    10133, 10134, 10137, 10143, 10151, 10158, 10159, 10160, 10166, 10167,
!    10170, 10171, 10177, 10184, 10188, 10192, 10196, 10202, 10203, 10205,
!    10209, 10213, 10225, 10240, 10244, 10260, 10266, 10270, 10276, 10298,
!    10327, 10328, 10329, 10351, 10371, 10377, 10382, 10388, 10395, 10400,
!    10406, 10412, 10420, 10428, 10437, 10445, 10448, 10456, 10464, 10471,
!    10478, 10485, 10493, 10500, 10508, 10515, 10524, 10529, 10536, 10543,
!    10549, 10555, 10561, 10567, 10573, 10580, 10587, 10594, 10602, 10618,
!    10624, 10628, 10652, 10659, 10666, 10673, 10698, 10705, 10722, 10738,
!    10747, 10764, 10780, 10789, 10806, 10822, 10831, 10849, 10855, 10858,
!    10859, 10860, 10861, 10862, 10865, 10866, 10867, 10869, 10870, 10872,
!    10873, 10874, 10875, 10878, 10882, 10885, 10888, 10889, 10891, 10897,
!    10904, 10911, 10918, 10924, 10931, 10937, 10944, 10952, 10953, 10956,
!    10957, 10958, 10961, 10966, 10972, 10978, 10983, 10988, 10993, 10998,
!    11004, 11009, 11014, 11019, 11027, 11030, 11033, 11034, 11035, 11036,
!    11037, 11038, 11039, 11042, 11043, 11044, 11045, 11046, 11047, 11048,
!    11049, 11050, 11051, 11052, 11053, 11056, 11059, 11060, 11061, 11062,
!    11063, 11064, 11065, 11066, 11067, 11068, 11069, 11072, 11073, 11076,
!    11077, 11078, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088,
!    11091, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102,
!    11103, 11104, 11105, 11108, 11109, 11112, 11113, 11116, 11117, 11120,
!    11121, 11124, 11125, 11128, 11129, 11132, 11133, 11136, 11137, 11140,
!    11141, 11144, 11145, 11148, 11149, 11152, 11153, 11156, 11157, 11158,
!    11161, 11162, 11165, 11166, 11169, 11170, 11173, 11174, 11177, 11178,
!    11181, 11182, 11185, 11186, 11187, 11190, 11191, 11194, 11195, 11198,
!    11199, 11202, 11203, 11206, 11207, 11210, 11211, 11214, 11215, 11218,
!    11219, 11222, 11223, 11226, 11227, 11228, 11231, 11232, 11235, 11236,
!    11238, 11239, 11242, 11243, 11245, 11246, 11249, 11250, 11253, 11254,
!    11255, 11258, 11259, 11265, 11266, 11267, 11268, 11271, 11273, 11275,
!    11276, 11279, 11284, 11294, 11305, 11323, 11336, 11346, 11347, 11349,
!    11374, 11375, 11378, 11379, 11380, 11381, 11384, 11385, 11386, 11387,
!    11389, 11390, 11392, 11393, 11396, 11398, 11399, 11401, 11402, 11406,
!    11408, 11409, 11411, 11415, 11416, 11417, 11418, 11419
  };
  #endif
  
--- 2164,2375 ----
       655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
       665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
       675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
!      685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
!      695,   696,   697,   698,   701,   702,   703,   708,   709
  };
  
  #if YYDEBUG
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_int16 yyrline[] =
  {
!        0,  1531,  1531,  1538,  1543,  1544,  1547,  1546,  1559,  1560,
!     1561,  1564,  1565,  1568,  1569,  1571,  1574,  1577,  1580,  1585,
!     1616,  1617,  1619,  1620,  1623,  1659,  1665,  1666,  1667,  1670,
!     1671,  1673,  1674,  1675,  1676,  1677,  1680,  1681,  1684,  1690,
!     1691,  1692,  1693,  1695,  1699,  1703,  1712,  1722,  1723,  1725,
!     1734,  1743,  1752,  1763,  1768,  1778,  1779,  1781,  1782,  1792,
!     1809,  1810,  1811,  1813,  1814,  1815,  1830,  1831,  1834,  1841,
!     1856,  1857,  1859,  1860,  1887,  1894,  1895,  1901,  1905,  1909,
!     1909,  1915,  1916,  1919,  1920,  1921,  1922,  1923,  1924,  1927,
!     1928,  1931,  1932,  1933,  1934,  1937,  1938,  1941,  1945,  1949,
!     1955,  1956,  1958,  1959,  1962,  1963,  1966,  2040,  2051,  2052,
!     2069,  2070,  2073,  2074,  2198,  2199,  2200,  2201,  2202,  2203,
!     2204,  2205,  2206,  2207,  2208,  2209,  2210,  2213,  2220,  2221,
!     2222,  2225,  2244,  2245,  2247,  2248,  2250,  2251,  2254,  2259,
!     2264,  2269,  2276,  2281,  2282,  2283,  2286,  2292,  2302,  2312,
!     2313,  2315,  2316,  2317,  2319,  2320,  2322,  2323,  2326,  2333,
!     2334,  2335,  2336,  2339,  2342,  2347,  2351,  2361,  2367,  2368,
!     2370,  2371,  2372,  2375,  2382,  2399,  2408,  2414,  2415,  2416,
!     2419,  2425,  2426,  2427,  2429,  2430,  2433,  2434,  2438,  2439,
!     2457,  2458,  2459,  2460,  2461,  2462,  2463,  2466,  2467,  2469,
!     2471,  2473,  2474,  2475,  2479,  2481,  2482,  2484,  2485,  2488,
!     2491,  2502,  2506,  2529,  2533,  2539,  2547,  2582,  2585,  2592,
!     2593,  2594,  2595,  2596,  2599,  2622,  2633,  2637,  2639,  2645,
!     2656,  2674,  2675,  2676,  2679,  2680,  2683,  2684,  2691,  2708,
!     2743,  2756,  2760,  2776,  2777,  2782,  2783,  2784,  2785,  2788,
!     2789,  2791,  2792,  2795,  2822,  2837,  2838,  2839,  2840,  2841,
!     2842,  2843,  2844,  2845,  2846,  2847,  2848,  2849,  2850,  2851,
!     2852,  2853,  2854,  2855,  2856,  2857,  2858,  2859,  2860,  2861,
!     2862,  2863,  2864,  2865,  2866,  2873,  2874,  2875,  2876,  2887,
!     2892,  2899,  2920,  2934,  2947,  2963,  2965,  2973,  2984,  2985,
!     2991,  3000,  3023,  3041,  3047,  3053,  3059,  3067,  3068,  3083,
!     3084,  3087,  3093,  3106,  3112,  3119,  3126,  3135,  3143,  3149,
!     3156,  3163,  3164,  3165,  3166,  3167,  3168,  3169,  3170,  3173,
!     3174,  3175,  3175,  3184,  3185,  3188,  3189,  3189,  3192,  3192,
!     3195,  3195,  3198,  3198,  3201,  3206,  3207,  3209,  3209,  3210,
!     3210,  3213,  3214,  3217,  3218,  3220,  3238,  3239,  3240,  3241,
!     3256,  3257,  3264,  3289,  3294,  3299,  3305,  3309,  3310,  3316,
!     3317,  3319,  3320,  3321,  3322,  3334,  3336,  3345,  3368,  3369,
!     3370,  3373,  3374,  3375,  3378,  3379,  3382,  3383,  3387,  3389,
!     3390,  3393,  3394,  3396,  3399,  3400,  3403,  3404,  3405,  3406,
!     3409,  3410,  3411,  3414,  3430,  3447,  3458,  3468,  3479,  3482,
!     3483,  3506,  3507,  3509,  3510,  3512,  3513,  3515,  3516,  3519,
!     3520,  3523,  3524,  3526,  3527,  3530,  3531,  3581,  3582,  3583,
!     3584,  3585,  3596,  3602,  3609,  3616,  3624,  3625,  3628,  3629,
!     3631,  3633,  3637,  3642,  3643,  3645,  3651,  3652,  3654,  3655,
!     3657,  3683,  3705,  3729,  3733,  3736,  3737,  3741,  3745,  3749,
!     3755,  3763,  3772,  3779,  3786,  3794,  3817,  3833,  3857,  3881,
!     3910,  3934,  3976,  4009,  4072,  4242,  4243,  4263,  4274,  4291,
!     4402,  4403,  4404,  4405,  4406,  4407,  4408,  4423,  4424,  4425,
!     4426,  4427,  4428,  4429,  4430,  4431,  4444,  4447,  4486,  4521,
!     4551,  4583,  4608,  4642,  4644,  4650,  4654,  4669,  4694,  4695,
!     4698,  4699,  4702,  4703,  4711,  4712,  4715,  4716,  4724,  4762,
!     4763,  4764,  4767,  4776,  4780,  4789,  4795,  4802,  4811,  4829,
!     4832,  4841,  4868,  4875,  4905,  4918,  4944,  4955,  4965,  4971,
!     4978,  4985,  5042,  5063,  5072,  5091,  5092,  5093,  5096,  5137,
!     5154,  5155,  5157,  5158,  5160,  5161,  5162,  5182,  5190,  5201,
!     5225,  5233,  5236,  5237,  5240,  5243,  5247,  5255,  5264,  5265,
!     5267,  5272,  5277,  5281,  5286,  5287,  5288,  5294,  5296,  5295,
!     5324,  5328,  5329,  5340,  5345,  5346,  5358,  5359,  5362,  5363,
!     5371,  5392,  5402,  5406,  5412,  5422,  5423,  5424,  5425,  5426,
!     5427,  5428,  5429,  5430,  5431,  5432,  5433,  5434,  5435,  5436,
!     5437,  5438,  5439,  5440,  5441,  5442,  5443,  5444,  5445,  5446,
!     5447,  5448,  5449,  5450,  5451,  5452,  5453,  5454,  5455,  5456,
!     5457,  5458,  5459,  5460,  5461,  5462,  5463,  5464,  5480,  5504,
!     5538,  5539,  5542,  5547,  5556,  5565,  5574,  5583,  5593,  5602,
!     5608,  5614,  5619,  5625,  5631,  5634,  5662,  5672,  5687,  5688,
!     5694,  5702,  5738,  5745,  5752,  5761,  5762,  5764,  5770,  5778,
!     5779,  5782,  5789,  5797,  5804,  5827,  5828,  5829,  5831,  5833,
!     5834,  5835,  5836,  5837,  5839,  5840,  5841,  5842,  5845,  5846,
!     5849,  5850,  5851,  5854,  5855,  5858,  5873,  5883,  5893,  5900,
!     5906,  5920,  5937,  5938,  5940,  5941,  5944,  5945,  5947,  5954,
!     5962,  5963,  5966,  5966,  5973,  5973,  5984,  5992,  5993,  5994,
!     5995,  5997,  6002,  6008,  6014,  6017,  6047,  6054,  6061,  6070,
!     6077,  6078,  6080,  6081,  6084,  6085,  6088,  6094,  6102,  6103,
!     6106,  6114,  6115,  6125,  6126,  6138,  6148,  6159,  6199,  6216,
!     6222,  6228,  6233,  6240,  6244,  6250,  6255,  6260,  6260,  6261,
!     6275,  6295,  6299,  6303,  6309,  6310,  6311,  6312,  6313,  6323,
!     6327,  6331,  6337,  6345,  6346,  6348,  6352,  6363,  6367,  6378,
!     6385,  6392,  6400,  6408,  6414,  6428,  6441,  6442,  6448,  6451,
!     6452,  6457,  6463,  6468,  6476,  6480,  6485,  6486,  6490,  6497,
!     6513,  6518,  6519,  6524,  6528,  6532,  6536,  6542,  6550,  6565,
!     6586,  6589,  6595,  6601,  6607,  6613,  6617,  6623,  6625,  6629,
!     6633,  6636,  6640,  6644,  6647,  6651,  6652,  6653,  6656,  6657,
!     6660,  6663,  6668,  6670,  6681,  6685,  6685,  6691,  6692,  6699,
!     6700,  6703,  6710,  6716,  6717,  6719,  6724,  6725,  6726,  6735,
!     6736,  6736,  6743,  6744,  6747,  6752,  6761,  6767,  6768,  6771,
!     6771,  6785,  6788,  6789,  6792,  6800,  6815,  6827,  6843,  6847,
!     6865,  6871,  6872,  6875,  6898,  6931,  6935,  6939,  6943,  6947,
!     6953,  6963,  6974,  6975,  6978,  6979,  6982,  6990,  7001,  7011,
!     7018,  7024,  7030,  7037,  7045,  7056,  7087,  7091,  7096,  7097,
!     7100,  7101,  7104,  7106,  7108,  7110,  7112,  7114,  7116,  7118,
!     7120,  7122,  7124,  7126,  7128,  7130,  7132,  7134,  7136,  7138,
!     7140,  7142,  7144,  7146,  7148,  7150,  7152,  7154,  7156,  7158,
!     7160,  7162,  7164,  7166,  7168,  7170,  7172,  7174,  7176,  7178,
!     7180,  7182,  7184,  7186,  7188,  7190,  7192,  7194,  7196,  7198,
!     7200,  7202,  7204,  7206,  7208,  7210,  7212,  7214,  7216,  7218,
!     7220,  7222,  7224,  7226,  7228,  7230,  7232,  7234,  7236,  7238,
!     7240,  7242,  7244,  7246,  7248,  7250,  7252,  7254,  7256,  7258,
!     7260,  7262,  7264,  7266,  7268,  7270,  7272,  7274,  7276,  7278,
!     7282,  7292,  7300,  7323,  7330,  7336,  7356,  7360,  7365,  7371,
!     7392,  7403,  7404,  7406,  7412,  7420,  7421,  7424,  7432,  7437,
!     7446,  7451,  7458,  7465,  7495,  7526,  7527,  7528,  7529,  7530,
!     7531,  7534,  7538,  7546,  7547,  7550,  7551,  7552,  7555,  7556,
!     7557,  7558,  7559,  7560,  7566,  7572,  7609,  7610,  7615,  7620,
!     7625,  7630,  7631,  7632,  7635,  7651,  7659,  7658,  7671,  7689,
!     7695,  7700,  7707,  7718,  7719,  7720,  7725,  7745,  7750,  7759,
!     7765,  7766,  7768,  7769,  7776,  7777,  7778,  7784,  7790,  7796,
!     7808,  7815,  7816,  7819,  7819,  7821,  7822,  7824,  7831,  7832,
!     7833,  7834,  7837,  7837,  7839,  7840,  7842,  7876,  7877,  7878,
!     7881,  7884,  7885,  7887,  7888,  7890,  7891,  7894,  7895,  7899,
!     7905,  7913,  7922,  7926,  7932,  7938,  7944,  7951,  7963,  7967,
!     7973,  7979,  7983,  7984,  7988,  7991,  7997,  8006,  8015,  8015,
!     8028,  8037,  8048,  8052,  8060,  8067,  8058,  8078,  8079,  8081,
!     8081,  8102,  8120,  8124,  8136,  8153,  8154,  8158,  8164,  8181,
!     8186,  8186,  8195,  8200,  8200,  8209,  8215,  8215,  8226,  8227,
!     8230,  8238,  8239,  8241,  8248,  8249,  8252,  8253,  8254,  8256,
!     8257,  8258,  8259,  8262,  8263,  8264,  8265,  8266,  8267,  8270,
!     8271,  8273,  8279,  8287,  8288,  8291,  8298,  8306,  8329,  8330,
!     8333,  8334,  8337,  8338,  8340,  8344,  8345,  8349,  8353,  8359,
!     8365,  8377,  8378,  8381,  8388,  8389,  8393,  8397,  8403,  8413,
!     8426,  8432,  8436,  8440,  8451,  8460,  8465,  8472,  8511,  8512,
!     8513,  8514,  8515,  8516,  8519,  8520,  8529,  8530,  8546,  8545,
!     8568,  8569,  8584,  8583,  8605,  8606,  8609,  8615,  8621,  8627,
!     8631,  8635,  8640,  8647,  8658,  8681,  8686,  8688,  8699,  8710,
!     8715,  8716,  8719,  8720,  8722,  8723,  8724,  8733,  8736,  8737,
!     8752,  8752,  8786,  8787,  8788,  8790,  8797,  8807,  8808,  8809,
!     8810,  8815,  8821,  8840,  8848,  8851,  8853,  8859,  8884,  8904,
!     8905,  8908,  8914,  8918,  8937,  8946,  8947,  8950,  8954,  8959,
!     8963,  8968,  8969,  8972,  8978,  8989,  8996,  9002,  9010,  9010,
!     9042,  9046,  9051,  9052,  9053,  9069,  9085,  9091,  9092,  9095,
!     9134,  9142,  9146,  9150,  9159,  9176,  9186,  9196,  9201,  9207,
!     9213,  9233,  9233,  9236,  9248,  9249,  9251,  9252,  9257,  9258,
!     9259,  9260,  9261,  9262,  9263,  9265,  9266,  9269,  9270,  9273,
!     9274,  9277,  9295,  9296,  9298,  9303,  9304,  9307,  9308,  9311,
!     9317,  9318,  9321,  9322,  9325,  9349,  9350,  9353,  9368,  9370,
!     9372,  9374,  9379,  9384,  9391,  9402,  9403,  9405,  9405,  9409,
!     9410,  9416,  9417,  9419,  9437,  9443,  9444,  9447,  9448,  9451,
!     9470,  9486,  9528,  9534,  9538,  9541,  9545,  9552,  9553,  9555,
!     9556,  9559,  9560,  9562,  9563,  9574,  9579,  9585,  9589,  9595,
!     9599,  9605,  9614,  9624,  9625,  9628,  9636,  9643,  9644,  9647,
!     9651,  9657,  9664,  9672,  9673,  9675,  9678,  9685,  9686,  9688,
!     9699,  9710,  9711,  9713,  9714,  9716,  9721,  9734,  9745,  9795,
!     9795,  9799,  9799,  9834,  9844,  9845,  9848,  9857,  9861,  9865,
!     9869,  9876,  9877,  9882,  9889,  9890,  9894,  9897,  9916,  9917,
!     9920,  9926,  9931,  9936,  9943,  9950,  9954,  9959,  9967,  9968,
!     9970,  9979,  9990,  9999, 10000, 10001, 10002, 10007, 10008, 10012,
!    10015, 10016, 10019, 10024, 10029, 10035, 10041, 10049, 10050, 10055,
!    10060, 10067, 10071, 10075, 10081, 10082, 10084, 10085, 10086, 10087,
!    10088, 10089, 10090, 10091, 10092, 10095, 10097, 10103, 10110, 10116,
!    10117, 10120, 10121, 10124, 10141, 10159, 10160, 10163, 10170, 10176,
!    10182, 10189, 10190, 10195, 10200, 10216, 10231, 10239, 10240, 10246,
!    10247, 10248, 10249, 10251, 10255, 10262, 10269, 10273, 10280, 10285,
!    10290, 10297, 10301, 10307, 10311, 10317, 10318, 10321, 10349, 10359,
!    10372, 10387, 10396, 10397, 10400, 10400, 10403, 10404, 10406, 10418,
!    10419, 10422, 10437, 10448, 10455, 10461, 10471, 10472, 10474, 10499,
!    10510, 10511, 10513, 10519, 10526, 10527, 10530, 10538, 10543, 10556,
!    10561, 10568, 10569, 10570, 10574, 10577, 10578, 10579, 10580, 10586,
!    10591, 10598, 10606, 10637, 10652, 10653, 10655, 10656, 10659, 10665,
!    10673, 10680, 10681, 10682, 10688, 10689, 10692, 10693, 10699, 10706,
!    10710, 10714, 10718, 10724, 10725, 10727, 10731, 10735, 10747, 10762,
!    10766, 10782, 10788, 10792, 10798, 10823, 10855, 10856, 10857, 10877,
!    10897, 10903, 10908, 10919, 10925, 10931, 10936, 10942, 10949, 10955,
!    10963, 10968, 10974, 10982, 10992, 11001, 11011, 11020, 11023, 11032,
!    11041, 11049, 11057, 11065, 11074, 11082, 11091, 11099, 11109, 11114,
!    11120, 11126, 11132, 11138, 11144, 11150, 11156, 11163, 11170, 11177,
!    11185, 11201, 11207, 11211, 11235, 11242, 11249, 11256, 11281, 11288,
!    11305, 11321, 11330, 11347, 11363, 11372, 11389, 11405, 11414, 11432,
!    11438, 11441, 11442, 11443, 11444, 11445, 11451, 11452, 11454, 11455,
!    11457, 11458, 11459, 11462, 11466, 11469, 11472, 11473, 11475, 11480,
!    11493, 11500, 11508, 11515, 11521, 11528, 11534, 11541, 11549, 11550,
!    11553, 11554, 11555, 11558, 11563, 11569, 11575, 11580, 11585, 11590,
!    11595, 11601, 11606, 11611, 11616, 11624, 11627, 11630, 11631, 11632,
!    11633, 11634, 11635, 11636, 11639, 11640, 11641, 11642, 11643, 11644,
!    11645, 11646, 11647, 11648, 11649, 11650, 11653, 11656, 11657, 11658,
!    11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11669, 11670,
!    11673, 11674, 11675, 11678, 11679, 11680, 11681, 11682, 11683, 11684,
!    11685, 11688, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698,
!    11699, 11700, 11701, 11702, 11705, 11706, 11709, 11710, 11713, 11714,
!    11717, 11718, 11721, 11722, 11725, 11726, 11729, 11730, 11733, 11734,
!    11737, 11738, 11741, 11742, 11745, 11746, 11749, 11750, 11753, 11754,
!    11755, 11758, 11759, 11762, 11763, 11766, 11767, 11770, 11771, 11774,
!    11775, 11778, 11779, 11782, 11783, 11786, 11787, 11788, 11791, 11792,
!    11795, 11796, 11799, 11800, 11803, 11804, 11807, 11808, 11811, 11812,
!    11815, 11816, 11819, 11820, 11823, 11824, 11827, 11828, 11831, 11832,
!    11833, 11836, 11837, 11838, 11840, 11841, 11844, 11845, 11847, 11848,
!    11851, 11852, 11854, 11855, 11858, 11859, 11862, 11863, 11864, 11867,
!    11881, 11882, 11885, 11886, 11892, 11893, 11894, 11895, 11898, 11900,
!    11902, 11903, 11906, 11911, 11921, 11932, 11950, 11963, 11973, 11974,
!    11976, 12001, 12002, 12005, 12006, 12007, 12008, 12011, 12012, 12013,
!    12014, 12016, 12017, 12019, 12020, 12023, 12025, 12026, 12028, 12029,
!    12033, 12035, 12036, 12038, 12042, 12043, 12044, 12045, 12046, 12049,
!    12052, 12057, 12059, 12062, 12067, 12068, 12070, 12071, 12072, 12073,
!    12076, 12077, 12080, 12081, 12082, 12084, 12085, 12087, 12088, 12090,
!    12093, 12094, 12096, 12097, 12099, 12101, 12102, 12103, 12107, 12108,
!    12111, 12112, 12115, 12116, 12119, 12120, 12122, 12123, 12125, 12126,
!    12127, 12128, 12131, 12132, 12135, 12136, 12137, 12140, 12146, 12153,
!    12159, 12166, 12182, 12183, 12186, 12187, 12189, 12190, 12191, 12193,
!    12196, 12201, 12207, 12232, 12252, 12253
  };
  #endif
  
*************** static const char *const yytname[] =
*** 2310,2317 ****
    "\"78\"", "\"88\"", "\"class name\"", "NAME", "\"Level 88 NAME\"",
    "\"Name\"", "\"NUMERIC-EDITED picture\"",
    "\"NUMERIC-EDITED CR picture\"", "\"NUMERIC-EDITED DB picture\"",
!   "NINEDOT", "NINES", "NINEV", "PIC_P", "ONES", "SPACES", "LITERAL", "END",
!   "EOP", "FILENAME", "INVALID", "NUMBER", "NEGATIVE",
    "\"numeric literal\"", "\"OVERFLOW\"", "BINARY_INTEGER", "COMPUTATIONAL",
    "PERFORM", "BACKWARD", "POSITIVE", "POINTER", "SECTION",
    "\"STANDARD ALPHABET\"", "SWITCH", "UPSI", "ZERO", "SYSIN", "SYSIPT",
--- 2397,2404 ----
    "\"78\"", "\"88\"", "\"class name\"", "NAME", "\"Level 88 NAME\"",
    "\"Name\"", "\"NUMERIC-EDITED picture\"",
    "\"NUMERIC-EDITED CR picture\"", "\"NUMERIC-EDITED DB picture\"",
!   "NINEDOT", "NINES", "NINEV", "PIC_P", "ONES", "SPACES", "\"EQUAL\"",
!   "LITERAL", "END", "EOP", "FILENAME", "INVALID", "NUMBER", "NEGATIVE",
    "\"numeric literal\"", "\"OVERFLOW\"", "BINARY_INTEGER", "COMPUTATIONAL",
    "PERFORM", "BACKWARD", "POSITIVE", "POINTER", "SECTION",
    "\"STANDARD ALPHABET\"", "SWITCH", "UPSI", "ZERO", "SYSIN", "SYSIPT",
*************** static const char *const yytname[] =
*** 2319,2328 ****
    "C02", "C03", "C04", "C05", "C06", "C07", "C08", "C09", "C10", "C11",
    "C12", "CSP", "S01", "S02", "S03", "S04", "S05", "\"AFP 5A\"", "STDIN",
    "STDOUT", "STDERR", "LIST", "MAP", "NOLIST", "NOMAP", "NOSOURCE",
!   "\"IS or IS NOT\"", "\"UDF name\"", "\"UDF\"", "\"date format\"",
!   "\"time format\"", "\"datetime format\"", "BASIS", "CBL", "CONSTANT",
!   "COPY", "DEFINED", "ENTER", "FEATURE", "INSERTT", "\"(\"",
!   "\"PARAMETER\"", "OVERRIDE", "READY", "RESET", "\")\"",
    "\"SERVICE RELOAD\"", "\"*CBL\"", "SUBSCRIPT", "SUPPRESS", "TITLE",
    "TRACE", "USE", "\">>COBOL-WORDS\"", "EQUATE", "UNDEFINE",
    "\">>DEFINE\"", "\">>DISPLAY\"", "\">>IF\"", "\">>ELSE\"",
--- 2406,2415 ----
    "C02", "C03", "C04", "C05", "C06", "C07", "C08", "C09", "C10", "C11",
    "C12", "CSP", "S01", "S02", "S03", "S04", "S05", "\"AFP 5A\"", "STDIN",
    "STDOUT", "STDERR", "LIST", "MAP", "NOLIST", "NOMAP", "NOSOURCE",
!   "\"IS or IS NOT\"", "\"UDF name\"", "\"UDF\"", "DEFAULT",
!   "\"date format\"", "\"time format\"", "\"datetime format\"", "BASIS",
!   "CBL", "CONSTANT", "COPY", "DEFINED", "ENTER", "FEATURE", "INSERTT",
!   "\"(\"", "\"PARAMETER\"", "OVERRIDE", "READY", "RESET", "\")\"",
    "\"SERVICE RELOAD\"", "\"*CBL\"", "SUBSCRIPT", "SUPPRESS", "TITLE",
    "TRACE", "USE", "\">>COBOL-WORDS\"", "EQUATE", "UNDEFINE",
    "\">>DEFINE\"", "\">>DISPLAY\"", "\">>IF\"", "\">>ELSE\"",
*************** static const char *const yytname[] =
*** 2346,2352 ****
    "BLOCK_kw", "\"BOOLEAN-OF-INTEGER\"", "BOTTOM", "BY", "BYTE",
    "\"BYTE-LENGTH\"", "CF", "CH", "CHANGED", "CHAR", "\"CHAR-NATIONAL\"",
    "CHARACTER", "CHARACTERS", "CHECKING", "CLASS", "COBOL", "CODE",
!   "CODESET", "COLLATING", "COLUMN", "\"COMBINED-DATETIME\"", "COMMA",
    "\"COMMAND-LINE\"", "\"COMMAND-LINE-COUNT\"", "COMMIT", "COMMON",
    "CONCAT", "CONDITION", "\"CONFIGURATION SECTION\"", "CONTAINS",
    "CONTENT", "CONTROL", "CONTROLS", "CONVERT", "CONVERTING",
--- 2433,2439 ----
    "BLOCK_kw", "\"BOOLEAN-OF-INTEGER\"", "BOTTOM", "BY", "BYTE",
    "\"BYTE-LENGTH\"", "CF", "CH", "CHANGED", "CHAR", "\"CHAR-NATIONAL\"",
    "CHARACTER", "CHARACTERS", "CHECKING", "CLASS", "COBOL", "CODE",
!   "\"CODE-SET\"", "COLLATING", "COLUMN", "\"COMBINED-DATETIME\"", "COMMA",
    "\"COMMAND-LINE\"", "\"COMMAND-LINE-COUNT\"", "COMMIT", "COMMON",
    "CONCAT", "CONDITION", "\"CONFIGURATION SECTION\"", "CONTAINS",
    "CONTENT", "CONTROL", "CONTROLS", "CONVERT", "CONVERTING",
*************** static const char *const yytname[] =
*** 2354,2363 ****
    "DATA", "DATE", "DATE_COMPILED", "\"DATE-OF-INTEGER\"",
    "\"DATE-TO-YYYYMMDD\"", "\"DATE-WRITTEN\"", "DAY", "\"DAY-OF-INTEGER\"",
    "\"DAY-OF-WEEK\"", "\"DAY-TO-YYYYDDD\"", "DBCS", "DE", "DEBUGGING",
!   "DECIMAL_POINT", "DECLARATIVES", "DEFAULT", "DELIMITED", "DELIMITER",
!   "DEPENDING", "DESCENDING", "DETAIL", "DIRECT", "\"DIRECT-ACCESS\"",
!   "DOWN", "DUPLICATES", "DYNAMIC", "E", "EBCDIC", "EC", "EGCS", "ENTRY",
!   "ENVIRONMENT", "EQUAL", "EVERY", "EXAMINE", "EXHIBIT", "EXP", "EXP10",
    "EXTEND", "EXTERNAL", "\"EXCEPTION-FILE\"", "\"EXCEPTION-FILE-N\"",
    "\"EXCEPTION-LOCATION\"", "\"EXCEPTION-LOCATION-N\"",
    "\"EXCEPTION-STATEMENT\"", "\"EXCEPTION-STATUS\"", "FACTORIAL",
--- 2441,2450 ----
    "DATA", "DATE", "DATE_COMPILED", "\"DATE-OF-INTEGER\"",
    "\"DATE-TO-YYYYMMDD\"", "\"DATE-WRITTEN\"", "DAY", "\"DAY-OF-INTEGER\"",
    "\"DAY-OF-WEEK\"", "\"DAY-TO-YYYYDDD\"", "DBCS", "DE", "DEBUGGING",
!   "DECIMAL_POINT", "DECLARATIVES", "DELIMITED", "DELIMITER", "DEPENDING",
!   "DESCENDING", "DETAIL", "DIRECT", "\"DIRECT-ACCESS\"", "DOWN",
!   "DUPLICATES", "DYNAMIC", "E", "EBCDIC", "EC", "EGCS", "ENCODING",
!   "ENTRY", "ENVIRONMENT", "EVERY", "EXAMINE", "EXHIBIT", "EXP", "EXP10",
    "EXTEND", "EXTERNAL", "\"EXCEPTION-FILE\"", "\"EXCEPTION-FILE-N\"",
    "\"EXCEPTION-LOCATION\"", "\"EXCEPTION-LOCATION-N\"",
    "\"EXCEPTION-STATEMENT\"", "\"EXCEPTION-STATUS\"", "FACTORIAL",
*************** static const char *const yytname[] =
*** 2372,2379 ****
    "\"INITIAL\"", "INITIATE", "INPUT", "INSTALLATION", "INTERFACE",
    "INTEGER", "\"INTEGER-OF-BOOLEAN\"", "\"INTEGER-OF-DATE\"",
    "\"INTEGER-OF-DAY\"", "\"INTEGER-OF-FORMATTED-DATE\"",
!   "\"INTEGER-PART\"", "INTO", "INTRINSIC", "INVOKE", "IO",
!   "\"IO-CONTROL\"", "IS", "\"IS NOT\"", "KANJI", "KEY", "LABEL", "LAST",
    "LEADING", "LEFT", "LENGTH", "\"LENGTH-OF\"", "LIMIT", "LIMITS", "LINE",
    "LINES", "\"LINE-COUNTER\"", "LINAGE", "LINKAGE", "LOCALE",
    "\"LOCALE-COMPARE\"", "\"LOCALE-DATE\"", "\"LOCALE-TIME\"",
--- 2459,2466 ----
    "\"INITIAL\"", "INITIATE", "INPUT", "INSTALLATION", "INTERFACE",
    "INTEGER", "\"INTEGER-OF-BOOLEAN\"", "\"INTEGER-OF-DATE\"",
    "\"INTEGER-OF-DAY\"", "\"INTEGER-OF-FORMATTED-DATE\"",
!   "\"INTEGER-PART\"", "INTO", "INTRINSIC", "INVOKE", "\"I-O\"",
!   "\"I-O-CONTROL\"", "IS", "\"IS NOT\"", "KANJI", "KEY", "LABEL", "LAST",
    "LEADING", "LEFT", "LENGTH", "\"LENGTH-OF\"", "LIMIT", "LIMITS", "LINE",
    "LINES", "\"LINE-COUNTER\"", "LINAGE", "LINKAGE", "LOCALE",
    "\"LOCALE-COMPARE\"", "\"LOCALE-DATE\"", "\"LOCALE-TIME\"",
*************** static const char *const yytname[] =
*** 2389,2401 ****
    "OTHERWISE", "OUTPUT", "PACKED_DECIMAL", "PADDING", "PAGE",
    "\"PAGE-COUNTER\"", "PF", "PH", "PI", "PIC", "PICTURE", "PLUS",
    "PRESENT_VALUE", "PRINT_SWITCH", "PROCEDURE", "PROCEDURES", "PROCEED",
!   "PROCESS", "\"PROGRAM-ID\"", "\"Program\"", "PROPERTY", "PROTOTYPE",
!   "PSEUDOTEXT", "\"QUOTE\"", "RANDOM", "RANDOM_SEED", "RANGE", "RAISE",
!   "RAISING", "RD", "RECORD", "RECORDING", "RECORDS", "RECURSIVE",
    "REDEFINES", "REEL", "REFERENCE", "RELATIVE", "REM", "REMAINDER",
    "REMARKS", "REMOVAL", "RENAMES", "REPLACE", "REPLACING", "REPORT",
    "REPORTING", "REPORTS", "REPOSITORY", "RERUN", "RESERVE", "RESTRICTED",
!   "RESUME", "REVERSE", "REVERSED", "REWIND", "RF", "RH", "RIGHT",
    "ROUNDED", "RUN", "SAME", "SCREEN", "SD",
    "\"SECONDS-FROM-FORMATTED-TIME\"", "\"SECONDS-PAST-MIDNIGHT\"",
    "SECURITY", "SEPARATE", "SEQUENCE", "SEQUENTIAL", "SHARING",
--- 2476,2488 ----
    "OTHERWISE", "OUTPUT", "PACKED_DECIMAL", "PADDING", "PAGE",
    "\"PAGE-COUNTER\"", "PF", "PH", "PI", "PIC", "PICTURE", "PLUS",
    "PRESENT_VALUE", "PRINT_SWITCH", "PROCEDURE", "PROCEDURES", "PROCEED",
!   "PROCESS", "PROCESSING", "\"PROGRAM-ID\"", "\"Program\"", "PROPERTY",
!   "PROTOTYPE", "PSEUDOTEXT", "\"QUOTE\"", "RANDOM", "RANDOM_SEED", "RANGE",
!   "RAISE", "RAISING", "RD", "RECORD", "RECORDING", "RECORDS", "RECURSIVE",
    "REDEFINES", "REEL", "REFERENCE", "RELATIVE", "REM", "REMAINDER",
    "REMARKS", "REMOVAL", "RENAMES", "REPLACE", "REPLACING", "REPORT",
    "REPORTING", "REPORTS", "REPOSITORY", "RERUN", "RESERVE", "RESTRICTED",
!   "RESUME", "RETRY", "REVERSE", "REVERSED", "REWIND", "RF", "RH", "RIGHT",
    "ROUNDED", "RUN", "SAME", "SCREEN", "SD",
    "\"SECONDS-FROM-FORMATTED-TIME\"", "\"SECONDS-PAST-MIDNIGHT\"",
    "SECURITY", "SEPARATE", "SEQUENCE", "SEQUENTIAL", "SHARING",
*************** static const char *const yytname[] =
*** 2403,2424 ****
    "SOURCE", "\"SOURCE-COMPUTER\"", "SPECIAL_NAMES", "SQRT", "STACK",
    "STANDARD", "\"STANDARD-1\"", "\"STANDARD-DEVIATION \"",
    "\"STANDARD-COMPARE\"", "STATUS", "STRONG", "SUBSTITUTE", "SUM",
!   "SYMBOL", "SYMBOLIC", "SYNCHRONIZED", "TALLY", "TALLYING", "TAN",
!   "TERMINATE", "TEST", "\"TEST-DATE-YYYYMMDD\"", "\"TEST-DAY-YYYYDDD\"",
    "\"TEST-FORMATTED-DATETIME\"", "\"TEST-NUMVAL\"", "\"TEST-NUMVAL-C\"",
    "\"TEST-NUMVAL-F\"", "THAN", "TIME", "TIMES", "TO", "TOP", "TOP_LEVEL",
    "TRACKS", "TRACK_AREA", "TRAILING", "TRANSFORM", "TRIM", "\"True\"",
    "TRY", "TURN", "TYPE", "TYPEDEF", "ULENGTH", "UNBOUNDED", "UNIT",
    "UNITS", "UNIT_RECORD", "UNTIL", "UP", "UPON", "UPOS", "UPPER_CASE",
    "USAGE", "USING", "USUBSTR", "USUPPLEMENTARY", "UTILITY", "UUID4",
!   "UVALID", "UWIDTH", "VALUE", "VARIANCE", "VARYING", "VOLATILE",
!   "WHEN_COMPILED", "WITH", "WORKING_STORAGE", "XML", "XMLGENERATE",
!   "XMLPARSE", "YEAR_TO_YYYY", "YYYYDDD", "YYYYMMDD", "ARITHMETIC",
!   "ATTRIBUTE", "AUTO", "AUTOMATIC", "\"AWAY-FROM-ZERO\"",
!   "\"BACKGROUND-COLOR\"", "BELL", "\"BINARY-ENCODING\"", "BLINK",
!   "CAPACITY", "CENTER", "CLASSIFICATION", "CYCLE", "\"DECIMAL-ENCODING\"",
!   "ENTRY_CONVENTION", "EOL", "EOS", "ERASE", "EXPANDS", "\"FLOAT-BINARY\"",
!   "\"FLOAT-DECIMAL\"", "FOREGROUND_COLOR", "FOREVER", "FULL", "HIGHLIGHT",
    "\"HIGH-ORDER-LEFT\"", "\"HIGH-ORDER-RIGHT\"", "IGNORING", "IMPLEMENTS",
    "INITIALIZED", "INTERMEDIATE", "\"LC-ALL\"", "\"LC-COLLATE\"",
    "\"LC-CTYPE\"", "\"LC-MESSAGES\"", "\"LC-MONETARY\"", "\"LC-NUMERIC\"",
--- 2490,2511 ----
    "SOURCE", "\"SOURCE-COMPUTER\"", "SPECIAL_NAMES", "SQRT", "STACK",
    "STANDARD", "\"STANDARD-1\"", "\"STANDARD-DEVIATION \"",
    "\"STANDARD-COMPARE\"", "STATUS", "STRONG", "SUBSTITUTE", "SUM",
!   "SYMBOL", "SYMBOLIC", "SYNCHRONIZED", "TALLYING", "TAN", "TERMINATE",
!   "TEST", "\"TEST-DATE-YYYYMMDD\"", "\"TEST-DAY-YYYYDDD\"",
    "\"TEST-FORMATTED-DATETIME\"", "\"TEST-NUMVAL\"", "\"TEST-NUMVAL-C\"",
    "\"TEST-NUMVAL-F\"", "THAN", "TIME", "TIMES", "TO", "TOP", "TOP_LEVEL",
    "TRACKS", "TRACK_AREA", "TRAILING", "TRANSFORM", "TRIM", "\"True\"",
    "TRY", "TURN", "TYPE", "TYPEDEF", "ULENGTH", "UNBOUNDED", "UNIT",
    "UNITS", "UNIT_RECORD", "UNTIL", "UP", "UPON", "UPOS", "UPPER_CASE",
    "USAGE", "USING", "USUBSTR", "USUPPLEMENTARY", "UTILITY", "UUID4",
!   "UVALID", "UWIDTH", "VALIDATING", "VALUE", "VARIANCE", "VARYING",
!   "VOLATILE", "WHEN_COMPILED", "WITH", "WORKING_STORAGE", "YEAR_TO_YYYY",
!   "YYYYDDD", "YYYYMMDD", "ARITHMETIC", "ATTRIBUTE", "AUTO", "AUTOMATIC",
!   "\"AWAY-FROM-ZERO\"", "\"BACKGROUND-COLOR\"", "BELL",
!   "\"BINARY-ENCODING\"", "BLINK", "CAPACITY", "CENTER", "CLASSIFICATION",
!   "CYCLE", "\"DECIMAL-ENCODING\"", "ENTRY_CONVENTION", "EOL", "EOS",
!   "ERASE", "EXPANDS", "\"FLOAT-BINARY\"", "\"FLOAT-DECIMAL\"",
!   "FOREGROUND_COLOR", "FOREVER", "FULL", "HIGHLIGHT",
    "\"HIGH-ORDER-LEFT\"", "\"HIGH-ORDER-RIGHT\"", "IGNORING", "IMPLEMENTS",
    "INITIALIZED", "INTERMEDIATE", "\"LC-ALL\"", "\"LC-COLLATE\"",
    "\"LC-CTYPE\"", "\"LC-MESSAGES\"", "\"LC-MONETARY\"", "\"LC-NUMERIC\"",
*************** static const char *const yytname[] =
*** 2429,2547 ****
    "\"STANDARD-BINARY\"", "\"STANDARD-DECIMAL\"", "STATEMENT", "STEP",
    "STRUCTURE", "\"TOWARD-GREATER\"", "\"TOWARD-LESSER\"", "TRUNCATION",
    "\"UCS-4\"", "UNDERLINE", "UNSIGNED_kw", "\"UTF-16\"", "\"UTF-8\"",
!   "ADDRESS", "\"END-ACCEPT\"", "\"END-ADD\"", "\"END-CALL\"",
!   "\"END-COMPUTE\"", "\"END-DELETE\"", "\"END-DISPLAY\"", "\"END-DIVIDE\"",
!   "\"END-EVALUATE\"", "\"END-MULTIPLY\"", "\"END-PERFORM\"",
!   "\"END-READ\"", "\"END-RETURN\"", "\"END-REWRITE\"", "\"END-SEARCH\"",
!   "\"END-START\"", "\"END-STRING\"", "\"END-SUBTRACT\"",
!   "\"END-UNSTRING\"", "\"END-WRITE\"", "\"END-IF\"", "THRU", "OR", "AND",
!   "NOT", "'<'", "'>'", "'='", "NE", "LE", "GE", "'-'", "'+'", "'*'", "'/'",
!   "POW", "NEG", "'.'", "'&'", "'S'", "'('", "')'", "':'", "$accept", "top",
!   "programs", "program", "$@1", "id_div", "cdf_words", "cobol_words",
!   "cobol_words1", "program_id", "dot", "program_as", "function_id",
!   "options_para", "opt_clauses", "opt_clause", "opt_arith",
!   "opt_arith_type", "opt_round", "opt_entry", "opt_binary", "default_kw",
!   "opt_decimal", "opt_intermediate", "opt_init", "opt_section",
!   "opt_init_sects", "opt_init_sect", "opt_init_value", "namestr",
!   "program_attrs", "comminits", "comminit", "env_div", "$@2",
!   "env_sections", "env_section", "io_sections", "io_section",
!   "io_control_clauses", "io_control_clause", "area", "smerge", "selects",
!   "select", "selected_name", "external", "select_clauses", "select_clause",
!   "access_clause", "access_mode", "alt_key_clause", "key_source",
!   "key_sources", "unique_key", "assign_clause", "collate_clause",
!   "collate_claus1", "status_clause", "lock_mode_clause", "lock_how",
!   "lock_mode", "multiple", "records", "org_clause", "org_is",
!   "org_clause1", "padding_clause", "character", "padding_char",
!   "record_delim_clause", "record_key_clause", "relative_key_clause",
!   "reserve_clause", "reserve_area", "sharing_clause", "sharing_who",
!   "other", "config_paragraphs", "config_paragraph", "repo_members",
!   "repo_member", "repo_class", "repo_as", "repo_expands", "repo_interface",
!   "repo_func", "repo_func_names", "repo_func_name", "repo_program",
!   "repo_property", "with_debug", "collating_sequence", "specials",
!   "special_names", "special_name", "locale_spec", "symbolic",
!   "is_alphabet", "dev_mnemonic", "device_name", "alphabet_name",
!   "alphabet_seqs", "alphabet_seq", "alphabet_etc", "alphabet_lit", "upsi",
!   "upsi_entry", "picture_sym", "domains", "domain", "when_set_to",
!   "data_div", "$@3", "data_sections", "data_section", "$@4", "$@5", "$@6",
!   "$@7", "file_descrs", "file_descr", "$@8", "$@9", "fd_name",
!   "fd_clauses", "fd_clause", "block_desc", "rec_contains", "chars_recs",
!   "label_desc", "record_is", "fd_values", "fd_value", "alpha_val",
!   "fd_labels", "fd_label", "record_desc", "record_vary", "in_size",
!   "from_to", "depending", "fd_linage", "with_footings", "with_footing",
!   "top_bot", "fd_report", "fields_maybe", "fields", "field",
!   "occurs_clause", "cardinal_lb", "cardinal", "depending_on", "bound",
!   "key_descrs", "key_descr", "ordering", "key_fields", "key_field1",
!   "indexed", "index_fields", "index_field1", "level_name", "data_descr",
!   "const_value", "value78", "data_descr1", "literalism", "name66",
!   "data_clauses", "data_clause", "picture_clause", "ones", "alphanum_pic",
!   "alphanum_part", "signed", "nps", "nine", "nines", "count", "numed",
!   "usage_clause", "usage_clause1", "value_clause", "global_clause",
!   "external_clause", "justified_clause", "redefines_clause", "any_length",
!   "based_clause", "blank_zero_clause", "blank_when_zero", "synched_clause",
!   "same_clause", "sign_clause", "sign_is", "sign_leading", "sign_separate",
!   "type_clause", "typedef_clause", "volatile_clause", "procedure_div",
!   "$@10", "procedure_args", "procedure_uses", "procedure_use",
!   "by_value_arg", "declaratives", "@11", "sentences", "paragraph_name",
!   "sentence", "statements", "statement", "accept", "end_accept",
!   "accept_body", "accept_refer", "accept_excepts", "accept_except",
!   "envar", "acceptable", "add", "add_impl", "add_cond", "end_add",
!   "add_body", "rounded", "rounded_mode", "rounded_type", "round_between",
!   "might_be", "posneg", "scalar88s", "name88", "scalar88", "allocate",
!   "initialized", "alloc_ret", "compute", "compute_impl", "compute_cond",
!   "end_compute", "compute_body", "$@12", "compute_expr", "$@13", "$@14",
!   "display", "end_display", "disp_body", "disp_vargs", "disp_upon",
    "exhibit_stmt", "exh_changed", "exh_named", "divide", "divide_impl",
    "divide_cond", "end_divide", "divide_body", "divide_into", "divide_by",
!   "end_program", "end_program1", "continue_stmt", "exit", "$@15",
    "exit_with", "exit_what", "exit_raising", "free", "free_tgts",
!   "free_tgt", "simple_cond", "kind_of_name", "bool_expr", "log_expr",
!   "log_term", "rel_expr", "rel_abbrs", "rel_lhs", "rel_abbr", "rel_term",
!   "rel_term1", "expr", "expr_term", "num_term", "value", "factor",
!   "if_stmt", "if_impl", "if_verb", "if_test", "if_body", "$@16",
    "next_statements", "end_if", "evaluate", "eval_verb", "eval_subjects",
!   "eval_subject", "eval_subject1", "eval_switch", "$@17", "eval_cases",
!   "eval_case", "eval_objects", "eval_whens", "eval_when", "$@18",
    "eval_obj_cols", "eval_obj_col", "eval_posneg", "eval_abbrs",
    "eval_abbr", "end_evaluate", "true_false", "scalar", "tableref",
    "tableish", "refmod", "typename", "name", "qname", "inof", "ctx_name",
    "context_word", "move", "move_tgts", "move_tgt", "multiply",
    "multiply_impl", "multiply_cond", "end_multiply", "multiply_body",
    "arith_errs", "arith_err", "relop", "rnames", "sum", "num_operand",
!   "num_value", "cce_expr", "cce_factor", "section_name", "@19",
    "section_kw", "stop", "stop_status", "subscripts", "subscript_exprs",
!   "arg_list", "any_arg", "signed_literal", "num_literal", "open", "$@20",
!   "open_files", "open_file", "open_io", "close", "$@21", "close_files",
!   "close_file", "close_how", "reel_unit", "for_kw", "perform",
!   "perform_stmts", "perform_proc", "perform_names", "perform_times",
!   "perform_vary", "perform_verb", "perform_until", "perform_cond", "$@22",
!   "perform_inline", "perform_start", "perform_except", "$@23", "$@24",
!   "perform_when", "perform_when1", "$@25", "perform_ec", "except_names",
!   "except_name", "except_files", "perform_ec_other", "$@26",
!   "perform_ec_common", "$@27", "perform_ec_finally", "$@28", "test_before",
!   "varying", "vary_afters", "vary_after", "vary_by", "reserved_value",
!   "spaces_etc", "variable_type", "subtract", "subtract_impl",
!   "subtract_cond", "end_subtract", "subtract_body", "vargs", "varg",
!   "varg1", "varg1a", "binary_type", "literal", "raise", "read",
!   "read_file", "read_body", "read_next", "read_into", "read_eofs",
!   "read_eof", "$@29", "write_eops", "write_eop", "$@30", "read_key",
!   "write", "write_file", "write_body", "write_what", "file_record",
!   "advance_when", "advancing", "advance_by", "io_invalids", "io_invalid",
!   "$@31", "delete", "delete_impl", "delete_cond", "delete_body",
!   "end_delete", "rewrite", "rewrite1", "rewrite_body", "end_rewrite",
!   "start", "start_impl", "start_cond", "end_start", "start_body", "merge",
!   "$@32", "set_tgts", "set_operand", "set_tgt", "set", "$@33",
    "many_switches", "set_switches", "switches", "one_switch", "on_off",
    "search", "search_linear", "end_search", "search_1_place",
    "search_1_body", "search_varying", "search_1_cases", "search_1_case",
    "search_1_when", "search_1_test", "search_binary", "search_2_body",
!   "search_2_cases", "search_2_case", "$@34", "search_stmts",
    "search_terms", "search_term", "search_expr", "sort", "sort_table",
    "sort_file", "sort_keys", "sort_key", "forward_order", "field_list",
    "sort_dup", "sort_seq", "sort_input", "sort_output", "sort_target",
    "release", "return_stmt", "return_impl", "return_cond", "return_end",
    "return_body", "return_file", "return_outputs", "return_output",
    "output_atend", "filenames", "filename", "label_name", "inspected",
!   "backward", "inspect", "tallies", "$@35", "$@36", "tally", "tally_fors",
    "tally_forth", "tally_matches", "tally_match", "numeref", "nume",
    "qnume", "replacements", "replacement", "replace_oper", "x_by_ys",
    "x_by_y", "insp_mtqual", "insp_quals", "insp_qual", "first_leading",
--- 2516,2641 ----
    "\"STANDARD-BINARY\"", "\"STANDARD-DECIMAL\"", "STATEMENT", "STEP",
    "STRUCTURE", "\"TOWARD-GREATER\"", "\"TOWARD-LESSER\"", "TRUNCATION",
    "\"UCS-4\"", "UNDERLINE", "UNSIGNED_kw", "\"UTF-16\"", "\"UTF-8\"",
!   "\"XML GENERATE\"", "\"XML PARSE\"", "ADDRESS", "\"END-ACCEPT\"",
!   "\"END-ADD\"", "\"END-CALL\"", "\"END-COMPUTE\"", "\"END-DELETE\"",
!   "\"END-DISPLAY\"", "\"END-DIVIDE\"", "\"END-EVALUATE\"",
!   "\"END-MULTIPLY\"", "\"END-PERFORM\"", "\"END-READ\"", "\"END-RETURN\"",
!   "\"END-REWRITE\"", "\"END-SEARCH\"", "\"END-START\"", "\"END-STRING\"",
!   "\"END-SUBTRACT\"", "\"END-UNSTRING\"", "\"END-WRITE\"", "\"END-XML\"",
!   "\"END-IF\"", "ATTRIBUTES", "ELEMENT", "NAMESPACE", "NAMESPACE_PREFIX",
!   "\"NAMESPACE-PREFIX\"", "NONNUMERIC", "XML_DECLARATION",
!   "\"XML-DECLARATION\"", "THRU", "OR", "AND", "NOT", "'<'", "'>'", "NE",
!   "LE", "GE", "'-'", "'+'", "'*'", "'/'", "POW", "NEG", "'.'", "'&'",
!   "'S'", "'('", "')'", "':'", "$accept", "top", "programs", "program",
!   "$@1", "id_div", "cdf_words", "cobol_words", "cobol_words1",
!   "program_id", "dot", "program_as", "function_id", "options_para",
!   "opt_clauses", "opt_clause", "opt_arith", "opt_arith_type", "opt_round",
!   "opt_entry", "opt_binary", "default_kw", "opt_decimal",
!   "opt_intermediate", "opt_init", "opt_section", "opt_init_sects",
!   "opt_init_sect", "opt_init_value", "namestr", "program_attrs",
!   "comminits", "comminit", "env_div", "$@2", "env_sections", "env_section",
!   "io_sections", "io_section", "io_control_clauses", "io_control_clause",
!   "area", "smerge", "selects", "select", "selected_name", "external",
!   "select_clauses", "select_clause", "access_clause", "access_mode",
!   "alt_key_clause", "key_source", "key_sources", "unique_key",
!   "assign_clause", "collate_clause", "collate_claus1", "status_clause",
!   "lock_mode_clause", "lock_how", "lock_mode", "multiple", "records",
!   "org_clause", "org_is", "org_clause1", "padding_clause", "character",
!   "padding_char", "record_delim_clause", "record_key_clause",
!   "relative_key_clause", "reserve_clause", "reserve_area",
!   "sharing_clause", "sharing_who", "other", "config_paragraphs",
!   "config_paragraph", "repo_members", "repo_member", "repo_class",
!   "repo_as", "repo_expands", "repo_interface", "repo_func",
!   "repo_func_names", "repo_func_name", "repo_program", "repo_property",
!   "with_debug", "object_computer", "char_classification",
!   "collating_sequence", "char_class_locales", "coll_alphanats",
!   "coll_alphanat", "locale_phrase", "special_names", "special_name",
!   "locale_spec", "symbolic", "is_alphabet", "dev_mnemonic", "device_name",
!   "alphabet_name", "alphabet_seqs", "alphabet_seq", "alphabet_etc",
!   "alphabet_lit", "upsi", "upsi_entry", "picture_sym", "domains", "domain",
!   "when_set_to", "data_div", "$@3", "data_sections", "data_section", "$@4",
!   "$@5", "$@6", "$@7", "file_descrs", "file_descr", "$@8", "$@9",
!   "fd_name", "fd_clauses", "fd_clause", "alphanational", "codeset_name",
!   "block_desc", "rec_contains", "chars_recs", "label_desc", "record_is",
!   "fd_values", "fd_value", "alpha_val", "fd_labels", "fd_label",
!   "record_desc", "record_vary", "in_size", "from_to", "depending",
!   "fd_linage", "with_footings", "with_footing", "top_bot", "fd_report",
!   "fields_maybe", "fields", "field", "occurs_clause", "cardinal_lb",
!   "cardinal", "depending_on", "bound", "key_descrs", "key_descr",
!   "ordering", "key_fields", "key_field1", "indexed", "index_fields",
!   "index_field1", "level_name", "data_descr", "const_value", "value78",
!   "data_descr1", "literalism", "name66", "data_clauses", "data_clause",
!   "picture_clause", "ones", "alphanum_pic", "alphanum_part", "signed",
!   "nps", "nine", "nines", "count", "numed", "usage_clause",
!   "usage_clause1", "value_clause", "global_clause", "external_clause",
!   "justified_clause", "redefines_clause", "any_length", "based_clause",
!   "blank_zero_clause", "synched_clause", "same_clause", "sign_clause",
!   "sign_is", "sign_leading", "sign_separate", "type_clause",
!   "typedef_clause", "volatile_clause", "procedure_div", "procedure_args",
!   "procedure_uses", "procedure_use", "by_value_arg", "declaratives", "@10",
!   "sentences", "paragraph_name", "sentence", "statements", "statement",
!   "accept", "end_accept", "accept_body", "accept_refer", "accept_excepts",
!   "accept_except", "envar", "acceptable", "add", "add_impl", "add_cond",
!   "end_add", "add_body", "rounded", "rounded_mode", "rounded_type",
!   "round_between", "might_be", "posneg", "scalar88s", "name88", "scalar88",
!   "allocate", "initialized", "alloc_ret", "compute", "compute_impl",
!   "compute_cond", "end_compute", "compute_body", "$@11", "compute_expr",
!   "$@12", "display", "end_display", "disp_body", "disp_vargs", "disp_upon",
    "exhibit_stmt", "exh_changed", "exh_named", "divide", "divide_impl",
    "divide_cond", "end_divide", "divide_body", "divide_into", "divide_by",
!   "end_program", "end_program1", "continue_stmt", "exit", "$@13",
    "exit_with", "exit_what", "exit_raising", "free", "free_tgts",
!   "free_tgt", "simple_cond", "kind_of_name", "until_expr", "bool_expr",
!   "log_expr", "log_term", "rel_expr", "rel_abbrs", "rel_lhs", "rel_abbr",
!   "rel_term", "rel_term1", "expr", "expr_term", "num_term", "value",
!   "factor", "if_stmt", "if_impl", "if_verb", "if_test", "if_body", "$@14",
    "next_statements", "end_if", "evaluate", "eval_verb", "eval_subjects",
!   "eval_subject", "eval_subject1", "eval_switch", "$@15", "eval_cases",
!   "eval_case", "eval_objects", "eval_whens", "eval_when", "$@16",
    "eval_obj_cols", "eval_obj_col", "eval_posneg", "eval_abbrs",
    "eval_abbr", "end_evaluate", "true_false", "scalar", "tableref",
    "tableish", "refmod", "typename", "name", "qname", "inof", "ctx_name",
    "context_word", "move", "move_tgts", "move_tgt", "multiply",
    "multiply_impl", "multiply_cond", "end_multiply", "multiply_body",
    "arith_errs", "arith_err", "relop", "rnames", "sum", "num_operand",
!   "num_value", "cce_expr", "cce_factor", "section_name", "@17",
    "section_kw", "stop", "stop_status", "subscripts", "subscript_exprs",
!   "arg_list", "any_arg", "signed_literal", "num_constant", "num_literal",
!   "open", "$@18", "open_files", "open_file", "open_io", "close", "$@19",
!   "close_files", "close_file", "close_how", "reel_unit", "for_kw",
!   "perform", "perform_stmts", "perform_proc", "perform_names",
!   "perform_times", "perform_vary", "perform_verb", "perform_until",
!   "perform_cond", "$@20", "perform_inline", "perform_start",
!   "perform_except", "$@21", "$@22", "perform_when", "perform_when1",
!   "$@23", "perform_ec", "except_names", "except_name", "except_files",
!   "perform_ec_other", "$@24", "perform_ec_common", "$@25",
!   "perform_ec_finally", "$@26", "test_before", "varying", "vary_afters",
!   "vary_after", "vary_by", "reserved_value", "spaces_etc", "variable_type",
!   "subtract", "subtract_impl", "subtract_cond", "end_subtract",
!   "subtract_body", "vargs", "varg", "varg1", "varg1a", "binary_type",
!   "literal", "raise", "read", "read_file", "read_body", "read_next",
!   "read_into", "read_eofs", "read_eof", "$@27", "write_eops", "write_eop",
!   "$@28", "read_key", "write", "write_file", "write_body", "write_what",
!   "file_record", "advance_when", "advancing", "advance_by", "io_invalids",
!   "io_invalid", "$@29", "delete", "delete_file", "delete_file_body",
!   "retry_phrase", "delete_impl", "delete_cond", "delete_body",
!   "delete_error", "delete_excepts", "delete_except", "end_delete",
!   "rewrite", "rewrite1", "rewrite_body", "end_rewrite", "start",
!   "start_impl", "start_cond", "end_start", "start_body", "merge", "$@30",
!   "set_tgts", "set_operand", "set_tgt", "set", "$@31", "locale_tgt",
!   "loc_categories", "loc_category", "locale_src", "locale_current",
    "many_switches", "set_switches", "switches", "one_switch", "on_off",
    "search", "search_linear", "end_search", "search_1_place",
    "search_1_body", "search_varying", "search_1_cases", "search_1_case",
    "search_1_when", "search_1_test", "search_binary", "search_2_body",
!   "search_2_cases", "search_2_case", "$@32", "search_stmts",
    "search_terms", "search_term", "search_expr", "sort", "sort_table",
    "sort_file", "sort_keys", "sort_key", "forward_order", "field_list",
    "sort_dup", "sort_seq", "sort_input", "sort_output", "sort_target",
    "release", "return_stmt", "return_impl", "return_cond", "return_end",
    "return_body", "return_file", "return_outputs", "return_output",
    "output_atend", "filenames", "filename", "label_name", "inspected",
!   "backward", "inspect", "tallies", "$@33", "$@34", "tally", "tally_fors",
    "tally_forth", "tally_matches", "tally_match", "numeref", "nume",
    "qnume", "replacements", "replacement", "replace_oper", "x_by_ys",
    "x_by_y", "insp_mtqual", "insp_quals", "insp_qual", "first_leading",
*************** static const char *const yytname[] =
*** 2550,2556 ****
    "init_data", "call", "call_impl", "call_cond", "end_call", "call_body",
    "call_returning", "entry", "ffi_name", "parameters", "parameter",
    "ffi_by_ref", "ffi_by_con", "ffi_by_val", "scalar_arg", "call_excepts",
!   "call_except", "cancel", "ffi_names", "alter", "$@37", "alter_tgts",
    "alter_tgt", "alter_to", "go_to", "resume", "labels", "label_1",
    "string", "string_impl", "string_cond", "end_string", "string_body",
    "str_delimiteds", "str_delimited", "str_input", "str_size", "str_into",
--- 2644,2650 ----
    "init_data", "call", "call_impl", "call_cond", "end_call", "call_body",
    "call_returning", "entry", "ffi_name", "parameters", "parameter",
    "ffi_by_ref", "ffi_by_con", "ffi_by_val", "scalar_arg", "call_excepts",
!   "call_except", "cancel", "ffi_names", "alter", "$@35", "alter_tgts",
    "alter_tgt", "alter_to", "go_to", "resume", "labels", "label_1",
    "string", "string_impl", "string_cond", "end_string", "string_body",
    "str_delimiteds", "str_delimited", "str_input", "str_size", "str_into",
*************** static const char *const yytname[] =
*** 2558,2577 ****
    "unstring_impl", "unstring_cond", "unstring_body", "unstring_src",
    "uns_delimited", "uns_delimiters", "uns_delimiter", "uns_into",
    "uns_tgts", "uns_tgt", "intrinsic_call", "function", "function_udf",
!   "intrinsic", "module_type", "convert_src", "convert_dst", "convert_fmt",
!   "numval_locale", "subst_inputs", "subst_input", "intrinsic_locale",
!   "lopper_case", "trim_trailing", "intrinsic0", "intrinsic_I",
!   "intrinsic_I2", "intrinsic_N", "intrinsic_N2", "intrinsic_X",
!   "intrinsic_X2", "intrinsic_v", "all", "anycase", "as", "at", "by",
!   "characters", "collating", "contains", "in", "data", "exception", "file",
!   "first_last", "is_global", "global", "initial", "is", "key", "last",
!   "lines", "mode", "native", "of", "on", "optional", "program_kw", "order",
!   "record", "sign", "is_signed", "start_after", "status", "strong",
!   "times", "then", "to", "usage", "with", "cdf", "cdf_library",
!   "cdf_basis", "cdf_use", "cdf_use_when", "cdf_use_excepts",
    "cdf_use_except", "cdf_use_files", "io_mode", "globally", "mistake",
    "procedure", "cdf_listing", "star_cbl_opts", "star_cbl_opt",
!   "cdf_option", "cbl_options", "cbl_option", "cdf_none", YY_NULLPTR
  };
  
  static const char *
--- 2652,2681 ----
    "unstring_impl", "unstring_cond", "unstring_body", "unstring_src",
    "uns_delimited", "uns_delimiters", "uns_delimiter", "uns_into",
    "uns_tgts", "uns_tgt", "intrinsic_call", "function", "function_udf",
!   "intrinsic", "module_type", "convert_alpha", "convert_nat",
!   "convert_hex", "numval_locale", "subst_inputs", "subst_input",
!   "locale_name", "intrinsic_locale", "lopper_case", "trim_trailing",
!   "intrinsic0", "intrinsic_I", "intrinsic_I2", "intrinsic_N",
!   "intrinsic_N2", "intrinsic_X", "intrinsic_X2", "intrinsic_v", "all",
!   "anycase", "as", "at", "by", "characters", "collating", "contains", "in",
!   "data", "exception", "file", "first_last", "for", "is_global", "global",
!   "initial", "is", "key", "last", "lines", "mode", "native", "of", "on",
!   "optional", "override", "program_kw", "order", "record", "sign",
!   "is_signed", "start_after", "start_pos", "status", "strong", "times",
!   "then", "to", "usage", "user_default", "when", "with", "cdf",
!   "cdf_library", "cdf_basis", "cdf_use", "cdf_use_when", "cdf_use_excepts",
    "cdf_use_except", "cdf_use_files", "io_mode", "globally", "mistake",
    "procedure", "cdf_listing", "star_cbl_opts", "star_cbl_opt",
!   "cdf_option", "cbl_options", "cbl_option", "cdf_none", "xmlgenerate",
!   "xmlgen_impl", "xmlgen_cond", "xmlgen_body", "xmlgen_count",
!   "xmlgen_decl", "xmlgen_namespace", "namespace_prefix", "xmlgen_nameof",
!   "xmlgen_ids", "xmlgen_id", "xmlgen_typeof", "xmlgen_types",
!   "xmlgen_type", "xmlgen_eltype", "xmlgen_suppress", "xml_suppressions",
!   "xml_suppression", "xml_when_phrase", "xml_when_figs", "xml_when_fig",
!   "xml_generic_suppression", "xml_generic_numeric", "xmlparse",
!   "xmlparse_impl", "xmlparse_cond", "xmlparse_body", "xmlencoding",
!   "xmlreturning", "xmlvalidating", "xmlprocs", "xmlexcepts", "xmlexcept",
!   "end_xml", YY_NULLPTR
  };
  
  static const char *
*************** yysymbol_name (yysymbol_kind_t yysymbol)
*** 2581,2592 ****
  }
  #endif
  
! #define YYPACT_NINF (-2118)
  
  #define yypact_value_is_default(Yyn) \
    ((Yyn) == YYPACT_NINF)
  
! #define YYTABLE_NINF (-1792)
  
  #define yytable_value_is_error(Yyn) \
    0
--- 2685,2696 ----
  }
  #endif
  
! #define YYPACT_NINF (-2284)
  
  #define yypact_value_is_default(Yyn) \
    ((Yyn) == YYPACT_NINF)
  
! #define YYTABLE_NINF (-1973)
  
  #define yytable_value_is_error(Yyn) \
    0
*************** yysymbol_name (yysymbol_kind_t yysymbol)
*** 2595,2879 ****
     STATE-NUM.  */
  static const int yypact[] =
  {
!      249,   276,   333,   848, -2118,   -59,   112,   249, -2118,   370,
!      894,   902,   971, -2118, 33083, 33418,   976,    52,   188,   703,
!      368,   392, -2118, -2118,   531, -2118, -2118,   891, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118,   329,   640,   809,   809,   923,   923,
!      587,   136, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!      540,  1237,   393, -2118, 46802,  1217,  1228, -2118, -2118, -2118,
!    -2118,    35, -2118,   851, -2118,  -173,  1037, -2118,   809,   809,
!      809, -2118, -2118,  1324,   133, -2118,  1256, -2118, -2118,  1081,
!    -2118, -2118, -2118,   748, -2118, -2118,   809, -2118, -2118, -2118,
!    -2118, -2118, -2118,   550,   670,   557,  1142,   176,  1298,  1081,
!     1263,   -36, -2118,   787,   818, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118,   620,  1064,  1289, -2118,
!    -2118, -2118, -2118, -2118,  1161, -2118,   636,  1142, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118,   641,   649,   663,   697,  1326,
!      176, -2118,    43, -2118,  -233, -2118,   392,   506, -2118, -2118,
!     1337, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!      676, -2118, -2118, -2118,  1289, -2118, -2118, -2118,  1161, -2118,
!      102, -2118,   -94, -2118, -2118, -2118,   732, -2118, 50595,   -49,
!    -2118,   739,   746,   514, -2118, -2118, -2118, -2118,   -25, -2118,
!    -2118,  1008,   750,   754,   547, -2118,  1280, -2118, -2118, -2118,
!      756,   392,   757,   758,   102, -2118,   -52,  3007,  3007,  3007,
!    -2118, -2118,   -84, -2118, -2118, -2118,    66, -2118,     4, 50595,
!     1177,   878, -2118,   761, -2118, -2118, -2118,  1433,  1280,   -20,
!    -2118, -2118,  1435,   684,  1436,  3993, -2118,  1438,  1439,   -52,
!    -2118,   685, -2118, 50595,  1440,  1445,  1447, -2118,  3150, -2118,
!      184,   779, -2118,  1001, -2118, -2118, -2118, -2118, -2118, 50595,
!    50595, -2118,  1487,  1008, 43447, -2118, -2118, -2118,  1099,   794,
!    12907, 12907, -2118,  1498,  1280,  1250,   267,  -109, -2118,   -54,
!     1475,   189,  1476,  1478,  1482,   -65, -2118, -2118, -2118, -2118,
!    -2118, -2118,    -7,   809,   475, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118,  1484,  1486,  1002,   809,  1488,
!     1282,   825,  3993, -2118, -2118,   809, -2118, -2118, -2118, -2118,
!     1266,   809,   279,   279,   809,   100,   851, -2118, -2118,  1096,
!    -2118,   956, -2118, -2118, -2118, -2118, -2118, -2118,   -22, -2118,
!    -2118,   949,  -174, -2118,   -55,  1152, -2118,   198, -2118, 44733,
!       62,  1501,  1322,   809,  -119,   748,   104,    68, -2118, -2118,
!     2128, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118,  -125, -2118, -2118,
!    -2118,    58,   948, -2118, 50595, -2118, -2118, -2118, 50595, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    31285, -2118,  1136, -2118, -2118,  1481, -2118, -2118, -2118, 50595,
!    35965, -2118, 47108, 47108, -2118, 50595,  1346,  1510, 39404, 38088,
!    -2118, -2118,    84, 47434, 38750,  1490, -2118, 34680, 36294, -2118,
!     1511,  1515,  1510,   179, 47740, 40517, 48066, 43774,    74, 36772,
!     1510, 48393,   179, 32410,  1504,  1312, 42158,   348, 45039, -2118,
!     1089, 11539,   849, -2118,  2628, -2118, -2118,    48,  1216, -2118,
!      887,   887, -2118, -2118,   890,   890, -2118,  -237,   989, -2118,
!    -2118,   892,   892, -2118, -2118, -2118, -2118,   877, 29090, -2118,
!    28714, -2118, -2118,   895,   895, -2118, -2118, -2118, -2118, -2118,
!    17444, -2118,   885,   885, -2118, -2118, -2118, -2118, -2118, -2118,
!      903,   903, -2118, -2118, -2118,   901,   901, -2118, -2118, -2118,
!      904,   904, -2118, -2118, -2118, -2118, -2118,   907,   907, -2118,
!    -2118, -2118,   914,   914, -2118, -2118, -2118, -2118, -2118, -2118,
!      909,   909, -2118,   910,   910, 12223,   851,  1109,   269, -2118,
!    -2118,   809,   851,   809,  1331,   805,  1535,  1009, -2118,  1534,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,   340,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118,  1084,  1068,  1167,
!    -2118, -2118, -2118,  1388,  1388, -2118, -2118,  1090,     5,   809,
!      911,  1390,  1390,  1240,   149, -2118,  1390,  1390,  1390, -2118,
!    -2118, -2118,   916,  1333,  1581,  1088,  1088, -2118,  1587,   809,
!      809, -2118,   809,  1372,   809, -2118,   835, -2118, -2118,  1594,
!    -2118,  1578,  1598, -2118, -2118, 50595,   106, 40892,  1578,  1048,
!      809,  1601,  1956, -2118, -2118,   204, -2118,   809, -2118,    69,
!      562,  1295, -2118, -2118,  1573, -2118,  1087,   631,   760,   631,
!     1350,  1288,   939, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!     1626, -2118,  1230, -2118, -2118, 50595, -2118, -2118, -2118,  1616,
!     1617,  1616, -2118, -2118,   437, -2118, -2118, -2118,  1141, -2118,
!    -2118, -2118,  1123,   518,  1239,  1105,  1239, -2118, -2118,  -138,
!      974, -2118, -2118, -2118, -2118,  1229, -2118, 45365,  1232, 32410,
!    32785, 32410,   954,   681,   695,   963, -2118, -2118, -2118, 21579,
!    -2118, -2118, 51702, 32410, -2118, 12907,    47,   966, -2118, 38088,
!    45365,  1104,  1104,  1643, -2118, 35487, -2118, -2118, -2118, -2118,
!    47434, -2118, -2118,   339,    70, -2118, 47108,  1637,  1643,  1168,
!    50595, 32410, -2118,  1623,  1109, -2118, -2118, -2118, -2118, -2118,
!    39732, 45365,  1241,   972, -2118, -2118,  6002, -2118, -2118, -2118,
!    -2118, -2118,  1643,  1191,  1199,   572,   183,  1088,   287, -2118,
!    -2118,    51, -2118,   -84, 45843, -2118, -2118, -2118,  5318, -2118,
!    -2118, -2118, 50922,  1510, 50595,  1133,  1139,   114, -2118,  1643,
!     1455,   740,   282,    32,  1352,  1648,  1329,  1226,   -84,  1510,
!     1109,  1366,    20, 50595,  1120,  1520,   175, -2118, 48699,  1682,
!    50595,  1275,    57,  1099, -2118, -2118, 41190, -2118,  1647,  1167,
!      208, -2118, -2118, -2118,  1657, 42486, -2118,  1424, -2118, -2118,
!    -2118,    83, 38088, 37101,  1643,  1623,   -18, -2118, -2118,  1657,
!     1425, -2118,    23,   665,  1472,    30,  1143, -2118,  1300,  1285,
!    42158, -2118, -2118,  1689, -2118,  1070, -2118, -2118, 46802,  1023,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,    48,
!    18831,  5589, -2118, -2118, -2118, -2118, -2118, -2118,  1536, -2118,
!    -2118,  4066, -2118, -2118, -2118, -2118, -2118, -2118,  1665, 29466,
!    29090, -2118, -2118, -2118,  1588,   716, -2118, -2118, 29841,   719,
!    -2118,   265, 15911,   338, -2118, -2118, -2118,    98,   912, -2118,
!    -2118, -2118, -2118, -2118, -2118,  1181, -2118, 38088,   472,  1183,
!    -2118, -2118, 10106,  -165,  -165,  -165, -2118, -2118,  8126, -2118,
!      377,  1539,  1050,  -140, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,   809,  1363,
!    50595,  4036, 50595,   809,  1265, -2118,   809,   809, -2118,   809,
!     1202,   645, -2118, -2118, -2118,  1227, -2118, -2118,   144,   809,
!    -2118, 50595, -2118,  1415,  1415,   809,  1233,   809,  1715, -2118,
!     1704,  1140, -2118, -2118, -2118, -2118,  1140, -2118, -2118, -2118,
!     1338, -2118, -2118,   809,   809,   763,   856,    69,  1711, -2118,
!     1125, -2118, -2118,   485, -2118,  1206,   -41, -2118, -2118, 50595,
!    -2118, -2118, -2118,  1726, -2118,  1020,  1282,   222,  1471,  1728,
!      809,  1601, -2118,  2640,  1956, -2118,  1717,   103,  1212,   -12,
!    -2118,    16, -2118,  1448,   782,  1732,   431, -2118, -2118, -2118,
!    -2118, -2118, -2118,  1538,   631, -2118,  1363, -2118,    41,  1480,
!      631, -2118,  1167, -2118,  1092, -2118, -2118,  1727,  1727, -2118,
!     1727, -2118, -2118, -2118, -2118, -2118, -2118,    14,    14,    14,
!      693, -2118, -2118,  1531, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118,  1770, -2118, -2118,  1351, 50595, 50595, -2118, -2118,
!     1371, -2118, 50595, -2118, -2118,  1071, 21954, 32410, 32410, 32410,
!    32410, 32785, -2118, -2118,  1073, -2118,  1074, -2118, -2118, -2118,
!    -2118, -2118, -2118,  1075,  1076, -2118, -2118, -2118,  1078, -2118,
!    -2118, -2118,  1079, -2118, -2118, -2118,  1080, -2118,  1083, -2118,
!    -2118, -2118,  1510, -2118, -2118, -2118, -2118, -2118, -2118,  1085,
!     1086,  1091,  1093,  1094, -2118,  1095, -2118, -2118, -2118, -2118,
!    -2118, -2118,  1097, -2118,  1098,  1101,  1102,  1103,  1106, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,  1107,
!    -2118, -2118,  1108, -2118,  1110, -2118, -2118, -2118,  1111, -2118,
!    32410, -2118, -2118, -2118,  1112, -2118, -2118, -2118, -2118, -2118,
!    -2118,  1113,  1116, -2118, -2118, -2118, -2118,  1121, -2118,  1126,
!    -2118,  1128, -2118, -2118, -2118,  1129, -2118, -2118, -2118, -2118,
!    -2118, -2118,  1130, -2118,  1136, -2118,  1131, -2118,  1134,  1135,
!     1144,  1145,  1146,  1147,  1148,   954, 10864, -2118, -2118,  1650,
!    37430,  1371, -2118, -2118, -2118, -2118,  1643, 18831, 50595, 38088,
!    -2118, 47434, -2118,  1234, -2118, -2118,   339, 18831, -2118, -2118,
!    41525, 50595, -2118,   363,  1637, -2118,  1643,  1376, -2118,  -143,
!     1168,  1149,  1363,  1623, -2118, -2118, -2118,  1371, -2118, 50595,
!     1747, -2118,  1643, 50595, 50595, 38088, 38088, -2118, -2118, -2118,
!     1319, -2118, -2118, 49025, -2118,  1767, -2118,  1088,  1088,  1167,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118,   -46, -2118,  -247, -2118,   105,  -201,  1634,
!    -2118,   199, -2118,  1167,  1249, 38750, 38750,   127,  1257,  1262,
!     1643, 38088, -2118, -2118, -2118, -2118,   740, -2118,  1510,  1356,
!    -2118,  1362,  1457, -2118, -2118,    37, -2118,    27, 50595, -2118,
!     1648, -2118, 18831, 50595, -2118,  1510, -2118, -2118, 44101, -2118,
!       20, -2118, -2118,   843, 50595, -2118, -2118,  1520, -2118, 29090,
!    -2118,  1798, -2118,  1302, -2118,  1304,  1305, -2118, 50595,  -142,
!    -2118, -2118,  1136,  1628, 35158,  1629, -2118, -2118,  1647, -2118,
!       90, -2118,   208, -2118,    71,   208,    80,  1568, -2118,  1657,
!    18831, 50595, -2118, -2118,  1538, -2118, 37759, 38088,  1643,  1623,
!    -2118,   719, -2118,  1657,  1538,  1496, -2118, -2118,    12, -2118,
!       15, -2118, -2118, 33724,  1242, -2118,  1845, 41525, -2118, 39404,
!    50595, -2118, -2118, -2118,  1164, -2118, -2118, 18831, 10181, -2118,
!    -2118, -2118, -2118,  1166, -2118,  1273,  1281, -2118, 48699, -2118,
!    -2118, -2118,  1198, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    30216, 29090, -2118, -2118,   479,   177, -2118, 25706, 25706, 26457,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118,   118,   831, -2118,   129,  1730, 13600, -2118,
!     1733, -2118, -2118, -2118,  3988, 28714,  1211,  1699, -2118, 18175,
!     1701, -2118, 29090,  1551, -2118,  1339, -2118, -2118,  1354, -2118,
!     8126,  1497, -2118, -2118, -2118,  6750, -2118,  1539, 38088,  1539,
!    -2118, 47434, -2118,   729,   443,   809, -2118, -2118, -2118, 49331,
!     1318, -2118,   378, -2118,  1178,  1837, 50595, -2118, -2118, -2118,
!     1463,  1456,  1456, -2118, -2118, -2118,   809,   809, 50595, 51228,
!    -2118,  1510,  1510,  1869,   809,  1871, -2118, -2118,  1876, -2118,
!    -2118, -2118,  1879,  1880, -2118, -2118, -2118, -2118, -2118,   447,
!    -2118, -2118, -2118,   905, -2118,  1236,   829,  1009, -2118, -2118,
!    -2118,  1862, -2118,  1863,  1872, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118,   855, -2118,   290, -2118,   -62, -2118,  1878,  1403,
!    -2118,  1884,    91, -2118,  1167, -2118, -2118, 44101, -2118,  3377,
!    -2118,  1275,  1275,  1275, -2118, -2118,   972, -2118,   693, -2118,
!    -2118,  1380, -2118, -2118,   809,  1253,  1254,  1255, -2118, -2118,
!      972, -2118, 50595, -2118, -2118,   809,  1087,  1639, -2118, 50595,
!     1244,  1245, -2118, -2118,  1903, -2118,  1283, -2118, -2118,   651,
!       14,    14,    14,    14, -2118, -2118,  1427, -2118, -2118, 31285,
!    -2118, -2118, -2118, -2118,  1246,   695,   695,   963,   963, -2118,
!    39404, 31660, 39404, 32410, 32410, 39404, 32410, 32410, -2118, 39404,
!     1841,  1850,   817,  1844, 39404,  1225, 39732, 39404, 39404, 39404,
!    39404,   315, 39404, 44101, 31660,  1248,  1315, 39404, 39404,  1214,
!    39404,  4653, 44101, 32410, -2118, 44101, 32410, 32410, 32410, 32410,
!    39404, 39404, 31660,  1670,   823,   392, -2118, 50595, -2118, 18831,
!    14261, 50595,    95, 50595,  1618, -2118,  1500, 47434, 18831, 14316,
!    -2118,  1530,  1750, 39076, -2118, -2118, -2118,   152, -2118, -2118,
!    -2118, -2118,   442,   568, -2118,   809, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,  1627,
!    50595,  1631, -2118, -2118, -2118, -2118, -2118, -2118, 50595,  1805,
!     1386,   748,  1310,  1686,  1998, 44101,   618, -2118,   314, 50595,
!    10790, 11474, 38750, 38750, 38750, 50595,  1633,  1635, -2118,  1510,
!    -2118, -2118, -2118, 50595,  1603, 18831, -2118, -2118, -2118, -2118,
!    -2118, 14504, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118,  1931, -2118, -2118, -2118, 18503, 18831,
!    44101,  1547, 50595, -2118, -2118, -2118, 38088, 49657, -2118,  1275,
!    -2118, -2118, -2118, -2118, 38088, -2118,   930, -2118, -2118,    80,
!    -2118, -2118,  1363,    80, -2118,  1468,  1636, 18831, 14589,    42,
!    42803, 50595, 50595,  1651, 50595,  1793, 50595, 18831, -2118, -2118,
!    -2118, 34202, -2118, -2118,  1020,  1020, -2118, -2118,  1972, 50595,
!    -2118, 40038,  6686, -2118, -2118, 15165, 32410, -2118, -2118, -2118,
!    -2118,   507, -2118,  1307, -2118,   719, 30216, -2118, -2118, 26457,
!      559, -2118, -2118,  1071, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, 25330, -2118,
!    -2118, -2118,  3323, -2118,  1846, 15250, -2118, -2118, 38088, -2118,
!     8810, -2118,  1810,  1539,  1660, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, 50595, -2118, -2118, 50595, -2118, -2118, -2118,
!        9, -2118, -2118, -2118, -2118, -2118,  1483, -2118, -2118, -2118,
!    -2118,  1967,  1969, 50595,  1510,  1510, -2118,  1970, -2118,  1430,
!     1571,  1575, -2118, -2118, -2118, -2118,  1163,  1555, -2118, -2118,
!    -2118, -2118,   -50,   -51,  1685,  1963, -2118,   -37, -2118,  1282,
!    -2118,  1983, -2118, 50595, 50595, 45365, -2118,   973,  1793,  1793,
!     1793, 50595, -2118, -2118, 50595, -2118,  1167, -2118, -2118, -2118,
!    -2118, -2118, -2118,   723,   723, -2118, -2118, -2118, -2118, -2118,
!    18111, -2118, -2118, 20454, -2118, 39404,  1311,  1313,   893, 22329,
!    22704,  1640,  1314, 32410,  1316, 32410, 32410,  1317, 39404, 39404,
!     1320,  1321, 39404, 18439, 18767, 19095, -2118, -2118, -2118, -2118,
!    -2118,  1325, 17783,  1327, 20829, -2118, 39404, 39404, 39404,  1811,
!    39404, 39404, 39404, 17783,  1328,  -108, 32410, 23079,  1332,  1335,
!    32410,  1336, 32410,  1340, 39404, 21204,  1323,  1167,  1991, -2118,
!      -39,  1729, -2118,  1399, -2118, 50595, 15438, 50595,  1492, -2118,
!    15493, 50595,  1712, 50595, -2118, 30910, 41823, 30535,  1622,  1560,
!    -2118,  1548,   818, 32410, 32410, 18831, 50595, 50595, -2118, -2118,
!      226,  1765,  1781,  1310, -2118, -2118, -2118,  1502, -2118,  1820,
!    -2118, -2118, -2118, -2118,   618, -2118, 44101,    79,  2020,  1485,
!    -2118, 12158, 12842, 13526, 38394, -2118, -2118,   809, -2118, 16099,
!    49963, -2118, 18831,  1909, 16154, -2118, 16815, -2118, -2118, -2118,
!    -2118, -2118, -2118, 46170, -2118, -2118, -2118, -2118,    85, 50595,
!    -2118,   809, -2118,  1625, 16342,  1999, -2118, -2118, -2118, -2118,
!    -2118, 50595, 50595,  -171,  1370, -2118, 43774,   584, -2118, 44407,
!    -2118, 16427, -2118, -2118, -2118, 50595, -2118,  1353, -2118, -2118,
!      593, 26832, 27207, -2118, 15911, -2118, -2118, -2118, 26082, -2118,
!      -17,  1859, -2118, -2118,   738, -2118, 30216, -2118, -2118,  1835,
!     1349,  1885, -2118, 38088,  1483, -2118, -2118,  1677,   809, -2118,
!    -2118, -2118, -2118, -2118,  2045,  1088,  1088, -2118,  1544, -2118,
!    -2118, -2118, 40892,  1860,  1282,  2031, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118,  2039,  2035,  1192, -2118,
!    50595, -2118, -2118, 50595, -2118,  1382, -2118, -2118, 39404, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118,   699, -2118, -2118,
!    23454, -2118, 23829, -2118,  1906, -2118,  1384, -2118, 32410, 24204,
!    -2118,  1385,  1387, -2118, -2118, 19423, -2118,  1392, -2118,  1394,
!    -2118,  1395, -2118,  2059, -2118,  1811, -2118, -2118,  1396,  1398,
!    19751, -2118,  -114, -2118,   558,  1400,  1402,  1404,  1811, -2118,
!    -2118, -2118,  1405, 32410, -2118, 24579, -2118, -2118,  1406, -2118,
!     1407, -2118,  1408, -2118, -2118, 46476,  1773,  1569, -2118, -2118,
!    -2118, -2118,  1645, 50595, -2118, -2118,  1734, -2118, -2118, -2118,
!    -2118, -2118, -2118, 50595,  1676, -2118,   693, -2118,  1615, -2118,
!    -2118, -2118, -2118, -2118, 17003, 50595, 50595, -2118, -2118, -2118,
!     1886, -2118,  1793, 44101, -2118,  1887,  9422, -2118,   618,  2020,
!    -2118, -2118,  1788,  1371,   -84,  1510, 50595, -2118, 50595, -2118,
!     1429,  2924, -2118, 17193, -2118, 50595, 50289, -2118,  1662,  1510,
!      -77, 50595, 50595, -2118, -2118, 50595, 50595,  1742,  1793, -2118,
!     1636,  1636,  1636, -2118,  2065, -2118, -2118, -2118, 27582, -2118,
!    27582, -2118, -2118,   719,   598, -2118, 30216, 25330, 27957, 28332,
!    -2118, 18831, 38088,  1556,   435, -2118, -2118,  2098,  1808, -2118,
!      126, -2118,  1944,  1835,    11,  1722, 50595, -2118,   809,   809,
!     2089, -2118, 40892, -2118,  1282, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118,  1432, -2118,  1443,  1790, -2118,  1444, -2118,  1446,
!     1940,  1811, -2118, 24954, -2118,  1452, -2118, -2118, -2118,  1453,
!    -2118, -2118, -2118, -2118,  1454, -2118, -2118, -2118, 20079, -2118,
!    -2118, -2118, -2118, 39404, -2118, -2118, -2118,  1458, -2118,  1459,
!    -2118,  1460, -2118, -2118, -2118,  1678, 50595,  1510, -2118, -2118,
!    -2118,  1167, -2118, -2118, 50595, -2118, 43130, 44101,   845, 44101,
!    -2118, -2118, -2118,   130, -2118,  2107,   108, -2118, 32035, 49963,
!    -2118,  1958, -2118, -2118, -2118,   809,  1510,  1510,  1693, -2118,
!    -2118, -2118, 32410, -2118, 50595, 50595, 50595, 50595,  1461,  1462,
!    -2118, -2118, -2118, 27582, -2118, -2118, 30216, 27582, -2118, 17088,
!    -2118, -2118, -2118, -2118, -2118, -2118,  1510, -2118, 18831, -2118,
!     1510, -2118,  1890, -2118,  1556, -2118,  1867, -2118,   906, 50595,
!    -2118,  2121,  2130, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, 39404,  1464, -2118,  1465, -2118, -2118, -2118, -2118,  1466,
!    39404, -2118, -2118, -2118, -2118,  1510,   435, -2118, -2118, -2118,
!    -2118,   845, -2118, -2118, -2118,   845, -2118,  1812,   845, 44101,
!      845, 44101, 44101,   130, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118,  2140,  1510,   809, -2118, -2118,  1907, -2118,  1644, -2118,
!    -2118,  1469, -2118,  1473,  5392,  1510,  2153, -2118,  1861, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118,  1510, -2118, -2118, -2118, -2118, 44101, -2118,   845,
!     7370, -2118, 50595,  8054,  8738, -2118, -2118, -2118,  1505,  2140,
!     1636,  1636, -2118, -2118, -2118, 18831,  2153, -2118,  1512, -2118,
!    -2118, -2118, -2118,  2140, -2118, 50595, 50595,  6066, 18831,  2153,
!    -2118, -2118, -2118, -2118,  7442, 18831,  9494
  };
  
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
--- 2699,3004 ----
     STATE-NUM.  */
  static const int yypact[] =
  {
!      245,    33,   460,  1284, -2284,  -124,   154,   245, -2284,   708,
!      754,  1002,  1007, -2284, 43832, 44170,   269,    74,   379,  1067,
!      394,   406, -2284, -2284,   552, -2284, -2284,   936, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,   699,   -18,   852,
!      852,  1125,  1125,   589,   146, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,   540,  1257,   375, -2284, 57545,  1239,  1248,
!      872, -2284, -2284, -2284, -2284,    69, -2284, -2284,   347,  1043,
!    -2284,   852,   852,   852, -2284, -2284,  1295,   165, -2284,  1274,
!    -2284, -2284,  1098, -2284, -2284, -2284,   852, -2284,   776, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284,   780,   618,   221,  1220,
!      171,  1331,  1098,  1311,    13,   919, -2284,   700, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,   629,
!     1139,  1317, -2284, -2284, -2284, -2284, -2284,  1333, -2284,   675,
!     1220, -2284, -2284, -2284, -2284, -2284, -2284, -2284,   677,   686,
!      710,   715,  1319,   171, -2284,   111, -2284,  -172, -2284,   406,
!        1, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,  1330,
!    -2284, -2284, -2284,   744, -2284, -2284, -2284,  1317, -2284, -2284,
!    -2284,  1333, -2284,   129, -2284,   -71, -2284, -2284, -2284,   719,
!    -2284, 63419,   584,   731,   738,   668, -2284, -2284, -2284, -2284,
!      -10, -2284, -2284,   981,   740,   742,   721, -2284,  1262, -2284,
!    -2284, -2284,   753,   406,   756,   767,   129, -2284,   485,  3333,
!     3333,  3333, -2284, -2284,   -34, -2284, -2284, -2284,    53, -2284,
!      -44, 63419,   348, -2284,   772, -2284, -2284, -2284,  1456,  1262,
!       -2, -2284, -2284,  1465,   733,  1472,  5199, -2284,  1492,  1501,
!      485, -2284,   790, -2284, 63419,  1506,  1508,  1516, -2284,  3829,
!    -2284,   342,   839, -2284,  1069, -2284, -2284, -2284, -2284, -2284,
!    63419, 63419, -2284,  1554,   981, 51561, -2284, -2284, -2284,  1155,
!      855, 26226, -2284,   730,  1262,  1313,   280,   -91, -2284,   -35,
!     1537,   268,  1538,  1540,  1541,   -99, -2284, -2284, -2284, -2284,
!    -2284, -2284,  -292,   852,   716, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,  1546,  1548,  1065,   852,  1555,
!     1345,  2767, -2284, -2284,   852, -2284, -2284, -2284, -2284,  1329,
!      713,   804,   804,   852,   -23,   872, -2284, -2284,  1158, -2284,
!     1217, -2284, -2284, -2284, -2284, -2284, -2284,   192, -2284, -2284,
!     1011,   292, -2284,   -21,  1211, -2284,  1410, -2284, 55168,    57,
!     1567,  1384,   852,   449,   776,   176,    73, -2284, -2284,  1685,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,   -95, -2284, -2284, -2284,    88,
!     1195, -2284, 63419, -2284, -2284, -2284, 63419, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, 41009, -2284,
!     1197, -2284, -2284,  1543, -2284, -2284, -2284, 63419, 46565, -2284,
!    57871, 57871, -2284, 63419,  1409,   183, 49638, 48527, -2284, -2284,
!       84, 58177, 19582,  1551, -2284, 45913, 46891, -2284,  1577,  1578,
!     1579,   193, 58503, 52692, 58809, 51888,   114, 47217,  1579, 59135,
!      193, 42905,  1568,  1376, 59442,  1076, 55506, -2284,   954, 63419,
!     1053, 10696,   910, -2284,  6568, -2284, -2284,    61,  1283, -2284,
!      959,   959, -2284, -2284,   956,   956, -2284,  -182,  1055, -2284,
!    -2284,   957,   957, -2284, -2284, -2284, -2284,   942, 37529, -2284,
!    36265, -2284, -2284,   961,   961, -2284, -2284, -2284, -2284, -2284,
!    19285, -2284,   948,   948, -2284, -2284, -2284, -2284, -2284, -2284,
!      962,   962,   962, -2284, -2284, -2284,   951,   951, -2284, -2284,
!    -2284,   960,   960, -2284, -2284, -2284, -2284, -2284,   963,   963,
!    -2284, -2284, -2284,   968,   968, -2284, -2284, -2284, -2284, -2284,
!    -2284,   964,   964, -2284,   965,   965, -2284,   952,   952, -2284,
!      952,   952,   872,  1165,   272, -2284, -2284,   852,   872,   852,
!     1405,   725,  1599,  1062, -2284,  2269, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,   620, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  1140,  1122,  1221, -2284, -2284, -2284,  1444,
!     1444, -2284, -2284, -2284,  1054,   953,  -240,   -88,  1417,  1453,
!     1453,  1301,   187, -2284,  1453,  1453,  1453, -2284, -2284, -2284,
!    -2284,   966,  1387,  1642,  1145,  1145, -2284,  1647,   713,   852,
!    -2284,   852,  1428,   852, -2284,   275, -2284, -2284,  1650, -2284,
!     1631, -2284,   544,   160, -2284, -2284, 63419,   140, 53466,  1631,
!     1099,   852,  1653,  1779, -2284, -2284, -2284,   232, -2284,   852,
!    -2284,   185,   101,  1346, -2284, -2284,  1624, -2284,  1138,   792,
!      871,   792,  1402,  1337,   982, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284,  1677, -2284,  1344, -2284, -2284, 63419, -2284, -2284,
!    -2284,  1668,  1669,  1668, -2284, -2284,   314, -2284, -2284, -2284,
!     1187, -2284, -2284, -2284,  1170,   597,  1285,  1157,  1285, -2284,
!    -2284, -2284,  -140,  1016, -2284, -2284, -2284, -2284,  1280, -2284,
!    55803,  1281, 42905, 43537, 42905,  1003,   728,   729,  1009, -2284,
!    -2284, -2284, 24257, -2284, -2284, -2284, 64524, 42905, -2284, 26226,
!       71,  1010, -2284, 48527, 55803,  1113,  1113,  1695, -2284, 46239,
!    -2284, -2284, -2284, -2284, 58177, -2284, -2284,   277,   113, -2284,
!    57871,  1690,  1695,  1216, 63419, 42905, -2284,  1612,  1711,  1688,
!     1165, -2284, -2284, -2284, -2284, 49965, 55803,  1307,  1027, -2284,
!    -2284, -2284,  6504, -2284, -2284, -2284, -2284, -2284,  1695,  1255,
!     1258,    59,   118,  1145,   322, -2284, -2284,    99, -2284,   -34,
!    56280, -2284, -2284, -2284,  5816, -2284, -2284, -2284, 63745,  1579,
!    63419,  1192,  1193,    67, -2284,  1695,  1513,   774,    78,    49,
!     1411,  1703,  1382,  1275,   -34,  1579,  1165,  1414,    41, 63419,
!     1166,  1569,   222, -2284, 59768,  1730, 63419,   282,  1322,    95,
!     1155, -2284, -2284, 54535, -2284,  1697,  1221,   127, -2284, -2284,
!    -2284,  1704, 50600, -2284,  1473, -2284, -2284, -2284,   104, 48527,
!    47546,  1695,  1688,   805, -2284, -2284,  1704,  1474, -2284,    39,
!      151,  1522,   189,  1189, -2284,  1352,  1336, 59442, -2284, -2284,
!     1738, -2284,  1118, -2284, 63419,  1748,   -42,  1748, -2284, 57545,
!     1064, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!       61, 29377,  5821, -2284, -2284, -2284, -2284, -2284, -2284,  1582,
!    -2284, -2284,  6087, -2284, -2284, -2284, -2284, -2284, -2284,  1709,
!    38161, 37529, -2284, -2284, -2284,  1633,   741, -2284, -2284, 38793,
!      186, -2284,   324,  3478,   399, -2284, -2284, -2284,    89,   762,
!    -2284, -2284, -2284, -2284, -2284, -2284,  1232, -2284, 48527,   -33,
!     1235, -2284, -2284, 10632,  -133,  -133,  -133, -2284, -2284, 24321,
!    -2284,   487,  1586,  1095,  -123, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,   852,  1416, 63419,  4536, 63419,
!      852,  1316,   852,   852, -2284,   852,  1231,    63, -2284, -2284,
!    -2284,  1277, -2284, -2284,   297,   852, -2284, 63419, -2284,  1467,
!     1467,   167, -2284, -2284, -2284,  1287,  1752,  1185, -2284, -2284,
!    -2284, -2284,  1185, -2284, -2284, -2284,  1391, -2284, -2284,   852,
!      852,   858,   544,  1005,   185,  1765, -2284,    68, -2284, -2284,
!      510, -2284,  1259,    -5, -2284, -2284,   852, -2284, -2284, -2284,
!    -2284, -2284, -2284, 63419, -2284, -2284, -2284,  1781, -2284,  1088,
!     1345,    93,  1526,  1787,   852,  1653, -2284,  3190,  1779, -2284,
!     1766,   816,  1267,    -7, -2284,   -43, -2284,  1503,   517,  1790,
!      435, -2284, -2284, -2284, -2284, -2284, -2284,  1589,   792, -2284,
!     1416, -2284,    91,  1535,   792, -2284,  1221, -2284,   291, -2284,
!    -2284,  1786,  1786, -2284,  1786, -2284, -2284, -2284, -2284, -2284,
!    -2284,  1322,  1322,  1322,    30,    30,    30, -2284,   684, -2284,
!    -2284,  1584, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!     1825, -2284, -2284,  1406, 63419, 63419, -2284, -2284,  1426, -2284,
!    63419, -2284, -2284,  1116, 24889, 42905, 42905, 42905, 42905, 43537,
!    -2284, -2284,  1120, -2284,  1121, -2284, -2284, -2284, -2284, -2284,
!    -2284,  1123,  1129, -2284, -2284, -2284,  1130, -2284, -2284, -2284,
!     1131, -2284, -2284, -2284,  1132, -2284,  1133, -2284, -2284, -2284,
!     1579, -2284, -2284, -2284, -2284, -2284, -2284,  1134,  1136,  1142,
!     1143,  1144, -2284,  1147, -2284, -2284, -2284, -2284, -2284, -2284,
!     1148, -2284,  1149,  1151,  1152,  1153,  1154, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,  1160, -2284, -2284,
!     1161, -2284,  1162, -2284, -2284, -2284,  1163, -2284, 42905, -2284,
!    -2284, -2284,  1164, -2284, -2284, -2284, -2284, -2284, -2284,  1168,
!     1169, -2284, -2284, -2284, -2284,  1171, -2284,  1175, -2284,  1176,
!    -2284, -2284, -2284,  1178, -2284, -2284, -2284, -2284, -2284, -2284,
!     1180, -2284,  1197, -2284,  1182, -2284,  1196,  1200,  1202,  1203,
!     1204,  1205,  1206,  1003, 19349, -2284, -2284,  1712, 47872,  1426,
!    -2284, -2284, -2284, -2284,  1695, 29377, 63419, 48527, -2284, 58177,
!    -2284,  1300, -2284, -2284,   277, 29377, -2284, -2284, 52987, 63419,
!    -2284,   469,  1690, -2284,  1695,  1423, -2284,  1810,  1216,  1208,
!    -2284,  1579, -2284, -2284,  1711, 29377,  1416,  1688, -2284, -2284,
!    -2284,  1426, -2284, 63419,  1826, -2284,  1695, 63419, 63419, 48527,
!    48527, -2284, -2284, -2284,  1395, -2284, -2284, 60074, -2284,  1853,
!    -2284,  1145,  1145,  1221, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,    52, -2284,  -150,
!    -2284,    94,  -200,  1718, -2284,    17, -2284,  1221,  1349, 19582,
!    19582,   246,  1350,  1354,  1695, 48527, -2284, -2284, -2284, -2284,
!      774, -2284,  1579,  1407, -2284,  1422,  1557, -2284, -2284,    56,
!    -2284,    75, 63419, -2284,  1703, -2284, 29377, 63419, -2284,  1579,
!    -2284, -2284, 52215, -2284,    41, -2284, -2284,   593, 63419, -2284,
!    -2284,  1569, -2284, 37529, -2284,  1863, -2284,  1369, -2284,  1374,
!     1378, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,  1383,
!      864, -2284, -2284, -2284, 63419,   -82, -2284, -2284,  1197,  1700,
!    45434,  1708, -2284, -2284,  1697, -2284,   106, -2284,   127, -2284,
!      116,   127,   -22,  1634, -2284,  1704, 29377, 63419, -2284, -2284,
!     1589, -2284, 48201, 48527,  1695,  1688, -2284,   186, -2284,  1704,
!     1589,  1587, -2284, -2284,    44, -2284,    40, -2284, -2284, 44480,
!     1321, -2284,  1918, 52987, -2284, 49638, 63419, -2284, -2284, -2284,
!     1609, -2284,  1748, 29377,  1646,  1931,  1748,  1241, -2284, -2284,
!    29377, 14465, -2284, -2284, -2284, -2284,  1240, -2284,  1363,  1365,
!    -2284, 59768, -2284, -2284, -2284,  1288, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, 39425, 37529, -2284, -2284,   547,    50, -2284,
!    31209, 31209, 32473, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284,   126,   783, -2284,   263,
!     1811, 14761, -2284,  1816, -2284, -2284, -2284,  4487, 36265,  1290,
!     1778, -2284, 26849,  1780, -2284, 36897,  1636, -2284,  1419, -2284,
!    -2284,  1432, -2284, 24321,  1581, -2284, -2284, -2284, 21946, -2284,
!     1586, 48527,  1586, -2284, 58177, -2284,   164,   556,   852, -2284,
!    -2284, -2284, 60400,  1401, -2284,   393, -2284,  1141,  1919, 63419,
!    -2284, -2284, -2284,  1542,  1536,  1536, -2284, -2284, -2284,   852,
!      852, 63419, 64052, -2284,  1579,  1579, -2284,   734, -2284,   544,
!     1950,   167, -2284,  1951, -2284, -2284, -2284,  1953,  1955, -2284,
!      852, -2284, -2284, -2284, -2284,   364, -2284,  1956, -2284, -2284,
!      786, -2284,  1293,  1045,  1062, -2284, -2284, -2284, -2284, -2284,
!     1938, -2284,  1939,  1940, -2284, -2284, -2284,   160, -2284, -2284,
!    -2284, -2284,   683, -2284,   525, -2284,   -41, -2284,  1941,  1476,
!    -2284,  1942,    96, -2284,  1221, -2284, -2284, 52215, -2284,  3771,
!    -2284, -2284, -2284,  1027, -2284, -2284, -2284,  1443, -2284, -2284,
!      852,  1303,  1304,  1308, -2284, -2284,  1027, -2284, 63419, -2284,
!    -2284,   852,  1138,  1713, -2284, 63419,  1291,  1292, -2284, -2284,
!     1966, -2284,  1282, 63419, 63419, 55803, -2284, -2284,   642,    30,
!       30,    30,    30, -2284, -2284,  1488, -2284, -2284, 41009, -2284,
!    -2284, -2284, -2284,  1294,   729,   729,  1009,  1009, -2284, 49638,
!    41641, 49638, 42905, 42905, 49638, 42905, 42905, -2284, 49638,  1904,
!     1907,   286,  1909, 49638,  1229, 49965, 49638, 49638, 49638, 49638,
!      532, 49638, 52215, 41641,  1297,  1381, 49638, 49638,  1306, 49638,
!     5150, 52215, 42905, -2284, 52215, 42905, 42905, 42905, 42905, 49638,
!    49638, 41641,  1731,   876,   406, -2284, 63419, -2284, 29377, 14851,
!    63419,   -73, 63419,  1678, -2284,  1558, 58177, 29377, 15154, -2284,
!    -2284,  1590,  1803, -2284, 49311, -2284, -2284, -2284,   -11, -2284,
!    -2284, -2284, -2284,   440,   418, -2284,   852, -2284, -2284, -2284,
!    -2284, -2284,    85, -2284, 29377, 15450, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  1687, 63419,  1689, -2284, -2284, -2284, -2284,
!    -2284, -2284, 63419,  1870,  1440,   776,  1114,  1930,  2445, 52215,
!      577, -2284,   545, 63419, 11320, 12008, 19582, 19582, 19582, 63419,
!     1694,  1702, -2284,  1579, -2284, -2284, 63419,  1667, 29377, -2284,
!    -2284, -2284, -2284, -2284, 15540, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,  1999, -2284, -2284,
!    -2284, 27481, 29377, 52215,  1613, 63419, 60706, -2284, -2284, -2284,
!    -2284, 48527, 61032,    35, -2284,  1322, -2284, -2284, -2284, -2284,
!    48527, -2284,   909, -2284, -2284,   -22, -2284, -2284,  1416,   -22,
!    -2284,  1530,  1698, 29377, 15843,    77, 50917, 63419, 63419,  1715,
!    63419,  1851, 63419, 29377, -2284, -2284, -2284, 44957, -2284, -2284,
!     1088,  1088, -2284, -2284,  2032, 63419, -2284, 50273,  7192, -2284,
!    63419, 29377, 16139, 63419,  1635,  1469, -2284, 16229, 42905, -2284,
!    -2284, -2284, -2284,   559, -2284,  1358, -2284,   186, 39425, -2284,
!    -2284, 32473,   563, -2284, -2284,  1116, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    30577, -2284, -2284, -2284,  3822, -2284,  1911, 16532, -2284, -2284,
!    -2284, -2284, 48527, -2284, 24953, -2284,  1873,  1586,  1725, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, 63419, -2284, -2284,
!    63419, -2284, -2284, -2284,    14, -2284, -2284, -2284, -2284, -2284,
!     1539, -2284, -2284, -2284, -2284,  2033,  2034, 63419,  1579,  1579,
!    -2284,   852, -2284, -2284,  1490,  1632,  1637,  1005, -2284, -2284,
!    -2284, -2284, -2284, -2284,   958,  1614, -2284, -2284, -2284, -2284,
!    -2284,   -36,   -37,  1741,  2020, -2284,   -31, -2284,  1345, -2284,
!     2041, -2284, -2284,   888,  1851,  1851,  1851, 63419, -2284, -2284,
!    63419, -2284,  1221, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,   791,   791, -2284, -2284, -2284, -2284, -2284,
!    20247, -2284, -2284, 22361, -2284, 49638,  1359,  1361,   914, 25521,
!    26153, 49638,  1364, 42905,  1367, 42905, 42905,  1370, 49638, 49638,
!     1373,  1375, 49638, 20574, 20901, 21228, -2284, -2284, -2284, -2284,
!    -2284,  1379, 19920,  1380, 22993, -2284, 49638, 49638, 49638,  1878,
!    49638, 49638, 49638, 19920,  1385,   377, 42905, 26785,  1386,  1388,
!    42905,  1389, 42905,  1390, 49638, 23625,  1404,  1221,  2059, -2284,
!       -6,  1794, -2284,  1479, -2284, 63419, 16828, 63419,  1544, -2284,
!    16918, 63419,  1769, 63419, -2284, 40377, 53761, 39745,  1675,  1625,
!    -2284,  1615,   919, 42905, 42905, 42905, -2284, -2284, -2284, 17221,
!    29377, 63419, 63419, -2284, -2284,   139,  2009,  1830,  1114, -2284,
!    -2284, -2284,  1563, -2284,  1886, -2284, -2284, -2284, -2284,   577,
!    -2284, 52215,   182,  2087,  1545, -2284, 12696, 13384, 14072, 48834,
!    -2284,   852, -2284, 17517, 61338, -2284, 29377,  1976, 17607, -2284,
!    28113, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, 56606, -2284, -2284, -2284, -2284,   124, 63419,
!    -2284,   852, -2284,  1684, 17910,  2067, -2284, -2284, -2284, -2284,
!    -2284, 63419, 63419,  -138,  1431, -2284, 51888,   603, -2284, 54873,
!    -2284, 18206, -2284, -2284, -2284, 63419, -2284,  1864, 18296, -2284,
!    -2284,  1062,  1672,  1418, -2284, -2284,   572, 33105, 33737, -2284,
!     3478, -2284, -2284, -2284, 31841, -2284,   107,  1935, -2284, -2284,
!      810, -2284, 39425, -2284, -2284,  1903,  1328,  1957, -2284, 48527,
!     1539, -2284, -2284,  1744,   852, -2284, -2284, -2284, -2284,   161,
!     2113,  1145,  1145, -2284, -2284,  1610, -2284, -2284, -2284, 53466,
!     1927,  1345,  2097, -2284, -2284, -2284, -2284, -2284, -2284,  2105,
!     2099,  1156, -2284, 63419, -2284, -2284, 63419, -2284,  1437, -2284,
!    -2284, 49638, -2284, -2284, -2284, -2284,   639,  1920, -2284, -2284,
!      639,   639, -2284, 27417, -2284, 28049,  1775, -2284,  1439, -2284,
!    42905, 28681, -2284,  1442,  1445, -2284, -2284,    48, -2284,  1446,
!    -2284,  1447, -2284,  1448, -2284,  2126, -2284,  1878, -2284, -2284,
!     1449,  1450, 21555, -2284,   -70, -2284,   817,  1452,  1455,  1457,
!     1878, -2284, -2284, -2284,  1458, 42905, -2284, 29313, -2284, -2284,
!     1459, -2284,  1461, -2284,  1462, -2284, -2284, 56913,  1838,  1639,
!    -2284, -2284, -2284, -2284,  1719, 63419, -2284, -2284,  1799, -2284,
!    -2284, -2284, -2284, -2284, -2284, 63419,  1749, -2284,   684, -2284,
!     1680, -2284, -2284, -2284, -2284,  1524,  1629, 18599, 63419, 63419,
!    -2284, -2284, -2284,  1952, -2284,  1851, 52215, -2284,  1958,  9944,
!    -2284,   577,  2087, -2284, -2284,  1862,  1426,   -34,  1579, 63419,
!    -2284, 63419, -2284,  2156,  3407, -2284, 28745, -2284, 63419, 61664,
!    -2284,  1742,  1579,   -19, 63419, 63419, -2284, -2284, 63419, 63419,
!     1820,  1851, -2284,  1698,  1698,  1698, -2284,  2144, -2284,  1698,
!     1905, 62014,  1747, -2284, -2284, 34369, -2284, 34369, -2284, -2284,
!      186,   578, -2284, 39425, 30577, 35001, 35633, -2284, 29377, 48527,
!     1638,   513, -2284, -2284,  2178,  1887, -2284,   162, -2284,  2023,
!     1903,   -75,  1801, 63419, -2284, -2284, -2284, -2284, -2284,   852,
!      852,  2170, -2284, 53466, -2284,  1345, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  1502,  1871,  1871,  1505,  1871,  1507,  1510,
!     1871, -2284,  1511, -2284,  1515, -2284, 57239, -2284, 29945, -2284,
!     1518, -2284, -2284, -2284,  1520, -2284, -2284, -2284, -2284,  1521,
!    -2284, -2284, -2284, 21882, -2284, -2284, -2284, -2284, 49638, -2284,
!    -2284, -2284,  1523, -2284,  1525, -2284,  1527, -2284, -2284, -2284,
!     1757, 63419,  1579, -2284, -2284, -2284,  1221, -2284, -2284, 63419,
!    -2284, -2284, -2284, 51244, 52215,   649, 52215, -2284, -2284, -2284,
!      204, -2284,  2187,   349, -2284, 42273, 61338, -2284,  2044, -2284,
!    -2284, -2284,   852,  1579,  1579,  1768, -2284, -2284, -2284, 42905,
!    -2284, 63419, 63419, 63419, 63419, 63419,   450, 63419, -2284,   852,
!     1529,  1531, -2284, -2284, -2284, 34369, -2284, -2284, 39425, 34369,
!    -2284, 18895, -2284, -2284, -2284, -2284, -2284, -2284,  1579, -2284,
!    29377, -2284,  1579, -2284,  1981, -2284,  1638, -2284,  1944, -2284,
!      895, 63419, -2284,  2209,  2213, -2284, -2284, -2284, -2284,  2229,
!     1533,  1547, -2284,  1552, -2284, -2284,  1553, -2284, -2284,  2054,
!    -2284, -2284,  1878, -2284, -2284,  1559, -2284, -2284, -2284, -2284,
!     1560, 49638, -2284, -2284, -2284, -2284,  1579,   513, -2284, -2284,
!    -2284, -2284,   649, -2284, -2284, -2284,   649, -2284,  1895,   649,
!    52215,   649, 52215, 52215,   204, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284,  2221,  1579,   852, -2284, -2284,  1986, -2284,  1716,
!    -2284,   468,  1565, -2284, 58177, -2284, -2284,  1561, -2284,  1562,
!     7256,  1579,  2233, -2284,  1934, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  1753, -2284, -2284, -2284, -2284, 62309,  1564,
!    -2284, -2284, -2284,  1579, -2284, -2284, -2284, -2284, 52215, -2284,
!      649,  7880, -2284, 63419,  8568,  9256, -2284, -2284, -2284,  1570,
!     2221,  1698,  1698, -2284,  -309,   852,  2228,  1573, -2284, -2284,
!    -2284, -2284, 29377,  2233, -2284,  1596, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  2221, -2284, 63419, 63419,  1575, 63419,  1322,
!     1714, 58177, 23057, 29377,  2233, -2284, -2284, -2284, -2284, -2284,
!     1592, 63419,  1322,  2157, -2284, 23689, 29377,   852, -2284,   852,
!    63419, -2284, 63419, 62786, -2284, 25585, 63081,  2235, -2284,   852,
!    63419, -2284,  -180, -2284, 54240, -2284,   168, -2284, -2284, -2284,
!     -112, -2284, -2284, -2284,  -112, -2284, -2284, -2284, -2284, -2284,
!     1588, -2284, -2284,  1588, -2284, -2284, -2284, -2284, -2284,   168,
!    -2284
  };
  
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
*************** static const yytype_int16 yydefact[] =
*** 2883,3311 ****
  {
        11,     0,     0,     2,     4,    26,     0,    12,    13,     0,
         0,     0,     0,     1,     0,     0,    11,     0,    28,    77,
!        0,    20,     9,    14,     0,    16,    18,     0,   879,    69,
!      906,   882,   883,   902,   903,   881,   893,   919,   928,   929,
!      936,   940,   953,   955,   964,   965,   884,   885,   886,   887,
!      888,   889,   890,   891,   892,   894,   895,   896,   897,   898,
!      901,   899,   900,   904,   905,   907,   908,   909,   910,   911,
!      914,   912,   913,   915,   916,   917,   918,   920,   921,   922,
!      923,   924,   925,   926,   927,   930,   931,   932,   933,   934,
!      935,   937,   938,   939,   941,   942,   943,   944,   945,   946,
!      947,   948,   949,   950,   951,   952,   954,   956,   957,   958,
!      959,   960,   961,   963,   962,   733,   731,    68,   880,   732,
!      730,     5,   729,   728,     0,     0,  1746,  1746,    47,    47,
!        0,     0,    29,    31,    32,    33,    34,    35,    36,    37,
!        0,   316,     0,    21,     0,     0,     0,    57,    60,    61,
!       62,    55,    58,  1755,  1747,     0,     0,    48,  1746,  1746,
!     1746,    27,    30,    79,   317,     6,     0,     8,    10,    22,
!       15,    17,    56,  1786,    59,  1756,  1746,    39,    40,    41,
!       42,    38,    44,     0,     0,     0,     0,     0,   541,    22,
!        0,    70,  1787,     0,     0,    45,    46,    51,    52,    49,
!       50,   663,   664,   665,   666,    53,     0,     0,     0,  1833,
!     1798,  1834,  1835,  1837,     0,  1836,     0,    80,    81,    88,
!     1794,  1797,  1795,  1796,  1793,     0,     0,     0,     0,     0,
!      319,   320,     0,     7,  1746,    23,    20,     0,    67,    65,
!        0,    64,    66,    54,   658,   659,   660,   661,    43,   662,
!       83,  1799,  1800,  1832,  1829,  1830,  1827,  1828,  1824,  1825,
!       86,    82,   322,   329,   327,   325,     0,   321,     0,  1763,
!      542,     0,     0,     0,    19,    74,    75,    76,  1765,    72,
!       63,  1763,     0,     0,    84,    89,    85,   104,  1831,  1826,
!        0,    20,     0,     0,    87,   186,     0,     0,     0,     0,
!      331,   548,   874,   875,  1722,  1764,  1763,   549,     0,     0,
!      558,   558,    24,     0,  1766,    73,    71,     0,    91,    93,
!       90,   105,   192,   194,   190,   188,   187,     0,     0,   324,
!      332,  1746,   433,   431,     0,     0,     0,   330,     0,   402,
!     1788,     0,   432,     0,   404,   328,   326,   877,   878,     0,
!        0,   550,     0,  1763,     0,   551,   865,   866,   870,     0,
!        0,     0,    25,   159,    92,     0,  1769,     0,    95,   219,
!        0,     0,     0,     0,     0,     0,   196,   198,   199,   200,
!      201,   202,   217,  1746,  1746,   243,   244,   245,   246,   247,
!      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
!      258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
!      268,   269,   270,   271,   272,     0,     0,  1771,  1746,     0,
!     1723,     0,   224,   225,   227,  1746,   233,   338,   339,   333,
!     1727,  1746,     0,     0,  1746,  1727,  1755,   398,   399,     0,
!      334,  1746,   340,   343,   344,   342,   352,   353,     0,   430,
!      456,     0,     0,   403,  1740,     0,   521,     0,   514,     0,
!      487,     0,     0,  1746,   525,  1786,  1789,     0,   540,   465,
!     1788,   457,   466,   473,   501,   474,   463,   462,   464,   467,
!      459,   460,   461,   522,   470,   468,   469,     0,   471,   472,
!      475,     0,     0,   405,     0,   876,   547,   553,     0,  1134,
!      556,  1132,  1135,  1136,  1133,  1137,   554,   555,   557,  1131,
!     1546,   868,   869,   559,   575,   567,   568,  1090,   811,     0,
!     1546,  1478,     0,     0,  1057,     0,   734,     0,  1546,  1546,
!      821,   738,   741,  1487,     0,  1359,  1251,  1546,  1546,  1048,
!        0,     0,     0,     0,     0,  1273,     0,  1546,     0,  1546,
!        0,  1546,     0,  1546,     0,   711,     0,     0,     0,   740,
!        0,     0,     0,   561,     0,   573,   576,   619,   621,   577,
!      648,   648,   578,   583,   689,   689,   586,   698,   702,   590,
!      587,   719,   719,   584,   591,   592,   594,   818,  1546,   589,
!     1546,   598,   599,   981,   981,   562,   612,   600,   582,   602,
!     1546,   614,  1148,  1148,   603,   604,  1175,   616,  1201,   585,
!     1232,  1232,   607,  1234,   611,  1244,  1244,   597,   609,   608,
!     1286,  1286,   610,  1313,  1314,   605,   601,  1343,  1343,   596,
!      595,   580,  1441,  1441,   588,   581,   579,   593,   606,   613,
!     1498,  1498,   615,  1520,  1520,     0,  1755,  1769,  1786,  1726,
!     1736,  1746,  1755,  1746,   168,  1748,     0,  1791,   107,   159,
!      112,   114,   115,   116,   117,   142,   118,   119,   120,     0,
!      158,   121,   122,   123,   124,   125,   126,     0,     0,  1761,
!      102,   103,  1770,   100,   100,    94,    96,     0,     0,  1746,
!        0,   204,   204,     0,   211,   212,   204,   204,   204,   195,
!      197,  1792,     0,     0,     0,  1778,  1778,   289,     0,  1746,
!     1746,  1772,  1746,     0,  1746,  1724,     0,   189,   226,     0,
!     1728,     0,     0,   363,   364,     0,     0,  1546,     0,     0,
!     1746,     0,     0,   336,   341,   350,   349,  1746,   449,  1713,
!     1717,     0,   520,   524,     0,   412,  1782,   425,  1782,   425,
!        0,   425,   495,   481,   498,   499,   500,   483,   488,   482,
!      479,   484,   489,   480,   519,     0,   531,   526,   527,     0,
!     1790,     0,   515,  1714,     0,   458,   532,   533,   534,   518,
!      517,   516,  1780,  1773,  1757,   509,  1757,   502,   508,  1757,
!      451,   552,  1046,  1047,  1035,     0,  1547,     0,     0,  1546,
!     1546,  1546,  1033,   796,   799,   802,   806,  1004,   808,  1546,
!     1006,  1005,     0,  1546,   867,     0,     0,  1022,   633,  1546,
!        0,     0,     0,   646,  1001,  1546,   999,  1002,  1040,  1003,
!        0,  1452,  1451,  1439,  1443,  1476,  1475,     0,   687,   654,
!      691,  1546,  1355,  1229,  1769,   454,  1169,  1171,  1172,  1170,
!     1546,     0,     0,  1168,  1157,  1162,  1546,  1153,  1155,  1158,
!     1161,  1160,   717,   722,   724,     0,     0,  1778,     0,   736,
!      737,     0,  1493,  1492,  1485,  1490,   976,   974,     0,   972,
!      975,  1360,  1546,     0,     0,     0,     0,     0,   987,   979,
!        0,     0,  1183,  1176,  1338,  1341,  1345,  1347,  1212,     0,
!     1769,  1211,  1238,     0,  1291,     0,  1288,   674,     0,     0,
!        0,  1759,     0,   678,   672,  1260,     0,  1253,     0,  1761,
!     1327,  1506,  1505,  1507,  1496,  1546,  1501,  1504,  1508,  1028,
!     1027,   741,  1546,  1546,  1146,  1242,  1246,  1527,  1525,  1522,
!     1528,  1526,  1202,  1209,     0,   681,  1449,   712,   713,     0,
!      753,   754,   756,     0,  1174,     0,  1489,   572,     0,     0,
!      564,   565,   563,   570,   569,   574,   636,   620,   617,   619,
!        0,     0,   649,   644,   645,   690,   685,   686,     0,   699,
!      697,     0,   720,   715,   716,   819,   809,   759,  1714,  1546,
!     1546,   765,   776,   758,  1784,   767,   768,   775,  1546,     0,
!      789,   794,     0,     0,   864,   863,   825,   667,     0,   822,
!      824,   827,   982,   977,   978,  1493,  1093,  1546,  1492,     0,
!     1073,  1072,  1546,  1097,  1097,  1097,  1092,  1078,     0,  1074,
!        0,  1089,  1083,     0,  1149,  1144,  1145,  1233,  1227,  1228,
!     1245,  1240,  1241,  1287,  1283,  1284,  1344,  1339,  1340,  1442,
!     1437,  1438,  1499,  1494,  1495,  1521,  1518,  1519,  1746,  1748,
!        0,   110,     0,  1746,   160,   169,  1746,  1746,  1749,  1746,
!      177,     0,   106,   113,   166,     0,   165,   163,     0,  1746,
!     1762,     0,   101,  1070,  1070,  1746,     0,  1746,     0,   193,
!        0,   206,   214,   210,   209,   213,   206,   215,   216,   191,
!        0,   242,  1779,  1746,  1746,   287,     0,  1713,     0,   231,
!        0,   237,   238,  1746,   241,   355,   357,   348,  1325,   345,
!      372,   361,   360,   362,   370,  1752,  1723,   378,   388,     0,
!     1746,   347,   365,     0,     0,  1718,     0,     0,   310,   309,
!      311,  1713,   296,     0,     0,     0,     0,  1741,   523,  1783,
!      416,   420,   421,  1721,   425,   417,  1748,   406,     0,   411,
!      425,   409,  1761,   410,     0,   486,   485,   491,   491,   490,
!        0,   528,   873,   537,   538,   511,  1020,     0,     0,     0,
!      512,  1012,   513,   536,   529,  1781,   539,  1774,  1775,   503,
!     1758,   504,     0,   505,   506,     0,     0,     0,  1166,  1167,
!     1010,  1009,     0,   804,   805,     0,  1546,  1546,  1546,  1546,
!     1546,  1546,  1032,  1034,     0,  1545,     0,  1549,  1676,  1677,
!     1689,  1678,  1679,     0,     0,  1692,  1654,  1693,     0,  1655,
!     1690,  1701,     0,  1680,  1642,  1656,     0,  1657,     0,  1643,
!     1681,  1682,  1645,  1644,  1647,  1646,  1648,  1649,  1658,     0,
!        0,     0,     0,     0,  1659,     0,  1694,  1660,  1661,  1662,
!     1663,  1664,     0,  1665,     0,     0,     0,     0,     0,  1683,
!     1684,  1637,  1666,  1702,  1703,  1704,  1705,  1706,  1675,     0,
!     1700,  1695,     0,  1696,     0,  1707,  1708,  1650,     0,  1583,
!     1546,  1709,  1691,  1697,     0,  1651,  1667,  1685,  1686,  1687,
!     1710,     0,     0,  1711,  1688,  1668,  1669,     0,  1698,     0,
!     1699,     0,  1670,  1671,  1638,     0,  1672,  1652,  1673,  1674,
!     1712,  1653,     0,  1550,  1543,  1608,     0,  1551,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1025,  1021,     0,
!     1546,  1044,  1043,  1042,  1041,   990,   647,     0,     0,  1546,
!     1000,  1479,  1480,     0,  1473,  1474,  1440,     0,  1447,  1448,
!     1721,     0,  1477,  1062,  1058,  1059,   688,   655,   997,     0,
!      654,     0,  1748,  1230,  1223,  1231,  1156,  1164,  1163,     0,
!        0,  1154,   718,     0,     0,  1546,  1546,   749,   747,   748,
!      745,   739,   744,  1029,   751,     0,   752,  1778,  1778,  1761,
!     1491,  1785,  1421,  1422,  1423,  1424,  1425,  1426,  1427,  1428,
!     1429,  1430,   973,  1410,  1413,  1414,  1420,  1418,  1786,     0,
!     1357,     0,  1358,  1761,     0,     0,     0,     0,     0,     0,
!      980,  1546,  1055,  1053,  1056,  1054,  1049,  1050,     0,  1187,
!     1188,  1185,  1189,  1193,  1177,  1178,  1191,  1180,     0,  1352,
!     1342,  1349,     0,     0,  1348,     0,  1214,  1237,  1546,  1239,
!     1238,  1235,  1300,  1719,     0,  1290,  1296,  1285,  1293,  1546,
!     1720,     0,   638,     0,   637,     0,     0,  1760,     0,     0,
!      673,   676,   677,     0,     0,     0,  1254,  1280,  1274,  1275,
!        0,  1278,  1327,  1319,     0,  1327,  1329,     0,  1517,  1497,
!        0,     0,  1502,  1500,  1721,  1026,  1546,  1546,  1147,  1243,
!     1249,     0,  1250,  1523,  1721,     0,  1197,  1203,  1204,  1195,
!     1206,  1216,  1215,     0,   681,   682,   683,  1721,   714,  1546,
!        0,   755,  1173,  1488,     0,   566,   618,     0,     0,   640,
!      642,   643,   641,   630,   632,   622,   624,   626,     0,   627,
!      639,   628,   700,   706,   707,   708,   709,   705,   703,   793,
!     1546,  1546,   777,   795,     0,   794,   812,  1546,  1546,  1546,
!      778,   794,   991,   996,   993,   994,   992,   995,   786,   670,
!      669,   671,   668,     0,     0,   764,     0,     0,     0,   810,
!      813,   790,   792,   791,     0,  1546,   861,   828,   831,     0,
!      835,   836,  1546,     0,  1085,     0,  1082,  1081,     0,  1077,
!        0,     0,  1076,  1075,  1096,     0,  1091,  1088,  1546,  1087,
!     1126,     0,  1098,     0,     0,  1746,   141,   111,   138,     0,
!      140,   175,     0,   161,     0,     0,     0,   178,   179,   176,
!        0,   184,   184,   180,   164,   143,  1746,  1746,     0,    99,
!     1071,     0,     0,     0,  1746,     0,   223,   205,     0,   203,
!      208,   218,     0,     0,   288,   277,   285,   286,   273,     0,
!      275,   274,   228,   276,   278,   280,   229,  1791,   235,   236,
!      232,     0,   234,     0,     0,   358,   359,   354,  1326,   371,
!     1753,  1754,   390,   392,   391,   374,  1723,   387,     0,   380,
!      381,     0,   377,   376,  1761,   373,   346,  1546,   366,     0,
!      351,  1759,  1759,  1759,   440,   448,   439,   442,   434,   441,
!      313,   312,   314,   297,  1746,   298,   300,   302,   447,   444,
!      446,   445,     0,   418,   407,  1746,  1782,     0,   408,     0,
!        0,     0,   493,   478,   492,   477,   489,  1018,  1017,     0,
!        0,     0,     0,     0,   535,   510,     0,   452,  1008,  1546,
!     1011,  1007,   807,   872,     0,   798,   797,   800,   801,   803,
!     1546,  1546,  1546,  1546,  1546,  1546,  1546,  1546,  1560,  1546,
!        0,     0,     0,     0,  1546,     0,  1546,  1546,  1546,  1546,
!     1546,     0,  1546,  1546,  1546,     0,     0,  1546,  1546,     0,
!     1546,     0,  1546,  1546,  1544,  1546,  1546,  1546,  1546,  1546,
!     1546,  1546,  1546,     0,  1742,    20,  1801,     0,  1045,     0,
!        0,   652,   654,   650,     0,  1481,  1483,     0,     0,     0,
!     1461,     0,  1469,  1444,  1453,  1455,  1459,     0,  1445,  1068,
!     1069,  1061,  1063,     0,  1060,  1746,   656,   695,   693,   692,
!      998,   735,  1225,  1224,  1165,  1159,   455,   723,   725,     0,
!      721,     0,   746,  1031,  1030,   750,   743,   742,     0,     0,
!        0,  1786,     0,     0,  1409,  1546,     0,  1365,  1761,     0,
!        0,     0,     0,     0,     0,   983,     0,   984,  1051,  1052,
!     1353,  1186,  1184,     0,  1199,     0,  1179,  1192,  1181,  1337,
!     1350,     0,  1346,  1213,  1403,  1210,   369,  1404,   368,  1405,
!     1236,  1303,  1298,  1301,     0,  1292,  1294,  1297,     0,     0,
!     1546,     0,     0,  1261,  1272,   675,  1546,     0,  1263,  1759,
!     1256,  1264,  1262,  1255,  1546,  1276,     0,  1279,  1320,  1329,
!     1323,  1324,  1748,  1329,  1316,     0,  1729,     0,     0,  1513,
!        0,     0,  1150,     0,     0,  1713,     0,     0,  1205,  1196,
!     1207,     0,  1221,  1222,  1752,  1752,  1208,  1217,     0,     0,
!      680,  1450,  1546,   757,   571,     0,  1546,   623,   625,   629,
!      701,     0,   773,   770,   769,   787,  1546,   772,   771,  1546,
!        0,   780,   787,   794,   761,   763,  1139,  1140,  1141,  1142,
!     1143,  1138,   766,   760,   762,   817,   814,   840,  1546,   823,
!      862,   820,     0,   832,     0,     0,   837,  1094,  1546,  1080,
!        0,  1095,     0,  1086,     0,  1127,  1084,  1124,  1123,   129,
!      128,   130,   127,     0,   109,   108,     0,   151,   152,   153,
!      149,   170,   171,   172,   167,   173,   132,   183,   185,   181,
!      182,     0,     0,   146,    98,    97,   222,     0,   221,     0,
!      291,   290,   282,   283,   284,   279,     0,   294,   239,   240,
!      356,   393,  1719,     0,     0,     0,   386,  1723,   379,  1723,
!      375,     0,   367,     0,     0,     0,   315,     0,  1713,  1713,
!     1713,   426,   427,   429,     0,   415,  1761,   414,   497,   496,
!      494,   476,  1019,  1014,  1013,  1015,  1016,   507,  1033,   871,
!     1546,  1039,  1038,  1546,  1036,  1546,     0,     0,     0,  1546,
!     1546,  1750,     0,  1546,     0,  1546,  1546,     0,  1546,  1546,
!        0,     0,  1546,  1546,  1546,  1546,  1609,  1610,  1611,  1612,
!     1613,     0,  1546,     0,  1546,  1584,  1546,  1546,  1546,  1715,
!     1546,  1546,  1546,  1546,     0,  1639,  1546,  1546,     0,     0,
!     1546,     0,  1546,     0,  1546,  1546,     0,  1761,     0,  1743,
!     1816,  1806,  1807,     0,  1023,   653,     0,     0,     0,  1482,
!        0,     0,     0,     0,  1454,  1546,     0,     0,     0,     0,
!     1067,     0,     0,  1546,  1546,     0,     0,     0,  1486,  1411,
!     1415,     0,  1731,  1431,  1432,  1419,  1412,     0,  1400,     0,
!     1399,  1401,  1402,  1363,  1386,  1387,  1546,  1361,  1380,     0,
!      971,     0,     0,     0,     0,  1354,  1190,  1746,  1182,     0,
!        0,  1302,     0,     0,     0,  1295,     0,  1269,  1270,  1271,
!     1268,  1266,  1265,     0,  1267,  1282,  1281,  1277,     0,  1322,
!     1315,  1746,  1730,  1767,     0,     0,  1510,  1509,  1511,  1512,
!     1503,  1152,     0,  1247,  1529,  1530,  1546,  1539,  1524,  1533,
!     1537,     0,  1218,  1219,  1220,     0,   684,     0,   774,   788,
!        0,  1546,  1546,   779,     0,   851,   850,   843,  1546,   846,
!      852,   839,   841,   845,   847,   844,  1546,   829,   834,  1129,
!        0,  1114,  1102,  1546,   132,   139,   148,     0,  1746,   174,
!      144,   145,   147,   220,     0,  1778,  1778,   281,     0,   230,
!      397,   396,  1546,  1719,  1723,     0,   385,   384,   389,   435,
!      436,   437,   438,   305,   307,   306,     0,     0,     0,   428,
!      419,   422,   424,     0,  1558,     0,  1548,  1037,  1546,  1555,
!     1556,  1619,  1620,  1614,  1615,  1621,  1622,     0,  1616,  1597,
!     1546,  1600,  1546,  1751,  1776,  1568,     0,  1565,  1546,  1546,
!     1576,     0,     0,  1577,  1578,  1546,  1631,     0,  1633,     0,
!     1635,     0,  1580,     0,  1625,  1715,  1582,  1553,     0,     0,
!     1546,  1716,  1715,  1626,  1737,     0,     0,     0,  1715,  1590,
!     1640,  1641,     0,  1546,  1603,  1546,  1579,  1593,     0,  1594,
!        0,  1595,     0,  1552,   560,     0,  1810,  1818,  1817,  1808,
!     1821,  1820,  1822,   651,  1484,  1460,     0,  1446,  1463,  1464,
!     1462,  1457,  1456,     0,     0,  1465,  1466,  1458,     0,  1064,
!     1066,   657,   696,   694,     0,   727,   726,  1416,  1417,  1732,
!        0,  1433,  1713,  1546,  1388,     0,  1546,  1391,     0,  1380,
!     1384,  1366,     0,  1382,  1383,     0,   985,   986,     0,  1310,
!        0,     0,  1307,     0,  1306,     0,     0,  1318,     0,     0,
!        0,  1321,     0,  1768,  1328,     0,  1151,     0,  1713,  1532,
!     1729,  1729,  1729,  1538,     0,   679,   631,   781,  1546,   782,
!     1546,   784,   815,   852,     0,   849,  1546,  1546,  1546,  1546,
!      853,     0,  1546,     0,     0,  1112,  1104,  1108,  1110,  1109,
!        0,  1103,  1117,  1129,   136,   154,     0,   207,  1746,  1746,
!        0,   395,  1546,   383,  1723,   299,   301,   303,   304,   423,
!      413,  1559,     0,  1618,     0,     0,  1598,     0,  1601,     0,
!        0,  1715,  1562,  1546,  1567,     0,  1572,  1573,  1629,     0,
!     1632,  1634,  1636,  1624,     0,  1574,  1575,  1587,  1546,  1588,
!     1627,  1738,  1739,  1546,  1569,  1570,  1571,     0,  1591,     0,
!     1604,     0,  1596,  1606,  1607,     0,  1802,     0,  1809,  1819,
!     1823,  1761,  1470,  1468,     0,  1065,  1546,  1546,  1394,  1546,
!     1392,  1362,  1368,     0,  1381,     0,     0,  1200,  1546,     0,
!     1304,  1299,  1257,  1259,  1258,  1746,  1331,     0,     0,  1317,
!     1330,  1514,  1546,  1531,     0,     0,     0,     0,     0,     0,
!      854,   848,   842,  1546,   859,   855,  1546,  1546,   857,     0,
!     1130,  1125,  1815,  1812,  1814,  1813,  1106,  1107,     0,  1111,
!        0,  1115,     0,  1100,     0,   131,     0,   155,     0,   133,
!      134,     0,     0,   295,   394,   382,  1554,  1557,  1617,  1599,
!     1602,  1546,     0,  1563,     0,  1566,  1630,  1581,  1586,     0,
!     1546,  1589,  1592,  1605,  1803,  1811,     0,  1467,  1436,  1435,
!     1434,  1394,  1407,  1406,  1389,  1395,  1396,  1744,  1394,  1546,
!     1394,  1546,  1546,  1369,  1370,  1385,  1252,  1312,  1311,  1309,
!     1308,     0,  1333,  1746,  1248,  1541,  1540,  1535,  1534,   783,
!      785,     0,   860,     0,     0,  1113,  1733,  1118,  1120,  1128,
!      137,   156,   157,   150,   135,   292,   293,  1777,  1561,  1564,
!     1585,  1628,  1804,  1805,  1364,  1397,  1745,  1546,  1393,  1394,
!     1546,  1377,  1373,  1546,  1546,  1371,  1356,  1332,  1335,     0,
!     1729,  1729,   856,   858,  1734,     0,  1733,  1121,     0,  1398,
!     1379,  1378,  1372,     0,  1334,     0,     0,     0,     0,  1733,
!     1101,  1336,  1542,  1536,     0,     0,     0
  };
  
  /* YYPGOTO[NTERM-NUM].  */
  static const yytype_int16 yypgoto[] =
  {
!    -2118, -2118, -2118,  1137, -2118, -2118, -2118, -2118,  2179,  2048,
!     -225,  2003, -2118, -2118, -2118,  2063, -2118, -2118, -2118, -2118,
!    -2118,  2066, -2118, -2118, -2118, -2118, -2118,  2046, -2118,    28,
!     1973, -2118,  1925, -2118, -2118, -2118,  1987, -2118,  1922, -2118,
!     1842,  1526, -2118,  1893,    -9, -2118, -2118, -2118,  1553, -2118,
!    -2118, -2118,   -91, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118,   573, -2118,  1923,
!    -2118,  1843, -2118,   673,  1124, -2118, -2118, -2118,  1522, -2118,
!    -2118, -2118, -2118, -2118, -2118,  1797, -2118, -2118, -2118, -2118,
!     -927, -2118, -2118,   548, -2118, -1538, -2118,  1117, -2118,  1118,
!    -1061, -2118, -2118, -2118, -2118,  1993, -2118, -2118, -2118, -2118,
!    -2118,  1895, -2118, -2118, -2118, -2118,  1785, -2118,  1507, -2118,
!    -2118,  1795, -2118,  1122, -1366, -2118,  1114, -2118, -2118, -2118,
!      528, -2118, -2118, -2118,   541, -2118, -2118,  1127,  -612,  -316,
!    -2118, -2118,  1082, -2118,  1100,  1493,    64, -2118, -2118,  -101,
!     -554, -2118,   157, -2118, -2118,  1119, -2118, -2118,   -72, -2118,
!    -2118,  1782, -2118, -2118, -2118,  1499, -2118,   497,  1115,  1138,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118,  1950,    73,  1951, -2118,
!     -235,  -520,  -516,  -907,  -486, -2118,  1294, -2118, -2118, -2118,
!     1301,   721, -2118, -2118, -2118, -2118,  1700, -2118,   908, -2118,
!       72,  2087, -2118, -2118, -2118, -2118,  -539, -2118,   751, -2118,
!    -2118, -2118, -2118,  1705, -2118, -2118, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,
!     1692, -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,  1345,
!    -2118,   896, -2118, -2118,  1334,  1290, -2118,  -580,  -934, -2118,
!    -2118,   292, -2118, -1508,  -603, -2118,  1165, -2118,   227,  -544,
!     -696, -2118, -2118, -2118, -2118, -2118, -2118,     1, -2118, -2118,
!    -2118, -2118,   698, -2118, -2118, -2118, -2118,   691, -2118, -2118,
!      694, -2118, -2118,  -212, -2118,    13, -1675, -2118, -1112,  -307,
!     1751,   513,  -476,  1532,  -152,  -528,  -880,   -11, -2118, -2118,
!    -1232,  -855, -2118, -2118, -2118,  1710, -2118,   274,  -373,  -953,
!    -1113,  -343,  -304,  -712,  -754, -2118,  -509, -2118, -2118, -2118,
!       45,  -871, -2118,  -732, -1801,  -863,  -368, -2118, -2118, -2118,
!      869, -2118, -2118, -2118, -2118,   942, -2118, -2118, -1047, -2118,
!    -2118, -2118, -2118, -2118,  1287, -2118,  1291, -1021, -2118,   328,
!     1707, -2118, -2118, -2118, -2118,    10, -2118, -2118, -2118,  -207,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118, -2118,  1284,   704,
!    -1512,  -211,  -269,  -836, -2118, -2118, -2118, -2118,  1719, -2118,
!      786,   457,  1474,   537,  -793,  -524, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118,   880, -2118, -2118,   808, -2118, -2118, -2118,
!    -2118, -2118,  1779, -2118, -2118, -2118,   371,  -582,  -574, -2118,
!    -2118, -2118, -2118, -2118,  1723, -2118, -2118, -2118,   873, -2118,
!    -2118, -2118,  1720, -2118, -2118, -2118, -2118, -2118,  -826, -2118,
!    -2118, -2118,   850, -2118,   847, -2118, -2118, -2118,  1718, -2118,
!    -2118, -2118, -2118,   874, -2118, -2118, -2118, -2118,  -133, -1857,
!    -2118,  -129, -2118,  -266, -2118, -2118, -2118, -2118,  -811, -1326,
!    -2118, -1053,  -280, -1578, -2118,  -262,  -414, -2118, -2118, -2118,
!    -2118,  1721, -2118, -2118, -2118,   897, -2118, -1529,  -511,  -427,
!    -2118, -2118, -2118, -2118, -2118, -2118,  -107, -2118,  -353, -1253,
!    -1449, -2118, -2118, -2118,  -105, -2118,   137, -2118,  -102, -1481,
!    -2118,  -339, -2118, -2118, -2118, -2118,   483,   158, -2118, -1699,
!    -2118, -2118,   156, -2118, -2118, -2118, -2118,  1735, -2118,   527,
!    -2118,  -299,   834, -1542,   180, -2118, -2118,   182, -2118,  1011,
!    -2118, -2118, -2118, -2118, -2118,  1014, -2118, -2118, -2118,   -45,
!     -551, -2118, -2118, -2118,  1731, -2118, -2118,  1450,   110, -2118,
!    -2118,  1441,  -369, -2118,  1725, -2118, -2118, -2118, -2118, -2118,
!    -2118,  -111, -2118, -2118,   109,   744, -2118, -2118, -2118, -2118,
!    -2118, -2118,    22,   228, -2118,   -10, -2118, -2118, -2118, -2118,
!    -2118, -2118, -2118, -2118, -2118, -2118, -2118,  -450, -2117,  1646,
!     -887,  -229, -1097,  -200,  1948, -1712, -2118, -1728, -2118, -2118,
!    -2118, -2118, -2118,  -126, -1024, -2118,  -957,  -234,   448,  -743,
!     -667,   -14, -2118, -2118,    39, -2118, -2118, -2118,  -692, -2118,
!     -722,  -875,  -444, -2118,  -344,   889, -2118, -2118, -2118, -2118,
!    -2118,   213, -2118,  -301, -2118, -2118, -2118, -2118, -2118,  2129,
!    -2118, -2118,  2134, -2118
  };
  
  /* YYDEFGOTO[NTERM-NUM].  */
  static const yytype_int16 yydefgoto[] =
  {
!        0,     2,     3,   560,   188,     5,     6,     7,     8,    22,
!      144,   191,   168,    19,   131,   132,   133,   181,   134,   135,
!      136,   158,   137,   138,   139,   173,   151,   152,   243,   116,
!      236,   278,   279,   141,   186,   217,   218,   284,   285,   367,
!      368,  1083,   683,   286,   287,  1628,  1629,   659,   660,   661,
!     2032,   662,  2309,  2659,  2655,   663,   664,   665,   666,   667,
!     2306,  2040,  2658,  2733,   668,   669,   670,   671,  1066,  2044,
!      672,   673,   674,   675,  1639,   676,  1643,  2049,   294,   295,
!      375,   376,   377,  1091,  1659,   378,   379,   694,   695,   380,
!      381,   702,   690,   421,   422,   423,  1680,  1113,  1682,   424,
!      425,  1672,  1673,  1674,  2062,  1675,   426,   707,  2319,  1141,
!     1142,  1143,   165,   187,   230,   231,   296,   299,   298,   297,
!      329,   330,   732,  1134,   331,   441,   442,   443,  1116,  1687,
!      444,   725,  1131,  1132,  2749,  1123,  1124,   445,  1128,  1702,
!     1703,  1705,   446,  1692,  1693,  2322,   447,   337,   338,   339,
!      469,   747,   748,   749,   750,  1154,  1155,  1156,  2340,  2341,
!     1157,  2091,  2092,   340,   341,  1714,  1715,   342,   853,   343,
!      470,   471,   472,   759,   760,   761,   762,  1170,  1743,  1744,
!     1165,   763,   473,   474,   475,   476,   477,   478,   479,   480,
!      481,   482,   483,   484,   485,   486,   487,   778,  1184,   488,
!      489,   490,   233,   310,   271,   306,   307,   506,   360,   815,
!      561,   562,   563,   564,   565,   566,   968,   567,   568,   969,
!      970,  1473,  1551,   569,   570,   571,   973,   823,  1368,  1846,
!      248,   249,  1584,  1585,   912,   913,   991,   572,  1526,  1970,
!      573,   574,   575,   976,   838,  1369,  1849,  2194,  2193,   576,
!      980,   577,   578,  1558,   579,   948,  1529,   580,   581,   582,
!      983,   862,   863,   864,    16,    17,   583,   584,   866,   869,
!     1391,   870,   585,   950,   951,   992,   993,  1006,   995,   996,
!      997,  1990,   998,  1991,   999,  1000,  1571,   803,   804,   805,
!      806,   586,   587,   588,  1002,  1589,  2284,  1590,   986,   589,
!      590,  1008,  1009,  1010,  1596,  2511,  1597,  1598,  1599,  1600,
!     1601,  2008,  2291,  2292,  2293,  2294,  2635,  2011,  1011,   807,
!      356,   357,   511,  1173,   358,   302,   349,   303,   118,   591,
!      878,   879,   592,   593,   594,  1013,   889,  1346,  1347,  1986,
!      840,   825,   826,   808,  1718,  1181,   595,  1339,   817,   596,
!     1392,   512,   809,  2113,  2114,   827,   810,   597,   891,  1436,
!     1437,  1438,   598,   837,  1364,  1365,  1841,  1842,  1651,   599,
!     1020,  1021,  1022,  1023,  1024,   600,  1025,  1026,  1602,  1027,
!     1610,  1029,  2022,  2728,  2301,  2302,  2648,  2516,  2517,  2518,
!     2519,  2522,  2726,  2653,  2766,  2768,  2779,  1030,  1031,  1619,
!     1620,  2513,   855,   509,  2002,   601,   602,   603,  1035,   934,
!      856,   857,   858,   859,  1201,   860,   604,   605,   606,   893,
!     1442,  1894,  1445,  1446,  1895,  1518,  1519,  1957,  2228,   607,
!      608,   942,   900,   901,  1523,  1966,  1967,  1373,  1374,  2195,
!      609,   610,   611,   843,  1038,   612,   613,   902,  1461,   614,
!      615,   616,  1041,   935,   617,   883,   916,  1932,   917,   618,
!      918,  1488,  1489,  1490,  1491,  2247,   619,   620,  1044,   905,
!      906,  1465,  1467,  1468,  1469,  1918,   621,  1463,  1912,  1913,
!     2230,  2235,  2471,  2472,  2709,   622,   623,   624,  1492,  1493,
!     1942,  1119,  1496,  1944,  2480,  2619,  2757,   625,   626,   627,
!      628,  1047,   895,   896,  1450,  1451,  1452,  1889,  1890,  2758,
!     1421,   882,   629,  2217,  2218,  2459,  2461,  2703,  2704,  2750,
!     2751,  2462,  2463,  2464,  2213,  2214,  2215,  2456,  2457,  2694,
!     2695,  2696,  2216,  1908,  2697,   630,  1413,  1414,  1415,  1416,
!     1417,  2203,  2204,  2690,   631,   632,   633,  1050,   833,  1361,
!      634,   834,  1833,  1834,  1835,  2431,  2437,  1836,  1356,  1357,
!      635,   836,   636,   830,  1351,  1352,  1827,   637,   638,   874,
!      875,   639,   640,   641,  1053,   924,   925,   926,   927,  2260,
!     1503,  1499,  1500,   642,  1056,   643,   644,   939,   940,  1515,
!     2264,  2265,  2268,  2269,  2270,   811,   812,  1323,  1324,  2141,
!     2357,  2544,  2358,  2385,  2392,  2393,  1325,  1326,  2402,  1327,
!     1328,  1329,  1330,  1331,  1332,  1333,  1334,  1003,  2394,  1136,
!     2073,  1837,   716,  1945,   721,  2253,  2450,  2765,   678,  2573,
!      740,  2170,  2747,  1586,  1069,  2364,  1694,   176,  1191,  1478,
!     1494,   309,   316,  2484,   684,   712,  1189,  2551,  1393,  1186,
!     1150,  1418,   193,   492,  1497,   344,   220,   221,  1815,  1816,
!     2171,  2172,  2588,  2647,  2173,  2422,  2591,   222,   258,   259,
!      223,   254,   255,   224
  };
  
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
--- 3008,3469 ----
  {
        11,     0,     0,     2,     4,    26,     0,    12,    13,     0,
         0,     0,     0,     1,     0,     0,    11,     0,    28,    77,
!        0,    20,     9,    14,     0,    16,    18,     0,   900,    69,
!      929,   903,   904,   925,   926,   902,   915,   916,   942,   951,
!      952,   953,   960,   964,   977,   979,   988,   989,   905,   906,
!      908,   909,   910,   911,   912,   913,   914,   917,   918,   919,
!      920,   921,   924,   922,   923,   927,   928,   930,   931,   932,
!      933,   934,   937,   935,   936,   938,   939,   940,   941,   943,
!      944,   945,   946,   947,   948,   949,   950,   954,   955,   956,
!      957,   958,   959,   961,   962,   963,   965,   966,   967,   968,
!      969,   970,   971,   972,   973,   974,   975,   976,   978,   980,
!      981,   982,   983,   984,   985,   987,   986,   907,   752,   750,
!       68,   901,   751,   749,     5,   748,   747,     0,     0,  1809,
!     1809,    47,    47,     0,     0,    29,    31,    32,    33,    34,
!       35,    36,    37,     0,   329,     0,    21,     0,     0,     0,
!     1818,    57,    60,    61,    62,    55,    58,  1810,     0,     0,
!       48,  1809,  1809,  1809,    27,    30,    79,   330,     6,     0,
!        8,    10,    22,    15,    17,  1819,  1809,    56,  1854,    59,
!       39,    40,    41,    42,    38,    44,     0,     0,     0,     0,
!        0,   561,    22,     0,    70,     0,  1855,     0,    45,    46,
!       51,    52,    49,    50,   684,   685,   686,   687,    53,     0,
!        0,     0,  1904,  1869,  1905,  1906,  1908,     0,  1907,     0,
!       80,    81,    88,  1865,  1868,  1866,  1867,  1864,     0,     0,
!        0,     0,     0,   332,   333,   564,     7,  1809,    23,    20,
!        0,   679,   680,   681,   682,    43,   683,    67,    65,     0,
!       64,    66,    54,    83,  1870,  1871,  1903,  1900,  1901,  1898,
!     1899,  1895,  1896,    86,    82,   335,   342,   340,   338,     0,
!      334,     0,  1826,     0,     0,     0,    19,    74,    75,    76,
!     1830,    72,    63,  1826,     0,     0,    84,    89,    85,   104,
!     1902,  1897,     0,    20,     0,     0,    87,   186,     0,     0,
!        0,     0,   344,   567,   895,   896,  1783,  1827,  1826,   568,
!        0,     0,   577,    24,     0,  1831,    73,    71,     0,    91,
!       93,    90,   105,   193,   195,   190,   188,   187,     0,     0,
!      337,   345,  1809,   454,   452,     0,     0,     0,   343,     0,
!      423,  1856,     0,   453,     0,   425,   341,   339,   898,   899,
!        0,     0,   569,     0,  1826,     0,   570,   886,   887,   891,
!        0,     0,    25,   159,    92,     0,  1834,     0,    95,  1830,
!        0,     0,     0,     0,     0,     0,   197,   199,   200,   201,
!      202,   203,  1862,  1809,  1809,   255,   256,   257,   258,   259,
!      260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
!      270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
!      280,   281,   282,   283,   284,     0,     0,  1836,  1809,     0,
!     1784,     0,   234,   236,  1809,   243,   351,   352,   346,  1788,
!     1809,     0,     0,  1809,  1788,  1818,   419,   420,     0,   347,
!     1809,   353,   356,   357,   355,   367,   368,     0,   451,   477,
!        0,     0,   424,  1803,     0,   543,  1860,   536,     0,   508,
!        0,     0,  1809,   545,  1854,  1857,     0,   560,   486,  1856,
!      478,   487,   494,   522,   495,   484,   483,   485,   488,   480,
!      481,   482,   491,   489,   490,     0,   492,   493,   496,     0,
!        0,   426,     0,   897,   566,   572,     0,  1159,   575,  1157,
!     1160,  1161,  1158,  1162,   573,   574,   576,  1156,  1602,   889,
!      890,   578,   594,   586,   587,  1115,   832,     0,  1602,  1534,
!        0,     0,  1082,     0,   753,     0,  1602,  1602,   842,   757,
!      760,  1543,     0,  1413,  1288,  1602,  1602,  1073,     0,     0,
!        0,     0,     0,  1311,     0,  1602,     0,  1602,     0,  1602,
!        0,  1602,     0,   730,     0,     0,     0,   759,     0,     0,
!        0,     0,     0,   580,     0,   592,   595,   640,   642,   596,
!      669,   669,   597,   602,   710,   710,   605,   717,   721,   609,
!      606,   738,   738,   603,   610,   611,   613,   839,  1602,   608,
!     1602,   617,   618,  1005,  1005,   581,   631,   619,   601,   621,
!     1602,   633,  1173,  1173,   622,   623,  1200,   635,  1226,   604,
!     1269,  1269,  1269,   626,  1271,   630,  1281,  1281,   616,   628,
!      627,  1340,  1340,   629,  1367,  1368,   624,   620,  1397,  1397,
!      615,   614,   599,  1495,  1495,   607,   600,   598,   612,   625,
!      632,  1554,  1554,   634,  1576,  1576,   636,  1974,  1974,   637,
!     1974,  1974,  1818,  1834,  1854,  1787,  1797,  1809,  1818,  1809,
!      168,  1811,     0,  1862,   107,   159,   112,   114,   115,   116,
!      117,   142,   118,   119,   120,     0,   158,   121,   122,   123,
!      124,   125,   126,     0,     0,  1824,   102,   103,  1835,   100,
!      100,    94,    96,   169,     0,     0,  1830,   168,  1786,   205,
!      205,     0,   212,   213,   205,   205,   205,   196,   198,  1863,
!      191,     0,     0,     0,  1846,  1846,   302,     0,  1809,  1809,
!     1837,  1809,     0,  1809,  1785,     0,   189,   235,     0,  1789,
!        0,  1802,     0,     0,   384,   385,     0,     0,  1602,     0,
!        0,  1809,     0,     0,   349,   354,   366,   364,   363,  1809,
!      470,  1774,  1778,     0,   542,  1861,     0,   433,  1850,   446,
!     1850,   446,     0,   446,   516,   502,   519,   520,   521,   504,
!      509,   503,   500,   505,   510,   501,   541,     0,   551,   546,
!      547,     0,  1858,     0,   537,  1775,     0,   479,   552,   553,
!      554,   540,   539,   538,  1848,  1838,  1820,   531,  1820,   523,
!      529,   530,  1820,   472,   571,  1070,  1072,  1059,     0,  1603,
!        0,     0,  1602,  1602,  1602,  1057,   817,   820,   823,   827,
!     1028,   829,  1602,  1071,  1030,  1029,     0,  1602,   888,     0,
!        0,  1046,   654,  1602,     0,     0,     0,   667,  1025,  1602,
!     1023,  1026,  1064,  1027,     0,  1506,  1505,  1493,  1497,  1532,
!     1531,     0,   708,   675,   712,  1602,  1409,  1828,  1264,  1261,
!     1834,   475,  1196,  1197,  1195,  1602,     0,     0,  1193,  1182,
!     1194,  1187,  1602,  1178,  1180,  1183,  1186,  1185,   736,   741,
!      743,     0,     0,  1846,     0,   755,   756,     0,  1549,  1548,
!     1541,  1546,  1000,   998,     0,   996,   999,  1414,  1602,     0,
!        0,     0,     0,     0,  1011,  1003,     0,     0,  1208,  1201,
!     1392,  1395,  1399,  1401,  1237,     0,  1834,  1236,  1275,     0,
!     1345,     0,  1342,   695,     0,     0,     0,     0,  1822,     0,
!      699,   693,  1297,     0,  1290,     0,  1824,  1381,  1562,  1561,
!     1563,  1552,  1602,  1557,  1560,  1564,  1052,  1051,   760,  1602,
!     1602,  1171,  1279,  1283,  1583,  1581,  1578,  1584,  1582,  1227,
!     1234,     0,   702,  1503,   731,   732,     0,   772,   773,   775,
!        0,  1199,     0,  1545,     0,  1911,  1962,  1959,   591,     0,
!        0,   583,   584,   582,   589,   588,   593,   657,   641,   638,
!      640,     0,     0,   670,   665,   666,   711,   706,   707,     0,
!      718,   716,     0,   739,   734,   735,   840,   830,   778,  1775,
!     1602,  1602,   784,   797,   777,  1852,   788,   789,   796,  1602,
!        0,   810,   815,     0,     0,   885,   884,   846,   688,     0,
!      843,   845,   848,  1006,  1001,  1002,  1549,  1118,  1602,  1548,
!        0,  1098,  1097,  1602,  1122,  1122,  1122,  1117,  1103,     0,
!     1099,     0,  1114,  1108,     0,  1174,  1169,  1170,  1270,  1254,
!     1252,  1253,  1282,  1277,  1278,  1341,  1337,  1338,  1398,  1393,
!     1394,  1496,  1491,  1492,  1555,  1550,  1551,  1577,  1574,  1575,
!     1975,  1909,  1910,  1957,  1958,  1809,  1811,     0,   110,     0,
!     1809,   160,  1809,  1809,  1812,  1809,   177,     0,   106,   113,
!      166,     0,   165,   163,     0,  1809,  1825,     0,   101,  1095,
!     1095,  1801,   194,   222,   223,     0,     0,   207,   215,   211,
!      210,   214,   207,   216,   217,   192,     0,   254,  1847,  1809,
!     1809,   300,     0,     0,  1774,     0,   241,     0,   249,   250,
!     1809,   253,   376,   378,   369,   370,  1809,   374,   371,   373,
!      372,   361,  1379,   358,   393,   382,   381,   383,   391,  1815,
!     1784,   399,   409,     0,  1809,   360,   386,     0,     0,  1779,
!        0,     0,   323,   322,   324,  1774,   309,     0,     0,     0,
!        0,  1804,   544,  1851,   437,   441,   442,  1782,   446,   438,
!     1811,   427,     0,   432,   446,   430,  1824,   431,     0,   507,
!      506,   512,   512,   511,     0,   548,   894,   557,   558,   533,
!     1044,  1822,  1822,  1822,     0,     0,     0,   534,   455,  1036,
!      535,   556,   549,  1849,   559,  1839,  1840,   524,  1821,   525,
!        0,   526,   527,     0,     0,     0,  1191,  1192,  1034,  1033,
!        0,   825,   826,     0,  1602,  1602,  1602,  1602,  1602,  1602,
!     1056,  1058,     0,  1601,     0,  1605,  1737,  1738,  1750,  1739,
!     1740,     0,     0,  1753,  1715,  1754,     0,  1716,  1751,  1762,
!        0,  1741,  1703,  1717,     0,  1718,     0,  1704,  1742,  1743,
!     1706,  1705,  1708,  1707,  1709,  1710,  1719,     0,     0,     0,
!        0,     0,  1720,     0,  1755,  1721,  1722,  1723,  1724,  1725,
!        0,  1726,     0,     0,     0,     0,     0,  1744,  1745,  1698,
!     1727,  1763,  1764,  1765,  1766,  1767,  1736,     0,  1761,  1756,
!        0,  1757,     0,  1768,  1769,  1711,     0,  1645,  1602,  1770,
!     1752,  1758,     0,  1712,  1728,  1746,  1747,  1748,  1771,     0,
!        0,  1772,  1749,  1729,  1730,     0,  1759,     0,  1760,     0,
!     1731,  1732,  1699,     0,  1733,  1713,  1734,  1735,  1773,  1714,
!        0,  1606,  1599,  1670,     0,  1607,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1049,  1045,     0,  1602,  1068,
!     1067,  1066,  1065,  1014,   668,     0,     0,  1602,  1024,  1535,
!     1536,     0,  1529,  1530,  1494,     0,  1501,  1502,  1782,     0,
!     1533,  1087,  1083,  1084,   709,   676,  1021,     0,   675,     0,
!     1829,     0,  1268,  1255,  1265,     0,  1811,  1262,  1248,  1263,
!     1181,  1189,  1188,     0,     0,  1179,   737,     0,     0,  1602,
!     1602,   768,   766,   767,   764,   758,   763,  1053,   770,     0,
!      771,  1846,  1846,  1824,  1547,  1853,  1475,  1476,  1477,  1478,
!     1479,  1480,  1481,  1482,  1483,  1484,   997,  1464,  1467,  1468,
!     1474,  1472,  1854,     0,  1411,     0,  1412,  1824,     0,     0,
!        0,     0,     0,     0,  1004,  1602,  1080,  1078,  1081,  1079,
!     1074,  1075,     0,  1212,  1213,  1210,  1214,  1218,  1202,  1203,
!     1216,  1205,     0,  1406,  1396,  1403,     0,     0,  1402,     0,
!     1239,  1274,  1602,  1276,  1275,  1272,  1354,  1780,     0,  1344,
!     1350,  1339,  1347,  1602,  1781,     0,   659,     0,   658,     0,
!        0,  1859,  1318,  1319,  1320,  1321,  1322,  1323,  1324,     0,
!     1315,  1316,  1314,  1823,     0,     0,   694,   697,   698,     0,
!        0,     0,  1291,  1334,  1312,  1329,     0,  1332,  1381,  1373,
!        0,  1381,  1383,     0,  1573,  1553,     0,     0,  1558,  1556,
!     1782,  1050,  1602,  1602,  1172,  1280,  1286,     0,  1287,  1579,
!     1782,     0,  1222,  1228,  1229,  1220,  1231,  1241,  1240,     0,
!      702,   703,   704,  1782,   733,  1602,     0,   774,  1198,  1544,
!        0,  1973,  1912,     0,     0,  1964,  1960,     0,   585,   639,
!        0,     0,   661,   663,   664,   662,   651,   653,   643,   645,
!      647,     0,   648,   660,   649,   719,   725,   726,   727,   728,
!      724,   722,   814,  1602,  1602,   798,   816,     0,   815,   833,
!     1602,  1602,  1602,   799,   815,  1017,  1015,  1020,  1018,  1016,
!     1019,   807,   691,   690,   692,   689,     0,     0,   783,     0,
!        0,     0,   831,   834,   811,   813,   812,     0,  1602,   882,
!      849,   852,     0,   856,   857,  1602,     0,  1110,     0,  1107,
!     1106,     0,  1102,     0,     0,  1101,  1100,  1121,     0,  1116,
!     1113,  1602,  1112,  1151,     0,  1123,     0,     0,  1809,   141,
!      111,   138,     0,   140,   175,     0,   161,     0,     0,     0,
!      178,   179,   176,     0,   184,   184,   180,   164,   143,  1809,
!     1809,     0,    99,  1096,     0,     0,   224,   227,   228,     0,
!        0,  1801,   206,     0,   204,   209,   218,     0,     0,   301,
!     1809,   290,   298,   299,   285,     0,   287,     0,   286,   237,
!      289,   291,   293,   239,  1862,   245,   248,   247,   246,   242,
!        0,   244,     0,     0,   379,   380,   375,     0,  1380,   392,
!     1816,  1817,   411,   413,   412,   395,  1784,   408,     0,   401,
!      402,     0,   398,   397,  1824,   394,   359,  1602,   387,     0,
!      365,   461,   469,   460,   463,   462,   326,   325,   327,   310,
!     1809,   311,   313,   315,   468,   465,   467,   466,     0,   439,
!      428,  1809,  1850,     0,   429,     0,     0,     0,   514,   499,
!      513,   498,   510,     0,     0,     0,  1042,  1041,     0,     0,
!        0,     0,     0,   555,   532,     0,   473,  1032,  1602,  1035,
!     1031,   828,   893,     0,   819,   818,   821,   822,   824,  1602,
!     1602,  1602,  1602,  1602,  1602,  1602,  1602,  1622,  1602,     0,
!        0,     0,     0,  1602,     0,  1602,  1602,  1602,  1602,  1602,
!        0,  1602,  1602,  1602,     0,     0,  1602,  1602,     0,  1602,
!        0,  1602,  1602,  1600,  1602,  1602,  1602,  1602,  1602,  1602,
!     1602,  1602,     0,  1805,    20,  1872,     0,  1069,     0,     0,
!      673,   675,   671,     0,  1537,  1539,     0,     0,     0,  1514,
!     1517,     0,  1525,  1515,  1498,  1507,  1509,  1513,     0,  1499,
!     1093,  1094,  1086,  1088,     0,  1085,  1809,   677,   714,   713,
!     1022,   754,  1257,  1407,     0,     0,  1250,  1249,  1190,  1184,
!      476,   742,   744,     0,   740,     0,   765,  1055,  1054,   769,
!      762,   761,     0,     0,     0,  1854,     0,     0,  1463,  1602,
!        0,  1419,  1824,     0,     0,     0,     0,     0,     0,  1007,
!        0,  1008,  1076,  1077,  1211,  1209,     0,  1224,     0,  1204,
!     1217,  1206,  1391,  1404,     0,  1400,  1238,  1457,  1235,   390,
!     1458,   389,  1459,  1273,  1357,  1352,  1355,     0,  1346,  1348,
!     1351,     0,     0,  1602,     0,     0,     0,  1317,  1298,  1310,
!      696,  1602,     0,     0,  1300,  1822,  1293,  1301,  1299,  1292,
!     1602,  1330,     0,  1333,  1374,  1383,  1377,  1378,  1811,  1383,
!     1370,     0,  1790,     0,     0,  1569,     0,     0,  1175,     0,
!        0,  1774,     0,     0,  1230,  1221,  1232,     0,  1246,  1247,
!     1815,  1815,  1233,  1242,     0,     0,   701,  1504,  1602,   776,
!        0,     0,     0,     0,     0,  1966,   590,     0,  1602,   644,
!      646,   650,   720,     0,   794,   791,   790,   808,  1602,   793,
!      792,  1602,     0,   801,   808,   815,   780,   782,  1164,  1165,
!     1166,  1167,  1168,  1163,   785,   779,   781,   838,   835,   861,
!     1602,   844,   883,   841,     0,   853,     0,     0,   858,   787,
!     1119,   786,  1602,  1105,     0,  1120,     0,  1111,     0,  1152,
!     1109,  1149,  1148,   129,   128,   130,   127,     0,   109,   108,
!        0,   151,   152,   153,   149,   170,   171,   172,   167,   173,
!      132,   183,   185,   181,   182,     0,     0,   146,    98,    97,
!      229,  1809,   226,   225,     0,   304,   303,     0,   295,   296,
!      297,  1689,   288,   292,     0,   307,   251,   252,   377,   362,
!      414,  1780,     0,     0,     0,   407,  1784,   400,  1784,   396,
!        0,   388,   328,     0,  1774,  1774,  1774,   447,   448,   450,
!        0,   436,  1824,   435,   518,   517,   515,   497,   456,   457,
!      458,   459,  1043,  1038,  1037,  1039,  1040,   528,  1057,   892,
!     1602,  1063,  1062,  1602,  1060,  1602,     0,     0,     0,  1602,
!     1602,  1602,     0,  1602,     0,  1602,  1602,     0,  1602,  1602,
!        0,     0,  1602,  1602,  1602,  1602,  1671,  1672,  1673,  1674,
!     1675,     0,  1602,     0,  1602,  1646,  1602,  1602,  1602,  1776,
!     1602,  1602,  1602,  1602,     0,  1700,  1602,  1602,     0,     0,
!     1602,     0,  1602,     0,  1602,  1602,     0,  1824,     0,  1806,
!     1887,  1877,  1878,     0,  1047,   674,     0,     0,     0,  1538,
!        0,     0,     0,     0,  1508,  1602,     0,     0,     0,     0,
!     1092,     0,     0,  1602,  1602,  1602,  1260,  1256,  1408,     0,
!        0,     0,     0,  1542,  1465,  1469,     0,  1792,  1485,  1486,
!     1473,  1466,     0,  1454,     0,  1453,  1455,  1456,  1417,  1440,
!     1441,  1602,  1415,  1434,     0,   995,     0,     0,     0,     0,
!     1215,  1809,  1207,     0,     0,  1356,     0,     0,     0,  1349,
!        0,  1307,  1308,  1309,  1326,  1325,  1313,  1306,  1303,  1302,
!     1327,  1304,  1328,     0,  1305,  1336,  1335,  1331,     0,  1376,
!     1369,  1809,  1791,  1832,     0,     0,  1566,  1565,  1567,  1568,
!     1559,  1177,     0,  1284,  1585,  1586,  1602,  1595,  1580,  1589,
!     1593,     0,  1243,  1244,  1245,     0,   705,  1914,     0,  1963,
!     1965,  1862,     0,     0,   795,   809,     0,  1602,  1602,   800,
!        0,   872,   871,   864,  1602,   867,   873,   860,   862,   866,
!      868,   865,  1602,   850,   855,  1154,     0,  1139,  1127,  1602,
!      132,   139,   148,     0,  1809,   174,   144,   145,   147,     0,
!        0,  1846,  1846,   238,   294,     0,   240,   418,   417,  1602,
!     1780,  1784,     0,   406,   405,   410,   318,   320,   319,     0,
!        0,     0,   449,   440,   443,   445,     0,  1620,     0,  1604,
!     1061,  1602,  1611,  1612,  1676,  1677,     0,     0,  1678,  1679,
!        0,     0,  1659,  1602,  1662,  1602,  1813,  1630,     0,  1627,
!     1602,  1602,  1638,     0,     0,  1639,  1640,     0,  1692,     0,
!     1694,     0,  1696,     0,  1642,     0,  1685,  1776,  1644,  1609,
!        0,     0,  1602,  1777,  1776,  1686,  1798,     0,     0,     0,
!     1776,  1652,  1701,  1702,     0,  1602,  1665,  1602,  1641,  1655,
!        0,  1656,     0,  1657,     0,  1608,   579,     0,  1881,  1889,
!     1888,  1879,  1892,  1891,  1893,   672,  1540,  1516,     0,  1500,
!     1519,  1520,  1518,  1511,  1510,     0,     0,  1521,  1522,  1512,
!        0,  1089,  1091,   678,   715,     0,     0,     0,   746,   745,
!     1470,  1471,  1793,     0,  1487,  1774,  1602,  1442,     0,  1602,
!     1445,     0,  1434,  1438,  1420,     0,  1436,  1437,     0,  1009,
!     1010,     0,  1364,     0,     0,  1361,     0,  1360,     0,     0,
!     1372,     0,     0,     0,  1375,     0,  1833,  1382,     0,  1176,
!        0,  1774,  1588,  1790,  1790,  1790,  1594,     0,   700,  1790,
!     1962,     0,     0,   652,   802,  1602,   803,  1602,   805,   836,
!      873,     0,   870,  1602,  1602,  1602,  1602,   874,     0,  1602,
!        0,     0,  1137,  1129,  1133,  1135,  1134,     0,  1128,  1142,
!     1154,   136,   154,     0,   231,   233,   232,   230,   208,  1809,
!     1809,     0,   416,  1602,   404,  1784,   312,   314,   316,   317,
!      444,   434,  1621,     0,     0,     0,     0,     0,     0,     0,
!        0,  1660,     0,  1663,     0,  1814,  1841,  1624,  1602,  1629,
!        0,  1634,  1635,  1690,     0,  1693,  1695,  1697,  1684,     0,
!     1636,  1637,  1649,  1602,  1650,  1687,  1799,  1800,  1602,  1631,
!     1632,  1633,     0,  1653,     0,  1666,     0,  1658,  1668,  1669,
!        0,  1873,     0,  1880,  1890,  1894,  1824,  1526,  1524,     0,
!     1090,  1259,  1258,  1602,  1602,  1448,  1602,  1446,  1416,  1422,
!        0,  1435,     0,     0,  1225,  1602,     0,  1358,  1353,  1294,
!     1296,  1295,  1809,  1385,     0,     0,  1371,  1384,  1570,  1602,
!     1587,     0,     0,     0,     0,     0,  1916,     0,  1967,  1809,
!        0,     0,   875,   869,   863,  1602,   880,   876,  1602,  1602,
!      878,     0,  1155,  1150,  1886,  1883,  1885,  1884,  1131,  1132,
!        0,  1136,     0,  1140,     0,  1125,     0,   131,     0,   155,
!        0,   133,   134,     0,     0,   308,   415,   403,  1610,  1680,
!        0,     0,  1615,     0,  1616,  1618,     0,  1661,  1664,     0,
!     1845,  1844,  1776,  1843,  1625,     0,  1628,  1691,  1643,  1648,
!        0,  1602,  1651,  1654,  1667,  1874,  1882,     0,  1523,  1489,
!     1490,  1488,  1448,  1461,  1460,  1443,  1449,  1450,  1807,  1448,
!     1602,  1448,  1602,  1602,  1423,  1424,  1439,  1289,  1366,  1365,
!     1363,  1362,     0,  1387,  1809,  1285,  1597,  1596,  1591,  1590,
!     1915,     0,  1920,  1968,     0,   804,   806,     0,   881,     0,
!        0,  1138,  1794,  1143,  1145,  1153,   137,   156,   157,   150,
!      135,   305,   306,  1681,  1613,  1614,  1617,  1619,     0,     0,
!     1626,  1647,  1688,  1875,  1876,  1418,  1451,  1808,  1602,  1447,
!     1448,  1602,  1431,  1427,  1602,  1602,  1425,  1410,  1386,  1389,
!        0,  1790,  1790,  1919,  1918,  1809,  1925,  1969,  1961,   877,
!      879,  1795,     0,  1794,  1146,     0,  1682,  1842,  1623,  1452,
!     1433,  1432,  1426,     0,  1388,     0,     0,     0,     0,  1822,
!     1930,     0,     0,     0,  1794,  1126,  1390,  1598,  1592,  1917,
!     1922,     0,  1822,  1938,  1970,     0,     0,  1809,  1921,  1809,
!     1926,  1927,     0,  1952,  1913,     0,     0,     0,  1928,  1809,
!     1931,  1932,  1954,  1944,  1939,  1940,     0,  1924,  1923,  1929,
!        0,  1933,  1955,  1956,     0,  1949,  1948,  1951,  1950,  1942,
!     1945,  1946,  1941,  1943,  1937,  1935,  1936,  1934,  1953,     0,
!     1947
  };
  
  /* YYPGOTO[NTERM-NUM].  */
  static const yytype_int16 yypgoto[] =
  {
!    -2284, -2284, -2284,  1214, -2284, -2284, -2284, -2284,  2276,  2142,
!     -231,  2096, -2284, -2284, -2284,  2155, -2284, -2284, -2284, -2284,
!    -2284,  2158, -2284, -2284, -2284, -2284, -2284,  2136, -2284,    36,
!     2056, -2284,  2014, -2284, -2284, -2284,  2075, -2284,  2010, -2284,
!     1943,  1607, -2284,  1979,    15, -2284, -2284, -2284,  1644, -2284,
!    -2284, -2284,  -109, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,  1652, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,   602, -2284,  2018,
!    -2284,  1945, -2284,   654,  1194, -2284, -2284, -2284,  1623, -2284,
!    -2284, -2284, -2284,  1630,  1645,   605, -2284,   611, -2284, -2284,
!     1908, -2284, -2284, -2284, -2284,  -954,   184, -2284,   590, -2284,
!    -1569, -2284,  1213, -2284,  1199, -1072, -2284, -2284, -2284, -2284,
!     2101, -2284, -2284, -2284, -2284, -2284,  2012, -2284, -2284, -2284,
!    -2284,  1910, -1036,   586, -2284,  1606, -2284, -2284,  1915, -2284,
!     1184, -1462, -2284,  1198, -2284, -2284, -2284,   579, -2284, -2284,
!    -2284,   591, -2284, -2284,  1212,  -575,  -314, -2284, -2284,  1167,
!    -2284,  1173,  1600,   102, -2284, -2284,   -83,  -504, -2284,   194,
!    -2284, -2284,  -776, -2284, -2284,  -675, -2284, -2284,  1893, -2284,
!    -2284, -2284,  1591, -2284,   554,  1174,  1177, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284,  2069,    98, -2284, -2284,  1572,  -508,  -500,  -192,  -491,
!    -2284,  1393, -2284, -2284, -2284,  1394,   769, -2284, -2284, -2284,
!    -2284,  1815, -2284,   979, -2284,   108,  2200, -2284, -2284, -2284,
!    -2284,  -539, -2284,   809, -2284, -2284, -2284, -2284,  1818, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284,  1809, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284,  1454, -2284,   969, -2284, -2284,  1427,  1396,
!    -2284, -2284,  -585,  -975, -2284, -2284,   325, -2284, -1561,  -419,
!    -2284,   861, -2284,   281,  -661,  -654, -2284, -2284, -2284, -2284,
!    -2284, -2284,    18, -2284, -2284, -2284, -2284,   746, -2284, -2284,
!    -2284, -2284,   747, -2284, -2284,   748, -2284, -2284,  -205, -2284,
!       16, -1584, -2284, -1152,    81,  1868,   558,  -464,  1640,  -269,
!     -517,  -893,    -9, -2284, -2284, -1248,  -842, -2284, -2284, -2284,
!     1821, -2284,   313, -1119,  -992, -1320,  -361,  -486,  -731, -1157,
!    -2284,  -497, -2284, -2284, -2284,   121,  -904, -2284, -1087, -1866,
!     -848,  1038,  -197, -2284, -2284, -2284,   937, -2284, -2284, -2284,
!    -2284,  1014, -2284, -2284, -1050, -2284, -2284, -2284, -2284, -2284,
!     1377, -2284,  1392, -1035, -2284,   370,  1819, -2284, -2284, -2284,
!    -2284,    11, -2284, -2284, -2284,  -203, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284,  1397,   745, -1438,  -202,  -346,  -854,
!    -2284, -2284, -2284, -2284,  1824, -2284,   844,  1273,  1566,   575,
!     -790,  -501, -2284, -2284, -2284, -2284, -2284, -2284, -2284,   943,
!    -2284, -2284,   859, -2284, -2284, -2284, -2284, -2284,  1884, -2284,
!    -2284, -2284,   400,   270,  -289, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,  1022,   923, -2284, -2284, -2284,
!      934, -2284, -2284, -2284,  1822, -2284, -2284, -2284, -2284, -2284,
!     -838, -2284, -2284, -2284, -2284,   915, -2284, -2284, -2284,   896,
!    -2284,   898, -2284, -2284, -2284,  1827, -2284, -2284, -2284, -2284,
!      935, -2284, -2284, -2284, -2284,  -125, -1917, -2284,  -122, -2284,
!     -273, -2284, -2284, -2284, -2284,  -833, -1321, -2284, -1078, -1239,
!     -924, -2284,  -268,  -443, -2284, -2284, -2284, -2284,  1829, -2284,
!    -2284, -2284,   971, -2284, -1437,  -505,  -463, -2284, -2284, -2284,
!    -2284, -2284, -2284,  -103, -2284,  -372, -1290, -1588, -2284, -2284,
!    -2284,   -98, -2284,   157, -2284,   -92, -1704, -2284,  -358, -2284,
!    -2284, -2284, -2284,   521,   175, -2284, -1752, -2284, -2284,   173,
!    -2284, -2284, -2284, -2284,  1839, -2284,   568, -2284,  -316,   891,
!    -1640,   201, -2284, -2284,   208, -2284,  1086, -2284, -2284, -2284,
!    -2284, -2284,  1092, -2284, -2284, -2284,   -28,  -546, -2284, -2284,
!    -2284,  1840, -2284, -2284,  1556,   117, -2284, -2284,  1549,  -636,
!    -2284,  1849, -2284, -2284, -2284, -2284, -2284, -2284,   -96, -2284,
!    -2284,   128,  1188, -2284, -2284, -2284, -2284, -1137, -1093, -1285,
!      253, -2284,     5,    23, -2284, -2284, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284,  -449, -2283,  1750,  -892,  -245,
!    -1123,  -161,  2070, -1441, -2284, -1989, -2284, -2284,  -198, -2284,
!    -2284, -2284,  -129, -1030, -2284, -1337,  -164,   304, -1200,  -663,
!      546, -2284,  2223, -2284,    80, -2284, -2284, -2284,  -377,  -691,
!    -2284,  -718,  -851,  -446, -2284,   503, -2284,  -367,   615, -2284,
!    -2284, -2284, -2284, -2284,   248, -2284,  -304, -2284, -2284, -2284,
!    -2284, -2284,  2253, -2284, -2284,  2258, -2284, -2284, -2284, -2284,
!    -2284, -2284, -2284, -2284, -2284, -2284, -2284,  -434, -2284, -2284,
!     -442,  -454, -2284, -2284,  -441, -2284,  -445,  -467, -2284, -2284,
!    -2284, -2284, -2284, -2284,   -76, -2284, -2284, -2284,  1550,  -634,
!      755
  };
  
  /* YYDEFGOTO[NTERM-NUM].  */
  static const yytype_int16 yydefgoto[] =
  {
!        0,     2,     3,   560,   191,     5,     6,     7,     8,    22,
!      147,   194,   171,    19,   134,   135,   136,   184,   137,   138,
!      139,   161,   140,   141,   142,   178,   155,   156,   252,   119,
!      239,   280,   281,   144,   189,   220,   221,   286,   287,   367,
!      368,  1109,   689,   288,   289,  1691,  1692,   665,   666,   667,
!     2116,   668,  2415,  2781,  2777,   669,   670,   671,   672,   673,
!     2412,  2124,  2780,  2869,   674,   675,   676,   677,   694,  2128,
!      678,   679,   680,   681,  1702,   682,  1706,  2133,   296,   297,
!      375,   376,   377,  1117,  1724,   378,   379,   702,   703,   380,
!      381,   711,   695,   696,   697,  1716,  1717,  1718,  2637,   421,
!      422,  1749,  1140,  1751,   423,   424,  1739,  1740,  1741,  2148,
!     1742,   425,   716,  2426,  1175,  1176,  1177,   168,   190,   233,
!      234,   298,   301,   300,   299,   330,   331,   743,  1168,   332,
!      440,   441,  1146,  1151,   442,  1143,  1756,   443,   736,  1165,
!     1166,  2890,  1157,  1158,   444,  1162,  1772,  1773,  1775,   445,
!     1762,  1763,  2429,   446,   338,   339,   340,   468,   759,   760,
!      761,   762,  1188,  1189,  1190,  2443,  2444,  1191,  2177,  2178,
!      341,   342,  1217,  1782,   343,   868,   344,   469,   470,   471,
!      771,   772,   773,   774,  1204,  1809,  1810,  1199,   775,   472,
!      473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
!      483,   484,   485,   790,  1222,   486,   487,   488,   236,   273,
!      308,   309,   504,   361,   829,   561,   562,   563,   564,   565,
!      566,   989,   567,   568,   990,   991,  1517,  1614,   569,   570,
!      571,   994,   837,  1406,  1917,   245,   246,  1647,  1648,   929,
!      930,  1012,   572,  1582,  2046,   573,   574,   575,   997,   852,
!     1407,  1919,  2283,   576,  1001,   577,   578,  1621,   579,   965,
!     1585,   580,   581,   582,  1004,   878,   879,   880,    16,    17,
!      583,   584,   882,   885,  1435,   886,   585,   967,   968,  1013,
!     1014,  2100,  1027,  1016,  1017,  1018,  2072,  1019,  2073,  1020,
!     1021,  1634,   816,   817,   818,   819,   586,   587,   588,  1023,
!     1652,  2390,  1653,  1007,   589,   590,  1029,  1030,  1031,  1659,
!     2618,  1660,  1661,  1662,  1663,  1664,  2090,  2397,  2398,  2399,
!     2400,  2757,  2093,  1032,   820,   357,   358,   509,  1207,   359,
!      304,   350,   305,   121,   591,   894,   895,   592,   593,   594,
!     1034,   905,  1384,  1385,  2068,   854,   839,   840,   821,  1218,
!     1219,   595,  1377,   831,   596,  1436,   510,   822,  2203,  2204,
!      841,   823,   824,   597,   907,  1480,  1481,  1482,   598,   851,
!     1402,  1403,  1912,  1913,  1714,   599,  1041,  1042,  1043,  1044,
!     1045,   600,  1046,  1047,  1665,  1048,  1673,  1050,  2106,  2864,
!     2407,  2408,  2770,  2623,  2624,  2625,  2626,  2629,  2862,  2775,
!     2913,  2915,  2934,  1051,  1052,  1682,  1683,  2620,   871,   507,
!     2084,   601,   602,   603,  1056,   951,   872,   873,   874,   875,
!     1239,   876,   604,   605,   606,   909,  1486,  1967,  1489,  1490,
!     1968,  1574,  1575,  2033,  2322,   607,   608,   959,   916,   917,
!     1579,  2042,  2043,  1417,  1418,  2290,   609,   610,   858,  2287,
!      611,   612,   859,  1413,  1414,  1415,  1059,   613,   614,   918,
!     1505,   615,   616,   617,  1063,   952,   618,   899,   933,  2008,
!      934,   619,   935,  1529,  1530,  1531,  2336,  2341,  1544,  1545,
!     1546,  1547,  2347,   620,   621,  1066,   921,   922,  1509,  1511,
!     1512,  1513,  1991,   622,  1507,  1985,  1986,  2324,  2329,  2574,
!     2575,  2840,   623,   624,   625,  1548,  1549,  2018,  1153,  1552,
!     2020,  2583,  2736,  2898,   626,   627,   628,   629,  1069,   911,
!      912,  1494,  1495,  1496,  1922,  1923,  2899,  1465,   898,   630,
!     2312,  2313,  2562,  2564,  2834,  2835,  2891,  2892,  2565,  2566,
!     2567,  2308,  2309,  2310,  2559,  2560,  2825,  2826,  2827,  2311,
!     1981,  2828,   631,  1457,  1458,  1459,  1460,  1461,  2298,  2299,
!     2821,   632,   633,   634,  1072,   847,  1399,   635,   848,  1904,
!     1905,  1906,  2533,  2539,  1907,  1394,  1395,   636,   850,   637,
!      844,  1389,  1390,  1896,   638,   639,   890,   891,   640,   641,
!      642,  1075,   941,   942,   943,   944,  2360,  1559,  1555,  1556,
!      643,  1078,   644,   645,   956,   957,  1571,  2364,  2365,  2368,
!     2369,  2370,   825,   826,  1361,  1362,  2231,  2460,  2461,  2790,
!     2487,  2494,  2495,  2152,  1363,  1364,  2504,  1365,  1366,  1367,
!     1368,  1369,  1370,  1371,  1372,  1024,  2496,  1170,  2162,  1908,
!      725,  2021,   730,  2353,  2553,  2912,   684,  2688,  1719,   752,
!     2260,  2888,  1649,  1095,  2666,  1764,   176,  1229,  1534,  1550,
!      311,  1411,   698,  2587,   690,   721,  1227,  2802,  2803,  1437,
!     1224,  1184,  1462,   197,   490,  1532,   756,  1553,   345,   223,
!      224,  1884,  1885,  2261,  2262,  2703,  2769,  2263,  2524,  2706,
!      225,   261,   262,   226,   257,   258,   227,   646,   647,   648,
!      975,  2600,  2852,  2906,  2948,  2930,  2950,  2951,  2943,  2960,
!     2961,  2987,  2954,  2964,  2965,  2979,  2980,  2981,  2966,  2974,
!      649,   650,   651,   977,  1595,  2055,  2382,  2908,  1592,  1593,
!     1081
  };
  
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
*************** static const yytype_int16 yydefgoto[] =
*** 3313,6760 ****
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
  static const yytype_int16 yytable[] =
  {
!      155,   156,   355,   117,   117,   873,   914,   956,   994,  1616,
!      880,   274,  1081,  1103,  1104,  1125,   844,   774,  1455,  1471,
!     1180,   769,   453,  1412,  1428,  1717,  1159,  1342,  1649,  1695,
!      873,   897,   183,   184,   185,  1625,   814,  1652,   703,   936,
!      308,   959,  1482,   120,  1550,   960,  1578,   507,  1337,  1032,
!      194,  1429,   961,   122,  1557,  2231,  1564,  1516,  1378,  1984,
!     1988,   268,  1372,  1538,  1176,   237,   323,  1372,  1516,   772,
!     1372,   966,  1018,  1397,  1372,   779,  1443,   308,   965,  1372,
!     1723,  1443,   752,   753,   350,   508,  2477,   887,  1358,   907,
!     1486,   745,  1905,   172,  2391,  1588,   754,   755,   756, -1791,
!      365,   867,   867,   757,  1204, -1791, -1791,  2025,   273,  1495,
!    -1713, -1713, -1367, -1791,   290,    20,   301,   929, -1713,  1566,
!     1133,  1615,  2054,  2055,   930,   959,   645,  2505, -1746,   960,
!    -1713,  2063,  1735,   117,  1630, -1746,   961,  1120,   154,   842,
!     -318,  1696,  -318,  -318,  -318,   499,   845,  1579,  1994,  2514,
!     1487,  2515,   828,  1176,  1580,  2417,   499,   845,  1847,  2003,
!     1581,   828,  1721,   677,   792,   501,  1938,  1593,  1470,  1938,
!      828, -1024,   169,  2202,  1004,  1645,   793,   370,   715,  2320,
!      692,   828,   304,   225,   978,   226,   227,   228,   871,   365,
!     1138,   791,   687,  1880,  1881,  1161,  1582,  1163,   496,  1685,
!     1139, -1746,   730,   715,  1061,   448,   933, -1746, -1791, -1721,
!      898,   773,   818,   824,   491,   832,   832, -1746,   839, -1719,
!      692,   854,   824,  -323,   835,   865,  1579,   877,   275, -1791,
!      885,   824,   828,  1580,   890,  1821,  1823,  1387,   915,  1581,
!      922,  1388,   824,  1138,   938,   177,   945, -1717,  1401,   952,
!      738,  1086,   776,  1139,  1622,  1203,  1033,   704,   708,   767,
!      743,  2617,   352,   773,   773,   327,   347,   317,  2564,  2400,
!    -1004,   371,  1696,  1860, -1791,  1582, -1791,   321,   923,  1353,
!     1190,  2577,  -826, -1791, -1746,  1940,   735,  1872,  1394,  1144,
!      454,  2184,   713,   824,   372, -1746,  1019,   304,   124,   719,
!     2219,  -826,   873,   192, -1791,   722,  1510,   751,   727,   729,
!     1395,  1447,  2347,  1071,  1579,   448,   154,   736,  1885, -1746,
!     1460,  1580,   449,  1400, -1721,  2699,   649,  1581,   741,  1760,
!      276,  1697,  -308,    13, -1786,   154,  1711,   766,   495,   498,
!      771,  2082,   790,  2347,   491,  1646,   873,   348,  1852,   192,
!      124,  1389,   178,  1509,   880,   321,  1511,   720,  1512,  1941,
!     1520,  2248,  1354,  1582,  2347,  2250,   780,  1924,  2618,  1401,
!     2700,   953,  1423,  1480,     1,  -667,  -667,  -667,    18,   954,
!      499,  1591,   744,   768,   693,  -308,  1563,   305,  1456, -1784,
!     1355,   455,   904,  1470,  1952,  1570,   366,   781,   373,   374,
!     1623,    24,     9,    10,   456, -1791, -1367,   739,  1359,   688,
!     2185,   457,  1058,  -323, -1713,   701,  1005,  1135,  1063,  1004,
!      125,   701, -1761,  1747,  1748,  1749,  1698,  2143,   148,  2184,
!      777, -1721,   979, -1001,  2672,  1686,  2156,  1481,   314,  2158,
!     1820, -1746,  2478,   680,   681,  1195,  2617,  2401,   701,   502,
!     1829,   828,   277,  1343,  1344,   328,  -667,   828,   689,   677,
!      502,  1875,  1697,  -667,  -667,  -667,   842,   -70, -1713,   154,
!     1818,   154,   125,   499,   845,   770,  1340,   179,   180,   499,
!     1175,  1176,  1712,  1713,   353,   366,  2418,  1176,  2075,   499,
!     1666, -1713, -1746,   501,   820,  1739, -1761,  1667,   899,   501,
!     2321, -1791,   305,   503,  2202,  1182,  1854,  2701,  1470,  2207,
!    -1784,  2025,   824,  2325,   503,  1769,  1094,  1087,   824,   828,
!    -1719,  1350,  1709, -1746,   147,  1062,   504,  1064,  2317,   832,
!     2136, -1746, -1721,  1370,  1419, -1713,   701,  1362,  1722,  1121,
!      701,   149,  1871,   854,  -667,  1901, -1721,  1848,   154,   854,
!     -667,  1995,  1938,  2618,  2237,   154,   868,  1698,  1954,  1647,
!      649,  -530,  2004,  1088,   828,   828,  1140,  2458,  1887,  2651,
!      505,   877,  1699,  1118,    21,  1420,  1914,  1424,   931,   701,
!     1336,   505,  2137,  1106,  1107,   354,  1108,   871,  1110,  1506,
!     2569,   685, -1725,  1948,   291,   701,  1963,   701,  1367,  2076,
!     1734,  1474,  -667,  1476,  1129,   746,  1738,  1479,   458,   915,
!    -1746,  1137,  1878,  1171,   459,  1723, -1791,   269,   922,  1140,
!      782,  1930,   150,   292,   293,   824,   824,  1981,   701,  1350,
!     1975,  1122,  2186,  1983,  1987,   699,   154,   460,  -667,  -318,
!     1936,  1701,  1080,   952,  1360,  1200,  1390, -1721,  1931,   828,
!     2221,  2222,  2223,  1525,   828, -1784,   923,  1144,  1933,  2479,
!     1965,  1005,   461,  1396,  1711,  1767,  1768,  2506,  1341,   701,
!      701,  1572,  1573,  1574,  1575,  1576,  1577,  1882,  1608,  1611,
!     1611,  1611,   229, -1746,   502,  2702,  1059,  1876,  1398,   462,
!     -667,  1144,  2015,  1074,  1958,  1681,  1459,  1960, -1746,  1377,
!      463,  1898,  1439,  2020,  2175,  1517,  1444,   140,  1177,  1178,
!      824,  1896,   967,  1603, -1784,   824,  -450,  1179,  1605,   464,
!    -1791, -1791,   148,  1075, -1004, -1004, -1004, -1004, -1004,   166,
!      126,  1778,  1868,  2187,  2138,  2072,  1877,  2029,   503,  -530,
!     1700,   682,  2642,   270,   127,   465, -1746, -1024,  1080,   128,
!      129,  1462,   123,   723,  2231,   724,  1440,   466, -1791,   275,
!      130,  1592, -1713, -1713,   758,   467,  -546,   275,   468,  1650,
!       11, -1713,  1701,  2499,  2501,  1135, -1784,   502,  2624,  2625,
!     2626,  2037,   126,   502, -1791,  1583,  -794,  -794,  -794,  -794,
!     -794,  -794,  2643,   502,   701,  2189,   127,  1177,  1178,  1853,
!     1353,   128,   129,  1385,  2644,   505,  1179,    12,   821,   822,
!     1712,  1713,   130,  2208,  1640,  1427,   959,   453,  2124,   192,
!      960,  1076,   347,   873,   499,  1725, -1725,   961,  1380,   238,
!      239,   503,  1726,  2064,  2638,   149,   161,   503,  2261,  2139,
!     1641, -1719,  1839,  1060,   501,  1151,   154,   503,  1804,  2490,
!     2455,   281,  2038,  1077,   504,    21,   154,  1665,  2209,  1521,
!      504,   276,    14,    15,  1583,   282,  1111,  2140,  1719,   276,
!     2491, -1713, -1713,  1853,  -874,  1727,   701,  1731,  -545, -1713,
!     2645,  1762,  2571,  1375,  -443,  1112,  1853,  1522, -1329,  1917,
!     1758, -1713,  -545,  -545,  -545,  1761,  2295,  1145,   505,  1666,
!     2351,   880,   880,   348,   505,  2352,  1667,   705,  1626,   706,
!     1631,  2030,  2176,   430,   505,  1668,   150,   283,  2249,  1152,
!     2125,  2180,  1441,  2027,  1732,    25,   370, -1070,  1840,  1118,
!      431,  2543,  1624,    26,  2572,  1853,  2606,  1632,  1386,  1457,
!     1634,  1635,  2210,  1636,  1903,  1016,  1853,   117,  1666,   701,
!     2616,  2028,  1583,  1648,   432,  1667,  2031,  1563,  2721,  1653,
!     1017,  1655,  2723,  2190,  1985,  1985,  1992,  1688,  2083,  2084,
!     2085,  1870,   828,  1819,  1873,  2039,    -3,  1662,  1663,   313,
!     2326,   828,  2327,   277,  1153,  2646,  1534,  1683,  2229,  2191,
!     2628,   277,  2629,  1819,   282,  2211,  2103,  2104,  2105,  2106,
!      783,   784,    27,  1138,  1707,   785,  1925,  2273,  2274,  1819,
!      240,  2234,  2236,  1139,  2095,   499,  2333,   828,   828,  1843,
!      371,  -874,  2017,  2334,   773,  1412,  1412,  1911,  2188,  1996,
!     1997,  1998,  1578,   824,  1963,   501,  1350,  2081,  2778,  2692,
!     2254,   839,  1822,   372,  1757,  1824,   283,  1432,  2775,  2776,
!     2271,  2785,   965,  1832,  1838,  2296,   154,  1819,  2685,  1669,
!      433,  1470,  2144,   828,  2423,  1716,  1642,  2693,   142,  1869,
!     2026,   434,  1855, -1752,  1730,   219,  1857,  1858,   824,  1822,
!     2165,  1859,  1861,  2445,  2446, -1752,  1864,  2598,  2712,   957,
!     2455,  1067,   143,   873,  2351,   251,  1594,  1433,  1965,  2352,
!     2353,     1,   965,   786,  2167,   958,   219,   252,  1669,  1434,
!     1999,  2466,  1366,  2355,  2356,  1595,   828,   145,   877,   877,
!     2168,  2725,   146,  1740,  1822,  1177,  1178,  1886,   502,   965,
!     1947,  1177,  1178,   241,  1179,  1819,  1382,     4,   828,   828,
!     1179,  1899,  1741,   153,  1947,  -308,  1902,   373,   374,  2486,
!      206,  1906,  1670,   121,   792,   828,  1678,  2742,  -162,   435,
!      436,   359,  2169,  1430,  1567,  1568,   793,  1187,  1679,   195,
!      196,  1923,   787,  2212,   437, -1713,   438,   915,  1188,  1068,
!      154, -1752,   503,  1982,   430,  1435,  2243,   242,  -162,  1907,
!      201,   202,  1567,  1568,  1949,   705,  2481,   706,   203,   824,
!     1822,   431,  1350,  1953,  2000,   504,  1666,   157,  1508,  2041,
!     2744,  2278,  1939,  1667,   204,  1943,  1964,  2748,  1733,  2752,
!     1832,  2042,   854,  1973,  1733,   432,  1144,  2533,  2043, -1713,
!     2689,  2691,   160,  2698,  1193,  2537,  2354,  1194,  1690,  1691,
!      163,  1474,  2538,   164,  2281,  2282,   207,   208,   170,   505,
!      828,   209, -1713,   210,   256,   257,  2001,   211,   212,   171,
!      213,   214,   175,  2283,   829,   215,   439,  1167,  2770,  1168,
!     1169,   197,   861,   829,  1671,  1950,  2179,   198,  2281,  2282,
!      182,   886,   829,  2508,  2509,  1955,  -162,   189,  2444,   199,
!      200,   928,  2332,   829,   190,   941, -1713,  2497,   192,   873,
!      788,  2771,  2630,   232,  2771,  2771,   235,  2355,  2356,  1149,
!     1158,   824,  1915,  1381,  2024,  2150,  2151,  2152,  -162,   502,
!      250,  2100,  2035,  1169,   -78,  2473,  2128,   154,  2129,   -78,
!      -78,   433,   253,  2067,   965,  2296,   260,  1578,   -78,   -78,
!      -78,   262,   434,   965,   829,  1750,  1751,  1752,  1753,   263,
!     2074,  1609,  1612,  1613,  1564,  2102,   880,   880,   880,   880,
!      880,  2467,  2245,   264,  2246,  1092,  1412,  1412,  1412,  1096,
!     1097,  1098,  2514,   503,  2515,  1207,  1208,  1588,  2225,  1140,
!     2731,  2769,  2732,  2279,   266,   440,  1992,  1750,  1751,  1752,
!     1753,  1209,  1210,   453,   789,  2295,   504,   265,   216,   280,
!     1906,  1567,  1568,  1690,  1691,  2290, -1752,  1572,  1573,  1574,
!     1575,  1576,  1577,  1637,  1638,   965,   244,  2146,  2147,  1752,
!     1753,  2420,  2421,  2508,  2509,   345,   346,  2201,  2289,  2343,
!      435,   436,   300,  2436,  1765,  1766,  2532,  2665,  1907,   311,
!      505, -1752,  1866,  1867,   305,   437,   312,   438,  2753,  2754,
!      318,   201,   202,   245,   319,   281,   322,   324,   325,   203,
!      359,   362,   965,   854,   363,   854,   369,   382,   854,   427,
!      428,   450,   854,   246,   247,   204,   451,   854,   452,   493,
!      854,   854,   854,   854,  2046,   854,  1906,   494,   497,   965,
!      854,   854,  2641,   854,   513,  1906,  2053,  1688,  1906,  2033,
!     2415,   510,   679,   854,   854,  2266,   691,   696,  1403,   697,
!      839,  1404,  1405,   698,  1370,   709,  1370,   710,   711,   714,
!     2051,  2052,   715,   720,  1907,   717,  1832,   731,  2057,   965,
!      737,   742,   764,  1907,   965,   765,  1907,   439,   813,   816,
!      841,   842,   892,  2225,  2225,   881,   894,   946,   947,   962,
!     1578,   971,   972,  1370,  2296,  2636,  2636,   975,   828,   981,
!      985,  2198,   982,   829,  2234,  1034,   828,  1012,  1906,   829,
!     1065,  1037,  2220,   877,   877,   877,   877,   877,  1370,  1040,
!     1049,  1043,  1046,   682,  2605,  1070,  2226,  2097,  1052,  1406,
!     2174,  1055,  2604,   828,   861,   701,  1078,  1079,  2087,  1082,
!      861,  1080,  1085,  1090,  2639,  2255,  1907,  1093,  1407,  2094,
!     2531,  1089,  1101,  1906,  1100,  2239,  1099,  1102,  1105,   824,
!     2242,  1109,  2240,  2528,  2529,  1114,  1422,   824,  1115,  1117,
!     2244,  1127,  1130,  2729,  1147,  1148,  1149,  1162,  2336,  2337,
!     2338,  1153,  1164,  2258,   839,  1370,   752,  1172, -1747,  2267,
!      828,  1907,  1183,  1185,  1964,  1192,   733,  1190,  1196,  1206,
!     1197,  1211,  2276,  1202,  1832,   854,  1338,  1345,  1363,   928,
!     1372,  1367,  1379,  1380,  1383,   802,   829,   829,  1992,  1992,
!     2636,  2259,  1384,  1425,  2636,  2503,  1431,  1448,   646,  1426,
!      965,  2469,  1449,  2510,   965,  1453,  2307,   880,   880,   880,
!     1454,  1458,   647,  1464,  1466,  1475,  1477,  1487,  1498,  1504,
!     1514,   824,  1524,  1528,  2299,   648,  1530,  1527,   944,  2192,
!     1532,  2093,  1533,  1535,   646,  1408,  1409,  1559,  2074,  1552,
!    -1046,  1401,  1604,  1618,  1621,  1410,  1411,  1068,   647,  1633,
!     1644,  2724,  1650,   965,   649,  1654,  1656,  1657,   965,  1661,
!      965,   648,  1658,  1001,  1677,  1007,  1684,  1120,  1704,  1706,
!     1710,   829,  1720,  1728,  1724,  1742,   829,  -415,   965,   304,
!     1754,  1755,  1756,  1759,  1814,  1762,  1770,  1771,  1772,  1773,
!      649,  1774,  1775,  1776,  1826,   965,  1777,  1845,  1779,  1780,
!     1856,   868,  1865,  1874,  1781,  1851,  1782,  1783,  1784,  1879,
!     1785,  1786,  2263,   854,  1787,  1788,  1789,  1883,   854,  1790,
!     1791,  1792,  1884,  1793,  1794,  1796,  1797,   650,  2335,  1798,
!     2664,   854,   854,  1893,  1799,   854,   854,   854,   854,  1800,
!     1891,  1801,  1802,  1803,  1805,   854,  1892,  1806,  1807,   854,
!      854,   854,  1919,   854,   854,   854,   854,  1808,  1809,  1810,
!     1811,  1812,  1920,   650,  1921,  1922,   828,   854,  2777,  1926,
!     1934,  1946,  1956,  1969,  1974,  1525,  1977,  1980,  1370,  1976,
!      839,  2784,   651,  1978,  1832,  2005,  2427,  2006,  2786,  1832,
!      507,  2304,  2010,  2012,  2305,  1594,  2018,   873,  2019,   839,
!      839,  1622,  2036,   652,  1623,  1992,  2045,  1992,  2047,  2048,
!     2056,  2312,  2058,  2631,  2290,  2634,  2634,  2059,   651,  1906,
!     2060,  2061,  2068,  2069,   877,   877,   877,   839,   508,  2487,
!     2066,  2078,  2070,  2470,  2686,  2494,  2096,  2289,  2077,   652,
!     2086,  2329,  2330,  2331,  2079,   828,  1923,  2088,  2089,  2090,
!      653,  2100,  2342,  2107,  2122,   654,  2126,  1907,  2098,  2099,
!     2109,  2123,  2145,  2166,  1370,   839,  2177,   332,   965,   922,
!     2178,  2181,  2267,  2182,  2199,  2196,  1205,  2200,  2495,  2197,
!     2205,  2224,   655, -1002,  1213,  2232,   653,  2227,  1335,  2238,
!     2251,   654,   333,   334,   335,   336,  2252,   965,   773,  2262,
!     2275,  2298,   656,  1568,  2300,  2303,   824,   923,  2310,  2523,
!     2311,  2313,  2597,  2308,  2314,  2315,  1371,  2316,   655,  2318,
!    -1725,  2323,   657,  2324,  2328,  2349,  2363,  2350,  2365,  2391,
!     2367,  2370,  2416,  2414,  2373,  2374,  2168, -1735,   656,  2382,
!     2634,  2386,  2399,  2722,  2634,  1400,  2406,  2426,  2266,  2407,
!     2409,   854,  2424,  2438,  2411,  2439, -1725,  2440,   657,  2448,
!     2449,  2453,  2452,  2460,  2474,  2488,  2485,  2496,   873,  2465,
!      207,   208,  2507, -1735,  2483,   209,  2512,   210,   854,  2520,
!     2469,   211,   212,  2525,   213,   214,  2527,  2530,  1470,   215,
!     2093,  2534,  2535,   854,   829,  2536,  2541,  2550,  2552,  2556,
!     2563,  2557,  2587,   829,  2589,  2225,  2560,  1118,  2561,  2562,
!     2565,  2468,  2566,  2590,  2574,  2225,  2575,  2594,  2576,  2578,
!     2582,  2583,  2584,  2592,  2595,  2603,  1370,  2596,  2599,  2608,
!     2615,  2622,  2627,  2515,  1016,  2482,  2593,  2650,  2652,   829,
!      829,  2657,  2663,  2668,  2671,  2225,  2666,  2684,  1370,  1370,
!     2705,  1401,  1911,  2727,   828, -1746,  1906,  2667,  2669,  1906,
!     2670,  2713,  2735,   965,  1001,  1565,  2675,  2676,  2677,  1370,
!     2730,  2736,  2681,  2682,  2683,  2719,  2720,  2746,  2738,  2739,
!     2740,  2756,  2760,  2762,  2225,   829,  2764,  2763,  2621,  1370,
!     2656,  2761,  2526,  2767,  1907,  2780,    23,  1907,  2342,  2773,
!      167,  2540,   234,  1402,   162,   159,  1403,   174,   658,  1404,
!     1405,  2225,  1909,   315,   261,   824,   320,   272,  2640,   686,
!     1084,   364,  1073,  2524,  2225,  2050,  1095,   326,   700,   718,
!     1660,  2065,  1664,   267,   429,  1676,   734,  2110,   726,  2115,
!     2080,  2225,  2118,  2071,  1072,  1126,  2121,  1689,   965,  2539,
!     1736,  2127,  1160,  2101,  2132,  2133,  2134,  2135,  2339,  2142,
!      829,   829,   775,  1708,  2148,  2149,   351,  2153,  1737,  1166,
!     2435,   854,   361,  1536,  2441,  1729,   854,  2163,  2164,  1979,
!     1537,   974,   205,   861,   984,  1968,  1505,  1406,  1850,  1562,
!      977,  2280, -1784,  1745,  1531,  2502,  1862,  2687,  2013,  1906,
!     1906,   965,  1906,  2009,  2016,  2632,  1407,   920,   965,  2130,
!      965,  2504,  2470,  1174,  1014,  1888,  1844,  1028,  1746,  1606,
!     2649,  2521,  2654,  1607,  1617,  1972,  2607,  2715,  2716,  2717,
!     2718,  2023,  1036,  2131,  1376,  1897,  1959,  1907,  1907,  1688,
!     1907,   943,  2272,  1910,  1039,   455,  1042,  1937,  1935,  1045,
!     2611,  1916,  2610,  2710,  2706,  2774,  2781,  1900,   456,  1048,
!     2755,  2454,  2602,  2601,  2600,   457,  2745,  2206,  2447,  2451,
!     2183,  1971,   829,  2425,   854,  1825,  2432,  1828,  1051,  1057,
!     2586,  1764,  1054,   854,  2660,  1502,  2489,  2623,  2493,  2545,
!     1513,  2398,  2570,   728,  2419,  2743,  1146,   289,   288,     0,
!        0,     0,  1906,     0,  1906,  1906,     0,     0,     0,     0,
!        0,     0,  2661,  2662,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  1408,  1409,     0,     0,     0,     0,     0,
!        0,     0,     0,  1410,  1411,     0,     0,     0,     0,  1381,
!     1907,     0,  1907,  1907,     0,     0, -1746,     0,     0,     0,
!     1906,     0,     0,  1906,     0,  2772,  1906,  1906,     0,     0,
!        0,  1909,     0,     0,     0,  1795,     0,     0,     0,     0,
!        0,     0,     0,     0,  2612,  2614,     0, -1746,  2782,  2783,
!        0,  2620,     0,     0,     0,     0,     0,     0,  1907,     0,
!        0,  1907,     0,     0,  1907,  1907, -1784,     0,     0,  2711,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   154,
!        0,     0,     0,     0,     0,  -530,     0,  2734,     0,     0,
!        0,     0,     0,     0,   861,     0,   861,     0,     0,   861,
!        0,     0,     0,   861,     0,     0,     0,     0,   861,     0,
!      861,   861,   861,   861,   861,     0,   861,  1909,     0,     0,
!        0,   861,   861,     0,   861,     0,  1909,     0, -1784,  1909,
!        0,     0,   458,     0,   861,   861,     0,     0,   459,     0,
!        0,     0,     0,     0,     0,     0,     0,  2345,     0,     0,
!        0,     0,  2348,     0,     0,     0,     0,     0,     0,     0,
!        0,   460,     0,     0,     0,  2371,  2372,  2759,     0,  2375,
!     2377,  2379,  2381,     0,     0,     0,     0,     0,     0,  2384,
!        0,     0,     0,  2388,  2389,  2390,   461,  2395,  2396,  2397,
!     2384,     0,     0,     0,     0,     0,     0,     0,     0,  1909,
!        0,  2412,     0,     0,     0,     0,     0,     0,   963,   514,
!        0,     0,     0,   462,  1001,     0,     0,     0,     0,     0,
!     -335,   332,     0,     0,   463,  -335,     0,  -335,     0,  -335,
!     -335,  -335,     0,     0,  -335,  -335,  -335,     0,     0,     0,
!        0,     0,     0,   464,  1909,     0,   333,   334,   335,   336,
!      829,     0,     0,     0,     0,     0,     0,     0,   829,     0,
!        0,     0,   517,  -530,     0,     0,     0,     0,     0,   465,
!    -1746,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   466,     0,     0,     0,     0,     0,     0,     0,   467,
!        0,     0,   468,     0,     0,     0,   861,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1565,     0,     0,     0,
!        0,     0,  1001,  1001,  1993,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   207,   208,     0,     0,     0,   209,
!        0,   210,     0,     0,     0,   211,   212,     0,   213,   214,
!     1007,     0,   829,   215,     0,     0,     0,  1001,     0,     0,
!      518,     0,     0,     0,   519,   520,   521,   522,   523,   524,
!      525,   526,   527,   528,   529,   530,   531,     0,   532,   533,
!      534,   535,   536,   537,   538,   539,     0,   540,   541,   542,
!      543,   544,   545,     0,   546,  2542,   547,   548,   549,   550,
!      551,   552,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   553,     0,     0,     0,  -453,     0,
!        0,     0,  2559,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  2568,     0,     0,
!        0,     0,     0,     0,   861,     0,     0,     0,     0,   861,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   861,   861,     0,     0,   861,   861,   861,   861,
!        0,     0,     0,     0,     0,     0,   861,     0,     0,     0,
!      861,   861,   861,     0,   861,   861,   861,   861,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   861,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  2108,   514,     0,   554,     0,     0,
!        0,     0,   555,     0,     0,     0,  2112,     0,  2116,  2117,
!        0,  2119,  2120,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -335,     0,  2112,
!     1909,   556,     0,     0,     0,     0,  2155,     0,  2157,     0,
!        0,  2159,  2160,  2161,  2162,     0,     0,  2112,   517,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -400,   332,     0,
!      928,     0,  -400,     0,  -400,     0,  -400,  -400,  -400,     0,
!        0,  -400,  -400,  -400,     0,  2679,     0,     0,     0,     0,
!     2680,     0,     0,   333,   334,   335,   336,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   829,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   518,     0,     0,     0,
-      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
-      529,   530,   531,     0,   532,   533,   534,   535,   536,   537,
-      538,   539,   861,   540,   541,   542,   543,   544,   545,   557,
-      546,     0,   547,   548,   549,   550,   551,   552,     0,     0,
-        0,   207,   208,     0,     0,     0,   209,     0,   210,   861,
-      553,     0,   211,   212,   558,   213,   214,     0,  2737,     0,
-      215,     0,     0,     0,   861,     0,     0,  2741,     0,     0,
-        0,  2277,     0,   559,     0,     0,  -335,  -335,     0,     0,
-     -401,   332,     0,     0,  1993,  -401,     0,  -401,     0,  -401,
-     -401,  -401,     0,     0,  -401,  -401,  -401,     0,     0,     0,
-        0,     0,     0,  1001,     0,     0,   333,   334,   335,   336,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1909,     0,     0,
!     1909,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   554,     0,     0,     0,     0,   555,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   207,   208,   829,   556,     0,   209,
!        0,   210,     0,     0,     0,   211,   212,     0,   213,   214,
!        0,     0,     0,   215,     0,     0,     0,     0,  2112,     0,
!        0,     0,     0,     0,  2360,  2362,     0,     0,  2366,     0,
!     2368,  2369,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  2112,
!        0,     0,   861,     0,     0,     0,     0,   861,     0,     0,
!        0,  2403,  2405,     0,  2007,  2408,     0,  2410,   964,     0,
!     2112,     0,     0,     0,     0,     0,  -838,     0,     0,     0,
!     1909,  1909,     0,  1909,  2233,     0,     0,     0,     0,     0,
!     2430,     0,     0,     0,  -838,  -838,     0,     0,  2442,  2443,
!        0,     0,     0,     0,     0,  -838,  -838,     0,     0,     0,
!        0,     0,  -838,  -838,     0,     0,     0,  -337,   332,  -838,
!        0,     0,  -337,  -838,  -337,  -838,  -337,  -337,  -337,     0,
!        0,  -337,  -337,  -337,     0,   557,     0,     0,     0,     0,
!        0,     0,     0,   333,   334,   335,   336,     0,     0,     0,
!        0,     0,     0,     0,     0,   861,     0,     0,     0,     0,
!      558,     0,  -838,  -838,   861,     0,     0,     0,     0,     0,
!        0,     0,     0,  -838,     0,     0,     0,     0,     0,   559,
!        0,     0,     0,  1909,     0,  1909,  1909,     0,     0,     0,
!        0,     0,     0,  1565,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   207,   208,     0,     0,     0,   209,     0,   210,     0,
!        0,  1909,   211,   212,  1909,   213,   214,  1909,  1909,     0,
!      215,     0,     0,     0,     0,     0,     0,     0,  -838,  -838,
!     -838,  -838,  -838,  -400,  -838,     0,     0,     0,  -838,     0,
!        0,     0,     0,     0,     0,  2547,     0,  2549,  -838,     0,
!     -838,     0,  -838,  2553,  2555,     0,     0,     0,     0,  -838,
!        0,     0,  -838,     0,  -838,     0,     0,     0,  -838,  -838,
!        0,     0,  -838,     0,     0,     0,  -838,     0,     0,     0,
!     -838,  -838,     0,     0,     0,     0,     0,     0,  2579,     0,
!     2581,  -838,     0,     0,     0,     0,     0,  -838,     0,     0,
!        0,     0,     0,     0,  -838,     0,     0,  -838,     0,     0,
!        0,  -838,     0,     0,     0,  -838,  -838,     0,     0,  -838,
!        0,  -838,     0,     0,     0,     0,     0,     0,     0,     0,
!     2609,     0,  -838,     0,     0,     0,     0,     0,  -838,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -838,  -838,
!        0,     0,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!        0,     0,     0,     0,     0,     0,  -838,     0,     0,     0,
!        0,  -838,  -838,  -838,  -838,     0,  -401,  -838,     0,  -838,
!        0,     0,     0,  1993,     0,  1993,     0,  -838,  -838,  -838,
!     -838,     0,  1001,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -838,  -838,  -838,  -838,  -838,  -838,     0,
!     -838,     0,     0,     0,  -337,     0,     0,     0,     0,     0,
!        0,     0,  -838,  -838,     0,     0,     0,     0,     0,     0,
!        0,     0,  -838,  -838,  -838,  -838,     0,     0,  2674,     0,
!     -838,  -838,  -838,  -838,  -838,     0,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,     0,  -838,     0,     0,     0,     0,
!     -838,     0,     0,     0,     0,     0,  -838,     0,     0,     0,
!     -838,  -838,  -838,     0,     0,     0,     0,     0,  -838,     0,
!        0,  -838,     0,  -838,  -838,     0,  2297,     0,     0,     0,
!        0,     0,     0,  2708,     0,  -838,     0,     0,     0,  -838,
!        0,     0,     0,     0,     0,     0,     0,  2714,     0,     0,
!     -838,  -838,  -838,  -838,     0,     0,     0,     0,  1993,     0,
!     -838,     0,  1993,     0,     0,  -838,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -838,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -838,  -838,     0,     0,     0,     0,     0,     0,  -838,
!     -838,     0,  -838,     0,     0,     0,  -838,     0,     0,     0,
!     -838,  -838,     0,  -838,  -838,  -838,  -838,     0,     0,     0,
!        0,  -838,     0,     0,  -838,  -838,  -838,  -838,  -838,  -838,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -838,  -838,     0,  -337,  -337,     0,  -838,     0,     0,     0,
!        0,     0,     0,     0,  -838,  -838,     0,     0,  -838,  -838,
!        0,  -838,  -838,  -838,     0,  -838,     0,     0,  -838,     0,
!        0,     0,     0,     0,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,  -838,  -838,     0,     0,  2007,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -838,     0,     0,     0,     0,     0,     0,     0,     0,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,     0,     0,     0,   383,     0,  -838,     0,     0,     0,
-     -838,  -838,     0,     0,     0,     0,     0,  -838,  -838,     0,
-        0,     0,     0,     0,  -838,     0,     0,     0,  -838,     0,
-     -838,     0,     0,     0,   384,     0,   385,   386,   387,   388,
-      389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
-      399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
-      409,   410,   411,   412,   413,   414,     0,  -838,  -838,     0,
-        0,     0,     0,     0,     0,     0,     0,  1553,  -838,   385,
-      386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-      396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
-      406,   407,   408,   409,   410,   411,   412,   413,   414,   385,
-      386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-      396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
-      406,   407,   408,   409,   410,   411,   412,   413,   414,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -838,  -838,  -838,  -838,  -838,     0,  -838,
!        0,     0,     0,  -838,     0,     0,     0,     0,     0,     0,
!      415,     0,     0,  -838,     0,  -838,     0,  -838,     0,     0,
!        0,     0,     0,     0,  -838,     0,     0,  -838,     0,  -838,
!        0,     0,     0,  -838,  -838,     0,     0,  -838,     0,     0,
!        0,  -838,     0,     0,     0,  -838,  -838,     0,     0,     0,
!        0,     0,     0,     0,     0,   416,  -838,     0,     0,     0,
!        0,     0,  -838,     0,     0,     0,     0,     0,     0,  -838,
!        0,  1554,  -838,  1555,  1556,     0,  -838,     0,     0,   417,
!     -838,  -838,     0,     0,  -838,     0,  -838,     0,     0,     0,
!        0,     0,     0,     0,     0,   418,     0,  -838,     0,     0,
!        0,     0,     0,  -838,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -838,  -838,     0,     0,  -838,  -838,  -838,
!     -838,  -838,  -838,  -838,  -838,     0,     0,     0,     0,     0,
!        0,  -838,     0,     0,     0,     0,  -838,  -838,  -838,  -838,
!        0,     0,  -838,     0,  -838,     0,     0,     0,     0,     0,
!        0,     0,  -838,  -838,  -838,  -838,     0,     0,     0,     0,
!        0,     0,     0,     0,  1627,     0,     0,     0,  -838,  -838,
!     -838,  -838,  -838,  -838,     0,  -838,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -838,  -838,     0,
!        0,     0,     0,     0,     0,     0,     0,  -838,  -838,  -838,
!     -838,   419,     0,     0,     0,  -838,  -838,  -838,  -838,  -838,
!        0,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,     0,
!     -838,     0,     0,     0,     0,  -838,     0,     0,     0,     0,
!        0,  -838,     0,     0,     0,  -838,  -838,  -838,     0,     0,
!        0,     0,     0,  -838,     0,     0,  -838,     0,  -838,  -838,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -838,     0,     0,     0,  -838,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -838,  -838,  -838,  -838,     0,
-        0,     0,     0,     0,     0,  -838,     0,     0,     0,     0,
-     -838,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -838,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,  -838,  -838,     0,     0,
-        0,     0,     0,     0,  -838,  -838,     0,  -838,     0,     0,
-        0,  -838,     0,     0,     0,  -838,  -838,     0,  -838,  -838,
-     -838,  -838,     0,     0,     0,     0,  -838,   420,     0,  -838,
-     -838,  -838,  -838,  -838,  -838,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -838,  -838,     0,     0,     0,
-        0,  -838,     0,     0,     0,     0,     0,     0,     0,  -838,
-     -838,     0,     0,  -838,  -838,     0,  -838,  -838,  -838,     0,
-     -838,     0,     0,  -838,     0,     0,     0,     0,     0,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,     0,     0,  2154,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1546,     0,     0,     0,
-        0,     0,     0,     0,     0,  -838,  -838,  -838,  -838,  -838,
-     -838,  -838,  -838,  -838,    28,     0,     0,     0,     0,     0,
-        0,  -838,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   792,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   793,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1546, -1546,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34, -1546,     0, -1546,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1546,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0, -1546,
!        0,     0, -1546,     0, -1546,     0,     0,     0, -1546, -1546,
!        0,     0, -1546,     0,     0,     0, -1546,     0,     0,     0,
!    -1546, -1546,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1546,     0,     0,     0,     0,     0, -1546,     0,     0,
!        0,     0,     0,     0, -1546,     0,     0, -1546,     0,     0,
!        0, -1546,     0,     0,     0, -1546, -1546,     0,     0, -1546,
!        0, -1546,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   795,     0,     0,     0,     0,     0, -1546,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1546, -1546,
!        0,     0, -1546, -1546, -1546, -1546, -1546, -1546, -1546,     0,
!        0,     0,     0,     0,     0,     0, -1546,     0,     0,     0,
!        0, -1546, -1546, -1546, -1546,     0,     0, -1546,     0,   796,
!        0,     0,     0,     0,     0,     0,     0, -1546, -1546,     0,
!    -1546,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1546, -1546, -1546, -1546, -1546, -1546,     0,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1546,   797,     0,     0,     0,     0,     0,     0,
!        0,     0, -1546, -1546, -1546, -1546,     0,     0,     0,     0,
!    -1546, -1546, -1546,     0, -1546,     0,    38, -1546, -1546, -1546,
!    -1546, -1546,    39, -1546,     0, -1546,     0,     0,     0,     0,
!    -1546,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1546, -1546, -1546,     0,     0,     0,     0,     0,    40,     0,
!        0, -1546,     0, -1546, -1546,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1546,     0,     0,     0, -1546,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1546, -1546, -1546,     0,     0,     0,     0,     0,     0,
!       41,     0,     0,     0,     0, -1546,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1546,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1546, -1546,     0,     0,     0,     0,     0,     0, -1546,
!    -1546,     0, -1546,     0,     0,     0, -1546,     0,     0,     0,
!    -1546, -1546,     0,    42, -1546, -1546,    43,     0,     0,     0,
!        0, -1546,     0,     0, -1546, -1546, -1546, -1546, -1546, -1546,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1546,     0,     0,     0,     0,     0, -1546,     0,     0,     0,
!        0,     0,     0,     0, -1546, -1546,     0,     0, -1546, -1546,
!        0, -1546, -1546, -1546,     0, -1546,     0,     0, -1546,     0,
!        0,     0,     0,     0, -1546,    44,    45,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   798,     0, -1408,   876,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1408, -1408,     0,     0,     0,     0,   799,   800,    28,
!        0,     0,     0,     0,     0,     0,   801,     0,     0,     0,
!        0,   845, -1408, -1408,     0, -1408,     0,     0,   846, -1408,
!        0,     0, -1408,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   847,
-      848,   849,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   517,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1408,  1401, -1408,     0, -1408, -1408, -1408, -1408, -1408, -1408,
-    -1408, -1408, -1408, -1408, -1408, -1408, -1408, -1791, -1408, -1408,
-    -1408, -1408, -1408, -1408, -1408, -1408,     0, -1408, -1408, -1408,
-    -1408, -1408, -1408,     0, -1408,     0, -1408, -1408, -1408, -1408,
-    -1408, -1408, -1408,    31,    32,    33,    34,     0,     0,     0,
-        0,     0,     0,  1402, -1408,     0,  1403,     0,     0,  1404,
-     1405,     0,     0,     0,     0,     0,     0,    35,     0,     0,
-        0,     0,     0,     0,   518,     0,     0,     0,   519,   520,
-      521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
-      531,    36,   532,   533,   534,   535,   536,   537,   538,   539,
-        0,   540,   541,   542,   543,   544,   545,     0,   546,     0,
-      547,   548,   549,   550,   551,   552, -1105,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   553,     0,
-        0,     0,     0,     0,     0,     0,     0,  1406,     0,     0,
-        0,     0, -1784,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,  1407, -1408,     0,     0,
-     1539,     0, -1408,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1408,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1408,   385,   386,   387,   388,   389,   390,   391,   392,
!      393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
!      403,   404,   405,   406,   407,   408,   409,   410,   411,   412,
!      413,   414,     0,     0,     0,    37,     0,     0,     0,     0,
!        0,   554,     0,     0,     0,     0,   555,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1105,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,   556,     0,    39,     0,     0,
!        0,     0,     0,  1408,  1409,     0,     0,     0,     0,     0,
!        0,     0,     0,  1410,  1411,     0,     0,     0,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1540,  1541,     0,  1542,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1408,
!        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1784,     0,     0,     0,
!        0,     0,     0,     0, -1408,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1408,     0,     0,     0,     0,     0,  1543,
!     1544,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,  1545,
!        0,     0,     0,   557,  1546,     0,  1547,     0, -1784,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   558,  1548,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   701,     0,     0,   559,     0,     0,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-      114,     0, -1408, -1408, -1408, -1408, -1408,     0, -1408, -1408,
-    -1408, -1408, -1408, -1408, -1408, -1408, -1408, -1408, -1408, -1408,
-    -1408, -1408,  -704,  -704,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1408,     0,
-        0,     0,     0,     0,     0,  -704,  -704,     0,     0,     0,
-        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   499,   845,  -704,  -704,     0,  -704,
-        0,     0,   846,  -704,     0,     0,  -704,     0,     0,     0,
-        0,     0,     0,     0,   501, -1105,     0,   514,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   847,   848,   849,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
!      517,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1549,     0,     0,
!        0,     0,     0,     0,  -704,     0,  -704,     0,  -704,  -704,
!     -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,
!     -704,     0,  -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,
!        0,  -704,  -704,  -704,  -704,  -704,  -704,     0,  -704,     0,
!     -704,  -704,  -704,  -704,  -704,  -704,  -704,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,   850,  -704,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   518,     0,
!        0,    35,   519,   520,   521,   522,   523,   524,   525,   526,
!      527,   528,   529,   530,   531,     0,   532,   533,   534,   535,
!      536,   537,   538,   539,     0,   540,   541,   542,   543,   544,
!      545,     0,   546,     0,   547,   548,   549,   550,   551,   552,
!    -1116,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   553,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -704,     0,     0,     0,     0,  -704,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -704,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -704,     0,     0,   796,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   554,     0,     0,     0,    37,
!      555,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   851,     0,     0,     0,     0,     0, -1116,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   556,
!        0,     0,   503,     0,     0,    38,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -704,     0,   504,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   505,
-        0,     0,     0,  -704,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -704,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -704,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,   557,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -704,     0,     0,     0,     0,     0,     0,     0,
!        0,   559,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   852,  -704,  -704,  -704,  -704,
!     -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,  -704,
!     -704,  -704,  -704,  -704,  -704,  -704,  -710,  -710,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -704,     0,     0,     0,     0,     0,     0,  -710,
!     -710,     0,     0,     0,     0,     0,     0,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   499,   845,
!     -710,  -710,     0,  -710,     0,     0,   846,  -710,     0, -1116,
!     -710,     0,     0,     0,     0,     0,     0,     0,   501,     0,
!        0,   514,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   847,   848,   849,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
!        0,     0,     0,     0,   517,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -710,     0,
!     -710,     0,  -710,  -710,  -710,  -710,  -710,  -710,  -710,  -710,
!     -710,  -710,  -710,  -710,  -710,     0,  -710,  -710,  -710,  -710,
!     -710,  -710,  -710,  -710,     0,  -710,  -710,  -710,  -710,  -710,
!     -710,     0,  -710,     0,  -710,  -710,  -710,  -710,  -710,  -710,
!     -710,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,   850,  -710,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   518,     0,     0,    35,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,   530,   531,     0,
!      532,   533,   534,   535,   536,   537,   538,   539,     0,   540,
!      541,   542,   543,   544,   545,     0,   546,     0,   547,   548,
!      549,   550,   551,   552, -1099,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -710,     0,     0,     0,     0,
!     -710,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -710,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -710,
!        0,     0,   796,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   502,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
!        0,     0,     0,    37,   555,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   851,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   556,     0,     0,   503,     0,     0,    38,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   504,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   505,     0,     0,     0,  -710,     0,     0,
         0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,  -710,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -710,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
!        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   558,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   559,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   852,
!     -710,  -710,  -710,  -710,  -710,     0,  -710,  -710,  -710,  -710,
!     -710,  -710,  -710,  -710,  -710,  -710,  -710,  -710,  -710,  -710,
!    -1374, -1374,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -710,     0,     0,     0,
!        0,     0,     0, -1374, -1374,     0,     0,     0,     0,     0,
!        0,    28,     0, -1374,     0,     0,     0,     0,     0,     0,
!        0,     0,   499,  1904, -1374, -1374,     0, -1374,     0,     0,
!        0, -1374,     0,  2021, -1374,     0,     0,     0,     0,     0,
!        0,     0,   501,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   517,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1374,     0, -1374,     0, -1374, -1374, -1374, -1374,
-    -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374,     0,
-    -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374,     0, -1374,
-    -1374, -1374, -1374, -1374, -1374,     0, -1374,     0, -1374, -1374,
-    -1374, -1374, -1374, -1374, -1374,    31,    32,    33,    34,     0,
-        0,     0,     0,     0,     0, -1374, -1374,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
-        0,     0,     0,     0,   518,     0,     0,     0,   519,   520,
-      521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
-      531,     0,   532,   533,   534,   535,   536,   537,   538,   539,
-    -1374,   540,   541,   542,   543,   544,   545,     0,   546,     0,
-      547,   548,   549,   550,   551,   552,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   553,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1374,
-        0,     0,     0,     0, -1374,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1374,     0,     0,     0,     0, -1374,     0,     0,
-        0,     0,     0, -1374,     0,     0,   796,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   502,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
!        0,   554,     0,     0,     0,     0,   555, -1374,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0, -1119,     0,     0,     0,     0,     0,
-      503,     0,     0,    38,     0,   556,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   504,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   505,     0,     0,
-        0, -1374,     0,     0,     0,     0,     0,    41,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1374,     0,
-        0,     0,     0,     0,     0,     0, -1374,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0, -1374,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   557,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0, -1374,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   558,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   559,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,     0, -1374, -1374, -1374, -1374, -1374,     0,
!    -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374, -1374,
!    -1374, -1374, -1374, -1374, -1375, -1375,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1374,     0,     0,     0,     0,     0,     0, -1375, -1375,     0,
-        0,     0,     0,     0,     0,    28,     0, -1375,     0,     0,
-        0,     0,     0,     0,     0,     0,   499,  1904, -1375, -1375,
-        0, -1375,     0,     0,     0, -1375,     0,     0, -1375,     0,
-        0,     0,     0,     0,     0, -1119,   501,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   514,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      517,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1375,     0, -1375,     0,
-    -1375, -1375, -1375, -1375, -1375, -1375, -1375, -1375, -1375, -1375,
-    -1375, -1375, -1375,     0, -1375, -1375, -1375, -1375, -1375, -1375,
-    -1375, -1375,     0, -1375, -1375, -1375, -1375, -1375, -1375,     0,
-    -1375,     0, -1375, -1375, -1375, -1375, -1375, -1375, -1375,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0, -1375,
-    -1375,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,   518,     0,
-        0,     0,   519,   520,   521,   522,   523,   524,   525,   526,
-      527,   528,   529,   530,   531,     0,   532,   533,   534,   535,
-      536,   537,   538,   539, -1375,   540,   541,   542,   543,   544,
-      545,     0,   546,     0,   547,   548,   549,   550,   551,   552,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   553,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1375,     0,     0,     0,     0, -1375,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1375,     0,     0,     0,
-        0, -1375,     0,     0,     0,     0,     0, -1375,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      502,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,   554,     0,     0,     0,     0,
-      555, -1375,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   503,     0,     0,    38,     0,   556,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   504,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   505,     0,     0,     0, -1375,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1375,     0,     0,     0,     0,     0,     0,     0,
!    -1375,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1375,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1375,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   558,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   559,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,     0, -1375, -1375,
!    -1375, -1375, -1375,     0, -1375, -1375, -1375, -1375, -1375, -1375,
!    -1375, -1375, -1375, -1375, -1375, -1375, -1375, -1375, -1376, -1376,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0, -1375,     0,     0,     0,     0,     0,
-        0, -1376, -1376,     0,     0,     0,     0,     0,     0,    28,
-        0, -1376,     0,     0,     0,     0,     0,     0,     0,     0,
-      499,  1904, -1376, -1376,     0, -1376,     0,     0,     0, -1376,
-        0,     0, -1376,     0,     0,     0,     0,     0,     0,  1614,
-      501,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   514,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   517,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1376,     0, -1376,     0, -1376, -1376, -1376, -1376, -1376, -1376,
-    -1376, -1376, -1376, -1376, -1376, -1376, -1376,     0, -1376, -1376,
-    -1376, -1376, -1376, -1376, -1376, -1376,     0, -1376, -1376, -1376,
-    -1376, -1376, -1376,     0, -1376,     0, -1376, -1376, -1376, -1376,
-    -1376, -1376, -1376,    31,    32,    33,    34,     0,     0,     0,
-        0,     0,     0, -1376, -1376,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
-        0,     0,   518,     0,     0,     0,   519,   520,   521,   522,
-      523,   524,   525,   526,   527,   528,   529,   530,   531,     0,
-      532,   533,   534,   535,   536,   537,   538,   539, -1376,   540,
-      541,   542,   543,   544,   545,     0,   546,     0,   547,   548,
-      549,   550,   551,   552,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1376,     0,     0,
!        0,     0, -1376,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1376,     0,     0,     0,     0, -1376,     0,     0,     0,     0,
!        0, -1376,     0,     0,   796,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   502,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    37,     0,     0,     0,   554,
!        0,     0,     0,     0,   555, -1376,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   503,     0,
!        0,    38,     0,   556,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   504,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   505,     0,     0,     0, -1376,
-        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1376,     0,     0,     0,
-        0,     0,     0,     0, -1376,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1376,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
-        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1376,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   558,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   559,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,     0, -1376, -1376, -1376, -1376, -1376,     0, -1376, -1376,
!    -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376, -1376,
!    -1376, -1376, -1390, -1390,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1376,     0,
!        0,     0,     0,     0,     0, -1390, -1390,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   499,  1904, -1390, -1390,     0, -1390,
!        0,     0,     0, -1390,     0,     0, -1390,     0,     0,     0,
!        0,     0,     0,  2021,   501,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   514,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   517,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0, -1390,     0, -1390,     0, -1390, -1390,
-    -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-    -1390,     0, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-        0, -1390, -1390, -1390, -1390, -1390, -1390,     0, -1390,     0,
-    -1390, -1390, -1390, -1390, -1390, -1390, -1390,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0, -1390, -1390,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    35,     0,     0,     0,     0,   518,     0,     0,     0,
-      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
-      529,   530,   531,     0,   532,   533,   534,   535,   536,   537,
-      538,   539, -1390,   540,   541,   542,   543,   544,   545,     0,
-      546,     0,   547,   548,   549,   550,   551,   552,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0, -1390,     0,     0,     0,     0, -1390,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1390,     0, -1390,     0,     0,     0,
!        0,     0,     0,     0,     0, -1390,     0,     0,   796,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
-        0,     0,     0,   554,     0,     0,     0,     0,   555, -1390,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   503,     0,     0,    38,     0,   556,     0,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   504,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   505,
-        0,     0,     0, -1390,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1390,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1390,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1390,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   559,
-        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,     0, -1390, -1390, -1390, -1390,
-    -1390,     0, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-    -1390, -1390, -1390, -1390, -1390, -1390, -1079, -1079,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1390,     0,     0,     0,     0,     0,     0, -1079,
!    -1079,     0,     0,     0,     0,     0,     0,    28,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1079, -1079,     0, -1079,     0,     0,   792, -1079,     0,     0,
-    -1079,     0,     0,     0,     0,     0,     0, -1122,   793,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -635,   514,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -635,  -635,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
!        0,     0,     0,     0,     0,  -635,  -635,     0,  -635,     0,
!        0,     0,  -635,     0,     0,   517,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1079,     0,
!    -1079,     0, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079,
!    -1079, -1079, -1079, -1079, -1079,     0, -1079, -1079, -1079, -1079,
!    -1079, -1079, -1079, -1079,     0, -1079, -1079, -1079, -1079, -1079,
!    -1079,     0, -1079,     0, -1079, -1079, -1079, -1079, -1079, -1079,
!    -1079,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0, -1079,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,     0,   518,     0,  -635,     0,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
!        0,   532,   533,   534,   535,   536,   537,   538,   539,     0,
!      540,   541,   542,   543,   544,   545,     0,   546,     0,   547,
!      548,   549,   550,   551,   552,  -635,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   553,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0, -1079,     0,     0,     0,     0,
-    -1079,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1079,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1079,
-        0,     0,   796,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    37,     0,     0,     0,     0,     0,     0,
!      554,     0,     0,     0,     0,   555,   820,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -635,     0,     0,     0,     0,     0,    38,
!        0,     0,     0,     0,   556,    39,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1079,     0,     0,
-        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1079,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0, -1079,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
-        0,     0,     0,     0,     0,     0, -1791,     0,     0,     0,
-        0,     0,   557,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  1016,     0,     0,   558,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  1017,
-        0,     0,   701,     0,     0,     0,   559,     0,    44,    45,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,     0,
!    -1079, -1079, -1079, -1079, -1079,     0, -1079, -1079, -1079, -1079,
!    -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079, -1079,
!     -966,   876,     0,     0,     0,     0,     0,     0,     0,     0,
!      821,   822,     0,     0,     0,     0, -1079,     0,     0,     0,
!        0,     0,     0,  -966,  -966,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   845,  -966,  -966,     0,  -966,     0,     0,
!      846,  -966,     0,     0,  -966,  -635,  -635,  -635,  -635,  -635,
!        0,  -635,  -635,  -635,  -635,  -635,  -635,  -635,  -635,  -635,
!     -635,  -635,  -635,  -635,  -635,   514,     0,   -11,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -635,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   847,   848,   849,     0,   515,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,  1813,     0,
!        0,     0,     0,     0,   516,     0,     0,     0,   517,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -966,     0,  -966,     0,  -966,  -966,  -966,  -966,
!     -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,     0,
!     -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,     0,  -966,
!     -966,  -966,  -966,  -966,  -966,     0,  -966,     0,  -966,  -966,
!     -966,  -966,  -966,  -966,  -966,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,     0,  -966,     0,     0,     1,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
!        0,     0,     0,     0,     0,     0,   518,     0,     0,     0,
!      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
!      529,   530,   531,    36,   532,   533,   534,   535,   536,   537,
!      538,   539,     0,   540,   541,   542,   543,   544,   545,     0,
!      546,     0,   547,   548,   549,   550,   551,   552,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  -966,
-        0,     0,     0,     0,  -966,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -966,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -966,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
-        0,     0,     0,   554,     0,     0,     0,     0,   555,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    38,     0,     0,     0,   556,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -966,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -966,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -966,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,   -11,     0,     0,     0,
-        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   559,
-        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
-       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-      112,   113,   114,     0,  -966,  -966,  -966,  -966,  -966,     0,
-     -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,  -966,
-     -966,  -966,  -966,  -966,  -970,   876,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -966,     0,     0,     0,     0,     0,     0,  -970,  -970,     0,
-        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   845,  -970,  -970,
-        0,  -970,     0,     0,   846,  -970,     0,     0,  -970,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  -543,
-      514,     0,   -11,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,  -543,  -543,  -543,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      515,     0,     0,     0,     0,   847,   848,   849,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,   516,
!        0,     0,     0,   517,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -970,     0,  -970,     0,
!     -970,  -970,  -970,  -970,  -970,  -970,  -970,  -970,  -970,  -970,
!     -970,  -970,  -970,     0,  -970,  -970,  -970,  -970,  -970,  -970,
!     -970,  -970,     0,  -970,  -970,  -970,  -970,  -970,  -970,     0,
!     -970,     0,  -970,  -970,  -970,  -970,  -970,  -970,  -970,    31,
!       32,    33,    34,     0,     1,     0,     0,     0,     0,     0,
!     -970,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   518,     0,    35,     0,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,   530,   531,     0,   532,
!      533,   534,   535,   536,   537,   538,   539,    36,   540,   541,
!      542,   543,   544,   545,     0,   546,     0,   547,   548,   549,
!      550,   551,   552,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   553,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -970,     0,     0,     0,     0,  -970,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -970,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -970,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   554,     0,
-        0,    37,     0,   555,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   556,     0,     0,     0,     0,    38,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -970,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -970,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -970,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   -11,     0,     0,    42,     0,     0,    43,     0,     0,
-      557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   558,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   559,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,     0,  -970,  -970,
!     -970,  -970,  -970,     0,  -970,  -970,  -970,  -970,  -970,  -970,
!     -970,  -970,  -970,  -970,  -970,  -970,  -970,  -970,  -967,   876,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  -970,     0,     0,     0,     0,     0,
-        0,  -967,  -967,     0,     0,     0,     0,     0,     0,    28,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   845,  -967,  -967,     0,  -967,     0,     0,   846,  -967,
-        0,     0,  -967,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,  -544,   514,     0,   -11,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,  -544,  -544,  -544,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   515,     0,     0,     0,     0,   847,
-      848,   849,     0,     0,     0,     0,     0,     0,    30,     0,
-        0,     0,     0,   516,     0,     0,     0,   517,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -967,     0,  -967,     0,  -967,  -967,  -967,  -967,  -967,  -967,
-     -967,  -967,  -967,  -967,  -967,  -967,  -967,     0,  -967,  -967,
-     -967,  -967,  -967,  -967,  -967,  -967,     0,  -967,  -967,  -967,
-     -967,  -967,  -967,     0,  -967,     0,  -967,  -967,  -967,  -967,
-     -967,  -967,  -967,    31,    32,    33,    34,     0,     1,     0,
-        0,     0,     0,     0,  -967,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   518,     0,    35,     0,   519,
-      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-      530,   531,     0,   532,   533,   534,   535,   536,   537,   538,
-      539,    36,   540,   541,   542,   543,   544,   545,     0,   546,
-        0,   547,   548,   549,   550,   551,   552,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   553,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,  -967,     0,     0,
-        0,     0,  -967,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -967,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -967,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   554,     0,     0,    37,     0,   555,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   556,     0,     0,     0,
-        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -967,
!        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -967,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,  -967,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   -11,     0,     0,    42,     0,
-        0,    43,     0,     0,   557,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   558,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   559,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,     0,  -967,  -967,  -967,  -967,  -967,     0,  -967,  -967,
!     -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,  -967,
!     -967,  -967,  -969,   876,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -967,     0,
!        0,     0,     0,     0,     0,  -969,  -969,     0,     0,     0,
         0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   845,  -969,  -969,     0,  -969,
!        0,     0,   846,  -969,     0,     0,  -969,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   514,     0,
!      -11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   515,     0,
-        0,     0,     0,   847,   848,   849,     0,     0,     0,     0,
-        0,     0,    30,     0,     0,     0,     0,   516,     0,     0,
-        0,   517,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  -969,     0,  -969,     0,  -969,  -969,
-     -969,  -969,  -969,  -969,  -969,  -969,  -969,  -969,  -969,  -969,
-     -969,     0,  -969,  -969,  -969,  -969,  -969,  -969,  -969,  -969,
-        0,  -969,  -969,  -969,  -969,  -969,  -969,     0,  -969,     0,
-     -969,  -969,  -969,  -969,  -969,  -969,  -969,    31,    32,    33,
-       34,     0,     1,     0,     0,     0,     0,     0,  -969,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   518,
-        0,    35,     0,   519,   520,   521,   522,   523,   524,   525,
-      526,   527,   528,   529,   530,   531,     0,   532,   533,   534,
-      535,   536,   537,   538,   539,    36,   540,   541,   542,   543,
-      544,   545,     0,   546,     0,   547,   548,   549,   550,   551,
-      552,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   553,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -969,     0,     0,     0,     0,  -969,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -969,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -969,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   554,     0,     0,    37,
-        0,   555,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      556,     0,     0,     0,     0,    38,     0,     0,     0,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -969,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,  -969,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,  -969,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   -11,
-        0,     0,    42,     0,     0,    43,     0,     0,   557,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   558,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   559,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,     0,  -969,  -969,  -969,  -969,
!     -969,     0,  -969,  -969,  -969,  -969,  -969,  -969,  -969,  -969,
!     -969,  -969,  -969,  -969,  -969,  -969,  -968,   876,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -969,     0,     0,     0,     0,     0,     0,  -968,
!     -968,     0,     0,     0,     0,     0,     0,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   845,
!     -968,  -968,     0,  -968,     0,     0,   846,  -968,     0,     0,
!     -968,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -816,   514,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -816,  -816,     0,     0,   847,   848,   849,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
!        0,     0,     0,     0,  -816,  -816,     0,  -816,     0,     0,
!        0,  -816,     0,     0,   517,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -968,     0,
!     -968,     0,  -968,  -968,  -968,  -968,  -968,  -968,  -968,  -968,
!     -968,  -968,  -968,  -968,  -968,     0,  -968,  -968,  -968,  -968,
!     -968,  -968,  -968,  -968,     0,  -968,  -968,  -968,  -968,  -968,
!     -968,     0,  -968,     0,  -968,  -968,  -968,  -968,  -968,  -968,
!     -968,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0,  -968,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,   518,     0,  -816,     0,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,   530,   531,    36,
!      532,   533,   534,   535,   536,   537,   538,   539,     0,   540,
!      541,   542,   543,   544,   545,     0,   546,     0,   547,   548,
!      549,   550,   551,   552,  -816,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -968,     0,     0,     0,     0,
-     -968,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,  -968,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  -968,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    37,     0,     0,     0,     0,     0,   554,
!        0,     0,     0,     0,   555,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -816,     0,     0,     0,     0,     0,     0,    38,
!        0,     0,     0,   556,     0,    39,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -968,     0,     0,
!        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -968,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -968,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   558,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   559,     0,     0,    44,    45,
!       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
!       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
!       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
!       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
!       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
!       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,     0,
!     -968,  -968,  -968,  -968,  -968,     0,  -968,  -968,  -968,  -968,
!     -968,  -968,  -968,  -968,  -968,  -968,  -968,  -968,  -968,  -968,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -968,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -988,   514,     0,  -816,  -816,  -816,  -816,  -816,     0,
-     -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,  -816,
-     -816,  -816,  -816,  -816,  -988,  -988,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -816,     0,     0,     0,     0,  -988,  -988,     0,  -988,     0,
-        0,     0,  -988,     0,     0,   517, -1472,   514,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1472,
!    -1472,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1472, -1472,     0, -1472,     0,     0,     0, -1472,     0,     0,
!      517,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   518,     0,  -988,     0,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
!        0,   532,   533,   534,   535,   536,   537,   538,   539,     0,
!      540,   541,   542,   543,   544,   545,     0,   546,     0,   547,
!      548,   549,   550,   551,   552,  -988,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   553,   518,     0,
!    -1472,     0,   519,   520,   521,   522,   523,   524,   525,   526,
!      527,   528,   529,   530,   531,     0,   532,   533,   534,   535,
!      536,   537,   538,   539,     0,   540,   541,   542,   543,   544,
!      545,     0,   546,     0,   547,   548,   549,   550,   551,   552,
!    -1472,     0,     0,     0, -1351,   514,     0,     0,     0,     0,
!        0,     0,   553,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1351, -1351,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1351, -1351,
!        0, -1351,     0,     0,     0, -1351,     0,     0,   517,     0,
!      554,     0,     0,     0,     0,   555,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -988,     0,     0,     0,     0,     0, -1515,
!      514,     0,     0,     0,   556,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1515, -1515,     0,   554,     0,     0,     0,     0,
!      555,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1515, -1515,     0, -1515,     0, -1472,     0,
!    -1515,     0,     0,   517,     0,     0,   518,     0, -1351,   556,
!      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
!      529,   530,   531,     0,   532,   533,   534,   535,   536,   537,
!      538,   539,     0,   540,   541,   542,   543,   544,   545,     0,
!      546,     0,   547,   548,   549,   550,   551,   552, -1351,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   518,   557, -1515,     0,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,   530,   531,     0,   532,
!      533,   534,   535,   536,   537,   538,   539,   558,   540,   541,
!      542,   543,   544,   545,     0,   546,     0,   547,   548,   549,
!      550,   551,   552, -1515,     0,     0,   559,     0,     0,     0,
!        0,     0,     0,     0,     0,   553,     0,   557,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   554,     0,     0,     0,     0,   555,     0,
-        0,     0,   558,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1351,     0,     0,     0,
-        0,   559,     0,     0,     0,     0,     0,   556,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   554,     0,
!        0,     0,     0,   555,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0, -1515,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   556,     0,     0,  -988,  -988,  -988,  -988,  -988,
-        0,  -988,  -988,  -988,  -988,  -988,  -988,  -988,  -988,  -988,
-     -988,  -988,  -988,  -988,  -988,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -988,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
-    -1472, -1472, -1472, -1472, -1472,     0, -1472, -1472, -1472, -1472,
-    -1472, -1472, -1472, -1472, -1472, -1472, -1472, -1472, -1472, -1472,
-      558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1472,     0,     0,   559,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   558,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   559,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -634,   514,     0, -1351, -1351,
!    -1351, -1351, -1351,     0, -1351, -1351, -1351, -1351, -1351, -1351,
!    -1351, -1351, -1351, -1351, -1351, -1351, -1351, -1351,  -634,  -634,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1351,     0,     0,     0,     0,  -634,
!     -634,     0,  -634,     0,     0,     0,  -634,     0,     0,   517,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -833,   514,     0, -1515, -1515, -1515, -1515, -1515,     0, -1515,
!    -1515, -1515, -1515, -1515, -1515, -1515, -1515, -1515, -1515, -1515,
!    -1515, -1515, -1515,  -833,  -833,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1515,
!        0,     0,     0,     0,  -833,  -833,     0,  -833,     0,     0,
!        0,  -833,     0,     0,   517,     0,     0,   518,     0,  -634,
!        0,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,   530,   531,     0,   532,   533,   534,   535,   536,
!      537,   538,   539,     0,   540,   541,   542,   543,   544,   545,
!        0,   546,     0,   547,   548,   549,   550,   551,   552,  -634,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   553,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   518,     0,  -833,     0,   519,   520,   521,   522,
-      523,   524,   525,   526,   527,   528,   529,   530,   531,     0,
-      532,   533,   534,   535,   536,   537,   538,   539,     0,   540,
-      541,   542,   543,   544,   545,     0,   546,     0,   547,   548,
-      549,   550,   551,   552,  -833,     0,     0,     0,  -989,   514,
-        0,     0,     0,     0,     0,     0,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  -989,  -989,     0,   554,     0,     0,     0,     0,   555,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,  -989,  -989,     0,  -989,     0,  -634,     0,  -989,
-        0,     0,   517, -1471,   514,     0,     0,     0,   556,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1471, -1471,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1471, -1471,     0,
!    -1471,     0,     0,     0, -1471,     0,     0,   517,     0,   554,
!        0,     0,     0,     0,   555,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -833,     0,     0,     0,     0,     0,     0,     0,
!      518,     0,  -989,   556,   519,   520,   521,   522,   523,   524,
!      525,   526,   527,   528,   529,   530,   531,     0,   532,   533,
!      534,   535,   536,   537,   538,   539,     0,   540,   541,   542,
!      543,   544,   545,     0,   546,     0,   547,   548,   549,   550,
!      551,   552,  -989,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   553,   518,   557, -1471,     0,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!      530,   531,     0,   532,   533,   534,   535,   536,   537,   538,
!      539,   558,   540,   541,   542,   543,   544,   545,     0,   546,
!        0,   547,   548,   549,   550,   551,   552, -1471,     0,     0,
!      559,     0,     0,     0,     0,     0,     0,     0,     0,   553,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   554,     0,     0,
!        0,     0,   555,     0,     0,     0,   558,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -989,     0,     0,     0,     0,   559,     0,     0,     0,     0,
-        0,   556,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   554,     0,     0,     0,     0,   555,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1471,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   556,     0,     0,  -634,
!     -634,  -634,  -634,  -634,     0,  -634,  -634,  -634,  -634,  -634,
!     -634,  -634,  -634,  -634,  -634,  -634,  -634,  -634,  -634,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,  -634,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
!        0,     0,   514,     0,  -833,  -833,  -833,  -833,  -833,     0,
!     -833,  -833,  -833,  -833,  -833,  -833,  -833,  -833,  -833,  -833,
!     -833,  -833,  -833,  -833,   558,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -833,     0,     0,   559,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,   517,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   558,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   559,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   518,     0,     0,     0,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
!        0,   532,   533,   534,   535,   536,   537,   538,   539,     0,
!      540,   541,   542,   543,   544,   545,     0,   546,     0,   547,
!      548,   549,   550,   551,   552,     0,     0,     0,     0, -1194,
!      514,     0,  -989,  -989,  -989,  -989,  -989,   553,  -989,  -989,
!     -989,  -989,  -989,  -989,  -989,  -989,  -989,  -989,  -989,  -989,
!     -989,  -989, -1194, -1194,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -989,     0,
!        0,     0,     0, -1194, -1194,     0, -1194,     0,     0,     0,
!    -1194,     0,     0,   517, -1305,   514,     0, -1471, -1471, -1471,
!    -1471, -1471,     0, -1471, -1471, -1471, -1471, -1471, -1471, -1471,
!    -1471, -1471, -1471, -1471, -1471, -1471, -1471, -1305, -1305,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1471,     0,     0,     0,     0, -1305, -1305,
!        0, -1305,     0,     0,     0, -1305,     0,     0,   517,     0,
!      554,     0,     0,     0,     0,   555,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   518,     0, -1194,   556,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,   530,   531,     0,   532,
!      533,   534,   535,   536,   537,   538,   539,     0,   540,   541,
!      542,   543,   544,   545,     0,   546,     0,   547,   548,   549,
!      550,   551,   552, -1194,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   553,   518,     0, -1305,     0,
!      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
!      529,   530,   531,     0,   532,   533,   534,   535,   536,   537,
!      538,   539,     0,   540,   541,   542,   543,   544,   545,     0,
!      546,  1587,   547,   548,   549,   550,   551,   552, -1305,     0,
!        0,     0, -1516,   514,     0,     0,     0,     0,     0,     0,
!      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1516, -1516,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   557,     0,     0,     0, -1516, -1516,     0, -1516,
!        0,     0,     0, -1516,     0,     0,   517,     0,   554,     0,
!        0,     0,     0,   555,     0,     0,     0,   558,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1194,     0,     0,     0,     0,   559, -1198,   514,     0,
!        0,     0,   556,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1198, -1198,     0,   554,     0,     0,     0,     0,   555,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1198, -1198,     0, -1198,     0, -1305,     0, -1198,     0,
!        0,   517,     0,     0,   518,     0, -1516,   556,   519,   520,
!      521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
!      531,     0,   532,   533,   534,   535,   536,   537,   538,   539,
!        0,   540,   541,   542,   543,   544,   545,     0,   546,     0,
!      547,   548,   549,   550,   551,   552, -1516,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   553,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   518,
-      557, -1198,     0,   519,   520,   521,   522,   523,   524,   525,
-      526,   527,   528,   529,   530,   531,     0,   532,   533,   534,
-      535,   536,   537,   538,   539,   558,   540,   541,   542,   543,
-      544,   545,     0,   546,     0,   547,   548,   549,   550,   551,
-      552, -1198,     0,     0,   559,     0,     0,     0,     0,     0,
-        0,     0,     0,   553,     0,   557,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   554,     0,     0,     0,     0,   555,     0,     0,     0,
!      558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1516,     0,     0,     0,     0,   559,
         0,     0,     0,     0,     0,   556,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   554,     0,     0,     0,
-        0,   555,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1198,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      556,     0,     0, -1194, -1194, -1194, -1194, -1194,     0, -1194,
-    -1194, -1194, -1194, -1194, -1194, -1194, -1194, -1194, -1194, -1194,
-    -1194, -1194, -1194,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1194,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   557,     0,     0,   514,     0, -1305, -1305,
-    -1305, -1305, -1305,     0, -1305, -1305, -1305, -1305, -1305, -1305,
-    -1305, -1305, -1305, -1305, -1305, -1305, -1305, -1305,   558,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0, -1305,     0,     0,   559,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   517,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   557,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   558,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   559,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   518,     0,     0,
!        0,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,   530,   531,     0,   532,   533,   534,   535,   536,
!      537,   538,   539,     0,   540,   541,   542,   543,   544,   545,
!        0,   546,     0,   547,   548,   549,   550,   551,   552, -1289,
!        0,     0,     0, -1226,   514,     0, -1516, -1516, -1516, -1516,
!    -1516,   553, -1516, -1516, -1516, -1516, -1516, -1516, -1516, -1516,
!    -1516, -1516, -1516, -1516, -1516, -1516, -1226, -1226,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1516,     0,     0,     0,     0, -1226, -1226,     0,
!    -1226,     0,     0,     0, -1226,     0,     0,   517,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -830,   514,
!        0, -1198, -1198, -1198, -1198, -1198,     0, -1198, -1198, -1198,
!    -1198, -1198, -1198, -1198, -1198, -1198, -1198, -1198, -1198, -1198,
!    -1198,  -830,  -830,     0,   554,     0,     0,     0,     0,   555,
!        0,     0,     0,     0,     0,     0,     0, -1198,     0,     0,
!        0,     0,  -830,  -830,     0,  -830,     0,     0,     0,  -830,
!        0,     0,   517,     0,     0,   518,     0, -1226,   556,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!      530,   531,     0,   532,   533,   534,   535,   536,   537,   538,
!      539,     0,   540,   541,   542,   543,   544,   545,     0,   546,
!        0,   547,   548,   549,   550,   551,   552, -1226,     0,     0,
!        0,     0,     0,     0,   514,     0,     0,     0,     0,   553,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      518,     0,  -830,     0,   519,   520,   521,   522,   523,   524,
!      525,   526,   527,   528,   529,   530,   531,   517,   532,   533,
!      534,   535,   536,   537,   538,   539,     0,   540,   541,   542,
!      543,   544,   545,     0,   546,     0,   547,   548,   549,   550,
!      551,   552,  -830,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   553,     0,   557,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   554,     0,     0,     0,     0,   555,     0,     0,
!        0,   558,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1226,     0,     0,     0,     0,
!      559,     0,     0,     0,     0,   518,   556,     0,     0,   519,
       520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!      530,   531,     0,   532,   533,   534,   535,   536,   537,   538,
!      539,     0,   540,   541,   542,   543,   544,   545,     0,   546,
!        0,   547,   548,   549,   550,   551,   552,  1911,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   554,     0,   553,
!        0,     0,   555,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -830,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   556,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0, -1097,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   557,    28,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   554,     0,  1015,     0,     0,   555, -1097,   558,
!        0,     0,     0,     0,     0,     0,   793,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   559,     0,
!        0,     0,     0,     0,     0,     0,   556,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    30,     0,     0,     0,     0,   557,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   558,     0, -1097,     0,     0,     0,
!    -1097, -1097, -1097, -1097, -1097, -1097, -1097, -1097, -1097, -1097,
!    -1097, -1097, -1097,   559, -1097, -1097, -1097, -1097, -1097, -1097,
!    -1097, -1097,     0, -1097, -1097, -1097, -1097, -1097, -1097,     0,
!    -1097,     0, -1097, -1097, -1097, -1097, -1097, -1097,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!    -1097,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,     0,     0, -1226, -1226, -1226,
!    -1226, -1226,     0, -1226, -1226, -1226, -1226, -1226, -1226, -1226,
!    -1226, -1226, -1226, -1226, -1226, -1226, -1226,     0,     0,   558,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1226,     0,     0,     0,     0,   559,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1097,     0,     0,     0,     0, -1097,     0,
-        0,     0,  -830,  -830,  -830,  -830,  -830,     0,  -830,  -830,
-     -830,  -830,  -830,  -830,  -830,  -830,  -830,  -830,  -830,  -830,
-     -830,  -830,     0,     0,     0,     0,     0, -1097,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,  -830,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,    28,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   820,   499,   845,     0,     0,     0,
-        0,     0,     0,   846,     0,     0,     0,     0, -1791,     0,
-        0,     0,     0,     0,     0,   501,     0,    38,     0,     0,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,   847,   848,   849,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0, -1097,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1097,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1097,
-        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
-       33,    34,     0,     0,    42,     0,     0,    43,   850,     0,
-        0,     0,     0,     0, -1791,     0,     0,     0,     0,     0,
-        0, -1623,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  1016,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1017,     0,     0,
!      701,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1097,     0,   796,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   502,
!        0,     0,     0,     0,     0,     0,     0,     0,   821,   822,
!        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
!       37,     0,     0,   499,   845,     0,     0,     0,     0,     0,
!        0,   846,     0,   851,     0,     0,     0,     0,     0,     0,
!        0,  2383,     0,   501,     0,     0,   514,     0,     0,     0,
!        0,     0,     0,   503,     0,     0,    38,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   504,     0,     0,     0,
!        0,     0,   847,   848,   849,     0,     0,     0,    40,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,   517,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
-        0,     0,     0,     0,     0,     0,   850,     0,     0,     0,
-        0,     0,     0,    42,     0,     0,    43,   518,     0,     0,
-       35,   519,   520,   521,   522,   523,   524,   525,   526,   527,
-      528,   529,   530,   531,     0,   532,   533,   534,   535,   536,
-      537,   538,   539,     0,   540,   541,   542,   543,   544,   545,
-        0,   546,     0,   547,   548,   549,   550,   551,   552,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   553,     0,     0,     0,    44,    45,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   852,   796,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   502,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       28,     0,     0,     0,   554,     0,     0,     0,    37,   555,
!        0,   499,   845,     0,     0,     0,     0, -1623,     0,   846,
!        0,   851,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   501,     0,     0,   514,     0,     0,     0,   556,     0,
!        0,   503,     0,     0,    38,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   504,     0,     0,     0,     0,     0,
!      847,   848,   849,     0,     0,     0,    40,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,     0,   517,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   505,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
-        0,     0,     0,     0,     0,  2014,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
-        0,     0,     0,     0,   850,     0,     0,     0,     0,     0,
-        0,    42,     0,     0,    43,   518,   557,     0,    35,   519,
-      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-      530,   531,     0,   532,   533,   534,   535,   536,   537,   538,
-      539,   558,   540,   541,   542,   543,   544,   545,     0,   546,
-        0,   547,   548,   549,   550,   551,   552,     0,     0,     0,
-      559,     0,     0,     0,     0,     0,     0,     0,     0,   553,
-        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
-       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-      111,   112,   113,   114,   852,   796,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   502,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
-        0,     0,   554,     0,     0,     0,    37,   555,     0,   499,
-      845,     0,     0,     0,     0,  2344,     0,   846,     0,   851,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
-        0,     0,   514,     0,     0,     0,   556,     0,     0,   503,
-        0,     0,    38,     0,     0,     0,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   504,     0,     0,     0,     0,     0,   847,   848,
-      849,     0,     0,     0,    40,     0,     0,    30,     0,     0,
-        0,     0,     0,     0,     0,   517,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,  2233,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,   850,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,   518,   557,     0,    35,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
!        0,   532,   533,   534,   535,   536,   537,   538,   539,   558,
!      540,   541,   542,   543,   544,   545,     0,   546,     0,   547,
!      548,   549,   550,   551,   552,     0,     0,     0,   559,     0,
!        0,     0,     0,     0,     0,     0,     0,   553,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   852,   796,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   502,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
!      554,     0,     0,     0,    37,   555,     0,   499,   845,     0,
!        0,     0,     0,  2376,     0,   846,     0,   851,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   501,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,   503,     0,     0,
!       38,     0,     0,     0,     0,     0,    39,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      504,     0,     0,     0,     0,     0,   847,   848,   849,     0,
!        0,     0,    40,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!      850,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!       43,     0,   557,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   558,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   559,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      852,   796,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   502,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
!        0,     0,    37,     0,     0,   499,   845,     0,     0,     0,
!        0,  2378,     0,   846,     0,   851,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   503,     0,     0,    38,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   504,     0,
!        0,     0,     0,     0,   847,   848,   849,     0,     0,     0,
!       40,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   505,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,   850,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   852,   796,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   502,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
-       37,     0,     0,   499,   845,     0,     0,     0,     0,  2380,
-        0,   846,     0,   851,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   501,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   503,     0,     0,    38,     0,     0,     0,
-        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   504,     0,     0,     0,
-        0,     0,   847,   848,   849,     0,     0,     0,    40,     0,
-        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
!        0,     0,     0,     0,     0,     0,   850,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   852,   796,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   502,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       28,     0,     0,     0,     0,     0,     0,     0,    37,     0,
!        0,   499,   845,     0,     0,     0,     0,  2558,     0,   846,
!        0,   851,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   501,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   503,     0,     0,    38,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   504,     0,     0,     0,     0,     0,
!      847,   848,   849,     0,     0,     0,    40,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   505,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
-        0,     0,     0,     0,   850,     0,     0,     0,     0,     0,
-        0,    42,     0,     0,    43,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
-       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-      111,   112,   113,   114,   852,   796,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   502,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,  2567,     0,     0,     0,   851,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   503,
-        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
-        0,     0,     0,     0,     0,     0,     0,  2111,     0,     0,
-        0,     0,   504,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   852,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,  2678,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
-       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-        0,     0,  2111,     0,     0,     0,     0,     0,     0,   792,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
-        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
-        0,     0,     0,     0,     0,     0,     0,   801,  2346,     0,
-        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
-        0,     0,     0,     0,     0,     0,     0,  2111,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
-        0,     0,   801,  2387,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
!        0,     0,     0,     0,     0,     0,     0,   801,  2413,     0,
!        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
-        0,     0,   801,  1212,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
-        0,     0,     0,     0,     0,     0,     0,   801,  1763,     0,
-        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
-        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
-        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
-        0,     0,   801,  2359,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
-       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
-        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
-        0,     0,     0,     0,     0,     0,     0,   801,  2361,     0,
-        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
-        0,     0,   801,  2404,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
!        0,     0,     0,     0,     0,     0,     0,   801,  2546,     0,
!        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
!        0,     0,   801,  2548,     0,     0,     0,     0,     0,     0,
!      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!       28,     0,     0,    39,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   798,   795,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   799,   800,
-        0,     0,     0,     0,     0,     0,     0,   801,  2554,     0,
-        0,     0,     0,     0,     0,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   797,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,    28,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    40,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
-        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
-        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   798,   795,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   799,   800,     0,     0,     0,     0,     0,
!        0,     0,   801,  2580,     0,     0,     0,     0,     0,     0,
!      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
-        0,    28,   907,    39,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713, -1713,     0,     0,     0,     0,     0,  2285,
-      792,     0,     0,     0,     0,     0,  2286,     0,     0,    40,
-      987,     0,   793,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
-        0,     0,     0,     0,     0,   988,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,  2287,     0,    35,
-        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
-       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-      108,   109,   110,   111,   112,   113,   114,   798,     0,   795,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1004,     0,   799,   800,
!        0,     0,     0,     0,     0,     0,     0,   801,  2673,     0,
!        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1713,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      797,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1713,     0,     0,    38,     0,     0,     0,    28,   907,    39,
!        0,     0,     0,     0,     0,     0,     0,     0, -1713, -1713,
!        0,     0,     0, -1713,     0,     0,   792,     0,     0,     0,
!        0,     0,     0,     0,     0,    40,   987,     0,   793,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
-        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,  1005,     0,
-        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
-        0,   988,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
-        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
-       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-      112,   113,   114,   798,     0,   795,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   989,  1572,  1573,
!     1574,  1575,  1576,  1577,   799,   800,     0,     0,     0,     0,
!        0,     0,     0,  2288,     0,     0,     0,     0,     0,     0,
!        0,     0,   796,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1713,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    37,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   797,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1713,     0,     0,    38,
!        0,     0,     0,    28,   907,    39,     0,     0,     0,     0,
!        0,     0,     0,     0, -1713, -1713,     0,     0,     0, -1713,
!        0,     0,   792,     0,     0,     0,     0,     0,     0,     0,
!        0,    40,   987,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,   988,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    35,     0,     0,     0,     0,     0,     0,    44,    45,
-       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   109,   110,   111,   112,   113,   114,   798,
-        0,   795,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   989,  1572,  1573,  1574,  1575,  1576,  1577,
!      799,   800,     0,     0,     0,     0,     0,     0,     0,   990,
!        0,     0,     0,     0,     0,     0,     0,     0,   796,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1713,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   797,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,    38,     0,     0,    28,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0, -1713,
-    -1713,     0,     0,     0,     0, -1713,     0,   792,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,   793,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1713,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
-        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,   988,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   798,   795,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   989,
-     1572,  1573,  1574,  1575,  1576,  1577,   799,   800,     0,     0,
-        0,     0,     0,     0,     0,  2288,     0,     0,     0,     0,
-        0,     0,     0,   796,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   797,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
!       38,     0,     0,    28,     0,     0,    39,     0,     0,     0,
!        0,     0,     0,     0, -1713, -1713,     0,     0,     0,     0,
!    -1713,     0,   792,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1713,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
-       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,   988,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      798,   795,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  1560,  1572,  1573,  1574,  1575,  1576,
-     1577,   799,   800,     0,     0,     0,     0,     0,     0,     0,
-     1989,     0,     0,     0,     0,     0,     0,     0,   796,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1713,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   797,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,    38,     0,     0,    28,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0, -1713,
-    -1713,     0,     0,     0,     0, -1713,     0,   792,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,   793,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1713,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
-        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
-        0,     0,   988,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
-        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,   798,   795,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  1560,
-     1572,  1573,  1574,  1575,  1576,  1577,   799,   800,     0,     0,
-        0,     0,     0,     0,     0,  2498,     0,     0,     0,     0,
-        0,     0,     0,   796,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   797,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
!       38,     0,     0,    28,     0,     0,    39,     0,     0,     0,
!        0,     0,     0,     0, -1713, -1713,     0,     0,     0,     0,
!    -1713,     0,   792,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0, -1713,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
-        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
        43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,   988,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    35,     0,     0,     0,     0,     0,     0,     0,    44,
-       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-      798,   795,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  1560,  1572,  1573,  1574,  1575,  1576,
-     1577,   799,   800,     0,     0,     0,     0,     0,     0,     0,
-     2500,     0,     0,     0,     0,     0,     0,     0,   796,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1713,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   797,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,    38,     0,     0,    28,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0, -1713,
-    -1713,     0,     0,     0,     0, -1713,     0,   792,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,   793,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1713,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,   988,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
-        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,   798,   795,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  1560,
!     1572,  1573,  1574,  1575,  1576,  1577,   799,   800,     0,     0,
!        0,     0,     0,     0,     0,   801,     0,     0,     0,     0,
!        0,     0,     0,   796,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   797,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
-       38,     0,     0,    28,     0,     0,    39,     0,     0,     0,
-        0,     0,     0,     0, -1713, -1713,     0,     0,     0,     0,
-    -1713,     0,   792,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    40,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1713,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
-       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,   988,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      798,   795,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  1560,  1572,  1573,  1574,  1575,  1576,
-     1577,   799,   800,     0,     0,     0,     0,     0,     0,     0,
-     2633,     0,     0,     0,     0,     0,     0,     0,   796,     0,
-        0,     0,     0,     0,     0,     0,     0,     0, -1713,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   797,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,    38,     0,     0,     0,     0,
-        0,    39,     0,     0,     0,    28,   907,     0,     0,     0,
-        0,     0,     0,     0,     0, -1713, -1713, -1713,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,    40,     0,     0,
-        0,     0,     0,     0,   987,     0,   793,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1713,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,   988,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,   798,     0,     0,     0,     0,
-        0,     0,     0,   795,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,  1560,
-     1572,  1573,  1574,  1575,  1576,  1577,   799,   800,     0,     0,
-     1004,     0,     0,     0,     0,  2637,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1713,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   797,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1713,     0,     0,    38,     0,     0,
!        0,    28,   907,    39,     0,     0,     0,     0,     0,     0,
!        0,     0, -1713, -1713,     0,     0,     0, -1713,     0,     0,
!      792,     0,     0,     0,     0,     0,     0,     0,     0,    40,
!      987,     0,   793,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0, -1713,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,  1005,     0,     0,    31,    32,    33,    34,     0,
-        0,     0,     0,     0,     0,   988,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
-        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
-       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-      108,   109,   110,   111,   112,   113,   114,   798,     0,   795,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   989,     0,     0,     0,     0,     0,     0,   799,   800,
!        0,     0,     0,     0,     0,     0,     0,   990,     0,     0,
!        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1713,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      797,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    -1713,     0,     0,    38,     0,     0,     0,    28,   907,    39,
-        0,     0,     0,     0,     0,     0,     0,     0, -1713, -1713,
-        0,     0,     0, -1713,     0,     0,   792,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,   987,     0,   793,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
-        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,   988,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   798,     0,   795,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   989,     0,     0,
-        0,     0,     0,     0,   799,   800,     0,     0,     0,     0,
-        0,     0,     0,   990,     0,     0,     0,     0,     0,     0,
-        0,     0,   796,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    37,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   797,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1713,     0,     0,    38,
-        0,     0,    28,     0,     0,    39,     0,     0,     0,     0,
-        0,     0,     0, -1713, -1713,     0,     0,     0,     0, -1713,
-        0,   792,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    40,     0,   793,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
-        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
-        0,     0,     0,     0,     0,     0,   988,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       35,     0,     0,     0,     0,     0,     0,     0,    44,    45,
-       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   109,   110,   111,   112,   113,   114,   798,
-      795,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,  1560,     0,     0,     0,     0,     0,     0,
-      799,   800,     0,     0,     0,     0,     0,     0,     0,  1561,
-        0,     0,     0,     0,     0,     0,     0,   796,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    37,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   797,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0, -1713,     0,     0,    38,     0,     0,    28,     0,     0,
-       39,     0,     0,     0,     0,     0,     0,     0, -1713, -1713,
-        0,     0,     0,     0, -1713,     0,   792,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    40,     0,   793,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1713,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    42,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,   988,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   798,   795,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,  1560,     0,
-        0,     0,     0,     0,     0,   799,   800,     0,     0,     0,
-        0,     0,     0,     0,  1569,     0,     0,     0,     0,     0,
-        0,     0,   796,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,     0,    28,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   499,   500,     0,
-        0,     0,     0,    37,     0,  1176,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   797,   501,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1713,     0,     0,    38,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1713,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0, -1713,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    35,     0,    42,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
-       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   109,   110,   111,   112,   113,   114,   798,
-        0,   502,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    37,  1560,     0,     0,     0,     0,     0,     0,
-      799,   800,     0,     0,     0,  2433,     0,     0,     0,   801,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   503,     0,     0,    38,     0,
-        0,    28,     0,     0,    39,     0,     0,     0,     0,     0,
-        0,     0,     0,  2428,     0,     0,     0,     0,   504,     0,
-      792,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,   793,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   505,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,  2434,   795,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  1177,
!     1178,     0,     0,     0,     0,     0,     0,     0,  1179,     0,
!        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      797,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,    28,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   792,     0,     0,     0,     0,
!        0,     0,     0,  2429,     0,    40,     0,   793,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
-        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!      794,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   798,   795,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   799,   800,     0,     0,     0,     0,
!        0,     0,     0,   801,     0,     0,     0,     0,     0,     0,
!        0,   796,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   797,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,    28,     0,     0,    39,     0,     0,     0,     0,     0,
!        0,     0,     0,  2111,     0,     0,     0,     0,     0,     0,
!      792,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       40,     0,   793,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   798,   795,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   799,
!      800,     0,     0,     0,     0,     0,     0,     0,   801,     0,
!        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      797,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    38,     0,     0,    28,     0,     0,    39,
-        0,     0,     0,     0,     0,     0,     0,     0,  2707,     0,
-        0,     0,     0,     0,     0,   792,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,   793,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
-       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-      112,   113,   114,   798,   795,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   799,   800,     0,     0,     0,     0,
!        0,     0,     0,   801,     0,     0,     0,     0,     0,     0,
!        0,   796,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   797,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,    28,     0,     0,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      792,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,   793,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
-        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
-       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-      107,   108,   109,   110,   111,   112,   113,   114,   798,   795,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   799,
!      800,     0,     0,     0,     0,     0,     0,     0,   801,     0,
!        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      797,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    38,     0,     0,    28,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   792,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,   793,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
-       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-      112,   113,   114,   798,   795,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   799,   800,     0,     0,     0,     0,
-        0,     0,     0,   801,    28,     0,     0,     0,     0,     0,
-        0,   796,     0,     0,     0,     0,    29,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   797,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
-        0,     0,     0,    30,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,    36,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   798,    28,
        37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    29,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    38,     0,   801,     0,
-        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
-        0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
-        0,     0,     0,   115,     0,    37,   793,   385,   386,   387,
-      388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-      398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-      408,   409,   410,   411,   412,   413,   414,     0,     0,     0,
-        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
-        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,  1961,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
-        0,    43,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-      114,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   820,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   119,     0,
         0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  1962,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   792,     0,    42,     0,     0,    43,     0,     0,
-        0,     0,     0,     0,   793,   385,   386,   387,   388,   389,
-      390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
-      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
-      410,   411,   412,   413,   414,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    30,     0,     0,     0,    44,    45,    46,    47,
-       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-      108,   109,   110,   111,   112,   113,   114,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,   821,   822,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
--- 3471,7662 ----
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
  static const yytype_int16 yytable[] =
  {
!      158,   159,   303,  1015,   931,   120,   120,  1159,   276,   506,
!      973,  1813,  1814,  1815,   889,   712,  1679,   786,   781,  1784,
!      860,  1499,  1107,  1129,  1130,   452,  1538,   310,  1641,  1712,
!     1515,   896,   186,   187,   188,   913,  1627,  1765,  1613,   889,
!     1978,   881,  1193,   953,  1380,  1963,   828,   195,  1620,  1473,
!      906,   123,  1456,   980,  1053,  1472,  1688,  1816,  1817,  1818,
!     1715,   981,   324,   310,   982,   240,  1890,  1892,  2325,  2066,
!     2070,   351,  1375,   986,   784,   125,  1422,   764,   765,  2151,
!    -1809,  1210,   494,  1039,   987,  1572,   903,  1416,  1416,  1416,
!     1572,   766,   767,   768,  1487,  1542,  1730,  1416,   769,  1745,
!     1642,  1487,   883,  1789,  1551,   791, -1862,  1643,   275,   497,
!     1934,   861,  1746,  1644,  1040, -1774,   856, -1774,   805, -1809,
!      365,  1441,   883,  1416, -1774,  2580, -1862,   923,   177,   271,
!      806,  1396,  -815,  1172,  1693, -1862, -1774,  1521,   120,  1642,
!     2493,   292,   757,  1173,  1766,   370,  1643,  1766,  2984,  1645,
!     1635,  1241,  1644,   693,   785,  1959,  2076,    20,   946,  1242,
!     1801,     9,    10,   887,  1629,   947,  2149,  1543,  1167,  1787,
!     1656,  1154,  -331,  1431,  -331,  -331,  -331,  1432,   228,   151,
!      229,   230,   231,   172,  1514,  2621,   950,  2622,  1645,   763,
!     2519,  1147,  2634,   746,  2297,  2427, -1852, -1048, -1809,   940,
!      157,   724,   683,   447,  2679,   849,   693, -1809,  1088,   365,
!     2975,   724,   489, -1862,   856, -1421,   353,  2692,   700, -1862,
!     1148,  1954,  1955,   803,   914,   315,   655,  2014,  1471,  1635,
!     2014,  2976,   732,  1054,  1703,  1025,   729,  1754,   371,  1445,
!      999, -1852, -1862,  2028,  2109,   277,  2972,  -336,   127,  2275,
!     -688,  -688,  -688,  2612,   713,   717,   277,  1195, -1862,  1197,
!     1704,   372, -1862,  2635,  2274,  1888, -1025, -1780, -1809,    -3,
!      785,   741,  1685,   920,  -321,  -847, -1778,  2138,  2139,  1228,
!      709,  1949, -1862,   788,  1445,  1888,   306,  2214,  1433,   722,
!     1946, -1862,  1429,  2085,  -847,   728,  1097,   709,  1391,   700,
!     1392,   733,  1178,   322,   738,   740,  1138,  1888, -1774,  2015,
!      128,   447,  2019, -1782,    18,  2171,  1169,   348,   348, -1809,
!     2734,   842,  1806,  1438,   753,   448,  1139,   889,  1708,  1393,
!      842,  -688,  2016,   778,  1829,  1767,   783,  2450,  1767,   842,
!      489,   493,  1807, -1824,  1444,  1439,   278,  1577,  -562,   157,
!      842,   157,   196,  1388, -1809,  1888,   497,   278,  1209, -1809,
!     2111,  1172,  -562,  -562,  -562,  1210,   373,   374,  2450, -1809,
!     -895,  1173,     1,   889,  1642,  1578,   152,   499, -1862,   322,
!      856,  1643,   785,  1999,  1521,   157,  1926,  1644,  2112,  2450,
!     1536,  2215,   356,   896,  1467,  1781,     1,   792,   349,   349,
!     2233,  2830,   196,   842,  1795,  2017,   497,  2274,  1732,  2246,
!     1500, -1862,  2248,  2284,   500,  1733, -1824,   366,   710,  1686,
!    -1774, -1862,   157,  1645,  -688,  2161,  1430,  2735,   793,  1768,
!      315, -1028,  1768,  1405, -1854,  1233,   505,  1179,   354,  -336,
!     1220,   497,  1514,  1654,  1769,  1888,  2831,  1169,   834,   709,
!      453,   709,  1397, -1774, -1774,   315,   709,  1149,   686,   687,
!       13,   157,   789,   152,  1388,   701,  1537,  1152,   501,   279,
!     -220,  2276,  1378,  1755, -1774,  1887,  -688,   497,  1026,   861,
!      279,   127,  2581,  2985, -1809,  1705,  1210,  2302,  1085,  1000,
!      307,   153, -1809, -1786,  1090,   731,  1783, -1774,   499,  1483,
!     1709,   747,  -321,   857,   683,  1796,   366,  1950,  1205,  1174,
!    -1421,  2164,  2973,   915,   709,  2977,  2428,  1928,  -895,  2879,
!     1132,  2432,  2520, -1809,  -688,  -688,  -688,  1463,  1089,    11,
!     1091,  2331,   748,  1805,  1400, -1782,   503,  1115,   -70,   157,
!      355,  1238, -1774,   128,   856,  1788,  2297,   709,   782,  1211,
!     2636,   454,  1666,   709,  1484,  1120,  1951,  1668,   884,   497,
!     2077,  1791,  1106, -1809,   455,  1379,  2265,    12,  1792,  2978,
!     -168,   456,   154,  2277,  1155,  2030,  2986,   804,   153,  1150,
!      499,   887,  2832,  1434,  2285,  2424,  1836,  1837,  1562,  1133,
!     1134,  1626,  1135,  1779,  1137,  1838,   940,  1421,   832,   838,
!     1633,   846,   846,   709,   853,  -688,  2773,   869,   838,  1594,
!     1945,   707,  1163,   893,  1770,  1987,   901,   838,    21,   691,
!     1171,   948,  -221,   293,   932,  2039,   939,  1961,   838, -1852,
!      955,  2014,   962,   360,  1952,   969,   842, -1782,  1381,  1382,
!      976,   709,   842,  2165,  2684,  1771, -1852,  1535,  1771,  2063,
!     1506, -1809,   794,   294,   295,  2065,  2069,   758,  2012,   154,
!     2340,   500,  2193,  2194,  2195,  2196,   709,  -471,  1156,  2109,
!     1211,  1789,  2561,   709,  -331,  -219,  1671,  1674,  1674,  1674,
!      232,   838, -1809,  2141,  1800,  1178,  2007,   272,  2734,  1398,
!     1804, -1852,  2006,   709,  1212,  1213,   157,  2086,  -688,  1440,
!     2582,  2286,  2009,  2373,  2374,  1590,   842,  2361,  2316,  2317,
!     2318,   500,   169,  1710,   157,   501,   709,   750,  1485,  1503,
!     -550, -1862,  1750,  1573,  2036,  1488,  1178,   988,  2034,  1747,
!     1748,  2041,  1969,  1086,  1214,  1215,  1442,  1174,   502,    24,
!      129, -1862,   247,  1216,   248,  1514,   500,  1144,  1646,  2226,
!     -688,  1971,   842,   842,   130,  2502,   688, -1780, -1809,   131,
!      132,  2833,  2673,  -565,  1831,   501,   180,   457,  1713,   770,
!      133,   835,   836,   458,  2303,  1847,  2234, -1774, -1774,  1984,
!     1942, -1048,   500,   503,   126,    25, -1774,  1646,  -815,  -815,
!     -815,  -815,  -815,   655,  2255,  2735,   459,  2121,  1956,  1601,
!      501,  2227,  2613,   328,   222,  2343,  1636,  1637,  1638,  1639,
!     1640,  2325,  1581,  1514,  2280,  1212,  1213,   306,  1689,  2304,
!     1694,  2764,   460,  1655,   196,  1785,  2606,  2608,   779,   318,
!     1732,  1651,  1793,   503,  1797,   222,   501,  1733,  1152,    21,
!     2281,   842,  2454,  1391, -1782,  2823,   842,  2455,  1087,  2558,
!      461,  2113, -1862,   452,   204,   205,   164,  1678,   497,   502,
!      861,   462,   206,  2279,   500, -1862,   980,  1210,   503,  2122,
!     2593,  2765,   889,  2824,   981,   181,   751,   982,   207,   499,
!      463,  2150,   157,  2766,  1758,  1636,  1637,  1638,  1639,  1640,
!     2594, -1862,  1388, -1028, -1028, -1028, -1028, -1028,  1873,  -550,
!      496,  1893,  2305, -1815,   503,   464, -1809,  1522,  1523,  1524,
!     1525,  1526,  1527,  1528,   838, -1815, -1801,   465,   501,  2023,
!      838,   283,   652,   277,  2933,   249,   466, -1095,  1990,   467,
!      497,   846,  2436,  2023,  2503,  1408,   653, -1801,  2401,  2437,
!     1419,   502,  1798,  1933,  1935,  2946,   869,  2525,  1657,   654,
!     1910,   499,  2228,   869,   780,  2306,  1687,  1424,  2051,  2767,
!     1145,  1695,  2051,  1697,  1698,  1826,  1699,  1658,   896,   896,
!      120,  2548,  2549,   129,  1100,   893,  1711,   370,   655,  1464,
!     1106,  1468,  1720,  2078,  2079,  2080,   503,   130,  2349,  1960,
!     2123,  1735,   131,   132,  1976,   329,  1501,   182,   183,  2569,
!     1727,  1728,  1732,   133,  1101,  1518,  1731,  1520,  1185,  1733,
!    -1815,  1752,  1093,  1944,   932,  1597,  1947,  1757,  1214,  1215,
!      429,   307,  1646,   939,   278,  2191,  2114,  1216,  2314,  2278,
!      838,   838,  2760,    26,  1914,  1777,  1911,   430,    27,   709,
!      284,   731,  2589,  2433,  2750,  2434,  2751,   250,   969,  1732,
!      656,  1211,  -464,   978,  2458,  2459,  1733,  1037,   709,  2229,
!    -1786,   431,   731,   284,  2081,  1734, -1782,  1760,  1761,   979,
!      371,   143,  2115,  1038,  2000,  1641,  1388,  2029, -1780,  -162,
!     2101,  1186,  1476,  2039,  2181,   157,  2230, -1774,   157, -1774,
!     1943,  2348,   285,   372,  2715,  2350, -1774,  2558,  2402,   970,
!     1094,   251,  1231,  1102,   145,   657,  1232,   971, -1774,  -162,
!      986,  2170,  1456,  1456,   709,   285,   146,  2454,  2885,   838,
!     2538, -1383,  2455,  2456,   838,  2889,   658,  2893,  1927, -1801,
!     1566,  2723,  1477,  1025,  2307,   314,  1103, -1862,  2110,  1214,
!     1215,   148,  2686, -1862,  1478,  2733,  1187,   279,  1216,   714,
!    -1801,   715,  2741,  2742,  2743,  2903,  1980,  2082,  2745,  2257,
!      986,  2904,   157,   500,   805,  1404,   432,   889, -1782,   149,
!      254,  2857,  2125,   659,  2258,  2859,   806,   433,   660,  1491,
!     1567,   842,  1568,   255,  2768,  2126,  2920,   986,  1504,  2041,
!      842,  1426,  2127,  1889,  2687,  2108,  1212,  1213,   373,   374,
!     2648,  1903,  1927,  1898,  1626,   150,   661,  2649,  -162,  2083,
!     1735,  2067,  2067,  2074,     4,  1927,  2259,   501,  1474,   200,
!     1479,  1172,  1565,  1925,   157,   201,   662,   160,   209,  1576,
!      124,  1173,   842,   842,   163,   500, -1815,   202,   203,  1988,
!      502,  -162,   785,  1630,  1631, -1786,  1225,   663,   795,   796,
!      166,  2819,  2822,   797,  2829,  1630,  1631,  1226,  2457,  2387,
!     2388,  2064, -1796,   167,  1564,  2816,   434,   435,  2387,  2388,
!      173,  2584, -1815,  2384,  2615,  2616,  1927,  2389,   842,   174,
!      734,   436,   735,   437,   175,   503,  2604,  1927,   185,   501,
!     1799,   714,  2752,   715,  1178,   -78,  1799,  2843,    14,    15,
!      -78,   -78,  1736,  2921,  1974,   192,  2921,  2921,  2644,   -78,
!      -78,   -78,   502,   193,  1447,  2026,  1827,  1448,  1449,  2654,
!     2186,  1830,  1203,  2657,  2659,  2031,   210,   211,   196,  2458,
!     2459,   212,  2218,   213,  2219,  2861,   235,   214,   215,   253,
!      216,   217,  2345,   842,  2346,   218,  1819,  1820,  1821,  1822,
!     2269,  2621,   798,  2622,  1118,   238,  2192,   503,  1122,  1123,
!     1124,   256,  -321,  2655,  2024,   842,   842,  2658,  2660,   815,
!     2791,  2867,  2793,  2868,   438,  2796,  1026,  2155,   269,   889,
!     2883,  1201,   842,  1202,  1203,   263,  1903,   265,  1819,  1820,
!     1821,  1822, -1774,   282,  1737,  1450,   266,  2163,   986,   198,
!      199,  2052,  2402,  1082,  1641,  1083,  1084,   986,  2057,  2240,
!     2241,  2242,   961,  1451,  1672,  1675,  1676,  2288,   307,  1627,
!      267,   799,  1183,  1192,  1738,   268,  2919,   259,   260,   302,
!     2130,  1980,  1245,  1246,   986,  1247,  1248,  1630,  1631,   283,
!      664,   312,  2137,  1758,  1700,  1701, -1774,   429,   313,  1022,
!      319,  1028,   320,   896,   896,   896,   896,   896,  2288,   838,
!     2925,  2926,  2401,   323,   430,   452,   325,   853,  1891, -1774,
!     2097,  2570,  1760,  1761,  1456,  1456,  1456,   326,   219,  1902,
!     1909,  2104,   362,   986,   842,  2236,  2237,   363,   431,  1522,
!     1523,  1524,  1525,  1526,  1527,  1528,   369,  1821,  1822,  2296,
!      439,  2522,  2523,   382,  1929,  2395,  2615,  2616,  1931,  1932,
!      838,  1891,   346,   347, -1774,  2337,  1980,   241,  1938,  2446,
!     1214,  1215,  2787,   426,  2344,  1980,  1834,  1835,  1980,  1216,
!     1452,  1453,   427,   986,  1060,  1061,  2183,   449,  2643,   450,
!     1454,  1455,  2894,  2895,  2188,  2189,  2190,   451,   800,   491,
!      893,   893,   204,   205,   242,   495,  1891,   492,   508,  2117,
!      206,   986,  1940,  1941,   870,   511,   986,   685,   699,   704,
!      870,   705,   706,  1972,   243,   244,   207,   718,  1975,   719,
!     2135,  2136,  2366,  1979,   720,  2763,   723,   724,   729,   157,
!      742,   754,  1720,   432,  2517,   749,   755,  1174,   776,   777,
!      827,  2147,   830,  1980,   433,   855,   986,   897,   908,   910,
!      856,   801,   963,   986,   964,  1998,  2405,   974,  1641,   992,
!      983,   932,  2402,  2758,  2758,   996,   993,  1002,  1006,  1003,
!     1055,  1062,  1058,  2288,  2288,  1033,  1071,  1080,  2025,  1065,
!     1068,   688,   802,   838,  1891,  1074,   693,  1980,  1077,  2385,
!     1096,   709,  2074,  2264,  1105,  1104,  1106,  1108,  2355,  1111,
!     2040,  2173,  2721,  1112,  1902,   655,   869,  2049,  1116,  1119,
!     1126,  2396,  2180,  1127,  2722,  1243,  1125,  1128,  1131,  1136,
!     2359,  1141,  1142,  1251,  1164,  1161,  1181,  1182,  1373,  1183,
!     1196,  1187,  1518,   434,   435,  1198,  2266,   764,  2642,  1206,
!    -1810,  1221, -1809,  1223,  1228,  2270,   843,  1903,   436,  1230,
!      437,  1234,  1235,  1240,   877,   843,  1409,  1249,  1244,  1383,
!     1376,  1401,  1405,   902,   843,  2439,  2440,  2441,  1410,  2941,
!     2639,  2640,  2289,   945,  1412,   843,  1416,   958,  1424,  1423,
!     1427,  2865,  2952,  1428,  1469,  1470,  1475,  1492,  1493,  1497,
!     1502,  1498,  1508,  1519,  1533,  1510,  1554,  2413,  1543,  1560,
!     1570,  2363,   838,  2758,  1580,  1583,  1584,  2758,  1586,  1588,
!     1589,  1591,  1622,  2119,  1598,   986,  2323,  1615,  1445,   986,
!      333,  2377,  1681, -1070,  2379,  2572,  1667,  2282,   843,  2179,
!     1684,  1094,  1696,  1707,  2163,  1713,  1722,  1723,   986,  2328,
!     2330,   438,  1721,  1726,   842,   334,   335,   336,   337,  1744,
!     1780,  1753,  1154,   842,  1774,   896,   896,   896,  1776,  1786,
!     1790,  1794,   306,  -436,  1808,  1823,  1824,  2438,  1825,  1828,
!     1831,  2354,   986,  1839,  1840,  1916,  1841,   986,  1883,   986,
!      842,  2371,  1842,  1843,  1844,  1845,  1846,  1848,  2410,  1849,
!     1903,  2411,  1895,  1918,  1921,  1850,  1851,  1852,  1979,  2378,
!     1853,  1854,  1855,   986,  1856,  1857,  1858,  1859,  2418,   884,
!     1930,  1022,  1628,  1860,  1861,  1862,  1863,  1865,  1939,  1948,
!      986,  1866,  1867,  1964,  1868,   210,   211,   986,  1869,  1870,
!      212,  1871,   213,  1872,   454,  1874,   214,   215,  1965,   216,
!      217,  1953,  1957,   870,   218,   842,  1958,   455,  1992,  1875,
!      870,  2445,  2786,  1876,   456,  1877,  1878,  1879,  1880,  1881,
!      869,  1993,   869,  2630,  1966,   869,  1994,   744,  2022,   869,
!     1995,   506,   870,  2001,   869,  1996,  2045,   869,   869,   869,
!      869,  2010,   869,  1979,  1581,  2050,  2053,   869,   869,  2054,
!      869,  2056,  1979,  2058,  2032,  1979,  2059,  2060,  2087,  2062,
!      869,   869,  2088,  2092,  2094,  1980,  1657,   853,  2074,  2074,
!     2103,  1408,  2102,  1408,  1686,  2610,  1685,  2120,  2131,  2129,
!     2132,  2142,  2144,  2617,  2145,  1902,  2146,  2151,  2154,  2156,
!     2157,  2158,  2166,  2168, -1809,  2172,  2590,  2167,  2174,  2175,
!      889,  2182,  2597,  2176,  2186,  2184,  2185,  2197,  2199,  2212,
!     2213,  2235,  2419,  2216,  2601,  1408,  2256,  2267,  2272,  2268,
!      940,   843,  2271,  2293,  2295, -1809,  2291,   843,  2292,  2395,
!     1979,  2294,  2300,  2319,  2315,   893,   893,   893,   893,   893,
!     1408, -1026,  2321,  2817,  2326,  2351,  2332,  2320,   785,  2352,
!     2375,  2380,  2381,   877,  2362,  1631,   986,   157,  2404,  2406,
!      877,  2409,  2414,  -550,  2416,  2417,  2420,  2421,  2430,  2425,
!     2422,  2431,  2435,  2452,  1979,  2453,  2333,  2335,  2467,  1903,
!     1152,  2469,   838,  2339,  2472,   986,  1466,  2475,  2493,  2476,
!     2518,   838,  2258,  2484,  2488,  2528,  2526,  2540,  2547,  2501,
!     2508,  2552,  2509,  2511,  2513,  1833,  2714,  2358,   853,  1408,
!      457,  2551,  2541,  2367,  2516,  2555,   458,  2542,  2040,  2556,
!     2563,  2568,   842,  2577,  2586,  2588,  2376,  2591,  1902,   869,
!      945,  2599,  2603,  2762,  2576,  2602,  2619,   843,   843,   459,
!     2614,  2632,  2366,  2627,  2638,  1425,  2641,  1514,  2645,  2646,
!     2647,  2652,  2665,  2667,  2656,  1444,  2671,  2678,  2702,  2672,
!     2675,  2676,  2677,  2680,  2681,   460,  2689,  2704,  2179,  2690,
!     2711,  2691,  2693,  2697,  2445,  2698,  2699,  2651,  2705,  2707,
!     2712,  2709,  2710,   838,   889,  2713,  2074,  2572,  2074,  1864,
!     2720,  2716,  2571,   461,  2753,  2396,  2756,  2756,  1651,  2725,
!     2739,  2732,  2744,  2622,   462, -1862,  2749,  2772,  1037,  2774,
!     1980,  2779,   842,  1980,  2785,  2789,  2788,  2815,  2288,  2792,
!     2836,  2794,  2585,   463,  2795,  2797,   843,  2844,  2288,  2798,
!     1984,   843,  2806,  1594,  2807,  2808,  2863,  2812,  2866,  2813,
!     2871,  2814,  -550,  2855,  2872,  2856,  2873,  2874,   464, -1809,
!     2878,  2887,  2897,  2901,  2905,  2902,  2911,  2914,  2916,  2929,
!      465,  2875,  2939,  2288,  2778,  2923,  2876,  2877,  2931,   466,
!      986,  2935,   467,  2880,  2881,  2909,  2910,  2942,  2918,  2969,
!     2953,   869,  2947,    23,  2989,  2633,   869,   170,   237,   165,
!      162,   179,   869,   274,   316,   264,   321,  1110,   364,   869,
!      869,  2631,  2724,   869,   869,   869,   869,  2134,  2907,  1099,
!      692,  2288,  1092,   869,   327,  1758,  1725,   869,   869,   869,
!      708,   869,   869,   869,   869,  1121,  2143,  1114,  2140,   727,
!     2153,  2423,  2748,  1743,   270,   869,  2756,   889,  2288,  2858,
!     2756,  1113,   428,  2159,  1729,  1160,  1408,   737,   853,  1778,
!      745,  2169,  1902,  2160,  2529,  1759,  2288,  1902,   505,  1802,
!     2650,  1194,   787,  1200,  2782,  1803,  2187,  1980,  1980,   986,
!     1980,  2442,   853,   853,  1022,  2537,  1811,   352,  2288,  2851,
!     2061,  1812,  2328,  1599,  1600,  2944,   995,  1920,   208,  2044,
!     2543,  1005,  1979,   998,  1587,  -474,  2386,   893,   893,   893,
!      853,  1374,  1561,  1936,  2091,  2573,  1625,  2095,  2609,  2754,
!     2611,  2098,   937,  2220,   889,  1035,  1915,  1962,  2628,  1049,
!     1669,  2771,   842,  1208,  1998,  2107,  2761,  1057,  2776,  2048,
!     2221,  1420,  1970,  2035,   960,  1670,  1924,  2372,  1983,  1064,
!     2011,   986,  1408,   853,  2013,  1997,  1989,   939,  1680,  1067,
!     2367,  2728,  2727,  2841,   986,  2837,  2598,  2924,  1070,  2719,
!     2936,   652,  2896,  2718,   986,  1973,  2557,  2717,  2886,  2301,
!     2550,  2554,  2273,  1073,  2047,   653,  2850,  2534,  2853,  2527,
!     1897,  1894,  1076,  2592,  1980,  1628,  1980,  1980,   654,  2701,
!      838,  1022,  1022,  2075,  1079,  2740,  2500,  2596,  1558,  2685,
!     2674,  2917,  1180,   317,   739,  1569,  2342,   870,   870,  2521,
!     2783,  2784,  2870,  2884,   291,   290,  2958,   655,  2971,  1028,
!     2988,  2983,  2990,  2982,  2746,     0,  1022,  1596,     0,     0,
!        0,     0,   869,     0,     0,     0,     0,  2927,     0,     0,
!        0,     0,  1980,     0,     0,  1980,     0, -1852,  1980,  1980,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   843,     0,     0,  2729,
!     2731,     0,     0,   869,     0,   843,  2737,     0,  2860,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   656,
!     1445,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  2842,     0,     0,  1408,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  2708,   843,   843,     0,
!     2854,     0,     0,   870,     0,     0,     0,     0,     0,  1408,
!     1408,     0,     0,     0,     0,     0,     0,  1979,     0,     0,
!     1979,     0,  1446,     0,   657,  1447,     0,     0,  1448,  1449,
!     1408,     0,     0,     0,     0,     0,     0,     0,     0,  2940,
!        0,     0,     0,   843,     0,   658,     0,     0,     0,  2738,
!     1408,     0,  2949,     0,     0,     0,     0,     0,     0,     0,
!        0,  2949,     0,  2959,  2963,     0,     0,  2968,     0,  2198,
!     1982,  2959,     0,     0,     0,  2963,     0,     0,     0,     0,
!      838,  2202,     0,  2206,  2207,     0,  2209,  2210,     0,     0,
!        0,     0,   659,     0,     0,  2900,     0,   660,     0,     0,
!     2932,     0,     0,     0,  2202,     0,  1450,     0,     0,     0,
!        0,  2245,     0,  2247,     0,     0,  2249,  2250,  2251,  2252,
!        0,  2945,  2202,     0,  1451,   661,     0,  2800,     0,     0,
!      843,   843,     0,     0,  2955,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   869,   662,     0,     0,     0,   869,
!        0,     0,     0,   877,     0,     0,  2928,     0,     0,     0,
!        0,     0,     0,     0, -1786,     0,   663,     0,     0,     0,
!     2818,     0,     0,     0,  1979,  1979,     0,  1979,   383,     0,
!        0, -1796,     0,     0,     0,     0,     0,  2573,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  2956,     0,
!     2957,     0,  2846,  2847,  2848,  2849,     0,     0,     0,   384,
!     2970,   385,   386,   387,   388,   389,   390,   391,   392,   393,
!      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
!      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
!      414,  1452,  1453,     0,     0,     0,     0,     0,     0,   843,
!        0,  1454,  1455,     0,     0,     0,     0,   870,     0,   870,
!        0,     0,   870,     0,     0,     0,   870,     0,     0,     0,
!        0,   870,   869,   870,   870,   870,   870,   870,     0,   870,
!        0,     0,     0,     0,   870,   870,     0,   870,     0,     0,
!        0,  1979,     0,  1979,  1979,     0,     0,   870,   870,  2383,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  2075,     0,     0, -1852,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,  1022,     0,     0,     0,     0,     0,     0,     0,  2800,
+        0,     0,     0,     0,     0,  1982,   415,     0,     0,  1979,
+        0,     0,  1979,     0,  2922,  1979,  1979,     0,     0,  1098,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   870,   870,   870,   870,   870, -1852,     0,     0,
!        0,     0,     0,     0,     0,     0,  2937,  2938,     0,     0,
!        0,   416,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   877,     0,   877,
!        0,     0,   877,     0,     0,   417,   877,     0,     0,     0,
!        0,   877,     0,   877,   877,   877,   877,   877,     0,   877,
!     1982,   418,     0,     0,   877,   877,     0,   877,     0,  1982,
!        0,     0,  1982,     0,  2202,     0,     0,   877,   877,     0,
!     2463,  2465,     0,     0,  2468,     0,  2470,  2471,     0,     0,
!        0,     0,     0,     0,     0,     0,   870,     0,     0,     0,
!        0,     0,     0,     0,     0,  2202,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  2505,  2507,     0,
!        0,  2510,  2200,  2512,  2205,     0,  2202,  2208,     0,     0,
!        0,  2211,     0,     0,     0,     0,  2217,     0,     0,  2222,
!     2223,  2224,  2225,     0,  2232,     0,  2532,  1982,     0,  2238,
!     2239,     0,  2243,     0,  2544,  2545,  2546,     0,     0,     0,
!        0,     0,  2253,  2254,     0,     0,   419,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1982,     0,     0,     0,     0,     0,     0,     0,   843,
!     -348,   333,     0,     0,     0,  -348,     0,  -348,   843,  -348,
!     -348,  -348,     0,     0,  -348,  -348,  -348,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   334,   335,   336,   337,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   877,     0,   870,     0,
!        0,     0,     0,   870,     0,     0,     0,     0,     0,   870,
!        0,     0,     0,     0,     0,  1628,   870,   870,     0,     0,
!      870,   870,   870,   870,     0,     0,     0,     0,     0,     0,
!      870,     0,     0,     0,   870,   870,   870,     0,   870,   870,
!      870,   870,     0,     0,     0,     0,     0,     0,     0,     0,
!      843,     0,   870,     0,     0,     0,   210,   211,     0,     0,
!        0,   212,     0,   213,   420,     0,     0,   214,   215,     0,
!      216,   217,     0,     0,     0,   218,     0,     0,     0,     0,
!        0,  1425,     0,     0,  2662,     0,  2664,     0,     0,     0,
!        0,  2668,  2670,  -421,   333,     0,     0,     0,  -421,     0,
!     -421,     0,  -421,  -421,  -421,     0,     0,  -421,  -421,  -421,
!        0,     0,     0,     0,   870,   870,   870,     0,     0,   334,
!      335,   336,   337,     0,     0,     0,  2694,     0,  2696,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   877,     0,
+        0,     0,     0,   877,     0,     0,     0,     0,     0,   877,
+        0,     0,     0,     0,     0,     0,   877,   877,   512,     0,
+      877,   877,   877,   877,     0,     0,     0,     0,     0,     0,
+      877,     0,     0,     0,   877,   877,   877,     0,   877,   877,
+      877,   877,     0,     0,     0,     0,     0,     0,     0,   210,
+      211,     0,   877,     0,   212,     0,   213,     0,     0,     0,
+      214,   215,     0,   216,   217,     0,     0,     0,   218,     0,
+        0,     0,   515,     0,     0,     0,  2075,     0,  2075,     0,
+        0,     0,     0,  2448,     0,  1022,     0,   726,  2451,   512,
+        0,     0,     0,     0,  2466,     0,     0,     0,     0,   870,
+        0,  2473,  2474,     0,     0,  2477,  2479,  2481,  2483,  1982,
+        0,     0,     0,     0,     0,  2486,     0,     0,  -348,  2490,
+     2491,  2492,     0,  2497,  2498,  2499,  2486,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  2514,     0,  2805,
+      870,     0,     0,   515,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   516,     0,     0,   945,   517,   518,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,     0,   530,
!      531,   532,   533,   534,   535,   536,   537,     0,   538,   539,
!      540,   541,   542,   543,     0,   544,  2839,   545,   546,   547,
!      548,   549,   550,     0,     0,     0,     0,   843,     0,     0,
!     2845,     0,     0,     0,     0,   551,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  2075,     0,     0,     0,
!     2075,     0,   516,     0,     0,     0,   517,   518,   519,   520,
!      521,   522,   523,   524,   525,   526,   527,   528,   529,   877,
!      530,   531,   532,   533,   534,   535,   536,   537,     0,   538,
!      539,   540,   541,   542,   543,     0,   544,     0,   545,   546,
!      547,   548,   549,   550,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   551,     0,     0,     0,
!      877,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -348,
!     -348,     0,     0,     0,  2801,     0,     0,     0,   552,     0,
!        0,     0,   553,     0,     0,     0,     0,     0,     0,     0,
!        0,   870,     0,     0,  2653,     0,   870,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   554,     0,     0,  1982,     0,     0,  1982,     0,     0,
+        0,  2820,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,  2683,     0,     0,     0,     0,
+        0,  -350,   333,     0,     0,     0,  -350,     0,  -350,   552,
+     -350,  -350,  -350,   553,     0,  -350,  -350,  -350,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   334,   335,   336,
+      337,     0,     0,     0,     0,     0,     0,   843,     0,     0,
+        0,     0,   554,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,  2089,     0,     0,     0,     0,  2327,  -422,
+      333,     0,     0,     0,  -422,  -859,  -422,     0,  -422,  -422,
+     -422,     0,  -421,  -422,  -422,  -422,     0,     0,     0,   870,
+        0,     0,     0,  -859,  -859,   334,   335,   336,   337,     0,
+        0,     0,     0,     0,  -859,  -859,  -859,     0,     0,     0,
+        0,   877,  -859,  -859,     0,     0,   877,   210,   211,  -859,
+      555,     0,   212,  -859,   213,  -859,     0,     0,   214,   215,
+        0,   216,   217,     0,     0,     0,   218,     0,     0,  1650,
+        0,  1982,  1982,     0,  1982,   556,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,  2801,     0,     0,     0,
+        0,     0,  -859,  -859,     0,   557,     0,     0,     0,     0,
+        0,     0,     0,     0,  -859,   210,   211,     0,     0,     0,
+      212,     0,   213,     0,     0,     0,   214,   215,     0,   216,
+      217,   555,     0,     0,   218,     0,  2810,     0,     0,     0,
+        0,  2811,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   556,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   557,     0,     0,   877,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -859,
!     -859,  -859,  -859,  -859,     0,  -859,     0,     0,  1982,  -859,
!     1982,  1982,     0,     0,     0,     0,     0,     0,     0,  -859,
!        0,  -859,     0,  -859,     0,     0,     0,     0,     0,     0,
!     -859,     0,     0,  -859,     0,  -859,     0,     0,     0,  -859,
!     -859,     0,     0,  -859,     0,     0,  -859,  -859,     0,     0,
!        0,  -859,  -859,     0,     0,     0,     0,     0,     0,     0,
!      558,   559,  -859,     0,     0,     0,  1982,     0,  -859,  1982,
!        0,     0,  1982,  1982,  2882,  -859,     0,     0,  -859,  -350,
!        0,     0,  -859,     0,     0,     0,  -859,  -859,     0,     0,
!     -859,     0,  -859,     0,  2726,     0,     0,     0,     0,     0,
!        0,     0,  -859,     0,     0,     0,     0,     0,  -859,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -859,  -859,
!        0,     0,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!        0,   558,   559,     0,     0,     0,  -859,     0,     0,     0,
!        0,  -859,  -859,  -859,  -859,     0,     0,  -859,     0,  -859,
!        0,     0,     0,     0,     0,     0,     0,  -859,  -859,  -859,
!     -859,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -859,  -859,  -859,  -859,  -859,  -859,     0,
!     -859,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -859,  -859,     0,     0,     0,     0,     0,     0,
!        0,     0,  -859,  -859,  -859,  -859,     0,     0,     0,     0,
!     -859,  -859,  -859,  -859,  -859,     0,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,     0,  -859,     0,  -859,     0,     0,
!     -859,     0,     0,     0,     0,     0,  -859,     0,     0,     0,
!     -859,  -859,  -859,     0,     0,     0,     0,     0,  -859,     0,
!        0,  -859,     0,  -859,  -859,     0,  2403,     0,     0,     0,
!        0,     0,     0,     0,     0,  -859,     0,     0,     0,  -859,
!     -350,  -350,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -859,  -859,  -859,  -859,     0,     0,     0,     0,     0,
!        0,  -859,     0,     0,     0,     0,  -859,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -859,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -859,  -859,     0,     0,     0,  -422,     0,
!        0,  -859,  -859,     0,  -859,     0,     0,     0,  -859,     0,
!        0,     0,  -859,  -859,     0,  -859,  -859,  -859,  -859,     0,
!        0,     0,  -859,     0,     0,  -859,  -859,  -859,  -859,  -859,
!     -859,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -859,  -859,     0,     0,     0,     0,  -859,     0,     0,
!        0,     0,     0,     0,     0,  -859,  -859,     0,     0,  -859,
!     -859,     0,  -859,  -859,  -859,     0,     0,  -859,     0,     0,
!     -859,     0,     0,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,     0,     0,  -859,  2089,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -859,     0,     0,     0,     0,     0,     0,     0,     0,  -859,
!        0,     0,     0,     0,     0,     0,     0,     0,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,     0,  -859,
!     -859,  -859,     0,     0,     0,  -859,     0,  -859,  -859,     0,
!        0,     0,     0,     0,  -859,     0,     0,     0,  -859,     0,
!     -859,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -859,  -859,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -859,
!      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
!      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
!      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -859,  -859,  -859,  -859,  -859,     0,
!     -859,     0,     0,     0,  -859,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -859,     0,  -859,     0,  -859,     0,
!        0,     0,     0,     0,     0,  -859,     0,     0,  -859,     0,
!     -859,     0,     0,     0,  -859,  -859,     0,     0,  -859,     0,
!        0,  -859,  -859,     0,     0,     0,  -859,  -859,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -859,     0,     0,
!        0,     0,     0,  -859,     0,     0,     0,     0,     0,     0,
!     -859,     0,     0,  -859,     0,     0,     0,  -859,     0,     0,
!        0,  -859,  -859,     0,     0,  -859,     0,  -859,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -859,     0,     0,
!        0,     0,     0,  -859,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -859,  -859,     0,     0,  -859,  -859,  -859,
!     -859,  -859,  -859,  -859,  -859,     0,     0,     0,     0,     0,
!        0,  -859,     0,     0,     0,     0,  -859,  -859,  -859,  -859,
!        0,     0,  -859,     0,  -859,     0,     0,     0,     0,     0,
!        0,     0,  -859,  -859,  -859,  -859,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1690,     0,     0,  -859,  -859,
!     -859,  -859,  -859,  -859,     0,  -859,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -859,  -859,     0,
!        0,     0,     0,     0,     0,     0,     0,  -859,  -859,  -859,
!     -859,     0,     0,     0,     0,  -859,  -859,  -859,  -859,  -859,
!        0,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,     0,
!     -859,     0,  -859,     0,     0,  -859,     0,     0,     0,     0,
!        0,  -859,     0,     0,     0,  -859,  -859,  -859,     0,     0,
!        0,     0,     0,  -859,     0,     0,  -859,     0,  -859,  -859,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     -859,     0,     0,     0,  -859,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,  -859,  -859,  -859,  -859,
+        0,     0,     0,     0,     0,     0,  -859,     0,     0,     0,
+        0,  -859,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  -859,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,  -859,  -859,
+        0,     0,     0,     0,     0,     0,  -859,  -859,     0,  -859,
+        0,     0,     0,  -859,     0,     0,     0,  -859,  -859,     0,
+     -859,  -859,  -859,  -859,     0,     0,     0,  -859,     0,     0,
+     -859,  -859,  -859,  -859,  -859,  -859,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,  -859,  -859,     0,     0,
+        0,     0,  -859,     0,     0,     0,     0,     0,     0,     0,
+     -859,  -859,     0,     0,  -859,  -859,     0,  -859,  -859,  -859,
+        0,     0,  -859,     0,     0,  -859,     0,     0,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,  -859,
+        0,  2244,  -859,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0, -1602,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,  -859,     0,     0,     0,     0,     0,
+        0,    28,     0,     0,     0,  -859,  -859,  -859,  -859,  -859,
+     -859,  -859,  -859,     0,     0,     0,     0,     0,     0,     0,
+     -859,   805,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   806,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      383,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -1602, -1602,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   384,    30,   385,   386,   387,   388,   389,   390,   391,
+      392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
+      402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
+      412,   413,   414,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
!       34, -1602,     0, -1602,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1602,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0, -1602,     0,
!        0, -1602,     0, -1602,     0,     0,     0, -1602, -1602,     0,
!        0, -1602,     0,     0,    36, -1602,     0,     0,     0, -1602,
!    -1602,     0,     0,     0,     0,     0,     0,     0,   415,     0,
!    -1602,     0,     0,     0,     0,     0, -1602,     0,     0,     0,
!        0,     0,     0, -1602,     0,     0, -1602,     0,     0,     0,
!    -1602,     0,     0,     0, -1602, -1602,     0,     0, -1602,     0,
!    -1602,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      808,     0,     0,   416,     0,     0, -1602,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1602, -1602,     0,     0,
!    -1602, -1602, -1602, -1602, -1602, -1602, -1602,   417,     0,     0,
!        0,     0,     0,     0, -1602,     0,     0,     0,     0, -1602,
!    -1602, -1602, -1602,   418,     0, -1602,     0,   809,     0,     0,
!        0,     0,     0,     0,     0, -1602, -1602,     0, -1602,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1602, -1602, -1602, -1602, -1602, -1602,     0,    38,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1602,   810,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1602, -1602, -1602, -1602,     0,     0,     0,     0, -1602, -1602,
!    -1602,     0, -1602,     0,    39, -1602, -1602, -1602, -1602, -1602,
!       40, -1602,     0, -1602,     0,    41,     0,     0, -1602,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1602, -1602,
!    -1602,     0,     0,     0,     0,     0,    42,     0,   419, -1602,
!        0, -1602, -1602,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1602,     0,     0,     0, -1602,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1602, -1602, -1602,     0,     0,     0,     0,     0,     0,    43,
!        0,     0,     0,     0, -1602,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -1602,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0, -1602, -1602,     0,     0,     0,     0,     0,     0, -1602,
+    -1602,     0, -1602,     0,     0,     0, -1602,     0,     0,     0,
+    -1602, -1602,     0,    44, -1602, -1602,    45,     0,     0,     0,
+    -1602,     0,     0, -1602, -1602, -1602, -1602, -1602, -1602,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0, -1602,
+        0,     0,     0,     0,     0, -1602,     0,     0,     0,     0,
+        0,     0,     0, -1602, -1602,     0,     0, -1602, -1602,     0,
+    -1602, -1602, -1602,     0,     0, -1602,   420,     0, -1602,     0,
+        0, -1602,    46,    47,    48,    49,    50,    51,    52,    53,
+       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+      114,   115,   116,     0,     0,   811, -1462,   892,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   117,     0, -1462,
!    -1462,     0,     0,     0,     0,     0,     0,    28,     0,     0,
!        0,     0,  1602,     0,   812,   813,     0,     0,     0,     0,
!      861, -1462, -1462,   814, -1462,     0,     0,   805, -1462,     0,
!        0, -1462,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   385,   386,   387,   388,   389,
!      390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
!      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
!      410,   411,   412,   413,   414,     0,     0,     0, -1852,   862,
!      863,   864,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1462,  1445, -1462,     0, -1462, -1462, -1462, -1462, -1462, -1462,
!    -1462, -1462, -1462, -1462, -1462, -1462, -1462, -1862, -1462, -1462,
!    -1462, -1462, -1462, -1462, -1462, -1462,     0, -1462, -1462, -1462,
!    -1462, -1462, -1462,     0, -1462,     0, -1462, -1462, -1462, -1462,
!    -1462, -1462, -1462,    31,    32,    33,    34,     0,  1603,  1604,
!        0,  1605,     0,  1446, -1462,     0,  1447,     0,     0,  1448,
!     1449,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  1606,  1607,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  1608,     0,     0,     0,  1450,  1609,     0,
!     1610,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1451,     0, -1462,  1616,     0,
!        0, -1462,     0,  1611,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1462,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1462,   385,   386,   387,   388,   389,   390,   391,   392,   393,
!      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
!      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
!      414,     0,     0,     0,    38,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
+        0,    41,  1452,  1453,     0,     0,     0,     0,     0,     0,
+        0,     0,  1454,  1455,     0,     0,     0,     0,     0,     0,
+        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,  1617,     0,  1618,  1619,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0, -1462,
+        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0, -1852,     0,     0,     0,
+        0,     0,     0,     0, -1462,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1462,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1852,     0,
!        0,  1612,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   709,     0,     0,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116, -1462,
!    -1462,     0, -1462, -1462, -1462, -1462, -1462,     0, -1462, -1462,
!    -1462, -1462, -1462, -1462, -1462, -1462, -1462, -1462, -1462, -1462,
!    -1462, -1462, -1462,   117,  -723,  -723,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0, -1462,  -723,  -723,     0,
+        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   497,     0,   861,  -723,
+     -723,     0,  -723,     0,     0,   805,  -723,     0,     0,  -723,
+        0,     0,     0,     0,     0,     0,     0,   499,   984,   512,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   862,   863,   864,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
!        0,     0,     0,   515,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -723,     0,
!     -723,     0,  -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,
!     -723,  -723,  -723,  -723,  -723,     0,  -723,  -723,  -723,  -723,
!     -723,  -723,  -723,  -723,     0,  -723,  -723,  -723,  -723,  -723,
!     -723,     0,  -723,     0,  -723,  -723,  -723,  -723,  -723,  -723,
!     -723,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,   865,  -723,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   516,     0,     0,    35,   517,   518,   519,   520,
!      521,   522,   523,   524,   525,   526,   527,   528,   529,     0,
!      530,   531,   532,   533,   534,   535,   536,   537,    36,   538,
!      539,   540,   541,   542,   543,     0,   544,     0,   545,   546,
!      547,   548,   549,   550,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   551,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -723,     0,     0,     0,  -723,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -723,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -723,     0,
!        0,   809,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   500,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   552,
!        0,     0,    38,   553,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   866,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   554,     0,     0,   501,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,  -723,     0,   502,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   503,     0,     0,     0,  -723,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -723,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -723,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
!       45,   555,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   556,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -723,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   557,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,  -723,  -723,   867,
!     -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,
!     -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,  -723,
!     -723,   117,  -729,  -729,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -723,  -729,  -729,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,   558,   559,     0,   497,     0,   861,  -729,  -729,     0,
!     -729,     0,     0,   805,  -729,     0,     0,  -729,     0,     0,
!        0,     0,     0,     0,     0,   499,     0,   512,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   985,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   862,   863,   864,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
!        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -729,     0,  -729,     0,
!     -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
!     -729,  -729,  -729,     0,  -729,  -729,  -729,  -729,  -729,  -729,
!     -729,  -729,     0,  -729,  -729,  -729,  -729,  -729,  -729,     0,
!     -729,     0,  -729,  -729,  -729,  -729,  -729,  -729,  -729,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,   865,
!     -729,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      516,     0,     0,    35,   517,   518,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,     0,   530,   531,
!      532,   533,   534,   535,   536,   537,    36,   538,   539,   540,
!      541,   542,   543,     0,   544,     0,   545,   546,   547,   548,
!      549,   550, -1130,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   551,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -729,     0,     0,     0,  -729,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -729,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -729,     0,     0,   809,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   500,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   552,     0,     0,
!       38,   553,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   866,     0,     0,     0,     0,     0, -1130,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      554,     0,     0,   501,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
!        0,     0,     0,     0,     0,     0,   502,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   503,     0,     0,     0,  -729,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -729,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -729,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,     0,     0,    45,   555,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,  -729,  -729,   867,  -729,  -729,
!     -729,  -729,  -729,     0,  -729,  -729,  -729,  -729,  -729,  -729,
!     -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,   117,
!    -1428, -1428,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -729, -1428, -1428,     0,     0,     0,     0,     0,
!        0,    28,     0, -1428,     0,     0,     0,     0,     0,   558,
!      559,     0,   497,     0,  1977, -1428, -1428,     0, -1428,     0,
!        0, -1130, -1428,     0,     0, -1428,     0,     0,     0,     0,
!        0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1428,     0, -1428,     0, -1428, -1428,
!    -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
!    -1428,     0, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
!        0, -1428, -1428, -1428, -1428, -1428, -1428,     0, -1428,     0,
!    -1428, -1428, -1428, -1428, -1428, -1428, -1428,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0, -1428, -1428,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
!        0,     0, -1428,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1428,     0,     0,     0, -1428,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1428,     0,     0,     0,     0, -1428,     0,
!        0,     0,     0,     0, -1428,     0,     0,   809,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   500,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1428,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   501,     0,     0,    39,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,   502,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   503,
!        0,     0,     0, -1428,     0,     0,     0,     0,     0,    43,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1428,     0,     0,     0,     0,     0,     0,     0, -1428,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1428,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1428,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116, -1428, -1428,     0, -1428, -1428, -1428, -1428,
!    -1428,     0, -1428, -1428, -1428, -1428, -1428, -1428, -1428, -1428,
!    -1428, -1428, -1428, -1428, -1428, -1428, -1428,   117, -1429, -1429,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1428, -1429, -1429,     0,     0,     0,     0,     0,     0,    28,
!        0, -1429,     0,     0,     0,     0,     0,     0,     0,     0,
!      497,     0,  1977, -1429, -1429,     0, -1429,     0,     0,     0,
!    -1429,     0,     0, -1429,     0,     0,     0,     0,     0,     0,
!        0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1429,     0, -1429,     0, -1429, -1429, -1429, -1429,
!    -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429,     0,
!    -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429,     0, -1429,
!    -1429, -1429, -1429, -1429, -1429,     0, -1429,     0, -1429, -1429,
!    -1429, -1429, -1429, -1429, -1429,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0, -1429, -1429,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
!    -1429,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1429,
!        0,     0,     0, -1429,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1429,     0,     0,     0,     0, -1429,     0,     0,     0,
!        0,     0, -1429,     0,     0,   809,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   500,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1429,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
!        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
         0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
+        0,     0,   502,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   503,     0,     0,
!        0, -1429,     0,     0,     0,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1429,     0,
!        0,     0,     0,     0,     0,     0, -1429,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1429,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,     0,     0,    45,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1429,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116, -1429, -1429,     0, -1429, -1429, -1429, -1429, -1429,     0,
!    -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429, -1429,
!    -1429, -1429, -1429, -1429, -1429,   117, -1430, -1430,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1429, -1430,
+    -1430,     0,     0,     0,     0,     0,     0,    28,     0, -1430,
+        0,     0,     0,     0,     0,     0,     0,     0,   497,     0,
+     1977, -1430, -1430,     0, -1430,     0,     0,     0, -1430,     0,
+        0, -1430,     0,     0,     0,     0,     0,     0,     0,   499,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1430,     0, -1430,     0, -1430, -1430, -1430, -1430, -1430, -1430,
!    -1430, -1430, -1430, -1430, -1430, -1430, -1430,     0, -1430, -1430,
!    -1430, -1430, -1430, -1430, -1430, -1430,     0, -1430, -1430, -1430,
!    -1430, -1430, -1430,     0, -1430,     0, -1430, -1430, -1430, -1430,
!    -1430, -1430, -1430,    31,    32,    33,    34,     0,     0,     0,
!        0,     0,     0, -1430, -1430,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0, -1430,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1430,     0,     0,
!        0, -1430,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1430,
!        0,     0,     0,     0, -1430,     0,     0,     0,     0,     0,
!    -1430,     0,     0,   809,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   500,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1430,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   501,     0,     0,
!       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
!      502,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   503,     0,     0,     0, -1430,
!        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1430,     0,     0,     0,
!        0,     0,     0,     0, -1430,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1430,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1430,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116, -1430,
!    -1430,     0, -1430, -1430, -1430, -1430, -1430,     0, -1430, -1430,
!    -1430, -1430, -1430, -1430, -1430, -1430, -1430, -1430, -1430, -1430,
!    -1430, -1430, -1430,   117, -1444, -1444,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1430, -1444, -1444,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   497,     0,  1977, -1444,
!    -1444,     0, -1444,     0,     0,     0, -1444,     0,     0, -1444,
!        0,     0,     0,     0,     0,     0,     0,   499,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1444,     0,
!    -1444,     0, -1444, -1444, -1444, -1444, -1444, -1444, -1444, -1444,
!    -1444, -1444, -1444, -1444, -1444,     0, -1444, -1444, -1444, -1444,
!    -1444, -1444, -1444, -1444,     0, -1444, -1444, -1444, -1444, -1444,
!    -1444,     0, -1444,     0, -1444, -1444, -1444, -1444, -1444, -1444,
!    -1444,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0, -1444, -1444,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
!        0,     0,     0,     0,     0,     0, -1444,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1444,     0,     0,     0, -1444,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1444,     0, -1444,
!        0,     0,     0,     0,     0,     0,     0,     0, -1444,     0,
!        0,   809,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   500,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1444,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   503,     0,     0,     0, -1444,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1444,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1444,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
!       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1444,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116, -1444, -1444,     0,
!    -1444, -1444, -1444, -1444, -1444,     0, -1444, -1444, -1444, -1444,
!    -1444, -1444, -1444, -1444, -1444, -1444, -1444, -1444, -1444, -1444,
!    -1444,   117, -1104, -1104,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1444, -1104, -1104,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1104, -1104,     0,
!    -1104,     0,     0,   805, -1104,     0,     0, -1104,     0,     0,
!        0,     0,     0,     0,     0,   806,  -563,   512,     0,   -11,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -563,  -563,  -563,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   513,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,   514,     0,     0,
!        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1104,     0, -1104,     0,
!    -1104, -1104, -1104, -1104, -1104, -1104, -1104, -1104, -1104, -1104,
!    -1104, -1104, -1104,     0, -1104, -1104, -1104, -1104, -1104, -1104,
!    -1104, -1104,     0, -1104, -1104, -1104, -1104, -1104, -1104,     0,
!    -1104,     0, -1104, -1104, -1104, -1104, -1104, -1104, -1104,    31,
!       32,    33,    34,     1,     0,     0,     0,     0,     0,     0,
!    -1104,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      516,     0,     0,    35,   517,   518,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,     0,   530,   531,
!      532,   533,   534,   535,   536,   537,    36,   538,   539,   540,
!      541,   542,   543,     0,   544,     0,   545,   546,   547,   548,
!      549,   550,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   551,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1104,     0,     0,     0, -1104,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1104,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1104,     0,     0,   809,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   552,     0,     0,
!       38,   553,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   834,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      554,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1104,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1104,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1104,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      -11,     0,     0,     0,     0,    44,     0,     0,    45,   555,
!        0,     0,     0,     0, -1862,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
!        0,     0,  1037,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,     0,     0,     0,  1038,     0,
!        0,   709,     0,     0,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116, -1104, -1104,     0, -1104, -1104,
!    -1104, -1104, -1104,     0, -1104, -1104, -1104, -1104, -1104, -1104,
!    -1104, -1104, -1104, -1104, -1104, -1104, -1104, -1104, -1104,   117,
!     -990,   892,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   835,   836,     0,     0,
!        0,     0, -1104,  -990,  -990,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,     0,   558,
!      559,     0,     0,     0,   861,  -990,  -990,     0,  -990,     0,
!        0,   805,  -990,     0,     0,  -990,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   862,   863,   864,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -990,     0,  -990,     0,  -990,  -990,
!     -990,  -990,  -990,  -990,  -990,  -990,  -990,  -990,  -990,  -990,
!     -990,     0,  -990,  -990,  -990,  -990,  -990,  -990,  -990,  -990,
!        0,  -990,  -990,  -990,  -990,  -990,  -990,     0,  -990,     0,
!     -990,  -990,  -990,  -990,  -990,  -990,  -990,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,     0,  -990,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -990,     0,     0,     0,  -990,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -990,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -990,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  -990,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -990,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -990,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116,  -990,  -990,     0,  -990,  -990,  -990,  -990,
!     -990,     0,  -990,  -990,  -990,  -990,  -990,  -990,  -990,  -990,
!     -990,  -990,  -990,  -990,  -990,  -990,  -990,   117,  -994,   892,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     -990,  -994,  -994,     0,     0,     0,     0,     0,     0,    28,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   861,  -994,  -994,     0,  -994,     0,     0,   805,
!     -994,     0,     0,  -994,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   862,   863,   864,     0,     0,     0,     0,     0,     0,
+       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -994,     0,  -994,     0,  -994,  -994,  -994,  -994,
!     -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,     0,
!     -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,     0,  -994,
!     -994,  -994,  -994,  -994,  -994,     0,  -994,     0,  -994,  -994,
!     -994,  -994,  -994,  -994,  -994,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,     0,  -994,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    36,    37,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -994,
!        0,     0,     0,  -994,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -994,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -994,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
!        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -994,     0,     0,     0,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -994,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,  -994,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,     0,     0,    45,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,  -994,  -994,     0,  -994,  -994,  -994,  -994,  -994,     0,
!     -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,  -994,
!     -994,  -994,  -994,  -994,  -994,   117,  -991,   892,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -994,  -991,
!     -991,     0,     0,     0,     0,     0,     0,    28,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      861,  -991,  -991,     0,  -991,     0,     0,   805,  -991,     0,
!        0,  -991,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   862,
!      863,   864,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     -991,     0,  -991,     0,  -991,  -991,  -991,  -991,  -991,  -991,
+     -991,  -991,  -991,  -991,  -991,  -991,  -991,     0,  -991,  -991,
+     -991,  -991,  -991,  -991,  -991,  -991,     0,  -991,  -991,  -991,
+     -991,  -991,  -991,     0,  -991,     0,  -991,  -991,  -991,  -991,
+     -991,  -991,  -991,    31,    32,    33,    34,     0,     0,     0,
+        0,     0,     0,     0,  -991,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -991,     0,     0,
!        0,  -991,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -991,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -991,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,  -991,
+        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -991,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -991,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116,  -991,
!     -991,     0,  -991,  -991,  -991,  -991,  -991,     0,  -991,  -991,
!     -991,  -991,  -991,  -991,  -991,  -991,  -991,  -991,  -991,  -991,
!     -991,  -991,  -991,   117,  -993,   892,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -991,  -993,  -993,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   861,  -993,
!     -993,     0,  -993,     0,     0,   805,  -993,     0,     0,  -993,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   862,   863,   864,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -993,     0,
!     -993,     0,  -993,  -993,  -993,  -993,  -993,  -993,  -993,  -993,
!     -993,  -993,  -993,  -993,  -993,     0,  -993,  -993,  -993,  -993,
!     -993,  -993,  -993,  -993,     0,  -993,  -993,  -993,  -993,  -993,
!     -993,     0,  -993,     0,  -993,  -993,  -993,  -993,  -993,  -993,
!     -993,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0,  -993,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,  -993,     0,     0,     0,  -993,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  -993,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,  -993,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
+        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  -993,     0,     0,
+        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -993,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -993,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
!       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,  -993,  -993,     0,
!     -993,  -993,  -993,  -993,  -993,     0,  -993,  -993,  -993,  -993,
!     -993,  -993,  -993,  -993,  -993,  -993,  -993,  -993,  -993,  -993,
!     -993,   117,  -992,   892,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -993,  -992,  -992,     0,     0,     0,
         0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   861,  -992,  -992,     0,
!     -992,     0,     0,   805,  -992,     0,     0,  -992,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   862,   863,   864,     0,     0,
+        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -992,     0,  -992,     0,
!     -992,  -992,  -992,  -992,  -992,  -992,  -992,  -992,  -992,  -992,
!     -992,  -992,  -992,     0,  -992,  -992,  -992,  -992,  -992,  -992,
!     -992,  -992,     0,  -992,  -992,  -992,  -992,  -992,  -992,     0,
!     -992,     0,  -992,  -992,  -992,  -992,  -992,  -992,  -992,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!     -992,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    36,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,  -992,     0,     0,     0,  -992,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -992,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  -992,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -656,   512,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,  -656,  -656,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!     -656,  -656,     0,  -656,     0,     0,     0,  -656,     0,     0,
!      515,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -992,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -992,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     -992,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,     0,     0,    45,   516,
!        0,  -656,     0,   517,   518,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,     0,   530,   531,   532,
!      533,   534,   535,   536,   537,     0,   538,   539,   540,   541,
!      542,   543,     0,   544,     0,   545,   546,   547,   548,   549,
!      550,  -656,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   551,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,  -992,  -992,     0,  -992,  -992,
!     -992,  -992,  -992,     0,  -992,  -992,  -992,  -992,  -992,  -992,
!     -992,  -992,  -992,  -992,  -992,  -992,  -992,  -992,  -992,   117,
!        0,  -837,   512,     0,     0,     0,   552,     0,     0,     0,
!      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -992,     0,  -837,  -837,     0,     0,  -656,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
!        0,     0,     0,     0,     0,     0,  -837,  -837,     0,  -837,
!        0,     0,     0,  -837,     0,     0,   515,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0, -1012,   512,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0, -1012, -1012,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1012, -1012,     0, -1012,
!        0,     0,     0, -1012,     0,   516,   515,  -837,     0,   517,
!      518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,     0,   530,   531,   532,   533,   534,   535,   536,
!      537,     0,   538,   539,   540,   541,   542,   543,   555,   544,
!        0,   545,   546,   547,   548,   549,   550,  -837,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   551,
!        0,     0,     0,   556,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   557,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   516,     0, -1012,     0,   517,
!      518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,     0,   530,   531,   532,   533,   534,   535,   536,
!      537,     0,   538,   539,   540,   541,   542,   543,     0,   544,
!        0,   545,   546,   547,   548,   549,   550, -1012,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   551,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   552,     0,     0,     0,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -837,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   554,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   558,   559,
!        0,  -656,  -656,  -656,  -656,  -656,     0,  -656,  -656,  -656,
!     -656,  -656,  -656,  -656,  -656,  -656,  -656,  -656,  -656,  -656,
!     -656,  -656,   552,     0, -1528,   512,   553,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1012,  -656,     0, -1528, -1528,     0,
!        0,     0,     0,     0,     0,   554,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1528,
!    -1528,     0, -1528,     0,     0,     0, -1528,     0,     0,   515,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   555,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   556,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   516,     0,
!    -1528,     0,   517,   518,   519,   520,   521,   522,   523,   524,
!      525,   526,   527,   528,   529,     0,   530,   531,   532,   533,
!      534,   535,   536,   537,   555,   538,   539,   540,   541,   542,
!      543,     0,   544,     0,   545,   546,   547,   548,   549,   550,
!    -1528,     0,     0,     0,     0,     0,     0,     0,     0,   556,
!        0,     0,   551,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   558,   559,     0,  -837,  -837,  -837,
!     -837,  -837,     0,  -837,  -837,  -837,  -837,  -837,  -837,  -837,
!     -837,  -837,  -837,  -837,  -837,  -837,  -837,  -837,     0,     0,
!    -1266,   512,     0,     0,     0,   552,     0,     0,     0,   553,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  -837,     0, -1266, -1266,     0,     0, -1528,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   554,     0,
!        0,     0,     0,     0,     0, -1266, -1266,     0, -1266,     0,
!        0,     0, -1266,     0,     0,   515,     0,     0,     0,     0,
!        0,     0,     0,     0,   558,   559,     0, -1012, -1012, -1012,
!    -1012, -1012,     0, -1012, -1012, -1012, -1012, -1012, -1012, -1012,
!    -1012, -1012, -1012, -1012, -1012, -1012, -1012, -1012,     0,     0,
!    -1405,   512,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0, -1012,     0, -1405, -1405,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1405, -1405,     0, -1405,     0,
!        0,     0, -1405,     0,   516,   515, -1266,     0,   517,   518,
!      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
!      529,     0,   530,   531,   532,   533,   534,   535,   536,   537,
!        0,   538,   539,   540,   541,   542,   543,   555,   544,     0,
!      545,   546,   547,   548,   549,   550, -1266,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   551,     0,
!        0,     0,   556,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   557,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   516,     0, -1405,     0,   517,   518,
!      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
!      529,     0,   530,   531,   532,   533,   534,   535,   536,   537,
!        0,   538,   539,   540,   541,   542,   543,     0,   544,     0,
!      545,   546,   547,   548,   549,   550, -1405,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   551,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   552,     0,     0,     0,   553,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1266,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   554,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   558,   559,     0,
+    -1528, -1528, -1528, -1528, -1528,     0, -1528, -1528, -1528, -1528,
+    -1528, -1528, -1528, -1528, -1528, -1528, -1528, -1528, -1528, -1528,
+    -1528,   552,     0, -1571,   512,   553,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1405, -1528,     0, -1571, -1571,     0,     0,
!        0,     0,     0,     0,   554,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1571, -1571,
!        0, -1571,     0,     0,     0, -1571,     0,     0,   515,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   555,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   556,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   557,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   516,     0, -1571,
!        0,   517,   518,   519,   520,   521,   522,   523,   524,   525,
!      526,   527,   528,   529,     0,   530,   531,   532,   533,   534,
!      535,   536,   537,   555,   538,   539,   540,   541,   542,   543,
!        0,   544,     0,   545,   546,   547,   548,   549,   550, -1571,
!        0,     0,     0,     0,     0,     0,     0,     0,   556,     0,
!        0,   551,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   557,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   558,   559,     0, -1266, -1266, -1266, -1266,
+    -1266,     0, -1266, -1266, -1266, -1266, -1266, -1266, -1266, -1266,
+    -1266, -1266, -1266, -1266, -1266, -1266, -1266,     0,     0, -1971,
+      512,     0,     0,     0,   552,     0,     0,     0,   553,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1266,     0, -1971, -1971,     0,     0, -1571,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   554,     0,     0,
!        0,     0,     0,     0, -1971, -1971,     0, -1971,     0,     0,
!        0, -1971,     0,     0,   515,     0,     0,     0,     0,     0,
!        0,     0,     0,   558,   559,     0, -1405, -1405, -1405, -1405,
!    -1405,     0, -1405, -1405, -1405, -1405, -1405, -1405, -1405, -1405,
!    -1405, -1405, -1405, -1405, -1405, -1405, -1405,     0,     0,  -655,
!      512,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1405,     0,  -655,  -655,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  -655,  -655,     0,  -655,     0,     0,
!        0,  -655,     0,   516,   515, -1971,     0,   517,   518,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!        0,   530,   531,   532,   533,   534,   535,   536,   537,     0,
!      538,   539,   540,   541,   542,   543,   555,   544,     0,   545,
!      546,   547,   548,   549,   550, -1971,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   551,     0,     0,
!        0,   556,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   516,     0,  -655,     0,   517,   518,   519,
+      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
+        0,   530,   531,   532,   533,   534,   535,   536,   537,     0,
+      538,   539,   540,   541,   542,   543,     0,   544,     0,   545,
+      546,   547,   548,   549,   550,  -655,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   551,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      552,     0,     0,     0,   553,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1971,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   554,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   558,   559,     0, -1571,
!    -1571, -1571, -1571, -1571,     0, -1571, -1571, -1571, -1571, -1571,
!    -1571, -1571, -1571, -1571, -1571, -1571, -1571, -1571, -1571, -1571,
!      552,     0,  -854,   512,   553,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  -655, -1571,     0,  -854,  -854,     0,     0,     0,
!        0,     0,     0,   554,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  -854,  -854,     0,
!     -854,     0,     0,     0,  -854,     0,     0,   515,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   555,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   516,     0,  -854,     0,
+      517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
+      527,   528,   529,     0,   530,   531,   532,   533,   534,   535,
+      536,   537,   555,   538,   539,   540,   541,   542,   543,     0,
+      544,     0,   545,   546,   547,   548,   549,   550,  -854,     0,
+        0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
+      551,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0, -1971, -1971, -1971, -1971, -1971,
!        0, -1971, -1971, -1971, -1971, -1971, -1971, -1971, -1971, -1971,
!    -1971, -1971, -1971, -1971, -1971, -1971,     0,     0, -1013,   512,
!        0,     0,     0,   552,     0,     0,     0,   553,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1971,
!        0, -1013, -1013,     0,     0,  -854,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   554,     0,     0,     0,
!        0,     0,     0, -1013, -1013,     0, -1013,     0,     0,     0,
!    -1013,     0,     0,   515,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0,  -655,  -655,  -655,  -655,  -655,
!        0,  -655,  -655,  -655,  -655,  -655,  -655,  -655,  -655,  -655,
!     -655,  -655,  -655,  -655,  -655,  -655,     0,     0, -1527,   512,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  -655,
!        0, -1527, -1527,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0, -1527, -1527,     0, -1527,     0,     0,     0,
+    -1527,     0,   516,   515, -1013,     0,   517,   518,   519,   520,
+      521,   522,   523,   524,   525,   526,   527,   528,   529,     0,
+      530,   531,   532,   533,   534,   535,   536,   537,     0,   538,
+      539,   540,   541,   542,   543,   555,   544,     0,   545,   546,
+      547,   548,   549,   550, -1013,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   551,     0,     0,     0,
+      556,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      557,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   516,     0, -1527,     0,   517,   518,   519,   520,
+      521,   522,   523,   524,   525,   526,   527,   528,   529,     0,
+      530,   531,   532,   533,   534,   535,   536,   537,     0,   538,
+      539,   540,   541,   542,   543,     0,   544,     0,   545,   546,
+      547,   548,   549,   550, -1527,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   551,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   552,
+        0,     0,     0,   553,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1013,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   554,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   558,   559,     0,  -854,  -854,
!     -854,  -854,  -854,     0,  -854,  -854,  -854,  -854,  -854,  -854,
!     -854,  -854,  -854,  -854,  -854,  -854,  -854,  -854,  -854,   552,
!        0, -1267,   512,   553,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1527,  -854,     0, -1267, -1267,     0,     0,     0,     0,
!        0,     0,   554,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1267, -1267,     0, -1267,
!        0,     0,     0, -1267,     0,     0,   515,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   555,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   556,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   557,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   516,     0, -1267,     0,   517,
!      518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,     0,   530,   531,   532,   533,   534,   535,   536,
!      537,   555,   538,   539,   540,   541,   542,   543,     0,   544,
!        0,   545,   546,   547,   548,   549,   550, -1267,     0,     0,
!        0,     0,     0,     0,     0,     0,   556,     0,     0,   551,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   557,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   558,   559,     0, -1013, -1013, -1013, -1013, -1013,     0,
!    -1013, -1013, -1013, -1013, -1013, -1013, -1013, -1013, -1013, -1013,
!    -1013, -1013, -1013, -1013, -1013,     0,     0, -1219,   512,     0,
!        0,     0,   552,     0,     0,     0,   553,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1013,     0,
!    -1219, -1219,     0,     0, -1267,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   554,     0,     0,     0,     0,
!        0,     0, -1219, -1219,     0, -1219,     0,     0,     0, -1219,
!        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
!        0,   558,   559,     0, -1527, -1527, -1527, -1527, -1527,     0,
!    -1527, -1527, -1527, -1527, -1527, -1527, -1527, -1527, -1527, -1527,
!    -1527, -1527, -1527, -1527, -1527,     0,     0, -1359,   512,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1527,     0,
!    -1359, -1359,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1359, -1359,     0, -1359,     0,     0,     0, -1359,
+        0,   516,   515, -1219,     0,   517,   518,   519,   520,   521,
+      522,   523,   524,   525,   526,   527,   528,   529,     0,   530,
+      531,   532,   533,   534,   535,   536,   537,     0,   538,   539,
+      540,   541,   542,   543,   555,   544,     0,   545,   546,   547,
+      548,   549,   550, -1219,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   551,     0,     0,     0,   556,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   516,     0, -1359,     0,   517,   518,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,     0,   530,
!      531,   532,   533,   534,   535,   536,   537,     0,   538,   539,
!      540,   541,   542,   543,     0,   544,     0,   545,   546,   547,
!      548,   549,   550, -1359,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   551,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   552,     0,
!        0,     0,   553,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1219,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   554,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   558,   559,     0, -1267, -1267, -1267,
!    -1267, -1267,     0, -1267, -1267, -1267, -1267, -1267, -1267, -1267,
!    -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267,   552,     0,
!    -1572,   512,   553,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -1359, -1267,     0, -1572, -1572,     0,     0,     0,     0,     0,
+        0,   554,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0, -1572, -1572,     0, -1572,     0,
+        0,     0, -1572,     0,     0,   515,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      555,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,   556,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   516,     0, -1572,     0,   517,   518,
+      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
+      529,     0,   530,   531,   532,   533,   534,   535,   536,   537,
+      555,   538,   539,   540,   541,   542,   543,     0,   544,     0,
+      545,   546,   547,   548,   549,   550, -1572,     0,     0,     0,
+        0,     0,     0,     0,     0,   556,     0,     0,   551,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      558,   559,     0, -1219, -1219, -1219, -1219, -1219,     0, -1219,
+    -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219, -1219,
+    -1219, -1219, -1219, -1219,     0,     0, -1223,   512,     0,     0,
+        0,   552,     0,     0,     0,   553,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0, -1219,     0, -1223,
+    -1223,     0,     0, -1572,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   554,     0,     0,     0,     0,     0,
+        0, -1223, -1223,     0, -1223,     0,     0,     0, -1223,     0,
+        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
+      558,   559,     0, -1359, -1359, -1359, -1359, -1359,     0, -1359,
+    -1359, -1359, -1359, -1359, -1359, -1359, -1359, -1359, -1359, -1359,
+    -1359, -1359, -1359, -1359,     0,     0, -1972,   512,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1359,     0, -1972,
!    -1972,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0, -1972, -1972,     0, -1972,     0,     0,     0, -1972,     0,
+      516,   515, -1223,     0,   517,   518,   519,   520,   521,   522,
+      523,   524,   525,   526,   527,   528,   529,     0,   530,   531,
+      532,   533,   534,   535,   536,   537,     0,   538,   539,   540,
+      541,   542,   543,   555,   544,     0,   545,   546,   547,   548,
+      549,   550, -1223,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   551,     0,     0,     0,   556,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   557,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      516,     0, -1972,     0,   517,   518,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,     0,   530,   531,
!      532,   533,   534,   535,   536,   537,     0,   538,   539,   540,
!      541,   542,   543,     0,   544,     0,   545,   546,   547,   548,
!      549,   550, -1972,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   551,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   552,     0,     0,
!        0,   553,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1223,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      554,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   558,   559,     0, -1572, -1572, -1572, -1572,
!    -1572,     0, -1572, -1572, -1572, -1572, -1572, -1572, -1572, -1572,
!    -1572, -1572, -1572, -1572, -1572, -1572, -1572,   552,     0, -1251,
!      512,   553,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1972,
!    -1572,     0, -1251, -1251,     0,     0,     0,     0,     0,     0,
!      554,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1251, -1251,     0, -1251,     0,     0,
!        0, -1251,     0,     0,   515,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   555,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   516,     0, -1251,     0,   517,   518,   519,
       520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!        0,   530,   531,   532,   533,   534,   535,   536,   537,   555,
!      538,   539,   540,   541,   542,   543,     0,   544,     0,   545,
!      546,   547,   548,   549,   550, -1251,     0,     0,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,   551,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   557,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   558,
!      559,     0, -1223, -1223, -1223, -1223, -1223,     0, -1223, -1223,
!    -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223, -1223,
!    -1223, -1223, -1223,     0,     0,  -851,   512,     0,     0,     0,
!      552,     0,     0,     0,   553,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1223,     0,  -851,  -851,
!        0,     0, -1251,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   554,     0,     0,     0,     0,     0,     0,
!     -851,  -851,     0,  -851,     0,     0,     0,  -851,     0,     0,
!      515,     0,     0,     0,     0,     0,     0,     0,     0,   558,
!      559,     0, -1972, -1972, -1972, -1972, -1972,     0, -1972, -1972,
!    -1972, -1972, -1972, -1972, -1972, -1972, -1972, -1972, -1972, -1972,
!    -1972, -1972, -1972,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0, -1972,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   516,
+        0,  -851,     0,   517,   518,   519,   520,   521,   522,   523,
+      524,   525,   526,   527,   528,   529,     0,   530,   531,   532,
+      533,   534,   535,   536,   537,     0,   538,   539,   540,   541,
+      542,   543,   555,   544,     0,   545,   546,   547,   548,   549,
+      550,  -851,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   551,     0,     0,     0,   556,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   552,     0,     0,     0,
!      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  -851,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0, -1251, -1251, -1251, -1251, -1251,
!        0, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251, -1251,
!    -1251, -1251, -1251, -1251, -1251, -1251, -1122,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0, -1251,
+        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1036,     0,     0,     0,
!    -1122,     0,     0,     0,     0,     0,     0,     0,   806,     0,
!      512,     0,   -11,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   555,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      513,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   556,  1882,     0,     0,    30,     0,     0,
!      514,     0,     0,     0,   515,     0,     0,     0,     0,     0,
!        0,     0,     0,   557,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0, -1122,
!        0,     0,     0, -1122, -1122, -1122, -1122, -1122, -1122, -1122,
!    -1122, -1122, -1122, -1122, -1122, -1122,     0, -1122, -1122, -1122,
!    -1122, -1122, -1122, -1122, -1122,     0, -1122, -1122, -1122, -1122,
!    -1122, -1122,     0, -1122,     0, -1122, -1122, -1122, -1122, -1122,
!    -1122,     0,    31,    32,    33,    34,     1,     0,     0,     0,
!        0,     0,     0, -1122,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   516,     0,     0,    35,   517,   518,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!        0,   530,   531,   532,   533,   534,   535,   536,   537,    36,
!      538,   539,   540,   541,   542,   543,     0,   544,     0,   545,
!      546,   547,   548,   549,   550,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   551,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   558,   559,
!        0,  -851,  -851,  -851,  -851,  -851,     0,  -851,  -851,  -851,
!     -851,  -851,  -851,  -851,  -851,  -851,  -851,  -851,  -851,  -851,
!     -851,  -851,     0,   892,     0,     0, -1122,     0,     0,     0,
!    -1122,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  -851,     0,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0, -1122,
!        0,     0,   809,     0,     0,     0,   861,     0,     0,     0,
!        0,     0,     0,   805,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      552,     0,     0,    38,   553,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   834,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1862,     0,     0,   554,     0,   862,   863,   864,     0,    39,
!        0,     0,     0,     0,    30,    40,     0,     0,     0,     0,
        41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1122,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1122,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1122,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   -11,     0,     0,    36,    37,    44,     0,
!        0,    45,   555,     0,     0,     0,     0, -1862,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
!        0,     0,     0,     0,     0,  1037,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
!        0,  1038,     0,     0,   709,     0,     0,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116, -1122, -1122,
!       38,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1122,     0,   497,     0,   861,     0,     0,     0,     0,     0,
!        0,   805,   117,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   499,     0,     0,    39,     0,     0,   835,
!      836,     0,    40,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0,     0,     0,     0,    42,     0,
!        0,     0,     0,   862,   863,   864,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
!       34,     0,     0,     0,     0,    44,     0,   865,    45,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -1683,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   809,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   500,     0,   117,
!        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,   497,
!        0,   861,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,   866,     0,     0,     0,     0,     0,     0,     0,  2485,
!      499,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   501,     0,     0,    39,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,   502,     0,     0,     0,     0,     0,
!      862,   863,   864,     0,     0,     0,    42,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   503,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,   865,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,     0,     0,    45,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116,     0,   809,   867,     0,     0,     0,     0,
!        0,     0,     0,     0,   500,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,   117,     0,     0,
!        0,     0,     0,     0,     0,    38,   497,     0,   861,     0,
!        0,     0,     0,     0,     0,   805,     0,     0,   866,     0,
!        0,     0,     0,     0, -1683,     0,     0,   499,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   501,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
+        0,   502,     0,     0,     0,     0,     0,   862,   863,   864,
+        0,     0,     0,    42,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   503,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
+        0,   865,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,     0,    35,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!        0,   809,   867,     0,     0,     0,     0,     0,     0,     0,
!        0,   500,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    28,     0,   117,     0,     0,     0,     0,     0,
!        0,     0,    38,   497,     0,   861,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,   866,     0,     0,     0,     0,
!        0,  2447,     0,     0,   499,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
!        0,     0,     0,     0,   862,   863,   864,     0,     0,     0,
!       42,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   503,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
+       33,    34,     0,     0,     0,     0,     0,     0,   865,     0,
+        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
+       45,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
+       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+      110,   111,   112,   113,   114,   115,   116,     0,   809,   867,
+        0,     0,     0,     0,     0,     0,     0,     0,   500,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
+        0,   117,     0,     0,     0,     0,     0,     0,     0,    38,
+      497,     0,   861,     0,     0,     0,     0,     0,     0,   805,
+        0,     0,   866,     0,     0,     0,     0,     0,  2478,     0,
+        0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   501,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
+        0,     0,     0,     0,     0,   502,     0,     0,     0,     0,
+        0,   862,   863,   864,     0,     0,     0,    42,     0,     0,
+       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,   865,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,    35,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,     0,   809,   867,     0,     0,     0,
!        0,     0,     0,     0,     0,   500,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    28,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,    38,   497,     0,   861,
!        0,     0,     0,     0,     0,     0,   805,     0,     0,   866,
!        0,     0,     0,     0,     0,  2480,     0,     0,   499,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
!        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
!        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
!        0,     0,   502,     0,     0,     0,     0,     0,   862,   863,
!      864,     0,     0,     0,    42,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   503,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,   865,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,     0,     0,    45,     0,    35,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
!       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
!       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
!       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
!       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
!       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,     0,   809,   867,     0,     0,     0,     0,     0,     0,
!        0,     0,   500,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    28,     0,   117,     0,     0,     0,     0,
!        0,     0,     0,    38,   497,     0,   861,     0,     0,     0,
!        0,     0,     0,   805,     0,     0,   866,     0,     0,     0,
!        0,     0,  2482,     0,     0,   499,     0,   512,     0,     0,
!        0,     0,     0,     0,     0,     0,   501,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,   502,
!        0,     0,     0,     0,     0,   862,   863,   864,     0,     0,
!        0,    42,     0,     0,    30,     0,     0,     0,     0,     0,
!        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,   865,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!      516,    45,     0,    35,   517,   518,   519,   520,   521,   522,
!      523,   524,   525,   526,   527,   528,   529,     0,   530,   531,
!      532,   533,   534,   535,   536,   537,    36,   538,   539,   540,
!      541,   542,   543,     0,   544,     0,   545,   546,   547,   548,
!      549,   550, -1124,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   551,     0,     0,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,   809,
!      867,     0,     0,     0,     0,     0,     0,     0,     0,   500,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   117,     0,     0,     0,     0,   552,     0,     0,
!       38,   553,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   866,     0,     0,     0,     0,     0,  2682,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      554,     0,     0,   501,     0,     0,    39,     0,     0,     0,
+        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
+        0,     0,     0,     0,     0,     0,   502,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   503,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,  2201,     0,     0,     0,     0,
+        0,     0,   805,     0,     0,    44,     0,     0,    45,   555,
+        0,     0,     0,     0,   806,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   557,     0,     0,     0,     0,     0,
+        0,     0,     0,    30,    46,    47,    48,    49,    50,    51,
+       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
+       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
+      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+      112,   113,   114,   115,   116,     0,     0,   867,    31,    32,
+       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   117,
+        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    36,  2809,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   558,
+      559,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,  2105,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  2201,     0,     0,
!        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,   806,     0,   512,     0,
!        0,     0,     0,     0,     0,   812,   813,     0,     0,     0,
!        0,     0,     0,     0,   814,  2449,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
+        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   516,     0,     0,    35,   517,   518,   519,   520,   521,
!      522,   523,   524,   525,   526,   527,   528,   529,     0,   530,
!      531,   532,   533,   534,   535,   536,   537,    36,   538,   539,
!      540,   541,   542,   543,     0,   544,     0,   545,   546,   547,
!      548,   549,   550, -1141,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   551,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   552,     0,
!        0,    38,   553,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
!    -1141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   554,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!      555,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   556,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
+       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,  2201,
+        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
+      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
+      512,     0,     0,     0,     0,     0,     0,   812,   813,     0,
+        0,     0,     0,     0,     0,     0,   814,  2489,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      558,   559,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1141,     0,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,   515,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   516,     0,     0,    35,   517,   518,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!        0,   530,   531,   532,   533,   534,   535,   536,   537,    36,
!      538,   539,   540,   541,   542,   543,     0,   544,     0,   545,
!      546,   547,   548,   549,   550,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   551,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      552,     0,     0,    38,   553,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
!        0,     0, -1144,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   554,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,   555,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
!      811,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!      806,     0,   512,     0,     0,     0,     0,     0,     0,   812,
!      813,     0,     0,     0,     0,     0,     0,     0,   814,  2515,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1144,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,   515,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   516,     0,     0,    35,   517,
!      518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,     0,   530,   531,   532,   533,   534,   535,   536,
!      537,    36,   538,   539,   540,   541,   542,   543,     0,   544,
!        0,   545,   546,   547,   548,   549,   550,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   551,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   552,     0,     0,    38,   553,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   554,     0,     0,     0,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
+        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,   555,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   556,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,     0,   811,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
+        0,     0,   806,     0,   512,     0,     0,     0,     0,     0,
+        0,   812,   813,     0,     0,     0,     0,     0,     0,     0,
+      814,  1250,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   558,   559,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,  1677,     0,     0,     0,
+        0,    30,     0,     0,     0,     0,     0,     0,   515,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   516,     0,     0,
+       35,   517,   518,   519,   520,   521,   522,   523,   524,   525,
+      526,   527,   528,   529,     0,   530,   531,   532,   533,   534,
+      535,   536,   537,    36,   538,   539,   540,   541,   542,   543,
+        0,   544,     0,   545,   546,   547,   548,   549,   550,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   551,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   552,     0,     0,    38,   553,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   554,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,   555,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   556,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,     0,   811,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,     0,   806,     0,   512,     0,     0,     0,
!        0,     0,     0,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,   814,  1832,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   558,   559,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  2105,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
!      515,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   516,
!        0,     0,    35,   517,   518,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,     0,   530,   531,   532,
!      533,   534,   535,   536,   537,    36,   538,   539,   540,   541,
!      542,   543,     0,   544,     0,   545,   546,   547,   548,   549,
!      550,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   551,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   552,     0,     0,    38,
!      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,   555,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   556,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   557,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
+        0,     0,     0,     0,     0,     0,   806,     0,     0,     0,
+        0,     0,     0,     0,     0,   812,   813,   512,     0,   -11,
+        0,     0,     0,     0,   814,  2462,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   558,   559,
+        0,     0,     0,     0,     0,     0,     0,   513,     0,     0,
+    -1147,     0,     0,     0,     0,    30,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   514,     0,     0,
+        0,   515,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
+      516,     0,     0,     0,   517,   518,   519,   520,   521,   522,
+      523,   524,   525,   526,   527,   528,   529,    36,   530,   531,
+      532,   533,   534,   535,   536,   537,     0,   538,   539,   540,
+      541,   542,   543,     0,   544,     0,   545,   546,   547,   548,
+      549,   550,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   551,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    38,     0,     0,     0,     0,     0,   552,     0,     0,
+        0,   553,     0,     0,   810,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!      554,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
+      -11,     0,     0,     0,     0,     0,     0,     0,     0,   555,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   556,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   557,    46,    47,    48,    49,    50,
+       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
+      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
+      512,     0,     0,     0,     0,     0,     0,   812,   813,     0,
+        0,     0,     0,     0,     0,     0,   814,  2464,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   558,
!      559,     0,     0,     0,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,   515,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   516,     0,     0,    35,   517,   518,   519,
!      520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
!        0,   530,   531,   532,   533,   534,   535,   536,   537,    36,
!      538,   539,   540,   541,   542,   543,     0,   544,     0,   545,
!      546,   547,   548,   549,   550,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   551,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      552,     0,     0,    38,   553,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   554,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!     2096,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,   555,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   556,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   557,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
!      811,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!      806,     0,   512,     0,     0,     0,     0,     0,     0,   812,
!      813,     0,     0,     0,     0,     0,     0,     0,   814,  2506,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   558,   559,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,   515,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   516,     0,     0,    35,   517,
!      518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
!      528,   529,     0,   530,   531,   532,   533,   534,   535,   536,
!      537,    36,   538,   539,   540,   541,   542,   543,     0,   544,
!        0,   545,   546,   547,   548,   549,   550,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   551,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   552,     0,     0,    38,   553,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   554,     0,     0,     0,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
+        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
!        0,     0,  2327,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,     0,     0,    45,   555,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   556,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,     0,   811,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!        0,     0,   806,     0,   512,     0,     0,     0,     0,     0,
!        0,   812,   813,     0,     0,     0,     0,     0,     0,     0,
!      814,  2661,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   558,   559,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    30,     0,     0,     0,     0,     0,     0,   515,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   516,     0,     0,
+       35,   517,   518,   519,   520,   521,   522,   523,   524,   525,
+      526,   527,   528,   529,     0,   530,   531,   532,   533,   534,
+      535,   536,   537,    36,   538,   539,   540,   541,   542,   543,
+        0,   544,     0,   545,   546,   547,   548,   549,   550, -1343,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   551,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   552,     0,     0,    38,   553,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   554,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,   555,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   556,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   557,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,     0,   811,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,     0,   806,     0,   512,     0,     0,     0,
!        0,     0,     0,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,   814,  2663,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   558,   559,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
!      515,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   516,
!        0,     0,    35,   517,   518,   519,   520,   521,   522,   523,
!      524,   525,   526,   527,   528,   529,     0,   530,   531,   532,
!      533,   534,   535,   536,   537,    36,   538,   539,   540,   541,
!      542,   543,     0,   544,     0,   545,   546,   547,   548,   549,
!      550,  1984,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   551,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   552,     0,     0,    38,
!      553,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   554,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,   555,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   556,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   557,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
+        0,     0,     0,     0,     0,     0,   806,     0,   512,     0,
+        0,     0,     0,     0,     0,   812,   813,     0,     0,     0,
+        0,     0,     0,     0,   814,  2669,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   558,   559,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
!        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   516,     0,     0,    35,   517,   518,   519,   520,   521,
+      522,   523,   524,   525,   526,   527,   528,   529,     0,   530,
+      531,   532,   533,   534,   535,   536,   537,    36,   538,   539,
+      540,   541,   542,   543,     0,   544,     0,   545,   546,   547,
+      548,   549,   550,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   551,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   552,     0,
!        0,    38,   553,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   554,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!      555,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   556,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   557,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
+      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
+        0,     0,     0,     0,     0,     0,     0,   812,   813,     0,
+        0,     0,     0,     0,     0,     0,   814,  2695,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      558,   559,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,   923,
!      811,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
!     1635, -1774,     0,     0,     0,     0,     0,  2391,   805,     0,
!        0,     0,   117,     0,  2392,     0,     0,     0,  1008,     0,
!      806,     0,     0,     0,     0,     0,     0,     0,     0,   812,
!      813,     0,     0,     0,     0,     0,     0,     0,   814,  2804,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,  1009,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  2393,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1025,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,     0,     0,    45,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1026,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,   923,   811,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,  1635, -1774,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!     1008,     0,   806,     0,     0,  1010,  1636,  1637,  1638,  1639,
!     1640,   812,   813,     0,     0,     0,     0,     0,     0,     0,
!     2394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
!        0,     0,     0,     0,     0,     0,  1009,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,    39,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,   923,   811,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,  1635, -1774,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,  1008,     0,   806,     0,     0,  1010,  1636,  1637,
!     1638,  1639,  1640,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,  1011,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
+       33,    34,     0,     0,     0,     0,     0,     0,  1009,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1774,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
+        0,     0,     0,     0,     0, -1774,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
!        0,     0,     0,     0,     0, -1774,  1635, -1774,     0,     0,
!        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,   806,     0,     0,  1010,
!     1636,  1637,  1638,  1639,  1640,   812,   813,     0,     0,     0,
!        0,     0,     0,     0,  2394,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!     1009,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,     0, -1774,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
!        0,     0,     0,     0,     0,     0,     0, -1774,  1635, -1774,
!        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
!      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
!        0,  1623,  1636,  1637,  1638,  1639,  1640,   812,   813,     0,
!        0,     0,     0,     0,     0,     0,  2071,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,  1009,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
!      811,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
!     1635, -1774,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!      806,     0,     0,  1623,  1636,  1637,  1638,  1639,  1640,   812,
!      813,     0,     0,     0,     0,     0,     0,     0,  2605,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,  1009,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,     0,     0,    45,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,     0,   811,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,  1635, -1774,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!        0,     0,   806,     0,     0,  1623,  1636,  1637,  1638,  1639,
!     1640,   812,   813,     0,     0,     0,     0,     0,     0,     0,
!     2607,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
!        0,     0,     0,     0,     0,     0,  1009,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,    39,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,     0,   811,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,  1635, -1774,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,     0,   806,     0,     0,  1623,  1636,  1637,
!     1638,  1639,  1640,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,   814,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
+       33,    34,     0,     0,     0,     0,     0,     0,  1009,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1774,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
+        0,     0,     0,     0,     0, -1774,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
!        0,     0,     0,     0,     0, -1774,  1635, -1774,     0,     0,
!        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,   806,     0,     0,  1623,
!     1636,  1637,  1638,  1639,  1640,   812,   813,     0,     0,     0,
!        0,     0,     0,     0,  2755,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
+     1009,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0, -1774,     0,     0,    39,     0,     0,
+        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
+        0,     0,     0,     0,     0,     0,     0, -1774,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,   923,   811,     0,
!        0,     0,     0,     0,     0,     0,     0, -1774,     0, -1774,
!        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
!      117,     0,     0,     0,     0,     0,  1008,     0,   806,     0,
!        0,  1623,  1636,  1637,  1638,  1639,  1640,   812,   813,     0,
!        0,     0,     0,     0,     0,     0,  2759,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
+        0,     0,  1009,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,  1025,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1026,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
+       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+      109,   110,   111,   112,   113,   114,   115,   116,    28,   923,
+      811,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
+        0, -1774,     0,     0,     0,     0,     0,     0,   805,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,  1008,     0,
+      806,     0,     0,  1010,     0,     0,     0,     0,     0,   812,
+      813,     0,     0,     0,     0,     0,     0,     0,  1011,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  2099,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,  1009,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
+        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,     0,     0,    45,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,   923,   811,     0,     0,     0,     0,     0,     0,     0,
!        0, -1774,     0, -1774,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!     1008,     0,   806,     0,     0,  1010,     0,     0,     0,     0,
!        0,   812,   813,     0,     0,     0,     0,     0,     0,     0,
!     1011,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
+        0,     0,     0,     0,     0,     0,  1009,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,   923,   811,     0,     0,     0,     0,     0,
!        0,     0,     0, -1774,     0, -1774,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,  1008,     0,   806,     0,     0,  1010,     0,     0,
!        0,     0,     0,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,  1011,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,  1009,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
!        0,     0,     0,     0,     0,     0,     0,     0, -1774,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1774,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
!        0,     0,     0,     0,     0, -1774,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
!        0,     0,     0,     0,     0, -1774,     0, -1774,     0,     0,
!        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,   806,     0,     0,  1623,
!        0,     0,     0,     0,     0,   812,   813,     0,     0,     0,
!        0,     0,     0,     0,  1624,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
+     1009,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,     0, -1774,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
!        0,     0,     0,     0,     0,     0,     0, -1774,     0, -1774,
!        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
!      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
!        0,  1623,     0,     0,     0,     0,     0,   812,   813,     0,
!        0,     0,     0,     0,     0,     0,  1632,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,  1009,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1774,     0,     0,     0,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   497,     0,   498,
!        0,     0,     0,    38,     0,     0,  1210,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   810,     0,   499,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1774,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0, -1774,
!        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
        37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,     0,
!      811,     0,   500,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   117,    38,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,  1623,     0,     0,  2535,     0,     0,   812,
+      813,     0,     0,     0,     0,     0,     0,     0,   814,     0,
+        0,     0,     0,     0,     0,     0,   501,     0,     0,    39,
+        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
+       41,     0,     0,     0,     0,     0,     0,     0,     0,   502,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
!     2536,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  2530,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!      806,     0,     0,     0,     0,     0,     0,     0,     0,  1214,
!     1215,     0,     0,     0,     0,     0,     0,     0,  1216,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   809,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
+        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,  2531,     0,    42,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
+       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+       28,     0,   811,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      805,     0,     0,     0,   117,     0,     0,     0,     0,     0,
+        0,     0,   806,     0,     0,     0,     0,     0,     0,     0,
+        0,   812,   813,     0,     0,     0,     0,     0,     0,     0,
+      814,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
+        0,     0,     0,     0,     0,     0,   807,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   808,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   809,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,     0,   811,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  2201,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,     0,   806,     0,     0,     0,     0,     0,
!        0,     0,     0,   812,   813,     0,     0,     0,     0,     0,
!        0,     0,   814,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
*************** static const yytype_int16 yytable[] =
*** 6762,9211 ****
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   820,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
-        0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     1962,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0, -1713, -1713,     0,     0,     0,     0,     0,     0,
-    -1713,     0,    42,     0,     0,    43,     0,     0,     0,     0,
-        0,     0, -1713,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       30,     0,     0,     0,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,    31,    32,    33,    34,     0,
-        0,     0,     0,     0,     0,   773,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
-        0,     0,     0,     0,     0,     0,   821,   822,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   884,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   796,     0,     0,     0,
-        0,     0,     0,     0,     0,     0, -1713,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1713,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1713,     0,     0,    38,     0,     0,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1713,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      499,     0,     0,     0,     0,     0,     0,     0,   792,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
-      793,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
-        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
-       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-      112,   113,   114,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
!        0,     0,     0,     0, -1713, -1713,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1927,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   502,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
!        0,     0,     0,     0,     0,    37,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   792,   820,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   793,
!        0,     0,     0,     0,     0,     0,     0,     0,   503,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  1928,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    40,     0,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   505,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
-        0,    43,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-      114,  1929,     0,   796,     0,  1348,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   821,   822,    37,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   820,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       38,     0,     0,     0,     0,     0,    39,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   792,     0,    42,     0,     0,
-       43,     0,     0,     0,     0,     0,     0,   793,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,  1349,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    30,     0,     0,     0,    44,
-       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-        0,   821,   822,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   819,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   796,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
-        0,     0,    37,     0,     0,     0,     0,   888,     0,     0,
-        0,     0,     0,     0,   792,   820,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   793,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
-        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
        32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
         0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,     0,     0,
!      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   821,
!      822,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   820,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   792,     0,    42,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,    44,    45,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,   821,   822,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,   932,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   796,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    28,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   792,   820,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   793,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
-        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,     0,  1507,   796,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,   821,   822,    37,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      792,   820,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   793,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
-       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,    43,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,     0,     0,   796,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       28,     0,     0,     0,     0,   821,   822,    37,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
!      820,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   793,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     1817,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,     0,  1951,   796,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
-        0,     0,     0,     0,   821,   822,    37,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   792,   820,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      793,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    38,     0,     0,     0,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
-        0,     0,    43,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,     0,     0,   796,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
!        0,     0,     0,   821,   822,    37,   793,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   820,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
-        0,    43,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   876,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   820,     0,     0,     0,     0,     0,
!        0,    28,   821,   822,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   845,     0,     0,     0,    38,     0,     0,
!      846,     0,     0,    39,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   847,   848,   849,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    36,     0,     0,    44,    45,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   821,   822,
!        0,     0,     0,     0,  1358,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    40,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   304,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1721,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,     0,  1359,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,    37,     0,     0,   499,   845,     0,     0,
!        0,     0,     0,     0,   846,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   501,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   847,   848,   849,     0,  1830,
!        0,    40,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    41,     0,     0, -1721,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,   850,
-        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
-        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0, -1721,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
-       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   109,   110,   111,   112,   113,   114,  1831,
-      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      502,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
-        0,    37,     0,     0,   499,   845,     0,     0,     0,     0,
-        0,     0,   846,     0,   851,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   501,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   503,     0,     0,    38,     0,     0,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   504,     0,     0,
-        0,     0,     0,   847,   848,   849,     0,     0,     0,    40,
-        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   505,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
-       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-      108,   109,   110,   111,   112,   113,   114,   852,   796,    28,
-        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   851,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   503,     0,     0,    38,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,     0,    30,     0,
!        0,     0,     0,     0,     0,   504,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   505,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    42,     0,     0,    43,     0,     0,     0,   304,
-        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0, -1721,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   852,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  1830,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    41,     0,     0, -1721,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    28,   907,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0, -1721,
-        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
-       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-      114,  1831,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   908,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
-        0,     0,     0,   909,     0,     0,     0,   910,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       38,     0,     0,    28,     0,     0,    39,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   792,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,     0,   793,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
        34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      911,   795,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,   796,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   797,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!       30,    39,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
-        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,    36,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  1483,     0,    44,    45,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   798,    28,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!     1484,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   304,     0,    36,  1485,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   911,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,    30,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  1830,     0,
!       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,    36,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,  1831,    28,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
-        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1830,     0,    40,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
-        0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,  1831,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
-        0,     0,     0,     0,     0,    37,     0,     0,   499,   921,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   501,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    40,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,    43,     0,     0,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   949,   796,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   502,     0,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   499,  2256,     0,     0,     0,
!        0,     0,  1501,    37,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   503,     0,     0,    38,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   504,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   505,     0,     0,     0,     0,     0,     0,
         0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    35,     0,     0,     0,    42,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   502,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
-       37,     0,   499,  1904,     0,     0,     0,     0,     0,     0,
-     2688,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   501,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   503,     0,     0,    38,     0,     0,     0,
-        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   504,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
-        0,  2257,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    42,     0,     0,    43,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
-       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-      109,   110,   111,   112,   113,   114,   796,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   502,     0,    28,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   499,
-      500,     0,     0,     0,     0,     0,     0,    37,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      503,     0,     0,    38,     0,     0,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   504,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   505,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
-       42,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   502,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,    37,     0,   499,   921,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   501,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   503,     0,     0,
!       38,     0,     0,     0,     0,     0,    39,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      504,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    40,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
-       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
-       43,     0,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      796,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      502,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,   499,  1904,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   501,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,   503,     0,     0,    38,     0,     0,
-        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   504,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
-        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   505,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   796,    28,     0,
!        0,     0,     0,     0,     0,     0,     0,   502,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1791,     0,     0,     0,    37,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   503,     0,     0,    38,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,   504,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   505,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,    43,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
!        0,     0,     0,   745,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       38,     0,     0,     0,     0,     0,    39,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
!       43,     0,    35,     0,  2492,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   701,     0,     0,     0,     0,     0,    44,
!       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   872,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
!        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   746,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1198,  1199,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    38,     0,     0,     0,     0,     0,    39,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   955,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   872,     0,    42,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,    44,    45,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     1399,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
-       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    43,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,  2475,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   872,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  2476,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
-        0,  2585,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,    43,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    37,     0,    29,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
-        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    40,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
-       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
-        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,    28,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   831,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
-        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    37,     0,     0,     0,     0,
!        0,     0,     0,     0,   872,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    40,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,    43,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    40,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,   903,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    42,     0,     0,    43,     0,     0,
-        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,    45,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    37,     0,     0,
!        0,     0,   919,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,    39,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    40,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       42,     0,     0,    43,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,    45,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
-        0,     0,     0,    37,     0,     0,   937,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    40,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,    43,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   796,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  1472,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    40,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
!        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,  1863,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,     0,     0,     0,    39,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    40,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,    43,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-      113,   114,    28,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,  2034,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
!        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,    28,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    37,     0,
!     2241,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
-       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    40,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,    42,     0,     0,    43,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,    45,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,    28,   907,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       38,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
        33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
-       43,     0,     0,     0,     0,     0,    36,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
-       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       37,     0,  2613,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
-        0,     0,    39,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    40,    30,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    43,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,    45,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,    28,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    37,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,     0,     0,     0,    39,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
-        0,     0,    43,     0,     0,     0,     0,     0,    36,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,     0,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,    37,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       40,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,    43,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,    45,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   796,    28,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,    42,     0,     0,    43,     0,     0,     0,     0,
-        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,    44,    45,    46,    47,    48,    49,
-       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-      110,   111,   112,   113,   114,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,    39,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1214,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  1215,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
-        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,  1216,  1217,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,  1218,     0,  1219,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1220,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  1221,     0,
!        0,  1222,     0,  1223,     0,     0,     0,  1224,  1225,     0,
!        0,  1226,     0,     0,     0,  1227,     0,     0,     0,  1228,
!     1229,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1230,     0,     0,     0,     0,     0,  1231,     0,     0,     0,
!        0,     0,     0,  1232,     0,     0,  1233,     0,     0,     0,
!     1234,     0,     0,     0,  1235,  1236,     0,     0,  1237,     0,
!     1238,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1239,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1240,  1241,     0,
!        0,  1242,  1243,  1244,  1245,  1246,  1247,  1248,     0,     0,
!        0,     0,     0,     0,     0,  1249,     0,     0,     0,     0,
!     1250,  1251,  1252,  1253,     0,     0,  1254,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1255,  1256,     0,  1257,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  1258,  1259,  1260,  1261,  1262,  1263,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1264,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1265,  1266,  1267,  1268,     0,     0,     0,     0,  1269,
!     1270,  1271,     0,  1272,     0,     0,  1273,  1274,  1275,  1276,
!     1277,     0,  1278,     0,  1279,     0,     0,     0,     0,  1280,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  1281,
!     1282,  1283,     0,     0,     0,     0,     0,     0,     0,     0,
!     1284,     0,  1285,  1286,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1287,     0,     0,     0,  1288,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1289,  1290,  1291,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1292,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,  1293,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1294,  1295,     0,     0,     0,     0,     0,     0,  1296,  1297,
!        0,  1298,     0,     0,     0,  1299,     0,     0,     0,  1300,
!     1301,     0,     0,  1302,  1303,     0,     0,     0,     0,     0,
!     1304,     0,     0,  1305,  1306,  1307,  1308,  1309,  1310,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  1311,
!        0,     0,     0,     0,     0,  1312,     0,     0,     0,     0,
!        0,     0,     0,  1313,  1314,     0,     0,  1315,  1316,     0,
!     1317,  1318,  1319,     0,  1320,     0,     0,  1321,     0,     0,
!        0,     0,     0,  1322
  };
  
  static const yytype_int16 yycheck[] =
  {
!      126,   127,   309,    14,    15,   533,   545,   558,   588,  1030,
!      534,   236,   679,   705,   706,   727,   527,   467,   898,   906,
!      774,   465,   338,   878,   887,  1137,   748,   820,  1081,  1126,
!      558,   542,   158,   159,   160,  1059,   512,  1084,   382,   550,
!      269,   561,   913,    15,   971,   561,   999,   354,     1,   600,
!      176,   887,   561,     1,   981,  1912,   990,    45,   851,  1567,
!     1568,    18,    47,   970,    50,   191,   291,    47,    45,     1,
!       47,    23,   600,    22,    47,    17,    44,   306,   564,    47,
!     1141,    44,    20,    21,    18,   354,     1,   537,    18,    32,
!      916,    50,  1458,    58,   208,  1002,    34,    35,    36,    57,
!      209,    18,    18,    41,   800,    22,    22,  1619,   234,   920,
!       42,    43,    33,   159,    12,     3,   268,    43,    50,   994,
!      732,  1028,  1651,  1652,    50,   645,   361,   144,    30,   645,
!       62,  1669,  1156,   144,  1061,    31,   645,    31,   371,    31,
!        7,    50,     9,    10,    11,    42,    43,    49,    30,    23,
!       60,    25,   520,    50,    56,   194,    42,    43,   301,    30,
!       62,   529,   174,   363,    50,    62,  1492,  1003,   218,  1495,
!      538,   124,   144,  1872,   316,    31,    62,   242,   240,   230,
!       31,   549,   231,     7,   421,     9,    10,    11,   532,   209,
!      174,   498,   246,  1425,  1426,   749,    98,   751,   350,   240,
!      184,    17,   436,   240,   648,   331,   549,    30,   379,   258,
!       31,   195,   519,   520,   340,   522,   523,   253,   525,    44,
!       31,   528,   529,   317,   523,   529,    49,   534,   253,   394,
!      537,   538,   600,    56,   538,  1348,  1349,    54,   545,    62,
!      547,    58,   549,   174,   551,   418,   553,    43,   143,   556,
!      424,   246,   377,   184,   394,   799,   600,   383,   384,   378,
!       62,   338,   258,   195,   195,   317,   350,   281,  2385,   377,
!      240,   336,    50,  1386,   281,    98,   326,   286,   547,   830,
!      418,  2398,   184,   421,   339,   214,   308,   488,     1,   739,
!      106,  1833,   418,   600,   359,    30,   600,   231,   162,   425,
!     1878,   203,   830,   550,   293,   431,   324,   459,   434,   435,
!       23,   893,  2113,   657,    49,   441,   371,   339,  1431,   355,
!      902,    56,   333,   874,   258,   195,   246,    62,   454,  1200,
!      355,   240,   316,     0,   581,   371,   233,   463,   349,   353,
!      466,  1707,   494,  2144,   470,   201,   874,   431,  1372,   550,
!      162,   168,   525,   935,   878,   364,   374,   257,   376,   288,
!      942,  1939,    23,    98,  2165,  1943,   308,  1479,   445,   143,
!      240,    23,   883,   912,   125,   198,   199,   200,   437,    31,
!       42,    43,   184,   502,   195,   316,   989,   436,   899,   284,
!       51,   207,   544,   218,  1507,   998,   505,   339,   463,   464,
!      540,    31,   126,   127,   220,   396,   327,   581,   338,   463,
!      258,   227,   646,   507,   346,   586,   558,   213,   652,   316,
!      284,   586,   214,  1177,  1178,  1179,   335,  1793,   393,  1971,
!      555,   480,   669,   338,  2551,   476,  1802,   913,   463,  1805,
!     1347,   477,   357,   176,   177,   789,   338,   555,   586,   346,
!     1357,   819,   477,   821,   822,   507,   279,   825,   512,   659,
!      346,   262,   240,   198,   199,   200,    31,   700,   400,   371,
!     1341,   371,   284,    42,    43,   371,   819,   650,   651,    42,
!       43,    50,   379,   380,   480,   505,   525,    50,   550,    42,
!       43,   423,   308,    62,   380,  1162,   288,    50,   319,    62,
!      551,   293,   436,   400,  2203,   774,  1377,   377,   218,  1875,
!      284,  2023,   819,   550,   400,  1211,   367,   512,   825,   887,
!      230,   825,  1134,   339,   195,   651,   423,   653,  2066,   836,
!      215,   433,   581,   840,   878,   467,   586,   836,   550,   433,
!      586,   506,  1417,   850,   279,  1452,   480,   690,   371,   856,
!      373,   433,  1878,   445,  1920,   371,   472,   335,  1511,   415,
!      246,   377,   433,   689,   932,   933,   550,   488,  1431,   443,
!      467,   878,   350,   725,   462,   882,  1463,   884,   504,   586,
!      815,   467,   267,   709,   710,   581,   712,   931,   714,   932,
!      704,   700,   512,  1500,   492,   586,  1523,   586,   503,  1696,
!     1154,   908,   425,   910,   730,   564,  1160,   550,   424,   916,
!      433,   737,  1423,   765,   430,  1676,   326,   574,   925,   550,
!      562,  1484,   587,   521,   522,   932,   933,  1561,   586,   933,
!     1537,   525,   480,  1567,  1568,   700,   371,   453,   373,   506,
!      550,   550,   434,   950,   574,   797,   463,   581,  1484,  1017,
!     1882,  1883,  1884,   623,  1022,   550,   925,  1107,  1484,   574,
!     1523,   558,   478,   376,   233,  1209,  1210,   684,   820,   586,
!      586,   688,   689,   690,   691,   692,   693,   550,  1022,  1023,
!     1024,  1025,   506,   583,   346,   555,   647,   488,   637,   505,
!      425,  1141,  1599,   353,   682,   210,   676,   682,   433,   851,
!      516,   674,   420,  1610,  1817,   682,   674,     4,   694,   695,
!     1017,   674,   664,  1017,   488,  1022,   700,   703,  1022,   535,
!      637,   637,   393,   383,   694,   695,   696,   697,   698,   336,
!      594,  1242,  1399,   581,   419,  1692,   537,   294,   400,   555,
!      518,   474,   307,   700,   608,   561,   562,   700,   434,   613,
!      614,   903,   700,   474,  2611,   476,   474,   573,   395,   253,
!      624,   423,   694,   695,   702,   581,   700,   253,   584,   327,
!      494,   703,   550,  2281,  2282,   213,   550,   346,  2490,  2491,
!     2492,   403,   594,   346,   421,   687,   688,   689,   690,   691,
!      692,   693,   357,   346,   586,  1842,   608,   694,   695,  1373,
!     1351,   613,   614,   231,   369,   467,   703,   531,   694,   695,
!      379,   380,   624,   195,   169,   887,  1336,  1133,     1,   550,
!     1336,   481,   350,  1351,    42,    43,   512,  1336,   701,    42,
!       43,   400,    50,  1669,  2509,   506,   700,   400,  1951,   524,
!      195,   551,   479,   574,    62,   214,   371,   400,  1324,   265,
!     2216,   175,   474,   513,   423,   462,   371,     1,   240,   194,
!      423,   355,    14,    15,   687,   318,    31,   552,  1137,   355,
!      286,    42,    43,  1447,   402,  1144,   586,  1146,     0,    50,
!      445,   704,   324,   844,   700,    50,  1460,   222,   574,  1469,
!     1197,    62,    14,    15,    16,  1202,  2008,   335,   467,    43,
!      201,  1425,  1426,   431,   467,   206,    50,   432,  1060,   434,
!     1062,   468,  1819,   228,   467,    59,   587,   370,  1942,   288,
!      103,  1828,   640,   194,  1153,    31,   242,   485,   565,  1081,
!      245,   232,  1058,    31,   376,  1509,  2465,  1063,   366,   900,
!     1066,  1067,   324,  1069,  1455,   568,  1520,   958,    43,   586,
!     2479,   222,   687,  1079,   269,    50,   513,  1560,  2633,  1085,
!      583,  1087,  2637,   395,  1567,  1568,  1569,  1119,  1711,  1712,
!     1713,  1415,  1340,  1346,  1418,   597,     0,  1103,  1104,   465,
!     2077,  1349,  2079,   477,   353,  2514,   958,  1113,  1895,   421,
!     2498,   477,  2500,  1366,   318,   377,  1750,  1751,  1752,  1753,
!       52,    53,    31,   174,  1130,    57,  1482,  1964,  1965,  1382,
!      223,  1918,  1919,   184,  1736,    42,    43,  1385,  1386,  1363,
!      336,   549,  1602,    50,   195,  1880,  1881,   184,   586,   198,
!      199,   200,  1985,  1340,  1961,    62,  1340,  1704,  2766,   194,
!     1947,  1348,  1349,   359,  1196,  1349,   370,   307,  2760,  2761,
!     1957,  2779,  1538,  1360,  1361,  2008,   371,  1430,  2587,   203,
!      375,   218,  1794,  1431,  2177,  1137,   421,   222,   700,  1413,
!     1621,   386,  1379,   218,  1146,   186,  1383,  1384,  1385,  1386,
!     1812,  1385,  1386,  2196,  2197,   230,  1393,  2453,  2617,     0,
!     2456,   286,   700,  1621,   201,    31,   184,   357,  1961,   206,
!      207,   125,  1588,   155,   281,    16,   217,    43,   203,   369,
!      279,  2224,   838,   414,   415,   203,  1484,   586,  1425,  1426,
!      297,  2650,   231,    31,  1431,   694,   695,  1431,   346,  1615,
!     1499,   694,   695,   346,   703,  1508,   862,     0,  1506,  1507,
!      703,  1448,    50,   503,  1513,   316,  1453,   463,   464,  2262,
!        8,  1458,   296,    16,    50,  1523,    31,  2686,   353,   474,
!      475,   283,   339,   889,   685,   686,    62,   649,    43,   619,
!      620,  1478,   224,   555,   489,   346,   491,  1484,   660,   374,
!      371,   326,   400,   704,   228,   445,  1929,   400,   383,  1458,
!      633,   634,   685,   686,  1501,   432,  2249,   434,   641,  1506,
!     1507,   245,  1506,  1507,   373,   423,    43,   284,   934,    31,
!     2691,   704,  1492,    50,   657,  1495,  1523,  2698,  1154,  2700,
!     1527,    43,  1529,  1530,  1160,   269,  1676,  2324,    50,   400,
!     2596,  2597,   645,  2599,   786,    43,   343,   789,   383,   384,
!      700,  1548,    50,     6,   685,   686,   104,   105,    31,   467,
!     1618,   109,   423,   111,    93,    94,   425,   115,   116,    31,
!      118,   119,   411,   704,   520,   123,   581,    37,  2749,    39,
!       40,   601,   528,   529,   418,  1504,  1827,   607,   685,   686,
!      243,   537,   538,   685,   686,  1514,   481,    31,  2195,   619,
!      620,   547,  2085,   549,   213,   551,   467,   704,   550,  1827,
!      352,  2750,   704,     5,  2753,  2754,    43,   414,   415,   549,
!      550,  1618,  1464,   856,  1618,   101,   102,   103,   513,   346,
!      700,    38,  1629,    40,     0,  2232,   101,   371,   103,     5,
!        6,   375,    43,  1677,  1820,  2288,   700,  2290,    14,    15,
!       16,   700,   386,  1829,   600,   694,   695,   696,   697,   700,
!     1694,  1023,  1024,  1025,  2288,   704,  1880,  1881,  1882,  1883,
!     1884,  2224,   432,   700,   434,   692,  2221,  2222,  2223,   696,
!      697,   698,    23,   400,    25,   694,   695,  2284,  1889,   550,
!      474,  2747,   476,  1986,    58,   700,  1989,   694,   695,   696,
!      697,   696,   697,  1709,   446,  2507,   423,   700,   256,    62,
!     1707,   685,   686,   383,   384,  2008,   551,   688,   689,   690,
!      691,   692,   693,   211,   212,  1901,   598,   102,   103,   696,
!      697,    22,    23,   685,   686,   298,   299,  1871,  2008,  2096,
!      474,   475,   700,  2187,  1207,  1208,  2323,  2534,  1707,   700,
!      467,   586,  1397,  1398,   436,   489,   700,   491,  2701,  2702,
!      700,   633,   634,   635,   700,   175,   700,   700,   700,   641,
!      283,   700,  1948,  1770,    31,  1772,    31,    31,  1775,    31,
!       31,    31,  1779,   655,   656,   657,    31,  1784,    31,   700,
!     1787,  1788,  1789,  1790,  1636,  1792,  1793,   486,     1,  1975,
!     1797,  1798,  2513,  1800,   700,  1802,  1648,  1649,  1805,  1625,
!     2167,   402,   252,  1810,  1811,  1955,    31,    31,   198,    31,
!     1817,   201,   202,    31,  1821,    31,  1823,    31,   516,    31,
!     1646,  1647,   240,   257,  1793,   700,  1833,   431,  1654,  2015,
!      581,   379,    31,  1802,  2020,   213,  1805,   581,   402,    58,
!      194,    31,    31,  2054,  2055,    55,    31,    43,   236,   700,
!     2503,   335,   665,  1860,  2507,  2508,  2509,   667,  1926,   570,
!      683,  1868,   670,   819,  2471,   680,  1934,   672,  1875,   825,
!      239,   668,  1879,  1880,  1881,  1882,  1883,  1884,  1885,   678,
!      666,   677,   675,   474,  2464,    50,  1893,  1739,   679,   279,
!     1815,   681,  2463,  1961,   850,   586,   512,   529,  1724,   211,
!      856,   434,   512,   213,  2511,  1949,  1875,   367,   298,  1735,
!     2322,   700,    31,  1920,   281,  1922,   700,   529,    31,  1926,
!     1927,   249,  1926,  2315,  2316,    31,   882,  1934,    50,    31,
!     1934,   583,    31,  2654,   339,    62,   549,   287,  2088,  2089,
!     2090,   353,   703,  1950,  1951,  1952,    20,    31,    31,  1956,
!     2018,  1920,   511,   530,  1961,   550,   700,   418,   684,   705,
!      431,   698,  1969,   431,  1971,  1972,   700,    24,    31,   925,
!       47,   503,   431,   701,   483,   510,   932,   933,  2281,  2282,
!     2633,  1950,   483,   550,  2637,  2288,   231,   335,   190,   550,
!     2176,  2230,    44,  2296,  2180,   366,  2040,  2221,  2222,  2223,
!      474,   335,   204,   583,   184,    23,   431,    60,    51,   285,
!      285,  2018,   240,   413,  2018,   217,   431,   574,   553,  1845,
!       31,  1732,   652,   700,   190,   415,   416,    62,  2072,   193,
!      549,   143,   549,   194,   684,   425,   426,   374,   204,   474,
!      513,  2648,   327,  2229,   246,   512,    31,    43,  2234,   411,
!     2236,   217,   612,   588,    43,   590,   550,    31,   287,    31,
!       43,  1017,   550,    31,   316,    38,  1022,   287,  2254,   231,
!      239,     1,   421,   402,   124,   704,   703,   703,   703,   703,
!      246,   703,   703,   703,   550,  2271,   703,   411,   703,   703,
!       43,   472,    25,   159,   703,   646,   703,   703,   703,   550,
!      703,   703,  1954,  2110,   703,   703,   703,   550,  2115,   703,
!      703,   703,   550,   703,   703,   703,   703,   319,  2087,   703,
!     2532,  2128,  2129,   366,   703,  2132,  2133,  2134,  2135,   703,
!      474,   703,   703,   703,   703,  2142,   474,   703,   703,  2146,
!     2147,  2148,    44,  2150,  2151,  2152,  2153,   703,   703,   703,
!      703,   703,   550,   319,   550,   550,  2224,  2164,  2765,   231,
!      231,   293,   366,    18,   700,   623,   593,   669,  2175,   703,
!     2177,  2778,   374,   592,  2181,   145,  2183,   144,  2785,  2186,
!     2187,  2033,   671,   184,  2036,   184,   335,  2415,   549,  2196,
!     2197,   394,   574,   395,   540,  2498,    59,  2500,   435,   443,
!       31,  2053,    31,  2506,  2507,  2508,  2509,    31,   374,  2216,
!       31,    31,    50,    50,  2221,  2222,  2223,  2224,  2187,  2263,
!      684,   518,    50,  2230,  2591,  2269,   287,  2507,    50,   395,
!      550,  2083,  2084,  2085,    50,  2303,  2243,   684,   684,   684,
!      442,    38,  2094,   516,   103,   447,   102,  2216,   704,   704,
!      704,   101,   704,   283,  2261,  2262,   338,     1,  2444,  2266,
!      460,   431,  2269,   213,   159,   338,   801,   581,  2275,   338,
!      284,   338,   474,   338,   809,    44,   442,   374,   813,   432,
!      512,   447,    26,    27,    28,    29,   350,  2473,   195,   338,
!       18,   145,   494,   686,   184,   335,  2303,  2266,    31,  2303,
!       31,    31,  2452,   520,   574,   434,   841,   432,   474,   454,
!      512,   326,   514,    50,    31,   704,   376,   704,   704,   208,
!      704,   704,    31,   700,   704,   704,   297,   529,   494,   704,
!     2633,   704,   704,  2636,  2637,  2586,   704,   325,  2488,   704,
!      704,  2348,   550,   421,   704,   485,   512,   499,   514,   284,
!      269,   231,   550,    33,   145,   685,    57,   704,  2586,   574,
!      104,   105,   203,   529,   439,   109,   231,   111,  2375,   184,
!     2609,   115,   116,   396,   118,   119,    31,   533,   218,   123,
!     2091,    50,    43,  2390,  1340,    50,   704,   181,   704,   704,
!       31,   704,   319,  1349,   525,  2606,   704,  2249,   704,   704,
!      704,  2227,   704,   458,   704,  2616,   704,   431,   704,   704,
!      704,   704,   704,   379,   499,   327,  2423,   231,   231,   690,
!      458,   379,    57,    25,   568,  2251,  2433,   319,   184,  1385,
!     1386,   409,    43,   343,   194,  2646,   704,   459,  2445,  2446,
!       33,   143,   184,   253,  2512,    17,  2453,   704,   704,  2456,
!      704,   458,    31,  2639,   989,   990,   704,   704,   704,  2466,
!      293,    31,   704,   704,   704,   704,   704,   355,   704,   704,
!      704,    31,   265,   704,  2685,  1431,    23,   704,  2485,  2486,
!     2524,   537,  2308,   322,  2453,   673,     7,  2456,  2340,   684,
!      142,  2343,   189,   195,   131,   129,   198,   151,   700,   201,
!      202,  2712,  1458,   278,   217,  2512,   284,   234,  2512,   367,
!      684,   318,   659,  2304,  2725,  1642,   694,   294,   375,   422,
!     1096,  1673,  1105,   230,   329,  1107,   441,  1770,   433,  1772,
!     1702,  2742,  1775,  1692,   700,   728,  1779,  1123,  2724,  2340,
!     1158,  1784,   749,  1746,  1787,  1788,  1789,  1790,  2091,  1792,
!     1506,  1507,   470,  1131,  1797,  1798,   306,  1800,  1158,   760,
!     2187,  2568,   311,   969,  2192,  1146,  2573,  1810,  1811,  1548,
!      969,   571,   185,  1529,   582,  1524,   931,   279,  1370,   989,
!      575,  1989,   284,  1168,   950,  2284,  1390,  2594,  1597,  2596,
!     2597,  2777,  2599,  1595,  1600,  2507,   298,   546,  2784,  1786,
!     2786,  2288,  2609,   771,   594,  1436,  1364,   600,  1170,  1022,
!     2517,  2301,  2523,  1022,  1030,  1529,  2468,  2624,  2625,  2626,
!     2627,  1617,   603,  1786,   850,  1445,  1518,  2596,  2597,  2481,
!     2599,   552,  1961,  1460,   611,   207,   616,  1490,  1488,   621,
!     2473,  1467,  2471,  2609,  2606,  2759,  2773,  1450,   220,   628,
!     2703,  2214,  2459,  2458,  2456,   227,  2695,  1874,  2200,  2203,
!     1833,  1527,  1618,  2181,  2671,  1351,  2186,  1356,   633,   644,
!     2415,  1206,   641,  2680,  2526,   925,  2266,  2488,  2269,  2357,
!      939,  2153,  2392,   435,  2171,  2686,   740,   258,   254,    -1,
!       -1,    -1,  2699,    -1,  2701,  2702,    -1,    -1,    -1,    -1,
!       -1,    -1,  2528,  2529,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   415,   416,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   425,   426,    -1,    -1,    -1,    -1,  1972,
!     2699,    -1,  2701,  2702,    -1,    -1,   308,    -1,    -1,    -1,
!     2747,    -1,    -1,  2750,    -1,  2752,  2753,  2754,    -1,    -1,
!       -1,  1707,    -1,    -1,    -1,  1290,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,  2475,  2476,    -1,   339,  2775,  2776,
!       -1,  2482,    -1,    -1,    -1,    -1,    -1,    -1,  2747,    -1,
!       -1,  2750,    -1,    -1,  2753,  2754,   488,    -1,    -1,  2615,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
!       -1,    -1,    -1,    -1,    -1,   377,    -1,  2659,    -1,    -1,
!       -1,    -1,    -1,    -1,  1770,    -1,  1772,    -1,    -1,  1775,
!       -1,    -1,    -1,  1779,    -1,    -1,    -1,    -1,  1784,    -1,
!     1786,  1787,  1788,  1789,  1790,    -1,  1792,  1793,    -1,    -1,
!       -1,  1797,  1798,    -1,  1800,    -1,  1802,    -1,   550,  1805,
!       -1,    -1,   424,    -1,  1810,  1811,    -1,    -1,   430,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2110,    -1,    -1,
!       -1,    -1,  2115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   453,    -1,    -1,    -1,  2128,  2129,  2713,    -1,  2132,
!     2133,  2134,  2135,    -1,    -1,    -1,    -1,    -1,    -1,  2142,
!       -1,    -1,    -1,  2146,  2147,  2148,   478,  2150,  2151,  2152,
!     2153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1875,
!       -1,  2164,    -1,    -1,    -1,    -1,    -1,    -1,     0,     1,
!       -1,    -1,    -1,   505,  1469,    -1,    -1,    -1,    -1,    -1,
!        0,     1,    -1,    -1,   516,     5,    -1,     7,    -1,     9,
!       10,    11,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,
!       -1,    -1,    -1,   535,  1920,    -1,    26,    27,    28,    29,
!     1926,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1934,    -1,
!       -1,    -1,    54,   555,    -1,    -1,    -1,    -1,    -1,   561,
!      562,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   573,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   581,
!       -1,    -1,   584,    -1,    -1,    -1,  1972,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  1561,    -1,    -1,    -1,
!       -1,    -1,  1567,  1568,  1569,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,   109,
!       -1,   111,    -1,    -1,    -1,   115,   116,    -1,   118,   119,
!     1595,    -1,  2018,   123,    -1,    -1,    -1,  1602,    -1,    -1,
!      142,    -1,    -1,    -1,   146,   147,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
!      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
!      172,   173,   174,    -1,   176,  2348,   178,   179,   180,   181,
!      182,   183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,   700,    -1,
!       -1,    -1,  2375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2390,    -1,    -1,
!       -1,    -1,    -1,    -1,  2110,    -1,    -1,    -1,    -1,  2115,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,  2128,  2129,    -1,    -1,  2132,  2133,  2134,  2135,
!       -1,    -1,    -1,    -1,    -1,    -1,  2142,    -1,    -1,    -1,
!     2146,  2147,  2148,    -1,  2150,  2151,  2152,  2153,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2164,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,  1759,     1,    -1,   299,    -1,    -1,
!       -1,    -1,   304,    -1,    -1,    -1,  1771,    -1,  1773,  1774,
!       -1,  1776,  1777,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   317,    -1,  1794,
!     2216,   333,    -1,    -1,    -1,    -1,  1801,    -1,  1803,    -1,
!       -1,  1806,  1807,  1808,  1809,    -1,    -1,  1812,    54,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,     1,    -1,
!     2266,    -1,     5,    -1,     7,    -1,     9,    10,    11,    -1,
!       -1,    14,    15,    16,    -1,  2568,    -1,    -1,    -1,    -1,
!     2573,    -1,    -1,    26,    27,    28,    29,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2303,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
!      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
!      166,   167,  2348,   169,   170,   171,   172,   173,   174,   471,
!      176,    -1,   178,   179,   180,   181,   182,   183,    -1,    -1,
!       -1,   104,   105,    -1,    -1,    -1,   109,    -1,   111,  2375,
!      196,    -1,   115,   116,   496,   118,   119,    -1,  2671,    -1,
!      123,    -1,    -1,    -1,  2390,    -1,    -1,  2680,    -1,    -1,
!       -1,  1976,    -1,   515,    -1,    -1,   506,   507,    -1,    -1,
!        0,     1,    -1,    -1,  1989,     5,    -1,     7,    -1,     9,
        10,    11,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,
!       -1,    -1,    -1,  2008,    -1,    -1,    26,    27,    28,    29,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2453,    -1,    -1,
!     2456,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   104,   105,  2512,   333,    -1,   109,
!       -1,   111,    -1,    -1,    -1,   115,   116,    -1,   118,   119,
!       -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,  2113,    -1,
!       -1,    -1,    -1,    -1,  2119,  2120,    -1,    -1,  2123,    -1,
!     2125,  2126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2144,
!       -1,    -1,  2568,    -1,    -1,    -1,    -1,  2573,    -1,    -1,
!       -1,  2156,  2157,    -1,     1,  2160,    -1,  2162,   700,    -1,
!     2165,    -1,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
!     2596,  2597,    -1,  2599,   420,    -1,    -1,    -1,    -1,    -1,
!     2185,    -1,    -1,    -1,    31,    32,    -1,    -1,  2193,  2194,
!       -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
!       -1,    -1,    49,    50,    -1,    -1,    -1,     0,     1,    56,
!       -1,    -1,     5,    60,     7,    62,     9,    10,    11,    -1,
!       -1,    14,    15,    16,    -1,   471,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    26,    27,    28,    29,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,  2671,    -1,    -1,    -1,    -1,
!      496,    -1,    99,   100,  2680,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,   515,
!       -1,    -1,    -1,  2699,    -1,  2701,  2702,    -1,    -1,    -1,
!       -1,    -1,    -1,  2288,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   104,   105,    -1,    -1,    -1,   109,    -1,   111,    -1,
!       -1,  2747,   115,   116,  2750,   118,   119,  2753,  2754,    -1,
!      123,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
!      187,   188,   189,   506,   191,    -1,    -1,    -1,   195,    -1,
!       -1,    -1,    -1,    -1,    -1,  2360,    -1,  2362,   205,    -1,
!      207,    -1,   209,  2368,  2369,    -1,    -1,    -1,    -1,   216,
!       -1,    -1,   219,    -1,   221,    -1,    -1,    -1,   225,   226,
!       -1,    -1,   229,    -1,    -1,    -1,   233,    -1,    -1,    -1,
!      237,   238,    -1,    -1,    -1,    -1,    -1,    -1,  2403,    -1,
!     2405,   248,    -1,    -1,    -1,    -1,    -1,   254,    -1,    -1,
!       -1,    -1,    -1,    -1,   261,    -1,    -1,   264,    -1,    -1,
!       -1,   268,    -1,    -1,    -1,   272,   273,    -1,    -1,   276,
!       -1,   278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      686,    -1,   289,    -1,    -1,    -1,    -1,    -1,   295,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   305,   306,
!       -1,    -1,   309,   310,   311,   312,   313,   314,   315,   316,
!       -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,
!       -1,   328,   329,   330,   331,    -1,   506,   334,    -1,   336,
!       -1,    -1,    -1,  2498,    -1,  2500,    -1,   344,   345,   346,
!      347,    -1,  2507,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   360,   361,   362,   363,   364,   365,    -1,
!      367,    -1,    -1,    -1,   317,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   379,   380,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   389,   390,   391,   392,    -1,    -1,  2553,    -1,
!      397,   398,   399,   400,   401,    -1,   403,   404,   405,   406,
!      407,   408,   409,   410,    -1,   412,    -1,    -1,    -1,    -1,
!      417,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,
!      427,   428,   429,    -1,    -1,    -1,    -1,    -1,   435,    -1,
!       -1,   438,    -1,   440,   441,    -1,   443,    -1,    -1,    -1,
!       -1,    -1,    -1,  2608,    -1,   452,    -1,    -1,    -1,   456,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2622,    -1,    -1,
!      467,   468,   469,   470,    -1,    -1,    -1,    -1,  2633,    -1,
!      477,    -1,  2637,    -1,    -1,   482,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      497,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   508,   509,    -1,    -1,    -1,    -1,    -1,    -1,   516,
!      517,    -1,   519,    -1,    -1,    -1,   523,    -1,    -1,    -1,
!      527,   528,    -1,   530,   531,   532,   533,    -1,    -1,    -1,
!       -1,   538,    -1,    -1,   541,   542,   543,   544,   545,   546,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      557,   558,    -1,   506,   507,    -1,   563,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   571,   572,    -1,    -1,   575,   576,
-       -1,   578,   579,   580,    -1,   582,    -1,    -1,   585,    -1,
-       -1,    -1,    -1,    -1,   591,   592,   593,   594,   595,   596,
-      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
-      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
-      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
-      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
-      657,   658,   659,   660,   661,   662,   663,    -1,    -1,     1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      687,   688,   689,   690,   691,   692,   693,   694,   695,    31,
!       32,    -1,    -1,    -1,    31,    -1,   703,    -1,    -1,    -1,
!       42,    43,    -1,    -1,    -1,    -1,    -1,    49,    50,    -1,
!       -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,    60,    -1,
!       62,    -1,    -1,    -1,    61,    -1,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    -1,    99,   100,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,   110,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   185,   186,   187,   188,   189,    -1,   191,
-       -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,
-      197,    -1,    -1,   205,    -1,   207,    -1,   209,    -1,    -1,
-       -1,    -1,    -1,    -1,   216,    -1,    -1,   219,    -1,   221,
-       -1,    -1,    -1,   225,   226,    -1,    -1,   229,    -1,    -1,
-       -1,   233,    -1,    -1,    -1,   237,   238,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   242,   248,    -1,    -1,    -1,
-       -1,    -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,   261,
-       -1,   185,   264,   187,   188,    -1,   268,    -1,    -1,   266,
-      272,   273,    -1,    -1,   276,    -1,   278,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   282,    -1,   289,    -1,    -1,
-       -1,    -1,    -1,   295,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   305,   306,    -1,    -1,   309,   310,   311,
-      312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,
-       -1,   323,    -1,    -1,    -1,    -1,   328,   329,   330,   331,
-       -1,    -1,   334,    -1,   336,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   344,   345,   346,   347,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   308,    -1,    -1,    -1,   360,   361,
-      362,   363,   364,   365,    -1,   367,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   389,   390,   391,
-      392,   388,    -1,    -1,    -1,   397,   398,   399,   400,   401,
-       -1,   403,   404,   405,   406,   407,   408,   409,   410,    -1,
-      412,    -1,    -1,    -1,    -1,   417,    -1,    -1,    -1,    -1,
-       -1,   423,    -1,    -1,    -1,   427,   428,   429,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,   438,    -1,   440,   441,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      452,    -1,    -1,    -1,   456,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   467,   468,   469,   470,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
-      482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   497,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   508,   509,    -1,    -1,
-       -1,    -1,    -1,    -1,   516,   517,    -1,   519,    -1,    -1,
-       -1,   523,    -1,    -1,    -1,   527,   528,    -1,   530,   531,
-      532,   533,    -1,    -1,    -1,    -1,   538,   534,    -1,   541,
-      542,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   557,   558,    -1,    -1,    -1,
-       -1,   563,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,
-      572,    -1,    -1,   575,   576,    -1,   578,   579,   580,    -1,
-      582,    -1,    -1,   585,    -1,    -1,    -1,    -1,    -1,   591,
-      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
-      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
-      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
-      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
-      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
-      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
-      662,   663,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   687,   688,   689,   690,   691,
-      692,   693,   694,   695,    31,    -1,    -1,    -1,    -1,    -1,
-       -1,   703,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
!      187,   188,   189,    -1,   191,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,    -1,
!       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,   216,
!       -1,    -1,   219,    -1,   221,    -1,    -1,    -1,   225,   226,
!       -1,    -1,   229,    -1,    -1,    -1,   233,    -1,    -1,    -1,
!      237,   238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   248,    -1,    -1,    -1,    -1,    -1,   254,    -1,    -1,
!       -1,    -1,    -1,    -1,   261,    -1,    -1,   264,    -1,    -1,
!       -1,   268,    -1,    -1,    -1,   272,   273,    -1,    -1,   276,
!       -1,   278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,   295,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   305,   306,
!       -1,    -1,   309,   310,   311,   312,   313,   314,   315,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,
!       -1,   328,   329,   330,   331,    -1,    -1,   334,    -1,   336,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   344,   345,    -1,
!      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   360,   361,   362,   363,   364,   365,    -1,
!      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   379,   380,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
!      397,   398,   399,    -1,   401,    -1,   403,   404,   405,   406,
!      407,   408,   409,   410,    -1,   412,    -1,    -1,    -1,    -1,
!      417,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      427,   428,   429,    -1,    -1,    -1,    -1,    -1,   435,    -1,
!       -1,   438,    -1,   440,   441,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   452,    -1,    -1,    -1,   456,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   468,   469,   470,    -1,    -1,    -1,    -1,    -1,    -1,
!      477,    -1,    -1,    -1,    -1,   482,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      497,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   508,   509,    -1,    -1,    -1,    -1,    -1,    -1,   516,
!      517,    -1,   519,    -1,    -1,    -1,   523,    -1,    -1,    -1,
!      527,   528,    -1,   530,   531,   532,   533,    -1,    -1,    -1,
!       -1,   538,    -1,    -1,   541,   542,   543,   544,   545,   546,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      557,    -1,    -1,    -1,    -1,    -1,   563,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   571,   572,    -1,    -1,   575,   576,
!       -1,   578,   579,   580,    -1,   582,    -1,    -1,   585,    -1,
!       -1,    -1,    -1,    -1,   591,   592,   593,   594,   595,   596,
!      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
!      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
!      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
!      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
!      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
!      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,   663,    -1,     0,     1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    23,    24,    -1,    -1,    -1,    -1,   694,   695,    31,
-       -1,    -1,    -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,
-       -1,    43,    44,    45,    -1,    47,    -1,    -1,    50,    51,
-       -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
!      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      142,   143,   144,    -1,   146,   147,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
!      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
!      172,   173,   174,    -1,   176,    -1,   178,   179,   180,   181,
!      182,   183,   184,   185,   186,   187,   188,    -1,    -1,    -1,
!       -1,    -1,    -1,   195,   196,    -1,   198,    -1,    -1,   201,
!      202,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
!       -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,   146,   147,
!      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,   233,   160,   161,   162,   163,   164,   165,   166,   167,
!       -1,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
!      178,   179,   180,   181,   182,   183,   184,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   279,    -1,    -1,
!       -1,    -1,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   298,   299,    -1,    -1,
!       31,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   333,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,
!       -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,
!       -1,   403,    -1,    -1,    -1,   333,    -1,   409,    -1,    -1,
!       -1,    -1,    -1,   415,   416,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   425,   426,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,    -1,   188,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,
!       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,   250,
-      251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
-       -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   270,
-       -1,    -1,    -1,   471,   275,    -1,   277,    -1,   550,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,   300,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   586,    -1,    -1,   515,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   664,   665,   666,   667,   668,    -1,   670,   671,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
!       -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    42,    43,    44,    45,    -1,    47,
!       -1,    -1,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    62,   673,    -1,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,    -1,
!       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   548,    -1,    -1,
!       -1,    -1,    -1,    -1,   142,    -1,   144,    -1,   146,   147,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,    -1,   160,   161,   162,   163,   164,   165,   166,   167,
!       -1,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
!      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,   196,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,
!       -1,   209,   146,   147,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
!      164,   165,   166,   167,    -1,   169,   170,   171,   172,   173,
!      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
!      184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,   336,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,    -1,   367,
!      304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,   322,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   333,
!       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,
!       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   421,    -1,   423,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
-       -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,   471,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   570,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
--- 7664,10770 ----
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   808,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   809,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
+       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+      113,   114,   115,   116,    28,     0,   811,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  2838,     0,     0,
+        0,     0,     0,     0,   805,     0,     0,     0,   117,     0,
+        0,     0,     0,     0,     0,     0,   806,     0,     0,     0,
+        0,     0,     0,     0,     0,   812,   813,     0,     0,     0,
+        0,     0,     0,     0,   814,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   810,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,     0,   811,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   805,     0,     0,     0,
!      117,     0,     0,     0,     0,     0,     0,     0,   806,     0,
!        0,     0,     0,     0,     0,     0,     0,   812,   813,     0,
!        0,     0,     0,     0,     0,     0,   814,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   808,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   809,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   810,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
+        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
+       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
+      811,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   805,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
+      806,     0,     0,     0,     0,     0,     0,     0,     0,   812,
+      813,     0,     0,     0,     0,     0,     0,     0,   814,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   808,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   809,     0,    29,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   810,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    39,     0,     0,    30,     0,     0,    40,     0,     0,
         0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,    31,
        32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    36,    37,     0,     0,
+       44,     0,     0,    45,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       38,    28,   811,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    29,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
!      814,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
+       34,     0,     0,     0,     0,    44,     0,     0,    45,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,     0,   117,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   805,     0,     0,     0,     0,     0,     0,    38,     0,
+        0,     0,   118,   806,   385,   386,   387,   388,   389,   390,
+      391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
+      401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
+      411,   412,   413,   414,    39,     0,     0,     0,     0,     0,
+       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
+        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
!       34,     0,     0,     0,     0,  2037,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
+        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
+       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+      114,   115,   116,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
+        0,     0,     0,     0,     0,     0,     0,   117,     0,     0,
+        0,   834,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      122,     0,     0,     0,    39,     0,     0,     0,     0,     0,
+       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,  2038,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   805,     0,
+        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
+      806,   385,   386,   387,   388,   389,   390,   391,   392,   393,
+      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
+      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
+      414,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
+        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
+       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+      114,   115,   116,     0,    31,    32,    33,    34,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   117,    35,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   835,   836,     0,     0,     0,     0,
+        0,    36,    37,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   834,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
+        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  2038,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   497,     0,     0,     0,
!        0,     0,     0,     0,     0,   805,     0,     0,     0,     0,
!       44,     0,     0,    45,     0,     0,     0,   806,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   117,    35,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   835,   836,     0,     0,     0,     0,     0,    36,    37,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  2002,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   500,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   834,     0,     0,     0,     0,
!        0,     0,     0,  2003,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,     0,     0,  2004,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   503,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0, -1774,     0, -1774,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,    44,     0,     0,
!       45,     0,     0,     0,     0,     0, -1774,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    30,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,     0,     0,  2005,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!      785,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   117,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   835,   836,
!        0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   900,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      809,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!    -1774,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0, -1774,     0,     0,     0,     0,     0,
!        0,     0,   806,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0, -1774,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0, -1774,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
!       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    36,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,   809,     0,  1386,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
+      117,     0,     0,     0,     0,     0,     0,    38,     0,     0,
+        0,     0,     0,     0,     0,     0,   805, -1774, -1774,     0,
+      834,     0,     0,     0,     0,     0,     0,     0,   806,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    44,     0,     0,    45,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1387,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      833,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+      115,   116,   809,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    28,     0,     0,     0,   117,     0,     0,     0,
+        0,     0,     0,    38,     0,   904,     0,     0,     0,     0,
+        0,     0,   805,   835,   836,     0,   834,     0,     0,     0,
+        0,     0,     0,     0,   806,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
+        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
+       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
+       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
+        0,    45,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
+       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+      109,   110,   111,   112,   113,   114,   115,   116,   809,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,     0,    38,
+        0,     0,     0,     0,     0,     0,     0,     0,   805,   835,
+      836,     0,   834,     0,     0,     0,     0,     0,     0,     0,
+      806,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    42,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,    35,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   949,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,   809,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    28,   117,     0,
+        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   835,   836,   805,   834,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   806,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,     0,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!        0,     0,  1563,   809,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    28,   117,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
+        0,   835,   836,   805,     0,     0,     0,   834,     0,     0,
+        0,     0,     0,     0,     0,   806,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
         0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    42,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
+       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
+        0,     0,    45,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    36,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116,   809,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    28,   117,     0,     0,     0,     0,     0,     0,
+       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      835,   836,   805,   834,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   806,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
+        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,     0,     0,    45,     0,
!        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1886,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,     0,     0,  2027,   809,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    28,   117,
         0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
+        0,     0,     0,     0,     0,     0,   835,   836,   805,     0,
+        0,     0,   834,     0,     0,     0,     0,     0,     0,     0,
+      806,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    42,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    44,     0,     0,    45,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    36,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
+       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+      113,   114,   115,   116,   809,    28,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   805,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,    38,     0,   806,     0,     0,
!        0,     0,     0,     0,     0,   835,   836,     0,   834,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
+        0,     0,    41,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    42,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       44,     0,     0,    45,     0,     0,     0,     0,    36,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   117,   834,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   835,   836,     0,     0,     0,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  1396,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1899,     0,     0,     0,     0,
!        0,     0,   805,     0,     0,     0,     0,    44,     0,     0,
!       45,     0,     0,     0,   806,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    30,     0,     0,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   117,    35,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   835,   836,
+        0,     0,     0,     0,   306,    36,    37,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1782,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1397,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
!      497,     0,   861,     0,     0,     0,     0,     0,     0,   805,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   862,   863,   864,     0,  1900,     0,    42,     0,     0,
+       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0, -1782,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,   865,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0, -1782,     0,     0,     0,     0,
+        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
+       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+      113,   114,   115,   116,     0,   809,  1901,     0,     0,     0,
+        0,     0,     0,     0,     0,   500,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    28,     0,   117,     0,
+        0,     0,     0,     0,     0,     0,    38,   497,     0,   861,
+        0,     0,     0,     0,     0,     0,   805,     0,     0,   866,
+        0,     0,     0,     0,     0,     0,     0,     0,   499,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
+        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
+        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
+        0,     0,   502,     0,     0,     0,     0,     0,   862,   863,
+      864,     0,     0,     0,    42,     0,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   503,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    44,     0,     0,    45,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
!       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
!       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
!       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
!       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
!       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,     0,   809,   867,    28,     0,     0,     0,     0,     0,
!        0,     0,   500,     0,     0,     0,     0,  1899,     0,     0,
!        0,     0,     0,     0,   805,   117,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,   806,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   866,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   501,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,    30,     0,     0,     0,   502,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,   306,    36,    37,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0, -1782,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,     0,
!      867,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,   497,     0,   938,     0,     0,     0,     0,     0,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,  1900,     0,    42,
         0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0, -1782,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
        34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
+        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    36,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0, -1782,     0,     0,
+        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
+       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+      111,   112,   113,   114,   115,   116,     0,   809,  1901,     0,
+        0,     0,     0,     0,     0,     0,     0,   500,    28,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   497,
+      117,  2356,     0,     0,     0,     0,     0,  1557,    38,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      499,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   501,     0,     0,    39,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,   502,     0,     0,     0,     0,    30,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   503,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    36,    37,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
!       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
!       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
!       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
!       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
!      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116,     0,   500,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,   497,   117,  1977,     0,
!        0,     0,     0,     0,     0,   805,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   499,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   501,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
!        0,   502,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    42,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   503,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    31,    32,    33,    34,     0,     0,     0,  2357,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    36,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
!       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
!       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
!       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
!       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
!       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
!       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!        0,   809,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   500,    28,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   497,   117,   498,     0,     0,     0,     0,
!        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   499,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   501,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
!        0,     0,     0,     0,     0,     0,     0,     0,   502,     0,
!        0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   503,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    35,     0,     0,     0,     0,    44,     0,     0,
!       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,    37,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,     0,   500,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
!      497,   117,   938,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   499,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   501,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
+        0,     0,     0,     0,     0,   502,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
+       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    44,     0,     0,    45,     0,    35,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    36,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
+       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+      113,   114,   115,   116,     0,   809,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   500,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    28,     0,   117,     0,
+        0,     0,     0,     0,     0,     0,    38,   497,     0,  1977,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   499,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   501,
+        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
+        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
+        0,     0,   502,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    42,     0,     0,    30,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   503,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    44,     0,     0,    45,     0,    35,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+      116,     0,   809,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   500,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   117,     0,     0,     0,     0,
+        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   501,     0,     0,    39,
         0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,   502,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   503,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    28,   923,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    30,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   117,    35,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    36,    37,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   924,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    28,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1899,     0,     0,     0,     0,     0,     0,   805,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      806,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       38,     0,     0,     0,     0,     0,     0,     0,     0,   925,
!        0,     0,     0,   926,     0,     0,     0,     0,     0,     0,
!        0,   927,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    39,     0,     0,    30,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    43,     0,     0,    31,    32,    33,    34,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      306,    36,    37,     0,     0,    44,     0,     0,    45,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,    38,     0,   928,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,   117,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1900,     0,    42,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   805,     0,     0,
+       44,     0,     0,    45,     0,     0,     0,     0,     0,   806,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    30,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!        0,     0,  1901,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   117,     0,     0,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   808,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   809,     0,  1899,     0,     0,     0,     0,
+        0,     0,   805,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,   806,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,   810,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,    30,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    43,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,    37,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
+       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+      108,   109,   110,   111,   112,   113,   114,   115,   116,    38,
+        0,   811,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,   117,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1900,     0,    42,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0, -1952,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
!        0,     0,     0, -1952,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    30,    46,    47,    48,    49,    50,    51,    52,
!       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
!      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,     0,     0,  1901,    31,    32,    33,
!       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   117,     0,
!        0,    35,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  2962,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0, -1952,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0, -1952,     0,     0,    39,     0,     0,    30,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
!       37,     0,     0,    44,     0,     0,    45,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  1539,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116,    38,    28,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   117,     0,     0,
!        0, -1862,     0,     0,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,  1540,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,  1541,    36,    37,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
!       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
!       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
!       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,    28,
!      928,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   757,
!        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!       30,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,    31,    32,    33,    34,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    36,    37,     0,     0,    44,     0,     0,    45,
!        0,     0,  2595,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,   709,     0,     0,    46,    47,    48,    49,    50,
!       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
!       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
!       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
!       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
!       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
!      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    38,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   888,     0,     0,
!      117,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
         0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
!        0,    44,     0,     0,    45,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   758,     0,     0,     0,     0,     0,
!       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,     0,     0,     0,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   117,  1236,  1237,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,    30,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,   972,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    36,    37,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
!       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
!       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
!       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   117,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   888,     0,     0,     0,     0,    44,     0,     0,    45,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    30,     0,     0,    46,    47,    48,    49,    50,
+       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+      111,   112,   113,   114,   115,   116,     0,    31,    32,    33,
+       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      117,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,  1443,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    39,     0,     0,     0,     0,     0,
!       40,     0,     0,     0,     0,    41,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    42,     0,    30,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    44,     0,     0,    45,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
+       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+      114,   115,   116,  2578,    28,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,   888,     0,     0,   117,     0,     0,
!        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,  2579,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
!     2700,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    35,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,    36,    37,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116,     0,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,   117,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
+        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,  2799,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
+       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    36,    37,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
        51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
       101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
!      111,   112,   113,   114,   115,   116,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      117,     0,     0,     0,     0,     0,     0,    38,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
!        0,     0,     0,     0,    41,     0,     0,    30,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,    36,
!       37,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,    28,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    38,     0,   845,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   117,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    42,     0,    30,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    31,    32,
!       33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,    37,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,    28,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,   888,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,     0,    38,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
+        0,    40,     0,     0,     0,     0,    41,     0,     0,    30,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    31,    32,    33,    34,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    35,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
+        0,    36,    37,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,    28,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   117,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    39,     0,     0,     0,     0,     0,    40,     0,     0,
!        0,     0,    41,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    42,     0,    30,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    43,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       31,    32,    33,    34,     0,     0,     0,     0,     0,     0,
+      919,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       44,     0,     0,    45,    35,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    36,    37,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
!      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   936,     0,     0,     0,
!        0,     0,     0,     0,   117,     0,     0,     0,     0,     0,
!        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    39,     0,     0,
!        0,     0,     0,    40,     0,     0,     0,     0,    41,     0,
!        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    43,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    44,     0,     0,    45,
+        0,     0,     0,    36,    37,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
+       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+      111,   112,   113,   114,   115,   116,    28,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    38,     0,   954,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!      117,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
+        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    42,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,   809,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
!        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
!       41,     0,     0,     0,    30,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
!       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    35,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
!        0,    45,     0,     0,     0,     0,    36,    37,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
!      109,   110,   111,   112,   113,   114,   115,   116,     0,    28,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       38,     0,  1516,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
+        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    44,     0,     0,    45,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    36,    37,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,    28,     0,   966,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,  1937,     0,     0,     0,   117,
+        0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
!        0,     0,     0,    41,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,     0,     0,    45,     0,     0,     0,    36,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,    28,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    38,     0,  2118,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,   117,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
!        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       42,     0,    30,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    31,    32,    33,
+       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
+       45,    35,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    36,    37,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
       100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,    28,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   117,     0,     0,     0,     0,     0,     0,    38,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    39,     0,     0,     0,  2334,     0,
+       40,     0,     0,     0,     0,    41,     0,     0,    30,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    43,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    35,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    44,     0,     0,    45,     0,     0,     0,
!       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    46,    47,    48,    49,    50,    51,    52,    53,
        54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
       104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
!      114,   115,   116,    28,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    38,     0,  2338,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,   117,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,     0,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    42,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
+       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    44,
+        0,     0,    45,    35,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    36,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
!      108,   109,   110,   111,   112,   113,   114,   115,   116,    28,
!      923,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   117,     0,     0,     0,     0,     0,     0,
!       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
!       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    43,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    31,    32,    33,    34,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    35,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    44,     0,     0,    45,     0,
!        0,     0,    36,    37,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
        52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
       102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,    28,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    38,     0,  2730,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,   117,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    39,     0,     0,     0,     0,     0,    40,     0,
+        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    42,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    31,    32,    33,    34,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    44,     0,     0,    45,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
!      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
!      116,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,   117,     0,     0,     0,     0,
+        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
+        0,     0,     0,     0,    40,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    44,     0,     0,
!       45,    31,    32,    33,    34,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    36,    37,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,     0,     0,     0,
!        0,     0,     0,     0,  2747,     0,     0,     0,     0,     0,
!       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,   117,     0,     0,     0,     0,     0,     0,     0,     0,
!      805,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
+        0,    30,     0,     0,    40,     0,     0,     0,     0,    41,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    43,     0,     0,    31,    32,    33,    34,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    36,    37,     0,     0,    44,     0,     0,
+       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
!       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
!       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
!       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
!       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
!       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
!      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
!      110,   111,   112,   113,   114,   115,   116,    38,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,   117,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
+        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    42,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    44,     0,     0,    45,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
+        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+      115,   116,     0,    31,    32,    33,    34,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,   117,    35,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       36,    37,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,  2962,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  2967,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    38,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       39,     0,     0,    30,     0,     0,    40,     0,     0,     0,
!        0,    41,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    42,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    43,     0,     0,    31,    32,
        33,    34,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,    35,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    36,    37,     0,     0,    44,
!        0,     0,    45,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
+       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+      108,   109,   110,   111,   112,   113,   114,   115,   116,    38,
+       28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,   117,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,    39,     0,     0,     0,     0,
!        0,    40,     0,     0,     0,     0,    41,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    42,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!       43,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,    31,    32,    33,    34,
+        0,     0,     0,     0,    44,     0,     0,    45,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       35,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    36,    37,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
        53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
!      113,   114,   115,   116,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,   117,     0,
!        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,    38,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,    39,     0,     0,     0,     0,     0,    40,
+        0,     0,     0,     0,    41,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    42,     0,    30,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,    43,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,    31,    32,    33,    34,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,    44,     0,     0,    45,    35,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
!       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
!       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
!       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
!       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
!       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
!      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
!      115,   116,   809,    28,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,   117,     0,     0,     0,
!        0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
+        0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
+       41,     0,     0,     0,    30,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    42,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,    43,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
+       32,    33,    34,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    44,     0,
+        0,    45,     0,     0,     0,     0,    36,    37,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
+       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+      109,   110,   111,   112,   113,   114,   115,   116,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       38,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,   117,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
!        0,     0,    40,     0,     0,     0,     0,    41,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,    42,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,    43,     0,     0,     0,     0,     0,  1252,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1253,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,    44,     0,     0,    45,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1254,  1255,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
!       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
!       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
!       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
!       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
!       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
!      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
!      112,   113,   114,   115,   116,  1256,     0,  1257,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,  1258,     0,     0,     0,     0,     0,     0,     0,   117,
!        0,     0,  1259,     0,     0,  1260,     0,  1261,     0,     0,
!        0,  1262,  1263,     0,     0,  1264,     0,     0,     0,  1265,
!        0,     0,     0,  1266,  1267,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1268,     0,     0,     0,     0,     0,
!     1269,     0,     0,     0,     0,     0,     0,  1270,     0,     0,
!     1271,     0,     0,     0,  1272,     0,     0,     0,  1273,  1274,
!        0,     0,  1275,     0,  1276,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1277,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!     1278,  1279,     0,     0,  1280,  1281,  1282,  1283,  1284,  1285,
!     1286,     0,     0,     0,     0,     0,     0,     0,  1287,     0,
!        0,     0,     0,  1288,  1289,  1290,  1291,     0,     0,  1292,
         0,     0,     0,     0,     0,     0,     0,     0,     0,  1293,
+     1294,     0,  1295,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,     0,  1296,  1297,  1298,  1299,  1300,
+     1301,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,  1302,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,  1303,  1304,  1305,  1306,     0,     0,
+        0,     0,  1307,  1308,  1309,     0,  1310,     0,     0,  1311,
+     1312,  1313,  1314,  1315,     0,  1316,     0,  1317,     0,     0,
+        0,     0,  1318,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,  1319,  1320,  1321,     0,     0,     0,     0,     0,
+        0,     0,     0,  1322,     0,  1323,  1324,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,  1325,     0,     0,
+        0,  1326,     0,     0,     0,     0,     0,     0,     0,     0,
+        0,     0,     0,     0,  1327,  1328,  1329,     0,     0,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,  1330,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,  1331,     0,     0,     0,     0,     0,
!        0,     0,     0,     0,     0,  1332,  1333,     0,     0,     0,
!        0,     0,     0,  1334,  1335,     0,  1336,     0,     0,     0,
!     1337,     0,     0,     0,  1338,  1339,     0,     0,  1340,  1341,
!        0,     0,     0,     0,  1342,     0,     0,  1343,  1344,  1345,
!     1346,  1347,  1348,     0,     0,     0,     0,     0,     0,     0,
!        0,     0,     0,  1349,     0,     0,     0,     0,     0,  1350,
!        0,     0,     0,     0,     0,     0,     0,  1351,  1352,     0,
!        0,  1353,  1354,     0,  1355,  1356,  1357,     0,     0,  1358,
!        0,     0,  1359,     0,     0,  1360
  };
  
  static const yytype_int16 yycheck[] =
  {
!      129,   130,   271,   588,   543,    14,    15,   738,   239,   355,
!      556,  1211,  1212,  1213,   531,   382,  1051,   466,   464,  1171,
!      525,   914,   685,   714,   715,   339,   930,   272,  1020,  1107,
!      922,   532,   161,   162,   163,   540,  1011,  1160,   992,   556,
!     1502,   527,   760,   548,   834,  1482,   510,   176,  1002,   903,
!      536,    15,   894,   561,   600,   903,  1086,  1214,  1215,  1216,
!     1110,   561,   293,   308,   561,   194,  1386,  1387,  1985,  1630,
!     1631,    18,     1,   564,     1,     1,   866,    20,    21,    31,
!       30,    51,   351,   600,    23,    46,   535,    48,    48,    48,
!       46,    34,    35,    36,    45,   933,  1132,    48,    41,    31,
!       50,    45,    18,  1175,   937,    17,    22,    57,   237,    42,
!     1430,    44,    44,    63,   600,    42,    31,    44,    51,    30,
!      211,    22,    18,    48,    51,     1,    22,    32,    59,    18,
!       63,    18,    43,   176,  1088,    58,    63,   102,   147,    50,
!      210,    12,    51,   186,    51,   244,    57,    51,   260,    99,
!       43,   812,    63,   241,   197,  1475,    30,     3,    44,   813,
!     1190,   128,   129,   530,  1015,    51,  1735,    61,   743,   176,
!     1024,    31,     7,    55,     9,    10,    11,    59,     7,   197,
!        9,    10,    11,   147,   220,    23,   547,    25,    99,   458,
!      196,    31,    31,     1,  1946,   232,   102,   126,    31,   545,
!      372,   242,   363,   332,  2487,   521,   241,    31,   654,   211,
!       42,   242,   341,   161,    31,    33,   260,  2500,    31,   294,
!       60,  1469,  1470,   492,    31,   465,   248,  1548,   903,    43,
!     1551,    63,   430,   600,   171,   317,   259,   242,   337,   145,
!      422,   102,   380,  1563,  1682,   255,   426,   318,   102,   260,
!      200,   201,   202,   146,   383,   384,   255,   761,   300,   763,
!      197,   360,   395,   102,  1904,  1384,   339,    45,   255,     0,
!      197,   435,   395,   542,   317,   186,    44,  1714,  1715,   419,
!      589,   264,   422,   378,   145,  1404,   233,     1,   170,   418,
!      490,   327,   233,    30,   205,   424,   663,   589,   844,    31,
!       23,   430,   751,   288,   433,   434,    31,  1426,   235,  1548,
!      164,   440,  1551,   260,   438,  1777,   215,   351,   351,   340,
!      339,   518,    31,     1,   453,   334,    51,   844,    31,    52,
!      527,   281,   216,   462,  1238,   242,   465,  2203,   242,   536,
!      469,   350,    51,   216,   890,    23,   356,   196,     0,   372,
!      547,   372,   552,   839,    30,  1474,    42,   356,    44,    17,
!      196,   176,    14,    15,    16,    51,   465,   466,  2234,   356,
!      403,   186,   127,   890,    50,   224,   394,    63,   687,   364,
!       31,    57,   197,  1535,   102,   372,  1416,    63,   224,  2255,
!      929,   105,   311,   894,   899,  1171,   127,   309,   432,   432,
!     1862,   197,   552,   600,  1180,   289,    42,  2047,    44,  1871,
!      915,   397,  1874,   328,   347,    51,   289,   508,   710,   542,
!      347,   294,   372,    99,   374,  1762,   367,   446,   340,   336,
!      465,   242,   336,   506,   584,   802,   355,   336,   482,   510,
!      786,    42,   220,    44,   351,  1564,   242,   215,   381,   589,
!      108,   589,   339,   380,   381,   465,   589,   297,   178,   179,
!        0,   372,   557,   394,   950,   197,   930,   736,   401,   479,
!      710,   482,   833,   478,   401,  1379,   426,    42,   560,    44,
!      479,   102,   358,   595,   434,   422,    51,  1949,   652,   671,
!      437,   509,   479,   515,   658,   328,  1171,   424,    63,   421,
!      203,   309,   317,   320,   665,  1180,   508,   490,   777,   552,
!      328,   552,   692,   320,   589,   347,   553,  1421,   551,  2802,
!      718,   552,   528,   434,   200,   201,   202,   894,   657,   496,
!      659,  1993,   340,  1196,   850,   482,   469,   698,   710,   372,
!      584,   810,   469,   164,    31,   552,  2298,   589,   372,   235,
!      389,   209,  1038,   589,   476,   368,   539,  1043,   474,    42,
!      434,    44,   435,   586,   222,   834,  1886,   534,    51,   401,
!      605,   229,   590,   584,   434,  1567,   688,   496,   509,   419,
!       63,   948,   378,   465,   499,  2154,  1247,  1248,   949,   718,
!      719,  1010,   721,  1168,   723,  1249,   942,   866,   517,   518,
!     1019,   520,   521,   589,   523,   281,   444,   526,   527,   976,
!     1461,   710,   741,   532,   521,  1507,   535,   536,   464,   710,
!      749,   507,   710,   494,   543,  1579,   545,  1475,   547,   490,
!      549,  1952,   551,   285,  1467,   554,   833,   584,   835,   836,
!      559,   589,   839,  1766,   714,   552,   552,   552,   552,  1624,
!      919,   309,   564,   524,   525,  1630,  1631,   566,   552,   590,
!      625,   347,  1819,  1820,  1821,  1822,   589,   710,   528,  2107,
!      235,  1743,   490,   589,   509,   710,  1043,  1044,  1045,  1046,
!      509,   600,   340,  1719,  1188,  1134,  1540,   576,   339,   576,
!     1194,   552,  1540,   589,   380,   381,   372,   434,   374,   377,
!      576,   616,  1540,  2040,  2041,   974,   903,  2027,  1956,  1957,
!     1958,   347,   337,   416,   372,   401,   589,   425,   640,   678,
!      378,   637,   212,   684,   684,   676,  1175,   666,   684,   661,
!      662,  1579,   676,   653,   704,   705,   637,   552,   424,    31,
!      594,   637,    42,   713,    44,   220,   347,   203,   698,   217,
!      426,   676,   949,   950,   608,   378,   476,   232,   434,   613,
!      614,   557,   714,   710,   714,   401,   419,   425,   328,   712,
!      624,   704,   705,   431,   197,  1280,  1863,   704,   705,   186,
!     1443,   710,   347,   469,   710,    31,   713,   698,   699,   700,
!      701,   702,   703,   248,  1881,   446,   454,   404,   552,   991,
!      401,   269,   695,   318,   189,  2005,   699,   700,   701,   702,
!      703,  2728,   623,   220,   396,   380,   381,   233,  1087,   242,
!     1089,   308,   480,   424,   552,  1171,  2387,  2388,   379,   283,
!       44,  1023,  1178,   469,  1180,   220,   401,    51,  1107,   464,
!      422,  1038,   203,  1389,   260,   196,  1043,   208,   576,  2311,
!      508,   295,   327,  1167,   633,   634,   710,  1049,    42,   424,
!       44,   519,   641,  1913,   347,   396,  1374,    51,   469,   476,
!      267,   358,  1389,   224,  1374,   528,   584,  1374,   657,    63,
!      538,  1735,   372,   370,  1153,   699,   700,   701,   702,   703,
!      287,   422,  1378,   704,   705,   706,   707,   708,  1362,   557,
!      354,  1387,   325,   220,   469,   563,   564,   625,   626,   627,
!      628,   629,   630,   631,   833,   232,   203,   575,   401,  1555,
!      839,   177,   192,   255,  2913,   225,   584,   487,  1513,   587,
!       42,   850,    44,  1569,   557,   854,   206,   203,  2090,    51,
!      860,   424,  1187,  1429,  1430,  2934,   865,  2267,   186,   219,
!      481,    63,   420,   872,   505,   378,  1085,   711,  1592,   446,
!      416,  1090,  1596,  1092,  1093,  1234,  1095,   205,  1469,  1470,
!      979,  2291,  2292,   594,   354,   894,  1105,   244,   248,   898,
!      435,   900,  1111,   200,   201,   202,   469,   608,  2018,  1475,
!      597,   205,   613,   614,  1499,   510,   916,   650,   651,  2319,
!     1129,  1130,    44,   624,   384,   924,     1,   926,   216,    51,
!      327,  1140,   287,  1459,   933,   979,  1462,  1146,   704,   705,
!      230,   437,   698,   942,   356,  1815,   470,   713,  1952,   589,
!      949,   950,  2616,    31,  1401,  1164,   567,   247,    31,   589,
!      319,   328,  2362,  2166,  2605,  2168,  2607,   347,   967,    44,
!      320,   235,   710,     0,   415,   416,    51,   570,   589,   527,
!      515,   271,   328,   319,   281,    60,   482,   384,   385,    16,
!      337,     4,   516,   586,  1538,  2067,  1562,  1563,   553,   354,
!     1665,   289,   308,  2037,  1802,   372,   554,    42,   372,    44,
!     1457,  2015,   371,   360,  2556,  2019,    51,  2559,  2090,    23,
!      375,   401,   798,   483,   710,   375,   802,    31,    63,   384,
!     1601,  1774,  1954,  1955,   589,   371,   710,   203,  2822,  1038,
!     2277,   576,   208,   209,  1043,  2829,   396,  2831,  1417,   416,
!      325,  2568,   358,   317,   557,   467,   516,   687,  1684,   704,
!      705,   589,   325,   693,   370,  2582,   354,   479,   713,   433,
!      416,   435,  2593,  2594,  2595,   687,  1502,   374,  2599,   283,
!     1651,   693,   372,   347,    51,   852,   376,  1684,   584,   233,
!       31,  2755,    31,   443,   298,  2759,    63,   387,   448,   909,
!      375,  1378,   377,    44,  2621,    44,  2890,  1678,   918,  2037,
!     1387,   878,    51,  1385,   377,  1681,   380,   381,   465,   466,
!       44,  1398,  1491,  1395,  1623,   506,   476,    51,   483,   426,
!      205,  1630,  1631,  1632,     0,  1504,   340,   401,   905,   601,
!      446,   176,   952,  1415,   372,   607,   496,   102,     8,   959,
!       16,   186,  1429,  1430,   645,   347,   553,   619,   620,  1508,
!      424,   516,   197,   696,   697,   515,   649,   517,    53,    54,
!      710,  2713,  2714,    58,  2716,   696,   697,   660,   344,   696,
!      697,   714,   532,     6,   951,  2702,   476,   477,   696,   697,
!       31,  2349,   589,   714,   696,   697,  1565,   714,  1475,    31,
!      476,   491,   478,   493,   412,   469,   714,  1576,   245,   401,
!     1188,   433,   714,   435,  1743,     0,  1194,  2734,    14,    15,
!        5,     6,   297,  2891,  1496,    31,  2894,  2895,  2431,    14,
!       15,    16,   424,   215,   200,  1560,  1235,   203,   204,  2456,
!       38,  1240,    40,  2460,  2461,  1570,   106,   107,   552,   415,
!      416,   111,   103,   113,   105,  2772,     5,   117,   118,   710,
!      120,   121,   433,  1540,   435,   125,   704,   705,   706,   707,
!     1896,    23,   157,    25,   700,    44,   714,   469,   704,   705,
!      706,    44,   317,  2456,  1556,  1562,  1563,  2460,  2461,   508,
!     2655,   476,  2657,   478,   584,  2660,   560,  1744,    59,  1896,
!     2817,    37,  1579,    39,    40,   710,  1583,   710,   704,   705,
!      706,   707,   347,    63,   389,   281,   710,  1764,  1889,   619,
!      620,  1593,  2394,   648,  2396,   650,   651,  1898,  1600,   103,
!      104,   105,   551,   299,  1044,  1045,  1046,  1922,   437,  2394,
!      710,   226,   551,   552,   419,   710,  2888,    94,    95,   710,
!     1699,  1777,   704,   705,  1925,   706,   707,   696,   697,   177,
!      710,   710,  1711,  1712,   213,   214,   401,   230,   710,   588,
!      710,   590,   710,  1954,  1955,  1956,  1957,  1958,  1963,  1378,
!     2901,  2902,  2614,   710,   247,  1779,   710,  1386,  1387,   424,
!     1662,  2319,   384,   385,  2316,  2317,  2318,   710,   258,  1398,
!     1399,  1673,   710,  1974,  1681,   104,   105,    31,   271,   625,
!      626,   627,   628,   629,   630,   631,    31,   706,   707,  1945,
!      710,    22,    23,    31,  1423,  2090,   696,   697,  1427,  1428,
!     1429,  1430,   300,   301,   469,  2001,  1862,   598,  1437,  2182,
!      704,   705,  2645,    31,  2010,  1871,  1245,  1246,  1874,   713,
!      416,   417,    31,  2024,   611,   612,  1805,    31,  2430,    31,
!      426,   427,  2832,  2833,  1813,  1814,  1815,    31,   353,   710,
!     1469,  1470,   633,   634,   635,     1,  1475,   488,   403,  1688,
!      641,  2052,  1441,  1442,   526,   710,  2057,   254,    31,    31,
!      532,    31,    31,  1492,   655,   656,   657,    31,  1497,    31,
!     1709,  1710,  2031,  1502,   519,  2620,    31,   242,   259,   372,
!      432,   380,  1721,   376,  2257,   584,   186,   552,    31,   215,
!      403,  1730,    59,  1949,   387,   196,  2097,    56,    31,    31,
!       31,   416,    44,  2104,   238,  1534,  2102,   663,  2610,   336,
!      710,  1540,  2614,  2615,  2616,   669,   667,   572,   686,   672,
!      682,   680,   670,  2138,  2139,   674,   668,   685,  1557,   679,
!      677,   476,   447,  1562,  1563,   681,   241,  1993,   683,  2068,
!       51,   589,  2071,  1884,   532,   515,   435,   213,  2025,   605,
!     1579,  1790,  2566,   710,  1583,   248,  1585,  1586,   215,   368,
!      283,  2090,  1801,    31,  2567,   814,   710,   532,    31,   251,
!     2026,    31,    51,   822,    31,   586,   340,    63,   827,   551,
!      288,   354,  1611,   476,   477,   713,  1888,    20,  2429,    31,
!       31,   514,    17,   533,   419,  1897,   518,  1904,   491,   552,
!      493,   695,   432,   432,   526,   527,   855,   708,   715,    24,
!      710,    31,   506,   535,   536,  2174,  2175,  2176,   116,  2929,
!     2421,  2422,  1924,   545,    23,   547,    48,   549,   711,   432,
!      485,  2776,  2942,   485,   552,   552,   233,   336,    45,   367,
!      336,   476,   586,    23,   432,   186,    52,  2124,    61,   286,
!      286,  2030,  1681,  2755,   242,   576,   414,  2759,   432,    31,
!      652,    23,    63,  1692,   710,  2266,  1968,   195,   145,  2270,
!        1,  2050,   196,   551,  2053,  2324,   551,  1916,   600,  1798,
!      695,   375,   476,   516,  2161,   328,    44,   612,  2289,  1991,
!     1992,   584,   515,   412,  2001,    26,    27,    28,    29,    44,
!       44,   552,    31,  2010,   288,  2316,  2317,  2318,    31,   552,
!      317,    31,   233,   288,    38,   241,     1,  2173,   422,   403,
!      714,  2023,  2323,   713,   713,   412,   713,  2328,   126,  2330,
!     2037,  2033,   713,   713,   713,   713,   713,   713,  2117,   713,
!     2047,  2120,   552,    43,   646,   713,   713,   713,  1777,  2051,
!      713,   713,   713,  2354,   713,   713,   713,   713,  2137,   474,
!       44,  1010,  1011,   713,   713,   713,   713,   713,    25,   161,
!     2371,   713,   713,   476,   713,   106,   107,  2378,   713,   713,
!      111,   713,   113,   713,   209,   713,   117,   118,   476,   120,
!      121,   552,   552,   865,   125,  2102,   552,   222,    45,   713,
!      872,  2180,  2643,   713,   229,   713,   713,   713,   713,   713,
!     1839,   552,  1841,  2409,   367,  1844,   552,   710,   294,  1848,
!      552,  2277,   894,   233,  1853,   552,    18,  1856,  1857,  1858,
!     1859,   233,  1861,  1862,   623,   336,   300,  1866,  1867,    18,
!     1869,   710,  1871,   713,   367,  1874,   593,   592,   147,   671,
!     1879,  1880,   146,   673,   186,  2311,   186,  1886,  2387,  2388,
!      551,  1890,   336,  1892,   542,  2394,   395,   576,   436,    60,
!      444,    31,    31,  2402,    31,  1904,    31,    31,   695,    51,
!       51,    51,    51,    51,   309,   552,  2363,   521,   695,   695,
!     2517,   288,  2369,   695,    38,   714,   714,   519,   714,   105,
!      103,   714,  2141,   104,  2381,  1934,   285,   339,   215,   461,
!     2366,   833,   432,  1942,   584,   340,   339,   839,   339,  2614,
!     1949,   161,   102,   339,  1953,  1954,  1955,  1956,  1957,  1958,
!     1959,   339,   375,  2706,    45,   515,   433,  1966,   197,   351,
!       18,   416,   583,   865,   339,   697,  2547,   372,   147,   186,
!      872,   336,   523,   378,    31,    31,   576,   435,   327,   455,
!      433,    51,    31,   714,  1993,   714,  1995,  1996,   714,  2276,
!     2349,   714,  2001,  2002,   714,  2576,   898,   714,   210,   714,
!       31,  2010,   298,   714,   714,   326,   552,   422,  2290,   714,
!      714,   271,   714,   714,   714,  1244,  2555,  2026,  2027,  2028,
!      425,   102,   487,  2032,   710,   552,   431,   502,  2037,   233,
!       33,   576,  2319,   147,   440,    58,  2045,   696,  2047,  2048,
!      942,   267,   714,  2619,  2326,   463,   233,   949,   950,   454,
!      205,   397,  2591,   186,    31,   872,   536,   220,    51,    44,
!       51,   714,   377,   714,   234,  2701,   714,    31,   320,   714,
!      714,   714,   714,   714,   714,   480,   714,   528,  2177,   714,
!      646,   714,   714,   714,  2443,   714,   714,  2446,   459,   380,
!      551,   432,   502,  2102,  2701,   233,  2605,  2726,  2607,  1328,
!      328,   233,  2321,   508,  2613,  2614,  2615,  2616,  2390,    43,
!      380,   459,    58,    25,   519,   300,   459,   320,   570,   186,
!     2556,   410,  2409,  2559,    44,   344,   714,   460,  2723,   714,
!       33,   714,  2351,   538,   714,   714,  1038,   459,  2733,   714,
!      186,  1043,   714,  2600,   714,   714,   255,   714,   294,   714,
!       31,   714,   557,   714,    31,   714,    17,   714,   563,   564,
!      196,   356,    31,   267,   689,   539,    23,   323,   505,    31,
!      575,   714,   687,  2768,  2631,   695,   714,   714,   695,   584,
!     2761,   675,   587,   714,   714,   714,   714,   563,   714,    44,
!      123,  2200,   690,     7,   696,  2414,  2205,   145,   192,   134,
!      132,   155,  2211,   237,   280,   220,   286,   690,   319,  2218,
!     2219,  2410,  2571,  2222,  2223,  2224,  2225,  1705,  2854,   665,
!      367,  2816,   660,  2232,   296,  2584,  1122,  2236,  2237,  2238,
!      375,  2240,  2241,  2242,  2243,   702,  1721,   697,  1717,   421,
!     1740,  2147,  2601,  1134,   233,  2254,  2755,  2854,  2843,  2758,
!     2759,   696,   330,  1757,  1131,   739,  2265,   432,  2267,  1165,
!      440,  1772,  2271,  1762,  2273,  1157,  2861,  2276,  2277,  1192,
!     2443,   761,   469,   772,  2633,  1192,  1812,  2713,  2714,  2860,
!     2716,  2177,  2291,  2292,  1513,  2277,  1202,   308,  2883,  2746,
!     1611,  1204,  2574,   990,   990,  2931,   571,  1408,   188,  1580,
!     2282,   582,  2311,   575,   967,   710,  2071,  2316,  2317,  2318,
!     2319,   829,   948,  1434,  1658,  2324,  1010,  1660,  2390,  2614,
!     2394,  1663,   544,  1855,  2931,   594,  1402,  1480,  2407,   600,
!     1043,  2624,  2619,   783,  2343,  1680,  2618,   603,  2630,  1585,
!     1855,   865,  1489,  1574,   550,  1043,  1414,  2037,  1504,   617,
!     1544,  2932,  2361,  2362,  1546,  1530,  1511,  2366,  1051,   622,
!     2369,  2576,  2574,  2726,  2945,  2723,  2375,  2900,   629,  2562,
!     2923,   192,  2834,  2561,  2955,  1494,  2309,  2559,  2826,  1948,
!     2295,  2298,  1904,   634,  1583,   206,  2745,  2276,  2747,  2271,
!     1394,  1389,   642,  2366,  2830,  1624,  2832,  2833,   219,  2517,
!     2409,  1630,  1631,  1632,   645,  2591,  2243,  2369,   942,  2494,
!     2477,  2878,   752,   280,   434,   956,  2003,  1469,  1470,  2261,
!     2639,  2640,  2781,  2817,   261,   257,  2950,   248,  2960,  1658,
!     2974,  2966,  2989,  2964,  2600,    -1,  1665,   977,    -1,    -1,
!       -1,    -1,  2451,    -1,    -1,    -1,    -1,  2904,    -1,    -1,
!       -1,    -1,  2888,    -1,    -1,  2891,    -1,   102,  2894,  2895,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  1378,    -1,    -1,  2578,
!     2579,    -1,    -1,  2492,    -1,  1387,  2585,    -1,  2770,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   320,
!      145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,  2732,    -1,    -1,  2525,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  2535,  1429,  1430,    -1,
!     2749,    -1,    -1,  1585,    -1,    -1,    -1,    -1,    -1,  2548,
!     2549,    -1,    -1,    -1,    -1,    -1,    -1,  2556,    -1,    -1,
!     2559,    -1,   197,    -1,   375,   200,    -1,    -1,   203,   204,
!     2569,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2928,
!       -1,    -1,    -1,  1475,    -1,   396,    -1,    -1,    -1,  2588,
!     2589,    -1,  2941,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,  2950,    -1,  2952,  2953,    -1,    -1,  2956,    -1,  1828,
!     1502,  2960,    -1,    -1,    -1,  2964,    -1,    -1,    -1,    -1,
!     2619,  1840,    -1,  1842,  1843,    -1,  1845,  1846,    -1,    -1,
!       -1,    -1,   443,    -1,    -1,  2844,    -1,   448,    -1,    -1,
!     2912,    -1,    -1,    -1,  1863,    -1,   281,    -1,    -1,    -1,
!       -1,  1870,    -1,  1872,    -1,    -1,  1875,  1876,  1877,  1878,
!       -1,  2933,  1881,    -1,   299,   476,    -1,  2666,    -1,    -1,
!     1562,  1563,    -1,    -1,  2946,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,  2683,   496,    -1,    -1,    -1,  2688,
!       -1,    -1,    -1,  1585,    -1,    -1,  2905,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   515,    -1,   517,    -1,    -1,    -1,
!     2709,    -1,    -1,    -1,  2713,  2714,    -1,  2716,    31,    -1,
!       -1,   532,    -1,    -1,    -1,    -1,    -1,  2726,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2947,    -1,
!     2949,    -1,  2741,  2742,  2743,  2744,    -1,    -1,    -1,    62,
!     2959,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,   416,   417,    -1,    -1,    -1,    -1,    -1,    -1,  1681,
!       -1,   426,   427,    -1,    -1,    -1,    -1,  1839,    -1,  1841,
!       -1,    -1,  1844,    -1,    -1,    -1,  1848,    -1,    -1,    -1,
!       -1,  1853,  2811,  1855,  1856,  1857,  1858,  1859,    -1,  1861,
!       -1,    -1,    -1,    -1,  1866,  1867,    -1,  1869,    -1,    -1,
!       -1,  2830,    -1,  2832,  2833,    -1,    -1,  1879,  1880,  2058,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,  2071,    -1,    -1,   490,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  2090,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2878,
+       -1,    -1,    -1,    -1,    -1,  1777,   199,    -1,    -1,  2888,
+       -1,    -1,  2891,    -1,  2893,  2894,  2895,    -1,    -1,   710,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,  1954,  1955,  1956,  1957,  1958,   552,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  2925,  2926,    -1,    -1,
!       -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1839,    -1,  1841,
!       -1,    -1,  1844,    -1,    -1,   268,  1848,    -1,    -1,    -1,
!       -1,  1853,    -1,  1855,  1856,  1857,  1858,  1859,    -1,  1861,
!     1862,   284,    -1,    -1,  1866,  1867,    -1,  1869,    -1,  1871,
!       -1,    -1,  1874,    -1,  2203,    -1,    -1,  1879,  1880,    -1,
!     2209,  2210,    -1,    -1,  2213,    -1,  2215,  2216,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  2048,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,  2234,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2246,  2247,    -1,
!       -1,  2250,  1839,  2252,  1841,    -1,  2255,  1844,    -1,    -1,
!       -1,  1848,    -1,    -1,    -1,    -1,  1853,    -1,    -1,  1856,
!     1857,  1858,  1859,    -1,  1861,    -1,  2275,  1949,    -1,  1866,
!     1867,    -1,  1869,    -1,  2283,  2284,  2285,    -1,    -1,    -1,
!       -1,    -1,  1879,  1880,    -1,    -1,   389,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,  1993,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2001,
!        0,     1,    -1,    -1,    -1,     5,    -1,     7,  2010,     9,
        10,    11,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    26,    27,    28,    29,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  2048,    -1,  2200,    -1,
!       -1,    -1,    -1,  2205,    -1,    -1,    -1,    -1,    -1,  2211,
!       -1,    -1,    -1,    -1,    -1,  2394,  2218,  2219,    -1,    -1,
!     2222,  2223,  2224,  2225,    -1,    -1,    -1,    -1,    -1,    -1,
!     2232,    -1,    -1,    -1,  2236,  2237,  2238,    -1,  2240,  2241,
!     2242,  2243,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!     2102,    -1,  2254,    -1,    -1,    -1,   106,   107,    -1,    -1,
!       -1,   111,    -1,   113,   537,    -1,    -1,   117,   118,    -1,
!      120,   121,    -1,    -1,    -1,   125,    -1,    -1,    -1,    -1,
!       -1,  2048,    -1,    -1,  2463,    -1,  2465,    -1,    -1,    -1,
!       -1,  2470,  2471,     0,     1,    -1,    -1,    -1,     5,    -1,
!        7,    -1,     9,    10,    11,    -1,    -1,    14,    15,    16,
!       -1,    -1,    -1,    -1,  2316,  2317,  2318,    -1,    -1,    26,
!       27,    28,    29,    -1,    -1,    -1,  2505,    -1,  2507,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2200,    -1,
!       -1,    -1,    -1,  2205,    -1,    -1,    -1,    -1,    -1,  2211,
!       -1,    -1,    -1,    -1,    -1,    -1,  2218,  2219,     1,    -1,
!     2222,  2223,  2224,  2225,    -1,    -1,    -1,    -1,    -1,    -1,
!     2232,    -1,    -1,    -1,  2236,  2237,  2238,    -1,  2240,  2241,
!     2242,  2243,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
!      107,    -1,  2254,    -1,   111,    -1,   113,    -1,    -1,    -1,
!      117,   118,    -1,   120,   121,    -1,    -1,    -1,   125,    -1,
!       -1,    -1,    55,    -1,    -1,    -1,  2605,    -1,  2607,    -1,
!       -1,    -1,    -1,  2200,    -1,  2614,    -1,   710,  2205,     1,
!       -1,    -1,    -1,    -1,  2211,    -1,    -1,    -1,    -1,  2451,
!       -1,  2218,  2219,    -1,    -1,  2222,  2223,  2224,  2225,  2311,
!       -1,    -1,    -1,    -1,    -1,  2232,    -1,    -1,   318,  2236,
!     2237,  2238,    -1,  2240,  2241,  2242,  2243,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,  2254,    -1,  2668,
!     2492,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   144,    -1,    -1,  2366,   148,   149,   150,   151,   152,
+      153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
+      163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
+      173,   174,   175,   176,    -1,   178,  2725,   180,   181,   182,
+      183,   184,   185,    -1,    -1,    -1,    -1,  2409,    -1,    -1,
+     2739,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,  2755,    -1,    -1,    -1,
+     2759,    -1,   144,    -1,    -1,    -1,   148,   149,   150,   151,
+      152,   153,   154,   155,   156,   157,   158,   159,   160,  2451,
+      162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
+      172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
+      182,   183,   184,   185,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,
+     2492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   509,
+      510,    -1,    -1,    -1,  2666,    -1,    -1,    -1,   301,    -1,
+       -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,  2683,    -1,    -1,  2451,    -1,  2688,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   334,    -1,    -1,  2556,    -1,    -1,  2559,    -1,    -1,
!       -1,  2713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,  2492,    -1,    -1,    -1,    -1,
!       -1,     0,     1,    -1,    -1,    -1,     5,    -1,     7,   301,
!        9,    10,    11,   305,    -1,    14,    15,    16,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    26,    27,    28,
!       29,    -1,    -1,    -1,    -1,    -1,    -1,  2619,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,   421,     0,
!        1,    -1,    -1,    -1,     5,    13,     7,    -1,     9,    10,
!       11,    -1,   509,    14,    15,    16,    -1,    -1,    -1,  2811,
!       -1,    -1,    -1,    31,    32,    26,    27,    28,    29,    -1,
!       -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1,    -1,
!       -1,  2683,    50,    51,    -1,    -1,  2688,   106,   107,    57,
!      473,    -1,   111,    61,   113,    63,    -1,    -1,   117,   118,
!       -1,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   421,
!       -1,  2713,  2714,    -1,  2716,   498,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,  2878,    -1,    -1,    -1,
!       -1,    -1,   100,   101,    -1,   518,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   112,   106,   107,    -1,    -1,    -1,
!      111,    -1,   113,    -1,    -1,    -1,   117,   118,    -1,   120,
!      121,   473,    -1,    -1,   125,    -1,  2683,    -1,    -1,    -1,
!       -1,  2688,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,  2811,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
+      188,   189,   190,   191,    -1,   193,    -1,    -1,  2830,   197,
+     2832,  2833,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   207,
+       -1,   209,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
+      218,    -1,    -1,   221,    -1,   223,    -1,    -1,    -1,   227,
+      228,    -1,    -1,   231,    -1,    -1,   234,   235,    -1,    -1,
+       -1,   239,   240,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      663,   664,   250,    -1,    -1,    -1,  2888,    -1,   256,  2891,
+       -1,    -1,  2894,  2895,  2811,   263,    -1,    -1,   266,   318,
+       -1,    -1,   270,    -1,    -1,    -1,   274,   275,    -1,    -1,
+      278,    -1,   280,    -1,   697,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,   296,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   306,   307,
+       -1,    -1,   310,   311,   312,   313,   314,   315,   316,   317,
+       -1,   663,   664,    -1,    -1,    -1,   324,    -1,    -1,    -1,
+       -1,   329,   330,   331,   332,    -1,    -1,   335,    -1,   337,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,   346,   347,
+      348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   361,   362,   363,   364,   365,   366,    -1,
+      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   380,   381,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   390,   391,   392,   393,    -1,    -1,    -1,    -1,
+      398,   399,   400,   401,   402,    -1,   404,   405,   406,   407,
+      408,   409,   410,   411,    -1,   413,    -1,   415,    -1,    -1,
+      418,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,
+      428,   429,   430,    -1,    -1,    -1,    -1,    -1,   436,    -1,
+       -1,   439,    -1,   441,   442,    -1,   444,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,    -1,   457,
+      509,   510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   469,   470,   471,   472,    -1,    -1,    -1,    -1,    -1,
+       -1,   479,    -1,    -1,    -1,    -1,   484,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   500,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   511,   512,    -1,    -1,    -1,   509,    -1,
!       -1,   519,   520,    -1,   522,    -1,    -1,    -1,   526,    -1,
!       -1,    -1,   530,   531,    -1,   533,   534,   535,   536,    -1,
!       -1,    -1,   540,    -1,    -1,   543,   544,   545,   546,   547,
!      548,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   559,   560,    -1,    -1,    -1,    -1,   565,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   573,   574,    -1,    -1,   577,
!      578,    -1,   580,   581,   582,    -1,    -1,   585,    -1,    -1,
!      588,    -1,    -1,   591,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,   665,     1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
!      698,   699,   700,   701,   702,   703,   704,   705,    -1,    42,
!       43,    44,    -1,    -1,    -1,   713,    -1,    50,    51,    -1,
!       -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,    -1,
!       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,   101,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
!       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   187,   188,   189,   190,   191,    -1,
+      193,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   207,    -1,   209,    -1,   211,    -1,
+       -1,    -1,    -1,    -1,    -1,   218,    -1,    -1,   221,    -1,
+      223,    -1,    -1,    -1,   227,   228,    -1,    -1,   231,    -1,
+       -1,   234,   235,    -1,    -1,    -1,   239,   240,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   250,    -1,    -1,
+       -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,    -1,    -1,
+      263,    -1,    -1,   266,    -1,    -1,    -1,   270,    -1,    -1,
+       -1,   274,   275,    -1,    -1,   278,    -1,   280,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
+       -1,    -1,    -1,   296,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   306,   307,    -1,    -1,   310,   311,   312,
+      313,   314,   315,   316,   317,    -1,    -1,    -1,    -1,    -1,
+       -1,   324,    -1,    -1,    -1,    -1,   329,   330,   331,   332,
+       -1,    -1,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   345,   346,   347,   348,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   309,    -1,    -1,   361,   362,
+      363,   364,   365,   366,    -1,   368,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,   381,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   390,   391,   392,
+      393,    -1,    -1,    -1,    -1,   398,   399,   400,   401,   402,
+       -1,   404,   405,   406,   407,   408,   409,   410,   411,    -1,
+      413,    -1,   415,    -1,    -1,   418,    -1,    -1,    -1,    -1,
+       -1,   424,    -1,    -1,    -1,   428,   429,   430,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,   439,    -1,   441,   442,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      453,    -1,    -1,    -1,   457,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   469,   470,   471,   472,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
!       -1,   484,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   500,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   511,   512,
!       -1,    -1,    -1,    -1,    -1,    -1,   519,   520,    -1,   522,
!       -1,    -1,    -1,   526,    -1,    -1,    -1,   530,   531,    -1,
!      533,   534,   535,   536,    -1,    -1,    -1,   540,    -1,    -1,
!      543,   544,   545,   546,   547,   548,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   559,   560,    -1,    -1,
!       -1,    -1,   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      573,   574,    -1,    -1,   577,   578,    -1,   580,   581,   582,
!       -1,    -1,   585,    -1,    -1,   588,    -1,    -1,   591,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       -1,     1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,   698,   699,   700,   701,   702,
!      703,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      100,   101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    62,   112,    64,    65,    66,    67,    68,    69,    70,
+       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+       91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
+      190,   191,    -1,   193,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
+       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,   218,    -1,
+       -1,   221,    -1,   223,    -1,    -1,    -1,   227,   228,    -1,
+       -1,   231,    -1,    -1,   234,   235,    -1,    -1,    -1,   239,
+      240,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   199,    -1,
+      250,    -1,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,
+       -1,    -1,    -1,   263,    -1,    -1,   266,    -1,    -1,    -1,
+      270,    -1,    -1,    -1,   274,   275,    -1,    -1,   278,    -1,
+      280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      290,    -1,    -1,   244,    -1,    -1,   296,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   306,   307,    -1,    -1,
+      310,   311,   312,   313,   314,   315,   316,   268,    -1,    -1,
+       -1,    -1,    -1,    -1,   324,    -1,    -1,    -1,    -1,   329,
+      330,   331,   332,   284,    -1,   335,    -1,   337,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   345,   346,    -1,   348,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   361,   362,   363,   364,   365,   366,    -1,   368,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      380,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      390,   391,   392,   393,    -1,    -1,    -1,    -1,   398,   399,
!      400,    -1,   402,    -1,   404,   405,   406,   407,   408,   409,
!      410,   411,    -1,   413,    -1,   415,    -1,    -1,   418,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,   429,
!      430,    -1,    -1,    -1,    -1,    -1,   436,    -1,   389,   439,
!       -1,   441,   442,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   453,    -1,    -1,    -1,   457,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      470,   471,   472,    -1,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,    -1,    -1,   484,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      500,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   511,   512,    -1,    -1,    -1,    -1,    -1,    -1,   519,
!      520,    -1,   522,    -1,    -1,    -1,   526,    -1,    -1,    -1,
!      530,   531,    -1,   533,   534,   535,   536,    -1,    -1,    -1,
!      540,    -1,    -1,   543,   544,   545,   546,   547,   548,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   559,
!       -1,    -1,    -1,    -1,    -1,   565,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   573,   574,    -1,    -1,   577,   578,    -1,
!      580,   581,   582,    -1,    -1,   585,   537,    -1,   588,    -1,
!       -1,   591,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,    -1,   665,     0,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    23,
+       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
+       -1,    -1,    31,    -1,   704,   705,    -1,    -1,    -1,    -1,
+       44,    45,    46,   713,    48,    -1,    -1,    51,    52,    -1,
+       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    64,    65,    66,    67,    68,
+       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+       89,    90,    91,    92,    93,    -1,    -1,    -1,   102,   103,
+      104,   105,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,   145,   146,    -1,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
!      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,   187,   188,   189,   190,    -1,   187,   188,
!       -1,   190,    -1,   197,   198,    -1,   200,    -1,    -1,   203,
!      204,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   252,   253,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   272,    -1,    -1,    -1,   281,   277,    -1,
!      279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   299,    -1,   301,    31,    -1,
!       -1,   305,    -1,   302,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      334,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,   416,   417,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   426,   427,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,    -1,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   490,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   552,    -1,
!       -1,   550,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
!      664,    -1,   666,   667,   668,   669,   670,    -1,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      684,   685,   686,   687,     0,     1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   710,    23,    24,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    44,    45,
!       46,    -1,    48,    -1,    -1,    51,    52,    -1,    -1,    55,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,     0,     1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
!       -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
!       -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,
!      146,    -1,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   159,   160,    -1,   162,   163,   164,   165,
!      166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
!      176,    -1,   178,    -1,   180,   181,   182,   183,   184,   185,
!      186,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,   197,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   144,    -1,    -1,   211,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
!      162,   163,   164,   165,   166,   167,   168,   169,   234,   171,
!      172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
!      182,   183,   184,   185,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,   305,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,
!       -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,
!       -1,    -1,   368,   305,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,   401,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   469,    -1,    -1,    -1,   473,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,   473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   572,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   663,   664,   665,
!      666,   667,   668,   669,   670,   671,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,   684,   685,
!      686,   687,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   710,    23,    24,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   663,   664,    -1,    42,    -1,    44,    45,    46,    -1,
!       48,    -1,    -1,    51,    52,    -1,    -1,    55,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    63,    -1,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   103,   104,   105,    -1,    -1,
+       -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
+       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,   159,   160,    -1,   162,   163,   164,   165,   166,   167,
!      168,   169,    -1,   171,   172,   173,   174,   175,   176,    -1,
!      178,    -1,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,
!      198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,    -1,    -1,   211,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,   234,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,   337,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!      368,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,   323,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      334,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,
+       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   469,    -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   473,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
*************** static const yytype_int16 yycheck[] =
*** 9214,9279 ****
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
       658,   659,   660,   661,   662,   663,   664,   665,   666,   667,
!      668,   669,   670,   671,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,     0,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
!       44,    45,    -1,    47,    -1,    -1,    50,    51,    -1,   673,
!       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,
!       -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,   102,   103,
-       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,
-      144,    -1,   146,   147,   148,   149,   150,   151,   152,   153,
-      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
-      164,   165,   166,   167,    -1,   169,   170,   171,   172,   173,
-      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
-      184,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
-       -1,   195,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   142,    -1,    -1,   209,   146,   147,   148,   149,
-      150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
-      160,   161,   162,   163,   164,   165,   166,   167,    -1,   169,
-      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
-      180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,
!      304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   333,
!       -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,
!       -1,    -1,    -1,   367,   304,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   333,    -1,    -1,   400,    -1,    -1,   403,
!       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   467,    -1,    -1,    -1,   471,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
       594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
       604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
--- 10773,10976 ----
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
       658,   659,   660,   661,   662,   663,   664,   665,   666,   667,
!      668,   669,   670,    -1,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,   684,   685,   686,   687,
!        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   710,    23,    24,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    33,    -1,    -1,    -1,    -1,    -1,   663,
!      664,    -1,    42,    -1,    44,    45,    46,    -1,    48,    -1,
!       -1,   675,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
!      160,    -1,   162,   163,   164,   165,   166,   167,   168,   169,
!       -1,   171,   172,   173,   174,   175,   176,    -1,   178,    -1,
!      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
!      190,    -1,    -1,    -1,    -1,    -1,    -1,   197,   198,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,   328,    -1,
!       -1,    -1,    -1,    -1,   334,    -1,    -1,   337,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,
!       -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      490,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   557,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   663,   664,    -1,   666,   667,   668,   669,
!      670,    -1,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,   684,   685,   686,   687,     0,     1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      710,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    31,
!       -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       42,    -1,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
!       52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   144,    -1,   146,    -1,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
!      162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
!      172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
!      182,   183,   184,   185,   186,   187,   188,   189,   190,    -1,
!       -1,    -1,    -1,    -1,    -1,   197,   198,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,
!       -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   323,    -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,   337,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,
!       -1,   473,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   490,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   557,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,   663,   664,    -1,   666,   667,   668,   669,   670,    -1,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,   684,   685,   686,   687,     0,     1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    33,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
!       44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,    -1,   146,    -1,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,   187,   188,   189,   190,    -1,    -1,    -1,
!       -1,    -1,    -1,   197,   198,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!       -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,
!       -1,    -1,    -1,    -1,   328,    -1,    -1,    -1,    -1,    -1,
!      334,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   378,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,
!      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,   473,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   490,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   557,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
       594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
       604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
*************** static const yytype_int16 yycheck[] =
*** 9282,9348 ****
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
       654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
!      664,   665,   666,   667,   668,    -1,   670,   671,   672,   673,
       674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,
!       -1,    -1,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    42,    43,    44,    45,    -1,    47,    -1,    -1,
!       -1,    51,    -1,   673,    54,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
!      160,   161,   162,   163,   164,   165,   166,   167,    -1,   169,
!      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
!      180,   181,   182,   183,   184,   185,   186,   187,   188,    -1,
!       -1,    -1,    -1,    -1,    -1,   195,   196,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
!       -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,   146,   147,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,    -1,   160,   161,   162,   163,   164,   165,   166,   167,
!      240,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
!      178,   179,   180,   181,   182,   183,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,
-       -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   322,    -1,    -1,    -1,    -1,   327,    -1,    -1,
!       -1,    -1,    -1,   333,    -1,    -1,   336,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
!       -1,   299,    -1,    -1,    -1,    -1,   304,   377,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,
-      400,    -1,    -1,   403,    -1,   333,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   555,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
--- 10979,11183 ----
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
       654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
!      664,    -1,   666,   667,   668,   669,   670,    -1,   672,   673,
       674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      684,   685,   686,   687,     0,     1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   710,    23,    24,    -1,
+       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    44,    45,
+       46,    -1,    48,    -1,    -1,    -1,    52,    -1,    -1,    55,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,
!      146,    -1,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   159,   160,    -1,   162,   163,   164,   165,
!      166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
!      176,    -1,   178,    -1,   180,   181,   182,   183,   184,   185,
!      186,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,   197,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,   305,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,   325,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,
!       -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   469,    -1,    -1,    -1,   473,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   557,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   663,   664,    -1,
!      666,   667,   668,   669,   670,    -1,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,   684,   685,
!      686,   687,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   710,    23,    24,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
!       48,    -1,    -1,    51,    52,    -1,    -1,    55,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    63,     0,     1,    -1,     3,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       14,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   112,    -1,    -1,    51,    -1,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,   159,   160,    -1,   162,   163,   164,   165,   166,   167,
!      168,   169,    -1,   171,   172,   173,   174,   175,   176,    -1,
!      178,    -1,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,   189,   190,   127,    -1,    -1,    -1,    -1,    -1,    -1,
!      198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,    -1,    -1,   211,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,   234,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,   337,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!      368,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      334,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      464,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   473,
!       -1,    -1,    -1,    -1,   542,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   570,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,   586,    -1,
!       -1,   589,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   663,   664,    -1,   666,   667,
!      668,   669,   670,    -1,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,   684,   685,   686,   687,
!        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,
!       -1,    -1,   710,    23,    24,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,
!      664,    -1,    -1,    -1,    44,    45,    46,    -1,    48,    -1,
!       -1,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   103,   104,   105,    -1,    -1,    -1,    -1,
!       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
!      160,    -1,   162,   163,   164,   165,   166,   167,   168,   169,
!       -1,   171,   172,   173,   174,   175,   176,    -1,   178,    -1,
!      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
!      190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
*************** static const yytype_int16 yycheck[] =
*** 9350,9485 ****
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,   664,   665,   666,   667,   668,    -1,
!      670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,     0,     1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      700,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    -1,
-       -1,    -1,    -1,    -1,    -1,    31,    -1,    33,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,
-       -1,    47,    -1,    -1,    -1,    51,    -1,    -1,    54,    -1,
-       -1,    -1,    -1,    -1,    -1,   673,    62,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,   144,    -1,
-      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
-      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
-      176,    -1,   178,   179,   180,   181,   182,   183,   184,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,   195,
-      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,   142,    -1,
-       -1,    -1,   146,   147,   148,   149,   150,   151,   152,   153,
-      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
-      164,   165,   166,   167,   240,   169,   170,   171,   172,   173,
-      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,
!       -1,   327,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,
!      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,
-      304,   377,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,   333,
!       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   467,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   488,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   555,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   515,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,   664,   665,
!      666,   667,   668,    -1,   670,   671,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,     0,     1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,
-       -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    31,
-       -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    51,
-       -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,   673,
-       62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      142,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
!      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
!      172,   173,   174,    -1,   176,    -1,   178,   179,   180,   181,
!      182,   183,   184,   185,   186,   187,   188,    -1,    -1,    -1,
!       -1,    -1,    -1,   195,   196,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
!       -1,    -1,   142,    -1,    -1,    -1,   146,   147,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
!      160,   161,   162,   163,   164,   165,   166,   167,   240,   169,
!      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
!      180,   181,   182,   183,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,
-       -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      322,    -1,    -1,    -1,    -1,   327,    -1,    -1,    -1,    -1,
-       -1,   333,    -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,   299,
!       -1,    -1,    -1,    -1,   304,   377,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,
!       -1,   403,    -1,   333,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,   471,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   488,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
-       -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   555,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
       612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
--- 11185,11252 ----
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   663,   664,    -1,   666,   667,   668,   669,
!      670,    -1,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,   684,   685,   686,   687,     0,     1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      710,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    31,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    44,    45,    46,    -1,    48,    -1,    -1,    51,
+       52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   103,   104,   105,    -1,    -1,    -1,    -1,    -1,    -1,
+      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   144,    -1,   146,    -1,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
!      162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
!      172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
!      182,   183,   184,   185,   186,   187,   188,   189,   190,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,
!       -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   473,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
       612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
*************** static const yytype_int16 yycheck[] =
*** 9487,9690 ****
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   664,   665,   666,   667,   668,    -1,   670,   671,
       672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
!       -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    42,    43,    44,    45,    -1,    47,
!       -1,    -1,    -1,    51,    -1,    -1,    54,    -1,    -1,    -1,
!       -1,    -1,    -1,   673,    62,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   142,    -1,   144,    -1,   146,   147,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,    -1,   160,   161,   162,   163,   164,   165,   166,   167,
!       -1,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
!      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,   196,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   209,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
!      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
!      166,   167,   240,   169,   170,   171,   172,   173,   174,    -1,
!      176,    -1,   178,   179,   180,   181,   182,   183,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   322,    -1,   324,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,   336,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
-       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,   377,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   400,    -1,    -1,   403,    -1,   333,    -1,    -1,
!       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
-       -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   555,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,   664,   665,   666,   667,
!      668,    -1,   670,   671,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,     0,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,    23,
-       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       44,    45,    -1,    47,    -1,    -1,    50,    51,    -1,    -1,
-       54,    -1,    -1,    -1,    -1,    -1,    -1,   673,    62,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,
!       -1,    -1,    51,    -1,    -1,    54,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,
!      144,    -1,   146,   147,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
!      164,   165,   166,   167,    -1,   169,   170,   171,   172,   173,
!      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
!      184,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,
       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
!       -1,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
!      169,   170,   171,   172,   173,   174,    -1,   176,    -1,   178,
!      179,   180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,
!      304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   333,
!       -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,
-      299,    -1,    -1,    -1,    -1,   304,   380,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,   403,
!       -1,    -1,    -1,    -1,   333,   409,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,
!       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
!       -1,    -1,    -1,    -1,    -1,    -1,   540,    -1,    -1,    -1,
!       -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   568,    -1,    -1,   496,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   583,
!       -1,    -1,   586,    -1,    -1,    -1,   515,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,    -1,
!      664,   665,   666,   667,   668,    -1,   670,   671,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
         0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      694,   695,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,
-       -1,    -1,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,
-       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    43,    44,    45,    -1,    47,    -1,    -1,
-       50,    51,    -1,    -1,    54,   664,   665,   666,   667,   668,
-       -1,   670,   671,   672,   673,   674,   675,   676,   677,   678,
-      679,   680,   681,   682,   683,     1,    -1,     3,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   101,   102,   103,    -1,    31,    -1,    -1,    -1,    -1,
!      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
!       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    54,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
!      160,   161,   162,   163,   164,   165,   166,   167,    -1,   169,
!      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
!      180,   181,   182,   183,   184,   185,   186,   187,   188,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,   125,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
!       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,    -1,
!      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   233,   160,   161,   162,   163,   164,   165,
!      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
!      176,    -1,   178,   179,   180,   181,   182,   183,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,
!       -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
!       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   403,    -1,    -1,    -1,   333,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,   462,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
--- 11254,12043 ----
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,   663,   664,    -1,   666,   667,   668,   669,   670,    -1,
       672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,   684,   685,   686,   687,     0,     1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       44,    45,    46,    -1,    48,    -1,    -1,    51,    52,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
!      104,   105,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,    -1,   146,    -1,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,   187,   188,   189,   190,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!       -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
!      664,    -1,   666,   667,   668,   669,   670,    -1,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      684,   685,   686,   687,     0,     1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   710,    23,    24,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
!       46,    -1,    48,    -1,    -1,    51,    52,    -1,    -1,    55,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
!       -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,
!      146,    -1,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   159,   160,    -1,   162,   163,   164,   165,
!      166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
!      176,    -1,   178,    -1,   180,   181,   182,   183,   184,   185,
!      186,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,   235,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,   305,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   663,   664,    -1,
!      666,   667,   668,   669,   670,    -1,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,   684,   685,
!      686,   687,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   710,    23,    24,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    46,    -1,
!       48,    -1,    -1,    51,    52,    -1,    -1,    55,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   103,   104,   105,    -1,    -1,
!       -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,
       148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,   159,   160,    -1,   162,   163,   164,   165,   166,   167,
!      168,   169,    -1,   171,   172,   173,   174,   175,   176,    -1,
!      178,    -1,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,     0,     1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    23,    24,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
!       45,    46,    -1,    48,    -1,    -1,    -1,    52,    -1,    -1,
!       55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   144,
!       -1,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
!      155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
!      165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
!      175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
!      185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   198,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   663,   664,    -1,   666,   667,
!      668,   669,   670,    -1,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,   684,   685,   686,   687,
!       -1,     0,     1,    -1,    -1,    -1,   301,    -1,    -1,    -1,
!      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   710,    -1,    23,    24,    -1,    -1,   323,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,
!       -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,
!       -1,    -1,    -1,    52,    -1,    -1,    55,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,
!       -1,    -1,    -1,    52,    -1,   144,    55,   146,    -1,   148,
       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
!      159,   160,    -1,   162,   163,   164,   165,   166,   167,   168,
!      169,    -1,   171,   172,   173,   174,   175,   176,   473,   178,
!       -1,   180,   181,   182,   183,   184,   185,   186,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,
!       -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,
+      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+      159,   160,    -1,   162,   163,   164,   165,   166,   167,   168,
+      169,    -1,   171,   172,   173,   174,   175,   176,    -1,   178,
+       -1,   180,   181,   182,   183,   184,   185,   186,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,   664,
!       -1,   666,   667,   668,   669,   670,    -1,   672,   673,   674,
!      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
!      685,   686,   301,    -1,     0,     1,   305,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   323,   710,    -1,    23,    24,    -1,
+       -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
+       46,    -1,    48,    -1,    -1,    -1,    52,    -1,    -1,    55,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,
!      146,    -1,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   159,   160,    -1,   162,   163,   164,   165,
!      166,   167,   168,   169,   473,   171,   172,   173,   174,   175,
!      176,    -1,   178,    -1,   180,   181,   182,   183,   184,   185,
!      186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,
!       -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,
!      669,   670,    -1,   672,   673,   674,   675,   676,   677,   678,
!      679,   680,   681,   682,   683,   684,   685,   686,    -1,    -1,
!        0,     1,    -1,    -1,    -1,   301,    -1,    -1,    -1,   305,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   710,    -1,    23,    24,    -1,    -1,   323,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,
!       -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,
!       -1,    -1,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,
!      669,   670,    -1,   672,   673,   674,   675,   676,   677,   678,
!      679,   680,   681,   682,   683,   684,   685,   686,    -1,    -1,
         0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   710,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,
!       -1,    -1,    52,    -1,   144,    55,   146,    -1,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
!      160,    -1,   162,   163,   164,   165,   166,   167,   168,   169,
!       -1,   171,   172,   173,   174,   175,   176,   473,   178,    -1,
!      180,   181,   182,   183,   184,   185,   186,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,
!       -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
!      160,    -1,   162,   163,   164,   165,   166,   167,   168,   169,
!       -1,   171,   172,   173,   174,   175,   176,    -1,   178,    -1,
!      180,   181,   182,   183,   184,   185,   186,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,   664,    -1,
!      666,   667,   668,   669,   670,    -1,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,   684,   685,
!      686,   301,    -1,     0,     1,   305,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   323,   710,    -1,    23,    24,    -1,    -1,
+       -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,
+       -1,    48,    -1,    -1,    -1,    52,    -1,    -1,    55,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,   146,
+       -1,   148,   149,   150,   151,   152,   153,   154,   155,   156,
+      157,   158,   159,   160,    -1,   162,   163,   164,   165,   166,
+      167,   168,   169,   473,   171,   172,   173,   174,   175,   176,
+       -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,
+       -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,   669,
!      670,    -1,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,   684,   685,   686,    -1,    -1,     0,
!        1,    -1,    -1,    -1,   301,    -1,    -1,    -1,   305,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      710,    -1,    23,    24,    -1,    -1,   323,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,
!       -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
!       -1,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,   669,
!      670,    -1,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,   684,   685,   686,    -1,    -1,     0,
!        1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      710,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
!       -1,    52,    -1,   144,    55,   146,    -1,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!       -1,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
!      171,   172,   173,   174,   175,   176,   473,   178,    -1,   180,
!      181,   182,   183,   184,   185,   186,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,
!       -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!       -1,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
!      171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
!      181,   182,   183,   184,   185,   186,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   663,   664,    -1,   666,
!      667,   668,   669,   670,    -1,   672,   673,   674,   675,   676,
!      677,   678,   679,   680,   681,   682,   683,   684,   685,   686,
!      301,    -1,     0,     1,   305,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   323,   710,    -1,    23,    24,    -1,    -1,    -1,
!       -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
!       48,    -1,    -1,    -1,    52,    -1,    -1,    55,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,
!      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,   159,   160,    -1,   162,   163,   164,   165,   166,   167,
!      168,   169,   473,   171,   172,   173,   174,   175,   176,    -1,
!      178,    -1,   180,   181,   182,   183,   184,   185,   186,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
!      198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,   666,   667,   668,   669,   670,
!       -1,   672,   673,   674,   675,   676,   677,   678,   679,   680,
!      681,   682,   683,   684,   685,   686,    -1,    -1,     0,     1,
!       -1,    -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,
!       -1,    23,    24,    -1,    -1,   323,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,
!       -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,    -1,
!       52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,   666,   667,   668,   669,   670,
!       -1,   672,   673,   674,   675,   676,   677,   678,   679,   680,
!      681,   682,   683,   684,   685,   686,    -1,    -1,     0,     1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,
!       -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,    -1,
!       52,    -1,   144,    55,   146,    -1,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
!      162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
!      172,   173,   174,   175,   176,   473,   178,    -1,   180,   181,
!      182,   183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,
!      498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   144,    -1,   146,    -1,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,   159,   160,    -1,
!      162,   163,   164,   165,   166,   167,   168,   169,    -1,   171,
!      172,   173,   174,   175,   176,    -1,   178,    -1,   180,   181,
!      182,   183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,
!       -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   663,   664,    -1,   666,   667,
!      668,   669,   670,    -1,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,   684,   685,   686,   301,
!       -1,     0,     1,   305,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   323,   710,    -1,    23,    24,    -1,    -1,    -1,    -1,
!       -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,
!       -1,    -1,    -1,    52,    -1,    -1,    55,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,
!      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
!      159,   160,    -1,   162,   163,   164,   165,   166,   167,   168,
!      169,   473,   171,   172,   173,   174,   175,   176,    -1,   178,
!       -1,   180,   181,   182,   183,   184,   185,   186,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,   198,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   663,   664,    -1,   666,   667,   668,   669,   670,    -1,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,   684,   685,   686,    -1,    -1,     0,     1,    -1,
!       -1,    -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,
!       23,    24,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,
!       -1,    -1,    45,    46,    -1,    48,    -1,    -1,    -1,    52,
!       -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   663,   664,    -1,   666,   667,   668,   669,   670,    -1,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,   684,   685,   686,    -1,    -1,     0,     1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,
!       23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    45,    46,    -1,    48,    -1,    -1,    -1,    52,
!       -1,   144,    55,   146,    -1,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
!      163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
!      173,   174,   175,   176,   473,   178,    -1,   180,   181,   182,
!      183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,   498,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   144,    -1,   146,    -1,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
!      163,   164,   165,   166,   167,   168,   169,    -1,   171,   172,
!      173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
!      183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,
!       -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,
!      669,   670,    -1,   672,   673,   674,   675,   676,   677,   678,
!      679,   680,   681,   682,   683,   684,   685,   686,   301,    -1,
!        0,     1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      323,   710,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,
!       -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,
!       -1,    -1,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
!      160,    -1,   162,   163,   164,   165,   166,   167,   168,   169,
!      473,   171,   172,   173,   174,   175,   176,    -1,   178,    -1,
!      180,   181,   182,   183,   184,   185,   186,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,   198,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      663,   664,    -1,   666,   667,   668,   669,   670,    -1,   672,
!      673,   674,   675,   676,   677,   678,   679,   680,   681,   682,
!      683,   684,   685,   686,    -1,    -1,     0,     1,    -1,    -1,
!       -1,   301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,    23,
!       24,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,
!       -1,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      663,   664,    -1,   666,   667,   668,   669,   670,    -1,   672,
!      673,   674,   675,   676,   677,   678,   679,   680,   681,   682,
!      683,   684,   685,   686,    -1,    -1,     0,     1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    -1,
!      144,    55,   146,    -1,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
!      174,   175,   176,   473,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,   498,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      144,    -1,   146,    -1,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!       -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   663,   664,    -1,   666,   667,   668,   669,
!      670,    -1,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,   684,   685,   686,   301,    -1,     0,
!        1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,
!      710,    -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,
!      334,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,    -1,
!       -1,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   144,    -1,   146,    -1,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!       -1,   162,   163,   164,   165,   166,   167,   168,   169,   473,
!      171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
!      181,   182,   183,   184,   185,   186,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,   198,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,
!      664,    -1,   666,   667,   668,   669,   670,    -1,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      684,   685,   686,    -1,    -1,     0,     1,    -1,    -1,    -1,
!      301,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,    23,    24,
!       -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,    -1,
!       45,    46,    -1,    48,    -1,    -1,    -1,    52,    -1,    -1,
!       55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,
!      664,    -1,   666,   667,   668,   669,   670,    -1,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      684,   685,   686,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   710,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
!       -1,   146,    -1,   148,   149,   150,   151,   152,   153,   154,
!      155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
!      165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
!      175,   176,   473,   178,    -1,   180,   181,   182,   183,   184,
!      185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   198,    -1,    -1,    -1,   498,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,
!      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,   666,   667,   668,   669,   670,
!       -1,   672,   673,   674,   675,   676,   677,   678,   679,   680,
!      681,   682,   683,   684,   685,   686,     1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   710,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
!       55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!        1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   498,    45,    -1,    -1,   112,    -1,    -1,
!       51,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
!       -1,    -1,    -1,   148,   149,   150,   151,   152,   153,   154,
!      155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
!      165,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
!      175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
!      185,    -1,   187,   188,   189,   190,   127,    -1,    -1,    -1,
!       -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   144,    -1,    -1,   211,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!       -1,   162,   163,   164,   165,   166,   167,   168,   169,   234,
!      171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
!      181,   182,   183,   184,   185,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,   664,
!       -1,   666,   667,   668,   669,   670,    -1,   672,   673,   674,
!      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
!      685,   686,    -1,     1,    -1,    -1,   301,    -1,    -1,    -1,
!      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   710,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,   334,
!       -1,    -1,   337,    -1,    -1,    -1,    44,    -1,    -1,    -1,
!       -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      301,    -1,    -1,   368,   305,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      395,    -1,    -1,   334,    -1,   103,   104,   105,    -1,   404,
!       -1,    -1,    -1,    -1,   112,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   464,    -1,    -1,   234,   235,   533,    -1,
!       -1,   536,   473,    -1,    -1,    -1,    -1,   542,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   570,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
!       -1,   586,    -1,    -1,   589,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
!      368,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      675,    -1,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,
!       -1,    51,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    63,    -1,    -1,   404,    -1,    -1,   704,
!      705,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,    -1,    -1,    -1,   436,    -1,
!       -1,    -1,    -1,   103,   104,   105,    -1,    -1,    -1,    -1,
!       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
!      190,    -1,    -1,    -1,    -1,   533,    -1,   197,   536,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      210,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,   687,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    42,
!       -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   389,
!       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,
!      103,   104,   105,    -1,    -1,    -1,   436,    -1,    -1,   112,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,   211,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
*************** static const yytype_int16 yycheck[] =
*** 9692,9758 ****
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,   664,   665,   666,   667,   668,    -1,
!      670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
!      680,   681,   682,   683,     0,     1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      700,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    44,    45,
!       -1,    47,    -1,    -1,    50,    51,    -1,    -1,    54,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,
!        1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    14,    15,    16,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       31,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    50,
!       -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,   144,    -1,
!      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
!      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
!      176,    -1,   178,   179,   180,   181,   182,   183,   184,   185,
!      186,   187,   188,    -1,   125,    -1,    -1,    -1,    -1,    -1,
!      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   142,    -1,   209,    -1,   146,   147,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
!      161,   162,   163,   164,   165,   166,   167,   233,   169,   170,
!      171,   172,   173,   174,    -1,   176,    -1,   178,   179,   180,
!      181,   182,   183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,
!       -1,   367,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   333,    -1,    -1,    -1,    -1,   403,    -1,    -1,
!       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   462,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
-      471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
       596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
       606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
--- 12045,12108 ----
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,   337,   665,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,   687,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    42,    -1,    44,    -1,
!       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,   381,    -1,
!       -1,    -1,    -1,    -1,   714,    -1,    -1,    63,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   424,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,
!       -1,    -1,    -1,   436,    -1,    -1,   112,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
+       -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,    -1,   211,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       -1,   337,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    42,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,   381,    -1,    -1,    -1,    -1,
!       -1,   714,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,
!       -1,    -1,    -1,    -1,   103,   104,   105,    -1,    -1,    -1,
!      436,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
       596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
       606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
*************** static const yytype_int16 yycheck[] =
*** 9760,9826 ****
       626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
       636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
       646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,   664,   665,
!      666,   667,   668,    -1,   670,   671,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,     0,     1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,
!       -1,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,    31,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    43,    44,    45,    -1,    47,    -1,    -1,    50,    51,
!       -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,     0,     1,    -1,     3,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    16,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,   101,
!      102,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
!       -1,    -1,    -1,    50,    -1,    -1,    -1,    54,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      142,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
!      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
!      172,   173,   174,    -1,   176,    -1,   178,   179,   180,   181,
!      182,   183,   184,   185,   186,   187,   188,    -1,   125,    -1,
!       -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   142,    -1,   209,    -1,   146,
!      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,    -1,   160,   161,   162,   163,   164,   165,   166,
!      167,   233,   169,   170,   171,   172,   173,   174,    -1,   176,
!       -1,   178,   179,   180,   181,   182,   183,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,
-       -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   299,    -1,    -1,   367,    -1,   304,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,    -1,
!       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   462,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
--- 12110,12173 ----
       626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
       636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
       646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,   337,   665,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,
!       -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
!       42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,   714,    -1,
!       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,
!       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
!       -1,   103,   104,   105,    -1,    -1,    -1,   436,    -1,    -1,
!      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,
!       -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,   211,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    -1,   337,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    42,    -1,    44,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,   381,
!       -1,    -1,    -1,    -1,    -1,   714,    -1,    -1,    63,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,   103,   104,
!      105,    -1,    -1,    -1,   436,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
*************** static const yytype_int16 yycheck[] =
*** 9829,10422 ****
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   664,   665,   666,   667,   668,    -1,   670,   671,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
!       -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,    47,
!       -1,    -1,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
!        3,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
!       -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,    -1,
!       -1,    -1,   110,    -1,    -1,    -1,    -1,    50,    -1,    -1,
!       -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   142,    -1,   144,    -1,   146,   147,
!      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
!      158,    -1,   160,   161,   162,   163,   164,   165,   166,   167,
!       -1,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
!      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
!      188,    -1,   125,    -1,    -1,    -1,    -1,    -1,   196,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
!       -1,   209,    -1,   146,   147,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,    -1,   160,   161,   162,
!      163,   164,   165,   166,   167,   233,   169,   170,   171,   172,
!      173,   174,    -1,   176,    -1,   178,   179,   180,   181,   182,
!      183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,   367,
!       -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      333,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
!       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   462,
-       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,   471,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,   664,   665,   666,   667,
!      668,    -1,   670,   671,   672,   673,   674,   675,   676,   677,
!      678,   679,   680,   681,   682,   683,     0,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
!       44,    45,    -1,    47,    -1,    -1,    50,    51,    -1,    -1,
!       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    23,    24,    -1,    -1,   101,   102,   103,
!       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
!       -1,    51,    -1,    -1,    54,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,
!      144,    -1,   146,   147,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
!      164,   165,   166,   167,    -1,   169,   170,   171,   172,   173,
!      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
!      184,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
!       -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,   233,
!      160,   161,   162,   163,   164,   165,   166,   167,    -1,   169,
!      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
!      180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,
-      304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   333,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,   299,
!       -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,   403,
!       -1,    -1,    -1,   333,    -1,   409,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,   592,   593,
-      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
-      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
-      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
-      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
-      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
-      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
-      654,   655,   656,   657,   658,   659,   660,   661,   662,    -1,
-      664,   665,   666,   667,   668,    -1,   670,   671,   672,   673,
-      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,     0,     1,    -1,   664,   665,   666,   667,   668,    -1,
-      670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
-      680,   681,   682,   683,    23,    24,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      700,    -1,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,
-       -1,    -1,    51,    -1,    -1,    54,     0,     1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,
!       24,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       44,    45,    -1,    47,    -1,    -1,    -1,    51,    -1,    -1,
-       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,
-      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-       -1,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
-      169,   170,   171,   172,   173,   174,    -1,   176,    -1,   178,
-      179,   180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,   142,    -1,
-      144,    -1,   146,   147,   148,   149,   150,   151,   152,   153,
-      154,   155,   156,   157,   158,    -1,   160,   161,   162,   163,
-      164,   165,   166,   167,    -1,   169,   170,   171,   172,   173,
-      174,    -1,   176,    -1,   178,   179,   180,   181,   182,   183,
-      184,    -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,
-       -1,    -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
-       -1,    47,    -1,    -1,    -1,    51,    -1,    -1,    54,    -1,
-      299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,     0,
-        1,    -1,    -1,    -1,   333,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    23,    24,    -1,   299,    -1,    -1,    -1,    -1,
-      304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    44,    45,    -1,    47,    -1,   322,    -1,
-       51,    -1,    -1,    54,    -1,    -1,   142,    -1,   144,   333,
-      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
-      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
-      176,    -1,   178,   179,   180,   181,   182,   183,   184,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   142,   471,   144,    -1,   146,   147,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
!      161,   162,   163,   164,   165,   166,   167,   496,   169,   170,
!      171,   172,   173,   174,    -1,   176,    -1,   178,   179,   180,
!      181,   182,   183,   184,    -1,    -1,   515,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   196,    -1,   471,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
-       -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,
-       -1,   515,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,
-       -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   333,    -1,    -1,   664,   665,   666,   667,   668,
!       -1,   670,   671,   672,   673,   674,   675,   676,   677,   678,
!      679,   680,   681,   682,   683,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   700,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
!      664,   665,   666,   667,   668,    -1,   670,   671,   672,   673,
!      674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
!      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,   515,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,     0,     1,    -1,   664,   665,
!      666,   667,   668,    -1,   670,   671,   672,   673,   674,   675,
!      676,   677,   678,   679,   680,   681,   682,   683,    23,    24,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    44,
!       45,    -1,    47,    -1,    -1,    -1,    51,    -1,    -1,    54,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-        0,     1,    -1,   664,   665,   666,   667,   668,    -1,   670,
-      671,   672,   673,   674,   675,   676,   677,   678,   679,   680,
-      681,   682,   683,    23,    24,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,
-       -1,    -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,
-       -1,    51,    -1,    -1,    54,    -1,    -1,   142,    -1,   144,
-       -1,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-      155,   156,   157,   158,    -1,   160,   161,   162,   163,   164,
-      165,   166,   167,    -1,   169,   170,   171,   172,   173,   174,
-       -1,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   142,    -1,   144,    -1,   146,   147,   148,   149,
!      150,   151,   152,   153,   154,   155,   156,   157,   158,    -1,
!      160,   161,   162,   163,   164,   165,   166,   167,    -1,   169,
!      170,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
!      180,   181,   182,   183,   184,    -1,    -1,    -1,     0,     1,
!       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    23,    24,    -1,   299,    -1,    -1,    -1,    -1,   304,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    44,    45,    -1,    47,    -1,   322,    -1,    51,
-       -1,    -1,    54,     0,     1,    -1,    -1,    -1,   333,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,
-       47,    -1,    -1,    -1,    51,    -1,    -1,    54,    -1,   299,
-       -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      142,    -1,   144,   333,   146,   147,   148,   149,   150,   151,
-      152,   153,   154,   155,   156,   157,   158,    -1,   160,   161,
-      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
-      172,   173,   174,    -1,   176,    -1,   178,   179,   180,   181,
-      182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   196,   142,   471,   144,    -1,   146,
-      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-      157,   158,    -1,   160,   161,   162,   163,   164,   165,   166,
-      167,   496,   169,   170,   171,   172,   173,   174,    -1,   176,
-       -1,   178,   179,   180,   181,   182,   183,   184,    -1,    -1,
-      515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   471,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,
-       -1,    -1,   304,    -1,    -1,    -1,   496,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      322,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,
!       -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,   664,
-      665,   666,   667,   668,    -1,   670,   671,   672,   673,   674,
-      675,   676,   677,   678,   679,   680,   681,   682,   683,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,
-       -1,    -1,     1,    -1,   664,   665,   666,   667,   668,    -1,
-      670,   671,   672,   673,   674,   675,   676,   677,   678,   679,
-      680,   681,   682,   683,   496,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      700,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   471,    54,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   142,    -1,    -1,    -1,   146,   147,   148,
       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
!       -1,   160,   161,   162,   163,   164,   165,   166,   167,    -1,
!      169,   170,   171,   172,   173,   174,    -1,   176,    -1,   178,
!      179,   180,   181,   182,   183,    -1,    -1,    -1,    -1,     0,
!        1,    -1,   664,   665,   666,   667,   668,   196,   670,   671,
!      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
!      682,   683,    23,    24,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
!       -1,    -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,
!       51,    -1,    -1,    54,     0,     1,    -1,   664,   665,   666,
!      667,   668,    -1,   670,   671,   672,   673,   674,   675,   676,
!      677,   678,   679,   680,   681,   682,   683,    23,    24,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,    44,    45,
-       -1,    47,    -1,    -1,    -1,    51,    -1,    -1,    54,    -1,
-      299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   142,    -1,   144,   333,   146,   147,   148,   149,   150,
-      151,   152,   153,   154,   155,   156,   157,   158,    -1,   160,
-      161,   162,   163,   164,   165,   166,   167,    -1,   169,   170,
-      171,   172,   173,   174,    -1,   176,    -1,   178,   179,   180,
-      181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   196,   142,    -1,   144,    -1,
-      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-      156,   157,   158,    -1,   160,   161,   162,   163,   164,   165,
-      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
-      176,   420,   178,   179,   180,   181,   182,   183,   184,    -1,
-       -1,    -1,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
-      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    23,    24,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   471,    -1,    -1,    -1,    44,    45,    -1,    47,
-       -1,    -1,    -1,    51,    -1,    -1,    54,    -1,   299,    -1,
-       -1,    -1,    -1,   304,    -1,    -1,    -1,   496,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   322,    -1,    -1,    -1,    -1,   515,     0,     1,    -1,
-       -1,    -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       23,    24,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    44,    45,    -1,    47,    -1,   322,    -1,    51,    -1,
-       -1,    54,    -1,    -1,   142,    -1,   144,   333,   146,   147,
-      148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
-      158,    -1,   160,   161,   162,   163,   164,   165,   166,   167,
-       -1,   169,   170,   171,   172,   173,   174,    -1,   176,    -1,
-      178,   179,   180,   181,   182,   183,   184,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,
!      471,   144,    -1,   146,   147,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,    -1,   160,   161,   162,
!      163,   164,   165,   166,   167,   496,   169,   170,   171,   172,
!      173,   174,    -1,   176,    -1,   178,   179,   180,   181,   182,
!      183,   184,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   196,    -1,   471,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
!      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,   515,
!       -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,    -1,
-       -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   322,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      333,    -1,    -1,   664,   665,   666,   667,   668,    -1,   670,
-      671,   672,   673,   674,   675,   676,   677,   678,   679,   680,
-      681,   682,   683,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   471,    -1,    -1,     1,    -1,   664,   665,
-      666,   667,   668,    -1,   670,   671,   672,   673,   674,   675,
-      676,   677,   678,   679,   680,   681,   682,   683,   496,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   700,    -1,    -1,   515,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   471,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   142,    -1,    -1,
-       -1,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-      155,   156,   157,   158,    -1,   160,   161,   162,   163,   164,
-      165,   166,   167,    -1,   169,   170,   171,   172,   173,   174,
-       -1,   176,    -1,   178,   179,   180,   181,   182,   183,   184,
-       -1,    -1,    -1,     0,     1,    -1,   664,   665,   666,   667,
-      668,   196,   670,   671,   672,   673,   674,   675,   676,   677,
-      678,   679,   680,   681,   682,   683,    23,    24,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   700,    -1,    -1,    -1,    -1,    44,    45,    -1,
-       47,    -1,    -1,    -1,    51,    -1,    -1,    54,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,     1,
-       -1,   664,   665,   666,   667,   668,    -1,   670,   671,   672,
-      673,   674,   675,   676,   677,   678,   679,   680,   681,   682,
-      683,    23,    24,    -1,   299,    -1,    -1,    -1,    -1,   304,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,    -1,
-       -1,    -1,    44,    45,    -1,    47,    -1,    -1,    -1,    51,
-       -1,    -1,    54,    -1,    -1,   142,    -1,   144,   333,   146,
-      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-      157,   158,    -1,   160,   161,   162,   163,   164,   165,   166,
-      167,    -1,   169,   170,   171,   172,   173,   174,    -1,   176,
-       -1,   178,   179,   180,   181,   182,   183,   184,    -1,    -1,
-       -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,   196,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      142,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
!      152,   153,   154,   155,   156,   157,   158,    54,   160,   161,
!      162,   163,   164,   165,   166,   167,    -1,   169,   170,   171,
!      172,   173,   174,    -1,   176,    -1,   178,   179,   180,   181,
!      182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   196,    -1,   471,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,    -1,
!       -1,   496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,    -1,
!      515,    -1,    -1,    -1,    -1,   142,   333,    -1,    -1,   146,
!      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,    -1,   160,   161,   162,   163,   164,   165,   166,
!      167,    -1,   169,   170,   171,   172,   173,   174,    -1,   176,
!       -1,   178,   179,   180,   181,   182,   183,   184,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,   196,
!       -1,    -1,   304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      322,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   471,    31,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   299,    -1,    50,    -1,    -1,   304,    54,   496,
!       -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,   471,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   496,    -1,   142,    -1,    -1,    -1,
!      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
!      156,   157,   158,   515,   160,   161,   162,   163,   164,   165,
!      166,   167,    -1,   169,   170,   171,   172,   173,   174,    -1,
!      176,    -1,   178,   179,   180,   181,   182,   183,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      196,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   471,    -1,    -1,   664,   665,   666,
!      667,   668,    -1,   670,   671,   672,   673,   674,   675,   676,
!      677,   678,   679,   680,   681,   682,   683,    -1,    -1,   496,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   700,    -1,    -1,    -1,    -1,   515,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   299,    -1,    -1,    -1,    -1,   304,    -1,
-       -1,    -1,   664,   665,   666,   667,   668,    -1,   670,   671,
-      672,   673,   674,   675,   676,   677,   678,   679,   680,   681,
-      682,   683,    -1,    -1,    -1,    -1,    -1,   333,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    42,    43,    -1,    -1,    -1,
-       -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,   394,    -1,
-       -1,    -1,    -1,    -1,    -1,    62,    -1,   403,    -1,    -1,
-       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,
-       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   471,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      496,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   515,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
-      187,   188,    -1,    -1,   530,    -1,    -1,   533,   195,    -1,
-       -1,    -1,    -1,    -1,   540,    -1,    -1,    -1,    -1,    -1,
-       -1,   208,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   568,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   583,    -1,    -1,
!      586,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   673,    -1,   336,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      367,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
!       -1,    50,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   388,    -1,    62,    -1,    -1,     1,    -1,    -1,    -1,
!       -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,
!       -1,    -1,   101,   102,   103,    -1,    -1,    -1,   435,    -1,
!       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
-       -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,
-       -1,    -1,    -1,   530,    -1,    -1,   533,   142,    -1,    -1,
-      209,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-      155,   156,   157,   158,    -1,   160,   161,   162,   163,   164,
-      165,   166,   167,    -1,   169,   170,   171,   172,   173,   174,
-       -1,   176,    -1,   178,   179,   180,   181,   182,   183,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   196,    -1,    -1,    -1,   592,   593,   594,   595,   596,
-      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
-      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
-      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
-      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
-      657,   658,   659,   660,   661,   662,   663,   336,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       31,    -1,    -1,    -1,   299,    -1,    -1,    -1,   367,   304,
-       -1,    42,    43,    -1,    -1,    -1,    -1,   704,    -1,    50,
-       -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    62,    -1,    -1,     1,    -1,    -1,    -1,   333,    -1,
-       -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,
-      409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,
-      101,   102,   103,    -1,    -1,    -1,   435,    -1,    -1,   110,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
!       -1,    -1,    -1,    -1,    -1,   420,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
!       -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,
!       -1,   530,    -1,    -1,   533,   142,   471,    -1,   209,   146,
!      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,    -1,   160,   161,   162,   163,   164,   165,   166,
!      167,   496,   169,   170,   171,   172,   173,   174,    -1,   176,
!       -1,   178,   179,   180,   181,   182,   183,    -1,    -1,    -1,
!      515,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
--- 12176,12603 ----
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   337,   665,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    -1,   687,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    42,    -1,    44,    -1,    -1,    -1,
!       -1,    -1,    -1,    51,    -1,    -1,   381,    -1,    -1,    -1,
!       -1,    -1,   714,    -1,    -1,    63,    -1,     1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
!       -1,    -1,    -1,    -1,    -1,   103,   104,   105,    -1,    -1,
!       -1,   436,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!      144,   536,    -1,   211,   148,   149,   150,   151,   152,   153,
!      154,   155,   156,   157,   158,   159,   160,    -1,   162,   163,
!      164,   165,   166,   167,   168,   169,   234,   171,   172,   173,
!      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
!      184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   198,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    -1,   337,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,   301,    -1,    -1,
!      368,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,   714,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      334,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,
+       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
+       -1,    -1,    51,    -1,    -1,   533,    -1,    -1,   536,   473,
+       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,   665,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,   714,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,
!      664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   675,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,     1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   713,   714,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
+       -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   144,    -1,    -1,   211,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
!      163,   164,   165,   166,   167,   168,   169,   234,   171,   172,
!      173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
!      183,   184,   185,   186,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,
!       -1,   368,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
!      323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   334,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
!       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
+      473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
!      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
!      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
!      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
!      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
!      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
!      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
!      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!        1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   713,   714,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      663,   664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   675,    -1,    -1,    -1,    -1,   112,    -1,    -1,
!       -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   144,    -1,    -1,   211,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!       -1,   162,   163,   164,   165,   166,   167,   168,   169,   234,
!      171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
!      181,   182,   183,   184,   185,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      301,    -1,    -1,   368,   305,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
!       -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,   473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       63,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,   714,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   675,    -1,    -1,    -1,    -1,   112,
!       -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   144,    -1,    -1,   211,   148,
       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
!      159,   160,    -1,   162,   163,   164,   165,   166,   167,   168,
!      169,   234,   171,   172,   173,   174,   175,   176,    -1,   178,
!       -1,   180,   181,   182,   183,   184,   185,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   301,    -1,    -1,   368,   305,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,   473,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
+      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
+      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
+      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
+      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
+      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
+      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
+      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
+       31,    -1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    63,    -1,     1,    -1,    -1,    -1,    -1,    -1,
!       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,   714,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   663,   664,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   675,    -1,    -1,    -1,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,    -1,
!      211,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,   159,   160,    -1,   162,   163,   164,   165,   166,
!      167,   168,   169,   234,   171,   172,   173,   174,   175,   176,
!       -1,   178,    -1,   180,   181,   182,   183,   184,   185,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   301,    -1,    -1,   368,   305,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,
+       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
+       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,   473,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
+      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
+      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
+      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
+      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
+      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
+      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
+      661,   662,    31,    -1,   665,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    63,    -1,     1,    -1,    -1,    -1,
!       -1,    -1,    -1,   704,   705,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   713,   714,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   663,   664,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   675,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
!       55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
!       -1,    -1,   211,   148,   149,   150,   151,   152,   153,   154,
!      155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
!      165,   166,   167,   168,   169,   234,   171,   172,   173,   174,
!      175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
!      185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,   368,
!      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,
!       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
!       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   473,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
*************** static const yytype_int16 yycheck[] =
*** 10424,10520 ****
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,   663,   336,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
!       -1,    -1,   299,    -1,    -1,    -1,   367,   304,    -1,    42,
!       43,    -1,    -1,    -1,    -1,   704,    -1,    50,    -1,   380,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
!       -1,    -1,     1,    -1,    -1,    -1,   333,    -1,    -1,   400,
!       -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,   101,   102,
!      103,    -1,    -1,    -1,   435,    -1,    -1,   110,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
-       -1,    -1,    -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
-       -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,   142,   471,    -1,   209,   146,   147,   148,
-      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-       -1,   160,   161,   162,   163,   164,   165,   166,   167,   496,
-      169,   170,   171,   172,   173,   174,    -1,   176,    -1,   178,
-      179,   180,   181,   182,   183,    -1,    -1,    -1,   515,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,   663,   336,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
-      299,    -1,    -1,    -1,   367,   304,    -1,    42,    43,    -1,
-       -1,    -1,    -1,   704,    -1,    50,    -1,   380,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
-       -1,    -1,    -1,    -1,   333,    -1,    -1,   400,    -1,    -1,
-      403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      423,    -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,
-       -1,    -1,   435,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
-      195,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
-      533,    -1,   471,    -1,   209,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   515,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
-      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
-      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
-      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
-      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
-      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
-      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
-      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
-      663,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   367,    -1,    -1,    42,    43,    -1,    -1,    -1,
-       -1,   704,    -1,    50,    -1,   380,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,
-       -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,
-       -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,
-      435,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
-      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,
-       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
-       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
--- 12605,12729 ----
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,   705,     1,    -1,     3,
!       -1,    -1,    -1,    -1,   713,   714,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,   664,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!      675,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,
!       -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
+      144,    -1,    -1,    -1,   148,   149,   150,   151,   152,   153,
+      154,   155,   156,   157,   158,   159,   160,   234,   162,   163,
+      164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
+      174,   175,   176,    -1,   178,    -1,   180,   181,   182,   183,
+      184,   185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   368,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,
+       -1,   305,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
!      334,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
+      464,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   473,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   518,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
+        1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   713,   714,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,
+      664,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
+       -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   144,    -1,    -1,   211,   148,   149,   150,
+      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+       -1,   162,   163,   164,   165,   166,   167,   168,   169,   234,
+      171,   172,   173,   174,   175,   176,    -1,   178,    -1,   180,
+      181,   182,   183,   184,   185,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      301,    -1,    -1,   368,   305,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
+      421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,   473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
*************** static const yytype_int16 yycheck[] =
*** 10522,10694 ****
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,   336,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      367,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,   704,
!       -1,    50,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,
!       -1,    -1,   101,   102,   103,    -1,    -1,    -1,   435,    -1,
!       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
-       -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,
-       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,
-      209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
-      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
-      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
-      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
-      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
-      657,   658,   659,   660,   661,   662,   663,   336,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,
!       -1,    42,    43,    -1,    -1,    -1,    -1,   704,    -1,    50,
!       -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,
!      409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,
!      101,   102,   103,    -1,    -1,    -1,   435,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
-       -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,
-       -1,   530,    -1,    -1,   533,    -1,    -1,    -1,   209,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
-      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
-      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
-      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
-      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
-      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
-      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
-      659,   660,   661,   662,   663,   336,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,
-       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-       -1,    -1,   423,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
!       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
!       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,
!       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
       601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
       611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
--- 12731,12856 ----
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       63,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,   714,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   663,   664,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
!       -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   144,    -1,    -1,   211,   148,
+      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+      159,   160,    -1,   162,   163,   164,   165,   166,   167,   168,
+      169,   234,   171,   172,   173,   174,   175,   176,    -1,   178,
+       -1,   180,   181,   182,   183,   184,   185,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   198,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   301,    -1,    -1,   368,   305,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,    -1,    -1,
+       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
+       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
!       -1,    -1,   421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,   473,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   498,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   518,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    -1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    63,    -1,     1,    -1,    -1,    -1,    -1,    -1,
!       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,   714,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   663,   664,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,    -1,    -1,
!      211,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,   159,   160,    -1,   162,   163,   164,   165,   166,
!      167,   168,   169,   234,   171,   172,   173,   174,   175,   176,
!       -1,   178,    -1,   180,   181,   182,   183,   184,   185,   186,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   301,    -1,    -1,   368,   305,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   533,    -1,    -1,   536,   473,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
       601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
       611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
*************** static const yytype_int16 yycheck[] =
*** 10696,11069 ****
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
!      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
-       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
!       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
!       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
!       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
-       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
!       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
!       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
!       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
!       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,   289,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
!       -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
       601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
       611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
--- 12858,13172 ----
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    31,    -1,   665,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    63,    -1,     1,    -1,    -1,    -1,
+       -1,    -1,    -1,   704,   705,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   713,   714,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   663,   664,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
!       55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   144,
+       -1,    -1,   211,   148,   149,   150,   151,   152,   153,   154,
+      155,   156,   157,   158,   159,   160,    -1,   162,   163,   164,
+      165,   166,   167,   168,   169,   234,   171,   172,   173,   174,
+      175,   176,    -1,   178,    -1,   180,   181,   182,   183,   184,
+      185,   186,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,   368,
!      305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   334,
!       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
!       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   473,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
+      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
+      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
+      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
+      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
+      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
+      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
+      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,     1,    -1,
+       -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   713,   714,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   663,   664,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
!       -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   144,    -1,    -1,   211,   148,   149,   150,   151,   152,
!      153,   154,   155,   156,   157,   158,   159,   160,    -1,   162,
!      163,   164,   165,   166,   167,   168,   169,   234,   171,   172,
!      173,   174,   175,   176,    -1,   178,    -1,   180,   181,   182,
!      183,   184,   185,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   198,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   301,    -1,
!       -1,   368,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   334,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
!      473,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
!      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   713,   714,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      663,   664,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    31,    32,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
!       43,    44,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,
!       -1,    -1,   687,    -1,    57,    -1,    -1,    -1,    61,    -1,
!       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,   714,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   317,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   560,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    32,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    42,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       61,    -1,    63,    -1,    -1,   698,   699,   700,   701,   702,
!      703,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
+       -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
+       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
       601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
       611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
*************** static const yytype_int16 yycheck[] =
*** 11071,11407 ****
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   703,   704,    -1,    -1,    -1,    -1,    -1,    -1,
!      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       -1,    31,    32,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    49,
-       50,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,   435,
-       60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
-       -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   207,    -1,   209,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,    -1,   289,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   316,    -1,   694,   695,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,   704,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      400,    -1,    -1,   403,    -1,    -1,    -1,    31,    32,   409,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
!       -1,    -1,    -1,   423,    -1,    -1,    50,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,    60,    -1,    62,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   558,    -1,
-       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
-       -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   663,    -1,   289,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,   688,   689,
-      690,   691,   692,   693,   694,   695,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,
!       -1,    -1,    -1,    31,    32,   409,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,   423,
!       -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   435,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
-      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
-      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
-      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
-      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
-      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
-      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
-      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
-       -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   687,   688,   689,   690,   691,   692,   693,
-      694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    31,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-       43,    -1,    -1,    -1,    -1,   423,    -1,    50,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    62,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
!       -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   663,   289,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
-      688,   689,   690,   691,   692,   693,   694,   695,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,
-      403,    -1,    -1,    31,    -1,    -1,   409,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
-      423,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
-      533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
-      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
-      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
-      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
-      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
-      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
-      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
-      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
-      663,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   687,   688,   689,   690,   691,   692,
-      693,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      703,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    31,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-       43,    -1,    -1,    -1,    -1,   423,    -1,    50,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    62,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
-       -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
-      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
-      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
-      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-      658,   659,   660,   661,   662,   663,   289,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
-      688,   689,   690,   691,   692,   693,   694,   695,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,
-      403,    -1,    -1,    31,    -1,    -1,   409,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
-      423,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
-      533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
-      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
-      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
-      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
-      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
-      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
-      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
-      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
-      663,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,   688,   689,   690,   691,   692,
!      693,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      703,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    31,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-       43,    -1,    -1,    -1,    -1,   423,    -1,    50,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    62,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
-       -1,    -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
-      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
-      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
-      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-      658,   659,   660,   661,   662,   663,   289,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
-      688,   689,   690,   691,   692,   693,   694,   695,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,
-      403,    -1,    -1,    31,    -1,    -1,   409,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
-      423,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
!      533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
--- 13174,13425 ----
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    31,    32,   665,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    42,    43,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    61,    -1,    63,    -1,    -1,   698,   699,   700,
!      701,   702,   703,   704,   705,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,   698,
!      699,   700,   701,   702,   703,   704,   705,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
!      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
+       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
+       -1,   698,   699,   700,   701,   702,   703,   704,   705,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
+      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
+      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
+      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
+      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
+      655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
+      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
+       43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,   698,   699,   700,   701,   702,   703,   704,
+      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
*************** static const yytype_int16 yycheck[] =
*** 11409,11595 ****
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!      663,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   687,   688,   689,   690,   691,   692,
-      693,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      703,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-       -1,   409,    -1,    -1,    -1,    31,    32,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   423,    42,    43,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,   435,    -1,    -1,
-       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,   195,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   209,   592,   593,   594,   595,   596,   597,
-      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
-      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
-      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-      658,   659,   660,   661,   662,   663,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
-      688,   689,   690,   691,   692,   693,   694,   695,    -1,    -1,
-      316,    -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,
-       -1,    31,    32,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    42,    43,    -1,    -1,    -1,   423,    -1,    -1,
-       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
-       60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   558,    -1,    -1,   185,   186,   187,   188,    -1,
-       -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   663,    -1,   289,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      400,    -1,    -1,   403,    -1,    -1,    -1,    31,    32,   409,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
-       -1,    -1,    -1,   423,    -1,    -1,    50,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    60,    -1,    62,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
!       -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   663,    -1,   289,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,
-       -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,
-       -1,    -1,    31,    -1,    -1,   409,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,   423,
-       -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   435,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
-       -1,    -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
-      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
-      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
-      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
-      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
-      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
-      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
-      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
-      289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
-      694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   400,    -1,    -1,   403,    -1,    -1,    31,    -1,    -1,
-      409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
-       -1,    -1,    -1,    -1,   423,    -1,    50,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    62,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
-       -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
--- 13427,13551 ----
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    -1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    42,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    63,    -1,    -1,   698,   699,   700,   701,   702,
!      703,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
+       -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
+       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    31,    -1,   665,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    42,    43,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    63,    -1,    -1,   698,   699,   700,
!      701,   702,   703,   704,   705,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
*************** static const yytype_int16 yycheck[] =
*** 11597,11739 ****
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,   663,   289,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,
-       -1,    -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   346,    -1,    -1,    -1,    31,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
-       -1,    -1,    -1,   367,    -1,    50,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   380,    62,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,
!       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
!       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
!       -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   209,    -1,   530,    -1,    -1,   533,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
-      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
-      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
-      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
-      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
-      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
-      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
-      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
-       -1,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   367,   687,    -1,    -1,    -1,    -1,    -1,    -1,
-      694,   695,    -1,    -1,    -1,   380,    -1,    -1,    -1,   703,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,
-       -1,    31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,   423,    -1,
-       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      435,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,   289,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,
-      695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   433,    -1,   435,    -1,    62,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
-      195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
-       -1,    31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,
-       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      435,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
--- 13553,13677 ----
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,   698,
!      699,   700,   701,   702,   703,   704,   705,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
+      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,
!       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    31,    32,   665,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    44,
+       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    61,    -1,    63,    -1,
+       -1,   698,   699,   700,   701,   702,   703,   704,   705,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
+       -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   317,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   560,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
*************** static const yytype_int16 yycheck[] =
*** 11741,11998 ****
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,   289,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,
!      695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,
!       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   703,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
-       -1,    31,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      435,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,   289,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,
!      695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   703,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   403,    -1,    -1,    31,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    -1,    62,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   663,   289,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   703,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,   336,    -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
-       -1,    -1,    -1,   110,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,   185,   186,
-      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   530,   233,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
-      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
-      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
-      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
-      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
-      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
-      655,   656,   657,   658,   659,   660,   661,   662,   663,    31,
-      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,   703,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
!       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
-      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
-      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
-      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
-      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
-      657,   658,   659,   660,   661,   662,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   700,    -1,   367,    62,    63,    64,    65,
-       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-       86,    87,    88,    89,    90,    91,    92,    -1,    -1,    -1,
-       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,   193,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
-      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
-      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
-      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
-      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
-      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
-      662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    50,    -1,   530,    -1,    -1,   533,    -1,    -1,
-       -1,    -1,    -1,    -1,    62,    63,    64,    65,    66,    67,
-       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-       88,    89,    90,    91,    92,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 13679,13883 ----
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    31,    32,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
!       -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    61,    -1,
!       63,    -1,    -1,   698,    -1,    -1,    -1,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   160,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
+       -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    32,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       61,    -1,    63,    -1,    -1,   698,    -1,    -1,    -1,    -1,
!       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
+       -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
+      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
+      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
+      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
+      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
+      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
+      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
+      661,   662,    31,    32,   665,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    42,    -1,    44,    -1,    -1,    -1,    -1,
+       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
+       -1,    -1,    61,    -1,    63,    -1,    -1,   698,    -1,    -1,
+       -1,    -1,    -1,   704,   705,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    42,    -1,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,   698,
!       -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 12000,12160 ****
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
!       50,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
!       -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      110,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   185,   186,   187,   188,    -1,
!       -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
!       -1,    -1,    -1,    -1,    -1,    -1,   694,   695,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      400,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
-      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
-       62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   185,   186,   187,   188,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
!       -1,    -1,    -1,    -1,   694,   695,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,   380,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,
!       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,    -1,   110,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
-      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
-      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
-      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
-      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
-      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
-      662,   663,    -1,   336,    -1,   338,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   694,   695,   367,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    50,    -1,   530,    -1,    -1,
!      533,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   550,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
--- 13885,14089 ----
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
+      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    44,
+       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
+       -1,   698,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
+       -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   347,    -1,    -1,    -1,    31,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    44,
+       -1,    -1,    -1,   368,    -1,    -1,    51,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    63,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
!      235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
+      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
+      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
+      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
+      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
+      655,   656,   657,   658,   659,   660,   661,   662,    -1,    -1,
+      665,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   687,   368,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   698,    -1,    -1,   381,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
+      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
+      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
+      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
+      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
+      655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
+      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
+      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   434,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
*************** static const yytype_int16 yycheck[] =
*** 12162,12316 ****
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
!       -1,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   263,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
-       -1,    -1,   367,    -1,    -1,    -1,    -1,    43,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,   380,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
-       -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      435,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    -1,    -1,
!      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,
-      695,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
!       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    50,    -1,   530,    -1,    -1,   533,    -1,    -1,
-       -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    50,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
!       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
-       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
-      209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,   335,   336,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,   694,   695,   367,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       50,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,
-      409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 14091,14210 ----
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    -1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       51,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
+       -1,    -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
+       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
+      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
+      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
+      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
+      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
+      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
+      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
+      661,   662,    31,    -1,   665,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
+       -1,    -1,    51,    -1,    -1,    -1,   687,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   704,   705,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 12323,12584 ****
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    -1,    -1,   336,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       31,    -1,    -1,    -1,    -1,   694,   695,   367,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
!      380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,   209,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      550,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,    -1,   335,   336,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,
!       -1,    -1,    -1,    -1,   694,   695,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,   380,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,    -1,    -1,    -1,   209,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
-      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
-      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
-      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
-      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
-      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
-      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-      661,   662,    -1,    -1,   336,    31,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   694,   695,   367,    62,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
-       -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
-      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
-      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
-      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
-      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
-      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
-      662,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
-       -1,    31,   694,   695,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    43,    -1,    -1,    -1,   403,    -1,    -1,
-       50,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   101,   102,   103,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   233,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   694,   695,
-       -1,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,   209,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,   233,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,    -1,   338,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   367,    -1,    -1,    42,    43,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,
-       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   101,   102,   103,    -1,   433,
!       -1,   435,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,   480,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
-      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,   195,
-       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
-       -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   581,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
!      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   367,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
!       -1,    -1,    50,    -1,   380,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,
!       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,
!       -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,   435,
!       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
!       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   663,   336,    31,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
-       -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,   231,
-       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
--- 14217,14434 ----
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,   705,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
!      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
!      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
!      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
!      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
!      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
!      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,    31,    -1,   665,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,
!      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
!      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
!      705,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   337,    -1,    44,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,   112,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!      368,    31,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
!      713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
+      190,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
*************** static const yytype_int16 yycheck[] =
*** 12586,12663 ****
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   663,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   433,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,   480,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   581,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
-      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
-      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
-      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
-      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
-      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
-      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
-      662,   663,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   300,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   376,    -1,    -1,    -1,   380,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      403,    -1,    -1,    31,    -1,    -1,   409,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   435,    -1,    62,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
!      533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
--- 14436,14547 ----
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
+       -1,    -1,   710,    63,    64,    65,    66,    67,    68,    69,
+       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+       90,    91,    92,    93,   404,    -1,    -1,    -1,    -1,    -1,
+      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
+       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
+      190,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,
!       -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      710,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
+      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   449,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
!       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
!       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
!       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
!       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
!       93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   704,   705,    -1,    -1,    -1,    -1,
+       -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
+       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   449,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    63,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,   592,
       593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
       603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
       613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
*************** static const yytype_int16 yycheck[] =
*** 12665,12761 ****
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!      663,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,   336,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-      110,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,   233,    -1,   533,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   292,    -1,   592,   593,   594,   595,   596,   597,
-      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
-      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
-      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-      658,   659,   660,   661,   662,   663,    31,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
-      550,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,   233,   569,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   663,    31,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
!       -1,    -1,    -1,   110,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,
!      435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,   185,   186,
!      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   530,   233,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
--- 14549,14705 ----
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   687,   211,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,   234,   235,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   389,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,
+       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    42,    -1,    44,    -1,    -1,
+       -1,    -1,    -1,    -1,    51,    -1,    -1,   533,    -1,    -1,
+      536,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   112,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,    -1,   665,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
!      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   687,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       51,    -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,   337,    -1,   339,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
!      687,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,   704,   705,    -1,
!      381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,   112,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,   211,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   552,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      265,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,   704,   705,    -1,   381,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
*************** static const yytype_int16 yycheck[] =
*** 12765,12857 ****
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   663,    31,
!      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,   435,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
!       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
!      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
!      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
!      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
!      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
!      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
!      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,   663,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    42,    43,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,   663,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   346,    -1,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
!       -1,    -1,   366,   367,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,   403,
!       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,
!       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
!      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   209,    -1,    -1,    -1,   530,    -1,    -1,   533,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
--- 14709,14803 ----
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   337,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,   368,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,   704,
+      705,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   265,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,   337,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,   705,    51,   381,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,   112,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,   211,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
+      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
+      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
+      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
+      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
+      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
+      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
+      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
+       -1,    -1,   336,   337,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    31,   687,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
+       -1,   704,   705,    51,    -1,    -1,    -1,   381,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,   112,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,   211,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
*************** static const yytype_int16 yycheck[] =
*** 12861,12951 ****
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   346,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      367,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
-       50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,    -1,
-       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
-       -1,   518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
!      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
!      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
!      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
!      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
!      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
!      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,   336,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
!       43,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      400,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   423,    -1,    -1,    -1,   110,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,   346,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   367,    -1,    42,    43,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,    -1,
!      403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   435,    -1,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
!      533,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 14807,14899 ----
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   337,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    31,   687,    -1,    -1,    -1,    -1,    -1,    -1,
+      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      704,   705,    51,   381,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
+       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
+       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   552,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,   336,   337,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,   687,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
+       -1,    -1,    -1,    -1,    -1,    -1,   704,   705,    51,    -1,
+       -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,   337,    31,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    63,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   704,   705,    -1,   381,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,   112,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,   234,   235,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 12958,13021 ****
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
-      336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   367,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   400,    -1,    -1,   403,    -1,    -1,
!       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   423,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
!       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
!      209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
       596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
       606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
       616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
       626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
       636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
       646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   336,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,   367,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   400,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,
-      409,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
-       -1,    -1,    -1,    -1,   423,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   467,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,
-      233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
--- 14906,14982 ----
       633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,   381,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   704,   705,    -1,    -1,    -1,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   112,    -1,    -1,   592,   593,   594,   595,
       596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
       606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
       616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
       626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
       636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
       646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   687,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,   705,
!       -1,    -1,    -1,    -1,   233,   234,   235,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      339,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
+       42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   103,   104,   105,    -1,   434,    -1,   436,    -1,    -1,
+      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      479,    -1,    -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,
+       -1,    -1,    -1,    -1,    -1,   197,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,   211,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   584,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
       599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
       609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
*************** static const yytype_int16 yycheck[] =
*** 13023,13084 ****
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,   110,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
-      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
-      533,    -1,   209,    -1,   537,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   586,    -1,    -1,    -1,    -1,    -1,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,
-       -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   564,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
       597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
       607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
--- 14984,15078 ----
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    -1,   337,   665,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    42,    -1,    44,
!       -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,   381,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,   103,   104,
!      105,    -1,    -1,    -1,   436,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   533,    -1,    -1,   536,    -1,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   337,   665,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   347,    -1,    -1,    -1,    -1,    44,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,   687,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    63,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,   424,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,   233,   234,   235,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
+      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
+      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
+      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
+      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
+      655,   656,   657,   658,   659,   660,   661,   662,    -1,    -1,
+      665,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   368,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   434,    -1,   436,
+       -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   479,    -1,    -1,   482,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
!      190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
!       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   584,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
       597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
       607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
*************** static const yytype_int16 yycheck[] =
*** 13086,13256 ****
       627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,    31,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
-       -1,    -1,   533,    -1,   209,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
!       -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    50,    -1,   530,    -1,    -1,   533,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   110,    -1,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
       615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   185,   186,
!      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,
-       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
!      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
-      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
-      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
-      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
-      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
-      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
-      657,   658,   659,   660,   661,   662,   336,    31,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
!       -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   463,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
!       -1,   195,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      530,    -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,   233,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
-      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
-      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
-      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
-      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
-      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
-      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
-      660,   661,   662,    31,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   367,    -1,    43,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,
-       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   435,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
-      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
-       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
--- 15080,15395 ----
       627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
!      657,   658,   659,   660,   661,   662,    -1,   337,   665,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    31,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
!      687,    44,    -1,    -1,    -1,    -1,    -1,   367,   368,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,   112,
!       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
+       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
+      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
+      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
+      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
+      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
+      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
+      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
+      660,   661,   662,    -1,   347,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   368,    42,   687,    44,    -1,
+       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,
+       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
+       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,    -1,   112,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   187,   188,   189,   190,    -1,    -1,    -1,   521,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      533,    -1,    -1,   536,    -1,   211,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
+      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
+      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
+      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
+      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
+      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
+      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
+      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
+       -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   347,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    42,   687,    44,    -1,    -1,    -1,    -1,
+       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,    -1,
+       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,
+       -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
+      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
+      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
+      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
+      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
+      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
+      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
+      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
+      656,   657,   658,   659,   660,   661,   662,    -1,   347,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
+       42,   687,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   424,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
+      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,   211,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    -1,   337,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    42,    -1,    44,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   401,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   424,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   436,    -1,    -1,   112,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,    -1,   211,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   401,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    32,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   112,    -1,    -1,   592,   593,   594,
       595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
       605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
       615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   687,   211,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   302,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,
+       -1,    -1,    -1,   381,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   389,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,   112,
+       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      233,   234,   235,    -1,    -1,   533,    -1,    -1,   536,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   368,    -1,   665,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
+       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   434,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,
!      533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    63,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,   592,
!      593,   594,   595,   596,   597,   598,   599,   600,   601,   602,
!      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
!      613,   614,   615,   616,   617,   618,   619,   620,   621,   622,
!      623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
!      633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
!      643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
!      653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
!       -1,    -1,   665,   187,   188,   189,   190,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,    -1,    -1,   211,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   290,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   337,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      404,    -1,    -1,   112,    -1,    -1,   410,    -1,    -1,    -1,
+       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
*************** static const yytype_int16 yycheck[] =
*** 13260,13321 ****
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,    31,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
-       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
-      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
-      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
-      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
-      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
-      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
-      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
-      658,   659,   660,   661,   662,    31,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   435,   110,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,
!      186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
--- 15399,15567 ----
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   368,
!       -1,   665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
!       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   434,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
!       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   112,   592,   593,   594,   595,   596,   597,   598,
+      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
+      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
+      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
+      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
+      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
+      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
+      659,   660,   661,   662,    -1,    -1,   665,   187,   188,   189,
+      190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,
+       -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   303,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   401,    -1,    -1,   404,    -1,    -1,   112,    -1,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
!      235,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   293,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   368,    31,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,
+       -1,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
+       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
+      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   211,    -1,    -1,   552,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   571,   234,   235,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
+      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
+      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
+      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
+      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
+      655,   656,   657,   658,   659,   660,   661,   662,    -1,    31,
+      665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+      112,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,   187,   188,   189,   190,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   234,   235,    -1,    -1,   533,    -1,    -1,   536,
+       -1,    -1,   539,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   589,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,   368,    31,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
+       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,
+       -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   566,    -1,    -1,    -1,    -1,    -1,
+      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
*************** static const yytype_int16 yycheck[] =
*** 13324,13385 ****
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,
-       -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-      110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,
-       -1,    -1,    -1,    -1,    -1,   195,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,
!       -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
-      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
-      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
-      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
-      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
-      656,   657,   658,   659,   660,   661,   662,    31,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
-       -1,    -1,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   435,   110,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      530,    -1,    -1,   533,    -1,   209,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
--- 15570,15679 ----
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   687,    53,    54,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      404,    -1,    -1,    -1,    -1,   112,   410,    -1,    -1,    -1,
+       -1,   415,    -1,    -1,    -1,    -1,    -1,   421,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,   235,   533,
+       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    51,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   112,    -1,    -1,   592,   593,   594,   595,   596,
+      597,   598,   599,   600,   601,   602,   603,   604,   605,   606,
+      607,   608,   609,   610,   611,   612,   613,   614,   615,   616,
+      617,   618,   619,   620,   621,   622,   623,   624,   625,   626,
+      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
+      637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
+      647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
+      657,   658,   659,   660,   661,   662,    -1,   187,   188,   189,
+      190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      687,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   288,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
+      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,   112,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   533,    -1,    -1,   536,   211,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
       600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
       610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
*************** static const yytype_int16 yycheck[] =
*** 13387,13413 ****
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   367,    -1,    -1,    43,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,
!       -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,   435,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
!      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,
!       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 15681,15707 ----
       630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
       640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
       650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,   337,    31,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    51,    -1,    -1,   687,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
+       -1,   415,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   465,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
!      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,   234,   235,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 13419,13448 ****
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   336,
        31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,
!       -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
--- 15713,15740 ----
       624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
       634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
       644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,    -1,
        31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
!       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
+       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   183,    -1,    -1,    -1,   187,   188,   189,   190,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
+      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
*************** static const yytype_int16 yycheck[] =
*** 13453,13478 ****
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
       657,   658,   659,   660,   661,   662,    31,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   435,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
!       -1,    -1,   533,    -1,   209,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   233,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 15745,15772 ----
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
       657,   658,   659,   660,   661,   662,    31,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,   234,
!      235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 13484,13511 ****
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
       661,   662,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    43,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
!       -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
!       -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,   188,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
-       -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
--- 15778,15803 ----
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
       661,   662,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,
+      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
+       -1,   536,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
*************** static const yytype_int16 yycheck[] =
*** 13516,13542 ****
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
       655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,
-       43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,
-      409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   435,   110,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   530,    -1,    -1,   533,    -1,   209,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
--- 15808,15836 ----
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
       655,   656,   657,   658,   659,   660,   661,   662,    31,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,   368,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
+       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,   112,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
!       -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
*************** static const yytype_int16 yycheck[] =
*** 13546,13574 ****
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    32,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,
-       -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,
-      187,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,
-      533,    -1,    -1,    -1,    -1,    -1,   233,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
--- 15840,15866 ----
       629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
       639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
       649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    31,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,
!       -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,   436,    -1,   112,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,
+      197,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      533,    -1,    -1,   536,   211,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,   235,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,
*************** static const yytype_int16 yycheck[] =
*** 13580,13605 ****
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
        31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      367,    -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,
!       -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,   110,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   530,    -1,    -1,   533,    -1,   209,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
--- 15872,15899 ----
       643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
       653,   654,   655,   656,   657,   658,   659,   660,   661,   662,
        31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,
!       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,
+       -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,
+       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,
!       -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,
*************** static const yytype_int16 yycheck[] =
*** 13610,13637 ****
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
       657,   658,   659,   660,   661,   662,    31,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,
!       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      185,   186,   187,   188,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   209,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,
!       -1,    -1,   533,    -1,    -1,    -1,    -1,    -1,   233,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 15904,15929 ----
       637,   638,   639,   640,   641,   642,   643,   644,   645,   646,
       647,   648,   649,   650,   651,   652,   653,   654,   655,   656,
       657,   658,   659,   660,   661,   662,    31,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    44,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,   112,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   533,    -1,    -1,   536,   211,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 13642,13666 ****
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   403,    -1,
!       -1,    -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      435,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   185,   186,   187,
!      188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   530,    -1,    -1,   533,    -1,
!       -1,   209,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 15934,15960 ----
       631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
       641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
       651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   337,    31,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
+      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 13672,13699 ****
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,   336,    31,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   403,    -1,    -1,    -1,    -1,
-       -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   477,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   185,   186,   187,   188,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   530,    -1,    -1,   533,    -1,    -1,    -1,    -1,
!       -1,   233,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
--- 15966,16150 ----
       625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
       635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
       645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    -1,    31,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      368,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
+      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,   211,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
!      598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
!      608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
!      618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
!      628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
!      638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
!      648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    31,    -1,   665,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    51,    -1,    -1,    -1,   687,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
!       -1,    -1,    -1,   415,    -1,    -1,   112,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,    -1,    -1,    -1,   234,   235,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
!      602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
!      612,   613,   614,   615,   616,   617,   618,   619,   620,   621,
!      622,   623,   624,   625,   626,   627,   628,   629,   630,   631,
!      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
!      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
!      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    44,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,
!      190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,   102,    -1,
!      410,    -1,    -1,    -1,    -1,   415,    -1,    -1,   112,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,
!      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   592,   593,   594,   595,   596,   597,   598,   599,
!      600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
!      610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
!      620,   621,   622,   623,   624,   625,   626,   627,   628,   629,
!      630,   631,   632,   633,   634,   635,   636,   637,   638,   639,
!      640,   641,   642,   643,   644,   645,   646,   647,   648,   649,
!      650,   651,   652,   653,   654,   655,   656,   657,   658,   659,
!      660,   661,   662,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    44,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      404,    -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,   112,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,
!       -1,    -1,   536,   211,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,    31,
!       32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
!      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
!      112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   211,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
!       -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
*************** static const yytype_int16 yycheck[] =
*** 13705,13733 ****
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   403,    -1,    -1,    -1,    -1,    -1,   409,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
!       -1,   533,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
--- 16156,16184 ----
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    44,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,    -1,
+       -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   436,    -1,   112,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   533,    -1,    -1,   536,   211,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,   235,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
       602,   603,   604,   605,   606,   607,   608,   609,   610,   611,
*************** static const yytype_int16 yycheck[] =
*** 13736,14256 ****
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,   189,    -1,   191,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   205,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,
!       -1,   219,    -1,   221,    -1,    -1,    -1,   225,   226,    -1,
!       -1,   229,    -1,    -1,    -1,   233,    -1,    -1,    -1,   237,
!      238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      248,    -1,    -1,    -1,    -1,    -1,   254,    -1,    -1,    -1,
!       -1,    -1,    -1,   261,    -1,    -1,   264,    -1,    -1,    -1,
!      268,    -1,    -1,    -1,   272,   273,    -1,    -1,   276,    -1,
!      278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   305,   306,    -1,
!       -1,   309,   310,   311,   312,   313,   314,   315,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
!      328,   329,   330,   331,    -1,    -1,   334,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   344,   345,    -1,   347,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   360,   361,   362,   363,   364,   365,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   389,   390,   391,   392,    -1,    -1,    -1,    -1,   397,
!      398,   399,    -1,   401,    -1,    -1,   404,   405,   406,   407,
!      408,    -1,   410,    -1,   412,    -1,    -1,    -1,    -1,   417,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   427,
!      428,   429,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      438,    -1,   440,   441,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   452,    -1,    -1,    -1,   456,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      468,   469,   470,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,   482,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   497,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      508,   509,    -1,    -1,    -1,    -1,    -1,    -1,   516,   517,
!       -1,   519,    -1,    -1,    -1,   523,    -1,    -1,    -1,   527,
!      528,    -1,    -1,   531,   532,    -1,    -1,    -1,    -1,    -1,
!      538,    -1,    -1,   541,   542,   543,   544,   545,   546,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   557,
!       -1,    -1,    -1,    -1,    -1,   563,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   571,   572,    -1,    -1,   575,   576,    -1,
!      578,   579,   580,    -1,   582,    -1,    -1,   585,    -1,    -1,
!       -1,    -1,    -1,   591
! };
! 
! /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
!    state STATE-NUM.  */
! static const yytype_int16 yystos[] =
! {
!        0,   125,   707,   708,   709,   711,   712,   713,   714,   126,
!      127,   494,   531,     0,    14,    15,   970,   971,   437,   719,
!        3,   462,   715,   714,    31,    31,    31,    31,    31,    43,
!      110,   185,   186,   187,   188,   209,   233,   367,   403,   409,
!      435,   477,   530,   533,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   700,   735,  1033,  1034,   700,
!      735,   709,     1,   700,   162,   284,   594,   608,   613,   614,
!      624,   720,   721,   722,   724,   725,   726,   728,   729,   730,
!        4,   739,   700,   700,   716,   586,   231,   195,   393,   506,
!      587,   732,   733,   503,   371,  1339,  1339,   284,   727,   727,
!      645,   700,   721,   700,     6,   818,   336,   715,   718,   735,
!       31,    31,    58,   731,   733,   411,  1343,   418,   525,   650,
!      651,   723,   243,  1339,  1339,  1339,   740,   819,   710,    31,
!      213,   717,   550,  1358,  1339,   619,   620,   601,   607,   619,
!      620,   633,   634,   641,   657,   937,     8,   104,   105,   109,
!      111,   115,   116,   118,   119,   123,   256,   741,   742,  1361,
!     1362,  1363,  1373,  1376,  1379,     7,     9,    10,    11,   506,
!      820,   821,     5,   908,   717,    43,   736,  1339,    42,    43,
!      223,   346,   400,   734,   598,   635,   655,   656,   936,   937,
!      700,    31,    43,    43,  1377,  1378,    93,    94,  1374,  1375,
!      700,   742,   700,   700,   700,   700,    58,   821,    18,   574,
!      700,   910,   736,  1339,   716,   253,   355,   477,   737,   738,
!       62,   175,   318,   370,   743,   744,   749,   750,  1378,  1375,
!       12,   492,   521,   522,   784,   785,   822,   825,   824,   823,
!      700,  1030,  1031,  1033,   231,   436,   911,   912,  1327,  1347,
!      909,   700,   700,   465,   463,   738,  1348,  1347,   700,   700,
!      744,   750,   700,   716,   700,   700,   785,   317,   507,   826,
!      827,   830,     1,    26,    27,    28,    29,   853,   854,   855,
!      869,   870,   873,   875,  1361,   853,   853,   350,   431,  1032,
!       18,   912,   258,   480,   581,  1025,  1026,  1027,  1030,   283,
!      914,   914,   700,    31,   749,   209,   505,   745,   746,    31,
!      242,   336,   359,   463,   464,   786,   787,   788,   791,   792,
!      795,   796,    31,    31,    61,    63,    64,    65,    66,    67,
!       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
!       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
!       88,    89,    90,    91,    92,   197,   242,   266,   282,   388,
!      534,   799,   800,   801,   805,   806,   812,    31,    31,   827,
!      228,   245,   269,   375,   386,   474,   475,   489,   491,   581,
!      700,   831,   832,   833,   836,   843,   848,   852,  1339,  1033,
!       31,    31,    31,   855,   106,   207,   220,   227,   424,   430,
!      453,   478,   505,   516,   535,   561,   573,   581,   584,   856,
!      876,   877,   878,   888,   889,   890,   891,   892,   893,   894,
!      895,   896,   897,   898,   899,   900,   901,   902,   905,   906,
!      907,  1339,  1359,   700,   486,  1033,  1030,     1,  1347,    42,
!       43,    62,   346,   400,   423,   467,   913,  1025,  1108,  1109,
!      402,  1028,  1057,   700,     1,    31,    50,    54,   142,   146,
!      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
!      157,   158,   160,   161,   162,   163,   164,   165,   166,   167,
!      169,   170,   171,   172,   173,   174,   176,   178,   179,   180,
!      181,   182,   183,   196,   299,   304,   333,   471,   496,   515,
!      709,   916,   917,   918,   919,   920,   921,   923,   924,   929,
!      930,   931,   943,   946,   947,   948,   955,   957,   958,   960,
!      963,   964,   965,   972,   973,   978,   997,   998,   999,  1005,
!     1006,  1035,  1038,  1039,  1040,  1052,  1055,  1063,  1068,  1075,
!     1081,  1111,  1112,  1113,  1122,  1123,  1124,  1135,  1136,  1146,
!     1147,  1148,  1151,  1152,  1155,  1156,  1157,  1160,  1165,  1172,
!     1173,  1182,  1191,  1192,  1193,  1203,  1204,  1205,  1206,  1218,
!     1241,  1250,  1251,  1252,  1256,  1266,  1268,  1273,  1274,  1277,
!     1278,  1279,  1289,  1291,  1292,   916,   190,   204,   217,   246,
!      319,   374,   395,   442,   447,   474,   494,   514,   700,   753,
!      754,   755,   757,   761,   762,   763,   764,   765,   770,   771,
!      772,   773,   776,   777,   778,   779,   781,  1329,  1334,   252,
!      176,   177,   474,   748,  1350,   700,   746,   246,   463,   512,
!      798,    31,    31,   195,   793,   794,    31,    31,    31,   700,
!      787,   586,   797,  1360,  1339,   432,   434,   813,  1339,    31,
!       31,   516,  1351,  1339,    31,   240,  1328,   700,   801,  1339,
!      257,  1330,  1339,   474,   476,   837,   837,  1339,  1330,  1339,
!     1343,   431,   828,   700,   832,   308,   339,   581,   424,   581,
!     1336,  1339,   379,    62,   184,    50,   564,   857,   858,   859,
!      860,  1030,    20,    21,    34,    35,    36,    41,   702,   879,
!      880,   881,   882,   887,    31,   213,  1339,   378,   502,  1358,
!      371,  1339,     1,   195,  1323,   877,   377,   555,   903,    17,
!      308,   339,   562,    52,    53,    57,   155,   224,   352,   446,
!     1030,  1025,    50,    62,   195,   289,   336,   380,   663,   694,
!      695,   703,   992,   993,   994,   995,   996,  1025,  1049,  1058,
!     1062,  1301,  1302,   402,  1028,   915,    58,  1054,  1025,   263,
!      380,   694,   695,   933,  1025,  1047,  1048,  1061,  1062,  1301,
!     1269,    43,  1025,  1254,  1257,  1257,  1267,  1069,   950,  1025,
!     1046,   194,    31,  1149,  1214,    43,    50,   101,   102,   103,
!      195,   380,   663,   874,  1025,  1108,  1116,  1117,  1118,  1119,
!     1121,  1301,   967,   968,   969,  1048,   974,    18,   472,   975,
!      977,  1360,    50,  1031,  1275,  1276,     1,  1025,  1036,  1037,
!     1121,    55,  1217,  1161,   263,  1025,  1301,  1323,    43,  1042,
!     1048,  1064,    31,  1125,    31,  1208,  1209,  1214,    31,   319,
!     1138,  1139,  1153,   195,  1030,  1175,  1176,    32,   300,   376,
!      380,   663,   940,   941,   942,  1025,  1162,  1164,  1166,    46,
!     1026,    43,  1025,  1108,  1281,  1282,  1283,  1284,  1301,    43,
!       50,   504,   263,  1047,  1115,  1159,  1214,    43,  1025,  1293,
!     1294,  1301,  1137,  1138,   992,  1025,    43,   236,   961,   663,
!      979,   980,  1025,    23,    31,   420,  1276,     0,    16,   917,
!      918,  1052,   700,     0,   700,   920,    23,   664,   922,   925,
!      926,   335,   665,   932,   932,   667,   949,   949,   421,   669,
!      956,   570,   670,   966,   966,   683,  1004,    60,   195,   687,
!      703,   942,   981,   982,   983,   984,   985,   986,   988,   990,
!      991,   992,  1000,  1323,   316,   558,   983,   992,  1007,  1008,
!     1009,  1024,   672,  1041,  1041,    50,   568,   583,  1031,  1048,
!     1076,  1077,  1078,  1079,  1080,  1082,  1083,  1085,  1086,  1087,
!     1103,  1104,  1276,  1360,   680,  1114,  1114,   668,  1150,  1150,
!      678,  1158,  1158,   677,  1174,  1174,   675,  1207,  1207,   666,
!     1253,  1253,   679,  1280,  1280,   681,  1290,  1290,  1343,  1350,
!      574,  1358,  1339,  1343,  1339,   239,   774,   286,   374,  1340,
!       50,  1360,   700,   754,   353,   383,   481,   513,   512,   529,
!      434,  1346,   211,   747,   747,   512,   246,   512,  1339,   700,
!      213,   789,   789,   367,   367,   794,   789,   789,   789,   700,
!      281,    31,   529,  1354,  1354,    31,  1339,  1339,  1339,   249,
!     1339,    31,    50,   803,    31,    50,   834,    31,  1030,  1197,
!       31,   433,   525,   841,   842,  1049,   834,   583,   844,  1339,
!       31,   838,   839,   854,   829,   213,  1325,  1339,   174,   184,
!      550,   815,   816,   817,  1323,   335,  1325,   339,    62,   549,
!     1356,   214,   288,   353,   861,   862,   863,   866,   550,  1356,
!      861,   866,   287,   866,   703,   886,   881,    37,    39,    40,
!      883,  1030,    31,  1029,  1029,    43,    50,   694,   695,   703,
!     1050,  1051,  1108,   511,   904,   530,  1355,   649,   660,  1352,
!      418,  1344,   550,  1344,  1344,  1360,   684,   431,    52,    53,
!     1030,  1120,   431,   995,   996,   992,   705,   694,   695,   696,
!      697,   698,   704,   992,    13,    31,    99,   100,   189,   191,
!      205,   216,   219,   221,   225,   226,   229,   233,   237,   238,
!      248,   254,   261,   264,   268,   272,   273,   276,   278,   295,
!      305,   306,   309,   310,   311,   312,   313,   314,   315,   323,
!      328,   329,   330,   331,   334,   344,   345,   347,   360,   361,
!      362,   363,   364,   365,   379,   389,   390,   391,   392,   397,
!      398,   399,   401,   404,   405,   406,   407,   408,   410,   412,
!      417,   427,   428,   429,   438,   440,   441,   452,   456,   468,
!      469,   470,   482,   497,   508,   509,   516,   517,   519,   523,
!      527,   528,   531,   532,   538,   541,   542,   543,   544,   545,
!      546,   557,   563,   571,   572,   575,   576,   578,   579,   580,
!      582,   585,   591,  1303,  1304,  1312,  1313,  1315,  1316,  1317,
!     1318,  1319,  1320,  1321,  1322,   992,   916,     1,   700,  1053,
!     1047,  1030,  1120,  1062,  1062,    24,  1043,  1044,   338,   550,
!     1048,  1270,  1271,  1276,    23,    51,  1264,  1265,    18,   338,
!      574,  1255,  1257,    31,  1070,  1071,  1043,   503,   934,   951,
!     1025,   992,    47,  1143,  1144,  1350,  1118,  1030,  1120,   431,
!      701,  1117,  1043,   483,   483,   231,   366,    54,    58,   168,
!      463,   976,  1056,  1354,     1,    23,   376,    22,   637,   287,
!     1276,   143,   195,   198,   201,   202,   279,   298,   415,   416,
!      425,   426,  1037,  1242,  1243,  1244,  1245,  1246,  1357,  1360,
!     1025,  1216,  1301,  1214,  1025,   550,   550,   874,  1061,  1109,
!     1043,   231,   307,   357,   369,   445,  1065,  1066,  1067,   420,
!      474,   640,  1126,    44,   674,  1128,  1129,  1143,   335,    44,
!     1210,  1211,  1212,   366,   474,  1032,  1214,  1350,   335,   676,
!     1143,  1154,  1030,  1183,   583,  1177,   184,  1178,  1179,  1180,
!      218,  1326,    43,   927,  1025,    23,  1025,   431,  1345,   550,
!      942,  1028,  1057,   292,   550,   569,  1164,    60,  1167,  1168,
!     1169,  1170,  1194,  1195,  1346,  1194,  1198,  1360,    51,  1287,
!     1288,   366,  1283,  1286,   285,   975,  1047,   335,  1043,  1143,
!      324,   374,   376,  1287,   285,  1295,    45,   682,  1131,  1132,
!     1143,   194,   222,  1140,   240,   623,   944,   574,   413,   962,
!      431,   980,    31,   652,   735,   700,   922,   926,   919,    31,
!      185,   186,   188,   250,   251,   270,   275,   277,   300,   548,
!      806,   928,   193,    31,   185,   187,   188,   806,   959,    62,
!      687,   703,   981,   990,   984,   992,  1357,   685,   686,   703,
!      990,   992,   688,   689,   690,   691,   692,   693,  1045,    49,
!       56,    62,    98,   687,   938,   939,  1339,   420,   919,  1001,
!     1003,    43,   423,  1109,   184,   203,  1010,  1012,  1013,  1014,
!     1015,  1016,  1084,  1048,   549,  1048,  1080,  1082,  1360,  1085,
!     1086,  1360,  1085,  1085,   673,   919,  1083,  1104,   194,  1105,
!     1106,   684,   394,   540,  1339,  1340,  1030,   308,   751,   752,
!      806,  1030,  1339,   474,  1339,  1339,  1339,   211,   212,   780,
!      169,   195,   421,   782,   513,    31,   201,   415,  1339,  1197,
!      327,  1074,  1074,  1339,   512,  1339,    31,    43,   612,   790,
!      790,   411,  1339,  1339,   813,     1,    43,    50,    59,   203,
!      296,   418,   807,   808,   809,   811,   815,    43,    31,    43,
!      802,   210,   804,  1339,   550,   240,   476,   835,  1030,   842,
!      383,   384,   849,   850,  1342,  1328,    50,   240,   335,   350,
!      518,   550,   845,   846,   287,   847,    31,  1339,   839,   854,
!       43,   233,   379,   380,   871,   872,   874,  1024,  1050,  1108,
!      550,   174,   550,   816,   316,    43,    50,  1108,    31,   871,
!      874,  1108,  1327,   862,   866,  1340,   858,   860,   866,  1346,
!       31,    50,    38,   884,   885,   884,   885,  1050,  1050,  1050,
!      694,   695,   696,   697,   239,     1,   421,  1030,  1025,   402,
!     1057,  1025,   704,   704,   992,   994,   994,   995,   995,   996,
!      703,   703,   703,   703,   703,   703,   703,   703,  1214,   703,
!      703,   703,   703,   703,   703,   703,   703,   703,   703,   703,
!      703,   703,   703,   703,   703,   992,   703,   703,   703,   703,
!      703,   703,   703,   703,  1028,   703,   703,   703,   703,   703,
!      703,   703,   703,    44,   124,  1364,  1365,   550,  1057,  1044,
!      919,  1046,  1025,  1046,  1048,  1271,   550,  1272,  1265,   919,
!      433,   663,  1025,  1258,  1259,  1260,  1263,  1327,  1025,   479,
!      565,  1072,  1073,  1360,  1071,   411,   935,   301,   690,   952,
!      934,   646,  1340,  1144,  1057,  1025,    43,  1025,  1025,  1048,
!     1046,  1048,   977,    50,  1025,    25,  1056,  1056,  1346,  1360,
!     1358,  1357,   488,  1358,   159,   262,   488,   537,  1194,   550,
!     1036,  1036,   550,   550,   550,  1046,  1048,  1061,  1066,  1213,
!     1214,   474,   474,   366,  1127,  1130,   674,  1129,   674,  1025,
!     1211,   919,  1025,  1214,    43,   840,  1025,  1108,  1239,  1301,
!     1154,   184,  1184,  1185,  1326,  1030,  1179,   983,  1181,    44,
!      550,   550,   550,  1025,  1024,  1028,   231,   299,   423,   663,
!     1061,  1109,  1163,  1164,   231,  1168,   550,  1170,  1195,  1198,
!      214,   288,  1196,  1198,  1199,  1329,   293,  1288,   919,  1025,
!     1327,   335,  1046,  1048,  1045,  1327,   366,  1133,   682,  1132,
!      682,   193,   448,   806,  1025,  1061,  1141,  1142,   944,    18,
!      945,  1258,  1116,  1025,   700,   919,   703,   593,   592,   927,
!      669,   984,   704,   984,   989,   990,  1045,   984,   989,   703,
!      987,   989,   990,   992,    30,   433,   198,   199,   200,   279,
!      373,   425,  1110,    30,   433,   145,   144,     1,  1017,  1008,
!      671,  1023,   184,  1013,   420,   919,  1016,   983,   335,   549,
!      919,   673,  1088,  1105,  1048,  1106,  1276,   194,   222,   294,
!      468,   513,   756,  1339,    43,  1025,   574,   403,   474,   597,
!      767,    31,    43,    50,   775,    59,  1030,   435,   443,   783,
!      783,  1339,  1339,  1030,  1213,  1213,    31,  1339,    31,    31,
!       31,    31,   810,   811,  1109,   809,   684,  1360,    50,    50,
!       50,   850,  1342,  1326,  1360,   550,  1328,    50,   518,    50,
!      846,  1346,   840,  1345,  1345,  1345,   550,  1339,   684,   684,
!      684,   867,   868,  1033,  1339,  1356,   287,  1030,   704,   704,
!       38,   883,   704,  1050,  1050,  1050,  1050,   516,   992,   704,
!     1117,    43,   992,  1059,  1060,  1117,   992,   992,  1117,   992,
!      992,  1117,   103,   101,     1,   103,   102,  1117,   101,   103,
!     1027,  1119,  1117,  1117,  1117,  1117,   215,   267,   419,   524,
!      552,  1305,  1117,   840,  1059,   704,   102,   103,  1117,  1117,
!      101,   102,   103,  1117,     1,   992,   840,   992,   840,   992,
!      992,   992,   992,  1117,  1117,  1059,   283,   281,   297,   339,
!     1337,  1366,  1367,  1370,   716,  1046,   919,   338,   460,  1276,
!      919,   431,   213,  1255,  1259,   258,   480,   581,   586,  1074,
!      395,   421,  1339,   954,   953,  1145,   338,   338,  1025,   159,
!      581,  1358,  1245,  1247,  1248,   284,  1242,   840,   195,   240,
!      324,   377,   555,  1230,  1231,  1232,  1238,  1219,  1220,  1199,
!     1025,  1036,  1036,  1036,   338,  1214,  1025,   374,  1134,   919,
!     1186,  1185,    44,   420,   919,  1187,   919,   840,   432,  1025,
!     1048,    43,  1025,  1345,  1048,   432,   434,  1171,  1199,  1340,
!     1199,   512,   350,  1331,   919,  1360,    43,   518,  1025,  1108,
!     1285,  1046,   338,  1030,  1296,  1297,  1323,  1025,  1298,  1299,
!     1300,   919,  1142,  1342,  1342,    18,  1025,   992,   704,   990,
!      987,   685,   686,   704,  1002,    49,    56,   207,   703,   983,
!      990,  1018,  1019,  1020,  1021,  1024,  1045,   443,   145,  1048,
!      184,  1090,  1091,   335,  1030,  1030,   766,  1360,   520,   758,
!       31,    31,  1030,    31,   574,   434,   432,   811,   454,   814,
!      230,   551,   851,   326,    50,   550,  1328,  1328,    31,  1030,
!     1030,  1030,  1120,    43,    50,  1108,  1323,  1323,  1323,   868,
!      864,   865,  1030,  1346,   704,  1117,   704,  1060,  1117,   704,
!      704,   201,   206,   207,   343,   414,   415,  1306,  1308,   704,
!      992,   704,   992,   376,  1341,   704,   992,   704,   992,   992,
!      704,  1117,  1117,   704,   704,  1117,   704,  1117,   704,  1117,
!      704,  1117,   704,   388,  1117,  1309,   704,   704,  1117,  1117,
!     1117,   208,  1310,  1311,  1324,  1117,  1117,  1117,  1309,   704,
!      377,   555,  1314,   992,   704,   992,   704,   704,   992,   704,
!      992,   704,  1117,   704,   700,  1346,    31,   194,   525,  1367,
!       22,    23,  1371,  1046,   550,  1263,   325,  1025,    43,   433,
!      992,  1261,  1260,   380,   663,   913,  1050,  1262,   421,   485,
!      499,   936,   992,   992,   919,  1046,  1046,  1243,   284,   269,
!     1332,  1248,   550,   231,  1232,   840,  1233,  1234,   488,  1221,
!       33,  1222,  1227,  1228,  1229,   574,  1046,  1061,  1339,   942,
!     1025,  1188,  1189,   919,   145,   336,   463,     1,   357,   574,
!     1200,  1197,  1339,   439,  1349,    57,  1046,  1360,   685,  1284,
!      265,   286,   537,  1300,  1360,  1025,   704,   704,   703,   989,
!      703,   989,  1003,   990,  1021,   144,   684,   203,   685,   686,
!      990,  1011,   231,  1107,    23,    25,  1093,  1094,  1095,  1096,
!      184,  1091,  1097,  1048,   758,   396,  1339,    31,  1354,  1354,
!      533,  1049,  1326,  1328,    50,    43,    50,    43,    50,   865,
!     1030,   704,  1117,   232,  1307,  1308,   704,   992,   704,   992,
!      181,  1353,   704,   992,   704,   992,   704,   704,   704,  1117,
!      704,   704,   704,    31,  1324,   704,   704,   704,  1117,   704,
!     1311,   324,   376,  1335,   704,   704,   704,  1324,   704,   992,
!      704,   992,   704,   704,   704,   195,  1275,   319,  1368,   525,
!      458,  1372,   379,  1025,   431,   499,   231,  1323,   840,   231,
!     1234,  1230,  1222,   327,  1057,  1032,  1213,  1030,   690,   686,
!     1187,  1184,  1033,    43,  1033,   458,  1213,   338,   445,  1201,
!     1033,  1025,   379,  1297,  1331,  1331,  1331,    57,   989,   989,
!      704,   990,  1019,   703,   990,  1022,  1045,   703,  1022,   919,
!     1048,  1083,   307,   357,   369,   445,  1213,  1369,  1092,  1095,
!      319,   443,   184,  1099,  1107,   760,  1360,   409,   768,   759,
!     1030,  1339,  1339,    43,  1049,  1328,   704,   704,   343,   704,
!      704,   194,  1324,   704,   992,   704,   704,   704,   704,  1117,
!     1117,   704,   704,   704,   459,  1213,  1346,  1025,    50,   840,
!     1249,   840,   194,   222,  1235,  1236,  1237,  1240,   840,   195,
!      240,   377,   555,  1223,  1224,    33,  1201,    43,   992,  1190,
!     1189,  1339,  1213,   458,   992,  1025,  1025,  1025,  1025,   704,
!      704,  1022,   990,  1022,   919,  1213,  1098,   253,  1089,  1083,
!      293,   474,   476,   769,  1030,    31,    31,  1117,   704,   704,
!      704,  1117,  1213,  1369,  1235,  1237,   355,  1338,  1235,   840,
!     1225,  1226,  1235,  1225,  1225,  1224,    31,  1202,  1215,  1339,
!      265,   537,   704,   704,    23,  1333,  1100,   322,  1101,   840,
!     1235,  1226,  1025,   684,  1202,  1331,  1331,   919,  1333,  1102,
!      673,  1215,  1025,  1025,   919,  1333,   919
  };
  
  /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
  static const yytype_int16 yyr1[] =
  {
!        0,   706,   707,   707,   708,   708,   710,   709,   711,   711,
!      711,   712,   712,   713,   713,   714,   714,   714,   714,   715,
!      716,   716,   717,   717,   718,   718,   719,   719,   719,   720,
!      720,   721,   721,   721,   721,   721,   721,   721,   722,   723,
!      723,   723,   723,   724,   725,   726,   726,   727,   727,   728,
!      728,   728,   728,   729,   730,   731,   731,   732,   732,   732,
!      733,   733,   733,   734,   734,   734,   734,   734,   735,   735,
!      736,   736,   737,   737,   738,   738,   738,   739,   739,   740,
!      739,   741,   741,   742,   742,   742,   742,   742,   742,   743,
!      743,   744,   744,   744,   744,   745,   745,   746,   746,   746,
!      747,   747,   748,   748,   749,   749,   750,   750,   751,   751,
!      752,   752,   753,   753,   754,   754,   754,   754,   754,   754,
!      754,   754,   754,   754,   754,   754,   754,   755,   756,   756,
!      756,   757,   758,   758,   759,   759,   760,   760,   761,   761,
!      761,   761,   762,   763,   763,   763,   764,   764,   765,   766,
!      766,   767,   767,   767,   768,   768,   769,   769,   770,   771,
!      771,   771,   771,   772,   772,   772,   772,   773,   774,   774,
!      775,   775,   775,   776,   777,   778,   779,   780,   780,   780,
!      781,   782,   782,   782,   783,   783,   784,   784,   785,   785,
!      785,   785,   785,   785,   785,   785,   786,   786,   787,   787,
!      787,   787,   787,   788,   789,   789,   790,   790,   791,   792,
!      792,   792,   793,   793,   794,   795,   796,   797,   797,   798,
!      798,   798,   798,   798,   799,   800,   800,   801,   801,   801,
!      801,   801,   801,   801,   801,   802,   802,   803,   803,   804,
!      804,   805,   805,   806,   806,   806,   806,   806,   806,   806,
!      806,   806,   806,   806,   806,   806,   806,   806,   806,   806,
!      806,   806,   806,   806,   806,   806,   806,   806,   806,   806,
!      806,   806,   806,   807,   807,   807,   807,   807,   808,   808,
!      809,   809,   809,   810,   810,   811,   811,   812,   812,   812,
!      813,   813,   813,   813,   814,   814,   815,   815,   816,   816,
!      816,   816,   816,   816,   816,   816,   816,   816,   817,   817,
!      817,   817,   817,   817,   817,   817,   818,   818,   819,   818,
!      820,   820,   821,   822,   821,   823,   821,   824,   821,   825,
!      821,   821,   826,   826,   828,   827,   829,   827,   830,   830,
!      831,   831,   832,   832,   832,   832,   832,   832,   832,   832,
!      832,   832,   832,   832,   833,   834,   834,   835,   835,   835,
!      836,   836,   836,   837,   837,   838,   838,   839,   840,   840,
!      841,   841,   842,   843,   843,   844,   844,   844,   844,   845,
!      845,   845,   846,   846,   846,   846,   846,   846,   847,   847,
!      848,   848,   849,   849,   850,   850,   851,   851,   852,   852,
!      853,   853,   854,   854,   855,   855,   856,   856,   856,   856,
!      856,   857,   858,   859,   859,   860,   860,   861,   861,   862,
!      863,   863,   864,   864,   865,   866,   866,   867,   867,   868,
!      869,   869,   870,   870,   871,   871,   871,   871,   871,   872,
!      872,   872,   872,   873,   873,   873,   873,   873,   873,   873,
!      873,   873,   873,   873,   874,   874,   875,   876,   876,   877,
!      877,   877,   877,   877,   877,   877,   877,   877,   877,   877,
!      877,   877,   877,   877,   877,   877,   878,   878,   878,   878,
!      878,   878,   878,   879,   880,   880,   881,   882,   882,   883,
!      883,   884,   884,   885,   885,   886,   886,   886,   887,   887,
!      887,   888,   889,   889,   889,   889,   889,   889,   889,   889,
!      889,   890,   890,   890,   890,   890,   891,   892,   893,   894,
!      895,   896,   897,   898,   898,   899,   899,   899,   900,   901,
!      902,   902,   903,   903,   904,   904,   904,   905,   905,   906,
!      907,   908,   909,   908,   908,   908,   910,   910,   910,   911,
!      911,   912,   912,   912,   912,   913,   913,   913,   914,   915,
!      914,   916,   916,   916,   916,   916,   916,   917,   917,   918,
!      918,   918,   918,   919,   919,   920,   920,   920,   920,   920,
!      920,   920,   920,   920,   920,   920,   920,   920,   920,   920,
!      920,   920,   920,   920,   920,   920,   920,   920,   920,   920,
!      920,   920,   920,   920,   920,   920,   920,   920,   920,   920,
!      920,   920,   920,   920,   920,   920,   920,   921,   921,   922,
!      922,   923,   923,   923,   923,   923,   923,   923,   923,   923,
!      923,   923,   923,   924,   925,   925,   926,   927,   927,   928,
!      928,   928,   928,   928,   929,   929,   930,   931,   932,   932,
!      933,   933,   933,   933,   934,   934,   934,   935,   936,   936,
!      936,   936,   936,   937,   937,   937,   937,   938,   938,   939,
!      939,   939,   940,   940,   941,   942,   942,   942,   942,   943,
!      943,   944,   944,   945,   945,   946,   946,   947,   948,   949,
!      949,   951,   950,   953,   952,   954,   952,   955,   956,   956,
!      956,   956,   957,   957,   958,   959,   959,   959,   959,   959,
!      960,   961,   961,   962,   962,   963,   963,   964,   965,   966,
!      966,   967,   967,   967,   967,   967,   968,   969,   970,   970,
!      971,   971,   971,   971,   972,   972,   973,   973,   974,   973,
!      973,   975,   975,   975,   975,   976,   976,   976,   976,   976,
!      977,   977,   977,   978,   979,   979,   980,   980,   981,   981,
!      981,   981,   981,   981,   981,   981,   982,   983,   984,   984,
!      984,   984,   984,   985,   985,   985,   985,   985,   986,   986,
!      987,   987,   987,   987,   987,   987,   988,   989,   989,   990,
!      991,   991,   991,   991,   991,   991,   992,   993,   993,   993,
!      994,   994,   994,   995,   995,   995,   995,   996,   996,   997,
!      998,   999,  1000,  1001,  1002,  1001,  1003,  1003,  1004,  1004,
!     1005,  1006,  1007,  1007,  1008,  1009,  1009,  1009,  1010,  1011,
!     1010,  1012,  1012,  1013,  1013,  1014,  1015,  1015,  1017,  1016,
!     1016,  1018,  1018,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
!     1020,  1020,  1021,  1021,  1021,  1021,  1021,  1021,  1021,  1022,
!     1022,  1023,  1023,  1024,  1024,  1025,  1026,  1027,  1027,  1027,
!     1027,  1028,  1028,  1029,  1030,  1031,  1031,  1032,  1032,  1033,
!     1033,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1034,  1034,  1034,  1034,  1034,  1035,  1035,  1035,  1035,
!     1035,  1035,  1036,  1036,  1037,  1037,  1037,  1038,  1038,  1039,
!     1040,  1041,  1041,  1042,  1042,  1042,  1042,  1042,  1043,  1043,
!     1044,  1045,  1045,  1045,  1045,  1045,  1045,  1046,  1046,  1047,
!     1047,  1048,  1048,  1048,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1050,  1050,  1050,  1050,  1050,  1050,  1050,  1050,
!     1051,  1052,  1053,  1052,  1054,  1054,  1055,  1055,  1055,  1056,
!     1056,  1056,  1057,  1058,  1058,  1058,  1059,  1059,  1060,  1060,
!     1061,  1061,  1061,  1061,  1061,  1061,  1062,  1062,  1064,  1063,
!     1065,  1065,  1066,  1067,  1067,  1067,  1067,  1069,  1068,  1070,
!     1070,  1071,  1072,  1072,  1072,  1072,  1072,  1072,  1073,  1073,
!     1074,  1074,  1075,  1075,  1075,  1076,  1076,  1076,  1076,  1077,
!     1077,  1077,  1077,  1078,  1078,  1079,  1080,  1080,  1080,  1080,
!     1081,  1082,  1082,  1084,  1083,  1085,  1085,  1086,  1086,  1088,
!     1089,  1087,  1090,  1090,  1092,  1091,  1093,  1093,  1093,  1093,
!     1094,  1094,  1095,  1096,  1097,  1098,  1097,  1099,  1100,  1099,
!     1101,  1102,  1101,  1103,  1103,  1104,  1105,  1105,  1106,  1107,
!     1107,  1108,  1108,  1108,  1109,  1109,  1109,  1109,  1110,  1110,
!     1110,  1110,  1110,  1110,  1111,  1111,  1112,  1113,  1114,  1114,
!     1115,  1115,  1115,  1116,  1116,  1117,  1117,  1118,  1118,  1119,
!     1119,  1119,  1119,  1119,  1119,  1119,  1120,  1120,  1121,  1121,
!     1121,  1121,  1121,  1122,  1122,  1123,  1124,  1124,  1124,  1124,
!     1124,  1124,  1125,  1126,  1126,  1126,  1126,  1126,  1126,  1127,
!     1127,  1128,  1128,  1130,  1129,  1131,  1131,  1133,  1132,  1134,
!     1134,  1135,  1136,  1136,  1136,  1136,  1136,  1136,  1137,  1137,
!     1138,  1138,  1139,  1139,  1139,  1140,  1140,  1141,  1141,  1142,
!     1142,  1142,  1142,  1143,  1143,  1145,  1144,  1146,  1146,  1147,
!     1148,  1149,  1150,  1150,  1151,  1152,  1152,  1153,  1154,  1154,
!     1155,  1155,  1156,  1157,  1158,  1158,  1159,  1159,  1159,  1159,
!     1159,  1161,  1160,  1162,  1162,  1163,  1163,  1163,  1163,  1163,
!     1164,  1164,  1165,  1165,  1165,  1165,  1165,  1165,  1165,  1165,
!     1165,  1165,  1165,  1166,  1165,  1167,  1167,  1168,  1169,  1169,
!     1170,  1171,  1171,  1172,  1172,  1173,  1174,  1174,  1175,  1175,
!     1176,  1177,  1177,  1178,  1178,  1179,  1180,  1181,  1182,  1182,
!     1183,  1184,  1184,  1186,  1185,  1187,  1187,  1188,  1188,  1189,
!     1189,  1190,  1190,  1191,  1191,  1192,  1192,  1193,  1193,  1194,
!     1194,  1195,  1195,  1196,  1196,  1197,  1197,  1198,  1198,  1199,
!     1199,  1200,  1200,  1201,  1201,  1202,  1202,  1203,  1203,  1204,
!     1204,  1205,  1206,  1207,  1207,  1208,  1208,  1209,  1209,  1210,
!     1210,  1211,  1212,  1213,  1213,  1214,  1215,  1216,  1216,  1217,
!     1217,  1218,  1218,  1218,  1218,  1220,  1219,  1221,  1219,  1222,
!     1223,  1223,  1224,  1224,  1224,  1224,  1224,  1225,  1225,  1226,
!     1227,  1227,  1227,  1228,  1229,  1229,  1230,  1231,  1231,  1232,
!     1232,  1233,  1233,  1234,  1235,  1235,  1236,  1236,  1237,  1238,
!     1238,  1238,  1238,  1239,  1239,  1239,  1240,  1240,  1241,  1241,
!     1241,  1241,  1241,  1242,  1242,  1242,  1242,  1243,  1243,  1243,
!     1244,  1244,  1245,  1245,  1245,  1245,  1245,  1245,  1245,  1245,
!     1245,  1246,  1247,  1247,  1248,  1249,  1249,  1250,  1250,  1251,
!     1252,  1253,  1253,  1254,  1254,  1254,  1254,  1255,  1255,  1256,
!     1256,  1257,  1257,  1258,  1258,  1259,  1259,  1259,  1259,  1260,
!     1260,  1260,  1261,  1261,  1261,  1262,  1262,  1262,  1262,  1263,
!     1263,  1264,  1264,  1265,  1265,  1266,  1267,  1267,  1269,  1268,
!     1270,  1270,  1271,  1272,  1272,  1273,  1273,  1273,  1274,  1274,
!     1275,  1275,  1276,  1276,  1277,  1277,  1278,  1279,  1280,  1280,
!     1281,  1282,  1282,  1283,  1283,  1284,  1284,  1284,  1284,  1285,
!     1285,  1285,  1285,  1286,  1286,  1287,  1287,  1288,  1289,  1289,
!     1290,  1290,  1291,  1292,  1293,  1294,  1294,  1294,  1295,  1295,
!     1296,  1296,  1297,  1298,  1298,  1298,  1298,  1299,  1299,  1300,
!     1300,  1300,  1300,  1301,  1301,  1301,  1302,  1302,  1303,  1303,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,
!     1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1304,  1305,
!     1305,  1305,  1305,  1305,  1306,  1306,  1306,  1307,  1307,  1308,
!     1308,  1308,  1308,  1309,  1309,  1309,  1310,  1310,  1311,  1312,
!     1312,  1312,  1312,  1312,  1312,  1312,  1312,  1313,  1313,  1314,
!     1314,  1314,  1315,  1315,  1315,  1315,  1315,  1315,  1315,  1315,
!     1315,  1315,  1315,  1315,  1316,  1316,  1316,  1316,  1316,  1316,
!     1316,  1316,  1316,  1316,  1316,  1316,  1316,  1316,  1316,  1316,
!     1316,  1316,  1316,  1316,  1316,  1317,  1318,  1318,  1318,  1318,
!     1318,  1318,  1318,  1318,  1318,  1318,  1318,  1318,  1318,  1319,
!     1319,  1319,  1320,  1320,  1320,  1320,  1320,  1320,  1320,  1320,
!     1321,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,
!     1322,  1322,  1322,  1323,  1323,  1324,  1324,  1325,  1325,  1326,
!     1326,  1327,  1327,  1328,  1328,  1329,  1329,  1330,  1330,  1331,
!     1331,  1332,  1332,  1333,  1333,  1334,  1334,  1335,  1335,  1335,
!     1336,  1336,  1337,  1337,  1338,  1338,  1339,  1339,  1340,  1340,
!     1341,  1341,  1342,  1342,  1342,  1343,  1343,  1344,  1344,  1345,
!     1345,  1346,  1346,  1347,  1347,  1348,  1348,  1349,  1349,  1350,
!     1350,  1351,  1351,  1352,  1352,  1352,  1353,  1353,  1354,  1354,
!     1355,  1355,  1356,  1356,  1357,  1357,  1358,  1358,  1359,  1359,
!     1359,  1360,  1360,  1361,  1361,  1361,  1361,  1362,  1362,  1363,
!     1363,  1364,  1365,  1365,  1365,  1365,  1365,  1366,  1366,  1367,
!     1368,  1368,  1369,  1369,  1369,  1369,  1370,  1370,  1370,  1370,
!     1371,  1371,  1372,  1372,  1373,  1374,  1374,  1375,  1375,  1376,
!     1377,  1377,  1378,  1379,  1379,  1379,  1379,  1379
  };
  
  /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
--- 16187,17013 ----
       632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
       642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
       652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
!      662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,
!       -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,
!      536,   187,   188,   189,   190,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   211,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,   235,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   320,    -1,    -1,    -1,    -1,    -1,
!       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,
!       -1,   112,    -1,    -1,   410,    -1,    -1,    -1,    -1,   415,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   479,    -1,    -1,   187,   188,   189,   190,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   234,   235,    -1,    -1,   533,    -1,    -1,
!      536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   368,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   112,    -1,
!       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,    -1,   187,   188,   189,   190,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   687,   211,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      234,   235,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   303,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      404,    -1,    -1,   112,    -1,    -1,   410,    -1,    -1,    -1,
!       -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   479,    -1,    -1,   187,   188,
!      189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,   533,
!       -1,    -1,   536,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,
!      594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
!      604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
!      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
!      624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
!      634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
!      644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
!      654,   655,   656,   657,   658,   659,   660,   661,   662,   368,
!       31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
!       -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   112,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   187,   188,   189,   190,
!       -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      211,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   234,   235,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   592,   593,   594,   595,   596,   597,   598,
!      599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
!      609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
!      619,   620,   621,   622,   623,   624,   625,   626,   627,   628,
!      629,   630,   631,   632,   633,   634,   635,   636,   637,   638,
!      639,   640,   641,   642,   643,   644,   645,   646,   647,   648,
!      649,   650,   651,   652,   653,   654,   655,   656,   657,   658,
!      659,   660,   661,   662,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,   410,
!       -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   436,    -1,   112,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   479,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   187,   188,   189,   190,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   533,    -1,    -1,   536,   211,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   234,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   592,   593,   594,   595,   596,   597,   598,   599,   600,
!      601,   602,   603,   604,   605,   606,   607,   608,   609,   610,
!      611,   612,   613,   614,   615,   616,   617,   618,   619,   620,
!      621,   622,   623,   624,   625,   626,   627,   628,   629,   630,
!      631,   632,   633,   634,   635,   636,   637,   638,   639,   640,
!      641,   642,   643,   644,   645,   646,   647,   648,   649,   650,
!      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
!      661,   662,   337,    31,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,    -1,    -1,
!       -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
!       -1,    -1,    -1,    -1,    -1,   410,    -1,    -1,    -1,    -1,
!      415,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,
!      188,   189,   190,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   533,    -1,
!       -1,   536,    -1,    -1,    -1,    -1,   234,   235,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   592,   593,   594,
!      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
!      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
!      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
!      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
!      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
!      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
!      655,   656,   657,   658,   659,   660,   661,   662,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   687,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,
!       -1,    -1,   410,    -1,    -1,    -1,    -1,   415,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   479,    -1,    -1,    -1,    -1,    -1,    13,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   100,   101,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   592,   593,   594,   595,   596,   597,
       598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
       608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
       618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
       628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
       638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
       648,   649,   650,   651,   652,   653,   654,   655,   656,   657,
!      658,   659,   660,   661,   662,   191,    -1,   193,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,   207,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   687,
!       -1,    -1,   218,    -1,    -1,   221,    -1,   223,    -1,    -1,
!       -1,   227,   228,    -1,    -1,   231,    -1,    -1,    -1,   235,
!       -1,    -1,    -1,   239,   240,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   250,    -1,    -1,    -1,    -1,    -1,
!      256,    -1,    -1,    -1,    -1,    -1,    -1,   263,    -1,    -1,
!      266,    -1,    -1,    -1,   270,    -1,    -1,    -1,   274,   275,
!       -1,    -1,   278,    -1,   280,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      296,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!      306,   307,    -1,    -1,   310,   311,   312,   313,   314,   315,
!      316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   324,    -1,
!       -1,    -1,    -1,   329,   330,   331,   332,    -1,    -1,   335,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
!      346,    -1,   348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   361,   362,   363,   364,   365,
!      366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   390,   391,   392,   393,    -1,    -1,
!       -1,    -1,   398,   399,   400,    -1,   402,    -1,    -1,   405,
!      406,   407,   408,   409,    -1,   411,    -1,   413,    -1,    -1,
!       -1,    -1,   418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,   428,   429,   430,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   439,    -1,   441,   442,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   453,    -1,    -1,
!       -1,   457,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   470,   471,   472,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   484,    -1,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,   500,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,    -1,    -1,   511,   512,    -1,    -1,    -1,
!       -1,    -1,    -1,   519,   520,    -1,   522,    -1,    -1,    -1,
!      526,    -1,    -1,    -1,   530,   531,    -1,    -1,   534,   535,
!       -1,    -1,    -1,    -1,   540,    -1,    -1,   543,   544,   545,
!      546,   547,   548,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
!       -1,    -1,    -1,   559,    -1,    -1,    -1,    -1,    -1,   565,
!       -1,    -1,    -1,    -1,    -1,    -1,    -1,   573,   574,    -1,
!       -1,   577,   578,    -1,   580,   581,   582,    -1,    -1,   585,
!       -1,    -1,   588,    -1,    -1,   591
! };
! 
! /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
!    state STATE-NUM.  */
! static const yytype_int16 yystos[] =
! {
!        0,   127,   717,   718,   719,   721,   722,   723,   724,   128,
!      129,   496,   534,     0,    14,    15,   984,   985,   438,   729,
!        3,   464,   725,   724,    31,    31,    31,    31,    31,    44,
!      112,   187,   188,   189,   190,   211,   234,   235,   368,   404,
!      410,   415,   436,   479,   533,   536,   592,   593,   594,   595,
!      596,   597,   598,   599,   600,   601,   602,   603,   604,   605,
!      606,   607,   608,   609,   610,   611,   612,   613,   614,   615,
!      616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
!      626,   627,   628,   629,   630,   631,   632,   633,   634,   635,
!      636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
!      646,   647,   648,   649,   650,   651,   652,   653,   654,   655,
!      656,   657,   658,   659,   660,   661,   662,   687,   710,   745,
!     1048,  1049,   710,   745,   719,     1,   710,   102,   164,   594,
!      608,   613,   614,   624,   730,   731,   732,   734,   735,   736,
!      738,   739,   740,     4,   749,   710,   710,   726,   589,   233,
!      506,   197,   394,   509,   590,   742,   743,   372,  1368,  1368,
!      102,   737,   737,   645,   710,   731,   710,     6,   833,   337,
!      725,   728,   745,    31,    31,   412,  1372,    59,   741,   743,
!      419,   528,   650,   651,   733,   245,  1368,  1368,  1368,   750,
!      834,   720,    31,   215,   727,  1368,   552,  1389,   619,   620,
!      601,   607,   619,   620,   633,   634,   641,   657,   952,     8,
!      106,   107,   111,   113,   117,   118,   120,   121,   125,   258,
!      751,   752,  1394,  1395,  1396,  1406,  1409,  1412,     7,     9,
!       10,    11,   509,   835,   836,     5,   924,   727,    44,   746,
!     1368,   598,   635,   655,   656,   951,   952,    42,    44,   225,
!      347,   401,   744,   710,    31,    44,    44,  1410,  1411,    94,
!       95,  1407,  1408,   710,   752,   710,   710,   710,   710,    59,
!      836,    18,   576,   925,   746,  1368,   726,   255,   356,   479,
!      747,   748,    63,   177,   319,   371,   753,   754,   759,   760,
!     1411,  1408,    12,   494,   524,   525,   794,   795,   837,   840,
!      839,   838,   710,  1045,  1046,  1048,   233,   437,   926,   927,
!     1355,  1376,   710,   710,   467,   465,   748,  1378,  1376,   710,
!      710,   754,   760,   710,   726,   710,   710,   795,   318,   510,
!      841,   842,   845,     1,    26,    27,    28,    29,   870,   871,
!      872,   886,   887,   890,   892,  1394,   870,   870,   351,   432,
!     1047,    18,   927,   260,   482,   584,  1040,  1041,  1042,  1045,
!      285,   929,   710,    31,   759,   211,   508,   755,   756,    31,
!      244,   337,   360,   465,   466,   796,   797,   798,   801,   802,
!      805,   806,    31,    31,    62,    64,    65,    66,    67,    68,
!       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
!       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
!       89,    90,    91,    92,    93,   199,   244,   268,   284,   389,
!      537,   815,   816,   820,   821,   827,    31,    31,   842,   230,
!      247,   271,   376,   387,   476,   477,   491,   493,   584,   710,
!      846,   847,   850,   853,   860,   865,   869,  1368,  1048,    31,
!       31,    31,   872,   108,   209,   222,   229,   425,   431,   454,
!      480,   508,   519,   538,   563,   575,   584,   587,   873,   893,
!      894,   895,   905,   906,   907,   908,   909,   910,   911,   912,
!      913,   914,   915,   916,   917,   918,   921,   922,   923,  1368,
!     1390,   710,   488,  1048,  1045,     1,  1376,    42,    44,    63,
!      347,   401,   424,   469,   928,  1040,  1124,  1125,   403,  1043,
!     1072,   710,     1,    31,    51,    55,   144,   148,   149,   150,
!      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
!      162,   163,   164,   165,   166,   167,   168,   169,   171,   172,
!      173,   174,   175,   176,   178,   180,   181,   182,   183,   184,
!      185,   198,   301,   305,   334,   473,   498,   518,   663,   664,
!      719,   931,   932,   933,   934,   935,   936,   938,   939,   944,
!      945,   946,   958,   961,   962,   963,   969,   971,   972,   974,
!      977,   978,   979,   986,   987,   992,  1012,  1013,  1014,  1020,
!     1021,  1050,  1053,  1054,  1055,  1067,  1070,  1079,  1084,  1091,
!     1097,  1127,  1128,  1129,  1138,  1139,  1140,  1151,  1152,  1162,
!     1163,  1166,  1167,  1173,  1174,  1177,  1178,  1179,  1182,  1187,
!     1199,  1200,  1209,  1218,  1219,  1220,  1230,  1231,  1232,  1233,
!     1245,  1268,  1277,  1278,  1279,  1283,  1293,  1295,  1300,  1301,
!     1304,  1305,  1306,  1316,  1318,  1319,  1413,  1414,  1415,  1436,
!     1437,  1438,   192,   206,   219,   248,   320,   375,   396,   443,
!      448,   476,   496,   517,   710,   763,   764,   765,   767,   771,
!      772,   773,   774,   775,   780,   781,   782,   783,   786,   787,
!      788,   789,   791,  1357,  1362,   254,   178,   179,   476,   758,
!     1380,   710,   756,   241,   784,   808,   809,   810,  1378,    31,
!       31,   197,   803,   804,    31,    31,    31,   710,   797,   589,
!      710,   807,  1393,  1368,   433,   435,   828,  1368,    31,    31,
!      519,  1381,  1368,    31,   242,  1356,   710,   816,  1368,   259,
!     1358,   328,  1364,  1368,   476,   478,   854,   854,  1368,  1358,
!     1368,  1372,   432,   843,   710,   847,     1,   309,   340,   584,
!      425,   584,  1365,  1368,   380,   186,  1392,    51,   566,   874,
!      875,   876,   877,  1045,    20,    21,    34,    35,    36,    41,
!      712,   896,   897,   898,   899,   904,    31,   215,  1368,   379,
!      505,  1389,   372,  1368,     1,   197,  1351,   894,   378,   557,
!      919,    17,   309,   340,   564,    53,    54,    58,   157,   226,
!      353,   416,   447,  1045,  1040,    51,    63,   197,   290,   337,
!      381,   665,   704,   705,   713,  1007,  1008,  1009,  1010,  1011,
!     1040,  1064,  1073,  1077,  1078,  1328,  1329,   403,  1043,   930,
!       59,  1069,  1040,   265,   381,   704,   705,   948,  1040,  1062,
!     1063,  1076,  1078,  1328,  1296,    44,  1040,  1281,  1284,  1284,
!     1294,  1085,   965,  1040,  1061,   196,    31,   320,  1164,  1168,
!     1241,    44,   103,   104,   105,   197,   381,   665,   891,  1040,
!     1077,  1124,  1132,  1133,  1134,  1135,  1137,  1328,   981,   982,
!      983,  1063,   988,    18,   474,   989,   991,  1393,    51,  1046,
!     1302,  1303,     1,  1040,  1051,  1052,  1137,    56,  1244,  1183,
!      265,  1040,  1328,  1351,    44,  1057,  1063,  1080,    31,  1141,
!       31,  1235,  1236,  1241,    31,   320,  1154,  1155,  1175,   197,
!     1045,  1202,  1203,    32,   302,   377,   381,   389,   665,   955,
!      956,   957,  1040,  1184,  1186,  1188,    47,  1041,    44,  1040,
!     1124,  1308,  1309,  1310,  1311,  1328,    44,    51,   507,   265,
!     1062,  1131,  1181,  1241,    44,  1040,  1320,  1321,  1328,  1153,
!     1154,  1007,  1040,    44,   238,   975,   665,   993,   994,  1040,
!       23,    31,   421,  1303,   663,  1416,  1040,  1439,     0,    16,
!      932,   933,  1067,   710,     0,   710,   935,    23,   666,   937,
!      940,   941,   336,   667,   947,   947,   669,   964,   964,   422,
!      671,   970,   572,   672,   980,   980,   686,  1019,    61,   197,
!      698,   713,   957,   995,   996,   998,   999,  1000,  1001,  1003,
!     1005,  1006,  1007,  1015,  1351,   317,   560,   998,  1007,  1022,
!     1023,  1024,  1039,   674,  1056,  1056,    51,   570,   586,  1046,
!     1063,  1092,  1093,  1094,  1095,  1096,  1098,  1099,  1101,  1102,
!     1103,  1119,  1120,  1303,  1393,   682,  1130,  1130,   670,  1172,
!     1172,  1172,   680,  1180,  1180,   679,  1201,  1201,   677,  1234,
!     1234,   668,  1280,  1280,   681,  1307,  1307,   683,  1317,  1317,
!      685,  1446,  1446,  1446,  1446,  1372,  1380,   576,  1389,  1368,
!     1372,  1368,   784,   287,   375,  1369,    51,  1393,   710,   764,
!      354,   384,   483,   516,   515,   532,   435,  1375,   213,   757,
!      757,   605,   710,   810,   809,  1357,   215,   799,   799,   368,
!      368,   804,   799,   799,   799,   710,   283,    31,   532,  1385,
!     1385,    31,  1364,  1368,  1368,  1368,   251,  1368,    31,    51,
!      818,    31,    51,   851,   203,   416,   848,    31,    60,   297,
!      419,   849,  1045,  1224,    31,   434,   528,   858,   859,  1064,
!      851,   586,   861,  1368,    31,   855,   856,   871,   844,   215,
!     1353,  1368,   176,   186,   552,   830,   831,   832,  1351,   336,
!     1353,   340,    63,   551,  1387,   216,   289,   354,   878,   879,
!      880,   883,   552,  1387,   878,   883,   288,   883,   713,   903,
!      898,    37,    39,    40,   900,  1045,    31,  1044,  1044,    44,
!       51,   235,   380,   381,   704,   705,   713,   888,  1065,  1066,
!     1124,   514,   920,   533,  1386,   649,   660,  1382,   419,  1373,
!      552,  1373,  1373,  1393,   695,   432,    53,    54,  1045,  1136,
!      432,  1010,  1011,  1007,   715,   704,   705,   706,   707,   708,
!      714,  1007,    13,    31,   100,   101,   191,   193,   207,   218,
!      221,   223,   227,   228,   231,   235,   239,   240,   250,   256,
!      263,   266,   270,   274,   275,   278,   280,   296,   306,   307,
!      310,   311,   312,   313,   314,   315,   316,   324,   329,   330,
!      331,   332,   335,   345,   346,   348,   361,   362,   363,   364,
!      365,   366,   380,   390,   391,   392,   393,   398,   399,   400,
!      402,   405,   406,   407,   408,   409,   411,   413,   418,   428,
!      429,   430,   439,   441,   442,   453,   457,   470,   471,   472,
!      484,   500,   511,   512,   519,   520,   522,   526,   530,   531,
!      534,   535,   540,   543,   544,   545,   546,   547,   548,   559,
!      565,   573,   574,   577,   578,   580,   581,   582,   585,   588,
!      591,  1330,  1331,  1340,  1341,  1343,  1344,  1345,  1346,  1347,
!     1348,  1349,  1350,  1007,   931,     1,   710,  1068,  1062,  1045,
!     1136,  1078,  1078,    24,  1058,  1059,   339,   552,  1063,  1297,
!     1298,  1303,    23,    52,  1291,  1292,    18,   339,   576,  1282,
!     1284,    31,  1086,  1087,  1058,   506,   949,   966,  1040,  1007,
!      116,  1377,    23,  1169,  1170,  1171,    48,  1159,  1160,  1380,
!     1134,  1045,  1136,   432,   711,  1133,  1058,   485,   485,   233,
!      367,    55,    59,   170,   465,   990,  1071,  1385,     1,    23,
!      377,    22,   637,   288,  1303,   145,   197,   200,   203,   204,
!      281,   299,   416,   417,   426,   427,  1052,  1269,  1270,  1271,
!     1272,  1273,  1388,  1393,  1040,  1243,  1328,  1241,  1040,   552,
!      552,   891,  1076,  1125,  1058,   233,   308,   358,   370,   446,
!     1081,  1082,  1083,   421,   476,   640,  1142,    45,   676,  1144,
!     1145,  1159,   336,    45,  1237,  1238,  1239,   367,   476,  1047,
!     1241,  1380,   336,   678,  1159,  1176,  1045,  1210,   586,  1204,
!      186,  1205,  1206,  1207,   220,  1354,    44,   942,  1040,    23,
!     1040,   102,   625,   626,   627,   628,   629,   630,   631,  1189,
!     1190,  1191,  1391,   432,  1374,   552,   957,  1043,  1072,   293,
!      552,   571,  1186,    61,  1194,  1195,  1196,  1197,  1221,  1222,
!     1375,  1221,  1225,  1393,    52,  1314,  1315,   367,  1310,  1313,
!      286,   989,  1062,   336,  1058,  1159,   325,   375,   377,  1314,
!      286,  1322,    46,   684,  1147,  1148,  1159,   196,   224,  1156,
!      242,   623,   959,   576,   414,   976,   432,   994,    31,   652,
!     1045,    23,  1444,  1445,  1393,  1440,  1444,   745,   710,   937,
!      941,   934,    31,   187,   188,   190,   252,   253,   272,   277,
!      279,   302,   550,   821,   943,   195,    31,   187,   189,   190,
!      821,   973,    63,   698,   713,   995,  1005,   999,  1007,  1388,
!      696,   697,   713,  1005,  1007,    43,   699,   700,   701,   702,
!      703,  1060,    50,    57,    63,    99,   698,   953,   954,  1368,
!      421,   934,  1016,  1018,    44,   424,  1125,   186,   205,  1025,
!     1027,  1028,  1029,  1030,  1031,  1100,  1063,   551,  1063,  1096,
!     1098,  1393,  1101,  1102,  1393,  1101,  1101,   675,   934,  1099,
!     1120,   196,  1121,  1122,   695,   395,   542,  1368,  1369,  1045,
!      309,   761,   762,   821,  1045,  1368,   476,  1368,  1368,  1368,
!      213,   214,   790,   171,   197,   422,   792,   516,    31,   203,
!      416,  1368,  1224,   328,  1090,  1090,   811,   812,   813,  1364,
!     1368,   515,    44,   612,   800,   800,   412,  1368,  1368,   828,
!      848,     1,    44,    51,    60,   205,   297,   389,   419,   822,
!      823,   824,   826,   830,    44,    31,    44,   661,   662,   817,
!      212,   819,  1368,   552,   242,   478,   852,  1368,  1045,   859,
!      384,   385,   866,   867,  1371,  1356,    51,   242,   336,   351,
!      521,   552,   862,   863,   288,   864,    31,  1368,   856,   871,
!       44,   888,   889,   891,  1039,  1124,   552,   176,   552,   831,
!      317,    44,    51,  1124,    31,   888,   891,  1124,  1355,   879,
!      883,  1369,   875,   877,   883,  1375,    31,    51,    38,   901,
!      902,   901,   902,  1374,  1374,  1374,  1065,  1065,  1065,   704,
!      705,   706,   707,   241,     1,   422,  1045,  1040,   403,  1072,
!     1040,   714,   714,  1007,  1009,  1009,  1010,  1010,  1011,   713,
!      713,   713,   713,   713,   713,   713,   713,  1241,   713,   713,
!      713,   713,   713,   713,   713,   713,   713,   713,   713,   713,
!      713,   713,   713,   713,  1007,   713,   713,   713,   713,   713,
!      713,   713,   713,  1043,   713,   713,   713,   713,   713,   713,
!      713,   713,    45,   126,  1397,  1398,   552,  1072,  1059,   934,
!     1061,  1040,  1061,  1063,  1298,   552,  1299,  1292,   934,    44,
!      434,   665,  1040,  1078,  1285,  1286,  1287,  1290,  1355,  1040,
!      481,   567,  1088,  1089,  1393,  1087,   412,   950,    43,   967,
!      949,   646,  1240,  1241,  1171,   934,  1369,  1160,  1072,  1040,
!       44,  1040,  1040,  1063,  1061,  1063,   991,    51,  1040,    25,
!     1071,  1071,  1375,  1393,  1389,  1388,   490,  1389,   161,   264,
!      490,   539,  1221,   552,  1051,  1051,   552,   552,   552,  1061,
!     1063,  1076,  1082,  1240,   476,   476,   367,  1143,  1146,   676,
!     1145,   676,  1040,  1238,   934,  1040,  1241,    44,   857,  1040,
!     1124,  1266,  1328,  1176,   186,  1211,  1212,  1354,  1045,  1206,
!      998,  1208,    45,   552,   552,   552,   552,  1191,  1040,  1039,
!     1043,   233,   301,   389,   424,   665,  1076,  1125,  1185,  1186,
!      233,  1195,   552,  1197,  1222,  1225,   216,   289,  1223,  1225,
!     1226,  1357,   294,  1315,   934,  1040,  1355,   336,  1061,  1063,
!     1060,  1355,   367,  1149,   684,  1148,   684,   195,   449,   821,
!     1040,  1076,  1157,  1158,   959,    18,   960,  1285,  1132,  1040,
!      336,  1445,   934,   300,    18,  1441,   710,   934,   713,   593,
!      592,   942,   671,   999,   714,   999,  1004,  1005,  1060,   999,
!     1004,   713,  1002,  1004,  1005,  1007,    30,   434,   200,   201,
!      202,   281,   374,   426,  1126,    30,   434,   147,   146,     1,
!     1032,  1023,   673,  1038,   186,  1028,   421,   934,  1031,   160,
!      997,   998,   336,   551,   934,   675,  1104,  1121,  1063,  1122,
!     1303,   196,   224,   295,   470,   516,   766,  1368,    44,  1040,
!      576,   404,   476,   597,   777,    31,    44,    51,   785,    60,
!     1045,   436,   444,   793,   793,  1368,  1368,  1045,  1240,  1240,
!      813,   848,    31,   811,    31,    31,    31,  1368,   825,   826,
!     1125,    31,  1339,   824,   695,  1393,    51,    51,    51,   849,
!      867,  1371,  1354,  1393,   552,  1356,    51,   521,    51,   863,
!     1375,   857,   552,  1368,   695,   695,   695,   884,   885,  1048,
!     1368,  1387,   288,  1045,   714,   714,    38,   900,  1045,  1045,
!     1045,  1136,   714,  1065,  1065,  1065,  1065,   519,  1007,   714,
!     1133,    44,  1007,  1074,  1075,  1133,  1007,  1007,  1133,  1007,
!     1007,  1133,   105,   103,     1,   105,   104,  1133,   103,   105,
!     1042,  1135,  1133,  1133,  1133,  1133,   217,   269,   420,   527,
!      554,  1332,  1133,   857,  1074,   714,   104,   105,  1133,  1133,
!      103,   104,   105,  1133,     1,  1007,   857,  1007,   857,  1007,
!     1007,  1007,  1007,  1133,  1133,  1074,   285,   283,   298,   340,
!     1366,  1399,  1400,  1403,   726,  1061,   934,   339,   461,  1303,
!      934,   432,   215,  1282,  1286,   260,   482,   584,   589,  1090,
!      396,   422,  1368,   968,   328,   499,   616,  1165,  1241,   934,
!     1161,   339,   339,  1040,   161,   584,  1389,  1272,  1274,  1275,
!      102,  1269,   857,   197,   242,   325,   378,   557,  1257,  1258,
!     1259,  1265,  1246,  1247,  1226,  1040,  1051,  1051,  1051,   339,
!     1040,   375,  1150,   934,  1213,  1212,    45,   421,   934,  1214,
!      934,   857,   433,  1040,   102,  1040,  1192,  1063,    44,  1040,
!      625,  1193,  1391,  1374,  1063,   433,   435,  1198,  1226,  1369,
!     1226,   515,   351,  1359,   934,  1393,    44,   521,  1040,  1124,
!     1312,  1061,   339,  1045,  1323,  1324,  1351,  1040,  1325,  1326,
!     1327,   934,  1158,  1371,  1371,    18,  1040,  1045,   934,  1045,
!      416,   583,  1442,  1007,   714,  1005,  1002,   696,   697,   714,
!     1017,    50,    57,   209,   713,   998,  1005,  1033,  1034,  1035,
!     1036,  1039,  1060,   444,   147,  1063,   186,  1106,  1107,   336,
!     1045,  1045,   776,  1393,   523,   768,    31,    31,  1045,  1368,
!      576,   435,   433,   822,   826,   455,   829,   232,   553,   868,
!      327,    51,   552,  1356,  1356,    31,    44,    51,  1124,  1351,
!     1351,  1351,   885,   881,   882,  1045,  1375,   714,  1133,   714,
!     1075,  1133,   714,   714,   203,   208,   209,   344,   415,   416,
!     1333,  1334,   714,  1007,   714,  1007,  1133,   714,  1007,   714,
!     1007,  1007,   714,  1133,  1133,   714,   714,  1133,   714,  1133,
!      714,  1133,   714,  1133,   714,   389,  1133,  1336,   714,   714,
!     1133,  1133,  1133,   210,  1337,  1338,  1352,  1133,  1133,  1133,
!     1336,   714,   378,   557,  1342,  1007,   714,  1007,   714,   714,
!     1007,   714,  1007,   714,  1133,   714,   710,  1375,    31,   196,
!      528,  1400,    22,    23,  1404,  1061,   552,  1290,   326,  1040,
!       44,   434,  1007,  1288,  1287,   381,   665,   928,  1065,  1289,
!      422,   487,   502,   951,  1007,  1007,  1007,   934,  1061,  1061,
!     1270,   102,   271,  1360,  1275,   552,   233,  1259,   857,  1260,
!     1261,   490,  1248,    33,  1249,  1254,  1255,  1256,   576,  1061,
!     1076,  1368,   957,  1040,  1215,  1216,   934,   147,   337,   465,
!        1,   358,   576,  1227,  1224,  1368,   440,  1379,    58,  1061,
!     1393,   696,  1311,   267,   287,   539,  1327,  1393,  1040,   267,
!     1417,  1393,   463,   714,   714,   713,  1004,   713,  1004,  1018,
!     1005,  1036,   146,   695,   205,   696,   697,  1005,  1026,   233,
!     1123,    23,    25,  1109,  1110,  1111,  1112,   186,  1107,  1113,
!     1063,   768,   397,  1368,    31,   102,   389,   814,    31,  1385,
!     1385,   536,  1064,  1354,  1356,    51,    44,    51,    44,    51,
!      882,  1045,   714,  1133,  1333,  1334,   234,  1333,  1334,  1333,
!     1334,   714,  1007,   714,  1007,   377,  1370,   714,  1007,   714,
!     1007,   714,   714,   714,  1339,   714,   714,   714,    31,  1352,
!      714,   714,   714,  1133,   714,  1338,   325,   377,  1363,   714,
!      714,   714,  1352,   714,  1007,   714,  1007,   714,   714,   714,
!      197,  1302,   320,  1401,   528,   459,  1405,   380,  1040,   432,
!      502,   646,   551,   233,  1351,   857,   233,  1261,  1257,  1249,
!      328,  1072,  1047,  1240,  1045,    43,   697,  1214,  1211,  1048,
!       44,  1048,   459,  1240,   339,   446,  1228,  1048,  1040,   380,
!     1324,  1359,  1359,  1359,    58,  1359,  1440,   320,  1045,   459,
!     1004,  1004,   714,  1005,  1034,   713,  1005,  1037,  1060,   713,
!     1037,   934,  1063,  1099,   308,   358,   370,   446,  1240,  1402,
!     1108,  1111,   320,   444,   186,  1115,  1123,   770,  1393,   410,
!      778,   769,  1045,  1368,  1368,    44,  1064,  1356,   714,   344,
!     1335,  1335,   714,  1335,   714,   714,  1335,   714,   714,   183,
!     1040,  1077,  1383,  1384,   714,  1007,   714,   714,   714,   714,
!     1133,  1133,   714,   714,   714,   460,  1240,  1375,  1040,   857,
!     1077,  1276,   857,   196,   224,  1262,  1263,  1264,  1267,   857,
!      197,   242,   378,   557,  1250,  1251,    33,  1228,    44,  1007,
!     1217,  1216,  1368,  1240,   459,  1007,  1040,  1040,  1040,  1040,
!     1045,  1393,  1418,  1045,  1368,   714,   714,  1037,  1005,  1037,
!      934,  1240,  1114,   255,  1105,  1099,   294,   476,   478,   779,
!     1045,    31,    31,    17,   714,   714,   714,   714,   196,  1352,
!      714,   714,  1133,  1240,  1402,  1262,  1264,   356,  1367,  1262,
!      857,  1252,  1253,  1262,  1252,  1252,  1251,    31,  1229,  1242,
!     1368,   267,   539,   687,   693,   689,  1419,  1303,  1443,   714,
!      714,    23,  1361,  1116,   323,  1117,   505,  1384,   714,   857,
!     1262,  1253,  1040,   695,  1229,  1359,  1359,  1393,  1368,    31,
!     1421,   695,   934,  1361,  1118,   675,  1242,  1040,  1040,   687,
!     1045,  1374,   563,  1424,  1303,   934,  1361,   690,  1420,  1045,
!     1422,  1423,  1374,   123,  1428,   934,  1368,  1368,  1423,  1045,
!     1425,  1426,   303,  1045,  1429,  1430,  1434,    44,  1045,    44,
!     1368,  1426,   426,   692,  1435,    42,    63,   347,   401,  1431,
!     1432,  1433,  1430,  1432,   260,   595,   688,  1427,  1427,   696,
!     1433
  };
  
  /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
  static const yytype_int16 yyr1[] =
  {
!        0,   716,   717,   717,   718,   718,   720,   719,   721,   721,
!      721,   722,   722,   723,   723,   724,   724,   724,   724,   725,
!      726,   726,   727,   727,   728,   728,   729,   729,   729,   730,
!      730,   731,   731,   731,   731,   731,   731,   731,   732,   733,
!      733,   733,   733,   734,   735,   736,   736,   737,   737,   738,
!      738,   738,   738,   739,   740,   741,   741,   742,   742,   742,
!      743,   743,   743,   744,   744,   744,   744,   744,   745,   745,
!      746,   746,   747,   747,   748,   748,   748,   749,   749,   750,
!      749,   751,   751,   752,   752,   752,   752,   752,   752,   753,
!      753,   754,   754,   754,   754,   755,   755,   756,   756,   756,
!      757,   757,   758,   758,   759,   759,   760,   760,   761,   761,
!      762,   762,   763,   763,   764,   764,   764,   764,   764,   764,
!      764,   764,   764,   764,   764,   764,   764,   765,   766,   766,
!      766,   767,   768,   768,   769,   769,   770,   770,   771,   771,
!      771,   771,   772,   773,   773,   773,   774,   774,   775,   776,
!      776,   777,   777,   777,   778,   778,   779,   779,   780,   781,
!      781,   781,   781,   782,   782,   782,   782,   783,   784,   784,
!      785,   785,   785,   786,   787,   788,   789,   790,   790,   790,
!      791,   792,   792,   792,   793,   793,   794,   794,   795,   795,
!      795,   795,   795,   795,   795,   795,   795,   796,   796,   797,
!      797,   797,   797,   797,   798,   799,   799,   800,   800,   801,
!      802,   802,   802,   803,   803,   804,   805,   806,   807,   808,
!      808,   808,   808,   808,   809,   810,   811,   811,   812,   812,
!      813,   814,   814,   814,   815,   815,   816,   816,   816,   816,
!      816,   816,   816,   816,   816,   817,   817,   817,   817,   818,
!      818,   819,   819,   820,   820,   821,   821,   821,   821,   821,
!      821,   821,   821,   821,   821,   821,   821,   821,   821,   821,
!      821,   821,   821,   821,   821,   821,   821,   821,   821,   821,
!      821,   821,   821,   821,   821,   822,   822,   822,   822,   822,
!      822,   823,   823,   824,   824,   824,   825,   825,   826,   826,
!      827,   827,   827,   828,   828,   828,   828,   829,   829,   830,
!      830,   831,   831,   831,   831,   831,   831,   831,   831,   831,
!      831,   832,   832,   832,   832,   832,   832,   832,   832,   833,
!      833,   834,   833,   835,   835,   836,   837,   836,   838,   836,
!      839,   836,   840,   836,   836,   841,   841,   843,   842,   844,
!      842,   845,   845,   846,   846,   847,   847,   847,   847,   847,
!      847,   847,   847,   847,   847,   847,   847,   847,   847,   848,
!      848,   849,   849,   849,   849,   850,   851,   851,   852,   852,
!      852,   853,   853,   853,   854,   854,   855,   855,   856,   857,
!      857,   858,   858,   859,   860,   860,   861,   861,   861,   861,
!      862,   862,   862,   863,   863,   863,   863,   863,   863,   864,
!      864,   865,   865,   866,   866,   867,   867,   868,   868,   869,
!      869,   870,   870,   871,   871,   872,   872,   873,   873,   873,
!      873,   873,   874,   875,   876,   876,   877,   877,   878,   878,
!      879,   880,   880,   881,   881,   882,   883,   883,   884,   884,
!      885,   886,   886,   887,   887,   888,   888,   888,   888,   888,
!      889,   889,   889,   889,   890,   890,   890,   890,   890,   890,
!      890,   890,   890,   890,   890,   891,   891,   892,   893,   893,
!      894,   894,   894,   894,   894,   894,   894,   894,   894,   894,
!      894,   894,   894,   894,   894,   894,   894,   895,   895,   895,
!      895,   895,   895,   895,   896,   897,   897,   898,   899,   899,
!      900,   900,   901,   901,   902,   902,   903,   903,   903,   904,
!      904,   904,   905,   906,   906,   906,   906,   906,   906,   906,
!      906,   906,   906,   907,   907,   907,   907,   907,   908,   909,
!      910,   911,   912,   913,   914,   915,   915,   915,   916,   917,
!      918,   918,   919,   919,   920,   920,   920,   921,   921,   922,
!      923,   924,   924,   924,   925,   925,   925,   925,   926,   926,
!      927,   927,   927,   927,   928,   928,   928,   929,   930,   929,
!      931,   931,   931,   931,   931,   931,   932,   932,   933,   933,
!      933,   933,   934,   934,   935,   935,   935,   935,   935,   935,
!      935,   935,   935,   935,   935,   935,   935,   935,   935,   935,
!      935,   935,   935,   935,   935,   935,   935,   935,   935,   935,
!      935,   935,   935,   935,   935,   935,   935,   935,   935,   935,
!      935,   935,   935,   935,   935,   935,   935,   935,   936,   936,
!      937,   937,   938,   938,   938,   938,   938,   938,   938,   938,
!      938,   938,   938,   938,   939,   940,   940,   941,   942,   942,
!      943,   943,   943,   943,   943,   944,   944,   945,   946,   947,
!      947,   948,   948,   948,   948,   949,   949,   949,   950,   951,
!      951,   951,   951,   951,   952,   952,   952,   952,   953,   953,
!      954,   954,   954,   955,   955,   956,   957,   957,   957,   957,
!      958,   958,   959,   959,   960,   960,   961,   961,   962,   963,
!      964,   964,   966,   965,   968,   967,   969,   970,   970,   970,
!      970,   971,   971,   972,   973,   973,   973,   973,   973,   974,
!      975,   975,   976,   976,   977,   977,   978,   979,   980,   980,
!      981,   981,   981,   981,   981,   982,   983,   984,   984,   985,
!      985,   985,   985,   986,   986,   987,   987,   988,   987,   987,
!      989,   989,   989,   989,   990,   990,   990,   990,   990,   991,
!      991,   991,   992,   993,   993,   994,   994,   995,   995,   995,
!      995,   995,   995,   995,   995,   996,   997,   997,   998,   999,
!      999,   999,   999,   999,  1000,  1000,  1000,  1000,  1000,  1001,
!     1001,  1002,  1002,  1002,  1002,  1002,  1002,  1003,  1004,  1004,
!     1005,  1006,  1006,  1006,  1006,  1006,  1006,  1007,  1008,  1008,
!     1008,  1009,  1009,  1009,  1010,  1010,  1010,  1010,  1011,  1011,
!     1012,  1013,  1014,  1015,  1016,  1017,  1016,  1018,  1018,  1019,
!     1019,  1020,  1021,  1022,  1022,  1023,  1024,  1024,  1024,  1025,
!     1026,  1025,  1027,  1027,  1028,  1028,  1029,  1030,  1030,  1032,
!     1031,  1031,  1033,  1033,  1034,  1034,  1034,  1034,  1034,  1034,
!     1034,  1035,  1035,  1036,  1036,  1036,  1036,  1036,  1036,  1036,
!     1037,  1037,  1038,  1038,  1039,  1039,  1040,  1041,  1042,  1042,
!     1042,  1042,  1043,  1043,  1044,  1045,  1046,  1046,  1047,  1047,
!     1048,  1048,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,  1049,
!     1050,  1050,  1050,  1050,  1050,  1050,  1051,  1051,  1052,  1052,
!     1052,  1053,  1053,  1054,  1055,  1056,  1056,  1057,  1057,  1057,
!     1057,  1057,  1058,  1058,  1059,  1060,  1060,  1060,  1060,  1060,
!     1060,  1061,  1061,  1062,  1062,  1063,  1063,  1063,  1064,  1064,
!     1064,  1064,  1064,  1064,  1064,  1064,  1065,  1065,  1065,  1065,
!     1065,  1065,  1065,  1065,  1066,  1067,  1068,  1067,  1069,  1069,
!     1070,  1070,  1070,  1071,  1071,  1071,  1072,  1073,  1073,  1073,
!     1074,  1074,  1075,  1075,  1076,  1076,  1076,  1076,  1076,  1076,
!     1077,  1078,  1078,  1080,  1079,  1081,  1081,  1082,  1083,  1083,
!     1083,  1083,  1085,  1084,  1086,  1086,  1087,  1088,  1088,  1088,
!     1088,  1088,  1088,  1089,  1089,  1090,  1090,  1091,  1091,  1091,
!     1092,  1092,  1092,  1092,  1093,  1093,  1093,  1093,  1094,  1094,
!     1095,  1096,  1096,  1096,  1096,  1097,  1098,  1098,  1100,  1099,
!     1101,  1101,  1102,  1102,  1104,  1105,  1103,  1106,  1106,  1108,
!     1107,  1109,  1109,  1109,  1109,  1110,  1110,  1111,  1112,  1113,
!     1114,  1113,  1115,  1116,  1115,  1117,  1118,  1117,  1119,  1119,
!     1120,  1121,  1121,  1122,  1123,  1123,  1124,  1124,  1124,  1125,
!     1125,  1125,  1125,  1126,  1126,  1126,  1126,  1126,  1126,  1127,
!     1127,  1128,  1129,  1130,  1130,  1131,  1131,  1131,  1132,  1132,
!     1133,  1133,  1134,  1134,  1135,  1135,  1135,  1135,  1135,  1135,
!     1135,  1136,  1136,  1137,  1137,  1137,  1137,  1137,  1138,  1138,
!     1139,  1140,  1140,  1140,  1140,  1140,  1140,  1141,  1142,  1142,
!     1142,  1142,  1142,  1142,  1143,  1143,  1144,  1144,  1146,  1145,
!     1147,  1147,  1149,  1148,  1150,  1150,  1151,  1152,  1152,  1152,
!     1152,  1152,  1152,  1153,  1153,  1154,  1154,  1155,  1155,  1155,
!     1156,  1156,  1157,  1157,  1158,  1158,  1158,  1158,  1159,  1159,
!     1161,  1160,  1162,  1162,  1162,  1163,  1164,  1165,  1165,  1165,
!     1165,  1166,  1167,  1168,  1169,  1169,  1170,  1170,  1171,  1172,
!     1172,  1173,  1174,  1174,  1175,  1176,  1176,  1177,  1177,  1178,
!     1179,  1180,  1180,  1181,  1181,  1181,  1181,  1181,  1183,  1182,
!     1184,  1184,  1185,  1185,  1185,  1185,  1185,  1186,  1186,  1187,
!     1187,  1187,  1187,  1187,  1187,  1187,  1187,  1187,  1187,  1187,
!     1187,  1188,  1187,  1187,  1189,  1189,  1190,  1190,  1191,  1191,
!     1191,  1191,  1191,  1191,  1191,  1192,  1192,  1193,  1193,  1194,
!     1194,  1195,  1196,  1196,  1197,  1198,  1198,  1199,  1199,  1200,
!     1201,  1201,  1202,  1202,  1203,  1204,  1204,  1205,  1205,  1206,
!     1207,  1208,  1209,  1209,  1210,  1211,  1211,  1213,  1212,  1214,
!     1214,  1215,  1215,  1216,  1216,  1217,  1217,  1218,  1218,  1219,
!     1219,  1220,  1220,  1221,  1221,  1222,  1222,  1223,  1223,  1224,
!     1224,  1225,  1225,  1226,  1226,  1227,  1227,  1228,  1228,  1229,
!     1229,  1230,  1230,  1231,  1231,  1232,  1233,  1234,  1234,  1235,
!     1235,  1236,  1236,  1237,  1237,  1238,  1239,  1240,  1240,  1241,
!     1242,  1243,  1243,  1244,  1244,  1245,  1245,  1245,  1245,  1247,
!     1246,  1248,  1246,  1249,  1250,  1250,  1251,  1251,  1251,  1251,
!     1251,  1252,  1252,  1253,  1254,  1254,  1254,  1255,  1256,  1256,
!     1257,  1258,  1258,  1259,  1259,  1260,  1260,  1261,  1262,  1262,
!     1263,  1263,  1264,  1265,  1265,  1265,  1265,  1266,  1266,  1266,
!     1267,  1267,  1268,  1268,  1268,  1268,  1268,  1269,  1269,  1269,
!     1269,  1270,  1270,  1270,  1271,  1271,  1272,  1272,  1272,  1272,
!     1272,  1272,  1272,  1272,  1272,  1273,  1274,  1274,  1275,  1276,
!     1276,  1277,  1277,  1278,  1279,  1280,  1280,  1281,  1281,  1281,
!     1281,  1282,  1282,  1283,  1283,  1284,  1284,  1285,  1285,  1286,
!     1286,  1286,  1286,  1287,  1287,  1287,  1287,  1287,  1288,  1288,
!     1288,  1289,  1289,  1289,  1289,  1290,  1290,  1291,  1291,  1292,
!     1292,  1293,  1294,  1294,  1296,  1295,  1297,  1297,  1298,  1299,
!     1299,  1300,  1300,  1300,  1301,  1301,  1302,  1302,  1303,  1303,
!     1304,  1304,  1305,  1306,  1307,  1307,  1308,  1309,  1309,  1310,
!     1310,  1311,  1311,  1311,  1311,  1312,  1312,  1312,  1312,  1313,
!     1313,  1314,  1314,  1315,  1316,  1316,  1317,  1317,  1318,  1319,
!     1320,  1321,  1321,  1321,  1322,  1322,  1323,  1323,  1324,  1325,
!     1325,  1325,  1325,  1326,  1326,  1327,  1327,  1327,  1327,  1328,
!     1328,  1328,  1329,  1329,  1330,  1330,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,  1331,
!     1331,  1332,  1332,  1332,  1332,  1332,  1333,  1333,  1334,  1334,
!     1335,  1335,  1335,  1336,  1336,  1336,  1337,  1337,  1338,  1339,
!     1340,  1340,  1340,  1340,  1340,  1340,  1340,  1340,  1341,  1341,
!     1342,  1342,  1342,  1343,  1343,  1343,  1343,  1343,  1343,  1343,
!     1343,  1343,  1343,  1343,  1343,  1344,  1344,  1344,  1344,  1344,
!     1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,  1344,
!     1344,  1344,  1344,  1344,  1344,  1344,  1345,  1346,  1346,  1346,
!     1346,  1346,  1346,  1346,  1346,  1346,  1346,  1346,  1346,  1346,
!     1347,  1347,  1347,  1348,  1348,  1348,  1348,  1348,  1348,  1348,
!     1348,  1349,  1350,  1350,  1350,  1350,  1350,  1350,  1350,  1350,
!     1350,  1350,  1350,  1350,  1351,  1351,  1352,  1352,  1353,  1353,
!     1354,  1354,  1355,  1355,  1356,  1356,  1357,  1357,  1358,  1358,
!     1359,  1359,  1360,  1360,  1361,  1361,  1362,  1362,  1363,  1363,
!     1363,  1364,  1364,  1365,  1365,  1366,  1366,  1367,  1367,  1368,
!     1368,  1369,  1369,  1370,  1370,  1371,  1371,  1371,  1372,  1372,
!     1373,  1373,  1374,  1374,  1375,  1375,  1376,  1376,  1377,  1377,
!     1378,  1378,  1379,  1379,  1380,  1380,  1381,  1381,  1382,  1382,
!     1382,  1383,  1383,  1383,  1384,  1384,  1385,  1385,  1386,  1386,
!     1387,  1387,  1388,  1388,  1389,  1389,  1390,  1390,  1390,  1391,
!     1392,  1392,  1393,  1393,  1394,  1394,  1394,  1394,  1395,  1395,
!     1396,  1396,  1397,  1398,  1398,  1398,  1398,  1398,  1399,  1399,
!     1400,  1401,  1401,  1402,  1402,  1402,  1402,  1403,  1403,  1403,
!     1403,  1404,  1404,  1405,  1405,  1406,  1407,  1407,  1408,  1408,
!     1409,  1410,  1410,  1411,  1412,  1412,  1412,  1412,  1412,  1413,
!     1413,  1414,  1415,  1416,  1417,  1417,  1418,  1418,  1418,  1418,
!     1419,  1419,  1420,  1420,  1420,  1421,  1421,  1422,  1422,  1423,
!     1424,  1424,  1425,  1425,  1426,  1427,  1427,  1427,  1428,  1428,
!     1429,  1429,  1430,  1430,  1431,  1431,  1432,  1432,  1433,  1433,
!     1433,  1433,  1434,  1434,  1435,  1435,  1435,  1436,  1436,  1437,
!     1438,  1439,  1440,  1440,  1441,  1441,  1442,  1442,  1442,  1443,
!     1443,  1444,  1444,  1445,  1446,  1446
  };
  
  /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
*************** static const yytype_int8 yyr2[] =
*** 14275,14349 ****
         2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
         1,     1,     1,     4,     5,     3,     3,     0,     1,     1,
         3,     2,     2,     2,     0,     1,     1,     2,     2,     4,
!        2,     5,     2,     5,     2,     4,     1,     2,     1,     1,
!        1,     1,     1,     4,     0,     2,     0,     4,     4,     3,
!        3,     2,     1,     2,     2,     3,     3,     0,     3,     0,
!        5,     4,     4,     3,     1,     1,     2,     1,     4,     4,
!        6,     3,     4,     1,     4,     1,     1,     1,     1,     2,
!        2,     3,     3,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
!        1,     3,     2,     1,     1,     1,     1,     3,     4,     2,
!        4,     4,     8,     8,     0,     3,     1,     2,     2,     5,
!        2,     5,     2,     5,     5,     4,     4,     4,     0,     1,
!        1,     1,     2,     2,     2,     3,     0,     1,     0,     3,
!        1,     2,     2,     0,     4,     0,     4,     0,     4,     0,
!        4,     3,     1,     2,     0,     4,     0,     5,     2,     2,
!        1,     2,     1,     1,     1,     3,     4,     3,     3,     2,
!        2,     4,     1,     1,     4,     1,     3,     0,     1,     1,
!        3,     3,     3,     1,     1,     1,     2,     3,     1,     1,
!        1,     2,     1,     4,     4,     3,     2,     2,     1,     2,
!        1,     1,     5,     4,     3,     3,     2,     1,     0,     3,
!        4,     4,     1,     2,     5,     4,     1,     1,     1,     1,
!        0,     1,     1,     2,     1,     2,     3,     4,     4,     3,
!        3,     2,     1,     6,     4,     2,     2,     1,     2,     4,
!        1,     1,     1,     2,     1,     0,     3,     1,     2,     1,
!        2,     1,     1,     1,     1,     3,     3,     3,     3,     1,
!        1,     1,     1,     1,     5,     5,     5,     5,     5,     3,
!        4,     3,     5,     2,     1,     3,     2,     1,     2,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     5,     4,     4,     2,
!        2,     2,     2,     1,     1,     2,     2,     0,     1,     0,
!        1,     0,     1,     1,     2,     0,     3,     3,     1,     1,
!        1,     1,     2,     3,     3,     3,     3,     5,     2,     2,
!        4,     3,     3,     3,     1,     2,     2,     2,     2,     2,
!        2,     1,     1,     3,     2,     1,     2,     2,     3,     3,
         0,     2,     1,     1,     0,     2,     1,     3,     3,     3,
!        1,     0,     0,     5,     5,     3,     2,     4,     2,     1,
!        2,     2,     4,     3,     3,     1,     1,     1,     0,     0,
!        7,     1,     1,     2,     2,     2,     3,     1,     1,     2,
!        2,     4,     2,     1,     2,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     2,     3,     0,
!        1,     1,     3,     4,     3,     4,     3,     3,     3,     4,
!        3,     6,     3,     2,     3,     2,     1,     1,     1,     1,
!        1,     1,     1,     1,     2,     2,     2,     3,     0,     1,
!        3,     5,     3,     4,     0,     1,     2,     3,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     0,     1,     1,
!        1,     1,     1,     2,     1,     3,     2,     2,     1,     6,
!        4,     0,     1,     0,     2,     2,     2,     2,     3,     0,
!        1,     0,     3,     0,     3,     0,     3,     2,     0,     1,
!        2,     3,     1,     3,     2,     1,     1,     1,     1,     1,
!        4,     0,     1,     0,     1,     2,     2,     2,     3,     0,
!        1,     3,     1,     3,     1,     3,     5,     5,     2,     2,
!        2,     2,     2,     2,     1,     4,     2,     2,     0,     3,
!        1,     0,     3,     3,     2,     1,     2,     1,     1,     1,
!        3,     2,     2,     2,     1,     2,     1,     3,     1,     1,
!        3,     3,     3,     3,     2,     1,     3,     1,     1,     3,
!        3,     3,     3,     3,     4,     1,     1,     2,     2,     4,
!        1,     3,     3,     5,     3,     5,     2,     1,     2,     1,
!        2,     2,     2,     2,     1,     2,     1,     3,     3,     1,
!        3,     3,     1,     3,     2,     2,     1,     3,     1,     2,
!        3,     1,     2,     1,     0,     4,     1,     2,     0,     1,
!        4,     1,     1,     3,     1,     1,     1,     1,     1,     0,
!        5,     1,     2,     2,     3,     1,     1,     2,     0,     3,
!        2,     1,     3,     1,     1,     1,     1,     1,     3,     2,
!        1,     1,     1,     2,     3,     3,     5,     3,     5,     1,
!        2,     0,     1,     1,     1,     1,     1,     3,     2,     2,
!        1,     5,     4,     1,     1,     1,     3,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
--- 17032,17108 ----
         2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
         1,     1,     1,     4,     5,     3,     3,     0,     1,     1,
         3,     2,     2,     2,     0,     1,     1,     2,     2,     4,
!        2,     4,     5,     2,     5,     2,     4,     1,     2,     1,
!        1,     1,     1,     1,     4,     0,     2,     0,     4,     4,
!        3,     3,     2,     1,     2,     2,     3,     3,     3,     0,
!        1,     1,     2,     2,     3,     4,     2,     1,     1,     2,
!        4,     1,     1,     1,     1,     2,     1,     4,     6,     4,
!        6,     3,     4,     1,     4,     1,     1,     1,     1,     1,
!        1,     2,     2,     3,     3,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
!        1,     1,     2,     1,     3,     2,     1,     1,     1,     1,
!        3,     4,     2,     4,     4,     8,     8,     0,     3,     1,
!        2,     2,     5,     2,     5,     2,     5,     5,     4,     4,
!        4,     0,     1,     1,     1,     2,     2,     2,     3,     0,
!        1,     0,     3,     1,     2,     2,     0,     4,     0,     4,
!        0,     4,     0,     4,     3,     1,     2,     0,     4,     0,
!        5,     2,     2,     1,     2,     1,     1,     1,     3,     4,
!        3,     3,     5,     2,     2,     4,     2,     1,     1,     1,
!        1,     1,     1,     1,     1,     4,     1,     3,     0,     1,
!        1,     3,     3,     3,     1,     1,     1,     2,     3,     1,
!        1,     1,     2,     1,     4,     4,     3,     2,     2,     1,
!        2,     1,     1,     5,     4,     3,     3,     2,     1,     0,
!        3,     4,     4,     1,     2,     5,     4,     1,     1,     1,
!        1,     0,     1,     1,     2,     1,     2,     3,     4,     4,
!        3,     3,     2,     1,     6,     4,     2,     2,     1,     2,
!        4,     1,     1,     1,     2,     1,     0,     3,     1,     2,
!        1,     2,     1,     1,     1,     1,     3,     3,     3,     3,
!        1,     1,     1,     1,     1,     5,     5,     5,     5,     5,
!        3,     4,     3,     5,     2,     1,     3,     2,     1,     2,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     5,     4,     4,
!        2,     2,     2,     2,     1,     1,     2,     2,     0,     1,
!        0,     1,     0,     1,     1,     2,     0,     3,     3,     1,
!        1,     1,     1,     2,     3,     3,     3,     3,     5,     2,
!        2,     2,     4,     3,     3,     3,     1,     2,     2,     2,
!        2,     2,     2,     1,     3,     1,     2,     2,     3,     3,
         0,     2,     1,     1,     0,     2,     1,     3,     3,     3,
!        1,     0,     3,     5,     0,     2,     4,     2,     1,     2,
!        2,     4,     3,     3,     1,     1,     1,     0,     0,     7,
!        1,     1,     2,     2,     2,     3,     1,     1,     2,     2,
!        4,     2,     1,     2,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     2,     3,
!        0,     1,     1,     3,     4,     3,     4,     3,     3,     3,
!        4,     3,     6,     3,     2,     3,     2,     1,     1,     1,
!        1,     1,     1,     1,     1,     2,     2,     2,     3,     0,
!        1,     3,     5,     3,     4,     0,     1,     2,     3,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
!        1,     1,     1,     1,     2,     1,     3,     2,     2,     1,
!        6,     4,     0,     1,     0,     2,     2,     2,     2,     3,
!        0,     1,     0,     3,     0,     3,     2,     0,     1,     2,
!        3,     1,     3,     2,     1,     1,     1,     1,     1,     4,
!        0,     1,     0,     1,     2,     2,     2,     3,     0,     1,
!        3,     1,     3,     1,     3,     5,     5,     2,     2,     2,
!        2,     2,     2,     1,     4,     2,     2,     0,     3,     1,
!        0,     3,     3,     2,     1,     2,     1,     1,     1,     3,
!        2,     2,     2,     1,     2,     1,     3,     1,     1,     3,
!        3,     3,     3,     2,     1,     3,     1,     1,     1,     1,
!        3,     3,     3,     3,     3,     4,     1,     1,     2,     2,
!        4,     1,     3,     3,     5,     3,     5,     2,     1,     2,
!        1,     2,     2,     2,     2,     1,     2,     1,     3,     3,
!        1,     3,     3,     1,     3,     2,     2,     1,     3,     1,
!        2,     3,     1,     2,     1,     0,     4,     1,     2,     0,
!        1,     4,     1,     1,     3,     1,     1,     1,     1,     1,
!        0,     5,     1,     2,     2,     3,     1,     1,     2,     0,
!        3,     2,     1,     3,     1,     1,     1,     1,     1,     3,
!        2,     1,     1,     1,     2,     3,     3,     5,     3,     5,
!        1,     2,     0,     1,     1,     1,     1,     1,     3,     2,
!        2,     1,     5,     4,     1,     1,     1,     3,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
*************** static const yytype_int8 yyr2[] =
*** 14352,14445 ****
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     4,     5,     5,     5,
-        4,     5,     1,     2,     1,     1,     1,     2,     2,     2,
-        3,     0,     1,     3,     3,     5,     5,     1,     2,     3,
-        1,     1,     1,     1,     1,     1,     1,     2,     3,     1,
-        2,     1,     1,     1,     1,     1,     1,     3,     3,     2,
-        2,     3,     1,     3,     3,     3,     3,     2,     2,     3,
-        1,     3,     0,     5,     1,     2,     3,     2,     2,     1,
-        2,     2,     3,     1,     2,     1,     1,     2,     1,     1,
-        1,     2,     2,     2,     2,     3,     1,     1,     0,     3,
-        1,     2,     2,     1,     1,     1,     1,     0,     3,     1,
-        2,     2,     0,     1,     3,     4,     3,     2,     1,     1,
-        0,     1,     2,     2,     2,     2,     2,     2,     1,     1,
-        3,     2,     2,     1,     3,     2,     3,     2,     2,     1,
-        1,     2,     1,     0,     3,     3,     2,     0,     2,     0,
-        0,     9,     1,     2,     0,     4,     2,     2,     1,     1,
-        1,     2,     1,     3,     0,     0,     5,     0,     0,     5,
-        0,     0,     4,     3,     3,     6,     1,     2,     6,     0,
-        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     2,     2,     2,     3,     0,     1,
-        3,     5,     4,     1,     2,     1,     2,     1,     1,     3,
-        1,     1,     1,     2,     2,     3,     1,     1,     1,     1,
-        1,     1,     1,     3,     2,     1,     2,     3,     3,     4,
-        3,     4,     4,     0,     2,     1,     2,     1,     1,     0,
-        2,     1,     2,     0,     3,     1,     2,     0,     3,     0,
-        3,     1,     2,     3,     3,     4,     3,     4,     3,     1,
-        3,     1,     1,     3,     2,     1,     1,     1,     2,     2,
-        2,     1,     1,     1,     2,     0,     4,     2,     2,     2,
-        3,     2,     0,     1,     1,     3,     4,     2,     0,     1,
-        2,     2,     2,     3,     0,     1,     1,     4,     7,     2,
-        2,     0,     8,     1,     2,     1,     1,     4,     4,     4,
-        1,     3,     4,     4,     4,     5,     5,     5,     5,     5,
-        5,     5,     4,     0,     3,     1,     2,     3,     1,     2,
-        1,     1,     1,     2,     2,     3,     0,     1,     1,     4,
-        2,     0,     2,     1,     2,     3,     1,     1,     4,     7,
-        1,     1,     2,     0,     4,     1,     2,     1,     3,     3,
-        1,     1,     1,     1,     1,     5,     4,     7,     6,     1,
-        2,     4,     3,     1,     1,     1,     2,     0,     4,     0,
-        4,     2,     4,     2,     4,     1,     3,     4,     2,     2,
-        2,     2,     3,     0,     1,     1,     3,     1,     2,     1,
-        2,     2,     1,     1,     2,     1,     1,     1,     1,     0,
-        1,     5,     7,     5,     9,     0,     2,     0,     3,     3,
-        1,     2,     3,     2,     2,     2,     2,     1,     2,     2,
-        0,     2,     1,     1,     1,     3,     1,     1,     2,     4,
-        2,     1,     2,     4,     0,     1,     1,     2,     3,     1,
-        1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
-        3,     5,     5,     1,     1,     3,     4,     4,     1,     3,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     3,     1,     2,     4,     1,     1,     2,     2,     2,
!        3,     0,     1,     1,     3,     3,     5,     1,     1,     2,
!        4,     1,     1,     1,     2,     1,     3,     3,     3,     1,
!        3,     1,     1,     1,     1,     1,     1,     3,     2,     1,
!        4,     3,     2,     1,     1,     2,     1,     2,     0,     3,
!        1,     2,     3,     1,     3,     2,     5,     1,     3,     2,
!        1,     2,     1,     1,     2,     2,     2,     3,     0,     1,
!        2,     1,     2,     4,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     2,     5,     2,     3,     1,     2,     2,
!        0,     1,     2,     3,     4,     1,     1,     1,     0,     3,
!        1,     3,     2,     1,     4,     4,     7,     1,     2,     1,
!        4,     4,     7,     2,     3,     2,     0,     1,     4,     1,
!        1,     1,     4,     4,     6,     4,     4,     6,     4,     5,
!        2,     7,     5,     6,     7,     4,     6,     5,     4,     5,
!        5,     5,     5,     5,     5,     5,     4,     4,     4,     4,
!        4,     6,     4,     1,     3,     7,     6,     5,     5,     6,
!        4,     5,     6,     4,     4,     4,     5,     4,     5,     6,
!        4,     5,     6,     4,     5,     6,     5,     5,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
!        1,     1,     1,     0,     2,     1,     1,     2,     4,     5,
!        6,     4,     5,     4,     5,     4,     5,     1,     1,     0,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     0,     1,     0,     1,     0,     1,     0,
!        1,     0,     1,     0,     1,     0,     1,     0,     1,     0,
!        1,     0,     1,     0,     1,     0,     1,     0,     1,     1,
!        0,     2,     0,     1,     0,     1,     0,     1,     0,     1,
!        0,     1,     0,     1,     1,     0,     1,     0,     1,     0,
!        1,     0,     1,     0,     1,     0,     1,     0,     1,     0,
!        1,     0,     1,     0,     1,     1,     0,     3,     0,     1,
         0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
!        2,     0,     1,     1,     1,     1,     1,     1,     1,     2,
!        2,     1,     4,     5,     6,     6,     2,     1,     2,     3,
!        0,     2,     1,     1,     1,     1,     1,     2,     2,     3,
!        1,     1,     0,     1,     2,     1,     2,     1,     1,     2,
!        1,     2,     1,     1,     1,     1,     1,     1
  };
  
  
--- 17111,17216 ----
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        4,     5,     5,     5,     4,     5,     1,     2,     1,     1,
!        1,     2,     2,     2,     3,     0,     1,     3,     3,     5,
!        5,     1,     2,     3,     1,     1,     1,     1,     1,     1,
!        1,     2,     3,     1,     2,     1,     1,     1,     1,     1,
!        1,     3,     3,     2,     2,     3,     1,     3,     3,     3,
!        3,     2,     2,     3,     1,     3,     0,     5,     1,     2,
!        3,     2,     2,     1,     2,     2,     3,     1,     2,     1,
!        1,     2,     1,     1,     1,     2,     2,     2,     2,     3,
!        1,     1,     1,     0,     3,     1,     2,     2,     1,     1,
!        1,     1,     0,     3,     1,     2,     2,     0,     1,     3,
!        4,     3,     2,     1,     1,     0,     1,     2,     2,     2,
!        2,     2,     2,     1,     1,     3,     2,     2,     1,     3,
!        2,     3,     2,     2,     1,     1,     2,     1,     0,     3,
!        3,     2,     0,     2,     0,     0,     9,     1,     2,     0,
!        4,     2,     2,     1,     1,     1,     2,     1,     3,     0,
!        0,     5,     0,     0,     5,     0,     0,     4,     3,     3,
!        6,     1,     2,     6,     0,     2,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
!        2,     2,     3,     0,     1,     3,     5,     4,     1,     2,
!        1,     2,     1,     1,     3,     1,     1,     1,     2,     2,
!        3,     1,     1,     1,     1,     1,     1,     1,     3,     2,
!        1,     2,     3,     3,     4,     3,     4,     4,     0,     2,
!        1,     2,     1,     1,     0,     2,     1,     2,     0,     3,
!        1,     2,     0,     3,     0,     3,     1,     2,     3,     3,
!        4,     3,     4,     3,     1,     3,     1,     1,     3,     2,
!        1,     1,     1,     2,     2,     2,     1,     1,     1,     2,
!        0,     4,     2,     2,     2,     3,     4,     0,     3,     3,
!        1,     2,     3,     2,     0,     1,     2,     3,     1,     0,
!        1,     1,     3,     4,     2,     0,     1,     2,     2,     2,
!        3,     0,     1,     1,     4,     7,     2,     2,     0,     8,
!        1,     2,     1,     1,     4,     4,     4,     1,     3,     4,
!        4,     4,     5,     5,     5,     5,     5,     5,     5,     5,
!        4,     0,     3,     5,     1,     1,     1,     2,     1,     1,
!        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        2,     3,     1,     2,     1,     1,     1,     2,     2,     3,
!        0,     1,     1,     4,     2,     0,     2,     1,     2,     3,
!        1,     1,     4,     7,     1,     1,     2,     0,     4,     1,
!        2,     1,     3,     3,     1,     1,     1,     1,     1,     5,
!        4,     7,     6,     1,     2,     4,     3,     1,     1,     1,
!        2,     0,     4,     0,     4,     2,     4,     2,     4,     1,
!        3,     4,     2,     2,     2,     2,     3,     0,     1,     1,
!        3,     1,     2,     1,     2,     2,     1,     1,     2,     1,
!        1,     1,     1,     0,     1,     5,     7,     5,     9,     0,
!        2,     0,     3,     3,     1,     2,     3,     2,     2,     2,
!        2,     1,     2,     2,     0,     2,     1,     1,     1,     3,
!        1,     1,     2,     4,     2,     1,     2,     4,     0,     1,
!        1,     2,     3,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     2,     4,     3,     5,     5,     1,     1,     3,
!        4,     4,     1,     3,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     1,     3,     1,     2,     4,     1,
!        1,     2,     2,     2,     3,     0,     1,     1,     3,     3,
!        5,     1,     1,     2,     4,     1,     1,     1,     2,     1,
!        3,     3,     3,     1,     1,     1,     3,     1,     1,     1,
!        1,     1,     1,     3,     2,     1,     4,     3,     2,     1,
!        1,     2,     1,     2,     0,     3,     1,     2,     3,     1,
!        3,     2,     5,     1,     3,     2,     1,     2,     1,     1,
!        2,     2,     2,     3,     0,     1,     2,     1,     2,     4,
!        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
!        5,     2,     3,     1,     2,     2,     0,     1,     2,     3,
!        4,     1,     1,     1,     0,     3,     1,     3,     2,     1,
!        4,     4,     7,     1,     2,     1,     4,     4,     7,     2,
!        3,     2,     0,     1,     4,     1,     1,     1,     4,     4,
!        6,     4,     4,     7,     7,     6,     6,     7,     6,     7,
!        4,     5,     2,     8,     5,     6,     7,     4,     6,     5,
!        4,     5,     5,     5,     5,     5,     5,     5,     4,     4,
!        4,     4,     4,     6,     4,     1,     3,     7,     6,     5,
!        5,     6,     4,     5,     6,     4,     4,     4,     5,     4,
!        5,     6,     4,     5,     6,     4,     5,     6,     5,     5,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+        1,     2,     3,     0,     2,     1,     1,     2,     4,     1,
+        5,     6,     4,     5,     4,     5,     4,     5,     1,     1,
+        0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
!        1,     1,     1,     1,     0,     1,     0,     1,     0,     1,
         0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
!        0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
!        1,     0,     1,     0,     2,     0,     1,     0,     1,     0,
!        1,     0,     1,     0,     1,     0,     1,     1,     0,     1,
!        0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
!        0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
!        1,     0,     3,     1,     1,     1,     0,     1,     0,     1,
!        0,     1,     0,     1,     0,     1,     0,     1,     2,     1,
!        0,     1,     0,     1,     1,     1,     1,     1,     1,     1,
!        2,     2,     1,     4,     5,     6,     6,     2,     1,     2,
!        3,     0,     2,     1,     1,     1,     1,     1,     2,     2,
!        3,     1,     1,     0,     1,     2,     1,     2,     1,     1,
!        2,     1,     2,     1,     1,     1,     1,     1,     1,     2,
!        2,     2,     3,    11,     0,     3,     0,     4,     2,     2,
!        0,     4,     0,     3,     3,     0,     3,     1,     2,     3,
!        0,     3,     1,     2,     3,     1,     1,     1,     0,     2,
!        1,     2,     2,     2,     0,     1,     1,     3,     1,     1,
!        1,     1,     0,     3,     0,     1,     1,     2,     2,     2,
!        3,     8,     0,     3,     0,     2,     0,     3,     4,     1,
!        3,     2,     3,     1,     0,     1
  };
  
  
*************** yy_symbol_value_print (FILE *yyo,
*** 14607,16187 ****
    switch (yykind)
      {
      case YYSYMBOL_ALNUM: /* ALNUM  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14613 "parse.cc"
          break;
  
      case YYSYMBOL_ALPHED: /* ALPHED  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14619 "parse.cc"
          break;
  
      case YYSYMBOL_ERROR: /* ERROR  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14625 "parse.cc"
          break;
  
      case YYSYMBOL_EXCEPTION: /* EXCEPTION  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14631 "parse.cc"
          break;
  
      case YYSYMBOL_SIZE_ERROR: /* "SIZE ERROR"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14637 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL: /* LEVEL  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14643 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL66: /* "66"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14649 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL78: /* "78"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14655 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL88: /* "88"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14661 "parse.cc"
          break;
  
      case YYSYMBOL_CLASS_NAME: /* "class name"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14667 "parse.cc"
          break;
  
      case YYSYMBOL_NAME: /* NAME  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14673 "parse.cc"
          break;
  
      case YYSYMBOL_NAME88: /* "Level 88 NAME"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14679 "parse.cc"
          break;
  
      case YYSYMBOL_NUME: /* "Name"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14685 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED: /* "NUMERIC-EDITED picture"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14691 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED_CR: /* "NUMERIC-EDITED CR picture"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14697 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED_DB: /* "NUMERIC-EDITED DB picture"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14703 "parse.cc"
          break;
  
      case YYSYMBOL_NINEDOT: /* NINEDOT  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14709 "parse.cc"
          break;
  
      case YYSYMBOL_NINES: /* NINES  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14715 "parse.cc"
          break;
  
      case YYSYMBOL_NINEV: /* NINEV  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14721 "parse.cc"
          break;
  
      case YYSYMBOL_PIC_P: /* PIC_P  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14727 "parse.cc"
          break;
  
      case YYSYMBOL_ONES: /* ONES  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14733 "parse.cc"
          break;
  
      case YYSYMBOL_SPACES: /* SPACES  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14739 "parse.cc"
          break;
  
      case YYSYMBOL_LITERAL: /* LITERAL  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 14747 "parse.cc"
          break;
  
      case YYSYMBOL_END: /* END  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14753 "parse.cc"
          break;
  
      case YYSYMBOL_EOP: /* EOP  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14759 "parse.cc"
          break;
  
      case YYSYMBOL_FILENAME: /* FILENAME  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14765 "parse.cc"
          break;
  
      case YYSYMBOL_INVALID: /* INVALID  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14771 "parse.cc"
          break;
  
      case YYSYMBOL_NUMBER: /* NUMBER  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14777 "parse.cc"
          break;
  
      case YYSYMBOL_NEGATIVE: /* NEGATIVE  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14783 "parse.cc"
          break;
  
      case YYSYMBOL_NUMSTR: /* "numeric literal"  */
! #line 980 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).numstr).string ); }
! #line 14789 "parse.cc"
          break;
  
      case YYSYMBOL_OVERFLOW_kw: /* "OVERFLOW"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14795 "parse.cc"
          break;
  
      case YYSYMBOL_BINARY_INTEGER: /* BINARY_INTEGER  */
! #line 983 "parse.y"
           { fprintf(yyo, "{%s %c%u}", cbl_field_type_str(((*yyvaluep).computational).type),
                                       ((*yyvaluep).computational).signable? '+' : ' ',
                                       ((*yyvaluep).computational).capacity ); }
! #line 14803 "parse.cc"
          break;
  
      case YYSYMBOL_COMPUTATIONAL: /* COMPUTATIONAL  */
! #line 983 "parse.y"
           { fprintf(yyo, "{%s %c%u}", cbl_field_type_str(((*yyvaluep).computational).type),
                                       ((*yyvaluep).computational).signable? '+' : ' ',
                                       ((*yyvaluep).computational).capacity ); }
! #line 14811 "parse.cc"
          break;
  
      case YYSYMBOL_POSITIVE: /* POSITIVE  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14817 "parse.cc"
          break;
  
      case YYSYMBOL_SECTION: /* SECTION  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14823 "parse.cc"
          break;
  
      case YYSYMBOL_STANDARD_ALPHABET: /* "STANDARD ALPHABET"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14829 "parse.cc"
          break;
  
      case YYSYMBOL_SWITCH: /* SWITCH  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14835 "parse.cc"
          break;
  
      case YYSYMBOL_UPSI: /* UPSI  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 14841 "parse.cc"
          break;
  
      case YYSYMBOL_ZERO: /* ZERO  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14847 "parse.cc"
          break;
  
      case YYSYMBOL_SYSIN: /* SYSIN  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14853 "parse.cc"
          break;
  
      case YYSYMBOL_SYSIPT: /* SYSIPT  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14859 "parse.cc"
          break;
  
      case YYSYMBOL_SYSOUT: /* SYSOUT  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14865 "parse.cc"
          break;
  
      case YYSYMBOL_SYSLIST: /* SYSLIST  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14871 "parse.cc"
          break;
  
      case YYSYMBOL_SYSLST: /* SYSLST  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14877 "parse.cc"
          break;
  
      case YYSYMBOL_SYSPUNCH: /* SYSPUNCH  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14883 "parse.cc"
          break;
  
      case YYSYMBOL_SYSPCH: /* SYSPCH  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14889 "parse.cc"
          break;
  
      case YYSYMBOL_CONSOLE: /* CONSOLE  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14895 "parse.cc"
          break;
  
      case YYSYMBOL_C01: /* C01  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14901 "parse.cc"
          break;
  
      case YYSYMBOL_C02: /* C02  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14907 "parse.cc"
          break;
  
      case YYSYMBOL_C03: /* C03  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14913 "parse.cc"
          break;
  
      case YYSYMBOL_C04: /* C04  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14919 "parse.cc"
          break;
  
      case YYSYMBOL_C05: /* C05  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14925 "parse.cc"
          break;
  
      case YYSYMBOL_C06: /* C06  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14931 "parse.cc"
          break;
  
      case YYSYMBOL_C07: /* C07  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14937 "parse.cc"
          break;
  
      case YYSYMBOL_C08: /* C08  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14943 "parse.cc"
          break;
  
      case YYSYMBOL_C09: /* C09  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14949 "parse.cc"
          break;
  
      case YYSYMBOL_C10: /* C10  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14955 "parse.cc"
          break;
  
      case YYSYMBOL_C11: /* C11  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14961 "parse.cc"
          break;
  
      case YYSYMBOL_C12: /* C12  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14967 "parse.cc"
          break;
  
      case YYSYMBOL_CSP: /* CSP  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14973 "parse.cc"
          break;
  
      case YYSYMBOL_S01: /* S01  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14979 "parse.cc"
          break;
  
      case YYSYMBOL_S02: /* S02  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14985 "parse.cc"
          break;
  
      case YYSYMBOL_S03: /* S03  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14991 "parse.cc"
          break;
  
      case YYSYMBOL_S04: /* S04  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 14997 "parse.cc"
          break;
  
      case YYSYMBOL_S05: /* S05  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15003 "parse.cc"
          break;
  
      case YYSYMBOL_AFP_5A: /* "AFP 5A"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15009 "parse.cc"
          break;
  
      case YYSYMBOL_STDIN: /* STDIN  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15015 "parse.cc"
          break;
  
      case YYSYMBOL_STDOUT: /* STDOUT  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15021 "parse.cc"
          break;
  
      case YYSYMBOL_STDERR: /* STDERR  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15027 "parse.cc"
          break;
  
      case YYSYMBOL_LIST: /* LIST  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15033 "parse.cc"
          break;
  
      case YYSYMBOL_MAP: /* MAP  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15039 "parse.cc"
          break;
  
      case YYSYMBOL_NOLIST: /* NOLIST  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15045 "parse.cc"
          break;
  
      case YYSYMBOL_NOMAP: /* NOMAP  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15051 "parse.cc"
          break;
  
      case YYSYMBOL_NOSOURCE: /* NOSOURCE  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15057 "parse.cc"
          break;
  
      case YYSYMBOL_MIGHT_BE: /* "IS or IS NOT"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15063 "parse.cc"
          break;
  
      case YYSYMBOL_FUNCTION_UDF: /* "UDF name"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15069 "parse.cc"
          break;
  
      case YYSYMBOL_FUNCTION_UDF_0: /* "UDF"  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15075 "parse.cc"
          break;
  
      case YYSYMBOL_DATE_FMT: /* "date format"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15081 "parse.cc"
          break;
  
      case YYSYMBOL_TIME_FMT: /* "time format"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15087 "parse.cc"
          break;
  
      case YYSYMBOL_DATETIME_FMT: /* "datetime format"  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15093 "parse.cc"
          break;
  
      case YYSYMBOL_program_as: /* program_as  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 15101 "parse.cc"
          break;
  
      case YYSYMBOL_opt_init_value: /* opt_init_value  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15107 "parse.cc"
          break;
  
      case YYSYMBOL_namestr: /* namestr  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 15115 "parse.cc"
          break;
  
      case YYSYMBOL_selected_name: /* selected_name  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15121 "parse.cc"
          break;
  
      case YYSYMBOL_access_mode: /* access_mode  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15127 "parse.cc"
          break;
  
      case YYSYMBOL_lock_how: /* lock_how  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15133 "parse.cc"
          break;
  
      case YYSYMBOL_lock_mode: /* lock_mode  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15139 "parse.cc"
          break;
  
      case YYSYMBOL_multiple: /* multiple  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15145 "parse.cc"
          break;
  
      case YYSYMBOL_org_is: /* org_is  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15151 "parse.cc"
          break;
  
      case YYSYMBOL_org_clause1: /* org_clause1  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15157 "parse.cc"
          break;
  
      case YYSYMBOL_repo_as: /* repo_as  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 15165 "parse.cc"
!         break;
! 
!     case YYSYMBOL_collating_sequence: /* collating_sequence  */
! #line 964 "parse.y"
!          { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15171 "parse.cc"
          break;
  
      case YYSYMBOL_locale_spec: /* locale_spec  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15177 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_seq: /* alphabet_seq  */
! #line 986 "parse.y"
           { fprintf(yyo, "{'%s'-'%s'%s}",
                          ((*yyvaluep).colseq).low?  (const char*) ((*yyvaluep).colseq).low : "",
                          ((*yyvaluep).colseq).high? (const char*) ((*yyvaluep).colseq).high : "",
                          ((*yyvaluep).colseq).also? "+" : "" ); }
! #line 15186 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_etc: /* alphabet_etc  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15192 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_lit: /* alphabet_lit  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 15200 "parse.cc"
          break;
  
      case YYSYMBOL_picture_sym: /* picture_sym  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15206 "parse.cc"
          break;
  
      case YYSYMBOL_fd_name: /* fd_name  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15212 "parse.cc"
          break;
  
      case YYSYMBOL_rec_contains: /* rec_contains  */
! #line 974 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 15219 "parse.cc"
          break;
  
      case YYSYMBOL_alpha_val: /* alpha_val  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15225 "parse.cc"
          break;
  
      case YYSYMBOL_record_desc: /* record_desc  */
! #line 974 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 15232 "parse.cc"
          break;
  
      case YYSYMBOL_record_vary: /* record_vary  */
! #line 974 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 15239 "parse.cc"
          break;
  
      case YYSYMBOL_from_to: /* from_to  */
! #line 974 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 15246 "parse.cc"
          break;
  
      case YYSYMBOL_cardinal: /* cardinal  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15252 "parse.cc"
          break;
  
      case YYSYMBOL_bound: /* bound  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15258 "parse.cc"
          break;
  
      case YYSYMBOL_level_name: /* level_name  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15268 "parse.cc"
          break;
  
      case YYSYMBOL_data_descr: /* data_descr  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15278 "parse.cc"
          break;
  
      case YYSYMBOL_const_value: /* const_value  */
! #line 981 "parse.y"
!          { const char *s = string_of(((*yyvaluep).float128));
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 15285 "parse.cc"
          break;
  
      case YYSYMBOL_data_descr1: /* data_descr1  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15295 "parse.cc"
          break;
  
      case YYSYMBOL_literalism: /* literalism  */
! #line 965 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 15303 "parse.cc"
          break;
  
      case YYSYMBOL_name66: /* name66  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15309 "parse.cc"
          break;
  
      case YYSYMBOL_data_clauses: /* data_clauses  */
! #line 950 "parse.y"
           { fprintf(yyo, "clauses: 0x%04x", ((*yyvaluep).number)); }
! #line 15315 "parse.cc"
          break;
  
      case YYSYMBOL_data_clause: /* data_clause  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15321 "parse.cc"
          break;
  
      case YYSYMBOL_alphanum_pic: /* alphanum_pic  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15327 "parse.cc"
          break;
  
      case YYSYMBOL_signed: /* signed  */
! #line 976 "parse.y"
           { fprintf(yyo, "{%s}", ((*yyvaluep).number)? "+/-" : "" ); }
! #line 15333 "parse.cc"
          break;
  
      case YYSYMBOL_nps: /* nps  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15339 "parse.cc"
          break;
  
      case YYSYMBOL_nine: /* nine  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15345 "parse.cc"
          break;
  
      case YYSYMBOL_nines: /* nines  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15351 "parse.cc"
          break;
  
      case YYSYMBOL_count: /* count  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15357 "parse.cc"
          break;
  
      case YYSYMBOL_numed: /* numed  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15363 "parse.cc"
          break;
  
      case YYSYMBOL_usage_clause1: /* usage_clause1  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15369 "parse.cc"
          break;
  
      case YYSYMBOL_by_value_arg: /* by_value_arg  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15375 "parse.cc"
          break;
  
      case YYSYMBOL_paragraph_name: /* paragraph_name  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15381 "parse.cc"
          break;
  
      case YYSYMBOL_sentence: /* sentence  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15387 "parse.cc"
          break;
  
      case YYSYMBOL_statements: /* statements  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15393 "parse.cc"
          break;
  
      case YYSYMBOL_statement: /* statement  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15399 "parse.cc"
          break;
  
      case YYSYMBOL_accept_refer: /* accept_refer  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15405 "parse.cc"
          break;
  
      case YYSYMBOL_envar: /* envar  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15411 "parse.cc"
          break;
  
      case YYSYMBOL_might_be: /* might_be  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15417 "parse.cc"
          break;
  
      case YYSYMBOL_posneg: /* posneg  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15423 "parse.cc"
          break;
  
      case YYSYMBOL_name88: /* name88  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15433 "parse.cc"
          break;
  
      case YYSYMBOL_scalar88: /* scalar88  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15439 "parse.cc"
          break;
  
      case YYSYMBOL_alloc_ret: /* alloc_ret  */
! #line 952 "parse.y"
           { fprintf(yyo, "%s", ((*yyvaluep).refer)->field? name_of(((*yyvaluep).refer)->field) : "[omitted]"); }
! #line 15445 "parse.cc"
          break;
  
      case YYSYMBOL_compute_expr: /* compute_expr  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15451 "parse.cc"
          break;
  
      case YYSYMBOL_exit_with: /* exit_with  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15457 "parse.cc"
          break;
  
      case YYSYMBOL_free_tgt: /* free_tgt  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15463 "parse.cc"
          break;
  
      case YYSYMBOL_simple_cond: /* simple_cond  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15469 "parse.cc"
          break;
  
      case YYSYMBOL_kind_of_name: /* kind_of_name  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15479 "parse.cc"
          break;
  
      case YYSYMBOL_bool_expr: /* bool_expr  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15485 "parse.cc"
          break;
  
      case YYSYMBOL_log_term: /* log_term  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15495 "parse.cc"
          break;
  
      case YYSYMBOL_rel_expr: /* rel_expr  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15505 "parse.cc"
          break;
  
      case YYSYMBOL_rel_abbr: /* rel_abbr  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15515 "parse.cc"
          break;
  
      case YYSYMBOL_rel_term: /* rel_term  */
! #line 959 "parse.y"
           { fprintf(yyo, "%c %s",
                          ((*yyvaluep).rel_term_t).invert? '!' : ' ',
  		        ((*yyvaluep).rel_term_t).term? name_of(((*yyvaluep).rel_term_t).term->field) : "<none>"); }
! #line 15523 "parse.cc"
          break;
  
      case YYSYMBOL_rel_term1: /* rel_term1  */
! #line 959 "parse.y"
           { fprintf(yyo, "%c %s",
                          ((*yyvaluep).rel_term_t).invert? '!' : ' ',
  		        ((*yyvaluep).rel_term_t).term? name_of(((*yyvaluep).rel_term_t).term->field) : "<none>"); }
! #line 15531 "parse.cc"
          break;
  
      case YYSYMBOL_expr: /* expr  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15537 "parse.cc"
          break;
  
      case YYSYMBOL_expr_term: /* expr_term  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15543 "parse.cc"
          break;
  
      case YYSYMBOL_num_term: /* num_term  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15549 "parse.cc"
          break;
  
      case YYSYMBOL_value: /* value  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15555 "parse.cc"
          break;
  
      case YYSYMBOL_factor: /* factor  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15561 "parse.cc"
          break;
  
      case YYSYMBOL_eval_subject1: /* eval_subject1  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15567 "parse.cc"
          break;
  
      case YYSYMBOL_eval_posneg: /* eval_posneg  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15573 "parse.cc"
          break;
  
      case YYSYMBOL_eval_abbr: /* eval_abbr  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15583 "parse.cc"
          break;
  
      case YYSYMBOL_true_false: /* true_false  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15589 "parse.cc"
          break;
  
      case YYSYMBOL_scalar: /* scalar  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15595 "parse.cc"
          break;
  
      case YYSYMBOL_tableref: /* tableref  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15601 "parse.cc"
          break;
  
      case YYSYMBOL_tableish: /* tableish  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15607 "parse.cc"
          break;
  
      case YYSYMBOL_typename: /* typename  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15617 "parse.cc"
          break;
  
      case YYSYMBOL_name: /* name  */
! #line 971 "parse.y"
           { fprintf(yyo, "#" HOST_SIZE_T_PRINT_UNSIGNED ": %s",
                          is_temporary(((*yyvaluep).field))? 0 : (fmt_size_t)field_index(((*yyvaluep).field)),
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "<nil>" ); }
! #line 15625 "parse.cc"
          break;
  
      case YYSYMBOL_qname: /* qname  */
! #line 977 "parse.y"
           { fprintf(yyo, "{%s of " HOST_SIZE_T_PRINT_UNSIGNED "}",
  		         teed_up_names().front(), (fmt_size_t) teed_up_names().size() ); }
! #line 15632 "parse.cc"
          break;
  
      case YYSYMBOL_ctx_name: /* ctx_name  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15638 "parse.cc"
          break;
  
      case YYSYMBOL_context_word: /* context_word  */
! #line 964 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 15644 "parse.cc"
          break;
  
      case YYSYMBOL_move_tgts: /* move_tgts  */
! #line 968 "parse.y"
!          { fprintf(yyo,"%s (1st of" HOST_SIZE_T_PRINT_UNSIGNED")",
                          ((*yyvaluep).targets)->targets.empty()? "" : ((*yyvaluep).targets)->targets.front().refer.field->name,
                          (fmt_size_t)((*yyvaluep).targets)->targets.size() ); }
! #line 15652 "parse.cc"
          break;
  
      case YYSYMBOL_move_tgt: /* move_tgt  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15658 "parse.cc"
          break;
  
      case YYSYMBOL_relop: /* relop  */
! #line 963 "parse.y"
           { fprintf(yyo, "%s (token %d)", keyword_str(((*yyvaluep).number)), ((*yyvaluep).number) ); }
! #line 15664 "parse.cc"
          break;
  
      case YYSYMBOL_num_operand: /* num_operand  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15670 "parse.cc"
          break;
  
      case YYSYMBOL_num_value: /* num_value  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15676 "parse.cc"
          break;
  
      case YYSYMBOL_cce_expr: /* cce_expr  */
! #line 981 "parse.y"
!          { const char *s = string_of(((*yyvaluep).float128));
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 15683 "parse.cc"
          break;
  
      case YYSYMBOL_cce_factor: /* cce_factor  */
! #line 981 "parse.y"
!          { const char *s = string_of(((*yyvaluep).float128));
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 15690 "parse.cc"
          break;
  
      case YYSYMBOL_stop_status: /* stop_status  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15696 "parse.cc"
          break;
  
      case YYSYMBOL_any_arg: /* any_arg  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15702 "parse.cc"
          break;
  
      case YYSYMBOL_signed_literal: /* signed_literal  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15712 "parse.cc"
          break;
  
      case YYSYMBOL_num_literal: /* num_literal  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15722 "parse.cc"
          break;
  
      case YYSYMBOL_open_io: /* open_io  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15728 "parse.cc"
          break;
  
      case YYSYMBOL_close_how: /* close_how  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15734 "parse.cc"
          break;
  
      case YYSYMBOL_perform_times: /* perform_times  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15740 "parse.cc"
          break;
  
      case YYSYMBOL_perform_cond: /* perform_cond  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15750 "parse.cc"
          break;
  
      case YYSYMBOL_perform_start: /* perform_start  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15756 "parse.cc"
          break;
  
      case YYSYMBOL_test_before: /* test_before  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15762 "parse.cc"
          break;
  
      case YYSYMBOL_vary_by: /* vary_by  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15768 "parse.cc"
          break;
  
      case YYSYMBOL_reserved_value: /* reserved_value  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15774 "parse.cc"
          break;
  
      case YYSYMBOL_spaces_etc: /* spaces_etc  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15780 "parse.cc"
          break;
  
      case YYSYMBOL_variable_type: /* variable_type  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15786 "parse.cc"
          break;
  
      case YYSYMBOL_varg: /* varg  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15792 "parse.cc"
          break;
  
      case YYSYMBOL_varg1: /* varg1  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15798 "parse.cc"
          break;
  
      case YYSYMBOL_varg1a: /* varg1a  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15804 "parse.cc"
          break;
  
      case YYSYMBOL_binary_type: /* binary_type  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15810 "parse.cc"
          break;
  
      case YYSYMBOL_literal: /* literal  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15820 "parse.cc"
          break;
  
      case YYSYMBOL_read_next: /* read_next  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15826 "parse.cc"
          break;
  
      case YYSYMBOL_read_into: /* read_into  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15832 "parse.cc"
          break;
  
      case YYSYMBOL_read_key: /* read_key  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15838 "parse.cc"
          break;
  
      case YYSYMBOL_write_what: /* write_what  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15848 "parse.cc"
          break;
  
      case YYSYMBOL_file_record: /* file_record  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15858 "parse.cc"
          break;
  
      case YYSYMBOL_advance_when: /* advance_when  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15864 "parse.cc"
          break;
  
      case YYSYMBOL_advancing: /* advancing  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15870 "parse.cc"
          break;
  
      case YYSYMBOL_advance_by: /* advance_by  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15876 "parse.cc"
          break;
  
      case YYSYMBOL_set_tgts: /* set_tgts  */
! #line 968 "parse.y"
!          { fprintf(yyo,"%s (1st of" HOST_SIZE_T_PRINT_UNSIGNED")",
                          ((*yyvaluep).targets)->targets.empty()? "" : ((*yyvaluep).targets)->targets.front().refer.field->name,
                          (fmt_size_t)((*yyvaluep).targets)->targets.size() ); }
! #line 15884 "parse.cc"
          break;
  
      case YYSYMBOL_set_operand: /* set_operand  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15890 "parse.cc"
          break;
  
      case YYSYMBOL_set_tgt: /* set_tgt  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15896 "parse.cc"
          break;
  
      case YYSYMBOL_one_switch: /* one_switch  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15906 "parse.cc"
          break;
  
      case YYSYMBOL_search_varying: /* search_varying  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15916 "parse.cc"
          break;
  
      case YYSYMBOL_search_terms: /* search_terms  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15926 "parse.cc"
          break;
  
      case YYSYMBOL_search_term: /* search_term  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15936 "parse.cc"
          break;
  
      case YYSYMBOL_search_expr: /* search_expr  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15942 "parse.cc"
          break;
  
      case YYSYMBOL_return_body: /* return_body  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15948 "parse.cc"
          break;
  
      case YYSYMBOL_return_file: /* return_file  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15954 "parse.cc"
          break;
  
      case YYSYMBOL_inspected: /* inspected  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15960 "parse.cc"
          break;
  
      case YYSYMBOL_numeref: /* numeref  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15966 "parse.cc"
          break;
  
      case YYSYMBOL_nume: /* nume  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 15976 "parse.cc"
          break;
  
      case YYSYMBOL_first_leading: /* first_leading  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15982 "parse.cc"
          break;
  
      case YYSYMBOL_alphaval: /* alphaval  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 15988 "parse.cc"
          break;
  
      case YYSYMBOL_befter: /* befter  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 15994 "parse.cc"
          break;
  
      case YYSYMBOL_init_by: /* init_by  */
! #line 993 "parse.y"
           { fprintf(yyo, "%s <- %s", data_category_str(((*yyvaluep).replacement).category),
                                      name_of(((*yyvaluep).replacement).replacement->field)); }
! #line 16001 "parse.cc"
          break;
  
      case YYSYMBOL_init_data: /* init_data  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16007 "parse.cc"
          break;
  
      case YYSYMBOL_call_body: /* call_body  */
! #line 990 "parse.y"
           { fprintf(yyo, "{%s, " HOST_SIZE_T_PRINT_UNSIGNED " parameters}",
                          name_of(((*yyvaluep).ffi_impl).ffi_name->field), !((*yyvaluep).ffi_impl).using_params? 0 :
                          (fmt_size_t)((*yyvaluep).ffi_impl).using_params->elems.size()); }
! #line 16015 "parse.cc"
          break;
  
      case YYSYMBOL_ffi_name: /* ffi_name  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16021 "parse.cc"
          break;
  
      case YYSYMBOL_scalar_arg: /* scalar_arg  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16027 "parse.cc"
          break;
  
      case YYSYMBOL_str_input: /* str_input  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16033 "parse.cc"
          break;
  
      case YYSYMBOL_str_size: /* str_size  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16039 "parse.cc"
          break;
  
      case YYSYMBOL_unstring_src: /* unstring_src  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16045 "parse.cc"
          break;
  
      case YYSYMBOL_uns_delimiter: /* uns_delimiter  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16051 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_call: /* intrinsic_call  */
! #line 951 "parse.y"
!          { fprintf(yyo, "%s %s", refer_type_str(((*yyvaluep).refer)), ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>"); }
! #line 16057 "parse.cc"
          break;
  
      case YYSYMBOL_function_udf: /* function_udf  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 16067 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic: /* intrinsic  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 16077 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_locale: /* intrinsic_locale  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 16087 "parse.cc"
          break;
  
      case YYSYMBOL_lopper_case: /* lopper_case  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16093 "parse.cc"
          break;
  
      case YYSYMBOL_trim_trailing: /* trim_trailing  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 16103 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic0: /* intrinsic0  */
! #line 953 "parse.y"
!          { fprintf(yyo, "%s %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.initial? ((*yyvaluep).field)->data.initial : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 16113 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_I: /* intrinsic_I  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16119 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_I2: /* intrinsic_I2  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16125 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_N: /* intrinsic_N  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16131 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_N2: /* intrinsic_N2  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16137 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_X: /* intrinsic_X  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16143 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_X2: /* intrinsic_X2  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16149 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_v: /* intrinsic_v  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16155 "parse.cc"
          break;
  
      case YYSYMBOL_first_last: /* first_last  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16161 "parse.cc"
          break;
  
      case YYSYMBOL_initial: /* initial  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16167 "parse.cc"
          break;
  
      case YYSYMBOL_globally: /* globally  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16173 "parse.cc"
          break;
  
      case YYSYMBOL_mistake: /* mistake  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16179 "parse.cc"
          break;
  
      case YYSYMBOL_star_cbl_opt: /* star_cbl_opt  */
! #line 979 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 16185 "parse.cc"
          break;
  
        default:
--- 17378,19523 ----
    switch (yykind)
      {
      case YYSYMBOL_ALNUM: /* ALNUM  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17384 "parse.cc"
          break;
  
      case YYSYMBOL_ALPHED: /* ALPHED  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17390 "parse.cc"
          break;
  
      case YYSYMBOL_ERROR: /* ERROR  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17396 "parse.cc"
          break;
  
      case YYSYMBOL_EXCEPTION: /* EXCEPTION  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17402 "parse.cc"
          break;
  
      case YYSYMBOL_SIZE_ERROR: /* "SIZE ERROR"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17408 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL: /* LEVEL  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17414 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL66: /* "66"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17420 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL78: /* "78"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17426 "parse.cc"
          break;
  
      case YYSYMBOL_LEVEL88: /* "88"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17432 "parse.cc"
          break;
  
      case YYSYMBOL_CLASS_NAME: /* "class name"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17438 "parse.cc"
          break;
  
      case YYSYMBOL_NAME: /* NAME  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17444 "parse.cc"
          break;
  
      case YYSYMBOL_NAME88: /* "Level 88 NAME"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17450 "parse.cc"
          break;
  
      case YYSYMBOL_NUME: /* "Name"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17456 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED: /* "NUMERIC-EDITED picture"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17462 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED_CR: /* "NUMERIC-EDITED CR picture"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17468 "parse.cc"
          break;
  
      case YYSYMBOL_NUMED_DB: /* "NUMERIC-EDITED DB picture"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17474 "parse.cc"
          break;
  
      case YYSYMBOL_NINEDOT: /* NINEDOT  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17480 "parse.cc"
          break;
  
      case YYSYMBOL_NINES: /* NINES  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17486 "parse.cc"
          break;
  
      case YYSYMBOL_NINEV: /* NINEV  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17492 "parse.cc"
          break;
  
      case YYSYMBOL_PIC_P: /* PIC_P  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17498 "parse.cc"
          break;
  
      case YYSYMBOL_ONES: /* ONES  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17504 "parse.cc"
          break;
  
      case YYSYMBOL_SPACES: /* SPACES  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17510 "parse.cc"
!         break;
! 
!     case YYSYMBOL_EQ: /* "EQUAL"  */
! #line 1051 "parse.y"
!          { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17516 "parse.cc"
          break;
  
      case YYSYMBOL_LITERAL: /* LITERAL  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 17524 "parse.cc"
          break;
  
      case YYSYMBOL_END: /* END  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17530 "parse.cc"
          break;
  
      case YYSYMBOL_EOP: /* EOP  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17536 "parse.cc"
          break;
  
      case YYSYMBOL_FILENAME: /* FILENAME  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17542 "parse.cc"
          break;
  
      case YYSYMBOL_INVALID: /* INVALID  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17548 "parse.cc"
          break;
  
      case YYSYMBOL_NUMBER: /* NUMBER  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17554 "parse.cc"
          break;
  
      case YYSYMBOL_NEGATIVE: /* NEGATIVE  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17560 "parse.cc"
          break;
  
      case YYSYMBOL_NUMSTR: /* "numeric literal"  */
! #line 1067 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).numstr).string ); }
! #line 17566 "parse.cc"
          break;
  
      case YYSYMBOL_OVERFLOW_kw: /* "OVERFLOW"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17572 "parse.cc"
          break;
  
      case YYSYMBOL_BINARY_INTEGER: /* BINARY_INTEGER  */
! #line 1070 "parse.y"
           { fprintf(yyo, "{%s %c%u}", cbl_field_type_str(((*yyvaluep).computational).type),
                                       ((*yyvaluep).computational).signable? '+' : ' ',
                                       ((*yyvaluep).computational).capacity ); }
! #line 17580 "parse.cc"
          break;
  
      case YYSYMBOL_COMPUTATIONAL: /* COMPUTATIONAL  */
! #line 1070 "parse.y"
           { fprintf(yyo, "{%s %c%u}", cbl_field_type_str(((*yyvaluep).computational).type),
                                       ((*yyvaluep).computational).signable? '+' : ' ',
                                       ((*yyvaluep).computational).capacity ); }
! #line 17588 "parse.cc"
          break;
  
      case YYSYMBOL_POSITIVE: /* POSITIVE  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17594 "parse.cc"
          break;
  
      case YYSYMBOL_SECTION: /* SECTION  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17600 "parse.cc"
          break;
  
      case YYSYMBOL_STANDARD_ALPHABET: /* "STANDARD ALPHABET"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17606 "parse.cc"
          break;
  
      case YYSYMBOL_SWITCH: /* SWITCH  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17612 "parse.cc"
          break;
  
      case YYSYMBOL_UPSI: /* UPSI  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17618 "parse.cc"
          break;
  
      case YYSYMBOL_ZERO: /* ZERO  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17624 "parse.cc"
          break;
  
      case YYSYMBOL_SYSIN: /* SYSIN  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17630 "parse.cc"
          break;
  
      case YYSYMBOL_SYSIPT: /* SYSIPT  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17636 "parse.cc"
          break;
  
      case YYSYMBOL_SYSOUT: /* SYSOUT  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17642 "parse.cc"
          break;
  
      case YYSYMBOL_SYSLIST: /* SYSLIST  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17648 "parse.cc"
          break;
  
      case YYSYMBOL_SYSLST: /* SYSLST  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17654 "parse.cc"
          break;
  
      case YYSYMBOL_SYSPUNCH: /* SYSPUNCH  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17660 "parse.cc"
          break;
  
      case YYSYMBOL_SYSPCH: /* SYSPCH  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17666 "parse.cc"
          break;
  
      case YYSYMBOL_CONSOLE: /* CONSOLE  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17672 "parse.cc"
          break;
  
      case YYSYMBOL_C01: /* C01  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17678 "parse.cc"
          break;
  
      case YYSYMBOL_C02: /* C02  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17684 "parse.cc"
          break;
  
      case YYSYMBOL_C03: /* C03  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17690 "parse.cc"
          break;
  
      case YYSYMBOL_C04: /* C04  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17696 "parse.cc"
          break;
  
      case YYSYMBOL_C05: /* C05  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17702 "parse.cc"
          break;
  
      case YYSYMBOL_C06: /* C06  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17708 "parse.cc"
          break;
  
      case YYSYMBOL_C07: /* C07  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17714 "parse.cc"
          break;
  
      case YYSYMBOL_C08: /* C08  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17720 "parse.cc"
          break;
  
      case YYSYMBOL_C09: /* C09  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17726 "parse.cc"
          break;
  
      case YYSYMBOL_C10: /* C10  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17732 "parse.cc"
          break;
  
      case YYSYMBOL_C11: /* C11  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17738 "parse.cc"
          break;
  
      case YYSYMBOL_C12: /* C12  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17744 "parse.cc"
          break;
  
      case YYSYMBOL_CSP: /* CSP  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17750 "parse.cc"
          break;
  
      case YYSYMBOL_S01: /* S01  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17756 "parse.cc"
          break;
  
      case YYSYMBOL_S02: /* S02  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17762 "parse.cc"
          break;
  
      case YYSYMBOL_S03: /* S03  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17768 "parse.cc"
          break;
  
      case YYSYMBOL_S04: /* S04  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17774 "parse.cc"
          break;
  
      case YYSYMBOL_S05: /* S05  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17780 "parse.cc"
          break;
  
      case YYSYMBOL_AFP_5A: /* "AFP 5A"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17786 "parse.cc"
          break;
  
      case YYSYMBOL_STDIN: /* STDIN  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17792 "parse.cc"
          break;
  
      case YYSYMBOL_STDOUT: /* STDOUT  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17798 "parse.cc"
          break;
  
      case YYSYMBOL_STDERR: /* STDERR  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17804 "parse.cc"
          break;
  
      case YYSYMBOL_LIST: /* LIST  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17810 "parse.cc"
          break;
  
      case YYSYMBOL_MAP: /* MAP  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17816 "parse.cc"
          break;
  
      case YYSYMBOL_NOLIST: /* NOLIST  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17822 "parse.cc"
          break;
  
      case YYSYMBOL_NOMAP: /* NOMAP  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17828 "parse.cc"
          break;
  
      case YYSYMBOL_NOSOURCE: /* NOSOURCE  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17834 "parse.cc"
          break;
  
      case YYSYMBOL_MIGHT_BE: /* "IS or IS NOT"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17840 "parse.cc"
          break;
  
      case YYSYMBOL_FUNCTION_UDF: /* "UDF name"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17846 "parse.cc"
          break;
  
      case YYSYMBOL_FUNCTION_UDF_0: /* "UDF"  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17852 "parse.cc"
!         break;
! 
!     case YYSYMBOL_DEFAULT: /* DEFAULT  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17858 "parse.cc"
          break;
  
      case YYSYMBOL_DATE_FMT: /* "date format"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17864 "parse.cc"
          break;
  
      case YYSYMBOL_TIME_FMT: /* "time format"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17870 "parse.cc"
          break;
  
      case YYSYMBOL_DATETIME_FMT: /* "datetime format"  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17876 "parse.cc"
          break;
  
      case YYSYMBOL_program_as: /* program_as  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 17884 "parse.cc"
          break;
  
      case YYSYMBOL_opt_init_value: /* opt_init_value  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17890 "parse.cc"
          break;
  
      case YYSYMBOL_namestr: /* namestr  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 17898 "parse.cc"
          break;
  
      case YYSYMBOL_selected_name: /* selected_name  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 17911 "parse.cc"
          break;
  
      case YYSYMBOL_access_mode: /* access_mode  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17917 "parse.cc"
          break;
  
      case YYSYMBOL_lock_how: /* lock_how  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17923 "parse.cc"
          break;
  
      case YYSYMBOL_lock_mode: /* lock_mode  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17929 "parse.cc"
          break;
  
      case YYSYMBOL_multiple: /* multiple  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17935 "parse.cc"
          break;
  
      case YYSYMBOL_org_is: /* org_is  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17941 "parse.cc"
          break;
  
      case YYSYMBOL_org_clause1: /* org_clause1  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17947 "parse.cc"
          break;
  
      case YYSYMBOL_repo_as: /* repo_as  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 17955 "parse.cc"
          break;
  
      case YYSYMBOL_locale_spec: /* locale_spec  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17961 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_seq: /* alphabet_seq  */
! #line 1073 "parse.y"
           { fprintf(yyo, "{'%s'-'%s'%s}",
                          ((*yyvaluep).colseq).low?  (const char*) ((*yyvaluep).colseq).low : "",
                          ((*yyvaluep).colseq).high? (const char*) ((*yyvaluep).colseq).high : "",
                          ((*yyvaluep).colseq).also? "+" : "" ); }
! #line 17970 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_etc: /* alphabet_etc  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 17976 "parse.cc"
          break;
  
      case YYSYMBOL_alphabet_lit: /* alphabet_lit  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 17984 "parse.cc"
          break;
  
      case YYSYMBOL_picture_sym: /* picture_sym  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17990 "parse.cc"
          break;
  
      case YYSYMBOL_fd_name: /* fd_name  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 17996 "parse.cc"
!         break;
! 
!     case YYSYMBOL_alphanational: /* alphanational  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18002 "parse.cc"
          break;
  
      case YYSYMBOL_rec_contains: /* rec_contains  */
! #line 1061 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 18009 "parse.cc"
          break;
  
      case YYSYMBOL_alpha_val: /* alpha_val  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18022 "parse.cc"
          break;
  
      case YYSYMBOL_record_desc: /* record_desc  */
! #line 1061 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 18029 "parse.cc"
          break;
  
      case YYSYMBOL_record_vary: /* record_vary  */
! #line 1061 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 18036 "parse.cc"
          break;
  
      case YYSYMBOL_from_to: /* from_to  */
! #line 1061 "parse.y"
           { fprintf(yyo, "{" HOST_SIZE_T_PRINT_UNSIGNED "-" HOST_SIZE_T_PRINT_UNSIGNED "}",
                          (fmt_size_t)((*yyvaluep).min_max).min, (fmt_size_t)((*yyvaluep).min_max).max ); }
! #line 18043 "parse.cc"
          break;
  
      case YYSYMBOL_cardinal: /* cardinal  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18049 "parse.cc"
          break;
  
      case YYSYMBOL_bound: /* bound  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18055 "parse.cc"
          break;
  
      case YYSYMBOL_level_name: /* level_name  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18068 "parse.cc"
          break;
  
      case YYSYMBOL_data_descr: /* data_descr  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18081 "parse.cc"
          break;
  
      case YYSYMBOL_const_value: /* const_value  */
! #line 1068 "parse.y"
!          { const char *s = string_of(((*yyvaluep).cce_type).r);
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 18088 "parse.cc"
          break;
  
      case YYSYMBOL_data_descr1: /* data_descr1  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18101 "parse.cc"
          break;
  
      case YYSYMBOL_literalism: /* literalism  */
! #line 1052 "parse.y"
           { fprintf(yyo, "%s'%.*s'{" HOST_SIZE_T_PRINT_UNSIGNED "} %s",
                          ((*yyvaluep).literal).prefix, int(((*yyvaluep).literal).len), ((*yyvaluep).literal).data, (fmt_size_t)((*yyvaluep).literal).len,
                          ((*yyvaluep).literal).symbol_name()); }
! #line 18109 "parse.cc"
          break;
  
      case YYSYMBOL_name66: /* name66  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 18115 "parse.cc"
          break;
  
      case YYSYMBOL_data_clauses: /* data_clauses  */
! #line 1026 "parse.y"
           { fprintf(yyo, "clauses: 0x%04x", ((*yyvaluep).number)); }
! #line 18121 "parse.cc"
          break;
  
      case YYSYMBOL_data_clause: /* data_clause  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18127 "parse.cc"
          break;
  
      case YYSYMBOL_alphanum_pic: /* alphanum_pic  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18133 "parse.cc"
          break;
  
      case YYSYMBOL_signed: /* signed  */
! #line 1063 "parse.y"
           { fprintf(yyo, "{%s}", ((*yyvaluep).number)? "+/-" : "" ); }
! #line 18139 "parse.cc"
          break;
  
      case YYSYMBOL_nps: /* nps  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18145 "parse.cc"
          break;
  
      case YYSYMBOL_nine: /* nine  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18151 "parse.cc"
          break;
  
      case YYSYMBOL_nines: /* nines  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18157 "parse.cc"
          break;
  
      case YYSYMBOL_count: /* count  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18163 "parse.cc"
          break;
  
      case YYSYMBOL_numed: /* numed  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 18169 "parse.cc"
          break;
  
      case YYSYMBOL_usage_clause1: /* usage_clause1  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18175 "parse.cc"
          break;
  
      case YYSYMBOL_by_value_arg: /* by_value_arg  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18188 "parse.cc"
          break;
  
      case YYSYMBOL_paragraph_name: /* paragraph_name  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 18194 "parse.cc"
          break;
  
      case YYSYMBOL_sentence: /* sentence  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18200 "parse.cc"
          break;
  
      case YYSYMBOL_statements: /* statements  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18206 "parse.cc"
          break;
  
      case YYSYMBOL_statement: /* statement  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18212 "parse.cc"
          break;
  
      case YYSYMBOL_accept_refer: /* accept_refer  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18225 "parse.cc"
          break;
  
      case YYSYMBOL_envar: /* envar  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18238 "parse.cc"
          break;
  
      case YYSYMBOL_might_be: /* might_be  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18244 "parse.cc"
          break;
  
      case YYSYMBOL_posneg: /* posneg  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18250 "parse.cc"
          break;
  
      case YYSYMBOL_name88: /* name88  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18263 "parse.cc"
          break;
  
      case YYSYMBOL_scalar88: /* scalar88  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18276 "parse.cc"
          break;
  
      case YYSYMBOL_alloc_ret: /* alloc_ret  */
! #line 1025 "parse.y"
           { fprintf(yyo, "%s", ((*yyvaluep).refer)->field? name_of(((*yyvaluep).refer)->field) : "[omitted]"); }
! #line 18282 "parse.cc"
          break;
  
      case YYSYMBOL_compute_expr: /* compute_expr  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18295 "parse.cc"
          break;
  
      case YYSYMBOL_exit_with: /* exit_with  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18308 "parse.cc"
          break;
  
      case YYSYMBOL_free_tgt: /* free_tgt  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18321 "parse.cc"
          break;
  
      case YYSYMBOL_simple_cond: /* simple_cond  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18334 "parse.cc"
          break;
  
      case YYSYMBOL_kind_of_name: /* kind_of_name  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18347 "parse.cc"
!         break;
! 
!     case YYSYMBOL_until_expr: /* until_expr  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18360 "parse.cc"
          break;
  
      case YYSYMBOL_bool_expr: /* bool_expr  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18373 "parse.cc"
          break;
  
      case YYSYMBOL_log_term: /* log_term  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18386 "parse.cc"
          break;
  
      case YYSYMBOL_rel_expr: /* rel_expr  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18399 "parse.cc"
          break;
  
      case YYSYMBOL_rel_abbr: /* rel_abbr  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18412 "parse.cc"
          break;
  
      case YYSYMBOL_rel_term: /* rel_term  */
! #line 1046 "parse.y"
           { fprintf(yyo, "%c %s",
                          ((*yyvaluep).rel_term_t).invert? '!' : ' ',
  		        ((*yyvaluep).rel_term_t).term? name_of(((*yyvaluep).rel_term_t).term->field) : "<none>"); }
! #line 18420 "parse.cc"
          break;
  
      case YYSYMBOL_rel_term1: /* rel_term1  */
! #line 1046 "parse.y"
           { fprintf(yyo, "%c %s",
                          ((*yyvaluep).rel_term_t).invert? '!' : ' ',
  		        ((*yyvaluep).rel_term_t).term? name_of(((*yyvaluep).rel_term_t).term->field) : "<none>"); }
! #line 18428 "parse.cc"
          break;
  
      case YYSYMBOL_expr: /* expr  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18441 "parse.cc"
          break;
  
      case YYSYMBOL_expr_term: /* expr_term  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18454 "parse.cc"
          break;
  
      case YYSYMBOL_num_term: /* num_term  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18467 "parse.cc"
          break;
  
      case YYSYMBOL_value: /* value  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18480 "parse.cc"
          break;
  
      case YYSYMBOL_factor: /* factor  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18493 "parse.cc"
          break;
  
      case YYSYMBOL_eval_subject1: /* eval_subject1  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18506 "parse.cc"
          break;
  
      case YYSYMBOL_eval_posneg: /* eval_posneg  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18512 "parse.cc"
          break;
  
      case YYSYMBOL_eval_abbr: /* eval_abbr  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18525 "parse.cc"
          break;
  
      case YYSYMBOL_true_false: /* true_false  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18531 "parse.cc"
          break;
  
      case YYSYMBOL_scalar: /* scalar  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18544 "parse.cc"
          break;
  
      case YYSYMBOL_tableref: /* tableref  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18557 "parse.cc"
          break;
  
      case YYSYMBOL_tableish: /* tableish  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18570 "parse.cc"
          break;
  
      case YYSYMBOL_typename: /* typename  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18583 "parse.cc"
          break;
  
      case YYSYMBOL_name: /* name  */
! #line 1058 "parse.y"
           { fprintf(yyo, "#" HOST_SIZE_T_PRINT_UNSIGNED ": %s",
                          is_temporary(((*yyvaluep).field))? 0 : (fmt_size_t)field_index(((*yyvaluep).field)),
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "<nil>" ); }
! #line 18591 "parse.cc"
          break;
  
      case YYSYMBOL_qname: /* qname  */
! #line 1064 "parse.y"
           { fprintf(yyo, "{%s of " HOST_SIZE_T_PRINT_UNSIGNED "}",
  		         teed_up_names().front(), (fmt_size_t) teed_up_names().size() ); }
! #line 18598 "parse.cc"
          break;
  
      case YYSYMBOL_ctx_name: /* ctx_name  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 18604 "parse.cc"
          break;
  
      case YYSYMBOL_context_word: /* context_word  */
! #line 1051 "parse.y"
           { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 18610 "parse.cc"
          break;
  
      case YYSYMBOL_move_tgts: /* move_tgts  */
! #line 1055 "parse.y"
!          { fprintf(yyo,"%s (1st of " HOST_SIZE_T_PRINT_UNSIGNED")",
                          ((*yyvaluep).targets)->targets.empty()? "" : ((*yyvaluep).targets)->targets.front().refer.field->name,
                          (fmt_size_t)((*yyvaluep).targets)->targets.size() ); }
! #line 18618 "parse.cc"
          break;
  
      case YYSYMBOL_move_tgt: /* move_tgt  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18631 "parse.cc"
          break;
  
      case YYSYMBOL_relop: /* relop  */
! #line 1050 "parse.y"
           { fprintf(yyo, "%s (token %d)", keyword_str(((*yyvaluep).number)), ((*yyvaluep).number) ); }
! #line 18637 "parse.cc"
          break;
  
      case YYSYMBOL_num_operand: /* num_operand  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18650 "parse.cc"
          break;
  
      case YYSYMBOL_num_value: /* num_value  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18663 "parse.cc"
          break;
  
      case YYSYMBOL_cce_expr: /* cce_expr  */
! #line 1068 "parse.y"
!          { const char *s = string_of(((*yyvaluep).cce_type).r);
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 18670 "parse.cc"
          break;
  
      case YYSYMBOL_cce_factor: /* cce_factor  */
! #line 1068 "parse.y"
!          { const char *s = string_of(((*yyvaluep).cce_type).r);
             fprintf(yyo, "{%s}", s? s : "??" ); }
! #line 18677 "parse.cc"
          break;
  
      case YYSYMBOL_stop_status: /* stop_status  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18690 "parse.cc"
          break;
  
      case YYSYMBOL_any_arg: /* any_arg  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18703 "parse.cc"
          break;
  
      case YYSYMBOL_signed_literal: /* signed_literal  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18716 "parse.cc"
!         break;
! 
!     case YYSYMBOL_num_constant: /* num_constant  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
!                         ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18729 "parse.cc"
          break;
  
      case YYSYMBOL_num_literal: /* num_literal  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18742 "parse.cc"
          break;
  
      case YYSYMBOL_open_io: /* open_io  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18748 "parse.cc"
          break;
  
      case YYSYMBOL_close_how: /* close_how  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18754 "parse.cc"
          break;
  
      case YYSYMBOL_perform_times: /* perform_times  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18767 "parse.cc"
          break;
  
      case YYSYMBOL_perform_cond: /* perform_cond  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18780 "parse.cc"
          break;
  
      case YYSYMBOL_perform_start: /* perform_start  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18786 "parse.cc"
          break;
  
      case YYSYMBOL_test_before: /* test_before  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18792 "parse.cc"
          break;
  
      case YYSYMBOL_vary_by: /* vary_by  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18805 "parse.cc"
          break;
  
      case YYSYMBOL_reserved_value: /* reserved_value  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18811 "parse.cc"
          break;
  
      case YYSYMBOL_spaces_etc: /* spaces_etc  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18817 "parse.cc"
          break;
  
      case YYSYMBOL_variable_type: /* variable_type  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18823 "parse.cc"
          break;
  
      case YYSYMBOL_varg: /* varg  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18836 "parse.cc"
          break;
  
      case YYSYMBOL_varg1: /* varg1  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18849 "parse.cc"
          break;
  
      case YYSYMBOL_varg1a: /* varg1a  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18862 "parse.cc"
          break;
  
      case YYSYMBOL_binary_type: /* binary_type  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18868 "parse.cc"
          break;
  
      case YYSYMBOL_literal: /* literal  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18881 "parse.cc"
          break;
  
      case YYSYMBOL_read_next: /* read_next  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18887 "parse.cc"
          break;
  
      case YYSYMBOL_read_into: /* read_into  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18900 "parse.cc"
          break;
  
      case YYSYMBOL_read_key: /* read_key  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18913 "parse.cc"
          break;
  
      case YYSYMBOL_write_what: /* write_what  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18926 "parse.cc"
          break;
  
      case YYSYMBOL_file_record: /* file_record  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 18939 "parse.cc"
          break;
  
      case YYSYMBOL_advance_when: /* advance_when  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 18945 "parse.cc"
          break;
  
      case YYSYMBOL_advancing: /* advancing  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18958 "parse.cc"
          break;
  
      case YYSYMBOL_advance_by: /* advance_by  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18971 "parse.cc"
          break;
  
      case YYSYMBOL_set_tgts: /* set_tgts  */
! #line 1055 "parse.y"
!          { fprintf(yyo,"%s (1st of " HOST_SIZE_T_PRINT_UNSIGNED")",
                          ((*yyvaluep).targets)->targets.empty()? "" : ((*yyvaluep).targets)->targets.front().refer.field->name,
                          (fmt_size_t)((*yyvaluep).targets)->targets.size() ); }
! #line 18979 "parse.cc"
          break;
  
      case YYSYMBOL_set_operand: /* set_operand  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 18992 "parse.cc"
          break;
  
      case YYSYMBOL_set_tgt: /* set_tgt  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19005 "parse.cc"
!         break;
! 
!     case YYSYMBOL_loc_category: /* loc_category  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19011 "parse.cc"
!         break;
! 
!     case YYSYMBOL_locale_current: /* locale_current  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19017 "parse.cc"
          break;
  
      case YYSYMBOL_one_switch: /* one_switch  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19030 "parse.cc"
          break;
  
      case YYSYMBOL_search_varying: /* search_varying  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19043 "parse.cc"
          break;
  
      case YYSYMBOL_search_terms: /* search_terms  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19056 "parse.cc"
          break;
  
      case YYSYMBOL_search_term: /* search_term  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19069 "parse.cc"
          break;
  
      case YYSYMBOL_search_expr: /* search_expr  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19082 "parse.cc"
          break;
  
      case YYSYMBOL_return_body: /* return_body  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19088 "parse.cc"
          break;
  
      case YYSYMBOL_return_file: /* return_file  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19094 "parse.cc"
          break;
  
      case YYSYMBOL_inspected: /* inspected  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19107 "parse.cc"
          break;
  
      case YYSYMBOL_numeref: /* numeref  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19120 "parse.cc"
          break;
  
      case YYSYMBOL_nume: /* nume  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19133 "parse.cc"
          break;
  
      case YYSYMBOL_first_leading: /* first_leading  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19139 "parse.cc"
          break;
  
      case YYSYMBOL_alphaval: /* alphaval  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19152 "parse.cc"
          break;
  
      case YYSYMBOL_befter: /* befter  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19158 "parse.cc"
          break;
  
      case YYSYMBOL_init_by: /* init_by  */
! #line 1080 "parse.y"
           { fprintf(yyo, "%s <- %s", data_category_str(((*yyvaluep).replacement).category),
                                      name_of(((*yyvaluep).replacement).replacement->field)); }
! #line 19165 "parse.cc"
          break;
  
      case YYSYMBOL_init_data: /* init_data  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19178 "parse.cc"
          break;
  
      case YYSYMBOL_call_body: /* call_body  */
! #line 1077 "parse.y"
           { fprintf(yyo, "{%s, " HOST_SIZE_T_PRINT_UNSIGNED " parameters}",
                          name_of(((*yyvaluep).ffi_impl).ffi_name->field), !((*yyvaluep).ffi_impl).using_params? 0 :
                          (fmt_size_t)((*yyvaluep).ffi_impl).using_params->elems.size()); }
! #line 19186 "parse.cc"
          break;
  
      case YYSYMBOL_ffi_name: /* ffi_name  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19199 "parse.cc"
          break;
  
      case YYSYMBOL_scalar_arg: /* scalar_arg  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19212 "parse.cc"
          break;
  
      case YYSYMBOL_str_input: /* str_input  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19225 "parse.cc"
          break;
  
      case YYSYMBOL_str_size: /* str_size  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19238 "parse.cc"
          break;
  
      case YYSYMBOL_unstring_src: /* unstring_src  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19251 "parse.cc"
          break;
  
      case YYSYMBOL_uns_delimiter: /* uns_delimiter  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19264 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_call: /* intrinsic_call  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19277 "parse.cc"
          break;
  
      case YYSYMBOL_function_udf: /* function_udf  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19290 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic: /* intrinsic  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19303 "parse.cc"
!         break;
! 
!     case YYSYMBOL_convert_alpha: /* convert_alpha  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19309 "parse.cc"
!         break;
! 
!     case YYSYMBOL_convert_nat: /* convert_nat  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19315 "parse.cc"
!         break;
! 
!     case YYSYMBOL_convert_hex: /* convert_hex  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19321 "parse.cc"
!         break;
! 
!     case YYSYMBOL_locale_name: /* locale_name  */
! #line 1051 "parse.y"
!          { fprintf(yyo, "'%s'", ((*yyvaluep).string)? ((*yyvaluep).string) : "" ); }
! #line 19327 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_locale: /* intrinsic_locale  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19340 "parse.cc"
          break;
  
      case YYSYMBOL_lopper_case: /* lopper_case  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19346 "parse.cc"
          break;
  
      case YYSYMBOL_trim_trailing: /* trim_trailing  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19359 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic0: /* intrinsic0  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
                          ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
+                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
                          ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
                          ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19372 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_I: /* intrinsic_I  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19378 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_I2: /* intrinsic_I2  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19384 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_N: /* intrinsic_N  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19390 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_N2: /* intrinsic_N2  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19396 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_X: /* intrinsic_X  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19402 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_X2: /* intrinsic_X2  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19408 "parse.cc"
          break;
  
      case YYSYMBOL_intrinsic_v: /* intrinsic_v  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19414 "parse.cc"
          break;
  
      case YYSYMBOL_first_last: /* first_last  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19420 "parse.cc"
          break;
  
      case YYSYMBOL_initial: /* initial  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19426 "parse.cc"
!         break;
! 
!     case YYSYMBOL_start_after: /* start_after  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19439 "parse.cc"
!         break;
! 
!     case YYSYMBOL_start_pos: /* start_pos  */
! #line 1028 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         refer_type_str(((*yyvaluep).refer)),
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->char_capacity() : 0,
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.capacity() : 0, 
!                         ((*yyvaluep).refer)? ((*yyvaluep).refer)->name() : "<none>",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->data.original()?
!                                          ((*yyvaluep).refer)->field->data.original() : "<nil>" : "",
!                         ((*yyvaluep).refer) && ((*yyvaluep).refer)->field? ((*yyvaluep).refer)->field->value_str() : "" ); }
! #line 19452 "parse.cc"
!         break;
! 
!     case YYSYMBOL_user_default: /* user_default  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19458 "parse.cc"
          break;
  
      case YYSYMBOL_globally: /* globally  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19464 "parse.cc"
          break;
  
      case YYSYMBOL_mistake: /* mistake  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19470 "parse.cc"
          break;
  
      case YYSYMBOL_star_cbl_opt: /* star_cbl_opt  */
! #line 1066 "parse.y"
           { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19476 "parse.cc"
!         break;
! 
!     case YYSYMBOL_xmlgen_count: /* xmlgen_count  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
!                         ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19489 "parse.cc"
!         break;
! 
!     case YYSYMBOL_xmlencoding: /* xmlencoding  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
!                         ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19502 "parse.cc"
!         break;
! 
!     case YYSYMBOL_xmlreturning: /* xmlreturning  */
! #line 1066 "parse.y"
!          { fprintf(yyo, "{%d}", ((*yyvaluep).number) ); }
! #line 19508 "parse.cc"
!         break;
! 
!     case YYSYMBOL_xmlvalidating: /* xmlvalidating  */
! #line 1037 "parse.y"
!          { fprintf(yyo, "%s{%u/%u} %s '%s' (%s)",
!                         ((*yyvaluep).field)? cbl_field_type_str(((*yyvaluep).field)->type) : "<%empty>",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->char_capacity() : 0,
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.capacity() : 0, 
!                         ((*yyvaluep).field)? name_of(((*yyvaluep).field)) : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->data.original()?
!                             ((*yyvaluep).field)->data.original() : "<nil>" : "",
!                         ((*yyvaluep).field)? ((*yyvaluep).field)->value_str() : "" ); }
! #line 19521 "parse.cc"
          break;
  
        default:
*************** yyreduce:
*** 16869,16945 ****
    switch (yyn)
      {
    case 2: /* top: programs  */
! #line 1438 "parse.y"
                  {
                    if( ! goodnight_gracie() ) {
                      YYABORT;
                    }
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 16880 "parse.cc"
      break;
  
    case 3: /* top: programs end_program  */
! #line 1445 "parse.y"
                  {
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 16888 "parse.cc"
      break;
  
    case 6: /* $@1: %empty  */
! #line 1453 "parse.y"
                  {
                    if( ! data_division_ready() ) {
  		    mode_syntax_only(procedure_div_e);
  		  }
                    current_division = procedure_div_e;
                  }
! #line 16899 "parse.cc"
      break;
  
    case 7: /* program: id_div options_para env_div data_div $@1 procedure_div  */
! #line 1460 "parse.y"
                  {
                    if( yydebug ) labels_dump();
                  }
! #line 16907 "parse.cc"
      break;
  
    case 15: /* cobol_words1: ">>COBOL-WORDS" EQUATE NAME WITH NAME  */
! #line 1477 "parse.y"
                                                                   {
  		  if( ! cdf_tokens.equate((yylsp[-2]), (yyvsp[-2].string), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 16915 "parse.cc"
      break;
  
    case 16: /* cobol_words1: ">>COBOL-WORDS" UNDEFINE NAME  */
! #line 1480 "parse.y"
                                                     {
  		  if( ! cdf_tokens.undefine((yylsp[0]), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 16923 "parse.cc"
      break;
  
    case 17: /* cobol_words1: ">>COBOL-WORDS" SUBSTITUTE NAME BY NAME  */
! #line 1483 "parse.y"
                                                                     {
  		  if( ! cdf_tokens.substitute((yylsp[-2]), (yyvsp[-2].string), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 16931 "parse.cc"
      break;
  
    case 18: /* cobol_words1: ">>COBOL-WORDS" RESERVE NAME  */
! #line 1486 "parse.y"
                                                 {
  		  if( ! cdf_tokens.reserve((yylsp[0]), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 16939 "parse.cc"
      break;
  
    case 19: /* program_id: "PROGRAM-ID" dot namestr program_as program_attrs dot  */
! #line 1492 "parse.y"
                  {
                    internal_ebcdic_lock();
                    current_division = identification_div_e;
--- 20205,20281 ----
    switch (yyn)
      {
    case 2: /* top: programs  */
! #line 1532 "parse.y"
                  {
                    if( ! goodnight_gracie() ) {
                      YYABORT;
                    }
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 20216 "parse.cc"
      break;
  
    case 3: /* top: programs end_program  */
! #line 1539 "parse.y"
                  {
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 20224 "parse.cc"
      break;
  
    case 6: /* $@1: %empty  */
! #line 1547 "parse.y"
                  {
                    if( ! data_division_ready() ) {
  		    mode_syntax_only(procedure_div_e);
  		  }
                    current_division = procedure_div_e;
                  }
! #line 20235 "parse.cc"
      break;
  
    case 7: /* program: id_div options_para env_div data_div $@1 procedure_div  */
! #line 1554 "parse.y"
                  {
                    if( yydebug ) labels_dump();
                  }
! #line 20243 "parse.cc"
      break;
  
    case 15: /* cobol_words1: ">>COBOL-WORDS" EQUATE NAME WITH NAME  */
! #line 1571 "parse.y"
                                                                   {
  		  if( ! cdf_tokens.equate((yylsp[-2]), (yyvsp[-2].string), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 20251 "parse.cc"
      break;
  
    case 16: /* cobol_words1: ">>COBOL-WORDS" UNDEFINE NAME  */
! #line 1574 "parse.y"
                                                     {
  		  if( ! cdf_tokens.undefine((yylsp[0]), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 20259 "parse.cc"
      break;
  
    case 17: /* cobol_words1: ">>COBOL-WORDS" SUBSTITUTE NAME BY NAME  */
! #line 1577 "parse.y"
                                                                     {
  		  if( ! cdf_tokens.substitute((yylsp[-2]), (yyvsp[-2].string), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 20267 "parse.cc"
      break;
  
    case 18: /* cobol_words1: ">>COBOL-WORDS" RESERVE NAME  */
! #line 1580 "parse.y"
                                                 {
  		  if( ! cdf_tokens.reserve((yylsp[0]), (yyvsp[0].string)) ) { YYERROR; }
  		}
! #line 20275 "parse.cc"
      break;
  
    case 19: /* program_id: "PROGRAM-ID" dot namestr program_as program_attrs dot  */
! #line 1586 "parse.y"
                  {
                    internal_ebcdic_lock();
                    current_division = identification_div_e;
*************** yyreduce:
*** 16958,16964 ****
                    }
                    if( !current.new_program((yylsp[-3]), LblProgram, name,
  		                           (yyvsp[-2].literal).data,
!                                            (yyvsp[-1].comminit).common, (yyvsp[-1].comminit).initial) ) {
                      auto L = symbol_program(current_program_index(), name);
                      assert(L);
                      error_msg((yylsp[-3]), "PROGRAM-ID %s already defined on line %d",
--- 20294,20302 ----
                    }
                    if( !current.new_program((yylsp[-3]), LblProgram, name,
  		                           (yyvsp[-2].literal).data,
!                                            (yyvsp[-1].comminit).common,
!                                            (yyvsp[-1].comminit).initial,
!                                            (yyvsp[-1].comminit).recursive) ) {
                      auto L = symbol_program(current_program_index(), name);
                      assert(L);
                      error_msg((yylsp[-3]), "PROGRAM-ID %s already defined on line %d",
*************** yyreduce:
*** 16967,16989 ****
                    }
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 16971 "parse.cc"
      break;
  
    case 22: /* program_as: %empty  */
! #line 1523 "parse.y"
                             { static const literal_t empty {}; (yyval.literal) = empty; }
! #line 16977 "parse.cc"
      break;
  
    case 23: /* program_as: AS LITERAL  */
! #line 1524 "parse.y"
                             { (yyval.literal) = (yyvsp[0].literal); }
! #line 16983 "parse.cc"
      break;
  
    case 24: /* function_id: FUNCTION NAME program_as program_attrs '.'  */
! #line 1528 "parse.y"
                  {
                    internal_ebcdic_lock();
                    current_division = identification_div_e;
--- 20305,20327 ----
                    }
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 20309 "parse.cc"
      break;
  
    case 22: /* program_as: %empty  */
! #line 1619 "parse.y"
                             { static const literal_t empty {}; (yyval.literal) = empty; }
! #line 20315 "parse.cc"
      break;
  
    case 23: /* program_as: AS LITERAL  */
! #line 1620 "parse.y"
                             { (yyval.literal) = (yyvsp[0].literal); }
! #line 20321 "parse.cc"
      break;
  
    case 24: /* function_id: FUNCTION NAME program_as program_attrs '.'  */
! #line 1624 "parse.y"
                  {
                    internal_ebcdic_lock();
                    current_division = identification_div_e;
*************** yyreduce:
*** 17001,17010 ****
                      symbol_table_init();
                    }
                    if( !current.new_program((yylsp[-3]), LblFunction, (yyvsp[-3].string),
! 		                      (yyvsp[-2].literal).data,
!                                       (yyvsp[-1].comminit).common, (yyvsp[-1].comminit).initial) ) {
!                     auto L = symbol_program(current_program_index(), (yyvsp[-3].string));
!                     assert(L);
                      error_msg((yylsp[-3]), "FUNCTION %s already defined on line %d",
                                (yyvsp[-3].string), L->line);
                      YYERROR;
--- 20339,20350 ----
                      symbol_table_init();
                    }
                    if( !current.new_program((yylsp[-3]), LblFunction, (yyvsp[-3].string),
!                                            (yyvsp[-2].literal).data,
!                                            (yyvsp[-1].comminit).common,
!                                            (yyvsp[-1].comminit).initial,
!                                            (yyvsp[-1].comminit).recursive) ) {
!                     auto e = symbol_function(current_program_index(), (yyvsp[-3].string));
!                     auto L = cbl_label_of(e);
                      error_msg((yylsp[-3]), "FUNCTION %s already defined on line %d",
                                (yyvsp[-3].string), L->line);
                      YYERROR;
*************** yyreduce:
*** 17017,17167 ****
                    current.udf_add(current_program_index());
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 17021 "parse.cc"
      break;
  
    case 25: /* function_id: FUNCTION NAME program_as is PROTOTYPE '.'  */
! #line 1562 "parse.y"
                  {
                    cbl_unimplemented("FUNCTION PROTOTYPE");
                  }
! #line 17029 "parse.cc"
      break;
  
    case 35: /* opt_clause: opt_decimal  */
! #line 1579 "parse.y"
                              {
  		  cbl_unimplemented("type FLOAT-DECIMAL");
  		}
! #line 17037 "parse.cc"
      break;
  
    case 38: /* opt_arith: ARITHMETIC is opt_arith_type  */
! #line 1586 "parse.y"
                                               {
  		  if( ! current.option((yyvsp[0].opt_arith)) ) {
  		    error_msg((yylsp[0]), "unable to set ARITHMETIC option");
  		  }
  		}
! #line 17047 "parse.cc"
      break;
  
    case 39: /* opt_arith_type: NATIVE  */
! #line 1592 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::native_e; }
! #line 17053 "parse.cc"
      break;
  
    case 40: /* opt_arith_type: STANDARD  */
! #line 1593 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_e; }
! #line 17059 "parse.cc"
      break;
  
    case 41: /* opt_arith_type: "STANDARD-BINARY"  */
! #line 1594 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_binary_e; }
! #line 17065 "parse.cc"
      break;
  
    case 42: /* opt_arith_type: "STANDARD-DECIMAL"  */
! #line 1595 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_decimal_e; }
! #line 17071 "parse.cc"
      break;
  
    case 43: /* opt_round: DEFAULT ROUNDED mode is rounded_type  */
! #line 1597 "parse.y"
                                                             {
                    current_rounded_mode((yyvsp[0].opt_round));
                  }
! #line 17079 "parse.cc"
      break;
  
    case 44: /* opt_entry: ENTRY_CONVENTION is COBOL  */
! #line 1601 "parse.y"
                                            {
! 		  yywarn("ENTRY-CONVENTION IS COBOL, check");
  		}
! #line 17087 "parse.cc"
      break;
  
    case 45: /* opt_binary: "FLOAT-BINARY" default_kw is "HIGH-ORDER-LEFT"  */
! #line 1606 "parse.y"
                  {
! 		  cbl_unimplementedw("HIGH-ORDER-LEFT was ignored");
  		  if( ! current.option_binary(cbl_options_t::high_order_left_e) ) {
! 		    error_msg((yylsp[-1]), "unable to set %<HIGH_ORDER_LEFT%>");
  		  }
  		}
! #line 17098 "parse.cc"
      break;
  
    case 46: /* opt_binary: "FLOAT-BINARY" default_kw is "HIGH-ORDER-RIGHT"  */
! #line 1613 "parse.y"
                  {
! 		  cbl_unimplementedw("HIGH-ORDER-RIGHT was ignored");
  		  if( ! current.option_binary(cbl_options_t::high_order_right_e) ) {
! 		    error_msg((yylsp[0]), "unable to set HIGH-ORDER-RIGHT");
  		  }
  		}
! #line 17109 "parse.cc"
      break;
  
    case 49: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "HIGH-ORDER-LEFT"  */
! #line 1624 "parse.y"
                  {
! 		  cbl_unimplementedw("HIGH-ORDER-LEFT was ignored");
  		  if( ! current.option_decimal(cbl_options_t::high_order_left_e) ) {
! 		    error_msg((yylsp[0]), "unable to set HIGH-ORDER-LEFT");
  		  }
  		}
! #line 17120 "parse.cc"
      break;
  
    case 50: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "HIGH-ORDER-RIGHT"  */
! #line 1631 "parse.y"
                  {
! 		  cbl_unimplementedw("HIGH-ORDER-RIGHT was ignored");
  		  if( ! current.option_decimal(cbl_options_t::high_order_right_e) ) {
! 		    error_msg((yylsp[0]), "unable to set HIGH-ORDER-RIGHT");
  		  }
  		}
! #line 17131 "parse.cc"
      break;
  
    case 51: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "BINARY-ENCODING"  */
! #line 1638 "parse.y"
                  {
! 		  cbl_unimplementedw("BINARY-ENCODING was ignored");
  		  if( ! current.option(cbl_options_t::binary_encoding_e) ) {
! 		    error_msg((yylsp[0]), "unable to set BINARY-ENCODING option");
  		  }
  		}
! #line 17142 "parse.cc"
      break;
  
    case 52: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "DECIMAL-ENCODING"  */
! #line 1645 "parse.y"
                  {
! 		  cbl_unimplementedw("DECIMAL-ENCODING was ignored");
  		  if( ! current.option(cbl_options_t::decimal_encoding_e) ) {
! 		    error_msg((yylsp[0]), "unable to set DECIMAL-ENCODING option");
  		  }
  		}
! #line 17153 "parse.cc"
      break;
  
    case 53: /* opt_intermediate: INTERMEDIATE ROUNDING is round_between  */
! #line 1653 "parse.y"
                                                                {
  		  current.intermediate_round((yyvsp[0].opt_round));
  		}
! #line 17161 "parse.cc"
      break;
  
    case 54: /* opt_init: INITIALIZE opt_init_sects opt_section to opt_init_value  */
! #line 1659 "parse.y"
                  {
  		  if( (yyvsp[-3].opt_init_sects).local ) {
  		    current.initial_value(local_sect_e, (yyvsp[0].number));
--- 20357,20519 ----
                    current.udf_add(current_program_index());
                    if( nparse_error > 0 ) YYABORT;
                  }
! #line 20361 "parse.cc"
      break;
  
    case 25: /* function_id: FUNCTION NAME program_as is PROTOTYPE '.'  */
! #line 1660 "parse.y"
                  {
                    cbl_unimplemented("FUNCTION PROTOTYPE");
                  }
! #line 20369 "parse.cc"
      break;
  
    case 35: /* opt_clause: opt_decimal  */
! #line 1677 "parse.y"
                              {
  		  cbl_unimplemented("type FLOAT-DECIMAL");
  		}
! #line 20377 "parse.cc"
      break;
  
    case 38: /* opt_arith: ARITHMETIC is opt_arith_type  */
! #line 1684 "parse.y"
                                               {
  		  if( ! current.option((yyvsp[0].opt_arith)) ) {
  		    error_msg((yylsp[0]), "unable to set ARITHMETIC option");
  		  }
  		}
! #line 20387 "parse.cc"
      break;
  
    case 39: /* opt_arith_type: NATIVE  */
! #line 1690 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::native_e; }
! #line 20393 "parse.cc"
      break;
  
    case 40: /* opt_arith_type: STANDARD  */
! #line 1691 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_e; }
! #line 20399 "parse.cc"
      break;
  
    case 41: /* opt_arith_type: "STANDARD-BINARY"  */
! #line 1692 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_binary_e; }
! #line 20405 "parse.cc"
      break;
  
    case 42: /* opt_arith_type: "STANDARD-DECIMAL"  */
! #line 1693 "parse.y"
                                    { (yyval.opt_arith) = cbl_options_t::standard_decimal_e; }
! #line 20411 "parse.cc"
      break;
  
    case 43: /* opt_round: DEFAULT ROUNDED mode is rounded_type  */
! #line 1695 "parse.y"
                                                             {
                    current_rounded_mode((yyvsp[0].opt_round));
                  }
! #line 20419 "parse.cc"
      break;
  
    case 44: /* opt_entry: ENTRY_CONVENTION is COBOL  */
! #line 1699 "parse.y"
                                            {
!                  cbl_message(ParInfoI, "ENTRY-CONVENTION IS COBOL");
  		}
! #line 20427 "parse.cc"
      break;
  
    case 45: /* opt_binary: "FLOAT-BINARY" default_kw is "HIGH-ORDER-LEFT"  */
! #line 1704 "parse.y"
                  {
!                   cbl_unimplementedw(SynHighOrderBit,
!                                      "HIGH-ORDER-LEFT was ignored");
  		  if( ! current.option_binary(cbl_options_t::high_order_left_e) ) {
!                       cbl_message((yylsp[-1]), SynHighOrderBit,
!                                   "unable to set %<HIGH_ORDER_LEFT%>");
  		  }
  		}
! #line 20440 "parse.cc"
      break;
  
    case 46: /* opt_binary: "FLOAT-BINARY" default_kw is "HIGH-ORDER-RIGHT"  */
! #line 1713 "parse.y"
                  {
!                     cbl_unimplementedw(SynHighOrderBit,
!                                        "HIGH-ORDER-RIGHT was ignored");
  		  if( ! current.option_binary(cbl_options_t::high_order_right_e) ) {
!                       cbl_message((yylsp[0]), SynHighOrderBit,
!                                   "unable to set HIGH-ORDER-RIGHT");
  		  }
  		}
! #line 20453 "parse.cc"
      break;
  
    case 49: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "HIGH-ORDER-LEFT"  */
! #line 1726 "parse.y"
                  {
! 		  cbl_unimplementedw(SynHighOrderBit,
!                                   "HIGH-ORDER-LEFT was ignored");
  		  if( ! current.option_decimal(cbl_options_t::high_order_left_e) ) {
! 		    cbl_message((yylsp[0]), SynHighOrderBit,
!                                 "unable to set HIGH-ORDER-LEFT");
  		  }
  		}
! #line 20466 "parse.cc"
      break;
  
    case 50: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "HIGH-ORDER-RIGHT"  */
! #line 1735 "parse.y"
                  {
! 		  cbl_unimplementedw(SynHighOrderBit,
!                                      "HIGH-ORDER-RIGHT was ignored");
  		  if( ! current.option_decimal(cbl_options_t::high_order_right_e) ) {
! 		    cbl_message((yylsp[0]), SynHighOrderBit,
!                                   "unable to set HIGH-ORDER-RIGHT");
  		  }
  		}
! #line 20479 "parse.cc"
      break;
  
    case 51: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "BINARY-ENCODING"  */
! #line 1744 "parse.y"
                  {
! 		  cbl_unimplementedw(SynHighOrderBit,
!                                   "BINARY-ENCODING was ignored");
  		  if( ! current.option(cbl_options_t::binary_encoding_e) ) {
! 		    cbl_message((yylsp[0]), SynHighOrderBit,
!                                   "unable to set BINARY-ENCODING option");
  		  }
  		}
! #line 20492 "parse.cc"
      break;
  
    case 52: /* opt_decimal: "FLOAT-DECIMAL" default_kw is "DECIMAL-ENCODING"  */
! #line 1753 "parse.y"
                  {
! 		  cbl_unimplementedw(SynHighOrderBit,
!                                   "DECIMAL-ENCODING was ignored");
  		  if( ! current.option(cbl_options_t::decimal_encoding_e) ) {
! 		    cbl_message((yylsp[0]), SynHighOrderBit,
!                                   "unable to set DECIMAL-ENCODING option");
  		  }
  		}
! #line 20505 "parse.cc"
      break;
  
    case 53: /* opt_intermediate: INTERMEDIATE ROUNDING is round_between  */
! #line 1763 "parse.y"
                                                                {
  		  current.intermediate_round((yyvsp[0].opt_round));
  		}
! #line 20513 "parse.cc"
      break;
  
    case 54: /* opt_init: INITIALIZE opt_init_sects opt_section to opt_init_value  */
! #line 1769 "parse.y"
                  {
  		  if( (yyvsp[-3].opt_init_sects).local ) {
  		    current.initial_value(local_sect_e, (yyvsp[0].number));
*************** yyreduce:
*** 17170,17186 ****
  		    current.initial_value(working_sect_e, (yyvsp[0].number));
  		  }
  		}
! #line 17174 "parse.cc"
      break;
  
    case 57: /* opt_init_sects: ALL  */
! #line 1671 "parse.y"
                      { (yyval.opt_init_sects).local = (yyval.opt_init_sects).working = true; }
! #line 17180 "parse.cc"
      break;
  
    case 58: /* opt_init_sects: opt_init_sect  */
! #line 1672 "parse.y"
                                {
  		  (yyval.opt_init_sects).local = (yyval.opt_init_sects).working = false;
  		  switch((yyvsp[0].opt_init_sect)) {
--- 20522,20538 ----
  		    current.initial_value(working_sect_e, (yyvsp[0].number));
  		  }
  		}
! #line 20526 "parse.cc"
      break;
  
    case 57: /* opt_init_sects: ALL  */
! #line 1781 "parse.y"
                      { (yyval.opt_init_sects).local = (yyval.opt_init_sects).working = true; }
! #line 20532 "parse.cc"
      break;
  
    case 58: /* opt_init_sects: opt_init_sect  */
! #line 1782 "parse.y"
                                {
  		  (yyval.opt_init_sects).local = (yyval.opt_init_sects).working = false;
  		  switch((yyvsp[0].opt_init_sect)) {
*************** yyreduce:
*** 17191,17201 ****
  		    default: gcc_unreachable();
  		  }
  		}
! #line 17195 "parse.cc"
      break;
  
    case 59: /* opt_init_sects: opt_init_sects opt_init_sect  */
! #line 1682 "parse.y"
                                               {
  		  (yyval.opt_init_sects) = (yyvsp[-1].opt_init_sects);
  		  switch((yyvsp[0].opt_init_sect)) {
--- 20543,20553 ----
  		    default: gcc_unreachable();
  		  }
  		}
! #line 20547 "parse.cc"
      break;
  
    case 59: /* opt_init_sects: opt_init_sects opt_init_sect  */
! #line 1792 "parse.y"
                                               {
  		  (yyval.opt_init_sects) = (yyvsp[-1].opt_init_sects);
  		  switch((yyvsp[0].opt_init_sect)) {
*************** yyreduce:
*** 17212,17252 ****
  		    default: gcc_unreachable();
  		  }
  		}
! #line 17216 "parse.cc"
      break;
  
    case 60: /* opt_init_sect: "LOCAL-STORAGE"  */
! #line 1699 "parse.y"
                                  { (yyval.opt_init_sect) = local_sect_e; }
! #line 17222 "parse.cc"
      break;
  
    case 61: /* opt_init_sect: SCREEN  */
! #line 1700 "parse.y"
                         { cbl_unimplemented("SCREEN SECTION"); }
! #line 17228 "parse.cc"
      break;
  
    case 62: /* opt_init_sect: WORKING_STORAGE  */
! #line 1701 "parse.y"
                                  { (yyval.opt_init_sect) = working_sect_e; }
! #line 17234 "parse.cc"
      break;
  
    case 63: /* opt_init_value: BINARY ZERO  */
! #line 1703 "parse.y"
                              { (yyval.number) = constant_index(NULLS); }
! #line 17240 "parse.cc"
      break;
  
    case 64: /* opt_init_value: "HIGH-VALUES"  */
! #line 1704 "parse.y"
                              { (yyval.number) = constant_index(HIGH_VALUES); }
! #line 17246 "parse.cc"
      break;
  
    case 65: /* opt_init_value: LITERAL  */
! #line 1706 "parse.y"
                  {
  		  if( (yyvsp[0].literal).prefix[0] != 'X' ) {
  		    error_msg((yylsp[0]), "hexadecimal literal required");
--- 20564,20604 ----
  		    default: gcc_unreachable();
  		  }
  		}
! #line 20568 "parse.cc"
      break;
  
    case 60: /* opt_init_sect: "LOCAL-STORAGE"  */
! #line 1809 "parse.y"
                                  { (yyval.opt_init_sect) = local_sect_e; }
! #line 20574 "parse.cc"
      break;
  
    case 61: /* opt_init_sect: SCREEN  */
! #line 1810 "parse.y"
                         { cbl_unimplemented("SCREEN SECTION"); }
! #line 20580 "parse.cc"
      break;
  
    case 62: /* opt_init_sect: WORKING_STORAGE  */
! #line 1811 "parse.y"
                                  { (yyval.opt_init_sect) = working_sect_e; }
! #line 20586 "parse.cc"
      break;
  
    case 63: /* opt_init_value: BINARY ZERO  */
! #line 1813 "parse.y"
                              { (yyval.number) = constant_index(NULLS); }
! #line 20592 "parse.cc"
      break;
  
    case 64: /* opt_init_value: "HIGH-VALUES"  */
! #line 1814 "parse.y"
                              { (yyval.number) = constant_index(HIGH_VALUES); }
! #line 20598 "parse.cc"
      break;
  
    case 65: /* opt_init_value: LITERAL  */
! #line 1816 "parse.y"
                  {
  		  if( (yyvsp[0].literal).prefix[0] != 'X' ) {
  		    error_msg((yylsp[0]), "hexadecimal literal required");
*************** yyreduce:
*** 17254,17283 ****
  		  if( (yyvsp[0].literal).len != 1 ) {
  		    error_msg((yylsp[0]), "1-byte hexadecimal literal required");
  		  }
!       char ach[16];
!       sprintf(ach, "%d", (int)((yyvsp[0].literal).data[0]));
  		  //auto f = new_literal($1.data);
! 		  auto f = new_literal(ach);
  		  f = field_add((yylsp[0]), f);
  		  (yyval.number) = field_index(f);
  		}
! #line 17265 "parse.cc"
      break;
  
    case 66: /* opt_init_value: "LOW-VALUES"  */
! #line 1720 "parse.y"
                              { (yyval.number) = constant_index(LOW_VALUES); }
! #line 17271 "parse.cc"
      break;
  
    case 67: /* opt_init_value: SPACES  */
! #line 1721 "parse.y"
                              { (yyval.number) = constant_index(SPACES); }
! #line 17277 "parse.cc"
      break;
  
    case 68: /* namestr: ctx_name  */
! #line 1724 "parse.y"
                           {
                    (yyval.literal) = literal_of((yyvsp[0].string));
                    if( ! string_of((yyval.literal)) ) {
--- 20606,20635 ----
  		  if( (yyvsp[0].literal).len != 1 ) {
  		    error_msg((yylsp[0]), "1-byte hexadecimal literal required");
  		  }
!                   char ach[16];
!                   sprintf(ach, "%d", (int)((yyvsp[0].literal).data[0]));
  		  //auto f = new_literal($1.data);
! 		  auto f = new_literal((yylsp[0]), ach);
  		  f = field_add((yylsp[0]), f);
  		  (yyval.number) = field_index(f);
  		}
! #line 20617 "parse.cc"
      break;
  
    case 66: /* opt_init_value: "LOW-VALUES"  */
! #line 1830 "parse.y"
                              { (yyval.number) = constant_index(LOW_VALUES); }
! #line 20623 "parse.cc"
      break;
  
    case 67: /* opt_init_value: SPACES  */
! #line 1831 "parse.y"
                              { (yyval.number) = constant_index(SPACES); }
! #line 20629 "parse.cc"
      break;
  
    case 68: /* namestr: ctx_name  */
! #line 1834 "parse.y"
                           {
                    (yyval.literal) = literal_of((yyvsp[0].string));
                    if( ! string_of((yyval.literal)) ) {
*************** yyreduce:
*** 17285,17323 ****
                      YYERROR;
                    }
                  }
! #line 17289 "parse.cc"
      break;
  
    case 69: /* namestr: LITERAL  */
! #line 1731 "parse.y"
                          {
                    if( (yyval.literal).prefix[0] != '\0' ) {
!                     error_msg((yylsp[0]), "literal cannot use %s prefix in this context",
!                               (yyval.literal).prefix);
!                     YYERROR;
                    }
  		  if( !is_cobol_charset((yyval.literal).data) ) {
  		    error_msg((yylsp[0]), "literal '%s' must be a COBOL or C identifier",
  			      (yyval.literal).data);
                    }
                  }
! #line 17305 "parse.cc"
      break;
  
    case 70: /* program_attrs: %empty  */
! #line 1744 "parse.y"
                          { (yyval.comminit).common = (yyval.comminit).initial = (yyval.comminit).recursive = false; }
! #line 17311 "parse.cc"
      break;
  
    case 71: /* program_attrs: is comminits program_kw  */
! #line 1745 "parse.y"
                                          { (yyval.comminit) = (yyvsp[-1].comminit); }
! #line 17317 "parse.cc"
      break;
  
    case 73: /* comminits: comminits comminit  */
! #line 1748 "parse.y"
                                     {
                    if( ((yyvsp[-1].comminit).initial && (yyvsp[0].comminit).recursive) ||
                        ((yyvsp[0].comminit).initial && (yyvsp[-1].comminit).recursive) ) {
--- 20637,20677 ----
                      YYERROR;
                    }
                  }
! #line 20641 "parse.cc"
      break;
  
    case 69: /* namestr: LITERAL  */
! #line 1841 "parse.y"
                          {
                    if( (yyval.literal).prefix[0] != '\0' ) {
!                     if( (yyval.literal).prefix[0] != 'N' ) {
!                       error_msg((yylsp[0]), "literal cannot use %s prefix in this context",
!                                 (yyval.literal).prefix);
!                       YYERROR;
!                     }
                    }
  		  if( !is_cobol_charset((yyval.literal).data) ) {
  		    error_msg((yylsp[0]), "literal '%s' must be a COBOL or C identifier",
  			      (yyval.literal).data);
                    }
                  }
! #line 20659 "parse.cc"
      break;
  
    case 70: /* program_attrs: %empty  */
! #line 1856 "parse.y"
                          { (yyval.comminit).common = (yyval.comminit).initial = (yyval.comminit).recursive = false; }
! #line 20665 "parse.cc"
      break;
  
    case 71: /* program_attrs: is comminits program_kw  */
! #line 1857 "parse.y"
                                          { (yyval.comminit) = (yyvsp[-1].comminit); }
! #line 20671 "parse.cc"
      break;
  
    case 73: /* comminits: comminits comminit  */
! #line 1860 "parse.y"
                                     {
                    if( ((yyvsp[-1].comminit).initial && (yyvsp[0].comminit).recursive) ||
                        ((yyvsp[0].comminit).initial && (yyvsp[-1].comminit).recursive) ) {
*************** yyreduce:
*** 17344,17354 ****
                      (yyval.comminit).recursive = (yyvsp[0].comminit).recursive;
                    }
                  }
! #line 17348 "parse.cc"
      break;
  
    case 74: /* comminit: COMMON  */
! #line 1775 "parse.y"
                             {
                    if( program_level() == 0 ) { // PROGRAM-ID being parsed not added yet.
                      error_msg((yylsp[0]), "COMMON may be used only in a contained program");
--- 20698,20708 ----
                      (yyval.comminit).recursive = (yyvsp[0].comminit).recursive;
                    }
                  }
! #line 20702 "parse.cc"
      break;
  
    case 74: /* comminit: COMMON  */
! #line 1887 "parse.y"
                             {
                    if( program_level() == 0 ) { // PROGRAM-ID being parsed not added yet.
                      error_msg((yylsp[0]), "COMMON may be used only in a contained program");
*************** yyreduce:
*** 17356,17430 ****
                    (yyval.comminit).common = true;
                    (yyval.comminit).initial = (yyval.comminit).recursive = false;
                  }
! #line 17360 "parse.cc"
      break;
  
    case 75: /* comminit: "INITIAL"  */
! #line 1782 "parse.y"
                             { (yyval.comminit).initial = true;  (yyval.comminit).common = (yyval.comminit).recursive = false;}
! #line 17366 "parse.cc"
      break;
  
    case 76: /* comminit: RECURSIVE  */
! #line 1783 "parse.y"
                             {
                    (yyval.comminit).recursive = true;  (yyval.comminit).common = (yyval.comminit).initial = false;
                  }
! #line 17374 "parse.cc"
      break;
  
    case 77: /* env_div: %empty  */
! #line 1789 "parse.y"
!                                     { current_division = environment_div_e; }
! #line 17380 "parse.cc"
      break;
  
    case 78: /* env_div: "ENVIRONMENT DIVISION" '.'  */
! #line 1790 "parse.y"
!                                     { current_division = environment_div_e; }
! #line 17386 "parse.cc"
      break;
  
    case 79: /* $@2: %empty  */
! #line 1791 "parse.y"
                                      {
                    current_division = environment_div_e;
                  }
! #line 17394 "parse.cc"
      break;
  
    case 85: /* env_section: "INPUT-OUTPUT SECTION" '.' selects  */
! #line 1802 "parse.y"
                                                { /* IBM requires FILE CONTROL.  */ }
! #line 17400 "parse.cc"
      break;
  
    case 97: /* io_control_clause: SAME record area for_kw filenames  */
! #line 1823 "parse.y"
                  {
                    symbol_file_same_record_area( (yyvsp[0].files)->files );
                  }
! #line 17408 "parse.cc"
      break;
  
    case 98: /* io_control_clause: SAME smerge area for_kw filenames  */
! #line 1827 "parse.y"
                  {
                    symbol_file_same_record_area( (yyvsp[0].files)->files );
                  }
! #line 17416 "parse.cc"
      break;
  
    case 99: /* io_control_clause: APPLY COMMIT on field_list  */
! #line 1831 "parse.y"
                  {
!                   cbl_unimplementedw("I-O-CONTROL APPLY COMMIT");
                  }
! #line 17424 "parse.cc"
      break;
  
    case 106: /* select: SELECT optional NAME select_clauses '.'  */
! #line 1847 "parse.y"
                  {
                    assert((yyvsp[-1].select_clauses).file);
                    cbl_file_t *file = (yyvsp[-1].select_clauses).file;
--- 20710,20792 ----
                    (yyval.comminit).common = true;
                    (yyval.comminit).initial = (yyval.comminit).recursive = false;
                  }
! #line 20714 "parse.cc"
      break;
  
    case 75: /* comminit: "INITIAL"  */
! #line 1894 "parse.y"
                             { (yyval.comminit).initial = true;  (yyval.comminit).common = (yyval.comminit).recursive = false;}
! #line 20720 "parse.cc"
      break;
  
    case 76: /* comminit: RECURSIVE  */
! #line 1895 "parse.y"
                             {
                    (yyval.comminit).recursive = true;  (yyval.comminit).common = (yyval.comminit).initial = false;
                  }
! #line 20728 "parse.cc"
      break;
  
    case 77: /* env_div: %empty  */
! #line 1901 "parse.y"
!                        {
!                   current_division = environment_div_e;
!                   parser_division( environment_div_e, NULL, 0, NULL );
!                 }
! #line 20737 "parse.cc"
      break;
  
    case 78: /* env_div: "ENVIRONMENT DIVISION" '.'  */
! #line 1905 "parse.y"
!                                     {
!                   current_division = environment_div_e;
!                   parser_division( environment_div_e, NULL, 0, NULL );
!                 }
! #line 20746 "parse.cc"
      break;
  
    case 79: /* $@2: %empty  */
! #line 1909 "parse.y"
                                      {
                    current_division = environment_div_e;
+                   parser_division( environment_div_e, NULL, 0, NULL );
                  }
! #line 20755 "parse.cc"
      break;
  
    case 85: /* env_section: "INPUT-OUTPUT SECTION" '.' selects  */
! #line 1921 "parse.y"
                                                { /* IBM requires FILE CONTROL.  */ }
! #line 20761 "parse.cc"
      break;
  
    case 97: /* io_control_clause: SAME record area for_kw filenames  */
! #line 1942 "parse.y"
                  {
                    symbol_file_same_record_area( (yyvsp[0].files)->files );
                  }
! #line 20769 "parse.cc"
      break;
  
    case 98: /* io_control_clause: SAME smerge area for_kw filenames  */
! #line 1946 "parse.y"
                  {
                    symbol_file_same_record_area( (yyvsp[0].files)->files );
                  }
! #line 20777 "parse.cc"
      break;
  
    case 99: /* io_control_clause: APPLY COMMIT on field_list  */
! #line 1950 "parse.y"
                  {
!                   cbl_unimplementedw(SynApplyCommit,
!                                      "I-O-CONTROL APPLY COMMIT ignored");
                  }
! #line 20786 "parse.cc"
      break;
  
    case 106: /* select: SELECT optional NAME select_clauses '.'  */
! #line 1967 "parse.y"
                  {
                    assert((yyvsp[-1].select_clauses).file);
                    cbl_file_t *file = (yyvsp[-1].select_clauses).file;
*************** yyreduce:
*** 17498,17508 ****
                      update_symbol_map(symbol_at(isym));
                    }
                  }
! #line 17502 "parse.cc"
      break;
  
    case 107: /* select: SELECT optional NAME '.'  */
! #line 1921 "parse.y"
                  {
                    cbl_file_t file = protofile;
  
--- 20860,20870 ----
                      update_symbol_map(symbol_at(isym));
                    }
                  }
! #line 20864 "parse.cc"
      break;
  
    case 107: /* select: SELECT optional NAME '.'  */
! #line 2041 "parse.y"
                  {
                    cbl_file_t file = protofile;
  
*************** yyreduce:
*** 17512,17528 ****
  
                    if( file_add((yylsp[-1]), &file) == NULL ) YYERROR;
                  }
! #line 17516 "parse.cc"
      break;
  
    case 108: /* selected_name: external scalar  */
! #line 1931 "parse.y"
                                  { (yyval.refer) = (yyvsp[0].refer); }
! #line 17522 "parse.cc"
      break;
  
    case 109: /* selected_name: external LITERAL  */
! #line 1933 "parse.y"
                  {
                    const char *name = string_of((yyvsp[0].literal));
                    if( ! name ) {
--- 20874,20890 ----
  
                    if( file_add((yylsp[-1]), &file) == NULL ) YYERROR;
                  }
! #line 20878 "parse.cc"
      break;
  
    case 108: /* selected_name: external scalar  */
! #line 2051 "parse.y"
                                  { (yyval.refer) = (yyvsp[0].refer); }
! #line 20884 "parse.cc"
      break;
  
    case 109: /* selected_name: external LITERAL  */
! #line 2053 "parse.y"
                  {
                    const char *name = string_of((yyvsp[0].literal));
                    if( ! name ) {
*************** yyreduce:
*** 17530,17553 ****
                      YYERROR;
                    }
                    uint32_t len = (yyvsp[0].literal).len;
!                   cbl_field_t field {
!                                0, FldLiteralA, FldInvalid, quoted_e | constant_e,
!                                0, 0, 0, nonarray, 0, "", 0, cbl_field_t::linkage_t(),
! 				 {len,len,0,0, (yyvsp[0].literal).data}, NULL };
                    field.attr |= literal_attr((yyvsp[0].literal).prefix);
                    (yyval.refer) = new cbl_refer_t( field_add((yylsp[0]), &field) );
                  }
! #line 17541 "parse.cc"
      break;
  
    case 112: /* select_clauses: select_clause  */
! #line 1952 "parse.y"
                                { (yyval.select_clauses).clauses = (yyvsp[0].select_clause).clause; (yyval.select_clauses).file = (yyvsp[0].select_clause).file; }
! #line 17547 "parse.cc"
      break;
  
    case 113: /* select_clauses: select_clauses select_clause  */
! #line 1954 "parse.y"
                  {
                    (yyval.select_clauses) = (yyvsp[-1].select_clauses);
                    // The default organization is sequential.
--- 20892,20916 ----
                      YYERROR;
                    }
                    uint32_t len = (yyvsp[0].literal).len;
!                   // Pretend hex-encoded because that means use verbatim.
!                   cbl_field_t field { FldLiteralA,
!                                       hex_encoded_e | quoted_e | constant_e,
! 				      {len,len,0,0, (yyvsp[0].literal).data} };
                    field.attr |= literal_attr((yyvsp[0].literal).prefix);
+                   field.codeset.set();
                    (yyval.refer) = new cbl_refer_t( field_add((yylsp[0]), &field) );
                  }
! #line 20904 "parse.cc"
      break;
  
    case 112: /* select_clauses: select_clause  */
! #line 2073 "parse.y"
                                { (yyval.select_clauses).clauses = (yyvsp[0].select_clause).clause; (yyval.select_clauses).file = (yyvsp[0].select_clause).file; }
! #line 20910 "parse.cc"
      break;
  
    case 113: /* select_clauses: select_clauses select_clause  */
! #line 2075 "parse.y"
                  {
                    (yyval.select_clauses) = (yyvsp[-1].select_clauses);
                    // The default organization is sequential.
*************** yyreduce:
*** 17669,17707 ****
  
                    delete (yyvsp[0].select_clause).file;
                  }
! #line 17673 "parse.cc"
      break;
  
    case 127: /* access_clause: ACCESS mode is access_mode  */
! #line 2093 "parse.y"
                  {
                    (yyval.select_clause).clause = access_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->access = static_cast<cbl_file_access_t>((yyvsp[0].number));
                  }
! #line 17683 "parse.cc"
      break;
  
    case 128: /* access_mode: RANDOM  */
! #line 2099 "parse.y"
                              { (yyval.number) = file_access_rnd_e; }
! #line 17689 "parse.cc"
      break;
  
    case 129: /* access_mode: DYNAMIC  */
! #line 2100 "parse.y"
                              { (yyval.number) = file_access_dyn_e; }
! #line 17695 "parse.cc"
      break;
  
    case 130: /* access_mode: SEQUENTIAL  */
! #line 2101 "parse.y"
                              { (yyval.number) = file_access_seq_e; }
! #line 17701 "parse.cc"
      break;
  
    case 131: /* alt_key_clause: ALTERNATE record key is name key_source unique_key  */
! #line 2105 "parse.y"
                  {
                    (yyval.select_clause).clause = alt_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
--- 21032,21070 ----
  
                    delete (yyvsp[0].select_clause).file;
                  }
! #line 21036 "parse.cc"
      break;
  
    case 127: /* access_clause: ACCESS mode is access_mode  */
! #line 2214 "parse.y"
                  {
                    (yyval.select_clause).clause = access_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->access = static_cast<cbl_file_access_t>((yyvsp[0].number));
                  }
! #line 21046 "parse.cc"
      break;
  
    case 128: /* access_mode: RANDOM  */
! #line 2220 "parse.y"
                              { (yyval.number) = file_access_rnd_e; }
! #line 21052 "parse.cc"
      break;
  
    case 129: /* access_mode: DYNAMIC  */
! #line 2221 "parse.y"
                              { (yyval.number) = file_access_dyn_e; }
! #line 21058 "parse.cc"
      break;
  
    case 130: /* access_mode: SEQUENTIAL  */
! #line 2222 "parse.y"
                              { (yyval.number) = file_access_seq_e; }
! #line 21064 "parse.cc"
      break;
  
    case 131: /* alt_key_clause: ALTERNATE record key is name key_source unique_key  */
! #line 2226 "parse.y"
                  {
                    (yyval.select_clause).clause = alt_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
*************** yyreduce:
*** 17719,17835 ****
                                                         (yyvsp[0].boolean));
                    }
                  }
! #line 17723 "parse.cc"
      break;
  
    case 132: /* key_source: %empty  */
! #line 2123 "parse.y"
                         { (yyval.fields) = NULL; }
! #line 17729 "parse.cc"
      break;
  
    case 133: /* key_source: SOURCE is key_sources  */
! #line 2124 "parse.y"
                                                { (yyval.fields) = (yyvsp[0].fields); }
! #line 17735 "parse.cc"
      break;
  
    case 134: /* key_sources: name  */
! #line 2126 "parse.y"
                       { (yyval.fields) = new field_list_t((yyvsp[0].field)); }
! #line 17741 "parse.cc"
      break;
  
    case 135: /* key_sources: key_sources name  */
! #line 2127 "parse.y"
                                   { (yyval.fields) = (yyvsp[-1].fields); (yyval.fields)->fields.push_back((yyvsp[0].field)); }
! #line 17747 "parse.cc"
      break;
  
    case 136: /* unique_key: %empty  */
! #line 2129 "parse.y"
                                  { (yyval.boolean) = true; }
! #line 17753 "parse.cc"
      break;
  
    case 137: /* unique_key: with DUPLICATES  */
! #line 2130 "parse.y"
                                  { (yyval.boolean) = false; }
! #line 17759 "parse.cc"
      break;
  
    case 138: /* assign_clause: ASSIGN to selected_name  */
! #line 2133 "parse.y"
                                                     {
                    (yyval.select_clause).clause = assign_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->filename = field_index((yyvsp[0].refer)->field);
                  }
! #line 17769 "parse.cc"
      break;
  
    case 139: /* assign_clause: ASSIGN to device_name USING name  */
! #line 2138 "parse.y"
                                                   {
                    (yyval.select_clause).clause = assign_clause_e;
  		  cbl_unimplemented("ASSIGN TO DEVICE");
  		  YYERROR;
                  }
! #line 17779 "parse.cc"
      break;
  
    case 140: /* assign_clause: ASSIGN to device_name  */
! #line 2143 "parse.y"
                                        {
                    (yyval.select_clause).clause = assign_clause_e;
  		  cbl_unimplemented("ASSIGN TO DEVICE");
  		  YYERROR;
                  }
! #line 17789 "parse.cc"
      break;
  
    case 141: /* assign_clause: ASSIGN USING name  */
! #line 2148 "parse.y"
                                    {
                    (yyval.select_clause).clause = assign_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->filename = field_index((yyvsp[0].field));
                  }
! #line 17799 "parse.cc"
      break;
  
    case 142: /* collate_clause: collate_claus1  */
! #line 2155 "parse.y"
                                 {
                    (yyval.select_clause).clause = collating_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 17808 "parse.cc"
      break;
  
    case 146: /* status_clause: file STATUS is name  */
! #line 2166 "parse.y"
                  {
                    (yyval.select_clause).clause = file_status_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->user_status = field_index((yyvsp[0].field));
                  }
! #line 17818 "parse.cc"
      break;
  
    case 147: /* status_clause: file STATUS is name name  */
! #line 2172 "parse.y"
                  {
                    (yyval.select_clause).clause = file_status_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->user_status = field_index((yyvsp[-1].field));
                    (yyval.select_clause).file->vsam_status = field_index((yyvsp[0].field));
                  }
! #line 17829 "parse.cc"
      break;
  
    case 148: /* lock_mode_clause: LOCK mode is lock_mode lock_how  */
! #line 2182 "parse.y"
                  {
                    (yyval.select_clause).clause = lock_mode_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
--- 21082,21198 ----
                                                         (yyvsp[0].boolean));
                    }
                  }
! #line 21086 "parse.cc"
      break;
  
    case 132: /* key_source: %empty  */
! #line 2244 "parse.y"
                         { (yyval.fields) = NULL; }
! #line 21092 "parse.cc"
      break;
  
    case 133: /* key_source: SOURCE is key_sources  */
! #line 2245 "parse.y"
                                                { (yyval.fields) = (yyvsp[0].fields); }
! #line 21098 "parse.cc"
      break;
  
    case 134: /* key_sources: name  */
! #line 2247 "parse.y"
                       { (yyval.fields) = new field_list_t((yyvsp[0].field)); }
! #line 21104 "parse.cc"
      break;
  
    case 135: /* key_sources: key_sources name  */
! #line 2248 "parse.y"
                                   { (yyval.fields) = (yyvsp[-1].fields); (yyval.fields)->fields.push_back((yyvsp[0].field)); }
! #line 21110 "parse.cc"
      break;
  
    case 136: /* unique_key: %empty  */
! #line 2250 "parse.y"
                                  { (yyval.boolean) = true; }
! #line 21116 "parse.cc"
      break;
  
    case 137: /* unique_key: with DUPLICATES  */
! #line 2251 "parse.y"
                                  { (yyval.boolean) = false; }
! #line 21122 "parse.cc"
      break;
  
    case 138: /* assign_clause: ASSIGN to selected_name  */
! #line 2254 "parse.y"
                                                     {
                    (yyval.select_clause).clause = assign_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->filename = field_index((yyvsp[0].refer)->field);
                  }
! #line 21132 "parse.cc"
      break;
  
    case 139: /* assign_clause: ASSIGN to device_name USING name  */
! #line 2259 "parse.y"
                                                   {
                    (yyval.select_clause).clause = assign_clause_e;
  		  cbl_unimplemented("ASSIGN TO DEVICE");
  		  YYERROR;
                  }
! #line 21142 "parse.cc"
      break;
  
    case 140: /* assign_clause: ASSIGN to device_name  */
! #line 2264 "parse.y"
                                        {
                    (yyval.select_clause).clause = assign_clause_e;
  		  cbl_unimplemented("ASSIGN TO DEVICE");
  		  YYERROR;
                  }
! #line 21152 "parse.cc"
      break;
  
    case 141: /* assign_clause: ASSIGN USING name  */
! #line 2269 "parse.y"
                                    {
                    (yyval.select_clause).clause = assign_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->filename = field_index((yyvsp[0].field));
                  }
! #line 21162 "parse.cc"
      break;
  
    case 142: /* collate_clause: collate_claus1  */
! #line 2276 "parse.y"
                                 {
                    (yyval.select_clause).clause = collating_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 21171 "parse.cc"
      break;
  
    case 146: /* status_clause: file STATUS is name  */
! #line 2287 "parse.y"
                  {
                    (yyval.select_clause).clause = file_status_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->user_status = field_index((yyvsp[0].field));
                  }
! #line 21181 "parse.cc"
      break;
  
    case 147: /* status_clause: file STATUS is name name  */
! #line 2293 "parse.y"
                  {
                    (yyval.select_clause).clause = file_status_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->user_status = field_index((yyvsp[-1].field));
                    (yyval.select_clause).file->vsam_status = field_index((yyvsp[0].field));
                  }
! #line 21192 "parse.cc"
      break;
  
    case 148: /* lock_mode_clause: LOCK mode is lock_mode lock_how  */
! #line 2303 "parse.y"
                  {
                    (yyval.select_clause).clause = lock_mode_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
*************** yyreduce:
*** 17839,17978 ****
  		              keyword_str((yyvsp[-1].number)) );
  		  }
                  }
! #line 17843 "parse.cc"
      break;
  
    case 149: /* lock_how: %empty  */
! #line 2191 "parse.y"
                         { (yyval.number) = 0; }
! #line 17849 "parse.cc"
      break;
  
    case 150: /* lock_how: with LOCK_ON multiple records  */
! #line 2192 "parse.y"
                                                { (yyval.number) = (yyvsp[-1].number); }
! #line 17855 "parse.cc"
      break;
  
    case 151: /* lock_mode: MANUAL  */
! #line 2194 "parse.y"
                            { (yyval.number) = MANUAL; }
! #line 17861 "parse.cc"
      break;
  
    case 152: /* lock_mode: RECORD  */
! #line 2195 "parse.y"
                            { (yyval.number) = RECORD; }
! #line 17867 "parse.cc"
      break;
  
    case 153: /* lock_mode: AUTOMATIC  */
! #line 2196 "parse.y"
                            { (yyval.number) = AUTOMATIC; }
! #line 17873 "parse.cc"
      break;
  
    case 154: /* multiple: %empty  */
! #line 2198 "parse.y"
                            { (yyval.number) = 0; }
! #line 17879 "parse.cc"
      break;
  
    case 155: /* multiple: MULTIPLE  */
! #line 2199 "parse.y"
                            { (yyval.number) = MULTIPLE; }
! #line 17885 "parse.cc"
      break;
  
    case 158: /* org_clause: org_clause1  */
! #line 2206 "parse.y"
                  {
                    (yyval.select_clause).clause = organization_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->org = static_cast<cbl_file_org_t>((yyvsp[0].number));
                  }
! #line 17895 "parse.cc"
      break;
  
    case 159: /* org_is: %empty  */
! #line 2212 "parse.y"
                                         { (yyval.number) = 0; }
! #line 17901 "parse.cc"
      break;
  
    case 160: /* org_is: ORGANIZATION is  */
! #line 2213 "parse.y"
                                         { (yyval.number) = 0; }
! #line 17907 "parse.cc"
      break;
  
    case 161: /* org_is: ORGANIZATION is RECORD  */
! #line 2214 "parse.y"
                                         { (yyval.number) = RECORD; }
! #line 17913 "parse.cc"
      break;
  
    case 162: /* org_is: RECORD  */
! #line 2215 "parse.y"
                                         { (yyval.number) = RECORD; }
! #line 17919 "parse.cc"
      break;
  
    case 163: /* org_clause1: org_is SEQUENTIAL  */
! #line 2218 "parse.y"
                                         {
                    (yyval.number) = (yyvsp[-1].number) == RECORD? file_line_sequential_e : file_sequential_e;
                  }
! #line 17927 "parse.cc"
      break;
  
    case 164: /* org_clause1: org_is LINE SEQUENTIAL  */
! #line 2222 "parse.y"
                  {
                    if( (yyvsp[-2].number) ) error_msg((yylsp[-1]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_line_sequential_e;
                  }
! #line 17936 "parse.cc"
      break;
  
    case 165: /* org_clause1: org_is RELATIVE  */
! #line 2226 "parse.y"
                                       {
                    if( (yyvsp[-1].number) ) error_msg((yylsp[0]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_relative_e;
                  }
! #line 17945 "parse.cc"
      break;
  
    case 166: /* org_clause1: org_is INDEXED  */
! #line 2230 "parse.y"
                                         { 
                    if( (yyvsp[-1].number) ) error_msg((yylsp[0]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_indexed_e;
                  }
! #line 17954 "parse.cc"
      break;
  
    case 167: /* padding_clause: PADDING character is padding_char  */
! #line 2241 "parse.y"
                  {
                    (yyval.select_clause).clause = padding_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 17963 "parse.cc"
      break;
  
    case 173: /* record_delim_clause: RECORD DELIMITER is "STANDARD ALPHABET"  */
! #line 2255 "parse.y"
                  {
                    (yyval.select_clause).clause = record_delim_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 17972 "parse.cc"
      break;
  
    case 174: /* record_key_clause: RECORD key is name key_source  */
! #line 2262 "parse.y"
                  {
                    (yyval.select_clause).clause = record_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
--- 21202,21341 ----
  		              keyword_str((yyvsp[-1].number)) );
  		  }
                  }
! #line 21206 "parse.cc"
      break;
  
    case 149: /* lock_how: %empty  */
! #line 2312 "parse.y"
                         { (yyval.number) = 0; }
! #line 21212 "parse.cc"
      break;
  
    case 150: /* lock_how: with LOCK_ON multiple records  */
! #line 2313 "parse.y"
                                                { (yyval.number) = (yyvsp[-1].number); }
! #line 21218 "parse.cc"
      break;
  
    case 151: /* lock_mode: MANUAL  */
! #line 2315 "parse.y"
                            { (yyval.number) = MANUAL; }
! #line 21224 "parse.cc"
      break;
  
    case 152: /* lock_mode: RECORD  */
! #line 2316 "parse.y"
                            { (yyval.number) = RECORD; }
! #line 21230 "parse.cc"
      break;
  
    case 153: /* lock_mode: AUTOMATIC  */
! #line 2317 "parse.y"
                            { (yyval.number) = AUTOMATIC; }
! #line 21236 "parse.cc"
      break;
  
    case 154: /* multiple: %empty  */
! #line 2319 "parse.y"
                            { (yyval.number) = 0; }
! #line 21242 "parse.cc"
      break;
  
    case 155: /* multiple: MULTIPLE  */
! #line 2320 "parse.y"
                            { (yyval.number) = MULTIPLE; }
! #line 21248 "parse.cc"
      break;
  
    case 158: /* org_clause: org_clause1  */
! #line 2327 "parse.y"
                  {
                    (yyval.select_clause).clause = organization_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->org = static_cast<cbl_file_org_t>((yyvsp[0].number));
                  }
! #line 21258 "parse.cc"
      break;
  
    case 159: /* org_is: %empty  */
! #line 2333 "parse.y"
                                         { (yyval.number) = 0; }
! #line 21264 "parse.cc"
      break;
  
    case 160: /* org_is: ORGANIZATION is  */
! #line 2334 "parse.y"
                                         { (yyval.number) = 0; }
! #line 21270 "parse.cc"
      break;
  
    case 161: /* org_is: ORGANIZATION is RECORD  */
! #line 2335 "parse.y"
                                         { (yyval.number) = RECORD; }
! #line 21276 "parse.cc"
      break;
  
    case 162: /* org_is: RECORD  */
! #line 2336 "parse.y"
                                         { (yyval.number) = RECORD; }
! #line 21282 "parse.cc"
      break;
  
    case 163: /* org_clause1: org_is SEQUENTIAL  */
! #line 2339 "parse.y"
                                         {
                    (yyval.number) = (yyvsp[-1].number) == RECORD? file_line_sequential_e : file_sequential_e;
                  }
! #line 21290 "parse.cc"
      break;
  
    case 164: /* org_clause1: org_is LINE SEQUENTIAL  */
! #line 2343 "parse.y"
                  {
                    if( (yyvsp[-2].number) ) error_msg((yylsp[-1]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_line_sequential_e;
                  }
! #line 21299 "parse.cc"
      break;
  
    case 165: /* org_clause1: org_is RELATIVE  */
! #line 2347 "parse.y"
                                       {
                    if( (yyvsp[-1].number) ) error_msg((yylsp[0]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_relative_e;
                  }
! #line 21308 "parse.cc"
      break;
  
    case 166: /* org_clause1: org_is INDEXED  */
! #line 2351 "parse.y"
                                         { 
                    if( (yyvsp[-1].number) ) error_msg((yylsp[0]), "syntax error: invalid %<RECORD%>");
                    (yyval.number) = file_indexed_e;
                  }
! #line 21317 "parse.cc"
      break;
  
    case 167: /* padding_clause: PADDING character is padding_char  */
! #line 2362 "parse.y"
                  {
                    (yyval.select_clause).clause = padding_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 21326 "parse.cc"
      break;
  
    case 173: /* record_delim_clause: RECORD DELIMITER is "STANDARD ALPHABET"  */
! #line 2376 "parse.y"
                  {
                    (yyval.select_clause).clause = record_delim_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 21335 "parse.cc"
      break;
  
    case 174: /* record_key_clause: RECORD key is name key_source  */
! #line 2383 "parse.y"
                  {
                    (yyval.select_clause).clause = record_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
*************** yyreduce:
*** 17987,18070 ****
                                                        (yyvsp[0].fields)->fields, true);
                    }
                  }
! #line 17991 "parse.cc"
      break;
  
    case 175: /* relative_key_clause: KEY is name  */
! #line 2279 "parse.y"
                  { // lexer returns KEY for RELATIVE ... NAME
                    (yyval.select_clause).clause = relative_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->nkey = 1;
                    (yyval.select_clause).file->keys = new cbl_file_key_t(field_index((yyvsp[0].field)));
                  }
! #line 18002 "parse.cc"
      break;
  
    case 176: /* reserve_clause: RESERVE "numeric literal" reserve_area  */
! #line 2288 "parse.y"
                  {
                    (yyval.select_clause).clause = reserve_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 18011 "parse.cc"
      break;
  
    case 180: /* sharing_clause: SHARING with sharing_who  */
! #line 2299 "parse.y"
                  {
                    (yyval.select_clause).clause = sharing_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 18020 "parse.cc"
      break;
  
!   case 193: /* config_paragraph: "OBJECT COMPUTER" '.' NAME collating_sequence '.'  */
! #line 2323 "parse.y"
                  {
!                   if( (yyvsp[-1].string) ) {
!                     if( !current.collating_sequence((yyvsp[-1].string)) ) {
!                       error_msg((yylsp[-1]), "collating sequence already defined as '%s'",
!                                 current.collating_sequence());
!                       YYERROR;
                      }
                    }
                  }
! #line 18034 "parse.cc"
      break;
  
!   case 198: /* repo_member: repo_class  */
! #line 2340 "parse.y"
                  { cbl_unimplemented("CLASS"); }
! #line 18040 "parse.cc"
      break;
  
!   case 199: /* repo_member: repo_interface  */
! #line 2342 "parse.y"
                  { cbl_unimplemented("INTERFACE"); }
! #line 18046 "parse.cc"
      break;
  
!   case 202: /* repo_member: repo_property  */
! #line 2346 "parse.y"
                  { cbl_unimplemented("PROPERTY"); }
! #line 18052 "parse.cc"
      break;
  
!   case 204: /* repo_as: %empty  */
! #line 2351 "parse.y"
                              { (yyval.literal) = literal_t(); }
! #line 18058 "parse.cc"
      break;
  
!   case 205: /* repo_as: AS LITERAL  */
! #line 2352 "parse.y"
                              { (yyval.literal) = (yyvsp[0].literal); }
! #line 18064 "parse.cc"
      break;
  
!   case 209: /* repo_func: FUNCTION repo_func_names INTRINSIC  */
! #line 2361 "parse.y"
                                                               {
                    for( const auto& nameloc : *(yyvsp[-1].namelocs) ) {
                      if( 0 == intrinsic_token_of(nameloc.name) ) {
--- 21350,21441 ----
                                                        (yyvsp[0].fields)->fields, true);
                    }
                  }
! #line 21354 "parse.cc"
      break;
  
    case 175: /* relative_key_clause: KEY is name  */
! #line 2400 "parse.y"
                  { // lexer returns KEY for RELATIVE ... NAME
                    (yyval.select_clause).clause = relative_key_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                    (yyval.select_clause).file->nkey = 1;
                    (yyval.select_clause).file->keys = new cbl_file_key_t(field_index((yyvsp[0].field)));
                  }
! #line 21365 "parse.cc"
      break;
  
    case 176: /* reserve_clause: RESERVE "numeric literal" reserve_area  */
! #line 2409 "parse.y"
                  {
                    (yyval.select_clause).clause = reserve_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 21374 "parse.cc"
      break;
  
    case 180: /* sharing_clause: SHARING with sharing_who  */
! #line 2420 "parse.y"
                  {
                    (yyval.select_clause).clause = sharing_clause_e;
                    (yyval.select_clause).file = new cbl_file_t(protofile);
                  }
! #line 21383 "parse.cc"
      break;
  
!   case 189: /* config_paragraph: SPECIAL_NAMES '.' special_names '.'  */
! #line 2440 "parse.y"
                  {
!                   std::reverse_iterator<symbol_elem_t *>
!                                         p(symbols_end()),
!                                      pend(symbols_begin(PROGRAM));
!                   for( ++p; p != pend; p++ ) {
!                     if( p->type == SymAlphabet ) {
!                       const auto& alphabet = *cbl_alphabet_of(&*p);
!                       if( alphabet.encoding == no_encoding_e ) {
!                         assert(alphabet.locale != 0 );
!                         const auto& missing = *cbl_locale_of(symbol_at(alphabet.locale));
!                         error_msg(alphabet.loc,
!                           "ALPHABET %qs references LOCALE %qs, which is not defined",
!                                   alphabet.name, missing.name);
!                       }
                      }
                    }
                  }
! #line 21405 "parse.cc"
      break;
  
!   case 199: /* repo_member: repo_class  */
! #line 2470 "parse.y"
                  { cbl_unimplemented("CLASS"); }
! #line 21411 "parse.cc"
      break;
  
!   case 200: /* repo_member: repo_interface  */
! #line 2472 "parse.y"
                  { cbl_unimplemented("INTERFACE"); }
! #line 21417 "parse.cc"
      break;
  
!   case 203: /* repo_member: repo_property  */
! #line 2476 "parse.y"
                  { cbl_unimplemented("PROPERTY"); }
! #line 21423 "parse.cc"
      break;
  
!   case 205: /* repo_as: %empty  */
! #line 2481 "parse.y"
                              { (yyval.literal) = literal_t(); }
! #line 21429 "parse.cc"
      break;
  
!   case 206: /* repo_as: AS LITERAL  */
! #line 2482 "parse.y"
                              { (yyval.literal) = (yyvsp[0].literal); }
! #line 21435 "parse.cc"
      break;
  
!   case 210: /* repo_func: FUNCTION repo_func_names INTRINSIC  */
! #line 2491 "parse.y"
                                                               {
                    for( const auto& nameloc : *(yyvsp[-1].namelocs) ) {
                      if( 0 == intrinsic_token_of(nameloc.name) ) {
*************** yyreduce:
*** 18076,18094 ****
                      current.repository_add(nameloc.name);
                    }
                  }
! #line 18080 "parse.cc"
      break;
  
!   case 210: /* repo_func: FUNCTION ALL INTRINSIC  */
! #line 2373 "parse.y"
                  {
                    current.repository_add_all();
                  }
! #line 18088 "parse.cc"
      break;
  
!   case 211: /* repo_func: FUNCTION repo_func_names  */
! #line 2376 "parse.y"
                                                     {
  		  // We allow multiple names because GnuCOBOL does.  ISO says 1.
                    for( const auto& nameloc : *(yyvsp[0].namelocs) ) {
--- 21447,21465 ----
                      current.repository_add(nameloc.name);
                    }
                  }
! #line 21451 "parse.cc"
      break;
  
!   case 211: /* repo_func: FUNCTION ALL INTRINSIC  */
! #line 2503 "parse.y"
                  {
                    current.repository_add_all();
                  }
! #line 21459 "parse.cc"
      break;
  
!   case 212: /* repo_func: FUNCTION repo_func_names  */
! #line 2506 "parse.y"
                                                     {
  		  // We allow multiple names because GnuCOBOL does.  ISO says 1.
                    for( const auto& nameloc : *(yyvsp[0].namelocs) ) {
*************** yyreduce:
*** 18110,18150 ****
                      current.repository_add(symbol_index(e)); // add UDF to repository
                    }
                  }
! #line 18114 "parse.cc"
      break;
  
!   case 212: /* repo_func_names: repo_func_name  */
! #line 2399 "parse.y"
                                       {
                    (yyval.namelocs) = new cbl_namelocs_t(1, *(yyvsp[0].nameloc));
                    delete (yyvsp[0].nameloc);
                  }
! #line 18123 "parse.cc"
      break;
  
!   case 213: /* repo_func_names: repo_func_names repo_func_name  */
! #line 2403 "parse.y"
                                                       {
                    (yyval.namelocs) = (yyvsp[-1].namelocs);
                    (yyval.namelocs)->push_back(*(yyvsp[0].nameloc));
                    delete (yyvsp[0].nameloc);
                  }
! #line 18133 "parse.cc"
      break;
  
!   case 214: /* repo_func_name: NAME repo_as  */
! #line 2409 "parse.y"
                               {
                    if( ! (yyvsp[0].literal).empty() ) {
                      cbl_unimplemented_at((yylsp[0]), "%qs", (yyvsp[0].literal).data);
                    }
                    (yyval.nameloc) = new cbl_nameloc_t((yylsp[-1]), (yyvsp[-1].string));
                  }
! #line 18144 "parse.cc"
      break;
  
!   case 215: /* repo_program: "Program" NAME repo_as  */
! #line 2418 "parse.y"
                  {
                    size_t parent = 0;
                    auto program = symbol_label( PROGRAM, LblProgram, 0, (yyvsp[-1].string) );
--- 21481,21521 ----
                      current.repository_add(symbol_index(e)); // add UDF to repository
                    }
                  }
! #line 21485 "parse.cc"
      break;
  
!   case 213: /* repo_func_names: repo_func_name  */
! #line 2529 "parse.y"
                                       {
                    (yyval.namelocs) = new cbl_namelocs_t(1, *(yyvsp[0].nameloc));
                    delete (yyvsp[0].nameloc);
                  }
! #line 21494 "parse.cc"
      break;
  
!   case 214: /* repo_func_names: repo_func_names repo_func_name  */
! #line 2533 "parse.y"
                                                       {
                    (yyval.namelocs) = (yyvsp[-1].namelocs);
                    (yyval.namelocs)->push_back(*(yyvsp[0].nameloc));
                    delete (yyvsp[0].nameloc);
                  }
! #line 21504 "parse.cc"
      break;
  
!   case 215: /* repo_func_name: NAME repo_as  */
! #line 2539 "parse.y"
                               {
                    if( ! (yyvsp[0].literal).empty() ) {
                      cbl_unimplemented_at((yylsp[0]), "%qs", (yyvsp[0].literal).data);
                    }
                    (yyval.nameloc) = new cbl_nameloc_t((yylsp[-1]), (yyvsp[-1].string));
                  }
! #line 21515 "parse.cc"
      break;
  
!   case 216: /* repo_program: "Program" NAME repo_as  */
! #line 2548 "parse.y"
                  {
                    size_t parent = 0;
                    auto program = symbol_label( PROGRAM, LblProgram, 0, (yyvsp[-1].string) );
*************** yyreduce:
*** 18177,18264 ****
                    const auto e = symbol_field_add(PROGRAM, &prog);
                    symbol_field_location(symbol_index(e), (yylsp[-1]));
                  }
! #line 18181 "parse.cc"
      break;
  
    case 218: /* with_debug: with DEBUGGING MODE  */
! #line 2456 "parse.y"
                                      {
                    if( ! set_debug(true) ) {
                      error_msg((yylsp[-1]), "DEBUGGING MODE valid only in fixed format");
                    }
                  }
! #line 18191 "parse.cc"
      break;
  
!   case 219: /* collating_sequence: %empty  */
! #line 2463 "parse.y"
!                            { (yyval.string) = NULL; }
! #line 18197 "parse.cc"
      break;
  
!   case 220: /* collating_sequence: "Program" COLLATING SEQUENCE is NAME  */
! #line 2464 "parse.y"
!                                                             { (yyval.string) = (yyvsp[0].string); }
! #line 18203 "parse.cc"
      break;
  
!   case 221: /* collating_sequence: "Program" SEQUENCE is NAME  */
! #line 2465 "parse.y"
!                                                             { (yyval.string) = (yyvsp[0].string); }
! #line 18209 "parse.cc"
      break;
  
!   case 222: /* collating_sequence: COLLATING SEQUENCE is NAME  */
! #line 2466 "parse.y"
!                                                             { (yyval.string) = (yyvsp[0].string); }
! #line 18215 "parse.cc"
      break;
  
!   case 223: /* collating_sequence: SEQUENCE is NAME  */
! #line 2467 "parse.y"
!                                                             { (yyval.string) = (yyvsp[0].string); }
! #line 18221 "parse.cc"
      break;
  
!   case 228: /* special_name: ALPHABET NAME is alphabet_name  */
! #line 2478 "parse.y"
                  {
                    if( !(yyvsp[0].alphasym) ) YYERROR;
                    assert((yyvsp[0].alphasym)); // already in symbol table
                    if( !namcpy((yylsp[-2]), (yyvsp[0].alphasym)->name, (yyvsp[-2].string)) ) YYERROR;
                    if( yydebug ) (yyvsp[0].alphasym)->dump();
                  }
! #line 18232 "parse.cc"
      break;
  
!   case 229: /* special_name: CLASS NAME is domains  */
! #line 2485 "parse.y"
                  {
!                   struct cbl_field_t field = { 0,
!                     FldClass, FldInvalid, 0, 0, 0, 0, nonarray, (yylsp[-2]).first_line, "",
!                     0, cbl_field_t::linkage_t(),
! 		    {}, NULL };
                    if( !namcpy((yylsp[-2]), field.name, (yyvsp[-2].string)) ) YYERROR;
  
                    struct cbl_domain_t *domain =
                      new cbl_domain_t[ domains.size() + 1 ] ;
! 
                    std::copy(domains.begin(), domains.end(), domain);
  
!                   field.data.false_value_as((yyvsp[0].false_domain));
                    field.data.domain_as(domain);
!                   domains.clear();
  
                    if( field_add((yylsp[-2]), &field) == NULL ) {
                      dbgmsg("failed class");
                      YYERROR;
                    }
                  }
! #line 18258 "parse.cc"
      break;
  
!   case 230: /* special_name: CURRENCY sign is LITERAL with picture_sym  */
! #line 2507 "parse.y"
                  {
                  // The COBOL is "CURRENCY sign SYMBOL PICTURE symbol"
                  // In our processing, we flip the order, and refer to
--- 21548,21755 ----
                    const auto e = symbol_field_add(PROGRAM, &prog);
                    symbol_field_location(symbol_index(e), (yylsp[-1]));
                  }
! #line 21552 "parse.cc"
      break;
  
    case 218: /* with_debug: with DEBUGGING MODE  */
! #line 2585 "parse.y"
                                      {
                    if( ! set_debug(true) ) {
                      error_msg((yylsp[-1]), "DEBUGGING MODE valid only in fixed format");
                    }
                  }
! #line 21562 "parse.cc"
      break;
  
!   case 224: /* char_classification: character CLASSIFICATION char_class_locales  */
! #line 2600 "parse.y"
!                 {
!                   if( (yyvsp[0].char_class_locales).alpha ) {
!                     auto e = symbol_locale(PROGRAM, (yyvsp[0].char_class_locales).alpha);
!                     if( !e ) {
!                       error_msg((yylsp[0]), "no LOCALE defined as %qs", (yyvsp[0].char_class_locales).alpha);
!                     } else {
!                       auto& encoding = cbl_locale_of(e)->encoding;
!                       current.alpha_encoding(symbol_index(e), encoding);
!                     }
!                   }
!                   if( (yyvsp[0].char_class_locales).national ) {
!                     auto e = symbol_locale(PROGRAM, (yyvsp[0].char_class_locales).national);
!                     if( !e ) {
!                       error_msg((yylsp[0]), "no LOCALE defined as %qs", (yyvsp[0].char_class_locales).national);
!                     } else {
!                       auto& encoding = cbl_locale_of(e)->encoding;
!                       current.national_encoding(symbol_index(e), encoding);
!                     }
!                   }
!                 }
! #line 21587 "parse.cc"
      break;
  
!   case 225: /* collating_sequence: program_kw collating SEQUENCE char_class_locales  */
! #line 2623 "parse.y"
!                 {
!                   if( !current.collating_sequence((yyvsp[0].char_class_locales).alpha) ) {
!                     error_msg((yylsp[0]), "collating sequence already defined as '%s'",
!                               current.collating_sequence());
!                     YYERROR;
!                   }
!                 }
! #line 21599 "parse.cc"
      break;
  
!   case 226: /* char_class_locales: is NAME  */
! #line 2633 "parse.y"
!                               {
!                   (yyval.char_class_locales).alpha = (yyvsp[0].string);
!                   (yyval.char_class_locales).national = nullptr;
!                 }
! #line 21608 "parse.cc"
      break;
  
!   case 227: /* char_class_locales: coll_alphanats  */
! #line 2637 "parse.y"
!                                { (yyval.char_class_locales) = (yyvsp[0].char_class_locales); }
! #line 21614 "parse.cc"
      break;
  
!   case 228: /* coll_alphanats: coll_alphanat  */
! #line 2639 "parse.y"
!                                         {
!                   (yyval.char_class_locales) = coll_alphanat_t();
!                   const char **pname =
!                     (yyvsp[0].collating_name).token == ALPHANUMERIC? &(yyval.char_class_locales).alpha : &(yyval.char_class_locales).national;
!                   *pname = (yyvsp[0].collating_name).name;
!                 }
! #line 21625 "parse.cc"
      break;
  
!   case 229: /* coll_alphanats: coll_alphanats coll_alphanat  */
! #line 2646 "parse.y"
!                 {
!                   const char **pname =
!                     (yyvsp[0].collating_name).token == ALPHANUMERIC? &(yyval.char_class_locales).alpha : &(yyval.char_class_locales).national;
!                   if( *pname ) {
!                     error_msg((yylsp[0]),
!                               "%qs is repeated", keyword_str((yyvsp[0].collating_name).token));
!                   }
!                   *pname = (yyvsp[0].collating_name).name;
!                 }
! #line 21639 "parse.cc"
!     break;
! 
!   case 230: /* coll_alphanat: for alphanational is locale_phrase  */
! #line 2656 "parse.y"
!                                                            {
!                   (yyval.collating_name).token = (yyvsp[-2].number);
!                   (yyval.collating_name).name = (yyvsp[0].locale_phrase).name;
!                   if( ! (yyvsp[0].locale_phrase).name ) {
!                     const char *locale_name = "???";
!                     switch((yyvsp[0].locale_phrase).locale_type) {
!                       case 'L': locale_name = "LOCALE"; break;
!                       case 'D': locale_name = "DEFAULT"; break;
!                       case 'S': locale_name = "SYSTEM-DEFAULT"; break;
!                       case 'U': locale_name = "USER-DEFAULT"; break;
!                     }
!                     cbl_unimplemented("FOR %s IS %s",
!                                       keyword_str((yyval.collating_name).token),
!                                       locale_name);
!                   }
!                 }
! #line 21660 "parse.cc"
!     break;
! 
!   case 231: /* locale_phrase: NAME  */
! #line 2674 "parse.y"
!                         { (yyval.locale_phrase).name = (yyvsp[0].string);      (yyval.locale_phrase).locale_type = '\0'; }
! #line 21666 "parse.cc"
!     break;
! 
!   case 232: /* locale_phrase: LOCALE  */
! #line 2675 "parse.y"
!                         { (yyval.locale_phrase).name = nullptr; (yyval.locale_phrase).locale_type = 'L'; }
! #line 21672 "parse.cc"
!     break;
! 
!   case 233: /* locale_phrase: DEFAULT  */
! #line 2676 "parse.y"
!                         { (yyval.locale_phrase).name = nullptr; (yyval.locale_phrase).locale_type = (yyvsp[0].number); }
! #line 21678 "parse.cc"
!     break;
! 
!   case 237: /* special_name: ALPHABET NAME is alphabet_name  */
! #line 2685 "parse.y"
                  {
                    if( !(yyvsp[0].alphasym) ) YYERROR;
                    assert((yyvsp[0].alphasym)); // already in symbol table
                    if( !namcpy((yylsp[-2]), (yyvsp[0].alphasym)->name, (yyvsp[-2].string)) ) YYERROR;
                    if( yydebug ) (yyvsp[0].alphasym)->dump();
                  }
! #line 21689 "parse.cc"
      break;
  
!   case 238: /* special_name: ALPHABET NAME for alphanational is alphabet_name  */
! #line 2692 "parse.y"
                  {
!                   if( !(yyvsp[0].alphasym) ) YYERROR;
!                   assert((yyvsp[0].alphasym)); // already in symbol table
!                   if( !namcpy((yylsp[-4]), (yyvsp[0].alphasym)->name, (yyvsp[-4].string)) ) YYERROR;
!                   if( yydebug ) (yyvsp[0].alphasym)->dump();
!                   const size_t isym = symbol_index(symbol_elem_of((yyvsp[0].alphasym)));
!                   switch((yyvsp[-2].number)) {
!                   case ALPHANUMERIC:
!                     current.alpha_encoding(isym, (yyvsp[0].alphasym)->encoding);
!                     break;
!                   case NATIONAL:
!                     current.national_encoding(isym, (yyvsp[0].alphasym)->encoding);
!                     break;
!                   default: gcc_unreachable();
!                   }
!                 }
! #line 21710 "parse.cc"
!     break;
! 
!   case 239: /* special_name: CLASS NAME is domains  */
! #line 2709 "parse.y"
!                 {
!                   struct cbl_field_t field = { FldClass, 0, {}, 0, (yyvsp[-2].string) };
                    if( !namcpy((yylsp[-2]), field.name, (yyvsp[-2].string)) ) YYERROR;
  
+                   assert( ! domains.empty() );
+                   auto encoding = domains.front().encoding;
+ 
                    struct cbl_domain_t *domain =
                      new cbl_domain_t[ domains.size() + 1 ] ;
!                   auto p = std::find_if( domains.begin(), domains.end(),
!                                          [enc = encoding]
!                                          ( const auto& dom ) {
!                                            return ! dom.encoding_ok(enc);
!                                          } );
!                   if( p != domains.end() ) {
!                     error_msg( (yylsp[0]), "%qs has encoding %qs "
!                                "but value %qs has encoding %qs",
!                                (yyvsp[-2].string), 
!                                current_t::cbl_encoding_str(domains.front().encoding),
!                                p->first.name(), 
!                                current_t::cbl_encoding_str(p->encoding) );
!                   }
                    std::copy(domains.begin(), domains.end(), domain);
+                   domains.clear();
  
!                   field.data.false_value_as((yyvsp[0].false_domain).domain);
                    field.data.domain_as(domain);
!                   field.codeset.set(encoding);
  
                    if( field_add((yylsp[-2]), &field) == NULL ) {
                      dbgmsg("failed class");
                      YYERROR;
                    }
                  }
! #line 21749 "parse.cc"
      break;
  
!   case 240: /* special_name: CURRENCY sign is LITERAL with picture_sym  */
! #line 2744 "parse.y"
                  {
                  // The COBOL is "CURRENCY sign SYMBOL PICTURE symbol"
                  // In our processing, we flip the order, and refer to
*************** yyreduce:
*** 18271,18318 ****
                    }
                  symbol_currency_add( (yyvsp[0].string), (yyvsp[-2].literal).data );
                  }
! #line 18275 "parse.cc"
      break;
  
!   case 231: /* special_name: DECIMAL_POINT is COMMA  */
! #line 2520 "parse.y"
                  {
                    symbol_decimal_point_set(',');
                  }
! #line 18283 "parse.cc"
      break;
  
!   case 232: /* special_name: LOCALE NAME is locale_spec  */
! #line 2524 "parse.y"
                  {
!                   current.locale((yyvsp[-2].string), (yyvsp[0].string));
!                   cbl_unimplemented("LOCALE syntax");
                  }
! #line 18292 "parse.cc"
      break;
  
!   case 234: /* special_name: SYMBOLIC characters symbolic is_alphabet  */
! #line 2531 "parse.y"
                  {
                    cbl_unimplemented("SYMBOLIC syntax");
                  }
! #line 18300 "parse.cc"
      break;
  
!   case 235: /* locale_spec: NAME  */
! #line 2535 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); }
! #line 18306 "parse.cc"
      break;
  
!   case 236: /* locale_spec: LITERAL  */
! #line 2536 "parse.y"
                          { (yyval.string) = string_of((yyvsp[0].literal)); }
! #line 18312 "parse.cc"
      break;
  
!   case 241: /* dev_mnemonic: device_name is NAME  */
! #line 2547 "parse.y"
                  {
                    cbl_special_name_t special = { (yyvsp[-2].special_type).token, (yyvsp[-2].special_type).id };
                    if( !namcpy((yylsp[0]), special.name, (yyvsp[0].string)) ) YYERROR;
--- 21762,21831 ----
                    }
                  symbol_currency_add( (yyvsp[0].string), (yyvsp[-2].literal).data );
                  }
! #line 21766 "parse.cc"
      break;
  
!   case 241: /* special_name: DECIMAL_POINT is COMMA  */
! #line 2757 "parse.y"
                  {
                    symbol_decimal_point_set(',');
                  }
! #line 21774 "parse.cc"
      break;
  
!   case 242: /* special_name: LOCALE NAME is locale_spec  */
! #line 2761 "parse.y"
                  {
!                   cbl_locale_t locale((yyvsp[-2].string), (yyvsp[0].string));
!                   if( locale.encoding == no_encoding_e ) {
!                     error_msg((yylsp[-2]), "invalid iconv LOCALE name %qs", (yyvsp[0].string));
!                     YYERROR;
!                   }
!                   if( locale.encoding == UTF8_e ) {
!                     cbl_unimplemented("UTF-8");
!                     YYERROR; 
!                   }
!                   if( ! current.locale_add(locale) ) {
!                     error_msg((yylsp[-2]), "%qs already defined as LOCALE name", (yyvsp[-2].string));
!                   }
                  }
! #line 21793 "parse.cc"
      break;
  
!   case 244: /* special_name: SYMBOLIC characters symbolic is_alphabet  */
! #line 2778 "parse.y"
                  {
                    cbl_unimplemented("SYMBOLIC syntax");
                  }
! #line 21801 "parse.cc"
      break;
  
!   case 245: /* locale_spec: NAME  */
! #line 2782 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); }
! #line 21807 "parse.cc"
      break;
  
!   case 246: /* locale_spec: "UTF-8"  */
! #line 2783 "parse.y"
!                         { static char s[] ="UTF-8";  (yyval.string) = s; }
! #line 21813 "parse.cc"
!     break;
! 
!   case 247: /* locale_spec: "UTF-16"  */
! #line 2784 "parse.y"
!                         { static char s[] ="UTF-16"; (yyval.string) = s; }
! #line 21819 "parse.cc"
!     break;
! 
!   case 248: /* locale_spec: LITERAL  */
! #line 2785 "parse.y"
                          { (yyval.string) = string_of((yyvsp[0].literal)); }
! #line 21825 "parse.cc"
      break;
  
!   case 253: /* dev_mnemonic: device_name is NAME  */
! #line 2796 "parse.y"
                  {
                    cbl_special_name_t special = { (yyvsp[-2].special_type).token, (yyvsp[-2].special_type).id };
                    if( !namcpy((yylsp[0]), special.name, (yyvsp[0].string)) ) YYERROR;
*************** yyreduce:
*** 18339,18349 ****
  
                    symbol_special_add(PROGRAM, &special);
                  }
! #line 18343 "parse.cc"
      break;
  
!   case 242: /* dev_mnemonic: NAME is NAME  */
! #line 2574 "parse.y"
                  {
  		  auto p = cmd_or_env_special_of((yyvsp[-2].string));
  		  if( !p ) {
--- 21852,21862 ----
  
                    symbol_special_add(PROGRAM, &special);
                  }
! #line 21856 "parse.cc"
      break;
  
!   case 254: /* dev_mnemonic: NAME is NAME  */
! #line 2823 "parse.y"
                  {
  		  auto p = cmd_or_env_special_of((yyvsp[-2].string));
  		  if( !p ) {
*************** yyreduce:
*** 18356,18582 ****
  
                    symbol_special_add(PROGRAM, &special);
  		}
! #line 18360 "parse.cc"
      break;
  
!   case 243: /* device_name: SYSIN  */
! #line 2588 "parse.y"
                                  { (yyval.special_type).token = SYSIN; (yyval.special_type).id = SYSIN_e; }
! #line 18366 "parse.cc"
      break;
  
!   case 244: /* device_name: SYSIPT  */
! #line 2589 "parse.y"
                                  { (yyval.special_type).token = SYSIPT; (yyval.special_type).id = SYSIPT_e; }
! #line 18372 "parse.cc"
      break;
  
!   case 245: /* device_name: SYSOUT  */
! #line 2590 "parse.y"
                                  { (yyval.special_type).token = SYSOUT; (yyval.special_type).id = SYSOUT_e; }
! #line 18378 "parse.cc"
      break;
  
!   case 246: /* device_name: SYSLIST  */
! #line 2591 "parse.y"
                                  { (yyval.special_type).token = SYSLIST; (yyval.special_type).id = SYSLIST_e; }
! #line 18384 "parse.cc"
      break;
  
!   case 247: /* device_name: SYSLST  */
! #line 2592 "parse.y"
                                  { (yyval.special_type).token = SYSLST; (yyval.special_type).id = SYSLST_e; }
! #line 18390 "parse.cc"
      break;
  
!   case 248: /* device_name: SYSPUNCH  */
! #line 2593 "parse.y"
                                  { (yyval.special_type).token = SYSPUNCH; (yyval.special_type).id = SYSPUNCH_e; }
! #line 18396 "parse.cc"
      break;
  
!   case 249: /* device_name: SYSPCH  */
! #line 2594 "parse.y"
                                  { (yyval.special_type).token = SYSPCH; (yyval.special_type).id = SYSPCH_e; }
! #line 18402 "parse.cc"
      break;
  
!   case 250: /* device_name: CONSOLE  */
! #line 2595 "parse.y"
                                  { (yyval.special_type).token = CONSOLE; (yyval.special_type).id = CONSOLE_e; }
! #line 18408 "parse.cc"
      break;
  
!   case 251: /* device_name: C01  */
! #line 2596 "parse.y"
                                  { (yyval.special_type).token = C01; (yyval.special_type).id = C01_e; }
! #line 18414 "parse.cc"
      break;
  
!   case 252: /* device_name: C02  */
! #line 2597 "parse.y"
                                  { (yyval.special_type).token = C02; (yyval.special_type).id = C02_e; }
! #line 18420 "parse.cc"
      break;
  
!   case 253: /* device_name: C03  */
! #line 2598 "parse.y"
                                  { (yyval.special_type).token = C03; (yyval.special_type).id = C03_e; }
! #line 18426 "parse.cc"
      break;
  
!   case 254: /* device_name: C04  */
! #line 2599 "parse.y"
                                  { (yyval.special_type).token = C04; (yyval.special_type).id = C04_e; }
! #line 18432 "parse.cc"
      break;
  
!   case 255: /* device_name: C05  */
! #line 2600 "parse.y"
                                  { (yyval.special_type).token = C05; (yyval.special_type).id = C05_e; }
! #line 18438 "parse.cc"
      break;
  
!   case 256: /* device_name: C06  */
! #line 2601 "parse.y"
                                  { (yyval.special_type).token = C06; (yyval.special_type).id = C06_e; }
! #line 18444 "parse.cc"
      break;
  
!   case 257: /* device_name: C07  */
! #line 2602 "parse.y"
                                  { (yyval.special_type).token = C07; (yyval.special_type).id = C07_e; }
! #line 18450 "parse.cc"
      break;
  
!   case 258: /* device_name: C08  */
! #line 2603 "parse.y"
                                  { (yyval.special_type).token = C08; (yyval.special_type).id = C08_e; }
! #line 18456 "parse.cc"
      break;
  
!   case 259: /* device_name: C09  */
! #line 2604 "parse.y"
                                  { (yyval.special_type).token = C09; (yyval.special_type).id = C09_e; }
! #line 18462 "parse.cc"
      break;
  
!   case 260: /* device_name: C10  */
! #line 2605 "parse.y"
                                  { (yyval.special_type).token = C10; (yyval.special_type).id = C10_e; }
! #line 18468 "parse.cc"
      break;
  
!   case 261: /* device_name: C11  */
! #line 2606 "parse.y"
                                  { (yyval.special_type).token = C11; (yyval.special_type).id = C11_e; }
! #line 18474 "parse.cc"
      break;
  
!   case 262: /* device_name: C12  */
! #line 2607 "parse.y"
                                  { (yyval.special_type).token = C12; (yyval.special_type).id = C12_e; }
! #line 18480 "parse.cc"
      break;
  
!   case 263: /* device_name: CSP  */
! #line 2608 "parse.y"
                                  { (yyval.special_type).token = CSP; (yyval.special_type).id = CSP_e; }
! #line 18486 "parse.cc"
      break;
  
!   case 264: /* device_name: S01  */
! #line 2609 "parse.y"
                                  { (yyval.special_type).token = S01; (yyval.special_type).id = S01_e; }
! #line 18492 "parse.cc"
      break;
  
!   case 265: /* device_name: S02  */
! #line 2610 "parse.y"
                                  { (yyval.special_type).token = S02; (yyval.special_type).id = S02_e; }
! #line 18498 "parse.cc"
      break;
  
!   case 266: /* device_name: S03  */
! #line 2611 "parse.y"
                                  { (yyval.special_type).token = S03; (yyval.special_type).id = S03_e; }
! #line 18504 "parse.cc"
      break;
  
!   case 267: /* device_name: S04  */
! #line 2612 "parse.y"
                                  { (yyval.special_type).token = S04; (yyval.special_type).id = S04_e; }
! #line 18510 "parse.cc"
      break;
  
!   case 268: /* device_name: S05  */
! #line 2613 "parse.y"
                                  { (yyval.special_type).token = S05; (yyval.special_type).id = S05_e; }
! #line 18516 "parse.cc"
      break;
  
!   case 269: /* device_name: "AFP 5A"  */
! #line 2614 "parse.y"
                                  { (yyval.special_type).token = AFP_5A; (yyval.special_type).id = AFP_5A_e; }
! #line 18522 "parse.cc"
      break;
  
!   case 270: /* device_name: STDIN  */
! #line 2615 "parse.y"
                                  { (yyval.special_type).token = STDIN; (yyval.special_type).id = STDIN_e; }
! #line 18528 "parse.cc"
      break;
  
!   case 271: /* device_name: STDOUT  */
! #line 2616 "parse.y"
                                  { (yyval.special_type).token = STDOUT; (yyval.special_type).id = STDOUT_e; }
! #line 18534 "parse.cc"
      break;
  
!   case 272: /* device_name: STDERR  */
! #line 2617 "parse.y"
                                  { (yyval.special_type).token = STDERR; (yyval.special_type).id = STDERR_e; }
! #line 18540 "parse.cc"
      break;
  
!   case 273: /* alphabet_name: "STANDARD ALPHABET"  */
! #line 2624 "parse.y"
!                                    { (yyval.alphasym) = alphabet_add((yylsp[0]), ASCII_e); }
! #line 18546 "parse.cc"
      break;
  
!   case 274: /* alphabet_name: NATIVE  */
! #line 2625 "parse.y"
                                     { (yyval.alphasym) = alphabet_add((yylsp[0]), EBCDIC_e); }
! #line 18552 "parse.cc"
      break;
  
!   case 275: /* alphabet_name: EBCDIC  */
! #line 2626 "parse.y"
                                     { (yyval.alphasym) = alphabet_add((yylsp[0]), EBCDIC_e); }
! #line 18558 "parse.cc"
      break;
  
!   case 276: /* alphabet_name: alphabet_seqs  */
! #line 2628 "parse.y"
                  {
                    (yyval.alphasym) = cbl_alphabet_of(symbol_alphabet_add(PROGRAM, (yyvsp[0].alphasym)));
                  }
! #line 18566 "parse.cc"
      break;
  
!   case 277: /* alphabet_name: error  */
! #line 2632 "parse.y"
                  {
                    error_msg((yylsp[0]), "code-name-1 may be STANDARD-1, STANDARD-2, "
                              "NATIVE, OR EBCDIC");
                    (yyval.alphasym) = NULL;
                  }
! #line 18576 "parse.cc"
      break;
  
!   case 278: /* alphabet_seqs: alphabet_seq  */
! #line 2645 "parse.y"
                  {
                    (yyval.alphasym) = new cbl_alphabet_t((yylsp[0]), custom_encoding_e);
  
--- 21869,22111 ----
  
                    symbol_special_add(PROGRAM, &special);
  		}
! #line 21873 "parse.cc"
      break;
  
!   case 255: /* device_name: SYSIN  */
! #line 2837 "parse.y"
                                  { (yyval.special_type).token = SYSIN; (yyval.special_type).id = SYSIN_e; }
! #line 21879 "parse.cc"
      break;
  
!   case 256: /* device_name: SYSIPT  */
! #line 2838 "parse.y"
                                  { (yyval.special_type).token = SYSIPT; (yyval.special_type).id = SYSIPT_e; }
! #line 21885 "parse.cc"
      break;
  
!   case 257: /* device_name: SYSOUT  */
! #line 2839 "parse.y"
                                  { (yyval.special_type).token = SYSOUT; (yyval.special_type).id = SYSOUT_e; }
! #line 21891 "parse.cc"
      break;
  
!   case 258: /* device_name: SYSLIST  */
! #line 2840 "parse.y"
                                  { (yyval.special_type).token = SYSLIST; (yyval.special_type).id = SYSLIST_e; }
! #line 21897 "parse.cc"
      break;
  
!   case 259: /* device_name: SYSLST  */
! #line 2841 "parse.y"
                                  { (yyval.special_type).token = SYSLST; (yyval.special_type).id = SYSLST_e; }
! #line 21903 "parse.cc"
      break;
  
!   case 260: /* device_name: SYSPUNCH  */
! #line 2842 "parse.y"
                                  { (yyval.special_type).token = SYSPUNCH; (yyval.special_type).id = SYSPUNCH_e; }
! #line 21909 "parse.cc"
      break;
  
!   case 261: /* device_name: SYSPCH  */
! #line 2843 "parse.y"
                                  { (yyval.special_type).token = SYSPCH; (yyval.special_type).id = SYSPCH_e; }
! #line 21915 "parse.cc"
      break;
  
!   case 262: /* device_name: CONSOLE  */
! #line 2844 "parse.y"
                                  { (yyval.special_type).token = CONSOLE; (yyval.special_type).id = CONSOLE_e; }
! #line 21921 "parse.cc"
      break;
  
!   case 263: /* device_name: C01  */
! #line 2845 "parse.y"
                                  { (yyval.special_type).token = C01; (yyval.special_type).id = C01_e; }
! #line 21927 "parse.cc"
      break;
  
!   case 264: /* device_name: C02  */
! #line 2846 "parse.y"
                                  { (yyval.special_type).token = C02; (yyval.special_type).id = C02_e; }
! #line 21933 "parse.cc"
      break;
  
!   case 265: /* device_name: C03  */
! #line 2847 "parse.y"
                                  { (yyval.special_type).token = C03; (yyval.special_type).id = C03_e; }
! #line 21939 "parse.cc"
      break;
  
!   case 266: /* device_name: C04  */
! #line 2848 "parse.y"
                                  { (yyval.special_type).token = C04; (yyval.special_type).id = C04_e; }
! #line 21945 "parse.cc"
      break;
  
!   case 267: /* device_name: C05  */
! #line 2849 "parse.y"
                                  { (yyval.special_type).token = C05; (yyval.special_type).id = C05_e; }
! #line 21951 "parse.cc"
      break;
  
!   case 268: /* device_name: C06  */
! #line 2850 "parse.y"
                                  { (yyval.special_type).token = C06; (yyval.special_type).id = C06_e; }
! #line 21957 "parse.cc"
      break;
  
!   case 269: /* device_name: C07  */
! #line 2851 "parse.y"
                                  { (yyval.special_type).token = C07; (yyval.special_type).id = C07_e; }
! #line 21963 "parse.cc"
      break;
  
!   case 270: /* device_name: C08  */
! #line 2852 "parse.y"
                                  { (yyval.special_type).token = C08; (yyval.special_type).id = C08_e; }
! #line 21969 "parse.cc"
      break;
  
!   case 271: /* device_name: C09  */
! #line 2853 "parse.y"
                                  { (yyval.special_type).token = C09; (yyval.special_type).id = C09_e; }
! #line 21975 "parse.cc"
      break;
  
!   case 272: /* device_name: C10  */
! #line 2854 "parse.y"
                                  { (yyval.special_type).token = C10; (yyval.special_type).id = C10_e; }
! #line 21981 "parse.cc"
      break;
  
!   case 273: /* device_name: C11  */
! #line 2855 "parse.y"
                                  { (yyval.special_type).token = C11; (yyval.special_type).id = C11_e; }
! #line 21987 "parse.cc"
      break;
  
!   case 274: /* device_name: C12  */
! #line 2856 "parse.y"
                                  { (yyval.special_type).token = C12; (yyval.special_type).id = C12_e; }
! #line 21993 "parse.cc"
      break;
  
!   case 275: /* device_name: CSP  */
! #line 2857 "parse.y"
                                  { (yyval.special_type).token = CSP; (yyval.special_type).id = CSP_e; }
! #line 21999 "parse.cc"
      break;
  
!   case 276: /* device_name: S01  */
! #line 2858 "parse.y"
                                  { (yyval.special_type).token = S01; (yyval.special_type).id = S01_e; }
! #line 22005 "parse.cc"
      break;
  
!   case 277: /* device_name: S02  */
! #line 2859 "parse.y"
                                  { (yyval.special_type).token = S02; (yyval.special_type).id = S02_e; }
! #line 22011 "parse.cc"
      break;
  
!   case 278: /* device_name: S03  */
! #line 2860 "parse.y"
                                  { (yyval.special_type).token = S03; (yyval.special_type).id = S03_e; }
! #line 22017 "parse.cc"
      break;
  
!   case 279: /* device_name: S04  */
! #line 2861 "parse.y"
                                  { (yyval.special_type).token = S04; (yyval.special_type).id = S04_e; }
! #line 22023 "parse.cc"
      break;
  
!   case 280: /* device_name: S05  */
! #line 2862 "parse.y"
                                  { (yyval.special_type).token = S05; (yyval.special_type).id = S05_e; }
! #line 22029 "parse.cc"
      break;
  
!   case 281: /* device_name: "AFP 5A"  */
! #line 2863 "parse.y"
                                  { (yyval.special_type).token = AFP_5A; (yyval.special_type).id = AFP_5A_e; }
! #line 22035 "parse.cc"
      break;
  
!   case 282: /* device_name: STDIN  */
! #line 2864 "parse.y"
                                  { (yyval.special_type).token = STDIN; (yyval.special_type).id = STDIN_e; }
! #line 22041 "parse.cc"
      break;
  
!   case 283: /* device_name: STDOUT  */
! #line 2865 "parse.y"
                                  { (yyval.special_type).token = STDOUT; (yyval.special_type).id = STDOUT_e; }
! #line 22047 "parse.cc"
      break;
  
!   case 284: /* device_name: STDERR  */
! #line 2866 "parse.y"
                                  { (yyval.special_type).token = STDERR; (yyval.special_type).id = STDERR_e; }
! #line 22053 "parse.cc"
      break;
  
!   case 285: /* alphabet_name: "STANDARD ALPHABET"  */
! #line 2873 "parse.y"
!                                    { (yyval.alphasym) = alphabet_add((yylsp[0]), CP1252_e); }
! #line 22059 "parse.cc"
      break;
  
!   case 286: /* alphabet_name: NATIVE  */
! #line 2874 "parse.y"
                                     { (yyval.alphasym) = alphabet_add((yylsp[0]), EBCDIC_e); }
! #line 22065 "parse.cc"
      break;
  
!   case 287: /* alphabet_name: EBCDIC  */
! #line 2875 "parse.y"
                                     { (yyval.alphasym) = alphabet_add((yylsp[0]), EBCDIC_e); }
! #line 22071 "parse.cc"
      break;
  
!   case 288: /* alphabet_name: LOCALE locale_name  */
! #line 2877 "parse.y"
!                 {
!                   auto e = symbol_locale(PROGRAM, (yyvsp[0].string));                  
!                   if( !e ) {
!                     dbgmsg("no such LOCALE yet %s", (yyvsp[0].string));
!                     cbl_locale_t locale((yyvsp[0].string)); // locale is named but not defined 
!                     e = symbol_locale_add(PROGRAM, &locale); 
!                   } 
!                   cbl_alphabet_t alphabet( (yylsp[0]), symbol_index(e), (yyvsp[0].string));
!                   (yyval.alphasym) = alphabet_add(alphabet);
!                 }
! #line 22086 "parse.cc"
!     break;
! 
!   case 289: /* alphabet_name: alphabet_seqs  */
! #line 2888 "parse.y"
                  {
+                   (yyvsp[0].alphasym)->reencode();
                    (yyval.alphasym) = cbl_alphabet_of(symbol_alphabet_add(PROGRAM, (yyvsp[0].alphasym)));
                  }
! #line 22095 "parse.cc"
      break;
  
!   case 290: /* alphabet_name: error  */
! #line 2893 "parse.y"
                  {
                    error_msg((yylsp[0]), "code-name-1 may be STANDARD-1, STANDARD-2, "
                              "NATIVE, OR EBCDIC");
                    (yyval.alphasym) = NULL;
                  }
! #line 22105 "parse.cc"
      break;
  
!   case 291: /* alphabet_seqs: alphabet_seq  */
! #line 2906 "parse.y"
                  {
                    (yyval.alphasym) = new cbl_alphabet_t((yylsp[0]), custom_encoding_e);
  
*************** yyreduce:
*** 18591,18601 ****
                    (yyval.alphasym)->add_interval((yylsp[0]), (yyvsp[0].colseq).low[--len], (yyvsp[0].colseq).high[0]);
                    (yyval.alphasym)->add_sequence((yylsp[0]), (yyvsp[0].colseq).high);
                  }
! #line 18595 "parse.cc"
      break;
  
!   case 279: /* alphabet_seqs: alphabet_seqs alphabet_seq  */
! #line 2660 "parse.y"
                  {
                    // ALSO x'00' is valid, but in that case the low pointer is NULL
                    if( !(yyvsp[0].colseq).low ) {
--- 22120,22130 ----
                    (yyval.alphasym)->add_interval((yylsp[0]), (yyvsp[0].colseq).low[--len], (yyvsp[0].colseq).high[0]);
                    (yyval.alphasym)->add_sequence((yylsp[0]), (yyvsp[0].colseq).high);
                  }
! #line 22124 "parse.cc"
      break;
  
!   case 292: /* alphabet_seqs: alphabet_seqs alphabet_seq  */
! #line 2921 "parse.y"
                  {
                    // ALSO x'00' is valid, but in that case the low pointer is NULL
                    if( !(yyvsp[0].colseq).low ) {
*************** yyreduce:
*** 18608,18618 ****
                      (yyval.alphasym)->add_sequence((yylsp[0]), (yyvsp[0].colseq).high);
                    }
                  }
! #line 18612 "parse.cc"
      break;
  
!   case 280: /* alphabet_seq: alphabet_lit  */
! #line 2674 "parse.y"
                  {
                    (yyval.colseq).also = 0;
                    if( (yyvsp[0].literal).len == 1 && (yyvsp[0].literal).data[0] == '\0' ) {
--- 22137,22147 ----
                      (yyval.alphasym)->add_sequence((yylsp[0]), (yyvsp[0].colseq).high);
                    }
                  }
! #line 22141 "parse.cc"
      break;
  
!   case 293: /* alphabet_seq: alphabet_lit  */
! #line 2935 "parse.y"
                  {
                    (yyval.colseq).also = 0;
                    if( (yyvsp[0].literal).len == 1 && (yyvsp[0].literal).data[0] == '\0' ) {
*************** yyreduce:
*** 18625,18635 ****
                      assert((yyval.colseq).high[0] == '\0');
                    }
                  }
! #line 18629 "parse.cc"
      break;
  
!   case 281: /* alphabet_seq: alphabet_lit THRU alphabet_lit  */
! #line 2687 "parse.y"
                  {
                    (yyval.colseq).also = 0;
                    size_t size = 1 + (yyvsp[-2].literal).len;
--- 22154,22164 ----
                      assert((yyval.colseq).high[0] == '\0');
                    }
                  }
! #line 22158 "parse.cc"
      break;
  
!   case 294: /* alphabet_seq: alphabet_lit THRU alphabet_lit  */
! #line 2948 "parse.y"
                  {
                    (yyval.colseq).also = 0;
                    size_t size = 1 + (yyvsp[-2].literal).len;
*************** yyreduce:
*** 18645,18661 ****
                    (yyval.colseq).high = new unsigned char[size];
                    memcpy((yyval.colseq).high, (yyvsp[0].literal).data, size);
                  }
! #line 18649 "parse.cc"
      break;
  
!   case 282: /* alphabet_seq: ALSO alphabet_etc  */
! #line 2702 "parse.y"
                                    { (yyval.colseq) = {}; (yyval.colseq).also = (yyvsp[0].number); }
! #line 18655 "parse.cc"
      break;
  
!   case 283: /* alphabet_etc: alphabet_lit  */
! #line 2705 "parse.y"
                  {
                    if( (yyvsp[0].literal).len > 1 ) {
                      error_msg((yylsp[0]), "%qs can be only a single letter", (yyvsp[0].literal).data);
--- 22174,22190 ----
                    (yyval.colseq).high = new unsigned char[size];
                    memcpy((yyval.colseq).high, (yyvsp[0].literal).data, size);
                  }
! #line 22178 "parse.cc"
      break;
  
!   case 295: /* alphabet_seq: ALSO alphabet_etc  */
! #line 2963 "parse.y"
                                    { (yyval.colseq) = {}; (yyval.colseq).also = (yyvsp[0].number); }
! #line 22184 "parse.cc"
      break;
  
!   case 296: /* alphabet_etc: alphabet_lit  */
! #line 2966 "parse.y"
                  {
                    if( (yyvsp[0].literal).len > 1 ) {
                      error_msg((yylsp[0]), "%qs can be only a single letter", (yyvsp[0].literal).data);
*************** yyreduce:
*** 18663,18673 ****
                    }
                    (yyval.number) = (unsigned char)(yyvsp[0].literal).data[0];
                  }
! #line 18667 "parse.cc"
      break;
  
!   case 284: /* alphabet_etc: spaces_etc  */
! #line 2712 "parse.y"
                             {
                    // For figurative constants, pass the symbol table index,
                    // marked with the high bit.
--- 22192,22202 ----
                    }
                    (yyval.number) = (unsigned char)(yyvsp[0].literal).data[0];
                  }
! #line 22196 "parse.cc"
      break;
  
!   case 297: /* alphabet_etc: spaces_etc  */
! #line 2973 "parse.y"
                             {
                    // For figurative constants, pass the symbol table index,
                    // marked with the high bit.
*************** yyreduce:
*** 18678,18703 ****
                    memcpy(&(yyval.number), &high_bit, sizeof((yyval.number)));
                    (yyval.number) |= constant_index((yyvsp[0].number));
                  }
! #line 18682 "parse.cc"
      break;
  
!   case 285: /* alphabet_lit: LITERAL  */
! #line 2723 "parse.y"
                          { (yyval.literal) = (yyvsp[0].literal); assert((yyval.literal).len > 0); }
! #line 18688 "parse.cc"
      break;
  
!   case 286: /* alphabet_lit: "numeric literal"  */
! #line 2724 "parse.y"
                          {
                    assert( (yyvsp[0].numstr).radix == decimal_e);
                    (yyval.literal) = literal_of((yyvsp[0].numstr).string);
                  }
! #line 18697 "parse.cc"
      break;
  
!   case 287: /* upsi: UPSI is NAME  */
! #line 2731 "parse.y"
                  {
                    assert((yyvsp[-2].string));
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
--- 22207,22232 ----
                    memcpy(&(yyval.number), &high_bit, sizeof((yyval.number)));
                    (yyval.number) |= constant_index((yyvsp[0].number));
                  }
! #line 22211 "parse.cc"
      break;
  
!   case 298: /* alphabet_lit: LITERAL  */
! #line 2984 "parse.y"
                          { (yyval.literal) = (yyvsp[0].literal); assert((yyval.literal).len > 0); }
! #line 22217 "parse.cc"
      break;
  
!   case 299: /* alphabet_lit: "numeric literal"  */
! #line 2985 "parse.y"
                          {
                    assert( (yyvsp[0].numstr).radix == decimal_e);
                    (yyval.literal) = literal_of((yyvsp[0].numstr).string);
                  }
! #line 22226 "parse.cc"
      break;
  
!   case 300: /* upsi: UPSI is NAME  */
! #line 2992 "parse.y"
                  {
                    assert((yyvsp[-2].string));
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
*************** yyreduce:
*** 18706,18716 ****
                    field->attr = constant_e;
                    field->data.initial = (yyvsp[-2].string);
                  }
! #line 18710 "parse.cc"
      break;
  
!   case 288: /* upsi: UPSI is NAME upsi_entry  */
! #line 2740 "parse.y"
                  {
                    assert((yyvsp[-3].string));
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
--- 22235,22245 ----
                    field->attr = constant_e;
                    field->data.initial = (yyvsp[-2].string);
                  }
! #line 22239 "parse.cc"
      break;
  
!   case 301: /* upsi: UPSI is NAME upsi_entry  */
! #line 3001 "parse.y"
                  {
                    assert((yyvsp[-3].string));
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
*************** yyreduce:
*** 18733,18743 ****
                      off->data = new cbl_upsi_mask_t(false, value);
                    }
                  }
! #line 18737 "parse.cc"
      break;
  
!   case 289: /* upsi: UPSI upsi_entry  */
! #line 2763 "parse.y"
                  {
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
                    assert('0' <= (yyvsp[-1].string)[0] && (yyvsp[-1].string)[0] < '8');
--- 22262,22272 ----
                      off->data = new cbl_upsi_mask_t(false, value);
                    }
                  }
! #line 22266 "parse.cc"
      break;
  
!   case 302: /* upsi: UPSI upsi_entry  */
! #line 3024 "parse.y"
                  {
                    size_t parent = symbol_index(symbol_field(0,0,"UPSI-0"));
                    assert('0' <= (yyvsp[-1].string)[0] && (yyvsp[-1].string)[0] < '8');
*************** yyreduce:
*** 18754,18810 ****
                      off->data = new cbl_upsi_mask_t(false, value);
                    }
                  }
! #line 18758 "parse.cc"
      break;
  
!   case 290: /* upsi_entry: ON status is NAME  */
! #line 2781 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[0]);
                    (yyval.switches).on  = (yyvsp[0].string);
                    (yyval.switches).off = NULL;
                  }
! #line 18768 "parse.cc"
      break;
  
!   case 291: /* upsi_entry: OFF status is NAME  */
! #line 2787 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[0]);
                    (yyval.switches).on  = NULL;
                    (yyval.switches).off = (yyvsp[0].string);
                  }
! #line 18778 "parse.cc"
      break;
  
!   case 292: /* upsi_entry: OFF status is NAME ON status is NAME  */
! #line 2793 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[-4]);
                    (yyval.switches).on  = (yyvsp[0].string);
                    (yyval.switches).off = (yyvsp[-4].string);
                  }
! #line 18788 "parse.cc"
      break;
  
!   case 293: /* upsi_entry: ON status is NAME OFF status is NAME  */
! #line 2799 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[-4]);
                    (yyval.switches).on =  (yyvsp[-4].string);
                    (yyval.switches).off = (yyvsp[0].string);
                  }
! #line 18798 "parse.cc"
      break;
  
!   case 294: /* picture_sym: %empty  */
! #line 2806 "parse.y"
                                        { (yyval.string) = NULL; }
! #line 18804 "parse.cc"
      break;
  
!   case 295: /* picture_sym: PICTURE SYMBOL LITERAL  */
! #line 2807 "parse.y"
                                              {
                    if( ! string_of((yyvsp[0].literal)) ) {
                      error_msg((yylsp[0]), "'%s' has embedded NUL", (yyvsp[0].literal).data);
--- 22283,22339 ----
                      off->data = new cbl_upsi_mask_t(false, value);
                    }
                  }
! #line 22287 "parse.cc"
      break;
  
!   case 303: /* upsi_entry: ON status is NAME  */
! #line 3042 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[0]);
                    (yyval.switches).on  = (yyvsp[0].string);
                    (yyval.switches).off = NULL;
                  }
! #line 22297 "parse.cc"
      break;
  
!   case 304: /* upsi_entry: OFF status is NAME  */
! #line 3048 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[0]);
                    (yyval.switches).on  = NULL;
                    (yyval.switches).off = (yyvsp[0].string);
                  }
! #line 22307 "parse.cc"
      break;
  
!   case 305: /* upsi_entry: OFF status is NAME ON status is NAME  */
! #line 3054 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[-4]);
                    (yyval.switches).on  = (yyvsp[0].string);
                    (yyval.switches).off = (yyvsp[-4].string);
                  }
! #line 22317 "parse.cc"
      break;
  
!   case 306: /* upsi_entry: ON status is NAME OFF status is NAME  */
! #line 3060 "parse.y"
                  {
                    (yyval.switches).loc = (yylsp[-4]);
                    (yyval.switches).on =  (yyvsp[-4].string);
                    (yyval.switches).off = (yyvsp[0].string);
                  }
! #line 22327 "parse.cc"
      break;
  
!   case 307: /* picture_sym: %empty  */
! #line 3067 "parse.y"
                                        { (yyval.string) = NULL; }
! #line 22333 "parse.cc"
      break;
  
!   case 308: /* picture_sym: PICTURE SYMBOL LITERAL  */
! #line 3068 "parse.y"
                                              {
                    if( ! string_of((yyvsp[0].literal)) ) {
                      error_msg((yylsp[0]), "'%s' has embedded NUL", (yyvsp[0].literal).data);
*************** yyreduce:
*** 18812,19036 ****
                    }
                    (yyval.string) = string_of((yyvsp[0].literal));
                  }
! #line 18816 "parse.cc"
      break;
  
!   case 297: /* domains: domains domain  */
! #line 2823 "parse.y"
!                                { (yyval.false_domain) = (yyvsp[-1].false_domain)? (yyvsp[-1].false_domain) : (yyvsp[0].false_domain); }
! #line 18822 "parse.cc"
      break;
  
!   case 298: /* domain: all LITERAL  */
! #line 2827 "parse.y"
                  {
!                   if( ! string_of((yyvsp[0].literal)) ) {
! 		    gcc_location_set((yylsp[0]));
!                     yywarn("'%s' has embedded NUL", (yyvsp[0].literal).data);
!                   }
!                   (yyval.false_domain) = NULL;
!                   cbl_domain_t domain((yylsp[0]), (yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
!                   domains.push_back(domain);
                  }
! #line 18836 "parse.cc"
      break;
  
!   case 299: /* domain: all LITERAL THRU all LITERAL  */
! #line 2837 "parse.y"
                  {
!                   if( ! string_of((yyvsp[-3].literal)) ) {
!                     yywarn("'%s' has embedded NUL", (yyvsp[-3].literal).data);
!                   }
!                   if( ! string_of((yyvsp[0].literal)) ) {
!                     yywarn("'%s' has embedded NUL", (yyvsp[0].literal).data);
                    }
-                   (yyval.false_domain) = NULL;
-                   cbl_domain_elem_t first((yylsp[-3]), (yyvsp[-4].boolean), (yyvsp[-3].literal).len, (yyvsp[-3].literal).data),
-                                      last((yylsp[0]), (yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
-                   domains.push_back(cbl_domain_t(first, last));
                  }
! #line 18853 "parse.cc"
      break;
  
!   case 300: /* domain: all "numeric literal"  */
! #line 2850 "parse.y"
                  {
!                   (yyval.false_domain) = NULL;
!                   cbl_domain_t dom((yylsp[0]), (yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back(dom);
                  }
! #line 18863 "parse.cc"
      break;
  
!   case 301: /* domain: all "numeric literal" THRU all "numeric literal"  */
! #line 2856 "parse.y"
                  {
!                   (yyval.false_domain) = NULL;
!                   cbl_domain_elem_t first((yylsp[-3]), (yyvsp[-4].boolean), strlen((yyvsp[-3].numstr).string), (yyvsp[-3].numstr).string, true),
! 		                     last((yylsp[0]), (yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back(cbl_domain_t(first, last));
                  }
! #line 18874 "parse.cc"
      break;
  
!   case 302: /* domain: all reserved_value  */
! #line 2862 "parse.y"
                                     {
!                   (yyval.false_domain) = NULL;
                    if( (yyvsp[0].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[0].number)))->data.initial;
!                   struct cbl_domain_t domain( (yylsp[0]), (yyvsp[-1].boolean), strlen(value), value );
!                   domains.push_back(domain);
                  }
! #line 18886 "parse.cc"
      break;
  
!   case 303: /* domain: all reserved_value THRU all LITERAL  */
! #line 2869 "parse.y"
                                                                          {
!                   if( ! string_of((yyvsp[0].literal)) ) {
!                     yywarn("'%s' has embedded NUL", (yyvsp[0].literal).data);
!                   }
!                   (yyval.false_domain) = NULL;
                    if( (yyvsp[-3].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[-3].number)))->data.initial;
!                   cbl_domain_elem_t first((yylsp[-3]), (yyvsp[-4].boolean), strlen(value), value),
!                                      last((yylsp[0]), (yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
!                   domains.push_back(cbl_domain_t(first, last));
                  }
! #line 18902 "parse.cc"
      break;
  
!   case 304: /* domain: all reserved_value THRU all "numeric literal"  */
! #line 2880 "parse.y"
                                                                         {
!                   (yyval.false_domain) = NULL;
                    if( (yyvsp[-3].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[-3].number)))->data.initial;
!                   cbl_domain_elem_t first((yylsp[-3]), (yyvsp[-4].boolean), strlen(value), value, true),
!                                      last((yylsp[0]), (yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back(cbl_domain_t(first, last));
                  }
! #line 18915 "parse.cc"
      break;
  
!   case 305: /* domain: when_set_to "False" is LITERAL  */
! #line 2889 "parse.y"
                  {
-                   if( ! string_of((yyvsp[0].literal)) ) {
-                     yywarn("'%s' has embedded NUL", (yyvsp[0].literal).data);
-                   }
                    const char *dom = (yyvsp[0].literal).data;
!                   (yyval.false_domain) = new cbl_domain_t((yylsp[0]), false, (yyvsp[0].literal).len, dom);
                  }
! #line 18927 "parse.cc"
      break;
  
!   case 306: /* domain: when_set_to "False" is reserved_value  */
! #line 2897 "parse.y"
                  {
                    if( (yyvsp[0].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[0].number)))->data.initial;
!                   (yyval.false_domain) = new cbl_domain_t((yylsp[0]), false, strlen(value), value );
                  }
! #line 18937 "parse.cc"
      break;
  
!   case 307: /* domain: when_set_to "False" is "numeric literal"  */
! #line 2903 "parse.y"
                  {
! 		  (yyval.false_domain) = new cbl_domain_t((yylsp[0]), false, strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
                  }
! #line 18945 "parse.cc"
      break;
  
!   case 318: /* $@3: %empty  */
! #line 2919 "parse.y"
!                          { current_division = data_div_e; }
! #line 18951 "parse.cc"
      break;
  
!   case 319: /* data_div: "DATA DIVISION" $@3 data_sections  */
! #line 2920 "parse.y"
!                 {
                    current_data_section = not_data_datasect_e;
-                   parser_division( data_div_e, NULL, 0, NULL );
                  }
! #line 18960 "parse.cc"
      break;
  
!   case 323: /* $@4: %empty  */
! #line 2931 "parse.y"
                                {
                    current_data_section_set((yylsp[-1]), file_datasect_e);
                  }
! #line 18968 "parse.cc"
      break;
  
!   case 325: /* $@5: %empty  */
! #line 2934 "parse.y"
                                           {
                    current_data_section_set((yylsp[-1]), working_storage_datasect_e);
                  }
! #line 18976 "parse.cc"
      break;
  
!   case 327: /* $@6: %empty  */
! #line 2937 "parse.y"
                                         {
                    current_data_section_set((yylsp[-1]), local_storage_datasect_e);
                  }
! #line 18984 "parse.cc"
      break;
  
!   case 329: /* $@7: %empty  */
! #line 2940 "parse.y"
                                   {
                    current_data_section_set((yylsp[-1]), linkage_datasect_e);
                  }
! #line 18992 "parse.cc"
      break;
  
!   case 331: /* data_section: SCREEN SECTION '.'  */
! #line 2943 "parse.y"
                                     {
  		  cbl_unimplemented("SCREEN SECTION");
  		}
! #line 19000 "parse.cc"
      break;
  
!   case 334: /* $@8: %empty  */
! #line 2951 "parse.y"
                                         { field_done(); }
! #line 19006 "parse.cc"
      break;
  
!   case 336: /* $@9: %empty  */
! #line 2952 "parse.y"
                                         { field_done(); }
! #line 19012 "parse.cc"
      break;
  
!   case 338: /* fd_name: FD NAME  */
! #line 2955 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); file_section_fd_set(fd_e, (yyvsp[0].string), (yylsp[0])); }
! #line 19018 "parse.cc"
      break;
  
!   case 339: /* fd_name: SD NAME  */
! #line 2956 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); file_section_fd_set(sd_e, (yyvsp[0].string), (yylsp[0])); }
! #line 19024 "parse.cc"
      break;
  
!   case 342: /* fd_clause: record_desc  */
! #line 2963 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->varying_size.min = (yyvsp[0].min_max).min;
                    f->varying_size.max = (yyvsp[0].min_max).max;
!                   auto& cap = cbl_field_of(symbol_at(f->default_record))->data.capacity;
!                   cap = std::max(cap, uint32_t(f->varying_size.max));
                    // If min != max now, we know varying is explicitly defined.
                    f->varying_size.explicitly = f->varies();
                    if( f->varying_size.max != 0 ) {
--- 22341,22575 ----
                    }
                    (yyval.string) = string_of((yyvsp[0].literal));
                  }
! #line 22345 "parse.cc"
      break;
  
!   case 310: /* domains: domains domain  */
! #line 3084 "parse.y"
!                                { (yyval.false_domain) = (yyvsp[-1].false_domain).domain? (yyvsp[-1].false_domain) : (yyvsp[0].false_domain); }
! #line 22351 "parse.cc"
      break;
  
!   case 311: /* domain: all LITERAL  */
! #line 3088 "parse.y"
                  {
!                   (yyval.false_domain).domain = nullptr;
!                   cbl_domain_t domain((yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
!                   domains.push_back( domain_t((yyvsp[0].literal).encode_as(), domain) );
                  }
! #line 22361 "parse.cc"
      break;
  
!   case 312: /* domain: all LITERAL THRU all LITERAL  */
! #line 3094 "parse.y"
                  {
!                   (yyval.false_domain).domain = nullptr;
!                   cbl_domain_elem_t first((yyvsp[-4].boolean), (yyvsp[-3].literal).len, (yyvsp[-3].literal).data),
!                                      last((yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
!                   if( (yyvsp[-3].literal).encode_as() == (yyvsp[0].literal).encode_as() ) {
!                     domains.push_back( domain_t((yyvsp[-3].literal).encode_as(),
!                                                 cbl_domain_t(first, last)) );
!                   } else {
!                     error_msg((yylsp[0]), "encooding of %qs differs from that of %qs",
!                               (yyvsp[-3].literal).data, (yyvsp[0].literal).data);
                    }
                  }
! #line 22378 "parse.cc"
      break;
  
!   case 313: /* domain: all "numeric literal"  */
! #line 3107 "parse.y"
                  {
!                   (yyval.false_domain).domain = nullptr;
!                   cbl_domain_t dom((yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back( domain_t(dom) );
                  }
! #line 22388 "parse.cc"
      break;
  
!   case 314: /* domain: all "numeric literal" THRU all "numeric literal"  */
! #line 3113 "parse.y"
                  {
!                   (yyval.false_domain).domain = nullptr;
!                   cbl_domain_elem_t first((yyvsp[-4].boolean), strlen((yyvsp[-3].numstr).string), (yyvsp[-3].numstr).string, true),
! 		                     last((yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back( domain_t(cbl_domain_t(first, last)) );
                  }
! #line 22399 "parse.cc"
      break;
  
!   case 315: /* domain: all reserved_value  */
! #line 3119 "parse.y"
                                     {
!                   (yyval.false_domain).domain = nullptr;
                    if( (yyvsp[0].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[0].number)))->data.initial;
!                   struct cbl_domain_t domain( (yyvsp[-1].boolean), strlen(value), value );
!                   domains.push_back(domain_t(domain));
                  }
! #line 22411 "parse.cc"
      break;
  
!   case 316: /* domain: all reserved_value THRU all LITERAL  */
! #line 3126 "parse.y"
                                                                          {
!                   (yyval.false_domain).domain = nullptr;
                    if( (yyvsp[-3].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[-3].number)))->data.initial;
!                   cbl_domain_elem_t first((yyvsp[-4].boolean), strlen(value), value),
!                                      last((yyvsp[-1].boolean), (yyvsp[0].literal).len, (yyvsp[0].literal).data);
!                   domains.push_back( domain_t((yyvsp[0].literal).encode_as(),
!                                               cbl_domain_t(first, last)) );
                  }
! #line 22425 "parse.cc"
      break;
  
!   case 317: /* domain: all reserved_value THRU all "numeric literal"  */
! #line 3135 "parse.y"
                                                                         {
!                   (yyval.false_domain).domain = nullptr;
                    if( (yyvsp[-3].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[-3].number)))->data.initial;
!                   cbl_domain_elem_t first((yyvsp[-4].boolean), strlen(value), value, true),
!                                      last((yyvsp[-1].boolean), strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   domains.push_back( domain_t(cbl_domain_t(first, last)) );
                  }
! #line 22438 "parse.cc"
      break;
  
!   case 318: /* domain: when_set_to "False" is LITERAL  */
! #line 3144 "parse.y"
                  {
                    const char *dom = (yyvsp[0].literal).data;
!                   (yyval.false_domain).domain = new cbl_domain_t(false, (yyvsp[0].literal).len, dom);
!                   (yyval.false_domain).encoding = (yyvsp[0].literal).encode_as();
                  }
! #line 22448 "parse.cc"
      break;
  
!   case 319: /* domain: when_set_to "False" is reserved_value  */
! #line 3150 "parse.y"
                  {
                    if( (yyvsp[0].number) == NULLS ) YYERROR;
                    auto value = constant_of(constant_index((yyvsp[0].number)))->data.initial;
!                   (yyval.false_domain).domain = new cbl_domain_t(false, strlen(value), value );
!                   (yyval.false_domain).encoding = no_encoding_e;
                  }
! #line 22459 "parse.cc"
      break;
  
!   case 320: /* domain: when_set_to "False" is "numeric literal"  */
! #line 3157 "parse.y"
                  {
! 		  (yyval.false_domain).domain = new cbl_domain_t(false,
!                                                strlen((yyvsp[0].numstr).string), (yyvsp[0].numstr).string, true);
!                   (yyval.false_domain).encoding = current_encoding('A');
                  }
! #line 22469 "parse.cc"
      break;
  
!   case 329: /* data_div: %empty  */
! #line 3173 "parse.y"
!                          { parser_division( data_div_e, NULL, 0, NULL ); }
! #line 22475 "parse.cc"
      break;
  
!   case 330: /* data_div: "DATA DIVISION"  */
! #line 3174 "parse.y"
!                          { parser_division( data_div_e, NULL, 0, NULL ); }
! #line 22481 "parse.cc"
!     break;
! 
!   case 331: /* $@3: %empty  */
! #line 3175 "parse.y"
!                          {
!                   current_division = data_div_e;
!                   parser_division( data_div_e, NULL, 0, NULL ); 
!                 }
! #line 22490 "parse.cc"
!     break;
! 
!   case 332: /* data_div: "DATA DIVISION" $@3 data_sections  */
! #line 3179 "parse.y"
!                               {
                    current_data_section = not_data_datasect_e;
                  }
! #line 22498 "parse.cc"
      break;
  
!   case 336: /* $@4: %empty  */
! #line 3189 "parse.y"
                                {
                    current_data_section_set((yylsp[-1]), file_datasect_e);
                  }
! #line 22506 "parse.cc"
      break;
  
!   case 338: /* $@5: %empty  */
! #line 3192 "parse.y"
                                           {
                    current_data_section_set((yylsp[-1]), working_storage_datasect_e);
                  }
! #line 22514 "parse.cc"
      break;
  
!   case 340: /* $@6: %empty  */
! #line 3195 "parse.y"
                                         {
                    current_data_section_set((yylsp[-1]), local_storage_datasect_e);
                  }
! #line 22522 "parse.cc"
      break;
  
!   case 342: /* $@7: %empty  */
! #line 3198 "parse.y"
                                   {
                    current_data_section_set((yylsp[-1]), linkage_datasect_e);
                  }
! #line 22530 "parse.cc"
      break;
  
!   case 344: /* data_section: SCREEN SECTION '.'  */
! #line 3201 "parse.y"
                                     {
  		  cbl_unimplemented("SCREEN SECTION");
  		}
! #line 22538 "parse.cc"
      break;
  
!   case 347: /* $@8: %empty  */
! #line 3209 "parse.y"
                                         { field_done(); }
! #line 22544 "parse.cc"
      break;
  
!   case 349: /* $@9: %empty  */
! #line 3210 "parse.y"
                                         { field_done(); }
! #line 22550 "parse.cc"
      break;
  
!   case 351: /* fd_name: FD NAME  */
! #line 3213 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); file_section_fd_set(fd_e, (yyvsp[0].string), (yylsp[0])); }
! #line 22556 "parse.cc"
      break;
  
!   case 352: /* fd_name: SD NAME  */
! #line 3214 "parse.y"
                          { (yyval.string) = (yyvsp[0].string); file_section_fd_set(sd_e, (yyvsp[0].string), (yylsp[0])); }
! #line 22562 "parse.cc"
      break;
  
!   case 355: /* fd_clause: record_desc  */
! #line 3221 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->varying_size.min = (yyvsp[0].min_max).min;
                    f->varying_size.max = (yyvsp[0].min_max).max;
!                   auto& data = cbl_field_of(symbol_at(f->default_record))->data;
!                   data.capacity( std::max(data.capacity(),
!                                           uint32_t(f->varying_size.max)) );
                    // If min != max now, we know varying is explicitly defined.
                    f->varying_size.explicitly = f->varies();
                    if( f->varying_size.max != 0 ) {
*************** yyreduce:
*** 19041,19051 ****
                      }
                    }
                  }
! #line 19045 "parse.cc"
      break;
  
!   case 346: /* fd_clause: RECORDING mode is NAME  */
! #line 2983 "parse.y"
                  {
                    switch( (yyvsp[0].string)[0] ) {
                    case 'F':
--- 22580,22590 ----
                      }
                    }
                  }
! #line 22584 "parse.cc"
      break;
  
!   case 359: /* fd_clause: RECORDING mode is NAME  */
! #line 3242 "parse.y"
                  {
                    switch( (yyvsp[0].string)[0] ) {
                    case 'F':
*************** yyreduce:
*** 19057,19112 ****
                      error_msg((yylsp[0]), "invalid RECORDING MODE '%s'", (yyvsp[0].string));
                      YYERROR;
                    }
!                   cbl_unimplementedw("RECORDING MODE was ignored, not defined by ISO 2023");
                  }
! #line 19063 "parse.cc"
      break;
  
!   case 349: /* fd_clause: is GLOBAL  */
! #line 2999 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= global_e;
                  }
! #line 19072 "parse.cc"
      break;
  
!   case 350: /* fd_clause: is EXTERNAL  */
! #line 3004 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= external_e;
                  }
! #line 19081 "parse.cc"
      break;
  
!   case 351: /* fd_clause: is EXTERNAL as LITERAL  */
! #line 3009 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= external_e;
                    cbl_unimplemented("AS LITERAL");
                  }
! #line 19091 "parse.cc"
      break;
  
!   case 352: /* fd_clause: fd_linage  */
! #line 3014 "parse.y"
                            { cbl_unimplemented("LINAGE"); }
! #line 19097 "parse.cc"
      break;
  
!   case 353: /* fd_clause: fd_report  */
! #line 3015 "parse.y"
                            {
                    cbl_unimplemented("REPORT WRITER");
                    YYERROR;
                  }
! #line 19106 "parse.cc"
      break;
  
!   case 355: /* rec_contains: "numeric literal"  */
! #line 3023 "parse.y"
                              {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[0].numstr).string, (yyvsp[0].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22596,22745 ----
                      error_msg((yylsp[0]), "invalid RECORDING MODE '%s'", (yyvsp[0].string));
                      YYERROR;
                    }
!                   cbl_unimplementedw(SynRecordingMode,
!                                      "RECORDING MODE ignored");
                  }
! #line 22603 "parse.cc"
      break;
  
!   case 361: /* fd_clause: "CODE-SET" is codeset_name  */
! #line 3257 "parse.y"
!                                                  {
!                   auto f = cbl_file_of(symbol_at(file_section_fd));
!                   f->codeset = cbl_file_t::codeset_t((yyvsp[0].codeset).encoding,
!                                                      (yyvsp[0].codeset).isym);
!                   cbl_unimplementedw(SynFileCodeSet,
!                                      "sorry, unimplemented CODE-SET");
!                 }
! #line 22615 "parse.cc"
!     break;
! 
!   case 362: /* fd_clause: "CODE-SET" for alphanational is codeset_name  */
! #line 3265 "parse.y"
!                 {
!                   auto f = cbl_file_of(symbol_at(file_section_fd));
!                   f->codeset = cbl_file_t::codeset_t((yyvsp[0].codeset).encoding,
!                                                      (yyvsp[0].codeset).isym);
!                   if( (yyvsp[0].codeset).isym == 0 ) {
!                     switch( (yyvsp[-2].number)) {
!                     case ALPHANUMERIC:
!                       if( (yyvsp[0].codeset).encoding != ASCII_e ) {
!                         error_msg((yylsp[-2]),
!                                   "FOR ALPHANUMERIC: invalid codeset");
!                       }
!                       break;
!                     case NATIONAL:
!                       if( (yyvsp[0].codeset).encoding != EBCDIC_e ) {
!                         error_msg((yylsp[-2]),
!                                   "FOR ALPHANUMERIC: invalid codeset");
!                       }
!                       break;
!                     default:
!                       gcc_unreachable();
!                     }
!                   }
!                   cbl_unimplemented("CODE-SET");
!                 }
! #line 22644 "parse.cc"
!     break;
! 
!   case 363: /* fd_clause: is GLOBAL  */
! #line 3290 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= global_e;
                  }
! #line 22653 "parse.cc"
      break;
  
!   case 364: /* fd_clause: is EXTERNAL  */
! #line 3295 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= external_e;
                  }
! #line 22662 "parse.cc"
      break;
  
!   case 365: /* fd_clause: is EXTERNAL as LITERAL  */
! #line 3300 "parse.y"
                  {
                    auto f = cbl_file_of(symbol_at(file_section_fd));
                    f->attr |= external_e;
                    cbl_unimplemented("AS LITERAL");
                  }
! #line 22672 "parse.cc"
      break;
  
!   case 366: /* fd_clause: is error  */
! #line 3306 "parse.y"
!                 {
!                   error_msg((yylsp[-1]), "invalid FD phrase");
!                 }
! #line 22680 "parse.cc"
!     break;
! 
!   case 367: /* fd_clause: fd_linage  */
! #line 3309 "parse.y"
                            { cbl_unimplemented("LINAGE"); }
! #line 22686 "parse.cc"
      break;
  
!   case 368: /* fd_clause: fd_report  */
! #line 3310 "parse.y"
                            {
                    cbl_unimplemented("REPORT WRITER");
                    YYERROR;
                  }
! #line 22695 "parse.cc"
      break;
  
!   case 369: /* alphanational: ALPHANUMERIC  */
! #line 3316 "parse.y"
!                              { (yyval.number) = ALPHANUMERIC; }
! #line 22701 "parse.cc"
!     break;
! 
!   case 370: /* alphanational: NATIONAL  */
! #line 3317 "parse.y"
!                              { (yyval.number) = NATIONAL; }
! #line 22707 "parse.cc"
!     break;
! 
!   case 371: /* codeset_name: "STANDARD ALPHABET"  */
! #line 3319 "parse.y"
!                                   { (yyval.codeset).isym = 0; (yyval.codeset).encoding = ASCII_e; }
! #line 22713 "parse.cc"
!     break;
! 
!   case 372: /* codeset_name: NATIVE  */
! #line 3320 "parse.y"
!                                   { (yyval.codeset).isym = 0; (yyval.codeset).encoding = EBCDIC_e; }
! #line 22719 "parse.cc"
!     break;
! 
!   case 373: /* codeset_name: EBCDIC  */
! #line 3321 "parse.y"
!                                   { (yyval.codeset).isym = 0; (yyval.codeset).encoding = EBCDIC_e; }
! #line 22725 "parse.cc"
!     break;
! 
!   case 374: /* codeset_name: NAME  */
! #line 3323 "parse.y"
!                 {
!                   auto e = symbol_alphabet(PROGRAM, (yyvsp[0].string));
!                   if( !e ) {
!                     error_msg((yylsp[0]), "invalid CODE-SET: %qs", (yyvsp[0].string));
!                     YYERROR;
!                   }
!                   (yyval.codeset).isym = symbol_index(e);
!                   (yyval.codeset).encoding = custom_encoding_e;
!                 }
! #line 22739 "parse.cc"
!     break;
! 
!   case 376: /* rec_contains: "numeric literal"  */
! #line 3336 "parse.y"
                              {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[0].numstr).string, (yyvsp[0].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19116,19126 ****
                    }
                    (yyval.min_max).min = (yyval.min_max).max = n; // fixed length
                  }
! #line 19120 "parse.cc"
      break;
  
!   case 356: /* rec_contains: "numeric literal" TO "numeric literal"  */
! #line 3032 "parse.y"
                                             {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-2].numstr).string, (yyvsp[-2].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22749,22759 ----
                    }
                    (yyval.min_max).min = (yyval.min_max).max = n; // fixed length
                  }
! #line 22753 "parse.cc"
      break;
  
!   case 377: /* rec_contains: "numeric literal" TO "numeric literal"  */
! #line 3345 "parse.y"
                                             {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-2].numstr).string, (yyvsp[-2].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19143,19189 ****
                      YYERROR;
                    }
                  }
! #line 19147 "parse.cc"
      break;
  
!   case 373: /* record_desc: RECORD is record_vary depending  */
! #line 3086 "parse.y"
                                                             { (yyval.min_max) = (yyvsp[-1].min_max); }
! #line 19153 "parse.cc"
      break;
  
!   case 374: /* record_desc: RECORD contains rec_contains characters  */
! #line 3087 "parse.y"
                                                             { (yyval.min_max) = (yyvsp[-1].min_max); }
! #line 19159 "parse.cc"
      break;
  
!   case 375: /* record_vary: VARYING in_size from_to  */
! #line 3090 "parse.y"
                                          { (yyval.min_max) = (yyvsp[0].min_max); }
! #line 19165 "parse.cc"
      break;
  
!   case 376: /* record_vary: VARYING from_to  */
! #line 3091 "parse.y"
                                          { (yyval.min_max) = (yyvsp[0].min_max); }
! #line 19171 "parse.cc"
      break;
  
!   case 377: /* record_vary: VARYING in_size  */
! #line 3092 "parse.y"
                                  { (yyval.min_max).min = 0; (yyval.min_max).max = 0; }
! #line 19177 "parse.cc"
      break;
  
!   case 378: /* record_vary: VARYING  */
! #line 3093 "parse.y"
                                  { (yyval.min_max).min = 0; (yyval.min_max).max = 0; }
! #line 19183 "parse.cc"
      break;
  
!   case 382: /* from_to: FROM "numeric literal" TO "numeric literal" characters  */
! #line 3101 "parse.y"
                                                             {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-3].numstr).string, (yyvsp[-3].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22776,22822 ----
                      YYERROR;
                    }
                  }
! #line 22780 "parse.cc"
      break;
  
!   case 394: /* record_desc: RECORD is record_vary depending  */
! #line 3399 "parse.y"
                                                             { (yyval.min_max) = (yyvsp[-1].min_max); }
! #line 22786 "parse.cc"
      break;
  
!   case 395: /* record_desc: RECORD contains rec_contains characters  */
! #line 3400 "parse.y"
                                                             { (yyval.min_max) = (yyvsp[-1].min_max); }
! #line 22792 "parse.cc"
      break;
  
!   case 396: /* record_vary: VARYING in_size from_to  */
! #line 3403 "parse.y"
                                          { (yyval.min_max) = (yyvsp[0].min_max); }
! #line 22798 "parse.cc"
      break;
  
!   case 397: /* record_vary: VARYING from_to  */
! #line 3404 "parse.y"
                                          { (yyval.min_max) = (yyvsp[0].min_max); }
! #line 22804 "parse.cc"
      break;
  
!   case 398: /* record_vary: VARYING in_size  */
! #line 3405 "parse.y"
                                  { (yyval.min_max).min = 0; (yyval.min_max).max = 0; }
! #line 22810 "parse.cc"
      break;
  
!   case 399: /* record_vary: VARYING  */
! #line 3406 "parse.y"
                                  { (yyval.min_max).min = 0; (yyval.min_max).max = 0; }
! #line 22816 "parse.cc"
      break;
  
!   case 403: /* from_to: FROM "numeric literal" TO "numeric literal" characters  */
! #line 3414 "parse.y"
                                                             {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-3].numstr).string, (yyvsp[-3].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19200,19210 ****
                    }
                    (yyval.min_max).max = n;
                  }
! #line 19204 "parse.cc"
      break;
  
!   case 383: /* from_to: "numeric literal" TO "numeric literal" characters  */
! #line 3117 "parse.y"
                                                        {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-3].numstr).string, (yyvsp[-3].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22833,22843 ----
                    }
                    (yyval.min_max).max = n;
                  }
! #line 22837 "parse.cc"
      break;
  
!   case 404: /* from_to: "numeric literal" TO "numeric literal" characters  */
! #line 3430 "parse.y"
                                                        {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-3].numstr).string, (yyvsp[-3].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19221,19231 ****
                    }
                    (yyval.min_max).max = n;
                  }
! #line 19225 "parse.cc"
      break;
  
!   case 384: /* from_to: TO "numeric literal" characters  */
! #line 3134 "parse.y"
                                            {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22854,22864 ----
                    }
                    (yyval.min_max).max = n;
                  }
! #line 22858 "parse.cc"
      break;
  
!   case 405: /* from_to: TO "numeric literal" characters  */
! #line 3447 "parse.y"
                                            {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19236,19246 ****
                    (yyval.min_max).min = 0;
                    (yyval.min_max).max = n;
                  }
! #line 19240 "parse.cc"
      break;
  
!   case 385: /* from_to: FROM "numeric literal" characters  */
! #line 3145 "parse.y"
                                              {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22869,22879 ----
                    (yyval.min_max).min = 0;
                    (yyval.min_max).max = n;
                  }
! #line 22873 "parse.cc"
      break;
  
!   case 406: /* from_to: FROM "numeric literal" characters  */
! #line 3458 "parse.y"
                                              {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19251,19261 ****
                    (yyval.min_max).min = n;
                    (yyval.min_max).max = size_t(-1);
                  }
! #line 19255 "parse.cc"
      break;
  
!   case 386: /* from_to: "numeric literal" characters  */
! #line 3155 "parse.y"
                                         {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
--- 22884,22894 ----
                    (yyval.min_max).min = n;
                    (yyval.min_max).max = size_t(-1);
                  }
! #line 22888 "parse.cc"
      break;
  
!   case 407: /* from_to: "numeric literal" characters  */
! #line 3468 "parse.y"
                                         {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    ssize_t n = real_to_integer (&rn);
*************** yyreduce:
*** 19266,19282 ****
                    (yyval.min_max).min = n;
                    (yyval.min_max).max = size_t(-1);
                  }
! #line 19270 "parse.cc"
      break;
  
!   case 387: /* from_to: CHARACTERS  */
! #line 3166 "parse.y"
                             { (yyval.min_max).min = 0; (yyval.min_max).max = size_t(-1); }
! #line 19276 "parse.cc"
      break;
  
!   case 389: /* depending: DEPENDING on NAME  */
! #line 3171 "parse.y"
                  {
                    assert(file_section_fd > 0);
                    symbol_elem_t *e = symbol_at(file_section_fd);
--- 22899,22915 ----
                    (yyval.min_max).min = n;
                    (yyval.min_max).max = size_t(-1);
                  }
! #line 22903 "parse.cc"
      break;
  
!   case 408: /* from_to: CHARACTERS  */
! #line 3479 "parse.y"
                             { (yyval.min_max).min = 0; (yyval.min_max).max = size_t(-1); }
! #line 22909 "parse.cc"
      break;
  
!   case 410: /* depending: DEPENDING on NAME  */
! #line 3484 "parse.y"
                  {
                    assert(file_section_fd > 0);
                    symbol_elem_t *e = symbol_at(file_section_fd);
*************** yyreduce:
*** 19297,19307 ****
                    file->record_length = odo;
                    assert( file->record_length > 0 );
                  }
! #line 19301 "parse.cc"
      break;
  
!   case 405: /* field: data_descr '.'  */
! #line 3219 "parse.y"
                  {
                    if( in_file_section() && (yyvsp[-1].field)->level == 1 ) {
                      if( !file_section_parent_set((yyvsp[-1].field)) ) {
--- 22930,22940 ----
                    file->record_length = odo;
                    assert( file->record_length > 0 );
                  }
! #line 22934 "parse.cc"
      break;
  
!   case 426: /* field: data_descr '.'  */
! #line 3532 "parse.y"
                  {
                    if( in_file_section() && (yyvsp[-1].field)->level == 1 ) {
                      if( !file_section_parent_set((yyvsp[-1].field)) ) {
*************** yyreduce:
*** 19310,19315 ****
--- 22943,22949 ----
                    }
                    field_done();
  
+ #if 0
                    const auto& field(*(yyvsp[-1].field));
  
                    // Format data.initial per picture
*************** yyreduce:
*** 19346,19357 ****
                        }
                      }
                    }
                  }
! #line 19351 "parse.cc"
      break;
  
!   case 410: /* occurs_clause: OCCURS name indexed  */
! #line 3271 "parse.y"
                  {
  		  if( ! (is_constant((yyvsp[-1].field)) && (yyvsp[-1].field)->type == FldLiteralN) ) {
  		    error_msg((yylsp[-1]), "%s is not CONSTANT", (yyvsp[-1].field)->name);
--- 22980,22992 ----
                        }
                      }
                    }
+ #endif
                  }
! #line 22986 "parse.cc"
      break;
  
!   case 431: /* occurs_clause: OCCURS name indexed  */
! #line 3586 "parse.y"
                  {
  		  if( ! (is_constant((yyvsp[-1].field)) && (yyvsp[-1].field)->type == FldLiteralN) ) {
  		    error_msg((yylsp[-1]), "%s is not CONSTANT", (yyvsp[-1].field)->name);
*************** yyreduce:
*** 19361,19441 ****
                    occurs->bounds.lower =
                    occurs->bounds.upper = (yyvsp[-1].field)->as_integer();
  		}
! #line 19365 "parse.cc"
      break;
  
!   case 411: /* cardinal_lb: cardinal times  */
! #line 3281 "parse.y"
                                 {
                    current_field()->occurs.bounds.lower = (yyvsp[-1].number);
                    current_field()->occurs.bounds.upper = (yyvsp[-1].number);
                  }
! #line 19374 "parse.cc"
      break;
  
!   case 412: /* cardinal: "numeric literal"  */
! #line 3288 "parse.y"
                  {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[0].numstr).string, (yyvsp[0].numstr).radix);
                    (yyval.number) = real_to_integer (&rn);
                  }
! #line 19383 "parse.cc"
      break;
  
!   case 413: /* depending_on: cardinal TO bound DEPENDING on name  */
! #line 3295 "parse.y"
                  {
                    cbl_occurs_t *occurs = &current_field()->occurs;
                    occurs->bounds.lower = (size_t)(yyvsp[-5].number);
                    occurs->bounds.upper = (size_t)(yyvsp[-3].number);
                    occurs->depending_on = field_index((yyvsp[0].field));
                  }
! #line 19394 "parse.cc"
      break;
  
!   case 414: /* depending_on: bound DEPENDING on name  */
! #line 3302 "parse.y"
                  {
                    cbl_occurs_t *occurs = &current_field()->occurs;
                    occurs->bounds.lower = 1;
                    occurs->bounds.upper = (size_t)(yyvsp[-3].number);
                    occurs->depending_on = field_index((yyvsp[0].field));
                  }
! #line 19405 "parse.cc"
      break;
  
!   case 416: /* bound: UNBOUNDED times  */
! #line 3310 "parse.y"
                                   { (yyval.number) = -1; }
! #line 19411 "parse.cc"
      break;
  
!   case 420: /* ordering: ASCENDING  */
! #line 3319 "parse.y"
                  {
                    current_field()->occurs.key_alloc(true);
                  }
! #line 19419 "parse.cc"
      break;
  
!   case 421: /* ordering: DESCENDING  */
! #line 3323 "parse.y"
                  {
                    current_field()->occurs.key_alloc(false);
                  }
! #line 19427 "parse.cc"
      break;
  
!   case 424: /* key_field1: name  */
! #line 3331 "parse.y"
                  {
                    current_field()->occurs.key_field_add((yyvsp[0].field));
                  }
! #line 19435 "parse.cc"
      break;
  
!   case 429: /* index_field1: ctx_name  */
! #line 3343 "parse.y"
                  {
  		  static const cbl_field_data_t data { 0, 8 }; // capacity 8
                    cbl_field_t field = {};
--- 22996,23076 ----
                    occurs->bounds.lower =
                    occurs->bounds.upper = (yyvsp[-1].field)->as_integer();
  		}
! #line 23000 "parse.cc"
      break;
  
!   case 432: /* cardinal_lb: cardinal times  */
! #line 3596 "parse.y"
                                 {
                    current_field()->occurs.bounds.lower = (yyvsp[-1].number);
                    current_field()->occurs.bounds.upper = (yyvsp[-1].number);
                  }
! #line 23009 "parse.cc"
      break;
  
!   case 433: /* cardinal: "numeric literal"  */
! #line 3603 "parse.y"
                  {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[0].numstr).string, (yyvsp[0].numstr).radix);
                    (yyval.number) = real_to_integer (&rn);
                  }
! #line 23018 "parse.cc"
      break;
  
!   case 434: /* depending_on: cardinal TO bound DEPENDING on name  */
! #line 3610 "parse.y"
                  {
                    cbl_occurs_t *occurs = &current_field()->occurs;
                    occurs->bounds.lower = (size_t)(yyvsp[-5].number);
                    occurs->bounds.upper = (size_t)(yyvsp[-3].number);
                    occurs->depending_on = field_index((yyvsp[0].field));
                  }
! #line 23029 "parse.cc"
      break;
  
!   case 435: /* depending_on: bound DEPENDING on name  */
! #line 3617 "parse.y"
                  {
                    cbl_occurs_t *occurs = &current_field()->occurs;
                    occurs->bounds.lower = 1;
                    occurs->bounds.upper = (size_t)(yyvsp[-3].number);
                    occurs->depending_on = field_index((yyvsp[0].field));
                  }
! #line 23040 "parse.cc"
      break;
  
!   case 437: /* bound: UNBOUNDED times  */
! #line 3625 "parse.y"
                                   { (yyval.number) = -1; }
! #line 23046 "parse.cc"
      break;
  
!   case 441: /* ordering: ASCENDING  */
! #line 3634 "parse.y"
                  {
                    current_field()->occurs.key_alloc(true);
                  }
! #line 23054 "parse.cc"
      break;
  
!   case 442: /* ordering: DESCENDING  */
! #line 3638 "parse.y"
                  {
                    current_field()->occurs.key_alloc(false);
                  }
! #line 23062 "parse.cc"
      break;
  
!   case 445: /* key_field1: name  */
! #line 3646 "parse.y"
                  {
                    current_field()->occurs.key_field_add((yyvsp[0].field));
                  }
! #line 23070 "parse.cc"
      break;
  
!   case 450: /* index_field1: ctx_name  */
! #line 3658 "parse.y"
                  {
  		  static const cbl_field_data_t data { 0, 8 }; // capacity 8
                    cbl_field_t field = {};
*************** yyreduce:
*** 19459,19469 ****
  
                    current_field()->occurs.index_add(index);
                  }
! #line 19463 "parse.cc"
      break;
  
!   case 430: /* level_name: LEVEL ctx_name  */
! #line 3369 "parse.y"
                  {
                    switch((yyvsp[-1].number)) {
                    case 66:
--- 23094,23104 ----
  
                    current_field()->occurs.index_add(index);
                  }
! #line 23098 "parse.cc"
      break;
  
!   case 451: /* level_name: LEVEL ctx_name  */
! #line 3684 "parse.y"
                  {
                    switch((yyvsp[-1].number)) {
                    case 66:
*************** yyreduce:
*** 19475,19485 ****
                      error_msg((yylsp[-1]), "LEVEL %d not supported", (yyvsp[-1].number));
                      YYERROR;
                    }
!                   struct cbl_field_t field = { 0,
!                     FldInvalid, FldInvalid, 0, 0, 0, capacity_cast((yyvsp[-1].number)),
! 		    nonarray, (yylsp[0]).first_line, "",
!                     0, cbl_field_t::linkage_t(),
! 		    {}, NULL };
                    if( !namcpy((yylsp[0]), field.name, (yyvsp[0].string)) ) YYERROR;
  
                    (yyval.field) = field_add((yyloc), &field);
--- 23110,23117 ----
                      error_msg((yylsp[-1]), "LEVEL %d not supported", (yyvsp[-1].number));
                      YYERROR;
                    }
!                   cbl_field_t field = { FldInvalid, capacity_cast((yyvsp[-1].number)),
!                                          (yylsp[0]).first_line };
                    if( !namcpy((yylsp[0]), field.name, (yyvsp[0].string)) ) YYERROR;
  
                    (yyval.field) = field_add((yyloc), &field);
*************** yyreduce:
*** 19488,19498 ****
                    }
                    current_field((yyval.field)); // make available for data_clauses
                  }
! #line 19492 "parse.cc"
      break;
  
!   case 431: /* level_name: LEVEL  */
! #line 3394 "parse.y"
                  {
                    switch((yyvsp[0].number)) {
                    case 66:
--- 23120,23130 ----
                    }
                    current_field((yyval.field)); // make available for data_clauses
                  }
! #line 23124 "parse.cc"
      break;
  
!   case 452: /* level_name: LEVEL  */
! #line 3706 "parse.y"
                  {
                    switch((yyvsp[0].number)) {
                    case 66:
*************** yyreduce:
*** 19504,19513 ****
                      error_msg((yylsp[0]), "LEVEL %d not supported", (yyvsp[0].number));
                      YYERROR;
                    }
!                   struct cbl_field_t field = { 0,
!                     FldInvalid, FldInvalid, 0, 0, 0, capacity_cast((yyvsp[0].number)),
! 		    nonarray, (yylsp[0]).first_line, "",
!                     0, {}, {}, NULL };
  
                    (yyval.field) = field_add((yylsp[0]), &field);
                    if( !(yyval.field) ) {
--- 23136,23144 ----
                      error_msg((yylsp[0]), "LEVEL %d not supported", (yyvsp[0].number));
                      YYERROR;
                    }
!                   struct cbl_field_t field = { FldInvalid, 
! 		                               capacity_cast((yyvsp[0].number)),
! 		                               (yylsp[0]).first_line };
  
                    (yyval.field) = field_add((yylsp[0]), &field);
                    if( !(yyval.field) ) {
*************** yyreduce:
*** 19515,19614 ****
                    }
                    current_field((yyval.field)); // make available for data_clauses
                  }
! #line 19519 "parse.cc"
      break;
  
!   case 432: /* data_descr: data_descr1  */
! #line 3419 "parse.y"
                  {
                    (yyval.field) = current_field((yyvsp[0].field)); // make available for occurs, etc.
                  }
! #line 19527 "parse.cc"
      break;
  
!   case 433: /* data_descr: error  */
! #line 3422 "parse.y"
                        { static cbl_field_t none = {}; (yyval.field) = &none; }
! #line 19533 "parse.cc"
      break;
  
!   case 435: /* const_value: "BYTE-LENGTH" of name  */
! #line 3426 "parse.y"
!                                     { set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.float128)); }
! #line 19539 "parse.cc"
      break;
  
!   case 436: /* const_value: LENGTH of name  */
! #line 3427 "parse.y"
!                                     { set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.float128)); }
! #line 19545 "parse.cc"
      break;
  
!   case 437: /* const_value: "LENGTH-OF" of name  */
! #line 3428 "parse.y"
!                                     { set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.float128)); }
! #line 19551 "parse.cc"
      break;
  
!   case 438: /* const_value: "LENGTH-OF" of binary_type  */
! #line 3429 "parse.y"
                                                   {
! 		                real_from_integer(&(yyval.float128), VOIDmode, (yyvsp[0].number), SIGNED); }
! #line 19558 "parse.cc"
      break;
  
!   case 439: /* value78: literalism  */
! #line 3434 "parse.y"
                  {
!                   cbl_field_data_t data = {};
! 		    data.capacity = capacity_cast(strlen((yyvsp[0].literal).data));
! 		    data.initial = (yyvsp[0].literal).data;
!                   (yyval.field_data) = new cbl_field_data_t(data);
                  }
! #line 19569 "parse.cc"
      break;
  
!   case 440: /* value78: const_value  */
! #line 3441 "parse.y"
                  {
!                   cbl_field_data_t data = {};
! 		  data = build_real (float128_type_node, (yyvsp[0].float128));
!                   (yyval.field_data) = new cbl_field_data_t(data);
                  }
! #line 19579 "parse.cc"
      break;
  
!   case 441: /* value78: reserved_value  */
! #line 3447 "parse.y"
                  {
! 		  const auto field = constant_of(constant_index((yyvsp[0].number)));
!                   (yyval.field_data) = new cbl_field_data_t(field->data);
                  }
! #line 19588 "parse.cc"
      break;
  
!   case 442: /* value78: true_false  */
! #line 3453 "parse.y"
                  {
                    cbl_unimplemented("Boolean constant");
                    YYERROR;
                  }
! #line 19597 "parse.cc"
      break;
  
!   case 443: /* data_descr1: level_name  */
! #line 3460 "parse.y"
                  {
                    assert((yyvsp[0].field) == current_field());
                    if( (yyvsp[0].field)->usage == FldIndex ) {
                      field_type_update((yyvsp[0].field), (yyvsp[0].field)->usage, (yylsp[0]), true);
                    }
                  }
! #line 19608 "parse.cc"
      break;
  
!   case 444: /* data_descr1: level_name CONSTANT is_global as const_value  */
! #line 3468 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    if( field.level != 1 ) {
--- 23146,23261 ----
                    }
                    current_field((yyval.field)); // make available for data_clauses
                  }
! #line 23150 "parse.cc"
      break;
  
!   case 453: /* data_descr: data_descr1  */
! #line 3730 "parse.y"
                  {
                    (yyval.field) = current_field((yyvsp[0].field)); // make available for occurs, etc.
                  }
! #line 23158 "parse.cc"
      break;
  
!   case 454: /* data_descr: error  */
! #line 3733 "parse.y"
                        { static cbl_field_t none = {}; (yyval.field) = &none; }
! #line 23164 "parse.cc"
      break;
  
!   case 456: /* const_value: "BYTE-LENGTH" of name  */
! #line 3737 "parse.y"
!                                     {
!                   (yyval.cce_type).s = nullptr;
!                   set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.cce_type).r);
!                 }
! #line 23173 "parse.cc"
      break;
  
!   case 457: /* const_value: LENGTH of name  */
! #line 3741 "parse.y"
!                                     { 
!                   (yyval.cce_type).s = nullptr;
!                   set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.cce_type).r);
!                 }
! #line 23182 "parse.cc"
      break;
  
!   case 458: /* const_value: "LENGTH-OF" of name  */
! #line 3745 "parse.y"
!                                     { 
!                   (yyval.cce_type).s = nullptr;
!                   set_real_from_capacity((yylsp[0]), (yyvsp[0].field), &(yyval.cce_type).r);
!                 }
! #line 23191 "parse.cc"
      break;
  
!   case 459: /* const_value: "LENGTH-OF" of binary_type  */
! #line 3749 "parse.y"
                                                   {
!                   (yyval.cce_type).s = nullptr;
!                   real_from_integer(&(yyval.cce_type).r, VOIDmode, (yyvsp[0].number), SIGNED);
!                 }
! #line 23200 "parse.cc"
      break;
  
!   case 460: /* value78: literalism  */
! #line 3756 "parse.y"
                  {
!                   cbl_field_data_t data;
!                   data.capacity( capacity_cast(strlen((yyvsp[0].literal).data)) );
!                   data.original((yyvsp[0].literal).data);
!                   (yyval.field_data).encoding = (yyvsp[0].literal).encoding;
!                   (yyval.field_data).data = new cbl_field_data_t(data);
                  }
! #line 23212 "parse.cc"
      break;
  
!   case 461: /* value78: const_value  */
! #line 3764 "parse.y"
                  {
!                   cbl_field_data_t data;
! 		  data = build_real (float128_type_node, (yyvsp[0].cce_type).r);
!                   auto s = (yyvsp[0].cce_type).s ? (yyvsp[0].cce_type).s : reinterpret_cast<char*>(data.etc.value);
!                   data.original(s);
!                   (yyval.field_data).encoding = no_encoding_e;
!                   (yyval.field_data).data = new cbl_field_data_t(data);
                  }
! #line 23225 "parse.cc"
      break;
  
!   case 462: /* value78: reserved_value  */
! #line 3773 "parse.y"
                  {
! 		  const auto figconst = constant_of(constant_index((yyvsp[0].number)));
!                   (yyval.field_data).encoding = current_encoding('A');
!                   (yyval.field_data).data = new cbl_field_data_t(figconst->data);
                  }
! #line 23235 "parse.cc"
      break;
  
!   case 463: /* value78: true_false  */
! #line 3780 "parse.y"
                  {
                    cbl_unimplemented("Boolean constant");
                    YYERROR;
                  }
! #line 23244 "parse.cc"
      break;
  
!   case 464: /* data_descr1: level_name  */
! #line 3787 "parse.y"
                  {
                    assert((yyvsp[0].field) == current_field());
                    if( (yyvsp[0].field)->usage == FldIndex ) {
                      field_type_update((yyvsp[0].field), (yyvsp[0].field)->usage, (yylsp[0]), true);
                    }
                  }
! #line 23255 "parse.cc"
      break;
  
!   case 465: /* data_descr1: level_name CONSTANT is_global as const_value  */
! #line 3795 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    if( field.level != 1 ) {
*************** yyreduce:
*** 19619,19636 ****
                    field.attr |= constant_e;
                    if( (yyvsp[-2].boolean) ) field.attr |= global_e;
                    field.type = FldLiteralN;
! 		  field.data = build_real (float128_type_node, (yyvsp[0].float128));
!                   field.data.initial = string_of((yyvsp[0].float128));
  
!                   if( !cdf_value(field.name, cdfval_t((yyvsp[0].float128))) ) {
!                     error_msg((yylsp[-4]), "%s was defined by CDF", field.name);
                    }
                  }
! #line 19630 "parse.cc"
      break;
  
!   case 445: /* data_descr1: level_name CONSTANT is_global as reserved_value  */
! #line 3487 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    if( field.level != 1 ) {
--- 23266,23287 ----
                    field.attr |= constant_e;
                    if( (yyvsp[-2].boolean) ) field.attr |= global_e;
                    field.type = FldLiteralN;
! 		  field.data = build_real (float128_type_node, (yyvsp[0].cce_type).r);
!                   const char *s = (yyvsp[0].cce_type).s? (yyvsp[0].cce_type).s : string_of((yyvsp[0].cce_type).r);
!                   field.data.original( s );
!                   field.codeset.set();
!                   field.set_initial((yylsp[0]));
  
!                   if( cdf_value(field.name) ) {
!                     cbl_message((yylsp[-4]), Par78CdfDefinedW,
!                                 "%s was defined by CDF", field.name);
                    }
                  }
! #line 23281 "parse.cc"
      break;
  
!   case 466: /* data_descr1: level_name CONSTANT is_global as reserved_value  */
! #line 3818 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    if( field.level != 1 ) {
*************** yyreduce:
*** 19642,19739 ****
                    field.type = FldLiteralA;
  		  auto fig = constant_of(constant_index((yyvsp[0].number)));
                    field.data = fig->data;
                  }
! #line 19647 "parse.cc"
      break;
  
!   case 446: /* data_descr1: level_name CONSTANT is_global as literalism  */
! #line 3501 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    field.attr |= constant_e;
                    if( (yyvsp[-2].boolean) ) field.attr |= global_e;
                    field.type = FldLiteralA;
-                   field.data.capacity = (yyvsp[0].literal).len;
-                   field.data.initial  = (yyvsp[0].literal).data;
                    field.attr |= literal_attr((yyvsp[0].literal).prefix);
                    if( field.level != 1 ) {
                      error_msg((yylsp[0]), "%s must be an 01-level data item", field.name);
                      YYERROR;
                    }
!                   if( !cdf_value(field.name, (yyvsp[0].literal).data) ) {
!                     error_msg((yylsp[-4]), "%s was defined by CDF", field.name);
                    }
-                   value_encoding_check((yylsp[0]), (yyvsp[-4].field));
                  }
! #line 19669 "parse.cc"
      break;
  
!   case 447: /* data_descr1: level_name CONSTANT is_global FROM NAME  */
! #line 3519 "parse.y"
                  {
                    assert((yyvsp[-4].field) == current_field());
                    const cdfval_t *cdfval = cdf_value((yyvsp[0].string));
                    if( !cdfval ) {
!                     error_msg((yylsp[-4]), "%s was defined by CDF", (yyvsp[0].string));
                      YYERROR;
                    }
-                   cbl_field_t& field = *(yyvsp[-4].field);
                    field.attr |= ((yyvsp[-2].boolean) | constant_e);
!                   field.data.capacity = cdfval->string ? strlen(cdfval->string)
!                                                   : sizeof(field.data.value_of());
!                   field.data.initial  = cdfval->string;
!                   field.data = cdfval->number;
!                   if( !cdf_value(field.name, *cdfval) ) {
!                     error_msg((yylsp[-4]), "%s was defined by CDF", field.name);
                    }
                  }
! #line 19691 "parse.cc"
      break;
  
!   case 448: /* data_descr1: "78" NAME VALUE is value78  */
! #line 3538 "parse.y"
                  {
!                   if( ! (dialect_mf() || dialect_gnu()) ) {
!                     dialect_error((yylsp[-4]), "level 78", "mf or gnu");
!                     YYERROR;
!                   }
!                   struct cbl_field_t field = { 0, FldLiteralA, FldInvalid,
!                                                constant_e, 0, 0, 78, nonarray,
!                                                (yylsp[-3]).first_line, "", 0, {}, *(yyvsp[0].field_data), NULL };
!                   if( !namcpy((yylsp[-3]), field.name, (yyvsp[-3].string)) ) YYERROR;
!                   if( field.data.initial ) {
!                     field.attr |= quoted_e;
!                     if( !cdf_value(field.name, field.data.initial) ) {
!                       yywarn("%s was defined by CDF", field.name);
!                     }
!                   } else {
                      field.type = FldLiteralN;
                      field.data.initial = string_of(field.data.value_of());
!                     if( !cdf_value(field.name, field.as_integer()) ) {
!                       yywarn("%s was defined by CDF", field.name);
                      }
                    }
                    if( ((yyval.field) = field_add((yylsp[-3]), &field)) == NULL ) {
                      error_msg((yylsp[-3]), "failed level 78");
-                     YYERROR;
                    }
                  }
! #line 19722 "parse.cc"
      break;
  
!   case 449: /* data_descr1: "88" NAME NULLPTR  */
! #line 3566 "parse.y"
                  {
!                   struct cbl_field_t field = { 0,
!                     FldClass, FldInvalid, 0, 0, 0, 88, nonarray, (yylsp[-1]).first_line, "",
!                     0, cbl_field_t::linkage_t(),
! 		    {}, NULL };
                    if( !namcpy((yylsp[-1]), field.name, (yyvsp[-1].string)) ) YYERROR;
  
                    auto fig = constant_of(constant_index(NULLS))->data.initial;
                    struct cbl_domain_t *domain = new cbl_domain_t[2];
  
!                   domain[0] = cbl_domain_t((yylsp[-1]), false, strlen(fig), fig);
  
                    field.data.domain_as(domain);
  
--- 23293,23403 ----
                    field.type = FldLiteralA;
  		  auto fig = constant_of(constant_index((yyvsp[0].number)));
                    field.data = fig->data;
+                   field.codeset.set();
+                   field.set_initial((yylsp[0]));
                  }
! #line 23300 "parse.cc"
      break;
  
!   case 467: /* data_descr1: level_name CONSTANT is_global as literalism  */
! #line 3834 "parse.y"
                  {
                    cbl_field_t& field = *(yyvsp[-4].field);
                    field.attr |= constant_e;
                    if( (yyvsp[-2].boolean) ) field.attr |= global_e;
                    field.type = FldLiteralA;
                    field.attr |= literal_attr((yyvsp[0].literal).prefix);
+ 
+                   if( ! field.codeset.set((yyvsp[0].literal).encode_as()) ) {
+                     error_msg((yylsp[0]), "CONSTANT inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field.codeset.encoding));
+                   }
+                   field.data.original( (yyvsp[0].literal).data );
+                   field.set_initial((yylsp[0]));
+ 
                    if( field.level != 1 ) {
                      error_msg((yylsp[0]), "%s must be an 01-level data item", field.name);
                      YYERROR;
                    }
!                   if( cdf_value(field.name) ) {
!                     cbl_message((yylsp[-4]), Par78CdfDefinedW,
!                                 "%s was defined by CDF", field.name);
                    }
                  }
! #line 23328 "parse.cc"
      break;
  
!   case 468: /* data_descr1: level_name CONSTANT is_global FROM NAME  */
! #line 3858 "parse.y"
                  {
                    assert((yyvsp[-4].field) == current_field());
+                   cbl_field_t& field(*(yyvsp[-4].field));
+                   if( cdf_value(field.name) ) {
+                     cbl_message((yylsp[-4]), Par78CdfDefinedW,
+                                 "%s was defined by CDF", field.name);
+                   }
                    const cdfval_t *cdfval = cdf_value((yyvsp[0].string));
                    if( !cdfval ) {
!                     error_msg((yylsp[0]), "%s was not defined by CDF", (yyvsp[0].string));
                      YYERROR;
                    }
                    field.attr |= ((yyvsp[-2].boolean) | constant_e);
!                   field.codeset.set();
!                 // Does a const field want an initial string for a numeric value? --jkl
!                   if( cdfval->string ) {
!                     field.data.original( cdfval->string );
!                     field.set_initial((yylsp[0]));
!                   } else {
!                     field.data.capacity(sizeof(field.data.value_of()));
!                     field.data = cdfval->number;
                    }
                  }
! #line 23356 "parse.cc"
      break;
  
!   case 469: /* data_descr1: "78" NAME VALUE is value78  */
! #line 3882 "parse.y"
                  {
!                   dialect_ok((yylsp[-4]), MfLevel78, "LEVEL 78");
!                   cbl_field_t field = { FldLiteralA, constant_e, *(yyvsp[0].field_data).data,
!                                         78, (yyvsp[-3].string), (yylsp[-3]).first_line };
!                   // cce reports no encoded initial value
!                   if( (yyvsp[0].field_data).encoding == no_encoding_e ) { 
                      field.type = FldLiteralN;
+                     field.codeset.set();
                      field.data.initial = string_of(field.data.value_of());
!                     if( cdf_value(field.name) ) {
!                       cbl_message((yylsp[-3]), Par78CdfDefinedW,
!                                   "%s was defined by CDF", field.name);
!                     }
!                   } else{ 
!                     field.attr |= quoted_e;
!                     field.codeset.set((yyvsp[0].field_data).encoding);
!                     field.set_initial((yylsp[0]));
!                     if( cdf_value(field.name) ) {
!                       cbl_message((yylsp[-3]), Par78CdfDefinedW,
!                                   "%s was defined by CDF", field.name);
                      }
                    }
+ 
                    if( ((yyval.field) = field_add((yylsp[-3]), &field)) == NULL ) {
                      error_msg((yylsp[-3]), "failed level 78");
                    }
                  }
! #line 23388 "parse.cc"
      break;
  
!   case 470: /* data_descr1: "88" NAME NULLPTR  */
! #line 3911 "parse.y"
                  {
!                   struct cbl_field_t field = {FldClass, 0, {},
!                                               88, (yyvsp[-1].string), (yylsp[-1]).first_line};
                    if( !namcpy((yylsp[-1]), field.name, (yyvsp[-1].string)) ) YYERROR;
  
                    auto fig = constant_of(constant_index(NULLS))->data.initial;
                    struct cbl_domain_t *domain = new cbl_domain_t[2];
  
!                   domain[0] = cbl_domain_t(false, strlen(fig), fig);
  
                    field.data.domain_as(domain);
  
*************** yyreduce:
*** 19748,19784 ****
  			    (yyval.field)->name, parent->level_str(), parent->name);
                    }
                  }
! #line 19752 "parse.cc"
      break;
  
!   case 450: /* data_descr1: "88" NAME VALUE domains  */
! #line 3592 "parse.y"
                  {
!                   struct cbl_field_t field = { 0,
!                     FldClass, FldInvalid, 0, 0, 0, 88, nonarray, (yylsp[-2]).first_line, "",
!                     0, cbl_field_t::linkage_t(),
! 		    {}, NULL };
!                   if( !namcpy((yylsp[-2]), field.name, (yyvsp[-2].string)) ) YYERROR;
! 
!                   struct cbl_domain_t *domain =
                      new cbl_domain_t[ domains.size() + 1];
  
                    std::copy(domains.begin(), domains.end(), domain);
  
                    field.data.domain_as(domain);
!                   field.data.false_value_as((yyvsp[0].false_domain));
!                   domains.clear();
  
                    if( ((yyval.field) = field_add((yylsp[-2]), &field)) == NULL ) {
                      error_msg((yylsp[-2]), "failed level 88");
                      YYERROR;
                    }
                  }
! #line 19778 "parse.cc"
      break;
  
!   case 451: /* data_descr1: name66 RENAMES name  */
! #line 3615 "parse.y"
                  {
  		  symbol_field_alias_end();
                    if( is_literal((yyvsp[0].field)) ) {
--- 23412,23467 ----
  			    (yyval.field)->name, parent->level_str(), parent->name);
                    }
                  }
! #line 23416 "parse.cc"
      break;
  
!   case 471: /* data_descr1: "88" NAME VALUE domains  */
! #line 3935 "parse.y"
                  {
!                   cbl_field_t field = { 
!                     FldClass, 0, {}, 88, (yyvsp[-2].string), (yylsp[-2]).first_line};
!                   cbl_domain_t *domain =
                      new cbl_domain_t[ domains.size() + 1];
  
+                   auto enc = domains.front().encoding;
+                   auto p = std::find_if( domains.begin(), domains.end(),
+                                          [enc]( const auto& dom ) {
+                                            return !dom.encoding_ok(enc);
+                                          } );
+                   if( p != domains.end() ) {
+                     error_msg( (yylsp[0]), "%qs has encoding %qs "
+                                "but value %qs has encoding %qs",
+                                (yyvsp[-2].string), 
+                                current_t::cbl_encoding_str(domains.front().encoding),
+                                p->first.name(), 
+                                current_t::cbl_encoding_str(p->encoding) );
+                   }
                    std::copy(domains.begin(), domains.end(), domain);
+                   domains.clear();
  
                    field.data.domain_as(domain);
!                   field.data.false_value_as((yyvsp[0].false_domain).domain);
!                   field.codeset.set();
  
                    if( ((yyval.field) = field_add((yylsp[-2]), &field)) == NULL ) {
                      error_msg((yylsp[-2]), "failed level 88");
                      YYERROR;
                    }
+                   cbl_field_t *parent = parent_of((yyval.field));
+                   if( parent->codeset.valid() &&
+                       enc != parent->codeset.encoding ) {
+                     error_msg( (yylsp[-2]), "%qs has encoding %qs "
+                                "but values have encoding %qs",
+                                (yyvsp[-2].string), 
+                                current_t::cbl_encoding_str(parent->codeset.encoding),
+                                current_t::cbl_encoding_str(enc) );
+                   } 
                  }
! #line 23461 "parse.cc"
      break;
  
!   case 472: /* data_descr1: name66 RENAMES name  */
! #line 3977 "parse.y"
                  {
  		  symbol_field_alias_end();
                    if( is_literal((yyvsp[0].field)) ) {
*************** yyreduce:
*** 19810,19820 ****
                    (yyval.field) = cbl_field_of(symbol_field_alias(orig, (yyvsp[-2].string)));
  		  symbol_field_location(field_index((yyval.field)), (yylsp[-2]));
                  }
! #line 19814 "parse.cc"
      break;
  
!   case 452: /* data_descr1: name66 RENAMES name THRU name  */
! #line 3648 "parse.y"
                  {
  		  symbol_field_alias_end();
                    if( !immediately_follows((yyvsp[-2].field)) ) {
--- 23493,23503 ----
                    (yyval.field) = cbl_field_of(symbol_field_alias(orig, (yyvsp[-2].string)));
  		  symbol_field_location(field_index((yyval.field)), (yylsp[-2]));
                  }
! #line 23497 "parse.cc"
      break;
  
!   case 473: /* data_descr1: name66 RENAMES name THRU name  */
! #line 4010 "parse.y"
                  {
  		  symbol_field_alias_end();
                    if( !immediately_follows((yyvsp[-2].field)) ) {
*************** yyreduce:
*** 19876,19896 ****
                    (yyval.field) = cbl_field_of(symbol_field_alias2(orig, last, (yyvsp[-4].string)));
  		  symbol_field_location(field_index((yyval.field)), (yylsp[-4]));
                  }
! #line 19880 "parse.cc"
      break;
  
!   case 453: /* data_descr1: level_name data_clauses  */
! #line 3711 "parse.y"
                  {
                    gcc_assert((yyvsp[-1].field) == current_field());
                    if( (yyvsp[0].number) == value_clause_e ) { // only VALUE, no PIC
                      // Error unless VALUE is a figurative constant or (quoted) string.
!                     if( (yyvsp[-1].field)->type != FldPointer &&
!                         ! (yyvsp[-1].field)->has_attr(quoted_e) &&
!                         normal_value_e == cbl_figconst_of((yyvsp[-1].field)->data.initial) )
!                     {
!                       error_msg((yylsp[-1]), "%s numeric VALUE %s requires PICTURE",
!                                (yyvsp[-1].field)->name, (yyvsp[-1].field)->data.initial);
                      }
                      if( null_value_e == cbl_figconst_of((yyvsp[-1].field)->data.initial) ) {
                        // don't change the type
--- 23559,23585 ----
                    (yyval.field) = cbl_field_of(symbol_field_alias2(orig, last, (yyvsp[-4].string)));
  		  symbol_field_location(field_index((yyval.field)), (yylsp[-4]));
                  }
! #line 23563 "parse.cc"
      break;
  
!   case 474: /* data_descr1: level_name data_clauses  */
! #line 4073 "parse.y"
                  {
                    gcc_assert((yyvsp[-1].field) == current_field());
+                   //// cbl_field_t& F(*$field);
+ 
                    if( (yyvsp[0].number) == value_clause_e ) { // only VALUE, no PIC
                      // Error unless VALUE is a figurative constant or (quoted) string.
!                     if( (yyvsp[-1].field)->type != FldPointer && ! (yyvsp[-1].field)->has_attr(quoted_e) ) {
!                       switch( cbl_figconst_of((yyvsp[-1].field)->data.initial) ) {
!                       case normal_value_e:
!                       case zero_value_e:
!                         break;
!                       default:
!                         error_msg((yylsp[-1]), "%qs numeric VALUE %qs requires PICTURE",
!                                   (yyvsp[-1].field)->name, (yyvsp[-1].field)->data.original());
!                         YYERROR; // do not attempt to set capacity
!                       }
                      }
                      if( null_value_e == cbl_figconst_of((yyvsp[-1].field)->data.initial) ) {
                        // don't change the type
*************** yyreduce:
*** 19900,19906 ****
                        assert(FldPointer != (yyvsp[-1].field)->type);
                        (yyvsp[-1].field)->type = FldAlphanumeric;
                        if( (yyvsp[-1].field)->data.initial ) {
!                         (yyvsp[-1].field)->data.capacity = strlen((yyvsp[-1].field)->data.initial);
                        }
                      }
                    }
--- 23589,23595 ----
                        assert(FldPointer != (yyvsp[-1].field)->type);
                        (yyvsp[-1].field)->type = FldAlphanumeric;
                        if( (yyvsp[-1].field)->data.initial ) {
!                         (yyvsp[-1].field)->set_capacity(strlen((yyvsp[-1].field)->data.initial));
                        }
                      }
                    }
*************** yyreduce:
*** 19909,19916 ****
                    if( (yyvsp[-1].field)->has_attr(blank_zero_e) ) {
                      switch((yyvsp[-1].field)->type) {
                      case FldNumericEdited:
!                       if( (yyvsp[-1].field)->has_attr(signable_e) ) {
!                         error_msg((yylsp[0]),  "%s has 'S' in PICTURE, cannot be BLANK WHEN ZERO",
                                    (yyvsp[-1].field)->name );
                        }
                        break;
--- 23598,23606 ----
                    if( (yyvsp[-1].field)->has_attr(blank_zero_e) ) {
                      switch((yyvsp[-1].field)->type) {
                      case FldNumericEdited:
!                       // Test appears to be invalid.
!                       if( false && (yyvsp[-1].field)->has_attr(signable_e) ) {
!                         error_msg((yylsp[0]),  "%s has signed PICTURE, cannot be BLANK WHEN ZERO",
                                    (yyvsp[-1].field)->name );
                        }
                        break;
*************** yyreduce:
*** 19942,20010 ****
  
                    // Increase numeric display capacity by 1 for SIGN SEPARATE.
                    if( (yyvsp[-1].field)->type == FldNumericDisplay &&
!                       is_signable((yyvsp[-1].field)) &&
!                       (yyvsp[-1].field)->has_attr(separate_e) ){
!                     (yyvsp[-1].field)->data.capacity++;
                    }
  
                    // Set Packed-Decimal capacity
                    if( (yyvsp[-1].field)->type == FldPacked ) {
!                     (yyvsp[-1].field)->data.capacity = type_capacity((yyvsp[-1].field)->type,
!                                                           (yyvsp[-1].field)->data.digits);
!                   if( (yyvsp[-1].field)->attr & separate_e )
!                     {
!                     // This is a gentle kludge required by the the belated
!                     // introduction of COMP-6, which is like COMP-3 but with no
!                     // sign nybble.  The code in type_capacity assumes a sign
!                     // nybble.
!                     (yyvsp[-1].field)->data.capacity = ((yyvsp[-1].field)->data.digits+1)/2;
!                     }
                    }
  
                    // Check COMP-5 capacity
  		  // No capacity means no PICTURE, valid only for a (potential) group
!                   if( (yyvsp[-1].field)->type == FldNumericBin5 && (yyvsp[-1].field)->data.capacity == 0 ) {
!                     if(  has_clause ((yyvsp[0].number), usage_clause_e) &&
!                         !has_clause ((yyvsp[0].number), picture_clause_e) ) {
! 			// invalidate until a child is born
! 		      (yyvsp[-1].field)->type = FldInvalid;
                      }
                    }
  
                    // Ensure signed initial VALUE is for signed numeric type
!                   if( is_numeric((yyvsp[-1].field)) &&
! 		      (yyvsp[-1].field)->data.initial &&
! 		      (yyvsp[-1].field)->type != FldFloat )
! 		  {
!                     switch( (yyvsp[-1].field)->data.initial[0] ) {
!                     case '-':
!                       if( !(yyvsp[-1].field)->has_attr(signable_e) ) {
!                         error_msg((yylsp[-1]), "%s is unsigned but has signed VALUE '%s'",
!                                  (yyvsp[-1].field)->name, (yyvsp[-1].field)->data.initial);
                        }
                      }
                    }
  
                    // Verify VALUE
!                   (yyvsp[-1].field)->report_invalid_initial_value((yylsp[0]));
  
                    // verify REDEFINES
                    const auto parent = parent_of((yyvsp[-1].field));
                    if( parent && (yyvsp[-1].field)->level == parent->level ) {
                      valid_redefine((yylsp[-1]), (yyvsp[-1].field), parent); // calls yyerror
                    }
                  }
! #line 19998 "parse.cc"
      break;
  
!   case 454: /* literalism: LITERAL  */
! #line 3826 "parse.y"
                          { (yyval.literal) = (yyvsp[0].literal); }
! #line 20004 "parse.cc"
      break;
  
!   case 455: /* literalism: literalism '&' LITERAL  */
! #line 3828 "parse.y"
                  {
                    (yyval.literal) = (yyvsp[-2].literal);
                    literal_t& output((yyval.literal));
--- 23632,23747 ----
  
                    // Increase numeric display capacity by 1 for SIGN SEPARATE.
                    if( (yyvsp[-1].field)->type == FldNumericDisplay &&
!                       (yyvsp[-1].field)->has_attr(separate_e) ) {
!                     gcc_assert(is_signable((yyvsp[-1].field)));
!                     (yyvsp[-1].field)->add_capacity(1);
!                     (yyvsp[-1].field)->blank_initial((yyvsp[-1].field)->char_capacity());
                    }
  
                    // Set Packed-Decimal capacity
                    if( (yyvsp[-1].field)->type == FldPacked ) {
!                     // COMP-6 is like COMP-3 but with no sign nybble.  The
!                     // code in type_capacity assumes a sign nybble.
!                     auto one_less = (yyvsp[-1].field)->has_attr(separate_e) ? 1 : 0;
! 
!                     (yyvsp[-1].field)->set_capacity(type_capacity((yyvsp[-1].field)->type,
!                                                        (yyvsp[-1].field)->data.digits - one_less));
                    }
  
                    // Check COMP-5 capacity
  		  // No capacity means no PICTURE, valid only for a (potential) group
!                   if( is_among( (yyvsp[-1].field)->type, {FldNumericBinary, FldNumericBin5} ) ) {
!                     if( (yyvsp[-1].field)->data.capacity() == 0 ) {
!                       if(  has_clause ((yyvsp[0].number), usage_clause_e) &&
!                           !has_clause ((yyvsp[0].number), picture_clause_e) ) {
! 		          // invalidate until a child is born
! 		        (yyvsp[-1].field)->type = FldInvalid;
!                       }
!                     } else {
!                       if( ((yyvsp[-1].field)->data.initial) ) {
!                         if( strlen((yyvsp[-1].field)->data.initial) < (yyvsp[-1].field)->data.capacity() ) {
!                           (yyvsp[-1].field)->blank_initial( (yyvsp[-1].field)->data.capacity() );
!                         }
!                       }
                      }
                    }
  
                    // Ensure signed initial VALUE is for signed numeric type
!                   if( is_numeric((yyvsp[-1].field)) ) {
!                     auto original = (yyvsp[-1].field)->data.original();
!                     if( original && (yyvsp[-1].field)->type != FldFloat ) {
!                       switch( original[0] ) {
!                       case '-':
!                         if( !(yyvsp[-1].field)->has_attr(signable_e) ) {
!                           error_msg((yylsp[-1]), "%s is unsigned but has signed VALUE '%s'",
!                                     (yyvsp[-1].field)->name, original);
!                         }
                        }
                      }
                    }
  
                    // Verify VALUE
!                   bool bad_value = (yyvsp[-1].field)->report_invalid_initial_value((yylsp[0]));
  
                    // verify REDEFINES
                    const auto parent = parent_of((yyvsp[-1].field));
                    if( parent && (yyvsp[-1].field)->level == parent->level ) {
                      valid_redefine((yylsp[-1]), (yyvsp[-1].field), parent); // calls yyerror
                    }
+                   
+                   // verify VALUE for Numeric Edited
+                   if( (yyvsp[-1].field)->type == FldNumericEdited ) {
+                     if( !validate_numeric_edited ((yyvsp[-1].field)) ) {
+                       error_msg((yylsp[0]), "%s: PICTURE and VALUE are incompatible",
+                                 (yyvsp[-1].field)->name);
+                     }
+                   }
+ 
+                   // verify VALUE for numeric
+                   if ((yyvsp[0].number) & value_clause_e) {
+                     bool good_value =
+                         ((yyvsp[-1].field)->data.etc_ok() || (yyvsp[-1].field)->data.original()) && ! bad_value;
+                     if( good_value ) { // ensure VALUE had a value
+                       if( is_numeric((yyvsp[-1].field)) || (yyvsp[-1].field)->type == FldNumericEdited ) {
+                         if( zero_value_e == cbl_figconst_of((yyvsp[-1].field)->data.original()) ) {
+                           (yyvsp[-1].field)->blank_initial((yyvsp[-1].field)->char_capacity());
+                         }
+                         (yyvsp[-1].field)->encode_numeric((yyvsp[-1].field)->data.original(), 
+                                                data_clause_locations[value_clause_e],
+                                                (yyvsp[-1].field)->data.original_numeric());
+                       }
+                     }
+                   } else { // no VALUE clause
+                     if( false && (yyvsp[-1].field)->data.initial ) {
+                       free(const_cast<char*>((yyvsp[-1].field)->data.initial));
+                       (yyvsp[-1].field)->data.initial = nullptr;
+                     }                      
+                   }
+ 
+                   // Any field may become a group, so may have VALUE with no PICTURE
+                   const auto stooges3 = (picture_clause_e |
+                                          value_clause_e |
+                                          usage_clause_e);
+                   if( ((yyvsp[0].number) & stooges3) == value_clause_e ) { // only
+                     (yyvsp[-1].field)->type = FldInvalid;
+                     auto fig = cbl_figconst_of((yyvsp[-1].field)->data.original());
+                     if( null_value_e != fig ) {
+                       (yyvsp[-1].field)->set_initial( (yyvsp[-1].field)->data.capacity(),
+                                            data_clause_locations[value_clause_e]);
+                     }
+                   }
                  }
! #line 23735 "parse.cc"
      break;
  
!   case 475: /* literalism: LITERAL  */
! #line 4242 "parse.y"
                          { (yyval.literal) = (yyvsp[0].literal); }
! #line 23741 "parse.cc"
      break;
  
!   case 476: /* literalism: literalism '&' LITERAL  */
! #line 4244 "parse.y"
                  {
                    (yyval.literal) = (yyvsp[-2].literal);
                    literal_t& output((yyval.literal));
*************** yyreduce:
*** 20017,20031 ****
  
                    if( (yyvsp[0].literal).prefix[0] ) { strcpy(output.prefix, (yyvsp[0].literal).prefix); }
                    if( ! (yyvsp[-2].literal).compatible_prefix((yyvsp[0].literal)) ) {
!                     yywarn("dissimilar literals, '%s' prevails",
!                           output.prefix);
                    }
                  }
! #line 20025 "parse.cc"
      break;
  
!   case 456: /* name66: "66" NAME  */
! #line 3847 "parse.y"
                  {
                    build_symbol_map();
  		  if( ! symbol_field_alias_begin() ) {
--- 23754,23769 ----
  
                    if( (yyvsp[0].literal).prefix[0] ) { strcpy(output.prefix, (yyvsp[0].literal).prefix); }
                    if( ! (yyvsp[-2].literal).compatible_prefix((yyvsp[0].literal)) ) {
!                     cbl_message((yyloc), ParLiteral2W,
!                                 "dissimilar literals, '%s' prevails",
!                                 output.prefix);
                    }
                  }
! #line 23763 "parse.cc"
      break;
  
!   case 477: /* name66: "66" NAME  */
! #line 4264 "parse.y"
                  {
                    build_symbol_map();
  		  if( ! symbol_field_alias_begin() ) {
*************** yyreduce:
*** 20034,20044 ****
  		  }
                    (yyval.string) = (yyvsp[0].string);
                  }
! #line 20038 "parse.cc"
      break;
  
!   case 457: /* data_clauses: data_clause  */
! #line 3858 "parse.y"
                  {
                    if( (yyvsp[0].number) == redefines_clause_e ) {
                      auto parent = parent_of(current_field());
--- 23772,23782 ----
  		  }
                    (yyval.string) = (yyvsp[0].string);
                  }
! #line 23776 "parse.cc"
      break;
  
!   case 478: /* data_clauses: data_clause  */
! #line 4275 "parse.y"
                  {
                    if( (yyvsp[0].number) == redefines_clause_e ) {
                      auto parent = parent_of(current_field());
*************** yyreduce:
*** 20055,20065 ****
                      }
                    }
                  }
! #line 20059 "parse.cc"
      break;
  
!   case 458: /* data_clauses: data_clauses data_clause  */
! #line 3874 "parse.y"
                                           {
                    const char *clause = "data";
                    switch((yyvsp[0].number)) {
--- 23793,23803 ----
                      }
                    }
                  }
! #line 23797 "parse.cc"
      break;
  
!   case 479: /* data_clauses: data_clauses data_clause  */
! #line 4291 "parse.y"
                                           {
                    const char *clause = "data";
                    switch((yyvsp[0].number)) {
*************** yyreduce:
*** 20085,20090 ****
--- 23823,23834 ----
                      YYERROR;
                    }
  
+ 		  // We could be more judicious. We could clear the map when
+ 		  // the first clause is encountered, and e.g. set the location
+ 		  // to just the VALUE string, not the whole clause.  As of now
+ 		  // the map isn't used, though.
+                   data_clause_locations[data_clause_t((yyvsp[0].number))] = (yylsp[0]);
+ 
                    if( (yyvsp[0].number) == redefines_clause_e ) {
                      error_msg((yylsp[0]), "REDEFINES must appear "
                               "immediately after LEVEL and NAME");
*************** yyreduce:
*** 20134,20149 ****
                    }
  
                    if( gcobol_feature_embiggen() ) {
!                     if( field->is_binary_integer() && field->data.capacity == 4) {
                        auto redefined = symbol_redefines(field);
                        if( redefined && redefined->type == FldPointer ) {
!                         if( yydebug ) {
!                           yywarn("expanding %s size from %u bytes to %wd "
! 				 "because it redefines %s with %<USAGE POINTER%>",
!                                 field->name, field->size(),
!                                 int_size_in_bytes(ptr_type_node),
!                                 redefined->name);
!                         }
                          field->embiggen();
                        }
                      }
--- 23878,23891 ----
                    }
  
                    if( gcobol_feature_embiggen() ) {
!                     if( field->is_binary_integer() && field->data.capacity() == 4) {
                        auto redefined = symbol_redefines(field);
                        if( redefined && redefined->type == FldPointer ) {
!                         dbgmsg("expanding %s size from %u bytes to %lu "
! 			       "because it redefines %s with USAGE POINTER",
!                                field->name, field->size(),
!                                int_size_in_bytes(ptr_type_node),
!                                redefined->name);
                          field->embiggen();
                        }
                      }
*************** yyreduce:
*** 20165,20216 ****
  			     field->name, 3 + cbl_field_type_str(field->type));
  		  }
                  }
! #line 20169 "parse.cc"
      break;
  
!   case 459: /* data_clause: any_length  */
! #line 3981 "parse.y"
                                    { (yyval.number) = any_length_e; }
! #line 20175 "parse.cc"
      break;
  
!   case 460: /* data_clause: based_clause  */
! #line 3982 "parse.y"
                                    { (yyval.number) = based_clause_e; }
! #line 20181 "parse.cc"
      break;
  
!   case 461: /* data_clause: blank_zero_clause  */
! #line 3983 "parse.y"
                                    { (yyval.number) = blank_zero_clause_e; }
! #line 20187 "parse.cc"
      break;
  
!   case 462: /* data_clause: external_clause  */
! #line 3984 "parse.y"
                                    { (yyval.number) = external_clause_e; }
! #line 20193 "parse.cc"
      break;
  
!   case 463: /* data_clause: global_clause  */
! #line 3985 "parse.y"
                                    { (yyval.number) = global_clause_e; }
! #line 20199 "parse.cc"
      break;
  
!   case 464: /* data_clause: justified_clause  */
! #line 3986 "parse.y"
                                    { (yyval.number) = justified_clause_e; }
! #line 20205 "parse.cc"
      break;
  
!   case 465: /* data_clause: occurs_clause  */
! #line 3987 "parse.y"
                                    { (yyval.number) = occurs_clause_e;
                    cbl_field_t *field = current_field();
                    switch( field->level ) {
                    case 1:
! 		    if( dialect_mf() ) break;
  		    __attribute__((fallthrough));
                    case 77:
                    case 88:
--- 23907,23958 ----
  			     field->name, 3 + cbl_field_type_str(field->type));
  		  }
                  }
! #line 23911 "parse.cc"
      break;
  
!   case 480: /* data_clause: any_length  */
! #line 4402 "parse.y"
                                    { (yyval.number) = any_length_e; }
! #line 23917 "parse.cc"
      break;
  
!   case 481: /* data_clause: based_clause  */
! #line 4403 "parse.y"
                                    { (yyval.number) = based_clause_e; }
! #line 23923 "parse.cc"
      break;
  
!   case 482: /* data_clause: blank_zero_clause  */
! #line 4404 "parse.y"
                                    { (yyval.number) = blank_zero_clause_e; }
! #line 23929 "parse.cc"
      break;
  
!   case 483: /* data_clause: external_clause  */
! #line 4405 "parse.y"
                                    { (yyval.number) = external_clause_e; }
! #line 23935 "parse.cc"
      break;
  
!   case 484: /* data_clause: global_clause  */
! #line 4406 "parse.y"
                                    { (yyval.number) = global_clause_e; }
! #line 23941 "parse.cc"
      break;
  
!   case 485: /* data_clause: justified_clause  */
! #line 4407 "parse.y"
                                    { (yyval.number) = justified_clause_e; }
! #line 23947 "parse.cc"
      break;
  
!   case 486: /* data_clause: occurs_clause  */
! #line 4408 "parse.y"
                                    { (yyval.number) = occurs_clause_e;
                    cbl_field_t *field = current_field();
                    switch( field->level ) {
                    case 1:
! 		    if( dialect_ok((yyloc), MfLevel_1_Occurs, "LEVEL 01 for OCCURS") ) break;
  		    __attribute__((fallthrough));
                    case 77:
                    case 88:
*************** yyreduce:
*** 20221,20327 ****
                      assert( field->parent > 0 );
                    }
                  }
! #line 20225 "parse.cc"
      break;
  
!   case 466: /* data_clause: picture_clause  */
! #line 4002 "parse.y"
                                    { (yyval.number) = picture_clause_e; }
! #line 20231 "parse.cc"
      break;
  
!   case 467: /* data_clause: redefines_clause  */
! #line 4003 "parse.y"
                                    { (yyval.number) = redefines_clause_e; }
! #line 20237 "parse.cc"
      break;
  
!   case 468: /* data_clause: same_clause  */
! #line 4004 "parse.y"
                                    { (yyval.number) = same_clause_e; }
! #line 20243 "parse.cc"
      break;
  
!   case 469: /* data_clause: sign_clause  */
! #line 4005 "parse.y"
                                    { (yyval.number) = sign_clause_e; }
! #line 20249 "parse.cc"
      break;
  
!   case 470: /* data_clause: synched_clause  */
! #line 4006 "parse.y"
                                    { (yyval.number) = synched_clause_e; }
! #line 20255 "parse.cc"
      break;
  
!   case 471: /* data_clause: type_clause  */
! #line 4007 "parse.y"
                                    { (yyval.number) = type_clause_e; }
! #line 20261 "parse.cc"
      break;
  
!   case 472: /* data_clause: typedef_clause  */
! #line 4008 "parse.y"
                                    { (yyval.number) = typedef_clause_e; }
! #line 20267 "parse.cc"
      break;
  
!   case 473: /* data_clause: usage_clause  */
! #line 4009 "parse.y"
                                    { (yyval.number) = usage_clause_e; }
! #line 20273 "parse.cc"
      break;
  
!   case 474: /* data_clause: value_clause  */
! #line 4010 "parse.y"
                                    { (yyval.number) = value_clause_e;
                    cbl_field_t *field = current_field();
  
-                   if( field->type != FldAlphanumeric &&
-                       field->data.initial && field->data.initial[0] )
-                   {
-                     // Embedded NULs are valid only in FldAlphanumeric, and are
-                     // already handled.
-                     if( strlen(field->data.initial) < field->data.capacity ) {
-                       auto p = blank_pad_initial( field->data.initial,
-                                                   strlen(field->data.initial),
-                                                   field->data.capacity );
-                       if( !p ) YYERROR;
-                       field->data.initial = p;
-                     }
-                   }
  		  const cbl_field_t *parent;
  		  if( (parent = parent_has_value(field)) != NULL ) {
! 		    error_msg((yylsp[0]), "VALUE invalid because group %s has VALUE clause",
! 		              parent->name);
  		  }
                  }
! #line 20300 "parse.cc"
      break;
  
!   case 475: /* data_clause: volatile_clause  */
! #line 4032 "parse.y"
                                       { (yyval.number) = volatile_clause_e; }
! #line 20306 "parse.cc"
      break;
  
!   case 476: /* picture_clause: PIC signed nps nines nps  */
! #line 4036 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    if( !field_type_update(field, FldNumericDisplay, (yyloc)) ) {
                      YYERROR;
                    }
                    ERROR_IF_CAPACITY((yylsp[-4]), field);
                    field->attr |= (yyvsp[-3].number);
-                   field->data.capacity = type_capacity(field->type, (yyvsp[-1].number));
                    field->data.digits = (yyvsp[-1].number);
!                   if( long(field->data.digits) != (yyvsp[-1].number) ) {
!                     error_msg((yylsp[-3]), "indicated size would be %d bytes, "
!                              "maximum data item size is %u",
!                              (yyvsp[-1].number), UINT32_MAX);
!                   }
! 
                    if( (yyvsp[-2].number) && (yyvsp[0].number) ) { // leading and trailing P's
                      error_msg((yylsp[-3]), "PIC cannot have both leading and trailing P");
                      YYERROR;
--- 23963,24069 ----
                      assert( field->parent > 0 );
                    }
                  }
! #line 23967 "parse.cc"
      break;
  
!   case 487: /* data_clause: picture_clause  */
! #line 4423 "parse.y"
                                    { (yyval.number) = picture_clause_e; }
! #line 23973 "parse.cc"
      break;
  
!   case 488: /* data_clause: redefines_clause  */
! #line 4424 "parse.y"
                                    { (yyval.number) = redefines_clause_e; }
! #line 23979 "parse.cc"
      break;
  
!   case 489: /* data_clause: same_clause  */
! #line 4425 "parse.y"
                                    { (yyval.number) = same_clause_e; }
! #line 23985 "parse.cc"
      break;
  
!   case 490: /* data_clause: sign_clause  */
! #line 4426 "parse.y"
                                    { (yyval.number) = sign_clause_e; }
! #line 23991 "parse.cc"
      break;
  
!   case 491: /* data_clause: synched_clause  */
! #line 4427 "parse.y"
                                    { (yyval.number) = synched_clause_e; }
! #line 23997 "parse.cc"
      break;
  
!   case 492: /* data_clause: type_clause  */
! #line 4428 "parse.y"
                                    { (yyval.number) = type_clause_e; }
! #line 24003 "parse.cc"
      break;
  
!   case 493: /* data_clause: typedef_clause  */
! #line 4429 "parse.y"
                                    { (yyval.number) = typedef_clause_e; }
! #line 24009 "parse.cc"
      break;
  
!   case 494: /* data_clause: usage_clause  */
! #line 4430 "parse.y"
                                    { (yyval.number) = usage_clause_e; }
! #line 24015 "parse.cc"
      break;
  
!   case 495: /* data_clause: value_clause  */
! #line 4431 "parse.y"
                                    { (yyval.number) = value_clause_e;
                    cbl_field_t *field = current_field();
  
  		  const cbl_field_t *parent;
+ 		  if( (parent = parent_has_picture(field)) != NULL ) {
+ 		    error_msg((yylsp[0]), "VALUE invalid because group %s (%s) has PICTURE clause",
+ 		              parent->name, 3 + cbl_field_type_str(parent->type));
+ 		  }
  		  if( (parent = parent_has_value(field)) != NULL ) {
! 		    error_msg((yylsp[0]), "VALUE invalid because group %s (%s) has VALUE clause",
! 		              parent->name, 3 + cbl_field_type_str(parent->type));
  		  }
                  }
! #line 24033 "parse.cc"
      break;
  
!   case 496: /* data_clause: volatile_clause  */
! #line 4444 "parse.y"
                                       { (yyval.number) = volatile_clause_e; }
! #line 24039 "parse.cc"
      break;
  
!   case 497: /* picture_clause: PIC signed nps nines nps  */
! #line 4448 "parse.y"
                  {
                    cbl_field_t *field = current_field();
+                   if( ! field->codeset.set() ) {
+                     error_msg((yylsp[-1]), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
                    if( !field_type_update(field, FldNumericDisplay, (yyloc)) ) {
                      YYERROR;
                    }
                    ERROR_IF_CAPACITY((yylsp[-4]), field);
+                   // If signable_e is inherited from the group, it is effective
+                   // regardless of an 'S' in PICTURE.
+                   if( field->has_attr(signable_e) && ! (yyvsp[-3].number) ) {
+                     dbgmsg("%s PICTURE must be signed for SIGN IS", field->name);
+                   }
+                   if( field->type == FldNumericEdited && (yyvsp[-3].number) ) {
+                     gcc_assert(field->has_attr(blank_zero_e));
+                     error_msg((yylsp[-3]), "%<S%> in PICTURE invalid with BLANK WHEN ZERO");
+                   }
                    field->attr |= (yyvsp[-3].number);
                    field->data.digits = (yyvsp[-1].number);
!                   auto nchar = type_capacity(field->type, (yyvsp[-1].number));
!                   field->set_capacity(nchar);
!                   field->blank_initial(nchar);
                    if( (yyvsp[-2].number) && (yyvsp[0].number) ) { // leading and trailing P's
                      error_msg((yylsp[-3]), "PIC cannot have both leading and trailing P");
                      YYERROR;
*************** yyreduce:
*** 20332,20400 ****
                    }
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-3]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->data.capacity);
                    }
                  }
! #line 20339 "parse.cc"
      break;
  
!   case 477: /* picture_clause: PIC signed NINEV nine  */
! #line 4066 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->data.digits = (yyvsp[-1].number) + (yyvsp[0].number);
  
                    if( field->is_binary_integer() ) {
!                     field->data.capacity = type_capacity(field->type,
!                                                          field->data.digits);
                    } else {
                      if( !field_type_update(field, FldNumericDisplay, (yyloc)) ) {
                        YYERROR;
                      }
                      ERROR_IF_CAPACITY((yylsp[-3]), field);
!                     field->attr |= (yyvsp[-2].number);
!                     field->data.capacity = field->data.digits;
                      field->data.rdigits = (yyvsp[0].number);
                    }
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-2]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->data.capacity);
                    }
                  }
! #line 20365 "parse.cc"
      break;
  
!   case 478: /* picture_clause: PIC signed NINEDOT nine  */
! #line 4088 "parse.y"
                  {
                    uint32_t size = (yyvsp[-1].number) + (yyvsp[0].number);
  
-                   cbl_field_t *field = current_field();
                    if( !field_type_update(field, FldNumericEdited, (yyloc)) ) {
                      YYERROR;
                    }
                    ERROR_IF_CAPACITY((yylsp[-3]), field);
                    field->attr |= (yyvsp[-2].number);
                    field->data.digits = size;
!                   field->data.capacity = ++size;
                    field->data.rdigits = (yyvsp[0].number);
  
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-2]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->data.capacity);
                    }
                  }
! #line 20388 "parse.cc"
      break;
  
!   case 479: /* picture_clause: PIC alphanum_pic  */
! #line 4108 "parse.y"
                  {
                    cbl_field_t *field = current_field();
! 
  		  if( field->type == FldNumericBin5 &&
! 		      field->data.capacity == 0xFF  &&
! 		      (dialect_gnu() || dialect_mf()) )
  		  { // PIC X COMP-X or COMP-9
  		    if( ! field->has_attr(all_x_e) ) {
  		      error_msg((yylsp[0]), "COMP PICTURE requires all X%'s or all 9%'s");
--- 24074,24168 ----
                    }
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-3]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->char_capacity());
                    }
                  }
! #line 24081 "parse.cc"
      break;
  
!   case 498: /* picture_clause: PIC signed NINEV nine  */
! #line 4487 "parse.y"
                  {
                    cbl_field_t *field = current_field();
+                   if( ! field->codeset.set() ) {
+                     error_msg((yyloc), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
                    field->data.digits = (yyvsp[-1].number) + (yyvsp[0].number);
+                   field->attr |= (yyvsp[-2].number);
+                   if( field->type == FldNumericEdited && (yyvsp[-2].number) ) {
+                     gcc_assert(field->has_attr(blank_zero_e));
+                     error_msg((yylsp[-2]), "%<S%> in PICTURE invalid with BLANK WHEN ZERO");
+                   }
  
                    if( field->is_binary_integer() ) {
!                     field->set_capacity(type_capacity(field->type,
!                                                       field->data.digits));
!                     field->data.rdigits = (yyvsp[0].number);
                    } else {
                      if( !field_type_update(field, FldNumericDisplay, (yyloc)) ) {
                        YYERROR;
                      }
                      ERROR_IF_CAPACITY((yylsp[-3]), field);
!                     field->set_capacity(field->data.digits);
                      field->data.rdigits = (yyvsp[0].number);
                    }
+                   // data.initial has blanks for character-encoded data
+ 		  // data.capacity may reflect the binary size, if any. 
+                   field->blank_initial(field->data.digits);
+ 
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-2]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->char_capacity());
                    }
                  }
! #line 24120 "parse.cc"
      break;
  
!   case 499: /* picture_clause: PIC signed NINEDOT nine  */
! #line 4522 "parse.y"
                  {
+                   cbl_field_t *field = current_field();
+                   if( ! field->codeset.set() ) {
+                     error_msg((yyloc), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
+ 
                    uint32_t size = (yyvsp[-1].number) + (yyvsp[0].number);
  
                    if( !field_type_update(field, FldNumericEdited, (yyloc)) ) {
                      YYERROR;
                    }
                    ERROR_IF_CAPACITY((yylsp[-3]), field);
                    field->attr |= (yyvsp[-2].number);
+                   if( (yyvsp[-2].number) ) {
+                     gcc_assert(field->has_attr(blank_zero_e));
+                     error_msg((yylsp[-2]), "%<S%> in PICTURE invalid with BLANK WHEN ZERO");
+                   }
                    field->data.digits = size;
!                   field->set_capacity(++size);
                    field->data.rdigits = (yyvsp[0].number);
+                   field->blank_initial(size);
  
                    if( ! field->reasonable_capacity() ) {
                      error_msg((yylsp[-2]), "%s limited to capacity of %d (would need %u)",
! 			     field->name, MAX_FIXED_POINT_DIGITS, field->char_capacity());
                    }
                  }
! #line 24153 "parse.cc"
      break;
  
!   case 500: /* picture_clause: PIC alphanum_pic  */
! #line 4552 "parse.y"
                  {
                    cbl_field_t *field = current_field();
!                   if( ! field->codeset.valid() ) { // set by the picture
!                     dbgmsg("%s:%d: %s has invalid encoding",
!                            __FILE__, __LINE__, field->name);
!                   }
  		  if( field->type == FldNumericBin5 &&
! 		      field->data.capacity() == 0xFF  &&
! 		      dialect_ok((yylsp[0]), MfCompX, "alphanumeric PICTURE with numeric USAGE") )
  		  { // PIC X COMP-X or COMP-9
  		    if( ! field->has_attr(all_x_e) ) {
  		      error_msg((yylsp[0]), "COMP PICTURE requires all X%'s or all 9%'s");
*************** yyreduce:
*** 20407,20435 ****
                      }
  		  }
                    assert(0 < (yyvsp[0].number));
!                   if( field->data.initial != NULL ) {
!                     if( 0 < field->data.capacity &&
!                             field->data.capacity < uint32_t((yyvsp[0].number)) ) {
!                       auto p = blank_pad_initial( field->data.initial,
!                                                   field->data.capacity, (yyvsp[0].number) );
!                       if( !p ) YYERROR;
!                       field->data.initial = p;
!                     }
                    }
! 
!                   field->data.capacity = (yyvsp[0].number);
!                   field->data.picture = NULL;
! 
!                   if( false ) dbgmsg("PIC alphanum_pic[size]:%d: %s",
!                                       field->line, field_str(field));
                  }
! #line 20427 "parse.cc"
      break;
  
!   case 480: /* picture_clause: PIC numed  */
! #line 4144 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    if( !field_type_update(field, FldNumericEdited, (yyloc)) ) {
                      YYERROR;
                    }
--- 24175,24200 ----
                      }
  		  }
                    assert(0 < (yyvsp[0].number));
!                   field->data.picture = nullptr;
!                   auto nchar = std::min(size_t((yyvsp[0].number)), MAXIMUM_ALPHA_LENGTH);
!                   if( nchar < size_t((yyvsp[0].number)) ) {
!                     error_msg((yylsp[0]), "alphanumeric data-item size (%d) "
!                                    "exceeds maximum of %lu bytes",
!                               (yyvsp[0].number), (unsigned long)MAXIMUM_ALPHA_LENGTH);
                    }
!                   field->set_initial(nchar, (yylsp[0]));
                  }
! #line 24188 "parse.cc"
      break;
  
!   case 501: /* picture_clause: PIC numed  */
! #line 4584 "parse.y"
                  {
                    cbl_field_t *field = current_field();
+                   if( ! field->codeset.set() ) {
+                     error_msg((yylsp[0]), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
                    if( !field_type_update(field, FldNumericEdited, (yyloc)) ) {
                      YYERROR;
                    }
*************** yyreduce:
*** 20439,20468 ****
                      YYERROR;
                    }
                    field->data.picture = (yyvsp[0].string);
-                   field->data.capacity =  length_of_picture((yyvsp[0].string));
                    field->data.digits   =  digits_of_picture((yyvsp[0].string), false);
                    field->data.rdigits  = rdigits_of_picture((yyvsp[0].string));
                    if( is_picture_scaled((yyvsp[0].string)) ) field->attr |= scaled_e;
                  }
! #line 20448 "parse.cc"
      break;
  
!   case 481: /* picture_clause: PIC ALPHED  */
! #line 4162 "parse.y"
                  {
-                   bool is_alpha_edited( const char picture[] );
- 
                    cbl_field_t *field = current_field();
                    ERROR_IF_CAPACITY((yylsp[-1]), field);
-                   field->data.capacity = length_of_picture((yyvsp[0].string));
-                   field->data.picture = (yyvsp[0].string);
- 
                    // In case the lexer guesses wrong.
                    cbl_field_type_t type = is_numeric_edited((yyvsp[0].string))?
                                            FldNumericEdited : FldAlphaEdited;
                    if( !field_type_update(field, type, (yyloc)) ) {
                      YYERROR;
                    }
  
                    switch( type ) {
                    case FldNumericEdited:
--- 24204,24233 ----
                      YYERROR;
                    }
                    field->data.picture = (yyvsp[0].string);
                    field->data.digits   =  digits_of_picture((yyvsp[0].string), false);
                    field->data.rdigits  = rdigits_of_picture((yyvsp[0].string));
                    if( is_picture_scaled((yyvsp[0].string)) ) field->attr |= scaled_e;
+                   field->set_signable();
+                   auto nchar = length_of_picture((yyvsp[0].string));
+                   field->set_capacity(nchar);
+                   field->blank_initial(nchar);
                  }
! #line 24216 "parse.cc"
      break;
  
!   case 502: /* picture_clause: PIC ALPHED  */
! #line 4609 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    ERROR_IF_CAPACITY((yylsp[-1]), field);
                    // In case the lexer guesses wrong.
                    cbl_field_type_t type = is_numeric_edited((yyvsp[0].string))?
                                            FldNumericEdited : FldAlphaEdited;
                    if( !field_type_update(field, type, (yyloc)) ) {
                      YYERROR;
                    }
+                   field->data.picture = (yyvsp[0].string);
+                   field->data.capacity(length_of_picture((yyvsp[0].string)));
  
                    switch( type ) {
                    case FldNumericEdited:
*************** yyreduce:
*** 20471,20477 ****
                      if( is_picture_scaled((yyvsp[0].string)) ) field->attr |= scaled_e;
                      break;
                    case FldAlphaEdited:
!                     if( !is_alpha_edited(field->data.picture) ) {
                        error_msg((yylsp[0]), "invalid picture for Alphanumeric-edited");
                        YYERROR;
                      }
--- 24236,24242 ----
                      if( is_picture_scaled((yyvsp[0].string)) ) field->attr |= scaled_e;
                      break;
                    case FldAlphaEdited:
!                     if( ! field->data.is_alpha_edited() ) {
                        error_msg((yylsp[0]), "invalid picture for Alphanumeric-edited");
                        YYERROR;
                      }
*************** yyreduce:
*** 20479,20507 ****
                    default:
                      gcc_unreachable();
                    }
                  }
! #line 20484 "parse.cc"
      break;
  
!   case 483: /* ones: ONES  */
! #line 4196 "parse.y"
                  {
  		  cbl_unimplemented("Boolean type not implemented");
  		}
! #line 20492 "parse.cc"
      break;
  
!   case 484: /* alphanum_pic: alphanum_part  */
! #line 4201 "parse.y"
                                {
                    current_field()->set_attr((yyvsp[0].pic_part).attr);
                    (yyval.number) = (yyvsp[0].pic_part).nbyte;
                  }
! #line 20501 "parse.cc"
      break;
  
!   case 485: /* alphanum_pic: alphanum_pic alphanum_part  */
! #line 4206 "parse.y"
                  {
  		  auto field = current_field();
  		  dbgmsg("%s has %s against %s",
--- 24244,24277 ----
                    default:
                      gcc_unreachable();
                    }
+                   if( ! field->codeset.set() ) {
+                     error_msg((yylsp[0]), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
+                   field->set_initial((yylsp[0]));
                  }
! #line 24254 "parse.cc"
      break;
  
!   case 504: /* ones: ONES  */
! #line 4645 "parse.y"
                  {
  		  cbl_unimplemented("Boolean type not implemented");
  		}
! #line 24262 "parse.cc"
      break;
  
!   case 505: /* alphanum_pic: alphanum_part  */
! #line 4650 "parse.y"
                                {
                    current_field()->set_attr((yyvsp[0].pic_part).attr);
                    (yyval.number) = (yyvsp[0].pic_part).nbyte;
                  }
! #line 24271 "parse.cc"
      break;
  
!   case 506: /* alphanum_pic: alphanum_pic alphanum_part  */
! #line 4655 "parse.y"
                  {
  		  auto field = current_field();
  		  dbgmsg("%s has %s against %s",
*************** yyreduce:
*** 20515,20529 ****
  
  		  dbgmsg("%s attrs: %s", field->name, field_attr_str(field));
                  }
! #line 20519 "parse.cc"
      break;
  
!   case 486: /* alphanum_part: ALNUM count  */
! #line 4221 "parse.y"
                  {
                    (yyval.pic_part).attr = uniform_picture((yyvsp[-1].string));
                    (yyval.pic_part).nbyte = strlen((yyvsp[-1].string));
  		  auto count((yyvsp[0].number));
                    if( count > 0 ) {
                      --count;
                      (yyval.pic_part).nbyte += count; // AX9(3) has count 5
--- 24285,24308 ----
  
  		  dbgmsg("%s attrs: %s", field->name, field_attr_str(field));
                  }
! #line 24289 "parse.cc"
      break;
  
!   case 507: /* alphanum_part: ALNUM count  */
! #line 4670 "parse.y"
                  {
+ 		  auto field = current_field();
+                   if( ! field->codeset.set((yyvsp[-1].string)) ) {
+                     error_msg((yylsp[-1]), "PICTURE inconsistent with encoding %s",
+                               cbl_alphabet_t::encoding_str(field->codeset.encoding));
+                   }
                    (yyval.pic_part).attr = uniform_picture((yyvsp[-1].string));
                    (yyval.pic_part).nbyte = strlen((yyvsp[-1].string));
  		  auto count((yyvsp[0].number));
+ 		  if( false && count == 0 ) { // zero count has no effect
+ 		    error_msg((yylsp[0]), "PICTURE count %<(%d)%> is zero", count );
+ 		    YYERROR;
+ 		  }
                    if( count > 0 ) {
                      --count;
                      (yyval.pic_part).nbyte += count; // AX9(3) has count 5
*************** yyreduce:
*** 20533,20596 ****
  		    YYERROR;
  		  }
                  }
! #line 20537 "parse.cc"
      break;
  
!   case 487: /* signed: %empty  */
! #line 4236 "parse.y"
                                   { (yyval.number) = 0; }
! #line 20543 "parse.cc"
      break;
  
!   case 488: /* signed: 'S'  */
! #line 4237 "parse.y"
                                   { (yyval.number) = signable_e; }
! #line 20549 "parse.cc"
      break;
  
!   case 489: /* nps: %empty  */
! #line 4240 "parse.y"
                                   { (yyval.number) = 0; }
! #line 20555 "parse.cc"
      break;
  
!   case 490: /* nps: PIC_P  */
! #line 4241 "parse.y"
                                   { (yyval.number) = (yyvsp[0].number); }
! #line 20561 "parse.cc"
      break;
  
!   case 491: /* nine: %empty  */
! #line 4244 "parse.y"
                                   { (yyval.number) = 0; }
! #line 20567 "parse.cc"
      break;
  
!   case 492: /* nine: nines  */
! #line 4246 "parse.y"
                  {
                    (yyval.number) = (yyvsp[0].number);
  		  if( (yyval.number) == 0 ) {
  		    error_msg((yylsp[0]), "%<(0)%> invalid in PICTURE (ISO 2023 13.18.40.3)");
  		  }
                  }
! #line 20578 "parse.cc"
      break;
  
!   case 494: /* nines: nines NINES  */
! #line 4254 "parse.y"
                              { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
! #line 20584 "parse.cc"
      break;
  
!   case 495: /* count: %empty  */
! #line 4257 "parse.y"
                                   { (yyval.number) = 0; }
! #line 20590 "parse.cc"
      break;
  
!   case 496: /* count: '(' "numeric literal" ')'  */
! #line 4259 "parse.y"
                  {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    (yyval.number) = real_to_integer (&rn);
--- 24312,24375 ----
  		    YYERROR;
  		  }
                  }
! #line 24316 "parse.cc"
      break;
  
!   case 508: /* signed: %empty  */
! #line 4694 "parse.y"
                                   { (yyval.number) = 0; }
! #line 24322 "parse.cc"
      break;
  
!   case 509: /* signed: 'S'  */
! #line 4695 "parse.y"
                                   { (yyval.number) = signable_e; }
! #line 24328 "parse.cc"
      break;
  
!   case 510: /* nps: %empty  */
! #line 4698 "parse.y"
                                   { (yyval.number) = 0; }
! #line 24334 "parse.cc"
      break;
  
!   case 511: /* nps: PIC_P  */
! #line 4699 "parse.y"
                                   { (yyval.number) = (yyvsp[0].number); }
! #line 24340 "parse.cc"
      break;
  
!   case 512: /* nine: %empty  */
! #line 4702 "parse.y"
                                   { (yyval.number) = 0; }
! #line 24346 "parse.cc"
      break;
  
!   case 513: /* nine: nines  */
! #line 4704 "parse.y"
                  {
                    (yyval.number) = (yyvsp[0].number);
  		  if( (yyval.number) == 0 ) {
  		    error_msg((yylsp[0]), "%<(0)%> invalid in PICTURE (ISO 2023 13.18.40.3)");
  		  }
                  }
! #line 24357 "parse.cc"
      break;
  
!   case 515: /* nines: nines NINES  */
! #line 4712 "parse.y"
                              { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
! #line 24363 "parse.cc"
      break;
  
!   case 516: /* count: %empty  */
! #line 4715 "parse.y"
                                   { (yyval.number) = 0; }
! #line 24369 "parse.cc"
      break;
  
!   case 517: /* count: '(' "numeric literal" ')'  */
! #line 4717 "parse.y"
                  {
                    REAL_VALUE_TYPE rn = numstr2i((yyvsp[-1].numstr).string, (yyvsp[-1].numstr).radix);
                    (yyval.number) = real_to_integer (&rn);
*************** yyreduce:
*** 20598,20638 ****
  		    error_msg((yylsp[-1]), "%<0%> invalid in PICTURE (ISO 2023 13.18.40.3)");
  		  }
                  }
! #line 20602 "parse.cc"
      break;
  
!   case 497: /* count: '(' NAME ')'  */
! #line 4267 "parse.y"
                  {
  		  auto value = cdf_value((yyvsp[-1].string));
! 		  if( ! (value && value->is_numeric()) ) {
! 		    error_msg((yylsp[-1]), "PICTURE %qs requires a CONSTANT value", (yyvsp[-1].string) );
! 		    YYERROR;
! 		  }
! 		  int nmsg = 0;
! 		  auto e = symbol_field(PROGRAM, 0, (yyvsp[-1].string));
! 		  if( e ) { // verify not floating point with nonzero fraction
! 		    auto field = cbl_field_of(e);
! 		    assert(is_literal(field));
! 		    REAL_VALUE_TYPE vi;
! 		    real_from_integer (&vi, VOIDmode, field->as_integer(), SIGNED);
! 		    if( !real_identical (TREE_REAL_CST_PTR (field->data.value_of()),
! 				         &vi) ) {
! 		      nmsg++;
! 		      error_msg((yylsp[-1]), "invalid PICTURE count %<(%s)%>",
! 				field->data.initial );
! 		    }
! 		  }
! 		  (yyval.number) = value->as_number();
! 		  if( (yyval.number) <= 0 && !nmsg) {
! 		    error_msg((yylsp[-1]), "invalid PICTURE count %<(%s)%>", (yyvsp[-1].string) );
! 		  }
                  }
! #line 20632 "parse.cc"
      break;
  
!   case 501: /* usage_clause: usage_clause1  */
! #line 4300 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    cbl_field_type_t type = static_cast<cbl_field_type_t>((yyvsp[0].number));
--- 24377,24427 ----
  		    error_msg((yylsp[-1]), "%<0%> invalid in PICTURE (ISO 2023 13.18.40.3)");
  		  }
                  }
! #line 24381 "parse.cc"
      break;
  
!   case 518: /* count: '(' NAME ')'  */
! #line 4725 "parse.y"
                  {
+                   int64_t output = 1;
  		  auto value = cdf_value((yyvsp[-1].string));
! 		  if( value && ! value->is_numeric() ) {
! 		    error_msg((yylsp[-1]),
!                               "PICTURE %qs requires a CONSTANT NUMERIC value",
!                               (yyvsp[-1].string) );
!                     output = value->as_number();
! 		  } else {
! 		    auto e = symbol_field(PROGRAM, 0, (yyvsp[-1].string));
! 		    if( ! e ) {
! 		      error_msg((yylsp[-1]), "%qs not defined", (yyvsp[-1].string) );
!                     } else { // verify it's integer-like
! 		      auto field = cbl_field_of(e);
!                       if( ! field->has_attr(constant_e) ) {
!                         error_msg((yylsp[-1]), "count %qs must be CONSTANT", (yyvsp[-1].string));
!                       }
!                       if( ! is_numeric(field) ) {
!                         auto s = field->data.original();
!                         error_msg((yylsp[-1]), "%qs invalid as PICTURE count %<(%s)%>",
!                                   (yyvsp[-1].string), s? s : "" );
!                       } else {
!                         auto ok = field->data.int64_of();
!                         if( ! ok.second ) {
!                           error_msg((yylsp[-1]), "%qs invalid as PICTURE count %<(%ld)%>",
!                                     (yyvsp[-1].string), long(ok.first) );
!                         } else {
!                           output = ok.first;
!                         }
! 		      }
!                     }
!                   }
!                   (yyval.number) = output;
!                   dbgmsg("%s:%d: count: (%s) is %ld", __FILE__, __LINE__, (yyvsp[-1].string), long((yyval.number)));
                  }
! #line 24421 "parse.cc"
      break;
  
!   case 522: /* usage_clause: usage_clause1  */
! #line 4768 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    cbl_field_type_t type = static_cast<cbl_field_type_t>((yyvsp[0].number));
*************** yyreduce:
*** 20640,20874 ****
                      YYERROR;
                    }
                  }
! #line 20644 "parse.cc"
      break;
  
!   case 502: /* usage_clause1: usage BIT  */
! #line 4309 "parse.y"
                  {
  		  cbl_unimplemented("Boolean type not implemented");
  		}
! #line 20652 "parse.cc"
      break;
  
!   case 503: /* usage_clause1: usage BINARY_INTEGER is_signed  */
! #line 4313 "parse.y"
                  {
! 		  // action for BINARY_INTEGER is repeated for COMPUTATIONAL, below. 
! 		  // If it changes, consolidate in a function. 
!                   bool infer = true;
!                   cbl_field_t *field = current_field();
! 
! 		  if( ! (yyvsp[0].boolean) ) {
! 		    (yyvsp[-1].computational).signable = false;
! 		  }
! 
!                   // Some binary types have defined capacity;
!                   switch((yyvsp[-1].computational).type) {
!                   // COMPUTATIONAL and COMP-5 rely on PICTURE.
!                   case FldNumericBinary:
!                     field->attr |= big_endian_e;
!                     __attribute__((fallthrough));
!                   case FldNumericBin5:
! 		    // If no capacity yet, then no picture, infer $comp.capacity.
! 		    // If field has capacity, ensure USAGE is compatible.
! 		    if( field->data.capacity > 0 ) { // PICTURE before USAGE
! 		      infer = false;
! 		      switch( field->type ) {
! 		      case FldAlphanumeric:   // PIC X COMP-5 or COMP-X
! 			assert( field->data.digits == 0 );
! 			assert( field->data.rdigits == 0 );
! 		        if( (dialect_mf() || dialect_gnu()) ) {
!                           field->type = (yyvsp[-1].computational).type;
! 			  field->clear_attr(signable_e);
! 		        } else {
! 			  error_msg((yylsp[-1]), "numeric USAGE invalid "
! 				           "with Alpnanumeric PICTURE");
! 			  dialect_error((yylsp[-2]), "Alpnanumeric COMP-5 or COMP-X", "mf or gnu");
! 			  YYERROR;
! 		        }
!                         break;
! 		      case FldNumericDisplay: // PIC 9 COMP-5 or COMP-X
! 		        if( (yyvsp[-1].computational).capacity == 0xFF ) { // comp-x is a bit like comp-5
! 			  assert( field->data.digits == field->data.capacity );
! 		          if( ! (dialect_mf() || dialect_gnu()) ) {
! 				  dialect_error((yylsp[-2]), "COMP-X", "mf or gnu");
! 		          }
! 			}
!                         field->type = (yyvsp[-1].computational).type;
!                         field->data.capacity = type_capacity(field->type,
!                                                              field->data.digits);
! 		        break;
! 		      default: break;
!                       }
! 		    }
!                     break;
! 		  case FldPacked: // comp-6 is unsigned comp-3
! 		    assert(! (yyvsp[-1].computational).signable);  // else PACKED_DECIMAL from scanner
! 		    field->attr |= separate_e;
! 		    if( ! dialect_mf() ) {
! 		      dialect_error((yylsp[-2]), "COMP-6", "mf");
! 		    }
!                     if( field->type == FldNumericDisplay ) {// PICTURE before USAGE
!                       infer = false;
!                       assert(field->data.capacity > 0);
!                       field->type = (yyvsp[-1].computational).type;
!                       field->data.capacity = type_capacity(field->type,
!                                                            field->data.digits);
!                     }
! 		    break;
!                   default:
!                     break;
!                   }
  
!                   if( infer ) {
!                     if( (yyvsp[-1].computational).capacity > 0 ) {
!                       if( field->data.capacity > 0 ) {
!                         error_msg((yylsp[-1]), "%s is BINARY type, incompatible with PICTURE",
!                                field->name);
!                         YYERROR;
!                       }
!                       field->data.capacity = (yyvsp[-1].computational).capacity;
!                       field->type = (yyvsp[-1].computational).type;
!                       if( (yyvsp[-1].computational).signable ) {
!                         field->attr = (field->attr | signable_e);
!                       }
!                     }
!                   }
!                   (yyval.number) = (yyvsp[-1].computational).type;
                  }
! #line 20741 "parse.cc"
      break;
  
!   case 504: /* usage_clause1: usage COMPUTATIONAL native  */
! #line 4398 "parse.y"
                  { 
! 		  // logic below duplicates BINARY_INTEGER, above.
! 		  // If it changes, consolidate in a function. 
!                   bool infer = true;
!                   cbl_field_t *field = current_field();
! 
!                   // Some binary types have defined capacity;
!                   switch((yyvsp[-1].computational).type) {
!                   // COMPUTATIONAL and COMP-5 rely on PICTURE.
!                   case FldNumericBinary:
!                     field->attr |= big_endian_e;
!                     __attribute__((fallthrough));
!                   case FldNumericBin5:
! 		    // If no capacity yet, then no picture, infer $comp.capacity.
! 		    // If field has capacity, ensure USAGE is compatible.
! 		    if( field->data.capacity > 0 ) { // PICTURE before USAGE
! 		      infer = false;
! 		      switch( field->type ) {
! 		      case FldAlphanumeric:   // PIC X COMP-5 or COMP-X
! 			assert( field->data.digits == 0 );
! 			assert( field->data.rdigits == 0 );
! 		        if( (dialect_mf() || dialect_gnu()) ) {
!                           field->type = (yyvsp[-1].computational).type;
! 			  field->clear_attr(signable_e);
! 		        } else {
! 			  error_msg((yylsp[-1]), "numeric USAGE invalid "
! 				           "with Alpnanumeric PICTURE");
! 			  dialect_error((yylsp[-2]), "Alpnanumeric COMP-5 or COMP-X", "mf or gnu");
! 			  YYERROR;
! 		        }
!                         break;
! 		      case FldNumericDisplay: // PIC 9 COMP-5 or COMP-X
! 		        if( (yyvsp[-1].computational).capacity == 0xFF ) { // comp-x is a bit like comp-5
! 			  assert( field->data.digits == field->data.capacity );
! 		          if( ! (dialect_mf() || dialect_gnu()) ) {
! 				  dialect_error((yylsp[-2]), "COMP-X", "mf or gnu");
! 		          }
! 			}
!                         field->type = (yyvsp[-1].computational).type;
!                         field->data.capacity = type_capacity(field->type,
!                                                              field->data.digits);
! 		        break;
! 		      default: break;
!                       }
! 		    }
!                     break;
! 		  case FldPacked: // comp-6 is unsigned comp-3
! 		    assert(! (yyvsp[-1].computational).signable);  // else PACKED_DECIMAL from scanner
! 		    field->attr |= separate_e;
! 		    if( ! dialect_mf() ) {
! 		      dialect_error((yylsp[-2]), "COMP-6", "mf");
! 		    }
!                     if( field->type == FldNumericDisplay ) {// PICTURE before USAGE
!                       infer = false;
!                       assert(field->data.capacity > 0);
!                       field->type = (yyvsp[-1].computational).type;
!                       field->data.capacity = type_capacity(field->type,
!                                                            field->data.digits);
!                     }
! 		    break;
!                   default:
!                     break;
!                   }
! 
!                   if( infer ) {
!                     if( (yyvsp[-1].computational).capacity > 0 ) {
!                       if( field->data.capacity > 0 ) {
!                         error_msg((yylsp[-1]), "%s is BINARY type, incompatible with PICTURE",
!                                field->name);
!                         YYERROR;
!                       }
!                       field->data.capacity = (yyvsp[-1].computational).capacity;
!                       field->type = (yyvsp[-1].computational).type;
!                       if( (yyvsp[-1].computational).signable ) {
!                         field->attr = (field->attr | signable_e);
!                       }
!                     }
!                   }
!                   (yyval.number) = (yyvsp[-1].computational).type;
                  }
! #line 20826 "parse.cc"
      break;
  
!   case 505: /* usage_clause1: usage DISPLAY native  */
! #line 4478 "parse.y"
!                                              { (yyval.number) = FldDisplay; }
! #line 20832 "parse.cc"
      break;
  
!   case 506: /* usage_clause1: usage PACKED_DECIMAL native  */
! #line 4479 "parse.y"
!                                              { (yyval.number) = FldPacked; }
! #line 20838 "parse.cc"
      break;
  
!   case 507: /* usage_clause1: usage PACKED_DECIMAL with NO SIGN  */
! #line 4481 "parse.y"
                  {
                    cbl_field_t *field = current_field();
! 		  if( field->data.capacity > 0 &&
  		      field->type != FldNumericDisplay) {
! 		    error_msg((yylsp[-3]), "%s PICTURE is incompatible with USAGE PACKED DECIMAL",
! 			     field->name);
  		    YYERROR;
  		  }
  		  field->clear_attr(separate_e);
  		  field->clear_attr(signable_e);
-                   if( field->type == FldNumericDisplay ) {// PICTURE before USAGE
-                     assert(field->data.capacity > 0);
-                     field->data.capacity = type_capacity(FldPacked,
-                                                          field->data.digits);
-                   }
  		  (yyval.number) = field->type = FldPacked;
  		}
! #line 20860 "parse.cc"
      break;
  
!   case 508: /* usage_clause1: usage INDEX  */
! #line 4498 "parse.y"
                                               {
                    (yyval.number) = symbol_field_index_set( current_field() )->type;
                  }
! #line 20868 "parse.cc"
      break;
  
!   case 509: /* usage_clause1: usage POINTER  */
! #line 4503 "parse.y"
                  {
                    (yyval.number) = FldPointer;
                    auto field = current_field();
--- 24429,24538 ----
                      YYERROR;
                    }
                  }
! #line 24433 "parse.cc"
      break;
  
!   case 523: /* usage_clause1: usage BIT  */
! #line 4777 "parse.y"
                  {
  		  cbl_unimplemented("Boolean type not implemented");
  		}
! #line 24441 "parse.cc"
      break;
  
!   case 524: /* usage_clause1: usage BINARY_INTEGER is_signed  */
! #line 4781 "parse.y"
                  {
!                   bool signable = (yyvsp[0].boolean)? (yyvsp[-1].computational).signable : false;
  
!                   (yyval.number) = field_binary_usage( (yylsp[-1]), current_field(), 
!                                            (yyvsp[-1].computational).type, (yyvsp[-1].computational).capacity,
!                                            signable );
                  }
! #line 24453 "parse.cc"
      break;
  
!   case 525: /* usage_clause1: usage COMPUTATIONAL native  */
! #line 4790 "parse.y"
                  { 
!                   (yyval.number) = field_binary_usage( (yylsp[-1]), current_field(), 
!                                            (yyvsp[-1].computational).type, (yyvsp[-1].computational).capacity,
!                                            (yyvsp[-1].computational).signable );
                  }
! #line 24463 "parse.cc"
      break;
  
!   case 526: /* usage_clause1: usage DISPLAY native  */
! #line 4795 "parse.y"
!                                              {
!                   auto field = current_field();
!                   if( ! field->codeset.set() ) {
!                     error_msg((yylsp[-1]), "USAGE DISPLAY conflicts with PICTURE");
!                   }
!                   (yyval.number) = FldDisplay;
!                 }
! #line 24475 "parse.cc"
      break;
  
!   case 527: /* usage_clause1: usage PACKED_DECIMAL native  */
! #line 4802 "parse.y"
!                                              {
!                   cbl_field_t *field = current_field();
! 		  if( field->data.capacity() > 0 &&
! 		      field->type != FldNumericDisplay) {
! 		    error_msg((yylsp[-1]), "USAGE PACKED DECIMAL conflicts with PICTURE");
! 		    YYERROR;
! 		  }
!                   (yyval.number) = FldPacked;
!                 }
! #line 24489 "parse.cc"
      break;
  
!   case 528: /* usage_clause1: usage PACKED_DECIMAL with NO SIGN  */
! #line 4812 "parse.y"
                  {
                    cbl_field_t *field = current_field();
! 		  if( field->data.capacity() > 0 &&
  		      field->type != FldNumericDisplay) {
! 		    error_msg((yylsp[-3]), "USAGE PACKED DECIMAL conflicts with PICTURE");
  		    YYERROR;
  		  }
+ 		  if( field->has_attr(signable_e) ) {
+                     error_msg((yyloc), "signed PICTURE conflicts with NO SIGN");
+                   }
+ 		  if( field->has_attr(separate_e) ) {
+                     error_msg((yyloc), "SIGN clause conflicts with NO SIGN");
+                   }
  		  field->clear_attr(separate_e);
  		  field->clear_attr(signable_e);
  		  (yyval.number) = field->type = FldPacked;
  		}
! #line 24511 "parse.cc"
      break;
  
!   case 529: /* usage_clause1: usage INDEX  */
! #line 4829 "parse.y"
                                               {
                    (yyval.number) = symbol_field_index_set( current_field() )->type;
                  }
! #line 24519 "parse.cc"
      break;
  
!   case 530: /* usage_clause1: usage NATIONAL  */
! #line 4832 "parse.y"
!                                {
!                   auto field = current_field();
!                   auto encoding = current_encoding('N');
!                   if( ! field->codeset.set(encoding) ) {
!                     error_msg((yylsp[0]), "USAGE NATIONAL conflicts with PICTURE");
!                   }
!                   (yyval.number) = FldDisplay;
!                 }
! #line 24532 "parse.cc"
!     break;
! 
!   case 531: /* usage_clause1: usage POINTER  */
! #line 4842 "parse.y"
                  {
                    (yyval.number) = FldPointer;
                    auto field = current_field();
*************** yyreduce:
*** 20879,20890 ****
  		  }
                    if( gcobol_feature_embiggen() && redefined &&
                        is_numeric(redefined->type) && redefined->size() == 4) {
!                     // For now, we allow POINTER to expand a 32-bit item to 64 bits.
!                     field->data.capacity = int_size_in_bytes(ptr_type_node);
                      dbgmsg("%s: expanding #" HOST_SIZE_T_PRINT_UNSIGNED
                            " %s capacity %u => %u", __func__,
                            (fmt_size_t)field_index(redefined), redefined->name,
!                           redefined->data.capacity, field->data.capacity);
  
                      redefined->embiggen();
  
--- 24543,24554 ----
  		  }
                    if( gcobol_feature_embiggen() && redefined &&
                        is_numeric(redefined->type) && redefined->size() == 4) {
!                     // Allow POINTER to expand a 32-bit item to 64 bits.
!                     field->data.capacity(int_size_in_bytes(ptr_type_node));
                      dbgmsg("%s: expanding #" HOST_SIZE_T_PRINT_UNSIGNED
                            " %s capacity %u => %u", __func__,
                            (fmt_size_t)field_index(redefined), redefined->name,
!                           redefined->data.capacity(), field->data.capacity());
  
                      redefined->embiggen();
  
*************** yyreduce:
*** 20895,21027 ****
                      }
                    }
                  }
! #line 20899 "parse.cc"
      break;
  
!   case 510: /* usage_clause1: usage POINTER TO error  */
! #line 4530 "parse.y"
                  {
                    cbl_unimplemented("POINTER TO");
                    (yyval.number) = FldPointer;
                  }
! #line 20908 "parse.cc"
      break;
  
!   case 511: /* value_clause: VALUE all LITERAL  */
! #line 4536 "parse.y"
                                         {
                    cbl_field_t *field = current_field();
!                   field->data.initial  = (yyvsp[0].literal).data;
                    field->attr |= literal_attr((yyvsp[0].literal).prefix);
-                   // The __gg__initialize_data routine needs to know that VALUE is a
-                   // quoted literal. This is critical for NumericEdited variables
                    field->attr |= quoted_e;
  
!                   if( field->data.capacity == 0 ) {
!                     field->data.capacity = (yyvsp[0].literal).len;
!                   } else {
!                     if( (yyvsp[-1].boolean) ) {
!                       field_value_all(field);
!                     } else {
!                       if( (yyvsp[0].literal).len < field->data.capacity ) {
!                         auto p = blank_pad_initial( (yyvsp[0].literal).data, (yyvsp[0].literal).len,
!                                                     field->data.capacity );
!                         if( !p ) YYERROR;
!                         field->data.initial = p;
!                       }
                      }
                    }
-                   value_encoding_check((yylsp[0]), field);
                  }
! #line 20937 "parse.cc"
      break;
  
!   case 512: /* value_clause: VALUE all cce_expr  */
! #line 4560 "parse.y"
!                                           {
                    cbl_field_t *field = current_field();
!                   auto orig_str = original_number();
! 		  REAL_VALUE_TYPE orig_val;
! 		  real_from_string3 (&orig_val, orig_str,
! 				     TYPE_MODE (float128_type_node));
!                   char *initial = NULL;
! 
!                   if( real_identical (&orig_val, &(yyvsp[0].float128)) ) {
!                     initial = orig_str;
!                     pristine_values.insert(initial);
                    } else {
!                     initial = string_of((yyvsp[0].float128));
!                     gcc_assert(initial);
                    }
- 
-                   char decimal = symbol_decimal_point();
-                   std::replace(initial, initial + strlen(initial), '.', decimal);
- 
-                   field->data.initial = initial;
-                   field->data = build_real (float128_type_node, (yyvsp[0].float128));
- 
-                   if( (yyvsp[-1].boolean) ) field_value_all(field);
                  }
! #line 20966 "parse.cc"
      break;
  
!   case 513: /* value_clause: VALUE all reserved_value  */
! #line 4585 "parse.y"
                  {
!                   if( (yyvsp[0].number) != NULLS ) {
!                     auto fig = constant_of(constant_index((yyvsp[0].number)));
!                     current_field()->data.initial = fig->data.initial;
                    }
                  }
! #line 20977 "parse.cc"
      break;
  
!   case 514: /* value_clause: NULLPTR  */
! #line 4592 "parse.y"
                  {
!                     auto fig = constant_of(constant_index(NULLS));
!                     current_field()->data.initial = fig->data.initial;
                  }
! #line 20986 "parse.cc"
      break;
  
!   case 515: /* value_clause: VALUE error  */
! #line 4597 "parse.y"
                  {
!                   error_msg((yylsp[0]), "no valid VALUE supplied");
                  }
! #line 20994 "parse.cc"
      break;
  
!   case 516: /* global_clause: is GLOBAL  */
! #line 4603 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= (field->attr | global_e);
                  }
! #line 21003 "parse.cc"
      break;
  
!   case 517: /* external_clause: is EXTERNAL  */
! #line 4609 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= (field->attr | external_e);
                  }
! #line 21012 "parse.cc"
      break;
  
!   case 518: /* justified_clause: is JUSTIFIED  */
! #line 4616 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= rjust_e;
                  }
! #line 21021 "parse.cc"
      break;
  
!   case 519: /* redefines_clause: REDEFINES NAME  */
! #line 4623 "parse.y"
                  {
                    struct symbol_elem_t *e = symbol_field(PROGRAM, 0, (yyvsp[0].string));
                    if( !e ) {
--- 24559,24715 ----
                      }
                    }
                  }
! #line 24563 "parse.cc"
      break;
  
!   case 532: /* usage_clause1: usage POINTER TO error  */
! #line 4869 "parse.y"
                  {
                    cbl_unimplemented("POINTER TO");
                    (yyval.number) = FldPointer;
                  }
! #line 24572 "parse.cc"
      break;
  
!   case 533: /* value_clause: VALUE all LITERAL  */
! #line 4875 "parse.y"
                                         {
                    cbl_field_t *field = current_field();
! 
!                   if( (yyvsp[0].literal).prefix[0] ) { // not the default encoding
!                     if( ! field->codeset.set((yyvsp[0].literal).encoding) ) {
!                       error_msg((yylsp[0]), "VALUE inconsistent with encoding %s",
!                                 cbl_alphabet_t::encoding_str(field->codeset.encoding));
!                     }
!                   } else {
!                     field->codeset.set();
!                   }
! 
!                   if( field->codeset.encoding != (yyvsp[0].literal).encoding ) {
!                     error_msg((yylsp[0]), "PICTURE inconsistent with VALUE %s'%s'",
!                               (yyvsp[0].literal).prefix, (yyvsp[0].literal).data);
!                   }
! 
                    field->attr |= literal_attr((yyvsp[0].literal).prefix);
                    field->attr |= quoted_e;
  
!                   auto capacity = field->data.capacity();
!                   field->data.original((yyvsp[0].literal).data, (yyvsp[-1].boolean)); // oops, sets capacity to strlen
! 
!                   if( capacity ) { // via PICTURE or USAGE
!                     field->data.capacity(capacity); // restore it (unnecessary)
!                     if (field->data.initial) { // PICTURE created blank initial
!                       field->encode((yyvsp[0].literal).len, (yylsp[0]));
                      }
                    }
                  }
! #line 24607 "parse.cc"
      break;
  
!   case 534: /* value_clause: VALUE all const_value  */
! #line 4905 "parse.y"
!                                            {
! 		  /*
!                    * cce has two parts: 
! 		   * cce.r) Host binary value
! 		   * cce.s) string value, if supplied as numeric literal 
!                    */
                    cbl_field_t *field = current_field();
!                   if( (yyvsp[0].cce_type).s ) {
!                     field->data.original((yyvsp[0].cce_type).s, (yyvsp[-1].boolean));
                    } else {
!                     field->data.original((yyvsp[0].cce_type).r);
                    }
                  }
! #line 24625 "parse.cc"
      break;
  
!   case 535: /* value_clause: VALUE all reserved_value  */
! #line 4919 "parse.y"
                  {
!                   cbl_field_t *field = current_field();
!                   field->codeset.set();
!                   assert( (yyvsp[0].number) != NULLS );
!                   auto fig = constant_of(constant_index((yyvsp[0].number)));
!                   auto orig_str = fig->data.initial;
!                   auto capacity = field->data.capacity();
!                   field->data.original(orig_str, (yyvsp[-1].boolean));
! 
!                   if( capacity ) { // via PICTURE or USAGE
!                     field->data.capacity(capacity); // restore it
!                     if (field->data.initial) { // PICTURE created blank initial
!                       field->encode( strlen(orig_str), (yylsp[0]) );
!                     }
!                   }
!                   if(  (yyvsp[0].number) != ZERO ) {
!                     if( ((yyvsp[0].number) != SPACES && field->type == FldNumericEdited)
!                       || is_numeric(field) )
!                     {
!                       error_msg((yylsp[0]),
!                                 "unexpected initial value for %s",
!                                 cbl_field_type_name(field->type));
!                     }
                    }
                  }
! #line 24655 "parse.cc"
      break;
  
!   case 536: /* value_clause: NULLPTR  */
! #line 4945 "parse.y"
                  {
!                   auto fig = constant_of(constant_index(NULLS));
!                   cbl_field_t *field = current_field();
!                   auto capacity = field->data.capacity();
!                   field->data.original(fig->data.initial);
!                   if( capacity ) { // via PICTURE or USAGE
!                     field->data.capacity(capacity); // restore it
!                     // do not encode
!                   }
                  }
! #line 24670 "parse.cc"
      break;
  
!   case 537: /* value_clause: VALUE error  */
! #line 4956 "parse.y"
                  {
!                   if( 0 < yychar ) {
!                     error_msg((yylsp[0]), "invalid VALUE at %qs", keyword_str(yychar));
!                   } else {
!                     error_msg((yylsp[0]), "invalid VALUE");
!                   }
                  }
! #line 24682 "parse.cc"
      break;
  
!   case 538: /* global_clause: is GLOBAL  */
! #line 4966 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= (field->attr | global_e);
                  }
! #line 24691 "parse.cc"
      break;
  
!   case 539: /* external_clause: is EXTERNAL  */
! #line 4972 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= (field->attr | external_e);
                  }
! #line 24700 "parse.cc"
      break;
  
!   case 540: /* justified_clause: is JUSTIFIED  */
! #line 4979 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    field->attr |= rjust_e;
                  }
! #line 24709 "parse.cc"
      break;
  
!   case 541: /* redefines_clause: REDEFINES NAME  */
! #line 4986 "parse.y"
                  {
                    struct symbol_elem_t *e = symbol_field(PROGRAM, 0, (yyvsp[0].string));
                    if( !e ) {
*************** yyreduce:
*** 21034,21054 ****
                      error_msg((yylsp[0]), "%s may not REDEFINE %s",
                              field->name, orig->name);
  		  }
!                   cbl_field_t *super = symbol_redefines(orig);
!                   if( super ) {
!                     error_msg((yylsp[0]), "%s may not REDEFINE %s, "
!                             "which redefines %s",
!                             field->name, orig->name, super->name);
!                   }
!                   if( field->level != orig->level ) {
                      error_msg((yylsp[0]), "cannot redefine %s %s as %s %s "
                               "because they have different levels",
! 			    orig->level_str(), name_of(orig),
  			    field->level_str(), name_of(field));
                    }
  		  // ISO 13.18.44.3
! 		  auto parent( symbol_index(e) );
! 		  auto p = std::find_if( symbol_elem_of(orig) + 1,
  					 symbol_elem_of(field),
  					 [parent, level = field->level]( const auto& elem ) {
  					   if( elem.type == SymField ) {
--- 24722,24742 ----
                      error_msg((yylsp[0]), "%s may not REDEFINE %s",
                              field->name, orig->name);
  		  }
!                   // Resolve chained REDEFINES:
!                   //   treat "C REDEFINES B"
!                   //   with  "B REDEFINES A"
!                   // as "C" redefining the same storage as "A".
! 
!                   cbl_field_t *root = symbol_redefines_root(orig);
!                   if( field->level != root->level ) {
                      error_msg((yylsp[0]), "cannot redefine %s %s as %s %s "
                               "because they have different levels",
! 			    root->level_str(), name_of(root),
  			    field->level_str(), name_of(field));
                    }
  		  // ISO 13.18.44.3
! 		  auto parent( symbol_index(symbol_elem_of(root)) );
! 		  auto p = std::find_if( symbol_elem_of(root) + 1,
  					 symbol_elem_of(field),
  					 [parent, level = field->level]( const auto& elem ) {
  					   if( elem.type == SymField ) {
*************** yyreduce:
*** 21063,21128 ****
  		    auto mid( cbl_field_of(p) );
                      error_msg((yylsp[0]), "cannot redefine %s %s as %s %s "
  			    "because %s %s intervenes",
! 			    orig->level_str(), name_of(orig),
  			    field->level_str(), name_of(field),
  			    mid->level_str(), name_of(mid));
                    }
  
!                   if( valid_redefine((yylsp[0]), field, orig) ) {
                      /*
                       * Defer "inheriting" the parent's description until the
                       * redefine is complete.
                       */
!                     current_field()->parent = symbol_index(e);
                    }
                  }
! #line 21080 "parse.cc"
      break;
  
!   case 520: /* any_length: ANY LENGTH  */
! #line 4680 "parse.y"
                  { cbl_field_t *field = current_field();
                    if( field->attr & any_length_e ) {
                      error_msg((yylsp[-1]), "ANY LENGTH already set");
                    }
!                   if( ! (field->level == 1 &&
!                          current_data_section == linkage_datasect_e &&
!                          (1 < current.program_level() ||
! 			      current.program()->is_function())) ) {
!                     error_msg((yylsp[-1]), "ANY LENGTH valid only for 01 "
!                             "in LINKAGE SECTION of a function or contained program");
!                     YYERROR;
                    }
                    field->attr |= any_length_e;
                  }
! #line 21099 "parse.cc"
      break;
  
!   case 521: /* based_clause: BASED  */
! #line 4697 "parse.y"
                  { cbl_field_t *field = current_field();
                    if( field->attr & based_e ) {
                      error_msg((yylsp[0]), "BASED already set");
                    }
                    field->attr |= based_e;
                  }
! #line 21110 "parse.cc"
      break;
  
!   case 522: /* blank_zero_clause: blank_when_zero  */
! #line 4706 "parse.y"
!                 { cbl_field_t *field = current_field();
!                   // the BLANK WHEN ZERO clause defines the item as numeric-edited.
!                   if( !field_type_update(field, FldNumericEdited, (yylsp[0])) ) {
!                     YYERROR;
                    }
!                   field->attr |= blank_zero_e;
                  }
! #line 21122 "parse.cc"
      break;
  
!   case 528: /* same_clause: SAME AS name  */
! #line 4725 "parse.y"
                  {
                    cbl_field_t *field = current_field(), *other = (yyvsp[0].field);
                    if( other->occurs.ntimes() > 0 ) {
--- 24751,24829 ----
  		    auto mid( cbl_field_of(p) );
                      error_msg((yylsp[0]), "cannot redefine %s %s as %s %s "
  			    "because %s %s intervenes",
! 			    root->level_str(), name_of(root),
  			    field->level_str(), name_of(field),
  			    mid->level_str(), name_of(mid));
                    }
  
!                   if( valid_redefine((yylsp[0]), field, root) ) {
                      /*
                       * Defer "inheriting" the parent's description until the
                       * redefine is complete.
                       */
!                     current_field()->parent = symbol_index(symbol_elem_of(root));
                    }
                  }
! #line 24768 "parse.cc"
      break;
  
!   case 542: /* any_length: ANY LENGTH  */
! #line 5043 "parse.y"
                  { cbl_field_t *field = current_field();
                    if( field->attr & any_length_e ) {
                      error_msg((yylsp[-1]), "ANY LENGTH already set");
                    }
!                   const char *prog_name = current.program()->name;
!                   bool is_compat = 0 < compat_programs.count(prog_name);
!                   if( field->level != 1 || current_data_section != linkage_datasect_e ) {
!                     error_msg((yylsp[-1]), "ANY LENGTH valid only for 01 data-item "
!                                   "in LINKAGE SECTION");
!                   }
!                   if( ! current.program()->is_function() ) {
!                     if( 1 == current.program_level() && ! is_compat) {
!                         cbl_message((yyloc), MfAnyLength,
!                                     "ANY LENGTH not valid in outermost program");
!                     }
                    }
                    field->attr |= any_length_e;
                  }
! #line 24791 "parse.cc"
      break;
  
!   case 543: /* based_clause: BASED  */
! #line 5064 "parse.y"
                  { cbl_field_t *field = current_field();
                    if( field->attr & based_e ) {
                      error_msg((yylsp[0]), "BASED already set");
                    }
                    field->attr |= based_e;
                  }
! #line 24802 "parse.cc"
      break;
  
!   case 544: /* blank_zero_clause: BLANK when ZERO  */
! #line 5073 "parse.y"
!                 { // BLANK WHEN ZERO defines the item as numeric-edited.
!                   cbl_field_t *field = current_field();
!                   auto attr = blank_zero_e;
!                   if( !field_type_update(field, FldNumericEdited, (yylsp[-2])) ) {
!                     attr = none_e;
!                     if( field->type == FldNumericDisplay ) {
!                       assert(field->has_attr(signable_e));
!                       error_msg((yyloc), "signed NUMERIC DISPLAY type "
!                                     "cannot have BLANK WHEN ZERO");
!                     } else {
!                       assert(is_numeric(field));
!                       error_msg((yyloc), "NUMERIC type cannot have BLANK WHEN ZERO");
!                     }                      
                    }
!                   field->set_attr(attr);
                  }
! #line 24823 "parse.cc"
      break;
  
!   case 548: /* same_clause: SAME AS name  */
! #line 5097 "parse.y"
                  {
                    cbl_field_t *field = current_field(), *other = (yyvsp[0].field);
                    if( other->occurs.ntimes() > 0 ) {
*************** yyreduce:
*** 21161,21216 ****
                    const auto e = symbol_field_same_as( field, other );
                    symbol_field_location( symbol_index(e), (yylsp[0]) );
                  }
! #line 21165 "parse.cc"
      break;
  
!   case 529: /* sign_clause: sign_is sign_leading sign_separate  */
! #line 4766 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    if( (yyvsp[-1].boolean) ) {
!                     field->attr |= leading_e;
                    } else {
!                     field->attr &= ~uint64_t(leading_e); // turn off in case inherited
!                     field->attr |= signable_e;
                    }
!                   if( (yyvsp[0].boolean) ) field->attr |= separate_e;
                  }
! #line 21180 "parse.cc"
      break;
  
!   case 532: /* sign_leading: LEADING  */
! #line 4780 "parse.y"
                           { (yyval.boolean) = true; }
! #line 21186 "parse.cc"
      break;
  
!   case 533: /* sign_leading: TRAILING  */
! #line 4781 "parse.y"
                           { (yyval.boolean) = false; }
! #line 21192 "parse.cc"
      break;
  
!   case 534: /* sign_separate: %empty  */
! #line 4783 "parse.y"
                                      { (yyval.boolean) = false; }
! #line 21198 "parse.cc"
      break;
  
!   case 535: /* sign_separate: SEPARATE CHARACTER  */
! #line 4784 "parse.y"
                                      { (yyval.boolean) = true; }
! #line 21204 "parse.cc"
      break;
  
!   case 536: /* sign_separate: SEPARATE  */
! #line 4785 "parse.y"
                                      { (yyval.boolean) = true; }
! #line 21210 "parse.cc"
      break;
  
!   case 537: /* type_clause: TYPE to typename  */
! #line 4806 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    if( (yyvsp[0].field) ) {
--- 24862,24922 ----
                    const auto e = symbol_field_same_as( field, other );
                    symbol_field_location( symbol_index(e), (yylsp[0]) );
                  }
! #line 24866 "parse.cc"
      break;
  
!   case 549: /* sign_clause: sign_is sign_leading sign_separate  */
! #line 5138 "parse.y"
                  {
                    cbl_field_t *field = current_field();
+                   if( 0 < field->data.capacity() ) { // PICTURE set size
+                     if( ! field->has_attr(signable_e) ) {
+                       error_msg((yylsp[-2]), "%qs must be signed for SIGN IS", field->name);
+                     }
+                   }
+                   field->set_attr(signable_e);
                    if( (yyvsp[-1].boolean) ) {
!                     field->set_attr(leading_e);
                    } else {
!                     field->clear_attr(leading_e); // turn off in case inherited
                    }
!                   if( (yyvsp[0].boolean) ) field->set_attr(separate_e);
                  }
! #line 24886 "parse.cc"
      break;
  
!   case 552: /* sign_leading: LEADING  */
! #line 5157 "parse.y"
                           { (yyval.boolean) = true; }
! #line 24892 "parse.cc"
      break;
  
!   case 553: /* sign_leading: TRAILING  */
! #line 5158 "parse.y"
                           { (yyval.boolean) = false; }
! #line 24898 "parse.cc"
      break;
  
!   case 554: /* sign_separate: %empty  */
! #line 5160 "parse.y"
                                      { (yyval.boolean) = false; }
! #line 24904 "parse.cc"
      break;
  
!   case 555: /* sign_separate: SEPARATE CHARACTER  */
! #line 5161 "parse.y"
                                      { (yyval.boolean) = true; }
! #line 24910 "parse.cc"
      break;
  
!   case 556: /* sign_separate: SEPARATE  */
! #line 5162 "parse.y"
                                      { (yyval.boolean) = true; }
! #line 24916 "parse.cc"
      break;
  
!   case 557: /* type_clause: TYPE to typename  */
! #line 5183 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    if( (yyvsp[0].field) ) {
*************** yyreduce:
*** 21218,21244 ****
  		    symbol_field_location( symbol_index(e), (yylsp[0]) );
                    }
                  }
! #line 21222 "parse.cc"
      break;
  
!   case 538: /* type_clause: USAGE is typename  */
! #line 4814 "parse.y"
                  {
!                   if( ! dialect_mf() ) {
!                     dialect_error((yylsp[0]), "USAGE TYPENAME", "mf");
!                     YYERROR;
!                   }
                    cbl_field_t *field = current_field();
                    if( (yyvsp[0].field) ) {
                      const auto e = symbol_field_same_as(field, (yyvsp[0].field));
  		    symbol_field_location( symbol_index(e), (yylsp[0]) );
                    }
                  }
! #line 21238 "parse.cc"
      break;
  
!   case 539: /* typedef_clause: is TYPEDEF strong  */
! #line 4828 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    switch( field->level ) {
--- 24924,24947 ----
  		    symbol_field_location( symbol_index(e), (yylsp[0]) );
                    }
                  }
! #line 24928 "parse.cc"
      break;
  
!   case 558: /* type_clause: USAGE is typename  */
! #line 5191 "parse.y"
                  {
!                   dialect_ok((yylsp[0]), MfUsageTypename, "USAGE TYPENAME");
                    cbl_field_t *field = current_field();
                    if( (yyvsp[0].field) ) {
                      const auto e = symbol_field_same_as(field, (yyvsp[0].field));
  		    symbol_field_location( symbol_index(e), (yylsp[0]) );
                    }
                  }
! #line 24941 "parse.cc"
      break;
  
!   case 559: /* typedef_clause: is TYPEDEF strong  */
! #line 5202 "parse.y"
                  {
                    cbl_field_t *field = current_field();
                    switch( field->level ) {
*************** yyreduce:
*** 21247,21252 ****
--- 24950,24956 ----
                      error_msg((yylsp[-1]), "%s %s IS TYPEDEF must be level 01",
  			    field->level_str(), field->name);
                    }
+                   field->codeset.set();
                    field->attr |= typedef_e;
                    if( (yyvsp[0].boolean) ) field->attr |= strongdef_e;
                    if( ! current.typedef_add(field) ) {
*************** yyreduce:
*** 21258,21304 ****
  			    prior->name, prior->line);
                    }
                  }
! #line 21262 "parse.cc"
      break;
  
!   case 540: /* volatile_clause: VOLATILE  */
! #line 4851 "parse.y"
                  {
!                   if( dialect_ibm() ) {
!                     yywarn("VOLATILE has no effect");
!                   } else {
!                     dialect_error((yylsp[0]), "VOLATILE", "ibm");
                    }
                  }
! #line 21274 "parse.cc"
      break;
  
!   case 541: /* procedure_div: %empty  */
! #line 4860 "parse.y"
                         {
  		  if( !procedure_division_ready((yyloc), NULL, NULL) ) YYABORT;
                  }
! #line 21282 "parse.cc"
      break;
  
!   case 542: /* $@10: %empty  */
! #line 4863 "parse.y"
!                                   {
                    if( !procedure_division_ready((yyloc), NULL, NULL) ) YYABORT;
                  }
! #line 21290 "parse.cc"
      break;
  
!   case 546: /* procedure_args: USING procedure_uses  */
! #line 4871 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), NULL, (yyvsp[0].ffi_args)) ) YYABORT;
                  }
! #line 21298 "parse.cc"
      break;
  
!   case 547: /* procedure_args: USING procedure_uses RETURNING name  */
! #line 4875 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), (yyvsp[0].field), (yyvsp[-2].ffi_args)) ) YYABORT;
                    if( ! (yyvsp[0].field)->has_attr(linkage_e) ) {
--- 24962,25006 ----
  			    prior->name, prior->line);
                    }
                  }
! #line 24966 "parse.cc"
      break;
  
!   case 560: /* volatile_clause: VOLATILE  */
! #line 5226 "parse.y"
                  {
!                   if( dialect_ok((yylsp[0]), IbmVolatileE, "VOLATILE") ) {
!                     cbl_message((yylsp[0]), IbmVolatileW, "VOLATILE has no effect");
                    }
                  }
! #line 24976 "parse.cc"
      break;
  
!   case 561: /* procedure_div: %empty  */
! #line 5233 "parse.y"
                         {
  		  if( !procedure_division_ready((yyloc), NULL, NULL) ) YYABORT;
                  }
! #line 24984 "parse.cc"
      break;
  
!   case 564: /* procedure_args: %empty  */
! #line 5240 "parse.y"
!                        {
                    if( !procedure_division_ready((yyloc), NULL, NULL) ) YYABORT;
                  }
! #line 24992 "parse.cc"
      break;
  
!   case 565: /* procedure_args: USING procedure_uses  */
! #line 5244 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), NULL, (yyvsp[0].ffi_args)) ) YYABORT;
                  }
! #line 25000 "parse.cc"
      break;
  
!   case 566: /* procedure_args: USING procedure_uses RETURNING name  */
! #line 5248 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), (yyvsp[0].field), (yyvsp[-2].ffi_args)) ) YYABORT;
                    if( ! (yyvsp[0].field)->has_attr(linkage_e) ) {
*************** yyreduce:
*** 21306,21316 ****
  			      (yyvsp[0].field)->name);
                    }
                  }
! #line 21310 "parse.cc"
      break;
  
!   case 548: /* procedure_args: RETURNING name  */
! #line 4883 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), (yyvsp[0].field), NULL) ) YYABORT;
                    if( ! (yyvsp[0].field)->has_attr(linkage_e) ) {
--- 25008,25018 ----
  			      (yyvsp[0].field)->name);
                    }
                  }
! #line 25012 "parse.cc"
      break;
  
!   case 567: /* procedure_args: RETURNING name  */
! #line 5256 "parse.y"
                  {
                    if( !procedure_division_ready((yylsp[0]), (yyvsp[0].field), NULL) ) YYABORT;
                    if( ! (yyvsp[0].field)->has_attr(linkage_e) ) {
*************** yyreduce:
*** 21318,21392 ****
  			      (yyvsp[0].field)->name);
                    }
                  }
! #line 21322 "parse.cc"
      break;
  
!   case 549: /* procedure_uses: procedure_use  */
! #line 4891 "parse.y"
                                { (yyval.ffi_args) = new ffi_args_t((yyvsp[0].ffi_arg)); }
! #line 21328 "parse.cc"
      break;
  
!   case 550: /* procedure_uses: procedure_uses procedure_use  */
! #line 4892 "parse.y"
                                               { (yyval.ffi_args)->push_back((yyvsp[0].ffi_arg)); }
! #line 21334 "parse.cc"
      break;
  
!   case 551: /* procedure_use: optional scalar  */
! #line 4894 "parse.y"
                                  {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_default_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->optional = (yyvsp[-1].boolean);
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 21344 "parse.cc"
      break;
  
!   case 552: /* procedure_use: by REFERENCE optional scalar  */
! #line 4899 "parse.y"
                                               {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_reference_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->optional = (yyvsp[-1].boolean);
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 21354 "parse.cc"
      break;
  
!   case 553: /* procedure_use: by CONTENT error  */
! #line 4904 "parse.y"
                                   { // no "by content" in procedure definition
                      (yyval.ffi_arg) = new cbl_ffi_arg_t(by_content_e,
                                             new_reference(literally_zero));
                  }
! #line 21363 "parse.cc"
      break;
  
!   case 554: /* procedure_use: by VALUE by_value_arg  */
! #line 4908 "parse.y"
                                             {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_value_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 21372 "parse.cc"
      break;
  
!   case 556: /* by_value_arg: LITERAL  */
! #line 4914 "parse.y"
!                          { (yyval.refer) = new_reference(new_literal((yyvsp[0].literal), quoted_e)); }
! #line 21378 "parse.cc"
      break;
  
!   case 557: /* by_value_arg: reserved_value  */
! #line 4916 "parse.y"
                  {
                    (yyval.refer) = new_reference(constant_of(constant_index((yyvsp[0].number))));
                  }
! #line 21386 "parse.cc"
      break;
  
!   case 559: /* @11: %empty  */
! #line 4923 "parse.y"
                         {
  		  cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
                    current.enabled_exception_cache = enabled_exceptions;
--- 25020,25094 ----
  			      (yyvsp[0].field)->name);
                    }
                  }
! #line 25024 "parse.cc"
      break;
  
!   case 568: /* procedure_uses: procedure_use  */
! #line 5264 "parse.y"
                                { (yyval.ffi_args) = new ffi_args_t((yyvsp[0].ffi_arg)); }
! #line 25030 "parse.cc"
      break;
  
!   case 569: /* procedure_uses: procedure_uses procedure_use  */
! #line 5265 "parse.y"
                                               { (yyval.ffi_args)->push_back((yyvsp[0].ffi_arg)); }
! #line 25036 "parse.cc"
      break;
  
!   case 570: /* procedure_use: optional scalar  */
! #line 5267 "parse.y"
                                  {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_default_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->optional = (yyvsp[-1].boolean);
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 25046 "parse.cc"
      break;
  
!   case 571: /* procedure_use: by REFERENCE optional scalar  */
! #line 5272 "parse.y"
                                               {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_reference_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->optional = (yyvsp[-1].boolean);
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 25056 "parse.cc"
      break;
  
!   case 572: /* procedure_use: by CONTENT error  */
! #line 5277 "parse.y"
                                   { // no "by content" in procedure definition
                      (yyval.ffi_arg) = new cbl_ffi_arg_t(by_content_e,
                                             new_reference(literally_zero));
                  }
! #line 25065 "parse.cc"
      break;
  
!   case 573: /* procedure_use: by VALUE by_value_arg  */
! #line 5281 "parse.y"
                                             {
                    (yyval.ffi_arg) = new cbl_ffi_arg_t(by_value_e, (yyvsp[0].refer));
                    (yyval.ffi_arg)->validate(); // produces message
                  }
! #line 25074 "parse.cc"
      break;
  
!   case 575: /* by_value_arg: LITERAL  */
! #line 5287 "parse.y"
!                          { (yyval.refer) = new_reference(new_literal((yylsp[0]), (yyvsp[0].literal), quoted_e)); }
! #line 25080 "parse.cc"
      break;
  
!   case 576: /* by_value_arg: reserved_value  */
! #line 5289 "parse.y"
                  {
                    (yyval.refer) = new_reference(constant_of(constant_index((yyvsp[0].number))));
                  }
! #line 25088 "parse.cc"
      break;
  
!   case 578: /* @10: %empty  */
! #line 5296 "parse.y"
                         {
  		  cbl_enabled_exceptions_t& enabled_exceptions( cdf_enabled_exceptions() );
                    current.enabled_exception_cache = enabled_exceptions;
*************** yyreduce:
*** 21396,21406 ****
                    assert((yyval.label));
                    parser_label_goto((yyval.label));
                  }
! #line 21400 "parse.cc"
      break;
  
!   case 560: /* declaratives: DECLARATIVES '.' @11 sentences END DECLARATIVES '.'  */
! #line 4933 "parse.y"
                  {
                    current.doing_declaratives(false);
                    /* TODO: if( intradeclarative_reference() ) yyerror;
--- 25098,25108 ----
                    assert((yyval.label));
                    parser_label_goto((yyval.label));
                  }
! #line 25102 "parse.cc"
      break;
  
!   case 579: /* declaratives: DECLARATIVES '.' @10 sentences END DECLARATIVES '.'  */
! #line 5306 "parse.y"
                  {
                    current.doing_declaratives(false);
                    /* TODO: if( intradeclarative_reference() ) yyerror;
*************** yyreduce:
*** 21417,21436 ****
                    current.enabled_exception_cache.clear();
  		  ast_enter_section(implicit_section());
                  }
! #line 21421 "parse.cc"
      break;
  
!   case 561: /* sentences: sentence  */
! #line 4951 "parse.y"
                           {
  		  ast_first_statement((yylsp[0]));
  		  symbol_temporaries_free();
  		}
! #line 21430 "parse.cc"
      break;
  
!   case 563: /* sentences: paragraph_name '.'  */
! #line 4957 "parse.y"
                  {
                    location_set((yylsp[-1]));
                    cbl_label_t *label = label_add((yylsp[-1]), LblParagraph, (yyvsp[-1].string));
--- 25119,25138 ----
                    current.enabled_exception_cache.clear();
  		  ast_enter_section(implicit_section());
                  }
! #line 25123 "parse.cc"
      break;
  
!   case 580: /* sentences: sentence  */
! #line 5324 "parse.y"
                           {
  		  ast_first_statement((yylsp[0]));
  		  symbol_temporaries_free();
  		}
! #line 25132 "parse.cc"
      break;
  
!   case 582: /* sentences: paragraph_name '.'  */
! #line 5330 "parse.y"
                  {
                    location_set((yylsp[-1]));
                    cbl_label_t *label = label_add((yylsp[-1]), LblParagraph, (yyvsp[-1].string));
*************** yyreduce:
*** 21441,21460 ****
                    current.new_paragraph(label);
                    apply_declaratives();
                  }
! #line 21445 "parse.cc"
      break;
  
!   case 564: /* sentences: sentences sentence  */
! #line 4968 "parse.y"
                  { // sentences might not be sentence
  		  ast_first_statement((yylsp[0]));
  		  symbol_temporaries_free();
  		}
! #line 21454 "parse.cc"
      break;
  
!   case 566: /* sentences: sentences paragraph_name '.'  */
! #line 4974 "parse.y"
                  {
                    location_set((yylsp[-1]));
                    cbl_label_t *label = label_add((yylsp[-1]), LblParagraph, (yyvsp[-1].string));
--- 25143,25162 ----
                    current.new_paragraph(label);
                    apply_declaratives();
                  }
! #line 25147 "parse.cc"
      break;
  
!   case 583: /* sentences: sentences sentence  */
! #line 5341 "parse.y"
                  { // sentences might not be sentence
  		  ast_first_statement((yylsp[0]));
  		  symbol_temporaries_free();
  		}
! #line 25156 "parse.cc"
      break;
  
!   case 585: /* sentences: sentences paragraph_name '.'  */
! #line 5347 "parse.y"
                  {
                    location_set((yylsp[-1]));
                    cbl_label_t *label = label_add((yylsp[-1]), LblParagraph, (yyvsp[-1].string));
*************** yyreduce:
*** 21465,21481 ****
                    current.new_paragraph(label);
                    apply_declaratives();
                  }
! #line 21469 "parse.cc"
      break;
  
!   case 568: /* paragraph_name: "numeric literal"  */
! #line 4986 "parse.y"
                         { (yyval.string) = (yyvsp[0].numstr).string; }
! #line 21475 "parse.cc"
      break;
  
!   case 570: /* sentence: statements "end of file"  */
! #line 4991 "parse.y"
                  {
                    if( ! goodnight_gracie() ) {
                      YYABORT;
--- 25167,25183 ----
                    current.new_paragraph(label);
                    apply_declaratives();
                  }
! #line 25171 "parse.cc"
      break;
  
!   case 587: /* paragraph_name: "numeric literal"  */
! #line 5359 "parse.y"
                         { (yyval.string) = (yyvsp[0].numstr).string; }
! #line 25177 "parse.cc"
      break;
  
!   case 589: /* sentence: statements "end of file"  */
! #line 5364 "parse.y"
                  {
                    if( ! goodnight_gracie() ) {
                      YYABORT;
*************** yyreduce:
*** 21483,21493 ****
                    if( nparse_error > 0 ) YYABORT;
                    YYACCEPT;
                  }
! #line 21487 "parse.cc"
      break;
  
!   case 571: /* sentence: program "END PROGRAM <contained program>" namestr '.'  */
! #line 4999 "parse.y"
                  { // a contained program (no prior END PROGRAM) is a "sentence"
                    const cbl_label_t *prog = current.program();
                    assert(prog);
--- 25185,25195 ----
                    if( nparse_error > 0 ) YYABORT;
                    YYACCEPT;
                  }
! #line 25189 "parse.cc"
      break;
  
!   case 590: /* sentence: program "END PROGRAM <contained program>" namestr '.'  */
! #line 5372 "parse.y"
                  { // a contained program (no prior END PROGRAM) is a "sentence"
                    const cbl_label_t *prog = current.program();
                    assert(prog);
*************** yyreduce:
*** 21501,21519 ****
                    std::set<std::string> externals = current.end_program();
                    if( !externals.empty() ) {
                      for( const auto& name : externals ) {
!                       yywarn("%s calls external symbol '%s'",
                               prog->name, name.c_str());
                      }
-                     YYERROR;
                    }
                    // pointer still valid because name is in symbol table
                    ast_end_program(prog->name);
                  }
! #line 21513 "parse.cc"
      break;
  
!   case 572: /* sentence: program "end of file"  */
! #line 5021 "parse.y"
                  { // a contained program (no prior END PROGRAM) is a "sentence"
                    if( nparse_error > 0 ) YYABORT;
                    do {
--- 25203,25220 ----
                    std::set<std::string> externals = current.end_program();
                    if( !externals.empty() ) {
                      for( const auto& name : externals ) {
!                       dbgmsg("%s calls external symbol '%s'",
                               prog->name, name.c_str());
                      }
                    }
                    // pointer still valid because name is in symbol table
                    ast_end_program(prog->name);
                  }
! #line 25214 "parse.cc"
      break;
  
!   case 591: /* sentence: program "end of file"  */
! #line 5393 "parse.y"
                  { // a contained program (no prior END PROGRAM) is a "sentence"
                    if( nparse_error > 0 ) YYABORT;
                    do {
*************** yyreduce:
*** 21521,21543 ****
                    } while( current.program_level() > 0 );
                    YYACCEPT;
                  }
! #line 21525 "parse.cc"
      break;
  
!   case 573: /* statements: statement  */
! #line 5030 "parse.y"
!                                      { (yyval.number) = (yyvsp[0].number); }
! #line 21531 "parse.cc"
      break;
  
!   case 574: /* statements: statements statement  */
! #line 5031 "parse.y"
!                                      { (yyval.number) = (yyvsp[0].number); }
! #line 21537 "parse.cc"
      break;
  
!   case 575: /* statement: error  */
! #line 5034 "parse.y"
                        {
                    if( current.declarative_section_name() ) {
  		    error_msg((yylsp[0]), "missing END DECLARATIVES or SECTION name");
--- 25222,25250 ----
                    } while( current.program_level() > 0 );
                    YYACCEPT;
                  }
! #line 25226 "parse.cc"
      break;
  
!   case 592: /* statements: statement  */
! #line 5402 "parse.y"
!                           {
!                   (yyval.number) = (yyvsp[0].number);
!                   parser_statement_end( symbol_temporary_alphanumerics() );
!                 }
! #line 25235 "parse.cc"
      break;
  
!   case 593: /* statements: statements statement  */
! #line 5406 "parse.y"
!                                      {
!                   (yyval.number) = (yyvsp[0].number);
!                   parser_statement_end( symbol_temporary_alphanumerics() );
!                 }
! #line 25244 "parse.cc"
      break;
  
!   case 594: /* statement: error  */
! #line 5412 "parse.y"
                        {
                    if( current.declarative_section_name() ) {
  		    error_msg((yylsp[0]), "missing END DECLARATIVES or SECTION name");
*************** yyreduce:
*** 21548,21804 ****
                      YYABORT;
                    }
                  }
! #line 21552 "parse.cc"
      break;
  
!   case 576: /* statement: accept  */
! #line 5044 "parse.y"
                                  { (yyval.number) =  ACCEPT; }
! #line 21558 "parse.cc"
      break;
  
!   case 577: /* statement: add  */
! #line 5045 "parse.y"
                                  { (yyval.number) =  ADD; }
! #line 21564 "parse.cc"
      break;
  
!   case 578: /* statement: allocate  */
! #line 5046 "parse.y"
                                  { (yyval.number) =  ALLOCATE; }
! #line 21570 "parse.cc"
      break;
  
!   case 579: /* statement: alter  */
! #line 5047 "parse.y"
                                  { (yyval.number) =  ALTER; }
! #line 21576 "parse.cc"
      break;
  
!   case 580: /* statement: call  */
! #line 5048 "parse.y"
                                  { (yyval.number) =  CALL; }
! #line 21582 "parse.cc"
      break;
  
!   case 581: /* statement: cancel  */
! #line 5049 "parse.y"
                                  { (yyval.number) =  CANCEL; }
! #line 21588 "parse.cc"
      break;
  
!   case 582: /* statement: close  */
! #line 5050 "parse.y"
                                  { (yyval.number) =  CLOSE; }
! #line 21594 "parse.cc"
      break;
  
!   case 583: /* statement: compute  */
! #line 5051 "parse.y"
                                  { (yyval.number) =  COMPUTE; }
! #line 21600 "parse.cc"
      break;
  
!   case 584: /* statement: continue_stmt  */
! #line 5052 "parse.y"
                                  { (yyval.number) =  CONTINUE; }
! #line 21606 "parse.cc"
      break;
  
!   case 585: /* statement: delete  */
! #line 5053 "parse.y"
                                  { (yyval.number) =  DELETE; }
! #line 21612 "parse.cc"
      break;
  
!   case 586: /* statement: display  */
! #line 5054 "parse.y"
                                  { (yyval.number) =  DISPLAY; }
! #line 21618 "parse.cc"
      break;
  
!   case 587: /* statement: divide  */
! #line 5055 "parse.y"
                                  { (yyval.number) =  DIVIDE; }
! #line 21624 "parse.cc"
      break;
  
!   case 588: /* statement: entry  */
! #line 5056 "parse.y"
                                  { (yyval.number) =  ENTRY; }
! #line 21630 "parse.cc"
      break;
  
!   case 589: /* statement: evaluate  */
! #line 5057 "parse.y"
                                  { (yyval.number) =  EVALUATE; }
! #line 21636 "parse.cc"
      break;
  
!   case 590: /* statement: exhibit_stmt  */
! #line 5058 "parse.y"
                                  { (yyval.number) =  EXHIBIT; }
! #line 21642 "parse.cc"
      break;
  
!   case 591: /* statement: exit  */
! #line 5059 "parse.y"
                                  { (yyval.number) =  EXIT; }
! #line 21648 "parse.cc"
      break;
  
!   case 592: /* statement: free  */
! #line 5060 "parse.y"
                                  { (yyval.number) =  FREE; }
! #line 21654 "parse.cc"
      break;
  
!   case 593: /* statement: go_to  */
! #line 5061 "parse.y"
                                  { (yyval.number) =  GOTO; }
! #line 21660 "parse.cc"
      break;
  
!   case 594: /* statement: if_stmt  */
! #line 5062 "parse.y"
                                  { (yyval.number) =  IF; }
! #line 21666 "parse.cc"
      break;
  
!   case 595: /* statement: initialize  */
! #line 5063 "parse.y"
                                  { (yyval.number) =  INITIALIZE; }
! #line 21672 "parse.cc"
      break;
  
!   case 596: /* statement: inspect  */
! #line 5064 "parse.y"
                                  { (yyval.number) =  INSPECT; }
! #line 21678 "parse.cc"
      break;
  
!   case 597: /* statement: merge  */
! #line 5065 "parse.y"
                                  { (yyval.number) =  MERGE; }
! #line 21684 "parse.cc"
      break;
  
!   case 598: /* statement: move  */
! #line 5066 "parse.y"
                                  { (yyval.number) =  MOVE; }
! #line 21690 "parse.cc"
      break;
  
!   case 599: /* statement: multiply  */
! #line 5067 "parse.y"
                                  { (yyval.number) =  MULTIPLY; }
! #line 21696 "parse.cc"
      break;
  
!   case 600: /* statement: open  */
! #line 5068 "parse.y"
                                  { (yyval.number) =  OPEN; }
! #line 21702 "parse.cc"
      break;
  
!   case 601: /* statement: return_stmt  */
! #line 5069 "parse.y"
                                  { (yyval.number) =  RETURN; }
! #line 21708 "parse.cc"
      break;
  
!   case 602: /* statement: perform  */
! #line 5070 "parse.y"
                                  { (yyval.number) =  PERFORM; }
! #line 21714 "parse.cc"
      break;
  
!   case 603: /* statement: raise  */
! #line 5071 "parse.y"
                                  { (yyval.number) =  RAISE; }
! #line 21720 "parse.cc"
      break;
  
!   case 604: /* statement: read  */
! #line 5072 "parse.y"
                                  { (yyval.number) =  READ; }
! #line 21726 "parse.cc"
      break;
  
!   case 605: /* statement: release  */
! #line 5073 "parse.y"
                                  { (yyval.number) =  RELEASE; }
! #line 21732 "parse.cc"
      break;
  
!   case 606: /* statement: resume  */
! #line 5074 "parse.y"
                                  { (yyval.number) =  RESUME; }
! #line 21738 "parse.cc"
      break;
  
!   case 607: /* statement: rewrite  */
! #line 5075 "parse.y"
                                  { (yyval.number) =  REWRITE; }
! #line 21744 "parse.cc"
      break;
  
!   case 608: /* statement: search  */
! #line 5076 "parse.y"
                                  { (yyval.number) =  SEARCH; }
! #line 21750 "parse.cc"
      break;
  
!   case 609: /* statement: set  */
! #line 5077 "parse.y"
                                  { (yyval.number) =  SET; }
! #line 21756 "parse.cc"
      break;
  
!   case 610: /* statement: sort  */
! #line 5078 "parse.y"
                                  { (yyval.number) =  SORT; }
! #line 21762 "parse.cc"
      break;
  
!   case 611: /* statement: start  */
! #line 5079 "parse.y"
                                  { (yyval.number) =  START; }
! #line 21768 "parse.cc"
      break;
  
!   case 612: /* statement: stop  */
! #line 5080 "parse.y"
                                  { (yyval.number) =  STOP; }
! #line 21774 "parse.cc"
      break;
  
!   case 613: /* statement: string  */
! #line 5081 "parse.y"
                                  { (yyval.number) =  STRING_kw; }
! #line 21780 "parse.cc"
      break;
  
!   case 614: /* statement: subtract  */
! #line 5082 "parse.y"
                                  { (yyval.number) =  SUBTRACT; }
! #line 21786 "parse.cc"
      break;
  
!   case 615: /* statement: unstring  */
! #line 5083 "parse.y"
                                  { (yyval.number) =  UNSTRING; }
! #line 21792 "parse.cc"
      break;
  
!   case 616: /* statement: write  */
! #line 5084 "parse.y"
                                  { (yyval.number) =  WRITE; }
! #line 21798 "parse.cc"
      break;
  
!   case 617: /* accept: accept_body end_accept  */
! #line 5100 "parse.y"
                                         {
  		  cbl_field_t *argi = register_find("_ARGI");
  		  switch( (yyvsp[-1].accept_func).func ) {
--- 25255,25523 ----
                      YYABORT;
                    }
                  }
! #line 25259 "parse.cc"
      break;
  
!   case 595: /* statement: accept  */
! #line 5422 "parse.y"
                                  { (yyval.number) =  ACCEPT; }
! #line 25265 "parse.cc"
      break;
  
!   case 596: /* statement: add  */
! #line 5423 "parse.y"
                                  { (yyval.number) =  ADD; }
! #line 25271 "parse.cc"
      break;
  
!   case 597: /* statement: allocate  */
! #line 5424 "parse.y"
                                  { (yyval.number) =  ALLOCATE; }
! #line 25277 "parse.cc"
      break;
  
!   case 598: /* statement: alter  */
! #line 5425 "parse.y"
                                  { (yyval.number) =  ALTER; }
! #line 25283 "parse.cc"
      break;
  
!   case 599: /* statement: call  */
! #line 5426 "parse.y"
                                  { (yyval.number) =  CALL; }
! #line 25289 "parse.cc"
      break;
  
!   case 600: /* statement: cancel  */
! #line 5427 "parse.y"
                                  { (yyval.number) =  CANCEL; }
! #line 25295 "parse.cc"
      break;
  
!   case 601: /* statement: close  */
! #line 5428 "parse.y"
                                  { (yyval.number) =  CLOSE; }
! #line 25301 "parse.cc"
      break;
  
!   case 602: /* statement: compute  */
! #line 5429 "parse.y"
                                  { (yyval.number) =  COMPUTE; }
! #line 25307 "parse.cc"
      break;
  
!   case 603: /* statement: continue_stmt  */
! #line 5430 "parse.y"
                                  { (yyval.number) =  CONTINUE; }
! #line 25313 "parse.cc"
      break;
  
!   case 604: /* statement: delete  */
! #line 5431 "parse.y"
                                  { (yyval.number) =  DELETE; }
! #line 25319 "parse.cc"
      break;
  
!   case 605: /* statement: display  */
! #line 5432 "parse.y"
                                  { (yyval.number) =  DISPLAY; }
! #line 25325 "parse.cc"
      break;
  
!   case 606: /* statement: divide  */
! #line 5433 "parse.y"
                                  { (yyval.number) =  DIVIDE; }
! #line 25331 "parse.cc"
      break;
  
!   case 607: /* statement: entry  */
! #line 5434 "parse.y"
                                  { (yyval.number) =  ENTRY; }
! #line 25337 "parse.cc"
      break;
  
!   case 608: /* statement: evaluate  */
! #line 5435 "parse.y"
                                  { (yyval.number) =  EVALUATE; }
! #line 25343 "parse.cc"
      break;
  
!   case 609: /* statement: exhibit_stmt  */
! #line 5436 "parse.y"
                                  { (yyval.number) =  EXHIBIT; }
! #line 25349 "parse.cc"
      break;
  
!   case 610: /* statement: exit  */
! #line 5437 "parse.y"
                                  { (yyval.number) =  EXIT; }
! #line 25355 "parse.cc"
      break;
  
!   case 611: /* statement: free  */
! #line 5438 "parse.y"
                                  { (yyval.number) =  FREE; }
! #line 25361 "parse.cc"
      break;
  
!   case 612: /* statement: go_to  */
! #line 5439 "parse.y"
                                  { (yyval.number) =  GOTO; }
! #line 25367 "parse.cc"
      break;
  
!   case 613: /* statement: if_stmt  */
! #line 5440 "parse.y"
                                  { (yyval.number) =  IF; }
! #line 25373 "parse.cc"
      break;
  
!   case 614: /* statement: initialize  */
! #line 5441 "parse.y"
                                  { (yyval.number) =  INITIALIZE; }
! #line 25379 "parse.cc"
      break;
  
!   case 615: /* statement: inspect  */
! #line 5442 "parse.y"
                                  { (yyval.number) =  INSPECT; }
! #line 25385 "parse.cc"
      break;
  
!   case 616: /* statement: merge  */
! #line 5443 "parse.y"
                                  { (yyval.number) =  MERGE; }
! #line 25391 "parse.cc"
      break;
  
!   case 617: /* statement: move  */
! #line 5444 "parse.y"
                                  { (yyval.number) =  MOVE; }
! #line 25397 "parse.cc"
      break;
  
!   case 618: /* statement: multiply  */
! #line 5445 "parse.y"
                                  { (yyval.number) =  MULTIPLY; }
! #line 25403 "parse.cc"
      break;
  
!   case 619: /* statement: open  */
! #line 5446 "parse.y"
                                  { (yyval.number) =  OPEN; }
! #line 25409 "parse.cc"
      break;
  
!   case 620: /* statement: return_stmt  */
! #line 5447 "parse.y"
                                  { (yyval.number) =  RETURN; }
! #line 25415 "parse.cc"
      break;
  
!   case 621: /* statement: perform  */
! #line 5448 "parse.y"
                                  { (yyval.number) =  PERFORM; }
! #line 25421 "parse.cc"
      break;
  
!   case 622: /* statement: raise  */
! #line 5449 "parse.y"
                                  { (yyval.number) =  RAISE; }
! #line 25427 "parse.cc"
      break;
  
!   case 623: /* statement: read  */
! #line 5450 "parse.y"
                                  { (yyval.number) =  READ; }
! #line 25433 "parse.cc"
      break;
  
!   case 624: /* statement: release  */
! #line 5451 "parse.y"
                                  { (yyval.number) =  RELEASE; }
! #line 25439 "parse.cc"
      break;
  
!   case 625: /* statement: resume  */
! #line 5452 "parse.y"
                                  { (yyval.number) =  RESUME; }
! #line 25445 "parse.cc"
      break;
  
!   case 626: /* statement: rewrite  */
! #line 5453 "parse.y"
                                  { (yyval.number) =  REWRITE; }
! #line 25451 "parse.cc"
      break;
  
!   case 627: /* statement: search  */
! #line 5454 "parse.y"
                                  { (yyval.number) =  SEARCH; }
! #line 25457 "parse.cc"
      break;
  
!   case 628: /* statement: set  */
! #line 5455 "parse.y"
                                  { (yyval.number) =  SET; }
! #line 25463 "parse.cc"
      break;
  
!   case 629: /* statement: sort  */
! #line 5456 "parse.y"
                                  { (yyval.number) =  SORT; }
! #line 25469 "parse.cc"
      break;
  
!   case 630: /* statement: start  */
! #line 5457 "parse.y"
                                  { (yyval.number) =  START; }
! #line 25475 "parse.cc"
      break;
  
!   case 631: /* statement: stop  */
! #line 5458 "parse.y"
                                  { (yyval.number) =  STOP; }
! #line 25481 "parse.cc"
      break;
  
!   case 632: /* statement: string  */
! #line 5459 "parse.y"
                                  { (yyval.number) =  STRING_kw; }
! #line 25487 "parse.cc"
      break;
  
!   case 633: /* statement: subtract  */
! #line 5460 "parse.y"
                                  { (yyval.number) =  SUBTRACT; }
! #line 25493 "parse.cc"
      break;
  
!   case 634: /* statement: unstring  */
! #line 5461 "parse.y"
                                  { (yyval.number) =  UNSTRING; }
! #line 25499 "parse.cc"
      break;
  
!   case 635: /* statement: write  */
! #line 5462 "parse.y"
                                  { (yyval.number) =  WRITE; }
! #line 25505 "parse.cc"
      break;
  
!   case 636: /* statement: xmlgenerate  */
! #line 5463 "parse.y"
!                                 { (yyval.number) =  XMLGENERATE; }
! #line 25511 "parse.cc"
!     break;
! 
!   case 637: /* statement: xmlparse  */
! #line 5464 "parse.y"
!                                 { (yyval.number) =  XMLPARSE; }
! #line 25517 "parse.cc"
!     break;
! 
!   case 638: /* accept: accept_body end_accept  */
! #line 5480 "parse.y"
                                         {
  		  cbl_field_t *argi = register_find("_ARGI");
  		  switch( (yyvsp[-1].accept_func).func ) {
*************** yyreduce:
*** 21823,21833 ****
  		    break;
  		  }
  		}
! #line 21827 "parse.cc"
      break;
  
!   case 618: /* accept: accept_body accept_excepts end_accept  */
! #line 5124 "parse.y"
                                                            {
  		  cbl_field_t *argi = register_find("_ARGI");
  		  switch( (yyvsp[-2].accept_func).func ) {
--- 25542,25552 ----
  		    break;
  		  }
  		}
! #line 25546 "parse.cc"
      break;
  
!   case 639: /* accept: accept_body accept_excepts end_accept  */
! #line 5504 "parse.y"
                                                            {
  		  cbl_field_t *argi = register_find("_ARGI");
  		  switch( (yyvsp[-2].accept_func).func ) {
*************** yyreduce:
*** 21861,21880 ****
  		    break;
  		  }
  		}
! #line 21865 "parse.cc"
      break;
  
!   case 621: /* accept_body: accept_refer  */
! #line 5163 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept(*(yyvsp[0].refer), CONSOLE_e, nullptr, nullptr);
                  }
! #line 21874 "parse.cc"
      break;
  
!   case 622: /* accept_body: accept_refer FROM DATE  */
! #line 5168 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
--- 25580,25599 ----
  		    break;
  		  }
  		}
! #line 25584 "parse.cc"
      break;
  
!   case 642: /* accept_body: accept_refer  */
! #line 5543 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept(*(yyvsp[0].refer), CONSOLE_e, nullptr, nullptr);
                  }
! #line 25593 "parse.cc"
      break;
  
!   case 643: /* accept_body: accept_refer FROM DATE  */
! #line 5548 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
*************** yyreduce:
*** 21883,21893 ****
                    }
                    parser_accept_date_yymmdd((yyvsp[-2].refer)->field);
                  }
! #line 21887 "parse.cc"
      break;
  
!   case 623: /* accept_body: accept_refer FROM DATE YYYYMMDD  */
! #line 5177 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-3].refer)->is_reference() ) {
--- 25602,25612 ----
                    }
                    parser_accept_date_yymmdd((yyvsp[-2].refer)->field);
                  }
! #line 25606 "parse.cc"
      break;
  
!   case 644: /* accept_body: accept_refer FROM DATE YYYYMMDD  */
! #line 5557 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-3].refer)->is_reference() ) {
*************** yyreduce:
*** 21896,21906 ****
                    }
                    parser_accept_date_yyyymmdd((yyvsp[-3].refer)->field);
                  }
! #line 21900 "parse.cc"
      break;
  
!   case 624: /* accept_body: accept_refer FROM DAY  */
! #line 5186 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
--- 25615,25625 ----
                    }
                    parser_accept_date_yyyymmdd((yyvsp[-3].refer)->field);
                  }
! #line 25619 "parse.cc"
      break;
  
!   case 645: /* accept_body: accept_refer FROM DAY  */
! #line 5566 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
*************** yyreduce:
*** 21909,21919 ****
                    }
                    parser_accept_date_yyddd((yyvsp[-2].refer)->field);
                  }
! #line 21913 "parse.cc"
      break;
  
!   case 625: /* accept_body: accept_refer FROM DAY YYYYDDD  */
! #line 5195 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-3].refer)->is_reference() ) {
--- 25628,25638 ----
                    }
                    parser_accept_date_yyddd((yyvsp[-2].refer)->field);
                  }
! #line 25632 "parse.cc"
      break;
  
!   case 646: /* accept_body: accept_refer FROM DAY YYYYDDD  */
! #line 5575 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-3].refer)->is_reference() ) {
*************** yyreduce:
*** 21922,21932 ****
                    }
                    parser_accept_date_yyyyddd((yyvsp[-3].refer)->field);
                  }
! #line 21926 "parse.cc"
      break;
  
!   case 626: /* accept_body: accept_refer FROM "DAY-OF-WEEK"  */
! #line 5204 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
--- 25641,25651 ----
                    }
                    parser_accept_date_yyyyddd((yyvsp[-3].refer)->field);
                  }
! #line 25645 "parse.cc"
      break;
  
!   case 647: /* accept_body: accept_refer FROM "DAY-OF-WEEK"  */
! #line 5584 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
*************** yyreduce:
*** 21935,21945 ****
                    }
                    parser_accept_date_dow((yyvsp[-2].refer)->field);
                  }
! #line 21939 "parse.cc"
      break;
  
!   case 627: /* accept_body: accept_refer FROM TIME  */
! #line 5214 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
--- 25654,25664 ----
                    }
                    parser_accept_date_dow((yyvsp[-2].refer)->field);
                  }
! #line 25658 "parse.cc"
      break;
  
!   case 648: /* accept_body: accept_refer FROM TIME  */
! #line 5594 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    if( (yyvsp[-2].refer)->is_reference() ) {
*************** yyreduce:
*** 21948,22012 ****
                    }
                    parser_accept_date_hhmmssff((yyvsp[-2].refer)->field);
                  }
! #line 21952 "parse.cc"
      break;
  
!   case 628: /* accept_body: accept_refer FROM acceptable  */
! #line 5223 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_e;
                    (yyval.accept_func).into = (yyvsp[-2].refer);
                    (yyval.accept_func).special = (yyvsp[0].special)->id;
                  }
! #line 21962 "parse.cc"
      break;
  
!   case 629: /* accept_body: accept_refer FROM ENVIRONMENT envar  */
! #line 5229 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_envar_e;
  		  (yyval.accept_func).into = (yyvsp[-3].refer);
  		  (yyval.accept_func).from = (yyvsp[0].refer);
                  }
! #line 21972 "parse.cc"
      break;
  
!   case 630: /* accept_body: accept_refer FROM "COMMAND-LINE"  */
! #line 5235 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept_command_line(*(yyvsp[-2].refer), NULL, NULL, NULL );
                  }
! #line 21981 "parse.cc"
      break;
  
!   case 631: /* accept_body: accept_refer FROM "COMMAND-LINE" '(' expr ')'  */
! #line 5240 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_command_line_e;
  		  (yyval.accept_func).into = (yyvsp[-5].refer);
  		  (yyval.accept_func).from = (yyvsp[-1].refer);
                  }
! #line 21991 "parse.cc"
      break;
  
!   case 632: /* accept_body: accept_refer FROM "COMMAND-LINE-COUNT"  */
! #line 5245 "parse.y"
                                                       {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept_command_line_count(*(yyvsp[-2].refer));
                  }
! #line 22000 "parse.cc"
      break;
  
!   case 633: /* accept_refer: ACCEPT scalar  */
! #line 5251 "parse.y"
                                { statement_begin((yylsp[-1]), ACCEPT); (yyval.refer) = (yyvsp[0].refer); }
! #line 22006 "parse.cc"
      break;
  
!   case 634: /* accept_excepts: accept_excepts accept_except statements  */
! #line 5255 "parse.y"
                  {
                    if( (yyvsp[-2].error).on_error && (yyvsp[-2].error).not_error ) {
                      error_msg((yylsp[-1]), "too many ON EXCEPTION clauses");
--- 25667,25731 ----
                    }
                    parser_accept_date_hhmmssff((yyvsp[-2].refer)->field);
                  }
! #line 25671 "parse.cc"
      break;
  
!   case 649: /* accept_body: accept_refer FROM acceptable  */
! #line 5603 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_e;
                    (yyval.accept_func).into = (yyvsp[-2].refer);
                    (yyval.accept_func).special = (yyvsp[0].special)->id;
                  }
! #line 25681 "parse.cc"
      break;
  
!   case 650: /* accept_body: accept_refer FROM ENVIRONMENT envar  */
! #line 5609 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_envar_e;
  		  (yyval.accept_func).into = (yyvsp[-3].refer);
  		  (yyval.accept_func).from = (yyvsp[0].refer);
                  }
! #line 25691 "parse.cc"
      break;
  
!   case 651: /* accept_body: accept_refer FROM "COMMAND-LINE"  */
! #line 5615 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept_command_line(*(yyvsp[-2].refer), NULL, NULL, NULL );
                  }
! #line 25700 "parse.cc"
      break;
  
!   case 652: /* accept_body: accept_refer FROM "COMMAND-LINE" '(' expr ')'  */
! #line 5620 "parse.y"
                  {
  		  (yyval.accept_func).func = accept_command_line_e;
  		  (yyval.accept_func).into = (yyvsp[-5].refer);
  		  (yyval.accept_func).from = (yyvsp[-1].refer);
                  }
! #line 25710 "parse.cc"
      break;
  
!   case 653: /* accept_body: accept_refer FROM "COMMAND-LINE-COUNT"  */
! #line 5625 "parse.y"
                                                       {
  		  (yyval.accept_func).func = accept_done_e;
                    parser_accept_command_line_count(*(yyvsp[-2].refer));
                  }
! #line 25719 "parse.cc"
      break;
  
!   case 654: /* accept_refer: ACCEPT scalar  */
! #line 5631 "parse.y"
                                { statement_begin((yylsp[-1]), ACCEPT); (yyval.refer) = (yyvsp[0].refer); }
! #line 25725 "parse.cc"
      break;
  
!   case 655: /* accept_excepts: accept_excepts accept_except statements  */
! #line 5635 "parse.y"
                  {
                    if( (yyvsp[-2].error).on_error && (yyvsp[-2].error).not_error ) {
                      error_msg((yylsp[-1]), "too many ON EXCEPTION clauses");
*************** yyreduce:
*** 22034,22044 ****
                    cbl_label_t *tgt = (yyvsp[-1].error).on_error? (yyvsp[-1].error).on_error : (yyvsp[-1].error).not_error;
                    parser_accept_exception_end(tgt);
                  }
! #line 22038 "parse.cc"
      break;
  
!   case 635: /* accept_excepts: accept_except statements  */
! #line 5283 "parse.y"
                  {
                    (yyval.error) = (yyvsp[-1].error);
                    assert( (yyvsp[-1].error).on_error || (yyvsp[-1].error).not_error );
--- 25753,25763 ----
                    cbl_label_t *tgt = (yyvsp[-1].error).on_error? (yyvsp[-1].error).on_error : (yyvsp[-1].error).not_error;
                    parser_accept_exception_end(tgt);
                  }
! #line 25757 "parse.cc"
      break;
  
!   case 656: /* accept_excepts: accept_except statements  */
! #line 5663 "parse.y"
                  {
                    (yyval.error) = (yyvsp[-1].error);
                    assert( (yyvsp[-1].error).on_error || (yyvsp[-1].error).not_error );
*************** yyreduce:
*** 22046,22056 ****
                    cbl_label_t *tgt = (yyvsp[-1].error).on_error? (yyvsp[-1].error).on_error : (yyvsp[-1].error).not_error;
                    parser_accept_exception_end(tgt);
                  }
! #line 22050 "parse.cc"
      break;
  
!   case 636: /* accept_except: EXCEPTION  */
! #line 5293 "parse.y"
                  {
                    (yyval.error).not_error = NULL;
                    (yyval.error).on_error = label_add(LblArith,
--- 25765,25775 ----
                    cbl_label_t *tgt = (yyvsp[-1].error).on_error? (yyvsp[-1].error).on_error : (yyvsp[-1].error).not_error;
                    parser_accept_exception_end(tgt);
                  }
! #line 25769 "parse.cc"
      break;
  
!   case 657: /* accept_except: EXCEPTION  */
! #line 5673 "parse.y"
                  {
                    (yyval.error).not_error = NULL;
                    (yyval.error).on_error = label_add(LblArith,
*************** yyreduce:
*** 22063,22088 ****
                      std::swap((yyval.error).on_error, (yyval.error).not_error);
                    }
                  }
! #line 22067 "parse.cc"
      break;
  
!   case 637: /* envar: scalar  */
! #line 5307 "parse.y"
                         { (yyval.refer) = (yyvsp[0].refer); (yyval.refer)->field->attr |= envar_e; }
! #line 22073 "parse.cc"
      break;
  
!   case 638: /* envar: LITERAL  */
! #line 5308 "parse.y"
                          {
!                   (yyval.refer) = new_reference(new_literal((yyvsp[0].literal), quoted_e));
                    (yyval.refer)->field->attr |= envar_e;
                  }
! #line 22082 "parse.cc"
      break;
  
!   case 639: /* acceptable: device_name  */
! #line 5315 "parse.y"
                  {
                    (yyval.special) = symbol_special( (yyvsp[0].special_type).id );
                    if( !(yyval.special) ) {
--- 25782,25807 ----
                      std::swap((yyval.error).on_error, (yyval.error).not_error);
                    }
                  }
! #line 25786 "parse.cc"
      break;
  
!   case 658: /* envar: scalar  */
! #line 5687 "parse.y"
                         { (yyval.refer) = (yyvsp[0].refer); (yyval.refer)->field->attr |= envar_e; }
! #line 25792 "parse.cc"
      break;
  
!   case 659: /* envar: LITERAL  */
! #line 5688 "parse.y"
                          {
!                   (yyval.refer) = new_reference(new_literal((yylsp[0]), (yyvsp[0].literal), quoted_e));
                    (yyval.refer)->field->attr |= envar_e;
                  }
! #line 25801 "parse.cc"
      break;
  
!   case 660: /* acceptable: device_name  */
! #line 5695 "parse.y"
                  {
                    (yyval.special) = symbol_special( (yyvsp[0].special_type).id );
                    if( !(yyval.special) ) {
*************** yyreduce:
*** 22090,22100 ****
                      YYERROR;
                    }
                  }
! #line 22094 "parse.cc"
      break;
  
!   case 640: /* acceptable: NAME  */
! #line 5323 "parse.y"
                  {
                    (yyval.special) = special_of((yyvsp[0].string));
                    if( !(yyval.special) ) {
--- 25809,25819 ----
                      YYERROR;
                    }
                  }
! #line 25813 "parse.cc"
      break;
  
!   case 661: /* acceptable: NAME  */
! #line 5703 "parse.y"
                  {
                    (yyval.special) = special_of((yyvsp[0].string));
                    if( !(yyval.special) ) {
*************** yyreduce:
*** 22130,22140 ****
  		  }
  		  assert((yyval.special));
                  }
! #line 22134 "parse.cc"
      break;
  
!   case 641: /* acceptable: ENVIRONMENT_VALUE  */
! #line 5358 "parse.y"
                                    {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 25849,25859 ----
  		  }
  		  assert((yyval.special));
                  }
! #line 25853 "parse.cc"
      break;
  
!   case 662: /* acceptable: ENVIRONMENT_VALUE  */
! #line 5738 "parse.y"
                                    {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22142,22152 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22146 "parse.cc"
      break;
  
!   case 642: /* acceptable: ARGUMENT_NUMBER  */
! #line 5365 "parse.y"
                                  {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 25861,25871 ----
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 25865 "parse.cc"
      break;
  
!   case 663: /* acceptable: ARGUMENT_NUMBER  */
! #line 5745 "parse.y"
                                  {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22154,22164 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22158 "parse.cc"
      break;
  
!   case 643: /* acceptable: ARGUMENT_VALUE  */
! #line 5372 "parse.y"
                                 {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 25873,25883 ----
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 25877 "parse.cc"
      break;
  
!   case 664: /* acceptable: ARGUMENT_VALUE  */
! #line 5752 "parse.y"
                                 {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22166,22219 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22170 "parse.cc"
      break;
  
!   case 644: /* add: add_impl end_add  */
! #line 5381 "parse.y"
                                   { ast_add((yyvsp[-1].arith)); }
! #line 22176 "parse.cc"
      break;
  
!   case 645: /* add: add_cond end_add  */
! #line 5382 "parse.y"
                                   { ast_add((yyvsp[-1].arith)); }
! #line 22182 "parse.cc"
      break;
  
!   case 646: /* add_impl: ADD add_body  */
! #line 5385 "parse.y"
                  {
                    statement_begin((yylsp[-1]), ADD);
                    (yyval.arith) = (yyvsp[0].arith);
                  }
! #line 22191 "parse.cc"
      break;
  
!   case 647: /* add_cond: ADD add_body arith_errs  */
! #line 5391 "parse.y"
                  {
                    statement_begin((yylsp[-2]), ADD);
                    (yyvsp[-1].arith)->on_error = (yyvsp[0].error).on_error;
                    (yyvsp[-1].arith)->not_error = (yyvsp[0].error).not_error;
                    (yyval.arith) = (yyvsp[-1].arith);
                  }
! #line 22202 "parse.cc"
      break;
  
!   case 650: /* add_body: sum TO rnames  */
! #line 5403 "parse.y"
                  {
                    (yyval.arith) = new arith_t(no_giving_e, (yyvsp[-2].refers));
                    std::copy( rhs.begin(),
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 22213 "parse.cc"
      break;
  
!   case 651: /* add_body: sum TO num_operand GIVING rnames  */
! #line 5410 "parse.y"
                  {
                    (yyval.arith) = new arith_t(giving_e, (yyvsp[-4].refers));
                    (yyval.arith)->A.push_back(*(yyvsp[-2].refer));
--- 25885,25938 ----
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 25889 "parse.cc"
      break;
  
!   case 665: /* add: add_impl end_add  */
! #line 5761 "parse.y"
                                   { ast_add((yyvsp[-1].arith)); }
! #line 25895 "parse.cc"
      break;
  
!   case 666: /* add: add_cond end_add  */
! #line 5762 "parse.y"
                                   { ast_add((yyvsp[-1].arith)); }
! #line 25901 "parse.cc"
      break;
  
!   case 667: /* add_impl: ADD add_body  */
! #line 5765 "parse.y"
                  {
                    statement_begin((yylsp[-1]), ADD);
                    (yyval.arith) = (yyvsp[0].arith);
                  }
! #line 25910 "parse.cc"
      break;
  
!   case 668: /* add_cond: ADD add_body arith_errs  */
! #line 5771 "parse.y"
                  {
                    statement_begin((yylsp[-2]), ADD);
                    (yyvsp[-1].arith)->on_error = (yyvsp[0].error).on_error;
                    (yyvsp[-1].arith)->not_error = (yyvsp[0].error).not_error;
                    (yyval.arith) = (yyvsp[-1].arith);
                  }
! #line 25921 "parse.cc"
      break;
  
!   case 671: /* add_body: sum TO rnames  */
! #line 5783 "parse.y"
                  {
                    (yyval.arith) = new arith_t(no_giving_e, (yyvsp[-2].refers));
                    std::copy( rhs.begin(),
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 25932 "parse.cc"
      break;
  
!   case 672: /* add_body: sum TO num_operand GIVING rnames  */
! #line 5790 "parse.y"
                  {
                    (yyval.arith) = new arith_t(giving_e, (yyvsp[-4].refers));
                    (yyval.arith)->A.push_back(*(yyvsp[-2].refer));
*************** yyreduce:
*** 22221,22250 ****
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 22225 "parse.cc"
      break;
  
!   case 652: /* add_body: sum GIVING rnames  */
! #line 5418 "parse.y"
                  { // implicit TO
                    (yyval.arith) = new arith_t(giving_e, (yyvsp[-2].refers));
                    std::copy( rhs.begin(),
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 22236 "parse.cc"
      break;
  
!   case 653: /* add_body: CORRESPONDING sum TO rnames  */
! #line 5425 "parse.y"
                  {
                    corresponding_fields_t pairs =
                      corresponding_arith_fields( (yyvsp[-2].refers)->refers.front().field,
                                                  rhs.front().refer.field );
                      if( pairs.empty() ) {
!                       yywarn( "%s and %s have no corresponding fields",
!                                 (yyvsp[-2].refers)->refers.front().field->name,
!                                 rhs.front().refer.field->name );
                      }
                    // First src/tgt elements are templates.
                    // Their subscripts apply to the correspondents.
--- 25940,25970 ----
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 25944 "parse.cc"
      break;
  
!   case 673: /* add_body: sum GIVING rnames  */
! #line 5798 "parse.y"
                  { // implicit TO
                    (yyval.arith) = new arith_t(giving_e, (yyvsp[-2].refers));
                    std::copy( rhs.begin(),
                               rhs.end(), back_inserter((yyval.arith)->tgts) );
                    rhs.clear();
                  }
! #line 25955 "parse.cc"
      break;
  
!   case 674: /* add_body: CORRESPONDING sum TO rnames  */
! #line 5805 "parse.y"
                  {
                    corresponding_fields_t pairs =
                      corresponding_arith_fields( (yyvsp[-2].refers)->refers.front().field,
                                                  rhs.front().refer.field );
                      if( pairs.empty() ) {
!                       cbl_message( (yyloc), ParNoCorrespondingW,
!                                    "%s and %s have no corresponding fields",
!                                    (yyvsp[-2].refers)->refers.front().field->name,
!                                    rhs.front().refer.field->name );
                      }
                    // First src/tgt elements are templates.
                    // Their subscripts apply to the correspondents.
*************** yyreduce:
*** 22256,22379 ****
                    (yyval.arith)->tgts.pop_front();
                    rhs.clear();
                  }
! #line 22260 "parse.cc"
      break;
  
!   case 654: /* rounded: %empty  */
! #line 5446 "parse.y"
                                          { (yyval.opt_round) = truncation_e; }
! #line 22266 "parse.cc"
      break;
  
!   case 655: /* rounded: ROUNDED  */
! #line 5447 "parse.y"
                                          { (yyval.opt_round) = current_rounded_mode(); }
! #line 22272 "parse.cc"
      break;
  
!   case 656: /* rounded: ROUNDED rounded_mode  */
! #line 5448 "parse.y"
                                          { (yyval.opt_round) = rounded_of((yyvsp[0].opt_round)); }
! #line 22278 "parse.cc"
      break;
  
!   case 657: /* rounded_mode: MODE is rounded_type  */
! #line 5450 "parse.y"
                                          { (yyval.opt_round) = (yyvsp[0].opt_round); }
! #line 22284 "parse.cc"
      break;
  
!   case 658: /* rounded_type: "AWAY-FROM-ZERO"  */
! #line 5452 "parse.y"
                                          { (yyval.opt_round) = away_from_zero_e; }
! #line 22290 "parse.cc"
      break;
  
!   case 659: /* rounded_type: "NEAREST-EVEN NEAREST-TOWARD-ZERO"  */
! #line 5453 "parse.y"
                                          { (yyval.opt_round) = nearest_toward_zero_e; }
! #line 22296 "parse.cc"
      break;
  
!   case 660: /* rounded_type: "TOWARD-GREATER"  */
! #line 5454 "parse.y"
                                          { (yyval.opt_round) = toward_greater_e; }
! #line 22302 "parse.cc"
      break;
  
!   case 661: /* rounded_type: "TOWARD-LESSER"  */
! #line 5455 "parse.y"
                                          { (yyval.opt_round) = toward_lesser_e; }
! #line 22308 "parse.cc"
      break;
  
!   case 663: /* round_between: "NEAREST-AWAY-FROM-ZERO"  */
! #line 5458 "parse.y"
                                          { (yyval.opt_round) = nearest_away_from_zero_e; }
! #line 22314 "parse.cc"
      break;
  
!   case 664: /* round_between: NEAREST_EVEN  */
! #line 5459 "parse.y"
                                          { (yyval.opt_round) = nearest_even_e; }
! #line 22320 "parse.cc"
      break;
  
!   case 665: /* round_between: PROHIBITED  */
! #line 5460 "parse.y"
                                          { (yyval.opt_round) = prohibited_e; }
! #line 22326 "parse.cc"
      break;
  
!   case 666: /* round_between: TRUNCATION  */
! #line 5461 "parse.y"
                                          { (yyval.opt_round) = truncation_e; }
! #line 22332 "parse.cc"
      break;
  
!   case 667: /* might_be: %empty  */
! #line 5464 "parse.y"
                         { (yyval.number) = IS; }
! #line 22338 "parse.cc"
      break;
  
!   case 669: /* posneg: POSITIVE  */
! #line 5468 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? le_op : gt_op; }
! #line 22344 "parse.cc"
      break;
  
!   case 670: /* posneg: NEGATIVE  */
! #line 5469 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? ge_op : lt_op; }
! #line 22350 "parse.cc"
      break;
  
!   case 671: /* posneg: ZERO  */
! #line 5470 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? ne_op : eq_op; }
! #line 22356 "parse.cc"
      break;
  
!   case 672: /* scalar88s: scalar88  */
! #line 5473 "parse.y"
                                   { (yyval.refers) = new refer_list_t((yyvsp[0].refer)); }
! #line 22362 "parse.cc"
      break;
  
!   case 673: /* scalar88s: scalar88s scalar88  */
! #line 5474 "parse.y"
                                     { (yyvsp[-1].refers)->push_back((yyvsp[0].refer)); }
! #line 22368 "parse.cc"
      break;
  
!   case 674: /* name88: "Level 88 NAME"  */
! #line 5477 "parse.y"
                         {
                    name_queue.qualify((yylsp[0]), (yyvsp[0].string));
  		  auto namelocs( name_queue.pop() );
  		  auto names( name_queue.namelist_of(namelocs) );
!                   if( ((yyval.field) = field_find(names)) == NULL ) {
                      if( procedure_div_e == current_division  ) {
  		      error_msg(namelocs.back().loc,
  				"DATA-ITEM '%s' not found", names.back() );
--- 25976,26099 ----
                    (yyval.arith)->tgts.pop_front();
                    rhs.clear();
                  }
! #line 25980 "parse.cc"
      break;
  
!   case 675: /* rounded: %empty  */
! #line 5827 "parse.y"
                                          { (yyval.opt_round) = truncation_e; }
! #line 25986 "parse.cc"
      break;
  
!   case 676: /* rounded: ROUNDED  */
! #line 5828 "parse.y"
                                          { (yyval.opt_round) = current_rounded_mode(); }
! #line 25992 "parse.cc"
      break;
  
!   case 677: /* rounded: ROUNDED rounded_mode  */
! #line 5829 "parse.y"
                                          { (yyval.opt_round) = rounded_of((yyvsp[0].opt_round)); }
! #line 25998 "parse.cc"
      break;
  
!   case 678: /* rounded_mode: MODE is rounded_type  */
! #line 5831 "parse.y"
                                          { (yyval.opt_round) = (yyvsp[0].opt_round); }
! #line 26004 "parse.cc"
      break;
  
!   case 679: /* rounded_type: "AWAY-FROM-ZERO"  */
! #line 5833 "parse.y"
                                          { (yyval.opt_round) = away_from_zero_e; }
! #line 26010 "parse.cc"
      break;
  
!   case 680: /* rounded_type: "NEAREST-EVEN NEAREST-TOWARD-ZERO"  */
! #line 5834 "parse.y"
                                          { (yyval.opt_round) = nearest_toward_zero_e; }
! #line 26016 "parse.cc"
      break;
  
!   case 681: /* rounded_type: "TOWARD-GREATER"  */
! #line 5835 "parse.y"
                                          { (yyval.opt_round) = toward_greater_e; }
! #line 26022 "parse.cc"
      break;
  
!   case 682: /* rounded_type: "TOWARD-LESSER"  */
! #line 5836 "parse.y"
                                          { (yyval.opt_round) = toward_lesser_e; }
! #line 26028 "parse.cc"
      break;
  
!   case 684: /* round_between: "NEAREST-AWAY-FROM-ZERO"  */
! #line 5839 "parse.y"
                                          { (yyval.opt_round) = nearest_away_from_zero_e; }
! #line 26034 "parse.cc"
      break;
  
!   case 685: /* round_between: NEAREST_EVEN  */
! #line 5840 "parse.y"
                                          { (yyval.opt_round) = nearest_even_e; }
! #line 26040 "parse.cc"
      break;
  
!   case 686: /* round_between: PROHIBITED  */
! #line 5841 "parse.y"
                                          { (yyval.opt_round) = prohibited_e; }
! #line 26046 "parse.cc"
      break;
  
!   case 687: /* round_between: TRUNCATION  */
! #line 5842 "parse.y"
                                          { (yyval.opt_round) = truncation_e; }
! #line 26052 "parse.cc"
      break;
  
!   case 688: /* might_be: %empty  */
! #line 5845 "parse.y"
                         { (yyval.number) = IS; }
! #line 26058 "parse.cc"
      break;
  
!   case 690: /* posneg: POSITIVE  */
! #line 5849 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? le_op : gt_op; }
! #line 26064 "parse.cc"
      break;
  
!   case 691: /* posneg: NEGATIVE  */
! #line 5850 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? ge_op : lt_op; }
! #line 26070 "parse.cc"
      break;
  
!   case 692: /* posneg: ZERO  */
! #line 5851 "parse.y"
                           { (yyval.number) = (yyvsp[0].number) == NOT? ne_op : eq_op; }
! #line 26076 "parse.cc"
      break;
  
!   case 693: /* scalar88s: scalar88  */
! #line 5854 "parse.y"
                                   { (yyval.refers) = new refer_list_t((yyvsp[0].refer)); }
! #line 26082 "parse.cc"
      break;
  
!   case 694: /* scalar88s: scalar88s scalar88  */
! #line 5855 "parse.y"
                                     { (yyvsp[-1].refers)->push_back((yyvsp[0].refer)); }
! #line 26088 "parse.cc"
      break;
  
!   case 695: /* name88: "Level 88 NAME"  */
! #line 5858 "parse.y"
                         {
                    name_queue.qualify((yylsp[0]), (yyvsp[0].string));
  		  auto namelocs( name_queue.pop() );
  		  auto names( name_queue.namelist_of(namelocs) );
!                   if( ((yyval.field) = field_find((yylsp[0]), names)) == NULL ) {
                      if( procedure_div_e == current_division  ) {
  		      error_msg(namelocs.back().loc,
  				"DATA-ITEM '%s' not found", names.back() );
*************** yyreduce:
*** 22382,22392 ****
  		  }
  		  assert((yyval.field)->level == 88);
  		}
! #line 22386 "parse.cc"
      break;
  
!   case 675: /* scalar88: name88 subscripts refmod  */
! #line 5493 "parse.y"
                  {
                    if( (yyvsp[0].refmod_parts).from->is_reference() || (yyvsp[0].refmod_parts).len->is_reference() ) {
                      error_msg((yylsp[-1]), "subscripts on start:len refmod "
--- 26102,26112 ----
  		  }
  		  assert((yyval.field)->level == 88);
  		}
! #line 26106 "parse.cc"
      break;
  
!   case 696: /* scalar88: name88 subscripts refmod  */
! #line 5874 "parse.y"
                  {
                    if( (yyvsp[0].refmod_parts).from->is_reference() || (yyvsp[0].refmod_parts).len->is_reference() ) {
                      error_msg((yylsp[-1]), "subscripts on start:len refmod "
*************** yyreduce:
*** 22396,22406 ****
                    cbl_span_t span( (yyvsp[0].refmod_parts).from, (yyvsp[0].refmod_parts).len );
                    (yyval.refer) = new cbl_refer_t((yyvsp[-2].field), (yyvsp[-1].refers)->vectorize(), span);
                  }
! #line 22400 "parse.cc"
      break;
  
!   case 676: /* scalar88: name88 refmod  */
! #line 5503 "parse.y"
                  {
                    if( (yyvsp[0].refmod_parts).from->is_reference() || (yyvsp[0].refmod_parts).len->is_reference() ) {
                      error_msg((yylsp[0]), "subscripts on start:len refmod "
--- 26116,26126 ----
                    cbl_span_t span( (yyvsp[0].refmod_parts).from, (yyvsp[0].refmod_parts).len );
                    (yyval.refer) = new cbl_refer_t((yyvsp[-2].field), (yyvsp[-1].refers)->vectorize(), span);
                  }
! #line 26120 "parse.cc"
      break;
  
!   case 697: /* scalar88: name88 refmod  */
! #line 5884 "parse.y"
                  {
                    if( (yyvsp[0].refmod_parts).from->is_reference() || (yyvsp[0].refmod_parts).len->is_reference() ) {
                      error_msg((yylsp[0]), "subscripts on start:len refmod "
*************** yyreduce:
*** 22410,22439 ****
                    cbl_span_t span( (yyvsp[0].refmod_parts).from, (yyvsp[0].refmod_parts).len );
                    (yyval.refer) = new cbl_refer_t((yyvsp[-1].field), span);
                  }
! #line 22414 "parse.cc"
      break;
  
!   case 677: /* scalar88: name88 subscripts  */
! #line 5513 "parse.y"
                  {
                    (yyval.refer) = new cbl_refer_t((yyvsp[-1].field));
                    if( (yyvsp[0].refers)->refers.size() != (yyval.refer)->subscripts_set((yyvsp[0].refers)->refers) ) {
                      subscript_dimension_error((yylsp[0]), (yyvsp[0].refers)->refers.size(), (yyval.refer));
                    }
                  }
! #line 22425 "parse.cc"
      break;
  
!   case 678: /* scalar88: name88  */
! #line 5520 "parse.y"
                  {
                    (yyval.refer) = new_reference((yyvsp[0].field));
                  }
! #line 22433 "parse.cc"
      break;
  
!   case 679: /* allocate: ALLOCATE expr CHARACTERS initialized RETURNING scalar  */
! #line 5526 "parse.y"
                  {
                    statement_begin((yylsp[-5]), ALLOCATE);
                    if( (yyvsp[-4].refer)->field->type == FldLiteralN ) {
--- 26130,26159 ----
                    cbl_span_t span( (yyvsp[0].refmod_parts).from, (yyvsp[0].refmod_parts).len );
                    (yyval.refer) = new cbl_refer_t((yyvsp[-1].field), span);
                  }
! #line 26134 "parse.cc"
      break;
  
!   case 698: /* scalar88: name88 subscripts  */
! #line 5894 "parse.y"
                  {
                    (yyval.refer) = new cbl_refer_t((yyvsp[-1].field));
                    if( (yyvsp[0].refers)->refers.size() != (yyval.refer)->subscripts_set((yyvsp[0].refers)->refers) ) {
                      subscript_dimension_error((yylsp[0]), (yyvsp[0].refers)->refers.size(), (yyval.refer));
                    }
                  }
! #line 26145 "parse.cc"
      break;
  
!   case 699: /* scalar88: name88  */
! #line 5901 "parse.y"
                  {
                    (yyval.refer) = new_reference((yyvsp[0].field));
                  }
! #line 26153 "parse.cc"
      break;
  
!   case 700: /* allocate: ALLOCATE expr CHARACTERS initialized RETURNING scalar  */
! #line 5907 "parse.y"
                  {
                    statement_begin((yylsp[-5]), ALLOCATE);
                    if( (yyvsp[-4].refer)->field->type == FldLiteralN ) {
*************** yyreduce:
*** 22447,22457 ****
                    if( ! require_pointer((yylsp[0]), *(yyvsp[0].refer)) ) YYERROR;
                    parser_allocate( *(yyvsp[-4].refer), *(yyvsp[0].refer), (yyvsp[-2].boolean) );
                  }
! #line 22451 "parse.cc"
      break;
  
!   case 680: /* allocate: ALLOCATE scalar initialized alloc_ret  */
! #line 5540 "parse.y"
                  {
                    statement_begin((yylsp[-3]), ALLOCATE);
                    if( ! (yyvsp[-2].refer)->field->has_attr(based_e) ) {
--- 26167,26177 ----
                    if( ! require_pointer((yylsp[0]), *(yyvsp[0].refer)) ) YYERROR;
                    parser_allocate( *(yyvsp[-4].refer), *(yyvsp[0].refer), (yyvsp[-2].boolean) );
                  }
! #line 26171 "parse.cc"
      break;
  
!   case 701: /* allocate: ALLOCATE scalar initialized alloc_ret  */
! #line 5921 "parse.y"
                  {
                    statement_begin((yylsp[-3]), ALLOCATE);
                    if( ! (yyvsp[-2].refer)->field->has_attr(based_e) ) {
*************** yyreduce:
*** 22467,22656 ****
                      initialize_allocated(*(yyvsp[-2].refer));
                    }
                  }
! #line 22471 "parse.cc"
      break;
  
!   case 681: /* initialized: %empty  */
! #line 5556 "parse.y"
                               { (yyval.boolean) = false; }
! #line 22477 "parse.cc"
      break;
  
!   case 682: /* initialized: INITIALIZED  */
! #line 5557 "parse.y"
                               { (yyval.boolean) = true; }
! #line 22483 "parse.cc"
      break;
  
!   case 683: /* alloc_ret: %empty  */
! #line 5559 "parse.y"
                         { static cbl_refer_t empty; (yyval.refer) = &empty; }
! #line 22489 "parse.cc"
      break;
  
!   case 684: /* alloc_ret: RETURNING scalar  */
! #line 5560 "parse.y"
                                                   { (yyval.refer) = (yyvsp[0].refer); }
! #line 22495 "parse.cc"
      break;
  
!   case 685: /* compute: compute_impl end_compute  */
! #line 5563 "parse.y"
                                           { current.compute_end(); }
! #line 22501 "parse.cc"
      break;
  
!   case 686: /* compute: compute_cond end_compute  */
! #line 5564 "parse.y"
                                           { current.compute_end(); }
! #line 22507 "parse.cc"
      break;
  
!   case 687: /* compute_impl: COMPUTE compute_body  */
! #line 5567 "parse.y"
                  {
                    parser_assign( (yyvsp[0].compute_body_t).ntgt, (yyvsp[0].compute_body_t).tgts, *(yyvsp[0].compute_body_t).expr,
                                   NULL, NULL, current.compute_label() );
                    current.declaratives_evaluate();
                  }
! #line 22517 "parse.cc"
      break;
  
!   case 688: /* compute_cond: COMPUTE compute_body arith_errs  */
! #line 5574 "parse.y"
                  {
                    parser_assign( (yyvsp[-1].compute_body_t).ntgt, (yyvsp[-1].compute_body_t).tgts, *(yyvsp[-1].compute_body_t).expr,
                                   (yyvsp[0].error).on_error, (yyvsp[0].error).not_error,
                                   current.compute_label() );
                    current.declaratives_evaluate();
                  }
! #line 22528 "parse.cc"
      break;
  
!   case 691: /* $@12: %empty  */
! #line 5585 "parse.y"
                         { statement_begin((yyloc), COMPUTE); }
! #line 22534 "parse.cc"
      break;
  
!   case 692: /* compute_body: rnames $@12 compute_expr  */
! #line 5585 "parse.y"
                                                                              {
                    (yyval.compute_body_t).ntgt = rhs.size();
                    auto C = new cbl_num_result_t[(yyval.compute_body_t).ntgt];
                    (yyval.compute_body_t).tgts = use_any(rhs, C);
                    (yyval.compute_body_t).expr = (yyvsp[0].refer);
                  }
! #line 22545 "parse.cc"
      break;
  
!   case 693: /* $@13: %empty  */
! #line 5592 "parse.y"
!                     {
                    current.compute_begin();
                  }
! #line 22553 "parse.cc"
!     break;
! 
!   case 694: /* compute_expr: '=' $@13 expr  */
! #line 5594 "parse.y"
!                        {
!                   (yyval.refer) = (yyvsp[0].refer);
!                 }
! #line 22561 "parse.cc"
!     break;
! 
!   case 695: /* $@14: %empty  */
! #line 5598 "parse.y"
!                       {
! 		  if( ! dialect_ibm() ) {
! 		    dialect_error((yylsp[0]), "EQUAL invalid as assignment operator", "ibm");
! 		  }
! 		  current.compute_begin();
!                 }
! #line 22572 "parse.cc"
      break;
  
!   case 696: /* compute_expr: EQUAL $@14 expr  */
! #line 5603 "parse.y"
                         {
                    (yyval.refer) = (yyvsp[0].refer);
                  }
! #line 22580 "parse.cc"
      break;
  
!   case 697: /* display: disp_body end_display  */
! #line 5609 "parse.y"
                  {
  		  std::vector <cbl_refer_t> args((yyvsp[-1].display).vargs->args.begin(),
                                                   (yyvsp[-1].display).vargs->args.end());
                    parser_display((yyvsp[-1].display).special, args, (yyvsp[0].boolean));
  		  current.declaratives_evaluate();
                  }
! #line 22591 "parse.cc"
      break;
  
!   case 698: /* end_display: %empty  */
! #line 5616 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_ADVANCE; }
! #line 22597 "parse.cc"
      break;
  
!   case 699: /* end_display: "END-DISPLAY"  */
! #line 5617 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_ADVANCE; }
! #line 22603 "parse.cc"
      break;
  
!   case 700: /* end_display: NO ADVANCING  */
! #line 5618 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_NO_ADVANCE; }
! #line 22609 "parse.cc"
      break;
  
!   case 701: /* end_display: NO ADVANCING "END-DISPLAY"  */
! #line 5619 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_NO_ADVANCE; }
! #line 22615 "parse.cc"
      break;
  
!   case 702: /* disp_body: disp_vargs  */
! #line 5622 "parse.y"
                  {
                    (yyval.display).special = NULL;
                    (yyval.display).vargs = (yyvsp[0].vargs);
                  }
! #line 22624 "parse.cc"
      break;
  
!   case 703: /* disp_body: disp_vargs UPON disp_upon  */
! #line 5627 "parse.y"
                  {
                    (yyval.display).special = (yyvsp[0].special);
                    (yyval.display).vargs = (yyvsp[-2].vargs);
                  }
! #line 22633 "parse.cc"
      break;
  
!   case 704: /* disp_vargs: DISPLAY vargs  */
! #line 5632 "parse.y"
                                {
                    statement_begin((yylsp[-1]), DISPLAY);
                    (yyval.vargs) = (yyvsp[0].vargs);
                  }
! #line 22642 "parse.cc"
      break;
  
!   case 705: /* disp_upon: device_name  */
! #line 5638 "parse.y"
                              {
                    (yyval.special) = symbol_special((yyvsp[0].special_type).id);
                  }
! #line 22650 "parse.cc"
      break;
  
!   case 706: /* disp_upon: NAME  */
! #line 5642 "parse.y"
                  {
                    symbol_elem_t *e = symbol_special(PROGRAM, (yyvsp[0].string));
                    if( !e ) {
--- 26187,26361 ----
                      initialize_allocated(*(yyvsp[-2].refer));
                    }
                  }
! #line 26191 "parse.cc"
      break;
  
!   case 702: /* initialized: %empty  */
! #line 5937 "parse.y"
                               { (yyval.boolean) = false; }
! #line 26197 "parse.cc"
      break;
  
!   case 703: /* initialized: INITIALIZED  */
! #line 5938 "parse.y"
                               { (yyval.boolean) = true; }
! #line 26203 "parse.cc"
      break;
  
!   case 704: /* alloc_ret: %empty  */
! #line 5940 "parse.y"
                         { static cbl_refer_t empty; (yyval.refer) = &empty; }
! #line 26209 "parse.cc"
      break;
  
!   case 705: /* alloc_ret: RETURNING scalar  */
! #line 5941 "parse.y"
                                                   { (yyval.refer) = (yyvsp[0].refer); }
! #line 26215 "parse.cc"
      break;
  
!   case 706: /* compute: compute_impl end_compute  */
! #line 5944 "parse.y"
                                           { current.compute_end(); }
! #line 26221 "parse.cc"
      break;
  
!   case 707: /* compute: compute_cond end_compute  */
! #line 5945 "parse.y"
                                           { current.compute_end(); }
! #line 26227 "parse.cc"
      break;
  
!   case 708: /* compute_impl: COMPUTE compute_body  */
! #line 5948 "parse.y"
                  {
                    parser_assign( (yyvsp[0].compute_body_t).ntgt, (yyvsp[0].compute_body_t).tgts, *(yyvsp[0].compute_body_t).expr,
                                   NULL, NULL, current.compute_label() );
                    current.declaratives_evaluate();
                  }
! #line 26237 "parse.cc"
      break;
  
!   case 709: /* compute_cond: COMPUTE compute_body arith_errs  */
! #line 5955 "parse.y"
                  {
                    parser_assign( (yyvsp[-1].compute_body_t).ntgt, (yyvsp[-1].compute_body_t).tgts, *(yyvsp[-1].compute_body_t).expr,
                                   (yyvsp[0].error).on_error, (yyvsp[0].error).not_error,
                                   current.compute_label() );
                    current.declaratives_evaluate();
                  }
! #line 26248 "parse.cc"
      break;
  
!   case 712: /* $@11: %empty  */
! #line 5966 "parse.y"
                         { statement_begin((yyloc), COMPUTE); }
! #line 26254 "parse.cc"
      break;
  
!   case 713: /* compute_body: rnames $@11 compute_expr  */
! #line 5966 "parse.y"
                                                                              {
                    (yyval.compute_body_t).ntgt = rhs.size();
                    auto C = new cbl_num_result_t[(yyval.compute_body_t).ntgt];
                    (yyval.compute_body_t).tgts = use_any(rhs, C);
                    (yyval.compute_body_t).expr = (yyvsp[0].refer);
                  }
! #line 26265 "parse.cc"
      break;
  
!   case 714: /* $@12: %empty  */
! #line 5973 "parse.y"
!                    {
!                   if( (yyvsp[0].string)[0] == 'E' ) { // lexer found EQUALS keyword
!                     dialect_ok((yylsp[0]), IbmEqualAssignE,
!                                "EQUAL as assignment operator" );
!                   }
                    current.compute_begin();
                  }
! #line 26277 "parse.cc"
      break;
  
!   case 715: /* compute_expr: "EQUAL" $@12 expr  */
! #line 5979 "parse.y"
                         {
                    (yyval.refer) = (yyvsp[0].refer);
                  }
! #line 26285 "parse.cc"
      break;
  
!   case 716: /* display: disp_body end_display  */
! #line 5985 "parse.y"
                  {
  		  std::vector <cbl_refer_t> args((yyvsp[-1].display).vargs->args.begin(),
                                                   (yyvsp[-1].display).vargs->args.end());
                    parser_display((yyvsp[-1].display).special, args, (yyvsp[0].boolean));
  		  current.declaratives_evaluate();
                  }
! #line 26296 "parse.cc"
      break;
  
!   case 717: /* end_display: %empty  */
! #line 5992 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_ADVANCE; }
! #line 26302 "parse.cc"
      break;
  
!   case 718: /* end_display: "END-DISPLAY"  */
! #line 5993 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_ADVANCE; }
! #line 26308 "parse.cc"
      break;
  
!   case 719: /* end_display: NO ADVANCING  */
! #line 5994 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_NO_ADVANCE; }
! #line 26314 "parse.cc"
      break;
  
!   case 720: /* end_display: NO ADVANCING "END-DISPLAY"  */
! #line 5995 "parse.y"
                                                  { (yyval.boolean) = DISPLAY_NO_ADVANCE; }
! #line 26320 "parse.cc"
      break;
  
!   case 721: /* disp_body: disp_vargs  */
! #line 5998 "parse.y"
                  {
                    (yyval.display).special = NULL;
                    (yyval.display).vargs = (yyvsp[0].vargs);
                  }
! #line 26329 "parse.cc"
      break;
  
!   case 722: /* disp_body: disp_vargs UPON disp_upon  */
! #line 6003 "parse.y"
                  {
                    (yyval.display).special = (yyvsp[0].special);
                    (yyval.display).vargs = (yyvsp[-2].vargs);
                  }
! #line 26338 "parse.cc"
      break;
  
!   case 723: /* disp_vargs: DISPLAY vargs  */
! #line 6008 "parse.y"
                                {
                    statement_begin((yylsp[-1]), DISPLAY);
                    (yyval.vargs) = (yyvsp[0].vargs);
                  }
! #line 26347 "parse.cc"
      break;
  
!   case 724: /* disp_upon: device_name  */
! #line 6014 "parse.y"
                              {
                    (yyval.special) = symbol_special((yyvsp[0].special_type).id);
                  }
! #line 26355 "parse.cc"
      break;
  
!   case 725: /* disp_upon: NAME  */
! #line 6018 "parse.y"
                  {
                    symbol_elem_t *e = symbol_special(PROGRAM, (yyvsp[0].string));
                    if( !e ) {
*************** yyreduce:
*** 22680,22690 ****
  		  }
  		  (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22684 "parse.cc"
      break;
  
!   case 707: /* disp_upon: ARGUMENT_NUMBER  */
! #line 5671 "parse.y"
                                  {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 26385,26395 ----
  		  }
  		  (yyval.special) = cbl_special_name_of(e);
                  }
! #line 26389 "parse.cc"
      break;
  
!   case 726: /* disp_upon: ARGUMENT_NUMBER  */
! #line 6047 "parse.y"
                                  {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22692,22702 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22696 "parse.cc"
      break;
  
!   case 708: /* disp_upon: ENVIRONMENT_NAME  */
! #line 5678 "parse.y"
                                   {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 26397,26407 ----
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 26401 "parse.cc"
      break;
  
!   case 727: /* disp_upon: ENVIRONMENT_NAME  */
! #line 6054 "parse.y"
                                   {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22704,22714 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22708 "parse.cc"
      break;
  
!   case 709: /* disp_upon: ENVIRONMENT_VALUE  */
! #line 5685 "parse.y"
                                    {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
--- 26409,26419 ----
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 26413 "parse.cc"
      break;
  
!   case 728: /* disp_upon: ENVIRONMENT_VALUE  */
! #line 6061 "parse.y"
                                    {
  		    // Add the name now, as a convenience. 
  		    cbl_special_name_t special =
*************** yyreduce:
*** 22716,22793 ****
  		    symbol_elem_t *e = symbol_special_add(PROGRAM, &special);
  		    (yyval.special) = cbl_special_name_of(e);
                  }
! #line 22720 "parse.cc"
      break;
  
!   case 710: /* exhibit_stmt: EXHIBIT exh_changed exh_named vargs  */
! #line 5694 "parse.y"
                                                      {
                    statement_begin((yylsp[-3]), EXHIBIT);
                    std::vector<cbl_refer_t> args( (yyvsp[0].vargs)->args.begin(),
                                                   (yyvsp[0].vargs)->args.end() );
                    parser_exhibit( (yyvsp[-2].boolean), (yyvsp[-1].boolean), args );
                  }
! #line 22731 "parse.cc"
      break;
  
!   case 711: /* exh_changed: %empty  */
! #line 5701 "parse.y"
                          { (yyval.boolean) = false; }
! #line 22737 "parse.cc"
      break;
  
!   case 712: /* exh_changed: CHANGED  */
! #line 5702 "parse.y"
                          { (yyval.boolean) = true; }
! #line 22743 "parse.cc"
      break;
  
!   case 713: /* exh_named: %empty  */
! #line 5704 "parse.y"
                          { (yyval.boolean) = false; }
! #line 22749 "parse.cc"
      break;
  
!   case 714: /* exh_named: NAMED  */
! #line 5705 "parse.y"
                          { (yyval.boolean) = true; }
! #line 22755 "parse.cc"
      break;
  
!   case 715: /* divide: divide_impl end_divide  */
! #line 5708 "parse.y"
                                         { ast_divide((yyvsp[-1].arith)); }
! #line 22761 "parse.cc"
      break;
  
!   case 716: /* divide: divide_cond end_divide  */
! #line 5709 "parse.y"
                                         { ast_divide((yyvsp[-1].arith)); }
! #line 22767 "parse.cc"
      break;
  
!   case 717: /* divide_impl: DIVIDE divide_body  */
! #line 5713 "pa